ZGlmZiAtLWdpdCBhLy5naXRodWIvcHVsbF9yZXF1ZXN0X3RlbXBsYXRlLm1kIGIvLmdpdGh1Yi9wdWxsX3JlcXVlc3RfdGVtcGxhdGUubWQKaW5kZXggODkyZWQyOC4uMTU1ZjExNCAxMDA2NDQKLS0tIGEvLmdpdGh1Yi9wdWxsX3JlcXVlc3RfdGVtcGxhdGUubWQKKysrIGIvLmdpdGh1Yi9wdWxsX3JlcXVlc3RfdGVtcGxhdGUubWQKQEAgLTYsMTIgKzYsMTUgQEAKIAogIyMgUFIgY2hlY2tsaXN0CiAKLVBsZWFzZSB0aWNrIGFzIGFwcHJvcHJpYXRlIGFuZCBlZGl0IHRoZSByZWFzb25zIChlLmcuOiAiYmFja3BvcnQ6IG5vdCBuZWVkZWQgYmVjYXVzZSB0aGlzIGlzIGEgbmV3IGZlYXR1cmUiKQorUGxlYXNlIHJlbW92ZSB0aGUgc2VnbWVudC9zIG9uIGVpdGhlciBzaWRlIG9mIHRoZSB8IHN5bWJvbCBhcyBhcHByb3ByaWF0ZSwgYW5kIGFkZCBhbnkgcmVsZXZhbnQgbGluay9zIHRvIHRoZSBlbmQgb2YgdGhlIGxpbmUuCitJZiB0aGUgcHJvdmlkZWQgY29udGVudCBpcyBwYXJ0IG9mIHRoZSBwcmVzZW50IFBSIHJlbW92ZSB0aGUgIyBzeW1ib2wuCiAKLS0gWyBdICoqY2hhbmdlbG9nKiogcHJvdmlkZWQsIG9yIG5vdCByZXF1aXJlZAotLSBbIF0gKiozLjYgYmFja3BvcnQqKiBkb25lLCBvciBub3QgcmVxdWlyZWQKLS0gWyBdICoqMi4yOCBiYWNrcG9ydCoqIGRvbmUsIG9yIG5vdCByZXF1aXJlZAotLSBbIF0gKip0ZXN0cyoqIHByb3ZpZGVkLCBvciBub3QgcmVxdWlyZWQKKy0gWyBdICoqY2hhbmdlbG9nKiogcHJvdmlkZWQgfCBub3QgcmVxdWlyZWQgYmVjYXVzZTogCistIFsgXSAqKmRldmVsb3BtZW50IFBSKiogcHJvdmlkZWQgIyB8IG5vdCByZXF1aXJlZCBiZWNhdXNlOiAKKy0gWyBdICoqZnJhbWV3b3JrIFBSKiogcHJvdmlkZWQgTWJlZC1UTFMvbWJlZHRscy1mcmFtZXdvcmsjIHwgbm90IHJlcXVpcmVkCistIFsgXSAqKjMuNiBQUioqIHByb3ZpZGVkICMgfCBub3QgcmVxdWlyZWQgYmVjYXVzZTogCistIFsgXSAqKjIuMjggUFIqKiBwcm92aWRlZCAjIHwgbm90IHJlcXVpcmVkIGJlY2F1c2U6IAorLSAqKnRlc3RzKiogIHByb3ZpZGVkIHwgbm90IHJlcXVpcmVkIGJlY2F1c2U6IAogCiAKIApkaWZmIC0tZ2l0IGEvM3JkcGFydHkvQ01ha2VMaXN0cy50eHQgYi8zcmRwYXJ0eS9DTWFrZUxpc3RzLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZmExNDliZC4uMDAwMDAwMAotLS0gYS8zcmRwYXJ0eS9DTWFrZUxpc3RzLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDIgKzAsMCBAQAotYWRkX3N1YmRpcmVjdG9yeShldmVyZXN0KQotYWRkX3N1YmRpcmVjdG9yeShwMjU2LW0pCmRpZmYgLS1naXQgYS8zcmRwYXJ0eS9NYWtlZmlsZS5pbmMgYi8zcmRwYXJ0eS9NYWtlZmlsZS5pbmMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDcwZjMxNmIuLjAwMDAwMDAKLS0tIGEvM3JkcGFydHkvTWFrZWZpbGUuaW5jCisrKyAvZGV2L251bGwKQEAgLTEsMyArMCwwIEBACi1USElSRFBBUlRZX0RJUiA6PSAkKGRpciAkKGxhc3R3b3JkICQoTUFLRUZJTEVfTElTVCkpKQotaW5jbHVkZSAkKFRISVJEUEFSVFlfRElSKS9ldmVyZXN0L01ha2VmaWxlLmluYwotaW5jbHVkZSAkKFRISVJEUEFSVFlfRElSKS9wMjU2LW0vTWFrZWZpbGUuaW5jCmRpZmYgLS1naXQgYS8zcmRwYXJ0eS9ldmVyZXN0L0NNYWtlTGlzdHMudHh0IGIvM3JkcGFydHkvZXZlcmVzdC9DTWFrZUxpc3RzLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOGM4ZThkYi4uMDAwMDAwMAotLS0gYS8zcmRwYXJ0eS9ldmVyZXN0L0NNYWtlTGlzdHMudHh0CisrKyAvZGV2L251bGwKQEAgLTEsNDMgKzAsMCBAQAotc2V0KGV2ZXJlc3RfdGFyZ2V0ICIke01CRURUTFNfVEFSR0VUX1BSRUZJWH1ldmVyZXN0IikKLQotYWRkX2xpYnJhcnkoJHtldmVyZXN0X3RhcmdldH0KLSAgbGlicmFyeS9ldmVyZXN0LmMKLSAgbGlicmFyeS94MjU1MTkuYwotICBsaWJyYXJ5L0hhY2xfQ3VydmUyNTUxOV9qb2luZWQuYykKLQotdGFyZ2V0X2luY2x1ZGVfZGlyZWN0b3JpZXMoJHtldmVyZXN0X3RhcmdldH0KLSAgUFVCTElDICQ8QlVJTERfSU5URVJGQUNFOiR7Q01BS0VfQ1VSUkVOVF9TT1VSQ0VfRElSfS9pbmNsdWRlPgotICAgICAgICAgJDxCVUlMRF9JTlRFUkZBQ0U6JHtNQkVEVExTX0RJUn0vaW5jbHVkZT4KLSAgICAgICAgICQ8QlVJTERfSU5URVJGQUNFOiR7TUJFRFRMU19ESVJ9L3RmLXBzYS1jcnlwdG8vaW5jbHVkZT4KLSAgICAgICAgICQ8SU5TVEFMTF9JTlRFUkZBQ0U6aW5jbHVkZT4KLSAgUFJJVkFURSBpbmNsdWRlL2V2ZXJlc3QKLSAgICAgICAgICBpbmNsdWRlL2V2ZXJlc3Qva3JlbWxpYgotICAgICAgICAgICR7TUJFRFRMU19ESVJ9L2xpYnJhcnkvKQotCi0jIFBhc3MtdGhyb3VnaCBNQkVEVExTX0NPTkZJR19GSUxFIGFuZCBNQkVEVExTX1VTRVJfQ09ORklHX0ZJTEUKLSMgVGhpcyBtdXN0IGJlIGR1cGxpY2F0ZWQgZnJvbSBsaWJyYXJ5L0NNYWtlTGlzdHMudHh0IGJlY2F1c2UKLSMgZXZlcmVzdCBpcyBub3QgZGlyZWN0bHkgbGlua2VkIGFnYWluc3QgYW55IG1iZWR0bHMgdGFyZ2V0cwotIyBzbyBkb2VzIG5vdCBpbmhlcml0IHRoZSBjb21waWxlIGRlZmluaXRpb25zLgotaWYoTUJFRFRMU19DT05GSUdfRklMRSkKLSAgICB0YXJnZXRfY29tcGlsZV9kZWZpbml0aW9ucygke2V2ZXJlc3RfdGFyZ2V0fQotICAgICAgICBQVUJMSUMgTUJFRFRMU19DT05GSUdfRklMRT0iJHtNQkVEVExTX0NPTkZJR19GSUxFfSIpCi1lbmRpZigpCi1pZihNQkVEVExTX1VTRVJfQ09ORklHX0ZJTEUpCi0gICAgdGFyZ2V0X2NvbXBpbGVfZGVmaW5pdGlvbnMoJHtldmVyZXN0X3RhcmdldH0KLSAgICAgICAgUFVCTElDIE1CRURUTFNfVVNFUl9DT05GSUdfRklMRT0iJHtNQkVEVExTX1VTRVJfQ09ORklHX0ZJTEV9IikKLWVuZGlmKCkKLQotaWYoSU5TVEFMTF9NQkVEVExTX0hFQURFUlMpCi0KLSAgaW5zdGFsbChESVJFQ1RPUlkgaW5jbHVkZS9ldmVyZXN0Ci0gICAgREVTVElOQVRJT04gaW5jbHVkZQotICAgIEZJTEVfUEVSTUlTU0lPTlMgT1dORVJfUkVBRCBPV05FUl9XUklURSBHUk9VUF9SRUFEIFdPUkxEX1JFQUQKLSAgICBESVJFQ1RPUllfUEVSTUlTU0lPTlMgT1dORVJfUkVBRCBPV05FUl9XUklURSBPV05FUl9FWEVDVVRFIEdST1VQX1JFQUQgR1JPVVBfRVhFQ1VURSBXT1JMRF9SRUFEIFdPUkxEX0VYRUNVVEUKLSAgICBGSUxFU19NQVRDSElORyBQQVRURVJOICIqLmgiKQotCi1lbmRpZihJTlNUQUxMX01CRURUTFNfSEVBREVSUykKLQotaW5zdGFsbChUQVJHRVRTICR7ZXZlcmVzdF90YXJnZXR9Ci0gIEVYUE9SVCBNYmVkVExTVGFyZ2V0cwotICBERVNUSU5BVElPTiAke0NNQUtFX0lOU1RBTExfTElCRElSfQotICBQRVJNSVNTSU9OUyBPV05FUl9SRUFEIE9XTkVSX1dSSVRFIEdST1VQX1JFQUQgV09STERfUkVBRCkKZGlmZiAtLWdpdCBhLzNyZHBhcnR5L3AyNTYtbS9DTWFrZUxpc3RzLnR4dCBiLzNyZHBhcnR5L3AyNTYtbS9DTWFrZUxpc3RzLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYmQzMDJhNy4uMDAwMDAwMAotLS0gYS8zcmRwYXJ0eS9wMjU2LW0vQ01ha2VMaXN0cy50eHQKKysrIC9kZXYvbnVsbApAQCAtMSw0MSArMCwwIEBACi1zZXQocDI1Nm1fdGFyZ2V0ICR7TUJFRFRMU19UQVJHRVRfUFJFRklYfXAyNTZtKQotCi1hZGRfbGlicmFyeSgke3AyNTZtX3RhcmdldH0KLSAgICBwMjU2LW1fZHJpdmVyX2VudHJ5cG9pbnRzLmMKLSAgICBwMjU2LW0vcDI1Ni1tLmMpCi0KLXRhcmdldF9pbmNsdWRlX2RpcmVjdG9yaWVzKCR7cDI1Nm1fdGFyZ2V0fQotICBQVUJMSUMgJDxCVUlMRF9JTlRFUkZBQ0U6JHtDTUFLRV9DVVJSRU5UX1NPVVJDRV9ESVJ9PgotICAgICAgICAgJDxCVUlMRF9JTlRFUkZBQ0U6JHtDTUFLRV9DVVJSRU5UX1NPVVJDRV9ESVJ9L3AyNTYtbT4KLSAgICAgICAgICQ8QlVJTERfSU5URVJGQUNFOiR7TUJFRFRMU19ESVJ9L2luY2x1ZGU+Ci0gICAgICAgICAkPEJVSUxEX0lOVEVSRkFDRToke01CRURUTFNfRElSfS90Zi1wc2EtY3J5cHRvL2luY2x1ZGU+Ci0gICAgICAgICAkPElOU1RBTExfSU5URVJGQUNFOmluY2x1ZGU+Ci0gIFBSSVZBVEUgJHtNQkVEVExTX0RJUn0vbGlicmFyeS8pCi0KLSMgUGFzcy10aHJvdWdoIE1CRURUTFNfQ09ORklHX0ZJTEUgYW5kIE1CRURUTFNfVVNFUl9DT05GSUdfRklMRQotIyBUaGlzIG11c3QgYmUgZHVwbGljYXRlZCBmcm9tIGxpYnJhcnkvQ01ha2VMaXN0cy50eHQgYmVjYXVzZQotIyBwMjU2bSBpcyBub3QgZGlyZWN0bHkgbGlua2VkIGFnYWluc3QgYW55IG1iZWR0bHMgdGFyZ2V0cwotIyBzbyBkb2VzIG5vdCBpbmhlcml0IHRoZSBjb21waWxlIGRlZmluaXRpb25zLgotaWYoTUJFRFRMU19DT05GSUdfRklMRSkKLSAgICB0YXJnZXRfY29tcGlsZV9kZWZpbml0aW9ucygke3AyNTZtX3RhcmdldH0KLSAgICAgICAgUFVCTElDIE1CRURUTFNfQ09ORklHX0ZJTEU9IiR7TUJFRFRMU19DT05GSUdfRklMRX0iKQotZW5kaWYoKQotaWYoTUJFRFRMU19VU0VSX0NPTkZJR19GSUxFKQotICAgIHRhcmdldF9jb21waWxlX2RlZmluaXRpb25zKCR7cDI1Nm1fdGFyZ2V0fQotICAgICAgICBQVUJMSUMgTUJFRFRMU19VU0VSX0NPTkZJR19GSUxFPSIke01CRURUTFNfVVNFUl9DT05GSUdfRklMRX0iKQotZW5kaWYoKQotCi1pZihJTlNUQUxMX01CRURUTFNfSEVBREVSUykKLQotICBpbnN0YWxsKERJUkVDVE9SWSA6JHtDTUFLRV9DVVJSRU5UX1NPVVJDRV9ESVJ9Ci0gICAgREVTVElOQVRJT04gaW5jbHVkZQotICAgIEZJTEVfUEVSTUlTU0lPTlMgT1dORVJfUkVBRCBPV05FUl9XUklURSBHUk9VUF9SRUFEIFdPUkxEX1JFQUQKLSAgICBESVJFQ1RPUllfUEVSTUlTU0lPTlMgT1dORVJfUkVBRCBPV05FUl9XUklURSBPV05FUl9FWEVDVVRFIEdST1VQX1JFQUQgR1JPVVBfRVhFQ1VURSBXT1JMRF9SRUFEIFdPUkxEX0VYRUNVVEUKLSAgICBGSUxFU19NQVRDSElORyBQQVRURVJOICIqLmgiKQotCi1lbmRpZihJTlNUQUxMX01CRURUTFNfSEVBREVSUykKLQotaW5zdGFsbChUQVJHRVRTICR7cDI1Nm1fdGFyZ2V0fQotRVhQT1JUIE1iZWRUTFNUYXJnZXRzCi1ERVNUSU5BVElPTiAke0NNQUtFX0lOU1RBTExfTElCRElSfQotUEVSTUlTU0lPTlMgT1dORVJfUkVBRCBPV05FUl9XUklURSBHUk9VUF9SRUFEIFdPUkxEX1JFQUQpCmRpZmYgLS1naXQgYS9DTWFrZUxpc3RzLnR4dCBiL0NNYWtlTGlzdHMudHh0CmluZGV4IGI1MjA1OGEuLmUxYmZiYjUgMTAwNjQ0Ci0tLSBhL0NNYWtlTGlzdHMudHh0CisrKyBiL0NNYWtlTGlzdHMudHh0CkBAIC03MywxMCArNzMsMTYgQEAKIAogb3B0aW9uKERJU0FCTEVfUEFDS0FHRV9DT05GSUdfQU5EX0lOU1RBTEwgIkRpc2FibGUgcGFja2FnZSBjb25maWd1cmF0aW9uLCB0YXJnZXQgZXhwb3J0IGFuZCBpbnN0YWxsYXRpb24iICR7TUJFRFRMU19BU19TVUJQUk9KRUNUfSkKIAotc3RyaW5nKFJFR0VYIE1BVENIICJDbGFuZyIgQ01BS0VfQ09NUElMRVJfSVNfQ0xBTkcgIiR7Q01BS0VfQ19DT01QSUxFUl9JRH0iKQotc3RyaW5nKFJFR0VYIE1BVENIICJHTlUiIENNQUtFX0NPTVBJTEVSX0lTX0dOVSAiJHtDTUFLRV9DX0NPTVBJTEVSX0lEfSIpCi1zdHJpbmcoUkVHRVggTUFUQ0ggIklBUiIgQ01BS0VfQ09NUElMRVJfSVNfSUFSICIke0NNQUtFX0NfQ09NUElMRVJfSUR9IikKLXN0cmluZyhSRUdFWCBNQVRDSCAiTVNWQyIgQ01BS0VfQ09NUElMRVJfSVNfTVNWQyAiJHtDTUFLRV9DX0NPTVBJTEVSX0lEfSIpCitpZiAoQ01BS0VfQ19TSU1VTEFURV9JRCkKKyAgICBzZXQoQ09NUElMRVJfSUQgJHtDTUFLRV9DX1NJTVVMQVRFX0lEfSkKK2Vsc2UoKQorICAgIHNldChDT01QSUxFUl9JRCAke0NNQUtFX0NfQ09NUElMRVJfSUR9KQorZW5kaWYoQ01BS0VfQ19TSU1VTEFURV9JRCkKKworc3RyaW5nKFJFR0VYIE1BVENIICJDbGFuZyIgQ01BS0VfQ09NUElMRVJfSVNfQ0xBTkcgIiR7Q09NUElMRVJfSUR9IikKK3N0cmluZyhSRUdFWCBNQVRDSCAiR05VIiBDTUFLRV9DT01QSUxFUl9JU19HTlUgIiR7Q09NUElMRVJfSUR9IikKK3N0cmluZyhSRUdFWCBNQVRDSCAiSUFSIiBDTUFLRV9DT01QSUxFUl9JU19JQVIgIiR7Q09NUElMRVJfSUR9IikKK3N0cmluZyhSRUdFWCBNQVRDSCAiTVNWQyIgQ01BS0VfQ09NUElMRVJfSVNfTVNWQyAiJHtDT01QSUxFUl9JRH0iKQogCiAjIHRoZSB0ZXN0IHN1aXRlcyBjdXJyZW50bHkgaGF2ZSBjb21waWxlIGVycm9ycyB3aXRoIE1TVkMKIGlmKENNQUtFX0NPTVBJTEVSX0lTX01TVkMpCkBAIC0xODQsOCArMTkwLDYgQEAKICAgICBzZXQoJHtkZXN0X3Zhcn0gJHtub19leHRfbmFtZX0gUEFSRU5UX1NDT1BFKQogZW5kZnVuY3Rpb24oZ2V0X25hbWVfd2l0aG91dF9sYXN0X2V4dCkKIAotc3RyaW5nKFJFR0VYIE1BVENIICJDbGFuZyIgQ01BS0VfQ09NUElMRVJfSVNfQ0xBTkcgIiR7Q01BS0VfQ19DT01QSUxFUl9JRH0iKQotCiBpbmNsdWRlKENoZWNrQ0NvbXBpbGVyRmxhZykKIAogc2V0KENNQUtFX0NfRVhURU5TSU9OUyBPRkYpCkBAIC0yOTAsMTIgKzI5NCwxMCBAQAogCiBhZGRfc3ViZGlyZWN0b3J5KGluY2x1ZGUpCiAKLWFkZF9zdWJkaXJlY3RvcnkoM3JkcGFydHkpCithZGRfc3ViZGlyZWN0b3J5KHRmLXBzYS1jcnlwdG8pCiAKIGFkZF9zdWJkaXJlY3RvcnkobGlicmFyeSkKIAotYWRkX3N1YmRpcmVjdG9yeSh0Zi1wc2EtY3J5cHRvKQotCiBhZGRfc3ViZGlyZWN0b3J5KHBrZ2NvbmZpZykKIAogIwpAQCAtMzUyLDcgKzM1NCwxMCBAQAogICAgICAgICBQUklWQVRFICR7Q01BS0VfQ1VSUkVOVF9TT1VSQ0VfRElSfS90ZXN0cy9pbmNsdWRlCiAgICAgICAgIFBSSVZBVEUgJHtDTUFLRV9DVVJSRU5UX1NPVVJDRV9ESVJ9L2luY2x1ZGUKICAgICAgICAgUFJJVkFURSAke0NNQUtFX0NVUlJFTlRfU09VUkNFX0RJUn0vdGYtcHNhLWNyeXB0by9pbmNsdWRlCi0gICAgICAgIFBSSVZBVEUgJHtDTUFLRV9DVVJSRU5UX1NPVVJDRV9ESVJ9L2xpYnJhcnkpCisgICAgICAgIFBSSVZBVEUgJHtDTUFLRV9DVVJSRU5UX1NPVVJDRV9ESVJ9L3RmLXBzYS1jcnlwdG8vZHJpdmVycy9idWlsdGluL2luY2x1ZGUKKyAgICAgICAgUFJJVkFURSAke0NNQUtFX0NVUlJFTlRfU09VUkNFX0RJUn0vbGlicmFyeQorICAgICAgICBQUklWQVRFICR7Q01BS0VfQ1VSUkVOVF9TT1VSQ0VfRElSfS90Zi1wc2EtY3J5cHRvL2NvcmUKKyAgICAgICAgUFJJVkFURSAke0NNQUtFX0NVUlJFTlRfU09VUkNFX0RJUn0vdGYtcHNhLWNyeXB0by9kcml2ZXJzL2J1aWx0aW4vc3JjKQogICAgICMgUmVxdWVzdCBDMTEsIG5lZWRlZCBmb3IgbWVtb3J5IHBvaXNvbmluZyB0ZXN0cwogICAgIHNldF90YXJnZXRfcHJvcGVydGllcyhtYmVkdGxzX3Rlc3QgUFJPUEVSVElFUyBDX1NUQU5EQVJEIDExKQogCkBAIC0zNjMsOCArMzY4LDExIEBACiAgICAgICAgIFBSSVZBVEUgJHtDTUFLRV9DVVJSRU5UX1NPVVJDRV9ESVJ9L3Rlc3RzL2luY2x1ZGUKICAgICAgICAgUFJJVkFURSAke0NNQUtFX0NVUlJFTlRfU09VUkNFX0RJUn0vaW5jbHVkZQogICAgICAgICBQUklWQVRFICR7Q01BS0VfQ1VSUkVOVF9TT1VSQ0VfRElSfS90Zi1wc2EtY3J5cHRvL2luY2x1ZGUKKyAgICAgICAgUFJJVkFURSAke0NNQUtFX0NVUlJFTlRfU09VUkNFX0RJUn0vdGYtcHNhLWNyeXB0by9kcml2ZXJzL2J1aWx0aW4vaW5jbHVkZQogICAgICAgICBQUklWQVRFICR7Q01BS0VfQ1VSUkVOVF9TT1VSQ0VfRElSfS9saWJyYXJ5Ci0gICAgICAgIFBSSVZBVEUgJHtDTUFLRV9DVVJSRU5UX1NPVVJDRV9ESVJ9LzNyZHBhcnR5L2V2ZXJlc3QvaW5jbHVkZSkKKyAgICAgICAgUFJJVkFURSAke0NNQUtFX0NVUlJFTlRfU09VUkNFX0RJUn0vdGYtcHNhLWNyeXB0by9jb3JlCisgICAgICAgIFBSSVZBVEUgJHtDTUFLRV9DVVJSRU5UX1NPVVJDRV9ESVJ9L3RmLXBzYS1jcnlwdG8vZHJpdmVycy9idWlsdGluL3NyYworICAgICAgICBQUklWQVRFICR7Q01BS0VfQ1VSUkVOVF9TT1VSQ0VfRElSfS90Zi1wc2EtY3J5cHRvL2RyaXZlcnMvZXZlcmVzdC9pbmNsdWRlKQogCiAgICAgIyBQYXNzLXRocm91Z2ggTUJFRFRMU19DT05GSUdfRklMRSBhbmQgTUJFRFRMU19VU0VSX0NPTkZJR19GSUxFCiAgICAgaWYoTUJFRFRMU19DT05GSUdfRklMRSkKZGlmZiAtLWdpdCBhL0NoYW5nZUxvZy5kLzkxMjYudHh0IGIvQ2hhbmdlTG9nLmQvOTEyNi50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjI5MzlkZgotLS0gL2Rldi9udWxsCisrKyBiL0NoYW5nZUxvZy5kLzkxMjYudHh0CkBAIC0wLDAgKzEsNSBAQAorRGVmYXVsdCBiZWhhdmlvciBjaGFuZ2VzCisgICAqIEluIGEgUFNBLWNsaWVudC1vbmx5IGJ1aWxkIChpLmUuIE1CRURUTFNfUFNBX0NSWVBUT19DTElFTlQgJiYKKyAgICAgIU1CRURUTFNfUFNBX0NSWVBUT19DKSwgZG8gbm90IGF1dG9tYXRpY2FsbHkgZW5hYmxlIGxvY2FsIGNyeXB0byB3aGVuIHRoZQorICAgICBjb3JyZXNwb25kaW5nIFBTQSBtZWNoYW5pc20gaXMgZW5hYmxlZCwgc2luY2UgdGhlIHNlcnZlciBwcm92aWRlcyB0aGUKKyAgICAgY3J5cHRvLiBGaXhlcyAjOTEyNi4KZGlmZiAtLWdpdCBhL0NoYW5nZUxvZy5kL2ZpeC10ZXN0LXN1aXRlLXBrLXdhcm5pbmdzLnR4dCBiL0NoYW5nZUxvZy5kL2ZpeC10ZXN0LXN1aXRlLXBrLXdhcm5pbmdzLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yNjA0MjE5Ci0tLSAvZGV2L251bGwKKysrIGIvQ2hhbmdlTG9nLmQvZml4LXRlc3Qtc3VpdGUtcGstd2FybmluZ3MudHh0CkBAIC0wLDAgKzEsMyBAQAorQnVnZml4CisgICAqIEZpeCByZWRlZmluaXRpb24gd2FybmluZ3Mgd2hlbiBTRUNQMTkyUjEgYW5kL29yIFNFQ1AxOTJLMSBhcmUgZGlzYWJsZWQuCisgICAgIEZpeGVzICM5MDI5LgpkaWZmIC0tZ2l0IGEvQ2hhbmdlTG9nLmQvcHNhX2NpcGhlcl9kZWNyeXB0LWNjbV9zdGFyLWl2X2xlbmd0aF9lbmZvcmNlbWVudC50eHQgYi9DaGFuZ2VMb2cuZC9wc2FfY2lwaGVyX2RlY3J5cHQtY2NtX3N0YXItaXZfbGVuZ3RoX2VuZm9yY2VtZW50LnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zOWUwM2I5Ci0tLSAvZGV2L251bGwKKysrIGIvQ2hhbmdlTG9nLmQvcHNhX2NpcGhlcl9kZWNyeXB0LWNjbV9zdGFyLWl2X2xlbmd0aF9lbmZvcmNlbWVudC50eHQKQEAgLTAsMCArMSwzIEBACitCdWdmaXgKKyAgICogRml4IHBzYV9jaXBoZXJfZGVjcnlwdCgpIHdpdGggQ0NNKiByZWplY3RpbmcgbWVzc2FnZXMgbGVzcyB0aGFuIDMgYnl0ZXMKKyAgICAgbG9uZy4gQ3JlZGl0IHRvIENyeXB0b2Z1enouIEZpeGVzICM5MzE0LgpkaWZmIC0tZ2l0IGEvQ2hhbmdlTG9nLmQvcmVtb3ZlLXZpYS1wYWRsb2NrLXN1cHBvcnQudHh0IGIvQ2hhbmdlTG9nLmQvcmVtb3ZlLXZpYS1wYWRsb2NrLXN1cHBvcnQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmEzZjRiOTYKLS0tIC9kZXYvbnVsbAorKysgYi9DaGFuZ2VMb2cuZC9yZW1vdmUtdmlhLXBhZGxvY2stc3VwcG9ydC50eHQKQEAgLTAsMCArMSwzIEBACitSZW1vdmFscworICAgKiBEcm9wIHN1cHBvcnQgZm9yIFZJQSBQYWRsb2NrLiBSZW1vdmVzIE1CRURUTFNfUEFETE9DS19DLgorICAgICBGaXhlcyAjNTkwMy4KZGlmZiAtLWdpdCBhL01ha2VmaWxlIGIvTWFrZWZpbGUKaW5kZXggMGYxZjNkYS4uYjYzODgwNCAxMDA2NDQKLS0tIGEvTWFrZWZpbGUKKysrIGIvTWFrZWZpbGUKQEAgLTMxLDcgKzMxLDEwIEBACiBsaWI6CiAJJChNQUtFKSAtQyBsaWJyYXJ5CiAKLXRlc3RzOiBsaWIgbWJlZHRsc190ZXN0CitpZm5kZWYgUFNBU0lNCit0ZXN0czogbGliCitlbmRpZgordGVzdHM6IG1iZWR0bHNfdGVzdAogCSQoTUFLRSkgLUMgdGVzdHMKIAogbWJlZHRsc190ZXN0OgpAQCAtOTUsNiArOTgsNyBAQAogaW5zdGFsbDogbm9fdGVzdAogCW1rZGlyIC1wICQoREVTVERJUikvaW5jbHVkZS9tYmVkdGxzCiAJY3AgLXJwIGluY2x1ZGUvbWJlZHRscyAkKERFU1RESVIpL2luY2x1ZGUKKwljcCAtcnAgdGYtcHNhLWNyeXB0by9kcml2ZXJzL2J1aWx0aW4vaW5jbHVkZS9tYmVkdGxzICQoREVTVERJUikvaW5jbHVkZQogCW1rZGlyIC1wICQoREVTVERJUikvaW5jbHVkZS9wc2EKIAljcCAtcnAgdGYtcHNhLWNyeXB0by9pbmNsdWRlL3BzYSAkKERFU1RESVIpL2luY2x1ZGUKIApAQCAtMTY3LDcgKzE3MSwxMCBAQAogCWlmIGV4aXN0IHZpc3VhbGNcVlMyMDE3XG1iZWRUTFMuc2xuIGRlbCAvUSAvRiB2aXN1YWxjXFZTMjAxN1xtYmVkVExTLnNsbgogZW5kaWYKIAotY2hlY2s6IGxpYiB0ZXN0cworaWZuZGVmIFBTQVNJTQorY2hlY2s6IGxpYgorZW5kaWYKK2NoZWNrOiB0ZXN0cwogCSQoTUFLRSkgLUMgdGVzdHMgY2hlY2sKIAogdGVzdDogY2hlY2sKQEAgLTE5MywxMSArMjAwLDE4IEBACiAKICMjIEVkaXRvciBuYXZpZ2F0aW9uIGZpbGVzCiBDX1NPVVJDRV9GSUxFUyA9ICQod2lsZGNhcmQgXAotCTNyZHBhcnR5LyovaW5jbHVkZS8qLyouaCAzcmRwYXJ0eS8qL2luY2x1ZGUvKi8qLyouaCAzcmRwYXJ0eS8qL2luY2x1ZGUvKi8qLyovKi5oIFwKLQkzcmRwYXJ0eS8qLyouYyAzcmRwYXJ0eS8qLyovKi5jIDNyZHBhcnR5LyovKi8qLyouYyAzcmRwYXJ0eS8qLyovKi8qLyouYyBcCiAJaW5jbHVkZS8qLyouaCBcCiAJbGlicmFyeS8qLltoY10gXAorCXRmLXBzYS1jcnlwdG8vY29yZS8qLltoY10gXAogCXRmLXBzYS1jcnlwdG8vaW5jbHVkZS8qLyouaCBcCisJdGYtcHNhLWNyeXB0by9kcml2ZXJzLyovaW5jbHVkZS8qLyouaCBcCisJdGYtcHNhLWNyeXB0by9kcml2ZXJzLyovaW5jbHVkZS8qLyovKi5oIFwKKwl0Zi1wc2EtY3J5cHRvL2RyaXZlcnMvKi9pbmNsdWRlLyovKi8qLyouaCBcCisJdGYtcHNhLWNyeXB0by9kcml2ZXJzL2J1aWx0aW4vc3JjLyouW2hjXSBcCisJdGYtcHNhLWNyeXB0by9kcml2ZXJzLyovKi5jIFwKKwl0Zi1wc2EtY3J5cHRvL2RyaXZlcnMvKi8qLyouYyBcCisJdGYtcHNhLWNyeXB0by9kcml2ZXJzLyovKi8qLyouYyBcCisJdGYtcHNhLWNyeXB0by9kcml2ZXJzLyovKi8qLyovKi5jIFwKIAlwcm9ncmFtcy8qLyouW2hjXSBcCiAJdGVzdHMvaW5jbHVkZS8qLyouaCB0ZXN0cy9pbmNsdWRlLyovKi8qLmggXAogCXRlc3RzL3NyYy8qLmMgdGVzdHMvc3JjLyovKi5jIFwKQEAgLTIxNCw1ICsyMjgsOCBAQAogCWxzICQoQ19TT1VSQ0VfRklMRVMpIHwgZ3RhZ3MgLWYgLSAtLWd0YWdzY29uZiAuZ2xvYmFscmMKIGNzY29wZTogY3Njb3BlLmluLm91dCBjc2NvcGUucG8ub3V0IGNzY29wZS5vdXQKIGNzY29wZS5pbi5vdXQgY3Njb3BlLnBvLm91dCBjc2NvcGUub3V0OiAkKENfU09VUkNFX0ZJTEVTKQotCWNzY29wZSAtYnEgLXUgLUlpbmNsdWRlIC1JbGlicmFyeSAtSXRmLXBzYS1jcnlwdG8vaW5jbHVkZSAkKHBhdHN1YnN0ICUsLUklLCQod2lsZGNhcmQgM3JkcGFydHkvKi9pbmNsdWRlKSkgLUl0ZXN0cy9pbmNsdWRlICQoQ19TT1VSQ0VfRklMRVMpCisJY3Njb3BlIC1icSAtdSAtSWluY2x1ZGUgLUlsaWJyYXJ5IC1JdGYtcHNhLWNyeXB0by9jb3JlIFwKKyAgICAgICAgLUl0Zi1wc2EtY3J5cHRvL2luY2x1ZGUgXAorCS1JdGYtcHNhLWNyeXB0by9kcml2ZXJzL2J1aWx0aW4vc3JjIFwKKwkkKHBhdHN1YnN0ICUsLUklLCQod2lsZGNhcmQgdGYtcHNhLWNyeXB0by9kcml2ZXJzLyovaW5jbHVkZSkpIC1JdGVzdHMvaW5jbHVkZSAkKENfU09VUkNFX0ZJTEVTKQogLlBIT05ZOiBjc2NvcGUgZ2xvYmFsCmRpZmYgLS1naXQgYS9SRUFETUUubWQgYi9SRUFETUUubWQKaW5kZXggYjcwYzY3ZS4uOTY2YjI3NiAxMDA2NDQKLS0tIGEvUkVBRE1FLm1kCisrKyBiL1JFQURNRS5tZApAQCAtMzE1LDEwICszMTUsMTAgQEAKIAogIyMjIFRoaXJkLXBhcnR5IGNvZGUgaW5jbHVkZWQgaW4gTWJlZCBUTFMKIAotVGhpcyBwcm9qZWN0IGNvbnRhaW5zIGNvZGUgZnJvbSBvdGhlciBwcm9qZWN0cy4gVGhpcyBjb2RlIGlzIGxvY2F0ZWQgd2l0aGluIHRoZSBgM3JkcGFydHkvYCBkaXJlY3RvcnkuIFRoZSBvcmlnaW5hbCBsaWNlbnNlIHRleHQgaXMgaW5jbHVkZWQgd2l0aGluIHByb2plY3Qgc3ViZGlyZWN0b3JpZXMsIHdoZXJlIGl0IGRpZmZlcnMgZnJvbSB0aGUgbm9ybWFsIE1iZWQgVExTIGxpY2Vuc2UsIGFuZC9vciBpbiBzb3VyY2UgZmlsZXMuIFRoZSBwcm9qZWN0cyBhcmUgbGlzdGVkIGJlbG93OgorVGhpcyBwcm9qZWN0IGNvbnRhaW5zIGNvZGUgZnJvbSBvdGhlciBwcm9qZWN0cy4gVGhpcyBjb2RlIGlzIGxvY2F0ZWQgd2l0aGluIHRoZSBgdGYtcHNhLWNyeXB0by9kcml2ZXJzL2AgZGlyZWN0b3J5LiBUaGUgb3JpZ2luYWwgbGljZW5zZSB0ZXh0IGlzIGluY2x1ZGVkIHdpdGhpbiBwcm9qZWN0IHN1YmRpcmVjdG9yaWVzLCB3aGVyZSBpdCBkaWZmZXJzIGZyb20gdGhlIG5vcm1hbCBNYmVkIFRMUyBsaWNlbnNlLCBhbmQvb3IgaW4gc291cmNlIGZpbGVzLiBUaGUgcHJvamVjdHMgYXJlIGxpc3RlZCBiZWxvdzoKIAotKiBgM3JkcGFydHkvZXZlcmVzdC9gOiBGaWxlcyBzdGVtIGZyb20gW1Byb2plY3QgRXZlcmVzdF0oaHR0cHM6Ly9wcm9qZWN0LWV2ZXJlc3QuZ2l0aHViLmlvLykgYW5kIGFyZSBkaXN0cmlidXRlZCB1bmRlciB0aGUgQXBhY2hlIDIuMCBsaWNlbnNlLgotKiBgM3JkcGFydHkvcDI1Ni1tL3AyNTYtbS9gOiBGaWxlcyBoYXZlIGJlZW4gdGFrZW4gZnJvbSB0aGUgW3AyNTYtbV0oaHR0cHM6Ly9naXRodWIuY29tL21wZy9wMjU2LW0pIHJlcG9zaXRvcnkuIFRoZSBjb2RlIGluIHRoZSBvcmlnaW5hbCByZXBvc2l0b3J5IGlzIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBBcGFjaGUgMi4wIGxpY2Vuc2UuIEl0IGlzIGRpc3RyaWJ1dGVkIGluIE1iZWQgVExTIHVuZGVyIGEgZHVhbCBBcGFjaGUtMi4wIE9SIEdQTC0yLjAtb3ItbGF0ZXIgbGljZW5zZSB3aXRoIHBlcm1pc3Npb24gZnJvbSB0aGUgYXV0aG9yLgorKiBgZHJpdmVycy9ldmVyZXN0L2A6IEZpbGVzIHN0ZW0gZnJvbSBbUHJvamVjdCBFdmVyZXN0XShodHRwczovL3Byb2plY3QtZXZlcmVzdC5naXRodWIuaW8vKSBhbmQgYXJlIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBBcGFjaGUgMi4wIGxpY2Vuc2UuCisqIGBkcml2ZXJzL3AyNTYtbS9wMjU2LW0vYDogRmlsZXMgaGF2ZSBiZWVuIHRha2VuIGZyb20gdGhlIFtwMjU2LW1dKGh0dHBzOi8vZ2l0aHViLmNvbS9tcGcvcDI1Ni1tKSByZXBvc2l0b3J5LiBUaGUgY29kZSBpbiB0aGUgb3JpZ2luYWwgcmVwb3NpdG9yeSBpcyBkaXN0cmlidXRlZCB1bmRlciB0aGUgQXBhY2hlIDIuMCBsaWNlbnNlLiBJdCBpcyBkaXN0cmlidXRlZCBpbiBNYmVkIFRMUyB1bmRlciBhIGR1YWwgQXBhY2hlLTIuMCBPUiBHUEwtMi4wLW9yLWxhdGVyIGxpY2Vuc2Ugd2l0aCBwZXJtaXNzaW9uIGZyb20gdGhlIGF1dGhvci4KIAogQ29udHJpYnV0aW5nCiAtLS0tLS0tLS0tLS0KZGlmZiAtLWdpdCBhL1NFQ1VSSVRZLm1kIGIvU0VDVVJJVFkubWQKaW5kZXggN2VkNzJkZS4uOTUwNmViOSAxMDA2NDQKLS0tIGEvU0VDVVJJVFkubWQKKysrIGIvU0VDVVJJVFkubWQKQEAgLTEyOCw3ICsxMjgsNyBAQAogCiAtIFR1cm4gb24gaGFyZHdhcmUgYWNjZWxlcmF0aW9uIGZvciBBRVMuIFRoaXMgaXMgc3VwcG9ydGVkIG9ubHkgb24gc2VsZWN0ZWQKICAgYXJjaGl0ZWN0dXJlcyBhbmQgY3VycmVudGx5IG9ubHkgYXZhaWxhYmxlIGZvciBBRVMuIFNlZSBjb25maWd1cmF0aW9uIG9wdGlvbnMKLSAgYE1CRURUTFNfQUVTQ0VfQ2AsIGBNQkVEVExTX0FFU05JX0NgIGFuZCBgTUJFRFRMU19QQURMT0NLX0NgIGZvciBkZXRhaWxzLgorICBgTUJFRFRMU19BRVNDRV9DYCwgYE1CRURUTFNfQUVTTklfQ2AgZm9yIGRldGFpbHMuCiAtIEFkZCBhIHNlY3VyZSBhbHRlcm5hdGl2ZSBpbXBsZW1lbnRhdGlvbiAodHlwaWNhbGx5IGhhcmR3YXJlIGFjY2VsZXJhdGlvbikgZm9yCiAgIHRoZSB2dWxuZXJhYmxlIGNpcGhlci4gU2VlIHRoZSBbQWx0ZXJuYXRpdmUgSW1wbGVtZW50YXRpb25zCiBHdWlkZV0oZG9jcy9hcmNoaXRlY3R1cmUvYWx0ZXJuYXRpdmUtaW1wbGVtZW50YXRpb25zLm1kKSBmb3IgbW9yZSBpbmZvcm1hdGlvbi4KZGlmZiAtLWdpdCBhL2NvbmZpZ3MvY29uZmlnLW5vLWVudHJvcHkuaCBiL2NvbmZpZ3MvY29uZmlnLW5vLWVudHJvcHkuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZGRiMDBiNC4uMDAwMDAwMAotLS0gYS9jb25maWdzL2NvbmZpZy1uby1lbnRyb3B5LmgKKysrIC9kZXYvbnVsbApAQCAtMSw3MyArMCwwIEBACi0vKioKLSAqIFxmaWxlIGNvbmZpZy1uby1lbnRyb3B5LmgKLSAqCi0gKiBcYnJpZWYgTWluaW1hbCBjb25maWd1cmF0aW9uIG9mIGZlYXR1cmVzIHRoYXQgZG8gbm90IHJlcXVpcmUgYW4gZW50cm9weSBzb3VyY2UKLSAqLwotLyoKLSAqICBDb3B5cmlnaHQgVGhlIE1iZWQgVExTIENvbnRyaWJ1dG9ycwotICogIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wIE9SIEdQTC0yLjAtb3ItbGF0ZXIKLSAqLwotLyoKLSAqIE1pbmltYWwgY29uZmlndXJhdGlvbiBvZiBmZWF0dXJlcyB0aGF0IGRvIG5vdCByZXF1aXJlIGFuIGVudHJvcHkgc291cmNlCi0gKiBEaXN0aW5ndWlzaGluZyBmZWF0dXJlczoKLSAqIC0gbm8gZW50cm9weSBtb2R1bGUKLSAqIC0gbm8gVExTIHByb3RvY29sIGltcGxlbWVudGF0aW9uIGF2YWlsYWJsZSBkdWUgdG8gYWJzZW5jZSBvZiBhbiBlbnRyb3B5Ci0gKiAgIHNvdXJjZQotICoKLSAqIFNlZSBSRUFETUUudHh0IGZvciB1c2FnZSBpbnN0cnVjdGlvbnMuCi0gKi8KLQotLyogU3lzdGVtIHN1cHBvcnQgKi8KLSNkZWZpbmUgTUJFRFRMU19IQVZFX0FTTQotI2RlZmluZSBNQkVEVExTX0hBVkVfVElNRQotCi0vKiBNYmVkIFRMUyBmZWF0dXJlIHN1cHBvcnQgKi8KLSNkZWZpbmUgTUJFRFRMU19DSVBIRVJfTU9ERV9DQkMKLSNkZWZpbmUgTUJFRFRMU19DSVBIRVJfUEFERElOR19QS0NTNwotI2RlZmluZSBNQkVEVExTX0VDUF9EUF9TRUNQMjU2UjFfRU5BQkxFRAotI2RlZmluZSBNQkVEVExTX0VDUF9EUF9TRUNQMzg0UjFfRU5BQkxFRAotI2RlZmluZSBNQkVEVExTX0VDUF9EUF9DVVJWRTI1NTE5X0VOQUJMRUQKLSNkZWZpbmUgTUJFRFRMU19FQ1BfTklTVF9PUFRJTQotI2RlZmluZSBNQkVEVExTX0VDRFNBX0RFVEVSTUlOSVNUSUMKLSNkZWZpbmUgTUJFRFRMU19QS19SU0FfQUxUX1NVUFBPUlQKLSNkZWZpbmUgTUJFRFRMU19QS0NTMV9WMTUKLSNkZWZpbmUgTUJFRFRMU19QS0NTMV9WMjEKLSNkZWZpbmUgTUJFRFRMU19TRUxGX1RFU1QKLSNkZWZpbmUgTUJFRFRMU19WRVJTSU9OX0ZFQVRVUkVTCi0KLS8qIE1iZWQgVExTIG1vZHVsZXMgKi8KLSNkZWZpbmUgTUJFRFRMU19BRVNfQwotI2RlZmluZSBNQkVEVExTX0FTTjFfUEFSU0VfQwotI2RlZmluZSBNQkVEVExTX0FTTjFfV1JJVEVfQwotI2RlZmluZSBNQkVEVExTX0JBU0U2NF9DCi0jZGVmaW5lIE1CRURUTFNfQklHTlVNX0MKLSNkZWZpbmUgTUJFRFRMU19DQ01fQwotI2RlZmluZSBNQkVEVExTX0NJUEhFUl9DCi0jZGVmaW5lIE1CRURUTFNfRUNEU0FfQwotI2RlZmluZSBNQkVEVExTX0VDUF9DCi0jZGVmaW5lIE1CRURUTFNfRVJST1JfQwotI2RlZmluZSBNQkVEVExTX0dDTV9DCi0jZGVmaW5lIE1CRURUTFNfSE1BQ19EUkJHX0MKLSNkZWZpbmUgTUJFRFRMU19NRF9DCi0jZGVmaW5lIE1CRURUTFNfT0lEX0MKLSNkZWZpbmUgTUJFRFRMU19QRU1fUEFSU0VfQwotI2RlZmluZSBNQkVEVExTX1BLX0MKLSNkZWZpbmUgTUJFRFRMU19QS19QQVJTRV9DCi0jZGVmaW5lIE1CRURUTFNfUEtfV1JJVEVfQwotI2RlZmluZSBNQkVEVExTX1BMQVRGT1JNX0MKLSNkZWZpbmUgTUJFRFRMU19SU0FfQwotLyogVGhlIGxpYnJhcnkgZG9lcyBub3QgY3VycmVudGx5IHN1cHBvcnQgZW5hYmxpbmcgU0hBLTIyNCB3aXRob3V0IFNIQS0yNTYuCi0gKiBBIGZ1dHVyZSB2ZXJzaW9uIG9mIHRoZSBsaWJyYXJ5IHdpbGwgaGF2ZSB0aGlzIG9wdGlvbiBkaXNhYmxlZAotICogYnkgZGVmYXVsdC4gKi8KLSNkZWZpbmUgTUJFRFRMU19TSEEyMjRfQwotI2RlZmluZSBNQkVEVExTX1NIQTI1Nl9DCi0jZGVmaW5lIE1CRURUTFNfU0hBMzg0X0MKLSNkZWZpbmUgTUJFRFRMU19TSEE1MTJfQwotI2RlZmluZSBNQkVEVExTX1ZFUlNJT05fQwotI2RlZmluZSBNQkVEVExTX1g1MDlfVVNFX0MKLSNkZWZpbmUgTUJFRFRMU19YNTA5X0NSVF9QQVJTRV9DCi0jZGVmaW5lIE1CRURUTFNfWDUwOV9DUkxfUEFSU0VfQwotLy8jZGVmaW5lIE1CRURUTFNfQ01BQ19DCi0KLS8qIE1pc2NlbGxhbmVvdXMgb3B0aW9ucyAqLwotI2RlZmluZSBNQkVEVExTX0FFU19ST01fVEFCTEVTCmRpZmYgLS1naXQgYS9jb25maWdzL2V4dC90Zm1fbWJlZGNyeXB0b19jb25maWdfcHJvZmlsZV9tZWRpdW0uaCBiL2NvbmZpZ3MvZXh0L3RmbV9tYmVkY3J5cHRvX2NvbmZpZ19wcm9maWxlX21lZGl1bS5oCmluZGV4IGVjZGVjZWEuLjBlN2JjNjggMTAwNjQ0Ci0tLSBhL2NvbmZpZ3MvZXh0L3RmbV9tYmVkY3J5cHRvX2NvbmZpZ19wcm9maWxlX21lZGl1bS5oCisrKyBiL2NvbmZpZ3MvZXh0L3RmbV9tYmVkY3J5cHRvX2NvbmZpZ19wcm9maWxlX21lZGl1bS5oCkBAIC01Niw3ICs1Niw2IEBACiAgKgogICogUmVxdWlyZWQgYnk6CiAgKiAgICAgIE1CRURUTFNfQUVTTklfQwotICogICAgICBNQkVEVExTX1BBRExPQ0tfQwogICoKICAqIENvbW1lbnQgdG8gZGlzYWJsZSB0aGUgdXNlIG9mIGFzc2VtYmx5IGNvZGUuCiAgKi8KZGlmZiAtLWdpdCBhL2RvY3MvYXJjaGl0ZWN0dXJlL2FsdGVybmF0aXZlLWltcGxlbWVudGF0aW9ucy5tZCBiL2RvY3MvYXJjaGl0ZWN0dXJlL2FsdGVybmF0aXZlLWltcGxlbWVudGF0aW9ucy5tZAppbmRleCBlYWNkZWE3Li41NDlkNDdjIDEwMDY0NAotLS0gYS9kb2NzL2FyY2hpdGVjdHVyZS9hbHRlcm5hdGl2ZS1pbXBsZW1lbnRhdGlvbnMubWQKKysrIGIvZG9jcy9hcmNoaXRlY3R1cmUvYWx0ZXJuYXRpdmUtaW1wbGVtZW50YXRpb25zLm1kCkBAIC00Niw3ICs0Niw3IEBACiAKIFdoZXJlIGEgY29udGV4dCB0eXBlIG5lZWRzIHRvIGhhdmUgYSBjZXJ0YWluIGZpZWxkLCB0aGUgZmllbGQgbXVzdCBoYXZlIHRoZSBzYW1lIHR5cGUgYW5kIHNlbWFudGljcyBhcyBpbiB0aGUgYnVpbHQtaW4gaW1wbGVtZW50YXRpb24sIGJ1dCBkb2VzIG5vdCBuZWVkIHRvIGJlIGF0IHRoZSBzYW1lIHBvc2l0aW9uIGluIHRoZSBzdHJ1Y3R1cmUuIEZ1cnRoZXJtb3JlLCB1bmxlc3Mgb3RoZXJ3aXNlIGluZGljYXRlZCwgb25seSByZWFkIGFjY2VzcyBpcyBuZWNlc3Nhcnk6IHRoZSBmaWVsZCBjYW4gYmUgYGNvbnN0YCwgYW5kIG1vZGlmaWNhdGlvbnMgdG8gaXQgZG8gbm90IG5lZWQgdG8gYmUgc3VwcG9ydGVkLiBGb3IgZXhhbXBsZSwgaWYgYW4gYWx0ZXJuYXRpdmUgaW1wbGVtZW50YXRpb24gb2YgYXN5bW1ldHJpYyBjcnlwdG9ncmFwaHkgdXNlcyBhIGRpZmZlcmVudCByZXByZXNlbnRhdGlvbiBvZiBsYXJnZSBpbnRlZ2VycywgaXQgaXMgc3VmZmljaWVudCB0byBwcm92aWRlIGEgcmVhZC1vbmx5IGNvcHkgb2YgdGhlIGZpZWxkcyBsaXN0ZWQgaGVyZSBvZiB0eXBlIGBtYmVkdGxzX21waWAuCiAKLSogQUVTOiBpZiBgTUJFRFRMU19BRVNOSV9DYCBvciBgTUJFRFRMU19QQURMT0NLX0NgIGlzIGVuYWJsZWQsIGBtYmVkdGxzX2Flc19jb250ZXh0YCBtdXN0IGhhdmUgdGhlIGZpZWxkcyBgbnJgIGFuZCBgcmtgLgorKiBBRVM6IGlmIGBNQkVEVExTX0FFU05JX0NgIGlzIGVuYWJsZWQsIGBtYmVkdGxzX2Flc19jb250ZXh0YCBtdXN0IGhhdmUgdGhlIGZpZWxkcyBgbnJgIGFuZCBgcmtgLgogKiBESE06IGlmIGBNQkVEVExTX0RFQlVHX0NgIGlzIGVuYWJsZWQsIGBtYmVkdGxzX2RobV9jb250ZXh0YCBtdXN0IGhhdmUgdGhlIGZpZWxkcyBgUGAsIGBRYCwgYEdgLCBgR1hgLCBgR1lgIGFuZCBgS2AuCiAqIEVDUDogYG1iZWR0bHNfZWNwX2dyb3VwYCBtdXN0IGhhdmUgdGhlIGZpZWxkcyBgaWRgLCBgUGAsIGBBYCwgYEJgLCBgR2AsIGBOYCwgYHBiaXRzYCBhbmQgYG5iaXRzYC4KICAgICAqIElmIGBNQkVEVExTX1BLX1BBUlNFX0VDX0VYVEVOREVEYCBpcyBlbmFibGVkLCB0aG9zZSBmaWVsZHMgbXVzdCBiZSB3cml0YWJsZSwgYW5kIGBtYmVkdGxzX2VjcF9wb2ludF9yZWFkX2JpbmFyeSgpYCBtdXN0IHN1cHBvcnQgYSBncm91cCBzdHJ1Y3R1cmUgd2hlcmUgb25seSBgUGAsIGBwYml0c2AsIGBBYCBhbmQgYEJgIGFyZSBzZXQuCmRpZmYgLS1naXQgYS9kb2NzL3BzYS1kcml2ZXItZXhhbXBsZS1hbmQtZ3VpZGUubWQgYi9kb2NzL3BzYS1kcml2ZXItZXhhbXBsZS1hbmQtZ3VpZGUubWQKaW5kZXggYWE4MjVhZC4uYTVlOWIxNiAxMDA2NDQKLS0tIGEvZG9jcy9wc2EtZHJpdmVyLWV4YW1wbGUtYW5kLWd1aWRlLm1kCisrKyBiL2RvY3MvcHNhLWRyaXZlci1leGFtcGxlLWFuZC1ndWlkZS5tZApAQCAtMTM4LDcgKzEzOCw3IEBACiAKICMjIyBFeGFtcGxlOiBNYW51YWxseSBpbnRlZ3JhdGluZyBhIHNvZnR3YXJlIGFjY2VsZXJhdG9yIGFsb25nc2lkZSBNYmVkIFRMUwogCi1bcDI1Ni1tXShodHRwczovL2dpdGh1Yi5jb20vbXBnL3AyNTYtbSkgaXMgYSBtaW5pbWFsaXN0aWMgaW1wbGVtZW50YXRpb24gb2YgRUNESCBhbmQgRUNEU0Egb24gdGhlIE5JU1QgUC0yNTYgY3VydmUsIHNwZWNpZmljYWxseSBvcHRpbWl6ZWQgZm9yIHVzZSBpbiBjb25zdHJhaW5lZCAzMi1iaXQgZW52aXJvbm1lbnRzLiBJdCBzdGFydGVkIG91dCBhcyBhbiBpbmRlcGVuZGVudCBwcm9qZWN0IGFuZCBoYXMgYmVlbiBpbnRlZ3JhdGVkIGluIE1iZWQgVExTIGFzIGEgUFNBIHRyYW5zcGFyZW50IGRyaXZlci4gVGhlIHNvdXJjZSBjb2RlIG9mIHAyNTYtbSBhbmQgdGhlIGRyaXZlciBlbnRyeSBwb2ludHMgaXMgbG9jYXRlZCBpbiB0aGUgTWJlZCBUTFMgc291cmNlIHRyZWUgdW5kZXIgYDNyZHBhcnR5L3AyNTYtbWAuIEluIHRoaXMgc2VjdGlvbiwgd2Ugd2lsbCBsb29rIGF0IGhvdyB0aGlzIGludGVncmF0aW9uIHdhcyBkb25lLgorW3AyNTYtbV0oaHR0cHM6Ly9naXRodWIuY29tL21wZy9wMjU2LW0pIGlzIGEgbWluaW1hbGlzdGljIGltcGxlbWVudGF0aW9uIG9mIEVDREggYW5kIEVDRFNBIG9uIHRoZSBOSVNUIFAtMjU2IGN1cnZlLCBzcGVjaWZpY2FsbHkgb3B0aW1pemVkIGZvciB1c2UgaW4gY29uc3RyYWluZWQgMzItYml0IGVudmlyb25tZW50cy4gSXQgc3RhcnRlZCBvdXQgYXMgYW4gaW5kZXBlbmRlbnQgcHJvamVjdCBhbmQgaGFzIGJlZW4gaW50ZWdyYXRlZCBpbiBNYmVkIFRMUyBhcyBhIFBTQSB0cmFuc3BhcmVudCBkcml2ZXIuIFRoZSBzb3VyY2UgY29kZSBvZiBwMjU2LW0gYW5kIHRoZSBkcml2ZXIgZW50cnkgcG9pbnRzIGlzIGxvY2F0ZWQgaW4gdGhlIE1iZWQgVExTIHNvdXJjZSB0cmVlIHVuZGVyIGBkcml2ZXJzL3AyNTYtbWAuIEluIHRoaXMgc2VjdGlvbiwgd2Ugd2lsbCBsb29rIGF0IGhvdyB0aGlzIGludGVncmF0aW9uIHdhcyBkb25lLgogCiBUaGUgTWJlZCBUTFMgYnVpbGQgc3lzdGVtIGluY2x1ZGVzIHRoZSBpbnN0cnVjdGlvbnMgbmVlZGVkIHRvIGJ1aWxkIHAyNTYtbS4gVG8gYnVpbGQgd2l0aCBhbmQgdXNlIHAyNTYtbSwgc2V0IHRoZSBtYWNybyBgTUJFRFRMU19QU0FfUDI1Nk1fRFJJVkVSX0VOQUJMRURgIHVzaW5nIGBjb25maWcucHlgLCB0aGVuIGJ1aWxkIGFzIHVzdWFsIHVzaW5nIG1ha2UvY21ha2UuIEZyb20gdGhlIHJvb3Qgb2YgdGhlIGBtYmVkdGxzL2AgZGlyZWN0b3J5LCBydW46CiAKZGlmZiAtLWdpdCBhL2RvY3MvcmVxdWlyZW1lbnRzLnR4dCBiL2RvY3MvcmVxdWlyZW1lbnRzLnR4dAppbmRleCBhMWJmZDgyLi4yMjg3YjJhIDEwMDY0NAotLS0gYS9kb2NzL3JlcXVpcmVtZW50cy50eHQKKysrIGIvZG9jcy9yZXF1aXJlbWVudHMudHh0CkBAIC0xLDYzICsxLDY2IEBACiAjCi0jIFRoaXMgZmlsZSBpcyBhdXRvZ2VuZXJhdGVkIGJ5IHBpcC1jb21waWxlIHdpdGggUHl0aG9uIDMuOQorIyBUaGlzIGZpbGUgaXMgYXV0b2dlbmVyYXRlZCBieSBwaXAtY29tcGlsZSB3aXRoIFB5dGhvbiAzLjgKICMgYnkgdGhlIGZvbGxvd2luZyBjb21tYW5kOgogIwogIyAgICBwaXAtY29tcGlsZSByZXF1aXJlbWVudHMuaW4KICMKIGFsYWJhc3Rlcj09MC43LjEzCiAgICAgIyB2aWEgc3BoaW54Ci1iYWJlbD09Mi4xMi4xCitiYWJlbD09Mi4xNS4wCiAgICAgIyB2aWEgc3BoaW54CiBicmVhdGhlPT00LjM1LjAKICAgICAjIHZpYSAtciByZXF1aXJlbWVudHMuaW4KLWNlcnRpZmk9PTIwMjIuMTIuNworY2VydGlmaT09MjAyNC43LjQKICAgICAjIHZpYSByZXF1ZXN0cwotY2hhcnNldC1ub3JtYWxpemVyPT0zLjEuMAorY2hhcnNldC1ub3JtYWxpemVyPT0zLjMuMgogICAgICMgdmlhIHJlcXVlc3RzCi1jbGljaz09OC4xLjMKK2NsaWNrPT04LjEuNwogICAgICMgdmlhIHJlYWR0aGVkb2NzLWNsaQotZG9jdXRpbHM9PTAuMTcuMQorZG9jdXRpbHM9PTAuMjAuMQogICAgICMgdmlhCiAgICAgIyAgIGJyZWF0aGUKICAgICAjICAgc3BoaW54CiAgICAgIyAgIHNwaGlueC1ydGQtdGhlbWUKLWlkbmE9PTMuNAoraWRuYT09My43CiAgICAgIyB2aWEgcmVxdWVzdHMKIGltYWdlc2l6ZT09MS40LjEKICAgICAjIHZpYSBzcGhpbngKLWltcG9ydGxpYi1tZXRhZGF0YT09Ni4wLjAKK2ltcG9ydGxpYi1tZXRhZGF0YT09OC4wLjAKICAgICAjIHZpYSBzcGhpbngKLWppbmphMj09My4xLjIKK2ppbmphMj09My4xLjQKICAgICAjIHZpYSBzcGhpbngKLW1hcmtkb3duLWl0LXB5PT0yLjIuMAorbWFya2Rvd24taXQtcHk9PTMuMC4wCiAgICAgIyB2aWEgcmljaAotbWFya3Vwc2FmZT09Mi4xLjIKK21hcmt1cHNhZmU9PTIuMS41CiAgICAgIyB2aWEgamluamEyCiBtZHVybD09MC4xLjIKICAgICAjIHZpYSBtYXJrZG93bi1pdC1weQotcGFja2FnaW5nPT0yMy4wCitwYWNrYWdpbmc9PTI0LjEKICAgICAjIHZpYSBzcGhpbngKLXB5Z21lbnRzPT0yLjE0LjAKK3B5Z21lbnRzPT0yLjE4LjAKICAgICAjIHZpYQogICAgICMgICByaWNoCiAgICAgIyAgIHNwaGlueAotcHl5YW1sPT02LjAKK3B5dHo9PTIwMjQuMQorICAgICMgdmlhIGJhYmVsCitweXlhbWw9PTYuMC4xCiAgICAgIyB2aWEgcmVhZHRoZWRvY3MtY2xpCiByZWFkdGhlZG9jcy1jbGk9PTQKICAgICAjIHZpYSAtciByZXF1aXJlbWVudHMuaW4KLXJlcXVlc3RzPT0yLjI4LjIKK3JlcXVlc3RzPT0yLjMyLjMKICAgICAjIHZpYQogICAgICMgICByZWFkdGhlZG9jcy1jbGkKICAgICAjICAgc3BoaW54Ci1yaWNoPT0xMy4zLjUKK3JpY2g9PTEzLjcuMQogICAgICMgdmlhIHJlYWR0aGVkb2NzLWNsaQogc25vd2JhbGxzdGVtbWVyPT0yLjIuMAogICAgICMgdmlhIHNwaGlueAotc3BoaW54PT00LjUuMAorc3BoaW54PT03LjEuMgogICAgICMgdmlhCiAgICAgIyAgIGJyZWF0aGUKICAgICAjICAgc3BoaW54LXJ0ZC10aGVtZQotc3BoaW54LXJ0ZC10aGVtZT09MS4yLjAKKyAgICAjICAgc3BoaW54Y29udHJpYi1qcXVlcnkKK3NwaGlueC1ydGQtdGhlbWU9PTIuMC4wCiAgICAgIyB2aWEgLXIgcmVxdWlyZW1lbnRzLmluCiBzcGhpbnhjb250cmliLWFwcGxlaGVscD09MS4wLjQKICAgICAjIHZpYSBzcGhpbngKQEAgLTY1LDcgKzY4LDcgQEAKICAgICAjIHZpYSBzcGhpbngKIHNwaGlueGNvbnRyaWItaHRtbGhlbHA9PTIuMC4xCiAgICAgIyB2aWEgc3BoaW54Ci1zcGhpbnhjb250cmliLWpxdWVyeT09Mi4wLjAKK3NwaGlueGNvbnRyaWItanF1ZXJ5PT00LjEKICAgICAjIHZpYSBzcGhpbngtcnRkLXRoZW1lCiBzcGhpbnhjb250cmliLWpzbWF0aD09MS4wLjEKICAgICAjIHZpYSBzcGhpbngKQEAgLTczLDEwICs3Niw5IEBACiAgICAgIyB2aWEgc3BoaW54CiBzcGhpbnhjb250cmliLXNlcmlhbGl6aW5naHRtbD09MS4xLjUKICAgICAjIHZpYSBzcGhpbngKLXVybGxpYjM9PTEuMjYuMTUKK3R5cGluZy1leHRlbnNpb25zPT00LjEyLjIKKyAgICAjIHZpYSByaWNoCit1cmxsaWIzPT0yLjIuMgogICAgICMgdmlhIHJlcXVlc3RzCi16aXBwPT0zLjE1LjAKK3ppcHA9PTMuMTkuMgogICAgICMgdmlhIGltcG9ydGxpYi1tZXRhZGF0YQotCi0jIFRoZSBmb2xsb3dpbmcgcGFja2FnZXMgYXJlIGNvbnNpZGVyZWQgdG8gYmUgdW5zYWZlIGluIGEgcmVxdWlyZW1lbnRzIGZpbGU6Ci0jIHNldHVwdG9vbHMKZGlmZiAtLWdpdCBhL2RveHlnZW4vbWJlZHRscy5kb3h5ZmlsZSBiL2RveHlnZW4vbWJlZHRscy5kb3h5ZmlsZQppbmRleCA4NDdkZWIwLi4xZTQ5NGEwIDEwMDY0NAotLS0gYS9kb3h5Z2VuL21iZWR0bHMuZG94eWZpbGUKKysrIGIvZG94eWdlbi9tYmVkdGxzLmRveHlmaWxlCkBAIC02LDcgKzYsNyBAQAogRVhUUkFDVF9QUklWQVRFICAgICAgICA9IFlFUwogRVhUUkFDVF9TVEFUSUMgICAgICAgICA9IFlFUwogQ0FTRV9TRU5TRV9OQU1FUyAgICAgICA9IE5PCi1JTlBVVCAgICAgICAgICAgICAgICAgID0gLi4vaW5jbHVkZSAuLi90Zi1wc2EtY3J5cHRvL2luY2x1ZGUgaW5wdXQgLi4vdGVzdHMvaW5jbHVkZS9hbHQtZHVtbXkKK0lOUFVUICAgICAgICAgICAgICAgICAgPSAuLi9pbmNsdWRlIC4uL3RmLXBzYS1jcnlwdG8vaW5jbHVkZSBpbnB1dCAuLi90Zi1wc2EtY3J5cHRvL2RyaXZlcnMvYnVpbHRpbi9pbmNsdWRlIC4uL3Rlc3RzL2luY2x1ZGUvYWx0LWR1bW15CiBGSUxFX1BBVFRFUk5TICAgICAgICAgID0gKi5oCiBSRUNVUlNJVkUgICAgICAgICAgICAgID0gWUVTCiBFWENMVURFX1NZTUxJTktTICAgICAgID0gWUVTCkBAIC0yMSw3ICsyMSw3IEBACiBHRU5FUkFURV9YTUwgICAgICAgICAgID0gWUVTCiBNQUNST19FWFBBTlNJT04gICAgICAgID0gWUVTCiBFWFBBTkRfT05MWV9QUkVERUYgICAgID0gWUVTCi1JTkNMVURFX1BBVEggICAgICAgICAgID0gLi4vaW5jbHVkZSAuLi90Zi1wc2EtY3J5cHRvL2luY2x1ZGUKK0lOQ0xVREVfUEFUSCAgICAgICAgICAgPSAuLi9pbmNsdWRlIC4uL3RmLXBzYS1jcnlwdG8vaW5jbHVkZSAuLi90Zi1wc2EtY3J5cHRvL2RyaXZlcnMvYnVpbHRpbi9pbmNsdWRlCiBFWFBBTkRfQVNfREVGSU5FRCAgICAgID0gTUJFRFRMU19QUklWQVRFCiBDTEFTU19ESUFHUkFNUyAgICAgICAgID0gTk8KIEhBVkVfRE9UICAgICAgICAgICAgICAgPSBZRVMKZGlmZiAtLWdpdCBhL2ZyYW1ld29yayBiL2ZyYW1ld29yawppbmRleCBjNjYzZmE4Li45ZWVhY2I3IDE2MDAwMAotLS0gYS9mcmFtZXdvcmsKKysrIGIvZnJhbWV3b3JrCkBAIC0xICsxIEBACi1TdWJwcm9qZWN0IGNvbW1pdCBjNjYzZmE4ZWNlMWRmZWU4MzBkYTA5NmFlODcyNTQ3ZDIzNTQzZTYwCitTdWJwcm9qZWN0IGNvbW1pdCA5ZWVhY2I3MTI1ZDY2MzBhMTFlMjlkOGE3YWFiNTg3M2IzNjM4YjZkCmRpZmYgLS1naXQgYS9pbmNsdWRlL21iZWR0bHMvYWVzLmggYi9pbmNsdWRlL21iZWR0bHMvYWVzLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGQ1ZWIxZmQuLjAwMDAwMDAKLS0tIGEvaW5jbHVkZS9tYmVkdGxzL2Flcy5oCisrKyAvZGV2L251bGwKQEAgLTEsNjMxICswLDAgQEAKLS8qKgotICogXGZpbGUgYWVzLmgKLSAqCi0gKiBcYnJpZWYgICBUaGlzIGZpbGUgY29udGFpbnMgQUVTIGRlZmluaXRpb25zIGFuZCBmdW5jdGlvbnMuCi0gKgotICogICAgICAgICAgVGhlIEFkdmFuY2VkIEVuY3J5cHRpb24gU3RhbmRhcmQgKEFFUykgc3BlY2lmaWVzIGEgRklQUy1hcHByb3ZlZAotICogICAgICAgICAgY3J5cHRvZ3JhcGhpYyBhbGdvcml0aG0gdGhhdCBjYW4gYmUgdXNlZCB0byBwcm90ZWN0IGVsZWN0cm9uaWMKLSAqICAgICAgICAgIGRhdGEuCi0gKgotICogICAgICAgICAgVGhlIEFFUyBhbGdvcml0aG0gaXMgYSBzeW1tZXRyaWMgYmxvY2sgY2lwaGVyIHRoYXQgY2FuCi0gKiAgICAgICAgICBlbmNyeXB0IGFuZCBkZWNyeXB0IGluZm9ybWF0aW9uLiBGb3IgbW9yZSBpbmZvcm1hdGlvbiwgc2VlCi0gKiAgICAgICAgICA8ZW0+RklQUyBQdWJsaWNhdGlvbiAxOTc6IEFkdmFuY2VkIEVuY3J5cHRpb24gU3RhbmRhcmQ8L2VtPiBhbmQKLSAqICAgICAgICAgIDxlbT5JU08vSUVDIDE4MDMzLTI6MjAwNjogSW5mb3JtYXRpb24gdGVjaG5vbG9neSAtLSBTZWN1cml0eQotICogICAgICAgICAgdGVjaG5pcXVlcyAtLSBFbmNyeXB0aW9uIGFsZ29yaXRobXMgLS0gUGFydCAyOiBBc3ltbWV0cmljCi0gKiAgICAgICAgICBjaXBoZXJzPC9lbT4uCi0gKgotICogICAgICAgICAgVGhlIEFFUy1YVFMgYmxvY2sgbW9kZSBpcyBzdGFuZGFyZGl6ZWQgYnkgTklTVCBTUCA4MDAtMzhFCi0gKiAgICAgICAgICA8aHR0cHM6Ly9udmxwdWJzLm5pc3QuZ292L25pc3RwdWJzL2xlZ2FjeS9zcC9uaXN0c3BlY2lhbHB1YmxpY2F0aW9uODAwLTM4ZS5wZGY+Ci0gKiAgICAgICAgICBhbmQgZGVzY3JpYmVkIGluIGRldGFpbCBieSBJRUVFIFAxNjE5Ci0gKiAgICAgICAgICA8aHR0cHM6Ly9pZWVleHBsb3JlLmllZWUub3JnL3NlcnZsZXQvb3BhYz9wdW51bWJlcj00Mzc1Mjc4Pi4KLSAqLwotCi0vKgotICogIENvcHlyaWdodCBUaGUgTWJlZCBUTFMgQ29udHJpYnV0b3JzCi0gKiAgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjAgT1IgR1BMLTIuMC1vci1sYXRlcgotICovCi0KLSNpZm5kZWYgTUJFRFRMU19BRVNfSAotI2RlZmluZSBNQkVEVExTX0FFU19ICi0jaW5jbHVkZSAibWJlZHRscy9wcml2YXRlX2FjY2Vzcy5oIgotCi0jaW5jbHVkZSAibWJlZHRscy9idWlsZF9pbmZvLmgiCi0jaW5jbHVkZSAibWJlZHRscy9wbGF0Zm9ybV91dGlsLmgiCi0KLSNpbmNsdWRlIDxzdGRkZWYuaD4KLSNpbmNsdWRlIDxzdGRpbnQuaD4KLQotLyogcGFkbG9jay5jIGFuZCBhZXNuaS5jIHJlbHkgb24gdGhlc2UgdmFsdWVzISAqLwotI2RlZmluZSBNQkVEVExTX0FFU19FTkNSWVBUICAgICAxIC8qKjwgQUVTIGVuY3J5cHRpb24uICovCi0jZGVmaW5lIE1CRURUTFNfQUVTX0RFQ1JZUFQgICAgIDAgLyoqPCBBRVMgZGVjcnlwdGlvbi4gKi8KLQotLyogRXJyb3IgY29kZXMgaW4gcmFuZ2UgMHgwMDIwLTB4MDAyMiAqLwotLyoqIEludmFsaWQga2V5IGxlbmd0aC4gKi8KLSNkZWZpbmUgTUJFRFRMU19FUlJfQUVTX0lOVkFMSURfS0VZX0xFTkdUSCAgICAgICAgICAgICAgICAtMHgwMDIwCi0vKiogSW52YWxpZCBkYXRhIGlucHV0IGxlbmd0aC4gKi8KLSNkZWZpbmUgTUJFRFRMU19FUlJfQUVTX0lOVkFMSURfSU5QVVRfTEVOR1RIICAgICAgICAgICAgICAtMHgwMDIyCi0KLS8qIEVycm9yIGNvZGVzIGluIHJhbmdlIDB4MDAyMS0weDAwMjUgKi8KLS8qKiBJbnZhbGlkIGlucHV0IGRhdGEuICovCi0jZGVmaW5lIE1CRURUTFNfRVJSX0FFU19CQURfSU5QVVRfREFUQSAgICAgICAgICAgICAgICAgICAgLTB4MDAyMQotCi0jaWZkZWYgX19jcGx1c3BsdXMKLWV4dGVybiAiQyIgewotI2VuZGlmCi0KLSNpZiAhZGVmaW5lZChNQkVEVExTX0FFU19BTFQpCi0vLyBSZWd1bGFyIGltcGxlbWVudGF0aW9uCi0vLwotCi0vKioKLSAqIFxicmllZiBUaGUgQUVTIGNvbnRleHQtdHlwZSBkZWZpbml0aW9uLgotICovCi10eXBlZGVmIHN0cnVjdCBtYmVkdGxzX2Flc19jb250ZXh0IHsKLSAgICBpbnQgTUJFRFRMU19QUklWQVRFKG5yKTsgICAgICAgICAgICAgICAgICAgICAvKiE8IFRoZSBudW1iZXIgb2Ygcm91bmRzLiAqLwotICAgIHNpemVfdCBNQkVEVExTX1BSSVZBVEUocmtfb2Zmc2V0KTsgICAgICAgICAgIC8qITwgVGhlIG9mZnNldCBpbiBhcnJheSBlbGVtZW50cyB0byBBRVMKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByb3VuZCBrZXlzIGluIHRoZSBidWZmZXIuICovCi0jaWYgZGVmaW5lZChNQkVEVExTX0FFU19PTkxZXzEyOF9CSVRfS0VZX0xFTkdUSCkgJiYgIWRlZmluZWQoTUJFRFRMU19QQURMT0NLX0MpCi0gICAgdWludDMyX3QgTUJFRFRMU19QUklWQVRFKGJ1ZilbNDRdOyAgICAgICAgICAgLyohPCBBbGlnbmVkIGRhdGEgYnVmZmVyIHRvIGhvbGQKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxMCByb3VuZCBrZXlzIGZvciAxMjgtYml0IGNhc2UuICovCi0jZWxzZQotICAgIHVpbnQzMl90IE1CRURUTFNfUFJJVkFURShidWYpWzY4XTsgICAgICAgICAgIC8qITwgVW5hbGlnbmVkIGRhdGEgYnVmZmVyLiBUaGlzIGJ1ZmZlciBjYW4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBob2xkIDMyIGV4dHJhIEJ5dGVzLCB3aGljaCBjYW4gYmUgdXNlZCBmb3IKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbmUgb2YgdGhlIGZvbGxvd2luZyBwdXJwb3NlczoKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dWw+PGxpPkFsaWdubWVudCBpZiBWSUEgcGFkbG9jayBpcwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVzZWQuPC9saT4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+U2ltcGxpZnlpbmcga2V5IGV4cGFuc2lvbiBpbiB0aGUgMjU2LWJpdAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgYnkgZ2VuZXJhdGluZyBhbiBleHRyYSByb3VuZCBrZXkuCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saT48L3VsPiAqLwotI2VuZGlmIC8qIE1CRURUTFNfQUVTX09OTFlfMTI4X0JJVF9LRVlfTEVOR1RIICYmICFNQkVEVExTX1BBRExPQ0tfQyAqLwotfQotbWJlZHRsc19hZXNfY29udGV4dDsKLQotI2lmIGRlZmluZWQoTUJFRFRMU19DSVBIRVJfTU9ERV9YVFMpCi0vKioKLSAqIFxicmllZiBUaGUgQUVTIFhUUyBjb250ZXh0LXR5cGUgZGVmaW5pdGlvbi4KLSAqLwotdHlwZWRlZiBzdHJ1Y3QgbWJlZHRsc19hZXNfeHRzX2NvbnRleHQgewotICAgIG1iZWR0bHNfYWVzX2NvbnRleHQgTUJFRFRMU19QUklWQVRFKGNyeXB0KTsgLyohPCBUaGUgQUVTIGNvbnRleHQgdG8gdXNlIGZvciBBRVMgYmxvY2sKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuY3J5cHRpb24gb3IgZGVjcnlwdGlvbi4gKi8KLSAgICBtYmVkdGxzX2Flc19jb250ZXh0IE1CRURUTFNfUFJJVkFURSh0d2Vhayk7IC8qITwgVGhlIEFFUyBjb250ZXh0IHVzZWQgZm9yIHR3ZWFrCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb21wdXRhdGlvbi4gKi8KLX0gbWJlZHRsc19hZXNfeHRzX2NvbnRleHQ7Ci0jZW5kaWYgLyogTUJFRFRMU19DSVBIRVJfTU9ERV9YVFMgKi8KLQotI2Vsc2UgIC8qIE1CRURUTFNfQUVTX0FMVCAqLwotI2luY2x1ZGUgImFlc19hbHQuaCIKLSNlbmRpZiAvKiBNQkVEVExTX0FFU19BTFQgKi8KLQotLyoqCi0gKiBcYnJpZWYgICAgICAgICAgVGhpcyBmdW5jdGlvbiBpbml0aWFsaXplcyB0aGUgc3BlY2lmaWVkIEFFUyBjb250ZXh0LgotICoKLSAqICAgICAgICAgICAgICAgICBJdCBtdXN0IGJlIHRoZSBmaXJzdCBBUEkgY2FsbGVkIGJlZm9yZSB1c2luZwotICogICAgICAgICAgICAgICAgIHRoZSBjb250ZXh0LgotICoKLSAqIFxwYXJhbSBjdHggICAgICBUaGUgQUVTIGNvbnRleHQgdG8gaW5pdGlhbGl6ZS4gVGhpcyBtdXN0IG5vdCBiZSBcYyBOVUxMLgotICovCi12b2lkIG1iZWR0bHNfYWVzX2luaXQobWJlZHRsc19hZXNfY29udGV4dCAqY3R4KTsKLQotLyoqCi0gKiBcYnJpZWYgICAgICAgICAgVGhpcyBmdW5jdGlvbiByZWxlYXNlcyBhbmQgY2xlYXJzIHRoZSBzcGVjaWZpZWQgQUVTIGNvbnRleHQuCi0gKgotICogXHBhcmFtIGN0eCAgICAgIFRoZSBBRVMgY29udGV4dCB0byBjbGVhci4KLSAqICAgICAgICAgICAgICAgICBJZiB0aGlzIGlzIFxjIE5VTEwsIHRoaXMgZnVuY3Rpb24gZG9lcyBub3RoaW5nLgotICogICAgICAgICAgICAgICAgIE90aGVyd2lzZSwgdGhlIGNvbnRleHQgbXVzdCBoYXZlIGJlZW4gYXQgbGVhc3QgaW5pdGlhbGl6ZWQuCi0gKi8KLXZvaWQgbWJlZHRsc19hZXNfZnJlZShtYmVkdGxzX2Flc19jb250ZXh0ICpjdHgpOwotCi0jaWYgZGVmaW5lZChNQkVEVExTX0NJUEhFUl9NT0RFX1hUUykKLS8qKgotICogXGJyaWVmICAgICAgICAgIFRoaXMgZnVuY3Rpb24gaW5pdGlhbGl6ZXMgdGhlIHNwZWNpZmllZCBBRVMgWFRTIGNvbnRleHQuCi0gKgotICogICAgICAgICAgICAgICAgIEl0IG11c3QgYmUgdGhlIGZpcnN0IEFQSSBjYWxsZWQgYmVmb3JlIHVzaW5nCi0gKiAgICAgICAgICAgICAgICAgdGhlIGNvbnRleHQuCi0gKgotICogXHBhcmFtIGN0eCAgICAgIFRoZSBBRVMgWFRTIGNvbnRleHQgdG8gaW5pdGlhbGl6ZS4gVGhpcyBtdXN0IG5vdCBiZSBcYyBOVUxMLgotICovCi12b2lkIG1iZWR0bHNfYWVzX3h0c19pbml0KG1iZWR0bHNfYWVzX3h0c19jb250ZXh0ICpjdHgpOwotCi0vKioKLSAqIFxicmllZiAgICAgICAgICBUaGlzIGZ1bmN0aW9uIHJlbGVhc2VzIGFuZCBjbGVhcnMgdGhlIHNwZWNpZmllZCBBRVMgWFRTIGNvbnRleHQuCi0gKgotICogXHBhcmFtIGN0eCAgICAgIFRoZSBBRVMgWFRTIGNvbnRleHQgdG8gY2xlYXIuCi0gKiAgICAgICAgICAgICAgICAgSWYgdGhpcyBpcyBcYyBOVUxMLCB0aGlzIGZ1bmN0aW9uIGRvZXMgbm90aGluZy4KLSAqICAgICAgICAgICAgICAgICBPdGhlcndpc2UsIHRoZSBjb250ZXh0IG11c3QgaGF2ZSBiZWVuIGF0IGxlYXN0IGluaXRpYWxpemVkLgotICovCi12b2lkIG1iZWR0bHNfYWVzX3h0c19mcmVlKG1iZWR0bHNfYWVzX3h0c19jb250ZXh0ICpjdHgpOwotI2VuZGlmIC8qIE1CRURUTFNfQ0lQSEVSX01PREVfWFRTICovCi0KLS8qKgotICogXGJyaWVmICAgICAgICAgIFRoaXMgZnVuY3Rpb24gc2V0cyB0aGUgZW5jcnlwdGlvbiBrZXkuCi0gKgotICogXHBhcmFtIGN0eCAgICAgIFRoZSBBRVMgY29udGV4dCB0byB3aGljaCB0aGUga2V5IHNob3VsZCBiZSBib3VuZC4KLSAqICAgICAgICAgICAgICAgICBJdCBtdXN0IGJlIGluaXRpYWxpemVkLgotICogXHBhcmFtIGtleSAgICAgIFRoZSBlbmNyeXB0aW9uIGtleS4KLSAqICAgICAgICAgICAgICAgICBUaGlzIG11c3QgYmUgYSByZWFkYWJsZSBidWZmZXIgb2Ygc2l6ZSBccCBrZXliaXRzIGJpdHMuCi0gKiBccGFyYW0ga2V5Yml0cyAgVGhlIHNpemUgb2YgZGF0YSBwYXNzZWQgaW4gYml0cy4gVmFsaWQgb3B0aW9ucyBhcmU6Ci0gKiAgICAgICAgICAgICAgICAgPHVsPjxsaT4xMjggYml0czwvbGk+Ci0gKiAgICAgICAgICAgICAgICAgPGxpPjE5MiBiaXRzPC9saT4KLSAqICAgICAgICAgICAgICAgICA8bGk+MjU2IGJpdHM8L2xpPjwvdWw+Ci0gKgotICogXHJldHVybiAgICAgICAgIFxjIDAgb24gc3VjY2Vzcy4KLSAqIFxyZXR1cm4gICAgICAgICAjTUJFRFRMU19FUlJfQUVTX0lOVkFMSURfS0VZX0xFTkdUSCBvbiBmYWlsdXJlLgotICovCi1NQkVEVExTX0NIRUNLX1JFVFVSTl9UWVBJQ0FMCi1pbnQgbWJlZHRsc19hZXNfc2V0a2V5X2VuYyhtYmVkdGxzX2Flc19jb250ZXh0ICpjdHgsIGNvbnN0IHVuc2lnbmVkIGNoYXIgKmtleSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCBrZXliaXRzKTsKLQotI2lmICFkZWZpbmVkKE1CRURUTFNfQkxPQ0tfQ0lQSEVSX05PX0RFQ1JZUFQpCi0vKioKLSAqIFxicmllZiAgICAgICAgICBUaGlzIGZ1bmN0aW9uIHNldHMgdGhlIGRlY3J5cHRpb24ga2V5LgotICoKLSAqIFxwYXJhbSBjdHggICAgICBUaGUgQUVTIGNvbnRleHQgdG8gd2hpY2ggdGhlIGtleSBzaG91bGQgYmUgYm91bmQuCi0gKiAgICAgICAgICAgICAgICAgSXQgbXVzdCBiZSBpbml0aWFsaXplZC4KLSAqIFxwYXJhbSBrZXkgICAgICBUaGUgZGVjcnlwdGlvbiBrZXkuCi0gKiAgICAgICAgICAgICAgICAgVGhpcyBtdXN0IGJlIGEgcmVhZGFibGUgYnVmZmVyIG9mIHNpemUgXHAga2V5Yml0cyBiaXRzLgotICogXHBhcmFtIGtleWJpdHMgIFRoZSBzaXplIG9mIGRhdGEgcGFzc2VkLiBWYWxpZCBvcHRpb25zIGFyZToKLSAqICAgICAgICAgICAgICAgICA8dWw+PGxpPjEyOCBiaXRzPC9saT4KLSAqICAgICAgICAgICAgICAgICA8bGk+MTkyIGJpdHM8L2xpPgotICogICAgICAgICAgICAgICAgIDxsaT4yNTYgYml0czwvbGk+PC91bD4KLSAqCi0gKiBccmV0dXJuICAgICAgICAgXGMgMCBvbiBzdWNjZXNzLgotICogXHJldHVybiAgICAgICAgICNNQkVEVExTX0VSUl9BRVNfSU5WQUxJRF9LRVlfTEVOR1RIIG9uIGZhaWx1cmUuCi0gKi8KLU1CRURUTFNfQ0hFQ0tfUkVUVVJOX1RZUElDQUwKLWludCBtYmVkdGxzX2Flc19zZXRrZXlfZGVjKG1iZWR0bHNfYWVzX2NvbnRleHQgKmN0eCwgY29uc3QgdW5zaWduZWQgY2hhciAqa2V5LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50IGtleWJpdHMpOwotI2VuZGlmIC8qICFNQkVEVExTX0JMT0NLX0NJUEhFUl9OT19ERUNSWVBUICovCi0KLSNpZiBkZWZpbmVkKE1CRURUTFNfQ0lQSEVSX01PREVfWFRTKQotLyoqCi0gKiBcYnJpZWYgICAgICAgICAgVGhpcyBmdW5jdGlvbiBwcmVwYXJlcyBhbiBYVFMgY29udGV4dCBmb3IgZW5jcnlwdGlvbiBhbmQKLSAqICAgICAgICAgICAgICAgICBzZXRzIHRoZSBlbmNyeXB0aW9uIGtleS4KLSAqCi0gKiBccGFyYW0gY3R4ICAgICAgVGhlIEFFUyBYVFMgY29udGV4dCB0byB3aGljaCB0aGUga2V5IHNob3VsZCBiZSBib3VuZC4KLSAqICAgICAgICAgICAgICAgICBJdCBtdXN0IGJlIGluaXRpYWxpemVkLgotICogXHBhcmFtIGtleSAgICAgIFRoZSBlbmNyeXB0aW9uIGtleS4gVGhpcyBpcyBjb21wcmlzZWQgb2YgdGhlIFhUUyBrZXkxCi0gKiAgICAgICAgICAgICAgICAgY29uY2F0ZW5hdGVkIHdpdGggdGhlIFhUUyBrZXkyLgotICogICAgICAgICAgICAgICAgIFRoaXMgbXVzdCBiZSBhIHJlYWRhYmxlIGJ1ZmZlciBvZiBzaXplIFxwIGtleWJpdHMgYml0cy4KLSAqIFxwYXJhbSBrZXliaXRzICBUaGUgc2l6ZSBvZiBccCBrZXkgcGFzc2VkIGluIGJpdHMuIFZhbGlkIG9wdGlvbnMgYXJlOgotICogICAgICAgICAgICAgICAgIDx1bD48bGk+MjU2IGJpdHMgKGVhY2ggb2Yga2V5MSBhbmQga2V5MiBpcyBhIDEyOC1iaXQga2V5KTwvbGk+Ci0gKiAgICAgICAgICAgICAgICAgPGxpPjUxMiBiaXRzIChlYWNoIG9mIGtleTEgYW5kIGtleTIgaXMgYSAyNTYtYml0IGtleSk8L2xpPjwvdWw+Ci0gKgotICogXHJldHVybiAgICAgICAgIFxjIDAgb24gc3VjY2Vzcy4KLSAqIFxyZXR1cm4gICAgICAgICAjTUJFRFRMU19FUlJfQUVTX0lOVkFMSURfS0VZX0xFTkdUSCBvbiBmYWlsdXJlLgotICovCi1NQkVEVExTX0NIRUNLX1JFVFVSTl9UWVBJQ0FMCi1pbnQgbWJlZHRsc19hZXNfeHRzX3NldGtleV9lbmMobWJlZHRsc19hZXNfeHRzX2NvbnRleHQgKmN0eCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1bnNpZ25lZCBjaGFyICprZXksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50IGtleWJpdHMpOwotCi0vKioKLSAqIFxicmllZiAgICAgICAgICBUaGlzIGZ1bmN0aW9uIHByZXBhcmVzIGFuIFhUUyBjb250ZXh0IGZvciBkZWNyeXB0aW9uIGFuZAotICogICAgICAgICAgICAgICAgIHNldHMgdGhlIGRlY3J5cHRpb24ga2V5LgotICoKLSAqIFxwYXJhbSBjdHggICAgICBUaGUgQUVTIFhUUyBjb250ZXh0IHRvIHdoaWNoIHRoZSBrZXkgc2hvdWxkIGJlIGJvdW5kLgotICogICAgICAgICAgICAgICAgIEl0IG11c3QgYmUgaW5pdGlhbGl6ZWQuCi0gKiBccGFyYW0ga2V5ICAgICAgVGhlIGRlY3J5cHRpb24ga2V5LiBUaGlzIGlzIGNvbXByaXNlZCBvZiB0aGUgWFRTIGtleTEKLSAqICAgICAgICAgICAgICAgICBjb25jYXRlbmF0ZWQgd2l0aCB0aGUgWFRTIGtleTIuCi0gKiAgICAgICAgICAgICAgICAgVGhpcyBtdXN0IGJlIGEgcmVhZGFibGUgYnVmZmVyIG9mIHNpemUgXHAga2V5Yml0cyBiaXRzLgotICogXHBhcmFtIGtleWJpdHMgIFRoZSBzaXplIG9mIFxwIGtleSBwYXNzZWQgaW4gYml0cy4gVmFsaWQgb3B0aW9ucyBhcmU6Ci0gKiAgICAgICAgICAgICAgICAgPHVsPjxsaT4yNTYgYml0cyAoZWFjaCBvZiBrZXkxIGFuZCBrZXkyIGlzIGEgMTI4LWJpdCBrZXkpPC9saT4KLSAqICAgICAgICAgICAgICAgICA8bGk+NTEyIGJpdHMgKGVhY2ggb2Yga2V5MSBhbmQga2V5MiBpcyBhIDI1Ni1iaXQga2V5KTwvbGk+PC91bD4KLSAqCi0gKiBccmV0dXJuICAgICAgICAgXGMgMCBvbiBzdWNjZXNzLgotICogXHJldHVybiAgICAgICAgICNNQkVEVExTX0VSUl9BRVNfSU5WQUxJRF9LRVlfTEVOR1RIIG9uIGZhaWx1cmUuCi0gKi8KLU1CRURUTFNfQ0hFQ0tfUkVUVVJOX1RZUElDQUwKLWludCBtYmVkdGxzX2Flc194dHNfc2V0a2V5X2RlYyhtYmVkdGxzX2Flc194dHNfY29udGV4dCAqY3R4LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgKmtleSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQga2V5Yml0cyk7Ci0jZW5kaWYgLyogTUJFRFRMU19DSVBIRVJfTU9ERV9YVFMgKi8KLQotLyoqCi0gKiBcYnJpZWYgICAgICAgICAgVGhpcyBmdW5jdGlvbiBwZXJmb3JtcyBhbiBBRVMgc2luZ2xlLWJsb2NrIGVuY3J5cHRpb24gb3IKLSAqICAgICAgICAgICAgICAgICBkZWNyeXB0aW9uIG9wZXJhdGlvbi4KLSAqCi0gKiAgICAgICAgICAgICAgICAgSXQgcGVyZm9ybXMgdGhlIG9wZXJhdGlvbiBkZWZpbmVkIGluIHRoZSBccCBtb2RlIHBhcmFtZXRlcgotICogICAgICAgICAgICAgICAgIChlbmNyeXB0IG9yIGRlY3J5cHQpLCBvbiB0aGUgaW5wdXQgZGF0YSBidWZmZXIgZGVmaW5lZCBpbgotICogICAgICAgICAgICAgICAgIHRoZSBccCBpbnB1dCBwYXJhbWV0ZXIuCi0gKgotICogICAgICAgICAgICAgICAgIG1iZWR0bHNfYWVzX2luaXQoKSwgYW5kIGVpdGhlciBtYmVkdGxzX2Flc19zZXRrZXlfZW5jKCkgb3IKLSAqICAgICAgICAgICAgICAgICBtYmVkdGxzX2Flc19zZXRrZXlfZGVjKCkgbXVzdCBiZSBjYWxsZWQgYmVmb3JlIHRoZSBmaXJzdAotICogICAgICAgICAgICAgICAgIGNhbGwgdG8gdGhpcyBBUEkgd2l0aCB0aGUgc2FtZSBjb250ZXh0LgotICoKLSAqIFxwYXJhbSBjdHggICAgICBUaGUgQUVTIGNvbnRleHQgdG8gdXNlIGZvciBlbmNyeXB0aW9uIG9yIGRlY3J5cHRpb24uCi0gKiAgICAgICAgICAgICAgICAgSXQgbXVzdCBiZSBpbml0aWFsaXplZCBhbmQgYm91bmQgdG8gYSBrZXkuCi0gKiBccGFyYW0gbW9kZSAgICAgVGhlIEFFUyBvcGVyYXRpb246ICNNQkVEVExTX0FFU19FTkNSWVBUIG9yCi0gKiAgICAgICAgICAgICAgICAgI01CRURUTFNfQUVTX0RFQ1JZUFQuCi0gKiBccGFyYW0gaW5wdXQgICAgVGhlIGJ1ZmZlciBob2xkaW5nIHRoZSBpbnB1dCBkYXRhLgotICogICAgICAgICAgICAgICAgIEl0IG11c3QgYmUgcmVhZGFibGUgYW5kIGF0IGxlYXN0IFxjIDE2IEJ5dGVzIGxvbmcuCi0gKiBccGFyYW0gb3V0cHV0ICAgVGhlIGJ1ZmZlciB3aGVyZSB0aGUgb3V0cHV0IGRhdGEgd2lsbCBiZSB3cml0dGVuLgotICogICAgICAgICAgICAgICAgIEl0IG11c3QgYmUgd3JpdGVhYmxlIGFuZCBhdCBsZWFzdCBcYyAxNiBCeXRlcyBsb25nLgotCi0gKiBccmV0dXJuICAgICAgICAgXGMgMCBvbiBzdWNjZXNzLgotICovCi1NQkVEVExTX0NIRUNLX1JFVFVSTl9UWVBJQ0FMCi1pbnQgbWJlZHRsc19hZXNfY3J5cHRfZWNiKG1iZWR0bHNfYWVzX2NvbnRleHQgKmN0eCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IG1vZGUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgaW5wdXRbMTZdLAotICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBjaGFyIG91dHB1dFsxNl0pOwotCi0jaWYgZGVmaW5lZChNQkVEVExTX0NJUEhFUl9NT0RFX0NCQykKLS8qKgotICogXGJyaWVmICBUaGlzIGZ1bmN0aW9uIHBlcmZvcm1zIGFuIEFFUy1DQkMgZW5jcnlwdGlvbiBvciBkZWNyeXB0aW9uIG9wZXJhdGlvbgotICogICAgICAgICBvbiBmdWxsIGJsb2Nrcy4KLSAqCi0gKiAgICAgICAgIEl0IHBlcmZvcm1zIHRoZSBvcGVyYXRpb24gZGVmaW5lZCBpbiB0aGUgXHAgbW9kZQotICogICAgICAgICBwYXJhbWV0ZXIgKGVuY3J5cHQvZGVjcnlwdCksIG9uIHRoZSBpbnB1dCBkYXRhIGJ1ZmZlciBkZWZpbmVkIGluCi0gKiAgICAgICAgIHRoZSBccCBpbnB1dCBwYXJhbWV0ZXIuCi0gKgotICogICAgICAgICBJdCBjYW4gYmUgY2FsbGVkIGFzIG1hbnkgdGltZXMgYXMgbmVlZGVkLCB1bnRpbCBhbGwgdGhlIGlucHV0Ci0gKiAgICAgICAgIGRhdGEgaXMgcHJvY2Vzc2VkLiBtYmVkdGxzX2Flc19pbml0KCksIGFuZCBlaXRoZXIKLSAqICAgICAgICAgbWJlZHRsc19hZXNfc2V0a2V5X2VuYygpIG9yIG1iZWR0bHNfYWVzX3NldGtleV9kZWMoKSBtdXN0IGJlIGNhbGxlZAotICogICAgICAgICBiZWZvcmUgdGhlIGZpcnN0IGNhbGwgdG8gdGhpcyBBUEkgd2l0aCB0aGUgc2FtZSBjb250ZXh0LgotICoKLSAqIFxub3RlICAgVGhpcyBmdW5jdGlvbiBvcGVyYXRlcyBvbiBmdWxsIGJsb2NrcywgdGhhdCBpcywgdGhlIGlucHV0IHNpemUKLSAqICAgICAgICAgbXVzdCBiZSBhIG11bHRpcGxlIG9mIHRoZSBBRVMgYmxvY2sgc2l6ZSBvZiBcYyAxNiBCeXRlcy4KLSAqCi0gKiBcbm90ZSAgIFVwb24gZXhpdCwgdGhlIGNvbnRlbnQgb2YgdGhlIElWIGlzIHVwZGF0ZWQgc28gdGhhdCB5b3UgY2FuCi0gKiAgICAgICAgIGNhbGwgdGhlIHNhbWUgZnVuY3Rpb24gYWdhaW4gb24gdGhlIG5leHQKLSAqICAgICAgICAgYmxvY2socykgb2YgZGF0YSBhbmQgZ2V0IHRoZSBzYW1lIHJlc3VsdCBhcyBpZiBpdCB3YXMKLSAqICAgICAgICAgZW5jcnlwdGVkIGluIG9uZSBjYWxsLiBUaGlzIGFsbG93cyBhICJzdHJlYW1pbmciIHVzYWdlLgotICogICAgICAgICBJZiB5b3UgbmVlZCB0byByZXRhaW4gdGhlIGNvbnRlbnRzIG9mIHRoZSBJViwgeW91IHNob3VsZAotICogICAgICAgICBlaXRoZXIgc2F2ZSBpdCBtYW51YWxseSBvciB1c2UgdGhlIGNpcGhlciBtb2R1bGUgaW5zdGVhZC4KLSAqCi0gKgotICogXHBhcmFtIGN0eCAgICAgIFRoZSBBRVMgY29udGV4dCB0byB1c2UgZm9yIGVuY3J5cHRpb24gb3IgZGVjcnlwdGlvbi4KLSAqICAgICAgICAgICAgICAgICBJdCBtdXN0IGJlIGluaXRpYWxpemVkIGFuZCBib3VuZCB0byBhIGtleS4KLSAqIFxwYXJhbSBtb2RlICAgICBUaGUgQUVTIG9wZXJhdGlvbjogI01CRURUTFNfQUVTX0VOQ1JZUFQgb3IKLSAqICAgICAgICAgICAgICAgICAjTUJFRFRMU19BRVNfREVDUllQVC4KLSAqIFxwYXJhbSBsZW5ndGggICBUaGUgbGVuZ3RoIG9mIHRoZSBpbnB1dCBkYXRhIGluIEJ5dGVzLiBUaGlzIG11c3QgYmUgYQotICogICAgICAgICAgICAgICAgIG11bHRpcGxlIG9mIHRoZSBibG9jayBzaXplIChcYyAxNiBCeXRlcykuCi0gKiBccGFyYW0gaXYgICAgICAgSW5pdGlhbGl6YXRpb24gdmVjdG9yICh1cGRhdGVkIGFmdGVyIHVzZSkuCi0gKiAgICAgICAgICAgICAgICAgSXQgbXVzdCBiZSBhIHJlYWRhYmxlIGFuZCB3cml0ZWFibGUgYnVmZmVyIG9mIFxjIDE2IEJ5dGVzLgotICogXHBhcmFtIGlucHV0ICAgIFRoZSBidWZmZXIgaG9sZGluZyB0aGUgaW5wdXQgZGF0YS4KLSAqICAgICAgICAgICAgICAgICBJdCBtdXN0IGJlIHJlYWRhYmxlIGFuZCBvZiBzaXplIFxwIGxlbmd0aCBCeXRlcy4KLSAqIFxwYXJhbSBvdXRwdXQgICBUaGUgYnVmZmVyIGhvbGRpbmcgdGhlIG91dHB1dCBkYXRhLgotICogICAgICAgICAgICAgICAgIEl0IG11c3QgYmUgd3JpdGVhYmxlIGFuZCBvZiBzaXplIFxwIGxlbmd0aCBCeXRlcy4KLSAqCi0gKiBccmV0dXJuICAgICAgICAgXGMgMCBvbiBzdWNjZXNzLgotICogXHJldHVybiAgICAgICAgICNNQkVEVExTX0VSUl9BRVNfSU5WQUxJRF9JTlBVVF9MRU5HVEgKLSAqICAgICAgICAgICAgICAgICBvbiBmYWlsdXJlLgotICovCi1NQkVEVExTX0NIRUNLX1JFVFVSTl9UWVBJQ0FMCi1pbnQgbWJlZHRsc19hZXNfY3J5cHRfY2JjKG1iZWR0bHNfYWVzX2NvbnRleHQgKmN0eCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IG1vZGUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBsZW5ndGgsCi0gICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGNoYXIgaXZbMTZdLAotICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1bnNpZ25lZCBjaGFyICppbnB1dCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgY2hhciAqb3V0cHV0KTsKLSNlbmRpZiAvKiBNQkVEVExTX0NJUEhFUl9NT0RFX0NCQyAqLwotCi0jaWYgZGVmaW5lZChNQkVEVExTX0NJUEhFUl9NT0RFX1hUUykKLS8qKgotICogXGJyaWVmICAgICAgVGhpcyBmdW5jdGlvbiBwZXJmb3JtcyBhbiBBRVMtWFRTIGVuY3J5cHRpb24gb3IgZGVjcnlwdGlvbgotICogICAgICAgICAgICAgb3BlcmF0aW9uIGZvciBhbiBlbnRpcmUgWFRTIGRhdGEgdW5pdC4KLSAqCi0gKiAgICAgICAgICAgICBBRVMtWFRTIGVuY3J5cHRzIG9yIGRlY3J5cHRzIGJsb2NrcyBiYXNlZCBvbiB0aGVpciBsb2NhdGlvbiBhcwotICogICAgICAgICAgICAgZGVmaW5lZCBieSBhIGRhdGEgdW5pdCBudW1iZXIuIFRoZSBkYXRhIHVuaXQgbnVtYmVyIG11c3QgYmUKLSAqICAgICAgICAgICAgIHByb3ZpZGVkIGJ5IFxwIGRhdGFfdW5pdC4KLSAqCi0gKiAgICAgICAgICAgICBOSVNUIFNQIDgwMC0zOEUgbGltaXRzIHRoZSBtYXhpbXVtIHNpemUgb2YgYSBkYXRhIHVuaXQgdG8gMl4yMAotICogICAgICAgICAgICAgQUVTIGJsb2Nrcy4gSWYgdGhlIGRhdGEgdW5pdCBpcyBsYXJnZXIgdGhhbiB0aGlzLCB0aGlzIGZ1bmN0aW9uCi0gKiAgICAgICAgICAgICByZXR1cm5zICNNQkVEVExTX0VSUl9BRVNfSU5WQUxJRF9JTlBVVF9MRU5HVEguCi0gKgotICogXHBhcmFtIGN0eCAgICAgICAgICBUaGUgQUVTIFhUUyBjb250ZXh0IHRvIHVzZSBmb3IgQUVTIFhUUyBvcGVyYXRpb25zLgotICogICAgICAgICAgICAgICAgICAgICBJdCBtdXN0IGJlIGluaXRpYWxpemVkIGFuZCBib3VuZCB0byBhIGtleS4KLSAqIFxwYXJhbSBtb2RlICAgICAgICAgVGhlIEFFUyBvcGVyYXRpb246ICNNQkVEVExTX0FFU19FTkNSWVBUIG9yCi0gKiAgICAgICAgICAgICAgICAgICAgICNNQkVEVExTX0FFU19ERUNSWVBULgotICogXHBhcmFtIGxlbmd0aCAgICAgICBUaGUgbGVuZ3RoIG9mIGEgZGF0YSB1bml0IGluIEJ5dGVzLiBUaGlzIGNhbiBiZSBhbnkKLSAqICAgICAgICAgICAgICAgICAgICAgbGVuZ3RoIGJldHdlZW4gMTYgYnl0ZXMgYW5kIDJeMjQgYnl0ZXMgaW5jbHVzaXZlCi0gKiAgICAgICAgICAgICAgICAgICAgIChiZXR3ZWVuIDEgYW5kIDJeMjAgYmxvY2sgY2lwaGVyIGJsb2NrcykuCi0gKiBccGFyYW0gZGF0YV91bml0ICAgIFRoZSBhZGRyZXNzIG9mIHRoZSBkYXRhIHVuaXQgZW5jb2RlZCBhcyBhbiBhcnJheSBvZiAxNgotICogICAgICAgICAgICAgICAgICAgICBieXRlcyBpbiBsaXR0bGUtZW5kaWFuIGZvcm1hdC4gRm9yIGRpc2sgZW5jcnlwdGlvbiwgdGhpcwotICogICAgICAgICAgICAgICAgICAgICBpcyB0eXBpY2FsbHkgdGhlIGluZGV4IG9mIHRoZSBibG9jayBkZXZpY2Ugc2VjdG9yIHRoYXQKLSAqICAgICAgICAgICAgICAgICAgICAgY29udGFpbnMgdGhlIGRhdGEuCi0gKiBccGFyYW0gaW5wdXQgICAgICAgIFRoZSBidWZmZXIgaG9sZGluZyB0aGUgaW5wdXQgZGF0YSAod2hpY2ggaXMgYW4gZW50aXJlCi0gKiAgICAgICAgICAgICAgICAgICAgIGRhdGEgdW5pdCkuIFRoaXMgZnVuY3Rpb24gcmVhZHMgXHAgbGVuZ3RoIEJ5dGVzIGZyb20gXHAKLSAqICAgICAgICAgICAgICAgICAgICAgaW5wdXQuCi0gKiBccGFyYW0gb3V0cHV0ICAgICAgIFRoZSBidWZmZXIgaG9sZGluZyB0aGUgb3V0cHV0IGRhdGEgKHdoaWNoIGlzIGFuIGVudGlyZQotICogICAgICAgICAgICAgICAgICAgICBkYXRhIHVuaXQpLiBUaGlzIGZ1bmN0aW9uIHdyaXRlcyBccCBsZW5ndGggQnl0ZXMgdG8gXHAKLSAqICAgICAgICAgICAgICAgICAgICAgb3V0cHV0LgotICoKLSAqIFxyZXR1cm4gICAgICAgICAgICAgXGMgMCBvbiBzdWNjZXNzLgotICogXHJldHVybiAgICAgICAgICAgICAjTUJFRFRMU19FUlJfQUVTX0lOVkFMSURfSU5QVVRfTEVOR1RIIGlmIFxwIGxlbmd0aCBpcwotICogICAgICAgICAgICAgICAgICAgICBzbWFsbGVyIHRoYW4gYW4gQUVTIGJsb2NrIGluIHNpemUgKDE2IEJ5dGVzKSBvciBpZiBccAotICogICAgICAgICAgICAgICAgICAgICBsZW5ndGggaXMgbGFyZ2VyIHRoYW4gMl4yMCBibG9ja3MgKDE2IE1pQikuCi0gKi8KLU1CRURUTFNfQ0hFQ0tfUkVUVVJOX1RZUElDQUwKLWludCBtYmVkdGxzX2Flc19jcnlwdF94dHMobWJlZHRsc19hZXNfeHRzX2NvbnRleHQgKmN0eCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IG1vZGUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBsZW5ndGgsCi0gICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgZGF0YV91bml0WzE2XSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdW5zaWduZWQgY2hhciAqaW5wdXQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGNoYXIgKm91dHB1dCk7Ci0jZW5kaWYgLyogTUJFRFRMU19DSVBIRVJfTU9ERV9YVFMgKi8KLQotI2lmIGRlZmluZWQoTUJFRFRMU19DSVBIRVJfTU9ERV9DRkIpCi0vKioKLSAqIFxicmllZiBUaGlzIGZ1bmN0aW9uIHBlcmZvcm1zIGFuIEFFUy1DRkIxMjggZW5jcnlwdGlvbiBvciBkZWNyeXB0aW9uCi0gKiAgICAgICAgb3BlcmF0aW9uLgotICoKLSAqICAgICAgICBJdCBwZXJmb3JtcyB0aGUgb3BlcmF0aW9uIGRlZmluZWQgaW4gdGhlIFxwIG1vZGUKLSAqICAgICAgICBwYXJhbWV0ZXIgKGVuY3J5cHQgb3IgZGVjcnlwdCksIG9uIHRoZSBpbnB1dCBkYXRhIGJ1ZmZlcgotICogICAgICAgIGRlZmluZWQgaW4gdGhlIFxwIGlucHV0IHBhcmFtZXRlci4KLSAqCi0gKiAgICAgICAgRm9yIENGQiwgeW91IG11c3Qgc2V0IHVwIHRoZSBjb250ZXh0IHdpdGggbWJlZHRsc19hZXNfc2V0a2V5X2VuYygpLAotICogICAgICAgIHJlZ2FyZGxlc3Mgb2Ygd2hldGhlciB5b3UgYXJlIHBlcmZvcm1pbmcgYW4gZW5jcnlwdGlvbiBvciBkZWNyeXB0aW9uCi0gKiAgICAgICAgb3BlcmF0aW9uLCB0aGF0IGlzLCByZWdhcmRsZXNzIG9mIHRoZSBccCBtb2RlIHBhcmFtZXRlci4gVGhpcyBpcwotICogICAgICAgIGJlY2F1c2UgQ0ZCIG1vZGUgdXNlcyB0aGUgc2FtZSBrZXkgc2NoZWR1bGUgZm9yIGVuY3J5cHRpb24gYW5kCi0gKiAgICAgICAgZGVjcnlwdGlvbi4KLSAqCi0gKiBcbm90ZSAgVXBvbiBleGl0LCB0aGUgY29udGVudCBvZiB0aGUgSVYgaXMgdXBkYXRlZCBzbyB0aGF0IHlvdSBjYW4KLSAqICAgICAgICBjYWxsIHRoZSBzYW1lIGZ1bmN0aW9uIGFnYWluIG9uIHRoZSBuZXh0Ci0gKiAgICAgICAgYmxvY2socykgb2YgZGF0YSBhbmQgZ2V0IHRoZSBzYW1lIHJlc3VsdCBhcyBpZiBpdCB3YXMKLSAqICAgICAgICBlbmNyeXB0ZWQgaW4gb25lIGNhbGwuIFRoaXMgYWxsb3dzIGEgInN0cmVhbWluZyIgdXNhZ2UuCi0gKiAgICAgICAgSWYgeW91IG5lZWQgdG8gcmV0YWluIHRoZSBjb250ZW50cyBvZiB0aGUKLSAqICAgICAgICBJViwgeW91IG11c3QgZWl0aGVyIHNhdmUgaXQgbWFudWFsbHkgb3IgdXNlIHRoZSBjaXBoZXIKLSAqICAgICAgICBtb2R1bGUgaW5zdGVhZC4KLSAqCi0gKgotICogXHBhcmFtIGN0eCAgICAgIFRoZSBBRVMgY29udGV4dCB0byB1c2UgZm9yIGVuY3J5cHRpb24gb3IgZGVjcnlwdGlvbi4KLSAqICAgICAgICAgICAgICAgICBJdCBtdXN0IGJlIGluaXRpYWxpemVkIGFuZCBib3VuZCB0byBhIGtleS4KLSAqIFxwYXJhbSBtb2RlICAgICBUaGUgQUVTIG9wZXJhdGlvbjogI01CRURUTFNfQUVTX0VOQ1JZUFQgb3IKLSAqICAgICAgICAgICAgICAgICAjTUJFRFRMU19BRVNfREVDUllQVC4KLSAqIFxwYXJhbSBsZW5ndGggICBUaGUgbGVuZ3RoIG9mIHRoZSBpbnB1dCBkYXRhIGluIEJ5dGVzLgotICogXHBhcmFtIGl2X29mZiAgIFRoZSBvZmZzZXQgaW4gSVYgKHVwZGF0ZWQgYWZ0ZXIgdXNlKS4KLSAqICAgICAgICAgICAgICAgICBJdCBtdXN0IHBvaW50IHRvIGEgdmFsaWQgXGMgc2l6ZV90LgotICogXHBhcmFtIGl2ICAgICAgIFRoZSBpbml0aWFsaXphdGlvbiB2ZWN0b3IgKHVwZGF0ZWQgYWZ0ZXIgdXNlKS4KLSAqICAgICAgICAgICAgICAgICBJdCBtdXN0IGJlIGEgcmVhZGFibGUgYW5kIHdyaXRlYWJsZSBidWZmZXIgb2YgXGMgMTYgQnl0ZXMuCi0gKiBccGFyYW0gaW5wdXQgICAgVGhlIGJ1ZmZlciBob2xkaW5nIHRoZSBpbnB1dCBkYXRhLgotICogICAgICAgICAgICAgICAgIEl0IG11c3QgYmUgcmVhZGFibGUgYW5kIG9mIHNpemUgXHAgbGVuZ3RoIEJ5dGVzLgotICogXHBhcmFtIG91dHB1dCAgIFRoZSBidWZmZXIgaG9sZGluZyB0aGUgb3V0cHV0IGRhdGEuCi0gKiAgICAgICAgICAgICAgICAgSXQgbXVzdCBiZSB3cml0ZWFibGUgYW5kIG9mIHNpemUgXHAgbGVuZ3RoIEJ5dGVzLgotICoKLSAqIFxyZXR1cm4gICAgICAgICBcYyAwIG9uIHN1Y2Nlc3MuCi0gKi8KLU1CRURUTFNfQ0hFQ0tfUkVUVVJOX1RZUElDQUwKLWludCBtYmVkdGxzX2Flc19jcnlwdF9jZmIxMjgobWJlZHRsc19hZXNfY29udGV4dCAqY3R4LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgbW9kZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IGxlbmd0aCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90ICppdl9vZmYsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGNoYXIgaXZbMTZdLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1bnNpZ25lZCBjaGFyICppbnB1dCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgY2hhciAqb3V0cHV0KTsKLQotLyoqCi0gKiBcYnJpZWYgVGhpcyBmdW5jdGlvbiBwZXJmb3JtcyBhbiBBRVMtQ0ZCOCBlbmNyeXB0aW9uIG9yIGRlY3J5cHRpb24KLSAqICAgICAgICBvcGVyYXRpb24uCi0gKgotICogICAgICAgIEl0IHBlcmZvcm1zIHRoZSBvcGVyYXRpb24gZGVmaW5lZCBpbiB0aGUgXHAgbW9kZQotICogICAgICAgIHBhcmFtZXRlciAoZW5jcnlwdC9kZWNyeXB0KSwgb24gdGhlIGlucHV0IGRhdGEgYnVmZmVyIGRlZmluZWQKLSAqICAgICAgICBpbiB0aGUgXHAgaW5wdXQgcGFyYW1ldGVyLgotICoKLSAqICAgICAgICBEdWUgdG8gdGhlIG5hdHVyZSBvZiBDRkIsIHlvdSBtdXN0IHVzZSB0aGUgc2FtZSBrZXkgc2NoZWR1bGUgZm9yCi0gKiAgICAgICAgYm90aCBlbmNyeXB0aW9uIGFuZCBkZWNyeXB0aW9uIG9wZXJhdGlvbnMuIFRoZXJlZm9yZSwgeW91IG11c3QKLSAqICAgICAgICB1c2UgdGhlIGNvbnRleHQgaW5pdGlhbGl6ZWQgd2l0aCBtYmVkdGxzX2Flc19zZXRrZXlfZW5jKCkgZm9yCi0gKiAgICAgICAgYm90aCAjTUJFRFRMU19BRVNfRU5DUllQVCBhbmQgI01CRURUTFNfQUVTX0RFQ1JZUFQuCi0gKgotICogXG5vdGUgIFVwb24gZXhpdCwgdGhlIGNvbnRlbnQgb2YgdGhlIElWIGlzIHVwZGF0ZWQgc28gdGhhdCB5b3UgY2FuCi0gKiAgICAgICAgY2FsbCB0aGUgc2FtZSBmdW5jdGlvbiBhZ2FpbiBvbiB0aGUgbmV4dAotICogICAgICAgIGJsb2NrKHMpIG9mIGRhdGEgYW5kIGdldCB0aGUgc2FtZSByZXN1bHQgYXMgaWYgaXQgd2FzCi0gKiAgICAgICAgZW5jcnlwdGVkIGluIG9uZSBjYWxsLiBUaGlzIGFsbG93cyBhICJzdHJlYW1pbmciIHVzYWdlLgotICogICAgICAgIElmIHlvdSBuZWVkIHRvIHJldGFpbiB0aGUgY29udGVudHMgb2YgdGhlCi0gKiAgICAgICAgSVYsIHlvdSBzaG91bGQgZWl0aGVyIHNhdmUgaXQgbWFudWFsbHkgb3IgdXNlIHRoZSBjaXBoZXIKLSAqICAgICAgICBtb2R1bGUgaW5zdGVhZC4KLSAqCi0gKgotICogXHBhcmFtIGN0eCAgICAgIFRoZSBBRVMgY29udGV4dCB0byB1c2UgZm9yIGVuY3J5cHRpb24gb3IgZGVjcnlwdGlvbi4KLSAqICAgICAgICAgICAgICAgICBJdCBtdXN0IGJlIGluaXRpYWxpemVkIGFuZCBib3VuZCB0byBhIGtleS4KLSAqIFxwYXJhbSBtb2RlICAgICBUaGUgQUVTIG9wZXJhdGlvbjogI01CRURUTFNfQUVTX0VOQ1JZUFQgb3IKLSAqICAgICAgICAgICAgICAgICAjTUJFRFRMU19BRVNfREVDUllQVAotICogXHBhcmFtIGxlbmd0aCAgIFRoZSBsZW5ndGggb2YgdGhlIGlucHV0IGRhdGEuCi0gKiBccGFyYW0gaXYgICAgICAgVGhlIGluaXRpYWxpemF0aW9uIHZlY3RvciAodXBkYXRlZCBhZnRlciB1c2UpLgotICogICAgICAgICAgICAgICAgIEl0IG11c3QgYmUgYSByZWFkYWJsZSBhbmQgd3JpdGVhYmxlIGJ1ZmZlciBvZiBcYyAxNiBCeXRlcy4KLSAqIFxwYXJhbSBpbnB1dCAgICBUaGUgYnVmZmVyIGhvbGRpbmcgdGhlIGlucHV0IGRhdGEuCi0gKiAgICAgICAgICAgICAgICAgSXQgbXVzdCBiZSByZWFkYWJsZSBhbmQgb2Ygc2l6ZSBccCBsZW5ndGggQnl0ZXMuCi0gKiBccGFyYW0gb3V0cHV0ICAgVGhlIGJ1ZmZlciBob2xkaW5nIHRoZSBvdXRwdXQgZGF0YS4KLSAqICAgICAgICAgICAgICAgICBJdCBtdXN0IGJlIHdyaXRlYWJsZSBhbmQgb2Ygc2l6ZSBccCBsZW5ndGggQnl0ZXMuCi0gKgotICogXHJldHVybiAgICAgICAgIFxjIDAgb24gc3VjY2Vzcy4KLSAqLwotTUJFRFRMU19DSEVDS19SRVRVUk5fVFlQSUNBTAotaW50IG1iZWR0bHNfYWVzX2NyeXB0X2NmYjgobWJlZHRsc19hZXNfY29udGV4dCAqY3R4LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IG1vZGUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgbGVuZ3RoLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgY2hhciBpdlsxNl0sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1bnNpZ25lZCBjaGFyICppbnB1dCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGNoYXIgKm91dHB1dCk7Ci0jZW5kaWYgLypNQkVEVExTX0NJUEhFUl9NT0RFX0NGQiAqLwotCi0jaWYgZGVmaW5lZChNQkVEVExTX0NJUEhFUl9NT0RFX09GQikKLS8qKgotICogXGJyaWVmICAgICAgIFRoaXMgZnVuY3Rpb24gcGVyZm9ybXMgYW4gQUVTLU9GQiAoT3V0cHV0IEZlZWRiYWNrIE1vZGUpCi0gKiAgICAgICAgICAgICAgZW5jcnlwdGlvbiBvciBkZWNyeXB0aW9uIG9wZXJhdGlvbi4KLSAqCi0gKiAgICAgICAgICAgICAgRm9yIE9GQiwgeW91IG11c3Qgc2V0IHVwIHRoZSBjb250ZXh0IHdpdGgKLSAqICAgICAgICAgICAgICBtYmVkdGxzX2Flc19zZXRrZXlfZW5jKCksIHJlZ2FyZGxlc3Mgb2Ygd2hldGhlciB5b3UgYXJlCi0gKiAgICAgICAgICAgICAgcGVyZm9ybWluZyBhbiBlbmNyeXB0aW9uIG9yIGRlY3J5cHRpb24gb3BlcmF0aW9uLiBUaGlzIGlzCi0gKiAgICAgICAgICAgICAgYmVjYXVzZSBPRkIgbW9kZSB1c2VzIHRoZSBzYW1lIGtleSBzY2hlZHVsZSBmb3IgZW5jcnlwdGlvbiBhbmQKLSAqICAgICAgICAgICAgICBkZWNyeXB0aW9uLgotICoKLSAqICAgICAgICAgICAgICBUaGUgT0ZCIG9wZXJhdGlvbiBpcyBpZGVudGljYWwgZm9yIGVuY3J5cHRpb24gb3IgZGVjcnlwdGlvbiwKLSAqICAgICAgICAgICAgICB0aGVyZWZvcmUgbm8gb3BlcmF0aW9uIG1vZGUgbmVlZHMgdG8gYmUgc3BlY2lmaWVkLgotICoKLSAqIFxub3RlICAgICAgICBVcG9uIGV4aXQsIHRoZSBjb250ZW50IG9mIGl2LCB0aGUgSW5pdGlhbGlzYXRpb24gVmVjdG9yLCBpcwotICogICAgICAgICAgICAgIHVwZGF0ZWQgc28gdGhhdCB5b3UgY2FuIGNhbGwgdGhlIHNhbWUgZnVuY3Rpb24gYWdhaW4gb24gdGhlIG5leHQKLSAqICAgICAgICAgICAgICBibG9jayhzKSBvZiBkYXRhIGFuZCBnZXQgdGhlIHNhbWUgcmVzdWx0IGFzIGlmIGl0IHdhcyBlbmNyeXB0ZWQKLSAqICAgICAgICAgICAgICBpbiBvbmUgY2FsbC4gVGhpcyBhbGxvd3MgYSAic3RyZWFtaW5nIiB1c2FnZSwgYnkgaW5pdGlhbGlzaW5nCi0gKiAgICAgICAgICAgICAgaXZfb2ZmIHRvIDAgYmVmb3JlIHRoZSBmaXJzdCBjYWxsLCBhbmQgcHJlc2VydmluZyBpdHMgdmFsdWUKLSAqICAgICAgICAgICAgICBiZXR3ZWVuIGNhbGxzLgotICoKLSAqICAgICAgICAgICAgICBGb3Igbm9uLXN0cmVhbWluZyB1c2UsIHRoZSBpdiBzaG91bGQgYmUgaW5pdGlhbGlzZWQgb24gZWFjaCBjYWxsCi0gKiAgICAgICAgICAgICAgdG8gYSB1bmlxdWUgdmFsdWUsIGFuZCBpdl9vZmYgc2V0IHRvIDAgb24gZWFjaCBjYWxsLgotICoKLSAqICAgICAgICAgICAgICBJZiB5b3UgbmVlZCB0byByZXRhaW4gdGhlIGNvbnRlbnRzIG9mIHRoZSBpbml0aWFsaXNhdGlvbiB2ZWN0b3IsCi0gKiAgICAgICAgICAgICAgeW91IG11c3QgZWl0aGVyIHNhdmUgaXQgbWFudWFsbHkgb3IgdXNlIHRoZSBjaXBoZXIgbW9kdWxlCi0gKiAgICAgICAgICAgICAgaW5zdGVhZC4KLSAqCi0gKiBcd2FybmluZyAgICAgRm9yIHRoZSBPRkIgbW9kZSwgdGhlIGluaXRpYWxpc2F0aW9uIHZlY3RvciBtdXN0IGJlIHVuaXF1ZQotICogICAgICAgICAgICAgIGV2ZXJ5IGVuY3J5cHRpb24gb3BlcmF0aW9uLiBSZXVzZSBvZiBhbiBpbml0aWFsaXNhdGlvbiB2ZWN0b3IKLSAqICAgICAgICAgICAgICB3aWxsIGNvbXByb21pc2Ugc2VjdXJpdHkuCi0gKgotICogXHBhcmFtIGN0eCAgICAgIFRoZSBBRVMgY29udGV4dCB0byB1c2UgZm9yIGVuY3J5cHRpb24gb3IgZGVjcnlwdGlvbi4KLSAqICAgICAgICAgICAgICAgICBJdCBtdXN0IGJlIGluaXRpYWxpemVkIGFuZCBib3VuZCB0byBhIGtleS4KLSAqIFxwYXJhbSBsZW5ndGggICBUaGUgbGVuZ3RoIG9mIHRoZSBpbnB1dCBkYXRhLgotICogXHBhcmFtIGl2X29mZiAgIFRoZSBvZmZzZXQgaW4gSVYgKHVwZGF0ZWQgYWZ0ZXIgdXNlKS4KLSAqICAgICAgICAgICAgICAgICBJdCBtdXN0IHBvaW50IHRvIGEgdmFsaWQgXGMgc2l6ZV90LgotICogXHBhcmFtIGl2ICAgICAgIFRoZSBpbml0aWFsaXphdGlvbiB2ZWN0b3IgKHVwZGF0ZWQgYWZ0ZXIgdXNlKS4KLSAqICAgICAgICAgICAgICAgICBJdCBtdXN0IGJlIGEgcmVhZGFibGUgYW5kIHdyaXRlYWJsZSBidWZmZXIgb2YgXGMgMTYgQnl0ZXMuCi0gKiBccGFyYW0gaW5wdXQgICAgVGhlIGJ1ZmZlciBob2xkaW5nIHRoZSBpbnB1dCBkYXRhLgotICogICAgICAgICAgICAgICAgIEl0IG11c3QgYmUgcmVhZGFibGUgYW5kIG9mIHNpemUgXHAgbGVuZ3RoIEJ5dGVzLgotICogXHBhcmFtIG91dHB1dCAgIFRoZSBidWZmZXIgaG9sZGluZyB0aGUgb3V0cHV0IGRhdGEuCi0gKiAgICAgICAgICAgICAgICAgSXQgbXVzdCBiZSB3cml0ZWFibGUgYW5kIG9mIHNpemUgXHAgbGVuZ3RoIEJ5dGVzLgotICoKLSAqIFxyZXR1cm4gICAgICAgICBcYyAwIG9uIHN1Y2Nlc3MuCi0gKi8KLU1CRURUTFNfQ0hFQ0tfUkVUVVJOX1RZUElDQUwKLWludCBtYmVkdGxzX2Flc19jcnlwdF9vZmIobWJlZHRsc19hZXNfY29udGV4dCAqY3R4LAotICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgbGVuZ3RoLAotICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgKml2X29mZiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgY2hhciBpdlsxNl0sCi0gICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgKmlucHV0LAotICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBjaGFyICpvdXRwdXQpOwotCi0jZW5kaWYgLyogTUJFRFRMU19DSVBIRVJfTU9ERV9PRkIgKi8KLQotI2lmIGRlZmluZWQoTUJFRFRMU19DSVBIRVJfTU9ERV9DVFIpCi0vKioKLSAqIFxicmllZiAgICAgIFRoaXMgZnVuY3Rpb24gcGVyZm9ybXMgYW4gQUVTLUNUUiBlbmNyeXB0aW9uIG9yIGRlY3J5cHRpb24KLSAqICAgICAgICAgICAgIG9wZXJhdGlvbi4KLSAqCi0gKiAgICAgICAgICAgICBEdWUgdG8gdGhlIG5hdHVyZSBvZiBDVFIsIHlvdSBtdXN0IHVzZSB0aGUgc2FtZSBrZXkgc2NoZWR1bGUKLSAqICAgICAgICAgICAgIGZvciBib3RoIGVuY3J5cHRpb24gYW5kIGRlY3J5cHRpb24gb3BlcmF0aW9ucy4gVGhlcmVmb3JlLCB5b3UKLSAqICAgICAgICAgICAgIG11c3QgdXNlIHRoZSBjb250ZXh0IGluaXRpYWxpemVkIHdpdGggbWJlZHRsc19hZXNfc2V0a2V5X2VuYygpCi0gKiAgICAgICAgICAgICBmb3IgYm90aCAjTUJFRFRMU19BRVNfRU5DUllQVCBhbmQgI01CRURUTFNfQUVTX0RFQ1JZUFQuCi0gKgotICogXHdhcm5pbmcgICAgWW91IG11c3QgbmV2ZXIgcmV1c2UgYSBub25jZSB2YWx1ZSB3aXRoIHRoZSBzYW1lIGtleS4gRG9pbmcgc28KLSAqICAgICAgICAgICAgIHdvdWxkIHZvaWQgdGhlIGVuY3J5cHRpb24gZm9yIHRoZSB0d28gbWVzc2FnZXMgZW5jcnlwdGVkIHdpdGgKLSAqICAgICAgICAgICAgIHRoZSBzYW1lIG5vbmNlIGFuZCBrZXkuCi0gKgotICogICAgICAgICAgICAgVGhlcmUgYXJlIHR3byBjb21tb24gc3RyYXRlZ2llcyBmb3IgbWFuYWdpbmcgbm9uY2VzIHdpdGggQ1RSOgotICoKLSAqICAgICAgICAgICAgIDEuIFlvdSBjYW4gaGFuZGxlIGV2ZXJ5dGhpbmcgYXMgYSBzaW5nbGUgbWVzc2FnZSBwcm9jZXNzZWQgb3ZlcgotICogICAgICAgICAgICAgc3VjY2Vzc2l2ZSBjYWxscyB0byB0aGlzIGZ1bmN0aW9uLiBJbiB0aGF0IGNhc2UsIHlvdSB3YW50IHRvCi0gKiAgICAgICAgICAgICBzZXQgXHAgbm9uY2VfY291bnRlciBhbmQgXHAgbmNfb2ZmIHRvIDAgZm9yIHRoZSBmaXJzdCBjYWxsLCBhbmQKLSAqICAgICAgICAgICAgIHRoZW4gcHJlc2VydmUgdGhlIHZhbHVlcyBvZiBccCBub25jZV9jb3VudGVyLCBccCBuY19vZmYgYW5kIFxwCi0gKiAgICAgICAgICAgICBzdHJlYW1fYmxvY2sgYWNyb3NzIGNhbGxzIHRvIHRoaXMgZnVuY3Rpb24gYXMgdGhleSB3aWxsIGJlCi0gKiAgICAgICAgICAgICB1cGRhdGVkIGJ5IHRoaXMgZnVuY3Rpb24uCi0gKgotICogICAgICAgICAgICAgV2l0aCB0aGlzIHN0cmF0ZWd5LCB5b3UgbXVzdCBub3QgZW5jcnlwdCBtb3JlIHRoYW4gMioqMTI4Ci0gKiAgICAgICAgICAgICBibG9ja3Mgb2YgZGF0YSB3aXRoIHRoZSBzYW1lIGtleS4KLSAqCi0gKiAgICAgICAgICAgICAyLiBZb3UgY2FuIGVuY3J5cHQgc2VwYXJhdGUgbWVzc2FnZXMgYnkgZGl2aWRpbmcgdGhlIFxwCi0gKiAgICAgICAgICAgICBub25jZV9jb3VudGVyIGJ1ZmZlciBpbiB0d28gYXJlYXM6IHRoZSBmaXJzdCBvbmUgdXNlZCBmb3IgYQotICogICAgICAgICAgICAgcGVyLW1lc3NhZ2Ugbm9uY2UsIGhhbmRsZWQgYnkgeW91cnNlbGYsIGFuZCB0aGUgc2Vjb25kIG9uZQotICogICAgICAgICAgICAgdXBkYXRlZCBieSB0aGlzIGZ1bmN0aW9uIGludGVybmFsbHkuCi0gKgotICogICAgICAgICAgICAgRm9yIGV4YW1wbGUsIHlvdSBtaWdodCByZXNlcnZlIHRoZSBmaXJzdCAxMiBieXRlcyBmb3IgdGhlCi0gKiAgICAgICAgICAgICBwZXItbWVzc2FnZSBub25jZSwgYW5kIHRoZSBsYXN0IDQgYnl0ZXMgZm9yIGludGVybmFsIHVzZS4gSW4gdGhhdAotICogICAgICAgICAgICAgY2FzZSwgYmVmb3JlIGNhbGxpbmcgdGhpcyBmdW5jdGlvbiBvbiBhIG5ldyBtZXNzYWdlIHlvdSBuZWVkIHRvCi0gKiAgICAgICAgICAgICBzZXQgdGhlIGZpcnN0IDEyIGJ5dGVzIG9mIFxwIG5vbmNlX2NvdW50ZXIgdG8geW91ciBjaG9zZW4gbm9uY2UKLSAqICAgICAgICAgICAgIHZhbHVlLCB0aGUgbGFzdCA0IHRvIDAsIGFuZCBccCBuY19vZmYgdG8gMCAod2hpY2ggd2lsbCBjYXVzZSBccAotICogICAgICAgICAgICAgc3RyZWFtX2Jsb2NrIHRvIGJlIGlnbm9yZWQpLiBUaGF0IHdheSwgeW91IGNhbiBlbmNyeXB0IGF0IG1vc3QKLSAqICAgICAgICAgICAgIDIqKjk2IG1lc3NhZ2VzIG9mIHVwIHRvIDIqKjMyIGJsb2NrcyBlYWNoIHdpdGggdGhlIHNhbWUga2V5LgotICoKLSAqICAgICAgICAgICAgIFRoZSBwZXItbWVzc2FnZSBub25jZSAob3IgaW5mb3JtYXRpb24gc3VmZmljaWVudCB0byByZWNvbnN0cnVjdAotICogICAgICAgICAgICAgaXQpIG5lZWRzIHRvIGJlIGNvbW11bmljYXRlZCB3aXRoIHRoZSBjaXBoZXJ0ZXh0IGFuZCBtdXN0IGJlIHVuaXF1ZS4KLSAqICAgICAgICAgICAgIFRoZSByZWNvbW1lbmRlZCB3YXkgdG8gZW5zdXJlIHVuaXF1ZW5lc3MgaXMgdG8gdXNlIGEgbWVzc2FnZQotICogICAgICAgICAgICAgY291bnRlci4gQW4gYWx0ZXJuYXRpdmUgaXMgdG8gZ2VuZXJhdGUgcmFuZG9tIG5vbmNlcywgYnV0IHRoaXMKLSAqICAgICAgICAgICAgIGxpbWl0cyB0aGUgbnVtYmVyIG9mIG1lc3NhZ2VzIHRoYXQgY2FuIGJlIHNlY3VyZWx5IGVuY3J5cHRlZDoKLSAqICAgICAgICAgICAgIGZvciBleGFtcGxlLCB3aXRoIDk2LWJpdCByYW5kb20gbm9uY2VzLCB5b3Ugc2hvdWxkIG5vdCBlbmNyeXB0Ci0gKiAgICAgICAgICAgICBtb3JlIHRoYW4gMioqMzIgbWVzc2FnZXMgd2l0aCB0aGUgc2FtZSBrZXkuCi0gKgotICogICAgICAgICAgICAgTm90ZSB0aGF0IGZvciBib3RoIHN0cmF0ZWdpZXMsIHNpemVzIGFyZSBtZWFzdXJlZCBpbiBibG9ja3MgYW5kCi0gKiAgICAgICAgICAgICB0aGF0IGFuIEFFUyBibG9jayBpcyAxNiBieXRlcy4KLSAqCi0gKiBcd2FybmluZyAgICBVcG9uIHJldHVybiwgXHAgc3RyZWFtX2Jsb2NrIGNvbnRhaW5zIHNlbnNpdGl2ZSBkYXRhLiBJdHMKLSAqICAgICAgICAgICAgIGNvbnRlbnQgbXVzdCBub3QgYmUgd3JpdHRlbiB0byBpbnNlY3VyZSBzdG9yYWdlIGFuZCBzaG91bGQgYmUKLSAqICAgICAgICAgICAgIHNlY3VyZWx5IGRpc2NhcmRlZCBhcyBzb29uIGFzIGl0J3Mgbm8gbG9uZ2VyIG5lZWRlZC4KLSAqCi0gKiBccGFyYW0gY3R4ICAgICAgICAgICAgICBUaGUgQUVTIGNvbnRleHQgdG8gdXNlIGZvciBlbmNyeXB0aW9uIG9yIGRlY3J5cHRpb24uCi0gKiAgICAgICAgICAgICAgICAgICAgICAgICBJdCBtdXN0IGJlIGluaXRpYWxpemVkIGFuZCBib3VuZCB0byBhIGtleS4KLSAqIFxwYXJhbSBsZW5ndGggICAgICAgICAgIFRoZSBsZW5ndGggb2YgdGhlIGlucHV0IGRhdGEuCi0gKiBccGFyYW0gbmNfb2ZmICAgICAgICAgICBUaGUgb2Zmc2V0IGluIHRoZSBjdXJyZW50IFxwIHN0cmVhbV9ibG9jaywgZm9yCi0gKiAgICAgICAgICAgICAgICAgICAgICAgICByZXN1bWluZyB3aXRoaW4gdGhlIGN1cnJlbnQgY2lwaGVyIHN0cmVhbS4gVGhlCi0gKiAgICAgICAgICAgICAgICAgICAgICAgICBvZmZzZXQgcG9pbnRlciBzaG91bGQgYmUgMCBhdCB0aGUgc3RhcnQgb2YgYSBzdHJlYW0uCi0gKiAgICAgICAgICAgICAgICAgICAgICAgICBJdCBtdXN0IHBvaW50IHRvIGEgdmFsaWQgXGMgc2l6ZV90LgotICogXHBhcmFtIG5vbmNlX2NvdW50ZXIgICAgVGhlIDEyOC1iaXQgbm9uY2UgYW5kIGNvdW50ZXIuCi0gKiAgICAgICAgICAgICAgICAgICAgICAgICBJdCBtdXN0IGJlIGEgcmVhZGFibGUtd3JpdGVhYmxlIGJ1ZmZlciBvZiBcYyAxNiBCeXRlcy4KLSAqIFxwYXJhbSBzdHJlYW1fYmxvY2sgICAgIFRoZSBzYXZlZCBzdHJlYW0gYmxvY2sgZm9yIHJlc3VtaW5nLiBUaGlzIGlzCi0gKiAgICAgICAgICAgICAgICAgICAgICAgICBvdmVyd3JpdHRlbiBieSB0aGUgZnVuY3Rpb24uCi0gKiAgICAgICAgICAgICAgICAgICAgICAgICBJdCBtdXN0IGJlIGEgcmVhZGFibGUtd3JpdGVhYmxlIGJ1ZmZlciBvZiBcYyAxNiBCeXRlcy4KLSAqIFxwYXJhbSBpbnB1dCAgICAgICAgICAgIFRoZSBidWZmZXIgaG9sZGluZyB0aGUgaW5wdXQgZGF0YS4KLSAqICAgICAgICAgICAgICAgICAgICAgICAgIEl0IG11c3QgYmUgcmVhZGFibGUgYW5kIG9mIHNpemUgXHAgbGVuZ3RoIEJ5dGVzLgotICogXHBhcmFtIG91dHB1dCAgICAgICAgICAgVGhlIGJ1ZmZlciBob2xkaW5nIHRoZSBvdXRwdXQgZGF0YS4KLSAqICAgICAgICAgICAgICAgICAgICAgICAgIEl0IG11c3QgYmUgd3JpdGVhYmxlIGFuZCBvZiBzaXplIFxwIGxlbmd0aCBCeXRlcy4KLSAqCi0gKiBccmV0dXJuICAgICAgICAgICAgICAgICBcYyAwIG9uIHN1Y2Nlc3MuCi0gKi8KLU1CRURUTFNfQ0hFQ0tfUkVUVVJOX1RZUElDQUwKLWludCBtYmVkdGxzX2Flc19jcnlwdF9jdHIobWJlZHRsc19hZXNfY29udGV4dCAqY3R4LAotICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgbGVuZ3RoLAotICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgKm5jX29mZiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgY2hhciBub25jZV9jb3VudGVyWzE2XSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgY2hhciBzdHJlYW1fYmxvY2tbMTZdLAotICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1bnNpZ25lZCBjaGFyICppbnB1dCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgY2hhciAqb3V0cHV0KTsKLSNlbmRpZiAvKiBNQkVEVExTX0NJUEhFUl9NT0RFX0NUUiAqLwotCi0vKioKLSAqIFxicmllZiAgICAgICAgICAgSW50ZXJuYWwgQUVTIGJsb2NrIGVuY3J5cHRpb24gZnVuY3Rpb24uIFRoaXMgaXMgb25seQotICogICAgICAgICAgICAgICAgICBleHBvc2VkIHRvIGFsbG93IG92ZXJyaWRpbmcgaXQgdXNpbmcKLSAqICAgICAgICAgICAgICAgICAgXGMgTUJFRFRMU19BRVNfRU5DUllQVF9BTFQuCi0gKgotICogXHBhcmFtIGN0eCAgICAgICBUaGUgQUVTIGNvbnRleHQgdG8gdXNlIGZvciBlbmNyeXB0aW9uLgotICogXHBhcmFtIGlucHV0ICAgICBUaGUgcGxhaW50ZXh0IGJsb2NrLgotICogXHBhcmFtIG91dHB1dCAgICBUaGUgb3V0cHV0IChjaXBoZXJ0ZXh0KSBibG9jay4KLSAqCi0gKiBccmV0dXJuICAgICAgICAgIFxjIDAgb24gc3VjY2Vzcy4KLSAqLwotTUJFRFRMU19DSEVDS19SRVRVUk5fVFlQSUNBTAotaW50IG1iZWR0bHNfaW50ZXJuYWxfYWVzX2VuY3J5cHQobWJlZHRsc19hZXNfY29udGV4dCAqY3R4LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdW5zaWduZWQgY2hhciBpbnB1dFsxNl0sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBjaGFyIG91dHB1dFsxNl0pOwotCi0jaWYgIWRlZmluZWQoTUJFRFRMU19CTE9DS19DSVBIRVJfTk9fREVDUllQVCkKLS8qKgotICogXGJyaWVmICAgICAgICAgICBJbnRlcm5hbCBBRVMgYmxvY2sgZGVjcnlwdGlvbiBmdW5jdGlvbi4gVGhpcyBpcyBvbmx5Ci0gKiAgICAgICAgICAgICAgICAgIGV4cG9zZWQgdG8gYWxsb3cgb3ZlcnJpZGluZyBpdCB1c2luZyBzZWUKLSAqICAgICAgICAgICAgICAgICAgXGMgTUJFRFRMU19BRVNfREVDUllQVF9BTFQuCi0gKgotICogXHBhcmFtIGN0eCAgICAgICBUaGUgQUVTIGNvbnRleHQgdG8gdXNlIGZvciBkZWNyeXB0aW9uLgotICogXHBhcmFtIGlucHV0ICAgICBUaGUgY2lwaGVydGV4dCBibG9jay4KLSAqIFxwYXJhbSBvdXRwdXQgICAgVGhlIG91dHB1dCAocGxhaW50ZXh0KSBibG9jay4KLSAqCi0gKiBccmV0dXJuICAgICAgICAgIFxjIDAgb24gc3VjY2Vzcy4KLSAqLwotTUJFRFRMU19DSEVDS19SRVRVUk5fVFlQSUNBTAotaW50IG1iZWR0bHNfaW50ZXJuYWxfYWVzX2RlY3J5cHQobWJlZHRsc19hZXNfY29udGV4dCAqY3R4LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdW5zaWduZWQgY2hhciBpbnB1dFsxNl0sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBjaGFyIG91dHB1dFsxNl0pOwotI2VuZGlmIC8qICFNQkVEVExTX0JMT0NLX0NJUEhFUl9OT19ERUNSWVBUICovCi0KLSNpZiBkZWZpbmVkKE1CRURUTFNfU0VMRl9URVNUKQotLyoqCi0gKiBcYnJpZWYgICAgICAgICAgQ2hlY2t1cCByb3V0aW5lLgotICoKLSAqIFxyZXR1cm4gICAgICAgICBcYyAwIG9uIHN1Y2Nlc3MuCi0gKiBccmV0dXJuICAgICAgICAgXGMgMSBvbiBmYWlsdXJlLgotICovCi1NQkVEVExTX0NIRUNLX1JFVFVSTl9DUklUSUNBTAotaW50IG1iZWR0bHNfYWVzX3NlbGZfdGVzdChpbnQgdmVyYm9zZSk7Ci0KLSNlbmRpZiAvKiBNQkVEVExTX1NFTEZfVEVTVCAqLwotCi0jaWZkZWYgX19jcGx1c3BsdXMKLX0KLSNlbmRpZgotCi0jZW5kaWYgLyogYWVzLmggKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvbWJlZHRscy9hcmlhLmggYi9pbmNsdWRlL21iZWR0bHMvYXJpYS5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjNjg1ZmMzLi4wMDAwMDAwCi0tLSBhL2luY2x1ZGUvbWJlZHRscy9hcmlhLmgKKysrIC9kZXYvbnVsbApAQCAtMSwzNDMgKzAsMCBAQAotLyoqCi0gKiBcZmlsZSBhcmlhLmgKLSAqCi0gKiBcYnJpZWYgQVJJQSBibG9jayBjaXBoZXIKLSAqCi0gKiAgICAgICAgVGhlIEFSSUEgYWxnb3JpdGhtIGlzIGEgc3ltbWV0cmljIGJsb2NrIGNpcGhlciB0aGF0IGNhbiBlbmNyeXB0IGFuZAotICogICAgICAgIGRlY3J5cHQgaW5mb3JtYXRpb24uIEl0IGlzIGRlZmluZWQgYnkgdGhlIEtvcmVhbiBBZ2VuY3kgZm9yCi0gKiAgICAgICAgVGVjaG5vbG9neSBhbmQgU3RhbmRhcmRzIChLQVRTKSBpbiA8ZW0+S1MgWCAxMjEzOjIwMDQ8L2VtPiAoaW4KLSAqICAgICAgICBLb3JlYW4sIGJ1dCBzZWUgaHR0cDovLzIxMC4xMDQuMzMuMTAvQVJJQS9pbmRleC1lLmh0bWwgaW4gRW5nbGlzaCkKLSAqICAgICAgICBhbmQgYWxzbyBkZXNjcmliZWQgYnkgdGhlIElFVEYgaW4gPGVtPlJGQyA1Nzk0PC9lbT4uCi0gKi8KLS8qCi0gKiAgQ29weXJpZ2h0IFRoZSBNYmVkIFRMUyBDb250cmlidXRvcnMKLSAqICBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMCBPUiBHUEwtMi4wLW9yLWxhdGVyCi0gKi8KLQotI2lmbmRlZiBNQkVEVExTX0FSSUFfSAotI2RlZmluZSBNQkVEVExTX0FSSUFfSAotI2luY2x1ZGUgIm1iZWR0bHMvcHJpdmF0ZV9hY2Nlc3MuaCIKLQotI2luY2x1ZGUgIm1iZWR0bHMvYnVpbGRfaW5mby5oIgotCi0jaW5jbHVkZSA8c3RkZGVmLmg+Ci0jaW5jbHVkZSA8c3RkaW50Lmg+Ci0KLSNpbmNsdWRlICJtYmVkdGxzL3BsYXRmb3JtX3V0aWwuaCIKLQotI2RlZmluZSBNQkVEVExTX0FSSUFfRU5DUllQVCAgICAgMSAvKio8IEFSSUEgZW5jcnlwdGlvbi4gKi8KLSNkZWZpbmUgTUJFRFRMU19BUklBX0RFQ1JZUFQgICAgIDAgLyoqPCBBUklBIGRlY3J5cHRpb24uICovCi0KLSNkZWZpbmUgTUJFRFRMU19BUklBX0JMT0NLU0laRSAgIDE2IC8qKjwgQVJJQSBibG9jayBzaXplIGluIGJ5dGVzLiAqLwotI2RlZmluZSBNQkVEVExTX0FSSUFfTUFYX1JPVU5EUyAgMTYgLyoqPCBNYXhpbXVtIG51bWJlciBvZiByb3VuZHMgaW4gQVJJQS4gKi8KLSNkZWZpbmUgTUJFRFRMU19BUklBX01BWF9LRVlTSVpFIDMyIC8qKjwgTWF4aW11bSBzaXplIG9mIGFuIEFSSUEga2V5IGluIGJ5dGVzLiAqLwotCi0vKiogQmFkIGlucHV0IGRhdGEuICovCi0jZGVmaW5lIE1CRURUTFNfRVJSX0FSSUFfQkFEX0lOUFVUX0RBVEEgLTB4MDA1QwotCi0vKiogSW52YWxpZCBkYXRhIGlucHV0IGxlbmd0aC4gKi8KLSNkZWZpbmUgTUJFRFRMU19FUlJfQVJJQV9JTlZBTElEX0lOUFVUX0xFTkdUSCAtMHgwMDVFCi0KLSNpZmRlZiBfX2NwbHVzcGx1cwotZXh0ZXJuICJDIiB7Ci0jZW5kaWYKLQotI2lmICFkZWZpbmVkKE1CRURUTFNfQVJJQV9BTFQpCi0vLyBSZWd1bGFyIGltcGxlbWVudGF0aW9uCi0vLwotCi0vKioKLSAqIFxicmllZiBUaGUgQVJJQSBjb250ZXh0LXR5cGUgZGVmaW5pdGlvbi4KLSAqLwotdHlwZWRlZiBzdHJ1Y3QgbWJlZHRsc19hcmlhX2NvbnRleHQgewotICAgIHVuc2lnbmVkIGNoYXIgTUJFRFRMU19QUklWQVRFKG5yKTsgICAgICAgICAgIC8qITwgVGhlIG51bWJlciBvZiByb3VuZHMgKDEyLCAxNCBvciAxNikgKi8KLSAgICAvKiEgVGhlIEFSSUEgcm91bmQga2V5cy4gKi8KLSAgICB1aW50MzJfdCBNQkVEVExTX1BSSVZBVEUocmspW01CRURUTFNfQVJJQV9NQVhfUk9VTkRTICsgMV1bTUJFRFRMU19BUklBX0JMT0NLU0laRSAvIDRdOwotfQotbWJlZHRsc19hcmlhX2NvbnRleHQ7Ci0KLSNlbHNlICAvKiBNQkVEVExTX0FSSUFfQUxUICovCi0jaW5jbHVkZSAiYXJpYV9hbHQuaCIKLSNlbmRpZiAvKiBNQkVEVExTX0FSSUFfQUxUICovCi0KLS8qKgotICogXGJyaWVmICAgICAgICAgIFRoaXMgZnVuY3Rpb24gaW5pdGlhbGl6ZXMgdGhlIHNwZWNpZmllZCBBUklBIGNvbnRleHQuCi0gKgotICogICAgICAgICAgICAgICAgIEl0IG11c3QgYmUgdGhlIGZpcnN0IEFQSSBjYWxsZWQgYmVmb3JlIHVzaW5nCi0gKiAgICAgICAgICAgICAgICAgdGhlIGNvbnRleHQuCi0gKgotICogXHBhcmFtIGN0eCAgICAgIFRoZSBBUklBIGNvbnRleHQgdG8gaW5pdGlhbGl6ZS4gVGhpcyBtdXN0IG5vdCBiZSBcYyBOVUxMLgotICovCi12b2lkIG1iZWR0bHNfYXJpYV9pbml0KG1iZWR0bHNfYXJpYV9jb250ZXh0ICpjdHgpOwotCi0vKioKLSAqIFxicmllZiAgICAgICAgICBUaGlzIGZ1bmN0aW9uIHJlbGVhc2VzIGFuZCBjbGVhcnMgdGhlIHNwZWNpZmllZCBBUklBIGNvbnRleHQuCi0gKgotICogXHBhcmFtIGN0eCAgICAgIFRoZSBBUklBIGNvbnRleHQgdG8gY2xlYXIuIFRoaXMgbWF5IGJlIFxjIE5VTEwsIGluIHdoaWNoCi0gKiAgICAgICAgICAgICAgICAgY2FzZSB0aGlzIGZ1bmN0aW9uIHJldHVybnMgaW1tZWRpYXRlbHkuIElmIGl0IGlzIG5vdCBcYyBOVUxMLAotICogICAgICAgICAgICAgICAgIGl0IG11c3QgcG9pbnQgdG8gYW4gaW5pdGlhbGl6ZWQgQVJJQSBjb250ZXh0LgotICovCi12b2lkIG1iZWR0bHNfYXJpYV9mcmVlKG1iZWR0bHNfYXJpYV9jb250ZXh0ICpjdHgpOwotCi0vKioKLSAqIFxicmllZiAgICAgICAgICBUaGlzIGZ1bmN0aW9uIHNldHMgdGhlIGVuY3J5cHRpb24ga2V5LgotICoKLSAqIFxwYXJhbSBjdHggICAgICBUaGUgQVJJQSBjb250ZXh0IHRvIHdoaWNoIHRoZSBrZXkgc2hvdWxkIGJlIGJvdW5kLgotICogICAgICAgICAgICAgICAgIFRoaXMgbXVzdCBiZSBpbml0aWFsaXplZC4KLSAqIFxwYXJhbSBrZXkgICAgICBUaGUgZW5jcnlwdGlvbiBrZXkuIFRoaXMgbXVzdCBiZSBhIHJlYWRhYmxlIGJ1ZmZlcgotICogICAgICAgICAgICAgICAgIG9mIHNpemUgXHAga2V5Yml0cyBCaXRzLgotICogXHBhcmFtIGtleWJpdHMgIFRoZSBzaXplIG9mIFxwIGtleSBpbiBCaXRzLiBWYWxpZCBvcHRpb25zIGFyZToKLSAqICAgICAgICAgICAgICAgICA8dWw+PGxpPjEyOCBiaXRzPC9saT4KLSAqICAgICAgICAgICAgICAgICA8bGk+MTkyIGJpdHM8L2xpPgotICogICAgICAgICAgICAgICAgIDxsaT4yNTYgYml0czwvbGk+PC91bD4KLSAqCi0gKiBccmV0dXJuICAgICAgICAgXGMgMCBvbiBzdWNjZXNzLgotICogXHJldHVybiAgICAgICAgIEEgbmVnYXRpdmUgZXJyb3IgY29kZSBvbiBmYWlsdXJlLgotICovCi1pbnQgbWJlZHRsc19hcmlhX3NldGtleV9lbmMobWJlZHRsc19hcmlhX2NvbnRleHQgKmN0eCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1bnNpZ25lZCBjaGFyICprZXksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50IGtleWJpdHMpOwotCi0jaWYgIWRlZmluZWQoTUJFRFRMU19CTE9DS19DSVBIRVJfTk9fREVDUllQVCkKLS8qKgotICogXGJyaWVmICAgICAgICAgIFRoaXMgZnVuY3Rpb24gc2V0cyB0aGUgZGVjcnlwdGlvbiBrZXkuCi0gKgotICogXHBhcmFtIGN0eCAgICAgIFRoZSBBUklBIGNvbnRleHQgdG8gd2hpY2ggdGhlIGtleSBzaG91bGQgYmUgYm91bmQuCi0gKiAgICAgICAgICAgICAgICAgVGhpcyBtdXN0IGJlIGluaXRpYWxpemVkLgotICogXHBhcmFtIGtleSAgICAgIFRoZSBkZWNyeXB0aW9uIGtleS4gVGhpcyBtdXN0IGJlIGEgcmVhZGFibGUgYnVmZmVyCi0gKiAgICAgICAgICAgICAgICAgb2Ygc2l6ZSBccCBrZXliaXRzIEJpdHMuCi0gKiBccGFyYW0ga2V5Yml0cyAgVGhlIHNpemUgb2YgZGF0YSBwYXNzZWQuIFZhbGlkIG9wdGlvbnMgYXJlOgotICogICAgICAgICAgICAgICAgIDx1bD48bGk+MTI4IGJpdHM8L2xpPgotICogICAgICAgICAgICAgICAgIDxsaT4xOTIgYml0czwvbGk+Ci0gKiAgICAgICAgICAgICAgICAgPGxpPjI1NiBiaXRzPC9saT48L3VsPgotICoKLSAqIFxyZXR1cm4gICAgICAgICBcYyAwIG9uIHN1Y2Nlc3MuCi0gKiBccmV0dXJuICAgICAgICAgQSBuZWdhdGl2ZSBlcnJvciBjb2RlIG9uIGZhaWx1cmUuCi0gKi8KLWludCBtYmVkdGxzX2FyaWFfc2V0a2V5X2RlYyhtYmVkdGxzX2FyaWFfY29udGV4dCAqY3R4LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgKmtleSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQga2V5Yml0cyk7Ci0jZW5kaWYgLyogIU1CRURUTFNfQkxPQ0tfQ0lQSEVSX05PX0RFQ1JZUFQgKi8KLQotLyoqCi0gKiBcYnJpZWYgICAgICAgICAgVGhpcyBmdW5jdGlvbiBwZXJmb3JtcyBhbiBBUklBIHNpbmdsZS1ibG9jayBlbmNyeXB0aW9uIG9yCi0gKiAgICAgICAgICAgICAgICAgZGVjcnlwdGlvbiBvcGVyYXRpb24uCi0gKgotICogICAgICAgICAgICAgICAgIEl0IHBlcmZvcm1zIGVuY3J5cHRpb24gb3IgZGVjcnlwdGlvbiAoZGVwZW5kaW5nIG9uIHdoZXRoZXIKLSAqICAgICAgICAgICAgICAgICB0aGUga2V5IHdhcyBzZXQgZm9yIGVuY3J5cHRpb24gb24gZGVjcnlwdGlvbikgb24gdGhlIGlucHV0Ci0gKiAgICAgICAgICAgICAgICAgZGF0YSBidWZmZXIgZGVmaW5lZCBpbiB0aGUgXHAgaW5wdXQgcGFyYW1ldGVyLgotICoKLSAqICAgICAgICAgICAgICAgICBtYmVkdGxzX2FyaWFfaW5pdCgpLCBhbmQgZWl0aGVyIG1iZWR0bHNfYXJpYV9zZXRrZXlfZW5jKCkgb3IKLSAqICAgICAgICAgICAgICAgICBtYmVkdGxzX2FyaWFfc2V0a2V5X2RlYygpIG11c3QgYmUgY2FsbGVkIGJlZm9yZSB0aGUgZmlyc3QKLSAqICAgICAgICAgICAgICAgICBjYWxsIHRvIHRoaXMgQVBJIHdpdGggdGhlIHNhbWUgY29udGV4dC4KLSAqCi0gKiBccGFyYW0gY3R4ICAgICAgVGhlIEFSSUEgY29udGV4dCB0byB1c2UgZm9yIGVuY3J5cHRpb24gb3IgZGVjcnlwdGlvbi4KLSAqICAgICAgICAgICAgICAgICBUaGlzIG11c3QgYmUgaW5pdGlhbGl6ZWQgYW5kIGJvdW5kIHRvIGEga2V5LgotICogXHBhcmFtIGlucHV0ICAgIFRoZSAxNi1CeXRlIGJ1ZmZlciBob2xkaW5nIHRoZSBpbnB1dCBkYXRhLgotICogXHBhcmFtIG91dHB1dCAgIFRoZSAxNi1CeXRlIGJ1ZmZlciBob2xkaW5nIHRoZSBvdXRwdXQgZGF0YS4KLQotICogXHJldHVybiAgICAgICAgIFxjIDAgb24gc3VjY2Vzcy4KLSAqIFxyZXR1cm4gICAgICAgICBBIG5lZ2F0aXZlIGVycm9yIGNvZGUgb24gZmFpbHVyZS4KLSAqLwotaW50IG1iZWR0bHNfYXJpYV9jcnlwdF9lY2IobWJlZHRsc19hcmlhX2NvbnRleHQgKmN0eCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgaW5wdXRbTUJFRFRMU19BUklBX0JMT0NLU0laRV0sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBjaGFyIG91dHB1dFtNQkVEVExTX0FSSUFfQkxPQ0tTSVpFXSk7Ci0KLSNpZiBkZWZpbmVkKE1CRURUTFNfQ0lQSEVSX01PREVfQ0JDKQotLyoqCi0gKiBcYnJpZWYgIFRoaXMgZnVuY3Rpb24gcGVyZm9ybXMgYW4gQVJJQS1DQkMgZW5jcnlwdGlvbiBvciBkZWNyeXB0aW9uIG9wZXJhdGlvbgotICogICAgICAgICBvbiBmdWxsIGJsb2Nrcy4KLSAqCi0gKiAgICAgICAgIEl0IHBlcmZvcm1zIHRoZSBvcGVyYXRpb24gZGVmaW5lZCBpbiB0aGUgXHAgbW9kZQotICogICAgICAgICBwYXJhbWV0ZXIgKGVuY3J5cHQvZGVjcnlwdCksIG9uIHRoZSBpbnB1dCBkYXRhIGJ1ZmZlciBkZWZpbmVkIGluCi0gKiAgICAgICAgIHRoZSBccCBpbnB1dCBwYXJhbWV0ZXIuCi0gKgotICogICAgICAgICBJdCBjYW4gYmUgY2FsbGVkIGFzIG1hbnkgdGltZXMgYXMgbmVlZGVkLCB1bnRpbCBhbGwgdGhlIGlucHV0Ci0gKiAgICAgICAgIGRhdGEgaXMgcHJvY2Vzc2VkLiBtYmVkdGxzX2FyaWFfaW5pdCgpLCBhbmQgZWl0aGVyCi0gKiAgICAgICAgIG1iZWR0bHNfYXJpYV9zZXRrZXlfZW5jKCkgb3IgbWJlZHRsc19hcmlhX3NldGtleV9kZWMoKSBtdXN0IGJlIGNhbGxlZAotICogICAgICAgICBiZWZvcmUgdGhlIGZpcnN0IGNhbGwgdG8gdGhpcyBBUEkgd2l0aCB0aGUgc2FtZSBjb250ZXh0LgotICoKLSAqIFxub3RlICAgVGhpcyBmdW5jdGlvbiBvcGVyYXRlcyBvbiBhbGlnbmVkIGJsb2NrcywgdGhhdCBpcywgdGhlIGlucHV0IHNpemUKLSAqICAgICAgICAgbXVzdCBiZSBhIG11bHRpcGxlIG9mIHRoZSBBUklBIGJsb2NrIHNpemUgb2YgMTYgQnl0ZXMuCi0gKgotICogXG5vdGUgICBVcG9uIGV4aXQsIHRoZSBjb250ZW50IG9mIHRoZSBJViBpcyB1cGRhdGVkIHNvIHRoYXQgeW91IGNhbgotICogICAgICAgICBjYWxsIHRoZSBzYW1lIGZ1bmN0aW9uIGFnYWluIG9uIHRoZSBuZXh0Ci0gKiAgICAgICAgIGJsb2NrKHMpIG9mIGRhdGEgYW5kIGdldCB0aGUgc2FtZSByZXN1bHQgYXMgaWYgaXQgd2FzCi0gKiAgICAgICAgIGVuY3J5cHRlZCBpbiBvbmUgY2FsbC4gVGhpcyBhbGxvd3MgYSAic3RyZWFtaW5nIiB1c2FnZS4KLSAqICAgICAgICAgSWYgeW91IG5lZWQgdG8gcmV0YWluIHRoZSBjb250ZW50cyBvZiB0aGUgSVYsIHlvdSBzaG91bGQKLSAqICAgICAgICAgZWl0aGVyIHNhdmUgaXQgbWFudWFsbHkgb3IgdXNlIHRoZSBjaXBoZXIgbW9kdWxlIGluc3RlYWQuCi0gKgotICoKLSAqIFxwYXJhbSBjdHggICAgICBUaGUgQVJJQSBjb250ZXh0IHRvIHVzZSBmb3IgZW5jcnlwdGlvbiBvciBkZWNyeXB0aW9uLgotICogICAgICAgICAgICAgICAgIFRoaXMgbXVzdCBiZSBpbml0aWFsaXplZCBhbmQgYm91bmQgdG8gYSBrZXkuCi0gKiBccGFyYW0gbW9kZSAgICAgVGhlIG1vZGUgb2Ygb3BlcmF0aW9uLiBUaGlzIG11c3QgYmUgZWl0aGVyCi0gKiAgICAgICAgICAgICAgICAgI01CRURUTFNfQVJJQV9FTkNSWVBUIGZvciBlbmNyeXB0aW9uLCBvcgotICogICAgICAgICAgICAgICAgICNNQkVEVExTX0FSSUFfREVDUllQVCBmb3IgZGVjcnlwdGlvbi4KLSAqIFxwYXJhbSBsZW5ndGggICBUaGUgbGVuZ3RoIG9mIHRoZSBpbnB1dCBkYXRhIGluIEJ5dGVzLiBUaGlzIG11c3QgYmUgYQotICogICAgICAgICAgICAgICAgIG11bHRpcGxlIG9mIHRoZSBibG9jayBzaXplICgxNiBCeXRlcykuCi0gKiBccGFyYW0gaXYgICAgICAgSW5pdGlhbGl6YXRpb24gdmVjdG9yICh1cGRhdGVkIGFmdGVyIHVzZSkuCi0gKiAgICAgICAgICAgICAgICAgVGhpcyBtdXN0IGJlIGEgcmVhZGFibGUgYnVmZmVyIG9mIHNpemUgMTYgQnl0ZXMuCi0gKiBccGFyYW0gaW5wdXQgICAgVGhlIGJ1ZmZlciBob2xkaW5nIHRoZSBpbnB1dCBkYXRhLiBUaGlzIG11c3QKLSAqICAgICAgICAgICAgICAgICBiZSBhIHJlYWRhYmxlIGJ1ZmZlciBvZiBsZW5ndGggXHAgbGVuZ3RoIEJ5dGVzLgotICogXHBhcmFtIG91dHB1dCAgIFRoZSBidWZmZXIgaG9sZGluZyB0aGUgb3V0cHV0IGRhdGEuIFRoaXMgbXVzdAotICogICAgICAgICAgICAgICAgIGJlIGEgd3JpdGFibGUgYnVmZmVyIG9mIGxlbmd0aCBccCBsZW5ndGggQnl0ZXMuCi0gKgotICogXHJldHVybiAgICAgICAgIFxjIDAgb24gc3VjY2Vzcy4KLSAqIFxyZXR1cm4gICAgICAgICBBIG5lZ2F0aXZlIGVycm9yIGNvZGUgb24gZmFpbHVyZS4KLSAqLwotaW50IG1iZWR0bHNfYXJpYV9jcnlwdF9jYmMobWJlZHRsc19hcmlhX2NvbnRleHQgKmN0eCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBtb2RlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IGxlbmd0aCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGNoYXIgaXZbTUJFRFRMU19BUklBX0JMT0NLU0laRV0sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1bnNpZ25lZCBjaGFyICppbnB1dCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGNoYXIgKm91dHB1dCk7Ci0jZW5kaWYgLyogTUJFRFRMU19DSVBIRVJfTU9ERV9DQkMgKi8KLQotI2lmIGRlZmluZWQoTUJFRFRMU19DSVBIRVJfTU9ERV9DRkIpCi0vKioKLSAqIFxicmllZiBUaGlzIGZ1bmN0aW9uIHBlcmZvcm1zIGFuIEFSSUEtQ0ZCMTI4IGVuY3J5cHRpb24gb3IgZGVjcnlwdGlvbgotICogICAgICAgIG9wZXJhdGlvbi4KLSAqCi0gKiAgICAgICAgSXQgcGVyZm9ybXMgdGhlIG9wZXJhdGlvbiBkZWZpbmVkIGluIHRoZSBccCBtb2RlCi0gKiAgICAgICAgcGFyYW1ldGVyIChlbmNyeXB0IG9yIGRlY3J5cHQpLCBvbiB0aGUgaW5wdXQgZGF0YSBidWZmZXIKLSAqICAgICAgICBkZWZpbmVkIGluIHRoZSBccCBpbnB1dCBwYXJhbWV0ZXIuCi0gKgotICogICAgICAgIEZvciBDRkIsIHlvdSBtdXN0IHNldCB1cCB0aGUgY29udGV4dCB3aXRoIG1iZWR0bHNfYXJpYV9zZXRrZXlfZW5jKCksCi0gKiAgICAgICAgcmVnYXJkbGVzcyBvZiB3aGV0aGVyIHlvdSBhcmUgcGVyZm9ybWluZyBhbiBlbmNyeXB0aW9uIG9yIGRlY3J5cHRpb24KLSAqICAgICAgICBvcGVyYXRpb24sIHRoYXQgaXMsIHJlZ2FyZGxlc3Mgb2YgdGhlIFxwIG1vZGUgcGFyYW1ldGVyLiBUaGlzIGlzCi0gKiAgICAgICAgYmVjYXVzZSBDRkIgbW9kZSB1c2VzIHRoZSBzYW1lIGtleSBzY2hlZHVsZSBmb3IgZW5jcnlwdGlvbiBhbmQKLSAqICAgICAgICBkZWNyeXB0aW9uLgotICoKLSAqIFxub3RlICBVcG9uIGV4aXQsIHRoZSBjb250ZW50IG9mIHRoZSBJViBpcyB1cGRhdGVkIHNvIHRoYXQgeW91IGNhbgotICogICAgICAgIGNhbGwgdGhlIHNhbWUgZnVuY3Rpb24gYWdhaW4gb24gdGhlIG5leHQKLSAqICAgICAgICBibG9jayhzKSBvZiBkYXRhIGFuZCBnZXQgdGhlIHNhbWUgcmVzdWx0IGFzIGlmIGl0IHdhcwotICogICAgICAgIGVuY3J5cHRlZCBpbiBvbmUgY2FsbC4gVGhpcyBhbGxvd3MgYSAic3RyZWFtaW5nIiB1c2FnZS4KLSAqICAgICAgICBJZiB5b3UgbmVlZCB0byByZXRhaW4gdGhlIGNvbnRlbnRzIG9mIHRoZQotICogICAgICAgIElWLCB5b3UgbXVzdCBlaXRoZXIgc2F2ZSBpdCBtYW51YWxseSBvciB1c2UgdGhlIGNpcGhlcgotICogICAgICAgIG1vZHVsZSBpbnN0ZWFkLgotICoKLSAqCi0gKiBccGFyYW0gY3R4ICAgICAgVGhlIEFSSUEgY29udGV4dCB0byB1c2UgZm9yIGVuY3J5cHRpb24gb3IgZGVjcnlwdGlvbi4KLSAqICAgICAgICAgICAgICAgICBUaGlzIG11c3QgYmUgaW5pdGlhbGl6ZWQgYW5kIGJvdW5kIHRvIGEga2V5LgotICogXHBhcmFtIG1vZGUgICAgIFRoZSBtb2RlIG9mIG9wZXJhdGlvbi4gVGhpcyBtdXN0IGJlIGVpdGhlcgotICogICAgICAgICAgICAgICAgICNNQkVEVExTX0FSSUFfRU5DUllQVCBmb3IgZW5jcnlwdGlvbiwgb3IKLSAqICAgICAgICAgICAgICAgICAjTUJFRFRMU19BUklBX0RFQ1JZUFQgZm9yIGRlY3J5cHRpb24uCi0gKiBccGFyYW0gbGVuZ3RoICAgVGhlIGxlbmd0aCBvZiB0aGUgaW5wdXQgZGF0YSBccCBpbnB1dCBpbiBCeXRlcy4KLSAqIFxwYXJhbSBpdl9vZmYgICBUaGUgb2Zmc2V0IGluIElWICh1cGRhdGVkIGFmdGVyIHVzZSkuCi0gKiAgICAgICAgICAgICAgICAgVGhpcyBtdXN0IG5vdCBiZSBsYXJnZXIgdGhhbiAxNS4KLSAqIFxwYXJhbSBpdiAgICAgICBUaGUgaW5pdGlhbGl6YXRpb24gdmVjdG9yICh1cGRhdGVkIGFmdGVyIHVzZSkuCi0gKiAgICAgICAgICAgICAgICAgVGhpcyBtdXN0IGJlIGEgcmVhZGFibGUgYnVmZmVyIG9mIHNpemUgMTYgQnl0ZXMuCi0gKiBccGFyYW0gaW5wdXQgICAgVGhlIGJ1ZmZlciBob2xkaW5nIHRoZSBpbnB1dCBkYXRhLiBUaGlzIG11c3QKLSAqICAgICAgICAgICAgICAgICBiZSBhIHJlYWRhYmxlIGJ1ZmZlciBvZiBsZW5ndGggXHAgbGVuZ3RoIEJ5dGVzLgotICogXHBhcmFtIG91dHB1dCAgIFRoZSBidWZmZXIgaG9sZGluZyB0aGUgb3V0cHV0IGRhdGEuIFRoaXMgbXVzdAotICogICAgICAgICAgICAgICAgIGJlIGEgd3JpdGFibGUgYnVmZmVyIG9mIGxlbmd0aCBccCBsZW5ndGggQnl0ZXMuCi0gKgotICogXHJldHVybiAgICAgICAgIFxjIDAgb24gc3VjY2Vzcy4KLSAqIFxyZXR1cm4gICAgICAgICBBIG5lZ2F0aXZlIGVycm9yIGNvZGUgb24gZmFpbHVyZS4KLSAqLwotaW50IG1iZWR0bHNfYXJpYV9jcnlwdF9jZmIxMjgobWJlZHRsc19hcmlhX2NvbnRleHQgKmN0eCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBtb2RlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IGxlbmd0aCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCAqaXZfb2ZmLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgY2hhciBpdltNQkVEVExTX0FSSUFfQkxPQ0tTSVpFXSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgKmlucHV0LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgY2hhciAqb3V0cHV0KTsKLSNlbmRpZiAvKiBNQkVEVExTX0NJUEhFUl9NT0RFX0NGQiAqLwotCi0jaWYgZGVmaW5lZChNQkVEVExTX0NJUEhFUl9NT0RFX0NUUikKLS8qKgotICogXGJyaWVmICAgICAgVGhpcyBmdW5jdGlvbiBwZXJmb3JtcyBhbiBBUklBLUNUUiBlbmNyeXB0aW9uIG9yIGRlY3J5cHRpb24KLSAqICAgICAgICAgICAgIG9wZXJhdGlvbi4KLSAqCi0gKiAgICAgICAgICAgICBEdWUgdG8gdGhlIG5hdHVyZSBvZiBDVFIsIHlvdSBtdXN0IHVzZSB0aGUgc2FtZSBrZXkgc2NoZWR1bGUKLSAqICAgICAgICAgICAgIGZvciBib3RoIGVuY3J5cHRpb24gYW5kIGRlY3J5cHRpb24gb3BlcmF0aW9ucy4gVGhlcmVmb3JlLCB5b3UKLSAqICAgICAgICAgICAgIG11c3QgdXNlIHRoZSBjb250ZXh0IGluaXRpYWxpemVkIHdpdGggbWJlZHRsc19hcmlhX3NldGtleV9lbmMoKQotICogICAgICAgICAgICAgZm9yIGJvdGggI01CRURUTFNfQVJJQV9FTkNSWVBUIGFuZCAjTUJFRFRMU19BUklBX0RFQ1JZUFQuCi0gKgotICogXHdhcm5pbmcgICAgWW91IG11c3QgbmV2ZXIgcmV1c2UgYSBub25jZSB2YWx1ZSB3aXRoIHRoZSBzYW1lIGtleS4gRG9pbmcgc28KLSAqICAgICAgICAgICAgIHdvdWxkIHZvaWQgdGhlIGVuY3J5cHRpb24gZm9yIHRoZSB0d28gbWVzc2FnZXMgZW5jcnlwdGVkIHdpdGgKLSAqICAgICAgICAgICAgIHRoZSBzYW1lIG5vbmNlIGFuZCBrZXkuCi0gKgotICogICAgICAgICAgICAgVGhlcmUgYXJlIHR3byBjb21tb24gc3RyYXRlZ2llcyBmb3IgbWFuYWdpbmcgbm9uY2VzIHdpdGggQ1RSOgotICoKLSAqICAgICAgICAgICAgIDEuIFlvdSBjYW4gaGFuZGxlIGV2ZXJ5dGhpbmcgYXMgYSBzaW5nbGUgbWVzc2FnZSBwcm9jZXNzZWQgb3ZlcgotICogICAgICAgICAgICAgc3VjY2Vzc2l2ZSBjYWxscyB0byB0aGlzIGZ1bmN0aW9uLiBJbiB0aGF0IGNhc2UsIHlvdSB3YW50IHRvCi0gKiAgICAgICAgICAgICBzZXQgXHAgbm9uY2VfY291bnRlciBhbmQgXHAgbmNfb2ZmIHRvIDAgZm9yIHRoZSBmaXJzdCBjYWxsLCBhbmQKLSAqICAgICAgICAgICAgIHRoZW4gcHJlc2VydmUgdGhlIHZhbHVlcyBvZiBccCBub25jZV9jb3VudGVyLCBccCBuY19vZmYgYW5kIFxwCi0gKiAgICAgICAgICAgICBzdHJlYW1fYmxvY2sgYWNyb3NzIGNhbGxzIHRvIHRoaXMgZnVuY3Rpb24gYXMgdGhleSB3aWxsIGJlCi0gKiAgICAgICAgICAgICB1cGRhdGVkIGJ5IHRoaXMgZnVuY3Rpb24uCi0gKgotICogICAgICAgICAgICAgV2l0aCB0aGlzIHN0cmF0ZWd5LCB5b3UgbXVzdCBub3QgZW5jcnlwdCBtb3JlIHRoYW4gMioqMTI4Ci0gKiAgICAgICAgICAgICBibG9ja3Mgb2YgZGF0YSB3aXRoIHRoZSBzYW1lIGtleS4KLSAqCi0gKiAgICAgICAgICAgICAyLiBZb3UgY2FuIGVuY3J5cHQgc2VwYXJhdGUgbWVzc2FnZXMgYnkgZGl2aWRpbmcgdGhlIFxwCi0gKiAgICAgICAgICAgICBub25jZV9jb3VudGVyIGJ1ZmZlciBpbiB0d28gYXJlYXM6IHRoZSBmaXJzdCBvbmUgdXNlZCBmb3IgYQotICogICAgICAgICAgICAgcGVyLW1lc3NhZ2Ugbm9uY2UsIGhhbmRsZWQgYnkgeW91cnNlbGYsIGFuZCB0aGUgc2Vjb25kIG9uZQotICogICAgICAgICAgICAgdXBkYXRlZCBieSB0aGlzIGZ1bmN0aW9uIGludGVybmFsbHkuCi0gKgotICogICAgICAgICAgICAgRm9yIGV4YW1wbGUsIHlvdSBtaWdodCByZXNlcnZlIHRoZSBmaXJzdCAxMiBieXRlcyBmb3IgdGhlCi0gKiAgICAgICAgICAgICBwZXItbWVzc2FnZSBub25jZSwgYW5kIHRoZSBsYXN0IDQgYnl0ZXMgZm9yIGludGVybmFsIHVzZS4gSW4gdGhhdAotICogICAgICAgICAgICAgY2FzZSwgYmVmb3JlIGNhbGxpbmcgdGhpcyBmdW5jdGlvbiBvbiBhIG5ldyBtZXNzYWdlIHlvdSBuZWVkIHRvCi0gKiAgICAgICAgICAgICBzZXQgdGhlIGZpcnN0IDEyIGJ5dGVzIG9mIFxwIG5vbmNlX2NvdW50ZXIgdG8geW91ciBjaG9zZW4gbm9uY2UKLSAqICAgICAgICAgICAgIHZhbHVlLCB0aGUgbGFzdCA0IHRvIDAsIGFuZCBccCBuY19vZmYgdG8gMCAod2hpY2ggd2lsbCBjYXVzZSBccAotICogICAgICAgICAgICAgc3RyZWFtX2Jsb2NrIHRvIGJlIGlnbm9yZWQpLiBUaGF0IHdheSwgeW91IGNhbiBlbmNyeXB0IGF0IG1vc3QKLSAqICAgICAgICAgICAgIDIqKjk2IG1lc3NhZ2VzIG9mIHVwIHRvIDIqKjMyIGJsb2NrcyBlYWNoIHdpdGggdGhlIHNhbWUga2V5LgotICoKLSAqICAgICAgICAgICAgIFRoZSBwZXItbWVzc2FnZSBub25jZSAob3IgaW5mb3JtYXRpb24gc3VmZmljaWVudCB0byByZWNvbnN0cnVjdAotICogICAgICAgICAgICAgaXQpIG5lZWRzIHRvIGJlIGNvbW11bmljYXRlZCB3aXRoIHRoZSBjaXBoZXJ0ZXh0IGFuZCBtdXN0IGJlIHVuaXF1ZS4KLSAqICAgICAgICAgICAgIFRoZSByZWNvbW1lbmRlZCB3YXkgdG8gZW5zdXJlIHVuaXF1ZW5lc3MgaXMgdG8gdXNlIGEgbWVzc2FnZQotICogICAgICAgICAgICAgY291bnRlci4gQW4gYWx0ZXJuYXRpdmUgaXMgdG8gZ2VuZXJhdGUgcmFuZG9tIG5vbmNlcywgYnV0IHRoaXMKLSAqICAgICAgICAgICAgIGxpbWl0cyB0aGUgbnVtYmVyIG9mIG1lc3NhZ2VzIHRoYXQgY2FuIGJlIHNlY3VyZWx5IGVuY3J5cHRlZDoKLSAqICAgICAgICAgICAgIGZvciBleGFtcGxlLCB3aXRoIDk2LWJpdCByYW5kb20gbm9uY2VzLCB5b3Ugc2hvdWxkIG5vdCBlbmNyeXB0Ci0gKiAgICAgICAgICAgICBtb3JlIHRoYW4gMioqMzIgbWVzc2FnZXMgd2l0aCB0aGUgc2FtZSBrZXkuCi0gKgotICogICAgICAgICAgICAgTm90ZSB0aGF0IGZvciBib3RoIHN0cmF0ZWdpZXMsIHNpemVzIGFyZSBtZWFzdXJlZCBpbiBibG9ja3MgYW5kCi0gKiAgICAgICAgICAgICB0aGF0IGFuIEFSSUEgYmxvY2sgaXMgMTYgYnl0ZXMuCi0gKgotICogXHdhcm5pbmcgICAgVXBvbiByZXR1cm4sIFxwIHN0cmVhbV9ibG9jayBjb250YWlucyBzZW5zaXRpdmUgZGF0YS4gSXRzCi0gKiAgICAgICAgICAgICBjb250ZW50IG11c3Qgbm90IGJlIHdyaXR0ZW4gdG8gaW5zZWN1cmUgc3RvcmFnZSBhbmQgc2hvdWxkIGJlCi0gKiAgICAgICAgICAgICBzZWN1cmVseSBkaXNjYXJkZWQgYXMgc29vbiBhcyBpdCdzIG5vIGxvbmdlciBuZWVkZWQuCi0gKgotICogXHBhcmFtIGN0eCAgICAgICAgICAgICAgVGhlIEFSSUEgY29udGV4dCB0byB1c2UgZm9yIGVuY3J5cHRpb24gb3IgZGVjcnlwdGlvbi4KLSAqICAgICAgICAgICAgICAgICAgICAgICAgIFRoaXMgbXVzdCBiZSBpbml0aWFsaXplZCBhbmQgYm91bmQgdG8gYSBrZXkuCi0gKiBccGFyYW0gbGVuZ3RoICAgICAgICAgICBUaGUgbGVuZ3RoIG9mIHRoZSBpbnB1dCBkYXRhIFxwIGlucHV0IGluIEJ5dGVzLgotICogXHBhcmFtIG5jX29mZiAgICAgICAgICAgVGhlIG9mZnNldCBpbiBCeXRlcyBpbiB0aGUgY3VycmVudCBccCBzdHJlYW1fYmxvY2ssCi0gKiAgICAgICAgICAgICAgICAgICAgICAgICBmb3IgcmVzdW1pbmcgd2l0aGluIHRoZSBjdXJyZW50IGNpcGhlciBzdHJlYW0uIFRoZQotICogICAgICAgICAgICAgICAgICAgICAgICAgb2Zmc2V0IHBvaW50ZXIgc2hvdWxkIGJlIFxjIDAgYXQgdGhlIHN0YXJ0IG9mIGEKLSAqICAgICAgICAgICAgICAgICAgICAgICAgIHN0cmVhbS4gVGhpcyBtdXN0IG5vdCBiZSBsYXJnZXIgdGhhbiBcYyAxNSBCeXRlcy4KLSAqIFxwYXJhbSBub25jZV9jb3VudGVyICAgIFRoZSAxMjgtYml0IG5vbmNlIGFuZCBjb3VudGVyLiBUaGlzIG11c3QgcG9pbnQgdG8KLSAqICAgICAgICAgICAgICAgICAgICAgICAgIGEgcmVhZC93cml0ZSBidWZmZXIgb2YgbGVuZ3RoIFxjIDE2IGJ5dGVzLgotICogXHBhcmFtIHN0cmVhbV9ibG9jayAgICAgVGhlIHNhdmVkIHN0cmVhbSBibG9jayBmb3IgcmVzdW1pbmcuIFRoaXMgbXVzdAotICogICAgICAgICAgICAgICAgICAgICAgICAgcG9pbnQgdG8gYSByZWFkL3dyaXRlIGJ1ZmZlciBvZiBsZW5ndGggXGMgMTYgYnl0ZXMuCi0gKiAgICAgICAgICAgICAgICAgICAgICAgICBUaGlzIGlzIG92ZXJ3cml0dGVuIGJ5IHRoZSBmdW5jdGlvbi4KLSAqIFxwYXJhbSBpbnB1dCAgICAgICAgICAgIFRoZSBidWZmZXIgaG9sZGluZyB0aGUgaW5wdXQgZGF0YS4gVGhpcyBtdXN0Ci0gKiAgICAgICAgICAgICAgICAgICAgICAgICBiZSBhIHJlYWRhYmxlIGJ1ZmZlciBvZiBsZW5ndGggXHAgbGVuZ3RoIEJ5dGVzLgotICogXHBhcmFtIG91dHB1dCAgICAgICAgICAgVGhlIGJ1ZmZlciBob2xkaW5nIHRoZSBvdXRwdXQgZGF0YS4gVGhpcyBtdXN0Ci0gKiAgICAgICAgICAgICAgICAgICAgICAgICBiZSBhIHdyaXRhYmxlIGJ1ZmZlciBvZiBsZW5ndGggXHAgbGVuZ3RoIEJ5dGVzLgotICoKLSAqIFxyZXR1cm4gICAgICAgICAgICAgICAgIFxjIDAgb24gc3VjY2Vzcy4KLSAqIFxyZXR1cm4gICAgICAgICAgICAgICAgIEEgbmVnYXRpdmUgZXJyb3IgY29kZSBvbiBmYWlsdXJlLgotICovCi1pbnQgbWJlZHRsc19hcmlhX2NyeXB0X2N0cihtYmVkdGxzX2FyaWFfY29udGV4dCAqY3R4LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IGxlbmd0aCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCAqbmNfb2ZmLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgY2hhciBub25jZV9jb3VudGVyW01CRURUTFNfQVJJQV9CTE9DS1NJWkVdLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgY2hhciBzdHJlYW1fYmxvY2tbTUJFRFRMU19BUklBX0JMT0NLU0laRV0sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1bnNpZ25lZCBjaGFyICppbnB1dCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGNoYXIgKm91dHB1dCk7Ci0jZW5kaWYgLyogTUJFRFRMU19DSVBIRVJfTU9ERV9DVFIgKi8KLQotI2lmIGRlZmluZWQoTUJFRFRMU19TRUxGX1RFU1QpCi0vKioKLSAqIFxicmllZiAgICAgICAgICBDaGVja3VwIHJvdXRpbmUuCi0gKgotICogXHJldHVybiAgICAgICAgIFxjIDAgb24gc3VjY2Vzcywgb3IgXGMgMSBvbiBmYWlsdXJlLgotICovCi1pbnQgbWJlZHRsc19hcmlhX3NlbGZfdGVzdChpbnQgdmVyYm9zZSk7Ci0jZW5kaWYgLyogTUJFRFRMU19TRUxGX1RFU1QgKi8KLQotI2lmZGVmIF9fY3BsdXNwbHVzCi19Ci0jZW5kaWYKLQotI2VuZGlmIC8qIGFyaWEuaCAqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9tYmVkdGxzL2NhbWVsbGlhLmggYi9pbmNsdWRlL21iZWR0bHMvY2FtZWxsaWEuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNTU3ZjQ3Mi4uMDAwMDAwMAotLS0gYS9pbmNsdWRlL21iZWR0bHMvY2FtZWxsaWEuaAorKysgL2Rldi9udWxsCkBAIC0xLDMwNSArMCwwIEBACi0vKioKLSAqIFxmaWxlIGNhbWVsbGlhLmgKLSAqCi0gKiBcYnJpZWYgQ2FtZWxsaWEgYmxvY2sgY2lwaGVyCi0gKi8KLS8qCi0gKiAgQ29weXJpZ2h0IFRoZSBNYmVkIFRMUyBDb250cmlidXRvcnMKLSAqICBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMCBPUiBHUEwtMi4wLW9yLWxhdGVyCi0gKi8KLSNpZm5kZWYgTUJFRFRMU19DQU1FTExJQV9ICi0jZGVmaW5lIE1CRURUTFNfQ0FNRUxMSUFfSAotI2luY2x1ZGUgIm1iZWR0bHMvcHJpdmF0ZV9hY2Nlc3MuaCIKLQotI2luY2x1ZGUgIm1iZWR0bHMvYnVpbGRfaW5mby5oIgotCi0jaW5jbHVkZSA8c3RkZGVmLmg+Ci0jaW5jbHVkZSA8c3RkaW50Lmg+Ci0KLSNpbmNsdWRlICJtYmVkdGxzL3BsYXRmb3JtX3V0aWwuaCIKLQotI2RlZmluZSBNQkVEVExTX0NBTUVMTElBX0VOQ1JZUFQgICAgIDEKLSNkZWZpbmUgTUJFRFRMU19DQU1FTExJQV9ERUNSWVBUICAgICAwCi0KLS8qKiBCYWQgaW5wdXQgZGF0YS4gKi8KLSNkZWZpbmUgTUJFRFRMU19FUlJfQ0FNRUxMSUFfQkFEX0lOUFVUX0RBVEEgLTB4MDAyNAotCi0vKiogSW52YWxpZCBkYXRhIGlucHV0IGxlbmd0aC4gKi8KLSNkZWZpbmUgTUJFRFRMU19FUlJfQ0FNRUxMSUFfSU5WQUxJRF9JTlBVVF9MRU5HVEggLTB4MDAyNgotCi0jaWZkZWYgX19jcGx1c3BsdXMKLWV4dGVybiAiQyIgewotI2VuZGlmCi0KLSNpZiAhZGVmaW5lZChNQkVEVExTX0NBTUVMTElBX0FMVCkKLS8vIFJlZ3VsYXIgaW1wbGVtZW50YXRpb24KLS8vCi0KLS8qKgotICogXGJyaWVmICAgICAgICAgIENBTUVMTElBIGNvbnRleHQgc3RydWN0dXJlCi0gKi8KLXR5cGVkZWYgc3RydWN0IG1iZWR0bHNfY2FtZWxsaWFfY29udGV4dCB7Ci0gICAgaW50IE1CRURUTFNfUFJJVkFURShucik7ICAgICAgICAgICAgICAgICAgICAgLyohPCAgbnVtYmVyIG9mIHJvdW5kcyAgKi8KLSAgICB1aW50MzJfdCBNQkVEVExTX1BSSVZBVEUocmspWzY4XTsgICAgICAgICAgICAvKiE8ICBDQU1FTExJQSByb3VuZCBrZXlzICAgICovCi19Ci1tYmVkdGxzX2NhbWVsbGlhX2NvbnRleHQ7Ci0KLSNlbHNlICAvKiBNQkVEVExTX0NBTUVMTElBX0FMVCAqLwotI2luY2x1ZGUgImNhbWVsbGlhX2FsdC5oIgotI2VuZGlmIC8qIE1CRURUTFNfQ0FNRUxMSUFfQUxUICovCi0KLS8qKgotICogXGJyaWVmICAgICAgICAgIEluaXRpYWxpemUgYSBDQU1FTExJQSBjb250ZXh0LgotICoKLSAqIFxwYXJhbSBjdHggICAgICBUaGUgQ0FNRUxMSUEgY29udGV4dCB0byBiZSBpbml0aWFsaXplZC4KLSAqICAgICAgICAgICAgICAgICBUaGlzIG11c3Qgbm90IGJlIFxjIE5VTEwuCi0gKi8KLXZvaWQgbWJlZHRsc19jYW1lbGxpYV9pbml0KG1iZWR0bHNfY2FtZWxsaWFfY29udGV4dCAqY3R4KTsKLQotLyoqCi0gKiBcYnJpZWYgICAgICAgICAgQ2xlYXIgYSBDQU1FTExJQSBjb250ZXh0LgotICoKLSAqIFxwYXJhbSBjdHggICAgICBUaGUgQ0FNRUxMSUEgY29udGV4dCB0byBiZSBjbGVhcmVkLiBUaGlzIG1heSBiZSBcYyBOVUxMLAotICogICAgICAgICAgICAgICAgIGluIHdoaWNoIGNhc2UgdGhpcyBmdW5jdGlvbiByZXR1cm5zIGltbWVkaWF0ZWx5LiBJZiBpdCBpcyBub3QKLSAqICAgICAgICAgICAgICAgICBcYyBOVUxMLCBpdCBtdXN0IGJlIGluaXRpYWxpemVkLgotICovCi12b2lkIG1iZWR0bHNfY2FtZWxsaWFfZnJlZShtYmVkdGxzX2NhbWVsbGlhX2NvbnRleHQgKmN0eCk7Ci0KLS8qKgotICogXGJyaWVmICAgICAgICAgIFBlcmZvcm0gYSBDQU1FTExJQSBrZXkgc2NoZWR1bGUgb3BlcmF0aW9uIGZvciBlbmNyeXB0aW9uLgotICoKLSAqIFxwYXJhbSBjdHggICAgICBUaGUgQ0FNRUxMSUEgY29udGV4dCB0byB1c2UuIFRoaXMgbXVzdCBiZSBpbml0aWFsaXplZC4KLSAqIFxwYXJhbSBrZXkgICAgICBUaGUgZW5jcnlwdGlvbiBrZXkgdG8gdXNlLiBUaGlzIG11c3QgYmUgYSByZWFkYWJsZSBidWZmZXIKLSAqICAgICAgICAgICAgICAgICBvZiBzaXplIFxwIGtleWJpdHMgQml0cy4KLSAqIFxwYXJhbSBrZXliaXRzICBUaGUgbGVuZ3RoIG9mIFxwIGtleSBpbiBCaXRzLiBUaGlzIG11c3QgYmUgZWl0aGVyIFxjIDEyOCwKLSAqICAgICAgICAgICAgICAgICBcYyAxOTIgb3IgXGMgMjU2LgotICoKLSAqIFxyZXR1cm4gICAgICAgICBcYyAwIGlmIHN1Y2Nlc3NmdWwuCi0gKiBccmV0dXJuICAgICAgICAgQSBuZWdhdGl2ZSBlcnJvciBjb2RlIG9uIGZhaWx1cmUuCi0gKi8KLWludCBtYmVkdGxzX2NhbWVsbGlhX3NldGtleV9lbmMobWJlZHRsc19jYW1lbGxpYV9jb250ZXh0ICpjdHgsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgKmtleSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50IGtleWJpdHMpOwotCi0jaWYgIWRlZmluZWQoTUJFRFRMU19CTE9DS19DSVBIRVJfTk9fREVDUllQVCkKLS8qKgotICogXGJyaWVmICAgICAgICAgIFBlcmZvcm0gYSBDQU1FTExJQSBrZXkgc2NoZWR1bGUgb3BlcmF0aW9uIGZvciBkZWNyeXB0aW9uLgotICoKLSAqIFxwYXJhbSBjdHggICAgICBUaGUgQ0FNRUxMSUEgY29udGV4dCB0byB1c2UuIFRoaXMgbXVzdCBiZSBpbml0aWFsaXplZC4KLSAqIFxwYXJhbSBrZXkgICAgICBUaGUgZGVjcnlwdGlvbiBrZXkuIFRoaXMgbXVzdCBiZSBhIHJlYWRhYmxlIGJ1ZmZlcgotICogICAgICAgICAgICAgICAgIG9mIHNpemUgXHAga2V5Yml0cyBCaXRzLgotICogXHBhcmFtIGtleWJpdHMgIFRoZSBsZW5ndGggb2YgXHAga2V5IGluIEJpdHMuIFRoaXMgbXVzdCBiZSBlaXRoZXIgXGMgMTI4LAotICogICAgICAgICAgICAgICAgIFxjIDE5MiBvciBcYyAyNTYuCi0gKgotICogXHJldHVybiAgICAgICAgIFxjIDAgaWYgc3VjY2Vzc2Z1bC4KLSAqIFxyZXR1cm4gICAgICAgICBBIG5lZ2F0aXZlIGVycm9yIGNvZGUgb24gZmFpbHVyZS4KLSAqLwotaW50IG1iZWR0bHNfY2FtZWxsaWFfc2V0a2V5X2RlYyhtYmVkdGxzX2NhbWVsbGlhX2NvbnRleHQgKmN0eCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdW5zaWduZWQgY2hhciAqa2V5LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQga2V5Yml0cyk7Ci0jZW5kaWYgLyogIU1CRURUTFNfQkxPQ0tfQ0lQSEVSX05PX0RFQ1JZUFQgKi8KLQotLyoqCi0gKiBcYnJpZWYgICAgICAgICAgUGVyZm9ybSBhIENBTUVMTElBLUVDQiBibG9jayBlbmNyeXB0aW9uL2RlY3J5cHRpb24gb3BlcmF0aW9uLgotICoKLSAqIFxwYXJhbSBjdHggICAgICBUaGUgQ0FNRUxMSUEgY29udGV4dCB0byB1c2UuIFRoaXMgbXVzdCBiZSBpbml0aWFsaXplZAotICogICAgICAgICAgICAgICAgIGFuZCBib3VuZCB0byBhIGtleS4KLSAqIFxwYXJhbSBtb2RlICAgICBUaGUgbW9kZSBvZiBvcGVyYXRpb24uIFRoaXMgbXVzdCBiZSBlaXRoZXIKLSAqICAgICAgICAgICAgICAgICAjTUJFRFRMU19DQU1FTExJQV9FTkNSWVBUIG9yICNNQkVEVExTX0NBTUVMTElBX0RFQ1JZUFQuCi0gKiBccGFyYW0gaW5wdXQgICAgVGhlIGlucHV0IGJsb2NrLiBUaGlzIG11c3QgYmUgYSByZWFkYWJsZSBidWZmZXIKLSAqICAgICAgICAgICAgICAgICBvZiBzaXplIFxjIDE2IEJ5dGVzLgotICogXHBhcmFtIG91dHB1dCAgIFRoZSBvdXRwdXQgYmxvY2suIFRoaXMgbXVzdCBiZSBhIHdyaXRhYmxlIGJ1ZmZlcgotICogICAgICAgICAgICAgICAgIG9mIHNpemUgXGMgMTYgQnl0ZXMuCi0gKgotICogXHJldHVybiAgICAgICAgIFxjIDAgaWYgc3VjY2Vzc2Z1bC4KLSAqIFxyZXR1cm4gICAgICAgICBBIG5lZ2F0aXZlIGVycm9yIGNvZGUgb24gZmFpbHVyZS4KLSAqLwotaW50IG1iZWR0bHNfY2FtZWxsaWFfY3J5cHRfZWNiKG1iZWR0bHNfY2FtZWxsaWFfY29udGV4dCAqY3R4LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBtb2RlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgaW5wdXRbMTZdLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGNoYXIgb3V0cHV0WzE2XSk7Ci0KLSNpZiBkZWZpbmVkKE1CRURUTFNfQ0lQSEVSX01PREVfQ0JDKQotLyoqCi0gKiBcYnJpZWYgICAgICAgICAgUGVyZm9ybSBhIENBTUVMTElBLUNCQyBidWZmZXIgZW5jcnlwdGlvbi9kZWNyeXB0aW9uIG9wZXJhdGlvbi4KLSAqCi0gKiBcbm90ZSAgICAgICAgICAgVXBvbiBleGl0LCB0aGUgY29udGVudCBvZiB0aGUgSVYgaXMgdXBkYXRlZCBzbyB0aGF0IHlvdSBjYW4KLSAqICAgICAgICAgICAgICAgICBjYWxsIHRoZSBmdW5jdGlvbiBzYW1lIGZ1bmN0aW9uIGFnYWluIG9uIHRoZSBmb2xsb3dpbmcKLSAqICAgICAgICAgICAgICAgICBibG9jayhzKSBvZiBkYXRhIGFuZCBnZXQgdGhlIHNhbWUgcmVzdWx0IGFzIGlmIGl0IHdhcwotICogICAgICAgICAgICAgICAgIGVuY3J5cHRlZCBpbiBvbmUgY2FsbC4gVGhpcyBhbGxvd3MgYSAic3RyZWFtaW5nIiB1c2FnZS4KLSAqICAgICAgICAgICAgICAgICBJZiBvbiB0aGUgb3RoZXIgaGFuZCB5b3UgbmVlZCB0byByZXRhaW4gdGhlIGNvbnRlbnRzIG9mIHRoZQotICogICAgICAgICAgICAgICAgIElWLCB5b3Ugc2hvdWxkIGVpdGhlciBzYXZlIGl0IG1hbnVhbGx5IG9yIHVzZSB0aGUgY2lwaGVyCi0gKiAgICAgICAgICAgICAgICAgbW9kdWxlIGluc3RlYWQuCi0gKgotICogXHBhcmFtIGN0eCAgICAgIFRoZSBDQU1FTExJQSBjb250ZXh0IHRvIHVzZS4gVGhpcyBtdXN0IGJlIGluaXRpYWxpemVkCi0gKiAgICAgICAgICAgICAgICAgYW5kIGJvdW5kIHRvIGEga2V5LgotICogXHBhcmFtIG1vZGUgICAgIFRoZSBtb2RlIG9mIG9wZXJhdGlvbi4gVGhpcyBtdXN0IGJlIGVpdGhlcgotICogICAgICAgICAgICAgICAgICNNQkVEVExTX0NBTUVMTElBX0VOQ1JZUFQgb3IgI01CRURUTFNfQ0FNRUxMSUFfREVDUllQVC4KLSAqIFxwYXJhbSBsZW5ndGggICBUaGUgbGVuZ3RoIGluIEJ5dGVzIG9mIHRoZSBpbnB1dCBkYXRhIFxwIGlucHV0LgotICogICAgICAgICAgICAgICAgIFRoaXMgbXVzdCBiZSBhIG11bHRpcGxlIG9mIFxjIDE2IEJ5dGVzLgotICogXHBhcmFtIGl2ICAgICAgIFRoZSBpbml0aWFsaXphdGlvbiB2ZWN0b3IuIFRoaXMgbXVzdCBiZSBhIHJlYWQvd3JpdGUgYnVmZmVyCi0gKiAgICAgICAgICAgICAgICAgb2YgbGVuZ3RoIFxjIDE2IEJ5dGVzLiBJdCBpcyB1cGRhdGVkIHRvIGFsbG93IHN0cmVhbWluZwotICogICAgICAgICAgICAgICAgIHVzZSBhcyBleHBsYWluZWQgYWJvdmUuCi0gKiBccGFyYW0gaW5wdXQgICAgVGhlIGJ1ZmZlciBob2xkaW5nIHRoZSBpbnB1dCBkYXRhLiBUaGlzIG11c3QgcG9pbnQgdG8gYQotICogICAgICAgICAgICAgICAgIHJlYWRhYmxlIGJ1ZmZlciBvZiBsZW5ndGggXHAgbGVuZ3RoIEJ5dGVzLgotICogXHBhcmFtIG91dHB1dCAgIFRoZSBidWZmZXIgaG9sZGluZyB0aGUgb3V0cHV0IGRhdGEuIFRoaXMgbXVzdCBwb2ludCB0byBhCi0gKiAgICAgICAgICAgICAgICAgd3JpdGFibGUgYnVmZmVyIG9mIGxlbmd0aCBccCBsZW5ndGggQnl0ZXMuCi0gKgotICogXHJldHVybiAgICAgICAgIFxjIDAgaWYgc3VjY2Vzc2Z1bC4KLSAqIFxyZXR1cm4gICAgICAgICBBIG5lZ2F0aXZlIGVycm9yIGNvZGUgb24gZmFpbHVyZS4KLSAqLwotaW50IG1iZWR0bHNfY2FtZWxsaWFfY3J5cHRfY2JjKG1iZWR0bHNfY2FtZWxsaWFfY29udGV4dCAqY3R4LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBtb2RlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBsZW5ndGgsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgY2hhciBpdlsxNl0sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdW5zaWduZWQgY2hhciAqaW5wdXQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgY2hhciAqb3V0cHV0KTsKLSNlbmRpZiAvKiBNQkVEVExTX0NJUEhFUl9NT0RFX0NCQyAqLwotCi0jaWYgZGVmaW5lZChNQkVEVExTX0NJUEhFUl9NT0RFX0NGQikKLS8qKgotICogXGJyaWVmICAgICAgICAgIFBlcmZvcm0gYSBDQU1FTExJQS1DRkIxMjggYnVmZmVyIGVuY3J5cHRpb24vZGVjcnlwdGlvbgotICogICAgICAgICAgICAgICAgIG9wZXJhdGlvbi4KLSAqCi0gKiBcbm90ZSAgICAgICAgICAgRHVlIHRvIHRoZSBuYXR1cmUgb2YgQ0ZCIG1vZGUsIHlvdSBzaG91bGQgdXNlIHRoZSBzYW1lCi0gKiAgICAgICAgICAgICAgICAga2V5IGZvciBib3RoIGVuY3J5cHRpb24gYW5kIGRlY3J5cHRpb24uIEluIHBhcnRpY3VsYXIsIGNhbGxzCi0gKiAgICAgICAgICAgICAgICAgdG8gdGhpcyBmdW5jdGlvbiBzaG91bGQgYmUgcHJlY2VkZWQgYnkgYSBrZXktc2NoZWR1bGUgdmlhCi0gKiAgICAgICAgICAgICAgICAgbWJlZHRsc19jYW1lbGxpYV9zZXRrZXlfZW5jKCkgcmVnYXJkbGVzcyBvZiB3aGV0aGVyIFxwIG1vZGUKLSAqICAgICAgICAgICAgICAgICBpcyAjTUJFRFRMU19DQU1FTExJQV9FTkNSWVBUIG9yICNNQkVEVExTX0NBTUVMTElBX0RFQ1JZUFQuCi0gKgotICogXG5vdGUgICAgICAgICAgIFVwb24gZXhpdCwgdGhlIGNvbnRlbnQgb2YgdGhlIElWIGlzIHVwZGF0ZWQgc28gdGhhdCB5b3UgY2FuCi0gKiAgICAgICAgICAgICAgICAgY2FsbCB0aGUgZnVuY3Rpb24gc2FtZSBmdW5jdGlvbiBhZ2FpbiBvbiB0aGUgZm9sbG93aW5nCi0gKiAgICAgICAgICAgICAgICAgYmxvY2socykgb2YgZGF0YSBhbmQgZ2V0IHRoZSBzYW1lIHJlc3VsdCBhcyBpZiBpdCB3YXMKLSAqICAgICAgICAgICAgICAgICBlbmNyeXB0ZWQgaW4gb25lIGNhbGwuIFRoaXMgYWxsb3dzIGEgInN0cmVhbWluZyIgdXNhZ2UuCi0gKiAgICAgICAgICAgICAgICAgSWYgb24gdGhlIG90aGVyIGhhbmQgeW91IG5lZWQgdG8gcmV0YWluIHRoZSBjb250ZW50cyBvZiB0aGUKLSAqICAgICAgICAgICAgICAgICBJViwgeW91IHNob3VsZCBlaXRoZXIgc2F2ZSBpdCBtYW51YWxseSBvciB1c2UgdGhlIGNpcGhlcgotICogICAgICAgICAgICAgICAgIG1vZHVsZSBpbnN0ZWFkLgotICoKLSAqIFxwYXJhbSBjdHggICAgICBUaGUgQ0FNRUxMSUEgY29udGV4dCB0byB1c2UuIFRoaXMgbXVzdCBiZSBpbml0aWFsaXplZAotICogICAgICAgICAgICAgICAgIGFuZCBib3VuZCB0byBhIGtleS4KLSAqIFxwYXJhbSBtb2RlICAgICBUaGUgbW9kZSBvZiBvcGVyYXRpb24uIFRoaXMgbXVzdCBiZSBlaXRoZXIKLSAqICAgICAgICAgICAgICAgICAjTUJFRFRMU19DQU1FTExJQV9FTkNSWVBUIG9yICNNQkVEVExTX0NBTUVMTElBX0RFQ1JZUFQuCi0gKiBccGFyYW0gbGVuZ3RoICAgVGhlIGxlbmd0aCBvZiB0aGUgaW5wdXQgZGF0YSBccCBpbnB1dC4gQW55IHZhbHVlIGlzIGFsbG93ZWQuCi0gKiBccGFyYW0gaXZfb2ZmICAgVGhlIGN1cnJlbnQgb2Zmc2V0IGluIHRoZSBJVi4gVGhpcyBtdXN0IGJlIHNtYWxsZXIKLSAqICAgICAgICAgICAgICAgICB0aGFuIFxjIDE2IEJ5dGVzLiBJdCBpcyB1cGRhdGVkIGFmdGVyIHRoaXMgY2FsbCB0byBhbGxvdwotICogICAgICAgICAgICAgICAgIHRoZSBhZm9yZW1lbnRpb25lZCBzdHJlYW1pbmcgdXNhZ2UuCi0gKiBccGFyYW0gaXYgICAgICAgVGhlIGluaXRpYWxpemF0aW9uIHZlY3Rvci4gVGhpcyBtdXN0IGJlIGEgcmVhZC93cml0ZSBidWZmZXIKLSAqICAgICAgICAgICAgICAgICBvZiBsZW5ndGggXGMgMTYgQnl0ZXMuIEl0IGlzIHVwZGF0ZWQgYWZ0ZXIgdGhpcyBjYWxsIHRvCi0gKiAgICAgICAgICAgICAgICAgYWxsb3cgdGhlIGFmb3JlbWVudGlvbmVkIHN0cmVhbWluZyB1c2FnZS4KLSAqIFxwYXJhbSBpbnB1dCAgICBUaGUgYnVmZmVyIGhvbGRpbmcgdGhlIGlucHV0IGRhdGEuIFRoaXMgbXVzdCBiZSBhIHJlYWRhYmxlCi0gKiAgICAgICAgICAgICAgICAgYnVmZmVyIG9mIHNpemUgXHAgbGVuZ3RoIEJ5dGVzLgotICogXHBhcmFtIG91dHB1dCAgIFRoZSBidWZmZXIgdG8gaG9sZCB0aGUgb3V0cHV0IGRhdGEuIFRoaXMgbXVzdCBiZSBhIHdyaXRhYmxlCi0gKiAgICAgICAgICAgICAgICAgYnVmZmVyIG9mIGxlbmd0aCBccCBsZW5ndGggQnl0ZXMuCi0gKgotICogXHJldHVybiAgICAgICAgIFxjIDAgaWYgc3VjY2Vzc2Z1bC4KLSAqIFxyZXR1cm4gICAgICAgICBBIG5lZ2F0aXZlIGVycm9yIGNvZGUgb24gZmFpbHVyZS4KLSAqLwotaW50IG1iZWR0bHNfY2FtZWxsaWFfY3J5cHRfY2ZiMTI4KG1iZWR0bHNfY2FtZWxsaWFfY29udGV4dCAqY3R4LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBtb2RlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBsZW5ndGgsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90ICppdl9vZmYsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgY2hhciBpdlsxNl0sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdW5zaWduZWQgY2hhciAqaW5wdXQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgY2hhciAqb3V0cHV0KTsKLSNlbmRpZiAvKiBNQkVEVExTX0NJUEhFUl9NT0RFX0NGQiAqLwotCi0jaWYgZGVmaW5lZChNQkVEVExTX0NJUEhFUl9NT0RFX0NUUikKLS8qKgotICogXGJyaWVmICAgICAgUGVyZm9ybSBhIENBTUVMTElBLUNUUiBidWZmZXIgZW5jcnlwdGlvbi9kZWNyeXB0aW9uIG9wZXJhdGlvbi4KLSAqCi0gKiAqbm90ZSAgICAgICBEdWUgdG8gdGhlIG5hdHVyZSBvZiBDVFIgbW9kZSwgeW91IHNob3VsZCB1c2UgdGhlIHNhbWUKLSAqICAgICAgICAgICAgIGtleSBmb3IgYm90aCBlbmNyeXB0aW9uIGFuZCBkZWNyeXB0aW9uLiBJbiBwYXJ0aWN1bGFyLCBjYWxscwotICogICAgICAgICAgICAgdG8gdGhpcyBmdW5jdGlvbiBzaG91bGQgYmUgcHJlY2VkZWQgYnkgYSBrZXktc2NoZWR1bGUgdmlhCi0gKiAgICAgICAgICAgICBtYmVkdGxzX2NhbWVsbGlhX3NldGtleV9lbmMoKSByZWdhcmRsZXNzIG9mIHdoZXRoZXIgdGhlIG1vZGUKLSAqICAgICAgICAgICAgIGlzICNNQkVEVExTX0NBTUVMTElBX0VOQ1JZUFQgb3IgI01CRURUTFNfQ0FNRUxMSUFfREVDUllQVC4KLSAqCi0gKiBcd2FybmluZyAgICBZb3UgbXVzdCBuZXZlciByZXVzZSBhIG5vbmNlIHZhbHVlIHdpdGggdGhlIHNhbWUga2V5LiBEb2luZyBzbwotICogICAgICAgICAgICAgd291bGQgdm9pZCB0aGUgZW5jcnlwdGlvbiBmb3IgdGhlIHR3byBtZXNzYWdlcyBlbmNyeXB0ZWQgd2l0aAotICogICAgICAgICAgICAgdGhlIHNhbWUgbm9uY2UgYW5kIGtleS4KLSAqCi0gKiAgICAgICAgICAgICBUaGVyZSBhcmUgdHdvIGNvbW1vbiBzdHJhdGVnaWVzIGZvciBtYW5hZ2luZyBub25jZXMgd2l0aCBDVFI6Ci0gKgotICogICAgICAgICAgICAgMS4gWW91IGNhbiBoYW5kbGUgZXZlcnl0aGluZyBhcyBhIHNpbmdsZSBtZXNzYWdlIHByb2Nlc3NlZCBvdmVyCi0gKiAgICAgICAgICAgICBzdWNjZXNzaXZlIGNhbGxzIHRvIHRoaXMgZnVuY3Rpb24uIEluIHRoYXQgY2FzZSwgeW91IHdhbnQgdG8KLSAqICAgICAgICAgICAgIHNldCBccCBub25jZV9jb3VudGVyIGFuZCBccCBuY19vZmYgdG8gMCBmb3IgdGhlIGZpcnN0IGNhbGwsIGFuZAotICogICAgICAgICAgICAgdGhlbiBwcmVzZXJ2ZSB0aGUgdmFsdWVzIG9mIFxwIG5vbmNlX2NvdW50ZXIsIFxwIG5jX29mZiBhbmQgXHAKLSAqICAgICAgICAgICAgIHN0cmVhbV9ibG9jayBhY3Jvc3MgY2FsbHMgdG8gdGhpcyBmdW5jdGlvbiBhcyB0aGV5IHdpbGwgYmUKLSAqICAgICAgICAgICAgIHVwZGF0ZWQgYnkgdGhpcyBmdW5jdGlvbi4KLSAqCi0gKiAgICAgICAgICAgICBXaXRoIHRoaXMgc3RyYXRlZ3ksIHlvdSBtdXN0IG5vdCBlbmNyeXB0IG1vcmUgdGhhbiAyKioxMjgKLSAqICAgICAgICAgICAgIGJsb2NrcyBvZiBkYXRhIHdpdGggdGhlIHNhbWUga2V5LgotICoKLSAqICAgICAgICAgICAgIDIuIFlvdSBjYW4gZW5jcnlwdCBzZXBhcmF0ZSBtZXNzYWdlcyBieSBkaXZpZGluZyB0aGUgXHAKLSAqICAgICAgICAgICAgIG5vbmNlX2NvdW50ZXIgYnVmZmVyIGluIHR3byBhcmVhczogdGhlIGZpcnN0IG9uZSB1c2VkIGZvciBhCi0gKiAgICAgICAgICAgICBwZXItbWVzc2FnZSBub25jZSwgaGFuZGxlZCBieSB5b3Vyc2VsZiwgYW5kIHRoZSBzZWNvbmQgb25lCi0gKiAgICAgICAgICAgICB1cGRhdGVkIGJ5IHRoaXMgZnVuY3Rpb24gaW50ZXJuYWxseS4KLSAqCi0gKiAgICAgICAgICAgICBGb3IgZXhhbXBsZSwgeW91IG1pZ2h0IHJlc2VydmUgdGhlIGZpcnN0IFxjIDEyIEJ5dGVzIGZvciB0aGUKLSAqICAgICAgICAgICAgIHBlci1tZXNzYWdlIG5vbmNlLCBhbmQgdGhlIGxhc3QgXGMgNCBCeXRlcyBmb3IgaW50ZXJuYWwgdXNlLgotICogICAgICAgICAgICAgSW4gdGhhdCBjYXNlLCBiZWZvcmUgY2FsbGluZyB0aGlzIGZ1bmN0aW9uIG9uIGEgbmV3IG1lc3NhZ2UgeW91Ci0gKiAgICAgICAgICAgICBuZWVkIHRvIHNldCB0aGUgZmlyc3QgXGMgMTIgQnl0ZXMgb2YgXHAgbm9uY2VfY291bnRlciB0byB5b3VyCi0gKiAgICAgICAgICAgICBjaG9zZW4gbm9uY2UgdmFsdWUsIHRoZSBsYXN0IGZvdXIgdG8gXGMgMCwgYW5kIFxwIG5jX29mZiB0byBcYyAwCi0gKiAgICAgICAgICAgICAod2hpY2ggd2lsbCBjYXVzZSBccCBzdHJlYW1fYmxvY2sgdG8gYmUgaWdub3JlZCkuIFRoYXQgd2F5LCB5b3UKLSAqICAgICAgICAgICAgIGNhbiBlbmNyeXB0IGF0IG1vc3QgXGMgMioqOTYgbWVzc2FnZXMgb2YgdXAgdG8gXGMgMioqMzIgYmxvY2tzCi0gKiAgICAgICAgICAgICBlYWNoICB3aXRoIHRoZSBzYW1lIGtleS4KLSAqCi0gKiAgICAgICAgICAgICBUaGUgcGVyLW1lc3NhZ2Ugbm9uY2UgKG9yIGluZm9ybWF0aW9uIHN1ZmZpY2llbnQgdG8gcmVjb25zdHJ1Y3QKLSAqICAgICAgICAgICAgIGl0KSBuZWVkcyB0byBiZSBjb21tdW5pY2F0ZWQgd2l0aCB0aGUgY2lwaGVydGV4dCBhbmQgbXVzdCBiZQotICogICAgICAgICAgICAgdW5pcXVlLiBUaGUgcmVjb21tZW5kZWQgd2F5IHRvIGVuc3VyZSB1bmlxdWVuZXNzIGlzIHRvIHVzZSBhCi0gKiAgICAgICAgICAgICBtZXNzYWdlIGNvdW50ZXIuIEFuIGFsdGVybmF0aXZlIGlzIHRvIGdlbmVyYXRlIHJhbmRvbSBub25jZXMsCi0gKiAgICAgICAgICAgICBidXQgdGhpcyBsaW1pdHMgdGhlIG51bWJlciBvZiBtZXNzYWdlcyB0aGF0IGNhbiBiZSBzZWN1cmVseQotICogICAgICAgICAgICAgZW5jcnlwdGVkOiBmb3IgZXhhbXBsZSwgd2l0aCA5Ni1iaXQgcmFuZG9tIG5vbmNlcywgeW91IHNob3VsZAotICogICAgICAgICAgICAgbm90IGVuY3J5cHQgbW9yZSB0aGFuIDIqKjMyIG1lc3NhZ2VzIHdpdGggdGhlIHNhbWUga2V5LgotICoKLSAqICAgICAgICAgICAgIE5vdGUgdGhhdCBmb3IgYm90aCBzdHJhdGVnaWVzLCBzaXplcyBhcmUgbWVhc3VyZWQgaW4gYmxvY2tzIGFuZAotICogICAgICAgICAgICAgdGhhdCBhIENBTUVMTElBIGJsb2NrIGlzIFxjIDE2IEJ5dGVzLgotICoKLSAqIFx3YXJuaW5nICAgIFVwb24gcmV0dXJuLCBccCBzdHJlYW1fYmxvY2sgY29udGFpbnMgc2Vuc2l0aXZlIGRhdGEuIEl0cwotICogICAgICAgICAgICAgY29udGVudCBtdXN0IG5vdCBiZSB3cml0dGVuIHRvIGluc2VjdXJlIHN0b3JhZ2UgYW5kIHNob3VsZCBiZQotICogICAgICAgICAgICAgc2VjdXJlbHkgZGlzY2FyZGVkIGFzIHNvb24gYXMgaXQncyBubyBsb25nZXIgbmVlZGVkLgotICoKLSAqIFxwYXJhbSBjdHggICAgICAgICAgIFRoZSBDQU1FTExJQSBjb250ZXh0IHRvIHVzZS4gVGhpcyBtdXN0IGJlIGluaXRpYWxpemVkCi0gKiAgICAgICAgICAgICAgICAgICAgICBhbmQgYm91bmQgdG8gYSBrZXkuCi0gKiBccGFyYW0gbGVuZ3RoICAgICAgICBUaGUgbGVuZ3RoIG9mIHRoZSBpbnB1dCBkYXRhIFxwIGlucHV0IGluIEJ5dGVzLgotICogICAgICAgICAgICAgICAgICAgICAgQW55IHZhbHVlIGlzIGFsbG93ZWQuCi0gKiBccGFyYW0gbmNfb2ZmICAgICAgICBUaGUgb2Zmc2V0IGluIHRoZSBjdXJyZW50IFxwIHN0cmVhbV9ibG9jayAoZm9yIHJlc3VtaW5nCi0gKiAgICAgICAgICAgICAgICAgICAgICB3aXRoaW4gY3VycmVudCBjaXBoZXIgc3RyZWFtKS4gVGhlIG9mZnNldCBwb2ludGVyIHRvCi0gKiAgICAgICAgICAgICAgICAgICAgICBzaG91bGQgYmUgXGMgMCBhdCB0aGUgc3RhcnQgb2YgYSBzdHJlYW0uIEl0IGlzIHVwZGF0ZWQKLSAqICAgICAgICAgICAgICAgICAgICAgIGF0IHRoZSBlbmQgb2YgdGhpcyBjYWxsLgotICogXHBhcmFtIG5vbmNlX2NvdW50ZXIgVGhlIDEyOC1iaXQgbm9uY2UgYW5kIGNvdW50ZXIuIFRoaXMgbXVzdCBiZSBhIHJlYWQvd3JpdGUKLSAqICAgICAgICAgICAgICAgICAgICAgIGJ1ZmZlciBvZiBsZW5ndGggXGMgMTYgQnl0ZXMuCi0gKiBccGFyYW0gc3RyZWFtX2Jsb2NrICBUaGUgc2F2ZWQgc3RyZWFtLWJsb2NrIGZvciByZXN1bWluZy4gVGhpcyBtdXN0IGJlIGEKLSAqICAgICAgICAgICAgICAgICAgICAgIHJlYWQvd3JpdGUgYnVmZmVyIG9mIGxlbmd0aCBcYyAxNiBCeXRlcy4KLSAqIFxwYXJhbSBpbnB1dCAgICAgICAgIFRoZSBpbnB1dCBkYXRhIHN0cmVhbS4gVGhpcyBtdXN0IGJlIGEgcmVhZGFibGUgYnVmZmVyIG9mCi0gKiAgICAgICAgICAgICAgICAgICAgICBzaXplIFxwIGxlbmd0aCBCeXRlcy4KLSAqIFxwYXJhbSBvdXRwdXQgICAgICAgIFRoZSBvdXRwdXQgZGF0YSBzdHJlYW0uIFRoaXMgbXVzdCBiZSBhIHdyaXRhYmxlIGJ1ZmZlcgotICogICAgICAgICAgICAgICAgICAgICAgb2Ygc2l6ZSBccCBsZW5ndGggQnl0ZXMuCi0gKgotICogXHJldHVybiAgICAgICAgICAgICAgXGMgMCBpZiBzdWNjZXNzZnVsLgotICogXHJldHVybiAgICAgICAgICAgICAgQSBuZWdhdGl2ZSBlcnJvciBjb2RlIG9uIGZhaWx1cmUuCi0gKi8KLWludCBtYmVkdGxzX2NhbWVsbGlhX2NyeXB0X2N0cihtYmVkdGxzX2NhbWVsbGlhX2NvbnRleHQgKmN0eCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgbGVuZ3RoLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCAqbmNfb2ZmLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGNoYXIgbm9uY2VfY291bnRlclsxNl0sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgY2hhciBzdHJlYW1fYmxvY2tbMTZdLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgKmlucHV0LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGNoYXIgKm91dHB1dCk7Ci0jZW5kaWYgLyogTUJFRFRMU19DSVBIRVJfTU9ERV9DVFIgKi8KLQotI2lmIGRlZmluZWQoTUJFRFRMU19TRUxGX1RFU1QpCi0KLS8qKgotICogXGJyaWVmICAgICAgICAgIENoZWNrdXAgcm91dGluZQotICoKLSAqIFxyZXR1cm4gICAgICAgICAwIGlmIHN1Y2Nlc3NmdWwsIG9yIDEgaWYgdGhlIHRlc3QgZmFpbGVkCi0gKi8KLWludCBtYmVkdGxzX2NhbWVsbGlhX3NlbGZfdGVzdChpbnQgdmVyYm9zZSk7Ci0KLSNlbmRpZiAvKiBNQkVEVExTX1NFTEZfVEVTVCAqLwotCi0jaWZkZWYgX19jcGx1c3BsdXMKLX0KLSNlbmRpZgotCi0jZW5kaWYgLyogY2FtZWxsaWEuaCAqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9tYmVkdGxzL2NjbS5oIGIvaW5jbHVkZS9tYmVkdGxzL2NjbS5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxZGE1N2M5Li4wMDAwMDAwCi0tLSBhL2luY2x1ZGUvbWJlZHRscy9jY20uaAorKysgL2Rldi9udWxsCkBAIC0xLDUyNiArMCwwIEBACi0vKioKLSAqIFxmaWxlIGNjbS5oCi0gKgotICogXGJyaWVmIFRoaXMgZmlsZSBwcm92aWRlcyBhbiBBUEkgZm9yIHRoZSBDQ00gYXV0aGVudGljYXRlZCBlbmNyeXB0aW9uCi0gKiAgICAgICAgbW9kZSBmb3IgYmxvY2sgY2lwaGVycy4KLSAqCi0gKiBDQ00gY29tYmluZXMgQ291bnRlciBtb2RlIGVuY3J5cHRpb24gd2l0aCBDQkMtTUFDIGF1dGhlbnRpY2F0aW9uCi0gKiBmb3IgMTI4LWJpdCBibG9jayBjaXBoZXJzLgotICoKLSAqIElucHV0IHRvIENDTSBpbmNsdWRlcyB0aGUgZm9sbG93aW5nIGVsZW1lbnRzOgotICogPHVsPjxsaT5QYXlsb2FkIC0gZGF0YSB0aGF0IGlzIGJvdGggYXV0aGVudGljYXRlZCBhbmQgZW5jcnlwdGVkLjwvbGk+Ci0gKiA8bGk+QXNzb2NpYXRlZCBkYXRhIChBZGF0YSkgLSBkYXRhIHRoYXQgaXMgYXV0aGVudGljYXRlZCBidXQgbm90Ci0gKiBlbmNyeXB0ZWQsIEZvciBleGFtcGxlLCBhIGhlYWRlci48L2xpPgotICogPGxpPk5vbmNlIC0gQSB1bmlxdWUgdmFsdWUgdGhhdCBpcyBhc3NpZ25lZCB0byB0aGUgcGF5bG9hZCBhbmQgdGhlCi0gKiBhc3NvY2lhdGVkIGRhdGEuPC9saT48L3VsPgotICoKLSAqIERlZmluaXRpb24gb2YgQ0NNOgotICogaHR0cDovL2NzcmMubmlzdC5nb3YvcHVibGljYXRpb25zL25pc3RwdWJzLzgwMC0zOEMvU1A4MDAtMzhDX3VwZGF0ZWQtSnVseTIwXzIwMDcucGRmCi0gKiBSRkMgMzYxMCAiQ291bnRlciB3aXRoIENCQy1NQUMgKENDTSkiCi0gKgotICogUmVsYXRlZDoKLSAqIFJGQyA1MTE2ICJBbiBJbnRlcmZhY2UgYW5kIEFsZ29yaXRobXMgZm9yIEF1dGhlbnRpY2F0ZWQgRW5jcnlwdGlvbiIKLSAqCi0gKiBEZWZpbml0aW9uIG9mIENDTSo6Ci0gKiBJRUVFIDgwMi4xNS40IC0gSUVFRSBTdGFuZGFyZCBmb3IgTG9jYWwgYW5kIG1ldHJvcG9saXRhbiBhcmVhIG5ldHdvcmtzCi0gKiBJbnRlZ2VyIHJlcHJlc2VudGF0aW9uIGlzIGZpeGVkIG1vc3Qtc2lnbmlmaWNhbnQtb2N0ZXQtZmlyc3Qgb3JkZXIgYW5kCi0gKiB0aGUgcmVwcmVzZW50YXRpb24gb2Ygb2N0ZXRzIGlzIG1vc3Qtc2lnbmlmaWNhbnQtYml0LWZpcnN0IG9yZGVyLiBUaGlzIGlzCi0gKiBjb25zaXN0ZW50IHdpdGggUkZDIDM2MTAuCi0gKi8KLS8qCi0gKiAgQ29weXJpZ2h0IFRoZSBNYmVkIFRMUyBDb250cmlidXRvcnMKLSAqICBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMCBPUiBHUEwtMi4wLW9yLWxhdGVyCi0gKi8KLQotI2lmbmRlZiBNQkVEVExTX0NDTV9ICi0jZGVmaW5lIE1CRURUTFNfQ0NNX0gKLSNpbmNsdWRlICJtYmVkdGxzL3ByaXZhdGVfYWNjZXNzLmgiCi0KLSNpbmNsdWRlICJtYmVkdGxzL2J1aWxkX2luZm8uaCIKLQotI2luY2x1ZGUgIm1iZWR0bHMvY2lwaGVyLmgiCi0KLSNpZiBkZWZpbmVkKE1CRURUTFNfQkxPQ0tfQ0lQSEVSX0MpCi0jaW5jbHVkZSAibWJlZHRscy9ibG9ja19jaXBoZXIuaCIKLSNlbmRpZgotCi0jZGVmaW5lIE1CRURUTFNfQ0NNX0RFQ1JZUFQgICAgICAgMAotI2RlZmluZSBNQkVEVExTX0NDTV9FTkNSWVBUICAgICAgIDEKLSNkZWZpbmUgTUJFRFRMU19DQ01fU1RBUl9ERUNSWVBUICAyCi0jZGVmaW5lIE1CRURUTFNfQ0NNX1NUQVJfRU5DUllQVCAgMwotCi0vKiogQmFkIGlucHV0IHBhcmFtZXRlcnMgdG8gdGhlIGZ1bmN0aW9uLiAqLwotI2RlZmluZSBNQkVEVExTX0VSUl9DQ01fQkFEX0lOUFVUICAgICAgIC0weDAwMEQKLS8qKiBBdXRoZW50aWNhdGVkIGRlY3J5cHRpb24gZmFpbGVkLiAqLwotI2RlZmluZSBNQkVEVExTX0VSUl9DQ01fQVVUSF9GQUlMRUQgICAgIC0weDAwMEYKLQotI2lmZGVmIF9fY3BsdXNwbHVzCi1leHRlcm4gIkMiIHsKLSNlbmRpZgotCi0jaWYgIWRlZmluZWQoTUJFRFRMU19DQ01fQUxUKQotLy8gUmVndWxhciBpbXBsZW1lbnRhdGlvbgotLy8KLQotLyoqCi0gKiBcYnJpZWYgICAgVGhlIENDTSBjb250ZXh0LXR5cGUgZGVmaW5pdGlvbi4gVGhlIENDTSBjb250ZXh0IGlzIHBhc3NlZAotICogICAgICAgICAgIHRvIHRoZSBBUElzIGNhbGxlZC4KLSAqLwotdHlwZWRlZiBzdHJ1Y3QgbWJlZHRsc19jY21fY29udGV4dCB7Ci0gICAgdW5zaWduZWQgY2hhciBNQkVEVExTX1BSSVZBVEUoeSlbMTZdOyAgICAvKiE8IFRoZSBZIHdvcmtpbmcgYnVmZmVyICovCi0gICAgdW5zaWduZWQgY2hhciBNQkVEVExTX1BSSVZBVEUoY3RyKVsxNl07ICAvKiE8IFRoZSBjb3VudGVyIGJ1ZmZlciAqLwotICAgIHNpemVfdCBNQkVEVExTX1BSSVZBVEUocGxhaW50ZXh0X2xlbik7ICAgLyohPCBUb3RhbCBwbGFpbnRleHQgbGVuZ3RoICovCi0gICAgc2l6ZV90IE1CRURUTFNfUFJJVkFURShhZGRfbGVuKTsgICAgICAgICAvKiE8IFRvdGFsIGF1dGhlbnRpY2F0aW9uIGRhdGEgbGVuZ3RoICovCi0gICAgc2l6ZV90IE1CRURUTFNfUFJJVkFURSh0YWdfbGVuKTsgICAgICAgICAvKiE8IFRvdGFsIHRhZyBsZW5ndGggKi8KLSAgICBzaXplX3QgTUJFRFRMU19QUklWQVRFKHByb2Nlc3NlZCk7ICAgICAgIC8qITwgVHJhY2sgaG93IG1hbnkgYnl0ZXMgb2YgaW5wdXQgZGF0YQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3ZXJlIHByb2Nlc3NlZCAoY2h1bmtlZCBpbnB1dCkuCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVzZWQgaW5kZXBlbmRlbnRseSBmb3IgYm90aCBhdXRoIGRhdGEKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYW5kIHBsYWludGV4dC9jaXBoZXJ0ZXh0LgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUaGlzIHZhcmlhYmxlIGlzIHNldCB0byB6ZXJvIGFmdGVyCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF1dGggZGF0YSBpbnB1dCBpcyBmaW5pc2hlZC4gKi8KLSAgICB1bnNpZ25lZCBpbnQgTUJFRFRMU19QUklWQVRFKHEpOyAgICAgICAgIC8qITwgVGhlIFEgd29ya2luZyB2YWx1ZSAqLwotICAgIHVuc2lnbmVkIGludCBNQkVEVExTX1BSSVZBVEUobW9kZSk7ICAgICAgLyohPCBUaGUgb3BlcmF0aW9uIHRvIHBlcmZvcm06Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgI01CRURUTFNfQ0NNX0VOQ1JZUFQgb3IKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjTUJFRFRMU19DQ01fREVDUllQVCBvcgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICNNQkVEVExTX0NDTV9TVEFSX0VOQ1JZUFQgb3IKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjTUJFRFRMU19DQ01fU1RBUl9ERUNSWVBULiAqLwotI2lmIGRlZmluZWQoTUJFRFRMU19CTE9DS19DSVBIRVJfQykKLSAgICBtYmVkdGxzX2Jsb2NrX2NpcGhlcl9jb250ZXh0X3QgTUJFRFRMU19QUklWQVRFKGJsb2NrX2NpcGhlcl9jdHgpOyAgICAvKiE8IFRoZSBjaXBoZXIgY29udGV4dCB1c2VkLiAqLwotI2Vsc2UKLSAgICBtYmVkdGxzX2NpcGhlcl9jb250ZXh0X3QgTUJFRFRMU19QUklWQVRFKGNpcGhlcl9jdHgpOyAgICAvKiE8IFRoZSBjaXBoZXIgY29udGV4dCB1c2VkLiAqLwotI2VuZGlmCi0gICAgaW50IE1CRURUTFNfUFJJVkFURShzdGF0ZSk7ICAgICAgICAgICAgICAvKiE8IFdvcmtpbmcgdmFsdWUgaG9sZGluZyBjb250ZXh0J3MKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGUuIFVzZWQgZm9yIGNodW5rZWQgZGF0YSBpbnB1dCAqLwotfQotbWJlZHRsc19jY21fY29udGV4dDsKLQotI2Vsc2UgIC8qIE1CRURUTFNfQ0NNX0FMVCAqLwotI2luY2x1ZGUgImNjbV9hbHQuaCIKLSNlbmRpZiAvKiBNQkVEVExTX0NDTV9BTFQgKi8KLQotLyoqCi0gKiBcYnJpZWYgICAgICAgICAgIFRoaXMgZnVuY3Rpb24gaW5pdGlhbGl6ZXMgdGhlIHNwZWNpZmllZCBDQ00gY29udGV4dCwKLSAqICAgICAgICAgICAgICAgICAgdG8gbWFrZSByZWZlcmVuY2VzIHZhbGlkLCBhbmQgcHJlcGFyZSB0aGUgY29udGV4dAotICogICAgICAgICAgICAgICAgICBmb3IgbWJlZHRsc19jY21fc2V0a2V5KCkgb3IgbWJlZHRsc19jY21fZnJlZSgpLgotICoKLSAqIFxwYXJhbSBjdHggICAgICAgVGhlIENDTSBjb250ZXh0IHRvIGluaXRpYWxpemUuIFRoaXMgbXVzdCBub3QgYmUgXGMgTlVMTC4KLSAqLwotdm9pZCBtYmVkdGxzX2NjbV9pbml0KG1iZWR0bHNfY2NtX2NvbnRleHQgKmN0eCk7Ci0KLS8qKgotICogXGJyaWVmICAgICAgICAgICBUaGlzIGZ1bmN0aW9uIGluaXRpYWxpemVzIHRoZSBDQ00gY29udGV4dCBzZXQgaW4gdGhlCi0gKiAgICAgICAgICAgICAgICAgIFxwIGN0eCBwYXJhbWV0ZXIgYW5kIHNldHMgdGhlIGVuY3J5cHRpb24ga2V5LgotICoKLSAqIFxwYXJhbSBjdHggICAgICAgVGhlIENDTSBjb250ZXh0IHRvIGluaXRpYWxpemUuIFRoaXMgbXVzdCBiZSBhbiBpbml0aWFsaXplZAotICogICAgICAgICAgICAgICAgICBjb250ZXh0LgotICogXHBhcmFtIGNpcGhlciAgICBUaGUgMTI4LWJpdCBibG9jayBjaXBoZXIgdG8gdXNlLgotICogXHBhcmFtIGtleSAgICAgICBUaGUgZW5jcnlwdGlvbiBrZXkuIFRoaXMgbXVzdCBub3QgYmUgXGMgTlVMTC4KLSAqIFxwYXJhbSBrZXliaXRzICAgVGhlIGtleSBzaXplIGluIGJpdHMuIFRoaXMgbXVzdCBiZSBhY2NlcHRhYmxlIGJ5IHRoZSBjaXBoZXIuCi0gKgotICogXHJldHVybiAgICAgICAgICBcYyAwIG9uIHN1Y2Nlc3MuCi0gKiBccmV0dXJuICAgICAgICAgIEEgQ0NNIG9yIGNpcGhlci1zcGVjaWZpYyBlcnJvciBjb2RlIG9uIGZhaWx1cmUuCi0gKi8KLWludCBtYmVkdGxzX2NjbV9zZXRrZXkobWJlZHRsc19jY21fY29udGV4dCAqY3R4LAotICAgICAgICAgICAgICAgICAgICAgICBtYmVkdGxzX2NpcGhlcl9pZF90IGNpcGhlciwKLSAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdW5zaWduZWQgY2hhciAqa2V5LAotICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQga2V5Yml0cyk7Ci0KLS8qKgotICogXGJyaWVmICAgVGhpcyBmdW5jdGlvbiByZWxlYXNlcyBhbmQgY2xlYXJzIHRoZSBzcGVjaWZpZWQgQ0NNIGNvbnRleHQKLSAqICAgICAgICAgIGFuZCB1bmRlcmx5aW5nIGNpcGhlciBzdWItY29udGV4dC4KLSAqCi0gKiBccGFyYW0gY3R4ICAgICAgIFRoZSBDQ00gY29udGV4dCB0byBjbGVhci4gSWYgdGhpcyBpcyBcYyBOVUxMLCB0aGUgZnVuY3Rpb24KLSAqICAgICAgICAgICAgICAgICAgaGFzIG5vIGVmZmVjdC4gT3RoZXJ3aXNlLCB0aGlzIG11c3QgYmUgaW5pdGlhbGl6ZWQuCi0gKi8KLXZvaWQgbWJlZHRsc19jY21fZnJlZShtYmVkdGxzX2NjbV9jb250ZXh0ICpjdHgpOwotCi0vKioKLSAqIFxicmllZiAgICAgICAgICAgVGhpcyBmdW5jdGlvbiBlbmNyeXB0cyBhIGJ1ZmZlciB1c2luZyBDQ00uCi0gKgotICogXG5vdGUgICAgICAgICAgICBUaGUgdGFnIGlzIHdyaXR0ZW4gdG8gYSBzZXBhcmF0ZSBidWZmZXIuIFRvIGNvbmNhdGVuYXRlCi0gKiAgICAgICAgICAgICAgICAgIHRoZSBccCB0YWcgd2l0aCB0aGUgXHAgb3V0cHV0LCBhcyBkb25lIGluIDxlbT5SRkMtMzYxMDoKLSAqICAgICAgICAgICAgICAgICAgQ291bnRlciB3aXRoIENCQy1NQUMgKENDTSk8L2VtPiwgdXNlCi0gKiAgICAgICAgICAgICAgICAgIFxwIHRhZyA9IFxwIG91dHB1dCArIFxwIGxlbmd0aCwgYW5kIG1ha2Ugc3VyZSB0aGF0IHRoZQotICogICAgICAgICAgICAgICAgICBvdXRwdXQgYnVmZmVyIGlzIGF0IGxlYXN0IFxwIGxlbmd0aCArIFxwIHRhZ19sZW4gd2lkZS4KLSAqCi0gKiBccGFyYW0gY3R4ICAgICAgIFRoZSBDQ00gY29udGV4dCB0byB1c2UgZm9yIGVuY3J5cHRpb24uIFRoaXMgbXVzdCBiZQotICogICAgICAgICAgICAgICAgICBpbml0aWFsaXplZCBhbmQgYm91bmQgdG8gYSBrZXkuCi0gKiBccGFyYW0gbGVuZ3RoICAgIFRoZSBsZW5ndGggb2YgdGhlIGlucHV0IGRhdGEgaW4gQnl0ZXMuCi0gKiBccGFyYW0gaXYgICAgICAgIFRoZSBpbml0aWFsaXphdGlvbiB2ZWN0b3IgKG5vbmNlKS4gVGhpcyBtdXN0IGJlIGEgcmVhZGFibGUKLSAqICAgICAgICAgICAgICAgICAgYnVmZmVyIG9mIGF0IGxlYXN0IFxwIGl2X2xlbiBCeXRlcy4KLSAqIFxwYXJhbSBpdl9sZW4gICAgVGhlIGxlbmd0aCBvZiB0aGUgbm9uY2UgaW4gQnl0ZXM6IDcsIDgsIDksIDEwLCAxMSwgMTIsCi0gKiAgICAgICAgICAgICAgICAgIG9yIDEzLiBUaGUgbGVuZ3RoIEwgb2YgdGhlIG1lc3NhZ2UgbGVuZ3RoIGZpZWxkIGlzCi0gKiAgICAgICAgICAgICAgICAgIDE1IC0gXHAgaXZfbGVuLgotICogXHBhcmFtIGFkICAgICAgICBUaGUgYWRkaXRpb25hbCBkYXRhIGZpZWxkLiBJZiBccCBhZF9sZW4gaXMgZ3JlYXRlciB0aGFuCi0gKiAgICAgICAgICAgICAgICAgIHplcm8sIFxwIGFkIG11c3QgYmUgYSByZWFkYWJsZSBidWZmZXIgb2YgYXQgbGVhc3QgdGhhdAotICogICAgICAgICAgICAgICAgICBsZW5ndGguCi0gKiBccGFyYW0gYWRfbGVuICAgIFRoZSBsZW5ndGggb2YgYWRkaXRpb25hbCBkYXRhIGluIEJ5dGVzLgotICogICAgICAgICAgICAgICAgICBUaGlzIG11c3QgYmUgbGVzcyB0aGFuIGAyXjE2IC0gMl44YC4KLSAqIFxwYXJhbSBpbnB1dCAgICAgVGhlIGJ1ZmZlciBob2xkaW5nIHRoZSBpbnB1dCBkYXRhLiBJZiBccCBsZW5ndGggaXMgZ3JlYXRlcgotICogICAgICAgICAgICAgICAgICB0aGFuIHplcm8sIFxwIGlucHV0IG11c3QgYmUgYSByZWFkYWJsZSBidWZmZXIgb2YgYXQgbGVhc3QKLSAqICAgICAgICAgICAgICAgICAgdGhhdCBsZW5ndGguCi0gKiBccGFyYW0gb3V0cHV0ICAgIFRoZSBidWZmZXIgaG9sZGluZyB0aGUgb3V0cHV0IGRhdGEuIElmIFxwIGxlbmd0aCBpcyBncmVhdGVyCi0gKiAgICAgICAgICAgICAgICAgIHRoYW4gemVybywgXHAgb3V0cHV0IG11c3QgYmUgYSB3cml0YWJsZSBidWZmZXIgb2YgYXQgbGVhc3QKLSAqICAgICAgICAgICAgICAgICAgdGhhdCBsZW5ndGguCi0gKiBccGFyYW0gdGFnICAgICAgIFRoZSBidWZmZXIgaG9sZGluZyB0aGUgYXV0aGVudGljYXRpb24gZmllbGQuIFRoaXMgbXVzdCBiZSBhCi0gKiAgICAgICAgICAgICAgICAgIHdyaXRhYmxlIGJ1ZmZlciBvZiBhdCBsZWFzdCBccCB0YWdfbGVuIEJ5dGVzLgotICogXHBhcmFtIHRhZ19sZW4gICBUaGUgbGVuZ3RoIG9mIHRoZSBhdXRoZW50aWNhdGlvbiBmaWVsZCB0byBnZW5lcmF0ZSBpbiBCeXRlczoKLSAqICAgICAgICAgICAgICAgICAgNCwgNiwgOCwgMTAsIDEyLCAxNCBvciAxNi4KLSAqCi0gKiBccmV0dXJuICAgICAgICAgIFxjIDAgb24gc3VjY2Vzcy4KLSAqIFxyZXR1cm4gICAgICAgICAgQSBDQ00gb3IgY2lwaGVyLXNwZWNpZmljIGVycm9yIGNvZGUgb24gZmFpbHVyZS4KLSAqLwotaW50IG1iZWR0bHNfY2NtX2VuY3J5cHRfYW5kX3RhZyhtYmVkdGxzX2NjbV9jb250ZXh0ICpjdHgsIHNpemVfdCBsZW5ndGgsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgKml2LCBzaXplX3QgaXZfbGVuLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1bnNpZ25lZCBjaGFyICphZCwgc2l6ZV90IGFkX2xlbiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdW5zaWduZWQgY2hhciAqaW5wdXQsIHVuc2lnbmVkIGNoYXIgKm91dHB1dCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgY2hhciAqdGFnLCBzaXplX3QgdGFnX2xlbik7Ci0KLS8qKgotICogXGJyaWVmICAgICAgICAgICBUaGlzIGZ1bmN0aW9uIGVuY3J5cHRzIGEgYnVmZmVyIHVzaW5nIENDTSouCi0gKgotICogXG5vdGUgICAgICAgICAgICBUaGUgdGFnIGlzIHdyaXR0ZW4gdG8gYSBzZXBhcmF0ZSBidWZmZXIuIFRvIGNvbmNhdGVuYXRlCi0gKiAgICAgICAgICAgICAgICAgIHRoZSBccCB0YWcgd2l0aCB0aGUgXHAgb3V0cHV0LCBhcyBkb25lIGluIDxlbT5SRkMtMzYxMDoKLSAqICAgICAgICAgICAgICAgICAgQ291bnRlciB3aXRoIENCQy1NQUMgKENDTSk8L2VtPiwgdXNlCi0gKiAgICAgICAgICAgICAgICAgIFxwIHRhZyA9IFxwIG91dHB1dCArIFxwIGxlbmd0aCwgYW5kIG1ha2Ugc3VyZSB0aGF0IHRoZQotICogICAgICAgICAgICAgICAgICBvdXRwdXQgYnVmZmVyIGlzIGF0IGxlYXN0IFxwIGxlbmd0aCArIFxwIHRhZ19sZW4gd2lkZS4KLSAqCi0gKiBcbm90ZSAgICAgICAgICAgIFdoZW4gdXNpbmcgdGhpcyBmdW5jdGlvbiBpbiBhIHZhcmlhYmxlIHRhZyBsZW5ndGggY29udGV4dCwKLSAqICAgICAgICAgICAgICAgICAgdGhlIHRhZyBsZW5ndGggaGFzIHRvIGJlIGVuY29kZWQgaW50byB0aGUgXHAgaXYgcGFzc2VkIHRvCi0gKiAgICAgICAgICAgICAgICAgIHRoaXMgZnVuY3Rpb24uCi0gKgotICogXHBhcmFtIGN0eCAgICAgICBUaGUgQ0NNIGNvbnRleHQgdG8gdXNlIGZvciBlbmNyeXB0aW9uLiBUaGlzIG11c3QgYmUKLSAqICAgICAgICAgICAgICAgICAgaW5pdGlhbGl6ZWQgYW5kIGJvdW5kIHRvIGEga2V5LgotICogXHBhcmFtIGxlbmd0aCAgICBUaGUgbGVuZ3RoIG9mIHRoZSBpbnB1dCBkYXRhIGluIEJ5dGVzLgotICogICAgICAgICAgICAgICAgICBGb3IgdGFnIGxlbmd0aCA9IDAsIGlucHV0IGxlbmd0aCBpcyBpZ25vcmVkLgotICogXHBhcmFtIGl2ICAgICAgICBUaGUgaW5pdGlhbGl6YXRpb24gdmVjdG9yIChub25jZSkuIFRoaXMgbXVzdCBiZSBhIHJlYWRhYmxlCi0gKiAgICAgICAgICAgICAgICAgIGJ1ZmZlciBvZiBhdCBsZWFzdCBccCBpdl9sZW4gQnl0ZXMuCi0gKiBccGFyYW0gaXZfbGVuICAgIFRoZSBsZW5ndGggb2YgdGhlIG5vbmNlIGluIEJ5dGVzOiA3LCA4LCA5LCAxMCwgMTEsIDEyLAotICogICAgICAgICAgICAgICAgICBvciAxMy4gVGhlIGxlbmd0aCBMIG9mIHRoZSBtZXNzYWdlIGxlbmd0aCBmaWVsZCBpcwotICogICAgICAgICAgICAgICAgICAxNSAtIFxwIGl2X2xlbi4KLSAqIFxwYXJhbSBhZCAgICAgICAgVGhlIGFkZGl0aW9uYWwgZGF0YSBmaWVsZC4gVGhpcyBtdXN0IGJlIGEgcmVhZGFibGUgYnVmZmVyIG9mCi0gKiAgICAgICAgICAgICAgICAgIGF0IGxlYXN0IFxwIGFkX2xlbiBCeXRlcy4KLSAqIFxwYXJhbSBhZF9sZW4gICAgVGhlIGxlbmd0aCBvZiBhZGRpdGlvbmFsIGRhdGEgaW4gQnl0ZXMuCi0gKiAgICAgICAgICAgICAgICAgIFRoaXMgbXVzdCBiZSBsZXNzIHRoYW4gMl4xNiAtIDJeOC4KLSAqIFxwYXJhbSBpbnB1dCAgICAgVGhlIGJ1ZmZlciBob2xkaW5nIHRoZSBpbnB1dCBkYXRhLiBJZiBccCBsZW5ndGggaXMgZ3JlYXRlcgotICogICAgICAgICAgICAgICAgICB0aGFuIHplcm8sIFxwIGlucHV0IG11c3QgYmUgYSByZWFkYWJsZSBidWZmZXIgb2YgYXQgbGVhc3QKLSAqICAgICAgICAgICAgICAgICAgdGhhdCBsZW5ndGguCi0gKiBccGFyYW0gb3V0cHV0ICAgIFRoZSBidWZmZXIgaG9sZGluZyB0aGUgb3V0cHV0IGRhdGEuIElmIFxwIGxlbmd0aCBpcyBncmVhdGVyCi0gKiAgICAgICAgICAgICAgICAgIHRoYW4gemVybywgXHAgb3V0cHV0IG11c3QgYmUgYSB3cml0YWJsZSBidWZmZXIgb2YgYXQgbGVhc3QKLSAqICAgICAgICAgICAgICAgICAgdGhhdCBsZW5ndGguCi0gKiBccGFyYW0gdGFnICAgICAgIFRoZSBidWZmZXIgaG9sZGluZyB0aGUgYXV0aGVudGljYXRpb24gZmllbGQuIFRoaXMgbXVzdCBiZSBhCi0gKiAgICAgICAgICAgICAgICAgIHdyaXRhYmxlIGJ1ZmZlciBvZiBhdCBsZWFzdCBccCB0YWdfbGVuIEJ5dGVzLgotICogXHBhcmFtIHRhZ19sZW4gICBUaGUgbGVuZ3RoIG9mIHRoZSBhdXRoZW50aWNhdGlvbiBmaWVsZCB0byBnZW5lcmF0ZSBpbiBCeXRlczoKLSAqICAgICAgICAgICAgICAgICAgMCwgNCwgNiwgOCwgMTAsIDEyLCAxNCBvciAxNi4KLSAqCi0gKiBcd2FybmluZyAgICAgICAgIFBhc3NpbmcgXGMgMCBhcyBccCB0YWdfbGVuIG1lYW5zIHRoYXQgdGhlIG1lc3NhZ2UgaXMgbm8KLSAqICAgICAgICAgICAgICAgICAgbG9uZ2VyIGF1dGhlbnRpY2F0ZWQuCi0gKgotICogXHJldHVybiAgICAgICAgICBcYyAwIG9uIHN1Y2Nlc3MuCi0gKiBccmV0dXJuICAgICAgICAgIEEgQ0NNIG9yIGNpcGhlci1zcGVjaWZpYyBlcnJvciBjb2RlIG9uIGZhaWx1cmUuCi0gKi8KLWludCBtYmVkdGxzX2NjbV9zdGFyX2VuY3J5cHRfYW5kX3RhZyhtYmVkdGxzX2NjbV9jb250ZXh0ICpjdHgsIHNpemVfdCBsZW5ndGgsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdW5zaWduZWQgY2hhciAqaXYsIHNpemVfdCBpdl9sZW4sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdW5zaWduZWQgY2hhciAqYWQsIHNpemVfdCBhZF9sZW4sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdW5zaWduZWQgY2hhciAqaW5wdXQsIHVuc2lnbmVkIGNoYXIgKm91dHB1dCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBjaGFyICp0YWcsIHNpemVfdCB0YWdfbGVuKTsKLQotLyoqCi0gKiBcYnJpZWYgICAgICAgICAgIFRoaXMgZnVuY3Rpb24gcGVyZm9ybXMgYSBDQ00gYXV0aGVudGljYXRlZCBkZWNyeXB0aW9uIG9mIGEKLSAqICAgICAgICAgICAgICAgICAgYnVmZmVyLgotICoKLSAqIFxwYXJhbSBjdHggICAgICAgVGhlIENDTSBjb250ZXh0IHRvIHVzZSBmb3IgZGVjcnlwdGlvbi4gVGhpcyBtdXN0IGJlCi0gKiAgICAgICAgICAgICAgICAgIGluaXRpYWxpemVkIGFuZCBib3VuZCB0byBhIGtleS4KLSAqIFxwYXJhbSBsZW5ndGggICAgVGhlIGxlbmd0aCBvZiB0aGUgaW5wdXQgZGF0YSBpbiBCeXRlcy4KLSAqIFxwYXJhbSBpdiAgICAgICAgVGhlIGluaXRpYWxpemF0aW9uIHZlY3RvciAobm9uY2UpLiBUaGlzIG11c3QgYmUgYSByZWFkYWJsZQotICogICAgICAgICAgICAgICAgICBidWZmZXIgb2YgYXQgbGVhc3QgXHAgaXZfbGVuIEJ5dGVzLgotICogXHBhcmFtIGl2X2xlbiAgICBUaGUgbGVuZ3RoIG9mIHRoZSBub25jZSBpbiBCeXRlczogNywgOCwgOSwgMTAsIDExLCAxMiwKLSAqICAgICAgICAgICAgICAgICAgb3IgMTMuIFRoZSBsZW5ndGggTCBvZiB0aGUgbWVzc2FnZSBsZW5ndGggZmllbGQgaXMKLSAqICAgICAgICAgICAgICAgICAgMTUgLSBccCBpdl9sZW4uCi0gKiBccGFyYW0gYWQgICAgICAgIFRoZSBhZGRpdGlvbmFsIGRhdGEgZmllbGQuIFRoaXMgbXVzdCBiZSBhIHJlYWRhYmxlIGJ1ZmZlcgotICogICAgICAgICAgICAgICAgICBvZiBhdCBsZWFzdCB0aGF0IFxwIGFkX2xlbiBCeXRlcy4uCi0gKiBccGFyYW0gYWRfbGVuICAgIFRoZSBsZW5ndGggb2YgYWRkaXRpb25hbCBkYXRhIGluIEJ5dGVzLgotICogICAgICAgICAgICAgICAgICBUaGlzIG11c3QgYmUgbGVzcyB0aGFuIDJeMTYgLSAyXjguCi0gKiBccGFyYW0gaW5wdXQgICAgIFRoZSBidWZmZXIgaG9sZGluZyB0aGUgaW5wdXQgZGF0YS4gSWYgXHAgbGVuZ3RoIGlzIGdyZWF0ZXIKLSAqICAgICAgICAgICAgICAgICAgdGhhbiB6ZXJvLCBccCBpbnB1dCBtdXN0IGJlIGEgcmVhZGFibGUgYnVmZmVyIG9mIGF0IGxlYXN0Ci0gKiAgICAgICAgICAgICAgICAgIHRoYXQgbGVuZ3RoLgotICogXHBhcmFtIG91dHB1dCAgICBUaGUgYnVmZmVyIGhvbGRpbmcgdGhlIG91dHB1dCBkYXRhLiBJZiBccCBsZW5ndGggaXMgZ3JlYXRlcgotICogICAgICAgICAgICAgICAgICB0aGFuIHplcm8sIFxwIG91dHB1dCBtdXN0IGJlIGEgd3JpdGFibGUgYnVmZmVyIG9mIGF0IGxlYXN0Ci0gKiAgICAgICAgICAgICAgICAgIHRoYXQgbGVuZ3RoLgotICogXHBhcmFtIHRhZyAgICAgICBUaGUgYnVmZmVyIGhvbGRpbmcgdGhlIGF1dGhlbnRpY2F0aW9uIGZpZWxkLiBUaGlzIG11c3QgYmUgYQotICogICAgICAgICAgICAgICAgICByZWFkYWJsZSBidWZmZXIgb2YgYXQgbGVhc3QgXHAgdGFnX2xlbiBCeXRlcy4KLSAqIFxwYXJhbSB0YWdfbGVuICAgVGhlIGxlbmd0aCBvZiB0aGUgYXV0aGVudGljYXRpb24gZmllbGQgdG8gZ2VuZXJhdGUgaW4gQnl0ZXM6Ci0gKiAgICAgICAgICAgICAgICAgIDQsIDYsIDgsIDEwLCAxMiwgMTQgb3IgMTYuCi0gKgotICogXHJldHVybiAgICAgICAgICBcYyAwIG9uIHN1Y2Nlc3MuIFRoaXMgaW5kaWNhdGVzIHRoYXQgdGhlIG1lc3NhZ2UgaXMgYXV0aGVudGljLgotICogXHJldHVybiAgICAgICAgICAjTUJFRFRMU19FUlJfQ0NNX0FVVEhfRkFJTEVEIGlmIHRoZSB0YWcgZG9lcyBub3QgbWF0Y2guCi0gKiBccmV0dXJuICAgICAgICAgIEEgY2lwaGVyLXNwZWNpZmljIGVycm9yIGNvZGUgb24gY2FsY3VsYXRpb24gZmFpbHVyZS4KLSAqLwotaW50IG1iZWR0bHNfY2NtX2F1dGhfZGVjcnlwdChtYmVkdGxzX2NjbV9jb250ZXh0ICpjdHgsIHNpemVfdCBsZW5ndGgsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgKml2LCBzaXplX3QgaXZfbGVuLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1bnNpZ25lZCBjaGFyICphZCwgc2l6ZV90IGFkX2xlbiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdW5zaWduZWQgY2hhciAqaW5wdXQsIHVuc2lnbmVkIGNoYXIgKm91dHB1dCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdW5zaWduZWQgY2hhciAqdGFnLCBzaXplX3QgdGFnX2xlbik7Ci0KLS8qKgotICogXGJyaWVmICAgICAgICAgICBUaGlzIGZ1bmN0aW9uIHBlcmZvcm1zIGEgQ0NNKiBhdXRoZW50aWNhdGVkIGRlY3J5cHRpb24gb2YgYQotICogICAgICAgICAgICAgICAgICBidWZmZXIuCi0gKgotICogXG5vdGUgICAgICAgICAgICBXaGVuIHVzaW5nIHRoaXMgZnVuY3Rpb24gaW4gYSB2YXJpYWJsZSB0YWcgbGVuZ3RoIGNvbnRleHQsCi0gKiAgICAgICAgICAgICAgICAgIHRoZSB0YWcgbGVuZ3RoIGhhcyB0byBiZSBkZWNvZGVkIGZyb20gXHAgaXYgYW5kIHBhc3NlZCB0bwotICogICAgICAgICAgICAgICAgICB0aGlzIGZ1bmN0aW9uIGFzIFxwIHRhZ19sZW4uIChccCB0YWcgbmVlZHMgdG8gYmUgYWRqdXN0ZWQKLSAqICAgICAgICAgICAgICAgICAgYWNjb3JkaW5nbHkuKQotICoKLSAqIFxwYXJhbSBjdHggICAgICAgVGhlIENDTSBjb250ZXh0IHRvIHVzZSBmb3IgZGVjcnlwdGlvbi4gVGhpcyBtdXN0IGJlCi0gKiAgICAgICAgICAgICAgICAgIGluaXRpYWxpemVkIGFuZCBib3VuZCB0byBhIGtleS4KLSAqIFxwYXJhbSBsZW5ndGggICAgVGhlIGxlbmd0aCBvZiB0aGUgaW5wdXQgZGF0YSBpbiBCeXRlcy4KLSAqICAgICAgICAgICAgICAgICAgRm9yIHRhZyBsZW5ndGggPSAwLCBpbnB1dCBsZW5ndGggaXMgaWdub3JlZC4KLSAqIFxwYXJhbSBpdiAgICAgICAgVGhlIGluaXRpYWxpemF0aW9uIHZlY3RvciAobm9uY2UpLiBUaGlzIG11c3QgYmUgYSByZWFkYWJsZQotICogICAgICAgICAgICAgICAgICBidWZmZXIgb2YgYXQgbGVhc3QgXHAgaXZfbGVuIEJ5dGVzLgotICogXHBhcmFtIGl2X2xlbiAgICBUaGUgbGVuZ3RoIG9mIHRoZSBub25jZSBpbiBCeXRlczogNywgOCwgOSwgMTAsIDExLCAxMiwKLSAqICAgICAgICAgICAgICAgICAgb3IgMTMuIFRoZSBsZW5ndGggTCBvZiB0aGUgbWVzc2FnZSBsZW5ndGggZmllbGQgaXMKLSAqICAgICAgICAgICAgICAgICAgMTUgLSBccCBpdl9sZW4uCi0gKiBccGFyYW0gYWQgICAgICAgIFRoZSBhZGRpdGlvbmFsIGRhdGEgZmllbGQuIFRoaXMgbXVzdCBiZSBhIHJlYWRhYmxlIGJ1ZmZlciBvZgotICogICAgICAgICAgICAgICAgICBhdCBsZWFzdCB0aGF0IFxwIGFkX2xlbiBCeXRlcy4KLSAqIFxwYXJhbSBhZF9sZW4gICAgVGhlIGxlbmd0aCBvZiBhZGRpdGlvbmFsIGRhdGEgaW4gQnl0ZXMuCi0gKiAgICAgICAgICAgICAgICAgIFRoaXMgbXVzdCBiZSBsZXNzIHRoYW4gMl4xNiAtIDJeOC4KLSAqIFxwYXJhbSBpbnB1dCAgICAgVGhlIGJ1ZmZlciBob2xkaW5nIHRoZSBpbnB1dCBkYXRhLiBJZiBccCBsZW5ndGggaXMgZ3JlYXRlcgotICogICAgICAgICAgICAgICAgICB0aGFuIHplcm8sIFxwIGlucHV0IG11c3QgYmUgYSByZWFkYWJsZSBidWZmZXIgb2YgYXQgbGVhc3QKLSAqICAgICAgICAgICAgICAgICAgdGhhdCBsZW5ndGguCi0gKiBccGFyYW0gb3V0cHV0ICAgIFRoZSBidWZmZXIgaG9sZGluZyB0aGUgb3V0cHV0IGRhdGEuIElmIFxwIGxlbmd0aCBpcyBncmVhdGVyCi0gKiAgICAgICAgICAgICAgICAgIHRoYW4gemVybywgXHAgb3V0cHV0IG11c3QgYmUgYSB3cml0YWJsZSBidWZmZXIgb2YgYXQgbGVhc3QKLSAqICAgICAgICAgICAgICAgICAgdGhhdCBsZW5ndGguCi0gKiBccGFyYW0gdGFnICAgICAgIFRoZSBidWZmZXIgaG9sZGluZyB0aGUgYXV0aGVudGljYXRpb24gZmllbGQuIFRoaXMgbXVzdCBiZSBhCi0gKiAgICAgICAgICAgICAgICAgIHJlYWRhYmxlIGJ1ZmZlciBvZiBhdCBsZWFzdCBccCB0YWdfbGVuIEJ5dGVzLgotICogXHBhcmFtIHRhZ19sZW4gICBUaGUgbGVuZ3RoIG9mIHRoZSBhdXRoZW50aWNhdGlvbiBmaWVsZCBpbiBCeXRlcy4KLSAqICAgICAgICAgICAgICAgICAgMCwgNCwgNiwgOCwgMTAsIDEyLCAxNCBvciAxNi4KLSAqCi0gKiBcd2FybmluZyAgICAgICAgIFBhc3NpbmcgXGMgMCBhcyBccCB0YWdfbGVuIG1lYW5zIHRoYXQgdGhlIG1lc3NhZ2UgaXMgbm9zCi0gKiAgICAgICAgICAgICAgICAgIGxvbmdlciBhdXRoZW50aWNhdGVkLgotICoKLSAqIFxyZXR1cm4gICAgICAgICAgXGMgMCBvbiBzdWNjZXNzLgotICogXHJldHVybiAgICAgICAgICAjTUJFRFRMU19FUlJfQ0NNX0FVVEhfRkFJTEVEIGlmIHRoZSB0YWcgZG9lcyBub3QgbWF0Y2guCi0gKiBccmV0dXJuICAgICAgICAgIEEgY2lwaGVyLXNwZWNpZmljIGVycm9yIGNvZGUgb24gY2FsY3VsYXRpb24gZmFpbHVyZS4KLSAqLwotaW50IG1iZWR0bHNfY2NtX3N0YXJfYXV0aF9kZWNyeXB0KG1iZWR0bHNfY2NtX2NvbnRleHQgKmN0eCwgc2l6ZV90IGxlbmd0aCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1bnNpZ25lZCBjaGFyICppdiwgc2l6ZV90IGl2X2xlbiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1bnNpZ25lZCBjaGFyICphZCwgc2l6ZV90IGFkX2xlbiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1bnNpZ25lZCBjaGFyICppbnB1dCwgdW5zaWduZWQgY2hhciAqb3V0cHV0LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgKnRhZywgc2l6ZV90IHRhZ19sZW4pOwotCi0vKioKLSAqIFxicmllZiAgICAgICAgICAgVGhpcyBmdW5jdGlvbiBzdGFydHMgYSBDQ00gZW5jcnlwdGlvbiBvciBkZWNyeXB0aW9uCi0gKiAgICAgICAgICAgICAgICAgIG9wZXJhdGlvbi4KLSAqCi0gKiAgICAgICAgICAgICAgICAgIFRoaXMgZnVuY3Rpb24gYW5kIG1iZWR0bHNfY2NtX3NldF9sZW5ndGhzKCkgbXVzdCBiZSBjYWxsZWQKLSAqICAgICAgICAgICAgICAgICAgYmVmb3JlIGNhbGxpbmcgbWJlZHRsc19jY21fdXBkYXRlX2FkKCkgb3IKLSAqICAgICAgICAgICAgICAgICAgbWJlZHRsc19jY21fdXBkYXRlKCkuIFRoaXMgZnVuY3Rpb24gY2FuIGJlIGNhbGxlZCBiZWZvcmUKLSAqICAgICAgICAgICAgICAgICAgb3IgYWZ0ZXIgbWJlZHRsc19jY21fc2V0X2xlbmd0aHMoKS4KLSAqCi0gKiBcbm90ZSAgICAgICAgICAgIFRoaXMgZnVuY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIE1iZWQgVExTIHlldC4KLSAqCi0gKiBccGFyYW0gY3R4ICAgICAgIFRoZSBDQ00gY29udGV4dC4gVGhpcyBtdXN0IGJlIGluaXRpYWxpemVkLgotICogXHBhcmFtIG1vZGUgICAgICBUaGUgb3BlcmF0aW9uIHRvIHBlcmZvcm06ICNNQkVEVExTX0NDTV9FTkNSWVBUIG9yCi0gKiAgICAgICAgICAgICAgICAgICNNQkVEVExTX0NDTV9ERUNSWVBUIG9yICNNQkVEVExTX0NDTV9TVEFSX0VOQ1JZUFQgb3IKLSAqICAgICAgICAgICAgICAgICAgI01CRURUTFNfQ0NNX1NUQVJfREVDUllQVC4KLSAqIFxwYXJhbSBpdiAgICAgICAgVGhlIGluaXRpYWxpemF0aW9uIHZlY3Rvci4gVGhpcyBtdXN0IGJlIGEgcmVhZGFibGUgYnVmZmVyCi0gKiAgICAgICAgICAgICAgICAgIG9mIGF0IGxlYXN0IFxwIGl2X2xlbiBCeXRlcy4KLSAqIFxwYXJhbSBpdl9sZW4gICAgVGhlIGxlbmd0aCBvZiB0aGUgbm9uY2UgaW4gQnl0ZXM6IDcsIDgsIDksIDEwLCAxMSwgMTIsCi0gKiAgICAgICAgICAgICAgICAgIG9yIDEzLiBUaGUgbGVuZ3RoIEwgb2YgdGhlIG1lc3NhZ2UgbGVuZ3RoIGZpZWxkIGlzCi0gKiAgICAgICAgICAgICAgICAgIDE1IC0gXHAgaXZfbGVuLgotICoKLSAqIFxyZXR1cm4gICAgICAgICAgXGMgMCBvbiBzdWNjZXNzLgotICogXHJldHVybiAgICAgICAgICAjTUJFRFRMU19FUlJfQ0NNX0JBRF9JTlBVVCBvbiBmYWlsdXJlOgotICogICAgICAgICAgICAgICAgICBccCBjdHggaXMgaW4gYW4gaW52YWxpZCBzdGF0ZSwKLSAqICAgICAgICAgICAgICAgICAgXHAgbW9kZSBpcyBpbnZhbGlkLAotICogICAgICAgICAgICAgICAgICBccCBpdl9sZW4gaXMgaW52YWxpZCAobG93ZXIgdGhhbiBcYyA3IG9yIGdyZWF0ZXIgdGhhbgotICogICAgICAgICAgICAgICAgICBcYyAxMykuCi0gKi8KLWludCBtYmVkdGxzX2NjbV9zdGFydHMobWJlZHRsc19jY21fY29udGV4dCAqY3R4LAotICAgICAgICAgICAgICAgICAgICAgICBpbnQgbW9kZSwKLSAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdW5zaWduZWQgY2hhciAqaXYsCi0gICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBpdl9sZW4pOwotCi0vKioKLSAqIFxicmllZiAgICAgICAgICAgVGhpcyBmdW5jdGlvbiBkZWNsYXJlcyB0aGUgbGVuZ3RocyBvZiB0aGUgbWVzc2FnZQotICogICAgICAgICAgICAgICAgICBhbmQgYWRkaXRpb25hbCBkYXRhIGZvciBhIENDTSBlbmNyeXB0aW9uIG9yIGRlY3J5cHRpb24KLSAqICAgICAgICAgICAgICAgICAgb3BlcmF0aW9uLgotICoKLSAqICAgICAgICAgICAgICAgICAgVGhpcyBmdW5jdGlvbiBhbmQgbWJlZHRsc19jY21fc3RhcnRzKCkgbXVzdCBiZSBjYWxsZWQKLSAqICAgICAgICAgICAgICAgICAgYmVmb3JlIGNhbGxpbmcgbWJlZHRsc19jY21fdXBkYXRlX2FkKCkgb3IKLSAqICAgICAgICAgICAgICAgICAgbWJlZHRsc19jY21fdXBkYXRlKCkuIFRoaXMgZnVuY3Rpb24gY2FuIGJlIGNhbGxlZCBiZWZvcmUKLSAqICAgICAgICAgICAgICAgICAgb3IgYWZ0ZXIgbWJlZHRsc19jY21fc3RhcnRzKCkuCi0gKgotICogXG5vdGUgICAgICAgICAgICBUaGlzIGZ1bmN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiBNYmVkIFRMUyB5ZXQuCi0gKgotICogXHBhcmFtIGN0eCAgICAgICBUaGUgQ0NNIGNvbnRleHQuIFRoaXMgbXVzdCBiZSBpbml0aWFsaXplZC4KLSAqIFxwYXJhbSB0b3RhbF9hZF9sZW4gICBUaGUgdG90YWwgbGVuZ3RoIG9mIGFkZGl0aW9uYWwgZGF0YSBpbiBieXRlcy4KLSAqICAgICAgICAgICAgICAgICAgICAgICBUaGlzIG11c3QgYmUgbGVzcyB0aGFuIGAyXjE2IC0gMl44YC4KLSAqIFxwYXJhbSBwbGFpbnRleHRfbGVuICBUaGUgbGVuZ3RoIGluIGJ5dGVzIG9mIHRoZSBwbGFpbnRleHQgdG8gZW5jcnlwdCBvcgotICogICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdCBvZiB0aGUgZGVjcnlwdGlvbiAodGh1cyBub3QgZW5jb21wYXNzaW5nIHRoZQotICogICAgICAgICAgICAgICAgICAgICAgIGFkZGl0aW9uYWwgZGF0YSB0aGF0IGFyZSBub3QgZW5jcnlwdGVkKS4KLSAqIFxwYXJhbSB0YWdfbGVuICAgVGhlIGxlbmd0aCBvZiB0aGUgdGFnIHRvIGdlbmVyYXRlIGluIEJ5dGVzOgotICogICAgICAgICAgICAgICAgICA0LCA2LCA4LCAxMCwgMTIsIDE0IG9yIDE2LgotICogICAgICAgICAgICAgICAgICBGb3IgQ0NNKiwgemVybyBpcyBhbHNvIHZhbGlkLgotICoKLSAqIFxyZXR1cm4gICAgICAgICAgXGMgMCBvbiBzdWNjZXNzLgotICogXHJldHVybiAgICAgICAgICAjTUJFRFRMU19FUlJfQ0NNX0JBRF9JTlBVVCBvbiBmYWlsdXJlOgotICogICAgICAgICAgICAgICAgICBccCBjdHggaXMgaW4gYW4gaW52YWxpZCBzdGF0ZSwKLSAqICAgICAgICAgICAgICAgICAgXHAgdG90YWxfYWRfbGVuIGlzIGdyZWF0ZXIgdGhhbiBcYyAweEZGMDAuCi0gKi8KLWludCBtYmVkdGxzX2NjbV9zZXRfbGVuZ3RocyhtYmVkdGxzX2NjbV9jb250ZXh0ICpjdHgsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IHRvdGFsX2FkX2xlbiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgcGxhaW50ZXh0X2xlbiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgdGFnX2xlbik7Ci0KLS8qKgotICogXGJyaWVmICAgICAgICAgICBUaGlzIGZ1bmN0aW9uIGZlZWRzIGFuIGlucHV0IGJ1ZmZlciBhcyBhc3NvY2lhdGVkIGRhdGEKLSAqICAgICAgICAgICAgICAgICAgKGF1dGhlbnRpY2F0ZWQgYnV0IG5vdCBlbmNyeXB0ZWQgZGF0YSkgaW4gYSBDQ00KLSAqICAgICAgICAgICAgICAgICAgZW5jcnlwdGlvbiBvciBkZWNyeXB0aW9uIG9wZXJhdGlvbi4KLSAqCi0gKiAgICAgICAgICAgICAgICAgIFlvdSBtYXkgY2FsbCB0aGlzIGZ1bmN0aW9uIHplcm8sIG9uZSBvciBtb3JlIHRpbWVzCi0gKiAgICAgICAgICAgICAgICAgIHRvIHBhc3Mgc3VjY2Vzc2l2ZSBwYXJ0cyBvZiB0aGUgYWRkaXRpb25hbCBkYXRhLiBUaGUKLSAqICAgICAgICAgICAgICAgICAgbGVuZ3RocyBccCBhZF9sZW4gb2YgdGhlIGRhdGEgcGFydHMgc2hvdWxkIGV2ZW50dWFsbHkgYWRkCi0gKiAgICAgICAgICAgICAgICAgIHVwIGV4YWN0bHkgdG8gdGhlIHRvdGFsIGxlbmd0aCBvZiBhZGRpdGlvbmFsIGRhdGEKLSAqICAgICAgICAgICAgICAgICAgXGMgdG90YWxfYWRfbGVuIHBhc3NlZCB0byBtYmVkdGxzX2NjbV9zZXRfbGVuZ3RocygpLiBZb3UKLSAqICAgICAgICAgICAgICAgICAgbWF5IG5vdCBjYWxsIHRoaXMgZnVuY3Rpb24gYWZ0ZXIgY2FsbGluZwotICogICAgICAgICAgICAgICAgICBtYmVkdGxzX2NjbV91cGRhdGUoKS4KLSAqCi0gKiBcbm90ZSAgICAgICAgICAgIFRoaXMgZnVuY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIE1iZWQgVExTIHlldC4KLSAqCi0gKiBccGFyYW0gY3R4ICAgICAgIFRoZSBDQ00gY29udGV4dC4gVGhpcyBtdXN0IGhhdmUgYmVlbiBzdGFydGVkIHdpdGgKLSAqICAgICAgICAgICAgICAgICAgbWJlZHRsc19jY21fc3RhcnRzKCksIHRoZSBsZW5ndGhzIG9mIHRoZSBtZXNzYWdlIGFuZAotICogICAgICAgICAgICAgICAgICBhZGRpdGlvbmFsIGRhdGEgbXVzdCBoYXZlIGJlZW4gZGVjbGFyZWQgd2l0aAotICogICAgICAgICAgICAgICAgICBtYmVkdGxzX2NjbV9zZXRfbGVuZ3RocygpIGFuZCB0aGlzIG11c3Qgbm90IGhhdmUgeWV0Ci0gKiAgICAgICAgICAgICAgICAgIHJlY2VpdmVkIGFueSBpbnB1dCB3aXRoIG1iZWR0bHNfY2NtX3VwZGF0ZSgpLgotICogXHBhcmFtIGFkICAgICAgICBUaGUgYnVmZmVyIGhvbGRpbmcgdGhlIGFkZGl0aW9uYWwgZGF0YSwgb3IgXGMgTlVMTAotICogICAgICAgICAgICAgICAgICBpZiBccCBhZF9sZW4gaXMgXGMgMC4KLSAqIFxwYXJhbSBhZF9sZW4gICAgVGhlIGxlbmd0aCBvZiB0aGUgYWRkaXRpb25hbCBkYXRhLiBJZiBcYyAwLAotICogICAgICAgICAgICAgICAgICBccCBhZCBtYXkgYmUgXGMgTlVMTC4KLSAqCi0gKiBccmV0dXJuICAgICAgICAgIFxjIDAgb24gc3VjY2Vzcy4KLSAqIFxyZXR1cm4gICAgICAgICAgI01CRURUTFNfRVJSX0NDTV9CQURfSU5QVVQgb24gZmFpbHVyZToKLSAqICAgICAgICAgICAgICAgICAgXHAgY3R4IGlzIGluIGFuIGludmFsaWQgc3RhdGUsCi0gKiAgICAgICAgICAgICAgICAgIHRvdGFsIGlucHV0IGxlbmd0aCB0b28gbG9uZy4KLSAqLwotaW50IG1iZWR0bHNfY2NtX3VwZGF0ZV9hZChtYmVkdGxzX2NjbV9jb250ZXh0ICpjdHgsCi0gICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgKmFkLAotICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgYWRfbGVuKTsKLQotLyoqCi0gKiBcYnJpZWYgICAgICAgICAgIFRoaXMgZnVuY3Rpb24gZmVlZHMgYW4gaW5wdXQgYnVmZmVyIGludG8gYW4gb25nb2luZyBDQ00KLSAqICAgICAgICAgICAgICAgICAgZW5jcnlwdGlvbiBvciBkZWNyeXB0aW9uIG9wZXJhdGlvbi4KLSAqCi0gKiAgICAgICAgICAgICAgICAgIFlvdSBtYXkgY2FsbCB0aGlzIGZ1bmN0aW9uIHplcm8sIG9uZSBvciBtb3JlIHRpbWVzCi0gKiAgICAgICAgICAgICAgICAgIHRvIHBhc3Mgc3VjY2Vzc2l2ZSBwYXJ0cyBvZiB0aGUgaW5wdXQ6IHRoZSBwbGFpbnRleHQgdG8KLSAqICAgICAgICAgICAgICAgICAgZW5jcnlwdCwgb3IgdGhlIGNpcGhlcnRleHQgKG5vdCBpbmNsdWRpbmcgdGhlIHRhZykgdG8KLSAqICAgICAgICAgICAgICAgICAgZGVjcnlwdC4gQWZ0ZXIgdGhlIGxhc3QgcGFydCBvZiB0aGUgaW5wdXQsIGNhbGwKLSAqICAgICAgICAgICAgICAgICAgbWJlZHRsc19jY21fZmluaXNoKCkuIFRoZSBsZW5ndGhzIFxwIGlucHV0X2xlbiBvZiB0aGUKLSAqICAgICAgICAgICAgICAgICAgZGF0YSBwYXJ0cyBzaG91bGQgZXZlbnR1YWxseSBhZGQgdXAgZXhhY3RseSB0byB0aGUKLSAqICAgICAgICAgICAgICAgICAgcGxhaW50ZXh0IGxlbmd0aCBcYyBwbGFpbnRleHRfbGVuIHBhc3NlZCB0bwotICogICAgICAgICAgICAgICAgICBtYmVkdGxzX2NjbV9zZXRfbGVuZ3RocygpLgotICoKLSAqICAgICAgICAgICAgICAgICAgVGhpcyBmdW5jdGlvbiBtYXkgcHJvZHVjZSBvdXRwdXQgaW4gb25lIG9mIHRoZSBmb2xsb3dpbmcKLSAqICAgICAgICAgICAgICAgICAgd2F5czoKLSAqICAgICAgICAgICAgICAgICAgLSBJbW1lZGlhdGUgb3V0cHV0OiB0aGUgb3V0cHV0IGxlbmd0aCBpcyBhbHdheXMgZXF1YWwKLSAqICAgICAgICAgICAgICAgICAgICB0byB0aGUgaW5wdXQgbGVuZ3RoLgotICogICAgICAgICAgICAgICAgICAtIEJ1ZmZlcmVkIG91dHB1dDogZXhjZXB0IGZvciB0aGUgbGFzdCBwYXJ0IG9mIGlucHV0IGRhdGEsCi0gKiAgICAgICAgICAgICAgICAgICAgdGhlIG91dHB1dCBjb25zaXN0cyBvZiBhIHdob2xlIG51bWJlciBvZiAxNi1ieXRlIGJsb2Nrcy4KLSAqICAgICAgICAgICAgICAgICAgICBJZiB0aGUgdG90YWwgaW5wdXQgbGVuZ3RoIHNvIGZhciAobm90IGluY2x1ZGluZwotICogICAgICAgICAgICAgICAgICAgIGFzc29jaWF0ZWQgZGF0YSkgaXMgMTYgXCogKkIqICsgKkEqIHdpdGggKkEqIDwgMTYgdGhlbgotICogICAgICAgICAgICAgICAgICAgIHRoZSB0b3RhbCBvdXRwdXQgbGVuZ3RoIGlzIDE2IFwqICpCKi4KLSAqICAgICAgICAgICAgICAgICAgICBGb3IgdGhlIGxhc3QgcGFydCBvZiBpbnB1dCBkYXRhLCB0aGUgb3V0cHV0IGxlbmd0aCBpcwotICogICAgICAgICAgICAgICAgICAgIGVxdWFsIHRvIHRoZSBpbnB1dCBsZW5ndGggcGx1cyB0aGUgbnVtYmVyIG9mIGJ5dGVzICgqQSopCi0gKiAgICAgICAgICAgICAgICAgICAgYnVmZmVyZWQgaW4gdGhlIHByZXZpb3VzIGNhbGwgdG8gdGhlIGZ1bmN0aW9uIChpZiBhbnkpLgotICogICAgICAgICAgICAgICAgICAgIFRoZSBmdW5jdGlvbiB1c2VzIHRoZSBwbGFpbnRleHQgbGVuZ3RoCi0gKiAgICAgICAgICAgICAgICAgICAgXGMgcGxhaW50ZXh0X2xlbiBwYXNzZWQgdG8gbWJlZHRsc19jY21fc2V0X2xlbmd0aHMoKQotICogICAgICAgICAgICAgICAgICAgIHRvIGRldGVjdCB0aGUgbGFzdCBwYXJ0IG9mIGlucHV0IGRhdGEuCi0gKgotICogICAgICAgICAgICAgICAgICBJbiBwYXJ0aWN1bGFyOgotICogICAgICAgICAgICAgICAgICAtIEl0IGlzIGFsd2F5cyBjb3JyZWN0IHRvIGNhbGwgdGhpcyBmdW5jdGlvbiB3aXRoCi0gKiAgICAgICAgICAgICAgICAgICAgXHAgb3V0cHV0X3NpemUgPj0gXHAgaW5wdXRfbGVuICsgMTUuCi0gKiAgICAgICAgICAgICAgICAgIC0gSWYgXHAgaW5wdXRfbGVuIGlzIGEgbXVsdGlwbGUgb2YgMTYgZm9yIGFsbCB0aGUgY2FsbHMKLSAqICAgICAgICAgICAgICAgICAgICB0byB0aGlzIGZ1bmN0aW9uIGR1cmluZyBhbiBvcGVyYXRpb24gKG5vdCBuZWNlc3NhcnkgZm9yCi0gKiAgICAgICAgICAgICAgICAgICAgdGhlIGxhc3Qgb25lKSB0aGVuIGl0IGlzIGNvcnJlY3QgdG8gdXNlIFxwIG91dHB1dF9zaXplCi0gKiAgICAgICAgICAgICAgICAgICAgPVxwIGlucHV0X2xlbi4KLSAqCi0gKiBcbm90ZSAgICAgICAgICAgIFRoaXMgZnVuY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIE1iZWQgVExTIHlldC4KLSAqCi0gKiBccGFyYW0gY3R4ICAgICAgICAgICBUaGUgQ0NNIGNvbnRleHQuIFRoaXMgbXVzdCBoYXZlIGJlZW4gc3RhcnRlZCB3aXRoCi0gKiAgICAgICAgICAgICAgICAgICAgICBtYmVkdGxzX2NjbV9zdGFydHMoKSBhbmQgdGhlIGxlbmd0aHMgb2YgdGhlIG1lc3NhZ2UgYW5kCi0gKiAgICAgICAgICAgICAgICAgICAgICBhZGRpdGlvbmFsIGRhdGEgbXVzdCBoYXZlIGJlZW4gZGVjbGFyZWQgd2l0aAotICogICAgICAgICAgICAgICAgICAgICAgbWJlZHRsc19jY21fc2V0X2xlbmd0aHMoKS4KLSAqIFxwYXJhbSBpbnB1dCAgICAgICAgIFRoZSBidWZmZXIgaG9sZGluZyB0aGUgaW5wdXQgZGF0YS4gSWYgXHAgaW5wdXRfbGVuCi0gKiAgICAgICAgICAgICAgICAgICAgICBpcyBncmVhdGVyIHRoYW4gemVybywgdGhpcyBtdXN0IGJlIGEgcmVhZGFibGUgYnVmZmVyCi0gKiAgICAgICAgICAgICAgICAgICAgICBvZiBhdCBsZWFzdCBccCBpbnB1dF9sZW4gYnl0ZXMuCi0gKiBccGFyYW0gaW5wdXRfbGVuICAgICBUaGUgbGVuZ3RoIG9mIHRoZSBpbnB1dCBkYXRhIGluIGJ5dGVzLgotICogXHBhcmFtIG91dHB1dCAgICAgICAgVGhlIGJ1ZmZlciBmb3IgdGhlIG91dHB1dCBkYXRhLiBJZiBccCBvdXRwdXRfc2l6ZQotICogICAgICAgICAgICAgICAgICAgICAgaXMgZ3JlYXRlciB0aGFuIHplcm8sIHRoaXMgbXVzdCBiZSBhIHdyaXRhYmxlIGJ1ZmZlciBvZgotICogICAgICAgICAgICAgICAgICAgICAgYXQgbGVhc3QgXHAgb3V0cHV0X3NpemUgYnl0ZXMuCi0gKiBccGFyYW0gb3V0cHV0X3NpemUgICBUaGUgc2l6ZSBvZiB0aGUgb3V0cHV0IGJ1ZmZlciBpbiBieXRlcy4KLSAqICAgICAgICAgICAgICAgICAgICAgIFNlZSB0aGUgZnVuY3Rpb24gZGVzY3JpcHRpb24gcmVnYXJkaW5nIHRoZSBvdXRwdXQgc2l6ZS4KLSAqIFxwYXJhbSBvdXRwdXRfbGVuICAgIE9uIHN1Y2Nlc3MsIFxwICpvdXRwdXRfbGVuIGNvbnRhaW5zIHRoZSBhY3R1YWwKLSAqICAgICAgICAgICAgICAgICAgICAgIGxlbmd0aCBvZiB0aGUgb3V0cHV0IHdyaXR0ZW4gaW4gXHAgb3V0cHV0LgotICogICAgICAgICAgICAgICAgICAgICAgT24gZmFpbHVyZSwgdGhlIGNvbnRlbnQgb2YgXHAgKm91dHB1dF9sZW4gaXMKLSAqICAgICAgICAgICAgICAgICAgICAgIHVuc3BlY2lmaWVkLgotICoKLSAqIFxyZXR1cm4gICAgICAgICBcYyAwIG9uIHN1Y2Nlc3MuCi0gKiBccmV0dXJuICAgICAgICAgI01CRURUTFNfRVJSX0NDTV9CQURfSU5QVVQgb24gZmFpbHVyZToKLSAqICAgICAgICAgICAgICAgICBccCBjdHggaXMgaW4gYW4gaW52YWxpZCBzdGF0ZSwKLSAqICAgICAgICAgICAgICAgICB0b3RhbCBpbnB1dCBsZW5ndGggdG9vIGxvbmcsCi0gKiAgICAgICAgICAgICAgICAgb3IgXHAgb3V0cHV0X3NpemUgdG9vIHNtYWxsLgotICovCi1pbnQgbWJlZHRsc19jY21fdXBkYXRlKG1iZWR0bHNfY2NtX2NvbnRleHQgKmN0eCwKLSAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdW5zaWduZWQgY2hhciAqaW5wdXQsIHNpemVfdCBpbnB1dF9sZW4sCi0gICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGNoYXIgKm91dHB1dCwgc2l6ZV90IG91dHB1dF9zaXplLAotICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgKm91dHB1dF9sZW4pOwotCi0vKioKLSAqIFxicmllZiAgICAgICAgICAgVGhpcyBmdW5jdGlvbiBmaW5pc2hlcyB0aGUgQ0NNIG9wZXJhdGlvbiBhbmQgZ2VuZXJhdGVzCi0gKiAgICAgICAgICAgICAgICAgIHRoZSBhdXRoZW50aWNhdGlvbiB0YWcuCi0gKgotICogICAgICAgICAgICAgICAgICBJdCB3cmFwcyB1cCB0aGUgQ0NNIHN0cmVhbSwgYW5kIGdlbmVyYXRlcyB0aGUKLSAqICAgICAgICAgICAgICAgICAgdGFnLiBUaGUgdGFnIGNhbiBoYXZlIGEgbWF4aW11bSBsZW5ndGggb2YgMTYgQnl0ZXMuCi0gKgotICogXG5vdGUgICAgICAgICAgICBUaGlzIGZ1bmN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiBNYmVkIFRMUyB5ZXQuCi0gKgotICogXHBhcmFtIGN0eCAgICAgICBUaGUgQ0NNIGNvbnRleHQuIFRoaXMgbXVzdCBoYXZlIGJlZW4gc3RhcnRlZCB3aXRoCi0gKiAgICAgICAgICAgICAgICAgIG1iZWR0bHNfY2NtX3N0YXJ0cygpIGFuZCB0aGUgbGVuZ3RocyBvZiB0aGUgbWVzc2FnZSBhbmQKLSAqICAgICAgICAgICAgICAgICAgYWRkaXRpb25hbCBkYXRhIG11c3QgaGF2ZSBiZWVuIGRlY2xhcmVkIHdpdGgKLSAqICAgICAgICAgICAgICAgICAgbWJlZHRsc19jY21fc2V0X2xlbmd0aHMoKS4KLSAqIFxwYXJhbSB0YWcgICAgICAgVGhlIGJ1ZmZlciBmb3IgaG9sZGluZyB0aGUgdGFnLiBJZiBccCB0YWdfbGVuIGlzIGdyZWF0ZXIKLSAqICAgICAgICAgICAgICAgICAgdGhhbiB6ZXJvLCB0aGlzIG11c3QgYmUgYSB3cml0YWJsZSBidWZmZXIgb2YgYXQgbGVhc3QgXHAKLSAqICAgICAgICAgICAgICAgICAgdGFnX2xlbiBCeXRlcy4KLSAqIFxwYXJhbSB0YWdfbGVuICAgVGhlIGxlbmd0aCBvZiB0aGUgdGFnLiBNdXN0IG1hdGNoIHRoZSB0YWcgbGVuZ3RoIHBhc3NlZCB0bwotICogICAgICAgICAgICAgICAgICBtYmVkdGxzX2NjbV9zZXRfbGVuZ3RocygpIGZ1bmN0aW9uLgotICoKLSAqIFxyZXR1cm4gICAgICAgICAgXGMgMCBvbiBzdWNjZXNzLgotICogXHJldHVybiAgICAgICAgICAjTUJFRFRMU19FUlJfQ0NNX0JBRF9JTlBVVCBvbiBmYWlsdXJlOgotICogICAgICAgICAgICAgICAgICBccCBjdHggaXMgaW4gYW4gaW52YWxpZCBzdGF0ZSwKLSAqICAgICAgICAgICAgICAgICAgaW52YWxpZCB2YWx1ZSBvZiBccCB0YWdfbGVuLAotICogICAgICAgICAgICAgICAgICB0aGUgdG90YWwgYW1vdW50IG9mIGFkZGl0aW9uYWwgZGF0YSBwYXNzZWQgdG8KLSAqICAgICAgICAgICAgICAgICAgbWJlZHRsc19jY21fdXBkYXRlX2FkKCkgd2FzIGxvd2VyIHRoYW4gdGhlIHRvdGFsIGxlbmd0aCBvZgotICogICAgICAgICAgICAgICAgICBhZGRpdGlvbmFsIGRhdGEgXGMgdG90YWxfYWRfbGVuIHBhc3NlZCB0bwotICogICAgICAgICAgICAgICAgICBtYmVkdGxzX2NjbV9zZXRfbGVuZ3RocygpLAotICogICAgICAgICAgICAgICAgICB0aGUgdG90YWwgYW1vdW50IG9mIGlucHV0IGRhdGEgcGFzc2VkIHRvCi0gKiAgICAgICAgICAgICAgICAgIG1iZWR0bHNfY2NtX3VwZGF0ZSgpIHdhcyBsb3dlciB0aGFuIHRoZSBwbGFpbnRleHQgbGVuZ3RoCi0gKiAgICAgICAgICAgICAgICAgIFxjIHBsYWludGV4dF9sZW4gcGFzc2VkIHRvIG1iZWR0bHNfY2NtX3NldF9sZW5ndGhzKCkuCi0gKi8KLWludCBtYmVkdGxzX2NjbV9maW5pc2gobWJlZHRsc19jY21fY29udGV4dCAqY3R4LAotICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBjaGFyICp0YWcsIHNpemVfdCB0YWdfbGVuKTsKLQotI2lmIGRlZmluZWQoTUJFRFRMU19TRUxGX1RFU1QpICYmIGRlZmluZWQoTUJFRFRMU19DQ01fR0NNX0NBTl9BRVMpCi0vKioKLSAqIFxicmllZiAgICAgICAgICBUaGUgQ0NNIGNoZWNrdXAgcm91dGluZS4KLSAqCi0gKiBccmV0dXJuICAgICAgICAgXGMgMCBvbiBzdWNjZXNzLgotICogXHJldHVybiAgICAgICAgIFxjIDEgb24gZmFpbHVyZS4KLSAqLwotaW50IG1iZWR0bHNfY2NtX3NlbGZfdGVzdChpbnQgdmVyYm9zZSk7Ci0jZW5kaWYgLyogTUJFRFRMU19TRUxGX1RFU1QgJiYgTUJFRFRMU19BRVNfQyAqLwotCi0jaWZkZWYgX19jcGx1c3BsdXMKLX0KLSNlbmRpZgotCi0jZW5kaWYgLyogTUJFRFRMU19DQ01fSCAqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9tYmVkdGxzL2NoYWNoYTIwLmggYi9pbmNsdWRlL21iZWR0bHMvY2hhY2hhMjAuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNjgwZmUzNi4uMDAwMDAwMAotLS0gYS9pbmNsdWRlL21iZWR0bHMvY2hhY2hhMjAuaAorKysgL2Rldi9udWxsCkBAIC0xLDIwMiArMCwwIEBACi0vKioKLSAqIFxmaWxlIGNoYWNoYTIwLmgKLSAqCi0gKiBcYnJpZWYgICBUaGlzIGZpbGUgY29udGFpbnMgQ2hhQ2hhMjAgZGVmaW5pdGlvbnMgYW5kIGZ1bmN0aW9ucy4KLSAqCi0gKiAgICAgICAgICBDaGFDaGEyMCBpcyBhIHN0cmVhbSBjaXBoZXIgdGhhdCBjYW4gZW5jcnlwdCBhbmQgZGVjcnlwdAotICogICAgICAgICAgaW5mb3JtYXRpb24uIENoYUNoYSB3YXMgY3JlYXRlZCBieSBEYW5pZWwgQmVybnN0ZWluIGFzIGEgdmFyaWFudCBvZgotICogICAgICAgICAgaXRzIFNhbHNhIGNpcGhlciBodHRwczovL2NyLnlwLnRvL2NoYWNoYS9jaGFjaGEtMjAwODAxMjgucGRmCi0gKiAgICAgICAgICBDaGFDaGEyMCBpcyB0aGUgdmFyaWFudCB3aXRoIDIwIHJvdW5kcywgdGhhdCB3YXMgYWxzbyBzdGFuZGFyZGl6ZWQKLSAqICAgICAgICAgIGluIFJGQyA3NTM5LgotICoKLSAqIFxhdXRob3IgRGFuaWVsIEtpbmcgPGRhbWFraS5naEBnbWFpbC5jb20+Ci0gKi8KLQotLyoKLSAqICBDb3B5cmlnaHQgVGhlIE1iZWQgVExTIENvbnRyaWJ1dG9ycwotICogIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wIE9SIEdQTC0yLjAtb3ItbGF0ZXIKLSAqLwotCi0jaWZuZGVmIE1CRURUTFNfQ0hBQ0hBMjBfSAotI2RlZmluZSBNQkVEVExTX0NIQUNIQTIwX0gKLSNpbmNsdWRlICJtYmVkdGxzL3ByaXZhdGVfYWNjZXNzLmgiCi0KLSNpbmNsdWRlICJtYmVkdGxzL2J1aWxkX2luZm8uaCIKLQotI2luY2x1ZGUgPHN0ZGludC5oPgotI2luY2x1ZGUgPHN0ZGRlZi5oPgotCi0vKiogSW52YWxpZCBpbnB1dCBwYXJhbWV0ZXIocykuICovCi0jZGVmaW5lIE1CRURUTFNfRVJSX0NIQUNIQTIwX0JBRF9JTlBVVF9EQVRBICAgICAgICAgLTB4MDA1MQotCi0jaWZkZWYgX19jcGx1c3BsdXMKLWV4dGVybiAiQyIgewotI2VuZGlmCi0KLSNpZiAhZGVmaW5lZChNQkVEVExTX0NIQUNIQTIwX0FMVCkKLQotdHlwZWRlZiBzdHJ1Y3QgbWJlZHRsc19jaGFjaGEyMF9jb250ZXh0IHsKLSAgICB1aW50MzJfdCBNQkVEVExTX1BSSVZBVEUoc3RhdGUpWzE2XTsgICAgICAgICAgLyohIFRoZSBzdGF0ZSAoYmVmb3JlIHJvdW5kIG9wZXJhdGlvbnMpLiAqLwotICAgIHVpbnQ4X3QgIE1CRURUTFNfUFJJVkFURShrZXlzdHJlYW04KVs2NF07ICAgICAvKiEgTGVmdG92ZXIga2V5c3RyZWFtIGJ5dGVzLiAqLwotICAgIHNpemVfdCBNQkVEVExTX1BSSVZBVEUoa2V5c3RyZWFtX2J5dGVzX3VzZWQpOyAvKiEgTnVtYmVyIG9mIGtleXN0cmVhbSBieXRlcyBhbHJlYWR5IHVzZWQuICovCi19Ci1tYmVkdGxzX2NoYWNoYTIwX2NvbnRleHQ7Ci0KLSNlbHNlICAvKiBNQkVEVExTX0NIQUNIQTIwX0FMVCAqLwotI2luY2x1ZGUgImNoYWNoYTIwX2FsdC5oIgotI2VuZGlmIC8qIE1CRURUTFNfQ0hBQ0hBMjBfQUxUICovCi0KLS8qKgotICogXGJyaWVmICAgICAgICAgICBUaGlzIGZ1bmN0aW9uIGluaXRpYWxpemVzIHRoZSBzcGVjaWZpZWQgQ2hhQ2hhMjAgY29udGV4dC4KLSAqCi0gKiAgICAgICAgICAgICAgICAgIEl0IG11c3QgYmUgdGhlIGZpcnN0IEFQSSBjYWxsZWQgYmVmb3JlIHVzaW5nCi0gKiAgICAgICAgICAgICAgICAgIHRoZSBjb250ZXh0LgotICoKLSAqICAgICAgICAgICAgICAgICAgSXQgaXMgdXN1YWxseSBmb2xsb3dlZCBieSBjYWxscyB0bwotICogICAgICAgICAgICAgICAgICBcYyBtYmVkdGxzX2NoYWNoYTIwX3NldGtleSgpIGFuZAotICogICAgICAgICAgICAgICAgICBcYyBtYmVkdGxzX2NoYWNoYTIwX3N0YXJ0cygpLCB0aGVuIG9uZSBvciBtb3JlIGNhbGxzIHRvCi0gKiAgICAgICAgICAgICAgICAgIHRvIFxjIG1iZWR0bHNfY2hhY2hhMjBfdXBkYXRlKCksIGFuZCBmaW5hbGx5IHRvCi0gKiAgICAgICAgICAgICAgICAgIFxjIG1iZWR0bHNfY2hhY2hhMjBfZnJlZSgpLgotICoKLSAqIFxwYXJhbSBjdHggICAgICAgVGhlIENoYUNoYTIwIGNvbnRleHQgdG8gaW5pdGlhbGl6ZS4KLSAqICAgICAgICAgICAgICAgICAgVGhpcyBtdXN0IG5vdCBiZSBcYyBOVUxMLgotICovCi12b2lkIG1iZWR0bHNfY2hhY2hhMjBfaW5pdChtYmVkdGxzX2NoYWNoYTIwX2NvbnRleHQgKmN0eCk7Ci0KLS8qKgotICogXGJyaWVmICAgICAgICAgICBUaGlzIGZ1bmN0aW9uIHJlbGVhc2VzIGFuZCBjbGVhcnMgdGhlIHNwZWNpZmllZAotICogICAgICAgICAgICAgICAgICBDaGFDaGEyMCBjb250ZXh0LgotICoKLSAqIFxwYXJhbSBjdHggICAgICAgVGhlIENoYUNoYTIwIGNvbnRleHQgdG8gY2xlYXIuIFRoaXMgbWF5IGJlIFxjIE5VTEwsCi0gKiAgICAgICAgICAgICAgICAgIGluIHdoaWNoIGNhc2UgdGhpcyBmdW5jdGlvbiBpcyBhIG5vLW9wLiBJZiBpdCBpcyBub3QKLSAqICAgICAgICAgICAgICAgICAgXGMgTlVMTCwgaXQgbXVzdCBwb2ludCB0byBhbiBpbml0aWFsaXplZCBjb250ZXh0LgotICoKLSAqLwotdm9pZCBtYmVkdGxzX2NoYWNoYTIwX2ZyZWUobWJlZHRsc19jaGFjaGEyMF9jb250ZXh0ICpjdHgpOwotCi0vKioKLSAqIFxicmllZiAgICAgICAgICAgVGhpcyBmdW5jdGlvbiBzZXRzIHRoZSBlbmNyeXB0aW9uL2RlY3J5cHRpb24ga2V5LgotICoKLSAqIFxub3RlICAgICAgICAgICAgQWZ0ZXIgdXNpbmcgdGhpcyBmdW5jdGlvbiwgeW91IG11c3QgYWxzbyBjYWxsCi0gKiAgICAgICAgICAgICAgICAgIFxjIG1iZWR0bHNfY2hhY2hhMjBfc3RhcnRzKCkgdG8gc2V0IGEgbm9uY2UgYmVmb3JlIHlvdQotICogICAgICAgICAgICAgICAgICBzdGFydCBlbmNyeXB0aW5nL2RlY3J5cHRpbmcgZGF0YSB3aXRoCi0gKiAgICAgICAgICAgICAgICAgIFxjIG1iZWR0bHNfY2hhY2hhX3VwZGF0ZSgpLgotICoKLSAqIFxwYXJhbSBjdHggICAgICAgVGhlIENoYUNoYTIwIGNvbnRleHQgdG8gd2hpY2ggdGhlIGtleSBzaG91bGQgYmUgYm91bmQuCi0gKiAgICAgICAgICAgICAgICAgIEl0IG11c3QgYmUgaW5pdGlhbGl6ZWQuCi0gKiBccGFyYW0ga2V5ICAgICAgIFRoZSBlbmNyeXB0aW9uL2RlY3J5cHRpb24ga2V5LiBUaGlzIG11c3QgYmUgXGMgMzIgQnl0ZXMKLSAqICAgICAgICAgICAgICAgICAgaW4gbGVuZ3RoLgotICoKLSAqIFxyZXR1cm4gICAgICAgICAgXGMgMCBvbiBzdWNjZXNzLgotICogXHJldHVybiAgICAgICAgICAjTUJFRFRMU19FUlJfQ0hBQ0hBMjBfQkFEX0lOUFVUX0RBVEEgaWYgY3R4IG9yIGtleSBpcyBOVUxMLgotICovCi1pbnQgbWJlZHRsc19jaGFjaGEyMF9zZXRrZXkobWJlZHRsc19jaGFjaGEyMF9jb250ZXh0ICpjdHgsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdW5zaWduZWQgY2hhciBrZXlbMzJdKTsKLQotLyoqCi0gKiBcYnJpZWYgICAgICAgICAgIFRoaXMgZnVuY3Rpb24gc2V0cyB0aGUgbm9uY2UgYW5kIGluaXRpYWwgY291bnRlciB2YWx1ZS4KLSAqCi0gKiBcbm90ZSAgICAgICAgICAgIEEgQ2hhQ2hhMjAgY29udGV4dCBjYW4gYmUgcmUtdXNlZCB3aXRoIHRoZSBzYW1lIGtleSBieQotICogICAgICAgICAgICAgICAgICBjYWxsaW5nIHRoaXMgZnVuY3Rpb24gdG8gY2hhbmdlIHRoZSBub25jZS4KLSAqCi0gKiBcd2FybmluZyAgICAgICAgIFlvdSBtdXN0IG5ldmVyIHVzZSB0aGUgc2FtZSBub25jZSB0d2ljZSB3aXRoIHRoZSBzYW1lIGtleS4KLSAqICAgICAgICAgICAgICAgICAgVGhpcyB3b3VsZCB2b2lkIGFueSBjb25maWRlbnRpYWxpdHkgZ3VhcmFudGVlcyBmb3IgdGhlCi0gKiAgICAgICAgICAgICAgICAgIG1lc3NhZ2VzIGVuY3J5cHRlZCB3aXRoIHRoZSBzYW1lIG5vbmNlIGFuZCBrZXkuCi0gKgotICogXHBhcmFtIGN0eCAgICAgICBUaGUgQ2hhQ2hhMjAgY29udGV4dCB0byB3aGljaCB0aGUgbm9uY2Ugc2hvdWxkIGJlIGJvdW5kLgotICogICAgICAgICAgICAgICAgICBJdCBtdXN0IGJlIGluaXRpYWxpemVkIGFuZCBib3VuZCB0byBhIGtleS4KLSAqIFxwYXJhbSBub25jZSAgICAgVGhlIG5vbmNlLiBUaGlzIG11c3QgYmUgXGMgMTIgQnl0ZXMgaW4gc2l6ZS4KLSAqIFxwYXJhbSBjb3VudGVyICAgVGhlIGluaXRpYWwgY291bnRlciB2YWx1ZS4gVGhpcyBpcyB1c3VhbGx5IFxjIDAuCi0gKgotICogXHJldHVybiAgICAgICAgICBcYyAwIG9uIHN1Y2Nlc3MuCi0gKiBccmV0dXJuICAgICAgICAgICNNQkVEVExTX0VSUl9DSEFDSEEyMF9CQURfSU5QVVRfREFUQSBpZiBjdHggb3Igbm9uY2UgaXMKLSAqICAgICAgICAgICAgICAgICAgTlVMTC4KLSAqLwotaW50IG1iZWR0bHNfY2hhY2hhMjBfc3RhcnRzKG1iZWR0bHNfY2hhY2hhMjBfY29udGV4dCAqY3R4LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgbm9uY2VbMTJdLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQzMl90IGNvdW50ZXIpOwotCi0vKioKLSAqIFxicmllZiAgICAgICAgICAgVGhpcyBmdW5jdGlvbiBlbmNyeXB0cyBvciBkZWNyeXB0cyBkYXRhLgotICoKLSAqICAgICAgICAgICAgICAgICAgU2luY2UgQ2hhQ2hhMjAgaXMgYSBzdHJlYW0gY2lwaGVyLCB0aGUgc2FtZSBvcGVyYXRpb24gaXMKLSAqICAgICAgICAgICAgICAgICAgdXNlZCBmb3IgZW5jcnlwdGluZyBhbmQgZGVjcnlwdGluZyBkYXRhLgotICoKLSAqIFxub3RlICAgICAgICAgICAgVGhlIFxwIGlucHV0IGFuZCBccCBvdXRwdXQgcG9pbnRlcnMgbXVzdCBlaXRoZXIgYmUgZXF1YWwgb3IKLSAqICAgICAgICAgICAgICAgICAgcG9pbnQgdG8gbm9uLW92ZXJsYXBwaW5nIGJ1ZmZlcnMuCi0gKgotICogXG5vdGUgICAgICAgICAgICBcYyBtYmVkdGxzX2NoYWNoYTIwX3NldGtleSgpIGFuZAotICogICAgICAgICAgICAgICAgICBcYyBtYmVkdGxzX2NoYWNoYTIwX3N0YXJ0cygpIG11c3QgYmUgY2FsbGVkIGF0IGxlYXN0IG9uY2UKLSAqICAgICAgICAgICAgICAgICAgdG8gc2V0dXAgdGhlIGNvbnRleHQgYmVmb3JlIHRoaXMgZnVuY3Rpb24gY2FuIGJlIGNhbGxlZC4KLSAqCi0gKiBcbm90ZSAgICAgICAgICAgIFRoaXMgZnVuY3Rpb24gY2FuIGJlIGNhbGxlZCBtdWx0aXBsZSB0aW1lcyBpbiBhIHJvdyBpbgotICogICAgICAgICAgICAgICAgICBvcmRlciB0byBlbmNyeXB0IG9mIGRlY3J5cHQgZGF0YSBwaWVjZXdpc2Ugd2l0aCB0aGUgc2FtZQotICogICAgICAgICAgICAgICAgICBrZXkgYW5kIG5vbmNlLgotICoKLSAqIFxwYXJhbSBjdHggICAgICAgVGhlIENoYUNoYTIwIGNvbnRleHQgdG8gdXNlIGZvciBlbmNyeXB0aW9uIG9yIGRlY3J5cHRpb24uCi0gKiAgICAgICAgICAgICAgICAgIEl0IG11c3QgYmUgaW5pdGlhbGl6ZWQgYW5kIGJvdW5kIHRvIGEga2V5IGFuZCBub25jZS4KLSAqIFxwYXJhbSBzaXplICAgICAgVGhlIGxlbmd0aCBvZiB0aGUgaW5wdXQgZGF0YSBpbiBCeXRlcy4KLSAqIFxwYXJhbSBpbnB1dCAgICAgVGhlIGJ1ZmZlciBob2xkaW5nIHRoZSBpbnB1dCBkYXRhLgotICogICAgICAgICAgICAgICAgICBUaGlzIHBvaW50ZXIgY2FuIGJlIFxjIE5VTEwgaWYgYHNpemUgPT0gMGAuCi0gKiBccGFyYW0gb3V0cHV0ICAgIFRoZSBidWZmZXIgaG9sZGluZyB0aGUgb3V0cHV0IGRhdGEuCi0gKiAgICAgICAgICAgICAgICAgIFRoaXMgbXVzdCBiZSBhYmxlIHRvIGhvbGQgXHAgc2l6ZSBCeXRlcy4KLSAqICAgICAgICAgICAgICAgICAgVGhpcyBwb2ludGVyIGNhbiBiZSBcYyBOVUxMIGlmIGBzaXplID09IDBgLgotICoKLSAqIFxyZXR1cm4gICAgICAgICAgXGMgMCBvbiBzdWNjZXNzLgotICogXHJldHVybiAgICAgICAgICBBIG5lZ2F0aXZlIGVycm9yIGNvZGUgb24gZmFpbHVyZS4KLSAqLwotaW50IG1iZWR0bHNfY2hhY2hhMjBfdXBkYXRlKG1iZWR0bHNfY2hhY2hhMjBfY29udGV4dCAqY3R4LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBzaXplLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgKmlucHV0LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGNoYXIgKm91dHB1dCk7Ci0KLS8qKgotICogXGJyaWVmICAgICAgICAgICBUaGlzIGZ1bmN0aW9uIGVuY3J5cHRzIG9yIGRlY3J5cHRzIGRhdGEgd2l0aCBDaGFDaGEyMCBhbmQKLSAqICAgICAgICAgICAgICAgICAgdGhlIGdpdmVuIGtleSBhbmQgbm9uY2UuCi0gKgotICogICAgICAgICAgICAgICAgICBTaW5jZSBDaGFDaGEyMCBpcyBhIHN0cmVhbSBjaXBoZXIsIHRoZSBzYW1lIG9wZXJhdGlvbiBpcwotICogICAgICAgICAgICAgICAgICB1c2VkIGZvciBlbmNyeXB0aW5nIGFuZCBkZWNyeXB0aW5nIGRhdGEuCi0gKgotICogXHdhcm5pbmcgICAgICAgICBZb3UgbXVzdCBuZXZlciB1c2UgdGhlIHNhbWUgKGtleSwgbm9uY2UpIHBhaXIgbW9yZSB0aGFuCi0gKiAgICAgICAgICAgICAgICAgIG9uY2UuIFRoaXMgd291bGQgdm9pZCBhbnkgY29uZmlkZW50aWFsaXR5IGd1YXJhbnRlZXMgZm9yCi0gKiAgICAgICAgICAgICAgICAgIHRoZSBtZXNzYWdlcyBlbmNyeXB0ZWQgd2l0aCB0aGUgc2FtZSBub25jZSBhbmQga2V5LgotICoKLSAqIFxub3RlICAgICAgICAgICAgVGhlIFxwIGlucHV0IGFuZCBccCBvdXRwdXQgcG9pbnRlcnMgbXVzdCBlaXRoZXIgYmUgZXF1YWwgb3IKLSAqICAgICAgICAgICAgICAgICAgcG9pbnQgdG8gbm9uLW92ZXJsYXBwaW5nIGJ1ZmZlcnMuCi0gKgotICogXHBhcmFtIGtleSAgICAgICBUaGUgZW5jcnlwdGlvbi9kZWNyeXB0aW9uIGtleS4KLSAqICAgICAgICAgICAgICAgICAgVGhpcyBtdXN0IGJlIFxjIDMyIEJ5dGVzIGluIGxlbmd0aC4KLSAqIFxwYXJhbSBub25jZSAgICAgVGhlIG5vbmNlLiBUaGlzIG11c3QgYmUgXGMgMTIgQnl0ZXMgaW4gc2l6ZS4KLSAqIFxwYXJhbSBjb3VudGVyICAgVGhlIGluaXRpYWwgY291bnRlciB2YWx1ZS4gVGhpcyBpcyB1c3VhbGx5IFxjIDAuCi0gKiBccGFyYW0gc2l6ZSAgICAgIFRoZSBsZW5ndGggb2YgdGhlIGlucHV0IGRhdGEgaW4gQnl0ZXMuCi0gKiBccGFyYW0gaW5wdXQgICAgIFRoZSBidWZmZXIgaG9sZGluZyB0aGUgaW5wdXQgZGF0YS4KLSAqICAgICAgICAgICAgICAgICAgVGhpcyBwb2ludGVyIGNhbiBiZSBcYyBOVUxMIGlmIGBzaXplID09IDBgLgotICogXHBhcmFtIG91dHB1dCAgICBUaGUgYnVmZmVyIGhvbGRpbmcgdGhlIG91dHB1dCBkYXRhLgotICogICAgICAgICAgICAgICAgICBUaGlzIG11c3QgYmUgYWJsZSB0byBob2xkIFxwIHNpemUgQnl0ZXMuCi0gKiAgICAgICAgICAgICAgICAgIFRoaXMgcG9pbnRlciBjYW4gYmUgXGMgTlVMTCBpZiBgc2l6ZSA9PSAwYC4KLSAqCi0gKiBccmV0dXJuICAgICAgICAgIFxjIDAgb24gc3VjY2Vzcy4KLSAqIFxyZXR1cm4gICAgICAgICAgQSBuZWdhdGl2ZSBlcnJvciBjb2RlIG9uIGZhaWx1cmUuCi0gKi8KLWludCBtYmVkdGxzX2NoYWNoYTIwX2NyeXB0KGNvbnN0IHVuc2lnbmVkIGNoYXIga2V5WzMyXSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgbm9uY2VbMTJdLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDMyX3QgY291bnRlciwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBzaXplLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdW5zaWduZWQgY2hhciAqaW5wdXQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBjaGFyICpvdXRwdXQpOwotCi0jaWYgZGVmaW5lZChNQkVEVExTX1NFTEZfVEVTVCkKLS8qKgotICogXGJyaWVmICAgICAgICAgICBUaGUgQ2hhQ2hhMjAgY2hlY2t1cCByb3V0aW5lLgotICoKLSAqIFxyZXR1cm4gICAgICAgICAgXGMgMCBvbiBzdWNjZXNzLgotICogXHJldHVybiAgICAgICAgICBcYyAxIG9uIGZhaWx1cmUuCi0gKi8KLWludCBtYmVkdGxzX2NoYWNoYTIwX3NlbGZfdGVzdChpbnQgdmVyYm9zZSk7Ci0jZW5kaWYgLyogTUJFRFRMU19TRUxGX1RFU1QgKi8KLQotI2lmZGVmIF9fY3BsdXNwbHVzCi19Ci0jZW5kaWYKLQotI2VuZGlmIC8qIE1CRURUTFNfQ0hBQ0hBMjBfSCAqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9tYmVkdGxzL2NoYWNoYXBvbHkuaCBiL2luY2x1ZGUvbWJlZHRscy9jaGFjaGFwb2x5LmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDNkYzIxZTMuLjAwMDAwMDAKLS0tIGEvaW5jbHVkZS9tYmVkdGxzL2NoYWNoYXBvbHkuaAorKysgL2Rldi9udWxsCkBAIC0xLDM0MiArMCwwIEBACi0vKioKLSAqIFxmaWxlIGNoYWNoYXBvbHkuaAotICoKLSAqIFxicmllZiAgIFRoaXMgZmlsZSBjb250YWlucyB0aGUgQUVBRC1DaGFDaGEyMC1Qb2x5MTMwNSBkZWZpbml0aW9ucyBhbmQKLSAqICAgICAgICAgIGZ1bmN0aW9ucy4KLSAqCi0gKiAgICAgICAgICBDaGFDaGEyMC1Qb2x5MTMwNSBpcyBhbiBhbGdvcml0aG0gZm9yIEF1dGhlbnRpY2F0ZWQgRW5jcnlwdGlvbgotICogICAgICAgICAgd2l0aCBBc3NvY2lhdGVkIERhdGEgKEFFQUQpIHRoYXQgY2FuIGJlIHVzZWQgdG8gZW5jcnlwdCBhbmQKLSAqICAgICAgICAgIGF1dGhlbnRpY2F0ZSBkYXRhLiBJdCBpcyBiYXNlZCBvbiBDaGFDaGEyMCBhbmQgUG9seTEzMDUgYnkgRGFuaWVsCi0gKiAgICAgICAgICBCZXJuc3RlaW4gYW5kIHdhcyBzdGFuZGFyZGl6ZWQgaW4gUkZDIDc1MzkuCi0gKgotICogXGF1dGhvciBEYW5pZWwgS2luZyA8ZGFtYWtpLmdoQGdtYWlsLmNvbT4KLSAqLwotCi0vKgotICogIENvcHlyaWdodCBUaGUgTWJlZCBUTFMgQ29udHJpYnV0b3JzCi0gKiAgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjAgT1IgR1BMLTIuMC1vci1sYXRlcgotICovCi0KLSNpZm5kZWYgTUJFRFRMU19DSEFDSEFQT0xZX0gKLSNkZWZpbmUgTUJFRFRMU19DSEFDSEFQT0xZX0gKLSNpbmNsdWRlICJtYmVkdGxzL3ByaXZhdGVfYWNjZXNzLmgiCi0KLSNpbmNsdWRlICJtYmVkdGxzL2J1aWxkX2luZm8uaCIKLQotLyogZm9yIHNoYXJlZCBlcnJvciBjb2RlcyAqLwotI2luY2x1ZGUgIm1iZWR0bHMvcG9seTEzMDUuaCIKLQotLyoqIFRoZSByZXF1ZXN0ZWQgb3BlcmF0aW9uIGlzIG5vdCBwZXJtaXR0ZWQgaW4gdGhlIGN1cnJlbnQgc3RhdGUuICovCi0jZGVmaW5lIE1CRURUTFNfRVJSX0NIQUNIQVBPTFlfQkFEX1NUQVRFICAgICAgICAgICAgLTB4MDA1NAotLyoqIEF1dGhlbnRpY2F0ZWQgZGVjcnlwdGlvbiBmYWlsZWQ6IGRhdGEgd2FzIG5vdCBhdXRoZW50aWMuICovCi0jZGVmaW5lIE1CRURUTFNfRVJSX0NIQUNIQVBPTFlfQVVUSF9GQUlMRUQgICAgICAgICAgLTB4MDA1NgotCi0jaWZkZWYgX19jcGx1c3BsdXMKLWV4dGVybiAiQyIgewotI2VuZGlmCi0KLXR5cGVkZWYgZW51bSB7Ci0gICAgTUJFRFRMU19DSEFDSEFQT0xZX0VOQ1JZUFQsICAgICAvKio8IFRoZSBtb2RlIHZhbHVlIGZvciBwZXJmb3JtaW5nIGVuY3J5cHRpb24uICovCi0gICAgTUJFRFRMU19DSEFDSEFQT0xZX0RFQ1JZUFQgICAgICAvKio8IFRoZSBtb2RlIHZhbHVlIGZvciBwZXJmb3JtaW5nIGRlY3J5cHRpb24uICovCi19Ci1tYmVkdGxzX2NoYWNoYXBvbHlfbW9kZV90OwotCi0jaWYgIWRlZmluZWQoTUJFRFRMU19DSEFDSEFQT0xZX0FMVCkKLQotI2luY2x1ZGUgIm1iZWR0bHMvY2hhY2hhMjAuaCIKLQotdHlwZWRlZiBzdHJ1Y3QgbWJlZHRsc19jaGFjaGFwb2x5X2NvbnRleHQgewotICAgIG1iZWR0bHNfY2hhY2hhMjBfY29udGV4dCBNQkVEVExTX1BSSVZBVEUoY2hhY2hhMjBfY3R4KTsgIC8qKjwgVGhlIENoYUNoYTIwIGNvbnRleHQuICovCi0gICAgbWJlZHRsc19wb2x5MTMwNV9jb250ZXh0IE1CRURUTFNfUFJJVkFURShwb2x5MTMwNV9jdHgpOyAgLyoqPCBUaGUgUG9seTEzMDUgY29udGV4dC4gKi8KLSAgICB1aW50NjRfdCBNQkVEVExTX1BSSVZBVEUoYWFkX2xlbik7ICAgICAgICAgICAgICAgICAgICAgICAvKio8IFRoZSBsZW5ndGggKGJ5dGVzKSBvZiB0aGUgQWRkaXRpb25hbCBBdXRoZW50aWNhdGVkIERhdGEuICovCi0gICAgdWludDY0X3QgTUJFRFRMU19QUklWQVRFKGNpcGhlcnRleHRfbGVuKTsgICAgICAgICAgICAgICAgLyoqPCBUaGUgbGVuZ3RoIChieXRlcykgb2YgdGhlIGNpcGhlcnRleHQuICovCi0gICAgaW50IE1CRURUTFNfUFJJVkFURShzdGF0ZSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyoqPCBUaGUgY3VycmVudCBzdGF0ZSBvZiB0aGUgY29udGV4dC4gKi8KLSAgICBtYmVkdGxzX2NoYWNoYXBvbHlfbW9kZV90IE1CRURUTFNfUFJJVkFURShtb2RlKTsgICAgICAgICAvKio8IENpcGhlciBtb2RlIChlbmNyeXB0IG9yIGRlY3J5cHQpLiAqLwotfQotbWJlZHRsc19jaGFjaGFwb2x5X2NvbnRleHQ7Ci0KLSNlbHNlIC8qICFNQkVEVExTX0NIQUNIQVBPTFlfQUxUICovCi0jaW5jbHVkZSAiY2hhY2hhcG9seV9hbHQuaCIKLSNlbmRpZiAvKiAhTUJFRFRMU19DSEFDSEFQT0xZX0FMVCAqLwotCi0vKioKLSAqIFxicmllZiAgICAgICAgICAgVGhpcyBmdW5jdGlvbiBpbml0aWFsaXplcyB0aGUgc3BlY2lmaWVkIENoYUNoYTIwLVBvbHkxMzA1IGNvbnRleHQuCi0gKgotICogICAgICAgICAgICAgICAgICBJdCBtdXN0IGJlIHRoZSBmaXJzdCBBUEkgY2FsbGVkIGJlZm9yZSB1c2luZwotICogICAgICAgICAgICAgICAgICB0aGUgY29udGV4dC4gSXQgbXVzdCBiZSBmb2xsb3dlZCBieSBhIGNhbGwgdG8KLSAqICAgICAgICAgICAgICAgICAgXGMgbWJlZHRsc19jaGFjaGFwb2x5X3NldGtleSgpIGJlZm9yZSBhbnkgb3BlcmF0aW9uIGNhbiBiZQotICogICAgICAgICAgICAgICAgICBkb25lLCBhbmQgdG8gXGMgbWJlZHRsc19jaGFjaGFwb2x5X2ZyZWUoKSBvbmNlIGFsbAotICogICAgICAgICAgICAgICAgICBvcGVyYXRpb25zIHdpdGggdGhhdCBjb250ZXh0IGhhdmUgYmVlbiBmaW5pc2hlZC4KLSAqCi0gKiAgICAgICAgICAgICAgICAgIEluIG9yZGVyIHRvIGVuY3J5cHQgb3IgZGVjcnlwdCBmdWxsIG1lc3NhZ2VzIGF0IG9uY2UsIGZvcgotICogICAgICAgICAgICAgICAgICBlYWNoIG1lc3NhZ2UgeW91IHNob3VsZCBtYWtlIGEgc2luZ2xlIGNhbGwgdG8KLSAqICAgICAgICAgICAgICAgICAgXGMgbWJlZHRsc19jaGFjaGFwb2x5X2NyeXB0X2FuZF90YWcoKSBvcgotICogICAgICAgICAgICAgICAgICBcYyBtYmVkdGxzX2NoYWNoYXBvbHlfYXV0aF9kZWNyeXB0KCkuCi0gKgotICogICAgICAgICAgICAgICAgICBJbiBvcmRlciB0byBlbmNyeXB0IG1lc3NhZ2VzIHBpZWNld2lzZSwgZm9yIGVhY2gKLSAqICAgICAgICAgICAgICAgICAgbWVzc2FnZSB5b3Ugc2hvdWxkIG1ha2UgYSBjYWxsIHRvCi0gKiAgICAgICAgICAgICAgICAgIFxjIG1iZWR0bHNfY2hhY2hhcG9seV9zdGFydHMoKSwgdGhlbiAwIG9yIG1vcmUgY2FsbHMgdG8KLSAqICAgICAgICAgICAgICAgICAgXGMgbWJlZHRsc19jaGFjaGFwb2x5X3VwZGF0ZV9hYWQoKSwgdGhlbiAwIG9yIG1vcmUgY2FsbHMgdG8KLSAqICAgICAgICAgICAgICAgICAgXGMgbWJlZHRsc19jaGFjaGFwb2x5X3VwZGF0ZSgpLCB0aGVuIG9uZSBjYWxsIHRvCi0gKiAgICAgICAgICAgICAgICAgIFxjIG1iZWR0bHNfY2hhY2hhcG9seV9maW5pc2goKS4KLSAqCi0gKiBcd2FybmluZyAgICAgICAgIERlY3J5cHRpb24gd2l0aCB0aGUgcGllY2V3aXNlIEFQSSBpcyBkaXNjb3VyYWdlZCEgQWx3YXlzCi0gKiAgICAgICAgICAgICAgICAgIHVzZSBcYyBtYmVkdGxzX2NoYWNoYXBvbHlfYXV0aF9kZWNyeXB0KCkgd2hlbiBwb3NzaWJsZSEKLSAqCi0gKiAgICAgICAgICAgICAgICAgIElmIGhvd2V2ZXIgdGhpcyBpcyBub3QgcG9zc2libGUgYmVjYXVzZSB0aGUgZGF0YSBpcyB0b28KLSAqICAgICAgICAgICAgICAgICAgbGFyZ2UgdG8gZml0IGluIG1lbW9yeSwgeW91IG5lZWQgdG86Ci0gKgotICogICAgICAgICAgICAgICAgICAtIGNhbGwgXGMgbWJlZHRsc19jaGFjaGFwb2x5X3N0YXJ0cygpIGFuZCAoaWYgbmVlZGVkKQotICogICAgICAgICAgICAgICAgICBcYyBtYmVkdGxzX2NoYWNoYXBvbHlfdXBkYXRlX2FhZCgpIGFzIGFib3ZlLAotICogICAgICAgICAgICAgICAgICAtIGNhbGwgXGMgbWJlZHRsc19jaGFjaGFwb2x5X3VwZGF0ZSgpIG11bHRpcGxlIHRpbWVzIGFuZAotICogICAgICAgICAgICAgICAgICBlbnN1cmUgaXRzIG91dHB1dCAodGhlIHBsYWludGV4dCkgaXMgTk9UIHVzZWQgaW4gYW55IG90aGVyCi0gKiAgICAgICAgICAgICAgICAgIHdheSB0aGFuIHBsYWNpbmcgaXQgaW4gdGVtcG9yYXJ5IHN0b3JhZ2UgYXQgdGhpcyBwb2ludCwKLSAqICAgICAgICAgICAgICAgICAgLSBjYWxsIFxjIG1iZWR0bHNfY2hhY2hhcG9seV9maW5pc2goKSB0byBjb21wdXRlIHRoZQotICogICAgICAgICAgICAgICAgICBhdXRoZW50aWNhdGlvbiB0YWcgYW5kIGNvbXBhcmVkIGl0IGluIGNvbnN0YW50IHRpbWUgdG8gdGhlCi0gKiAgICAgICAgICAgICAgICAgIHRhZyByZWNlaXZlZCB3aXRoIHRoZSBjaXBoZXJ0ZXh0LgotICoKLSAqICAgICAgICAgICAgICAgICAgSWYgdGhlIHRhZ3MgYXJlIG5vdCBlcXVhbCwgeW91IG11c3QgaW1tZWRpYXRlbHkgZGlzY2FyZAotICogICAgICAgICAgICAgICAgICBhbGwgcHJldmlvdXMgb3V0cHV0cyBvZiBcYyBtYmVkdGxzX2NoYWNoYXBvbHlfdXBkYXRlKCksCi0gKiAgICAgICAgICAgICAgICAgIG90aGVyd2lzZSB5b3UgY2FuIG5vdyBzYWZlbHkgdXNlIHRoZSBwbGFpbnRleHQuCi0gKgotICogXHBhcmFtIGN0eCAgICAgICBUaGUgQ2hhY2hhUG9seSBjb250ZXh0IHRvIGluaXRpYWxpemUuIE11c3Qgbm90IGJlIFxjIE5VTEwuCi0gKi8KLXZvaWQgbWJlZHRsc19jaGFjaGFwb2x5X2luaXQobWJlZHRsc19jaGFjaGFwb2x5X2NvbnRleHQgKmN0eCk7Ci0KLS8qKgotICogXGJyaWVmICAgICAgICAgICBUaGlzIGZ1bmN0aW9uIHJlbGVhc2VzIGFuZCBjbGVhcnMgdGhlIHNwZWNpZmllZAotICogICAgICAgICAgICAgICAgICBDaGFDaGEyMC1Qb2x5MTMwNSBjb250ZXh0LgotICoKLSAqIFxwYXJhbSBjdHggICAgICAgVGhlIENoYWNoYVBvbHkgY29udGV4dCB0byBjbGVhci4gVGhpcyBtYXkgYmUgXGMgTlVMTCwgaW4gd2hpY2gKLSAqICAgICAgICAgICAgICAgICAgY2FzZSB0aGlzIGZ1bmN0aW9uIGlzIGEgbm8tb3AuCi0gKi8KLXZvaWQgbWJlZHRsc19jaGFjaGFwb2x5X2ZyZWUobWJlZHRsc19jaGFjaGFwb2x5X2NvbnRleHQgKmN0eCk7Ci0KLS8qKgotICogXGJyaWVmICAgICAgICAgICBUaGlzIGZ1bmN0aW9uIHNldHMgdGhlIENoYUNoYTIwLVBvbHkxMzA1Ci0gKiAgICAgICAgICAgICAgICAgIHN5bW1ldHJpYyBlbmNyeXB0aW9uIGtleS4KLSAqCi0gKiBccGFyYW0gY3R4ICAgICAgIFRoZSBDaGFDaGEyMC1Qb2x5MTMwNSBjb250ZXh0IHRvIHdoaWNoIHRoZSBrZXkgc2hvdWxkIGJlCi0gKiAgICAgICAgICAgICAgICAgIGJvdW5kLiBUaGlzIG11c3QgYmUgaW5pdGlhbGl6ZWQuCi0gKiBccGFyYW0ga2V5ICAgICAgIFRoZSBcYyAyNTYgQml0IChcYyAzMiBCeXRlcykga2V5LgotICoKLSAqIFxyZXR1cm4gICAgICAgICAgXGMgMCBvbiBzdWNjZXNzLgotICogXHJldHVybiAgICAgICAgICBBIG5lZ2F0aXZlIGVycm9yIGNvZGUgb24gZmFpbHVyZS4KLSAqLwotaW50IG1iZWR0bHNfY2hhY2hhcG9seV9zZXRrZXkobWJlZHRsc19jaGFjaGFwb2x5X2NvbnRleHQgKmN0eCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIga2V5WzMyXSk7Ci0KLS8qKgotICogXGJyaWVmICAgICAgICAgICBUaGlzIGZ1bmN0aW9uIHN0YXJ0cyBhIENoYUNoYTIwLVBvbHkxMzA1IGVuY3J5cHRpb24gb3IKLSAqICAgICAgICAgICAgICAgICAgZGVjcnlwdGlvbiBvcGVyYXRpb24uCi0gKgotICogXHdhcm5pbmcgICAgICAgICBZb3UgbXVzdCBuZXZlciB1c2UgdGhlIHNhbWUgbm9uY2UgdHdpY2Ugd2l0aCB0aGUgc2FtZSBrZXkuCi0gKiAgICAgICAgICAgICAgICAgIFRoaXMgd291bGQgdm9pZCBhbnkgY29uZmlkZW50aWFsaXR5IGFuZCBhdXRoZW50aWNpdHkKLSAqICAgICAgICAgICAgICAgICAgZ3VhcmFudGVlcyBmb3IgdGhlIG1lc3NhZ2VzIGVuY3J5cHRlZCB3aXRoIHRoZSBzYW1lIG5vbmNlCi0gKiAgICAgICAgICAgICAgICAgIGFuZCBrZXkuCi0gKgotICogXG5vdGUgICAgICAgICAgICBJZiB0aGUgY29udGV4dCBpcyBiZWluZyB1c2VkIGZvciBBQUQgb25seSAobm8gZGF0YSB0bwotICogICAgICAgICAgICAgICAgICBlbmNyeXB0IG9yIGRlY3J5cHQpIHRoZW4gXHAgbW9kZSBjYW4gYmUgc2V0IHRvIGFueSB2YWx1ZS4KLSAqCi0gKiBcd2FybmluZyAgICAgICAgIERlY3J5cHRpb24gd2l0aCB0aGUgcGllY2V3aXNlIEFQSSBpcyBkaXNjb3VyYWdlZCwgc2VlIHRoZQotICogICAgICAgICAgICAgICAgICB3YXJuaW5nIG9uIFxjIG1iZWR0bHNfY2hhY2hhcG9seV9pbml0KCkuCi0gKgotICogXHBhcmFtIGN0eCAgICAgICBUaGUgQ2hhQ2hhMjAtUG9seTEzMDUgY29udGV4dC4gVGhpcyBtdXN0IGJlIGluaXRpYWxpemVkCi0gKiAgICAgICAgICAgICAgICAgIGFuZCBib3VuZCB0byBhIGtleS4KLSAqIFxwYXJhbSBub25jZSAgICAgVGhlIG5vbmNlL0lWIHRvIHVzZSBmb3IgdGhlIG1lc3NhZ2UuCi0gKiAgICAgICAgICAgICAgICAgIFRoaXMgbXVzdCBiZSBhIHJlYWRhYmxlIGJ1ZmZlciBvZiBsZW5ndGggXGMgMTIgQnl0ZXMuCi0gKiBccGFyYW0gbW9kZSAgICAgIFRoZSBvcGVyYXRpb24gdG8gcGVyZm9ybTogI01CRURUTFNfQ0hBQ0hBUE9MWV9FTkNSWVBUIG9yCi0gKiAgICAgICAgICAgICAgICAgICNNQkVEVExTX0NIQUNIQVBPTFlfREVDUllQVCAoZGlzY291cmFnZWQsIHNlZSB3YXJuaW5nKS4KLSAqCi0gKiBccmV0dXJuICAgICAgICAgIFxjIDAgb24gc3VjY2Vzcy4KLSAqIFxyZXR1cm4gICAgICAgICAgQSBuZWdhdGl2ZSBlcnJvciBjb2RlIG9uIGZhaWx1cmUuCi0gKi8KLWludCBtYmVkdGxzX2NoYWNoYXBvbHlfc3RhcnRzKG1iZWR0bHNfY2hhY2hhcG9seV9jb250ZXh0ICpjdHgsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1bnNpZ25lZCBjaGFyIG5vbmNlWzEyXSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1iZWR0bHNfY2hhY2hhcG9seV9tb2RlX3QgbW9kZSk7Ci0KLS8qKgotICogXGJyaWVmICAgICAgICAgICBUaGlzIGZ1bmN0aW9uIGZlZWRzIGFkZGl0aW9uYWwgZGF0YSB0byBiZSBhdXRoZW50aWNhdGVkCi0gKiAgICAgICAgICAgICAgICAgIGludG8gYW4gb25nb2luZyBDaGFDaGEyMC1Qb2x5MTMwNSBvcGVyYXRpb24uCi0gKgotICogICAgICAgICAgICAgICAgICBUaGUgQWRkaXRpb25hbCBBdXRoZW50aWNhdGVkIERhdGEgKEFBRCksIGFsc28gY2FsbGVkCi0gKiAgICAgICAgICAgICAgICAgIEFzc29jaWF0ZWQgRGF0YSAoQUQpIGlzIG9ubHkgYXV0aGVudGljYXRlZCBidXQgbm90Ci0gKiAgICAgICAgICAgICAgICAgIGVuY3J5cHRlZCBub3IgaW5jbHVkZWQgaW4gdGhlIGVuY3J5cHRlZCBvdXRwdXQuIEl0IGlzCi0gKiAgICAgICAgICAgICAgICAgIHVzdWFsbHkgdHJhbnNtaXR0ZWQgc2VwYXJhdGVseSBmcm9tIHRoZSBjaXBoZXJ0ZXh0IG9yCi0gKiAgICAgICAgICAgICAgICAgIGNvbXB1dGVkIGxvY2FsbHkgYnkgZWFjaCBwYXJ0eS4KLSAqCi0gKiBcbm90ZSAgICAgICAgICAgIFRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIGJlZm9yZSBkYXRhIGlzIGVuY3J5cHRlZC9kZWNyeXB0ZWQuCi0gKiAgICAgICAgICAgICAgICAgIEkuZS4gY2FsbCB0aGlzIGZ1bmN0aW9uIHRvIHByb2Nlc3MgdGhlIEFBRCBiZWZvcmUgY2FsbGluZwotICogICAgICAgICAgICAgICAgICBcYyBtYmVkdGxzX2NoYWNoYXBvbHlfdXBkYXRlKCkuCi0gKgotICogICAgICAgICAgICAgICAgICBZb3UgbWF5IGNhbGwgdGhpcyBmdW5jdGlvbiBtdWx0aXBsZSB0aW1lcyB0byBwcm9jZXNzCi0gKiAgICAgICAgICAgICAgICAgIGFuIGFyYml0cmFyeSBhbW91bnQgb2YgQUFELiBJdCBpcyBwZXJtaXR0ZWQgdG8gY2FsbAotICogICAgICAgICAgICAgICAgICB0aGlzIGZ1bmN0aW9uIDAgdGltZXMsIGlmIG5vIEFBRCBpcyB1c2VkLgotICoKLSAqICAgICAgICAgICAgICAgICAgVGhpcyBmdW5jdGlvbiBjYW5ub3QgYmUgY2FsbGVkIGFueSBtb3JlIGlmIGRhdGEgaGFzCi0gKiAgICAgICAgICAgICAgICAgIGJlZW4gcHJvY2Vzc2VkIGJ5IFxjIG1iZWR0bHNfY2hhY2hhcG9seV91cGRhdGUoKSwKLSAqICAgICAgICAgICAgICAgICAgb3IgaWYgdGhlIGNvbnRleHQgaGFzIGJlZW4gZmluaXNoZWQuCi0gKgotICogXHdhcm5pbmcgICAgICAgICBEZWNyeXB0aW9uIHdpdGggdGhlIHBpZWNld2lzZSBBUEkgaXMgZGlzY291cmFnZWQsIHNlZSB0aGUKLSAqICAgICAgICAgICAgICAgICAgd2FybmluZyBvbiBcYyBtYmVkdGxzX2NoYWNoYXBvbHlfaW5pdCgpLgotICoKLSAqIFxwYXJhbSBjdHggICAgICAgVGhlIENoYUNoYTIwLVBvbHkxMzA1IGNvbnRleHQuIFRoaXMgbXVzdCBiZSBpbml0aWFsaXplZAotICogICAgICAgICAgICAgICAgICBhbmQgYm91bmQgdG8gYSBrZXkuCi0gKiBccGFyYW0gYWFkX2xlbiAgIFRoZSBsZW5ndGggaW4gQnl0ZXMgb2YgdGhlIEFBRC4gVGhlIGxlbmd0aCBoYXMgbm8KLSAqICAgICAgICAgICAgICAgICAgcmVzdHJpY3Rpb25zLgotICogXHBhcmFtIGFhZCAgICAgICBCdWZmZXIgY29udGFpbmluZyB0aGUgQUFELgotICogICAgICAgICAgICAgICAgICBUaGlzIHBvaW50ZXIgY2FuIGJlIFxjIE5VTEwgaWYgYGFhZF9sZW4gPT0gMGAuCi0gKgotICogXHJldHVybiAgICAgICAgICBcYyAwIG9uIHN1Y2Nlc3MuCi0gKiBccmV0dXJuICAgICAgICAgICNNQkVEVExTX0VSUl9QT0xZMTMwNV9CQURfSU5QVVRfREFUQQotICogICAgICAgICAgICAgICAgICBpZiBccCBjdHggb3IgXHAgYWFkIGFyZSBOVUxMLgotICogXHJldHVybiAgICAgICAgICAjTUJFRFRMU19FUlJfQ0hBQ0hBUE9MWV9CQURfU1RBVEUKLSAqICAgICAgICAgICAgICAgICAgaWYgdGhlIG9wZXJhdGlvbnMgaGFzIG5vdCBiZWVuIHN0YXJ0ZWQgb3IgaGFzIGJlZW4KLSAqICAgICAgICAgICAgICAgICAgZmluaXNoZWQsIG9yIGlmIHRoZSBBQUQgaGFzIGJlZW4gZmluaXNoZWQuCi0gKi8KLWludCBtYmVkdGxzX2NoYWNoYXBvbHlfdXBkYXRlX2FhZChtYmVkdGxzX2NoYWNoYXBvbHlfY29udGV4dCAqY3R4LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgKmFhZCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgYWFkX2xlbik7Ci0KLS8qKgotICogXGJyaWVmICAgICAgICAgICBUaHVzIGZ1bmN0aW9uIGZlZWRzIGRhdGEgdG8gYmUgZW5jcnlwdGVkIG9yIGRlY3J5cHRlZAotICogICAgICAgICAgICAgICAgICBpbnRvIGFuIG9uLWdvaW5nIENoYUNoYTIwLVBvbHkxMzA1Ci0gKiAgICAgICAgICAgICAgICAgIG9wZXJhdGlvbi4KLSAqCi0gKiAgICAgICAgICAgICAgICAgIFRoZSBkaXJlY3Rpb24gKGVuY3J5cHRpb24gb3IgZGVjcnlwdGlvbikgZGVwZW5kcyBvbiB0aGUKLSAqICAgICAgICAgICAgICAgICAgbW9kZSB0aGF0IHdhcyBnaXZlbiB3aGVuIGNhbGxpbmcKLSAqICAgICAgICAgICAgICAgICAgXGMgbWJlZHRsc19jaGFjaGFwb2x5X3N0YXJ0cygpLgotICoKLSAqICAgICAgICAgICAgICAgICAgWW91IG1heSBjYWxsIHRoaXMgZnVuY3Rpb24gbXVsdGlwbGUgdGltZXMgdG8gcHJvY2VzcwotICogICAgICAgICAgICAgICAgICBhbiBhcmJpdHJhcnkgYW1vdW50IG9mIGRhdGEuIEl0IGlzIHBlcm1pdHRlZCB0byBjYWxsCi0gKiAgICAgICAgICAgICAgICAgIHRoaXMgZnVuY3Rpb24gMCB0aW1lcywgaWYgbm8gZGF0YSBpcyB0byBiZSBlbmNyeXB0ZWQKLSAqICAgICAgICAgICAgICAgICAgb3IgZGVjcnlwdGVkLgotICoKLSAqIFx3YXJuaW5nICAgICAgICAgRGVjcnlwdGlvbiB3aXRoIHRoZSBwaWVjZXdpc2UgQVBJIGlzIGRpc2NvdXJhZ2VkLCBzZWUgdGhlCi0gKiAgICAgICAgICAgICAgICAgIHdhcm5pbmcgb24gXGMgbWJlZHRsc19jaGFjaGFwb2x5X2luaXQoKS4KLSAqCi0gKiBccGFyYW0gY3R4ICAgICAgIFRoZSBDaGFDaGEyMC1Qb2x5MTMwNSBjb250ZXh0IHRvIHVzZS4gVGhpcyBtdXN0IGJlIGluaXRpYWxpemVkLgotICogXHBhcmFtIGxlbiAgICAgICBUaGUgbGVuZ3RoIChpbiBieXRlcykgb2YgdGhlIGRhdGEgdG8gZW5jcnlwdCBvciBkZWNyeXB0LgotICogXHBhcmFtIGlucHV0ICAgICBUaGUgYnVmZmVyIGNvbnRhaW5pbmcgdGhlIGRhdGEgdG8gZW5jcnlwdCBvciBkZWNyeXB0LgotICogICAgICAgICAgICAgICAgICBUaGlzIHBvaW50ZXIgY2FuIGJlIFxjIE5VTEwgaWYgYGxlbiA9PSAwYC4KLSAqIFxwYXJhbSBvdXRwdXQgICAgVGhlIGJ1ZmZlciB0byB3aGVyZSB0aGUgZW5jcnlwdGVkIG9yIGRlY3J5cHRlZCBkYXRhIGlzCi0gKiAgICAgICAgICAgICAgICAgIHdyaXR0ZW4uIFRoaXMgbXVzdCBiZSBhYmxlIHRvIGhvbGQgXHAgbGVuIGJ5dGVzLgotICogICAgICAgICAgICAgICAgICBUaGlzIHBvaW50ZXIgY2FuIGJlIFxjIE5VTEwgaWYgYGxlbiA9PSAwYC4KLSAqCi0gKiBccmV0dXJuICAgICAgICAgIFxjIDAgb24gc3VjY2Vzcy4KLSAqIFxyZXR1cm4gICAgICAgICAgI01CRURUTFNfRVJSX0NIQUNIQVBPTFlfQkFEX1NUQVRFCi0gKiAgICAgICAgICAgICAgICAgIGlmIHRoZSBvcGVyYXRpb24gaGFzIG5vdCBiZWVuIHN0YXJ0ZWQgb3IgaGFzIGJlZW4KLSAqICAgICAgICAgICAgICAgICAgZmluaXNoZWQuCi0gKiBccmV0dXJuICAgICAgICAgIEFub3RoZXIgbmVnYXRpdmUgZXJyb3IgY29kZSBvbiBvdGhlciBraW5kcyBvZiBmYWlsdXJlLgotICovCi1pbnQgbWJlZHRsc19jaGFjaGFwb2x5X3VwZGF0ZShtYmVkdGxzX2NoYWNoYXBvbHlfY29udGV4dCAqY3R4LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IGxlbiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgKmlucHV0LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgY2hhciAqb3V0cHV0KTsKLQotLyoqCi0gKiBcYnJpZWYgICAgICAgICAgIFRoaXMgZnVuY3Rpb24gZmluaXNoZWQgdGhlIENoYUNoYTIwLVBvbHkxMzA1IG9wZXJhdGlvbiBhbmQKLSAqICAgICAgICAgICAgICAgICAgZ2VuZXJhdGVzIHRoZSBNQUMgKGF1dGhlbnRpY2F0aW9uIHRhZykuCi0gKgotICogXHBhcmFtIGN0eCAgICAgICBUaGUgQ2hhQ2hhMjAtUG9seTEzMDUgY29udGV4dCB0byB1c2UuIFRoaXMgbXVzdCBiZSBpbml0aWFsaXplZC4KLSAqIFxwYXJhbSBtYWMgICAgICAgVGhlIGJ1ZmZlciB0byB3aGVyZSB0aGUgMTI4LWJpdCAoMTYgYnl0ZXMpIE1BQyBpcyB3cml0dGVuLgotICoKLSAqIFx3YXJuaW5nICAgICAgICAgRGVjcnlwdGlvbiB3aXRoIHRoZSBwaWVjZXdpc2UgQVBJIGlzIGRpc2NvdXJhZ2VkLCBzZWUgdGhlCi0gKiAgICAgICAgICAgICAgICAgIHdhcm5pbmcgb24gXGMgbWJlZHRsc19jaGFjaGFwb2x5X2luaXQoKS4KLSAqCi0gKiBccmV0dXJuICAgICAgICAgIFxjIDAgb24gc3VjY2Vzcy4KLSAqIFxyZXR1cm4gICAgICAgICAgI01CRURUTFNfRVJSX0NIQUNIQVBPTFlfQkFEX1NUQVRFCi0gKiAgICAgICAgICAgICAgICAgIGlmIHRoZSBvcGVyYXRpb24gaGFzIG5vdCBiZWVuIHN0YXJ0ZWQgb3IgaGFzIGJlZW4KLSAqICAgICAgICAgICAgICAgICAgZmluaXNoZWQuCi0gKiBccmV0dXJuICAgICAgICAgIEFub3RoZXIgbmVnYXRpdmUgZXJyb3IgY29kZSBvbiBvdGhlciBraW5kcyBvZiBmYWlsdXJlLgotICovCi1pbnQgbWJlZHRsc19jaGFjaGFwb2x5X2ZpbmlzaChtYmVkdGxzX2NoYWNoYXBvbHlfY29udGV4dCAqY3R4LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgY2hhciBtYWNbMTZdKTsKLQotLyoqCi0gKiBcYnJpZWYgICAgICAgICAgIFRoaXMgZnVuY3Rpb24gcGVyZm9ybXMgYSBjb21wbGV0ZSBDaGFDaGEyMC1Qb2x5MTMwNQotICogICAgICAgICAgICAgICAgICBhdXRoZW50aWNhdGVkIGVuY3J5cHRpb24gd2l0aCB0aGUgcHJldmlvdXNseS1zZXQga2V5LgotICoKLSAqIFxub3RlICAgICAgICAgICAgQmVmb3JlIHVzaW5nIHRoaXMgZnVuY3Rpb24sIHlvdSBtdXN0IHNldCB0aGUga2V5IHdpdGgKLSAqICAgICAgICAgICAgICAgICAgXGMgbWJlZHRsc19jaGFjaGFwb2x5X3NldGtleSgpLgotICoKLSAqIFx3YXJuaW5nICAgICAgICAgWW91IG11c3QgbmV2ZXIgdXNlIHRoZSBzYW1lIG5vbmNlIHR3aWNlIHdpdGggdGhlIHNhbWUga2V5LgotICogICAgICAgICAgICAgICAgICBUaGlzIHdvdWxkIHZvaWQgYW55IGNvbmZpZGVudGlhbGl0eSBhbmQgYXV0aGVudGljaXR5Ci0gKiAgICAgICAgICAgICAgICAgIGd1YXJhbnRlZXMgZm9yIHRoZSBtZXNzYWdlcyBlbmNyeXB0ZWQgd2l0aCB0aGUgc2FtZSBub25jZQotICogICAgICAgICAgICAgICAgICBhbmQga2V5LgotICoKLSAqIFxwYXJhbSBjdHggICAgICAgVGhlIENoYUNoYTIwLVBvbHkxMzA1IGNvbnRleHQgdG8gdXNlIChob2xkcyB0aGUga2V5KS4KLSAqICAgICAgICAgICAgICAgICAgVGhpcyBtdXN0IGJlIGluaXRpYWxpemVkLgotICogXHBhcmFtIGxlbmd0aCAgICBUaGUgbGVuZ3RoIChpbiBieXRlcykgb2YgdGhlIGRhdGEgdG8gZW5jcnlwdCBvciBkZWNyeXB0LgotICogXHBhcmFtIG5vbmNlICAgICBUaGUgOTYtYml0ICgxMiBieXRlcykgbm9uY2UvSVYgdG8gdXNlLgotICogXHBhcmFtIGFhZCAgICAgICBUaGUgYnVmZmVyIGNvbnRhaW5pbmcgdGhlIGFkZGl0aW9uYWwgYXV0aGVudGljYXRlZAotICogICAgICAgICAgICAgICAgICBkYXRhIChBQUQpLiBUaGlzIHBvaW50ZXIgY2FuIGJlIFxjIE5VTEwgaWYgYGFhZF9sZW4gPT0gMGAuCi0gKiBccGFyYW0gYWFkX2xlbiAgIFRoZSBsZW5ndGggKGluIGJ5dGVzKSBvZiB0aGUgQUFEIGRhdGEgdG8gcHJvY2Vzcy4KLSAqIFxwYXJhbSBpbnB1dCAgICAgVGhlIGJ1ZmZlciBjb250YWluaW5nIHRoZSBkYXRhIHRvIGVuY3J5cHQgb3IgZGVjcnlwdC4KLSAqICAgICAgICAgICAgICAgICAgVGhpcyBwb2ludGVyIGNhbiBiZSBcYyBOVUxMIGlmIGBpbGVuID09IDBgLgotICogXHBhcmFtIG91dHB1dCAgICBUaGUgYnVmZmVyIHRvIHdoZXJlIHRoZSBlbmNyeXB0ZWQgb3IgZGVjcnlwdGVkIGRhdGEKLSAqICAgICAgICAgICAgICAgICAgaXMgd3JpdHRlbi4gVGhpcyBwb2ludGVyIGNhbiBiZSBcYyBOVUxMIGlmIGBpbGVuID09IDBgLgotICogXHBhcmFtIHRhZyAgICAgICBUaGUgYnVmZmVyIHRvIHdoZXJlIHRoZSBjb21wdXRlZCAxMjgtYml0ICgxNiBieXRlcykgTUFDCi0gKiAgICAgICAgICAgICAgICAgIGlzIHdyaXR0ZW4uIFRoaXMgbXVzdCBub3QgYmUgXGMgTlVMTC4KLSAqCi0gKiBccmV0dXJuICAgICAgICAgIFxjIDAgb24gc3VjY2Vzcy4KLSAqIFxyZXR1cm4gICAgICAgICAgQSBuZWdhdGl2ZSBlcnJvciBjb2RlIG9uIGZhaWx1cmUuCi0gKi8KLWludCBtYmVkdGxzX2NoYWNoYXBvbHlfZW5jcnlwdF9hbmRfdGFnKG1iZWR0bHNfY2hhY2hhcG9seV9jb250ZXh0ICpjdHgsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgbGVuZ3RoLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdW5zaWduZWQgY2hhciBub25jZVsxMl0sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1bnNpZ25lZCBjaGFyICphYWQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgYWFkX2xlbiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgKmlucHV0LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgY2hhciAqb3V0cHV0LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgY2hhciB0YWdbMTZdKTsKLQotLyoqCi0gKiBcYnJpZWYgICAgICAgICAgIFRoaXMgZnVuY3Rpb24gcGVyZm9ybXMgYSBjb21wbGV0ZSBDaGFDaGEyMC1Qb2x5MTMwNQotICogICAgICAgICAgICAgICAgICBhdXRoZW50aWNhdGVkIGRlY3J5cHRpb24gd2l0aCB0aGUgcHJldmlvdXNseS1zZXQga2V5LgotICoKLSAqIFxub3RlICAgICAgICAgICAgQmVmb3JlIHVzaW5nIHRoaXMgZnVuY3Rpb24sIHlvdSBtdXN0IHNldCB0aGUga2V5IHdpdGgKLSAqICAgICAgICAgICAgICAgICAgXGMgbWJlZHRsc19jaGFjaGFwb2x5X3NldGtleSgpLgotICoKLSAqIFxwYXJhbSBjdHggICAgICAgVGhlIENoYUNoYTIwLVBvbHkxMzA1IGNvbnRleHQgdG8gdXNlIChob2xkcyB0aGUga2V5KS4KLSAqIFxwYXJhbSBsZW5ndGggICAgVGhlIGxlbmd0aCAoaW4gQnl0ZXMpIG9mIHRoZSBkYXRhIHRvIGRlY3J5cHQuCi0gKiBccGFyYW0gbm9uY2UgICAgIFRoZSBcYyA5NiBCaXQgKFxjIDEyIGJ5dGVzKSBub25jZS9JViB0byB1c2UuCi0gKiBccGFyYW0gYWFkICAgICAgIFRoZSBidWZmZXIgY29udGFpbmluZyB0aGUgYWRkaXRpb25hbCBhdXRoZW50aWNhdGVkIGRhdGEgKEFBRCkuCi0gKiAgICAgICAgICAgICAgICAgIFRoaXMgcG9pbnRlciBjYW4gYmUgXGMgTlVMTCBpZiBgYWFkX2xlbiA9PSAwYC4KLSAqIFxwYXJhbSBhYWRfbGVuICAgVGhlIGxlbmd0aCAoaW4gYnl0ZXMpIG9mIHRoZSBBQUQgZGF0YSB0byBwcm9jZXNzLgotICogXHBhcmFtIHRhZyAgICAgICBUaGUgYnVmZmVyIGhvbGRpbmcgdGhlIGF1dGhlbnRpY2F0aW9uIHRhZy4KLSAqICAgICAgICAgICAgICAgICAgVGhpcyBtdXN0IGJlIGEgcmVhZGFibGUgYnVmZmVyIG9mIGxlbmd0aCBcYyAxNiBCeXRlcy4KLSAqIFxwYXJhbSBpbnB1dCAgICAgVGhlIGJ1ZmZlciBjb250YWluaW5nIHRoZSBkYXRhIHRvIGRlY3J5cHQuCi0gKiAgICAgICAgICAgICAgICAgIFRoaXMgcG9pbnRlciBjYW4gYmUgXGMgTlVMTCBpZiBgaWxlbiA9PSAwYC4KLSAqIFxwYXJhbSBvdXRwdXQgICAgVGhlIGJ1ZmZlciB0byB3aGVyZSB0aGUgZGVjcnlwdGVkIGRhdGEgaXMgd3JpdHRlbi4KLSAqICAgICAgICAgICAgICAgICAgVGhpcyBwb2ludGVyIGNhbiBiZSBcYyBOVUxMIGlmIGBpbGVuID09IDBgLgotICoKLSAqIFxyZXR1cm4gICAgICAgICAgXGMgMCBvbiBzdWNjZXNzLgotICogXHJldHVybiAgICAgICAgICAjTUJFRFRMU19FUlJfQ0hBQ0hBUE9MWV9BVVRIX0ZBSUxFRAotICogICAgICAgICAgICAgICAgICBpZiB0aGUgZGF0YSB3YXMgbm90IGF1dGhlbnRpYy4KLSAqIFxyZXR1cm4gICAgICAgICAgQW5vdGhlciBuZWdhdGl2ZSBlcnJvciBjb2RlIG9uIG90aGVyIGtpbmRzIG9mIGZhaWx1cmUuCi0gKi8KLWludCBtYmVkdGxzX2NoYWNoYXBvbHlfYXV0aF9kZWNyeXB0KG1iZWR0bHNfY2hhY2hhcG9seV9jb250ZXh0ICpjdHgsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgbGVuZ3RoLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdW5zaWduZWQgY2hhciBub25jZVsxMl0sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1bnNpZ25lZCBjaGFyICphYWQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgYWFkX2xlbiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgdGFnWzE2XSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgKmlucHV0LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgY2hhciAqb3V0cHV0KTsKLQotI2lmIGRlZmluZWQoTUJFRFRMU19TRUxGX1RFU1QpCi0vKioKLSAqIFxicmllZiAgICAgICAgICAgVGhlIENoYUNoYTIwLVBvbHkxMzA1IGNoZWNrdXAgcm91dGluZS4KLSAqCi0gKiBccmV0dXJuICAgICAgICAgIFxjIDAgb24gc3VjY2Vzcy4KLSAqIFxyZXR1cm4gICAgICAgICAgXGMgMSBvbiBmYWlsdXJlLgotICovCi1pbnQgbWJlZHRsc19jaGFjaGFwb2x5X3NlbGZfdGVzdChpbnQgdmVyYm9zZSk7Ci0jZW5kaWYgLyogTUJFRFRMU19TRUxGX1RFU1QgKi8KLQotI2lmZGVmIF9fY3BsdXNwbHVzCi19Ci0jZW5kaWYKLQotI2VuZGlmIC8qIE1CRURUTFNfQ0hBQ0hBUE9MWV9IICovCmRpZmYgLS1naXQgYS9pbmNsdWRlL21iZWR0bHMvY2hlY2tfY29uZmlnLmggYi9pbmNsdWRlL21iZWR0bHMvY2hlY2tfY29uZmlnLmgKaW5kZXggNjdhMDVmOC4uMjY3MzIyOSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9tYmVkdGxzL2NoZWNrX2NvbmZpZy5oCisrKyBiL2luY2x1ZGUvbWJlZHRscy9jaGVja19jb25maWcuaApAQCAtMTg5LDkgKzE4OSw3IEBACiAgICAgICBkZWZpbmVkKE1CRURUTFNfRUNESF9HRU5fUFVCTElDX0FMVCkgICAgIHx8IFwKICAgICAgIGRlZmluZWQoTUJFRFRMU19FQ0RTQV9TSUdOX0FMVCkgICAgICAgICAgfHwgXAogICAgICAgZGVmaW5lZChNQkVEVExTX0VDRFNBX1ZFUklGWV9BTFQpICAgICAgICB8fCBcCi0gICAgICBkZWZpbmVkKE1CRURUTFNfRUNEU0FfR0VOS0VZX0FMVCkgICAgICAgIHx8IFwKLSAgICAgIGRlZmluZWQoTUJFRFRMU19FQ1BfSU5URVJOQUxfQUxUKSAgICAgICAgfHwgXAotICAgICAgZGVmaW5lZChNQkVEVExTX0VDUF9BTFQpICkKKyAgICAgIGRlZmluZWQoTUJFRFRMU19FQ0RTQV9HRU5LRVlfQUxUKSApCiAjZXJyb3IgIk1CRURUTFNfRUNQX1JFU1RBUlRBQkxFIGRlZmluZWQsIGJ1dCBpdCBjYW5ub3QgY29leGlzdCB3aXRoIGFuIGFsdGVybmF0aXZlIEVDUCBpbXBsZW1lbnRhdGlvbiIKICNlbmRpZgogCkBAIC0yNjksNDIgKzI2Nyw2IEBACiAjZXJyb3IgIk1CRURUTFNfQ0hBQ0hBUE9MWV9DIGRlZmluZWQsIGJ1dCBub3QgYWxsIHByZXJlcXVpc2l0ZXMiCiAjZW5kaWYKIAotI2lmIGRlZmluZWQoTUJFRFRMU19FQ1BfUkFORE9NSVpFX0pBQ19BTFQpICYmICFkZWZpbmVkKE1CRURUTFNfRUNQX0lOVEVSTkFMX0FMVCkKLSNlcnJvciAiTUJFRFRMU19FQ1BfUkFORE9NSVpFX0pBQ19BTFQgZGVmaW5lZCwgYnV0IG5vdCBhbGwgcHJlcmVxdWlzaXRlcyIKLSNlbmRpZgotCi0jaWYgZGVmaW5lZChNQkVEVExTX0VDUF9BRERfTUlYRURfQUxUKSAmJiAhZGVmaW5lZChNQkVEVExTX0VDUF9JTlRFUk5BTF9BTFQpCi0jZXJyb3IgIk1CRURUTFNfRUNQX0FERF9NSVhFRF9BTFQgZGVmaW5lZCwgYnV0IG5vdCBhbGwgcHJlcmVxdWlzaXRlcyIKLSNlbmRpZgotCi0jaWYgZGVmaW5lZChNQkVEVExTX0VDUF9ET1VCTEVfSkFDX0FMVCkgJiYgIWRlZmluZWQoTUJFRFRMU19FQ1BfSU5URVJOQUxfQUxUKQotI2Vycm9yICJNQkVEVExTX0VDUF9ET1VCTEVfSkFDX0FMVCBkZWZpbmVkLCBidXQgbm90IGFsbCBwcmVyZXF1aXNpdGVzIgotI2VuZGlmCi0KLSNpZiBkZWZpbmVkKE1CRURUTFNfRUNQX05PUk1BTElaRV9KQUNfTUFOWV9BTFQpICYmICFkZWZpbmVkKE1CRURUTFNfRUNQX0lOVEVSTkFMX0FMVCkKLSNlcnJvciAiTUJFRFRMU19FQ1BfTk9STUFMSVpFX0pBQ19NQU5ZX0FMVCBkZWZpbmVkLCBidXQgbm90IGFsbCBwcmVyZXF1aXNpdGVzIgotI2VuZGlmCi0KLSNpZiBkZWZpbmVkKE1CRURUTFNfRUNQX05PUk1BTElaRV9KQUNfQUxUKSAmJiAhZGVmaW5lZChNQkVEVExTX0VDUF9JTlRFUk5BTF9BTFQpCi0jZXJyb3IgIk1CRURUTFNfRUNQX05PUk1BTElaRV9KQUNfQUxUIGRlZmluZWQsIGJ1dCBub3QgYWxsIHByZXJlcXVpc2l0ZXMiCi0jZW5kaWYKLQotI2lmIGRlZmluZWQoTUJFRFRMU19FQ1BfRE9VQkxFX0FERF9NWFpfQUxUKSAmJiAhZGVmaW5lZChNQkVEVExTX0VDUF9JTlRFUk5BTF9BTFQpCi0jZXJyb3IgIk1CRURUTFNfRUNQX0RPVUJMRV9BRERfTVhaX0FMVCBkZWZpbmVkLCBidXQgbm90IGFsbCBwcmVyZXF1aXNpdGVzIgotI2VuZGlmCi0KLSNpZiBkZWZpbmVkKE1CRURUTFNfRUNQX1JBTkRPTUlaRV9NWFpfQUxUKSAmJiAhZGVmaW5lZChNQkVEVExTX0VDUF9JTlRFUk5BTF9BTFQpCi0jZXJyb3IgIk1CRURUTFNfRUNQX1JBTkRPTUlaRV9NWFpfQUxUIGRlZmluZWQsIGJ1dCBub3QgYWxsIHByZXJlcXVpc2l0ZXMiCi0jZW5kaWYKLQotI2lmIGRlZmluZWQoTUJFRFRMU19FQ1BfTk9STUFMSVpFX01YWl9BTFQpICYmICFkZWZpbmVkKE1CRURUTFNfRUNQX0lOVEVSTkFMX0FMVCkKLSNlcnJvciAiTUJFRFRMU19FQ1BfTk9STUFMSVpFX01YWl9BTFQgZGVmaW5lZCwgYnV0IG5vdCBhbGwgcHJlcmVxdWlzaXRlcyIKLSNlbmRpZgotCi0jaWYgZGVmaW5lZChNQkVEVExTX0VDUF9OT19GQUxMQkFDSykgJiYgIWRlZmluZWQoTUJFRFRMU19FQ1BfSU5URVJOQUxfQUxUKQotI2Vycm9yICJNQkVEVExTX0VDUF9OT19GQUxMQkFDSyBkZWZpbmVkLCBidXQgbm8gYWx0ZXJuYXRpdmUgaW1wbGVtZW50YXRpb24gZW5hYmxlZCIKLSNlbmRpZgotCiAjaWYgZGVmaW5lZChNQkVEVExTX0hLREZfQykgJiYgIWRlZmluZWQoTUJFRFRMU19NRF9DKQogI2Vycm9yICJNQkVEVExTX0hLREZfQyBkZWZpbmVkLCBidXQgbm90IGFsbCBwcmVyZXF1aXNpdGVzIgogI2VuZGlmCkBAIC03NjgsOCArNzMwLDggQEAKICNpZiAhZGVmaW5lZChNQkVEVExTX1NIQTUxMl9DKQogI2Vycm9yICJNQkVEVExTX1NIQTUxMl9VU0VfQTY0X0NSWVBUT18qIGRlZmluZWQgd2l0aG91dCBNQkVEVExTX1NIQTUxMl9DIgogI2VuZGlmCi0jaWYgZGVmaW5lZChNQkVEVExTX1NIQTUxMl9BTFQpIHx8IGRlZmluZWQoTUJFRFRMU19TSEE1MTJfUFJPQ0VTU19BTFQpCi0jZXJyb3IgIk1CRURUTFNfU0hBNTEyXypBTFQgY2FuJ3QgYmUgdXNlZCB3aXRoIE1CRURUTFNfU0hBNTEyX1VTRV9BNjRfQ1JZUFRPXyoiCisjaWYgZGVmaW5lZChNQkVEVExTX1NIQTUxMl9QUk9DRVNTX0FMVCkKKyNlcnJvciAiTUJFRFRMU19TSEE1MTJfUFJPQ0VTU19BTFQgY2FuJ3QgYmUgdXNlZCB3aXRoIE1CRURUTFNfU0hBNTEyX1VTRV9BNjRfQ1JZUFRPXyoiCiAjZW5kaWYKIAogI2VuZGlmIC8qIE1CRURUTFNfU0hBNTEyX1VTRV9BNjRfQ1JZUFRPX0lGX1BSRVNFTlQgfHwgTUJFRFRMU19TSEE1MTJfVVNFX0E2NF9DUllQVE9fT05MWSAqLwpAQCAtNzg4LDggKzc1MCw4IEBACiAjaWYgIWRlZmluZWQoTUJFRFRMU19TSEEyNTZfQykKICNlcnJvciAiTUJFRFRMU19TSEEyNTZfVVNFX0FSTVY4X0FfQ1JZUFRPXyogZGVmaW5lZCB3aXRob3V0IE1CRURUTFNfU0hBMjU2X0MiCiAjZW5kaWYKLSNpZiBkZWZpbmVkKE1CRURUTFNfU0hBMjU2X0FMVCkgfHwgZGVmaW5lZChNQkVEVExTX1NIQTI1Nl9QUk9DRVNTX0FMVCkKLSNlcnJvciAiTUJFRFRMU19TSEEyNTZfKkFMVCBjYW4ndCBiZSB1c2VkIHdpdGggTUJFRFRMU19TSEEyNTZfVVNFX0FSTVY4X0FfQ1JZUFRPXyoiCisjaWYgZGVmaW5lZChNQkVEVExTX1NIQTI1Nl9QUk9DRVNTX0FMVCkKKyNlcnJvciAiTUJFRFRMU19TSEEyNTZfUFJPQ0VTU19BTFQgY2FuJ3QgYmUgdXNlZCB3aXRoIE1CRURUTFNfU0hBMjU2X1VTRV9BUk1WOF9BX0NSWVBUT18qIgogI2VuZGlmCiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9tYmVkdGxzL2NtYWMuaCBiL2luY2x1ZGUvbWJlZHRscy9jbWFjLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDk3Yjg2ZmMuLjAwMDAwMDAKLS0tIGEvaW5jbHVkZS9tYmVkdGxzL2NtYWMuaAorKysgL2Rldi9udWxsCkBAIC0xLDI0NiArMCwwIEBACi0vKioKLSAqIFxmaWxlIGNtYWMuaAotICoKLSAqIFxicmllZiBUaGlzIGZpbGUgY29udGFpbnMgQ01BQyBkZWZpbml0aW9ucyBhbmQgZnVuY3Rpb25zLgotICoKLSAqIFRoZSBDaXBoZXItYmFzZWQgTWVzc2FnZSBBdXRoZW50aWNhdGlvbiBDb2RlIChDTUFDKSBNb2RlIGZvcgotICogQXV0aGVudGljYXRpb24gaXMgZGVmaW5lZCBpbiA8ZW0+UkZDLTQ0OTM6IFRoZSBBRVMtQ01BQyBBbGdvcml0aG08L2VtPi4KLSAqIEl0IGlzIHN1cHBvcnRlZCB3aXRoIEFFUyBhbmQgREVTLgotICovCi0vKgotICogIENvcHlyaWdodCBUaGUgTWJlZCBUTFMgQ29udHJpYnV0b3JzCi0gKiAgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjAgT1IgR1BMLTIuMC1vci1sYXRlcgotICovCi0KLSNpZm5kZWYgTUJFRFRMU19DTUFDX0gKLSNkZWZpbmUgTUJFRFRMU19DTUFDX0gKLSNpbmNsdWRlICJtYmVkdGxzL3ByaXZhdGVfYWNjZXNzLmgiCi0KLSNpbmNsdWRlICJtYmVkdGxzL2J1aWxkX2luZm8uaCIKLQotI2luY2x1ZGUgIm1iZWR0bHMvY2lwaGVyLmgiCi0KLSNpZmRlZiBfX2NwbHVzcGx1cwotZXh0ZXJuICJDIiB7Ci0jZW5kaWYKLQotI2RlZmluZSBNQkVEVExTX0FFU19CTE9DS19TSVpFICAgICAgICAgIDE2Ci0jZGVmaW5lIE1CRURUTFNfREVTM19CTE9DS19TSVpFICAgICAgICAgOAotCi0vKiBXZSBkb24ndCBzdXBwb3J0IENhbWVsbGlhIG9yIEFSSUEgaW4gdGhpcyBtb2R1bGUgKi8KLSNpZiBkZWZpbmVkKE1CRURUTFNfQUVTX0MpCi0jZGVmaW5lIE1CRURUTFNfQ01BQ19NQVhfQkxPQ0tfU0laRSAgICAgIDE2ICAvKio8IFRoZSBsb25nZXN0IGJsb2NrIHVzZWQgYnkgQ01BQyBpcyB0aGF0IG9mIEFFUy4gKi8KLSNlbHNlCi0jZGVmaW5lIE1CRURUTFNfQ01BQ19NQVhfQkxPQ0tfU0laRSAgICAgIDggICAvKio8IFRoZSBsb25nZXN0IGJsb2NrIHVzZWQgYnkgQ01BQyBpcyB0aGF0IG9mIDNERVMuICovCi0jZW5kaWYKLQotI2lmICFkZWZpbmVkKE1CRURUTFNfREVQUkVDQVRFRF9SRU1PVkVEKQotLyoqIFRoZSBsb25nZXN0IGJsb2NrIHN1cHBvcnRlZCBieSB0aGUgY2lwaGVyIG1vZHVsZS4KLSAqCi0gKiBcZGVwcmVjYXRlZAotICogRm9yIHRoZSBtYXhpbXVtIGJsb2NrIHNpemUgb2YgYSBjaXBoZXIgc3VwcG9ydGVkIGJ5IHRoZSBDTUFDIG1vZHVsZSwKLSAqIHVzZSAjTUJFRFRMU19DTUFDX01BWF9CTE9DS19TSVpFLgotICogRm9yIHRoZSBtYXhpbXVtIGJsb2NrIHNpemUgb2YgYSBjaXBoZXIgc3VwcG9ydGVkIGJ5IHRoZSBjaXBoZXIgbW9kdWxlLAotICogdXNlICNNQkVEVExTX01BWF9CTE9DS19MRU5HVEguCi0gKi8KLS8qIEJlZm9yZSBNYmVkIFRMUyAzLjUsIHRoaXMgd2FzIHRoZSBtYXhpbXVtIGJsb2NrIHNpemUgc3VwcG9ydGVkIGJ5IHRoZSBDTUFDCi0gKiBtb2R1bGUsIHNvIGl0IGRpZG4ndCB0YWtlIENhbWVsbGlhIG9yIEFSSUEgaW50byBhY2NvdW50LiBTaW5jZSB0aGUgbmFtZQotICogb2YgdGhlIG1hY3JvIGRvZXNuJ3QgZXZlbiBjb252ZXkgIkNNQUMiLCB0aGlzIHdhcyBtaXNsZWFkaW5nLiBOb3cgdGhlIHNpemUKLSAqIGlzIHN1ZmZpY2llbnQgZm9yIGFueSBjaXBoZXIsIGJ1dCB0aGUgbmFtZSBpcyBkZWZpbmVkIGluIGNtYWMuaCBmb3IKLSAqIGJhY2t3YXJkIGNvbXBhdGliaWxpdHkuICovCi0jZGVmaW5lIE1CRURUTFNfQ0lQSEVSX0JMS1NJWkVfTUFYIE1CRURUTFNfTUFYX0JMT0NLX0xFTkdUSAotI2VuZGlmIC8qIE1CRURUTFNfREVQUkVDQVRFRF9SRU1PVkVEICovCi0KLSNpZiAhZGVmaW5lZChNQkVEVExTX0NNQUNfQUxUKQotCi0vKioKLSAqIFRoZSBDTUFDIGNvbnRleHQgc3RydWN0dXJlLgotICovCi1zdHJ1Y3QgbWJlZHRsc19jbWFjX2NvbnRleHRfdCB7Ci0gICAgLyoqIFRoZSBpbnRlcm5hbCBzdGF0ZSBvZiB0aGUgQ01BQyBhbGdvcml0aG0uICAqLwotICAgIHVuc2lnbmVkIGNoYXIgICAgICAgTUJFRFRMU19QUklWQVRFKHN0YXRlKVtNQkVEVExTX0NNQUNfTUFYX0JMT0NLX1NJWkVdOwotCi0gICAgLyoqIFVucHJvY2Vzc2VkIGRhdGEgLSBlaXRoZXIgZGF0YSB0aGF0IHdhcyBub3QgYmxvY2sgYWxpZ25lZCBhbmQgaXMgc3RpbGwKLSAgICAgKiAgcGVuZGluZyBwcm9jZXNzaW5nLCBvciB0aGUgZmluYWwgYmxvY2suICovCi0gICAgdW5zaWduZWQgY2hhciAgICAgICBNQkVEVExTX1BSSVZBVEUodW5wcm9jZXNzZWRfYmxvY2spW01CRURUTFNfQ01BQ19NQVhfQkxPQ0tfU0laRV07Ci0KLSAgICAvKiogVGhlIGxlbmd0aCBvZiBkYXRhIHBlbmRpbmcgcHJvY2Vzc2luZy4gKi8KLSAgICBzaXplX3QgICAgICAgICAgICAgIE1CRURUTFNfUFJJVkFURSh1bnByb2Nlc3NlZF9sZW4pOwotfTsKLQotI2Vsc2UgIC8qICFNQkVEVExTX0NNQUNfQUxUICovCi0jaW5jbHVkZSAiY21hY19hbHQuaCIKLSNlbmRpZiAvKiAhTUJFRFRMU19DTUFDX0FMVCAqLwotCi0vKioKLSAqIFxicmllZiAgICAgICAgICAgICAgIFRoaXMgZnVuY3Rpb24gc3RhcnRzIGEgbmV3IENNQUMgY29tcHV0YXRpb24KLSAqICAgICAgICAgICAgICAgICAgICAgIGJ5IHNldHRpbmcgdGhlIENNQUMga2V5LCBhbmQgcHJlcGFyaW5nIHRvIGF1dGhlbnRpY2F0ZQotICogICAgICAgICAgICAgICAgICAgICAgdGhlIGlucHV0IGRhdGEuCi0gKiAgICAgICAgICAgICAgICAgICAgICBJdCBtdXN0IGJlIGNhbGxlZCB3aXRoIGFuIGluaXRpYWxpemVkIGNpcGhlciBjb250ZXh0LgotICoKLSAqICAgICAgICAgICAgICAgICAgICAgIE9uY2UgdGhpcyBmdW5jdGlvbiBoYXMgY29tcGxldGVkLCBkYXRhIGNhbiBiZSBzdXBwbGllZAotICogICAgICAgICAgICAgICAgICAgICAgdG8gdGhlIENNQUMgY29tcHV0YXRpb24gYnkgY2FsbGluZwotICogICAgICAgICAgICAgICAgICAgICAgbWJlZHRsc19jaXBoZXJfY21hY191cGRhdGUoKS4KLSAqCi0gKiAgICAgICAgICAgICAgICAgICAgICBUbyBzdGFydCBhIENNQUMgY29tcHV0YXRpb24gdXNpbmcgdGhlIHNhbWUga2V5IGFzIGEgcHJldmlvdXMKLSAqICAgICAgICAgICAgICAgICAgICAgIENNQUMgY29tcHV0YXRpb24sIHVzZSBtYmVkdGxzX2NpcGhlcl9jbWFjX2ZpbmlzaCgpLgotICoKLSAqIFxub3RlICAgICAgICAgICAgICAgIFdoZW4gdGhlIENNQUMgaW1wbGVtZW50YXRpb24gaXMgc3VwcGxpZWQgYnkgYW4gYWx0ZXJuYXRlCi0gKiAgICAgICAgICAgICAgICAgICAgICBpbXBsZW1lbnRhdGlvbiAodGhyb3VnaCAjTUJFRFRMU19DTUFDX0FMVCksIHNvbWUgY2lwaGVycwotICogICAgICAgICAgICAgICAgICAgICAgbWF5IG5vdCBiZSBzdXBwb3J0ZWQgYnkgdGhhdCBpbXBsZW1lbnRhdGlvbiwgYW5kIHRodXMKLSAqICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBhbiBlcnJvci4gQWx0ZXJuYXRlIGltcGxlbWVudGF0aW9ucyBtdXN0IHN1cHBvcnQKLSAqICAgICAgICAgICAgICAgICAgICAgIEFFUy0xMjggYW5kIEFFUy0yNTYsIGFuZCBtYXkgc3VwcG9ydCBBRVMtMTkyIGFuZCAzREVTLgotICoKLSAqIFxwYXJhbSBjdHggICAgICAgICAgIFRoZSBjaXBoZXIgY29udGV4dCB1c2VkIGZvciB0aGUgQ01BQyBvcGVyYXRpb24sIGluaXRpYWxpemVkCi0gKiAgICAgICAgICAgICAgICAgICAgICBhcyBvbmUgb2YgdGhlIGZvbGxvd2luZyB0eXBlczogTUJFRFRMU19DSVBIRVJfQUVTXzEyOF9FQ0IsCi0gKiAgICAgICAgICAgICAgICAgICAgICBNQkVEVExTX0NJUEhFUl9BRVNfMTkyX0VDQiwgTUJFRFRMU19DSVBIRVJfQUVTXzI1Nl9FQ0IsCi0gKiAgICAgICAgICAgICAgICAgICAgICBvciBNQkVEVExTX0NJUEhFUl9ERVNfRURFM19FQ0IuCi0gKiBccGFyYW0ga2V5ICAgICAgICAgICBUaGUgQ01BQyBrZXkuCi0gKiBccGFyYW0ga2V5Yml0cyAgICAgICBUaGUgbGVuZ3RoIG9mIHRoZSBDTUFDIGtleSBpbiBiaXRzLgotICogICAgICAgICAgICAgICAgICAgICAgTXVzdCBiZSBzdXBwb3J0ZWQgYnkgdGhlIGNpcGhlci4KLSAqCi0gKiBccmV0dXJuICAgICAgICAgICAgICBcYyAwIG9uIHN1Y2Nlc3MuCi0gKiBccmV0dXJuICAgICAgICAgICAgICBBIGNpcGhlci1zcGVjaWZpYyBlcnJvciBjb2RlIG9uIGZhaWx1cmUuCi0gKi8KLWludCBtYmVkdGxzX2NpcGhlcl9jbWFjX3N0YXJ0cyhtYmVkdGxzX2NpcGhlcl9jb250ZXh0X3QgKmN0eCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1bnNpZ25lZCBjaGFyICprZXksIHNpemVfdCBrZXliaXRzKTsKLQotLyoqCi0gKiBcYnJpZWYgICAgICAgICAgICAgICBUaGlzIGZ1bmN0aW9uIGZlZWRzIGFuIGlucHV0IGJ1ZmZlciBpbnRvIGFuIG9uZ29pbmcgQ01BQwotICogICAgICAgICAgICAgICAgICAgICAgY29tcHV0YXRpb24uCi0gKgotICogICAgICAgICAgICAgICAgICAgICAgVGhlIENNQUMgY29tcHV0YXRpb24gbXVzdCBoYXZlIHByZXZpb3VzbHkgYmVlbiBzdGFydGVkCi0gKiAgICAgICAgICAgICAgICAgICAgICBieSBjYWxsaW5nIG1iZWR0bHNfY2lwaGVyX2NtYWNfc3RhcnRzKCkgb3IKLSAqICAgICAgICAgICAgICAgICAgICAgIG1iZWR0bHNfY2lwaGVyX2NtYWNfcmVzZXQoKS4KLSAqCi0gKiAgICAgICAgICAgICAgICAgICAgICBDYWxsIHRoaXMgZnVuY3Rpb24gYXMgbWFueSB0aW1lcyBhcyBuZWVkZWQgdG8gaW5wdXQgdGhlCi0gKiAgICAgICAgICAgICAgICAgICAgICBkYXRhIHRvIGJlIGF1dGhlbnRpY2F0ZWQuCi0gKiAgICAgICAgICAgICAgICAgICAgICBPbmNlIGFsbCBvZiB0aGUgcmVxdWlyZWQgZGF0YSBoYXMgYmVlbiBpbnB1dCwKLSAqICAgICAgICAgICAgICAgICAgICAgIGNhbGwgbWJlZHRsc19jaXBoZXJfY21hY19maW5pc2goKSB0byBvYnRhaW4gdGhlIHJlc3VsdAotICogICAgICAgICAgICAgICAgICAgICAgb2YgdGhlIENNQUMgb3BlcmF0aW9uLgotICoKLSAqIFxwYXJhbSBjdHggICAgICAgICAgIFRoZSBjaXBoZXIgY29udGV4dCB1c2VkIGZvciB0aGUgQ01BQyBvcGVyYXRpb24uCi0gKiBccGFyYW0gaW5wdXQgICAgICAgICBUaGUgYnVmZmVyIGhvbGRpbmcgdGhlIGlucHV0IGRhdGEuCi0gKiBccGFyYW0gaWxlbiAgICAgICAgICBUaGUgbGVuZ3RoIG9mIHRoZSBpbnB1dCBkYXRhLgotICoKLSAqIFxyZXR1cm4gICAgICAgICAgICAgXGMgMCBvbiBzdWNjZXNzLgotICogXHJldHVybiAgICAgICAgICAgICAjTUJFRFRMU19FUlJfTURfQkFEX0lOUFVUX0RBVEEKLSAqICAgICAgICAgICAgICAgICAgICAgaWYgcGFyYW1ldGVyIHZlcmlmaWNhdGlvbiBmYWlscy4KLSAqLwotaW50IG1iZWR0bHNfY2lwaGVyX2NtYWNfdXBkYXRlKG1iZWR0bHNfY2lwaGVyX2NvbnRleHRfdCAqY3R4LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgKmlucHV0LCBzaXplX3QgaWxlbik7Ci0KLS8qKgotICogXGJyaWVmICAgICAgICAgICAgICAgVGhpcyBmdW5jdGlvbiBmaW5pc2hlcyBhbiBvbmdvaW5nIENNQUMgb3BlcmF0aW9uLCBhbmQKLSAqICAgICAgICAgICAgICAgICAgICAgIHdyaXRlcyB0aGUgcmVzdWx0IHRvIHRoZSBvdXRwdXQgYnVmZmVyLgotICoKLSAqICAgICAgICAgICAgICAgICAgICAgIEl0IHNob3VsZCBiZSBmb2xsb3dlZCBlaXRoZXIgYnkKLSAqICAgICAgICAgICAgICAgICAgICAgIG1iZWR0bHNfY2lwaGVyX2NtYWNfcmVzZXQoKSwgd2hpY2ggc3RhcnRzIGFub3RoZXIgQ01BQwotICogICAgICAgICAgICAgICAgICAgICAgb3BlcmF0aW9uIHdpdGggdGhlIHNhbWUga2V5LCBvciBtYmVkdGxzX2NpcGhlcl9mcmVlKCksCi0gKiAgICAgICAgICAgICAgICAgICAgICB3aGljaCBjbGVhcnMgdGhlIGNpcGhlciBjb250ZXh0LgotICoKLSAqIFxwYXJhbSBjdHggICAgICAgICAgIFRoZSBjaXBoZXIgY29udGV4dCB1c2VkIGZvciB0aGUgQ01BQyBvcGVyYXRpb24uCi0gKiBccGFyYW0gb3V0cHV0ICAgICAgICBUaGUgb3V0cHV0IGJ1ZmZlciBmb3IgdGhlIENNQUMgY2hlY2tzdW0gcmVzdWx0LgotICoKLSAqIFxyZXR1cm4gICAgICAgICAgICAgIFxjIDAgb24gc3VjY2Vzcy4KLSAqIFxyZXR1cm4gICAgICAgICAgICAgICNNQkVEVExTX0VSUl9NRF9CQURfSU5QVVRfREFUQQotICogICAgICAgICAgICAgICAgICAgICAgaWYgcGFyYW1ldGVyIHZlcmlmaWNhdGlvbiBmYWlscy4KLSAqLwotaW50IG1iZWR0bHNfY2lwaGVyX2NtYWNfZmluaXNoKG1iZWR0bHNfY2lwaGVyX2NvbnRleHRfdCAqY3R4LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGNoYXIgKm91dHB1dCk7Ci0KLS8qKgotICogXGJyaWVmICAgICAgICAgICAgICAgVGhpcyBmdW5jdGlvbiBzdGFydHMgYSBuZXcgQ01BQyBvcGVyYXRpb24gd2l0aCB0aGUgc2FtZQotICogICAgICAgICAgICAgICAgICAgICAga2V5IGFzIHRoZSBwcmV2aW91cyBvbmUuCi0gKgotICogICAgICAgICAgICAgICAgICAgICAgSXQgc2hvdWxkIGJlIGNhbGxlZCBhZnRlciBmaW5pc2hpbmcgdGhlIHByZXZpb3VzIENNQUMKLSAqICAgICAgICAgICAgICAgICAgICAgIG9wZXJhdGlvbiB3aXRoIG1iZWR0bHNfY2lwaGVyX2NtYWNfZmluaXNoKCkuCi0gKiAgICAgICAgICAgICAgICAgICAgICBBZnRlciBjYWxsaW5nIHRoaXMgZnVuY3Rpb24sCi0gKiAgICAgICAgICAgICAgICAgICAgICBjYWxsIG1iZWR0bHNfY2lwaGVyX2NtYWNfdXBkYXRlKCkgdG8gc3VwcGx5IHRoZSBuZXcKLSAqICAgICAgICAgICAgICAgICAgICAgIENNQUMgb3BlcmF0aW9uIHdpdGggZGF0YS4KLSAqCi0gKiBccGFyYW0gY3R4ICAgICAgICAgICBUaGUgY2lwaGVyIGNvbnRleHQgdXNlZCBmb3IgdGhlIENNQUMgb3BlcmF0aW9uLgotICoKLSAqIFxyZXR1cm4gICAgICAgICAgICAgIFxjIDAgb24gc3VjY2Vzcy4KLSAqIFxyZXR1cm4gICAgICAgICAgICAgICNNQkVEVExTX0VSUl9NRF9CQURfSU5QVVRfREFUQQotICogICAgICAgICAgICAgICAgICAgICAgaWYgcGFyYW1ldGVyIHZlcmlmaWNhdGlvbiBmYWlscy4KLSAqLwotaW50IG1iZWR0bHNfY2lwaGVyX2NtYWNfcmVzZXQobWJlZHRsc19jaXBoZXJfY29udGV4dF90ICpjdHgpOwotCi0vKioKLSAqIFxicmllZiAgICAgICAgICAgICAgIFRoaXMgZnVuY3Rpb24gY2FsY3VsYXRlcyB0aGUgZnVsbCBnZW5lcmljIENNQUMKLSAqICAgICAgICAgICAgICAgICAgICAgIG9uIHRoZSBpbnB1dCBidWZmZXIgd2l0aCB0aGUgcHJvdmlkZWQga2V5LgotICoKLSAqICAgICAgICAgICAgICAgICAgICAgIFRoZSBmdW5jdGlvbiBhbGxvY2F0ZXMgdGhlIGNvbnRleHQsIHBlcmZvcm1zIHRoZQotICogICAgICAgICAgICAgICAgICAgICAgY2FsY3VsYXRpb24sIGFuZCBmcmVlcyB0aGUgY29udGV4dC4KLSAqCi0gKiAgICAgICAgICAgICAgICAgICAgICBUaGUgQ01BQyByZXN1bHQgaXMgY2FsY3VsYXRlZCBhcwotICogICAgICAgICAgICAgICAgICAgICAgb3V0cHV0ID0gZ2VuZXJpYyBDTUFDKGNtYWMga2V5LCBpbnB1dCBidWZmZXIpLgotICoKLSAqIFxub3RlICAgICAgICAgICAgICAgIFdoZW4gdGhlIENNQUMgaW1wbGVtZW50YXRpb24gaXMgc3VwcGxpZWQgYnkgYW4gYWx0ZXJuYXRlCi0gKiAgICAgICAgICAgICAgICAgICAgICBpbXBsZW1lbnRhdGlvbiAodGhyb3VnaCAjTUJFRFRMU19DTUFDX0FMVCksIHNvbWUgY2lwaGVycwotICogICAgICAgICAgICAgICAgICAgICAgbWF5IG5vdCBiZSBzdXBwb3J0ZWQgYnkgdGhhdCBpbXBsZW1lbnRhdGlvbiwgYW5kIHRodXMKLSAqICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBhbiBlcnJvci4gQWx0ZXJuYXRlIGltcGxlbWVudGF0aW9ucyBtdXN0IHN1cHBvcnQKLSAqICAgICAgICAgICAgICAgICAgICAgIEFFUy0xMjggYW5kIEFFUy0yNTYsIGFuZCBtYXkgc3VwcG9ydCBBRVMtMTkyIGFuZCAzREVTLgotICoKLSAqIFxwYXJhbSBjaXBoZXJfaW5mbyAgIFRoZSBjaXBoZXIgaW5mb3JtYXRpb24uCi0gKiBccGFyYW0ga2V5ICAgICAgICAgICBUaGUgQ01BQyBrZXkuCi0gKiBccGFyYW0ga2V5bGVuICAgICAgICBUaGUgbGVuZ3RoIG9mIHRoZSBDTUFDIGtleSBpbiBiaXRzLgotICogXHBhcmFtIGlucHV0ICAgICAgICAgVGhlIGJ1ZmZlciBob2xkaW5nIHRoZSBpbnB1dCBkYXRhLgotICogXHBhcmFtIGlsZW4gICAgICAgICAgVGhlIGxlbmd0aCBvZiB0aGUgaW5wdXQgZGF0YS4KLSAqIFxwYXJhbSBvdXRwdXQgICAgICAgIFRoZSBidWZmZXIgZm9yIHRoZSBnZW5lcmljIENNQUMgcmVzdWx0LgotICoKLSAqIFxyZXR1cm4gICAgICAgICAgICAgIFxjIDAgb24gc3VjY2Vzcy4KLSAqIFxyZXR1cm4gICAgICAgICAgICAgICNNQkVEVExTX0VSUl9NRF9CQURfSU5QVVRfREFUQQotICogICAgICAgICAgICAgICAgICAgICAgaWYgcGFyYW1ldGVyIHZlcmlmaWNhdGlvbiBmYWlscy4KLSAqLwotaW50IG1iZWR0bHNfY2lwaGVyX2NtYWMoY29uc3QgbWJlZHRsc19jaXBoZXJfaW5mb190ICpjaXBoZXJfaW5mbywKLSAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgKmtleSwgc2l6ZV90IGtleWxlbiwKLSAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgKmlucHV0LCBzaXplX3QgaWxlbiwKLSAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGNoYXIgKm91dHB1dCk7Ci0KLSNpZiBkZWZpbmVkKE1CRURUTFNfQUVTX0MpCi0vKioKLSAqIFxicmllZiAgICAgICAgICAgVGhpcyBmdW5jdGlvbiBpbXBsZW1lbnRzIHRoZSBBRVMtQ01BQy1QUkYtMTI4IHBzZXVkb3JhbmRvbQotICogICAgICAgICAgICAgICAgICBmdW5jdGlvbiwgYXMgZGVmaW5lZCBpbgotICogICAgICAgICAgICAgICAgICA8ZW0+UkZDLTQ2MTU6IFRoZSBBZHZhbmNlZCBFbmNyeXB0aW9uIFN0YW5kYXJkLUNpcGhlci1iYXNlZAotICogICAgICAgICAgICAgICAgICBNZXNzYWdlIEF1dGhlbnRpY2F0aW9uIENvZGUtUHNldWRvLVJhbmRvbSBGdW5jdGlvbi0xMjgKLSAqICAgICAgICAgICAgICAgICAgKEFFUy1DTUFDLVBSRi0xMjgpIEFsZ29yaXRobSBmb3IgdGhlIEludGVybmV0IEtleQotICogICAgICAgICAgICAgICAgICBFeGNoYW5nZSBQcm90b2NvbCAoSUtFKS48L2VtPgotICoKLSAqIFxwYXJhbSBrZXkgICAgICAgVGhlIGtleSB0byB1c2UuCi0gKiBccGFyYW0ga2V5X2xlbiAgIFRoZSBrZXkgbGVuZ3RoIGluIEJ5dGVzLgotICogXHBhcmFtIGlucHV0ICAgICBUaGUgYnVmZmVyIGhvbGRpbmcgdGhlIGlucHV0IGRhdGEuCi0gKiBccGFyYW0gaW5fbGVuICAgIFRoZSBsZW5ndGggb2YgdGhlIGlucHV0IGRhdGEgaW4gQnl0ZXMuCi0gKiBccGFyYW0gb3V0cHV0ICAgIFRoZSBidWZmZXIgaG9sZGluZyB0aGUgZ2VuZXJhdGVkIDE2IEJ5dGVzIG9mCi0gKiAgICAgICAgICAgICAgICAgIHBzZXVkb3JhbmRvbSBvdXRwdXQuCi0gKgotICogXHJldHVybiAgICAgICAgICBcYyAwIG9uIHN1Y2Nlc3MuCi0gKi8KLWludCBtYmVkdGxzX2Flc19jbWFjX3ByZl8xMjgoY29uc3QgdW5zaWduZWQgY2hhciAqa2V5LCBzaXplX3Qga2V5X2xlbiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdW5zaWduZWQgY2hhciAqaW5wdXQsIHNpemVfdCBpbl9sZW4sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGNoYXIgb3V0cHV0WzE2XSk7Ci0jZW5kaWYgLyogTUJFRFRMU19BRVNfQyAqLwotCi0jaWYgZGVmaW5lZChNQkVEVExTX1NFTEZfVEVTVCkgJiYgKGRlZmluZWQoTUJFRFRMU19BRVNfQykgfHwgZGVmaW5lZChNQkVEVExTX0RFU19DKSkKLS8qKgotICogXGJyaWVmICAgICAgICAgIFRoZSBDTUFDIGNoZWNrdXAgcm91dGluZS4KLSAqCi0gKiBcbm90ZSAgICAgICAgICAgSW4gY2FzZSB0aGUgQ01BQyByb3V0aW5lcyBhcmUgcHJvdmlkZWQgYnkgYW4gYWx0ZXJuYXRpdmUKLSAqICAgICAgICAgICAgICAgICBpbXBsZW1lbnRhdGlvbiAoaS5lLiAjTUJFRFRMU19DTUFDX0FMVCBpcyBkZWZpbmVkKSwgdGhlCi0gKiAgICAgICAgICAgICAgICAgY2hlY2t1cCByb3V0aW5lIHdpbGwgc3VjY2VlZCBldmVuIGlmIHRoZSBpbXBsZW1lbnRhdGlvbiBkb2VzCi0gKiAgICAgICAgICAgICAgICAgbm90IHN1cHBvcnQgdGhlIGxlc3Mgd2lkZWx5IHVzZWQgQUVTLTE5MiBvciAzREVTIHByaW1pdGl2ZXMuCi0gKiAgICAgICAgICAgICAgICAgVGhlIHNlbGYtdGVzdCByZXF1aXJlcyBhdCBsZWFzdCBBRVMtMTI4IGFuZCBBRVMtMjU2IHRvIGJlCi0gKiAgICAgICAgICAgICAgICAgc3VwcG9ydGVkIGJ5IHRoZSB1bmRlcmx5aW5nIGltcGxlbWVudGF0aW9uLgotICoKLSAqIFxyZXR1cm4gICAgICAgICBcYyAwIG9uIHN1Y2Nlc3MuCi0gKiBccmV0dXJuICAgICAgICAgXGMgMSBvbiBmYWlsdXJlLgotICovCi1pbnQgbWJlZHRsc19jbWFjX3NlbGZfdGVzdChpbnQgdmVyYm9zZSk7Ci0jZW5kaWYgLyogTUJFRFRMU19TRUxGX1RFU1QgJiYgKCBNQkVEVExTX0FFU19DIHx8IE1CRURUTFNfREVTX0MgKSAqLwotCi0jaWZkZWYgX19jcGx1c3BsdXMKLX0KLSNlbmRpZgotCi0jZW5kaWYgLyogTUJFRFRMU19DTUFDX0ggKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvbWJlZHRscy9jb25maWdfYWRqdXN0X2xlZ2FjeV9jcnlwdG8uaCBiL2luY2x1ZGUvbWJlZHRscy9jb25maWdfYWRqdXN0X2xlZ2FjeV9jcnlwdG8uaAppbmRleCA3ZGFmYmFlLi43YTM3NWQ4IDEwMDY0NAotLS0gYS9pbmNsdWRlL21iZWR0bHMvY29uZmlnX2FkanVzdF9sZWdhY3lfY3J5cHRvLmgKKysrIGIvaW5jbHVkZS9tYmVkdGxzL2NvbmZpZ19hZGp1c3RfbGVnYWN5X2NyeXB0by5oCkBAIC00LDcgKzQsNyBAQAogICoKICAqIFRoaXMgaXMgYW4gaW50ZXJuYWwgaGVhZGVyLiBEbyBub3QgaW5jbHVkZSBpdCBkaXJlY3RseS4KICAqCi0gKiBBdXRvbWF0aWNhbGx5IGVuYWJsZSBjZXJ0YWluIGRlcGVuZGVuY2llcy4gR2VuZXJhbGx5LCBNQkVETFRTX3h4eAorICogQXV0b21hdGljYWxseSBlbmFibGUgY2VydGFpbiBkZXBlbmRlbmNpZXMuIEdlbmVyYWxseSwgTUJFRFRMU194eHgKICAqIGNvbmZpZ3VyYXRpb25zIG5lZWQgdG8gYmUgZXhwbGljaXRseSBlbmFibGVkIGJ5IHRoZSB1c2VyOiBlbmFibGluZwogICogTUJFRFRMU194eHhfQSBidXQgbm90IE1CRURUTFNfeHh4X0Igd2hlbiBBIHJlcXVpcmVzIEIgcmVzdWx0cyBpbiBhCiAgKiBjb21waWxhdGlvbiBlcnJvci4gSG93ZXZlciwgd2UgZG8gYXV0b21hdGljYWxseSBlbmFibGUgY2VydGFpbiBvcHRpb25zCkBAIC00MzMsNyArNDMzLDcgQEAKICNkZWZpbmUgTUJFRFRMU19QU0FfVVRJTF9IQVZFX0VDRFNBCiAjZW5kaWYKIAotLyogU29tZSBpbnRlcm5hbCBoZWxwZXJzIHRvIGRldGVybWluZSB3aGljaCBrZXlzIGFyZSBhdmFpbGJsZS4gKi8KKy8qIFNvbWUgaW50ZXJuYWwgaGVscGVycyB0byBkZXRlcm1pbmUgd2hpY2gga2V5cyBhcmUgYXZhaWxhYmxlLiAqLwogI2lmICghZGVmaW5lZChNQkVEVExTX1VTRV9QU0FfQ1JZUFRPKSAmJiBkZWZpbmVkKE1CRURUTFNfQUVTX0MpKSB8fCBcCiAgICAgKGRlZmluZWQoTUJFRFRMU19VU0VfUFNBX0NSWVBUTykgJiYgZGVmaW5lZChQU0FfV0FOVF9LRVlfVFlQRV9BRVMpKQogI2RlZmluZSBNQkVEVExTX1NTTF9IQVZFX0FFUwpAQCAtNDQ3LDcgKzQ0Nyw3IEBACiAjZGVmaW5lIE1CRURUTFNfU1NMX0hBVkVfQ0FNRUxMSUEKICNlbmRpZgogCi0vKiBTb21lIGludGVybmFsIGhlbHBlcnMgdG8gZGV0ZXJtaW5lIHdoaWNoIG9wZXJhdGlvbiBtb2RlcyBhcmUgYXZhaWxibGUuICovCisvKiBTb21lIGludGVybmFsIGhlbHBlcnMgdG8gZGV0ZXJtaW5lIHdoaWNoIG9wZXJhdGlvbiBtb2RlcyBhcmUgYXZhaWxhYmxlLiAqLwogI2lmICghZGVmaW5lZChNQkVEVExTX1VTRV9QU0FfQ1JZUFRPKSAmJiBkZWZpbmVkKE1CRURUTFNfQ0lQSEVSX01PREVfQ0JDKSkgfHwgXAogICAgIChkZWZpbmVkKE1CRURUTFNfVVNFX1BTQV9DUllQVE8pICYmIGRlZmluZWQoUFNBX1dBTlRfQUxHX0NCQ19OT19QQURESU5HKSkKICNkZWZpbmUgTUJFRFRMU19TU0xfSEFWRV9DQkMKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbWJlZHRscy9jb25maWdfYWRqdXN0X3NzbC5oIGIvaW5jbHVkZS9tYmVkdGxzL2NvbmZpZ19hZGp1c3Rfc3NsLmgKaW5kZXggMzA5NTI0YS4uMWY4MmQ5YyAxMDA2NDQKLS0tIGEvaW5jbHVkZS9tYmVkdGxzL2NvbmZpZ19hZGp1c3Rfc3NsLmgKKysrIGIvaW5jbHVkZS9tYmVkdGxzL2NvbmZpZ19hZGp1c3Rfc3NsLmgKQEAgLTQsNyArNCw3IEBACiAgKgogICogVGhpcyBpcyBhbiBpbnRlcm5hbCBoZWFkZXIuIERvIG5vdCBpbmNsdWRlIGl0IGRpcmVjdGx5LgogICoKLSAqIEF1dG9tYXRpY2FsbHkgZW5hYmxlIGNlcnRhaW4gZGVwZW5kZW5jaWVzLiBHZW5lcmFsbHksIE1CRURMVFNfeHh4CisgKiBBdXRvbWF0aWNhbGx5IGVuYWJsZSBjZXJ0YWluIGRlcGVuZGVuY2llcy4gR2VuZXJhbGx5LCBNQkVEVExTX3h4eAogICogY29uZmlndXJhdGlvbnMgbmVlZCB0byBiZSBleHBsaWNpdGx5IGVuYWJsZWQgYnkgdGhlIHVzZXI6IGVuYWJsaW5nCiAgKiBNQkVEVExTX3h4eF9BIGJ1dCBub3QgTUJFRFRMU194eHhfQiB3aGVuIEEgcmVxdWlyZXMgQiByZXN1bHRzIGluIGEKICAqIGNvbXBpbGF0aW9uIGVycm9yLiBIb3dldmVyLCB3ZSBkbyBhdXRvbWF0aWNhbGx5IGVuYWJsZSBjZXJ0YWluIG9wdGlvbnMKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbWJlZHRscy9jb25maWdfYWRqdXN0X3g1MDkuaCBiL2luY2x1ZGUvbWJlZHRscy9jb25maWdfYWRqdXN0X3g1MDkuaAppbmRleCBjMDYzMjUxLi5jZmIyZDg4IDEwMDY0NAotLS0gYS9pbmNsdWRlL21iZWR0bHMvY29uZmlnX2FkanVzdF94NTA5LmgKKysrIGIvaW5jbHVkZS9tYmVkdGxzL2NvbmZpZ19hZGp1c3RfeDUwOS5oCkBAIC00LDcgKzQsNyBAQAogICoKICAqIFRoaXMgaXMgYW4gaW50ZXJuYWwgaGVhZGVyLiBEbyBub3QgaW5jbHVkZSBpdCBkaXJlY3RseS4KICAqCi0gKiBBdXRvbWF0aWNhbGx5IGVuYWJsZSBjZXJ0YWluIGRlcGVuZGVuY2llcy4gR2VuZXJhbGx5LCBNQkVETFRTX3h4eAorICogQXV0b21hdGljYWxseSBlbmFibGUgY2VydGFpbiBkZXBlbmRlbmNpZXMuIEdlbmVyYWxseSwgTUJFRFRMU194eHgKICAqIGNvbmZpZ3VyYXRpb25zIG5lZWQgdG8gYmUgZXhwbGljaXRseSBlbmFibGVkIGJ5IHRoZSB1c2VyOiBlbmFibGluZwogICogTUJFRFRMU194eHhfQSBidXQgbm90IE1CRURUTFNfeHh4X0Igd2hlbiBBIHJlcXVpcmVzIEIgcmVzdWx0cyBpbiBhCiAgKiBjb21waWxhdGlvbiBlcnJvci4gSG93ZXZlciwgd2UgZG8gYXV0b21hdGljYWxseSBlbmFibGUgY2VydGFpbiBvcHRpb25zCmRpZmYgLS1naXQgYS9pbmNsdWRlL21iZWR0bHMvY29uZmlnX3BzYS5oIGIvaW5jbHVkZS9tYmVkdGxzL2NvbmZpZ19wc2EuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZGU5NjFlYy4uMDAwMDAwMAotLS0gYS9pbmNsdWRlL21iZWR0bHMvY29uZmlnX3BzYS5oCisrKyAvZGV2L251bGwKQEAgLTEsNTcgKzAsMCBAQAotLyoqCi0gKiBcZmlsZSBtYmVkdGxzL2NvbmZpZ19wc2EuaAotICogXGJyaWVmIFBTQSBjcnlwdG8gY29uZmlndXJhdGlvbiBvcHRpb25zIChzZXQgb2YgZGVmaW5lcykKLSAqCi0gKiAgVGhpcyBzZXQgb2YgY29tcGlsZS10aW1lIG9wdGlvbnMgdGFrZXMgc2V0dGluZ3MgZGVmaW5lZCBpbgotICogIGluY2x1ZGUvbWJlZHRscy9tYmVkdGxzX2NvbmZpZy5oIGFuZCBpbmNsdWRlL3BzYS9jcnlwdG9fY29uZmlnLmggYW5kIHVzZXMKLSAqICB0aG9zZSBkZWZpbml0aW9ucyB0byBkZWZpbmUgc3ltYm9scyB1c2VkIGluIHRoZSBsaWJyYXJ5IGNvZGUuCi0gKgotICogIFVzZXJzIGFuZCBpbnRlZ3JhdG9ycyBzaG91bGQgbm90IGVkaXQgdGhpcyBmaWxlLCBwbGVhc2UgZWRpdAotICogIGluY2x1ZGUvbWJlZHRscy9tYmVkdGxzX2NvbmZpZy5oIGZvciBNQkVEVExTX1hYWCBzZXR0aW5ncyBvcgotICogIGluY2x1ZGUvcHNhL2NyeXB0b19jb25maWcuaCBmb3IgUFNBX1dBTlRfWFhYIHNldHRpbmdzLgotICovCi0vKgotICogIENvcHlyaWdodCBUaGUgTWJlZCBUTFMgQ29udHJpYnV0b3JzCi0gKiAgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjAgT1IgR1BMLTIuMC1vci1sYXRlcgotICovCi0KLSNpZm5kZWYgTUJFRFRMU19DT05GSUdfUFNBX0gKLSNkZWZpbmUgTUJFRFRMU19DT05GSUdfUFNBX0gKLQotI2luY2x1ZGUgInBzYS9jcnlwdG9fbGVnYWN5LmgiCi0KLSNpbmNsdWRlICJwc2EvY3J5cHRvX2FkanVzdF9jb25maWdfc3lub255bXMuaCIKLQotI2luY2x1ZGUgInBzYS9jcnlwdG9fYWRqdXN0X2NvbmZpZ19kZXBlbmRlbmNpZXMuaCIKLQotI2luY2x1ZGUgIm1iZWR0bHMvY29uZmlnX2FkanVzdF9wc2Ffc3VwZXJzZXRfbGVnYWN5LmgiCi0KLSNpZiBkZWZpbmVkKE1CRURUTFNfUFNBX0NSWVBUT19DT05GSUcpCi0KLS8qIFJlcXVpcmUgYnVpbHQtaW4gaW1wbGVtZW50YXRpb25zIGJhc2VkIG9uIFBTQSByZXF1aXJlbWVudHMgKi8KLQotLyogV2UgbmVlZCB0aGlzIHRvIGhhdmUgYSBjb21wbGV0ZSBsaXN0IG9mIHJlcXVpcmVtZW50cwotICogYmVmb3JlIHdlIGRlZHVjZSB3aGF0IGJ1aWx0LWlucyBhcmUgcmVxdWlyZWQuICovCi0jaW5jbHVkZSAicHNhL2NyeXB0b19hZGp1c3RfY29uZmlnX2tleV9wYWlyX3R5cGVzLmgiCi0KLSNpbmNsdWRlICJtYmVkdGxzL2NvbmZpZ19hZGp1c3RfbGVnYWN5X2Zyb21fcHNhLmgiCi0KLSNlbHNlIC8qIE1CRURUTFNfUFNBX0NSWVBUT19DT05GSUcgKi8KLQotLyogSW5mZXIgUFNBIHJlcXVpcmVtZW50cyBmcm9tIE1iZWQgVExTIGNhcGFiaWxpdGllcyAqLwotCi0jaW5jbHVkZSAibWJlZHRscy9jb25maWdfYWRqdXN0X3BzYV9mcm9tX2xlZ2FjeS5oIgotCi0vKiBIb3BlZnVsbHkgdGhlIGZpbGUgYWJvdmUgd2lsbCBoYXZlIGVuYWJsZWQga2V5cGFpciBzeW1ib2xzIGluIGEgY29uc2lzdGVudAotICogd2F5LCBidXQgaW5jbHVkaW5nIHRoaXMgaGVyZSBmaXhlcyB0aGVtIGlmIHRoYXQgd2Fzbid0IHRoZSBjYXNlLiAqLwotI2luY2x1ZGUgInBzYS9jcnlwdG9fYWRqdXN0X2NvbmZpZ19rZXlfcGFpcl90eXBlcy5oIgotCi0jZW5kaWYgLyogTUJFRFRMU19QU0FfQ1JZUFRPX0NPTkZJRyAqLwotCi0jaWYgZGVmaW5lZChQU0FfV0FOVF9BTEdfSlBBS0UpCi0jZGVmaW5lIFBTQV9XQU5UX0FMR19TT01FX1BBS0UgMQotI2VuZGlmCi0KLSNpbmNsdWRlICJwc2EvY3J5cHRvX2FkanVzdF9hdXRvX2VuYWJsZWQuaCIKLQotI2VuZGlmIC8qIE1CRURUTFNfQ09ORklHX1BTQV9IICovCmRpZmYgLS1naXQgYS9pbmNsdWRlL21iZWR0bHMvZGVzLmggYi9pbmNsdWRlL21iZWR0bHMvZGVzLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDJiMDk3YTEuLjAwMDAwMDAKLS0tIGEvaW5jbHVkZS9tYmVkdGxzL2Rlcy5oCisrKyAvZGV2L251bGwKQEAgLTEsMzg1ICswLDAgQEAKLS8qKgotICogXGZpbGUgZGVzLmgKLSAqCi0gKiBcYnJpZWYgREVTIGJsb2NrIGNpcGhlcgotICoKLSAqIFx3YXJuaW5nICAgREVTLzNERVMgYXJlIGNvbnNpZGVyZWQgd2VhayBjaXBoZXJzIGFuZCB0aGVpciB1c2UgY29uc3RpdHV0ZXMgYQotICogICAgICAgICAgICBzZWN1cml0eSByaXNrLiBXZSByZWNvbW1lbmQgY29uc2lkZXJpbmcgc3Ryb25nZXIgY2lwaGVycwotICogICAgICAgICAgICBpbnN0ZWFkLgotICovCi0vKgotICogIENvcHlyaWdodCBUaGUgTWJlZCBUTFMgQ29udHJpYnV0b3JzCi0gKiAgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjAgT1IgR1BMLTIuMC1vci1sYXRlcgotICoKLSAqLwotI2lmbmRlZiBNQkVEVExTX0RFU19ICi0jZGVmaW5lIE1CRURUTFNfREVTX0gKLSNpbmNsdWRlICJtYmVkdGxzL3ByaXZhdGVfYWNjZXNzLmgiCi0KLSNpbmNsdWRlICJtYmVkdGxzL2J1aWxkX2luZm8uaCIKLSNpbmNsdWRlICJtYmVkdGxzL3BsYXRmb3JtX3V0aWwuaCIKLQotI2luY2x1ZGUgPHN0ZGRlZi5oPgotI2luY2x1ZGUgPHN0ZGludC5oPgotCi0jZGVmaW5lIE1CRURUTFNfREVTX0VOQ1JZUFQgICAgIDEKLSNkZWZpbmUgTUJFRFRMU19ERVNfREVDUllQVCAgICAgMAotCi0vKiogVGhlIGRhdGEgaW5wdXQgaGFzIGFuIGludmFsaWQgbGVuZ3RoLiAqLwotI2RlZmluZSBNQkVEVExTX0VSUl9ERVNfSU5WQUxJRF9JTlBVVF9MRU5HVEggICAgICAgICAgICAgIC0weDAwMzIKLQotI2RlZmluZSBNQkVEVExTX0RFU19LRVlfU0laRSAgICA4Ci0KLSNpZmRlZiBfX2NwbHVzcGx1cwotZXh0ZXJuICJDIiB7Ci0jZW5kaWYKLQotI2lmICFkZWZpbmVkKE1CRURUTFNfREVTX0FMVCkKLS8vIFJlZ3VsYXIgaW1wbGVtZW50YXRpb24KLS8vCi0KLS8qKgotICogXGJyaWVmICAgICAgICAgIERFUyBjb250ZXh0IHN0cnVjdHVyZQotICoKLSAqIFx3YXJuaW5nICAgICAgICBERVMvM0RFUyBhcmUgY29uc2lkZXJlZCB3ZWFrIGNpcGhlcnMgYW5kIHRoZWlyIHVzZSBjb25zdGl0dXRlcyBhCi0gKiAgICAgICAgICAgICAgICAgc2VjdXJpdHkgcmlzay4gV2UgcmVjb21tZW5kIGNvbnNpZGVyaW5nIHN0cm9uZ2VyIGNpcGhlcnMKLSAqICAgICAgICAgICAgICAgICBpbnN0ZWFkLgotICovCi10eXBlZGVmIHN0cnVjdCBtYmVkdGxzX2Rlc19jb250ZXh0IHsKLSAgICB1aW50MzJfdCBNQkVEVExTX1BSSVZBVEUoc2spWzMyXTsgICAgICAgICAgICAvKiE8ICBERVMgc3Via2V5cyAgICAgICAqLwotfQotbWJlZHRsc19kZXNfY29udGV4dDsKLQotLyoqCi0gKiBcYnJpZWYgICAgICAgICAgVHJpcGxlLURFUyBjb250ZXh0IHN0cnVjdHVyZQotICoKLSAqIFx3YXJuaW5nICAgICAgICBERVMvM0RFUyBhcmUgY29uc2lkZXJlZCB3ZWFrIGNpcGhlcnMgYW5kIHRoZWlyIHVzZSBjb25zdGl0dXRlcyBhCi0gKiAgICAgICAgICAgICAgICAgc2VjdXJpdHkgcmlzay4gV2UgcmVjb21tZW5kIGNvbnNpZGVyaW5nIHN0cm9uZ2VyIGNpcGhlcnMKLSAqICAgICAgICAgICAgICAgICBpbnN0ZWFkLgotICovCi10eXBlZGVmIHN0cnVjdCBtYmVkdGxzX2RlczNfY29udGV4dCB7Ci0gICAgdWludDMyX3QgTUJFRFRMU19QUklWQVRFKHNrKVs5Nl07ICAgICAgICAgICAgLyohPCAgM0RFUyBzdWJrZXlzICAgICAgKi8KLX0KLW1iZWR0bHNfZGVzM19jb250ZXh0OwotCi0jZWxzZSAgLyogTUJFRFRMU19ERVNfQUxUICovCi0jaW5jbHVkZSAiZGVzX2FsdC5oIgotI2VuZGlmIC8qIE1CRURUTFNfREVTX0FMVCAqLwotCi0vKioKLSAqIFxicmllZiAgICAgICAgICBJbml0aWFsaXplIERFUyBjb250ZXh0Ci0gKgotICogXHBhcmFtIGN0eCAgICAgIERFUyBjb250ZXh0IHRvIGJlIGluaXRpYWxpemVkCi0gKgotICogXHdhcm5pbmcgICAgICAgIERFUy8zREVTIGFyZSBjb25zaWRlcmVkIHdlYWsgY2lwaGVycyBhbmQgdGhlaXIgdXNlIGNvbnN0aXR1dGVzIGEKLSAqICAgICAgICAgICAgICAgICBzZWN1cml0eSByaXNrLiBXZSByZWNvbW1lbmQgY29uc2lkZXJpbmcgc3Ryb25nZXIgY2lwaGVycwotICogICAgICAgICAgICAgICAgIGluc3RlYWQuCi0gKi8KLXZvaWQgbWJlZHRsc19kZXNfaW5pdChtYmVkdGxzX2Rlc19jb250ZXh0ICpjdHgpOwotCi0vKioKLSAqIFxicmllZiAgICAgICAgICBDbGVhciBERVMgY29udGV4dAotICoKLSAqIFxwYXJhbSBjdHggICAgICBERVMgY29udGV4dCB0byBiZSBjbGVhcmVkCi0gKgotICogXHdhcm5pbmcgICAgICAgIERFUy8zREVTIGFyZSBjb25zaWRlcmVkIHdlYWsgY2lwaGVycyBhbmQgdGhlaXIgdXNlIGNvbnN0aXR1dGVzIGEKLSAqICAgICAgICAgICAgICAgICBzZWN1cml0eSByaXNrLiBXZSByZWNvbW1lbmQgY29uc2lkZXJpbmcgc3Ryb25nZXIgY2lwaGVycwotICogICAgICAgICAgICAgICAgIGluc3RlYWQuCi0gKi8KLXZvaWQgbWJlZHRsc19kZXNfZnJlZShtYmVkdGxzX2Rlc19jb250ZXh0ICpjdHgpOwotCi0vKioKLSAqIFxicmllZiAgICAgICAgICBJbml0aWFsaXplIFRyaXBsZS1ERVMgY29udGV4dAotICoKLSAqIFxwYXJhbSBjdHggICAgICBERVMzIGNvbnRleHQgdG8gYmUgaW5pdGlhbGl6ZWQKLSAqCi0gKiBcd2FybmluZyAgICAgICAgREVTLzNERVMgYXJlIGNvbnNpZGVyZWQgd2VhayBjaXBoZXJzIGFuZCB0aGVpciB1c2UgY29uc3RpdHV0ZXMgYQotICogICAgICAgICAgICAgICAgIHNlY3VyaXR5IHJpc2suIFdlIHJlY29tbWVuZCBjb25zaWRlcmluZyBzdHJvbmdlciBjaXBoZXJzCi0gKiAgICAgICAgICAgICAgICAgaW5zdGVhZC4KLSAqLwotdm9pZCBtYmVkdGxzX2RlczNfaW5pdChtYmVkdGxzX2RlczNfY29udGV4dCAqY3R4KTsKLQotLyoqCi0gKiBcYnJpZWYgICAgICAgICAgQ2xlYXIgVHJpcGxlLURFUyBjb250ZXh0Ci0gKgotICogXHBhcmFtIGN0eCAgICAgIERFUzMgY29udGV4dCB0byBiZSBjbGVhcmVkCi0gKgotICogXHdhcm5pbmcgICAgICAgIERFUy8zREVTIGFyZSBjb25zaWRlcmVkIHdlYWsgY2lwaGVycyBhbmQgdGhlaXIgdXNlIGNvbnN0aXR1dGVzIGEKLSAqICAgICAgICAgICAgICAgICBzZWN1cml0eSByaXNrLiBXZSByZWNvbW1lbmQgY29uc2lkZXJpbmcgc3Ryb25nZXIgY2lwaGVycwotICogICAgICAgICAgICAgICAgIGluc3RlYWQuCi0gKi8KLXZvaWQgbWJlZHRsc19kZXMzX2ZyZWUobWJlZHRsc19kZXMzX2NvbnRleHQgKmN0eCk7Ci0KLS8qKgotICogXGJyaWVmICAgICAgICAgIFNldCBrZXkgcGFyaXR5IG9uIHRoZSBnaXZlbiBrZXkgdG8gb2RkLgotICoKLSAqICAgICAgICAgICAgICAgICBERVMga2V5cyBhcmUgNTYgYml0cyBsb25nLCBidXQgZWFjaCBieXRlIGlzIHBhZGRlZCB3aXRoCi0gKiAgICAgICAgICAgICAgICAgYSBwYXJpdHkgYml0IHRvIGFsbG93IHZlcmlmaWNhdGlvbi4KLSAqCi0gKiBccGFyYW0ga2V5ICAgICAgOC1ieXRlIHNlY3JldCBrZXkKLSAqCi0gKiBcd2FybmluZyAgICAgICAgREVTLzNERVMgYXJlIGNvbnNpZGVyZWQgd2VhayBjaXBoZXJzIGFuZCB0aGVpciB1c2UgY29uc3RpdHV0ZXMgYQotICogICAgICAgICAgICAgICAgIHNlY3VyaXR5IHJpc2suIFdlIHJlY29tbWVuZCBjb25zaWRlcmluZyBzdHJvbmdlciBjaXBoZXJzCi0gKiAgICAgICAgICAgICAgICAgaW5zdGVhZC4KLSAqLwotdm9pZCBtYmVkdGxzX2Rlc19rZXlfc2V0X3Bhcml0eSh1bnNpZ25lZCBjaGFyIGtleVtNQkVEVExTX0RFU19LRVlfU0laRV0pOwotCi0vKioKLSAqIFxicmllZiAgICAgICAgICBDaGVjayB0aGF0IGtleSBwYXJpdHkgb24gdGhlIGdpdmVuIGtleSBpcyBvZGQuCi0gKgotICogICAgICAgICAgICAgICAgIERFUyBrZXlzIGFyZSA1NiBiaXRzIGxvbmcsIGJ1dCBlYWNoIGJ5dGUgaXMgcGFkZGVkIHdpdGgKLSAqICAgICAgICAgICAgICAgICBhIHBhcml0eSBiaXQgdG8gYWxsb3cgdmVyaWZpY2F0aW9uLgotICoKLSAqIFxwYXJhbSBrZXkgICAgICA4LWJ5dGUgc2VjcmV0IGtleQotICoKLSAqIFxyZXR1cm4gICAgICAgICAwIGlzIHBhcml0eSB3YXMgb2ssIDEgaWYgcGFyaXR5IHdhcyBub3QgY29ycmVjdC4KLSAqCi0gKiBcd2FybmluZyAgICAgICAgREVTLzNERVMgYXJlIGNvbnNpZGVyZWQgd2VhayBjaXBoZXJzIGFuZCB0aGVpciB1c2UgY29uc3RpdHV0ZXMgYQotICogICAgICAgICAgICAgICAgIHNlY3VyaXR5IHJpc2suIFdlIHJlY29tbWVuZCBjb25zaWRlcmluZyBzdHJvbmdlciBjaXBoZXJzCi0gKiAgICAgICAgICAgICAgICAgaW5zdGVhZC4KLSAqLwotTUJFRFRMU19DSEVDS19SRVRVUk5fVFlQSUNBTAotaW50IG1iZWR0bHNfZGVzX2tleV9jaGVja19rZXlfcGFyaXR5KGNvbnN0IHVuc2lnbmVkIGNoYXIga2V5W01CRURUTFNfREVTX0tFWV9TSVpFXSk7Ci0KLS8qKgotICogXGJyaWVmICAgICAgICAgIENoZWNrIHRoYXQga2V5IGlzIG5vdCBhIHdlYWsgb3Igc2VtaS13ZWFrIERFUyBrZXkKLSAqCi0gKiBccGFyYW0ga2V5ICAgICAgOC1ieXRlIHNlY3JldCBrZXkKLSAqCi0gKiBccmV0dXJuICAgICAgICAgMCBpZiBubyB3ZWFrIGtleSB3YXMgZm91bmQsIDEgaWYgYSB3ZWFrIGtleSB3YXMgaWRlbnRpZmllZC4KLSAqCi0gKiBcd2FybmluZyAgICAgICAgREVTLzNERVMgYXJlIGNvbnNpZGVyZWQgd2VhayBjaXBoZXJzIGFuZCB0aGVpciB1c2UgY29uc3RpdHV0ZXMgYQotICogICAgICAgICAgICAgICAgIHNlY3VyaXR5IHJpc2suIFdlIHJlY29tbWVuZCBjb25zaWRlcmluZyBzdHJvbmdlciBjaXBoZXJzCi0gKiAgICAgICAgICAgICAgICAgaW5zdGVhZC4KLSAqLwotTUJFRFRMU19DSEVDS19SRVRVUk5fVFlQSUNBTAotaW50IG1iZWR0bHNfZGVzX2tleV9jaGVja193ZWFrKGNvbnN0IHVuc2lnbmVkIGNoYXIga2V5W01CRURUTFNfREVTX0tFWV9TSVpFXSk7Ci0KLS8qKgotICogXGJyaWVmICAgICAgICAgIERFUyBrZXkgc2NoZWR1bGUgKDU2LWJpdCwgZW5jcnlwdGlvbikKLSAqCi0gKiBccGFyYW0gY3R4ICAgICAgREVTIGNvbnRleHQgdG8gYmUgaW5pdGlhbGl6ZWQKLSAqIFxwYXJhbSBrZXkgICAgICA4LWJ5dGUgc2VjcmV0IGtleQotICoKLSAqIFxyZXR1cm4gICAgICAgICAwCi0gKgotICogXHdhcm5pbmcgICAgICAgIERFUy8zREVTIGFyZSBjb25zaWRlcmVkIHdlYWsgY2lwaGVycyBhbmQgdGhlaXIgdXNlIGNvbnN0aXR1dGVzIGEKLSAqICAgICAgICAgICAgICAgICBzZWN1cml0eSByaXNrLiBXZSByZWNvbW1lbmQgY29uc2lkZXJpbmcgc3Ryb25nZXIgY2lwaGVycwotICogICAgICAgICAgICAgICAgIGluc3RlYWQuCi0gKi8KLU1CRURUTFNfQ0hFQ0tfUkVUVVJOX1RZUElDQUwKLWludCBtYmVkdGxzX2Rlc19zZXRrZXlfZW5jKG1iZWR0bHNfZGVzX2NvbnRleHQgKmN0eCwgY29uc3QgdW5zaWduZWQgY2hhciBrZXlbTUJFRFRMU19ERVNfS0VZX1NJWkVdKTsKLQotLyoqCi0gKiBcYnJpZWYgICAgICAgICAgREVTIGtleSBzY2hlZHVsZSAoNTYtYml0LCBkZWNyeXB0aW9uKQotICoKLSAqIFxwYXJhbSBjdHggICAgICBERVMgY29udGV4dCB0byBiZSBpbml0aWFsaXplZAotICogXHBhcmFtIGtleSAgICAgIDgtYnl0ZSBzZWNyZXQga2V5Ci0gKgotICogXHJldHVybiAgICAgICAgIDAKLSAqCi0gKiBcd2FybmluZyAgICAgICAgREVTLzNERVMgYXJlIGNvbnNpZGVyZWQgd2VhayBjaXBoZXJzIGFuZCB0aGVpciB1c2UgY29uc3RpdHV0ZXMgYQotICogICAgICAgICAgICAgICAgIHNlY3VyaXR5IHJpc2suIFdlIHJlY29tbWVuZCBjb25zaWRlcmluZyBzdHJvbmdlciBjaXBoZXJzCi0gKiAgICAgICAgICAgICAgICAgaW5zdGVhZC4KLSAqLwotTUJFRFRMU19DSEVDS19SRVRVUk5fVFlQSUNBTAotaW50IG1iZWR0bHNfZGVzX3NldGtleV9kZWMobWJlZHRsc19kZXNfY29udGV4dCAqY3R4LCBjb25zdCB1bnNpZ25lZCBjaGFyIGtleVtNQkVEVExTX0RFU19LRVlfU0laRV0pOwotCi0vKioKLSAqIFxicmllZiAgICAgICAgICBUcmlwbGUtREVTIGtleSBzY2hlZHVsZSAoMTEyLWJpdCwgZW5jcnlwdGlvbikKLSAqCi0gKiBccGFyYW0gY3R4ICAgICAgM0RFUyBjb250ZXh0IHRvIGJlIGluaXRpYWxpemVkCi0gKiBccGFyYW0ga2V5ICAgICAgMTYtYnl0ZSBzZWNyZXQga2V5Ci0gKgotICogXHJldHVybiAgICAgICAgIDAKLSAqCi0gKiBcd2FybmluZyAgICAgICAgREVTLzNERVMgYXJlIGNvbnNpZGVyZWQgd2VhayBjaXBoZXJzIGFuZCB0aGVpciB1c2UgY29uc3RpdHV0ZXMgYQotICogICAgICAgICAgICAgICAgIHNlY3VyaXR5IHJpc2suIFdlIHJlY29tbWVuZCBjb25zaWRlcmluZyBzdHJvbmdlciBjaXBoZXJzCi0gKiAgICAgICAgICAgICAgICAgaW5zdGVhZC4KLSAqLwotTUJFRFRMU19DSEVDS19SRVRVUk5fVFlQSUNBTAotaW50IG1iZWR0bHNfZGVzM19zZXQya2V5X2VuYyhtYmVkdGxzX2RlczNfY29udGV4dCAqY3R4LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1bnNpZ25lZCBjaGFyIGtleVtNQkVEVExTX0RFU19LRVlfU0laRSAqIDJdKTsKLQotLyoqCi0gKiBcYnJpZWYgICAgICAgICAgVHJpcGxlLURFUyBrZXkgc2NoZWR1bGUgKDExMi1iaXQsIGRlY3J5cHRpb24pCi0gKgotICogXHBhcmFtIGN0eCAgICAgIDNERVMgY29udGV4dCB0byBiZSBpbml0aWFsaXplZAotICogXHBhcmFtIGtleSAgICAgIDE2LWJ5dGUgc2VjcmV0IGtleQotICoKLSAqIFxyZXR1cm4gICAgICAgICAwCi0gKgotICogXHdhcm5pbmcgICAgICAgIERFUy8zREVTIGFyZSBjb25zaWRlcmVkIHdlYWsgY2lwaGVycyBhbmQgdGhlaXIgdXNlIGNvbnN0aXR1dGVzIGEKLSAqICAgICAgICAgICAgICAgICBzZWN1cml0eSByaXNrLiBXZSByZWNvbW1lbmQgY29uc2lkZXJpbmcgc3Ryb25nZXIgY2lwaGVycwotICogICAgICAgICAgICAgICAgIGluc3RlYWQuCi0gKi8KLU1CRURUTFNfQ0hFQ0tfUkVUVVJOX1RZUElDQUwKLWludCBtYmVkdGxzX2RlczNfc2V0MmtleV9kZWMobWJlZHRsc19kZXMzX2NvbnRleHQgKmN0eCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdW5zaWduZWQgY2hhciBrZXlbTUJFRFRMU19ERVNfS0VZX1NJWkUgKiAyXSk7Ci0KLS8qKgotICogXGJyaWVmICAgICAgICAgIFRyaXBsZS1ERVMga2V5IHNjaGVkdWxlICgxNjgtYml0LCBlbmNyeXB0aW9uKQotICoKLSAqIFxwYXJhbSBjdHggICAgICAzREVTIGNvbnRleHQgdG8gYmUgaW5pdGlhbGl6ZWQKLSAqIFxwYXJhbSBrZXkgICAgICAyNC1ieXRlIHNlY3JldCBrZXkKLSAqCi0gKiBccmV0dXJuICAgICAgICAgMAotICoKLSAqIFx3YXJuaW5nICAgICAgICBERVMvM0RFUyBhcmUgY29uc2lkZXJlZCB3ZWFrIGNpcGhlcnMgYW5kIHRoZWlyIHVzZSBjb25zdGl0dXRlcyBhCi0gKiAgICAgICAgICAgICAgICAgc2VjdXJpdHkgcmlzay4gV2UgcmVjb21tZW5kIGNvbnNpZGVyaW5nIHN0cm9uZ2VyIGNpcGhlcnMKLSAqICAgICAgICAgICAgICAgICBpbnN0ZWFkLgotICovCi1NQkVEVExTX0NIRUNLX1JFVFVSTl9UWVBJQ0FMCi1pbnQgbWJlZHRsc19kZXMzX3NldDNrZXlfZW5jKG1iZWR0bHNfZGVzM19jb250ZXh0ICpjdHgsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIga2V5W01CRURUTFNfREVTX0tFWV9TSVpFICogM10pOwotCi0vKioKLSAqIFxicmllZiAgICAgICAgICBUcmlwbGUtREVTIGtleSBzY2hlZHVsZSAoMTY4LWJpdCwgZGVjcnlwdGlvbikKLSAqCi0gKiBccGFyYW0gY3R4ICAgICAgM0RFUyBjb250ZXh0IHRvIGJlIGluaXRpYWxpemVkCi0gKiBccGFyYW0ga2V5ICAgICAgMjQtYnl0ZSBzZWNyZXQga2V5Ci0gKgotICogXHJldHVybiAgICAgICAgIDAKLSAqCi0gKiBcd2FybmluZyAgICAgICAgREVTLzNERVMgYXJlIGNvbnNpZGVyZWQgd2VhayBjaXBoZXJzIGFuZCB0aGVpciB1c2UgY29uc3RpdHV0ZXMgYQotICogICAgICAgICAgICAgICAgIHNlY3VyaXR5IHJpc2suIFdlIHJlY29tbWVuZCBjb25zaWRlcmluZyBzdHJvbmdlciBjaXBoZXJzCi0gKiAgICAgICAgICAgICAgICAgaW5zdGVhZC4KLSAqLwotTUJFRFRMU19DSEVDS19SRVRVUk5fVFlQSUNBTAotaW50IG1iZWR0bHNfZGVzM19zZXQza2V5X2RlYyhtYmVkdGxzX2RlczNfY29udGV4dCAqY3R4LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1bnNpZ25lZCBjaGFyIGtleVtNQkVEVExTX0RFU19LRVlfU0laRSAqIDNdKTsKLQotLyoqCi0gKiBcYnJpZWYgICAgICAgICAgREVTLUVDQiBibG9jayBlbmNyeXB0aW9uL2RlY3J5cHRpb24KLSAqCi0gKiBccGFyYW0gY3R4ICAgICAgREVTIGNvbnRleHQKLSAqIFxwYXJhbSBpbnB1dCAgICA2NC1iaXQgaW5wdXQgYmxvY2sKLSAqIFxwYXJhbSBvdXRwdXQgICA2NC1iaXQgb3V0cHV0IGJsb2NrCi0gKgotICogXHJldHVybiAgICAgICAgIDAgaWYgc3VjY2Vzc2Z1bAotICoKLSAqIFx3YXJuaW5nICAgICAgICBERVMvM0RFUyBhcmUgY29uc2lkZXJlZCB3ZWFrIGNpcGhlcnMgYW5kIHRoZWlyIHVzZSBjb25zdGl0dXRlcyBhCi0gKiAgICAgICAgICAgICAgICAgc2VjdXJpdHkgcmlzay4gV2UgcmVjb21tZW5kIGNvbnNpZGVyaW5nIHN0cm9uZ2VyIGNpcGhlcnMKLSAqICAgICAgICAgICAgICAgICBpbnN0ZWFkLgotICovCi1NQkVEVExTX0NIRUNLX1JFVFVSTl9UWVBJQ0FMCi1pbnQgbWJlZHRsc19kZXNfY3J5cHRfZWNiKG1iZWR0bHNfZGVzX2NvbnRleHQgKmN0eCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdW5zaWduZWQgY2hhciBpbnB1dFs4XSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgY2hhciBvdXRwdXRbOF0pOwotCi0jaWYgZGVmaW5lZChNQkVEVExTX0NJUEhFUl9NT0RFX0NCQykKLS8qKgotICogXGJyaWVmICAgICAgICAgIERFUy1DQkMgYnVmZmVyIGVuY3J5cHRpb24vZGVjcnlwdGlvbgotICoKLSAqIFxub3RlICAgICAgICAgICBVcG9uIGV4aXQsIHRoZSBjb250ZW50IG9mIHRoZSBJViBpcyB1cGRhdGVkIHNvIHRoYXQgeW91IGNhbgotICogICAgICAgICAgICAgICAgIGNhbGwgdGhlIGZ1bmN0aW9uIHNhbWUgZnVuY3Rpb24gYWdhaW4gb24gdGhlIGZvbGxvd2luZwotICogICAgICAgICAgICAgICAgIGJsb2NrKHMpIG9mIGRhdGEgYW5kIGdldCB0aGUgc2FtZSByZXN1bHQgYXMgaWYgaXQgd2FzCi0gKiAgICAgICAgICAgICAgICAgZW5jcnlwdGVkIGluIG9uZSBjYWxsLiBUaGlzIGFsbG93cyBhICJzdHJlYW1pbmciIHVzYWdlLgotICogICAgICAgICAgICAgICAgIElmIG9uIHRoZSBvdGhlciBoYW5kIHlvdSBuZWVkIHRvIHJldGFpbiB0aGUgY29udGVudHMgb2YgdGhlCi0gKiAgICAgICAgICAgICAgICAgSVYsIHlvdSBzaG91bGQgZWl0aGVyIHNhdmUgaXQgbWFudWFsbHkgb3IgdXNlIHRoZSBjaXBoZXIKLSAqICAgICAgICAgICAgICAgICBtb2R1bGUgaW5zdGVhZC4KLSAqCi0gKiBccGFyYW0gY3R4ICAgICAgREVTIGNvbnRleHQKLSAqIFxwYXJhbSBtb2RlICAgICBNQkVEVExTX0RFU19FTkNSWVBUIG9yIE1CRURUTFNfREVTX0RFQ1JZUFQKLSAqIFxwYXJhbSBsZW5ndGggICBsZW5ndGggb2YgdGhlIGlucHV0IGRhdGEKLSAqIFxwYXJhbSBpdiAgICAgICBpbml0aWFsaXphdGlvbiB2ZWN0b3IgKHVwZGF0ZWQgYWZ0ZXIgdXNlKQotICogXHBhcmFtIGlucHV0ICAgIGJ1ZmZlciBob2xkaW5nIHRoZSBpbnB1dCBkYXRhCi0gKiBccGFyYW0gb3V0cHV0ICAgYnVmZmVyIGhvbGRpbmcgdGhlIG91dHB1dCBkYXRhCi0gKgotICogXHdhcm5pbmcgICAgICAgIERFUy8zREVTIGFyZSBjb25zaWRlcmVkIHdlYWsgY2lwaGVycyBhbmQgdGhlaXIgdXNlIGNvbnN0aXR1dGVzIGEKLSAqICAgICAgICAgICAgICAgICBzZWN1cml0eSByaXNrLiBXZSByZWNvbW1lbmQgY29uc2lkZXJpbmcgc3Ryb25nZXIgY2lwaGVycwotICogICAgICAgICAgICAgICAgIGluc3RlYWQuCi0gKi8KLU1CRURUTFNfQ0hFQ0tfUkVUVVJOX1RZUElDQUwKLWludCBtYmVkdGxzX2Rlc19jcnlwdF9jYmMobWJlZHRsc19kZXNfY29udGV4dCAqY3R4LAotICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgbW9kZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IGxlbmd0aCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgY2hhciBpdls4XSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdW5zaWduZWQgY2hhciAqaW5wdXQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGNoYXIgKm91dHB1dCk7Ci0jZW5kaWYgLyogTUJFRFRMU19DSVBIRVJfTU9ERV9DQkMgKi8KLQotLyoqCi0gKiBcYnJpZWYgICAgICAgICAgM0RFUy1FQ0IgYmxvY2sgZW5jcnlwdGlvbi9kZWNyeXB0aW9uCi0gKgotICogXHBhcmFtIGN0eCAgICAgIDNERVMgY29udGV4dAotICogXHBhcmFtIGlucHV0ICAgIDY0LWJpdCBpbnB1dCBibG9jawotICogXHBhcmFtIG91dHB1dCAgIDY0LWJpdCBvdXRwdXQgYmxvY2sKLSAqCi0gKiBccmV0dXJuICAgICAgICAgMCBpZiBzdWNjZXNzZnVsCi0gKgotICogXHdhcm5pbmcgICAgICAgIERFUy8zREVTIGFyZSBjb25zaWRlcmVkIHdlYWsgY2lwaGVycyBhbmQgdGhlaXIgdXNlIGNvbnN0aXR1dGVzIGEKLSAqICAgICAgICAgICAgICAgICBzZWN1cml0eSByaXNrLiBXZSByZWNvbW1lbmQgY29uc2lkZXJpbmcgc3Ryb25nZXIgY2lwaGVycwotICogICAgICAgICAgICAgICAgIGluc3RlYWQuCi0gKi8KLU1CRURUTFNfQ0hFQ0tfUkVUVVJOX1RZUElDQUwKLWludCBtYmVkdGxzX2RlczNfY3J5cHRfZWNiKG1iZWR0bHNfZGVzM19jb250ZXh0ICpjdHgsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1bnNpZ25lZCBjaGFyIGlucHV0WzhdLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgY2hhciBvdXRwdXRbOF0pOwotCi0jaWYgZGVmaW5lZChNQkVEVExTX0NJUEhFUl9NT0RFX0NCQykKLS8qKgotICogXGJyaWVmICAgICAgICAgIDNERVMtQ0JDIGJ1ZmZlciBlbmNyeXB0aW9uL2RlY3J5cHRpb24KLSAqCi0gKiBcbm90ZSAgICAgICAgICAgVXBvbiBleGl0LCB0aGUgY29udGVudCBvZiB0aGUgSVYgaXMgdXBkYXRlZCBzbyB0aGF0IHlvdSBjYW4KLSAqICAgICAgICAgICAgICAgICBjYWxsIHRoZSBmdW5jdGlvbiBzYW1lIGZ1bmN0aW9uIGFnYWluIG9uIHRoZSBmb2xsb3dpbmcKLSAqICAgICAgICAgICAgICAgICBibG9jayhzKSBvZiBkYXRhIGFuZCBnZXQgdGhlIHNhbWUgcmVzdWx0IGFzIGlmIGl0IHdhcwotICogICAgICAgICAgICAgICAgIGVuY3J5cHRlZCBpbiBvbmUgY2FsbC4gVGhpcyBhbGxvd3MgYSAic3RyZWFtaW5nIiB1c2FnZS4KLSAqICAgICAgICAgICAgICAgICBJZiBvbiB0aGUgb3RoZXIgaGFuZCB5b3UgbmVlZCB0byByZXRhaW4gdGhlIGNvbnRlbnRzIG9mIHRoZQotICogICAgICAgICAgICAgICAgIElWLCB5b3Ugc2hvdWxkIGVpdGhlciBzYXZlIGl0IG1hbnVhbGx5IG9yIHVzZSB0aGUgY2lwaGVyCi0gKiAgICAgICAgICAgICAgICAgbW9kdWxlIGluc3RlYWQuCi0gKgotICogXHBhcmFtIGN0eCAgICAgIDNERVMgY29udGV4dAotICogXHBhcmFtIG1vZGUgICAgIE1CRURUTFNfREVTX0VOQ1JZUFQgb3IgTUJFRFRMU19ERVNfREVDUllQVAotICogXHBhcmFtIGxlbmd0aCAgIGxlbmd0aCBvZiB0aGUgaW5wdXQgZGF0YQotICogXHBhcmFtIGl2ICAgICAgIGluaXRpYWxpemF0aW9uIHZlY3RvciAodXBkYXRlZCBhZnRlciB1c2UpCi0gKiBccGFyYW0gaW5wdXQgICAgYnVmZmVyIGhvbGRpbmcgdGhlIGlucHV0IGRhdGEKLSAqIFxwYXJhbSBvdXRwdXQgICBidWZmZXIgaG9sZGluZyB0aGUgb3V0cHV0IGRhdGEKLSAqCi0gKiBccmV0dXJuICAgICAgICAgMCBpZiBzdWNjZXNzZnVsLCBvciBNQkVEVExTX0VSUl9ERVNfSU5WQUxJRF9JTlBVVF9MRU5HVEgKLSAqCi0gKiBcd2FybmluZyAgICAgICAgREVTLzNERVMgYXJlIGNvbnNpZGVyZWQgd2VhayBjaXBoZXJzIGFuZCB0aGVpciB1c2UgY29uc3RpdHV0ZXMgYQotICogICAgICAgICAgICAgICAgIHNlY3VyaXR5IHJpc2suIFdlIHJlY29tbWVuZCBjb25zaWRlcmluZyBzdHJvbmdlciBjaXBoZXJzCi0gKiAgICAgICAgICAgICAgICAgaW5zdGVhZC4KLSAqLwotTUJFRFRMU19DSEVDS19SRVRVUk5fVFlQSUNBTAotaW50IG1iZWR0bHNfZGVzM19jcnlwdF9jYmMobWJlZHRsc19kZXMzX2NvbnRleHQgKmN0eCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBtb2RlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IGxlbmd0aCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGNoYXIgaXZbOF0sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1bnNpZ25lZCBjaGFyICppbnB1dCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGNoYXIgKm91dHB1dCk7Ci0jZW5kaWYgLyogTUJFRFRMU19DSVBIRVJfTU9ERV9DQkMgKi8KLQotLyoqCi0gKiBcYnJpZWYgICAgICAgICAgSW50ZXJuYWwgZnVuY3Rpb24gZm9yIGtleSBleHBhbnNpb24uCi0gKiAgICAgICAgICAgICAgICAgKE9ubHkgZXhwb3NlZCB0byBhbGxvdyBvdmVycmlkaW5nIGl0LAotICogICAgICAgICAgICAgICAgIHNlZSBNQkVEVExTX0RFU19TRVRLRVlfQUxUKQotICoKLSAqIFxwYXJhbSBTSyAgICAgICBSb3VuZCBrZXlzCi0gKiBccGFyYW0ga2V5ICAgICAgQmFzZSBrZXkKLSAqCi0gKiBcd2FybmluZyAgICAgICAgREVTLzNERVMgYXJlIGNvbnNpZGVyZWQgd2VhayBjaXBoZXJzIGFuZCB0aGVpciB1c2UgY29uc3RpdHV0ZXMgYQotICogICAgICAgICAgICAgICAgIHNlY3VyaXR5IHJpc2suIFdlIHJlY29tbWVuZCBjb25zaWRlcmluZyBzdHJvbmdlciBjaXBoZXJzCi0gKiAgICAgICAgICAgICAgICAgaW5zdGVhZC4KLSAqLwotdm9pZCBtYmVkdGxzX2Rlc19zZXRrZXkodWludDMyX3QgU0tbMzJdLAotICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdW5zaWduZWQgY2hhciBrZXlbTUJFRFRMU19ERVNfS0VZX1NJWkVdKTsKLQotI2lmIGRlZmluZWQoTUJFRFRMU19TRUxGX1RFU1QpCi0KLS8qKgotICogXGJyaWVmICAgICAgICAgIENoZWNrdXAgcm91dGluZQotICoKLSAqIFxyZXR1cm4gICAgICAgICAwIGlmIHN1Y2Nlc3NmdWwsIG9yIDEgaWYgdGhlIHRlc3QgZmFpbGVkCi0gKi8KLU1CRURUTFNfQ0hFQ0tfUkVUVVJOX0NSSVRJQ0FMCi1pbnQgbWJlZHRsc19kZXNfc2VsZl90ZXN0KGludCB2ZXJib3NlKTsKLQotI2VuZGlmIC8qIE1CRURUTFNfU0VMRl9URVNUICovCi0KLSNpZmRlZiBfX2NwbHVzcGx1cwotfQotI2VuZGlmCi0KLSNlbmRpZiAvKiBkZXMuaCAqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9tYmVkdGxzL2RobS5oIGIvaW5jbHVkZS9tYmVkdGxzL2RobS5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmY2JhM2QyLi4wMDAwMDAwCi0tLSBhL2luY2x1ZGUvbWJlZHRscy9kaG0uaAorKysgL2Rldi9udWxsCkBAIC0xLDk3MiArMCwwIEBACi0vKioKLSAqIFxmaWxlIGRobS5oCi0gKgotICogXGJyaWVmICAgVGhpcyBmaWxlIGNvbnRhaW5zIERpZmZpZS1IZWxsbWFuLU1lcmtsZSAoREhNKSBrZXkgZXhjaGFuZ2UKLSAqICAgICAgICAgIGRlZmluaXRpb25zIGFuZCBmdW5jdGlvbnMuCi0gKgotICogRGlmZmllLUhlbGxtYW4tTWVya2xlIChESE0pIGtleSBleGNoYW5nZSBpcyBkZWZpbmVkIGluCi0gKiA8ZW0+UkZDLTI2MzE6IERpZmZpZS1IZWxsbWFuIEtleSBBZ3JlZW1lbnQgTWV0aG9kPC9lbT4gYW5kCi0gKiA8ZW0+UHVibGljLUtleSBDcnlwdG9ncmFwaHkgU3RhbmRhcmRzIChQS0NTKSAjMzogRGlmZmllCi0gKiBIZWxsbWFuIEtleSBBZ3JlZW1lbnQgU3RhbmRhcmQ8L2VtPi4KLSAqCi0gKiA8ZW0+UkZDLTM1MjY6IE1vcmUgTW9kdWxhciBFeHBvbmVudGlhbCAoTU9EUCkgRGlmZmllLUhlbGxtYW4gZ3JvdXBzIGZvcgotICogSW50ZXJuZXQgS2V5IEV4Y2hhbmdlIChJS0UpPC9lbT4gZGVmaW5lcyBhIG51bWJlciBvZiBzdGFuZGFyZGl6ZWQKLSAqIERpZmZpZS1IZWxsbWFuIGdyb3VwcyBmb3IgSUtFLgotICoKLSAqIDxlbT5SRkMtNTExNDogQWRkaXRpb25hbCBEaWZmaWUtSGVsbG1hbiBHcm91cHMgZm9yIFVzZSB3aXRoIElFVEYKLSAqIFN0YW5kYXJkczwvZW0+IGRlZmluZXMgYSBudW1iZXIgb2Ygc3RhbmRhcmRpemVkIERpZmZpZS1IZWxsbWFuCi0gKiBncm91cHMgdGhhdCBjYW4gYmUgdXNlZC4KLSAqCi0gKiBcd2FybmluZyAgVGhlIHNlY3VyaXR5IG9mIHRoZSBESE0ga2V5IGV4Y2hhbmdlIHJlbGllcyBvbiB0aGUgcHJvcGVyIGNob2ljZQotICogICAgICAgICAgIG9mIHByaW1lIG1vZHVsdXMgLSBvcHRpbWFsbHksIGl0IHNob3VsZCBiZSBhIHNhZmUgcHJpbWUuIFRoZSB1c2FnZQotICogICAgICAgICAgIG9mIG5vbi1zYWZlIHByaW1lcyBib3RoIGRlY3JlYXNlcyB0aGUgZGlmZmljdWx0eSBvZiB0aGUgdW5kZXJseWluZwotICogICAgICAgICAgIGRpc2NyZXRlIGxvZ2FyaXRobSBwcm9ibGVtIGFuZCBjYW4gbGVhZCB0byBzbWFsbCBzdWJncm91cCBhdHRhY2tzCi0gKiAgICAgICAgICAgbGVha2luZyBwcml2YXRlIGV4cG9uZW50IGJpdHMgd2hlbiBpbnZhbGlkIHB1YmxpYyBrZXlzIGFyZSB1c2VkCi0gKiAgICAgICAgICAgYW5kIG5vdCBkZXRlY3RlZC4gVGhpcyBpcyBlc3BlY2lhbGx5IHJlbGV2YW50IGlmIHRoZSBzYW1lIERITQotICogICAgICAgICAgIHBhcmFtZXRlcnMgYXJlIHJldXNlZCBmb3IgbXVsdGlwbGUga2V5IGV4Y2hhbmdlcyBhcyBpbiBzdGF0aWMgREhNLAotICogICAgICAgICAgIHdoaWxlIHRoZSBjcml0aWNhbGl0eSBvZiBzbWFsbC1zdWJncm91cCBhdHRhY2tzIGlzIGxvd2VyIGZvcgotICogICAgICAgICAgIGVwaGVtZXJhbCBESE0uCi0gKgotICogXHdhcm5pbmcgIEZvciBwZXJmb3JtYW5jZSByZWFzb25zLCB0aGUgY29kZSBkb2VzIG5laXRoZXIgcGVyZm9ybSBwcmltYWxpdHkKLSAqICAgICAgICAgICBub3Igc2FmZSBwcmltYWxpdHkgdGVzdHMsIG5vciB0aGUgZXhwZW5zaXZlIGNoZWNrcyBmb3IgaW52YWxpZAotICogICAgICAgICAgIHN1Ymdyb3Vwcy4gTW9yZW92ZXIsIGV2ZW4gaWYgdGhlc2Ugd2VyZSBwZXJmb3JtZWQsIG5vbi1zdGFuZGFyZGl6ZWQKLSAqICAgICAgICAgICBwcmltZXMgY2Fubm90IGJlIHRydXN0ZWQgYmVjYXVzZSBvZiB0aGUgcG9zc2liaWxpdHkgb2YgYmFja2Rvb3JzCi0gKiAgICAgICAgICAgdGhhdCBjYW4ndCBiZSBlZmZlY3RpdmVseSBjaGVja2VkIGZvci4KLSAqCi0gKiBcd2FybmluZyAgRGlmZmllLUhlbGxtYW4tTWVya2xlIGlzIHRoZXJlZm9yZSBhIHNlY3VyaXR5IHJpc2sgd2hlbiBub3QgdXNpbmcKLSAqICAgICAgICAgICBzdGFuZGFyZGl6ZWQgcHJpbWVzIGdlbmVyYXRlZCB1c2luZyBhIHRydXN0d29ydGh5ICgibm90aGluZyB1cAotICogICAgICAgICAgIG15IHNsZWV2ZSIpIG1ldGhvZCwgc3VjaCBhcyB0aGUgUkZDIDM1MjYgLyA3OTE5IHByaW1lcy4gSW4gdGhlIFRMUwotICogICAgICAgICAgIHByb3RvY29sLCBESCBwYXJhbWV0ZXJzIG5lZWQgdG8gYmUgbmVnb3RpYXRlZCwgc28gdXNpbmcgdGhlIGRlZmF1bHQKLSAqICAgICAgICAgICBwcmltZXMgc3lzdGVtYXRpY2FsbHkgaXMgbm90IGFsd2F5cyBhbiBvcHRpb24uIElmIHBvc3NpYmxlLCB1c2UKLSAqICAgICAgICAgICBFbGxpcHRpYyBDdXJ2ZSBEaWZmaWUtSGVsbG1hbiAoRUNESCksIHdoaWNoIGhhcyBiZXR0ZXIgcGVyZm9ybWFuY2UsCi0gKiAgICAgICAgICAgYW5kIGZvciB3aGljaCB0aGUgVExTIHByb3RvY29sIG1hbmRhdGVzIHRoZSB1c2Ugb2Ygc3RhbmRhcmQKLSAqICAgICAgICAgICBwYXJhbWV0ZXJzLgotICoKLSAqLwotLyoKLSAqICBDb3B5cmlnaHQgVGhlIE1iZWQgVExTIENvbnRyaWJ1dG9ycwotICogIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wIE9SIEdQTC0yLjAtb3ItbGF0ZXIKLSAqLwotCi0jaWZuZGVmIE1CRURUTFNfREhNX0gKLSNkZWZpbmUgTUJFRFRMU19ESE1fSAotI2luY2x1ZGUgIm1iZWR0bHMvcHJpdmF0ZV9hY2Nlc3MuaCIKLQotI2luY2x1ZGUgIm1iZWR0bHMvYnVpbGRfaW5mby5oIgotI2luY2x1ZGUgIm1iZWR0bHMvYmlnbnVtLmgiCi0KLS8qCi0gKiBESE0gRXJyb3IgY29kZXMKLSAqLwotLyoqIEJhZCBpbnB1dCBwYXJhbWV0ZXJzLiAqLwotI2RlZmluZSBNQkVEVExTX0VSUl9ESE1fQkFEX0lOUFVUX0RBVEEgICAgICAgICAgICAgICAgICAgIC0weDMwODAKLS8qKiBSZWFkaW5nIG9mIHRoZSBESE0gcGFyYW1ldGVycyBmYWlsZWQuICovCi0jZGVmaW5lIE1CRURUTFNfRVJSX0RITV9SRUFEX1BBUkFNU19GQUlMRUQgICAgICAgICAgICAgICAgLTB4MzEwMAotLyoqIE1ha2luZyBvZiB0aGUgREhNIHBhcmFtZXRlcnMgZmFpbGVkLiAqLwotI2RlZmluZSBNQkVEVExTX0VSUl9ESE1fTUFLRV9QQVJBTVNfRkFJTEVEICAgICAgICAgICAgICAgIC0weDMxODAKLS8qKiBSZWFkaW5nIG9mIHRoZSBwdWJsaWMgdmFsdWVzIGZhaWxlZC4gKi8KLSNkZWZpbmUgTUJFRFRMU19FUlJfREhNX1JFQURfUFVCTElDX0ZBSUxFRCAgICAgICAgICAgICAgICAtMHgzMjAwCi0vKiogTWFraW5nIG9mIHRoZSBwdWJsaWMgdmFsdWUgZmFpbGVkLiAqLwotI2RlZmluZSBNQkVEVExTX0VSUl9ESE1fTUFLRV9QVUJMSUNfRkFJTEVEICAgICAgICAgICAgICAgIC0weDMyODAKLS8qKiBDYWxjdWxhdGlvbiBvZiB0aGUgREhNIHNlY3JldCBmYWlsZWQuICovCi0jZGVmaW5lIE1CRURUTFNfRVJSX0RITV9DQUxDX1NFQ1JFVF9GQUlMRUQgICAgICAgICAgICAgICAgLTB4MzMwMAotLyoqIFRoZSBBU04uMSBkYXRhIGlzIG5vdCBmb3JtYXR0ZWQgY29ycmVjdGx5LiAqLwotI2RlZmluZSBNQkVEVExTX0VSUl9ESE1fSU5WQUxJRF9GT1JNQVQgICAgICAgICAgICAgICAgICAgIC0weDMzODAKLS8qKiBBbGxvY2F0aW9uIG9mIG1lbW9yeSBmYWlsZWQuICovCi0jZGVmaW5lIE1CRURUTFNfRVJSX0RITV9BTExPQ19GQUlMRUQgICAgICAgICAgICAgICAgICAgICAgLTB4MzQwMAotLyoqIFJlYWQgb3Igd3JpdGUgb2YgZmlsZSBmYWlsZWQuICovCi0jZGVmaW5lIE1CRURUTFNfRVJSX0RITV9GSUxFX0lPX0VSUk9SICAgICAgICAgICAgICAgICAgICAgLTB4MzQ4MAotLyoqIFNldHRpbmcgdGhlIG1vZHVsdXMgYW5kIGdlbmVyYXRvciBmYWlsZWQuICovCi0jZGVmaW5lIE1CRURUTFNfRVJSX0RITV9TRVRfR1JPVVBfRkFJTEVEICAgICAgICAgICAgICAgICAgLTB4MzU4MAotCi0vKiogV2hpY2ggcGFyYW1ldGVyIHRvIGFjY2VzcyBpbiBtYmVkdGxzX2RobV9nZXRfdmFsdWUoKS4gKi8KLXR5cGVkZWYgZW51bSB7Ci0gICAgTUJFRFRMU19ESE1fUEFSQU1fUCwgIC8qITwgIFRoZSBwcmltZSBtb2R1bHVzLiAqLwotICAgIE1CRURUTFNfREhNX1BBUkFNX0csICAvKiE8ICBUaGUgZ2VuZXJhdG9yLiAqLwotICAgIE1CRURUTFNfREhNX1BBUkFNX1gsICAvKiE8ICBPdXIgc2VjcmV0IHZhbHVlLiAqLwotICAgIE1CRURUTFNfREhNX1BBUkFNX0dYLCAvKiE8ICBPdXIgcHVibGljIGtleSA9IFxjIEdeWCBtb2QgXGMgUC4gKi8KLSAgICBNQkVEVExTX0RITV9QQVJBTV9HWSwgLyohPCAgVGhlIHB1YmxpYyBrZXkgb2YgdGhlIHBlZXIgPSBcYyBHXlkgbW9kIFxjIFAuICovCi0gICAgTUJFRFRMU19ESE1fUEFSQU1fSywgIC8qITwgIFRoZSBzaGFyZWQgc2VjcmV0ID0gXGMgR14oWFkpIG1vZCBcYyBQLiAqLwotfSBtYmVkdGxzX2RobV9wYXJhbWV0ZXI7Ci0KLSNpZmRlZiBfX2NwbHVzcGx1cwotZXh0ZXJuICJDIiB7Ci0jZW5kaWYKLQotI2lmICFkZWZpbmVkKE1CRURUTFNfREhNX0FMVCkKLQotLyoqCi0gKiBcYnJpZWYgICAgICAgICAgVGhlIERITSBjb250ZXh0IHN0cnVjdHVyZS4KLSAqLwotdHlwZWRlZiBzdHJ1Y3QgbWJlZHRsc19kaG1fY29udGV4dCB7Ci0gICAgbWJlZHRsc19tcGkgTUJFRFRMU19QUklWQVRFKFApOyAgICAgIC8qITwgIFRoZSBwcmltZSBtb2R1bHVzLiAqLwotICAgIG1iZWR0bHNfbXBpIE1CRURUTFNfUFJJVkFURShHKTsgICAgICAvKiE8ICBUaGUgZ2VuZXJhdG9yLiAqLwotICAgIG1iZWR0bHNfbXBpIE1CRURUTFNfUFJJVkFURShYKTsgICAgICAvKiE8ICBPdXIgc2VjcmV0IHZhbHVlLiAqLwotICAgIG1iZWR0bHNfbXBpIE1CRURUTFNfUFJJVkFURShHWCk7ICAgICAvKiE8ICBPdXIgcHVibGljIGtleSA9IFxjIEdeWCBtb2QgXGMgUC4gKi8KLSAgICBtYmVkdGxzX21waSBNQkVEVExTX1BSSVZBVEUoR1kpOyAgICAgLyohPCAgVGhlIHB1YmxpYyBrZXkgb2YgdGhlIHBlZXIgPSBcYyBHXlkgbW9kIFxjIFAuICovCi0gICAgbWJlZHRsc19tcGkgTUJFRFRMU19QUklWQVRFKEspOyAgICAgIC8qITwgIFRoZSBzaGFyZWQgc2VjcmV0ID0gXGMgR14oWFkpIG1vZCBcYyBQLiAqLwotICAgIG1iZWR0bHNfbXBpIE1CRURUTFNfUFJJVkFURShSUCk7ICAgICAvKiE8ICBUaGUgY2FjaGVkIHZhbHVlID0gXGMgUl4yIG1vZCBcYyBQLiAqLwotICAgIG1iZWR0bHNfbXBpIE1CRURUTFNfUFJJVkFURShWaSk7ICAgICAvKiE8ICBUaGUgYmxpbmRpbmcgdmFsdWUuICovCi0gICAgbWJlZHRsc19tcGkgTUJFRFRMU19QUklWQVRFKFZmKTsgICAgIC8qITwgIFRoZSB1bmJsaW5kaW5nIHZhbHVlLiAqLwotICAgIG1iZWR0bHNfbXBpIE1CRURUTFNfUFJJVkFURShwWCk7ICAgICAvKiE8ICBUaGUgcHJldmlvdXMgXGMgWC4gKi8KLX0KLW1iZWR0bHNfZGhtX2NvbnRleHQ7Ci0KLSNlbHNlIC8qIE1CRURUTFNfREhNX0FMVCAqLwotI2luY2x1ZGUgImRobV9hbHQuaCIKLSNlbmRpZiAvKiBNQkVEVExTX0RITV9BTFQgKi8KLQotLyoqCi0gKiBcYnJpZWYgICAgICAgICAgVGhpcyBmdW5jdGlvbiBpbml0aWFsaXplcyB0aGUgREhNIGNvbnRleHQuCi0gKgotICogXHBhcmFtIGN0eCAgICAgIFRoZSBESE0gY29udGV4dCB0byBpbml0aWFsaXplLgotICovCi12b2lkIG1iZWR0bHNfZGhtX2luaXQobWJlZHRsc19kaG1fY29udGV4dCAqY3R4KTsKLQotLyoqCi0gKiBcYnJpZWYgICAgICAgICAgVGhpcyBmdW5jdGlvbiBwYXJzZXMgdGhlIERITSBwYXJhbWV0ZXJzIGluIGEKLSAqICAgICAgICAgICAgICAgICBUTFMgU2VydmVyS2V5RXhjaGFuZ2UgaGFuZHNoYWtlIG1lc3NhZ2UKLSAqICAgICAgICAgICAgICAgICAoREhNIG1vZHVsdXMsIGdlbmVyYXRvciwgYW5kIHB1YmxpYyBrZXkpLgotICoKLSAqIFxub3RlICAgICAgICAgICBJbiBhIFRMUyBoYW5kc2hha2UsIHRoaXMgaXMgdGhlIGhvdyB0aGUgY2xpZW50Ci0gKiAgICAgICAgICAgICAgICAgc2V0cyB1cCBpdHMgREhNIGNvbnRleHQgZnJvbSB0aGUgc2VydmVyJ3MgcHVibGljCi0gKiAgICAgICAgICAgICAgICAgREhNIGtleSBtYXRlcmlhbC4KLSAqCi0gKiBccGFyYW0gY3R4ICAgICAgVGhlIERITSBjb250ZXh0IHRvIHVzZS4gVGhpcyBtdXN0IGJlIGluaXRpYWxpemVkLgotICogXHBhcmFtIHAgICAgICAgIE9uIGlucHV0LCAqcCBtdXN0IGJlIHRoZSBzdGFydCBvZiB0aGUgaW5wdXQgYnVmZmVyLgotICogICAgICAgICAgICAgICAgIE9uIG91dHB1dCwgKnAgaXMgdXBkYXRlZCB0byBwb2ludCB0byB0aGUgZW5kIG9mIHRoZSBkYXRhCi0gKiAgICAgICAgICAgICAgICAgdGhhdCBoYXMgYmVlbiByZWFkLiBPbiBzdWNjZXNzLCB0aGlzIGlzIHRoZSBmaXJzdCBieXRlCi0gKiAgICAgICAgICAgICAgICAgcGFzdCB0aGUgZW5kIG9mIHRoZSBTZXJ2ZXJLZXlFeGNoYW5nZSBwYXJhbWV0ZXJzLgotICogICAgICAgICAgICAgICAgIE9uIGVycm9yLCB0aGlzIGlzIHRoZSBwb2ludCBhdCB3aGljaCBhbiBlcnJvciBoYXMgYmVlbgotICogICAgICAgICAgICAgICAgIGRldGVjdGVkLCB3aGljaCBpcyB1c3VhbGx5IG5vdCB1c2VmdWwgZXhjZXB0IHRvIGRlYnVnCi0gKiAgICAgICAgICAgICAgICAgZmFpbHVyZXMuCi0gKiBccGFyYW0gZW5kICAgICAgVGhlIGVuZCBvZiB0aGUgaW5wdXQgYnVmZmVyLgotICoKLSAqIFxyZXR1cm4gICAgICAgICBcYyAwIG9uIHN1Y2Nlc3MuCi0gKiBccmV0dXJuICAgICAgICAgQW4gXGMgTUJFRFRMU19FUlJfREhNX1hYWCBlcnJvciBjb2RlIG9uIGZhaWx1cmUuCi0gKi8KLWludCBtYmVkdGxzX2RobV9yZWFkX3BhcmFtcyhtYmVkdGxzX2RobV9jb250ZXh0ICpjdHgsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgY2hhciAqKnAsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdW5zaWduZWQgY2hhciAqZW5kKTsKLQotLyoqCi0gKiBcYnJpZWYgICAgICAgICAgVGhpcyBmdW5jdGlvbiBnZW5lcmF0ZXMgYSBESE0ga2V5IHBhaXIgYW5kIGV4cG9ydHMgaXRzCi0gKiAgICAgICAgICAgICAgICAgcHVibGljIHBhcnQgdG9nZXRoZXIgd2l0aCB0aGUgREhNIHBhcmFtZXRlcnMgaW4gdGhlIGZvcm1hdAotICogICAgICAgICAgICAgICAgIHVzZWQgaW4gYSBUTFMgU2VydmVyS2V5RXhjaGFuZ2UgaGFuZHNoYWtlIG1lc3NhZ2UuCi0gKgotICogXG5vdGUgICAgICAgICAgIFRoaXMgZnVuY3Rpb24gYXNzdW1lcyB0aGF0IHRoZSBESE0gcGFyYW1ldGVycyBcYyBjdHgtPlAKLSAqICAgICAgICAgICAgICAgICBhbmQgXGMgY3R4LT5HIGhhdmUgYWxyZWFkeSBiZWVuIHByb3Blcmx5IHNldC4gRm9yIHRoYXQsIHVzZQotICogICAgICAgICAgICAgICAgIG1iZWR0bHNfZGhtX3NldF9ncm91cCgpIGJlbG93IGluIGNvbmp1bmN0aW9uIHdpdGgKLSAqICAgICAgICAgICAgICAgICBtYmVkdGxzX21waV9yZWFkX2JpbmFyeSgpIGFuZCBtYmVkdGxzX21waV9yZWFkX3N0cmluZygpLgotICoKLSAqIFxub3RlICAgICAgICAgICBJbiBhIFRMUyBoYW5kc2hha2UsIHRoaXMgaXMgdGhlIGhvdyB0aGUgc2VydmVyIGdlbmVyYXRlcwotICogICAgICAgICAgICAgICAgIGFuZCBleHBvcnRzIGl0cyBESE0ga2V5IG1hdGVyaWFsLgotICoKLSAqIFxwYXJhbSBjdHggICAgICBUaGUgREhNIGNvbnRleHQgdG8gdXNlLiBUaGlzIG11c3QgYmUgaW5pdGlhbGl6ZWQKLSAqICAgICAgICAgICAgICAgICBhbmQgaGF2ZSB0aGUgREhNIHBhcmFtZXRlcnMgc2V0LiBJdCBtYXkgb3IgbWF5IG5vdAotICogICAgICAgICAgICAgICAgIGFscmVhZHkgaGF2ZSBpbXBvcnRlZCB0aGUgcGVlcidzIHB1YmxpYyBrZXkuCi0gKiBccGFyYW0geF9zaXplICAgVGhlIHByaXZhdGUga2V5IHNpemUgaW4gQnl0ZXMuCi0gKiBccGFyYW0gb2xlbiAgICAgVGhlIGFkZHJlc3MgYXQgd2hpY2ggdG8gc3RvcmUgdGhlIG51bWJlciBvZiBCeXRlcwotICogICAgICAgICAgICAgICAgIHdyaXR0ZW4gb24gc3VjY2Vzcy4gVGhpcyBtdXN0IG5vdCBiZSBcYyBOVUxMLgotICogXHBhcmFtIG91dHB1dCAgIFRoZSBkZXN0aW5hdGlvbiBidWZmZXIuIFRoaXMgbXVzdCBiZSBhIHdyaXRhYmxlIGJ1ZmZlciBvZgotICogICAgICAgICAgICAgICAgIHN1ZmZpY2llbnQgc2l6ZSB0byBob2xkIHRoZSByZWR1Y2VkIGJpbmFyeSBwcmVzZW50YXRpb24gb2YKLSAqICAgICAgICAgICAgICAgICB0aGUgbW9kdWx1cywgdGhlIGdlbmVyYXRvciBhbmQgdGhlIHB1YmxpYyBrZXksIGVhY2ggd3JhcHBlZAotICogICAgICAgICAgICAgICAgIHdpdGggYSAyLWJ5dGUgbGVuZ3RoIGZpZWxkLiBJdCBpcyB0aGUgcmVzcG9uc2liaWxpdHkgb2YgdGhlCi0gKiAgICAgICAgICAgICAgICAgY2FsbGVyIHRvIGVuc3VyZSB0aGF0IGVub3VnaCBzcGFjZSBpcyBhdmFpbGFibGUuIFJlZmVyIHRvCi0gKiAgICAgICAgICAgICAgICAgbWJlZHRsc19tcGlfc2l6ZSgpIHRvIGNvbXB1dGluZyB0aGUgYnl0ZS1zaXplIG9mIGFuIE1QSS4KLSAqIFxwYXJhbSBmX3JuZyAgICBUaGUgUk5HIGZ1bmN0aW9uLiBNdXN0IG5vdCBiZSBcYyBOVUxMLgotICogXHBhcmFtIHBfcm5nICAgIFRoZSBSTkcgY29udGV4dCB0byBiZSBwYXNzZWQgdG8gXHAgZl9ybmcuIFRoaXMgbWF5IGJlCi0gKiAgICAgICAgICAgICAgICAgXGMgTlVMTCBpZiBccCBmX3JuZyBkb2Vzbid0IG5lZWQgYSBjb250ZXh0IHBhcmFtZXRlci4KLSAqCi0gKiBccmV0dXJuICAgICAgICAgXGMgMCBvbiBzdWNjZXNzLgotICogXHJldHVybiAgICAgICAgIEFuIFxjIE1CRURUTFNfRVJSX0RITV9YWFggZXJyb3IgY29kZSBvbiBmYWlsdXJlLgotICovCi1pbnQgbWJlZHRsc19kaG1fbWFrZV9wYXJhbXMobWJlZHRsc19kaG1fY29udGV4dCAqY3R4LCBpbnQgeF9zaXplLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGNoYXIgKm91dHB1dCwgc2l6ZV90ICpvbGVuLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCAoKmZfcm5nKSh2b2lkICosIHVuc2lnbmVkIGNoYXIgKiwgc2l6ZV90KSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB2b2lkICpwX3JuZyk7Ci0KLS8qKgotICogXGJyaWVmICAgICAgICAgIFRoaXMgZnVuY3Rpb24gc2V0cyB0aGUgcHJpbWUgbW9kdWx1cyBhbmQgZ2VuZXJhdG9yLgotICoKLSAqIFxub3RlICAgICAgICAgICBUaGlzIGZ1bmN0aW9uIGNhbiBiZSB1c2VkIHRvIHNldCBcYyBjdHgtPlAsIFxjIGN0eC0+RwotICogICAgICAgICAgICAgICAgIGluIHByZXBhcmF0aW9uIGZvciBtYmVkdGxzX2RobV9tYWtlX3BhcmFtcygpLgotICoKLSAqIFxwYXJhbSBjdHggICAgICBUaGUgREhNIGNvbnRleHQgdG8gY29uZmlndXJlLiBUaGlzIG11c3QgYmUgaW5pdGlhbGl6ZWQuCi0gKiBccGFyYW0gUCAgICAgICAgVGhlIE1QSSBob2xkaW5nIHRoZSBESE0gcHJpbWUgbW9kdWx1cy4gVGhpcyBtdXN0IGJlCi0gKiAgICAgICAgICAgICAgICAgYW4gaW5pdGlhbGl6ZWQgTVBJLgotICogXHBhcmFtIEcgICAgICAgIFRoZSBNUEkgaG9sZGluZyB0aGUgREhNIGdlbmVyYXRvci4gVGhpcyBtdXN0IGJlIGFuCi0gKiAgICAgICAgICAgICAgICAgaW5pdGlhbGl6ZWQgTVBJLgotICoKLSAqIFxyZXR1cm4gICAgICAgICBcYyAwIGlmIHN1Y2Nlc3NmdWwuCi0gKiBccmV0dXJuICAgICAgICAgQW4gXGMgTUJFRFRMU19FUlJfREhNX1hYWCBlcnJvciBjb2RlIG9uIGZhaWx1cmUuCi0gKi8KLWludCBtYmVkdGxzX2RobV9zZXRfZ3JvdXAobWJlZHRsc19kaG1fY29udGV4dCAqY3R4LAotICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBtYmVkdGxzX21waSAqUCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbWJlZHRsc19tcGkgKkcpOwotCi0vKioKLSAqIFxicmllZiAgICAgICAgICBUaGlzIGZ1bmN0aW9uIGltcG9ydHMgdGhlIHJhdyBwdWJsaWMgdmFsdWUgb2YgdGhlIHBlZXIuCi0gKgotICogXG5vdGUgICAgICAgICAgIEluIGEgVExTIGhhbmRzaGFrZSwgdGhpcyBpcyB0aGUgaG93IHRoZSBzZXJ2ZXIgaW1wb3J0cwotICogICAgICAgICAgICAgICAgIHRoZSBDbGllbnQncyBwdWJsaWMgREhNIGtleS4KLSAqCi0gKiBccGFyYW0gY3R4ICAgICAgVGhlIERITSBjb250ZXh0IHRvIHVzZS4gVGhpcyBtdXN0IGJlIGluaXRpYWxpemVkIGFuZCBoYXZlCi0gKiAgICAgICAgICAgICAgICAgaXRzIERITSBwYXJhbWV0ZXJzIHNldCwgZS5nLiB2aWEgbWJlZHRsc19kaG1fc2V0X2dyb3VwKCkuCi0gKiAgICAgICAgICAgICAgICAgSXQgbWF5IG9yIG1heSBub3QgYWxyZWFkeSBoYXZlIGdlbmVyYXRlZCBpdHMgb3duIHByaXZhdGUga2V5LgotICogXHBhcmFtIGlucHV0ICAgIFRoZSBpbnB1dCBidWZmZXIgY29udGFpbmluZyB0aGUgXGMgR15ZIHZhbHVlIG9mIHRoZSBwZWVyLgotICogICAgICAgICAgICAgICAgIFRoaXMgbXVzdCBiZSBhIHJlYWRhYmxlIGJ1ZmZlciBvZiBzaXplIFxwIGlsZW4gQnl0ZXMuCi0gKiBccGFyYW0gaWxlbiAgICAgVGhlIHNpemUgb2YgdGhlIGlucHV0IGJ1ZmZlciBccCBpbnB1dCBpbiBCeXRlcy4KLSAqCi0gKiBccmV0dXJuICAgICAgICAgXGMgMCBvbiBzdWNjZXNzLgotICogXHJldHVybiAgICAgICAgIEFuIFxjIE1CRURUTFNfRVJSX0RITV9YWFggZXJyb3IgY29kZSBvbiBmYWlsdXJlLgotICovCi1pbnQgbWJlZHRsc19kaG1fcmVhZF9wdWJsaWMobWJlZHRsc19kaG1fY29udGV4dCAqY3R4LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgKmlucHV0LCBzaXplX3QgaWxlbik7Ci0KLS8qKgotICogXGJyaWVmICAgICAgICAgIFRoaXMgZnVuY3Rpb24gY3JlYXRlcyBhIERITSBrZXkgcGFpciBhbmQgZXhwb3J0cwotICogICAgICAgICAgICAgICAgIHRoZSByYXcgcHVibGljIGtleSBpbiBiaWctZW5kaWFuIGZvcm1hdC4KLSAqCi0gKiBcbm90ZSAgICAgICAgICAgVGhlIGRlc3RpbmF0aW9uIGJ1ZmZlciBpcyBhbHdheXMgZnVsbHkgd3JpdHRlbgotICogICAgICAgICAgICAgICAgIHNvIGFzIHRvIGNvbnRhaW4gYSBiaWctZW5kaWFuIHJlcHJlc2VudGF0aW9uIG9mIEdeWCBtb2QgUC4KLSAqICAgICAgICAgICAgICAgICBJZiBpdCBpcyBsYXJnZXIgdGhhbiBcYyBjdHgtPmxlbiwgaXQgaXMgcGFkZGVkIGFjY29yZGluZ2x5Ci0gKiAgICAgICAgICAgICAgICAgd2l0aCB6ZXJvLWJ5dGVzIGF0IHRoZSBiZWdpbm5pbmcuCi0gKgotICogXHBhcmFtIGN0eCAgICAgIFRoZSBESE0gY29udGV4dCB0byB1c2UuIFRoaXMgbXVzdCBiZSBpbml0aWFsaXplZCBhbmQKLSAqICAgICAgICAgICAgICAgICBoYXZlIHRoZSBESE0gcGFyYW1ldGVycyBzZXQuIEl0IG1heSBvciBtYXkgbm90IGFscmVhZHkKLSAqICAgICAgICAgICAgICAgICBoYXZlIGltcG9ydGVkIHRoZSBwZWVyJ3MgcHVibGljIGtleS4KLSAqIFxwYXJhbSB4X3NpemUgICBUaGUgcHJpdmF0ZSBrZXkgc2l6ZSBpbiBCeXRlcy4KLSAqIFxwYXJhbSBvdXRwdXQgICBUaGUgZGVzdGluYXRpb24gYnVmZmVyLiBUaGlzIG11c3QgYmUgYSB3cml0YWJsZSBidWZmZXIgb2YKLSAqICAgICAgICAgICAgICAgICBzaXplIFxwIG9sZW4gQnl0ZXMuCi0gKiBccGFyYW0gb2xlbiAgICAgVGhlIGxlbmd0aCBvZiB0aGUgZGVzdGluYXRpb24gYnVmZmVyLiBUaGlzIG11c3QgYmUgYXQgbGVhc3QKLSAqICAgICAgICAgICAgICAgICBlcXVhbCB0byBgY3R4LT5sZW5gICh0aGUgc2l6ZSBvZiBcYyBQKS4KLSAqIFxwYXJhbSBmX3JuZyAgICBUaGUgUk5HIGZ1bmN0aW9uLiBUaGlzIG11c3Qgbm90IGJlIFxjIE5VTEwuCi0gKiBccGFyYW0gcF9ybmcgICAgVGhlIFJORyBjb250ZXh0IHRvIGJlIHBhc3NlZCB0byBccCBmX3JuZy4gVGhpcyBtYXkgYmUgXGMgTlVMTAotICogICAgICAgICAgICAgICAgIGlmIFxwIGZfcm5nIGRvZXNuJ3QgbmVlZCBhIGNvbnRleHQgYXJndW1lbnQuCi0gKgotICogXHJldHVybiAgICAgICAgIFxjIDAgb24gc3VjY2Vzcy4KLSAqIFxyZXR1cm4gICAgICAgICBBbiBcYyBNQkVEVExTX0VSUl9ESE1fWFhYIGVycm9yIGNvZGUgb24gZmFpbHVyZS4KLSAqLwotaW50IG1iZWR0bHNfZGhtX21ha2VfcHVibGljKG1iZWR0bHNfZGhtX2NvbnRleHQgKmN0eCwgaW50IHhfc2l6ZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBjaGFyICpvdXRwdXQsIHNpemVfdCBvbGVuLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCAoKmZfcm5nKSh2b2lkICosIHVuc2lnbmVkIGNoYXIgKiwgc2l6ZV90KSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB2b2lkICpwX3JuZyk7Ci0KLS8qKgotICogXGJyaWVmICAgICAgICAgIFRoaXMgZnVuY3Rpb24gZGVyaXZlcyBhbmQgZXhwb3J0cyB0aGUgc2hhcmVkIHNlY3JldAotICogICAgICAgICAgICAgICAgIFxjIChHXlkpXlggbW9kIFxjIFAuCi0gKgotICogXG5vdGUgICAgICAgICAgIElmIFxwIGZfcm5nIGlzIG5vdCBcYyBOVUxMLCBpdCBpcyB1c2VkIHRvIGJsaW5kIHRoZSBpbnB1dCBhcwotICogICAgICAgICAgICAgICAgIGEgY291bnRlcm1lYXN1cmUgYWdhaW5zdCB0aW1pbmcgYXR0YWNrcy4gQmxpbmRpbmcgaXMgdXNlZAotICogICAgICAgICAgICAgICAgIG9ubHkgaWYgb3VyIHByaXZhdGUga2V5IFxjIFggaXMgcmUtdXNlZCwgYW5kIG5vdCB1c2VkCi0gKiAgICAgICAgICAgICAgICAgb3RoZXJ3aXNlLiBXZSByZWNvbW1lbmQgYWx3YXlzIHBhc3NpbmcgYSBub24tTlVMTAotICogICAgICAgICAgICAgICAgIFxwIGZfcm5nIGFyZ3VtZW50LgotICoKLSAqIFxwYXJhbSBjdHggICAgICAgICAgIFRoZSBESE0gY29udGV4dCB0byB1c2UuIFRoaXMgbXVzdCBiZSBpbml0aWFsaXplZAotICogICAgICAgICAgICAgICAgICAgICAgYW5kIGhhdmUgaXRzIG93biBwcml2YXRlIGtleSBnZW5lcmF0ZWQgYW5kIHRoZSBwZWVyJ3MKLSAqICAgICAgICAgICAgICAgICAgICAgIHB1YmxpYyBrZXkgaW1wb3J0ZWQuCi0gKiBccGFyYW0gb3V0cHV0ICAgICAgICBUaGUgYnVmZmVyIHRvIHdyaXRlIHRoZSBnZW5lcmF0ZWQgc2hhcmVkIGtleSB0by4gVGhpcwotICogICAgICAgICAgICAgICAgICAgICAgbXVzdCBiZSBhIHdyaXRhYmxlIGJ1ZmZlciBvZiBzaXplIFxwIG91dHB1dF9zaXplIEJ5dGVzLgotICogXHBhcmFtIG91dHB1dF9zaXplICAgVGhlIHNpemUgb2YgdGhlIGRlc3RpbmF0aW9uIGJ1ZmZlci4gVGhpcyBtdXN0IGJlIGF0Ci0gKiAgICAgICAgICAgICAgICAgICAgICBsZWFzdCB0aGUgc2l6ZSBvZiBcYyBjdHgtPmxlbiAodGhlIHNpemUgb2YgXGMgUCkuCi0gKiBccGFyYW0gb2xlbiAgICAgICAgICBPbiBleGl0LCBob2xkcyB0aGUgYWN0dWFsIG51bWJlciBvZiBCeXRlcyB3cml0dGVuLgotICogXHBhcmFtIGZfcm5nICAgICAgICAgVGhlIFJORyBmdW5jdGlvbi4gTXVzdCBub3QgYmUgXGMgTlVMTC4gVXNlZCBmb3IKLSAqICAgICAgICAgICAgICAgICAgICAgIGJsaW5kaW5nLgotICogXHBhcmFtIHBfcm5nICAgICAgICAgVGhlIFJORyBjb250ZXh0IHRvIGJlIHBhc3NlZCB0byBccCBmX3JuZy4gVGhpcyBtYXkgYmUKLSAqICAgICAgICAgICAgICAgICAgICAgIFxjIE5VTEwgaWYgXHAgZl9ybmcgZG9lc24ndCBuZWVkIGEgY29udGV4dCBwYXJhbWV0ZXIuCi0gKgotICogXHJldHVybiAgICAgICAgICAgICAgXGMgMCBvbiBzdWNjZXNzLgotICogXHJldHVybiAgICAgICAgICAgICAgQW4gXGMgTUJFRFRMU19FUlJfREhNX1hYWCBlcnJvciBjb2RlIG9uIGZhaWx1cmUuCi0gKi8KLWludCBtYmVkdGxzX2RobV9jYWxjX3NlY3JldChtYmVkdGxzX2RobV9jb250ZXh0ICpjdHgsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgY2hhciAqb3V0cHV0LCBzaXplX3Qgb3V0cHV0X3NpemUsIHNpemVfdCAqb2xlbiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgKCpmX3JuZykodm9pZCAqLCB1bnNpZ25lZCBjaGFyICosIHNpemVfdCksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgdm9pZCAqcF9ybmcpOwotCi0vKioKLSAqIFxicmllZiAgICAgICAgICBUaGlzIGZ1bmN0aW9uIHJldHVybnMgdGhlIHNpemUgb2YgdGhlIHByaW1lIG1vZHVsdXMgaW4gYml0cy4KLSAqCi0gKiBccGFyYW0gY3R4ICAgICAgVGhlIERITSBjb250ZXh0IHRvIHF1ZXJ5LgotICoKLSAqIFxyZXR1cm4gICAgICAgICBUaGUgc2l6ZSBvZiB0aGUgcHJpbWUgbW9kdWx1cyBpbiBiaXRzLAotICogICAgICAgICAgICAgICAgIGkuZS4gdGhlIG51bWJlciBuIHN1Y2ggdGhhdCAyXihuLTEpIDw9IFAgPCAyXm4uCi0gKi8KLXNpemVfdCBtYmVkdGxzX2RobV9nZXRfYml0bGVuKGNvbnN0IG1iZWR0bHNfZGhtX2NvbnRleHQgKmN0eCk7Ci0KLS8qKgotICogXGJyaWVmICAgICAgICAgIFRoaXMgZnVuY3Rpb24gcmV0dXJucyB0aGUgc2l6ZSBvZiB0aGUgcHJpbWUgbW9kdWx1cyBpbiBieXRlcy4KLSAqCi0gKiBccGFyYW0gY3R4ICAgICAgVGhlIERITSBjb250ZXh0IHRvIHF1ZXJ5LgotICoKLSAqIFxyZXR1cm4gICAgICAgICBUaGUgc2l6ZSBvZiB0aGUgcHJpbWUgbW9kdWx1cyBpbiBieXRlcywKLSAqICAgICAgICAgICAgICAgICBpLmUuIHRoZSBudW1iZXIgbiBzdWNoIHRoYXQgMl4oOCoobi0xKSkgPD0gUCA8IDJeKDgqbikuCi0gKi8KLXNpemVfdCBtYmVkdGxzX2RobV9nZXRfbGVuKGNvbnN0IG1iZWR0bHNfZGhtX2NvbnRleHQgKmN0eCk7Ci0KLS8qKgotICogXGJyaWVmICAgICAgICAgIFRoaXMgZnVuY3Rpb24gY29waWVzIGEgcGFyYW1ldGVyIG9mIGEgREhNIGtleS4KLSAqCi0gKiBccGFyYW0gY3R4ICAgICAgVGhlIERITSBjb250ZXh0IHRvIHF1ZXJ5LgotICogXHBhcmFtIHBhcmFtICAgIFRoZSBwYXJhbWV0ZXIgdG8gY29weS4KLSAqIFxwYXJhbSBkZXN0ICAgICBUaGUgTVBJIG9iamVjdCB0byBjb3B5IHRoZSB2YWx1ZSBpbnRvLiBJdCBtdXN0IGJlCi0gKiAgICAgICAgICAgICAgICAgaW5pdGlhbGl6ZWQuCi0gKgotICogXHJldHVybiAgICAgICAgIFxjIDAgb24gc3VjY2Vzcy4KLSAqIFxyZXR1cm4gICAgICAgICAjTUJFRFRMU19FUlJfREhNX0JBRF9JTlBVVF9EQVRBIGlmIFxwIHBhcmFtIGlzIGludmFsaWQuCi0gKiBccmV0dXJuICAgICAgICAgQW4gXGMgTUJFRFRMU19FUlJfTVBJX1hYWCBlcnJvciBjb2RlIGlmIHRoZSBjb3B5IGZhaWxzLgotICovCi1pbnQgbWJlZHRsc19kaG1fZ2V0X3ZhbHVlKGNvbnN0IG1iZWR0bHNfZGhtX2NvbnRleHQgKmN0eCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgbWJlZHRsc19kaG1fcGFyYW1ldGVyIHBhcmFtLAotICAgICAgICAgICAgICAgICAgICAgICAgICBtYmVkdGxzX21waSAqZGVzdCk7Ci0KLS8qKgotICogXGJyaWVmICAgICAgICAgIFRoaXMgZnVuY3Rpb24gZnJlZXMgYW5kIGNsZWFycyB0aGUgY29tcG9uZW50cwotICogICAgICAgICAgICAgICAgIG9mIGEgREhNIGNvbnRleHQuCi0gKgotICogXHBhcmFtIGN0eCAgICAgIFRoZSBESE0gY29udGV4dCB0byBmcmVlIGFuZCBjbGVhci4gVGhpcyBtYXkgYmUgXGMgTlVMTCwKLSAqICAgICAgICAgICAgICAgICBpbiB3aGljaCBjYXNlIHRoaXMgZnVuY3Rpb24gaXMgYSBuby1vcC4gSWYgaXQgaXMgbm90IFxjIE5VTEwsCi0gKiAgICAgICAgICAgICAgICAgaXQgbXVzdCBwb2ludCB0byBhbiBpbml0aWFsaXplZCBESE0gY29udGV4dC4KLSAqLwotdm9pZCBtYmVkdGxzX2RobV9mcmVlKG1iZWR0bHNfZGhtX2NvbnRleHQgKmN0eCk7Ci0KLSNpZiBkZWZpbmVkKE1CRURUTFNfQVNOMV9QQVJTRV9DKQotLyoqCi0gKiBcYnJpZWYgICAgICAgICAgICAgVGhpcyBmdW5jdGlvbiBwYXJzZXMgREhNIHBhcmFtZXRlcnMgaW4gUEVNIG9yIERFUiBmb3JtYXQuCi0gKgotICogXHBhcmFtIGRobSAgICAgICAgIFRoZSBESE0gY29udGV4dCB0byBpbXBvcnQgdGhlIERITSBwYXJhbWV0ZXJzIGludG8uCi0gKiAgICAgICAgICAgICAgICAgICAgVGhpcyBtdXN0IGJlIGluaXRpYWxpemVkLgotICogXHBhcmFtIGRobWluICAgICAgIFRoZSBpbnB1dCBidWZmZXIuIFRoaXMgbXVzdCBiZSBhIHJlYWRhYmxlIGJ1ZmZlciBvZgotICogICAgICAgICAgICAgICAgICAgIGxlbmd0aCBccCBkaG1pbmxlbiBCeXRlcy4KLSAqIFxwYXJhbSBkaG1pbmxlbiAgICBUaGUgc2l6ZSBvZiB0aGUgaW5wdXQgYnVmZmVyIFxwIGRobWluLCBpbmNsdWRpbmcgdGhlCi0gKiAgICAgICAgICAgICAgICAgICAgdGVybWluYXRpbmcgXGMgTlVMTCBCeXRlIGZvciBQRU0gZGF0YS4KLSAqCi0gKiBccmV0dXJuICAgICAgICAgICAgXGMgMCBvbiBzdWNjZXNzLgotICogXHJldHVybiAgICAgICAgICAgIEFuIFxjIE1CRURUTFNfRVJSX0RITV9YWFggb3IgXGMgTUJFRFRMU19FUlJfUEVNX1hYWCBlcnJvcgotICogICAgICAgICAgICAgICAgICAgIGNvZGUgb24gZmFpbHVyZS4KLSAqLwotaW50IG1iZWR0bHNfZGhtX3BhcnNlX2RobShtYmVkdGxzX2RobV9jb250ZXh0ICpkaG0sIGNvbnN0IHVuc2lnbmVkIGNoYXIgKmRobWluLAotICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgZGhtaW5sZW4pOwotCi0jaWYgZGVmaW5lZChNQkVEVExTX0ZTX0lPKQotLyoqCi0gKiBcYnJpZWYgICAgICAgICAgVGhpcyBmdW5jdGlvbiBsb2FkcyBhbmQgcGFyc2VzIERITSBwYXJhbWV0ZXJzIGZyb20gYSBmaWxlLgotICoKLSAqIFxwYXJhbSBkaG0gICAgICBUaGUgREhNIGNvbnRleHQgdG8gbG9hZCB0aGUgcGFyYW1ldGVycyB0by4KLSAqICAgICAgICAgICAgICAgICBUaGlzIG11c3QgYmUgaW5pdGlhbGl6ZWQuCi0gKiBccGFyYW0gcGF0aCAgICAgVGhlIGZpbGVuYW1lIHRvIHJlYWQgdGhlIERITSBwYXJhbWV0ZXJzIGZyb20uCi0gKiAgICAgICAgICAgICAgICAgVGhpcyBtdXN0IG5vdCBiZSBcYyBOVUxMLgotICoKLSAqIFxyZXR1cm4gICAgICAgICBcYyAwIG9uIHN1Y2Nlc3MuCi0gKiBccmV0dXJuICAgICAgICAgQW4gXGMgTUJFRFRMU19FUlJfREhNX1hYWCBvciBcYyBNQkVEVExTX0VSUl9QRU1fWFhYCi0gKiAgICAgICAgICAgICAgICAgZXJyb3IgY29kZSBvbiBmYWlsdXJlLgotICovCi1pbnQgbWJlZHRsc19kaG1fcGFyc2VfZGhtZmlsZShtYmVkdGxzX2RobV9jb250ZXh0ICpkaG0sIGNvbnN0IGNoYXIgKnBhdGgpOwotI2VuZGlmIC8qIE1CRURUTFNfRlNfSU8gKi8KLSNlbmRpZiAvKiBNQkVEVExTX0FTTjFfUEFSU0VfQyAqLwotCi0jaWYgZGVmaW5lZChNQkVEVExTX1NFTEZfVEVTVCkKLQotLyoqCi0gKiBcYnJpZWYgICAgICAgICAgVGhlIERNSCBjaGVja3VwIHJvdXRpbmUuCi0gKgotICogXHJldHVybiAgICAgICAgIFxjIDAgb24gc3VjY2Vzcy4KLSAqIFxyZXR1cm4gICAgICAgICBcYyAxIG9uIGZhaWx1cmUuCi0gKi8KLWludCBtYmVkdGxzX2RobV9zZWxmX3Rlc3QoaW50IHZlcmJvc2UpOwotCi0jZW5kaWYgLyogTUJFRFRMU19TRUxGX1RFU1QgKi8KLSNpZmRlZiBfX2NwbHVzcGx1cwotfQotI2VuZGlmCi0KLS8qKgotICogUkZDIDM1MjYsIFJGQyA1MTE0IGFuZCBSRkMgNzkxOSBzdGFuZGFyZGl6ZSBhIG51bWJlciBvZgotICogRGlmZmllLUhlbGxtYW4gZ3JvdXBzLCBzb21lIG9mIHdoaWNoIGFyZSBpbmNsdWRlZCBoZXJlCi0gKiBmb3IgdXNlIHdpdGhpbiB0aGUgU1NML1RMUyBtb2R1bGUgYW5kIHRoZSB1c2VyJ3MgY29udmVuaWVuY2UKLSAqIHdoZW4gY29uZmlndXJpbmcgdGhlIERpZmZpZS1IZWxsbWFuIHBhcmFtZXRlcnMgYnkgaGFuZAotICogdGhyb3VnaCBcYyBtYmVkdGxzX3NzbF9jb25mX2RoX3BhcmFtLgotICoKLSAqIFRoZSBmb2xsb3dpbmcgbGlzdHMgdGhlIHNvdXJjZSBvZiB0aGUgYWJvdmUgZ3JvdXBzIGluIHRoZSBzdGFuZGFyZHM6Ci0gKiAtIFJGQyA1MTE0IHNlY3Rpb24gMi4yOiAgMjA0OC1iaXQgTU9EUCBHcm91cCB3aXRoIDIyNC1iaXQgUHJpbWUgT3JkZXIgU3ViZ3JvdXAKLSAqIC0gUkZDIDM1MjYgc2VjdGlvbiAzOiAgICAyMDQ4LWJpdCBNT0RQIEdyb3VwCi0gKiAtIFJGQyAzNTI2IHNlY3Rpb24gNDogICAgMzA3Mi1iaXQgTU9EUCBHcm91cAotICogLSBSRkMgMzUyNiBzZWN0aW9uIDU6ICAgIDQwOTYtYml0IE1PRFAgR3JvdXAKLSAqIC0gUkZDIDc5MTkgc2VjdGlvbiBBLjE6ICBmZmRoZTIwNDgKLSAqIC0gUkZDIDc5MTkgc2VjdGlvbiBBLjI6ICBmZmRoZTMwNzIKLSAqIC0gUkZDIDc5MTkgc2VjdGlvbiBBLjM6ICBmZmRoZTQwOTYKLSAqIC0gUkZDIDc5MTkgc2VjdGlvbiBBLjQ6ICBmZmRoZTYxNDQKLSAqIC0gUkZDIDc5MTkgc2VjdGlvbiBBLjU6ICBmZmRoZTgxOTIKLSAqCi0gKiBUaGUgY29uc3RhbnRzIHdpdGggc3VmZml4ICJfcCIgZGVub3RlIHRoZSBjaG9zZW4gcHJpbWUgbW9kdWxpLCB3aGlsZQotICogdGhlIGNvbnN0YW50cyB3aXRoIHN1ZmZpeCAiX2ciIGRlbm90ZSB0aGUgY2hvc2VuIGdlbmVyYXRvcgotICogb2YgdGhlIGFzc29jaWF0ZWQgcHJpbWUgZmllbGQuCi0gKgotICogVGhlIGNvbnN0YW50cyBmdXJ0aGVyIHN1ZmZpeGVkIHdpdGggIl9iaW4iIGFyZSBwcm92aWRlZCBpbiBiaW5hcnkgZm9ybWF0LAotICogd2hpbGUgYWxsIG90aGVyIGNvbnN0YW50cyByZXByZXNlbnQgbnVsbC10ZXJtaW5hdGVkIHN0cmluZ3MgaG9sZGluZyB0aGUKLSAqIGhleGFkZWNpbWFsIHByZXNlbnRhdGlvbiBvZiB0aGUgcmVzcGVjdGl2ZSBudW1iZXJzLgotICoKLSAqIFRoZSBwcmltZXMgZnJvbSBSRkMgMzUyNiBhbmQgUkZDIDc5MTkgaGF2ZSBiZWVuIGdlbmVyYXRpbmcgYnkgdGhlIGZvbGxvd2luZwotICogdHJ1c3Qtd29ydGh5IHByb2NlZHVyZToKLSAqIC0gRml4IE4gaW4geyAyMDQ4LCAzMDcyLCA0MDk2LCA2MTQ0LCA4MTkyIH0gYW5kIGNvbnNpZGVyIHRoZSBOLWJpdCBudW1iZXIKLSAqICAgdGhlIGZpcnN0IGFuZCBsYXN0IDY0IGJpdHMgYXJlIGFsbCAxLCBhbmQgdGhlIHJlbWFpbmluZyBOIC0gMTI4IGJpdHMgb2YKLSAqICAgd2hpY2ggYXJlIDB4N2ZmLi4uZmYuCi0gKiAtIEFkZCB0aGUgc21hbGxlc3QgbXVsdGlwbGUgb2YgdGhlIGZpcnN0IE4gLSAxMjkgYml0cyBvZiB0aGUgYmluYXJ5IGV4cGFuc2lvbgotICogICBvZiBwaSAoZm9yIFJGQyA1MjM2KSBvciBlIChmb3IgUkZDIDc5MTkpIHRvIHRoaXMgaW50ZXJtZWRpYXRlIGJpdC1zdHJpbmcKLSAqICAgc3VjaCB0aGF0IHRoZSByZXN1bHRpbmcgaW50ZWdlciBpcyBhIHNhZmUtcHJpbWUuCi0gKiAtIFRoZSByZXN1bHQgaXMgdGhlIHJlc3BlY3RpdmUgUkZDIDM1MjYgLyA3OTE5IHByaW1lLCBhbmQgdGhlIGNvcnJlc3BvbmRpbmcKLSAqICAgZ2VuZXJhdG9yIGlzIGFsd2F5cyBjaG9zZW4gdG8gYmUgMiAod2hpY2ggaXMgYSBzcXVhcmUgZm9yIHRoZXNlIHByaW1lLAotICogICBoZW5jZSB0aGUgY29ycmVzcG9uZGluZyBzdWJncm91cCBoYXMgb3JkZXIgKHAtMSkvMiBhbmQgYXZvaWRzIGxlYWtpbmcgYQotICogICBiaXQgaW4gdGhlIHByaXZhdGUgZXhwb25lbnQpLgotICoKLSAqLwotCi0vKgotICogVHJ1c3R3b3J0aHkgREhNIHBhcmFtZXRlcnMgaW4gYmluYXJ5IGZvcm0KLSAqLwotCi0jZGVmaW5lIE1CRURUTFNfREhNX1JGQzM1MjZfTU9EUF8yMDQ4X1BfQklOIHsgICAgICAgIFwKLSAgICAgICAgMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiwgXAotICAgICAgICAweEM5LCAweDBGLCAweERBLCAweEEyLCAweDIxLCAweDY4LCAweEMyLCAweDM0LCBcCi0gICAgICAgIDB4QzQsIDB4QzYsIDB4NjIsIDB4OEIsIDB4ODAsIDB4REMsIDB4MUMsIDB4RDEsIFwKLSAgICAgICAgMHgyOSwgMHgwMiwgMHg0RSwgMHgwOCwgMHg4QSwgMHg2NywgMHhDQywgMHg3NCwgXAotICAgICAgICAweDAyLCAweDBCLCAweEJFLCAweEE2LCAweDNCLCAweDEzLCAweDlCLCAweDIyLCBcCi0gICAgICAgIDB4NTEsIDB4NEEsIDB4MDgsIDB4NzksIDB4OEUsIDB4MzQsIDB4MDQsIDB4REQsIFwKLSAgICAgICAgMHhFRiwgMHg5NSwgMHgxOSwgMHhCMywgMHhDRCwgMHgzQSwgMHg0MywgMHgxQiwgXAotICAgICAgICAweDMwLCAweDJCLCAweDBBLCAweDZELCAweEYyLCAweDVGLCAweDE0LCAweDM3LCBcCi0gICAgICAgIDB4NEYsIDB4RTEsIDB4MzUsIDB4NkQsIDB4NkQsIDB4NTEsIDB4QzIsIDB4NDUsIFwKLSAgICAgICAgMHhFNCwgMHg4NSwgMHhCNSwgMHg3NiwgMHg2MiwgMHg1RSwgMHg3RSwgMHhDNiwgXAotICAgICAgICAweEY0LCAweDRDLCAweDQyLCAweEU5LCAweEE2LCAweDM3LCAweEVELCAweDZCLCBcCi0gICAgICAgIDB4MEIsIDB4RkYsIDB4NUMsIDB4QjYsIDB4RjQsIDB4MDYsIDB4QjcsIDB4RUQsIFwKLSAgICAgICAgMHhFRSwgMHgzOCwgMHg2QiwgMHhGQiwgMHg1QSwgMHg4OSwgMHg5RiwgMHhBNSwgXAotICAgICAgICAweEFFLCAweDlGLCAweDI0LCAweDExLCAweDdDLCAweDRCLCAweDFGLCAweEU2LCBcCi0gICAgICAgIDB4NDksIDB4MjgsIDB4NjYsIDB4NTEsIDB4RUMsIDB4RTQsIDB4NUIsIDB4M0QsIFwKLSAgICAgICAgMHhDMiwgMHgwMCwgMHg3QywgMHhCOCwgMHhBMSwgMHg2MywgMHhCRiwgMHgwNSwgXAotICAgICAgICAweDk4LCAweERBLCAweDQ4LCAweDM2LCAweDFDLCAweDU1LCAweEQzLCAweDlBLCBcCi0gICAgICAgIDB4NjksIDB4MTYsIDB4M0YsIDB4QTgsIDB4RkQsIDB4MjQsIDB4Q0YsIDB4NUYsIFwKLSAgICAgICAgMHg4MywgMHg2NSwgMHg1RCwgMHgyMywgMHhEQywgMHhBMywgMHhBRCwgMHg5NiwgXAotICAgICAgICAweDFDLCAweDYyLCAweEYzLCAweDU2LCAweDIwLCAweDg1LCAweDUyLCAweEJCLCBcCi0gICAgICAgIDB4OUUsIDB4RDUsIDB4MjksIDB4MDcsIDB4NzAsIDB4OTYsIDB4OTYsIDB4NkQsIFwKLSAgICAgICAgMHg2NywgMHgwQywgMHgzNSwgMHg0RSwgMHg0QSwgMHhCQywgMHg5OCwgMHgwNCwgXAotICAgICAgICAweEYxLCAweDc0LCAweDZDLCAweDA4LCAweENBLCAweDE4LCAweDIxLCAweDdDLCBcCi0gICAgICAgIDB4MzIsIDB4OTAsIDB4NUUsIDB4NDYsIDB4MkUsIDB4MzYsIDB4Q0UsIDB4M0IsIFwKLSAgICAgICAgMHhFMywgMHg5RSwgMHg3NywgMHgyQywgMHgxOCwgMHgwRSwgMHg4NiwgMHgwMywgXAotICAgICAgICAweDlCLCAweDI3LCAweDgzLCAweEEyLCAweEVDLCAweDA3LCAweEEyLCAweDhGLCBcCi0gICAgICAgIDB4QjUsIDB4QzUsIDB4NUQsIDB4RjAsIDB4NkYsIDB4NEMsIDB4NTIsIDB4QzksIFwKLSAgICAgICAgMHhERSwgMHgyQiwgMHhDQiwgMHhGNiwgMHg5NSwgMHg1OCwgMHgxNywgMHgxOCwgXAotICAgICAgICAweDM5LCAweDk1LCAweDQ5LCAweDdDLCAweEVBLCAweDk1LCAweDZBLCAweEU1LCBcCi0gICAgICAgIDB4MTUsIDB4RDIsIDB4MjYsIDB4MTgsIDB4OTgsIDB4RkEsIDB4MDUsIDB4MTAsIFwKLSAgICAgICAgMHgxNSwgMHg3MiwgMHg4RSwgMHg1QSwgMHg4QSwgMHhBQywgMHhBQSwgMHg2OCwgXAotICAgICAgICAweEZGLCAweEZGLCAweEZGLCAweEZGLCAweEZGLCAweEZGLCAweEZGLCAweEZGIH0KLQotI2RlZmluZSBNQkVEVExTX0RITV9SRkMzNTI2X01PRFBfMjA0OF9HX0JJTiB7IDB4MDIgfQotCi0jZGVmaW5lIE1CRURUTFNfREhNX1JGQzM1MjZfTU9EUF8zMDcyX1BfQklOIHsgICAgICAgXAotICAgICAgICAweEZGLCAweEZGLCAweEZGLCAweEZGLCAweEZGLCAweEZGLCAweEZGLCAweEZGLCBcCi0gICAgICAgIDB4QzksIDB4MEYsIDB4REEsIDB4QTIsIDB4MjEsIDB4NjgsIDB4QzIsIDB4MzQsIFwKLSAgICAgICAgMHhDNCwgMHhDNiwgMHg2MiwgMHg4QiwgMHg4MCwgMHhEQywgMHgxQywgMHhEMSwgXAotICAgICAgICAweDI5LCAweDAyLCAweDRFLCAweDA4LCAweDhBLCAweDY3LCAweENDLCAweDc0LCBcCi0gICAgICAgIDB4MDIsIDB4MEIsIDB4QkUsIDB4QTYsIDB4M0IsIDB4MTMsIDB4OUIsIDB4MjIsIFwKLSAgICAgICAgMHg1MSwgMHg0QSwgMHgwOCwgMHg3OSwgMHg4RSwgMHgzNCwgMHgwNCwgMHhERCwgXAotICAgICAgICAweEVGLCAweDk1LCAweDE5LCAweEIzLCAweENELCAweDNBLCAweDQzLCAweDFCLCBcCi0gICAgICAgIDB4MzAsIDB4MkIsIDB4MEEsIDB4NkQsIDB4RjIsIDB4NUYsIDB4MTQsIDB4MzcsIFwKLSAgICAgICAgMHg0RiwgMHhFMSwgMHgzNSwgMHg2RCwgMHg2RCwgMHg1MSwgMHhDMiwgMHg0NSwgXAotICAgICAgICAweEU0LCAweDg1LCAweEI1LCAweDc2LCAweDYyLCAweDVFLCAweDdFLCAweEM2LCBcCi0gICAgICAgIDB4RjQsIDB4NEMsIDB4NDIsIDB4RTksIDB4QTYsIDB4MzcsIDB4RUQsIDB4NkIsIFwKLSAgICAgICAgMHgwQiwgMHhGRiwgMHg1QywgMHhCNiwgMHhGNCwgMHgwNiwgMHhCNywgMHhFRCwgXAotICAgICAgICAweEVFLCAweDM4LCAweDZCLCAweEZCLCAweDVBLCAweDg5LCAweDlGLCAweEE1LCBcCi0gICAgICAgIDB4QUUsIDB4OUYsIDB4MjQsIDB4MTEsIDB4N0MsIDB4NEIsIDB4MUYsIDB4RTYsIFwKLSAgICAgICAgMHg0OSwgMHgyOCwgMHg2NiwgMHg1MSwgMHhFQywgMHhFNCwgMHg1QiwgMHgzRCwgXAotICAgICAgICAweEMyLCAweDAwLCAweDdDLCAweEI4LCAweEExLCAweDYzLCAweEJGLCAweDA1LCBcCi0gICAgICAgIDB4OTgsIDB4REEsIDB4NDgsIDB4MzYsIDB4MUMsIDB4NTUsIDB4RDMsIDB4OUEsIFwKLSAgICAgICAgMHg2OSwgMHgxNiwgMHgzRiwgMHhBOCwgMHhGRCwgMHgyNCwgMHhDRiwgMHg1RiwgXAotICAgICAgICAweDgzLCAweDY1LCAweDVELCAweDIzLCAweERDLCAweEEzLCAweEFELCAweDk2LCBcCi0gICAgICAgIDB4MUMsIDB4NjIsIDB4RjMsIDB4NTYsIDB4MjAsIDB4ODUsIDB4NTIsIDB4QkIsIFwKLSAgICAgICAgMHg5RSwgMHhENSwgMHgyOSwgMHgwNywgMHg3MCwgMHg5NiwgMHg5NiwgMHg2RCwgXAotICAgICAgICAweDY3LCAweDBDLCAweDM1LCAweDRFLCAweDRBLCAweEJDLCAweDk4LCAweDA0LCBcCi0gICAgICAgIDB4RjEsIDB4NzQsIDB4NkMsIDB4MDgsIDB4Q0EsIDB4MTgsIDB4MjEsIDB4N0MsIFwKLSAgICAgICAgMHgzMiwgMHg5MCwgMHg1RSwgMHg0NiwgMHgyRSwgMHgzNiwgMHhDRSwgMHgzQiwgXAotICAgICAgICAweEUzLCAweDlFLCAweDc3LCAweDJDLCAweDE4LCAweDBFLCAweDg2LCAweDAzLCBcCi0gICAgICAgIDB4OUIsIDB4MjcsIDB4ODMsIDB4QTIsIDB4RUMsIDB4MDcsIDB4QTIsIDB4OEYsIFwKLSAgICAgICAgMHhCNSwgMHhDNSwgMHg1RCwgMHhGMCwgMHg2RiwgMHg0QywgMHg1MiwgMHhDOSwgXAotICAgICAgICAweERFLCAweDJCLCAweENCLCAweEY2LCAweDk1LCAweDU4LCAweDE3LCAweDE4LCBcCi0gICAgICAgIDB4MzksIDB4OTUsIDB4NDksIDB4N0MsIDB4RUEsIDB4OTUsIDB4NkEsIDB4RTUsIFwKLSAgICAgICAgMHgxNSwgMHhEMiwgMHgyNiwgMHgxOCwgMHg5OCwgMHhGQSwgMHgwNSwgMHgxMCwgXAotICAgICAgICAweDE1LCAweDcyLCAweDhFLCAweDVBLCAweDhBLCAweEFBLCAweEM0LCAweDJELCBcCi0gICAgICAgIDB4QUQsIDB4MzMsIDB4MTcsIDB4MEQsIDB4MDQsIDB4NTAsIDB4N0EsIDB4MzMsIFwKLSAgICAgICAgMHhBOCwgMHg1NSwgMHgyMSwgMHhBQiwgMHhERiwgMHgxQywgMHhCQSwgMHg2NCwgXAotICAgICAgICAweEVDLCAweEZCLCAweDg1LCAweDA0LCAweDU4LCAweERCLCAweEVGLCAweDBBLCBcCi0gICAgICAgIDB4OEEsIDB4RUEsIDB4NzEsIDB4NTcsIDB4NUQsIDB4MDYsIDB4MEMsIDB4N0QsIFwKLSAgICAgICAgMHhCMywgMHg5NywgMHgwRiwgMHg4NSwgMHhBNiwgMHhFMSwgMHhFNCwgMHhDNywgXAotICAgICAgICAweEFCLCAweEY1LCAweEFFLCAweDhDLCAweERCLCAweDA5LCAweDMzLCAweEQ3LCBcCi0gICAgICAgIDB4MUUsIDB4OEMsIDB4OTQsIDB4RTAsIDB4NEEsIDB4MjUsIDB4NjEsIDB4OUQsIFwKLSAgICAgICAgMHhDRSwgMHhFMywgMHhEMiwgMHgyNiwgMHgxQSwgMHhEMiwgMHhFRSwgMHg2QiwgXAotICAgICAgICAweEYxLCAweDJGLCAweEZBLCAweDA2LCAweEQ5LCAweDhBLCAweDA4LCAweDY0LCBcCi0gICAgICAgIDB4RDgsIDB4NzYsIDB4MDIsIDB4NzMsIDB4M0UsIDB4QzgsIDB4NkEsIDB4NjQsIFwKLSAgICAgICAgMHg1MiwgMHgxRiwgMHgyQiwgMHgxOCwgMHgxNywgMHg3QiwgMHgyMCwgMHgwQywgXAotICAgICAgICAweEJCLCAweEUxLCAweDE3LCAweDU3LCAweDdBLCAweDYxLCAweDVELCAweDZDLCBcCi0gICAgICAgIDB4NzcsIDB4MDksIDB4ODgsIDB4QzAsIDB4QkEsIDB4RDksIDB4NDYsIDB4RTIsIFwKLSAgICAgICAgMHgwOCwgMHhFMiwgMHg0RiwgMHhBMCwgMHg3NCwgMHhFNSwgMHhBQiwgMHgzMSwgXAotICAgICAgICAweDQzLCAweERCLCAweDVCLCAweEZDLCAweEUwLCAweEZELCAweDEwLCAweDhFLCBcCi0gICAgICAgIDB4NEIsIDB4ODIsIDB4RDEsIDB4MjAsIDB4QTksIDB4M0EsIDB4RDIsIDB4Q0EsIFwKLSAgICAgICAgMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiB9Ci0KLSNkZWZpbmUgTUJFRFRMU19ESE1fUkZDMzUyNl9NT0RQXzMwNzJfR19CSU4geyAweDAyIH0KLQotI2RlZmluZSBNQkVEVExTX0RITV9SRkMzNTI2X01PRFBfNDA5Nl9QX0JJTiAgeyAgICAgICBcCi0gICAgICAgIDB4RkYsIDB4RkYsIDB4RkYsIDB4RkYsIDB4RkYsIDB4RkYsIDB4RkYsIDB4RkYsICBcCi0gICAgICAgIDB4QzksIDB4MEYsIDB4REEsIDB4QTIsIDB4MjEsIDB4NjgsIDB4QzIsIDB4MzQsICBcCi0gICAgICAgIDB4QzQsIDB4QzYsIDB4NjIsIDB4OEIsIDB4ODAsIDB4REMsIDB4MUMsIDB4RDEsICBcCi0gICAgICAgIDB4MjksIDB4MDIsIDB4NEUsIDB4MDgsIDB4OEEsIDB4NjcsIDB4Q0MsIDB4NzQsICBcCi0gICAgICAgIDB4MDIsIDB4MEIsIDB4QkUsIDB4QTYsIDB4M0IsIDB4MTMsIDB4OUIsIDB4MjIsICBcCi0gICAgICAgIDB4NTEsIDB4NEEsIDB4MDgsIDB4NzksIDB4OEUsIDB4MzQsIDB4MDQsIDB4REQsICBcCi0gICAgICAgIDB4RUYsIDB4OTUsIDB4MTksIDB4QjMsIDB4Q0QsIDB4M0EsIDB4NDMsIDB4MUIsICBcCi0gICAgICAgIDB4MzAsIDB4MkIsIDB4MEEsIDB4NkQsIDB4RjIsIDB4NUYsIDB4MTQsIDB4MzcsICBcCi0gICAgICAgIDB4NEYsIDB4RTEsIDB4MzUsIDB4NkQsIDB4NkQsIDB4NTEsIDB4QzIsIDB4NDUsICBcCi0gICAgICAgIDB4RTQsIDB4ODUsIDB4QjUsIDB4NzYsIDB4NjIsIDB4NUUsIDB4N0UsIDB4QzYsICBcCi0gICAgICAgIDB4RjQsIDB4NEMsIDB4NDIsIDB4RTksIDB4QTYsIDB4MzcsIDB4RUQsIDB4NkIsICBcCi0gICAgICAgIDB4MEIsIDB4RkYsIDB4NUMsIDB4QjYsIDB4RjQsIDB4MDYsIDB4QjcsIDB4RUQsICBcCi0gICAgICAgIDB4RUUsIDB4MzgsIDB4NkIsIDB4RkIsIDB4NUEsIDB4ODksIDB4OUYsIDB4QTUsICBcCi0gICAgICAgIDB4QUUsIDB4OUYsIDB4MjQsIDB4MTEsIDB4N0MsIDB4NEIsIDB4MUYsIDB4RTYsICBcCi0gICAgICAgIDB4NDksIDB4MjgsIDB4NjYsIDB4NTEsIDB4RUMsIDB4RTQsIDB4NUIsIDB4M0QsICBcCi0gICAgICAgIDB4QzIsIDB4MDAsIDB4N0MsIDB4QjgsIDB4QTEsIDB4NjMsIDB4QkYsIDB4MDUsICBcCi0gICAgICAgIDB4OTgsIDB4REEsIDB4NDgsIDB4MzYsIDB4MUMsIDB4NTUsIDB4RDMsIDB4OUEsICBcCi0gICAgICAgIDB4NjksIDB4MTYsIDB4M0YsIDB4QTgsIDB4RkQsIDB4MjQsIDB4Q0YsIDB4NUYsICBcCi0gICAgICAgIDB4ODMsIDB4NjUsIDB4NUQsIDB4MjMsIDB4REMsIDB4QTMsIDB4QUQsIDB4OTYsICBcCi0gICAgICAgIDB4MUMsIDB4NjIsIDB4RjMsIDB4NTYsIDB4MjAsIDB4ODUsIDB4NTIsIDB4QkIsICBcCi0gICAgICAgIDB4OUUsIDB4RDUsIDB4MjksIDB4MDcsIDB4NzAsIDB4OTYsIDB4OTYsIDB4NkQsICBcCi0gICAgICAgIDB4NjcsIDB4MEMsIDB4MzUsIDB4NEUsIDB4NEEsIDB4QkMsIDB4OTgsIDB4MDQsICBcCi0gICAgICAgIDB4RjEsIDB4NzQsIDB4NkMsIDB4MDgsIDB4Q0EsIDB4MTgsIDB4MjEsIDB4N0MsICBcCi0gICAgICAgIDB4MzIsIDB4OTAsIDB4NUUsIDB4NDYsIDB4MkUsIDB4MzYsIDB4Q0UsIDB4M0IsICBcCi0gICAgICAgIDB4RTMsIDB4OUUsIDB4NzcsIDB4MkMsIDB4MTgsIDB4MEUsIDB4ODYsIDB4MDMsICBcCi0gICAgICAgIDB4OUIsIDB4MjcsIDB4ODMsIDB4QTIsIDB4RUMsIDB4MDcsIDB4QTIsIDB4OEYsICBcCi0gICAgICAgIDB4QjUsIDB4QzUsIDB4NUQsIDB4RjAsIDB4NkYsIDB4NEMsIDB4NTIsIDB4QzksICBcCi0gICAgICAgIDB4REUsIDB4MkIsIDB4Q0IsIDB4RjYsIDB4OTUsIDB4NTgsIDB4MTcsIDB4MTgsICBcCi0gICAgICAgIDB4MzksIDB4OTUsIDB4NDksIDB4N0MsIDB4RUEsIDB4OTUsIDB4NkEsIDB4RTUsICBcCi0gICAgICAgIDB4MTUsIDB4RDIsIDB4MjYsIDB4MTgsIDB4OTgsIDB4RkEsIDB4MDUsIDB4MTAsICBcCi0gICAgICAgIDB4MTUsIDB4NzIsIDB4OEUsIDB4NUEsIDB4OEEsIDB4QUEsIDB4QzQsIDB4MkQsICBcCi0gICAgICAgIDB4QUQsIDB4MzMsIDB4MTcsIDB4MEQsIDB4MDQsIDB4NTAsIDB4N0EsIDB4MzMsICBcCi0gICAgICAgIDB4QTgsIDB4NTUsIDB4MjEsIDB4QUIsIDB4REYsIDB4MUMsIDB4QkEsIDB4NjQsICBcCi0gICAgICAgIDB4RUMsIDB4RkIsIDB4ODUsIDB4MDQsIDB4NTgsIDB4REIsIDB4RUYsIDB4MEEsICBcCi0gICAgICAgIDB4OEEsIDB4RUEsIDB4NzEsIDB4NTcsIDB4NUQsIDB4MDYsIDB4MEMsIDB4N0QsICBcCi0gICAgICAgIDB4QjMsIDB4OTcsIDB4MEYsIDB4ODUsIDB4QTYsIDB4RTEsIDB4RTQsIDB4QzcsICBcCi0gICAgICAgIDB4QUIsIDB4RjUsIDB4QUUsIDB4OEMsIDB4REIsIDB4MDksIDB4MzMsIDB4RDcsICBcCi0gICAgICAgIDB4MUUsIDB4OEMsIDB4OTQsIDB4RTAsIDB4NEEsIDB4MjUsIDB4NjEsIDB4OUQsICBcCi0gICAgICAgIDB4Q0UsIDB4RTMsIDB4RDIsIDB4MjYsIDB4MUEsIDB4RDIsIDB4RUUsIDB4NkIsICBcCi0gICAgICAgIDB4RjEsIDB4MkYsIDB4RkEsIDB4MDYsIDB4RDksIDB4OEEsIDB4MDgsIDB4NjQsICBcCi0gICAgICAgIDB4RDgsIDB4NzYsIDB4MDIsIDB4NzMsIDB4M0UsIDB4QzgsIDB4NkEsIDB4NjQsICBcCi0gICAgICAgIDB4NTIsIDB4MUYsIDB4MkIsIDB4MTgsIDB4MTcsIDB4N0IsIDB4MjAsIDB4MEMsICBcCi0gICAgICAgIDB4QkIsIDB4RTEsIDB4MTcsIDB4NTcsIDB4N0EsIDB4NjEsIDB4NUQsIDB4NkMsICBcCi0gICAgICAgIDB4NzcsIDB4MDksIDB4ODgsIDB4QzAsIDB4QkEsIDB4RDksIDB4NDYsIDB4RTIsICBcCi0gICAgICAgIDB4MDgsIDB4RTIsIDB4NEYsIDB4QTAsIDB4NzQsIDB4RTUsIDB4QUIsIDB4MzEsICBcCi0gICAgICAgIDB4NDMsIDB4REIsIDB4NUIsIDB4RkMsIDB4RTAsIDB4RkQsIDB4MTAsIDB4OEUsICBcCi0gICAgICAgIDB4NEIsIDB4ODIsIDB4RDEsIDB4MjAsIDB4QTksIDB4MjEsIDB4MDgsIDB4MDEsICBcCi0gICAgICAgIDB4MUEsIDB4NzIsIDB4M0MsIDB4MTIsIDB4QTcsIDB4ODcsIDB4RTYsIDB4RDcsICBcCi0gICAgICAgIDB4ODgsIDB4NzEsIDB4OUEsIDB4MTAsIDB4QkQsIDB4QkEsIDB4NUIsIDB4MjYsICBcCi0gICAgICAgIDB4OTksIDB4QzMsIDB4MjcsIDB4MTgsIDB4NkEsIDB4RjQsIDB4RTIsIDB4M0MsICBcCi0gICAgICAgIDB4MUEsIDB4OTQsIDB4NjgsIDB4MzQsIDB4QjYsIDB4MTUsIDB4MEIsIDB4REEsICBcCi0gICAgICAgIDB4MjUsIDB4ODMsIDB4RTksIDB4Q0EsIDB4MkEsIDB4RDQsIDB4NEMsIDB4RTgsICBcCi0gICAgICAgIDB4REIsIDB4QkIsIDB4QzIsIDB4REIsIDB4MDQsIDB4REUsIDB4OEUsIDB4RjksICBcCi0gICAgICAgIDB4MkUsIDB4OEUsIDB4RkMsIDB4MTQsIDB4MUYsIDB4QkUsIDB4Q0EsIDB4QTYsICBcCi0gICAgICAgIDB4MjgsIDB4N0MsIDB4NTksIDB4NDcsIDB4NEUsIDB4NkIsIDB4QzAsIDB4NUQsICBcCi0gICAgICAgIDB4OTksIDB4QjIsIDB4OTYsIDB4NEYsIDB4QTAsIDB4OTAsIDB4QzMsIDB4QTIsICBcCi0gICAgICAgIDB4MjMsIDB4M0IsIDB4QTEsIDB4ODYsIDB4NTEsIDB4NUIsIDB4RTcsIDB4RUQsICBcCi0gICAgICAgIDB4MUYsIDB4NjEsIDB4MjksIDB4NzAsIDB4Q0UsIDB4RTIsIDB4RDcsIDB4QUYsICBcCi0gICAgICAgIDB4QjgsIDB4MUIsIDB4REQsIDB4NzYsIDB4MjEsIDB4NzAsIDB4NDgsIDB4MUMsICBcCi0gICAgICAgIDB4RDAsIDB4MDYsIDB4OTEsIDB4MjcsIDB4RDUsIDB4QjAsIDB4NUEsIDB4QTksICBcCi0gICAgICAgIDB4OTMsIDB4QjQsIDB4RUEsIDB4OTgsIDB4OEQsIDB4OEYsIDB4REQsIDB4QzEsICBcCi0gICAgICAgIDB4ODYsIDB4RkYsIDB4QjcsIDB4REMsIDB4OTAsIDB4QTYsIDB4QzAsIDB4OEYsICBcCi0gICAgICAgIDB4NEQsIDB4RjQsIDB4MzUsIDB4QzksIDB4MzQsIDB4MDYsIDB4MzEsIDB4OTksICBcCi0gICAgICAgIDB4RkYsIDB4RkYsIDB4RkYsIDB4RkYsIDB4RkYsIDB4RkYsIDB4RkYsIDB4RkYgfQotCi0jZGVmaW5lIE1CRURUTFNfREhNX1JGQzM1MjZfTU9EUF80MDk2X0dfQklOIHsgMHgwMiB9Ci0KLSNkZWZpbmUgTUJFRFRMU19ESE1fUkZDNzkxOV9GRkRIRTIwNDhfUF9CSU4geyAgICAgICAgXAotICAgICAgICAweEZGLCAweEZGLCAweEZGLCAweEZGLCAweEZGLCAweEZGLCAweEZGLCAweEZGLCBcCi0gICAgICAgIDB4QUQsIDB4RjgsIDB4NTQsIDB4NTgsIDB4QTIsIDB4QkIsIDB4NEEsIDB4OUEsIFwKLSAgICAgICAgMHhBRiwgMHhEQywgMHg1NiwgMHgyMCwgMHgyNywgMHgzRCwgMHgzQywgMHhGMSwgXAotICAgICAgICAweEQ4LCAweEI5LCAweEM1LCAweDgzLCAweENFLCAweDJELCAweDM2LCAweDk1LCBcCi0gICAgICAgIDB4QTksIDB4RTEsIDB4MzYsIDB4NDEsIDB4MTQsIDB4NjQsIDB4MzMsIDB4RkIsIFwKLSAgICAgICAgMHhDQywgMHg5MywgMHg5RCwgMHhDRSwgMHgyNCwgMHg5QiwgMHgzRSwgMHhGOSwgXAotICAgICAgICAweDdELCAweDJGLCAweEUzLCAweDYzLCAweDYzLCAweDBDLCAweDc1LCAweEQ4LCBcCi0gICAgICAgIDB4RjYsIDB4ODEsIDB4QjIsIDB4MDIsIDB4QUUsIDB4QzQsIDB4NjEsIDB4N0EsIFwKLSAgICAgICAgMHhEMywgMHhERiwgMHgxRSwgMHhENSwgMHhENSwgMHhGRCwgMHg2NSwgMHg2MSwgXAotICAgICAgICAweDI0LCAweDMzLCAweEY1LCAweDFGLCAweDVGLCAweDA2LCAweDZFLCAweEQwLCBcCi0gICAgICAgIDB4ODUsIDB4NjMsIDB4NjUsIDB4NTUsIDB4M0QsIDB4RUQsIDB4MUEsIDB4RjMsIFwKLSAgICAgICAgMHhCNSwgMHg1NywgMHgxMywgMHg1RSwgMHg3RiwgMHg1NywgMHhDOSwgMHgzNSwgXAotICAgICAgICAweDk4LCAweDRGLCAweDBDLCAweDcwLCAweEUwLCAweEU2LCAweDhCLCAweDc3LCBcCi0gICAgICAgIDB4RTIsIDB4QTYsIDB4ODksIDB4REEsIDB4RjMsIDB4RUYsIDB4RTgsIDB4NzIsIFwKLSAgICAgICAgMHgxRCwgMHhGMSwgMHg1OCwgMHhBMSwgMHgzNiwgMHhBRCwgMHhFNywgMHgzNSwgXAotICAgICAgICAweDMwLCAweEFDLCAweENBLCAweDRGLCAweDQ4LCAweDNBLCAweDc5LCAweDdBLCBcCi0gICAgICAgIDB4QkMsIDB4MEEsIDB4QjEsIDB4ODIsIDB4QjMsIDB4MjQsIDB4RkIsIDB4NjEsIFwKLSAgICAgICAgMHhEMSwgMHgwOCwgMHhBOSwgMHg0QiwgMHhCMiwgMHhDOCwgMHhFMywgMHhGQiwgXAotICAgICAgICAweEI5LCAweDZBLCAweERBLCAweEI3LCAweDYwLCAweEQ3LCAweEY0LCAweDY4LCBcCi0gICAgICAgIDB4MUQsIDB4NEYsIDB4NDIsIDB4QTMsIDB4REUsIDB4MzksIDB4NEQsIDB4RjQsIFwKLSAgICAgICAgMHhBRSwgMHg1NiwgMHhFRCwgMHhFNywgMHg2MywgMHg3MiwgMHhCQiwgMHgxOSwgXAotICAgICAgICAweDBCLCAweDA3LCAweEE3LCAweEM4LCAweEVFLCAweDBBLCAweDZELCAweDcwLCBcCi0gICAgICAgIDB4OUUsIDB4MDIsIDB4RkMsIDB4RTEsIDB4Q0QsIDB4RjcsIDB4RTIsIDB4RUMsIFwKLSAgICAgICAgMHhDMCwgMHgzNCwgMHgwNCwgMHhDRCwgMHgyOCwgMHgzNCwgMHgyRiwgMHg2MSwgXAotICAgICAgICAweDkxLCAweDcyLCAweEZFLCAweDlDLCAweEU5LCAweDg1LCAweDgzLCAweEZGLCBcCi0gICAgICAgIDB4OEUsIDB4NEYsIDB4MTIsIDB4MzIsIDB4RUUsIDB4RjIsIDB4ODEsIDB4ODMsIFwKLSAgICAgICAgMHhDMywgMHhGRSwgMHgzQiwgMHgxQiwgMHg0QywgMHg2RiwgMHhBRCwgMHg3MywgXAotICAgICAgICAweDNCLCAweEI1LCAweEZDLCAweEJDLCAweDJFLCAweEMyLCAweDIwLCAweDA1LCBcCi0gICAgICAgIDB4QzUsIDB4OEUsIDB4RjEsIDB4ODMsIDB4N0QsIDB4MTYsIDB4ODMsIDB4QjIsIFwKLSAgICAgICAgMHhDNiwgMHhGMywgMHg0QSwgMHgyNiwgMHhDMSwgMHhCMiwgMHhFRiwgMHhGQSwgXAotICAgICAgICAweDg4LCAweDZCLCAweDQyLCAweDM4LCAweDYxLCAweDI4LCAweDVDLCAweDk3LCBcCi0gICAgICAgIDB4RkYsIDB4RkYsIDB4RkYsIDB4RkYsIDB4RkYsIDB4RkYsIDB4RkYsIDB4RkYsIH0KLQotI2RlZmluZSBNQkVEVExTX0RITV9SRkM3OTE5X0ZGREhFMjA0OF9HX0JJTiB7IDB4MDIgfQotCi0jZGVmaW5lIE1CRURUTFNfREhNX1JGQzc5MTlfRkZESEUzMDcyX1BfQklOIHsgXAotICAgICAgICAweEZGLCAweEZGLCAweEZGLCAweEZGLCAweEZGLCAweEZGLCAweEZGLCAweEZGLCBcCi0gICAgICAgIDB4QUQsIDB4RjgsIDB4NTQsIDB4NTgsIDB4QTIsIDB4QkIsIDB4NEEsIDB4OUEsIFwKLSAgICAgICAgMHhBRiwgMHhEQywgMHg1NiwgMHgyMCwgMHgyNywgMHgzRCwgMHgzQywgMHhGMSwgXAotICAgICAgICAweEQ4LCAweEI5LCAweEM1LCAweDgzLCAweENFLCAweDJELCAweDM2LCAweDk1LCBcCi0gICAgICAgIDB4QTksIDB4RTEsIDB4MzYsIDB4NDEsIDB4MTQsIDB4NjQsIDB4MzMsIDB4RkIsIFwKLSAgICAgICAgMHhDQywgMHg5MywgMHg5RCwgMHhDRSwgMHgyNCwgMHg5QiwgMHgzRSwgMHhGOSwgXAotICAgICAgICAweDdELCAweDJGLCAweEUzLCAweDYzLCAweDYzLCAweDBDLCAweDc1LCAweEQ4LCBcCi0gICAgICAgIDB4RjYsIDB4ODEsIDB4QjIsIDB4MDIsIDB4QUUsIDB4QzQsIDB4NjEsIDB4N0EsIFwKLSAgICAgICAgMHhEMywgMHhERiwgMHgxRSwgMHhENSwgMHhENSwgMHhGRCwgMHg2NSwgMHg2MSwgXAotICAgICAgICAweDI0LCAweDMzLCAweEY1LCAweDFGLCAweDVGLCAweDA2LCAweDZFLCAweEQwLCBcCi0gICAgICAgIDB4ODUsIDB4NjMsIDB4NjUsIDB4NTUsIDB4M0QsIDB4RUQsIDB4MUEsIDB4RjMsIFwKLSAgICAgICAgMHhCNSwgMHg1NywgMHgxMywgMHg1RSwgMHg3RiwgMHg1NywgMHhDOSwgMHgzNSwgXAotICAgICAgICAweDk4LCAweDRGLCAweDBDLCAweDcwLCAweEUwLCAweEU2LCAweDhCLCAweDc3LCBcCi0gICAgICAgIDB4RTIsIDB4QTYsIDB4ODksIDB4REEsIDB4RjMsIDB4RUYsIDB4RTgsIDB4NzIsIFwKLSAgICAgICAgMHgxRCwgMHhGMSwgMHg1OCwgMHhBMSwgMHgzNiwgMHhBRCwgMHhFNywgMHgzNSwgXAotICAgICAgICAweDMwLCAweEFDLCAweENBLCAweDRGLCAweDQ4LCAweDNBLCAweDc5LCAweDdBLCBcCi0gICAgICAgIDB4QkMsIDB4MEEsIDB4QjEsIDB4ODIsIDB4QjMsIDB4MjQsIDB4RkIsIDB4NjEsIFwKLSAgICAgICAgMHhEMSwgMHgwOCwgMHhBOSwgMHg0QiwgMHhCMiwgMHhDOCwgMHhFMywgMHhGQiwgXAotICAgICAgICAweEI5LCAweDZBLCAweERBLCAweEI3LCAweDYwLCAweEQ3LCAweEY0LCAweDY4LCBcCi0gICAgICAgIDB4MUQsIDB4NEYsIDB4NDIsIDB4QTMsIDB4REUsIDB4MzksIDB4NEQsIDB4RjQsIFwKLSAgICAgICAgMHhBRSwgMHg1NiwgMHhFRCwgMHhFNywgMHg2MywgMHg3MiwgMHhCQiwgMHgxOSwgXAotICAgICAgICAweDBCLCAweDA3LCAweEE3LCAweEM4LCAweEVFLCAweDBBLCAweDZELCAweDcwLCBcCi0gICAgICAgIDB4OUUsIDB4MDIsIDB4RkMsIDB4RTEsIDB4Q0QsIDB4RjcsIDB4RTIsIDB4RUMsIFwKLSAgICAgICAgMHhDMCwgMHgzNCwgMHgwNCwgMHhDRCwgMHgyOCwgMHgzNCwgMHgyRiwgMHg2MSwgXAotICAgICAgICAweDkxLCAweDcyLCAweEZFLCAweDlDLCAweEU5LCAweDg1LCAweDgzLCAweEZGLCBcCi0gICAgICAgIDB4OEUsIDB4NEYsIDB4MTIsIDB4MzIsIDB4RUUsIDB4RjIsIDB4ODEsIDB4ODMsIFwKLSAgICAgICAgMHhDMywgMHhGRSwgMHgzQiwgMHgxQiwgMHg0QywgMHg2RiwgMHhBRCwgMHg3MywgXAotICAgICAgICAweDNCLCAweEI1LCAweEZDLCAweEJDLCAweDJFLCAweEMyLCAweDIwLCAweDA1LCBcCi0gICAgICAgIDB4QzUsIDB4OEUsIDB4RjEsIDB4ODMsIDB4N0QsIDB4MTYsIDB4ODMsIDB4QjIsIFwKLSAgICAgICAgMHhDNiwgMHhGMywgMHg0QSwgMHgyNiwgMHhDMSwgMHhCMiwgMHhFRiwgMHhGQSwgXAotICAgICAgICAweDg4LCAweDZCLCAweDQyLCAweDM4LCAweDYxLCAweDFGLCAweENGLCAweERDLCBcCi0gICAgICAgIDB4REUsIDB4MzUsIDB4NUIsIDB4M0IsIDB4NjUsIDB4MTksIDB4MDMsIDB4NUIsIFwKLSAgICAgICAgMHhCQywgMHgzNCwgMHhGNCwgMHhERSwgMHhGOSwgMHg5QywgMHgwMiwgMHgzOCwgXAotICAgICAgICAweDYxLCAweEI0LCAweDZGLCAweEM5LCAweEQ2LCAweEU2LCAweEM5LCAweDA3LCBcCi0gICAgICAgIDB4N0EsIDB4RDksIDB4MUQsIDB4MjYsIDB4OTEsIDB4RjcsIDB4RjcsIDB4RUUsIFwKLSAgICAgICAgMHg1OSwgMHg4QywgMHhCMCwgMHhGQSwgMHhDMSwgMHg4NiwgMHhEOSwgMHgxQywgXAotICAgICAgICAweEFFLCAweEZFLCAweDEzLCAweDA5LCAweDg1LCAweDEzLCAweDkyLCAweDcwLCBcCi0gICAgICAgIDB4QjQsIDB4MTMsIDB4MEMsIDB4OTMsIDB4QkMsIDB4NDMsIDB4NzksIDB4NDQsIFwKLSAgICAgICAgMHhGNCwgMHhGRCwgMHg0NCwgMHg1MiwgMHhFMiwgMHhENywgMHg0RCwgMHhEMywgXAotICAgICAgICAweDY0LCAweEYyLCAweEUyLCAweDFFLCAweDcxLCAweEY1LCAweDRCLCAweEZGLCBcCi0gICAgICAgIDB4NUMsIDB4QUUsIDB4ODIsIDB4QUIsIDB4OUMsIDB4OUQsIDB4RjYsIDB4OUUsIFwKLSAgICAgICAgMHhFOCwgMHg2RCwgMHgyQiwgMHhDNSwgMHgyMiwgMHgzNiwgMHgzQSwgMHgwRCwgXAotICAgICAgICAweEFCLCAweEM1LCAweDIxLCAweDk3LCAweDlCLCAweDBELCAweEVBLCAweERBLCBcCi0gICAgICAgIDB4MUQsIDB4QkYsIDB4OUEsIDB4NDIsIDB4RDUsIDB4QzQsIDB4NDgsIDB4NEUsIFwKLSAgICAgICAgMHgwQSwgMHhCQywgMHhEMCwgMHg2QiwgMHhGQSwgMHg1MywgMHhERCwgMHhFRiwgXAotICAgICAgICAweDNDLCAweDFCLCAweDIwLCAweEVFLCAweDNGLCAweEQ1LCAweDlELCAweDdDLCBcCi0gICAgICAgIDB4MjUsIDB4RTQsIDB4MUQsIDB4MkIsIDB4NjYsIDB4QzYsIDB4MkUsIDB4MzcsIFwKLSAgICAgICAgMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiB9Ci0KLSNkZWZpbmUgTUJFRFRMU19ESE1fUkZDNzkxOV9GRkRIRTMwNzJfR19CSU4geyAweDAyIH0KLQotI2RlZmluZSBNQkVEVExTX0RITV9SRkM3OTE5X0ZGREhFNDA5Nl9QX0JJTiB7ICAgICAgICBcCi0gICAgICAgIDB4RkYsIDB4RkYsIDB4RkYsIDB4RkYsIDB4RkYsIDB4RkYsIDB4RkYsIDB4RkYsIFwKLSAgICAgICAgMHhBRCwgMHhGOCwgMHg1NCwgMHg1OCwgMHhBMiwgMHhCQiwgMHg0QSwgMHg5QSwgXAotICAgICAgICAweEFGLCAweERDLCAweDU2LCAweDIwLCAweDI3LCAweDNELCAweDNDLCAweEYxLCBcCi0gICAgICAgIDB4RDgsIDB4QjksIDB4QzUsIDB4ODMsIDB4Q0UsIDB4MkQsIDB4MzYsIDB4OTUsIFwKLSAgICAgICAgMHhBOSwgMHhFMSwgMHgzNiwgMHg0MSwgMHgxNCwgMHg2NCwgMHgzMywgMHhGQiwgXAotICAgICAgICAweENDLCAweDkzLCAweDlELCAweENFLCAweDI0LCAweDlCLCAweDNFLCAweEY5LCBcCi0gICAgICAgIDB4N0QsIDB4MkYsIDB4RTMsIDB4NjMsIDB4NjMsIDB4MEMsIDB4NzUsIDB4RDgsIFwKLSAgICAgICAgMHhGNiwgMHg4MSwgMHhCMiwgMHgwMiwgMHhBRSwgMHhDNCwgMHg2MSwgMHg3QSwgXAotICAgICAgICAweEQzLCAweERGLCAweDFFLCAweEQ1LCAweEQ1LCAweEZELCAweDY1LCAweDYxLCBcCi0gICAgICAgIDB4MjQsIDB4MzMsIDB4RjUsIDB4MUYsIDB4NUYsIDB4MDYsIDB4NkUsIDB4RDAsIFwKLSAgICAgICAgMHg4NSwgMHg2MywgMHg2NSwgMHg1NSwgMHgzRCwgMHhFRCwgMHgxQSwgMHhGMywgXAotICAgICAgICAweEI1LCAweDU3LCAweDEzLCAweDVFLCAweDdGLCAweDU3LCAweEM5LCAweDM1LCBcCi0gICAgICAgIDB4OTgsIDB4NEYsIDB4MEMsIDB4NzAsIDB4RTAsIDB4RTYsIDB4OEIsIDB4NzcsIFwKLSAgICAgICAgMHhFMiwgMHhBNiwgMHg4OSwgMHhEQSwgMHhGMywgMHhFRiwgMHhFOCwgMHg3MiwgXAotICAgICAgICAweDFELCAweEYxLCAweDU4LCAweEExLCAweDM2LCAweEFELCAweEU3LCAweDM1LCBcCi0gICAgICAgIDB4MzAsIDB4QUMsIDB4Q0EsIDB4NEYsIDB4NDgsIDB4M0EsIDB4NzksIDB4N0EsIFwKLSAgICAgICAgMHhCQywgMHgwQSwgMHhCMSwgMHg4MiwgMHhCMywgMHgyNCwgMHhGQiwgMHg2MSwgXAotICAgICAgICAweEQxLCAweDA4LCAweEE5LCAweDRCLCAweEIyLCAweEM4LCAweEUzLCAweEZCLCBcCi0gICAgICAgIDB4QjksIDB4NkEsIDB4REEsIDB4QjcsIDB4NjAsIDB4RDcsIDB4RjQsIDB4NjgsIFwKLSAgICAgICAgMHgxRCwgMHg0RiwgMHg0MiwgMHhBMywgMHhERSwgMHgzOSwgMHg0RCwgMHhGNCwgXAotICAgICAgICAweEFFLCAweDU2LCAweEVELCAweEU3LCAweDYzLCAweDcyLCAweEJCLCAweDE5LCBcCi0gICAgICAgIDB4MEIsIDB4MDcsIDB4QTcsIDB4QzgsIDB4RUUsIDB4MEEsIDB4NkQsIDB4NzAsIFwKLSAgICAgICAgMHg5RSwgMHgwMiwgMHhGQywgMHhFMSwgMHhDRCwgMHhGNywgMHhFMiwgMHhFQywgXAotICAgICAgICAweEMwLCAweDM0LCAweDA0LCAweENELCAweDI4LCAweDM0LCAweDJGLCAweDYxLCBcCi0gICAgICAgIDB4OTEsIDB4NzIsIDB4RkUsIDB4OUMsIDB4RTksIDB4ODUsIDB4ODMsIDB4RkYsIFwKLSAgICAgICAgMHg4RSwgMHg0RiwgMHgxMiwgMHgzMiwgMHhFRSwgMHhGMiwgMHg4MSwgMHg4MywgXAotICAgICAgICAweEMzLCAweEZFLCAweDNCLCAweDFCLCAweDRDLCAweDZGLCAweEFELCAweDczLCBcCi0gICAgICAgIDB4M0IsIDB4QjUsIDB4RkMsIDB4QkMsIDB4MkUsIDB4QzIsIDB4MjAsIDB4MDUsIFwKLSAgICAgICAgMHhDNSwgMHg4RSwgMHhGMSwgMHg4MywgMHg3RCwgMHgxNiwgMHg4MywgMHhCMiwgXAotICAgICAgICAweEM2LCAweEYzLCAweDRBLCAweDI2LCAweEMxLCAweEIyLCAweEVGLCAweEZBLCBcCi0gICAgICAgIDB4ODgsIDB4NkIsIDB4NDIsIDB4MzgsIDB4NjEsIDB4MUYsIDB4Q0YsIDB4REMsIFwKLSAgICAgICAgMHhERSwgMHgzNSwgMHg1QiwgMHgzQiwgMHg2NSwgMHgxOSwgMHgwMywgMHg1QiwgXAotICAgICAgICAweEJDLCAweDM0LCAweEY0LCAweERFLCAweEY5LCAweDlDLCAweDAyLCAweDM4LCBcCi0gICAgICAgIDB4NjEsIDB4QjQsIDB4NkYsIDB4QzksIDB4RDYsIDB4RTYsIDB4QzksIDB4MDcsIFwKLSAgICAgICAgMHg3QSwgMHhEOSwgMHgxRCwgMHgyNiwgMHg5MSwgMHhGNywgMHhGNywgMHhFRSwgXAotICAgICAgICAweDU5LCAweDhDLCAweEIwLCAweEZBLCAweEMxLCAweDg2LCAweEQ5LCAweDFDLCBcCi0gICAgICAgIDB4QUUsIDB4RkUsIDB4MTMsIDB4MDksIDB4ODUsIDB4MTMsIDB4OTIsIDB4NzAsIFwKLSAgICAgICAgMHhCNCwgMHgxMywgMHgwQywgMHg5MywgMHhCQywgMHg0MywgMHg3OSwgMHg0NCwgXAotICAgICAgICAweEY0LCAweEZELCAweDQ0LCAweDUyLCAweEUyLCAweEQ3LCAweDRELCAweEQzLCBcCi0gICAgICAgIDB4NjQsIDB4RjIsIDB4RTIsIDB4MUUsIDB4NzEsIDB4RjUsIDB4NEIsIDB4RkYsIFwKLSAgICAgICAgMHg1QywgMHhBRSwgMHg4MiwgMHhBQiwgMHg5QywgMHg5RCwgMHhGNiwgMHg5RSwgXAotICAgICAgICAweEU4LCAweDZELCAweDJCLCAweEM1LCAweDIyLCAweDM2LCAweDNBLCAweDBELCBcCi0gICAgICAgIDB4QUIsIDB4QzUsIDB4MjEsIDB4OTcsIDB4OUIsIDB4MEQsIDB4RUEsIDB4REEsIFwKLSAgICAgICAgMHgxRCwgMHhCRiwgMHg5QSwgMHg0MiwgMHhENSwgMHhDNCwgMHg0OCwgMHg0RSwgXAotICAgICAgICAweDBBLCAweEJDLCAweEQwLCAweDZCLCAweEZBLCAweDUzLCAweERELCAweEVGLCBcCi0gICAgICAgIDB4M0MsIDB4MUIsIDB4MjAsIDB4RUUsIDB4M0YsIDB4RDUsIDB4OUQsIDB4N0MsIFwKLSAgICAgICAgMHgyNSwgMHhFNCwgMHgxRCwgMHgyQiwgMHg2NiwgMHg5RSwgMHgxRSwgMHhGMSwgXAotICAgICAgICAweDZFLCAweDZGLCAweDUyLCAweEMzLCAweDE2LCAweDRELCAweEY0LCAweEZCLCBcCi0gICAgICAgIDB4NzksIDB4MzAsIDB4RTksIDB4RTQsIDB4RTUsIDB4ODgsIDB4NTcsIDB4QjYsIFwKLSAgICAgICAgMHhBQywgMHg3RCwgMHg1RiwgMHg0MiwgMHhENiwgMHg5RiwgMHg2RCwgMHgxOCwgXAotICAgICAgICAweDc3LCAweDYzLCAweENGLCAweDFELCAweDU1LCAweDAzLCAweDQwLCAweDA0LCBcCi0gICAgICAgIDB4ODcsIDB4RjUsIDB4NUIsIDB4QTUsIDB4N0UsIDB4MzEsIDB4Q0MsIDB4N0EsIFwKLSAgICAgICAgMHg3MSwgMHgzNSwgMHhDOCwgMHg4NiwgMHhFRiwgMHhCNCwgMHgzMSwgMHg4QSwgXAotICAgICAgICAweEVELCAweDZBLCAweDFFLCAweDAxLCAweDJELCAweDlFLCAweDY4LCAweDMyLCBcCi0gICAgICAgIDB4QTksIDB4MDcsIDB4NjAsIDB4MEEsIDB4OTEsIDB4ODEsIDB4MzAsIDB4QzQsIFwKLSAgICAgICAgMHg2RCwgMHhDNywgMHg3OCwgMHhGOSwgMHg3MSwgMHhBRCwgMHgwMCwgMHgzOCwgXAotICAgICAgICAweDA5LCAweDI5LCAweDk5LCAweEEzLCAweDMzLCAweENCLCAweDhCLCAweDdBLCBcCi0gICAgICAgIDB4MUEsIDB4MUQsIDB4QjksIDB4M0QsIDB4NzEsIDB4NDAsIDB4MDAsIDB4M0MsIFwKLSAgICAgICAgMHgyQSwgMHg0RSwgMHhDRSwgMHhBOSwgMHhGOSwgMHg4RCwgMHgwQSwgMHhDQywgXAotICAgICAgICAweDBBLCAweDgyLCAweDkxLCAweENELCAweENFLCAweEM5LCAweDdELCAweENGLCBcCi0gICAgICAgIDB4OEUsIDB4QzksIDB4QjUsIDB4NUEsIDB4N0YsIDB4ODgsIDB4QTQsIDB4NkIsIFwKLSAgICAgICAgMHg0RCwgMHhCNSwgMHhBOCwgMHg1MSwgMHhGNCwgMHg0MSwgMHg4MiwgMHhFMSwgXAotICAgICAgICAweEM2LCAweDhBLCAweDAwLCAweDdFLCAweDVFLCAweDY1LCAweDVGLCAweDZBLCBcCi0gICAgICAgIDB4RkYsIDB4RkYsIDB4RkYsIDB4RkYsIDB4RkYsIDB4RkYsIDB4RkYsIDB4RkYgfQotCi0jZGVmaW5lIE1CRURUTFNfREhNX1JGQzc5MTlfRkZESEU0MDk2X0dfQklOIHsgMHgwMiB9Ci0KLSNkZWZpbmUgTUJFRFRMU19ESE1fUkZDNzkxOV9GRkRIRTYxNDRfUF9CSU4geyAgICAgICAgXAotICAgICAgICAweEZGLCAweEZGLCAweEZGLCAweEZGLCAweEZGLCAweEZGLCAweEZGLCAweEZGLCBcCi0gICAgICAgIDB4QUQsIDB4RjgsIDB4NTQsIDB4NTgsIDB4QTIsIDB4QkIsIDB4NEEsIDB4OUEsIFwKLSAgICAgICAgMHhBRiwgMHhEQywgMHg1NiwgMHgyMCwgMHgyNywgMHgzRCwgMHgzQywgMHhGMSwgXAotICAgICAgICAweEQ4LCAweEI5LCAweEM1LCAweDgzLCAweENFLCAweDJELCAweDM2LCAweDk1LCBcCi0gICAgICAgIDB4QTksIDB4RTEsIDB4MzYsIDB4NDEsIDB4MTQsIDB4NjQsIDB4MzMsIDB4RkIsIFwKLSAgICAgICAgMHhDQywgMHg5MywgMHg5RCwgMHhDRSwgMHgyNCwgMHg5QiwgMHgzRSwgMHhGOSwgXAotICAgICAgICAweDdELCAweDJGLCAweEUzLCAweDYzLCAweDYzLCAweDBDLCAweDc1LCAweEQ4LCBcCi0gICAgICAgIDB4RjYsIDB4ODEsIDB4QjIsIDB4MDIsIDB4QUUsIDB4QzQsIDB4NjEsIDB4N0EsIFwKLSAgICAgICAgMHhEMywgMHhERiwgMHgxRSwgMHhENSwgMHhENSwgMHhGRCwgMHg2NSwgMHg2MSwgXAotICAgICAgICAweDI0LCAweDMzLCAweEY1LCAweDFGLCAweDVGLCAweDA2LCAweDZFLCAweEQwLCBcCi0gICAgICAgIDB4ODUsIDB4NjMsIDB4NjUsIDB4NTUsIDB4M0QsIDB4RUQsIDB4MUEsIDB4RjMsIFwKLSAgICAgICAgMHhCNSwgMHg1NywgMHgxMywgMHg1RSwgMHg3RiwgMHg1NywgMHhDOSwgMHgzNSwgXAotICAgICAgICAweDk4LCAweDRGLCAweDBDLCAweDcwLCAweEUwLCAweEU2LCAweDhCLCAweDc3LCBcCi0gICAgICAgIDB4RTIsIDB4QTYsIDB4ODksIDB4REEsIDB4RjMsIDB4RUYsIDB4RTgsIDB4NzIsIFwKLSAgICAgICAgMHgxRCwgMHhGMSwgMHg1OCwgMHhBMSwgMHgzNiwgMHhBRCwgMHhFNywgMHgzNSwgXAotICAgICAgICAweDMwLCAweEFDLCAweENBLCAweDRGLCAweDQ4LCAweDNBLCAweDc5LCAweDdBLCBcCi0gICAgICAgIDB4QkMsIDB4MEEsIDB4QjEsIDB4ODIsIDB4QjMsIDB4MjQsIDB4RkIsIDB4NjEsIFwKLSAgICAgICAgMHhEMSwgMHgwOCwgMHhBOSwgMHg0QiwgMHhCMiwgMHhDOCwgMHhFMywgMHhGQiwgXAotICAgICAgICAweEI5LCAweDZBLCAweERBLCAweEI3LCAweDYwLCAweEQ3LCAweEY0LCAweDY4LCBcCi0gICAgICAgIDB4MUQsIDB4NEYsIDB4NDIsIDB4QTMsIDB4REUsIDB4MzksIDB4NEQsIDB4RjQsIFwKLSAgICAgICAgMHhBRSwgMHg1NiwgMHhFRCwgMHhFNywgMHg2MywgMHg3MiwgMHhCQiwgMHgxOSwgXAotICAgICAgICAweDBCLCAweDA3LCAweEE3LCAweEM4LCAweEVFLCAweDBBLCAweDZELCAweDcwLCBcCi0gICAgICAgIDB4OUUsIDB4MDIsIDB4RkMsIDB4RTEsIDB4Q0QsIDB4RjcsIDB4RTIsIDB4RUMsIFwKLSAgICAgICAgMHhDMCwgMHgzNCwgMHgwNCwgMHhDRCwgMHgyOCwgMHgzNCwgMHgyRiwgMHg2MSwgXAotICAgICAgICAweDkxLCAweDcyLCAweEZFLCAweDlDLCAweEU5LCAweDg1LCAweDgzLCAweEZGLCBcCi0gICAgICAgIDB4OEUsIDB4NEYsIDB4MTIsIDB4MzIsIDB4RUUsIDB4RjIsIDB4ODEsIDB4ODMsIFwKLSAgICAgICAgMHhDMywgMHhGRSwgMHgzQiwgMHgxQiwgMHg0QywgMHg2RiwgMHhBRCwgMHg3MywgXAotICAgICAgICAweDNCLCAweEI1LCAweEZDLCAweEJDLCAweDJFLCAweEMyLCAweDIwLCAweDA1LCBcCi0gICAgICAgIDB4QzUsIDB4OEUsIDB4RjEsIDB4ODMsIDB4N0QsIDB4MTYsIDB4ODMsIDB4QjIsIFwKLSAgICAgICAgMHhDNiwgMHhGMywgMHg0QSwgMHgyNiwgMHhDMSwgMHhCMiwgMHhFRiwgMHhGQSwgXAotICAgICAgICAweDg4LCAweDZCLCAweDQyLCAweDM4LCAweDYxLCAweDFGLCAweENGLCAweERDLCBcCi0gICAgICAgIDB4REUsIDB4MzUsIDB4NUIsIDB4M0IsIDB4NjUsIDB4MTksIDB4MDMsIDB4NUIsIFwKLSAgICAgICAgMHhCQywgMHgzNCwgMHhGNCwgMHhERSwgMHhGOSwgMHg5QywgMHgwMiwgMHgzOCwgXAotICAgICAgICAweDYxLCAweEI0LCAweDZGLCAweEM5LCAweEQ2LCAweEU2LCAweEM5LCAweDA3LCBcCi0gICAgICAgIDB4N0EsIDB4RDksIDB4MUQsIDB4MjYsIDB4OTEsIDB4RjcsIDB4RjcsIDB4RUUsIFwKLSAgICAgICAgMHg1OSwgMHg4QywgMHhCMCwgMHhGQSwgMHhDMSwgMHg4NiwgMHhEOSwgMHgxQywgXAotICAgICAgICAweEFFLCAweEZFLCAweDEzLCAweDA5LCAweDg1LCAweDEzLCAweDkyLCAweDcwLCBcCi0gICAgICAgIDB4QjQsIDB4MTMsIDB4MEMsIDB4OTMsIDB4QkMsIDB4NDMsIDB4NzksIDB4NDQsIFwKLSAgICAgICAgMHhGNCwgMHhGRCwgMHg0NCwgMHg1MiwgMHhFMiwgMHhENywgMHg0RCwgMHhEMywgXAotICAgICAgICAweDY0LCAweEYyLCAweEUyLCAweDFFLCAweDcxLCAweEY1LCAweDRCLCAweEZGLCBcCi0gICAgICAgIDB4NUMsIDB4QUUsIDB4ODIsIDB4QUIsIDB4OUMsIDB4OUQsIDB4RjYsIDB4OUUsIFwKLSAgICAgICAgMHhFOCwgMHg2RCwgMHgyQiwgMHhDNSwgMHgyMiwgMHgzNiwgMHgzQSwgMHgwRCwgXAotICAgICAgICAweEFCLCAweEM1LCAweDIxLCAweDk3LCAweDlCLCAweDBELCAweEVBLCAweERBLCBcCi0gICAgICAgIDB4MUQsIDB4QkYsIDB4OUEsIDB4NDIsIDB4RDUsIDB4QzQsIDB4NDgsIDB4NEUsIFwKLSAgICAgICAgMHgwQSwgMHhCQywgMHhEMCwgMHg2QiwgMHhGQSwgMHg1MywgMHhERCwgMHhFRiwgXAotICAgICAgICAweDNDLCAweDFCLCAweDIwLCAweEVFLCAweDNGLCAweEQ1LCAweDlELCAweDdDLCBcCi0gICAgICAgIDB4MjUsIDB4RTQsIDB4MUQsIDB4MkIsIDB4NjYsIDB4OUUsIDB4MUUsIDB4RjEsIFwKLSAgICAgICAgMHg2RSwgMHg2RiwgMHg1MiwgMHhDMywgMHgxNiwgMHg0RCwgMHhGNCwgMHhGQiwgXAotICAgICAgICAweDc5LCAweDMwLCAweEU5LCAweEU0LCAweEU1LCAweDg4LCAweDU3LCAweEI2LCBcCi0gICAgICAgIDB4QUMsIDB4N0QsIDB4NUYsIDB4NDIsIDB4RDYsIDB4OUYsIDB4NkQsIDB4MTgsIFwKLSAgICAgICAgMHg3NywgMHg2MywgMHhDRiwgMHgxRCwgMHg1NSwgMHgwMywgMHg0MCwgMHgwNCwgXAotICAgICAgICAweDg3LCAweEY1LCAweDVCLCAweEE1LCAweDdFLCAweDMxLCAweENDLCAweDdBLCBcCi0gICAgICAgIDB4NzEsIDB4MzUsIDB4QzgsIDB4ODYsIDB4RUYsIDB4QjQsIDB4MzEsIDB4OEEsIFwKLSAgICAgICAgMHhFRCwgMHg2QSwgMHgxRSwgMHgwMSwgMHgyRCwgMHg5RSwgMHg2OCwgMHgzMiwgXAotICAgICAgICAweEE5LCAweDA3LCAweDYwLCAweDBBLCAweDkxLCAweDgxLCAweDMwLCAweEM0LCBcCi0gICAgICAgIDB4NkQsIDB4QzcsIDB4NzgsIDB4RjksIDB4NzEsIDB4QUQsIDB4MDAsIDB4MzgsIFwKLSAgICAgICAgMHgwOSwgMHgyOSwgMHg5OSwgMHhBMywgMHgzMywgMHhDQiwgMHg4QiwgMHg3QSwgXAotICAgICAgICAweDFBLCAweDFELCAweEI5LCAweDNELCAweDcxLCAweDQwLCAweDAwLCAweDNDLCBcCi0gICAgICAgIDB4MkEsIDB4NEUsIDB4Q0UsIDB4QTksIDB4RjksIDB4OEQsIDB4MEEsIDB4Q0MsIFwKLSAgICAgICAgMHgwQSwgMHg4MiwgMHg5MSwgMHhDRCwgMHhDRSwgMHhDOSwgMHg3RCwgMHhDRiwgXAotICAgICAgICAweDhFLCAweEM5LCAweEI1LCAweDVBLCAweDdGLCAweDg4LCAweEE0LCAweDZCLCBcCi0gICAgICAgIDB4NEQsIDB4QjUsIDB4QTgsIDB4NTEsIDB4RjQsIDB4NDEsIDB4ODIsIDB4RTEsIFwKLSAgICAgICAgMHhDNiwgMHg4QSwgMHgwMCwgMHg3RSwgMHg1RSwgMHgwRCwgMHhEOSwgMHgwMiwgXAotICAgICAgICAweDBCLCAweEZELCAweDY0LCAweEI2LCAweDQ1LCAweDAzLCAweDZDLCAweDdBLCBcCi0gICAgICAgIDB4NEUsIDB4NjcsIDB4N0QsIDB4MkMsIDB4MzgsIDB4NTMsIDB4MkEsIDB4M0EsIFwKLSAgICAgICAgMHgyMywgMHhCQSwgMHg0NCwgMHg0MiwgMHhDQSwgMHhGNSwgMHgzRSwgMHhBNiwgXAotICAgICAgICAweDNCLCAweEI0LCAweDU0LCAweDMyLCAweDlCLCAweDc2LCAweDI0LCAweEM4LCBcCi0gICAgICAgIDB4OTEsIDB4N0IsIDB4REQsIDB4NjQsIDB4QjEsIDB4QzAsIDB4RkQsIDB4NEMsIFwKLSAgICAgICAgMHhCMywgMHg4RSwgMHg4QywgMHgzMywgMHg0QywgMHg3MCwgMHgxQywgMHgzQSwgXAotICAgICAgICAweENELCAweEFELCAweDA2LCAweDU3LCAweEZDLCAweENGLCAweEVDLCAweDcxLCBcCi0gICAgICAgIDB4OUIsIDB4MUYsIDB4NUMsIDB4M0UsIDB4NEUsIDB4NDYsIDB4MDQsIDB4MUYsIFwKLSAgICAgICAgMHgzOCwgMHg4MSwgMHg0NywgMHhGQiwgMHg0QywgMHhGRCwgMHhCNCwgMHg3NywgXAotICAgICAgICAweEE1LCAweDI0LCAweDcxLCAweEY3LCAweEE5LCAweEE5LCAweDY5LCAweDEwLCBcCi0gICAgICAgIDB4QjgsIDB4NTUsIDB4MzIsIDB4MkUsIDB4REIsIDB4NjMsIDB4NDAsIDB4RDgsIFwKLSAgICAgICAgMHhBMCwgMHgwRSwgMHhGMCwgMHg5MiwgMHgzNSwgMHgwNSwgMHgxMSwgMHhFMywgXAotICAgICAgICAweDBBLCAweEJFLCAweEMxLCAweEZGLCAweEY5LCAweEUzLCAweEEyLCAweDZFLCBcCi0gICAgICAgIDB4N0YsIDB4QjIsIDB4OUYsIDB4OEMsIDB4MTgsIDB4MzAsIDB4MjMsIDB4QzMsIFwKLSAgICAgICAgMHg1OCwgMHg3RSwgMHgzOCwgMHhEQSwgMHgwMCwgMHg3NywgMHhEOSwgMHhCNCwgXAotICAgICAgICAweDc2LCAweDNFLCAweDRFLCAweDRCLCAweDk0LCAweEIyLCAweEJCLCAweEMxLCBcCi0gICAgICAgIDB4OTQsIDB4QzYsIDB4NjUsIDB4MUUsIDB4NzcsIDB4Q0EsIDB4RjksIDB4OTIsIFwKLSAgICAgICAgMHhFRSwgMHhBQSwgMHhDMCwgMHgyMywgMHgyQSwgMHgyOCwgMHgxQiwgMHhGNiwgXAotICAgICAgICAweEIzLCAweEE3LCAweDM5LCAweEMxLCAweDIyLCAweDYxLCAweDE2LCAweDgyLCBcCi0gICAgICAgIDB4MEEsIDB4RTgsIDB4REIsIDB4NTgsIDB4NDcsIDB4QTYsIDB4N0MsIDB4QkUsIFwKLSAgICAgICAgMHhGOSwgMHhDOSwgMHgwOSwgMHgxQiwgMHg0NiwgMHgyRCwgMHg1MywgMHg4QywgXAotICAgICAgICAweEQ3LCAweDJCLCAweDAzLCAweDc0LCAweDZBLCAweEU3LCAweDdGLCAweDVFLCBcCi0gICAgICAgIDB4NjIsIDB4MjksIDB4MkMsIDB4MzEsIDB4MTUsIDB4NjIsIDB4QTgsIDB4NDYsIFwKLSAgICAgICAgMHg1MCwgMHg1RCwgMHhDOCwgMHgyRCwgMHhCOCwgMHg1NCwgMHgzMywgMHg4QSwgXAotICAgICAgICAweEU0LCAweDlGLCAweDUyLCAweDM1LCAweEM5LCAweDVCLCAweDkxLCAweDE3LCBcCi0gICAgICAgIDB4OEMsIDB4Q0YsIDB4MkQsIDB4RDUsIDB4Q0EsIDB4Q0UsIDB4RjQsIDB4MDMsIFwKLSAgICAgICAgMHhFQywgMHg5RCwgMHgxOCwgMHgxMCwgMHhDNiwgMHgyNywgMHgyQiwgMHgwNCwgXAotICAgICAgICAweDVCLCAweDNCLCAweDcxLCAweEY5LCAweERDLCAweDZCLCAweDgwLCAweEQ2LCBcCi0gICAgICAgIDB4M0YsIDB4REQsIDB4NEEsIDB4OEUsIDB4OUEsIDB4REIsIDB4MUUsIDB4NjksIFwKLSAgICAgICAgMHg2MiwgMHhBNiwgMHg5NSwgMHgyNiwgMHhENCwgMHgzMSwgMHg2MSwgMHhDMSwgXAotICAgICAgICAweEE0LCAweDFELCAweDU3LCAweDBELCAweDc5LCAweDM4LCAweERBLCAweEQ0LCBcCi0gICAgICAgIDB4QTQsIDB4MEUsIDB4MzIsIDB4OUMsIDB4RDAsIDB4RTQsIDB4MEUsIDB4NjUsIFwKLSAgICAgICAgMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiB9Ci0KLSNkZWZpbmUgTUJFRFRMU19ESE1fUkZDNzkxOV9GRkRIRTYxNDRfR19CSU4geyAweDAyIH0KLQotI2RlZmluZSBNQkVEVExTX0RITV9SRkM3OTE5X0ZGREhFODE5Ml9QX0JJTiB7ICAgICAgICBcCi0gICAgICAgIDB4RkYsIDB4RkYsIDB4RkYsIDB4RkYsIDB4RkYsIDB4RkYsIDB4RkYsIDB4RkYsIFwKLSAgICAgICAgMHhBRCwgMHhGOCwgMHg1NCwgMHg1OCwgMHhBMiwgMHhCQiwgMHg0QSwgMHg5QSwgXAotICAgICAgICAweEFGLCAweERDLCAweDU2LCAweDIwLCAweDI3LCAweDNELCAweDNDLCAweEYxLCBcCi0gICAgICAgIDB4RDgsIDB4QjksIDB4QzUsIDB4ODMsIDB4Q0UsIDB4MkQsIDB4MzYsIDB4OTUsIFwKLSAgICAgICAgMHhBOSwgMHhFMSwgMHgzNiwgMHg0MSwgMHgxNCwgMHg2NCwgMHgzMywgMHhGQiwgXAotICAgICAgICAweENDLCAweDkzLCAweDlELCAweENFLCAweDI0LCAweDlCLCAweDNFLCAweEY5LCBcCi0gICAgICAgIDB4N0QsIDB4MkYsIDB4RTMsIDB4NjMsIDB4NjMsIDB4MEMsIDB4NzUsIDB4RDgsIFwKLSAgICAgICAgMHhGNiwgMHg4MSwgMHhCMiwgMHgwMiwgMHhBRSwgMHhDNCwgMHg2MSwgMHg3QSwgXAotICAgICAgICAweEQzLCAweERGLCAweDFFLCAweEQ1LCAweEQ1LCAweEZELCAweDY1LCAweDYxLCBcCi0gICAgICAgIDB4MjQsIDB4MzMsIDB4RjUsIDB4MUYsIDB4NUYsIDB4MDYsIDB4NkUsIDB4RDAsIFwKLSAgICAgICAgMHg4NSwgMHg2MywgMHg2NSwgMHg1NSwgMHgzRCwgMHhFRCwgMHgxQSwgMHhGMywgXAotICAgICAgICAweEI1LCAweDU3LCAweDEzLCAweDVFLCAweDdGLCAweDU3LCAweEM5LCAweDM1LCBcCi0gICAgICAgIDB4OTgsIDB4NEYsIDB4MEMsIDB4NzAsIDB4RTAsIDB4RTYsIDB4OEIsIDB4NzcsIFwKLSAgICAgICAgMHhFMiwgMHhBNiwgMHg4OSwgMHhEQSwgMHhGMywgMHhFRiwgMHhFOCwgMHg3MiwgXAotICAgICAgICAweDFELCAweEYxLCAweDU4LCAweEExLCAweDM2LCAweEFELCAweEU3LCAweDM1LCBcCi0gICAgICAgIDB4MzAsIDB4QUMsIDB4Q0EsIDB4NEYsIDB4NDgsIDB4M0EsIDB4NzksIDB4N0EsIFwKLSAgICAgICAgMHhCQywgMHgwQSwgMHhCMSwgMHg4MiwgMHhCMywgMHgyNCwgMHhGQiwgMHg2MSwgXAotICAgICAgICAweEQxLCAweDA4LCAweEE5LCAweDRCLCAweEIyLCAweEM4LCAweEUzLCAweEZCLCBcCi0gICAgICAgIDB4QjksIDB4NkEsIDB4REEsIDB4QjcsIDB4NjAsIDB4RDcsIDB4RjQsIDB4NjgsIFwKLSAgICAgICAgMHgxRCwgMHg0RiwgMHg0MiwgMHhBMywgMHhERSwgMHgzOSwgMHg0RCwgMHhGNCwgXAotICAgICAgICAweEFFLCAweDU2LCAweEVELCAweEU3LCAweDYzLCAweDcyLCAweEJCLCAweDE5LCBcCi0gICAgICAgIDB4MEIsIDB4MDcsIDB4QTcsIDB4QzgsIDB4RUUsIDB4MEEsIDB4NkQsIDB4NzAsIFwKLSAgICAgICAgMHg5RSwgMHgwMiwgMHhGQywgMHhFMSwgMHhDRCwgMHhGNywgMHhFMiwgMHhFQywgXAotICAgICAgICAweEMwLCAweDM0LCAweDA0LCAweENELCAweDI4LCAweDM0LCAweDJGLCAweDYxLCBcCi0gICAgICAgIDB4OTEsIDB4NzIsIDB4RkUsIDB4OUMsIDB4RTksIDB4ODUsIDB4ODMsIDB4RkYsIFwKLSAgICAgICAgMHg4RSwgMHg0RiwgMHgxMiwgMHgzMiwgMHhFRSwgMHhGMiwgMHg4MSwgMHg4MywgXAotICAgICAgICAweEMzLCAweEZFLCAweDNCLCAweDFCLCAweDRDLCAweDZGLCAweEFELCAweDczLCBcCi0gICAgICAgIDB4M0IsIDB4QjUsIDB4RkMsIDB4QkMsIDB4MkUsIDB4QzIsIDB4MjAsIDB4MDUsIFwKLSAgICAgICAgMHhDNSwgMHg4RSwgMHhGMSwgMHg4MywgMHg3RCwgMHgxNiwgMHg4MywgMHhCMiwgXAotICAgICAgICAweEM2LCAweEYzLCAweDRBLCAweDI2LCAweEMxLCAweEIyLCAweEVGLCAweEZBLCBcCi0gICAgICAgIDB4ODgsIDB4NkIsIDB4NDIsIDB4MzgsIDB4NjEsIDB4MUYsIDB4Q0YsIDB4REMsIFwKLSAgICAgICAgMHhERSwgMHgzNSwgMHg1QiwgMHgzQiwgMHg2NSwgMHgxOSwgMHgwMywgMHg1QiwgXAotICAgICAgICAweEJDLCAweDM0LCAweEY0LCAweERFLCAweEY5LCAweDlDLCAweDAyLCAweDM4LCBcCi0gICAgICAgIDB4NjEsIDB4QjQsIDB4NkYsIDB4QzksIDB4RDYsIDB4RTYsIDB4QzksIDB4MDcsIFwKLSAgICAgICAgMHg3QSwgMHhEOSwgMHgxRCwgMHgyNiwgMHg5MSwgMHhGNywgMHhGNywgMHhFRSwgXAotICAgICAgICAweDU5LCAweDhDLCAweEIwLCAweEZBLCAweEMxLCAweDg2LCAweEQ5LCAweDFDLCBcCi0gICAgICAgIDB4QUUsIDB4RkUsIDB4MTMsIDB4MDksIDB4ODUsIDB4MTMsIDB4OTIsIDB4NzAsIFwKLSAgICAgICAgMHhCNCwgMHgxMywgMHgwQywgMHg5MywgMHhCQywgMHg0MywgMHg3OSwgMHg0NCwgXAotICAgICAgICAweEY0LCAweEZELCAweDQ0LCAweDUyLCAweEUyLCAweEQ3LCAweDRELCAweEQzLCBcCi0gICAgICAgIDB4NjQsIDB4RjIsIDB4RTIsIDB4MUUsIDB4NzEsIDB4RjUsIDB4NEIsIDB4RkYsIFwKLSAgICAgICAgMHg1QywgMHhBRSwgMHg4MiwgMHhBQiwgMHg5QywgMHg5RCwgMHhGNiwgMHg5RSwgXAotICAgICAgICAweEU4LCAweDZELCAweDJCLCAweEM1LCAweDIyLCAweDM2LCAweDNBLCAweDBELCBcCi0gICAgICAgIDB4QUIsIDB4QzUsIDB4MjEsIDB4OTcsIDB4OUIsIDB4MEQsIDB4RUEsIDB4REEsIFwKLSAgICAgICAgMHgxRCwgMHhCRiwgMHg5QSwgMHg0MiwgMHhENSwgMHhDNCwgMHg0OCwgMHg0RSwgXAotICAgICAgICAweDBBLCAweEJDLCAweEQwLCAweDZCLCAweEZBLCAweDUzLCAweERELCAweEVGLCBcCi0gICAgICAgIDB4M0MsIDB4MUIsIDB4MjAsIDB4RUUsIDB4M0YsIDB4RDUsIDB4OUQsIDB4N0MsIFwKLSAgICAgICAgMHgyNSwgMHhFNCwgMHgxRCwgMHgyQiwgMHg2NiwgMHg5RSwgMHgxRSwgMHhGMSwgXAotICAgICAgICAweDZFLCAweDZGLCAweDUyLCAweEMzLCAweDE2LCAweDRELCAweEY0LCAweEZCLCBcCi0gICAgICAgIDB4NzksIDB4MzAsIDB4RTksIDB4RTQsIDB4RTUsIDB4ODgsIDB4NTcsIDB4QjYsIFwKLSAgICAgICAgMHhBQywgMHg3RCwgMHg1RiwgMHg0MiwgMHhENiwgMHg5RiwgMHg2RCwgMHgxOCwgXAotICAgICAgICAweDc3LCAweDYzLCAweENGLCAweDFELCAweDU1LCAweDAzLCAweDQwLCAweDA0LCBcCi0gICAgICAgIDB4ODcsIDB4RjUsIDB4NUIsIDB4QTUsIDB4N0UsIDB4MzEsIDB4Q0MsIDB4N0EsIFwKLSAgICAgICAgMHg3MSwgMHgzNSwgMHhDOCwgMHg4NiwgMHhFRiwgMHhCNCwgMHgzMSwgMHg4QSwgXAotICAgICAgICAweEVELCAweDZBLCAweDFFLCAweDAxLCAweDJELCAweDlFLCAweDY4LCAweDMyLCBcCi0gICAgICAgIDB4QTksIDB4MDcsIDB4NjAsIDB4MEEsIDB4OTEsIDB4ODEsIDB4MzAsIDB4QzQsIFwKLSAgICAgICAgMHg2RCwgMHhDNywgMHg3OCwgMHhGOSwgMHg3MSwgMHhBRCwgMHgwMCwgMHgzOCwgXAotICAgICAgICAweDA5LCAweDI5LCAweDk5LCAweEEzLCAweDMzLCAweENCLCAweDhCLCAweDdBLCBcCi0gICAgICAgIDB4MUEsIDB4MUQsIDB4QjksIDB4M0QsIDB4NzEsIDB4NDAsIDB4MDAsIDB4M0MsIFwKLSAgICAgICAgMHgyQSwgMHg0RSwgMHhDRSwgMHhBOSwgMHhGOSwgMHg4RCwgMHgwQSwgMHhDQywgXAotICAgICAgICAweDBBLCAweDgyLCAweDkxLCAweENELCAweENFLCAweEM5LCAweDdELCAweENGLCBcCi0gICAgICAgIDB4OEUsIDB4QzksIDB4QjUsIDB4NUEsIDB4N0YsIDB4ODgsIDB4QTQsIDB4NkIsIFwKLSAgICAgICAgMHg0RCwgMHhCNSwgMHhBOCwgMHg1MSwgMHhGNCwgMHg0MSwgMHg4MiwgMHhFMSwgXAotICAgICAgICAweEM2LCAweDhBLCAweDAwLCAweDdFLCAweDVFLCAweDBELCAweEQ5LCAweDAyLCBcCi0gICAgICAgIDB4MEIsIDB4RkQsIDB4NjQsIDB4QjYsIDB4NDUsIDB4MDMsIDB4NkMsIDB4N0EsIFwKLSAgICAgICAgMHg0RSwgMHg2NywgMHg3RCwgMHgyQywgMHgzOCwgMHg1MywgMHgyQSwgMHgzQSwgXAotICAgICAgICAweDIzLCAweEJBLCAweDQ0LCAweDQyLCAweENBLCAweEY1LCAweDNFLCAweEE2LCBcCi0gICAgICAgIDB4M0IsIDB4QjQsIDB4NTQsIDB4MzIsIDB4OUIsIDB4NzYsIDB4MjQsIDB4QzgsIFwKLSAgICAgICAgMHg5MSwgMHg3QiwgMHhERCwgMHg2NCwgMHhCMSwgMHhDMCwgMHhGRCwgMHg0QywgXAotICAgICAgICAweEIzLCAweDhFLCAweDhDLCAweDMzLCAweDRDLCAweDcwLCAweDFDLCAweDNBLCBcCi0gICAgICAgIDB4Q0QsIDB4QUQsIDB4MDYsIDB4NTcsIDB4RkMsIDB4Q0YsIDB4RUMsIDB4NzEsIFwKLSAgICAgICAgMHg5QiwgMHgxRiwgMHg1QywgMHgzRSwgMHg0RSwgMHg0NiwgMHgwNCwgMHgxRiwgXAotICAgICAgICAweDM4LCAweDgxLCAweDQ3LCAweEZCLCAweDRDLCAweEZELCAweEI0LCAweDc3LCBcCi0gICAgICAgIDB4QTUsIDB4MjQsIDB4NzEsIDB4RjcsIDB4QTksIDB4QTksIDB4NjksIDB4MTAsIFwKLSAgICAgICAgMHhCOCwgMHg1NSwgMHgzMiwgMHgyRSwgMHhEQiwgMHg2MywgMHg0MCwgMHhEOCwgXAotICAgICAgICAweEEwLCAweDBFLCAweEYwLCAweDkyLCAweDM1LCAweDA1LCAweDExLCAweEUzLCBcCi0gICAgICAgIDB4MEEsIDB4QkUsIDB4QzEsIDB4RkYsIDB4RjksIDB4RTMsIDB4QTIsIDB4NkUsIFwKLSAgICAgICAgMHg3RiwgMHhCMiwgMHg5RiwgMHg4QywgMHgxOCwgMHgzMCwgMHgyMywgMHhDMywgXAotICAgICAgICAweDU4LCAweDdFLCAweDM4LCAweERBLCAweDAwLCAweDc3LCAweEQ5LCAweEI0LCBcCi0gICAgICAgIDB4NzYsIDB4M0UsIDB4NEUsIDB4NEIsIDB4OTQsIDB4QjIsIDB4QkIsIDB4QzEsIFwKLSAgICAgICAgMHg5NCwgMHhDNiwgMHg2NSwgMHgxRSwgMHg3NywgMHhDQSwgMHhGOSwgMHg5MiwgXAotICAgICAgICAweEVFLCAweEFBLCAweEMwLCAweDIzLCAweDJBLCAweDI4LCAweDFCLCAweEY2LCBcCi0gICAgICAgIDB4QjMsIDB4QTcsIDB4MzksIDB4QzEsIDB4MjIsIDB4NjEsIDB4MTYsIDB4ODIsIFwKLSAgICAgICAgMHgwQSwgMHhFOCwgMHhEQiwgMHg1OCwgMHg0NywgMHhBNiwgMHg3QywgMHhCRSwgXAotICAgICAgICAweEY5LCAweEM5LCAweDA5LCAweDFCLCAweDQ2LCAweDJELCAweDUzLCAweDhDLCBcCi0gICAgICAgIDB4RDcsIDB4MkIsIDB4MDMsIDB4NzQsIDB4NkEsIDB4RTcsIDB4N0YsIDB4NUUsIFwKLSAgICAgICAgMHg2MiwgMHgyOSwgMHgyQywgMHgzMSwgMHgxNSwgMHg2MiwgMHhBOCwgMHg0NiwgXAotICAgICAgICAweDUwLCAweDVELCAweEM4LCAweDJELCAweEI4LCAweDU0LCAweDMzLCAweDhBLCBcCi0gICAgICAgIDB4RTQsIDB4OUYsIDB4NTIsIDB4MzUsIDB4QzksIDB4NUIsIDB4OTEsIDB4MTcsIFwKLSAgICAgICAgMHg4QywgMHhDRiwgMHgyRCwgMHhENSwgMHhDQSwgMHhDRSwgMHhGNCwgMHgwMywgXAotICAgICAgICAweEVDLCAweDlELCAweDE4LCAweDEwLCAweEM2LCAweDI3LCAweDJCLCAweDA0LCBcCi0gICAgICAgIDB4NUIsIDB4M0IsIDB4NzEsIDB4RjksIDB4REMsIDB4NkIsIDB4ODAsIDB4RDYsIFwKLSAgICAgICAgMHgzRiwgMHhERCwgMHg0QSwgMHg4RSwgMHg5QSwgMHhEQiwgMHgxRSwgMHg2OSwgXAotICAgICAgICAweDYyLCAweEE2LCAweDk1LCAweDI2LCAweEQ0LCAweDMxLCAweDYxLCAweEMxLCBcCi0gICAgICAgIDB4QTQsIDB4MUQsIDB4NTcsIDB4MEQsIDB4NzksIDB4MzgsIDB4REEsIDB4RDQsIFwKLSAgICAgICAgMHhBNCwgMHgwRSwgMHgzMiwgMHg5QywgMHhDRiwgMHhGNCwgMHg2QSwgMHhBQSwgXAotICAgICAgICAweDM2LCAweEFELCAweDAwLCAweDRDLCAweEY2LCAweDAwLCAweEM4LCAweDM4LCBcCi0gICAgICAgIDB4MUUsIDB4NDIsIDB4NUEsIDB4MzEsIDB4RDksIDB4NTEsIDB4QUUsIDB4NjQsIFwKLSAgICAgICAgMHhGRCwgMHhCMiwgMHgzRiwgMHhDRSwgMHhDOSwgMHg1MCwgMHg5RCwgMHg0MywgXAotICAgICAgICAweDY4LCAweDdGLCAweEVCLCAweDY5LCAweEVELCAweEQxLCAweENDLCAweDVFLCBcCi0gICAgICAgIDB4MEIsIDB4OEMsIDB4QzMsIDB4QkQsIDB4RjYsIDB4NEIsIDB4MTAsIDB4RUYsIFwKLSAgICAgICAgMHg4NiwgMHhCNiwgMHgzMSwgMHg0MiwgMHhBMywgMHhBQiwgMHg4OCwgMHgyOSwgXAotICAgICAgICAweDU1LCAweDVCLCAweDJGLCAweDc0LCAweDdDLCAweDkzLCAweDI2LCAweDY1LCBcCi0gICAgICAgIDB4Q0IsIDB4MkMsIDB4MEYsIDB4MUMsIDB4QzAsIDB4MUIsIDB4RDcsIDB4MDIsIFwKLSAgICAgICAgMHgyOSwgMHgzOCwgMHg4OCwgMHgzOSwgMHhEMiwgMHhBRiwgMHgwNSwgMHhFNCwgXAotICAgICAgICAweDU0LCAweDUwLCAweDRBLCAweEM3LCAweDhCLCAweDc1LCAweDgyLCAweDgyLCBcCi0gICAgICAgIDB4MjgsIDB4NDYsIDB4QzAsIDB4QkEsIDB4MzUsIDB4QzMsIDB4NUYsIDB4NUMsIFwKLSAgICAgICAgMHg1OSwgMHgxNiwgMHgwQywgMHhDMCwgMHg0NiwgMHhGRCwgMHg4MiwgMHg1MSwgXAotICAgICAgICAweDU0LCAweDFGLCAweEM2LCAweDhDLCAweDlDLCAweDg2LCAweEIwLCAweDIyLCBcCi0gICAgICAgIDB4QkIsIDB4NzAsIDB4OTksIDB4ODcsIDB4NkEsIDB4NDYsIDB4MEUsIDB4NzQsIFwKLSAgICAgICAgMHg1MSwgMHhBOCwgMHhBOSwgMHgzMSwgMHgwOSwgMHg3MCwgMHgzRiwgMHhFRSwgXAotICAgICAgICAweDFDLCAweDIxLCAweDdFLCAweDZDLCAweDM4LCAweDI2LCAweEU1LCAweDJDLCBcCi0gICAgICAgIDB4NTEsIDB4QUEsIDB4NjksIDB4MUUsIDB4MEUsIDB4NDIsIDB4M0MsIDB4RkMsIFwKLSAgICAgICAgMHg5OSwgMHhFOSwgMHhFMywgMHgxNiwgMHg1MCwgMHhDMSwgMHgyMSwgMHg3QiwgXAotICAgICAgICAweDYyLCAweDQ4LCAweDE2LCAweENELCAweEFELCAweDlBLCAweDk1LCAweEY5LCBcCi0gICAgICAgIDB4RDUsIDB4QjgsIDB4MDEsIDB4OTQsIDB4ODgsIDB4RDksIDB4QzAsIDB4QTAsIFwKLSAgICAgICAgMHhBMSwgMHhGRSwgMHgzMCwgMHg3NSwgMHhBNSwgMHg3NywgMHhFMiwgMHgzMSwgXAotICAgICAgICAweDgzLCAweEY4LCAweDFELCAweDRBLCAweDNGLCAweDJGLCAweEE0LCAweDU3LCBcCi0gICAgICAgIDB4MUUsIDB4RkMsIDB4OEMsIDB4RTAsIDB4QkEsIDB4OEEsIDB4NEYsIDB4RTgsIFwKLSAgICAgICAgMHhCNiwgMHg4NSwgMHg1RCwgMHhGRSwgMHg3MiwgMHhCMCwgMHhBNiwgMHg2RSwgXAotICAgICAgICAweERFLCAweEQyLCAweEZCLCAweEFCLCAweEZCLCAweEU1LCAweDhBLCAweDMwLCBcCi0gICAgICAgIDB4RkEsIDB4RkEsIDB4QkUsIDB4MUMsIDB4NUQsIDB4NzEsIDB4QTgsIDB4N0UsIFwKLSAgICAgICAgMHgyRiwgMHg3NCwgMHgxRSwgMHhGOCwgMHhDMSwgMHhGRSwgMHg4NiwgMHhGRSwgXAotICAgICAgICAweEE2LCAweEJCLCAweEZELCAweEU1LCAweDMwLCAweDY3LCAweDdGLCAweDBELCBcCi0gICAgICAgIDB4OTcsIDB4RDEsIDB4MUQsIDB4NDksIDB4RjcsIDB4QTgsIDB4NDQsIDB4M0QsIFwKLSAgICAgICAgMHgwOCwgMHgyMiwgMHhFNSwgMHgwNiwgMHhBOSwgMHhGNCwgMHg2MSwgMHg0RSwgXAotICAgICAgICAweDAxLCAweDFFLCAweDJBLCAweDk0LCAweDgzLCAweDhGLCAweEY4LCAweDhDLCBcCi0gICAgICAgIDB4RDYsIDB4OEMsIDB4OEIsIDB4QjcsIDB4QzUsIDB4QzYsIDB4NDIsIDB4NEMsIFwKLSAgICAgICAgMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiB9Ci0KLSNkZWZpbmUgTUJFRFRMU19ESE1fUkZDNzkxOV9GRkRIRTgxOTJfR19CSU4geyAweDAyIH0KLQotI2VuZGlmIC8qIGRobS5oICovCmRpZmYgLS1naXQgYS9pbmNsdWRlL21iZWR0bHMvZWNkaC5oIGIvaW5jbHVkZS9tYmVkdGxzL2VjZGguaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYTA5MDlkNi4uMDAwMDAwMAotLS0gYS9pbmNsdWRlL21iZWR0bHMvZWNkaC5oCisrKyAvZGV2L251bGwKQEAgLTEsNDU0ICswLDAgQEAKLS8qKgotICogXGZpbGUgZWNkaC5oCi0gKgotICogXGJyaWVmIFRoaXMgZmlsZSBjb250YWlucyBFQ0RIIGRlZmluaXRpb25zIGFuZCBmdW5jdGlvbnMuCi0gKgotICogVGhlIEVsbGlwdGljIEN1cnZlIERpZmZpZS1IZWxsbWFuIChFQ0RIKSBwcm90b2NvbCBpcyBhbiBhbm9ueW1vdXMKLSAqIGtleSBhZ3JlZW1lbnQgcHJvdG9jb2wgYWxsb3dpbmcgdHdvIHBhcnRpZXMgdG8gZXN0YWJsaXNoIGEgc2hhcmVkCi0gKiBzZWNyZXQgb3ZlciBhbiBpbnNlY3VyZSBjaGFubmVsLiBFYWNoIHBhcnR5IG11c3QgaGF2ZSBhbgotICogZWxsaXB0aWMtY3VydmUgcHVibGlj4oCTcHJpdmF0ZSBrZXkgcGFpci4KLSAqCi0gKiBGb3IgbW9yZSBpbmZvcm1hdGlvbiwgc2VlIDxlbT5OSVNUIFNQIDgwMC01NkEgUmV2LiAyOiBSZWNvbW1lbmRhdGlvbiBmb3IKLSAqIFBhaXItV2lzZSBLZXkgRXN0YWJsaXNobWVudCBTY2hlbWVzIFVzaW5nIERpc2NyZXRlIExvZ2FyaXRobQotICogQ3J5cHRvZ3JhcGh5PC9lbT4uCi0gKi8KLS8qCi0gKiAgQ29weXJpZ2h0IFRoZSBNYmVkIFRMUyBDb250cmlidXRvcnMKLSAqICBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMCBPUiBHUEwtMi4wLW9yLWxhdGVyCi0gKi8KLQotI2lmbmRlZiBNQkVEVExTX0VDREhfSAotI2RlZmluZSBNQkVEVExTX0VDREhfSAotI2luY2x1ZGUgIm1iZWR0bHMvcHJpdmF0ZV9hY2Nlc3MuaCIKLQotI2luY2x1ZGUgIm1iZWR0bHMvYnVpbGRfaW5mby5oIgotCi0jaW5jbHVkZSAibWJlZHRscy9lY3AuaCIKLQotLyoKLSAqIE1iZWQgVExTIHN1cHBvcnRzIHR3byBmb3JtYXRzIGZvciBFQ0RIIGNvbnRleHRzICgjbWJlZHRsc19lY2RoX2NvbnRleHQKLSAqIGRlZmluZWQgaW4gYGVjZGguaGApLiBGb3IgbW9zdCBhcHBsaWNhdGlvbnMsIHRoZSBjaG9pY2Ugb2YgZm9ybWF0IG1ha2VzCi0gKiBubyBkaWZmZXJlbmNlLCBzaW5jZSBhbGwgbGlicmFyeSBmdW5jdGlvbnMgY2FuIHdvcmsgd2l0aCBlaXRoZXIgZm9ybWF0LAotICogZXhjZXB0IHRoYXQgdGhlIG5ldyBmb3JtYXQgaXMgaW5jb21wYXRpYmxlIHdpdGggTUJFRFRMU19FQ1BfUkVTVEFSVEFCTEUuCi0KLSAqIFRoZSBuZXcgZm9ybWF0IHVzZWQgd2hlbiB0aGlzIG9wdGlvbiBpcyBkaXNhYmxlZCBpcyBzbWFsbGVyCi0gKiAoNTYgYnl0ZXMgb24gYSAzMi1iaXQgcGxhdGZvcm0pLiBJbiBmdXR1cmUgdmVyc2lvbnMgb2YgdGhlIGxpYnJhcnksIGl0Ci0gKiB3aWxsIHN1cHBvcnQgYWx0ZXJuYXRpdmUgaW1wbGVtZW50YXRpb25zIG9mIEVDREggb3BlcmF0aW9ucy4KLSAqIFRoZSBuZXcgZm9ybWF0IGlzIGluY29tcGF0aWJsZSB3aXRoIGFwcGxpY2F0aW9ucyB0aGF0IGFjY2VzcwotICogY29udGV4dCBmaWVsZHMgZGlyZWN0bHkgYW5kIHdpdGggcmVzdGFydGFibGUgRUNQIG9wZXJhdGlvbnMuCi0gKi8KLQotI2lmIGRlZmluZWQoTUJFRFRMU19FQ1BfUkVTVEFSVEFCTEUpCi0jZGVmaW5lIE1CRURUTFNfRUNESF9MRUdBQ1lfQ09OVEVYVAotI2Vsc2UKLSN1bmRlZiBNQkVEVExTX0VDREhfTEVHQUNZX0NPTlRFWFQKLSNlbmRpZgotCi0jaWYgZGVmaW5lZChNQkVEVExTX0VDREhfVkFSSUFOVF9FVkVSRVNUX0VOQUJMRUQpCi0jdW5kZWYgTUJFRFRMU19FQ0RIX0xFR0FDWV9DT05URVhUCi0jaW5jbHVkZSAiZXZlcmVzdC9ldmVyZXN0LmgiCi0jZW5kaWYKLQotI2lmZGVmIF9fY3BsdXNwbHVzCi1leHRlcm4gIkMiIHsKLSNlbmRpZgotCi0vKioKLSAqIERlZmluZXMgdGhlIHNvdXJjZSBvZiB0aGUgaW1wb3J0ZWQgRUMga2V5LgotICovCi10eXBlZGVmIGVudW0gewotICAgIE1CRURUTFNfRUNESF9PVVJTLCAgIC8qKjwgT3VyIGtleS4gKi8KLSAgICBNQkVEVExTX0VDREhfVEhFSVJTLCAvKio8IFRoZSBrZXkgb2YgdGhlIHBlZXIuICovCi19IG1iZWR0bHNfZWNkaF9zaWRlOwotCi0jaWYgIWRlZmluZWQoTUJFRFRMU19FQ0RIX0xFR0FDWV9DT05URVhUKQotLyoqCi0gKiBEZWZpbmVzIHRoZSBFQ0RIIGltcGxlbWVudGF0aW9uIHVzZWQuCi0gKgotICogTGF0ZXIgdmVyc2lvbnMgb2YgdGhlIGxpYnJhcnkgbWF5IGFkZCBuZXcgdmFyaWFudHMsIHRoZXJlZm9yZSB1c2VycyBzaG91bGQKLSAqIG5vdCBtYWtlIGFueSBhc3N1bXB0aW9ucyBhYm91dCB0aGVtLgotICovCi10eXBlZGVmIGVudW0gewotICAgIE1CRURUTFNfRUNESF9WQVJJQU5UX05PTkUgPSAwLCAgIC8qITwgSW1wbGVtZW50YXRpb24gbm90IGRlZmluZWQuICovCi0gICAgTUJFRFRMU19FQ0RIX1ZBUklBTlRfTUJFRFRMU18yXzAsLyohPCBUaGUgZGVmYXVsdCBNYmVkIFRMUyBpbXBsZW1lbnRhdGlvbiAqLwotI2lmIGRlZmluZWQoTUJFRFRMU19FQ0RIX1ZBUklBTlRfRVZFUkVTVF9FTkFCTEVEKQotICAgIE1CRURUTFNfRUNESF9WQVJJQU5UX0VWRVJFU1QgICAgIC8qITwgRXZlcmVzdCBpbXBsZW1lbnRhdGlvbiAqLwotI2VuZGlmCi19IG1iZWR0bHNfZWNkaF92YXJpYW50OwotCi0vKioKLSAqIFRoZSBjb250ZXh0IHVzZWQgYnkgdGhlIGRlZmF1bHQgRUNESCBpbXBsZW1lbnRhdGlvbi4KLSAqCi0gKiBMYXRlciB2ZXJzaW9ucyBtaWdodCBjaGFuZ2UgdGhlIHN0cnVjdHVyZSBvZiB0aGlzIGNvbnRleHQsIHRoZXJlZm9yZSB1c2VycwotICogc2hvdWxkIG5vdCBtYWtlIGFueSBhc3N1bXB0aW9ucyBhYm91dCB0aGUgc3RydWN0dXJlIG9mCi0gKiBtYmVkdGxzX2VjZGhfY29udGV4dF9tYmVkLgotICovCi10eXBlZGVmIHN0cnVjdCBtYmVkdGxzX2VjZGhfY29udGV4dF9tYmVkIHsKLSAgICBtYmVkdGxzX2VjcF9ncm91cCBNQkVEVExTX1BSSVZBVEUoZ3JwKTsgICAvKiE8IFRoZSBlbGxpcHRpYyBjdXJ2ZSB1c2VkLiAqLwotICAgIG1iZWR0bHNfbXBpIE1CRURUTFNfUFJJVkFURShkKTsgICAgICAgICAgIC8qITwgVGhlIHByaXZhdGUga2V5LiAqLwotICAgIG1iZWR0bHNfZWNwX3BvaW50IE1CRURUTFNfUFJJVkFURShRKTsgICAgIC8qITwgVGhlIHB1YmxpYyBrZXkuICovCi0gICAgbWJlZHRsc19lY3BfcG9pbnQgTUJFRFRMU19QUklWQVRFKFFwKTsgICAgLyohPCBUaGUgdmFsdWUgb2YgdGhlIHB1YmxpYyBrZXkgb2YgdGhlIHBlZXIuICovCi0gICAgbWJlZHRsc19tcGkgTUJFRFRMU19QUklWQVRFKHopOyAgICAgICAgICAgLyohPCBUaGUgc2hhcmVkIHNlY3JldC4gKi8KLSNpZiBkZWZpbmVkKE1CRURUTFNfRUNQX1JFU1RBUlRBQkxFKQotICAgIG1iZWR0bHNfZWNwX3Jlc3RhcnRfY3R4IE1CRURUTFNfUFJJVkFURShycyk7IC8qITwgVGhlIHJlc3RhcnQgY29udGV4dCBmb3IgRUMgY29tcHV0YXRpb25zLiAqLwotI2VuZGlmCi19IG1iZWR0bHNfZWNkaF9jb250ZXh0X21iZWQ7Ci0jZW5kaWYKLQotLyoqCi0gKgotICogXHdhcm5pbmcgICAgICAgICBQZXJmb3JtaW5nIG11bHRpcGxlIG9wZXJhdGlvbnMgY29uY3VycmVudGx5IG9uIHRoZSBzYW1lCi0gKiAgICAgICAgICAgICAgICAgIEVDRFNBIGNvbnRleHQgaXMgbm90IHN1cHBvcnRlZDsgb2JqZWN0cyBvZiB0aGlzIHR5cGUKLSAqICAgICAgICAgICAgICAgICAgc2hvdWxkIG5vdCBiZSBzaGFyZWQgYmV0d2VlbiBtdWx0aXBsZSB0aHJlYWRzLgotICogXGJyaWVmICAgICAgICAgICBUaGUgRUNESCBjb250ZXh0IHN0cnVjdHVyZS4KLSAqLwotdHlwZWRlZiBzdHJ1Y3QgbWJlZHRsc19lY2RoX2NvbnRleHQgewotI2lmIGRlZmluZWQoTUJFRFRMU19FQ0RIX0xFR0FDWV9DT05URVhUKQotICAgIG1iZWR0bHNfZWNwX2dyb3VwIE1CRURUTFNfUFJJVkFURShncnApOyAgIC8qITwgVGhlIGVsbGlwdGljIGN1cnZlIHVzZWQuICovCi0gICAgbWJlZHRsc19tcGkgTUJFRFRMU19QUklWQVRFKGQpOyAgICAgICAgICAgLyohPCBUaGUgcHJpdmF0ZSBrZXkuICovCi0gICAgbWJlZHRsc19lY3BfcG9pbnQgTUJFRFRMU19QUklWQVRFKFEpOyAgICAgLyohPCBUaGUgcHVibGljIGtleS4gKi8KLSAgICBtYmVkdGxzX2VjcF9wb2ludCBNQkVEVExTX1BSSVZBVEUoUXApOyAgICAvKiE8IFRoZSB2YWx1ZSBvZiB0aGUgcHVibGljIGtleSBvZiB0aGUgcGVlci4gKi8KLSAgICBtYmVkdGxzX21waSBNQkVEVExTX1BSSVZBVEUoeik7ICAgICAgICAgICAvKiE8IFRoZSBzaGFyZWQgc2VjcmV0LiAqLwotICAgIGludCBNQkVEVExTX1BSSVZBVEUocG9pbnRfZm9ybWF0KTsgICAgICAgIC8qITwgVGhlIGZvcm1hdCBvZiBwb2ludCBleHBvcnQgaW4gVExTIG1lc3NhZ2VzLiAqLwotICAgIG1iZWR0bHNfZWNwX3BvaW50IE1CRURUTFNfUFJJVkFURShWaSk7ICAgIC8qITwgVGhlIGJsaW5kaW5nIHZhbHVlLiAqLwotICAgIG1iZWR0bHNfZWNwX3BvaW50IE1CRURUTFNfUFJJVkFURShWZik7ICAgIC8qITwgVGhlIHVuYmxpbmRpbmcgdmFsdWUuICovCi0gICAgbWJlZHRsc19tcGkgTUJFRFRMU19QUklWQVRFKF9kKTsgICAgICAgICAgLyohPCBUaGUgcHJldmlvdXMgXHAgZC4gKi8KLSNpZiBkZWZpbmVkKE1CRURUTFNfRUNQX1JFU1RBUlRBQkxFKQotICAgIGludCBNQkVEVExTX1BSSVZBVEUocmVzdGFydF9lbmFibGVkKTsgICAgICAgIC8qITwgVGhlIGZsYWcgZm9yIHJlc3RhcnRhYmxlIG1vZGUuICovCi0gICAgbWJlZHRsc19lY3BfcmVzdGFydF9jdHggTUJFRFRMU19QUklWQVRFKHJzKTsgLyohPCBUaGUgcmVzdGFydCBjb250ZXh0IGZvciBFQyBjb21wdXRhdGlvbnMuICovCi0jZW5kaWYgLyogTUJFRFRMU19FQ1BfUkVTVEFSVEFCTEUgKi8KLSNlbHNlCi0gICAgdWludDhfdCBNQkVEVExTX1BSSVZBVEUocG9pbnRfZm9ybWF0KTsgICAgICAgLyohPCBUaGUgZm9ybWF0IG9mIHBvaW50IGV4cG9ydCBpbiBUTFMgbWVzc2FnZXMKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcyBkZWZpbmVkIGluIFJGQyA0NDkyLiAqLwotICAgIG1iZWR0bHNfZWNwX2dyb3VwX2lkIE1CRURUTFNfUFJJVkFURShncnBfaWQpOy8qITwgVGhlIGVsbGlwdGljIGN1cnZlIHVzZWQuICovCi0gICAgbWJlZHRsc19lY2RoX3ZhcmlhbnQgTUJFRFRMU19QUklWQVRFKHZhcik7ICAgLyohPCBUaGUgRUNESCBpbXBsZW1lbnRhdGlvbi9zdHJ1Y3R1cmUgdXNlZC4gKi8KLSAgICB1bmlvbiB7Ci0gICAgICAgIG1iZWR0bHNfZWNkaF9jb250ZXh0X21iZWQgICBNQkVEVExTX1BSSVZBVEUobWJlZF9lY2RoKTsKLSNpZiBkZWZpbmVkKE1CRURUTFNfRUNESF9WQVJJQU5UX0VWRVJFU1RfRU5BQkxFRCkKLSAgICAgICAgbWJlZHRsc19lY2RoX2NvbnRleHRfZXZlcmVzdCBNQkVEVExTX1BSSVZBVEUoZXZlcmVzdF9lY2RoKTsKLSNlbmRpZgotICAgIH0gTUJFRFRMU19QUklWQVRFKGN0eCk7ICAgICAgICAgICAgICAgICAgICAgIC8qITwgSW1wbGVtZW50YXRpb24tc3BlY2lmaWMgY29udGV4dC4gVGhlCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGV4dCBpbiB1c2UgaXMgc3BlY2lmaWVkIGJ5IHRoZSBcYyB2YXIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWVsZC4gKi8KLSNpZiBkZWZpbmVkKE1CRURUTFNfRUNQX1JFU1RBUlRBQkxFKQotICAgIHVpbnQ4X3QgTUJFRFRMU19QUklWQVRFKHJlc3RhcnRfZW5hYmxlZCk7ICAgIC8qITwgVGhlIGZsYWcgZm9yIHJlc3RhcnRhYmxlIG1vZGUuIEZ1bmN0aW9ucyBvZgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFuIGFsdGVybmF0aXZlIGltcGxlbWVudGF0aW9uIG5vdCBzdXBwb3J0aW5nCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzdGFydGFibGUgbW9kZSBtdXN0IHJldHVybgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1CRURUTFNfRVJSX1BMQVRGT1JNX0ZFQVRVUkVfVU5TVVBQT1JURUQgZXJyb3IKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiB0aGlzIGZsYWcgaXMgc2V0LiAqLwotI2VuZGlmIC8qIE1CRURUTFNfRUNQX1JFU1RBUlRBQkxFICovCi0jZW5kaWYgLyogTUJFRFRMU19FQ0RIX0xFR0FDWV9DT05URVhUICovCi19Ci1tYmVkdGxzX2VjZGhfY29udGV4dDsKLQotLyoqCi0gKiBcYnJpZWYgICAgICAgICAgUmV0dXJuIHRoZSBFQ1AgZ3JvdXAgZm9yIHByb3ZpZGVkIGNvbnRleHQuCi0gKgotICogXG5vdGUgICAgICAgICAgIFRvIGFjY2VzcyBncm91cCBzcGVjaWZpYyBmaWVsZHMsIHVzZXJzIHNob3VsZCB1c2UKLSAqICAgICAgICAgICAgICAgICBgbWJlZHRsc19lY3BfY3VydmVfaW5mb19mcm9tX2dycF9pZGAgb3IKLSAqICAgICAgICAgICAgICAgICBgbWJlZHRsc19lY3BfZ3JvdXBfbG9hZGAgb24gdGhlIGV4dHJhY3RlZCBgZ3JvdXBfaWRgLgotICoKLSAqIFxwYXJhbSBjdHggICAgICBUaGUgRUNESCBjb250ZXh0IHRvIHBhcnNlLiBUaGlzIG11c3Qgbm90IGJlIFxjIE5VTEwuCi0gKgotICogXHJldHVybiAgICAgICAgIFRoZSBcYyBtYmVkdGxzX2VjcF9ncm91cF9pZCBvZiB0aGUgY29udGV4dC4KLSAqLwotbWJlZHRsc19lY3BfZ3JvdXBfaWQgbWJlZHRsc19lY2RoX2dldF9ncnBfaWQobWJlZHRsc19lY2RoX2NvbnRleHQgKmN0eCk7Ci0KLS8qKgotICogXGJyaWVmICAgICAgICAgIENoZWNrIHdoZXRoZXIgYSBnaXZlbiBncm91cCBjYW4gYmUgdXNlZCBmb3IgRUNESC4KLSAqCi0gKiBccGFyYW0gZ2lkICAgICAgVGhlIEVDUCBncm91cCBJRCB0byBjaGVjay4KLSAqCi0gKiBccmV0dXJuICAgICAgICAgXGMgMSBpZiB0aGUgZ3JvdXAgY2FuIGJlIHVzZWQsIFxjIDAgb3RoZXJ3aXNlCi0gKi8KLWludCBtYmVkdGxzX2VjZGhfY2FuX2RvKG1iZWR0bHNfZWNwX2dyb3VwX2lkIGdpZCk7Ci0KLS8qKgotICogXGJyaWVmICAgICAgICAgICBUaGlzIGZ1bmN0aW9uIGdlbmVyYXRlcyBhbiBFQ0RIIGtleXBhaXIgb24gYW4gZWxsaXB0aWMKLSAqICAgICAgICAgICAgICAgICAgY3VydmUuCi0gKgotICogICAgICAgICAgICAgICAgICBUaGlzIGZ1bmN0aW9uIHBlcmZvcm1zIHRoZSBmaXJzdCBvZiB0d28gY29yZSBjb21wdXRhdGlvbnMKLSAqICAgICAgICAgICAgICAgICAgaW1wbGVtZW50ZWQgZHVyaW5nIHRoZSBFQ0RIIGtleSBleGNoYW5nZS4gVGhlIHNlY29uZCBjb3JlCi0gKiAgICAgICAgICAgICAgICAgIGNvbXB1dGF0aW9uIGlzIHBlcmZvcm1lZCBieSBtYmVkdGxzX2VjZGhfY29tcHV0ZV9zaGFyZWQoKS4KLSAqCi0gKiBcc2VlICAgICAgICAgICAgIGVjcC5oCi0gKgotICogXHBhcmFtIGdycCAgICAgICBUaGUgRUNQIGdyb3VwIHRvIHVzZS4gVGhpcyBtdXN0IGJlIGluaXRpYWxpemVkIGFuZCBoYXZlCi0gKiAgICAgICAgICAgICAgICAgIGRvbWFpbiBwYXJhbWV0ZXJzIGxvYWRlZCwgZm9yIGV4YW1wbGUgdGhyb3VnaAotICogICAgICAgICAgICAgICAgICBtYmVkdGxzX2VjcF9sb2FkKCkgb3IgbWJlZHRsc19lY3BfdGxzX3JlYWRfZ3JvdXAoKS4KLSAqIFxwYXJhbSBkICAgICAgICAgVGhlIGRlc3RpbmF0aW9uIE1QSSAocHJpdmF0ZSBrZXkpLgotICogICAgICAgICAgICAgICAgICBUaGlzIG11c3QgYmUgaW5pdGlhbGl6ZWQuCi0gKiBccGFyYW0gUSAgICAgICAgIFRoZSBkZXN0aW5hdGlvbiBwb2ludCAocHVibGljIGtleSkuCi0gKiAgICAgICAgICAgICAgICAgIFRoaXMgbXVzdCBiZSBpbml0aWFsaXplZC4KLSAqIFxwYXJhbSBmX3JuZyAgICAgVGhlIFJORyBmdW5jdGlvbiB0byB1c2UuIFRoaXMgbXVzdCBub3QgYmUgXGMgTlVMTC4KLSAqIFxwYXJhbSBwX3JuZyAgICAgVGhlIFJORyBjb250ZXh0IHRvIGJlIHBhc3NlZCB0byBccCBmX3JuZy4gVGhpcyBtYXkgYmUKLSAqICAgICAgICAgICAgICAgICAgXGMgTlVMTCBpbiBjYXNlIFxwIGZfcm5nIGRvZXNuJ3QgbmVlZCBhIGNvbnRleHQgYXJndW1lbnQuCi0gKgotICogXHJldHVybiAgICAgICAgICBcYyAwIG9uIHN1Y2Nlc3MuCi0gKiBccmV0dXJuICAgICAgICAgIEFub3RoZXIgXGMgTUJFRFRMU19FUlJfRUNQX1hYWCBvcgotICogICAgICAgICAgICAgICAgICBcYyBNQkVEVExTX01QSV9YWFggZXJyb3IgY29kZSBvbiBmYWlsdXJlLgotICovCi1pbnQgbWJlZHRsc19lY2RoX2dlbl9wdWJsaWMobWJlZHRsc19lY3BfZ3JvdXAgKmdycCwgbWJlZHRsc19tcGkgKmQsIG1iZWR0bHNfZWNwX3BvaW50ICpRLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCAoKmZfcm5nKSh2b2lkICosIHVuc2lnbmVkIGNoYXIgKiwgc2l6ZV90KSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB2b2lkICpwX3JuZyk7Ci0KLS8qKgotICogXGJyaWVmICAgICAgICAgICBUaGlzIGZ1bmN0aW9uIGNvbXB1dGVzIHRoZSBzaGFyZWQgc2VjcmV0LgotICoKLSAqICAgICAgICAgICAgICAgICAgVGhpcyBmdW5jdGlvbiBwZXJmb3JtcyB0aGUgc2Vjb25kIG9mIHR3byBjb3JlIGNvbXB1dGF0aW9ucwotICogICAgICAgICAgICAgICAgICBpbXBsZW1lbnRlZCBkdXJpbmcgdGhlIEVDREgga2V5IGV4Y2hhbmdlLiBUaGUgZmlyc3QgY29yZQotICogICAgICAgICAgICAgICAgICBjb21wdXRhdGlvbiBpcyBwZXJmb3JtZWQgYnkgbWJlZHRsc19lY2RoX2dlbl9wdWJsaWMoKS4KLSAqCi0gKiBcc2VlICAgICAgICAgICAgIGVjcC5oCi0gKgotICogXG5vdGUgICAgICAgICAgICBJZiBccCBmX3JuZyBpcyBub3QgTlVMTCwgaXQgaXMgdXNlZCB0byBpbXBsZW1lbnQKLSAqICAgICAgICAgICAgICAgICAgY291bnRlcm1lYXN1cmVzIGFnYWluc3Qgc2lkZS1jaGFubmVsIGF0dGFja3MuCi0gKiAgICAgICAgICAgICAgICAgIEZvciBtb3JlIGluZm9ybWF0aW9uLCBzZWUgbWJlZHRsc19lY3BfbXVsKCkuCi0gKgotICogXHBhcmFtIGdycCAgICAgICBUaGUgRUNQIGdyb3VwIHRvIHVzZS4gVGhpcyBtdXN0IGJlIGluaXRpYWxpemVkIGFuZCBoYXZlCi0gKiAgICAgICAgICAgICAgICAgIGRvbWFpbiBwYXJhbWV0ZXJzIGxvYWRlZCwgZm9yIGV4YW1wbGUgdGhyb3VnaAotICogICAgICAgICAgICAgICAgICBtYmVkdGxzX2VjcF9sb2FkKCkgb3IgbWJlZHRsc19lY3BfdGxzX3JlYWRfZ3JvdXAoKS4KLSAqIFxwYXJhbSB6ICAgICAgICAgVGhlIGRlc3RpbmF0aW9uIE1QSSAoc2hhcmVkIHNlY3JldCkuCi0gKiAgICAgICAgICAgICAgICAgIFRoaXMgbXVzdCBiZSBpbml0aWFsaXplZC4KLSAqIFxwYXJhbSBRICAgICAgICAgVGhlIHB1YmxpYyBrZXkgZnJvbSBhbm90aGVyIHBhcnR5LgotICogICAgICAgICAgICAgICAgICBUaGlzIG11c3QgYmUgaW5pdGlhbGl6ZWQuCi0gKiBccGFyYW0gZCAgICAgICAgIE91ciBzZWNyZXQgZXhwb25lbnQgKHByaXZhdGUga2V5KS4KLSAqICAgICAgICAgICAgICAgICAgVGhpcyBtdXN0IGJlIGluaXRpYWxpemVkLgotICogXHBhcmFtIGZfcm5nICAgICBUaGUgUk5HIGZ1bmN0aW9uIHRvIHVzZS4gVGhpcyBtdXN0IG5vdCBiZSBcYyBOVUxMLgotICogXHBhcmFtIHBfcm5nICAgICBUaGUgUk5HIGNvbnRleHQgdG8gYmUgcGFzc2VkIHRvIFxwIGZfcm5nLiBUaGlzIG1heSBiZQotICogICAgICAgICAgICAgICAgICBcYyBOVUxMIGlmIFxwIGZfcm5nIGlzIFxjIE5VTEwgb3IgZG9lc24ndCBuZWVkIGEKLSAqICAgICAgICAgICAgICAgICAgY29udGV4dCBhcmd1bWVudC4KLSAqCi0gKiBccmV0dXJuICAgICAgICAgIFxjIDAgb24gc3VjY2Vzcy4KLSAqIFxyZXR1cm4gICAgICAgICAgQW5vdGhlciBcYyBNQkVEVExTX0VSUl9FQ1BfWFhYIG9yCi0gKiAgICAgICAgICAgICAgICAgIFxjIE1CRURUTFNfTVBJX1hYWCBlcnJvciBjb2RlIG9uIGZhaWx1cmUuCi0gKi8KLWludCBtYmVkdGxzX2VjZGhfY29tcHV0ZV9zaGFyZWQobWJlZHRsc19lY3BfZ3JvdXAgKmdycCwgbWJlZHRsc19tcGkgKnosCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IG1iZWR0bHNfZWNwX3BvaW50ICpRLCBjb25zdCBtYmVkdGxzX21waSAqZCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50ICgqZl9ybmcpKHZvaWQgKiwgdW5zaWduZWQgY2hhciAqLCBzaXplX3QpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2b2lkICpwX3JuZyk7Ci0KLS8qKgotICogXGJyaWVmICAgICAgICAgICBUaGlzIGZ1bmN0aW9uIGluaXRpYWxpemVzIGFuIEVDREggY29udGV4dC4KLSAqCi0gKiBccGFyYW0gY3R4ICAgICAgIFRoZSBFQ0RIIGNvbnRleHQgdG8gaW5pdGlhbGl6ZS4gVGhpcyBtdXN0IG5vdCBiZSBcYyBOVUxMLgotICovCi12b2lkIG1iZWR0bHNfZWNkaF9pbml0KG1iZWR0bHNfZWNkaF9jb250ZXh0ICpjdHgpOwotCi0vKioKLSAqIFxicmllZiAgICAgICAgICAgVGhpcyBmdW5jdGlvbiBzZXRzIHVwIHRoZSBFQ0RIIGNvbnRleHQgd2l0aCB0aGUgaW5mb3JtYXRpb24KLSAqICAgICAgICAgICAgICAgICAgZ2l2ZW4uCi0gKgotICogICAgICAgICAgICAgICAgICBUaGlzIGZ1bmN0aW9uIHNob3VsZCBiZSBjYWxsZWQgYWZ0ZXIgbWJlZHRsc19lY2RoX2luaXQoKSBidXQKLSAqICAgICAgICAgICAgICAgICAgYmVmb3JlIG1iZWR0bHNfZWNkaF9tYWtlX3BhcmFtcygpLiBUaGVyZSBpcyBubyBuZWVkIHRvIGNhbGwKLSAqICAgICAgICAgICAgICAgICAgdGhpcyBmdW5jdGlvbiBiZWZvcmUgbWJlZHRsc19lY2RoX3JlYWRfcGFyYW1zKCkuCi0gKgotICogICAgICAgICAgICAgICAgICBUaGlzIGlzIHRoZSBmaXJzdCBmdW5jdGlvbiB1c2VkIGJ5IGEgVExTIHNlcnZlciBmb3IgRUNESEUKLSAqICAgICAgICAgICAgICAgICAgY2lwaGVyc3VpdGVzLgotICoKLSAqIFxwYXJhbSBjdHggICAgICAgVGhlIEVDREggY29udGV4dCB0byBzZXQgdXAuIFRoaXMgbXVzdCBiZSBpbml0aWFsaXplZC4KLSAqIFxwYXJhbSBncnBfaWQgICAgVGhlIGdyb3VwIGlkIG9mIHRoZSBncm91cCB0byBzZXQgdXAgdGhlIGNvbnRleHQgZm9yLgotICoKLSAqIFxyZXR1cm4gICAgICAgICAgXGMgMCBvbiBzdWNjZXNzLgotICovCi1pbnQgbWJlZHRsc19lY2RoX3NldHVwKG1iZWR0bHNfZWNkaF9jb250ZXh0ICpjdHgsCi0gICAgICAgICAgICAgICAgICAgICAgIG1iZWR0bHNfZWNwX2dyb3VwX2lkIGdycF9pZCk7Ci0KLS8qKgotICogXGJyaWVmICAgICAgICAgICBUaGlzIGZ1bmN0aW9uIGZyZWVzIGEgY29udGV4dC4KLSAqCi0gKiBccGFyYW0gY3R4ICAgICAgIFRoZSBjb250ZXh0IHRvIGZyZWUuIFRoaXMgbWF5IGJlIFxjIE5VTEwsIGluIHdoaWNoCi0gKiAgICAgICAgICAgICAgICAgIGNhc2UgdGhpcyBmdW5jdGlvbiBkb2VzIG5vdGhpbmcuIElmIGl0IGlzIG5vdCBcYyBOVUxMLAotICogICAgICAgICAgICAgICAgICBpdCBtdXN0IHBvaW50IHRvIGFuIGluaXRpYWxpemVkIEVDREggY29udGV4dC4KLSAqLwotdm9pZCBtYmVkdGxzX2VjZGhfZnJlZShtYmVkdGxzX2VjZGhfY29udGV4dCAqY3R4KTsKLQotLyoqCi0gKiBcYnJpZWYgICAgICAgICAgIFRoaXMgZnVuY3Rpb24gZ2VuZXJhdGVzIGFuIEVDIGtleSBwYWlyIGFuZCBleHBvcnRzIGl0cwotICogICAgICAgICAgICAgICAgICBpbiB0aGUgZm9ybWF0IHVzZWQgaW4gYSBUTFMgU2VydmVyS2V5RXhjaGFuZ2UgaGFuZHNoYWtlCi0gKiAgICAgICAgICAgICAgICAgIG1lc3NhZ2UuCi0gKgotICogICAgICAgICAgICAgICAgICBUaGlzIGlzIHRoZSBzZWNvbmQgZnVuY3Rpb24gdXNlZCBieSBhIFRMUyBzZXJ2ZXIgZm9yIEVDREhFCi0gKiAgICAgICAgICAgICAgICAgIGNpcGhlcnN1aXRlcy4gKEl0IGlzIGNhbGxlZCBhZnRlciBtYmVkdGxzX2VjZGhfc2V0dXAoKS4pCi0gKgotICogXHNlZSAgICAgICAgICAgICBlY3AuaAotICoKLSAqIFxwYXJhbSBjdHggICAgICAgVGhlIEVDREggY29udGV4dCB0byB1c2UuIFRoaXMgbXVzdCBiZSBpbml0aWFsaXplZAotICogICAgICAgICAgICAgICAgICBhbmQgYm91bmQgdG8gYSBncm91cCwgZm9yIGV4YW1wbGUgdmlhIG1iZWR0bHNfZWNkaF9zZXR1cCgpLgotICogXHBhcmFtIG9sZW4gICAgICBUaGUgYWRkcmVzcyBhdCB3aGljaCB0byBzdG9yZSB0aGUgbnVtYmVyIG9mIEJ5dGVzIHdyaXR0ZW4uCi0gKiBccGFyYW0gYnVmICAgICAgIFRoZSBkZXN0aW5hdGlvbiBidWZmZXIuIFRoaXMgbXVzdCBiZSBhIHdyaXRhYmxlIGJ1ZmZlciBvZgotICogICAgICAgICAgICAgICAgICBsZW5ndGggXHAgYmxlbiBCeXRlcy4KLSAqIFxwYXJhbSBibGVuICAgICAgVGhlIGxlbmd0aCBvZiB0aGUgZGVzdGluYXRpb24gYnVmZmVyIFxwIGJ1ZiBpbiBCeXRlcy4KLSAqIFxwYXJhbSBmX3JuZyAgICAgVGhlIFJORyBmdW5jdGlvbiB0byB1c2UuIFRoaXMgbXVzdCBub3QgYmUgXGMgTlVMTC4KLSAqIFxwYXJhbSBwX3JuZyAgICAgVGhlIFJORyBjb250ZXh0IHRvIGJlIHBhc3NlZCB0byBccCBmX3JuZy4gVGhpcyBtYXkgYmUKLSAqICAgICAgICAgICAgICAgICAgXGMgTlVMTCBpbiBjYXNlIFxwIGZfcm5nIGRvZXNuJ3QgbmVlZCBhIGNvbnRleHQgYXJndW1lbnQuCi0gKgotICogXHJldHVybiAgICAgICAgICBcYyAwIG9uIHN1Y2Nlc3MuCi0gKiBccmV0dXJuICAgICAgICAgICNNQkVEVExTX0VSUl9FQ1BfSU5fUFJPR1JFU1MgaWYgbWF4aW11bSBudW1iZXIgb2YKLSAqICAgICAgICAgICAgICAgICAgb3BlcmF0aW9ucyB3YXMgcmVhY2hlZDogc2VlIFxjIG1iZWR0bHNfZWNwX3NldF9tYXhfb3BzKCkuCi0gKiBccmV0dXJuICAgICAgICAgIEFub3RoZXIgXGMgTUJFRFRMU19FUlJfRUNQX1hYWCBlcnJvciBjb2RlIG9uIGZhaWx1cmUuCi0gKi8KLWludCBtYmVkdGxzX2VjZGhfbWFrZV9wYXJhbXMobWJlZHRsc19lY2RoX2NvbnRleHQgKmN0eCwgc2l6ZV90ICpvbGVuLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBjaGFyICpidWYsIHNpemVfdCBibGVuLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgKCpmX3JuZykodm9pZCAqLCB1bnNpZ25lZCBjaGFyICosIHNpemVfdCksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZvaWQgKnBfcm5nKTsKLQotLyoqCi0gKiBcYnJpZWYgICAgICAgICAgIFRoaXMgZnVuY3Rpb24gcGFyc2VzIHRoZSBFQ0RIRSBwYXJhbWV0ZXJzIGluIGEKLSAqICAgICAgICAgICAgICAgICAgVExTIFNlcnZlcktleUV4Y2hhbmdlIGhhbmRzaGFrZSBtZXNzYWdlLgotICoKLSAqIFxub3RlICAgICAgICAgICAgSW4gYSBUTFMgaGFuZHNoYWtlLCB0aGlzIGlzIHRoZSBob3cgdGhlIGNsaWVudAotICogICAgICAgICAgICAgICAgICBzZXRzIHVwIGl0cyBFQ0RIRSBjb250ZXh0IGZyb20gdGhlIHNlcnZlcidzIHB1YmxpYwotICogICAgICAgICAgICAgICAgICBFQ0RIRSBrZXkgbWF0ZXJpYWwuCi0gKgotICogXHNlZSAgICAgICAgICAgICBlY3AuaAotICoKLSAqIFxwYXJhbSBjdHggICAgICAgVGhlIEVDREhFIGNvbnRleHQgdG8gdXNlLiBUaGlzIG11c3QgYmUgaW5pdGlhbGl6ZWQuCi0gKiBccGFyYW0gYnVmICAgICAgIE9uIGlucHV0LCBcYyAqYnVmIG11c3QgYmUgdGhlIHN0YXJ0IG9mIHRoZSBpbnB1dCBidWZmZXIuCi0gKiAgICAgICAgICAgICAgICAgIE9uIG91dHB1dCwgXGMgKmJ1ZiBpcyB1cGRhdGVkIHRvIHBvaW50IHRvIHRoZSBlbmQgb2YgdGhlCi0gKiAgICAgICAgICAgICAgICAgIGRhdGEgdGhhdCBoYXMgYmVlbiByZWFkLiBPbiBzdWNjZXNzLCB0aGlzIGlzIHRoZSBmaXJzdCBieXRlCi0gKiAgICAgICAgICAgICAgICAgIHBhc3QgdGhlIGVuZCBvZiB0aGUgU2VydmVyS2V5RXhjaGFuZ2UgcGFyYW1ldGVycy4KLSAqICAgICAgICAgICAgICAgICAgT24gZXJyb3IsIHRoaXMgaXMgdGhlIHBvaW50IGF0IHdoaWNoIGFuIGVycm9yIGhhcyBiZWVuCi0gKiAgICAgICAgICAgICAgICAgIGRldGVjdGVkLCB3aGljaCBpcyB1c3VhbGx5IG5vdCB1c2VmdWwgZXhjZXB0IHRvIGRlYnVnCi0gKiAgICAgICAgICAgICAgICAgIGZhaWx1cmVzLgotICogXHBhcmFtIGVuZCAgICAgICBUaGUgZW5kIG9mIHRoZSBpbnB1dCBidWZmZXIuCi0gKgotICogXHJldHVybiAgICAgICAgICBcYyAwIG9uIHN1Y2Nlc3MuCi0gKiBccmV0dXJuICAgICAgICAgIEFuIFxjIE1CRURUTFNfRVJSX0VDUF9YWFggZXJyb3IgY29kZSBvbiBmYWlsdXJlLgotICoKLSAqLwotaW50IG1iZWR0bHNfZWNkaF9yZWFkX3BhcmFtcyhtYmVkdGxzX2VjZGhfY29udGV4dCAqY3R4LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1bnNpZ25lZCBjaGFyICoqYnVmLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1bnNpZ25lZCBjaGFyICplbmQpOwotCi0vKioKLSAqIFxicmllZiAgICAgICAgICAgVGhpcyBmdW5jdGlvbiBzZXRzIHVwIGFuIEVDREggY29udGV4dCBmcm9tIGFuIEVDIGtleS4KLSAqCi0gKiAgICAgICAgICAgICAgICAgIEl0IGlzIHVzZWQgYnkgY2xpZW50cyBhbmQgc2VydmVycyBpbiBwbGFjZSBvZiB0aGUKLSAqICAgICAgICAgICAgICAgICAgU2VydmVyS2V5RWNoYW5nZSBmb3Igc3RhdGljIEVDREgsIGFuZCBpbXBvcnRzIEVDREgKLSAqICAgICAgICAgICAgICAgICAgcGFyYW1ldGVycyBmcm9tIHRoZSBFQyBrZXkgaW5mb3JtYXRpb24gb2YgYSBjZXJ0aWZpY2F0ZS4KLSAqCi0gKiBcc2VlICAgICAgICAgICAgIGVjcC5oCi0gKgotICogXHBhcmFtIGN0eCAgICAgICBUaGUgRUNESCBjb250ZXh0IHRvIHNldCB1cC4gVGhpcyBtdXN0IGJlIGluaXRpYWxpemVkLgotICogXHBhcmFtIGtleSAgICAgICBUaGUgRUMga2V5IHRvIHVzZS4gVGhpcyBtdXN0IGJlIGluaXRpYWxpemVkLgotICogXHBhcmFtIHNpZGUgICAgICBEZWZpbmVzIHRoZSBzb3VyY2Ugb2YgdGhlIGtleS4gUG9zc2libGUgdmFsdWVzIGFyZToKLSAqICAgICAgICAgICAgICAgICAgLSAjTUJFRFRMU19FQ0RIX09VUlM6IFRoZSBrZXkgaXMgb3Vycy4KLSAqICAgICAgICAgICAgICAgICAgLSAjTUJFRFRMU19FQ0RIX1RIRUlSUzogVGhlIGtleSBpcyB0aGF0IG9mIHRoZSBwZWVyLgotICoKLSAqIFxyZXR1cm4gICAgICAgICAgXGMgMCBvbiBzdWNjZXNzLgotICogXHJldHVybiAgICAgICAgICBBbm90aGVyIFxjIE1CRURUTFNfRVJSX0VDUF9YWFggZXJyb3IgY29kZSBvbiBmYWlsdXJlLgotICoKLSAqLwotaW50IG1iZWR0bHNfZWNkaF9nZXRfcGFyYW1zKG1iZWR0bHNfZWNkaF9jb250ZXh0ICpjdHgsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbWJlZHRsc19lY3Bfa2V5cGFpciAqa2V5LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1iZWR0bHNfZWNkaF9zaWRlIHNpZGUpOwotCi0vKioKLSAqIFxicmllZiAgICAgICAgICAgVGhpcyBmdW5jdGlvbiBnZW5lcmF0ZXMgYSBwdWJsaWMga2V5IGFuZCBleHBvcnRzIGl0Ci0gKiAgICAgICAgICAgICAgICAgIGFzIGEgVExTIENsaWVudEtleUV4Y2hhbmdlIHBheWxvYWQuCi0gKgotICogICAgICAgICAgICAgICAgICBUaGlzIGlzIHRoZSBzZWNvbmQgZnVuY3Rpb24gdXNlZCBieSBhIFRMUyBjbGllbnQgZm9yIEVDREgoRSkKLSAqICAgICAgICAgICAgICAgICAgY2lwaGVyc3VpdGVzLgotICoKLSAqIFxzZWUgICAgICAgICAgICAgZWNwLmgKLSAqCi0gKiBccGFyYW0gY3R4ICAgICAgIFRoZSBFQ0RIIGNvbnRleHQgdG8gdXNlLiBUaGlzIG11c3QgYmUgaW5pdGlhbGl6ZWQKLSAqICAgICAgICAgICAgICAgICAgYW5kIGJvdW5kIHRvIGEgZ3JvdXAsIHRoZSBsYXR0ZXIgdXN1YWxseSBieQotICogICAgICAgICAgICAgICAgICBtYmVkdGxzX2VjZGhfcmVhZF9wYXJhbXMoKS4KLSAqIFxwYXJhbSBvbGVuICAgICAgVGhlIGFkZHJlc3MgYXQgd2hpY2ggdG8gc3RvcmUgdGhlIG51bWJlciBvZiBCeXRlcyB3cml0dGVuLgotICogICAgICAgICAgICAgICAgICBUaGlzIG11c3Qgbm90IGJlIFxjIE5VTEwuCi0gKiBccGFyYW0gYnVmICAgICAgIFRoZSBkZXN0aW5hdGlvbiBidWZmZXIuIFRoaXMgbXVzdCBiZSBhIHdyaXRhYmxlIGJ1ZmZlcgotICogICAgICAgICAgICAgICAgICBvZiBsZW5ndGggXHAgYmxlbiBCeXRlcy4KLSAqIFxwYXJhbSBibGVuICAgICAgVGhlIHNpemUgb2YgdGhlIGRlc3RpbmF0aW9uIGJ1ZmZlciBccCBidWYgaW4gQnl0ZXMuCi0gKiBccGFyYW0gZl9ybmcgICAgIFRoZSBSTkcgZnVuY3Rpb24gdG8gdXNlLiBUaGlzIG11c3Qgbm90IGJlIFxjIE5VTEwuCi0gKiBccGFyYW0gcF9ybmcgICAgIFRoZSBSTkcgY29udGV4dCB0byBiZSBwYXNzZWQgdG8gXHAgZl9ybmcuIFRoaXMgbWF5IGJlCi0gKiAgICAgICAgICAgICAgICAgIFxjIE5VTEwgaW4gY2FzZSBccCBmX3JuZyBkb2Vzbid0IG5lZWQgYSBjb250ZXh0IGFyZ3VtZW50LgotICoKLSAqIFxyZXR1cm4gICAgICAgICAgXGMgMCBvbiBzdWNjZXNzLgotICogXHJldHVybiAgICAgICAgICAjTUJFRFRMU19FUlJfRUNQX0lOX1BST0dSRVNTIGlmIG1heGltdW0gbnVtYmVyIG9mCi0gKiAgICAgICAgICAgICAgICAgIG9wZXJhdGlvbnMgd2FzIHJlYWNoZWQ6IHNlZSBcYyBtYmVkdGxzX2VjcF9zZXRfbWF4X29wcygpLgotICogXHJldHVybiAgICAgICAgICBBbm90aGVyIFxjIE1CRURUTFNfRVJSX0VDUF9YWFggZXJyb3IgY29kZSBvbiBmYWlsdXJlLgotICovCi1pbnQgbWJlZHRsc19lY2RoX21ha2VfcHVibGljKG1iZWR0bHNfZWNkaF9jb250ZXh0ICpjdHgsIHNpemVfdCAqb2xlbiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgY2hhciAqYnVmLCBzaXplX3QgYmxlbiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50ICgqZl9ybmcpKHZvaWQgKiwgdW5zaWduZWQgY2hhciAqLCBzaXplX3QpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2b2lkICpwX3JuZyk7Ci0KLS8qKgotICogXGJyaWVmICAgICAgIFRoaXMgZnVuY3Rpb24gcGFyc2VzIGFuZCBwcm9jZXNzZXMgdGhlIEVDREhFIHBheWxvYWQgb2YgYQotICogICAgICAgICAgICAgIFRMUyBDbGllbnRLZXlFeGNoYW5nZSBtZXNzYWdlLgotICoKLSAqICAgICAgICAgICAgICBUaGlzIGlzIHRoZSB0aGlyZCBmdW5jdGlvbiB1c2VkIGJ5IGEgVExTIHNlcnZlciBmb3IgRUNESChFKQotICogICAgICAgICAgICAgIGNpcGhlcnN1aXRlcy4gKEl0IGlzIGNhbGxlZCBhZnRlciBtYmVkdGxzX2VjZGhfc2V0dXAoKSBhbmQKLSAqICAgICAgICAgICAgICBtYmVkdGxzX2VjZGhfbWFrZV9wYXJhbXMoKS4pCi0gKgotICogXHNlZSAgICAgICAgIGVjcC5oCi0gKgotICogXHBhcmFtIGN0eCAgIFRoZSBFQ0RIIGNvbnRleHQgdG8gdXNlLiBUaGlzIG11c3QgYmUgaW5pdGlhbGl6ZWQKLSAqICAgICAgICAgICAgICBhbmQgYm91bmQgdG8gYSBncm91cCwgZm9yIGV4YW1wbGUgdmlhIG1iZWR0bHNfZWNkaF9zZXR1cCgpLgotICogXHBhcmFtIGJ1ZiAgIFRoZSBwb2ludGVyIHRvIHRoZSBDbGllbnRLZXlFeGNoYW5nZSBwYXlsb2FkLiBUaGlzIG11c3QKLSAqICAgICAgICAgICAgICBiZSBhIHJlYWRhYmxlIGJ1ZmZlciBvZiBsZW5ndGggXHAgYmxlbiBCeXRlcy4KLSAqIFxwYXJhbSBibGVuICBUaGUgbGVuZ3RoIG9mIHRoZSBpbnB1dCBidWZmZXIgXHAgYnVmIGluIEJ5dGVzLgotICoKLSAqIFxyZXR1cm4gICAgICBcYyAwIG9uIHN1Y2Nlc3MuCi0gKiBccmV0dXJuICAgICAgQW4gXGMgTUJFRFRMU19FUlJfRUNQX1hYWCBlcnJvciBjb2RlIG9uIGZhaWx1cmUuCi0gKi8KLWludCBtYmVkdGxzX2VjZGhfcmVhZF9wdWJsaWMobWJlZHRsc19lY2RoX2NvbnRleHQgKmN0eCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdW5zaWduZWQgY2hhciAqYnVmLCBzaXplX3QgYmxlbik7Ci0KLS8qKgotICogXGJyaWVmICAgICAgICAgICBUaGlzIGZ1bmN0aW9uIGRlcml2ZXMgYW5kIGV4cG9ydHMgdGhlIHNoYXJlZCBzZWNyZXQuCi0gKgotICogICAgICAgICAgICAgICAgICBUaGlzIGlzIHRoZSBsYXN0IGZ1bmN0aW9uIHVzZWQgYnkgYm90aCBUTFMgY2xpZW50Ci0gKiAgICAgICAgICAgICAgICAgIGFuZCBzZXJ2ZXJzLgotICoKLSAqIFxub3RlICAgICAgICAgICAgSWYgXHAgZl9ybmcgaXMgbm90IE5VTEwsIGl0IGlzIHVzZWQgdG8gaW1wbGVtZW50Ci0gKiAgICAgICAgICAgICAgICAgIGNvdW50ZXJtZWFzdXJlcyBhZ2FpbnN0IHNpZGUtY2hhbm5lbCBhdHRhY2tzLgotICogICAgICAgICAgICAgICAgICBGb3IgbW9yZSBpbmZvcm1hdGlvbiwgc2VlIG1iZWR0bHNfZWNwX211bCgpLgotICoKLSAqIFxzZWUgICAgICAgICAgICAgZWNwLmgKLQotICogXHBhcmFtIGN0eCAgICAgICBUaGUgRUNESCBjb250ZXh0IHRvIHVzZS4gVGhpcyBtdXN0IGJlIGluaXRpYWxpemVkCi0gKiAgICAgICAgICAgICAgICAgIGFuZCBoYXZlIGl0cyBvd24gcHJpdmF0ZSBrZXkgZ2VuZXJhdGVkIGFuZCB0aGUgcGVlcidzCi0gKiAgICAgICAgICAgICAgICAgIHB1YmxpYyBrZXkgaW1wb3J0ZWQuCi0gKiBccGFyYW0gb2xlbiAgICAgIFRoZSBhZGRyZXNzIGF0IHdoaWNoIHRvIHN0b3JlIHRoZSB0b3RhbCBudW1iZXIgb2YKLSAqICAgICAgICAgICAgICAgICAgQnl0ZXMgd3JpdHRlbiBvbiBzdWNjZXNzLiBUaGlzIG11c3Qgbm90IGJlIFxjIE5VTEwuCi0gKiBccGFyYW0gYnVmICAgICAgIFRoZSBidWZmZXIgdG8gd3JpdGUgdGhlIGdlbmVyYXRlZCBzaGFyZWQga2V5IHRvLiBUaGlzCi0gKiAgICAgICAgICAgICAgICAgIG11c3QgYmUgYSB3cml0YWJsZSBidWZmZXIgb2Ygc2l6ZSBccCBibGVuIEJ5dGVzLgotICogXHBhcmFtIGJsZW4gICAgICBUaGUgbGVuZ3RoIG9mIHRoZSBkZXN0aW5hdGlvbiBidWZmZXIgXHAgYnVmIGluIEJ5dGVzLgotICogXHBhcmFtIGZfcm5nICAgICBUaGUgUk5HIGZ1bmN0aW9uIHRvIHVzZS4gVGhpcyBtdXN0IG5vdCBiZSBcYyBOVUxMLgotICogXHBhcmFtIHBfcm5nICAgICBUaGUgUk5HIGNvbnRleHQuIFRoaXMgbWF5IGJlIFxjIE5VTEwgaWYgXHAgZl9ybmcKLSAqICAgICAgICAgICAgICAgICAgZG9lc24ndCBuZWVkIGEgY29udGV4dCBhcmd1bWVudC4KLSAqCi0gKiBccmV0dXJuICAgICAgICAgIFxjIDAgb24gc3VjY2Vzcy4KLSAqIFxyZXR1cm4gICAgICAgICAgI01CRURUTFNfRVJSX0VDUF9JTl9QUk9HUkVTUyBpZiBtYXhpbXVtIG51bWJlciBvZgotICogICAgICAgICAgICAgICAgICBvcGVyYXRpb25zIHdhcyByZWFjaGVkOiBzZWUgXGMgbWJlZHRsc19lY3Bfc2V0X21heF9vcHMoKS4KLSAqIFxyZXR1cm4gICAgICAgICAgQW5vdGhlciBcYyBNQkVEVExTX0VSUl9FQ1BfWFhYIGVycm9yIGNvZGUgb24gZmFpbHVyZS4KLSAqLwotaW50IG1iZWR0bHNfZWNkaF9jYWxjX3NlY3JldChtYmVkdGxzX2VjZGhfY29udGV4dCAqY3R4LCBzaXplX3QgKm9sZW4sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGNoYXIgKmJ1Ziwgc2l6ZV90IGJsZW4sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCAoKmZfcm5nKSh2b2lkICosIHVuc2lnbmVkIGNoYXIgKiwgc2l6ZV90KSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdm9pZCAqcF9ybmcpOwotCi0jaWYgZGVmaW5lZChNQkVEVExTX0VDUF9SRVNUQVJUQUJMRSkKLS8qKgotICogXGJyaWVmICAgICAgICAgICBUaGlzIGZ1bmN0aW9uIGVuYWJsZXMgcmVzdGFydGFibGUgRUMgY29tcHV0YXRpb25zIGZvciB0aGlzCi0gKiAgICAgICAgICAgICAgICAgIGNvbnRleHQuICAoRGVmYXVsdDogZGlzYWJsZWQuKQotICoKLSAqIFxzZWUgICAgICAgICAgICAgXGMgbWJlZHRsc19lY3Bfc2V0X21heF9vcHMoKQotICoKLSAqIFxub3RlICAgICAgICAgICAgSXQgaXMgbm90IHBvc3NpYmxlIHRvIHNhZmVseSBkaXNhYmxlIHJlc3RhcnRhYmxlCi0gKiAgICAgICAgICAgICAgICAgIGNvbXB1dGF0aW9ucyBvbmNlIGVuYWJsZWQsIGV4Y2VwdCBieSBmcmVlLWluZyB0aGUgY29udGV4dCwKLSAqICAgICAgICAgICAgICAgICAgd2hpY2ggY2FuY2VscyBwb3NzaWJsZSBpbi1wcm9ncmVzcyBvcGVyYXRpb25zLgotICoKLSAqIFxwYXJhbSBjdHggICAgICAgVGhlIEVDREggY29udGV4dCB0byB1c2UuIFRoaXMgbXVzdCBiZSBpbml0aWFsaXplZC4KLSAqLwotdm9pZCBtYmVkdGxzX2VjZGhfZW5hYmxlX3Jlc3RhcnQobWJlZHRsc19lY2RoX2NvbnRleHQgKmN0eCk7Ci0jZW5kaWYgLyogTUJFRFRMU19FQ1BfUkVTVEFSVEFCTEUgKi8KLQotI2lmZGVmIF9fY3BsdXNwbHVzCi19Ci0jZW5kaWYKLQotI2VuZGlmIC8qIGVjZGguaCAqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9tYmVkdGxzL2VjanBha2UuaCBiL2luY2x1ZGUvbWJlZHRscy9lY2pwYWtlLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGMyMTQ4YTIuLjAwMDAwMDAKLS0tIGEvaW5jbHVkZS9tYmVkdGxzL2VjanBha2UuaAorKysgL2Rldi9udWxsCkBAIC0xLDI5OCArMCwwIEBACi0vKioKLSAqIFxmaWxlIGVjanBha2UuaAotICoKLSAqIFxicmllZiBFbGxpcHRpYyBjdXJ2ZSBKLVBBS0UKLSAqLwotLyoKLSAqICBDb3B5cmlnaHQgVGhlIE1iZWQgVExTIENvbnRyaWJ1dG9ycwotICogIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wIE9SIEdQTC0yLjAtb3ItbGF0ZXIKLSAqLwotI2lmbmRlZiBNQkVEVExTX0VDSlBBS0VfSAotI2RlZmluZSBNQkVEVExTX0VDSlBBS0VfSAotI2luY2x1ZGUgIm1iZWR0bHMvcHJpdmF0ZV9hY2Nlc3MuaCIKLQotLyoKLSAqIEotUEFLRSBpcyBhIHBhc3N3b3JkLWF1dGhlbnRpY2F0ZWQga2V5IGV4Y2hhbmdlIHRoYXQgYWxsb3dzIGRlcml2aW5nIGEKLSAqIHN0cm9uZyBzaGFyZWQgc2VjcmV0IGZyb20gYSAocG90ZW50aWFsbHkgbG93IGVudHJvcHkpIHByZS1zaGFyZWQKLSAqIHBhc3NwaHJhc2UsIHdpdGggZm9yd2FyZCBzZWNyZWN5IGFuZCBtdXR1YWwgYXV0aGVudGljYXRpb24uCi0gKiBodHRwczovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9QYXNzd29yZF9BdXRoZW50aWNhdGVkX0tleV9FeGNoYW5nZV9ieV9KdWdnbGluZwotICoKLSAqIFRoaXMgZmlsZSBpbXBsZW1lbnRzIHRoZSBFbGxpcHRpYyBDdXJ2ZSB2YXJpYW50IG9mIEotUEFLRSwKLSAqIGFzIGRlZmluZWQgaW4gQ2hhcHRlciA3LjQgb2YgdGhlIFRocmVhZCB2MS4wIFNwZWNpZmljYXRpb24sCi0gKiBhdmFpbGFibGUgdG8gbWVtYmVycyBvZiB0aGUgVGhyZWFkIEdyb3VwIGh0dHA6Ly90aHJlYWRncm91cC5vcmcvCi0gKgotICogQXMgdGhlIEotUEFLRSBhbGdvcml0aG0gaXMgaW5oZXJlbnRseSBzeW1tZXRyaWMsIHNvIGlzIG91ciBBUEkuCi0gKiBFYWNoIHBhcnR5IG5lZWRzIHRvIHNlbmQgaXRzIGZpcnN0IHJvdW5kIG1lc3NhZ2UsIGluIGFueSBvcmRlciwgdG8gdGhlCi0gKiBvdGhlciBwYXJ0eSwgdGhlbiBlYWNoIHNlbmRzIGl0cyBzZWNvbmQgcm91bmQgbWVzc2FnZSwgaW4gYW55IG9yZGVyLgotICogVGhlIHBheWxvYWRzIGFyZSBzZXJpYWxpemVkIGluIGEgd2F5IHN1aXRhYmxlIGZvciB1c2UgaW4gVExTLCBidXQgY291bGQKLSAqIGFsc28gYmUgdXNlIG91dHNpZGUgVExTLgotICovCi0jaW5jbHVkZSAibWJlZHRscy9idWlsZF9pbmZvLmgiCi0KLSNpbmNsdWRlICJtYmVkdGxzL2VjcC5oIgotI2luY2x1ZGUgIm1iZWR0bHMvbWQuaCIKLQotI2lmZGVmIF9fY3BsdXNwbHVzCi1leHRlcm4gIkMiIHsKLSNlbmRpZgotCi0vKioKLSAqIFJvbGVzIGluIHRoZSBFQyBKLVBBS0UgZXhjaGFuZ2UKLSAqLwotdHlwZWRlZiBlbnVtIHsKLSAgICBNQkVEVExTX0VDSlBBS0VfQ0xJRU5UID0gMCwgICAgICAgICAvKio8IENsaWVudCAgICAgICAgICAgICAgICAgICAgICAgICAqLwotICAgIE1CRURUTFNfRUNKUEFLRV9TRVJWRVIsICAgICAgICAgICAgIC8qKjwgU2VydmVyICAgICAgICAgICAgICAgICAgICAgICAgICovCi0gICAgTUJFRFRMU19FQ0pQQUtFX05PTkUsICAgICAgICAgICAgICAgLyoqPCBVbmRlZmluZWQgICAgICAgICAgICAgICAgICAgICAgKi8KLX0gbWJlZHRsc19lY2pwYWtlX3JvbGU7Ci0KLSNpZiAhZGVmaW5lZChNQkVEVExTX0VDSlBBS0VfQUxUKQotLyoqCi0gKiBFQyBKLVBBS0UgY29udGV4dCBzdHJ1Y3R1cmUuCi0gKgotICogSi1QQUtFIGlzIGEgc3ltbWV0cmljIHByb3RvY29sLCBleGNlcHQgZm9yIHRoZSBpZGVudGlmaWVycyB1c2VkIGluCi0gKiBaZXJvLUtub3dsZWRnZSBQcm9vZnMsIGFuZCB0aGUgc2VyaWFsaXphdGlvbiBvZiB0aGUgc2Vjb25kIG1lc3NhZ2UKLSAqIChLZXlFeGNoYW5nZSkgYXMgZGVmaW5lZCBieSB0aGUgVGhyZWFkIHNwZWMuCi0gKgotICogSW4gb3JkZXIgdG8gYmVuZWZpdCBmcm9tIHRoaXMgc3ltbWV0cnksIHdlIGNob29zZSBhIGRpZmZlcmVudCBuYW1pbmcKLSAqIGNvbnZlbnRpb24gZnJvbSB0aGUgVGhyZWFkIHYxLjAgc3BlYy4gQ29ycmVzcG9uZGVuY2UgaXMgaW5kaWNhdGVkIGluIHRoZQotICogZGVzY3JpcHRpb24gYXMgYSBwYWlyIEM6IGNsaWVudCBuYW1lLCBTOiBzZXJ2ZXIgbmFtZQotICovCi10eXBlZGVmIHN0cnVjdCBtYmVkdGxzX2VjanBha2VfY29udGV4dCB7Ci0gICAgbWJlZHRsc19tZF90eXBlX3QgTUJFRFRMU19QUklWQVRFKG1kX3R5cGUpOyAgICAgICAgICAvKio8IEhhc2ggdG8gdXNlICAgICAgICAgICAgICAgICAgICAqLwotICAgIG1iZWR0bHNfZWNwX2dyb3VwIE1CRURUTFNfUFJJVkFURShncnApOyAgICAgICAgICAgICAgLyoqPCBFbGxpcHRpYyBjdXJ2ZSAgICAgICAgICAgICAgICAgKi8KLSAgICBtYmVkdGxzX2VjanBha2Vfcm9sZSBNQkVEVExTX1BSSVZBVEUocm9sZSk7ICAgICAgICAgIC8qKjwgQXJlIHdlIGNsaWVudCBvciBzZXJ2ZXI/ICAgICAgICovCi0gICAgaW50IE1CRURUTFNfUFJJVkFURShwb2ludF9mb3JtYXQpOyAgICAgICAgICAgICAgICAgICAvKio8IEZvcm1hdCBmb3IgcG9pbnQgZXhwb3J0ICAgICAgICAqLwotCi0gICAgbWJlZHRsc19lY3BfcG9pbnQgTUJFRFRMU19QUklWQVRFKFhtMSk7ICAgICAgICAgICAgICAvKio8IE15IHB1YmxpYyBrZXkgMSAgIEM6IFgxLCBTOiBYMyAqLwotICAgIG1iZWR0bHNfZWNwX3BvaW50IE1CRURUTFNfUFJJVkFURShYbTIpOyAgICAgICAgICAgICAgLyoqPCBNeSBwdWJsaWMga2V5IDIgICBDOiBYMiwgUzogWDQgKi8KLSAgICBtYmVkdGxzX2VjcF9wb2ludCBNQkVEVExTX1BSSVZBVEUoWHAxKTsgICAgICAgICAgICAgIC8qKjwgUGVlciBwdWJsaWMga2V5IDEgQzogWDMsIFM6IFgxICovCi0gICAgbWJlZHRsc19lY3BfcG9pbnQgTUJFRFRMU19QUklWQVRFKFhwMik7ICAgICAgICAgICAgICAvKio8IFBlZXIgcHVibGljIGtleSAyIEM6IFg0LCBTOiBYMiAqLwotICAgIG1iZWR0bHNfZWNwX3BvaW50IE1CRURUTFNfUFJJVkFURShYcCk7ICAgICAgICAgICAgICAgLyoqPCBQZWVyIHB1YmxpYyBrZXkgICBDOiBYcywgUzogWGMgKi8KLQotICAgIG1iZWR0bHNfbXBpIE1CRURUTFNfUFJJVkFURSh4bTEpOyAgICAgICAgICAgICAgICAgICAgLyoqPCBNeSBwcml2YXRlIGtleSAxICBDOiB4MSwgUzogeDMgKi8KLSAgICBtYmVkdGxzX21waSBNQkVEVExTX1BSSVZBVEUoeG0yKTsgICAgICAgICAgICAgICAgICAgIC8qKjwgTXkgcHJpdmF0ZSBrZXkgMiAgQzogeDIsIFM6IHg0ICovCi0KLSAgICBtYmVkdGxzX21waSBNQkVEVExTX1BSSVZBVEUocyk7ICAgICAgICAgICAgICAgICAgICAgIC8qKjwgUHJlLXNoYXJlZCBzZWNyZXQgKHBhc3NwaHJhc2UpICovCi19IG1iZWR0bHNfZWNqcGFrZV9jb250ZXh0OwotCi0jZWxzZSAgLyogTUJFRFRMU19FQ0pQQUtFX0FMVCAqLwotI2luY2x1ZGUgImVjanBha2VfYWx0LmgiCi0jZW5kaWYgLyogTUJFRFRMU19FQ0pQQUtFX0FMVCAqLwotCi0vKioKLSAqIFxicmllZiAgICAgICAgICAgSW5pdGlhbGl6ZSBhbiBFQ0pQQUtFIGNvbnRleHQuCi0gKgotICogXHBhcmFtIGN0eCAgICAgICBUaGUgRUNKUEFLRSBjb250ZXh0IHRvIGluaXRpYWxpemUuCi0gKiAgICAgICAgICAgICAgICAgIFRoaXMgbXVzdCBub3QgYmUgXGMgTlVMTC4KLSAqLwotdm9pZCBtYmVkdGxzX2VjanBha2VfaW5pdChtYmVkdGxzX2VjanBha2VfY29udGV4dCAqY3R4KTsKLQotLyoqCi0gKiBcYnJpZWYgICAgICAgICAgIFNldCB1cCBhbiBFQ0pQQUtFIGNvbnRleHQgZm9yIHVzZS4KLSAqCi0gKiBcbm90ZSAgICAgICAgICAgIEN1cnJlbnRseSB0aGUgb25seSB2YWx1ZXMgZm9yIGhhc2gvY3VydmUgYWxsb3dlZCBieSB0aGUKLSAqICAgICAgICAgICAgICAgICAgc3RhbmRhcmQgYXJlICNNQkVEVExTX01EX1NIQTI1Ni8jTUJFRFRMU19FQ1BfRFBfU0VDUDI1NlIxLgotICoKLSAqIFxwYXJhbSBjdHggICAgICAgVGhlIEVDSlBBS0UgY29udGV4dCB0byBzZXQgdXAuIFRoaXMgbXVzdCBiZSBpbml0aWFsaXplZC4KLSAqIFxwYXJhbSByb2xlICAgICAgVGhlIHJvbGUgb2YgdGhlIGNhbGxlci4gVGhpcyBtdXN0IGJlIGVpdGhlcgotICogICAgICAgICAgICAgICAgICAjTUJFRFRMU19FQ0pQQUtFX0NMSUVOVCBvciAjTUJFRFRMU19FQ0pQQUtFX1NFUlZFUi4KLSAqIFxwYXJhbSBoYXNoICAgICAgVGhlIGlkZW50aWZpZXIgb2YgdGhlIGhhc2ggZnVuY3Rpb24gdG8gdXNlLAotICogICAgICAgICAgICAgICAgICBmb3IgZXhhbXBsZSAjTUJFRFRMU19NRF9TSEEyNTYuCi0gKiBccGFyYW0gY3VydmUgICAgIFRoZSBpZGVudGlmaWVyIG9mIHRoZSBlbGxpcHRpYyBjdXJ2ZSB0byB1c2UsCi0gKiAgICAgICAgICAgICAgICAgIGZvciBleGFtcGxlICNNQkVEVExTX0VDUF9EUF9TRUNQMjU2UjEuCi0gKiBccGFyYW0gc2VjcmV0ICAgIFRoZSBwcmUtc2hhcmVkIHNlY3JldCAocGFzc3BocmFzZSkuIFRoaXMgbXVzdCBiZQotICogICAgICAgICAgICAgICAgICBhIHJlYWRhYmxlIG5vdCBlbXB0eSBidWZmZXIgb2YgbGVuZ3RoIFxwIGxlbiBCeXRlcy4gSXQgbmVlZAotICogICAgICAgICAgICAgICAgICBvbmx5IGJlIHZhbGlkIGZvciB0aGUgZHVyYXRpb24gb2YgdGhpcyBjYWxsLgotICogXHBhcmFtIGxlbiAgICAgICBUaGUgbGVuZ3RoIG9mIHRoZSBwcmUtc2hhcmVkIHNlY3JldCBccCBzZWNyZXQuCi0gKgotICogXHJldHVybiAgICAgICAgICBcYyAwIGlmIHN1Y2Nlc3NmdWwuCi0gKiBccmV0dXJuICAgICAgICAgIEEgbmVnYXRpdmUgZXJyb3IgY29kZSBvbiBmYWlsdXJlLgotICovCi1pbnQgbWJlZHRsc19lY2pwYWtlX3NldHVwKG1iZWR0bHNfZWNqcGFrZV9jb250ZXh0ICpjdHgsCi0gICAgICAgICAgICAgICAgICAgICAgICAgIG1iZWR0bHNfZWNqcGFrZV9yb2xlIHJvbGUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgIG1iZWR0bHNfbWRfdHlwZV90IGhhc2gsCi0gICAgICAgICAgICAgICAgICAgICAgICAgIG1iZWR0bHNfZWNwX2dyb3VwX2lkIGN1cnZlLAotICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1bnNpZ25lZCBjaGFyICpzZWNyZXQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBsZW4pOwotCi0vKioKLSAqIFxicmllZiAgICAgICAgICAgICAgIFNldCB0aGUgcG9pbnQgZm9ybWF0IGZvciBmdXR1cmUgcmVhZHMgYW5kIHdyaXRlcy4KLSAqCi0gKiBccGFyYW0gY3R4ICAgICAgICAgICBUaGUgRUNKUEFLRSBjb250ZXh0IHRvIGNvbmZpZ3VyZS4KLSAqIFxwYXJhbSBwb2ludF9mb3JtYXQgIFRoZSBwb2ludCBmb3JtYXQgdG8gdXNlOgotICogICAgICAgICAgICAgICAgICAgICAgI01CRURUTFNfRUNQX1BGX1VOQ09NUFJFU1NFRCAoZGVmYXVsdCkKLSAqICAgICAgICAgICAgICAgICAgICAgIG9yICNNQkVEVExTX0VDUF9QRl9DT01QUkVTU0VELgotICoKLSAqIFxyZXR1cm4gICAgICAgICAgICAgIFxjIDAgaWYgc3VjY2Vzc2Z1bC4KLSAqIFxyZXR1cm4gICAgICAgICAgICAgICNNQkVEVExTX0VSUl9FQ1BfQkFEX0lOUFVUX0RBVEEgaWYgXHAgcG9pbnRfZm9ybWF0Ci0gKiAgICAgICAgICAgICAgICAgICAgICBpcyBpbnZhbGlkLgotICovCi1pbnQgbWJlZHRsc19lY2pwYWtlX3NldF9wb2ludF9mb3JtYXQobWJlZHRsc19lY2pwYWtlX2NvbnRleHQgKmN0eCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgcG9pbnRfZm9ybWF0KTsKLQotLyoqCi0gKiBcYnJpZWYgICAgICAgICAgIENoZWNrIGlmIGFuIEVDSlBBS0UgY29udGV4dCBpcyByZWFkeSBmb3IgdXNlLgotICoKLSAqIFxwYXJhbSBjdHggICAgICAgVGhlIEVDSlBBS0UgY29udGV4dCB0byBjaGVjay4gVGhpcyBtdXN0IGJlCi0gKiAgICAgICAgICAgICAgICAgIGluaXRpYWxpemVkLgotICoKLSAqIFxyZXR1cm4gICAgICAgICAgXGMgMCBpZiB0aGUgY29udGV4dCBpcyByZWFkeSBmb3IgdXNlLgotICogXHJldHVybiAgICAgICAgICAjTUJFRFRMU19FUlJfRUNQX0JBRF9JTlBVVF9EQVRBIG90aGVyd2lzZS4KLSAqLwotaW50IG1iZWR0bHNfZWNqcGFrZV9jaGVjayhjb25zdCBtYmVkdGxzX2VjanBha2VfY29udGV4dCAqY3R4KTsKLQotLyoqCi0gKiBcYnJpZWYgICAgICAgICAgIEdlbmVyYXRlIGFuZCB3cml0ZSB0aGUgZmlyc3Qgcm91bmQgbWVzc2FnZQotICogICAgICAgICAgICAgICAgICAoVExTOiBjb250ZW50cyBvZiB0aGUgQ2xpZW50L1NlcnZlckhlbGxvIGV4dGVuc2lvbiwKLSAqICAgICAgICAgICAgICAgICAgZXhjbHVkaW5nIGV4dGVuc2lvbiB0eXBlIGFuZCBsZW5ndGggYnl0ZXMpLgotICoKLSAqIFxwYXJhbSBjdHggICAgICAgVGhlIEVDSlBBS0UgY29udGV4dCB0byB1c2UuIFRoaXMgbXVzdCBiZQotICogICAgICAgICAgICAgICAgICBpbml0aWFsaXplZCBhbmQgc2V0IHVwLgotICogXHBhcmFtIGJ1ZiAgICAgICBUaGUgYnVmZmVyIHRvIHdyaXRlIHRoZSBjb250ZW50cyB0by4gVGhpcyBtdXN0IGJlIGEKLSAqICAgICAgICAgICAgICAgICAgd3JpdGFibGUgYnVmZmVyIG9mIGxlbmd0aCBccCBsZW4gQnl0ZXMuCi0gKiBccGFyYW0gbGVuICAgICAgIFRoZSBsZW5ndGggb2YgXHAgYnVmIGluIEJ5dGVzLgotICogXHBhcmFtIG9sZW4gICAgICBUaGUgYWRkcmVzcyBhdCB3aGljaCB0byBzdG9yZSB0aGUgdG90YWwgbnVtYmVyCi0gKiAgICAgICAgICAgICAgICAgIG9mIEJ5dGVzIHdyaXR0ZW4gdG8gXHAgYnVmLiBUaGlzIG11c3Qgbm90IGJlIFxjIE5VTEwuCi0gKiBccGFyYW0gZl9ybmcgICAgIFRoZSBSTkcgZnVuY3Rpb24gdG8gdXNlLiBUaGlzIG11c3Qgbm90IGJlIFxjIE5VTEwuCi0gKiBccGFyYW0gcF9ybmcgICAgIFRoZSBSTkcgcGFyYW1ldGVyIHRvIGJlIHBhc3NlZCB0byBccCBmX3JuZy4gVGhpcwotICogICAgICAgICAgICAgICAgICBtYXkgYmUgXGMgTlVMTCBpZiBccCBmX3JuZyBkb2Vzbid0IHVzZSBhIGNvbnRleHQuCi0gKgotICogXHJldHVybiAgICAgICAgICBcYyAwIGlmIHN1Y2Nlc3NmdWwuCi0gKiBccmV0dXJuICAgICAgICAgIEEgbmVnYXRpdmUgZXJyb3IgY29kZSBvbiBmYWlsdXJlLgotICovCi1pbnQgbWJlZHRsc19lY2pwYWtlX3dyaXRlX3JvdW5kX29uZShtYmVkdGxzX2VjanBha2VfY29udGV4dCAqY3R4LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgY2hhciAqYnVmLCBzaXplX3QgbGVuLCBzaXplX3QgKm9sZW4sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgKCpmX3JuZykodm9pZCAqLCB1bnNpZ25lZCBjaGFyICosIHNpemVfdCksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2b2lkICpwX3JuZyk7Ci0KLS8qKgotICogXGJyaWVmICAgICAgICAgICBSZWFkIGFuZCBwcm9jZXNzIHRoZSBmaXJzdCByb3VuZCBtZXNzYWdlCi0gKiAgICAgICAgICAgICAgICAgIChUTFM6IGNvbnRlbnRzIG9mIHRoZSBDbGllbnQvU2VydmVySGVsbG8gZXh0ZW5zaW9uLAotICogICAgICAgICAgICAgICAgICBleGNsdWRpbmcgZXh0ZW5zaW9uIHR5cGUgYW5kIGxlbmd0aCBieXRlcykuCi0gKgotICogXHBhcmFtIGN0eCAgICAgICBUaGUgRUNKUEFLRSBjb250ZXh0IHRvIHVzZS4gVGhpcyBtdXN0IGJlIGluaXRpYWxpemVkCi0gKiAgICAgICAgICAgICAgICAgIGFuZCBzZXQgdXAuCi0gKiBccGFyYW0gYnVmICAgICAgIFRoZSBidWZmZXIgaG9sZGluZyB0aGUgZmlyc3Qgcm91bmQgbWVzc2FnZS4gVGhpcyBtdXN0Ci0gKiAgICAgICAgICAgICAgICAgIGJlIGEgcmVhZGFibGUgYnVmZmVyIG9mIGxlbmd0aCBccCBsZW4gQnl0ZXMuCi0gKiBccGFyYW0gbGVuICAgICAgIFRoZSBsZW5ndGggaW4gQnl0ZXMgb2YgXHAgYnVmLgotICoKLSAqIFxyZXR1cm4gICAgICAgICAgXGMgMCBpZiBzdWNjZXNzZnVsLgotICogXHJldHVybiAgICAgICAgICBBIG5lZ2F0aXZlIGVycm9yIGNvZGUgb24gZmFpbHVyZS4KLSAqLwotaW50IG1iZWR0bHNfZWNqcGFrZV9yZWFkX3JvdW5kX29uZShtYmVkdGxzX2VjanBha2VfY29udGV4dCAqY3R4LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1bnNpZ25lZCBjaGFyICpidWYsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBsZW4pOwotCi0vKioKLSAqIFxicmllZiAgICAgICAgICAgR2VuZXJhdGUgYW5kIHdyaXRlIHRoZSBzZWNvbmQgcm91bmQgbWVzc2FnZQotICogICAgICAgICAgICAgICAgICAoVExTOiBjb250ZW50cyBvZiB0aGUgQ2xpZW50L1NlcnZlcktleUV4Y2hhbmdlKS4KLSAqCi0gKiBccGFyYW0gY3R4ICAgICAgIFRoZSBFQ0pQQUtFIGNvbnRleHQgdG8gdXNlLiBUaGlzIG11c3QgYmUgaW5pdGlhbGl6ZWQsCi0gKiAgICAgICAgICAgICAgICAgIHNldCB1cCwgYW5kIGFscmVhZHkgaGF2ZSBwZXJmb3JtZWQgcm91bmQgb25lLgotICogXHBhcmFtIGJ1ZiAgICAgICBUaGUgYnVmZmVyIHRvIHdyaXRlIHRoZSByb3VuZCB0d28gY29udGVudHMgdG8uCi0gKiAgICAgICAgICAgICAgICAgIFRoaXMgbXVzdCBiZSBhIHdyaXRhYmxlIGJ1ZmZlciBvZiBsZW5ndGggXHAgbGVuIEJ5dGVzLgotICogXHBhcmFtIGxlbiAgICAgICBUaGUgc2l6ZSBvZiBccCBidWYgaW4gQnl0ZXMuCi0gKiBccGFyYW0gb2xlbiAgICAgIFRoZSBhZGRyZXNzIGF0IHdoaWNoIHRvIHN0b3JlIHRoZSB0b3RhbCBudW1iZXIgb2YgQnl0ZXMKLSAqICAgICAgICAgICAgICAgICAgd3JpdHRlbiB0byBccCBidWYuIFRoaXMgbXVzdCBub3QgYmUgXGMgTlVMTC4KLSAqIFxwYXJhbSBmX3JuZyAgICAgVGhlIFJORyBmdW5jdGlvbiB0byB1c2UuIFRoaXMgbXVzdCBub3QgYmUgXGMgTlVMTC4KLSAqIFxwYXJhbSBwX3JuZyAgICAgVGhlIFJORyBwYXJhbWV0ZXIgdG8gYmUgcGFzc2VkIHRvIFxwIGZfcm5nLiBUaGlzCi0gKiAgICAgICAgICAgICAgICAgIG1heSBiZSBcYyBOVUxMIGlmIFxwIGZfcm5nIGRvZXNuJ3QgdXNlIGEgY29udGV4dC4KLSAqCi0gKiBccmV0dXJuICAgICAgICAgIFxjIDAgaWYgc3VjY2Vzc2Z1bC4KLSAqIFxyZXR1cm4gICAgICAgICAgQSBuZWdhdGl2ZSBlcnJvciBjb2RlIG9uIGZhaWx1cmUuCi0gKi8KLWludCBtYmVkdGxzX2VjanBha2Vfd3JpdGVfcm91bmRfdHdvKG1iZWR0bHNfZWNqcGFrZV9jb250ZXh0ICpjdHgsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBjaGFyICpidWYsIHNpemVfdCBsZW4sIHNpemVfdCAqb2xlbiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCAoKmZfcm5nKSh2b2lkICosIHVuc2lnbmVkIGNoYXIgKiwgc2l6ZV90KSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZvaWQgKnBfcm5nKTsKLQotLyoqCi0gKiBcYnJpZWYgICAgICAgICAgIFJlYWQgYW5kIHByb2Nlc3MgdGhlIHNlY29uZCByb3VuZCBtZXNzYWdlCi0gKiAgICAgICAgICAgICAgICAgIChUTFM6IGNvbnRlbnRzIG9mIHRoZSBDbGllbnQvU2VydmVyS2V5RXhjaGFuZ2UpLgotICoKLSAqIFxwYXJhbSBjdHggICAgICAgVGhlIEVDSlBBS0UgY29udGV4dCB0byB1c2UuIFRoaXMgbXVzdCBiZSBpbml0aWFsaXplZAotICogICAgICAgICAgICAgICAgICBhbmQgc2V0IHVwIGFuZCBhbHJlYWR5IGhhdmUgcGVyZm9ybWVkIHJvdW5kIG9uZS4KLSAqIFxwYXJhbSBidWYgICAgICAgVGhlIGJ1ZmZlciBob2xkaW5nIHRoZSBzZWNvbmQgcm91bmQgbWVzc2FnZS4gVGhpcyBtdXN0Ci0gKiAgICAgICAgICAgICAgICAgIGJlIGEgcmVhZGFibGUgYnVmZmVyIG9mIGxlbmd0aCBccCBsZW4gQnl0ZXMuCi0gKiBccGFyYW0gbGVuICAgICAgIFRoZSBsZW5ndGggaW4gQnl0ZXMgb2YgXHAgYnVmLgotICoKLSAqIFxyZXR1cm4gICAgICAgICAgXGMgMCBpZiBzdWNjZXNzZnVsLgotICogXHJldHVybiAgICAgICAgICBBIG5lZ2F0aXZlIGVycm9yIGNvZGUgb24gZmFpbHVyZS4KLSAqLwotaW50IG1iZWR0bHNfZWNqcGFrZV9yZWFkX3JvdW5kX3R3byhtYmVkdGxzX2VjanBha2VfY29udGV4dCAqY3R4LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1bnNpZ25lZCBjaGFyICpidWYsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBsZW4pOwotCi0vKioKLSAqIFxicmllZiAgICAgICAgICAgRGVyaXZlIHRoZSBzaGFyZWQgc2VjcmV0Ci0gKiAgICAgICAgICAgICAgICAgIChUTFM6IFByZS1NYXN0ZXIgU2VjcmV0KS4KLSAqCi0gKiBccGFyYW0gY3R4ICAgICAgIFRoZSBFQ0pQQUtFIGNvbnRleHQgdG8gdXNlLiBUaGlzIG11c3QgYmUgaW5pdGlhbGl6ZWQsCi0gKiAgICAgICAgICAgICAgICAgIHNldCB1cCBhbmQgaGF2ZSBwZXJmb3JtZWQgYm90aCByb3VuZCBvbmUgYW5kIHR3by4KLSAqIFxwYXJhbSBidWYgICAgICAgVGhlIGJ1ZmZlciB0byB3cml0ZSB0aGUgZGVyaXZlZCBzZWNyZXQgdG8uIFRoaXMgbXVzdAotICogICAgICAgICAgICAgICAgICBiZSBhIHdyaXRhYmxlIGJ1ZmZlciBvZiBsZW5ndGggXHAgbGVuIEJ5dGVzLgotICogXHBhcmFtIGxlbiAgICAgICBUaGUgbGVuZ3RoIG9mIFxwIGJ1ZiBpbiBCeXRlcy4KLSAqIFxwYXJhbSBvbGVuICAgICAgVGhlIGFkZHJlc3MgYXQgd2hpY2ggdG8gc3RvcmUgdGhlIHRvdGFsIG51bWJlciBvZiBCeXRlcwotICogICAgICAgICAgICAgICAgICB3cml0dGVuIHRvIFxwIGJ1Zi4gVGhpcyBtdXN0IG5vdCBiZSBcYyBOVUxMLgotICogXHBhcmFtIGZfcm5nICAgICBUaGUgUk5HIGZ1bmN0aW9uIHRvIHVzZS4gVGhpcyBtdXN0IG5vdCBiZSBcYyBOVUxMLgotICogXHBhcmFtIHBfcm5nICAgICBUaGUgUk5HIHBhcmFtZXRlciB0byBiZSBwYXNzZWQgdG8gXHAgZl9ybmcuIFRoaXMKLSAqICAgICAgICAgICAgICAgICAgbWF5IGJlIFxjIE5VTEwgaWYgXHAgZl9ybmcgZG9lc24ndCB1c2UgYSBjb250ZXh0LgotICoKLSAqIFxyZXR1cm4gICAgICAgICAgXGMgMCBpZiBzdWNjZXNzZnVsLgotICogXHJldHVybiAgICAgICAgICBBIG5lZ2F0aXZlIGVycm9yIGNvZGUgb24gZmFpbHVyZS4KLSAqLwotaW50IG1iZWR0bHNfZWNqcGFrZV9kZXJpdmVfc2VjcmV0KG1iZWR0bHNfZWNqcGFrZV9jb250ZXh0ICpjdHgsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgY2hhciAqYnVmLCBzaXplX3QgbGVuLCBzaXplX3QgKm9sZW4sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50ICgqZl9ybmcpKHZvaWQgKiwgdW5zaWduZWQgY2hhciAqLCBzaXplX3QpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZvaWQgKnBfcm5nKTsKLQotLyoqCi0gKiBcYnJpZWYgICAgICAgICAgIFdyaXRlIHRoZSBzaGFyZWQga2V5IG1hdGVyaWFsIHRvIGJlIHBhc3NlZCB0byBhIEtleQotICogICAgICAgICAgICAgICAgICBEZXJpdmF0aW9uIEZ1bmN0aW9uIGFzIGRlc2NyaWJlZCBpbiBSRkM4MjM2LgotICoKLSAqIFxwYXJhbSBjdHggICAgICAgVGhlIEVDSlBBS0UgY29udGV4dCB0byB1c2UuIFRoaXMgbXVzdCBiZSBpbml0aWFsaXplZCwKLSAqICAgICAgICAgICAgICAgICAgc2V0IHVwIGFuZCBoYXZlIHBlcmZvcm1lZCBib3RoIHJvdW5kIG9uZSBhbmQgdHdvLgotICogXHBhcmFtIGJ1ZiAgICAgICBUaGUgYnVmZmVyIHRvIHdyaXRlIHRoZSBkZXJpdmVkIHNlY3JldCB0by4gVGhpcyBtdXN0Ci0gKiAgICAgICAgICAgICAgICAgIGJlIGEgd3JpdGFibGUgYnVmZmVyIG9mIGxlbmd0aCBccCBsZW4gQnl0ZXMuCi0gKiBccGFyYW0gbGVuICAgICAgIFRoZSBsZW5ndGggb2YgXHAgYnVmIGluIEJ5dGVzLgotICogXHBhcmFtIG9sZW4gICAgICBUaGUgYWRkcmVzcyBhdCB3aGljaCB0byBzdG9yZSB0aGUgdG90YWwgbnVtYmVyIG9mIGJ5dGVzCi0gKiAgICAgICAgICAgICAgICAgIHdyaXR0ZW4gdG8gXHAgYnVmLiBUaGlzIG11c3Qgbm90IGJlIFxjIE5VTEwuCi0gKiBccGFyYW0gZl9ybmcgICAgIFRoZSBSTkcgZnVuY3Rpb24gdG8gdXNlLiBUaGlzIG11c3Qgbm90IGJlIFxjIE5VTEwuCi0gKiBccGFyYW0gcF9ybmcgICAgIFRoZSBSTkcgcGFyYW1ldGVyIHRvIGJlIHBhc3NlZCB0byBccCBmX3JuZy4gVGhpcwotICogICAgICAgICAgICAgICAgICBtYXkgYmUgXGMgTlVMTCBpZiBccCBmX3JuZyBkb2Vzbid0IHVzZSBhIGNvbnRleHQuCi0gKgotICogXHJldHVybiAgICAgICAgICBcYyAwIGlmIHN1Y2Nlc3NmdWwuCi0gKiBccmV0dXJuICAgICAgICAgIEEgbmVnYXRpdmUgZXJyb3IgY29kZSBvbiBmYWlsdXJlLgotICovCi1pbnQgbWJlZHRsc19lY2pwYWtlX3dyaXRlX3NoYXJlZF9rZXkobWJlZHRsc19lY2pwYWtlX2NvbnRleHQgKmN0eCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBjaGFyICpidWYsIHNpemVfdCBsZW4sIHNpemVfdCAqb2xlbiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgKCpmX3JuZykodm9pZCAqLCB1bnNpZ25lZCBjaGFyICosIHNpemVfdCksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdm9pZCAqcF9ybmcpOwotCi0vKioKLSAqIFxicmllZiAgICAgICAgICAgVGhpcyBjbGVhcnMgYW4gRUNKUEFLRSBjb250ZXh0IGFuZCBmcmVlcyBhbnkKLSAqICAgICAgICAgICAgICAgICAgZW1iZWRkZWQgZGF0YSBzdHJ1Y3R1cmUuCi0gKgotICogXHBhcmFtIGN0eCAgICAgICBUaGUgRUNKUEFLRSBjb250ZXh0IHRvIGZyZWUuIFRoaXMgbWF5IGJlIFxjIE5VTEwsCi0gKiAgICAgICAgICAgICAgICAgIGluIHdoaWNoIGNhc2UgdGhpcyBmdW5jdGlvbiBkb2VzIG5vdGhpbmcuIElmIGl0IGlzIG5vdAotICogICAgICAgICAgICAgICAgICBcYyBOVUxMLCBpdCBtdXN0IHBvaW50IHRvIGFuIGluaXRpYWxpemVkIEVDSlBBS0UgY29udGV4dC4KLSAqLwotdm9pZCBtYmVkdGxzX2VjanBha2VfZnJlZShtYmVkdGxzX2VjanBha2VfY29udGV4dCAqY3R4KTsKLQotI2lmIGRlZmluZWQoTUJFRFRMU19TRUxGX1RFU1QpCi0KLS8qKgotICogXGJyaWVmICAgICAgICAgIENoZWNrdXAgcm91dGluZQotICoKLSAqIFxyZXR1cm4gICAgICAgICAwIGlmIHN1Y2Nlc3NmdWwsIG9yIDEgaWYgYSB0ZXN0IGZhaWxlZAotICovCi1pbnQgbWJlZHRsc19lY2pwYWtlX3NlbGZfdGVzdChpbnQgdmVyYm9zZSk7Ci0KLSNlbmRpZiAvKiBNQkVEVExTX1NFTEZfVEVTVCAqLwotCi0jaWZkZWYgX19jcGx1c3BsdXMKLX0KLSNlbmRpZgotCi0KLSNlbmRpZiAvKiBlY2pwYWtlLmggKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvbWJlZHRscy9lY3AuaCBiL2luY2x1ZGUvbWJlZHRscy9lY3AuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZDhmNzNhZS4uMDAwMDAwMAotLS0gYS9pbmNsdWRlL21iZWR0bHMvZWNwLmgKKysrIC9kZXYvbnVsbApAQCAtMSwxNTI4ICswLDAgQEAKLS8qKgotICogXGZpbGUgZWNwLmgKLSAqCi0gKiBcYnJpZWYgVGhpcyBmaWxlIHByb3ZpZGVzIGFuIEFQSSBmb3IgRWxsaXB0aWMgQ3VydmVzIG92ZXIgR0YoUCkgKEVDUCkuCi0gKgotICogVGhlIHVzZSBvZiBFQ1AgaW4gY3J5cHRvZ3JhcGh5IGFuZCBUTFMgaXMgZGVmaW5lZCBpbgotICogPGVtPlN0YW5kYXJkcyBmb3IgRWZmaWNpZW50IENyeXB0b2dyYXBoeSBHcm91cCAoU0VDRyk6IFNFQzEKLSAqIEVsbGlwdGljIEN1cnZlIENyeXB0b2dyYXBoeTwvZW0+IGFuZAotICogPGVtPlJGQy00NDkyOiBFbGxpcHRpYyBDdXJ2ZSBDcnlwdG9ncmFwaHkgKEVDQykgQ2lwaGVyIFN1aXRlcwotICogZm9yIFRyYW5zcG9ydCBMYXllciBTZWN1cml0eSAoVExTKTwvZW0+LgotICoKLSAqIDxlbT5SRkMtMjQwOTogVGhlIEludGVybmV0IEtleSBFeGNoYW5nZSAoSUtFKTwvZW0+IGRlZmluZXMgRUNQCi0gKiBncm91cCB0eXBlcy4KLSAqCi0gKi8KLQotLyoKLSAqICBDb3B5cmlnaHQgVGhlIE1iZWQgVExTIENvbnRyaWJ1dG9ycwotICogIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wIE9SIEdQTC0yLjAtb3ItbGF0ZXIKLSAqLwotCi0jaWZuZGVmIE1CRURUTFNfRUNQX0gKLSNkZWZpbmUgTUJFRFRMU19FQ1BfSAotI2luY2x1ZGUgIm1iZWR0bHMvcHJpdmF0ZV9hY2Nlc3MuaCIKLQotI2luY2x1ZGUgIm1iZWR0bHMvYnVpbGRfaW5mby5oIgotI2luY2x1ZGUgIm1iZWR0bHMvcGxhdGZvcm1fdXRpbC5oIgotCi0jaW5jbHVkZSAibWJlZHRscy9iaWdudW0uaCIKLQotLyoKLSAqIEVDUCBlcnJvciBjb2RlcwotICovCi0vKiogQmFkIGlucHV0IHBhcmFtZXRlcnMgdG8gZnVuY3Rpb24uICovCi0jZGVmaW5lIE1CRURUTFNfRVJSX0VDUF9CQURfSU5QVVRfREFUQSAgICAgICAgICAgICAgICAgICAgLTB4NEY4MAotLyoqIFRoZSBidWZmZXIgaXMgdG9vIHNtYWxsIHRvIHdyaXRlIHRvLiAqLwotI2RlZmluZSBNQkVEVExTX0VSUl9FQ1BfQlVGRkVSX1RPT19TTUFMTCAgICAgICAgICAgICAgICAgIC0weDRGMDAKLS8qKiBUaGUgcmVxdWVzdGVkIGZlYXR1cmUgaXMgbm90IGF2YWlsYWJsZSwgZm9yIGV4YW1wbGUsIHRoZSByZXF1ZXN0ZWQgY3VydmUgaXMgbm90IHN1cHBvcnRlZC4gKi8KLSNkZWZpbmUgTUJFRFRMU19FUlJfRUNQX0ZFQVRVUkVfVU5BVkFJTEFCTEUgICAgICAgICAgICAgICAtMHg0RTgwCi0vKiogVGhlIHNpZ25hdHVyZSBpcyBub3QgdmFsaWQuICovCi0jZGVmaW5lIE1CRURUTFNfRVJSX0VDUF9WRVJJRllfRkFJTEVEICAgICAgICAgICAgICAgICAgICAgLTB4NEUwMAotLyoqIE1lbW9yeSBhbGxvY2F0aW9uIGZhaWxlZC4gKi8KLSNkZWZpbmUgTUJFRFRMU19FUlJfRUNQX0FMTE9DX0ZBSUxFRCAgICAgICAgICAgICAgICAgICAgICAtMHg0RDgwCi0vKiogR2VuZXJhdGlvbiBvZiByYW5kb20gdmFsdWUsIHN1Y2ggYXMgZXBoZW1lcmFsIGtleSwgZmFpbGVkLiAqLwotI2RlZmluZSBNQkVEVExTX0VSUl9FQ1BfUkFORE9NX0ZBSUxFRCAgICAgICAgICAgICAgICAgICAgIC0weDREMDAKLS8qKiBJbnZhbGlkIHByaXZhdGUgb3IgcHVibGljIGtleS4gKi8KLSNkZWZpbmUgTUJFRFRMU19FUlJfRUNQX0lOVkFMSURfS0VZICAgICAgICAgICAgICAgICAgICAgICAtMHg0QzgwCi0vKiogVGhlIGJ1ZmZlciBjb250YWlucyBhIHZhbGlkIHNpZ25hdHVyZSBmb2xsb3dlZCBieSBtb3JlIGRhdGEuICovCi0jZGVmaW5lIE1CRURUTFNfRVJSX0VDUF9TSUdfTEVOX01JU01BVENIICAgICAgICAgICAgICAgICAgLTB4NEMwMAotLyoqIE9wZXJhdGlvbiBpbiBwcm9ncmVzcywgY2FsbCBhZ2FpbiB3aXRoIHRoZSBzYW1lIHBhcmFtZXRlcnMgdG8gY29udGludWUuICovCi0jZGVmaW5lIE1CRURUTFNfRVJSX0VDUF9JTl9QUk9HUkVTUyAgICAgICAgICAgICAgICAgICAgICAgLTB4NEIwMAotCi0vKiBGbGFncyBpbmRpY2F0aW5nIHdoZXRoZXIgdG8gaW5jbHVkZSBjb2RlIHRoYXQgaXMgc3BlY2lmaWMgdG8gY2VydGFpbgotICogdHlwZXMgb2YgY3VydmVzLiBUaGVzZSBmbGFncyBhcmUgZm9yIGludGVybmFsIGxpYnJhcnkgdXNlIG9ubHkuICovCi0jaWYgZGVmaW5lZChNQkVEVExTX0VDUF9EUF9TRUNQMTkyUjFfRU5BQkxFRCkgfHwgXAotICAgIGRlZmluZWQoTUJFRFRMU19FQ1BfRFBfU0VDUDIyNFIxX0VOQUJMRUQpIHx8IFwKLSAgICBkZWZpbmVkKE1CRURUTFNfRUNQX0RQX1NFQ1AyNTZSMV9FTkFCTEVEKSB8fCBcCi0gICAgZGVmaW5lZChNQkVEVExTX0VDUF9EUF9TRUNQMzg0UjFfRU5BQkxFRCkgfHwgXAotICAgIGRlZmluZWQoTUJFRFRMU19FQ1BfRFBfU0VDUDUyMVIxX0VOQUJMRUQpIHx8IFwKLSAgICBkZWZpbmVkKE1CRURUTFNfRUNQX0RQX0JQMjU2UjFfRU5BQkxFRCkgfHwgXAotICAgIGRlZmluZWQoTUJFRFRMU19FQ1BfRFBfQlAzODRSMV9FTkFCTEVEKSB8fCBcCi0gICAgZGVmaW5lZChNQkVEVExTX0VDUF9EUF9CUDUxMlIxX0VOQUJMRUQpIHx8IFwKLSAgICBkZWZpbmVkKE1CRURUTFNfRUNQX0RQX1NFQ1AxOTJLMV9FTkFCTEVEKSB8fCBcCi0gICAgZGVmaW5lZChNQkVEVExTX0VDUF9EUF9TRUNQMjI0SzFfRU5BQkxFRCkgfHwgXAotICAgIGRlZmluZWQoTUJFRFRMU19FQ1BfRFBfU0VDUDI1NksxX0VOQUJMRUQpCi0jZGVmaW5lIE1CRURUTFNfRUNQX1NIT1JUX1dFSUVSU1RSQVNTX0VOQUJMRUQKLSNlbmRpZgotI2lmIGRlZmluZWQoTUJFRFRMU19FQ1BfRFBfQ1VSVkUyNTUxOV9FTkFCTEVEKSB8fCBcCi0gICAgZGVmaW5lZChNQkVEVExTX0VDUF9EUF9DVVJWRTQ0OF9FTkFCTEVEKQotI2RlZmluZSBNQkVEVExTX0VDUF9NT05UR09NRVJZX0VOQUJMRUQKLSNlbmRpZgotCi0jaWZkZWYgX19jcGx1c3BsdXMKLWV4dGVybiAiQyIgewotI2VuZGlmCi0KLS8qKgotICogRG9tYWluLXBhcmFtZXRlciBpZGVudGlmaWVyczogY3VydmUsIHN1Ymdyb3VwLCBhbmQgZ2VuZXJhdG9yLgotICoKLSAqIFxub3RlIE9ubHkgY3VydmVzIG92ZXIgcHJpbWUgZmllbGRzIGFyZSBzdXBwb3J0ZWQuCi0gKgotICogXHdhcm5pbmcgVGhpcyBsaWJyYXJ5IGRvZXMgbm90IHN1cHBvcnQgdmFsaWRhdGlvbiBvZiBhcmJpdHJhcnkgZG9tYWluCi0gKiBwYXJhbWV0ZXJzLiBUaGVyZWZvcmUsIG9ubHkgc3RhbmRhcmRpemVkIGRvbWFpbiBwYXJhbWV0ZXJzIGZyb20gdHJ1c3RlZAotICogc291cmNlcyBzaG91bGQgYmUgdXNlZC4gU2VlIG1iZWR0bHNfZWNwX2dyb3VwX2xvYWQoKS4KLSAqLwotLyogTm90ZTogd2hlbiBhZGRpbmcgYSBuZXcgY3VydmU6Ci0gKiAtIEFkZCBpdCBhdCB0aGUgZW5kIG9mIHRoaXMgZW51bSwgb3RoZXJ3aXNlIHlvdSdsbCBicmVhayB0aGUgQUJJIGJ5Ci0gKiAgIGNoYW5naW5nIHRoZSBudW1lcmljYWwgdmFsdWUgZm9yIGV4aXN0aW5nIGN1cnZlcy4KLSAqIC0gSW5jcmVtZW50IE1CRURUTFNfRUNQX0RQX01BWCBiZWxvdyBpZiBuZWVkZWQuCi0gKiAtIFVwZGF0ZSB0aGUgY2FsY3VsYXRpb24gb2YgTUJFRFRMU19FQ1BfTUFYX0JJVFMgYmVsb3cuCi0gKiAtIEFkZCB0aGUgY29ycmVzcG9uZGluZyBNQkVEVExTX0VDUF9EUF94eHhfRU5BQkxFRCBtYWNybyBkZWZpbml0aW9uIHRvCi0gKiAgIG1iZWR0bHNfY29uZmlnLmguCi0gKiAtIExpc3QgdGhlIGN1cnZlIGFzIGEgZGVwZW5kZW5jeSBvZiBNQkVEVExTX0VDUF9DIGFuZAotICogICBNQkVEVExTX0VDRFNBX0MgaWYgc3VwcG9ydGVkIGluIGNoZWNrX2NvbmZpZy5oLgotICogLSBBZGQgdGhlIGN1cnZlIHRvIHRoZSBhcHByb3ByaWF0ZSBjdXJ2ZSB0eXBlIG1hY3JvCi0gKiAgIE1CRURUTFNfRUNQX3l5eV9FTkFCTEVEIGFib3ZlLgotICogLSBBZGQgdGhlIG5lY2Vzc2FyeSBkZWZpbml0aW9ucyB0byBlY3BfY3VydmVzLmMuCi0gKiAtIEFkZCB0aGUgY3VydmUgdG8gdGhlIGVjcF9zdXBwb3J0ZWRfY3VydmVzIGFycmF5IGluIGVjcC5jLgotICogLSBBZGQgdGhlIGN1cnZlIHRvIGFwcGxpY2FibGUgcHJvZmlsZXMgaW4geDUwOV9jcnQuYy4KLSAqIC0gQWRkIHRoZSBjdXJ2ZSB0byBhcHBsaWNhYmxlIHByZXNldHMgaW4gc3NsX3Rscy5jLgotICovCi10eXBlZGVmIGVudW0gewotICAgIE1CRURUTFNfRUNQX0RQX05PTkUgPSAwLCAgICAgICAvKiE8IEN1cnZlIG5vdCBkZWZpbmVkLiAqLwotICAgIE1CRURUTFNfRUNQX0RQX1NFQ1AxOTJSMSwgICAgICAvKiE8IERvbWFpbiBwYXJhbWV0ZXJzIGZvciB0aGUgMTkyLWJpdCBjdXJ2ZSBkZWZpbmVkIGJ5IEZJUFMgMTg2LTQgYW5kIFNFQzEuICovCi0gICAgTUJFRFRMU19FQ1BfRFBfU0VDUDIyNFIxLCAgICAgIC8qITwgRG9tYWluIHBhcmFtZXRlcnMgZm9yIHRoZSAyMjQtYml0IGN1cnZlIGRlZmluZWQgYnkgRklQUyAxODYtNCBhbmQgU0VDMS4gKi8KLSAgICBNQkVEVExTX0VDUF9EUF9TRUNQMjU2UjEsICAgICAgLyohPCBEb21haW4gcGFyYW1ldGVycyBmb3IgdGhlIDI1Ni1iaXQgY3VydmUgZGVmaW5lZCBieSBGSVBTIDE4Ni00IGFuZCBTRUMxLiAqLwotICAgIE1CRURUTFNfRUNQX0RQX1NFQ1AzODRSMSwgICAgICAvKiE8IERvbWFpbiBwYXJhbWV0ZXJzIGZvciB0aGUgMzg0LWJpdCBjdXJ2ZSBkZWZpbmVkIGJ5IEZJUFMgMTg2LTQgYW5kIFNFQzEuICovCi0gICAgTUJFRFRMU19FQ1BfRFBfU0VDUDUyMVIxLCAgICAgIC8qITwgRG9tYWluIHBhcmFtZXRlcnMgZm9yIHRoZSA1MjEtYml0IGN1cnZlIGRlZmluZWQgYnkgRklQUyAxODYtNCBhbmQgU0VDMS4gKi8KLSAgICBNQkVEVExTX0VDUF9EUF9CUDI1NlIxLCAgICAgICAgLyohPCBEb21haW4gcGFyYW1ldGVycyBmb3IgMjU2LWJpdCBCcmFpbnBvb2wgY3VydmUuICovCi0gICAgTUJFRFRMU19FQ1BfRFBfQlAzODRSMSwgICAgICAgIC8qITwgRG9tYWluIHBhcmFtZXRlcnMgZm9yIDM4NC1iaXQgQnJhaW5wb29sIGN1cnZlLiAqLwotICAgIE1CRURUTFNfRUNQX0RQX0JQNTEyUjEsICAgICAgICAvKiE8IERvbWFpbiBwYXJhbWV0ZXJzIGZvciA1MTItYml0IEJyYWlucG9vbCBjdXJ2ZS4gKi8KLSAgICBNQkVEVExTX0VDUF9EUF9DVVJWRTI1NTE5LCAgICAgLyohPCBEb21haW4gcGFyYW1ldGVycyBmb3IgQ3VydmUyNTUxOS4gKi8KLSAgICBNQkVEVExTX0VDUF9EUF9TRUNQMTkySzEsICAgICAgLyohPCBEb21haW4gcGFyYW1ldGVycyBmb3IgMTkyLWJpdCAiS29ibGl0eiIgY3VydmUuICovCi0gICAgTUJFRFRMU19FQ1BfRFBfU0VDUDIyNEsxLCAgICAgIC8qITwgRG9tYWluIHBhcmFtZXRlcnMgZm9yIDIyNC1iaXQgIktvYmxpdHoiIGN1cnZlLiAqLwotICAgIE1CRURUTFNfRUNQX0RQX1NFQ1AyNTZLMSwgICAgICAvKiE8IERvbWFpbiBwYXJhbWV0ZXJzIGZvciAyNTYtYml0ICJLb2JsaXR6IiBjdXJ2ZS4gKi8KLSAgICBNQkVEVExTX0VDUF9EUF9DVVJWRTQ0OCwgICAgICAgLyohPCBEb21haW4gcGFyYW1ldGVycyBmb3IgQ3VydmU0NDguICovCi19IG1iZWR0bHNfZWNwX2dyb3VwX2lkOwotCi0vKioKLSAqIFRoZSBudW1iZXIgb2Ygc3VwcG9ydGVkIGN1cnZlcywgcGx1cyBvbmUgZm9yICNNQkVEVExTX0VDUF9EUF9OT05FLgotICovCi0jZGVmaW5lIE1CRURUTFNfRUNQX0RQX01BWCAgICAgMTQKLQotLyoKLSAqIEN1cnZlIHR5cGVzCi0gKi8KLXR5cGVkZWYgZW51bSB7Ci0gICAgTUJFRFRMU19FQ1BfVFlQRV9OT05FID0gMCwKLSAgICBNQkVEVExTX0VDUF9UWVBFX1NIT1JUX1dFSUVSU1RSQVNTLCAgICAvKiB5XjIgPSB4XjMgKyBhIHggKyBiICAgICAgKi8KLSAgICBNQkVEVExTX0VDUF9UWVBFX01PTlRHT01FUlksICAgICAgICAgICAvKiB5XjIgPSB4XjMgKyBhIHheMiArIHggICAgKi8KLX0gbWJlZHRsc19lY3BfY3VydmVfdHlwZTsKLQotLyoqCi0gKiBDdXJ2ZSBpbmZvcm1hdGlvbiwgZm9yIHVzZSBieSBvdGhlciBtb2R1bGVzLgotICoKLSAqIFRoZSBmaWVsZHMgb2YgdGhpcyBzdHJ1Y3R1cmUgYXJlIHBhcnQgb2YgdGhlIHB1YmxpYyBBUEkgYW5kIGNhbiBiZQotICogYWNjZXNzZWQgZGlyZWN0bHkgYnkgYXBwbGljYXRpb25zLiBGdXR1cmUgdmVyc2lvbnMgb2YgdGhlIGxpYnJhcnkgbWF5Ci0gKiBhZGQgZXh0cmEgZmllbGRzIG9yIHJlb3JkZXIgZXhpc3RpbmcgZmllbGRzLgotICovCi10eXBlZGVmIHN0cnVjdCBtYmVkdGxzX2VjcF9jdXJ2ZV9pbmZvIHsKLSAgICBtYmVkdGxzX2VjcF9ncm91cF9pZCBncnBfaWQ7ICAgIC8qITwgQW4gaW50ZXJuYWwgaWRlbnRpZmllci4gKi8KLSAgICB1aW50MTZfdCB0bHNfaWQ7ICAgICAgICAgICAgICAgIC8qITwgVGhlIFRMUyBOYW1lZEN1cnZlIGlkZW50aWZpZXIuICovCi0gICAgdWludDE2X3QgYml0X3NpemU7ICAgICAgICAgICAgICAvKiE8IFRoZSBjdXJ2ZSBzaXplIGluIGJpdHMuICovCi0gICAgY29uc3QgY2hhciAqbmFtZTsgICAgICAgICAgICAgICAvKiE8IEEgaHVtYW4tZnJpZW5kbHkgbmFtZS4gKi8KLX0gbWJlZHRsc19lY3BfY3VydmVfaW5mbzsKLQotLyoqCi0gKiBcYnJpZWYgICAgICAgICAgIFRoZSBFQ1AgcG9pbnQgc3RydWN0dXJlLCBpbiBKYWNvYmlhbiBjb29yZGluYXRlcy4KLSAqCi0gKiBcbm90ZSAgICAgICAgICAgIEFsbCBmdW5jdGlvbnMgZXhwZWN0IGFuZCByZXR1cm4gcG9pbnRzIHNhdGlzZnlpbmcKLSAqICAgICAgICAgICAgICAgICAgdGhlIGZvbGxvd2luZyBjb25kaXRpb246IDxjb2RlPlogPT0gMDwvY29kZT4gb3IKLSAqICAgICAgICAgICAgICAgICAgPGNvZGU+WiA9PSAxPC9jb2RlPi4gT3RoZXIgdmFsdWVzIG9mIFxwIFogYXJlCi0gKiAgICAgICAgICAgICAgICAgIHVzZWQgb25seSBieSBpbnRlcm5hbCBmdW5jdGlvbnMuCi0gKiAgICAgICAgICAgICAgICAgIFRoZSBwb2ludCBpcyB6ZXJvLCBvciAiYXQgaW5maW5pdHkiLCBpZiA8Y29kZT5aID09IDA8L2NvZGU+LgotICogICAgICAgICAgICAgICAgICBPdGhlcndpc2UsIFxwIFggYW5kIFxwIFkgYXJlIGl0cyBzdGFuZGFyZCAoYWZmaW5lKQotICogICAgICAgICAgICAgICAgICBjb29yZGluYXRlcy4KLSAqLwotdHlwZWRlZiBzdHJ1Y3QgbWJlZHRsc19lY3BfcG9pbnQgewotICAgIG1iZWR0bHNfbXBpIE1CRURUTFNfUFJJVkFURShYKTsgICAgICAgICAgLyohPCBUaGUgWCBjb29yZGluYXRlIG9mIHRoZSBFQ1AgcG9pbnQuICovCi0gICAgbWJlZHRsc19tcGkgTUJFRFRMU19QUklWQVRFKFkpOyAgICAgICAgICAvKiE8IFRoZSBZIGNvb3JkaW5hdGUgb2YgdGhlIEVDUCBwb2ludC4gKi8KLSAgICBtYmVkdGxzX21waSBNQkVEVExTX1BSSVZBVEUoWik7ICAgICAgICAgIC8qITwgVGhlIFogY29vcmRpbmF0ZSBvZiB0aGUgRUNQIHBvaW50LiAqLwotfQotbWJlZHRsc19lY3BfcG9pbnQ7Ci0KLSNpZiAhZGVmaW5lZChNQkVEVExTX0VDUF9BTFQpCi0vKgotICogZGVmYXVsdCBNYmVkIFRMUyBlbGxpcHRpYyBjdXJ2ZSBhcml0aG1ldGljIGltcGxlbWVudGF0aW9uCi0gKgotICogKGluIGNhc2UgTUJFRFRMU19FQ1BfQUxUIGlzIGRlZmluZWQgdGhlbiB0aGUgZGV2ZWxvcGVyIGhhcyB0byBwcm92aWRlIGFuCi0gKiBhbHRlcm5hdGl2ZSBpbXBsZW1lbnRhdGlvbiBmb3IgdGhlIHdob2xlIG1vZHVsZSBhbmQgaXQgd2lsbCByZXBsYWNlIHRoaXMKLSAqIG9uZS4pCi0gKi8KLQotLyoqCi0gKiBcYnJpZWYgICAgICAgICAgIFRoZSBFQ1AgZ3JvdXAgc3RydWN0dXJlLgotICoKLSAqIFdlIGNvbnNpZGVyIHR3byB0eXBlcyBvZiBjdXJ2ZSBlcXVhdGlvbnM6Ci0gKiA8dWw+PGxpPlNob3J0IFdlaWVyc3RyYXNzOiA8Y29kZT55XjIgPSB4XjMgKyBBIHggKyBCIG1vZCBQPC9jb2RlPgotICogKFNFQzEgKyBSRkMtNDQ5Mik8L2xpPgotICogPGxpPk1vbnRnb21lcnk6IDxjb2RlPnleMiA9IHheMyArIEEgeF4yICsgeCBtb2QgUDwvY29kZT4gKEN1cnZlMjU1MTksCi0gKiBDdXJ2ZTQ0OCk8L2xpPjwvdWw+Ci0gKiBJbiBib3RoIGNhc2VzLCB0aGUgZ2VuZXJhdG9yIChccCBHKSBmb3IgYSBwcmltZS1vcmRlciBzdWJncm91cCBpcyBmaXhlZC4KLSAqCi0gKiBGb3IgU2hvcnQgV2VpZXJzdHJhc3MsIHRoaXMgc3ViZ3JvdXAgaXMgdGhlIHdob2xlIGN1cnZlLCBhbmQgaXRzCi0gKiBjYXJkaW5hbGl0eSBpcyBkZW5vdGVkIGJ5IFxwIE4uIE91ciBjb2RlIHJlcXVpcmVzIHRoYXQgXHAgTiBpcyBhbgotICogb2RkIHByaW1lIGFzIG1iZWR0bHNfZWNwX211bCgpIHJlcXVpcmVzIGFuIG9kZCBudW1iZXIsIGFuZAotICogbWJlZHRsc19lY2RzYV9zaWduKCkgcmVxdWlyZXMgdGhhdCBpdCBpcyBwcmltZSBmb3IgYmxpbmRpbmcgcHVycG9zZXMuCi0gKgotICogVGhlIGRlZmF1bHQgaW1wbGVtZW50YXRpb24gb25seSBpbml0aWFsaXplcyBccCBBIHdpdGhvdXQgc2V0dGluZyBpdCB0byB0aGUKLSAqIGF1dGhlbnRpYyB2YWx1ZSBmb3IgY3VydmVzIHdpdGggPGNvZGU+QSA9IC0zPC9jb2RlPihTRUNQMjU2UjEsIGV0YyksIGluIHdoaWNoCi0gKiBjYXNlIHlvdSBuZWVkIHRvIGxvYWQgXHAgQSBieSB5b3Vyc2VsZiB3aGVuIHVzaW5nIGRvbWFpbiBwYXJhbWV0ZXJzIGRpcmVjdGx5LAotICogZm9yIGV4YW1wbGU6Ci0gKiBcY29kZQotICogbWJlZHRsc19tcGlfaW5pdCgmQSk7Ci0gKiBtYmVkdGxzX2VjcF9ncm91cF9pbml0KCZncnApOwotICogQ0hFQ0tfUkVUVVJOKG1iZWR0bHNfZWNwX2dyb3VwX2xvYWQoJmdycCwgZ3JwX2lkKSk7Ci0gKiBpZiAobWJlZHRsc19lY3BfZ3JvdXBfYV9pc19taW51c18zKCZncnApKSB7Ci0gKiAgICAgQ0hFQ0tfUkVUVVJOKG1iZWR0bHNfbXBpX3N1Yl9pbnQoJkEsICZncnAuUCwgMykpOwotICogfSBlbHNlIHsKLSAqICAgICBDSEVDS19SRVRVUk4obWJlZHRsc19tcGlfY29weSgmQSwgJmdycC5BKSk7Ci0gKiB9Ci0gKgotICogZG9fc29tZXRoaW5nX3dpdGhfYSgmQSk7Ci0gKgotICogY2xlYW51cDoKLSAqIG1iZWR0bHNfbXBpX2ZyZWUoJkEpOwotICogbWJlZHRsc19lY3BfZ3JvdXBfZnJlZSgmZ3JwKTsKLSAqIFxlbmRjb2RlCi0gKgotICogRm9yIE1vbnRnb21lcnkgY3VydmVzLCB3ZSBkbyBub3Qgc3RvcmUgXHAgQSwgYnV0IDxjb2RlPihBICsgMikgLyA0PC9jb2RlPiwKLSAqIHdoaWNoIGlzIHRoZSBxdWFudGl0eSB1c2VkIGluIHRoZSBmb3JtdWxhcy4gQWRkaXRpb25hbGx5LCBccCBuYml0cyBpcwotICogbm90IHRoZSBzaXplIG9mIFxwIE4gYnV0IHRoZSByZXF1aXJlZCBzaXplIGZvciBwcml2YXRlIGtleXMuCi0gKgotICogSWYgXHAgbW9kcCBpcyBOVUxMLCByZWR1Y3Rpb24gbW9kdWxvIFxwIFAgaXMgZG9uZSB1c2luZyBhIGdlbmVyaWMgYWxnb3JpdGhtLgotICogT3RoZXJ3aXNlLCBccCBtb2RwIG11c3QgcG9pbnQgdG8gYSBmdW5jdGlvbiB0aGF0IHRha2VzIGFuIFxwIG1iZWR0bHNfbXBpIGluIHRoZQotICogcmFuZ2Ugb2YgPGNvZGU+MC4uMl4oMipwYml0cyktMTwvY29kZT4sIGFuZCB0cmFuc2Zvcm1zIGl0IGluLXBsYWNlIHRvIGFuIGludGVnZXIKLSAqIHdoaWNoIGlzIGNvbmdydWVudCBtb2QgXHAgUCB0byB0aGUgZ2l2ZW4gTVBJLCBhbmQgaXMgY2xvc2UgZW5vdWdoIHRvIFxwIHBiaXRzCi0gKiBpbiBzaXplLCBzbyB0aGF0IGl0IG1heSBiZSBlZmZpY2llbnRseSBicm91Z2h0IGluIHRoZSAwLi5QLTEgcmFuZ2UgYnkgYSBmZXcKLSAqIGFkZGl0aW9ucyBvciBzdWJ0cmFjdGlvbnMuIFRoZXJlZm9yZSwgaXQgaXMgb25seSBhbiBhcHByb3hpbWF0aXZlIG1vZHVsYXIKLSAqIHJlZHVjdGlvbi4gSXQgbXVzdCByZXR1cm4gMCBvbiBzdWNjZXNzIGFuZCBub24temVybyBvbiBmYWlsdXJlLgotICoKLSAqIFxub3RlICAgICAgICBBbHRlcm5hdGl2ZSBpbXBsZW1lbnRhdGlvbnMgb2YgdGhlIEVDUCBtb2R1bGUgbXVzdCBvYmV5IHRoZQotICogICAgICAgICAgICAgIGZvbGxvd2luZyBjb25zdHJhaW50cy4KLSAqICAgICAgICAgICAgICAqIEdyb3VwIElEcyBtdXN0IGJlIGRpc3RpbmN0OiBpZiB0d28gZ3JvdXAgc3RydWN0dXJlcyBoYXZlCi0gKiAgICAgICAgICAgICAgICB0aGUgc2FtZSBJRCwgdGhlbiB0aGV5IG11c3QgYmUgaWRlbnRpY2FsLgotICogICAgICAgICAgICAgICogVGhlIGZpZWxkcyBcYyBpZCwgXGMgUCwgXGMgQSwgXGMgQiwgXGMgRywgXGMgTiwKLSAqICAgICAgICAgICAgICAgIFxjIHBiaXRzIGFuZCBcYyBuYml0cyBtdXN0IGhhdmUgdGhlIHNhbWUgdHlwZSBhbmQgc2VtYW50aWNzCi0gKiAgICAgICAgICAgICAgICBhcyBpbiB0aGUgYnVpbHQtaW4gaW1wbGVtZW50YXRpb24uCi0gKiAgICAgICAgICAgICAgICBUaGV5IG11c3QgYmUgYXZhaWxhYmxlIGZvciByZWFkaW5nLCBidXQgZGlyZWN0IG1vZGlmaWNhdGlvbgotICogICAgICAgICAgICAgICAgb2YgdGhlc2UgZmllbGRzIGRvZXMgbm90IG5lZWQgdG8gYmUgc3VwcG9ydGVkLgotICogICAgICAgICAgICAgICAgVGhleSBkbyBub3QgbmVlZCB0byBiZSBhdCB0aGUgc2FtZSBvZmZzZXQgaW4gdGhlIHN0cnVjdHVyZS4KLSAqLwotdHlwZWRlZiBzdHJ1Y3QgbWJlZHRsc19lY3BfZ3JvdXAgewotICAgIG1iZWR0bHNfZWNwX2dyb3VwX2lkIGlkOyAgICAvKiE8IEFuIGludGVybmFsIGdyb3VwIGlkZW50aWZpZXIuICovCi0gICAgbWJlZHRsc19tcGkgUDsgICAgICAgICAgICAgIC8qITwgVGhlIHByaW1lIG1vZHVsdXMgb2YgdGhlIGJhc2UgZmllbGQuICovCi0gICAgbWJlZHRsc19tcGkgQTsgICAgICAgICAgICAgIC8qITwgRm9yIFNob3J0IFdlaWVyc3RyYXNzOiBccCBBIGluIHRoZSBlcXVhdGlvbi4gTm90ZSB0aGF0Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXHAgQSBpcyBub3Qgc2V0IHRvIHRoZSBhdXRoZW50aWMgdmFsdWUgaW4gc29tZSBjYXNlcy4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZWZlciB0byBkZXRhaWxlZCBkZXNjcmlwdGlvbiBvZiA6Om1iZWR0bHNfZWNwX2dyb3VwIGlmCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXNpbmcgZG9tYWluIHBhcmFtZXRlcnMgaW4gdGhlIHN0cnVjdHVyZS4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBGb3IgTW9udGdvbWVyeSBjdXJ2ZXM6IDxjb2RlPihBICsgMikgLyA0PC9jb2RlPi4gKi8KLSAgICBtYmVkdGxzX21waSBCOyAgICAgICAgICAgICAgLyohPCBGb3IgU2hvcnQgV2VpZXJzdHJhc3M6IFxwIEIgaW4gdGhlIGVxdWF0aW9uLgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZvciBNb250Z29tZXJ5IGN1cnZlczogdW51c2VkLiAqLwotICAgIG1iZWR0bHNfZWNwX3BvaW50IEc7ICAgICAgICAvKiE8IFRoZSBnZW5lcmF0b3Igb2YgdGhlIHN1Ymdyb3VwIHVzZWQuICovCi0gICAgbWJlZHRsc19tcGkgTjsgICAgICAgICAgICAgIC8qITwgVGhlIG9yZGVyIG9mIFxwIEcuICovCi0gICAgc2l6ZV90IHBiaXRzOyAgICAgICAgICAgICAgIC8qITwgVGhlIG51bWJlciBvZiBiaXRzIGluIFxwIFAuKi8KLSAgICBzaXplX3QgbmJpdHM7ICAgICAgICAgICAgICAgLyohPCBGb3IgU2hvcnQgV2VpZXJzdHJhc3M6IFRoZSBudW1iZXIgb2YgYml0cyBpbiBccCBQLgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZvciBNb250Z29tZXJ5IGN1cnZlczogdGhlIG51bWJlciBvZiBiaXRzIGluIHRoZQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByaXZhdGUga2V5cy4gKi8KLSAgICAvKiBFbmQgb2YgcHVibGljIGZpZWxkcyAqLwotCi0gICAgdW5zaWduZWQgaW50IE1CRURUTFNfUFJJVkFURShoKTsgICAgICAgICAgICAgLyohPCBcaW50ZXJuYWwgMSBpZiB0aGUgY29uc3RhbnRzIGFyZSBzdGF0aWMuICovCi0gICAgaW50KCpNQkVEVExTX1BSSVZBVEUobW9kcCkpKG1iZWR0bHNfbXBpICopOyAgLyohPCBUaGUgZnVuY3Rpb24gZm9yIGZhc3QgcHNldWRvLXJlZHVjdGlvbgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1vZCBccCBQIChzZWUgYWJvdmUpLiovCi0gICAgaW50KCpNQkVEVExTX1BSSVZBVEUodF9wcmUpKShtYmVkdGxzX2VjcF9wb2ludCAqLCB2b2lkICopOyAgIC8qITwgVW51c2VkLiAqLwotICAgIGludCgqTUJFRFRMU19QUklWQVRFKHRfcG9zdCkpKG1iZWR0bHNfZWNwX3BvaW50ICosIHZvaWQgKik7ICAvKiE8IFVudXNlZC4gKi8KLSAgICB2b2lkICpNQkVEVExTX1BSSVZBVEUodF9kYXRhKTsgICAgICAgICAgICAgICAvKiE8IFVudXNlZC4gKi8KLSAgICBtYmVkdGxzX2VjcF9wb2ludCAqTUJFRFRMU19QUklWQVRFKFQpOyAgICAgICAvKiE8IFByZS1jb21wdXRlZCBwb2ludHMgZm9yIGVjcF9tdWxfY29tYigpLiAqLwotICAgIHNpemVfdCBNQkVEVExTX1BSSVZBVEUoVF9zaXplKTsgICAgICAgICAgICAgIC8qITwgVGhlIG51bWJlciBvZiBkeW5hbWljIGFsbG9jYXRlZCBwcmUtY29tcHV0ZWQgcG9pbnRzLiAqLwotfQotbWJlZHRsc19lY3BfZ3JvdXA7Ci0KLS8qKgotICogXG5hbWUgU0VDVElPTjogTW9kdWxlIHNldHRpbmdzCi0gKgotICogVGhlIGNvbmZpZ3VyYXRpb24gb3B0aW9ucyB5b3UgY2FuIHNldCBmb3IgdGhpcyBtb2R1bGUgYXJlIGluIHRoaXMgc2VjdGlvbi4KLSAqIEVpdGhlciBjaGFuZ2UgdGhlbSBpbiBtYmVkdGxzX2NvbmZpZy5oLCBvciBkZWZpbmUgdGhlbSB1c2luZyB0aGUgY29tcGlsZXIgY29tbWFuZCBsaW5lLgotICogXHsKLSAqLwotCi0jaWYgIWRlZmluZWQoTUJFRFRMU19FQ1BfV0lORE9XX1NJWkUpCi0vKgotICogTWF4aW11bSAid2luZG93IiBzaXplIHVzZWQgZm9yIHBvaW50IG11bHRpcGxpY2F0aW9uLgotICogRGVmYXVsdDogYSBwb2ludCB3aGVyZSBoaWdoZXIgbWVtb3J5IHVzYWdlIHlpZWxkcyBkaW1pbmlzaGluZyBwZXJmb3JtYW5jZQotICogICAgICAgICAgcmV0dXJucy4KLSAqIE1pbmltdW0gdmFsdWU6IDIuIE1heGltdW0gdmFsdWU6IDcuCi0gKgotICogUmVzdWx0IGlzIGFuIGFycmF5IG9mIGF0IG1vc3QgKCAxIDw8ICggTUJFRFRMU19FQ1BfV0lORE9XX1NJWkUgLSAxICkgKQotICogcG9pbnRzIHVzZWQgZm9yIHBvaW50IG11bHRpcGxpY2F0aW9uLiBUaGlzIHZhbHVlIGlzIGRpcmVjdGx5IHRpZWQgdG8gRUMKLSAqIHBlYWsgbWVtb3J5IHVzYWdlLCBzbyBkZWNyZWFzaW5nIGl0IGJ5IG9uZSBzaG91bGQgcm91Z2hseSBjdXQgbWVtb3J5IHVzYWdlCi0gKiBieSB0d28gKGlmIGxhcmdlIGN1cnZlcyBhcmUgaW4gdXNlKS4KLSAqCi0gKiBSZWR1Y3Rpb24gaW4gc2l6ZSBtYXkgcmVkdWNlIHNwZWVkLCBidXQgbGFyZ2VyIGN1cnZlcyBhcmUgaW1wYWN0ZWQgZmlyc3QuCi0gKiBTYW1wbGUgcGVyZm9ybWFuY2VzIChpbiBFQ0RIRSBoYW5kc2hha2VzL3MsIHdpdGggRklYRURfUE9JTlRfT1BUSU0gPSAxKToKLSAqICAgICAgdy1zaXplOiAgICAgNiAgICAgICA1ICAgICAgIDQgICAgICAgMyAgICAgICAyCi0gKiAgICAgIDUyMSAgICAgICAxNDUgICAgIDE0MSAgICAgMTM1ICAgICAxMjAgICAgICA5NwotICogICAgICAzODQgICAgICAgMjE0ICAgICAyMDkgICAgIDE5OCAgICAgMTc3ICAgICAxNDYKLSAqICAgICAgMjU2ICAgICAgIDMyMCAgICAgMzIwICAgICAzMDMgICAgIDI2MiAgICAgMjI2Ci0gKiAgICAgIDIyNCAgICAgICA0NzUgICAgIDQ3NSAgICAgNDUzICAgICAzOTggICAgIDM0MgotICogICAgICAxOTIgICAgICAgNjQwICAgICA2NDAgICAgIDYzMyAgICAgNTg3ICAgICA0NzYKLSAqLwotI2RlZmluZSBNQkVEVExTX0VDUF9XSU5ET1dfU0laRSAgICA0ICAgLyoqPCBUaGUgbWF4aW11bSB3aW5kb3cgc2l6ZSB1c2VkLiAqLwotI2VuZGlmIC8qIE1CRURUTFNfRUNQX1dJTkRPV19TSVpFICovCi0KLSNpZiAhZGVmaW5lZChNQkVEVExTX0VDUF9GSVhFRF9QT0lOVF9PUFRJTSkKLS8qCi0gKiBUcmFkZSBjb2RlIHNpemUgZm9yIHNwZWVkIG9uIGZpeGVkLXBvaW50IG11bHRpcGxpY2F0aW9uLgotICoKLSAqIFRoaXMgc3BlZWRzIHVwIHJlcGVhdGVkIG11bHRpcGxpY2F0aW9uIG9mIHRoZSBnZW5lcmF0b3IgKHRoYXQgaXMsIHRoZQotICogbXVsdGlwbGljYXRpb24gaW4gRUNEU0Egc2lnbmF0dXJlcywgYW5kIGhhbGYgb2YgdGhlIG11bHRpcGxpY2F0aW9ucyBpbgotICogRUNEU0EgdmVyaWZpY2F0aW9uIGFuZCBFQ0RIRSkgYnkgYSBmYWN0b3Igcm91Z2hseSAzIHRvIDQuCi0gKgotICogRm9yIGVhY2ggbi1iaXQgU2hvcnQgV2VpZXJzdHJhc3MgY3VydmUgdGhhdCBpcyBlbmFibGVkLCB0aGlzIGFkZHMgNG4gYnl0ZXMKLSAqIG9mIGNvZGUgc2l6ZSBpZiBuIDwgMzg0IGFuZCA4biBvdGhlcndpc2UuCi0gKgotICogQ2hhbmdlIHRoaXMgdmFsdWUgdG8gMCB0byByZWR1Y2UgY29kZSBzaXplLgotICovCi0jZGVmaW5lIE1CRURUTFNfRUNQX0ZJWEVEX1BPSU5UX09QVElNICAxICAgLyoqPCBFbmFibGUgZml4ZWQtcG9pbnQgc3BlZWQtdXAuICovCi0jZW5kaWYgLyogTUJFRFRMU19FQ1BfRklYRURfUE9JTlRfT1BUSU0gKi8KLQotLyoqIFx9IG5hbWUgU0VDVElPTjogTW9kdWxlIHNldHRpbmdzICovCi0KLSNlbHNlICAvKiBNQkVEVExTX0VDUF9BTFQgKi8KLSNpbmNsdWRlICJlY3BfYWx0LmgiCi0jZW5kaWYgLyogTUJFRFRMU19FQ1BfQUxUICovCi0KLS8qKgotICogVGhlIG1heGltdW0gc2l6ZSBvZiB0aGUgZ3JvdXBzLCB0aGF0IGlzLCBvZiBcYyBOIGFuZCBcYyBQLgotICovCi0jaWYgIWRlZmluZWQoTUJFRFRMU19FQ1BfTElHSFQpCi0vKiBEdW1teSBkZWZpbml0aW9uIHRvIGhlbHAgY29kZSB0aGF0IGhhcyBvcHRpb25hbCBFQ1Agc3VwcG9ydCBhbmQKLSAqIGRlZmluZXMgYW4gTUJFRFRMU19FQ1BfTUFYX0JZVEVTLXNpemVkIGFycmF5IHVuY29uZGl0aW9uYWxseS4gKi8KLSNkZWZpbmUgTUJFRFRMU19FQ1BfTUFYX0JJVFMgMQotLyogTm90ZTogdGhlIGN1cnZlcyBtdXN0IGJlIGxpc3RlZCBpbiBERUNSRUFTSU5HIHNpemUhICovCi0jZWxpZiBkZWZpbmVkKE1CRURUTFNfRUNQX0RQX1NFQ1A1MjFSMV9FTkFCTEVEKQotI2RlZmluZSBNQkVEVExTX0VDUF9NQVhfQklUUyA1MjEKLSNlbGlmIGRlZmluZWQoTUJFRFRMU19FQ1BfRFBfQlA1MTJSMV9FTkFCTEVEKQotI2RlZmluZSBNQkVEVExTX0VDUF9NQVhfQklUUyA1MTIKLSNlbGlmIGRlZmluZWQoTUJFRFRMU19FQ1BfRFBfQ1VSVkU0NDhfRU5BQkxFRCkKLSNkZWZpbmUgTUJFRFRMU19FQ1BfTUFYX0JJVFMgNDQ4Ci0jZWxpZiBkZWZpbmVkKE1CRURUTFNfRUNQX0RQX0JQMzg0UjFfRU5BQkxFRCkKLSNkZWZpbmUgTUJFRFRMU19FQ1BfTUFYX0JJVFMgMzg0Ci0jZWxpZiBkZWZpbmVkKE1CRURUTFNfRUNQX0RQX1NFQ1AzODRSMV9FTkFCTEVEKQotI2RlZmluZSBNQkVEVExTX0VDUF9NQVhfQklUUyAzODQKLSNlbGlmIGRlZmluZWQoTUJFRFRMU19FQ1BfRFBfQlAyNTZSMV9FTkFCTEVEKQotI2RlZmluZSBNQkVEVExTX0VDUF9NQVhfQklUUyAyNTYKLSNlbGlmIGRlZmluZWQoTUJFRFRMU19FQ1BfRFBfU0VDUDI1NksxX0VOQUJMRUQpCi0jZGVmaW5lIE1CRURUTFNfRUNQX01BWF9CSVRTIDI1NgotI2VsaWYgZGVmaW5lZChNQkVEVExTX0VDUF9EUF9TRUNQMjU2UjFfRU5BQkxFRCkKLSNkZWZpbmUgTUJFRFRMU19FQ1BfTUFYX0JJVFMgMjU2Ci0jZWxpZiBkZWZpbmVkKE1CRURUTFNfRUNQX0RQX0NVUlZFMjU1MTlfRU5BQkxFRCkKLSNkZWZpbmUgTUJFRFRMU19FQ1BfTUFYX0JJVFMgMjU1Ci0jZWxpZiBkZWZpbmVkKE1CRURUTFNfRUNQX0RQX1NFQ1AyMjRLMV9FTkFCTEVEKQotI2RlZmluZSBNQkVEVExTX0VDUF9NQVhfQklUUyAyMjUgLy8gbiBpcyBzbGlnaHRseSBhYm92ZSAyXjIyNAotI2VsaWYgZGVmaW5lZChNQkVEVExTX0VDUF9EUF9TRUNQMjI0UjFfRU5BQkxFRCkKLSNkZWZpbmUgTUJFRFRMU19FQ1BfTUFYX0JJVFMgMjI0Ci0jZWxpZiBkZWZpbmVkKE1CRURUTFNfRUNQX0RQX1NFQ1AxOTJLMV9FTkFCTEVEKQotI2RlZmluZSBNQkVEVExTX0VDUF9NQVhfQklUUyAxOTIKLSNlbGlmIGRlZmluZWQoTUJFRFRMU19FQ1BfRFBfU0VDUDE5MlIxX0VOQUJMRUQpCi0jZGVmaW5lIE1CRURUTFNfRUNQX01BWF9CSVRTIDE5MgotI2Vsc2UgLyogIU1CRURUTFNfRUNQX0xJR0hUICovCi0jZXJyb3IgIk1pc3NpbmcgZGVmaW5pdGlvbiBvZiBNQkVEVExTX0VDUF9NQVhfQklUUyIKLSNlbmRpZiAvKiAhTUJFRFRMU19FQ1BfTElHSFQgKi8KLQotI2RlZmluZSBNQkVEVExTX0VDUF9NQVhfQllURVMgICAgKChNQkVEVExTX0VDUF9NQVhfQklUUyArIDcpIC8gOCkKLSNkZWZpbmUgTUJFRFRMU19FQ1BfTUFYX1BUX0xFTiAgICgyICogTUJFRFRMU19FQ1BfTUFYX0JZVEVTICsgMSkKLQotI2lmIGRlZmluZWQoTUJFRFRMU19FQ1BfUkVTVEFSVEFCTEUpCi0KLS8qKgotICogXGJyaWVmICAgICAgICAgICBJbnRlcm5hbCByZXN0YXJ0IGNvbnRleHQgZm9yIG11bHRpcGxpY2F0aW9uCi0gKgotICogXG5vdGUgICAgICAgICAgICBPcGFxdWUgc3RydWN0Ci0gKi8KLXR5cGVkZWYgc3RydWN0IG1iZWR0bHNfZWNwX3Jlc3RhcnRfbXVsIG1iZWR0bHNfZWNwX3Jlc3RhcnRfbXVsX2N0eDsKLQotLyoqCi0gKiBcYnJpZWYgICAgICAgICAgIEludGVybmFsIHJlc3RhcnQgY29udGV4dCBmb3IgZWNwX211bGFkZCgpCi0gKgotICogXG5vdGUgICAgICAgICAgICBPcGFxdWUgc3RydWN0Ci0gKi8KLXR5cGVkZWYgc3RydWN0IG1iZWR0bHNfZWNwX3Jlc3RhcnRfbXVsYWRkIG1iZWR0bHNfZWNwX3Jlc3RhcnRfbXVsYWRkX2N0eDsKLQotLyoqCi0gKiBcYnJpZWYgICAgICAgICAgIEdlbmVyYWwgY29udGV4dCBmb3IgcmVzdW1pbmcgRUNDIG9wZXJhdGlvbnMKLSAqLwotdHlwZWRlZiBzdHJ1Y3QgewotICAgIHVuc2lnbmVkIE1CRURUTFNfUFJJVkFURShvcHNfZG9uZSk7ICAgICAgICAgICAgICAgICAgLyohPCAgY3VycmVudCBvcHMgY291bnQgICAgICAgICAgICAgKi8KLSAgICB1bnNpZ25lZCBNQkVEVExTX1BSSVZBVEUoZGVwdGgpOyAgICAgICAgICAgICAgICAgICAgIC8qITwgIGNhbGwgZGVwdGggKDAgPSB0b3AtbGV2ZWwpICAgICovCi0gICAgbWJlZHRsc19lY3BfcmVzdGFydF9tdWxfY3R4ICpNQkVEVExTX1BSSVZBVEUocnNtKTsgICAvKiE8ICBlY3BfbXVsX2NvbWIoKSBzdWItY29udGV4dCAgICAqLwotICAgIG1iZWR0bHNfZWNwX3Jlc3RhcnRfbXVsYWRkX2N0eCAqTUJFRFRMU19QUklWQVRFKG1hKTsgLyohPCAgZWNwX211bGFkZCgpIHN1Yi1jb250ZXh0ICAgICAgKi8KLX0gbWJlZHRsc19lY3BfcmVzdGFydF9jdHg7Ci0KLS8qCi0gKiBPcGVyYXRpb24gY291bnRzIGZvciByZXN0YXJ0YWJsZSBmdW5jdGlvbnMKLSAqLwotI2RlZmluZSBNQkVEVExTX0VDUF9PUFNfQ0hLICAgMyAvKiE8IGJhc2ljIG9wcyBjb3VudCBmb3IgZWNwX2NoZWNrX3B1YmtleSgpICAqLwotI2RlZmluZSBNQkVEVExTX0VDUF9PUFNfREJMICAgOCAvKiE8IGJhc2ljIG9wcyBjb3VudCBmb3IgZWNwX2RvdWJsZV9qYWMoKSAgICAqLwotI2RlZmluZSBNQkVEVExTX0VDUF9PUFNfQUREICAxMSAvKiE8IGJhc2ljIG9wcyBjb3VudCBmb3Igc2VlIGVjcF9hZGRfbWl4ZWQoKSAqLwotI2RlZmluZSBNQkVEVExTX0VDUF9PUFNfSU5WIDEyMCAvKiE8IGVtcGlyaWNhbCBlcXVpdmFsZW50IGZvciBtcGlfbW9kX2ludigpICAqLwotCi0vKioKLSAqIFxicmllZiAgICAgICAgICAgSW50ZXJuYWw7IGZvciByZXN0YXJ0YWJsZSBmdW5jdGlvbnMgaW4gb3RoZXIgbW9kdWxlcy4KLSAqICAgICAgICAgICAgICAgICAgQ2hlY2sgYW5kIHVwZGF0ZSBiYXNpYyBvcHMgYnVkZ2V0LgotICoKLSAqIFxwYXJhbSBncnAgICAgICAgR3JvdXAgc3RydWN0dXJlCi0gKiBccGFyYW0gcnNfY3R4ICAgIFJlc3RhcnQgY29udGV4dAotICogXHBhcmFtIG9wcyAgICAgICBOdW1iZXIgb2YgYmFzaWMgb3BzIHRvIGRvCi0gKgotICogXHJldHVybiAgICAgICAgICBcYyAwIGlmIGRvaW5nIFxwIG9wcyBiYXNpYyBvcHMgaXMgc3RpbGwgYWxsb3dlZCwKLSAqIFxyZXR1cm4gICAgICAgICAgI01CRURUTFNfRVJSX0VDUF9JTl9QUk9HUkVTUyBvdGhlcndpc2UuCi0gKi8KLWludCBtYmVkdGxzX2VjcF9jaGVja19idWRnZXQoY29uc3QgbWJlZHRsc19lY3BfZ3JvdXAgKmdycCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWJlZHRsc19lY3BfcmVzdGFydF9jdHggKnJzX2N0eCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgb3BzKTsKLQotLyogVXRpbGl0eSBtYWNybyBmb3IgY2hlY2tpbmcgYW5kIHVwZGF0aW5nIG9wcyBidWRnZXQgKi8KLSNkZWZpbmUgTUJFRFRMU19FQ1BfQlVER0VUKG9wcykgICBcCi0gICAgTUJFRFRMU19NUElfQ0hLKG1iZWR0bHNfZWNwX2NoZWNrX2J1ZGdldChncnAsIHJzX2N0eCwgXAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHVuc2lnbmVkKSAob3BzKSkpOwotCi0jZWxzZSAvKiBNQkVEVExTX0VDUF9SRVNUQVJUQUJMRSAqLwotCi0jZGVmaW5lIE1CRURUTFNfRUNQX0JVREdFVChvcHMpICAgICAvKiBuby1vcDsgZm9yIGNvbXBhdGliaWxpdHkgKi8KLQotLyogV2Ugd2FudCB0byBkZWNsYXJlIHJlc3RhcnRhYmxlIHZlcnNpb25zIG9mIGV4aXN0aW5nIGZ1bmN0aW9ucyBhbnl3YXkgKi8KLXR5cGVkZWYgdm9pZCBtYmVkdGxzX2VjcF9yZXN0YXJ0X2N0eDsKLQotI2VuZGlmIC8qIE1CRURUTFNfRUNQX1JFU1RBUlRBQkxFICovCi0KLS8qKgotICogXGJyaWVmICAgIFRoZSBFQ1Aga2V5LXBhaXIgc3RydWN0dXJlLgotICoKLSAqIEEgZ2VuZXJpYyBrZXktcGFpciB0aGF0IG1heSBiZSB1c2VkIGZvciBFQ0RTQSBhbmQgZml4ZWQgRUNESCwgZm9yIGV4YW1wbGUuCi0gKgotICogXG5vdGUgICAgTWVtYmVycyBhcmUgZGVsaWJlcmF0ZWx5IGluIHRoZSBzYW1lIG9yZGVyIGFzIGluIHRoZQotICogICAgICAgICAgOjptYmVkdGxzX2VjZHNhX2NvbnRleHQgc3RydWN0dXJlLgotICovCi10eXBlZGVmIHN0cnVjdCBtYmVkdGxzX2VjcF9rZXlwYWlyIHsKLSAgICBtYmVkdGxzX2VjcF9ncm91cCBNQkVEVExTX1BSSVZBVEUoZ3JwKTsgICAgICAvKiE8ICBFbGxpcHRpYyBjdXJ2ZSBhbmQgYmFzZSBwb2ludCAgICAgKi8KLSAgICBtYmVkdGxzX21waSBNQkVEVExTX1BSSVZBVEUoZCk7ICAgICAgICAgICAgICAvKiE8ICBvdXIgc2VjcmV0IHZhbHVlICAgICAgICAgICAgICAgICAgKi8KLSAgICBtYmVkdGxzX2VjcF9wb2ludCBNQkVEVExTX1BSSVZBVEUoUSk7ICAgICAgICAvKiE8ICBvdXIgcHVibGljIHZhbHVlICAgICAgICAgICAgICAgICAgKi8KLX0KLW1iZWR0bHNfZWNwX2tleXBhaXI7Ci0KLS8qKgotICogVGhlIHVuY29tcHJlc3NlZCBwb2ludCBmb3JtYXQgZm9yIFNob3J0IFdlaWVyc3RyYXNzIGN1cnZlcwotICogKE1CRURUTFNfRUNQX0RQX1NFQ1BfWFhYIGFuZCBNQkVEVExTX0VDUF9EUF9CUF9YWFgpLgotICovCi0jZGVmaW5lIE1CRURUTFNfRUNQX1BGX1VOQ09NUFJFU1NFRCAgICAwCi0vKioKLSAqIFRoZSBjb21wcmVzc2VkIHBvaW50IGZvcm1hdCBmb3IgU2hvcnQgV2VpZXJzdHJhc3MgY3VydmVzCi0gKiAoTUJFRFRMU19FQ1BfRFBfU0VDUF9YWFggYW5kIE1CRURUTFNfRUNQX0RQX0JQX1hYWCkuCi0gKgotICogXHdhcm5pbmcgICAgIFdoaWxlIHRoaXMgZm9ybWF0IGlzIHN1cHBvcnRlZCBmb3IgYWxsIGNvbmNlcm5lZCBjdXJ2ZXMgZm9yCi0gKiAgICAgICAgICAgICAgd3JpdGluZywgd2hlbiBpdCBjb21lcyB0byBwYXJzaW5nLCBpdCBpcyBub3Qgc3VwcG9ydGVkIGZvciBhbGwKLSAqICAgICAgICAgICAgICBjdXJ2ZXMuIFNwZWNpZmljYWxseSwgcGFyc2luZyBjb21wcmVzc2VkIHBvaW50cyBvbgotICogICAgICAgICAgICAgIE1CRURUTFNfRUNQX0RQX1NFQ1AyMjRSMSBhbmQgTUJFRFRMU19FQ1BfRFBfU0VDUDIyNEsxIGlzIG5vdAotICogICAgICAgICAgICAgIHN1cHBvcnRlZC4KLSAqLwotI2RlZmluZSBNQkVEVExTX0VDUF9QRl9DT01QUkVTU0VEICAgICAgMQotCi0vKgotICogU29tZSBvdGhlciBjb25zdGFudHMgZnJvbSBSRkMgNDQ5MgotICovCi0jZGVmaW5lIE1CRURUTFNfRUNQX1RMU19OQU1FRF9DVVJWRSAgICAzICAgLyoqPCBUaGUgbmFtZWRfY3VydmUgb2YgRUNDdXJ2ZVR5cGUuICovCi0KLSNpZiBkZWZpbmVkKE1CRURUTFNfRUNQX1JFU1RBUlRBQkxFKQotLyoqCi0gKiBcYnJpZWYgICAgICAgICAgIFNldCB0aGUgbWF4aW11bSBudW1iZXIgb2YgYmFzaWMgb3BlcmF0aW9ucyBkb25lIGluIGEgcm93LgotICoKLSAqICAgICAgICAgICAgICAgICAgSWYgbW9yZSBvcGVyYXRpb25zIGFyZSBuZWVkZWQgdG8gY29tcGxldGUgYSBjb21wdXRhdGlvbiwKLSAqICAgICAgICAgICAgICAgICAgI01CRURUTFNfRVJSX0VDUF9JTl9QUk9HUkVTUyB3aWxsIGJlIHJldHVybmVkIGJ5IHRoZQotICogICAgICAgICAgICAgICAgICBmdW5jdGlvbiBwZXJmb3JtaW5nIHRoZSBjb21wdXRhdGlvbi4gSXQgaXMgdGhlbiB0aGUKLSAqICAgICAgICAgICAgICAgICAgY2FsbGVyJ3MgcmVzcG9uc2liaWxpdHkgdG8gZWl0aGVyIGNhbGwgYWdhaW4gd2l0aCB0aGUgc2FtZQotICogICAgICAgICAgICAgICAgICBwYXJhbWV0ZXJzIHVudGlsIGl0IHJldHVybnMgMCBvciBhbiBlcnJvciBjb2RlOyBvciB0byBmcmVlCi0gKiAgICAgICAgICAgICAgICAgIHRoZSByZXN0YXJ0IGNvbnRleHQgaWYgdGhlIG9wZXJhdGlvbiBpcyB0byBiZSBhYm9ydGVkLgotICoKLSAqICAgICAgICAgICAgICAgICAgSXQgaXMgc3RyaWN0bHkgcmVxdWlyZWQgdGhhdCBhbGwgaW5wdXQgcGFyYW1ldGVycyBhbmQgdGhlCi0gKiAgICAgICAgICAgICAgICAgIHJlc3RhcnQgY29udGV4dCBiZSB0aGUgc2FtZSBvbiBzdWNjZXNzaXZlIGNhbGxzIGZvciB0aGUKLSAqICAgICAgICAgICAgICAgICAgc2FtZSBvcGVyYXRpb24sIGJ1dCBvdXRwdXQgcGFyYW1ldGVycyBuZWVkIG5vdCBiZSB0aGUKLSAqICAgICAgICAgICAgICAgICAgc2FtZTsgdGhleSBtdXN0IG5vdCBiZSB1c2VkIHVudGlsIHRoZSBmdW5jdGlvbiBmaW5hbGx5Ci0gKiAgICAgICAgICAgICAgICAgIHJldHVybnMgMC4KLSAqCi0gKiAgICAgICAgICAgICAgICAgIFRoaXMgb25seSBhcHBsaWVzIHRvIGZ1bmN0aW9ucyB3aG9zZSBkb2N1bWVudGF0aW9uCi0gKiAgICAgICAgICAgICAgICAgIG1lbnRpb25zIHRoZXkgbWF5IHJldHVybiAjTUJFRFRMU19FUlJfRUNQX0lOX1BST0dSRVNTIChvcgotICogICAgICAgICAgICAgICAgICAjTUJFRFRMU19FUlJfU1NMX0NSWVBUT19JTl9QUk9HUkVTUyBmb3IgZnVuY3Rpb25zIGluIHRoZQotICogICAgICAgICAgICAgICAgICBTU0wgbW9kdWxlKS4gRm9yIGZ1bmN0aW9ucyB0aGF0IGFjY2VwdCBhICJyZXN0YXJ0IGNvbnRleHQiCi0gKiAgICAgICAgICAgICAgICAgIGFyZ3VtZW50LCBwYXNzaW5nIE5VTEwgZGlzYWJsZXMgcmVzdGFydCBhbmQgbWFrZXMgdGhlCi0gKiAgICAgICAgICAgICAgICAgIGZ1bmN0aW9uIGVxdWl2YWxlbnQgdG8gdGhlIGZ1bmN0aW9uIHdpdGggdGhlIHNhbWUgbmFtZQotICogICAgICAgICAgICAgICAgICB3aXRoIFxjIF9yZXN0YXJ0YWJsZSByZW1vdmVkLiBGb3IgZnVuY3Rpb25zIGluIHRoZSBFQ0RICi0gKiAgICAgICAgICAgICAgICAgIG1vZHVsZSwgcmVzdGFydCBpcyBkaXNhYmxlZCB1bmxlc3MgdGhlIGZ1bmN0aW9uIGFjY2VwdHMKLSAqICAgICAgICAgICAgICAgICAgYW4gIkVDREggY29udGV4dCIgYXJndW1lbnQgYW5kCi0gKiAgICAgICAgICAgICAgICAgIG1iZWR0bHNfZWNkaF9lbmFibGVfcmVzdGFydCgpIHdhcyBwcmV2aW91c2x5IGNhbGxlZCBvbgotICogICAgICAgICAgICAgICAgICB0aGF0IGNvbnRleHQuIEZvciBmdW5jdGlvbiBpbiB0aGUgU1NMIG1vZHVsZSwgcmVzdGFydCBpcwotICogICAgICAgICAgICAgICAgICBvbmx5IGVuYWJsZWQgZm9yIHNwZWNpZmljIHNpZGVzIGFuZCBrZXkgZXhjaGFuZ2VzCi0gKiAgICAgICAgICAgICAgICAgIChjdXJyZW50bHkgb25seSBmb3IgY2xpZW50cyBhbmQgRUNESEUtRUNEU0EpLgotICoKLSAqIFx3YXJuaW5nICAgICAgICAgVXNpbmcgdGhlIFBTQSBpbnRlcnJ1cHRpYmxlIGludGVyZmFjZXMgd2l0aCBrZXlzIGluIGxvY2FsCi0gKiAgICAgICAgICAgICAgICAgIHN0b3JhZ2UgYW5kIG5vIGFjY2VsZXJhdG9yIGRyaXZlciB3aWxsIGFsc28gY2FsbCB0aGlzCi0gKiAgICAgICAgICAgICAgICAgIGZ1bmN0aW9uIHRvIHNldCB0aGUgdmFsdWVzIHNwZWNpZmllZCB2aWEgdGhvc2UgaW50ZXJmYWNlcywKLSAqICAgICAgICAgICAgICAgICAgb3ZlcndyaXRpbmcgdmFsdWVzIHByZXZpb3VzbHkgc2V0LiBDYXJlIHNob3VsZCBiZSB0YWtlbiBpZgotICogICAgICAgICAgICAgICAgICBtaXhpbmcgdGhlc2UgdHdvIGludGVyZmFjZXMuCi0gKgotICogXHBhcmFtIG1heF9vcHMgICBNYXhpbXVtIG51bWJlciBvZiBiYXNpYyBvcGVyYXRpb25zIGRvbmUgaW4gYSByb3cuCi0gKiAgICAgICAgICAgICAgICAgIERlZmF1bHQ6IDAgKHVubGltaXRlZCkuCi0gKiAgICAgICAgICAgICAgICAgIExvd2VyIChub24temVybykgdmFsdWVzIG1lYW4gRUNDIGZ1bmN0aW9ucyB3aWxsIGJsb2NrIGZvcgotICogICAgICAgICAgICAgICAgICBhIGxlc3NlciBtYXhpbXVtIGFtb3VudCBvZiB0aW1lLgotICoKLSAqIFxub3RlICAgICAgICAgICAgQSAiYmFzaWMgb3BlcmF0aW9uIiBpcyBkZWZpbmVkIGFzIGEgcm91Z2ggZXF1aXZhbGVudCBvZiBhCi0gKiAgICAgICAgICAgICAgICAgIG11bHRpcGxpY2F0aW9uIGluIEdGKHApIGZvciB0aGUgTklTVCBQLTI1NiBjdXJ2ZS4KLSAqICAgICAgICAgICAgICAgICAgQXMgYW4gaW5kaWNhdGlvbiwgd2l0aCBkZWZhdWx0IHNldHRpbmdzLCBhIHNjYWxhcgotICogICAgICAgICAgICAgICAgICBtdWx0aXBsaWNhdGlvbiAoZnVsbCBydW4gb2YgXGMgbWJlZHRsc19lY3BfbXVsKCkpIGlzOgotICogICAgICAgICAgICAgICAgICAtIGFib3V0IDMzMDAgYmFzaWMgb3BlcmF0aW9ucyBmb3IgUC0yNTYKLSAqICAgICAgICAgICAgICAgICAgLSBhYm91dCA5NDAwIGJhc2ljIG9wZXJhdGlvbnMgZm9yIFAtMzg0Ci0gKgotICogXG5vdGUgICAgICAgICAgICBWZXJ5IGxvdyB2YWx1ZXMgYXJlIG5vdCBhbHdheXMgcmVzcGVjdGVkOiBzb21ldGltZXMKLSAqICAgICAgICAgICAgICAgICAgZnVuY3Rpb25zIG5lZWQgdG8gYmxvY2sgZm9yIGEgbWluaW11bSBudW1iZXIgb2YKLSAqICAgICAgICAgICAgICAgICAgb3BlcmF0aW9ucywgYW5kIHdpbGwgZG8gc28gZXZlbiBpZiBtYXhfb3BzIGlzIHNldCB0byBhCi0gKiAgICAgICAgICAgICAgICAgIGxvd2VyIHZhbHVlLiAgVGhhdCBtaW5pbXVtIGRlcGVuZHMgb24gdGhlIGN1cnZlIHNpemUsIGFuZAotICogICAgICAgICAgICAgICAgICBjYW4gYmUgbWFkZSBsb3dlciBieSBkZWNyZWFzaW5nIHRoZSB2YWx1ZSBvZgotICogICAgICAgICAgICAgICAgICBcYyBNQkVEVExTX0VDUF9XSU5ET1dfU0laRS4gIEFzIGFuIGluZGljYXRpb24sIGhlcmUgaXMgdGhlCi0gKiAgICAgICAgICAgICAgICAgIGxvd2VzdCBlZmZlY3RpdmUgdmFsdWUgZm9yIHZhcmlvdXMgY3VydmVzIGFuZCB2YWx1ZXMgb2YKLSAqICAgICAgICAgICAgICAgICAgdGhhdCBwYXJhbWV0ZXIgKHcgZm9yIHNob3J0KToKLSAqICAgICAgICAgICAgICAgICAgICAgICAgICB3PTYgICAgIHc9NSAgICAgdz00ICAgICB3PTMgICAgIHc9MgotICogICAgICAgICAgICAgICAgICBQLTI1NiAgIDIwOCAgICAgMjA4ICAgICAxNjAgICAgIDEzNiAgICAgMTI0Ci0gKiAgICAgICAgICAgICAgICAgIFAtMzg0ICAgNjgyICAgICA0MTYgICAgIDMyMCAgICAgMjcyICAgICAyNDgKLSAqICAgICAgICAgICAgICAgICAgUC01MjEgIDEzNjQgICAgIDgzMiAgICAgNjQwICAgICA1NDQgICAgIDQ5NgotICoKLSAqIFxub3RlICAgICAgICAgICAgVGhpcyBzZXR0aW5nIGlzIGN1cnJlbnRseSBpZ25vcmVkIGJ5IEN1cnZlMjU1MTkuCi0gKi8KLXZvaWQgbWJlZHRsc19lY3Bfc2V0X21heF9vcHModW5zaWduZWQgbWF4X29wcyk7Ci0KLS8qKgotICogXGJyaWVmICAgICAgICAgICBDaGVjayBpZiByZXN0YXJ0IGlzIGVuYWJsZWQgKG1heF9vcHMgIT0gMCkKLSAqCi0gKiBccmV0dXJuICAgICAgICAgIFxjIDAgaWYgXGMgbWF4X29wcyA9PSAwIChyZXN0YXJ0IGRpc2FibGVkKQotICogXHJldHVybiAgICAgICAgICBcYyAxIG90aGVyd2lzZSAocmVzdGFydCBlbmFibGVkKQotICovCi1pbnQgbWJlZHRsc19lY3BfcmVzdGFydF9pc19lbmFibGVkKHZvaWQpOwotI2VuZGlmIC8qIE1CRURUTFNfRUNQX1JFU1RBUlRBQkxFICovCi0KLS8qCi0gKiBHZXQgdGhlIHR5cGUgb2YgYSBjdXJ2ZQotICovCi1tYmVkdGxzX2VjcF9jdXJ2ZV90eXBlIG1iZWR0bHNfZWNwX2dldF90eXBlKGNvbnN0IG1iZWR0bHNfZWNwX2dyb3VwICpncnApOwotCi0vKioKLSAqIFxicmllZiAgICAgICAgICAgVGhpcyBmdW5jdGlvbiByZXRyaWV2ZXMgdGhlIGluZm9ybWF0aW9uIGRlZmluZWQgaW4KLSAqICAgICAgICAgICAgICAgICAgbWJlZHRsc19lY3BfY3VydmVfaW5mbygpIGZvciBhbGwgc3VwcG9ydGVkIGN1cnZlcy4KLSAqCi0gKiBcbm90ZSAgICAgICAgICAgIFRoaXMgZnVuY3Rpb24gcmV0dXJucyBpbmZvcm1hdGlvbiBhYm91dCBhbGwgY3VydmVzCi0gKiAgICAgICAgICAgICAgICAgIHN1cHBvcnRlZCBieSB0aGUgbGlicmFyeS4gU29tZSBjdXJ2ZXMgbWF5IG5vdCBiZQotICogICAgICAgICAgICAgICAgICBzdXBwb3J0ZWQgZm9yIGFsbCBhbGdvcml0aG1zLiBDYWxsIG1iZWR0bHNfZWNkaF9jYW5fZG8oKQotICogICAgICAgICAgICAgICAgICBvciBtYmVkdGxzX2VjZHNhX2Nhbl9kbygpIHRvIGNoZWNrIGlmIGEgY3VydmUgaXMKLSAqICAgICAgICAgICAgICAgICAgc3VwcG9ydGVkIGZvciBFQ0RIIG9yIEVDRFNBLgotICoKLSAqIFxyZXR1cm4gICAgICAgICAgQSBzdGF0aWNhbGx5IGFsbG9jYXRlZCBhcnJheS4gVGhlIGxhc3QgZW50cnkgaXMgMC4KLSAqLwotY29uc3QgbWJlZHRsc19lY3BfY3VydmVfaW5mbyAqbWJlZHRsc19lY3BfY3VydmVfbGlzdCh2b2lkKTsKLQotLyoqCi0gKiBcYnJpZWYgICAgICAgICAgIFRoaXMgZnVuY3Rpb24gcmV0cmlldmVzIHRoZSBsaXN0IG9mIGludGVybmFsIGdyb3VwCi0gKiAgICAgICAgICAgICAgICAgIGlkZW50aWZpZXJzIG9mIGFsbCBzdXBwb3J0ZWQgY3VydmVzIGluIHRoZSBvcmRlciBvZgotICogICAgICAgICAgICAgICAgICBwcmVmZXJlbmNlLgotICoKLSAqIFxub3RlICAgICAgICAgICAgVGhpcyBmdW5jdGlvbiByZXR1cm5zIGluZm9ybWF0aW9uIGFib3V0IGFsbCBjdXJ2ZXMKLSAqICAgICAgICAgICAgICAgICAgc3VwcG9ydGVkIGJ5IHRoZSBsaWJyYXJ5LiBTb21lIGN1cnZlcyBtYXkgbm90IGJlCi0gKiAgICAgICAgICAgICAgICAgIHN1cHBvcnRlZCBmb3IgYWxsIGFsZ29yaXRobXMuIENhbGwgbWJlZHRsc19lY2RoX2Nhbl9kbygpCi0gKiAgICAgICAgICAgICAgICAgIG9yIG1iZWR0bHNfZWNkc2FfY2FuX2RvKCkgdG8gY2hlY2sgaWYgYSBjdXJ2ZSBpcwotICogICAgICAgICAgICAgICAgICBzdXBwb3J0ZWQgZm9yIEVDREggb3IgRUNEU0EuCi0gKgotICogXHJldHVybiAgICAgICAgICBBIHN0YXRpY2FsbHkgYWxsb2NhdGVkIGFycmF5LAotICogICAgICAgICAgICAgICAgICB0ZXJtaW5hdGVkIHdpdGggTUJFRFRMU19FQ1BfRFBfTk9ORS4KLSAqLwotY29uc3QgbWJlZHRsc19lY3BfZ3JvdXBfaWQgKm1iZWR0bHNfZWNwX2dycF9pZF9saXN0KHZvaWQpOwotCi0vKioKLSAqIFxicmllZiAgICAgICAgICAgVGhpcyBmdW5jdGlvbiByZXRyaWV2ZXMgY3VydmUgaW5mb3JtYXRpb24gZnJvbSBhbiBpbnRlcm5hbAotICogICAgICAgICAgICAgICAgICBncm91cCBpZGVudGlmaWVyLgotICoKLSAqIFxwYXJhbSBncnBfaWQgICAgQW4gXGMgTUJFRFRMU19FQ1BfRFBfWFhYIHZhbHVlLgotICoKLSAqIFxyZXR1cm4gICAgICAgICAgVGhlIGFzc29jaWF0ZWQgY3VydmUgaW5mb3JtYXRpb24gb24gc3VjY2Vzcy4KLSAqIFxyZXR1cm4gICAgICAgICAgTlVMTCBvbiBmYWlsdXJlLgotICovCi1jb25zdCBtYmVkdGxzX2VjcF9jdXJ2ZV9pbmZvICptYmVkdGxzX2VjcF9jdXJ2ZV9pbmZvX2Zyb21fZ3JwX2lkKG1iZWR0bHNfZWNwX2dyb3VwX2lkIGdycF9pZCk7Ci0KLS8qKgotICogXGJyaWVmICAgICAgICAgICBUaGlzIGZ1bmN0aW9uIHJldHJpZXZlcyBjdXJ2ZSBpbmZvcm1hdGlvbiBmcm9tIGEgVExTCi0gKiAgICAgICAgICAgICAgICAgIE5hbWVkQ3VydmUgdmFsdWUuCi0gKgotICogXHBhcmFtIHRsc19pZCAgICBBbiBcYyBNQkVEVExTX0VDUF9EUF9YWFggdmFsdWUuCi0gKgotICogXHJldHVybiAgICAgICAgICBUaGUgYXNzb2NpYXRlZCBjdXJ2ZSBpbmZvcm1hdGlvbiBvbiBzdWNjZXNzLgotICogXHJldHVybiAgICAgICAgICBOVUxMIG9uIGZhaWx1cmUuCi0gKi8KLWNvbnN0IG1iZWR0bHNfZWNwX2N1cnZlX2luZm8gKm1iZWR0bHNfZWNwX2N1cnZlX2luZm9fZnJvbV90bHNfaWQodWludDE2X3QgdGxzX2lkKTsKLQotLyoqCi0gKiBcYnJpZWYgICAgICAgICAgIFRoaXMgZnVuY3Rpb24gcmV0cmlldmVzIGN1cnZlIGluZm9ybWF0aW9uIGZyb20gYQotICogICAgICAgICAgICAgICAgICBodW1hbi1yZWFkYWJsZSBuYW1lLgotICoKLSAqIFxwYXJhbSBuYW1lICAgICAgVGhlIGh1bWFuLXJlYWRhYmxlIG5hbWUuCi0gKgotICogXHJldHVybiAgICAgICAgICBUaGUgYXNzb2NpYXRlZCBjdXJ2ZSBpbmZvcm1hdGlvbiBvbiBzdWNjZXNzLgotICogXHJldHVybiAgICAgICAgICBOVUxMIG9uIGZhaWx1cmUuCi0gKi8KLWNvbnN0IG1iZWR0bHNfZWNwX2N1cnZlX2luZm8gKm1iZWR0bHNfZWNwX2N1cnZlX2luZm9fZnJvbV9uYW1lKGNvbnN0IGNoYXIgKm5hbWUpOwotCi0vKioKLSAqIFxicmllZiAgICAgICAgICAgVGhpcyBmdW5jdGlvbiBpbml0aWFsaXplcyBhIHBvaW50IGFzIHplcm8uCi0gKgotICogXHBhcmFtIHB0ICAgICAgICBUaGUgcG9pbnQgdG8gaW5pdGlhbGl6ZS4KLSAqLwotdm9pZCBtYmVkdGxzX2VjcF9wb2ludF9pbml0KG1iZWR0bHNfZWNwX3BvaW50ICpwdCk7Ci0KLS8qKgotICogXGJyaWVmICAgICAgICAgICBUaGlzIGZ1bmN0aW9uIGluaXRpYWxpemVzIGFuIEVDUCBncm91cCBjb250ZXh0Ci0gKiAgICAgICAgICAgICAgICAgIHdpdGhvdXQgbG9hZGluZyBhbnkgZG9tYWluIHBhcmFtZXRlcnMuCi0gKgotICogXG5vdGUgICAgICAgICAgICBBZnRlciB0aGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCwgZG9tYWluIHBhcmFtZXRlcnMKLSAqICAgICAgICAgICAgICAgICAgZm9yIHZhcmlvdXMgRUNQIGdyb3VwcyBjYW4gYmUgbG9hZGVkIHRocm91Z2ggdGhlCi0gKiAgICAgICAgICAgICAgICAgIG1iZWR0bHNfZWNwX2dyb3VwX2xvYWQoKSBvciBtYmVkdGxzX2VjcF90bHNfcmVhZF9ncm91cCgpCi0gKiAgICAgICAgICAgICAgICAgIGZ1bmN0aW9ucy4KLSAqLwotdm9pZCBtYmVkdGxzX2VjcF9ncm91cF9pbml0KG1iZWR0bHNfZWNwX2dyb3VwICpncnApOwotCi0vKioKLSAqIFxicmllZiAgICAgICAgICAgVGhpcyBmdW5jdGlvbiBpbml0aWFsaXplcyBhIGtleSBwYWlyIGFzIGFuIGludmFsaWQgb25lLgotICoKLSAqIFxwYXJhbSBrZXkgICAgICAgVGhlIGtleSBwYWlyIHRvIGluaXRpYWxpemUuCi0gKi8KLXZvaWQgbWJlZHRsc19lY3Bfa2V5cGFpcl9pbml0KG1iZWR0bHNfZWNwX2tleXBhaXIgKmtleSk7Ci0KLS8qKgotICogXGJyaWVmICAgICAgICAgICBUaGlzIGZ1bmN0aW9uIGZyZWVzIHRoZSBjb21wb25lbnRzIG9mIGEgcG9pbnQuCi0gKgotICogXHBhcmFtIHB0ICAgICAgICBUaGUgcG9pbnQgdG8gZnJlZS4KLSAqLwotdm9pZCBtYmVkdGxzX2VjcF9wb2ludF9mcmVlKG1iZWR0bHNfZWNwX3BvaW50ICpwdCk7Ci0KLS8qKgotICogXGJyaWVmICAgICAgICAgICBUaGlzIGZ1bmN0aW9uIGZyZWVzIHRoZSBjb21wb25lbnRzIG9mIGFuIEVDUCBncm91cC4KLSAqCi0gKiBccGFyYW0gZ3JwICAgICAgIFRoZSBncm91cCB0byBmcmVlLiBUaGlzIG1heSBiZSBcYyBOVUxMLCBpbiB3aGljaAotICogICAgICAgICAgICAgICAgICBjYXNlIHRoaXMgZnVuY3Rpb24gcmV0dXJucyBpbW1lZGlhdGVseS4gSWYgaXQgaXMgbm90Ci0gKiAgICAgICAgICAgICAgICAgIFxjIE5VTEwsIGl0IG11c3QgcG9pbnQgdG8gYW4gaW5pdGlhbGl6ZWQgRUNQIGdyb3VwLgotICovCi12b2lkIG1iZWR0bHNfZWNwX2dyb3VwX2ZyZWUobWJlZHRsc19lY3BfZ3JvdXAgKmdycCk7Ci0KLS8qKgotICogXGJyaWVmICAgICAgICAgICBUaGlzIGZ1bmN0aW9uIGZyZWVzIHRoZSBjb21wb25lbnRzIG9mIGEga2V5IHBhaXIuCi0gKgotICogXHBhcmFtIGtleSAgICAgICBUaGUga2V5IHBhaXIgdG8gZnJlZS4gVGhpcyBtYXkgYmUgXGMgTlVMTCwgaW4gd2hpY2gKLSAqICAgICAgICAgICAgICAgICAgY2FzZSB0aGlzIGZ1bmN0aW9uIHJldHVybnMgaW1tZWRpYXRlbHkuIElmIGl0IGlzIG5vdAotICogICAgICAgICAgICAgICAgICBcYyBOVUxMLCBpdCBtdXN0IHBvaW50IHRvIGFuIGluaXRpYWxpemVkIEVDUCBrZXkgcGFpci4KLSAqLwotdm9pZCBtYmVkdGxzX2VjcF9rZXlwYWlyX2ZyZWUobWJlZHRsc19lY3Bfa2V5cGFpciAqa2V5KTsKLQotI2lmIGRlZmluZWQoTUJFRFRMU19FQ1BfUkVTVEFSVEFCTEUpCi0vKioKLSAqIFxicmllZiAgICAgICAgICAgSW5pdGlhbGl6ZSBhIHJlc3RhcnQgY29udGV4dC4KLSAqCi0gKiBccGFyYW0gY3R4ICAgICAgIFRoZSByZXN0YXJ0IGNvbnRleHQgdG8gaW5pdGlhbGl6ZS4gVGhpcyBtdXN0Ci0gKiAgICAgICAgICAgICAgICAgIG5vdCBiZSBcYyBOVUxMLgotICovCi12b2lkIG1iZWR0bHNfZWNwX3Jlc3RhcnRfaW5pdChtYmVkdGxzX2VjcF9yZXN0YXJ0X2N0eCAqY3R4KTsKLQotLyoqCi0gKiBcYnJpZWYgICAgICAgICAgIEZyZWUgdGhlIGNvbXBvbmVudHMgb2YgYSByZXN0YXJ0IGNvbnRleHQuCi0gKgotICogXHBhcmFtIGN0eCAgICAgICBUaGUgcmVzdGFydCBjb250ZXh0IHRvIGZyZWUuIFRoaXMgbWF5IGJlIFxjIE5VTEwsIGluIHdoaWNoCi0gKiAgICAgICAgICAgICAgICAgIGNhc2UgdGhpcyBmdW5jdGlvbiByZXR1cm5zIGltbWVkaWF0ZWx5LiBJZiBpdCBpcyBub3QKLSAqICAgICAgICAgICAgICAgICAgXGMgTlVMTCwgaXQgbXVzdCBwb2ludCB0byBhbiBpbml0aWFsaXplZCByZXN0YXJ0IGNvbnRleHQuCi0gKi8KLXZvaWQgbWJlZHRsc19lY3BfcmVzdGFydF9mcmVlKG1iZWR0bHNfZWNwX3Jlc3RhcnRfY3R4ICpjdHgpOwotI2VuZGlmIC8qIE1CRURUTFNfRUNQX1JFU1RBUlRBQkxFICovCi0KLS8qKgotICogXGJyaWVmICAgICAgICAgICBUaGlzIGZ1bmN0aW9uIGNvcGllcyB0aGUgY29udGVudHMgb2YgcG9pbnQgXHAgUSBpbnRvCi0gKiAgICAgICAgICAgICAgICAgIHBvaW50IFxwIFAuCi0gKgotICogXHBhcmFtIFAgICAgICAgICBUaGUgZGVzdGluYXRpb24gcG9pbnQuIFRoaXMgbXVzdCBiZSBpbml0aWFsaXplZC4KLSAqIFxwYXJhbSBRICAgICAgICAgVGhlIHNvdXJjZSBwb2ludC4gVGhpcyBtdXN0IGJlIGluaXRpYWxpemVkLgotICoKLSAqIFxyZXR1cm4gICAgICAgICAgXGMgMCBvbiBzdWNjZXNzLgotICogXHJldHVybiAgICAgICAgICAjTUJFRFRMU19FUlJfTVBJX0FMTE9DX0ZBSUxFRCBvbiBtZW1vcnktYWxsb2NhdGlvbiBmYWlsdXJlLgotICogXHJldHVybiAgICAgICAgICBBbm90aGVyIG5lZ2F0aXZlIGVycm9yIGNvZGUgZm9yIG90aGVyIGtpbmRzIG9mIGZhaWx1cmUuCi0gKi8KLWludCBtYmVkdGxzX2VjcF9jb3B5KG1iZWR0bHNfZWNwX3BvaW50ICpQLCBjb25zdCBtYmVkdGxzX2VjcF9wb2ludCAqUSk7Ci0KLS8qKgotICogXGJyaWVmICAgICAgICAgICBUaGlzIGZ1bmN0aW9uIGNvcGllcyB0aGUgY29udGVudHMgb2YgZ3JvdXAgXHAgc3JjIGludG8KLSAqICAgICAgICAgICAgICAgICAgZ3JvdXAgXHAgZHN0LgotICoKLSAqIFxwYXJhbSBkc3QgICAgICAgVGhlIGRlc3RpbmF0aW9uIGdyb3VwLiBUaGlzIG11c3QgYmUgaW5pdGlhbGl6ZWQuCi0gKiBccGFyYW0gc3JjICAgICAgIFRoZSBzb3VyY2UgZ3JvdXAuIFRoaXMgbXVzdCBiZSBpbml0aWFsaXplZC4KLSAqCi0gKiBccmV0dXJuICAgICAgICAgIFxjIDAgb24gc3VjY2Vzcy4KLSAqIFxyZXR1cm4gICAgICAgICAgI01CRURUTFNfRVJSX01QSV9BTExPQ19GQUlMRUQgb24gbWVtb3J5LWFsbG9jYXRpb24gZmFpbHVyZS4KLSAqIFxyZXR1cm4gICAgICAgICAgQW5vdGhlciBuZWdhdGl2ZSBlcnJvciBjb2RlIG9uIG90aGVyIGtpbmRzIG9mIGZhaWx1cmUuCi0gKi8KLWludCBtYmVkdGxzX2VjcF9ncm91cF9jb3B5KG1iZWR0bHNfZWNwX2dyb3VwICpkc3QsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBtYmVkdGxzX2VjcF9ncm91cCAqc3JjKTsKLQotLyoqCi0gKiBcYnJpZWYgICAgICAgICAgIFRoaXMgZnVuY3Rpb24gc2V0cyBhIHBvaW50IHRvIHRoZSBwb2ludCBhdCBpbmZpbml0eS4KLSAqCi0gKiBccGFyYW0gcHQgICAgICAgIFRoZSBwb2ludCB0byBzZXQuIFRoaXMgbXVzdCBiZSBpbml0aWFsaXplZC4KLSAqCi0gKiBccmV0dXJuICAgICAgICAgIFxjIDAgb24gc3VjY2Vzcy4KLSAqIFxyZXR1cm4gICAgICAgICAgI01CRURUTFNfRVJSX01QSV9BTExPQ19GQUlMRUQgb24gbWVtb3J5LWFsbG9jYXRpb24gZmFpbHVyZS4KLSAqIFxyZXR1cm4gICAgICAgICAgQW5vdGhlciBuZWdhdGl2ZSBlcnJvciBjb2RlIG9uIG90aGVyIGtpbmRzIG9mIGZhaWx1cmUuCi0gKi8KLWludCBtYmVkdGxzX2VjcF9zZXRfemVybyhtYmVkdGxzX2VjcF9wb2ludCAqcHQpOwotCi0vKioKLSAqIFxicmllZiAgICAgICAgICAgVGhpcyBmdW5jdGlvbiBjaGVja3MgaWYgYSBwb2ludCBpcyB0aGUgcG9pbnQgYXQgaW5maW5pdHkuCi0gKgotICogXHBhcmFtIHB0ICAgICAgICBUaGUgcG9pbnQgdG8gdGVzdC4gVGhpcyBtdXN0IGJlIGluaXRpYWxpemVkLgotICoKLSAqIFxyZXR1cm4gICAgICAgICAgXGMgMSBpZiB0aGUgcG9pbnQgaXMgemVyby4KLSAqIFxyZXR1cm4gICAgICAgICAgXGMgMCBpZiB0aGUgcG9pbnQgaXMgbm9uLXplcm8uCi0gKiBccmV0dXJuICAgICAgICAgIEEgbmVnYXRpdmUgZXJyb3IgY29kZSBvbiBmYWlsdXJlLgotICovCi1pbnQgbWJlZHRsc19lY3BfaXNfemVybyhtYmVkdGxzX2VjcF9wb2ludCAqcHQpOwotCi0vKioKLSAqIFxicmllZiAgICAgICAgICAgVGhpcyBmdW5jdGlvbiBjb21wYXJlcyB0d28gcG9pbnRzLgotICoKLSAqIFxub3RlICAgICAgICAgICAgVGhpcyBhc3N1bWVzIHRoYXQgdGhlIHBvaW50cyBhcmUgbm9ybWFsaXplZC4gT3RoZXJ3aXNlLAotICogICAgICAgICAgICAgICAgICB0aGV5IG1heSBjb21wYXJlIGFzICJub3QgZXF1YWwiIGV2ZW4gaWYgdGhleSBhcmUuCi0gKgotICogXHBhcmFtIFAgICAgICAgICBUaGUgZmlyc3QgcG9pbnQgdG8gY29tcGFyZS4gVGhpcyBtdXN0IGJlIGluaXRpYWxpemVkLgotICogXHBhcmFtIFEgICAgICAgICBUaGUgc2Vjb25kIHBvaW50IHRvIGNvbXBhcmUuIFRoaXMgbXVzdCBiZSBpbml0aWFsaXplZC4KLSAqCi0gKiBccmV0dXJuICAgICAgICAgIFxjIDAgaWYgdGhlIHBvaW50cyBhcmUgZXF1YWwuCi0gKiBccmV0dXJuICAgICAgICAgICNNQkVEVExTX0VSUl9FQ1BfQkFEX0lOUFVUX0RBVEEgaWYgdGhlIHBvaW50cyBhcmUgbm90IGVxdWFsLgotICovCi1pbnQgbWJlZHRsc19lY3BfcG9pbnRfY21wKGNvbnN0IG1iZWR0bHNfZWNwX3BvaW50ICpQLAotICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBtYmVkdGxzX2VjcF9wb2ludCAqUSk7Ci0KLS8qKgotICogXGJyaWVmICAgICAgICAgICBUaGlzIGZ1bmN0aW9uIGltcG9ydHMgYSBub24temVybyBwb2ludCBmcm9tIHR3byBBU0NJSQotICogICAgICAgICAgICAgICAgICBzdHJpbmdzLgotICoKLSAqIFxwYXJhbSBQICAgICAgICAgVGhlIGRlc3RpbmF0aW9uIHBvaW50LiBUaGlzIG11c3QgYmUgaW5pdGlhbGl6ZWQuCi0gKiBccGFyYW0gcmFkaXggICAgIFRoZSBudW1lcmljIGJhc2Ugb2YgdGhlIGlucHV0LgotICogXHBhcmFtIHggICAgICAgICBUaGUgZmlyc3QgYWZmaW5lIGNvb3JkaW5hdGUsIGFzIGEgbnVsbC10ZXJtaW5hdGVkIHN0cmluZy4KLSAqIFxwYXJhbSB5ICAgICAgICAgVGhlIHNlY29uZCBhZmZpbmUgY29vcmRpbmF0ZSwgYXMgYSBudWxsLXRlcm1pbmF0ZWQgc3RyaW5nLgotICoKLSAqIFxyZXR1cm4gICAgICAgICAgXGMgMCBvbiBzdWNjZXNzLgotICogXHJldHVybiAgICAgICAgICBBbiBcYyBNQkVEVExTX0VSUl9NUElfWFhYIGVycm9yIGNvZGUgb24gZmFpbHVyZS4KLSAqLwotaW50IG1iZWR0bHNfZWNwX3BvaW50X3JlYWRfc3RyaW5nKG1iZWR0bHNfZWNwX3BvaW50ICpQLCBpbnQgcmFkaXgsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqeCwgY29uc3QgY2hhciAqeSk7Ci0KLS8qKgotICogXGJyaWVmICAgICAgICAgICBUaGlzIGZ1bmN0aW9uIGV4cG9ydHMgYSBwb2ludCBpbnRvIHVuc2lnbmVkIGJpbmFyeSBkYXRhLgotICoKLSAqIFxwYXJhbSBncnAgICAgICAgVGhlIGdyb3VwIHRvIHdoaWNoIHRoZSBwb2ludCBzaG91bGQgYmVsb25nLgotICogICAgICAgICAgICAgICAgICBUaGlzIG11c3QgYmUgaW5pdGlhbGl6ZWQgYW5kIGhhdmUgZ3JvdXAgcGFyYW1ldGVycwotICogICAgICAgICAgICAgICAgICBzZXQsIGZvciBleGFtcGxlIHRocm91Z2ggbWJlZHRsc19lY3BfZ3JvdXBfbG9hZCgpLgotICogXHBhcmFtIFAgICAgICAgICBUaGUgcG9pbnQgdG8gZXhwb3J0LiBUaGlzIG11c3QgYmUgaW5pdGlhbGl6ZWQuCi0gKiBccGFyYW0gZm9ybWF0ICAgIFRoZSBwb2ludCBmb3JtYXQuIFRoaXMgbXVzdCBiZSBlaXRoZXIKLSAqICAgICAgICAgICAgICAgICAgI01CRURUTFNfRUNQX1BGX0NPTVBSRVNTRUQgb3IgI01CRURUTFNfRUNQX1BGX1VOQ09NUFJFU1NFRC4KLSAqICAgICAgICAgICAgICAgICAgKEZvciBncm91cHMgd2l0aG91dCB0aGVzZSBmb3JtYXRzLCB0aGlzIHBhcmFtZXRlciBpcwotICogICAgICAgICAgICAgICAgICBpZ25vcmVkLiBCdXQgaXQgc3RpbGwgaGFzIHRvIGJlIGVpdGhlciBvZiB0aGUgYWJvdmUKLSAqICAgICAgICAgICAgICAgICAgdmFsdWVzLikKLSAqIFxwYXJhbSBvbGVuICAgICAgVGhlIGFkZHJlc3MgYXQgd2hpY2ggdG8gc3RvcmUgdGhlIGxlbmd0aCBvZgotICogICAgICAgICAgICAgICAgICB0aGUgb3V0cHV0IGluIEJ5dGVzLiBUaGlzIG11c3Qgbm90IGJlIFxjIE5VTEwuCi0gKiBccGFyYW0gYnVmICAgICAgIFRoZSBvdXRwdXQgYnVmZmVyLiBUaGlzIG11c3QgYmUgYSB3cml0YWJsZSBidWZmZXIKLSAqICAgICAgICAgICAgICAgICAgb2YgbGVuZ3RoIFxwIGJ1ZmxlbiBCeXRlcy4KLSAqIFxwYXJhbSBidWZsZW4gICAgVGhlIGxlbmd0aCBvZiB0aGUgb3V0cHV0IGJ1ZmZlciBccCBidWYgaW4gQnl0ZXMuCi0gKgotICogXHJldHVybiAgICAgICAgICBcYyAwIG9uIHN1Y2Nlc3MuCi0gKiBccmV0dXJuICAgICAgICAgICNNQkVEVExTX0VSUl9FQ1BfQlVGRkVSX1RPT19TTUFMTCBpZiB0aGUgb3V0cHV0IGJ1ZmZlcgotICogICAgICAgICAgICAgICAgICBpcyB0b28gc21hbGwgdG8gaG9sZCB0aGUgcG9pbnQuCi0gKiBccmV0dXJuICAgICAgICAgICNNQkVEVExTX0VSUl9FQ1BfRkVBVFVSRV9VTkFWQUlMQUJMRSBpZiB0aGUgcG9pbnQgZm9ybWF0Ci0gKiAgICAgICAgICAgICAgICAgIG9yIHRoZSBleHBvcnQgZm9yIHRoZSBnaXZlbiBncm91cCBpcyBub3QgaW1wbGVtZW50ZWQuCi0gKiBccmV0dXJuICAgICAgICAgIEFub3RoZXIgbmVnYXRpdmUgZXJyb3IgY29kZSBvbiBvdGhlciBraW5kcyBvZiBmYWlsdXJlLgotICovCi1pbnQgbWJlZHRsc19lY3BfcG9pbnRfd3JpdGVfYmluYXJ5KGNvbnN0IG1iZWR0bHNfZWNwX2dyb3VwICpncnAsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IG1iZWR0bHNfZWNwX3BvaW50ICpQLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgZm9ybWF0LCBzaXplX3QgKm9sZW4sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGNoYXIgKmJ1Ziwgc2l6ZV90IGJ1Zmxlbik7Ci0KLS8qKgotICogXGJyaWVmICAgICAgICAgICBUaGlzIGZ1bmN0aW9uIGltcG9ydHMgYSBwb2ludCBmcm9tIHVuc2lnbmVkIGJpbmFyeSBkYXRhLgotICoKLSAqIFxub3RlICAgICAgICAgICAgVGhpcyBmdW5jdGlvbiBkb2VzIG5vdCBjaGVjayB0aGF0IHRoZSBwb2ludCBhY3R1YWxseQotICogICAgICAgICAgICAgICAgICBiZWxvbmdzIHRvIHRoZSBnaXZlbiBncm91cCwgc2VlIG1iZWR0bHNfZWNwX2NoZWNrX3B1YmtleSgpCi0gKiAgICAgICAgICAgICAgICAgIGZvciB0aGF0LgotICoKLSAqIFxub3RlICAgICAgICAgICAgRm9yIGNvbXByZXNzZWQgcG9pbnRzLCBzZWUgI01CRURUTFNfRUNQX1BGX0NPTVBSRVNTRUQgZm9yCi0gKiAgICAgICAgICAgICAgICAgIGxpbWl0YXRpb25zLgotICoKLSAqIFxwYXJhbSBncnAgICAgICAgVGhlIGdyb3VwIHRvIHdoaWNoIHRoZSBwb2ludCBzaG91bGQgYmVsb25nLgotICogICAgICAgICAgICAgICAgICBUaGlzIG11c3QgYmUgaW5pdGlhbGl6ZWQgYW5kIGhhdmUgZ3JvdXAgcGFyYW1ldGVycwotICogICAgICAgICAgICAgICAgICBzZXQsIGZvciBleGFtcGxlIHRocm91Z2ggbWJlZHRsc19lY3BfZ3JvdXBfbG9hZCgpLgotICogXHBhcmFtIFAgICAgICAgICBUaGUgZGVzdGluYXRpb24gY29udGV4dCB0byBpbXBvcnQgdGhlIHBvaW50IHRvLgotICogICAgICAgICAgICAgICAgICBUaGlzIG11c3QgYmUgaW5pdGlhbGl6ZWQuCi0gKiBccGFyYW0gYnVmICAgICAgIFRoZSBpbnB1dCBidWZmZXIuIFRoaXMgbXVzdCBiZSBhIHJlYWRhYmxlIGJ1ZmZlcgotICogICAgICAgICAgICAgICAgICBvZiBsZW5ndGggXHAgaWxlbiBCeXRlcy4KLSAqIFxwYXJhbSBpbGVuICAgICAgVGhlIGxlbmd0aCBvZiB0aGUgaW5wdXQgYnVmZmVyIFxwIGJ1ZiBpbiBCeXRlcy4KLSAqCi0gKiBccmV0dXJuICAgICAgICAgIFxjIDAgb24gc3VjY2Vzcy4KLSAqIFxyZXR1cm4gICAgICAgICAgI01CRURUTFNfRVJSX0VDUF9CQURfSU5QVVRfREFUQSBpZiB0aGUgaW5wdXQgaXMgaW52YWxpZC4KLSAqIFxyZXR1cm4gICAgICAgICAgI01CRURUTFNfRVJSX01QSV9BTExPQ19GQUlMRUQgb24gbWVtb3J5LWFsbG9jYXRpb24gZmFpbHVyZS4KLSAqIFxyZXR1cm4gICAgICAgICAgI01CRURUTFNfRVJSX0VDUF9GRUFUVVJFX1VOQVZBSUxBQkxFIGlmIHRoZSBpbXBvcnQgZm9yIHRoZQotICogICAgICAgICAgICAgICAgICBnaXZlbiBncm91cCBpcyBub3QgaW1wbGVtZW50ZWQuCi0gKi8KLWludCBtYmVkdGxzX2VjcF9wb2ludF9yZWFkX2JpbmFyeShjb25zdCBtYmVkdGxzX2VjcF9ncm91cCAqZ3JwLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1iZWR0bHNfZWNwX3BvaW50ICpQLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgKmJ1Ziwgc2l6ZV90IGlsZW4pOwotCi0vKioKLSAqIFxicmllZiAgICAgICAgICAgVGhpcyBmdW5jdGlvbiBpbXBvcnRzIGEgcG9pbnQgZnJvbSBhIFRMUyBFQ1BvaW50IHJlY29yZC4KLSAqCi0gKiBcbm90ZSAgICAgICAgICAgIE9uIGZ1bmN0aW9uIHJldHVybiwgXHAgKmJ1ZiBpcyB1cGRhdGVkIHRvIHBvaW50IGltbWVkaWF0ZWx5Ci0gKiAgICAgICAgICAgICAgICAgIGFmdGVyIHRoZSBFQ1BvaW50IHJlY29yZC4KLSAqCi0gKiBccGFyYW0gZ3JwICAgICAgIFRoZSBFQ1AgZ3JvdXAgdG8gdXNlLgotICogICAgICAgICAgICAgICAgICBUaGlzIG11c3QgYmUgaW5pdGlhbGl6ZWQgYW5kIGhhdmUgZ3JvdXAgcGFyYW1ldGVycwotICogICAgICAgICAgICAgICAgICBzZXQsIGZvciBleGFtcGxlIHRocm91Z2ggbWJlZHRsc19lY3BfZ3JvdXBfbG9hZCgpLgotICogXHBhcmFtIHB0ICAgICAgICBUaGUgZGVzdGluYXRpb24gcG9pbnQuCi0gKiBccGFyYW0gYnVmICAgICAgIFRoZSBhZGRyZXNzIG9mIHRoZSBwb2ludGVyIHRvIHRoZSBzdGFydCBvZiB0aGUgaW5wdXQgYnVmZmVyLgotICogXHBhcmFtIGxlbiAgICAgICBUaGUgbGVuZ3RoIG9mIHRoZSBidWZmZXIuCi0gKgotICogXHJldHVybiAgICAgICAgICBcYyAwIG9uIHN1Y2Nlc3MuCi0gKiBccmV0dXJuICAgICAgICAgIEFuIFxjIE1CRURUTFNfRVJSX01QSV9YWFggZXJyb3IgY29kZSBvbiBpbml0aWFsaXphdGlvbgotICogICAgICAgICAgICAgICAgICBmYWlsdXJlLgotICogXHJldHVybiAgICAgICAgICAjTUJFRFRMU19FUlJfRUNQX0JBRF9JTlBVVF9EQVRBIGlmIGlucHV0IGlzIGludmFsaWQuCi0gKi8KLWludCBtYmVkdGxzX2VjcF90bHNfcmVhZF9wb2ludChjb25zdCBtYmVkdGxzX2VjcF9ncm91cCAqZ3JwLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1iZWR0bHNfZWNwX3BvaW50ICpwdCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1bnNpZ25lZCBjaGFyICoqYnVmLCBzaXplX3QgbGVuKTsKLQotLyoqCi0gKiBcYnJpZWYgICAgICAgICAgIFRoaXMgZnVuY3Rpb24gZXhwb3J0cyBhIHBvaW50IGFzIGEgVExTIEVDUG9pbnQgcmVjb3JkCi0gKiAgICAgICAgICAgICAgICAgIGRlZmluZWQgaW4gUkZDIDQ0OTIsIFNlY3Rpb24gNS40LgotICoKLSAqIFxwYXJhbSBncnAgICAgICAgVGhlIEVDUCBncm91cCB0byB1c2UuCi0gKiAgICAgICAgICAgICAgICAgIFRoaXMgbXVzdCBiZSBpbml0aWFsaXplZCBhbmQgaGF2ZSBncm91cCBwYXJhbWV0ZXJzCi0gKiAgICAgICAgICAgICAgICAgIHNldCwgZm9yIGV4YW1wbGUgdGhyb3VnaCBtYmVkdGxzX2VjcF9ncm91cF9sb2FkKCkuCi0gKiBccGFyYW0gcHQgICAgICAgIFRoZSBwb2ludCB0byBiZSBleHBvcnRlZC4gVGhpcyBtdXN0IGJlIGluaXRpYWxpemVkLgotICogXHBhcmFtIGZvcm1hdCAgICBUaGUgcG9pbnQgZm9ybWF0IHRvIHVzZS4gVGhpcyBtdXN0IGJlIGVpdGhlcgotICogICAgICAgICAgICAgICAgICAjTUJFRFRMU19FQ1BfUEZfQ09NUFJFU1NFRCBvciAjTUJFRFRMU19FQ1BfUEZfVU5DT01QUkVTU0VELgotICogXHBhcmFtIG9sZW4gICAgICBUaGUgYWRkcmVzcyBhdCB3aGljaCB0byBzdG9yZSB0aGUgbGVuZ3RoIGluIEJ5dGVzCi0gKiAgICAgICAgICAgICAgICAgIG9mIHRoZSBkYXRhIHdyaXR0ZW4uCi0gKiBccGFyYW0gYnVmICAgICAgIFRoZSB0YXJnZXQgYnVmZmVyLiBUaGlzIG11c3QgYmUgYSB3cml0YWJsZSBidWZmZXIgb2YKLSAqICAgICAgICAgICAgICAgICAgbGVuZ3RoIFxwIGJsZW4gQnl0ZXMuCi0gKiBccGFyYW0gYmxlbiAgICAgIFRoZSBsZW5ndGggb2YgdGhlIHRhcmdldCBidWZmZXIgXHAgYnVmIGluIEJ5dGVzLgotICoKLSAqIFxyZXR1cm4gICAgICAgICAgXGMgMCBvbiBzdWNjZXNzLgotICogXHJldHVybiAgICAgICAgICAjTUJFRFRMU19FUlJfRUNQX0JBRF9JTlBVVF9EQVRBIGlmIHRoZSBpbnB1dCBpcyBpbnZhbGlkLgotICogXHJldHVybiAgICAgICAgICAjTUJFRFRMU19FUlJfRUNQX0JVRkZFUl9UT09fU01BTEwgaWYgdGhlIHRhcmdldCBidWZmZXIKLSAqICAgICAgICAgICAgICAgICAgaXMgdG9vIHNtYWxsIHRvIGhvbGQgdGhlIGV4cG9ydGVkIHBvaW50LgotICogXHJldHVybiAgICAgICAgICBBbm90aGVyIG5lZ2F0aXZlIGVycm9yIGNvZGUgb24gb3RoZXIga2luZHMgb2YgZmFpbHVyZS4KLSAqLwotaW50IG1iZWR0bHNfZWNwX3Rsc193cml0ZV9wb2ludChjb25zdCBtYmVkdGxzX2VjcF9ncm91cCAqZ3JwLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBtYmVkdGxzX2VjcF9wb2ludCAqcHQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBmb3JtYXQsIHNpemVfdCAqb2xlbiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgY2hhciAqYnVmLCBzaXplX3QgYmxlbik7Ci0KLS8qKgotICogXGJyaWVmICAgICAgICAgICBUaGlzIGZ1bmN0aW9uIHNldHMgdXAgYW4gRUNQIGdyb3VwIGNvbnRleHQKLSAqICAgICAgICAgICAgICAgICAgZnJvbSBhIHN0YW5kYXJkaXplZCBzZXQgb2YgZG9tYWluIHBhcmFtZXRlcnMuCi0gKgotICogXG5vdGUgICAgICAgICAgICBUaGUgaW5kZXggc2hvdWxkIGJlIGEgdmFsdWUgb2YgdGhlIE5hbWVkQ3VydmUgZW51bSwKLSAqICAgICAgICAgICAgICAgICAgYXMgZGVmaW5lZCBpbiA8ZW0+UkZDLTQ0OTI6IEVsbGlwdGljIEN1cnZlIENyeXB0b2dyYXBoeQotICogICAgICAgICAgICAgICAgICAoRUNDKSBDaXBoZXIgU3VpdGVzIGZvciBUcmFuc3BvcnQgTGF5ZXIgU2VjdXJpdHkgKFRMUyk8L2VtPiwKLSAqICAgICAgICAgICAgICAgICAgdXN1YWxseSBpbiB0aGUgZm9ybSBvZiBhbiBcYyBNQkVEVExTX0VDUF9EUF9YWFggbWFjcm8uCi0gKgotICogXHBhcmFtIGdycCAgICAgICBUaGUgZ3JvdXAgY29udGV4dCB0byBzZXR1cC4gVGhpcyBtdXN0IGJlIGluaXRpYWxpemVkLgotICogXHBhcmFtIGlkICAgICAgICBUaGUgaWRlbnRpZmllciBvZiB0aGUgZG9tYWluIHBhcmFtZXRlciBzZXQgdG8gbG9hZC4KLSAqCi0gKiBccmV0dXJuICAgICAgICAgIFxjIDAgb24gc3VjY2Vzcy4KLSAqIFxyZXR1cm4gICAgICAgICAgI01CRURUTFNfRVJSX0VDUF9GRUFUVVJFX1VOQVZBSUxBQkxFIGlmIFxwIGlkIGRvZXNuJ3QKLSAqICAgICAgICAgICAgICAgICAgY29ycmVzcG9uZCB0byBhIGtub3duIGdyb3VwLgotICogXHJldHVybiAgICAgICAgICBBbm90aGVyIG5lZ2F0aXZlIGVycm9yIGNvZGUgb24gb3RoZXIga2luZHMgb2YgZmFpbHVyZS4KLSAqLwotaW50IG1iZWR0bHNfZWNwX2dyb3VwX2xvYWQobWJlZHRsc19lY3BfZ3JvdXAgKmdycCwgbWJlZHRsc19lY3BfZ3JvdXBfaWQgaWQpOwotCi0vKioKLSAqIFxicmllZiAgICAgICAgICAgVGhpcyBmdW5jdGlvbiBzZXRzIHVwIGFuIEVDUCBncm91cCBjb250ZXh0IGZyb20gYSBUTFMKLSAqICAgICAgICAgICAgICAgICAgRUNQYXJhbWV0ZXJzIHJlY29yZCBhcyBkZWZpbmVkIGluIFJGQyA0NDkyLCBTZWN0aW9uIDUuNC4KLSAqCi0gKiBcbm90ZSAgICAgICAgICAgIFRoZSByZWFkIHBvaW50ZXIgXHAgYnVmIGlzIHVwZGF0ZWQgdG8gcG9pbnQgcmlnaHQgYWZ0ZXIKLSAqICAgICAgICAgICAgICAgICAgdGhlIEVDUGFyYW1ldGVycyByZWNvcmQgb24gZXhpdC4KLSAqCi0gKiBccGFyYW0gZ3JwICAgICAgIFRoZSBncm91cCBjb250ZXh0IHRvIHNldHVwLiBUaGlzIG11c3QgYmUgaW5pdGlhbGl6ZWQuCi0gKiBccGFyYW0gYnVmICAgICAgIFRoZSBhZGRyZXNzIG9mIHRoZSBwb2ludGVyIHRvIHRoZSBzdGFydCBvZiB0aGUgaW5wdXQgYnVmZmVyLgotICogXHBhcmFtIGxlbiAgICAgICBUaGUgbGVuZ3RoIG9mIHRoZSBpbnB1dCBidWZmZXIgXGMgKmJ1ZiBpbiBCeXRlcy4KLSAqCi0gKiBccmV0dXJuICAgICAgICAgIFxjIDAgb24gc3VjY2Vzcy4KLSAqIFxyZXR1cm4gICAgICAgICAgI01CRURUTFNfRVJSX0VDUF9CQURfSU5QVVRfREFUQSBpZiBpbnB1dCBpcyBpbnZhbGlkLgotICogXHJldHVybiAgICAgICAgICAjTUJFRFRMU19FUlJfRUNQX0ZFQVRVUkVfVU5BVkFJTEFCTEUgaWYgdGhlIGdyb3VwIGlzIG5vdAotICogICAgICAgICAgICAgICAgICByZWNvZ25pemVkLgotICogXHJldHVybiAgICAgICAgICBBbm90aGVyIG5lZ2F0aXZlIGVycm9yIGNvZGUgb24gb3RoZXIga2luZHMgb2YgZmFpbHVyZS4KLSAqLwotaW50IG1iZWR0bHNfZWNwX3Rsc19yZWFkX2dyb3VwKG1iZWR0bHNfZWNwX2dyb3VwICpncnAsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdW5zaWduZWQgY2hhciAqKmJ1Ziwgc2l6ZV90IGxlbik7Ci0KLS8qKgotICogXGJyaWVmICAgICAgICAgICBUaGlzIGZ1bmN0aW9uIGV4dHJhY3RzIGFuIGVsbGlwdGljIGN1cnZlIGdyb3VwIElEIGZyb20gYQotICogICAgICAgICAgICAgICAgICBUTFMgRUNQYXJhbWV0ZXJzIHJlY29yZCBhcyBkZWZpbmVkIGluIFJGQyA0NDkyLCBTZWN0aW9uIDUuNC4KLSAqCi0gKiBcbm90ZSAgICAgICAgICAgIFRoZSByZWFkIHBvaW50ZXIgXHAgYnVmIGlzIHVwZGF0ZWQgdG8gcG9pbnQgcmlnaHQgYWZ0ZXIKLSAqICAgICAgICAgICAgICAgICAgdGhlIEVDUGFyYW1ldGVycyByZWNvcmQgb24gZXhpdC4KLSAqCi0gKiBccGFyYW0gZ3JwICAgICAgIFRoZSBhZGRyZXNzIGF0IHdoaWNoIHRvIHN0b3JlIHRoZSBncm91cCBpZC4KLSAqICAgICAgICAgICAgICAgICAgVGhpcyBtdXN0IG5vdCBiZSBcYyBOVUxMLgotICogXHBhcmFtIGJ1ZiAgICAgICBUaGUgYWRkcmVzcyBvZiB0aGUgcG9pbnRlciB0byB0aGUgc3RhcnQgb2YgdGhlIGlucHV0IGJ1ZmZlci4KLSAqIFxwYXJhbSBsZW4gICAgICAgVGhlIGxlbmd0aCBvZiB0aGUgaW5wdXQgYnVmZmVyIFxjICpidWYgaW4gQnl0ZXMuCi0gKgotICogXHJldHVybiAgICAgICAgICBcYyAwIG9uIHN1Y2Nlc3MuCi0gKiBccmV0dXJuICAgICAgICAgICNNQkVEVExTX0VSUl9FQ1BfQkFEX0lOUFVUX0RBVEEgaWYgaW5wdXQgaXMgaW52YWxpZC4KLSAqIFxyZXR1cm4gICAgICAgICAgI01CRURUTFNfRVJSX0VDUF9GRUFUVVJFX1VOQVZBSUxBQkxFIGlmIHRoZSBncm91cCBpcyBub3QKLSAqICAgICAgICAgICAgICAgICAgcmVjb2duaXplZC4KLSAqIFxyZXR1cm4gICAgICAgICAgQW5vdGhlciBuZWdhdGl2ZSBlcnJvciBjb2RlIG9uIG90aGVyIGtpbmRzIG9mIGZhaWx1cmUuCi0gKi8KLWludCBtYmVkdGxzX2VjcF90bHNfcmVhZF9ncm91cF9pZChtYmVkdGxzX2VjcF9ncm91cF9pZCAqZ3JwLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgKipidWYsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IGxlbik7Ci0vKioKLSAqIFxicmllZiAgICAgICAgICAgVGhpcyBmdW5jdGlvbiBleHBvcnRzIGFuIGVsbGlwdGljIGN1cnZlIGFzIGEgVExTCi0gKiAgICAgICAgICAgICAgICAgIEVDUGFyYW1ldGVycyByZWNvcmQgYXMgZGVmaW5lZCBpbiBSRkMgNDQ5MiwgU2VjdGlvbiA1LjQuCi0gKgotICogXHBhcmFtIGdycCAgICAgICBUaGUgRUNQIGdyb3VwIHRvIGJlIGV4cG9ydGVkLgotICogICAgICAgICAgICAgICAgICBUaGlzIG11c3QgYmUgaW5pdGlhbGl6ZWQgYW5kIGhhdmUgZ3JvdXAgcGFyYW1ldGVycwotICogICAgICAgICAgICAgICAgICBzZXQsIGZvciBleGFtcGxlIHRocm91Z2ggbWJlZHRsc19lY3BfZ3JvdXBfbG9hZCgpLgotICogXHBhcmFtIG9sZW4gICAgICBUaGUgYWRkcmVzcyBhdCB3aGljaCB0byBzdG9yZSB0aGUgbnVtYmVyIG9mIEJ5dGVzIHdyaXR0ZW4uCi0gKiAgICAgICAgICAgICAgICAgIFRoaXMgbXVzdCBub3QgYmUgXGMgTlVMTC4KLSAqIFxwYXJhbSBidWYgICAgICAgVGhlIGJ1ZmZlciB0byB3cml0ZSB0by4gVGhpcyBtdXN0IGJlIGEgd3JpdGFibGUgYnVmZmVyCi0gKiAgICAgICAgICAgICAgICAgIG9mIGxlbmd0aCBccCBibGVuIEJ5dGVzLgotICogXHBhcmFtIGJsZW4gICAgICBUaGUgbGVuZ3RoIG9mIHRoZSBvdXRwdXQgYnVmZmVyIFxwIGJ1ZiBpbiBCeXRlcy4KLSAqCi0gKiBccmV0dXJuICAgICAgICAgIFxjIDAgb24gc3VjY2Vzcy4KLSAqIFxyZXR1cm4gICAgICAgICAgI01CRURUTFNfRVJSX0VDUF9CVUZGRVJfVE9PX1NNQUxMIGlmIHRoZSBvdXRwdXQKLSAqICAgICAgICAgICAgICAgICAgYnVmZmVyIGlzIHRvbyBzbWFsbCB0byBob2xkIHRoZSBleHBvcnRlZCBncm91cC4KLSAqIFxyZXR1cm4gICAgICAgICAgQW5vdGhlciBuZWdhdGl2ZSBlcnJvciBjb2RlIG9uIG90aGVyIGtpbmRzIG9mIGZhaWx1cmUuCi0gKi8KLWludCBtYmVkdGxzX2VjcF90bHNfd3JpdGVfZ3JvdXAoY29uc3QgbWJlZHRsc19lY3BfZ3JvdXAgKmdycCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90ICpvbGVuLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBjaGFyICpidWYsIHNpemVfdCBibGVuKTsKLQotLyoqCi0gKiBcYnJpZWYgICAgICAgICAgIFRoaXMgZnVuY3Rpb24gcGVyZm9ybXMgYSBzY2FsYXIgbXVsdGlwbGljYXRpb24gb2YgYSBwb2ludAotICogICAgICAgICAgICAgICAgICBieSBhbiBpbnRlZ2VyOiBccCBSID0gXHAgbSAqIFxwIFAuCi0gKgotICogICAgICAgICAgICAgICAgICBJdCBpcyBub3QgdGhyZWFkLXNhZmUgdG8gdXNlIHNhbWUgZ3JvdXAgaW4gbXVsdGlwbGUgdGhyZWFkcy4KLSAqCi0gKiBcbm90ZSAgICAgICAgICAgIFRvIHByZXZlbnQgdGltaW5nIGF0dGFja3MsIHRoaXMgZnVuY3Rpb24KLSAqICAgICAgICAgICAgICAgICAgZXhlY3V0ZXMgdGhlIGV4YWN0IHNhbWUgc2VxdWVuY2Ugb2YgYmFzZS1maWVsZAotICogICAgICAgICAgICAgICAgICBvcGVyYXRpb25zIGZvciBhbnkgdmFsaWQgXHAgbS4gSXQgYXZvaWRzIGFueSBpZi1icmFuY2ggb3IKLSAqICAgICAgICAgICAgICAgICAgYXJyYXkgaW5kZXggZGVwZW5kaW5nIG9uIHRoZSB2YWx1ZSBvZiBccCBtLiBJdCBhbHNvIHVzZXMKLSAqICAgICAgICAgICAgICAgICAgXHAgZl9ybmcgdG8gcmFuZG9taXplIHNvbWUgaW50ZXJtZWRpYXRlIHJlc3VsdHMuCi0gKgotICogXHBhcmFtIGdycCAgICAgICBUaGUgRUNQIGdyb3VwIHRvIHVzZS4KLSAqICAgICAgICAgICAgICAgICAgVGhpcyBtdXN0IGJlIGluaXRpYWxpemVkIGFuZCBoYXZlIGdyb3VwIHBhcmFtZXRlcnMKLSAqICAgICAgICAgICAgICAgICAgc2V0LCBmb3IgZXhhbXBsZSB0aHJvdWdoIG1iZWR0bHNfZWNwX2dyb3VwX2xvYWQoKS4KLSAqIFxwYXJhbSBSICAgICAgICAgVGhlIHBvaW50IGluIHdoaWNoIHRvIHN0b3JlIHRoZSByZXN1bHQgb2YgdGhlIGNhbGN1bGF0aW9uLgotICogICAgICAgICAgICAgICAgICBUaGlzIG11c3QgYmUgaW5pdGlhbGl6ZWQuCi0gKiBccGFyYW0gbSAgICAgICAgIFRoZSBpbnRlZ2VyIGJ5IHdoaWNoIHRvIG11bHRpcGx5LiBUaGlzIG11c3QgYmUgaW5pdGlhbGl6ZWQuCi0gKiBccGFyYW0gUCAgICAgICAgIFRoZSBwb2ludCB0byBtdWx0aXBseS4gVGhpcyBtdXN0IGJlIGluaXRpYWxpemVkLgotICogXHBhcmFtIGZfcm5nICAgICBUaGUgUk5HIGZ1bmN0aW9uLiBUaGlzIG11c3Qgbm90IGJlIFxjIE5VTEwuCi0gKiBccGFyYW0gcF9ybmcgICAgIFRoZSBSTkcgY29udGV4dCB0byBiZSBwYXNzZWQgdG8gXHAgZl9ybmcuIFRoaXMgbWF5IGJlIFxjCi0gKiAgICAgICAgICAgICAgICAgIE5VTEwgaWYgXHAgZl9ybmcgZG9lc24ndCBuZWVkIGEgY29udGV4dC4KLSAqCi0gKiBccmV0dXJuICAgICAgICAgIFxjIDAgb24gc3VjY2Vzcy4KLSAqIFxyZXR1cm4gICAgICAgICAgI01CRURUTFNfRVJSX0VDUF9JTlZBTElEX0tFWSBpZiBccCBtIGlzIG5vdCBhIHZhbGlkIHByaXZhdGUKLSAqICAgICAgICAgICAgICAgICAga2V5LCBvciBccCBQIGlzIG5vdCBhIHZhbGlkIHB1YmxpYyBrZXkuCi0gKiBccmV0dXJuICAgICAgICAgICNNQkVEVExTX0VSUl9NUElfQUxMT0NfRkFJTEVEIG9uIG1lbW9yeS1hbGxvY2F0aW9uIGZhaWx1cmUuCi0gKiBccmV0dXJuICAgICAgICAgIEFub3RoZXIgbmVnYXRpdmUgZXJyb3IgY29kZSBvbiBvdGhlciBraW5kcyBvZiBmYWlsdXJlLgotICovCi1pbnQgbWJlZHRsc19lY3BfbXVsKG1iZWR0bHNfZWNwX2dyb3VwICpncnAsIG1iZWR0bHNfZWNwX3BvaW50ICpSLAotICAgICAgICAgICAgICAgICAgICBjb25zdCBtYmVkdGxzX21waSAqbSwgY29uc3QgbWJlZHRsc19lY3BfcG9pbnQgKlAsCi0gICAgICAgICAgICAgICAgICAgIGludCAoKmZfcm5nKSh2b2lkICosIHVuc2lnbmVkIGNoYXIgKiwgc2l6ZV90KSwgdm9pZCAqcF9ybmcpOwotCi0vKioKLSAqIFxicmllZiAgICAgICAgICAgVGhpcyBmdW5jdGlvbiBwZXJmb3JtcyBtdWx0aXBsaWNhdGlvbiBvZiBhIHBvaW50IGJ5Ci0gKiAgICAgICAgICAgICAgICAgIGFuIGludGVnZXI6IFxwIFIgPSBccCBtICogXHAgUCBpbiBhIHJlc3RhcnRhYmxlIHdheS4KLSAqCi0gKiBcc2VlICAgICAgICAgICAgIG1iZWR0bHNfZWNwX211bCgpCi0gKgotICogXG5vdGUgICAgICAgICAgICBUaGlzIGZ1bmN0aW9uIGRvZXMgdGhlIHNhbWUgYXMgXGMgbWJlZHRsc19lY3BfbXVsKCksIGJ1dAotICogICAgICAgICAgICAgICAgICBpdCBjYW4gcmV0dXJuIGVhcmx5IGFuZCByZXN0YXJ0IGFjY29yZGluZyB0byB0aGUgbGltaXQgc2V0Ci0gKiAgICAgICAgICAgICAgICAgIHdpdGggXGMgbWJlZHRsc19lY3Bfc2V0X21heF9vcHMoKSB0byByZWR1Y2UgYmxvY2tpbmcuCi0gKgotICogXHBhcmFtIGdycCAgICAgICBUaGUgRUNQIGdyb3VwIHRvIHVzZS4KLSAqICAgICAgICAgICAgICAgICAgVGhpcyBtdXN0IGJlIGluaXRpYWxpemVkIGFuZCBoYXZlIGdyb3VwIHBhcmFtZXRlcnMKLSAqICAgICAgICAgICAgICAgICAgc2V0LCBmb3IgZXhhbXBsZSB0aHJvdWdoIG1iZWR0bHNfZWNwX2dyb3VwX2xvYWQoKS4KLSAqIFxwYXJhbSBSICAgICAgICAgVGhlIHBvaW50IGluIHdoaWNoIHRvIHN0b3JlIHRoZSByZXN1bHQgb2YgdGhlIGNhbGN1bGF0aW9uLgotICogICAgICAgICAgICAgICAgICBUaGlzIG11c3QgYmUgaW5pdGlhbGl6ZWQuCi0gKiBccGFyYW0gbSAgICAgICAgIFRoZSBpbnRlZ2VyIGJ5IHdoaWNoIHRvIG11bHRpcGx5LiBUaGlzIG11c3QgYmUgaW5pdGlhbGl6ZWQuCi0gKiBccGFyYW0gUCAgICAgICAgIFRoZSBwb2ludCB0byBtdWx0aXBseS4gVGhpcyBtdXN0IGJlIGluaXRpYWxpemVkLgotICogXHBhcmFtIGZfcm5nICAgICBUaGUgUk5HIGZ1bmN0aW9uLiBUaGlzIG11c3Qgbm90IGJlIFxjIE5VTEwuCi0gKiBccGFyYW0gcF9ybmcgICAgIFRoZSBSTkcgY29udGV4dCB0byBiZSBwYXNzZWQgdG8gXHAgZl9ybmcuIFRoaXMgbWF5IGJlIFxjCi0gKiAgICAgICAgICAgICAgICAgIE5VTEwgaWYgXHAgZl9ybmcgZG9lc24ndCBuZWVkIGEgY29udGV4dC4KLSAqIFxwYXJhbSByc19jdHggICAgVGhlIHJlc3RhcnQgY29udGV4dCAoTlVMTCBkaXNhYmxlcyByZXN0YXJ0KS4KLSAqCi0gKiBccmV0dXJuICAgICAgICAgIFxjIDAgb24gc3VjY2Vzcy4KLSAqIFxyZXR1cm4gICAgICAgICAgI01CRURUTFNfRVJSX0VDUF9JTlZBTElEX0tFWSBpZiBccCBtIGlzIG5vdCBhIHZhbGlkIHByaXZhdGUKLSAqICAgICAgICAgICAgICAgICAga2V5LCBvciBccCBQIGlzIG5vdCBhIHZhbGlkIHB1YmxpYyBrZXkuCi0gKiBccmV0dXJuICAgICAgICAgICNNQkVEVExTX0VSUl9NUElfQUxMT0NfRkFJTEVEIG9uIG1lbW9yeS1hbGxvY2F0aW9uIGZhaWx1cmUuCi0gKiBccmV0dXJuICAgICAgICAgICNNQkVEVExTX0VSUl9FQ1BfSU5fUFJPR1JFU1MgaWYgbWF4aW11bSBudW1iZXIgb2YKLSAqICAgICAgICAgICAgICAgICAgb3BlcmF0aW9ucyB3YXMgcmVhY2hlZDogc2VlIFxjIG1iZWR0bHNfZWNwX3NldF9tYXhfb3BzKCkuCi0gKiBccmV0dXJuICAgICAgICAgIEFub3RoZXIgbmVnYXRpdmUgZXJyb3IgY29kZSBvbiBvdGhlciBraW5kcyBvZiBmYWlsdXJlLgotICovCi1pbnQgbWJlZHRsc19lY3BfbXVsX3Jlc3RhcnRhYmxlKG1iZWR0bHNfZWNwX2dyb3VwICpncnAsIG1iZWR0bHNfZWNwX3BvaW50ICpSLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBtYmVkdGxzX21waSAqbSwgY29uc3QgbWJlZHRsc19lY3BfcG9pbnQgKlAsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCAoKmZfcm5nKSh2b2lkICosIHVuc2lnbmVkIGNoYXIgKiwgc2l6ZV90KSwgdm9pZCAqcF9ybmcsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1iZWR0bHNfZWNwX3Jlc3RhcnRfY3R4ICpyc19jdHgpOwotCi0jaWYgZGVmaW5lZChNQkVEVExTX0VDUF9TSE9SVF9XRUlFUlNUUkFTU19FTkFCTEVEKQotLyoqCi0gKiBcYnJpZWYgICAgICAgICAgIFRoaXMgZnVuY3Rpb24gY2hlY2tzIGlmIGRvbWFpbiBwYXJhbWV0ZXIgQSBvZiB0aGUgY3VydmUgaXMKLSAqICAgICAgICAgICAgICAgICAgXGMgLTMuCi0gKgotICogXG5vdGUgICAgICAgICAgICBUaGlzIGZ1bmN0aW9uIGlzIG9ubHkgZGVmaW5lZCBmb3Igc2hvcnQgV2VpZXJzdHJhc3MgY3VydmVzLgotICogICAgICAgICAgICAgICAgICBJdCBtYXkgbm90IGJlIGluY2x1ZGVkIGluIGJ1aWxkcyB3aXRob3V0IGFueSBzaG9ydAotICogICAgICAgICAgICAgICAgICBXZWllcnN0cmFzcyBjdXJ2ZS4KLSAqCi0gKiBccGFyYW0gZ3JwICAgICAgIFRoZSBFQ1AgZ3JvdXAgdG8gdXNlLgotICogICAgICAgICAgICAgICAgICBUaGlzIG11c3QgYmUgaW5pdGlhbGl6ZWQgYW5kIGhhdmUgZ3JvdXAgcGFyYW1ldGVycwotICogICAgICAgICAgICAgICAgICBzZXQsIGZvciBleGFtcGxlIHRocm91Z2ggbWJlZHRsc19lY3BfZ3JvdXBfbG9hZCgpLgotICoKLSAqIFxyZXR1cm4gICAgICAgICAgXGMgMSBpZiA8Y29kZT5BID0gLTM8L2NvZGU+LgotICogXHJldHVybiAgICAgICAgICBcYyAwIE90aGVyd2lzZS4KLSAqLwotc3RhdGljIGlubGluZSBpbnQgbWJlZHRsc19lY3BfZ3JvdXBfYV9pc19taW51c18zKGNvbnN0IG1iZWR0bHNfZWNwX2dyb3VwICpncnApCi17Ci0gICAgcmV0dXJuIGdycC0+QS5NQkVEVExTX1BSSVZBVEUocCkgPT0gTlVMTDsKLX0KLQotLyoqCi0gKiBcYnJpZWYgICAgICAgICAgIFRoaXMgZnVuY3Rpb24gcGVyZm9ybXMgbXVsdGlwbGljYXRpb24gYW5kIGFkZGl0aW9uIG9mIHR3bwotICogICAgICAgICAgICAgICAgICBwb2ludHMgYnkgaW50ZWdlcnM6IFxwIFIgPSBccCBtICogXHAgUCArIFxwIG4gKiBccCBRCi0gKgotICogICAgICAgICAgICAgICAgICBJdCBpcyBub3QgdGhyZWFkLXNhZmUgdG8gdXNlIHNhbWUgZ3JvdXAgaW4gbXVsdGlwbGUgdGhyZWFkcy4KLSAqCi0gKiBcbm90ZSAgICAgICAgICAgIEluIGNvbnRyYXN0IHRvIG1iZWR0bHNfZWNwX211bCgpLCB0aGlzIGZ1bmN0aW9uIGRvZXMgbm90Ci0gKiAgICAgICAgICAgICAgICAgIGd1YXJhbnRlZSBhIGNvbnN0YW50IGV4ZWN1dGlvbiBmbG93IGFuZCB0aW1pbmcuCi0gKgotICogXG5vdGUgICAgICAgICAgICBUaGlzIGZ1bmN0aW9uIGlzIG9ubHkgZGVmaW5lZCBmb3Igc2hvcnQgV2VpZXJzdHJhc3MgY3VydmVzLgotICogICAgICAgICAgICAgICAgICBJdCBtYXkgbm90IGJlIGluY2x1ZGVkIGluIGJ1aWxkcyB3aXRob3V0IGFueSBzaG9ydAotICogICAgICAgICAgICAgICAgICBXZWllcnN0cmFzcyBjdXJ2ZS4KLSAqCi0gKiBccGFyYW0gZ3JwICAgICAgIFRoZSBFQ1AgZ3JvdXAgdG8gdXNlLgotICogICAgICAgICAgICAgICAgICBUaGlzIG11c3QgYmUgaW5pdGlhbGl6ZWQgYW5kIGhhdmUgZ3JvdXAgcGFyYW1ldGVycwotICogICAgICAgICAgICAgICAgICBzZXQsIGZvciBleGFtcGxlIHRocm91Z2ggbWJlZHRsc19lY3BfZ3JvdXBfbG9hZCgpLgotICogXHBhcmFtIFIgICAgICAgICBUaGUgcG9pbnQgaW4gd2hpY2ggdG8gc3RvcmUgdGhlIHJlc3VsdCBvZiB0aGUgY2FsY3VsYXRpb24uCi0gKiAgICAgICAgICAgICAgICAgIFRoaXMgbXVzdCBiZSBpbml0aWFsaXplZC4KLSAqIFxwYXJhbSBtICAgICAgICAgVGhlIGludGVnZXIgYnkgd2hpY2ggdG8gbXVsdGlwbHkgXHAgUC4KLSAqICAgICAgICAgICAgICAgICAgVGhpcyBtdXN0IGJlIGluaXRpYWxpemVkLgotICogXHBhcmFtIFAgICAgICAgICBUaGUgcG9pbnQgdG8gbXVsdGlwbHkgYnkgXHAgbS4gVGhpcyBtdXN0IGJlIGluaXRpYWxpemVkLgotICogXHBhcmFtIG4gICAgICAgICBUaGUgaW50ZWdlciBieSB3aGljaCB0byBtdWx0aXBseSBccCBRLgotICogICAgICAgICAgICAgICAgICBUaGlzIG11c3QgYmUgaW5pdGlhbGl6ZWQuCi0gKiBccGFyYW0gUSAgICAgICAgIFRoZSBwb2ludCB0byBiZSBtdWx0aXBsaWVkIGJ5IFxwIG4uCi0gKiAgICAgICAgICAgICAgICAgIFRoaXMgbXVzdCBiZSBpbml0aWFsaXplZC4KLSAqCi0gKiBccmV0dXJuICAgICAgICAgIFxjIDAgb24gc3VjY2Vzcy4KLSAqIFxyZXR1cm4gICAgICAgICAgI01CRURUTFNfRVJSX0VDUF9JTlZBTElEX0tFWSBpZiBccCBtIG9yIFxwIG4gYXJlIG5vdAotICogICAgICAgICAgICAgICAgICB2YWxpZCBwcml2YXRlIGtleXMsIG9yIFxwIFAgb3IgXHAgUSBhcmUgbm90IHZhbGlkIHB1YmxpYwotICogICAgICAgICAgICAgICAgICBrZXlzLgotICogXHJldHVybiAgICAgICAgICAjTUJFRFRMU19FUlJfTVBJX0FMTE9DX0ZBSUxFRCBvbiBtZW1vcnktYWxsb2NhdGlvbiBmYWlsdXJlLgotICogXHJldHVybiAgICAgICAgICAjTUJFRFRMU19FUlJfRUNQX0ZFQVRVUkVfVU5BVkFJTEFCTEUgaWYgXHAgZ3JwIGRvZXMgbm90Ci0gKiAgICAgICAgICAgICAgICAgIGRlc2lnbmF0ZSBhIHNob3J0IFdlaWVyc3RyYXNzIGN1cnZlLgotICogXHJldHVybiAgICAgICAgICBBbm90aGVyIG5lZ2F0aXZlIGVycm9yIGNvZGUgb24gb3RoZXIga2luZHMgb2YgZmFpbHVyZS4KLSAqLwotaW50IG1iZWR0bHNfZWNwX211bGFkZChtYmVkdGxzX2VjcF9ncm91cCAqZ3JwLCBtYmVkdGxzX2VjcF9wb2ludCAqUiwKLSAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbWJlZHRsc19tcGkgKm0sIGNvbnN0IG1iZWR0bHNfZWNwX3BvaW50ICpQLAotICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBtYmVkdGxzX21waSAqbiwgY29uc3QgbWJlZHRsc19lY3BfcG9pbnQgKlEpOwotCi0vKioKLSAqIFxicmllZiAgICAgICAgICAgVGhpcyBmdW5jdGlvbiBwZXJmb3JtcyBtdWx0aXBsaWNhdGlvbiBhbmQgYWRkaXRpb24gb2YgdHdvCi0gKiAgICAgICAgICAgICAgICAgIHBvaW50cyBieSBpbnRlZ2VyczogXHAgUiA9IFxwIG0gKiBccCBQICsgXHAgbiAqIFxwIFEgaW4gYQotICogICAgICAgICAgICAgICAgICByZXN0YXJ0YWJsZSB3YXkuCi0gKgotICogXHNlZSAgICAgICAgICAgICBcYyBtYmVkdGxzX2VjcF9tdWxhZGQoKQotICoKLSAqIFxub3RlICAgICAgICAgICAgVGhpcyBmdW5jdGlvbiB3b3JrcyB0aGUgc2FtZSBhcyBcYyBtYmVkdGxzX2VjcF9tdWxhZGQoKSwKLSAqICAgICAgICAgICAgICAgICAgYnV0IGl0IGNhbiByZXR1cm4gZWFybHkgYW5kIHJlc3RhcnQgYWNjb3JkaW5nIHRvIHRoZSBsaW1pdAotICogICAgICAgICAgICAgICAgICBzZXQgd2l0aCBcYyBtYmVkdGxzX2VjcF9zZXRfbWF4X29wcygpIHRvIHJlZHVjZSBibG9ja2luZy4KLSAqCi0gKiBcbm90ZSAgICAgICAgICAgIFRoaXMgZnVuY3Rpb24gaXMgb25seSBkZWZpbmVkIGZvciBzaG9ydCBXZWllcnN0cmFzcyBjdXJ2ZXMuCi0gKiAgICAgICAgICAgICAgICAgIEl0IG1heSBub3QgYmUgaW5jbHVkZWQgaW4gYnVpbGRzIHdpdGhvdXQgYW55IHNob3J0Ci0gKiAgICAgICAgICAgICAgICAgIFdlaWVyc3RyYXNzIGN1cnZlLgotICoKLSAqIFxwYXJhbSBncnAgICAgICAgVGhlIEVDUCBncm91cCB0byB1c2UuCi0gKiAgICAgICAgICAgICAgICAgIFRoaXMgbXVzdCBiZSBpbml0aWFsaXplZCBhbmQgaGF2ZSBncm91cCBwYXJhbWV0ZXJzCi0gKiAgICAgICAgICAgICAgICAgIHNldCwgZm9yIGV4YW1wbGUgdGhyb3VnaCBtYmVkdGxzX2VjcF9ncm91cF9sb2FkKCkuCi0gKiBccGFyYW0gUiAgICAgICAgIFRoZSBwb2ludCBpbiB3aGljaCB0byBzdG9yZSB0aGUgcmVzdWx0IG9mIHRoZSBjYWxjdWxhdGlvbi4KLSAqICAgICAgICAgICAgICAgICAgVGhpcyBtdXN0IGJlIGluaXRpYWxpemVkLgotICogXHBhcmFtIG0gICAgICAgICBUaGUgaW50ZWdlciBieSB3aGljaCB0byBtdWx0aXBseSBccCBQLgotICogICAgICAgICAgICAgICAgICBUaGlzIG11c3QgYmUgaW5pdGlhbGl6ZWQuCi0gKiBccGFyYW0gUCAgICAgICAgIFRoZSBwb2ludCB0byBtdWx0aXBseSBieSBccCBtLiBUaGlzIG11c3QgYmUgaW5pdGlhbGl6ZWQuCi0gKiBccGFyYW0gbiAgICAgICAgIFRoZSBpbnRlZ2VyIGJ5IHdoaWNoIHRvIG11bHRpcGx5IFxwIFEuCi0gKiAgICAgICAgICAgICAgICAgIFRoaXMgbXVzdCBiZSBpbml0aWFsaXplZC4KLSAqIFxwYXJhbSBRICAgICAgICAgVGhlIHBvaW50IHRvIGJlIG11bHRpcGxpZWQgYnkgXHAgbi4KLSAqICAgICAgICAgICAgICAgICAgVGhpcyBtdXN0IGJlIGluaXRpYWxpemVkLgotICogXHBhcmFtIHJzX2N0eCAgICBUaGUgcmVzdGFydCBjb250ZXh0IChOVUxMIGRpc2FibGVzIHJlc3RhcnQpLgotICoKLSAqIFxyZXR1cm4gICAgICAgICAgXGMgMCBvbiBzdWNjZXNzLgotICogXHJldHVybiAgICAgICAgICAjTUJFRFRMU19FUlJfRUNQX0lOVkFMSURfS0VZIGlmIFxwIG0gb3IgXHAgbiBhcmUgbm90Ci0gKiAgICAgICAgICAgICAgICAgIHZhbGlkIHByaXZhdGUga2V5cywgb3IgXHAgUCBvciBccCBRIGFyZSBub3QgdmFsaWQgcHVibGljCi0gKiAgICAgICAgICAgICAgICAgIGtleXMuCi0gKiBccmV0dXJuICAgICAgICAgICNNQkVEVExTX0VSUl9NUElfQUxMT0NfRkFJTEVEIG9uIG1lbW9yeS1hbGxvY2F0aW9uIGZhaWx1cmUuCi0gKiBccmV0dXJuICAgICAgICAgICNNQkVEVExTX0VSUl9FQ1BfRkVBVFVSRV9VTkFWQUlMQUJMRSBpZiBccCBncnAgZG9lcyBub3QKLSAqICAgICAgICAgICAgICAgICAgZGVzaWduYXRlIGEgc2hvcnQgV2VpZXJzdHJhc3MgY3VydmUuCi0gKiBccmV0dXJuICAgICAgICAgICNNQkVEVExTX0VSUl9FQ1BfSU5fUFJPR1JFU1MgaWYgbWF4aW11bSBudW1iZXIgb2YKLSAqICAgICAgICAgICAgICAgICAgb3BlcmF0aW9ucyB3YXMgcmVhY2hlZDogc2VlIFxjIG1iZWR0bHNfZWNwX3NldF9tYXhfb3BzKCkuCi0gKiBccmV0dXJuICAgICAgICAgIEFub3RoZXIgbmVnYXRpdmUgZXJyb3IgY29kZSBvbiBvdGhlciBraW5kcyBvZiBmYWlsdXJlLgotICovCi1pbnQgbWJlZHRsc19lY3BfbXVsYWRkX3Jlc3RhcnRhYmxlKAotICAgIG1iZWR0bHNfZWNwX2dyb3VwICpncnAsIG1iZWR0bHNfZWNwX3BvaW50ICpSLAotICAgIGNvbnN0IG1iZWR0bHNfbXBpICptLCBjb25zdCBtYmVkdGxzX2VjcF9wb2ludCAqUCwKLSAgICBjb25zdCBtYmVkdGxzX21waSAqbiwgY29uc3QgbWJlZHRsc19lY3BfcG9pbnQgKlEsCi0gICAgbWJlZHRsc19lY3BfcmVzdGFydF9jdHggKnJzX2N0eCk7Ci0jZW5kaWYgLyogTUJFRFRMU19FQ1BfU0hPUlRfV0VJRVJTVFJBU1NfRU5BQkxFRCAqLwotCi0vKioKLSAqIFxicmllZiAgICAgICAgICAgVGhpcyBmdW5jdGlvbiBjaGVja3MgdGhhdCBhIHBvaW50IGlzIGEgdmFsaWQgcHVibGljIGtleQotICogICAgICAgICAgICAgICAgICBvbiB0aGlzIGN1cnZlLgotICoKLSAqICAgICAgICAgICAgICAgICAgSXQgb25seSBjaGVja3MgdGhhdCB0aGUgcG9pbnQgaXMgbm9uLXplcm8sIGhhcwotICogICAgICAgICAgICAgICAgICB2YWxpZCBjb29yZGluYXRlcyBhbmQgbGllcyBvbiB0aGUgY3VydmUuIEl0IGRvZXMgbm90IHZlcmlmeQotICogICAgICAgICAgICAgICAgICB0aGF0IGl0IGlzIGluZGVlZCBhIG11bHRpcGxlIG9mIFxjIEcuIFRoaXMgYWRkaXRpb25hbAotICogICAgICAgICAgICAgICAgICBjaGVjayBpcyBjb21wdXRhdGlvbmFsbHkgbW9yZSBleHBlbnNpdmUsIGlzIG5vdCByZXF1aXJlZAotICogICAgICAgICAgICAgICAgICBieSBzdGFuZGFyZHMsIGFuZCBzaG91bGQgbm90IGJlIG5lY2Vzc2FyeSBpZiB0aGUgZ3JvdXAKLSAqICAgICAgICAgICAgICAgICAgdXNlZCBoYXMgYSBzbWFsbCBjb2ZhY3Rvci4gSW4gcGFydGljdWxhciwgaXQgaXMgdXNlbGVzcyBmb3IKLSAqICAgICAgICAgICAgICAgICAgdGhlIE5JU1QgZ3JvdXBzIHdoaWNoIGFsbCBoYXZlIGEgY29mYWN0b3Igb2YgMS4KLSAqCi0gKiBcbm90ZSAgICAgICAgICAgIFRoaXMgZnVuY3Rpb24gdXNlcyBiYXJlIGNvbXBvbmVudHMgcmF0aGVyIHRoYW4gYW4KLSAqICAgICAgICAgICAgICAgICAgOjptYmVkdGxzX2VjcF9rZXlwYWlyIHN0cnVjdHVyZSwgdG8gZWFzZSB1c2Ugd2l0aCBvdGhlcgotICogICAgICAgICAgICAgICAgICBzdHJ1Y3R1cmVzLCBzdWNoIGFzIDo6bWJlZHRsc19lY2RoX2NvbnRleHQgb3IKLSAqICAgICAgICAgICAgICAgICAgOjptYmVkdGxzX2VjZHNhX2NvbnRleHQuCi0gKgotICogXHBhcmFtIGdycCAgICAgICBUaGUgRUNQIGdyb3VwIHRoZSBwb2ludCBzaG91bGQgYmVsb25nIHRvLgotICogICAgICAgICAgICAgICAgICBUaGlzIG11c3QgYmUgaW5pdGlhbGl6ZWQgYW5kIGhhdmUgZ3JvdXAgcGFyYW1ldGVycwotICogICAgICAgICAgICAgICAgICBzZXQsIGZvciBleGFtcGxlIHRocm91Z2ggbWJlZHRsc19lY3BfZ3JvdXBfbG9hZCgpLgotICogXHBhcmFtIHB0ICAgICAgICBUaGUgcG9pbnQgdG8gY2hlY2suIFRoaXMgbXVzdCBiZSBpbml0aWFsaXplZC4KLSAqCi0gKiBccmV0dXJuICAgICAgICAgIFxjIDAgaWYgdGhlIHBvaW50IGlzIGEgdmFsaWQgcHVibGljIGtleS4KLSAqIFxyZXR1cm4gICAgICAgICAgI01CRURUTFNfRVJSX0VDUF9JTlZBTElEX0tFWSBpZiB0aGUgcG9pbnQgaXMgbm90Ci0gKiAgICAgICAgICAgICAgICAgIGEgdmFsaWQgcHVibGljIGtleSBmb3IgdGhlIGdpdmVuIGN1cnZlLgotICogXHJldHVybiAgICAgICAgICBBbm90aGVyIG5lZ2F0aXZlIGVycm9yIGNvZGUgb24gb3RoZXIga2luZHMgb2YgZmFpbHVyZS4KLSAqLwotaW50IG1iZWR0bHNfZWNwX2NoZWNrX3B1YmtleShjb25zdCBtYmVkdGxzX2VjcF9ncm91cCAqZ3JwLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBtYmVkdGxzX2VjcF9wb2ludCAqcHQpOwotCi0vKioKLSAqIFxicmllZiAgICAgICAgICAgVGhpcyBmdW5jdGlvbiBjaGVja3MgdGhhdCBhbiBcYyBtYmVkdGxzX21waSBpcyBhCi0gKiAgICAgICAgICAgICAgICAgIHZhbGlkIHByaXZhdGUga2V5IGZvciB0aGlzIGN1cnZlLgotICoKLSAqIFxub3RlICAgICAgICAgICAgVGhpcyBmdW5jdGlvbiB1c2VzIGJhcmUgY29tcG9uZW50cyByYXRoZXIgdGhhbiBhbgotICogICAgICAgICAgICAgICAgICA6Om1iZWR0bHNfZWNwX2tleXBhaXIgc3RydWN0dXJlIHRvIGVhc2UgdXNlIHdpdGggb3RoZXIKLSAqICAgICAgICAgICAgICAgICAgc3RydWN0dXJlcywgc3VjaCBhcyA6Om1iZWR0bHNfZWNkaF9jb250ZXh0IG9yCi0gKiAgICAgICAgICAgICAgICAgIDo6bWJlZHRsc19lY2RzYV9jb250ZXh0LgotICoKLSAqIFxwYXJhbSBncnAgICAgICAgVGhlIEVDUCBncm91cCB0aGUgcHJpdmF0ZSBrZXkgc2hvdWxkIGJlbG9uZyB0by4KLSAqICAgICAgICAgICAgICAgICAgVGhpcyBtdXN0IGJlIGluaXRpYWxpemVkIGFuZCBoYXZlIGdyb3VwIHBhcmFtZXRlcnMKLSAqICAgICAgICAgICAgICAgICAgc2V0LCBmb3IgZXhhbXBsZSB0aHJvdWdoIG1iZWR0bHNfZWNwX2dyb3VwX2xvYWQoKS4KLSAqIFxwYXJhbSBkICAgICAgICAgVGhlIGludGVnZXIgdG8gY2hlY2suIFRoaXMgbXVzdCBiZSBpbml0aWFsaXplZC4KLSAqCi0gKiBccmV0dXJuICAgICAgICAgIFxjIDAgaWYgdGhlIHBvaW50IGlzIGEgdmFsaWQgcHJpdmF0ZSBrZXkuCi0gKiBccmV0dXJuICAgICAgICAgICNNQkVEVExTX0VSUl9FQ1BfSU5WQUxJRF9LRVkgaWYgdGhlIHBvaW50IGlzIG5vdCBhIHZhbGlkCi0gKiAgICAgICAgICAgICAgICAgIHByaXZhdGUga2V5IGZvciB0aGUgZ2l2ZW4gY3VydmUuCi0gKiBccmV0dXJuICAgICAgICAgIEFub3RoZXIgbmVnYXRpdmUgZXJyb3IgY29kZSBvbiBvdGhlciBraW5kcyBvZiBmYWlsdXJlLgotICovCi1pbnQgbWJlZHRsc19lY3BfY2hlY2tfcHJpdmtleShjb25zdCBtYmVkdGxzX2VjcF9ncm91cCAqZ3JwLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbWJlZHRsc19tcGkgKmQpOwotCi0vKioKLSAqIFxicmllZiAgICAgICAgICAgVGhpcyBmdW5jdGlvbiBnZW5lcmF0ZXMgYSBwcml2YXRlIGtleS4KLSAqCi0gKiBccGFyYW0gZ3JwICAgICAgIFRoZSBFQ1AgZ3JvdXAgdG8gZ2VuZXJhdGUgYSBwcml2YXRlIGtleSBmb3IuCi0gKiAgICAgICAgICAgICAgICAgIFRoaXMgbXVzdCBiZSBpbml0aWFsaXplZCBhbmQgaGF2ZSBncm91cCBwYXJhbWV0ZXJzCi0gKiAgICAgICAgICAgICAgICAgIHNldCwgZm9yIGV4YW1wbGUgdGhyb3VnaCBtYmVkdGxzX2VjcF9ncm91cF9sb2FkKCkuCi0gKiBccGFyYW0gZCAgICAgICAgIFRoZSBkZXN0aW5hdGlvbiBNUEkgKHNlY3JldCBwYXJ0KS4gVGhpcyBtdXN0IGJlIGluaXRpYWxpemVkLgotICogXHBhcmFtIGZfcm5nICAgICBUaGUgUk5HIGZ1bmN0aW9uLiBUaGlzIG11c3Qgbm90IGJlIFxjIE5VTEwuCi0gKiBccGFyYW0gcF9ybmcgICAgIFRoZSBSTkcgcGFyYW1ldGVyIHRvIGJlIHBhc3NlZCB0byBccCBmX3JuZy4gVGhpcyBtYXkgYmUKLSAqICAgICAgICAgICAgICAgICAgXGMgTlVMTCBpZiBccCBmX3JuZyBkb2Vzbid0IG5lZWQgYSBjb250ZXh0IGFyZ3VtZW50LgotICoKLSAqIFxyZXR1cm4gICAgICAgICAgXGMgMCBvbiBzdWNjZXNzLgotICogXHJldHVybiAgICAgICAgICBBbiBcYyBNQkVEVExTX0VSUl9FQ1BfWFhYIG9yIFxjIE1CRURUTFNfTVBJX1hYWCBlcnJvciBjb2RlCi0gKiAgICAgICAgICAgICAgICAgIG9uIGZhaWx1cmUuCi0gKi8KLWludCBtYmVkdGxzX2VjcF9nZW5fcHJpdmtleShjb25zdCBtYmVkdGxzX2VjcF9ncm91cCAqZ3JwLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1iZWR0bHNfbXBpICpkLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCAoKmZfcm5nKSh2b2lkICosIHVuc2lnbmVkIGNoYXIgKiwgc2l6ZV90KSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB2b2lkICpwX3JuZyk7Ci0KLS8qKgotICogXGJyaWVmICAgICAgICAgICBUaGlzIGZ1bmN0aW9uIGdlbmVyYXRlcyBhIGtleXBhaXIgd2l0aCBhIGNvbmZpZ3VyYWJsZSBiYXNlCi0gKiAgICAgICAgICAgICAgICAgIHBvaW50LgotICoKLSAqIFxub3RlICAgICAgICAgICAgVGhpcyBmdW5jdGlvbiB1c2VzIGJhcmUgY29tcG9uZW50cyByYXRoZXIgdGhhbiBhbgotICogICAgICAgICAgICAgICAgICA6Om1iZWR0bHNfZWNwX2tleXBhaXIgc3RydWN0dXJlIHRvIGVhc2UgdXNlIHdpdGggb3RoZXIKLSAqICAgICAgICAgICAgICAgICAgc3RydWN0dXJlcywgc3VjaCBhcyA6Om1iZWR0bHNfZWNkaF9jb250ZXh0IG9yCi0gKiAgICAgICAgICAgICAgICAgIDo6bWJlZHRsc19lY2RzYV9jb250ZXh0LgotICoKLSAqIFxwYXJhbSBncnAgICAgICAgVGhlIEVDUCBncm91cCB0byBnZW5lcmF0ZSBhIGtleSBwYWlyIGZvci4KLSAqICAgICAgICAgICAgICAgICAgVGhpcyBtdXN0IGJlIGluaXRpYWxpemVkIGFuZCBoYXZlIGdyb3VwIHBhcmFtZXRlcnMKLSAqICAgICAgICAgICAgICAgICAgc2V0LCBmb3IgZXhhbXBsZSB0aHJvdWdoIG1iZWR0bHNfZWNwX2dyb3VwX2xvYWQoKS4KLSAqIFxwYXJhbSBHICAgICAgICAgVGhlIGJhc2UgcG9pbnQgdG8gdXNlLiBUaGlzIG11c3QgYmUgaW5pdGlhbGl6ZWQKLSAqICAgICAgICAgICAgICAgICAgYW5kIGJlbG9uZyB0byBccCBncnAuIEl0IHJlcGxhY2VzIHRoZSBkZWZhdWx0IGJhc2UKLSAqICAgICAgICAgICAgICAgICAgcG9pbnQgXGMgZ3JwLT5HIHVzZWQgYnkgbWJlZHRsc19lY3BfZ2VuX2tleXBhaXIoKS4KLSAqIFxwYXJhbSBkICAgICAgICAgVGhlIGRlc3RpbmF0aW9uIE1QSSAoc2VjcmV0IHBhcnQpLgotICogICAgICAgICAgICAgICAgICBUaGlzIG11c3QgYmUgaW5pdGlhbGl6ZWQuCi0gKiBccGFyYW0gUSAgICAgICAgIFRoZSBkZXN0aW5hdGlvbiBwb2ludCAocHVibGljIHBhcnQpLgotICogICAgICAgICAgICAgICAgICBUaGlzIG11c3QgYmUgaW5pdGlhbGl6ZWQuCi0gKiBccGFyYW0gZl9ybmcgICAgIFRoZSBSTkcgZnVuY3Rpb24uIFRoaXMgbXVzdCBub3QgYmUgXGMgTlVMTC4KLSAqIFxwYXJhbSBwX3JuZyAgICAgVGhlIFJORyBjb250ZXh0IHRvIGJlIHBhc3NlZCB0byBccCBmX3JuZy4gVGhpcyBtYXkKLSAqICAgICAgICAgICAgICAgICAgYmUgXGMgTlVMTCBpZiBccCBmX3JuZyBkb2Vzbid0IG5lZWQgYSBjb250ZXh0IGFyZ3VtZW50LgotICoKLSAqIFxyZXR1cm4gICAgICAgICAgXGMgMCBvbiBzdWNjZXNzLgotICogXHJldHVybiAgICAgICAgICBBbiBcYyBNQkVEVExTX0VSUl9FQ1BfWFhYIG9yIFxjIE1CRURUTFNfTVBJX1hYWCBlcnJvciBjb2RlCi0gKiAgICAgICAgICAgICAgICAgIG9uIGZhaWx1cmUuCi0gKi8KLWludCBtYmVkdGxzX2VjcF9nZW5fa2V5cGFpcl9iYXNlKG1iZWR0bHNfZWNwX2dyb3VwICpncnAsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBtYmVkdGxzX2VjcF9wb2ludCAqRywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1iZWR0bHNfbXBpICpkLCBtYmVkdGxzX2VjcF9wb2ludCAqUSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCAoKmZfcm5nKSh2b2lkICosIHVuc2lnbmVkIGNoYXIgKiwgc2l6ZV90KSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZvaWQgKnBfcm5nKTsKLQotLyoqCi0gKiBcYnJpZWYgICAgICAgICAgIFRoaXMgZnVuY3Rpb24gZ2VuZXJhdGVzIGFuIEVDUCBrZXlwYWlyLgotICoKLSAqIFxub3RlICAgICAgICAgICAgVGhpcyBmdW5jdGlvbiB1c2VzIGJhcmUgY29tcG9uZW50cyByYXRoZXIgdGhhbiBhbgotICogICAgICAgICAgICAgICAgICA6Om1iZWR0bHNfZWNwX2tleXBhaXIgc3RydWN0dXJlIHRvIGVhc2UgdXNlIHdpdGggb3RoZXIKLSAqICAgICAgICAgICAgICAgICAgc3RydWN0dXJlcywgc3VjaCBhcyA6Om1iZWR0bHNfZWNkaF9jb250ZXh0IG9yCi0gKiAgICAgICAgICAgICAgICAgIDo6bWJlZHRsc19lY2RzYV9jb250ZXh0LgotICoKLSAqIFxwYXJhbSBncnAgICAgICAgVGhlIEVDUCBncm91cCB0byBnZW5lcmF0ZSBhIGtleSBwYWlyIGZvci4KLSAqICAgICAgICAgICAgICAgICAgVGhpcyBtdXN0IGJlIGluaXRpYWxpemVkIGFuZCBoYXZlIGdyb3VwIHBhcmFtZXRlcnMKLSAqICAgICAgICAgICAgICAgICAgc2V0LCBmb3IgZXhhbXBsZSB0aHJvdWdoIG1iZWR0bHNfZWNwX2dyb3VwX2xvYWQoKS4KLSAqIFxwYXJhbSBkICAgICAgICAgVGhlIGRlc3RpbmF0aW9uIE1QSSAoc2VjcmV0IHBhcnQpLgotICogICAgICAgICAgICAgICAgICBUaGlzIG11c3QgYmUgaW5pdGlhbGl6ZWQuCi0gKiBccGFyYW0gUSAgICAgICAgIFRoZSBkZXN0aW5hdGlvbiBwb2ludCAocHVibGljIHBhcnQpLgotICogICAgICAgICAgICAgICAgICBUaGlzIG11c3QgYmUgaW5pdGlhbGl6ZWQuCi0gKiBccGFyYW0gZl9ybmcgICAgIFRoZSBSTkcgZnVuY3Rpb24uIFRoaXMgbXVzdCBub3QgYmUgXGMgTlVMTC4KLSAqIFxwYXJhbSBwX3JuZyAgICAgVGhlIFJORyBjb250ZXh0IHRvIGJlIHBhc3NlZCB0byBccCBmX3JuZy4gVGhpcyBtYXkKLSAqICAgICAgICAgICAgICAgICAgYmUgXGMgTlVMTCBpZiBccCBmX3JuZyBkb2Vzbid0IG5lZWQgYSBjb250ZXh0IGFyZ3VtZW50LgotICoKLSAqIFxyZXR1cm4gICAgICAgICAgXGMgMCBvbiBzdWNjZXNzLgotICogXHJldHVybiAgICAgICAgICBBbiBcYyBNQkVEVExTX0VSUl9FQ1BfWFhYIG9yIFxjIE1CRURUTFNfTVBJX1hYWCBlcnJvciBjb2RlCi0gKiAgICAgICAgICAgICAgICAgIG9uIGZhaWx1cmUuCi0gKi8KLWludCBtYmVkdGxzX2VjcF9nZW5fa2V5cGFpcihtYmVkdGxzX2VjcF9ncm91cCAqZ3JwLCBtYmVkdGxzX21waSAqZCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYmVkdGxzX2VjcF9wb2ludCAqUSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgKCpmX3JuZykodm9pZCAqLCB1bnNpZ25lZCBjaGFyICosIHNpemVfdCksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgdm9pZCAqcF9ybmcpOwotCi0vKioKLSAqIFxicmllZiAgICAgICAgICAgVGhpcyBmdW5jdGlvbiBnZW5lcmF0ZXMgYW4gRUNQIGtleS4KLSAqCi0gKiBccGFyYW0gZ3JwX2lkICAgIFRoZSBFQ1AgZ3JvdXAgaWRlbnRpZmllci4KLSAqIFxwYXJhbSBrZXkgICAgICAgVGhlIGRlc3RpbmF0aW9uIGtleS4gVGhpcyBtdXN0IGJlIGluaXRpYWxpemVkLgotICogXHBhcmFtIGZfcm5nICAgICBUaGUgUk5HIGZ1bmN0aW9uIHRvIHVzZS4gVGhpcyBtdXN0IG5vdCBiZSBcYyBOVUxMLgotICogXHBhcmFtIHBfcm5nICAgICBUaGUgUk5HIGNvbnRleHQgdG8gYmUgcGFzc2VkIHRvIFxwIGZfcm5nLiBUaGlzIG1heQotICogICAgICAgICAgICAgICAgICBiZSBcYyBOVUxMIGlmIFxwIGZfcm5nIGRvZXNuJ3QgbmVlZCBhIGNvbnRleHQgYXJndW1lbnQuCi0gKgotICogXHJldHVybiAgICAgICAgICBcYyAwIG9uIHN1Y2Nlc3MuCi0gKiBccmV0dXJuICAgICAgICAgIEFuIFxjIE1CRURUTFNfRVJSX0VDUF9YWFggb3IgXGMgTUJFRFRMU19NUElfWFhYIGVycm9yIGNvZGUKLSAqICAgICAgICAgICAgICAgICAgb24gZmFpbHVyZS4KLSAqLwotaW50IG1iZWR0bHNfZWNwX2dlbl9rZXkobWJlZHRsc19lY3BfZ3JvdXBfaWQgZ3JwX2lkLCBtYmVkdGxzX2VjcF9rZXlwYWlyICprZXksCi0gICAgICAgICAgICAgICAgICAgICAgICBpbnQgKCpmX3JuZykodm9pZCAqLCB1bnNpZ25lZCBjaGFyICosIHNpemVfdCksCi0gICAgICAgICAgICAgICAgICAgICAgICB2b2lkICpwX3JuZyk7Ci0KLS8qKiBcYnJpZWYgICAgICAgICAgU2V0IHRoZSBwdWJsaWMga2V5IGluIGEga2V5IHBhaXIgb2JqZWN0LgotICoKLSAqIFxub3RlICAgICAgICAgICAgVGhpcyBmdW5jdGlvbiBkb2VzIG5vdCBjaGVjayB0aGF0IHRoZSBwb2ludCBhY3R1YWxseQotICogICAgICAgICAgICAgICAgICBiZWxvbmdzIHRvIHRoZSBnaXZlbiBncm91cC4gQ2FsbCBtYmVkdGxzX2VjcF9jaGVja19wdWJrZXkoKQotICogICAgICAgICAgICAgICAgICBvbiBccCBRIGJlZm9yZSBjYWxsaW5nIHRoaXMgZnVuY3Rpb24gdG8gY2hlY2sgdGhhdC4KLSAqCi0gKiBcbm90ZSAgICAgICAgICAgIFRoaXMgZnVuY3Rpb24gZG9lcyBub3QgY2hlY2sgdGhhdCB0aGUgcHVibGljIGtleSBtYXRjaGVzCi0gKiAgICAgICAgICAgICAgICAgIHRoZSBwcml2YXRlIGtleSB0aGF0IGlzIGFscmVhZHkgaW4gXHAga2V5LCBpZiBhbnkuCi0gKiAgICAgICAgICAgICAgICAgIFRvIGNoZWNrIHRoZSBjb25zaXN0ZW5jeSBvZiB0aGUgcmVzdWx0aW5nIGtleSBwYWlyIG9iamVjdCwKLSAqICAgICAgICAgICAgICAgICAgY2FsbCBtYmVkdGxzX2VjcF9jaGVja19wdWJfcHJpdigpIGFmdGVyIHNldHRpbmcgYm90aAotICogICAgICAgICAgICAgICAgICB0aGUgcHVibGljIGtleSBhbmQgdGhlIHByaXZhdGUga2V5LgotICoKLSAqIFxwYXJhbSBncnBfaWQgICAgVGhlIEVDUCBncm91cCBpZGVudGlmaWVyLgotICogXHBhcmFtIGtleSAgICAgICBUaGUga2V5IHBhaXIgb2JqZWN0LiBJdCBtdXN0IGJlIGluaXRpYWxpemVkLgotICogICAgICAgICAgICAgICAgICBJZiBpdHMgZ3JvdXAgaGFzIGFscmVhZHkgYmVlbiBzZXQsIGl0IG11c3QgbWF0Y2ggXHAgZ3JwX2lkLgotICogICAgICAgICAgICAgICAgICBJZiBpdHMgZ3JvdXAgaGFzIG5vdCBiZWVuIHNldCwgaXQgd2lsbCBiZSBzZXQgdG8gXHAgZ3JwX2lkLgotICogICAgICAgICAgICAgICAgICBJZiB0aGUgcHVibGljIGtleSBoYXMgYWxyZWFkeSBiZWVuIHNldCwgaXQgaXMgb3ZlcndyaXR0ZW4uCi0gKiBccGFyYW0gUSAgICAgICAgIFRoZSBwdWJsaWMga2V5IHRvIGNvcHkuIFRoaXMgbXVzdCBiZSBhIHBvaW50IG9uIHRoZQotICogICAgICAgICAgICAgICAgICBjdXJ2ZSBpbmRpY2F0ZWQgYnkgXHAgZ3JwX2lkLgotICoKLSAqIFxyZXR1cm4gICAgICAgICAgXGMgMCBvbiBzdWNjZXNzLgotICogXHJldHVybiAgICAgICAgICAjTUJFRFRMU19FUlJfRUNQX0JBRF9JTlBVVF9EQVRBIGlmIFxwIGtleSBkb2VzIG5vdAotICogICAgICAgICAgICAgICAgICBtYXRjaCBccCBncnBfaWQuCi0gKiBccmV0dXJuICAgICAgICAgICNNQkVEVExTX0VSUl9FQ1BfRkVBVFVSRV9VTkFWQUlMQUJMRSBpZiB0aGUgb3BlcmF0aW9uIGZvcgotICogICAgICAgICAgICAgICAgICB0aGUgZ3JvdXAgaXMgbm90IGltcGxlbWVudGVkLgotICogXHJldHVybiAgICAgICAgICAjTUJFRFRMU19FUlJfTVBJX0FMTE9DX0ZBSUxFRCBvbiBtZW1vcnktYWxsb2NhdGlvbiBmYWlsdXJlLgotICogXHJldHVybiAgICAgICAgICBBbm90aGVyIG5lZ2F0aXZlIGVycm9yIGNvZGUgb24gb3RoZXIga2luZHMgb2YgZmFpbHVyZS4KLSAqLwotaW50IG1iZWR0bHNfZWNwX3NldF9wdWJsaWNfa2V5KG1iZWR0bHNfZWNwX2dyb3VwX2lkIGdycF9pZCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYmVkdGxzX2VjcF9rZXlwYWlyICprZXksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbWJlZHRsc19lY3BfcG9pbnQgKlEpOwotCi0vKioKLSAqIFxicmllZiAgICAgICAgICAgVGhpcyBmdW5jdGlvbiByZWFkcyBhbiBlbGxpcHRpYyBjdXJ2ZSBwcml2YXRlIGtleS4KLSAqCi0gKiBcbm90ZSAgICAgICAgICAgIFRoaXMgZnVuY3Rpb24gZG9lcyBub3Qgc2V0IHRoZSBwdWJsaWMga2V5IGluIHRoZQotICogICAgICAgICAgICAgICAgICBrZXkgcGFpciBvYmplY3QuIFdpdGhvdXQgYSBwdWJsaWMga2V5LCB0aGUga2V5IHBhaXIgb2JqZWN0Ci0gKiAgICAgICAgICAgICAgICAgIGNhbm5vdCBiZSB1c2VkIHdpdGggb3BlcmF0aW9ucyB0aGF0IHJlcXVpcmUgdGhlIHB1YmxpYyBrZXkuCi0gKiAgICAgICAgICAgICAgICAgIENhbGwgbWJlZHRsc19lY3Bfa2V5cGFpcl9jYWxjX3B1YmxpYygpIHRvIHNldCB0aGUgcHVibGljCi0gKiAgICAgICAgICAgICAgICAgIGtleSBmcm9tIHRoZSBwcml2YXRlIGtleS4gQWx0ZXJuYXRpdmVseSwgeW91IGNhbiBjYWxsCi0gKiAgICAgICAgICAgICAgICAgIG1iZWR0bHNfZWNwX3NldF9wdWJsaWNfa2V5KCkgdG8gc2V0IHRoZSBwdWJsaWMga2V5IHBhcnQsCi0gKiAgICAgICAgICAgICAgICAgIGFuZCB0aGVuIG9wdGlvbmFsbHkgbWJlZHRsc19lY3BfY2hlY2tfcHViX3ByaXYoKSB0byBjaGVjawotICogICAgICAgICAgICAgICAgICB0aGF0IHRoZSBwcml2YXRlIGFuZCBwdWJsaWMgcGFydHMgYXJlIGNvbnNpc3RlbnQuCi0gKgotICogXG5vdGUgICAgICAgICAgICBJZiBhIHB1YmxpYyBrZXkgaGFzIGFscmVhZHkgYmVlbiBzZXQgaW4gdGhlIGtleSBwYWlyCi0gKiAgICAgICAgICAgICAgICAgIG9iamVjdCwgdGhpcyBmdW5jdGlvbiBkb2VzIG5vdCBjaGVjayB0aGF0IGl0IGlzIGNvbnNpc3RlbnQKLSAqICAgICAgICAgICAgICAgICAgd2l0aCB0aGUgcHJpdmF0ZSBrZXkuIENhbGwgbWJlZHRsc19lY3BfY2hlY2tfcHViX3ByaXYoKQotICogICAgICAgICAgICAgICAgICBhZnRlciBzZXR0aW5nIGJvdGggdGhlIHB1YmxpYyBrZXkgYW5kIHRoZSBwcml2YXRlIGtleQotICogICAgICAgICAgICAgICAgICB0byBtYWtlIHRoYXQgY2hlY2suCi0gKgotICogXHBhcmFtIGdycF9pZCAgICBUaGUgRUNQIGdyb3VwIGlkZW50aWZpZXIuCi0gKiBccGFyYW0ga2V5ICAgICAgIFRoZSBkZXN0aW5hdGlvbiBrZXkuCi0gKiBccGFyYW0gYnVmICAgICAgIFRoZSBidWZmZXIgY29udGFpbmluZyB0aGUgYmluYXJ5IHJlcHJlc2VudGF0aW9uIG9mIHRoZQotICogICAgICAgICAgICAgICAgICBrZXkuIChCaWcgZW5kaWFuIGludGVnZXIgZm9yIFdlaWVyc3RyYXNzIGN1cnZlcywgYnl0ZQotICogICAgICAgICAgICAgICAgICBzdHJpbmcgZm9yIE1vbnRnb21lcnkgY3VydmVzLikKLSAqIFxwYXJhbSBidWZsZW4gICAgVGhlIGxlbmd0aCBvZiB0aGUgYnVmZmVyIGluIGJ5dGVzLgotICoKLSAqIFxyZXR1cm4gICAgICAgICAgXGMgMCBvbiBzdWNjZXNzLgotICogXHJldHVybiAgICAgICAgICAjTUJFRFRMU19FUlJfRUNQX0lOVkFMSURfS0VZIGVycm9yIGlmIHRoZSBrZXkgaXMKLSAqICAgICAgICAgICAgICAgICAgaW52YWxpZC4KLSAqIFxyZXR1cm4gICAgICAgICAgI01CRURUTFNfRVJSX01QSV9BTExPQ19GQUlMRUQgaWYgbWVtb3J5IGFsbG9jYXRpb24gZmFpbGVkLgotICogXHJldHVybiAgICAgICAgICAjTUJFRFRMU19FUlJfRUNQX0ZFQVRVUkVfVU5BVkFJTEFCTEUgaWYgdGhlIG9wZXJhdGlvbiBmb3IKLSAqICAgICAgICAgICAgICAgICAgdGhlIGdyb3VwIGlzIG5vdCBpbXBsZW1lbnRlZC4KLSAqIFxyZXR1cm4gICAgICAgICAgQW5vdGhlciBuZWdhdGl2ZSBlcnJvciBjb2RlIG9uIGRpZmZlcmVudCBraW5kcyBvZiBmYWlsdXJlLgotICovCi1pbnQgbWJlZHRsc19lY3BfcmVhZF9rZXkobWJlZHRsc19lY3BfZ3JvdXBfaWQgZ3JwX2lkLCBtYmVkdGxzX2VjcF9rZXlwYWlyICprZXksCi0gICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdW5zaWduZWQgY2hhciAqYnVmLCBzaXplX3QgYnVmbGVuKTsKLQotI2lmICFkZWZpbmVkKE1CRURUTFNfREVQUkVDQVRFRF9SRU1PVkVEKQotLyoqCi0gKiBcYnJpZWYgICAgICAgICAgIFRoaXMgZnVuY3Rpb24gZXhwb3J0cyBhbiBlbGxpcHRpYyBjdXJ2ZSBwcml2YXRlIGtleS4KLSAqCi0gKiBcZGVwcmVjYXRlZCAgICAgIE5vdGUgdGhhdCBhbHRob3VnaCB0aGlzIGZ1bmN0aW9uIGFjY2VwdHMgYW4gb3V0cHV0Ci0gKiAgICAgICAgICAgICAgICAgIGJ1ZmZlciB0aGF0IGlzIHNtYWxsZXIgb3IgbGFyZ2VyIHRoYW4gdGhlIGtleSwgbW9zdCBrZXkKLSAqICAgICAgICAgICAgICAgICAgaW1wb3J0IGludGVyZmFjZXMgcmVxdWlyZSB0aGUgb3V0cHV0IHRvIGhhdmUgZXhhY3RseQotICogICAgICAgICAgICAgICAgICBrZXkncyBub21pbmFsIGxlbmd0aC4gSXQgaXMgZ2VuZXJhbGx5IHNpbXBsZXN0IHRvCi0gKiAgICAgICAgICAgICAgICAgIHBhc3MgdGhlIGtleSdzIG5vbWluYWwgbGVuZ3RoIGFzIFxjIGJ1ZmxlbiwgYWZ0ZXIKLSAqICAgICAgICAgICAgICAgICAgY2hlY2tpbmcgdGhhdCB0aGUgb3V0cHV0IGJ1ZmZlciBpcyBsYXJnZSBlbm91Z2guCi0gKiAgICAgICAgICAgICAgICAgIFNlZSB0aGUgZGVzY3JpcHRpb24gb2YgdGhlIFxwIGJ1ZmxlbiBwYXJhbWV0ZXIgZm9yCi0gKiAgICAgICAgICAgICAgICAgIGhvdyB0byBjYWxjdWxhdGUgdGhlIG5vbWluYWwgbGVuZ3RoLgotICogICAgICAgICAgICAgICAgICBUbyBhdm9pZCB0aGlzIGRpZmZpY3VsdHksIHVzZSBtYmVkdGxzX2VjcF93cml0ZV9rZXlfZXh0KCkKLSAqICAgICAgICAgICAgICAgICAgaW5zdGVhZC4KLSAqICAgICAgICAgICAgICAgICAgbWJlZHRsc19lY3Bfd3JpdGVfa2V5KCkgaXMgZGVwcmVjYXRlZCBhbmQgd2lsbCBiZQotICogICAgICAgICAgICAgICAgICByZW1vdmVkIGluIGEgZnV0dXJlIHZlcnNpb24gb2YgdGhlIGxpYnJhcnkuCi0gKgotICogXG5vdGUgICAgICAgICAgICBJZiB0aGUgcHJpdmF0ZSBrZXkgd2FzIG5vdCBzZXQgaW4gXHAga2V5LAotICogICAgICAgICAgICAgICAgICB0aGUgb3V0cHV0IGlzIHVuc3BlY2lmaWVkLiBGdXR1cmUgdmVyc2lvbnMKLSAqICAgICAgICAgICAgICAgICAgbWF5IHJldHVybiBhbiBlcnJvciBpbiB0aGF0IGNhc2UuCi0gKgotICogXHBhcmFtIGtleSAgICAgICBUaGUgcHJpdmF0ZSBrZXkuCi0gKiBccGFyYW0gYnVmICAgICAgIFRoZSBvdXRwdXQgYnVmZmVyIGZvciBjb250YWluaW5nIHRoZSBiaW5hcnkgcmVwcmVzZW50YXRpb24KLSAqICAgICAgICAgICAgICAgICAgb2YgdGhlIGtleS4KLSAqICAgICAgICAgICAgICAgICAgRm9yIFdlaWVyc3RyYXNzIGN1cnZlcywgdGhpcyBpcyB0aGUgYmlnLWVuZGlhbgotICogICAgICAgICAgICAgICAgICByZXByZXNlbnRhdGlvbiwgcGFkZGVkIHdpdGggbnVsbCBieXRlcyBhdCB0aGUgYmVnaW5uaW5nCi0gKiAgICAgICAgICAgICAgICAgIHRvIHJlYWNoIFxwIGJ1ZmxlbiBieXRlcy4KLSAqICAgICAgICAgICAgICAgICAgRm9yIE1vbnRnb21lcnkgY3VydmVzLCB0aGlzIGlzIHRoZSBzdGFuZGFyZCBieXRlIHN0cmluZwotICogICAgICAgICAgICAgICAgICByZXByZXNlbnRhdGlvbiAod2hpY2ggaXMgbGl0dGxlLWVuZGlhbiksIHBhZGRlZCB3aXRoCi0gKiAgICAgICAgICAgICAgICAgIG51bGwgYnl0ZXMgYXQgdGhlIGVuZCB0byByZWFjaCBccCBidWZsZW4gYnl0ZXMuCi0gKiBccGFyYW0gYnVmbGVuICAgIFRoZSB0b3RhbCBsZW5ndGggb2YgdGhlIGJ1ZmZlciBpbiBieXRlcy4KLSAqICAgICAgICAgICAgICAgICAgVGhlIGxlbmd0aCBvZiB0aGUgb3V0cHV0IGlzCi0gKiAgICAgICAgICAgICAgICAgIChgZ3JwLT5uYml0c2AgKyA3KSAvIDggYnl0ZXMKLSAqICAgICAgICAgICAgICAgICAgd2hlcmUgYGdycC0+bmJpdHNgIGlzIHRoZSBwcml2YXRlIGtleSBzaXplIGluIGJpdHMuCi0gKiAgICAgICAgICAgICAgICAgIEZvciBXZWllcnN0cmFzcyBrZXlzLCBpZiB0aGUgb3V0cHV0IGJ1ZmZlciBpcyBzbWFsbGVyLAotICogICAgICAgICAgICAgICAgICBsZWFkaW5nIHplcm9zIGFyZSB0cmltbWVkIHRvIGZpdCBpZiBwb3NzaWJsZS4gRm9yCi0gKiAgICAgICAgICAgICAgICAgIE1vbnRnb21lcnkga2V5cywgdGhlIG91dHB1dCBidWZmZXIgbXVzdCBhbHdheXMgYmUgbGFyZ2UKLSAqICAgICAgICAgICAgICAgICAgZW5vdWdoIGZvciB0aGUgbm9taW5hbCBsZW5ndGguCi0gKgotICogXHJldHVybiAgICAgICAgICBcYyAwIG9uIHN1Y2Nlc3MuCi0gKiBccmV0dXJuICAgICAgICAgICNNQkVEVExTX0VSUl9FQ1BfQlVGRkVSX1RPT19TTUFMTCBvcgotICogICAgICAgICAgICAgICAgICAjTUJFRFRMU19FUlJfTVBJX0JVRkZFUl9UT09fU01BTEwgaWYgdGhlIFxwIGtleQotICogICAgICAgICAgICAgICAgICByZXByZXNlbnRhdGlvbiBpcyBsYXJnZXIgdGhhbiB0aGUgYXZhaWxhYmxlIHNwYWNlIGluIFxwIGJ1Zi4KLSAqIFxyZXR1cm4gICAgICAgICAgQW5vdGhlciBuZWdhdGl2ZSBlcnJvciBjb2RlIG9uIGRpZmZlcmVudCBraW5kcyBvZiBmYWlsdXJlLgotICovCi1pbnQgTUJFRFRMU19ERVBSRUNBVEVEIG1iZWR0bHNfZWNwX3dyaXRlX2tleShtYmVkdGxzX2VjcF9rZXlwYWlyICprZXksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBjaGFyICpidWYsIHNpemVfdCBidWZsZW4pOwotI2VuZGlmIC8qIE1CRURUTFNfREVQUkVDQVRFRF9SRU1PVkVEICovCi0KLS8qKgotICogXGJyaWVmICAgICAgICAgICBUaGlzIGZ1bmN0aW9uIGV4cG9ydHMgYW4gZWxsaXB0aWMgY3VydmUgcHJpdmF0ZSBrZXkuCi0gKgotICogXHBhcmFtIGtleSAgICAgICBUaGUgcHJpdmF0ZSBrZXkuCi0gKiBccGFyYW0gb2xlbiAgICAgIE9uIHN1Y2Nlc3MsIHRoZSBsZW5ndGggb2YgdGhlIHByaXZhdGUga2V5LgotICogICAgICAgICAgICAgICAgICBUaGlzIGlzIGFsd2F5cyAoYGdycC0+bmJpdHNgICsgNykgLyA4IGJ5dGVzCi0gKiAgICAgICAgICAgICAgICAgIHdoZXJlIGBncnAtPm5iaXRzYCBpcyB0aGUgcHJpdmF0ZSBrZXkgc2l6ZSBpbiBiaXRzLgotICogXHBhcmFtIGJ1ZiAgICAgICBUaGUgb3V0cHV0IGJ1ZmZlciBmb3IgY29udGFpbmluZyB0aGUgYmluYXJ5IHJlcHJlc2VudGF0aW9uCi0gKiAgICAgICAgICAgICAgICAgIG9mIHRoZSBrZXkuCi0gKiBccGFyYW0gYnVmbGVuICAgIFRoZSB0b3RhbCBsZW5ndGggb2YgdGhlIGJ1ZmZlciBpbiBieXRlcy4KLSAqICAgICAgICAgICAgICAgICAgI01CRURUTFNfRUNQX01BWF9CWVRFUyBpcyBhbHdheXMgc3VmZmljaWVudC4KLSAqCi0gKiBccmV0dXJuICAgICAgICAgIFxjIDAgb24gc3VjY2Vzcy4KLSAqIFxyZXR1cm4gICAgICAgICAgI01CRURUTFNfRVJSX0VDUF9CVUZGRVJfVE9PX1NNQUxMIGlmIHRoZSBccCBrZXkKLSAqICAgICAgICAgICAgICAgICAgcmVwcmVzZW50YXRpb24gaXMgbGFyZ2VyIHRoYW4gdGhlIGF2YWlsYWJsZSBzcGFjZSBpbiBccCBidWYuCi0gKiBccmV0dXJuICAgICAgICAgICNNQkVEVExTX0VSUl9FQ1BfQkFEX0lOUFVUX0RBVEEgaWYgbm8gcHJpdmF0ZSBrZXkgaXMKLSAqICAgICAgICAgICAgICAgICAgc2V0IGluIFxwIGtleS4KLSAqIFxyZXR1cm4gICAgICAgICAgQW5vdGhlciBuZWdhdGl2ZSBlcnJvciBjb2RlIG9uIGRpZmZlcmVudCBraW5kcyBvZiBmYWlsdXJlLgotICovCi1pbnQgbWJlZHRsc19lY3Bfd3JpdGVfa2V5X2V4dChjb25zdCBtYmVkdGxzX2VjcF9rZXlwYWlyICprZXksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgKm9sZW4sIHVuc2lnbmVkIGNoYXIgKmJ1Ziwgc2l6ZV90IGJ1Zmxlbik7Ci0KLS8qKgotICogXGJyaWVmICAgICAgICAgICBUaGlzIGZ1bmN0aW9uIGV4cG9ydHMgYW4gZWxsaXB0aWMgY3VydmUgcHVibGljIGtleS4KLSAqCi0gKiBcbm90ZSAgICAgICAgICAgIElmIHRoZSBwdWJsaWMga2V5IHdhcyBub3Qgc2V0IGluIFxwIGtleSwKLSAqICAgICAgICAgICAgICAgICAgdGhlIG91dHB1dCBpcyB1bnNwZWNpZmllZC4gRnV0dXJlIHZlcnNpb25zCi0gKiAgICAgICAgICAgICAgICAgIG1heSByZXR1cm4gYW4gZXJyb3IgaW4gdGhhdCBjYXNlLgotICoKLSAqIFxwYXJhbSBrZXkgICAgICAgVGhlIHB1YmxpYyBrZXkuCi0gKiBccGFyYW0gZm9ybWF0ICAgIFRoZSBwb2ludCBmb3JtYXQuIFRoaXMgbXVzdCBiZSBlaXRoZXIKLSAqICAgICAgICAgICAgICAgICAgI01CRURUTFNfRUNQX1BGX0NPTVBSRVNTRUQgb3IgI01CRURUTFNfRUNQX1BGX1VOQ09NUFJFU1NFRC4KLSAqICAgICAgICAgICAgICAgICAgKEZvciBncm91cHMgd2l0aG91dCB0aGVzZSBmb3JtYXRzLCB0aGlzIHBhcmFtZXRlciBpcwotICogICAgICAgICAgICAgICAgICBpZ25vcmVkLiBCdXQgaXQgc3RpbGwgaGFzIHRvIGJlIGVpdGhlciBvZiB0aGUgYWJvdmUKLSAqICAgICAgICAgICAgICAgICAgdmFsdWVzLikKLSAqIFxwYXJhbSBvbGVuICAgICAgVGhlIGFkZHJlc3MgYXQgd2hpY2ggdG8gc3RvcmUgdGhlIGxlbmd0aCBvZgotICogICAgICAgICAgICAgICAgICB0aGUgb3V0cHV0IGluIEJ5dGVzLiBUaGlzIG11c3Qgbm90IGJlIFxjIE5VTEwuCi0gKiBccGFyYW0gYnVmICAgICAgIFRoZSBvdXRwdXQgYnVmZmVyLiBUaGlzIG11c3QgYmUgYSB3cml0YWJsZSBidWZmZXIKLSAqICAgICAgICAgICAgICAgICAgb2YgbGVuZ3RoIFxwIGJ1ZmxlbiBCeXRlcy4KLSAqIFxwYXJhbSBidWZsZW4gICAgVGhlIGxlbmd0aCBvZiB0aGUgb3V0cHV0IGJ1ZmZlciBccCBidWYgaW4gQnl0ZXMuCi0gKgotICogXHJldHVybiAgICAgICAgICBcYyAwIG9uIHN1Y2Nlc3MuCi0gKiBccmV0dXJuICAgICAgICAgICNNQkVEVExTX0VSUl9FQ1BfQlVGRkVSX1RPT19TTUFMTCBpZiB0aGUgb3V0cHV0IGJ1ZmZlcgotICogICAgICAgICAgICAgICAgICBpcyB0b28gc21hbGwgdG8gaG9sZCB0aGUgcG9pbnQuCi0gKiBccmV0dXJuICAgICAgICAgICNNQkVEVExTX0VSUl9FQ1BfRkVBVFVSRV9VTkFWQUlMQUJMRSBpZiB0aGUgcG9pbnQgZm9ybWF0Ci0gKiAgICAgICAgICAgICAgICAgIG9yIHRoZSBleHBvcnQgZm9yIHRoZSBnaXZlbiBncm91cCBpcyBub3QgaW1wbGVtZW50ZWQuCi0gKiBccmV0dXJuICAgICAgICAgIEFub3RoZXIgbmVnYXRpdmUgZXJyb3IgY29kZSBvbiBvdGhlciBraW5kcyBvZiBmYWlsdXJlLgotICovCi1pbnQgbWJlZHRsc19lY3Bfd3JpdGVfcHVibGljX2tleShjb25zdCBtYmVkdGxzX2VjcF9rZXlwYWlyICprZXksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgZm9ybWF0LCBzaXplX3QgKm9sZW4sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBjaGFyICpidWYsIHNpemVfdCBidWZsZW4pOwotCi0vKioKLSAqIFxicmllZiAgICAgICAgICAgVGhpcyBmdW5jdGlvbiBjaGVja3MgdGhhdCB0aGUga2V5cGFpciBvYmplY3RzCi0gKiAgICAgICAgICAgICAgICAgIFxwIHB1YiBhbmQgXHAgcHJ2IGhhdmUgdGhlIHNhbWUgZ3JvdXAgYW5kIHRoZQotICogICAgICAgICAgICAgICAgICBzYW1lIHB1YmxpYyBwb2ludCwgYW5kIHRoYXQgdGhlIHByaXZhdGUga2V5IGluCi0gKiAgICAgICAgICAgICAgICAgIFxwIHBydiBpcyBjb25zaXN0ZW50IHdpdGggdGhlIHB1YmxpYyBrZXkuCi0gKgotICogXHBhcmFtIHB1YiAgICAgICBUaGUga2V5cGFpciBzdHJ1Y3R1cmUgaG9sZGluZyB0aGUgcHVibGljIGtleS4gVGhpcwotICogICAgICAgICAgICAgICAgICBtdXN0IGJlIGluaXRpYWxpemVkLiBJZiBpdCBjb250YWlucyBhIHByaXZhdGUga2V5LCB0aGF0Ci0gKiAgICAgICAgICAgICAgICAgIHBhcnQgaXMgaWdub3JlZC4KLSAqIFxwYXJhbSBwcnYgICAgICAgVGhlIGtleXBhaXIgc3RydWN0dXJlIGhvbGRpbmcgdGhlIGZ1bGwga2V5cGFpci4KLSAqICAgICAgICAgICAgICAgICAgVGhpcyBtdXN0IGJlIGluaXRpYWxpemVkLgotICogXHBhcmFtIGZfcm5nICAgICBUaGUgUk5HIGZ1bmN0aW9uLiBUaGlzIG11c3Qgbm90IGJlIFxjIE5VTEwuCi0gKiBccGFyYW0gcF9ybmcgICAgIFRoZSBSTkcgY29udGV4dCB0byBiZSBwYXNzZWQgdG8gXHAgZl9ybmcuIFRoaXMgbWF5IGJlIFxjCi0gKiAgICAgICAgICAgICAgICAgIE5VTEwgaWYgXHAgZl9ybmcgZG9lc24ndCBuZWVkIGEgY29udGV4dC4KLSAqCi0gKiBccmV0dXJuICAgICAgICAgIFxjIDAgb24gc3VjY2VzcywgbWVhbmluZyB0aGF0IHRoZSBrZXlzIGFyZSB2YWxpZCBhbmQgbWF0Y2guCi0gKiBccmV0dXJuICAgICAgICAgICNNQkVEVExTX0VSUl9FQ1BfQkFEX0lOUFVUX0RBVEEgaWYgdGhlIGtleXMgYXJlIGludmFsaWQgb3IgZG8gbm90IG1hdGNoLgotICogXHJldHVybiAgICAgICAgICBBbiBcYyBNQkVEVExTX0VSUl9FQ1BfWFhYIG9yIGFuIFxjIE1CRURUTFNfRVJSX01QSV9YWFgKLSAqICAgICAgICAgICAgICAgICAgZXJyb3IgY29kZSBvbiBjYWxjdWxhdGlvbiBmYWlsdXJlLgotICovCi1pbnQgbWJlZHRsc19lY3BfY2hlY2tfcHViX3ByaXYoCi0gICAgY29uc3QgbWJlZHRsc19lY3Bfa2V5cGFpciAqcHViLCBjb25zdCBtYmVkdGxzX2VjcF9rZXlwYWlyICpwcnYsCi0gICAgaW50ICgqZl9ybmcpKHZvaWQgKiwgdW5zaWduZWQgY2hhciAqLCBzaXplX3QpLCB2b2lkICpwX3JuZyk7Ci0KLS8qKiBcYnJpZWYgICAgICAgICAgQ2FsY3VsYXRlIHRoZSBwdWJsaWMga2V5IGZyb20gYSBwcml2YXRlIGtleSBpbiBhIGtleSBwYWlyLgotICoKLSAqIFxwYXJhbSBrZXkgICAgICAgQSBrZXlwYWlyIHN0cnVjdHVyZS4gSXQgbXVzdCBoYXZlIGEgcHJpdmF0ZSBrZXkgc2V0LgotICogICAgICAgICAgICAgICAgICBJZiB0aGUgcHVibGljIGtleSBpcyBzZXQsIGl0IHdpbGwgYmUgb3ZlcndyaXR0ZW4uCi0gKiBccGFyYW0gZl9ybmcgICAgIFRoZSBSTkcgZnVuY3Rpb24uIFRoaXMgbXVzdCBub3QgYmUgXGMgTlVMTC4KLSAqIFxwYXJhbSBwX3JuZyAgICAgVGhlIFJORyBjb250ZXh0IHRvIGJlIHBhc3NlZCB0byBccCBmX3JuZy4gVGhpcyBtYXkgYmUgXGMKLSAqICAgICAgICAgICAgICAgICAgTlVMTCBpZiBccCBmX3JuZyBkb2Vzbid0IG5lZWQgYSBjb250ZXh0LgotICoKLSAqIFxyZXR1cm4gICAgICAgICAgXGMgMCBvbiBzdWNjZXNzLiBUaGUga2V5IHBhaXIgb2JqZWN0IGNhbiBiZSB1c2VkIGZvcgotICogICAgICAgICAgICAgICAgICBvcGVyYXRpb25zIHRoYXQgcmVxdWlyZSB0aGUgcHVibGljIGtleS4KLSAqIFxyZXR1cm4gICAgICAgICAgQW4gXGMgTUJFRFRMU19FUlJfRUNQX1hYWCBvciBhbiBcYyBNQkVEVExTX0VSUl9NUElfWFhYCi0gKiAgICAgICAgICAgICAgICAgIGVycm9yIGNvZGUgb24gY2FsY3VsYXRpb24gZmFpbHVyZS4KLSAqLwotaW50IG1iZWR0bHNfZWNwX2tleXBhaXJfY2FsY19wdWJsaWMoCi0gICAgbWJlZHRsc19lY3Bfa2V5cGFpciAqa2V5LAotICAgIGludCAoKmZfcm5nKSh2b2lkICosIHVuc2lnbmVkIGNoYXIgKiwgc2l6ZV90KSwgdm9pZCAqcF9ybmcpOwotCi0vKiogXGJyaWVmICAgICAgICAgIFF1ZXJ5IHRoZSBncm91cCB0aGF0IGEga2V5IHBhaXIgYmVsb25ncyB0by4KLSAqCi0gKiBccGFyYW0ga2V5ICAgICAgIFRoZSBrZXkgcGFpciB0byBxdWVyeS4KLSAqCi0gKiBccmV0dXJuICAgICAgICAgIFRoZSBncm91cCBJRCBmb3IgdGhlIGdyb3VwIHJlZ2lzdGVyZWQgaW4gdGhlIGtleSBwYWlyCi0gKiAgICAgICAgICAgICAgICAgIG9iamVjdC4KLSAqICAgICAgICAgICAgICAgICAgVGhpcyBpcyBcYyBNQkVEVExTX0VDUF9EUF9OT05FIGlmIG5vIGdyb3VwIGhhcyBiZWVuIHNldAotICogICAgICAgICAgICAgICAgICBpbiB0aGUga2V5IHBhaXIgb2JqZWN0LgotICovCi1tYmVkdGxzX2VjcF9ncm91cF9pZCBtYmVkdGxzX2VjcF9rZXlwYWlyX2dldF9ncm91cF9pZCgKLSAgICBjb25zdCBtYmVkdGxzX2VjcF9rZXlwYWlyICprZXkpOwotCi0vKioKLSAqIFxicmllZiAgICAgICAgICAgVGhpcyBmdW5jdGlvbiBleHBvcnRzIGdlbmVyaWMga2V5LXBhaXIgcGFyYW1ldGVycy4KLSAqCi0gKiAgICAgICAgICAgICAgICAgIEVhY2ggb2YgdGhlIG91dHB1dCBwYXJhbWV0ZXJzIGNhbiBiZSBhIG51bGwgcG9pbnRlcgotICogICAgICAgICAgICAgICAgICBpZiB5b3UgZG8gbm90IG5lZWQgdGhhdCBwYXJhbWV0ZXIuCi0gKgotICogXG5vdGUgICAgICAgICAgICBJZiB0aGUgcHJpdmF0ZSBrZXkgb3IgdGhlIHB1YmxpYyBrZXkgd2FzIG5vdCBzZXQgaW4gXHAga2V5LAotICogICAgICAgICAgICAgICAgICB0aGUgY29ycmVzcG9uZGluZyBvdXRwdXQgaXMgdW5zcGVjaWZpZWQuIEZ1dHVyZSB2ZXJzaW9ucwotICogICAgICAgICAgICAgICAgICBtYXkgcmV0dXJuIGFuIGVycm9yIGluIHRoYXQgY2FzZS4KLSAqCi0gKiBccGFyYW0ga2V5ICAgICAgIFRoZSBrZXkgcGFpciB0byBleHBvcnQgZnJvbS4KLSAqIFxwYXJhbSBncnAgICAgICAgU2xvdCBmb3IgZXhwb3J0ZWQgRUNQIGdyb3VwLgotICogICAgICAgICAgICAgICAgICBJdCBtdXN0IGVpdGhlciBiZSBudWxsIG9yIHBvaW50IHRvIGFuIGluaXRpYWxpemVkIEVDUCBncm91cC4KLSAqIFxwYXJhbSBkICAgICAgICAgU2xvdCBmb3IgdGhlIGV4cG9ydGVkIHNlY3JldCB2YWx1ZS4KLSAqICAgICAgICAgICAgICAgICAgSXQgbXVzdCBlaXRoZXIgYmUgbnVsbCBvciBwb2ludCB0byBhbiBpbml0aWFsaXplZCBtcGkuCi0gKiBccGFyYW0gUSAgICAgICAgIFNsb3QgZm9yIHRoZSBleHBvcnRlZCBwdWJsaWMgdmFsdWUuCi0gKiAgICAgICAgICAgICAgICAgIEl0IG11c3QgZWl0aGVyIGJlIG51bGwgb3IgcG9pbnQgdG8gYW4gaW5pdGlhbGl6ZWQgRUNQIHBvaW50LgotICoKLSAqIFxyZXR1cm4gICAgICAgICAgXGMgMCBvbiBzdWNjZXNzLAotICogXHJldHVybiAgICAgICAgICAjTUJFRFRMU19FUlJfTVBJX0FMTE9DX0ZBSUxFRCBvbiBtZW1vcnktYWxsb2NhdGlvbiBmYWlsdXJlLgotICogXHJldHVybiAgICAgICAgICAjTUJFRFRMU19FUlJfRUNQX0ZFQVRVUkVfVU5BVkFJTEFCTEUgaWYga2V5IGlkIGRvZXNuJ3QKLSAqICAgICAgICAgICAgICAgICAgY29ycmVzcG9uZCB0byBhIGtub3duIGdyb3VwLgotICogXHJldHVybiAgICAgICAgICBBbm90aGVyIG5lZ2F0aXZlIGVycm9yIGNvZGUgb24gb3RoZXIga2luZHMgb2YgZmFpbHVyZS4KLSAqLwotaW50IG1iZWR0bHNfZWNwX2V4cG9ydChjb25zdCBtYmVkdGxzX2VjcF9rZXlwYWlyICprZXksIG1iZWR0bHNfZWNwX2dyb3VwICpncnAsCi0gICAgICAgICAgICAgICAgICAgICAgIG1iZWR0bHNfbXBpICpkLCBtYmVkdGxzX2VjcF9wb2ludCAqUSk7Ci0KLSNpZiBkZWZpbmVkKE1CRURUTFNfU0VMRl9URVNUKQotCi0vKioKLSAqIFxicmllZiAgICAgICAgICBUaGUgRUNQIGNoZWNrdXAgcm91dGluZS4KLSAqCi0gKiBccmV0dXJuICAgICAgICAgXGMgMCBvbiBzdWNjZXNzLgotICogXHJldHVybiAgICAgICAgIFxjIDEgb24gZmFpbHVyZS4KLSAqLwotaW50IG1iZWR0bHNfZWNwX3NlbGZfdGVzdChpbnQgdmVyYm9zZSk7Ci0KLSNlbmRpZiAvKiBNQkVEVExTX1NFTEZfVEVTVCAqLwotCi0jaWZkZWYgX19jcGx1c3BsdXMKLX0KLSNlbmRpZgotCi0jZW5kaWYgLyogZWNwLmggKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvbWJlZHRscy9lbnRyb3B5LmggYi9pbmNsdWRlL21iZWR0bHMvZW50cm9weS5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyMGZkNjg3Li4wMDAwMDAwCi0tLSBhL2luY2x1ZGUvbWJlZHRscy9lbnRyb3B5LmgKKysrIC9kZXYvbnVsbApAQCAtMSwyNzMgKzAsMCBAQAotLyoqCi0gKiBcZmlsZSBlbnRyb3B5LmgKLSAqCi0gKiBcYnJpZWYgRW50cm9weSBhY2N1bXVsYXRvciBpbXBsZW1lbnRhdGlvbgotICovCi0vKgotICogIENvcHlyaWdodCBUaGUgTWJlZCBUTFMgQ29udHJpYnV0b3JzCi0gKiAgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjAgT1IgR1BMLTIuMC1vci1sYXRlcgotICovCi0jaWZuZGVmIE1CRURUTFNfRU5UUk9QWV9ICi0jZGVmaW5lIE1CRURUTFNfRU5UUk9QWV9ICi0jaW5jbHVkZSAibWJlZHRscy9wcml2YXRlX2FjY2Vzcy5oIgotCi0jaW5jbHVkZSAibWJlZHRscy9idWlsZF9pbmZvLmgiCi0KLSNpbmNsdWRlIDxzdGRkZWYuaD4KLQotI2luY2x1ZGUgIm1kLmgiCi0KLSNpZiBkZWZpbmVkKE1CRURUTFNfTURfQ0FOX1NIQTUxMikgJiYgIWRlZmluZWQoTUJFRFRMU19FTlRST1BZX0ZPUkNFX1NIQTI1NikKLSNkZWZpbmUgTUJFRFRMU19FTlRST1BZX1NIQTUxMl9BQ0NVTVVMQVRPUgotI2RlZmluZSBNQkVEVExTX0VOVFJPUFlfTUQgIE1CRURUTFNfTURfU0hBNTEyCi0jZGVmaW5lIE1CRURUTFNfRU5UUk9QWV9CTE9DS19TSVpFICAgICAgNjQgICAgICAvKio8IEJsb2NrIHNpemUgb2YgZW50cm9weSBhY2N1bXVsYXRvciAoU0hBLTUxMikgKi8KLSNlbHNlCi0jaWYgZGVmaW5lZChNQkVEVExTX01EX0NBTl9TSEEyNTYpCi0jZGVmaW5lIE1CRURUTFNfRU5UUk9QWV9TSEEyNTZfQUNDVU1VTEFUT1IKLSNkZWZpbmUgTUJFRFRMU19FTlRST1BZX01EICBNQkVEVExTX01EX1NIQTI1NgotI2RlZmluZSBNQkVEVExTX0VOVFJPUFlfQkxPQ0tfU0laRSAgICAgIDMyICAgICAgLyoqPCBCbG9jayBzaXplIG9mIGVudHJvcHkgYWNjdW11bGF0b3IgKFNIQS0yNTYpICovCi0jZW5kaWYKLSNlbmRpZgotCi0jaWYgZGVmaW5lZChNQkVEVExTX1RIUkVBRElOR19DKQotI2luY2x1ZGUgIm1iZWR0bHMvdGhyZWFkaW5nLmgiCi0jZW5kaWYKLQotCi0vKiogQ3JpdGljYWwgZW50cm9weSBzb3VyY2UgZmFpbHVyZS4gKi8KLSNkZWZpbmUgTUJFRFRMU19FUlJfRU5UUk9QWV9TT1VSQ0VfRkFJTEVEICAgICAgICAgICAgICAgICAtMHgwMDNDCi0vKiogTm8gbW9yZSBzb3VyY2VzIGNhbiBiZSBhZGRlZC4gKi8KLSNkZWZpbmUgTUJFRFRMU19FUlJfRU5UUk9QWV9NQVhfU09VUkNFUyAgICAgICAgICAgICAgICAgICAtMHgwMDNFCi0vKiogTm8gc291cmNlcyBoYXZlIGJlZW4gYWRkZWQgdG8gcG9sbC4gKi8KLSNkZWZpbmUgTUJFRFRMU19FUlJfRU5UUk9QWV9OT19TT1VSQ0VTX0RFRklORUQgICAgICAgICAgICAtMHgwMDQwCi0vKiogTm8gc3Ryb25nIHNvdXJjZXMgaGF2ZSBiZWVuIGFkZGVkIHRvIHBvbGwuICovCi0jZGVmaW5lIE1CRURUTFNfRVJSX0VOVFJPUFlfTk9fU1RST05HX1NPVVJDRSAgICAgICAgICAgICAgLTB4MDAzRAotLyoqIFJlYWQvd3JpdGUgZXJyb3IgaW4gZmlsZS4gKi8KLSNkZWZpbmUgTUJFRFRMU19FUlJfRU5UUk9QWV9GSUxFX0lPX0VSUk9SICAgICAgICAgICAgICAgICAtMHgwMDNGCi0KLS8qKgotICogXG5hbWUgU0VDVElPTjogTW9kdWxlIHNldHRpbmdzCi0gKgotICogVGhlIGNvbmZpZ3VyYXRpb24gb3B0aW9ucyB5b3UgY2FuIHNldCBmb3IgdGhpcyBtb2R1bGUgYXJlIGluIHRoaXMgc2VjdGlvbi4KLSAqIEVpdGhlciBjaGFuZ2UgdGhlbSBpbiBtYmVkdGxzX2NvbmZpZy5oIG9yIGRlZmluZSB0aGVtIG9uIHRoZSBjb21waWxlciBjb21tYW5kIGxpbmUuCi0gKiBcewotICovCi0KLSNpZiAhZGVmaW5lZChNQkVEVExTX0VOVFJPUFlfTUFYX1NPVVJDRVMpCi0jZGVmaW5lIE1CRURUTFNfRU5UUk9QWV9NQVhfU09VUkNFUyAgICAgMjAgICAgICAvKio8IE1heGltdW0gbnVtYmVyIG9mIHNvdXJjZXMgc3VwcG9ydGVkICovCi0jZW5kaWYKLQotI2lmICFkZWZpbmVkKE1CRURUTFNfRU5UUk9QWV9NQVhfR0FUSEVSKQotI2RlZmluZSBNQkVEVExTX0VOVFJPUFlfTUFYX0dBVEhFUiAgICAgIDEyOCAgICAgLyoqPCBNYXhpbXVtIGFtb3VudCByZXF1ZXN0ZWQgZnJvbSBlbnRyb3B5IHNvdXJjZXMgKi8KLSNlbmRpZgotCi0vKiogXH0gbmFtZSBTRUNUSU9OOiBNb2R1bGUgc2V0dGluZ3MgKi8KLQotI2RlZmluZSBNQkVEVExTX0VOVFJPUFlfTUFYX1NFRURfU0laRSAgIDEwMjQgICAgLyoqPCBNYXhpbXVtIHNpemUgb2Ygc2VlZCB3ZSByZWFkIGZyb20gc2VlZCBmaWxlICovCi0jZGVmaW5lIE1CRURUTFNfRU5UUk9QWV9TT1VSQ0VfTUFOVUFMICAgTUJFRFRMU19FTlRST1BZX01BWF9TT1VSQ0VTCi0KLSNkZWZpbmUgTUJFRFRMU19FTlRST1BZX1NPVVJDRV9TVFJPTkcgICAxICAgICAgIC8qKjwgRW50cm9weSBzb3VyY2UgaXMgc3Ryb25nICAgKi8KLSNkZWZpbmUgTUJFRFRMU19FTlRST1BZX1NPVVJDRV9XRUFLICAgICAwICAgICAgIC8qKjwgRW50cm9weSBzb3VyY2UgaXMgd2VhayAgICAgKi8KLQotI2lmZGVmIF9fY3BsdXNwbHVzCi1leHRlcm4gIkMiIHsKLSNlbmRpZgotCi0vKioKLSAqIFxicmllZiAgICAgICAgICAgRW50cm9weSBwb2xsIGNhbGxiYWNrIHBvaW50ZXIKLSAqCi0gKiBccGFyYW0gZGF0YSAgICAgIENhbGxiYWNrLXNwZWNpZmljIGRhdGEgcG9pbnRlcgotICogXHBhcmFtIG91dHB1dCAgICBEYXRhIHRvIGZpbGwKLSAqIFxwYXJhbSBsZW4gICAgICAgTWF4aW11bSBzaXplIHRvIHByb3ZpZGUKLSAqIFxwYXJhbSBvbGVuICAgICAgVGhlIGFjdHVhbCBhbW91bnQgb2YgYnl0ZXMgcHV0IGludG8gdGhlIGJ1ZmZlciAoQ2FuIGJlIDApCi0gKgotICogXHJldHVybiAgICAgICAgICAwIGlmIG5vIGNyaXRpY2FsIGZhaWx1cmVzIG9jY3VycmVkLAotICogICAgICAgICAgICAgICAgICBNQkVEVExTX0VSUl9FTlRST1BZX1NPVVJDRV9GQUlMRUQgb3RoZXJ3aXNlCi0gKi8KLXR5cGVkZWYgaW50ICgqbWJlZHRsc19lbnRyb3B5X2Zfc291cmNlX3B0cikodm9pZCAqZGF0YSwgdW5zaWduZWQgY2hhciAqb3V0cHV0LCBzaXplX3QgbGVuLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgKm9sZW4pOwotCi0vKioKLSAqIFxicmllZiAgICAgICAgICAgRW50cm9weSBzb3VyY2Ugc3RhdGUKLSAqLwotdHlwZWRlZiBzdHJ1Y3QgbWJlZHRsc19lbnRyb3B5X3NvdXJjZV9zdGF0ZSB7Ci0gICAgbWJlZHRsc19lbnRyb3B5X2Zfc291cmNlX3B0ciAgICBNQkVEVExTX1BSSVZBVEUoZl9zb3VyY2UpOyAgIC8qKjwgVGhlIGVudHJvcHkgc291cmNlIGNhbGxiYWNrICovCi0gICAgdm9pZCAqTUJFRFRMU19QUklWQVRFKHBfc291cmNlKTsgICAgICAgICAgICAgLyoqPCBUaGUgY2FsbGJhY2sgZGF0YSBwb2ludGVyICovCi0gICAgc2l6ZV90ICAgICAgICAgIE1CRURUTFNfUFJJVkFURShzaXplKTsgICAgICAgLyoqPCBBbW91bnQgcmVjZWl2ZWQgaW4gYnl0ZXMgKi8KLSAgICBzaXplX3QgICAgICAgICAgTUJFRFRMU19QUklWQVRFKHRocmVzaG9sZCk7ICAvKio8IE1pbmltdW0gYnl0ZXMgcmVxdWlyZWQgYmVmb3JlIHJlbGVhc2UgKi8KLSAgICBpbnQgICAgICAgICAgICAgTUJFRFRMU19QUklWQVRFKHN0cm9uZyk7ICAgICAvKio8IElzIHRoZSBzb3VyY2Ugc3Ryb25nPyAqLwotfQotbWJlZHRsc19lbnRyb3B5X3NvdXJjZV9zdGF0ZTsKLQotLyoqCi0gKiBcYnJpZWYgICAgICAgICAgIEVudHJvcHkgY29udGV4dCBzdHJ1Y3R1cmUKLSAqLwotdHlwZWRlZiBzdHJ1Y3QgbWJlZHRsc19lbnRyb3B5X2NvbnRleHQgewotICAgIG1iZWR0bHNfbWRfY29udGV4dF90ICBNQkVEVExTX1BSSVZBVEUoYWNjdW11bGF0b3IpOwotICAgIGludCBNQkVEVExTX1BSSVZBVEUoYWNjdW11bGF0b3Jfc3RhcnRlZCk7IC8qIDAgYWZ0ZXIgaW5pdC4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiAxIGFmdGVyIHRoZSBmaXJzdCB1cGRhdGUuCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICogLTEgYWZ0ZXIgZnJlZS4gKi8KLSAgICBpbnQgICAgICAgICAgICAgTUJFRFRMU19QUklWQVRFKHNvdXJjZV9jb3VudCk7IC8qIE51bWJlciBvZiBlbnRyaWVzIHVzZWQgaW4gc291cmNlLiAqLwotICAgIG1iZWR0bHNfZW50cm9weV9zb3VyY2Vfc3RhdGUgICAgTUJFRFRMU19QUklWQVRFKHNvdXJjZSlbTUJFRFRMU19FTlRST1BZX01BWF9TT1VSQ0VTXTsKLSNpZiBkZWZpbmVkKE1CRURUTFNfVEhSRUFESU5HX0MpCi0gICAgbWJlZHRsc190aHJlYWRpbmdfbXV0ZXhfdCBNQkVEVExTX1BSSVZBVEUobXV0ZXgpOyAgICAvKiE8IG11dGV4ICAgICAgICAgICAgICAgICAgKi8KLSNlbmRpZgotI2lmIGRlZmluZWQoTUJFRFRMU19FTlRST1BZX05WX1NFRUQpCi0gICAgaW50IE1CRURUTFNfUFJJVkFURShpbml0aWFsX2VudHJvcHlfcnVuKTsKLSNlbmRpZgotfQotbWJlZHRsc19lbnRyb3B5X2NvbnRleHQ7Ci0KLSNpZiAhZGVmaW5lZChNQkVEVExTX05PX1BMQVRGT1JNX0VOVFJPUFkpCi0vKioKLSAqIFxicmllZiAgICAgICAgICAgUGxhdGZvcm0tc3BlY2lmaWMgZW50cm9weSBwb2xsIGNhbGxiYWNrCi0gKi8KLWludCBtYmVkdGxzX3BsYXRmb3JtX2VudHJvcHlfcG9sbCh2b2lkICpkYXRhLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGNoYXIgKm91dHB1dCwgc2l6ZV90IGxlbiwgc2l6ZV90ICpvbGVuKTsKLSNlbmRpZgotCi0vKioKLSAqIFxicmllZiAgICAgICAgICAgSW5pdGlhbGl6ZSB0aGUgY29udGV4dAotICoKLSAqIFxwYXJhbSBjdHggICAgICAgRW50cm9weSBjb250ZXh0IHRvIGluaXRpYWxpemUKLSAqLwotdm9pZCBtYmVkdGxzX2VudHJvcHlfaW5pdChtYmVkdGxzX2VudHJvcHlfY29udGV4dCAqY3R4KTsKLQotLyoqCi0gKiBcYnJpZWYgICAgICAgICAgIEZyZWUgdGhlIGRhdGEgaW4gdGhlIGNvbnRleHQKLSAqCi0gKiBccGFyYW0gY3R4ICAgICAgIEVudHJvcHkgY29udGV4dCB0byBmcmVlCi0gKi8KLXZvaWQgbWJlZHRsc19lbnRyb3B5X2ZyZWUobWJlZHRsc19lbnRyb3B5X2NvbnRleHQgKmN0eCk7Ci0KLS8qKgotICogXGJyaWVmICAgICAgICAgICBBZGRzIGFuIGVudHJvcHkgc291cmNlIHRvIHBvbGwKLSAqICAgICAgICAgICAgICAgICAgKFRocmVhZC1zYWZlIGlmIE1CRURUTFNfVEhSRUFESU5HX0MgaXMgZW5hYmxlZCkKLSAqCi0gKiBccGFyYW0gY3R4ICAgICAgIEVudHJvcHkgY29udGV4dAotICogXHBhcmFtIGZfc291cmNlICBFbnRyb3B5IGZ1bmN0aW9uCi0gKiBccGFyYW0gcF9zb3VyY2UgIEZ1bmN0aW9uIGRhdGEKLSAqIFxwYXJhbSB0aHJlc2hvbGQgTWluaW11bSByZXF1aXJlZCBmcm9tIHNvdXJjZSBiZWZvcmUgZW50cm9weSBpcyByZWxlYXNlZAotICogICAgICAgICAgICAgICAgICAoIHdpdGggbWJlZHRsc19lbnRyb3B5X2Z1bmMoKSApIChpbiBieXRlcykKLSAqIFxwYXJhbSBzdHJvbmcgICAgTUJFRFRMU19FTlRST1BZX1NPVVJDRV9TVFJPTkcgb3IKLSAqICAgICAgICAgICAgICAgICAgTUJFRFRMU19FTlRST1BZX1NPVVJDRV9XRUFLLgotICogICAgICAgICAgICAgICAgICBBdCBsZWFzdCBvbmUgc3Ryb25nIHNvdXJjZSBuZWVkcyB0byBiZSBhZGRlZC4KLSAqICAgICAgICAgICAgICAgICAgV2Vha2VyIHNvdXJjZXMgKHN1Y2ggYXMgdGhlIGN5Y2xlIGNvdW50ZXIpIGNhbiBiZSB1c2VkIGFzCi0gKiAgICAgICAgICAgICAgICAgIGEgY29tcGxlbWVudC4KLSAqCi0gKiBccmV0dXJuICAgICAgICAgIDAgaWYgc3VjY2Vzc2Z1bCBvciBNQkVEVExTX0VSUl9FTlRST1BZX01BWF9TT1VSQ0VTCi0gKi8KLWludCBtYmVkdGxzX2VudHJvcHlfYWRkX3NvdXJjZShtYmVkdGxzX2VudHJvcHlfY29udGV4dCAqY3R4LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1iZWR0bHNfZW50cm9weV9mX3NvdXJjZV9wdHIgZl9zb3VyY2UsIHZvaWQgKnBfc291cmNlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCB0aHJlc2hvbGQsIGludCBzdHJvbmcpOwotCi0vKioKLSAqIFxicmllZiAgICAgICAgICAgVHJpZ2dlciBhbiBleHRyYSBnYXRoZXIgcG9sbCBmb3IgdGhlIGFjY3VtdWxhdG9yCi0gKiAgICAgICAgICAgICAgICAgIChUaHJlYWQtc2FmZSBpZiBNQkVEVExTX1RIUkVBRElOR19DIGlzIGVuYWJsZWQpCi0gKgotICogXHBhcmFtIGN0eCAgICAgICBFbnRyb3B5IGNvbnRleHQKLSAqCi0gKiBccmV0dXJuICAgICAgICAgIDAgaWYgc3VjY2Vzc2Z1bCwgb3IgTUJFRFRMU19FUlJfRU5UUk9QWV9TT1VSQ0VfRkFJTEVECi0gKi8KLWludCBtYmVkdGxzX2VudHJvcHlfZ2F0aGVyKG1iZWR0bHNfZW50cm9weV9jb250ZXh0ICpjdHgpOwotCi0vKioKLSAqIFxicmllZiAgICAgICAgICAgUmV0cmlldmUgZW50cm9weSBmcm9tIHRoZSBhY2N1bXVsYXRvcgotICogICAgICAgICAgICAgICAgICAoTWF4aW11bSBsZW5ndGg6IE1CRURUTFNfRU5UUk9QWV9CTE9DS19TSVpFKQotICogICAgICAgICAgICAgICAgICAoVGhyZWFkLXNhZmUgaWYgTUJFRFRMU19USFJFQURJTkdfQyBpcyBlbmFibGVkKQotICoKLSAqIFxwYXJhbSBkYXRhICAgICAgRW50cm9weSBjb250ZXh0Ci0gKiBccGFyYW0gb3V0cHV0ICAgIEJ1ZmZlciB0byBmaWxsCi0gKiBccGFyYW0gbGVuICAgICAgIE51bWJlciBvZiBieXRlcyBkZXNpcmVkLCBtdXN0IGJlIGF0IG1vc3QgTUJFRFRMU19FTlRST1BZX0JMT0NLX1NJWkUKLSAqCi0gKiBccmV0dXJuICAgICAgICAgIDAgaWYgc3VjY2Vzc2Z1bCwgb3IgTUJFRFRMU19FUlJfRU5UUk9QWV9TT1VSQ0VfRkFJTEVECi0gKi8KLWludCBtYmVkdGxzX2VudHJvcHlfZnVuYyh2b2lkICpkYXRhLCB1bnNpZ25lZCBjaGFyICpvdXRwdXQsIHNpemVfdCBsZW4pOwotCi0vKioKLSAqIFxicmllZiAgICAgICAgICAgQWRkIGRhdGEgdG8gdGhlIGFjY3VtdWxhdG9yIG1hbnVhbGx5Ci0gKiAgICAgICAgICAgICAgICAgIChUaHJlYWQtc2FmZSBpZiBNQkVEVExTX1RIUkVBRElOR19DIGlzIGVuYWJsZWQpCi0gKgotICogXHBhcmFtIGN0eCAgICAgICBFbnRyb3B5IGNvbnRleHQKLSAqIFxwYXJhbSBkYXRhICAgICAgRGF0YSB0byBhZGQKLSAqIFxwYXJhbSBsZW4gICAgICAgTGVuZ3RoIG9mIGRhdGEKLSAqCi0gKiBccmV0dXJuICAgICAgICAgIDAgaWYgc3VjY2Vzc2Z1bAotICovCi1pbnQgbWJlZHRsc19lbnRyb3B5X3VwZGF0ZV9tYW51YWwobWJlZHRsc19lbnRyb3B5X2NvbnRleHQgKmN0eCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1bnNpZ25lZCBjaGFyICpkYXRhLCBzaXplX3QgbGVuKTsKLQotI2lmIGRlZmluZWQoTUJFRFRMU19FTlRST1BZX05WX1NFRUQpCi0vKioKLSAqIFxicmllZiAgICAgICAgICAgVHJpZ2dlciBhbiB1cGRhdGUgb2YgdGhlIHNlZWQgZmlsZSBpbiBOViBieSB1c2luZyB0aGUKLSAqICAgICAgICAgICAgICAgICAgY3VycmVudCBlbnRyb3B5IHBvb2wuCi0gKgotICogXHBhcmFtIGN0eCAgICAgICBFbnRyb3B5IGNvbnRleHQKLSAqCi0gKiBccmV0dXJuICAgICAgICAgIDAgaWYgc3VjY2Vzc2Z1bAotICovCi1pbnQgbWJlZHRsc19lbnRyb3B5X3VwZGF0ZV9udl9zZWVkKG1iZWR0bHNfZW50cm9weV9jb250ZXh0ICpjdHgpOwotI2VuZGlmIC8qIE1CRURUTFNfRU5UUk9QWV9OVl9TRUVEICovCi0KLSNpZiBkZWZpbmVkKE1CRURUTFNfRlNfSU8pCi0vKioKLSAqIFxicmllZiAgICAgICAgICAgICAgIFdyaXRlIGEgc2VlZCBmaWxlCi0gKgotICogXHBhcmFtIGN0eCAgICAgICAgICAgRW50cm9weSBjb250ZXh0Ci0gKiBccGFyYW0gcGF0aCAgICAgICAgICBOYW1lIG9mIHRoZSBmaWxlCi0gKgotICogXHJldHVybiAgICAgICAgICAgICAgMCBpZiBzdWNjZXNzZnVsLAotICogICAgICAgICAgICAgICAgICAgICAgTUJFRFRMU19FUlJfRU5UUk9QWV9GSUxFX0lPX0VSUk9SIG9uIGZpbGUgZXJyb3IsIG9yCi0gKiAgICAgICAgICAgICAgICAgICAgICBNQkVEVExTX0VSUl9FTlRST1BZX1NPVVJDRV9GQUlMRUQKLSAqLwotaW50IG1iZWR0bHNfZW50cm9weV93cml0ZV9zZWVkX2ZpbGUobWJlZHRsc19lbnRyb3B5X2NvbnRleHQgKmN0eCwgY29uc3QgY2hhciAqcGF0aCk7Ci0KLS8qKgotICogXGJyaWVmICAgICAgICAgICAgICAgUmVhZCBhbmQgdXBkYXRlIGEgc2VlZCBmaWxlLiBTZWVkIGlzIGFkZGVkIHRvIHRoaXMKLSAqICAgICAgICAgICAgICAgICAgICAgIGluc3RhbmNlLiBObyBtb3JlIHRoYW4gTUJFRFRMU19FTlRST1BZX01BWF9TRUVEX1NJWkUgYnl0ZXMgYXJlCi0gKiAgICAgICAgICAgICAgICAgICAgICByZWFkIGZyb20gdGhlIHNlZWQgZmlsZS4gVGhlIHJlc3QgaXMgaWdub3JlZC4KLSAqCi0gKiBccGFyYW0gY3R4ICAgICAgICAgICBFbnRyb3B5IGNvbnRleHQKLSAqIFxwYXJhbSBwYXRoICAgICAgICAgIE5hbWUgb2YgdGhlIGZpbGUKLSAqCi0gKiBccmV0dXJuICAgICAgICAgICAgICAwIGlmIHN1Y2Nlc3NmdWwsCi0gKiAgICAgICAgICAgICAgICAgICAgICBNQkVEVExTX0VSUl9FTlRST1BZX0ZJTEVfSU9fRVJST1Igb24gZmlsZSBlcnJvciwKLSAqICAgICAgICAgICAgICAgICAgICAgIE1CRURUTFNfRVJSX0VOVFJPUFlfU09VUkNFX0ZBSUxFRAotICovCi1pbnQgbWJlZHRsc19lbnRyb3B5X3VwZGF0ZV9zZWVkX2ZpbGUobWJlZHRsc19lbnRyb3B5X2NvbnRleHQgKmN0eCwgY29uc3QgY2hhciAqcGF0aCk7Ci0jZW5kaWYgLyogTUJFRFRMU19GU19JTyAqLwotCi0jaWYgZGVmaW5lZChNQkVEVExTX1NFTEZfVEVTVCkKLS8qKgotICogXGJyaWVmICAgICAgICAgIENoZWNrdXAgcm91dGluZQotICoKLSAqICAgICAgICAgICAgICAgICBUaGlzIG1vZHVsZSBzZWxmLXRlc3QgYWxzbyBjYWxscyB0aGUgZW50cm9weSBzZWxmLXRlc3QsCi0gKiAgICAgICAgICAgICAgICAgbWJlZHRsc19lbnRyb3B5X3NvdXJjZV9zZWxmX3Rlc3QoKTsKLSAqCi0gKiBccmV0dXJuICAgICAgICAgMCBpZiBzdWNjZXNzZnVsLCBvciAxIGlmIGEgdGVzdCBmYWlsZWQKLSAqLwotaW50IG1iZWR0bHNfZW50cm9weV9zZWxmX3Rlc3QoaW50IHZlcmJvc2UpOwotCi0jaWYgZGVmaW5lZChNQkVEVExTX0VOVFJPUFlfSEFSRFdBUkVfQUxUKQotLyoqCi0gKiBcYnJpZWYgICAgICAgICAgQ2hlY2t1cCByb3V0aW5lCi0gKgotICogICAgICAgICAgICAgICAgIFZlcmlmaWVzIHRoZSBpbnRlZ3JpdHkgb2YgdGhlIGhhcmR3YXJlIGVudHJvcHkgc291cmNlCi0gKiAgICAgICAgICAgICAgICAgcHJvdmlkZWQgYnkgdGhlIGZ1bmN0aW9uICdtYmVkdGxzX2hhcmR3YXJlX3BvbGwoKScuCi0gKgotICogICAgICAgICAgICAgICAgIE5vdGUgdGhpcyBpcyB0aGUgb25seSBoYXJkd2FyZSBlbnRyb3B5IHNvdXJjZSB0aGF0IGlzIGtub3duCi0gKiAgICAgICAgICAgICAgICAgYXQgbGluayB0aW1lLCBhbmQgb3RoZXIgZW50cm9weSBzb3VyY2VzIGNvbmZpZ3VyZWQKLSAqICAgICAgICAgICAgICAgICBkeW5hbWljYWxseSBhdCBydW50aW1lIGJ5IHRoZSBmdW5jdGlvbgotICogICAgICAgICAgICAgICAgIG1iZWR0bHNfZW50cm9weV9hZGRfc291cmNlKCkgd2lsbCBub3QgYmUgdGVzdGVkLgotICoKLSAqIFxyZXR1cm4gICAgICAgICAwIGlmIHN1Y2Nlc3NmdWwsIG9yIDEgaWYgYSB0ZXN0IGZhaWxlZAotICovCi1pbnQgbWJlZHRsc19lbnRyb3B5X3NvdXJjZV9zZWxmX3Rlc3QoaW50IHZlcmJvc2UpOwotI2VuZGlmIC8qIE1CRURUTFNfRU5UUk9QWV9IQVJEV0FSRV9BTFQgKi8KLSNlbmRpZiAvKiBNQkVEVExTX1NFTEZfVEVTVCAqLwotCi0jaWZkZWYgX19jcGx1c3BsdXMKLX0KLSNlbmRpZgotCi0jZW5kaWYgLyogZW50cm9weS5oICovCmRpZmYgLS1naXQgYS9pbmNsdWRlL21iZWR0bHMvZXJyb3IuaCBiL2luY2x1ZGUvbWJlZHRscy9lcnJvci5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxODY1ODlhLi4wMDAwMDAwCi0tLSBhL2luY2x1ZGUvbWJlZHRscy9lcnJvci5oCisrKyAvZGV2L251bGwKQEAgLTEsMjAxICswLDAgQEAKLS8qKgotICogXGZpbGUgZXJyb3IuaAotICoKLSAqIFxicmllZiBFcnJvciB0byBzdHJpbmcgdHJhbnNsYXRpb24KLSAqLwotLyoKLSAqICBDb3B5cmlnaHQgVGhlIE1iZWQgVExTIENvbnRyaWJ1dG9ycwotICogIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wIE9SIEdQTC0yLjAtb3ItbGF0ZXIKLSAqLwotI2lmbmRlZiBNQkVEVExTX0VSUk9SX0gKLSNkZWZpbmUgTUJFRFRMU19FUlJPUl9ICi0KLSNpbmNsdWRlICJtYmVkdGxzL2J1aWxkX2luZm8uaCIKLQotI2luY2x1ZGUgPHN0ZGRlZi5oPgotCi0vKioKLSAqIEVycm9yIGNvZGUgbGF5b3V0LgotICoKLSAqIEN1cnJlbnRseSB3ZSB0cnkgdG8ga2VlcCBhbGwgZXJyb3IgY29kZXMgd2l0aGluIHRoZSBuZWdhdGl2ZSBzcGFjZSBvZiAxNgotICogYml0cyBzaWduZWQgaW50ZWdlcnMgdG8gc3VwcG9ydCBhbGwgcGxhdGZvcm1zICgtMHgwMDAxIC0gLTB4N0ZGRikuIEluCi0gKiBhZGRpdGlvbiB3ZSdkIGxpa2UgdG8gZ2l2ZSB0d28gbGF5ZXJzIG9mIGluZm9ybWF0aW9uIG9uIHRoZSBlcnJvciBpZgotICogcG9zc2libGUuCi0gKgotICogRm9yIHRoYXQgcHVycG9zZSB0aGUgZXJyb3IgY29kZXMgYXJlIHNlZ21lbnRlZCBpbiB0aGUgZm9sbG93aW5nIG1hbm5lcjoKLSAqCi0gKiAxNiBiaXQgZXJyb3IgY29kZSBiaXQtc2VnbWVudGF0aW9uCi0gKgotICogMSBiaXQgIC0gVW51c2VkIChzaWduIGJpdCkKLSAqIDMgYml0cyAtIEhpZ2ggbGV2ZWwgbW9kdWxlIElECi0gKiA1IGJpdHMgLSBNb2R1bGUtZGVwZW5kZW50IGVycm9yIGNvZGUKLSAqIDcgYml0cyAtIExvdyBsZXZlbCBtb2R1bGUgZXJyb3JzCi0gKgotICogRm9yIGhpc3RvcmljYWwgcmVhc29ucywgbG93LWxldmVsIGVycm9yIGNvZGVzIGFyZSBkaXZpZGVkIGluIGV2ZW4gYW5kIG9kZCwKLSAqIGV2ZW4gY29kZXMgd2VyZSBhc3NpZ25lZCBmaXJzdCwgYW5kIC0xIGlzIHJlc2VydmVkIGZvciBvdGhlciBlcnJvcnMuCi0gKgotICogTG93LWxldmVsIG1vZHVsZSBlcnJvcnMgKDB4MDAwMi0weDAwN0UsIDB4MDAwMS0weDAwN0YpCi0gKgotICogTW9kdWxlICAgTnIgIENvZGVzIGFzc2lnbmVkCi0gKiBFUlJPUiAgICAgMiAgMHgwMDZFICAgICAgICAgIDB4MDAwMQotICogTVBJICAgICAgIDcgIDB4MDAwMi0weDAwMTAKLSAqIEdDTSAgICAgICAzICAweDAwMTItMHgwMDE2ICAgMHgwMDEzLTB4MDAxMwotICogVEhSRUFESU5HIDMgIDB4MDAxQS0weDAwMUUKLSAqIEFFUyAgICAgICA1ICAweDAwMjAtMHgwMDIyICAgMHgwMDIxLTB4MDAyNQotICogQ0FNRUxMSUEgIDMgIDB4MDAyNC0weDAwMjYgICAweDAwMjctMHgwMDI3Ci0gKiBCQVNFNjQgICAgMiAgMHgwMDJBLTB4MDAyQwotICogT0lEICAgICAgIDEgIDB4MDAyRS0weDAwMkUgICAweDAwMEItMHgwMDBCCi0gKiBQQURMT0NLICAgMSAgMHgwMDMwLTB4MDAzMAotICogREVTICAgICAgIDIgIDB4MDAzMi0weDAwMzIgICAweDAwMzMtMHgwMDMzCi0gKiBDVFJfREJSRyAgNCAgMHgwMDM0LTB4MDAzQQotICogRU5UUk9QWSAgIDMgIDB4MDAzQy0weDAwNDAgICAweDAwM0QtMHgwMDNGCi0gKiBORVQgICAgICAxMyAgMHgwMDQyLTB4MDA1MiAgIDB4MDA0My0weDAwNDkKLSAqIEFSSUEgICAgICA0ICAweDAwNTgtMHgwMDVFCi0gKiBBU04xICAgICAgNyAgMHgwMDYwLTB4MDA2QwotICogQ01BQyAgICAgIDEgIDB4MDA3QS0weDAwN0EKLSAqIFBCS0RGMiAgICAxICAweDAwN0MtMHgwMDdDCi0gKiBITUFDX0RSQkcgNCAgICAgICAgICAgICAgICAgIDB4MDAwMy0weDAwMDkKLSAqIENDTSAgICAgICAzICAgICAgICAgICAgICAgICAgMHgwMDBELTB4MDAxMQotICogTUQ1ICAgICAgIDEgICAgICAgICAgICAgICAgICAweDAwMkYtMHgwMDJGCi0gKiBSSVBFTUQxNjAgMSAgICAgICAgICAgICAgICAgIDB4MDAzMS0weDAwMzEKLSAqIFNIQTEgICAgICAxICAgICAgICAgICAgICAgICAgMHgwMDM1LTB4MDAzNSAweDAwNzMtMHgwMDczCi0gKiBTSEEyNTYgICAgMSAgICAgICAgICAgICAgICAgIDB4MDAzNy0weDAwMzcgMHgwMDc0LTB4MDA3NAotICogU0hBNTEyICAgIDEgICAgICAgICAgICAgICAgICAweDAwMzktMHgwMDM5IDB4MDA3NS0weDAwNzUKLSAqIFNIQS0zICAgICAxICAgICAgICAgICAgICAgICAgMHgwMDc2LTB4MDA3NgotICogQ0hBQ0hBMjAgIDMgICAgICAgICAgICAgICAgICAweDAwNTEtMHgwMDU1Ci0gKiBQT0xZMTMwNSAgMyAgICAgICAgICAgICAgICAgIDB4MDA1Ny0weDAwNUIKLSAqIENIQUNIQVBPTFkgMiAweDAwNTQtMHgwMDU2Ci0gKiBQTEFURk9STSAgMiAgMHgwMDcwLTB4MDA3MgotICogTE1TICAgICAgIDUgIDB4MDAxMS0weDAwMTkKLSAqCi0gKiBIaWdoLWxldmVsIG1vZHVsZSBuciAoMyBiaXRzIC0gMHgwLi4uLTB4Ny4uLikKLSAqIE5hbWUgICAgICBJRCAgTnIgb2YgRXJyb3JzCi0gKiBQRU0gICAgICAgMSAgIDkKLSAqIFBLQ1MjMTIgICAxICAgNCAoU3RhcnRlZCBmcm9tIHRvcCkKLSAqIFg1MDkgICAgICAyICAgMjAKLSAqIFBLQ1M1ICAgICAyICAgNCAoU3RhcnRlZCBmcm9tIHRvcCkKLSAqIERITSAgICAgICAzICAgMTEKLSAqIFBLICAgICAgICAzICAgMTUgKFN0YXJ0ZWQgZnJvbSB0b3ApCi0gKiBSU0EgICAgICAgNCAgIDExCi0gKiBFQ1AgICAgICAgNCAgIDEwIChTdGFydGVkIGZyb20gdG9wKQotICogTUQgICAgICAgIDUgICA1Ci0gKiBIS0RGICAgICAgNSAgIDEgKFN0YXJ0ZWQgZnJvbSB0b3ApCi0gKiBQS0NTNyAgICAgNSAgIDEyIChTdGFydGVkIGZyb20gMHg1MzAwKQotICogU1NMICAgICAgIDUgICAyIChTdGFydGVkIGZyb20gMHg1RjAwKQotICogQ0lQSEVSICAgIDYgICA4IChTdGFydGVkIGZyb20gMHg2MDgwKQotICogU1NMICAgICAgIDYgICAyMiAoU3RhcnRlZCBmcm9tIHRvcCwgcGx1cyAweDYwMDApCi0gKiBTU0wgICAgICAgNyAgIDIwIChTdGFydGVkIGZyb20gMHg3MDAwLCBnYXBzIGF0Ci0gKiAgICAgICAgICAgICAgICAgICAweDczODAsIDB4NzkwMC0weDc5ODAsIDB4N0E4MC0weDdFODApCi0gKgotICogTW9kdWxlIGRlcGVuZGVudCBlcnJvciBjb2RlICg1IGJpdHMgMHguMDAuLTB4LkY4LikKLSAqLwotCi0jaWZkZWYgX19jcGx1c3BsdXMKLWV4dGVybiAiQyIgewotI2VuZGlmCi0KLS8qKiBHZW5lcmljIGVycm9yICovCi0jZGVmaW5lIE1CRURUTFNfRVJSX0VSUk9SX0dFTkVSSUNfRVJST1IgICAgICAgLTB4MDAwMQotLyoqIFRoaXMgaXMgYSBidWcgaW4gdGhlIGxpYnJhcnkgKi8KLSNkZWZpbmUgTUJFRFRMU19FUlJfRVJST1JfQ09SUlVQVElPTl9ERVRFQ1RFRCAtMHgwMDZFCi0KLS8qKiBIYXJkd2FyZSBhY2NlbGVyYXRvciBmYWlsZWQgKi8KLSNkZWZpbmUgTUJFRFRMU19FUlJfUExBVEZPUk1fSFdfQUNDRUxfRkFJTEVEICAgICAtMHgwMDcwCi0vKiogVGhlIHJlcXVlc3RlZCBmZWF0dXJlIGlzIG5vdCBzdXBwb3J0ZWQgYnkgdGhlIHBsYXRmb3JtICovCi0jZGVmaW5lIE1CRURUTFNfRVJSX1BMQVRGT1JNX0ZFQVRVUkVfVU5TVVBQT1JURUQgLTB4MDA3MgotCi0vKioKLSAqIFxicmllZiBDb21iaW5lcyBhIGhpZ2gtbGV2ZWwgYW5kIGxvdy1sZXZlbCBlcnJvciBjb2RlIHRvZ2V0aGVyLgotICoKLSAqICAgICAgICBXcmFwcGVyIG1hY3JvIGZvciBtYmVkdGxzX2Vycm9yX2FkZCgpLiBTZWUgdGhhdCBmdW5jdGlvbiBmb3IKLSAqICAgICAgICBtb3JlIGRldGFpbHMuCi0gKi8KLSNkZWZpbmUgTUJFRFRMU19FUlJPUl9BREQoaGlnaCwgbG93KSBcCi0gICAgbWJlZHRsc19lcnJvcl9hZGQoaGlnaCwgbG93LCBfX0ZJTEVfXywgX19MSU5FX18pCi0KLSNpZiBkZWZpbmVkKE1CRURUTFNfVEVTVF9IT09LUykKLS8qKgotICogXGJyaWVmIFRlc3RpbmcgaG9vayBjYWxsZWQgYmVmb3JlIGFkZGluZy9jb21iaW5pbmcgdHdvIGVycm9yIGNvZGVzIHRvZ2V0aGVyLgotICogICAgICAgIE9ubHkgdXNlZCB3aGVuIGludmFzaXZlIHRlc3RpbmcgaXMgZW5hYmxlZCB2aWEgTUJFRFRMU19URVNUX0hPT0tTLgotICovCi1leHRlcm4gdm9pZCAoKm1iZWR0bHNfdGVzdF9ob29rX2Vycm9yX2FkZCkoaW50LCBpbnQsIGNvbnN0IGNoYXIgKiwgaW50KTsKLSNlbmRpZgotCi0vKioKLSAqIFxicmllZiBDb21iaW5lcyBhIGhpZ2gtbGV2ZWwgYW5kIGxvdy1sZXZlbCBlcnJvciBjb2RlIHRvZ2V0aGVyLgotICoKLSAqICAgICAgICBUaGlzIGZ1bmN0aW9uIGNhbiBiZSBjYWxsZWQgZGlyZWN0bHkgaG93ZXZlciBpdCBpcyB1c3VhbGx5Ci0gKiAgICAgICAgY2FsbGVkIHZpYSB0aGUgI01CRURUTFNfRVJST1JfQUREIG1hY3JvLgotICoKLSAqICAgICAgICBXaGlsZSBhIHZhbHVlIG9mIHplcm8gaXMgbm90IGEgbmVnYXRpdmUgZXJyb3IgY29kZSwgaXQgaXMgc3RpbGwgYW4KLSAqICAgICAgICBlcnJvciBjb2RlICh0aGF0IGRlbm90ZXMgc3VjY2VzcykgYW5kIGNhbiBiZSBjb21iaW5lZCB3aXRoIGJvdGggYQotICogICAgICAgIG5lZ2F0aXZlIGVycm9yIGNvZGUgb3IgYW5vdGhlciB2YWx1ZSBvZiB6ZXJvLgotICoKLSAqIFxub3RlICBXaGVuIGludmFzaXZlIHRlc3RpbmcgaXMgZW5hYmxlZCB2aWEgI01CRURUTFNfVEVTVF9IT09LUywgYWxzbyB0cnkgdG8KLSAqICAgICAgICBjYWxsIFxsaW5rIG1iZWR0bHNfdGVzdF9ob29rX2Vycm9yX2FkZCBcZW5kbGluay4KLSAqCi0gKiBccGFyYW0gaGlnaCAgICAgIGhpZ2gtbGV2ZWwgZXJyb3IgY29kZS4gU2VlIGVycm9yLmggZm9yIG1vcmUgZGV0YWlscy4KLSAqIFxwYXJhbSBsb3cgICAgICAgbG93LWxldmVsIGVycm9yIGNvZGUuIFNlZSBlcnJvci5oIGZvciBtb3JlIGRldGFpbHMuCi0gKiBccGFyYW0gZmlsZSAgICAgIGZpbGUgd2hlcmUgdGhpcyBlcnJvciBjb2RlIGFkZGl0aW9uIG9jY3VycmVkLgotICogXHBhcmFtIGxpbmUgICAgICBsaW5lIHdoZXJlIHRoaXMgZXJyb3IgY29kZSBhZGRpdGlvbiBvY2N1cnJlZC4KLSAqLwotc3RhdGljIGlubGluZSBpbnQgbWJlZHRsc19lcnJvcl9hZGQoaW50IGhpZ2gsIGludCBsb3csCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICpmaWxlLCBpbnQgbGluZSkKLXsKLSNpZiBkZWZpbmVkKE1CRURUTFNfVEVTVF9IT09LUykKLSAgICBpZiAoKm1iZWR0bHNfdGVzdF9ob29rX2Vycm9yX2FkZCAhPSBOVUxMKSB7Ci0gICAgICAgICgqbWJlZHRsc190ZXN0X2hvb2tfZXJyb3JfYWRkKShoaWdoLCBsb3csIGZpbGUsIGxpbmUpOwotICAgIH0KLSNlbmRpZgotICAgICh2b2lkKSBmaWxlOwotICAgICh2b2lkKSBsaW5lOwotCi0gICAgcmV0dXJuIGhpZ2ggKyBsb3c7Ci19Ci0KLS8qKgotICogXGJyaWVmIFRyYW5zbGF0ZSBhbiBNYmVkIFRMUyBlcnJvciBjb2RlIGludG8gYSBzdHJpbmcgcmVwcmVzZW50YXRpb24uCi0gKiAgICAgICAgVGhlIHJlc3VsdCBpcyB0cnVuY2F0ZWQgaWYgbmVjZXNzYXJ5IGFuZCBhbHdheXMgaW5jbHVkZXMgYQotICogICAgICAgIHRlcm1pbmF0aW5nIG51bGwgYnl0ZS4KLSAqCi0gKiBccGFyYW0gZXJybnVtICAgIGVycm9yIGNvZGUKLSAqIFxwYXJhbSBidWZmZXIgICAgYnVmZmVyIHRvIHBsYWNlIHJlcHJlc2VudGF0aW9uIGluCi0gKiBccGFyYW0gYnVmbGVuICAgIGxlbmd0aCBvZiB0aGUgYnVmZmVyCi0gKi8KLXZvaWQgbWJlZHRsc19zdHJlcnJvcihpbnQgZXJybnVtLCBjaGFyICpidWZmZXIsIHNpemVfdCBidWZsZW4pOwotCi0vKioKLSAqIFxicmllZiBUcmFuc2xhdGUgdGhlIGhpZ2gtbGV2ZWwgcGFydCBvZiBhbiBNYmVkIFRMUyBlcnJvciBjb2RlIGludG8gYSBzdHJpbmcKLSAqICAgICAgICByZXByZXNlbnRhdGlvbi4KLSAqCi0gKiBUaGlzIGZ1bmN0aW9uIHJldHVybnMgYSBjb25zdCBwb2ludGVyIHRvIGFuIHVuLW1vZGlmaWFibGUgc3RyaW5nLiBUaGUgY2FsbGVyCi0gKiBtdXN0IG5vdCB0cnkgdG8gbW9kaWZ5IHRoZSBzdHJpbmcuIEl0IGlzIGludGVuZGVkIHRvIGJlIHVzZWQgbW9zdGx5IGZvcgotICogbG9nZ2luZyBwdXJwb3Nlcy4KLSAqCi0gKiBccGFyYW0gZXJyb3JfY29kZSAgICBlcnJvciBjb2RlCi0gKgotICogXHJldHVybiBUaGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBlcnJvciBjb2RlLCBvciBcYyBOVUxMIGlmIHRoZSBlcnJvcgotICogICAgICAgICBjb2RlIGlzIHVua25vd24uCi0gKi8KLWNvbnN0IGNoYXIgKm1iZWR0bHNfaGlnaF9sZXZlbF9zdHJlcnIoaW50IGVycm9yX2NvZGUpOwotCi0vKioKLSAqIFxicmllZiBUcmFuc2xhdGUgdGhlIGxvdy1sZXZlbCBwYXJ0IG9mIGFuIE1iZWQgVExTIGVycm9yIGNvZGUgaW50byBhIHN0cmluZwotICogICAgICAgIHJlcHJlc2VudGF0aW9uLgotICoKLSAqIFRoaXMgZnVuY3Rpb24gcmV0dXJucyBhIGNvbnN0IHBvaW50ZXIgdG8gYW4gdW4tbW9kaWZpYWJsZSBzdHJpbmcuIFRoZSBjYWxsZXIKLSAqIG11c3Qgbm90IHRyeSB0byBtb2RpZnkgdGhlIHN0cmluZy4gSXQgaXMgaW50ZW5kZWQgdG8gYmUgdXNlZCBtb3N0bHkgZm9yCi0gKiBsb2dnaW5nIHB1cnBvc2VzLgotICoKLSAqIFxwYXJhbSBlcnJvcl9jb2RlICAgIGVycm9yIGNvZGUKLSAqCi0gKiBccmV0dXJuIFRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIGVycm9yIGNvZGUsIG9yIFxjIE5VTEwgaWYgdGhlIGVycm9yCi0gKiAgICAgICAgIGNvZGUgaXMgdW5rbm93bi4KLSAqLwotY29uc3QgY2hhciAqbWJlZHRsc19sb3dfbGV2ZWxfc3RyZXJyKGludCBlcnJvcl9jb2RlKTsKLQotI2lmZGVmIF9fY3BsdXNwbHVzCi19Ci0jZW5kaWYKLQotI2VuZGlmIC8qIGVycm9yLmggKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvbWJlZHRscy9nY20uaCBiL2luY2x1ZGUvbWJlZHRscy9nY20uaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOThmYWE0My4uMDAwMDAwMAotLS0gYS9pbmNsdWRlL21iZWR0bHMvZ2NtLmgKKysrIC9kZXYvbnVsbApAQCAtMSwzODQgKzAsMCBAQAotLyoqCi0gKiBcZmlsZSBnY20uaAotICoKLSAqIFxicmllZiBUaGlzIGZpbGUgY29udGFpbnMgR0NNIGRlZmluaXRpb25zIGFuZCBmdW5jdGlvbnMuCi0gKgotICogVGhlIEdhbG9pcy9Db3VudGVyIE1vZGUgKEdDTSkgZm9yIDEyOC1iaXQgYmxvY2sgY2lwaGVycyBpcyBkZWZpbmVkCi0gKiBpbiA8ZW0+RC4gTWNHcmV3LCBKLiBWaWVnYSwgVGhlIEdhbG9pcy9Db3VudGVyIE1vZGUgb2YgT3BlcmF0aW9uCi0gKiAoR0NNKSwgTmF0bC4gSW5zdC4gU3RhbmQuIFRlY2hub2wuPC9lbT4KLSAqCi0gKiBGb3IgbW9yZSBpbmZvcm1hdGlvbiBvbiBHQ00sIHNlZSA8ZW0+TklTVCBTUCA4MDAtMzhEOiBSZWNvbW1lbmRhdGlvbiBmb3IKLSAqIEJsb2NrIENpcGhlciBNb2RlcyBvZiBPcGVyYXRpb246IEdhbG9pcy9Db3VudGVyIE1vZGUgKEdDTSkgYW5kIEdNQUM8L2VtPi4KLSAqCi0gKi8KLS8qCi0gKiAgQ29weXJpZ2h0IFRoZSBNYmVkIFRMUyBDb250cmlidXRvcnMKLSAqICBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMCBPUiBHUEwtMi4wLW9yLWxhdGVyCi0gKi8KLQotI2lmbmRlZiBNQkVEVExTX0dDTV9ICi0jZGVmaW5lIE1CRURUTFNfR0NNX0gKLSNpbmNsdWRlICJtYmVkdGxzL3ByaXZhdGVfYWNjZXNzLmgiCi0KLSNpbmNsdWRlICJtYmVkdGxzL2J1aWxkX2luZm8uaCIKLQotI2luY2x1ZGUgIm1iZWR0bHMvY2lwaGVyLmgiCi0KLSNpZiBkZWZpbmVkKE1CRURUTFNfQkxPQ0tfQ0lQSEVSX0MpCi0jaW5jbHVkZSAibWJlZHRscy9ibG9ja19jaXBoZXIuaCIKLSNlbmRpZgotCi0jaW5jbHVkZSA8c3RkaW50Lmg+Ci0KLSNkZWZpbmUgTUJFRFRMU19HQ01fRU5DUllQVCAgICAgMQotI2RlZmluZSBNQkVEVExTX0dDTV9ERUNSWVBUICAgICAwCi0KLS8qKiBBdXRoZW50aWNhdGVkIGRlY3J5cHRpb24gZmFpbGVkLiAqLwotI2RlZmluZSBNQkVEVExTX0VSUl9HQ01fQVVUSF9GQUlMRUQgICAgICAgICAgICAgICAgICAgICAgIC0weDAwMTIKLS8qKiBCYWQgaW5wdXQgcGFyYW1ldGVycyB0byBmdW5jdGlvbi4gKi8KLSNkZWZpbmUgTUJFRFRMU19FUlJfR0NNX0JBRF9JTlBVVCAgICAgICAgICAgICAgICAgICAgICAgICAtMHgwMDE0Ci0vKiogQW4gb3V0cHV0IGJ1ZmZlciBpcyB0b28gc21hbGwuICovCi0jZGVmaW5lIE1CRURUTFNfRVJSX0dDTV9CVUZGRVJfVE9PX1NNQUxMICAgICAgICAgICAgICAgICAgLTB4MDAxNgotCi0jaWZkZWYgX19jcGx1c3BsdXMKLWV4dGVybiAiQyIgewotI2VuZGlmCi0KLSNpZiAhZGVmaW5lZChNQkVEVExTX0dDTV9BTFQpCi0KLSNpZiBkZWZpbmVkKE1CRURUTFNfR0NNX0xBUkdFX1RBQkxFKQotI2RlZmluZSBNQkVEVExTX0dDTV9IVEFCTEVfU0laRSAyNTYKLSNlbHNlCi0jZGVmaW5lIE1CRURUTFNfR0NNX0hUQUJMRV9TSVpFIDE2Ci0jZW5kaWYKLQotLyoqCi0gKiBcYnJpZWYgICAgICAgICAgVGhlIEdDTSBjb250ZXh0IHN0cnVjdHVyZS4KLSAqLwotdHlwZWRlZiBzdHJ1Y3QgbWJlZHRsc19nY21fY29udGV4dCB7Ci0jaWYgZGVmaW5lZChNQkVEVExTX0JMT0NLX0NJUEhFUl9DKQotICAgIG1iZWR0bHNfYmxvY2tfY2lwaGVyX2NvbnRleHRfdCBNQkVEVExTX1BSSVZBVEUoYmxvY2tfY2lwaGVyX2N0eCk7ICAvKiE8IFRoZSBjaXBoZXIgY29udGV4dCB1c2VkLiAqLwotI2Vsc2UKLSAgICBtYmVkdGxzX2NpcGhlcl9jb250ZXh0X3QgTUJFRFRMU19QUklWQVRFKGNpcGhlcl9jdHgpOyAgICAvKiE8IFRoZSBjaXBoZXIgY29udGV4dCB1c2VkLiAqLwotI2VuZGlmCi0gICAgdWludDY0X3QgTUJFRFRMU19QUklWQVRFKEgpW01CRURUTFNfR0NNX0hUQUJMRV9TSVpFXVsyXTsgLyohPCBQcmVjYWxjdWxhdGVkIEhUYWJsZS4gKi8KLSAgICB1aW50NjRfdCBNQkVEVExTX1BSSVZBVEUobGVuKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiE8IFRoZSB0b3RhbCBsZW5ndGggb2YgdGhlIGVuY3J5cHRlZCBkYXRhLiAqLwotICAgIHVpbnQ2NF90IE1CRURUTFNfUFJJVkFURShhZGRfbGVuKTsgICAgICAgICAgICAgICAgICAgICAgIC8qITwgVGhlIHRvdGFsIGxlbmd0aCBvZiB0aGUgYWRkaXRpb25hbCBkYXRhLiAqLwotICAgIHVuc2lnbmVkIGNoYXIgTUJFRFRMU19QUklWQVRFKGJhc2VfZWN0cilbMTZdOyAgICAgICAgICAgIC8qITwgVGhlIGZpcnN0IEVDVFIgZm9yIHRhZy4gKi8KLSAgICB1bnNpZ25lZCBjaGFyIE1CRURUTFNfUFJJVkFURSh5KVsxNl07ICAgICAgICAgICAgICAgICAgICAvKiE8IFRoZSBZIHdvcmtpbmcgdmFsdWUuICovCi0gICAgdW5zaWduZWQgY2hhciBNQkVEVExTX1BSSVZBVEUoYnVmKVsxNl07ICAgICAgICAgICAgICAgICAgLyohPCBUaGUgYnVmIHdvcmtpbmcgdmFsdWUuICovCi0gICAgdW5zaWduZWQgY2hhciBNQkVEVExTX1BSSVZBVEUobW9kZSk7ICAgICAgICAgICAgICAgICAgICAgLyohPCBUaGUgb3BlcmF0aW9uIHRvIHBlcmZvcm06Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICNNQkVEVExTX0dDTV9FTkNSWVBUIG9yCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICNNQkVEVExTX0dDTV9ERUNSWVBULiAqLwotICAgIHVuc2lnbmVkIGNoYXIgTUJFRFRMU19QUklWQVRFKGFjY2VsZXJhdGlvbik7ICAgICAgICAgICAgIC8qITwgVGhlIGFjY2VsZXJhdGlvbiB0byB1c2UuICovCi19Ci1tYmVkdGxzX2djbV9jb250ZXh0OwotCi0jZWxzZSAgLyogIU1CRURUTFNfR0NNX0FMVCAqLwotI2luY2x1ZGUgImdjbV9hbHQuaCIKLSNlbmRpZiAvKiAhTUJFRFRMU19HQ01fQUxUICovCi0KLS8qKgotICogXGJyaWVmICAgICAgICAgICBUaGlzIGZ1bmN0aW9uIGluaXRpYWxpemVzIHRoZSBzcGVjaWZpZWQgR0NNIGNvbnRleHQsCi0gKiAgICAgICAgICAgICAgICAgIHRvIG1ha2UgcmVmZXJlbmNlcyB2YWxpZCwgYW5kIHByZXBhcmVzIHRoZSBjb250ZXh0Ci0gKiAgICAgICAgICAgICAgICAgIGZvciBtYmVkdGxzX2djbV9zZXRrZXkoKSBvciBtYmVkdGxzX2djbV9mcmVlKCkuCi0gKgotICogICAgICAgICAgICAgICAgICBUaGUgZnVuY3Rpb24gZG9lcyBub3QgYmluZCB0aGUgR0NNIGNvbnRleHQgdG8gYSBwYXJ0aWN1bGFyCi0gKiAgICAgICAgICAgICAgICAgIGNpcGhlciwgbm9yIHNldCB0aGUga2V5LiBGb3IgdGhpcyBwdXJwb3NlLCB1c2UKLSAqICAgICAgICAgICAgICAgICAgbWJlZHRsc19nY21fc2V0a2V5KCkuCi0gKgotICogXHBhcmFtIGN0eCAgICAgICBUaGUgR0NNIGNvbnRleHQgdG8gaW5pdGlhbGl6ZS4gVGhpcyBtdXN0IG5vdCBiZSBcYyBOVUxMLgotICovCi12b2lkIG1iZWR0bHNfZ2NtX2luaXQobWJlZHRsc19nY21fY29udGV4dCAqY3R4KTsKLQotLyoqCi0gKiBcYnJpZWYgICAgICAgICAgIFRoaXMgZnVuY3Rpb24gYXNzb2NpYXRlcyBhIEdDTSBjb250ZXh0IHdpdGggYQotICogICAgICAgICAgICAgICAgICBjaXBoZXIgYWxnb3JpdGhtIGFuZCBhIGtleS4KLSAqCi0gKiBccGFyYW0gY3R4ICAgICAgIFRoZSBHQ00gY29udGV4dC4gVGhpcyBtdXN0IGJlIGluaXRpYWxpemVkLgotICogXHBhcmFtIGNpcGhlciAgICBUaGUgMTI4LWJpdCBibG9jayBjaXBoZXIgdG8gdXNlLgotICogXHBhcmFtIGtleSAgICAgICBUaGUgZW5jcnlwdGlvbiBrZXkuIFRoaXMgbXVzdCBiZSBhIHJlYWRhYmxlIGJ1ZmZlciBvZiBhdAotICogICAgICAgICAgICAgICAgICBsZWFzdCBccCBrZXliaXRzIGJpdHMuCi0gKiBccGFyYW0ga2V5Yml0cyAgIFRoZSBrZXkgc2l6ZSBpbiBiaXRzLiBWYWxpZCBvcHRpb25zIGFyZToKLSAqICAgICAgICAgICAgICAgICAgPHVsPjxsaT4xMjggYml0czwvbGk+Ci0gKiAgICAgICAgICAgICAgICAgIDxsaT4xOTIgYml0czwvbGk+Ci0gKiAgICAgICAgICAgICAgICAgIDxsaT4yNTYgYml0czwvbGk+PC91bD4KLSAqCi0gKiBccmV0dXJuICAgICAgICAgIFxjIDAgb24gc3VjY2Vzcy4KLSAqIFxyZXR1cm4gICAgICAgICAgQSBjaXBoZXItc3BlY2lmaWMgZXJyb3IgY29kZSBvbiBmYWlsdXJlLgotICovCi1pbnQgbWJlZHRsc19nY21fc2V0a2V5KG1iZWR0bHNfZ2NtX2NvbnRleHQgKmN0eCwKLSAgICAgICAgICAgICAgICAgICAgICAgbWJlZHRsc19jaXBoZXJfaWRfdCBjaXBoZXIsCi0gICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgKmtleSwKLSAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50IGtleWJpdHMpOwotCi0vKioKLSAqIFxicmllZiAgICAgICAgICAgVGhpcyBmdW5jdGlvbiBwZXJmb3JtcyBHQ00gZW5jcnlwdGlvbiBvciBkZWNyeXB0aW9uIG9mIGEgYnVmZmVyLgotICoKLSAqIFxub3RlICAgICAgICAgICAgRm9yIGVuY3J5cHRpb24sIHRoZSBvdXRwdXQgYnVmZmVyIGNhbiBiZSB0aGUgc2FtZSBhcyB0aGUKLSAqICAgICAgICAgICAgICAgICAgaW5wdXQgYnVmZmVyLiBGb3IgZGVjcnlwdGlvbiwgdGhlIG91dHB1dCBidWZmZXIgY2Fubm90IGJlCi0gKiAgICAgICAgICAgICAgICAgIHRoZSBzYW1lIGFzIGlucHV0IGJ1ZmZlci4gSWYgdGhlIGJ1ZmZlcnMgb3ZlcmxhcCwgdGhlIG91dHB1dAotICogICAgICAgICAgICAgICAgICBidWZmZXIgbXVzdCB0cmFpbCBhdCBsZWFzdCA4IEJ5dGVzIGJlaGluZCB0aGUgaW5wdXQgYnVmZmVyLgotICoKLSAqIFx3YXJuaW5nICAgICAgICAgV2hlbiB0aGlzIGZ1bmN0aW9uIHBlcmZvcm1zIGEgZGVjcnlwdGlvbiwgaXQgb3V0cHV0cyB0aGUKLSAqICAgICAgICAgICAgICAgICAgYXV0aGVudGljYXRpb24gdGFnIGFuZCBkb2VzIG5vdCB2ZXJpZnkgdGhhdCB0aGUgZGF0YSBpcwotICogICAgICAgICAgICAgICAgICBhdXRoZW50aWMuIFlvdSBzaG91bGQgdXNlIHRoaXMgZnVuY3Rpb24gdG8gcGVyZm9ybSBlbmNyeXB0aW9uCi0gKiAgICAgICAgICAgICAgICAgIG9ubHkuIEZvciBkZWNyeXB0aW9uLCB1c2UgbWJlZHRsc19nY21fYXV0aF9kZWNyeXB0KCkgaW5zdGVhZC4KLSAqCi0gKiBccGFyYW0gY3R4ICAgICAgIFRoZSBHQ00gY29udGV4dCB0byB1c2UgZm9yIGVuY3J5cHRpb24gb3IgZGVjcnlwdGlvbi4gVGhpcwotICogICAgICAgICAgICAgICAgICBtdXN0IGJlIGluaXRpYWxpemVkLgotICogXHBhcmFtIG1vZGUgICAgICBUaGUgb3BlcmF0aW9uIHRvIHBlcmZvcm06Ci0gKiAgICAgICAgICAgICAgICAgIC0gI01CRURUTFNfR0NNX0VOQ1JZUFQgdG8gcGVyZm9ybSBhdXRoZW50aWNhdGVkIGVuY3J5cHRpb24uCi0gKiAgICAgICAgICAgICAgICAgICAgVGhlIGNpcGhlcnRleHQgaXMgd3JpdHRlbiB0byBccCBvdXRwdXQgYW5kIHRoZQotICogICAgICAgICAgICAgICAgICAgIGF1dGhlbnRpY2F0aW9uIHRhZyBpcyB3cml0dGVuIHRvIFxwIHRhZy4KLSAqICAgICAgICAgICAgICAgICAgLSAjTUJFRFRMU19HQ01fREVDUllQVCB0byBwZXJmb3JtIGRlY3J5cHRpb24uCi0gKiAgICAgICAgICAgICAgICAgICAgVGhlIHBsYWludGV4dCBpcyB3cml0dGVuIHRvIFxwIG91dHB1dCBhbmQgdGhlCi0gKiAgICAgICAgICAgICAgICAgICAgYXV0aGVudGljYXRpb24gdGFnIGlzIHdyaXR0ZW4gdG8gXHAgdGFnLgotICogICAgICAgICAgICAgICAgICAgIE5vdGUgdGhhdCB0aGlzIG1vZGUgaXMgbm90IHJlY29tbWVuZGVkLCBiZWNhdXNlIGl0IGRvZXMKLSAqICAgICAgICAgICAgICAgICAgICBub3QgdmVyaWZ5IHRoZSBhdXRoZW50aWNpdHkgb2YgdGhlIGRhdGEuIEZvciB0aGlzIHJlYXNvbiwKLSAqICAgICAgICAgICAgICAgICAgICB5b3Ugc2hvdWxkIHVzZSBtYmVkdGxzX2djbV9hdXRoX2RlY3J5cHQoKSBpbnN0ZWFkIG9mCi0gKiAgICAgICAgICAgICAgICAgICAgY2FsbGluZyB0aGlzIGZ1bmN0aW9uIGluIGRlY3J5cHRpb24gbW9kZS4KLSAqIFxwYXJhbSBsZW5ndGggICAgVGhlIGxlbmd0aCBvZiB0aGUgaW5wdXQgZGF0YSwgd2hpY2ggaXMgZXF1YWwgdG8gdGhlIGxlbmd0aAotICogICAgICAgICAgICAgICAgICBvZiB0aGUgb3V0cHV0IGRhdGEuCi0gKiBccGFyYW0gaXYgICAgICAgIFRoZSBpbml0aWFsaXphdGlvbiB2ZWN0b3IuIFRoaXMgbXVzdCBiZSBhIHJlYWRhYmxlIGJ1ZmZlciBvZgotICogICAgICAgICAgICAgICAgICBhdCBsZWFzdCBccCBpdl9sZW4gQnl0ZXMuCi0gKiBccGFyYW0gaXZfbGVuICAgIFRoZSBsZW5ndGggb2YgdGhlIElWLgotICogXHBhcmFtIGFkZCAgICAgICBUaGUgYnVmZmVyIGhvbGRpbmcgdGhlIGFkZGl0aW9uYWwgZGF0YS4gVGhpcyBtdXN0IGJlIG9mIGF0Ci0gKiAgICAgICAgICAgICAgICAgIGxlYXN0IHRoYXQgc2l6ZSBpbiBCeXRlcy4KLSAqIFxwYXJhbSBhZGRfbGVuICAgVGhlIGxlbmd0aCBvZiB0aGUgYWRkaXRpb25hbCBkYXRhLgotICogXHBhcmFtIGlucHV0ICAgICBUaGUgYnVmZmVyIGhvbGRpbmcgdGhlIGlucHV0IGRhdGEuIElmIFxwIGxlbmd0aCBpcyBncmVhdGVyCi0gKiAgICAgICAgICAgICAgICAgIHRoYW4gemVybywgdGhpcyBtdXN0IGJlIGEgcmVhZGFibGUgYnVmZmVyIG9mIGF0IGxlYXN0IHRoYXQKLSAqICAgICAgICAgICAgICAgICAgc2l6ZSBpbiBCeXRlcy4KLSAqIFxwYXJhbSBvdXRwdXQgICAgVGhlIGJ1ZmZlciBmb3IgaG9sZGluZyB0aGUgb3V0cHV0IGRhdGEuIElmIFxwIGxlbmd0aCBpcyBncmVhdGVyCi0gKiAgICAgICAgICAgICAgICAgIHRoYW4gemVybywgdGhpcyBtdXN0IGJlIGEgd3JpdGFibGUgYnVmZmVyIG9mIGF0IGxlYXN0IHRoYXQKLSAqICAgICAgICAgICAgICAgICAgc2l6ZSBpbiBCeXRlcy4KLSAqIFxwYXJhbSB0YWdfbGVuICAgVGhlIGxlbmd0aCBvZiB0aGUgdGFnIHRvIGdlbmVyYXRlLgotICogXHBhcmFtIHRhZyAgICAgICBUaGUgYnVmZmVyIGZvciBob2xkaW5nIHRoZSB0YWcuIFRoaXMgbXVzdCBiZSBhIHdyaXRhYmxlCi0gKiAgICAgICAgICAgICAgICAgIGJ1ZmZlciBvZiBhdCBsZWFzdCBccCB0YWdfbGVuIEJ5dGVzLgotICoKLSAqIFxyZXR1cm4gICAgICAgICAgXGMgMCBpZiB0aGUgZW5jcnlwdGlvbiBvciBkZWNyeXB0aW9uIHdhcyBwZXJmb3JtZWQKLSAqICAgICAgICAgICAgICAgICAgc3VjY2Vzc2Z1bGx5LiBOb3RlIHRoYXQgaW4gI01CRURUTFNfR0NNX0RFQ1JZUFQgbW9kZSwKLSAqICAgICAgICAgICAgICAgICAgdGhpcyBkb2VzIG5vdCBpbmRpY2F0ZSB0aGF0IHRoZSBkYXRhIGlzIGF1dGhlbnRpYy4KLSAqIFxyZXR1cm4gICAgICAgICAgI01CRURUTFNfRVJSX0dDTV9CQURfSU5QVVQgaWYgdGhlIGxlbmd0aHMgb3IgcG9pbnRlcnMgYXJlCi0gKiAgICAgICAgICAgICAgICAgIG5vdCB2YWxpZCBvciBhIGNpcGhlci1zcGVjaWZpYyBlcnJvciBjb2RlIGlmIHRoZSBlbmNyeXB0aW9uCi0gKiAgICAgICAgICAgICAgICAgIG9yIGRlY3J5cHRpb24gZmFpbGVkLgotICovCi1pbnQgbWJlZHRsc19nY21fY3J5cHRfYW5kX3RhZyhtYmVkdGxzX2djbV9jb250ZXh0ICpjdHgsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgbW9kZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBsZW5ndGgsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1bnNpZ25lZCBjaGFyICppdiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBpdl9sZW4sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1bnNpZ25lZCBjaGFyICphZGQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgYWRkX2xlbiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgKmlucHV0LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgY2hhciAqb3V0cHV0LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IHRhZ19sZW4sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBjaGFyICp0YWcpOwotCi0vKioKLSAqIFxicmllZiAgICAgICAgICAgVGhpcyBmdW5jdGlvbiBwZXJmb3JtcyBhIEdDTSBhdXRoZW50aWNhdGVkIGRlY3J5cHRpb24gb2YgYQotICogICAgICAgICAgICAgICAgICBidWZmZXIuCi0gKgotICogXG5vdGUgICAgICAgICAgICBGb3IgZGVjcnlwdGlvbiwgdGhlIG91dHB1dCBidWZmZXIgY2Fubm90IGJlIHRoZSBzYW1lIGFzCi0gKiAgICAgICAgICAgICAgICAgIGlucHV0IGJ1ZmZlci4gSWYgdGhlIGJ1ZmZlcnMgb3ZlcmxhcCwgdGhlIG91dHB1dCBidWZmZXIKLSAqICAgICAgICAgICAgICAgICAgbXVzdCB0cmFpbCBhdCBsZWFzdCA4IEJ5dGVzIGJlaGluZCB0aGUgaW5wdXQgYnVmZmVyLgotICoKLSAqIFxwYXJhbSBjdHggICAgICAgVGhlIEdDTSBjb250ZXh0LiBUaGlzIG11c3QgYmUgaW5pdGlhbGl6ZWQuCi0gKiBccGFyYW0gbGVuZ3RoICAgIFRoZSBsZW5ndGggb2YgdGhlIGNpcGhlcnRleHQgdG8gZGVjcnlwdCwgd2hpY2ggaXMgYWxzbwotICogICAgICAgICAgICAgICAgICB0aGUgbGVuZ3RoIG9mIHRoZSBkZWNyeXB0ZWQgcGxhaW50ZXh0LgotICogXHBhcmFtIGl2ICAgICAgICBUaGUgaW5pdGlhbGl6YXRpb24gdmVjdG9yLiBUaGlzIG11c3QgYmUgYSByZWFkYWJsZSBidWZmZXIKLSAqICAgICAgICAgICAgICAgICAgb2YgYXQgbGVhc3QgXHAgaXZfbGVuIEJ5dGVzLgotICogXHBhcmFtIGl2X2xlbiAgICBUaGUgbGVuZ3RoIG9mIHRoZSBJVi4KLSAqIFxwYXJhbSBhZGQgICAgICAgVGhlIGJ1ZmZlciBob2xkaW5nIHRoZSBhZGRpdGlvbmFsIGRhdGEuIFRoaXMgbXVzdCBiZSBvZiBhdAotICogICAgICAgICAgICAgICAgICBsZWFzdCB0aGF0IHNpemUgaW4gQnl0ZXMuCi0gKiBccGFyYW0gYWRkX2xlbiAgIFRoZSBsZW5ndGggb2YgdGhlIGFkZGl0aW9uYWwgZGF0YS4KLSAqIFxwYXJhbSB0YWcgICAgICAgVGhlIGJ1ZmZlciBob2xkaW5nIHRoZSB0YWcgdG8gdmVyaWZ5LiBUaGlzIG11c3QgYmUgYQotICogICAgICAgICAgICAgICAgICByZWFkYWJsZSBidWZmZXIgb2YgYXQgbGVhc3QgXHAgdGFnX2xlbiBCeXRlcy4KLSAqIFxwYXJhbSB0YWdfbGVuICAgVGhlIGxlbmd0aCBvZiB0aGUgdGFnIHRvIHZlcmlmeS4KLSAqIFxwYXJhbSBpbnB1dCAgICAgVGhlIGJ1ZmZlciBob2xkaW5nIHRoZSBjaXBoZXJ0ZXh0LiBJZiBccCBsZW5ndGggaXMgZ3JlYXRlcgotICogICAgICAgICAgICAgICAgICB0aGFuIHplcm8sIHRoaXMgbXVzdCBiZSBhIHJlYWRhYmxlIGJ1ZmZlciBvZiBhdCBsZWFzdCB0aGF0Ci0gKiAgICAgICAgICAgICAgICAgIHNpemUuCi0gKiBccGFyYW0gb3V0cHV0ICAgIFRoZSBidWZmZXIgZm9yIGhvbGRpbmcgdGhlIGRlY3J5cHRlZCBwbGFpbnRleHQuIElmIFxwIGxlbmd0aAotICogICAgICAgICAgICAgICAgICBpcyBncmVhdGVyIHRoYW4gemVybywgdGhpcyBtdXN0IGJlIGEgd3JpdGFibGUgYnVmZmVyIG9mIGF0Ci0gKiAgICAgICAgICAgICAgICAgIGxlYXN0IHRoYXQgc2l6ZS4KLSAqCi0gKiBccmV0dXJuICAgICAgICAgIFxjIDAgaWYgc3VjY2Vzc2Z1bCBhbmQgYXV0aGVudGljYXRlZC4KLSAqIFxyZXR1cm4gICAgICAgICAgI01CRURUTFNfRVJSX0dDTV9BVVRIX0ZBSUxFRCBpZiB0aGUgdGFnIGRvZXMgbm90IG1hdGNoLgotICogXHJldHVybiAgICAgICAgICAjTUJFRFRMU19FUlJfR0NNX0JBRF9JTlBVVCBpZiB0aGUgbGVuZ3RocyBvciBwb2ludGVycyBhcmUKLSAqICAgICAgICAgICAgICAgICAgbm90IHZhbGlkIG9yIGEgY2lwaGVyLXNwZWNpZmljIGVycm9yIGNvZGUgaWYgdGhlIGRlY3J5cHRpb24KLSAqICAgICAgICAgICAgICAgICAgZmFpbGVkLgotICovCi1pbnQgbWJlZHRsc19nY21fYXV0aF9kZWNyeXB0KG1iZWR0bHNfZ2NtX2NvbnRleHQgKmN0eCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IGxlbmd0aCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdW5zaWduZWQgY2hhciAqaXYsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBpdl9sZW4sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgKmFkZCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IGFkZF9sZW4sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgKnRhZywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IHRhZ19sZW4sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgKmlucHV0LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBjaGFyICpvdXRwdXQpOwotCi0vKioKLSAqIFxicmllZiAgICAgICAgICAgVGhpcyBmdW5jdGlvbiBzdGFydHMgYSBHQ00gZW5jcnlwdGlvbiBvciBkZWNyeXB0aW9uCi0gKiAgICAgICAgICAgICAgICAgIG9wZXJhdGlvbi4KLSAqCi0gKiBccGFyYW0gY3R4ICAgICAgIFRoZSBHQ00gY29udGV4dC4gVGhpcyBtdXN0IGJlIGluaXRpYWxpemVkLgotICogXHBhcmFtIG1vZGUgICAgICBUaGUgb3BlcmF0aW9uIHRvIHBlcmZvcm06ICNNQkVEVExTX0dDTV9FTkNSWVBUIG9yCi0gKiAgICAgICAgICAgICAgICAgICNNQkVEVExTX0dDTV9ERUNSWVBULgotICogXHBhcmFtIGl2ICAgICAgICBUaGUgaW5pdGlhbGl6YXRpb24gdmVjdG9yLiBUaGlzIG11c3QgYmUgYSByZWFkYWJsZSBidWZmZXIgb2YKLSAqICAgICAgICAgICAgICAgICAgYXQgbGVhc3QgXHAgaXZfbGVuIEJ5dGVzLgotICogXHBhcmFtIGl2X2xlbiAgICBUaGUgbGVuZ3RoIG9mIHRoZSBJVi4KLSAqCi0gKiBccmV0dXJuICAgICAgICAgIFxjIDAgb24gc3VjY2Vzcy4KLSAqLwotaW50IG1iZWR0bHNfZ2NtX3N0YXJ0cyhtYmVkdGxzX2djbV9jb250ZXh0ICpjdHgsCi0gICAgICAgICAgICAgICAgICAgICAgIGludCBtb2RlLAotICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1bnNpZ25lZCBjaGFyICppdiwKLSAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IGl2X2xlbik7Ci0KLS8qKgotICogXGJyaWVmICAgICAgICAgICBUaGlzIGZ1bmN0aW9uIGZlZWRzIGFuIGlucHV0IGJ1ZmZlciBhcyBhc3NvY2lhdGVkIGRhdGEKLSAqICAgICAgICAgICAgICAgICAgKGF1dGhlbnRpY2F0ZWQgYnV0IG5vdCBlbmNyeXB0ZWQgZGF0YSkgaW4gYSBHQ00KLSAqICAgICAgICAgICAgICAgICAgZW5jcnlwdGlvbiBvciBkZWNyeXB0aW9uIG9wZXJhdGlvbi4KLSAqCi0gKiAgICAgICAgICAgICAgICAgIENhbGwgdGhpcyBmdW5jdGlvbiBhZnRlciBtYmVkdGxzX2djbV9zdGFydHMoKSB0byBwYXNzCi0gKiAgICAgICAgICAgICAgICAgIHRoZSBhc3NvY2lhdGVkIGRhdGEuIElmIHRoZSBhc3NvY2lhdGVkIGRhdGEgaXMgZW1wdHksCi0gKiAgICAgICAgICAgICAgICAgIHlvdSBkbyBub3QgbmVlZCB0byBjYWxsIHRoaXMgZnVuY3Rpb24uIFlvdSBtYXkgbm90Ci0gKiAgICAgICAgICAgICAgICAgIGNhbGwgdGhpcyBmdW5jdGlvbiBhZnRlciBjYWxsaW5nIG1iZWR0bHNfY2lwaGVyX3VwZGF0ZSgpLgotICoKLSAqIFxwYXJhbSBjdHggICAgICAgVGhlIEdDTSBjb250ZXh0LiBUaGlzIG11c3QgaGF2ZSBiZWVuIHN0YXJ0ZWQgd2l0aAotICogICAgICAgICAgICAgICAgICBtYmVkdGxzX2djbV9zdGFydHMoKSBhbmQgbXVzdCBub3QgaGF2ZSB5ZXQgcmVjZWl2ZWQKLSAqICAgICAgICAgICAgICAgICAgYW55IGlucHV0IHdpdGggbWJlZHRsc19nY21fdXBkYXRlKCkuCi0gKiBccGFyYW0gYWRkICAgICAgIFRoZSBidWZmZXIgaG9sZGluZyB0aGUgYWRkaXRpb25hbCBkYXRhLCBvciBcYyBOVUxMCi0gKiAgICAgICAgICAgICAgICAgIGlmIFxwIGFkZF9sZW4gaXMgXGMgMC4KLSAqIFxwYXJhbSBhZGRfbGVuICAgVGhlIGxlbmd0aCBvZiB0aGUgYWRkaXRpb25hbCBkYXRhLiBJZiBcYyAwLAotICogICAgICAgICAgICAgICAgICBccCBhZGQgbWF5IGJlIFxjIE5VTEwuCi0gKgotICogXHJldHVybiAgICAgICAgICBcYyAwIG9uIHN1Y2Nlc3MuCi0gKi8KLWludCBtYmVkdGxzX2djbV91cGRhdGVfYWQobWJlZHRsc19nY21fY29udGV4dCAqY3R4LAotICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1bnNpZ25lZCBjaGFyICphZGQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBhZGRfbGVuKTsKLQotLyoqCi0gKiBcYnJpZWYgICAgICAgICAgIFRoaXMgZnVuY3Rpb24gZmVlZHMgYW4gaW5wdXQgYnVmZmVyIGludG8gYW4gb25nb2luZyBHQ00KLSAqICAgICAgICAgICAgICAgICAgZW5jcnlwdGlvbiBvciBkZWNyeXB0aW9uIG9wZXJhdGlvbi4KLSAqCi0gKiAgICAgICAgICAgICAgICAgIFlvdSBtYXkgY2FsbCB0aGlzIGZ1bmN0aW9uIHplcm8sIG9uZSBvciBtb3JlIHRpbWVzCi0gKiAgICAgICAgICAgICAgICAgIHRvIHBhc3Mgc3VjY2Vzc2l2ZSBwYXJ0cyBvZiB0aGUgaW5wdXQ6IHRoZSBwbGFpbnRleHQgdG8KLSAqICAgICAgICAgICAgICAgICAgZW5jcnlwdCwgb3IgdGhlIGNpcGhlcnRleHQgKG5vdCBpbmNsdWRpbmcgdGhlIHRhZykgdG8KLSAqICAgICAgICAgICAgICAgICAgZGVjcnlwdC4gQWZ0ZXIgdGhlIGxhc3QgcGFydCBvZiB0aGUgaW5wdXQsIGNhbGwKLSAqICAgICAgICAgICAgICAgICAgbWJlZHRsc19nY21fZmluaXNoKCkuCi0gKgotICogICAgICAgICAgICAgICAgICBUaGlzIGZ1bmN0aW9uIG1heSBwcm9kdWNlIG91dHB1dCBpbiBvbmUgb2YgdGhlIGZvbGxvd2luZwotICogICAgICAgICAgICAgICAgICB3YXlzOgotICogICAgICAgICAgICAgICAgICAtIEltbWVkaWF0ZSBvdXRwdXQ6IHRoZSBvdXRwdXQgbGVuZ3RoIGlzIGFsd2F5cyBlcXVhbAotICogICAgICAgICAgICAgICAgICAgIHRvIHRoZSBpbnB1dCBsZW5ndGguCi0gKiAgICAgICAgICAgICAgICAgIC0gQnVmZmVyZWQgb3V0cHV0OiB0aGUgb3V0cHV0IGNvbnNpc3RzIG9mIGEgd2hvbGUgbnVtYmVyCi0gKiAgICAgICAgICAgICAgICAgICAgb2YgMTYtYnl0ZSBibG9ja3MuIElmIHRoZSB0b3RhbCBpbnB1dCBsZW5ndGggc28gZmFyCi0gKiAgICAgICAgICAgICAgICAgICAgKG5vdCBpbmNsdWRpbmcgYXNzb2NpYXRlZCBkYXRhKSBpcyAxNiBcKiAqQiogKyAqQSoKLSAqICAgICAgICAgICAgICAgICAgICB3aXRoICpBKiA8IDE2IHRoZW4gdGhlIHRvdGFsIG91dHB1dCBsZW5ndGggaXMgMTYgXCogKkIqLgotICoKLSAqICAgICAgICAgICAgICAgICAgSW4gcGFydGljdWxhcjoKLSAqICAgICAgICAgICAgICAgICAgLSBJdCBpcyBhbHdheXMgY29ycmVjdCB0byBjYWxsIHRoaXMgZnVuY3Rpb24gd2l0aAotICogICAgICAgICAgICAgICAgICAgIFxwIG91dHB1dF9zaXplID49IFxwIGlucHV0X2xlbmd0aCArIDE1LgotICogICAgICAgICAgICAgICAgICAtIElmIFxwIGlucHV0X2xlbmd0aCBpcyBhIG11bHRpcGxlIG9mIDE2IGZvciBhbGwgdGhlIGNhbGxzCi0gKiAgICAgICAgICAgICAgICAgICAgdG8gdGhpcyBmdW5jdGlvbiBkdXJpbmcgYW4gb3BlcmF0aW9uLCB0aGVuIGl0IGlzCi0gKiAgICAgICAgICAgICAgICAgICAgY29ycmVjdCB0byB1c2UgXHAgb3V0cHV0X3NpemUgPSBccCBpbnB1dF9sZW5ndGguCi0gKgotICogXG5vdGUgICAgICAgICAgICBGb3IgZGVjcnlwdGlvbiwgdGhlIG91dHB1dCBidWZmZXIgY2Fubm90IGJlIHRoZSBzYW1lIGFzCi0gKiAgICAgICAgICAgICAgICAgIGlucHV0IGJ1ZmZlci4gSWYgdGhlIGJ1ZmZlcnMgb3ZlcmxhcCwgdGhlIG91dHB1dCBidWZmZXIKLSAqICAgICAgICAgICAgICAgICAgbXVzdCB0cmFpbCBhdCBsZWFzdCA4IEJ5dGVzIGJlaGluZCB0aGUgaW5wdXQgYnVmZmVyLgotICoKLSAqIFxwYXJhbSBjdHggICAgICAgICAgIFRoZSBHQ00gY29udGV4dC4gVGhpcyBtdXN0IGJlIGluaXRpYWxpemVkLgotICogXHBhcmFtIGlucHV0ICAgICAgICAgVGhlIGJ1ZmZlciBob2xkaW5nIHRoZSBpbnB1dCBkYXRhLiBJZiBccCBpbnB1dF9sZW5ndGgKLSAqICAgICAgICAgICAgICAgICAgICAgIGlzIGdyZWF0ZXIgdGhhbiB6ZXJvLCB0aGlzIG11c3QgYmUgYSByZWFkYWJsZSBidWZmZXIKLSAqICAgICAgICAgICAgICAgICAgICAgIG9mIGF0IGxlYXN0IFxwIGlucHV0X2xlbmd0aCBieXRlcy4KLSAqIFxwYXJhbSBpbnB1dF9sZW5ndGggIFRoZSBsZW5ndGggb2YgdGhlIGlucHV0IGRhdGEgaW4gYnl0ZXMuCi0gKiBccGFyYW0gb3V0cHV0ICAgICAgICBUaGUgYnVmZmVyIGZvciB0aGUgb3V0cHV0IGRhdGEuIElmIFxwIG91dHB1dF9zaXplCi0gKiAgICAgICAgICAgICAgICAgICAgICBpcyBncmVhdGVyIHRoYW4gemVybywgdGhpcyBtdXN0IGJlIGEgd3JpdGFibGUgYnVmZmVyIG9mCi0gKiAgICAgICAgICAgICAgICAgICAgICBvZiBhdCBsZWFzdCBccCBvdXRwdXRfc2l6ZSBieXRlcy4KLSAqIFxwYXJhbSBvdXRwdXRfc2l6ZSAgIFRoZSBzaXplIG9mIHRoZSBvdXRwdXQgYnVmZmVyIGluIGJ5dGVzLgotICogICAgICAgICAgICAgICAgICAgICAgU2VlIHRoZSBmdW5jdGlvbiBkZXNjcmlwdGlvbiByZWdhcmRpbmcgdGhlIG91dHB1dCBzaXplLgotICogXHBhcmFtIG91dHB1dF9sZW5ndGggT24gc3VjY2VzcywgXHAgKm91dHB1dF9sZW5ndGggY29udGFpbnMgdGhlIGFjdHVhbAotICogICAgICAgICAgICAgICAgICAgICAgbGVuZ3RoIG9mIHRoZSBvdXRwdXQgd3JpdHRlbiBpbiBccCBvdXRwdXQuCi0gKiAgICAgICAgICAgICAgICAgICAgICBPbiBmYWlsdXJlLCB0aGUgY29udGVudCBvZiBccCAqb3V0cHV0X2xlbmd0aCBpcwotICogICAgICAgICAgICAgICAgICAgICAgdW5zcGVjaWZpZWQuCi0gKgotICogXHJldHVybiAgICAgICAgIFxjIDAgb24gc3VjY2Vzcy4KLSAqIFxyZXR1cm4gICAgICAgICAjTUJFRFRMU19FUlJfR0NNX0JBRF9JTlBVVCBvbiBmYWlsdXJlOgotICogICAgICAgICAgICAgICAgIHRvdGFsIGlucHV0IGxlbmd0aCB0b28gbG9uZywKLSAqICAgICAgICAgICAgICAgICB1bnN1cHBvcnRlZCBpbnB1dC9vdXRwdXQgYnVmZmVyIG92ZXJsYXAgZGV0ZWN0ZWQsCi0gKiAgICAgICAgICAgICAgICAgb3IgXHAgb3V0cHV0X3NpemUgdG9vIHNtYWxsLgotICovCi1pbnQgbWJlZHRsc19nY21fdXBkYXRlKG1iZWR0bHNfZ2NtX2NvbnRleHQgKmN0eCwKLSAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdW5zaWduZWQgY2hhciAqaW5wdXQsIHNpemVfdCBpbnB1dF9sZW5ndGgsCi0gICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGNoYXIgKm91dHB1dCwgc2l6ZV90IG91dHB1dF9zaXplLAotICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgKm91dHB1dF9sZW5ndGgpOwotCi0vKioKLSAqIFxicmllZiAgICAgICAgICAgVGhpcyBmdW5jdGlvbiBmaW5pc2hlcyB0aGUgR0NNIG9wZXJhdGlvbiBhbmQgZ2VuZXJhdGVzCi0gKiAgICAgICAgICAgICAgICAgIHRoZSBhdXRoZW50aWNhdGlvbiB0YWcuCi0gKgotICogICAgICAgICAgICAgICAgICBJdCB3cmFwcyB1cCB0aGUgR0NNIHN0cmVhbSwgYW5kIGdlbmVyYXRlcyB0aGUKLSAqICAgICAgICAgICAgICAgICAgdGFnLiBUaGUgdGFnIGNhbiBoYXZlIGEgbWF4aW11bSBsZW5ndGggb2YgMTYgQnl0ZXMuCi0gKgotICogXHBhcmFtIGN0eCAgICAgICBUaGUgR0NNIGNvbnRleHQuIFRoaXMgbXVzdCBiZSBpbml0aWFsaXplZC4KLSAqIFxwYXJhbSB0YWcgICAgICAgVGhlIGJ1ZmZlciBmb3IgaG9sZGluZyB0aGUgdGFnLiBUaGlzIG11c3QgYmUgYSB3cml0YWJsZQotICogICAgICAgICAgICAgICAgICBidWZmZXIgb2YgYXQgbGVhc3QgXHAgdGFnX2xlbiBCeXRlcy4KLSAqIFxwYXJhbSB0YWdfbGVuICAgVGhlIGxlbmd0aCBvZiB0aGUgdGFnIHRvIGdlbmVyYXRlLiBUaGlzIG11c3QgYmUgYXQgbGVhc3QKLSAqICAgICAgICAgICAgICAgICAgZm91ci4KLSAqIFxwYXJhbSBvdXRwdXQgICAgVGhlIGJ1ZmZlciBmb3IgdGhlIGZpbmFsIG91dHB1dC4KLSAqICAgICAgICAgICAgICAgICAgSWYgXHAgb3V0cHV0X3NpemUgaXMgbm9uemVybywgdGhpcyBtdXN0IGJlIGEgd3JpdGFibGUKLSAqICAgICAgICAgICAgICAgICAgYnVmZmVyIG9mIGF0IGxlYXN0IFxwIG91dHB1dF9zaXplIGJ5dGVzLgotICogXHBhcmFtIG91dHB1dF9zaXplICBUaGUgc2l6ZSBvZiB0aGUgXHAgb3V0cHV0IGJ1ZmZlciBpbiBieXRlcy4KLSAqICAgICAgICAgICAgICAgICAgVGhpcyBtdXN0IGJlIGxhcmdlIGVub3VnaCBmb3IgdGhlIG91dHB1dCB0aGF0Ci0gKiAgICAgICAgICAgICAgICAgIG1iZWR0bHNfZ2NtX3VwZGF0ZSgpIGhhcyBub3QgcHJvZHVjZWQuIEluIHBhcnRpY3VsYXI6Ci0gKiAgICAgICAgICAgICAgICAgIC0gSWYgbWJlZHRsc19nY21fdXBkYXRlKCkgcHJvZHVjZXMgaW1tZWRpYXRlIG91dHB1dCwKLSAqICAgICAgICAgICAgICAgICAgICBvciBpZiB0aGUgdG90YWwgaW5wdXQgc2l6ZSBpcyBhIG11bHRpcGxlIG9mIFxjIDE2LAotICogICAgICAgICAgICAgICAgICAgIHRoZW4gbWJlZHRsc19nY21fZmluaXNoKCkgbmV2ZXIgcHJvZHVjZXMgYW55IG91dHB1dCwKLSAqICAgICAgICAgICAgICAgICAgICBzbyBccCBvdXRwdXRfc2l6ZSBjYW4gYmUgXGMgMC4KLSAqICAgICAgICAgICAgICAgICAgLSBccCBvdXRwdXRfc2l6ZSBuZXZlciBuZWVkcyB0byBiZSBtb3JlIHRoYW4gXGMgMTUuCi0gKiBccGFyYW0gb3V0cHV0X2xlbmd0aCBPbiBzdWNjZXNzLCBccCAqb3V0cHV0X2xlbmd0aCBjb250YWlucyB0aGUgYWN0dWFsCi0gKiAgICAgICAgICAgICAgICAgICAgICBsZW5ndGggb2YgdGhlIG91dHB1dCB3cml0dGVuIGluIFxwIG91dHB1dC4KLSAqICAgICAgICAgICAgICAgICAgICAgIE9uIGZhaWx1cmUsIHRoZSBjb250ZW50IG9mIFxwICpvdXRwdXRfbGVuZ3RoIGlzCi0gKiAgICAgICAgICAgICAgICAgICAgICB1bnNwZWNpZmllZC4KLSAqCi0gKiBccmV0dXJuICAgICAgICAgIFxjIDAgb24gc3VjY2Vzcy4KLSAqIFxyZXR1cm4gICAgICAgICAgI01CRURUTFNfRVJSX0dDTV9CQURfSU5QVVQgb24gZmFpbHVyZToKLSAqICAgICAgICAgICAgICAgICAgaW52YWxpZCB2YWx1ZSBvZiBccCB0YWdfbGVuLAotICogICAgICAgICAgICAgICAgICBvciBccCBvdXRwdXRfc2l6ZSB0b28gc21hbGwuCi0gKi8KLWludCBtYmVkdGxzX2djbV9maW5pc2gobWJlZHRsc19nY21fY29udGV4dCAqY3R4LAotICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBjaGFyICpvdXRwdXQsIHNpemVfdCBvdXRwdXRfc2l6ZSwKLSAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90ICpvdXRwdXRfbGVuZ3RoLAotICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBjaGFyICp0YWcsIHNpemVfdCB0YWdfbGVuKTsKLQotLyoqCi0gKiBcYnJpZWYgICAgICAgICAgIFRoaXMgZnVuY3Rpb24gY2xlYXJzIGEgR0NNIGNvbnRleHQgYW5kIHRoZSB1bmRlcmx5aW5nCi0gKiAgICAgICAgICAgICAgICAgIGNpcGhlciBzdWItY29udGV4dC4KLSAqCi0gKiBccGFyYW0gY3R4ICAgICAgIFRoZSBHQ00gY29udGV4dCB0byBjbGVhci4gSWYgdGhpcyBpcyBcYyBOVUxMLCB0aGUgY2FsbCBoYXMKLSAqICAgICAgICAgICAgICAgICAgbm8gZWZmZWN0LiBPdGhlcndpc2UsIHRoaXMgbXVzdCBiZSBpbml0aWFsaXplZC4KLSAqLwotdm9pZCBtYmVkdGxzX2djbV9mcmVlKG1iZWR0bHNfZ2NtX2NvbnRleHQgKmN0eCk7Ci0KLSNpZiBkZWZpbmVkKE1CRURUTFNfU0VMRl9URVNUKQotCi0vKioKLSAqIFxicmllZiAgICAgICAgICBUaGUgR0NNIGNoZWNrdXAgcm91dGluZS4KLSAqCi0gKiBccmV0dXJuICAgICAgICAgXGMgMCBvbiBzdWNjZXNzLgotICogXHJldHVybiAgICAgICAgIFxjIDEgb24gZmFpbHVyZS4KLSAqLwotaW50IG1iZWR0bHNfZ2NtX3NlbGZfdGVzdChpbnQgdmVyYm9zZSk7Ci0KLSNlbmRpZiAvKiBNQkVEVExTX1NFTEZfVEVTVCAqLwotCi0jaWZkZWYgX19jcGx1c3BsdXMKLX0KLSNlbmRpZgotCi0KLSNlbmRpZiAvKiBnY20uaCAqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9tYmVkdGxzL21iZWR0bHNfY29uZmlnLmggYi9pbmNsdWRlL21iZWR0bHMvbWJlZHRsc19jb25maWcuaAppbmRleCAzNTkyMTQxLi4wZjFiNTRlIDEwMDY0NAotLS0gYS9pbmNsdWRlL21iZWR0bHMvbWJlZHRsc19jb25maWcuaAorKysgYi9pbmNsdWRlL21iZWR0bHMvbWJlZHRsc19jb25maWcuaApAQCAtNDAsMTIgKzQwLDEwIEBACiAgKiAgICAgIGxpYnJhcnkvYXJpYS5jCiAgKiAgICAgIGxpYnJhcnkvYm5fbXVsLmgKICAqICAgICAgbGlicmFyeS9jb25zdGFudF90aW1lLmMKLSAqICAgICAgbGlicmFyeS9wYWRsb2NrLmgKICAqCiAgKiBSZXF1aXJlZCBieToKICAqICAgICAgTUJFRFRMU19BRVNDRV9DCiAgKiAgICAgIE1CRURUTFNfQUVTTklfQyAob24gc29tZSBwbGF0Zm9ybXMpCi0gKiAgICAgIE1CRURUTFNfUEFETE9DS19DCiAgKgogICogQ29tbWVudCB0byBkaXNhYmxlIHRoZSB1c2Ugb2YgYXNzZW1ibHkgY29kZS4KICAqLwpAQCAtMzUzLDYyICszNTEsNiBAQAogLy8jZGVmaW5lIE1CRURUTFNfVElNSU5HX0FMVAogCiAvKioKLSAqIFxkZWYgTUJFRFRMU19BRVNfQUxUCi0gKgotICogTUJFRFRMU19fTU9EVUxFX05BTUVfX0FMVDogVW5jb21tZW50IGEgbWFjcm8gdG8gbGV0IE1iZWQgVExTIHVzZSB5b3VyCi0gKiBhbHRlcm5hdGUgY29yZSBpbXBsZW1lbnRhdGlvbiBvZiBhIHN5bW1ldHJpYyBjcnlwdG8sIGFuIGFyaXRobWV0aWMgb3IgaGFzaAotICogbW9kdWxlIChlLmcuIHBsYXRmb3JtIHNwZWNpZmljIGFzc2VtYmx5IG9wdGltaXplZCBpbXBsZW1lbnRhdGlvbnMpLiBLZWVwCi0gKiBpbiBtaW5kIHRoYXQgdGhlIGZ1bmN0aW9uIHByb3RvdHlwZXMgc2hvdWxkIHJlbWFpbiB0aGUgc2FtZS4KLSAqCi0gKiBUaGlzIHJlcGxhY2VzIHRoZSB3aG9sZSBtb2R1bGUuIElmIHlvdSBvbmx5IHdhbnQgdG8gcmVwbGFjZSBvbmUgb2YgdGhlCi0gKiBmdW5jdGlvbnMsIHVzZSBvbmUgb2YgdGhlIE1CRURUTFNfX0ZVTkNUSU9OX05BTUVfX0FMVCBmbGFncy4KLSAqCi0gKiBFeGFtcGxlOiBJbiBjYXNlIHlvdSB1bmNvbW1lbnQgTUJFRFRMU19BRVNfQUxULCBNYmVkIFRMUyB3aWxsIG5vIGxvbmdlcgotICogcHJvdmlkZSB0aGUgInN0cnVjdCBtYmVkdGxzX2Flc19jb250ZXh0IiBkZWZpbml0aW9uIGFuZCBvbWl0IHRoZSBiYXNlCi0gKiBmdW5jdGlvbiBkZWNsYXJhdGlvbnMgYW5kIGltcGxlbWVudGF0aW9ucy4gImFlc19hbHQuaCIgd2lsbCBiZSBpbmNsdWRlZCBmcm9tCi0gKiAiYWVzLmgiIHRvIGluY2x1ZGUgdGhlIG5ldyBmdW5jdGlvbiBkZWZpbml0aW9ucy4KLSAqCi0gKiBVbmNvbW1lbnQgYSBtYWNybyB0byBlbmFibGUgYWx0ZXJuYXRlIGltcGxlbWVudGF0aW9uIG9mIHRoZSBjb3JyZXNwb25kaW5nCi0gKiBtb2R1bGUuCi0gKgotICogXHdhcm5pbmcgICBNRDUsIERFUyBhbmQgU0hBLTEgYXJlIGNvbnNpZGVyZWQgd2VhayBhbmQgdGhlaXIKLSAqICAgICAgICAgICAgdXNlIGNvbnN0aXR1dGVzIGEgc2VjdXJpdHkgcmlzay4gSWYgcG9zc2libGUsIHdlIHJlY29tbWVuZAotICogICAgICAgICAgICBhdm9pZGluZyBkZXBlbmRlbmNpZXMgb24gdGhlbSwgYW5kIGNvbnNpZGVyaW5nIHN0cm9uZ2VyIG1lc3NhZ2UKLSAqICAgICAgICAgICAgZGlnZXN0cyBhbmQgY2lwaGVycyBpbnN0ZWFkLgotICoKLSAqLwotLy8jZGVmaW5lIE1CRURUTFNfQUVTX0FMVAotLy8jZGVmaW5lIE1CRURUTFNfQVJJQV9BTFQKLS8vI2RlZmluZSBNQkVEVExTX0NBTUVMTElBX0FMVAotLy8jZGVmaW5lIE1CRURUTFNfQ0NNX0FMVAotLy8jZGVmaW5lIE1CRURUTFNfQ0hBQ0hBMjBfQUxUCi0vLyNkZWZpbmUgTUJFRFRMU19DSEFDSEFQT0xZX0FMVAotLy8jZGVmaW5lIE1CRURUTFNfQ01BQ19BTFQKLS8vI2RlZmluZSBNQkVEVExTX0RFU19BTFQKLS8vI2RlZmluZSBNQkVEVExTX0RITV9BTFQKLS8vI2RlZmluZSBNQkVEVExTX0VDSlBBS0VfQUxUCi0vLyNkZWZpbmUgTUJFRFRMU19HQ01fQUxUCi0vLyNkZWZpbmUgTUJFRFRMU19OSVNUX0tXX0FMVAotLy8jZGVmaW5lIE1CRURUTFNfTUQ1X0FMVAotLy8jZGVmaW5lIE1CRURUTFNfUE9MWTEzMDVfQUxUCi0vLyNkZWZpbmUgTUJFRFRMU19SSVBFTUQxNjBfQUxUCi0vLyNkZWZpbmUgTUJFRFRMU19SU0FfQUxUCi0vLyNkZWZpbmUgTUJFRFRMU19TSEExX0FMVAotLy8jZGVmaW5lIE1CRURUTFNfU0hBMjU2X0FMVAotLy8jZGVmaW5lIE1CRURUTFNfU0hBNTEyX0FMVAotCi0vKgotICogV2hlbiByZXBsYWNpbmcgdGhlIGVsbGlwdGljIGN1cnZlIG1vZHVsZSwgcGxlYXNlIGNvbnNpZGVyLCB0aGF0IGl0IGlzCi0gKiBpbXBsZW1lbnRlZCB3aXRoIHR3byAuYyBmaWxlczoKLSAqICAgICAgLSBlY3AuYwotICogICAgICAtIGVjcF9jdXJ2ZXMuYwotICogWW91IGNhbiByZXBsYWNlIHRoZW0gdmVyeSBtdWNoIGxpa2UgYWxsIHRoZSBvdGhlciBNQkVEVExTX19NT0RVTEVfTkFNRV9fQUxUCi0gKiBtYWNyb3MgYXMgZGVzY3JpYmVkIGFib3ZlLiBUaGUgb25seSBkaWZmZXJlbmNlIGlzIHRoYXQgeW91IGhhdmUgdG8gbWFrZSBzdXJlCi0gKiB0aGF0IHlvdSBwcm92aWRlIGZ1bmN0aW9uYWxpdHkgZm9yIGJvdGggLmMgZmlsZXMuCi0gKi8KLS8vI2RlZmluZSBNQkVEVExTX0VDUF9BTFQKLQotLyoqCiAgKiBcZGVmIE1CRURUTFNfU0hBMjU2X1BST0NFU1NfQUxUCiAgKgogICogTUJFRFRMU19fRlVOQ1RJT05fTkFNRV9fQUxUOiBVbmNvbW1lbnQgYSBtYWNybyB0byBsZXQgTWJlZCBUTFMgdXNlIHlvdQpAQCAtNDY0LDcxICs0MDYsNiBAQAogLy8jZGVmaW5lIE1CRURUTFNfRUNEU0FfR0VOS0VZX0FMVAogCiAvKioKLSAqIFxkZWYgTUJFRFRMU19FQ1BfSU5URVJOQUxfQUxUCi0gKgotICogRXhwb3NlIGEgcGFydCBvZiB0aGUgaW50ZXJuYWwgaW50ZXJmYWNlIG9mIHRoZSBFbGxpcHRpYyBDdXJ2ZSBQb2ludCBtb2R1bGUuCi0gKgotICogTUJFRFRMU19FQ1BfX0ZVTkNUSU9OX05BTUVfX0FMVDogVW5jb21tZW50IGEgbWFjcm8gdG8gbGV0IE1iZWQgVExTIHVzZSB5b3VyCi0gKiBhbHRlcm5hdGl2ZSBjb3JlIGltcGxlbWVudGF0aW9uIG9mIGVsbGlwdGljIGN1cnZlIGFyaXRobWV0aWMuIEtlZXAgaW4gbWluZAotICogdGhhdCBmdW5jdGlvbiBwcm90b3R5cGVzIHNob3VsZCByZW1haW4gdGhlIHNhbWUuCi0gKgotICogVGhpcyBwYXJ0aWFsbHkgcmVwbGFjZXMgb25lIGZ1bmN0aW9uLiBUaGUgaGVhZGVyIGZpbGUgZnJvbSBNYmVkIFRMUyBpcyBzdGlsbAotICogdXNlZCwgaW4gY29udHJhc3QgdG8gdGhlIE1CRURUTFNfRUNQX0FMVCBmbGFnLiBUaGUgb3JpZ2luYWwgaW1wbGVtZW50YXRpb24KLSAqIGlzIHN0aWxsIHByZXNlbnQgYW5kIGl0IGlzIHVzZWQgZm9yIGdyb3VwIHN0cnVjdHVyZXMgbm90IHN1cHBvcnRlZCBieSB0aGUKLSAqIGFsdGVybmF0aXZlLgotICoKLSAqIFRoZSBvcmlnaW5hbCBpbXBsZW1lbnRhdGlvbiBjYW4gaW4gYWRkaXRpb24gYmUgcmVtb3ZlZCBieSBzZXR0aW5nIHRoZQotICogTUJFRFRMU19FQ1BfTk9fRkFMTEJBQ0sgb3B0aW9uLCBpbiB3aGljaCBjYXNlIGFueSBmdW5jdGlvbiBmb3Igd2hpY2ggdGhlCi0gKiBjb3JyZXNwb25kaW5nIE1CRURUTFNfRUNQX19GVU5DVElPTl9OQU1FX19BTFQgbWFjcm8gaXMgZGVmaW5lZCB3aWxsIG5vdCBiZQotICogYWJsZSB0byBmYWxsYmFjayB0byBjdXJ2ZXMgbm90IHN1cHBvcnRlZCBieSB0aGUgYWx0ZXJuYXRpdmUgaW1wbGVtZW50YXRpb24uCi0gKgotICogQW55IG9mIHRoZXNlIG9wdGlvbnMgYmVjb21lIGF2YWlsYWJsZSBieSBkZWZpbmluZyBNQkVEVExTX0VDUF9JTlRFUk5BTF9BTFQKLSAqIGFuZCBpbXBsZW1lbnRpbmcgdGhlIGZvbGxvd2luZyBmdW5jdGlvbnM6Ci0gKiAgICAgIHVuc2lnbmVkIGNoYXIgbWJlZHRsc19pbnRlcm5hbF9lY3BfZ3JwX2NhcGFibGUoCi0gKiAgICAgICAgICBjb25zdCBtYmVkdGxzX2VjcF9ncm91cCAqZ3JwICkKLSAqICAgICAgaW50ICBtYmVkdGxzX2ludGVybmFsX2VjcF9pbml0KCBjb25zdCBtYmVkdGxzX2VjcF9ncm91cCAqZ3JwICkKLSAqICAgICAgdm9pZCBtYmVkdGxzX2ludGVybmFsX2VjcF9mcmVlKCBjb25zdCBtYmVkdGxzX2VjcF9ncm91cCAqZ3JwICkKLSAqIFRoZSBtYmVkdGxzX2ludGVybmFsX2VjcF9ncnBfY2FwYWJsZSBmdW5jdGlvbiBzaG91bGQgcmV0dXJuIDEgaWYgdGhlCi0gKiByZXBsYWNlbWVudCBmdW5jdGlvbnMgaW1wbGVtZW50IGFyaXRobWV0aWMgZm9yIHRoZSBnaXZlbiBncm91cCBhbmQgMAotICogb3RoZXJ3aXNlLgotICogVGhlIGZ1bmN0aW9ucyBtYmVkdGxzX2ludGVybmFsX2VjcF9pbml0IGFuZCBtYmVkdGxzX2ludGVybmFsX2VjcF9mcmVlIGFyZQotICogY2FsbGVkIGJlZm9yZSBhbmQgYWZ0ZXIgZWFjaCBwb2ludCBvcGVyYXRpb24gYW5kIHByb3ZpZGUgYW4gb3Bwb3J0dW5pdHkgdG8KLSAqIGltcGxlbWVudCBvcHRpbWl6ZWQgc2V0IHVwIGFuZCB0ZWFyIGRvd24gaW5zdHJ1Y3Rpb25zLgotICoKLSAqIEV4YW1wbGU6IEluIGNhc2UgeW91IHNldCBNQkVEVExTX0VDUF9JTlRFUk5BTF9BTFQgYW5kCi0gKiBNQkVEVExTX0VDUF9ET1VCTEVfSkFDX0FMVCwgTWJlZCBUTFMgd2lsbCBzdGlsbCBwcm92aWRlIHRoZSBlY3BfZG91YmxlX2phYygpCi0gKiBmdW5jdGlvbiwgYnV0IHdpbGwgdXNlIHlvdXIgbWJlZHRsc19pbnRlcm5hbF9lY3BfZG91YmxlX2phYygpIGlmIHRoZSBncm91cAotICogZm9yIHRoZSBvcGVyYXRpb24gaXMgc3VwcG9ydGVkIGJ5IHlvdXIgaW1wbGVtZW50YXRpb24gKGkuZS4geW91cgotICogbWJlZHRsc19pbnRlcm5hbF9lY3BfZ3JwX2NhcGFibGUoKSBmdW5jdGlvbiByZXR1cm5zIDEgZm9yIHRoaXMgZ3JvdXApLiBJZiB0aGUKLSAqIGdyb3VwIGlzIG5vdCBzdXBwb3J0ZWQgYnkgeW91ciBpbXBsZW1lbnRhdGlvbiwgdGhlbiB0aGUgb3JpZ2luYWwgTWJlZCBUTFMKLSAqIGltcGxlbWVudGF0aW9uIG9mIGVjcF9kb3VibGVfamFjKCkgaXMgdXNlZCBpbnN0ZWFkLCB1bmxlc3MgdGhpcyBmYWxsYmFjawotICogYmVoYXZpb3VyIGlzIGRpc2FibGVkIGJ5IHNldHRpbmcgTUJFRFRMU19FQ1BfTk9fRkFMTEJBQ0sgKGluIHdoaWNoIGNhc2UKLSAqIGVjcF9kb3VibGVfamFjKCkgd2lsbCByZXR1cm4gTUJFRFRMU19FUlJfRUNQX0ZFQVRVUkVfVU5BVkFJTEFCTEUpLgotICoKLSAqIFRoZSBmdW5jdGlvbiBwcm90b3R5cGVzIGFuZCB0aGUgZGVmaW5pdGlvbiBvZiBtYmVkdGxzX2VjcF9ncm91cCBhbmQKLSAqIG1iZWR0bHNfZWNwX3BvaW50IHdpbGwgbm90IGNoYW5nZSBiYXNlZCBvbiBNQkVEVExTX0VDUF9JTlRFUk5BTF9BTFQsIHNvIHlvdXIKLSAqIGltcGxlbWVudGF0aW9uIG9mIG1iZWR0bHNfaW50ZXJuYWxfZWNwX19mdW5jdGlvbl9uYW1lX18gbXVzdCBiZSBjb21wYXRpYmxlCi0gKiB3aXRoIHRoZWlyIGRlZmluaXRpb25zLgotICoKLSAqIFVuY29tbWVudCBhIG1hY3JvIHRvIGVuYWJsZSBhbHRlcm5hdGUgaW1wbGVtZW50YXRpb24gb2YgdGhlIGNvcnJlc3BvbmRpbmcKLSAqIGZ1bmN0aW9uLgotICovCi0vKiBSZXF1aXJlZCBmb3IgYWxsIHRoZSBmdW5jdGlvbnMgaW4gdGhpcyBzZWN0aW9uICovCi0vLyNkZWZpbmUgTUJFRFRMU19FQ1BfSU5URVJOQUxfQUxUCi0vKiBUdXJuIG9mZiBzb2Z0d2FyZSBmYWxsYmFjayBmb3IgY3VydmVzIG5vdCBzdXBwb3J0ZWQgaW4gaGFyZHdhcmUgKi8KLS8vI2RlZmluZSBNQkVEVExTX0VDUF9OT19GQUxMQkFDSwotLyogU3VwcG9ydCBmb3IgV2VpZXJzdHJhc3MgY3VydmVzIHdpdGggSmFjb2JpIHJlcHJlc2VudGF0aW9uICovCi0vLyNkZWZpbmUgTUJFRFRMU19FQ1BfUkFORE9NSVpFX0pBQ19BTFQKLS8vI2RlZmluZSBNQkVEVExTX0VDUF9BRERfTUlYRURfQUxUCi0vLyNkZWZpbmUgTUJFRFRMU19FQ1BfRE9VQkxFX0pBQ19BTFQKLS8vI2RlZmluZSBNQkVEVExTX0VDUF9OT1JNQUxJWkVfSkFDX01BTllfQUxUCi0vLyNkZWZpbmUgTUJFRFRMU19FQ1BfTk9STUFMSVpFX0pBQ19BTFQKLS8qIFN1cHBvcnQgZm9yIGN1cnZlcyB3aXRoIE1vbnRnb21lcnkgYXJpdGhtZXRpYyAqLwotLy8jZGVmaW5lIE1CRURUTFNfRUNQX0RPVUJMRV9BRERfTVhaX0FMVAotLy8jZGVmaW5lIE1CRURUTFNfRUNQX1JBTkRPTUlaRV9NWFpfQUxUCi0vLyNkZWZpbmUgTUJFRFRMU19FQ1BfTk9STUFMSVpFX01YWl9BTFQKLQotLyoqCiAgKiBcZGVmIE1CRURUTFNfRU5UUk9QWV9IQVJEV0FSRV9BTFQKICAqCiAgKiBVbmNvbW1lbnQgdGhpcyBtYWNybyB0byBsZXQgTWJlZCBUTFMgdXNlIHlvdXIgb3duIGltcGxlbWVudGF0aW9uIG9mIGEKQEAgLTgzMCw3ICs3MDcsNyBAQAogICoKICAqIFxub3RlICBUaGlzIG9wdGlvbiBvbmx5IHdvcmtzIHdpdGggdGhlIGRlZmF1bHQgc29mdHdhcmUgaW1wbGVtZW50YXRpb24gb2YKICAqICAgICAgICBlbGxpcHRpYyBjdXJ2ZSBmdW5jdGlvbmFsaXR5LiBJdCBpcyBpbmNvbXBhdGlibGUgd2l0aAotICogICAgICAgIE1CRURUTFNfRUNQX0FMVCwgTUJFRFRMU19FQ0RIX1hYWF9BTFQsIE1CRURUTFNfRUNEU0FfWFhYX0FMVC4KKyAqICAgICAgICBNQkVEVExTX0VDREhfWFhYX0FMVCwgTUJFRFRMU19FQ0RTQV9YWFhfQUxULgogICoKICAqIFJlcXVpcmVzOiBNQkVEVExTX0VDUF9DCiAgKgpAQCAtMTExOCw3ICs5OTUsNyBAQAogICogICAgICAgICAgIE1CRURUTFNfRUNQX0RQX1NFQ1AyNTZSMV9FTkFCTEVECiAgKgogICogXHdhcm5pbmcgSWYgU0hBLTI1NiBpcyBwcm92aWRlZCBvbmx5IGJ5IGEgUFNBIGRyaXZlciwgeW91IG11c3QgY2FsbAotICogcHNhX2NyeXB0b19pbml0KCkgYmVmb3JlIHRoZSBmaXJzdCBoYW5zaGFrZSAoZXZlbiBpZgorICogcHNhX2NyeXB0b19pbml0KCkgYmVmb3JlIHRoZSBmaXJzdCBoYW5kc2hha2UgKGV2ZW4gaWYKICAqIE1CRURUTFNfVVNFX1BTQV9DUllQVE8gaXMgZGlzYWJsZWQpLgogICoKICAqIFRoaXMgZW5hYmxlcyB0aGUgZm9sbG93aW5nIGNpcGhlcnN1aXRlcyAoaWYgb3RoZXIgcmVxdWlzaXRlcyBhcmUKQEAgLTI2MDYsMTEgKzI0ODMsNiBAQAogICogRW5hYmxlIHRoZSBDTUFDIChDaXBoZXItYmFzZWQgTWVzc2FnZSBBdXRoZW50aWNhdGlvbiBDb2RlKSBtb2RlIGZvciBibG9jawogICogY2lwaGVycy4KICAqCi0gKiBcbm90ZSBXaGVuICNNQkVEVExTX0NNQUNfQUxUIGlzIGFjdGl2ZSwgbWVhbmluZyB0aGF0IHRoZSB1bmRlcmx5aW5nCi0gKiAgICAgICBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgQ01BQyBhbGdvcml0aG0gaXMgcHJvdmlkZWQgYnkgYW4gYWx0ZXJuYXRlCi0gKiAgICAgICBpbXBsZW1lbnRhdGlvbiwgdGhhdCBhbHRlcm5hdGUgaW1wbGVtZW50YXRpb24gbWF5IG9wdCB0byBub3Qgc3VwcG9ydAotICogICAgICAgQUVTLTE5MiBvciAzREVTIGFzIHVuZGVybHlpbmcgYmxvY2sgY2lwaGVycyBmb3IgdGhlIENNQUMgb3BlcmF0aW9uLgotICoKICAqIE1vZHVsZTogIGxpYnJhcnkvY21hYy5jCiAgKgogICogUmVxdWlyZXM6IE1CRURUTFNfQ0lQSEVSX0MsIE1CRURUTFNfQUVTX0Mgb3IgTUJFRFRMU19ERVNfQwpAQCAtMjYyNSw3ICsyNDk3LDcgQEAKICAqIFRoZSBDVFJfRFJCRyBnZW5lcmF0b3IgdXNlcyBBRVMtMjU2IGJ5IGRlZmF1bHQuCiAgKiBUbyB1c2UgQUVTLTEyOCBpbnN0ZWFkLCBlbmFibGUgXGMgTUJFRFRMU19DVFJfRFJCR19VU0VfMTI4X0JJVF9LRVkgYWJvdmUuCiAgKgotICogQUVTIHN1cHBvcnQgY2FuIGVpdGhlciBiZSBhY2hpdmVkIHRocm91Z2ggYnVpbHRpbiAoTUJFRFRMU19BRVNfQykgb3IgUFNBLgorICogQUVTIHN1cHBvcnQgY2FuIGVpdGhlciBiZSBhY2hpZXZlZCB0aHJvdWdoIGJ1aWx0aW4gKE1CRURUTFNfQUVTX0MpIG9yIFBTQS4KICAqIEJ1aWx0aW4gaXMgdGhlIGRlZmF1bHQgb3B0aW9uIHdoZW4gTUJFRFRMU19BRVNfQyBpcyBkZWZpbmVkIG90aGVyd2lzZSBQU0EKICAqIGlzIHVzZWQuCiAgKgpAQCAtMzAxMSwyMCArMjg4Myw2IEBACiAjZGVmaW5lIE1CRURUTFNfT0lEX0MKIAogLyoqCi0gKiBcZGVmIE1CRURUTFNfUEFETE9DS19DCi0gKgotICogRW5hYmxlIFZJQSBQYWRsb2NrIHN1cHBvcnQgb24geDg2LgotICoKLSAqIE1vZHVsZTogIGxpYnJhcnkvcGFkbG9jay5jCi0gKiBDYWxsZXI6ICBsaWJyYXJ5L2Flcy5jCi0gKgotICogUmVxdWlyZXM6IE1CRURUTFNfSEFWRV9BU00KLSAqCi0gKiBUaGlzIG1vZHVsZXMgYWRkcyBzdXBwb3J0IGZvciB0aGUgVklBIFBhZExvY2sgb24geDg2LgotICovCi0jZGVmaW5lIE1CRURUTFNfUEFETE9DS19DCi0KLS8qKgogICogXGRlZiBNQkVEVExTX1BFTV9QQVJTRV9DCiAgKgogICogRW5hYmxlIFBFTSBkZWNvZGluZyAvIHBhcnNpbmcuCmRpZmYgLS1naXQgYS9pbmNsdWRlL21iZWR0bHMvbWQuaCBiL2luY2x1ZGUvbWJlZHRscy9tZC5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0NzhlOWY3Li4wMDAwMDAwCi0tLSBhL2luY2x1ZGUvbWJlZHRscy9tZC5oCisrKyAvZGV2L251bGwKQEAgLTEsNTI2ICswLDAgQEAKLS8qKgotICogXGZpbGUgbWQuaAotICoKLSAqIFxicmllZiAgIFRoaXMgZmlsZSBjb250YWlucyB0aGUgZ2VuZXJpYyBmdW5jdGlvbnMgZm9yIG1lc3NhZ2UtZGlnZXN0Ci0gKiAgICAgICAgICAoaGFzaGluZykgYW5kIEhNQUMuCi0gKgotICogXGF1dGhvciBBZHJpYWFuIGRlIEpvbmcgPGRlam9uZ0Bmb3gtaXQuY29tPgotICovCi0vKgotICogIENvcHlyaWdodCBUaGUgTWJlZCBUTFMgQ29udHJpYnV0b3JzCi0gKiAgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjAgT1IgR1BMLTIuMC1vci1sYXRlcgotICovCi0KLSNpZm5kZWYgTUJFRFRMU19NRF9ICi0jZGVmaW5lIE1CRURUTFNfTURfSAotI2luY2x1ZGUgIm1iZWR0bHMvcHJpdmF0ZV9hY2Nlc3MuaCIKLQotI2luY2x1ZGUgPHN0ZGRlZi5oPgotCi0jaW5jbHVkZSAibWJlZHRscy9idWlsZF9pbmZvLmgiCi0jaW5jbHVkZSAibWJlZHRscy9wbGF0Zm9ybV91dGlsLmgiCi0KLS8qKiBUaGUgc2VsZWN0ZWQgZmVhdHVyZSBpcyBub3QgYXZhaWxhYmxlLiAqLwotI2RlZmluZSBNQkVEVExTX0VSUl9NRF9GRUFUVVJFX1VOQVZBSUxBQkxFICAgICAgICAgICAgICAgIC0weDUwODAKLS8qKiBCYWQgaW5wdXQgcGFyYW1ldGVycyB0byBmdW5jdGlvbi4gKi8KLSNkZWZpbmUgTUJFRFRMU19FUlJfTURfQkFEX0lOUFVUX0RBVEEgICAgICAgICAgICAgICAgICAgICAtMHg1MTAwCi0vKiogRmFpbGVkIHRvIGFsbG9jYXRlIG1lbW9yeS4gKi8KLSNkZWZpbmUgTUJFRFRMU19FUlJfTURfQUxMT0NfRkFJTEVEICAgICAgICAgICAgICAgICAgICAgICAtMHg1MTgwCi0vKiogT3BlbmluZyBvciByZWFkaW5nIG9mIGZpbGUgZmFpbGVkLiAqLwotI2RlZmluZSBNQkVEVExTX0VSUl9NRF9GSUxFX0lPX0VSUk9SICAgICAgICAgICAgICAgICAgICAgIC0weDUyMDAKLQotI2lmZGVmIF9fY3BsdXNwbHVzCi1leHRlcm4gIkMiIHsKLSNlbmRpZgotCi0vKioKLSAqIFxicmllZiAgICAgU3VwcG9ydGVkIG1lc3NhZ2UgZGlnZXN0cy4KLSAqCi0gKiBcd2FybmluZyAgIE1ENSBhbmQgU0hBLTEgYXJlIGNvbnNpZGVyZWQgd2VhayBtZXNzYWdlIGRpZ2VzdHMgYW5kCi0gKiAgICAgICAgICAgIHRoZWlyIHVzZSBjb25zdGl0dXRlcyBhIHNlY3VyaXR5IHJpc2suIFdlIHJlY29tbWVuZCBjb25zaWRlcmluZwotICogICAgICAgICAgICBzdHJvbmdlciBtZXNzYWdlIGRpZ2VzdHMgaW5zdGVhZC4KLSAqCi0gKi8KLS8qIE5vdGU6IHRoZXNlIGFyZSBhbGlnbmVkIHdpdGggdGhlIGRlZmluaXRpb25zIG9mIFBTQV9BTEdfIG1hY3JvcyBmb3IgaGFzaGVzLAotICogaW4gb3JkZXIgdG8gZW5hYmxlIGFuIGVmZmljaWVudCBpbXBsZW1lbnRhdGlvbiBvZiBjb252ZXJzaW9uIGZ1bmN0aW9ucy4KLSAqIFRoaXMgaXMgdGVzdGVkIGJ5IG1kX3RvX2Zyb21fcHNhKCkgaW4gdGVzdF9zdWl0ZV9tZC4gKi8KLXR5cGVkZWYgZW51bSB7Ci0gICAgTUJFRFRMU19NRF9OT05FPTAsICAgIC8qKjwgTm9uZS4gKi8KLSAgICBNQkVEVExTX01EX01ENT0weDAzLCAgICAgICAvKio8IFRoZSBNRDUgbWVzc2FnZSBkaWdlc3QuICovCi0gICAgTUJFRFRMU19NRF9SSVBFTUQxNjA9MHgwNCwgLyoqPCBUaGUgUklQRU1ELTE2MCBtZXNzYWdlIGRpZ2VzdC4gKi8KLSAgICBNQkVEVExTX01EX1NIQTE9MHgwNSwgICAgICAvKio8IFRoZSBTSEEtMSBtZXNzYWdlIGRpZ2VzdC4gKi8KLSAgICBNQkVEVExTX01EX1NIQTIyND0weDA4LCAgICAvKio8IFRoZSBTSEEtMjI0IG1lc3NhZ2UgZGlnZXN0LiAqLwotICAgIE1CRURUTFNfTURfU0hBMjU2PTB4MDksICAgIC8qKjwgVGhlIFNIQS0yNTYgbWVzc2FnZSBkaWdlc3QuICovCi0gICAgTUJFRFRMU19NRF9TSEEzODQ9MHgwYSwgICAgLyoqPCBUaGUgU0hBLTM4NCBtZXNzYWdlIGRpZ2VzdC4gKi8KLSAgICBNQkVEVExTX01EX1NIQTUxMj0weDBiLCAgICAvKio8IFRoZSBTSEEtNTEyIG1lc3NhZ2UgZGlnZXN0LiAqLwotICAgIE1CRURUTFNfTURfU0hBM18yMjQ9MHgxMCwgIC8qKjwgVGhlIFNIQTMtMjI0IG1lc3NhZ2UgZGlnZXN0LiAqLwotICAgIE1CRURUTFNfTURfU0hBM18yNTY9MHgxMSwgIC8qKjwgVGhlIFNIQTMtMjU2IG1lc3NhZ2UgZGlnZXN0LiAqLwotICAgIE1CRURUTFNfTURfU0hBM18zODQ9MHgxMiwgIC8qKjwgVGhlIFNIQTMtMzg0IG1lc3NhZ2UgZGlnZXN0LiAqLwotICAgIE1CRURUTFNfTURfU0hBM181MTI9MHgxMywgIC8qKjwgVGhlIFNIQTMtNTEyIG1lc3NhZ2UgZGlnZXN0LiAqLwotfSBtYmVkdGxzX21kX3R5cGVfdDsKLQotLyogTm90ZTogdGhpcyBzaG91bGQgYWx3YXlzIGJlID49IFBTQV9IQVNIX01BWF9TSVpFCi0gKiBpbiBhbGwgYnVpbGRzIHdpdGggYm90aCBDUllQVE9fQyBhbmQgTURfTElHSFQuCi0gKgotICogVGhpcyBpcyB0byBtYWtlIHRoaW5ncyBlYXNpZXIgZm9yIG1vZHVsZXMgc3VjaCBhcyBUTFMgdGhhdCBtYXkgZGVmaW5lIGEKLSAqIGJ1ZmZlciBzaXplIHVzaW5nIE1EX01BWF9TSVpFIGluIGEgcGFydCBvZiB0aGUgY29kZSB0aGF0J3MgY29tbW9uIHRvIFBTQQotICogYW5kIGxlZ2FjeSwgdGhlbiBhc3N1bWUgdGhlIGJ1ZmZlcidzIHNpemUgaXMgUFNBX0hBU0hfTUFYX1NJWkUgaW4gYW5vdGhlcgotICogcGFydCBvZiB0aGUgY29kZSBiYXNlZCBvbiBQU0EuCi0gKi8KLSNpZiBkZWZpbmVkKE1CRURUTFNfTURfQ0FOX1NIQTUxMikgfHwgZGVmaW5lZChNQkVEVExTX01EX0NBTl9TSEEzXzUxMikKLSNkZWZpbmUgTUJFRFRMU19NRF9NQVhfU0laRSAgICAgICAgIDY0ICAvKiBsb25nZXN0IGtub3duIGlzIFNIQTUxMiAqLwotI2VsaWYgZGVmaW5lZChNQkVEVExTX01EX0NBTl9TSEEzODQpIHx8IGRlZmluZWQoTUJFRFRMU19NRF9DQU5fU0hBM18zODQpCi0jZGVmaW5lIE1CRURUTFNfTURfTUFYX1NJWkUgICAgICAgICA0OCAgLyogbG9uZ2VzdCBrbm93biBpcyBTSEEzODQgKi8KLSNlbGlmIGRlZmluZWQoTUJFRFRMU19NRF9DQU5fU0hBMjU2KSB8fCBkZWZpbmVkKE1CRURUTFNfTURfQ0FOX1NIQTNfMjU2KQotI2RlZmluZSBNQkVEVExTX01EX01BWF9TSVpFICAgICAgICAgMzIgIC8qIGxvbmdlc3Qga25vd24gaXMgU0hBMjU2ICovCi0jZWxpZiBkZWZpbmVkKE1CRURUTFNfTURfQ0FOX1NIQTIyNCkgfHwgZGVmaW5lZChNQkVEVExTX01EX0NBTl9TSEEzXzIyNCkKLSNkZWZpbmUgTUJFRFRMU19NRF9NQVhfU0laRSAgICAgICAgIDI4ICAvKiBsb25nZXN0IGtub3duIGlzIFNIQTIyNCAqLwotI2Vsc2UKLSNkZWZpbmUgTUJFRFRMU19NRF9NQVhfU0laRSAgICAgICAgIDIwICAvKiBsb25nZXN0IGtub3duIGlzIFNIQTEgb3IgUklQRSBNRC0xNjAKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvciBzbWFsbGVyIChNRDUgYW5kIGVhcmxpZXIpICovCi0jZW5kaWYKLQotI2lmIGRlZmluZWQoTUJFRFRMU19NRF9DQU5fU0hBM18yMjQpCi0jZGVmaW5lIE1CRURUTFNfTURfTUFYX0JMT0NLX1NJWkUgICAgICAgICAxNDQgLyogdGhlIGxvbmdlc3Qga25vd24gaXMgU0hBMy0yMjQgKi8KLSNlbGlmIGRlZmluZWQoTUJFRFRMU19NRF9DQU5fU0hBM18yNTYpCi0jZGVmaW5lIE1CRURUTFNfTURfTUFYX0JMT0NLX1NJWkUgICAgICAgICAxMzYKLSNlbGlmIGRlZmluZWQoTUJFRFRMU19NRF9DQU5fU0hBNTEyKSB8fCBkZWZpbmVkKE1CRURUTFNfTURfQ0FOX1NIQTM4NCkKLSNkZWZpbmUgTUJFRFRMU19NRF9NQVhfQkxPQ0tfU0laRSAgICAgICAgIDEyOAotI2VsaWYgZGVmaW5lZChNQkVEVExTX01EX0NBTl9TSEEzXzM4NCkKLSNkZWZpbmUgTUJFRFRMU19NRF9NQVhfQkxPQ0tfU0laRSAgICAgICAgIDEwNAotI2VsaWYgZGVmaW5lZChNQkVEVExTX01EX0NBTl9TSEEzXzUxMikKLSNkZWZpbmUgTUJFRFRMU19NRF9NQVhfQkxPQ0tfU0laRSAgICAgICAgIDcyCi0jZWxzZQotI2RlZmluZSBNQkVEVExTX01EX01BWF9CTE9DS19TSVpFICAgICAgICAgNjQKLSNlbmRpZgotCi0vKioKLSAqIE9wYXF1ZSBzdHJ1Y3QuCi0gKgotICogQ29uc3RydWN0ZWQgdXNpbmcgZWl0aGVyICNtYmVkdGxzX21kX2luZm9fZnJvbV9zdHJpbmcgb3IKLSAqICNtYmVkdGxzX21kX2luZm9fZnJvbV90eXBlLgotICoKLSAqIEZpZWxkcyBjYW4gYmUgYWNjZXNzZWQgd2l0aCAjbWJlZHRsc19tZF9nZXRfc2l6ZSwKLSAqICNtYmVkdGxzX21kX2dldF90eXBlIGFuZCAjbWJlZHRsc19tZF9nZXRfbmFtZS4KLSAqLwotLyogRGVmaW5lZCBpbnRlcm5hbGx5IGluIGxpYnJhcnkvbWRfd3JhcC5oLiAqLwotdHlwZWRlZiBzdHJ1Y3QgbWJlZHRsc19tZF9pbmZvX3QgbWJlZHRsc19tZF9pbmZvX3Q7Ci0KLS8qKgotICogVXNlZCBpbnRlcm5hbGx5IHRvIGluZGljYXRlIHdoZXRoZXIgYSBjb250ZXh0IHVzZXMgbGVnYWN5IG9yIFBTQS4KLSAqCi0gKiBJbnRlcm5hbCB1c2Ugb25seS4KLSAqLwotdHlwZWRlZiBlbnVtIHsKLSAgICBNQkVEVExTX01EX0VOR0lORV9MRUdBQ1kgPSAwLAotICAgIE1CRURUTFNfTURfRU5HSU5FX1BTQSwKLX0gbWJlZHRsc19tZF9lbmdpbmVfdDsKLQotLyoqCi0gKiBUaGUgZ2VuZXJpYyBtZXNzYWdlLWRpZ2VzdCBjb250ZXh0LgotICovCi10eXBlZGVmIHN0cnVjdCBtYmVkdGxzX21kX2NvbnRleHRfdCB7Ci0gICAgLyoqIEluZm9ybWF0aW9uIGFib3V0IHRoZSBhc3NvY2lhdGVkIG1lc3NhZ2UgZGlnZXN0LiAqLwotICAgIGNvbnN0IG1iZWR0bHNfbWRfaW5mb190ICpNQkVEVExTX1BSSVZBVEUobWRfaW5mbyk7Ci0KLSNpZiBkZWZpbmVkKE1CRURUTFNfTURfU09NRV9QU0EpCi0gICAgLyoqIEFyZSBoYXNoIG9wZXJhdGlvbnMgZGlzcGF0Y2hlZCB0byBQU0Egb3IgbGVnYWN5PyAqLwotICAgIG1iZWR0bHNfbWRfZW5naW5lX3QgTUJFRFRMU19QUklWQVRFKGVuZ2luZSk7Ci0jZW5kaWYKLQotICAgIC8qKiBUaGUgZGlnZXN0LXNwZWNpZmljIGNvbnRleHQgKGxlZ2FjeSkgb3IgdGhlIFBTQSBvcGVyYXRpb24uICovCi0gICAgdm9pZCAqTUJFRFRMU19QUklWQVRFKG1kX2N0eCk7Ci0KLSNpZiBkZWZpbmVkKE1CRURUTFNfTURfQykKLSAgICAvKiogVGhlIEhNQUMgcGFydCBvZiB0aGUgY29udGV4dC4gKi8KLSAgICB2b2lkICpNQkVEVExTX1BSSVZBVEUoaG1hY19jdHgpOwotI2VuZGlmCi19IG1iZWR0bHNfbWRfY29udGV4dF90OwotCi0vKioKLSAqIFxicmllZiAgICAgICAgICAgVGhpcyBmdW5jdGlvbiByZXR1cm5zIHRoZSBtZXNzYWdlLWRpZ2VzdCBpbmZvcm1hdGlvbgotICogICAgICAgICAgICAgICAgICBhc3NvY2lhdGVkIHdpdGggdGhlIGdpdmVuIGRpZ2VzdCB0eXBlLgotICoKLSAqIFxwYXJhbSBtZF90eXBlICAgVGhlIHR5cGUgb2YgZGlnZXN0IHRvIHNlYXJjaCBmb3IuCi0gKgotICogXHJldHVybiAgICAgICAgICBUaGUgbWVzc2FnZS1kaWdlc3QgaW5mb3JtYXRpb24gYXNzb2NpYXRlZCB3aXRoIFxwIG1kX3R5cGUuCi0gKiBccmV0dXJuICAgICAgICAgIE5VTEwgaWYgdGhlIGFzc29jaWF0ZWQgbWVzc2FnZS1kaWdlc3QgaW5mb3JtYXRpb24gaXMgbm90IGZvdW5kLgotICovCi1jb25zdCBtYmVkdGxzX21kX2luZm9fdCAqbWJlZHRsc19tZF9pbmZvX2Zyb21fdHlwZShtYmVkdGxzX21kX3R5cGVfdCBtZF90eXBlKTsKLQotLyoqCi0gKiBcYnJpZWYgICAgICAgICAgIFRoaXMgZnVuY3Rpb24gaW5pdGlhbGl6ZXMgYSBtZXNzYWdlLWRpZ2VzdCBjb250ZXh0IHdpdGhvdXQKLSAqICAgICAgICAgICAgICAgICAgYmluZGluZyBpdCB0byBhIHBhcnRpY3VsYXIgbWVzc2FnZS1kaWdlc3QgYWxnb3JpdGhtLgotICoKLSAqICAgICAgICAgICAgICAgICAgVGhpcyBmdW5jdGlvbiBzaG91bGQgYWx3YXlzIGJlIGNhbGxlZCBmaXJzdC4gSXQgcHJlcGFyZXMgdGhlCi0gKiAgICAgICAgICAgICAgICAgIGNvbnRleHQgZm9yIG1iZWR0bHNfbWRfc2V0dXAoKSBmb3IgYmluZGluZyBpdCB0byBhCi0gKiAgICAgICAgICAgICAgICAgIG1lc3NhZ2UtZGlnZXN0IGFsZ29yaXRobS4KLSAqLwotdm9pZCBtYmVkdGxzX21kX2luaXQobWJlZHRsc19tZF9jb250ZXh0X3QgKmN0eCk7Ci0KLS8qKgotICogXGJyaWVmICAgICAgICAgICBUaGlzIGZ1bmN0aW9uIGNsZWFycyB0aGUgaW50ZXJuYWwgc3RydWN0dXJlIG9mIFxwIGN0eCBhbmQKLSAqICAgICAgICAgICAgICAgICAgZnJlZXMgYW55IGVtYmVkZGVkIGludGVybmFsIHN0cnVjdHVyZSwgYnV0IGRvZXMgbm90IGZyZWUKLSAqICAgICAgICAgICAgICAgICAgXHAgY3R4IGl0c2VsZi4KLSAqCi0gKiAgICAgICAgICAgICAgICAgIElmIHlvdSBoYXZlIGNhbGxlZCBtYmVkdGxzX21kX3NldHVwKCkgb24gXHAgY3R4LCB5b3UgbXVzdAotICogICAgICAgICAgICAgICAgICBjYWxsIG1iZWR0bHNfbWRfZnJlZSgpIHdoZW4geW91IGFyZSBubyBsb25nZXIgdXNpbmcgdGhlCi0gKiAgICAgICAgICAgICAgICAgIGNvbnRleHQuCi0gKiAgICAgICAgICAgICAgICAgIENhbGxpbmcgdGhpcyBmdW5jdGlvbiBpZiB5b3UgaGF2ZSBwcmV2aW91c2x5Ci0gKiAgICAgICAgICAgICAgICAgIGNhbGxlZCBtYmVkdGxzX21kX2luaXQoKSBhbmQgbm90aGluZyBlbHNlIGlzIG9wdGlvbmFsLgotICogICAgICAgICAgICAgICAgICBZb3UgbXVzdCBub3QgY2FsbCB0aGlzIGZ1bmN0aW9uIGlmIHlvdSBoYXZlIG5vdCBjYWxsZWQKLSAqICAgICAgICAgICAgICAgICAgbWJlZHRsc19tZF9pbml0KCkuCi0gKi8KLXZvaWQgbWJlZHRsc19tZF9mcmVlKG1iZWR0bHNfbWRfY29udGV4dF90ICpjdHgpOwotCi0KLS8qKgotICogXGJyaWVmICAgICAgICAgICBUaGlzIGZ1bmN0aW9uIHNlbGVjdHMgdGhlIG1lc3NhZ2UgZGlnZXN0IGFsZ29yaXRobSB0byB1c2UsCi0gKiAgICAgICAgICAgICAgICAgIGFuZCBhbGxvY2F0ZXMgaW50ZXJuYWwgc3RydWN0dXJlcy4KLSAqCi0gKiAgICAgICAgICAgICAgICAgIEl0IHNob3VsZCBiZSBjYWxsZWQgYWZ0ZXIgbWJlZHRsc19tZF9pbml0KCkgb3IKLSAqICAgICAgICAgICAgICAgICAgbWJlZHRsc19tZF9mcmVlKCkuIE1ha2VzIGl0IG5lY2Vzc2FyeSB0byBjYWxsCi0gKiAgICAgICAgICAgICAgICAgIG1iZWR0bHNfbWRfZnJlZSgpIGxhdGVyLgotICoKLSAqIFxwYXJhbSBjdHggICAgICAgVGhlIGNvbnRleHQgdG8gc2V0IHVwLgotICogXHBhcmFtIG1kX2luZm8gICBUaGUgaW5mb3JtYXRpb24gc3RydWN0dXJlIG9mIHRoZSBtZXNzYWdlLWRpZ2VzdCBhbGdvcml0aG0KLSAqICAgICAgICAgICAgICAgICAgdG8gdXNlLgotICogXHBhcmFtIGhtYWMgICAgICBEZWZpbmVzIGlmIEhNQUMgaXMgdXNlZC4gMDogSE1BQyBpcyBub3QgdXNlZCAoc2F2ZXMgc29tZSBtZW1vcnkpLAotICogICAgICAgICAgICAgICAgICBvciBub24temVybzogSE1BQyBpcyB1c2VkIHdpdGggdGhpcyBjb250ZXh0LgotICoKLSAqIFxyZXR1cm4gICAgICAgICAgXGMgMCBvbiBzdWNjZXNzLgotICogXHJldHVybiAgICAgICAgICAjTUJFRFRMU19FUlJfTURfQkFEX0lOUFVUX0RBVEEgb24gcGFyYW1ldGVyLXZlcmlmaWNhdGlvbgotICogICAgICAgICAgICAgICAgICBmYWlsdXJlLgotICogXHJldHVybiAgICAgICAgICAjTUJFRFRMU19FUlJfTURfQUxMT0NfRkFJTEVEIG9uIG1lbW9yeS1hbGxvY2F0aW9uIGZhaWx1cmUuCi0gKi8KLU1CRURUTFNfQ0hFQ0tfUkVUVVJOX1RZUElDQUwKLWludCBtYmVkdGxzX21kX3NldHVwKG1iZWR0bHNfbWRfY29udGV4dF90ICpjdHgsIGNvbnN0IG1iZWR0bHNfbWRfaW5mb190ICptZF9pbmZvLCBpbnQgaG1hYyk7Ci0KLS8qKgotICogXGJyaWVmICAgICAgICAgICBUaGlzIGZ1bmN0aW9uIGNsb25lcyB0aGUgc3RhdGUgb2YgYSBtZXNzYWdlLWRpZ2VzdAotICogICAgICAgICAgICAgICAgICBjb250ZXh0LgotICoKLSAqIFxub3RlICAgICAgICAgICAgWW91IG11c3QgY2FsbCBtYmVkdGxzX21kX3NldHVwKCkgb24gXGMgZHN0IGJlZm9yZSBjYWxsaW5nCi0gKiAgICAgICAgICAgICAgICAgIHRoaXMgZnVuY3Rpb24uCi0gKgotICogXG5vdGUgICAgICAgICAgICBUaGUgdHdvIGNvbnRleHRzIG11c3QgaGF2ZSB0aGUgc2FtZSB0eXBlLAotICogICAgICAgICAgICAgICAgICBmb3IgZXhhbXBsZSwgYm90aCBhcmUgU0hBLTI1Ni4KLSAqCi0gKiBcd2FybmluZyAgICAgICAgIFRoaXMgZnVuY3Rpb24gY2xvbmVzIHRoZSBtZXNzYWdlLWRpZ2VzdCBzdGF0ZSwgbm90IHRoZQotICogICAgICAgICAgICAgICAgICBITUFDIHN0YXRlLgotICoKLSAqIFxwYXJhbSBkc3QgICAgICAgVGhlIGRlc3RpbmF0aW9uIGNvbnRleHQuCi0gKiBccGFyYW0gc3JjICAgICAgIFRoZSBjb250ZXh0IHRvIGJlIGNsb25lZC4KLSAqCi0gKiBccmV0dXJuICAgICAgICAgIFxjIDAgb24gc3VjY2Vzcy4KLSAqIFxyZXR1cm4gICAgICAgICAgI01CRURUTFNfRVJSX01EX0JBRF9JTlBVVF9EQVRBIG9uIHBhcmFtZXRlci12ZXJpZmljYXRpb24gZmFpbHVyZS4KLSAqIFxyZXR1cm4gICAgICAgICAgI01CRURUTFNfRVJSX01EX0ZFQVRVUkVfVU5BVkFJTEFCTEUgaWYgYm90aCBjb250ZXh0cyBhcmUKLSAqICAgICAgICAgICAgICAgICAgbm90IHVzaW5nIHRoZSBzYW1lIGVuZ2luZS4gVGhpcyBjYW4gYmUgYXZvaWRlZCBieSBtb3ZpbmcKLSAqICAgICAgICAgICAgICAgICAgdGhlIGNhbGwgdG8gcHNhX2NyeXB0b19pbml0KCkgYmVmb3JlIHRoZSBmaXJzdCBjYWxsIHRvCi0gKiAgICAgICAgICAgICAgICAgIG1iZWR0bHNfbWRfc2V0dXAoKS4KLSAqLwotTUJFRFRMU19DSEVDS19SRVRVUk5fVFlQSUNBTAotaW50IG1iZWR0bHNfbWRfY2xvbmUobWJlZHRsc19tZF9jb250ZXh0X3QgKmRzdCwKLSAgICAgICAgICAgICAgICAgICAgIGNvbnN0IG1iZWR0bHNfbWRfY29udGV4dF90ICpzcmMpOwotCi0vKioKLSAqIFxicmllZiAgICAgICAgICAgVGhpcyBmdW5jdGlvbiBleHRyYWN0cyB0aGUgbWVzc2FnZS1kaWdlc3Qgc2l6ZSBmcm9tIHRoZQotICogICAgICAgICAgICAgICAgICBtZXNzYWdlLWRpZ2VzdCBpbmZvcm1hdGlvbiBzdHJ1Y3R1cmUuCi0gKgotICogXHBhcmFtIG1kX2luZm8gICBUaGUgaW5mb3JtYXRpb24gc3RydWN0dXJlIG9mIHRoZSBtZXNzYWdlLWRpZ2VzdCBhbGdvcml0aG0KLSAqICAgICAgICAgICAgICAgICAgdG8gdXNlLgotICoKLSAqIFxyZXR1cm4gICAgICAgICAgVGhlIHNpemUgb2YgdGhlIG1lc3NhZ2UtZGlnZXN0IG91dHB1dCBpbiBCeXRlcy4KLSAqLwotdW5zaWduZWQgY2hhciBtYmVkdGxzX21kX2dldF9zaXplKGNvbnN0IG1iZWR0bHNfbWRfaW5mb190ICptZF9pbmZvKTsKLQotLyoqCi0gKiBcYnJpZWYgICAgICAgICAgIFRoaXMgZnVuY3Rpb24gZ2l2ZXMgdGhlIG1lc3NhZ2UtZGlnZXN0IHNpemUgYXNzb2NpYXRlZCB0bwotICogICAgICAgICAgICAgICAgICBtZXNzYWdlLWRpZ2VzdCB0eXBlLgotICoKLSAqIFxwYXJhbSBtZF90eXBlICAgVGhlIG1lc3NhZ2UtZGlnZXN0IHR5cGUuCi0gKgotICogXHJldHVybiAgICAgICAgICBUaGUgc2l6ZSBvZiB0aGUgbWVzc2FnZS1kaWdlc3Qgb3V0cHV0IGluIEJ5dGVzLAotICogICAgICAgICAgICAgICAgICBvciAwIGlmIHRoZSBtZXNzYWdlLWRpZ2VzdCB0eXBlIGlzIG5vdCBrbm93bi4KLSAqLwotc3RhdGljIGlubGluZSB1bnNpZ25lZCBjaGFyIG1iZWR0bHNfbWRfZ2V0X3NpemVfZnJvbV90eXBlKG1iZWR0bHNfbWRfdHlwZV90IG1kX3R5cGUpCi17Ci0gICAgcmV0dXJuIG1iZWR0bHNfbWRfZ2V0X3NpemUobWJlZHRsc19tZF9pbmZvX2Zyb21fdHlwZShtZF90eXBlKSk7Ci19Ci0KLS8qKgotICogXGJyaWVmICAgICAgICAgICBUaGlzIGZ1bmN0aW9uIGV4dHJhY3RzIHRoZSBtZXNzYWdlLWRpZ2VzdCB0eXBlIGZyb20gdGhlCi0gKiAgICAgICAgICAgICAgICAgIG1lc3NhZ2UtZGlnZXN0IGluZm9ybWF0aW9uIHN0cnVjdHVyZS4KLSAqCi0gKiBccGFyYW0gbWRfaW5mbyAgIFRoZSBpbmZvcm1hdGlvbiBzdHJ1Y3R1cmUgb2YgdGhlIG1lc3NhZ2UtZGlnZXN0IGFsZ29yaXRobQotICogICAgICAgICAgICAgICAgICB0byB1c2UuCi0gKgotICogXHJldHVybiAgICAgICAgICBUaGUgdHlwZSBvZiB0aGUgbWVzc2FnZSBkaWdlc3QuCi0gKi8KLW1iZWR0bHNfbWRfdHlwZV90IG1iZWR0bHNfbWRfZ2V0X3R5cGUoY29uc3QgbWJlZHRsc19tZF9pbmZvX3QgKm1kX2luZm8pOwotCi0vKioKLSAqIFxicmllZiAgICAgICAgICAgVGhpcyBmdW5jdGlvbiBzdGFydHMgYSBtZXNzYWdlLWRpZ2VzdCBjb21wdXRhdGlvbi4KLSAqCi0gKiAgICAgICAgICAgICAgICAgIFlvdSBtdXN0IGNhbGwgdGhpcyBmdW5jdGlvbiBhZnRlciBzZXR0aW5nIHVwIHRoZSBjb250ZXh0Ci0gKiAgICAgICAgICAgICAgICAgIHdpdGggbWJlZHRsc19tZF9zZXR1cCgpLCBhbmQgYmVmb3JlIHBhc3NpbmcgZGF0YSB3aXRoCi0gKiAgICAgICAgICAgICAgICAgIG1iZWR0bHNfbWRfdXBkYXRlKCkuCi0gKgotICogXHBhcmFtIGN0eCAgICAgICBUaGUgZ2VuZXJpYyBtZXNzYWdlLWRpZ2VzdCBjb250ZXh0LgotICoKLSAqIFxyZXR1cm4gICAgICAgICAgXGMgMCBvbiBzdWNjZXNzLgotICogXHJldHVybiAgICAgICAgICAjTUJFRFRMU19FUlJfTURfQkFEX0lOUFVUX0RBVEEgb24gcGFyYW1ldGVyLXZlcmlmaWNhdGlvbgotICogICAgICAgICAgICAgICAgICBmYWlsdXJlLgotICovCi1NQkVEVExTX0NIRUNLX1JFVFVSTl9UWVBJQ0FMCi1pbnQgbWJlZHRsc19tZF9zdGFydHMobWJlZHRsc19tZF9jb250ZXh0X3QgKmN0eCk7Ci0KLS8qKgotICogXGJyaWVmICAgICAgICAgICBUaGlzIGZ1bmN0aW9uIGZlZWRzIGFuIGlucHV0IGJ1ZmZlciBpbnRvIGFuIG9uZ29pbmcKLSAqICAgICAgICAgICAgICAgICAgbWVzc2FnZS1kaWdlc3QgY29tcHV0YXRpb24uCi0gKgotICogICAgICAgICAgICAgICAgICBZb3UgbXVzdCBjYWxsIG1iZWR0bHNfbWRfc3RhcnRzKCkgYmVmb3JlIGNhbGxpbmcgdGhpcwotICogICAgICAgICAgICAgICAgICBmdW5jdGlvbi4gWW91IG1heSBjYWxsIHRoaXMgZnVuY3Rpb24gbXVsdGlwbGUgdGltZXMuCi0gKiAgICAgICAgICAgICAgICAgIEFmdGVyd2FyZHMsIGNhbGwgbWJlZHRsc19tZF9maW5pc2goKS4KLSAqCi0gKiBccGFyYW0gY3R4ICAgICAgIFRoZSBnZW5lcmljIG1lc3NhZ2UtZGlnZXN0IGNvbnRleHQuCi0gKiBccGFyYW0gaW5wdXQgICAgIFRoZSBidWZmZXIgaG9sZGluZyB0aGUgaW5wdXQgZGF0YS4KLSAqIFxwYXJhbSBpbGVuICAgICAgVGhlIGxlbmd0aCBvZiB0aGUgaW5wdXQgZGF0YS4KLSAqCi0gKiBccmV0dXJuICAgICAgICAgIFxjIDAgb24gc3VjY2Vzcy4KLSAqIFxyZXR1cm4gICAgICAgICAgI01CRURUTFNfRVJSX01EX0JBRF9JTlBVVF9EQVRBIG9uIHBhcmFtZXRlci12ZXJpZmljYXRpb24KLSAqICAgICAgICAgICAgICAgICAgZmFpbHVyZS4KLSAqLwotTUJFRFRMU19DSEVDS19SRVRVUk5fVFlQSUNBTAotaW50IG1iZWR0bHNfbWRfdXBkYXRlKG1iZWR0bHNfbWRfY29udGV4dF90ICpjdHgsIGNvbnN0IHVuc2lnbmVkIGNoYXIgKmlucHV0LCBzaXplX3QgaWxlbik7Ci0KLS8qKgotICogXGJyaWVmICAgICAgICAgICBUaGlzIGZ1bmN0aW9uIGZpbmlzaGVzIHRoZSBkaWdlc3Qgb3BlcmF0aW9uLAotICogICAgICAgICAgICAgICAgICBhbmQgd3JpdGVzIHRoZSByZXN1bHQgdG8gdGhlIG91dHB1dCBidWZmZXIuCi0gKgotICogICAgICAgICAgICAgICAgICBDYWxsIHRoaXMgZnVuY3Rpb24gYWZ0ZXIgYSBjYWxsIHRvIG1iZWR0bHNfbWRfc3RhcnRzKCksCi0gKiAgICAgICAgICAgICAgICAgIGZvbGxvd2VkIGJ5IGFueSBudW1iZXIgb2YgY2FsbHMgdG8gbWJlZHRsc19tZF91cGRhdGUoKS4KLSAqICAgICAgICAgICAgICAgICAgQWZ0ZXJ3YXJkcywgeW91IG1heSBlaXRoZXIgY2xlYXIgdGhlIGNvbnRleHQgd2l0aAotICogICAgICAgICAgICAgICAgICBtYmVkdGxzX21kX2ZyZWUoKSwgb3IgY2FsbCBtYmVkdGxzX21kX3N0YXJ0cygpIHRvIHJldXNlCi0gKiAgICAgICAgICAgICAgICAgIHRoZSBjb250ZXh0IGZvciBhbm90aGVyIGRpZ2VzdCBvcGVyYXRpb24gd2l0aCB0aGUgc2FtZQotICogICAgICAgICAgICAgICAgICBhbGdvcml0aG0uCi0gKgotICogXHBhcmFtIGN0eCAgICAgICBUaGUgZ2VuZXJpYyBtZXNzYWdlLWRpZ2VzdCBjb250ZXh0LgotICogXHBhcmFtIG91dHB1dCAgICBUaGUgYnVmZmVyIGZvciB0aGUgZ2VuZXJpYyBtZXNzYWdlLWRpZ2VzdCBjaGVja3N1bSByZXN1bHQuCi0gKgotICogXHJldHVybiAgICAgICAgICBcYyAwIG9uIHN1Y2Nlc3MuCi0gKiBccmV0dXJuICAgICAgICAgICNNQkVEVExTX0VSUl9NRF9CQURfSU5QVVRfREFUQSBvbiBwYXJhbWV0ZXItdmVyaWZpY2F0aW9uCi0gKiAgICAgICAgICAgICAgICAgIGZhaWx1cmUuCi0gKi8KLU1CRURUTFNfQ0hFQ0tfUkVUVVJOX1RZUElDQUwKLWludCBtYmVkdGxzX21kX2ZpbmlzaChtYmVkdGxzX21kX2NvbnRleHRfdCAqY3R4LCB1bnNpZ25lZCBjaGFyICpvdXRwdXQpOwotCi0vKioKLSAqIFxicmllZiAgICAgICAgICBUaGlzIGZ1bmN0aW9uIGNhbGN1bGF0ZXMgdGhlIG1lc3NhZ2UtZGlnZXN0IG9mIGEgYnVmZmVyLAotICogICAgICAgICAgICAgICAgIHdpdGggcmVzcGVjdCB0byBhIGNvbmZpZ3VyYWJsZSBtZXNzYWdlLWRpZ2VzdCBhbGdvcml0aG0KLSAqICAgICAgICAgICAgICAgICBpbiBhIHNpbmdsZSBjYWxsLgotICoKLSAqICAgICAgICAgICAgICAgICBUaGUgcmVzdWx0IGlzIGNhbGN1bGF0ZWQgYXMKLSAqICAgICAgICAgICAgICAgICBPdXRwdXQgPSBtZXNzYWdlX2RpZ2VzdChpbnB1dCBidWZmZXIpLgotICoKLSAqIFxwYXJhbSBtZF9pbmZvICBUaGUgaW5mb3JtYXRpb24gc3RydWN0dXJlIG9mIHRoZSBtZXNzYWdlLWRpZ2VzdCBhbGdvcml0aG0KLSAqICAgICAgICAgICAgICAgICB0byB1c2UuCi0gKiBccGFyYW0gaW5wdXQgICAgVGhlIGJ1ZmZlciBob2xkaW5nIHRoZSBkYXRhLgotICogXHBhcmFtIGlsZW4gICAgIFRoZSBsZW5ndGggb2YgdGhlIGlucHV0IGRhdGEuCi0gKiBccGFyYW0gb3V0cHV0ICAgVGhlIGdlbmVyaWMgbWVzc2FnZS1kaWdlc3QgY2hlY2tzdW0gcmVzdWx0LgotICoKLSAqIFxyZXR1cm4gICAgICAgICBcYyAwIG9uIHN1Y2Nlc3MuCi0gKiBccmV0dXJuICAgICAgICAgI01CRURUTFNfRVJSX01EX0JBRF9JTlBVVF9EQVRBIG9uIHBhcmFtZXRlci12ZXJpZmljYXRpb24KLSAqICAgICAgICAgICAgICAgICBmYWlsdXJlLgotICovCi1NQkVEVExTX0NIRUNLX1JFVFVSTl9UWVBJQ0FMCi1pbnQgbWJlZHRsc19tZChjb25zdCBtYmVkdGxzX21kX2luZm9fdCAqbWRfaW5mbywgY29uc3QgdW5zaWduZWQgY2hhciAqaW5wdXQsIHNpemVfdCBpbGVuLAotICAgICAgICAgICAgICAgdW5zaWduZWQgY2hhciAqb3V0cHV0KTsKLQotLyoqCi0gKiBcYnJpZWYgICAgICAgICAgIFRoaXMgZnVuY3Rpb24gcmV0dXJucyB0aGUgbGlzdCBvZiBkaWdlc3RzIHN1cHBvcnRlZCBieSB0aGUKLSAqICAgICAgICAgICAgICAgICAgZ2VuZXJpYyBkaWdlc3QgbW9kdWxlLgotICoKLSAqIFxub3RlICAgICAgICAgICAgVGhlIGxpc3Qgc3RhcnRzIHdpdGggdGhlIHN0cm9uZ2VzdCBhdmFpbGFibGUgaGFzaGVzLgotICoKLSAqIFxyZXR1cm4gICAgICAgICAgQSBzdGF0aWNhbGx5IGFsbG9jYXRlZCBhcnJheSBvZiBkaWdlc3RzLiBFYWNoIGVsZW1lbnQKLSAqICAgICAgICAgICAgICAgICAgaW4gdGhlIHJldHVybmVkIGxpc3QgaXMgYW4gaW50ZWdlciBiZWxvbmdpbmcgdG8gdGhlCi0gKiAgICAgICAgICAgICAgICAgIG1lc3NhZ2UtZGlnZXN0IGVudW1lcmF0aW9uICNtYmVkdGxzX21kX3R5cGVfdC4KLSAqICAgICAgICAgICAgICAgICAgVGhlIGxhc3QgZW50cnkgaXMgMC4KLSAqLwotY29uc3QgaW50ICptYmVkdGxzX21kX2xpc3Qodm9pZCk7Ci0KLS8qKgotICogXGJyaWVmICAgICAgICAgICBUaGlzIGZ1bmN0aW9uIHJldHVybnMgdGhlIG1lc3NhZ2UtZGlnZXN0IGluZm9ybWF0aW9uCi0gKiAgICAgICAgICAgICAgICAgIGFzc29jaWF0ZWQgd2l0aCB0aGUgZ2l2ZW4gZGlnZXN0IG5hbWUuCi0gKgotICogXHBhcmFtIG1kX25hbWUgICBUaGUgbmFtZSBvZiB0aGUgZGlnZXN0IHRvIHNlYXJjaCBmb3IuCi0gKgotICogXHJldHVybiAgICAgICAgICBUaGUgbWVzc2FnZS1kaWdlc3QgaW5mb3JtYXRpb24gYXNzb2NpYXRlZCB3aXRoIFxwIG1kX25hbWUuCi0gKiBccmV0dXJuICAgICAgICAgIE5VTEwgaWYgdGhlIGFzc29jaWF0ZWQgbWVzc2FnZS1kaWdlc3QgaW5mb3JtYXRpb24gaXMgbm90IGZvdW5kLgotICovCi1jb25zdCBtYmVkdGxzX21kX2luZm9fdCAqbWJlZHRsc19tZF9pbmZvX2Zyb21fc3RyaW5nKGNvbnN0IGNoYXIgKm1kX25hbWUpOwotCi0vKioKLSAqIFxicmllZiAgICAgICAgICAgVGhpcyBmdW5jdGlvbiByZXR1cm5zIHRoZSBuYW1lIG9mIHRoZSBtZXNzYWdlIGRpZ2VzdCBmb3IKLSAqICAgICAgICAgICAgICAgICAgdGhlIG1lc3NhZ2UtZGlnZXN0IGluZm9ybWF0aW9uIHN0cnVjdHVyZSBnaXZlbi4KLSAqCi0gKiBccGFyYW0gbWRfaW5mbyAgIFRoZSBpbmZvcm1hdGlvbiBzdHJ1Y3R1cmUgb2YgdGhlIG1lc3NhZ2UtZGlnZXN0IGFsZ29yaXRobQotICogICAgICAgICAgICAgICAgICB0byB1c2UuCi0gKgotICogXHJldHVybiAgICAgICAgICBUaGUgbmFtZSBvZiB0aGUgbWVzc2FnZSBkaWdlc3QuCi0gKi8KLWNvbnN0IGNoYXIgKm1iZWR0bHNfbWRfZ2V0X25hbWUoY29uc3QgbWJlZHRsc19tZF9pbmZvX3QgKm1kX2luZm8pOwotCi0vKioKLSAqIFxicmllZiAgICAgICAgICAgVGhpcyBmdW5jdGlvbiByZXR1cm5zIHRoZSBtZXNzYWdlLWRpZ2VzdCBpbmZvcm1hdGlvbgotICogICAgICAgICAgICAgICAgICBmcm9tIHRoZSBnaXZlbiBjb250ZXh0LgotICoKLSAqIFxwYXJhbSBjdHggICAgICAgVGhlIGNvbnRleHQgZnJvbSB3aGljaCB0byBleHRyYWN0IHRoZSBpbmZvcm1hdGlvbi4KLSAqICAgICAgICAgICAgICAgICAgVGhpcyBtdXN0IGJlIGluaXRpYWxpemVkIChvciBcYyBOVUxMKS4KLSAqCi0gKiBccmV0dXJuICAgICAgICAgIFRoZSBtZXNzYWdlLWRpZ2VzdCBpbmZvcm1hdGlvbiBhc3NvY2lhdGVkIHdpdGggXHAgY3R4LgotICogXHJldHVybiAgICAgICAgICBcYyBOVUxMIGlmIFxwIGN0eCBpcyBcYyBOVUxMLgotICovCi1jb25zdCBtYmVkdGxzX21kX2luZm9fdCAqbWJlZHRsc19tZF9pbmZvX2Zyb21fY3R4KAotICAgIGNvbnN0IG1iZWR0bHNfbWRfY29udGV4dF90ICpjdHgpOwotCi0jaWYgZGVmaW5lZChNQkVEVExTX0ZTX0lPKQotLyoqCi0gKiBcYnJpZWYgICAgICAgICAgVGhpcyBmdW5jdGlvbiBjYWxjdWxhdGVzIHRoZSBtZXNzYWdlLWRpZ2VzdCBjaGVja3N1bQotICogICAgICAgICAgICAgICAgIHJlc3VsdCBvZiB0aGUgY29udGVudHMgb2YgdGhlIHByb3ZpZGVkIGZpbGUuCi0gKgotICogICAgICAgICAgICAgICAgIFRoZSByZXN1bHQgaXMgY2FsY3VsYXRlZCBhcwotICogICAgICAgICAgICAgICAgIE91dHB1dCA9IG1lc3NhZ2VfZGlnZXN0KGZpbGUgY29udGVudHMpLgotICoKLSAqIFxwYXJhbSBtZF9pbmZvICBUaGUgaW5mb3JtYXRpb24gc3RydWN0dXJlIG9mIHRoZSBtZXNzYWdlLWRpZ2VzdCBhbGdvcml0aG0KLSAqICAgICAgICAgICAgICAgICB0byB1c2UuCi0gKiBccGFyYW0gcGF0aCAgICAgVGhlIGlucHV0IGZpbGUgbmFtZS4KLSAqIFxwYXJhbSBvdXRwdXQgICBUaGUgZ2VuZXJpYyBtZXNzYWdlLWRpZ2VzdCBjaGVja3N1bSByZXN1bHQuCi0gKgotICogXHJldHVybiAgICAgICAgIFxjIDAgb24gc3VjY2Vzcy4KLSAqIFxyZXR1cm4gICAgICAgICAjTUJFRFRMU19FUlJfTURfRklMRV9JT19FUlJPUiBvbiBhbiBJL08gZXJyb3IgYWNjZXNzaW5nCi0gKiAgICAgICAgICAgICAgICAgdGhlIGZpbGUgcG9pbnRlZCBieSBccCBwYXRoLgotICogXHJldHVybiAgICAgICAgICNNQkVEVExTX0VSUl9NRF9CQURfSU5QVVRfREFUQSBpZiBccCBtZF9pbmZvIHdhcyBOVUxMLgotICovCi1NQkVEVExTX0NIRUNLX1JFVFVSTl9UWVBJQ0FMCi1pbnQgbWJlZHRsc19tZF9maWxlKGNvbnN0IG1iZWR0bHNfbWRfaW5mb190ICptZF9pbmZvLCBjb25zdCBjaGFyICpwYXRoLAotICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBjaGFyICpvdXRwdXQpOwotI2VuZGlmIC8qIE1CRURUTFNfRlNfSU8gKi8KLQotLyoqCi0gKiBcYnJpZWYgICAgICAgICAgIFRoaXMgZnVuY3Rpb24gc2V0cyB0aGUgSE1BQyBrZXkgYW5kIHByZXBhcmVzIHRvCi0gKiAgICAgICAgICAgICAgICAgIGF1dGhlbnRpY2F0ZSBhIG5ldyBtZXNzYWdlLgotICoKLSAqICAgICAgICAgICAgICAgICAgQ2FsbCB0aGlzIGZ1bmN0aW9uIGFmdGVyIG1iZWR0bHNfbWRfc2V0dXAoKSwgdG8gdXNlCi0gKiAgICAgICAgICAgICAgICAgIHRoZSBNRCBjb250ZXh0IGZvciBhbiBITUFDIGNhbGN1bGF0aW9uLCB0aGVuIGNhbGwKLSAqICAgICAgICAgICAgICAgICAgbWJlZHRsc19tZF9obWFjX3VwZGF0ZSgpIHRvIHByb3ZpZGUgdGhlIGlucHV0IGRhdGEsIGFuZAotICogICAgICAgICAgICAgICAgICBtYmVkdGxzX21kX2htYWNfZmluaXNoKCkgdG8gZ2V0IHRoZSBITUFDIHZhbHVlLgotICoKLSAqIFxwYXJhbSBjdHggICAgICAgVGhlIG1lc3NhZ2UgZGlnZXN0IGNvbnRleHQgY29udGFpbmluZyBhbiBlbWJlZGRlZCBITUFDCi0gKiAgICAgICAgICAgICAgICAgIGNvbnRleHQuCi0gKiBccGFyYW0ga2V5ICAgICAgIFRoZSBITUFDIHNlY3JldCBrZXkuCi0gKiBccGFyYW0ga2V5bGVuICAgIFRoZSBsZW5ndGggb2YgdGhlIEhNQUMga2V5IGluIEJ5dGVzLgotICoKLSAqIFxyZXR1cm4gICAgICAgICAgXGMgMCBvbiBzdWNjZXNzLgotICogXHJldHVybiAgICAgICAgICAjTUJFRFRMU19FUlJfTURfQkFEX0lOUFVUX0RBVEEgb24gcGFyYW1ldGVyLXZlcmlmaWNhdGlvbgotICogICAgICAgICAgICAgICAgICBmYWlsdXJlLgotICovCi1NQkVEVExTX0NIRUNLX1JFVFVSTl9UWVBJQ0FMCi1pbnQgbWJlZHRsc19tZF9obWFjX3N0YXJ0cyhtYmVkdGxzX21kX2NvbnRleHRfdCAqY3R4LCBjb25zdCB1bnNpZ25lZCBjaGFyICprZXksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3Qga2V5bGVuKTsKLQotLyoqCi0gKiBcYnJpZWYgICAgICAgICAgIFRoaXMgZnVuY3Rpb24gZmVlZHMgYW4gaW5wdXQgYnVmZmVyIGludG8gYW4gb25nb2luZyBITUFDCi0gKiAgICAgICAgICAgICAgICAgIGNvbXB1dGF0aW9uLgotICoKLSAqICAgICAgICAgICAgICAgICAgQ2FsbCBtYmVkdGxzX21kX2htYWNfc3RhcnRzKCkgb3IgbWJlZHRsc19tZF9obWFjX3Jlc2V0KCkKLSAqICAgICAgICAgICAgICAgICAgYmVmb3JlIGNhbGxpbmcgdGhpcyBmdW5jdGlvbi4KLSAqICAgICAgICAgICAgICAgICAgWW91IG1heSBjYWxsIHRoaXMgZnVuY3Rpb24gbXVsdGlwbGUgdGltZXMgdG8gcGFzcyB0aGUKLSAqICAgICAgICAgICAgICAgICAgaW5wdXQgcGllY2V3aXNlLgotICogICAgICAgICAgICAgICAgICBBZnRlcndhcmRzLCBjYWxsIG1iZWR0bHNfbWRfaG1hY19maW5pc2goKS4KLSAqCi0gKiBccGFyYW0gY3R4ICAgICAgIFRoZSBtZXNzYWdlIGRpZ2VzdCBjb250ZXh0IGNvbnRhaW5pbmcgYW4gZW1iZWRkZWQgSE1BQwotICogICAgICAgICAgICAgICAgICBjb250ZXh0LgotICogXHBhcmFtIGlucHV0ICAgICBUaGUgYnVmZmVyIGhvbGRpbmcgdGhlIGlucHV0IGRhdGEuCi0gKiBccGFyYW0gaWxlbiAgICAgIFRoZSBsZW5ndGggb2YgdGhlIGlucHV0IGRhdGEuCi0gKgotICogXHJldHVybiAgICAgICAgICBcYyAwIG9uIHN1Y2Nlc3MuCi0gKiBccmV0dXJuICAgICAgICAgICNNQkVEVExTX0VSUl9NRF9CQURfSU5QVVRfREFUQSBvbiBwYXJhbWV0ZXItdmVyaWZpY2F0aW9uCi0gKiAgICAgICAgICAgICAgICAgIGZhaWx1cmUuCi0gKi8KLU1CRURUTFNfQ0hFQ0tfUkVUVVJOX1RZUElDQUwKLWludCBtYmVkdGxzX21kX2htYWNfdXBkYXRlKG1iZWR0bHNfbWRfY29udGV4dF90ICpjdHgsIGNvbnN0IHVuc2lnbmVkIGNoYXIgKmlucHV0LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IGlsZW4pOwotCi0vKioKLSAqIFxicmllZiAgICAgICAgICAgVGhpcyBmdW5jdGlvbiBmaW5pc2hlcyB0aGUgSE1BQyBvcGVyYXRpb24sIGFuZCB3cml0ZXMKLSAqICAgICAgICAgICAgICAgICAgdGhlIHJlc3VsdCB0byB0aGUgb3V0cHV0IGJ1ZmZlci4KLSAqCi0gKiAgICAgICAgICAgICAgICAgIENhbGwgdGhpcyBmdW5jdGlvbiBhZnRlciBtYmVkdGxzX21kX2htYWNfc3RhcnRzKCkgYW5kCi0gKiAgICAgICAgICAgICAgICAgIG1iZWR0bHNfbWRfaG1hY191cGRhdGUoKSB0byBnZXQgdGhlIEhNQUMgdmFsdWUuIEFmdGVyd2FyZHMKLSAqICAgICAgICAgICAgICAgICAgeW91IG1heSBlaXRoZXIgY2FsbCBtYmVkdGxzX21kX2ZyZWUoKSB0byBjbGVhciB0aGUgY29udGV4dCwKLSAqICAgICAgICAgICAgICAgICAgb3IgY2FsbCBtYmVkdGxzX21kX2htYWNfcmVzZXQoKSB0byByZXVzZSB0aGUgY29udGV4dCB3aXRoCi0gKiAgICAgICAgICAgICAgICAgIHRoZSBzYW1lIEhNQUMga2V5LgotICoKLSAqIFxwYXJhbSBjdHggICAgICAgVGhlIG1lc3NhZ2UgZGlnZXN0IGNvbnRleHQgY29udGFpbmluZyBhbiBlbWJlZGRlZCBITUFDCi0gKiAgICAgICAgICAgICAgICAgIGNvbnRleHQuCi0gKiBccGFyYW0gb3V0cHV0ICAgIFRoZSBnZW5lcmljIEhNQUMgY2hlY2tzdW0gcmVzdWx0LgotICoKLSAqIFxyZXR1cm4gICAgICAgICAgXGMgMCBvbiBzdWNjZXNzLgotICogXHJldHVybiAgICAgICAgICAjTUJFRFRMU19FUlJfTURfQkFEX0lOUFVUX0RBVEEgb24gcGFyYW1ldGVyLXZlcmlmaWNhdGlvbgotICogICAgICAgICAgICAgICAgICBmYWlsdXJlLgotICovCi1NQkVEVExTX0NIRUNLX1JFVFVSTl9UWVBJQ0FMCi1pbnQgbWJlZHRsc19tZF9obWFjX2ZpbmlzaChtYmVkdGxzX21kX2NvbnRleHRfdCAqY3R4LCB1bnNpZ25lZCBjaGFyICpvdXRwdXQpOwotCi0vKioKLSAqIFxicmllZiAgICAgICAgICAgVGhpcyBmdW5jdGlvbiBwcmVwYXJlcyB0byBhdXRoZW50aWNhdGUgYSBuZXcgbWVzc2FnZSB3aXRoCi0gKiAgICAgICAgICAgICAgICAgIHRoZSBzYW1lIGtleSBhcyB0aGUgcHJldmlvdXMgSE1BQyBvcGVyYXRpb24uCi0gKgotICogICAgICAgICAgICAgICAgICBZb3UgbWF5IGNhbGwgdGhpcyBmdW5jdGlvbiBhZnRlciBtYmVkdGxzX21kX2htYWNfZmluaXNoKCkuCi0gKiAgICAgICAgICAgICAgICAgIEFmdGVyd2FyZHMgY2FsbCBtYmVkdGxzX21kX2htYWNfdXBkYXRlKCkgdG8gcGFzcyB0aGUgbmV3Ci0gKiAgICAgICAgICAgICAgICAgIGlucHV0LgotICoKLSAqIFxwYXJhbSBjdHggICAgICAgVGhlIG1lc3NhZ2UgZGlnZXN0IGNvbnRleHQgY29udGFpbmluZyBhbiBlbWJlZGRlZCBITUFDCi0gKiAgICAgICAgICAgICAgICAgIGNvbnRleHQuCi0gKgotICogXHJldHVybiAgICAgICAgICBcYyAwIG9uIHN1Y2Nlc3MuCi0gKiBccmV0dXJuICAgICAgICAgICNNQkVEVExTX0VSUl9NRF9CQURfSU5QVVRfREFUQSBvbiBwYXJhbWV0ZXItdmVyaWZpY2F0aW9uCi0gKiAgICAgICAgICAgICAgICAgIGZhaWx1cmUuCi0gKi8KLU1CRURUTFNfQ0hFQ0tfUkVUVVJOX1RZUElDQUwKLWludCBtYmVkdGxzX21kX2htYWNfcmVzZXQobWJlZHRsc19tZF9jb250ZXh0X3QgKmN0eCk7Ci0KLS8qKgotICogXGJyaWVmICAgICAgICAgIFRoaXMgZnVuY3Rpb24gY2FsY3VsYXRlcyB0aGUgZnVsbCBnZW5lcmljIEhNQUMKLSAqICAgICAgICAgICAgICAgICBvbiB0aGUgaW5wdXQgYnVmZmVyIHdpdGggdGhlIHByb3ZpZGVkIGtleS4KLSAqCi0gKiAgICAgICAgICAgICAgICAgVGhlIGZ1bmN0aW9uIGFsbG9jYXRlcyB0aGUgY29udGV4dCwgcGVyZm9ybXMgdGhlCi0gKiAgICAgICAgICAgICAgICAgY2FsY3VsYXRpb24sIGFuZCBmcmVlcyB0aGUgY29udGV4dC4KLSAqCi0gKiAgICAgICAgICAgICAgICAgVGhlIEhNQUMgcmVzdWx0IGlzIGNhbGN1bGF0ZWQgYXMKLSAqICAgICAgICAgICAgICAgICBvdXRwdXQgPSBnZW5lcmljIEhNQUMoaG1hYyBrZXksIGlucHV0IGJ1ZmZlcikuCi0gKgotICogXHBhcmFtIG1kX2luZm8gIFRoZSBpbmZvcm1hdGlvbiBzdHJ1Y3R1cmUgb2YgdGhlIG1lc3NhZ2UtZGlnZXN0IGFsZ29yaXRobQotICogICAgICAgICAgICAgICAgIHRvIHVzZS4KLSAqIFxwYXJhbSBrZXkgICAgICBUaGUgSE1BQyBzZWNyZXQga2V5LgotICogXHBhcmFtIGtleWxlbiAgIFRoZSBsZW5ndGggb2YgdGhlIEhNQUMgc2VjcmV0IGtleSBpbiBCeXRlcy4KLSAqIFxwYXJhbSBpbnB1dCAgICBUaGUgYnVmZmVyIGhvbGRpbmcgdGhlIGlucHV0IGRhdGEuCi0gKiBccGFyYW0gaWxlbiAgICAgVGhlIGxlbmd0aCBvZiB0aGUgaW5wdXQgZGF0YS4KLSAqIFxwYXJhbSBvdXRwdXQgICBUaGUgZ2VuZXJpYyBITUFDIHJlc3VsdC4KLSAqCi0gKiBccmV0dXJuICAgICAgICAgXGMgMCBvbiBzdWNjZXNzLgotICogXHJldHVybiAgICAgICAgICNNQkVEVExTX0VSUl9NRF9CQURfSU5QVVRfREFUQSBvbiBwYXJhbWV0ZXItdmVyaWZpY2F0aW9uCi0gKiAgICAgICAgICAgICAgICAgZmFpbHVyZS4KLSAqLwotTUJFRFRMU19DSEVDS19SRVRVUk5fVFlQSUNBTAotaW50IG1iZWR0bHNfbWRfaG1hYyhjb25zdCBtYmVkdGxzX21kX2luZm9fdCAqbWRfaW5mbywgY29uc3QgdW5zaWduZWQgY2hhciAqa2V5LCBzaXplX3Qga2V5bGVuLAotICAgICAgICAgICAgICAgICAgICBjb25zdCB1bnNpZ25lZCBjaGFyICppbnB1dCwgc2l6ZV90IGlsZW4sCi0gICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGNoYXIgKm91dHB1dCk7Ci0KLSNpZmRlZiBfX2NwbHVzcGx1cwotfQotI2VuZGlmCi0KLSNlbmRpZiAvKiBNQkVEVExTX01EX0ggKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvbWJlZHRscy9tZDUuaCBiL2luY2x1ZGUvbWJlZHRscy9tZDUuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNmJmMDc1NC4uMDAwMDAwMAotLS0gYS9pbmNsdWRlL21iZWR0bHMvbWQ1LmgKKysrIC9kZXYvbnVsbApAQCAtMSwxOTAgKzAsMCBAQAotLyoqCi0gKiBcZmlsZSBtZDUuaAotICoKLSAqIFxicmllZiBNRDUgbWVzc2FnZSBkaWdlc3QgYWxnb3JpdGhtIChoYXNoIGZ1bmN0aW9uKQotICoKLSAqIFx3YXJuaW5nICAgTUQ1IGlzIGNvbnNpZGVyZWQgYSB3ZWFrIG1lc3NhZ2UgZGlnZXN0IGFuZCBpdHMgdXNlIGNvbnN0aXR1dGVzIGEKLSAqICAgICAgICAgICAgc2VjdXJpdHkgcmlzay4gV2UgcmVjb21tZW5kIGNvbnNpZGVyaW5nIHN0cm9uZ2VyIG1lc3NhZ2UKLSAqICAgICAgICAgICAgZGlnZXN0cyBpbnN0ZWFkLgotICovCi0vKgotICogIENvcHlyaWdodCBUaGUgTWJlZCBUTFMgQ29udHJpYnV0b3JzCi0gKiAgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjAgT1IgR1BMLTIuMC1vci1sYXRlcgotICovCi0jaWZuZGVmIE1CRURUTFNfTUQ1X0gKLSNkZWZpbmUgTUJFRFRMU19NRDVfSAotI2luY2x1ZGUgIm1iZWR0bHMvcHJpdmF0ZV9hY2Nlc3MuaCIKLQotI2luY2x1ZGUgIm1iZWR0bHMvYnVpbGRfaW5mby5oIgotCi0jaW5jbHVkZSA8c3RkZGVmLmg+Ci0jaW5jbHVkZSA8c3RkaW50Lmg+Ci0KLSNpZmRlZiBfX2NwbHVzcGx1cwotZXh0ZXJuICJDIiB7Ci0jZW5kaWYKLQotI2lmICFkZWZpbmVkKE1CRURUTFNfTUQ1X0FMVCkKLS8vIFJlZ3VsYXIgaW1wbGVtZW50YXRpb24KLS8vCi0KLS8qKgotICogXGJyaWVmICAgICAgICAgIE1ENSBjb250ZXh0IHN0cnVjdHVyZQotICoKLSAqIFx3YXJuaW5nICAgICAgICBNRDUgaXMgY29uc2lkZXJlZCBhIHdlYWsgbWVzc2FnZSBkaWdlc3QgYW5kIGl0cyB1c2UKLSAqICAgICAgICAgICAgICAgICBjb25zdGl0dXRlcyBhIHNlY3VyaXR5IHJpc2suIFdlIHJlY29tbWVuZCBjb25zaWRlcmluZwotICogICAgICAgICAgICAgICAgIHN0cm9uZ2VyIG1lc3NhZ2UgZGlnZXN0cyBpbnN0ZWFkLgotICoKLSAqLwotdHlwZWRlZiBzdHJ1Y3QgbWJlZHRsc19tZDVfY29udGV4dCB7Ci0gICAgdWludDMyX3QgTUJFRFRMU19QUklWQVRFKHRvdGFsKVsyXTsgICAgICAgICAgLyohPCBudW1iZXIgb2YgYnl0ZXMgcHJvY2Vzc2VkICAqLwotICAgIHVpbnQzMl90IE1CRURUTFNfUFJJVkFURShzdGF0ZSlbNF07ICAgICAgICAgIC8qITwgaW50ZXJtZWRpYXRlIGRpZ2VzdCBzdGF0ZSAgKi8KLSAgICB1bnNpZ25lZCBjaGFyIE1CRURUTFNfUFJJVkFURShidWZmZXIpWzY0XTsgICAvKiE8IGRhdGEgYmxvY2sgYmVpbmcgcHJvY2Vzc2VkICovCi19Ci1tYmVkdGxzX21kNV9jb250ZXh0OwotCi0jZWxzZSAgLyogTUJFRFRMU19NRDVfQUxUICovCi0jaW5jbHVkZSAibWQ1X2FsdC5oIgotI2VuZGlmIC8qIE1CRURUTFNfTUQ1X0FMVCAqLwotCi0vKioKLSAqIFxicmllZiAgICAgICAgICBJbml0aWFsaXplIE1ENSBjb250ZXh0Ci0gKgotICogXHBhcmFtIGN0eCAgICAgIE1ENSBjb250ZXh0IHRvIGJlIGluaXRpYWxpemVkCi0gKgotICogXHdhcm5pbmcgICAgICAgIE1ENSBpcyBjb25zaWRlcmVkIGEgd2VhayBtZXNzYWdlIGRpZ2VzdCBhbmQgaXRzIHVzZQotICogICAgICAgICAgICAgICAgIGNvbnN0aXR1dGVzIGEgc2VjdXJpdHkgcmlzay4gV2UgcmVjb21tZW5kIGNvbnNpZGVyaW5nCi0gKiAgICAgICAgICAgICAgICAgc3Ryb25nZXIgbWVzc2FnZSBkaWdlc3RzIGluc3RlYWQuCi0gKgotICovCi12b2lkIG1iZWR0bHNfbWQ1X2luaXQobWJlZHRsc19tZDVfY29udGV4dCAqY3R4KTsKLQotLyoqCi0gKiBcYnJpZWYgICAgICAgICAgQ2xlYXIgTUQ1IGNvbnRleHQKLSAqCi0gKiBccGFyYW0gY3R4ICAgICAgTUQ1IGNvbnRleHQgdG8gYmUgY2xlYXJlZAotICoKLSAqIFx3YXJuaW5nICAgICAgICBNRDUgaXMgY29uc2lkZXJlZCBhIHdlYWsgbWVzc2FnZSBkaWdlc3QgYW5kIGl0cyB1c2UKLSAqICAgICAgICAgICAgICAgICBjb25zdGl0dXRlcyBhIHNlY3VyaXR5IHJpc2suIFdlIHJlY29tbWVuZCBjb25zaWRlcmluZwotICogICAgICAgICAgICAgICAgIHN0cm9uZ2VyIG1lc3NhZ2UgZGlnZXN0cyBpbnN0ZWFkLgotICoKLSAqLwotdm9pZCBtYmVkdGxzX21kNV9mcmVlKG1iZWR0bHNfbWQ1X2NvbnRleHQgKmN0eCk7Ci0KLS8qKgotICogXGJyaWVmICAgICAgICAgIENsb25lICh0aGUgc3RhdGUgb2YpIGFuIE1ENSBjb250ZXh0Ci0gKgotICogXHBhcmFtIGRzdCAgICAgIFRoZSBkZXN0aW5hdGlvbiBjb250ZXh0Ci0gKiBccGFyYW0gc3JjICAgICAgVGhlIGNvbnRleHQgdG8gYmUgY2xvbmVkCi0gKgotICogXHdhcm5pbmcgICAgICAgIE1ENSBpcyBjb25zaWRlcmVkIGEgd2VhayBtZXNzYWdlIGRpZ2VzdCBhbmQgaXRzIHVzZQotICogICAgICAgICAgICAgICAgIGNvbnN0aXR1dGVzIGEgc2VjdXJpdHkgcmlzay4gV2UgcmVjb21tZW5kIGNvbnNpZGVyaW5nCi0gKiAgICAgICAgICAgICAgICAgc3Ryb25nZXIgbWVzc2FnZSBkaWdlc3RzIGluc3RlYWQuCi0gKgotICovCi12b2lkIG1iZWR0bHNfbWQ1X2Nsb25lKG1iZWR0bHNfbWQ1X2NvbnRleHQgKmRzdCwKLSAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbWJlZHRsc19tZDVfY29udGV4dCAqc3JjKTsKLQotLyoqCi0gKiBcYnJpZWYgICAgICAgICAgTUQ1IGNvbnRleHQgc2V0dXAKLSAqCi0gKiBccGFyYW0gY3R4ICAgICAgY29udGV4dCB0byBiZSBpbml0aWFsaXplZAotICoKLSAqIFxyZXR1cm4gICAgICAgICAwIGlmIHN1Y2Nlc3NmdWwKLSAqCi0gKiBcd2FybmluZyAgICAgICAgTUQ1IGlzIGNvbnNpZGVyZWQgYSB3ZWFrIG1lc3NhZ2UgZGlnZXN0IGFuZCBpdHMgdXNlCi0gKiAgICAgICAgICAgICAgICAgY29uc3RpdHV0ZXMgYSBzZWN1cml0eSByaXNrLiBXZSByZWNvbW1lbmQgY29uc2lkZXJpbmcKLSAqICAgICAgICAgICAgICAgICBzdHJvbmdlciBtZXNzYWdlIGRpZ2VzdHMgaW5zdGVhZC4KLSAqCi0gKi8KLWludCBtYmVkdGxzX21kNV9zdGFydHMobWJlZHRsc19tZDVfY29udGV4dCAqY3R4KTsKLQotLyoqCi0gKiBcYnJpZWYgICAgICAgICAgTUQ1IHByb2Nlc3MgYnVmZmVyCi0gKgotICogXHBhcmFtIGN0eCAgICAgIE1ENSBjb250ZXh0Ci0gKiBccGFyYW0gaW5wdXQgICAgYnVmZmVyIGhvbGRpbmcgdGhlIGRhdGEKLSAqIFxwYXJhbSBpbGVuICAgICBsZW5ndGggb2YgdGhlIGlucHV0IGRhdGEKLSAqCi0gKiBccmV0dXJuICAgICAgICAgMCBpZiBzdWNjZXNzZnVsCi0gKgotICogXHdhcm5pbmcgICAgICAgIE1ENSBpcyBjb25zaWRlcmVkIGEgd2VhayBtZXNzYWdlIGRpZ2VzdCBhbmQgaXRzIHVzZQotICogICAgICAgICAgICAgICAgIGNvbnN0aXR1dGVzIGEgc2VjdXJpdHkgcmlzay4gV2UgcmVjb21tZW5kIGNvbnNpZGVyaW5nCi0gKiAgICAgICAgICAgICAgICAgc3Ryb25nZXIgbWVzc2FnZSBkaWdlc3RzIGluc3RlYWQuCi0gKgotICovCi1pbnQgbWJlZHRsc19tZDVfdXBkYXRlKG1iZWR0bHNfbWQ1X2NvbnRleHQgKmN0eCwKLSAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdW5zaWduZWQgY2hhciAqaW5wdXQsCi0gICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBpbGVuKTsKLQotLyoqCi0gKiBcYnJpZWYgICAgICAgICAgTUQ1IGZpbmFsIGRpZ2VzdAotICoKLSAqIFxwYXJhbSBjdHggICAgICBNRDUgY29udGV4dAotICogXHBhcmFtIG91dHB1dCAgIE1ENSBjaGVja3N1bSByZXN1bHQKLSAqCi0gKiBccmV0dXJuICAgICAgICAgMCBpZiBzdWNjZXNzZnVsCi0gKgotICogXHdhcm5pbmcgICAgICAgIE1ENSBpcyBjb25zaWRlcmVkIGEgd2VhayBtZXNzYWdlIGRpZ2VzdCBhbmQgaXRzIHVzZQotICogICAgICAgICAgICAgICAgIGNvbnN0aXR1dGVzIGEgc2VjdXJpdHkgcmlzay4gV2UgcmVjb21tZW5kIGNvbnNpZGVyaW5nCi0gKiAgICAgICAgICAgICAgICAgc3Ryb25nZXIgbWVzc2FnZSBkaWdlc3RzIGluc3RlYWQuCi0gKgotICovCi1pbnQgbWJlZHRsc19tZDVfZmluaXNoKG1iZWR0bHNfbWQ1X2NvbnRleHQgKmN0eCwKLSAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgY2hhciBvdXRwdXRbMTZdKTsKLQotLyoqCi0gKiBcYnJpZWYgICAgICAgICAgTUQ1IHByb2Nlc3MgZGF0YSBibG9jayAoaW50ZXJuYWwgdXNlIG9ubHkpCi0gKgotICogXHBhcmFtIGN0eCAgICAgIE1ENSBjb250ZXh0Ci0gKiBccGFyYW0gZGF0YSAgICAgYnVmZmVyIGhvbGRpbmcgb25lIGJsb2NrIG9mIGRhdGEKLSAqCi0gKiBccmV0dXJuICAgICAgICAgMCBpZiBzdWNjZXNzZnVsCi0gKgotICogXHdhcm5pbmcgICAgICAgIE1ENSBpcyBjb25zaWRlcmVkIGEgd2VhayBtZXNzYWdlIGRpZ2VzdCBhbmQgaXRzIHVzZQotICogICAgICAgICAgICAgICAgIGNvbnN0aXR1dGVzIGEgc2VjdXJpdHkgcmlzay4gV2UgcmVjb21tZW5kIGNvbnNpZGVyaW5nCi0gKiAgICAgICAgICAgICAgICAgc3Ryb25nZXIgbWVzc2FnZSBkaWdlc3RzIGluc3RlYWQuCi0gKgotICovCi1pbnQgbWJlZHRsc19pbnRlcm5hbF9tZDVfcHJvY2VzcyhtYmVkdGxzX21kNV9jb250ZXh0ICpjdHgsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1bnNpZ25lZCBjaGFyIGRhdGFbNjRdKTsKLQotLyoqCi0gKiBcYnJpZWYgICAgICAgICAgT3V0cHV0ID0gTUQ1KCBpbnB1dCBidWZmZXIgKQotICoKLSAqIFxwYXJhbSBpbnB1dCAgICBidWZmZXIgaG9sZGluZyB0aGUgZGF0YQotICogXHBhcmFtIGlsZW4gICAgIGxlbmd0aCBvZiB0aGUgaW5wdXQgZGF0YQotICogXHBhcmFtIG91dHB1dCAgIE1ENSBjaGVja3N1bSByZXN1bHQKLSAqCi0gKiBccmV0dXJuICAgICAgICAgMCBpZiBzdWNjZXNzZnVsCi0gKgotICogXHdhcm5pbmcgICAgICAgIE1ENSBpcyBjb25zaWRlcmVkIGEgd2VhayBtZXNzYWdlIGRpZ2VzdCBhbmQgaXRzIHVzZQotICogICAgICAgICAgICAgICAgIGNvbnN0aXR1dGVzIGEgc2VjdXJpdHkgcmlzay4gV2UgcmVjb21tZW5kIGNvbnNpZGVyaW5nCi0gKiAgICAgICAgICAgICAgICAgc3Ryb25nZXIgbWVzc2FnZSBkaWdlc3RzIGluc3RlYWQuCi0gKgotICovCi1pbnQgbWJlZHRsc19tZDUoY29uc3QgdW5zaWduZWQgY2hhciAqaW5wdXQsCi0gICAgICAgICAgICAgICAgc2l6ZV90IGlsZW4sCi0gICAgICAgICAgICAgICAgdW5zaWduZWQgY2hhciBvdXRwdXRbMTZdKTsKLQotI2lmIGRlZmluZWQoTUJFRFRMU19TRUxGX1RFU1QpCi0KLS8qKgotICogXGJyaWVmICAgICAgICAgIENoZWNrdXAgcm91dGluZQotICoKLSAqIFxyZXR1cm4gICAgICAgICAwIGlmIHN1Y2Nlc3NmdWwsIG9yIDEgaWYgdGhlIHRlc3QgZmFpbGVkCi0gKgotICogXHdhcm5pbmcgICAgICAgIE1ENSBpcyBjb25zaWRlcmVkIGEgd2VhayBtZXNzYWdlIGRpZ2VzdCBhbmQgaXRzIHVzZQotICogICAgICAgICAgICAgICAgIGNvbnN0aXR1dGVzIGEgc2VjdXJpdHkgcmlzay4gV2UgcmVjb21tZW5kIGNvbnNpZGVyaW5nCi0gKiAgICAgICAgICAgICAgICAgc3Ryb25nZXIgbWVzc2FnZSBkaWdlc3RzIGluc3RlYWQuCi0gKgotICovCi1pbnQgbWJlZHRsc19tZDVfc2VsZl90ZXN0KGludCB2ZXJib3NlKTsKLQotI2VuZGlmIC8qIE1CRURUTFNfU0VMRl9URVNUICovCi0KLSNpZmRlZiBfX2NwbHVzcGx1cwotfQotI2VuZGlmCi0KLSNlbmRpZiAvKiBtYmVkdGxzX21kNS5oICovCmRpZmYgLS1naXQgYS9pbmNsdWRlL21iZWR0bHMvbmlzdF9rdy5oIGIvaW5jbHVkZS9tYmVkdGxzL25pc3Rfa3cuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZDM1M2YzZC4uMDAwMDAwMAotLS0gYS9pbmNsdWRlL21iZWR0bHMvbmlzdF9rdy5oCisrKyAvZGV2L251bGwKQEAgLTEsMTY2ICswLDAgQEAKLS8qKgotICogXGZpbGUgbmlzdF9rdy5oCi0gKgotICogXGJyaWVmIFRoaXMgZmlsZSBwcm92aWRlcyBhbiBBUEkgZm9yIGtleSB3cmFwcGluZyAoS1cpIGFuZCBrZXkgd3JhcHBpbmcgd2l0aAotICogICAgICAgIHBhZGRpbmcgKEtXUCkgYXMgZGVmaW5lZCBpbiBOSVNUIFNQIDgwMC0zOEYuCi0gKiAgICAgICAgaHR0cHM6Ly9udmxwdWJzLm5pc3QuZ292L25pc3RwdWJzL1NwZWNpYWxQdWJsaWNhdGlvbnMvTklTVC5TUC44MDAtMzhGLnBkZgotICoKLSAqICAgICAgICBLZXkgd3JhcHBpbmcgc3BlY2lmaWVzIGEgZGV0ZXJtaW5pc3RpYyBhdXRoZW50aWNhdGVkLWVuY3J5cHRpb24gbW9kZQotICogICAgICAgIG9mIG9wZXJhdGlvbiwgYWNjb3JkaW5nIHRvIDxlbT5OSVNUIFNQIDgwMC0zOEY6IFJlY29tbWVuZGF0aW9uIGZvcgotICogICAgICAgIEJsb2NrIENpcGhlciBNb2RlcyBvZiBPcGVyYXRpb246IE1ldGhvZHMgZm9yIEtleSBXcmFwcGluZzwvZW0+LiBJdHMKLSAqICAgICAgICBwdXJwb3NlIGlzIHRvIHByb3RlY3QgY3J5cHRvZ3JhcGhpYyBrZXlzLgotICoKLSAqICAgICAgICBJdHMgZXF1aXZhbGVudCBpcyBSRkMgMzM5NCBmb3IgS1csIGFuZCBSRkMgNTY0OSBmb3IgS1dQLgotICogICAgICAgIGh0dHBzOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9yZmMzMzk0Ci0gKiAgICAgICAgaHR0cHM6Ly90b29scy5pZXRmLm9yZy9odG1sL3JmYzU2NDkKLSAqCi0gKi8KLS8qCi0gKiAgQ29weXJpZ2h0IFRoZSBNYmVkIFRMUyBDb250cmlidXRvcnMKLSAqICBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMCBPUiBHUEwtMi4wLW9yLWxhdGVyCi0gKi8KLQotI2lmbmRlZiBNQkVEVExTX05JU1RfS1dfSAotI2RlZmluZSBNQkVEVExTX05JU1RfS1dfSAotI2luY2x1ZGUgIm1iZWR0bHMvcHJpdmF0ZV9hY2Nlc3MuaCIKLQotI2luY2x1ZGUgIm1iZWR0bHMvYnVpbGRfaW5mby5oIgotCi0jaW5jbHVkZSAibWJlZHRscy9jaXBoZXIuaCIKLQotI2lmZGVmIF9fY3BsdXNwbHVzCi1leHRlcm4gIkMiIHsKLSNlbmRpZgotCi10eXBlZGVmIGVudW0gewotICAgIE1CRURUTFNfS1dfTU9ERV9LVyA9IDAsCi0gICAgTUJFRFRMU19LV19NT0RFX0tXUCA9IDEKLX0gbWJlZHRsc19uaXN0X2t3X21vZGVfdDsKLQotI2lmICFkZWZpbmVkKE1CRURUTFNfTklTVF9LV19BTFQpCi0vLyBSZWd1bGFyIGltcGxlbWVudGF0aW9uCi0vLwotCi0vKioKLSAqIFxicmllZiAgICBUaGUga2V5IHdyYXBwaW5nIGNvbnRleHQtdHlwZSBkZWZpbml0aW9uLiBUaGUga2V5IHdyYXBwaW5nIGNvbnRleHQgaXMgcGFzc2VkCi0gKiAgICAgICAgICAgdG8gdGhlIEFQSXMgY2FsbGVkLgotICoKLSAqIFxub3RlICAgICBUaGUgZGVmaW5pdGlvbiBvZiB0aGlzIHR5cGUgbWF5IGNoYW5nZSBpbiBmdXR1cmUgbGlicmFyeSB2ZXJzaW9ucy4KLSAqICAgICAgICAgICBEb24ndCBtYWtlIGFueSBhc3N1bXB0aW9ucyBvbiB0aGlzIGNvbnRleHQhCi0gKi8KLXR5cGVkZWYgc3RydWN0IHsKLSAgICBtYmVkdGxzX2NpcGhlcl9jb250ZXh0X3QgTUJFRFRMU19QUklWQVRFKGNpcGhlcl9jdHgpOyAgICAvKiE8IFRoZSBjaXBoZXIgY29udGV4dCB1c2VkLiAqLwotfSBtYmVkdGxzX25pc3Rfa3dfY29udGV4dDsKLQotI2Vsc2UgIC8qIE1CRURUTFNfTklTVF9rZXkgd3JhcHBpbmdfQUxUICovCi0jaW5jbHVkZSAibmlzdF9rd19hbHQuaCIKLSNlbmRpZiAvKiBNQkVEVExTX05JU1RfS1dfQUxUICovCi0KLS8qKgotICogXGJyaWVmICAgICAgICAgICBUaGlzIGZ1bmN0aW9uIGluaXRpYWxpemVzIHRoZSBzcGVjaWZpZWQga2V5IHdyYXBwaW5nIGNvbnRleHQKLSAqICAgICAgICAgICAgICAgICAgdG8gbWFrZSByZWZlcmVuY2VzIHZhbGlkIGFuZCBwcmVwYXJlIHRoZSBjb250ZXh0Ci0gKiAgICAgICAgICAgICAgICAgIGZvciBtYmVkdGxzX25pc3Rfa3dfc2V0a2V5KCkgb3IgbWJlZHRsc19uaXN0X2t3X2ZyZWUoKS4KLSAqCi0gKiBccGFyYW0gY3R4ICAgICAgIFRoZSBrZXkgd3JhcHBpbmcgY29udGV4dCB0byBpbml0aWFsaXplLgotICoKLSAqLwotdm9pZCBtYmVkdGxzX25pc3Rfa3dfaW5pdChtYmVkdGxzX25pc3Rfa3dfY29udGV4dCAqY3R4KTsKLQotLyoqCi0gKiBcYnJpZWYgICAgICAgICAgIFRoaXMgZnVuY3Rpb24gaW5pdGlhbGl6ZXMgdGhlIGtleSB3cmFwcGluZyBjb250ZXh0IHNldCBpbiB0aGUKLSAqICAgICAgICAgICAgICAgICAgXHAgY3R4IHBhcmFtZXRlciBhbmQgc2V0cyB0aGUgZW5jcnlwdGlvbiBrZXkuCi0gKgotICogXHBhcmFtIGN0eCAgICAgICBUaGUga2V5IHdyYXBwaW5nIGNvbnRleHQuCi0gKiBccGFyYW0gY2lwaGVyICAgIFRoZSAxMjgtYml0IGJsb2NrIGNpcGhlciB0byB1c2UuIE9ubHkgQUVTIGlzIHN1cHBvcnRlZC4KLSAqIFxwYXJhbSBrZXkgICAgICAgVGhlIEtleSBFbmNyeXB0aW9uIEtleSAoS0VLKS4KLSAqIFxwYXJhbSBrZXliaXRzICAgVGhlIEtFSyBzaXplIGluIGJpdHMuIFRoaXMgbXVzdCBiZSBhY2NlcHRhYmxlIGJ5IHRoZSBjaXBoZXIuCi0gKiBccGFyYW0gaXNfd3JhcCAgIFNwZWNpZnkgd2hldGhlciB0aGUgb3BlcmF0aW9uIHdpdGhpbiB0aGUgY29udGV4dCBpcyB3cmFwcGluZyBvciB1bndyYXBwaW5nCi0gKgotICogXHJldHVybiAgICAgICAgICBcYyAwIG9uIHN1Y2Nlc3MuCi0gKiBccmV0dXJuICAgICAgICAgIFxjIE1CRURUTFNfRVJSX0NJUEhFUl9CQURfSU5QVVRfREFUQSBmb3IgYW55IGludmFsaWQgaW5wdXQuCi0gKiBccmV0dXJuICAgICAgICAgIFxjIE1CRURUTFNfRVJSX0NJUEhFUl9GRUFUVVJFX1VOQVZBSUxBQkxFIGZvciAxMjgtYml0IGJsb2NrIGNpcGhlcnMKLSAqICAgICAgICAgICAgICAgICAgd2hpY2ggYXJlIG5vdCBzdXBwb3J0ZWQuCi0gKiBccmV0dXJuICAgICAgICAgIGNpcGhlci1zcGVjaWZpYyBlcnJvciBjb2RlIG9uIGZhaWx1cmUgb2YgdGhlIHVuZGVybHlpbmcgY2lwaGVyLgotICovCi1pbnQgbWJlZHRsc19uaXN0X2t3X3NldGtleShtYmVkdGxzX25pc3Rfa3dfY29udGV4dCAqY3R4LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgbWJlZHRsc19jaXBoZXJfaWRfdCBjaXBoZXIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1bnNpZ25lZCBjaGFyICprZXksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQga2V5Yml0cywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGludCBpc193cmFwKTsKLQotLyoqCi0gKiBcYnJpZWYgICBUaGlzIGZ1bmN0aW9uIHJlbGVhc2VzIGFuZCBjbGVhcnMgdGhlIHNwZWNpZmllZCBrZXkgd3JhcHBpbmcgY29udGV4dAotICogICAgICAgICAgYW5kIHVuZGVybHlpbmcgY2lwaGVyIHN1Yi1jb250ZXh0LgotICoKLSAqIFxwYXJhbSBjdHggICAgICAgVGhlIGtleSB3cmFwcGluZyBjb250ZXh0IHRvIGNsZWFyLgotICovCi12b2lkIG1iZWR0bHNfbmlzdF9rd19mcmVlKG1iZWR0bHNfbmlzdF9rd19jb250ZXh0ICpjdHgpOwotCi0vKioKLSAqIFxicmllZiAgICAgICAgICAgVGhpcyBmdW5jdGlvbiBlbmNyeXB0cyBhIGJ1ZmZlciB1c2luZyBrZXkgd3JhcHBpbmcuCi0gKgotICogXHBhcmFtIGN0eCAgICAgICBUaGUga2V5IHdyYXBwaW5nIGNvbnRleHQgdG8gdXNlIGZvciBlbmNyeXB0aW9uLgotICogXHBhcmFtIG1vZGUgICAgICBUaGUga2V5IHdyYXBwaW5nIG1vZGUgdG8gdXNlIChNQkVEVExTX0tXX01PREVfS1cgb3IgTUJFRFRMU19LV19NT0RFX0tXUCkKLSAqIFxwYXJhbSBpbnB1dCAgICAgVGhlIGJ1ZmZlciBob2xkaW5nIHRoZSBpbnB1dCBkYXRhLgotICogXHBhcmFtIGluX2xlbiAgICBUaGUgbGVuZ3RoIG9mIHRoZSBpbnB1dCBkYXRhIGluIEJ5dGVzLgotICogICAgICAgICAgICAgICAgICBUaGUgaW5wdXQgdXNlcyB1bml0cyBvZiA4IEJ5dGVzIGNhbGxlZCBzZW1pYmxvY2tzLgotICogICAgICAgICAgICAgICAgICA8dWw+PGxpPkZvciBLVyBtb2RlOiBhIG11bHRpcGxlIG9mIDggYnl0ZXMgYmV0d2VlbiAxNiBhbmQgMl41Ny04IGluY2x1c2l2ZS4gPC9saT4KLSAqICAgICAgICAgICAgICAgICAgPGxpPkZvciBLV1AgbW9kZTogYW55IGxlbmd0aCBiZXR3ZWVuIDEgYW5kIDJeMzItMSBpbmNsdXNpdmUuPC9saT48L3VsPgotICogXHBhcmFtW291dF0gb3V0cHV0ICAgIFRoZSBidWZmZXIgaG9sZGluZyB0aGUgb3V0cHV0IGRhdGEuCi0gKiAgICAgICAgICAgICAgICAgIDx1bD48bGk+Rm9yIEtXIG1vZGU6IE11c3QgYmUgYXQgbGVhc3QgOCBieXRlcyBsYXJnZXIgdGhhbiBccCBpbl9sZW4uPC9saT4KLSAqICAgICAgICAgICAgICAgICAgPGxpPkZvciBLV1AgbW9kZTogTXVzdCBiZSBhdCBsZWFzdCA4IGJ5dGVzIGxhcmdlciByb3VuZGVkIHVwIHRvIGEgbXVsdGlwbGUgb2YKLSAqICAgICAgICAgICAgICAgICAgOCBieXRlcyBmb3IgS1dQICgxNSBieXRlcyBhdCBtb3N0KS48L2xpPjwvdWw+Ci0gKiBccGFyYW1bb3V0XSBvdXRfbGVuIFRoZSBudW1iZXIgb2YgYnl0ZXMgd3JpdHRlbiB0byB0aGUgb3V0cHV0IGJ1ZmZlci4gXGMgMCBvbiBmYWlsdXJlLgotICogXHBhcmFtW2luXSBvdXRfc2l6ZSBUaGUgY2FwYWNpdHkgb2YgdGhlIG91dHB1dCBidWZmZXIuCi0gKgotICogXHJldHVybiAgICAgICAgICBcYyAwIG9uIHN1Y2Nlc3MuCi0gKiBccmV0dXJuICAgICAgICAgIFxjIE1CRURUTFNfRVJSX0NJUEhFUl9CQURfSU5QVVRfREFUQSBmb3IgaW52YWxpZCBpbnB1dCBsZW5ndGguCi0gKiBccmV0dXJuICAgICAgICAgIGNpcGhlci1zcGVjaWZpYyBlcnJvciBjb2RlIG9uIGZhaWx1cmUgb2YgdGhlIHVuZGVybHlpbmcgY2lwaGVyLgotICovCi1pbnQgbWJlZHRsc19uaXN0X2t3X3dyYXAobWJlZHRsc19uaXN0X2t3X2NvbnRleHQgKmN0eCwgbWJlZHRsc19uaXN0X2t3X21vZGVfdCBtb2RlLAotICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgKmlucHV0LCBzaXplX3QgaW5fbGVuLAotICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGNoYXIgKm91dHB1dCwgc2l6ZV90ICpvdXRfbGVuLCBzaXplX3Qgb3V0X3NpemUpOwotCi0vKioKLSAqIFxicmllZiAgICAgICAgICAgVGhpcyBmdW5jdGlvbiBkZWNyeXB0cyBhIGJ1ZmZlciB1c2luZyBrZXkgd3JhcHBpbmcuCi0gKgotICogXHBhcmFtIGN0eCAgICAgICBUaGUga2V5IHdyYXBwaW5nIGNvbnRleHQgdG8gdXNlIGZvciBkZWNyeXB0aW9uLgotICogXHBhcmFtIG1vZGUgICAgICBUaGUga2V5IHdyYXBwaW5nIG1vZGUgdG8gdXNlIChNQkVEVExTX0tXX01PREVfS1cgb3IgTUJFRFRMU19LV19NT0RFX0tXUCkKLSAqIFxwYXJhbSBpbnB1dCAgICAgVGhlIGJ1ZmZlciBob2xkaW5nIHRoZSBpbnB1dCBkYXRhLgotICogXHBhcmFtIGluX2xlbiAgICBUaGUgbGVuZ3RoIG9mIHRoZSBpbnB1dCBkYXRhIGluIEJ5dGVzLgotICogICAgICAgICAgICAgICAgICBUaGUgaW5wdXQgdXNlcyB1bml0cyBvZiA4IEJ5dGVzIGNhbGxlZCBzZW1pYmxvY2tzLgotICogICAgICAgICAgICAgICAgICBUaGUgaW5wdXQgbXVzdCBiZSBhIG11bHRpcGxlIG9mIHNlbWlibG9ja3MuCi0gKiAgICAgICAgICAgICAgICAgIDx1bD48bGk+Rm9yIEtXIG1vZGU6IGEgbXVsdGlwbGUgb2YgOCBieXRlcyBiZXR3ZWVuIDI0IGFuZCAyXjU3IGluY2x1c2l2ZS4gPC9saT4KLSAqICAgICAgICAgICAgICAgICAgPGxpPkZvciBLV1AgbW9kZTogYSBtdWx0aXBsZSBvZiA4IGJ5dGVzIGJldHdlZW4gMTYgYW5kIDJeMzIgaW5jbHVzaXZlLjwvbGk+PC91bD4KLSAqIFxwYXJhbVtvdXRdIG91dHB1dCAgICBUaGUgYnVmZmVyIGhvbGRpbmcgdGhlIG91dHB1dCBkYXRhLgotICogICAgICAgICAgICAgICAgICBUaGUgb3V0cHV0IGJ1ZmZlcidzIG1pbmltYWwgbGVuZ3RoIGlzIDggYnl0ZXMgc2hvcnRlciB0aGFuIFxwIGluX2xlbi4KLSAqIFxwYXJhbVtvdXRdIG91dF9sZW4gVGhlIG51bWJlciBvZiBieXRlcyB3cml0dGVuIHRvIHRoZSBvdXRwdXQgYnVmZmVyLiBcYyAwIG9uIGZhaWx1cmUuCi0gKiAgICAgICAgICAgICAgICAgIEZvciBLV1AgbW9kZSwgdGhlIGxlbmd0aCBjb3VsZCBiZSB1cCB0byAxNSBieXRlcyBzaG9ydGVyIHRoYW4gXHAgaW5fbGVuLAotICogICAgICAgICAgICAgICAgICBkZXBlbmRpbmcgb24gaG93IG11Y2ggcGFkZGluZyB3YXMgYWRkZWQgdG8gdGhlIGRhdGEuCi0gKiBccGFyYW1baW5dIG91dF9zaXplIFRoZSBjYXBhY2l0eSBvZiB0aGUgb3V0cHV0IGJ1ZmZlci4KLSAqCi0gKiBccmV0dXJuICAgICAgICAgIFxjIDAgb24gc3VjY2Vzcy4KLSAqIFxyZXR1cm4gICAgICAgICAgXGMgTUJFRFRMU19FUlJfQ0lQSEVSX0JBRF9JTlBVVF9EQVRBIGZvciBpbnZhbGlkIGlucHV0IGxlbmd0aC4KLSAqIFxyZXR1cm4gICAgICAgICAgXGMgTUJFRFRMU19FUlJfQ0lQSEVSX0FVVEhfRkFJTEVEIGZvciB2ZXJpZmljYXRpb24gZmFpbHVyZSBvZiB0aGUgY2lwaGVydGV4dC4KLSAqIFxyZXR1cm4gICAgICAgICAgY2lwaGVyLXNwZWNpZmljIGVycm9yIGNvZGUgb24gZmFpbHVyZSBvZiB0aGUgdW5kZXJseWluZyBjaXBoZXIuCi0gKi8KLWludCBtYmVkdGxzX25pc3Rfa3dfdW53cmFwKG1iZWR0bHNfbmlzdF9rd19jb250ZXh0ICpjdHgsIG1iZWR0bHNfbmlzdF9rd19tb2RlX3QgbW9kZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgKmlucHV0LCBzaXplX3QgaW5fbGVuLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgY2hhciAqb3V0cHV0LCBzaXplX3QgKm91dF9sZW4sIHNpemVfdCBvdXRfc2l6ZSk7Ci0KLQotI2lmIGRlZmluZWQoTUJFRFRMU19TRUxGX1RFU1QpICYmIGRlZmluZWQoTUJFRFRMU19BRVNfQykKLS8qKgotICogXGJyaWVmICAgICAgICAgIFRoZSBrZXkgd3JhcHBpbmcgY2hlY2t1cCByb3V0aW5lLgotICoKLSAqIFxyZXR1cm4gICAgICAgICBcYyAwIG9uIHN1Y2Nlc3MuCi0gKiBccmV0dXJuICAgICAgICAgXGMgMSBvbiBmYWlsdXJlLgotICovCi1pbnQgbWJlZHRsc19uaXN0X2t3X3NlbGZfdGVzdChpbnQgdmVyYm9zZSk7Ci0jZW5kaWYgLyogTUJFRFRMU19TRUxGX1RFU1QgJiYgTUJFRFRMU19BRVNfQyAqLwotCi0jaWZkZWYgX19jcGx1c3BsdXMKLX0KLSNlbmRpZgotCi0jZW5kaWYgLyogTUJFRFRMU19OSVNUX0tXX0ggKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvbWJlZHRscy9wb2x5MTMwNS5oIGIvaW5jbHVkZS9tYmVkdGxzL3BvbHkxMzA1LmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDYxYmNhYTYuLjAwMDAwMDAKLS0tIGEvaW5jbHVkZS9tYmVkdGxzL3BvbHkxMzA1LmgKKysrIC9kZXYvbnVsbApAQCAtMSwxNjggKzAsMCBAQAotLyoqCi0gKiBcZmlsZSBwb2x5MTMwNS5oCi0gKgotICogXGJyaWVmICAgVGhpcyBmaWxlIGNvbnRhaW5zIFBvbHkxMzA1IGRlZmluaXRpb25zIGFuZCBmdW5jdGlvbnMuCi0gKgotICogICAgICAgICAgUG9seTEzMDUgaXMgYSBvbmUtdGltZSBtZXNzYWdlIGF1dGhlbnRpY2F0b3IgdGhhdCBjYW4gYmUgdXNlZCB0bwotICogICAgICAgICAgYXV0aGVudGljYXRlIG1lc3NhZ2VzLiBQb2x5MTMwNS1BRVMgd2FzIGNyZWF0ZWQgYnkgRGFuaWVsCi0gKiAgICAgICAgICBCZXJuc3RlaW4gaHR0cHM6Ly9jci55cC50by9tYWMvcG9seTEzMDUtMjAwNTAzMjkucGRmIFRoZSBnZW5lcmljCi0gKiAgICAgICAgICBQb2x5MTMwNSBhbGdvcml0aG0gKG5vdCB0aWVkIHRvIEFFUykgd2FzIGFsc28gc3RhbmRhcmRpemVkIGluIFJGQwotICogICAgICAgICAgNzUzOS4KLSAqCi0gKiBcYXV0aG9yIERhbmllbCBLaW5nIDxkYW1ha2kuZ2hAZ21haWwuY29tPgotICovCi0KLS8qCi0gKiAgQ29weXJpZ2h0IFRoZSBNYmVkIFRMUyBDb250cmlidXRvcnMKLSAqICBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMCBPUiBHUEwtMi4wLW9yLWxhdGVyCi0gKi8KLQotI2lmbmRlZiBNQkVEVExTX1BPTFkxMzA1X0gKLSNkZWZpbmUgTUJFRFRMU19QT0xZMTMwNV9ICi0jaW5jbHVkZSAibWJlZHRscy9wcml2YXRlX2FjY2Vzcy5oIgotCi0jaW5jbHVkZSAibWJlZHRscy9idWlsZF9pbmZvLmgiCi0KLSNpbmNsdWRlIDxzdGRpbnQuaD4KLSNpbmNsdWRlIDxzdGRkZWYuaD4KLQotLyoqIEludmFsaWQgaW5wdXQgcGFyYW1ldGVyKHMpLiAqLwotI2RlZmluZSBNQkVEVExTX0VSUl9QT0xZMTMwNV9CQURfSU5QVVRfREFUQSAgICAgICAgIC0weDAwNTcKLQotI2lmZGVmIF9fY3BsdXNwbHVzCi1leHRlcm4gIkMiIHsKLSNlbmRpZgotCi0jaWYgIWRlZmluZWQoTUJFRFRMU19QT0xZMTMwNV9BTFQpCi0KLXR5cGVkZWYgc3RydWN0IG1iZWR0bHNfcG9seTEzMDVfY29udGV4dCB7Ci0gICAgdWludDMyX3QgTUJFRFRMU19QUklWQVRFKHIpWzRdOyAgICAgIC8qKiBUaGUgdmFsdWUgZm9yICdyJyAobG93IDEyOCBiaXRzIG9mIHRoZSBrZXkpLiAqLwotICAgIHVpbnQzMl90IE1CRURUTFNfUFJJVkFURShzKVs0XTsgICAgICAvKiogVGhlIHZhbHVlIGZvciAncycgKGhpZ2ggMTI4IGJpdHMgb2YgdGhlIGtleSkuICovCi0gICAgdWludDMyX3QgTUJFRFRMU19QUklWQVRFKGFjYylbNV07ICAgIC8qKiBUaGUgYWNjdW11bGF0b3IgbnVtYmVyLiAqLwotICAgIHVpbnQ4X3QgTUJFRFRMU19QUklWQVRFKHF1ZXVlKVsxNl07ICAvKiogVGhlIGN1cnJlbnQgcGFydGlhbCBibG9jayBvZiBkYXRhLiAqLwotICAgIHNpemVfdCBNQkVEVExTX1BSSVZBVEUocXVldWVfbGVuKTsgICAvKiogVGhlIG51bWJlciBvZiBieXRlcyBzdG9yZWQgaW4gJ3F1ZXVlJy4gKi8KLX0KLW1iZWR0bHNfcG9seTEzMDVfY29udGV4dDsKLQotI2Vsc2UgIC8qIE1CRURUTFNfUE9MWTEzMDVfQUxUICovCi0jaW5jbHVkZSAicG9seTEzMDVfYWx0LmgiCi0jZW5kaWYgLyogTUJFRFRMU19QT0xZMTMwNV9BTFQgKi8KLQotLyoqCi0gKiBcYnJpZWYgICAgICAgICAgIFRoaXMgZnVuY3Rpb24gaW5pdGlhbGl6ZXMgdGhlIHNwZWNpZmllZCBQb2x5MTMwNSBjb250ZXh0LgotICoKLSAqICAgICAgICAgICAgICAgICAgSXQgbXVzdCBiZSB0aGUgZmlyc3QgQVBJIGNhbGxlZCBiZWZvcmUgdXNpbmcKLSAqICAgICAgICAgICAgICAgICAgdGhlIGNvbnRleHQuCi0gKgotICogICAgICAgICAgICAgICAgICBJdCBpcyB1c3VhbGx5IGZvbGxvd2VkIGJ5IGEgY2FsbCB0bwotICogICAgICAgICAgICAgICAgICBcYyBtYmVkdGxzX3BvbHkxMzA1X3N0YXJ0cygpLCB0aGVuIG9uZSBvciBtb3JlIGNhbGxzIHRvCi0gKiAgICAgICAgICAgICAgICAgIFxjIG1iZWR0bHNfcG9seTEzMDVfdXBkYXRlKCksIHRoZW4gb25lIGNhbGwgdG8KLSAqICAgICAgICAgICAgICAgICAgXGMgbWJlZHRsc19wb2x5MTMwNV9maW5pc2goKSwgdGhlbiBmaW5hbGx5Ci0gKiAgICAgICAgICAgICAgICAgIFxjIG1iZWR0bHNfcG9seTEzMDVfZnJlZSgpLgotICoKLSAqIFxwYXJhbSBjdHggICAgICAgVGhlIFBvbHkxMzA1IGNvbnRleHQgdG8gaW5pdGlhbGl6ZS4gVGhpcyBtdXN0Ci0gKiAgICAgICAgICAgICAgICAgIG5vdCBiZSBcYyBOVUxMLgotICovCi12b2lkIG1iZWR0bHNfcG9seTEzMDVfaW5pdChtYmVkdGxzX3BvbHkxMzA1X2NvbnRleHQgKmN0eCk7Ci0KLS8qKgotICogXGJyaWVmICAgICAgICAgICBUaGlzIGZ1bmN0aW9uIHJlbGVhc2VzIGFuZCBjbGVhcnMgdGhlIHNwZWNpZmllZAotICogICAgICAgICAgICAgICAgICBQb2x5MTMwNSBjb250ZXh0LgotICoKLSAqIFxwYXJhbSBjdHggICAgICAgVGhlIFBvbHkxMzA1IGNvbnRleHQgdG8gY2xlYXIuIFRoaXMgbWF5IGJlIFxjIE5VTEwsIGluIHdoaWNoCi0gKiAgICAgICAgICAgICAgICAgIGNhc2UgdGhpcyBmdW5jdGlvbiBpcyBhIG5vLW9wLiBJZiBpdCBpcyBub3QgXGMgTlVMTCwgaXQgbXVzdAotICogICAgICAgICAgICAgICAgICBwb2ludCB0byBhbiBpbml0aWFsaXplZCBQb2x5MTMwNSBjb250ZXh0LgotICovCi12b2lkIG1iZWR0bHNfcG9seTEzMDVfZnJlZShtYmVkdGxzX3BvbHkxMzA1X2NvbnRleHQgKmN0eCk7Ci0KLS8qKgotICogXGJyaWVmICAgICAgICAgICBUaGlzIGZ1bmN0aW9uIHNldHMgdGhlIG9uZS10aW1lIGF1dGhlbnRpY2F0aW9uIGtleS4KLSAqCi0gKiBcd2FybmluZyAgICAgICAgIFRoZSBrZXkgbXVzdCBiZSB1bmlxdWUgYW5kIHVucHJlZGljdGFibGUgZm9yIGVhY2gKLSAqICAgICAgICAgICAgICAgICAgaW52b2NhdGlvbiBvZiBQb2x5MTMwNS4KLSAqCi0gKiBccGFyYW0gY3R4ICAgICAgIFRoZSBQb2x5MTMwNSBjb250ZXh0IHRvIHdoaWNoIHRoZSBrZXkgc2hvdWxkIGJlIGJvdW5kLgotICogICAgICAgICAgICAgICAgICBUaGlzIG11c3QgYmUgaW5pdGlhbGl6ZWQuCi0gKiBccGFyYW0ga2V5ICAgICAgIFRoZSBidWZmZXIgY29udGFpbmluZyB0aGUgXGMgMzIgQnl0ZSAoXGMgMjU2IEJpdCkga2V5LgotICoKLSAqIFxyZXR1cm4gICAgICAgICAgXGMgMCBvbiBzdWNjZXNzLgotICogXHJldHVybiAgICAgICAgICBBIG5lZ2F0aXZlIGVycm9yIGNvZGUgb24gZmFpbHVyZS4KLSAqLwotaW50IG1iZWR0bHNfcG9seTEzMDVfc3RhcnRzKG1iZWR0bHNfcG9seTEzMDVfY29udGV4dCAqY3R4LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIga2V5WzMyXSk7Ci0KLS8qKgotICogXGJyaWVmICAgICAgICAgICBUaGlzIGZ1bmN0aW9ucyBmZWVkcyBhbiBpbnB1dCBidWZmZXIgaW50byBhbiBvbmdvaW5nCi0gKiAgICAgICAgICAgICAgICAgIFBvbHkxMzA1IGNvbXB1dGF0aW9uLgotICoKLSAqICAgICAgICAgICAgICAgICAgSXQgaXMgY2FsbGVkIGJldHdlZW4gXGMgbWJlZHRsc19jaXBoZXJfcG9seTEzMDVfc3RhcnRzKCkgYW5kCi0gKiAgICAgICAgICAgICAgICAgIFxjIG1iZWR0bHNfY2lwaGVyX3BvbHkxMzA1X2ZpbmlzaCgpLgotICogICAgICAgICAgICAgICAgICBJdCBjYW4gYmUgY2FsbGVkIHJlcGVhdGVkbHkgdG8gcHJvY2VzcyBhIHN0cmVhbSBvZiBkYXRhLgotICoKLSAqIFxwYXJhbSBjdHggICAgICAgVGhlIFBvbHkxMzA1IGNvbnRleHQgdG8gdXNlIGZvciB0aGUgUG9seTEzMDUgb3BlcmF0aW9uLgotICogICAgICAgICAgICAgICAgICBUaGlzIG11c3QgYmUgaW5pdGlhbGl6ZWQgYW5kIGJvdW5kIHRvIGEga2V5LgotICogXHBhcmFtIGlsZW4gICAgICBUaGUgbGVuZ3RoIG9mIHRoZSBpbnB1dCBkYXRhIGluIEJ5dGVzLgotICogICAgICAgICAgICAgICAgICBBbnkgdmFsdWUgaXMgYWNjZXB0ZWQuCi0gKiBccGFyYW0gaW5wdXQgICAgIFRoZSBidWZmZXIgaG9sZGluZyB0aGUgaW5wdXQgZGF0YS4KLSAqICAgICAgICAgICAgICAgICAgVGhpcyBwb2ludGVyIGNhbiBiZSBcYyBOVUxMIGlmIGBpbGVuID09IDBgLgotICoKLSAqIFxyZXR1cm4gICAgICAgICAgXGMgMCBvbiBzdWNjZXNzLgotICogXHJldHVybiAgICAgICAgICBBIG5lZ2F0aXZlIGVycm9yIGNvZGUgb24gZmFpbHVyZS4KLSAqLwotaW50IG1iZWR0bHNfcG9seTEzMDVfdXBkYXRlKG1iZWR0bHNfcG9seTEzMDVfY29udGV4dCAqY3R4LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgKmlucHV0LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBpbGVuKTsKLQotLyoqCi0gKiBcYnJpZWYgICAgICAgICAgIFRoaXMgZnVuY3Rpb24gZ2VuZXJhdGVzIHRoZSBQb2x5MTMwNSBNZXNzYWdlCi0gKiAgICAgICAgICAgICAgICAgIEF1dGhlbnRpY2F0aW9uIENvZGUgKE1BQykuCi0gKgotICogXHBhcmFtIGN0eCAgICAgICBUaGUgUG9seTEzMDUgY29udGV4dCB0byB1c2UgZm9yIHRoZSBQb2x5MTMwNSBvcGVyYXRpb24uCi0gKiAgICAgICAgICAgICAgICAgIFRoaXMgbXVzdCBiZSBpbml0aWFsaXplZCBhbmQgYm91bmQgdG8gYSBrZXkuCi0gKiBccGFyYW0gbWFjICAgICAgIFRoZSBidWZmZXIgdG8gd2hlcmUgdGhlIE1BQyBpcyB3cml0dGVuLiBUaGlzIG11c3QKLSAqICAgICAgICAgICAgICAgICAgYmUgYSB3cml0YWJsZSBidWZmZXIgb2YgbGVuZ3RoIFxjIDE2IEJ5dGVzLgotICoKLSAqIFxyZXR1cm4gICAgICAgICAgXGMgMCBvbiBzdWNjZXNzLgotICogXHJldHVybiAgICAgICAgICBBIG5lZ2F0aXZlIGVycm9yIGNvZGUgb24gZmFpbHVyZS4KLSAqLwotaW50IG1iZWR0bHNfcG9seTEzMDVfZmluaXNoKG1iZWR0bHNfcG9seTEzMDVfY29udGV4dCAqY3R4LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGNoYXIgbWFjWzE2XSk7Ci0KLS8qKgotICogXGJyaWVmICAgICAgICAgICBUaGlzIGZ1bmN0aW9uIGNhbGN1bGF0ZXMgdGhlIFBvbHkxMzA1IE1BQyBvZiB0aGUgaW5wdXQKLSAqICAgICAgICAgICAgICAgICAgYnVmZmVyIHdpdGggdGhlIHByb3ZpZGVkIGtleS4KLSAqCi0gKiBcd2FybmluZyAgICAgICAgIFRoZSBrZXkgbXVzdCBiZSB1bmlxdWUgYW5kIHVucHJlZGljdGFibGUgZm9yIGVhY2gKLSAqICAgICAgICAgICAgICAgICAgaW52b2NhdGlvbiBvZiBQb2x5MTMwNS4KLSAqCi0gKiBccGFyYW0ga2V5ICAgICAgIFRoZSBidWZmZXIgY29udGFpbmluZyB0aGUgXGMgMzIgQnl0ZSAoXGMgMjU2IEJpdCkga2V5LgotICogXHBhcmFtIGlsZW4gICAgICBUaGUgbGVuZ3RoIG9mIHRoZSBpbnB1dCBkYXRhIGluIEJ5dGVzLgotICogICAgICAgICAgICAgICAgICBBbnkgdmFsdWUgaXMgYWNjZXB0ZWQuCi0gKiBccGFyYW0gaW5wdXQgICAgIFRoZSBidWZmZXIgaG9sZGluZyB0aGUgaW5wdXQgZGF0YS4KLSAqICAgICAgICAgICAgICAgICAgVGhpcyBwb2ludGVyIGNhbiBiZSBcYyBOVUxMIGlmIGBpbGVuID09IDBgLgotICogXHBhcmFtIG1hYyAgICAgICBUaGUgYnVmZmVyIHRvIHdoZXJlIHRoZSBNQUMgaXMgd3JpdHRlbi4gVGhpcyBtdXN0IGJlCi0gKiAgICAgICAgICAgICAgICAgIGEgd3JpdGFibGUgYnVmZmVyIG9mIGxlbmd0aCBcYyAxNiBCeXRlcy4KLSAqCi0gKiBccmV0dXJuICAgICAgICAgIFxjIDAgb24gc3VjY2Vzcy4KLSAqIFxyZXR1cm4gICAgICAgICAgQSBuZWdhdGl2ZSBlcnJvciBjb2RlIG9uIGZhaWx1cmUuCi0gKi8KLWludCBtYmVkdGxzX3BvbHkxMzA1X21hYyhjb25zdCB1bnNpZ25lZCBjaGFyIGtleVszMl0sCi0gICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdW5zaWduZWQgY2hhciAqaW5wdXQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IGlsZW4sCi0gICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgY2hhciBtYWNbMTZdKTsKLQotI2lmIGRlZmluZWQoTUJFRFRMU19TRUxGX1RFU1QpCi0vKioKLSAqIFxicmllZiAgICAgICAgICAgVGhlIFBvbHkxMzA1IGNoZWNrdXAgcm91dGluZS4KLSAqCi0gKiBccmV0dXJuICAgICAgICAgIFxjIDAgb24gc3VjY2Vzcy4KLSAqIFxyZXR1cm4gICAgICAgICAgXGMgMSBvbiBmYWlsdXJlLgotICovCi1pbnQgbWJlZHRsc19wb2x5MTMwNV9zZWxmX3Rlc3QoaW50IHZlcmJvc2UpOwotI2VuZGlmIC8qIE1CRURUTFNfU0VMRl9URVNUICovCi0KLSNpZmRlZiBfX2NwbHVzcGx1cwotfQotI2VuZGlmCi0KLSNlbmRpZiAvKiBNQkVEVExTX1BPTFkxMzA1X0ggKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvbWJlZHRscy9yaXBlbWQxNjAuaCBiL2luY2x1ZGUvbWJlZHRscy9yaXBlbWQxNjAuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMjc5ZjkyYi4uMDAwMDAwMAotLS0gYS9pbmNsdWRlL21iZWR0bHMvcmlwZW1kMTYwLmgKKysrIC9kZXYvbnVsbApAQCAtMSwxMzYgKzAsMCBAQAotLyoqCi0gKiBcZmlsZSByaXBlbWQxNjAuaAotICoKLSAqIFxicmllZiBSSVBFIE1ELTE2MCBtZXNzYWdlIGRpZ2VzdAotICovCi0vKgotICogIENvcHlyaWdodCBUaGUgTWJlZCBUTFMgQ29udHJpYnV0b3JzCi0gKiAgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjAgT1IgR1BMLTIuMC1vci1sYXRlcgotICovCi0jaWZuZGVmIE1CRURUTFNfUklQRU1EMTYwX0gKLSNkZWZpbmUgTUJFRFRMU19SSVBFTUQxNjBfSAotI2luY2x1ZGUgIm1iZWR0bHMvcHJpdmF0ZV9hY2Nlc3MuaCIKLQotI2luY2x1ZGUgIm1iZWR0bHMvYnVpbGRfaW5mby5oIgotCi0jaW5jbHVkZSA8c3RkZGVmLmg+Ci0jaW5jbHVkZSA8c3RkaW50Lmg+Ci0KLSNpZmRlZiBfX2NwbHVzcGx1cwotZXh0ZXJuICJDIiB7Ci0jZW5kaWYKLQotI2lmICFkZWZpbmVkKE1CRURUTFNfUklQRU1EMTYwX0FMVCkKLS8vIFJlZ3VsYXIgaW1wbGVtZW50YXRpb24KLS8vCi0KLS8qKgotICogXGJyaWVmICAgICAgICAgIFJJUEVNRC0xNjAgY29udGV4dCBzdHJ1Y3R1cmUKLSAqLwotdHlwZWRlZiBzdHJ1Y3QgbWJlZHRsc19yaXBlbWQxNjBfY29udGV4dCB7Ci0gICAgdWludDMyX3QgTUJFRFRMU19QUklWQVRFKHRvdGFsKVsyXTsgICAgICAgICAgLyohPCBudW1iZXIgb2YgYnl0ZXMgcHJvY2Vzc2VkICAqLwotICAgIHVpbnQzMl90IE1CRURUTFNfUFJJVkFURShzdGF0ZSlbNV07ICAgICAgICAgIC8qITwgaW50ZXJtZWRpYXRlIGRpZ2VzdCBzdGF0ZSAgKi8KLSAgICB1bnNpZ25lZCBjaGFyIE1CRURUTFNfUFJJVkFURShidWZmZXIpWzY0XTsgICAvKiE8IGRhdGEgYmxvY2sgYmVpbmcgcHJvY2Vzc2VkICovCi19Ci1tYmVkdGxzX3JpcGVtZDE2MF9jb250ZXh0OwotCi0jZWxzZSAgLyogTUJFRFRMU19SSVBFTUQxNjBfQUxUICovCi0jaW5jbHVkZSAicmlwZW1kMTYwX2FsdC5oIgotI2VuZGlmIC8qIE1CRURUTFNfUklQRU1EMTYwX0FMVCAqLwotCi0vKioKLSAqIFxicmllZiAgICAgICAgICBJbml0aWFsaXplIFJJUEVNRC0xNjAgY29udGV4dAotICoKLSAqIFxwYXJhbSBjdHggICAgICBSSVBFTUQtMTYwIGNvbnRleHQgdG8gYmUgaW5pdGlhbGl6ZWQKLSAqLwotdm9pZCBtYmVkdGxzX3JpcGVtZDE2MF9pbml0KG1iZWR0bHNfcmlwZW1kMTYwX2NvbnRleHQgKmN0eCk7Ci0KLS8qKgotICogXGJyaWVmICAgICAgICAgIENsZWFyIFJJUEVNRC0xNjAgY29udGV4dAotICoKLSAqIFxwYXJhbSBjdHggICAgICBSSVBFTUQtMTYwIGNvbnRleHQgdG8gYmUgY2xlYXJlZAotICovCi12b2lkIG1iZWR0bHNfcmlwZW1kMTYwX2ZyZWUobWJlZHRsc19yaXBlbWQxNjBfY29udGV4dCAqY3R4KTsKLQotLyoqCi0gKiBcYnJpZWYgICAgICAgICAgQ2xvbmUgKHRoZSBzdGF0ZSBvZikgYSBSSVBFTUQtMTYwIGNvbnRleHQKLSAqCi0gKiBccGFyYW0gZHN0ICAgICAgVGhlIGRlc3RpbmF0aW9uIGNvbnRleHQKLSAqIFxwYXJhbSBzcmMgICAgICBUaGUgY29udGV4dCB0byBiZSBjbG9uZWQKLSAqLwotdm9pZCBtYmVkdGxzX3JpcGVtZDE2MF9jbG9uZShtYmVkdGxzX3JpcGVtZDE2MF9jb250ZXh0ICpkc3QsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IG1iZWR0bHNfcmlwZW1kMTYwX2NvbnRleHQgKnNyYyk7Ci0KLS8qKgotICogXGJyaWVmICAgICAgICAgIFJJUEVNRC0xNjAgY29udGV4dCBzZXR1cAotICoKLSAqIFxwYXJhbSBjdHggICAgICBjb250ZXh0IHRvIGJlIGluaXRpYWxpemVkCi0gKgotICogXHJldHVybiAgICAgICAgIDAgaWYgc3VjY2Vzc2Z1bAotICovCi1pbnQgbWJlZHRsc19yaXBlbWQxNjBfc3RhcnRzKG1iZWR0bHNfcmlwZW1kMTYwX2NvbnRleHQgKmN0eCk7Ci0KLS8qKgotICogXGJyaWVmICAgICAgICAgIFJJUEVNRC0xNjAgcHJvY2VzcyBidWZmZXIKLSAqCi0gKiBccGFyYW0gY3R4ICAgICAgUklQRU1ELTE2MCBjb250ZXh0Ci0gKiBccGFyYW0gaW5wdXQgICAgYnVmZmVyIGhvbGRpbmcgdGhlIGRhdGEKLSAqIFxwYXJhbSBpbGVuICAgICBsZW5ndGggb2YgdGhlIGlucHV0IGRhdGEKLSAqCi0gKiBccmV0dXJuICAgICAgICAgMCBpZiBzdWNjZXNzZnVsCi0gKi8KLWludCBtYmVkdGxzX3JpcGVtZDE2MF91cGRhdGUobWJlZHRsc19yaXBlbWQxNjBfY29udGV4dCAqY3R4LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1bnNpZ25lZCBjaGFyICppbnB1dCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IGlsZW4pOwotCi0vKioKLSAqIFxicmllZiAgICAgICAgICBSSVBFTUQtMTYwIGZpbmFsIGRpZ2VzdAotICoKLSAqIFxwYXJhbSBjdHggICAgICBSSVBFTUQtMTYwIGNvbnRleHQKLSAqIFxwYXJhbSBvdXRwdXQgICBSSVBFTUQtMTYwIGNoZWNrc3VtIHJlc3VsdAotICoKLSAqIFxyZXR1cm4gICAgICAgICAwIGlmIHN1Y2Nlc3NmdWwKLSAqLwotaW50IG1iZWR0bHNfcmlwZW1kMTYwX2ZpbmlzaChtYmVkdGxzX3JpcGVtZDE2MF9jb250ZXh0ICpjdHgsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGNoYXIgb3V0cHV0WzIwXSk7Ci0KLS8qKgotICogXGJyaWVmICAgICAgICAgIFJJUEVNRC0xNjAgcHJvY2VzcyBkYXRhIGJsb2NrIChpbnRlcm5hbCB1c2Ugb25seSkKLSAqCi0gKiBccGFyYW0gY3R4ICAgICAgUklQRU1ELTE2MCBjb250ZXh0Ci0gKiBccGFyYW0gZGF0YSAgICAgYnVmZmVyIGhvbGRpbmcgb25lIGJsb2NrIG9mIGRhdGEKLSAqCi0gKiBccmV0dXJuICAgICAgICAgMCBpZiBzdWNjZXNzZnVsCi0gKi8KLWludCBtYmVkdGxzX2ludGVybmFsX3JpcGVtZDE2MF9wcm9jZXNzKG1iZWR0bHNfcmlwZW1kMTYwX2NvbnRleHQgKmN0eCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgZGF0YVs2NF0pOwotCi0vKioKLSAqIFxicmllZiAgICAgICAgICBPdXRwdXQgPSBSSVBFTUQtMTYwKCBpbnB1dCBidWZmZXIgKQotICoKLSAqIFxwYXJhbSBpbnB1dCAgICBidWZmZXIgaG9sZGluZyB0aGUgZGF0YQotICogXHBhcmFtIGlsZW4gICAgIGxlbmd0aCBvZiB0aGUgaW5wdXQgZGF0YQotICogXHBhcmFtIG91dHB1dCAgIFJJUEVNRC0xNjAgY2hlY2tzdW0gcmVzdWx0Ci0gKgotICogXHJldHVybiAgICAgICAgIDAgaWYgc3VjY2Vzc2Z1bAotICovCi1pbnQgbWJlZHRsc19yaXBlbWQxNjAoY29uc3QgdW5zaWduZWQgY2hhciAqaW5wdXQsCi0gICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IGlsZW4sCi0gICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgY2hhciBvdXRwdXRbMjBdKTsKLQotI2lmIGRlZmluZWQoTUJFRFRMU19TRUxGX1RFU1QpCi0KLS8qKgotICogXGJyaWVmICAgICAgICAgIENoZWNrdXAgcm91dGluZQotICoKLSAqIFxyZXR1cm4gICAgICAgICAwIGlmIHN1Y2Nlc3NmdWwsIG9yIDEgaWYgdGhlIHRlc3QgZmFpbGVkCi0gKi8KLWludCBtYmVkdGxzX3JpcGVtZDE2MF9zZWxmX3Rlc3QoaW50IHZlcmJvc2UpOwotCi0jZW5kaWYgLyogTUJFRFRMU19TRUxGX1RFU1QgKi8KLQotI2lmZGVmIF9fY3BsdXNwbHVzCi19Ci0jZW5kaWYKLQotI2VuZGlmIC8qIG1iZWR0bHNfcmlwZW1kMTYwLmggKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvbWJlZHRscy9yc2EuaCBiL2luY2x1ZGUvbWJlZHRscy9yc2EuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYzFlNzZiMy4uMDAwMDAwMAotLS0gYS9pbmNsdWRlL21iZWR0bHMvcnNhLmgKKysrIC9kZXYvbnVsbApAQCAtMSwxMTY0ICswLDAgQEAKLS8qKgotICogXGZpbGUgcnNhLmgKLSAqCi0gKiBcYnJpZWYgVGhpcyBmaWxlIHByb3ZpZGVzIGFuIEFQSSBmb3IgdGhlIFJTQSBwdWJsaWMta2V5IGNyeXB0b3N5c3RlbS4KLSAqCi0gKiBUaGUgUlNBIHB1YmxpYy1rZXkgY3J5cHRvc3lzdGVtIGlzIGRlZmluZWQgaW4gPGVtPlB1YmxpYy1LZXkKLSAqIENyeXB0b2dyYXBoeSBTdGFuZGFyZHMgKFBLQ1MpICMxIHYxLjU6IFJTQSBFbmNyeXB0aW9uPC9lbT4KLSAqIGFuZCA8ZW0+UHVibGljLUtleSBDcnlwdG9ncmFwaHkgU3RhbmRhcmRzIChQS0NTKSAjMSB2Mi4xOgotICogUlNBIENyeXB0b2dyYXBoeSBTcGVjaWZpY2F0aW9uczwvZW0+LgotICoKLSAqLwotLyoKLSAqICBDb3B5cmlnaHQgVGhlIE1iZWQgVExTIENvbnRyaWJ1dG9ycwotICogIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wIE9SIEdQTC0yLjAtb3ItbGF0ZXIKLSAqLwotI2lmbmRlZiBNQkVEVExTX1JTQV9ICi0jZGVmaW5lIE1CRURUTFNfUlNBX0gKLSNpbmNsdWRlICJtYmVkdGxzL3ByaXZhdGVfYWNjZXNzLmgiCi0KLSNpbmNsdWRlICJtYmVkdGxzL2J1aWxkX2luZm8uaCIKLQotI2luY2x1ZGUgIm1iZWR0bHMvYmlnbnVtLmgiCi0jaW5jbHVkZSAibWJlZHRscy9tZC5oIgotCi0jaWYgZGVmaW5lZChNQkVEVExTX1RIUkVBRElOR19DKQotI2luY2x1ZGUgIm1iZWR0bHMvdGhyZWFkaW5nLmgiCi0jZW5kaWYKLQotLyoKLSAqIFJTQSBFcnJvciBjb2RlcwotICovCi0vKiogQmFkIGlucHV0IHBhcmFtZXRlcnMgdG8gZnVuY3Rpb24uICovCi0jZGVmaW5lIE1CRURUTFNfRVJSX1JTQV9CQURfSU5QVVRfREFUQSAgICAgICAgICAgICAgICAgICAgLTB4NDA4MAotLyoqIElucHV0IGRhdGEgY29udGFpbnMgaW52YWxpZCBwYWRkaW5nIGFuZCBpcyByZWplY3RlZC4gKi8KLSNkZWZpbmUgTUJFRFRMU19FUlJfUlNBX0lOVkFMSURfUEFERElORyAgICAgICAgICAgICAgICAgICAtMHg0MTAwCi0vKiogU29tZXRoaW5nIGZhaWxlZCBkdXJpbmcgZ2VuZXJhdGlvbiBvZiBhIGtleS4gKi8KLSNkZWZpbmUgTUJFRFRMU19FUlJfUlNBX0tFWV9HRU5fRkFJTEVEICAgICAgICAgICAgICAgICAgICAtMHg0MTgwCi0vKiogS2V5IGZhaWxlZCB0byBwYXNzIHRoZSB2YWxpZGl0eSBjaGVjayBvZiB0aGUgbGlicmFyeS4gKi8KLSNkZWZpbmUgTUJFRFRMU19FUlJfUlNBX0tFWV9DSEVDS19GQUlMRUQgICAgICAgICAgICAgICAgICAtMHg0MjAwCi0vKiogVGhlIHB1YmxpYyBrZXkgb3BlcmF0aW9uIGZhaWxlZC4gKi8KLSNkZWZpbmUgTUJFRFRMU19FUlJfUlNBX1BVQkxJQ19GQUlMRUQgICAgICAgICAgICAgICAgICAgICAtMHg0MjgwCi0vKiogVGhlIHByaXZhdGUga2V5IG9wZXJhdGlvbiBmYWlsZWQuICovCi0jZGVmaW5lIE1CRURUTFNfRVJSX1JTQV9QUklWQVRFX0ZBSUxFRCAgICAgICAgICAgICAgICAgICAgLTB4NDMwMAotLyoqIFRoZSBQS0NTIzEgdmVyaWZpY2F0aW9uIGZhaWxlZC4gKi8KLSNkZWZpbmUgTUJFRFRMU19FUlJfUlNBX1ZFUklGWV9GQUlMRUQgICAgICAgICAgICAgICAgICAgICAtMHg0MzgwCi0vKiogVGhlIG91dHB1dCBidWZmZXIgZm9yIGRlY3J5cHRpb24gaXMgbm90IGxhcmdlIGVub3VnaC4gKi8KLSNkZWZpbmUgTUJFRFRMU19FUlJfUlNBX09VVFBVVF9UT09fTEFSR0UgICAgICAgICAgICAgICAgICAtMHg0NDAwCi0vKiogVGhlIHJhbmRvbSBnZW5lcmF0b3IgZmFpbGVkIHRvIGdlbmVyYXRlIG5vbi16ZXJvcy4gKi8KLSNkZWZpbmUgTUJFRFRMU19FUlJfUlNBX1JOR19GQUlMRUQgICAgICAgICAgICAgICAgICAgICAgICAtMHg0NDgwCi0KLS8qCi0gKiBSU0EgY29uc3RhbnRzCi0gKi8KLQotI2RlZmluZSBNQkVEVExTX1JTQV9QS0NTX1YxNSAgICAwIC8qKjwgVXNlIFBLQ1MjMSB2MS41IGVuY29kaW5nLiAqLwotI2RlZmluZSBNQkVEVExTX1JTQV9QS0NTX1YyMSAgICAxIC8qKjwgVXNlIFBLQ1MjMSB2Mi4xIGVuY29kaW5nLiAqLwotCi0jZGVmaW5lIE1CRURUTFNfUlNBX1NJR04gICAgICAgIDEgLyoqPCBJZGVudGlmaWVyIGZvciBSU0Egc2lnbmF0dXJlIG9wZXJhdGlvbnMuICovCi0jZGVmaW5lIE1CRURUTFNfUlNBX0NSWVBUICAgICAgIDIgLyoqPCBJZGVudGlmaWVyIGZvciBSU0EgZW5jcnlwdGlvbiBhbmQgZGVjcnlwdGlvbiBvcGVyYXRpb25zLiAqLwotCi0jZGVmaW5lIE1CRURUTFNfUlNBX1NBTFRfTEVOX0FOWSAgICAtMQotCi0vKgotICogVGhlIGFib3ZlIGNvbnN0YW50cyBtYXkgYmUgdXNlZCBldmVuIGlmIHRoZSBSU0EgbW9kdWxlIGlzIGNvbXBpbGUgb3V0LAotICogZWcgZm9yIGFsdGVybmF0aXZlIChQS0NTIzExKSBSU0EgaW1wbGVtZW50YXRpb25zIGluIHRoZSBQSyBsYXllcnMuCi0gKi8KLQotI2lmZGVmIF9fY3BsdXNwbHVzCi1leHRlcm4gIkMiIHsKLSNlbmRpZgotCi0jaWYgIWRlZmluZWQoTUJFRFRMU19SU0FfQUxUKQotLy8gUmVndWxhciBpbXBsZW1lbnRhdGlvbgotLy8KLQotI2lmICFkZWZpbmVkKE1CRURUTFNfUlNBX0dFTl9LRVlfTUlOX0JJVFMpCi0jZGVmaW5lIE1CRURUTFNfUlNBX0dFTl9LRVlfTUlOX0JJVFMgMTAyNAotI2VsaWYgTUJFRFRMU19SU0FfR0VOX0tFWV9NSU5fQklUUyA8IDEyOAotI2Vycm9yICJNQkVEVExTX1JTQV9HRU5fS0VZX01JTl9CSVRTIG11c3QgYmUgYXQgbGVhc3QgMTI4IGJpdHMiCi0jZW5kaWYKLQotLyoqCi0gKiBcYnJpZWYgICBUaGUgUlNBIGNvbnRleHQgc3RydWN0dXJlLgotICovCi10eXBlZGVmIHN0cnVjdCBtYmVkdGxzX3JzYV9jb250ZXh0IHsKLSAgICBpbnQgTUJFRFRMU19QUklWQVRFKHZlcik7ICAgICAgICAgICAgICAgICAgICAvKiE8ICBSZXNlcnZlZCBmb3IgaW50ZXJuYWwgcHVycG9zZXMuCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICogICAgRG8gbm90IHNldCB0aGlzIGZpZWxkIGluIGFwcGxpY2F0aW9uCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICogICAgY29kZS4gSXRzIG1lYW5pbmcgbWlnaHQgY2hhbmdlIHdpdGhvdXQKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiAgICBub3RpY2UuICovCi0gICAgc2l6ZV90IE1CRURUTFNfUFJJVkFURShsZW4pOyAgICAgICAgICAgICAgICAgLyohPCAgVGhlIHNpemUgb2YgXHAgTiBpbiBCeXRlcy4gKi8KLQotICAgIG1iZWR0bHNfbXBpIE1CRURUTFNfUFJJVkFURShOKTsgICAgICAgICAgICAgIC8qITwgIFRoZSBwdWJsaWMgbW9kdWx1cy4gKi8KLSAgICBtYmVkdGxzX21waSBNQkVEVExTX1BSSVZBVEUoRSk7ICAgICAgICAgICAgICAvKiE8ICBUaGUgcHVibGljIGV4cG9uZW50LiAqLwotCi0gICAgbWJlZHRsc19tcGkgTUJFRFRMU19QUklWQVRFKEQpOyAgICAgICAgICAgICAgLyohPCAgVGhlIHByaXZhdGUgZXhwb25lbnQuICovCi0gICAgbWJlZHRsc19tcGkgTUJFRFRMU19QUklWQVRFKFApOyAgICAgICAgICAgICAgLyohPCAgVGhlIGZpcnN0IHByaW1lIGZhY3Rvci4gKi8KLSAgICBtYmVkdGxzX21waSBNQkVEVExTX1BSSVZBVEUoUSk7ICAgICAgICAgICAgICAvKiE8ICBUaGUgc2Vjb25kIHByaW1lIGZhY3Rvci4gKi8KLQotICAgIG1iZWR0bHNfbXBpIE1CRURUTFNfUFJJVkFURShEUCk7ICAgICAgICAgICAgIC8qITwgIDxjb2RlPkQgJSAoUCAtIDEpPC9jb2RlPi4gKi8KLSAgICBtYmVkdGxzX21waSBNQkVEVExTX1BSSVZBVEUoRFEpOyAgICAgICAgICAgICAvKiE8ICA8Y29kZT5EICUgKFEgLSAxKTwvY29kZT4uICovCi0gICAgbWJlZHRsc19tcGkgTUJFRFRMU19QUklWQVRFKFFQKTsgICAgICAgICAgICAgLyohPCAgPGNvZGU+MSAvIChRICUgUCk8L2NvZGU+LiAqLwotCi0gICAgbWJlZHRsc19tcGkgTUJFRFRMU19QUklWQVRFKFJOKTsgICAgICAgICAgICAgLyohPCAgY2FjaGVkIDxjb2RlPlJeMiBtb2QgTjwvY29kZT4uICovCi0KLSAgICBtYmVkdGxzX21waSBNQkVEVExTX1BSSVZBVEUoUlApOyAgICAgICAgICAgICAvKiE8ICBjYWNoZWQgPGNvZGU+Ul4yIG1vZCBQPC9jb2RlPi4gKi8KLSAgICBtYmVkdGxzX21waSBNQkVEVExTX1BSSVZBVEUoUlEpOyAgICAgICAgICAgICAvKiE8ICBjYWNoZWQgPGNvZGU+Ul4yIG1vZCBRPC9jb2RlPi4gKi8KLQotICAgIG1iZWR0bHNfbXBpIE1CRURUTFNfUFJJVkFURShWaSk7ICAgICAgICAgICAgIC8qITwgIFRoZSBjYWNoZWQgYmxpbmRpbmcgdmFsdWUuICovCi0gICAgbWJlZHRsc19tcGkgTUJFRFRMU19QUklWQVRFKFZmKTsgICAgICAgICAgICAgLyohPCAgVGhlIGNhY2hlZCB1bi1ibGluZGluZyB2YWx1ZS4gKi8KLQotICAgIGludCBNQkVEVExTX1BSSVZBVEUocGFkZGluZyk7ICAgICAgICAgICAgICAgIC8qITwgU2VsZWN0cyBwYWRkaW5nIG1vZGU6Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICNNQkVEVExTX1JTQV9QS0NTX1YxNSBmb3IgMS41IHBhZGRpbmcgYW5kCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICNNQkVEVExTX1JTQV9QS0NTX1YyMSBmb3IgT0FFUCBvciBQU1MuICovCi0gICAgaW50IE1CRURUTFNfUFJJVkFURShoYXNoX2lkKTsgICAgICAgICAgICAgICAgLyohPCBIYXNoIGlkZW50aWZpZXIgb2YgbWJlZHRsc19tZF90eXBlX3QgdHlwZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcyBzcGVjaWZpZWQgaW4gbWQuaCBmb3IgdXNlIGluIHRoZSBNR0YKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXNrIGdlbmVyYXRpbmcgZnVuY3Rpb24gdXNlZCBpbiB0aGUKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFTUUtT0FFUCBhbmQgRU1TQS1QU1MgZW5jb2RpbmdzLiAqLwotI2lmIGRlZmluZWQoTUJFRFRMU19USFJFQURJTkdfQykKLSAgICAvKiBJbnZhcmlhbnQ6IHRoZSBtdXRleCBpcyBpbml0aWFsaXplZCBpZmYgdmVyICE9IDAuICovCi0gICAgbWJlZHRsc190aHJlYWRpbmdfbXV0ZXhfdCBNQkVEVExTX1BSSVZBVEUobXV0ZXgpOyAgICAvKiE8ICBUaHJlYWQtc2FmZXR5IG11dGV4LiAqLwotI2VuZGlmCi19Ci1tYmVkdGxzX3JzYV9jb250ZXh0OwotCi0jZWxzZSAgLyogTUJFRFRMU19SU0FfQUxUICovCi0jaW5jbHVkZSAicnNhX2FsdC5oIgotI2VuZGlmIC8qIE1CRURUTFNfUlNBX0FMVCAqLwotCi0vKioKLSAqIFxicmllZiAgICAgICAgICBUaGlzIGZ1bmN0aW9uIGluaXRpYWxpemVzIGFuIFJTQSBjb250ZXh0LgotICoKLSAqIFxub3RlICAgICAgICAgICBUaGlzIGZ1bmN0aW9uIGluaXRpYWxpemVzIHRoZSBwYWRkaW5nIGFuZCB0aGUgaGFzaAotICogICAgICAgICAgICAgICAgIGlkZW50aWZpZXIgdG8gcmVzcGVjdGl2ZWx5ICNNQkVEVExTX1JTQV9QS0NTX1YxNSBhbmQKLSAqICAgICAgICAgICAgICAgICAjTUJFRFRMU19NRF9OT05FLiBTZWUgbWJlZHRsc19yc2Ffc2V0X3BhZGRpbmcoKSBmb3IgbW9yZQotICogICAgICAgICAgICAgICAgIGluZm9ybWF0aW9uIGFib3V0IHRob3NlIHBhcmFtZXRlcnMuCi0gKgotICogXHBhcmFtIGN0eCAgICAgIFRoZSBSU0EgY29udGV4dCB0byBpbml0aWFsaXplLiBUaGlzIG11c3Qgbm90IGJlIFxjIE5VTEwuCi0gKi8KLXZvaWQgbWJlZHRsc19yc2FfaW5pdChtYmVkdGxzX3JzYV9jb250ZXh0ICpjdHgpOwotCi0vKioKLSAqIFxicmllZiAgICAgICAgICBUaGlzIGZ1bmN0aW9uIHNldHMgcGFkZGluZyBmb3IgYW4gYWxyZWFkeSBpbml0aWFsaXplZCBSU0EKLSAqICAgICAgICAgICAgICAgICBjb250ZXh0LgotICoKLSAqIFxub3RlICAgICAgICAgICBTZXQgcGFkZGluZyB0byAjTUJFRFRMU19SU0FfUEtDU19WMjEgZm9yIHRoZSBSU0FFUy1PQUVQCi0gKiAgICAgICAgICAgICAgICAgZW5jcnlwdGlvbiBzY2hlbWUgYW5kIHRoZSBSU0FTU0EtUFNTIHNpZ25hdHVyZSBzY2hlbWUuCi0gKgotICogXG5vdGUgICAgICAgICAgIFRoZSBccCBoYXNoX2lkIHBhcmFtZXRlciBpcyBpZ25vcmVkIHdoZW4gdXNpbmcKLSAqICAgICAgICAgICAgICAgICAjTUJFRFRMU19SU0FfUEtDU19WMTUgcGFkZGluZy4KLSAqCi0gKiBcbm90ZSAgICAgICAgICAgVGhlIGNob2ljZSBvZiBwYWRkaW5nIG1vZGUgaXMgc3RyaWN0bHkgZW5mb3JjZWQgZm9yIHByaXZhdGUKLSAqICAgICAgICAgICAgICAgICBrZXkgb3BlcmF0aW9ucywgc2luY2UgdGhlcmUgbWlnaHQgYmUgc2VjdXJpdHkgY29uY2VybnMgaW4KLSAqICAgICAgICAgICAgICAgICBtaXhpbmcgcGFkZGluZyBtb2Rlcy4gRm9yIHB1YmxpYyBrZXkgb3BlcmF0aW9ucyBpdCBpcwotICogICAgICAgICAgICAgICAgIGEgZGVmYXVsdCB2YWx1ZSwgd2hpY2ggY2FuIGJlIG92ZXJyaWRkZW4gYnkgY2FsbGluZyBzcGVjaWZpYwotICogICAgICAgICAgICAgICAgIFxjIG1iZWR0bHNfcnNhX3JzYWVzX3h4eCBvciBcYyBtYmVkdGxzX3JzYV9yc2Fzc2FfeHh4Ci0gKiAgICAgICAgICAgICAgICAgZnVuY3Rpb25zLgotICoKLSAqIFxub3RlICAgICAgICAgICBUaGUgaGFzaCBzZWxlY3RlZCBpbiBccCBoYXNoX2lkIGlzIGFsd2F5cyB1c2VkIGZvciBPRUFQCi0gKiAgICAgICAgICAgICAgICAgZW5jcnlwdGlvbi4gRm9yIFBTUyBzaWduYXR1cmVzLCBpdCBpcyBhbHdheXMgdXNlZCBmb3IKLSAqICAgICAgICAgICAgICAgICBtYWtpbmcgc2lnbmF0dXJlcywgYnV0IGNhbiBiZSBvdmVycmlkZGVuIGZvciB2ZXJpZnlpbmcgdGhlbS4KLSAqICAgICAgICAgICAgICAgICBJZiBzZXQgdG8gI01CRURUTFNfTURfTk9ORSwgaXQgaXMgYWx3YXlzIG92ZXJyaWRkZW4uCi0gKgotICogXHBhcmFtIGN0eCAgICAgIFRoZSBpbml0aWFsaXplZCBSU0EgY29udGV4dCB0byBiZSBjb25maWd1cmVkLgotICogXHBhcmFtIHBhZGRpbmcgIFRoZSBwYWRkaW5nIG1vZGUgdG8gdXNlLiBUaGlzIG11c3QgYmUgZWl0aGVyCi0gKiAgICAgICAgICAgICAgICAgI01CRURUTFNfUlNBX1BLQ1NfVjE1IG9yICNNQkVEVExTX1JTQV9QS0NTX1YyMS4KLSAqIFxwYXJhbSBoYXNoX2lkICBUaGUgaGFzaCBpZGVudGlmaWVyIGZvciBQU1Mgb3IgT0FFUCwgaWYgXHAgcGFkZGluZyBpcwotICogICAgICAgICAgICAgICAgICNNQkVEVExTX1JTQV9QS0NTX1YyMS4gI01CRURUTFNfTURfTk9ORSBpcyBhY2NlcHRlZCBieSB0aGlzCi0gKiAgICAgICAgICAgICAgICAgZnVuY3Rpb24gYnV0IG1heSBiZSBub3Qgc3VpdGFibGUgZm9yIHNvbWUgb3BlcmF0aW9ucy4KLSAqICAgICAgICAgICAgICAgICBJZ25vcmVkIGlmIFxwIHBhZGRpbmcgaXMgI01CRURUTFNfUlNBX1BLQ1NfVjE1LgotICoKLSAqIFxyZXR1cm4gICAgICAgICBcYyAwIG9uIHN1Y2Nlc3MuCi0gKiBccmV0dXJuICAgICAgICAgI01CRURUTFNfRVJSX1JTQV9JTlZBTElEX1BBRERJTkcgZmFpbHVyZToKLSAqICAgICAgICAgICAgICAgICBccCBwYWRkaW5nIG9yIFxwIGhhc2hfaWQgaXMgaW52YWxpZC4KLSAqLwotaW50IG1iZWR0bHNfcnNhX3NldF9wYWRkaW5nKG1iZWR0bHNfcnNhX2NvbnRleHQgKmN0eCwgaW50IHBhZGRpbmcsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgbWJlZHRsc19tZF90eXBlX3QgaGFzaF9pZCk7Ci0KLS8qKgotICogXGJyaWVmICAgICAgICAgIFRoaXMgZnVuY3Rpb24gcmV0cmlldmVzIHBhZGRpbmcgbW9kZSBvZiBpbml0aWFsaXplZAotICogICAgICAgICAgICAgICAgIFJTQSBjb250ZXh0LgotICoKLSAqIFxwYXJhbSBjdHggICAgICBUaGUgaW5pdGlhbGl6ZWQgUlNBIGNvbnRleHQuCi0gKgotICogXHJldHVybiAgICAgICAgIFJTQSBwYWRkaW5nIG1vZGUuCi0gKgotICovCi1pbnQgbWJlZHRsc19yc2FfZ2V0X3BhZGRpbmdfbW9kZShjb25zdCBtYmVkdGxzX3JzYV9jb250ZXh0ICpjdHgpOwotCi0vKioKLSAqIFxicmllZiAgICAgICAgICBUaGlzIGZ1bmN0aW9uIHJldHJpZXZlcyBoYXNoIGlkZW50aWZpZXIgb2YgbWJlZHRsc19tZF90eXBlX3QKLSAqICAgICAgICAgICAgICAgICB0eXBlLgotICoKLSAqIFxwYXJhbSBjdHggICAgICBUaGUgaW5pdGlhbGl6ZWQgUlNBIGNvbnRleHQuCi0gKgotICogXHJldHVybiAgICAgICAgIEhhc2ggaWRlbnRpZmllciBvZiBtYmVkdGxzX21kX3R5cGVfdCB0eXBlLgotICoKLSAqLwotaW50IG1iZWR0bHNfcnNhX2dldF9tZF9hbGcoY29uc3QgbWJlZHRsc19yc2FfY29udGV4dCAqY3R4KTsKLQotLyoqCi0gKiBcYnJpZWYgICAgICAgICAgVGhpcyBmdW5jdGlvbiBpbXBvcnRzIGEgc2V0IG9mIGNvcmUgcGFyYW1ldGVycyBpbnRvIGFuCi0gKiAgICAgICAgICAgICAgICAgUlNBIGNvbnRleHQuCi0gKgotICogXG5vdGUgICAgICAgICAgIFRoaXMgZnVuY3Rpb24gY2FuIGJlIGNhbGxlZCBtdWx0aXBsZSB0aW1lcyBmb3Igc3VjY2Vzc2l2ZQotICogICAgICAgICAgICAgICAgIGltcG9ydHMsIGlmIHRoZSBwYXJhbWV0ZXJzIGFyZSBub3Qgc2ltdWx0YW5lb3VzbHkgcHJlc2VudC4KLSAqCi0gKiAgICAgICAgICAgICAgICAgQW55IHNlcXVlbmNlIG9mIGNhbGxzIHRvIHRoaXMgZnVuY3Rpb24gc2hvdWxkIGJlIGZvbGxvd2VkCi0gKiAgICAgICAgICAgICAgICAgYnkgYSBjYWxsIHRvIG1iZWR0bHNfcnNhX2NvbXBsZXRlKCksIHdoaWNoIGNoZWNrcyBhbmQKLSAqICAgICAgICAgICAgICAgICBjb21wbGV0ZXMgdGhlIHByb3ZpZGVkIGluZm9ybWF0aW9uIHRvIGEgcmVhZHktZm9yLXVzZQotICogICAgICAgICAgICAgICAgIHB1YmxpYyBvciBwcml2YXRlIFJTQSBrZXkuCi0gKgotICogXG5vdGUgICAgICAgICAgIFNlZSBtYmVkdGxzX3JzYV9jb21wbGV0ZSgpIGZvciBtb3JlIGluZm9ybWF0aW9uIG9uIHdoaWNoCi0gKiAgICAgICAgICAgICAgICAgcGFyYW1ldGVycyBhcmUgbmVjZXNzYXJ5IHRvIHNldCB1cCBhIHByaXZhdGUgb3IgcHVibGljCi0gKiAgICAgICAgICAgICAgICAgUlNBIGtleS4KLSAqCi0gKiBcbm90ZSAgICAgICAgICAgVGhlIGltcG9ydGVkIHBhcmFtZXRlcnMgYXJlIGNvcGllZCBhbmQgbmVlZCBub3QgYmUgcHJlc2VydmVkCi0gKiAgICAgICAgICAgICAgICAgZm9yIHRoZSBsaWZldGltZSBvZiB0aGUgUlNBIGNvbnRleHQgYmVpbmcgc2V0IHVwLgotICoKLSAqIFxwYXJhbSBjdHggICAgICBUaGUgaW5pdGlhbGl6ZWQgUlNBIGNvbnRleHQgdG8gc3RvcmUgdGhlIHBhcmFtZXRlcnMgaW4uCi0gKiBccGFyYW0gTiAgICAgICAgVGhlIFJTQSBtb2R1bHVzLiBUaGlzIG1heSBiZSBcYyBOVUxMLgotICogXHBhcmFtIFAgICAgICAgIFRoZSBmaXJzdCBwcmltZSBmYWN0b3Igb2YgXHAgTi4gVGhpcyBtYXkgYmUgXGMgTlVMTC4KLSAqIFxwYXJhbSBRICAgICAgICBUaGUgc2Vjb25kIHByaW1lIGZhY3RvciBvZiBccCBOLiBUaGlzIG1heSBiZSBcYyBOVUxMLgotICogXHBhcmFtIEQgICAgICAgIFRoZSBwcml2YXRlIGV4cG9uZW50LiBUaGlzIG1heSBiZSBcYyBOVUxMLgotICogXHBhcmFtIEUgICAgICAgIFRoZSBwdWJsaWMgZXhwb25lbnQuIFRoaXMgbWF5IGJlIFxjIE5VTEwuCi0gKgotICogXHJldHVybiAgICAgICAgIFxjIDAgb24gc3VjY2Vzcy4KLSAqIFxyZXR1cm4gICAgICAgICBBIG5vbi16ZXJvIGVycm9yIGNvZGUgb24gZmFpbHVyZS4KLSAqLwotaW50IG1iZWR0bHNfcnNhX2ltcG9ydChtYmVkdGxzX3JzYV9jb250ZXh0ICpjdHgsCi0gICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IG1iZWR0bHNfbXBpICpOLAotICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBtYmVkdGxzX21waSAqUCwgY29uc3QgbWJlZHRsc19tcGkgKlEsCi0gICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IG1iZWR0bHNfbXBpICpELCBjb25zdCBtYmVkdGxzX21waSAqRSk7Ci0KLS8qKgotICogXGJyaWVmICAgICAgICAgIFRoaXMgZnVuY3Rpb24gaW1wb3J0cyBjb3JlIFJTQSBwYXJhbWV0ZXJzLCBpbiByYXcgYmlnLWVuZGlhbgotICogICAgICAgICAgICAgICAgIGJpbmFyeSBmb3JtYXQsIGludG8gYW4gUlNBIGNvbnRleHQuCi0gKgotICogXG5vdGUgICAgICAgICAgIFRoaXMgZnVuY3Rpb24gY2FuIGJlIGNhbGxlZCBtdWx0aXBsZSB0aW1lcyBmb3Igc3VjY2Vzc2l2ZQotICogICAgICAgICAgICAgICAgIGltcG9ydHMsIGlmIHRoZSBwYXJhbWV0ZXJzIGFyZSBub3Qgc2ltdWx0YW5lb3VzbHkgcHJlc2VudC4KLSAqCi0gKiAgICAgICAgICAgICAgICAgQW55IHNlcXVlbmNlIG9mIGNhbGxzIHRvIHRoaXMgZnVuY3Rpb24gc2hvdWxkIGJlIGZvbGxvd2VkCi0gKiAgICAgICAgICAgICAgICAgYnkgYSBjYWxsIHRvIG1iZWR0bHNfcnNhX2NvbXBsZXRlKCksIHdoaWNoIGNoZWNrcyBhbmQKLSAqICAgICAgICAgICAgICAgICBjb21wbGV0ZXMgdGhlIHByb3ZpZGVkIGluZm9ybWF0aW9uIHRvIGEgcmVhZHktZm9yLXVzZQotICogICAgICAgICAgICAgICAgIHB1YmxpYyBvciBwcml2YXRlIFJTQSBrZXkuCi0gKgotICogXG5vdGUgICAgICAgICAgIFNlZSBtYmVkdGxzX3JzYV9jb21wbGV0ZSgpIGZvciBtb3JlIGluZm9ybWF0aW9uIG9uIHdoaWNoCi0gKiAgICAgICAgICAgICAgICAgcGFyYW1ldGVycyBhcmUgbmVjZXNzYXJ5IHRvIHNldCB1cCBhIHByaXZhdGUgb3IgcHVibGljCi0gKiAgICAgICAgICAgICAgICAgUlNBIGtleS4KLSAqCi0gKiBcbm90ZSAgICAgICAgICAgVGhlIGltcG9ydGVkIHBhcmFtZXRlcnMgYXJlIGNvcGllZCBhbmQgbmVlZCBub3QgYmUgcHJlc2VydmVkCi0gKiAgICAgICAgICAgICAgICAgZm9yIHRoZSBsaWZldGltZSBvZiB0aGUgUlNBIGNvbnRleHQgYmVpbmcgc2V0IHVwLgotICoKLSAqIFxwYXJhbSBjdHggICAgICBUaGUgaW5pdGlhbGl6ZWQgUlNBIGNvbnRleHQgdG8gc3RvcmUgdGhlIHBhcmFtZXRlcnMgaW4uCi0gKiBccGFyYW0gTiAgICAgICAgVGhlIFJTQSBtb2R1bHVzLiBUaGlzIG1heSBiZSBcYyBOVUxMLgotICogXHBhcmFtIE5fbGVuICAgIFRoZSBCeXRlIGxlbmd0aCBvZiBccCBOOyBpdCBpcyBpZ25vcmVkIGlmIFxwIE4gPT0gTlVMTC4KLSAqIFxwYXJhbSBQICAgICAgICBUaGUgZmlyc3QgcHJpbWUgZmFjdG9yIG9mIFxwIE4uIFRoaXMgbWF5IGJlIFxjIE5VTEwuCi0gKiBccGFyYW0gUF9sZW4gICAgVGhlIEJ5dGUgbGVuZ3RoIG9mIFxwIFA7IGl0IGlzIGlnbm9yZWQgaWYgXHAgUCA9PSBOVUxMLgotICogXHBhcmFtIFEgICAgICAgIFRoZSBzZWNvbmQgcHJpbWUgZmFjdG9yIG9mIFxwIE4uIFRoaXMgbWF5IGJlIFxjIE5VTEwuCi0gKiBccGFyYW0gUV9sZW4gICAgVGhlIEJ5dGUgbGVuZ3RoIG9mIFxwIFE7IGl0IGlzIGlnbm9yZWQgaWYgXHAgUSA9PSBOVUxMLgotICogXHBhcmFtIEQgICAgICAgIFRoZSBwcml2YXRlIGV4cG9uZW50LiBUaGlzIG1heSBiZSBcYyBOVUxMLgotICogXHBhcmFtIERfbGVuICAgIFRoZSBCeXRlIGxlbmd0aCBvZiBccCBEOyBpdCBpcyBpZ25vcmVkIGlmIFxwIEQgPT0gTlVMTC4KLSAqIFxwYXJhbSBFICAgICAgICBUaGUgcHVibGljIGV4cG9uZW50LiBUaGlzIG1heSBiZSBcYyBOVUxMLgotICogXHBhcmFtIEVfbGVuICAgIFRoZSBCeXRlIGxlbmd0aCBvZiBccCBFOyBpdCBpcyBpZ25vcmVkIGlmIFxwIEUgPT0gTlVMTC4KLSAqCi0gKiBccmV0dXJuICAgICAgICAgXGMgMCBvbiBzdWNjZXNzLgotICogXHJldHVybiAgICAgICAgIEEgbm9uLXplcm8gZXJyb3IgY29kZSBvbiBmYWlsdXJlLgotICovCi1pbnQgbWJlZHRsc19yc2FfaW1wb3J0X3JhdyhtYmVkdGxzX3JzYV9jb250ZXh0ICpjdHgsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBjaGFyIGNvbnN0ICpOLCBzaXplX3QgTl9sZW4sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBjaGFyIGNvbnN0ICpQLCBzaXplX3QgUF9sZW4sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBjaGFyIGNvbnN0ICpRLCBzaXplX3QgUV9sZW4sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBjaGFyIGNvbnN0ICpELCBzaXplX3QgRF9sZW4sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBjaGFyIGNvbnN0ICpFLCBzaXplX3QgRV9sZW4pOwotCi0vKioKLSAqIFxicmllZiAgICAgICAgICBUaGlzIGZ1bmN0aW9uIGNvbXBsZXRlcyBhbiBSU0EgY29udGV4dCBmcm9tCi0gKiAgICAgICAgICAgICAgICAgYSBzZXQgb2YgaW1wb3J0ZWQgY29yZSBwYXJhbWV0ZXJzLgotICoKLSAqICAgICAgICAgICAgICAgICBUbyBzZXR1cCBhbiBSU0EgcHVibGljIGtleSwgcHJlY2lzZWx5IFxjIE4gYW5kIFxjIEUKLSAqICAgICAgICAgICAgICAgICBtdXN0IGhhdmUgYmVlbiBpbXBvcnRlZC4KLSAqCi0gKiAgICAgICAgICAgICAgICAgVG8gc2V0dXAgYW4gUlNBIHByaXZhdGUga2V5LCBzdWZmaWNpZW50IGluZm9ybWF0aW9uIG11c3QKLSAqICAgICAgICAgICAgICAgICBiZSBwcmVzZW50IGZvciB0aGUgb3RoZXIgcGFyYW1ldGVycyB0byBiZSBkZXJpdmFibGUuCi0gKgotICogICAgICAgICAgICAgICAgIFRoZSBkZWZhdWx0IGltcGxlbWVudGF0aW9uIHN1cHBvcnRzIHRoZSBmb2xsb3dpbmc6Ci0gKiAgICAgICAgICAgICAgICAgPHVsPjxsaT5EZXJpdmUgXGMgUCwgXGMgUSBmcm9tIFxjIE4sIFxjIEQsIFxjIEUuPC9saT4KLSAqICAgICAgICAgICAgICAgICA8bGk+RGVyaXZlIFxjIE4sIFxjIEQgZnJvbSBcYyBQLCBcYyBRLCBcYyBFLjwvbGk+PC91bD4KLSAqICAgICAgICAgICAgICAgICBBbHRlcm5hdGl2ZSBpbXBsZW1lbnRhdGlvbnMgbmVlZCBub3Qgc3VwcG9ydCB0aGVzZS4KLSAqCi0gKiAgICAgICAgICAgICAgICAgSWYgdGhpcyBmdW5jdGlvbiBydW5zIHN1Y2Nlc3NmdWxseSwgaXQgZ3VhcmFudGVlcyB0aGF0Ci0gKiAgICAgICAgICAgICAgICAgdGhlIFJTQSBjb250ZXh0IGNhbiBiZSB1c2VkIGZvciBSU0Egb3BlcmF0aW9ucyB3aXRob3V0Ci0gKiAgICAgICAgICAgICAgICAgdGhlIHJpc2sgb2YgZmFpbHVyZSBvciBjcmFzaC4KLSAqCi0gKiBcd2FybmluZyAgICAgICAgVGhpcyBmdW5jdGlvbiBuZWVkIG5vdCBwZXJmb3JtIGNvbnNpc3RlbmN5IGNoZWNrcwotICogICAgICAgICAgICAgICAgIGZvciB0aGUgaW1wb3J0ZWQgcGFyYW1ldGVycy4gSW4gcGFydGljdWxhciwgcGFyYW1ldGVycyB0aGF0Ci0gKiAgICAgICAgICAgICAgICAgYXJlIG5vdCBuZWVkZWQgYnkgdGhlIGltcGxlbWVudGF0aW9uIG1pZ2h0IGJlIHNpbGVudGx5Ci0gKiAgICAgICAgICAgICAgICAgZGlzY2FyZGVkIGFuZCBsZWZ0IHVuY2hlY2tlZC4gVG8gY2hlY2sgdGhlIGNvbnNpc3RlbmN5Ci0gKiAgICAgICAgICAgICAgICAgb2YgdGhlIGtleSBtYXRlcmlhbCwgc2VlIG1iZWR0bHNfcnNhX2NoZWNrX3ByaXZrZXkoKS4KLSAqCi0gKiBccGFyYW0gY3R4ICAgICAgVGhlIGluaXRpYWxpemVkIFJTQSBjb250ZXh0IGhvbGRpbmcgaW1wb3J0ZWQgcGFyYW1ldGVycy4KLSAqCi0gKiBccmV0dXJuICAgICAgICAgXGMgMCBvbiBzdWNjZXNzLgotICogXHJldHVybiAgICAgICAgICNNQkVEVExTX0VSUl9SU0FfQkFEX0lOUFVUX0RBVEEgaWYgdGhlIGF0dGVtcHRlZCBkZXJpdmF0aW9ucwotICogICAgICAgICAgICAgICAgIGZhaWxlZC4KLSAqCi0gKi8KLWludCBtYmVkdGxzX3JzYV9jb21wbGV0ZShtYmVkdGxzX3JzYV9jb250ZXh0ICpjdHgpOwotCi0vKioKLSAqIFxicmllZiAgICAgICAgICBUaGlzIGZ1bmN0aW9uIGV4cG9ydHMgdGhlIGNvcmUgcGFyYW1ldGVycyBvZiBhbiBSU0Ega2V5LgotICoKLSAqICAgICAgICAgICAgICAgICBJZiB0aGlzIGZ1bmN0aW9uIHJ1bnMgc3VjY2Vzc2Z1bGx5LCB0aGUgbm9uLU5VTEwgYnVmZmVycwotICogICAgICAgICAgICAgICAgIHBvaW50ZWQgdG8gYnkgXHAgTiwgXHAgUCwgXHAgUSwgXHAgRCwgYW5kIFxwIEUgYXJlIGZ1bGx5Ci0gKiAgICAgICAgICAgICAgICAgd3JpdHRlbiwgd2l0aCBhZGRpdGlvbmFsIHVudXNlZCBzcGFjZSBmaWxsZWQgbGVhZGluZyBieQotICogICAgICAgICAgICAgICAgIHplcm8gQnl0ZXMuCi0gKgotICogICAgICAgICAgICAgICAgIFBvc3NpYmxlIHJlYXNvbnMgZm9yIHJldHVybmluZwotICogICAgICAgICAgICAgICAgICNNQkVEVExTX0VSUl9QTEFURk9STV9GRUFUVVJFX1VOU1VQUE9SVEVEOjx1bD4KLSAqICAgICAgICAgICAgICAgICA8bGk+QW4gYWx0ZXJuYXRpdmUgUlNBIGltcGxlbWVudGF0aW9uIGlzIGluIHVzZSwgd2hpY2gKLSAqICAgICAgICAgICAgICAgICBzdG9yZXMgdGhlIGtleSBleHRlcm5hbGx5LCBhbmQgZWl0aGVyIGNhbm5vdCBvciBzaG91bGQKLSAqICAgICAgICAgICAgICAgICBub3QgZXhwb3J0IGl0IGludG8gUkFNLjwvbGk+Ci0gKiAgICAgICAgICAgICAgICAgPGxpPkEgU1cgb3IgSFcgaW1wbGVtZW50YXRpb24gbWlnaHQgbm90IHN1cHBvcnQgYSBjZXJ0YWluCi0gKiAgICAgICAgICAgICAgICAgZGVkdWN0aW9uLiBGb3IgZXhhbXBsZSwgXHAgUCwgXHAgUSBmcm9tIFxwIE4sIFxwIEQsCi0gKiAgICAgICAgICAgICAgICAgYW5kIFxwIEUgaWYgdGhlIGZvcm1lciBhcmUgbm90IHBhcnQgb2YgdGhlCi0gKiAgICAgICAgICAgICAgICAgaW1wbGVtZW50YXRpb24uPC9saT48L3VsPgotICoKLSAqICAgICAgICAgICAgICAgICBJZiB0aGUgZnVuY3Rpb24gZmFpbHMgZHVlIHRvIGFuIHVuc3VwcG9ydGVkIG9wZXJhdGlvbiwKLSAqICAgICAgICAgICAgICAgICB0aGUgUlNBIGNvbnRleHQgc3RheXMgaW50YWN0IGFuZCByZW1haW5zIHVzYWJsZS4KLSAqCi0gKiBccGFyYW0gY3R4ICAgICAgVGhlIGluaXRpYWxpemVkIFJTQSBjb250ZXh0LgotICogXHBhcmFtIE4gICAgICAgIFRoZSBNUEkgdG8gaG9sZCB0aGUgUlNBIG1vZHVsdXMuCi0gKiAgICAgICAgICAgICAgICAgVGhpcyBtYXkgYmUgXGMgTlVMTCBpZiB0aGlzIGZpZWxkIG5lZWQgbm90IGJlIGV4cG9ydGVkLgotICogXHBhcmFtIFAgICAgICAgIFRoZSBNUEkgdG8gaG9sZCB0aGUgZmlyc3QgcHJpbWUgZmFjdG9yIG9mIFxwIE4uCi0gKiAgICAgICAgICAgICAgICAgVGhpcyBtYXkgYmUgXGMgTlVMTCBpZiB0aGlzIGZpZWxkIG5lZWQgbm90IGJlIGV4cG9ydGVkLgotICogXHBhcmFtIFEgICAgICAgIFRoZSBNUEkgdG8gaG9sZCB0aGUgc2Vjb25kIHByaW1lIGZhY3RvciBvZiBccCBOLgotICogICAgICAgICAgICAgICAgIFRoaXMgbWF5IGJlIFxjIE5VTEwgaWYgdGhpcyBmaWVsZCBuZWVkIG5vdCBiZSBleHBvcnRlZC4KLSAqIFxwYXJhbSBEICAgICAgICBUaGUgTVBJIHRvIGhvbGQgdGhlIHByaXZhdGUgZXhwb25lbnQuCi0gKiAgICAgICAgICAgICAgICAgVGhpcyBtYXkgYmUgXGMgTlVMTCBpZiB0aGlzIGZpZWxkIG5lZWQgbm90IGJlIGV4cG9ydGVkLgotICogXHBhcmFtIEUgICAgICAgIFRoZSBNUEkgdG8gaG9sZCB0aGUgcHVibGljIGV4cG9uZW50LgotICogICAgICAgICAgICAgICAgIFRoaXMgbWF5IGJlIFxjIE5VTEwgaWYgdGhpcyBmaWVsZCBuZWVkIG5vdCBiZSBleHBvcnRlZC4KLSAqCi0gKiBccmV0dXJuICAgICAgICAgXGMgMCBvbiBzdWNjZXNzLgotICogXHJldHVybiAgICAgICAgICNNQkVEVExTX0VSUl9QTEFURk9STV9GRUFUVVJFX1VOU1VQUE9SVEVEIGlmIGV4cG9ydGluZyB0aGUKLSAqICAgICAgICAgICAgICAgICByZXF1ZXN0ZWQgcGFyYW1ldGVycyBjYW5ub3QgYmUgZG9uZSBkdWUgdG8gbWlzc2luZwotICogICAgICAgICAgICAgICAgIGZ1bmN0aW9uYWxpdHkgb3IgYmVjYXVzZSBvZiBzZWN1cml0eSBwb2xpY2llcy4KLSAqIFxyZXR1cm4gICAgICAgICBBIG5vbi16ZXJvIHJldHVybiBjb2RlIG9uIGFueSBvdGhlciBmYWlsdXJlLgotICoKLSAqLwotaW50IG1iZWR0bHNfcnNhX2V4cG9ydChjb25zdCBtYmVkdGxzX3JzYV9jb250ZXh0ICpjdHgsCi0gICAgICAgICAgICAgICAgICAgICAgIG1iZWR0bHNfbXBpICpOLCBtYmVkdGxzX21waSAqUCwgbWJlZHRsc19tcGkgKlEsCi0gICAgICAgICAgICAgICAgICAgICAgIG1iZWR0bHNfbXBpICpELCBtYmVkdGxzX21waSAqRSk7Ci0KLS8qKgotICogXGJyaWVmICAgICAgICAgIFRoaXMgZnVuY3Rpb24gZXhwb3J0cyBjb3JlIHBhcmFtZXRlcnMgb2YgYW4gUlNBIGtleQotICogICAgICAgICAgICAgICAgIGluIHJhdyBiaWctZW5kaWFuIGJpbmFyeSBmb3JtYXQuCi0gKgotICogICAgICAgICAgICAgICAgIElmIHRoaXMgZnVuY3Rpb24gcnVucyBzdWNjZXNzZnVsbHksIHRoZSBub24tTlVMTCBidWZmZXJzCi0gKiAgICAgICAgICAgICAgICAgcG9pbnRlZCB0byBieSBccCBOLCBccCBQLCBccCBRLCBccCBELCBhbmQgXHAgRSBhcmUgZnVsbHkKLSAqICAgICAgICAgICAgICAgICB3cml0dGVuLCB3aXRoIGFkZGl0aW9uYWwgdW51c2VkIHNwYWNlIGZpbGxlZCBsZWFkaW5nIGJ5Ci0gKiAgICAgICAgICAgICAgICAgemVybyBCeXRlcy4KLSAqCi0gKiAgICAgICAgICAgICAgICAgUG9zc2libGUgcmVhc29ucyBmb3IgcmV0dXJuaW5nCi0gKiAgICAgICAgICAgICAgICAgI01CRURUTFNfRVJSX1BMQVRGT1JNX0ZFQVRVUkVfVU5TVVBQT1JURUQ6PHVsPgotICogICAgICAgICAgICAgICAgIDxsaT5BbiBhbHRlcm5hdGl2ZSBSU0EgaW1wbGVtZW50YXRpb24gaXMgaW4gdXNlLCB3aGljaAotICogICAgICAgICAgICAgICAgIHN0b3JlcyB0aGUga2V5IGV4dGVybmFsbHksIGFuZCBlaXRoZXIgY2Fubm90IG9yIHNob3VsZAotICogICAgICAgICAgICAgICAgIG5vdCBleHBvcnQgaXQgaW50byBSQU0uPC9saT4KLSAqICAgICAgICAgICAgICAgICA8bGk+QSBTVyBvciBIVyBpbXBsZW1lbnRhdGlvbiBtaWdodCBub3Qgc3VwcG9ydCBhIGNlcnRhaW4KLSAqICAgICAgICAgICAgICAgICBkZWR1Y3Rpb24uIEZvciBleGFtcGxlLCBccCBQLCBccCBRIGZyb20gXHAgTiwgXHAgRCwKLSAqICAgICAgICAgICAgICAgICBhbmQgXHAgRSBpZiB0aGUgZm9ybWVyIGFyZSBub3QgcGFydCBvZiB0aGUKLSAqICAgICAgICAgICAgICAgICBpbXBsZW1lbnRhdGlvbi48L2xpPjwvdWw+Ci0gKiAgICAgICAgICAgICAgICAgSWYgdGhlIGZ1bmN0aW9uIGZhaWxzIGR1ZSB0byBhbiB1bnN1cHBvcnRlZCBvcGVyYXRpb24sCi0gKiAgICAgICAgICAgICAgICAgdGhlIFJTQSBjb250ZXh0IHN0YXlzIGludGFjdCBhbmQgcmVtYWlucyB1c2FibGUuCi0gKgotICogXG5vdGUgICAgICAgICAgIFRoZSBsZW5ndGggcGFyYW1ldGVycyBhcmUgaWdub3JlZCBpZiB0aGUgY29ycmVzcG9uZGluZwotICogICAgICAgICAgICAgICAgIGJ1ZmZlciBwb2ludGVycyBhcmUgTlVMTC4KLSAqCi0gKiBccGFyYW0gY3R4ICAgICAgVGhlIGluaXRpYWxpemVkIFJTQSBjb250ZXh0LgotICogXHBhcmFtIE4gICAgICAgIFRoZSBCeXRlIGFycmF5IHRvIHN0b3JlIHRoZSBSU0EgbW9kdWx1cywKLSAqICAgICAgICAgICAgICAgICBvciBcYyBOVUxMIGlmIHRoaXMgZmllbGQgbmVlZCBub3QgYmUgZXhwb3J0ZWQuCi0gKiBccGFyYW0gTl9sZW4gICAgVGhlIHNpemUgb2YgdGhlIGJ1ZmZlciBmb3IgdGhlIG1vZHVsdXMuCi0gKiBccGFyYW0gUCAgICAgICAgVGhlIEJ5dGUgYXJyYXkgdG8gaG9sZCB0aGUgZmlyc3QgcHJpbWUgZmFjdG9yIG9mIFxwIE4sCi0gKiAgICAgICAgICAgICAgICAgb3IgXGMgTlVMTCBpZiB0aGlzIGZpZWxkIG5lZWQgbm90IGJlIGV4cG9ydGVkLgotICogXHBhcmFtIFBfbGVuICAgIFRoZSBzaXplIG9mIHRoZSBidWZmZXIgZm9yIHRoZSBmaXJzdCBwcmltZSBmYWN0b3IuCi0gKiBccGFyYW0gUSAgICAgICAgVGhlIEJ5dGUgYXJyYXkgdG8gaG9sZCB0aGUgc2Vjb25kIHByaW1lIGZhY3RvciBvZiBccCBOLAotICogICAgICAgICAgICAgICAgIG9yIFxjIE5VTEwgaWYgdGhpcyBmaWVsZCBuZWVkIG5vdCBiZSBleHBvcnRlZC4KLSAqIFxwYXJhbSBRX2xlbiAgICBUaGUgc2l6ZSBvZiB0aGUgYnVmZmVyIGZvciB0aGUgc2Vjb25kIHByaW1lIGZhY3Rvci4KLSAqIFxwYXJhbSBEICAgICAgICBUaGUgQnl0ZSBhcnJheSB0byBob2xkIHRoZSBwcml2YXRlIGV4cG9uZW50LAotICogICAgICAgICAgICAgICAgIG9yIFxjIE5VTEwgaWYgdGhpcyBmaWVsZCBuZWVkIG5vdCBiZSBleHBvcnRlZC4KLSAqIFxwYXJhbSBEX2xlbiAgICBUaGUgc2l6ZSBvZiB0aGUgYnVmZmVyIGZvciB0aGUgcHJpdmF0ZSBleHBvbmVudC4KLSAqIFxwYXJhbSBFICAgICAgICBUaGUgQnl0ZSBhcnJheSB0byBob2xkIHRoZSBwdWJsaWMgZXhwb25lbnQsCi0gKiAgICAgICAgICAgICAgICAgb3IgXGMgTlVMTCBpZiB0aGlzIGZpZWxkIG5lZWQgbm90IGJlIGV4cG9ydGVkLgotICogXHBhcmFtIEVfbGVuICAgIFRoZSBzaXplIG9mIHRoZSBidWZmZXIgZm9yIHRoZSBwdWJsaWMgZXhwb25lbnQuCi0gKgotICogXHJldHVybiAgICAgICAgIFxjIDAgb24gc3VjY2Vzcy4KLSAqIFxyZXR1cm4gICAgICAgICAjTUJFRFRMU19FUlJfUExBVEZPUk1fRkVBVFVSRV9VTlNVUFBPUlRFRCBpZiBleHBvcnRpbmcgdGhlCi0gKiAgICAgICAgICAgICAgICAgcmVxdWVzdGVkIHBhcmFtZXRlcnMgY2Fubm90IGJlIGRvbmUgZHVlIHRvIG1pc3NpbmcKLSAqICAgICAgICAgICAgICAgICBmdW5jdGlvbmFsaXR5IG9yIGJlY2F1c2Ugb2Ygc2VjdXJpdHkgcG9saWNpZXMuCi0gKiBccmV0dXJuICAgICAgICAgQSBub24temVybyByZXR1cm4gY29kZSBvbiBhbnkgb3RoZXIgZmFpbHVyZS4KLSAqLwotaW50IG1iZWR0bHNfcnNhX2V4cG9ydF9yYXcoY29uc3QgbWJlZHRsc19yc2FfY29udGV4dCAqY3R4LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgY2hhciAqTiwgc2l6ZV90IE5fbGVuLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgY2hhciAqUCwgc2l6ZV90IFBfbGVuLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgY2hhciAqUSwgc2l6ZV90IFFfbGVuLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgY2hhciAqRCwgc2l6ZV90IERfbGVuLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgY2hhciAqRSwgc2l6ZV90IEVfbGVuKTsKLQotLyoqCi0gKiBcYnJpZWYgICAgICAgICAgVGhpcyBmdW5jdGlvbiBleHBvcnRzIENSVCBwYXJhbWV0ZXJzIG9mIGEgcHJpdmF0ZSBSU0Ega2V5LgotICoKLSAqIFxub3RlICAgICAgICAgICBBbHRlcm5hdGl2ZSBSU0EgaW1wbGVtZW50YXRpb25zIG5vdCB1c2luZyBDUlQtcGFyYW1ldGVycwotICogICAgICAgICAgICAgICAgIGludGVybmFsbHkgY2FuIGltcGxlbWVudCB0aGlzIGZ1bmN0aW9uIGJhc2VkIG9uCi0gKiAgICAgICAgICAgICAgICAgbWJlZHRsc19yc2FfZGVkdWNlX29wdCgpLgotICoKLSAqIFxwYXJhbSBjdHggICAgICBUaGUgaW5pdGlhbGl6ZWQgUlNBIGNvbnRleHQuCi0gKiBccGFyYW0gRFAgICAgICAgVGhlIE1QSSB0byBob2xkIFxjIEQgbW9kdWxvIGBQLTFgLAotICogICAgICAgICAgICAgICAgIG9yIFxjIE5VTEwgaWYgaXQgbmVlZCBub3QgYmUgZXhwb3J0ZWQuCi0gKiBccGFyYW0gRFEgICAgICAgVGhlIE1QSSB0byBob2xkIFxjIEQgbW9kdWxvIGBRLTFgLAotICogICAgICAgICAgICAgICAgIG9yIFxjIE5VTEwgaWYgaXQgbmVlZCBub3QgYmUgZXhwb3J0ZWQuCi0gKiBccGFyYW0gUVAgICAgICAgVGhlIE1QSSB0byBob2xkIG1vZHVsYXIgaW52ZXJzZSBvZiBcYyBRIG1vZHVsbyBcYyBQLAotICogICAgICAgICAgICAgICAgIG9yIFxjIE5VTEwgaWYgaXQgbmVlZCBub3QgYmUgZXhwb3J0ZWQuCi0gKgotICogXHJldHVybiAgICAgICAgIFxjIDAgb24gc3VjY2Vzcy4KLSAqIFxyZXR1cm4gICAgICAgICBBIG5vbi16ZXJvIGVycm9yIGNvZGUgb24gZmFpbHVyZS4KLSAqCi0gKi8KLWludCBtYmVkdGxzX3JzYV9leHBvcnRfY3J0KGNvbnN0IG1iZWR0bHNfcnNhX2NvbnRleHQgKmN0eCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIG1iZWR0bHNfbXBpICpEUCwgbWJlZHRsc19tcGkgKkRRLCBtYmVkdGxzX21waSAqUVApOwotCi0vKioKLSAqIFxicmllZiAgICAgICAgICBUaGlzIGZ1bmN0aW9uIHJldHJpZXZlcyB0aGUgbGVuZ3RoIG9mIHRoZSBSU0EgbW9kdWx1cyBpbiBiaXRzLgotICoKLSAqIFxwYXJhbSBjdHggICAgICBUaGUgaW5pdGlhbGl6ZWQgUlNBIGNvbnRleHQuCi0gKgotICogXHJldHVybiAgICAgICAgIFRoZSBsZW5ndGggb2YgdGhlIFJTQSBtb2R1bHVzIGluIGJpdHMuCi0gKgotICovCi1zaXplX3QgbWJlZHRsc19yc2FfZ2V0X2JpdGxlbihjb25zdCBtYmVkdGxzX3JzYV9jb250ZXh0ICpjdHgpOwotCi0vKioKLSAqIFxicmllZiAgICAgICAgICBUaGlzIGZ1bmN0aW9uIHJldHJpZXZlcyB0aGUgbGVuZ3RoIG9mIFJTQSBtb2R1bHVzIGluIEJ5dGVzLgotICoKLSAqIFxwYXJhbSBjdHggICAgICBUaGUgaW5pdGlhbGl6ZWQgUlNBIGNvbnRleHQuCi0gKgotICogXHJldHVybiAgICAgICAgIFRoZSBsZW5ndGggb2YgdGhlIFJTQSBtb2R1bHVzIGluIEJ5dGVzLgotICoKLSAqLwotc2l6ZV90IG1iZWR0bHNfcnNhX2dldF9sZW4oY29uc3QgbWJlZHRsc19yc2FfY29udGV4dCAqY3R4KTsKLQotLyoqCi0gKiBcYnJpZWYgICAgICAgICAgVGhpcyBmdW5jdGlvbiBnZW5lcmF0ZXMgYW4gUlNBIGtleXBhaXIuCi0gKgotICogXG5vdGUgICAgICAgICAgIG1iZWR0bHNfcnNhX2luaXQoKSBtdXN0IGJlIGNhbGxlZCBiZWZvcmUgdGhpcyBmdW5jdGlvbiwKLSAqICAgICAgICAgICAgICAgICB0byBzZXQgdXAgdGhlIFJTQSBjb250ZXh0LgotICoKLSAqIFxwYXJhbSBjdHggICAgICBUaGUgaW5pdGlhbGl6ZWQgUlNBIGNvbnRleHQgdXNlZCB0byBob2xkIHRoZSBrZXkuCi0gKiBccGFyYW0gZl9ybmcgICAgVGhlIFJORyBmdW5jdGlvbiB0byBiZSB1c2VkIGZvciBrZXkgZ2VuZXJhdGlvbi4KLSAqICAgICAgICAgICAgICAgICBUaGlzIGlzIG1hbmRhdG9yeSBhbmQgbXVzdCBub3QgYmUgXGMgTlVMTC4KLSAqIFxwYXJhbSBwX3JuZyAgICBUaGUgUk5HIGNvbnRleHQgdG8gYmUgcGFzc2VkIHRvIFxwIGZfcm5nLgotICogICAgICAgICAgICAgICAgIFRoaXMgbWF5IGJlIFxjIE5VTEwgaWYgXHAgZl9ybmcgZG9lc24ndCBuZWVkIGEgY29udGV4dC4KLSAqIFxwYXJhbSBuYml0cyAgICBUaGUgc2l6ZSBvZiB0aGUgcHVibGljIGtleSBpbiBiaXRzLgotICogXHBhcmFtIGV4cG9uZW50IFRoZSBwdWJsaWMgZXhwb25lbnQgdG8gdXNlLiBGb3IgZXhhbXBsZSwgXGMgNjU1MzcuCi0gKiAgICAgICAgICAgICAgICAgVGhpcyBtdXN0IGJlIG9kZCBhbmQgZ3JlYXRlciB0aGFuIFxjIDEuCi0gKgotICogXHJldHVybiAgICAgICAgIFxjIDAgb24gc3VjY2Vzcy4KLSAqIFxyZXR1cm4gICAgICAgICBBbiBcYyBNQkVEVExTX0VSUl9SU0FfWFhYIGVycm9yIGNvZGUgb24gZmFpbHVyZS4KLSAqLwotaW50IG1iZWR0bHNfcnNhX2dlbl9rZXkobWJlZHRsc19yc2FfY29udGV4dCAqY3R4LAotICAgICAgICAgICAgICAgICAgICAgICAgaW50ICgqZl9ybmcpKHZvaWQgKiwgdW5zaWduZWQgY2hhciAqLCBzaXplX3QpLAotICAgICAgICAgICAgICAgICAgICAgICAgdm9pZCAqcF9ybmcsCi0gICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgbmJpdHMsIGludCBleHBvbmVudCk7Ci0KLS8qKgotICogXGJyaWVmICAgICAgICAgIFRoaXMgZnVuY3Rpb24gY2hlY2tzIGlmIGEgY29udGV4dCBjb250YWlucyBhdCBsZWFzdCBhbiBSU0EKLSAqICAgICAgICAgICAgICAgICBwdWJsaWMga2V5LgotICoKLSAqICAgICAgICAgICAgICAgICBJZiB0aGUgZnVuY3Rpb24gcnVucyBzdWNjZXNzZnVsbHksIGl0IGlzIGd1YXJhbnRlZWQgdGhhdAotICogICAgICAgICAgICAgICAgIGVub3VnaCBpbmZvcm1hdGlvbiBpcyBwcmVzZW50IHRvIHBlcmZvcm0gYW4gUlNBIHB1YmxpYyBrZXkKLSAqICAgICAgICAgICAgICAgICBvcGVyYXRpb24gdXNpbmcgbWJlZHRsc19yc2FfcHVibGljKCkuCi0gKgotICogXHBhcmFtIGN0eCAgICAgIFRoZSBpbml0aWFsaXplZCBSU0EgY29udGV4dCB0byBjaGVjay4KLSAqCi0gKiBccmV0dXJuICAgICAgICAgXGMgMCBvbiBzdWNjZXNzLgotICogXHJldHVybiAgICAgICAgIEFuIFxjIE1CRURUTFNfRVJSX1JTQV9YWFggZXJyb3IgY29kZSBvbiBmYWlsdXJlLgotICoKLSAqLwotaW50IG1iZWR0bHNfcnNhX2NoZWNrX3B1YmtleShjb25zdCBtYmVkdGxzX3JzYV9jb250ZXh0ICpjdHgpOwotCi0vKioKLSAqIFxicmllZiAgICAgIFRoaXMgZnVuY3Rpb24gY2hlY2tzIGlmIGEgY29udGV4dCBjb250YWlucyBhbiBSU0EgcHJpdmF0ZSBrZXkKLSAqICAgICAgICAgICAgIGFuZCBwZXJmb3JtIGJhc2ljIGNvbnNpc3RlbmN5IGNoZWNrcy4KLSAqCi0gKiBcbm90ZSAgICAgICBUaGUgY29uc2lzdGVuY3kgY2hlY2tzIHBlcmZvcm1lZCBieSB0aGlzIGZ1bmN0aW9uIG5vdCBvbmx5Ci0gKiAgICAgICAgICAgICBlbnN1cmUgdGhhdCBtYmVkdGxzX3JzYV9wcml2YXRlKCkgY2FuIGJlIGNhbGxlZCBzdWNjZXNzZnVsbHkKLSAqICAgICAgICAgICAgIG9uIHRoZSBnaXZlbiBjb250ZXh0LCBidXQgdGhhdCB0aGUgdmFyaW91cyBwYXJhbWV0ZXJzIGFyZQotICogICAgICAgICAgICAgbXV0dWFsbHkgY29uc2lzdGVudCB3aXRoIGhpZ2ggcHJvYmFiaWxpdHksIGluIHRoZSBzZW5zZSB0aGF0Ci0gKiAgICAgICAgICAgICBtYmVkdGxzX3JzYV9wdWJsaWMoKSBhbmQgbWJlZHRsc19yc2FfcHJpdmF0ZSgpIGFyZSBpbnZlcnNlcy4KLSAqCi0gKiBcd2FybmluZyAgICBUaGlzIGZ1bmN0aW9uIHNob3VsZCBjYXRjaCBhY2NpZGVudGFsIG1pc2NvbmZpZ3VyYXRpb25zCi0gKiAgICAgICAgICAgICBsaWtlIHN3YXBwaW5nIG9mIHBhcmFtZXRlcnMsIGJ1dCBpdCBjYW5ub3QgZXN0YWJsaXNoIGZ1bGwKLSAqICAgICAgICAgICAgIHRydXN0IGluIG5laXRoZXIgdGhlIHF1YWxpdHkgbm9yIHRoZSBjb25zaXN0ZW5jeSBvZiB0aGUga2V5Ci0gKiAgICAgICAgICAgICBtYXRlcmlhbCB0aGF0IHdhcyB1c2VkIHRvIHNldHVwIHRoZSBnaXZlbiBSU0EgY29udGV4dDoKLSAqICAgICAgICAgICAgIDx1bD48bGk+Q29uc2lzdGVuY3k6IEltcG9ydGVkIHBhcmFtZXRlcnMgdGhhdCBhcmUgaXJyZWxldmFudAotICogICAgICAgICAgICAgZm9yIHRoZSBpbXBsZW1lbnRhdGlvbiBtaWdodCBiZSBzaWxlbnRseSBkcm9wcGVkLiBJZiBkcm9wcGVkLAotICogICAgICAgICAgICAgdGhlIGN1cnJlbnQgZnVuY3Rpb24gZG9lcyBub3QgaGF2ZSBhY2Nlc3MgdG8gdGhlbSwKLSAqICAgICAgICAgICAgIGFuZCB0aGVyZWZvcmUgY2Fubm90IGNoZWNrIHRoZW0uIFNlZSBtYmVkdGxzX3JzYV9jb21wbGV0ZSgpLgotICogICAgICAgICAgICAgSWYgeW91IHdhbnQgdG8gY2hlY2sgdGhlIGNvbnNpc3RlbmN5IG9mIHRoZSBlbnRpcmUKLSAqICAgICAgICAgICAgIGNvbnRlbnQgb2YgYSBQS0NTMS1lbmNvZGVkIFJTQSBwcml2YXRlIGtleSwgZm9yIGV4YW1wbGUsIHlvdQotICogICAgICAgICAgICAgc2hvdWxkIHVzZSBtYmVkdGxzX3JzYV92YWxpZGF0ZV9wYXJhbXMoKSBiZWZvcmUgc2V0dGluZwotICogICAgICAgICAgICAgdXAgdGhlIFJTQSBjb250ZXh0LgotICogICAgICAgICAgICAgQWRkaXRpb25hbGx5LCBpZiB0aGUgaW1wbGVtZW50YXRpb24gcGVyZm9ybXMgZW1waXJpY2FsIGNoZWNrcywKLSAqICAgICAgICAgICAgIHRoZXNlIGNoZWNrcyBzdWJzdGFudGlhdGUgYnV0IGRvIG5vdCBndWFyYW50ZWUgY29uc2lzdGVuY3kuPC9saT4KLSAqICAgICAgICAgICAgIDxsaT5RdWFsaXR5OiBUaGlzIGZ1bmN0aW9uIGlzIG5vdCBleHBlY3RlZCB0byBwZXJmb3JtCi0gKiAgICAgICAgICAgICBleHRlbmRlZCBxdWFsaXR5IGFzc2Vzc21lbnRzIGxpa2UgY2hlY2tpbmcgdGhhdCB0aGUgcHJpbWUKLSAqICAgICAgICAgICAgIGZhY3RvcnMgYXJlIHNhZmUuIEFkZGl0aW9uYWxseSwgaXQgaXMgdGhlIHJlc3BvbnNpYmlsaXR5IG9mIHRoZQotICogICAgICAgICAgICAgdXNlciB0byBlbnN1cmUgdGhlIHRydXN0d29ydGhpbmVzcyBvZiB0aGUgc291cmNlIG9mIGhpcyBSU0EKLSAqICAgICAgICAgICAgIHBhcmFtZXRlcnMsIHdoaWNoIGdvZXMgYmV5b25kIHdoYXQgaXMgZWZmZWN0aXZlbHkgY2hlY2thYmxlCi0gKiAgICAgICAgICAgICBieSB0aGUgbGlicmFyeS48L2xpPjwvdWw+Ci0gKgotICogXHBhcmFtIGN0eCAgVGhlIGluaXRpYWxpemVkIFJTQSBjb250ZXh0IHRvIGNoZWNrLgotICoKLSAqIFxyZXR1cm4gICAgIFxjIDAgb24gc3VjY2Vzcy4KLSAqIFxyZXR1cm4gICAgIEFuIFxjIE1CRURUTFNfRVJSX1JTQV9YWFggZXJyb3IgY29kZSBvbiBmYWlsdXJlLgotICovCi1pbnQgbWJlZHRsc19yc2FfY2hlY2tfcHJpdmtleShjb25zdCBtYmVkdGxzX3JzYV9jb250ZXh0ICpjdHgpOwotCi0vKioKLSAqIFxicmllZiAgICAgICAgICBUaGlzIGZ1bmN0aW9uIGNoZWNrcyBhIHB1YmxpYy1wcml2YXRlIFJTQSBrZXkgcGFpci4KLSAqCi0gKiAgICAgICAgICAgICAgICAgSXQgY2hlY2tzIGVhY2ggb2YgdGhlIGNvbnRleHRzLCBhbmQgbWFrZXMgc3VyZSB0aGV5IG1hdGNoLgotICoKLSAqIFxwYXJhbSBwdWIgICAgICBUaGUgaW5pdGlhbGl6ZWQgUlNBIGNvbnRleHQgaG9sZGluZyB0aGUgcHVibGljIGtleS4KLSAqIFxwYXJhbSBwcnYgICAgICBUaGUgaW5pdGlhbGl6ZWQgUlNBIGNvbnRleHQgaG9sZGluZyB0aGUgcHJpdmF0ZSBrZXkuCi0gKgotICogXHJldHVybiAgICAgICAgIFxjIDAgb24gc3VjY2Vzcy4KLSAqIFxyZXR1cm4gICAgICAgICBBbiBcYyBNQkVEVExTX0VSUl9SU0FfWFhYIGVycm9yIGNvZGUgb24gZmFpbHVyZS4KLSAqLwotaW50IG1iZWR0bHNfcnNhX2NoZWNrX3B1Yl9wcml2KGNvbnN0IG1iZWR0bHNfcnNhX2NvbnRleHQgKnB1YiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBtYmVkdGxzX3JzYV9jb250ZXh0ICpwcnYpOwotCi0vKioKLSAqIFxicmllZiAgICAgICAgICBUaGlzIGZ1bmN0aW9uIHBlcmZvcm1zIGFuIFJTQSBwdWJsaWMga2V5IG9wZXJhdGlvbi4KLSAqCi0gKiBccGFyYW0gY3R4ICAgICAgVGhlIGluaXRpYWxpemVkIFJTQSBjb250ZXh0IHRvIHVzZS4KLSAqIFxwYXJhbSBpbnB1dCAgICBUaGUgaW5wdXQgYnVmZmVyLiBUaGlzIG11c3QgYmUgYSByZWFkYWJsZSBidWZmZXIKLSAqICAgICAgICAgICAgICAgICBvZiBsZW5ndGggXGMgY3R4LT5sZW4gQnl0ZXMuIEZvciBleGFtcGxlLCBcYyAyNTYgQnl0ZXMKLSAqICAgICAgICAgICAgICAgICBmb3IgYW4gMjA0OC1iaXQgUlNBIG1vZHVsdXMuCi0gKiBccGFyYW0gb3V0cHV0ICAgVGhlIG91dHB1dCBidWZmZXIuIFRoaXMgbXVzdCBiZSBhIHdyaXRhYmxlIGJ1ZmZlcgotICogICAgICAgICAgICAgICAgIG9mIGxlbmd0aCBcYyBjdHgtPmxlbiBCeXRlcy4gRm9yIGV4YW1wbGUsIFxjIDI1NiBCeXRlcwotICogICAgICAgICAgICAgICAgIGZvciBhbiAyMDQ4LWJpdCBSU0EgbW9kdWx1cy4KLSAqCi0gKiBcbm90ZSAgICAgICAgICAgVGhpcyBmdW5jdGlvbiBkb2VzIG5vdCBoYW5kbGUgbWVzc2FnZSBwYWRkaW5nLgotICoKLSAqIFxub3RlICAgICAgICAgICBNYWtlIHN1cmUgdG8gc2V0IFxwIGlucHV0WzBdID0gMCBvciBlbnN1cmUgdGhhdAotICogICAgICAgICAgICAgICAgIGlucHV0IGlzIHNtYWxsZXIgdGhhbiBcYyBOLgotICoKLSAqIFxyZXR1cm4gICAgICAgICBcYyAwIG9uIHN1Y2Nlc3MuCi0gKiBccmV0dXJuICAgICAgICAgQW4gXGMgTUJFRFRMU19FUlJfUlNBX1hYWCBlcnJvciBjb2RlIG9uIGZhaWx1cmUuCi0gKi8KLWludCBtYmVkdGxzX3JzYV9wdWJsaWMobWJlZHRsc19yc2FfY29udGV4dCAqY3R4LAotICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1bnNpZ25lZCBjaGFyICppbnB1dCwKLSAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgY2hhciAqb3V0cHV0KTsKLQotLyoqCi0gKiBcYnJpZWYgICAgICAgICAgVGhpcyBmdW5jdGlvbiBwZXJmb3JtcyBhbiBSU0EgcHJpdmF0ZSBrZXkgb3BlcmF0aW9uLgotICoKLSAqIFxub3RlICAgICAgICAgICBCbGluZGluZyBpcyB1c2VkIGlmIGFuZCBvbmx5IGlmIGEgUFJORyBpcyBwcm92aWRlZC4KLSAqCi0gKiBcbm90ZSAgICAgICAgICAgSWYgYmxpbmRpbmcgaXMgdXNlZCwgYm90aCB0aGUgYmFzZSBvZiBleHBvbmVudGlhdGlvbgotICogICAgICAgICAgICAgICAgIGFuZCB0aGUgZXhwb25lbnQgYXJlIGJsaW5kZWQsIHByb3ZpZGluZyBwcm90ZWN0aW9uCi0gKiAgICAgICAgICAgICAgICAgYWdhaW5zdCBzb21lIHNpZGUtY2hhbm5lbCBhdHRhY2tzLgotICoKLSAqIFx3YXJuaW5nICAgICAgICBJdCBpcyBkZXByZWNhdGVkIGFuZCBhIHNlY3VyaXR5IHJpc2sgdG8gbm90IHByb3ZpZGUKLSAqICAgICAgICAgICAgICAgICBhIFBSTkcgaGVyZSBhbmQgdGhlcmVieSBwcmV2ZW50IHRoZSB1c2Ugb2YgYmxpbmRpbmcuCi0gKiAgICAgICAgICAgICAgICAgRnV0dXJlIHZlcnNpb25zIG9mIHRoZSBsaWJyYXJ5IG1heSBlbmZvcmNlIHRoZSBwcmVzZW5jZQotICogICAgICAgICAgICAgICAgIG9mIGEgUFJORy4KLSAqCi0gKiBccGFyYW0gY3R4ICAgICAgVGhlIGluaXRpYWxpemVkIFJTQSBjb250ZXh0IHRvIHVzZS4KLSAqIFxwYXJhbSBmX3JuZyAgICBUaGUgUk5HIGZ1bmN0aW9uLCB1c2VkIGZvciBibGluZGluZy4gSXQgaXMgbWFuZGF0b3J5LgotICogXHBhcmFtIHBfcm5nICAgIFRoZSBSTkcgY29udGV4dCB0byBwYXNzIHRvIFxwIGZfcm5nLiBUaGlzIG1heSBiZSBcYyBOVUxMCi0gKiAgICAgICAgICAgICAgICAgaWYgXHAgZl9ybmcgZG9lc24ndCBuZWVkIGEgY29udGV4dC4KLSAqIFxwYXJhbSBpbnB1dCAgICBUaGUgaW5wdXQgYnVmZmVyLiBUaGlzIG11c3QgYmUgYSByZWFkYWJsZSBidWZmZXIKLSAqICAgICAgICAgICAgICAgICBvZiBsZW5ndGggXGMgY3R4LT5sZW4gQnl0ZXMuIEZvciBleGFtcGxlLCBcYyAyNTYgQnl0ZXMKLSAqICAgICAgICAgICAgICAgICBmb3IgYW4gMjA0OC1iaXQgUlNBIG1vZHVsdXMuCi0gKiBccGFyYW0gb3V0cHV0ICAgVGhlIG91dHB1dCBidWZmZXIuIFRoaXMgbXVzdCBiZSBhIHdyaXRhYmxlIGJ1ZmZlcgotICogICAgICAgICAgICAgICAgIG9mIGxlbmd0aCBcYyBjdHgtPmxlbiBCeXRlcy4gRm9yIGV4YW1wbGUsIFxjIDI1NiBCeXRlcwotICogICAgICAgICAgICAgICAgIGZvciBhbiAyMDQ4LWJpdCBSU0EgbW9kdWx1cy4KLSAqCi0gKiBccmV0dXJuICAgICAgICAgXGMgMCBvbiBzdWNjZXNzLgotICogXHJldHVybiAgICAgICAgIEFuIFxjIE1CRURUTFNfRVJSX1JTQV9YWFggZXJyb3IgY29kZSBvbiBmYWlsdXJlLgotICoKLSAqLwotaW50IG1iZWR0bHNfcnNhX3ByaXZhdGUobWJlZHRsc19yc2FfY29udGV4dCAqY3R4LAotICAgICAgICAgICAgICAgICAgICAgICAgaW50ICgqZl9ybmcpKHZvaWQgKiwgdW5zaWduZWQgY2hhciAqLCBzaXplX3QpLAotICAgICAgICAgICAgICAgICAgICAgICAgdm9pZCAqcF9ybmcsCi0gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1bnNpZ25lZCBjaGFyICppbnB1dCwKLSAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGNoYXIgKm91dHB1dCk7Ci0KLS8qKgotICogXGJyaWVmICAgICAgICAgIFRoaXMgZnVuY3Rpb24gYWRkcyB0aGUgbWVzc2FnZSBwYWRkaW5nLCB0aGVuIHBlcmZvcm1zIGFuIFJTQQotICogICAgICAgICAgICAgICAgIG9wZXJhdGlvbi4KLSAqCi0gKiAgICAgICAgICAgICAgICAgSXQgaXMgdGhlIGdlbmVyaWMgd3JhcHBlciBmb3IgcGVyZm9ybWluZyBhIFBLQ1MjMSBlbmNyeXB0aW9uCi0gKiAgICAgICAgICAgICAgICAgb3BlcmF0aW9uLgotICoKLSAqIFxwYXJhbSBjdHggICAgICBUaGUgaW5pdGlhbGl6ZWQgUlNBIGNvbnRleHQgdG8gdXNlLgotICogXHBhcmFtIGZfcm5nICAgIFRoZSBSTkcgdG8gdXNlLiBJdCBpcyB1c2VkIGZvciBwYWRkaW5nIGdlbmVyYXRpb24KLSAqICAgICAgICAgICAgICAgICBhbmQgaXQgaXMgbWFuZGF0b3J5LgotICogXHBhcmFtIHBfcm5nICAgIFRoZSBSTkcgY29udGV4dCB0byBiZSBwYXNzZWQgdG8gXHAgZl9ybmcuIE1heSBiZQotICogICAgICAgICAgICAgICAgIFxjIE5VTEwgaWYgXHAgZl9ybmcgZG9lc24ndCBuZWVkIGEgY29udGV4dCBhcmd1bWVudC4KLSAqIFxwYXJhbSBpbGVuICAgICBUaGUgbGVuZ3RoIG9mIHRoZSBwbGFpbnRleHQgaW4gQnl0ZXMuCi0gKiBccGFyYW0gaW5wdXQgICAgVGhlIGlucHV0IGRhdGEgdG8gZW5jcnlwdC4gVGhpcyBtdXN0IGJlIGEgcmVhZGFibGUKLSAqICAgICAgICAgICAgICAgICBidWZmZXIgb2Ygc2l6ZSBccCBpbGVuIEJ5dGVzLiBJdCBtYXkgYmUgXGMgTlVMTCBpZgotICogICAgICAgICAgICAgICAgIGBpbGVuID09IDBgLgotICogXHBhcmFtIG91dHB1dCAgIFRoZSBvdXRwdXQgYnVmZmVyLiBUaGlzIG11c3QgYmUgYSB3cml0YWJsZSBidWZmZXIKLSAqICAgICAgICAgICAgICAgICBvZiBsZW5ndGggXGMgY3R4LT5sZW4gQnl0ZXMuIEZvciBleGFtcGxlLCBcYyAyNTYgQnl0ZXMKLSAqICAgICAgICAgICAgICAgICBmb3IgYW4gMjA0OC1iaXQgUlNBIG1vZHVsdXMuCi0gKgotICogXHJldHVybiAgICAgICAgIFxjIDAgb24gc3VjY2Vzcy4KLSAqIFxyZXR1cm4gICAgICAgICBBbiBcYyBNQkVEVExTX0VSUl9SU0FfWFhYIGVycm9yIGNvZGUgb24gZmFpbHVyZS4KLSAqLwotaW50IG1iZWR0bHNfcnNhX3BrY3MxX2VuY3J5cHQobWJlZHRsc19yc2FfY29udGV4dCAqY3R4LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50ICgqZl9ybmcpKHZvaWQgKiwgdW5zaWduZWQgY2hhciAqLCBzaXplX3QpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdm9pZCAqcF9ybmcsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgaWxlbiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgKmlucHV0LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgY2hhciAqb3V0cHV0KTsKLQotLyoqCi0gKiBcYnJpZWYgICAgICAgICAgVGhpcyBmdW5jdGlvbiBwZXJmb3JtcyBhIFBLQ1MjMSB2MS41IGVuY3J5cHRpb24gb3BlcmF0aW9uCi0gKiAgICAgICAgICAgICAgICAgKFJTQUVTLVBLQ1MxLXYxXzUtRU5DUllQVCkuCi0gKgotICogXHBhcmFtIGN0eCAgICAgIFRoZSBpbml0aWFsaXplZCBSU0EgY29udGV4dCB0byB1c2UuCi0gKiBccGFyYW0gZl9ybmcgICAgVGhlIFJORyBmdW5jdGlvbiB0byB1c2UuIEl0IGlzIG1hbmRhdG9yeSBhbmQgdXNlZCBmb3IKLSAqICAgICAgICAgICAgICAgICBwYWRkaW5nIGdlbmVyYXRpb24uCi0gKiBccGFyYW0gcF9ybmcgICAgVGhlIFJORyBjb250ZXh0IHRvIGJlIHBhc3NlZCB0byBccCBmX3JuZy4gVGhpcyBtYXkKLSAqICAgICAgICAgICAgICAgICBiZSBcYyBOVUxMIGlmIFxwIGZfcm5nIGRvZXNuJ3QgbmVlZCBhIGNvbnRleHQgYXJndW1lbnQuCi0gKiBccGFyYW0gaWxlbiAgICAgVGhlIGxlbmd0aCBvZiB0aGUgcGxhaW50ZXh0IGluIEJ5dGVzLgotICogXHBhcmFtIGlucHV0ICAgIFRoZSBpbnB1dCBkYXRhIHRvIGVuY3J5cHQuIFRoaXMgbXVzdCBiZSBhIHJlYWRhYmxlCi0gKiAgICAgICAgICAgICAgICAgYnVmZmVyIG9mIHNpemUgXHAgaWxlbiBCeXRlcy4gSXQgbWF5IGJlIFxjIE5VTEwgaWYKLSAqICAgICAgICAgICAgICAgICBgaWxlbiA9PSAwYC4KLSAqIFxwYXJhbSBvdXRwdXQgICBUaGUgb3V0cHV0IGJ1ZmZlci4gVGhpcyBtdXN0IGJlIGEgd3JpdGFibGUgYnVmZmVyCi0gKiAgICAgICAgICAgICAgICAgb2YgbGVuZ3RoIFxjIGN0eC0+bGVuIEJ5dGVzLiBGb3IgZXhhbXBsZSwgXGMgMjU2IEJ5dGVzCi0gKiAgICAgICAgICAgICAgICAgZm9yIGFuIDIwNDgtYml0IFJTQSBtb2R1bHVzLgotICoKLSAqIFxyZXR1cm4gICAgICAgICBcYyAwIG9uIHN1Y2Nlc3MuCi0gKiBccmV0dXJuICAgICAgICAgQW4gXGMgTUJFRFRMU19FUlJfUlNBX1hYWCBlcnJvciBjb2RlIG9uIGZhaWx1cmUuCi0gKi8KLWludCBtYmVkdGxzX3JzYV9yc2Flc19wa2NzMV92MTVfZW5jcnlwdChtYmVkdGxzX3JzYV9jb250ZXh0ICpjdHgsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50ICgqZl9ybmcpKHZvaWQgKiwgdW5zaWduZWQgY2hhciAqLCBzaXplX3QpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZvaWQgKnBfcm5nLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBpbGVuLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgKmlucHV0LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGNoYXIgKm91dHB1dCk7Ci0KLS8qKgotICogXGJyaWVmICAgICAgICAgICAgVGhpcyBmdW5jdGlvbiBwZXJmb3JtcyBhIFBLQ1MjMSB2Mi4xIE9BRVAgZW5jcnlwdGlvbgotICogICAgICAgICAgICAgICAgICAgb3BlcmF0aW9uIChSU0FFUy1PQUVQLUVOQ1JZUFQpLgotICoKLSAqIFxub3RlICAgICAgICAgICAgIFRoZSBvdXRwdXQgYnVmZmVyIG11c3QgYmUgYXMgbGFyZ2UgYXMgdGhlIHNpemUKLSAqICAgICAgICAgICAgICAgICAgIG9mIGN0eC0+Ti4gRm9yIGV4YW1wbGUsIDEyOCBCeXRlcyBpZiBSU0EtMTAyNCBpcyB1c2VkLgotICoKLSAqIFxwYXJhbSBjdHggICAgICAgIFRoZSBpbml0aWFsaXplZCBSU0EgY29udGV4dCB0byB1c2UuCi0gKiBccGFyYW0gZl9ybmcgICAgICBUaGUgUk5HIGZ1bmN0aW9uIHRvIHVzZS4gVGhpcyBpcyBuZWVkZWQgZm9yIHBhZGRpbmcKLSAqICAgICAgICAgICAgICAgICAgIGdlbmVyYXRpb24gYW5kIGlzIG1hbmRhdG9yeS4KLSAqIFxwYXJhbSBwX3JuZyAgICAgIFRoZSBSTkcgY29udGV4dCB0byBiZSBwYXNzZWQgdG8gXHAgZl9ybmcuIFRoaXMgbWF5Ci0gKiAgICAgICAgICAgICAgICAgICBiZSBcYyBOVUxMIGlmIFxwIGZfcm5nIGRvZXNuJ3QgbmVlZCBhIGNvbnRleHQgYXJndW1lbnQuCi0gKiBccGFyYW0gbGFiZWwgICAgICBUaGUgYnVmZmVyIGhvbGRpbmcgdGhlIGN1c3RvbSBsYWJlbCB0byB1c2UuCi0gKiAgICAgICAgICAgICAgICAgICBUaGlzIG11c3QgYmUgYSByZWFkYWJsZSBidWZmZXIgb2YgbGVuZ3RoIFxwIGxhYmVsX2xlbgotICogICAgICAgICAgICAgICAgICAgQnl0ZXMuIEl0IG1heSBiZSBcYyBOVUxMIGlmIFxwIGxhYmVsX2xlbiBpcyBcYyAwLgotICogXHBhcmFtIGxhYmVsX2xlbiAgVGhlIGxlbmd0aCBvZiB0aGUgbGFiZWwgaW4gQnl0ZXMuCi0gKiBccGFyYW0gaWxlbiAgICAgICBUaGUgbGVuZ3RoIG9mIHRoZSBwbGFpbnRleHQgYnVmZmVyIFxwIGlucHV0IGluIEJ5dGVzLgotICogXHBhcmFtIGlucHV0ICAgICAgVGhlIGlucHV0IGRhdGEgdG8gZW5jcnlwdC4gVGhpcyBtdXN0IGJlIGEgcmVhZGFibGUKLSAqICAgICAgICAgICAgICAgICAgIGJ1ZmZlciBvZiBzaXplIFxwIGlsZW4gQnl0ZXMuIEl0IG1heSBiZSBcYyBOVUxMIGlmCi0gKiAgICAgICAgICAgICAgICAgICBgaWxlbiA9PSAwYC4KLSAqIFxwYXJhbSBvdXRwdXQgICAgIFRoZSBvdXRwdXQgYnVmZmVyLiBUaGlzIG11c3QgYmUgYSB3cml0YWJsZSBidWZmZXIKLSAqICAgICAgICAgICAgICAgICAgIG9mIGxlbmd0aCBcYyBjdHgtPmxlbiBCeXRlcy4gRm9yIGV4YW1wbGUsIFxjIDI1NiBCeXRlcwotICogICAgICAgICAgICAgICAgICAgZm9yIGFuIDIwNDgtYml0IFJTQSBtb2R1bHVzLgotICoKLSAqIFxyZXR1cm4gICAgICAgICAgIFxjIDAgb24gc3VjY2Vzcy4KLSAqIFxyZXR1cm4gICAgICAgICAgIEFuIFxjIE1CRURUTFNfRVJSX1JTQV9YWFggZXJyb3IgY29kZSBvbiBmYWlsdXJlLgotICovCi1pbnQgbWJlZHRsc19yc2FfcnNhZXNfb2FlcF9lbmNyeXB0KG1iZWR0bHNfcnNhX2NvbnRleHQgKmN0eCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50ICgqZl9ybmcpKHZvaWQgKiwgdW5zaWduZWQgY2hhciAqLCBzaXplX3QpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2b2lkICpwX3JuZywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdW5zaWduZWQgY2hhciAqbGFiZWwsIHNpemVfdCBsYWJlbF9sZW4sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBpbGVuLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1bnNpZ25lZCBjaGFyICppbnB1dCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgY2hhciAqb3V0cHV0KTsKLQotLyoqCi0gKiBcYnJpZWYgICAgICAgICAgVGhpcyBmdW5jdGlvbiBwZXJmb3JtcyBhbiBSU0Egb3BlcmF0aW9uLCB0aGVuIHJlbW92ZXMgdGhlCi0gKiAgICAgICAgICAgICAgICAgbWVzc2FnZSBwYWRkaW5nLgotICoKLSAqICAgICAgICAgICAgICAgICBJdCBpcyB0aGUgZ2VuZXJpYyB3cmFwcGVyIGZvciBwZXJmb3JtaW5nIGEgUEtDUyMxIGRlY3J5cHRpb24KLSAqICAgICAgICAgICAgICAgICBvcGVyYXRpb24uCi0gKgotICogXHdhcm5pbmcgICAgICAgIFdoZW4gXHAgY3R4LT5wYWRkaW5nIGlzIHNldCB0byAjTUJFRFRMU19SU0FfUEtDU19WMTUsCi0gKiAgICAgICAgICAgICAgICAgbWJlZHRsc19yc2FfcnNhZXNfcGtjczFfdjE1X2RlY3J5cHQoKSBpcyBjYWxsZWQsIHdoaWNoIGlzIGFuCi0gKiAgICAgICAgICAgICAgICAgaW5oZXJlbnRseSBkYW5nZXJvdXMgZnVuY3Rpb24gKENXRS0yNDIpLgotICoKLSAqIFxub3RlICAgICAgICAgICBUaGUgb3V0cHV0IGJ1ZmZlciBsZW5ndGggXGMgb3V0cHV0X21heF9sZW4gc2hvdWxkIGJlCi0gKiAgICAgICAgICAgICAgICAgYXMgbGFyZ2UgYXMgdGhlIHNpemUgXHAgY3R4LT5sZW4gb2YgXHAgY3R4LT5OIChmb3IgZXhhbXBsZSwKLSAqICAgICAgICAgICAgICAgICAxMjggQnl0ZXMgaWYgUlNBLTEwMjQgaXMgdXNlZCkgdG8gYmUgYWJsZSB0byBob2xkIGFuCi0gKiAgICAgICAgICAgICAgICAgYXJiaXRyYXJ5IGRlY3J5cHRlZCBtZXNzYWdlLiBJZiBpdCBpcyBub3QgbGFyZ2UgZW5vdWdoIHRvCi0gKiAgICAgICAgICAgICAgICAgaG9sZCB0aGUgZGVjcnlwdGlvbiBvZiB0aGUgcGFydGljdWxhciBjaXBoZXJ0ZXh0IHByb3ZpZGVkLAotICogICAgICAgICAgICAgICAgIHRoZSBmdW5jdGlvbiByZXR1cm5zIFxjIE1CRURUTFNfRVJSX1JTQV9PVVRQVVRfVE9PX0xBUkdFLgotICoKLSAqIFxwYXJhbSBjdHggICAgICBUaGUgaW5pdGlhbGl6ZWQgUlNBIGNvbnRleHQgdG8gdXNlLgotICogXHBhcmFtIGZfcm5nICAgIFRoZSBSTkcgZnVuY3Rpb24uIFRoaXMgaXMgdXNlZCBmb3IgYmxpbmRpbmcgYW5kIGlzCi0gKiAgICAgICAgICAgICAgICAgbWFuZGF0b3J5OyBzZWUgbWJlZHRsc19yc2FfcHJpdmF0ZSgpIGZvciBtb3JlLgotICogXHBhcmFtIHBfcm5nICAgIFRoZSBSTkcgY29udGV4dCB0byBiZSBwYXNzZWQgdG8gXHAgZl9ybmcuIFRoaXMgbWF5IGJlCi0gKiAgICAgICAgICAgICAgICAgXGMgTlVMTCBpZiBccCBmX3JuZyBkb2Vzbid0IG5lZWQgYSBjb250ZXh0LgotICogXHBhcmFtIG9sZW4gICAgIFRoZSBhZGRyZXNzIGF0IHdoaWNoIHRvIHN0b3JlIHRoZSBsZW5ndGggb2YKLSAqICAgICAgICAgICAgICAgICB0aGUgcGxhaW50ZXh0LiBUaGlzIG11c3Qgbm90IGJlIFxjIE5VTEwuCi0gKiBccGFyYW0gaW5wdXQgICAgVGhlIGNpcGhlcnRleHQgYnVmZmVyLiBUaGlzIG11c3QgYmUgYSByZWFkYWJsZSBidWZmZXIKLSAqICAgICAgICAgICAgICAgICBvZiBsZW5ndGggXGMgY3R4LT5sZW4gQnl0ZXMuIEZvciBleGFtcGxlLCBcYyAyNTYgQnl0ZXMKLSAqICAgICAgICAgICAgICAgICBmb3IgYW4gMjA0OC1iaXQgUlNBIG1vZHVsdXMuCi0gKiBccGFyYW0gb3V0cHV0ICAgVGhlIGJ1ZmZlciB1c2VkIHRvIGhvbGQgdGhlIHBsYWludGV4dC4gVGhpcyBtdXN0Ci0gKiAgICAgICAgICAgICAgICAgYmUgYSB3cml0YWJsZSBidWZmZXIgb2YgbGVuZ3RoIFxwIG91dHB1dF9tYXhfbGVuIEJ5dGVzLgotICogXHBhcmFtIG91dHB1dF9tYXhfbGVuIFRoZSBsZW5ndGggaW4gQnl0ZXMgb2YgdGhlIG91dHB1dCBidWZmZXIgXHAgb3V0cHV0LgotICoKLSAqIFxyZXR1cm4gICAgICAgICBcYyAwIG9uIHN1Y2Nlc3MuCi0gKiBccmV0dXJuICAgICAgICAgQW4gXGMgTUJFRFRMU19FUlJfUlNBX1hYWCBlcnJvciBjb2RlIG9uIGZhaWx1cmUuCi0gKi8KLWludCBtYmVkdGxzX3JzYV9wa2NzMV9kZWNyeXB0KG1iZWR0bHNfcnNhX2NvbnRleHQgKmN0eCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCAoKmZfcm5nKSh2b2lkICosIHVuc2lnbmVkIGNoYXIgKiwgc2l6ZV90KSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZvaWQgKnBfcm5nLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90ICpvbGVuLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdW5zaWduZWQgY2hhciAqaW5wdXQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBjaGFyICpvdXRwdXQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3Qgb3V0cHV0X21heF9sZW4pOwotCi0vKioKLSAqIFxicmllZiAgICAgICAgICBUaGlzIGZ1bmN0aW9uIHBlcmZvcm1zIGEgUEtDUyMxIHYxLjUgZGVjcnlwdGlvbgotICogICAgICAgICAgICAgICAgIG9wZXJhdGlvbiAoUlNBRVMtUEtDUzEtdjFfNS1ERUNSWVBUKS4KLSAqCi0gKiBcd2FybmluZyAgICAgICAgVGhpcyBpcyBhbiBpbmhlcmVudGx5IGRhbmdlcm91cyBmdW5jdGlvbiAoQ1dFLTI0MikuIFVubGVzcwotICogICAgICAgICAgICAgICAgIGl0IGlzIHVzZWQgaW4gYSBzaWRlIGNoYW5uZWwgZnJlZSBhbmQgc2FmZSB3YXkgKGVnLgotICogICAgICAgICAgICAgICAgIGltcGxlbWVudGluZyB0aGUgVExTIHByb3RvY29sIGFzIHBlciA3LjQuNy4xIG9mIFJGQyA1MjQ2KSwKLSAqICAgICAgICAgICAgICAgICB0aGUgY2FsbGluZyBjb2RlIGlzIHZ1bG5lcmFibGUuCi0gKgotICogXG5vdGUgICAgICAgICAgIFRoZSBvdXRwdXQgYnVmZmVyIGxlbmd0aCBcYyBvdXRwdXRfbWF4X2xlbiBzaG91bGQgYmUKLSAqICAgICAgICAgICAgICAgICBhcyBsYXJnZSBhcyB0aGUgc2l6ZSBccCBjdHgtPmxlbiBvZiBccCBjdHgtPk4sIGZvciBleGFtcGxlLAotICogICAgICAgICAgICAgICAgIDEyOCBCeXRlcyBpZiBSU0EtMTAyNCBpcyB1c2VkLCB0byBiZSBhYmxlIHRvIGhvbGQgYW4KLSAqICAgICAgICAgICAgICAgICBhcmJpdHJhcnkgZGVjcnlwdGVkIG1lc3NhZ2UuIElmIGl0IGlzIG5vdCBsYXJnZSBlbm91Z2ggdG8KLSAqICAgICAgICAgICAgICAgICBob2xkIHRoZSBkZWNyeXB0aW9uIG9mIHRoZSBwYXJ0aWN1bGFyIGNpcGhlcnRleHQgcHJvdmlkZWQsCi0gKiAgICAgICAgICAgICAgICAgdGhlIGZ1bmN0aW9uIHJldHVybnMgI01CRURUTFNfRVJSX1JTQV9PVVRQVVRfVE9PX0xBUkdFLgotICoKLSAqIFxwYXJhbSBjdHggICAgICBUaGUgaW5pdGlhbGl6ZWQgUlNBIGNvbnRleHQgdG8gdXNlLgotICogXHBhcmFtIGZfcm5nICAgIFRoZSBSTkcgZnVuY3Rpb24uIFRoaXMgaXMgdXNlZCBmb3IgYmxpbmRpbmcgYW5kIGlzCi0gKiAgICAgICAgICAgICAgICAgbWFuZGF0b3J5OyBzZWUgbWJlZHRsc19yc2FfcHJpdmF0ZSgpIGZvciBtb3JlLgotICogXHBhcmFtIHBfcm5nICAgIFRoZSBSTkcgY29udGV4dCB0byBiZSBwYXNzZWQgdG8gXHAgZl9ybmcuIFRoaXMgbWF5IGJlCi0gKiAgICAgICAgICAgICAgICAgXGMgTlVMTCBpZiBccCBmX3JuZyBkb2Vzbid0IG5lZWQgYSBjb250ZXh0LgotICogXHBhcmFtIG9sZW4gICAgIFRoZSBhZGRyZXNzIGF0IHdoaWNoIHRvIHN0b3JlIHRoZSBsZW5ndGggb2YKLSAqICAgICAgICAgICAgICAgICB0aGUgcGxhaW50ZXh0LiBUaGlzIG11c3Qgbm90IGJlIFxjIE5VTEwuCi0gKiBccGFyYW0gaW5wdXQgICAgVGhlIGNpcGhlcnRleHQgYnVmZmVyLiBUaGlzIG11c3QgYmUgYSByZWFkYWJsZSBidWZmZXIKLSAqICAgICAgICAgICAgICAgICBvZiBsZW5ndGggXGMgY3R4LT5sZW4gQnl0ZXMuIEZvciBleGFtcGxlLCBcYyAyNTYgQnl0ZXMKLSAqICAgICAgICAgICAgICAgICBmb3IgYW4gMjA0OC1iaXQgUlNBIG1vZHVsdXMuCi0gKiBccGFyYW0gb3V0cHV0ICAgVGhlIGJ1ZmZlciB1c2VkIHRvIGhvbGQgdGhlIHBsYWludGV4dC4gVGhpcyBtdXN0Ci0gKiAgICAgICAgICAgICAgICAgYmUgYSB3cml0YWJsZSBidWZmZXIgb2YgbGVuZ3RoIFxwIG91dHB1dF9tYXhfbGVuIEJ5dGVzLgotICogXHBhcmFtIG91dHB1dF9tYXhfbGVuIFRoZSBsZW5ndGggaW4gQnl0ZXMgb2YgdGhlIG91dHB1dCBidWZmZXIgXHAgb3V0cHV0LgotICoKLSAqIFxyZXR1cm4gICAgICAgICBcYyAwIG9uIHN1Y2Nlc3MuCi0gKiBccmV0dXJuICAgICAgICAgQW4gXGMgTUJFRFRMU19FUlJfUlNBX1hYWCBlcnJvciBjb2RlIG9uIGZhaWx1cmUuCi0gKgotICovCi1pbnQgbWJlZHRsc19yc2FfcnNhZXNfcGtjczFfdjE1X2RlY3J5cHQobWJlZHRsc19yc2FfY29udGV4dCAqY3R4LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCAoKmZfcm5nKSh2b2lkICosIHVuc2lnbmVkIGNoYXIgKiwgc2l6ZV90KSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2b2lkICpwX3JuZywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgKm9sZW4sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdW5zaWduZWQgY2hhciAqaW5wdXQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgY2hhciAqb3V0cHV0LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBvdXRwdXRfbWF4X2xlbik7Ci0KLS8qKgotICogXGJyaWVmICAgICAgICAgICAgVGhpcyBmdW5jdGlvbiBwZXJmb3JtcyBhIFBLQ1MjMSB2Mi4xIE9BRVAgZGVjcnlwdGlvbgotICogICAgICAgICAgICAgICAgICAgb3BlcmF0aW9uIChSU0FFUy1PQUVQLURFQ1JZUFQpLgotICoKLSAqIFxub3RlICAgICAgICAgICAgIFRoZSBvdXRwdXQgYnVmZmVyIGxlbmd0aCBcYyBvdXRwdXRfbWF4X2xlbiBzaG91bGQgYmUKLSAqICAgICAgICAgICAgICAgICAgIGFzIGxhcmdlIGFzIHRoZSBzaXplIFxwIGN0eC0+bGVuIG9mIFxwIGN0eC0+TiwgZm9yCi0gKiAgICAgICAgICAgICAgICAgICBleGFtcGxlLCAxMjggQnl0ZXMgaWYgUlNBLTEwMjQgaXMgdXNlZCwgdG8gYmUgYWJsZSB0bwotICogICAgICAgICAgICAgICAgICAgaG9sZCBhbiBhcmJpdHJhcnkgZGVjcnlwdGVkIG1lc3NhZ2UuIElmIGl0IGlzIG5vdAotICogICAgICAgICAgICAgICAgICAgbGFyZ2UgZW5vdWdoIHRvIGhvbGQgdGhlIGRlY3J5cHRpb24gb2YgdGhlIHBhcnRpY3VsYXIKLSAqICAgICAgICAgICAgICAgICAgIGNpcGhlcnRleHQgcHJvdmlkZWQsIHRoZSBmdW5jdGlvbiByZXR1cm5zCi0gKiAgICAgICAgICAgICAgICAgICAjTUJFRFRMU19FUlJfUlNBX09VVFBVVF9UT09fTEFSR0UuCi0gKgotICogXHBhcmFtIGN0eCAgICAgICAgVGhlIGluaXRpYWxpemVkIFJTQSBjb250ZXh0IHRvIHVzZS4KLSAqIFxwYXJhbSBmX3JuZyAgICAgIFRoZSBSTkcgZnVuY3Rpb24uIFRoaXMgaXMgdXNlZCBmb3IgYmxpbmRpbmcgYW5kIGlzCi0gKiAgICAgICAgICAgICAgICAgICBtYW5kYXRvcnkuCi0gKiBccGFyYW0gcF9ybmcgICAgICBUaGUgUk5HIGNvbnRleHQgdG8gYmUgcGFzc2VkIHRvIFxwIGZfcm5nLiBUaGlzIG1heSBiZQotICogICAgICAgICAgICAgICAgICAgXGMgTlVMTCBpZiBccCBmX3JuZyBkb2Vzbid0IG5lZWQgYSBjb250ZXh0LgotICogXHBhcmFtIGxhYmVsICAgICAgVGhlIGJ1ZmZlciBob2xkaW5nIHRoZSBjdXN0b20gbGFiZWwgdG8gdXNlLgotICogICAgICAgICAgICAgICAgICAgVGhpcyBtdXN0IGJlIGEgcmVhZGFibGUgYnVmZmVyIG9mIGxlbmd0aCBccCBsYWJlbF9sZW4KLSAqICAgICAgICAgICAgICAgICAgIEJ5dGVzLiBJdCBtYXkgYmUgXGMgTlVMTCBpZiBccCBsYWJlbF9sZW4gaXMgXGMgMC4KLSAqIFxwYXJhbSBsYWJlbF9sZW4gIFRoZSBsZW5ndGggb2YgdGhlIGxhYmVsIGluIEJ5dGVzLgotICogXHBhcmFtIG9sZW4gICAgICAgVGhlIGFkZHJlc3MgYXQgd2hpY2ggdG8gc3RvcmUgdGhlIGxlbmd0aCBvZgotICogICAgICAgICAgICAgICAgICAgdGhlIHBsYWludGV4dC4gVGhpcyBtdXN0IG5vdCBiZSBcYyBOVUxMLgotICogXHBhcmFtIGlucHV0ICAgICAgVGhlIGNpcGhlcnRleHQgYnVmZmVyLiBUaGlzIG11c3QgYmUgYSByZWFkYWJsZSBidWZmZXIKLSAqICAgICAgICAgICAgICAgICAgIG9mIGxlbmd0aCBcYyBjdHgtPmxlbiBCeXRlcy4gRm9yIGV4YW1wbGUsIFxjIDI1NiBCeXRlcwotICogICAgICAgICAgICAgICAgICAgZm9yIGFuIDIwNDgtYml0IFJTQSBtb2R1bHVzLgotICogXHBhcmFtIG91dHB1dCAgICAgVGhlIGJ1ZmZlciB1c2VkIHRvIGhvbGQgdGhlIHBsYWludGV4dC4gVGhpcyBtdXN0Ci0gKiAgICAgICAgICAgICAgICAgICBiZSBhIHdyaXRhYmxlIGJ1ZmZlciBvZiBsZW5ndGggXHAgb3V0cHV0X21heF9sZW4gQnl0ZXMuCi0gKiBccGFyYW0gb3V0cHV0X21heF9sZW4gVGhlIGxlbmd0aCBpbiBCeXRlcyBvZiB0aGUgb3V0cHV0IGJ1ZmZlciBccCBvdXRwdXQuCi0gKgotICogXHJldHVybiAgICAgICAgIFxjIDAgb24gc3VjY2Vzcy4KLSAqIFxyZXR1cm4gICAgICAgICBBbiBcYyBNQkVEVExTX0VSUl9SU0FfWFhYIGVycm9yIGNvZGUgb24gZmFpbHVyZS4KLSAqLwotaW50IG1iZWR0bHNfcnNhX3JzYWVzX29hZXBfZGVjcnlwdChtYmVkdGxzX3JzYV9jb250ZXh0ICpjdHgsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCAoKmZfcm5nKSh2b2lkICosIHVuc2lnbmVkIGNoYXIgKiwgc2l6ZV90KSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdm9pZCAqcF9ybmcsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgKmxhYmVsLCBzaXplX3QgbGFiZWxfbGVuLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgKm9sZW4sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgKmlucHV0LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBjaGFyICpvdXRwdXQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBvdXRwdXRfbWF4X2xlbik7Ci0KLS8qKgotICogXGJyaWVmICAgICAgICAgIFRoaXMgZnVuY3Rpb24gcGVyZm9ybXMgYSBwcml2YXRlIFJTQSBvcGVyYXRpb24gdG8gc2lnbgotICogICAgICAgICAgICAgICAgIGEgbWVzc2FnZSBkaWdlc3QgdXNpbmcgUEtDUyMxLgotICoKLSAqICAgICAgICAgICAgICAgICBJdCBpcyB0aGUgZ2VuZXJpYyB3cmFwcGVyIGZvciBwZXJmb3JtaW5nIGEgUEtDUyMxCi0gKiAgICAgICAgICAgICAgICAgc2lnbmF0dXJlLgotICoKLSAqIFxub3RlICAgICAgICAgICBUaGUgXHAgc2lnIGJ1ZmZlciBtdXN0IGJlIGFzIGxhcmdlIGFzIHRoZSBzaXplCi0gKiAgICAgICAgICAgICAgICAgb2YgXHAgY3R4LT5OLiBGb3IgZXhhbXBsZSwgMTI4IEJ5dGVzIGlmIFJTQS0xMDI0IGlzIHVzZWQuCi0gKgotICogXG5vdGUgICAgICAgICAgIEZvciBQS0NTIzEgdjIuMSBlbmNvZGluZywgc2VlIGNvbW1lbnRzIG9uCi0gKiAgICAgICAgICAgICAgICAgbWJlZHRsc19yc2FfcnNhc3NhX3Bzc19zaWduKCkgZm9yIGRldGFpbHMgb24KLSAqICAgICAgICAgICAgICAgICBccCBtZF9hbGcgYW5kIFxwIGhhc2hfaWQuCi0gKgotICogXHBhcmFtIGN0eCAgICAgIFRoZSBpbml0aWFsaXplZCBSU0EgY29udGV4dCB0byB1c2UuCi0gKiBccGFyYW0gZl9ybmcgICAgVGhlIFJORyBmdW5jdGlvbiB0byB1c2UuIFRoaXMgaXMgbWFuZGF0b3J5IGFuZAotICogICAgICAgICAgICAgICAgIG11c3Qgbm90IGJlIFxjIE5VTEwuCi0gKiBccGFyYW0gcF9ybmcgICAgVGhlIFJORyBjb250ZXh0IHRvIGJlIHBhc3NlZCB0byBccCBmX3JuZy4gVGhpcyBtYXkgYmUgXGMgTlVMTAotICogICAgICAgICAgICAgICAgIGlmIFxwIGZfcm5nIGRvZXNuJ3QgbmVlZCBhIGNvbnRleHQgYXJndW1lbnQuCi0gKiBccGFyYW0gbWRfYWxnICAgVGhlIG1lc3NhZ2UtZGlnZXN0IGFsZ29yaXRobSB1c2VkIHRvIGhhc2ggdGhlIG9yaWdpbmFsIGRhdGEuCi0gKiAgICAgICAgICAgICAgICAgVXNlICNNQkVEVExTX01EX05PTkUgZm9yIHNpZ25pbmcgcmF3IGRhdGEuCi0gKiBccGFyYW0gaGFzaGxlbiAgVGhlIGxlbmd0aCBvZiB0aGUgbWVzc2FnZSBkaWdlc3Qgb3IgcmF3IGRhdGEgaW4gQnl0ZXMuCi0gKiAgICAgICAgICAgICAgICAgSWYgXHAgbWRfYWxnIGlzIG5vdCAjTUJFRFRMU19NRF9OT05FLCB0aGlzIG11c3QgbWF0Y2ggdGhlCi0gKiAgICAgICAgICAgICAgICAgb3V0cHV0IGxlbmd0aCBvZiB0aGUgY29ycmVzcG9uZGluZyBoYXNoIGFsZ29yaXRobS4KLSAqIFxwYXJhbSBoYXNoICAgICBUaGUgYnVmZmVyIGhvbGRpbmcgdGhlIG1lc3NhZ2UgZGlnZXN0IG9yIHJhdyBkYXRhLgotICogICAgICAgICAgICAgICAgIFRoaXMgbXVzdCBiZSBhIHJlYWRhYmxlIGJ1ZmZlciBvZiBhdCBsZWFzdCBccCBoYXNobGVuIEJ5dGVzLgotICogXHBhcmFtIHNpZyAgICAgIFRoZSBidWZmZXIgdG8gaG9sZCB0aGUgc2lnbmF0dXJlLiBUaGlzIG11c3QgYmUgYSB3cml0YWJsZQotICogICAgICAgICAgICAgICAgIGJ1ZmZlciBvZiBsZW5ndGggXGMgY3R4LT5sZW4gQnl0ZXMuIEZvciBleGFtcGxlLCBcYyAyNTYgQnl0ZXMKLSAqICAgICAgICAgICAgICAgICBmb3IgYW4gMjA0OC1iaXQgUlNBIG1vZHVsdXMuIEEgYnVmZmVyIGxlbmd0aCBvZgotICogICAgICAgICAgICAgICAgICNNQkVEVExTX01QSV9NQVhfU0laRSBpcyBhbHdheXMgc2FmZS4KLSAqCi0gKiBccmV0dXJuICAgICAgICAgXGMgMCBpZiB0aGUgc2lnbmluZyBvcGVyYXRpb24gd2FzIHN1Y2Nlc3NmdWwuCi0gKiBccmV0dXJuICAgICAgICAgQW4gXGMgTUJFRFRMU19FUlJfUlNBX1hYWCBlcnJvciBjb2RlIG9uIGZhaWx1cmUuCi0gKi8KLWludCBtYmVkdGxzX3JzYV9wa2NzMV9zaWduKG1iZWR0bHNfcnNhX2NvbnRleHQgKmN0eCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCAoKmZfcm5nKSh2b2lkICosIHVuc2lnbmVkIGNoYXIgKiwgc2l6ZV90KSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIHZvaWQgKnBfcm5nLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgbWJlZHRsc19tZF90eXBlX3QgbWRfYWxnLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50IGhhc2hsZW4sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1bnNpZ25lZCBjaGFyICpoYXNoLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgY2hhciAqc2lnKTsKLQotLyoqCi0gKiBcYnJpZWYgICAgICAgICAgVGhpcyBmdW5jdGlvbiBwZXJmb3JtcyBhIFBLQ1MjMSB2MS41IHNpZ25hdHVyZQotICogICAgICAgICAgICAgICAgIG9wZXJhdGlvbiAoUlNBU1NBLVBLQ1MxLXYxXzUtU0lHTikuCi0gKgotICogXHBhcmFtIGN0eCAgICAgIFRoZSBpbml0aWFsaXplZCBSU0EgY29udGV4dCB0byB1c2UuCi0gKiBccGFyYW0gZl9ybmcgICAgVGhlIFJORyBmdW5jdGlvbi4gVGhpcyBpcyB1c2VkIGZvciBibGluZGluZyBhbmQgaXMKLSAqICAgICAgICAgICAgICAgICBtYW5kYXRvcnk7IHNlZSBtYmVkdGxzX3JzYV9wcml2YXRlKCkgZm9yIG1vcmUuCi0gKiBccGFyYW0gcF9ybmcgICAgVGhlIFJORyBjb250ZXh0IHRvIGJlIHBhc3NlZCB0byBccCBmX3JuZy4gVGhpcyBtYXkgYmUgXGMgTlVMTAotICogICAgICAgICAgICAgICAgIGlmIFxwIGZfcm5nIGRvZXNuJ3QgbmVlZCBhIGNvbnRleHQgYXJndW1lbnQuCi0gKiBccGFyYW0gbWRfYWxnICAgVGhlIG1lc3NhZ2UtZGlnZXN0IGFsZ29yaXRobSB1c2VkIHRvIGhhc2ggdGhlIG9yaWdpbmFsIGRhdGEuCi0gKiAgICAgICAgICAgICAgICAgVXNlICNNQkVEVExTX01EX05PTkUgZm9yIHNpZ25pbmcgcmF3IGRhdGEuCi0gKiBccGFyYW0gaGFzaGxlbiAgVGhlIGxlbmd0aCBvZiB0aGUgbWVzc2FnZSBkaWdlc3Qgb3IgcmF3IGRhdGEgaW4gQnl0ZXMuCi0gKiAgICAgICAgICAgICAgICAgSWYgXHAgbWRfYWxnIGlzIG5vdCAjTUJFRFRMU19NRF9OT05FLCB0aGlzIG11c3QgbWF0Y2ggdGhlCi0gKiAgICAgICAgICAgICAgICAgb3V0cHV0IGxlbmd0aCBvZiB0aGUgY29ycmVzcG9uZGluZyBoYXNoIGFsZ29yaXRobS4KLSAqIFxwYXJhbSBoYXNoICAgICBUaGUgYnVmZmVyIGhvbGRpbmcgdGhlIG1lc3NhZ2UgZGlnZXN0IG9yIHJhdyBkYXRhLgotICogICAgICAgICAgICAgICAgIFRoaXMgbXVzdCBiZSBhIHJlYWRhYmxlIGJ1ZmZlciBvZiBhdCBsZWFzdCBccCBoYXNobGVuIEJ5dGVzLgotICogXHBhcmFtIHNpZyAgICAgIFRoZSBidWZmZXIgdG8gaG9sZCB0aGUgc2lnbmF0dXJlLiBUaGlzIG11c3QgYmUgYSB3cml0YWJsZQotICogICAgICAgICAgICAgICAgIGJ1ZmZlciBvZiBsZW5ndGggXGMgY3R4LT5sZW4gQnl0ZXMuIEZvciBleGFtcGxlLCBcYyAyNTYgQnl0ZXMKLSAqICAgICAgICAgICAgICAgICBmb3IgYW4gMjA0OC1iaXQgUlNBIG1vZHVsdXMuIEEgYnVmZmVyIGxlbmd0aCBvZgotICogICAgICAgICAgICAgICAgICNNQkVEVExTX01QSV9NQVhfU0laRSBpcyBhbHdheXMgc2FmZS4KLSAqCi0gKiBccmV0dXJuICAgICAgICAgXGMgMCBpZiB0aGUgc2lnbmluZyBvcGVyYXRpb24gd2FzIHN1Y2Nlc3NmdWwuCi0gKiBccmV0dXJuICAgICAgICAgQW4gXGMgTUJFRFRMU19FUlJfUlNBX1hYWCBlcnJvciBjb2RlIG9uIGZhaWx1cmUuCi0gKi8KLWludCBtYmVkdGxzX3JzYV9yc2Fzc2FfcGtjczFfdjE1X3NpZ24obWJlZHRsc19yc2FfY29udGV4dCAqY3R4LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgKCpmX3JuZykodm9pZCAqLCB1bnNpZ25lZCBjaGFyICosIHNpemVfdCksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZvaWQgKnBfcm5nLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYmVkdGxzX21kX3R5cGVfdCBtZF9hbGcsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCBoYXNobGVuLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1bnNpZ25lZCBjaGFyICpoYXNoLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBjaGFyICpzaWcpOwotCi0jaWYgZGVmaW5lZChNQkVEVExTX1BLQ1MxX1YyMSkKLS8qKgotICogXGJyaWVmICAgICAgICAgIFRoaXMgZnVuY3Rpb24gcGVyZm9ybXMgYSBQS0NTIzEgdjIuMSBQU1Mgc2lnbmF0dXJlCi0gKiAgICAgICAgICAgICAgICAgb3BlcmF0aW9uIChSU0FTU0EtUFNTLVNJR04pLgotICoKLSAqIFxub3RlICAgICAgICAgICBUaGUgXGMgaGFzaF9pZCBzZXQgaW4gXHAgY3R4IGJ5IGNhbGxpbmcKLSAqICAgICAgICAgICAgICAgICBtYmVkdGxzX3JzYV9zZXRfcGFkZGluZygpIHNlbGVjdHMgdGhlIGhhc2ggdXNlZCBmb3IgdGhlCi0gKiAgICAgICAgICAgICAgICAgZW5jb2Rpbmcgb3BlcmF0aW9uIGFuZCBmb3IgdGhlIG1hc2sgZ2VuZXJhdGlvbiBmdW5jdGlvbgotICogICAgICAgICAgICAgICAgIChNR0YxKS4gRm9yIG1vcmUgZGV0YWlscyBvbiB0aGUgZW5jb2Rpbmcgb3BlcmF0aW9uIGFuZCB0aGUKLSAqICAgICAgICAgICAgICAgICBtYXNrIGdlbmVyYXRpb24gZnVuY3Rpb24sIGNvbnN1bHQgPGVtPlJGQy0zNDQ3OiBQdWJsaWMtS2V5Ci0gKiAgICAgICAgICAgICAgICAgQ3J5cHRvZ3JhcGh5IFN0YW5kYXJkcyAoUEtDUykgIzEgdjIuMTogUlNBIENyeXB0b2dyYXBoeQotICogICAgICAgICAgICAgICAgIFNwZWNpZmljYXRpb25zPC9lbT4uCi0gKgotICogXG5vdGUgICAgICAgICAgIFRoaXMgZnVuY3Rpb24gZW5mb3JjZXMgdGhhdCB0aGUgcHJvdmlkZWQgc2FsdCBsZW5ndGggY29tcGxpZXMKLSAqICAgICAgICAgICAgICAgICB3aXRoIEZJUFMgMTg2LTQgwqc1LjUgKGUpIGFuZCBSRkMgODAxNyAoUEtDUyMxIHYyLjIpIMKnOS4xLjEKLSAqICAgICAgICAgICAgICAgICBzdGVwIDMuIFRoZSBjb25zdHJhaW50IGlzIHRoYXQgdGhlIGhhc2ggbGVuZ3RoIHBsdXMgdGhlIHNhbHQKLSAqICAgICAgICAgICAgICAgICBsZW5ndGggcGx1cyAyIGJ5dGVzIG11c3QgYmUgYXQgbW9zdCB0aGUga2V5IGxlbmd0aC4gSWYgdGhpcwotICogICAgICAgICAgICAgICAgIGNvbnN0cmFpbnQgaXMgbm90IG1ldCwgdGhpcyBmdW5jdGlvbiByZXR1cm5zCi0gKiAgICAgICAgICAgICAgICAgI01CRURUTFNfRVJSX1JTQV9CQURfSU5QVVRfREFUQS4KLSAqCi0gKiBccGFyYW0gY3R4ICAgICAgVGhlIGluaXRpYWxpemVkIFJTQSBjb250ZXh0IHRvIHVzZS4KLSAqIFxwYXJhbSBmX3JuZyAgICBUaGUgUk5HIGZ1bmN0aW9uLiBJdCBpcyBtYW5kYXRvcnkgYW5kIG11c3Qgbm90IGJlIFxjIE5VTEwuCi0gKiBccGFyYW0gcF9ybmcgICAgVGhlIFJORyBjb250ZXh0IHRvIGJlIHBhc3NlZCB0byBccCBmX3JuZy4gVGhpcyBtYXkgYmUgXGMgTlVMTAotICogICAgICAgICAgICAgICAgIGlmIFxwIGZfcm5nIGRvZXNuJ3QgbmVlZCBhIGNvbnRleHQgYXJndW1lbnQuCi0gKiBccGFyYW0gbWRfYWxnICAgVGhlIG1lc3NhZ2UtZGlnZXN0IGFsZ29yaXRobSB1c2VkIHRvIGhhc2ggdGhlIG9yaWdpbmFsIGRhdGEuCi0gKiAgICAgICAgICAgICAgICAgVXNlICNNQkVEVExTX01EX05PTkUgZm9yIHNpZ25pbmcgcmF3IGRhdGEuCi0gKiBccGFyYW0gaGFzaGxlbiAgVGhlIGxlbmd0aCBvZiB0aGUgbWVzc2FnZSBkaWdlc3Qgb3IgcmF3IGRhdGEgaW4gQnl0ZXMuCi0gKiAgICAgICAgICAgICAgICAgSWYgXHAgbWRfYWxnIGlzIG5vdCAjTUJFRFRMU19NRF9OT05FLCB0aGlzIG11c3QgbWF0Y2ggdGhlCi0gKiAgICAgICAgICAgICAgICAgb3V0cHV0IGxlbmd0aCBvZiB0aGUgY29ycmVzcG9uZGluZyBoYXNoIGFsZ29yaXRobS4KLSAqIFxwYXJhbSBoYXNoICAgICBUaGUgYnVmZmVyIGhvbGRpbmcgdGhlIG1lc3NhZ2UgZGlnZXN0IG9yIHJhdyBkYXRhLgotICogICAgICAgICAgICAgICAgIFRoaXMgbXVzdCBiZSBhIHJlYWRhYmxlIGJ1ZmZlciBvZiBhdCBsZWFzdCBccCBoYXNobGVuIEJ5dGVzLgotICogXHBhcmFtIHNhbHRsZW4gIFRoZSBsZW5ndGggb2YgdGhlIHNhbHQgdGhhdCBzaG91bGQgYmUgdXNlZC4KLSAqICAgICAgICAgICAgICAgICBJZiBwYXNzZWQgI01CRURUTFNfUlNBX1NBTFRfTEVOX0FOWSwgdGhlIGZ1bmN0aW9uIHdpbGwgdXNlCi0gKiAgICAgICAgICAgICAgICAgdGhlIGxhcmdlc3QgcG9zc2libGUgc2FsdCBsZW5ndGggdXAgdG8gdGhlIGhhc2ggbGVuZ3RoLAotICogICAgICAgICAgICAgICAgIHdoaWNoIGlzIHRoZSBsYXJnZXN0IHBlcm1pdHRlZCBieSBzb21lIHN0YW5kYXJkcyBpbmNsdWRpbmcKLSAqICAgICAgICAgICAgICAgICBGSVBTIDE4Ni00IMKnNS41LgotICogXHBhcmFtIHNpZyAgICAgIFRoZSBidWZmZXIgdG8gaG9sZCB0aGUgc2lnbmF0dXJlLiBUaGlzIG11c3QgYmUgYSB3cml0YWJsZQotICogICAgICAgICAgICAgICAgIGJ1ZmZlciBvZiBsZW5ndGggXGMgY3R4LT5sZW4gQnl0ZXMuIEZvciBleGFtcGxlLCBcYyAyNTYgQnl0ZXMKLSAqICAgICAgICAgICAgICAgICBmb3IgYW4gMjA0OC1iaXQgUlNBIG1vZHVsdXMuIEEgYnVmZmVyIGxlbmd0aCBvZgotICogICAgICAgICAgICAgICAgICNNQkVEVExTX01QSV9NQVhfU0laRSBpcyBhbHdheXMgc2FmZS4KLSAqCi0gKiBccmV0dXJuICAgICAgICAgXGMgMCBpZiB0aGUgc2lnbmluZyBvcGVyYXRpb24gd2FzIHN1Y2Nlc3NmdWwuCi0gKiBccmV0dXJuICAgICAgICAgQW4gXGMgTUJFRFRMU19FUlJfUlNBX1hYWCBlcnJvciBjb2RlIG9uIGZhaWx1cmUuCi0gKi8KLWludCBtYmVkdGxzX3JzYV9yc2Fzc2FfcHNzX3NpZ25fZXh0KG1iZWR0bHNfcnNhX2NvbnRleHQgKmN0eCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCAoKmZfcm5nKSh2b2lkICosIHVuc2lnbmVkIGNoYXIgKiwgc2l6ZV90KSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZvaWQgKnBfcm5nLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWJlZHRsc19tZF90eXBlX3QgbWRfYWxnLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50IGhhc2hsZW4sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1bnNpZ25lZCBjaGFyICpoYXNoLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IHNhbHRsZW4sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBjaGFyICpzaWcpOwotCi0vKioKLSAqIFxicmllZiAgICAgICAgICBUaGlzIGZ1bmN0aW9uIHBlcmZvcm1zIGEgUEtDUyMxIHYyLjEgUFNTIHNpZ25hdHVyZQotICogICAgICAgICAgICAgICAgIG9wZXJhdGlvbiAoUlNBU1NBLVBTUy1TSUdOKS4KLSAqCi0gKiBcbm90ZSAgICAgICAgICAgVGhlIFxjIGhhc2hfaWQgc2V0IGluIFxwIGN0eCBieSBjYWxsaW5nCi0gKiAgICAgICAgICAgICAgICAgbWJlZHRsc19yc2Ffc2V0X3BhZGRpbmcoKSBzZWxlY3RzIHRoZSBoYXNoIHVzZWQgZm9yIHRoZQotICogICAgICAgICAgICAgICAgIGVuY29kaW5nIG9wZXJhdGlvbiBhbmQgZm9yIHRoZSBtYXNrIGdlbmVyYXRpb24gZnVuY3Rpb24KLSAqICAgICAgICAgICAgICAgICAoTUdGMSkuIEZvciBtb3JlIGRldGFpbHMgb24gdGhlIGVuY29kaW5nIG9wZXJhdGlvbiBhbmQgdGhlCi0gKiAgICAgICAgICAgICAgICAgbWFzayBnZW5lcmF0aW9uIGZ1bmN0aW9uLCBjb25zdWx0IDxlbT5SRkMtMzQ0NzogUHVibGljLUtleQotICogICAgICAgICAgICAgICAgIENyeXB0b2dyYXBoeSBTdGFuZGFyZHMgKFBLQ1MpICMxIHYyLjE6IFJTQSBDcnlwdG9ncmFwaHkKLSAqICAgICAgICAgICAgICAgICBTcGVjaWZpY2F0aW9uczwvZW0+LgotICoKLSAqIFxub3RlICAgICAgICAgICBUaGlzIGZ1bmN0aW9uIGFsd2F5cyB1c2VzIHRoZSBtYXhpbXVtIHBvc3NpYmxlIHNhbHQgc2l6ZSwKLSAqICAgICAgICAgICAgICAgICB1cCB0byB0aGUgbGVuZ3RoIG9mIHRoZSBwYXlsb2FkIGhhc2guIFRoaXMgY2hvaWNlIG9mIHNhbHQKLSAqICAgICAgICAgICAgICAgICBzaXplIGNvbXBsaWVzIHdpdGggRklQUyAxODYtNCDCpzUuNSAoZSkgYW5kIFJGQyA4MDE3IChQS0NTIzEKLSAqICAgICAgICAgICAgICAgICB2Mi4yKSDCpzkuMS4xIHN0ZXAgMy4gRnVydGhlcm1vcmUgdGhpcyBmdW5jdGlvbiBlbmZvcmNlcyBhCi0gKiAgICAgICAgICAgICAgICAgbWluaW11bSBzYWx0IHNpemUgd2hpY2ggaXMgdGhlIGhhc2ggc2l6ZSBtaW51cyAyIGJ5dGVzLiBJZgotICogICAgICAgICAgICAgICAgIHRoaXMgbWluaW11bSBzaXplIGlzIHRvbyBsYXJnZSBnaXZlbiB0aGUga2V5IHNpemUgKHRoZSBzYWx0Ci0gKiAgICAgICAgICAgICAgICAgc2l6ZSwgcGx1cyB0aGUgaGFzaCBzaXplLCBwbHVzIDIgYnl0ZXMgbXVzdCBiZSBubyBtb3JlIHRoYW4KLSAqICAgICAgICAgICAgICAgICB0aGUga2V5IHNpemUgaW4gYnl0ZXMpLCB0aGlzIGZ1bmN0aW9uIHJldHVybnMKLSAqICAgICAgICAgICAgICAgICAjTUJFRFRMU19FUlJfUlNBX0JBRF9JTlBVVF9EQVRBLgotICoKLSAqIFxwYXJhbSBjdHggICAgICBUaGUgaW5pdGlhbGl6ZWQgUlNBIGNvbnRleHQgdG8gdXNlLgotICogXHBhcmFtIGZfcm5nICAgIFRoZSBSTkcgZnVuY3Rpb24uIEl0IGlzIG1hbmRhdG9yeSBhbmQgbXVzdCBub3QgYmUgXGMgTlVMTC4KLSAqIFxwYXJhbSBwX3JuZyAgICBUaGUgUk5HIGNvbnRleHQgdG8gYmUgcGFzc2VkIHRvIFxwIGZfcm5nLiBUaGlzIG1heSBiZSBcYyBOVUxMCi0gKiAgICAgICAgICAgICAgICAgaWYgXHAgZl9ybmcgZG9lc24ndCBuZWVkIGEgY29udGV4dCBhcmd1bWVudC4KLSAqIFxwYXJhbSBtZF9hbGcgICBUaGUgbWVzc2FnZS1kaWdlc3QgYWxnb3JpdGhtIHVzZWQgdG8gaGFzaCB0aGUgb3JpZ2luYWwgZGF0YS4KLSAqICAgICAgICAgICAgICAgICBVc2UgI01CRURUTFNfTURfTk9ORSBmb3Igc2lnbmluZyByYXcgZGF0YS4KLSAqIFxwYXJhbSBoYXNobGVuICBUaGUgbGVuZ3RoIG9mIHRoZSBtZXNzYWdlIGRpZ2VzdCBvciByYXcgZGF0YSBpbiBCeXRlcy4KLSAqICAgICAgICAgICAgICAgICBJZiBccCBtZF9hbGcgaXMgbm90ICNNQkVEVExTX01EX05PTkUsIHRoaXMgbXVzdCBtYXRjaCB0aGUKLSAqICAgICAgICAgICAgICAgICBvdXRwdXQgbGVuZ3RoIG9mIHRoZSBjb3JyZXNwb25kaW5nIGhhc2ggYWxnb3JpdGhtLgotICogXHBhcmFtIGhhc2ggICAgIFRoZSBidWZmZXIgaG9sZGluZyB0aGUgbWVzc2FnZSBkaWdlc3Qgb3IgcmF3IGRhdGEuCi0gKiAgICAgICAgICAgICAgICAgVGhpcyBtdXN0IGJlIGEgcmVhZGFibGUgYnVmZmVyIG9mIGF0IGxlYXN0IFxwIGhhc2hsZW4gQnl0ZXMuCi0gKiBccGFyYW0gc2lnICAgICAgVGhlIGJ1ZmZlciB0byBob2xkIHRoZSBzaWduYXR1cmUuIFRoaXMgbXVzdCBiZSBhIHdyaXRhYmxlCi0gKiAgICAgICAgICAgICAgICAgYnVmZmVyIG9mIGxlbmd0aCBcYyBjdHgtPmxlbiBCeXRlcy4gRm9yIGV4YW1wbGUsIFxjIDI1NiBCeXRlcwotICogICAgICAgICAgICAgICAgIGZvciBhbiAyMDQ4LWJpdCBSU0EgbW9kdWx1cy4gQSBidWZmZXIgbGVuZ3RoIG9mCi0gKiAgICAgICAgICAgICAgICAgI01CRURUTFNfTVBJX01BWF9TSVpFIGlzIGFsd2F5cyBzYWZlLgotICoKLSAqIFxyZXR1cm4gICAgICAgICBcYyAwIGlmIHRoZSBzaWduaW5nIG9wZXJhdGlvbiB3YXMgc3VjY2Vzc2Z1bC4KLSAqIFxyZXR1cm4gICAgICAgICBBbiBcYyBNQkVEVExTX0VSUl9SU0FfWFhYIGVycm9yIGNvZGUgb24gZmFpbHVyZS4KLSAqLwotaW50IG1iZWR0bHNfcnNhX3JzYXNzYV9wc3Nfc2lnbihtYmVkdGxzX3JzYV9jb250ZXh0ICpjdHgsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCAoKmZfcm5nKSh2b2lkICosIHVuc2lnbmVkIGNoYXIgKiwgc2l6ZV90KSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdm9pZCAqcF9ybmcsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1iZWR0bHNfbWRfdHlwZV90IG1kX2FsZywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50IGhhc2hsZW4sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgKmhhc2gsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGNoYXIgKnNpZyk7Ci0jZW5kaWYgLyogTUJFRFRMU19QS0NTMV9WMjEgKi8KLQotLyoqCi0gKiBcYnJpZWYgICAgICAgICAgVGhpcyBmdW5jdGlvbiBwZXJmb3JtcyBhIHB1YmxpYyBSU0Egb3BlcmF0aW9uIGFuZCBjaGVja3MKLSAqICAgICAgICAgICAgICAgICB0aGUgbWVzc2FnZSBkaWdlc3QuCi0gKgotICogICAgICAgICAgICAgICAgIFRoaXMgaXMgdGhlIGdlbmVyaWMgd3JhcHBlciBmb3IgcGVyZm9ybWluZyBhIFBLQ1MjMQotICogICAgICAgICAgICAgICAgIHZlcmlmaWNhdGlvbi4KLSAqCi0gKiBcbm90ZSAgICAgICAgICAgRm9yIFBLQ1MjMSB2Mi4xIGVuY29kaW5nLCBzZWUgY29tbWVudHMgb24KLSAqICAgICAgICAgICAgICAgICBtYmVkdGxzX3JzYV9yc2Fzc2FfcHNzX3ZlcmlmeSgpIGFib3V0IFxjIG1kX2FsZyBhbmQKLSAqICAgICAgICAgICAgICAgICBcYyBoYXNoX2lkLgotICoKLSAqIFxwYXJhbSBjdHggICAgICBUaGUgaW5pdGlhbGl6ZWQgUlNBIHB1YmxpYyBrZXkgY29udGV4dCB0byB1c2UuCi0gKiBccGFyYW0gbWRfYWxnICAgVGhlIG1lc3NhZ2UtZGlnZXN0IGFsZ29yaXRobSB1c2VkIHRvIGhhc2ggdGhlIG9yaWdpbmFsIGRhdGEuCi0gKiAgICAgICAgICAgICAgICAgVXNlICNNQkVEVExTX01EX05PTkUgZm9yIHNpZ25pbmcgcmF3IGRhdGEuCi0gKiBccGFyYW0gaGFzaGxlbiAgVGhlIGxlbmd0aCBvZiB0aGUgbWVzc2FnZSBkaWdlc3Qgb3IgcmF3IGRhdGEgaW4gQnl0ZXMuCi0gKiAgICAgICAgICAgICAgICAgSWYgXHAgbWRfYWxnIGlzIG5vdCAjTUJFRFRMU19NRF9OT05FLCB0aGlzIG11c3QgbWF0Y2ggdGhlCi0gKiAgICAgICAgICAgICAgICAgb3V0cHV0IGxlbmd0aCBvZiB0aGUgY29ycmVzcG9uZGluZyBoYXNoIGFsZ29yaXRobS4KLSAqIFxwYXJhbSBoYXNoICAgICBUaGUgYnVmZmVyIGhvbGRpbmcgdGhlIG1lc3NhZ2UgZGlnZXN0IG9yIHJhdyBkYXRhLgotICogICAgICAgICAgICAgICAgIFRoaXMgbXVzdCBiZSBhIHJlYWRhYmxlIGJ1ZmZlciBvZiBhdCBsZWFzdCBccCBoYXNobGVuIEJ5dGVzLgotICogXHBhcmFtIHNpZyAgICAgIFRoZSBidWZmZXIgaG9sZGluZyB0aGUgc2lnbmF0dXJlLiBUaGlzIG11c3QgYmUgYSByZWFkYWJsZQotICogICAgICAgICAgICAgICAgIGJ1ZmZlciBvZiBsZW5ndGggXGMgY3R4LT5sZW4gQnl0ZXMuIEZvciBleGFtcGxlLCBcYyAyNTYgQnl0ZXMKLSAqICAgICAgICAgICAgICAgICBmb3IgYW4gMjA0OC1iaXQgUlNBIG1vZHVsdXMuCi0gKgotICogXHJldHVybiAgICAgICAgIFxjIDAgaWYgdGhlIHZlcmlmeSBvcGVyYXRpb24gd2FzIHN1Y2Nlc3NmdWwuCi0gKiBccmV0dXJuICAgICAgICAgQW4gXGMgTUJFRFRMU19FUlJfUlNBX1hYWCBlcnJvciBjb2RlIG9uIGZhaWx1cmUuCi0gKi8KLWludCBtYmVkdGxzX3JzYV9wa2NzMV92ZXJpZnkobWJlZHRsc19yc2FfY29udGV4dCAqY3R4LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYmVkdGxzX21kX3R5cGVfdCBtZF9hbGcsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCBoYXNobGVuLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1bnNpZ25lZCBjaGFyICpoYXNoLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1bnNpZ25lZCBjaGFyICpzaWcpOwotCi0vKioKLSAqIFxicmllZiAgICAgICAgICBUaGlzIGZ1bmN0aW9uIHBlcmZvcm1zIGEgUEtDUyMxIHYxLjUgdmVyaWZpY2F0aW9uCi0gKiAgICAgICAgICAgICAgICAgb3BlcmF0aW9uIChSU0FTU0EtUEtDUzEtdjFfNS1WRVJJRlkpLgotICoKLSAqIFxwYXJhbSBjdHggICAgICBUaGUgaW5pdGlhbGl6ZWQgUlNBIHB1YmxpYyBrZXkgY29udGV4dCB0byB1c2UuCi0gKiBccGFyYW0gbWRfYWxnICAgVGhlIG1lc3NhZ2UtZGlnZXN0IGFsZ29yaXRobSB1c2VkIHRvIGhhc2ggdGhlIG9yaWdpbmFsIGRhdGEuCi0gKiAgICAgICAgICAgICAgICAgVXNlICNNQkVEVExTX01EX05PTkUgZm9yIHNpZ25pbmcgcmF3IGRhdGEuCi0gKiBccGFyYW0gaGFzaGxlbiAgVGhlIGxlbmd0aCBvZiB0aGUgbWVzc2FnZSBkaWdlc3Qgb3IgcmF3IGRhdGEgaW4gQnl0ZXMuCi0gKiAgICAgICAgICAgICAgICAgSWYgXHAgbWRfYWxnIGlzIG5vdCAjTUJFRFRMU19NRF9OT05FLCB0aGlzIG11c3QgbWF0Y2ggdGhlCi0gKiAgICAgICAgICAgICAgICAgb3V0cHV0IGxlbmd0aCBvZiB0aGUgY29ycmVzcG9uZGluZyBoYXNoIGFsZ29yaXRobS4KLSAqIFxwYXJhbSBoYXNoICAgICBUaGUgYnVmZmVyIGhvbGRpbmcgdGhlIG1lc3NhZ2UgZGlnZXN0IG9yIHJhdyBkYXRhLgotICogICAgICAgICAgICAgICAgIFRoaXMgbXVzdCBiZSBhIHJlYWRhYmxlIGJ1ZmZlciBvZiBhdCBsZWFzdCBccCBoYXNobGVuIEJ5dGVzLgotICogXHBhcmFtIHNpZyAgICAgIFRoZSBidWZmZXIgaG9sZGluZyB0aGUgc2lnbmF0dXJlLiBUaGlzIG11c3QgYmUgYSByZWFkYWJsZQotICogICAgICAgICAgICAgICAgIGJ1ZmZlciBvZiBsZW5ndGggXGMgY3R4LT5sZW4gQnl0ZXMuIEZvciBleGFtcGxlLCBcYyAyNTYgQnl0ZXMKLSAqICAgICAgICAgICAgICAgICBmb3IgYW4gMjA0OC1iaXQgUlNBIG1vZHVsdXMuCi0gKgotICogXHJldHVybiAgICAgICAgIFxjIDAgaWYgdGhlIHZlcmlmeSBvcGVyYXRpb24gd2FzIHN1Y2Nlc3NmdWwuCi0gKiBccmV0dXJuICAgICAgICAgQW4gXGMgTUJFRFRMU19FUlJfUlNBX1hYWCBlcnJvciBjb2RlIG9uIGZhaWx1cmUuCi0gKi8KLWludCBtYmVkdGxzX3JzYV9yc2Fzc2FfcGtjczFfdjE1X3ZlcmlmeShtYmVkdGxzX3JzYV9jb250ZXh0ICpjdHgsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWJlZHRsc19tZF90eXBlX3QgbWRfYWxnLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCBoYXNobGVuLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgKmhhc2gsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdW5zaWduZWQgY2hhciAqc2lnKTsKLQotLyoqCi0gKiBcYnJpZWYgICAgICAgICAgVGhpcyBmdW5jdGlvbiBwZXJmb3JtcyBhIFBLQ1MjMSB2Mi4xIFBTUyB2ZXJpZmljYXRpb24KLSAqICAgICAgICAgICAgICAgICBvcGVyYXRpb24gKFJTQVNTQS1QU1MtVkVSSUZZKS4KLSAqCi0gKiBcbm90ZSAgICAgICAgICAgVGhlIFxjIGhhc2hfaWQgc2V0IGluIFxwIGN0eCBieSBjYWxsaW5nCi0gKiAgICAgICAgICAgICAgICAgbWJlZHRsc19yc2Ffc2V0X3BhZGRpbmcoKSBzZWxlY3RzIHRoZSBoYXNoIHVzZWQgZm9yIHRoZQotICogICAgICAgICAgICAgICAgIGVuY29kaW5nIG9wZXJhdGlvbiBhbmQgZm9yIHRoZSBtYXNrIGdlbmVyYXRpb24gZnVuY3Rpb24KLSAqICAgICAgICAgICAgICAgICAoTUdGMSkuIEZvciBtb3JlIGRldGFpbHMgb24gdGhlIGVuY29kaW5nIG9wZXJhdGlvbiBhbmQgdGhlCi0gKiAgICAgICAgICAgICAgICAgbWFzayBnZW5lcmF0aW9uIGZ1bmN0aW9uLCBjb25zdWx0IDxlbT5SRkMtMzQ0NzogUHVibGljLUtleQotICogICAgICAgICAgICAgICAgIENyeXB0b2dyYXBoeSBTdGFuZGFyZHMgKFBLQ1MpICMxIHYyLjE6IFJTQSBDcnlwdG9ncmFwaHkKLSAqICAgICAgICAgICAgICAgICBTcGVjaWZpY2F0aW9uczwvZW0+LiBJZiB0aGUgXGMgaGFzaF9pZCBzZXQgaW4gXHAgY3R4IGJ5Ci0gKiAgICAgICAgICAgICAgICAgbWJlZHRsc19yc2Ffc2V0X3BhZGRpbmcoKSBpcyAjTUJFRFRMU19NRF9OT05FLCB0aGUgXHAgbWRfYWxnCi0gKiAgICAgICAgICAgICAgICAgcGFyYW1ldGVyIGlzIHVzZWQuCi0gKgotICogXHBhcmFtIGN0eCAgICAgIFRoZSBpbml0aWFsaXplZCBSU0EgcHVibGljIGtleSBjb250ZXh0IHRvIHVzZS4KLSAqIFxwYXJhbSBtZF9hbGcgICBUaGUgbWVzc2FnZS1kaWdlc3QgYWxnb3JpdGhtIHVzZWQgdG8gaGFzaCB0aGUgb3JpZ2luYWwgZGF0YS4KLSAqICAgICAgICAgICAgICAgICBVc2UgI01CRURUTFNfTURfTk9ORSBmb3Igc2lnbmluZyByYXcgZGF0YS4KLSAqIFxwYXJhbSBoYXNobGVuICBUaGUgbGVuZ3RoIG9mIHRoZSBtZXNzYWdlIGRpZ2VzdCBvciByYXcgZGF0YSBpbiBCeXRlcy4KLSAqICAgICAgICAgICAgICAgICBJZiBccCBtZF9hbGcgaXMgbm90ICNNQkVEVExTX01EX05PTkUsIHRoaXMgbXVzdCBtYXRjaCB0aGUKLSAqICAgICAgICAgICAgICAgICBvdXRwdXQgbGVuZ3RoIG9mIHRoZSBjb3JyZXNwb25kaW5nIGhhc2ggYWxnb3JpdGhtLgotICogXHBhcmFtIGhhc2ggICAgIFRoZSBidWZmZXIgaG9sZGluZyB0aGUgbWVzc2FnZSBkaWdlc3Qgb3IgcmF3IGRhdGEuCi0gKiAgICAgICAgICAgICAgICAgVGhpcyBtdXN0IGJlIGEgcmVhZGFibGUgYnVmZmVyIG9mIGF0IGxlYXN0IFxwIGhhc2hsZW4gQnl0ZXMuCi0gKiBccGFyYW0gc2lnICAgICAgVGhlIGJ1ZmZlciBob2xkaW5nIHRoZSBzaWduYXR1cmUuIFRoaXMgbXVzdCBiZSBhIHJlYWRhYmxlCi0gKiAgICAgICAgICAgICAgICAgYnVmZmVyIG9mIGxlbmd0aCBcYyBjdHgtPmxlbiBCeXRlcy4gRm9yIGV4YW1wbGUsIFxjIDI1NiBCeXRlcwotICogICAgICAgICAgICAgICAgIGZvciBhbiAyMDQ4LWJpdCBSU0EgbW9kdWx1cy4KLSAqCi0gKiBccmV0dXJuICAgICAgICAgXGMgMCBpZiB0aGUgdmVyaWZ5IG9wZXJhdGlvbiB3YXMgc3VjY2Vzc2Z1bC4KLSAqIFxyZXR1cm4gICAgICAgICBBbiBcYyBNQkVEVExTX0VSUl9SU0FfWFhYIGVycm9yIGNvZGUgb24gZmFpbHVyZS4KLSAqLwotaW50IG1iZWR0bHNfcnNhX3JzYXNzYV9wc3NfdmVyaWZ5KG1iZWR0bHNfcnNhX2NvbnRleHQgKmN0eCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYmVkdGxzX21kX3R5cGVfdCBtZF9hbGcsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50IGhhc2hsZW4sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdW5zaWduZWQgY2hhciAqaGFzaCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1bnNpZ25lZCBjaGFyICpzaWcpOwotCi0vKioKLSAqIFxicmllZiAgICAgICAgICBUaGlzIGZ1bmN0aW9uIHBlcmZvcm1zIGEgUEtDUyMxIHYyLjEgUFNTIHZlcmlmaWNhdGlvbgotICogICAgICAgICAgICAgICAgIG9wZXJhdGlvbiAoUlNBU1NBLVBTUy1WRVJJRlkpLgotICoKLSAqIFxub3RlICAgICAgICAgICBUaGUgXHAgc2lnIGJ1ZmZlciBtdXN0IGJlIGFzIGxhcmdlIGFzIHRoZSBzaXplCi0gKiAgICAgICAgICAgICAgICAgb2YgXHAgY3R4LT5OLiBGb3IgZXhhbXBsZSwgMTI4IEJ5dGVzIGlmIFJTQS0xMDI0IGlzIHVzZWQuCi0gKgotICogXG5vdGUgICAgICAgICAgIFRoZSBcYyBoYXNoX2lkIHNldCBpbiBccCBjdHggYnkgbWJlZHRsc19yc2Ffc2V0X3BhZGRpbmcoKSBpcwotICogICAgICAgICAgICAgICAgIGlnbm9yZWQuCi0gKgotICogXHBhcmFtIGN0eCAgICAgIFRoZSBpbml0aWFsaXplZCBSU0EgcHVibGljIGtleSBjb250ZXh0IHRvIHVzZS4KLSAqIFxwYXJhbSBtZF9hbGcgICBUaGUgbWVzc2FnZS1kaWdlc3QgYWxnb3JpdGhtIHVzZWQgdG8gaGFzaCB0aGUgb3JpZ2luYWwgZGF0YS4KLSAqICAgICAgICAgICAgICAgICBVc2UgI01CRURUTFNfTURfTk9ORSBmb3Igc2lnbmluZyByYXcgZGF0YS4KLSAqIFxwYXJhbSBoYXNobGVuICBUaGUgbGVuZ3RoIG9mIHRoZSBtZXNzYWdlIGRpZ2VzdCBvciByYXcgZGF0YSBpbiBCeXRlcy4KLSAqICAgICAgICAgICAgICAgICBJZiBccCBtZF9hbGcgaXMgbm90ICNNQkVEVExTX01EX05PTkUsIHRoaXMgbXVzdCBtYXRjaCB0aGUKLSAqICAgICAgICAgICAgICAgICBvdXRwdXQgbGVuZ3RoIG9mIHRoZSBjb3JyZXNwb25kaW5nIGhhc2ggYWxnb3JpdGhtLgotICogXHBhcmFtIGhhc2ggICAgIFRoZSBidWZmZXIgaG9sZGluZyB0aGUgbWVzc2FnZSBkaWdlc3Qgb3IgcmF3IGRhdGEuCi0gKiAgICAgICAgICAgICAgICAgVGhpcyBtdXN0IGJlIGEgcmVhZGFibGUgYnVmZmVyIG9mIGF0IGxlYXN0IFxwIGhhc2hsZW4gQnl0ZXMuCi0gKiBccGFyYW0gbWdmMV9oYXNoX2lkICAgICAgVGhlIG1lc3NhZ2UgZGlnZXN0IGFsZ29yaXRobSB1c2VkIGZvciB0aGUKLSAqICAgICAgICAgICAgICAgICAgICAgICAgICB2ZXJpZmljYXRpb24gb3BlcmF0aW9uIGFuZCB0aGUgbWFzayBnZW5lcmF0aW9uCi0gKiAgICAgICAgICAgICAgICAgICAgICAgICAgZnVuY3Rpb24gKE1HRjEpLiBGb3IgbW9yZSBkZXRhaWxzIG9uIHRoZSBlbmNvZGluZwotICogICAgICAgICAgICAgICAgICAgICAgICAgIG9wZXJhdGlvbiBhbmQgdGhlIG1hc2sgZ2VuZXJhdGlvbiBmdW5jdGlvbiwgY29uc3VsdAotICogICAgICAgICAgICAgICAgICAgICAgICAgIDxlbT5SRkMtMzQ0NzogUHVibGljLUtleSBDcnlwdG9ncmFwaHkgU3RhbmRhcmRzCi0gKiAgICAgICAgICAgICAgICAgICAgICAgICAgKFBLQ1MpICMxIHYyLjE6IFJTQSBDcnlwdG9ncmFwaHkKLSAqICAgICAgICAgICAgICAgICAgICAgICAgICBTcGVjaWZpY2F0aW9uczwvZW0+LgotICogXHBhcmFtIGV4cGVjdGVkX3NhbHRfbGVuIFRoZSBsZW5ndGggb2YgdGhlIHNhbHQgdXNlZCBpbiBwYWRkaW5nLiBVc2UKLSAqICAgICAgICAgICAgICAgICAgICAgICAgICAjTUJFRFRMU19SU0FfU0FMVF9MRU5fQU5ZIHRvIGFjY2VwdCBhbnkgc2FsdCBsZW5ndGguCi0gKiBccGFyYW0gc2lnICAgICAgVGhlIGJ1ZmZlciBob2xkaW5nIHRoZSBzaWduYXR1cmUuIFRoaXMgbXVzdCBiZSBhIHJlYWRhYmxlCi0gKiAgICAgICAgICAgICAgICAgYnVmZmVyIG9mIGxlbmd0aCBcYyBjdHgtPmxlbiBCeXRlcy4gRm9yIGV4YW1wbGUsIFxjIDI1NiBCeXRlcwotICogICAgICAgICAgICAgICAgIGZvciBhbiAyMDQ4LWJpdCBSU0EgbW9kdWx1cy4KLSAqCi0gKiBccmV0dXJuICAgICAgICAgXGMgMCBpZiB0aGUgdmVyaWZ5IG9wZXJhdGlvbiB3YXMgc3VjY2Vzc2Z1bC4KLSAqIFxyZXR1cm4gICAgICAgICBBbiBcYyBNQkVEVExTX0VSUl9SU0FfWFhYIGVycm9yIGNvZGUgb24gZmFpbHVyZS4KLSAqLwotaW50IG1iZWR0bHNfcnNhX3JzYXNzYV9wc3NfdmVyaWZ5X2V4dChtYmVkdGxzX3JzYV9jb250ZXh0ICpjdHgsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1iZWR0bHNfbWRfdHlwZV90IG1kX2FsZywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50IGhhc2hsZW4sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgKmhhc2gsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1iZWR0bHNfbWRfdHlwZV90IG1nZjFfaGFzaF9pZCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGV4cGVjdGVkX3NhbHRfbGVuLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1bnNpZ25lZCBjaGFyICpzaWcpOwotCi0vKioKLSAqIFxicmllZiAgICAgICAgICBUaGlzIGZ1bmN0aW9uIGNvcGllcyB0aGUgY29tcG9uZW50cyBvZiBhbiBSU0EgY29udGV4dC4KLSAqCi0gKiBccGFyYW0gZHN0ICAgICAgVGhlIGRlc3RpbmF0aW9uIGNvbnRleHQuIFRoaXMgbXVzdCBiZSBpbml0aWFsaXplZC4KLSAqIFxwYXJhbSBzcmMgICAgICBUaGUgc291cmNlIGNvbnRleHQuIFRoaXMgbXVzdCBiZSBpbml0aWFsaXplZC4KLSAqCi0gKiBccmV0dXJuICAgICAgICAgXGMgMCBvbiBzdWNjZXNzLgotICogXHJldHVybiAgICAgICAgICNNQkVEVExTX0VSUl9NUElfQUxMT0NfRkFJTEVEIG9uIG1lbW9yeSBhbGxvY2F0aW9uIGZhaWx1cmUuCi0gKi8KLWludCBtYmVkdGxzX3JzYV9jb3B5KG1iZWR0bHNfcnNhX2NvbnRleHQgKmRzdCwgY29uc3QgbWJlZHRsc19yc2FfY29udGV4dCAqc3JjKTsKLQotLyoqCi0gKiBcYnJpZWYgICAgICAgICAgVGhpcyBmdW5jdGlvbiBmcmVlcyB0aGUgY29tcG9uZW50cyBvZiBhbiBSU0Ega2V5LgotICoKLSAqIFxwYXJhbSBjdHggICAgICBUaGUgUlNBIGNvbnRleHQgdG8gZnJlZS4gTWF5IGJlIFxjIE5VTEwsIGluIHdoaWNoIGNhc2UKLSAqICAgICAgICAgICAgICAgICB0aGlzIGZ1bmN0aW9uIGlzIGEgbm8tb3AuIElmIGl0IGlzIG5vdCBcYyBOVUxMLCBpdCBtdXN0Ci0gKiAgICAgICAgICAgICAgICAgcG9pbnQgdG8gYW4gaW5pdGlhbGl6ZWQgUlNBIGNvbnRleHQuCi0gKi8KLXZvaWQgbWJlZHRsc19yc2FfZnJlZShtYmVkdGxzX3JzYV9jb250ZXh0ICpjdHgpOwotCi0jaWYgZGVmaW5lZChNQkVEVExTX1NFTEZfVEVTVCkKLQotLyoqCi0gKiBcYnJpZWYgICAgICAgICAgVGhlIFJTQSBjaGVja3VwIHJvdXRpbmUuCi0gKgotICogXHJldHVybiAgICAgICAgIFxjIDAgb24gc3VjY2Vzcy4KLSAqIFxyZXR1cm4gICAgICAgICBcYyAxIG9uIGZhaWx1cmUuCi0gKi8KLWludCBtYmVkdGxzX3JzYV9zZWxmX3Rlc3QoaW50IHZlcmJvc2UpOwotCi0jZW5kaWYgLyogTUJFRFRMU19TRUxGX1RFU1QgKi8KLQotI2lmZGVmIF9fY3BsdXNwbHVzCi19Ci0jZW5kaWYKLQotI2VuZGlmIC8qIHJzYS5oICovCmRpZmYgLS1naXQgYS9pbmNsdWRlL21iZWR0bHMvc2hhMS5oIGIvaW5jbHVkZS9tYmVkdGxzL3NoYTEuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNTkyZmZkMS4uMDAwMDAwMAotLS0gYS9pbmNsdWRlL21iZWR0bHMvc2hhMS5oCisrKyAvZGV2L251bGwKQEAgLTEsMjE5ICswLDAgQEAKLS8qKgotICogXGZpbGUgc2hhMS5oCi0gKgotICogXGJyaWVmIFRoaXMgZmlsZSBjb250YWlucyBTSEEtMSBkZWZpbml0aW9ucyBhbmQgZnVuY3Rpb25zLgotICoKLSAqIFRoZSBTZWN1cmUgSGFzaCBBbGdvcml0aG0gMSAoU0hBLTEpIGNyeXB0b2dyYXBoaWMgaGFzaCBmdW5jdGlvbiBpcyBkZWZpbmVkIGluCi0gKiA8ZW0+RklQUyAxODAtNDogU2VjdXJlIEhhc2ggU3RhbmRhcmQgKFNIUyk8L2VtPi4KLSAqCi0gKiBcd2FybmluZyAgIFNIQS0xIGlzIGNvbnNpZGVyZWQgYSB3ZWFrIG1lc3NhZ2UgZGlnZXN0IGFuZCBpdHMgdXNlIGNvbnN0aXR1dGVzCi0gKiAgICAgICAgICAgIGEgc2VjdXJpdHkgcmlzay4gV2UgcmVjb21tZW5kIGNvbnNpZGVyaW5nIHN0cm9uZ2VyIG1lc3NhZ2UKLSAqICAgICAgICAgICAgZGlnZXN0cyBpbnN0ZWFkLgotICovCi0vKgotICogIENvcHlyaWdodCBUaGUgTWJlZCBUTFMgQ29udHJpYnV0b3JzCi0gKiAgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjAgT1IgR1BMLTIuMC1vci1sYXRlcgotICovCi0jaWZuZGVmIE1CRURUTFNfU0hBMV9ICi0jZGVmaW5lIE1CRURUTFNfU0hBMV9ICi0jaW5jbHVkZSAibWJlZHRscy9wcml2YXRlX2FjY2Vzcy5oIgotCi0jaW5jbHVkZSAibWJlZHRscy9idWlsZF9pbmZvLmgiCi0KLSNpbmNsdWRlIDxzdGRkZWYuaD4KLSNpbmNsdWRlIDxzdGRpbnQuaD4KLQotLyoqIFNIQS0xIGlucHV0IGRhdGEgd2FzIG1hbGZvcm1lZC4gKi8KLSNkZWZpbmUgTUJFRFRMU19FUlJfU0hBMV9CQURfSU5QVVRfREFUQSAgICAgICAgICAgICAgICAgICAtMHgwMDczCi0KLSNpZmRlZiBfX2NwbHVzcGx1cwotZXh0ZXJuICJDIiB7Ci0jZW5kaWYKLQotI2lmICFkZWZpbmVkKE1CRURUTFNfU0hBMV9BTFQpCi0vLyBSZWd1bGFyIGltcGxlbWVudGF0aW9uCi0vLwotCi0vKioKLSAqIFxicmllZiAgICAgICAgICBUaGUgU0hBLTEgY29udGV4dCBzdHJ1Y3R1cmUuCi0gKgotICogXHdhcm5pbmcgICAgICAgIFNIQS0xIGlzIGNvbnNpZGVyZWQgYSB3ZWFrIG1lc3NhZ2UgZGlnZXN0IGFuZCBpdHMgdXNlCi0gKiAgICAgICAgICAgICAgICAgY29uc3RpdHV0ZXMgYSBzZWN1cml0eSByaXNrLiBXZSByZWNvbW1lbmQgY29uc2lkZXJpbmcKLSAqICAgICAgICAgICAgICAgICBzdHJvbmdlciBtZXNzYWdlIGRpZ2VzdHMgaW5zdGVhZC4KLSAqCi0gKi8KLXR5cGVkZWYgc3RydWN0IG1iZWR0bHNfc2hhMV9jb250ZXh0IHsKLSAgICB1aW50MzJfdCBNQkVEVExTX1BSSVZBVEUodG90YWwpWzJdOyAgICAgICAgICAvKiE8IFRoZSBudW1iZXIgb2YgQnl0ZXMgcHJvY2Vzc2VkLiAgKi8KLSAgICB1aW50MzJfdCBNQkVEVExTX1BSSVZBVEUoc3RhdGUpWzVdOyAgICAgICAgICAvKiE8IFRoZSBpbnRlcm1lZGlhdGUgZGlnZXN0IHN0YXRlLiAgKi8KLSAgICB1bnNpZ25lZCBjaGFyIE1CRURUTFNfUFJJVkFURShidWZmZXIpWzY0XTsgICAvKiE8IFRoZSBkYXRhIGJsb2NrIGJlaW5nIHByb2Nlc3NlZC4gKi8KLX0KLW1iZWR0bHNfc2hhMV9jb250ZXh0OwotCi0jZWxzZSAgLyogTUJFRFRMU19TSEExX0FMVCAqLwotI2luY2x1ZGUgInNoYTFfYWx0LmgiCi0jZW5kaWYgLyogTUJFRFRMU19TSEExX0FMVCAqLwotCi0vKioKLSAqIFxicmllZiAgICAgICAgICBUaGlzIGZ1bmN0aW9uIGluaXRpYWxpemVzIGEgU0hBLTEgY29udGV4dC4KLSAqCi0gKiBcd2FybmluZyAgICAgICAgU0hBLTEgaXMgY29uc2lkZXJlZCBhIHdlYWsgbWVzc2FnZSBkaWdlc3QgYW5kIGl0cyB1c2UKLSAqICAgICAgICAgICAgICAgICBjb25zdGl0dXRlcyBhIHNlY3VyaXR5IHJpc2suIFdlIHJlY29tbWVuZCBjb25zaWRlcmluZwotICogICAgICAgICAgICAgICAgIHN0cm9uZ2VyIG1lc3NhZ2UgZGlnZXN0cyBpbnN0ZWFkLgotICoKLSAqIFxwYXJhbSBjdHggICAgICBUaGUgU0hBLTEgY29udGV4dCB0byBpbml0aWFsaXplLgotICogICAgICAgICAgICAgICAgIFRoaXMgbXVzdCBub3QgYmUgXGMgTlVMTC4KLSAqCi0gKi8KLXZvaWQgbWJlZHRsc19zaGExX2luaXQobWJlZHRsc19zaGExX2NvbnRleHQgKmN0eCk7Ci0KLS8qKgotICogXGJyaWVmICAgICAgICAgIFRoaXMgZnVuY3Rpb24gY2xlYXJzIGEgU0hBLTEgY29udGV4dC4KLSAqCi0gKiBcd2FybmluZyAgICAgICAgU0hBLTEgaXMgY29uc2lkZXJlZCBhIHdlYWsgbWVzc2FnZSBkaWdlc3QgYW5kIGl0cyB1c2UKLSAqICAgICAgICAgICAgICAgICBjb25zdGl0dXRlcyBhIHNlY3VyaXR5IHJpc2suIFdlIHJlY29tbWVuZCBjb25zaWRlcmluZwotICogICAgICAgICAgICAgICAgIHN0cm9uZ2VyIG1lc3NhZ2UgZGlnZXN0cyBpbnN0ZWFkLgotICoKLSAqIFxwYXJhbSBjdHggICAgICBUaGUgU0hBLTEgY29udGV4dCB0byBjbGVhci4gVGhpcyBtYXkgYmUgXGMgTlVMTCwKLSAqICAgICAgICAgICAgICAgICBpbiB3aGljaCBjYXNlIHRoaXMgZnVuY3Rpb24gZG9lcyBub3RoaW5nLiBJZiBpdCBpcwotICogICAgICAgICAgICAgICAgIG5vdCBcYyBOVUxMLCBpdCBtdXN0IHBvaW50IHRvIGFuIGluaXRpYWxpemVkCi0gKiAgICAgICAgICAgICAgICAgU0hBLTEgY29udGV4dC4KLSAqCi0gKi8KLXZvaWQgbWJlZHRsc19zaGExX2ZyZWUobWJlZHRsc19zaGExX2NvbnRleHQgKmN0eCk7Ci0KLS8qKgotICogXGJyaWVmICAgICAgICAgIFRoaXMgZnVuY3Rpb24gY2xvbmVzIHRoZSBzdGF0ZSBvZiBhIFNIQS0xIGNvbnRleHQuCi0gKgotICogXHdhcm5pbmcgICAgICAgIFNIQS0xIGlzIGNvbnNpZGVyZWQgYSB3ZWFrIG1lc3NhZ2UgZGlnZXN0IGFuZCBpdHMgdXNlCi0gKiAgICAgICAgICAgICAgICAgY29uc3RpdHV0ZXMgYSBzZWN1cml0eSByaXNrLiBXZSByZWNvbW1lbmQgY29uc2lkZXJpbmcKLSAqICAgICAgICAgICAgICAgICBzdHJvbmdlciBtZXNzYWdlIGRpZ2VzdHMgaW5zdGVhZC4KLSAqCi0gKiBccGFyYW0gZHN0ICAgICAgVGhlIFNIQS0xIGNvbnRleHQgdG8gY2xvbmUgdG8uIFRoaXMgbXVzdCBiZSBpbml0aWFsaXplZC4KLSAqIFxwYXJhbSBzcmMgICAgICBUaGUgU0hBLTEgY29udGV4dCB0byBjbG9uZSBmcm9tLiBUaGlzIG11c3QgYmUgaW5pdGlhbGl6ZWQuCi0gKgotICovCi12b2lkIG1iZWR0bHNfc2hhMV9jbG9uZShtYmVkdGxzX3NoYTFfY29udGV4dCAqZHN0LAotICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbWJlZHRsc19zaGExX2NvbnRleHQgKnNyYyk7Ci0KLS8qKgotICogXGJyaWVmICAgICAgICAgIFRoaXMgZnVuY3Rpb24gc3RhcnRzIGEgU0hBLTEgY2hlY2tzdW0gY2FsY3VsYXRpb24uCi0gKgotICogXHdhcm5pbmcgICAgICAgIFNIQS0xIGlzIGNvbnNpZGVyZWQgYSB3ZWFrIG1lc3NhZ2UgZGlnZXN0IGFuZCBpdHMgdXNlCi0gKiAgICAgICAgICAgICAgICAgY29uc3RpdHV0ZXMgYSBzZWN1cml0eSByaXNrLiBXZSByZWNvbW1lbmQgY29uc2lkZXJpbmcKLSAqICAgICAgICAgICAgICAgICBzdHJvbmdlciBtZXNzYWdlIGRpZ2VzdHMgaW5zdGVhZC4KLSAqCi0gKiBccGFyYW0gY3R4ICAgICAgVGhlIFNIQS0xIGNvbnRleHQgdG8gaW5pdGlhbGl6ZS4gVGhpcyBtdXN0IGJlIGluaXRpYWxpemVkLgotICoKLSAqIFxyZXR1cm4gICAgICAgICBcYyAwIG9uIHN1Y2Nlc3MuCi0gKiBccmV0dXJuICAgICAgICAgQSBuZWdhdGl2ZSBlcnJvciBjb2RlIG9uIGZhaWx1cmUuCi0gKgotICovCi1pbnQgbWJlZHRsc19zaGExX3N0YXJ0cyhtYmVkdGxzX3NoYTFfY29udGV4dCAqY3R4KTsKLQotLyoqCi0gKiBcYnJpZWYgICAgICAgICAgVGhpcyBmdW5jdGlvbiBmZWVkcyBhbiBpbnB1dCBidWZmZXIgaW50byBhbiBvbmdvaW5nIFNIQS0xCi0gKiAgICAgICAgICAgICAgICAgY2hlY2tzdW0gY2FsY3VsYXRpb24uCi0gKgotICogXHdhcm5pbmcgICAgICAgIFNIQS0xIGlzIGNvbnNpZGVyZWQgYSB3ZWFrIG1lc3NhZ2UgZGlnZXN0IGFuZCBpdHMgdXNlCi0gKiAgICAgICAgICAgICAgICAgY29uc3RpdHV0ZXMgYSBzZWN1cml0eSByaXNrLiBXZSByZWNvbW1lbmQgY29uc2lkZXJpbmcKLSAqICAgICAgICAgICAgICAgICBzdHJvbmdlciBtZXNzYWdlIGRpZ2VzdHMgaW5zdGVhZC4KLSAqCi0gKiBccGFyYW0gY3R4ICAgICAgVGhlIFNIQS0xIGNvbnRleHQuIFRoaXMgbXVzdCBiZSBpbml0aWFsaXplZAotICogICAgICAgICAgICAgICAgIGFuZCBoYXZlIGEgaGFzaCBvcGVyYXRpb24gc3RhcnRlZC4KLSAqIFxwYXJhbSBpbnB1dCAgICBUaGUgYnVmZmVyIGhvbGRpbmcgdGhlIGlucHV0IGRhdGEuCi0gKiAgICAgICAgICAgICAgICAgVGhpcyBtdXN0IGJlIGEgcmVhZGFibGUgYnVmZmVyIG9mIGxlbmd0aCBccCBpbGVuIEJ5dGVzLgotICogXHBhcmFtIGlsZW4gICAgIFRoZSBsZW5ndGggb2YgdGhlIGlucHV0IGRhdGEgXHAgaW5wdXQgaW4gQnl0ZXMuCi0gKgotICogXHJldHVybiAgICAgICAgIFxjIDAgb24gc3VjY2Vzcy4KLSAqIFxyZXR1cm4gICAgICAgICBBIG5lZ2F0aXZlIGVycm9yIGNvZGUgb24gZmFpbHVyZS4KLSAqLwotaW50IG1iZWR0bHNfc2hhMV91cGRhdGUobWJlZHRsc19zaGExX2NvbnRleHQgKmN0eCwKLSAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgKmlucHV0LAotICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IGlsZW4pOwotCi0vKioKLSAqIFxicmllZiAgICAgICAgICBUaGlzIGZ1bmN0aW9uIGZpbmlzaGVzIHRoZSBTSEEtMSBvcGVyYXRpb24sIGFuZCB3cml0ZXMKLSAqICAgICAgICAgICAgICAgICB0aGUgcmVzdWx0IHRvIHRoZSBvdXRwdXQgYnVmZmVyLgotICoKLSAqIFx3YXJuaW5nICAgICAgICBTSEEtMSBpcyBjb25zaWRlcmVkIGEgd2VhayBtZXNzYWdlIGRpZ2VzdCBhbmQgaXRzIHVzZQotICogICAgICAgICAgICAgICAgIGNvbnN0aXR1dGVzIGEgc2VjdXJpdHkgcmlzay4gV2UgcmVjb21tZW5kIGNvbnNpZGVyaW5nCi0gKiAgICAgICAgICAgICAgICAgc3Ryb25nZXIgbWVzc2FnZSBkaWdlc3RzIGluc3RlYWQuCi0gKgotICogXHBhcmFtIGN0eCAgICAgIFRoZSBTSEEtMSBjb250ZXh0IHRvIHVzZS4gVGhpcyBtdXN0IGJlIGluaXRpYWxpemVkIGFuZAotICogICAgICAgICAgICAgICAgIGhhdmUgYSBoYXNoIG9wZXJhdGlvbiBzdGFydGVkLgotICogXHBhcmFtIG91dHB1dCAgIFRoZSBTSEEtMSBjaGVja3N1bSByZXN1bHQuIFRoaXMgbXVzdCBiZSBhIHdyaXRhYmxlCi0gKiAgICAgICAgICAgICAgICAgYnVmZmVyIG9mIGxlbmd0aCBcYyAyMCBCeXRlcy4KLSAqCi0gKiBccmV0dXJuICAgICAgICAgXGMgMCBvbiBzdWNjZXNzLgotICogXHJldHVybiAgICAgICAgIEEgbmVnYXRpdmUgZXJyb3IgY29kZSBvbiBmYWlsdXJlLgotICovCi1pbnQgbWJlZHRsc19zaGExX2ZpbmlzaChtYmVkdGxzX3NoYTFfY29udGV4dCAqY3R4LAotICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgY2hhciBvdXRwdXRbMjBdKTsKLQotLyoqCi0gKiBcYnJpZWYgICAgICAgICAgU0hBLTEgcHJvY2VzcyBkYXRhIGJsb2NrIChpbnRlcm5hbCB1c2Ugb25seSkuCi0gKgotICogXHdhcm5pbmcgICAgICAgIFNIQS0xIGlzIGNvbnNpZGVyZWQgYSB3ZWFrIG1lc3NhZ2UgZGlnZXN0IGFuZCBpdHMgdXNlCi0gKiAgICAgICAgICAgICAgICAgY29uc3RpdHV0ZXMgYSBzZWN1cml0eSByaXNrLiBXZSByZWNvbW1lbmQgY29uc2lkZXJpbmcKLSAqICAgICAgICAgICAgICAgICBzdHJvbmdlciBtZXNzYWdlIGRpZ2VzdHMgaW5zdGVhZC4KLSAqCi0gKiBccGFyYW0gY3R4ICAgICAgVGhlIFNIQS0xIGNvbnRleHQgdG8gdXNlLiBUaGlzIG11c3QgYmUgaW5pdGlhbGl6ZWQuCi0gKiBccGFyYW0gZGF0YSAgICAgVGhlIGRhdGEgYmxvY2sgYmVpbmcgcHJvY2Vzc2VkLiBUaGlzIG11c3QgYmUgYQotICogICAgICAgICAgICAgICAgIHJlYWRhYmxlIGJ1ZmZlciBvZiBsZW5ndGggXGMgNjQgQnl0ZXMuCi0gKgotICogXHJldHVybiAgICAgICAgIFxjIDAgb24gc3VjY2Vzcy4KLSAqIFxyZXR1cm4gICAgICAgICBBIG5lZ2F0aXZlIGVycm9yIGNvZGUgb24gZmFpbHVyZS4KLSAqCi0gKi8KLWludCBtYmVkdGxzX2ludGVybmFsX3NoYTFfcHJvY2VzcyhtYmVkdGxzX3NoYTFfY29udGV4dCAqY3R4LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgZGF0YVs2NF0pOwotCi0vKioKLSAqIFxicmllZiAgICAgICAgICBUaGlzIGZ1bmN0aW9uIGNhbGN1bGF0ZXMgdGhlIFNIQS0xIGNoZWNrc3VtIG9mIGEgYnVmZmVyLgotICoKLSAqICAgICAgICAgICAgICAgICBUaGUgZnVuY3Rpb24gYWxsb2NhdGVzIHRoZSBjb250ZXh0LCBwZXJmb3JtcyB0aGUKLSAqICAgICAgICAgICAgICAgICBjYWxjdWxhdGlvbiwgYW5kIGZyZWVzIHRoZSBjb250ZXh0LgotICoKLSAqICAgICAgICAgICAgICAgICBUaGUgU0hBLTEgcmVzdWx0IGlzIGNhbGN1bGF0ZWQgYXMKLSAqICAgICAgICAgICAgICAgICBvdXRwdXQgPSBTSEEtMShpbnB1dCBidWZmZXIpLgotICoKLSAqIFx3YXJuaW5nICAgICAgICBTSEEtMSBpcyBjb25zaWRlcmVkIGEgd2VhayBtZXNzYWdlIGRpZ2VzdCBhbmQgaXRzIHVzZQotICogICAgICAgICAgICAgICAgIGNvbnN0aXR1dGVzIGEgc2VjdXJpdHkgcmlzay4gV2UgcmVjb21tZW5kIGNvbnNpZGVyaW5nCi0gKiAgICAgICAgICAgICAgICAgc3Ryb25nZXIgbWVzc2FnZSBkaWdlc3RzIGluc3RlYWQuCi0gKgotICogXHBhcmFtIGlucHV0ICAgIFRoZSBidWZmZXIgaG9sZGluZyB0aGUgaW5wdXQgZGF0YS4KLSAqICAgICAgICAgICAgICAgICBUaGlzIG11c3QgYmUgYSByZWFkYWJsZSBidWZmZXIgb2YgbGVuZ3RoIFxwIGlsZW4gQnl0ZXMuCi0gKiBccGFyYW0gaWxlbiAgICAgVGhlIGxlbmd0aCBvZiB0aGUgaW5wdXQgZGF0YSBccCBpbnB1dCBpbiBCeXRlcy4KLSAqIFxwYXJhbSBvdXRwdXQgICBUaGUgU0hBLTEgY2hlY2tzdW0gcmVzdWx0LgotICogICAgICAgICAgICAgICAgIFRoaXMgbXVzdCBiZSBhIHdyaXRhYmxlIGJ1ZmZlciBvZiBsZW5ndGggXGMgMjAgQnl0ZXMuCi0gKgotICogXHJldHVybiAgICAgICAgIFxjIDAgb24gc3VjY2Vzcy4KLSAqIFxyZXR1cm4gICAgICAgICBBIG5lZ2F0aXZlIGVycm9yIGNvZGUgb24gZmFpbHVyZS4KLSAqCi0gKi8KLWludCBtYmVkdGxzX3NoYTEoY29uc3QgdW5zaWduZWQgY2hhciAqaW5wdXQsCi0gICAgICAgICAgICAgICAgIHNpemVfdCBpbGVuLAotICAgICAgICAgICAgICAgICB1bnNpZ25lZCBjaGFyIG91dHB1dFsyMF0pOwotCi0jaWYgZGVmaW5lZChNQkVEVExTX1NFTEZfVEVTVCkKLQotLyoqCi0gKiBcYnJpZWYgICAgICAgICAgVGhlIFNIQS0xIGNoZWNrdXAgcm91dGluZS4KLSAqCi0gKiBcd2FybmluZyAgICAgICAgU0hBLTEgaXMgY29uc2lkZXJlZCBhIHdlYWsgbWVzc2FnZSBkaWdlc3QgYW5kIGl0cyB1c2UKLSAqICAgICAgICAgICAgICAgICBjb25zdGl0dXRlcyBhIHNlY3VyaXR5IHJpc2suIFdlIHJlY29tbWVuZCBjb25zaWRlcmluZwotICogICAgICAgICAgICAgICAgIHN0cm9uZ2VyIG1lc3NhZ2UgZGlnZXN0cyBpbnN0ZWFkLgotICoKLSAqIFxyZXR1cm4gICAgICAgICBcYyAwIG9uIHN1Y2Nlc3MuCi0gKiBccmV0dXJuICAgICAgICAgXGMgMSBvbiBmYWlsdXJlLgotICoKLSAqLwotaW50IG1iZWR0bHNfc2hhMV9zZWxmX3Rlc3QoaW50IHZlcmJvc2UpOwotCi0jZW5kaWYgLyogTUJFRFRMU19TRUxGX1RFU1QgKi8KLQotI2lmZGVmIF9fY3BsdXNwbHVzCi19Ci0jZW5kaWYKLQotI2VuZGlmIC8qIG1iZWR0bHNfc2hhMS5oICovCmRpZmYgLS1naXQgYS9pbmNsdWRlL21iZWR0bHMvc2hhMjU2LmggYi9pbmNsdWRlL21iZWR0bHMvc2hhMjU2LmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGNhNTY4ZTIuLjAwMDAwMDAKLS0tIGEvaW5jbHVkZS9tYmVkdGxzL3NoYTI1Ni5oCisrKyAvZGV2L251bGwKQEAgLTEsMjAwICswLDAgQEAKLS8qKgotICogXGZpbGUgc2hhMjU2LmgKLSAqCi0gKiBcYnJpZWYgVGhpcyBmaWxlIGNvbnRhaW5zIFNIQS0yMjQgYW5kIFNIQS0yNTYgZGVmaW5pdGlvbnMgYW5kIGZ1bmN0aW9ucy4KLSAqCi0gKiBUaGUgU2VjdXJlIEhhc2ggQWxnb3JpdGhtcyAyMjQgYW5kIDI1NiAoU0hBLTIyNCBhbmQgU0hBLTI1NikgY3J5cHRvZ3JhcGhpYwotICogaGFzaCBmdW5jdGlvbnMgYXJlIGRlZmluZWQgaW4gPGVtPkZJUFMgMTgwLTQ6IFNlY3VyZSBIYXNoIFN0YW5kYXJkIChTSFMpPC9lbT4uCi0gKi8KLS8qCi0gKiAgQ29weXJpZ2h0IFRoZSBNYmVkIFRMUyBDb250cmlidXRvcnMKLSAqICBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMCBPUiBHUEwtMi4wLW9yLWxhdGVyCi0gKi8KLSNpZm5kZWYgTUJFRFRMU19TSEEyNTZfSAotI2RlZmluZSBNQkVEVExTX1NIQTI1Nl9ICi0jaW5jbHVkZSAibWJlZHRscy9wcml2YXRlX2FjY2Vzcy5oIgotCi0jaW5jbHVkZSAibWJlZHRscy9idWlsZF9pbmZvLmgiCi0KLSNpbmNsdWRlIDxzdGRkZWYuaD4KLSNpbmNsdWRlIDxzdGRpbnQuaD4KLQotLyoqIFNIQS0yNTYgaW5wdXQgZGF0YSB3YXMgbWFsZm9ybWVkLiAqLwotI2RlZmluZSBNQkVEVExTX0VSUl9TSEEyNTZfQkFEX0lOUFVUX0RBVEEgICAgICAgICAgICAgICAgIC0weDAwNzQKLQotI2lmZGVmIF9fY3BsdXNwbHVzCi1leHRlcm4gIkMiIHsKLSNlbmRpZgotCi0jaWYgIWRlZmluZWQoTUJFRFRMU19TSEEyNTZfQUxUKQotLy8gUmVndWxhciBpbXBsZW1lbnRhdGlvbgotLy8KLQotLyoqCi0gKiBcYnJpZWYgICAgICAgICAgVGhlIFNIQS0yNTYgY29udGV4dCBzdHJ1Y3R1cmUuCi0gKgotICogICAgICAgICAgICAgICAgIFRoZSBzdHJ1Y3R1cmUgaXMgdXNlZCBib3RoIGZvciBTSEEtMjU2IGFuZCBmb3IgU0hBLTIyNAotICogICAgICAgICAgICAgICAgIGNoZWNrc3VtIGNhbGN1bGF0aW9ucy4gVGhlIGNob2ljZSBiZXR3ZWVuIHRoZXNlIHR3byBpcwotICogICAgICAgICAgICAgICAgIG1hZGUgaW4gdGhlIGNhbGwgdG8gbWJlZHRsc19zaGEyNTZfc3RhcnRzKCkuCi0gKi8KLXR5cGVkZWYgc3RydWN0IG1iZWR0bHNfc2hhMjU2X2NvbnRleHQgewotICAgIHVuc2lnbmVkIGNoYXIgTUJFRFRMU19QUklWQVRFKGJ1ZmZlcilbNjRdOyAgIC8qITwgVGhlIGRhdGEgYmxvY2sgYmVpbmcgcHJvY2Vzc2VkLiAqLwotICAgIHVpbnQzMl90IE1CRURUTFNfUFJJVkFURSh0b3RhbClbMl07ICAgICAgICAgIC8qITwgVGhlIG51bWJlciBvZiBCeXRlcyBwcm9jZXNzZWQuICAqLwotICAgIHVpbnQzMl90IE1CRURUTFNfUFJJVkFURShzdGF0ZSlbOF07ICAgICAgICAgIC8qITwgVGhlIGludGVybWVkaWF0ZSBkaWdlc3Qgc3RhdGUuICAqLwotI2lmIGRlZmluZWQoTUJFRFRMU19TSEEyMjRfQykKLSAgICBpbnQgTUJFRFRMU19QUklWQVRFKGlzMjI0KTsgICAgICAgICAgICAgICAgICAvKiE8IERldGVybWluZXMgd2hpY2ggZnVuY3Rpb24gdG8gdXNlOgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDA6IFVzZSBTSEEtMjU2LCBvciAxOiBVc2UgU0hBLTIyNC4gKi8KLSNlbmRpZgotfQotbWJlZHRsc19zaGEyNTZfY29udGV4dDsKLQotI2Vsc2UgIC8qIE1CRURUTFNfU0hBMjU2X0FMVCAqLwotI2luY2x1ZGUgInNoYTI1Nl9hbHQuaCIKLSNlbmRpZiAvKiBNQkVEVExTX1NIQTI1Nl9BTFQgKi8KLQotLyoqCi0gKiBcYnJpZWYgICAgICAgICAgVGhpcyBmdW5jdGlvbiBpbml0aWFsaXplcyBhIFNIQS0yNTYgY29udGV4dC4KLSAqCi0gKiBccGFyYW0gY3R4ICAgICAgVGhlIFNIQS0yNTYgY29udGV4dCB0byBpbml0aWFsaXplLiBUaGlzIG11c3Qgbm90IGJlIFxjIE5VTEwuCi0gKi8KLXZvaWQgbWJlZHRsc19zaGEyNTZfaW5pdChtYmVkdGxzX3NoYTI1Nl9jb250ZXh0ICpjdHgpOwotCi0vKioKLSAqIFxicmllZiAgICAgICAgICBUaGlzIGZ1bmN0aW9uIGNsZWFycyBhIFNIQS0yNTYgY29udGV4dC4KLSAqCi0gKiBccGFyYW0gY3R4ICAgICAgVGhlIFNIQS0yNTYgY29udGV4dCB0byBjbGVhci4gVGhpcyBtYXkgYmUgXGMgTlVMTCwgaW4gd2hpY2gKLSAqICAgICAgICAgICAgICAgICBjYXNlIHRoaXMgZnVuY3Rpb24gcmV0dXJucyBpbW1lZGlhdGVseS4gSWYgaXQgaXMgbm90IFxjIE5VTEwsCi0gKiAgICAgICAgICAgICAgICAgaXQgbXVzdCBwb2ludCB0byBhbiBpbml0aWFsaXplZCBTSEEtMjU2IGNvbnRleHQuCi0gKi8KLXZvaWQgbWJlZHRsc19zaGEyNTZfZnJlZShtYmVkdGxzX3NoYTI1Nl9jb250ZXh0ICpjdHgpOwotCi0vKioKLSAqIFxicmllZiAgICAgICAgICBUaGlzIGZ1bmN0aW9uIGNsb25lcyB0aGUgc3RhdGUgb2YgYSBTSEEtMjU2IGNvbnRleHQuCi0gKgotICogXHBhcmFtIGRzdCAgICAgIFRoZSBkZXN0aW5hdGlvbiBjb250ZXh0LiBUaGlzIG11c3QgYmUgaW5pdGlhbGl6ZWQuCi0gKiBccGFyYW0gc3JjICAgICAgVGhlIGNvbnRleHQgdG8gY2xvbmUuIFRoaXMgbXVzdCBiZSBpbml0aWFsaXplZC4KLSAqLwotdm9pZCBtYmVkdGxzX3NoYTI1Nl9jbG9uZShtYmVkdGxzX3NoYTI1Nl9jb250ZXh0ICpkc3QsCi0gICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IG1iZWR0bHNfc2hhMjU2X2NvbnRleHQgKnNyYyk7Ci0KLS8qKgotICogXGJyaWVmICAgICAgICAgIFRoaXMgZnVuY3Rpb24gc3RhcnRzIGEgU0hBLTIyNCBvciBTSEEtMjU2IGNoZWNrc3VtCi0gKiAgICAgICAgICAgICAgICAgY2FsY3VsYXRpb24uCi0gKgotICogXHBhcmFtIGN0eCAgICAgIFRoZSBjb250ZXh0IHRvIHVzZS4gVGhpcyBtdXN0IGJlIGluaXRpYWxpemVkLgotICogXHBhcmFtIGlzMjI0ICAgIFRoaXMgZGV0ZXJtaW5lcyB3aGljaCBmdW5jdGlvbiB0byB1c2UuIFRoaXMgbXVzdCBiZQotICogICAgICAgICAgICAgICAgIGVpdGhlciBcYyAwIGZvciBTSEEtMjU2LCBvciBcYyAxIGZvciBTSEEtMjI0LgotICoKLSAqIFxub3RlICAgICAgICAgICBpczIyNCBtdXN0IGJlIGRlZmluZWQgYWNjb3JkaW5nbHkgdG8gdGhlIGVuYWJsZWQKLSAqICAgICAgICAgICAgICAgICBNQkVEVExTX1NIQTIyNF9DL01CRURUTFNfU0hBMjU2X0Mgc3ltYm9scyBvdGhlcndpc2UgdGhlCi0gKiAgICAgICAgICAgICAgICAgZnVuY3Rpb24gd2lsbCByZXR1cm4gI01CRURUTFNfRVJSX1NIQTUxMl9CQURfSU5QVVRfREFUQS4KLSAqCi0gKiBccmV0dXJuICAgICAgICAgXGMgMCBvbiBzdWNjZXNzLgotICogXHJldHVybiAgICAgICAgIEEgbmVnYXRpdmUgZXJyb3IgY29kZSBvbiBmYWlsdXJlLgotICovCi1pbnQgbWJlZHRsc19zaGEyNTZfc3RhcnRzKG1iZWR0bHNfc2hhMjU2X2NvbnRleHQgKmN0eCwgaW50IGlzMjI0KTsKLQotLyoqCi0gKiBcYnJpZWYgICAgICAgICAgVGhpcyBmdW5jdGlvbiBmZWVkcyBhbiBpbnB1dCBidWZmZXIgaW50byBhbiBvbmdvaW5nCi0gKiAgICAgICAgICAgICAgICAgU0hBLTI1NiBjaGVja3N1bSBjYWxjdWxhdGlvbi4KLSAqCi0gKiBccGFyYW0gY3R4ICAgICAgVGhlIFNIQS0yNTYgY29udGV4dC4gVGhpcyBtdXN0IGJlIGluaXRpYWxpemVkCi0gKiAgICAgICAgICAgICAgICAgYW5kIGhhdmUgYSBoYXNoIG9wZXJhdGlvbiBzdGFydGVkLgotICogXHBhcmFtIGlucHV0ICAgIFRoZSBidWZmZXIgaG9sZGluZyB0aGUgZGF0YS4gVGhpcyBtdXN0IGJlIGEgcmVhZGFibGUKLSAqICAgICAgICAgICAgICAgICBidWZmZXIgb2YgbGVuZ3RoIFxwIGlsZW4gQnl0ZXMuCi0gKiBccGFyYW0gaWxlbiAgICAgVGhlIGxlbmd0aCBvZiB0aGUgaW5wdXQgZGF0YSBpbiBCeXRlcy4KLSAqCi0gKiBccmV0dXJuICAgICAgICAgXGMgMCBvbiBzdWNjZXNzLgotICogXHJldHVybiAgICAgICAgIEEgbmVnYXRpdmUgZXJyb3IgY29kZSBvbiBmYWlsdXJlLgotICovCi1pbnQgbWJlZHRsc19zaGEyNTZfdXBkYXRlKG1iZWR0bHNfc2hhMjU2X2NvbnRleHQgKmN0eCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdW5zaWduZWQgY2hhciAqaW5wdXQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBpbGVuKTsKLQotLyoqCi0gKiBcYnJpZWYgICAgICAgICAgVGhpcyBmdW5jdGlvbiBmaW5pc2hlcyB0aGUgU0hBLTI1NiBvcGVyYXRpb24sIGFuZCB3cml0ZXMKLSAqICAgICAgICAgICAgICAgICB0aGUgcmVzdWx0IHRvIHRoZSBvdXRwdXQgYnVmZmVyLgotICoKLSAqIFxwYXJhbSBjdHggICAgICBUaGUgU0hBLTI1NiBjb250ZXh0LiBUaGlzIG11c3QgYmUgaW5pdGlhbGl6ZWQKLSAqICAgICAgICAgICAgICAgICBhbmQgaGF2ZSBhIGhhc2ggb3BlcmF0aW9uIHN0YXJ0ZWQuCi0gKiBccGFyYW0gb3V0cHV0ICAgVGhlIFNIQS0yMjQgb3IgU0hBLTI1NiBjaGVja3N1bSByZXN1bHQuCi0gKiAgICAgICAgICAgICAgICAgVGhpcyBtdXN0IGJlIGEgd3JpdGFibGUgYnVmZmVyIG9mIGxlbmd0aCBcYyAzMiBieXRlcwotICogICAgICAgICAgICAgICAgIGZvciBTSEEtMjU2LCBcYyAyOCBieXRlcyBmb3IgU0hBLTIyNC4KLSAqCi0gKiBccmV0dXJuICAgICAgICAgXGMgMCBvbiBzdWNjZXNzLgotICogXHJldHVybiAgICAgICAgIEEgbmVnYXRpdmUgZXJyb3IgY29kZSBvbiBmYWlsdXJlLgotICovCi1pbnQgbWJlZHRsc19zaGEyNTZfZmluaXNoKG1iZWR0bHNfc2hhMjU2X2NvbnRleHQgKmN0eCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgY2hhciAqb3V0cHV0KTsKLQotLyoqCi0gKiBcYnJpZWYgICAgICAgICAgVGhpcyBmdW5jdGlvbiBwcm9jZXNzZXMgYSBzaW5nbGUgZGF0YSBibG9jayB3aXRoaW4KLSAqICAgICAgICAgICAgICAgICB0aGUgb25nb2luZyBTSEEtMjU2IGNvbXB1dGF0aW9uLiBUaGlzIGZ1bmN0aW9uIGlzIGZvcgotICogICAgICAgICAgICAgICAgIGludGVybmFsIHVzZSBvbmx5LgotICoKLSAqIFxwYXJhbSBjdHggICAgICBUaGUgU0hBLTI1NiBjb250ZXh0LiBUaGlzIG11c3QgYmUgaW5pdGlhbGl6ZWQuCi0gKiBccGFyYW0gZGF0YSAgICAgVGhlIGJ1ZmZlciBob2xkaW5nIG9uZSBibG9jayBvZiBkYXRhLiBUaGlzIG11c3QKLSAqICAgICAgICAgICAgICAgICBiZSBhIHJlYWRhYmxlIGJ1ZmZlciBvZiBsZW5ndGggXGMgNjQgQnl0ZXMuCi0gKgotICogXHJldHVybiAgICAgICAgIFxjIDAgb24gc3VjY2Vzcy4KLSAqIFxyZXR1cm4gICAgICAgICBBIG5lZ2F0aXZlIGVycm9yIGNvZGUgb24gZmFpbHVyZS4KLSAqLwotaW50IG1iZWR0bHNfaW50ZXJuYWxfc2hhMjU2X3Byb2Nlc3MobWJlZHRsc19zaGEyNTZfY29udGV4dCAqY3R4LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdW5zaWduZWQgY2hhciBkYXRhWzY0XSk7Ci0KLS8qKgotICogXGJyaWVmICAgICAgICAgIFRoaXMgZnVuY3Rpb24gY2FsY3VsYXRlcyB0aGUgU0hBLTIyNCBvciBTSEEtMjU2Ci0gKiAgICAgICAgICAgICAgICAgY2hlY2tzdW0gb2YgYSBidWZmZXIuCi0gKgotICogICAgICAgICAgICAgICAgIFRoZSBmdW5jdGlvbiBhbGxvY2F0ZXMgdGhlIGNvbnRleHQsIHBlcmZvcm1zIHRoZQotICogICAgICAgICAgICAgICAgIGNhbGN1bGF0aW9uLCBhbmQgZnJlZXMgdGhlIGNvbnRleHQuCi0gKgotICogICAgICAgICAgICAgICAgIFRoZSBTSEEtMjU2IHJlc3VsdCBpcyBjYWxjdWxhdGVkIGFzCi0gKiAgICAgICAgICAgICAgICAgb3V0cHV0ID0gU0hBLTI1NihpbnB1dCBidWZmZXIpLgotICoKLSAqIFxwYXJhbSBpbnB1dCAgICBUaGUgYnVmZmVyIGhvbGRpbmcgdGhlIGRhdGEuIFRoaXMgbXVzdCBiZSBhIHJlYWRhYmxlCi0gKiAgICAgICAgICAgICAgICAgYnVmZmVyIG9mIGxlbmd0aCBccCBpbGVuIEJ5dGVzLgotICogXHBhcmFtIGlsZW4gICAgIFRoZSBsZW5ndGggb2YgdGhlIGlucHV0IGRhdGEgaW4gQnl0ZXMuCi0gKiBccGFyYW0gb3V0cHV0ICAgVGhlIFNIQS0yMjQgb3IgU0hBLTI1NiBjaGVja3N1bSByZXN1bHQuCi0gKiAgICAgICAgICAgICAgICAgVGhpcyBtdXN0IGJlIGEgd3JpdGFibGUgYnVmZmVyIG9mIGxlbmd0aCBcYyAzMiBieXRlcwotICogICAgICAgICAgICAgICAgIGZvciBTSEEtMjU2LCBcYyAyOCBieXRlcyBmb3IgU0hBLTIyNC4KLSAqIFxwYXJhbSBpczIyNCAgICBEZXRlcm1pbmVzIHdoaWNoIGZ1bmN0aW9uIHRvIHVzZS4gVGhpcyBtdXN0IGJlCi0gKiAgICAgICAgICAgICAgICAgZWl0aGVyIFxjIDAgZm9yIFNIQS0yNTYsIG9yIFxjIDEgZm9yIFNIQS0yMjQuCi0gKgotICogXHJldHVybiAgICAgICAgIFxjIDAgb24gc3VjY2Vzcy4KLSAqIFxyZXR1cm4gICAgICAgICBBIG5lZ2F0aXZlIGVycm9yIGNvZGUgb24gZmFpbHVyZS4KLSAqLwotaW50IG1iZWR0bHNfc2hhMjU2KGNvbnN0IHVuc2lnbmVkIGNoYXIgKmlucHV0LAotICAgICAgICAgICAgICAgICAgIHNpemVfdCBpbGVuLAotICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGNoYXIgKm91dHB1dCwKLSAgICAgICAgICAgICAgICAgICBpbnQgaXMyMjQpOwotCi0jaWYgZGVmaW5lZChNQkVEVExTX1NFTEZfVEVTVCkKLQotI2lmIGRlZmluZWQoTUJFRFRMU19TSEEyMjRfQykKLS8qKgotICogXGJyaWVmICAgICAgICAgIFRoZSBTSEEtMjI0IGNoZWNrdXAgcm91dGluZS4KLSAqCi0gKiBccmV0dXJuICAgICAgICAgXGMgMCBvbiBzdWNjZXNzLgotICogXHJldHVybiAgICAgICAgIFxjIDEgb24gZmFpbHVyZS4KLSAqLwotaW50IG1iZWR0bHNfc2hhMjI0X3NlbGZfdGVzdChpbnQgdmVyYm9zZSk7Ci0jZW5kaWYgLyogTUJFRFRMU19TSEEyMjRfQyAqLwotCi0jaWYgZGVmaW5lZChNQkVEVExTX1NIQTI1Nl9DKQotLyoqCi0gKiBcYnJpZWYgICAgICAgICAgVGhlIFNIQS0yNTYgY2hlY2t1cCByb3V0aW5lLgotICoKLSAqIFxyZXR1cm4gICAgICAgICBcYyAwIG9uIHN1Y2Nlc3MuCi0gKiBccmV0dXJuICAgICAgICAgXGMgMSBvbiBmYWlsdXJlLgotICovCi1pbnQgbWJlZHRsc19zaGEyNTZfc2VsZl90ZXN0KGludCB2ZXJib3NlKTsKLSNlbmRpZiAvKiBNQkVEVExTX1NIQTI1Nl9DICovCi0KLSNlbmRpZiAvKiBNQkVEVExTX1NFTEZfVEVTVCAqLwotCi0jaWZkZWYgX19jcGx1c3BsdXMKLX0KLSNlbmRpZgotCi0jZW5kaWYgLyogbWJlZHRsc19zaGEyNTYuaCAqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9tYmVkdGxzL3NoYTUxMi5oIGIvaW5jbHVkZS9tYmVkdGxzL3NoYTUxMi5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxYzIwZTRjLi4wMDAwMDAwCi0tLSBhL2luY2x1ZGUvbWJlZHRscy9zaGE1MTIuaAorKysgL2Rldi9udWxsCkBAIC0xLDIwOCArMCwwIEBACi0vKioKLSAqIFxmaWxlIHNoYTUxMi5oCi0gKiBcYnJpZWYgVGhpcyBmaWxlIGNvbnRhaW5zIFNIQS0zODQgYW5kIFNIQS01MTIgZGVmaW5pdGlvbnMgYW5kIGZ1bmN0aW9ucy4KLSAqCi0gKiBUaGUgU2VjdXJlIEhhc2ggQWxnb3JpdGhtcyAzODQgYW5kIDUxMiAoU0hBLTM4NCBhbmQgU0hBLTUxMikgY3J5cHRvZ3JhcGhpYwotICogaGFzaCBmdW5jdGlvbnMgYXJlIGRlZmluZWQgaW4gPGVtPkZJUFMgMTgwLTQ6IFNlY3VyZSBIYXNoIFN0YW5kYXJkIChTSFMpPC9lbT4uCi0gKi8KLS8qCi0gKiAgQ29weXJpZ2h0IFRoZSBNYmVkIFRMUyBDb250cmlidXRvcnMKLSAqICBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMCBPUiBHUEwtMi4wLW9yLWxhdGVyCi0gKi8KLSNpZm5kZWYgTUJFRFRMU19TSEE1MTJfSAotI2RlZmluZSBNQkVEVExTX1NIQTUxMl9ICi0jaW5jbHVkZSAibWJlZHRscy9wcml2YXRlX2FjY2Vzcy5oIgotCi0jaW5jbHVkZSAibWJlZHRscy9idWlsZF9pbmZvLmgiCi0KLSNpbmNsdWRlIDxzdGRkZWYuaD4KLSNpbmNsdWRlIDxzdGRpbnQuaD4KLQotLyoqIFNIQS01MTIgaW5wdXQgZGF0YSB3YXMgbWFsZm9ybWVkLiAqLwotI2RlZmluZSBNQkVEVExTX0VSUl9TSEE1MTJfQkFEX0lOUFVUX0RBVEEgICAgICAgICAgICAgICAgIC0weDAwNzUKLQotI2lmZGVmIF9fY3BsdXNwbHVzCi1leHRlcm4gIkMiIHsKLSNlbmRpZgotCi0jaWYgIWRlZmluZWQoTUJFRFRMU19TSEE1MTJfQUxUKQotLy8gUmVndWxhciBpbXBsZW1lbnRhdGlvbgotLy8KLQotLyoqCi0gKiBcYnJpZWYgICAgICAgICAgVGhlIFNIQS01MTIgY29udGV4dCBzdHJ1Y3R1cmUuCi0gKgotICogICAgICAgICAgICAgICAgIFRoZSBzdHJ1Y3R1cmUgaXMgdXNlZCBib3RoIGZvciBTSEEtMzg0IGFuZCBmb3IgU0hBLTUxMgotICogICAgICAgICAgICAgICAgIGNoZWNrc3VtIGNhbGN1bGF0aW9ucy4gVGhlIGNob2ljZSBiZXR3ZWVuIHRoZXNlIHR3byBpcwotICogICAgICAgICAgICAgICAgIG1hZGUgaW4gdGhlIGNhbGwgdG8gbWJlZHRsc19zaGE1MTJfc3RhcnRzKCkuCi0gKi8KLXR5cGVkZWYgc3RydWN0IG1iZWR0bHNfc2hhNTEyX2NvbnRleHQgewotICAgIHVpbnQ2NF90IE1CRURUTFNfUFJJVkFURSh0b3RhbClbMl07ICAgICAgICAgIC8qITwgVGhlIG51bWJlciBvZiBCeXRlcyBwcm9jZXNzZWQuICovCi0gICAgdWludDY0X3QgTUJFRFRMU19QUklWQVRFKHN0YXRlKVs4XTsgICAgICAgICAgLyohPCBUaGUgaW50ZXJtZWRpYXRlIGRpZ2VzdCBzdGF0ZS4gKi8KLSAgICB1bnNpZ25lZCBjaGFyIE1CRURUTFNfUFJJVkFURShidWZmZXIpWzEyOF07ICAvKiE8IFRoZSBkYXRhIGJsb2NrIGJlaW5nIHByb2Nlc3NlZC4gKi8KLSNpZiBkZWZpbmVkKE1CRURUTFNfU0hBMzg0X0MpCi0gICAgaW50IE1CRURUTFNfUFJJVkFURShpczM4NCk7ICAgICAgICAgICAgICAgICAgLyohPCBEZXRlcm1pbmVzIHdoaWNoIGZ1bmN0aW9uIHRvIHVzZToKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDA6IFVzZSBTSEEtNTEyLCBvciAxOiBVc2UgU0hBLTM4NC4gKi8KLSNlbmRpZgotfQotbWJlZHRsc19zaGE1MTJfY29udGV4dDsKLQotI2Vsc2UgIC8qIE1CRURUTFNfU0hBNTEyX0FMVCAqLwotI2luY2x1ZGUgInNoYTUxMl9hbHQuaCIKLSNlbmRpZiAvKiBNQkVEVExTX1NIQTUxMl9BTFQgKi8KLQotLyoqCi0gKiBcYnJpZWYgICAgICAgICAgVGhpcyBmdW5jdGlvbiBpbml0aWFsaXplcyBhIFNIQS01MTIgY29udGV4dC4KLSAqCi0gKiBccGFyYW0gY3R4ICAgICAgVGhlIFNIQS01MTIgY29udGV4dCB0byBpbml0aWFsaXplLiBUaGlzIG11c3QKLSAqICAgICAgICAgICAgICAgICBub3QgYmUgXGMgTlVMTC4KLSAqLwotdm9pZCBtYmVkdGxzX3NoYTUxMl9pbml0KG1iZWR0bHNfc2hhNTEyX2NvbnRleHQgKmN0eCk7Ci0KLS8qKgotICogXGJyaWVmICAgICAgICAgIFRoaXMgZnVuY3Rpb24gY2xlYXJzIGEgU0hBLTUxMiBjb250ZXh0LgotICoKLSAqIFxwYXJhbSBjdHggICAgICBUaGUgU0hBLTUxMiBjb250ZXh0IHRvIGNsZWFyLiBUaGlzIG1heSBiZSBcYyBOVUxMLAotICogICAgICAgICAgICAgICAgIGluIHdoaWNoIGNhc2UgdGhpcyBmdW5jdGlvbiBkb2VzIG5vdGhpbmcuIElmIGl0Ci0gKiAgICAgICAgICAgICAgICAgaXMgbm90IFxjIE5VTEwsIGl0IG11c3QgcG9pbnQgdG8gYW4gaW5pdGlhbGl6ZWQKLSAqICAgICAgICAgICAgICAgICBTSEEtNTEyIGNvbnRleHQuCi0gKi8KLXZvaWQgbWJlZHRsc19zaGE1MTJfZnJlZShtYmVkdGxzX3NoYTUxMl9jb250ZXh0ICpjdHgpOwotCi0vKioKLSAqIFxicmllZiAgICAgICAgICBUaGlzIGZ1bmN0aW9uIGNsb25lcyB0aGUgc3RhdGUgb2YgYSBTSEEtNTEyIGNvbnRleHQuCi0gKgotICogXHBhcmFtIGRzdCAgICAgIFRoZSBkZXN0aW5hdGlvbiBjb250ZXh0LiBUaGlzIG11c3QgYmUgaW5pdGlhbGl6ZWQuCi0gKiBccGFyYW0gc3JjICAgICAgVGhlIGNvbnRleHQgdG8gY2xvbmUuIFRoaXMgbXVzdCBiZSBpbml0aWFsaXplZC4KLSAqLwotdm9pZCBtYmVkdGxzX3NoYTUxMl9jbG9uZShtYmVkdGxzX3NoYTUxMl9jb250ZXh0ICpkc3QsCi0gICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IG1iZWR0bHNfc2hhNTEyX2NvbnRleHQgKnNyYyk7Ci0KLS8qKgotICogXGJyaWVmICAgICAgICAgIFRoaXMgZnVuY3Rpb24gc3RhcnRzIGEgU0hBLTM4NCBvciBTSEEtNTEyIGNoZWNrc3VtCi0gKiAgICAgICAgICAgICAgICAgY2FsY3VsYXRpb24uCi0gKgotICogXHBhcmFtIGN0eCAgICAgIFRoZSBTSEEtNTEyIGNvbnRleHQgdG8gdXNlLiBUaGlzIG11c3QgYmUgaW5pdGlhbGl6ZWQuCi0gKiBccGFyYW0gaXMzODQgICAgRGV0ZXJtaW5lcyB3aGljaCBmdW5jdGlvbiB0byB1c2UuIFRoaXMgbXVzdCBiZQotICogICAgICAgICAgICAgICAgIGVpdGhlciBcYyAwIGZvciBTSEEtNTEyLCBvciBcYyAxIGZvciBTSEEtMzg0LgotICoKLSAqIFxub3RlICAgICAgICAgICBpczM4NCBtdXN0IGJlIGRlZmluZWQgYWNjb3JkaW5nbHkgdG8gdGhlIGVuYWJsZWQKLSAqICAgICAgICAgICAgICAgICBNQkVEVExTX1NIQTM4NF9DL01CRURUTFNfU0hBNTEyX0Mgc3ltYm9scyBvdGhlcndpc2UgdGhlCi0gKiAgICAgICAgICAgICAgICAgZnVuY3Rpb24gd2lsbCByZXR1cm4gI01CRURUTFNfRVJSX1NIQTUxMl9CQURfSU5QVVRfREFUQS4KLSAqCi0gKiBccmV0dXJuICAgICAgICAgXGMgMCBvbiBzdWNjZXNzLgotICogXHJldHVybiAgICAgICAgIEEgbmVnYXRpdmUgZXJyb3IgY29kZSBvbiBmYWlsdXJlLgotICovCi1pbnQgbWJlZHRsc19zaGE1MTJfc3RhcnRzKG1iZWR0bHNfc2hhNTEyX2NvbnRleHQgKmN0eCwgaW50IGlzMzg0KTsKLQotLyoqCi0gKiBcYnJpZWYgICAgICAgICAgVGhpcyBmdW5jdGlvbiBmZWVkcyBhbiBpbnB1dCBidWZmZXIgaW50byBhbiBvbmdvaW5nCi0gKiAgICAgICAgICAgICAgICAgU0hBLTUxMiBjaGVja3N1bSBjYWxjdWxhdGlvbi4KLSAqCi0gKiBccGFyYW0gY3R4ICAgICAgVGhlIFNIQS01MTIgY29udGV4dC4gVGhpcyBtdXN0IGJlIGluaXRpYWxpemVkCi0gKiAgICAgICAgICAgICAgICAgYW5kIGhhdmUgYSBoYXNoIG9wZXJhdGlvbiBzdGFydGVkLgotICogXHBhcmFtIGlucHV0ICAgIFRoZSBidWZmZXIgaG9sZGluZyB0aGUgaW5wdXQgZGF0YS4gVGhpcyBtdXN0Ci0gKiAgICAgICAgICAgICAgICAgYmUgYSByZWFkYWJsZSBidWZmZXIgb2YgbGVuZ3RoIFxwIGlsZW4gQnl0ZXMuCi0gKiBccGFyYW0gaWxlbiAgICAgVGhlIGxlbmd0aCBvZiB0aGUgaW5wdXQgZGF0YSBpbiBCeXRlcy4KLSAqCi0gKiBccmV0dXJuICAgICAgICAgXGMgMCBvbiBzdWNjZXNzLgotICogXHJldHVybiAgICAgICAgIEEgbmVnYXRpdmUgZXJyb3IgY29kZSBvbiBmYWlsdXJlLgotICovCi1pbnQgbWJlZHRsc19zaGE1MTJfdXBkYXRlKG1iZWR0bHNfc2hhNTEyX2NvbnRleHQgKmN0eCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdW5zaWduZWQgY2hhciAqaW5wdXQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBpbGVuKTsKLQotLyoqCi0gKiBcYnJpZWYgICAgICAgICAgVGhpcyBmdW5jdGlvbiBmaW5pc2hlcyB0aGUgU0hBLTUxMiBvcGVyYXRpb24sIGFuZCB3cml0ZXMKLSAqICAgICAgICAgICAgICAgICB0aGUgcmVzdWx0IHRvIHRoZSBvdXRwdXQgYnVmZmVyLgotICoKLSAqIFxwYXJhbSBjdHggICAgICBUaGUgU0hBLTUxMiBjb250ZXh0LiBUaGlzIG11c3QgYmUgaW5pdGlhbGl6ZWQKLSAqICAgICAgICAgICAgICAgICBhbmQgaGF2ZSBhIGhhc2ggb3BlcmF0aW9uIHN0YXJ0ZWQuCi0gKiBccGFyYW0gb3V0cHV0ICAgVGhlIFNIQS0zODQgb3IgU0hBLTUxMiBjaGVja3N1bSByZXN1bHQuCi0gKiAgICAgICAgICAgICAgICAgVGhpcyBtdXN0IGJlIGEgd3JpdGFibGUgYnVmZmVyIG9mIGxlbmd0aCBcYyA2NCBieXRlcwotICogICAgICAgICAgICAgICAgIGZvciBTSEEtNTEyLCBcYyA0OCBieXRlcyBmb3IgU0hBLTM4NC4KLSAqCi0gKiBccmV0dXJuICAgICAgICAgXGMgMCBvbiBzdWNjZXNzLgotICogXHJldHVybiAgICAgICAgIEEgbmVnYXRpdmUgZXJyb3IgY29kZSBvbiBmYWlsdXJlLgotICovCi1pbnQgbWJlZHRsc19zaGE1MTJfZmluaXNoKG1iZWR0bHNfc2hhNTEyX2NvbnRleHQgKmN0eCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgY2hhciAqb3V0cHV0KTsKLQotLyoqCi0gKiBcYnJpZWYgICAgICAgICAgVGhpcyBmdW5jdGlvbiBwcm9jZXNzZXMgYSBzaW5nbGUgZGF0YSBibG9jayB3aXRoaW4KLSAqICAgICAgICAgICAgICAgICB0aGUgb25nb2luZyBTSEEtNTEyIGNvbXB1dGF0aW9uLgotICogICAgICAgICAgICAgICAgIFRoaXMgZnVuY3Rpb24gaXMgZm9yIGludGVybmFsIHVzZSBvbmx5LgotICoKLSAqIFxwYXJhbSBjdHggICAgICBUaGUgU0hBLTUxMiBjb250ZXh0LiBUaGlzIG11c3QgYmUgaW5pdGlhbGl6ZWQuCi0gKiBccGFyYW0gZGF0YSAgICAgVGhlIGJ1ZmZlciBob2xkaW5nIG9uZSBibG9jayBvZiBkYXRhLiBUaGlzCi0gKiAgICAgICAgICAgICAgICAgbXVzdCBiZSBhIHJlYWRhYmxlIGJ1ZmZlciBvZiBsZW5ndGggXGMgMTI4IEJ5dGVzLgotICoKLSAqIFxyZXR1cm4gICAgICAgICBcYyAwIG9uIHN1Y2Nlc3MuCi0gKiBccmV0dXJuICAgICAgICAgQSBuZWdhdGl2ZSBlcnJvciBjb2RlIG9uIGZhaWx1cmUuCi0gKi8KLWludCBtYmVkdGxzX2ludGVybmFsX3NoYTUxMl9wcm9jZXNzKG1iZWR0bHNfc2hhNTEyX2NvbnRleHQgKmN0eCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgZGF0YVsxMjhdKTsKLQotLyoqCi0gKiBcYnJpZWYgICAgICAgICAgVGhpcyBmdW5jdGlvbiBjYWxjdWxhdGVzIHRoZSBTSEEtNTEyIG9yIFNIQS0zODQKLSAqICAgICAgICAgICAgICAgICBjaGVja3N1bSBvZiBhIGJ1ZmZlci4KLSAqCi0gKiAgICAgICAgICAgICAgICAgVGhlIGZ1bmN0aW9uIGFsbG9jYXRlcyB0aGUgY29udGV4dCwgcGVyZm9ybXMgdGhlCi0gKiAgICAgICAgICAgICAgICAgY2FsY3VsYXRpb24sIGFuZCBmcmVlcyB0aGUgY29udGV4dC4KLSAqCi0gKiAgICAgICAgICAgICAgICAgVGhlIFNIQS01MTIgcmVzdWx0IGlzIGNhbGN1bGF0ZWQgYXMKLSAqICAgICAgICAgICAgICAgICBvdXRwdXQgPSBTSEEtNTEyKGlucHV0IGJ1ZmZlcikuCi0gKgotICogXHBhcmFtIGlucHV0ICAgIFRoZSBidWZmZXIgaG9sZGluZyB0aGUgaW5wdXQgZGF0YS4gVGhpcyBtdXN0IGJlCi0gKiAgICAgICAgICAgICAgICAgYSByZWFkYWJsZSBidWZmZXIgb2YgbGVuZ3RoIFxwIGlsZW4gQnl0ZXMuCi0gKiBccGFyYW0gaWxlbiAgICAgVGhlIGxlbmd0aCBvZiB0aGUgaW5wdXQgZGF0YSBpbiBCeXRlcy4KLSAqIFxwYXJhbSBvdXRwdXQgICBUaGUgU0hBLTM4NCBvciBTSEEtNTEyIGNoZWNrc3VtIHJlc3VsdC4KLSAqICAgICAgICAgICAgICAgICBUaGlzIG11c3QgYmUgYSB3cml0YWJsZSBidWZmZXIgb2YgbGVuZ3RoIFxjIDY0IGJ5dGVzCi0gKiAgICAgICAgICAgICAgICAgZm9yIFNIQS01MTIsIFxjIDQ4IGJ5dGVzIGZvciBTSEEtMzg0LgotICogXHBhcmFtIGlzMzg0ICAgIERldGVybWluZXMgd2hpY2ggZnVuY3Rpb24gdG8gdXNlLiBUaGlzIG11c3QgYmUgZWl0aGVyCi0gKiAgICAgICAgICAgICAgICAgXGMgMCBmb3IgU0hBLTUxMiwgb3IgXGMgMSBmb3IgU0hBLTM4NC4KLSAqCi0gKiBcbm90ZSAgICAgICAgICAgaXMzODQgbXVzdCBiZSBkZWZpbmVkIGFjY29yZGluZ2x5IHdpdGggdGhlIHN1cHBvcnRlZAotICogICAgICAgICAgICAgICAgIHN5bWJvbHMgaW4gdGhlIGNvbmZpZyBmaWxlLiBJZjoKLSAqICAgICAgICAgICAgICAgICAtIGlzMzg0IGlzIDAsIGJ1dCBcYyBNQkVEVExTX1NIQTM4NF9DIGlzIG5vdCBkZWZpbmVkLCBvcgotICogICAgICAgICAgICAgICAgIC0gaXMzODQgaXMgMSwgYnV0IFxjIE1CRURUTFNfU0hBNTEyX0MgaXMgbm90IGRlZmluZWQKLSAqICAgICAgICAgICAgICAgICB0aGVuIHRoZSBmdW5jdGlvbiB3aWxsIHJldHVybgotICogICAgICAgICAgICAgICAgICNNQkVEVExTX0VSUl9TSEE1MTJfQkFEX0lOUFVUX0RBVEEuCi0gKgotICogXHJldHVybiAgICAgICAgIFxjIDAgb24gc3VjY2Vzcy4KLSAqIFxyZXR1cm4gICAgICAgICBBIG5lZ2F0aXZlIGVycm9yIGNvZGUgb24gZmFpbHVyZS4KLSAqLwotaW50IG1iZWR0bHNfc2hhNTEyKGNvbnN0IHVuc2lnbmVkIGNoYXIgKmlucHV0LAotICAgICAgICAgICAgICAgICAgIHNpemVfdCBpbGVuLAotICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGNoYXIgKm91dHB1dCwKLSAgICAgICAgICAgICAgICAgICBpbnQgaXMzODQpOwotCi0jaWYgZGVmaW5lZChNQkVEVExTX1NFTEZfVEVTVCkKLQotI2lmIGRlZmluZWQoTUJFRFRMU19TSEEzODRfQykKLS8qKgotICogXGJyaWVmICAgICAgICAgIFRoZSBTSEEtMzg0IGNoZWNrdXAgcm91dGluZS4KLSAqCi0gKiBccmV0dXJuICAgICAgICAgXGMgMCBvbiBzdWNjZXNzLgotICogXHJldHVybiAgICAgICAgIFxjIDEgb24gZmFpbHVyZS4KLSAqLwotaW50IG1iZWR0bHNfc2hhMzg0X3NlbGZfdGVzdChpbnQgdmVyYm9zZSk7Ci0jZW5kaWYgLyogTUJFRFRMU19TSEEzODRfQyAqLwotCi0jaWYgZGVmaW5lZChNQkVEVExTX1NIQTUxMl9DKQotLyoqCi0gKiBcYnJpZWYgICAgICAgICAgVGhlIFNIQS01MTIgY2hlY2t1cCByb3V0aW5lLgotICoKLSAqIFxyZXR1cm4gICAgICAgICBcYyAwIG9uIHN1Y2Nlc3MuCi0gKiBccmV0dXJuICAgICAgICAgXGMgMSBvbiBmYWlsdXJlLgotICovCi1pbnQgbWJlZHRsc19zaGE1MTJfc2VsZl90ZXN0KGludCB2ZXJib3NlKTsKLSNlbmRpZiAvKiBNQkVEVExTX1NIQTUxMl9DICovCi0KLSNlbmRpZiAvKiBNQkVEVExTX1NFTEZfVEVTVCAqLwotCi0jaWZkZWYgX19jcGx1c3BsdXMKLX0KLSNlbmRpZgotCi0jZW5kaWYgLyogbWJlZHRsc19zaGE1MTIuaCAqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9tYmVkdGxzL3NzbC5oIGIvaW5jbHVkZS9tYmVkdGxzL3NzbC5oCmluZGV4IDRiNTllNzguLjhmMDE5YzEgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbWJlZHRscy9zc2wuaAorKysgYi9pbmNsdWRlL21iZWR0bHMvc3NsLmgKQEAgLTY0NCw3ICs2NDQsNyBAQAogI2lmIGRlZmluZWQoTUJFRFRMU19TU0xfUFJPVE9fVExTMV8zKSAmJiBcCiAgICAgZGVmaW5lZChNQkVEVExTX1NTTF9TRVNTSU9OX1RJQ0tFVFMpICYmIFwKICAgICBkZWZpbmVkKE1CRURUTFNfU1NMX0hBVkVfQUVTKSAmJiBkZWZpbmVkKE1CRURUTFNfU1NMX0hBVkVfR0NNKSAmJiBcCi0gICAgZGVmaW5lZChNQkVEVExTX01EX0NBTl9TSEEzODQpCisgICAgZGVmaW5lZChQU0FfV0FOVF9BTEdfU0hBXzM4NCkKICNkZWZpbmUgTUJFRFRMU19QU0tfTUFYX0xFTiA0OCAvKiAzODQgYml0cyAqLwogI2Vsc2UKICNkZWZpbmUgTUJFRFRMU19QU0tfTUFYX0xFTiAzMiAvKiAyNTYgYml0cyAqLwpAQCAtMTE1MywxMCArMTE1MywxMCBAQAogI2lmIGRlZmluZWQoTUJFRFRMU19LRVlfRVhDSEFOR0VfV0lUSF9DRVJUX0VOQUJMRUQpICYmICAgICAgICBcCiAgICAgIWRlZmluZWQoTUJFRFRMU19TU0xfS0VFUF9QRUVSX0NFUlRJRklDQVRFKQogI2RlZmluZSBNQkVEVExTX1NTTF9QRUVSX0NFUlRfRElHRVNUX01BWF9MRU4gIDQ4Ci0jaWYgZGVmaW5lZChNQkVEVExTX01EX0NBTl9TSEEyNTYpCisjaWYgZGVmaW5lZChQU0FfV0FOVF9BTEdfU0hBXzI1NikKICNkZWZpbmUgTUJFRFRMU19TU0xfUEVFUl9DRVJUX0RJR0VTVF9ERkxfVFlQRSBNQkVEVExTX01EX1NIQTI1NgogI2RlZmluZSBNQkVEVExTX1NTTF9QRUVSX0NFUlRfRElHRVNUX0RGTF9MRU4gIDMyCi0jZWxpZiBkZWZpbmVkKE1CRURUTFNfTURfQ0FOX1NIQTM4NCkKKyNlbGlmIGRlZmluZWQoUFNBX1dBTlRfQUxHX1NIQV8zODQpCiAjZGVmaW5lIE1CRURUTFNfU1NMX1BFRVJfQ0VSVF9ESUdFU1RfREZMX1RZUEUgTUJFRFRMU19NRF9TSEEzODQKICNkZWZpbmUgTUJFRFRMU19TU0xfUEVFUl9DRVJUX0RJR0VTVF9ERkxfTEVOICA0OAogI2VsaWYgZGVmaW5lZChNQkVEVExTX01EX0NBTl9TSEExKQpkaWZmIC0tZ2l0IGEvbGlicmFyeS8uZ2l0aWdub3JlIGIvbGlicmFyeS8uZ2l0aWdub3JlCmluZGV4IGM2YTM5ZjUuLjk3OTQxMjkgMTAwNjQ0Ci0tLSBhL2xpYnJhcnkvLmdpdGlnbm9yZQorKysgYi9saWJyYXJ5Ly5naXRpZ25vcmUKQEAgLTYsNiArNiw0IEBACiAvZXJyb3IuYwogL3ZlcnNpb25fZmVhdHVyZXMuYwogL3NzbF9kZWJ1Z19oZWxwZXJzX2dlbmVyYXRlZC5jCi0vcHNhX2NyeXB0b19kcml2ZXJfd3JhcHBlcnMuaAotL3BzYV9jcnlwdG9fZHJpdmVyX3dyYXBwZXJzX25vX3N0YXRpYy5jCiAjIyNFTkRfR0VORVJBVEVEX0ZJTEVTIyMjCmRpZmYgLS1naXQgYS9saWJyYXJ5L0NNYWtlTGlzdHMudHh0IGIvbGlicmFyeS9DTWFrZUxpc3RzLnR4dAppbmRleCA1Y2NiZTY0Li5kYTEwOWRjIDEwMDY0NAotLS0gYS9saWJyYXJ5L0NNYWtlTGlzdHMudHh0CisrKyBiL2xpYnJhcnkvQ01ha2VMaXN0cy50eHQKQEAgLTEwLDg4ICsxMCw5MCBAQAogICAgIHNldChNQkVEVExTX0RJUiAke0NNQUtFX1NPVVJDRV9ESVJ9KQogZW5kaWYoKQogCitzZXQoVEZfUFNBX0NSWVBUT19DT1JFX0RJUiAuLi90Zi1wc2EtY3J5cHRvL2NvcmUpCitzZXQoVEZfUFNBX0NSWVBUT19EUklWRVJTX0JVSUxUSU5fU1JDX0RJUiAuLi90Zi1wc2EtY3J5cHRvL2RyaXZlcnMvYnVpbHRpbi9zcmMpCisKIHNldChzcmNfY3J5cHRvCi0gICAgYWVzLmMKLSAgICBhZXNuaS5jCi0gICAgYWVzY2UuYwotICAgIGFyaWEuYwotICAgIGFzbjFwYXJzZS5jCi0gICAgYXNuMXdyaXRlLmMKLSAgICBiYXNlNjQuYwotICAgIGJpZ251bS5jCi0gICAgYmlnbnVtX2NvcmUuYwotICAgIGJpZ251bV9tb2QuYwotICAgIGJpZ251bV9tb2RfcmF3LmMKLSAgICBibG9ja19jaXBoZXIuYwotICAgIGNhbWVsbGlhLmMKLSAgICBjY20uYwotICAgIGNoYWNoYTIwLmMKLSAgICBjaGFjaGFwb2x5LmMKLSAgICBjaXBoZXIuYwotICAgIGNpcGhlcl93cmFwLmMKLSAgICBjb25zdGFudF90aW1lLmMKLSAgICBjbWFjLmMKLSAgICBjdHJfZHJiZy5jCi0gICAgZGVzLmMKLSAgICBkaG0uYwotICAgIGVjZGguYwotICAgIGVjZHNhLmMKLSAgICBlY2pwYWtlLmMKLSAgICBlY3AuYwotICAgIGVjcF9jdXJ2ZXMuYwotICAgIGVjcF9jdXJ2ZXNfbmV3LmMKLSAgICBlbnRyb3B5LmMKLSAgICBlbnRyb3B5X3BvbGwuYwotICAgIGVycm9yLmMKLSAgICBnY20uYwotICAgIGhrZGYuYwotICAgIGhtYWNfZHJiZy5jCi0gICAgbG1vdHMuYwotICAgIGxtcy5jCi0gICAgbWQuYwotICAgIG1kNS5jCi0gICAgbWVtb3J5X2J1ZmZlcl9hbGxvYy5jCi0gICAgbmlzdF9rdy5jCi0gICAgb2lkLmMKLSAgICBwYWRsb2NrLmMKLSAgICBwZW0uYwotICAgIHBrLmMKLSAgICBwa19lY2MuYwotICAgIHBrX3dyYXAuYwotICAgIHBrY3MxMi5jCi0gICAgcGtjczUuYwotICAgIHBrcGFyc2UuYwotICAgIHBrd3JpdGUuYwotICAgIHBsYXRmb3JtLmMKLSAgICBwbGF0Zm9ybV91dGlsLmMKLSAgICBwb2x5MTMwNS5jCi0gICAgcHNhX2NyeXB0by5jCi0gICAgcHNhX2NyeXB0b19hZWFkLmMKLSAgICBwc2FfY3J5cHRvX2NpcGhlci5jCi0gICAgcHNhX2NyeXB0b19jbGllbnQuYwotICAgIHBzYV9jcnlwdG9fZHJpdmVyX3dyYXBwZXJzX25vX3N0YXRpYy5jCi0gICAgcHNhX2NyeXB0b19lY3AuYwotICAgIHBzYV9jcnlwdG9fZmZkaC5jCi0gICAgcHNhX2NyeXB0b19oYXNoLmMKLSAgICBwc2FfY3J5cHRvX21hYy5jCi0gICAgcHNhX2NyeXB0b19wYWtlLmMKLSAgICBwc2FfY3J5cHRvX3JzYS5jCi0gICAgcHNhX2NyeXB0b19zZS5jCi0gICAgcHNhX2NyeXB0b19zbG90X21hbmFnZW1lbnQuYwotICAgIHBzYV9jcnlwdG9fc3RvcmFnZS5jCi0gICAgcHNhX2l0c19maWxlLmMKLSAgICBwc2FfdXRpbC5jCi0gICAgcmlwZW1kMTYwLmMKLSAgICByc2EuYwotICAgIHJzYV9hbHRfaGVscGVycy5jCi0gICAgc2hhMS5jCi0gICAgc2hhMjU2LmMKLSAgICBzaGE1MTIuYwotICAgIHNoYTMuYwotICAgIHRocmVhZGluZy5jCi0gICAgdGltaW5nLmMKLSAgICB2ZXJzaW9uLmMKLSAgICB2ZXJzaW9uX2ZlYXR1cmVzLmMKKyAgICAke1RGX1BTQV9DUllQVE9fRFJJVkVSU19CVUlMVElOX1NSQ19ESVJ9L2Flcy5jCisgICAgJHtURl9QU0FfQ1JZUFRPX0RSSVZFUlNfQlVJTFRJTl9TUkNfRElSfS9hZXNuaS5jCisgICAgJHtURl9QU0FfQ1JZUFRPX0RSSVZFUlNfQlVJTFRJTl9TUkNfRElSfS9hZXNjZS5jCisgICAgJHtURl9QU0FfQ1JZUFRPX0RSSVZFUlNfQlVJTFRJTl9TUkNfRElSfS9hcmlhLmMKKyAgICAke1RGX1BTQV9DUllQVE9fRFJJVkVSU19CVUlMVElOX1NSQ19ESVJ9L2FzbjFwYXJzZS5jCisgICAgJHtURl9QU0FfQ1JZUFRPX0RSSVZFUlNfQlVJTFRJTl9TUkNfRElSfS9hc24xd3JpdGUuYworICAgICR7VEZfUFNBX0NSWVBUT19EUklWRVJTX0JVSUxUSU5fU1JDX0RJUn0vYmFzZTY0LmMKKyAgICAke1RGX1BTQV9DUllQVE9fRFJJVkVSU19CVUlMVElOX1NSQ19ESVJ9L2JpZ251bS5jCisgICAgJHtURl9QU0FfQ1JZUFRPX0RSSVZFUlNfQlVJTFRJTl9TUkNfRElSfS9iaWdudW1fY29yZS5jCisgICAgJHtURl9QU0FfQ1JZUFRPX0RSSVZFUlNfQlVJTFRJTl9TUkNfRElSfS9iaWdudW1fbW9kLmMKKyAgICAke1RGX1BTQV9DUllQVE9fRFJJVkVSU19CVUlMVElOX1NSQ19ESVJ9L2JpZ251bV9tb2RfcmF3LmMKKyAgICAke1RGX1BTQV9DUllQVE9fRFJJVkVSU19CVUlMVElOX1NSQ19ESVJ9L2Jsb2NrX2NpcGhlci5jCisgICAgJHtURl9QU0FfQ1JZUFRPX0RSSVZFUlNfQlVJTFRJTl9TUkNfRElSfS9jYW1lbGxpYS5jCisgICAgJHtURl9QU0FfQ1JZUFRPX0RSSVZFUlNfQlVJTFRJTl9TUkNfRElSfS9jY20uYworICAgICR7VEZfUFNBX0NSWVBUT19EUklWRVJTX0JVSUxUSU5fU1JDX0RJUn0vY2hhY2hhMjAuYworICAgICR7VEZfUFNBX0NSWVBUT19EUklWRVJTX0JVSUxUSU5fU1JDX0RJUn0vY2hhY2hhcG9seS5jCisgICAgJHtURl9QU0FfQ1JZUFRPX0RSSVZFUlNfQlVJTFRJTl9TUkNfRElSfS9jaXBoZXIuYworICAgICR7VEZfUFNBX0NSWVBUT19EUklWRVJTX0JVSUxUSU5fU1JDX0RJUn0vY2lwaGVyX3dyYXAuYworICAgICR7VEZfUFNBX0NSWVBUT19EUklWRVJTX0JVSUxUSU5fU1JDX0RJUn0vY29uc3RhbnRfdGltZS5jCisgICAgJHtURl9QU0FfQ1JZUFRPX0RSSVZFUlNfQlVJTFRJTl9TUkNfRElSfS9jbWFjLmMKKyAgICAke1RGX1BTQV9DUllQVE9fRFJJVkVSU19CVUlMVElOX1NSQ19ESVJ9L2N0cl9kcmJnLmMKKyAgICAke1RGX1BTQV9DUllQVE9fRFJJVkVSU19CVUlMVElOX1NSQ19ESVJ9L2Rlcy5jCisgICAgJHtURl9QU0FfQ1JZUFRPX0RSSVZFUlNfQlVJTFRJTl9TUkNfRElSfS9kaG0uYworICAgICR7VEZfUFNBX0NSWVBUT19EUklWRVJTX0JVSUxUSU5fU1JDX0RJUn0vZWNkaC5jCisgICAgJHtURl9QU0FfQ1JZUFRPX0RSSVZFUlNfQlVJTFRJTl9TUkNfRElSfS9lY2RzYS5jCisgICAgJHtURl9QU0FfQ1JZUFRPX0RSSVZFUlNfQlVJTFRJTl9TUkNfRElSfS9lY2pwYWtlLmMKKyAgICAke1RGX1BTQV9DUllQVE9fRFJJVkVSU19CVUlMVElOX1NSQ19ESVJ9L2VjcC5jCisgICAgJHtURl9QU0FfQ1JZUFRPX0RSSVZFUlNfQlVJTFRJTl9TUkNfRElSfS9lY3BfY3VydmVzLmMKKyAgICAke1RGX1BTQV9DUllQVE9fRFJJVkVSU19CVUlMVElOX1NSQ19ESVJ9L2VjcF9jdXJ2ZXNfbmV3LmMKKyAgICAke1RGX1BTQV9DUllQVE9fRFJJVkVSU19CVUlMVElOX1NSQ19ESVJ9L2VudHJvcHkuYworICAgICR7VEZfUFNBX0NSWVBUT19EUklWRVJTX0JVSUxUSU5fU1JDX0RJUn0vZW50cm9weV9wb2xsLmMKKyAgICAke1RGX1BTQV9DUllQVE9fRFJJVkVSU19CVUlMVElOX1NSQ19ESVJ9L2Vycm9yLmMKKyAgICAke1RGX1BTQV9DUllQVE9fRFJJVkVSU19CVUlMVElOX1NSQ19ESVJ9L2djbS5jCisgICAgJHtURl9QU0FfQ1JZUFRPX0RSSVZFUlNfQlVJTFRJTl9TUkNfRElSfS9oa2RmLmMKKyAgICAke1RGX1BTQV9DUllQVE9fRFJJVkVSU19CVUlMVElOX1NSQ19ESVJ9L2htYWNfZHJiZy5jCisgICAgJHtURl9QU0FfQ1JZUFRPX0RSSVZFUlNfQlVJTFRJTl9TUkNfRElSfS9sbW90cy5jCisgICAgJHtURl9QU0FfQ1JZUFRPX0RSSVZFUlNfQlVJTFRJTl9TUkNfRElSfS9sbXMuYworICAgICR7VEZfUFNBX0NSWVBUT19EUklWRVJTX0JVSUxUSU5fU1JDX0RJUn0vbWQuYworICAgICR7VEZfUFNBX0NSWVBUT19EUklWRVJTX0JVSUxUSU5fU1JDX0RJUn0vbWQ1LmMKKyAgICAke1RGX1BTQV9DUllQVE9fRFJJVkVSU19CVUlMVElOX1NSQ19ESVJ9L21lbW9yeV9idWZmZXJfYWxsb2MuYworICAgICR7VEZfUFNBX0NSWVBUT19EUklWRVJTX0JVSUxUSU5fU1JDX0RJUn0vbmlzdF9rdy5jCisgICAgJHtURl9QU0FfQ1JZUFRPX0RSSVZFUlNfQlVJTFRJTl9TUkNfRElSfS9vaWQuYworICAgICR7VEZfUFNBX0NSWVBUT19EUklWRVJTX0JVSUxUSU5fU1JDX0RJUn0vcGVtLmMKKyAgICAke1RGX1BTQV9DUllQVE9fRFJJVkVSU19CVUlMVElOX1NSQ19ESVJ9L3BrLmMKKyAgICAke1RGX1BTQV9DUllQVE9fRFJJVkVSU19CVUlMVElOX1NSQ19ESVJ9L3BrX2VjYy5jCisgICAgJHtURl9QU0FfQ1JZUFRPX0RSSVZFUlNfQlVJTFRJTl9TUkNfRElSfS9wa193cmFwLmMKKyAgICAke1RGX1BTQV9DUllQVE9fRFJJVkVSU19CVUlMVElOX1NSQ19ESVJ9L3BrY3MxMi5jCisgICAgJHtURl9QU0FfQ1JZUFRPX0RSSVZFUlNfQlVJTFRJTl9TUkNfRElSfS9wa2NzNS5jCisgICAgJHtURl9QU0FfQ1JZUFRPX0RSSVZFUlNfQlVJTFRJTl9TUkNfRElSfS9wa3BhcnNlLmMKKyAgICAke1RGX1BTQV9DUllQVE9fRFJJVkVSU19CVUlMVElOX1NSQ19ESVJ9L3Brd3JpdGUuYworICAgICR7VEZfUFNBX0NSWVBUT19EUklWRVJTX0JVSUxUSU5fU1JDX0RJUn0vcGxhdGZvcm0uYworICAgICR7VEZfUFNBX0NSWVBUT19EUklWRVJTX0JVSUxUSU5fU1JDX0RJUn0vcGxhdGZvcm1fdXRpbC5jCisgICAgJHtURl9QU0FfQ1JZUFRPX0RSSVZFUlNfQlVJTFRJTl9TUkNfRElSfS9wb2x5MTMwNS5jCisgICAgJHtURl9QU0FfQ1JZUFRPX0NPUkVfRElSfS9wc2FfY3J5cHRvLmMKKyAgICAke1RGX1BTQV9DUllQVE9fQ09SRV9ESVJ9L3BzYV9jcnlwdG9fYWVhZC5jCisgICAgJHtURl9QU0FfQ1JZUFRPX0NPUkVfRElSfS9wc2FfY3J5cHRvX2NpcGhlci5jCisgICAgJHtURl9QU0FfQ1JZUFRPX0NPUkVfRElSfS9wc2FfY3J5cHRvX2NsaWVudC5jCisgICAgJHtURl9QU0FfQ1JZUFRPX0NPUkVfRElSfS9wc2FfY3J5cHRvX2RyaXZlcl93cmFwcGVyc19ub19zdGF0aWMuYworICAgICR7VEZfUFNBX0NSWVBUT19DT1JFX0RJUn0vcHNhX2NyeXB0b19lY3AuYworICAgICR7VEZfUFNBX0NSWVBUT19DT1JFX0RJUn0vcHNhX2NyeXB0b19mZmRoLmMKKyAgICAke1RGX1BTQV9DUllQVE9fQ09SRV9ESVJ9L3BzYV9jcnlwdG9faGFzaC5jCisgICAgJHtURl9QU0FfQ1JZUFRPX0NPUkVfRElSfS9wc2FfY3J5cHRvX21hYy5jCisgICAgJHtURl9QU0FfQ1JZUFRPX0NPUkVfRElSfS9wc2FfY3J5cHRvX3Bha2UuYworICAgICR7VEZfUFNBX0NSWVBUT19DT1JFX0RJUn0vcHNhX2NyeXB0b19yc2EuYworICAgICR7VEZfUFNBX0NSWVBUT19DT1JFX0RJUn0vcHNhX2NyeXB0b19zZS5jCisgICAgJHtURl9QU0FfQ1JZUFRPX0NPUkVfRElSfS9wc2FfY3J5cHRvX3Nsb3RfbWFuYWdlbWVudC5jCisgICAgJHtURl9QU0FfQ1JZUFRPX0NPUkVfRElSfS9wc2FfY3J5cHRvX3N0b3JhZ2UuYworICAgICR7VEZfUFNBX0NSWVBUT19DT1JFX0RJUn0vcHNhX2l0c19maWxlLmMKKyAgICAke1RGX1BTQV9DUllQVE9fQ09SRV9ESVJ9L3BzYV91dGlsLmMKKyAgICAke1RGX1BTQV9DUllQVE9fRFJJVkVSU19CVUlMVElOX1NSQ19ESVJ9L3JpcGVtZDE2MC5jCisgICAgJHtURl9QU0FfQ1JZUFRPX0RSSVZFUlNfQlVJTFRJTl9TUkNfRElSfS9yc2EuYworICAgICR7VEZfUFNBX0NSWVBUT19EUklWRVJTX0JVSUxUSU5fU1JDX0RJUn0vcnNhX2FsdF9oZWxwZXJzLmMKKyAgICAke1RGX1BTQV9DUllQVE9fRFJJVkVSU19CVUlMVElOX1NSQ19ESVJ9L3NoYTEuYworICAgICR7VEZfUFNBX0NSWVBUT19EUklWRVJTX0JVSUxUSU5fU1JDX0RJUn0vc2hhMjU2LmMKKyAgICAke1RGX1BTQV9DUllQVE9fRFJJVkVSU19CVUlMVElOX1NSQ19ESVJ9L3NoYTUxMi5jCisgICAgJHtURl9QU0FfQ1JZUFRPX0RSSVZFUlNfQlVJTFRJTl9TUkNfRElSfS9zaGEzLmMKKyAgICAke1RGX1BTQV9DUllQVE9fRFJJVkVSU19CVUlMVElOX1NSQ19ESVJ9L3RocmVhZGluZy5jCisgICAgJHtURl9QU0FfQ1JZUFRPX0RSSVZFUlNfQlVJTFRJTl9TUkNfRElSfS90aW1pbmcuYworICAgICR7VEZfUFNBX0NSWVBUT19EUklWRVJTX0JVSUxUSU5fU1JDX0RJUn0vdmVyc2lvbi5jCisgICAgJHtURl9QU0FfQ1JZUFRPX0RSSVZFUlNfQlVJTFRJTl9TUkNfRElSfS92ZXJzaW9uX2ZlYXR1cmVzLmMKICkKIAogc2V0KHNyY194NTA5CkBAIC0xMzAsMzEgKzEzMiwzNCBAQAogaWYoR0VOX0ZJTEVTKQogICAgIGZpbmRfcGFja2FnZShQZXJsIFJFUVVJUkVEKQogCi0gICAgZmlsZShHTE9CIGVycm9yX2hlYWRlcnMgJHtDTUFLRV9DVVJSRU5UX1NPVVJDRV9ESVJ9Ly4uL2luY2x1ZGUvbWJlZHRscy8qLmgpCisgICAgZmlsZShHTE9CIGNyeXB0b19lcnJvcl9oZWFkZXJzICR7Q01BS0VfQ1VSUkVOVF9TT1VSQ0VfRElSfS8uLi90Zi1wc2EtY3J5cHRvL2RyaXZlcnMvYnVpbHRpbi9pbmNsdWRlL21iZWR0bHMvKi5oKQorICAgIGZpbGUoR0xPQiB0bHNfZXJyb3JfaGVhZGVycyAke0NNQUtFX0NVUlJFTlRfU09VUkNFX0RJUn0vLi4vaW5jbHVkZS9tYmVkdGxzLyouaCkKICAgICBhZGRfY3VzdG9tX2NvbW1hbmQoCiAgICAgICAgIE9VVFBVVAotICAgICAgICAgICAgJHtDTUFLRV9DVVJSRU5UX0JJTkFSWV9ESVJ9L2Vycm9yLmMKKyAgICAgICAgICAgICR7Q01BS0VfQ1VSUkVOVF9CSU5BUllfRElSfS8ke1RGX1BTQV9DUllQVE9fRFJJVkVSU19CVUlMVElOX1NSQ19ESVJ9L2Vycm9yLmMKICAgICAgICAgQ09NTUFORAogICAgICAgICAgICAgJHtQRVJMX0VYRUNVVEFCTEV9CiAgICAgICAgICAgICAgICAgJHtDTUFLRV9DVVJSRU5UX1NPVVJDRV9ESVJ9Ly4uL3NjcmlwdHMvZ2VuZXJhdGVfZXJyb3JzLnBsCisgICAgICAgICAgICAgICAgJHtDTUFLRV9DVVJSRU5UX1NPVVJDRV9ESVJ9Ly4uL3RmLXBzYS1jcnlwdG8vZHJpdmVycy9idWlsdGluL2luY2x1ZGUvbWJlZHRscwogICAgICAgICAgICAgICAgICR7Q01BS0VfQ1VSUkVOVF9TT1VSQ0VfRElSfS8uLi9pbmNsdWRlL21iZWR0bHMKICAgICAgICAgICAgICAgICAke0NNQUtFX0NVUlJFTlRfU09VUkNFX0RJUn0vLi4vc2NyaXB0cy9kYXRhX2ZpbGVzCi0gICAgICAgICAgICAgICAgJHtDTUFLRV9DVVJSRU5UX0JJTkFSWV9ESVJ9L2Vycm9yLmMKKyAgICAgICAgICAgICAgICAke0NNQUtFX0NVUlJFTlRfQklOQVJZX0RJUn0vJHtURl9QU0FfQ1JZUFRPX0RSSVZFUlNfQlVJTFRJTl9TUkNfRElSfS9lcnJvci5jCiAgICAgICAgIERFUEVORFMKICAgICAgICAgICAgICR7Q01BS0VfQ1VSUkVOVF9TT1VSQ0VfRElSfS8uLi9zY3JpcHRzL2dlbmVyYXRlX2Vycm9ycy5wbAotICAgICAgICAgICAgJHtlcnJvcl9oZWFkZXJzfQorICAgICAgICAgICAgJHtjcnlwdG9fZXJyb3JfaGVhZGVyc30KKyAgICAgICAgICAgICR7dGxzX2Vycm9yX2hlYWRlcnN9CiAgICAgICAgICAgICAke0NNQUtFX0NVUlJFTlRfU09VUkNFX0RJUn0vLi4vc2NyaXB0cy9kYXRhX2ZpbGVzL2Vycm9yLmZtdAogICAgICkKIAogICAgIGFkZF9jdXN0b21fY29tbWFuZCgKICAgICAgICAgT1VUUFVUCi0gICAgICAgICAgICAke0NNQUtFX0NVUlJFTlRfQklOQVJZX0RJUn0vdmVyc2lvbl9mZWF0dXJlcy5jCisgICAgICAgICAgICAke0NNQUtFX0NVUlJFTlRfQklOQVJZX0RJUn0vJHtURl9QU0FfQ1JZUFRPX0RSSVZFUlNfQlVJTFRJTl9TUkNfRElSfS92ZXJzaW9uX2ZlYXR1cmVzLmMKICAgICAgICAgQ09NTUFORAogICAgICAgICAgICAgJHtQRVJMX0VYRUNVVEFCTEV9CiAgICAgICAgICAgICAgICAgJHtDTUFLRV9DVVJSRU5UX1NPVVJDRV9ESVJ9Ly4uL3NjcmlwdHMvZ2VuZXJhdGVfZmVhdHVyZXMucGwKICAgICAgICAgICAgICAgICAke0NNQUtFX0NVUlJFTlRfU09VUkNFX0RJUn0vLi4vaW5jbHVkZS9tYmVkdGxzCiAgICAgICAgICAgICAgICAgJHtDTUFLRV9DVVJSRU5UX1NPVVJDRV9ESVJ9Ly4uL3NjcmlwdHMvZGF0YV9maWxlcwotICAgICAgICAgICAgICAgICR7Q01BS0VfQ1VSUkVOVF9CSU5BUllfRElSfS92ZXJzaW9uX2ZlYXR1cmVzLmMKKyAgICAgICAgICAgICAgICAke0NNQUtFX0NVUlJFTlRfQklOQVJZX0RJUn0vJHtURl9QU0FfQ1JZUFRPX0RSSVZFUlNfQlVJTFRJTl9TUkNfRElSfS92ZXJzaW9uX2ZlYXR1cmVzLmMKICAgICAgICAgREVQRU5EUwogICAgICAgICAgICAgJHtDTUFLRV9DVVJSRU5UX1NPVVJDRV9ESVJ9Ly4uL3NjcmlwdHMvZ2VuZXJhdGVfZmVhdHVyZXMucGwKICAgICAgICAgICAgICR7Q01BS0VfQ1VSUkVOVF9TT1VSQ0VfRElSfS8uLi9pbmNsdWRlL21iZWR0bHMvbWJlZHRsc19jb25maWcuaApAQCAtMTcxLDI5ICsxNzYsMjggQEAKICAgICAgICAgICAgICAgICAke0NNQUtFX0NVUlJFTlRfQklOQVJZX0RJUn0KICAgICAgICAgREVQRU5EUwogICAgICAgICAgICAgJHtDTUFLRV9DVVJSRU5UX1NPVVJDRV9ESVJ9Ly4uL3NjcmlwdHMvZ2VuZXJhdGVfc3NsX2RlYnVnX2hlbHBlcnMucHkKLSAgICAgICAgICAgICR7ZXJyb3JfaGVhZGVyc30KKyAgICAgICAgICAgICR7dGxzX2Vycm9yX2hlYWRlcnN9CiAgICAgKQogCiAgICAgYWRkX2N1c3RvbV9jb21tYW5kKAogICAgICAgICBPVVRQVVQKLSAgICAgICAgICAgICR7Q01BS0VfQ1VSUkVOVF9CSU5BUllfRElSfS9wc2FfY3J5cHRvX2RyaXZlcl93cmFwcGVycy5oCi0gICAgICAgICAgICAke0NNQUtFX0NVUlJFTlRfQklOQVJZX0RJUn0vcHNhX2NyeXB0b19kcml2ZXJfd3JhcHBlcnNfbm9fc3RhdGljLmMKKyAgICAgICAgICAgICR7Q01BS0VfQ1VSUkVOVF9CSU5BUllfRElSfS8ke1RGX1BTQV9DUllQVE9fQ09SRV9ESVJ9L3BzYV9jcnlwdG9fZHJpdmVyX3dyYXBwZXJzLmgKKyAgICAgICAgICAgICR7Q01BS0VfQ1VSUkVOVF9CSU5BUllfRElSfS8ke1RGX1BTQV9DUllQVE9fQ09SRV9ESVJ9L3BzYV9jcnlwdG9fZHJpdmVyX3dyYXBwZXJzX25vX3N0YXRpYy5jCiAgICAgICAgIENPTU1BTkQKICAgICAgICAgICAgICR7TUJFRFRMU19QWVRIT05fRVhFQ1VUQUJMRX0KICAgICAgICAgICAgICAgICAke0NNQUtFX0NVUlJFTlRfU09VUkNFX0RJUn0vLi4vc2NyaXB0cy9nZW5lcmF0ZV9kcml2ZXJfd3JhcHBlcnMucHkKLSAgICAgICAgICAgICAgICAke0NNQUtFX0NVUlJFTlRfQklOQVJZX0RJUn0KKyAgICAgICAgICAgICAgICAke0NNQUtFX0NVUlJFTlRfQklOQVJZX0RJUn0vJHtURl9QU0FfQ1JZUFRPX0NPUkVfRElSfQogICAgICAgICBERVBFTkRTCiAgICAgICAgICAgICAke0NNQUtFX0NVUlJFTlRfU09VUkNFX0RJUn0vLi4vc2NyaXB0cy9nZW5lcmF0ZV9kcml2ZXJfd3JhcHBlcnMucHkKICAgICAgICAgICAgICR7Q01BS0VfQ1VSUkVOVF9TT1VSQ0VfRElSfS8uLi9zY3JpcHRzL2RhdGFfZmlsZXMvZHJpdmVyX3RlbXBsYXRlcy9wc2FfY3J5cHRvX2RyaXZlcl93cmFwcGVycy5oLmppbmphCiAgICAgICAgICAgICAke0NNQUtFX0NVUlJFTlRfU09VUkNFX0RJUn0vLi4vc2NyaXB0cy9kYXRhX2ZpbGVzL2RyaXZlcl90ZW1wbGF0ZXMvcHNhX2NyeXB0b19kcml2ZXJfd3JhcHBlcnNfbm9fc3RhdGljLmMuamluamEKICAgICApCi0KLQogZWxzZSgpCi0gICAgbGlua190b19zb3VyY2UoZXJyb3IuYykKLSAgICBsaW5rX3RvX3NvdXJjZSh2ZXJzaW9uX2ZlYXR1cmVzLmMpCisgICAgbGlua190b19zb3VyY2UoJHtURl9QU0FfQ1JZUFRPX0RSSVZFUlNfQlVJTFRJTl9TUkNfRElSfS9lcnJvci5jKQorICAgIGxpbmtfdG9fc291cmNlKCR7VEZfUFNBX0NSWVBUT19EUklWRVJTX0JVSUxUSU5fU1JDX0RJUn0vdmVyc2lvbl9mZWF0dXJlcy5jKQogICAgIGxpbmtfdG9fc291cmNlKHNzbF9kZWJ1Z19oZWxwZXJzX2dlbmVyYXRlZC5jKQotICAgIGxpbmtfdG9fc291cmNlKHBzYV9jcnlwdG9fZHJpdmVyX3dyYXBwZXJzX25vX3N0YXRpYy5jKQorICAgIGxpbmtfdG9fc291cmNlKCR7VEZfUFNBX0NSWVBUT19DT1JFX0RJUn0vcHNhX2NyeXB0b19kcml2ZXJfd3JhcHBlcnMuaCkKKyAgICBsaW5rX3RvX3NvdXJjZSgke1RGX1BTQV9DUllQVE9fQ09SRV9ESVJ9L3BzYV9jcnlwdG9fZHJpdmVyX3dyYXBwZXJzX25vX3N0YXRpYy5jKQogZW5kaWYoKQogCiBpZihDTUFLRV9DT01QSUxFUl9JU19HTlVDQykKQEAgLTMyMiwxOCArMzI2LDE5IEBACiAKIGZvcmVhY2godGFyZ2V0IElOIExJU1RTIHRhcmdldF9saWJyYXJpZXMpCiAgICAgYWRkX2xpYnJhcnkoTWJlZFRMUzo6JHt0YXJnZXR9IEFMSUFTICR7dGFyZ2V0fSkgICMgYWRkX3N1YmRpcmVjdG9yeSBzdXBwb3J0Ci0gICAgIyBJbmNsdWRlIHB1YmxpYyBoZWFkZXIgZmlsZXMgZnJvbSAvaW5jbHVkZSBhbmQgb3RoZXIgZGlyZWN0b3JpZXMKLSAgICAjIGRlY2xhcmVkIGJ5IC8zcmRwYXJ0eS8qKi9DTWFrZUxpc3RzLnR4dC4gSW5jbHVkZSBwcml2YXRlIGhlYWRlciBmaWxlcwotICAgICMgZnJvbSAvbGlicmFyeSBhbmQgb3RoZXJzIGRlY2xhcmVkIGJ5IC8zcmRwYXJ0eS8qKi9DTWFrZUxpc3RzLnR4dC4KLSAgICAjIC9saWJyYXJ5IG5lZWRzIHRvIGJlIGxpc3RlZCBleHBsaWNpdGx5IHdoZW4gYnVpbGRpbmcgLmMgZmlsZXMgb3V0c2lkZQotICAgICMgb2YgL2xpYnJhcnkgKHdoaWNoIGN1cnJlbnRseSBtZWFuczogdW5kZXIgLzNyZHBhcnR5KS4KKyAgICAjIEluY2x1ZGUgcHVibGljIGhlYWRlciBmaWxlcyBmcm9tIC9pbmNsdWRlLCAvdGYtcHNhLWNyeXB0by9pbmNsdWRlLyBhbmQKKyAgICAjIHRmLXBzYS1jcnlwdG8vZHJpdmVycy9idWlsdGluL2luY2x1ZGUvLiBJbmNsdWRlIHByaXZhdGUgaGVhZGVyIGZpbGVzCisgICAgIyBmcm9tIC9saWJyYXJ5LCB0Zi1wc2EtY3J5cHRvL2NvcmUvIGFuZCB0Zi1wc2EtY3J5cHRvL2RyaXZlcnMvYnVpbHRpbi9zcmMvLgogICAgIHRhcmdldF9pbmNsdWRlX2RpcmVjdG9yaWVzKCR7dGFyZ2V0fQogICAgICAgICBQVUJMSUMgJDxCVUlMRF9JTlRFUkZBQ0U6JHtNQkVEVExTX0RJUn0vaW5jbHVkZS8+CiAgICAgICAgICAgICAgICAkPEJVSUxEX0lOVEVSRkFDRToke01CRURUTFNfRElSfS90Zi1wc2EtY3J5cHRvL2luY2x1ZGUvPgorICAgICAgICAgICAgICAgJDxCVUlMRF9JTlRFUkZBQ0U6JHtNQkVEVExTX0RJUn0vdGYtcHNhLWNyeXB0by9kcml2ZXJzL2J1aWx0aW4vaW5jbHVkZS8+CiAgICAgICAgICAgICAgICAkPElOU1RBTExfSU5URVJGQUNFOmluY2x1ZGUvPgogICAgICAgICBQUklWQVRFICR7TUJFRFRMU19ESVJ9L2xpYnJhcnkvCisgICAgICAgICAgICAgICAgJHtNQkVEVExTX0RJUn0vdGYtcHNhLWNyeXB0by9jb3JlCisgICAgICAgICAgICAgICAgJHtNQkVEVExTX0RJUn0vdGYtcHNhLWNyeXB0by9kcml2ZXJzL2J1aWx0aW4vc3JjCiAgICAgICAgICAgICAgICAgIyBOZWVkZWQgdG8gaW5jbHVkZSBwc2FfY3J5cHRvX2RyaXZlcl93cmFwcGVycy5oCi0gICAgICAgICAgICAgICAgJHtDTUFLRV9DVVJSRU5UX0JJTkFSWV9ESVJ9KQorICAgICAgICAgICAgICAgICR7Q01BS0VfQ1VSUkVOVF9CSU5BUllfRElSfS8uLi90Zi1wc2EtY3J5cHRvL2NvcmUpCiAgICAgIyBQYXNzLXRocm91Z2ggTUJFRFRMU19DT05GSUdfRklMRSBhbmQgTUJFRFRMU19VU0VSX0NPTkZJR19GSUxFCiAgICAgaWYoTUJFRFRMU19DT05GSUdfRklMRSkKICAgICAgICAgdGFyZ2V0X2NvbXBpbGVfZGVmaW5pdGlvbnMoJHt0YXJnZXR9CmRpZmYgLS1naXQgYS9saWJyYXJ5L01ha2VmaWxlIGIvbGlicmFyeS9NYWtlZmlsZQppbmRleCA0ZWFkZjQxLi5mN2M0ODk4IDEwMDY0NAotLS0gYS9saWJyYXJ5L01ha2VmaWxlCisrKyBiL2xpYnJhcnkvTWFrZWZpbGUKQEAgLTIsMTEgKzIsMTUgQEAKIE1CRURUTFNfUEFUSCA6PSAuLgogZW5kaWYKIAorVEZfUFNBX0NSWVBUT19DT1JFX1BBVEggPSAkKE1CRURUTFNfUEFUSCkvdGYtcHNhLWNyeXB0by9jb3JlCitURl9QU0FfQ1JZUFRPX0RSSVZFUlNfQlVJTFRJTl9TUkNfUEFUSCA9ICQoTUJFRFRMU19QQVRIKS90Zi1wc2EtY3J5cHRvL2RyaXZlcnMvYnVpbHRpbi9zcmMKKwogR0VORVJBVEVEX0ZJTEVTIDo9IFwKLQllcnJvci5jIHZlcnNpb25fZmVhdHVyZXMuYyBcCisJJChURl9QU0FfQ1JZUFRPX0RSSVZFUlNfQlVJTFRJTl9TUkNfUEFUSCkvZXJyb3IuYyBcCisgICAgICAgICQoVEZfUFNBX0NSWVBUT19EUklWRVJTX0JVSUxUSU5fU1JDX1BBVEgpL3ZlcnNpb25fZmVhdHVyZXMuYyBcCiAJc3NsX2RlYnVnX2hlbHBlcnNfZ2VuZXJhdGVkLmMgXAotCXBzYV9jcnlwdG9fZHJpdmVyX3dyYXBwZXJzLmggXAotCXBzYV9jcnlwdG9fZHJpdmVyX3dyYXBwZXJzX25vX3N0YXRpYy5jCisJJChURl9QU0FfQ1JZUFRPX0NPUkVfUEFUSCkvcHNhX2NyeXB0b19kcml2ZXJfd3JhcHBlcnMuaCBcCisJJChURl9QU0FfQ1JZUFRPX0NPUkVfUEFUSCkvcHNhX2NyeXB0b19kcml2ZXJfd3JhcHBlcnNfbm9fc3RhdGljLmMKIAogaWZuZXEgKCQoR0VORVJBVEVEX0ZJTEVTKSwkKHdpbGRjYXJkICQoR0VORVJBVEVEX0ZJTEVTKSkpCiAgICAgaWZlcSAoLCQod2lsZGNhcmQgJChNQkVEVExTX1BBVEgpL2ZyYW1ld29yay9leHBvcnRlZC5tYWtlKSkKQEAgLTI4LDExICszMiwxNCBAQAogV0FSTklOR19DRkxBR1MgPz0gIC1XYWxsIC1XZXh0cmEgLVdmb3JtYXQ9MiAtV25vLWZvcm1hdC1ub25saXRlcmFsCiBMREZMQUdTID89CiAKLSMgSW5jbHVkZSAuLi9pbmNsdWRlLCAuLi90Zi1wc2EtY3J5cHRvL2luY2x1ZGUgZm9yIHB1YmxpYyBoZWFkZXJzIGFuZCAuIGZvcgotIyBwcml2YXRlIGhlYWRlcnMuIE5vdGUgdGhhdCAuIG5lZWRzIHRvIGJlIGluY2x1ZGVkIGV4cGxpY2l0bHkgZm9yIHRoZSBzYWtlIG9mCi0jIGxpYnJhcnkgZmlsZXMgdGhhdCBhcmUgbm90IGluIHRoZSAvbGlicmFyeSBkaXJlY3RvcnkgKHdoaWNoIGN1cnJlbnRseSBtZWFucwotIyB1bmRlciAvM3JkcGFydHkpLgotTE9DQUxfQ0ZMQUdTID0gJChXQVJOSU5HX0NGTEFHUykgLUkuIC1JLi4vaW5jbHVkZSAtSS4uL3RmLXBzYS1jcnlwdG8vaW5jbHVkZSAtRF9GSUxFX09GRlNFVF9CSVRTPTY0CisjIEluY2x1ZGUgLi4vaW5jbHVkZSwgLi4vdGYtcHNhLWNyeXB0by9pbmNsdWRlIGFuZAorIyAuLi90Zi1wc2EtY3J5cHRvL2RyaXZlcnMvYnVpbHRpbi9pbmNsdWRlIGZvciBwdWJsaWMgaGVhZGVycyBhbmQgLiwKKyMgLi4vdGYtcHNhLWNyeXB0by9jb3JlIGFuZCAuLi90Zi1wc2EtY3J5cHRvL2RyaXZlcnMvYnVpbHRpbi9zcmMgZm9yCisjIHByaXZhdGUgaGVhZGVycy4KK0xPQ0FMX0NGTEFHUyA9ICQoV0FSTklOR19DRkxBR1MpIC1JLiAtSS4uL3RmLXBzYS1jcnlwdG8vY29yZSBcCisgICAgICAgICAgICAgICAtSS4uL3RmLXBzYS1jcnlwdG8vZHJpdmVycy9idWlsdGluL3NyYyBcCisgICAgICAgICAgICAgICAtSS4uL2luY2x1ZGUgLUkuLi90Zi1wc2EtY3J5cHRvL2luY2x1ZGUgXAorICAgICAgICAgICAgICAgLUkuLi90Zi1wc2EtY3J5cHRvL2RyaXZlcnMvYnVpbHRpbi9pbmNsdWRlIC1EX0ZJTEVfT0ZGU0VUX0JJVFM9NjQKIExPQ0FMX0xERkxBR1MgPQogCiBpZmRlZiBERUJVRwpAQCAtMTAzLDkwICsxMTAsOTEgQEAKIGVuZGlmCiAKIE9CSlNfQ1JZUFRPPSBcCi0JICAgICBhZXMubyBcCi0JICAgICBhZXNuaS5vIFwKLQkgICAgIGFlc2NlLm8gXAotCSAgICAgYXJpYS5vIFwKLQkgICAgIGFzbjFwYXJzZS5vIFwKLQkgICAgIGFzbjF3cml0ZS5vIFwKLQkgICAgIGJhc2U2NC5vIFwKLQkgICAgIGJpZ251bS5vIFwKLQkgICAgIGJpZ251bV9jb3JlLm8gXAotCSAgICAgYmlnbnVtX21vZC5vIFwKLQkgICAgIGJpZ251bV9tb2RfcmF3Lm8gXAotCSAgICAgYmxvY2tfY2lwaGVyLm8gXAotCSAgICAgY2FtZWxsaWEubyBcCi0JICAgICBjY20ubyBcCi0JICAgICBjaGFjaGEyMC5vIFwKLQkgICAgIGNoYWNoYXBvbHkubyBcCi0JICAgICBjaXBoZXIubyBcCi0JICAgICBjaXBoZXJfd3JhcC5vIFwKLQkgICAgIGNtYWMubyBcCi0JICAgICBjb25zdGFudF90aW1lLm8gXAotCSAgICAgY3RyX2RyYmcubyBcCi0JICAgICBkZXMubyBcCi0JICAgICBkaG0ubyBcCi0JICAgICBlY2RoLm8gXAotCSAgICAgZWNkc2EubyBcCi0JICAgICBlY2pwYWtlLm8gXAotCSAgICAgZWNwLm8gXAotCSAgICAgZWNwX2N1cnZlcy5vIFwKLQkgICAgIGVjcF9jdXJ2ZXNfbmV3Lm8gXAotCSAgICAgZW50cm9weS5vIFwKLQkgICAgIGVudHJvcHlfcG9sbC5vIFwKLQkgICAgIGVycm9yLm8gXAotCSAgICAgZ2NtLm8gXAotCSAgICAgaGtkZi5vIFwKLQkgICAgIGhtYWNfZHJiZy5vIFwKLQkgICAgIGxtb3RzLm8gXAotCSAgICAgbG1zLm8gXAotCSAgICAgbWQubyBcCi0JICAgICBtZDUubyBcCi0JICAgICBtZW1vcnlfYnVmZmVyX2FsbG9jLm8gXAotCSAgICAgbmlzdF9rdy5vIFwKLQkgICAgIG9pZC5vIFwKLQkgICAgIHBhZGxvY2subyBcCi0JICAgICBwZW0ubyBcCi0JICAgICBway5vIFwKLQkgICAgIHBrX2VjYy5vIFwKLQkgICAgIHBrX3dyYXAubyBcCi0JICAgICBwa2NzMTIubyBcCi0JICAgICBwa2NzNS5vIFwKLQkgICAgIHBrcGFyc2UubyBcCi0JICAgICBwa3dyaXRlLm8gXAotCSAgICAgcGxhdGZvcm0ubyBcCi0JICAgICBwbGF0Zm9ybV91dGlsLm8gXAotCSAgICAgcG9seTEzMDUubyBcCi0JICAgICBwc2FfY3J5cHRvLm8gXAotCSAgICAgcHNhX2NyeXB0b19hZWFkLm8gXAotCSAgICAgcHNhX2NyeXB0b19jaXBoZXIubyBcCi0JICAgICBwc2FfY3J5cHRvX2NsaWVudC5vIFwKLQkgICAgIHBzYV9jcnlwdG9fZHJpdmVyX3dyYXBwZXJzX25vX3N0YXRpYy5vIFwKLQkgICAgIHBzYV9jcnlwdG9fZWNwLm8gXAotCSAgICAgcHNhX2NyeXB0b19mZmRoLm8gXAotCSAgICAgcHNhX2NyeXB0b19oYXNoLm8gXAotCSAgICAgcHNhX2NyeXB0b19tYWMubyBcCi0JICAgICBwc2FfY3J5cHRvX3Bha2UubyBcCi0JICAgICBwc2FfY3J5cHRvX3JzYS5vIFwKLQkgICAgIHBzYV9jcnlwdG9fc2UubyBcCi0JICAgICBwc2FfY3J5cHRvX3Nsb3RfbWFuYWdlbWVudC5vIFwKLQkgICAgIHBzYV9jcnlwdG9fc3RvcmFnZS5vIFwKLQkgICAgIHBzYV9pdHNfZmlsZS5vIFwKLQkgICAgIHBzYV91dGlsLm8gXAotCSAgICAgcmlwZW1kMTYwLm8gXAotCSAgICAgcnNhLm8gXAotCSAgICAgcnNhX2FsdF9oZWxwZXJzLm8gXAotCSAgICAgc2hhMS5vIFwKLQkgICAgIHNoYTI1Ni5vIFwKLQkgICAgIHNoYTUxMi5vIFwKLQkgICAgIHNoYTMubyBcCi0JICAgICB0aHJlYWRpbmcubyBcCi0JICAgICB0aW1pbmcubyBcCi0JICAgICB2ZXJzaW9uLm8gXAotCSAgICAgdmVyc2lvbl9mZWF0dXJlcy5vIFwKKwkgICAgICQoVEZfUFNBX0NSWVBUT19DT1JFX1BBVEgpL3BzYV9jcnlwdG8ubyBcCisJICAgICAkKFRGX1BTQV9DUllQVE9fQ09SRV9QQVRIKS9wc2FfY3J5cHRvX2FlYWQubyBcCisJICAgICAkKFRGX1BTQV9DUllQVE9fQ09SRV9QQVRIKS9wc2FfY3J5cHRvX2NpcGhlci5vIFwKKwkgICAgICQoVEZfUFNBX0NSWVBUT19DT1JFX1BBVEgpL3BzYV9jcnlwdG9fY2xpZW50Lm8gXAorCSAgICAgJChURl9QU0FfQ1JZUFRPX0NPUkVfUEFUSCkvcHNhX2NyeXB0b19kcml2ZXJfd3JhcHBlcnNfbm9fc3RhdGljLm8gXAorCSAgICAgJChURl9QU0FfQ1JZUFRPX0NPUkVfUEFUSCkvcHNhX2NyeXB0b19lY3AubyBcCisJICAgICAkKFRGX1BTQV9DUllQVE9fQ09SRV9QQVRIKS9wc2FfY3J5cHRvX2ZmZGgubyBcCisJICAgICAkKFRGX1BTQV9DUllQVE9fQ09SRV9QQVRIKS9wc2FfY3J5cHRvX2hhc2gubyBcCisJICAgICAkKFRGX1BTQV9DUllQVE9fQ09SRV9QQVRIKS9wc2FfY3J5cHRvX21hYy5vIFwKKwkgICAgICQoVEZfUFNBX0NSWVBUT19DT1JFX1BBVEgpL3BzYV9jcnlwdG9fcGFrZS5vIFwKKwkgICAgICQoVEZfUFNBX0NSWVBUT19DT1JFX1BBVEgpL3BzYV9jcnlwdG9fcnNhLm8gXAorCSAgICAgJChURl9QU0FfQ1JZUFRPX0NPUkVfUEFUSCkvcHNhX2NyeXB0b19zZS5vIFwKKwkgICAgICQoVEZfUFNBX0NSWVBUT19DT1JFX1BBVEgpL3BzYV9jcnlwdG9fc2xvdF9tYW5hZ2VtZW50Lm8gXAorCSAgICAgJChURl9QU0FfQ1JZUFRPX0NPUkVfUEFUSCkvcHNhX2NyeXB0b19zdG9yYWdlLm8gXAorCSAgICAgJChURl9QU0FfQ1JZUFRPX0NPUkVfUEFUSCkvcHNhX2l0c19maWxlLm8gXAorCSAgICAgJChURl9QU0FfQ1JZUFRPX0NPUkVfUEFUSCkvcHNhX3V0aWwubyBcCisJICAgICAkKFRGX1BTQV9DUllQVE9fRFJJVkVSU19CVUlMVElOX1NSQ19QQVRIKS9hZXMubyBcCisJICAgICAkKFRGX1BTQV9DUllQVE9fRFJJVkVSU19CVUlMVElOX1NSQ19QQVRIKS9hZXNuaS5vIFwKKwkgICAgICQoVEZfUFNBX0NSWVBUT19EUklWRVJTX0JVSUxUSU5fU1JDX1BBVEgpL2Flc2NlLm8gXAorCSAgICAgJChURl9QU0FfQ1JZUFRPX0RSSVZFUlNfQlVJTFRJTl9TUkNfUEFUSCkvYXJpYS5vIFwKKwkgICAgICQoVEZfUFNBX0NSWVBUT19EUklWRVJTX0JVSUxUSU5fU1JDX1BBVEgpL2FzbjFwYXJzZS5vIFwKKwkgICAgICQoVEZfUFNBX0NSWVBUT19EUklWRVJTX0JVSUxUSU5fU1JDX1BBVEgpL2FzbjF3cml0ZS5vIFwKKwkgICAgICQoVEZfUFNBX0NSWVBUT19EUklWRVJTX0JVSUxUSU5fU1JDX1BBVEgpL2Jhc2U2NC5vIFwKKwkgICAgICQoVEZfUFNBX0NSWVBUT19EUklWRVJTX0JVSUxUSU5fU1JDX1BBVEgpL2JpZ251bS5vIFwKKwkgICAgICQoVEZfUFNBX0NSWVBUT19EUklWRVJTX0JVSUxUSU5fU1JDX1BBVEgpL2JpZ251bV9jb3JlLm8gXAorCSAgICAgJChURl9QU0FfQ1JZUFRPX0RSSVZFUlNfQlVJTFRJTl9TUkNfUEFUSCkvYmlnbnVtX21vZC5vIFwKKwkgICAgICQoVEZfUFNBX0NSWVBUT19EUklWRVJTX0JVSUxUSU5fU1JDX1BBVEgpL2JpZ251bV9tb2RfcmF3Lm8gXAorCSAgICAgJChURl9QU0FfQ1JZUFRPX0RSSVZFUlNfQlVJTFRJTl9TUkNfUEFUSCkvYmxvY2tfY2lwaGVyLm8gXAorCSAgICAgJChURl9QU0FfQ1JZUFRPX0RSSVZFUlNfQlVJTFRJTl9TUkNfUEFUSCkvY2FtZWxsaWEubyBcCisJICAgICAkKFRGX1BTQV9DUllQVE9fRFJJVkVSU19CVUlMVElOX1NSQ19QQVRIKS9jY20ubyBcCisJICAgICAkKFRGX1BTQV9DUllQVE9fRFJJVkVSU19CVUlMVElOX1NSQ19QQVRIKS9jaGFjaGEyMC5vIFwKKwkgICAgICQoVEZfUFNBX0NSWVBUT19EUklWRVJTX0JVSUxUSU5fU1JDX1BBVEgpL2NoYWNoYXBvbHkubyBcCisJICAgICAkKFRGX1BTQV9DUllQVE9fRFJJVkVSU19CVUlMVElOX1NSQ19QQVRIKS9jaXBoZXIubyBcCisJICAgICAkKFRGX1BTQV9DUllQVE9fRFJJVkVSU19CVUlMVElOX1NSQ19QQVRIKS9jaXBoZXJfd3JhcC5vIFwKKwkgICAgICQoVEZfUFNBX0NSWVBUT19EUklWRVJTX0JVSUxUSU5fU1JDX1BBVEgpL2NtYWMubyBcCisJICAgICAkKFRGX1BTQV9DUllQVE9fRFJJVkVSU19CVUlMVElOX1NSQ19QQVRIKS9jb25zdGFudF90aW1lLm8gXAorCSAgICAgJChURl9QU0FfQ1JZUFRPX0RSSVZFUlNfQlVJTFRJTl9TUkNfUEFUSCkvY3RyX2RyYmcubyBcCisJICAgICAkKFRGX1BTQV9DUllQVE9fRFJJVkVSU19CVUlMVElOX1NSQ19QQVRIKS9kZXMubyBcCisJICAgICAkKFRGX1BTQV9DUllQVE9fRFJJVkVSU19CVUlMVElOX1NSQ19QQVRIKS9kaG0ubyBcCisJICAgICAkKFRGX1BTQV9DUllQVE9fRFJJVkVSU19CVUlMVElOX1NSQ19QQVRIKS9lY2RoLm8gXAorCSAgICAgJChURl9QU0FfQ1JZUFRPX0RSSVZFUlNfQlVJTFRJTl9TUkNfUEFUSCkvZWNkc2EubyBcCisJICAgICAkKFRGX1BTQV9DUllQVE9fRFJJVkVSU19CVUlMVElOX1NSQ19QQVRIKS9lY2pwYWtlLm8gXAorCSAgICAgJChURl9QU0FfQ1JZUFRPX0RSSVZFUlNfQlVJTFRJTl9TUkNfUEFUSCkvZWNwLm8gXAorCSAgICAgJChURl9QU0FfQ1JZUFRPX0RSSVZFUlNfQlVJTFRJTl9TUkNfUEFUSCkvZWNwX2N1cnZlcy5vIFwKKwkgICAgICQoVEZfUFNBX0NSWVBUT19EUklWRVJTX0JVSUxUSU5fU1JDX1BBVEgpL2VjcF9jdXJ2ZXNfbmV3Lm8gXAorCSAgICAgJChURl9QU0FfQ1JZUFRPX0RSSVZFUlNfQlVJTFRJTl9TUkNfUEFUSCkvZW50cm9weS5vIFwKKwkgICAgICQoVEZfUFNBX0NSWVBUT19EUklWRVJTX0JVSUxUSU5fU1JDX1BBVEgpL2VudHJvcHlfcG9sbC5vIFwKKwkgICAgICQoVEZfUFNBX0NSWVBUT19EUklWRVJTX0JVSUxUSU5fU1JDX1BBVEgpL2Vycm9yLm8gXAorCSAgICAgJChURl9QU0FfQ1JZUFRPX0RSSVZFUlNfQlVJTFRJTl9TUkNfUEFUSCkvZ2NtLm8gXAorCSAgICAgJChURl9QU0FfQ1JZUFRPX0RSSVZFUlNfQlVJTFRJTl9TUkNfUEFUSCkvaGtkZi5vIFwKKwkgICAgICQoVEZfUFNBX0NSWVBUT19EUklWRVJTX0JVSUxUSU5fU1JDX1BBVEgpL2htYWNfZHJiZy5vIFwKKwkgICAgICQoVEZfUFNBX0NSWVBUT19EUklWRVJTX0JVSUxUSU5fU1JDX1BBVEgpL2xtb3RzLm8gXAorCSAgICAgJChURl9QU0FfQ1JZUFRPX0RSSVZFUlNfQlVJTFRJTl9TUkNfUEFUSCkvbG1zLm8gXAorCSAgICAgJChURl9QU0FfQ1JZUFRPX0RSSVZFUlNfQlVJTFRJTl9TUkNfUEFUSCkvbWQubyBcCisJICAgICAkKFRGX1BTQV9DUllQVE9fRFJJVkVSU19CVUlMVElOX1NSQ19QQVRIKS9tZDUubyBcCisJICAgICAkKFRGX1BTQV9DUllQVE9fRFJJVkVSU19CVUlMVElOX1NSQ19QQVRIKS9tZW1vcnlfYnVmZmVyX2FsbG9jLm8gXAorCSAgICAgJChURl9QU0FfQ1JZUFRPX0RSSVZFUlNfQlVJTFRJTl9TUkNfUEFUSCkvbmlzdF9rdy5vIFwKKwkgICAgICQoVEZfUFNBX0NSWVBUT19EUklWRVJTX0JVSUxUSU5fU1JDX1BBVEgpL29pZC5vIFwKKwkgICAgICQoVEZfUFNBX0NSWVBUT19EUklWRVJTX0JVSUxUSU5fU1JDX1BBVEgpL3BlbS5vIFwKKwkgICAgICQoVEZfUFNBX0NSWVBUT19EUklWRVJTX0JVSUxUSU5fU1JDX1BBVEgpL3BrLm8gXAorCSAgICAgJChURl9QU0FfQ1JZUFRPX0RSSVZFUlNfQlVJTFRJTl9TUkNfUEFUSCkvcGtfZWNjLm8gXAorCSAgICAgJChURl9QU0FfQ1JZUFRPX0RSSVZFUlNfQlVJTFRJTl9TUkNfUEFUSCkvcGtfd3JhcC5vIFwKKwkgICAgICQoVEZfUFNBX0NSWVBUT19EUklWRVJTX0JVSUxUSU5fU1JDX1BBVEgpL3BrY3MxMi5vIFwKKwkgICAgICQoVEZfUFNBX0NSWVBUT19EUklWRVJTX0JVSUxUSU5fU1JDX1BBVEgpL3BrY3M1Lm8gXAorCSAgICAgJChURl9QU0FfQ1JZUFRPX0RSSVZFUlNfQlVJTFRJTl9TUkNfUEFUSCkvcGtwYXJzZS5vIFwKKwkgICAgICQoVEZfUFNBX0NSWVBUT19EUklWRVJTX0JVSUxUSU5fU1JDX1BBVEgpL3Brd3JpdGUubyBcCisJICAgICAkKFRGX1BTQV9DUllQVE9fRFJJVkVSU19CVUlMVElOX1NSQ19QQVRIKS9wbGF0Zm9ybS5vIFwKKwkgICAgICQoVEZfUFNBX0NSWVBUT19EUklWRVJTX0JVSUxUSU5fU1JDX1BBVEgpL3BsYXRmb3JtX3V0aWwubyBcCisJICAgICAkKFRGX1BTQV9DUllQVE9fRFJJVkVSU19CVUlMVElOX1NSQ19QQVRIKS9wb2x5MTMwNS5vIFwKKwkgICAgICQoVEZfUFNBX0NSWVBUT19EUklWRVJTX0JVSUxUSU5fU1JDX1BBVEgpL3JpcGVtZDE2MC5vIFwKKwkgICAgICQoVEZfUFNBX0NSWVBUT19EUklWRVJTX0JVSUxUSU5fU1JDX1BBVEgpL3JzYS5vIFwKKwkgICAgICQoVEZfUFNBX0NSWVBUT19EUklWRVJTX0JVSUxUSU5fU1JDX1BBVEgpL3JzYV9hbHRfaGVscGVycy5vIFwKKwkgICAgICQoVEZfUFNBX0NSWVBUT19EUklWRVJTX0JVSUxUSU5fU1JDX1BBVEgpL3NoYTEubyBcCisJICAgICAkKFRGX1BTQV9DUllQVE9fRFJJVkVSU19CVUlMVElOX1NSQ19QQVRIKS9zaGEyNTYubyBcCisJICAgICAkKFRGX1BTQV9DUllQVE9fRFJJVkVSU19CVUlMVElOX1NSQ19QQVRIKS9zaGE1MTIubyBcCisJICAgICAkKFRGX1BTQV9DUllQVE9fRFJJVkVSU19CVUlMVElOX1NSQ19QQVRIKS9zaGEzLm8gXAorCSAgICAgJChURl9QU0FfQ1JZUFRPX0RSSVZFUlNfQlVJTFRJTl9TUkNfUEFUSCkvdGhyZWFkaW5nLm8gXAorCSAgICAgJChURl9QU0FfQ1JZUFRPX0RSSVZFUlNfQlVJTFRJTl9TUkNfUEFUSCkvdGltaW5nLm8gXAorCSAgICAgJChURl9QU0FfQ1JZUFRPX0RSSVZFUlNfQlVJTFRJTl9TUkNfUEFUSCkvdmVyc2lvbi5vIFwKKwkgICAgICQoVEZfUFNBX0NSWVBUT19EUklWRVJTX0JVSUxUSU5fU1JDX1BBVEgpL3ZlcnNpb25fZmVhdHVyZXMubyBcCiAJICAgICAjIFRoaXMgbGluZSBpcyBpbnRlbnRpb25hbGx5IGxlZnQgYmxhbmsKIAotaW5jbHVkZSAuLi8zcmRwYXJ0eS9NYWtlZmlsZS5pbmMKK1RISVJEUEFSVFlfRElSIDo9ICQoTUJFRFRMU19QQVRIKS90Zi1wc2EtY3J5cHRvL2RyaXZlcnMKK2luY2x1ZGUgJChNQkVEVExTX1BBVEgpL3RmLXBzYS1jcnlwdG8vZHJpdmVycy9ldmVyZXN0L01ha2VmaWxlLmluYworaW5jbHVkZSAkKE1CRURUTFNfUEFUSCkvdGYtcHNhLWNyeXB0by9kcml2ZXJzL3AyNTYtbS9NYWtlZmlsZS5pbmMKIExPQ0FMX0NGTEFHUys9JChUSElSRFBBUlRZX0lOQ0xVREVTKQogT0JKU19DUllQVE8rPSQoVEhJUkRQQVJUWV9DUllQVE9fT0JKRUNUUykKIApAQCAtMzQ4LDEwICszNTYsMTAgQEAKIGdlbl9maWxlX2RlcCA9IHwKIGVuZGlmCiAKLWVycm9yLmM6ICQoZ2VuX2ZpbGVfZGVwKSAuLi9zY3JpcHRzL2dlbmVyYXRlX2Vycm9ycy5wbAotZXJyb3IuYzogJChnZW5fZmlsZV9kZXApIC4uL3NjcmlwdHMvZGF0YV9maWxlcy9lcnJvci5mbXQKLWVycm9yLmM6ICQoZ2VuX2ZpbGVfZGVwKSAkKGZpbHRlci1vdXQgJWNvbmZpZyUsJCh3aWxkY2FyZCAuLi9pbmNsdWRlL21iZWR0bHMvKi5oKSkKLWVycm9yLmM6CiskKFRGX1BTQV9DUllQVE9fRFJJVkVSU19CVUlMVElOX1NSQ19QQVRIKS9lcnJvci5jOiAkKGdlbl9maWxlX2RlcCkgLi4vc2NyaXB0cy9nZW5lcmF0ZV9lcnJvcnMucGwKKyQoVEZfUFNBX0NSWVBUT19EUklWRVJTX0JVSUxUSU5fU1JDX1BBVEgpL2Vycm9yLmM6ICQoZ2VuX2ZpbGVfZGVwKSAuLi9zY3JpcHRzL2RhdGFfZmlsZXMvZXJyb3IuZm10CiskKFRGX1BTQV9DUllQVE9fRFJJVkVSU19CVUlMVElOX1NSQ19QQVRIKS9lcnJvci5jOiAkKGdlbl9maWxlX2RlcCkgJChmaWx0ZXItb3V0ICVjb25maWclLCQod2lsZGNhcmQgLi4vaW5jbHVkZS9tYmVkdGxzLyouaCkpCiskKFRGX1BTQV9DUllQVE9fRFJJVkVSU19CVUlMVElOX1NSQ19QQVRIKS9lcnJvci5jOgogCWVjaG8gIiAgR2VuICAgJEAiCiAJJChQRVJMKSAuLi9zY3JpcHRzL2dlbmVyYXRlX2Vycm9ycy5wbAogCkBAIC0zNjEsMzMgKzM2OSwzNCBAQAogCWVjaG8gIiAgR2VuICAgJEAiCiAJJChQWVRIT04pIC4uL3NjcmlwdHMvZ2VuZXJhdGVfc3NsX2RlYnVnX2hlbHBlcnMucHkgLS1tYmVkdGxzLXJvb3QgLi4gLgogCi12ZXJzaW9uX2ZlYXR1cmVzLmM6ICQoZ2VuX2ZpbGVfZGVwKSAuLi9zY3JpcHRzL2dlbmVyYXRlX2ZlYXR1cmVzLnBsCi12ZXJzaW9uX2ZlYXR1cmVzLmM6ICQoZ2VuX2ZpbGVfZGVwKSAuLi9zY3JpcHRzL2RhdGFfZmlsZXMvdmVyc2lvbl9mZWF0dXJlcy5mbXQKKyQoVEZfUFNBX0NSWVBUT19EUklWRVJTX0JVSUxUSU5fU1JDX1BBVEgpL3ZlcnNpb25fZmVhdHVyZXMuYzogJChnZW5fZmlsZV9kZXApIC4uL3NjcmlwdHMvZ2VuZXJhdGVfZmVhdHVyZXMucGwKKyQoVEZfUFNBX0NSWVBUT19EUklWRVJTX0JVSUxUSU5fU1JDX1BBVEgpL3ZlcnNpb25fZmVhdHVyZXMuYzogJChnZW5fZmlsZV9kZXApIC4uL3NjcmlwdHMvZGF0YV9maWxlcy92ZXJzaW9uX2ZlYXR1cmVzLmZtdAogIyMgVGhlIGdlbmVyYXRlZCBmaWxlIG9ubHkgZGVwZW5kcyBvbiB0aGUgb3B0aW9ucyB0aGF0IGFyZSBwcmVzZW50IGluIG1iZWR0bHNfY29uZmlnLmgsCiAjIyBub3Qgb24gd2hpY2ggb3B0aW9ucyBhcmUgc2V0LiBUbyBhdm9pZCByZWdlbmVyYXRpbmcgdGhpcyBmaWxlIGFsbCB0aGUgdGltZQogIyMgd2hlbiBzd2l0Y2hpbmcgYmV0d2VlbiBjb25maWd1cmF0aW9ucywgZG9uJ3QgZGVjbGFyZSBtYmVkdGxzX2NvbmZpZy5oIGFzIGEKICMjIGRlcGVuZGVuY3kuIFJlbW92ZSB0aGlzIGZpbGUgZnJvbSB5b3VyIHdvcmtpbmcgdHJlZSBpZiB5b3UndmUganVzdCBhZGRlZCBvcgogIyMgcmVtb3ZlZCBhbiBvcHRpb24gaW4gbWJlZHRsc19jb25maWcuaC4KICN2ZXJzaW9uX2ZlYXR1cmVzLmM6IC4uL2luY2x1ZGUvbWJlZHRscy9tYmVkdGxzX2NvbmZpZy5oCi12ZXJzaW9uX2ZlYXR1cmVzLmM6CiskKFRGX1BTQV9DUllQVE9fRFJJVkVSU19CVUlMVElOX1NSQ19QQVRIKS92ZXJzaW9uX2ZlYXR1cmVzLmM6CiAJZWNobyAiICBHZW4gICAkQCIKIAkkKFBFUkwpIC4uL3NjcmlwdHMvZ2VuZXJhdGVfZmVhdHVyZXMucGwKIAogR0VORVJBVEVEX1dSQVBQRVJfRklMRVMgPSBcCi0gICAgICAgICAgICAgICAgICAgIHBzYV9jcnlwdG9fZHJpdmVyX3dyYXBwZXJzLmggXAotICAgICAgICAgICAgICAgICAgICBwc2FfY3J5cHRvX2RyaXZlcl93cmFwcGVyc19ub19zdGF0aWMuYworICAgICAgICAgICAgICAgICAgICAkKFRGX1BTQV9DUllQVE9fQ09SRV9QQVRIKS9wc2FfY3J5cHRvX2RyaXZlcl93cmFwcGVycy5oIFwKKyAgICAgICAgICAgICAgICAgICAgJChURl9QU0FfQ1JZUFRPX0NPUkVfUEFUSCkvcHNhX2NyeXB0b19kcml2ZXJfd3JhcHBlcnNfbm9fc3RhdGljLmMKICQoR0VORVJBVEVEX1dSQVBQRVJfRklMRVMpOiAuLi9zY3JpcHRzL2dlbmVyYXRlX2RyaXZlcl93cmFwcGVycy5weQogJChHRU5FUkFURURfV1JBUFBFUl9GSUxFUyk6IC4uL3NjcmlwdHMvZGF0YV9maWxlcy9kcml2ZXJfdGVtcGxhdGVzL3BzYV9jcnlwdG9fZHJpdmVyX3dyYXBwZXJzLmguamluamEKICQoR0VORVJBVEVEX1dSQVBQRVJfRklMRVMpOiAuLi9zY3JpcHRzL2RhdGFfZmlsZXMvZHJpdmVyX3RlbXBsYXRlcy9wc2FfY3J5cHRvX2RyaXZlcl93cmFwcGVyc19ub19zdGF0aWMuYy5qaW5qYQogJChHRU5FUkFURURfV1JBUFBFUl9GSUxFUyk6CiAJZWNobyAiICBHZW4gICAkKEdFTkVSQVRFRF9XUkFQUEVSX0ZJTEVTKSIKLQkkKFBZVEhPTikgLi4vc2NyaXB0cy9nZW5lcmF0ZV9kcml2ZXJfd3JhcHBlcnMucHkKKwkkKFBZVEhPTikgLi4vc2NyaXB0cy9nZW5lcmF0ZV9kcml2ZXJfd3JhcHBlcnMucHkgJChURl9QU0FfQ1JZUFRPX0NPUkVfUEFUSCkKIAotcHNhX2NyeXB0by5vOnBzYV9jcnlwdG9fZHJpdmVyX3dyYXBwZXJzLmgKKyQoVEZfUFNBX0NSWVBUT19DT1JFX1BBVEgpL3BzYV9jcnlwdG8ubzokKFRGX1BTQV9DUllQVE9fQ09SRV9QQVRIKS9wc2FfY3J5cHRvX2RyaXZlcl93cmFwcGVycy5oCiAKIGNsZWFuOgogaWZuZGVmIFdJTkRPV1MKIAlybSAtZiAqLm8gbGlibWJlZCoKKwlybSAtZiAkKE9CSlNfQ1JZUFRPKQogCXJtIC1mICQoVEhJUkRQQVJUWV9DUllQVE9fT0JKRUNUUykKIGVsc2UKIAlpZiBleGlzdCAqLm8gZGVsIC9RIC9GICoubwpkaWZmIC0tZ2l0IGEvbGlicmFyeS9hZXMuYyBiL2xpYnJhcnkvYWVzLmMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGIxYTVjM2UuLjAwMDAwMDAKLS0tIGEvbGlicmFyeS9hZXMuYworKysgL2Rldi9udWxsCkBAIC0xLDIyOTQgKzAsMCBAQAotLyoKLSAqICBGSVBTLTE5NyBjb21wbGlhbnQgQUVTIGltcGxlbWVudGF0aW9uCi0gKgotICogIENvcHlyaWdodCBUaGUgTWJlZCBUTFMgQ29udHJpYnV0b3JzCi0gKiAgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjAgT1IgR1BMLTIuMC1vci1sYXRlcgotICovCi0vKgotICogIFRoZSBBRVMgYmxvY2sgY2lwaGVyIHdhcyBkZXNpZ25lZCBieSBWaW5jZW50IFJpam1lbiBhbmQgSm9hbiBEYWVtZW4uCi0gKgotICogIGh0dHBzOi8vY3NyYy5uaXN0Lmdvdi9jc3JjL21lZGlhL3Byb2plY3RzL2NyeXB0b2dyYXBoaWMtc3RhbmRhcmRzLWFuZC1ndWlkZWxpbmVzL2RvY3VtZW50cy9hZXMtZGV2ZWxvcG1lbnQvcmlqbmRhZWwtYW1tZW5kZWQucGRmCi0gKiAgaHR0cDovL2NzcmMubmlzdC5nb3YvcHVibGljYXRpb25zL2ZpcHMvZmlwczE5Ny9maXBzLTE5Ny5wZGYKLSAqLwotCi0jaW5jbHVkZSAiY29tbW9uLmgiCi0KLSNpZiBkZWZpbmVkKE1CRURUTFNfQUVTX0MpCi0KLSNpbmNsdWRlIDxzdHJpbmcuaD4KLQotI2luY2x1ZGUgIm1iZWR0bHMvYWVzLmgiCi0jaW5jbHVkZSAibWJlZHRscy9wbGF0Zm9ybS5oIgotI2luY2x1ZGUgIm1iZWR0bHMvcGxhdGZvcm1fdXRpbC5oIgotI2luY2x1ZGUgIm1iZWR0bHMvZXJyb3IuaCIKLQotI2lmIGRlZmluZWQoTUJFRFRMU19BRVNfVVNFX0hBUkRXQVJFX09OTFkpCi0jaWYgISgoZGVmaW5lZChNQkVEVExTX0FSQ0hfSVNfQVJNVjhfQSkgJiYgZGVmaW5lZChNQkVEVExTX0FFU0NFX0MpKSB8fCBcCi0gICAgKGRlZmluZWQoTUJFRFRMU19BUkNIX0lTX1g2NCkgICAgICAgJiYgZGVmaW5lZChNQkVEVExTX0FFU05JX0MpKSB8fCBcCi0gICAgKGRlZmluZWQoTUJFRFRMU19BUkNIX0lTX1g4NikgICAgICAgJiYgZGVmaW5lZChNQkVEVExTX0FFU05JX0MpKSkKLSNlcnJvciAiTUJFRFRMU19BRVNfVVNFX0hBUkRXQVJFX09OTFkgZGVmaW5lZCwgYnV0IG5vdCBhbGwgcHJlcmVxdWlzaXRlcyIKLSNlbmRpZgotI2VuZGlmCi0KLSNpZiBkZWZpbmVkKE1CRURUTFNfQVJDSF9JU19YODYpCi0jaWYgZGVmaW5lZChNQkVEVExTX1BBRExPQ0tfQykKLSNpZiAhZGVmaW5lZChNQkVEVExTX0hBVkVfQVNNKQotI2Vycm9yICJNQkVEVExTX1BBRExPQ0tfQyBkZWZpbmVkLCBidXQgbm90IGFsbCBwcmVyZXF1aXNpdGVzIgotI2VuZGlmCi0jaWYgZGVmaW5lZChNQkVEVExTX0FFU19VU0VfSEFSRFdBUkVfT05MWSkKLSNlcnJvciAiTUJFRFRMU19BRVNfVVNFX0hBUkRXQVJFX09OTFkgY2Fubm90IGJlIGRlZmluZWQgd2hlbiAiIFwKLSAgICAiTUJFRFRMU19QQURMT0NLX0MgaXMgc2V0IgotI2VuZGlmCi0jZW5kaWYKLSNlbmRpZgotCi0jaWYgZGVmaW5lZChNQkVEVExTX1BBRExPQ0tfQykKLSNpbmNsdWRlICJwYWRsb2NrLmgiCi0jZW5kaWYKLSNpZiBkZWZpbmVkKE1CRURUTFNfQUVTTklfQykKLSNpbmNsdWRlICJhZXNuaS5oIgotI2VuZGlmCi0jaWYgZGVmaW5lZChNQkVEVExTX0FFU0NFX0MpCi0jaW5jbHVkZSAiYWVzY2UuaCIKLSNlbmRpZgotCi0jaW5jbHVkZSAibWJlZHRscy9wbGF0Zm9ybS5oIgotI2luY2x1ZGUgImN0ci5oIgotCi0vKgotICogVGhpcyBpcyBhIGNvbnZlbmllbmNlIHNob3J0aGFuZCBtYWNybyB0byBjaGVjayBpZiB3ZSBuZWVkIHJldmVyc2UgUy1ib3ggYW5kCi0gKiByZXZlcnNlIHRhYmxlcy4gSXQncyBwcml2YXRlIGFuZCBvbmx5IGRlZmluZWQgaW4gdGhpcyBmaWxlLgotICovCi0jaWYgKCFkZWZpbmVkKE1CRURUTFNfQUVTX0RFQ1JZUFRfQUxUKSB8fCBcCi0gICAgKCFkZWZpbmVkKE1CRURUTFNfQUVTX1NFVEtFWV9ERUNfQUxUKSAmJiAhZGVmaW5lZChNQkVEVExTX0FFU19VU0VfSEFSRFdBUkVfT05MWSkpKSAmJiBcCi0gICAgIWRlZmluZWQoTUJFRFRMU19CTE9DS19DSVBIRVJfTk9fREVDUllQVCkKLSNkZWZpbmUgTUJFRFRMU19BRVNfTkVFRF9SRVZFUlNFX1RBQkxFUwotI2VuZGlmCi0KLSNpZiAhZGVmaW5lZChNQkVEVExTX0FFU19BTFQpCi0KLSNpZiBkZWZpbmVkKE1CRURUTFNfVklBX1BBRExPQ0tfSEFWRV9DT0RFKQotc3RhdGljIGludCBhZXNfcGFkbG9ja19hY2UgPSAtMTsKLSNlbmRpZgotCi0jaWYgZGVmaW5lZChNQkVEVExTX0FFU19ST01fVEFCTEVTKQotLyoKLSAqIEZvcndhcmQgUy1ib3gKLSAqLwotTUJFRFRMU19NQVlCRV9VTlVTRUQgc3RhdGljIGNvbnN0IHVuc2lnbmVkIGNoYXIgRlNiWzI1Nl0gPQotewotICAgIDB4NjMsIDB4N0MsIDB4NzcsIDB4N0IsIDB4RjIsIDB4NkIsIDB4NkYsIDB4QzUsCi0gICAgMHgzMCwgMHgwMSwgMHg2NywgMHgyQiwgMHhGRSwgMHhENywgMHhBQiwgMHg3NiwKLSAgICAweENBLCAweDgyLCAweEM5LCAweDdELCAweEZBLCAweDU5LCAweDQ3LCAweEYwLAotICAgIDB4QUQsIDB4RDQsIDB4QTIsIDB4QUYsIDB4OUMsIDB4QTQsIDB4NzIsIDB4QzAsCi0gICAgMHhCNywgMHhGRCwgMHg5MywgMHgyNiwgMHgzNiwgMHgzRiwgMHhGNywgMHhDQywKLSAgICAweDM0LCAweEE1LCAweEU1LCAweEYxLCAweDcxLCAweEQ4LCAweDMxLCAweDE1LAotICAgIDB4MDQsIDB4QzcsIDB4MjMsIDB4QzMsIDB4MTgsIDB4OTYsIDB4MDUsIDB4OUEsCi0gICAgMHgwNywgMHgxMiwgMHg4MCwgMHhFMiwgMHhFQiwgMHgyNywgMHhCMiwgMHg3NSwKLSAgICAweDA5LCAweDgzLCAweDJDLCAweDFBLCAweDFCLCAweDZFLCAweDVBLCAweEEwLAotICAgIDB4NTIsIDB4M0IsIDB4RDYsIDB4QjMsIDB4MjksIDB4RTMsIDB4MkYsIDB4ODQsCi0gICAgMHg1MywgMHhEMSwgMHgwMCwgMHhFRCwgMHgyMCwgMHhGQywgMHhCMSwgMHg1QiwKLSAgICAweDZBLCAweENCLCAweEJFLCAweDM5LCAweDRBLCAweDRDLCAweDU4LCAweENGLAotICAgIDB4RDAsIDB4RUYsIDB4QUEsIDB4RkIsIDB4NDMsIDB4NEQsIDB4MzMsIDB4ODUsCi0gICAgMHg0NSwgMHhGOSwgMHgwMiwgMHg3RiwgMHg1MCwgMHgzQywgMHg5RiwgMHhBOCwKLSAgICAweDUxLCAweEEzLCAweDQwLCAweDhGLCAweDkyLCAweDlELCAweDM4LCAweEY1LAotICAgIDB4QkMsIDB4QjYsIDB4REEsIDB4MjEsIDB4MTAsIDB4RkYsIDB4RjMsIDB4RDIsCi0gICAgMHhDRCwgMHgwQywgMHgxMywgMHhFQywgMHg1RiwgMHg5NywgMHg0NCwgMHgxNywKLSAgICAweEM0LCAweEE3LCAweDdFLCAweDNELCAweDY0LCAweDVELCAweDE5LCAweDczLAotICAgIDB4NjAsIDB4ODEsIDB4NEYsIDB4REMsIDB4MjIsIDB4MkEsIDB4OTAsIDB4ODgsCi0gICAgMHg0NiwgMHhFRSwgMHhCOCwgMHgxNCwgMHhERSwgMHg1RSwgMHgwQiwgMHhEQiwKLSAgICAweEUwLCAweDMyLCAweDNBLCAweDBBLCAweDQ5LCAweDA2LCAweDI0LCAweDVDLAotICAgIDB4QzIsIDB4RDMsIDB4QUMsIDB4NjIsIDB4OTEsIDB4OTUsIDB4RTQsIDB4NzksCi0gICAgMHhFNywgMHhDOCwgMHgzNywgMHg2RCwgMHg4RCwgMHhENSwgMHg0RSwgMHhBOSwKLSAgICAweDZDLCAweDU2LCAweEY0LCAweEVBLCAweDY1LCAweDdBLCAweEFFLCAweDA4LAotICAgIDB4QkEsIDB4NzgsIDB4MjUsIDB4MkUsIDB4MUMsIDB4QTYsIDB4QjQsIDB4QzYsCi0gICAgMHhFOCwgMHhERCwgMHg3NCwgMHgxRiwgMHg0QiwgMHhCRCwgMHg4QiwgMHg4QSwKLSAgICAweDcwLCAweDNFLCAweEI1LCAweDY2LCAweDQ4LCAweDAzLCAweEY2LCAweDBFLAotICAgIDB4NjEsIDB4MzUsIDB4NTcsIDB4QjksIDB4ODYsIDB4QzEsIDB4MUQsIDB4OUUsCi0gICAgMHhFMSwgMHhGOCwgMHg5OCwgMHgxMSwgMHg2OSwgMHhEOSwgMHg4RSwgMHg5NCwKLSAgICAweDlCLCAweDFFLCAweDg3LCAweEU5LCAweENFLCAweDU1LCAweDI4LCAweERGLAotICAgIDB4OEMsIDB4QTEsIDB4ODksIDB4MEQsIDB4QkYsIDB4RTYsIDB4NDIsIDB4NjgsCi0gICAgMHg0MSwgMHg5OSwgMHgyRCwgMHgwRiwgMHhCMCwgMHg1NCwgMHhCQiwgMHgxNgotfTsKLQotLyoKLSAqIEZvcndhcmQgdGFibGVzCi0gKi8KLSNkZWZpbmUgRlQgXAotXAotICAgIFYoQTUsIDYzLCA2MywgQzYpLCBWKDg0LCA3QywgN0MsIEY4KSwgVig5OSwgNzcsIDc3LCBFRSksIFYoOEQsIDdCLCA3QiwgRjYpLCBcCi0gICAgVigwRCwgRjIsIEYyLCBGRiksIFYoQkQsIDZCLCA2QiwgRDYpLCBWKEIxLCA2RiwgNkYsIERFKSwgVig1NCwgQzUsIEM1LCA5MSksIFwKLSAgICBWKDUwLCAzMCwgMzAsIDYwKSwgVigwMywgMDEsIDAxLCAwMiksIFYoQTksIDY3LCA2NywgQ0UpLCBWKDdELCAyQiwgMkIsIDU2KSwgXAotICAgIFYoMTksIEZFLCBGRSwgRTcpLCBWKDYyLCBENywgRDcsIEI1KSwgVihFNiwgQUIsIEFCLCA0RCksIFYoOUEsIDc2LCA3NiwgRUMpLCBcCi0gICAgVig0NSwgQ0EsIENBLCA4RiksIFYoOUQsIDgyLCA4MiwgMUYpLCBWKDQwLCBDOSwgQzksIDg5KSwgVig4NywgN0QsIDdELCBGQSksIFwKLSAgICBWKDE1LCBGQSwgRkEsIEVGKSwgVihFQiwgNTksIDU5LCBCMiksIFYoQzksIDQ3LCA0NywgOEUpLCBWKDBCLCBGMCwgRjAsIEZCKSwgXAotICAgIFYoRUMsIEFELCBBRCwgNDEpLCBWKDY3LCBENCwgRDQsIEIzKSwgVihGRCwgQTIsIEEyLCA1RiksIFYoRUEsIEFGLCBBRiwgNDUpLCBcCi0gICAgVihCRiwgOUMsIDlDLCAyMyksIFYoRjcsIEE0LCBBNCwgNTMpLCBWKDk2LCA3MiwgNzIsIEU0KSwgVig1QiwgQzAsIEMwLCA5QiksIFwKLSAgICBWKEMyLCBCNywgQjcsIDc1KSwgVigxQywgRkQsIEZELCBFMSksIFYoQUUsIDkzLCA5MywgM0QpLCBWKDZBLCAyNiwgMjYsIDRDKSwgXAotICAgIFYoNUEsIDM2LCAzNiwgNkMpLCBWKDQxLCAzRiwgM0YsIDdFKSwgVigwMiwgRjcsIEY3LCBGNSksIFYoNEYsIENDLCBDQywgODMpLCBcCi0gICAgVig1QywgMzQsIDM0LCA2OCksIFYoRjQsIEE1LCBBNSwgNTEpLCBWKDM0LCBFNSwgRTUsIEQxKSwgVigwOCwgRjEsIEYxLCBGOSksIFwKLSAgICBWKDkzLCA3MSwgNzEsIEUyKSwgVig3MywgRDgsIEQ4LCBBQiksIFYoNTMsIDMxLCAzMSwgNjIpLCBWKDNGLCAxNSwgMTUsIDJBKSwgXAotICAgIFYoMEMsIDA0LCAwNCwgMDgpLCBWKDUyLCBDNywgQzcsIDk1KSwgVig2NSwgMjMsIDIzLCA0NiksIFYoNUUsIEMzLCBDMywgOUQpLCBcCi0gICAgVigyOCwgMTgsIDE4LCAzMCksIFYoQTEsIDk2LCA5NiwgMzcpLCBWKDBGLCAwNSwgMDUsIDBBKSwgVihCNSwgOUEsIDlBLCAyRiksIFwKLSAgICBWKDA5LCAwNywgMDcsIDBFKSwgVigzNiwgMTIsIDEyLCAyNCksIFYoOUIsIDgwLCA4MCwgMUIpLCBWKDNELCBFMiwgRTIsIERGKSwgXAotICAgIFYoMjYsIEVCLCBFQiwgQ0QpLCBWKDY5LCAyNywgMjcsIDRFKSwgVihDRCwgQjIsIEIyLCA3RiksIFYoOUYsIDc1LCA3NSwgRUEpLCBcCi0gICAgVigxQiwgMDksIDA5LCAxMiksIFYoOUUsIDgzLCA4MywgMUQpLCBWKDc0LCAyQywgMkMsIDU4KSwgVigyRSwgMUEsIDFBLCAzNCksIFwKLSAgICBWKDJELCAxQiwgMUIsIDM2KSwgVihCMiwgNkUsIDZFLCBEQyksIFYoRUUsIDVBLCA1QSwgQjQpLCBWKEZCLCBBMCwgQTAsIDVCKSwgXAotICAgIFYoRjYsIDUyLCA1MiwgQTQpLCBWKDRELCAzQiwgM0IsIDc2KSwgVig2MSwgRDYsIEQ2LCBCNyksIFYoQ0UsIEIzLCBCMywgN0QpLCBcCi0gICAgVig3QiwgMjksIDI5LCA1MiksIFYoM0UsIEUzLCBFMywgREQpLCBWKDcxLCAyRiwgMkYsIDVFKSwgVig5NywgODQsIDg0LCAxMyksIFwKLSAgICBWKEY1LCA1MywgNTMsIEE2KSwgVig2OCwgRDEsIEQxLCBCOSksIFYoMDAsIDAwLCAwMCwgMDApLCBWKDJDLCBFRCwgRUQsIEMxKSwgXAotICAgIFYoNjAsIDIwLCAyMCwgNDApLCBWKDFGLCBGQywgRkMsIEUzKSwgVihDOCwgQjEsIEIxLCA3OSksIFYoRUQsIDVCLCA1QiwgQjYpLCBcCi0gICAgVihCRSwgNkEsIDZBLCBENCksIFYoNDYsIENCLCBDQiwgOEQpLCBWKEQ5LCBCRSwgQkUsIDY3KSwgVig0QiwgMzksIDM5LCA3MiksIFwKLSAgICBWKERFLCA0QSwgNEEsIDk0KSwgVihENCwgNEMsIDRDLCA5OCksIFYoRTgsIDU4LCA1OCwgQjApLCBWKDRBLCBDRiwgQ0YsIDg1KSwgXAotICAgIFYoNkIsIEQwLCBEMCwgQkIpLCBWKDJBLCBFRiwgRUYsIEM1KSwgVihFNSwgQUEsIEFBLCA0RiksIFYoMTYsIEZCLCBGQiwgRUQpLCBcCi0gICAgVihDNSwgNDMsIDQzLCA4NiksIFYoRDcsIDRELCA0RCwgOUEpLCBWKDU1LCAzMywgMzMsIDY2KSwgVig5NCwgODUsIDg1LCAxMSksIFwKLSAgICBWKENGLCA0NSwgNDUsIDhBKSwgVigxMCwgRjksIEY5LCBFOSksIFYoMDYsIDAyLCAwMiwgMDQpLCBWKDgxLCA3RiwgN0YsIEZFKSwgXAotICAgIFYoRjAsIDUwLCA1MCwgQTApLCBWKDQ0LCAzQywgM0MsIDc4KSwgVihCQSwgOUYsIDlGLCAyNSksIFYoRTMsIEE4LCBBOCwgNEIpLCBcCi0gICAgVihGMywgNTEsIDUxLCBBMiksIFYoRkUsIEEzLCBBMywgNUQpLCBWKEMwLCA0MCwgNDAsIDgwKSwgVig4QSwgOEYsIDhGLCAwNSksIFwKLSAgICBWKEFELCA5MiwgOTIsIDNGKSwgVihCQywgOUQsIDlELCAyMSksIFYoNDgsIDM4LCAzOCwgNzApLCBWKDA0LCBGNSwgRjUsIEYxKSwgXAotICAgIFYoREYsIEJDLCBCQywgNjMpLCBWKEMxLCBCNiwgQjYsIDc3KSwgVig3NSwgREEsIERBLCBBRiksIFYoNjMsIDIxLCAyMSwgNDIpLCBcCi0gICAgVigzMCwgMTAsIDEwLCAyMCksIFYoMUEsIEZGLCBGRiwgRTUpLCBWKDBFLCBGMywgRjMsIEZEKSwgVig2RCwgRDIsIEQyLCBCRiksIFwKLSAgICBWKDRDLCBDRCwgQ0QsIDgxKSwgVigxNCwgMEMsIDBDLCAxOCksIFYoMzUsIDEzLCAxMywgMjYpLCBWKDJGLCBFQywgRUMsIEMzKSwgXAotICAgIFYoRTEsIDVGLCA1RiwgQkUpLCBWKEEyLCA5NywgOTcsIDM1KSwgVihDQywgNDQsIDQ0LCA4OCksIFYoMzksIDE3LCAxNywgMkUpLCBcCi0gICAgVig1NywgQzQsIEM0LCA5MyksIFYoRjIsIEE3LCBBNywgNTUpLCBWKDgyLCA3RSwgN0UsIEZDKSwgVig0NywgM0QsIDNELCA3QSksIFwKLSAgICBWKEFDLCA2NCwgNjQsIEM4KSwgVihFNywgNUQsIDVELCBCQSksIFYoMkIsIDE5LCAxOSwgMzIpLCBWKDk1LCA3MywgNzMsIEU2KSwgXAotICAgIFYoQTAsIDYwLCA2MCwgQzApLCBWKDk4LCA4MSwgODEsIDE5KSwgVihEMSwgNEYsIDRGLCA5RSksIFYoN0YsIERDLCBEQywgQTMpLCBcCi0gICAgVig2NiwgMjIsIDIyLCA0NCksIFYoN0UsIDJBLCAyQSwgNTQpLCBWKEFCLCA5MCwgOTAsIDNCKSwgVig4MywgODgsIDg4LCAwQiksIFwKLSAgICBWKENBLCA0NiwgNDYsIDhDKSwgVigyOSwgRUUsIEVFLCBDNyksIFYoRDMsIEI4LCBCOCwgNkIpLCBWKDNDLCAxNCwgMTQsIDI4KSwgXAotICAgIFYoNzksIERFLCBERSwgQTcpLCBWKEUyLCA1RSwgNUUsIEJDKSwgVigxRCwgMEIsIDBCLCAxNiksIFYoNzYsIERCLCBEQiwgQUQpLCBcCi0gICAgVigzQiwgRTAsIEUwLCBEQiksIFYoNTYsIDMyLCAzMiwgNjQpLCBWKDRFLCAzQSwgM0EsIDc0KSwgVigxRSwgMEEsIDBBLCAxNCksIFwKLSAgICBWKERCLCA0OSwgNDksIDkyKSwgVigwQSwgMDYsIDA2LCAwQyksIFYoNkMsIDI0LCAyNCwgNDgpLCBWKEU0LCA1QywgNUMsIEI4KSwgXAotICAgIFYoNUQsIEMyLCBDMiwgOUYpLCBWKDZFLCBEMywgRDMsIEJEKSwgVihFRiwgQUMsIEFDLCA0MyksIFYoQTYsIDYyLCA2MiwgQzQpLCBcCi0gICAgVihBOCwgOTEsIDkxLCAzOSksIFYoQTQsIDk1LCA5NSwgMzEpLCBWKDM3LCBFNCwgRTQsIEQzKSwgVig4QiwgNzksIDc5LCBGMiksIFwKLSAgICBWKDMyLCBFNywgRTcsIEQ1KSwgVig0MywgQzgsIEM4LCA4QiksIFYoNTksIDM3LCAzNywgNkUpLCBWKEI3LCA2RCwgNkQsIERBKSwgXAotICAgIFYoOEMsIDhELCA4RCwgMDEpLCBWKDY0LCBENSwgRDUsIEIxKSwgVihEMiwgNEUsIDRFLCA5QyksIFYoRTAsIEE5LCBBOSwgNDkpLCBcCi0gICAgVihCNCwgNkMsIDZDLCBEOCksIFYoRkEsIDU2LCA1NiwgQUMpLCBWKDA3LCBGNCwgRjQsIEYzKSwgVigyNSwgRUEsIEVBLCBDRiksIFwKLSAgICBWKEFGLCA2NSwgNjUsIENBKSwgVig4RSwgN0EsIDdBLCBGNCksIFYoRTksIEFFLCBBRSwgNDcpLCBWKDE4LCAwOCwgMDgsIDEwKSwgXAotICAgIFYoRDUsIEJBLCBCQSwgNkYpLCBWKDg4LCA3OCwgNzgsIEYwKSwgVig2RiwgMjUsIDI1LCA0QSksIFYoNzIsIDJFLCAyRSwgNUMpLCBcCi0gICAgVigyNCwgMUMsIDFDLCAzOCksIFYoRjEsIEE2LCBBNiwgNTcpLCBWKEM3LCBCNCwgQjQsIDczKSwgVig1MSwgQzYsIEM2LCA5NyksIFwKLSAgICBWKDIzLCBFOCwgRTgsIENCKSwgVig3QywgREQsIERELCBBMSksIFYoOUMsIDc0LCA3NCwgRTgpLCBWKDIxLCAxRiwgMUYsIDNFKSwgXAotICAgIFYoREQsIDRCLCA0QiwgOTYpLCBWKERDLCBCRCwgQkQsIDYxKSwgVig4NiwgOEIsIDhCLCAwRCksIFYoODUsIDhBLCA4QSwgMEYpLCBcCi0gICAgVig5MCwgNzAsIDcwLCBFMCksIFYoNDIsIDNFLCAzRSwgN0MpLCBWKEM0LCBCNSwgQjUsIDcxKSwgVihBQSwgNjYsIDY2LCBDQyksIFwKLSAgICBWKEQ4LCA0OCwgNDgsIDkwKSwgVigwNSwgMDMsIDAzLCAwNiksIFYoMDEsIEY2LCBGNiwgRjcpLCBWKDEyLCAwRSwgMEUsIDFDKSwgXAotICAgIFYoQTMsIDYxLCA2MSwgQzIpLCBWKDVGLCAzNSwgMzUsIDZBKSwgVihGOSwgNTcsIDU3LCBBRSksIFYoRDAsIEI5LCBCOSwgNjkpLCBcCi0gICAgVig5MSwgODYsIDg2LCAxNyksIFYoNTgsIEMxLCBDMSwgOTkpLCBWKDI3LCAxRCwgMUQsIDNBKSwgVihCOSwgOUUsIDlFLCAyNyksIFwKLSAgICBWKDM4LCBFMSwgRTEsIEQ5KSwgVigxMywgRjgsIEY4LCBFQiksIFYoQjMsIDk4LCA5OCwgMkIpLCBWKDMzLCAxMSwgMTEsIDIyKSwgXAotICAgIFYoQkIsIDY5LCA2OSwgRDIpLCBWKDcwLCBEOSwgRDksIEE5KSwgVig4OSwgOEUsIDhFLCAwNyksIFYoQTcsIDk0LCA5NCwgMzMpLCBcCi0gICAgVihCNiwgOUIsIDlCLCAyRCksIFYoMjIsIDFFLCAxRSwgM0MpLCBWKDkyLCA4NywgODcsIDE1KSwgVigyMCwgRTksIEU5LCBDOSksIFwKLSAgICBWKDQ5LCBDRSwgQ0UsIDg3KSwgVihGRiwgNTUsIDU1LCBBQSksIFYoNzgsIDI4LCAyOCwgNTApLCBWKDdBLCBERiwgREYsIEE1KSwgXAotICAgIFYoOEYsIDhDLCA4QywgMDMpLCBWKEY4LCBBMSwgQTEsIDU5KSwgVig4MCwgODksIDg5LCAwOSksIFYoMTcsIDBELCAwRCwgMUEpLCBcCi0gICAgVihEQSwgQkYsIEJGLCA2NSksIFYoMzEsIEU2LCBFNiwgRDcpLCBWKEM2LCA0MiwgNDIsIDg0KSwgVihCOCwgNjgsIDY4LCBEMCksIFwKLSAgICBWKEMzLCA0MSwgNDEsIDgyKSwgVihCMCwgOTksIDk5LCAyOSksIFYoNzcsIDJELCAyRCwgNUEpLCBWKDExLCAwRiwgMEYsIDFFKSwgXAotICAgIFYoQ0IsIEIwLCBCMCwgN0IpLCBWKEZDLCA1NCwgNTQsIEE4KSwgVihENiwgQkIsIEJCLCA2RCksIFYoM0EsIDE2LCAxNiwgMkMpCi0KLSNkZWZpbmUgVihhLCBiLCBjLCBkKSAweCMjYSMjYiMjYyMjZAotTUJFRFRMU19NQVlCRV9VTlVTRUQgc3RhdGljIGNvbnN0IHVpbnQzMl90IEZUMFsyNTZdID0geyBGVCB9OwotI3VuZGVmIFYKLQotI2RlZmluZSBWKGEsIGIsIGMsIGQpIDB4IyNiIyNjIyNkIyNhCi1NQkVEVExTX01BWUJFX1VOVVNFRCBzdGF0aWMgY29uc3QgdWludDMyX3QgRlQxWzI1Nl0gPSB7IEZUIH07Ci0jdW5kZWYgVgotCi0jZGVmaW5lIFYoYSwgYiwgYywgZCkgMHgjI2MjI2QjI2EjI2IKLU1CRURUTFNfTUFZQkVfVU5VU0VEIHN0YXRpYyBjb25zdCB1aW50MzJfdCBGVDJbMjU2XSA9IHsgRlQgfTsKLSN1bmRlZiBWCi0KLSNkZWZpbmUgVihhLCBiLCBjLCBkKSAweCMjZCMjYSMjYiMjYwotTUJFRFRMU19NQVlCRV9VTlVTRUQgc3RhdGljIGNvbnN0IHVpbnQzMl90IEZUM1syNTZdID0geyBGVCB9OwotI3VuZGVmIFYKLQotI3VuZGVmIEZUCi0KLS8qCi0gKiBSZXZlcnNlIFMtYm94Ci0gKi8KLU1CRURUTFNfTUFZQkVfVU5VU0VEIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBjaGFyIFJTYlsyNTZdID0KLXsKLSAgICAweDUyLCAweDA5LCAweDZBLCAweEQ1LCAweDMwLCAweDM2LCAweEE1LCAweDM4LAotICAgIDB4QkYsIDB4NDAsIDB4QTMsIDB4OUUsIDB4ODEsIDB4RjMsIDB4RDcsIDB4RkIsCi0gICAgMHg3QywgMHhFMywgMHgzOSwgMHg4MiwgMHg5QiwgMHgyRiwgMHhGRiwgMHg4NywKLSAgICAweDM0LCAweDhFLCAweDQzLCAweDQ0LCAweEM0LCAweERFLCAweEU5LCAweENCLAotICAgIDB4NTQsIDB4N0IsIDB4OTQsIDB4MzIsIDB4QTYsIDB4QzIsIDB4MjMsIDB4M0QsCi0gICAgMHhFRSwgMHg0QywgMHg5NSwgMHgwQiwgMHg0MiwgMHhGQSwgMHhDMywgMHg0RSwKLSAgICAweDA4LCAweDJFLCAweEExLCAweDY2LCAweDI4LCAweEQ5LCAweDI0LCAweEIyLAotICAgIDB4NzYsIDB4NUIsIDB4QTIsIDB4NDksIDB4NkQsIDB4OEIsIDB4RDEsIDB4MjUsCi0gICAgMHg3MiwgMHhGOCwgMHhGNiwgMHg2NCwgMHg4NiwgMHg2OCwgMHg5OCwgMHgxNiwKLSAgICAweEQ0LCAweEE0LCAweDVDLCAweENDLCAweDVELCAweDY1LCAweEI2LCAweDkyLAotICAgIDB4NkMsIDB4NzAsIDB4NDgsIDB4NTAsIDB4RkQsIDB4RUQsIDB4QjksIDB4REEsCi0gICAgMHg1RSwgMHgxNSwgMHg0NiwgMHg1NywgMHhBNywgMHg4RCwgMHg5RCwgMHg4NCwKLSAgICAweDkwLCAweEQ4LCAweEFCLCAweDAwLCAweDhDLCAweEJDLCAweEQzLCAweDBBLAotICAgIDB4RjcsIDB4RTQsIDB4NTgsIDB4MDUsIDB4QjgsIDB4QjMsIDB4NDUsIDB4MDYsCi0gICAgMHhEMCwgMHgyQywgMHgxRSwgMHg4RiwgMHhDQSwgMHgzRiwgMHgwRiwgMHgwMiwKLSAgICAweEMxLCAweEFGLCAweEJELCAweDAzLCAweDAxLCAweDEzLCAweDhBLCAweDZCLAotICAgIDB4M0EsIDB4OTEsIDB4MTEsIDB4NDEsIDB4NEYsIDB4NjcsIDB4REMsIDB4RUEsCi0gICAgMHg5NywgMHhGMiwgMHhDRiwgMHhDRSwgMHhGMCwgMHhCNCwgMHhFNiwgMHg3MywKLSAgICAweDk2LCAweEFDLCAweDc0LCAweDIyLCAweEU3LCAweEFELCAweDM1LCAweDg1LAotICAgIDB4RTIsIDB4RjksIDB4MzcsIDB4RTgsIDB4MUMsIDB4NzUsIDB4REYsIDB4NkUsCi0gICAgMHg0NywgMHhGMSwgMHgxQSwgMHg3MSwgMHgxRCwgMHgyOSwgMHhDNSwgMHg4OSwKLSAgICAweDZGLCAweEI3LCAweDYyLCAweDBFLCAweEFBLCAweDE4LCAweEJFLCAweDFCLAotICAgIDB4RkMsIDB4NTYsIDB4M0UsIDB4NEIsIDB4QzYsIDB4RDIsIDB4NzksIDB4MjAsCi0gICAgMHg5QSwgMHhEQiwgMHhDMCwgMHhGRSwgMHg3OCwgMHhDRCwgMHg1QSwgMHhGNCwKLSAgICAweDFGLCAweERELCAweEE4LCAweDMzLCAweDg4LCAweDA3LCAweEM3LCAweDMxLAotICAgIDB4QjEsIDB4MTIsIDB4MTAsIDB4NTksIDB4MjcsIDB4ODAsIDB4RUMsIDB4NUYsCi0gICAgMHg2MCwgMHg1MSwgMHg3RiwgMHhBOSwgMHgxOSwgMHhCNSwgMHg0QSwgMHgwRCwKLSAgICAweDJELCAweEU1LCAweDdBLCAweDlGLCAweDkzLCAweEM5LCAweDlDLCAweEVGLAotICAgIDB4QTAsIDB4RTAsIDB4M0IsIDB4NEQsIDB4QUUsIDB4MkEsIDB4RjUsIDB4QjAsCi0gICAgMHhDOCwgMHhFQiwgMHhCQiwgMHgzQywgMHg4MywgMHg1MywgMHg5OSwgMHg2MSwKLSAgICAweDE3LCAweDJCLCAweDA0LCAweDdFLCAweEJBLCAweDc3LCAweEQ2LCAweDI2LAotICAgIDB4RTEsIDB4NjksIDB4MTQsIDB4NjMsIDB4NTUsIDB4MjEsIDB4MEMsIDB4N0QKLX07Ci0KLS8qCi0gKiBSZXZlcnNlIHRhYmxlcwotICovCi0jZGVmaW5lIFJUIFwKLVwKLSAgICBWKDUwLCBBNywgRjQsIDUxKSwgVig1MywgNjUsIDQxLCA3RSksIFYoQzMsIEE0LCAxNywgMUEpLCBWKDk2LCA1RSwgMjcsIDNBKSwgXAotICAgIFYoQ0IsIDZCLCBBQiwgM0IpLCBWKEYxLCA0NSwgOUQsIDFGKSwgVihBQiwgNTgsIEZBLCBBQyksIFYoOTMsIDAzLCBFMywgNEIpLCBcCi0gICAgVig1NSwgRkEsIDMwLCAyMCksIFYoRjYsIDZELCA3NiwgQUQpLCBWKDkxLCA3NiwgQ0MsIDg4KSwgVigyNSwgNEMsIDAyLCBGNSksIFwKLSAgICBWKEZDLCBENywgRTUsIDRGKSwgVihENywgQ0IsIDJBLCBDNSksIFYoODAsIDQ0LCAzNSwgMjYpLCBWKDhGLCBBMywgNjIsIEI1KSwgXAotICAgIFYoNDksIDVBLCBCMSwgREUpLCBWKDY3LCAxQiwgQkEsIDI1KSwgVig5OCwgMEUsIEVBLCA0NSksIFYoRTEsIEMwLCBGRSwgNUQpLCBcCi0gICAgVigwMiwgNzUsIDJGLCBDMyksIFYoMTIsIEYwLCA0QywgODEpLCBWKEEzLCA5NywgNDYsIDhEKSwgVihDNiwgRjksIEQzLCA2QiksIFwKLSAgICBWKEU3LCA1RiwgOEYsIDAzKSwgVig5NSwgOUMsIDkyLCAxNSksIFYoRUIsIDdBLCA2RCwgQkYpLCBWKERBLCA1OSwgNTIsIDk1KSwgXAotICAgIFYoMkQsIDgzLCBCRSwgRDQpLCBWKEQzLCAyMSwgNzQsIDU4KSwgVigyOSwgNjksIEUwLCA0OSksIFYoNDQsIEM4LCBDOSwgOEUpLCBcCi0gICAgVig2QSwgODksIEMyLCA3NSksIFYoNzgsIDc5LCA4RSwgRjQpLCBWKDZCLCAzRSwgNTgsIDk5KSwgVihERCwgNzEsIEI5LCAyNyksIFwKLSAgICBWKEI2LCA0RiwgRTEsIEJFKSwgVigxNywgQUQsIDg4LCBGMCksIFYoNjYsIEFDLCAyMCwgQzkpLCBWKEI0LCAzQSwgQ0UsIDdEKSwgXAotICAgIFYoMTgsIDRBLCBERiwgNjMpLCBWKDgyLCAzMSwgMUEsIEU1KSwgVig2MCwgMzMsIDUxLCA5NyksIFYoNDUsIDdGLCA1MywgNjIpLCBcCi0gICAgVihFMCwgNzcsIDY0LCBCMSksIFYoODQsIEFFLCA2QiwgQkIpLCBWKDFDLCBBMCwgODEsIEZFKSwgVig5NCwgMkIsIDA4LCBGOSksIFwKLSAgICBWKDU4LCA2OCwgNDgsIDcwKSwgVigxOSwgRkQsIDQ1LCA4RiksIFYoODcsIDZDLCBERSwgOTQpLCBWKEI3LCBGOCwgN0IsIDUyKSwgXAotICAgIFYoMjMsIEQzLCA3MywgQUIpLCBWKEUyLCAwMiwgNEIsIDcyKSwgVig1NywgOEYsIDFGLCBFMyksIFYoMkEsIEFCLCA1NSwgNjYpLCBcCi0gICAgVigwNywgMjgsIEVCLCBCMiksIFYoMDMsIEMyLCBCNSwgMkYpLCBWKDlBLCA3QiwgQzUsIDg2KSwgVihBNSwgMDgsIDM3LCBEMyksIFwKLSAgICBWKEYyLCA4NywgMjgsIDMwKSwgVihCMiwgQTUsIEJGLCAyMyksIFYoQkEsIDZBLCAwMywgMDIpLCBWKDVDLCA4MiwgMTYsIEVEKSwgXAotICAgIFYoMkIsIDFDLCBDRiwgOEEpLCBWKDkyLCBCNCwgNzksIEE3KSwgVihGMCwgRjIsIDA3LCBGMyksIFYoQTEsIEUyLCA2OSwgNEUpLCBcCi0gICAgVihDRCwgRjQsIERBLCA2NSksIFYoRDUsIEJFLCAwNSwgMDYpLCBWKDFGLCA2MiwgMzQsIEQxKSwgVig4QSwgRkUsIEE2LCBDNCksIFwKLSAgICBWKDlELCA1MywgMkUsIDM0KSwgVihBMCwgNTUsIEYzLCBBMiksIFYoMzIsIEUxLCA4QSwgMDUpLCBWKDc1LCBFQiwgRjYsIEE0KSwgXAotICAgIFYoMzksIEVDLCA4MywgMEIpLCBWKEFBLCBFRiwgNjAsIDQwKSwgVigwNiwgOUYsIDcxLCA1RSksIFYoNTEsIDEwLCA2RSwgQkQpLCBcCi0gICAgVihGOSwgOEEsIDIxLCAzRSksIFYoM0QsIDA2LCBERCwgOTYpLCBWKEFFLCAwNSwgM0UsIEREKSwgVig0NiwgQkQsIEU2LCA0RCksIFwKLSAgICBWKEI1LCA4RCwgNTQsIDkxKSwgVigwNSwgNUQsIEM0LCA3MSksIFYoNkYsIEQ0LCAwNiwgMDQpLCBWKEZGLCAxNSwgNTAsIDYwKSwgXAotICAgIFYoMjQsIEZCLCA5OCwgMTkpLCBWKDk3LCBFOSwgQkQsIEQ2KSwgVihDQywgNDMsIDQwLCA4OSksIFYoNzcsIDlFLCBEOSwgNjcpLCBcCi0gICAgVihCRCwgNDIsIEU4LCBCMCksIFYoODgsIDhCLCA4OSwgMDcpLCBWKDM4LCA1QiwgMTksIEU3KSwgVihEQiwgRUUsIEM4LCA3OSksIFwKLSAgICBWKDQ3LCAwQSwgN0MsIEExKSwgVihFOSwgMEYsIDQyLCA3QyksIFYoQzksIDFFLCA4NCwgRjgpLCBWKDAwLCAwMCwgMDAsIDAwKSwgXAotICAgIFYoODMsIDg2LCA4MCwgMDkpLCBWKDQ4LCBFRCwgMkIsIDMyKSwgVihBQywgNzAsIDExLCAxRSksIFYoNEUsIDcyLCA1QSwgNkMpLCBcCi0gICAgVihGQiwgRkYsIDBFLCBGRCksIFYoNTYsIDM4LCA4NSwgMEYpLCBWKDFFLCBENSwgQUUsIDNEKSwgVigyNywgMzksIDJELCAzNiksIFwKLSAgICBWKDY0LCBEOSwgMEYsIDBBKSwgVigyMSwgQTYsIDVDLCA2OCksIFYoRDEsIDU0LCA1QiwgOUIpLCBWKDNBLCAyRSwgMzYsIDI0KSwgXAotICAgIFYoQjEsIDY3LCAwQSwgMEMpLCBWKDBGLCBFNywgNTcsIDkzKSwgVihEMiwgOTYsIEVFLCBCNCksIFYoOUUsIDkxLCA5QiwgMUIpLCBcCi0gICAgVig0RiwgQzUsIEMwLCA4MCksIFYoQTIsIDIwLCBEQywgNjEpLCBWKDY5LCA0QiwgNzcsIDVBKSwgVigxNiwgMUEsIDEyLCAxQyksIFwKLSAgICBWKDBBLCBCQSwgOTMsIEUyKSwgVihFNSwgMkEsIEEwLCBDMCksIFYoNDMsIEUwLCAyMiwgM0MpLCBWKDFELCAxNywgMUIsIDEyKSwgXAotICAgIFYoMEIsIDBELCAwOSwgMEUpLCBWKEFELCBDNywgOEIsIEYyKSwgVihCOSwgQTgsIEI2LCAyRCksIFYoQzgsIEE5LCAxRSwgMTQpLCBcCi0gICAgVig4NSwgMTksIEYxLCA1NyksIFYoNEMsIDA3LCA3NSwgQUYpLCBWKEJCLCBERCwgOTksIEVFKSwgVihGRCwgNjAsIDdGLCBBMyksIFwKLSAgICBWKDlGLCAyNiwgMDEsIEY3KSwgVihCQywgRjUsIDcyLCA1QyksIFYoQzUsIDNCLCA2NiwgNDQpLCBWKDM0LCA3RSwgRkIsIDVCKSwgXAotICAgIFYoNzYsIDI5LCA0MywgOEIpLCBWKERDLCBDNiwgMjMsIENCKSwgVig2OCwgRkMsIEVELCBCNiksIFYoNjMsIEYxLCBFNCwgQjgpLCBcCi0gICAgVihDQSwgREMsIDMxLCBENyksIFYoMTAsIDg1LCA2MywgNDIpLCBWKDQwLCAyMiwgOTcsIDEzKSwgVigyMCwgMTEsIEM2LCA4NCksIFwKLSAgICBWKDdELCAyNCwgNEEsIDg1KSwgVihGOCwgM0QsIEJCLCBEMiksIFYoMTEsIDMyLCBGOSwgQUUpLCBWKDZELCBBMSwgMjksIEM3KSwgXAotICAgIFYoNEIsIDJGLCA5RSwgMUQpLCBWKEYzLCAzMCwgQjIsIERDKSwgVihFQywgNTIsIDg2LCAwRCksIFYoRDAsIEUzLCBDMSwgNzcpLCBcCi0gICAgVig2QywgMTYsIEIzLCAyQiksIFYoOTksIEI5LCA3MCwgQTkpLCBWKEZBLCA0OCwgOTQsIDExKSwgVigyMiwgNjQsIEU5LCA0NyksIFwKLSAgICBWKEM0LCA4QywgRkMsIEE4KSwgVigxQSwgM0YsIEYwLCBBMCksIFYoRDgsIDJDLCA3RCwgNTYpLCBWKEVGLCA5MCwgMzMsIDIyKSwgXAotICAgIFYoQzcsIDRFLCA0OSwgODcpLCBWKEMxLCBEMSwgMzgsIEQ5KSwgVihGRSwgQTIsIENBLCA4QyksIFYoMzYsIDBCLCBENCwgOTgpLCBcCi0gICAgVihDRiwgODEsIEY1LCBBNiksIFYoMjgsIERFLCA3QSwgQTUpLCBWKDI2LCA4RSwgQjcsIERBKSwgVihBNCwgQkYsIEFELCAzRiksIFwKLSAgICBWKEU0LCA5RCwgM0EsIDJDKSwgVigwRCwgOTIsIDc4LCA1MCksIFYoOUIsIENDLCA1RiwgNkEpLCBWKDYyLCA0NiwgN0UsIDU0KSwgXAotICAgIFYoQzIsIDEzLCA4RCwgRjYpLCBWKEU4LCBCOCwgRDgsIDkwKSwgVig1RSwgRjcsIDM5LCAyRSksIFYoRjUsIEFGLCBDMywgODIpLCBcCi0gICAgVihCRSwgODAsIDVELCA5RiksIFYoN0MsIDkzLCBEMCwgNjkpLCBWKEE5LCAyRCwgRDUsIDZGKSwgVihCMywgMTIsIDI1LCBDRiksIFwKLSAgICBWKDNCLCA5OSwgQUMsIEM4KSwgVihBNywgN0QsIDE4LCAxMCksIFYoNkUsIDYzLCA5QywgRTgpLCBWKDdCLCBCQiwgM0IsIERCKSwgXAotICAgIFYoMDksIDc4LCAyNiwgQ0QpLCBWKEY0LCAxOCwgNTksIDZFKSwgVigwMSwgQjcsIDlBLCBFQyksIFYoQTgsIDlBLCA0RiwgODMpLCBcCi0gICAgVig2NSwgNkUsIDk1LCBFNiksIFYoN0UsIEU2LCBGRiwgQUEpLCBWKDA4LCBDRiwgQkMsIDIxKSwgVihFNiwgRTgsIDE1LCBFRiksIFwKLSAgICBWKEQ5LCA5QiwgRTcsIEJBKSwgVihDRSwgMzYsIDZGLCA0QSksIFYoRDQsIDA5LCA5RiwgRUEpLCBWKEQ2LCA3QywgQjAsIDI5KSwgXAotICAgIFYoQUYsIEIyLCBBNCwgMzEpLCBWKDMxLCAyMywgM0YsIDJBKSwgVigzMCwgOTQsIEE1LCBDNiksIFYoQzAsIDY2LCBBMiwgMzUpLCBcCi0gICAgVigzNywgQkMsIDRFLCA3NCksIFYoQTYsIENBLCA4MiwgRkMpLCBWKEIwLCBEMCwgOTAsIEUwKSwgVigxNSwgRDgsIEE3LCAzMyksIFwKLSAgICBWKDRBLCA5OCwgMDQsIEYxKSwgVihGNywgREEsIEVDLCA0MSksIFYoMEUsIDUwLCBDRCwgN0YpLCBWKDJGLCBGNiwgOTEsIDE3KSwgXAotICAgIFYoOEQsIEQ2LCA0RCwgNzYpLCBWKDRELCBCMCwgRUYsIDQzKSwgVig1NCwgNEQsIEFBLCBDQyksIFYoREYsIDA0LCA5NiwgRTQpLCBcCi0gICAgVihFMywgQjUsIEQxLCA5RSksIFYoMUIsIDg4LCA2QSwgNEMpLCBWKEI4LCAxRiwgMkMsIEMxKSwgVig3RiwgNTEsIDY1LCA0NiksIFwKLSAgICBWKDA0LCBFQSwgNUUsIDlEKSwgVig1RCwgMzUsIDhDLCAwMSksIFYoNzMsIDc0LCA4NywgRkEpLCBWKDJFLCA0MSwgMEIsIEZCKSwgXAotICAgIFYoNUEsIDFELCA2NywgQjMpLCBWKDUyLCBEMiwgREIsIDkyKSwgVigzMywgNTYsIDEwLCBFOSksIFYoMTMsIDQ3LCBENiwgNkQpLCBcCi0gICAgVig4QywgNjEsIEQ3LCA5QSksIFYoN0EsIDBDLCBBMSwgMzcpLCBWKDhFLCAxNCwgRjgsIDU5KSwgVig4OSwgM0MsIDEzLCBFQiksIFwKLSAgICBWKEVFLCAyNywgQTksIENFKSwgVigzNSwgQzksIDYxLCBCNyksIFYoRUQsIEU1LCAxQywgRTEpLCBWKDNDLCBCMSwgNDcsIDdBKSwgXAotICAgIFYoNTksIERGLCBEMiwgOUMpLCBWKDNGLCA3MywgRjIsIDU1KSwgVig3OSwgQ0UsIDE0LCAxOCksIFYoQkYsIDM3LCBDNywgNzMpLCBcCi0gICAgVihFQSwgQ0QsIEY3LCA1MyksIFYoNUIsIEFBLCBGRCwgNUYpLCBWKDE0LCA2RiwgM0QsIERGKSwgVig4NiwgREIsIDQ0LCA3OCksIFwKLSAgICBWKDgxLCBGMywgQUYsIENBKSwgVigzRSwgQzQsIDY4LCBCOSksIFYoMkMsIDM0LCAyNCwgMzgpLCBWKDVGLCA0MCwgQTMsIEMyKSwgXAotICAgIFYoNzIsIEMzLCAxRCwgMTYpLCBWKDBDLCAyNSwgRTIsIEJDKSwgVig4QiwgNDksIDNDLCAyOCksIFYoNDEsIDk1LCAwRCwgRkYpLCBcCi0gICAgVig3MSwgMDEsIEE4LCAzOSksIFYoREUsIEIzLCAwQywgMDgpLCBWKDlDLCBFNCwgQjQsIEQ4KSwgVig5MCwgQzEsIDU2LCA2NCksIFwKLSAgICBWKDYxLCA4NCwgQ0IsIDdCKSwgVig3MCwgQjYsIDMyLCBENSksIFYoNzQsIDVDLCA2QywgNDgpLCBWKDQyLCA1NywgQjgsIEQwKQotCi0KLSNkZWZpbmUgVihhLCBiLCBjLCBkKSAweCMjYSMjYiMjYyMjZAotTUJFRFRMU19NQVlCRV9VTlVTRUQgc3RhdGljIGNvbnN0IHVpbnQzMl90IFJUMFsyNTZdID0geyBSVCB9OwotI3VuZGVmIFYKLQotI2RlZmluZSBWKGEsIGIsIGMsIGQpIDB4IyNiIyNjIyNkIyNhCi1NQkVEVExTX01BWUJFX1VOVVNFRCBzdGF0aWMgY29uc3QgdWludDMyX3QgUlQxWzI1Nl0gPSB7IFJUIH07Ci0jdW5kZWYgVgotCi0jZGVmaW5lIFYoYSwgYiwgYywgZCkgMHgjI2MjI2QjI2EjI2IKLU1CRURUTFNfTUFZQkVfVU5VU0VEIHN0YXRpYyBjb25zdCB1aW50MzJfdCBSVDJbMjU2XSA9IHsgUlQgfTsKLSN1bmRlZiBWCi0KLSNkZWZpbmUgVihhLCBiLCBjLCBkKSAweCMjZCMjYSMjYiMjYwotTUJFRFRMU19NQVlCRV9VTlVTRUQgc3RhdGljIGNvbnN0IHVpbnQzMl90IFJUM1syNTZdID0geyBSVCB9OwotI3VuZGVmIFYKLQotI3VuZGVmIFJUCi0KLS8qCi0gKiBSb3VuZCBjb25zdGFudHMKLSAqLwotTUJFRFRMU19NQVlCRV9VTlVTRUQgc3RhdGljIGNvbnN0IHVpbnQzMl90IHJvdW5kX2NvbnN0YW50c1sxMF0gPQotewotICAgIDB4MDAwMDAwMDEsIDB4MDAwMDAwMDIsIDB4MDAwMDAwMDQsIDB4MDAwMDAwMDgsCi0gICAgMHgwMDAwMDAxMCwgMHgwMDAwMDAyMCwgMHgwMDAwMDA0MCwgMHgwMDAwMDA4MCwKLSAgICAweDAwMDAwMDFCLCAweDAwMDAwMDM2Ci19OwotCi0jZWxzZSAvKiBNQkVEVExTX0FFU19ST01fVEFCTEVTICovCi0KLS8qCi0gKiBGb3J3YXJkIFMtYm94ICYgdGFibGVzCi0gKi8KLU1CRURUTFNfTUFZQkVfVU5VU0VEIHN0YXRpYyB1bnNpZ25lZCBjaGFyIEZTYlsyNTZdOwotTUJFRFRMU19NQVlCRV9VTlVTRUQgc3RhdGljIHVpbnQzMl90IEZUMFsyNTZdOwotTUJFRFRMU19NQVlCRV9VTlVTRUQgc3RhdGljIHVpbnQzMl90IEZUMVsyNTZdOwotTUJFRFRMU19NQVlCRV9VTlVTRUQgc3RhdGljIHVpbnQzMl90IEZUMlsyNTZdOwotTUJFRFRMU19NQVlCRV9VTlVTRUQgc3RhdGljIHVpbnQzMl90IEZUM1syNTZdOwotCi0vKgotICogUmV2ZXJzZSBTLWJveCAmIHRhYmxlcwotICovCi1NQkVEVExTX01BWUJFX1VOVVNFRCBzdGF0aWMgdW5zaWduZWQgY2hhciBSU2JbMjU2XTsKLQotTUJFRFRMU19NQVlCRV9VTlVTRUQgc3RhdGljIHVpbnQzMl90IFJUMFsyNTZdOwotTUJFRFRMU19NQVlCRV9VTlVTRUQgc3RhdGljIHVpbnQzMl90IFJUMVsyNTZdOwotTUJFRFRMU19NQVlCRV9VTlVTRUQgc3RhdGljIHVpbnQzMl90IFJUMlsyNTZdOwotTUJFRFRMU19NQVlCRV9VTlVTRUQgc3RhdGljIHVpbnQzMl90IFJUM1syNTZdOwotCi0vKgotICogUm91bmQgY29uc3RhbnRzCi0gKi8KLU1CRURUTFNfTUFZQkVfVU5VU0VEIHN0YXRpYyB1aW50MzJfdCByb3VuZF9jb25zdGFudHNbMTBdOwotCi0vKgotICogVGFibGVzIGdlbmVyYXRpb24gY29kZQotICovCi0jZGVmaW5lIFJPVEw4KHgpICgoKHgpIDw8IDgpICYgMHhGRkZGRkZGRikgfCAoKHgpID4+IDI0KQotI2RlZmluZSBYVElNRSh4KSAoKCh4KSA8PCAxKSBeICgoKHgpICYgMHg4MCkgPyAweDFCIDogMHgwMCkpCi0jZGVmaW5lIE1VTCh4LCB5KSAoKCh4KSAmJiAoeSkpID8gcG93Wyhsb2dbKHgpXStsb2dbKHkpXSkgJSAyNTVdIDogMCkKLQotTUJFRFRMU19NQVlCRV9VTlVTRUQgc3RhdGljIGludCBhZXNfaW5pdF9kb25lID0gMDsKLQotTUJFRFRMU19NQVlCRV9VTlVTRUQgc3RhdGljIHZvaWQgYWVzX2dlbl90YWJsZXModm9pZCkKLXsKLSAgICBpbnQgaTsKLSAgICB1aW50OF90IHgsIHksIHo7Ci0gICAgdWludDhfdCBwb3dbMjU2XTsKLSAgICB1aW50OF90IGxvZ1syNTZdOwotCi0gICAgLyoKLSAgICAgKiBjb21wdXRlIHBvdyBhbmQgbG9nIHRhYmxlcyBvdmVyIEdGKDJeOCkKLSAgICAgKi8KLSAgICBmb3IgKGkgPSAwLCB4ID0gMTsgaSA8IDI1NjsgaSsrKSB7Ci0gICAgICAgIHBvd1tpXSA9IHg7Ci0gICAgICAgIGxvZ1t4XSA9ICh1aW50OF90KSBpOwotICAgICAgICB4IF49IFhUSU1FKHgpOwotICAgIH0KLQotICAgIC8qCi0gICAgICogY2FsY3VsYXRlIHRoZSByb3VuZCBjb25zdGFudHMKLSAgICAgKi8KLSAgICBmb3IgKGkgPSAwLCB4ID0gMTsgaSA8IDEwOyBpKyspIHsKLSAgICAgICAgcm91bmRfY29uc3RhbnRzW2ldID0geDsKLSAgICAgICAgeCA9IFhUSU1FKHgpOwotICAgIH0KLQotICAgIC8qCi0gICAgICogZ2VuZXJhdGUgdGhlIGZvcndhcmQgYW5kIHJldmVyc2UgUy1ib3hlcwotICAgICAqLwotICAgIEZTYlsweDAwXSA9IDB4NjM7Ci0jaWYgZGVmaW5lZChNQkVEVExTX0FFU19ORUVEX1JFVkVSU0VfVEFCTEVTKQotICAgIFJTYlsweDYzXSA9IDB4MDA7Ci0jZW5kaWYKLQotICAgIGZvciAoaSA9IDE7IGkgPCAyNTY7IGkrKykgewotICAgICAgICB4ID0gcG93WzI1NSAtIGxvZ1tpXV07Ci0KLSAgICAgICAgeSAgPSB4OyB5ID0gKHkgPDwgMSkgfCAoeSA+PiA3KTsKLSAgICAgICAgeCBePSB5OyB5ID0gKHkgPDwgMSkgfCAoeSA+PiA3KTsKLSAgICAgICAgeCBePSB5OyB5ID0gKHkgPDwgMSkgfCAoeSA+PiA3KTsKLSAgICAgICAgeCBePSB5OyB5ID0gKHkgPDwgMSkgfCAoeSA+PiA3KTsKLSAgICAgICAgeCBePSB5IF4gMHg2MzsKLQotICAgICAgICBGU2JbaV0gPSB4OwotI2lmIGRlZmluZWQoTUJFRFRMU19BRVNfTkVFRF9SRVZFUlNFX1RBQkxFUykKLSAgICAgICAgUlNiW3hdID0gKHVuc2lnbmVkIGNoYXIpIGk7Ci0jZW5kaWYKLSAgICB9Ci0KLSAgICAvKgotICAgICAqIGdlbmVyYXRlIHRoZSBmb3J3YXJkIGFuZCByZXZlcnNlIHRhYmxlcwotICAgICAqLwotICAgIGZvciAoaSA9IDA7IGkgPCAyNTY7IGkrKykgewotICAgICAgICB4ID0gRlNiW2ldOwotICAgICAgICB5ID0gWFRJTUUoeCk7Ci0gICAgICAgIHogPSB5IF4geDsKLQotICAgICAgICBGVDBbaV0gPSAoKHVpbnQzMl90KSB5KSBeCi0gICAgICAgICAgICAgICAgICgodWludDMyX3QpIHggPDwgIDgpIF4KLSAgICAgICAgICAgICAgICAgKCh1aW50MzJfdCkgeCA8PCAxNikgXgotICAgICAgICAgICAgICAgICAoKHVpbnQzMl90KSB6IDw8IDI0KTsKLQotI2lmICFkZWZpbmVkKE1CRURUTFNfQUVTX0ZFV0VSX1RBQkxFUykKLSAgICAgICAgRlQxW2ldID0gUk9UTDgoRlQwW2ldKTsKLSAgICAgICAgRlQyW2ldID0gUk9UTDgoRlQxW2ldKTsKLSAgICAgICAgRlQzW2ldID0gUk9UTDgoRlQyW2ldKTsKLSNlbmRpZiAvKiAhTUJFRFRMU19BRVNfRkVXRVJfVEFCTEVTICovCi0KLSNpZiBkZWZpbmVkKE1CRURUTFNfQUVTX05FRURfUkVWRVJTRV9UQUJMRVMpCi0gICAgICAgIHggPSBSU2JbaV07Ci0KLSAgICAgICAgUlQwW2ldID0gKCh1aW50MzJfdCkgTVVMKDB4MEUsIHgpKSBeCi0gICAgICAgICAgICAgICAgICgodWludDMyX3QpIE1VTCgweDA5LCB4KSA8PCAgOCkgXgotICAgICAgICAgICAgICAgICAoKHVpbnQzMl90KSBNVUwoMHgwRCwgeCkgPDwgMTYpIF4KLSAgICAgICAgICAgICAgICAgKCh1aW50MzJfdCkgTVVMKDB4MEIsIHgpIDw8IDI0KTsKLQotI2lmICFkZWZpbmVkKE1CRURUTFNfQUVTX0ZFV0VSX1RBQkxFUykKLSAgICAgICAgUlQxW2ldID0gUk9UTDgoUlQwW2ldKTsKLSAgICAgICAgUlQyW2ldID0gUk9UTDgoUlQxW2ldKTsKLSAgICAgICAgUlQzW2ldID0gUk9UTDgoUlQyW2ldKTsKLSNlbmRpZiAvKiAhTUJFRFRMU19BRVNfRkVXRVJfVEFCTEVTICovCi0jZW5kaWYgLyogTUJFRFRMU19BRVNfTkVFRF9SRVZFUlNFX1RBQkxFUyAqLwotICAgIH0KLX0KLQotI3VuZGVmIFJPVEw4Ci0KLSNlbmRpZiAvKiBNQkVEVExTX0FFU19ST01fVEFCTEVTICovCi0KLSNpZiBkZWZpbmVkKE1CRURUTFNfQUVTX0ZFV0VSX1RBQkxFUykKLQotI2RlZmluZSBST1RMOCh4KSAgKCh1aW50MzJfdCkgKCh4KSA8PCAgOCkgKyAodWludDMyX3QpICgoeCkgPj4gMjQpKQotI2RlZmluZSBST1RMMTYoeCkgKCh1aW50MzJfdCkgKCh4KSA8PCAxNikgKyAodWludDMyX3QpICgoeCkgPj4gMTYpKQotI2RlZmluZSBST1RMMjQoeCkgKCh1aW50MzJfdCkgKCh4KSA8PCAyNCkgKyAodWludDMyX3QpICgoeCkgPj4gIDgpKQotCi0jZGVmaW5lIEFFU19SVDAoaWR4KSBSVDBbaWR4XQotI2RlZmluZSBBRVNfUlQxKGlkeCkgUk9UTDgoUlQwW2lkeF0pCi0jZGVmaW5lIEFFU19SVDIoaWR4KSBST1RMMTYoUlQwW2lkeF0pCi0jZGVmaW5lIEFFU19SVDMoaWR4KSBST1RMMjQoUlQwW2lkeF0pCi0KLSNkZWZpbmUgQUVTX0ZUMChpZHgpIEZUMFtpZHhdCi0jZGVmaW5lIEFFU19GVDEoaWR4KSBST1RMOChGVDBbaWR4XSkKLSNkZWZpbmUgQUVTX0ZUMihpZHgpIFJPVEwxNihGVDBbaWR4XSkKLSNkZWZpbmUgQUVTX0ZUMyhpZHgpIFJPVEwyNChGVDBbaWR4XSkKLQotI2Vsc2UgLyogTUJFRFRMU19BRVNfRkVXRVJfVEFCTEVTICovCi0KLSNkZWZpbmUgQUVTX1JUMChpZHgpIFJUMFtpZHhdCi0jZGVmaW5lIEFFU19SVDEoaWR4KSBSVDFbaWR4XQotI2RlZmluZSBBRVNfUlQyKGlkeCkgUlQyW2lkeF0KLSNkZWZpbmUgQUVTX1JUMyhpZHgpIFJUM1tpZHhdCi0KLSNkZWZpbmUgQUVTX0ZUMChpZHgpIEZUMFtpZHhdCi0jZGVmaW5lIEFFU19GVDEoaWR4KSBGVDFbaWR4XQotI2RlZmluZSBBRVNfRlQyKGlkeCkgRlQyW2lkeF0KLSNkZWZpbmUgQUVTX0ZUMyhpZHgpIEZUM1tpZHhdCi0KLSNlbmRpZiAvKiBNQkVEVExTX0FFU19GRVdFUl9UQUJMRVMgKi8KLQotdm9pZCBtYmVkdGxzX2Flc19pbml0KG1iZWR0bHNfYWVzX2NvbnRleHQgKmN0eCkKLXsKLSAgICBtZW1zZXQoY3R4LCAwLCBzaXplb2YobWJlZHRsc19hZXNfY29udGV4dCkpOwotfQotCi12b2lkIG1iZWR0bHNfYWVzX2ZyZWUobWJlZHRsc19hZXNfY29udGV4dCAqY3R4KQotewotICAgIGlmIChjdHggPT0gTlVMTCkgewotICAgICAgICByZXR1cm47Ci0gICAgfQotCi0gICAgbWJlZHRsc19wbGF0Zm9ybV96ZXJvaXplKGN0eCwgc2l6ZW9mKG1iZWR0bHNfYWVzX2NvbnRleHQpKTsKLX0KLQotI2lmIGRlZmluZWQoTUJFRFRMU19DSVBIRVJfTU9ERV9YVFMpCi12b2lkIG1iZWR0bHNfYWVzX3h0c19pbml0KG1iZWR0bHNfYWVzX3h0c19jb250ZXh0ICpjdHgpCi17Ci0gICAgbWJlZHRsc19hZXNfaW5pdCgmY3R4LT5jcnlwdCk7Ci0gICAgbWJlZHRsc19hZXNfaW5pdCgmY3R4LT50d2Vhayk7Ci19Ci0KLXZvaWQgbWJlZHRsc19hZXNfeHRzX2ZyZWUobWJlZHRsc19hZXNfeHRzX2NvbnRleHQgKmN0eCkKLXsKLSAgICBpZiAoY3R4ID09IE5VTEwpIHsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLQotICAgIG1iZWR0bHNfYWVzX2ZyZWUoJmN0eC0+Y3J5cHQpOwotICAgIG1iZWR0bHNfYWVzX2ZyZWUoJmN0eC0+dHdlYWspOwotfQotI2VuZGlmIC8qIE1CRURUTFNfQ0lQSEVSX01PREVfWFRTICovCi0KLS8qIFNvbWUgaW1wbGVtZW50YXRpb25zIG5lZWQgdGhlIHJvdW5kIGtleXMgdG8gYmUgYWxpZ25lZC4KLSAqIFJldHVybiBhbiBvZmZzZXQgdG8gYmUgYWRkZWQgdG8gYnVmLCBzdWNoIHRoYXQgKGJ1ZiArIG9mZnNldCkgaXMKLSAqIGNvcnJlY3RseSBhbGlnbmVkLgotICogTm90ZSB0aGF0IHRoZSBvZmZzZXQgaXMgaW4gdW5pdHMgb2YgZWxlbWVudHMgb2YgYnVmLCBpLmUuIDMyLWJpdCB3b3JkcywKLSAqIGkuZS4gYW4gb2Zmc2V0IG9mIDEgbWVhbnMgNCBieXRlcyBhbmQgc28gb24uCi0gKi8KLSNpZiAoZGVmaW5lZChNQkVEVExTX1ZJQV9QQURMT0NLX0hBVkVfQ09ERSkpIHx8ICAgICAgICBcCi0gICAgKGRlZmluZWQoTUJFRFRMU19BRVNOSV9DKSAmJiBNQkVEVExTX0FFU05JX0hBVkVfQ09ERSA9PSAyKQotI2RlZmluZSBNQVlfTkVFRF9UT19BTElHTgotI2VuZGlmCi0KLU1CRURUTFNfTUFZQkVfVU5VU0VEIHN0YXRpYyB1bnNpZ25lZCBtYmVkdGxzX2Flc19ya19vZmZzZXQodWludDMyX3QgKmJ1ZikKLXsKLSNpZiBkZWZpbmVkKE1BWV9ORUVEX1RPX0FMSUdOKQotICAgIGludCBhbGlnbl8xNl9ieXRlcyA9IDA7Ci0KLSNpZiBkZWZpbmVkKE1CRURUTFNfVklBX1BBRExPQ0tfSEFWRV9DT0RFKQotICAgIGlmIChhZXNfcGFkbG9ja19hY2UgPT0gLTEpIHsKLSAgICAgICAgYWVzX3BhZGxvY2tfYWNlID0gbWJlZHRsc19wYWRsb2NrX2hhc19zdXBwb3J0KE1CRURUTFNfUEFETE9DS19BQ0UpOwotICAgIH0KLSAgICBpZiAoYWVzX3BhZGxvY2tfYWNlKSB7Ci0gICAgICAgIGFsaWduXzE2X2J5dGVzID0gMTsKLSAgICB9Ci0jZW5kaWYKLQotI2lmIGRlZmluZWQoTUJFRFRMU19BRVNOSV9DKSAmJiBNQkVEVExTX0FFU05JX0hBVkVfQ09ERSA9PSAyCi0gICAgaWYgKG1iZWR0bHNfYWVzbmlfaGFzX3N1cHBvcnQoTUJFRFRMU19BRVNOSV9BRVMpKSB7Ci0gICAgICAgIGFsaWduXzE2X2J5dGVzID0gMTsKLSAgICB9Ci0jZW5kaWYKLQotICAgIGlmIChhbGlnbl8xNl9ieXRlcykgewotICAgICAgICAvKiBUaGVzZSBpbXBsZW1lbnRhdGlvbnMgbmVlZHMgMTYtYnl0ZSBhbGlnbm1lbnQKLSAgICAgICAgICogZm9yIHRoZSByb3VuZCBrZXkgYXJyYXkuICovCi0gICAgICAgIHVuc2lnbmVkIGRlbHRhID0gKCh1aW50cHRyX3QpIGJ1ZiAmIDB4MDAwMDAwMGZVKSAvIDQ7Ci0gICAgICAgIGlmIChkZWx0YSA9PSAwKSB7Ci0gICAgICAgICAgICByZXR1cm4gMDsKLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIHJldHVybiA0IC0gZGVsdGE7IC8vIDE2IGJ5dGVzID0gNCB1aW50MzJfdAotICAgICAgICB9Ci0gICAgfQotI2Vsc2UgLyogTUFZX05FRURfVE9fQUxJR04gKi8KLSAgICAodm9pZCkgYnVmOwotI2VuZGlmIC8qIE1BWV9ORUVEX1RPX0FMSUdOICovCi0KLSAgICByZXR1cm4gMDsKLX0KLQotLyoKLSAqIEFFUyBrZXkgc2NoZWR1bGUgKGVuY3J5cHRpb24pCi0gKi8KLSNpZiAhZGVmaW5lZChNQkVEVExTX0FFU19TRVRLRVlfRU5DX0FMVCkKLWludCBtYmVkdGxzX2Flc19zZXRrZXlfZW5jKG1iZWR0bHNfYWVzX2NvbnRleHQgKmN0eCwgY29uc3QgdW5zaWduZWQgY2hhciAqa2V5LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50IGtleWJpdHMpCi17Ci0gICAgdWludDMyX3QgKlJLOwotCi0gICAgc3dpdGNoIChrZXliaXRzKSB7Ci0gICAgICAgIGNhc2UgMTI4OiBjdHgtPm5yID0gMTA7IGJyZWFrOwotI2lmICFkZWZpbmVkKE1CRURUTFNfQUVTX09OTFlfMTI4X0JJVF9LRVlfTEVOR1RIKQotICAgICAgICBjYXNlIDE5MjogY3R4LT5uciA9IDEyOyBicmVhazsKLSAgICAgICAgY2FzZSAyNTY6IGN0eC0+bnIgPSAxNDsgYnJlYWs7Ci0jZW5kaWYgLyogIU1CRURUTFNfQUVTX09OTFlfMTI4X0JJVF9LRVlfTEVOR1RIICovCi0gICAgICAgIGRlZmF1bHQ6IHJldHVybiBNQkVEVExTX0VSUl9BRVNfSU5WQUxJRF9LRVlfTEVOR1RIOwotICAgIH0KLQotI2lmICFkZWZpbmVkKE1CRURUTFNfQUVTX1JPTV9UQUJMRVMpCi0gICAgaWYgKGFlc19pbml0X2RvbmUgPT0gMCkgewotICAgICAgICBhZXNfZ2VuX3RhYmxlcygpOwotICAgICAgICBhZXNfaW5pdF9kb25lID0gMTsKLSAgICB9Ci0jZW5kaWYKLQotICAgIGN0eC0+cmtfb2Zmc2V0ID0gbWJlZHRsc19hZXNfcmtfb2Zmc2V0KGN0eC0+YnVmKTsKLSAgICBSSyA9IGN0eC0+YnVmICsgY3R4LT5ya19vZmZzZXQ7Ci0KLSNpZiBkZWZpbmVkKE1CRURUTFNfQUVTTklfSEFWRV9DT0RFKQotICAgIGlmIChtYmVkdGxzX2Flc25pX2hhc19zdXBwb3J0KE1CRURUTFNfQUVTTklfQUVTKSkgewotICAgICAgICByZXR1cm4gbWJlZHRsc19hZXNuaV9zZXRrZXlfZW5jKCh1bnNpZ25lZCBjaGFyICopIFJLLCBrZXksIGtleWJpdHMpOwotICAgIH0KLSNlbmRpZgotCi0jaWYgZGVmaW5lZChNQkVEVExTX0FFU0NFX0hBVkVfQ09ERSkKLSAgICBpZiAoTUJFRFRMU19BRVNDRV9IQVNfU1VQUE9SVCgpKSB7Ci0gICAgICAgIHJldHVybiBtYmVkdGxzX2Flc2NlX3NldGtleV9lbmMoKHVuc2lnbmVkIGNoYXIgKikgUkssIGtleSwga2V5Yml0cyk7Ci0gICAgfQotI2VuZGlmCi0KLSNpZiAhZGVmaW5lZChNQkVEVExTX0FFU19VU0VfSEFSRFdBUkVfT05MWSkKLSAgICBmb3IgKHVuc2lnbmVkIGludCBpID0gMDsgaSA8IChrZXliaXRzID4+IDUpOyBpKyspIHsKLSAgICAgICAgUktbaV0gPSBNQkVEVExTX0dFVF9VSU5UMzJfTEUoa2V5LCBpIDw8IDIpOwotICAgIH0KLQotICAgIHN3aXRjaCAoY3R4LT5ucikgewotICAgICAgICBjYXNlIDEwOgotCi0gICAgICAgICAgICBmb3IgKHVuc2lnbmVkIGludCBpID0gMDsgaSA8IDEwOyBpKyssIFJLICs9IDQpIHsKLSAgICAgICAgICAgICAgICBSS1s0XSAgPSBSS1swXSBeIHJvdW5kX2NvbnN0YW50c1tpXSBeCi0gICAgICAgICAgICAgICAgICAgICAgICAgKCh1aW50MzJfdCkgRlNiW01CRURUTFNfQllURV8xKFJLWzNdKV0pIF4KLSAgICAgICAgICAgICAgICAgICAgICAgICAoKHVpbnQzMl90KSBGU2JbTUJFRFRMU19CWVRFXzIoUktbM10pXSA8PCAgOCkgXgotICAgICAgICAgICAgICAgICAgICAgICAgICgodWludDMyX3QpIEZTYltNQkVEVExTX0JZVEVfMyhSS1szXSldIDw8IDE2KSBeCi0gICAgICAgICAgICAgICAgICAgICAgICAgKCh1aW50MzJfdCkgRlNiW01CRURUTFNfQllURV8wKFJLWzNdKV0gPDwgMjQpOwotCi0gICAgICAgICAgICAgICAgUktbNV0gID0gUktbMV0gXiBSS1s0XTsKLSAgICAgICAgICAgICAgICBSS1s2XSAgPSBSS1syXSBeIFJLWzVdOwotICAgICAgICAgICAgICAgIFJLWzddICA9IFJLWzNdIF4gUktbNl07Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBicmVhazsKLQotI2lmICFkZWZpbmVkKE1CRURUTFNfQUVTX09OTFlfMTI4X0JJVF9LRVlfTEVOR1RIKQotICAgICAgICBjYXNlIDEyOgotCi0gICAgICAgICAgICBmb3IgKHVuc2lnbmVkIGludCBpID0gMDsgaSA8IDg7IGkrKywgUksgKz0gNikgewotICAgICAgICAgICAgICAgIFJLWzZdICA9IFJLWzBdIF4gcm91bmRfY29uc3RhbnRzW2ldIF4KLSAgICAgICAgICAgICAgICAgICAgICAgICAoKHVpbnQzMl90KSBGU2JbTUJFRFRMU19CWVRFXzEoUktbNV0pXSkgXgotICAgICAgICAgICAgICAgICAgICAgICAgICgodWludDMyX3QpIEZTYltNQkVEVExTX0JZVEVfMihSS1s1XSldIDw8ICA4KSBeCi0gICAgICAgICAgICAgICAgICAgICAgICAgKCh1aW50MzJfdCkgRlNiW01CRURUTFNfQllURV8zKFJLWzVdKV0gPDwgMTYpIF4KLSAgICAgICAgICAgICAgICAgICAgICAgICAoKHVpbnQzMl90KSBGU2JbTUJFRFRMU19CWVRFXzAoUktbNV0pXSA8PCAyNCk7Ci0KLSAgICAgICAgICAgICAgICBSS1s3XSAgPSBSS1sxXSBeIFJLWzZdOwotICAgICAgICAgICAgICAgIFJLWzhdICA9IFJLWzJdIF4gUktbN107Ci0gICAgICAgICAgICAgICAgUktbOV0gID0gUktbM10gXiBSS1s4XTsKLSAgICAgICAgICAgICAgICBSS1sxMF0gPSBSS1s0XSBeIFJLWzldOwotICAgICAgICAgICAgICAgIFJLWzExXSA9IFJLWzVdIF4gUktbMTBdOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgYnJlYWs7Ci0KLSAgICAgICAgY2FzZSAxNDoKLQotICAgICAgICAgICAgZm9yICh1bnNpZ25lZCBpbnQgaSA9IDA7IGkgPCA3OyBpKyssIFJLICs9IDgpIHsKLSAgICAgICAgICAgICAgICBSS1s4XSAgPSBSS1swXSBeIHJvdW5kX2NvbnN0YW50c1tpXSBeCi0gICAgICAgICAgICAgICAgICAgICAgICAgKCh1aW50MzJfdCkgRlNiW01CRURUTFNfQllURV8xKFJLWzddKV0pIF4KLSAgICAgICAgICAgICAgICAgICAgICAgICAoKHVpbnQzMl90KSBGU2JbTUJFRFRMU19CWVRFXzIoUktbN10pXSA8PCAgOCkgXgotICAgICAgICAgICAgICAgICAgICAgICAgICgodWludDMyX3QpIEZTYltNQkVEVExTX0JZVEVfMyhSS1s3XSldIDw8IDE2KSBeCi0gICAgICAgICAgICAgICAgICAgICAgICAgKCh1aW50MzJfdCkgRlNiW01CRURUTFNfQllURV8wKFJLWzddKV0gPDwgMjQpOwotCi0gICAgICAgICAgICAgICAgUktbOV0gID0gUktbMV0gXiBSS1s4XTsKLSAgICAgICAgICAgICAgICBSS1sxMF0gPSBSS1syXSBeIFJLWzldOwotICAgICAgICAgICAgICAgIFJLWzExXSA9IFJLWzNdIF4gUktbMTBdOwotCi0gICAgICAgICAgICAgICAgUktbMTJdID0gUktbNF0gXgotICAgICAgICAgICAgICAgICAgICAgICAgICgodWludDMyX3QpIEZTYltNQkVEVExTX0JZVEVfMChSS1sxMV0pXSkgXgotICAgICAgICAgICAgICAgICAgICAgICAgICgodWludDMyX3QpIEZTYltNQkVEVExTX0JZVEVfMShSS1sxMV0pXSA8PCAgOCkgXgotICAgICAgICAgICAgICAgICAgICAgICAgICgodWludDMyX3QpIEZTYltNQkVEVExTX0JZVEVfMihSS1sxMV0pXSA8PCAxNikgXgotICAgICAgICAgICAgICAgICAgICAgICAgICgodWludDMyX3QpIEZTYltNQkVEVExTX0JZVEVfMyhSS1sxMV0pXSA8PCAyNCk7Ci0KLSAgICAgICAgICAgICAgICBSS1sxM10gPSBSS1s1XSBeIFJLWzEyXTsKLSAgICAgICAgICAgICAgICBSS1sxNF0gPSBSS1s2XSBeIFJLWzEzXTsKLSAgICAgICAgICAgICAgICBSS1sxNV0gPSBSS1s3XSBeIFJLWzE0XTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGJyZWFrOwotI2VuZGlmIC8qICFNQkVEVExTX0FFU19PTkxZXzEyOF9CSVRfS0VZX0xFTkdUSCAqLwotICAgIH0KLQotICAgIHJldHVybiAwOwotI2VuZGlmIC8qICFNQkVEVExTX0FFU19VU0VfSEFSRFdBUkVfT05MWSAqLwotfQotI2VuZGlmIC8qICFNQkVEVExTX0FFU19TRVRLRVlfRU5DX0FMVCAqLwotCi0vKgotICogQUVTIGtleSBzY2hlZHVsZSAoZGVjcnlwdGlvbikKLSAqLwotI2lmICFkZWZpbmVkKE1CRURUTFNfQUVTX1NFVEtFWV9ERUNfQUxUKSAmJiAhZGVmaW5lZChNQkVEVExTX0JMT0NLX0NJUEhFUl9OT19ERUNSWVBUKQotaW50IG1iZWR0bHNfYWVzX3NldGtleV9kZWMobWJlZHRsc19hZXNfY29udGV4dCAqY3R4LCBjb25zdCB1bnNpZ25lZCBjaGFyICprZXksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQga2V5Yml0cykKLXsKLSNpZiAhZGVmaW5lZChNQkVEVExTX0FFU19VU0VfSEFSRFdBUkVfT05MWSkKLSAgICB1aW50MzJfdCAqU0s7Ci0jZW5kaWYKLSAgICBpbnQgcmV0OwotICAgIG1iZWR0bHNfYWVzX2NvbnRleHQgY3R5OwotICAgIHVpbnQzMl90ICpSSzsKLQotCi0gICAgbWJlZHRsc19hZXNfaW5pdCgmY3R5KTsKLQotICAgIGN0eC0+cmtfb2Zmc2V0ID0gbWJlZHRsc19hZXNfcmtfb2Zmc2V0KGN0eC0+YnVmKTsKLSAgICBSSyA9IGN0eC0+YnVmICsgY3R4LT5ya19vZmZzZXQ7Ci0KLSAgICAvKiBBbHNvIGNoZWNrcyBrZXliaXRzICovCi0gICAgaWYgKChyZXQgPSBtYmVkdGxzX2Flc19zZXRrZXlfZW5jKCZjdHksIGtleSwga2V5Yml0cykpICE9IDApIHsKLSAgICAgICAgZ290byBleGl0OwotICAgIH0KLQotICAgIGN0eC0+bnIgPSBjdHkubnI7Ci0KLSNpZiBkZWZpbmVkKE1CRURUTFNfQUVTTklfSEFWRV9DT0RFKQotICAgIGlmIChtYmVkdGxzX2Flc25pX2hhc19zdXBwb3J0KE1CRURUTFNfQUVTTklfQUVTKSkgewotICAgICAgICBtYmVkdGxzX2Flc25pX2ludmVyc2Vfa2V5KCh1bnNpZ25lZCBjaGFyICopIFJLLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjb25zdCB1bnNpZ25lZCBjaGFyICopIChjdHkuYnVmICsgY3R5LnJrX29mZnNldCksIGN0eC0+bnIpOwotICAgICAgICBnb3RvIGV4aXQ7Ci0gICAgfQotI2VuZGlmCi0KLSNpZiBkZWZpbmVkKE1CRURUTFNfQUVTQ0VfSEFWRV9DT0RFKQotICAgIGlmIChNQkVEVExTX0FFU0NFX0hBU19TVVBQT1JUKCkpIHsKLSAgICAgICAgbWJlZHRsc19hZXNjZV9pbnZlcnNlX2tleSgKLSAgICAgICAgICAgICh1bnNpZ25lZCBjaGFyICopIFJLLAotICAgICAgICAgICAgKGNvbnN0IHVuc2lnbmVkIGNoYXIgKikgKGN0eS5idWYgKyBjdHkucmtfb2Zmc2V0KSwKLSAgICAgICAgICAgIGN0eC0+bnIpOwotICAgICAgICBnb3RvIGV4aXQ7Ci0gICAgfQotI2VuZGlmCi0KLSNpZiAhZGVmaW5lZChNQkVEVExTX0FFU19VU0VfSEFSRFdBUkVfT05MWSkKLSAgICBTSyA9IGN0eS5idWYgKyBjdHkucmtfb2Zmc2V0ICsgY3R5Lm5yICogNDsKLQotICAgICpSSysrID0gKlNLKys7Ci0gICAgKlJLKysgPSAqU0srKzsKLSAgICAqUksrKyA9ICpTSysrOwotICAgICpSSysrID0gKlNLKys7Ci0gICAgU0sgLT0gODsKLSAgICBmb3IgKGludCBpID0gY3R4LT5uciAtIDE7IGkgPiAwOyBpLS0sIFNLIC09IDgpIHsKLSAgICAgICAgZm9yIChpbnQgaiA9IDA7IGogPCA0OyBqKyssIFNLKyspIHsKLSAgICAgICAgICAgICpSSysrID0gQUVTX1JUMChGU2JbTUJFRFRMU19CWVRFXzAoKlNLKV0pIF4KLSAgICAgICAgICAgICAgICAgICAgQUVTX1JUMShGU2JbTUJFRFRMU19CWVRFXzEoKlNLKV0pIF4KLSAgICAgICAgICAgICAgICAgICAgQUVTX1JUMihGU2JbTUJFRFRMU19CWVRFXzIoKlNLKV0pIF4KLSAgICAgICAgICAgICAgICAgICAgQUVTX1JUMyhGU2JbTUJFRFRMU19CWVRFXzMoKlNLKV0pOwotICAgICAgICB9Ci0gICAgfQotCi0gICAgKlJLKysgPSAqU0srKzsKLSAgICAqUksrKyA9ICpTSysrOwotICAgICpSSysrID0gKlNLKys7Ci0gICAgKlJLKysgPSAqU0srKzsKLSNlbmRpZiAvKiAhTUJFRFRMU19BRVNfVVNFX0hBUkRXQVJFX09OTFkgKi8KLWV4aXQ6Ci0gICAgbWJlZHRsc19hZXNfZnJlZSgmY3R5KTsKLQotICAgIHJldHVybiByZXQ7Ci19Ci0jZW5kaWYgLyogIU1CRURUTFNfQUVTX1NFVEtFWV9ERUNfQUxUICYmICFNQkVEVExTX0JMT0NLX0NJUEhFUl9OT19ERUNSWVBUICovCi0KLSNpZiBkZWZpbmVkKE1CRURUTFNfQ0lQSEVSX01PREVfWFRTKQotc3RhdGljIGludCBtYmVkdGxzX2Flc194dHNfZGVjb2RlX2tleXMoY29uc3QgdW5zaWduZWQgY2hhciAqa2V5LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50IGtleWJpdHMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1bnNpZ25lZCBjaGFyICoqa2V5MSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCAqa2V5MWJpdHMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1bnNpZ25lZCBjaGFyICoqa2V5MiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCAqa2V5MmJpdHMpCi17Ci0gICAgY29uc3QgdW5zaWduZWQgaW50IGhhbGZfa2V5Yml0cyA9IGtleWJpdHMgLyAyOwotICAgIGNvbnN0IHVuc2lnbmVkIGludCBoYWxmX2tleWJ5dGVzID0gaGFsZl9rZXliaXRzIC8gODsKLQotICAgIHN3aXRjaCAoa2V5Yml0cykgewotICAgICAgICBjYXNlIDI1NjogYnJlYWs7Ci0gICAgICAgIGNhc2UgNTEyOiBicmVhazsKLSAgICAgICAgZGVmYXVsdDogcmV0dXJuIE1CRURUTFNfRVJSX0FFU19JTlZBTElEX0tFWV9MRU5HVEg7Ci0gICAgfQotCi0gICAgKmtleTFiaXRzID0gaGFsZl9rZXliaXRzOwotICAgICprZXkyYml0cyA9IGhhbGZfa2V5Yml0czsKLSAgICAqa2V5MSA9ICZrZXlbMF07Ci0gICAgKmtleTIgPSAma2V5W2hhbGZfa2V5Ynl0ZXNdOwotCi0gICAgcmV0dXJuIDA7Ci19Ci0KLWludCBtYmVkdGxzX2Flc194dHNfc2V0a2V5X2VuYyhtYmVkdGxzX2Flc194dHNfY29udGV4dCAqY3R4LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgKmtleSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQga2V5Yml0cykKLXsKLSAgICBpbnQgcmV0ID0gTUJFRFRMU19FUlJfRVJST1JfQ09SUlVQVElPTl9ERVRFQ1RFRDsKLSAgICBjb25zdCB1bnNpZ25lZCBjaGFyICprZXkxLCAqa2V5MjsKLSAgICB1bnNpZ25lZCBpbnQga2V5MWJpdHMsIGtleTJiaXRzOwotCi0gICAgcmV0ID0gbWJlZHRsc19hZXNfeHRzX2RlY29kZV9rZXlzKGtleSwga2V5Yml0cywgJmtleTEsICZrZXkxYml0cywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJmtleTIsICZrZXkyYml0cyk7Ci0gICAgaWYgKHJldCAhPSAwKSB7Ci0gICAgICAgIHJldHVybiByZXQ7Ci0gICAgfQotCi0gICAgLyogU2V0IHRoZSB0d2VhayBrZXkuIEFsd2F5cyBzZXQgdHdlYWsga2V5IGZvciB0aGUgZW5jcnlwdGlvbiBtb2RlLiAqLwotICAgIHJldCA9IG1iZWR0bHNfYWVzX3NldGtleV9lbmMoJmN0eC0+dHdlYWssIGtleTIsIGtleTJiaXRzKTsKLSAgICBpZiAocmV0ICE9IDApIHsKLSAgICAgICAgcmV0dXJuIHJldDsKLSAgICB9Ci0KLSAgICAvKiBTZXQgY3J5cHQga2V5IGZvciBlbmNyeXB0aW9uLiAqLwotICAgIHJldHVybiBtYmVkdGxzX2Flc19zZXRrZXlfZW5jKCZjdHgtPmNyeXB0LCBrZXkxLCBrZXkxYml0cyk7Ci19Ci0KLWludCBtYmVkdGxzX2Flc194dHNfc2V0a2V5X2RlYyhtYmVkdGxzX2Flc194dHNfY29udGV4dCAqY3R4LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgKmtleSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQga2V5Yml0cykKLXsKLSAgICBpbnQgcmV0ID0gTUJFRFRMU19FUlJfRVJST1JfQ09SUlVQVElPTl9ERVRFQ1RFRDsKLSAgICBjb25zdCB1bnNpZ25lZCBjaGFyICprZXkxLCAqa2V5MjsKLSAgICB1bnNpZ25lZCBpbnQga2V5MWJpdHMsIGtleTJiaXRzOwotCi0gICAgcmV0ID0gbWJlZHRsc19hZXNfeHRzX2RlY29kZV9rZXlzKGtleSwga2V5Yml0cywgJmtleTEsICZrZXkxYml0cywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJmtleTIsICZrZXkyYml0cyk7Ci0gICAgaWYgKHJldCAhPSAwKSB7Ci0gICAgICAgIHJldHVybiByZXQ7Ci0gICAgfQotCi0gICAgLyogU2V0IHRoZSB0d2VhayBrZXkuIEFsd2F5cyBzZXQgdHdlYWsga2V5IGZvciBlbmNyeXB0aW9uLiAqLwotICAgIHJldCA9IG1iZWR0bHNfYWVzX3NldGtleV9lbmMoJmN0eC0+dHdlYWssIGtleTIsIGtleTJiaXRzKTsKLSAgICBpZiAocmV0ICE9IDApIHsKLSAgICAgICAgcmV0dXJuIHJldDsKLSAgICB9Ci0KLSAgICAvKiBTZXQgY3J5cHQga2V5IGZvciBkZWNyeXB0aW9uLiAqLwotICAgIHJldHVybiBtYmVkdGxzX2Flc19zZXRrZXlfZGVjKCZjdHgtPmNyeXB0LCBrZXkxLCBrZXkxYml0cyk7Ci19Ci0jZW5kaWYgLyogTUJFRFRMU19DSVBIRVJfTU9ERV9YVFMgKi8KLQotI2RlZmluZSBBRVNfRlJPVU5EKFgwLCBYMSwgWDIsIFgzLCBZMCwgWTEsIFkyLCBZMykgICAgICAgICAgICAgICAgIFwKLSAgICBkbyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICAgICAgKFgwKSA9ICpSSysrIF4gQUVTX0ZUMChNQkVEVExTX0JZVEVfMChZMCkpIF4gICAgXAotICAgICAgICAgICAgICAgQUVTX0ZUMShNQkVEVExTX0JZVEVfMShZMSkpIF4gICAgXAotICAgICAgICAgICAgICAgQUVTX0ZUMihNQkVEVExTX0JZVEVfMihZMikpIF4gICAgXAotICAgICAgICAgICAgICAgQUVTX0ZUMyhNQkVEVExTX0JZVEVfMyhZMykpOyAgICAgXAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgICAgICAoWDEpID0gKlJLKysgXiBBRVNfRlQwKE1CRURUTFNfQllURV8wKFkxKSkgXiAgICBcCi0gICAgICAgICAgICAgICBBRVNfRlQxKE1CRURUTFNfQllURV8xKFkyKSkgXiAgICBcCi0gICAgICAgICAgICAgICBBRVNfRlQyKE1CRURUTFNfQllURV8yKFkzKSkgXiAgICBcCi0gICAgICAgICAgICAgICBBRVNfRlQzKE1CRURUTFNfQllURV8zKFkwKSk7ICAgICBcCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgICAgIChYMikgPSAqUksrKyBeIEFFU19GVDAoTUJFRFRMU19CWVRFXzAoWTIpKSBeICAgIFwKLSAgICAgICAgICAgICAgIEFFU19GVDEoTUJFRFRMU19CWVRFXzEoWTMpKSBeICAgIFwKLSAgICAgICAgICAgICAgIEFFU19GVDIoTUJFRFRMU19CWVRFXzIoWTApKSBeICAgIFwKLSAgICAgICAgICAgICAgIEFFU19GVDMoTUJFRFRMU19CWVRFXzMoWTEpKTsgICAgIFwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICAgICAgKFgzKSA9ICpSSysrIF4gQUVTX0ZUMChNQkVEVExTX0JZVEVfMChZMykpIF4gICAgXAotICAgICAgICAgICAgICAgQUVTX0ZUMShNQkVEVExTX0JZVEVfMShZMCkpIF4gICAgXAotICAgICAgICAgICAgICAgQUVTX0ZUMihNQkVEVExTX0JZVEVfMihZMSkpIF4gICAgXAotICAgICAgICAgICAgICAgQUVTX0ZUMyhNQkVEVExTX0JZVEVfMyhZMikpOyAgICAgXAotICAgIH0gd2hpbGUgKDApCi0KLSNkZWZpbmUgQUVTX1JST1VORChYMCwgWDEsIFgyLCBYMywgWTAsIFkxLCBZMiwgWTMpICAgICAgICAgICAgICAgICBcCi0gICAgZG8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgICAgIChYMCkgPSAqUksrKyBeIEFFU19SVDAoTUJFRFRMU19CWVRFXzAoWTApKSBeICAgIFwKLSAgICAgICAgICAgICAgIEFFU19SVDEoTUJFRFRMU19CWVRFXzEoWTMpKSBeICAgIFwKLSAgICAgICAgICAgICAgIEFFU19SVDIoTUJFRFRMU19CWVRFXzIoWTIpKSBeICAgIFwKLSAgICAgICAgICAgICAgIEFFU19SVDMoTUJFRFRMU19CWVRFXzMoWTEpKTsgICAgIFwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICAgICAgKFgxKSA9ICpSSysrIF4gQUVTX1JUMChNQkVEVExTX0JZVEVfMChZMSkpIF4gICAgXAotICAgICAgICAgICAgICAgQUVTX1JUMShNQkVEVExTX0JZVEVfMShZMCkpIF4gICAgXAotICAgICAgICAgICAgICAgQUVTX1JUMihNQkVEVExTX0JZVEVfMihZMykpIF4gICAgXAotICAgICAgICAgICAgICAgQUVTX1JUMyhNQkVEVExTX0JZVEVfMyhZMikpOyAgICAgXAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgICAgICAoWDIpID0gKlJLKysgXiBBRVNfUlQwKE1CRURUTFNfQllURV8wKFkyKSkgXiAgICBcCi0gICAgICAgICAgICAgICBBRVNfUlQxKE1CRURUTFNfQllURV8xKFkxKSkgXiAgICBcCi0gICAgICAgICAgICAgICBBRVNfUlQyKE1CRURUTFNfQllURV8yKFkwKSkgXiAgICBcCi0gICAgICAgICAgICAgICBBRVNfUlQzKE1CRURUTFNfQllURV8zKFkzKSk7ICAgICBcCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgICAgIChYMykgPSAqUksrKyBeIEFFU19SVDAoTUJFRFRMU19CWVRFXzAoWTMpKSBeICAgIFwKLSAgICAgICAgICAgICAgIEFFU19SVDEoTUJFRFRMU19CWVRFXzEoWTIpKSBeICAgIFwKLSAgICAgICAgICAgICAgIEFFU19SVDIoTUJFRFRMU19CWVRFXzIoWTEpKSBeICAgIFwKLSAgICAgICAgICAgICAgIEFFU19SVDMoTUJFRFRMU19CWVRFXzMoWTApKTsgICAgIFwKLSAgICB9IHdoaWxlICgwKQotCi0vKgotICogQUVTLUVDQiBibG9jayBlbmNyeXB0aW9uCi0gKi8KLSNpZiAhZGVmaW5lZChNQkVEVExTX0FFU19FTkNSWVBUX0FMVCkKLWludCBtYmVkdGxzX2ludGVybmFsX2Flc19lbmNyeXB0KG1iZWR0bHNfYWVzX2NvbnRleHQgKmN0eCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgaW5wdXRbMTZdLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgY2hhciBvdXRwdXRbMTZdKQotewotICAgIGludCBpOwotICAgIHVpbnQzMl90ICpSSyA9IGN0eC0+YnVmICsgY3R4LT5ya19vZmZzZXQ7Ci0gICAgc3RydWN0IHsKLSAgICAgICAgdWludDMyX3QgWFs0XTsKLSAgICAgICAgdWludDMyX3QgWVs0XTsKLSAgICB9IHQ7Ci0KLSAgICB0LlhbMF0gPSBNQkVEVExTX0dFVF9VSU5UMzJfTEUoaW5wdXQsICAwKTsgdC5YWzBdIF49ICpSSysrOwotICAgIHQuWFsxXSA9IE1CRURUTFNfR0VUX1VJTlQzMl9MRShpbnB1dCwgIDQpOyB0LlhbMV0gXj0gKlJLKys7Ci0gICAgdC5YWzJdID0gTUJFRFRMU19HRVRfVUlOVDMyX0xFKGlucHV0LCAgOCk7IHQuWFsyXSBePSAqUksrKzsKLSAgICB0LlhbM10gPSBNQkVEVExTX0dFVF9VSU5UMzJfTEUoaW5wdXQsIDEyKTsgdC5YWzNdIF49ICpSSysrOwotCi0gICAgZm9yIChpID0gKGN0eC0+bnIgPj4gMSkgLSAxOyBpID4gMDsgaS0tKSB7Ci0gICAgICAgIEFFU19GUk9VTkQodC5ZWzBdLCB0LllbMV0sIHQuWVsyXSwgdC5ZWzNdLCB0LlhbMF0sIHQuWFsxXSwgdC5YWzJdLCB0LlhbM10pOwotICAgICAgICBBRVNfRlJPVU5EKHQuWFswXSwgdC5YWzFdLCB0LlhbMl0sIHQuWFszXSwgdC5ZWzBdLCB0LllbMV0sIHQuWVsyXSwgdC5ZWzNdKTsKLSAgICB9Ci0KLSAgICBBRVNfRlJPVU5EKHQuWVswXSwgdC5ZWzFdLCB0LllbMl0sIHQuWVszXSwgdC5YWzBdLCB0LlhbMV0sIHQuWFsyXSwgdC5YWzNdKTsKLQotICAgIHQuWFswXSA9ICpSSysrIF4gXAotICAgICAgICAgICAgICgodWludDMyX3QpIEZTYltNQkVEVExTX0JZVEVfMCh0LllbMF0pXSkgXgotICAgICAgICAgICAgICgodWludDMyX3QpIEZTYltNQkVEVExTX0JZVEVfMSh0LllbMV0pXSA8PCAgOCkgXgotICAgICAgICAgICAgICgodWludDMyX3QpIEZTYltNQkVEVExTX0JZVEVfMih0LllbMl0pXSA8PCAxNikgXgotICAgICAgICAgICAgICgodWludDMyX3QpIEZTYltNQkVEVExTX0JZVEVfMyh0LllbM10pXSA8PCAyNCk7Ci0KLSAgICB0LlhbMV0gPSAqUksrKyBeIFwKLSAgICAgICAgICAgICAoKHVpbnQzMl90KSBGU2JbTUJFRFRMU19CWVRFXzAodC5ZWzFdKV0pIF4KLSAgICAgICAgICAgICAoKHVpbnQzMl90KSBGU2JbTUJFRFRMU19CWVRFXzEodC5ZWzJdKV0gPDwgIDgpIF4KLSAgICAgICAgICAgICAoKHVpbnQzMl90KSBGU2JbTUJFRFRMU19CWVRFXzIodC5ZWzNdKV0gPDwgMTYpIF4KLSAgICAgICAgICAgICAoKHVpbnQzMl90KSBGU2JbTUJFRFRMU19CWVRFXzModC5ZWzBdKV0gPDwgMjQpOwotCi0gICAgdC5YWzJdID0gKlJLKysgXiBcCi0gICAgICAgICAgICAgKCh1aW50MzJfdCkgRlNiW01CRURUTFNfQllURV8wKHQuWVsyXSldKSBeCi0gICAgICAgICAgICAgKCh1aW50MzJfdCkgRlNiW01CRURUTFNfQllURV8xKHQuWVszXSldIDw8ICA4KSBeCi0gICAgICAgICAgICAgKCh1aW50MzJfdCkgRlNiW01CRURUTFNfQllURV8yKHQuWVswXSldIDw8IDE2KSBeCi0gICAgICAgICAgICAgKCh1aW50MzJfdCkgRlNiW01CRURUTFNfQllURV8zKHQuWVsxXSldIDw8IDI0KTsKLQotICAgIHQuWFszXSA9ICpSSysrIF4gXAotICAgICAgICAgICAgICgodWludDMyX3QpIEZTYltNQkVEVExTX0JZVEVfMCh0LllbM10pXSkgXgotICAgICAgICAgICAgICgodWludDMyX3QpIEZTYltNQkVEVExTX0JZVEVfMSh0LllbMF0pXSA8PCAgOCkgXgotICAgICAgICAgICAgICgodWludDMyX3QpIEZTYltNQkVEVExTX0JZVEVfMih0LllbMV0pXSA8PCAxNikgXgotICAgICAgICAgICAgICgodWludDMyX3QpIEZTYltNQkVEVExTX0JZVEVfMyh0LllbMl0pXSA8PCAyNCk7Ci0KLSAgICBNQkVEVExTX1BVVF9VSU5UMzJfTEUodC5YWzBdLCBvdXRwdXQsICAwKTsKLSAgICBNQkVEVExTX1BVVF9VSU5UMzJfTEUodC5YWzFdLCBvdXRwdXQsICA0KTsKLSAgICBNQkVEVExTX1BVVF9VSU5UMzJfTEUodC5YWzJdLCBvdXRwdXQsICA4KTsKLSAgICBNQkVEVExTX1BVVF9VSU5UMzJfTEUodC5YWzNdLCBvdXRwdXQsIDEyKTsKLQotICAgIG1iZWR0bHNfcGxhdGZvcm1femVyb2l6ZSgmdCwgc2l6ZW9mKHQpKTsKLQotICAgIHJldHVybiAwOwotfQotI2VuZGlmIC8qICFNQkVEVExTX0FFU19FTkNSWVBUX0FMVCAqLwotCi0vKgotICogQUVTLUVDQiBibG9jayBkZWNyeXB0aW9uCi0gKi8KLSNpZiAhZGVmaW5lZChNQkVEVExTX0FFU19ERUNSWVBUX0FMVCkgJiYgIWRlZmluZWQoTUJFRFRMU19CTE9DS19DSVBIRVJfTk9fREVDUllQVCkKLWludCBtYmVkdGxzX2ludGVybmFsX2Flc19kZWNyeXB0KG1iZWR0bHNfYWVzX2NvbnRleHQgKmN0eCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgaW5wdXRbMTZdLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgY2hhciBvdXRwdXRbMTZdKQotewotICAgIGludCBpOwotICAgIHVpbnQzMl90ICpSSyA9IGN0eC0+YnVmICsgY3R4LT5ya19vZmZzZXQ7Ci0gICAgc3RydWN0IHsKLSAgICAgICAgdWludDMyX3QgWFs0XTsKLSAgICAgICAgdWludDMyX3QgWVs0XTsKLSAgICB9IHQ7Ci0KLSAgICB0LlhbMF0gPSBNQkVEVExTX0dFVF9VSU5UMzJfTEUoaW5wdXQsICAwKTsgdC5YWzBdIF49ICpSSysrOwotICAgIHQuWFsxXSA9IE1CRURUTFNfR0VUX1VJTlQzMl9MRShpbnB1dCwgIDQpOyB0LlhbMV0gXj0gKlJLKys7Ci0gICAgdC5YWzJdID0gTUJFRFRMU19HRVRfVUlOVDMyX0xFKGlucHV0LCAgOCk7IHQuWFsyXSBePSAqUksrKzsKLSAgICB0LlhbM10gPSBNQkVEVExTX0dFVF9VSU5UMzJfTEUoaW5wdXQsIDEyKTsgdC5YWzNdIF49ICpSSysrOwotCi0gICAgZm9yIChpID0gKGN0eC0+bnIgPj4gMSkgLSAxOyBpID4gMDsgaS0tKSB7Ci0gICAgICAgIEFFU19SUk9VTkQodC5ZWzBdLCB0LllbMV0sIHQuWVsyXSwgdC5ZWzNdLCB0LlhbMF0sIHQuWFsxXSwgdC5YWzJdLCB0LlhbM10pOwotICAgICAgICBBRVNfUlJPVU5EKHQuWFswXSwgdC5YWzFdLCB0LlhbMl0sIHQuWFszXSwgdC5ZWzBdLCB0LllbMV0sIHQuWVsyXSwgdC5ZWzNdKTsKLSAgICB9Ci0KLSAgICBBRVNfUlJPVU5EKHQuWVswXSwgdC5ZWzFdLCB0LllbMl0sIHQuWVszXSwgdC5YWzBdLCB0LlhbMV0sIHQuWFsyXSwgdC5YWzNdKTsKLQotICAgIHQuWFswXSA9ICpSSysrIF4gXAotICAgICAgICAgICAgICgodWludDMyX3QpIFJTYltNQkVEVExTX0JZVEVfMCh0LllbMF0pXSkgXgotICAgICAgICAgICAgICgodWludDMyX3QpIFJTYltNQkVEVExTX0JZVEVfMSh0LllbM10pXSA8PCAgOCkgXgotICAgICAgICAgICAgICgodWludDMyX3QpIFJTYltNQkVEVExTX0JZVEVfMih0LllbMl0pXSA8PCAxNikgXgotICAgICAgICAgICAgICgodWludDMyX3QpIFJTYltNQkVEVExTX0JZVEVfMyh0LllbMV0pXSA8PCAyNCk7Ci0KLSAgICB0LlhbMV0gPSAqUksrKyBeIFwKLSAgICAgICAgICAgICAoKHVpbnQzMl90KSBSU2JbTUJFRFRMU19CWVRFXzAodC5ZWzFdKV0pIF4KLSAgICAgICAgICAgICAoKHVpbnQzMl90KSBSU2JbTUJFRFRMU19CWVRFXzEodC5ZWzBdKV0gPDwgIDgpIF4KLSAgICAgICAgICAgICAoKHVpbnQzMl90KSBSU2JbTUJFRFRMU19CWVRFXzIodC5ZWzNdKV0gPDwgMTYpIF4KLSAgICAgICAgICAgICAoKHVpbnQzMl90KSBSU2JbTUJFRFRMU19CWVRFXzModC5ZWzJdKV0gPDwgMjQpOwotCi0gICAgdC5YWzJdID0gKlJLKysgXiBcCi0gICAgICAgICAgICAgKCh1aW50MzJfdCkgUlNiW01CRURUTFNfQllURV8wKHQuWVsyXSldKSBeCi0gICAgICAgICAgICAgKCh1aW50MzJfdCkgUlNiW01CRURUTFNfQllURV8xKHQuWVsxXSldIDw8ICA4KSBeCi0gICAgICAgICAgICAgKCh1aW50MzJfdCkgUlNiW01CRURUTFNfQllURV8yKHQuWVswXSldIDw8IDE2KSBeCi0gICAgICAgICAgICAgKCh1aW50MzJfdCkgUlNiW01CRURUTFNfQllURV8zKHQuWVszXSldIDw8IDI0KTsKLQotICAgIHQuWFszXSA9ICpSSysrIF4gXAotICAgICAgICAgICAgICgodWludDMyX3QpIFJTYltNQkVEVExTX0JZVEVfMCh0LllbM10pXSkgXgotICAgICAgICAgICAgICgodWludDMyX3QpIFJTYltNQkVEVExTX0JZVEVfMSh0LllbMl0pXSA8PCAgOCkgXgotICAgICAgICAgICAgICgodWludDMyX3QpIFJTYltNQkVEVExTX0JZVEVfMih0LllbMV0pXSA8PCAxNikgXgotICAgICAgICAgICAgICgodWludDMyX3QpIFJTYltNQkVEVExTX0JZVEVfMyh0LllbMF0pXSA8PCAyNCk7Ci0KLSAgICBNQkVEVExTX1BVVF9VSU5UMzJfTEUodC5YWzBdLCBvdXRwdXQsICAwKTsKLSAgICBNQkVEVExTX1BVVF9VSU5UMzJfTEUodC5YWzFdLCBvdXRwdXQsICA0KTsKLSAgICBNQkVEVExTX1BVVF9VSU5UMzJfTEUodC5YWzJdLCBvdXRwdXQsICA4KTsKLSAgICBNQkVEVExTX1BVVF9VSU5UMzJfTEUodC5YWzNdLCBvdXRwdXQsIDEyKTsKLQotICAgIG1iZWR0bHNfcGxhdGZvcm1femVyb2l6ZSgmdCwgc2l6ZW9mKHQpKTsKLQotICAgIHJldHVybiAwOwotfQotI2VuZGlmIC8qICFNQkVEVExTX0FFU19ERUNSWVBUX0FMVCAmJiAhTUJFRFRMU19CTE9DS19DSVBIRVJfTk9fREVDUllQVCAqLwotCi0vKiBWSUEgUGFkbG9jayBhbmQgb3VyIGludHJpbnNpY3MtYmFzZWQgaW1wbGVtZW50YXRpb24gb2YgQUVTTkkgcmVxdWlyZQotICogdGhlIHJvdW5kIGtleXMgdG8gYmUgYWxpZ25lZCBvbiBhIDE2LWJ5dGUgYm91bmRhcnkuIFdlIHRha2UgY2FyZSBvZiB0aGlzCi0gKiBiZWZvcmUgY3JlYXRpbmcgdGhlbSwgYnV0IHRoZSBBRVMgY29udGV4dCBtYXkgaGF2ZSBtb3ZlZCAodGhpcyBjYW4gaGFwcGVuCi0gKiBpZiB0aGUgbGlicmFyeSBpcyBjYWxsZWQgZnJvbSBhIGxhbmd1YWdlIHdpdGggbWFuYWdlZCBtZW1vcnkpLCBhbmQgaW4gbGF0ZXIKLSAqIGNhbGxzIGl0IG1pZ2h0IGhhdmUgYSBkaWZmZXJlbnQgYWxpZ25tZW50IHdpdGggcmVzcGVjdCB0byAxNi1ieXRlIG1lbW9yeS4KLSAqIFNvIHdlIG1heSBuZWVkIHRvIHJlYWxpZ24uCi0gKi8KLU1CRURUTFNfTUFZQkVfVU5VU0VEIHN0YXRpYyB2b2lkIGFlc19tYXliZV9yZWFsaWduKG1iZWR0bHNfYWVzX2NvbnRleHQgKmN0eCkKLXsKLSAgICB1bnNpZ25lZCBuZXdfb2Zmc2V0ID0gbWJlZHRsc19hZXNfcmtfb2Zmc2V0KGN0eC0+YnVmKTsKLSAgICBpZiAobmV3X29mZnNldCAhPSBjdHgtPnJrX29mZnNldCkgewotICAgICAgICBtZW1tb3ZlKGN0eC0+YnVmICsgbmV3X29mZnNldCwgICAgIC8vIG5ldyBhZGRyZXNzCi0gICAgICAgICAgICAgICAgY3R4LT5idWYgKyBjdHgtPnJrX29mZnNldCwgLy8gY3VycmVudCBhZGRyZXNzCi0gICAgICAgICAgICAgICAgKGN0eC0+bnIgKyAxKSAqIDE2KTsgICAgICAgLy8gbnVtYmVyIG9mIHJvdW5kIGtleXMgKiBieXRlcyBwZXIgcmsKLSAgICAgICAgY3R4LT5ya19vZmZzZXQgPSBuZXdfb2Zmc2V0OwotICAgIH0KLX0KLQotLyoKLSAqIEFFUy1FQ0IgYmxvY2sgZW5jcnlwdGlvbi9kZWNyeXB0aW9uCi0gKi8KLWludCBtYmVkdGxzX2Flc19jcnlwdF9lY2IobWJlZHRsc19hZXNfY29udGV4dCAqY3R4LAotICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgbW9kZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdW5zaWduZWQgY2hhciBpbnB1dFsxNl0sCi0gICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGNoYXIgb3V0cHV0WzE2XSkKLXsKLSAgICBpZiAobW9kZSAhPSBNQkVEVExTX0FFU19FTkNSWVBUICYmIG1vZGUgIT0gTUJFRFRMU19BRVNfREVDUllQVCkgewotICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfQUVTX0JBRF9JTlBVVF9EQVRBOwotICAgIH0KLQotI2lmIGRlZmluZWQoTUFZX05FRURfVE9fQUxJR04pCi0gICAgYWVzX21heWJlX3JlYWxpZ24oY3R4KTsKLSNlbmRpZgotCi0jaWYgZGVmaW5lZChNQkVEVExTX0FFU05JX0hBVkVfQ09ERSkKLSAgICBpZiAobWJlZHRsc19hZXNuaV9oYXNfc3VwcG9ydChNQkVEVExTX0FFU05JX0FFUykpIHsKLSAgICAgICAgcmV0dXJuIG1iZWR0bHNfYWVzbmlfY3J5cHRfZWNiKGN0eCwgbW9kZSwgaW5wdXQsIG91dHB1dCk7Ci0gICAgfQotI2VuZGlmCi0KLSNpZiBkZWZpbmVkKE1CRURUTFNfQUVTQ0VfSEFWRV9DT0RFKQotICAgIGlmIChNQkVEVExTX0FFU0NFX0hBU19TVVBQT1JUKCkpIHsKLSAgICAgICAgcmV0dXJuIG1iZWR0bHNfYWVzY2VfY3J5cHRfZWNiKGN0eCwgbW9kZSwgaW5wdXQsIG91dHB1dCk7Ci0gICAgfQotI2VuZGlmCi0KLSNpZiBkZWZpbmVkKE1CRURUTFNfVklBX1BBRExPQ0tfSEFWRV9DT0RFKQotICAgIGlmIChhZXNfcGFkbG9ja19hY2UgPiAwKSB7Ci0gICAgICAgIHJldHVybiBtYmVkdGxzX3BhZGxvY2tfeGNyeXB0ZWNiKGN0eCwgbW9kZSwgaW5wdXQsIG91dHB1dCk7Ci0gICAgfQotI2VuZGlmCi0KLSNpZiAhZGVmaW5lZChNQkVEVExTX0FFU19VU0VfSEFSRFdBUkVfT05MWSkKLSNpZiAhZGVmaW5lZChNQkVEVExTX0JMT0NLX0NJUEhFUl9OT19ERUNSWVBUKQotICAgIGlmIChtb2RlID09IE1CRURUTFNfQUVTX0RFQ1JZUFQpIHsKLSAgICAgICAgcmV0dXJuIG1iZWR0bHNfaW50ZXJuYWxfYWVzX2RlY3J5cHQoY3R4LCBpbnB1dCwgb3V0cHV0KTsKLSAgICB9IGVsc2UKLSNlbmRpZgotICAgIHsKLSAgICAgICAgcmV0dXJuIG1iZWR0bHNfaW50ZXJuYWxfYWVzX2VuY3J5cHQoY3R4LCBpbnB1dCwgb3V0cHV0KTsKLSAgICB9Ci0jZW5kaWYgLyogIU1CRURUTFNfQUVTX1VTRV9IQVJEV0FSRV9PTkxZICovCi19Ci0KLSNpZiBkZWZpbmVkKE1CRURUTFNfQ0lQSEVSX01PREVfQ0JDKQotCi0vKgotICogQUVTLUNCQyBidWZmZXIgZW5jcnlwdGlvbi9kZWNyeXB0aW9uCi0gKi8KLWludCBtYmVkdGxzX2Flc19jcnlwdF9jYmMobWJlZHRsc19hZXNfY29udGV4dCAqY3R4LAotICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgbW9kZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IGxlbmd0aCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgY2hhciBpdlsxNl0sCi0gICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgKmlucHV0LAotICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBjaGFyICpvdXRwdXQpCi17Ci0gICAgaW50IHJldCA9IE1CRURUTFNfRVJSX0VSUk9SX0NPUlJVUFRJT05fREVURUNURUQ7Ci0gICAgdW5zaWduZWQgY2hhciB0ZW1wWzE2XTsKLQotICAgIGlmIChtb2RlICE9IE1CRURUTFNfQUVTX0VOQ1JZUFQgJiYgbW9kZSAhPSBNQkVEVExTX0FFU19ERUNSWVBUKSB7Ci0gICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9BRVNfQkFEX0lOUFVUX0RBVEE7Ci0gICAgfQotCi0gICAgLyogTm90aGluZyB0byBkbyBpZiBsZW5ndGggaXMgemVyby4gKi8KLSAgICBpZiAobGVuZ3RoID09IDApIHsKLSAgICAgICAgcmV0dXJuIDA7Ci0gICAgfQotCi0gICAgaWYgKGxlbmd0aCAlIDE2KSB7Ci0gICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9BRVNfSU5WQUxJRF9JTlBVVF9MRU5HVEg7Ci0gICAgfQotCi0jaWYgZGVmaW5lZChNQkVEVExTX1ZJQV9QQURMT0NLX0hBVkVfQ09ERSkKLSAgICBpZiAoYWVzX3BhZGxvY2tfYWNlID4gMCkgewotICAgICAgICBpZiAobWJlZHRsc19wYWRsb2NrX3hjcnlwdGNiYyhjdHgsIG1vZGUsIGxlbmd0aCwgaXYsIGlucHV0LCBvdXRwdXQpID09IDApIHsKLSAgICAgICAgICAgIHJldHVybiAwOwotICAgICAgICB9Ci0KLSAgICAgICAgLy8gSWYgcGFkbG9jayBkYXRhIG1pc2FsaWduZWQsIHdlIGp1c3QgZmFsbCBiYWNrIHRvCi0gICAgICAgIC8vIHVuYWNjZWxlcmF0ZWQgbW9kZQotICAgICAgICAvLwotICAgIH0KLSNlbmRpZgotCi0gICAgY29uc3QgdW5zaWduZWQgY2hhciAqaXZwID0gaXY7Ci0KLSAgICBpZiAobW9kZSA9PSBNQkVEVExTX0FFU19ERUNSWVBUKSB7Ci0gICAgICAgIHdoaWxlIChsZW5ndGggPiAwKSB7Ci0gICAgICAgICAgICBtZW1jcHkodGVtcCwgaW5wdXQsIDE2KTsKLSAgICAgICAgICAgIHJldCA9IG1iZWR0bHNfYWVzX2NyeXB0X2VjYihjdHgsIG1vZGUsIGlucHV0LCBvdXRwdXQpOwotICAgICAgICAgICAgaWYgKHJldCAhPSAwKSB7Ci0gICAgICAgICAgICAgICAgZ290byBleGl0OwotICAgICAgICAgICAgfQotICAgICAgICAgICAgLyogQXZvaWQgdXNpbmcgdGhlIE5FT04gaW1wbGVtZW50YXRpb24gb2YgbWJlZHRsc194b3IuIEJlY2F1c2Ugb2YgdGhlIGRlcGVuZGVuY3kgb24KLSAgICAgICAgICAgICAqIHRoZSByZXN1bHQgZm9yIHRoZSBuZXh0IGJsb2NrIGluIENCQywgYW5kIHRoZSBjb3N0IG9mIHRyYW5zZmVycmluZyB0aGF0IGRhdGEgZnJvbQotICAgICAgICAgICAgICogTkVPTiByZWdpc3RlcnMsIE5FT04gaXMgc2xvd2VyIG9uIGFhcmNoNjQuICovCi0gICAgICAgICAgICBtYmVkdGxzX3hvcl9ub19zaW1kKG91dHB1dCwgb3V0cHV0LCBpdiwgMTYpOwotCi0gICAgICAgICAgICBtZW1jcHkoaXYsIHRlbXAsIDE2KTsKLQotICAgICAgICAgICAgaW5wdXQgICs9IDE2OwotICAgICAgICAgICAgb3V0cHV0ICs9IDE2OwotICAgICAgICAgICAgbGVuZ3RoIC09IDE2OwotICAgICAgICB9Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgd2hpbGUgKGxlbmd0aCA+IDApIHsKLSAgICAgICAgICAgIG1iZWR0bHNfeG9yX25vX3NpbWQob3V0cHV0LCBpbnB1dCwgaXZwLCAxNik7Ci0KLSAgICAgICAgICAgIHJldCA9IG1iZWR0bHNfYWVzX2NyeXB0X2VjYihjdHgsIG1vZGUsIG91dHB1dCwgb3V0cHV0KTsKLSAgICAgICAgICAgIGlmIChyZXQgIT0gMCkgewotICAgICAgICAgICAgICAgIGdvdG8gZXhpdDsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGl2cCA9IG91dHB1dDsKLQotICAgICAgICAgICAgaW5wdXQgICs9IDE2OwotICAgICAgICAgICAgb3V0cHV0ICs9IDE2OwotICAgICAgICAgICAgbGVuZ3RoIC09IDE2OwotICAgICAgICB9Ci0gICAgICAgIG1lbWNweShpdiwgaXZwLCAxNik7Ci0gICAgfQotICAgIHJldCA9IDA7Ci0KLWV4aXQ6Ci0gICAgcmV0dXJuIHJldDsKLX0KLSNlbmRpZiAvKiBNQkVEVExTX0NJUEhFUl9NT0RFX0NCQyAqLwotCi0jaWYgZGVmaW5lZChNQkVEVExTX0NJUEhFUl9NT0RFX1hUUykKLQotdHlwZWRlZiB1bnNpZ25lZCBjaGFyIG1iZWR0bHNfYmUxMjhbMTZdOwotCi0vKgotICogR0YoMl4xMjgpIG11bHRpcGxpY2F0aW9uIGZ1bmN0aW9uCi0gKgotICogVGhpcyBmdW5jdGlvbiBtdWx0aXBsaWVzIGEgZmllbGQgZWxlbWVudCBieSB4IGluIHRoZSBwb2x5bm9taWFsIGZpZWxkCi0gKiByZXByZXNlbnRhdGlvbi4gSXQgdXNlcyA2NC1iaXQgd29yZCBvcGVyYXRpb25zIHRvIGdhaW4gc3BlZWQgYnV0IGNvbXBlbnNhdGVzCi0gKiBmb3IgbWFjaGluZSBlbmRpYW5uZXNzIGFuZCBoZW5jZSB3b3JrcyBjb3JyZWN0bHkgb24gYm90aCBiaWcgYW5kIGxpdHRsZQotICogZW5kaWFuIG1hY2hpbmVzLgotICovCi0jaWYgZGVmaW5lZChNQkVEVExTX0FFU0NFX0MpIHx8IGRlZmluZWQoTUJFRFRMU19BRVNOSV9DKQotTUJFRFRMU19PUFRJTUlaRV9GT1JfUEVSRk9STUFOQ0UKLSNlbmRpZgotc3RhdGljIGlubGluZSB2b2lkIG1iZWR0bHNfZ2YxMjhtdWxfeF9ibGUodW5zaWduZWQgY2hhciByWzE2XSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgeFsxNl0pCi17Ci0gICAgdWludDY0X3QgYSwgYiwgcmEsIHJiOwotCi0gICAgYSA9IE1CRURUTFNfR0VUX1VJTlQ2NF9MRSh4LCAwKTsKLSAgICBiID0gTUJFRFRMU19HRVRfVUlOVDY0X0xFKHgsIDgpOwotCi0gICAgcmEgPSAoYSA8PCAxKSAgXiAweDAwODcgPj4gKDggLSAoKGIgPj4gNjMpIDw8IDMpKTsKLSAgICByYiA9IChhID4+IDYzKSB8IChiIDw8IDEpOwotCi0gICAgTUJFRFRMU19QVVRfVUlOVDY0X0xFKHJhLCByLCAwKTsKLSAgICBNQkVEVExTX1BVVF9VSU5UNjRfTEUocmIsIHIsIDgpOwotfQotCi0vKgotICogQUVTLVhUUyBidWZmZXIgZW5jcnlwdGlvbi9kZWNyeXB0aW9uCi0gKgotICogVXNlIG9mIE1CRURUTFNfT1BUSU1JWkVfRk9SX1BFUkZPUk1BTkNFIGhlcmUgYW5kIGZvciBtYmVkdGxzX2dmMTI4bXVsX3hfYmxlKCkKLSAqIGlzIGEgM3ggcGVyZm9ybWFuY2UgaW1wcm92ZW1lbnQgZm9yIGdjYyAtT3MsIGlmIHdlIGhhdmUgaGFyZHdhcmUgQUVTIHN1cHBvcnQuCi0gKi8KLSNpZiBkZWZpbmVkKE1CRURUTFNfQUVTQ0VfQykgfHwgZGVmaW5lZChNQkVEVExTX0FFU05JX0MpCi1NQkVEVExTX09QVElNSVpFX0ZPUl9QRVJGT1JNQU5DRQotI2VuZGlmCi1pbnQgbWJlZHRsc19hZXNfY3J5cHRfeHRzKG1iZWR0bHNfYWVzX3h0c19jb250ZXh0ICpjdHgsCi0gICAgICAgICAgICAgICAgICAgICAgICAgIGludCBtb2RlLAotICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgbGVuZ3RoLAotICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1bnNpZ25lZCBjaGFyIGRhdGFfdW5pdFsxNl0sCi0gICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgKmlucHV0LAotICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBjaGFyICpvdXRwdXQpCi17Ci0gICAgaW50IHJldCA9IE1CRURUTFNfRVJSX0VSUk9SX0NPUlJVUFRJT05fREVURUNURUQ7Ci0gICAgc2l6ZV90IGJsb2NrcyA9IGxlbmd0aCAvIDE2OwotICAgIHNpemVfdCBsZWZ0b3ZlciA9IGxlbmd0aCAlIDE2OwotICAgIHVuc2lnbmVkIGNoYXIgdHdlYWtbMTZdOwotICAgIHVuc2lnbmVkIGNoYXIgcHJldl90d2Vha1sxNl07Ci0gICAgdW5zaWduZWQgY2hhciB0bXBbMTZdOwotCi0gICAgaWYgKG1vZGUgIT0gTUJFRFRMU19BRVNfRU5DUllQVCAmJiBtb2RlICE9IE1CRURUTFNfQUVTX0RFQ1JZUFQpIHsKLSAgICAgICAgcmV0dXJuIE1CRURUTFNfRVJSX0FFU19CQURfSU5QVVRfREFUQTsKLSAgICB9Ci0KLSAgICAvKiBEYXRhIHVuaXRzIG11c3QgYmUgYXQgbGVhc3QgMTYgYnl0ZXMgbG9uZy4gKi8KLSAgICBpZiAobGVuZ3RoIDwgMTYpIHsKLSAgICAgICAgcmV0dXJuIE1CRURUTFNfRVJSX0FFU19JTlZBTElEX0lOUFVUX0xFTkdUSDsKLSAgICB9Ci0KLSAgICAvKiBOSVNUIFNQIDgwMC0zOEUgZGlzYWxsb3dzIGRhdGEgdW5pdHMgbGFyZ2VyIHRoYW4gMioqMjAgYmxvY2tzLiAqLwotICAgIGlmIChsZW5ndGggPiAoMSA8PCAyMCkgKiAxNikgewotICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfQUVTX0lOVkFMSURfSU5QVVRfTEVOR1RIOwotICAgIH0KLQotICAgIC8qIENvbXB1dGUgdGhlIHR3ZWFrLiAqLwotICAgIHJldCA9IG1iZWR0bHNfYWVzX2NyeXB0X2VjYigmY3R4LT50d2VhaywgTUJFRFRMU19BRVNfRU5DUllQVCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YV91bml0LCB0d2Vhayk7Ci0gICAgaWYgKHJldCAhPSAwKSB7Ci0gICAgICAgIHJldHVybiByZXQ7Ci0gICAgfQotCi0gICAgd2hpbGUgKGJsb2Nrcy0tKSB7Ci0gICAgICAgIGlmIChNQkVEVExTX1VOTElLRUxZKGxlZnRvdmVyICYmIChtb2RlID09IE1CRURUTFNfQUVTX0RFQ1JZUFQpICYmIGJsb2NrcyA9PSAwKSkgewotICAgICAgICAgICAgLyogV2UgYXJlIG9uIHRoZSBsYXN0IGJsb2NrIGluIGEgZGVjcnlwdCBvcGVyYXRpb24gdGhhdCBoYXMKLSAgICAgICAgICAgICAqIGxlZnRvdmVyIGJ5dGVzLCBzbyB3ZSBuZWVkIHRvIHVzZSB0aGUgbmV4dCB0d2VhayBmb3IgdGhpcyBibG9jaywKLSAgICAgICAgICAgICAqIGFuZCB0aGlzIHR3ZWFrIGZvciB0aGUgbGVmdG92ZXIgYnl0ZXMuIFNhdmUgdGhlIGN1cnJlbnQgdHdlYWsgZm9yCi0gICAgICAgICAgICAgKiB0aGUgbGVmdG92ZXJzIGFuZCB0aGVuIHVwZGF0ZSB0aGUgY3VycmVudCB0d2VhayBmb3IgdXNlIG9uIHRoaXMsCi0gICAgICAgICAgICAgKiB0aGUgbGFzdCBmdWxsIGJsb2NrLiAqLwotICAgICAgICAgICAgbWVtY3B5KHByZXZfdHdlYWssIHR3ZWFrLCBzaXplb2YodHdlYWspKTsKLSAgICAgICAgICAgIG1iZWR0bHNfZ2YxMjhtdWxfeF9ibGUodHdlYWssIHR3ZWFrKTsKLSAgICAgICAgfQotCi0gICAgICAgIG1iZWR0bHNfeG9yKHRtcCwgaW5wdXQsIHR3ZWFrLCAxNik7Ci0KLSAgICAgICAgcmV0ID0gbWJlZHRsc19hZXNfY3J5cHRfZWNiKCZjdHgtPmNyeXB0LCBtb2RlLCB0bXAsIHRtcCk7Ci0gICAgICAgIGlmIChyZXQgIT0gMCkgewotICAgICAgICAgICAgcmV0dXJuIHJldDsKLSAgICAgICAgfQotCi0gICAgICAgIG1iZWR0bHNfeG9yKG91dHB1dCwgdG1wLCB0d2VhaywgMTYpOwotCi0gICAgICAgIC8qIFVwZGF0ZSB0aGUgdHdlYWsgZm9yIHRoZSBuZXh0IGJsb2NrLiAqLwotICAgICAgICBtYmVkdGxzX2dmMTI4bXVsX3hfYmxlKHR3ZWFrLCB0d2Vhayk7Ci0KLSAgICAgICAgb3V0cHV0ICs9IDE2OwotICAgICAgICBpbnB1dCArPSAxNjsKLSAgICB9Ci0KLSAgICBpZiAobGVmdG92ZXIpIHsKLSAgICAgICAgLyogSWYgd2UgYXJlIG9uIHRoZSBsZWZ0b3ZlciBieXRlcyBpbiBhIGRlY3J5cHQgb3BlcmF0aW9uLCB3ZSBuZWVkIHRvCi0gICAgICAgICAqIHVzZSB0aGUgcHJldmlvdXMgdHdlYWsgZm9yIHRoZXNlIGJ5dGVzIChhcyBzYXZlZCBpbiBwcmV2X3R3ZWFrKS4gKi8KLSAgICAgICAgdW5zaWduZWQgY2hhciAqdCA9IG1vZGUgPT0gTUJFRFRMU19BRVNfREVDUllQVCA/IHByZXZfdHdlYWsgOiB0d2VhazsKLQotICAgICAgICAvKiBXZSBhcmUgbm93IG9uIHRoZSBmaW5hbCBwYXJ0IG9mIHRoZSBkYXRhIHVuaXQsIHdoaWNoIGRvZXNuJ3QgZGl2aWRlCi0gICAgICAgICAqIGV2ZW5seSBieSAxNi4gSXQncyB0aW1lIGZvciBjaXBoZXJ0ZXh0IHN0ZWFsaW5nLiAqLwotICAgICAgICBzaXplX3QgaTsKLSAgICAgICAgdW5zaWduZWQgY2hhciAqcHJldl9vdXRwdXQgPSBvdXRwdXQgLSAxNjsKLQotICAgICAgICAvKiBDb3B5IGNpcGhlcnRleHQgYnl0ZXMgZnJvbSB0aGUgcHJldmlvdXMgYmxvY2sgdG8gb3VyIG91dHB1dCBmb3IgZWFjaAotICAgICAgICAgKiBieXRlIG9mIGNpcGhlcnRleHQgd2Ugd29uJ3Qgc3RlYWwuICovCi0gICAgICAgIGZvciAoaSA9IDA7IGkgPCBsZWZ0b3ZlcjsgaSsrKSB7Ci0gICAgICAgICAgICBvdXRwdXRbaV0gPSBwcmV2X291dHB1dFtpXTsKLSAgICAgICAgfQotCi0gICAgICAgIC8qIENvcHkgdGhlIHJlbWFpbmRlciBvZiB0aGUgaW5wdXQgZm9yIHRoaXMgZmluYWwgcm91bmQuICovCi0gICAgICAgIG1iZWR0bHNfeG9yKHRtcCwgaW5wdXQsIHQsIGxlZnRvdmVyKTsKLQotICAgICAgICAvKiBDb3B5IGNpcGhlcnRleHQgYnl0ZXMgZnJvbSB0aGUgcHJldmlvdXMgYmxvY2sgZm9yIGlucHV0IGluIHRoaXMKLSAgICAgICAgICogcm91bmQuICovCi0gICAgICAgIG1iZWR0bHNfeG9yKHRtcCArIGksIHByZXZfb3V0cHV0ICsgaSwgdCArIGksIDE2IC0gaSk7Ci0KLSAgICAgICAgcmV0ID0gbWJlZHRsc19hZXNfY3J5cHRfZWNiKCZjdHgtPmNyeXB0LCBtb2RlLCB0bXAsIHRtcCk7Ci0gICAgICAgIGlmIChyZXQgIT0gMCkgewotICAgICAgICAgICAgcmV0dXJuIHJldDsKLSAgICAgICAgfQotCi0gICAgICAgIC8qIFdyaXRlIHRoZSByZXN1bHQgYmFjayB0byB0aGUgcHJldmlvdXMgYmxvY2ssIG92ZXJyaWRpbmcgdGhlIHByZXZpb3VzCi0gICAgICAgICAqIG91dHB1dCB3ZSBjb3BpZWQuICovCi0gICAgICAgIG1iZWR0bHNfeG9yKHByZXZfb3V0cHV0LCB0bXAsIHQsIDE2KTsKLSAgICB9Ci0KLSAgICByZXR1cm4gMDsKLX0KLSNlbmRpZiAvKiBNQkVEVExTX0NJUEhFUl9NT0RFX1hUUyAqLwotCi0jaWYgZGVmaW5lZChNQkVEVExTX0NJUEhFUl9NT0RFX0NGQikKLS8qCi0gKiBBRVMtQ0ZCMTI4IGJ1ZmZlciBlbmNyeXB0aW9uL2RlY3J5cHRpb24KLSAqLwotaW50IG1iZWR0bHNfYWVzX2NyeXB0X2NmYjEyOChtYmVkdGxzX2Flc19jb250ZXh0ICpjdHgsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBtb2RlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgbGVuZ3RoLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgKml2X29mZiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgY2hhciBpdlsxNl0sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgKmlucHV0LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBjaGFyICpvdXRwdXQpCi17Ci0gICAgaW50IGM7Ci0gICAgaW50IHJldCA9IE1CRURUTFNfRVJSX0VSUk9SX0NPUlJVUFRJT05fREVURUNURUQ7Ci0gICAgc2l6ZV90IG47Ci0KLSAgICBpZiAobW9kZSAhPSBNQkVEVExTX0FFU19FTkNSWVBUICYmIG1vZGUgIT0gTUJFRFRMU19BRVNfREVDUllQVCkgewotICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfQUVTX0JBRF9JTlBVVF9EQVRBOwotICAgIH0KLQotICAgIG4gPSAqaXZfb2ZmOwotCi0gICAgaWYgKG4gPiAxNSkgewotICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfQUVTX0JBRF9JTlBVVF9EQVRBOwotICAgIH0KLQotICAgIGlmIChtb2RlID09IE1CRURUTFNfQUVTX0RFQ1JZUFQpIHsKLSAgICAgICAgd2hpbGUgKGxlbmd0aC0tKSB7Ci0gICAgICAgICAgICBpZiAobiA9PSAwKSB7Ci0gICAgICAgICAgICAgICAgcmV0ID0gbWJlZHRsc19hZXNfY3J5cHRfZWNiKGN0eCwgTUJFRFRMU19BRVNfRU5DUllQVCwgaXYsIGl2KTsKLSAgICAgICAgICAgICAgICBpZiAocmV0ICE9IDApIHsKLSAgICAgICAgICAgICAgICAgICAgZ290byBleGl0OwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgYyA9ICppbnB1dCsrOwotICAgICAgICAgICAgKm91dHB1dCsrID0gKHVuc2lnbmVkIGNoYXIpIChjIF4gaXZbbl0pOwotICAgICAgICAgICAgaXZbbl0gPSAodW5zaWduZWQgY2hhcikgYzsKLQotICAgICAgICAgICAgbiA9IChuICsgMSkgJiAweDBGOwotICAgICAgICB9Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgd2hpbGUgKGxlbmd0aC0tKSB7Ci0gICAgICAgICAgICBpZiAobiA9PSAwKSB7Ci0gICAgICAgICAgICAgICAgcmV0ID0gbWJlZHRsc19hZXNfY3J5cHRfZWNiKGN0eCwgTUJFRFRMU19BRVNfRU5DUllQVCwgaXYsIGl2KTsKLSAgICAgICAgICAgICAgICBpZiAocmV0ICE9IDApIHsKLSAgICAgICAgICAgICAgICAgICAgZ290byBleGl0OwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgaXZbbl0gPSAqb3V0cHV0KysgPSAodW5zaWduZWQgY2hhcikgKGl2W25dIF4gKmlucHV0KyspOwotCi0gICAgICAgICAgICBuID0gKG4gKyAxKSAmIDB4MEY7Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICAqaXZfb2ZmID0gbjsKLSAgICByZXQgPSAwOwotCi1leGl0OgotICAgIHJldHVybiByZXQ7Ci19Ci0KLS8qCi0gKiBBRVMtQ0ZCOCBidWZmZXIgZW5jcnlwdGlvbi9kZWNyeXB0aW9uCi0gKi8KLWludCBtYmVkdGxzX2Flc19jcnlwdF9jZmI4KG1iZWR0bHNfYWVzX2NvbnRleHQgKmN0eCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBtb2RlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IGxlbmd0aCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGNoYXIgaXZbMTZdLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdW5zaWduZWQgY2hhciAqaW5wdXQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBjaGFyICpvdXRwdXQpCi17Ci0gICAgaW50IHJldCA9IE1CRURUTFNfRVJSX0VSUk9SX0NPUlJVUFRJT05fREVURUNURUQ7Ci0gICAgdW5zaWduZWQgY2hhciBjOwotICAgIHVuc2lnbmVkIGNoYXIgb3ZbMTddOwotCi0gICAgaWYgKG1vZGUgIT0gTUJFRFRMU19BRVNfRU5DUllQVCAmJiBtb2RlICE9IE1CRURUTFNfQUVTX0RFQ1JZUFQpIHsKLSAgICAgICAgcmV0dXJuIE1CRURUTFNfRVJSX0FFU19CQURfSU5QVVRfREFUQTsKLSAgICB9Ci0gICAgd2hpbGUgKGxlbmd0aC0tKSB7Ci0gICAgICAgIG1lbWNweShvdiwgaXYsIDE2KTsKLSAgICAgICAgcmV0ID0gbWJlZHRsc19hZXNfY3J5cHRfZWNiKGN0eCwgTUJFRFRMU19BRVNfRU5DUllQVCwgaXYsIGl2KTsKLSAgICAgICAgaWYgKHJldCAhPSAwKSB7Ci0gICAgICAgICAgICBnb3RvIGV4aXQ7Ci0gICAgICAgIH0KLQotICAgICAgICBpZiAobW9kZSA9PSBNQkVEVExTX0FFU19ERUNSWVBUKSB7Ci0gICAgICAgICAgICBvdlsxNl0gPSAqaW5wdXQ7Ci0gICAgICAgIH0KLQotICAgICAgICBjID0gKm91dHB1dCsrID0gKHVuc2lnbmVkIGNoYXIpIChpdlswXSBeICppbnB1dCsrKTsKLQotICAgICAgICBpZiAobW9kZSA9PSBNQkVEVExTX0FFU19FTkNSWVBUKSB7Ci0gICAgICAgICAgICBvdlsxNl0gPSBjOwotICAgICAgICB9Ci0KLSAgICAgICAgbWVtY3B5KGl2LCBvdiArIDEsIDE2KTsKLSAgICB9Ci0gICAgcmV0ID0gMDsKLQotZXhpdDoKLSAgICByZXR1cm4gcmV0OwotfQotI2VuZGlmIC8qIE1CRURUTFNfQ0lQSEVSX01PREVfQ0ZCICovCi0KLSNpZiBkZWZpbmVkKE1CRURUTFNfQ0lQSEVSX01PREVfT0ZCKQotLyoKLSAqIEFFUy1PRkIgKE91dHB1dCBGZWVkYmFjayBNb2RlKSBidWZmZXIgZW5jcnlwdGlvbi9kZWNyeXB0aW9uCi0gKi8KLWludCBtYmVkdGxzX2Flc19jcnlwdF9vZmIobWJlZHRsc19hZXNfY29udGV4dCAqY3R4LAotICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgbGVuZ3RoLAotICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgKml2X29mZiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgY2hhciBpdlsxNl0sCi0gICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgKmlucHV0LAotICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBjaGFyICpvdXRwdXQpCi17Ci0gICAgaW50IHJldCA9IDA7Ci0gICAgc2l6ZV90IG47Ci0KLSAgICBuID0gKml2X29mZjsKLQotICAgIGlmIChuID4gMTUpIHsKLSAgICAgICAgcmV0dXJuIE1CRURUTFNfRVJSX0FFU19CQURfSU5QVVRfREFUQTsKLSAgICB9Ci0KLSAgICB3aGlsZSAobGVuZ3RoLS0pIHsKLSAgICAgICAgaWYgKG4gPT0gMCkgewotICAgICAgICAgICAgcmV0ID0gbWJlZHRsc19hZXNfY3J5cHRfZWNiKGN0eCwgTUJFRFRMU19BRVNfRU5DUllQVCwgaXYsIGl2KTsKLSAgICAgICAgICAgIGlmIChyZXQgIT0gMCkgewotICAgICAgICAgICAgICAgIGdvdG8gZXhpdDsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfQotICAgICAgICAqb3V0cHV0KysgPSAgKmlucHV0KysgXiBpdltuXTsKLQotICAgICAgICBuID0gKG4gKyAxKSAmIDB4MEY7Ci0gICAgfQotCi0gICAgKml2X29mZiA9IG47Ci0KLWV4aXQ6Ci0gICAgcmV0dXJuIHJldDsKLX0KLSNlbmRpZiAvKiBNQkVEVExTX0NJUEhFUl9NT0RFX09GQiAqLwotCi0jaWYgZGVmaW5lZChNQkVEVExTX0NJUEhFUl9NT0RFX0NUUikKLS8qCi0gKiBBRVMtQ1RSIGJ1ZmZlciBlbmNyeXB0aW9uL2RlY3J5cHRpb24KLSAqLwotaW50IG1iZWR0bHNfYWVzX2NyeXB0X2N0cihtYmVkdGxzX2Flc19jb250ZXh0ICpjdHgsCi0gICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBsZW5ndGgsCi0gICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCAqbmNfb2ZmLAotICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBjaGFyIG5vbmNlX2NvdW50ZXJbMTZdLAotICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBjaGFyIHN0cmVhbV9ibG9ja1sxNl0sCi0gICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgKmlucHV0LAotICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBjaGFyICpvdXRwdXQpCi17Ci0gICAgaW50IHJldCA9IE1CRURUTFNfRVJSX0VSUk9SX0NPUlJVUFRJT05fREVURUNURUQ7Ci0KLSAgICBzaXplX3Qgb2Zmc2V0ID0gKm5jX29mZjsKLQotICAgIGlmIChvZmZzZXQgPiAweDBGKSB7Ci0gICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9BRVNfQkFEX0lOUFVUX0RBVEE7Ci0gICAgfQotCi0gICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBsZW5ndGg7KSB7Ci0gICAgICAgIHNpemVfdCBuID0gMTY7Ci0gICAgICAgIGlmIChvZmZzZXQgPT0gMCkgewotICAgICAgICAgICAgcmV0ID0gbWJlZHRsc19hZXNfY3J5cHRfZWNiKGN0eCwgTUJFRFRMU19BRVNfRU5DUllQVCwgbm9uY2VfY291bnRlciwgc3RyZWFtX2Jsb2NrKTsKLSAgICAgICAgICAgIGlmIChyZXQgIT0gMCkgewotICAgICAgICAgICAgICAgIGdvdG8gZXhpdDsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIG1iZWR0bHNfY3RyX2luY3JlbWVudF9jb3VudGVyKG5vbmNlX2NvdW50ZXIpOwotICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgbiAtPSBvZmZzZXQ7Ci0gICAgICAgIH0KLQotICAgICAgICBpZiAobiA+IChsZW5ndGggLSBpKSkgewotICAgICAgICAgICAgbiA9IChsZW5ndGggLSBpKTsKLSAgICAgICAgfQotICAgICAgICBtYmVkdGxzX3hvcigmb3V0cHV0W2ldLCAmaW5wdXRbaV0sICZzdHJlYW1fYmxvY2tbb2Zmc2V0XSwgbik7Ci0gICAgICAgIC8vIG9mZnNldCBtaWdodCBiZSBub24temVybyBmb3IgdGhlIGxhc3QgYmxvY2ssIGJ1dCBpbiB0aGF0IGNhc2UsIHdlIGRvbid0IHVzZSBpdCBhZ2FpbgotICAgICAgICBvZmZzZXQgPSAwOwotICAgICAgICBpICs9IG47Ci0gICAgfQotCi0gICAgLy8gY2FwdHVyZSBvZmZzZXQgZm9yIGZ1dHVyZSByZXN1bXB0aW9uCi0gICAgKm5jX29mZiA9ICgqbmNfb2ZmICsgbGVuZ3RoKSAlIDE2OwotCi0gICAgcmV0ID0gMDsKLQotZXhpdDoKLSAgICByZXR1cm4gcmV0OwotfQotI2VuZGlmIC8qIE1CRURUTFNfQ0lQSEVSX01PREVfQ1RSICovCi0KLSNlbmRpZiAvKiAhTUJFRFRMU19BRVNfQUxUICovCi0KLSNpZiBkZWZpbmVkKE1CRURUTFNfU0VMRl9URVNUKQotLyoKLSAqIEFFUyB0ZXN0IHZlY3RvcnMgZnJvbToKLSAqCi0gKiBodHRwOi8vY3NyYy5uaXN0Lmdvdi9hcmNoaXZlL2Flcy9yaWpuZGFlbC9yaWpuZGFlbC12YWxzLnppcAotICovCi0jaWYgIWRlZmluZWQoTUJFRFRMU19CTE9DS19DSVBIRVJfTk9fREVDUllQVCkKLXN0YXRpYyBjb25zdCB1bnNpZ25lZCBjaGFyIGFlc190ZXN0X2VjYl9kZWNbXVsxNl0gPQotewotICAgIHsgMHg0NCwgMHg0MSwgMHg2QSwgMHhDMiwgMHhEMSwgMHhGNSwgMHgzQywgMHg1OCwKLSAgICAgIDB4MzMsIDB4MDMsIDB4OTEsIDB4N0UsIDB4NkIsIDB4RTksIDB4RUIsIDB4RTAgfSwKLSNpZiAhZGVmaW5lZChNQkVEVExTX0FFU19PTkxZXzEyOF9CSVRfS0VZX0xFTkdUSCkKLSAgICB7IDB4NDgsIDB4RTMsIDB4MUUsIDB4OUUsIDB4MjUsIDB4NjcsIDB4MTgsIDB4RjIsCi0gICAgICAweDkyLCAweDI5LCAweDMxLCAweDlDLCAweDE5LCAweEYxLCAweDVCLCAweEE0IH0sCi0gICAgeyAweDA1LCAweDhDLCAweENGLCAweEZELCAweEJCLCAweENCLCAweDM4LCAweDJELAotICAgICAgMHgxRiwgMHg2RiwgMHg1NiwgMHg1OCwgMHg1RCwgMHg4QSwgMHg0QSwgMHhERSB9Ci0jZW5kaWYKLX07Ci0jZW5kaWYKLQotc3RhdGljIGNvbnN0IHVuc2lnbmVkIGNoYXIgYWVzX3Rlc3RfZWNiX2VuY1tdWzE2XSA9Ci17Ci0gICAgeyAweEMzLCAweDRDLCAweDA1LCAweDJDLCAweEMwLCAweERBLCAweDhELCAweDczLAotICAgICAgMHg0NSwgMHgxQSwgMHhGRSwgMHg1RiwgMHgwMywgMHhCRSwgMHgyOSwgMHg3RiB9LAotI2lmICFkZWZpbmVkKE1CRURUTFNfQUVTX09OTFlfMTI4X0JJVF9LRVlfTEVOR1RIKQotICAgIHsgMHhGMywgMHhGNiwgMHg3NSwgMHgyQSwgMHhFOCwgMHhENywgMHg4MywgMHgxMSwKLSAgICAgIDB4MzgsIDB4RjAsIDB4NDEsIDB4NTYsIDB4MDYsIDB4MzEsIDB4QjEsIDB4MTQgfSwKLSAgICB7IDB4OEIsIDB4NzksIDB4RUUsIDB4Q0MsIDB4OTMsIDB4QTAsIDB4RUUsIDB4NUQsCi0gICAgICAweEZGLCAweDMwLCAweEI0LCAweEVBLCAweDIxLCAweDYzLCAweDZELCAweEE0IH0KLSNlbmRpZgotfTsKLQotI2lmIGRlZmluZWQoTUJFRFRMU19DSVBIRVJfTU9ERV9DQkMpCi1zdGF0aWMgY29uc3QgdW5zaWduZWQgY2hhciBhZXNfdGVzdF9jYmNfZGVjW11bMTZdID0KLXsKLSAgICB7IDB4RkEsIDB4Q0EsIDB4MzcsIDB4RTAsIDB4QjAsIDB4QzgsIDB4NTMsIDB4NzMsCi0gICAgICAweERGLCAweDcwLCAweDZFLCAweDczLCAweEY3LCAweEM5LCAweEFGLCAweDg2IH0sCi0jaWYgIWRlZmluZWQoTUJFRFRMU19BRVNfT05MWV8xMjhfQklUX0tFWV9MRU5HVEgpCi0gICAgeyAweDVELCAweEY2LCAweDc4LCAweERELCAweDE3LCAweEJBLCAweDRFLCAweDc1LAotICAgICAgMHhCNiwgMHgxNywgMHg2OCwgMHhDNiwgMHhBRCwgMHhFRiwgMHg3QywgMHg3QiB9LAotICAgIHsgMHg0OCwgMHgwNCwgMHhFMSwgMHg4MSwgMHg4RiwgMHhFNiwgMHgyOSwgMHg3NSwKLSAgICAgIDB4MTksIDB4QTMsIDB4RTgsIDB4OEMsIDB4NTcsIDB4MzEsIDB4MDQsIDB4MTMgfQotI2VuZGlmCi19OwotCi1zdGF0aWMgY29uc3QgdW5zaWduZWQgY2hhciBhZXNfdGVzdF9jYmNfZW5jW11bMTZdID0KLXsKLSAgICB7IDB4OEEsIDB4MDUsIDB4RkMsIDB4NUUsIDB4MDksIDB4NUEsIDB4RjQsIDB4ODQsCi0gICAgICAweDhBLCAweDA4LCAweEQzLCAweDI4LCAweEQzLCAweDY4LCAweDhFLCAweDNEIH0sCi0jaWYgIWRlZmluZWQoTUJFRFRMU19BRVNfT05MWV8xMjhfQklUX0tFWV9MRU5HVEgpCi0gICAgeyAweDdCLCAweEQ5LCAweDY2LCAweEQ1LCAweDNBLCAweEQ4LCAweEMxLCAweEJCLAotICAgICAgMHg4NSwgMHhEMiwgMHhBRCwgMHhGQSwgMHhFOCwgMHg3QiwgMHhCMSwgMHgwNCB9LAotICAgIHsgMHhGRSwgMHgzQywgMHg1MywgMHg2NSwgMHgzRSwgMHgyRiwgMHg0NSwgMHhCNSwKLSAgICAgIDB4NkYsIDB4Q0QsIDB4ODgsIDB4QjIsIDB4Q0MsIDB4ODksIDB4OEYsIDB4RjAgfQotI2VuZGlmCi19OwotI2VuZGlmIC8qIE1CRURUTFNfQ0lQSEVSX01PREVfQ0JDICovCi0KLSNpZiBkZWZpbmVkKE1CRURUTFNfQ0lQSEVSX01PREVfQ0ZCKQotLyoKLSAqIEFFUy1DRkIxMjggdGVzdCB2ZWN0b3JzIGZyb206Ci0gKgotICogaHR0cDovL2NzcmMubmlzdC5nb3YvcHVibGljYXRpb25zL25pc3RwdWJzLzgwMC0zOGEvc3A4MDAtMzhhLnBkZgotICovCi1zdGF0aWMgY29uc3QgdW5zaWduZWQgY2hhciBhZXNfdGVzdF9jZmIxMjhfa2V5W11bMzJdID0KLXsKLSAgICB7IDB4MkIsIDB4N0UsIDB4MTUsIDB4MTYsIDB4MjgsIDB4QUUsIDB4RDIsIDB4QTYsCi0gICAgICAweEFCLCAweEY3LCAweDE1LCAweDg4LCAweDA5LCAweENGLCAweDRGLCAweDNDIH0sCi0jaWYgIWRlZmluZWQoTUJFRFRMU19BRVNfT05MWV8xMjhfQklUX0tFWV9MRU5HVEgpCi0gICAgeyAweDhFLCAweDczLCAweEIwLCAweEY3LCAweERBLCAweDBFLCAweDY0LCAweDUyLAotICAgICAgMHhDOCwgMHgxMCwgMHhGMywgMHgyQiwgMHg4MCwgMHg5MCwgMHg3OSwgMHhFNSwKLSAgICAgIDB4NjIsIDB4RjgsIDB4RUEsIDB4RDIsIDB4NTIsIDB4MkMsIDB4NkIsIDB4N0IgfSwKLSAgICB7IDB4NjAsIDB4M0QsIDB4RUIsIDB4MTAsIDB4MTUsIDB4Q0EsIDB4NzEsIDB4QkUsCi0gICAgICAweDJCLCAweDczLCAweEFFLCAweEYwLCAweDg1LCAweDdELCAweDc3LCAweDgxLAotICAgICAgMHgxRiwgMHgzNSwgMHgyQywgMHgwNywgMHgzQiwgMHg2MSwgMHgwOCwgMHhENywKLSAgICAgIDB4MkQsIDB4OTgsIDB4MTAsIDB4QTMsIDB4MDksIDB4MTQsIDB4REYsIDB4RjQgfQotI2VuZGlmCi19OwotCi1zdGF0aWMgY29uc3QgdW5zaWduZWQgY2hhciBhZXNfdGVzdF9jZmIxMjhfaXZbMTZdID0KLXsKLSAgICAweDAwLCAweDAxLCAweDAyLCAweDAzLCAweDA0LCAweDA1LCAweDA2LCAweDA3LAotICAgIDB4MDgsIDB4MDksIDB4MEEsIDB4MEIsIDB4MEMsIDB4MEQsIDB4MEUsIDB4MEYKLX07Ci0KLXN0YXRpYyBjb25zdCB1bnNpZ25lZCBjaGFyIGFlc190ZXN0X2NmYjEyOF9wdFs2NF0gPQotewotICAgIDB4NkIsIDB4QzEsIDB4QkUsIDB4RTIsIDB4MkUsIDB4NDAsIDB4OUYsIDB4OTYsCi0gICAgMHhFOSwgMHgzRCwgMHg3RSwgMHgxMSwgMHg3MywgMHg5MywgMHgxNywgMHgyQSwKLSAgICAweEFFLCAweDJELCAweDhBLCAweDU3LCAweDFFLCAweDAzLCAweEFDLCAweDlDLAotICAgIDB4OUUsIDB4QjcsIDB4NkYsIDB4QUMsIDB4NDUsIDB4QUYsIDB4OEUsIDB4NTEsCi0gICAgMHgzMCwgMHhDOCwgMHgxQywgMHg0NiwgMHhBMywgMHg1QywgMHhFNCwgMHgxMSwKLSAgICAweEU1LCAweEZCLCAweEMxLCAweDE5LCAweDFBLCAweDBBLCAweDUyLCAweEVGLAotICAgIDB4RjYsIDB4OUYsIDB4MjQsIDB4NDUsIDB4REYsIDB4NEYsIDB4OUIsIDB4MTcsCi0gICAgMHhBRCwgMHgyQiwgMHg0MSwgMHg3QiwgMHhFNiwgMHg2QywgMHgzNywgMHgxMAotfTsKLQotc3RhdGljIGNvbnN0IHVuc2lnbmVkIGNoYXIgYWVzX3Rlc3RfY2ZiMTI4X2N0W11bNjRdID0KLXsKLSAgICB7IDB4M0IsIDB4M0YsIDB4RDksIDB4MkUsIDB4QjcsIDB4MkQsIDB4QUQsIDB4MjAsCi0gICAgICAweDMzLCAweDM0LCAweDQ5LCAweEY4LCAweEU4LCAweDNDLCAweEZCLCAweDRBLAotICAgICAgMHhDOCwgMHhBNiwgMHg0NSwgMHgzNywgMHhBMCwgMHhCMywgMHhBOSwgMHgzRiwKLSAgICAgIDB4Q0QsIDB4RTMsIDB4Q0QsIDB4QUQsIDB4OUYsIDB4MUMsIDB4RTUsIDB4OEIsCi0gICAgICAweDI2LCAweDc1LCAweDFGLCAweDY3LCAweEEzLCAweENCLCAweEIxLCAweDQwLAotICAgICAgMHhCMSwgMHg4MCwgMHg4QywgMHhGMSwgMHg4NywgMHhBNCwgMHhGNCwgMHhERiwKLSAgICAgIDB4QzAsIDB4NEIsIDB4MDUsIDB4MzUsIDB4N0MsIDB4NUQsIDB4MUMsIDB4MEUsCi0gICAgICAweEVBLCAweEM0LCAweEM2LCAweDZGLCAweDlGLCAweEY3LCAweEYyLCAweEU2IH0sCi0jaWYgIWRlZmluZWQoTUJFRFRMU19BRVNfT05MWV8xMjhfQklUX0tFWV9MRU5HVEgpCi0gICAgeyAweENELCAweEM4LCAweDBELCAweDZGLCAweERELCAweEYxLCAweDhDLCAweEFCLAotICAgICAgMHgzNCwgMHhDMiwgMHg1OSwgMHgwOSwgMHhDOSwgMHg5QSwgMHg0MSwgMHg3NCwKLSAgICAgIDB4NjcsIDB4Q0UsIDB4N0YsIDB4N0YsIDB4ODEsIDB4MTcsIDB4MzYsIDB4MjEsCi0gICAgICAweDk2LCAweDFBLCAweDJCLCAweDcwLCAweDE3LCAweDFELCAweDNELCAweDdBLAotICAgICAgMHgyRSwgMHgxRSwgMHg4QSwgMHgxRCwgMHhENSwgMHg5QiwgMHg4OCwgMHhCMSwKLSAgICAgIDB4QzgsIDB4RTYsIDB4MEYsIDB4RUQsIDB4MUUsIDB4RkEsIDB4QzQsIDB4QzksCi0gICAgICAweEMwLCAweDVGLCAweDlGLCAweDlDLCAweEE5LCAweDgzLCAweDRGLCAweEEwLAotICAgICAgMHg0MiwgMHhBRSwgMHg4RiwgMHhCQSwgMHg1OCwgMHg0QiwgMHgwOSwgMHhGRiB9LAotICAgIHsgMHhEQywgMHg3RSwgMHg4NCwgMHhCRiwgMHhEQSwgMHg3OSwgMHgxNiwgMHg0QiwKLSAgICAgIDB4N0UsIDB4Q0QsIDB4ODQsIDB4ODYsIDB4OTgsIDB4NUQsIDB4MzgsIDB4NjAsCi0gICAgICAweDM5LCAweEZGLCAweEVELCAweDE0LCAweDNCLCAweDI4LCAweEIxLCAweEM4LAotICAgICAgMHgzMiwgMHgxMSwgMHgzQywgMHg2MywgMHgzMSwgMHhFNSwgMHg0MCwgMHg3QiwKLSAgICAgIDB4REYsIDB4MTAsIDB4MTMsIDB4MjQsIDB4MTUsIDB4RTUsIDB4NEIsIDB4OTIsCi0gICAgICAweEExLCAweDNFLCAweEQwLCAweEE4LCAweDI2LCAweDdBLCAweEUyLCAweEY5LAotICAgICAgMHg3NSwgMHhBMywgMHg4NSwgMHg3NCwgMHgxQSwgMHhCOSwgMHhDRSwgMHhGOCwKLSAgICAgIDB4MjAsIDB4MzEsIDB4NjIsIDB4M0QsIDB4NTUsIDB4QjEsIDB4RTQsIDB4NzEgfQotI2VuZGlmCi19OwotI2VuZGlmIC8qIE1CRURUTFNfQ0lQSEVSX01PREVfQ0ZCICovCi0KLSNpZiBkZWZpbmVkKE1CRURUTFNfQ0lQSEVSX01PREVfT0ZCKQotLyoKLSAqIEFFUy1PRkIgdGVzdCB2ZWN0b3JzIGZyb206Ci0gKgotICogaHR0cHM6Ly9jc3JjLm5pc3QuZ292L3B1YmxpY2F0aW9ucy9kZXRhaWwvc3AvODAwLTM4YS9maW5hbAotICovCi1zdGF0aWMgY29uc3QgdW5zaWduZWQgY2hhciBhZXNfdGVzdF9vZmJfa2V5W11bMzJdID0KLXsKLSAgICB7IDB4MkIsIDB4N0UsIDB4MTUsIDB4MTYsIDB4MjgsIDB4QUUsIDB4RDIsIDB4QTYsCi0gICAgICAweEFCLCAweEY3LCAweDE1LCAweDg4LCAweDA5LCAweENGLCAweDRGLCAweDNDIH0sCi0jaWYgIWRlZmluZWQoTUJFRFRMU19BRVNfT05MWV8xMjhfQklUX0tFWV9MRU5HVEgpCi0gICAgeyAweDhFLCAweDczLCAweEIwLCAweEY3LCAweERBLCAweDBFLCAweDY0LCAweDUyLAotICAgICAgMHhDOCwgMHgxMCwgMHhGMywgMHgyQiwgMHg4MCwgMHg5MCwgMHg3OSwgMHhFNSwKLSAgICAgIDB4NjIsIDB4RjgsIDB4RUEsIDB4RDIsIDB4NTIsIDB4MkMsIDB4NkIsIDB4N0IgfSwKLSAgICB7IDB4NjAsIDB4M0QsIDB4RUIsIDB4MTAsIDB4MTUsIDB4Q0EsIDB4NzEsIDB4QkUsCi0gICAgICAweDJCLCAweDczLCAweEFFLCAweEYwLCAweDg1LCAweDdELCAweDc3LCAweDgxLAotICAgICAgMHgxRiwgMHgzNSwgMHgyQywgMHgwNywgMHgzQiwgMHg2MSwgMHgwOCwgMHhENywKLSAgICAgIDB4MkQsIDB4OTgsIDB4MTAsIDB4QTMsIDB4MDksIDB4MTQsIDB4REYsIDB4RjQgfQotI2VuZGlmCi19OwotCi1zdGF0aWMgY29uc3QgdW5zaWduZWQgY2hhciBhZXNfdGVzdF9vZmJfaXZbMTZdID0KLXsKLSAgICAweDAwLCAweDAxLCAweDAyLCAweDAzLCAweDA0LCAweDA1LCAweDA2LCAweDA3LAotICAgIDB4MDgsIDB4MDksIDB4MEEsIDB4MEIsIDB4MEMsIDB4MEQsIDB4MEUsIDB4MEYKLX07Ci0KLXN0YXRpYyBjb25zdCB1bnNpZ25lZCBjaGFyIGFlc190ZXN0X29mYl9wdFs2NF0gPQotewotICAgIDB4NkIsIDB4QzEsIDB4QkUsIDB4RTIsIDB4MkUsIDB4NDAsIDB4OUYsIDB4OTYsCi0gICAgMHhFOSwgMHgzRCwgMHg3RSwgMHgxMSwgMHg3MywgMHg5MywgMHgxNywgMHgyQSwKLSAgICAweEFFLCAweDJELCAweDhBLCAweDU3LCAweDFFLCAweDAzLCAweEFDLCAweDlDLAotICAgIDB4OUUsIDB4QjcsIDB4NkYsIDB4QUMsIDB4NDUsIDB4QUYsIDB4OEUsIDB4NTEsCi0gICAgMHgzMCwgMHhDOCwgMHgxQywgMHg0NiwgMHhBMywgMHg1QywgMHhFNCwgMHgxMSwKLSAgICAweEU1LCAweEZCLCAweEMxLCAweDE5LCAweDFBLCAweDBBLCAweDUyLCAweEVGLAotICAgIDB4RjYsIDB4OUYsIDB4MjQsIDB4NDUsIDB4REYsIDB4NEYsIDB4OUIsIDB4MTcsCi0gICAgMHhBRCwgMHgyQiwgMHg0MSwgMHg3QiwgMHhFNiwgMHg2QywgMHgzNywgMHgxMAotfTsKLQotc3RhdGljIGNvbnN0IHVuc2lnbmVkIGNoYXIgYWVzX3Rlc3Rfb2ZiX2N0W11bNjRdID0KLXsKLSAgICB7IDB4M0IsIDB4M0YsIDB4RDksIDB4MkUsIDB4QjcsIDB4MkQsIDB4QUQsIDB4MjAsCi0gICAgICAweDMzLCAweDM0LCAweDQ5LCAweEY4LCAweEU4LCAweDNDLCAweEZCLCAweDRBLAotICAgICAgMHg3NywgMHg4OSwgMHg1MCwgMHg4ZCwgMHgxNiwgMHg5MSwgMHg4ZiwgMHgwMywKLSAgICAgIDB4ZjUsIDB4M2MsIDB4NTIsIDB4ZGEsIDB4YzUsIDB4NGUsIDB4ZDgsIDB4MjUsCi0gICAgICAweDk3LCAweDQwLCAweDA1LCAweDFlLCAweDljLCAweDVmLCAweGVjLCAweGY2LAotICAgICAgMHg0MywgMHg0NCwgMHhmNywgMHhhOCwgMHgyMiwgMHg2MCwgMHhlZCwgMHhjYywKLSAgICAgIDB4MzAsIDB4NGMsIDB4NjUsIDB4MjgsIDB4ZjYsIDB4NTksIDB4YzcsIDB4NzgsCi0gICAgICAweDY2LCAweGE1LCAweDEwLCAweGQ5LCAweGMxLCAweGQ2LCAweGFlLCAweDVlIH0sCi0jaWYgIWRlZmluZWQoTUJFRFRMU19BRVNfT05MWV8xMjhfQklUX0tFWV9MRU5HVEgpCi0gICAgeyAweENELCAweEM4LCAweDBELCAweDZGLCAweERELCAweEYxLCAweDhDLCAweEFCLAotICAgICAgMHgzNCwgMHhDMiwgMHg1OSwgMHgwOSwgMHhDOSwgMHg5QSwgMHg0MSwgMHg3NCwKLSAgICAgIDB4ZmMsIDB4YzIsIDB4OGIsIDB4OGQsIDB4NGMsIDB4NjMsIDB4ODMsIDB4N2MsCi0gICAgICAweDA5LCAweGU4LCAweDE3LCAweDAwLCAweGMxLCAweDEwLCAweDA0LCAweDAxLAotICAgICAgMHg4ZCwgMHg5YSwgMHg5YSwgMHhlYSwgMHhjMCwgMHhmNiwgMHg1OSwgMHg2ZiwKLSAgICAgIDB4NTUsIDB4OWMsIDB4NmQsIDB4NGQsIDB4YWYsIDB4NTksIDB4YTUsIDB4ZjIsCi0gICAgICAweDZkLCAweDlmLCAweDIwLCAweDA4LCAweDU3LCAweGNhLCAweDZjLCAweDNlLAotICAgICAgMHg5YywgMHhhYywgMHg1MiwgMHg0YiwgMHhkOSwgMHhhYywgMHhjOSwgMHgyYSB9LAotICAgIHsgMHhEQywgMHg3RSwgMHg4NCwgMHhCRiwgMHhEQSwgMHg3OSwgMHgxNiwgMHg0QiwKLSAgICAgIDB4N0UsIDB4Q0QsIDB4ODQsIDB4ODYsIDB4OTgsIDB4NUQsIDB4MzgsIDB4NjAsCi0gICAgICAweDRmLCAweGViLCAweGRjLCAweDY3LCAweDQwLCAweGQyLCAweDBiLCAweDNhLAotICAgICAgMHhjOCwgMHg4ZiwgMHg2YSwgMHhkOCwgMHgyYSwgMHg0ZiwgMHhiMCwgMHg4ZCwKLSAgICAgIDB4NzEsIDB4YWIsIDB4NDcsIDB4YTAsIDB4ODYsIDB4ZTgsIDB4NmUsIDB4ZWQsCi0gICAgICAweGYzLCAweDlkLCAweDFjLCAweDViLCAweGJhLCAweDk3LCAweGM0LCAweDA4LAotICAgICAgMHgwMSwgMHgyNiwgMHgxNCwgMHgxZCwgMHg2NywgMHhmMywgMHg3YiwgMHhlOCwKLSAgICAgIDB4NTMsIDB4OGYsIDB4NWEsIDB4OGIsIDB4ZTcsIDB4NDAsIDB4ZTQsIDB4ODQgfQotI2VuZGlmCi19OwotI2VuZGlmIC8qIE1CRURUTFNfQ0lQSEVSX01PREVfT0ZCICovCi0KLSNpZiBkZWZpbmVkKE1CRURUTFNfQ0lQSEVSX01PREVfQ1RSKQotLyoKLSAqIEFFUy1DVFIgdGVzdCB2ZWN0b3JzIGZyb206Ci0gKgotICogaHR0cDovL3d3dy5mYXFzLm9yZy9yZmNzL3JmYzM2ODYuaHRtbAotICovCi0KLXN0YXRpYyBjb25zdCB1bnNpZ25lZCBjaGFyIGFlc190ZXN0X2N0cl9rZXlbXVsxNl0gPQotewotICAgIHsgMHhBRSwgMHg2OCwgMHg1MiwgMHhGOCwgMHgxMiwgMHgxMCwgMHg2NywgMHhDQywKLSAgICAgIDB4NEIsIDB4RjcsIDB4QTUsIDB4NzYsIDB4NTUsIDB4NzcsIDB4RjMsIDB4OUUgfSwKLSAgICB7IDB4N0UsIDB4MjQsIDB4MDYsIDB4NzgsIDB4MTcsIDB4RkEsIDB4RTAsIDB4RDcsCi0gICAgICAweDQzLCAweEQ2LCAweENFLCAweDFGLCAweDMyLCAweDUzLCAweDkxLCAweDYzIH0sCi0gICAgeyAweDc2LCAweDkxLCAweEJFLCAweDAzLCAweDVFLCAweDUwLCAweDIwLCAweEE4LAotICAgICAgMHhBQywgMHg2RSwgMHg2MSwgMHg4NSwgMHgyOSwgMHhGOSwgMHhBMCwgMHhEQyB9Ci19OwotCi1zdGF0aWMgY29uc3QgdW5zaWduZWQgY2hhciBhZXNfdGVzdF9jdHJfbm9uY2VfY291bnRlcltdWzE2XSA9Ci17Ci0gICAgeyAweDAwLCAweDAwLCAweDAwLCAweDMwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAgICAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMSB9LAotICAgIHsgMHgwMCwgMHg2QywgMHhCNiwgMHhEQiwgMHhDMCwgMHg1NCwgMHgzQiwgMHg1OSwKLSAgICAgIDB4REEsIDB4NDgsIDB4RDksIDB4MEIsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDEgfSwKLSAgICB7IDB4MDAsIDB4RTAsIDB4MDEsIDB4N0IsIDB4MjcsIDB4NzcsIDB4N0YsIDB4M0YsCi0gICAgICAweDRBLCAweDE3LCAweDg2LCAweEYwLCAweDAwLCAweDAwLCAweDAwLCAweDAxIH0KLX07Ci0KLXN0YXRpYyBjb25zdCB1bnNpZ25lZCBjaGFyIGFlc190ZXN0X2N0cl9wdFtdWzQ4XSA9Ci17Ci0gICAgeyAweDUzLCAweDY5LCAweDZFLCAweDY3LCAweDZDLCAweDY1LCAweDIwLCAweDYyLAotICAgICAgMHg2QywgMHg2RiwgMHg2MywgMHg2QiwgMHgyMCwgMHg2RCwgMHg3MywgMHg2NyB9LAotICAgIHsgMHgwMCwgMHgwMSwgMHgwMiwgMHgwMywgMHgwNCwgMHgwNSwgMHgwNiwgMHgwNywKLSAgICAgIDB4MDgsIDB4MDksIDB4MEEsIDB4MEIsIDB4MEMsIDB4MEQsIDB4MEUsIDB4MEYsCi0gICAgICAweDEwLCAweDExLCAweDEyLCAweDEzLCAweDE0LCAweDE1LCAweDE2LCAweDE3LAotICAgICAgMHgxOCwgMHgxOSwgMHgxQSwgMHgxQiwgMHgxQywgMHgxRCwgMHgxRSwgMHgxRiB9LAotCi0gICAgeyAweDAwLCAweDAxLCAweDAyLCAweDAzLCAweDA0LCAweDA1LCAweDA2LCAweDA3LAotICAgICAgMHgwOCwgMHgwOSwgMHgwQSwgMHgwQiwgMHgwQywgMHgwRCwgMHgwRSwgMHgwRiwKLSAgICAgIDB4MTAsIDB4MTEsIDB4MTIsIDB4MTMsIDB4MTQsIDB4MTUsIDB4MTYsIDB4MTcsCi0gICAgICAweDE4LCAweDE5LCAweDFBLCAweDFCLCAweDFDLCAweDFELCAweDFFLCAweDFGLAotICAgICAgMHgyMCwgMHgyMSwgMHgyMiwgMHgyMyB9Ci19OwotCi1zdGF0aWMgY29uc3QgdW5zaWduZWQgY2hhciBhZXNfdGVzdF9jdHJfY3RbXVs0OF0gPQotewotICAgIHsgMHhFNCwgMHgwOSwgMHg1RCwgMHg0RiwgMHhCNywgMHhBNywgMHhCMywgMHg3OSwKLSAgICAgIDB4MkQsIDB4NjEsIDB4NzUsIDB4QTMsIDB4MjYsIDB4MTMsIDB4MTEsIDB4QjggfSwKLSAgICB7IDB4NTEsIDB4MDQsIDB4QTEsIDB4MDYsIDB4MTYsIDB4OEEsIDB4NzIsIDB4RDksCi0gICAgICAweDc5LCAweDBELCAweDQxLCAweEVFLCAweDhFLCAweERBLCAweEQzLCAweDg4LAotICAgICAgMHhFQiwgMHgyRSwgMHgxRSwgMHhGQywgMHg0NiwgMHhEQSwgMHg1NywgMHhDOCwKLSAgICAgIDB4RkMsIDB4RTYsIDB4MzAsIDB4REYsIDB4OTEsIDB4NDEsIDB4QkUsIDB4MjggfSwKLSAgICB7IDB4QzEsIDB4Q0YsIDB4NDgsIDB4QTgsIDB4OUYsIDB4MkYsIDB4RkQsIDB4RDksCi0gICAgICAweENGLCAweDQ2LCAweDUyLCAweEU5LCAweEVGLCAweERCLCAweDcyLCAweEQ3LAotICAgICAgMHg0NSwgMHg0MCwgMHhBNCwgMHgyQiwgMHhERSwgMHg2RCwgMHg3OCwgMHgzNiwKLSAgICAgIDB4RDUsIDB4OUEsIDB4NUMsIDB4RUEsIDB4QUUsIDB4RjMsIDB4MTAsIDB4NTMsCi0gICAgICAweDI1LCAweEIyLCAweDA3LCAweDJGIH0KLX07Ci0KLXN0YXRpYyBjb25zdCBpbnQgYWVzX3Rlc3RfY3RyX2xlblszXSA9Ci17IDE2LCAzMiwgMzYgfTsKLSNlbmRpZiAvKiBNQkVEVExTX0NJUEhFUl9NT0RFX0NUUiAqLwotCi0jaWYgZGVmaW5lZChNQkVEVExTX0NJUEhFUl9NT0RFX1hUUykKLS8qCi0gKiBBRVMtWFRTIHRlc3QgdmVjdG9ycyBmcm9tOgotICoKLSAqIElFRUUgUDE2MTkvRDE2IEFubmV4IEIKLSAqIGh0dHBzOi8vd2ViLmFyY2hpdmUub3JnL3dlYi8yMDE1MDYyOTAyNDQyMS9odHRwOi8vZ3JvdXBlci5pZWVlLm9yZy9ncm91cHMvMTYxOS9lbWFpbC9wZGYwMDA4Ni5wZGYKLSAqIChBcmNoaXZlZCBmcm9tIG9yaWdpbmFsIGF0IGh0dHA6Ly9ncm91cGVyLmllZWUub3JnL2dyb3Vwcy8xNjE5L2VtYWlsL3BkZjAwMDg2LnBkZikKLSAqLwotc3RhdGljIGNvbnN0IHVuc2lnbmVkIGNoYXIgYWVzX3Rlc3RfeHRzX2tleVtdWzMyXSA9Ci17Ci0gICAgeyAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAgICAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgICAgIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gICAgICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwIH0sCi0gICAgeyAweDExLCAweDExLCAweDExLCAweDExLCAweDExLCAweDExLCAweDExLCAweDExLAotICAgICAgMHgxMSwgMHgxMSwgMHgxMSwgMHgxMSwgMHgxMSwgMHgxMSwgMHgxMSwgMHgxMSwKLSAgICAgIDB4MjIsIDB4MjIsIDB4MjIsIDB4MjIsIDB4MjIsIDB4MjIsIDB4MjIsIDB4MjIsCi0gICAgICAweDIyLCAweDIyLCAweDIyLCAweDIyLCAweDIyLCAweDIyLCAweDIyLCAweDIyIH0sCi0gICAgeyAweGZmLCAweGZlLCAweGZkLCAweGZjLCAweGZiLCAweGZhLCAweGY5LCAweGY4LAotICAgICAgMHhmNywgMHhmNiwgMHhmNSwgMHhmNCwgMHhmMywgMHhmMiwgMHhmMSwgMHhmMCwKLSAgICAgIDB4MjIsIDB4MjIsIDB4MjIsIDB4MjIsIDB4MjIsIDB4MjIsIDB4MjIsIDB4MjIsCi0gICAgICAweDIyLCAweDIyLCAweDIyLCAweDIyLCAweDIyLCAweDIyLCAweDIyLCAweDIyIH0sCi19OwotCi1zdGF0aWMgY29uc3QgdW5zaWduZWQgY2hhciBhZXNfdGVzdF94dHNfcHQzMltdWzMyXSA9Ci17Ci0gICAgeyAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAgICAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgICAgIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gICAgICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwIH0sCi0gICAgeyAweDQ0LCAweDQ0LCAweDQ0LCAweDQ0LCAweDQ0LCAweDQ0LCAweDQ0LCAweDQ0LAotICAgICAgMHg0NCwgMHg0NCwgMHg0NCwgMHg0NCwgMHg0NCwgMHg0NCwgMHg0NCwgMHg0NCwKLSAgICAgIDB4NDQsIDB4NDQsIDB4NDQsIDB4NDQsIDB4NDQsIDB4NDQsIDB4NDQsIDB4NDQsCi0gICAgICAweDQ0LCAweDQ0LCAweDQ0LCAweDQ0LCAweDQ0LCAweDQ0LCAweDQ0LCAweDQ0IH0sCi0gICAgeyAweDQ0LCAweDQ0LCAweDQ0LCAweDQ0LCAweDQ0LCAweDQ0LCAweDQ0LCAweDQ0LAotICAgICAgMHg0NCwgMHg0NCwgMHg0NCwgMHg0NCwgMHg0NCwgMHg0NCwgMHg0NCwgMHg0NCwKLSAgICAgIDB4NDQsIDB4NDQsIDB4NDQsIDB4NDQsIDB4NDQsIDB4NDQsIDB4NDQsIDB4NDQsCi0gICAgICAweDQ0LCAweDQ0LCAweDQ0LCAweDQ0LCAweDQ0LCAweDQ0LCAweDQ0LCAweDQ0IH0sCi19OwotCi1zdGF0aWMgY29uc3QgdW5zaWduZWQgY2hhciBhZXNfdGVzdF94dHNfY3QzMltdWzMyXSA9Ci17Ci0gICAgeyAweDkxLCAweDdjLCAweGY2LCAweDllLCAweGJkLCAweDY4LCAweGIyLCAweGVjLAotICAgICAgMHg5YiwgMHg5ZiwgMHhlOSwgMHhhMywgMHhlYSwgMHhkZCwgMHhhNiwgMHg5MiwKLSAgICAgIDB4Y2QsIDB4NDMsIDB4ZDIsIDB4ZjUsIDB4OTUsIDB4OTgsIDB4ZWQsIDB4ODUsCi0gICAgICAweDhjLCAweDAyLCAweGMyLCAweDY1LCAweDJmLCAweGJmLCAweDkyLCAweDJlIH0sCi0gICAgeyAweGM0LCAweDU0LCAweDE4LCAweDVlLCAweDZhLCAweDE2LCAweDkzLCAweDZlLAotICAgICAgMHgzOSwgMHgzMywgMHg0MCwgMHgzOCwgMHhhYywgMHhlZiwgMHg4MywgMHg4YiwKLSAgICAgIDB4ZmIsIDB4MTgsIDB4NmYsIDB4ZmYsIDB4NzQsIDB4ODAsIDB4YWQsIDB4YzQsCi0gICAgICAweDI4LCAweDkzLCAweDgyLCAweGVjLCAweGQ2LCAweGQzLCAweDk0LCAweGYwIH0sCi0gICAgeyAweGFmLCAweDg1LCAweDMzLCAweDZiLCAweDU5LCAweDdhLCAweGZjLCAweDFhLAotICAgICAgMHg5MCwgMHgwYiwgMHgyZSwgMHhiMiwgMHgxZSwgMHhjOSwgMHg0OSwgMHhkMiwKLSAgICAgIDB4OTIsIDB4ZGYsIDB4NGMsIDB4MDQsIDB4N2UsIDB4MGIsIDB4MjEsIDB4NTMsCi0gICAgICAweDIxLCAweDg2LCAweGE1LCAweDk3LCAweDFhLCAweDIyLCAweDdhLCAweDg5IH0sCi19OwotCi1zdGF0aWMgY29uc3QgdW5zaWduZWQgY2hhciBhZXNfdGVzdF94dHNfZGF0YV91bml0W11bMTZdID0KLXsKLSAgICB7IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gICAgICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwIH0sCi0gICAgeyAweDMzLCAweDMzLCAweDMzLCAweDMzLCAweDMzLCAweDAwLCAweDAwLCAweDAwLAotICAgICAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCB9LAotICAgIHsgMHgzMywgMHgzMywgMHgzMywgMHgzMywgMHgzMywgMHgwMCwgMHgwMCwgMHgwMCwKLSAgICAgIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAgfSwKLX07Ci0KLSNlbmRpZiAvKiBNQkVEVExTX0NJUEhFUl9NT0RFX1hUUyAqLwotCi0vKgotICogQ2hlY2t1cCByb3V0aW5lCi0gKi8KLWludCBtYmVkdGxzX2Flc19zZWxmX3Rlc3QoaW50IHZlcmJvc2UpCi17Ci0gICAgaW50IHJldCA9IDAsIGksIGosIHUsIG1vZGU7Ci0gICAgdW5zaWduZWQgaW50IGtleWJpdHM7Ci0gICAgdW5zaWduZWQgY2hhciBrZXlbMzJdOwotICAgIHVuc2lnbmVkIGNoYXIgYnVmWzY0XTsKLSAgICBjb25zdCB1bnNpZ25lZCBjaGFyICphZXNfdGVzdHM7Ci0jaWYgZGVmaW5lZChNQkVEVExTX0NJUEhFUl9NT0RFX0NCQykgfHwgZGVmaW5lZChNQkVEVExTX0NJUEhFUl9NT0RFX0NGQikgfHwgXAotICAgIGRlZmluZWQoTUJFRFRMU19DSVBIRVJfTU9ERV9PRkIpCi0gICAgdW5zaWduZWQgY2hhciBpdlsxNl07Ci0jZW5kaWYKLSNpZiBkZWZpbmVkKE1CRURUTFNfQ0lQSEVSX01PREVfQ0JDKQotICAgIHVuc2lnbmVkIGNoYXIgcHJ2WzE2XTsKLSNlbmRpZgotI2lmIGRlZmluZWQoTUJFRFRMU19DSVBIRVJfTU9ERV9DVFIpIHx8IGRlZmluZWQoTUJFRFRMU19DSVBIRVJfTU9ERV9DRkIpIHx8IFwKLSAgICBkZWZpbmVkKE1CRURUTFNfQ0lQSEVSX01PREVfT0ZCKQotICAgIHNpemVfdCBvZmZzZXQ7Ci0jZW5kaWYKLSNpZiBkZWZpbmVkKE1CRURUTFNfQ0lQSEVSX01PREVfQ1RSKSB8fCBkZWZpbmVkKE1CRURUTFNfQ0lQSEVSX01PREVfWFRTKQotICAgIGludCBsZW47Ci0jZW5kaWYKLSNpZiBkZWZpbmVkKE1CRURUTFNfQ0lQSEVSX01PREVfQ1RSKQotICAgIHVuc2lnbmVkIGNoYXIgbm9uY2VfY291bnRlclsxNl07Ci0gICAgdW5zaWduZWQgY2hhciBzdHJlYW1fYmxvY2tbMTZdOwotI2VuZGlmCi0gICAgbWJlZHRsc19hZXNfY29udGV4dCBjdHg7Ci0KLSAgICBtZW1zZXQoa2V5LCAwLCAzMik7Ci0gICAgbWJlZHRsc19hZXNfaW5pdCgmY3R4KTsKLQotICAgIGlmICh2ZXJib3NlICE9IDApIHsKLSNpZiBkZWZpbmVkKE1CRURUTFNfQUVTX0FMVCkKLSAgICAgICAgbWJlZHRsc19wcmludGYoIiAgQUVTIG5vdGU6IGFsdGVybmF0aXZlIGltcGxlbWVudGF0aW9uLlxuIik7Ci0jZWxzZSAvKiBNQkVEVExTX0FFU19BTFQgKi8KLSNpZiBkZWZpbmVkKE1CRURUTFNfQUVTTklfSEFWRV9DT0RFKQotI2lmIE1CRURUTFNfQUVTTklfSEFWRV9DT0RFID09IDEKLSAgICAgICAgbWJlZHRsc19wcmludGYoIiAgQUVTIG5vdGU6IEFFU05JIGNvZGUgcHJlc2VudCAoYXNzZW1ibHkgaW1wbGVtZW50YXRpb24pLlxuIik7Ci0jZWxpZiBNQkVEVExTX0FFU05JX0hBVkVfQ09ERSA9PSAyCi0gICAgICAgIG1iZWR0bHNfcHJpbnRmKCIgIEFFUyBub3RlOiBBRVNOSSBjb2RlIHByZXNlbnQgKGludHJpbnNpY3MgaW1wbGVtZW50YXRpb24pLlxuIik7Ci0jZWxzZQotI2Vycm9yICJVbnJlY29nbmlzZWQgdmFsdWUgZm9yIE1CRURUTFNfQUVTTklfSEFWRV9DT0RFIgotI2VuZGlmCi0gICAgICAgIGlmIChtYmVkdGxzX2Flc25pX2hhc19zdXBwb3J0KE1CRURUTFNfQUVTTklfQUVTKSkgewotICAgICAgICAgICAgbWJlZHRsc19wcmludGYoIiAgQUVTIG5vdGU6IHVzaW5nIEFFU05JLlxuIik7Ci0gICAgICAgIH0gZWxzZQotI2VuZGlmCi0jaWYgZGVmaW5lZChNQkVEVExTX1ZJQV9QQURMT0NLX0hBVkVfQ09ERSkKLSAgICAgICAgaWYgKG1iZWR0bHNfcGFkbG9ja19oYXNfc3VwcG9ydChNQkVEVExTX1BBRExPQ0tfQUNFKSkgewotICAgICAgICAgICAgbWJlZHRsc19wcmludGYoIiAgQUVTIG5vdGU6IHVzaW5nIFZJQSBQYWRsb2NrLlxuIik7Ci0gICAgICAgIH0gZWxzZQotI2VuZGlmCi0jaWYgZGVmaW5lZChNQkVEVExTX0FFU0NFX0hBVkVfQ09ERSkKLSAgICAgICAgaWYgKE1CRURUTFNfQUVTQ0VfSEFTX1NVUFBPUlQoKSkgewotICAgICAgICAgICAgbWJlZHRsc19wcmludGYoIiAgQUVTIG5vdGU6IHVzaW5nIEFFU0NFLlxuIik7Ci0gICAgICAgIH0gZWxzZQotI2VuZGlmCi0gICAgICAgIHsKLSNpZiAhZGVmaW5lZChNQkVEVExTX0FFU19VU0VfSEFSRFdBUkVfT05MWSkKLSAgICAgICAgICAgIG1iZWR0bHNfcHJpbnRmKCIgIEFFUyBub3RlOiBidWlsdC1pbiBpbXBsZW1lbnRhdGlvbi5cbiIpOwotI2VuZGlmCi0gICAgICAgIH0KLSNlbmRpZiAvKiBNQkVEVExTX0FFU19BTFQgKi8KLSAgICB9Ci0KLSAgICAvKgotICAgICAqIEVDQiBtb2RlCi0gICAgICovCi0gICAgewotICAgICAgICBzdGF0aWMgY29uc3QgaW50IG51bV90ZXN0cyA9Ci0gICAgICAgICAgICBzaXplb2YoYWVzX3Rlc3RfZWNiX2VuYykgLyBzaXplb2YoKmFlc190ZXN0X2VjYl9lbmMpOwotCi0gICAgICAgIGZvciAoaSA9IDA7IGkgPCBudW1fdGVzdHMgPDwgMTsgaSsrKSB7Ci0gICAgICAgICAgICB1ID0gaSA+PiAxOwotICAgICAgICAgICAga2V5Yml0cyA9IDEyOCArIHUgKiA2NDsKLSAgICAgICAgICAgIG1vZGUgPSBpICYgMTsKLQotICAgICAgICAgICAgaWYgKHZlcmJvc2UgIT0gMCkgewotICAgICAgICAgICAgICAgIG1iZWR0bHNfcHJpbnRmKCIgIEFFUy1FQ0ItJTN1ICglcyk6ICIsIGtleWJpdHMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vZGUgPT0gTUJFRFRMU19BRVNfREVDUllQVCkgPyAiZGVjIiA6ICJlbmMiKTsKLSAgICAgICAgICAgIH0KLSNpZiBkZWZpbmVkKE1CRURUTFNfQkxPQ0tfQ0lQSEVSX05PX0RFQ1JZUFQpCi0gICAgICAgICAgICBpZiAobW9kZSA9PSBNQkVEVExTX0FFU19ERUNSWVBUKSB7Ci0gICAgICAgICAgICAgICAgaWYgKHZlcmJvc2UgIT0gMCkgewotICAgICAgICAgICAgICAgICAgICBtYmVkdGxzX3ByaW50Zigic2tpcHBlZFxuIik7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICAgICAgfQotI2VuZGlmCi0KLSAgICAgICAgICAgIG1lbXNldChidWYsIDAsIDE2KTsKLQotI2lmICFkZWZpbmVkKE1CRURUTFNfQkxPQ0tfQ0lQSEVSX05PX0RFQ1JZUFQpCi0gICAgICAgICAgICBpZiAobW9kZSA9PSBNQkVEVExTX0FFU19ERUNSWVBUKSB7Ci0gICAgICAgICAgICAgICAgcmV0ID0gbWJlZHRsc19hZXNfc2V0a2V5X2RlYygmY3R4LCBrZXksIGtleWJpdHMpOwotICAgICAgICAgICAgICAgIGFlc190ZXN0cyA9IGFlc190ZXN0X2VjYl9kZWNbdV07Ci0gICAgICAgICAgICB9IGVsc2UKLSNlbmRpZgotICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIHJldCA9IG1iZWR0bHNfYWVzX3NldGtleV9lbmMoJmN0eCwga2V5LCBrZXliaXRzKTsKLSAgICAgICAgICAgICAgICBhZXNfdGVzdHMgPSBhZXNfdGVzdF9lY2JfZW5jW3VdOwotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICAvKgotICAgICAgICAgICAgICogQUVTLTE5MiBpcyBhbiBvcHRpb25hbCBmZWF0dXJlIHRoYXQgbWF5IGJlIHVuYXZhaWxhYmxlIHdoZW4KLSAgICAgICAgICAgICAqIHRoZXJlIGlzIGFuIGFsdGVybmF0aXZlIHVuZGVybHlpbmcgaW1wbGVtZW50YXRpb24gaS5lLiB3aGVuCi0gICAgICAgICAgICAgKiBNQkVEVExTX0FFU19BTFQgaXMgZGVmaW5lZC4KLSAgICAgICAgICAgICAqLwotICAgICAgICAgICAgaWYgKHJldCA9PSBNQkVEVExTX0VSUl9QTEFURk9STV9GRUFUVVJFX1VOU1VQUE9SVEVEICYmIGtleWJpdHMgPT0gMTkyKSB7Ci0gICAgICAgICAgICAgICAgbWJlZHRsc19wcmludGYoInNraXBwZWRcbiIpOwotICAgICAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICAgICAgfSBlbHNlIGlmIChyZXQgIT0gMCkgewotICAgICAgICAgICAgICAgIGdvdG8gZXhpdDsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgZm9yIChqID0gMDsgaiA8IDEwMDAwOyBqKyspIHsKLSAgICAgICAgICAgICAgICByZXQgPSBtYmVkdGxzX2Flc19jcnlwdF9lY2IoJmN0eCwgbW9kZSwgYnVmLCBidWYpOwotICAgICAgICAgICAgICAgIGlmIChyZXQgIT0gMCkgewotICAgICAgICAgICAgICAgICAgICBnb3RvIGV4aXQ7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICBpZiAobWVtY21wKGJ1ZiwgYWVzX3Rlc3RzLCAxNikgIT0gMCkgewotICAgICAgICAgICAgICAgIHJldCA9IDE7Ci0gICAgICAgICAgICAgICAgZ290byBleGl0OwotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICBpZiAodmVyYm9zZSAhPSAwKSB7Ci0gICAgICAgICAgICAgICAgbWJlZHRsc19wcmludGYoInBhc3NlZFxuIik7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLQotICAgICAgICBpZiAodmVyYm9zZSAhPSAwKSB7Ci0gICAgICAgICAgICBtYmVkdGxzX3ByaW50ZigiXG4iKTsKLSAgICAgICAgfQotICAgIH0KLQotI2lmIGRlZmluZWQoTUJFRFRMU19DSVBIRVJfTU9ERV9DQkMpCi0gICAgLyoKLSAgICAgKiBDQkMgbW9kZQotICAgICAqLwotICAgIHsKLSAgICAgICAgc3RhdGljIGNvbnN0IGludCBudW1fdGVzdHMgPQotICAgICAgICAgICAgc2l6ZW9mKGFlc190ZXN0X2NiY19kZWMpIC8gc2l6ZW9mKCphZXNfdGVzdF9jYmNfZGVjKTsKLQotICAgICAgICBmb3IgKGkgPSAwOyBpIDwgbnVtX3Rlc3RzIDw8IDE7IGkrKykgewotICAgICAgICAgICAgdSA9IGkgPj4gMTsKLSAgICAgICAgICAgIGtleWJpdHMgPSAxMjggKyB1ICogNjQ7Ci0gICAgICAgICAgICBtb2RlID0gaSAmIDE7Ci0KLSAgICAgICAgICAgIGlmICh2ZXJib3NlICE9IDApIHsKLSAgICAgICAgICAgICAgICBtYmVkdGxzX3ByaW50ZigiICBBRVMtQ0JDLSUzdSAoJXMpOiAiLCBrZXliaXRzLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb2RlID09IE1CRURUTFNfQUVTX0RFQ1JZUFQpID8gImRlYyIgOiAiZW5jIik7Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIG1lbXNldChpdiwgMCwgMTYpOwotICAgICAgICAgICAgbWVtc2V0KHBydiwgMCwgMTYpOwotICAgICAgICAgICAgbWVtc2V0KGJ1ZiwgMCwgMTYpOwotCi0gICAgICAgICAgICBpZiAobW9kZSA9PSBNQkVEVExTX0FFU19ERUNSWVBUKSB7Ci0gICAgICAgICAgICAgICAgcmV0ID0gbWJlZHRsc19hZXNfc2V0a2V5X2RlYygmY3R4LCBrZXksIGtleWJpdHMpOwotICAgICAgICAgICAgICAgIGFlc190ZXN0cyA9IGFlc190ZXN0X2NiY19kZWNbdV07Ci0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgIHJldCA9IG1iZWR0bHNfYWVzX3NldGtleV9lbmMoJmN0eCwga2V5LCBrZXliaXRzKTsKLSAgICAgICAgICAgICAgICBhZXNfdGVzdHMgPSBhZXNfdGVzdF9jYmNfZW5jW3VdOwotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICAvKgotICAgICAgICAgICAgICogQUVTLTE5MiBpcyBhbiBvcHRpb25hbCBmZWF0dXJlIHRoYXQgbWF5IGJlIHVuYXZhaWxhYmxlIHdoZW4KLSAgICAgICAgICAgICAqIHRoZXJlIGlzIGFuIGFsdGVybmF0aXZlIHVuZGVybHlpbmcgaW1wbGVtZW50YXRpb24gaS5lLiB3aGVuCi0gICAgICAgICAgICAgKiBNQkVEVExTX0FFU19BTFQgaXMgZGVmaW5lZC4KLSAgICAgICAgICAgICAqLwotICAgICAgICAgICAgaWYgKHJldCA9PSBNQkVEVExTX0VSUl9QTEFURk9STV9GRUFUVVJFX1VOU1VQUE9SVEVEICYmIGtleWJpdHMgPT0gMTkyKSB7Ci0gICAgICAgICAgICAgICAgbWJlZHRsc19wcmludGYoInNraXBwZWRcbiIpOwotICAgICAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICAgICAgfSBlbHNlIGlmIChyZXQgIT0gMCkgewotICAgICAgICAgICAgICAgIGdvdG8gZXhpdDsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgZm9yIChqID0gMDsgaiA8IDEwMDAwOyBqKyspIHsKLSAgICAgICAgICAgICAgICBpZiAobW9kZSA9PSBNQkVEVExTX0FFU19FTkNSWVBUKSB7Ci0gICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGNoYXIgdG1wWzE2XTsKLQotICAgICAgICAgICAgICAgICAgICBtZW1jcHkodG1wLCBwcnYsIDE2KTsKLSAgICAgICAgICAgICAgICAgICAgbWVtY3B5KHBydiwgYnVmLCAxNik7Ci0gICAgICAgICAgICAgICAgICAgIG1lbWNweShidWYsIHRtcCwgMTYpOwotICAgICAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgICAgIHJldCA9IG1iZWR0bHNfYWVzX2NyeXB0X2NiYygmY3R4LCBtb2RlLCAxNiwgaXYsIGJ1ZiwgYnVmKTsKLSAgICAgICAgICAgICAgICBpZiAocmV0ICE9IDApIHsKLSAgICAgICAgICAgICAgICAgICAgZ290byBleGl0OwotICAgICAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICBpZiAobWVtY21wKGJ1ZiwgYWVzX3Rlc3RzLCAxNikgIT0gMCkgewotICAgICAgICAgICAgICAgIHJldCA9IDE7Ci0gICAgICAgICAgICAgICAgZ290byBleGl0OwotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICBpZiAodmVyYm9zZSAhPSAwKSB7Ci0gICAgICAgICAgICAgICAgbWJlZHRsc19wcmludGYoInBhc3NlZFxuIik7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLQotICAgICAgICBpZiAodmVyYm9zZSAhPSAwKSB7Ci0gICAgICAgICAgICBtYmVkdGxzX3ByaW50ZigiXG4iKTsKLSAgICAgICAgfQotICAgIH0KLSNlbmRpZiAvKiBNQkVEVExTX0NJUEhFUl9NT0RFX0NCQyAqLwotCi0jaWYgZGVmaW5lZChNQkVEVExTX0NJUEhFUl9NT0RFX0NGQikKLSAgICAvKgotICAgICAqIENGQjEyOCBtb2RlCi0gICAgICovCi0gICAgewotICAgICAgICBzdGF0aWMgY29uc3QgaW50IG51bV90ZXN0cyA9Ci0gICAgICAgICAgICBzaXplb2YoYWVzX3Rlc3RfY2ZiMTI4X2tleSkgLyBzaXplb2YoKmFlc190ZXN0X2NmYjEyOF9rZXkpOwotCi0gICAgICAgIGZvciAoaSA9IDA7IGkgPCBudW1fdGVzdHMgPDwgMTsgaSsrKSB7Ci0gICAgICAgICAgICB1ID0gaSA+PiAxOwotICAgICAgICAgICAga2V5Yml0cyA9IDEyOCArIHUgKiA2NDsKLSAgICAgICAgICAgIG1vZGUgPSBpICYgMTsKLQotICAgICAgICAgICAgaWYgKHZlcmJvc2UgIT0gMCkgewotICAgICAgICAgICAgICAgIG1iZWR0bHNfcHJpbnRmKCIgIEFFUy1DRkIxMjgtJTN1ICglcyk6ICIsIGtleWJpdHMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vZGUgPT0gTUJFRFRMU19BRVNfREVDUllQVCkgPyAiZGVjIiA6ICJlbmMiKTsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgbWVtY3B5KGl2LCAgYWVzX3Rlc3RfY2ZiMTI4X2l2LCAxNik7Ci0gICAgICAgICAgICBtZW1jcHkoa2V5LCBhZXNfdGVzdF9jZmIxMjhfa2V5W3VdLCBrZXliaXRzIC8gOCk7Ci0KLSAgICAgICAgICAgIG9mZnNldCA9IDA7Ci0gICAgICAgICAgICByZXQgPSBtYmVkdGxzX2Flc19zZXRrZXlfZW5jKCZjdHgsIGtleSwga2V5Yml0cyk7Ci0gICAgICAgICAgICAvKgotICAgICAgICAgICAgICogQUVTLTE5MiBpcyBhbiBvcHRpb25hbCBmZWF0dXJlIHRoYXQgbWF5IGJlIHVuYXZhaWxhYmxlIHdoZW4KLSAgICAgICAgICAgICAqIHRoZXJlIGlzIGFuIGFsdGVybmF0aXZlIHVuZGVybHlpbmcgaW1wbGVtZW50YXRpb24gaS5lLiB3aGVuCi0gICAgICAgICAgICAgKiBNQkVEVExTX0FFU19BTFQgaXMgZGVmaW5lZC4KLSAgICAgICAgICAgICAqLwotICAgICAgICAgICAgaWYgKHJldCA9PSBNQkVEVExTX0VSUl9QTEFURk9STV9GRUFUVVJFX1VOU1VQUE9SVEVEICYmIGtleWJpdHMgPT0gMTkyKSB7Ci0gICAgICAgICAgICAgICAgbWJlZHRsc19wcmludGYoInNraXBwZWRcbiIpOwotICAgICAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICAgICAgfSBlbHNlIGlmIChyZXQgIT0gMCkgewotICAgICAgICAgICAgICAgIGdvdG8gZXhpdDsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgaWYgKG1vZGUgPT0gTUJFRFRMU19BRVNfREVDUllQVCkgewotICAgICAgICAgICAgICAgIG1lbWNweShidWYsIGFlc190ZXN0X2NmYjEyOF9jdFt1XSwgNjQpOwotICAgICAgICAgICAgICAgIGFlc190ZXN0cyA9IGFlc190ZXN0X2NmYjEyOF9wdDsKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgbWVtY3B5KGJ1ZiwgYWVzX3Rlc3RfY2ZiMTI4X3B0LCA2NCk7Ci0gICAgICAgICAgICAgICAgYWVzX3Rlc3RzID0gYWVzX3Rlc3RfY2ZiMTI4X2N0W3VdOwotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICByZXQgPSBtYmVkdGxzX2Flc19jcnlwdF9jZmIxMjgoJmN0eCwgbW9kZSwgNjQsICZvZmZzZXQsIGl2LCBidWYsIGJ1Zik7Ci0gICAgICAgICAgICBpZiAocmV0ICE9IDApIHsKLSAgICAgICAgICAgICAgICBnb3RvIGV4aXQ7Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIGlmIChtZW1jbXAoYnVmLCBhZXNfdGVzdHMsIDY0KSAhPSAwKSB7Ci0gICAgICAgICAgICAgICAgcmV0ID0gMTsKLSAgICAgICAgICAgICAgICBnb3RvIGV4aXQ7Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIGlmICh2ZXJib3NlICE9IDApIHsKLSAgICAgICAgICAgICAgICBtYmVkdGxzX3ByaW50ZigicGFzc2VkXG4iKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfQotCi0gICAgICAgIGlmICh2ZXJib3NlICE9IDApIHsKLSAgICAgICAgICAgIG1iZWR0bHNfcHJpbnRmKCJcbiIpOwotICAgICAgICB9Ci0gICAgfQotI2VuZGlmIC8qIE1CRURUTFNfQ0lQSEVSX01PREVfQ0ZCICovCi0KLSNpZiBkZWZpbmVkKE1CRURUTFNfQ0lQSEVSX01PREVfT0ZCKQotICAgIC8qCi0gICAgICogT0ZCIG1vZGUKLSAgICAgKi8KLSAgICB7Ci0gICAgICAgIHN0YXRpYyBjb25zdCBpbnQgbnVtX3Rlc3RzID0KLSAgICAgICAgICAgIHNpemVvZihhZXNfdGVzdF9vZmJfa2V5KSAvIHNpemVvZigqYWVzX3Rlc3Rfb2ZiX2tleSk7Ci0KLSAgICAgICAgZm9yIChpID0gMDsgaSA8IG51bV90ZXN0cyA8PCAxOyBpKyspIHsKLSAgICAgICAgICAgIHUgPSBpID4+IDE7Ci0gICAgICAgICAgICBrZXliaXRzID0gMTI4ICsgdSAqIDY0OwotICAgICAgICAgICAgbW9kZSA9IGkgJiAxOwotCi0gICAgICAgICAgICBpZiAodmVyYm9zZSAhPSAwKSB7Ci0gICAgICAgICAgICAgICAgbWJlZHRsc19wcmludGYoIiAgQUVTLU9GQi0lM3UgKCVzKTogIiwga2V5Yml0cywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9kZSA9PSBNQkVEVExTX0FFU19ERUNSWVBUKSA/ICJkZWMiIDogImVuYyIpOwotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICBtZW1jcHkoaXYsICBhZXNfdGVzdF9vZmJfaXYsIDE2KTsKLSAgICAgICAgICAgIG1lbWNweShrZXksIGFlc190ZXN0X29mYl9rZXlbdV0sIGtleWJpdHMgLyA4KTsKLQotICAgICAgICAgICAgb2Zmc2V0ID0gMDsKLSAgICAgICAgICAgIHJldCA9IG1iZWR0bHNfYWVzX3NldGtleV9lbmMoJmN0eCwga2V5LCBrZXliaXRzKTsKLSAgICAgICAgICAgIC8qCi0gICAgICAgICAgICAgKiBBRVMtMTkyIGlzIGFuIG9wdGlvbmFsIGZlYXR1cmUgdGhhdCBtYXkgYmUgdW5hdmFpbGFibGUgd2hlbgotICAgICAgICAgICAgICogdGhlcmUgaXMgYW4gYWx0ZXJuYXRpdmUgdW5kZXJseWluZyBpbXBsZW1lbnRhdGlvbiBpLmUuIHdoZW4KLSAgICAgICAgICAgICAqIE1CRURUTFNfQUVTX0FMVCBpcyBkZWZpbmVkLgotICAgICAgICAgICAgICovCi0gICAgICAgICAgICBpZiAocmV0ID09IE1CRURUTFNfRVJSX1BMQVRGT1JNX0ZFQVRVUkVfVU5TVVBQT1JURUQgJiYga2V5Yml0cyA9PSAxOTIpIHsKLSAgICAgICAgICAgICAgICBtYmVkdGxzX3ByaW50Zigic2tpcHBlZFxuIik7Ci0gICAgICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgICAgICB9IGVsc2UgaWYgKHJldCAhPSAwKSB7Ci0gICAgICAgICAgICAgICAgZ290byBleGl0OwotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICBpZiAobW9kZSA9PSBNQkVEVExTX0FFU19ERUNSWVBUKSB7Ci0gICAgICAgICAgICAgICAgbWVtY3B5KGJ1ZiwgYWVzX3Rlc3Rfb2ZiX2N0W3VdLCA2NCk7Ci0gICAgICAgICAgICAgICAgYWVzX3Rlc3RzID0gYWVzX3Rlc3Rfb2ZiX3B0OwotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICBtZW1jcHkoYnVmLCBhZXNfdGVzdF9vZmJfcHQsIDY0KTsKLSAgICAgICAgICAgICAgICBhZXNfdGVzdHMgPSBhZXNfdGVzdF9vZmJfY3RbdV07Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIHJldCA9IG1iZWR0bHNfYWVzX2NyeXB0X29mYigmY3R4LCA2NCwgJm9mZnNldCwgaXYsIGJ1ZiwgYnVmKTsKLSAgICAgICAgICAgIGlmIChyZXQgIT0gMCkgewotICAgICAgICAgICAgICAgIGdvdG8gZXhpdDsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgaWYgKG1lbWNtcChidWYsIGFlc190ZXN0cywgNjQpICE9IDApIHsKLSAgICAgICAgICAgICAgICByZXQgPSAxOwotICAgICAgICAgICAgICAgIGdvdG8gZXhpdDsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgaWYgKHZlcmJvc2UgIT0gMCkgewotICAgICAgICAgICAgICAgIG1iZWR0bHNfcHJpbnRmKCJwYXNzZWRcbiIpOwotICAgICAgICAgICAgfQotICAgICAgICB9Ci0KLSAgICAgICAgaWYgKHZlcmJvc2UgIT0gMCkgewotICAgICAgICAgICAgbWJlZHRsc19wcmludGYoIlxuIik7Ci0gICAgICAgIH0KLSAgICB9Ci0jZW5kaWYgLyogTUJFRFRMU19DSVBIRVJfTU9ERV9PRkIgKi8KLQotI2lmIGRlZmluZWQoTUJFRFRMU19DSVBIRVJfTU9ERV9DVFIpCi0gICAgLyoKLSAgICAgKiBDVFIgbW9kZQotICAgICAqLwotICAgIHsKLSAgICAgICAgc3RhdGljIGNvbnN0IGludCBudW1fdGVzdHMgPQotICAgICAgICAgICAgc2l6ZW9mKGFlc190ZXN0X2N0cl9rZXkpIC8gc2l6ZW9mKCphZXNfdGVzdF9jdHJfa2V5KTsKLQotICAgICAgICBmb3IgKGkgPSAwOyBpIDwgbnVtX3Rlc3RzIDw8IDE7IGkrKykgewotICAgICAgICAgICAgdSA9IGkgPj4gMTsKLSAgICAgICAgICAgIG1vZGUgPSBpICYgMTsKLQotICAgICAgICAgICAgaWYgKHZlcmJvc2UgIT0gMCkgewotICAgICAgICAgICAgICAgIG1iZWR0bHNfcHJpbnRmKCIgIEFFUy1DVFItMTI4ICglcyk6ICIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vZGUgPT0gTUJFRFRMU19BRVNfREVDUllQVCkgPyAiZGVjIiA6ICJlbmMiKTsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgbWVtY3B5KG5vbmNlX2NvdW50ZXIsIGFlc190ZXN0X2N0cl9ub25jZV9jb3VudGVyW3VdLCAxNik7Ci0gICAgICAgICAgICBtZW1jcHkoa2V5LCBhZXNfdGVzdF9jdHJfa2V5W3VdLCAxNik7Ci0KLSAgICAgICAgICAgIG9mZnNldCA9IDA7Ci0gICAgICAgICAgICBpZiAoKHJldCA9IG1iZWR0bHNfYWVzX3NldGtleV9lbmMoJmN0eCwga2V5LCAxMjgpKSAhPSAwKSB7Ci0gICAgICAgICAgICAgICAgZ290byBleGl0OwotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICBsZW4gPSBhZXNfdGVzdF9jdHJfbGVuW3VdOwotCi0gICAgICAgICAgICBpZiAobW9kZSA9PSBNQkVEVExTX0FFU19ERUNSWVBUKSB7Ci0gICAgICAgICAgICAgICAgbWVtY3B5KGJ1ZiwgYWVzX3Rlc3RfY3RyX2N0W3VdLCBsZW4pOwotICAgICAgICAgICAgICAgIGFlc190ZXN0cyA9IGFlc190ZXN0X2N0cl9wdFt1XTsKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgbWVtY3B5KGJ1ZiwgYWVzX3Rlc3RfY3RyX3B0W3VdLCBsZW4pOwotICAgICAgICAgICAgICAgIGFlc190ZXN0cyA9IGFlc190ZXN0X2N0cl9jdFt1XTsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgcmV0ID0gbWJlZHRsc19hZXNfY3J5cHRfY3RyKCZjdHgsIGxlbiwgJm9mZnNldCwgbm9uY2VfY291bnRlciwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJlYW1fYmxvY2ssIGJ1ZiwgYnVmKTsKLSAgICAgICAgICAgIGlmIChyZXQgIT0gMCkgewotICAgICAgICAgICAgICAgIGdvdG8gZXhpdDsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgaWYgKG1lbWNtcChidWYsIGFlc190ZXN0cywgbGVuKSAhPSAwKSB7Ci0gICAgICAgICAgICAgICAgcmV0ID0gMTsKLSAgICAgICAgICAgICAgICBnb3RvIGV4aXQ7Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIGlmICh2ZXJib3NlICE9IDApIHsKLSAgICAgICAgICAgICAgICBtYmVkdGxzX3ByaW50ZigicGFzc2VkXG4iKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfQotICAgIH0KLQotICAgIGlmICh2ZXJib3NlICE9IDApIHsKLSAgICAgICAgbWJlZHRsc19wcmludGYoIlxuIik7Ci0gICAgfQotI2VuZGlmIC8qIE1CRURUTFNfQ0lQSEVSX01PREVfQ1RSICovCi0KLSNpZiBkZWZpbmVkKE1CRURUTFNfQ0lQSEVSX01PREVfWFRTKQotICAgIC8qCi0gICAgICogWFRTIG1vZGUKLSAgICAgKi8KLSAgICB7Ci0gICAgICAgIHN0YXRpYyBjb25zdCBpbnQgbnVtX3Rlc3RzID0KLSAgICAgICAgICAgIHNpemVvZihhZXNfdGVzdF94dHNfa2V5KSAvIHNpemVvZigqYWVzX3Rlc3RfeHRzX2tleSk7Ci0gICAgICAgIG1iZWR0bHNfYWVzX3h0c19jb250ZXh0IGN0eF94dHM7Ci0KLSAgICAgICAgbWJlZHRsc19hZXNfeHRzX2luaXQoJmN0eF94dHMpOwotCi0gICAgICAgIGZvciAoaSA9IDA7IGkgPCBudW1fdGVzdHMgPDwgMTsgaSsrKSB7Ci0gICAgICAgICAgICBjb25zdCB1bnNpZ25lZCBjaGFyICpkYXRhX3VuaXQ7Ci0gICAgICAgICAgICB1ID0gaSA+PiAxOwotICAgICAgICAgICAgbW9kZSA9IGkgJiAxOwotCi0gICAgICAgICAgICBpZiAodmVyYm9zZSAhPSAwKSB7Ci0gICAgICAgICAgICAgICAgbWJlZHRsc19wcmludGYoIiAgQUVTLVhUUy0xMjggKCVzKTogIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9kZSA9PSBNQkVEVExTX0FFU19ERUNSWVBUKSA/ICJkZWMiIDogImVuYyIpOwotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICBtZW1zZXQoa2V5LCAwLCBzaXplb2Yoa2V5KSk7Ci0gICAgICAgICAgICBtZW1jcHkoa2V5LCBhZXNfdGVzdF94dHNfa2V5W3VdLCAzMik7Ci0gICAgICAgICAgICBkYXRhX3VuaXQgPSBhZXNfdGVzdF94dHNfZGF0YV91bml0W3VdOwotCi0gICAgICAgICAgICBsZW4gPSBzaXplb2YoKmFlc190ZXN0X3h0c19jdDMyKTsKLQotICAgICAgICAgICAgaWYgKG1vZGUgPT0gTUJFRFRMU19BRVNfREVDUllQVCkgewotICAgICAgICAgICAgICAgIHJldCA9IG1iZWR0bHNfYWVzX3h0c19zZXRrZXlfZGVjKCZjdHhfeHRzLCBrZXksIDI1Nik7Ci0gICAgICAgICAgICAgICAgaWYgKHJldCAhPSAwKSB7Ci0gICAgICAgICAgICAgICAgICAgIGdvdG8gZXhpdDsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgbWVtY3B5KGJ1ZiwgYWVzX3Rlc3RfeHRzX2N0MzJbdV0sIGxlbik7Ci0gICAgICAgICAgICAgICAgYWVzX3Rlc3RzID0gYWVzX3Rlc3RfeHRzX3B0MzJbdV07Ci0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgIHJldCA9IG1iZWR0bHNfYWVzX3h0c19zZXRrZXlfZW5jKCZjdHhfeHRzLCBrZXksIDI1Nik7Ci0gICAgICAgICAgICAgICAgaWYgKHJldCAhPSAwKSB7Ci0gICAgICAgICAgICAgICAgICAgIGdvdG8gZXhpdDsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgbWVtY3B5KGJ1ZiwgYWVzX3Rlc3RfeHRzX3B0MzJbdV0sIGxlbik7Ci0gICAgICAgICAgICAgICAgYWVzX3Rlc3RzID0gYWVzX3Rlc3RfeHRzX2N0MzJbdV07Ci0gICAgICAgICAgICB9Ci0KLQotICAgICAgICAgICAgcmV0ID0gbWJlZHRsc19hZXNfY3J5cHRfeHRzKCZjdHhfeHRzLCBtb2RlLCBsZW4sIGRhdGFfdW5pdCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBidWYsIGJ1Zik7Ci0gICAgICAgICAgICBpZiAocmV0ICE9IDApIHsKLSAgICAgICAgICAgICAgICBnb3RvIGV4aXQ7Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIGlmIChtZW1jbXAoYnVmLCBhZXNfdGVzdHMsIGxlbikgIT0gMCkgewotICAgICAgICAgICAgICAgIHJldCA9IDE7Ci0gICAgICAgICAgICAgICAgZ290byBleGl0OwotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICBpZiAodmVyYm9zZSAhPSAwKSB7Ci0gICAgICAgICAgICAgICAgbWJlZHRsc19wcmludGYoInBhc3NlZFxuIik7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLQotICAgICAgICBpZiAodmVyYm9zZSAhPSAwKSB7Ci0gICAgICAgICAgICBtYmVkdGxzX3ByaW50ZigiXG4iKTsKLSAgICAgICAgfQotCi0gICAgICAgIG1iZWR0bHNfYWVzX3h0c19mcmVlKCZjdHhfeHRzKTsKLSAgICB9Ci0jZW5kaWYgLyogTUJFRFRMU19DSVBIRVJfTU9ERV9YVFMgKi8KLQotICAgIHJldCA9IDA7Ci0KLWV4aXQ6Ci0gICAgaWYgKHJldCAhPSAwICYmIHZlcmJvc2UgIT0gMCkgewotICAgICAgICBtYmVkdGxzX3ByaW50ZigiZmFpbGVkXG4iKTsKLSAgICB9Ci0KLSAgICBtYmVkdGxzX2Flc19mcmVlKCZjdHgpOwotCi0gICAgcmV0dXJuIHJldDsKLX0KLQotI2VuZGlmIC8qIE1CRURUTFNfU0VMRl9URVNUICovCi0KLSNlbmRpZiAvKiBNQkVEVExTX0FFU19DICovCmRpZmYgLS1naXQgYS9saWJyYXJ5L2FyaWEuYyBiL2xpYnJhcnkvYXJpYS5jCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkOWY4NGNjLi4wMDAwMDAwCi0tLSBhL2xpYnJhcnkvYXJpYS5jCisrKyAvZGV2L251bGwKQEAgLTEsOTY5ICswLDAgQEAKLS8qCi0gKiAgQVJJQSBpbXBsZW1lbnRhdGlvbgotICoKLSAqICBDb3B5cmlnaHQgVGhlIE1iZWQgVExTIENvbnRyaWJ1dG9ycwotICogIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wIE9SIEdQTC0yLjAtb3ItbGF0ZXIKLSAqLwotCi0vKgotICogVGhpcyBpbXBsZW1lbnRhdGlvbiBpcyBiYXNlZCBvbiB0aGUgZm9sbG93aW5nIHN0YW5kYXJkczoKLSAqIFsxXSBodHRwOi8vMjEwLjEwNC4zMy4xMC9BUklBL2RvYy9BUklBLXNwZWNpZmljYXRpb24tZS5wZGYKLSAqIFsyXSBodHRwczovL3Rvb2xzLmlldGYub3JnL2h0bWwvcmZjNTc5NAotICovCi0KLSNpbmNsdWRlICJjb21tb24uaCIKLQotI2lmIGRlZmluZWQoTUJFRFRMU19BUklBX0MpCi0KLSNpbmNsdWRlICJtYmVkdGxzL2FyaWEuaCIKLQotI2luY2x1ZGUgPHN0cmluZy5oPgotCi0jaW5jbHVkZSAibWJlZHRscy9wbGF0Zm9ybS5oIgotCi0jaWYgIWRlZmluZWQoTUJFRFRMU19BUklBX0FMVCkKLQotI2luY2x1ZGUgIm1iZWR0bHMvcGxhdGZvcm1fdXRpbC5oIgotCi0vKgotICogbW9kaWZ5IGJ5dGUgb3JkZXI6ICggQSBCIEMgRCApIC0+ICggQiBBIEQgQyApLCBpLmUuIHN3YXAgcGFpcnMgb2YgYnl0ZXMKLSAqCi0gKiBUaGlzIGlzIHN1Ym1hdHJpeCBQMSBpbiBbMV0gQXBwZW5kaXggQi4xCi0gKgotICogQ29tbW9uIGNvbXBpbGVycyBmYWlsIHRvIHRyYW5zbGF0ZSB0aGlzIHRvIG1pbmltYWwgbnVtYmVyIG9mIGluc3RydWN0aW9ucywKLSAqIHNvIGxldCdzIHByb3ZpZGUgYXNtIHZlcnNpb25zIGZvciBjb21tb24gcGxhdGZvcm1zIHdpdGggQyBmYWxsYmFjay4KLSAqLwotI2lmIGRlZmluZWQoTUJFRFRMU19IQVZFX0FTTSkKLSNpZiBkZWZpbmVkKF9fYXJtX18pIC8qIHJldjE2IGF2YWlsYWJsZSBmcm9tIHY2IHVwICovCi0vKiBhcm1jYzUgLS1nbnUgZGVmaW5lcyBfX0dOVUNfXyBidXQgZG9lc24ndCBzdXBwb3J0IEdOVSdzIGV4dGVuZGVkIGFzbSAqLwotI2lmIGRlZmluZWQoX19HTlVDX18pICYmIFwKLSAgICAoIWRlZmluZWQoX19BUk1DQ19WRVJTSU9OKSB8fCBfX0FSTUNDX1ZFUlNJT04gPj0gNjAwMDAwMCkgJiYgXAotICAgIF9fQVJNX0FSQ0ggPj0gNgotc3RhdGljIGlubGluZSB1aW50MzJfdCBhcmlhX3AxKHVpbnQzMl90IHgpCi17Ci0gICAgdWludDMyX3QgcjsKLSAgICBfX2FzbSgicmV2MTYgJTAsICUxIiA6ICI9bCIgKHIpIDogImwiICh4KSk7Ci0gICAgcmV0dXJuIHI7Ci19Ci0jZGVmaW5lIEFSSUFfUDEgYXJpYV9wMQotI2VsaWYgZGVmaW5lZChfX0FSTUNDX1ZFUlNJT04pICYmIF9fQVJNQ0NfVkVSU0lPTiA8IDYwMDAwMDAgJiYgXAotICAgIChfX1RBUkdFVF9BUkNIX0FSTSA+PSA2IHx8IF9fVEFSR0VUX0FSQ0hfVEhVTUIgPj0gMykKLXN0YXRpYyBpbmxpbmUgdWludDMyX3QgYXJpYV9wMSh1aW50MzJfdCB4KQotewotICAgIHVpbnQzMl90IHI7Ci0gICAgX19hc20oInJldjE2IHIsIHgiKTsKLSAgICByZXR1cm4gcjsKLX0KLSNkZWZpbmUgQVJJQV9QMSBhcmlhX3AxCi0jZW5kaWYKLSNlbmRpZiAvKiBhcm0gKi8KLSNpZiBkZWZpbmVkKF9fR05VQ19fKSAmJiBcCi0gICAgZGVmaW5lZChfX2kzODZfXykgfHwgZGVmaW5lZChfX2FtZDY0X18pIHx8IGRlZmluZWQoX194ODZfNjRfXykKLS8qIEkgY291bGRuJ3QgZmluZCBhbiBJbnRlbCBlcXVpdmFsZW50IG9mIHJldjE2LCBzbyB0d28gaW5zdHJ1Y3Rpb25zICovCi0jZGVmaW5lIEFSSUFfUDEoeCkgQVJJQV9QMihBUklBX1AzKHgpKQotI2VuZGlmIC8qIHg4NiBnbnVjICovCi0jZW5kaWYgLyogTUJFRFRMU19IQVZFX0FTTSAmJiBHTlVDICovCi0jaWYgIWRlZmluZWQoQVJJQV9QMSkKLSNkZWZpbmUgQVJJQV9QMSh4KSAoKCgoeCkgPj4gOCkgJiAweDAwRkYwMEZGKSBeICgoKHgpICYgMHgwMEZGMDBGRikgPDwgOCkpCi0jZW5kaWYKLQotLyoKLSAqIG1vZGlmeSBieXRlIG9yZGVyOiAoIEEgQiBDIEQgKSAtPiAoIEMgRCBBIEIgKSwgaS5lLiByb3RhdGUgYnkgMTYgYml0cwotICoKLSAqIFRoaXMgaXMgc3VibWF0cml4IFAyIGluIFsxXSBBcHBlbmRpeCBCLjEKLSAqCi0gKiBDb21tb24gY29tcGlsZXJzIHdpbGwgdHJhbnNsYXRlIHRoaXMgdG8gYSBzaW5nbGUgaW5zdHJ1Y3Rpb24uCi0gKi8KLSNkZWZpbmUgQVJJQV9QMih4KSAoKCh4KSA+PiAxNikgXiAoKHgpIDw8IDE2KSkKLQotLyoKLSAqIG1vZGlmeSBieXRlIG9yZGVyOiAoIEEgQiBDIEQgKSAtPiAoIEQgQyBCIEEgKSwgaS5lLiBjaGFuZ2UgZW5kaWFubmVzcwotICoKLSAqIFRoaXMgaXMgc3VibWF0cml4IFAzIGluIFsxXSBBcHBlbmRpeCBCLjEKLSAqLwotI2RlZmluZSBBUklBX1AzKHgpIE1CRURUTFNfQlNXQVAzMih4KQotCi0vKgotICogQVJJQSBBZmZpbmUgVHJhbnNmb3JtCi0gKiAoYSwgYiwgYywgZCkgPSBzdGF0ZSBpbi9vdXQKLSAqCi0gKiBJZiB3ZSBkZW5vdGUgdGhlIGZpcnN0IGJ5dGUgb2YgaW5wdXQgYnkgMCwgLi4uLCB0aGUgbGFzdCBieXRlIGJ5IGYsCi0gKiB0aGVuIGlucHV0cyBhcmU6IGEgPSAwMTIzLCBiID0gNDU2NywgYyA9IDg5YWIsIGQgPSBjZGVmLgotICoKLSAqIFJlYWRpbmcgWzFdIDIuNCBvciBbMl0gMi40LjMgaW4gY29sdW1ucyBhbmQgcGVyZm9ybWluZyBzaW1wbGUKLSAqIHJlYXJyYW5nZW1lbnRzIG9uIGFkamFjZW50IHBhaXJzLCBvdXRwdXQgaXM6Ci0gKgotICogYSA9IDMyMTAgKyA0NTQ1ICsgNjc2NyArIDg4YWEgKyA5OWJiICsgZGNjZCArIGVmZmUKLSAqICAgPSAzMjEwICsgNDU2NyArIDY3NDUgKyA4OWFiICsgOThiYSArIGRjZmUgKyBlZmNkCi0gKiBiID0gMDEwMSArIDIzMjMgKyA1NDc2ICsgODk5OCArIGJhYWIgKyBlZWNjICsgZmZkZAotICogICA9IDAxMjMgKyAyMzAxICsgNTQ3NiArIDg5YWIgKyBiYTk4ICsgZWZjZCArIGZlZGMKLSAqIGMgPSAwMDIyICsgMTEzMyArIDQ1NTQgKyA3NjY3ICsgYWI4OSArIGRjZGMgKyBmZWZlCi0gKiAgID0gMDEyMyArIDEwMzIgKyA0NTY3ICsgNzY1NCArIGFiODkgKyBkY2ZlICsgZmVkYwotICogZCA9IDEwMDEgKyAyMzMyICsgNjY0NCArIDc3NTUgKyA5ODk4ICsgYmFiYSArIGNkZWYKLSAqICAgPSAxMDMyICsgMjMwMSArIDY3NDUgKyA3NjU0ICsgOThiYSArIGJhOTggKyBjZGVmCi0gKgotICogTm90ZTogYW5vdGhlciBwcmVzZW50YXRpb24gb2YgdGhlIEEgdHJhbnNmb3JtIGNhbiBiZSBmb3VuZCBhcyB0aGUgZmlyc3QKLSAqIGhhbGYgb2YgQXBwLiBCLjEgaW4gWzFdIGluIHRlcm1zIG9mIDQtYnl0ZSBvcGVyYXRvcnMgUDEsIFAyLCBQMyBhbmQgUDQuCi0gKiBUaGUgaW1wbGVtZW50YXRpb24gYmVsb3cgdXNlcyBvbmx5IFAxIGFuZCBQMiBhcyB0aGV5IGFyZSBzdWZmaWNpZW50LgotICovCi1zdGF0aWMgaW5saW5lIHZvaWQgYXJpYV9hKHVpbnQzMl90ICphLCB1aW50MzJfdCAqYiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDMyX3QgKmMsIHVpbnQzMl90ICpkKQotewotICAgIHVpbnQzMl90IHRhLCB0YiwgdGM7Ci0gICAgdGEgID0gICpiOyAgICAgICAgICAgICAgICAgICAgICAvLyA0NTY3Ci0gICAgKmIgID0gICphOyAgICAgICAgICAgICAgICAgICAgICAvLyAwMTIzCi0gICAgKmEgID0gIEFSSUFfUDIodGEpOyAgICAgICAgICAgICAvLyA2NzQ1Ci0gICAgdGIgID0gIEFSSUFfUDIoKmQpOyAgICAgICAgICAgICAvLyBlZmNkCi0gICAgKmQgID0gIEFSSUFfUDEoKmMpOyAgICAgICAgICAgICAvLyA5OGJhCi0gICAgKmMgID0gIEFSSUFfUDEodGIpOyAgICAgICAgICAgICAvLyBmZWRjCi0gICAgdGEgIF49ICpkOyAgICAgICAgICAgICAgICAgICAgICAvLyA0NTY3Kzk4YmEKLSAgICB0YyAgPSAgQVJJQV9QMigqYik7ICAgICAgICAgICAgIC8vIDIzMDEKLSAgICB0YSAgPSAgQVJJQV9QMSh0YSkgXiB0YyBeICpjOyAgIC8vIDIzMDErNTQ3Nis4OWFiK2ZlZGMKLSAgICB0YiAgXj0gQVJJQV9QMigqZCk7ICAgICAgICAgICAgIC8vIGJhOTgrZWZjZAotICAgIHRjICBePSBBUklBX1AxKCphKTsgICAgICAgICAgICAgLy8gMjMwMSs3NjU0Ci0gICAgKmIgIF49IHRhIF4gdGI7ICAgICAgICAgICAgICAgICAvLyAwMTIzKzIzMDErNTQ3Nis4OWFiK2JhOTgrZWZjZCtmZWRjIE9VVAotICAgIHRiICA9ICBBUklBX1AyKHRiKSBeIHRhOyAgICAgICAgLy8gMjMwMSs1NDc2Kzg5YWIrOThiYStjZGVmK2ZlZGMKLSAgICAqYSAgXj0gQVJJQV9QMSh0Yik7ICAgICAgICAgICAgIC8vIDMyMTArNDU2Nys2NzQ1Kzg5YWIrOThiYStkY2ZlK2VmY2QgT1VUCi0gICAgdGEgID0gIEFSSUFfUDIodGEpOyAgICAgICAgICAgICAvLyAwMTIzKzc2NTQrYWI4OStkY2ZlCi0gICAgKmQgIF49IEFSSUFfUDEodGEpIF4gdGM7ICAgICAgICAvLyAxMDMyKzIzMDErNjc0NSs3NjU0Kzk4YmErYmE5OCtjZGVmIE9VVAotICAgIHRjICA9ICBBUklBX1AyKHRjKTsgICAgICAgICAgICAgLy8gMDEyMys1NDc2Ci0gICAgKmMgIF49IEFSSUFfUDEodGMpIF4gdGE7ICAgICAgICAvLyAwMTIzKzEwMzIrNDU2Nys3NjU0K2FiODkrZGNmZStmZWRjIE9VVAotfQotCi0vKgotICogQVJJQSBTdWJzdGl0dXRpb24gTGF5ZXIgU0wxIC8gU0wyCi0gKiAoYSwgYiwgYywgZCkgPSBzdGF0ZSBpbi9vdXQKLSAqIChzYSwgc2IsIHNjLCBzZCkgPSAyNTYgOC1iaXQgUy1Cb3hlcyAoc2VlIGJlbG93KQotICoKLSAqIEJ5IHBhc3Npbmcgc2IxLCBzYjIsIGlzMSwgaXMyIGFzIFMtQm94ZXMgeW91IGdldCBTTDEKLSAqIEJ5IHBhc3NpbmcgaXMxLCBpczIsIHNiMSwgc2IyIGFzIFMtQm94ZXMgeW91IGdldCBTTDIKLSAqLwotc3RhdGljIGlubGluZSB2b2lkIGFyaWFfc2wodWludDMyX3QgKmEsIHVpbnQzMl90ICpiLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDMyX3QgKmMsIHVpbnQzMl90ICpkLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdWludDhfdCBzYVsyNTZdLCBjb25zdCB1aW50OF90IHNiWzI1Nl0sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1aW50OF90IHNjWzI1Nl0sIGNvbnN0IHVpbnQ4X3Qgc2RbMjU2XSkKLXsKLSAgICAqYSA9ICgodWludDMyX3QpIHNhW01CRURUTFNfQllURV8wKCphKV0pIF4KLSAgICAgICAgICgoKHVpbnQzMl90KSBzYltNQkVEVExTX0JZVEVfMSgqYSldKSA8PCAgOCkgXgotICAgICAgICAgKCgodWludDMyX3QpIHNjW01CRURUTFNfQllURV8yKCphKV0pIDw8IDE2KSBeCi0gICAgICAgICAoKCh1aW50MzJfdCkgc2RbTUJFRFRMU19CWVRFXzMoKmEpXSkgPDwgMjQpOwotICAgICpiID0gKCh1aW50MzJfdCkgc2FbTUJFRFRMU19CWVRFXzAoKmIpXSkgXgotICAgICAgICAgKCgodWludDMyX3QpIHNiW01CRURUTFNfQllURV8xKCpiKV0pIDw8ICA4KSBeCi0gICAgICAgICAoKCh1aW50MzJfdCkgc2NbTUJFRFRMU19CWVRFXzIoKmIpXSkgPDwgMTYpIF4KLSAgICAgICAgICgoKHVpbnQzMl90KSBzZFtNQkVEVExTX0JZVEVfMygqYildKSA8PCAyNCk7Ci0gICAgKmMgPSAoKHVpbnQzMl90KSBzYVtNQkVEVExTX0JZVEVfMCgqYyldKSBeCi0gICAgICAgICAoKCh1aW50MzJfdCkgc2JbTUJFRFRMU19CWVRFXzEoKmMpXSkgPDwgIDgpIF4KLSAgICAgICAgICgoKHVpbnQzMl90KSBzY1tNQkVEVExTX0JZVEVfMigqYyldKSA8PCAxNikgXgotICAgICAgICAgKCgodWludDMyX3QpIHNkW01CRURUTFNfQllURV8zKCpjKV0pIDw8IDI0KTsKLSAgICAqZCA9ICgodWludDMyX3QpIHNhW01CRURUTFNfQllURV8wKCpkKV0pIF4KLSAgICAgICAgICgoKHVpbnQzMl90KSBzYltNQkVEVExTX0JZVEVfMSgqZCldKSA8PCAgOCkgXgotICAgICAgICAgKCgodWludDMyX3QpIHNjW01CRURUTFNfQllURV8yKCpkKV0pIDw8IDE2KSBeCi0gICAgICAgICAoKCh1aW50MzJfdCkgc2RbTUJFRFRMU19CWVRFXzMoKmQpXSkgPDwgMjQpOwotfQotCi0vKgotICogUy1Cb3hlcwotICovCi1zdGF0aWMgY29uc3QgdWludDhfdCBhcmlhX3NiMVsyNTZdID0KLXsKLSAgICAweDYzLCAweDdDLCAweDc3LCAweDdCLCAweEYyLCAweDZCLCAweDZGLCAweEM1LCAweDMwLCAweDAxLCAweDY3LCAweDJCLAotICAgIDB4RkUsIDB4RDcsIDB4QUIsIDB4NzYsIDB4Q0EsIDB4ODIsIDB4QzksIDB4N0QsIDB4RkEsIDB4NTksIDB4NDcsIDB4RjAsCi0gICAgMHhBRCwgMHhENCwgMHhBMiwgMHhBRiwgMHg5QywgMHhBNCwgMHg3MiwgMHhDMCwgMHhCNywgMHhGRCwgMHg5MywgMHgyNiwKLSAgICAweDM2LCAweDNGLCAweEY3LCAweENDLCAweDM0LCAweEE1LCAweEU1LCAweEYxLCAweDcxLCAweEQ4LCAweDMxLCAweDE1LAotICAgIDB4MDQsIDB4QzcsIDB4MjMsIDB4QzMsIDB4MTgsIDB4OTYsIDB4MDUsIDB4OUEsIDB4MDcsIDB4MTIsIDB4ODAsIDB4RTIsCi0gICAgMHhFQiwgMHgyNywgMHhCMiwgMHg3NSwgMHgwOSwgMHg4MywgMHgyQywgMHgxQSwgMHgxQiwgMHg2RSwgMHg1QSwgMHhBMCwKLSAgICAweDUyLCAweDNCLCAweEQ2LCAweEIzLCAweDI5LCAweEUzLCAweDJGLCAweDg0LCAweDUzLCAweEQxLCAweDAwLCAweEVELAotICAgIDB4MjAsIDB4RkMsIDB4QjEsIDB4NUIsIDB4NkEsIDB4Q0IsIDB4QkUsIDB4MzksIDB4NEEsIDB4NEMsIDB4NTgsIDB4Q0YsCi0gICAgMHhEMCwgMHhFRiwgMHhBQSwgMHhGQiwgMHg0MywgMHg0RCwgMHgzMywgMHg4NSwgMHg0NSwgMHhGOSwgMHgwMiwgMHg3RiwKLSAgICAweDUwLCAweDNDLCAweDlGLCAweEE4LCAweDUxLCAweEEzLCAweDQwLCAweDhGLCAweDkyLCAweDlELCAweDM4LCAweEY1LAotICAgIDB4QkMsIDB4QjYsIDB4REEsIDB4MjEsIDB4MTAsIDB4RkYsIDB4RjMsIDB4RDIsIDB4Q0QsIDB4MEMsIDB4MTMsIDB4RUMsCi0gICAgMHg1RiwgMHg5NywgMHg0NCwgMHgxNywgMHhDNCwgMHhBNywgMHg3RSwgMHgzRCwgMHg2NCwgMHg1RCwgMHgxOSwgMHg3MywKLSAgICAweDYwLCAweDgxLCAweDRGLCAweERDLCAweDIyLCAweDJBLCAweDkwLCAweDg4LCAweDQ2LCAweEVFLCAweEI4LCAweDE0LAotICAgIDB4REUsIDB4NUUsIDB4MEIsIDB4REIsIDB4RTAsIDB4MzIsIDB4M0EsIDB4MEEsIDB4NDksIDB4MDYsIDB4MjQsIDB4NUMsCi0gICAgMHhDMiwgMHhEMywgMHhBQywgMHg2MiwgMHg5MSwgMHg5NSwgMHhFNCwgMHg3OSwgMHhFNywgMHhDOCwgMHgzNywgMHg2RCwKLSAgICAweDhELCAweEQ1LCAweDRFLCAweEE5LCAweDZDLCAweDU2LCAweEY0LCAweEVBLCAweDY1LCAweDdBLCAweEFFLCAweDA4LAotICAgIDB4QkEsIDB4NzgsIDB4MjUsIDB4MkUsIDB4MUMsIDB4QTYsIDB4QjQsIDB4QzYsIDB4RTgsIDB4REQsIDB4NzQsIDB4MUYsCi0gICAgMHg0QiwgMHhCRCwgMHg4QiwgMHg4QSwgMHg3MCwgMHgzRSwgMHhCNSwgMHg2NiwgMHg0OCwgMHgwMywgMHhGNiwgMHgwRSwKLSAgICAweDYxLCAweDM1LCAweDU3LCAweEI5LCAweDg2LCAweEMxLCAweDFELCAweDlFLCAweEUxLCAweEY4LCAweDk4LCAweDExLAotICAgIDB4NjksIDB4RDksIDB4OEUsIDB4OTQsIDB4OUIsIDB4MUUsIDB4ODcsIDB4RTksIDB4Q0UsIDB4NTUsIDB4MjgsIDB4REYsCi0gICAgMHg4QywgMHhBMSwgMHg4OSwgMHgwRCwgMHhCRiwgMHhFNiwgMHg0MiwgMHg2OCwgMHg0MSwgMHg5OSwgMHgyRCwgMHgwRiwKLSAgICAweEIwLCAweDU0LCAweEJCLCAweDE2Ci19OwotCi1zdGF0aWMgY29uc3QgdWludDhfdCBhcmlhX3NiMlsyNTZdID0KLXsKLSAgICAweEUyLCAweDRFLCAweDU0LCAweEZDLCAweDk0LCAweEMyLCAweDRBLCAweENDLCAweDYyLCAweDBELCAweDZBLCAweDQ2LAotICAgIDB4M0MsIDB4NEQsIDB4OEIsIDB4RDEsIDB4NUUsIDB4RkEsIDB4NjQsIDB4Q0IsIDB4QjQsIDB4OTcsIDB4QkUsIDB4MkIsCi0gICAgMHhCQywgMHg3NywgMHgyRSwgMHgwMywgMHhEMywgMHgxOSwgMHg1OSwgMHhDMSwgMHgxRCwgMHgwNiwgMHg0MSwgMHg2QiwKLSAgICAweDU1LCAweEYwLCAweDk5LCAweDY5LCAweEVBLCAweDlDLCAweDE4LCAweEFFLCAweDYzLCAweERGLCAweEU3LCAweEJCLAotICAgIDB4MDAsIDB4NzMsIDB4NjYsIDB4RkIsIDB4OTYsIDB4NEMsIDB4ODUsIDB4RTQsIDB4M0EsIDB4MDksIDB4NDUsIDB4QUEsCi0gICAgMHgwRiwgMHhFRSwgMHgxMCwgMHhFQiwgMHgyRCwgMHg3RiwgMHhGNCwgMHgyOSwgMHhBQywgMHhDRiwgMHhBRCwgMHg5MSwKLSAgICAweDhELCAweDc4LCAweEM4LCAweDk1LCAweEY5LCAweDJGLCAweENFLCAweENELCAweDA4LCAweDdBLCAweDg4LCAweDM4LAotICAgIDB4NUMsIDB4ODMsIDB4MkEsIDB4MjgsIDB4NDcsIDB4REIsIDB4QjgsIDB4QzcsIDB4OTMsIDB4QTQsIDB4MTIsIDB4NTMsCi0gICAgMHhGRiwgMHg4NywgMHgwRSwgMHgzMSwgMHgzNiwgMHgyMSwgMHg1OCwgMHg0OCwgMHgwMSwgMHg4RSwgMHgzNywgMHg3NCwKLSAgICAweDMyLCAweENBLCAweEU5LCAweEIxLCAweEI3LCAweEFCLCAweDBDLCAweEQ3LCAweEM0LCAweDU2LCAweDQyLCAweDI2LAotICAgIDB4MDcsIDB4OTgsIDB4NjAsIDB4RDksIDB4QjYsIDB4QjksIDB4MTEsIDB4NDAsIDB4RUMsIDB4MjAsIDB4OEMsIDB4QkQsCi0gICAgMHhBMCwgMHhDOSwgMHg4NCwgMHgwNCwgMHg0OSwgMHgyMywgMHhGMSwgMHg0RiwgMHg1MCwgMHgxRiwgMHgxMywgMHhEQywKLSAgICAweEQ4LCAweEMwLCAweDlFLCAweDU3LCAweEUzLCAweEMzLCAweDdCLCAweDY1LCAweDNCLCAweDAyLCAweDhGLCAweDNFLAotICAgIDB4RTgsIDB4MjUsIDB4OTIsIDB4RTUsIDB4MTUsIDB4REQsIDB4RkQsIDB4MTcsIDB4QTksIDB4QkYsIDB4RDQsIDB4OUEsCi0gICAgMHg3RSwgMHhDNSwgMHgzOSwgMHg2NywgMHhGRSwgMHg3NiwgMHg5RCwgMHg0MywgMHhBNywgMHhFMSwgMHhEMCwgMHhGNSwKLSAgICAweDY4LCAweEYyLCAweDFCLCAweDM0LCAweDcwLCAweDA1LCAweEEzLCAweDhBLCAweEQ1LCAweDc5LCAweDg2LCAweEE4LAotICAgIDB4MzAsIDB4QzYsIDB4NTEsIDB4NEIsIDB4MUUsIDB4QTYsIDB4MjcsIDB4RjYsIDB4MzUsIDB4RDIsIDB4NkUsIDB4MjQsCi0gICAgMHgxNiwgMHg4MiwgMHg1RiwgMHhEQSwgMHhFNiwgMHg3NSwgMHhBMiwgMHhFRiwgMHgyQywgMHhCMiwgMHgxQywgMHg5RiwKLSAgICAweDVELCAweDZGLCAweDgwLCAweDBBLCAweDcyLCAweDQ0LCAweDlCLCAweDZDLCAweDkwLCAweDBCLCAweDVCLCAweDMzLAotICAgIDB4N0QsIDB4NUEsIDB4NTIsIDB4RjMsIDB4NjEsIDB4QTEsIDB4RjcsIDB4QjAsIDB4RDYsIDB4M0YsIDB4N0MsIDB4NkQsCi0gICAgMHhFRCwgMHgxNCwgMHhFMCwgMHhBNSwgMHgzRCwgMHgyMiwgMHhCMywgMHhGOCwgMHg4OSwgMHhERSwgMHg3MSwgMHgxQSwKLSAgICAweEFGLCAweEJBLCAweEI1LCAweDgxCi19OwotCi1zdGF0aWMgY29uc3QgdWludDhfdCBhcmlhX2lzMVsyNTZdID0KLXsKLSAgICAweDUyLCAweDA5LCAweDZBLCAweEQ1LCAweDMwLCAweDM2LCAweEE1LCAweDM4LCAweEJGLCAweDQwLCAweEEzLCAweDlFLAotICAgIDB4ODEsIDB4RjMsIDB4RDcsIDB4RkIsIDB4N0MsIDB4RTMsIDB4MzksIDB4ODIsIDB4OUIsIDB4MkYsIDB4RkYsIDB4ODcsCi0gICAgMHgzNCwgMHg4RSwgMHg0MywgMHg0NCwgMHhDNCwgMHhERSwgMHhFOSwgMHhDQiwgMHg1NCwgMHg3QiwgMHg5NCwgMHgzMiwKLSAgICAweEE2LCAweEMyLCAweDIzLCAweDNELCAweEVFLCAweDRDLCAweDk1LCAweDBCLCAweDQyLCAweEZBLCAweEMzLCAweDRFLAotICAgIDB4MDgsIDB4MkUsIDB4QTEsIDB4NjYsIDB4MjgsIDB4RDksIDB4MjQsIDB4QjIsIDB4NzYsIDB4NUIsIDB4QTIsIDB4NDksCi0gICAgMHg2RCwgMHg4QiwgMHhEMSwgMHgyNSwgMHg3MiwgMHhGOCwgMHhGNiwgMHg2NCwgMHg4NiwgMHg2OCwgMHg5OCwgMHgxNiwKLSAgICAweEQ0LCAweEE0LCAweDVDLCAweENDLCAweDVELCAweDY1LCAweEI2LCAweDkyLCAweDZDLCAweDcwLCAweDQ4LCAweDUwLAotICAgIDB4RkQsIDB4RUQsIDB4QjksIDB4REEsIDB4NUUsIDB4MTUsIDB4NDYsIDB4NTcsIDB4QTcsIDB4OEQsIDB4OUQsIDB4ODQsCi0gICAgMHg5MCwgMHhEOCwgMHhBQiwgMHgwMCwgMHg4QywgMHhCQywgMHhEMywgMHgwQSwgMHhGNywgMHhFNCwgMHg1OCwgMHgwNSwKLSAgICAweEI4LCAweEIzLCAweDQ1LCAweDA2LCAweEQwLCAweDJDLCAweDFFLCAweDhGLCAweENBLCAweDNGLCAweDBGLCAweDAyLAotICAgIDB4QzEsIDB4QUYsIDB4QkQsIDB4MDMsIDB4MDEsIDB4MTMsIDB4OEEsIDB4NkIsIDB4M0EsIDB4OTEsIDB4MTEsIDB4NDEsCi0gICAgMHg0RiwgMHg2NywgMHhEQywgMHhFQSwgMHg5NywgMHhGMiwgMHhDRiwgMHhDRSwgMHhGMCwgMHhCNCwgMHhFNiwgMHg3MywKLSAgICAweDk2LCAweEFDLCAweDc0LCAweDIyLCAweEU3LCAweEFELCAweDM1LCAweDg1LCAweEUyLCAweEY5LCAweDM3LCAweEU4LAotICAgIDB4MUMsIDB4NzUsIDB4REYsIDB4NkUsIDB4NDcsIDB4RjEsIDB4MUEsIDB4NzEsIDB4MUQsIDB4MjksIDB4QzUsIDB4ODksCi0gICAgMHg2RiwgMHhCNywgMHg2MiwgMHgwRSwgMHhBQSwgMHgxOCwgMHhCRSwgMHgxQiwgMHhGQywgMHg1NiwgMHgzRSwgMHg0QiwKLSAgICAweEM2LCAweEQyLCAweDc5LCAweDIwLCAweDlBLCAweERCLCAweEMwLCAweEZFLCAweDc4LCAweENELCAweDVBLCAweEY0LAotICAgIDB4MUYsIDB4REQsIDB4QTgsIDB4MzMsIDB4ODgsIDB4MDcsIDB4QzcsIDB4MzEsIDB4QjEsIDB4MTIsIDB4MTAsIDB4NTksCi0gICAgMHgyNywgMHg4MCwgMHhFQywgMHg1RiwgMHg2MCwgMHg1MSwgMHg3RiwgMHhBOSwgMHgxOSwgMHhCNSwgMHg0QSwgMHgwRCwKLSAgICAweDJELCAweEU1LCAweDdBLCAweDlGLCAweDkzLCAweEM5LCAweDlDLCAweEVGLCAweEEwLCAweEUwLCAweDNCLCAweDRELAotICAgIDB4QUUsIDB4MkEsIDB4RjUsIDB4QjAsIDB4QzgsIDB4RUIsIDB4QkIsIDB4M0MsIDB4ODMsIDB4NTMsIDB4OTksIDB4NjEsCi0gICAgMHgxNywgMHgyQiwgMHgwNCwgMHg3RSwgMHhCQSwgMHg3NywgMHhENiwgMHgyNiwgMHhFMSwgMHg2OSwgMHgxNCwgMHg2MywKLSAgICAweDU1LCAweDIxLCAweDBDLCAweDdECi19OwotCi1zdGF0aWMgY29uc3QgdWludDhfdCBhcmlhX2lzMlsyNTZdID0KLXsKLSAgICAweDMwLCAweDY4LCAweDk5LCAweDFCLCAweDg3LCAweEI5LCAweDIxLCAweDc4LCAweDUwLCAweDM5LCAweERCLCAweEUxLAotICAgIDB4NzIsIDB4MDksIDB4NjIsIDB4M0MsIDB4M0UsIDB4N0UsIDB4NUUsIDB4OEUsIDB4RjEsIDB4QTAsIDB4Q0MsIDB4QTMsCi0gICAgMHgyQSwgMHgxRCwgMHhGQiwgMHhCNiwgMHhENiwgMHgyMCwgMHhDNCwgMHg4RCwgMHg4MSwgMHg2NSwgMHhGNSwgMHg4OSwKLSAgICAweENCLCAweDlELCAweDc3LCAweEM2LCAweDU3LCAweDQzLCAweDU2LCAweDE3LCAweEQ0LCAweDQwLCAweDFBLCAweDRELAotICAgIDB4QzAsIDB4NjMsIDB4NkMsIDB4RTMsIDB4QjcsIDB4QzgsIDB4NjQsIDB4NkEsIDB4NTMsIDB4QUEsIDB4MzgsIDB4OTgsCi0gICAgMHgwQywgMHhGNCwgMHg5QiwgMHhFRCwgMHg3RiwgMHgyMiwgMHg3NiwgMHhBRiwgMHhERCwgMHgzQSwgMHgwQiwgMHg1OCwKLSAgICAweDY3LCAweDg4LCAweDA2LCAweEMzLCAweDM1LCAweDBELCAweDAxLCAweDhCLCAweDhDLCAweEMyLCAweEU2LCAweDVGLAotICAgIDB4MDIsIDB4MjQsIDB4NzUsIDB4OTMsIDB4NjYsIDB4MUUsIDB4RTUsIDB4RTIsIDB4NTQsIDB4RDgsIDB4MTAsIDB4Q0UsCi0gICAgMHg3QSwgMHhFOCwgMHgwOCwgMHgyQywgMHgxMiwgMHg5NywgMHgzMiwgMHhBQiwgMHhCNCwgMHgyNywgMHgwQSwgMHgyMywKLSAgICAweERGLCAweEVGLCAweENBLCAweEQ5LCAweEI4LCAweEZBLCAweERDLCAweDMxLCAweDZCLCAweEQxLCAweEFELCAweDE5LAotICAgIDB4NDksIDB4QkQsIDB4NTEsIDB4OTYsIDB4RUUsIDB4RTQsIDB4QTgsIDB4NDEsIDB4REEsIDB4RkYsIDB4Q0QsIDB4NTUsCi0gICAgMHg4NiwgMHgzNiwgMHhCRSwgMHg2MSwgMHg1MiwgMHhGOCwgMHhCQiwgMHgwRSwgMHg4MiwgMHg0OCwgMHg2OSwgMHg5QSwKLSAgICAweEUwLCAweDQ3LCAweDlFLCAweDVDLCAweDA0LCAweDRCLCAweDM0LCAweDE1LCAweDc5LCAweDI2LCAweEE3LCAweERFLAotICAgIDB4MjksIDB4QUUsIDB4OTIsIDB4RDcsIDB4ODQsIDB4RTksIDB4RDIsIDB4QkEsIDB4NUQsIDB4RjMsIDB4QzUsIDB4QjAsCi0gICAgMHhCRiwgMHhBNCwgMHgzQiwgMHg3MSwgMHg0NCwgMHg0NiwgMHgyQiwgMHhGQywgMHhFQiwgMHg2RiwgMHhENSwgMHhGNiwKLSAgICAweDE0LCAweEZFLCAweDdDLCAweDcwLCAweDVBLCAweDdELCAweEZELCAweDJGLCAweDE4LCAweDgzLCAweDE2LCAweEE1LAotICAgIDB4OTEsIDB4MUYsIDB4MDUsIDB4OTUsIDB4NzQsIDB4QTksIDB4QzEsIDB4NUIsIDB4NEEsIDB4ODUsIDB4NkQsIDB4MTMsCi0gICAgMHgwNywgMHg0RiwgMHg0RSwgMHg0NSwgMHhCMiwgMHgwRiwgMHhDOSwgMHgxQywgMHhBNiwgMHhCQywgMHhFQywgMHg3MywKLSAgICAweDkwLCAweDdCLCAweENGLCAweDU5LCAweDhGLCAweEExLCAweEY5LCAweDJELCAweEYyLCAweEIxLCAweDAwLCAweDk0LAotICAgIDB4MzcsIDB4OUYsIDB4RDAsIDB4MkUsIDB4OUMsIDB4NkUsIDB4MjgsIDB4M0YsIDB4ODAsIDB4RjAsIDB4M0QsIDB4RDMsCi0gICAgMHgyNSwgMHg4QSwgMHhCNSwgMHhFNywgMHg0MiwgMHhCMywgMHhDNywgMHhFQSwgMHhGNywgMHg0QywgMHgxMSwgMHgzMywKLSAgICAweDAzLCAweEEyLCAweEFDLCAweDYwCi19OwotCi0vKgotICogSGVscGVyIGZvciBrZXkgc2NoZWR1bGU6IHIgPSBGTyggcCwgayApIF4geAotICovCi1zdGF0aWMgdm9pZCBhcmlhX2ZvX3hvcih1aW50MzJfdCByWzRdLCBjb25zdCB1aW50MzJfdCBwWzRdLAotICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdWludDMyX3Qga1s0XSwgY29uc3QgdWludDMyX3QgeFs0XSkKLXsKLSAgICB1aW50MzJfdCBhLCBiLCBjLCBkOwotCi0gICAgYSA9IHBbMF0gXiBrWzBdOwotICAgIGIgPSBwWzFdIF4ga1sxXTsKLSAgICBjID0gcFsyXSBeIGtbMl07Ci0gICAgZCA9IHBbM10gXiBrWzNdOwotCi0gICAgYXJpYV9zbCgmYSwgJmIsICZjLCAmZCwgYXJpYV9zYjEsIGFyaWFfc2IyLCBhcmlhX2lzMSwgYXJpYV9pczIpOwotICAgIGFyaWFfYSgmYSwgJmIsICZjLCAmZCk7Ci0KLSAgICByWzBdID0gYSBeIHhbMF07Ci0gICAgclsxXSA9IGIgXiB4WzFdOwotICAgIHJbMl0gPSBjIF4geFsyXTsKLSAgICByWzNdID0gZCBeIHhbM107Ci19Ci0KLS8qCi0gKiBIZWxwZXIgZm9yIGtleSBzY2hlZHVsZTogciA9IEZFKCBwLCBrICkgXiB4Ci0gKi8KLXN0YXRpYyB2b2lkIGFyaWFfZmVfeG9yKHVpbnQzMl90IHJbNF0sIGNvbnN0IHVpbnQzMl90IHBbNF0sCi0gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1aW50MzJfdCBrWzRdLCBjb25zdCB1aW50MzJfdCB4WzRdKQotewotICAgIHVpbnQzMl90IGEsIGIsIGMsIGQ7Ci0KLSAgICBhID0gcFswXSBeIGtbMF07Ci0gICAgYiA9IHBbMV0gXiBrWzFdOwotICAgIGMgPSBwWzJdIF4ga1syXTsKLSAgICBkID0gcFszXSBeIGtbM107Ci0KLSAgICBhcmlhX3NsKCZhLCAmYiwgJmMsICZkLCBhcmlhX2lzMSwgYXJpYV9pczIsIGFyaWFfc2IxLCBhcmlhX3NiMik7Ci0gICAgYXJpYV9hKCZhLCAmYiwgJmMsICZkKTsKLQotICAgIHJbMF0gPSBhIF4geFswXTsKLSAgICByWzFdID0gYiBeIHhbMV07Ci0gICAgclsyXSA9IGMgXiB4WzJdOwotICAgIHJbM10gPSBkIF4geFszXTsKLX0KLQotLyoKLSAqIEJpZyBlbmRpYW4gMTI4LWJpdCByb3RhdGlvbjogciA9IGEgXiAoYiA8PDwgbiksIHVzZWQgb25seSBpbiBrZXkgc2V0dXAuCi0gKgotICogV2UgY2hvc2UgdG8gc3RvcmUgYnl0ZXMgaW50byAzMi1iaXQgd29yZHMgaW4gbGl0dGxlLWVuZGlhbiBmb3JtYXQgKHNlZQotICogTUJFRFRMU19HRVRfVUlOVDMyX0xFIC8gTUJFRFRMU19QVVRfVUlOVDMyX0xFICkgc28gd2UgbmVlZCB0byByZXZlcnNlCi0gKiBieXRlcyBoZXJlLgotICovCi1zdGF0aWMgdm9pZCBhcmlhX3JvdDEyOCh1aW50MzJfdCByWzRdLCBjb25zdCB1aW50MzJfdCBhWzRdLAotICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdWludDMyX3QgYls0XSwgdWludDhfdCBuKQotewotICAgIHVpbnQ4X3QgaSwgajsKLSAgICB1aW50MzJfdCB0LCB1OwotCi0gICAgY29uc3QgdWludDhfdCBuMSA9IG4gJSAzMjsgICAgICAgICAgICAgIC8vIGJpdCBvZmZzZXQKLSAgICBjb25zdCB1aW50OF90IG4yID0gbjEgPyAzMiAtIG4xIDogMDsgICAgLy8gcmV2ZXJzZSBiaXQgb2Zmc2V0Ci0KLSAgICBqID0gKG4gLyAzMikgJSA0OyAgICAgICAgICAgICAgICAgICAgICAgLy8gaW5pdGlhbCB3b3JkIG9mZnNldAotICAgIHQgPSBBUklBX1AzKGJbal0pOyAgICAgICAgICAgICAgICAgICAgICAvLyBiaWcgZW5kaWFuCi0gICAgZm9yIChpID0gMDsgaSA8IDQ7IGkrKykgewotICAgICAgICBqID0gKGogKyAxKSAlIDQ7ICAgICAgICAgICAgICAgICAgICAvLyBnZXQgbmV4dCB3b3JkLCBiaWcgZW5kaWFuCi0gICAgICAgIHUgPSBBUklBX1AzKGJbal0pOwotICAgICAgICB0IDw8PSBuMTsgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyByb3RhdGUKLSAgICAgICAgdCB8PSB1ID4+IG4yOwotICAgICAgICB0ID0gQVJJQV9QMyh0KTsgICAgICAgICAgICAgICAgICAgICAvLyBiYWNrIHRvIGxpdHRsZSBlbmRpYW4KLSAgICAgICAgcltpXSA9IGFbaV0gXiB0OyAgICAgICAgICAgICAgICAgICAgLy8gc3RvcmUKLSAgICAgICAgdCA9IHU7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gbW92ZSB0byBuZXh0IHdvcmQKLSAgICB9Ci19Ci0KLS8qCi0gKiBTZXQgZW5jcnlwdGlvbiBrZXkKLSAqLwotaW50IG1iZWR0bHNfYXJpYV9zZXRrZXlfZW5jKG1iZWR0bHNfYXJpYV9jb250ZXh0ICpjdHgsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdW5zaWduZWQgY2hhciAqa2V5LCB1bnNpZ25lZCBpbnQga2V5Yml0cykKLXsKLSAgICAvKiByb3VuZCBjb25zdGFudCBtYXNrcyAqLwotICAgIGNvbnN0IHVpbnQzMl90IHJjWzNdWzRdID0KLSAgICB7Ci0gICAgICAgIHsgICAweEI3QzE3QzUxLCAweDk0MEEyMjI3LCAweEU4QUIxM0ZFLCAweEUwNkU5QUZBICB9LAotICAgICAgICB7ICAgMHhDQzRBQjE2RCwgMHgyMEM4MjE5RSwgMHhENUIxMjhGRiwgMHhCMEUyNURFRiAgfSwKLSAgICAgICAgeyAgIDB4MUQzNzkyREIsIDB4NzBFOTI2MjEsIDB4NzU5NzI0MDMsIDB4MEVDOUU4MDQgIH0KLSAgICB9OwotCi0gICAgaW50IGk7Ci0gICAgdWludDMyX3Qgd1s0XVs0XSwgKncyOwotCi0gICAgaWYgKGtleWJpdHMgIT0gMTI4ICYmIGtleWJpdHMgIT0gMTkyICYmIGtleWJpdHMgIT0gMjU2KSB7Ci0gICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9BUklBX0JBRF9JTlBVVF9EQVRBOwotICAgIH0KLQotICAgIC8qIENvcHkga2V5IHRvIFcwIChhbmQgcG90ZW50aWFsIHJlbWFpbmRlciB0byBXMSkgKi8KLSAgICB3WzBdWzBdID0gTUJFRFRMU19HRVRfVUlOVDMyX0xFKGtleSwgIDApOwotICAgIHdbMF1bMV0gPSBNQkVEVExTX0dFVF9VSU5UMzJfTEUoa2V5LCAgNCk7Ci0gICAgd1swXVsyXSA9IE1CRURUTFNfR0VUX1VJTlQzMl9MRShrZXksICA4KTsKLSAgICB3WzBdWzNdID0gTUJFRFRMU19HRVRfVUlOVDMyX0xFKGtleSwgMTIpOwotCi0gICAgbWVtc2V0KHdbMV0sIDAsIDE2KTsKLSAgICBpZiAoa2V5Yml0cyA+PSAxOTIpIHsKLSAgICAgICAgd1sxXVswXSA9IE1CRURUTFNfR0VUX1VJTlQzMl9MRShrZXksIDE2KTsgICAgLy8gMTkyIGJpdCBrZXkKLSAgICAgICAgd1sxXVsxXSA9IE1CRURUTFNfR0VUX1VJTlQzMl9MRShrZXksIDIwKTsKLSAgICB9Ci0gICAgaWYgKGtleWJpdHMgPT0gMjU2KSB7Ci0gICAgICAgIHdbMV1bMl0gPSBNQkVEVExTX0dFVF9VSU5UMzJfTEUoa2V5LCAyNCk7ICAgIC8vIDI1NiBiaXQga2V5Ci0gICAgICAgIHdbMV1bM10gPSBNQkVEVExTX0dFVF9VSU5UMzJfTEUoa2V5LCAyOCk7Ci0gICAgfQotCi0gICAgaSA9IChrZXliaXRzIC0gMTI4KSA+PiA2OyAgICAgICAgICAgICAgIC8vIGluZGV4OiAwLCAxLCAyCi0gICAgY3R4LT5uciA9IDEyICsgMiAqIGk7ICAgICAgICAgICAgICAgICAgIC8vIG5vLiByb3VuZHM6IDEyLCAxNCwgMTYKLQotICAgIGFyaWFfZm9feG9yKHdbMV0sIHdbMF0sIHJjW2ldLCB3WzFdKTsgICAvLyBXMSA9IEZPKFcwLCBDSzEpIF4gS1IKLSAgICBpID0gaSA8IDIgPyBpICsgMSA6IDA7Ci0gICAgYXJpYV9mZV94b3Iod1syXSwgd1sxXSwgcmNbaV0sIHdbMF0pOyAgIC8vIFcyID0gRkUoVzEsIENLMikgXiBXMAotICAgIGkgPSBpIDwgMiA/IGkgKyAxIDogMDsKLSAgICBhcmlhX2ZvX3hvcih3WzNdLCB3WzJdLCByY1tpXSwgd1sxXSk7ICAgLy8gVzMgPSBGTyhXMiwgQ0szKSBeIFcxCi0KLSAgICBmb3IgKGkgPSAwOyBpIDwgNDsgaSsrKSB7ICAgICAgICAgICAgICAgLy8gY3JlYXRlIHJvdW5kIGtleXMKLSAgICAgICAgdzIgPSB3WyhpICsgMSkgJiAzXTsKLSAgICAgICAgYXJpYV9yb3QxMjgoY3R4LT5ya1tpXSwgd1tpXSwgdzIsIDEyOCAtIDE5KTsKLSAgICAgICAgYXJpYV9yb3QxMjgoY3R4LT5ya1tpICsgIDRdLCB3W2ldLCB3MiwgMTI4IC0gMzEpOwotICAgICAgICBhcmlhX3JvdDEyOChjdHgtPnJrW2kgKyAgOF0sIHdbaV0sIHcyLCAgICAgICA2MSk7Ci0gICAgICAgIGFyaWFfcm90MTI4KGN0eC0+cmtbaSArIDEyXSwgd1tpXSwgdzIsICAgICAgIDMxKTsKLSAgICB9Ci0gICAgYXJpYV9yb3QxMjgoY3R4LT5ya1sxNl0sIHdbMF0sIHdbMV0sIDE5KTsKLQotICAgIC8qIHcgaG9sZHMgZW5vdWdoIGluZm8gdG8gcmVjb25zdHJ1Y3QgdGhlIHJvdW5kIGtleXMgKi8KLSAgICBtYmVkdGxzX3BsYXRmb3JtX3plcm9pemUodywgc2l6ZW9mKHcpKTsKLQotICAgIHJldHVybiAwOwotfQotCi0vKgotICogU2V0IGRlY3J5cHRpb24ga2V5Ci0gKi8KLSNpZiAhZGVmaW5lZChNQkVEVExTX0JMT0NLX0NJUEhFUl9OT19ERUNSWVBUKQotaW50IG1iZWR0bHNfYXJpYV9zZXRrZXlfZGVjKG1iZWR0bHNfYXJpYV9jb250ZXh0ICpjdHgsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdW5zaWduZWQgY2hhciAqa2V5LCB1bnNpZ25lZCBpbnQga2V5Yml0cykKLXsKLSAgICBpbnQgaSwgaiwgaywgcmV0OwotCi0gICAgcmV0ID0gbWJlZHRsc19hcmlhX3NldGtleV9lbmMoY3R4LCBrZXksIGtleWJpdHMpOwotICAgIGlmIChyZXQgIT0gMCkgewotICAgICAgICByZXR1cm4gcmV0OwotICAgIH0KLQotICAgIC8qIGZsaXAgdGhlIG9yZGVyIG9mIHJvdW5kIGtleXMgKi8KLSAgICBmb3IgKGkgPSAwLCBqID0gY3R4LT5ucjsgaSA8IGo7IGkrKywgai0tKSB7Ci0gICAgICAgIGZvciAoayA9IDA7IGsgPCA0OyBrKyspIHsKLSAgICAgICAgICAgIHVpbnQzMl90IHQgPSBjdHgtPnJrW2ldW2tdOwotICAgICAgICAgICAgY3R4LT5ya1tpXVtrXSA9IGN0eC0+cmtbal1ba107Ci0gICAgICAgICAgICBjdHgtPnJrW2pdW2tdID0gdDsKLSAgICAgICAgfQotICAgIH0KLQotICAgIC8qIGFwcGx5IGFmZmluZSB0cmFuc2Zvcm0gdG8gbWlkZGxlIGtleXMgKi8KLSAgICBmb3IgKGkgPSAxOyBpIDwgY3R4LT5ucjsgaSsrKSB7Ci0gICAgICAgIGFyaWFfYSgmY3R4LT5ya1tpXVswXSwgJmN0eC0+cmtbaV1bMV0sCi0gICAgICAgICAgICAgICAmY3R4LT5ya1tpXVsyXSwgJmN0eC0+cmtbaV1bM10pOwotICAgIH0KLQotICAgIHJldHVybiAwOwotfQotI2VuZGlmIC8qICFNQkVEVExTX0JMT0NLX0NJUEhFUl9OT19ERUNSWVBUICovCi0KLS8qCi0gKiBFbmNyeXB0IGEgYmxvY2sKLSAqLwotaW50IG1iZWR0bHNfYXJpYV9jcnlwdF9lY2IobWJlZHRsc19hcmlhX2NvbnRleHQgKmN0eCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgaW5wdXRbTUJFRFRMU19BUklBX0JMT0NLU0laRV0sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBjaGFyIG91dHB1dFtNQkVEVExTX0FSSUFfQkxPQ0tTSVpFXSkKLXsKLSAgICBpbnQgaTsKLQotICAgIHVpbnQzMl90IGEsIGIsIGMsIGQ7Ci0KLSAgICBhID0gTUJFRFRMU19HRVRfVUlOVDMyX0xFKGlucHV0LCAgMCk7Ci0gICAgYiA9IE1CRURUTFNfR0VUX1VJTlQzMl9MRShpbnB1dCwgIDQpOwotICAgIGMgPSBNQkVEVExTX0dFVF9VSU5UMzJfTEUoaW5wdXQsICA4KTsKLSAgICBkID0gTUJFRFRMU19HRVRfVUlOVDMyX0xFKGlucHV0LCAxMik7Ci0KLSAgICBpID0gMDsKLSAgICB3aGlsZSAoMSkgewotICAgICAgICBhIF49IGN0eC0+cmtbaV1bMF07Ci0gICAgICAgIGIgXj0gY3R4LT5ya1tpXVsxXTsKLSAgICAgICAgYyBePSBjdHgtPnJrW2ldWzJdOwotICAgICAgICBkIF49IGN0eC0+cmtbaV1bM107Ci0gICAgICAgIGkrKzsKLQotICAgICAgICBhcmlhX3NsKCZhLCAmYiwgJmMsICZkLCBhcmlhX3NiMSwgYXJpYV9zYjIsIGFyaWFfaXMxLCBhcmlhX2lzMik7Ci0gICAgICAgIGFyaWFfYSgmYSwgJmIsICZjLCAmZCk7Ci0KLSAgICAgICAgYSBePSBjdHgtPnJrW2ldWzBdOwotICAgICAgICBiIF49IGN0eC0+cmtbaV1bMV07Ci0gICAgICAgIGMgXj0gY3R4LT5ya1tpXVsyXTsKLSAgICAgICAgZCBePSBjdHgtPnJrW2ldWzNdOwotICAgICAgICBpKys7Ci0KLSAgICAgICAgYXJpYV9zbCgmYSwgJmIsICZjLCAmZCwgYXJpYV9pczEsIGFyaWFfaXMyLCBhcmlhX3NiMSwgYXJpYV9zYjIpOwotICAgICAgICBpZiAoaSA+PSBjdHgtPm5yKSB7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgfQotICAgICAgICBhcmlhX2EoJmEsICZiLCAmYywgJmQpOwotICAgIH0KLQotICAgIC8qIGZpbmFsIGtleSBtaXhpbmcgKi8KLSAgICBhIF49IGN0eC0+cmtbaV1bMF07Ci0gICAgYiBePSBjdHgtPnJrW2ldWzFdOwotICAgIGMgXj0gY3R4LT5ya1tpXVsyXTsKLSAgICBkIF49IGN0eC0+cmtbaV1bM107Ci0KLSAgICBNQkVEVExTX1BVVF9VSU5UMzJfTEUoYSwgb3V0cHV0LCAgMCk7Ci0gICAgTUJFRFRMU19QVVRfVUlOVDMyX0xFKGIsIG91dHB1dCwgIDQpOwotICAgIE1CRURUTFNfUFVUX1VJTlQzMl9MRShjLCBvdXRwdXQsICA4KTsKLSAgICBNQkVEVExTX1BVVF9VSU5UMzJfTEUoZCwgb3V0cHV0LCAxMik7Ci0KLSAgICByZXR1cm4gMDsKLX0KLQotLyogSW5pdGlhbGl6ZSBjb250ZXh0ICovCi12b2lkIG1iZWR0bHNfYXJpYV9pbml0KG1iZWR0bHNfYXJpYV9jb250ZXh0ICpjdHgpCi17Ci0gICAgbWVtc2V0KGN0eCwgMCwgc2l6ZW9mKG1iZWR0bHNfYXJpYV9jb250ZXh0KSk7Ci19Ci0KLS8qIENsZWFyIGNvbnRleHQgKi8KLXZvaWQgbWJlZHRsc19hcmlhX2ZyZWUobWJlZHRsc19hcmlhX2NvbnRleHQgKmN0eCkKLXsKLSAgICBpZiAoY3R4ID09IE5VTEwpIHsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLQotICAgIG1iZWR0bHNfcGxhdGZvcm1femVyb2l6ZShjdHgsIHNpemVvZihtYmVkdGxzX2FyaWFfY29udGV4dCkpOwotfQotCi0jaWYgZGVmaW5lZChNQkVEVExTX0NJUEhFUl9NT0RFX0NCQykKLS8qCi0gKiBBUklBLUNCQyBidWZmZXIgZW5jcnlwdGlvbi9kZWNyeXB0aW9uCi0gKi8KLWludCBtYmVkdGxzX2FyaWFfY3J5cHRfY2JjKG1iZWR0bHNfYXJpYV9jb250ZXh0ICpjdHgsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgbW9kZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBsZW5ndGgsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBjaGFyIGl2W01CRURUTFNfQVJJQV9CTE9DS1NJWkVdLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdW5zaWduZWQgY2hhciAqaW5wdXQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBjaGFyICpvdXRwdXQpCi17Ci0gICAgdW5zaWduZWQgY2hhciB0ZW1wW01CRURUTFNfQVJJQV9CTE9DS1NJWkVdOwotCi0gICAgaWYgKChtb2RlICE9IE1CRURUTFNfQVJJQV9FTkNSWVBUKSAmJiAobW9kZSAhPSBNQkVEVExTX0FSSUFfREVDUllQVCkpIHsKLSAgICAgICAgcmV0dXJuIE1CRURUTFNfRVJSX0FSSUFfQkFEX0lOUFVUX0RBVEE7Ci0gICAgfQotCi0gICAgaWYgKGxlbmd0aCAlIE1CRURUTFNfQVJJQV9CTE9DS1NJWkUpIHsKLSAgICAgICAgcmV0dXJuIE1CRURUTFNfRVJSX0FSSUFfSU5WQUxJRF9JTlBVVF9MRU5HVEg7Ci0gICAgfQotCi0gICAgaWYgKG1vZGUgPT0gTUJFRFRMU19BUklBX0RFQ1JZUFQpIHsKLSAgICAgICAgd2hpbGUgKGxlbmd0aCA+IDApIHsKLSAgICAgICAgICAgIG1lbWNweSh0ZW1wLCBpbnB1dCwgTUJFRFRMU19BUklBX0JMT0NLU0laRSk7Ci0gICAgICAgICAgICBtYmVkdGxzX2FyaWFfY3J5cHRfZWNiKGN0eCwgaW5wdXQsIG91dHB1dCk7Ci0KLSAgICAgICAgICAgIG1iZWR0bHNfeG9yKG91dHB1dCwgb3V0cHV0LCBpdiwgTUJFRFRMU19BUklBX0JMT0NLU0laRSk7Ci0KLSAgICAgICAgICAgIG1lbWNweShpdiwgdGVtcCwgTUJFRFRMU19BUklBX0JMT0NLU0laRSk7Ci0KLSAgICAgICAgICAgIGlucHV0ICArPSBNQkVEVExTX0FSSUFfQkxPQ0tTSVpFOwotICAgICAgICAgICAgb3V0cHV0ICs9IE1CRURUTFNfQVJJQV9CTE9DS1NJWkU7Ci0gICAgICAgICAgICBsZW5ndGggLT0gTUJFRFRMU19BUklBX0JMT0NLU0laRTsKLSAgICAgICAgfQotICAgIH0gZWxzZSB7Ci0gICAgICAgIHdoaWxlIChsZW5ndGggPiAwKSB7Ci0gICAgICAgICAgICBtYmVkdGxzX3hvcihvdXRwdXQsIGlucHV0LCBpdiwgTUJFRFRMU19BUklBX0JMT0NLU0laRSk7Ci0KLSAgICAgICAgICAgIG1iZWR0bHNfYXJpYV9jcnlwdF9lY2IoY3R4LCBvdXRwdXQsIG91dHB1dCk7Ci0gICAgICAgICAgICBtZW1jcHkoaXYsIG91dHB1dCwgTUJFRFRMU19BUklBX0JMT0NLU0laRSk7Ci0KLSAgICAgICAgICAgIGlucHV0ICArPSBNQkVEVExTX0FSSUFfQkxPQ0tTSVpFOwotICAgICAgICAgICAgb3V0cHV0ICs9IE1CRURUTFNfQVJJQV9CTE9DS1NJWkU7Ci0gICAgICAgICAgICBsZW5ndGggLT0gTUJFRFRMU19BUklBX0JMT0NLU0laRTsKLSAgICAgICAgfQotICAgIH0KLQotICAgIHJldHVybiAwOwotfQotI2VuZGlmIC8qIE1CRURUTFNfQ0lQSEVSX01PREVfQ0JDICovCi0KLSNpZiBkZWZpbmVkKE1CRURUTFNfQ0lQSEVSX01PREVfQ0ZCKQotLyoKLSAqIEFSSUEtQ0ZCMTI4IGJ1ZmZlciBlbmNyeXB0aW9uL2RlY3J5cHRpb24KLSAqLwotaW50IG1iZWR0bHNfYXJpYV9jcnlwdF9jZmIxMjgobWJlZHRsc19hcmlhX2NvbnRleHQgKmN0eCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBtb2RlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IGxlbmd0aCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCAqaXZfb2ZmLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgY2hhciBpdltNQkVEVExTX0FSSUFfQkxPQ0tTSVpFXSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgKmlucHV0LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgY2hhciAqb3V0cHV0KQotewotICAgIHVuc2lnbmVkIGNoYXIgYzsKLSAgICBzaXplX3QgbjsKLQotICAgIGlmICgobW9kZSAhPSBNQkVEVExTX0FSSUFfRU5DUllQVCkgJiYgKG1vZGUgIT0gTUJFRFRMU19BUklBX0RFQ1JZUFQpKSB7Ci0gICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9BUklBX0JBRF9JTlBVVF9EQVRBOwotICAgIH0KLQotICAgIG4gPSAqaXZfb2ZmOwotCi0gICAgLyogQW4gb3Zlcmx5IGxhcmdlIHZhbHVlIG9mIG4gY2FuIGxlYWQgdG8gYW4gdW5saW1pdGVkCi0gICAgICogYnVmZmVyIG92ZXJmbG93LiAqLwotICAgIGlmIChuID49IE1CRURUTFNfQVJJQV9CTE9DS1NJWkUpIHsKLSAgICAgICAgcmV0dXJuIE1CRURUTFNfRVJSX0FSSUFfQkFEX0lOUFVUX0RBVEE7Ci0gICAgfQotCi0gICAgaWYgKG1vZGUgPT0gTUJFRFRMU19BUklBX0RFQ1JZUFQpIHsKLSAgICAgICAgd2hpbGUgKGxlbmd0aC0tKSB7Ci0gICAgICAgICAgICBpZiAobiA9PSAwKSB7Ci0gICAgICAgICAgICAgICAgbWJlZHRsc19hcmlhX2NyeXB0X2VjYihjdHgsIGl2LCBpdik7Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIGMgPSAqaW5wdXQrKzsKLSAgICAgICAgICAgICpvdXRwdXQrKyA9IGMgXiBpdltuXTsKLSAgICAgICAgICAgIGl2W25dID0gYzsKLQotICAgICAgICAgICAgbiA9IChuICsgMSkgJiAweDBGOwotICAgICAgICB9Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgd2hpbGUgKGxlbmd0aC0tKSB7Ci0gICAgICAgICAgICBpZiAobiA9PSAwKSB7Ci0gICAgICAgICAgICAgICAgbWJlZHRsc19hcmlhX2NyeXB0X2VjYihjdHgsIGl2LCBpdik7Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIGl2W25dID0gKm91dHB1dCsrID0gKHVuc2lnbmVkIGNoYXIpIChpdltuXSBeICppbnB1dCsrKTsKLQotICAgICAgICAgICAgbiA9IChuICsgMSkgJiAweDBGOwotICAgICAgICB9Ci0gICAgfQotCi0gICAgKml2X29mZiA9IG47Ci0KLSAgICByZXR1cm4gMDsKLX0KLSNlbmRpZiAvKiBNQkVEVExTX0NJUEhFUl9NT0RFX0NGQiAqLwotCi0jaWYgZGVmaW5lZChNQkVEVExTX0NJUEhFUl9NT0RFX0NUUikKLS8qCi0gKiBBUklBLUNUUiBidWZmZXIgZW5jcnlwdGlvbi9kZWNyeXB0aW9uCi0gKi8KLWludCBtYmVkdGxzX2FyaWFfY3J5cHRfY3RyKG1iZWR0bHNfYXJpYV9jb250ZXh0ICpjdHgsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgbGVuZ3RoLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90ICpuY19vZmYsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBjaGFyIG5vbmNlX2NvdW50ZXJbTUJFRFRMU19BUklBX0JMT0NLU0laRV0sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBjaGFyIHN0cmVhbV9ibG9ja1tNQkVEVExTX0FSSUFfQkxPQ0tTSVpFXSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgKmlucHV0LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgY2hhciAqb3V0cHV0KQotewotICAgIGludCBjLCBpOwotICAgIHNpemVfdCBuOwotCi0gICAgbiA9ICpuY19vZmY7Ci0gICAgLyogQW4gb3Zlcmx5IGxhcmdlIHZhbHVlIG9mIG4gY2FuIGxlYWQgdG8gYW4gdW5saW1pdGVkCi0gICAgICogYnVmZmVyIG92ZXJmbG93LiAqLwotICAgIGlmIChuID49IE1CRURUTFNfQVJJQV9CTE9DS1NJWkUpIHsKLSAgICAgICAgcmV0dXJuIE1CRURUTFNfRVJSX0FSSUFfQkFEX0lOUFVUX0RBVEE7Ci0gICAgfQotCi0gICAgd2hpbGUgKGxlbmd0aC0tKSB7Ci0gICAgICAgIGlmIChuID09IDApIHsKLSAgICAgICAgICAgIG1iZWR0bHNfYXJpYV9jcnlwdF9lY2IoY3R4LCBub25jZV9jb3VudGVyLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJlYW1fYmxvY2spOwotCi0gICAgICAgICAgICBmb3IgKGkgPSBNQkVEVExTX0FSSUFfQkxPQ0tTSVpFOyBpID4gMDsgaS0tKSB7Ci0gICAgICAgICAgICAgICAgaWYgKCsrbm9uY2VfY291bnRlcltpIC0gMV0gIT0gMCkgewotICAgICAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLSAgICAgICAgYyA9ICppbnB1dCsrOwotICAgICAgICAqb3V0cHV0KysgPSAodW5zaWduZWQgY2hhcikgKGMgXiBzdHJlYW1fYmxvY2tbbl0pOwotCi0gICAgICAgIG4gPSAobiArIDEpICYgMHgwRjsKLSAgICB9Ci0KLSAgICAqbmNfb2ZmID0gbjsKLQotICAgIHJldHVybiAwOwotfQotI2VuZGlmIC8qIE1CRURUTFNfQ0lQSEVSX01PREVfQ1RSICovCi0jZW5kaWYgLyogIU1CRURUTFNfQVJJQV9BTFQgKi8KLQotI2lmIGRlZmluZWQoTUJFRFRMU19TRUxGX1RFU1QpCi0KLS8qCi0gKiBCYXNpYyBBUklBIEVDQiB0ZXN0IHZlY3RvcnMgZnJvbSBSRkMgNTc5NAotICovCi1zdGF0aWMgY29uc3QgdWludDhfdCBhcmlhX3Rlc3QxX2VjYl9rZXlbMzJdID0gICAgICAgICAgIC8vIHRlc3Qga2V5Ci17Ci0gICAgMHgwMCwgMHgwMSwgMHgwMiwgMHgwMywgMHgwNCwgMHgwNSwgMHgwNiwgMHgwNywgICAgIC8vIDEyOCBiaXQKLSAgICAweDA4LCAweDA5LCAweDBBLCAweDBCLCAweDBDLCAweDBELCAweDBFLCAweDBGLAotICAgIDB4MTAsIDB4MTEsIDB4MTIsIDB4MTMsIDB4MTQsIDB4MTUsIDB4MTYsIDB4MTcsICAgICAvLyAxOTIgYml0Ci0gICAgMHgxOCwgMHgxOSwgMHgxQSwgMHgxQiwgMHgxQywgMHgxRCwgMHgxRSwgMHgxRiAgICAgIC8vIDI1NiBiaXQKLX07Ci0KLXN0YXRpYyBjb25zdCB1aW50OF90IGFyaWFfdGVzdDFfZWNiX3B0W01CRURUTFNfQVJJQV9CTE9DS1NJWkVdID0gICAgICAgICAgICAvLyBwbGFpbnRleHQKLXsKLSAgICAweDAwLCAweDExLCAweDIyLCAweDMzLCAweDQ0LCAweDU1LCAweDY2LCAweDc3LCAgICAgLy8gc2FtZSBmb3IgYWxsCi0gICAgMHg4OCwgMHg5OSwgMHhBQSwgMHhCQiwgMHhDQywgMHhERCwgMHhFRSwgMHhGRiAgICAgIC8vIGtleSBzaXplcwotfTsKLQotc3RhdGljIGNvbnN0IHVpbnQ4X3QgYXJpYV90ZXN0MV9lY2JfY3RbM11bTUJFRFRMU19BUklBX0JMT0NLU0laRV0gPSAgICAgICAgIC8vIGNpcGhlcnRleHQKLXsKLSAgICB7IDB4RDcsIDB4MTgsIDB4RkIsIDB4RDYsIDB4QUIsIDB4NjQsIDB4NEMsIDB4NzMsICAgLy8gMTI4IGJpdAotICAgICAgMHg5RCwgMHhBOSwgMHg1RiwgMHgzQiwgMHhFNiwgMHg0NSwgMHgxNywgMHg3OCB9LAotICAgIHsgMHgyNiwgMHg0NCwgMHg5QywgMHgxOCwgMHgwNSwgMHhEQiwgMHhFNywgMHhBQSwgICAvLyAxOTIgYml0Ci0gICAgICAweDI1LCAweEE0LCAweDY4LCAweENFLCAweDI2LCAweDNBLCAweDlFLCAweDc5IH0sCi0gICAgeyAweEY5LCAweDJCLCAweEQ3LCAweEM3LCAweDlGLCAweEI3LCAweDJFLCAweDJGLCAgIC8vIDI1NiBiaXQKLSAgICAgIDB4MkIsIDB4OEYsIDB4ODAsIDB4QzEsIDB4OTcsIDB4MkQsIDB4MjQsIDB4RkMgfQotfTsKLQotLyoKLSAqIE1vZGUgdGVzdHMgZnJvbSAiVGVzdCBWZWN0b3JzIGZvciBBUklBIiAgVmVyc2lvbiAxLjAKLSAqIGh0dHA6Ly8yMTAuMTA0LjMzLjEwL0FSSUEvZG9jL0FSSUEtdGVzdHZlY3Rvci1lLnBkZgotICovCi0jaWYgKGRlZmluZWQoTUJFRFRMU19DSVBIRVJfTU9ERV9DQkMpIHx8IGRlZmluZWQoTUJFRFRMU19DSVBIRVJfTU9ERV9DRkIpIHx8IFwKLSAgICBkZWZpbmVkKE1CRURUTFNfQ0lQSEVSX01PREVfQ1RSKSkKLXN0YXRpYyBjb25zdCB1aW50OF90IGFyaWFfdGVzdDJfa2V5WzMyXSA9Ci17Ci0gICAgMHgwMCwgMHgxMSwgMHgyMiwgMHgzMywgMHg0NCwgMHg1NSwgMHg2NiwgMHg3NywgICAgIC8vIDEyOCBiaXQKLSAgICAweDg4LCAweDk5LCAweGFhLCAweGJiLCAweGNjLCAweGRkLCAweGVlLCAweGZmLAotICAgIDB4MDAsIDB4MTEsIDB4MjIsIDB4MzMsIDB4NDQsIDB4NTUsIDB4NjYsIDB4NzcsICAgICAvLyAxOTIgYml0Ci0gICAgMHg4OCwgMHg5OSwgMHhhYSwgMHhiYiwgMHhjYywgMHhkZCwgMHhlZSwgMHhmZiAgICAgIC8vIDI1NiBiaXQKLX07Ci0KLXN0YXRpYyBjb25zdCB1aW50OF90IGFyaWFfdGVzdDJfcHRbNDhdID0KLXsKLSAgICAweDExLCAweDExLCAweDExLCAweDExLCAweGFhLCAweGFhLCAweGFhLCAweGFhLCAgICAgLy8gc2FtZSBmb3IgYWxsCi0gICAgMHgxMSwgMHgxMSwgMHgxMSwgMHgxMSwgMHhiYiwgMHhiYiwgMHhiYiwgMHhiYiwKLSAgICAweDExLCAweDExLCAweDExLCAweDExLCAweGNjLCAweGNjLCAweGNjLCAweGNjLAotICAgIDB4MTEsIDB4MTEsIDB4MTEsIDB4MTEsIDB4ZGQsIDB4ZGQsIDB4ZGQsIDB4ZGQsCi0gICAgMHgyMiwgMHgyMiwgMHgyMiwgMHgyMiwgMHhhYSwgMHhhYSwgMHhhYSwgMHhhYSwKLSAgICAweDIyLCAweDIyLCAweDIyLCAweDIyLCAweGJiLCAweGJiLCAweGJiLCAweGJiLAotfTsKLSNlbmRpZgotCi0jaWYgKGRlZmluZWQoTUJFRFRMU19DSVBIRVJfTU9ERV9DQkMpIHx8IGRlZmluZWQoTUJFRFRMU19DSVBIRVJfTU9ERV9DRkIpKQotc3RhdGljIGNvbnN0IHVpbnQ4X3QgYXJpYV90ZXN0Ml9pdltNQkVEVExTX0FSSUFfQkxPQ0tTSVpFXSA9Ci17Ci0gICAgMHgwZiwgMHgxZSwgMHgyZCwgMHgzYywgMHg0YiwgMHg1YSwgMHg2OSwgMHg3OCwgICAgIC8vIHNhbWUgZm9yIENCQywgQ0ZCCi0gICAgMHg4NywgMHg5NiwgMHhhNSwgMHhiNCwgMHhjMywgMHhkMiwgMHhlMSwgMHhmMCAgICAgIC8vIENUUiBoYXMgemVybyBJVgotfTsKLSNlbmRpZgotCi0jaWYgZGVmaW5lZChNQkVEVExTX0NJUEhFUl9NT0RFX0NCQykKLXN0YXRpYyBjb25zdCB1aW50OF90IGFyaWFfdGVzdDJfY2JjX2N0WzNdWzQ4XSA9ICAgICAgICAgLy8gQ0JDIGNpcGhlcnRleHQKLXsKLSAgICB7IDB4NDksIDB4ZDYsIDB4MTgsIDB4NjAsIDB4YjEsIDB4NDksIDB4MDksIDB4MTAsICAgLy8gMTI4LWJpdCBrZXkKLSAgICAgIDB4OWMsIDB4ZWYsIDB4MGQsIDB4MjIsIDB4YTksIDB4MjYsIDB4ODEsIDB4MzQsCi0gICAgICAweGZhLCAweGRmLCAweDlmLCAweGIyLCAweDMxLCAweDUxLCAweGU5LCAweDY0LAotICAgICAgMHg1ZiwgMHhiYSwgMHg3NSwgMHgwMSwgMHg4YiwgMHhkYiwgMHgxNSwgMHgzOCwKLSAgICAgIDB4YjUsIDB4MzMsIDB4MzQsIDB4NjMsIDB4NGIsIDB4YmYsIDB4N2QsIDB4NGMsCi0gICAgICAweGQ0LCAweGI1LCAweDM3LCAweDcwLCAweDMzLCAweDA2LCAweDBjLCAweDE1IH0sCi0gICAgeyAweGFmLCAweGU2LCAweGNmLCAweDIzLCAweDk3LCAweDRiLCAweDUzLCAweDNjLCAgIC8vIDE5Mi1iaXQga2V5Ci0gICAgICAweDY3LCAweDJhLCAweDgyLCAweDYyLCAweDY0LCAweGVhLCAweDc4LCAweDVmLAotICAgICAgMHg0ZSwgMHg0ZiwgMHg3ZiwgMHg3OCwgMHgwZCwgMHhjNywgMHhmMywgMHhmMSwKLSAgICAgIDB4ZTAsIDB4OTYsIDB4MmIsIDB4ODAsIDB4OTAsIDB4MjMsIDB4ODYsIDB4ZDUsCi0gICAgICAweDE0LCAweGU5LCAweGMzLCAweGU3LCAweDcyLCAweDU5LCAweGRlLCAweDkyLAotICAgICAgMHhkZCwgMHgxMSwgMHgwMiwgMHhmZiwgMHhhYiwgMHgwOCwgMHg2YywgMHgxZSB9LAotICAgIHsgMHg1MiwgMHgzYSwgMHg4YSwgMHg4MCwgMHg2YSwgMHhlNiwgMHgyMSwgMHhmMSwgICAvLyAyNTYtYml0IGtleQotICAgICAgMHg1NSwgMHhmZCwgMHhkMiwgMHg4ZCwgMHhiYywgMHgzNCwgMHhlMSwgMHhhYiwKLSAgICAgIDB4N2IsIDB4OWIsIDB4NDIsIDB4NDMsIDB4MmEsIDB4ZDgsIDB4YjIsIDB4ZWYsCi0gICAgICAweGI5LCAweDZlLCAweDIzLCAweGIxLCAweDNmLCAweDBhLCAweDZlLCAweDUyLAotICAgICAgMHhmMywgMHg2MSwgMHg4NSwgMHhkNSwgMHgwYSwgMHhkMCwgMHgwMiwgMHhjNSwKLSAgICAgIDB4ZjYsIDB4MDEsIDB4YmUsIDB4ZTUsIDB4NDksIDB4M2YsIDB4MTEsIDB4OGIgfQotfTsKLSNlbmRpZiAvKiBNQkVEVExTX0NJUEhFUl9NT0RFX0NCQyAqLwotCi0jaWYgZGVmaW5lZChNQkVEVExTX0NJUEhFUl9NT0RFX0NGQikKLXN0YXRpYyBjb25zdCB1aW50OF90IGFyaWFfdGVzdDJfY2ZiX2N0WzNdWzQ4XSA9ICAgICAgICAgLy8gQ0ZCIGNpcGhlcnRleHQKLXsKLSAgICB7IDB4MzcsIDB4MjAsIDB4ZTUsIDB4M2IsIDB4YTcsIDB4ZDYsIDB4MTUsIDB4MzgsICAgLy8gMTI4LWJpdCBrZXkKLSAgICAgIDB4MzQsIDB4MDYsIDB4YjAsIDB4OWYsIDB4MGEsIDB4MDUsIDB4YTIsIDB4MDAsCi0gICAgICAweGMwLCAweDdjLCAweDIxLCAweGU2LCAweDM3LCAweDBmLCAweDQxLCAweDNhLAotICAgICAgMHg1ZCwgMHgxMywgMHgyNSwgMHgwMCwgMHhhNiwgMHg4MiwgMHg4NSwgMHgwMSwKLSAgICAgIDB4N2MsIDB4NjEsIDB4YjQsIDB4MzQsIDB4YzcsIDB4YjcsIDB4Y2EsIDB4OTYsCi0gICAgICAweDg1LCAweGE1LCAweDEwLCAweDcxLCAweDg2LCAweDFlLCAweDRkLCAweDRiIH0sCi0gICAgeyAweDQxLCAweDcxLCAweGY3LCAweDE5LCAweDJiLCAweGY0LCAweDQ5LCAweDU0LCAgIC8vIDE5Mi1iaXQga2V5Ci0gICAgICAweDk0LCAweGQyLCAweDczLCAweDYxLCAweDI5LCAweDY0LCAweDBmLCAweDVjLAotICAgICAgMHg0ZCwgMHg4NywgMHhhOSwgMHhhMiwgMHgxMywgMHg2NiwgMHg0YywgMHg5NCwKLSAgICAgIDB4NDgsIDB4NDcsIDB4N2MsIDB4NmUsIDB4Y2MsIDB4MjAsIDB4MTMsIDB4NTksCi0gICAgICAweDhkLCAweDk3LCAweDY2LCAweDk1LCAweDJkLCAweGQ4LCAweGMzLCAweDg2LAotICAgICAgMHg4ZiwgMHgxNywgMHhlMywgMHg2ZSwgMHhmNiwgMHg2ZiwgMHhkOCwgMHg0YiB9LAotICAgIHsgMHgyNiwgMHg4MywgMHg0NywgMHgwNSwgMHhiMCwgMHhmMiwgMHhjMCwgMHhlMiwgICAvLyAyNTYtYml0IGtleQotICAgICAgMHg1OCwgMHg4ZCwgMHg0YSwgMHg3ZiwgMHgwOSwgMHgwMCwgMHg5NiwgMHgzNSwKLSAgICAgIDB4ZjIsIDB4OGIsIDB4YjksIDB4M2QsIDB4OGMsIDB4MzEsIDB4ZjgsIDB4NzAsCi0gICAgICAweGVjLCAweDFlLCAweDBiLCAweGRiLCAweDA4LCAweDJiLCAweDY2LCAweGZhLAotICAgICAgMHg0MCwgMHgyZCwgMHhkOSwgMHhjMiwgMHgwMiwgMHhiZSwgMHgzMCwgMHgwYywKLSAgICAgIDB4NDUsIDB4MTcsIDB4ZDEsIDB4OTYsIDB4YjEsIDB4NGQsIDB4NGMsIDB4ZTEgfQotfTsKLSNlbmRpZiAvKiBNQkVEVExTX0NJUEhFUl9NT0RFX0NGQiAqLwotCi0jaWYgZGVmaW5lZChNQkVEVExTX0NJUEhFUl9NT0RFX0NUUikKLXN0YXRpYyBjb25zdCB1aW50OF90IGFyaWFfdGVzdDJfY3RyX2N0WzNdWzQ4XSA9ICAgICAgICAgLy8gQ1RSIGNpcGhlcnRleHQKLXsKLSAgICB7IDB4YWMsIDB4NWQsIDB4N2QsIDB4ZTgsIDB4MDUsIDB4YTAsIDB4YmYsIDB4MWMsICAgLy8gMTI4LWJpdCBrZXkKLSAgICAgIDB4NTcsIDB4YzgsIDB4NTQsIDB4NTAsIDB4MWEsIDB4ZjYsIDB4MGYsIDB4YTEsCi0gICAgICAweDE0LCAweDk3LCAweGUyLCAweGEzLCAweDQ1LCAweDE5LCAweGRlLCAweGExLAotICAgICAgMHg1NiwgMHg5ZSwgMHg5MSwgMHhlNSwgMHhiNSwgMHhjYywgMHhhZSwgMHgyZiwKLSAgICAgIDB4ZjMsIDB4YmYsIDB4YTEsIDB4YmYsIDB4OTcsIDB4NWYsIDB4NDUsIDB4NzEsCi0gICAgICAweGY0LCAweDhiLCAweGUxLCAweDkxLCAweDYxLCAweDM1LCAweDQ2LCAweGMzIH0sCi0gICAgeyAweDA4LCAweDYyLCAweDVjLCAweGE4LCAweGZlLCAweDU2LCAweDljLCAweDE5LCAgIC8vIDE5Mi1iaXQga2V5Ci0gICAgICAweGJhLCAweDdhLCAweGYzLCAweDc2LCAweDBhLCAweDZlLCAweGQxLCAweGNlLAotICAgICAgMHhmNCwgMHhkMSwgMHg5OSwgMHgyNiwgMHgzZSwgMHg5OSwgMHg5ZCwgMHhkZSwKLSAgICAgIDB4MTQsIDB4MDgsIDB4MmQsIDB4YmIsIDB4YTcsIDB4NTYsIDB4MGIsIDB4NzksCi0gICAgICAweGE0LCAweGM2LCAweGI0LCAweDU2LCAweGI4LCAweDcwLCAweDdkLCAweGNlLAotICAgICAgMHg3NSwgMHgxZiwgMHg5OCwgMHg1NCwgMHhmMSwgMHg4OCwgMHg5MywgMHhkZiB9LAotICAgIHsgMHgzMCwgMHgwMiwgMHg2YywgMHgzMiwgMHg5NiwgMHg2NiwgMHgxNCwgMHgxNywgICAvLyAyNTYtYml0IGtleQotICAgICAgMHgyMSwgMHgxNywgMHg4YiwgMHg5OSwgMHhjMCwgMHhhMSwgMHhmMSwgMHhiMiwKLSAgICAgIDB4ZjAsIDB4NjksIDB4NDAsIDB4MjUsIDB4M2YsIDB4N2IsIDB4MzAsIDB4ODksCi0gICAgICAweGUyLCAweGEzLCAweDBlLCAweGE4LCAweDZhLCAweGEzLCAweGM4LCAweDhmLAotICAgICAgMHg1OSwgMHg0MCwgMHhmMCwgMHg1YSwgMHhkNywgMHhlZSwgMHg0MSwgMHhkNywKLSAgICAgIDB4MTMsIDB4NDcsIDB4YmIsIDB4NzIsIDB4NjEsIDB4ZTMsIDB4NDgsIDB4ZjEgfQotfTsKLSNlbmRpZiAvKiBNQkVEVExTX0NJUEhFUl9NT0RFX0NGQiAqLwotCi0jZGVmaW5lIEFSSUFfU0VMRl9URVNUX0FTU0VSVChjb25kKSAgICAgICAgICAgICAgICAgICBcCi0gICAgZG8geyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgICAgICBpZiAoY29uZCkgeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgICAgICAgICAgaWYgKHZlcmJvc2UpICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgICAgICAgICAgbWJlZHRsc19wcmludGYoImZhaWxlZFxuIik7ICAgICAgIFwKLSAgICAgICAgICAgIGdvdG8gZXhpdDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgICAgIH0gZWxzZSB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgICAgICAgICAgaWYgKHZlcmJvc2UpICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgICAgICAgICAgbWJlZHRsc19wcmludGYoInBhc3NlZFxuIik7ICAgICAgIFwKLSAgICAgICAgfSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgfSB3aGlsZSAoMCkKLQotLyoKLSAqIENoZWNrdXAgcm91dGluZQotICovCi1pbnQgbWJlZHRsc19hcmlhX3NlbGZfdGVzdChpbnQgdmVyYm9zZSkKLXsKLSAgICBpbnQgaTsKLSAgICB1aW50OF90IGJsa1tNQkVEVExTX0FSSUFfQkxPQ0tTSVpFXTsKLSAgICBtYmVkdGxzX2FyaWFfY29udGV4dCBjdHg7Ci0gICAgaW50IHJldCA9IDE7Ci0KLSNpZiAoZGVmaW5lZChNQkVEVExTX0NJUEhFUl9NT0RFX0NGQikgfHwgZGVmaW5lZChNQkVEVExTX0NJUEhFUl9NT0RFX0NUUikpCi0gICAgc2l6ZV90IGo7Ci0jZW5kaWYKLQotI2lmIChkZWZpbmVkKE1CRURUTFNfQ0lQSEVSX01PREVfQ0JDKSB8fCBcCi0gICAgZGVmaW5lZChNQkVEVExTX0NJUEhFUl9NT0RFX0NGQikgfHwgXAotICAgIGRlZmluZWQoTUJFRFRMU19DSVBIRVJfTU9ERV9DVFIpKQotICAgIHVpbnQ4X3QgYnVmWzQ4XSwgaXZbTUJFRFRMU19BUklBX0JMT0NLU0laRV07Ci0jZW5kaWYKLQotICAgIG1iZWR0bHNfYXJpYV9pbml0KCZjdHgpOwotCi0gICAgLyoKLSAgICAgKiBUZXN0IHNldCAxCi0gICAgICovCi0gICAgZm9yIChpID0gMDsgaSA8IDM7IGkrKykgewotICAgICAgICAvKiB0ZXN0IEVDQiBlbmNyeXB0aW9uICovCi0gICAgICAgIGlmICh2ZXJib3NlKSB7Ci0gICAgICAgICAgICBtYmVkdGxzX3ByaW50ZigiICBBUklBLUVDQi0lZCAoZW5jKTogIiwgMTI4ICsgNjQgKiBpKTsKLSAgICAgICAgfQotICAgICAgICBtYmVkdGxzX2FyaWFfc2V0a2V5X2VuYygmY3R4LCBhcmlhX3Rlc3QxX2VjYl9rZXksIDEyOCArIDY0ICogaSk7Ci0gICAgICAgIG1iZWR0bHNfYXJpYV9jcnlwdF9lY2IoJmN0eCwgYXJpYV90ZXN0MV9lY2JfcHQsIGJsayk7Ci0gICAgICAgIEFSSUFfU0VMRl9URVNUX0FTU0VSVCgKLSAgICAgICAgICAgIG1lbWNtcChibGssIGFyaWFfdGVzdDFfZWNiX2N0W2ldLCBNQkVEVExTX0FSSUFfQkxPQ0tTSVpFKQotICAgICAgICAgICAgIT0gMCk7Ci0KLSAgICAgICAgLyogdGVzdCBFQ0IgZGVjcnlwdGlvbiAqLwotICAgICAgICBpZiAodmVyYm9zZSkgewotICAgICAgICAgICAgbWJlZHRsc19wcmludGYoIiAgQVJJQS1FQ0ItJWQgKGRlYyk6ICIsIDEyOCArIDY0ICogaSk7Ci0jaWYgZGVmaW5lZChNQkVEVExTX0JMT0NLX0NJUEhFUl9OT19ERUNSWVBUKQotICAgICAgICAgICAgbWJlZHRsc19wcmludGYoInNraXBwZWRcbiIpOwotI2VuZGlmCi0gICAgICAgIH0KLQotI2lmICFkZWZpbmVkKE1CRURUTFNfQkxPQ0tfQ0lQSEVSX05PX0RFQ1JZUFQpCi0gICAgICAgIG1iZWR0bHNfYXJpYV9zZXRrZXlfZGVjKCZjdHgsIGFyaWFfdGVzdDFfZWNiX2tleSwgMTI4ICsgNjQgKiBpKTsKLSAgICAgICAgbWJlZHRsc19hcmlhX2NyeXB0X2VjYigmY3R4LCBhcmlhX3Rlc3QxX2VjYl9jdFtpXSwgYmxrKTsKLSAgICAgICAgQVJJQV9TRUxGX1RFU1RfQVNTRVJUKAotICAgICAgICAgICAgbWVtY21wKGJsaywgYXJpYV90ZXN0MV9lY2JfcHQsIE1CRURUTFNfQVJJQV9CTE9DS1NJWkUpCi0gICAgICAgICAgICAhPSAwKTsKLSNlbmRpZgotICAgIH0KLSAgICBpZiAodmVyYm9zZSkgewotICAgICAgICBtYmVkdGxzX3ByaW50ZigiXG4iKTsKLSAgICB9Ci0KLSAgICAvKgotICAgICAqIFRlc3Qgc2V0IDIKLSAgICAgKi8KLSNpZiBkZWZpbmVkKE1CRURUTFNfQ0lQSEVSX01PREVfQ0JDKQotICAgIGZvciAoaSA9IDA7IGkgPCAzOyBpKyspIHsKLSAgICAgICAgLyogVGVzdCBDQkMgZW5jcnlwdGlvbiAqLwotICAgICAgICBpZiAodmVyYm9zZSkgewotICAgICAgICAgICAgbWJlZHRsc19wcmludGYoIiAgQVJJQS1DQkMtJWQgKGVuYyk6ICIsIDEyOCArIDY0ICogaSk7Ci0gICAgICAgIH0KLSAgICAgICAgbWJlZHRsc19hcmlhX3NldGtleV9lbmMoJmN0eCwgYXJpYV90ZXN0Ml9rZXksIDEyOCArIDY0ICogaSk7Ci0gICAgICAgIG1lbWNweShpdiwgYXJpYV90ZXN0Ml9pdiwgTUJFRFRMU19BUklBX0JMT0NLU0laRSk7Ci0gICAgICAgIG1lbXNldChidWYsIDB4NTUsIHNpemVvZihidWYpKTsKLSAgICAgICAgbWJlZHRsc19hcmlhX2NyeXB0X2NiYygmY3R4LCBNQkVEVExTX0FSSUFfRU5DUllQVCwgNDgsIGl2LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyaWFfdGVzdDJfcHQsIGJ1Zik7Ci0gICAgICAgIEFSSUFfU0VMRl9URVNUX0FTU0VSVChtZW1jbXAoYnVmLCBhcmlhX3Rlc3QyX2NiY19jdFtpXSwgNDgpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAhPSAwKTsKLQotICAgICAgICAvKiBUZXN0IENCQyBkZWNyeXB0aW9uICovCi0gICAgICAgIGlmICh2ZXJib3NlKSB7Ci0gICAgICAgICAgICBtYmVkdGxzX3ByaW50ZigiICBBUklBLUNCQy0lZCAoZGVjKTogIiwgMTI4ICsgNjQgKiBpKTsKLSAgICAgICAgfQotICAgICAgICBtYmVkdGxzX2FyaWFfc2V0a2V5X2RlYygmY3R4LCBhcmlhX3Rlc3QyX2tleSwgMTI4ICsgNjQgKiBpKTsKLSAgICAgICAgbWVtY3B5KGl2LCBhcmlhX3Rlc3QyX2l2LCBNQkVEVExTX0FSSUFfQkxPQ0tTSVpFKTsKLSAgICAgICAgbWVtc2V0KGJ1ZiwgMHhBQSwgc2l6ZW9mKGJ1ZikpOwotICAgICAgICBtYmVkdGxzX2FyaWFfY3J5cHRfY2JjKCZjdHgsIE1CRURUTFNfQVJJQV9ERUNSWVBULCA0OCwgaXYsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJpYV90ZXN0Ml9jYmNfY3RbaV0sIGJ1Zik7Ci0gICAgICAgIEFSSUFfU0VMRl9URVNUX0FTU0VSVChtZW1jbXAoYnVmLCBhcmlhX3Rlc3QyX3B0LCA0OCkgIT0gMCk7Ci0gICAgfQotICAgIGlmICh2ZXJib3NlKSB7Ci0gICAgICAgIG1iZWR0bHNfcHJpbnRmKCJcbiIpOwotICAgIH0KLQotI2VuZGlmIC8qIE1CRURUTFNfQ0lQSEVSX01PREVfQ0JDICovCi0KLSNpZiBkZWZpbmVkKE1CRURUTFNfQ0lQSEVSX01PREVfQ0ZCKQotICAgIGZvciAoaSA9IDA7IGkgPCAzOyBpKyspIHsKLSAgICAgICAgLyogVGVzdCBDRkIgZW5jcnlwdGlvbiAqLwotICAgICAgICBpZiAodmVyYm9zZSkgewotICAgICAgICAgICAgbWJlZHRsc19wcmludGYoIiAgQVJJQS1DRkItJWQgKGVuYyk6ICIsIDEyOCArIDY0ICogaSk7Ci0gICAgICAgIH0KLSAgICAgICAgbWJlZHRsc19hcmlhX3NldGtleV9lbmMoJmN0eCwgYXJpYV90ZXN0Ml9rZXksIDEyOCArIDY0ICogaSk7Ci0gICAgICAgIG1lbWNweShpdiwgYXJpYV90ZXN0Ml9pdiwgTUJFRFRMU19BUklBX0JMT0NLU0laRSk7Ci0gICAgICAgIG1lbXNldChidWYsIDB4NTUsIHNpemVvZihidWYpKTsKLSAgICAgICAgaiA9IDA7Ci0gICAgICAgIG1iZWR0bHNfYXJpYV9jcnlwdF9jZmIxMjgoJmN0eCwgTUJFRFRMU19BUklBX0VOQ1JZUFQsIDQ4LCAmaiwgaXYsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJpYV90ZXN0Ml9wdCwgYnVmKTsKLSAgICAgICAgQVJJQV9TRUxGX1RFU1RfQVNTRVJUKG1lbWNtcChidWYsIGFyaWFfdGVzdDJfY2ZiX2N0W2ldLCA0OCkgIT0gMCk7Ci0KLSAgICAgICAgLyogVGVzdCBDRkIgZGVjcnlwdGlvbiAqLwotICAgICAgICBpZiAodmVyYm9zZSkgewotICAgICAgICAgICAgbWJlZHRsc19wcmludGYoIiAgQVJJQS1DRkItJWQgKGRlYyk6ICIsIDEyOCArIDY0ICogaSk7Ci0gICAgICAgIH0KLSAgICAgICAgbWJlZHRsc19hcmlhX3NldGtleV9lbmMoJmN0eCwgYXJpYV90ZXN0Ml9rZXksIDEyOCArIDY0ICogaSk7Ci0gICAgICAgIG1lbWNweShpdiwgYXJpYV90ZXN0Ml9pdiwgTUJFRFRMU19BUklBX0JMT0NLU0laRSk7Ci0gICAgICAgIG1lbXNldChidWYsIDB4QUEsIHNpemVvZihidWYpKTsKLSAgICAgICAgaiA9IDA7Ci0gICAgICAgIG1iZWR0bHNfYXJpYV9jcnlwdF9jZmIxMjgoJmN0eCwgTUJFRFRMU19BUklBX0RFQ1JZUFQsIDQ4LCAmaiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpdiwgYXJpYV90ZXN0Ml9jZmJfY3RbaV0sIGJ1Zik7Ci0gICAgICAgIEFSSUFfU0VMRl9URVNUX0FTU0VSVChtZW1jbXAoYnVmLCBhcmlhX3Rlc3QyX3B0LCA0OCkgIT0gMCk7Ci0gICAgfQotICAgIGlmICh2ZXJib3NlKSB7Ci0gICAgICAgIG1iZWR0bHNfcHJpbnRmKCJcbiIpOwotICAgIH0KLSNlbmRpZiAvKiBNQkVEVExTX0NJUEhFUl9NT0RFX0NGQiAqLwotCi0jaWYgZGVmaW5lZChNQkVEVExTX0NJUEhFUl9NT0RFX0NUUikKLSAgICBmb3IgKGkgPSAwOyBpIDwgMzsgaSsrKSB7Ci0gICAgICAgIC8qIFRlc3QgQ1RSIGVuY3J5cHRpb24gKi8KLSAgICAgICAgaWYgKHZlcmJvc2UpIHsKLSAgICAgICAgICAgIG1iZWR0bHNfcHJpbnRmKCIgIEFSSUEtQ1RSLSVkIChlbmMpOiAiLCAxMjggKyA2NCAqIGkpOwotICAgICAgICB9Ci0gICAgICAgIG1iZWR0bHNfYXJpYV9zZXRrZXlfZW5jKCZjdHgsIGFyaWFfdGVzdDJfa2V5LCAxMjggKyA2NCAqIGkpOwotICAgICAgICBtZW1zZXQoaXYsIDAsIE1CRURUTFNfQVJJQV9CTE9DS1NJWkUpOyAgICAgICAgICAgICAgICAgICAgICAvLyBJViA9IDAKLSAgICAgICAgbWVtc2V0KGJ1ZiwgMHg1NSwgc2l6ZW9mKGJ1ZikpOwotICAgICAgICBqID0gMDsKLSAgICAgICAgbWJlZHRsc19hcmlhX2NyeXB0X2N0cigmY3R4LCA0OCwgJmosIGl2LCBibGssCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJpYV90ZXN0Ml9wdCwgYnVmKTsKLSAgICAgICAgQVJJQV9TRUxGX1RFU1RfQVNTRVJUKG1lbWNtcChidWYsIGFyaWFfdGVzdDJfY3RyX2N0W2ldLCA0OCkgIT0gMCk7Ci0KLSAgICAgICAgLyogVGVzdCBDVFIgZGVjcnlwdGlvbiAqLwotICAgICAgICBpZiAodmVyYm9zZSkgewotICAgICAgICAgICAgbWJlZHRsc19wcmludGYoIiAgQVJJQS1DVFItJWQgKGRlYyk6ICIsIDEyOCArIDY0ICogaSk7Ci0gICAgICAgIH0KLSAgICAgICAgbWJlZHRsc19hcmlhX3NldGtleV9lbmMoJmN0eCwgYXJpYV90ZXN0Ml9rZXksIDEyOCArIDY0ICogaSk7Ci0gICAgICAgIG1lbXNldChpdiwgMCwgTUJFRFRMU19BUklBX0JMT0NLU0laRSk7ICAgICAgICAgICAgICAgICAgICAgIC8vIElWID0gMAotICAgICAgICBtZW1zZXQoYnVmLCAweEFBLCBzaXplb2YoYnVmKSk7Ci0gICAgICAgIGogPSAwOwotICAgICAgICBtYmVkdGxzX2FyaWFfY3J5cHRfY3RyKCZjdHgsIDQ4LCAmaiwgaXYsIGJsaywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmlhX3Rlc3QyX2N0cl9jdFtpXSwgYnVmKTsKLSAgICAgICAgQVJJQV9TRUxGX1RFU1RfQVNTRVJUKG1lbWNtcChidWYsIGFyaWFfdGVzdDJfcHQsIDQ4KSAhPSAwKTsKLSAgICB9Ci0gICAgaWYgKHZlcmJvc2UpIHsKLSAgICAgICAgbWJlZHRsc19wcmludGYoIlxuIik7Ci0gICAgfQotI2VuZGlmIC8qIE1CRURUTFNfQ0lQSEVSX01PREVfQ1RSICovCi0KLSAgICByZXQgPSAwOwotCi1leGl0OgotICAgIG1iZWR0bHNfYXJpYV9mcmVlKCZjdHgpOwotICAgIHJldHVybiByZXQ7Ci19Ci0KLSNlbmRpZiAvKiBNQkVEVExTX1NFTEZfVEVTVCAqLwotCi0jZW5kaWYgLyogTUJFRFRMU19BUklBX0MgKi8KZGlmZiAtLWdpdCBhL2xpYnJhcnkvYmxvY2tfY2lwaGVyLmMgYi9saWJyYXJ5L2Jsb2NrX2NpcGhlci5jCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwNGNkN2ZiLi4wMDAwMDAwCi0tLSBhL2xpYnJhcnkvYmxvY2tfY2lwaGVyLmMKKysrIC9kZXYvbnVsbApAQCAtMSwyMDMgKzAsMCBAQAotLyoqCi0gKiBcZmlsZSBibG9ja19jaXBoZXIuYwotICoKLSAqIFxicmllZiBMaWdodHdlaWdodCBhYnN0cmFjdGlvbiBsYXllciBmb3IgYmxvY2sgY2lwaGVycyB3aXRoIDEyOCBiaXQgYmxvY2tzLAotICogZm9yIHVzZSBieSB0aGUgR0NNIGFuZCBDQ00gbW9kdWxlcy4KLSAqLwotLyoKLSAqICBDb3B5cmlnaHQgVGhlIE1iZWQgVExTIENvbnRyaWJ1dG9ycwotICogIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wIE9SIEdQTC0yLjAtb3ItbGF0ZXIKLSAqLwotCi0jaW5jbHVkZSAiY29tbW9uLmgiCi0KLSNpZiBkZWZpbmVkKE1CRURUTFNfQkxPQ0tfQ0lQSEVSX1NPTUVfUFNBKQotI2luY2x1ZGUgInBzYS9jcnlwdG8uaCIKLSNpbmNsdWRlICJwc2FfY3J5cHRvX2NvcmUuaCIKLSNpbmNsdWRlICJwc2FfdXRpbF9pbnRlcm5hbC5oIgotI2VuZGlmCi0KLSNpbmNsdWRlICJibG9ja19jaXBoZXJfaW50ZXJuYWwuaCIKLQotI2lmIGRlZmluZWQoTUJFRFRMU19CTE9DS19DSVBIRVJfQykKLQotI2lmIGRlZmluZWQoTUJFRFRMU19CTE9DS19DSVBIRVJfU09NRV9QU0EpCi1zdGF0aWMgcHNhX2tleV90eXBlX3QgcHNhX2tleV90eXBlX2Zyb21fYmxvY2tfY2lwaGVyX2lkKG1iZWR0bHNfYmxvY2tfY2lwaGVyX2lkX3QgY2lwaGVyX2lkKQotewotICAgIHN3aXRjaCAoY2lwaGVyX2lkKSB7Ci0jaWYgZGVmaW5lZChNQkVEVExTX0JMT0NLX0NJUEhFUl9BRVNfVklBX1BTQSkKLSAgICAgICAgY2FzZSBNQkVEVExTX0JMT0NLX0NJUEhFUl9JRF9BRVM6Ci0gICAgICAgICAgICByZXR1cm4gUFNBX0tFWV9UWVBFX0FFUzsKLSNlbmRpZgotI2lmIGRlZmluZWQoTUJFRFRMU19CTE9DS19DSVBIRVJfQVJJQV9WSUFfUFNBKQotICAgICAgICBjYXNlIE1CRURUTFNfQkxPQ0tfQ0lQSEVSX0lEX0FSSUE6Ci0gICAgICAgICAgICByZXR1cm4gUFNBX0tFWV9UWVBFX0FSSUE7Ci0jZW5kaWYKLSNpZiBkZWZpbmVkKE1CRURUTFNfQkxPQ0tfQ0lQSEVSX0NBTUVMTElBX1ZJQV9QU0EpCi0gICAgICAgIGNhc2UgTUJFRFRMU19CTE9DS19DSVBIRVJfSURfQ0FNRUxMSUE6Ci0gICAgICAgICAgICByZXR1cm4gUFNBX0tFWV9UWVBFX0NBTUVMTElBOwotI2VuZGlmCi0gICAgICAgIGRlZmF1bHQ6Ci0gICAgICAgICAgICByZXR1cm4gUFNBX0tFWV9UWVBFX05PTkU7Ci0gICAgfQotfQotCi1zdGF0aWMgaW50IG1iZWR0bHNfY2lwaGVyX2Vycm9yX2Zyb21fcHNhKHBzYV9zdGF0dXNfdCBzdGF0dXMpCi17Ci0gICAgcmV0dXJuIFBTQV9UT19NQkVEVExTX0VSUl9MSVNUKHN0YXR1cywgcHNhX3RvX2NpcGhlcl9lcnJvcnMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBzYV9nZW5lcmljX3N0YXR1c190b19tYmVkdGxzKTsKLX0KLSNlbmRpZiAvKiBNQkVEVExTX0JMT0NLX0NJUEhFUl9TT01FX1BTQSAqLwotCi12b2lkIG1iZWR0bHNfYmxvY2tfY2lwaGVyX2ZyZWUobWJlZHRsc19ibG9ja19jaXBoZXJfY29udGV4dF90ICpjdHgpCi17Ci0jaWYgZGVmaW5lZChNQkVEVExTX0JMT0NLX0NJUEhFUl9TT01FX1BTQSkKLSAgICBpZiAoY3R4LT5lbmdpbmUgPT0gTUJFRFRMU19CTE9DS19DSVBIRVJfRU5HSU5FX1BTQSkgewotICAgICAgICBwc2FfZGVzdHJveV9rZXkoY3R4LT5wc2Ffa2V5X2lkKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLSNlbmRpZgotICAgIHN3aXRjaCAoY3R4LT5pZCkgewotI2lmIGRlZmluZWQoTUJFRFRMU19BRVNfQykKLSAgICAgICAgY2FzZSBNQkVEVExTX0JMT0NLX0NJUEhFUl9JRF9BRVM6Ci0gICAgICAgICAgICBtYmVkdGxzX2Flc19mcmVlKCZjdHgtPmN0eC5hZXMpOwotICAgICAgICAgICAgYnJlYWs7Ci0jZW5kaWYKLSNpZiBkZWZpbmVkKE1CRURUTFNfQVJJQV9DKQotICAgICAgICBjYXNlIE1CRURUTFNfQkxPQ0tfQ0lQSEVSX0lEX0FSSUE6Ci0gICAgICAgICAgICBtYmVkdGxzX2FyaWFfZnJlZSgmY3R4LT5jdHguYXJpYSk7Ci0gICAgICAgICAgICBicmVhazsKLSNlbmRpZgotI2lmIGRlZmluZWQoTUJFRFRMU19DQU1FTExJQV9DKQotICAgICAgICBjYXNlIE1CRURUTFNfQkxPQ0tfQ0lQSEVSX0lEX0NBTUVMTElBOgotICAgICAgICAgICAgbWJlZHRsc19jYW1lbGxpYV9mcmVlKCZjdHgtPmN0eC5jYW1lbGxpYSk7Ci0gICAgICAgICAgICBicmVhazsKLSNlbmRpZgotICAgICAgICBkZWZhdWx0OgotICAgICAgICAgICAgYnJlYWs7Ci0gICAgfQotICAgIGN0eC0+aWQgPSBNQkVEVExTX0JMT0NLX0NJUEhFUl9JRF9OT05FOwotfQotCi1pbnQgbWJlZHRsc19ibG9ja19jaXBoZXJfc2V0dXAobWJlZHRsc19ibG9ja19jaXBoZXJfY29udGV4dF90ICpjdHgsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWJlZHRsc19jaXBoZXJfaWRfdCBjaXBoZXJfaWQpCi17Ci0gICAgY3R4LT5pZCA9IChjaXBoZXJfaWQgPT0gTUJFRFRMU19DSVBIRVJfSURfQUVTKSA/IE1CRURUTFNfQkxPQ0tfQ0lQSEVSX0lEX0FFUyA6Ci0gICAgICAgICAgICAgIChjaXBoZXJfaWQgPT0gTUJFRFRMU19DSVBIRVJfSURfQVJJQSkgPyBNQkVEVExTX0JMT0NLX0NJUEhFUl9JRF9BUklBIDoKLSAgICAgICAgICAgICAgKGNpcGhlcl9pZCA9PSBNQkVEVExTX0NJUEhFUl9JRF9DQU1FTExJQSkgPyBNQkVEVExTX0JMT0NLX0NJUEhFUl9JRF9DQU1FTExJQSA6Ci0gICAgICAgICAgICAgIE1CRURUTFNfQkxPQ0tfQ0lQSEVSX0lEX05PTkU7Ci0KLSNpZiBkZWZpbmVkKE1CRURUTFNfQkxPQ0tfQ0lQSEVSX1NPTUVfUFNBKQotICAgIHBzYV9rZXlfdHlwZV90IHBzYV9rZXlfdHlwZSA9IHBzYV9rZXlfdHlwZV9mcm9tX2Jsb2NrX2NpcGhlcl9pZChjdHgtPmlkKTsKLSAgICBpZiAocHNhX2tleV90eXBlICE9IFBTQV9LRVlfVFlQRV9OT05FICYmCi0gICAgICAgIHBzYV9jYW5fZG9fY2lwaGVyKHBzYV9rZXlfdHlwZSwgUFNBX0FMR19FQ0JfTk9fUEFERElORykpIHsKLSAgICAgICAgY3R4LT5lbmdpbmUgPSBNQkVEVExTX0JMT0NLX0NJUEhFUl9FTkdJTkVfUFNBOwotICAgICAgICByZXR1cm4gMDsKLSAgICB9Ci0gICAgY3R4LT5lbmdpbmUgPSBNQkVEVExTX0JMT0NLX0NJUEhFUl9FTkdJTkVfTEVHQUNZOwotI2VuZGlmCi0KLSAgICBzd2l0Y2ggKGN0eC0+aWQpIHsKLSNpZiBkZWZpbmVkKE1CRURUTFNfQUVTX0MpCi0gICAgICAgIGNhc2UgTUJFRFRMU19CTE9DS19DSVBIRVJfSURfQUVTOgotICAgICAgICAgICAgbWJlZHRsc19hZXNfaW5pdCgmY3R4LT5jdHguYWVzKTsKLSAgICAgICAgICAgIHJldHVybiAwOwotI2VuZGlmCi0jaWYgZGVmaW5lZChNQkVEVExTX0FSSUFfQykKLSAgICAgICAgY2FzZSBNQkVEVExTX0JMT0NLX0NJUEhFUl9JRF9BUklBOgotICAgICAgICAgICAgbWJlZHRsc19hcmlhX2luaXQoJmN0eC0+Y3R4LmFyaWEpOwotICAgICAgICAgICAgcmV0dXJuIDA7Ci0jZW5kaWYKLSNpZiBkZWZpbmVkKE1CRURUTFNfQ0FNRUxMSUFfQykKLSAgICAgICAgY2FzZSBNQkVEVExTX0JMT0NLX0NJUEhFUl9JRF9DQU1FTExJQToKLSAgICAgICAgICAgIG1iZWR0bHNfY2FtZWxsaWFfaW5pdCgmY3R4LT5jdHguY2FtZWxsaWEpOwotICAgICAgICAgICAgcmV0dXJuIDA7Ci0jZW5kaWYKLSAgICAgICAgZGVmYXVsdDoKLSAgICAgICAgICAgIGN0eC0+aWQgPSBNQkVEVExTX0JMT0NLX0NJUEhFUl9JRF9OT05FOwotICAgICAgICAgICAgcmV0dXJuIE1CRURUTFNfRVJSX0NJUEhFUl9CQURfSU5QVVRfREFUQTsKLSAgICB9Ci19Ci0KLWludCBtYmVkdGxzX2Jsb2NrX2NpcGhlcl9zZXRrZXkobWJlZHRsc19ibG9ja19jaXBoZXJfY29udGV4dF90ICpjdHgsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgKmtleSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQga2V5X2JpdGxlbikKLXsKLSNpZiBkZWZpbmVkKE1CRURUTFNfQkxPQ0tfQ0lQSEVSX1NPTUVfUFNBKQotICAgIGlmIChjdHgtPmVuZ2luZSA9PSBNQkVEVExTX0JMT0NLX0NJUEhFUl9FTkdJTkVfUFNBKSB7Ci0gICAgICAgIHBzYV9rZXlfYXR0cmlidXRlc190IGtleV9hdHRyID0gUFNBX0tFWV9BVFRSSUJVVEVTX0lOSVQ7Ci0gICAgICAgIHBzYV9zdGF0dXNfdCBzdGF0dXM7Ci0KLSAgICAgICAgcHNhX3NldF9rZXlfdHlwZSgma2V5X2F0dHIsIHBzYV9rZXlfdHlwZV9mcm9tX2Jsb2NrX2NpcGhlcl9pZChjdHgtPmlkKSk7Ci0gICAgICAgIHBzYV9zZXRfa2V5X2JpdHMoJmtleV9hdHRyLCBrZXlfYml0bGVuKTsKLSAgICAgICAgcHNhX3NldF9rZXlfYWxnb3JpdGhtKCZrZXlfYXR0ciwgUFNBX0FMR19FQ0JfTk9fUEFERElORyk7Ci0gICAgICAgIHBzYV9zZXRfa2V5X3VzYWdlX2ZsYWdzKCZrZXlfYXR0ciwgUFNBX0tFWV9VU0FHRV9FTkNSWVBUKTsKLQotICAgICAgICBzdGF0dXMgPSBwc2FfaW1wb3J0X2tleSgma2V5X2F0dHIsIGtleSwgUFNBX0JJVFNfVE9fQllURVMoa2V5X2JpdGxlbiksICZjdHgtPnBzYV9rZXlfaWQpOwotICAgICAgICBpZiAoc3RhdHVzICE9IFBTQV9TVUNDRVNTKSB7Ci0gICAgICAgICAgICByZXR1cm4gbWJlZHRsc19jaXBoZXJfZXJyb3JfZnJvbV9wc2Eoc3RhdHVzKTsKLSAgICAgICAgfQotICAgICAgICBwc2FfcmVzZXRfa2V5X2F0dHJpYnV0ZXMoJmtleV9hdHRyKTsKLQotICAgICAgICByZXR1cm4gMDsKLSAgICB9Ci0jZW5kaWYgLyogTUJFRFRMU19CTE9DS19DSVBIRVJfU09NRV9QU0EgKi8KLQotICAgIHN3aXRjaCAoY3R4LT5pZCkgewotI2lmIGRlZmluZWQoTUJFRFRMU19BRVNfQykKLSAgICAgICAgY2FzZSBNQkVEVExTX0JMT0NLX0NJUEhFUl9JRF9BRVM6Ci0gICAgICAgICAgICByZXR1cm4gbWJlZHRsc19hZXNfc2V0a2V5X2VuYygmY3R4LT5jdHguYWVzLCBrZXksIGtleV9iaXRsZW4pOwotI2VuZGlmCi0jaWYgZGVmaW5lZChNQkVEVExTX0FSSUFfQykKLSAgICAgICAgY2FzZSBNQkVEVExTX0JMT0NLX0NJUEhFUl9JRF9BUklBOgotICAgICAgICAgICAgcmV0dXJuIG1iZWR0bHNfYXJpYV9zZXRrZXlfZW5jKCZjdHgtPmN0eC5hcmlhLCBrZXksIGtleV9iaXRsZW4pOwotI2VuZGlmCi0jaWYgZGVmaW5lZChNQkVEVExTX0NBTUVMTElBX0MpCi0gICAgICAgIGNhc2UgTUJFRFRMU19CTE9DS19DSVBIRVJfSURfQ0FNRUxMSUE6Ci0gICAgICAgICAgICByZXR1cm4gbWJlZHRsc19jYW1lbGxpYV9zZXRrZXlfZW5jKCZjdHgtPmN0eC5jYW1lbGxpYSwga2V5LCBrZXlfYml0bGVuKTsKLSNlbmRpZgotICAgICAgICBkZWZhdWx0OgotICAgICAgICAgICAgcmV0dXJuIE1CRURUTFNfRVJSX0NJUEhFUl9JTlZBTElEX0NPTlRFWFQ7Ci0gICAgfQotfQotCi1pbnQgbWJlZHRsc19ibG9ja19jaXBoZXJfZW5jcnlwdChtYmVkdGxzX2Jsb2NrX2NpcGhlcl9jb250ZXh0X3QgKmN0eCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgaW5wdXRbMTZdLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgY2hhciBvdXRwdXRbMTZdKQotewotI2lmIGRlZmluZWQoTUJFRFRMU19CTE9DS19DSVBIRVJfU09NRV9QU0EpCi0gICAgaWYgKGN0eC0+ZW5naW5lID09IE1CRURUTFNfQkxPQ0tfQ0lQSEVSX0VOR0lORV9QU0EpIHsKLSAgICAgICAgcHNhX3N0YXR1c190IHN0YXR1czsKLSAgICAgICAgc2l6ZV90IG9sZW47Ci0KLSAgICAgICAgc3RhdHVzID0gcHNhX2NpcGhlcl9lbmNyeXB0KGN0eC0+cHNhX2tleV9pZCwgUFNBX0FMR19FQ0JfTk9fUEFERElORywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlucHV0LCAxNiwgb3V0cHV0LCAxNiwgJm9sZW4pOwotICAgICAgICBpZiAoc3RhdHVzICE9IFBTQV9TVUNDRVNTKSB7Ci0gICAgICAgICAgICByZXR1cm4gbWJlZHRsc19jaXBoZXJfZXJyb3JfZnJvbV9wc2Eoc3RhdHVzKTsKLSAgICAgICAgfQotICAgICAgICByZXR1cm4gMDsKLSAgICB9Ci0jZW5kaWYgLyogTUJFRFRMU19CTE9DS19DSVBIRVJfU09NRV9QU0EgKi8KLQotICAgIHN3aXRjaCAoY3R4LT5pZCkgewotI2lmIGRlZmluZWQoTUJFRFRMU19BRVNfQykKLSAgICAgICAgY2FzZSBNQkVEVExTX0JMT0NLX0NJUEhFUl9JRF9BRVM6Ci0gICAgICAgICAgICByZXR1cm4gbWJlZHRsc19hZXNfY3J5cHRfZWNiKCZjdHgtPmN0eC5hZXMsIE1CRURUTFNfQUVTX0VOQ1JZUFQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlucHV0LCBvdXRwdXQpOwotI2VuZGlmCi0jaWYgZGVmaW5lZChNQkVEVExTX0FSSUFfQykKLSAgICAgICAgY2FzZSBNQkVEVExTX0JMT0NLX0NJUEhFUl9JRF9BUklBOgotICAgICAgICAgICAgcmV0dXJuIG1iZWR0bHNfYXJpYV9jcnlwdF9lY2IoJmN0eC0+Y3R4LmFyaWEsIGlucHV0LCBvdXRwdXQpOwotI2VuZGlmCi0jaWYgZGVmaW5lZChNQkVEVExTX0NBTUVMTElBX0MpCi0gICAgICAgIGNhc2UgTUJFRFRMU19CTE9DS19DSVBIRVJfSURfQ0FNRUxMSUE6Ci0gICAgICAgICAgICByZXR1cm4gbWJlZHRsc19jYW1lbGxpYV9jcnlwdF9lY2IoJmN0eC0+Y3R4LmNhbWVsbGlhLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1CRURUTFNfQ0FNRUxMSUFfRU5DUllQVCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnB1dCwgb3V0cHV0KTsKLSNlbmRpZgotICAgICAgICBkZWZhdWx0OgotICAgICAgICAgICAgcmV0dXJuIE1CRURUTFNfRVJSX0NJUEhFUl9JTlZBTElEX0NPTlRFWFQ7Ci0gICAgfQotfQotCi0jZW5kaWYgLyogTUJFRFRMU19CTE9DS19DSVBIRVJfQyAqLwpkaWZmIC0tZ2l0IGEvbGlicmFyeS9jYW1lbGxpYS5jIGIvbGlicmFyeS9jYW1lbGxpYS5jCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiMWMwYTA4Li4wMDAwMDAwCi0tLSBhL2xpYnJhcnkvY2FtZWxsaWEuYworKysgL2Rldi9udWxsCkBAIC0xLDEwNTggKzAsMCBAQAotLyoKLSAqICBDYW1lbGxpYSBpbXBsZW1lbnRhdGlvbgotICoKLSAqICBDb3B5cmlnaHQgVGhlIE1iZWQgVExTIENvbnRyaWJ1dG9ycwotICogIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wIE9SIEdQTC0yLjAtb3ItbGF0ZXIKLSAqLwotLyoKLSAqICBUaGUgQ2FtZWxsaWEgYmxvY2sgY2lwaGVyIHdhcyBkZXNpZ25lZCBieSBOVFQgYW5kIE1pdHN1YmlzaGkgRWxlY3RyaWMKLSAqICBDb3Jwb3JhdGlvbi4KLSAqCi0gKiAgaHR0cDovL2luZm8uaXNsLm50dC5jby5qcC9jcnlwdC9lbmcvY2FtZWxsaWEvZGwvMDFlc3BlYy5wZGYKLSAqLwotCi0jaW5jbHVkZSAiY29tbW9uLmgiCi0KLSNpZiBkZWZpbmVkKE1CRURUTFNfQ0FNRUxMSUFfQykKLQotI2luY2x1ZGUgIm1iZWR0bHMvY2FtZWxsaWEuaCIKLSNpbmNsdWRlICJtYmVkdGxzL3BsYXRmb3JtX3V0aWwuaCIKLQotI2luY2x1ZGUgPHN0cmluZy5oPgotCi0jaW5jbHVkZSAibWJlZHRscy9wbGF0Zm9ybS5oIgotCi0jaWYgIWRlZmluZWQoTUJFRFRMU19DQU1FTExJQV9BTFQpCi0KLXN0YXRpYyBjb25zdCB1bnNpZ25lZCBjaGFyIFNJR01BX0NIQVJTWzZdWzhdID0KLXsKLSAgICB7IDB4YTAsIDB4OWUsIDB4NjYsIDB4N2YsIDB4M2IsIDB4Y2MsIDB4OTAsIDB4OGIgfSwKLSAgICB7IDB4YjYsIDB4N2EsIDB4ZTgsIDB4NTgsIDB4NGMsIDB4YWEsIDB4NzMsIDB4YjIgfSwKLSAgICB7IDB4YzYsIDB4ZWYsIDB4MzcsIDB4MmYsIDB4ZTksIDB4NGYsIDB4ODIsIDB4YmUgfSwKLSAgICB7IDB4NTQsIDB4ZmYsIDB4NTMsIDB4YTUsIDB4ZjEsIDB4ZDMsIDB4NmYsIDB4MWMgfSwKLSAgICB7IDB4MTAsIDB4ZTUsIDB4MjcsIDB4ZmEsIDB4ZGUsIDB4NjgsIDB4MmQsIDB4MWQgfSwKLSAgICB7IDB4YjAsIDB4NTYsIDB4ODgsIDB4YzIsIDB4YjMsIDB4ZTYsIDB4YzEsIDB4ZmQgfQotfTsKLQotI2lmIGRlZmluZWQoTUJFRFRMU19DQU1FTExJQV9TTUFMTF9NRU1PUlkpCi0KLXN0YXRpYyBjb25zdCB1bnNpZ25lZCBjaGFyIEZTYlsyNTZdID0KLXsKLSAgICAxMTIsIDEzMCwgNDQsIDIzNiwgMTc5LCAzOSwgMTkyLCAyMjksIDIyOCwgMTMzLCA4NywgNTMsIDIzNCwgMTIsIDE3NCwgNjUsCi0gICAgMzUsIDIzOSwgMTA3LCAxNDcsIDY5LCAyNSwgMTY1LCAzMywgMjM3LCAxNCwgNzksIDc4LCAyOSwgMTAxLCAxNDYsIDE4OSwKLSAgICAxMzQsIDE4NCwgMTc1LCAxNDMsIDEyNCwgMjM1LCAzMSwgMjA2LCA2MiwgNDgsIDIyMCwgOTUsIDk0LCAxOTcsIDExLCAyNiwKLSAgICAxNjYsIDIyNSwgNTcsIDIwMiwgMjEzLCA3MSwgOTMsIDYxLCAyMTcsICAxLCA5MCwgMjE0LCA4MSwgODYsIDEwOCwgNzcsCi0gICAgMTM5LCAxMywgMTU0LCAxMDIsIDI1MSwgMjA0LCAxNzYsIDQ1LCAxMTYsIDE4LCA0MywgMzIsIDI0MCwgMTc3LCAxMzIsIDE1MywKLSAgICAyMjMsIDc2LCAyMDMsIDE5NCwgNTIsIDEyNiwgMTE4LCAgNSwgMTA5LCAxODMsIDE2OSwgNDksIDIwOSwgMjMsICA0LCAyMTUsCi0gICAgMjAsIDg4LCA1OCwgOTcsIDIyMiwgMjcsIDE3LCAyOCwgNTAsIDE1LCAxNTYsIDIyLCA4MywgMjQsIDI0MiwgMzQsCi0gICAgMjU0LCA2OCwgMjA3LCAxNzgsIDE5NSwgMTgxLCAxMjIsIDE0NSwgMzYsICA4LCAyMzIsIDE2OCwgOTYsIDI1MiwgMTA1LCA4MCwKLSAgICAxNzAsIDIwOCwgMTYwLCAxMjUsIDE2MSwgMTM3LCA5OCwgMTUxLCA4NCwgOTEsIDMwLCAxNDksIDIyNCwgMjU1LCAxMDAsIDIxMCwKLSAgICAxNiwgMTk2LCAgMCwgNzIsIDE2MywgMjQ3LCAxMTcsIDIxOSwgMTM4LCAgMywgMjMwLCAyMTgsICA5LCA2MywgMjIxLCAxNDgsCi0gICAgMTM1LCA5MiwgMTMxLCAgMiwgMjA1LCA3NCwgMTQ0LCA1MSwgMTE1LCAxMDMsIDI0NiwgMjQzLCAxNTcsIDEyNywgMTkxLCAyMjYsCi0gICAgODIsIDE1NSwgMjE2LCAzOCwgMjAwLCA1NSwgMTk4LCA1OSwgMTI5LCAxNTAsIDExMSwgNzUsIDE5LCAxOTAsIDk5LCA0NiwKLSAgICAyMzMsIDEyMSwgMTY3LCAxNDAsIDE1OSwgMTEwLCAxODgsIDE0MiwgNDEsIDI0NSwgMjQ5LCAxODIsIDQ3LCAyNTMsIDE4MCwgODksCi0gICAgMTIwLCAxNTIsICA2LCAxMDYsIDIzMSwgNzAsIDExMywgMTg2LCAyMTIsIDM3LCAxNzEsIDY2LCAxMzYsIDE2MiwgMTQxLCAyNTAsCi0gICAgMTE0LCAgNywgMTg1LCA4NSwgMjQ4LCAyMzgsIDE3MiwgMTAsIDU0LCA3MywgNDIsIDEwNCwgNjAsIDU2LCAyNDEsIDE2NCwKLSAgICA2NCwgNDAsIDIxMSwgMTIzLCAxODcsIDIwMSwgNjcsIDE5MywgMjEsIDIyNywgMTczLCAyNDQsIDExOSwgMTk5LCAxMjgsIDE1OAotfTsKLQotI2RlZmluZSBTQk9YMShuKSBGU2JbKG4pXQotI2RlZmluZSBTQk9YMihuKSAodW5zaWduZWQgY2hhcikgKChGU2JbKG4pXSA+PiA3IF4gRlNiWyhuKV0gPDwgMSkgJiAweGZmKQotI2RlZmluZSBTQk9YMyhuKSAodW5zaWduZWQgY2hhcikgKChGU2JbKG4pXSA+PiAxIF4gRlNiWyhuKV0gPDwgNykgJiAweGZmKQotI2RlZmluZSBTQk9YNChuKSBGU2JbKChuKSA8PCAxIF4gKG4pID4+IDcpICYweGZmXQotCi0jZWxzZSAvKiBNQkVEVExTX0NBTUVMTElBX1NNQUxMX01FTU9SWSAqLwotCi1zdGF0aWMgY29uc3QgdW5zaWduZWQgY2hhciBGU2JbMjU2XSA9Ci17Ci0gICAgMTEyLCAxMzAsICA0NCwgMjM2LCAxNzksICAzOSwgMTkyLCAyMjksIDIyOCwgMTMzLCAgODcsICA1MywgMjM0LCAgMTIsIDE3NCwgIDY1LAotICAgIDM1LCAyMzksIDEwNywgMTQ3LCAgNjksICAyNSwgMTY1LCAgMzMsIDIzNywgIDE0LCAgNzksICA3OCwgIDI5LCAxMDEsIDE0NiwgMTg5LAotICAgIDEzNCwgMTg0LCAxNzUsIDE0MywgMTI0LCAyMzUsICAzMSwgMjA2LCAgNjIsICA0OCwgMjIwLCAgOTUsICA5NCwgMTk3LCAgMTEsICAyNiwKLSAgICAxNjYsIDIyNSwgIDU3LCAyMDIsIDIxMywgIDcxLCAgOTMsICA2MSwgMjE3LCAgIDEsICA5MCwgMjE0LCAgODEsICA4NiwgMTA4LCAgNzcsCi0gICAgMTM5LCAgMTMsIDE1NCwgMTAyLCAyNTEsIDIwNCwgMTc2LCAgNDUsIDExNiwgIDE4LCAgNDMsICAzMiwgMjQwLCAxNzcsIDEzMiwgMTUzLAotICAgIDIyMywgIDc2LCAyMDMsIDE5NCwgIDUyLCAxMjYsIDExOCwgICA1LCAxMDksIDE4MywgMTY5LCAgNDksIDIwOSwgIDIzLCAgIDQsIDIxNSwKLSAgICAyMCwgIDg4LCAgNTgsICA5NywgMjIyLCAgMjcsICAxNywgIDI4LCAgNTAsICAxNSwgMTU2LCAgMjIsICA4MywgIDI0LCAyNDIsICAzNCwKLSAgICAyNTQsICA2OCwgMjA3LCAxNzgsIDE5NSwgMTgxLCAxMjIsIDE0NSwgIDM2LCAgIDgsIDIzMiwgMTY4LCAgOTYsIDI1MiwgMTA1LCAgODAsCi0gICAgMTcwLCAyMDgsIDE2MCwgMTI1LCAxNjEsIDEzNywgIDk4LCAxNTEsICA4NCwgIDkxLCAgMzAsIDE0OSwgMjI0LCAyNTUsIDEwMCwgMjEwLAotICAgIDE2LCAxOTYsICAgMCwgIDcyLCAxNjMsIDI0NywgMTE3LCAyMTksIDEzOCwgICAzLCAyMzAsIDIxOCwgICA5LCAgNjMsIDIyMSwgMTQ4LAotICAgIDEzNSwgIDkyLCAxMzEsICAgMiwgMjA1LCAgNzQsIDE0NCwgIDUxLCAxMTUsIDEwMywgMjQ2LCAyNDMsIDE1NywgMTI3LCAxOTEsIDIyNiwKLSAgICA4MiwgMTU1LCAyMTYsICAzOCwgMjAwLCAgNTUsIDE5OCwgIDU5LCAxMjksIDE1MCwgMTExLCAgNzUsICAxOSwgMTkwLCAgOTksICA0NiwKLSAgICAyMzMsIDEyMSwgMTY3LCAxNDAsIDE1OSwgMTEwLCAxODgsIDE0MiwgIDQxLCAyNDUsIDI0OSwgMTgyLCAgNDcsIDI1MywgMTgwLCAgODksCi0gICAgMTIwLCAxNTIsICAgNiwgMTA2LCAyMzEsICA3MCwgMTEzLCAxODYsIDIxMiwgIDM3LCAxNzEsICA2NiwgMTM2LCAxNjIsIDE0MSwgMjUwLAotICAgIDExNCwgICA3LCAxODUsICA4NSwgMjQ4LCAyMzgsIDE3MiwgIDEwLCAgNTQsICA3MywgIDQyLCAxMDQsICA2MCwgIDU2LCAyNDEsIDE2NCwKLSAgICA2NCwgIDQwLCAyMTEsIDEyMywgMTg3LCAyMDEsICA2NywgMTkzLCAgMjEsIDIyNywgMTczLCAyNDQsIDExOSwgMTk5LCAxMjgsIDE1OAotfTsKLQotc3RhdGljIGNvbnN0IHVuc2lnbmVkIGNoYXIgRlNiMlsyNTZdID0KLXsKLSAgICAyMjQsICAgNSwgIDg4LCAyMTcsIDEwMywgIDc4LCAxMjksIDIwMywgMjAxLCAgMTEsIDE3NCwgMTA2LCAyMTMsICAyNCwgIDkzLCAxMzAsCi0gICAgNzAsIDIyMywgMjE0LCAgMzksIDEzOCwgIDUwLCAgNzUsICA2NiwgMjE5LCAgMjgsIDE1OCwgMTU2LCAgNTgsIDIwMiwgIDM3LCAxMjMsCi0gICAgMTMsIDExMywgIDk1LCAgMzEsIDI0OCwgMjE1LCAgNjIsIDE1NywgMTI0LCAgOTYsIDE4NSwgMTkwLCAxODgsIDEzOSwgIDIyLCAgNTIsCi0gICAgNzcsIDE5NSwgMTE0LCAxNDksIDE3MSwgMTQyLCAxODYsIDEyMiwgMTc5LCAgIDIsIDE4MCwgMTczLCAxNjIsIDE3MiwgMjE2LCAxNTQsCi0gICAgMjMsICAyNiwgIDUzLCAyMDQsIDI0NywgMTUzLCAgOTcsICA5MCwgMjMyLCAgMzYsICA4NiwgIDY0LCAyMjUsICA5OSwgICA5LCAgNTEsCi0gICAgMTkxLCAxNTIsIDE1MSwgMTMzLCAxMDQsIDI1MiwgMjM2LCAgMTAsIDIxOCwgMTExLCAgODMsICA5OCwgMTYzLCAgNDYsICAgOCwgMTc1LAotICAgIDQwLCAxNzYsIDExNiwgMTk0LCAxODksICA1NCwgIDM0LCAgNTYsIDEwMCwgIDMwLCAgNTcsICA0NCwgMTY2LCAgNDgsIDIyOSwgIDY4LAotICAgIDI1MywgMTM2LCAxNTksIDEwMSwgMTM1LCAxMDcsIDI0NCwgIDM1LCAgNzIsICAxNiwgMjA5LCAgODEsIDE5MiwgMjQ5LCAyMTAsIDE2MCwKLSAgICA4NSwgMTYxLCAgNjUsIDI1MCwgIDY3LCAgMTksIDE5NiwgIDQ3LCAxNjgsIDE4MiwgIDYwLCAgNDMsIDE5MywgMjU1LCAyMDAsIDE2NSwKLSAgICAzMiwgMTM3LCAgIDAsIDE0NCwgIDcxLCAyMzksIDIzNCwgMTgzLCAgMjEsICAgNiwgMjA1LCAxODEsICAxOCwgMTI2LCAxODcsICA0MSwKLSAgICAxNSwgMTg0LCAgIDcsICAgNCwgMTU1LCAxNDgsICAzMywgMTAyLCAyMzAsIDIwNiwgMjM3LCAyMzEsICA1OSwgMjU0LCAxMjcsIDE5NywKLSAgICAxNjQsICA1NSwgMTc3LCAgNzYsIDE0NSwgMTEwLCAxNDEsIDExOCwgICAzLCAgNDUsIDIyMiwgMTUwLCAgMzgsIDEyNSwgMTk4LCAgOTIsCi0gICAgMjExLCAyNDIsICA3OSwgIDI1LCAgNjMsIDIyMCwgMTIxLCAgMjksICA4MiwgMjM1LCAyNDMsIDEwOSwgIDk0LCAyNTEsIDEwNSwgMTc4LAotICAgIDI0MCwgIDQ5LCAgMTIsIDIxMiwgMjA3LCAxNDAsIDIyNiwgMTE3LCAxNjksICA3NCwgIDg3LCAxMzIsICAxNywgIDY5LCAgMjcsIDI0NSwKLSAgICAyMjgsICAxNCwgMTE1LCAxNzAsIDI0MSwgMjIxLCAgODksICAyMCwgMTA4LCAxNDYsICA4NCwgMjA4LCAxMjAsIDExMiwgMjI3LCAgNzMsCi0gICAgMTI4LCAgODAsIDE2NywgMjQ2LCAxMTksIDE0NywgMTM0LCAxMzEsICA0MiwgMTk5LCAgOTEsIDIzMywgMjM4LCAxNDMsICAgMSwgIDYxCi19OwotCi1zdGF0aWMgY29uc3QgdW5zaWduZWQgY2hhciBGU2IzWzI1Nl0gPQotewotICAgIDU2LCAgNjUsICAyMiwgMTE4LCAyMTcsIDE0NywgIDk2LCAyNDIsIDExNCwgMTk0LCAxNzEsIDE1NCwgMTE3LCAgIDYsICA4NywgMTYwLAotICAgIDE0NSwgMjQ3LCAxODEsIDIwMSwgMTYyLCAxNDAsIDIxMCwgMTQ0LCAyNDYsICAgNywgMTY3LCAgMzksIDE0MiwgMTc4LCAgNzMsIDIyMiwKLSAgICA2NywgIDkyLCAyMTUsIDE5OSwgIDYyLCAyNDUsIDE0MywgMTAzLCAgMzEsICAyNCwgMTEwLCAxNzUsICA0NywgMjI2LCAxMzMsICAxMywKLSAgICA4MywgMjQwLCAxNTYsIDEwMSwgMjM0LCAxNjMsIDE3NCwgMTU4LCAyMzYsIDEyOCwgIDQ1LCAxMDcsIDE2OCwgIDQzLCAgNTQsIDE2NiwKLSAgICAxOTcsIDEzNCwgIDc3LCAgNTEsIDI1MywgMTAyLCAgODgsIDE1MCwgIDU4LCAgIDksIDE0OSwgIDE2LCAxMjAsIDIxNiwgIDY2LCAyMDQsCi0gICAgMjM5LCAgMzgsIDIyOSwgIDk3LCAgMjYsICA2MywgIDU5LCAxMzAsIDE4MiwgMjE5LCAyMTIsIDE1MiwgMjMyLCAxMzksICAgMiwgMjM1LAotICAgIDEwLCAgNDQsICAyOSwgMTc2LCAxMTEsIDE0MSwgMTM2LCAgMTQsICAyNSwgMTM1LCAgNzgsICAxMSwgMTY5LCAgMTIsIDEyMSwgIDE3LAotICAgIDEyNywgIDM0LCAyMzEsICA4OSwgMjI1LCAyMTgsICA2MSwgMjAwLCAgMTgsICAgNCwgMTE2LCAgODQsICA0OCwgMTI2LCAxODAsICA0MCwKLSAgICA4NSwgMTA0LCAgODAsIDE5MCwgMjA4LCAxOTYsICA0OSwgMjAzLCAgNDIsIDE3MywgIDE1LCAyMDIsIDExMiwgMjU1LCAgNTAsIDEwNSwKLSAgICA4LCAgOTgsICAgMCwgIDM2LCAyMDksIDI1MSwgMTg2LCAyMzcsICA2OSwgMTI5LCAxMTUsIDEwOSwgMTMyLCAxNTksIDIzOCwgIDc0LAotICAgIDE5NSwgIDQ2LCAxOTMsICAgMSwgMjMwLCAgMzcsICA3MiwgMTUzLCAxODUsIDE3OSwgMTIzLCAyNDksIDIwNiwgMTkxLCAyMjMsIDExMywKLSAgICA0MSwgMjA1LCAxMDgsICAxOSwgMTAwLCAxNTUsICA5OSwgMTU3LCAxOTIsICA3NSwgMTgzLCAxNjUsIDEzNywgIDk1LCAxNzcsICAyMywKLSAgICAyNDQsIDE4OCwgMjExLCAgNzAsIDIwNywgIDU1LCAgOTQsICA3MSwgMTQ4LCAyNTAsIDI1MiwgIDkxLCAxNTEsIDI1NCwgIDkwLCAxNzIsCi0gICAgNjAsICA3NiwgICAzLCAgNTMsIDI0MywgIDM1LCAxODQsICA5MywgMTA2LCAxNDYsIDIxMywgIDMzLCAgNjgsICA4MSwgMTk4LCAxMjUsCi0gICAgNTcsIDEzMSwgMjIwLCAxNzAsIDEyNCwgMTE5LCAgODYsICAgNSwgIDI3LCAxNjQsICAyMSwgIDUyLCAgMzAsICAyOCwgMjQ4LCAgODIsCi0gICAgMzIsICAyMCwgMjMzLCAxODksIDIyMSwgMjI4LCAxNjEsIDIyNCwgMTM4LCAyNDEsIDIxNCwgMTIyLCAxODcsIDIyNywgIDY0LCAgNzkKLX07Ci0KLXN0YXRpYyBjb25zdCB1bnNpZ25lZCBjaGFyIEZTYjRbMjU2XSA9Ci17Ci0gICAgMTEyLCAgNDQsIDE3OSwgMTkyLCAyMjgsICA4NywgMjM0LCAxNzQsICAzNSwgMTA3LCAgNjksIDE2NSwgMjM3LCAgNzksICAyOSwgMTQ2LAotICAgIDEzNCwgMTc1LCAxMjQsICAzMSwgIDYyLCAyMjAsICA5NCwgIDExLCAxNjYsICA1NywgMjEzLCAgOTMsIDIxNywgIDkwLCAgODEsIDEwOCwKLSAgICAxMzksIDE1NCwgMjUxLCAxNzYsIDExNiwgIDQzLCAyNDAsIDEzMiwgMjIzLCAyMDMsICA1MiwgMTE4LCAxMDksIDE2OSwgMjA5LCAgIDQsCi0gICAgMjAsICA1OCwgMjIyLCAgMTcsICA1MCwgMTU2LCAgODMsIDI0MiwgMjU0LCAyMDcsIDE5NSwgMTIyLCAgMzYsIDIzMiwgIDk2LCAxMDUsCi0gICAgMTcwLCAxNjAsIDE2MSwgIDk4LCAgODQsICAzMCwgMjI0LCAxMDAsICAxNiwgICAwLCAxNjMsIDExNywgMTM4LCAyMzAsICAgOSwgMjIxLAotICAgIDEzNSwgMTMxLCAyMDUsIDE0NCwgMTE1LCAyNDYsIDE1NywgMTkxLCAgODIsIDIxNiwgMjAwLCAxOTgsIDEyOSwgMTExLCAgMTksICA5OSwKLSAgICAyMzMsIDE2NywgMTU5LCAxODgsICA0MSwgMjQ5LCAgNDcsIDE4MCwgMTIwLCAgIDYsIDIzMSwgMTEzLCAyMTIsIDE3MSwgMTM2LCAxNDEsCi0gICAgMTE0LCAxODUsIDI0OCwgMTcyLCAgNTQsICA0MiwgIDYwLCAyNDEsICA2NCwgMjExLCAxODcsICA2NywgIDIxLCAxNzMsIDExOSwgMTI4LAotICAgIDEzMCwgMjM2LCAgMzksIDIyOSwgMTMzLCAgNTMsICAxMiwgIDY1LCAyMzksIDE0NywgIDI1LCAgMzMsICAxNCwgIDc4LCAxMDEsIDE4OSwKLSAgICAxODQsIDE0MywgMjM1LCAyMDYsICA0OCwgIDk1LCAxOTcsICAyNiwgMjI1LCAyMDIsICA3MSwgIDYxLCAgIDEsIDIxNCwgIDg2LCAgNzcsCi0gICAgMTMsIDEwMiwgMjA0LCAgNDUsICAxOCwgIDMyLCAxNzcsIDE1MywgIDc2LCAxOTQsIDEyNiwgICA1LCAxODMsICA0OSwgIDIzLCAyMTUsCi0gICAgODgsICA5NywgIDI3LCAgMjgsICAxNSwgIDIyLCAgMjQsICAzNCwgIDY4LCAxNzgsIDE4MSwgMTQ1LCAgIDgsIDE2OCwgMjUyLCAgODAsCi0gICAgMjA4LCAxMjUsIDEzNywgMTUxLCAgOTEsIDE0OSwgMjU1LCAyMTAsIDE5NiwgIDcyLCAyNDcsIDIxOSwgICAzLCAyMTgsICA2MywgMTQ4LAotICAgIDkyLCAgIDIsICA3NCwgIDUxLCAxMDMsIDI0MywgMTI3LCAyMjYsIDE1NSwgIDM4LCAgNTUsICA1OSwgMTUwLCAgNzUsIDE5MCwgIDQ2LAotICAgIDEyMSwgMTQwLCAxMTAsIDE0MiwgMjQ1LCAxODIsIDI1MywgIDg5LCAxNTIsIDEwNiwgIDcwLCAxODYsICAzNywgIDY2LCAxNjIsIDI1MCwKLSAgICA3LCAgODUsIDIzOCwgIDEwLCAgNzMsIDEwNCwgIDU2LCAxNjQsICA0MCwgMTIzLCAyMDEsIDE5MywgMjI3LCAyNDQsIDE5OSwgMTU4Ci19OwotCi0jZGVmaW5lIFNCT1gxKG4pIEZTYlsobildCi0jZGVmaW5lIFNCT1gyKG4pIEZTYjJbKG4pXQotI2RlZmluZSBTQk9YMyhuKSBGU2IzWyhuKV0KLSNkZWZpbmUgU0JPWDQobikgRlNiNFsobildCi0KLSNlbmRpZiAvKiBNQkVEVExTX0NBTUVMTElBX1NNQUxMX01FTU9SWSAqLwotCi1zdGF0aWMgY29uc3QgdW5zaWduZWQgY2hhciBzaGlmdHNbMl1bNF1bNF0gPQotewotICAgIHsKLSAgICAgICAgeyAxLCAxLCAxLCAxIH0sIC8qIEtMICovCi0gICAgICAgIHsgMCwgMCwgMCwgMCB9LCAvKiBLUiAqLwotICAgICAgICB7IDEsIDEsIDEsIDEgfSwgLyogS0EgKi8KLSAgICAgICAgeyAwLCAwLCAwLCAwIH0gIC8qIEtCICovCi0gICAgfSwKLSAgICB7Ci0gICAgICAgIHsgMSwgMCwgMSwgMSB9LCAvKiBLTCAqLwotICAgICAgICB7IDEsIDEsIDAsIDEgfSwgLyogS1IgKi8KLSAgICAgICAgeyAxLCAxLCAxLCAwIH0sIC8qIEtBICovCi0gICAgICAgIHsgMSwgMSwgMCwgMSB9ICAvKiBLQiAqLwotICAgIH0KLX07Ci0KLXN0YXRpYyBjb25zdCBzaWduZWQgY2hhciBpbmRleGVzWzJdWzRdWzIwXSA9Ci17Ci0gICAgewotICAgICAgICB7ICAwLCAgMSwgIDIsICAzLCAgOCwgIDksIDEwLCAxMSwgMzgsIDM5LAotICAgICAgICAgICAzNiwgMzcsIDIzLCAyMCwgMjEsIDIyLCAyNywgLTEsIC0xLCAyNiB9LCAvKiBLTCAtPiBSSyAqLwotICAgICAgICB7IC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLAotICAgICAgICAgIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xIH0sIC8qIEtSIC0+IFJLICovCi0gICAgICAgIHsgIDQsICA1LCAgNiwgIDcsIDEyLCAxMywgMTQsIDE1LCAxNiwgMTcsCi0gICAgICAgICAgIDE4LCAxOSwgLTEsIDI0LCAyNSwgLTEsIDMxLCAyOCwgMjksIDMwIH0sIC8qIEtBIC0+IFJLICovCi0gICAgICAgIHsgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsCi0gICAgICAgICAgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEgfSAgLyogS0IgLT4gUksgKi8KLSAgICB9LAotICAgIHsKLSAgICAgICAgeyAgMCwgIDEsICAyLCAgMywgNjEsIDYyLCA2MywgNjAsIC0xLCAtMSwKLSAgICAgICAgICAgLTEsIC0xLCAyNywgMjQsIDI1LCAyNiwgMzUsIDMyLCAzMywgMzQgfSwgLyogS0wgLT4gUksgKi8KLSAgICAgICAgeyAtMSwgLTEsIC0xLCAtMSwgIDgsICA5LCAxMCwgMTEsIDE2LCAxNywKLSAgICAgICAgICAxOCwgMTksIC0xLCAtMSwgLTEsIC0xLCAzOSwgMzYsIDM3LCAzOCB9LCAvKiBLUiAtPiBSSyAqLwotICAgICAgICB7IC0xLCAtMSwgLTEsIC0xLCAxMiwgMTMsIDE0LCAxNSwgNTgsIDU5LAotICAgICAgICAgIDU2LCA1NywgMzEsIDI4LCAyOSwgMzAsIC0xLCAtMSwgLTEsIC0xIH0sIC8qIEtBIC0+IFJLICovCi0gICAgICAgIHsgIDQsICA1LCAgNiwgIDcsIDY1LCA2NiwgNjcsIDY0LCAyMCwgMjEsCi0gICAgICAgICAgIDIyLCAyMywgLTEsIC0xLCAtMSwgLTEsIDQzLCA0MCwgNDEsIDQyIH0gLyogS0IgLT4gUksgKi8KLSAgICB9Ci19OwotCi1zdGF0aWMgY29uc3Qgc2lnbmVkIGNoYXIgdHJhbnNwb3Nlc1syXVsyMF0gPQotewotICAgIHsKLSAgICAgICAgMjEsIDIyLCAyMywgMjAsCi0gICAgICAgIC0xLCAtMSwgLTEsIC0xLAotICAgICAgICAxOCwgMTksIDE2LCAxNywKLSAgICAgICAgMTEsICA4LCAgOSwgMTAsCi0gICAgICAgIDE1LCAxMiwgMTMsIDE0Ci0gICAgfSwKLSAgICB7Ci0gICAgICAgIDI1LCAyNiwgMjcsIDI0LAotICAgICAgICAyOSwgMzAsIDMxLCAyOCwKLSAgICAgICAgMTgsIDE5LCAxNiwgMTcsCi0gICAgICAgIC0xLCAtMSwgLTEsIC0xLAotICAgICAgICAtMSwgLTEsIC0xLCAtMQotICAgIH0KLX07Ci0KLS8qIFNoaWZ0IG1hY3JvIGZvciAxMjggYml0IHN0cmluZ3Mgd2l0aCByb3RhdGlvbiBzbWFsbGVyIHRoYW4gMzIgYml0cyAoISkgKi8KLSNkZWZpbmUgUk9UTChERVNULCBTUkMsIFNISUZUKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgICAgICAoREVTVClbMF0gPSAoU1JDKVswXSA8PCAoU0hJRlQpIF4gKFNSQylbMV0gPj4gKDMyIC0gKFNISUZUKSk7ICAgXAotICAgICAgICAoREVTVClbMV0gPSAoU1JDKVsxXSA8PCAoU0hJRlQpIF4gKFNSQylbMl0gPj4gKDMyIC0gKFNISUZUKSk7ICAgXAotICAgICAgICAoREVTVClbMl0gPSAoU1JDKVsyXSA8PCAoU0hJRlQpIF4gKFNSQylbM10gPj4gKDMyIC0gKFNISUZUKSk7ICAgXAotICAgICAgICAoREVTVClbM10gPSAoU1JDKVszXSA8PCAoU0hJRlQpIF4gKFNSQylbMF0gPj4gKDMyIC0gKFNISUZUKSk7ICAgXAotICAgIH0KLQotI2RlZmluZSBGTChYTCwgWFIsIEtMLCBLUikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgICAgIChYUikgPSAoKCgoWEwpICYoS0wpKSA8PCAxKSB8ICgoKFhMKSAmKEtMKSkgPj4gMzEpKSBeIChYUik7ICAgXAotICAgICAgICAoWEwpID0gKChYUikgfCAoS1IpKSBeIChYTCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIH0KLQotI2RlZmluZSBGTEludihZTCwgWVIsIEtMLCBLUikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgICAgIChZTCkgPSAoKFlSKSB8IChLUikpIF4gKFlMKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgICAgIChZUikgPSAoKCgoWUwpICYoS0wpKSA8PCAxKSB8ICgoKFlMKSAmKEtMKSkgPj4gMzEpKSBeIChZUik7ICAgXAotICAgIH0KLQotI2RlZmluZSBTSElGVF9BTkRfUExBQ0UoSU5ERVgsIE9GRlNFVCkgICAgICAgICAgICAgICAgICAgICAgXAotICAgIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICAgICAgVEtbMF0gPSBLQ1soT0ZGU0VUKSAqIDQgKyAwXTsgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgICAgIFRLWzFdID0gS0NbKE9GRlNFVCkgKiA0ICsgMV07ICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgICAgICBUS1syXSA9IEtDWyhPRkZTRVQpICogNCArIDJdOyAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICAgICAgVEtbM10gPSBLQ1soT0ZGU0VUKSAqIDQgKyAzXTsgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgICAgIGZvciAoaSA9IDE7IGkgPD0gNDsgaSsrKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgICAgIGlmIChzaGlmdHNbKElOREVYKV1bKE9GRlNFVCldW2kgLTFdKSAgICAgICAgICAgICAgIFwKLSAgICAgICAgUk9UTChUSyArIGkgKiA0LCBUSywgKDE1ICogaSkgJSAzMik7ICAgICAgICAgIFwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICAgICAgZm9yIChpID0gMDsgaSA8IDIwOyBpKyspICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICAgICAgaWYgKGluZGV4ZXNbKElOREVYKV1bKE9GRlNFVCldW2ldICE9IC0xKSB7ICAgICAgICAgXAotICAgICAgICAgICAgUktbaW5kZXhlc1soSU5ERVgpXVsoT0ZGU0VUKV1baV1dID0gVEtbaV07ICAgIFwKLSAgICAgICAgfSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICB9Ci0KLXN0YXRpYyB2b2lkIGNhbWVsbGlhX2ZlaXN0ZWwoY29uc3QgdWludDMyX3QgeFsyXSwgY29uc3QgdWludDMyX3Qga1syXSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDMyX3QgelsyXSkKLXsKLSAgICB1aW50MzJfdCBJMCwgSTE7Ci0gICAgSTAgPSB4WzBdIF4ga1swXTsKLSAgICBJMSA9IHhbMV0gXiBrWzFdOwotCi0gICAgSTAgPSAoKHVpbnQzMl90KSBTQk9YMShNQkVEVExTX0JZVEVfMyhJMCkpIDw8IDI0KSB8Ci0gICAgICAgICAoKHVpbnQzMl90KSBTQk9YMihNQkVEVExTX0JZVEVfMihJMCkpIDw8IDE2KSB8Ci0gICAgICAgICAoKHVpbnQzMl90KSBTQk9YMyhNQkVEVExTX0JZVEVfMShJMCkpIDw8ICA4KSB8Ci0gICAgICAgICAoKHVpbnQzMl90KSBTQk9YNChNQkVEVExTX0JZVEVfMChJMCkpKTsKLSAgICBJMSA9ICgodWludDMyX3QpIFNCT1gyKE1CRURUTFNfQllURV8zKEkxKSkgPDwgMjQpIHwKLSAgICAgICAgICgodWludDMyX3QpIFNCT1gzKE1CRURUTFNfQllURV8yKEkxKSkgPDwgMTYpIHwKLSAgICAgICAgICgodWludDMyX3QpIFNCT1g0KE1CRURUTFNfQllURV8xKEkxKSkgPDwgIDgpIHwKLSAgICAgICAgICgodWludDMyX3QpIFNCT1gxKE1CRURUTFNfQllURV8wKEkxKSkpOwotCi0gICAgSTAgXj0gKEkxIDw8IDgpIHwgKEkxID4+IDI0KTsKLSAgICBJMSBePSAoSTAgPDwgMTYpIHwgKEkwID4+IDE2KTsKLSAgICBJMCBePSAoSTEgPj4gOCkgfCAoSTEgPDwgMjQpOwotICAgIEkxIF49IChJMCA+PiA4KSB8IChJMCA8PCAyNCk7Ci0KLSAgICB6WzBdIF49IEkxOwotICAgIHpbMV0gXj0gSTA7Ci19Ci0KLXZvaWQgbWJlZHRsc19jYW1lbGxpYV9pbml0KG1iZWR0bHNfY2FtZWxsaWFfY29udGV4dCAqY3R4KQotewotICAgIG1lbXNldChjdHgsIDAsIHNpemVvZihtYmVkdGxzX2NhbWVsbGlhX2NvbnRleHQpKTsKLX0KLQotdm9pZCBtYmVkdGxzX2NhbWVsbGlhX2ZyZWUobWJlZHRsc19jYW1lbGxpYV9jb250ZXh0ICpjdHgpCi17Ci0gICAgaWYgKGN0eCA9PSBOVUxMKSB7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICBtYmVkdGxzX3BsYXRmb3JtX3plcm9pemUoY3R4LCBzaXplb2YobWJlZHRsc19jYW1lbGxpYV9jb250ZXh0KSk7Ci19Ci0KLS8qCi0gKiBDYW1lbGxpYSBrZXkgc2NoZWR1bGUgKGVuY3J5cHRpb24pCi0gKi8KLWludCBtYmVkdGxzX2NhbWVsbGlhX3NldGtleV9lbmMobWJlZHRsc19jYW1lbGxpYV9jb250ZXh0ICpjdHgsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgKmtleSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50IGtleWJpdHMpCi17Ci0gICAgaW50IGlkeDsKLSAgICBzaXplX3QgaTsKLSAgICB1aW50MzJfdCAqUks7Ci0gICAgdW5zaWduZWQgY2hhciB0WzY0XTsKLSAgICB1aW50MzJfdCBTSUdNQVs2XVsyXTsKLSAgICB1aW50MzJfdCBLQ1sxNl07Ci0gICAgdWludDMyX3QgVEtbMjBdOwotCi0gICAgUksgPSBjdHgtPnJrOwotCi0gICAgbWVtc2V0KHQsIDAsIDY0KTsKLSAgICBtZW1zZXQoUkssIDAsIHNpemVvZihjdHgtPnJrKSk7Ci0KLSAgICBzd2l0Y2ggKGtleWJpdHMpIHsKLSAgICAgICAgY2FzZSAxMjg6IGN0eC0+bnIgPSAzOyBpZHggPSAwOyBicmVhazsKLSAgICAgICAgY2FzZSAxOTI6Ci0gICAgICAgIGNhc2UgMjU2OiBjdHgtPm5yID0gNDsgaWR4ID0gMTsgYnJlYWs7Ci0gICAgICAgIGRlZmF1bHQ6IHJldHVybiBNQkVEVExTX0VSUl9DQU1FTExJQV9CQURfSU5QVVRfREFUQTsKLSAgICB9Ci0KLSAgICBmb3IgKGkgPSAwOyBpIDwga2V5Yml0cyAvIDg7ICsraSkgewotICAgICAgICB0W2ldID0ga2V5W2ldOwotICAgIH0KLQotICAgIGlmIChrZXliaXRzID09IDE5MikgewotICAgICAgICBmb3IgKGkgPSAwOyBpIDwgODsgaSsrKSB7Ci0gICAgICAgICAgICB0WzI0ICsgaV0gPSB+dFsxNiArIGldOwotICAgICAgICB9Ci0gICAgfQotCi0gICAgLyoKLSAgICAgKiBQcmVwYXJlIFNJR01BIHZhbHVlcwotICAgICAqLwotICAgIGZvciAoaSA9IDA7IGkgPCA2OyBpKyspIHsKLSAgICAgICAgU0lHTUFbaV1bMF0gPSBNQkVEVExTX0dFVF9VSU5UMzJfQkUoU0lHTUFfQ0hBUlNbaV0sIDApOwotICAgICAgICBTSUdNQVtpXVsxXSA9IE1CRURUTFNfR0VUX1VJTlQzMl9CRShTSUdNQV9DSEFSU1tpXSwgNCk7Ci0gICAgfQotCi0gICAgLyoKLSAgICAgKiBLZXkgc3RvcmFnZSBpbiBLQwotICAgICAqIE9yZGVyOiBLTCwgS1IsIEtBLCBLQgotICAgICAqLwotICAgIG1lbXNldChLQywgMCwgc2l6ZW9mKEtDKSk7Ci0KLSAgICAvKiBTdG9yZSBLTCwgS1IgKi8KLSAgICBmb3IgKGkgPSAwOyBpIDwgODsgaSsrKSB7Ci0gICAgICAgIEtDW2ldID0gTUJFRFRMU19HRVRfVUlOVDMyX0JFKHQsIGkgKiA0KTsKLSAgICB9Ci0KLSAgICAvKiBHZW5lcmF0ZSBLQSAqLwotICAgIGZvciAoaSA9IDA7IGkgPCA0OyArK2kpIHsKLSAgICAgICAgS0NbOCArIGldID0gS0NbaV0gXiBLQ1s0ICsgaV07Ci0gICAgfQotCi0gICAgY2FtZWxsaWFfZmVpc3RlbChLQyArIDgsIFNJR01BWzBdLCBLQyArIDEwKTsKLSAgICBjYW1lbGxpYV9mZWlzdGVsKEtDICsgMTAsIFNJR01BWzFdLCBLQyArIDgpOwotCi0gICAgZm9yIChpID0gMDsgaSA8IDQ7ICsraSkgewotICAgICAgICBLQ1s4ICsgaV0gXj0gS0NbaV07Ci0gICAgfQotCi0gICAgY2FtZWxsaWFfZmVpc3RlbChLQyArIDgsIFNJR01BWzJdLCBLQyArIDEwKTsKLSAgICBjYW1lbGxpYV9mZWlzdGVsKEtDICsgMTAsIFNJR01BWzNdLCBLQyArIDgpOwotCi0gICAgaWYgKGtleWJpdHMgPiAxMjgpIHsKLSAgICAgICAgLyogR2VuZXJhdGUgS0IgKi8KLSAgICAgICAgZm9yIChpID0gMDsgaSA8IDQ7ICsraSkgewotICAgICAgICAgICAgS0NbMTIgKyBpXSA9IEtDWzQgKyBpXSBeIEtDWzggKyBpXTsKLSAgICAgICAgfQotCi0gICAgICAgIGNhbWVsbGlhX2ZlaXN0ZWwoS0MgKyAxMiwgU0lHTUFbNF0sIEtDICsgMTQpOwotICAgICAgICBjYW1lbGxpYV9mZWlzdGVsKEtDICsgMTQsIFNJR01BWzVdLCBLQyArIDEyKTsKLSAgICB9Ci0KLSAgICAvKgotICAgICAqIEdlbmVyYXRpbmcgc3Via2V5cwotICAgICAqLwotCi0gICAgLyogTWFuaXB1bGF0aW5nIEtMICovCi0gICAgU0hJRlRfQU5EX1BMQUNFKGlkeCwgMCk7Ci0KLSAgICAvKiBNYW5pcHVsYXRpbmcgS1IgKi8KLSAgICBpZiAoa2V5Yml0cyA+IDEyOCkgewotICAgICAgICBTSElGVF9BTkRfUExBQ0UoaWR4LCAxKTsKLSAgICB9Ci0KLSAgICAvKiBNYW5pcHVsYXRpbmcgS0EgKi8KLSAgICBTSElGVF9BTkRfUExBQ0UoaWR4LCAyKTsKLQotICAgIC8qIE1hbmlwdWxhdGluZyBLQiAqLwotICAgIGlmIChrZXliaXRzID4gMTI4KSB7Ci0gICAgICAgIFNISUZUX0FORF9QTEFDRShpZHgsIDMpOwotICAgIH0KLQotICAgIC8qIERvIHRyYW5zcG9zaXRpb25zICovCi0gICAgZm9yIChpID0gMDsgaSA8IDIwOyBpKyspIHsKLSAgICAgICAgaWYgKHRyYW5zcG9zZXNbaWR4XVtpXSAhPSAtMSkgewotICAgICAgICAgICAgUktbMzIgKyAxMiAqIGlkeCArIGldID0gUktbdHJhbnNwb3Nlc1tpZHhdW2ldXTsKLSAgICAgICAgfQotICAgIH0KLQotICAgIHJldHVybiAwOwotfQotCi0vKgotICogQ2FtZWxsaWEga2V5IHNjaGVkdWxlIChkZWNyeXB0aW9uKQotICovCi0jaWYgIWRlZmluZWQoTUJFRFRMU19CTE9DS19DSVBIRVJfTk9fREVDUllQVCkKLWludCBtYmVkdGxzX2NhbWVsbGlhX3NldGtleV9kZWMobWJlZHRsc19jYW1lbGxpYV9jb250ZXh0ICpjdHgsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgKmtleSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50IGtleWJpdHMpCi17Ci0gICAgaW50IGlkeCwgcmV0OwotICAgIHNpemVfdCBpOwotICAgIG1iZWR0bHNfY2FtZWxsaWFfY29udGV4dCBjdHk7Ci0gICAgdWludDMyX3QgKlJLOwotICAgIHVpbnQzMl90ICpTSzsKLQotICAgIG1iZWR0bHNfY2FtZWxsaWFfaW5pdCgmY3R5KTsKLQotICAgIC8qIEFsc28gY2hlY2tzIGtleWJpdHMgKi8KLSAgICBpZiAoKHJldCA9IG1iZWR0bHNfY2FtZWxsaWFfc2V0a2V5X2VuYygmY3R5LCBrZXksIGtleWJpdHMpKSAhPSAwKSB7Ci0gICAgICAgIGdvdG8gZXhpdDsKLSAgICB9Ci0KLSAgICBjdHgtPm5yID0gY3R5Lm5yOwotICAgIGlkeCA9IChjdHgtPm5yID09IDQpOwotCi0gICAgUksgPSBjdHgtPnJrOwotICAgIFNLID0gY3R5LnJrICsgMjQgKiAyICsgOCAqIGlkeCAqIDI7Ci0KLSAgICAqUksrKyA9ICpTSysrOwotICAgICpSSysrID0gKlNLKys7Ci0gICAgKlJLKysgPSAqU0srKzsKLSAgICAqUksrKyA9ICpTSysrOwotCi0gICAgZm9yIChpID0gMjIgKyA4ICogaWR4LCBTSyAtPSA2OyBpID4gMDsgaS0tLCBTSyAtPSA0KSB7Ci0gICAgICAgICpSSysrID0gKlNLKys7Ci0gICAgICAgICpSSysrID0gKlNLKys7Ci0gICAgfQotCi0gICAgU0sgLT0gMjsKLQotICAgICpSSysrID0gKlNLKys7Ci0gICAgKlJLKysgPSAqU0srKzsKLSAgICAqUksrKyA9ICpTSysrOwotICAgICpSSysrID0gKlNLKys7Ci0KLWV4aXQ6Ci0gICAgbWJlZHRsc19jYW1lbGxpYV9mcmVlKCZjdHkpOwotCi0gICAgcmV0dXJuIHJldDsKLX0KLSNlbmRpZiAvKiAhTUJFRFRMU19CTE9DS19DSVBIRVJfTk9fREVDUllQVCAqLwotCi0vKgotICogQ2FtZWxsaWEtRUNCIGJsb2NrIGVuY3J5cHRpb24vZGVjcnlwdGlvbgotICovCi1pbnQgbWJlZHRsc19jYW1lbGxpYV9jcnlwdF9lY2IobWJlZHRsc19jYW1lbGxpYV9jb250ZXh0ICpjdHgsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IG1vZGUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdW5zaWduZWQgY2hhciBpbnB1dFsxNl0sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgY2hhciBvdXRwdXRbMTZdKQotewotICAgIGludCBOUjsKLSAgICB1aW50MzJfdCAqUkssIFhbNF07Ci0gICAgaWYgKG1vZGUgIT0gTUJFRFRMU19DQU1FTExJQV9FTkNSWVBUICYmIG1vZGUgIT0gTUJFRFRMU19DQU1FTExJQV9ERUNSWVBUKSB7Ci0gICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9DQU1FTExJQV9CQURfSU5QVVRfREFUQTsKLSAgICB9Ci0KLSAgICAoKHZvaWQpIG1vZGUpOwotCi0gICAgTlIgPSBjdHgtPm5yOwotICAgIFJLID0gY3R4LT5yazsKLQotICAgIFhbMF0gPSBNQkVEVExTX0dFVF9VSU5UMzJfQkUoaW5wdXQsICAwKTsKLSAgICBYWzFdID0gTUJFRFRMU19HRVRfVUlOVDMyX0JFKGlucHV0LCAgNCk7Ci0gICAgWFsyXSA9IE1CRURUTFNfR0VUX1VJTlQzMl9CRShpbnB1dCwgIDgpOwotICAgIFhbM10gPSBNQkVEVExTX0dFVF9VSU5UMzJfQkUoaW5wdXQsIDEyKTsKLQotICAgIFhbMF0gXj0gKlJLKys7Ci0gICAgWFsxXSBePSAqUksrKzsKLSAgICBYWzJdIF49ICpSSysrOwotICAgIFhbM10gXj0gKlJLKys7Ci0KLSAgICB3aGlsZSAoTlIpIHsKLSAgICAgICAgLS1OUjsKLSAgICAgICAgY2FtZWxsaWFfZmVpc3RlbChYLCBSSywgWCArIDIpOwotICAgICAgICBSSyArPSAyOwotICAgICAgICBjYW1lbGxpYV9mZWlzdGVsKFggKyAyLCBSSywgWCk7Ci0gICAgICAgIFJLICs9IDI7Ci0gICAgICAgIGNhbWVsbGlhX2ZlaXN0ZWwoWCwgUkssIFggKyAyKTsKLSAgICAgICAgUksgKz0gMjsKLSAgICAgICAgY2FtZWxsaWFfZmVpc3RlbChYICsgMiwgUkssIFgpOwotICAgICAgICBSSyArPSAyOwotICAgICAgICBjYW1lbGxpYV9mZWlzdGVsKFgsIFJLLCBYICsgMik7Ci0gICAgICAgIFJLICs9IDI7Ci0gICAgICAgIGNhbWVsbGlhX2ZlaXN0ZWwoWCArIDIsIFJLLCBYKTsKLSAgICAgICAgUksgKz0gMjsKLQotICAgICAgICBpZiAoTlIpIHsKLSAgICAgICAgICAgIEZMKFhbMF0sIFhbMV0sIFJLWzBdLCBSS1sxXSk7Ci0gICAgICAgICAgICBSSyArPSAyOwotICAgICAgICAgICAgRkxJbnYoWFsyXSwgWFszXSwgUktbMF0sIFJLWzFdKTsKLSAgICAgICAgICAgIFJLICs9IDI7Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICBYWzJdIF49ICpSSysrOwotICAgIFhbM10gXj0gKlJLKys7Ci0gICAgWFswXSBePSAqUksrKzsKLSAgICBYWzFdIF49ICpSSysrOwotCi0gICAgTUJFRFRMU19QVVRfVUlOVDMyX0JFKFhbMl0sIG91dHB1dCwgIDApOwotICAgIE1CRURUTFNfUFVUX1VJTlQzMl9CRShYWzNdLCBvdXRwdXQsICA0KTsKLSAgICBNQkVEVExTX1BVVF9VSU5UMzJfQkUoWFswXSwgb3V0cHV0LCAgOCk7Ci0gICAgTUJFRFRMU19QVVRfVUlOVDMyX0JFKFhbMV0sIG91dHB1dCwgMTIpOwotCi0gICAgcmV0dXJuIDA7Ci19Ci0KLSNpZiBkZWZpbmVkKE1CRURUTFNfQ0lQSEVSX01PREVfQ0JDKQotLyoKLSAqIENhbWVsbGlhLUNCQyBidWZmZXIgZW5jcnlwdGlvbi9kZWNyeXB0aW9uCi0gKi8KLWludCBtYmVkdGxzX2NhbWVsbGlhX2NyeXB0X2NiYyhtYmVkdGxzX2NhbWVsbGlhX2NvbnRleHQgKmN0eCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgbW9kZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgbGVuZ3RoLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGNoYXIgaXZbMTZdLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgKmlucHV0LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGNoYXIgKm91dHB1dCkKLXsKLSAgICB1bnNpZ25lZCBjaGFyIHRlbXBbMTZdOwotICAgIGlmIChtb2RlICE9IE1CRURUTFNfQ0FNRUxMSUFfRU5DUllQVCAmJiBtb2RlICE9IE1CRURUTFNfQ0FNRUxMSUFfREVDUllQVCkgewotICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfQ0FNRUxMSUFfQkFEX0lOUFVUX0RBVEE7Ci0gICAgfQotCi0gICAgaWYgKGxlbmd0aCAlIDE2KSB7Ci0gICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9DQU1FTExJQV9JTlZBTElEX0lOUFVUX0xFTkdUSDsKLSAgICB9Ci0KLSAgICBpZiAobW9kZSA9PSBNQkVEVExTX0NBTUVMTElBX0RFQ1JZUFQpIHsKLSAgICAgICAgd2hpbGUgKGxlbmd0aCA+IDApIHsKLSAgICAgICAgICAgIG1lbWNweSh0ZW1wLCBpbnB1dCwgMTYpOwotICAgICAgICAgICAgbWJlZHRsc19jYW1lbGxpYV9jcnlwdF9lY2IoY3R4LCBtb2RlLCBpbnB1dCwgb3V0cHV0KTsKLQotICAgICAgICAgICAgbWJlZHRsc194b3Iob3V0cHV0LCBvdXRwdXQsIGl2LCAxNik7Ci0KLSAgICAgICAgICAgIG1lbWNweShpdiwgdGVtcCwgMTYpOwotCi0gICAgICAgICAgICBpbnB1dCAgKz0gMTY7Ci0gICAgICAgICAgICBvdXRwdXQgKz0gMTY7Ci0gICAgICAgICAgICBsZW5ndGggLT0gMTY7Ci0gICAgICAgIH0KLSAgICB9IGVsc2UgewotICAgICAgICB3aGlsZSAobGVuZ3RoID4gMCkgewotICAgICAgICAgICAgbWJlZHRsc194b3Iob3V0cHV0LCBpbnB1dCwgaXYsIDE2KTsKLQotICAgICAgICAgICAgbWJlZHRsc19jYW1lbGxpYV9jcnlwdF9lY2IoY3R4LCBtb2RlLCBvdXRwdXQsIG91dHB1dCk7Ci0gICAgICAgICAgICBtZW1jcHkoaXYsIG91dHB1dCwgMTYpOwotCi0gICAgICAgICAgICBpbnB1dCAgKz0gMTY7Ci0gICAgICAgICAgICBvdXRwdXQgKz0gMTY7Ci0gICAgICAgICAgICBsZW5ndGggLT0gMTY7Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICByZXR1cm4gMDsKLX0KLSNlbmRpZiAvKiBNQkVEVExTX0NJUEhFUl9NT0RFX0NCQyAqLwotCi0jaWYgZGVmaW5lZChNQkVEVExTX0NJUEhFUl9NT0RFX0NGQikKLS8qCi0gKiBDYW1lbGxpYS1DRkIxMjggYnVmZmVyIGVuY3J5cHRpb24vZGVjcnlwdGlvbgotICovCi1pbnQgbWJlZHRsc19jYW1lbGxpYV9jcnlwdF9jZmIxMjgobWJlZHRsc19jYW1lbGxpYV9jb250ZXh0ICpjdHgsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IG1vZGUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IGxlbmd0aCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgKml2X29mZiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBjaGFyIGl2WzE2XSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1bnNpZ25lZCBjaGFyICppbnB1dCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBjaGFyICpvdXRwdXQpCi17Ci0gICAgaW50IGM7Ci0gICAgc2l6ZV90IG47Ci0gICAgaWYgKG1vZGUgIT0gTUJFRFRMU19DQU1FTExJQV9FTkNSWVBUICYmIG1vZGUgIT0gTUJFRFRMU19DQU1FTExJQV9ERUNSWVBUKSB7Ci0gICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9DQU1FTExJQV9CQURfSU5QVVRfREFUQTsKLSAgICB9Ci0KLSAgICBuID0gKml2X29mZjsKLSAgICBpZiAobiA+PSAxNikgewotICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfQ0FNRUxMSUFfQkFEX0lOUFVUX0RBVEE7Ci0gICAgfQotCi0gICAgaWYgKG1vZGUgPT0gTUJFRFRMU19DQU1FTExJQV9ERUNSWVBUKSB7Ci0gICAgICAgIHdoaWxlIChsZW5ndGgtLSkgewotICAgICAgICAgICAgaWYgKG4gPT0gMCkgewotICAgICAgICAgICAgICAgIG1iZWR0bHNfY2FtZWxsaWFfY3J5cHRfZWNiKGN0eCwgTUJFRFRMU19DQU1FTExJQV9FTkNSWVBULCBpdiwgaXYpOwotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICBjID0gKmlucHV0Kys7Ci0gICAgICAgICAgICAqb3V0cHV0KysgPSAodW5zaWduZWQgY2hhcikgKGMgXiBpdltuXSk7Ci0gICAgICAgICAgICBpdltuXSA9ICh1bnNpZ25lZCBjaGFyKSBjOwotCi0gICAgICAgICAgICBuID0gKG4gKyAxKSAmIDB4MEY7Ci0gICAgICAgIH0KLSAgICB9IGVsc2UgewotICAgICAgICB3aGlsZSAobGVuZ3RoLS0pIHsKLSAgICAgICAgICAgIGlmIChuID09IDApIHsKLSAgICAgICAgICAgICAgICBtYmVkdGxzX2NhbWVsbGlhX2NyeXB0X2VjYihjdHgsIE1CRURUTFNfQ0FNRUxMSUFfRU5DUllQVCwgaXYsIGl2KTsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgaXZbbl0gPSAqb3V0cHV0KysgPSAodW5zaWduZWQgY2hhcikgKGl2W25dIF4gKmlucHV0KyspOwotCi0gICAgICAgICAgICBuID0gKG4gKyAxKSAmIDB4MEY7Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICAqaXZfb2ZmID0gbjsKLQotICAgIHJldHVybiAwOwotfQotI2VuZGlmIC8qIE1CRURUTFNfQ0lQSEVSX01PREVfQ0ZCICovCi0KLSNpZiBkZWZpbmVkKE1CRURUTFNfQ0lQSEVSX01PREVfQ1RSKQotLyoKLSAqIENhbWVsbGlhLUNUUiBidWZmZXIgZW5jcnlwdGlvbi9kZWNyeXB0aW9uCi0gKi8KLWludCBtYmVkdGxzX2NhbWVsbGlhX2NyeXB0X2N0cihtYmVkdGxzX2NhbWVsbGlhX2NvbnRleHQgKmN0eCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgbGVuZ3RoLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCAqbmNfb2ZmLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGNoYXIgbm9uY2VfY291bnRlclsxNl0sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgY2hhciBzdHJlYW1fYmxvY2tbMTZdLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgKmlucHV0LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGNoYXIgKm91dHB1dCkKLXsKLSAgICBpbnQgYywgaTsKLSAgICBzaXplX3QgbjsKLQotICAgIG4gPSAqbmNfb2ZmOwotICAgIGlmIChuID49IDE2KSB7Ci0gICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9DQU1FTExJQV9CQURfSU5QVVRfREFUQTsKLSAgICB9Ci0KLSAgICB3aGlsZSAobGVuZ3RoLS0pIHsKLSAgICAgICAgaWYgKG4gPT0gMCkgewotICAgICAgICAgICAgbWJlZHRsc19jYW1lbGxpYV9jcnlwdF9lY2IoY3R4LCBNQkVEVExTX0NBTUVMTElBX0VOQ1JZUFQsIG5vbmNlX2NvdW50ZXIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJlYW1fYmxvY2spOwotCi0gICAgICAgICAgICBmb3IgKGkgPSAxNjsgaSA+IDA7IGktLSkgewotICAgICAgICAgICAgICAgIGlmICgrK25vbmNlX2NvdW50ZXJbaSAtIDFdICE9IDApIHsKLSAgICAgICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotICAgICAgICB9Ci0gICAgICAgIGMgPSAqaW5wdXQrKzsKLSAgICAgICAgKm91dHB1dCsrID0gKHVuc2lnbmVkIGNoYXIpIChjIF4gc3RyZWFtX2Jsb2NrW25dKTsKLQotICAgICAgICBuID0gKG4gKyAxKSAmIDB4MEY7Ci0gICAgfQotCi0gICAgKm5jX29mZiA9IG47Ci0KLSAgICByZXR1cm4gMDsKLX0KLSNlbmRpZiAvKiBNQkVEVExTX0NJUEhFUl9NT0RFX0NUUiAqLwotI2VuZGlmIC8qICFNQkVEVExTX0NBTUVMTElBX0FMVCAqLwotCi0jaWYgZGVmaW5lZChNQkVEVExTX1NFTEZfVEVTVCkKLQotLyoKLSAqIENhbWVsbGlhIHRlc3QgdmVjdG9ycyBmcm9tOgotICoKLSAqIGh0dHA6Ly9pbmZvLmlzbC5udHQuY28uanAvY3J5cHQvZW5nL2NhbWVsbGlhL3RlY2hub2xvZ3kuaHRtbDoKLSAqICAgaHR0cDovL2luZm8uaXNsLm50dC5jby5qcC9jcnlwdC9lbmcvY2FtZWxsaWEvZGwvY3J5cHRyZWMvaW50ZXJtZWRpYXRlLnR4dAotICogICBodHRwOi8vaW5mby5pc2wubnR0LmNvLmpwL2NyeXB0L2VuZy9jYW1lbGxpYS9kbC9jcnlwdHJlYy90X2NhbWVsbGlhLnR4dAotICogICAgICAgICAgICAgICAgICAgICAgKEZvciBlYWNoIGJpdGxlbmd0aDogS2V5IDAsIE5yIDM5KQotICovCi0jZGVmaW5lIENBTUVMTElBX1RFU1RTX0VDQiAgMgotCi1zdGF0aWMgY29uc3QgdW5zaWduZWQgY2hhciBjYW1lbGxpYV90ZXN0X2VjYl9rZXlbM11bQ0FNRUxMSUFfVEVTVFNfRUNCXVszMl0gPQotewotICAgIHsKLSAgICAgICAgeyAweDAxLCAweDIzLCAweDQ1LCAweDY3LCAweDg5LCAweGFiLCAweGNkLCAweGVmLAotICAgICAgICAgIDB4ZmUsIDB4ZGMsIDB4YmEsIDB4OTgsIDB4NzYsIDB4NTQsIDB4MzIsIDB4MTAgfSwKLSAgICAgICAgeyAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAgICAgICAgIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAgfQotICAgIH0sCi0gICAgewotICAgICAgICB7IDB4MDEsIDB4MjMsIDB4NDUsIDB4NjcsIDB4ODksIDB4YWIsIDB4Y2QsIDB4ZWYsCi0gICAgICAgICAgMHhmZSwgMHhkYywgMHhiYSwgMHg5OCwgMHg3NiwgMHg1NCwgMHgzMiwgMHgxMCwKLSAgICAgICAgICAweDAwLCAweDExLCAweDIyLCAweDMzLCAweDQ0LCAweDU1LCAweDY2LCAweDc3IH0sCi0gICAgICAgIHsgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgICAgICAgICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAgICAgICAgIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAgfQotICAgIH0sCi0gICAgewotICAgICAgICB7IDB4MDEsIDB4MjMsIDB4NDUsIDB4NjcsIDB4ODksIDB4YWIsIDB4Y2QsIDB4ZWYsCi0gICAgICAgICAgMHhmZSwgMHhkYywgMHhiYSwgMHg5OCwgMHg3NiwgMHg1NCwgMHgzMiwgMHgxMCwKLSAgICAgICAgICAweDAwLCAweDExLCAweDIyLCAweDMzLCAweDQ0LCAweDU1LCAweDY2LCAweDc3LAotICAgICAgICAgIDB4ODgsIDB4OTksIDB4YWEsIDB4YmIsIDB4Y2MsIDB4ZGQsIDB4ZWUsIDB4ZmYgfSwKLSAgICAgICAgeyAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAgICAgICAgIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gICAgICAgICAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgICAgICAgICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwIH0KLSAgICB9LAotfTsKLQotc3RhdGljIGNvbnN0IHVuc2lnbmVkIGNoYXIgY2FtZWxsaWFfdGVzdF9lY2JfcGxhaW5bQ0FNRUxMSUFfVEVTVFNfRUNCXVsxNl0gPQotewotICAgIHsgMHgwMSwgMHgyMywgMHg0NSwgMHg2NywgMHg4OSwgMHhhYiwgMHhjZCwgMHhlZiwKLSAgICAgIDB4ZmUsIDB4ZGMsIDB4YmEsIDB4OTgsIDB4NzYsIDB4NTQsIDB4MzIsIDB4MTAgfSwKLSAgICB7IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDIsIDB4MDAsIDB4MDAsIDB4MDAsCi0gICAgICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwIH0KLX07Ci0KLXN0YXRpYyBjb25zdCB1bnNpZ25lZCBjaGFyIGNhbWVsbGlhX3Rlc3RfZWNiX2NpcGhlclszXVtDQU1FTExJQV9URVNUU19FQ0JdWzE2XSA9Ci17Ci0gICAgewotICAgICAgICB7IDB4NjcsIDB4NjcsIDB4MzEsIDB4MzgsIDB4NTQsIDB4OTYsIDB4NjksIDB4NzMsCi0gICAgICAgICAgMHgwOCwgMHg1NywgMHgwNiwgMHg1NiwgMHg0OCwgMHhlYSwgMHhiZSwgMHg0MyB9LAotICAgICAgICB7IDB4MzgsIDB4M0MsIDB4NkMsIDB4MkEsIDB4QUIsIDB4RUYsIDB4N0YsIDB4REUsCi0gICAgICAgICAgMHgyNSwgMHhDRCwgMHg0NywgMHgwQiwgMHhGNywgMHg3NCwgMHhBMywgMHgzMSB9Ci0gICAgfSwKLSAgICB7Ci0gICAgICAgIHsgMHhiNCwgMHg5OSwgMHgzNCwgMHgwMSwgMHhiMywgMHhlOSwgMHg5NiwgMHhmOCwKLSAgICAgICAgICAweDRlLCAweGU1LCAweGNlLCAweGU3LCAweGQ3LCAweDliLCAweDA5LCAweGI5IH0sCi0gICAgICAgIHsgMHhEMSwgMHg3NiwgMHgzRiwgMHhDMCwgMHgxOSwgMHhENywgMHg3QywgMHhDOSwKLSAgICAgICAgICAweDMwLCAweEJGLCAweEYyLCAweEE1LCAweDZGLCAweDdDLCAweDkzLCAweDY0IH0KLSAgICB9LAotICAgIHsKLSAgICAgICAgeyAweDlhLCAweGNjLCAweDIzLCAweDdkLCAweGZmLCAweDE2LCAweGQ3LCAweDZjLAotICAgICAgICAgIDB4MjAsIDB4ZWYsIDB4N2MsIDB4OTEsIDB4OWUsIDB4M2EsIDB4NzUsIDB4MDkgfSwKLSAgICAgICAgeyAweDA1LCAweDAzLCAweEZCLCAweDEwLCAweEFCLCAweDI0LCAweDFFLCAweDdDLAotICAgICAgICAgIDB4RjQsIDB4NUQsIDB4OEMsIDB4REUsIDB4RUUsIDB4NDcsIDB4NDMsIDB4MzUgfQotICAgIH0KLX07Ci0KLSNpZiBkZWZpbmVkKE1CRURUTFNfQ0lQSEVSX01PREVfQ0JDKQotI2RlZmluZSBDQU1FTExJQV9URVNUU19DQkMgIDMKLQotc3RhdGljIGNvbnN0IHVuc2lnbmVkIGNoYXIgY2FtZWxsaWFfdGVzdF9jYmNfa2V5WzNdWzMyXSA9Ci17Ci0gICAgeyAweDJCLCAweDdFLCAweDE1LCAweDE2LCAweDI4LCAweEFFLCAweEQyLCAweEE2LAotICAgICAgMHhBQiwgMHhGNywgMHgxNSwgMHg4OCwgMHgwOSwgMHhDRiwgMHg0RiwgMHgzQyB9Ci0gICAgLAotICAgIHsgMHg4RSwgMHg3MywgMHhCMCwgMHhGNywgMHhEQSwgMHgwRSwgMHg2NCwgMHg1MiwKLSAgICAgIDB4QzgsIDB4MTAsIDB4RjMsIDB4MkIsIDB4ODAsIDB4OTAsIDB4NzksIDB4RTUsCi0gICAgICAweDYyLCAweEY4LCAweEVBLCAweEQyLCAweDUyLCAweDJDLCAweDZCLCAweDdCIH0KLSAgICAsCi0gICAgeyAweDYwLCAweDNELCAweEVCLCAweDEwLCAweDE1LCAweENBLCAweDcxLCAweEJFLAotICAgICAgMHgyQiwgMHg3MywgMHhBRSwgMHhGMCwgMHg4NSwgMHg3RCwgMHg3NywgMHg4MSwKLSAgICAgIDB4MUYsIDB4MzUsIDB4MkMsIDB4MDcsIDB4M0IsIDB4NjEsIDB4MDgsIDB4RDcsCi0gICAgICAweDJELCAweDk4LCAweDEwLCAweEEzLCAweDA5LCAweDE0LCAweERGLCAweEY0IH0KLX07Ci0KLXN0YXRpYyBjb25zdCB1bnNpZ25lZCBjaGFyIGNhbWVsbGlhX3Rlc3RfY2JjX2l2WzE2XSA9Ci0KLXsgMHgwMCwgMHgwMSwgMHgwMiwgMHgwMywgMHgwNCwgMHgwNSwgMHgwNiwgMHgwNywKLSAgMHgwOCwgMHgwOSwgMHgwQSwgMHgwQiwgMHgwQywgMHgwRCwgMHgwRSwgMHgwRiB9Ci07Ci0KLXN0YXRpYyBjb25zdCB1bnNpZ25lZCBjaGFyIGNhbWVsbGlhX3Rlc3RfY2JjX3BsYWluW0NBTUVMTElBX1RFU1RTX0NCQ11bMTZdID0KLXsKLSAgICB7IDB4NkIsIDB4QzEsIDB4QkUsIDB4RTIsIDB4MkUsIDB4NDAsIDB4OUYsIDB4OTYsCi0gICAgICAweEU5LCAweDNELCAweDdFLCAweDExLCAweDczLCAweDkzLCAweDE3LCAweDJBIH0sCi0gICAgeyAweEFFLCAweDJELCAweDhBLCAweDU3LCAweDFFLCAweDAzLCAweEFDLCAweDlDLAotICAgICAgMHg5RSwgMHhCNywgMHg2RiwgMHhBQywgMHg0NSwgMHhBRiwgMHg4RSwgMHg1MSB9LAotICAgIHsgMHgzMCwgMHhDOCwgMHgxQywgMHg0NiwgMHhBMywgMHg1QywgMHhFNCwgMHgxMSwKLSAgICAgIDB4RTUsIDB4RkIsIDB4QzEsIDB4MTksIDB4MUEsIDB4MEEsIDB4NTIsIDB4RUYgfQotCi19OwotCi1zdGF0aWMgY29uc3QgdW5zaWduZWQgY2hhciBjYW1lbGxpYV90ZXN0X2NiY19jaXBoZXJbM11bQ0FNRUxMSUFfVEVTVFNfQ0JDXVsxNl0gPQotewotICAgIHsKLSAgICAgICAgeyAweDE2LCAweDA3LCAweENGLCAweDQ5LCAweDRCLCAweDM2LCAweEJCLCAweEYwLAotICAgICAgICAgIDB4MEQsIDB4QUUsIDB4QjAsIDB4QjUsIDB4MDMsIDB4QzgsIDB4MzEsIDB4QUIgfSwKLSAgICAgICAgeyAweEEyLCAweEYyLCAweENGLCAweDY3LCAweDE2LCAweDI5LCAweEVGLCAweDc4LAotICAgICAgICAgIDB4NDAsIDB4QzUsIDB4QTUsIDB4REYsIDB4QjUsIDB4MDcsIDB4NDgsIDB4ODcgfSwKLSAgICAgICAgeyAweDBGLCAweDA2LCAweDE2LCAweDUwLCAweDA4LCAweENGLCAweDhCLCAweDhCLAotICAgICAgICAgIDB4NUEsIDB4NjMsIDB4NTgsIDB4NjMsIDB4NjIsIDB4NTQsIDB4M0UsIDB4NTQgfQotICAgIH0sCi0gICAgewotICAgICAgICB7IDB4MkEsIDB4NDgsIDB4MzAsIDB4QUIsIDB4NUEsIDB4QzQsIDB4QTEsIDB4QTIsCi0gICAgICAgICAgMHg0MCwgMHg1OSwgMHg1NSwgMHhGRCwgMHgyMSwgMHg5NSwgMHhDRiwgMHg5MyB9LAotICAgICAgICB7IDB4NUQsIDB4NUEsIDB4ODYsIDB4OUIsIDB4RDEsIDB4NEMsIDB4RTUsIDB4NDIsCi0gICAgICAgICAgMHg2NCwgMHhGOCwgMHg5MiwgMHhBNiwgMHhERCwgMHgyRSwgMHhDMywgMHhENSB9LAotICAgICAgICB7IDB4MzcsIDB4RDMsIDB4NTksIDB4QzMsIDB4MzQsIDB4OTgsIDB4MzYsIDB4RDgsCi0gICAgICAgICAgMHg4NCwgMHhFMywgMHgxMCwgMHhBRCwgMHhERiwgMHg2OCwgMHhDNCwgMHg0OSB9Ci0gICAgfSwKLSAgICB7Ci0gICAgICAgIHsgMHhFNiwgMHhDRiwgMHhBMywgMHg1RiwgMHhDMCwgMHgyQiwgMHgxMywgMHg0QSwKLSAgICAgICAgICAweDRELCAweDJDLCAweDBCLCAweDY3LCAweDM3LCAweEFDLCAweDNFLCAweERBIH0sCi0gICAgICAgIHsgMHgzNiwgMHhDQiwgMHhFQiwgMHg3MywgMHhCRCwgMHg1MCwgMHg0QiwgMHg0MCwKLSAgICAgICAgICAweDcwLCAweEIxLCAweEI3LCAweERFLCAweDJCLCAweDIxLCAweEVCLCAweDUwIH0sCi0gICAgICAgIHsgMHhFMywgMHgxQSwgMHg2MCwgMHg1NSwgMHgyOSwgMHg3RCwgMHg5NiwgMHhDQSwKLSAgICAgICAgICAweDMzLCAweDMwLCAweENELCAweEYxLCAweEIxLCAweDg2LCAweDBBLCAweDgzIH0KLSAgICB9Ci19OwotI2VuZGlmIC8qIE1CRURUTFNfQ0lQSEVSX01PREVfQ0JDICovCi0KLSNpZiBkZWZpbmVkKE1CRURUTFNfQ0lQSEVSX01PREVfQ1RSKQotLyoKLSAqIENhbWVsbGlhLUNUUiB0ZXN0IHZlY3RvcnMgZnJvbToKLSAqCi0gKiBodHRwOi8vd3d3LmZhcXMub3JnL3JmY3MvcmZjNTUyOC5odG1sCi0gKi8KLQotc3RhdGljIGNvbnN0IHVuc2lnbmVkIGNoYXIgY2FtZWxsaWFfdGVzdF9jdHJfa2V5WzNdWzE2XSA9Ci17Ci0gICAgeyAweEFFLCAweDY4LCAweDUyLCAweEY4LCAweDEyLCAweDEwLCAweDY3LCAweENDLAotICAgICAgMHg0QiwgMHhGNywgMHhBNSwgMHg3NiwgMHg1NSwgMHg3NywgMHhGMywgMHg5RSB9LAotICAgIHsgMHg3RSwgMHgyNCwgMHgwNiwgMHg3OCwgMHgxNywgMHhGQSwgMHhFMCwgMHhENywKLSAgICAgIDB4NDMsIDB4RDYsIDB4Q0UsIDB4MUYsIDB4MzIsIDB4NTMsIDB4OTEsIDB4NjMgfSwKLSAgICB7IDB4NzYsIDB4OTEsIDB4QkUsIDB4MDMsIDB4NUUsIDB4NTAsIDB4MjAsIDB4QTgsCi0gICAgICAweEFDLCAweDZFLCAweDYxLCAweDg1LCAweDI5LCAweEY5LCAweEEwLCAweERDIH0KLX07Ci0KLXN0YXRpYyBjb25zdCB1bnNpZ25lZCBjaGFyIGNhbWVsbGlhX3Rlc3RfY3RyX25vbmNlX2NvdW50ZXJbM11bMTZdID0KLXsKLSAgICB7IDB4MDAsIDB4MDAsIDB4MDAsIDB4MzAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gICAgICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAxIH0sCi0gICAgeyAweDAwLCAweDZDLCAweEI2LCAweERCLCAweEMwLCAweDU0LCAweDNCLCAweDU5LAotICAgICAgMHhEQSwgMHg0OCwgMHhEOSwgMHgwQiwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMSB9LAotICAgIHsgMHgwMCwgMHhFMCwgMHgwMSwgMHg3QiwgMHgyNywgMHg3NywgMHg3RiwgMHgzRiwKLSAgICAgIDB4NEEsIDB4MTcsIDB4ODYsIDB4RjAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDEgfQotfTsKLQotc3RhdGljIGNvbnN0IHVuc2lnbmVkIGNoYXIgY2FtZWxsaWFfdGVzdF9jdHJfcHRbM11bNDhdID0KLXsKLSAgICB7IDB4NTMsIDB4NjksIDB4NkUsIDB4NjcsIDB4NkMsIDB4NjUsIDB4MjAsIDB4NjIsCi0gICAgICAweDZDLCAweDZGLCAweDYzLCAweDZCLCAweDIwLCAweDZELCAweDczLCAweDY3IH0sCi0KLSAgICB7IDB4MDAsIDB4MDEsIDB4MDIsIDB4MDMsIDB4MDQsIDB4MDUsIDB4MDYsIDB4MDcsCi0gICAgICAweDA4LCAweDA5LCAweDBBLCAweDBCLCAweDBDLCAweDBELCAweDBFLCAweDBGLAotICAgICAgMHgxMCwgMHgxMSwgMHgxMiwgMHgxMywgMHgxNCwgMHgxNSwgMHgxNiwgMHgxNywKLSAgICAgIDB4MTgsIDB4MTksIDB4MUEsIDB4MUIsIDB4MUMsIDB4MUQsIDB4MUUsIDB4MUYgfSwKLQotICAgIHsgMHgwMCwgMHgwMSwgMHgwMiwgMHgwMywgMHgwNCwgMHgwNSwgMHgwNiwgMHgwNywKLSAgICAgIDB4MDgsIDB4MDksIDB4MEEsIDB4MEIsIDB4MEMsIDB4MEQsIDB4MEUsIDB4MEYsCi0gICAgICAweDEwLCAweDExLCAweDEyLCAweDEzLCAweDE0LCAweDE1LCAweDE2LCAweDE3LAotICAgICAgMHgxOCwgMHgxOSwgMHgxQSwgMHgxQiwgMHgxQywgMHgxRCwgMHgxRSwgMHgxRiwKLSAgICAgIDB4MjAsIDB4MjEsIDB4MjIsIDB4MjMgfQotfTsKLQotc3RhdGljIGNvbnN0IHVuc2lnbmVkIGNoYXIgY2FtZWxsaWFfdGVzdF9jdHJfY3RbM11bNDhdID0KLXsKLSAgICB7IDB4RDAsIDB4OUQsIDB4QzIsIDB4OUEsIDB4ODIsIDB4MTQsIDB4NjEsIDB4OUEsCi0gICAgICAweDIwLCAweDg3LCAweDdDLCAweDc2LCAweERCLCAweDFGLCAweDBCLCAweDNGIH0sCi0gICAgeyAweERCLCAweEYzLCAweEM3LCAweDhELCAweEMwLCAweDgzLCAweDk2LCAweEQ0LAotICAgICAgMHhEQSwgMHg3QywgMHg5MCwgMHg3NywgMHg2NSwgMHhCQiwgMHhDQiwgMHg0NCwKLSAgICAgIDB4MkIsIDB4OEUsIDB4OEUsIDB4MEYsIDB4MzEsIDB4RjAsIDB4REMsIDB4QTcsCi0gICAgICAweDJDLCAweDc0LCAweDE3LCAweEUzLCAweDUzLCAweDYwLCAweEUwLCAweDQ4IH0sCi0gICAgeyAweEIxLCAweDlELCAweDFGLCAweENELCAweENCLCAweDc1LCAweEVCLCAweDg4LAotICAgICAgMHgyRiwgMHg4NCwgMHg5QywgMHhFMiwgMHg0RCwgMHg4NSwgMHhDRiwgMHg3MywKLSAgICAgIDB4OUMsIDB4RTYsIDB4NEIsIDB4MkIsIDB4NUMsIDB4OUQsIDB4NzMsIDB4RjEsCi0gICAgICAweDRGLCAweDJELCAweDVELCAweDlELCAweENFLCAweDk4LCAweDg5LCAweENELAotICAgICAgMHhERiwgMHg1MCwgMHg4NiwgMHg5NiB9Ci19OwotCi1zdGF0aWMgY29uc3QgaW50IGNhbWVsbGlhX3Rlc3RfY3RyX2xlblszXSA9Ci17IDE2LCAzMiwgMzYgfTsKLSNlbmRpZiAvKiBNQkVEVExTX0NJUEhFUl9NT0RFX0NUUiAqLwotCi0vKgotICogQ2hlY2t1cCByb3V0aW5lCi0gKi8KLWludCBtYmVkdGxzX2NhbWVsbGlhX3NlbGZfdGVzdChpbnQgdmVyYm9zZSkKLXsKLSAgICBpbnQgaSwgaiwgdSwgdjsKLSAgICB1bnNpZ25lZCBjaGFyIGtleVszMl07Ci0gICAgdW5zaWduZWQgY2hhciBidWZbNjRdOwotICAgIHVuc2lnbmVkIGNoYXIgc3JjWzE2XTsKLSAgICB1bnNpZ25lZCBjaGFyIGRzdFsxNl07Ci0jaWYgZGVmaW5lZChNQkVEVExTX0NJUEhFUl9NT0RFX0NCQykKLSAgICB1bnNpZ25lZCBjaGFyIGl2WzE2XTsKLSNlbmRpZgotI2lmIGRlZmluZWQoTUJFRFRMU19DSVBIRVJfTU9ERV9DVFIpCi0gICAgc2l6ZV90IG9mZnNldCwgbGVuOwotICAgIHVuc2lnbmVkIGNoYXIgbm9uY2VfY291bnRlclsxNl07Ci0gICAgdW5zaWduZWQgY2hhciBzdHJlYW1fYmxvY2tbMTZdOwotI2VuZGlmCi0gICAgaW50IHJldCA9IDE7Ci0KLSAgICBtYmVkdGxzX2NhbWVsbGlhX2NvbnRleHQgY3R4OwotCi0gICAgbWJlZHRsc19jYW1lbGxpYV9pbml0KCZjdHgpOwotICAgIG1lbXNldChrZXksIDAsIDMyKTsKLQotICAgIGZvciAoaiA9IDA7IGogPCA2OyBqKyspIHsKLSAgICAgICAgdSA9IGogPj4gMTsKLSAgICAgICAgdiA9IGogJiAxOwotCi0gICAgICAgIGlmICh2ZXJib3NlICE9IDApIHsKLSAgICAgICAgICAgIG1iZWR0bHNfcHJpbnRmKCIgIENBTUVMTElBLUVDQi0lM2QgKCVzKTogIiwgMTI4ICsgdSAqIDY0LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgKHYgPT0gTUJFRFRMU19DQU1FTExJQV9ERUNSWVBUKSA/ICJkZWMiIDogImVuYyIpOwotICAgICAgICB9Ci0KLSNpZiBkZWZpbmVkKE1CRURUTFNfQkxPQ0tfQ0lQSEVSX05PX0RFQ1JZUFQpCi0gICAgICAgIGlmICh2ID09IE1CRURUTFNfQ0FNRUxMSUFfREVDUllQVCkgewotICAgICAgICAgICAgaWYgKHZlcmJvc2UgIT0gMCkgewotICAgICAgICAgICAgICAgIG1iZWR0bHNfcHJpbnRmKCJza2lwcGVkXG4iKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICB9Ci0jZW5kaWYKLQotICAgICAgICBmb3IgKGkgPSAwOyBpIDwgQ0FNRUxMSUFfVEVTVFNfRUNCOyBpKyspIHsKLSAgICAgICAgICAgIG1lbWNweShrZXksIGNhbWVsbGlhX3Rlc3RfZWNiX2tleVt1XVtpXSwgMTYgKyA4ICogdSk7Ci0KLSNpZiAhZGVmaW5lZChNQkVEVExTX0JMT0NLX0NJUEhFUl9OT19ERUNSWVBUKQotICAgICAgICAgICAgaWYgKHYgPT0gTUJFRFRMU19DQU1FTExJQV9ERUNSWVBUKSB7Ci0gICAgICAgICAgICAgICAgbWJlZHRsc19jYW1lbGxpYV9zZXRrZXlfZGVjKCZjdHgsIGtleSwgMTI4ICsgdSAqIDY0KTsKLSAgICAgICAgICAgICAgICBtZW1jcHkoc3JjLCBjYW1lbGxpYV90ZXN0X2VjYl9jaXBoZXJbdV1baV0sIDE2KTsKLSAgICAgICAgICAgICAgICBtZW1jcHkoZHN0LCBjYW1lbGxpYV90ZXN0X2VjYl9wbGFpbltpXSwgMTYpOwotICAgICAgICAgICAgfSBlbHNlCi0jZW5kaWYKLSAgICAgICAgICAgIHsgLyogTUJFRFRMU19DQU1FTExJQV9FTkNSWVBUICovCi0gICAgICAgICAgICAgICAgbWJlZHRsc19jYW1lbGxpYV9zZXRrZXlfZW5jKCZjdHgsIGtleSwgMTI4ICsgdSAqIDY0KTsKLSAgICAgICAgICAgICAgICBtZW1jcHkoc3JjLCBjYW1lbGxpYV90ZXN0X2VjYl9wbGFpbltpXSwgMTYpOwotICAgICAgICAgICAgICAgIG1lbWNweShkc3QsIGNhbWVsbGlhX3Rlc3RfZWNiX2NpcGhlclt1XVtpXSwgMTYpOwotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICBtYmVkdGxzX2NhbWVsbGlhX2NyeXB0X2VjYigmY3R4LCB2LCBzcmMsIGJ1Zik7Ci0KLSAgICAgICAgICAgIGlmIChtZW1jbXAoYnVmLCBkc3QsIDE2KSAhPSAwKSB7Ci0gICAgICAgICAgICAgICAgaWYgKHZlcmJvc2UgIT0gMCkgewotICAgICAgICAgICAgICAgICAgICBtYmVkdGxzX3ByaW50ZigiZmFpbGVkXG4iKTsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgZ290byBleGl0OwotICAgICAgICAgICAgfQotICAgICAgICB9Ci0KLSAgICAgICAgaWYgKHZlcmJvc2UgIT0gMCkgewotICAgICAgICAgICAgbWJlZHRsc19wcmludGYoInBhc3NlZFxuIik7Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICBpZiAodmVyYm9zZSAhPSAwKSB7Ci0gICAgICAgIG1iZWR0bHNfcHJpbnRmKCJcbiIpOwotICAgIH0KLQotI2lmIGRlZmluZWQoTUJFRFRMU19DSVBIRVJfTU9ERV9DQkMpCi0gICAgLyoKLSAgICAgKiBDQkMgbW9kZQotICAgICAqLwotICAgIGZvciAoaiA9IDA7IGogPCA2OyBqKyspIHsKLSAgICAgICAgdSA9IGogPj4gMTsKLSAgICAgICAgdiA9IGogICYgMTsKLQotICAgICAgICBpZiAodmVyYm9zZSAhPSAwKSB7Ci0gICAgICAgICAgICBtYmVkdGxzX3ByaW50ZigiICBDQU1FTExJQS1DQkMtJTNkICglcyk6ICIsIDEyOCArIHUgKiA2NCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICh2ID09IE1CRURUTFNfQ0FNRUxMSUFfREVDUllQVCkgPyAiZGVjIiA6ICJlbmMiKTsKLSAgICAgICAgfQotCi0gICAgICAgIG1lbWNweShzcmMsIGNhbWVsbGlhX3Rlc3RfY2JjX2l2LCAxNik7Ci0gICAgICAgIG1lbWNweShkc3QsIGNhbWVsbGlhX3Rlc3RfY2JjX2l2LCAxNik7Ci0gICAgICAgIG1lbWNweShrZXksIGNhbWVsbGlhX3Rlc3RfY2JjX2tleVt1XSwgMTYgKyA4ICogdSk7Ci0KLSAgICAgICAgaWYgKHYgPT0gTUJFRFRMU19DQU1FTExJQV9ERUNSWVBUKSB7Ci0gICAgICAgICAgICBtYmVkdGxzX2NhbWVsbGlhX3NldGtleV9kZWMoJmN0eCwga2V5LCAxMjggKyB1ICogNjQpOwotICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgbWJlZHRsc19jYW1lbGxpYV9zZXRrZXlfZW5jKCZjdHgsIGtleSwgMTI4ICsgdSAqIDY0KTsKLSAgICAgICAgfQotCi0gICAgICAgIGZvciAoaSA9IDA7IGkgPCBDQU1FTExJQV9URVNUU19DQkM7IGkrKykgewotCi0gICAgICAgICAgICBpZiAodiA9PSBNQkVEVExTX0NBTUVMTElBX0RFQ1JZUFQpIHsKLSAgICAgICAgICAgICAgICBtZW1jcHkoaXYsIHNyYywgMTYpOwotICAgICAgICAgICAgICAgIG1lbWNweShzcmMsIGNhbWVsbGlhX3Rlc3RfY2JjX2NpcGhlclt1XVtpXSwgMTYpOwotICAgICAgICAgICAgICAgIG1lbWNweShkc3QsIGNhbWVsbGlhX3Rlc3RfY2JjX3BsYWluW2ldLCAxNik7Ci0gICAgICAgICAgICB9IGVsc2UgeyAvKiBNQkVEVExTX0NBTUVMTElBX0VOQ1JZUFQgKi8KLSAgICAgICAgICAgICAgICBtZW1jcHkoaXYsIGRzdCwgMTYpOwotICAgICAgICAgICAgICAgIG1lbWNweShzcmMsIGNhbWVsbGlhX3Rlc3RfY2JjX3BsYWluW2ldLCAxNik7Ci0gICAgICAgICAgICAgICAgbWVtY3B5KGRzdCwgY2FtZWxsaWFfdGVzdF9jYmNfY2lwaGVyW3VdW2ldLCAxNik7Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIG1iZWR0bHNfY2FtZWxsaWFfY3J5cHRfY2JjKCZjdHgsIHYsIDE2LCBpdiwgc3JjLCBidWYpOwotCi0gICAgICAgICAgICBpZiAobWVtY21wKGJ1ZiwgZHN0LCAxNikgIT0gMCkgewotICAgICAgICAgICAgICAgIGlmICh2ZXJib3NlICE9IDApIHsKLSAgICAgICAgICAgICAgICAgICAgbWJlZHRsc19wcmludGYoImZhaWxlZFxuIik7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIGdvdG8gZXhpdDsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfQotCi0gICAgICAgIGlmICh2ZXJib3NlICE9IDApIHsKLSAgICAgICAgICAgIG1iZWR0bHNfcHJpbnRmKCJwYXNzZWRcbiIpOwotICAgICAgICB9Ci0gICAgfQotI2VuZGlmIC8qIE1CRURUTFNfQ0lQSEVSX01PREVfQ0JDICovCi0KLSAgICBpZiAodmVyYm9zZSAhPSAwKSB7Ci0gICAgICAgIG1iZWR0bHNfcHJpbnRmKCJcbiIpOwotICAgIH0KLQotI2lmIGRlZmluZWQoTUJFRFRMU19DSVBIRVJfTU9ERV9DVFIpCi0gICAgLyoKLSAgICAgKiBDVFIgbW9kZQotICAgICAqLwotICAgIGZvciAoaSA9IDA7IGkgPCA2OyBpKyspIHsKLSAgICAgICAgdSA9IGkgPj4gMTsKLSAgICAgICAgdiA9IGkgICYgMTsKLQotICAgICAgICBpZiAodmVyYm9zZSAhPSAwKSB7Ci0gICAgICAgICAgICBtYmVkdGxzX3ByaW50ZigiICBDQU1FTExJQS1DVFItMTI4ICglcyk6ICIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAodiA9PSBNQkVEVExTX0NBTUVMTElBX0RFQ1JZUFQpID8gImRlYyIgOiAiZW5jIik7Ci0gICAgICAgIH0KLQotICAgICAgICBtZW1jcHkobm9uY2VfY291bnRlciwgY2FtZWxsaWFfdGVzdF9jdHJfbm9uY2VfY291bnRlclt1XSwgMTYpOwotICAgICAgICBtZW1jcHkoa2V5LCBjYW1lbGxpYV90ZXN0X2N0cl9rZXlbdV0sIDE2KTsKLQotICAgICAgICBvZmZzZXQgPSAwOwotICAgICAgICBtYmVkdGxzX2NhbWVsbGlhX3NldGtleV9lbmMoJmN0eCwga2V5LCAxMjgpOwotCi0gICAgICAgIGlmICh2ID09IE1CRURUTFNfQ0FNRUxMSUFfREVDUllQVCkgewotICAgICAgICAgICAgbGVuID0gY2FtZWxsaWFfdGVzdF9jdHJfbGVuW3VdOwotICAgICAgICAgICAgbWVtY3B5KGJ1ZiwgY2FtZWxsaWFfdGVzdF9jdHJfY3RbdV0sIGxlbik7Ci0KLSAgICAgICAgICAgIG1iZWR0bHNfY2FtZWxsaWFfY3J5cHRfY3RyKCZjdHgsIGxlbiwgJm9mZnNldCwgbm9uY2VfY291bnRlciwgc3RyZWFtX2Jsb2NrLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnVmLCBidWYpOwotCi0gICAgICAgICAgICBpZiAobWVtY21wKGJ1ZiwgY2FtZWxsaWFfdGVzdF9jdHJfcHRbdV0sIGxlbikgIT0gMCkgewotICAgICAgICAgICAgICAgIGlmICh2ZXJib3NlICE9IDApIHsKLSAgICAgICAgICAgICAgICAgICAgbWJlZHRsc19wcmludGYoImZhaWxlZFxuIik7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIGdvdG8gZXhpdDsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIGxlbiA9IGNhbWVsbGlhX3Rlc3RfY3RyX2xlblt1XTsKLSAgICAgICAgICAgIG1lbWNweShidWYsIGNhbWVsbGlhX3Rlc3RfY3RyX3B0W3VdLCBsZW4pOwotCi0gICAgICAgICAgICBtYmVkdGxzX2NhbWVsbGlhX2NyeXB0X2N0cigmY3R4LCBsZW4sICZvZmZzZXQsIG5vbmNlX2NvdW50ZXIsIHN0cmVhbV9ibG9jaywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ1ZiwgYnVmKTsKLQotICAgICAgICAgICAgaWYgKG1lbWNtcChidWYsIGNhbWVsbGlhX3Rlc3RfY3RyX2N0W3VdLCBsZW4pICE9IDApIHsKLSAgICAgICAgICAgICAgICBpZiAodmVyYm9zZSAhPSAwKSB7Ci0gICAgICAgICAgICAgICAgICAgIG1iZWR0bHNfcHJpbnRmKCJmYWlsZWRcbiIpOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICBnb3RvIGV4aXQ7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLQotICAgICAgICBpZiAodmVyYm9zZSAhPSAwKSB7Ci0gICAgICAgICAgICBtYmVkdGxzX3ByaW50ZigicGFzc2VkXG4iKTsKLSAgICAgICAgfQotICAgIH0KLQotICAgIGlmICh2ZXJib3NlICE9IDApIHsKLSAgICAgICAgbWJlZHRsc19wcmludGYoIlxuIik7Ci0gICAgfQotI2VuZGlmIC8qIE1CRURUTFNfQ0lQSEVSX01PREVfQ1RSICovCi0KLSAgICByZXQgPSAwOwotCi1leGl0OgotICAgIG1iZWR0bHNfY2FtZWxsaWFfZnJlZSgmY3R4KTsKLSAgICByZXR1cm4gcmV0OwotfQotCi0jZW5kaWYgLyogTUJFRFRMU19TRUxGX1RFU1QgKi8KLQotI2VuZGlmIC8qIE1CRURUTFNfQ0FNRUxMSUFfQyAqLwpkaWZmIC0tZ2l0IGEvbGlicmFyeS9jY20uYyBiL2xpYnJhcnkvY2NtLmMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDQ1ZWQ2OTcuLjAwMDAwMDAKLS0tIGEvbGlicmFyeS9jY20uYworKysgL2Rldi9udWxsCkBAIC0xLDc2MyArMCwwIEBACi0vKgotICogIE5JU1QgU1A4MDAtMzhDIGNvbXBsaWFudCBDQ00gaW1wbGVtZW50YXRpb24KLSAqCi0gKiAgQ29weXJpZ2h0IFRoZSBNYmVkIFRMUyBDb250cmlidXRvcnMKLSAqICBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMCBPUiBHUEwtMi4wLW9yLWxhdGVyCi0gKi8KLQotLyoKLSAqIERlZmluaXRpb24gb2YgQ0NNOgotICogaHR0cDovL2NzcmMubmlzdC5nb3YvcHVibGljYXRpb25zL25pc3RwdWJzLzgwMC0zOEMvU1A4MDAtMzhDX3VwZGF0ZWQtSnVseTIwXzIwMDcucGRmCi0gKiBSRkMgMzYxMCAiQ291bnRlciB3aXRoIENCQy1NQUMgKENDTSkiCi0gKgotICogUmVsYXRlZDoKLSAqIFJGQyA1MTE2ICJBbiBJbnRlcmZhY2UgYW5kIEFsZ29yaXRobXMgZm9yIEF1dGhlbnRpY2F0ZWQgRW5jcnlwdGlvbiIKLSAqLwotCi0jaW5jbHVkZSAiY29tbW9uLmgiCi0KLSNpZiBkZWZpbmVkKE1CRURUTFNfQ0NNX0MpCi0KLSNpbmNsdWRlICJtYmVkdGxzL2NjbS5oIgotI2luY2x1ZGUgIm1iZWR0bHMvcGxhdGZvcm1fdXRpbC5oIgotI2luY2x1ZGUgIm1iZWR0bHMvZXJyb3IuaCIKLSNpbmNsdWRlICJtYmVkdGxzL2NvbnN0YW50X3RpbWUuaCIKLQotI2lmIGRlZmluZWQoTUJFRFRMU19CTE9DS19DSVBIRVJfQykKLSNpbmNsdWRlICJibG9ja19jaXBoZXJfaW50ZXJuYWwuaCIKLSNlbmRpZgotCi0jaW5jbHVkZSA8c3RyaW5nLmg+Ci0KLSNpZiBkZWZpbmVkKE1CRURUTFNfUExBVEZPUk1fQykKLSNpbmNsdWRlICJtYmVkdGxzL3BsYXRmb3JtLmgiCi0jZWxzZQotI2lmIGRlZmluZWQoTUJFRFRMU19TRUxGX1RFU1QpICYmIGRlZmluZWQoTUJFRFRMU19BRVNfQykKLSNpbmNsdWRlIDxzdGRpby5oPgotI2RlZmluZSBtYmVkdGxzX3ByaW50ZiBwcmludGYKLSNlbmRpZiAvKiBNQkVEVExTX1NFTEZfVEVTVCAmJiBNQkVEVExTX0FFU19DICovCi0jZW5kaWYgLyogTUJFRFRMU19QTEFURk9STV9DICovCi0KLSNpZiAhZGVmaW5lZChNQkVEVExTX0NDTV9BTFQpCi0KLQotLyoKLSAqIEluaXRpYWxpemUgY29udGV4dAotICovCi12b2lkIG1iZWR0bHNfY2NtX2luaXQobWJlZHRsc19jY21fY29udGV4dCAqY3R4KQotewotICAgIG1lbXNldChjdHgsIDAsIHNpemVvZihtYmVkdGxzX2NjbV9jb250ZXh0KSk7Ci19Ci0KLWludCBtYmVkdGxzX2NjbV9zZXRrZXkobWJlZHRsc19jY21fY29udGV4dCAqY3R4LAotICAgICAgICAgICAgICAgICAgICAgICBtYmVkdGxzX2NpcGhlcl9pZF90IGNpcGhlciwKLSAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdW5zaWduZWQgY2hhciAqa2V5LAotICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQga2V5Yml0cykKLXsKLSAgICBpbnQgcmV0ID0gTUJFRFRMU19FUlJfRVJST1JfQ09SUlVQVElPTl9ERVRFQ1RFRDsKLQotI2lmIGRlZmluZWQoTUJFRFRMU19CTE9DS19DSVBIRVJfQykKLSAgICBtYmVkdGxzX2Jsb2NrX2NpcGhlcl9mcmVlKCZjdHgtPmJsb2NrX2NpcGhlcl9jdHgpOwotCi0gICAgaWYgKChyZXQgPSBtYmVkdGxzX2Jsb2NrX2NpcGhlcl9zZXR1cCgmY3R4LT5ibG9ja19jaXBoZXJfY3R4LCBjaXBoZXIpKSAhPSAwKSB7Ci0gICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9DQ01fQkFEX0lOUFVUOwotICAgIH0KLQotICAgIGlmICgocmV0ID0gbWJlZHRsc19ibG9ja19jaXBoZXJfc2V0a2V5KCZjdHgtPmJsb2NrX2NpcGhlcl9jdHgsIGtleSwga2V5Yml0cykpICE9IDApIHsKLSAgICAgICAgcmV0dXJuIE1CRURUTFNfRVJSX0NDTV9CQURfSU5QVVQ7Ci0gICAgfQotI2Vsc2UKLSAgICBjb25zdCBtYmVkdGxzX2NpcGhlcl9pbmZvX3QgKmNpcGhlcl9pbmZvOwotCi0gICAgY2lwaGVyX2luZm8gPSBtYmVkdGxzX2NpcGhlcl9pbmZvX2Zyb21fdmFsdWVzKGNpcGhlciwga2V5Yml0cywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTUJFRFRMU19NT0RFX0VDQik7Ci0gICAgaWYgKGNpcGhlcl9pbmZvID09IE5VTEwpIHsKLSAgICAgICAgcmV0dXJuIE1CRURUTFNfRVJSX0NDTV9CQURfSU5QVVQ7Ci0gICAgfQotCi0gICAgaWYgKG1iZWR0bHNfY2lwaGVyX2luZm9fZ2V0X2Jsb2NrX3NpemUoY2lwaGVyX2luZm8pICE9IDE2KSB7Ci0gICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9DQ01fQkFEX0lOUFVUOwotICAgIH0KLQotICAgIG1iZWR0bHNfY2lwaGVyX2ZyZWUoJmN0eC0+Y2lwaGVyX2N0eCk7Ci0KLSAgICBpZiAoKHJldCA9IG1iZWR0bHNfY2lwaGVyX3NldHVwKCZjdHgtPmNpcGhlcl9jdHgsIGNpcGhlcl9pbmZvKSkgIT0gMCkgewotICAgICAgICByZXR1cm4gcmV0OwotICAgIH0KLQotICAgIGlmICgocmV0ID0gbWJlZHRsc19jaXBoZXJfc2V0a2V5KCZjdHgtPmNpcGhlcl9jdHgsIGtleSwga2V5Yml0cywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNQkVEVExTX0VOQ1JZUFQpKSAhPSAwKSB7Ci0gICAgICAgIHJldHVybiByZXQ7Ci0gICAgfQotI2VuZGlmCi0KLSAgICByZXR1cm4gcmV0OwotfQotCi0vKgotICogRnJlZSBjb250ZXh0Ci0gKi8KLXZvaWQgbWJlZHRsc19jY21fZnJlZShtYmVkdGxzX2NjbV9jb250ZXh0ICpjdHgpCi17Ci0gICAgaWYgKGN0eCA9PSBOVUxMKSB7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0jaWYgZGVmaW5lZChNQkVEVExTX0JMT0NLX0NJUEhFUl9DKQotICAgIG1iZWR0bHNfYmxvY2tfY2lwaGVyX2ZyZWUoJmN0eC0+YmxvY2tfY2lwaGVyX2N0eCk7Ci0jZWxzZQotICAgIG1iZWR0bHNfY2lwaGVyX2ZyZWUoJmN0eC0+Y2lwaGVyX2N0eCk7Ci0jZW5kaWYKLSAgICBtYmVkdGxzX3BsYXRmb3JtX3plcm9pemUoY3R4LCBzaXplb2YobWJlZHRsc19jY21fY29udGV4dCkpOwotfQotCi0jZGVmaW5lIENDTV9TVEFURV9fQ0xFQVIgICAgICAgICAgICAgICAgMAotI2RlZmluZSBDQ01fU1RBVEVfX1NUQVJURUQgICAgICAgICAgICAgICgxIDw8IDApCi0jZGVmaW5lIENDTV9TVEFURV9fTEVOR1RIU19TRVQgICAgICAgICAgKDEgPDwgMSkKLSNkZWZpbmUgQ0NNX1NUQVRFX19BVVRIX0RBVEFfU1RBUlRFRCAgICAoMSA8PCAyKQotI2RlZmluZSBDQ01fU1RBVEVfX0FVVEhfREFUQV9GSU5JU0hFRCAgICgxIDw8IDMpCi0jZGVmaW5lIENDTV9TVEFURV9fRVJST1IgICAgICAgICAgICAgICAgKDEgPDwgNCkKLQotLyoKLSAqIEVuY3J5cHQgb3IgZGVjcnlwdCBhIHBhcnRpYWwgYmxvY2sgd2l0aCBDVFIKLSAqLwotc3RhdGljIGludCBtYmVkdGxzX2NjbV9jcnlwdChtYmVkdGxzX2NjbV9jb250ZXh0ICpjdHgsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBvZmZzZXQsIHNpemVfdCB1c2VfbGVuLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1bnNpZ25lZCBjaGFyICppbnB1dCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgY2hhciAqb3V0cHV0KQotewotICAgIGludCByZXQgPSBNQkVEVExTX0VSUl9FUlJPUl9DT1JSVVBUSU9OX0RFVEVDVEVEOwotICAgIHVuc2lnbmVkIGNoYXIgdG1wX2J1ZlsxNl0gPSB7IDAgfTsKLQotI2lmIGRlZmluZWQoTUJFRFRMU19CTE9DS19DSVBIRVJfQykKLSAgICByZXQgPSBtYmVkdGxzX2Jsb2NrX2NpcGhlcl9lbmNyeXB0KCZjdHgtPmJsb2NrX2NpcGhlcl9jdHgsIGN0eC0+Y3RyLCB0bXBfYnVmKTsKLSNlbHNlCi0gICAgc2l6ZV90IG9sZW4gPSAwOwotICAgIHJldCA9IG1iZWR0bHNfY2lwaGVyX3VwZGF0ZSgmY3R4LT5jaXBoZXJfY3R4LCBjdHgtPmN0ciwgMTYsIHRtcF9idWYsICZvbGVuKTsKLSNlbmRpZgotICAgIGlmIChyZXQgIT0gMCkgewotICAgICAgICBjdHgtPnN0YXRlIHw9IENDTV9TVEFURV9fRVJST1I7Ci0gICAgICAgIG1iZWR0bHNfcGxhdGZvcm1femVyb2l6ZSh0bXBfYnVmLCBzaXplb2YodG1wX2J1ZikpOwotICAgICAgICByZXR1cm4gcmV0OwotICAgIH0KLQotICAgIG1iZWR0bHNfeG9yKG91dHB1dCwgaW5wdXQsIHRtcF9idWYgKyBvZmZzZXQsIHVzZV9sZW4pOwotCi0gICAgbWJlZHRsc19wbGF0Zm9ybV96ZXJvaXplKHRtcF9idWYsIHNpemVvZih0bXBfYnVmKSk7Ci0gICAgcmV0dXJuIHJldDsKLX0KLQotc3RhdGljIHZvaWQgbWJlZHRsc19jY21fY2xlYXJfc3RhdGUobWJlZHRsc19jY21fY29udGV4dCAqY3R4KQotewotICAgIGN0eC0+c3RhdGUgPSBDQ01fU1RBVEVfX0NMRUFSOwotICAgIG1lbXNldChjdHgtPnksIDAsIDE2KTsKLSAgICBtZW1zZXQoY3R4LT5jdHIsIDAsIDE2KTsKLX0KLQotc3RhdGljIGludCBjY21fY2FsY3VsYXRlX2ZpcnN0X2Jsb2NrX2lmX3JlYWR5KG1iZWR0bHNfY2NtX2NvbnRleHQgKmN0eCkKLXsKLSAgICBpbnQgcmV0ID0gTUJFRFRMU19FUlJfRVJST1JfQ09SUlVQVElPTl9ERVRFQ1RFRDsKLSAgICB1bnNpZ25lZCBjaGFyIGk7Ci0gICAgc2l6ZV90IGxlbl9sZWZ0OwotI2lmICFkZWZpbmVkKE1CRURUTFNfQkxPQ0tfQ0lQSEVSX0MpCi0gICAgc2l6ZV90IG9sZW47Ci0jZW5kaWYKLQotICAgIC8qIGxlbmd0aCBjYWxjdWxhdGlvbiBjYW4gYmUgZG9uZSBvbmx5IGFmdGVyIGJvdGgKLSAgICAgKiBtYmVkdGxzX2NjbV9zdGFydHMoKSBhbmQgbWJlZHRsc19jY21fc2V0X2xlbmd0aHMoKSBoYXZlIGJlZW4gZXhlY3V0ZWQKLSAgICAgKi8KLSAgICBpZiAoIShjdHgtPnN0YXRlICYgQ0NNX1NUQVRFX19TVEFSVEVEKSB8fCAhKGN0eC0+c3RhdGUgJiBDQ01fU1RBVEVfX0xFTkdUSFNfU0VUKSkgewotICAgICAgICByZXR1cm4gMDsKLSAgICB9Ci0KLSAgICAvKiBDQ00gZXhwZWN0cyBub24tZW1wdHkgdGFnLgotICAgICAqIENDTSogYWxsb3dzIGVtcHR5IHRhZy4gRm9yIENDTSogd2l0aG91dCB0YWcsIGlnbm9yZSBwbGFpbnRleHQgbGVuZ3RoLgotICAgICAqLwotICAgIGlmIChjdHgtPnRhZ19sZW4gPT0gMCkgewotICAgICAgICBpZiAoY3R4LT5tb2RlID09IE1CRURUTFNfQ0NNX1NUQVJfRU5DUllQVCB8fCBjdHgtPm1vZGUgPT0gTUJFRFRMU19DQ01fU1RBUl9ERUNSWVBUKSB7Ci0gICAgICAgICAgICBjdHgtPnBsYWludGV4dF9sZW4gPSAwOwotICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgcmV0dXJuIE1CRURUTFNfRVJSX0NDTV9CQURfSU5QVVQ7Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICAvKgotICAgICAqIEZpcnN0IGJsb2NrOgotICAgICAqIDAgICAgICAgIC4uIDAgICAgICAgIGZsYWdzCi0gICAgICogMSAgICAgICAgLi4gaXZfbGVuICAgbm9uY2UgKGFrYSBpdikgIC0gc2V0IGJ5OiBtYmVkdGxzX2NjbV9zdGFydHMoKQotICAgICAqIGl2X2xlbisxIC4uIDE1ICAgICAgIGxlbmd0aAotICAgICAqCi0gICAgICogV2l0aCBmbGFncyBhcyAoYml0cyk6Ci0gICAgICogNyAgICAgICAgMAotICAgICAqIDYgICAgICAgIGFkZCBwcmVzZW50PwotICAgICAqIDUgLi4gMyAgICh0IC0gMikgLyAyCi0gICAgICogMiAuLiAwICAgcSAtIDEKLSAgICAgKi8KLSAgICBjdHgtPnlbMF0gfD0gKGN0eC0+YWRkX2xlbiA+IDApIDw8IDY7Ci0gICAgY3R4LT55WzBdIHw9ICgoY3R4LT50YWdfbGVuIC0gMikgLyAyKSA8PCAzOwotICAgIGN0eC0+eVswXSB8PSBjdHgtPnEgLSAxOwotCi0gICAgZm9yIChpID0gMCwgbGVuX2xlZnQgPSBjdHgtPnBsYWludGV4dF9sZW47IGkgPCBjdHgtPnE7IGkrKywgbGVuX2xlZnQgPj49IDgpIHsKLSAgICAgICAgY3R4LT55WzE1LWldID0gTUJFRFRMU19CWVRFXzAobGVuX2xlZnQpOwotICAgIH0KLQotICAgIGlmIChsZW5fbGVmdCA+IDApIHsKLSAgICAgICAgY3R4LT5zdGF0ZSB8PSBDQ01fU1RBVEVfX0VSUk9SOwotICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfQ0NNX0JBRF9JTlBVVDsKLSAgICB9Ci0KLSAgICAvKiBTdGFydCBDQkMtTUFDIHdpdGggZmlyc3QgYmxvY2sqLwotI2lmIGRlZmluZWQoTUJFRFRMU19CTE9DS19DSVBIRVJfQykKLSAgICByZXQgPSBtYmVkdGxzX2Jsb2NrX2NpcGhlcl9lbmNyeXB0KCZjdHgtPmJsb2NrX2NpcGhlcl9jdHgsIGN0eC0+eSwgY3R4LT55KTsKLSNlbHNlCi0gICAgcmV0ID0gbWJlZHRsc19jaXBoZXJfdXBkYXRlKCZjdHgtPmNpcGhlcl9jdHgsIGN0eC0+eSwgMTYsIGN0eC0+eSwgJm9sZW4pOwotI2VuZGlmCi0gICAgaWYgKHJldCAhPSAwKSB7Ci0gICAgICAgIGN0eC0+c3RhdGUgfD0gQ0NNX1NUQVRFX19FUlJPUjsKLSAgICAgICAgcmV0dXJuIHJldDsKLSAgICB9Ci0KLSAgICByZXR1cm4gMDsKLX0KLQotaW50IG1iZWR0bHNfY2NtX3N0YXJ0cyhtYmVkdGxzX2NjbV9jb250ZXh0ICpjdHgsCi0gICAgICAgICAgICAgICAgICAgICAgIGludCBtb2RlLAotICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1bnNpZ25lZCBjaGFyICppdiwKLSAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IGl2X2xlbikKLXsKLSAgICAvKiBBbHNvIGltcGxpZXMgcSBpcyB3aXRoaW4gYm91bmRzICovCi0gICAgaWYgKGl2X2xlbiA8IDcgfHwgaXZfbGVuID4gMTMpIHsKLSAgICAgICAgcmV0dXJuIE1CRURUTFNfRVJSX0NDTV9CQURfSU5QVVQ7Ci0gICAgfQotCi0gICAgY3R4LT5tb2RlID0gbW9kZTsKLSAgICBjdHgtPnEgPSAxNiAtIDEgLSAodW5zaWduZWQgY2hhcikgaXZfbGVuOwotCi0gICAgLyoKLSAgICAgKiBQcmVwYXJlIGNvdW50ZXIgYmxvY2sgZm9yIGVuY3J5cHRpb246Ci0gICAgICogMCAgICAgICAgLi4gMCAgICAgICAgZmxhZ3MKLSAgICAgKiAxICAgICAgICAuLiBpdl9sZW4gICBub25jZSAoYWthIGl2KQotICAgICAqIGl2X2xlbisxIC4uIDE1ICAgICAgIGNvdW50ZXIgKGluaXRpYWxseSAxKQotICAgICAqCi0gICAgICogV2l0aCBmbGFncyBhcyAoYml0cyk6Ci0gICAgICogNyAuLiAzICAgMAotICAgICAqIDIgLi4gMCAgIHEgLSAxCi0gICAgICovCi0gICAgbWVtc2V0KGN0eC0+Y3RyLCAwLCAxNik7Ci0gICAgY3R4LT5jdHJbMF0gPSBjdHgtPnEgLSAxOwotICAgIG1lbWNweShjdHgtPmN0ciArIDEsIGl2LCBpdl9sZW4pOwotICAgIG1lbXNldChjdHgtPmN0ciArIDEgKyBpdl9sZW4sIDAsIGN0eC0+cSk7Ci0gICAgY3R4LT5jdHJbMTVdID0gMTsKLQotICAgIC8qCi0gICAgICogU2VlIGNjbV9jYWxjdWxhdGVfZmlyc3RfYmxvY2tfaWZfcmVhZHkoKSBmb3IgYmxvY2sgbGF5b3V0IGRlc2NyaXB0aW9uCi0gICAgICovCi0gICAgbWVtY3B5KGN0eC0+eSArIDEsIGl2LCBpdl9sZW4pOwotCi0gICAgY3R4LT5zdGF0ZSB8PSBDQ01fU1RBVEVfX1NUQVJURUQ7Ci0gICAgcmV0dXJuIGNjbV9jYWxjdWxhdGVfZmlyc3RfYmxvY2tfaWZfcmVhZHkoY3R4KTsKLX0KLQotaW50IG1iZWR0bHNfY2NtX3NldF9sZW5ndGhzKG1iZWR0bHNfY2NtX2NvbnRleHQgKmN0eCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgdG90YWxfYWRfbGVuLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBwbGFpbnRleHRfbGVuLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCB0YWdfbGVuKQotewotICAgIC8qCi0gICAgICogQ2hlY2sgbGVuZ3RoIHJlcXVpcmVtZW50czogU1A4MDAtMzhDIEEuMQotICAgICAqIEFkZGl0aW9uYWwgcmVxdWlyZW1lbnQ6IGEgPCAyXjE2IC0gMl44IHRvIHNpbXBsaWZ5IHRoZSBjb2RlLgotICAgICAqICdsZW5ndGgnIGNoZWNrZWQgbGF0ZXIgKHdoZW4gd3JpdGluZyBpdCB0byB0aGUgZmlyc3QgYmxvY2spCi0gICAgICoKLSAgICAgKiBBbHNvLCBsb29zZW4gdGhlIHJlcXVpcmVtZW50cyB0byBlbmFibGUgc3VwcG9ydCBmb3IgQ0NNKiAoSUVFRSA4MDIuMTUuNCkuCi0gICAgICovCi0gICAgaWYgKHRhZ19sZW4gPT0gMiB8fCB0YWdfbGVuID4gMTYgfHwgdGFnX2xlbiAlIDIgIT0gMCkgewotICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfQ0NNX0JBRF9JTlBVVDsKLSAgICB9Ci0KLSAgICBpZiAodG90YWxfYWRfbGVuID49IDB4RkYwMCkgewotICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfQ0NNX0JBRF9JTlBVVDsKLSAgICB9Ci0KLSAgICBjdHgtPnBsYWludGV4dF9sZW4gPSBwbGFpbnRleHRfbGVuOwotICAgIGN0eC0+YWRkX2xlbiA9IHRvdGFsX2FkX2xlbjsKLSAgICBjdHgtPnRhZ19sZW4gPSB0YWdfbGVuOwotICAgIGN0eC0+cHJvY2Vzc2VkID0gMDsKLQotICAgIGN0eC0+c3RhdGUgfD0gQ0NNX1NUQVRFX19MRU5HVEhTX1NFVDsKLSAgICByZXR1cm4gY2NtX2NhbGN1bGF0ZV9maXJzdF9ibG9ja19pZl9yZWFkeShjdHgpOwotfQotCi1pbnQgbWJlZHRsc19jY21fdXBkYXRlX2FkKG1iZWR0bHNfY2NtX2NvbnRleHQgKmN0eCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdW5zaWduZWQgY2hhciAqYWRkLAotICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgYWRkX2xlbikKLXsKLSAgICBpbnQgcmV0ID0gTUJFRFRMU19FUlJfRVJST1JfQ09SUlVQVElPTl9ERVRFQ1RFRDsKLSAgICBzaXplX3QgdXNlX2xlbiwgb2Zmc2V0OwotI2lmICFkZWZpbmVkKE1CRURUTFNfQkxPQ0tfQ0lQSEVSX0MpCi0gICAgc2l6ZV90IG9sZW47Ci0jZW5kaWYKLQotICAgIGlmIChjdHgtPnN0YXRlICYgQ0NNX1NUQVRFX19FUlJPUikgewotICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfQ0NNX0JBRF9JTlBVVDsKLSAgICB9Ci0KLSAgICBpZiAoYWRkX2xlbiA+IDApIHsKLSAgICAgICAgaWYgKGN0eC0+c3RhdGUgJiBDQ01fU1RBVEVfX0FVVEhfREFUQV9GSU5JU0hFRCkgewotICAgICAgICAgICAgcmV0dXJuIE1CRURUTFNfRVJSX0NDTV9CQURfSU5QVVQ7Ci0gICAgICAgIH0KLQotICAgICAgICBpZiAoIShjdHgtPnN0YXRlICYgQ0NNX1NUQVRFX19BVVRIX0RBVEFfU1RBUlRFRCkpIHsKLSAgICAgICAgICAgIGlmIChhZGRfbGVuID4gY3R4LT5hZGRfbGVuKSB7Ci0gICAgICAgICAgICAgICAgcmV0dXJuIE1CRURUTFNfRVJSX0NDTV9CQURfSU5QVVQ7Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIGN0eC0+eVswXSBePSAodW5zaWduZWQgY2hhcikgKChjdHgtPmFkZF9sZW4gPj4gOCkgJiAweEZGKTsKLSAgICAgICAgICAgIGN0eC0+eVsxXSBePSAodW5zaWduZWQgY2hhcikgKChjdHgtPmFkZF9sZW4pICYgMHhGRik7Ci0KLSAgICAgICAgICAgIGN0eC0+c3RhdGUgfD0gQ0NNX1NUQVRFX19BVVRIX0RBVEFfU1RBUlRFRDsKLSAgICAgICAgfSBlbHNlIGlmIChjdHgtPnByb2Nlc3NlZCArIGFkZF9sZW4gPiBjdHgtPmFkZF9sZW4pIHsKLSAgICAgICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9DQ01fQkFEX0lOUFVUOwotICAgICAgICB9Ci0KLSAgICAgICAgd2hpbGUgKGFkZF9sZW4gPiAwKSB7Ci0gICAgICAgICAgICBvZmZzZXQgPSAoY3R4LT5wcm9jZXNzZWQgKyAyKSAlIDE2OyAvKiBhY2NvdW50IGZvciB5WzBdIGFuZCB5WzFdCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiBob2xkaW5nIHRvdGFsIGF1dGggZGF0YSBsZW5ndGggKi8KLSAgICAgICAgICAgIHVzZV9sZW4gPSAxNiAtIG9mZnNldDsKLQotICAgICAgICAgICAgaWYgKHVzZV9sZW4gPiBhZGRfbGVuKSB7Ci0gICAgICAgICAgICAgICAgdXNlX2xlbiA9IGFkZF9sZW47Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIG1iZWR0bHNfeG9yKGN0eC0+eSArIG9mZnNldCwgY3R4LT55ICsgb2Zmc2V0LCBhZGQsIHVzZV9sZW4pOwotCi0gICAgICAgICAgICBjdHgtPnByb2Nlc3NlZCArPSB1c2VfbGVuOwotICAgICAgICAgICAgYWRkX2xlbiAtPSB1c2VfbGVuOwotICAgICAgICAgICAgYWRkICs9IHVzZV9sZW47Ci0KLSAgICAgICAgICAgIGlmICh1c2VfbGVuICsgb2Zmc2V0ID09IDE2IHx8IGN0eC0+cHJvY2Vzc2VkID09IGN0eC0+YWRkX2xlbikgewotI2lmIGRlZmluZWQoTUJFRFRMU19CTE9DS19DSVBIRVJfQykKLSAgICAgICAgICAgICAgICByZXQgPSBtYmVkdGxzX2Jsb2NrX2NpcGhlcl9lbmNyeXB0KCZjdHgtPmJsb2NrX2NpcGhlcl9jdHgsIGN0eC0+eSwgY3R4LT55KTsKLSNlbHNlCi0gICAgICAgICAgICAgICAgcmV0ID0gbWJlZHRsc19jaXBoZXJfdXBkYXRlKCZjdHgtPmNpcGhlcl9jdHgsIGN0eC0+eSwgMTYsIGN0eC0+eSwgJm9sZW4pOwotI2VuZGlmCi0gICAgICAgICAgICAgICAgaWYgKHJldCAhPSAwKSB7Ci0gICAgICAgICAgICAgICAgICAgIGN0eC0+c3RhdGUgfD0gQ0NNX1NUQVRFX19FUlJPUjsKLSAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJldDsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLQotICAgICAgICBpZiAoY3R4LT5wcm9jZXNzZWQgPT0gY3R4LT5hZGRfbGVuKSB7Ci0gICAgICAgICAgICBjdHgtPnN0YXRlIHw9IENDTV9TVEFURV9fQVVUSF9EQVRBX0ZJTklTSEVEOwotICAgICAgICAgICAgY3R4LT5wcm9jZXNzZWQgPSAwOyAvLyBwcmVwYXJlIGZvciBtYmVkdGxzX2NjbV91cGRhdGUoKQotICAgICAgICB9Ci0gICAgfQotCi0gICAgcmV0dXJuIDA7Ci19Ci0KLWludCBtYmVkdGxzX2NjbV91cGRhdGUobWJlZHRsc19jY21fY29udGV4dCAqY3R4LAotICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1bnNpZ25lZCBjaGFyICppbnB1dCwgc2l6ZV90IGlucHV0X2xlbiwKLSAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgY2hhciAqb3V0cHV0LCBzaXplX3Qgb3V0cHV0X3NpemUsCi0gICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCAqb3V0cHV0X2xlbikKLXsKLSAgICBpbnQgcmV0ID0gTUJFRFRMU19FUlJfRVJST1JfQ09SUlVQVElPTl9ERVRFQ1RFRDsKLSAgICB1bnNpZ25lZCBjaGFyIGk7Ci0gICAgc2l6ZV90IHVzZV9sZW4sIG9mZnNldDsKLSNpZiAhZGVmaW5lZChNQkVEVExTX0JMT0NLX0NJUEhFUl9DKQotICAgIHNpemVfdCBvbGVuOwotI2VuZGlmCi0KLSAgICB1bnNpZ25lZCBjaGFyIGxvY2FsX291dHB1dFsxNl07Ci0KLSAgICBpZiAoY3R4LT5zdGF0ZSAmIENDTV9TVEFURV9fRVJST1IpIHsKLSAgICAgICAgcmV0dXJuIE1CRURUTFNfRVJSX0NDTV9CQURfSU5QVVQ7Ci0gICAgfQotCi0gICAgLyogQ2hlY2sgYWdhaW5zdCBwbGFpbnRleHQgbGVuZ3RoIG9ubHkgaWYgcGVyZm9ybWluZyBvcGVyYXRpb24gd2l0aAotICAgICAqIGF1dGhlbnRpY2F0aW9uCi0gICAgICovCi0gICAgaWYgKGN0eC0+dGFnX2xlbiAhPSAwICYmIGN0eC0+cHJvY2Vzc2VkICsgaW5wdXRfbGVuID4gY3R4LT5wbGFpbnRleHRfbGVuKSB7Ci0gICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9DQ01fQkFEX0lOUFVUOwotICAgIH0KLQotICAgIGlmIChvdXRwdXRfc2l6ZSA8IGlucHV0X2xlbikgewotICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfQ0NNX0JBRF9JTlBVVDsKLSAgICB9Ci0gICAgKm91dHB1dF9sZW4gPSBpbnB1dF9sZW47Ci0KLSAgICByZXQgPSAwOwotCi0gICAgd2hpbGUgKGlucHV0X2xlbiA+IDApIHsKLSAgICAgICAgb2Zmc2V0ID0gY3R4LT5wcm9jZXNzZWQgJSAxNjsKLQotICAgICAgICB1c2VfbGVuID0gMTYgLSBvZmZzZXQ7Ci0KLSAgICAgICAgaWYgKHVzZV9sZW4gPiBpbnB1dF9sZW4pIHsKLSAgICAgICAgICAgIHVzZV9sZW4gPSBpbnB1dF9sZW47Ci0gICAgICAgIH0KLQotICAgICAgICBjdHgtPnByb2Nlc3NlZCArPSB1c2VfbGVuOwotCi0gICAgICAgIGlmIChjdHgtPm1vZGUgPT0gTUJFRFRMU19DQ01fRU5DUllQVCB8fCBcCi0gICAgICAgICAgICBjdHgtPm1vZGUgPT0gTUJFRFRMU19DQ01fU1RBUl9FTkNSWVBUKSB7Ci0gICAgICAgICAgICBtYmVkdGxzX3hvcihjdHgtPnkgKyBvZmZzZXQsIGN0eC0+eSArIG9mZnNldCwgaW5wdXQsIHVzZV9sZW4pOwotCi0gICAgICAgICAgICBpZiAodXNlX2xlbiArIG9mZnNldCA9PSAxNiB8fCBjdHgtPnByb2Nlc3NlZCA9PSBjdHgtPnBsYWludGV4dF9sZW4pIHsKLSNpZiBkZWZpbmVkKE1CRURUTFNfQkxPQ0tfQ0lQSEVSX0MpCi0gICAgICAgICAgICAgICAgcmV0ID0gbWJlZHRsc19ibG9ja19jaXBoZXJfZW5jcnlwdCgmY3R4LT5ibG9ja19jaXBoZXJfY3R4LCBjdHgtPnksIGN0eC0+eSk7Ci0jZWxzZQotICAgICAgICAgICAgICAgIHJldCA9IG1iZWR0bHNfY2lwaGVyX3VwZGF0ZSgmY3R4LT5jaXBoZXJfY3R4LCBjdHgtPnksIDE2LCBjdHgtPnksICZvbGVuKTsKLSNlbmRpZgotICAgICAgICAgICAgICAgIGlmIChyZXQgIT0gMCkgewotICAgICAgICAgICAgICAgICAgICBjdHgtPnN0YXRlIHw9IENDTV9TVEFURV9fRVJST1I7Ci0gICAgICAgICAgICAgICAgICAgIGdvdG8gZXhpdDsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIHJldCA9IG1iZWR0bHNfY2NtX2NyeXB0KGN0eCwgb2Zmc2V0LCB1c2VfbGVuLCBpbnB1dCwgb3V0cHV0KTsKLSAgICAgICAgICAgIGlmIChyZXQgIT0gMCkgewotICAgICAgICAgICAgICAgIGdvdG8gZXhpdDsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfQotCi0gICAgICAgIGlmIChjdHgtPm1vZGUgPT0gTUJFRFRMU19DQ01fREVDUllQVCB8fCBcCi0gICAgICAgICAgICBjdHgtPm1vZGUgPT0gTUJFRFRMU19DQ01fU1RBUl9ERUNSWVBUKSB7Ci0gICAgICAgICAgICAvKiBTaW5jZSBvdXRwdXQgbWF5IGJlIGluIHNoYXJlZCBtZW1vcnksIHdlIGNhbm5vdCBiZSBzdXJlIHRoYXQKLSAgICAgICAgICAgICAqIGl0IHdpbGwgY29udGFpbiB3aGF0IHdlIHdyb3RlIHRvIGl0LiBUaGVyZWZvcmUsIHdlIHNob3VsZCBhdm9pZCB1c2luZwotICAgICAgICAgICAgICogaXQgYXMgaW5wdXQgdG8gYW55IG9wZXJhdGlvbnMuCi0gICAgICAgICAgICAgKiBXcml0ZSBkZWNyeXB0ZWQgZGF0YSB0byBsb2NhbF9vdXRwdXQgdG8gYXZvaWQgdXNpbmcgb3V0cHV0IHZhcmlhYmxlIGFzCi0gICAgICAgICAgICAgKiBpbnB1dCBpbiB0aGUgWE9SIG9wZXJhdGlvbiBmb3IgWS4KLSAgICAgICAgICAgICAqLwotICAgICAgICAgICAgcmV0ID0gbWJlZHRsc19jY21fY3J5cHQoY3R4LCBvZmZzZXQsIHVzZV9sZW4sIGlucHV0LCBsb2NhbF9vdXRwdXQpOwotICAgICAgICAgICAgaWYgKHJldCAhPSAwKSB7Ci0gICAgICAgICAgICAgICAgZ290byBleGl0OwotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICBtYmVkdGxzX3hvcihjdHgtPnkgKyBvZmZzZXQsIGN0eC0+eSArIG9mZnNldCwgbG9jYWxfb3V0cHV0LCB1c2VfbGVuKTsKLQotICAgICAgICAgICAgbWVtY3B5KG91dHB1dCwgbG9jYWxfb3V0cHV0LCB1c2VfbGVuKTsKLQotICAgICAgICAgICAgaWYgKHVzZV9sZW4gKyBvZmZzZXQgPT0gMTYgfHwgY3R4LT5wcm9jZXNzZWQgPT0gY3R4LT5wbGFpbnRleHRfbGVuKSB7Ci0jaWYgZGVmaW5lZChNQkVEVExTX0JMT0NLX0NJUEhFUl9DKQotICAgICAgICAgICAgICAgIHJldCA9IG1iZWR0bHNfYmxvY2tfY2lwaGVyX2VuY3J5cHQoJmN0eC0+YmxvY2tfY2lwaGVyX2N0eCwgY3R4LT55LCBjdHgtPnkpOwotI2Vsc2UKLSAgICAgICAgICAgICAgICByZXQgPSBtYmVkdGxzX2NpcGhlcl91cGRhdGUoJmN0eC0+Y2lwaGVyX2N0eCwgY3R4LT55LCAxNiwgY3R4LT55LCAmb2xlbik7Ci0jZW5kaWYKLSAgICAgICAgICAgICAgICBpZiAocmV0ICE9IDApIHsKLSAgICAgICAgICAgICAgICAgICAgY3R4LT5zdGF0ZSB8PSBDQ01fU1RBVEVfX0VSUk9SOwotICAgICAgICAgICAgICAgICAgICBnb3RvIGV4aXQ7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotICAgICAgICB9Ci0KLSAgICAgICAgaWYgKHVzZV9sZW4gKyBvZmZzZXQgPT0gMTYgfHwgY3R4LT5wcm9jZXNzZWQgPT0gY3R4LT5wbGFpbnRleHRfbGVuKSB7Ci0gICAgICAgICAgICBmb3IgKGkgPSAwOyBpIDwgY3R4LT5xOyBpKyspIHsKLSAgICAgICAgICAgICAgICBpZiAoKysoY3R4LT5jdHIpWzE1LWldICE9IDApIHsKLSAgICAgICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotICAgICAgICB9Ci0KLSAgICAgICAgaW5wdXRfbGVuIC09IHVzZV9sZW47Ci0gICAgICAgIGlucHV0ICs9IHVzZV9sZW47Ci0gICAgICAgIG91dHB1dCArPSB1c2VfbGVuOwotICAgIH0KLQotZXhpdDoKLSAgICBtYmVkdGxzX3BsYXRmb3JtX3plcm9pemUobG9jYWxfb3V0cHV0LCAxNik7Ci0KLSAgICByZXR1cm4gcmV0OwotfQotCi1pbnQgbWJlZHRsc19jY21fZmluaXNoKG1iZWR0bHNfY2NtX2NvbnRleHQgKmN0eCwKLSAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgY2hhciAqdGFnLCBzaXplX3QgdGFnX2xlbikKLXsKLSAgICBpbnQgcmV0ID0gTUJFRFRMU19FUlJfRVJST1JfQ09SUlVQVElPTl9ERVRFQ1RFRDsKLSAgICB1bnNpZ25lZCBjaGFyIGk7Ci0KLSAgICBpZiAoY3R4LT5zdGF0ZSAmIENDTV9TVEFURV9fRVJST1IpIHsKLSAgICAgICAgcmV0dXJuIE1CRURUTFNfRVJSX0VSUk9SX0NPUlJVUFRJT05fREVURUNURUQ7Ci0gICAgfQotCi0gICAgaWYgKGN0eC0+YWRkX2xlbiA+IDAgJiYgIShjdHgtPnN0YXRlICYgQ0NNX1NUQVRFX19BVVRIX0RBVEFfRklOSVNIRUQpKSB7Ci0gICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9DQ01fQkFEX0lOUFVUOwotICAgIH0KLQotICAgIGlmIChjdHgtPnBsYWludGV4dF9sZW4gPiAwICYmIGN0eC0+cHJvY2Vzc2VkICE9IGN0eC0+cGxhaW50ZXh0X2xlbikgewotICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfQ0NNX0JBRF9JTlBVVDsKLSAgICB9Ci0KLSAgICAvKgotICAgICAqIEF1dGhlbnRpY2F0aW9uOiByZXNldCBjb3VudGVyIGFuZCBjcnlwdC9tYXNrIGludGVybmFsIHRhZwotICAgICAqLwotICAgIGZvciAoaSA9IDA7IGkgPCBjdHgtPnE7IGkrKykgewotICAgICAgICBjdHgtPmN0clsxNS1pXSA9IDA7Ci0gICAgfQotCi0gICAgcmV0ID0gbWJlZHRsc19jY21fY3J5cHQoY3R4LCAwLCAxNiwgY3R4LT55LCBjdHgtPnkpOwotICAgIGlmIChyZXQgIT0gMCkgewotICAgICAgICByZXR1cm4gcmV0OwotICAgIH0KLSAgICBpZiAodGFnICE9IE5VTEwpIHsKLSAgICAgICAgbWVtY3B5KHRhZywgY3R4LT55LCB0YWdfbGVuKTsKLSAgICB9Ci0gICAgbWJlZHRsc19jY21fY2xlYXJfc3RhdGUoY3R4KTsKLQotICAgIHJldHVybiAwOwotfQotCi0vKgotICogQXV0aGVudGljYXRlZCBlbmNyeXB0aW9uIG9yIGRlY3J5cHRpb24KLSAqLwotc3RhdGljIGludCBjY21fYXV0aF9jcnlwdChtYmVkdGxzX2NjbV9jb250ZXh0ICpjdHgsIGludCBtb2RlLCBzaXplX3QgbGVuZ3RoLAotICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1bnNpZ25lZCBjaGFyICppdiwgc2l6ZV90IGl2X2xlbiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdW5zaWduZWQgY2hhciAqYWRkLCBzaXplX3QgYWRkX2xlbiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdW5zaWduZWQgY2hhciAqaW5wdXQsIHVuc2lnbmVkIGNoYXIgKm91dHB1dCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgY2hhciAqdGFnLCBzaXplX3QgdGFnX2xlbikKLXsKLSAgICBpbnQgcmV0ID0gTUJFRFRMU19FUlJfRVJST1JfQ09SUlVQVElPTl9ERVRFQ1RFRDsKLSAgICBzaXplX3Qgb2xlbjsKLQotICAgIGlmICgocmV0ID0gbWJlZHRsc19jY21fc3RhcnRzKGN0eCwgbW9kZSwgaXYsIGl2X2xlbikpICE9IDApIHsKLSAgICAgICAgcmV0dXJuIHJldDsKLSAgICB9Ci0KLSAgICBpZiAoKHJldCA9IG1iZWR0bHNfY2NtX3NldF9sZW5ndGhzKGN0eCwgYWRkX2xlbiwgbGVuZ3RoLCB0YWdfbGVuKSkgIT0gMCkgewotICAgICAgICByZXR1cm4gcmV0OwotICAgIH0KLQotICAgIGlmICgocmV0ID0gbWJlZHRsc19jY21fdXBkYXRlX2FkKGN0eCwgYWRkLCBhZGRfbGVuKSkgIT0gMCkgewotICAgICAgICByZXR1cm4gcmV0OwotICAgIH0KLQotICAgIGlmICgocmV0ID0gbWJlZHRsc19jY21fdXBkYXRlKGN0eCwgaW5wdXQsIGxlbmd0aCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvdXRwdXQsIGxlbmd0aCwgJm9sZW4pKSAhPSAwKSB7Ci0gICAgICAgIHJldHVybiByZXQ7Ci0gICAgfQotCi0gICAgaWYgKChyZXQgPSBtYmVkdGxzX2NjbV9maW5pc2goY3R4LCB0YWcsIHRhZ19sZW4pKSAhPSAwKSB7Ci0gICAgICAgIHJldHVybiByZXQ7Ci0gICAgfQotCi0gICAgcmV0dXJuIDA7Ci19Ci0KLS8qCi0gKiBBdXRoZW50aWNhdGVkIGVuY3J5cHRpb24KLSAqLwotaW50IG1iZWR0bHNfY2NtX3N0YXJfZW5jcnlwdF9hbmRfdGFnKG1iZWR0bHNfY2NtX2NvbnRleHQgKmN0eCwgc2l6ZV90IGxlbmd0aCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1bnNpZ25lZCBjaGFyICppdiwgc2l6ZV90IGl2X2xlbiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1bnNpZ25lZCBjaGFyICphZGQsIHNpemVfdCBhZGRfbGVuLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgKmlucHV0LCB1bnNpZ25lZCBjaGFyICpvdXRwdXQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgY2hhciAqdGFnLCBzaXplX3QgdGFnX2xlbikKLXsKLSAgICByZXR1cm4gY2NtX2F1dGhfY3J5cHQoY3R4LCBNQkVEVExTX0NDTV9TVEFSX0VOQ1JZUFQsIGxlbmd0aCwgaXYsIGl2X2xlbiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgYWRkLCBhZGRfbGVuLCBpbnB1dCwgb3V0cHV0LCB0YWcsIHRhZ19sZW4pOwotfQotCi1pbnQgbWJlZHRsc19jY21fZW5jcnlwdF9hbmRfdGFnKG1iZWR0bHNfY2NtX2NvbnRleHQgKmN0eCwgc2l6ZV90IGxlbmd0aCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdW5zaWduZWQgY2hhciAqaXYsIHNpemVfdCBpdl9sZW4sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgKmFkZCwgc2l6ZV90IGFkZF9sZW4sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgKmlucHV0LCB1bnNpZ25lZCBjaGFyICpvdXRwdXQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGNoYXIgKnRhZywgc2l6ZV90IHRhZ19sZW4pCi17Ci0gICAgcmV0dXJuIGNjbV9hdXRoX2NyeXB0KGN0eCwgTUJFRFRMU19DQ01fRU5DUllQVCwgbGVuZ3RoLCBpdiwgaXZfbGVuLAotICAgICAgICAgICAgICAgICAgICAgICAgICBhZGQsIGFkZF9sZW4sIGlucHV0LCBvdXRwdXQsIHRhZywgdGFnX2xlbik7Ci19Ci0KLS8qCi0gKiBBdXRoZW50aWNhdGVkIGRlY3J5cHRpb24KLSAqLwotc3RhdGljIGludCBtYmVkdGxzX2NjbV9jb21wYXJlX3RhZ3MoY29uc3QgdW5zaWduZWQgY2hhciAqdGFnMSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgKnRhZzIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgdGFnX2xlbikKLXsKLSAgICAvKiBDaGVjayB0YWcgaW4gImNvbnN0YW50LXRpbWUiICovCi0gICAgaW50IGRpZmYgPSBtYmVkdGxzX2N0X21lbWNtcCh0YWcxLCB0YWcyLCB0YWdfbGVuKTsKLQotICAgIGlmIChkaWZmICE9IDApIHsKLSAgICAgICAgcmV0dXJuIE1CRURUTFNfRVJSX0NDTV9BVVRIX0ZBSUxFRDsKLSAgICB9Ci0KLSAgICByZXR1cm4gMDsKLX0KLQotc3RhdGljIGludCBjY21fYXV0aF9kZWNyeXB0KG1iZWR0bHNfY2NtX2NvbnRleHQgKmN0eCwgaW50IG1vZGUsIHNpemVfdCBsZW5ndGgsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdW5zaWduZWQgY2hhciAqaXYsIHNpemVfdCBpdl9sZW4sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdW5zaWduZWQgY2hhciAqYWRkLCBzaXplX3QgYWRkX2xlbiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1bnNpZ25lZCBjaGFyICppbnB1dCwgdW5zaWduZWQgY2hhciAqb3V0cHV0LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgKnRhZywgc2l6ZV90IHRhZ19sZW4pCi17Ci0gICAgaW50IHJldCA9IE1CRURUTFNfRVJSX0VSUk9SX0NPUlJVUFRJT05fREVURUNURUQ7Ci0gICAgdW5zaWduZWQgY2hhciBjaGVja190YWdbMTZdOwotCi0gICAgaWYgKChyZXQgPSBjY21fYXV0aF9jcnlwdChjdHgsIG1vZGUsIGxlbmd0aCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGl2LCBpdl9sZW4sIGFkZCwgYWRkX2xlbiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlucHV0LCBvdXRwdXQsIGNoZWNrX3RhZywgdGFnX2xlbikpICE9IDApIHsKLSAgICAgICAgcmV0dXJuIHJldDsKLSAgICB9Ci0KLSAgICBpZiAoKHJldCA9IG1iZWR0bHNfY2NtX2NvbXBhcmVfdGFncyh0YWcsIGNoZWNrX3RhZywgdGFnX2xlbikpICE9IDApIHsKLSAgICAgICAgbWJlZHRsc19wbGF0Zm9ybV96ZXJvaXplKG91dHB1dCwgbGVuZ3RoKTsKLSAgICAgICAgcmV0dXJuIHJldDsKLSAgICB9Ci0KLSAgICByZXR1cm4gMDsKLX0KLQotaW50IG1iZWR0bHNfY2NtX3N0YXJfYXV0aF9kZWNyeXB0KG1iZWR0bHNfY2NtX2NvbnRleHQgKmN0eCwgc2l6ZV90IGxlbmd0aCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1bnNpZ25lZCBjaGFyICppdiwgc2l6ZV90IGl2X2xlbiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1bnNpZ25lZCBjaGFyICphZGQsIHNpemVfdCBhZGRfbGVuLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgKmlucHV0LCB1bnNpZ25lZCBjaGFyICpvdXRwdXQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdW5zaWduZWQgY2hhciAqdGFnLCBzaXplX3QgdGFnX2xlbikKLXsKLSAgICByZXR1cm4gY2NtX2F1dGhfZGVjcnlwdChjdHgsIE1CRURUTFNfQ0NNX1NUQVJfREVDUllQVCwgbGVuZ3RoLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGl2LCBpdl9sZW4sIGFkZCwgYWRkX2xlbiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnB1dCwgb3V0cHV0LCB0YWcsIHRhZ19sZW4pOwotfQotCi1pbnQgbWJlZHRsc19jY21fYXV0aF9kZWNyeXB0KG1iZWR0bHNfY2NtX2NvbnRleHQgKmN0eCwgc2l6ZV90IGxlbmd0aCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdW5zaWduZWQgY2hhciAqaXYsIHNpemVfdCBpdl9sZW4sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgKmFkZCwgc2l6ZV90IGFkZF9sZW4sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgKmlucHV0LCB1bnNpZ25lZCBjaGFyICpvdXRwdXQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgKnRhZywgc2l6ZV90IHRhZ19sZW4pCi17Ci0gICAgcmV0dXJuIGNjbV9hdXRoX2RlY3J5cHQoY3R4LCBNQkVEVExTX0NDTV9ERUNSWVBULCBsZW5ndGgsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgaXYsIGl2X2xlbiwgYWRkLCBhZGRfbGVuLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlucHV0LCBvdXRwdXQsIHRhZywgdGFnX2xlbik7Ci19Ci0jZW5kaWYgLyogIU1CRURUTFNfQ0NNX0FMVCAqLwotCi0jaWYgZGVmaW5lZChNQkVEVExTX1NFTEZfVEVTVCkgJiYgZGVmaW5lZChNQkVEVExTX0NDTV9HQ01fQ0FOX0FFUykKLS8qCi0gKiBFeGFtcGxlcyAxIHRvIDMgZnJvbSBTUDgwMC0zOEMgQXBwZW5kaXggQwotICovCi0KLSNkZWZpbmUgTkJfVEVTVFMgMwotI2RlZmluZSBDQ01fU0VMRlRFU1RfUFRfTUFYX0xFTiAyNAotI2RlZmluZSBDQ01fU0VMRlRFU1RfQ1RfTUFYX0xFTiAzMgotLyoKLSAqIFRoZSBkYXRhIGlzIHRoZSBzYW1lIGZvciBhbGwgdGVzdHMsIG9ubHkgdGhlIHVzZWQgbGVuZ3RoIGNoYW5nZXMKLSAqLwotc3RhdGljIGNvbnN0IHVuc2lnbmVkIGNoYXIga2V5X3Rlc3RfZGF0YVtdID0gewotICAgIDB4NDAsIDB4NDEsIDB4NDIsIDB4NDMsIDB4NDQsIDB4NDUsIDB4NDYsIDB4NDcsCi0gICAgMHg0OCwgMHg0OSwgMHg0YSwgMHg0YiwgMHg0YywgMHg0ZCwgMHg0ZSwgMHg0ZgotfTsKLQotc3RhdGljIGNvbnN0IHVuc2lnbmVkIGNoYXIgaXZfdGVzdF9kYXRhW10gPSB7Ci0gICAgMHgxMCwgMHgxMSwgMHgxMiwgMHgxMywgMHgxNCwgMHgxNSwgMHgxNiwgMHgxNywKLSAgICAweDE4LCAweDE5LCAweDFhLCAweDFiCi19OwotCi1zdGF0aWMgY29uc3QgdW5zaWduZWQgY2hhciBhZF90ZXN0X2RhdGFbXSA9IHsKLSAgICAweDAwLCAweDAxLCAweDAyLCAweDAzLCAweDA0LCAweDA1LCAweDA2LCAweDA3LAotICAgIDB4MDgsIDB4MDksIDB4MGEsIDB4MGIsIDB4MGMsIDB4MGQsIDB4MGUsIDB4MGYsCi0gICAgMHgxMCwgMHgxMSwgMHgxMiwgMHgxMwotfTsKLQotc3RhdGljIGNvbnN0IHVuc2lnbmVkIGNoYXIgbXNnX3Rlc3RfZGF0YVtDQ01fU0VMRlRFU1RfUFRfTUFYX0xFTl0gPSB7Ci0gICAgMHgyMCwgMHgyMSwgMHgyMiwgMHgyMywgMHgyNCwgMHgyNSwgMHgyNiwgMHgyNywKLSAgICAweDI4LCAweDI5LCAweDJhLCAweDJiLCAweDJjLCAweDJkLCAweDJlLCAweDJmLAotICAgIDB4MzAsIDB4MzEsIDB4MzIsIDB4MzMsIDB4MzQsIDB4MzUsIDB4MzYsIDB4MzcsCi19OwotCi1zdGF0aWMgY29uc3Qgc2l6ZV90IGl2X2xlbl90ZXN0X2RhdGFbTkJfVEVTVFNdID0geyA3LCA4LCAgMTIgfTsKLXN0YXRpYyBjb25zdCBzaXplX3QgYWRkX2xlbl90ZXN0X2RhdGFbTkJfVEVTVFNdID0geyA4LCAxNiwgMjAgfTsKLXN0YXRpYyBjb25zdCBzaXplX3QgbXNnX2xlbl90ZXN0X2RhdGFbTkJfVEVTVFNdID0geyA0LCAxNiwgMjQgfTsKLXN0YXRpYyBjb25zdCBzaXplX3QgdGFnX2xlbl90ZXN0X2RhdGFbTkJfVEVTVFNdID0geyA0LCA2LCAgOCAgfTsKLQotc3RhdGljIGNvbnN0IHVuc2lnbmVkIGNoYXIgcmVzX3Rlc3RfZGF0YVtOQl9URVNUU11bQ0NNX1NFTEZURVNUX0NUX01BWF9MRU5dID0gewotICAgIHsgICAweDcxLCAweDYyLCAweDAxLCAweDViLCAweDRkLCAweGFjLCAweDI1LCAweDVkIH0sCi0gICAgeyAgIDB4ZDIsIDB4YTEsIDB4ZjAsIDB4ZTAsIDB4NTEsIDB4ZWEsIDB4NWYsIDB4NjIsCi0gICAgICAgIDB4MDgsIDB4MWEsIDB4NzcsIDB4OTIsIDB4MDcsIDB4M2QsIDB4NTksIDB4M2QsCi0gICAgICAgIDB4MWYsIDB4YzYsIDB4NGYsIDB4YmYsIDB4YWMsIDB4Y2QgfSwKLSAgICB7ICAgMHhlMywgMHhiMiwgMHgwMSwgMHhhOSwgMHhmNSwgMHhiNywgMHgxYSwgMHg3YSwKLSAgICAgICAgMHg5YiwgMHgxYywgMHhlYSwgMHhlYywgMHhjZCwgMHg5NywgMHhlNywgMHgwYiwKLSAgICAgICAgMHg2MSwgMHg3NiwgMHhhYSwgMHhkOSwgMHhhNCwgMHg0MiwgMHg4YSwgMHhhNSwKLSAgICAgICAgMHg0OCwgMHg0MywgMHg5MiwgMHhmYiwgMHhjMSwgMHhiMCwgMHg5OSwgMHg1MSB9Ci19OwotCi1pbnQgbWJlZHRsc19jY21fc2VsZl90ZXN0KGludCB2ZXJib3NlKQotewotICAgIG1iZWR0bHNfY2NtX2NvbnRleHQgY3R4OwotICAgIC8qCi0gICAgICogU29tZSBoYXJkd2FyZSBhY2NlbGVyYXRvcnMgcmVxdWlyZSB0aGUgaW5wdXQgYW5kIG91dHB1dCBidWZmZXJzCi0gICAgICogd291bGQgYmUgaW4gUkFNLCBiZWNhdXNlIHRoZSBmbGFzaCBpcyBub3QgYWNjZXNzaWJsZS4KLSAgICAgKiBVc2UgYnVmZmVycyBvbiB0aGUgc3RhY2sgdG8gaG9sZCB0aGUgdGVzdCB2ZWN0b3JzIGRhdGEuCi0gICAgICovCi0gICAgdW5zaWduZWQgY2hhciBwbGFpbnRleHRbQ0NNX1NFTEZURVNUX1BUX01BWF9MRU5dOwotICAgIHVuc2lnbmVkIGNoYXIgY2lwaGVydGV4dFtDQ01fU0VMRlRFU1RfQ1RfTUFYX0xFTl07Ci0gICAgc2l6ZV90IGk7Ci0gICAgaW50IHJldCA9IE1CRURUTFNfRVJSX0VSUk9SX0NPUlJVUFRJT05fREVURUNURUQ7Ci0KLSAgICBtYmVkdGxzX2NjbV9pbml0KCZjdHgpOwotCi0gICAgaWYgKG1iZWR0bHNfY2NtX3NldGtleSgmY3R4LCBNQkVEVExTX0NJUEhFUl9JRF9BRVMsIGtleV90ZXN0X2RhdGEsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICA4ICogc2l6ZW9mKGtleV90ZXN0X2RhdGEpKSAhPSAwKSB7Ci0gICAgICAgIGlmICh2ZXJib3NlICE9IDApIHsKLSAgICAgICAgICAgIG1iZWR0bHNfcHJpbnRmKCIgIENDTTogc2V0dXAgZmFpbGVkIik7Ci0gICAgICAgIH0KLQotICAgICAgICByZXR1cm4gMTsKLSAgICB9Ci0KLSAgICBmb3IgKGkgPSAwOyBpIDwgTkJfVEVTVFM7IGkrKykgewotICAgICAgICBpZiAodmVyYm9zZSAhPSAwKSB7Ci0gICAgICAgICAgICBtYmVkdGxzX3ByaW50ZigiICBDQ00tQUVTICMldTogIiwgKHVuc2lnbmVkIGludCkgaSArIDEpOwotICAgICAgICB9Ci0KLSAgICAgICAgbWVtc2V0KHBsYWludGV4dCwgMCwgQ0NNX1NFTEZURVNUX1BUX01BWF9MRU4pOwotICAgICAgICBtZW1zZXQoY2lwaGVydGV4dCwgMCwgQ0NNX1NFTEZURVNUX0NUX01BWF9MRU4pOwotICAgICAgICBtZW1jcHkocGxhaW50ZXh0LCBtc2dfdGVzdF9kYXRhLCBtc2dfbGVuX3Rlc3RfZGF0YVtpXSk7Ci0KLSAgICAgICAgcmV0ID0gbWJlZHRsc19jY21fZW5jcnlwdF9hbmRfdGFnKCZjdHgsIG1zZ19sZW5fdGVzdF9kYXRhW2ldLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXZfdGVzdF9kYXRhLCBpdl9sZW5fdGVzdF9kYXRhW2ldLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWRfdGVzdF9kYXRhLCBhZGRfbGVuX3Rlc3RfZGF0YVtpXSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBsYWludGV4dCwgY2lwaGVydGV4dCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNpcGhlcnRleHQgKyBtc2dfbGVuX3Rlc3RfZGF0YVtpXSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhZ19sZW5fdGVzdF9kYXRhW2ldKTsKLQotICAgICAgICBpZiAocmV0ICE9IDAgfHwKLSAgICAgICAgICAgIG1lbWNtcChjaXBoZXJ0ZXh0LCByZXNfdGVzdF9kYXRhW2ldLAotICAgICAgICAgICAgICAgICAgIG1zZ19sZW5fdGVzdF9kYXRhW2ldICsgdGFnX2xlbl90ZXN0X2RhdGFbaV0pICE9IDApIHsKLSAgICAgICAgICAgIGlmICh2ZXJib3NlICE9IDApIHsKLSAgICAgICAgICAgICAgICBtYmVkdGxzX3ByaW50ZigiZmFpbGVkXG4iKTsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgcmV0dXJuIDE7Ci0gICAgICAgIH0KLSAgICAgICAgbWVtc2V0KHBsYWludGV4dCwgMCwgQ0NNX1NFTEZURVNUX1BUX01BWF9MRU4pOwotCi0gICAgICAgIHJldCA9IG1iZWR0bHNfY2NtX2F1dGhfZGVjcnlwdCgmY3R4LCBtc2dfbGVuX3Rlc3RfZGF0YVtpXSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGl2X3Rlc3RfZGF0YSwgaXZfbGVuX3Rlc3RfZGF0YVtpXSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFkX3Rlc3RfZGF0YSwgYWRkX2xlbl90ZXN0X2RhdGFbaV0sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaXBoZXJ0ZXh0LCBwbGFpbnRleHQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaXBoZXJ0ZXh0ICsgbXNnX2xlbl90ZXN0X2RhdGFbaV0sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YWdfbGVuX3Rlc3RfZGF0YVtpXSk7Ci0KLSAgICAgICAgaWYgKHJldCAhPSAwIHx8Ci0gICAgICAgICAgICBtZW1jbXAocGxhaW50ZXh0LCBtc2dfdGVzdF9kYXRhLCBtc2dfbGVuX3Rlc3RfZGF0YVtpXSkgIT0gMCkgewotICAgICAgICAgICAgaWYgKHZlcmJvc2UgIT0gMCkgewotICAgICAgICAgICAgICAgIG1iZWR0bHNfcHJpbnRmKCJmYWlsZWRcbiIpOwotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICByZXR1cm4gMTsKLSAgICAgICAgfQotCi0gICAgICAgIGlmICh2ZXJib3NlICE9IDApIHsKLSAgICAgICAgICAgIG1iZWR0bHNfcHJpbnRmKCJwYXNzZWRcbiIpOwotICAgICAgICB9Ci0gICAgfQotCi0gICAgbWJlZHRsc19jY21fZnJlZSgmY3R4KTsKLQotICAgIGlmICh2ZXJib3NlICE9IDApIHsKLSAgICAgICAgbWJlZHRsc19wcmludGYoIlxuIik7Ci0gICAgfQotCi0gICAgcmV0dXJuIDA7Ci19Ci0KLSNlbmRpZiAvKiBNQkVEVExTX1NFTEZfVEVTVCAmJiBNQkVEVExTX0FFU19DICovCi0KLSNlbmRpZiAvKiBNQkVEVExTX0NDTV9DICovCmRpZmYgLS1naXQgYS9saWJyYXJ5L2NoYWNoYTIwLmMgYi9saWJyYXJ5L2NoYWNoYTIwLmMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGFjYWFlNWIuLjAwMDAwMDAKLS0tIGEvbGlicmFyeS9jaGFjaGEyMC5jCisrKyAvZGV2L251bGwKQEAgLTEsNDk3ICswLDAgQEAKLS8qKgotICogXGZpbGUgY2hhY2hhMjAuYwotICoKLSAqIFxicmllZiBDaGFDaGEyMCBjaXBoZXIuCi0gKgotICogXGF1dGhvciBEYW5pZWwgS2luZyA8ZGFtYWtpLmdoQGdtYWlsLmNvbT4KLSAqCi0gKiAgQ29weXJpZ2h0IFRoZSBNYmVkIFRMUyBDb250cmlidXRvcnMKLSAqICBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMCBPUiBHUEwtMi4wLW9yLWxhdGVyCi0gKi8KLQotI2luY2x1ZGUgImNvbW1vbi5oIgotCi0jaWYgZGVmaW5lZChNQkVEVExTX0NIQUNIQTIwX0MpCi0KLSNpbmNsdWRlICJtYmVkdGxzL2NoYWNoYTIwLmgiCi0jaW5jbHVkZSAibWJlZHRscy9wbGF0Zm9ybV91dGlsLmgiCi0jaW5jbHVkZSAibWJlZHRscy9lcnJvci5oIgotCi0jaW5jbHVkZSA8c3RkZGVmLmg+Ci0jaW5jbHVkZSA8c3RyaW5nLmg+Ci0KLSNpbmNsdWRlICJtYmVkdGxzL3BsYXRmb3JtLmgiCi0KLSNpZiAhZGVmaW5lZChNQkVEVExTX0NIQUNIQTIwX0FMVCkKLQotI2RlZmluZSBST1RMMzIodmFsdWUsIGFtb3VudCkgXAotICAgICgodWludDMyX3QpICgodmFsdWUpIDw8IChhbW91bnQpKSB8ICgodmFsdWUpID4+ICgzMiAtIChhbW91bnQpKSkpCi0KLSNkZWZpbmUgQ0hBQ0hBMjBfQ1RSX0lOREVYICgxMlUpCi0KLSNkZWZpbmUgQ0hBQ0hBMjBfQkxPQ0tfU0laRV9CWVRFUyAoNFUgKiAxNlUpCi0KLS8qKgotICogXGJyaWVmICAgICAgICAgICBDaGFDaGEyMCBxdWFydGVyIHJvdW5kIG9wZXJhdGlvbi4KLSAqCi0gKiAgICAgICAgICAgICAgICAgIFRoZSBxdWFydGVyIHJvdW5kIGlzIGRlZmluZWQgYXMgZm9sbG93cyAoZnJvbSBSRkMgNzUzOSk6Ci0gKiAgICAgICAgICAgICAgICAgICAgICAxLiAgYSArPSBiOyBkIF49IGE7IGQgPDw8PSAxNjsKLSAqICAgICAgICAgICAgICAgICAgICAgIDIuICBjICs9IGQ7IGIgXj0gYzsgYiA8PDw9IDEyOwotICogICAgICAgICAgICAgICAgICAgICAgMy4gIGEgKz0gYjsgZCBePSBhOyBkIDw8PD0gODsKLSAqICAgICAgICAgICAgICAgICAgICAgIDQuICBjICs9IGQ7IGIgXj0gYzsgYiA8PDw9IDc7Ci0gKgotICogXHBhcmFtIHN0YXRlICAgICBDaGFDaGEyMCBzdGF0ZSB0byBtb2RpZnkuCi0gKiBccGFyYW0gYSAgICAgICAgIFRoZSBpbmRleCBvZiAnYScgaW4gdGhlIHN0YXRlLgotICogXHBhcmFtIGIgICAgICAgICBUaGUgaW5kZXggb2YgJ2InIGluIHRoZSBzdGF0ZS4KLSAqIFxwYXJhbSBjICAgICAgICAgVGhlIGluZGV4IG9mICdjJyBpbiB0aGUgc3RhdGUuCi0gKiBccGFyYW0gZCAgICAgICAgIFRoZSBpbmRleCBvZiAnZCcgaW4gdGhlIHN0YXRlLgotICovCi1zdGF0aWMgaW5saW5lIHZvaWQgY2hhY2hhMjBfcXVhcnRlcl9yb3VuZCh1aW50MzJfdCBzdGF0ZVsxNl0sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgYSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBiLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IGMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgZCkKLXsKLSAgICAvKiBhICs9IGI7IGQgXj0gYTsgZCA8PDw9IDE2OyAqLwotICAgIHN0YXRlW2FdICs9IHN0YXRlW2JdOwotICAgIHN0YXRlW2RdIF49IHN0YXRlW2FdOwotICAgIHN0YXRlW2RdID0gUk9UTDMyKHN0YXRlW2RdLCAxNik7Ci0KLSAgICAvKiBjICs9IGQ7IGIgXj0gYzsgYiA8PDw9IDEyICovCi0gICAgc3RhdGVbY10gKz0gc3RhdGVbZF07Ci0gICAgc3RhdGVbYl0gXj0gc3RhdGVbY107Ci0gICAgc3RhdGVbYl0gPSBST1RMMzIoc3RhdGVbYl0sIDEyKTsKLQotICAgIC8qIGEgKz0gYjsgZCBePSBhOyBkIDw8PD0gODsgKi8KLSAgICBzdGF0ZVthXSArPSBzdGF0ZVtiXTsKLSAgICBzdGF0ZVtkXSBePSBzdGF0ZVthXTsKLSAgICBzdGF0ZVtkXSA9IFJPVEwzMihzdGF0ZVtkXSwgOCk7Ci0KLSAgICAvKiBjICs9IGQ7IGIgXj0gYzsgYiA8PDw9IDc7ICovCi0gICAgc3RhdGVbY10gKz0gc3RhdGVbZF07Ci0gICAgc3RhdGVbYl0gXj0gc3RhdGVbY107Ci0gICAgc3RhdGVbYl0gPSBST1RMMzIoc3RhdGVbYl0sIDcpOwotfQotCi0vKioKLSAqIFxicmllZiAgICAgICAgICAgUGVyZm9ybSB0aGUgQ2hhQ2hhMjAgaW5uZXIgYmxvY2sgb3BlcmF0aW9uLgotICoKLSAqICAgICAgICAgICAgICAgICAgVGhpcyBmdW5jdGlvbiBwZXJmb3JtcyB0d28gcm91bmRzOiB0aGUgY29sdW1uIHJvdW5kIGFuZCB0aGUKLSAqICAgICAgICAgICAgICAgICAgZGlhZ29uYWwgcm91bmQuCi0gKgotICogXHBhcmFtIHN0YXRlICAgICBUaGUgQ2hhQ2hhMjAgc3RhdGUgdG8gdXBkYXRlLgotICovCi1zdGF0aWMgdm9pZCBjaGFjaGEyMF9pbm5lcl9ibG9jayh1aW50MzJfdCBzdGF0ZVsxNl0pCi17Ci0gICAgY2hhY2hhMjBfcXVhcnRlcl9yb3VuZChzdGF0ZSwgMCwgNCwgOCwgIDEyKTsKLSAgICBjaGFjaGEyMF9xdWFydGVyX3JvdW5kKHN0YXRlLCAxLCA1LCA5LCAgMTMpOwotICAgIGNoYWNoYTIwX3F1YXJ0ZXJfcm91bmQoc3RhdGUsIDIsIDYsIDEwLCAxNCk7Ci0gICAgY2hhY2hhMjBfcXVhcnRlcl9yb3VuZChzdGF0ZSwgMywgNywgMTEsIDE1KTsKLQotICAgIGNoYWNoYTIwX3F1YXJ0ZXJfcm91bmQoc3RhdGUsIDAsIDUsIDEwLCAxNSk7Ci0gICAgY2hhY2hhMjBfcXVhcnRlcl9yb3VuZChzdGF0ZSwgMSwgNiwgMTEsIDEyKTsKLSAgICBjaGFjaGEyMF9xdWFydGVyX3JvdW5kKHN0YXRlLCAyLCA3LCA4LCAgMTMpOwotICAgIGNoYWNoYTIwX3F1YXJ0ZXJfcm91bmQoc3RhdGUsIDMsIDQsIDksICAxNCk7Ci19Ci0KLS8qKgotICogXGJyaWVmICAgICAgICAgICAgICAgR2VuZXJhdGVzIGEga2V5c3RyZWFtIGJsb2NrLgotICoKLSAqIFxwYXJhbSBpbml0aWFsX3N0YXRlIFRoZSBpbml0aWFsIENoYUNoYTIwIHN0YXRlIChrZXksIG5vbmNlLCBjb3VudGVyKS4KLSAqIFxwYXJhbSBrZXlzdHJlYW0gICAgIEdlbmVyYXRlZCBrZXlzdHJlYW0gYnl0ZXMgYXJlIHdyaXR0ZW4gdG8gdGhpcyBidWZmZXIuCi0gKi8KLXN0YXRpYyB2b2lkIGNoYWNoYTIwX2Jsb2NrKGNvbnN0IHVpbnQzMl90IGluaXRpYWxfc3RhdGVbMTZdLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgY2hhciBrZXlzdHJlYW1bNjRdKQotewotICAgIHVpbnQzMl90IHdvcmtpbmdfc3RhdGVbMTZdOwotICAgIHNpemVfdCBpOwotCi0gICAgbWVtY3B5KHdvcmtpbmdfc3RhdGUsCi0gICAgICAgICAgIGluaXRpYWxfc3RhdGUsCi0gICAgICAgICAgIENIQUNIQTIwX0JMT0NLX1NJWkVfQllURVMpOwotCi0gICAgZm9yIChpID0gMFU7IGkgPCAxMFU7IGkrKykgewotICAgICAgICBjaGFjaGEyMF9pbm5lcl9ibG9jayh3b3JraW5nX3N0YXRlKTsKLSAgICB9Ci0KLSAgICB3b3JraW5nX3N0YXRlWzBdICs9IGluaXRpYWxfc3RhdGVbMF07Ci0gICAgd29ya2luZ19zdGF0ZVsxXSArPSBpbml0aWFsX3N0YXRlWzFdOwotICAgIHdvcmtpbmdfc3RhdGVbMl0gKz0gaW5pdGlhbF9zdGF0ZVsyXTsKLSAgICB3b3JraW5nX3N0YXRlWzNdICs9IGluaXRpYWxfc3RhdGVbM107Ci0gICAgd29ya2luZ19zdGF0ZVs0XSArPSBpbml0aWFsX3N0YXRlWzRdOwotICAgIHdvcmtpbmdfc3RhdGVbNV0gKz0gaW5pdGlhbF9zdGF0ZVs1XTsKLSAgICB3b3JraW5nX3N0YXRlWzZdICs9IGluaXRpYWxfc3RhdGVbNl07Ci0gICAgd29ya2luZ19zdGF0ZVs3XSArPSBpbml0aWFsX3N0YXRlWzddOwotICAgIHdvcmtpbmdfc3RhdGVbOF0gKz0gaW5pdGlhbF9zdGF0ZVs4XTsKLSAgICB3b3JraW5nX3N0YXRlWzldICs9IGluaXRpYWxfc3RhdGVbOV07Ci0gICAgd29ya2luZ19zdGF0ZVsxMF0gKz0gaW5pdGlhbF9zdGF0ZVsxMF07Ci0gICAgd29ya2luZ19zdGF0ZVsxMV0gKz0gaW5pdGlhbF9zdGF0ZVsxMV07Ci0gICAgd29ya2luZ19zdGF0ZVsxMl0gKz0gaW5pdGlhbF9zdGF0ZVsxMl07Ci0gICAgd29ya2luZ19zdGF0ZVsxM10gKz0gaW5pdGlhbF9zdGF0ZVsxM107Ci0gICAgd29ya2luZ19zdGF0ZVsxNF0gKz0gaW5pdGlhbF9zdGF0ZVsxNF07Ci0gICAgd29ya2luZ19zdGF0ZVsxNV0gKz0gaW5pdGlhbF9zdGF0ZVsxNV07Ci0KLSAgICBmb3IgKGkgPSAwVTsgaSA8IDE2OyBpKyspIHsKLSAgICAgICAgc2l6ZV90IG9mZnNldCA9IGkgKiA0VTsKLQotICAgICAgICBNQkVEVExTX1BVVF9VSU5UMzJfTEUod29ya2luZ19zdGF0ZVtpXSwga2V5c3RyZWFtLCBvZmZzZXQpOwotICAgIH0KLQotICAgIG1iZWR0bHNfcGxhdGZvcm1femVyb2l6ZSh3b3JraW5nX3N0YXRlLCBzaXplb2Yod29ya2luZ19zdGF0ZSkpOwotfQotCi12b2lkIG1iZWR0bHNfY2hhY2hhMjBfaW5pdChtYmVkdGxzX2NoYWNoYTIwX2NvbnRleHQgKmN0eCkKLXsKLSAgICBtYmVkdGxzX3BsYXRmb3JtX3plcm9pemUoY3R4LT5zdGF0ZSwgc2l6ZW9mKGN0eC0+c3RhdGUpKTsKLSAgICBtYmVkdGxzX3BsYXRmb3JtX3plcm9pemUoY3R4LT5rZXlzdHJlYW04LCBzaXplb2YoY3R4LT5rZXlzdHJlYW04KSk7Ci0KLSAgICAvKiBJbml0aWFsbHksIHRoZXJlJ3Mgbm8ga2V5c3RyZWFtIGJ5dGVzIGF2YWlsYWJsZSAqLwotICAgIGN0eC0+a2V5c3RyZWFtX2J5dGVzX3VzZWQgPSBDSEFDSEEyMF9CTE9DS19TSVpFX0JZVEVTOwotfQotCi12b2lkIG1iZWR0bHNfY2hhY2hhMjBfZnJlZShtYmVkdGxzX2NoYWNoYTIwX2NvbnRleHQgKmN0eCkKLXsKLSAgICBpZiAoY3R4ICE9IE5VTEwpIHsKLSAgICAgICAgbWJlZHRsc19wbGF0Zm9ybV96ZXJvaXplKGN0eCwgc2l6ZW9mKG1iZWR0bHNfY2hhY2hhMjBfY29udGV4dCkpOwotICAgIH0KLX0KLQotaW50IG1iZWR0bHNfY2hhY2hhMjBfc2V0a2V5KG1iZWR0bHNfY2hhY2hhMjBfY29udGV4dCAqY3R4LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIga2V5WzMyXSkKLXsKLSAgICAvKiBDaGFDaGEyMCBjb25zdGFudHMgLSB0aGUgc3RyaW5nICJleHBhbmQgMzItYnl0ZSBrIiAqLwotICAgIGN0eC0+c3RhdGVbMF0gPSAweDYxNzA3ODY1OwotICAgIGN0eC0+c3RhdGVbMV0gPSAweDMzMjA2NDZlOwotICAgIGN0eC0+c3RhdGVbMl0gPSAweDc5NjIyZDMyOwotICAgIGN0eC0+c3RhdGVbM10gPSAweDZiMjA2NTc0OwotCi0gICAgLyogU2V0IGtleSAqLwotICAgIGN0eC0+c3RhdGVbNF0gID0gTUJFRFRMU19HRVRfVUlOVDMyX0xFKGtleSwgMCk7Ci0gICAgY3R4LT5zdGF0ZVs1XSAgPSBNQkVEVExTX0dFVF9VSU5UMzJfTEUoa2V5LCA0KTsKLSAgICBjdHgtPnN0YXRlWzZdICA9IE1CRURUTFNfR0VUX1VJTlQzMl9MRShrZXksIDgpOwotICAgIGN0eC0+c3RhdGVbN10gID0gTUJFRFRMU19HRVRfVUlOVDMyX0xFKGtleSwgMTIpOwotICAgIGN0eC0+c3RhdGVbOF0gID0gTUJFRFRMU19HRVRfVUlOVDMyX0xFKGtleSwgMTYpOwotICAgIGN0eC0+c3RhdGVbOV0gID0gTUJFRFRMU19HRVRfVUlOVDMyX0xFKGtleSwgMjApOwotICAgIGN0eC0+c3RhdGVbMTBdID0gTUJFRFRMU19HRVRfVUlOVDMyX0xFKGtleSwgMjQpOwotICAgIGN0eC0+c3RhdGVbMTFdID0gTUJFRFRMU19HRVRfVUlOVDMyX0xFKGtleSwgMjgpOwotCi0gICAgcmV0dXJuIDA7Ci19Ci0KLWludCBtYmVkdGxzX2NoYWNoYTIwX3N0YXJ0cyhtYmVkdGxzX2NoYWNoYTIwX2NvbnRleHQgKmN0eCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1bnNpZ25lZCBjaGFyIG5vbmNlWzEyXSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCBjb3VudGVyKQotewotICAgIC8qIENvdW50ZXIgKi8KLSAgICBjdHgtPnN0YXRlWzEyXSA9IGNvdW50ZXI7Ci0KLSAgICAvKiBOb25jZSAqLwotICAgIGN0eC0+c3RhdGVbMTNdID0gTUJFRFRMU19HRVRfVUlOVDMyX0xFKG5vbmNlLCAwKTsKLSAgICBjdHgtPnN0YXRlWzE0XSA9IE1CRURUTFNfR0VUX1VJTlQzMl9MRShub25jZSwgNCk7Ci0gICAgY3R4LT5zdGF0ZVsxNV0gPSBNQkVEVExTX0dFVF9VSU5UMzJfTEUobm9uY2UsIDgpOwotCi0gICAgbWJlZHRsc19wbGF0Zm9ybV96ZXJvaXplKGN0eC0+a2V5c3RyZWFtOCwgc2l6ZW9mKGN0eC0+a2V5c3RyZWFtOCkpOwotCi0gICAgLyogSW5pdGlhbGx5LCB0aGVyZSdzIG5vIGtleXN0cmVhbSBieXRlcyBhdmFpbGFibGUgKi8KLSAgICBjdHgtPmtleXN0cmVhbV9ieXRlc191c2VkID0gQ0hBQ0hBMjBfQkxPQ0tfU0laRV9CWVRFUzsKLQotICAgIHJldHVybiAwOwotfQotCi1pbnQgbWJlZHRsc19jaGFjaGEyMF91cGRhdGUobWJlZHRsc19jaGFjaGEyMF9jb250ZXh0ICpjdHgsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IHNpemUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdW5zaWduZWQgY2hhciAqaW5wdXQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgY2hhciAqb3V0cHV0KQotewotICAgIHNpemVfdCBvZmZzZXQgPSAwVTsKLQotICAgIC8qIFVzZSBsZWZ0b3ZlciBrZXlzdHJlYW0gYnl0ZXMsIGlmIGF2YWlsYWJsZSAqLwotICAgIHdoaWxlIChzaXplID4gMFUgJiYgY3R4LT5rZXlzdHJlYW1fYnl0ZXNfdXNlZCA8IENIQUNIQTIwX0JMT0NLX1NJWkVfQllURVMpIHsKLSAgICAgICAgb3V0cHV0W29mZnNldF0gPSBpbnB1dFtvZmZzZXRdCi0gICAgICAgICAgICAgICAgICAgICAgICAgXiBjdHgtPmtleXN0cmVhbThbY3R4LT5rZXlzdHJlYW1fYnl0ZXNfdXNlZF07Ci0KLSAgICAgICAgY3R4LT5rZXlzdHJlYW1fYnl0ZXNfdXNlZCsrOwotICAgICAgICBvZmZzZXQrKzsKLSAgICAgICAgc2l6ZS0tOwotICAgIH0KLQotICAgIC8qIFByb2Nlc3MgZnVsbCBibG9ja3MgKi8KLSAgICB3aGlsZSAoc2l6ZSA+PSBDSEFDSEEyMF9CTE9DS19TSVpFX0JZVEVTKSB7Ci0gICAgICAgIC8qIEdlbmVyYXRlIG5ldyBrZXlzdHJlYW0gYmxvY2sgYW5kIGluY3JlbWVudCBjb3VudGVyICovCi0gICAgICAgIGNoYWNoYTIwX2Jsb2NrKGN0eC0+c3RhdGUsIGN0eC0+a2V5c3RyZWFtOCk7Ci0gICAgICAgIGN0eC0+c3RhdGVbQ0hBQ0hBMjBfQ1RSX0lOREVYXSsrOwotCi0gICAgICAgIG1iZWR0bHNfeG9yKG91dHB1dCArIG9mZnNldCwgaW5wdXQgKyBvZmZzZXQsIGN0eC0+a2V5c3RyZWFtOCwgNjRVKTsKLQotICAgICAgICBvZmZzZXQgKz0gQ0hBQ0hBMjBfQkxPQ0tfU0laRV9CWVRFUzsKLSAgICAgICAgc2l6ZSAgIC09IENIQUNIQTIwX0JMT0NLX1NJWkVfQllURVM7Ci0gICAgfQotCi0gICAgLyogTGFzdCAocGFydGlhbCkgYmxvY2sgKi8KLSAgICBpZiAoc2l6ZSA+IDBVKSB7Ci0gICAgICAgIC8qIEdlbmVyYXRlIG5ldyBrZXlzdHJlYW0gYmxvY2sgYW5kIGluY3JlbWVudCBjb3VudGVyICovCi0gICAgICAgIGNoYWNoYTIwX2Jsb2NrKGN0eC0+c3RhdGUsIGN0eC0+a2V5c3RyZWFtOCk7Ci0gICAgICAgIGN0eC0+c3RhdGVbQ0hBQ0hBMjBfQ1RSX0lOREVYXSsrOwotCi0gICAgICAgIG1iZWR0bHNfeG9yKG91dHB1dCArIG9mZnNldCwgaW5wdXQgKyBvZmZzZXQsIGN0eC0+a2V5c3RyZWFtOCwgc2l6ZSk7Ci0KLSAgICAgICAgY3R4LT5rZXlzdHJlYW1fYnl0ZXNfdXNlZCA9IHNpemU7Ci0KLSAgICB9Ci0KLSAgICByZXR1cm4gMDsKLX0KLQotaW50IG1iZWR0bHNfY2hhY2hhMjBfY3J5cHQoY29uc3QgdW5zaWduZWQgY2hhciBrZXlbMzJdLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdW5zaWduZWQgY2hhciBub25jZVsxMl0sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCBjb3VudGVyLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IGRhdGFfbGVuLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdW5zaWduZWQgY2hhciAqaW5wdXQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBjaGFyICpvdXRwdXQpCi17Ci0gICAgbWJlZHRsc19jaGFjaGEyMF9jb250ZXh0IGN0eDsKLSAgICBpbnQgcmV0ID0gTUJFRFRMU19FUlJfRVJST1JfQ09SUlVQVElPTl9ERVRFQ1RFRDsKLQotICAgIG1iZWR0bHNfY2hhY2hhMjBfaW5pdCgmY3R4KTsKLQotICAgIHJldCA9IG1iZWR0bHNfY2hhY2hhMjBfc2V0a2V5KCZjdHgsIGtleSk7Ci0gICAgaWYgKHJldCAhPSAwKSB7Ci0gICAgICAgIGdvdG8gY2xlYW51cDsKLSAgICB9Ci0KLSAgICByZXQgPSBtYmVkdGxzX2NoYWNoYTIwX3N0YXJ0cygmY3R4LCBub25jZSwgY291bnRlcik7Ci0gICAgaWYgKHJldCAhPSAwKSB7Ci0gICAgICAgIGdvdG8gY2xlYW51cDsKLSAgICB9Ci0KLSAgICByZXQgPSBtYmVkdGxzX2NoYWNoYTIwX3VwZGF0ZSgmY3R4LCBkYXRhX2xlbiwgaW5wdXQsIG91dHB1dCk7Ci0KLWNsZWFudXA6Ci0gICAgbWJlZHRsc19jaGFjaGEyMF9mcmVlKCZjdHgpOwotICAgIHJldHVybiByZXQ7Ci19Ci0KLSNlbmRpZiAvKiAhTUJFRFRMU19DSEFDSEEyMF9BTFQgKi8KLQotI2lmIGRlZmluZWQoTUJFRFRMU19TRUxGX1RFU1QpCi0KLXN0YXRpYyBjb25zdCB1bnNpZ25lZCBjaGFyIHRlc3Rfa2V5c1syXVszMl0gPQotewotICAgIHsKLSAgICAgICAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgICAgICAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgICAgICAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgICAgICAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMAotICAgIH0sCi0gICAgewotICAgICAgICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAgICAgICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAgICAgICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAgICAgICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAxCi0gICAgfQotfTsKLQotc3RhdGljIGNvbnN0IHVuc2lnbmVkIGNoYXIgdGVzdF9ub25jZXNbMl1bMTJdID0KLXsKLSAgICB7Ci0gICAgICAgIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gICAgICAgIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAKLSAgICB9LAotICAgIHsKLSAgICAgICAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgICAgICAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMgotICAgIH0KLX07Ci0KLXN0YXRpYyBjb25zdCB1aW50MzJfdCB0ZXN0X2NvdW50ZXJzWzJdID0KLXsKLSAgICAwVSwKLSAgICAxVQotfTsKLQotc3RhdGljIGNvbnN0IHVuc2lnbmVkIGNoYXIgdGVzdF9pbnB1dFsyXVszNzVdID0KLXsKLSAgICB7Ci0gICAgICAgIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gICAgICAgIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gICAgICAgIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gICAgICAgIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gICAgICAgIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gICAgICAgIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gICAgICAgIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gICAgICAgIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAKLSAgICB9LAotICAgIHsKLSAgICAgICAgMHg0MSwgMHg2ZSwgMHg3OSwgMHgyMCwgMHg3MywgMHg3NSwgMHg2MiwgMHg2ZCwKLSAgICAgICAgMHg2OSwgMHg3MywgMHg3MywgMHg2OSwgMHg2ZiwgMHg2ZSwgMHgyMCwgMHg3NCwKLSAgICAgICAgMHg2ZiwgMHgyMCwgMHg3NCwgMHg2OCwgMHg2NSwgMHgyMCwgMHg0OSwgMHg0NSwKLSAgICAgICAgMHg1NCwgMHg0NiwgMHgyMCwgMHg2OSwgMHg2ZSwgMHg3NCwgMHg2NSwgMHg2ZSwKLSAgICAgICAgMHg2NCwgMHg2NSwgMHg2NCwgMHgyMCwgMHg2MiwgMHg3OSwgMHgyMCwgMHg3NCwKLSAgICAgICAgMHg2OCwgMHg2NSwgMHgyMCwgMHg0MywgMHg2ZiwgMHg2ZSwgMHg3NCwgMHg3MiwKLSAgICAgICAgMHg2OSwgMHg2MiwgMHg3NSwgMHg3NCwgMHg2ZiwgMHg3MiwgMHgyMCwgMHg2NiwKLSAgICAgICAgMHg2ZiwgMHg3MiwgMHgyMCwgMHg3MCwgMHg3NSwgMHg2MiwgMHg2YywgMHg2OSwKLSAgICAgICAgMHg2MywgMHg2MSwgMHg3NCwgMHg2OSwgMHg2ZiwgMHg2ZSwgMHgyMCwgMHg2MSwKLSAgICAgICAgMHg3MywgMHgyMCwgMHg2MSwgMHg2YywgMHg2YywgMHgyMCwgMHg2ZiwgMHg3MiwKLSAgICAgICAgMHgyMCwgMHg3MCwgMHg2MSwgMHg3MiwgMHg3NCwgMHgyMCwgMHg2ZiwgMHg2NiwKLSAgICAgICAgMHgyMCwgMHg2MSwgMHg2ZSwgMHgyMCwgMHg0OSwgMHg0NSwgMHg1NCwgMHg0NiwKLSAgICAgICAgMHgyMCwgMHg0OSwgMHg2ZSwgMHg3NCwgMHg2NSwgMHg3MiwgMHg2ZSwgMHg2NSwKLSAgICAgICAgMHg3NCwgMHgyZCwgMHg0NCwgMHg3MiwgMHg2MSwgMHg2NiwgMHg3NCwgMHgyMCwKLSAgICAgICAgMHg2ZiwgMHg3MiwgMHgyMCwgMHg1MiwgMHg0NiwgMHg0MywgMHgyMCwgMHg2MSwKLSAgICAgICAgMHg2ZSwgMHg2NCwgMHgyMCwgMHg2MSwgMHg2ZSwgMHg3OSwgMHgyMCwgMHg3MywKLSAgICAgICAgMHg3NCwgMHg2MSwgMHg3NCwgMHg2NSwgMHg2ZCwgMHg2NSwgMHg2ZSwgMHg3NCwKLSAgICAgICAgMHgyMCwgMHg2ZCwgMHg2MSwgMHg2NCwgMHg2NSwgMHgyMCwgMHg3NywgMHg2OSwKLSAgICAgICAgMHg3NCwgMHg2OCwgMHg2OSwgMHg2ZSwgMHgyMCwgMHg3NCwgMHg2OCwgMHg2NSwKLSAgICAgICAgMHgyMCwgMHg2MywgMHg2ZiwgMHg2ZSwgMHg3NCwgMHg2NSwgMHg3OCwgMHg3NCwKLSAgICAgICAgMHgyMCwgMHg2ZiwgMHg2NiwgMHgyMCwgMHg2MSwgMHg2ZSwgMHgyMCwgMHg0OSwKLSAgICAgICAgMHg0NSwgMHg1NCwgMHg0NiwgMHgyMCwgMHg2MSwgMHg2MywgMHg3NCwgMHg2OSwKLSAgICAgICAgMHg3NiwgMHg2OSwgMHg3NCwgMHg3OSwgMHgyMCwgMHg2OSwgMHg3MywgMHgyMCwKLSAgICAgICAgMHg2MywgMHg2ZiwgMHg2ZSwgMHg3MywgMHg2OSwgMHg2NCwgMHg2NSwgMHg3MiwKLSAgICAgICAgMHg2NSwgMHg2NCwgMHgyMCwgMHg2MSwgMHg2ZSwgMHgyMCwgMHgyMiwgMHg0OSwKLSAgICAgICAgMHg0NSwgMHg1NCwgMHg0NiwgMHgyMCwgMHg0MywgMHg2ZiwgMHg2ZSwgMHg3NCwKLSAgICAgICAgMHg3MiwgMHg2OSwgMHg2MiwgMHg3NSwgMHg3NCwgMHg2OSwgMHg2ZiwgMHg2ZSwKLSAgICAgICAgMHgyMiwgMHgyZSwgMHgyMCwgMHg1MywgMHg3NSwgMHg2MywgMHg2OCwgMHgyMCwKLSAgICAgICAgMHg3MywgMHg3NCwgMHg2MSwgMHg3NCwgMHg2NSwgMHg2ZCwgMHg2NSwgMHg2ZSwKLSAgICAgICAgMHg3NCwgMHg3MywgMHgyMCwgMHg2OSwgMHg2ZSwgMHg2MywgMHg2YywgMHg3NSwKLSAgICAgICAgMHg2NCwgMHg2NSwgMHgyMCwgMHg2ZiwgMHg3MiwgMHg2MSwgMHg2YywgMHgyMCwKLSAgICAgICAgMHg3MywgMHg3NCwgMHg2MSwgMHg3NCwgMHg2NSwgMHg2ZCwgMHg2NSwgMHg2ZSwKLSAgICAgICAgMHg3NCwgMHg3MywgMHgyMCwgMHg2OSwgMHg2ZSwgMHgyMCwgMHg0OSwgMHg0NSwKLSAgICAgICAgMHg1NCwgMHg0NiwgMHgyMCwgMHg3MywgMHg2NSwgMHg3MywgMHg3MywgMHg2OSwKLSAgICAgICAgMHg2ZiwgMHg2ZSwgMHg3MywgMHgyYywgMHgyMCwgMHg2MSwgMHg3MywgMHgyMCwKLSAgICAgICAgMHg3NywgMHg2NSwgMHg2YywgMHg2YywgMHgyMCwgMHg2MSwgMHg3MywgMHgyMCwKLSAgICAgICAgMHg3NywgMHg3MiwgMHg2OSwgMHg3NCwgMHg3NCwgMHg2NSwgMHg2ZSwgMHgyMCwKLSAgICAgICAgMHg2MSwgMHg2ZSwgMHg2NCwgMHgyMCwgMHg2NSwgMHg2YywgMHg2NSwgMHg2MywKLSAgICAgICAgMHg3NCwgMHg3MiwgMHg2ZiwgMHg2ZSwgMHg2OSwgMHg2MywgMHgyMCwgMHg2MywKLSAgICAgICAgMHg2ZiwgMHg2ZCwgMHg2ZCwgMHg3NSwgMHg2ZSwgMHg2OSwgMHg2MywgMHg2MSwKLSAgICAgICAgMHg3NCwgMHg2OSwgMHg2ZiwgMHg2ZSwgMHg3MywgMHgyMCwgMHg2ZCwgMHg2MSwKLSAgICAgICAgMHg2NCwgMHg2NSwgMHgyMCwgMHg2MSwgMHg3NCwgMHgyMCwgMHg2MSwgMHg2ZSwKLSAgICAgICAgMHg3OSwgMHgyMCwgMHg3NCwgMHg2OSwgMHg2ZCwgMHg2NSwgMHgyMCwgMHg2ZiwKLSAgICAgICAgMHg3MiwgMHgyMCwgMHg3MCwgMHg2YywgMHg2MSwgMHg2MywgMHg2NSwgMHgyYywKLSAgICAgICAgMHgyMCwgMHg3NywgMHg2OCwgMHg2OSwgMHg2MywgMHg2OCwgMHgyMCwgMHg2MSwKLSAgICAgICAgMHg3MiwgMHg2NSwgMHgyMCwgMHg2MSwgMHg2NCwgMHg2NCwgMHg3MiwgMHg2NSwKLSAgICAgICAgMHg3MywgMHg3MywgMHg2NSwgMHg2NCwgMHgyMCwgMHg3NCwgMHg2ZgotICAgIH0KLX07Ci0KLXN0YXRpYyBjb25zdCB1bnNpZ25lZCBjaGFyIHRlc3Rfb3V0cHV0WzJdWzM3NV0gPQotewotICAgIHsKLSAgICAgICAgMHg3NiwgMHhiOCwgMHhlMCwgMHhhZCwgMHhhMCwgMHhmMSwgMHgzZCwgMHg5MCwKLSAgICAgICAgMHg0MCwgMHg1ZCwgMHg2YSwgMHhlNSwgMHg1MywgMHg4NiwgMHhiZCwgMHgyOCwKLSAgICAgICAgMHhiZCwgMHhkMiwgMHgxOSwgMHhiOCwgMHhhMCwgMHg4ZCwgMHhlZCwgMHgxYSwKLSAgICAgICAgMHhhOCwgMHgzNiwgMHhlZiwgMHhjYywgMHg4YiwgMHg3NywgMHgwZCwgMHhjNywKLSAgICAgICAgMHhkYSwgMHg0MSwgMHg1OSwgMHg3YywgMHg1MSwgMHg1NywgMHg0OCwgMHg4ZCwKLSAgICAgICAgMHg3NywgMHgyNCwgMHhlMCwgMHgzZiwgMHhiOCwgMHhkOCwgMHg0YSwgMHgzNywKLSAgICAgICAgMHg2YSwgMHg0MywgMHhiOCwgMHhmNCwgMHgxNSwgMHgxOCwgMHhhMSwgMHgxYywKLSAgICAgICAgMHhjMywgMHg4NywgMHhiNiwgMHg2OSwgMHhiMiwgMHhlZSwgMHg2NSwgMHg4NgotICAgIH0sCi0gICAgewotICAgICAgICAweGEzLCAweGZiLCAweGYwLCAweDdkLCAweGYzLCAweGZhLCAweDJmLCAweGRlLAotICAgICAgICAweDRmLCAweDM3LCAweDZjLCAweGEyLCAweDNlLCAweDgyLCAweDczLCAweDcwLAotICAgICAgICAweDQxLCAweDYwLCAweDVkLCAweDlmLCAweDRmLCAweDRmLCAweDU3LCAweGJkLAotICAgICAgICAweDhjLCAweGZmLCAweDJjLCAweDFkLCAweDRiLCAweDc5LCAweDU1LCAweGVjLAotICAgICAgICAweDJhLCAweDk3LCAweDk0LCAweDhiLCAweGQzLCAweDcyLCAweDI5LCAweDE1LAotICAgICAgICAweGM4LCAweGYzLCAweGQzLCAweDM3LCAweGY3LCAweGQzLCAweDcwLCAweDA1LAotICAgICAgICAweDBlLCAweDllLCAweDk2LCAweGQ2LCAweDQ3LCAweGI3LCAweGMzLCAweDlmLAotICAgICAgICAweDU2LCAweGUwLCAweDMxLCAweGNhLCAweDVlLCAweGI2LCAweDI1LCAweDBkLAotICAgICAgICAweDQwLCAweDQyLCAweGUwLCAweDI3LCAweDg1LCAweGVjLCAweGVjLCAweGZhLAotICAgICAgICAweDRiLCAweDRiLCAweGI1LCAweGU4LCAweGVhLCAweGQwLCAweDQ0LCAweDBlLAotICAgICAgICAweDIwLCAweGI2LCAweGU4LCAweGRiLCAweDA5LCAweGQ4LCAweDgxLCAweGE3LAotICAgICAgICAweGM2LCAweDEzLCAweDJmLCAweDQyLCAweDBlLCAweDUyLCAweDc5LCAweDUwLAotICAgICAgICAweDQyLCAweGJkLCAweGZhLCAweDc3LCAweDczLCAweGQ4LCAweGE5LCAweDA1LAotICAgICAgICAweDE0LCAweDQ3LCAweGIzLCAweDI5LCAweDFjLCAweGUxLCAweDQxLCAweDFjLAotICAgICAgICAweDY4LCAweDA0LCAweDY1LCAweDU1LCAweDJhLCAweGE2LCAweGM0LCAweDA1LAotICAgICAgICAweGI3LCAweDc2LCAweDRkLCAweDVlLCAweDg3LCAweGJlLCAweGE4LCAweDVhLAotICAgICAgICAweGQwLCAweDBmLCAweDg0LCAweDQ5LCAweGVkLCAweDhmLCAweDcyLCAweGQwLAotICAgICAgICAweGQ2LCAweDYyLCAweGFiLCAweDA1LCAweDI2LCAweDkxLCAweGNhLCAweDY2LAotICAgICAgICAweDQyLCAweDRiLCAweGM4LCAweDZkLCAweDJkLCAweGY4LCAweDBlLCAweGE0LAotICAgICAgICAweDFmLCAweDQzLCAweGFiLCAweGY5LCAweDM3LCAweGQzLCAweDI1LCAweDlkLAotICAgICAgICAweGM0LCAweGIyLCAweGQwLCAweGRmLCAweGI0LCAweDhhLCAweDZjLCAweDkxLAotICAgICAgICAweDM5LCAweGRkLCAweGQ3LCAweGY3LCAweDY5LCAweDY2LCAweGU5LCAweDI4LAotICAgICAgICAweGU2LCAweDM1LCAweDU1LCAweDNiLCAweGE3LCAweDZjLCAweDVjLCAweDg3LAotICAgICAgICAweDlkLCAweDdiLCAweDM1LCAweGQ0LCAweDllLCAweGIyLCAweGU2LCAweDJiLAotICAgICAgICAweDA4LCAweDcxLCAweGNkLCAweGFjLCAweDYzLCAweDg5LCAweDM5LCAweGUyLAotICAgICAgICAweDVlLCAweDhhLCAweDFlLCAweDBlLCAweGY5LCAweGQ1LCAweDI4LCAweDBmLAotICAgICAgICAweGE4LCAweGNhLCAweDMyLCAweDhiLCAweDM1LCAweDFjLCAweDNjLCAweDc2LAotICAgICAgICAweDU5LCAweDg5LCAweGNiLCAweGNmLCAweDNkLCAweGFhLCAweDhiLCAweDZjLAotICAgICAgICAweGNjLCAweDNhLCAweGFmLCAweDlmLCAweDM5LCAweDc5LCAweGM5LCAweDJiLAotICAgICAgICAweDM3LCAweDIwLCAweGZjLCAweDg4LCAweGRjLCAweDk1LCAweGVkLCAweDg0LAotICAgICAgICAweGExLCAweGJlLCAweDA1LCAweDljLCAweDY0LCAweDk5LCAweGI5LCAweGZkLAotICAgICAgICAweGEyLCAweDM2LCAweGU3LCAweGU4LCAweDE4LCAweGIwLCAweDRiLCAweDBiLAotICAgICAgICAweGMzLCAweDljLCAweDFlLCAweDg3LCAweDZiLCAweDE5LCAweDNiLCAweGZlLAotICAgICAgICAweDU1LCAweDY5LCAweDc1LCAweDNmLCAweDg4LCAweDEyLCAweDhjLCAweGMwLAotICAgICAgICAweDhhLCAweGFhLCAweDliLCAweDYzLCAweGQxLCAweGExLCAweDZmLCAweDgwLAotICAgICAgICAweGVmLCAweDI1LCAweDU0LCAweGQ3LCAweDE4LCAweDljLCAweDQxLCAweDFmLAotICAgICAgICAweDU4LCAweDY5LCAweGNhLCAweDUyLCAweGM1LCAweGI4LCAweDNmLCAweGEzLAotICAgICAgICAweDZmLCAweGYyLCAweDE2LCAweGI5LCAweGMxLCAweGQzLCAweDAwLCAweDYyLAotICAgICAgICAweGJlLCAweGJjLCAweGZkLCAweDJkLCAweGM1LCAweGJjLCAweGUwLCAweDkxLAotICAgICAgICAweDE5LCAweDM0LCAweGZkLCAweGE3LCAweDlhLCAweDg2LCAweGY2LCAweGU2LAotICAgICAgICAweDk4LCAweGNlLCAweGQ3LCAweDU5LCAweGMzLCAweGZmLCAweDliLCAweDY0LAotICAgICAgICAweDc3LCAweDMzLCAweDhmLCAweDNkLCAweGE0LCAweGY5LCAweGNkLCAweDg1LAotICAgICAgICAweDE0LCAweGVhLCAweDk5LCAweDgyLCAweGNjLCAweGFmLCAweGIzLCAweDQxLAotICAgICAgICAweGIyLCAweDM4LCAweDRkLCAweGQ5LCAweDAyLCAweGYzLCAweGQxLCAweGFiLAotICAgICAgICAweDdhLCAweGM2LCAweDFkLCAweGQyLCAweDljLCAweDZmLCAweDIxLCAweGJhLAotICAgICAgICAweDViLCAweDg2LCAweDJmLCAweDM3LCAweDMwLCAweGUzLCAweDdjLCAweGZkLAotICAgICAgICAweGM0LCAweGZkLCAweDgwLCAweDZjLCAweDIyLCAweGYyLCAweDIxCi0gICAgfQotfTsKLQotc3RhdGljIGNvbnN0IHNpemVfdCB0ZXN0X2xlbmd0aHNbMl0gPQotewotICAgIDY0VSwKLSAgICAzNzVVCi19OwotCi0vKiBNYWtlIHN1cmUgbm8gb3RoZXIgZGVmaW5pdGlvbiBpcyBhbHJlYWR5IHByZXNlbnQuICovCi0jdW5kZWYgQVNTRVJUCi0KLSNkZWZpbmUgQVNTRVJUKGNvbmQsIGFyZ3MpICAgICAgICAgICAgXAotICAgIGRvICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgICAgIGlmICghKGNvbmQpKSAgICAgICAgICAgICAgICBcCi0gICAgICAgIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgICAgICAgICAgaWYgKHZlcmJvc2UgIT0gMCkgICAgICAgICAgXAotICAgICAgICAgICAgbWJlZHRsc19wcmludGYgYXJnczsgICAgXAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICAgICAgICAgIHJldHVybiAtMTsgICAgICAgICAgICAgICBcCi0gICAgICAgIH0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIH0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICB3aGlsZSAoMCkKLQotaW50IG1iZWR0bHNfY2hhY2hhMjBfc2VsZl90ZXN0KGludCB2ZXJib3NlKQotewotICAgIHVuc2lnbmVkIGNoYXIgb3V0cHV0WzM4MV07Ci0gICAgdW5zaWduZWQgaTsKLSAgICBpbnQgcmV0ID0gTUJFRFRMU19FUlJfRVJST1JfQ09SUlVQVElPTl9ERVRFQ1RFRDsKLQotICAgIGZvciAoaSA9IDBVOyBpIDwgMlU7IGkrKykgewotICAgICAgICBpZiAodmVyYm9zZSAhPSAwKSB7Ci0gICAgICAgICAgICBtYmVkdGxzX3ByaW50ZigiICBDaGFDaGEyMCB0ZXN0ICV1ICIsIGkpOwotICAgICAgICB9Ci0KLSAgICAgICAgcmV0ID0gbWJlZHRsc19jaGFjaGEyMF9jcnlwdCh0ZXN0X2tleXNbaV0sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGVzdF9ub25jZXNbaV0sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGVzdF9jb3VudGVyc1tpXSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0X2xlbmd0aHNbaV0sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGVzdF9pbnB1dFtpXSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvdXRwdXQpOwotCi0gICAgICAgIEFTU0VSVCgwID09IHJldCwgKCJlcnJvciBjb2RlOiAlaVxuIiwgcmV0KSk7Ci0KLSAgICAgICAgQVNTRVJUKDAgPT0gbWVtY21wKG91dHB1dCwgdGVzdF9vdXRwdXRbaV0sIHRlc3RfbGVuZ3Roc1tpXSksCi0gICAgICAgICAgICAgICAoImZhaWxlZCAob3V0cHV0KVxuIikpOwotCi0gICAgICAgIGlmICh2ZXJib3NlICE9IDApIHsKLSAgICAgICAgICAgIG1iZWR0bHNfcHJpbnRmKCJwYXNzZWRcbiIpOwotICAgICAgICB9Ci0gICAgfQotCi0gICAgaWYgKHZlcmJvc2UgIT0gMCkgewotICAgICAgICBtYmVkdGxzX3ByaW50ZigiXG4iKTsKLSAgICB9Ci0KLSAgICByZXR1cm4gMDsKLX0KLQotI2VuZGlmIC8qIE1CRURUTFNfU0VMRl9URVNUICovCi0KLSNlbmRpZiAvKiAhTUJFRFRMU19DSEFDSEEyMF9DICovCmRpZmYgLS1naXQgYS9saWJyYXJ5L2NoYWNoYXBvbHkuYyBiL2xpYnJhcnkvY2hhY2hhcG9seS5jCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhMTMxNGVhLi4wMDAwMDAwCi0tLSBhL2xpYnJhcnkvY2hhY2hhcG9seS5jCisrKyAvZGV2L251bGwKQEAgLTEsNDc4ICswLDAgQEAKLS8qKgotICogXGZpbGUgY2hhY2hhcG9seS5jCi0gKgotICogXGJyaWVmIENoYUNoYTIwLVBvbHkxMzA1IEFFQUQgY29uc3RydWN0aW9uIGJhc2VkIG9uIFJGQyA3NTM5LgotICoKLSAqICBDb3B5cmlnaHQgVGhlIE1iZWQgVExTIENvbnRyaWJ1dG9ycwotICogIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wIE9SIEdQTC0yLjAtb3ItbGF0ZXIKLSAqLwotI2luY2x1ZGUgImNvbW1vbi5oIgotCi0jaWYgZGVmaW5lZChNQkVEVExTX0NIQUNIQVBPTFlfQykKLQotI2luY2x1ZGUgIm1iZWR0bHMvY2hhY2hhcG9seS5oIgotI2luY2x1ZGUgIm1iZWR0bHMvcGxhdGZvcm1fdXRpbC5oIgotI2luY2x1ZGUgIm1iZWR0bHMvZXJyb3IuaCIKLSNpbmNsdWRlICJtYmVkdGxzL2NvbnN0YW50X3RpbWUuaCIKLQotI2luY2x1ZGUgPHN0cmluZy5oPgotCi0jaW5jbHVkZSAibWJlZHRscy9wbGF0Zm9ybS5oIgotCi0jaWYgIWRlZmluZWQoTUJFRFRMU19DSEFDSEFQT0xZX0FMVCkKLQotI2RlZmluZSBDSEFDSEFQT0xZX1NUQVRFX0lOSVQgICAgICAgKDApCi0jZGVmaW5lIENIQUNIQVBPTFlfU1RBVEVfQUFEICAgICAgICAoMSkKLSNkZWZpbmUgQ0hBQ0hBUE9MWV9TVEFURV9DSVBIRVJURVhUICgyKSAgIC8qIEVuY3J5cHRpbmcgb3IgZGVjcnlwdGluZyAqLwotI2RlZmluZSBDSEFDSEFQT0xZX1NUQVRFX0ZJTklTSEVEICAgKDMpCi0KLS8qKgotICogXGJyaWVmICAgICAgICAgICBBZGRzIG51bCBieXRlcyB0byBwYWQgdGhlIEFBRCBmb3IgUG9seTEzMDUuCi0gKgotICogXHBhcmFtIGN0eCAgICAgICBUaGUgQ2hhQ2hhMjAtUG9seTEzMDUgY29udGV4dC4KLSAqLwotc3RhdGljIGludCBjaGFjaGFwb2x5X3BhZF9hYWQobWJlZHRsc19jaGFjaGFwb2x5X2NvbnRleHQgKmN0eCkKLXsKLSAgICB1aW50MzJfdCBwYXJ0aWFsX2Jsb2NrX2xlbiA9ICh1aW50MzJfdCkgKGN0eC0+YWFkX2xlbiAlIDE2VSk7Ci0gICAgdW5zaWduZWQgY2hhciB6ZXJvZXNbMTVdOwotCi0gICAgaWYgKHBhcnRpYWxfYmxvY2tfbGVuID09IDBVKSB7Ci0gICAgICAgIHJldHVybiAwOwotICAgIH0KLQotICAgIG1lbXNldCh6ZXJvZXMsIDAsIHNpemVvZih6ZXJvZXMpKTsKLQotICAgIHJldHVybiBtYmVkdGxzX3BvbHkxMzA1X3VwZGF0ZSgmY3R4LT5wb2x5MTMwNV9jdHgsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHplcm9lcywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMTZVIC0gcGFydGlhbF9ibG9ja19sZW4pOwotfQotCi0vKioKLSAqIFxicmllZiAgICAgICAgICAgQWRkcyBudWwgYnl0ZXMgdG8gcGFkIHRoZSBjaXBoZXJ0ZXh0IGZvciBQb2x5MTMwNS4KLSAqCi0gKiBccGFyYW0gY3R4ICAgICAgIFRoZSBDaGFDaGEyMC1Qb2x5MTMwNSBjb250ZXh0LgotICovCi1zdGF0aWMgaW50IGNoYWNoYXBvbHlfcGFkX2NpcGhlcnRleHQobWJlZHRsc19jaGFjaGFwb2x5X2NvbnRleHQgKmN0eCkKLXsKLSAgICB1aW50MzJfdCBwYXJ0aWFsX2Jsb2NrX2xlbiA9ICh1aW50MzJfdCkgKGN0eC0+Y2lwaGVydGV4dF9sZW4gJSAxNlUpOwotICAgIHVuc2lnbmVkIGNoYXIgemVyb2VzWzE1XTsKLQotICAgIGlmIChwYXJ0aWFsX2Jsb2NrX2xlbiA9PSAwVSkgewotICAgICAgICByZXR1cm4gMDsKLSAgICB9Ci0KLSAgICBtZW1zZXQoemVyb2VzLCAwLCBzaXplb2YoemVyb2VzKSk7Ci0gICAgcmV0dXJuIG1iZWR0bHNfcG9seTEzMDVfdXBkYXRlKCZjdHgtPnBvbHkxMzA1X2N0eCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgemVyb2VzLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxNlUgLSBwYXJ0aWFsX2Jsb2NrX2xlbik7Ci19Ci0KLXZvaWQgbWJlZHRsc19jaGFjaGFwb2x5X2luaXQobWJlZHRsc19jaGFjaGFwb2x5X2NvbnRleHQgKmN0eCkKLXsKLSAgICBtYmVkdGxzX2NoYWNoYTIwX2luaXQoJmN0eC0+Y2hhY2hhMjBfY3R4KTsKLSAgICBtYmVkdGxzX3BvbHkxMzA1X2luaXQoJmN0eC0+cG9seTEzMDVfY3R4KTsKLSAgICBjdHgtPmFhZF9sZW4gICAgICAgID0gMFU7Ci0gICAgY3R4LT5jaXBoZXJ0ZXh0X2xlbiA9IDBVOwotICAgIGN0eC0+c3RhdGUgICAgICAgICAgPSBDSEFDSEFQT0xZX1NUQVRFX0lOSVQ7Ci0gICAgY3R4LT5tb2RlICAgICAgICAgICA9IE1CRURUTFNfQ0hBQ0hBUE9MWV9FTkNSWVBUOwotfQotCi12b2lkIG1iZWR0bHNfY2hhY2hhcG9seV9mcmVlKG1iZWR0bHNfY2hhY2hhcG9seV9jb250ZXh0ICpjdHgpCi17Ci0gICAgaWYgKGN0eCA9PSBOVUxMKSB7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICBtYmVkdGxzX2NoYWNoYTIwX2ZyZWUoJmN0eC0+Y2hhY2hhMjBfY3R4KTsKLSAgICBtYmVkdGxzX3BvbHkxMzA1X2ZyZWUoJmN0eC0+cG9seTEzMDVfY3R4KTsKLSAgICBjdHgtPmFhZF9sZW4gICAgICAgID0gMFU7Ci0gICAgY3R4LT5jaXBoZXJ0ZXh0X2xlbiA9IDBVOwotICAgIGN0eC0+c3RhdGUgICAgICAgICAgPSBDSEFDSEFQT0xZX1NUQVRFX0lOSVQ7Ci0gICAgY3R4LT5tb2RlICAgICAgICAgICA9IE1CRURUTFNfQ0hBQ0hBUE9MWV9FTkNSWVBUOwotfQotCi1pbnQgbWJlZHRsc19jaGFjaGFwb2x5X3NldGtleShtYmVkdGxzX2NoYWNoYXBvbHlfY29udGV4dCAqY3R4LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdW5zaWduZWQgY2hhciBrZXlbMzJdKQotewotICAgIGludCByZXQgPSBNQkVEVExTX0VSUl9FUlJPUl9DT1JSVVBUSU9OX0RFVEVDVEVEOwotCi0gICAgcmV0ID0gbWJlZHRsc19jaGFjaGEyMF9zZXRrZXkoJmN0eC0+Y2hhY2hhMjBfY3R4LCBrZXkpOwotCi0gICAgcmV0dXJuIHJldDsKLX0KLQotaW50IG1iZWR0bHNfY2hhY2hhcG9seV9zdGFydHMobWJlZHRsc19jaGFjaGFwb2x5X2NvbnRleHQgKmN0eCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgbm9uY2VbMTJdLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWJlZHRsc19jaGFjaGFwb2x5X21vZGVfdCBtb2RlKQotewotICAgIGludCByZXQgPSBNQkVEVExTX0VSUl9FUlJPUl9DT1JSVVBUSU9OX0RFVEVDVEVEOwotICAgIHVuc2lnbmVkIGNoYXIgcG9seTEzMDVfa2V5WzY0XTsKLQotICAgIC8qIFNldCBjb3VudGVyID0gMCwgd2lsbCBiZSB1cGRhdGUgdG8gMSB3aGVuIGdlbmVyYXRpbmcgUG9seTEzMDUga2V5ICovCi0gICAgcmV0ID0gbWJlZHRsc19jaGFjaGEyMF9zdGFydHMoJmN0eC0+Y2hhY2hhMjBfY3R4LCBub25jZSwgMFUpOwotICAgIGlmIChyZXQgIT0gMCkgewotICAgICAgICBnb3RvIGNsZWFudXA7Ci0gICAgfQotCi0gICAgLyogR2VuZXJhdGUgdGhlIFBvbHkxMzA1IGtleSBieSBnZXR0aW5nIHRoZSBDaGFDaGEyMCBrZXlzdHJlYW0gb3V0cHV0IHdpdGgKLSAgICAgKiBjb3VudGVyID0gMC4gIFRoaXMgaXMgdGhlIHNhbWUgYXMgZW5jcnlwdGluZyBhIGJ1ZmZlciBvZiB6ZXJvZXMuCi0gICAgICogT25seSB0aGUgZmlyc3QgMjU2LWJpdHMgKDMyIGJ5dGVzKSBvZiB0aGUga2V5IGlzIHVzZWQgZm9yIFBvbHkxMzA1LgotICAgICAqIFRoZSBvdGhlciAyNTYgYml0cyBhcmUgZGlzY2FyZGVkLgotICAgICAqLwotICAgIG1lbXNldChwb2x5MTMwNV9rZXksIDAsIHNpemVvZihwb2x5MTMwNV9rZXkpKTsKLSAgICByZXQgPSBtYmVkdGxzX2NoYWNoYTIwX3VwZGF0ZSgmY3R4LT5jaGFjaGEyMF9jdHgsIHNpemVvZihwb2x5MTMwNV9rZXkpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvbHkxMzA1X2tleSwgcG9seTEzMDVfa2V5KTsKLSAgICBpZiAocmV0ICE9IDApIHsKLSAgICAgICAgZ290byBjbGVhbnVwOwotICAgIH0KLQotICAgIHJldCA9IG1iZWR0bHNfcG9seTEzMDVfc3RhcnRzKCZjdHgtPnBvbHkxMzA1X2N0eCwgcG9seTEzMDVfa2V5KTsKLQotICAgIGlmIChyZXQgPT0gMCkgewotICAgICAgICBjdHgtPmFhZF9sZW4gICAgICAgID0gMFU7Ci0gICAgICAgIGN0eC0+Y2lwaGVydGV4dF9sZW4gPSAwVTsKLSAgICAgICAgY3R4LT5zdGF0ZSAgICAgICAgICA9IENIQUNIQVBPTFlfU1RBVEVfQUFEOwotICAgICAgICBjdHgtPm1vZGUgICAgICAgICAgID0gbW9kZTsKLSAgICB9Ci0KLWNsZWFudXA6Ci0gICAgbWJlZHRsc19wbGF0Zm9ybV96ZXJvaXplKHBvbHkxMzA1X2tleSwgNjRVKTsKLSAgICByZXR1cm4gcmV0OwotfQotCi1pbnQgbWJlZHRsc19jaGFjaGFwb2x5X3VwZGF0ZV9hYWQobWJlZHRsc19jaGFjaGFwb2x5X2NvbnRleHQgKmN0eCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1bnNpZ25lZCBjaGFyICphYWQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IGFhZF9sZW4pCi17Ci0gICAgaWYgKGN0eC0+c3RhdGUgIT0gQ0hBQ0hBUE9MWV9TVEFURV9BQUQpIHsKLSAgICAgICAgcmV0dXJuIE1CRURUTFNfRVJSX0NIQUNIQVBPTFlfQkFEX1NUQVRFOwotICAgIH0KLQotICAgIGN0eC0+YWFkX2xlbiArPSBhYWRfbGVuOwotCi0gICAgcmV0dXJuIG1iZWR0bHNfcG9seTEzMDVfdXBkYXRlKCZjdHgtPnBvbHkxMzA1X2N0eCwgYWFkLCBhYWRfbGVuKTsKLX0KLQotaW50IG1iZWR0bHNfY2hhY2hhcG9seV91cGRhdGUobWJlZHRsc19jaGFjaGFwb2x5X2NvbnRleHQgKmN0eCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBsZW4sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1bnNpZ25lZCBjaGFyICppbnB1dCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGNoYXIgKm91dHB1dCkKLXsKLSAgICBpbnQgcmV0ID0gTUJFRFRMU19FUlJfRVJST1JfQ09SUlVQVElPTl9ERVRFQ1RFRDsKLQotICAgIGlmICgoY3R4LT5zdGF0ZSAhPSBDSEFDSEFQT0xZX1NUQVRFX0FBRCkgJiYKLSAgICAgICAgKGN0eC0+c3RhdGUgIT0gQ0hBQ0hBUE9MWV9TVEFURV9DSVBIRVJURVhUKSkgewotICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfQ0hBQ0hBUE9MWV9CQURfU1RBVEU7Ci0gICAgfQotCi0gICAgaWYgKGN0eC0+c3RhdGUgPT0gQ0hBQ0hBUE9MWV9TVEFURV9BQUQpIHsKLSAgICAgICAgY3R4LT5zdGF0ZSA9IENIQUNIQVBPTFlfU1RBVEVfQ0lQSEVSVEVYVDsKLQotICAgICAgICByZXQgPSBjaGFjaGFwb2x5X3BhZF9hYWQoY3R4KTsKLSAgICAgICAgaWYgKHJldCAhPSAwKSB7Ci0gICAgICAgICAgICByZXR1cm4gcmV0OwotICAgICAgICB9Ci0gICAgfQotCi0gICAgY3R4LT5jaXBoZXJ0ZXh0X2xlbiArPSBsZW47Ci0KLSAgICBpZiAoY3R4LT5tb2RlID09IE1CRURUTFNfQ0hBQ0hBUE9MWV9FTkNSWVBUKSB7Ci0gICAgICAgIHJldCA9IG1iZWR0bHNfY2hhY2hhMjBfdXBkYXRlKCZjdHgtPmNoYWNoYTIwX2N0eCwgbGVuLCBpbnB1dCwgb3V0cHV0KTsKLSAgICAgICAgaWYgKHJldCAhPSAwKSB7Ci0gICAgICAgICAgICByZXR1cm4gcmV0OwotICAgICAgICB9Ci0KLSAgICAgICAgcmV0ID0gbWJlZHRsc19wb2x5MTMwNV91cGRhdGUoJmN0eC0+cG9seTEzMDVfY3R4LCBvdXRwdXQsIGxlbik7Ci0gICAgICAgIGlmIChyZXQgIT0gMCkgewotICAgICAgICAgICAgcmV0dXJuIHJldDsKLSAgICAgICAgfQotICAgIH0gZWxzZSB7IC8qIERFQ1JZUFQgKi8KLSAgICAgICAgcmV0ID0gbWJlZHRsc19wb2x5MTMwNV91cGRhdGUoJmN0eC0+cG9seTEzMDVfY3R4LCBpbnB1dCwgbGVuKTsKLSAgICAgICAgaWYgKHJldCAhPSAwKSB7Ci0gICAgICAgICAgICByZXR1cm4gcmV0OwotICAgICAgICB9Ci0KLSAgICAgICAgcmV0ID0gbWJlZHRsc19jaGFjaGEyMF91cGRhdGUoJmN0eC0+Y2hhY2hhMjBfY3R4LCBsZW4sIGlucHV0LCBvdXRwdXQpOwotICAgICAgICBpZiAocmV0ICE9IDApIHsKLSAgICAgICAgICAgIHJldHVybiByZXQ7Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICByZXR1cm4gMDsKLX0KLQotaW50IG1iZWR0bHNfY2hhY2hhcG9seV9maW5pc2gobWJlZHRsc19jaGFjaGFwb2x5X2NvbnRleHQgKmN0eCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGNoYXIgbWFjWzE2XSkKLXsKLSAgICBpbnQgcmV0ID0gTUJFRFRMU19FUlJfRVJST1JfQ09SUlVQVElPTl9ERVRFQ1RFRDsKLSAgICB1bnNpZ25lZCBjaGFyIGxlbl9ibG9ja1sxNl07Ci0KLSAgICBpZiAoY3R4LT5zdGF0ZSA9PSBDSEFDSEFQT0xZX1NUQVRFX0lOSVQpIHsKLSAgICAgICAgcmV0dXJuIE1CRURUTFNfRVJSX0NIQUNIQVBPTFlfQkFEX1NUQVRFOwotICAgIH0KLQotICAgIGlmIChjdHgtPnN0YXRlID09IENIQUNIQVBPTFlfU1RBVEVfQUFEKSB7Ci0gICAgICAgIHJldCA9IGNoYWNoYXBvbHlfcGFkX2FhZChjdHgpOwotICAgICAgICBpZiAocmV0ICE9IDApIHsKLSAgICAgICAgICAgIHJldHVybiByZXQ7Ci0gICAgICAgIH0KLSAgICB9IGVsc2UgaWYgKGN0eC0+c3RhdGUgPT0gQ0hBQ0hBUE9MWV9TVEFURV9DSVBIRVJURVhUKSB7Ci0gICAgICAgIHJldCA9IGNoYWNoYXBvbHlfcGFkX2NpcGhlcnRleHQoY3R4KTsKLSAgICAgICAgaWYgKHJldCAhPSAwKSB7Ci0gICAgICAgICAgICByZXR1cm4gcmV0OwotICAgICAgICB9Ci0gICAgfQotCi0gICAgY3R4LT5zdGF0ZSA9IENIQUNIQVBPTFlfU1RBVEVfRklOSVNIRUQ7Ci0KLSAgICAvKiBUaGUgbGVuZ3RocyBvZiB0aGUgQUFEIGFuZCBjaXBoZXJ0ZXh0IGFyZSBwcm9jZXNzZWQgYnkKLSAgICAgKiBQb2x5MTMwNSBhcyB0aGUgZmluYWwgMTI4LWJpdCBibG9jaywgZW5jb2RlZCBhcyBsaXR0bGUtZW5kaWFuIGludGVnZXJzLgotICAgICAqLwotICAgIE1CRURUTFNfUFVUX1VJTlQ2NF9MRShjdHgtPmFhZF9sZW4sIGxlbl9ibG9jaywgMCk7Ci0gICAgTUJFRFRMU19QVVRfVUlOVDY0X0xFKGN0eC0+Y2lwaGVydGV4dF9sZW4sIGxlbl9ibG9jaywgOCk7Ci0KLSAgICByZXQgPSBtYmVkdGxzX3BvbHkxMzA1X3VwZGF0ZSgmY3R4LT5wb2x5MTMwNV9jdHgsIGxlbl9ibG9jaywgMTZVKTsKLSAgICBpZiAocmV0ICE9IDApIHsKLSAgICAgICAgcmV0dXJuIHJldDsKLSAgICB9Ci0KLSAgICByZXQgPSBtYmVkdGxzX3BvbHkxMzA1X2ZpbmlzaCgmY3R4LT5wb2x5MTMwNV9jdHgsIG1hYyk7Ci0KLSAgICByZXR1cm4gcmV0OwotfQotCi1zdGF0aWMgaW50IGNoYWNoYXBvbHlfY3J5cHRfYW5kX3RhZyhtYmVkdGxzX2NoYWNoYXBvbHlfY29udGV4dCAqY3R4LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWJlZHRsc19jaGFjaGFwb2x5X21vZGVfdCBtb2RlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IGxlbmd0aCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgbm9uY2VbMTJdLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdW5zaWduZWQgY2hhciAqYWFkLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IGFhZF9sZW4sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1bnNpZ25lZCBjaGFyICppbnB1dCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGNoYXIgKm91dHB1dCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGNoYXIgdGFnWzE2XSkKLXsKLSAgICBpbnQgcmV0ID0gTUJFRFRMU19FUlJfRVJST1JfQ09SUlVQVElPTl9ERVRFQ1RFRDsKLQotICAgIHJldCA9IG1iZWR0bHNfY2hhY2hhcG9seV9zdGFydHMoY3R4LCBub25jZSwgbW9kZSk7Ci0gICAgaWYgKHJldCAhPSAwKSB7Ci0gICAgICAgIGdvdG8gY2xlYW51cDsKLSAgICB9Ci0KLSAgICByZXQgPSBtYmVkdGxzX2NoYWNoYXBvbHlfdXBkYXRlX2FhZChjdHgsIGFhZCwgYWFkX2xlbik7Ci0gICAgaWYgKHJldCAhPSAwKSB7Ci0gICAgICAgIGdvdG8gY2xlYW51cDsKLSAgICB9Ci0KLSAgICByZXQgPSBtYmVkdGxzX2NoYWNoYXBvbHlfdXBkYXRlKGN0eCwgbGVuZ3RoLCBpbnB1dCwgb3V0cHV0KTsKLSAgICBpZiAocmV0ICE9IDApIHsKLSAgICAgICAgZ290byBjbGVhbnVwOwotICAgIH0KLQotICAgIHJldCA9IG1iZWR0bHNfY2hhY2hhcG9seV9maW5pc2goY3R4LCB0YWcpOwotCi1jbGVhbnVwOgotICAgIHJldHVybiByZXQ7Ci19Ci0KLWludCBtYmVkdGxzX2NoYWNoYXBvbHlfZW5jcnlwdF9hbmRfdGFnKG1iZWR0bHNfY2hhY2hhcG9seV9jb250ZXh0ICpjdHgsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgbGVuZ3RoLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdW5zaWduZWQgY2hhciBub25jZVsxMl0sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1bnNpZ25lZCBjaGFyICphYWQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgYWFkX2xlbiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgKmlucHV0LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgY2hhciAqb3V0cHV0LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgY2hhciB0YWdbMTZdKQotewotICAgIHJldHVybiBjaGFjaGFwb2x5X2NyeXB0X2FuZF90YWcoY3R4LCBNQkVEVExTX0NIQUNIQVBPTFlfRU5DUllQVCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxlbmd0aCwgbm9uY2UsIGFhZCwgYWFkX2xlbiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlucHV0LCBvdXRwdXQsIHRhZyk7Ci19Ci0KLWludCBtYmVkdGxzX2NoYWNoYXBvbHlfYXV0aF9kZWNyeXB0KG1iZWR0bHNfY2hhY2hhcG9seV9jb250ZXh0ICpjdHgsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgbGVuZ3RoLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdW5zaWduZWQgY2hhciBub25jZVsxMl0sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1bnNpZ25lZCBjaGFyICphYWQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgYWFkX2xlbiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgdGFnWzE2XSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgKmlucHV0LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgY2hhciAqb3V0cHV0KQotewotICAgIGludCByZXQgPSBNQkVEVExTX0VSUl9FUlJPUl9DT1JSVVBUSU9OX0RFVEVDVEVEOwotICAgIHVuc2lnbmVkIGNoYXIgY2hlY2tfdGFnWzE2XTsKLSAgICBpbnQgZGlmZjsKLQotICAgIGlmICgocmV0ID0gY2hhY2hhcG9seV9jcnlwdF9hbmRfdGFnKGN0eCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNQkVEVExTX0NIQUNIQVBPTFlfREVDUllQVCwgbGVuZ3RoLCBub25jZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhYWQsIGFhZF9sZW4sIGlucHV0LCBvdXRwdXQsIGNoZWNrX3RhZykpICE9IDApIHsKLSAgICAgICAgcmV0dXJuIHJldDsKLSAgICB9Ci0KLSAgICAvKiBDaGVjayB0YWcgaW4gImNvbnN0YW50LXRpbWUiICovCi0gICAgZGlmZiA9IG1iZWR0bHNfY3RfbWVtY21wKHRhZywgY2hlY2tfdGFnLCBzaXplb2YoY2hlY2tfdGFnKSk7Ci0KLSAgICBpZiAoZGlmZiAhPSAwKSB7Ci0gICAgICAgIG1iZWR0bHNfcGxhdGZvcm1femVyb2l6ZShvdXRwdXQsIGxlbmd0aCk7Ci0gICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9DSEFDSEFQT0xZX0FVVEhfRkFJTEVEOwotICAgIH0KLQotICAgIHJldHVybiAwOwotfQotCi0jZW5kaWYgLyogTUJFRFRMU19DSEFDSEFQT0xZX0FMVCAqLwotCi0jaWYgZGVmaW5lZChNQkVEVExTX1NFTEZfVEVTVCkKLQotc3RhdGljIGNvbnN0IHVuc2lnbmVkIGNoYXIgdGVzdF9rZXlbMV1bMzJdID0KLXsKLSAgICB7Ci0gICAgICAgIDB4ODAsIDB4ODEsIDB4ODIsIDB4ODMsIDB4ODQsIDB4ODUsIDB4ODYsIDB4ODcsCi0gICAgICAgIDB4ODgsIDB4ODksIDB4OGEsIDB4OGIsIDB4OGMsIDB4OGQsIDB4OGUsIDB4OGYsCi0gICAgICAgIDB4OTAsIDB4OTEsIDB4OTIsIDB4OTMsIDB4OTQsIDB4OTUsIDB4OTYsIDB4OTcsCi0gICAgICAgIDB4OTgsIDB4OTksIDB4OWEsIDB4OWIsIDB4OWMsIDB4OWQsIDB4OWUsIDB4OWYKLSAgICB9Ci19OwotCi1zdGF0aWMgY29uc3QgdW5zaWduZWQgY2hhciB0ZXN0X25vbmNlWzFdWzEyXSA9Ci17Ci0gICAgewotICAgICAgICAweDA3LCAweDAwLCAweDAwLCAweDAwLCAgICAgICAgICAgICAgICAgICAgICAgICAvKiAzMi1iaXQgY29tbW9uIHBhcnQgKi8KLSAgICAgICAgMHg0MCwgMHg0MSwgMHg0MiwgMHg0MywgMHg0NCwgMHg0NSwgMHg0NiwgMHg0NyAgLyogNjQtYml0IElWICovCi0gICAgfQotfTsKLQotc3RhdGljIGNvbnN0IHVuc2lnbmVkIGNoYXIgdGVzdF9hYWRbMV1bMTJdID0KLXsKLSAgICB7Ci0gICAgICAgIDB4NTAsIDB4NTEsIDB4NTIsIDB4NTMsIDB4YzAsIDB4YzEsIDB4YzIsIDB4YzMsCi0gICAgICAgIDB4YzQsIDB4YzUsIDB4YzYsIDB4YzcKLSAgICB9Ci19OwotCi1zdGF0aWMgY29uc3Qgc2l6ZV90IHRlc3RfYWFkX2xlblsxXSA9Ci17Ci0gICAgMTJVCi19OwotCi1zdGF0aWMgY29uc3QgdW5zaWduZWQgY2hhciB0ZXN0X2lucHV0WzFdWzExNF0gPQotewotICAgIHsKLSAgICAgICAgMHg0YywgMHg2MSwgMHg2NCwgMHg2OSwgMHg2NSwgMHg3MywgMHgyMCwgMHg2MSwKLSAgICAgICAgMHg2ZSwgMHg2NCwgMHgyMCwgMHg0NywgMHg2NSwgMHg2ZSwgMHg3NCwgMHg2YywKLSAgICAgICAgMHg2NSwgMHg2ZCwgMHg2NSwgMHg2ZSwgMHgyMCwgMHg2ZiwgMHg2NiwgMHgyMCwKLSAgICAgICAgMHg3NCwgMHg2OCwgMHg2NSwgMHgyMCwgMHg2MywgMHg2YywgMHg2MSwgMHg3MywKLSAgICAgICAgMHg3MywgMHgyMCwgMHg2ZiwgMHg2NiwgMHgyMCwgMHgyNywgMHgzOSwgMHgzOSwKLSAgICAgICAgMHgzYSwgMHgyMCwgMHg0OSwgMHg2NiwgMHgyMCwgMHg0OSwgMHgyMCwgMHg2MywKLSAgICAgICAgMHg2ZiwgMHg3NSwgMHg2YywgMHg2NCwgMHgyMCwgMHg2ZiwgMHg2NiwgMHg2NiwKLSAgICAgICAgMHg2NSwgMHg3MiwgMHgyMCwgMHg3OSwgMHg2ZiwgMHg3NSwgMHgyMCwgMHg2ZiwKLSAgICAgICAgMHg2ZSwgMHg2YywgMHg3OSwgMHgyMCwgMHg2ZiwgMHg2ZSwgMHg2NSwgMHgyMCwKLSAgICAgICAgMHg3NCwgMHg2OSwgMHg3MCwgMHgyMCwgMHg2NiwgMHg2ZiwgMHg3MiwgMHgyMCwKLSAgICAgICAgMHg3NCwgMHg2OCwgMHg2NSwgMHgyMCwgMHg2NiwgMHg3NSwgMHg3NCwgMHg3NSwKLSAgICAgICAgMHg3MiwgMHg2NSwgMHgyYywgMHgyMCwgMHg3MywgMHg3NSwgMHg2ZSwgMHg3MywKLSAgICAgICAgMHg2MywgMHg3MiwgMHg2NSwgMHg2NSwgMHg2ZSwgMHgyMCwgMHg3NywgMHg2ZiwKLSAgICAgICAgMHg3NSwgMHg2YywgMHg2NCwgMHgyMCwgMHg2MiwgMHg2NSwgMHgyMCwgMHg2OSwKLSAgICAgICAgMHg3NCwgMHgyZQotICAgIH0KLX07Ci0KLXN0YXRpYyBjb25zdCB1bnNpZ25lZCBjaGFyIHRlc3Rfb3V0cHV0WzFdWzExNF0gPQotewotICAgIHsKLSAgICAgICAgMHhkMywgMHgxYSwgMHg4ZCwgMHgzNCwgMHg2NCwgMHg4ZSwgMHg2MCwgMHhkYiwKLSAgICAgICAgMHg3YiwgMHg4NiwgMHhhZiwgMHhiYywgMHg1MywgMHhlZiwgMHg3ZSwgMHhjMiwKLSAgICAgICAgMHhhNCwgMHhhZCwgMHhlZCwgMHg1MSwgMHgyOSwgMHg2ZSwgMHgwOCwgMHhmZSwKLSAgICAgICAgMHhhOSwgMHhlMiwgMHhiNSwgMHhhNywgMHgzNiwgMHhlZSwgMHg2MiwgMHhkNiwKLSAgICAgICAgMHgzZCwgMHhiZSwgMHhhNCwgMHg1ZSwgMHg4YywgMHhhOSwgMHg2NywgMHgxMiwKLSAgICAgICAgMHg4MiwgMHhmYSwgMHhmYiwgMHg2OSwgMHhkYSwgMHg5MiwgMHg3MiwgMHg4YiwKLSAgICAgICAgMHgxYSwgMHg3MSwgMHhkZSwgMHgwYSwgMHg5ZSwgMHgwNiwgMHgwYiwgMHgyOSwKLSAgICAgICAgMHgwNSwgMHhkNiwgMHhhNSwgMHhiNiwgMHg3ZSwgMHhjZCwgMHgzYiwgMHgzNiwKLSAgICAgICAgMHg5MiwgMHhkZCwgMHhiZCwgMHg3ZiwgMHgyZCwgMHg3NywgMHg4YiwgMHg4YywKLSAgICAgICAgMHg5OCwgMHgwMywgMHhhZSwgMHhlMywgMHgyOCwgMHgwOSwgMHgxYiwgMHg1OCwKLSAgICAgICAgMHhmYSwgMHhiMywgMHgyNCwgMHhlNCwgMHhmYSwgMHhkNiwgMHg3NSwgMHg5NCwKLSAgICAgICAgMHg1NSwgMHg4NSwgMHg4MCwgMHg4YiwgMHg0OCwgMHgzMSwgMHhkNywgMHhiYywKLSAgICAgICAgMHgzZiwgMHhmNCwgMHhkZSwgMHhmMCwgMHg4ZSwgMHg0YiwgMHg3YSwgMHg5ZCwKLSAgICAgICAgMHhlNSwgMHg3NiwgMHhkMiwgMHg2NSwgMHg4NiwgMHhjZSwgMHhjNiwgMHg0YiwKLSAgICAgICAgMHg2MSwgMHgxNgotICAgIH0KLX07Ci0KLXN0YXRpYyBjb25zdCBzaXplX3QgdGVzdF9pbnB1dF9sZW5bMV0gPQotewotICAgIDExNFUKLX07Ci0KLXN0YXRpYyBjb25zdCB1bnNpZ25lZCBjaGFyIHRlc3RfbWFjWzFdWzE2XSA9Ci17Ci0gICAgewotICAgICAgICAweDFhLCAweGUxLCAweDBiLCAweDU5LCAweDRmLCAweDA5LCAweGUyLCAweDZhLAotICAgICAgICAweDdlLCAweDkwLCAweDJlLCAweGNiLCAweGQwLCAweDYwLCAweDA2LCAweDkxCi0gICAgfQotfTsKLQotLyogTWFrZSBzdXJlIG5vIG90aGVyIGRlZmluaXRpb24gaXMgYWxyZWFkeSBwcmVzZW50LiAqLwotI3VuZGVmIEFTU0VSVAotCi0jZGVmaW5lIEFTU0VSVChjb25kLCBhcmdzKSAgICAgICAgICAgIFwKLSAgICBkbyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgICAgICBpZiAoIShjb25kKSkgICAgICAgICAgICAgICAgXAotICAgICAgICB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICAgICAgICAgIGlmICh2ZXJib3NlICE9IDApICAgICAgICAgIFwKLSAgICAgICAgICAgIG1iZWR0bHNfcHJpbnRmIGFyZ3M7ICAgIFwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgICAgICAgICByZXR1cm4gLTE7ICAgICAgICAgICAgICAgXAotICAgICAgICB9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICB9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgd2hpbGUgKDApCi0KLWludCBtYmVkdGxzX2NoYWNoYXBvbHlfc2VsZl90ZXN0KGludCB2ZXJib3NlKQotewotICAgIG1iZWR0bHNfY2hhY2hhcG9seV9jb250ZXh0IGN0eDsKLSAgICB1bnNpZ25lZCBpOwotICAgIGludCByZXQgPSBNQkVEVExTX0VSUl9FUlJPUl9DT1JSVVBUSU9OX0RFVEVDVEVEOwotICAgIHVuc2lnbmVkIGNoYXIgb3V0cHV0WzIwMF07Ci0gICAgdW5zaWduZWQgY2hhciBtYWNbMTZdOwotCi0gICAgZm9yIChpID0gMFU7IGkgPCAxVTsgaSsrKSB7Ci0gICAgICAgIGlmICh2ZXJib3NlICE9IDApIHsKLSAgICAgICAgICAgIG1iZWR0bHNfcHJpbnRmKCIgIENoYUNoYTIwLVBvbHkxMzA1IHRlc3QgJXUgIiwgaSk7Ci0gICAgICAgIH0KLQotICAgICAgICBtYmVkdGxzX2NoYWNoYXBvbHlfaW5pdCgmY3R4KTsKLQotICAgICAgICByZXQgPSBtYmVkdGxzX2NoYWNoYXBvbHlfc2V0a2V5KCZjdHgsIHRlc3Rfa2V5W2ldKTsKLSAgICAgICAgQVNTRVJUKDAgPT0gcmV0LCAoInNldGtleSgpIGVycm9yIGNvZGU6ICVpXG4iLCByZXQpKTsKLQotICAgICAgICByZXQgPSBtYmVkdGxzX2NoYWNoYXBvbHlfZW5jcnlwdF9hbmRfdGFnKCZjdHgsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGVzdF9pbnB1dF9sZW5baV0sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGVzdF9ub25jZVtpXSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0X2FhZFtpXSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0X2FhZF9sZW5baV0sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGVzdF9pbnB1dFtpXSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvdXRwdXQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFjKTsKLQotICAgICAgICBBU1NFUlQoMCA9PSByZXQsICgiY3J5cHRfYW5kX3RhZygpIGVycm9yIGNvZGU6ICVpXG4iLCByZXQpKTsKLQotICAgICAgICBBU1NFUlQoMCA9PSBtZW1jbXAob3V0cHV0LCB0ZXN0X291dHB1dFtpXSwgdGVzdF9pbnB1dF9sZW5baV0pLAotICAgICAgICAgICAgICAgKCJmYWlsdXJlICh3cm9uZyBvdXRwdXQpXG4iKSk7Ci0KLSAgICAgICAgQVNTRVJUKDAgPT0gbWVtY21wKG1hYywgdGVzdF9tYWNbaV0sIDE2VSksCi0gICAgICAgICAgICAgICAoImZhaWx1cmUgKHdyb25nIE1BQylcbiIpKTsKLQotICAgICAgICBtYmVkdGxzX2NoYWNoYXBvbHlfZnJlZSgmY3R4KTsKLQotICAgICAgICBpZiAodmVyYm9zZSAhPSAwKSB7Ci0gICAgICAgICAgICBtYmVkdGxzX3ByaW50ZigicGFzc2VkXG4iKTsKLSAgICAgICAgfQotICAgIH0KLQotICAgIGlmICh2ZXJib3NlICE9IDApIHsKLSAgICAgICAgbWJlZHRsc19wcmludGYoIlxuIik7Ci0gICAgfQotCi0gICAgcmV0dXJuIDA7Ci19Ci0KLSNlbmRpZiAvKiBNQkVEVExTX1NFTEZfVEVTVCAqLwotCi0jZW5kaWYgLyogTUJFRFRMU19DSEFDSEFQT0xZX0MgKi8KZGlmZiAtLWdpdCBhL2xpYnJhcnkvY2lwaGVyLmMgYi9saWJyYXJ5L2NpcGhlci5jCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwNjgzNjc3Li4wMDAwMDAwCi0tLSBhL2xpYnJhcnkvY2lwaGVyLmMKKysrIC9kZXYvbnVsbApAQCAtMSwxNjgwICswLDAgQEAKLS8qKgotICogXGZpbGUgY2lwaGVyLmMKLSAqCi0gKiBcYnJpZWYgR2VuZXJpYyBjaXBoZXIgd3JhcHBlciBmb3IgTWJlZCBUTFMKLSAqCi0gKiBcYXV0aG9yIEFkcmlhYW4gZGUgSm9uZyA8ZGVqb25nQGZveC1pdC5jb20+Ci0gKgotICogIENvcHlyaWdodCBUaGUgTWJlZCBUTFMgQ29udHJpYnV0b3JzCi0gKiAgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjAgT1IgR1BMLTIuMC1vci1sYXRlcgotICovCi0KLSNpbmNsdWRlICJjb21tb24uaCIKLQotI2lmIGRlZmluZWQoTUJFRFRMU19DSVBIRVJfQykKLQotI2luY2x1ZGUgIm1iZWR0bHMvY2lwaGVyLmgiCi0jaW5jbHVkZSAiY2lwaGVyX3dyYXAuaCIKLSNpbmNsdWRlICJtYmVkdGxzL3BsYXRmb3JtX3V0aWwuaCIKLSNpbmNsdWRlICJtYmVkdGxzL2Vycm9yLmgiCi0jaW5jbHVkZSAibWJlZHRscy9jb25zdGFudF90aW1lLmgiCi0jaW5jbHVkZSAiY29uc3RhbnRfdGltZV9pbnRlcm5hbC5oIgotCi0jaW5jbHVkZSA8c3RkbGliLmg+Ci0jaW5jbHVkZSA8c3RyaW5nLmg+Ci0KLSNpZiBkZWZpbmVkKE1CRURUTFNfQ0hBQ0hBUE9MWV9DKQotI2luY2x1ZGUgIm1iZWR0bHMvY2hhY2hhcG9seS5oIgotI2VuZGlmCi0KLSNpZiBkZWZpbmVkKE1CRURUTFNfR0NNX0MpCi0jaW5jbHVkZSAibWJlZHRscy9nY20uaCIKLSNlbmRpZgotCi0jaWYgZGVmaW5lZChNQkVEVExTX0NDTV9DKQotI2luY2x1ZGUgIm1iZWR0bHMvY2NtLmgiCi0jZW5kaWYKLQotI2lmIGRlZmluZWQoTUJFRFRMU19DSEFDSEEyMF9DKQotI2luY2x1ZGUgIm1iZWR0bHMvY2hhY2hhMjAuaCIKLSNlbmRpZgotCi0jaWYgZGVmaW5lZChNQkVEVExTX0NNQUNfQykKLSNpbmNsdWRlICJtYmVkdGxzL2NtYWMuaCIKLSNlbmRpZgotCi0jaWYgZGVmaW5lZChNQkVEVExTX1VTRV9QU0FfQ1JZUFRPKSAmJiAhZGVmaW5lZChNQkVEVExTX0RFUFJFQ0FURURfUkVNT1ZFRCkKLSNpbmNsdWRlICJwc2EvY3J5cHRvLmgiCi0jZW5kaWYgLyogTUJFRFRMU19VU0VfUFNBX0NSWVBUTyAmJiAhTUJFRFRMU19ERVBSRUNBVEVEX1JFTU9WRUQgKi8KLQotI2lmIGRlZmluZWQoTUJFRFRMU19OSVNUX0tXX0MpCi0jaW5jbHVkZSAibWJlZHRscy9uaXN0X2t3LmgiCi0jZW5kaWYKLQotI2luY2x1ZGUgIm1iZWR0bHMvcGxhdGZvcm0uaCIKLQotc3RhdGljIGludCBzdXBwb3J0ZWRfaW5pdCA9IDA7Ci0KLXN0YXRpYyBpbmxpbmUgY29uc3QgbWJlZHRsc19jaXBoZXJfYmFzZV90ICptYmVkdGxzX2NpcGhlcl9nZXRfYmFzZSgKLSAgICBjb25zdCBtYmVkdGxzX2NpcGhlcl9pbmZvX3QgKmluZm8pCi17Ci0gICAgcmV0dXJuIG1iZWR0bHNfY2lwaGVyX2Jhc2VfbG9va3VwX3RhYmxlW2luZm8tPmJhc2VfaWR4XTsKLX0KLQotY29uc3QgaW50ICptYmVkdGxzX2NpcGhlcl9saXN0KHZvaWQpCi17Ci0gICAgY29uc3QgbWJlZHRsc19jaXBoZXJfZGVmaW5pdGlvbl90ICpkZWY7Ci0gICAgaW50ICp0eXBlOwotCi0gICAgaWYgKCFzdXBwb3J0ZWRfaW5pdCkgewotICAgICAgICBkZWYgPSBtYmVkdGxzX2NpcGhlcl9kZWZpbml0aW9uczsKLSAgICAgICAgdHlwZSA9IG1iZWR0bHNfY2lwaGVyX3N1cHBvcnRlZDsKLQotICAgICAgICB3aGlsZSAoZGVmLT50eXBlICE9IDApIHsKLSAgICAgICAgICAgICp0eXBlKysgPSAoKmRlZisrKS50eXBlOwotICAgICAgICB9Ci0KLSAgICAgICAgKnR5cGUgPSAwOwotCi0gICAgICAgIHN1cHBvcnRlZF9pbml0ID0gMTsKLSAgICB9Ci0KLSAgICByZXR1cm4gbWJlZHRsc19jaXBoZXJfc3VwcG9ydGVkOwotfQotCi1jb25zdCBtYmVkdGxzX2NpcGhlcl9pbmZvX3QgKm1iZWR0bHNfY2lwaGVyX2luZm9fZnJvbV90eXBlKAotICAgIGNvbnN0IG1iZWR0bHNfY2lwaGVyX3R5cGVfdCBjaXBoZXJfdHlwZSkKLXsKLSAgICBjb25zdCBtYmVkdGxzX2NpcGhlcl9kZWZpbml0aW9uX3QgKmRlZjsKLQotICAgIGZvciAoZGVmID0gbWJlZHRsc19jaXBoZXJfZGVmaW5pdGlvbnM7IGRlZi0+aW5mbyAhPSBOVUxMOyBkZWYrKykgewotICAgICAgICBpZiAoZGVmLT50eXBlID09IGNpcGhlcl90eXBlKSB7Ci0gICAgICAgICAgICByZXR1cm4gZGVmLT5pbmZvOwotICAgICAgICB9Ci0gICAgfQotCi0gICAgcmV0dXJuIE5VTEw7Ci19Ci0KLWNvbnN0IG1iZWR0bHNfY2lwaGVyX2luZm9fdCAqbWJlZHRsc19jaXBoZXJfaW5mb19mcm9tX3N0cmluZygKLSAgICBjb25zdCBjaGFyICpjaXBoZXJfbmFtZSkKLXsKLSAgICBjb25zdCBtYmVkdGxzX2NpcGhlcl9kZWZpbml0aW9uX3QgKmRlZjsKLQotICAgIGlmIChOVUxMID09IGNpcGhlcl9uYW1lKSB7Ci0gICAgICAgIHJldHVybiBOVUxMOwotICAgIH0KLQotICAgIGZvciAoZGVmID0gbWJlZHRsc19jaXBoZXJfZGVmaW5pdGlvbnM7IGRlZi0+aW5mbyAhPSBOVUxMOyBkZWYrKykgewotICAgICAgICBpZiAoIXN0cmNtcChkZWYtPmluZm8tPm5hbWUsIGNpcGhlcl9uYW1lKSkgewotICAgICAgICAgICAgcmV0dXJuIGRlZi0+aW5mbzsKLSAgICAgICAgfQotICAgIH0KLQotICAgIHJldHVybiBOVUxMOwotfQotCi1jb25zdCBtYmVkdGxzX2NpcGhlcl9pbmZvX3QgKm1iZWR0bHNfY2lwaGVyX2luZm9fZnJvbV92YWx1ZXMoCi0gICAgY29uc3QgbWJlZHRsc19jaXBoZXJfaWRfdCBjaXBoZXJfaWQsCi0gICAgaW50IGtleV9iaXRsZW4sCi0gICAgY29uc3QgbWJlZHRsc19jaXBoZXJfbW9kZV90IG1vZGUpCi17Ci0gICAgY29uc3QgbWJlZHRsc19jaXBoZXJfZGVmaW5pdGlvbl90ICpkZWY7Ci0KLSAgICBmb3IgKGRlZiA9IG1iZWR0bHNfY2lwaGVyX2RlZmluaXRpb25zOyBkZWYtPmluZm8gIT0gTlVMTDsgZGVmKyspIHsKLSAgICAgICAgaWYgKG1iZWR0bHNfY2lwaGVyX2dldF9iYXNlKGRlZi0+aW5mbyktPmNpcGhlciA9PSBjaXBoZXJfaWQgJiYKLSAgICAgICAgICAgIG1iZWR0bHNfY2lwaGVyX2luZm9fZ2V0X2tleV9iaXRsZW4oZGVmLT5pbmZvKSA9PSAodW5zaWduZWQpIGtleV9iaXRsZW4gJiYKLSAgICAgICAgICAgIGRlZi0+aW5mby0+bW9kZSA9PSBtb2RlKSB7Ci0gICAgICAgICAgICByZXR1cm4gZGVmLT5pbmZvOwotICAgICAgICB9Ci0gICAgfQotCi0gICAgcmV0dXJuIE5VTEw7Ci19Ci0KLSNpZiBkZWZpbmVkKE1CRURUTFNfVVNFX1BTQV9DUllQVE8pICYmICFkZWZpbmVkKE1CRURUTFNfREVQUkVDQVRFRF9SRU1PVkVEKQotc3RhdGljIGlubGluZSBwc2Ffa2V5X3R5cGVfdCBtYmVkdGxzX3BzYV90cmFuc2xhdGVfY2lwaGVyX3R5cGUoCi0gICAgbWJlZHRsc19jaXBoZXJfdHlwZV90IGNpcGhlcikKLXsKLSAgICBzd2l0Y2ggKGNpcGhlcikgewotICAgICAgICBjYXNlIE1CRURUTFNfQ0lQSEVSX0FFU18xMjhfQ0NNOgotICAgICAgICBjYXNlIE1CRURUTFNfQ0lQSEVSX0FFU18xOTJfQ0NNOgotICAgICAgICBjYXNlIE1CRURUTFNfQ0lQSEVSX0FFU18yNTZfQ0NNOgotICAgICAgICBjYXNlIE1CRURUTFNfQ0lQSEVSX0FFU18xMjhfQ0NNX1NUQVJfTk9fVEFHOgotICAgICAgICBjYXNlIE1CRURUTFNfQ0lQSEVSX0FFU18xOTJfQ0NNX1NUQVJfTk9fVEFHOgotICAgICAgICBjYXNlIE1CRURUTFNfQ0lQSEVSX0FFU18yNTZfQ0NNX1NUQVJfTk9fVEFHOgotICAgICAgICBjYXNlIE1CRURUTFNfQ0lQSEVSX0FFU18xMjhfR0NNOgotICAgICAgICBjYXNlIE1CRURUTFNfQ0lQSEVSX0FFU18xOTJfR0NNOgotICAgICAgICBjYXNlIE1CRURUTFNfQ0lQSEVSX0FFU18yNTZfR0NNOgotICAgICAgICBjYXNlIE1CRURUTFNfQ0lQSEVSX0FFU18xMjhfQ0JDOgotICAgICAgICBjYXNlIE1CRURUTFNfQ0lQSEVSX0FFU18xOTJfQ0JDOgotICAgICAgICBjYXNlIE1CRURUTFNfQ0lQSEVSX0FFU18yNTZfQ0JDOgotICAgICAgICBjYXNlIE1CRURUTFNfQ0lQSEVSX0FFU18xMjhfRUNCOgotICAgICAgICBjYXNlIE1CRURUTFNfQ0lQSEVSX0FFU18xOTJfRUNCOgotICAgICAgICBjYXNlIE1CRURUTFNfQ0lQSEVSX0FFU18yNTZfRUNCOgotICAgICAgICAgICAgcmV0dXJuIFBTQV9LRVlfVFlQRV9BRVM7Ci0KLSAgICAgICAgLyogQVJJQSBub3QgeWV0IHN1cHBvcnRlZCBpbiBQU0EuICovCi0gICAgICAgIC8qIGNhc2UgTUJFRFRMU19DSVBIRVJfQVJJQV8xMjhfQ0NNOgotICAgICAgICAgICBjYXNlIE1CRURUTFNfQ0lQSEVSX0FSSUFfMTkyX0NDTToKLSAgICAgICAgICAgY2FzZSBNQkVEVExTX0NJUEhFUl9BUklBXzI1Nl9DQ006Ci0gICAgICAgICAgIGNhc2UgTUJFRFRMU19DSVBIRVJfQVJJQV8xMjhfQ0NNX1NUQVJfTk9fVEFHOgotICAgICAgICAgICBjYXNlIE1CRURUTFNfQ0lQSEVSX0FSSUFfMTkyX0NDTV9TVEFSX05PX1RBRzoKLSAgICAgICAgICAgY2FzZSBNQkVEVExTX0NJUEhFUl9BUklBXzI1Nl9DQ01fU1RBUl9OT19UQUc6Ci0gICAgICAgICAgIGNhc2UgTUJFRFRMU19DSVBIRVJfQVJJQV8xMjhfR0NNOgotICAgICAgICAgICBjYXNlIE1CRURUTFNfQ0lQSEVSX0FSSUFfMTkyX0dDTToKLSAgICAgICAgICAgY2FzZSBNQkVEVExTX0NJUEhFUl9BUklBXzI1Nl9HQ006Ci0gICAgICAgICAgIGNhc2UgTUJFRFRMU19DSVBIRVJfQVJJQV8xMjhfQ0JDOgotICAgICAgICAgICBjYXNlIE1CRURUTFNfQ0lQSEVSX0FSSUFfMTkyX0NCQzoKLSAgICAgICAgICAgY2FzZSBNQkVEVExTX0NJUEhFUl9BUklBXzI1Nl9DQkM6Ci0gICAgICAgICAgICAgICByZXR1cm4oIFBTQV9LRVlfVFlQRV9BUklBICk7ICovCi0KLSAgICAgICAgZGVmYXVsdDoKLSAgICAgICAgICAgIHJldHVybiAwOwotICAgIH0KLX0KLQotc3RhdGljIGlubGluZSBwc2FfYWxnb3JpdGhtX3QgbWJlZHRsc19wc2FfdHJhbnNsYXRlX2NpcGhlcl9tb2RlKAotICAgIG1iZWR0bHNfY2lwaGVyX21vZGVfdCBtb2RlLCBzaXplX3QgdGFnbGVuKQotewotICAgIHN3aXRjaCAobW9kZSkgewotICAgICAgICBjYXNlIE1CRURUTFNfTU9ERV9FQ0I6Ci0gICAgICAgICAgICByZXR1cm4gUFNBX0FMR19FQ0JfTk9fUEFERElORzsKLSAgICAgICAgY2FzZSBNQkVEVExTX01PREVfR0NNOgotICAgICAgICAgICAgcmV0dXJuIFBTQV9BTEdfQUVBRF9XSVRIX1NIT1JURU5FRF9UQUcoUFNBX0FMR19HQ00sIHRhZ2xlbik7Ci0gICAgICAgIGNhc2UgTUJFRFRMU19NT0RFX0NDTToKLSAgICAgICAgICAgIHJldHVybiBQU0FfQUxHX0FFQURfV0lUSF9TSE9SVEVORURfVEFHKFBTQV9BTEdfQ0NNLCB0YWdsZW4pOwotICAgICAgICBjYXNlIE1CRURUTFNfTU9ERV9DQ01fU1RBUl9OT19UQUc6Ci0gICAgICAgICAgICByZXR1cm4gUFNBX0FMR19DQ01fU1RBUl9OT19UQUc7Ci0gICAgICAgIGNhc2UgTUJFRFRMU19NT0RFX0NCQzoKLSAgICAgICAgICAgIGlmICh0YWdsZW4gPT0gMCkgewotICAgICAgICAgICAgICAgIHJldHVybiBQU0FfQUxHX0NCQ19OT19QQURESU5HOwotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICByZXR1cm4gMDsKLSAgICAgICAgICAgIH0KLSAgICAgICAgZGVmYXVsdDoKLSAgICAgICAgICAgIHJldHVybiAwOwotICAgIH0KLX0KLSNlbmRpZiAvKiBNQkVEVExTX1VTRV9QU0FfQ1JZUFRPICYmICFNQkVEVExTX0RFUFJFQ0FURURfUkVNT1ZFRCAqLwotCi12b2lkIG1iZWR0bHNfY2lwaGVyX2luaXQobWJlZHRsc19jaXBoZXJfY29udGV4dF90ICpjdHgpCi17Ci0gICAgbWVtc2V0KGN0eCwgMCwgc2l6ZW9mKG1iZWR0bHNfY2lwaGVyX2NvbnRleHRfdCkpOwotfQotCi12b2lkIG1iZWR0bHNfY2lwaGVyX2ZyZWUobWJlZHRsc19jaXBoZXJfY29udGV4dF90ICpjdHgpCi17Ci0gICAgaWYgKGN0eCA9PSBOVUxMKSB7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSNpZiBkZWZpbmVkKE1CRURUTFNfVVNFX1BTQV9DUllQVE8pICYmICFkZWZpbmVkKE1CRURUTFNfREVQUkVDQVRFRF9SRU1PVkVEKQotICAgIGlmIChjdHgtPnBzYV9lbmFibGVkID09IDEpIHsKLSAgICAgICAgaWYgKGN0eC0+Y2lwaGVyX2N0eCAhPSBOVUxMKSB7Ci0gICAgICAgICAgICBtYmVkdGxzX2NpcGhlcl9jb250ZXh0X3BzYSAqIGNvbnN0IGNpcGhlcl9wc2EgPQotICAgICAgICAgICAgICAgIChtYmVkdGxzX2NpcGhlcl9jb250ZXh0X3BzYSAqKSBjdHgtPmNpcGhlcl9jdHg7Ci0KLSAgICAgICAgICAgIGlmIChjaXBoZXJfcHNhLT5zbG90X3N0YXRlID09IE1CRURUTFNfQ0lQSEVSX1BTQV9LRVlfT1dORUQpIHsKLSAgICAgICAgICAgICAgICAvKiB4eHhfZnJlZSgpIGRvZXNuJ3QgYWxsb3cgdG8gcmV0dXJuIGZhaWx1cmVzLiAqLwotICAgICAgICAgICAgICAgICh2b2lkKSBwc2FfZGVzdHJveV9rZXkoY2lwaGVyX3BzYS0+c2xvdCk7Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIG1iZWR0bHNfemVyb2l6ZV9hbmRfZnJlZShjaXBoZXJfcHNhLCBzaXplb2YoKmNpcGhlcl9wc2EpKTsKLSAgICAgICAgfQotCi0gICAgICAgIG1iZWR0bHNfcGxhdGZvcm1femVyb2l6ZShjdHgsIHNpemVvZihtYmVkdGxzX2NpcGhlcl9jb250ZXh0X3QpKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLSNlbmRpZiAvKiBNQkVEVExTX1VTRV9QU0FfQ1JZUFRPICYmICFNQkVEVExTX0RFUFJFQ0FURURfUkVNT1ZFRCAqLwotCi0jaWYgZGVmaW5lZChNQkVEVExTX0NNQUNfQykKLSAgICBpZiAoY3R4LT5jbWFjX2N0eCkgewotICAgICAgICBtYmVkdGxzX3plcm9pemVfYW5kX2ZyZWUoY3R4LT5jbWFjX2N0eCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVvZihtYmVkdGxzX2NtYWNfY29udGV4dF90KSk7Ci0gICAgfQotI2VuZGlmCi0KLSAgICBpZiAoY3R4LT5jaXBoZXJfY3R4KSB7Ci0gICAgICAgIG1iZWR0bHNfY2lwaGVyX2dldF9iYXNlKGN0eC0+Y2lwaGVyX2luZm8pLT5jdHhfZnJlZV9mdW5jKGN0eC0+Y2lwaGVyX2N0eCk7Ci0gICAgfQotCi0gICAgbWJlZHRsc19wbGF0Zm9ybV96ZXJvaXplKGN0eCwgc2l6ZW9mKG1iZWR0bHNfY2lwaGVyX2NvbnRleHRfdCkpOwotfQotCi1pbnQgbWJlZHRsc19jaXBoZXJfc2V0dXAobWJlZHRsc19jaXBoZXJfY29udGV4dF90ICpjdHgsCi0gICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbWJlZHRsc19jaXBoZXJfaW5mb190ICpjaXBoZXJfaW5mbykKLXsKLSAgICBpZiAoY2lwaGVyX2luZm8gPT0gTlVMTCkgewotICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfQ0lQSEVSX0JBRF9JTlBVVF9EQVRBOwotICAgIH0KLQotICAgIG1lbXNldChjdHgsIDAsIHNpemVvZihtYmVkdGxzX2NpcGhlcl9jb250ZXh0X3QpKTsKLQotICAgIGlmIChtYmVkdGxzX2NpcGhlcl9nZXRfYmFzZShjaXBoZXJfaW5mbyktPmN0eF9hbGxvY19mdW5jICE9IE5VTEwpIHsKLSAgICAgICAgY3R4LT5jaXBoZXJfY3R4ID0gbWJlZHRsc19jaXBoZXJfZ2V0X2Jhc2UoY2lwaGVyX2luZm8pLT5jdHhfYWxsb2NfZnVuYygpOwotICAgICAgICBpZiAoY3R4LT5jaXBoZXJfY3R4ID09IE5VTEwpIHsKLSAgICAgICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9DSVBIRVJfQUxMT0NfRkFJTEVEOwotICAgICAgICB9Ci0gICAgfQotCi0gICAgY3R4LT5jaXBoZXJfaW5mbyA9IGNpcGhlcl9pbmZvOwotCi0gICAgcmV0dXJuIDA7Ci19Ci0KLSNpZiBkZWZpbmVkKE1CRURUTFNfVVNFX1BTQV9DUllQVE8pICYmICFkZWZpbmVkKE1CRURUTFNfREVQUkVDQVRFRF9SRU1PVkVEKQotaW50IG1iZWR0bHNfY2lwaGVyX3NldHVwX3BzYShtYmVkdGxzX2NpcGhlcl9jb250ZXh0X3QgKmN0eCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbWJlZHRsc19jaXBoZXJfaW5mb190ICpjaXBoZXJfaW5mbywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IHRhZ2xlbikKLXsKLSAgICBwc2FfYWxnb3JpdGhtX3QgYWxnOwotICAgIG1iZWR0bHNfY2lwaGVyX2NvbnRleHRfcHNhICpjaXBoZXJfcHNhOwotCi0gICAgaWYgKE5VTEwgPT0gY2lwaGVyX2luZm8gfHwgTlVMTCA9PSBjdHgpIHsKLSAgICAgICAgcmV0dXJuIE1CRURUTFNfRVJSX0NJUEhFUl9CQURfSU5QVVRfREFUQTsKLSAgICB9Ci0KLSAgICAvKiBDaGVjayB0aGF0IHRoZSB1bmRlcmx5aW5nIGNpcGhlciBtb2RlIGFuZCBjaXBoZXIgdHlwZSBhcmUKLSAgICAgKiBzdXBwb3J0ZWQgYnkgdGhlIHVuZGVybHlpbmcgUFNBIENyeXB0byBpbXBsZW1lbnRhdGlvbi4gKi8KLSAgICBhbGcgPSBtYmVkdGxzX3BzYV90cmFuc2xhdGVfY2lwaGVyX21vZGUoKChtYmVkdGxzX2NpcGhlcl9tb2RlX3QpIGNpcGhlcl9pbmZvLT5tb2RlKSwgdGFnbGVuKTsKLSAgICBpZiAoYWxnID09IDApIHsKLSAgICAgICAgcmV0dXJuIE1CRURUTFNfRVJSX0NJUEhFUl9GRUFUVVJFX1VOQVZBSUxBQkxFOwotICAgIH0KLSAgICBpZiAobWJlZHRsc19wc2FfdHJhbnNsYXRlX2NpcGhlcl90eXBlKCgobWJlZHRsc19jaXBoZXJfdHlwZV90KSBjaXBoZXJfaW5mby0+dHlwZSkpID09IDApIHsKLSAgICAgICAgcmV0dXJuIE1CRURUTFNfRVJSX0NJUEhFUl9GRUFUVVJFX1VOQVZBSUxBQkxFOwotICAgIH0KLQotICAgIG1lbXNldChjdHgsIDAsIHNpemVvZihtYmVkdGxzX2NpcGhlcl9jb250ZXh0X3QpKTsKLQotICAgIGNpcGhlcl9wc2EgPSBtYmVkdGxzX2NhbGxvYygxLCBzaXplb2YobWJlZHRsc19jaXBoZXJfY29udGV4dF9wc2EpKTsKLSAgICBpZiAoY2lwaGVyX3BzYSA9PSBOVUxMKSB7Ci0gICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9DSVBIRVJfQUxMT0NfRkFJTEVEOwotICAgIH0KLSAgICBjaXBoZXJfcHNhLT5hbGcgID0gYWxnOwotICAgIGN0eC0+Y2lwaGVyX2N0eCAgPSBjaXBoZXJfcHNhOwotICAgIGN0eC0+Y2lwaGVyX2luZm8gPSBjaXBoZXJfaW5mbzsKLSAgICBjdHgtPnBzYV9lbmFibGVkID0gMTsKLSAgICByZXR1cm4gMDsKLX0KLSNlbmRpZiAvKiBNQkVEVExTX1VTRV9QU0FfQ1JZUFRPICYmICFNQkVEVExTX0RFUFJFQ0FURURfUkVNT1ZFRCAqLwotCi1pbnQgbWJlZHRsc19jaXBoZXJfc2V0a2V5KG1iZWR0bHNfY2lwaGVyX2NvbnRleHRfdCAqY3R4LAotICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1bnNpZ25lZCBjaGFyICprZXksCi0gICAgICAgICAgICAgICAgICAgICAgICAgIGludCBrZXlfYml0bGVuLAotICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBtYmVkdGxzX29wZXJhdGlvbl90IG9wZXJhdGlvbikKLXsKLSAgICBpZiAob3BlcmF0aW9uICE9IE1CRURUTFNfRU5DUllQVCAmJiBvcGVyYXRpb24gIT0gTUJFRFRMU19ERUNSWVBUKSB7Ci0gICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9DSVBIRVJfQkFEX0lOUFVUX0RBVEE7Ci0gICAgfQotICAgIGlmIChjdHgtPmNpcGhlcl9pbmZvID09IE5VTEwpIHsKLSAgICAgICAgcmV0dXJuIE1CRURUTFNfRVJSX0NJUEhFUl9CQURfSU5QVVRfREFUQTsKLSAgICB9Ci0jaWYgZGVmaW5lZChNQkVEVExTX0JMT0NLX0NJUEhFUl9OT19ERUNSWVBUKQotICAgIGlmIChNQkVEVExTX01PREVfRUNCID09ICgobWJlZHRsc19jaXBoZXJfbW9kZV90KSBjdHgtPmNpcGhlcl9pbmZvLT5tb2RlKSAmJgotICAgICAgICBNQkVEVExTX0RFQ1JZUFQgPT0gb3BlcmF0aW9uKSB7Ci0gICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9DSVBIRVJfRkVBVFVSRV9VTkFWQUlMQUJMRTsKLSAgICB9Ci0jZW5kaWYKLQotI2lmIGRlZmluZWQoTUJFRFRMU19VU0VfUFNBX0NSWVBUTykgJiYgIWRlZmluZWQoTUJFRFRMU19ERVBSRUNBVEVEX1JFTU9WRUQpCi0gICAgaWYgKGN0eC0+cHNhX2VuYWJsZWQgPT0gMSkgewotICAgICAgICBtYmVkdGxzX2NpcGhlcl9jb250ZXh0X3BzYSAqIGNvbnN0IGNpcGhlcl9wc2EgPQotICAgICAgICAgICAgKG1iZWR0bHNfY2lwaGVyX2NvbnRleHRfcHNhICopIGN0eC0+Y2lwaGVyX2N0eDsKLQotICAgICAgICBzaXplX3QgY29uc3Qga2V5X2J5dGVsZW4gPSAoKHNpemVfdCkga2V5X2JpdGxlbiArIDcpIC8gODsKLQotICAgICAgICBwc2Ffc3RhdHVzX3Qgc3RhdHVzOwotICAgICAgICBwc2Ffa2V5X3R5cGVfdCBrZXlfdHlwZTsKLSAgICAgICAgcHNhX2tleV9hdHRyaWJ1dGVzX3QgYXR0cmlidXRlcyA9IFBTQV9LRVlfQVRUUklCVVRFU19JTklUOwotCi0gICAgICAgIC8qIFBTQSBDcnlwdG8gQVBJIG9ubHkgYWNjZXB0cyBieXRlLWFsaWduZWQga2V5cy4gKi8KLSAgICAgICAgaWYgKGtleV9iaXRsZW4gJSA4ICE9IDApIHsKLSAgICAgICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9DSVBIRVJfQkFEX0lOUFVUX0RBVEE7Ci0gICAgICAgIH0KLQotICAgICAgICAvKiBEb24ndCBhbGxvdyBrZXlzIHRvIGJlIHNldCBtdWx0aXBsZSB0aW1lcy4gKi8KLSAgICAgICAgaWYgKGNpcGhlcl9wc2EtPnNsb3Rfc3RhdGUgIT0gTUJFRFRMU19DSVBIRVJfUFNBX0tFWV9VTlNFVCkgewotICAgICAgICAgICAgcmV0dXJuIE1CRURUTFNfRVJSX0NJUEhFUl9CQURfSU5QVVRfREFUQTsKLSAgICAgICAgfQotCi0gICAgICAgIGtleV90eXBlID0gbWJlZHRsc19wc2FfdHJhbnNsYXRlX2NpcGhlcl90eXBlKAotICAgICAgICAgICAgKChtYmVkdGxzX2NpcGhlcl90eXBlX3QpIGN0eC0+Y2lwaGVyX2luZm8tPnR5cGUpKTsKLSAgICAgICAgaWYgKGtleV90eXBlID09IDApIHsKLSAgICAgICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9DSVBIRVJfRkVBVFVSRV9VTkFWQUlMQUJMRTsKLSAgICAgICAgfQotICAgICAgICBwc2Ffc2V0X2tleV90eXBlKCZhdHRyaWJ1dGVzLCBrZXlfdHlwZSk7Ci0KLSAgICAgICAgLyogTWJlZCBUTFMnIGNpcGhlciBsYXllciBkb2Vzbid0IGVuZm9yY2UgdGhlIG1vZGUgb2Ygb3BlcmF0aW9uCi0gICAgICAgICAqIChlbmNyeXB0IHZzLiBkZWNyeXB0KTogaXQgaXMgcG9zc2libGUgdG8gc2V0dXAgYSBrZXkgZm9yIGVuY3J5cHRpb24KLSAgICAgICAgICogYW5kIHVzZSBpdCBmb3IgQUVBRCBkZWNyeXB0aW9uLiBVbnRpbCB0ZXN0cyByZWx5aW5nIG9uIHRoaXMKLSAgICAgICAgICogYXJlIGNoYW5nZWQsIGFsbG93IGFueSB1c2FnZSBpbiBQU0EuICovCi0gICAgICAgIHBzYV9zZXRfa2V5X3VzYWdlX2ZsYWdzKCZhdHRyaWJ1dGVzLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQU0FfS0VZX1VTQUdFX0VOQ1JZUFQgfCBQU0FfS0VZX1VTQUdFX0RFQ1JZUFQpOwotICAgICAgICBwc2Ffc2V0X2tleV9hbGdvcml0aG0oJmF0dHJpYnV0ZXMsIGNpcGhlcl9wc2EtPmFsZyk7Ci0KLSAgICAgICAgc3RhdHVzID0gcHNhX2ltcG9ydF9rZXkoJmF0dHJpYnV0ZXMsIGtleSwga2V5X2J5dGVsZW4sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZjaXBoZXJfcHNhLT5zbG90KTsKLSAgICAgICAgc3dpdGNoIChzdGF0dXMpIHsKLSAgICAgICAgICAgIGNhc2UgUFNBX1NVQ0NFU1M6Ci0gICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICBjYXNlIFBTQV9FUlJPUl9JTlNVRkZJQ0lFTlRfTUVNT1JZOgotICAgICAgICAgICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9DSVBIRVJfQUxMT0NfRkFJTEVEOwotICAgICAgICAgICAgY2FzZSBQU0FfRVJST1JfTk9UX1NVUFBPUlRFRDoKLSAgICAgICAgICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfQ0lQSEVSX0ZFQVRVUkVfVU5BVkFJTEFCTEU7Ci0gICAgICAgICAgICBkZWZhdWx0OgotICAgICAgICAgICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9QTEFURk9STV9IV19BQ0NFTF9GQUlMRUQ7Ci0gICAgICAgIH0KLSAgICAgICAgLyogSW5kaWNhdGUgdGhhdCB3ZSBvd24gdGhlIGtleSBzbG90IGFuZCBuZWVkIHRvCi0gICAgICAgICAqIGRlc3Ryb3kgaXQgaW4gbWJlZHRsc19jaXBoZXJfZnJlZSgpLiAqLwotICAgICAgICBjaXBoZXJfcHNhLT5zbG90X3N0YXRlID0gTUJFRFRMU19DSVBIRVJfUFNBX0tFWV9PV05FRDsKLQotICAgICAgICBjdHgtPmtleV9iaXRsZW4gPSBrZXlfYml0bGVuOwotICAgICAgICBjdHgtPm9wZXJhdGlvbiA9IG9wZXJhdGlvbjsKLSAgICAgICAgcmV0dXJuIDA7Ci0gICAgfQotI2VuZGlmIC8qIE1CRURUTFNfVVNFX1BTQV9DUllQVE8gJiYgIU1CRURUTFNfREVQUkVDQVRFRF9SRU1PVkVEICovCi0KLSAgICBpZiAoKGN0eC0+Y2lwaGVyX2luZm8tPmZsYWdzICYgTUJFRFRMU19DSVBIRVJfVkFSSUFCTEVfS0VZX0xFTikgPT0gMCAmJgotICAgICAgICAoaW50KSBtYmVkdGxzX2NpcGhlcl9pbmZvX2dldF9rZXlfYml0bGVuKGN0eC0+Y2lwaGVyX2luZm8pICE9IGtleV9iaXRsZW4pIHsKLSAgICAgICAgcmV0dXJuIE1CRURUTFNfRVJSX0NJUEhFUl9CQURfSU5QVVRfREFUQTsKLSAgICB9Ci0KLSAgICBjdHgtPmtleV9iaXRsZW4gPSBrZXlfYml0bGVuOwotICAgIGN0eC0+b3BlcmF0aW9uID0gb3BlcmF0aW9uOwotCi0jaWYgIWRlZmluZWQoTUJFRFRMU19CTE9DS19DSVBIRVJfTk9fREVDUllQVCkKLSAgICAvKgotICAgICAqIEZvciBPRkIsIENGQiBhbmQgQ1RSIG1vZGUgYWx3YXlzIHVzZSB0aGUgZW5jcnlwdGlvbiBrZXkgc2NoZWR1bGUKLSAgICAgKi8KLSAgICBpZiAoTUJFRFRMU19FTkNSWVBUID09IG9wZXJhdGlvbiB8fAotICAgICAgICBNQkVEVExTX01PREVfQ0ZCID09ICgobWJlZHRsc19jaXBoZXJfbW9kZV90KSBjdHgtPmNpcGhlcl9pbmZvLT5tb2RlKSB8fAotICAgICAgICBNQkVEVExTX01PREVfT0ZCID09ICgobWJlZHRsc19jaXBoZXJfbW9kZV90KSBjdHgtPmNpcGhlcl9pbmZvLT5tb2RlKSB8fAotICAgICAgICBNQkVEVExTX01PREVfQ1RSID09ICgobWJlZHRsc19jaXBoZXJfbW9kZV90KSBjdHgtPmNpcGhlcl9pbmZvLT5tb2RlKSkgewotICAgICAgICByZXR1cm4gbWJlZHRsc19jaXBoZXJfZ2V0X2Jhc2UoY3R4LT5jaXBoZXJfaW5mbyktPnNldGtleV9lbmNfZnVuYyhjdHgtPmNpcGhlcl9jdHgsIGtleSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3R4LT5rZXlfYml0bGVuKTsKLSAgICB9Ci0KLSAgICBpZiAoTUJFRFRMU19ERUNSWVBUID09IG9wZXJhdGlvbikgewotICAgICAgICByZXR1cm4gbWJlZHRsc19jaXBoZXJfZ2V0X2Jhc2UoY3R4LT5jaXBoZXJfaW5mbyktPnNldGtleV9kZWNfZnVuYyhjdHgtPmNpcGhlcl9jdHgsIGtleSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3R4LT5rZXlfYml0bGVuKTsKLSAgICB9Ci0jZWxzZQotICAgIGlmIChvcGVyYXRpb24gPT0gTUJFRFRMU19FTkNSWVBUIHx8IG9wZXJhdGlvbiA9PSBNQkVEVExTX0RFQ1JZUFQpIHsKLSAgICAgICAgcmV0dXJuIG1iZWR0bHNfY2lwaGVyX2dldF9iYXNlKGN0eC0+Y2lwaGVyX2luZm8pLT5zZXRrZXlfZW5jX2Z1bmMoY3R4LT5jaXBoZXJfY3R4LCBrZXksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGN0eC0+a2V5X2JpdGxlbik7Ci0gICAgfQotI2VuZGlmCi0KLSAgICByZXR1cm4gTUJFRFRMU19FUlJfQ0lQSEVSX0JBRF9JTlBVVF9EQVRBOwotfQotCi1pbnQgbWJlZHRsc19jaXBoZXJfc2V0X2l2KG1iZWR0bHNfY2lwaGVyX2NvbnRleHRfdCAqY3R4LAotICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1bnNpZ25lZCBjaGFyICppdiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IGl2X2xlbikKLXsKLSAgICBzaXplX3QgYWN0dWFsX2l2X3NpemU7Ci0KLSAgICBpZiAoY3R4LT5jaXBoZXJfaW5mbyA9PSBOVUxMKSB7Ci0gICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9DSVBIRVJfQkFEX0lOUFVUX0RBVEE7Ci0gICAgfQotI2lmIGRlZmluZWQoTUJFRFRMU19VU0VfUFNBX0NSWVBUTykgJiYgIWRlZmluZWQoTUJFRFRMU19ERVBSRUNBVEVEX1JFTU9WRUQpCi0gICAgaWYgKGN0eC0+cHNhX2VuYWJsZWQgPT0gMSkgewotICAgICAgICAvKiBXaGlsZSBQU0EgQ3J5cHRvIGhhcyBhbiBBUEkgZm9yIG11bHRpcGFydAotICAgICAgICAgKiBvcGVyYXRpb25zLCB3ZSBjdXJyZW50bHkgZG9uJ3QgbWFrZSBpdAotICAgICAgICAgKiBhY2Nlc3NpYmxlIHRocm91Z2ggdGhlIGNpcGhlciBsYXllci4gKi8KLSAgICAgICAgcmV0dXJuIE1CRURUTFNfRVJSX0NJUEhFUl9GRUFUVVJFX1VOQVZBSUxBQkxFOwotICAgIH0KLSNlbmRpZiAvKiBNQkVEVExTX1VTRV9QU0FfQ1JZUFRPICYmICFNQkVEVExTX0RFUFJFQ0FURURfUkVNT1ZFRCAqLwotCi0gICAgLyogYXZvaWQgYnVmZmVyIG92ZXJmbG93IGluIGN0eC0+aXYgKi8KLSAgICBpZiAoaXZfbGVuID4gTUJFRFRMU19NQVhfSVZfTEVOR1RIKSB7Ci0gICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9DSVBIRVJfRkVBVFVSRV9VTkFWQUlMQUJMRTsKLSAgICB9Ci0KLSAgICBpZiAoKGN0eC0+Y2lwaGVyX2luZm8tPmZsYWdzICYgTUJFRFRMU19DSVBIRVJfVkFSSUFCTEVfSVZfTEVOKSAhPSAwKSB7Ci0gICAgICAgIGFjdHVhbF9pdl9zaXplID0gaXZfbGVuOwotICAgIH0gZWxzZSB7Ci0gICAgICAgIGFjdHVhbF9pdl9zaXplID0gbWJlZHRsc19jaXBoZXJfaW5mb19nZXRfaXZfc2l6ZShjdHgtPmNpcGhlcl9pbmZvKTsKLQotICAgICAgICAvKiBhdm9pZCByZWFkaW5nIHBhc3QgdGhlIGVuZCBvZiBpbnB1dCBidWZmZXIgKi8KLSAgICAgICAgaWYgKGFjdHVhbF9pdl9zaXplID4gaXZfbGVuKSB7Ci0gICAgICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfQ0lQSEVSX0JBRF9JTlBVVF9EQVRBOwotICAgICAgICB9Ci0gICAgfQotCi0jaWYgZGVmaW5lZChNQkVEVExTX0NIQUNIQTIwX0MpCi0gICAgaWYgKCgobWJlZHRsc19jaXBoZXJfdHlwZV90KSBjdHgtPmNpcGhlcl9pbmZvLT50eXBlKSA9PSBNQkVEVExTX0NJUEhFUl9DSEFDSEEyMCkgewotICAgICAgICAvKiBFdmVuIHRob3VnaCB0aGUgYWN0dWFsX2l2X3NpemUgaXMgb3ZlcndyaXR0ZW4gd2l0aCBhIGNvcnJlY3QgdmFsdWUKLSAgICAgICAgICogb2YgMTIgZnJvbSB0aGUgY2lwaGVyIGluZm8sIHJldHVybiBhbiBlcnJvciB0byBpbmRpY2F0ZSB0aGF0Ci0gICAgICAgICAqIHRoZSBpbnB1dCBpdl9sZW4gaXMgd3JvbmcuICovCi0gICAgICAgIGlmIChpdl9sZW4gIT0gMTIpIHsKLSAgICAgICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9DSVBIRVJfQkFEX0lOUFVUX0RBVEE7Ci0gICAgICAgIH0KLQotICAgICAgICBpZiAoMCAhPSBtYmVkdGxzX2NoYWNoYTIwX3N0YXJ0cygobWJlZHRsc19jaGFjaGEyMF9jb250ZXh0ICopIGN0eC0+Y2lwaGVyX2N0eCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXYsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDBVKSkgeyAgIC8qIEluaXRpYWwgY291bnRlciB2YWx1ZSAqLwotICAgICAgICAgICAgcmV0dXJuIE1CRURUTFNfRVJSX0NJUEhFUl9CQURfSU5QVVRfREFUQTsKLSAgICAgICAgfQotICAgIH0KLSNpZiBkZWZpbmVkKE1CRURUTFNfQ0hBQ0hBUE9MWV9DKQotICAgIGlmICgoKG1iZWR0bHNfY2lwaGVyX3R5cGVfdCkgY3R4LT5jaXBoZXJfaW5mby0+dHlwZSkgPT0gTUJFRFRMU19DSVBIRVJfQ0hBQ0hBMjBfUE9MWTEzMDUgJiYKLSAgICAgICAgaXZfbGVuICE9IDEyKSB7Ci0gICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9DSVBIRVJfQkFEX0lOUFVUX0RBVEE7Ci0gICAgfQotI2VuZGlmCi0jZW5kaWYKLQotI2lmIGRlZmluZWQoTUJFRFRMU19HQ01fQykKLSAgICBpZiAoTUJFRFRMU19NT0RFX0dDTSA9PSAoKG1iZWR0bHNfY2lwaGVyX21vZGVfdCkgY3R4LT5jaXBoZXJfaW5mby0+bW9kZSkpIHsKLSAgICAgICAgcmV0dXJuIG1iZWR0bHNfZ2NtX3N0YXJ0cygobWJlZHRsc19nY21fY29udGV4dCAqKSBjdHgtPmNpcGhlcl9jdHgsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3R4LT5vcGVyYXRpb24sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXYsIGl2X2xlbik7Ci0gICAgfQotI2VuZGlmCi0KLSNpZiBkZWZpbmVkKE1CRURUTFNfQ0NNX0MpCi0gICAgaWYgKE1CRURUTFNfTU9ERV9DQ01fU1RBUl9OT19UQUcgPT0gKChtYmVkdGxzX2NpcGhlcl9tb2RlX3QpIGN0eC0+Y2lwaGVyX2luZm8tPm1vZGUpKSB7Ci0gICAgICAgIGludCBzZXRfbGVuZ3Roc19yZXN1bHQ7Ci0gICAgICAgIGludCBjY21fc3Rhcl9tb2RlOwotCi0gICAgICAgIHNldF9sZW5ndGhzX3Jlc3VsdCA9IG1iZWR0bHNfY2NtX3NldF9sZW5ndGhzKAotICAgICAgICAgICAgKG1iZWR0bHNfY2NtX2NvbnRleHQgKikgY3R4LT5jaXBoZXJfY3R4LAotICAgICAgICAgICAgMCwgMCwgMCk7Ci0gICAgICAgIGlmIChzZXRfbGVuZ3Roc19yZXN1bHQgIT0gMCkgewotICAgICAgICAgICAgcmV0dXJuIHNldF9sZW5ndGhzX3Jlc3VsdDsKLSAgICAgICAgfQotCi0gICAgICAgIGlmIChjdHgtPm9wZXJhdGlvbiA9PSBNQkVEVExTX0RFQ1JZUFQpIHsKLSAgICAgICAgICAgIGNjbV9zdGFyX21vZGUgPSBNQkVEVExTX0NDTV9TVEFSX0RFQ1JZUFQ7Ci0gICAgICAgIH0gZWxzZSBpZiAoY3R4LT5vcGVyYXRpb24gPT0gTUJFRFRMU19FTkNSWVBUKSB7Ci0gICAgICAgICAgICBjY21fc3Rhcl9tb2RlID0gTUJFRFRMU19DQ01fU1RBUl9FTkNSWVBUOwotICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgcmV0dXJuIE1CRURUTFNfRVJSX0NJUEhFUl9CQURfSU5QVVRfREFUQTsKLSAgICAgICAgfQotCi0gICAgICAgIHJldHVybiBtYmVkdGxzX2NjbV9zdGFydHMoKG1iZWR0bHNfY2NtX2NvbnRleHQgKikgY3R4LT5jaXBoZXJfY3R4LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNjbV9zdGFyX21vZGUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXYsIGl2X2xlbik7Ci0gICAgfQotI2VuZGlmCi0KLSAgICBpZiAoYWN0dWFsX2l2X3NpemUgIT0gMCkgewotICAgICAgICBtZW1jcHkoY3R4LT5pdiwgaXYsIGFjdHVhbF9pdl9zaXplKTsKLSAgICAgICAgY3R4LT5pdl9zaXplID0gYWN0dWFsX2l2X3NpemU7Ci0gICAgfQotCi0gICAgcmV0dXJuIDA7Ci19Ci0KLWludCBtYmVkdGxzX2NpcGhlcl9yZXNldChtYmVkdGxzX2NpcGhlcl9jb250ZXh0X3QgKmN0eCkKLXsKLSAgICBpZiAoY3R4LT5jaXBoZXJfaW5mbyA9PSBOVUxMKSB7Ci0gICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9DSVBIRVJfQkFEX0lOUFVUX0RBVEE7Ci0gICAgfQotCi0jaWYgZGVmaW5lZChNQkVEVExTX1VTRV9QU0FfQ1JZUFRPKSAmJiAhZGVmaW5lZChNQkVEVExTX0RFUFJFQ0FURURfUkVNT1ZFRCkKLSAgICBpZiAoY3R4LT5wc2FfZW5hYmxlZCA9PSAxKSB7Ci0gICAgICAgIC8qIFdlIGRvbid0IHN1cHBvcnQgcmVzZXR0aW5nIFBTQS1iYXNlZAotICAgICAgICAgKiBjaXBoZXIgY29udGV4dHMsIHlldC4gKi8KLSAgICAgICAgcmV0dXJuIE1CRURUTFNfRVJSX0NJUEhFUl9GRUFUVVJFX1VOQVZBSUxBQkxFOwotICAgIH0KLSNlbmRpZiAvKiBNQkVEVExTX1VTRV9QU0FfQ1JZUFRPICYmICFNQkVEVExTX0RFUFJFQ0FURURfUkVNT1ZFRCAqLwotCi0gICAgY3R4LT51bnByb2Nlc3NlZF9sZW4gPSAwOwotCi0gICAgcmV0dXJuIDA7Ci19Ci0KLSNpZiBkZWZpbmVkKE1CRURUTFNfR0NNX0MpIHx8IGRlZmluZWQoTUJFRFRMU19DSEFDSEFQT0xZX0MpCi1pbnQgbWJlZHRsc19jaXBoZXJfdXBkYXRlX2FkKG1iZWR0bHNfY2lwaGVyX2NvbnRleHRfdCAqY3R4LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1bnNpZ25lZCBjaGFyICphZCwgc2l6ZV90IGFkX2xlbikKLXsKLSAgICBpZiAoY3R4LT5jaXBoZXJfaW5mbyA9PSBOVUxMKSB7Ci0gICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9DSVBIRVJfQkFEX0lOUFVUX0RBVEE7Ci0gICAgfQotCi0jaWYgZGVmaW5lZChNQkVEVExTX1VTRV9QU0FfQ1JZUFRPKSAmJiAhZGVmaW5lZChNQkVEVExTX0RFUFJFQ0FURURfUkVNT1ZFRCkKLSAgICBpZiAoY3R4LT5wc2FfZW5hYmxlZCA9PSAxKSB7Ci0gICAgICAgIC8qIFdoaWxlIFBTQSBDcnlwdG8gaGFzIGFuIEFQSSBmb3IgbXVsdGlwYXJ0Ci0gICAgICAgICAqIG9wZXJhdGlvbnMsIHdlIGN1cnJlbnRseSBkb24ndCBtYWtlIGl0Ci0gICAgICAgICAqIGFjY2Vzc2libGUgdGhyb3VnaCB0aGUgY2lwaGVyIGxheWVyLiAqLwotICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfQ0lQSEVSX0ZFQVRVUkVfVU5BVkFJTEFCTEU7Ci0gICAgfQotI2VuZGlmIC8qIE1CRURUTFNfVVNFX1BTQV9DUllQVE8gJiYgIU1CRURUTFNfREVQUkVDQVRFRF9SRU1PVkVEICovCi0KLSNpZiBkZWZpbmVkKE1CRURUTFNfR0NNX0MpCi0gICAgaWYgKE1CRURUTFNfTU9ERV9HQ00gPT0gKChtYmVkdGxzX2NpcGhlcl9tb2RlX3QpIGN0eC0+Y2lwaGVyX2luZm8tPm1vZGUpKSB7Ci0gICAgICAgIHJldHVybiBtYmVkdGxzX2djbV91cGRhdGVfYWQoKG1iZWR0bHNfZ2NtX2NvbnRleHQgKikgY3R4LT5jaXBoZXJfY3R4LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFkLCBhZF9sZW4pOwotICAgIH0KLSNlbmRpZgotCi0jaWYgZGVmaW5lZChNQkVEVExTX0NIQUNIQVBPTFlfQykKLSAgICBpZiAoTUJFRFRMU19DSVBIRVJfQ0hBQ0hBMjBfUE9MWTEzMDUgPT0gKChtYmVkdGxzX2NpcGhlcl90eXBlX3QpIGN0eC0+Y2lwaGVyX2luZm8tPnR5cGUpKSB7Ci0gICAgICAgIGludCByZXN1bHQ7Ci0gICAgICAgIG1iZWR0bHNfY2hhY2hhcG9seV9tb2RlX3QgbW9kZTsKLQotICAgICAgICBtb2RlID0gKGN0eC0+b3BlcmF0aW9uID09IE1CRURUTFNfRU5DUllQVCkKLSAgICAgICAgICAgICAgICA/IE1CRURUTFNfQ0hBQ0hBUE9MWV9FTkNSWVBUCi0gICAgICAgICAgICAgICAgOiBNQkVEVExTX0NIQUNIQVBPTFlfREVDUllQVDsKLQotICAgICAgICByZXN1bHQgPSBtYmVkdGxzX2NoYWNoYXBvbHlfc3RhcnRzKChtYmVkdGxzX2NoYWNoYXBvbHlfY29udGV4dCAqKSBjdHgtPmNpcGhlcl9jdHgsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3R4LT5pdiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtb2RlKTsKLSAgICAgICAgaWYgKHJlc3VsdCAhPSAwKSB7Ci0gICAgICAgICAgICByZXR1cm4gcmVzdWx0OwotICAgICAgICB9Ci0KLSAgICAgICAgcmV0dXJuIG1iZWR0bHNfY2hhY2hhcG9seV91cGRhdGVfYWFkKChtYmVkdGxzX2NoYWNoYXBvbHlfY29udGV4dCAqKSBjdHgtPmNpcGhlcl9jdHgsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhZCwgYWRfbGVuKTsKLSAgICB9Ci0jZW5kaWYKLQotICAgIHJldHVybiBNQkVEVExTX0VSUl9DSVBIRVJfRkVBVFVSRV9VTkFWQUlMQUJMRTsKLX0KLSNlbmRpZiAvKiBNQkVEVExTX0dDTV9DIHx8IE1CRURUTFNfQ0hBQ0hBUE9MWV9DICovCi0KLWludCBtYmVkdGxzX2NpcGhlcl91cGRhdGUobWJlZHRsc19jaXBoZXJfY29udGV4dF90ICpjdHgsIGNvbnN0IHVuc2lnbmVkIGNoYXIgKmlucHV0LAotICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgaWxlbiwgdW5zaWduZWQgY2hhciAqb3V0cHV0LCBzaXplX3QgKm9sZW4pCi17Ci0gICAgaW50IHJldCA9IE1CRURUTFNfRVJSX0VSUk9SX0NPUlJVUFRJT05fREVURUNURUQ7Ci0gICAgc2l6ZV90IGJsb2NrX3NpemU7Ci0KLSAgICBpZiAoY3R4LT5jaXBoZXJfaW5mbyA9PSBOVUxMKSB7Ci0gICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9DSVBIRVJfQkFEX0lOUFVUX0RBVEE7Ci0gICAgfQotCi0jaWYgZGVmaW5lZChNQkVEVExTX1VTRV9QU0FfQ1JZUFRPKSAmJiAhZGVmaW5lZChNQkVEVExTX0RFUFJFQ0FURURfUkVNT1ZFRCkKLSAgICBpZiAoY3R4LT5wc2FfZW5hYmxlZCA9PSAxKSB7Ci0gICAgICAgIC8qIFdoaWxlIFBTQSBDcnlwdG8gaGFzIGFuIEFQSSBmb3IgbXVsdGlwYXJ0Ci0gICAgICAgICAqIG9wZXJhdGlvbnMsIHdlIGN1cnJlbnRseSBkb24ndCBtYWtlIGl0Ci0gICAgICAgICAqIGFjY2Vzc2libGUgdGhyb3VnaCB0aGUgY2lwaGVyIGxheWVyLiAqLwotICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfQ0lQSEVSX0ZFQVRVUkVfVU5BVkFJTEFCTEU7Ci0gICAgfQotI2VuZGlmIC8qIE1CRURUTFNfVVNFX1BTQV9DUllQVE8gJiYgIU1CRURUTFNfREVQUkVDQVRFRF9SRU1PVkVEICovCi0KLSAgICAqb2xlbiA9IDA7Ci0gICAgYmxvY2tfc2l6ZSA9IG1iZWR0bHNfY2lwaGVyX2dldF9ibG9ja19zaXplKGN0eCk7Ci0gICAgaWYgKDAgPT0gYmxvY2tfc2l6ZSkgewotICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfQ0lQSEVSX0lOVkFMSURfQ09OVEVYVDsKLSAgICB9Ci0KLSAgICBpZiAoKChtYmVkdGxzX2NpcGhlcl9tb2RlX3QpIGN0eC0+Y2lwaGVyX2luZm8tPm1vZGUpID09IE1CRURUTFNfTU9ERV9FQ0IpIHsKLSAgICAgICAgaWYgKGlsZW4gIT0gYmxvY2tfc2l6ZSkgewotICAgICAgICAgICAgcmV0dXJuIE1CRURUTFNfRVJSX0NJUEhFUl9GVUxMX0JMT0NLX0VYUEVDVEVEOwotICAgICAgICB9Ci0KLSAgICAgICAgKm9sZW4gPSBpbGVuOwotCi0gICAgICAgIGlmICgwICE9IChyZXQgPSBtYmVkdGxzX2NpcGhlcl9nZXRfYmFzZShjdHgtPmNpcGhlcl9pbmZvKS0+ZWNiX2Z1bmMoY3R4LT5jaXBoZXJfY3R4LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGN0eC0+b3BlcmF0aW9uLCBpbnB1dCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvdXRwdXQpKSkgewotICAgICAgICAgICAgcmV0dXJuIHJldDsKLSAgICAgICAgfQotCi0gICAgICAgIHJldHVybiAwOwotICAgIH0KLQotI2lmIGRlZmluZWQoTUJFRFRMU19HQ01fQykKLSAgICBpZiAoKChtYmVkdGxzX2NpcGhlcl9tb2RlX3QpIGN0eC0+Y2lwaGVyX2luZm8tPm1vZGUpID09IE1CRURUTFNfTU9ERV9HQ00pIHsKLSAgICAgICAgcmV0dXJuIG1iZWR0bHNfZ2NtX3VwZGF0ZSgobWJlZHRsc19nY21fY29udGV4dCAqKSBjdHgtPmNpcGhlcl9jdHgsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5wdXQsIGlsZW4sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3V0cHV0LCBpbGVuLCBvbGVuKTsKLSAgICB9Ci0jZW5kaWYKLQotI2lmIGRlZmluZWQoTUJFRFRMU19DQ01fQykKLSAgICBpZiAoKChtYmVkdGxzX2NpcGhlcl9tb2RlX3QpIGN0eC0+Y2lwaGVyX2luZm8tPm1vZGUpID09IE1CRURUTFNfTU9ERV9DQ01fU1RBUl9OT19UQUcpIHsKLSAgICAgICAgcmV0dXJuIG1iZWR0bHNfY2NtX3VwZGF0ZSgobWJlZHRsc19jY21fY29udGV4dCAqKSBjdHgtPmNpcGhlcl9jdHgsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5wdXQsIGlsZW4sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3V0cHV0LCBpbGVuLCBvbGVuKTsKLSAgICB9Ci0jZW5kaWYKLQotI2lmIGRlZmluZWQoTUJFRFRMU19DSEFDSEFQT0xZX0MpCi0gICAgaWYgKCgobWJlZHRsc19jaXBoZXJfdHlwZV90KSBjdHgtPmNpcGhlcl9pbmZvLT50eXBlKSA9PSBNQkVEVExTX0NJUEhFUl9DSEFDSEEyMF9QT0xZMTMwNSkgewotICAgICAgICAqb2xlbiA9IGlsZW47Ci0gICAgICAgIHJldHVybiBtYmVkdGxzX2NoYWNoYXBvbHlfdXBkYXRlKChtYmVkdGxzX2NoYWNoYXBvbHlfY29udGV4dCAqKSBjdHgtPmNpcGhlcl9jdHgsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlsZW4sIGlucHV0LCBvdXRwdXQpOwotICAgIH0KLSNlbmRpZgotCi0gICAgaWYgKGlucHV0ID09IG91dHB1dCAmJgotICAgICAgICAoY3R4LT51bnByb2Nlc3NlZF9sZW4gIT0gMCB8fCBpbGVuICUgYmxvY2tfc2l6ZSkpIHsKLSAgICAgICAgcmV0dXJuIE1CRURUTFNfRVJSX0NJUEhFUl9CQURfSU5QVVRfREFUQTsKLSAgICB9Ci0KLSNpZiBkZWZpbmVkKE1CRURUTFNfQ0lQSEVSX01PREVfQ0JDKQotICAgIGlmICgoKG1iZWR0bHNfY2lwaGVyX21vZGVfdCkgY3R4LT5jaXBoZXJfaW5mby0+bW9kZSkgPT0gTUJFRFRMU19NT0RFX0NCQykgewotICAgICAgICBzaXplX3QgY29weV9sZW4gPSAwOwotCi0gICAgICAgIC8qCi0gICAgICAgICAqIElmIHRoZXJlIGlzIG5vdCBlbm91Z2ggZGF0YSBmb3IgYSBmdWxsIGJsb2NrLCBjYWNoZSBpdC4KLSAgICAgICAgICovCi0gICAgICAgIGlmICgoY3R4LT5vcGVyYXRpb24gPT0gTUJFRFRMU19ERUNSWVBUICYmIE5VTEwgIT0gY3R4LT5hZGRfcGFkZGluZyAmJgotICAgICAgICAgICAgIGlsZW4gPD0gYmxvY2tfc2l6ZSAtIGN0eC0+dW5wcm9jZXNzZWRfbGVuKSB8fAotICAgICAgICAgICAgKGN0eC0+b3BlcmF0aW9uID09IE1CRURUTFNfREVDUllQVCAmJiBOVUxMID09IGN0eC0+YWRkX3BhZGRpbmcgJiYKLSAgICAgICAgICAgICBpbGVuIDwgYmxvY2tfc2l6ZSAtIGN0eC0+dW5wcm9jZXNzZWRfbGVuKSB8fAotICAgICAgICAgICAgKGN0eC0+b3BlcmF0aW9uID09IE1CRURUTFNfRU5DUllQVCAmJgotICAgICAgICAgICAgIGlsZW4gPCBibG9ja19zaXplIC0gY3R4LT51bnByb2Nlc3NlZF9sZW4pKSB7Ci0gICAgICAgICAgICBtZW1jcHkoJihjdHgtPnVucHJvY2Vzc2VkX2RhdGFbY3R4LT51bnByb2Nlc3NlZF9sZW5dKSwgaW5wdXQsCi0gICAgICAgICAgICAgICAgICAgaWxlbik7Ci0KLSAgICAgICAgICAgIGN0eC0+dW5wcm9jZXNzZWRfbGVuICs9IGlsZW47Ci0gICAgICAgICAgICByZXR1cm4gMDsKLSAgICAgICAgfQotCi0gICAgICAgIC8qCi0gICAgICAgICAqIFByb2Nlc3MgY2FjaGVkIGRhdGEgZmlyc3QKLSAgICAgICAgICovCi0gICAgICAgIGlmICgwICE9IGN0eC0+dW5wcm9jZXNzZWRfbGVuKSB7Ci0gICAgICAgICAgICBjb3B5X2xlbiA9IGJsb2NrX3NpemUgLSBjdHgtPnVucHJvY2Vzc2VkX2xlbjsKLQotICAgICAgICAgICAgbWVtY3B5KCYoY3R4LT51bnByb2Nlc3NlZF9kYXRhW2N0eC0+dW5wcm9jZXNzZWRfbGVuXSksIGlucHV0LAotICAgICAgICAgICAgICAgICAgIGNvcHlfbGVuKTsKLQotICAgICAgICAgICAgaWYgKDAgIT0gKHJldCA9IG1iZWR0bHNfY2lwaGVyX2dldF9iYXNlKGN0eC0+Y2lwaGVyX2luZm8pLT5jYmNfZnVuYyhjdHgtPmNpcGhlcl9jdHgsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGN0eC0+b3BlcmF0aW9uLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBibG9ja19zaXplLCBjdHgtPml2LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdHgtPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnByb2Nlc3NlZF9kYXRhLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvdXRwdXQpKSkgewotICAgICAgICAgICAgICAgIHJldHVybiByZXQ7Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgICpvbGVuICs9IGJsb2NrX3NpemU7Ci0gICAgICAgICAgICBvdXRwdXQgKz0gYmxvY2tfc2l6ZTsKLSAgICAgICAgICAgIGN0eC0+dW5wcm9jZXNzZWRfbGVuID0gMDsKLQotICAgICAgICAgICAgaW5wdXQgKz0gY29weV9sZW47Ci0gICAgICAgICAgICBpbGVuIC09IGNvcHlfbGVuOwotICAgICAgICB9Ci0KLSAgICAgICAgLyoKLSAgICAgICAgICogQ2FjaGUgZmluYWwsIGluY29tcGxldGUgYmxvY2sKLSAgICAgICAgICovCi0gICAgICAgIGlmICgwICE9IGlsZW4pIHsKLSAgICAgICAgICAgIC8qIEVuY3J5cHRpb246IG9ubHkgY2FjaGUgcGFydGlhbCBibG9ja3MKLSAgICAgICAgICAgICAqIERlY3J5cHRpb24gdy8gcGFkZGluZzogYWx3YXlzIGtlZXAgYXQgbGVhc3Qgb25lIHdob2xlIGJsb2NrCi0gICAgICAgICAgICAgKiBEZWNyeXB0aW9uIHcvbyBwYWRkaW5nOiBvbmx5IGNhY2hlIHBhcnRpYWwgYmxvY2tzCi0gICAgICAgICAgICAgKi8KLSAgICAgICAgICAgIGNvcHlfbGVuID0gaWxlbiAlIGJsb2NrX3NpemU7Ci0gICAgICAgICAgICBpZiAoY29weV9sZW4gPT0gMCAmJgotICAgICAgICAgICAgICAgIGN0eC0+b3BlcmF0aW9uID09IE1CRURUTFNfREVDUllQVCAmJgotICAgICAgICAgICAgICAgIE5VTEwgIT0gY3R4LT5hZGRfcGFkZGluZykgewotICAgICAgICAgICAgICAgIGNvcHlfbGVuID0gYmxvY2tfc2l6ZTsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgbWVtY3B5KGN0eC0+dW5wcm9jZXNzZWRfZGF0YSwgJihpbnB1dFtpbGVuIC0gY29weV9sZW5dKSwKLSAgICAgICAgICAgICAgICAgICBjb3B5X2xlbik7Ci0KLSAgICAgICAgICAgIGN0eC0+dW5wcm9jZXNzZWRfbGVuICs9IGNvcHlfbGVuOwotICAgICAgICAgICAgaWxlbiAtPSBjb3B5X2xlbjsKLSAgICAgICAgfQotCi0gICAgICAgIC8qCi0gICAgICAgICAqIFByb2Nlc3MgcmVtYWluaW5nIGZ1bGwgYmxvY2tzCi0gICAgICAgICAqLwotICAgICAgICBpZiAoaWxlbikgewotICAgICAgICAgICAgaWYgKDAgIT0gKHJldCA9IG1iZWR0bHNfY2lwaGVyX2dldF9iYXNlKGN0eC0+Y2lwaGVyX2luZm8pLT5jYmNfZnVuYyhjdHgtPmNpcGhlcl9jdHgsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGN0eC0+b3BlcmF0aW9uLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbGVuLCBjdHgtPml2LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnB1dCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3V0cHV0KSkpIHsKLSAgICAgICAgICAgICAgICByZXR1cm4gcmV0OwotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICAqb2xlbiArPSBpbGVuOwotICAgICAgICB9Ci0KLSAgICAgICAgcmV0dXJuIDA7Ci0gICAgfQotI2VuZGlmIC8qIE1CRURUTFNfQ0lQSEVSX01PREVfQ0JDICovCi0KLSNpZiBkZWZpbmVkKE1CRURUTFNfQ0lQSEVSX01PREVfQ0ZCKQotICAgIGlmICgoKG1iZWR0bHNfY2lwaGVyX21vZGVfdCkgY3R4LT5jaXBoZXJfaW5mby0+bW9kZSkgPT0gTUJFRFRMU19NT0RFX0NGQikgewotICAgICAgICBpZiAoMCAhPSAocmV0ID0gbWJlZHRsc19jaXBoZXJfZ2V0X2Jhc2UoY3R4LT5jaXBoZXJfaW5mbyktPmNmYl9mdW5jKGN0eC0+Y2lwaGVyX2N0eCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdHgtPm9wZXJhdGlvbiwgaWxlbiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmY3R4LT51bnByb2Nlc3NlZF9sZW4sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3R4LT5pdiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnB1dCwgb3V0cHV0KSkpIHsKLSAgICAgICAgICAgIHJldHVybiByZXQ7Ci0gICAgICAgIH0KLQotICAgICAgICAqb2xlbiA9IGlsZW47Ci0KLSAgICAgICAgcmV0dXJuIDA7Ci0gICAgfQotI2VuZGlmIC8qIE1CRURUTFNfQ0lQSEVSX01PREVfQ0ZCICovCi0KLSNpZiBkZWZpbmVkKE1CRURUTFNfQ0lQSEVSX01PREVfT0ZCKQotICAgIGlmICgoKG1iZWR0bHNfY2lwaGVyX21vZGVfdCkgY3R4LT5jaXBoZXJfaW5mby0+bW9kZSkgPT0gTUJFRFRMU19NT0RFX09GQikgewotICAgICAgICBpZiAoMCAhPSAocmV0ID0gbWJlZHRsc19jaXBoZXJfZ2V0X2Jhc2UoY3R4LT5jaXBoZXJfaW5mbyktPm9mYl9mdW5jKGN0eC0+Y2lwaGVyX2N0eCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbGVuLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZjdHgtPnVucHJvY2Vzc2VkX2xlbiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdHgtPml2LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlucHV0LCBvdXRwdXQpKSkgewotICAgICAgICAgICAgcmV0dXJuIHJldDsKLSAgICAgICAgfQotCi0gICAgICAgICpvbGVuID0gaWxlbjsKLQotICAgICAgICByZXR1cm4gMDsKLSAgICB9Ci0jZW5kaWYgLyogTUJFRFRMU19DSVBIRVJfTU9ERV9PRkIgKi8KLQotI2lmIGRlZmluZWQoTUJFRFRMU19DSVBIRVJfTU9ERV9DVFIpCi0gICAgaWYgKCgobWJlZHRsc19jaXBoZXJfbW9kZV90KSBjdHgtPmNpcGhlcl9pbmZvLT5tb2RlKSA9PSBNQkVEVExTX01PREVfQ1RSKSB7Ci0gICAgICAgIGlmICgwICE9IChyZXQgPSBtYmVkdGxzX2NpcGhlcl9nZXRfYmFzZShjdHgtPmNpcGhlcl9pbmZvKS0+Y3RyX2Z1bmMoY3R4LT5jaXBoZXJfY3R4LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlsZW4sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJmN0eC0+dW5wcm9jZXNzZWRfbGVuLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGN0eC0+aXYsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3R4LT51bnByb2Nlc3NlZF9kYXRhLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlucHV0LCBvdXRwdXQpKSkgewotICAgICAgICAgICAgcmV0dXJuIHJldDsKLSAgICAgICAgfQotCi0gICAgICAgICpvbGVuID0gaWxlbjsKLQotICAgICAgICByZXR1cm4gMDsKLSAgICB9Ci0jZW5kaWYgLyogTUJFRFRMU19DSVBIRVJfTU9ERV9DVFIgKi8KLQotI2lmIGRlZmluZWQoTUJFRFRMU19DSVBIRVJfTU9ERV9YVFMpCi0gICAgaWYgKCgobWJlZHRsc19jaXBoZXJfbW9kZV90KSBjdHgtPmNpcGhlcl9pbmZvLT5tb2RlKSA9PSBNQkVEVExTX01PREVfWFRTKSB7Ci0gICAgICAgIGlmIChjdHgtPnVucHJvY2Vzc2VkX2xlbiA+IDApIHsKLSAgICAgICAgICAgIC8qIFdlIGNhbiBvbmx5IHByb2Nlc3MgYW4gZW50aXJlIGRhdGEgdW5pdCBhdCBhIHRpbWUuICovCi0gICAgICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfQ0lQSEVSX0ZFQVRVUkVfVU5BVkFJTEFCTEU7Ci0gICAgICAgIH0KLQotICAgICAgICByZXQgPSBtYmVkdGxzX2NpcGhlcl9nZXRfYmFzZShjdHgtPmNpcGhlcl9pbmZvKS0+eHRzX2Z1bmMoY3R4LT5jaXBoZXJfY3R4LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3R4LT5vcGVyYXRpb24sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbGVuLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3R4LT5pdiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlucHV0LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3V0cHV0KTsKLSAgICAgICAgaWYgKHJldCAhPSAwKSB7Ci0gICAgICAgICAgICByZXR1cm4gcmV0OwotICAgICAgICB9Ci0KLSAgICAgICAgKm9sZW4gPSBpbGVuOwotCi0gICAgICAgIHJldHVybiAwOwotICAgIH0KLSNlbmRpZiAvKiBNQkVEVExTX0NJUEhFUl9NT0RFX1hUUyAqLwotCi0jaWYgZGVmaW5lZChNQkVEVExTX0NJUEhFUl9NT0RFX1NUUkVBTSkKLSAgICBpZiAoKChtYmVkdGxzX2NpcGhlcl9tb2RlX3QpIGN0eC0+Y2lwaGVyX2luZm8tPm1vZGUpID09IE1CRURUTFNfTU9ERV9TVFJFQU0pIHsKLSAgICAgICAgaWYgKDAgIT0gKHJldCA9IG1iZWR0bHNfY2lwaGVyX2dldF9iYXNlKGN0eC0+Y2lwaGVyX2luZm8pLT5zdHJlYW1fZnVuYyhjdHgtPmNpcGhlcl9jdHgsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWxlbiwgaW5wdXQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3V0cHV0KSkpIHsKLSAgICAgICAgICAgIHJldHVybiByZXQ7Ci0gICAgICAgIH0KLQotICAgICAgICAqb2xlbiA9IGlsZW47Ci0KLSAgICAgICAgcmV0dXJuIDA7Ci0gICAgfQotI2VuZGlmIC8qIE1CRURUTFNfQ0lQSEVSX01PREVfU1RSRUFNICovCi0KLSAgICByZXR1cm4gTUJFRFRMU19FUlJfQ0lQSEVSX0ZFQVRVUkVfVU5BVkFJTEFCTEU7Ci19Ci0KLSNpZiBkZWZpbmVkKE1CRURUTFNfQ0lQSEVSX01PREVfV0lUSF9QQURESU5HKQotI2lmIGRlZmluZWQoTUJFRFRMU19DSVBIRVJfUEFERElOR19QS0NTNykKLS8qCi0gKiBQS0NTNyAoYW5kIFBLQ1M1KSBwYWRkaW5nOiBmaWxsIHdpdGggbGwgYnl0ZXMsIHdpdGggbGwgPSBwYWRkaW5nX2xlbgotICovCi1zdGF0aWMgdm9pZCBhZGRfcGtjc19wYWRkaW5nKHVuc2lnbmVkIGNoYXIgKm91dHB1dCwgc2l6ZV90IG91dHB1dF9sZW4sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBkYXRhX2xlbikKLXsKLSAgICBzaXplX3QgcGFkZGluZ19sZW4gPSBvdXRwdXRfbGVuIC0gZGF0YV9sZW47Ci0gICAgdW5zaWduZWQgY2hhciBpOwotCi0gICAgZm9yIChpID0gMDsgaSA8IHBhZGRpbmdfbGVuOyBpKyspIHsKLSAgICAgICAgb3V0cHV0W2RhdGFfbGVuICsgaV0gPSAodW5zaWduZWQgY2hhcikgcGFkZGluZ19sZW47Ci0gICAgfQotfQotCi1zdGF0aWMgaW50IGdldF9wa2NzX3BhZGRpbmcodW5zaWduZWQgY2hhciAqaW5wdXQsIHNpemVfdCBpbnB1dF9sZW4sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90ICpkYXRhX2xlbikKLXsKLSAgICBzaXplX3QgaSwgcGFkX2lkeDsKLSAgICB1bnNpZ25lZCBjaGFyIHBhZGRpbmdfbGVuOwotCi0gICAgaWYgKE5VTEwgPT0gaW5wdXQgfHwgTlVMTCA9PSBkYXRhX2xlbikgewotICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfQ0lQSEVSX0JBRF9JTlBVVF9EQVRBOwotICAgIH0KLQotICAgIHBhZGRpbmdfbGVuID0gaW5wdXRbaW5wdXRfbGVuIC0gMV07Ci0gICAgKmRhdGFfbGVuID0gaW5wdXRfbGVuIC0gcGFkZGluZ19sZW47Ci0KLSAgICBtYmVkdGxzX2N0X2NvbmRpdGlvbl90IGJhZCA9IG1iZWR0bHNfY3RfdWludF9ndChwYWRkaW5nX2xlbiwgaW5wdXRfbGVuKTsKLSAgICBiYWQgPSBtYmVkdGxzX2N0X2Jvb2xfb3IoYmFkLCBtYmVkdGxzX2N0X3VpbnRfZXEocGFkZGluZ19sZW4sIDApKTsKLQotICAgIC8qIFRoZSBudW1iZXIgb2YgYnl0ZXMgY2hlY2tlZCBtdXN0IGJlIGluZGVwZW5kZW50IG9mIHBhZGRpbmdfbGVuLAotICAgICAqIHNvIHBpY2sgaW5wdXRfbGVuLCB3aGljaCBpcyB1c3VhbGx5IDggb3IgMTYgKG9uZSBibG9jaykgKi8KLSAgICBwYWRfaWR4ID0gaW5wdXRfbGVuIC0gcGFkZGluZ19sZW47Ci0gICAgZm9yIChpID0gMDsgaSA8IGlucHV0X2xlbjsgaSsrKSB7Ci0gICAgICAgIG1iZWR0bHNfY3RfY29uZGl0aW9uX3QgaW5fcGFkZGluZyA9IG1iZWR0bHNfY3RfdWludF9nZShpLCBwYWRfaWR4KTsKLSAgICAgICAgbWJlZHRsc19jdF9jb25kaXRpb25fdCBkaWZmZXJlbnQgID0gbWJlZHRsc19jdF91aW50X25lKGlucHV0W2ldLCBwYWRkaW5nX2xlbik7Ci0gICAgICAgIGJhZCA9IG1iZWR0bHNfY3RfYm9vbF9vcihiYWQsIG1iZWR0bHNfY3RfYm9vbF9hbmQoaW5fcGFkZGluZywgZGlmZmVyZW50KSk7Ci0gICAgfQotCi0gICAgcmV0dXJuIG1iZWR0bHNfY3RfZXJyb3JfaWZfZWxzZV8wKGJhZCwgTUJFRFRMU19FUlJfQ0lQSEVSX0lOVkFMSURfUEFERElORyk7Ci19Ci0jZW5kaWYgLyogTUJFRFRMU19DSVBIRVJfUEFERElOR19QS0NTNyAqLwotCi0jaWYgZGVmaW5lZChNQkVEVExTX0NJUEhFUl9QQURESU5HX09ORV9BTkRfWkVST1MpCi0vKgotICogT25lIGFuZCB6ZXJvcyBwYWRkaW5nOiBmaWxsIHdpdGggODAgMDAgLi4uIDAwCi0gKi8KLXN0YXRpYyB2b2lkIGFkZF9vbmVfYW5kX3plcm9zX3BhZGRpbmcodW5zaWduZWQgY2hhciAqb3V0cHV0LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3Qgb3V0cHV0X2xlbiwgc2l6ZV90IGRhdGFfbGVuKQotewotICAgIHNpemVfdCBwYWRkaW5nX2xlbiA9IG91dHB1dF9sZW4gLSBkYXRhX2xlbjsKLSAgICB1bnNpZ25lZCBjaGFyIGkgPSAwOwotCi0gICAgb3V0cHV0W2RhdGFfbGVuXSA9IDB4ODA7Ci0gICAgZm9yIChpID0gMTsgaSA8IHBhZGRpbmdfbGVuOyBpKyspIHsKLSAgICAgICAgb3V0cHV0W2RhdGFfbGVuICsgaV0gPSAweDAwOwotICAgIH0KLX0KLQotc3RhdGljIGludCBnZXRfb25lX2FuZF96ZXJvc19wYWRkaW5nKHVuc2lnbmVkIGNoYXIgKmlucHV0LCBzaXplX3QgaW5wdXRfbGVuLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCAqZGF0YV9sZW4pCi17Ci0gICAgaWYgKE5VTEwgPT0gaW5wdXQgfHwgTlVMTCA9PSBkYXRhX2xlbikgewotICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfQ0lQSEVSX0JBRF9JTlBVVF9EQVRBOwotICAgIH0KLQotICAgIG1iZWR0bHNfY3RfY29uZGl0aW9uX3QgaW5fcGFkZGluZyA9IE1CRURUTFNfQ1RfVFJVRTsKLSAgICBtYmVkdGxzX2N0X2NvbmRpdGlvbl90IGJhZCA9IE1CRURUTFNfQ1RfVFJVRTsKLQotICAgICpkYXRhX2xlbiA9IDA7Ci0KLSAgICBmb3IgKHB0cmRpZmZfdCBpID0gKHB0cmRpZmZfdCkgKGlucHV0X2xlbikgLSAxOyBpID49IDA7IGktLSkgewotICAgICAgICBtYmVkdGxzX2N0X2NvbmRpdGlvbl90IGlzX25vbnplcm8gPSBtYmVkdGxzX2N0X2Jvb2woaW5wdXRbaV0pOwotCi0gICAgICAgIG1iZWR0bHNfY3RfY29uZGl0aW9uX3QgaGl0X2ZpcnN0X25vbnplcm8gPSBtYmVkdGxzX2N0X2Jvb2xfYW5kKGlzX25vbnplcm8sIGluX3BhZGRpbmcpOwotCi0gICAgICAgICpkYXRhX2xlbiA9IG1iZWR0bHNfY3Rfc2l6ZV9pZihoaXRfZmlyc3Rfbm9uemVybywgaSwgKmRhdGFfbGVuKTsKLQotICAgICAgICBiYWQgPSBtYmVkdGxzX2N0X2Jvb2xfaWYoaGl0X2ZpcnN0X25vbnplcm8sIG1iZWR0bHNfY3RfdWludF9uZShpbnB1dFtpXSwgMHg4MCksIGJhZCk7Ci0KLSAgICAgICAgaW5fcGFkZGluZyA9IG1iZWR0bHNfY3RfYm9vbF9hbmQoaW5fcGFkZGluZywgbWJlZHRsc19jdF9ib29sX25vdChpc19ub256ZXJvKSk7Ci0gICAgfQotCi0gICAgcmV0dXJuIG1iZWR0bHNfY3RfZXJyb3JfaWZfZWxzZV8wKGJhZCwgTUJFRFRMU19FUlJfQ0lQSEVSX0lOVkFMSURfUEFERElORyk7Ci19Ci0jZW5kaWYgLyogTUJFRFRMU19DSVBIRVJfUEFERElOR19PTkVfQU5EX1pFUk9TICovCi0KLSNpZiBkZWZpbmVkKE1CRURUTFNfQ0lQSEVSX1BBRERJTkdfWkVST1NfQU5EX0xFTikKLS8qCi0gKiBaZXJvcyBhbmQgbGVuIHBhZGRpbmc6IGZpbGwgd2l0aCAwMCAuLi4gMDAgbGwsIHdoZXJlIGxsIGlzIHBhZGRpbmcgbGVuZ3RoCi0gKi8KLXN0YXRpYyB2b2lkIGFkZF96ZXJvc19hbmRfbGVuX3BhZGRpbmcodW5zaWduZWQgY2hhciAqb3V0cHV0LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3Qgb3V0cHV0X2xlbiwgc2l6ZV90IGRhdGFfbGVuKQotewotICAgIHNpemVfdCBwYWRkaW5nX2xlbiA9IG91dHB1dF9sZW4gLSBkYXRhX2xlbjsKLSAgICB1bnNpZ25lZCBjaGFyIGkgPSAwOwotCi0gICAgZm9yIChpID0gMTsgaSA8IHBhZGRpbmdfbGVuOyBpKyspIHsKLSAgICAgICAgb3V0cHV0W2RhdGFfbGVuICsgaSAtIDFdID0gMHgwMDsKLSAgICB9Ci0gICAgb3V0cHV0W291dHB1dF9sZW4gLSAxXSA9ICh1bnNpZ25lZCBjaGFyKSBwYWRkaW5nX2xlbjsKLX0KLQotc3RhdGljIGludCBnZXRfemVyb3NfYW5kX2xlbl9wYWRkaW5nKHVuc2lnbmVkIGNoYXIgKmlucHV0LCBzaXplX3QgaW5wdXRfbGVuLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCAqZGF0YV9sZW4pCi17Ci0gICAgc2l6ZV90IGksIHBhZF9pZHg7Ci0gICAgdW5zaWduZWQgY2hhciBwYWRkaW5nX2xlbjsKLSAgICBtYmVkdGxzX2N0X2NvbmRpdGlvbl90IGJhZDsKLQotICAgIGlmIChOVUxMID09IGlucHV0IHx8IE5VTEwgPT0gZGF0YV9sZW4pIHsKLSAgICAgICAgcmV0dXJuIE1CRURUTFNfRVJSX0NJUEhFUl9CQURfSU5QVVRfREFUQTsKLSAgICB9Ci0KLSAgICBwYWRkaW5nX2xlbiA9IGlucHV0W2lucHV0X2xlbiAtIDFdOwotICAgICpkYXRhX2xlbiA9IGlucHV0X2xlbiAtIHBhZGRpbmdfbGVuOwotCi0gICAgLyogQXZvaWQgbG9naWNhbCB8fCBzaW5jZSBpdCByZXN1bHRzIGluIGEgYnJhbmNoICovCi0gICAgYmFkID0gbWJlZHRsc19jdF91aW50X2d0KHBhZGRpbmdfbGVuLCBpbnB1dF9sZW4pOwotICAgIGJhZCA9IG1iZWR0bHNfY3RfYm9vbF9vcihiYWQsIG1iZWR0bHNfY3RfdWludF9lcShwYWRkaW5nX2xlbiwgMCkpOwotCi0gICAgLyogVGhlIG51bWJlciBvZiBieXRlcyBjaGVja2VkIG11c3QgYmUgaW5kZXBlbmRlbnQgb2YgcGFkZGluZ19sZW4gKi8KLSAgICBwYWRfaWR4ID0gaW5wdXRfbGVuIC0gcGFkZGluZ19sZW47Ci0gICAgZm9yIChpID0gMDsgaSA8IGlucHV0X2xlbiAtIDE7IGkrKykgewotICAgICAgICBtYmVkdGxzX2N0X2NvbmRpdGlvbl90IGlzX3BhZGRpbmcgPSBtYmVkdGxzX2N0X3VpbnRfZ2UoaSwgcGFkX2lkeCk7Ci0gICAgICAgIG1iZWR0bHNfY3RfY29uZGl0aW9uX3Qgbm9uemVyb19wYWRfYnl0ZTsKLSAgICAgICAgbm9uemVyb19wYWRfYnl0ZSA9IG1iZWR0bHNfY3RfYm9vbF9pZl9lbHNlXzAoaXNfcGFkZGluZywgbWJlZHRsc19jdF9ib29sKGlucHV0W2ldKSk7Ci0gICAgICAgIGJhZCA9IG1iZWR0bHNfY3RfYm9vbF9vcihiYWQsIG5vbnplcm9fcGFkX2J5dGUpOwotICAgIH0KLQotICAgIHJldHVybiBtYmVkdGxzX2N0X2Vycm9yX2lmX2Vsc2VfMChiYWQsIE1CRURUTFNfRVJSX0NJUEhFUl9JTlZBTElEX1BBRERJTkcpOwotfQotI2VuZGlmIC8qIE1CRURUTFNfQ0lQSEVSX1BBRERJTkdfWkVST1NfQU5EX0xFTiAqLwotCi0jaWYgZGVmaW5lZChNQkVEVExTX0NJUEhFUl9QQURESU5HX1pFUk9TKQotLyoKLSAqIFplcm8gcGFkZGluZzogZmlsbCB3aXRoIDAwIC4uLiAwMAotICovCi1zdGF0aWMgdm9pZCBhZGRfemVyb3NfcGFkZGluZyh1bnNpZ25lZCBjaGFyICpvdXRwdXQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3Qgb3V0cHV0X2xlbiwgc2l6ZV90IGRhdGFfbGVuKQotewotICAgIG1lbXNldChvdXRwdXQgKyBkYXRhX2xlbiwgMCwgb3V0cHV0X2xlbiAtIGRhdGFfbGVuKTsKLX0KLQotc3RhdGljIGludCBnZXRfemVyb3NfcGFkZGluZyh1bnNpZ25lZCBjaGFyICppbnB1dCwgc2l6ZV90IGlucHV0X2xlbiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90ICpkYXRhX2xlbikKLXsKLSAgICBzaXplX3QgaTsKLSAgICBtYmVkdGxzX2N0X2NvbmRpdGlvbl90IGRvbmUgPSBNQkVEVExTX0NUX0ZBTFNFLCBwcmV2X2RvbmU7Ci0KLSAgICBpZiAoTlVMTCA9PSBpbnB1dCB8fCBOVUxMID09IGRhdGFfbGVuKSB7Ci0gICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9DSVBIRVJfQkFEX0lOUFVUX0RBVEE7Ci0gICAgfQotCi0gICAgKmRhdGFfbGVuID0gMDsKLSAgICBmb3IgKGkgPSBpbnB1dF9sZW47IGkgPiAwOyBpLS0pIHsKLSAgICAgICAgcHJldl9kb25lID0gZG9uZTsKLSAgICAgICAgZG9uZSA9IG1iZWR0bHNfY3RfYm9vbF9vcihkb25lLCBtYmVkdGxzX2N0X3VpbnRfbmUoaW5wdXRbaS0xXSwgMCkpOwotICAgICAgICAqZGF0YV9sZW4gPSBtYmVkdGxzX2N0X3NpemVfaWYobWJlZHRsc19jdF9ib29sX25lKGRvbmUsIHByZXZfZG9uZSksIGksICpkYXRhX2xlbik7Ci0gICAgfQotCi0gICAgcmV0dXJuIDA7Ci19Ci0jZW5kaWYgLyogTUJFRFRMU19DSVBIRVJfUEFERElOR19aRVJPUyAqLwotCi0vKgotICogTm8gcGFkZGluZzogZG9uJ3QgcGFkIDopCi0gKgotICogVGhlcmUgaXMgbm8gYWRkX3BhZGRpbmcgZnVuY3Rpb24gKGNoZWNrIGZvciBOVUxMIGluIG1iZWR0bHNfY2lwaGVyX2ZpbmlzaCkKLSAqIGJ1dCBhIHRyaXZpYWwgZ2V0X3BhZGRpbmcgZnVuY3Rpb24KLSAqLwotc3RhdGljIGludCBnZXRfbm9fcGFkZGluZyh1bnNpZ25lZCBjaGFyICppbnB1dCwgc2l6ZV90IGlucHV0X2xlbiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90ICpkYXRhX2xlbikKLXsKLSAgICBpZiAoTlVMTCA9PSBpbnB1dCB8fCBOVUxMID09IGRhdGFfbGVuKSB7Ci0gICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9DSVBIRVJfQkFEX0lOUFVUX0RBVEE7Ci0gICAgfQotCi0gICAgKmRhdGFfbGVuID0gaW5wdXRfbGVuOwotCi0gICAgcmV0dXJuIDA7Ci19Ci0jZW5kaWYgLyogTUJFRFRMU19DSVBIRVJfTU9ERV9XSVRIX1BBRERJTkcgKi8KLQotaW50IG1iZWR0bHNfY2lwaGVyX2ZpbmlzaChtYmVkdGxzX2NpcGhlcl9jb250ZXh0X3QgKmN0eCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgY2hhciAqb3V0cHV0LCBzaXplX3QgKm9sZW4pCi17Ci0gICAgaWYgKGN0eC0+Y2lwaGVyX2luZm8gPT0gTlVMTCkgewotICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfQ0lQSEVSX0JBRF9JTlBVVF9EQVRBOwotICAgIH0KLQotI2lmIGRlZmluZWQoTUJFRFRMU19VU0VfUFNBX0NSWVBUTykgJiYgIWRlZmluZWQoTUJFRFRMU19ERVBSRUNBVEVEX1JFTU9WRUQpCi0gICAgaWYgKGN0eC0+cHNhX2VuYWJsZWQgPT0gMSkgewotICAgICAgICAvKiBXaGlsZSBQU0EgQ3J5cHRvIGhhcyBhbiBBUEkgZm9yIG11bHRpcGFydAotICAgICAgICAgKiBvcGVyYXRpb25zLCB3ZSBjdXJyZW50bHkgZG9uJ3QgbWFrZSBpdAotICAgICAgICAgKiBhY2Nlc3NpYmxlIHRocm91Z2ggdGhlIGNpcGhlciBsYXllci4gKi8KLSAgICAgICAgcmV0dXJuIE1CRURUTFNfRVJSX0NJUEhFUl9GRUFUVVJFX1VOQVZBSUxBQkxFOwotICAgIH0KLSNlbmRpZiAvKiBNQkVEVExTX1VTRV9QU0FfQ1JZUFRPICYmICFNQkVEVExTX0RFUFJFQ0FURURfUkVNT1ZFRCAqLwotCi0gICAgKm9sZW4gPSAwOwotCi0jaWYgZGVmaW5lZChNQkVEVExTX0NJUEhFUl9NT0RFX1dJVEhfUEFERElORykKLSAgICAvKiBDQkMgbW9kZSByZXF1aXJlcyBwYWRkaW5nIHNvIHdlIG1ha2Ugc3VyZSBhIGNhbGwgdG8KLSAgICAgKiBtYmVkdGxzX2NpcGhlcl9zZXRfcGFkZGluZ19tb2RlIGhhcyBiZWVuIGRvbmUgc3VjY2Vzc2Z1bGx5LiAqLwotICAgIGlmIChNQkVEVExTX01PREVfQ0JDID09ICgobWJlZHRsc19jaXBoZXJfbW9kZV90KSBjdHgtPmNpcGhlcl9pbmZvLT5tb2RlKSkgewotICAgICAgICBpZiAoY3R4LT5nZXRfcGFkZGluZyA9PSBOVUxMKSB7Ci0gICAgICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfQ0lQSEVSX0JBRF9JTlBVVF9EQVRBOwotICAgICAgICB9Ci0gICAgfQotI2VuZGlmCi0KLSAgICBpZiAoTUJFRFRMU19NT0RFX0NGQiA9PSAoKG1iZWR0bHNfY2lwaGVyX21vZGVfdCkgY3R4LT5jaXBoZXJfaW5mby0+bW9kZSkgfHwKLSAgICAgICAgTUJFRFRMU19NT0RFX09GQiA9PSAoKG1iZWR0bHNfY2lwaGVyX21vZGVfdCkgY3R4LT5jaXBoZXJfaW5mby0+bW9kZSkgfHwKLSAgICAgICAgTUJFRFRMU19NT0RFX0NUUiA9PSAoKG1iZWR0bHNfY2lwaGVyX21vZGVfdCkgY3R4LT5jaXBoZXJfaW5mby0+bW9kZSkgfHwKLSAgICAgICAgTUJFRFRMU19NT0RFX0dDTSA9PSAoKG1iZWR0bHNfY2lwaGVyX21vZGVfdCkgY3R4LT5jaXBoZXJfaW5mby0+bW9kZSkgfHwKLSAgICAgICAgTUJFRFRMU19NT0RFX0NDTV9TVEFSX05PX1RBRyA9PSAoKG1iZWR0bHNfY2lwaGVyX21vZGVfdCkgY3R4LT5jaXBoZXJfaW5mby0+bW9kZSkgfHwKLSAgICAgICAgTUJFRFRMU19NT0RFX1hUUyA9PSAoKG1iZWR0bHNfY2lwaGVyX21vZGVfdCkgY3R4LT5jaXBoZXJfaW5mby0+bW9kZSkgfHwKLSAgICAgICAgTUJFRFRMU19NT0RFX1NUUkVBTSA9PSAoKG1iZWR0bHNfY2lwaGVyX21vZGVfdCkgY3R4LT5jaXBoZXJfaW5mby0+bW9kZSkpIHsKLSAgICAgICAgcmV0dXJuIDA7Ci0gICAgfQotCi0gICAgaWYgKChNQkVEVExTX0NJUEhFUl9DSEFDSEEyMCAgICAgICAgICA9PSAoKG1iZWR0bHNfY2lwaGVyX3R5cGVfdCkgY3R4LT5jaXBoZXJfaW5mby0+dHlwZSkpIHx8Ci0gICAgICAgIChNQkVEVExTX0NJUEhFUl9DSEFDSEEyMF9QT0xZMTMwNSA9PSAoKG1iZWR0bHNfY2lwaGVyX3R5cGVfdCkgY3R4LT5jaXBoZXJfaW5mby0+dHlwZSkpKSB7Ci0gICAgICAgIHJldHVybiAwOwotICAgIH0KLQotICAgIGlmIChNQkVEVExTX01PREVfRUNCID09ICgobWJlZHRsc19jaXBoZXJfbW9kZV90KSBjdHgtPmNpcGhlcl9pbmZvLT5tb2RlKSkgewotICAgICAgICBpZiAoY3R4LT51bnByb2Nlc3NlZF9sZW4gIT0gMCkgewotICAgICAgICAgICAgcmV0dXJuIE1CRURUTFNfRVJSX0NJUEhFUl9GVUxMX0JMT0NLX0VYUEVDVEVEOwotICAgICAgICB9Ci0KLSAgICAgICAgcmV0dXJuIDA7Ci0gICAgfQotCi0jaWYgZGVmaW5lZChNQkVEVExTX0NJUEhFUl9NT0RFX0NCQykKLSAgICBpZiAoTUJFRFRMU19NT0RFX0NCQyA9PSAoKG1iZWR0bHNfY2lwaGVyX21vZGVfdCkgY3R4LT5jaXBoZXJfaW5mby0+bW9kZSkpIHsKLSAgICAgICAgaW50IHJldCA9IDA7Ci0KLSAgICAgICAgaWYgKE1CRURUTFNfRU5DUllQVCA9PSBjdHgtPm9wZXJhdGlvbikgewotICAgICAgICAgICAgLyogY2hlY2sgZm9yICdubyBwYWRkaW5nJyBtb2RlICovCi0gICAgICAgICAgICBpZiAoTlVMTCA9PSBjdHgtPmFkZF9wYWRkaW5nKSB7Ci0gICAgICAgICAgICAgICAgaWYgKDAgIT0gY3R4LT51bnByb2Nlc3NlZF9sZW4pIHsKLSAgICAgICAgICAgICAgICAgICAgcmV0dXJuIE1CRURUTFNfRVJSX0NJUEhFUl9GVUxMX0JMT0NLX0VYUEVDVEVEOwotICAgICAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgICAgIHJldHVybiAwOwotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICBjdHgtPmFkZF9wYWRkaW5nKGN0eC0+dW5wcm9jZXNzZWRfZGF0YSwgbWJlZHRsc19jaXBoZXJfZ2V0X2l2X3NpemUoY3R4KSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3R4LT51bnByb2Nlc3NlZF9sZW4pOwotICAgICAgICB9IGVsc2UgaWYgKG1iZWR0bHNfY2lwaGVyX2dldF9ibG9ja19zaXplKGN0eCkgIT0gY3R4LT51bnByb2Nlc3NlZF9sZW4pIHsKLSAgICAgICAgICAgIC8qCi0gICAgICAgICAgICAgKiBGb3IgZGVjcnlwdCBvcGVyYXRpb25zLCBleHBlY3QgYSBmdWxsIGJsb2NrLAotICAgICAgICAgICAgICogb3IgYW4gZW1wdHkgYmxvY2sgaWYgbm8gcGFkZGluZwotICAgICAgICAgICAgICovCi0gICAgICAgICAgICBpZiAoTlVMTCA9PSBjdHgtPmFkZF9wYWRkaW5nICYmIDAgPT0gY3R4LT51bnByb2Nlc3NlZF9sZW4pIHsKLSAgICAgICAgICAgICAgICByZXR1cm4gMDsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgcmV0dXJuIE1CRURUTFNfRVJSX0NJUEhFUl9GVUxMX0JMT0NLX0VYUEVDVEVEOwotICAgICAgICB9Ci0KLSAgICAgICAgLyogY2lwaGVyIGJsb2NrICovCi0gICAgICAgIGlmICgwICE9IChyZXQgPSBtYmVkdGxzX2NpcGhlcl9nZXRfYmFzZShjdHgtPmNpcGhlcl9pbmZvKS0+Y2JjX2Z1bmMoY3R4LT5jaXBoZXJfY3R4LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGN0eC0+b3BlcmF0aW9uLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1iZWR0bHNfY2lwaGVyX2dldF9ibG9ja19zaXplKAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdHgpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGN0eC0+aXYsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3R4LT51bnByb2Nlc3NlZF9kYXRhLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG91dHB1dCkpKSB7Ci0gICAgICAgICAgICByZXR1cm4gcmV0OwotICAgICAgICB9Ci0KLSAgICAgICAgLyogU2V0IG91dHB1dCBzaXplIGZvciBkZWNyeXB0aW9uICovCi0gICAgICAgIGlmIChNQkVEVExTX0RFQ1JZUFQgPT0gY3R4LT5vcGVyYXRpb24pIHsKLSAgICAgICAgICAgIHJldHVybiBjdHgtPmdldF9wYWRkaW5nKG91dHB1dCwgbWJlZHRsc19jaXBoZXJfZ2V0X2Jsb2NrX3NpemUoY3R4KSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9sZW4pOwotICAgICAgICB9Ci0KLSAgICAgICAgLyogU2V0IG91dHB1dCBzaXplIGZvciBlbmNyeXB0aW9uICovCi0gICAgICAgICpvbGVuID0gbWJlZHRsc19jaXBoZXJfZ2V0X2Jsb2NrX3NpemUoY3R4KTsKLSAgICAgICAgcmV0dXJuIDA7Ci0gICAgfQotI2Vsc2UKLSAgICAoKHZvaWQpIG91dHB1dCk7Ci0jZW5kaWYgLyogTUJFRFRMU19DSVBIRVJfTU9ERV9DQkMgKi8KLQotICAgIHJldHVybiBNQkVEVExTX0VSUl9DSVBIRVJfRkVBVFVSRV9VTkFWQUlMQUJMRTsKLX0KLQotI2lmIGRlZmluZWQoTUJFRFRMU19DSVBIRVJfTU9ERV9XSVRIX1BBRERJTkcpCi1pbnQgbWJlZHRsc19jaXBoZXJfc2V0X3BhZGRpbmdfbW9kZShtYmVkdGxzX2NpcGhlcl9jb250ZXh0X3QgKmN0eCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1iZWR0bHNfY2lwaGVyX3BhZGRpbmdfdCBtb2RlKQotewotICAgIGlmIChOVUxMID09IGN0eC0+Y2lwaGVyX2luZm8gfHwKLSAgICAgICAgTUJFRFRMU19NT0RFX0NCQyAhPSAoKG1iZWR0bHNfY2lwaGVyX21vZGVfdCkgY3R4LT5jaXBoZXJfaW5mby0+bW9kZSkpIHsKLSAgICAgICAgcmV0dXJuIE1CRURUTFNfRVJSX0NJUEhFUl9CQURfSU5QVVRfREFUQTsKLSAgICB9Ci0KLSNpZiBkZWZpbmVkKE1CRURUTFNfVVNFX1BTQV9DUllQVE8pICYmICFkZWZpbmVkKE1CRURUTFNfREVQUkVDQVRFRF9SRU1PVkVEKQotICAgIGlmIChjdHgtPnBzYV9lbmFibGVkID09IDEpIHsKLSAgICAgICAgLyogV2hpbGUgUFNBIENyeXB0byBrbm93cyBhYm91dCBDQkMgcGFkZGluZwotICAgICAgICAgKiBzY2hlbWVzLCB3ZSBjdXJyZW50bHkgZG9uJ3QgbWFrZSB0aGVtCi0gICAgICAgICAqIGFjY2Vzc2libGUgdGhyb3VnaCB0aGUgY2lwaGVyIGxheWVyLiAqLwotICAgICAgICBpZiAobW9kZSAhPSBNQkVEVExTX1BBRERJTkdfTk9ORSkgewotICAgICAgICAgICAgcmV0dXJuIE1CRURUTFNfRVJSX0NJUEhFUl9GRUFUVVJFX1VOQVZBSUxBQkxFOwotICAgICAgICB9Ci0KLSAgICAgICAgcmV0dXJuIDA7Ci0gICAgfQotI2VuZGlmIC8qIE1CRURUTFNfVVNFX1BTQV9DUllQVE8gJiYgIU1CRURUTFNfREVQUkVDQVRFRF9SRU1PVkVEICovCi0KLSAgICBzd2l0Y2ggKG1vZGUpIHsKLSNpZiBkZWZpbmVkKE1CRURUTFNfQ0lQSEVSX1BBRERJTkdfUEtDUzcpCi0gICAgICAgIGNhc2UgTUJFRFRMU19QQURESU5HX1BLQ1M3OgotICAgICAgICAgICAgY3R4LT5hZGRfcGFkZGluZyA9IGFkZF9wa2NzX3BhZGRpbmc7Ci0gICAgICAgICAgICBjdHgtPmdldF9wYWRkaW5nID0gZ2V0X3BrY3NfcGFkZGluZzsKLSAgICAgICAgICAgIGJyZWFrOwotI2VuZGlmCi0jaWYgZGVmaW5lZChNQkVEVExTX0NJUEhFUl9QQURESU5HX09ORV9BTkRfWkVST1MpCi0gICAgICAgIGNhc2UgTUJFRFRMU19QQURESU5HX09ORV9BTkRfWkVST1M6Ci0gICAgICAgICAgICBjdHgtPmFkZF9wYWRkaW5nID0gYWRkX29uZV9hbmRfemVyb3NfcGFkZGluZzsKLSAgICAgICAgICAgIGN0eC0+Z2V0X3BhZGRpbmcgPSBnZXRfb25lX2FuZF96ZXJvc19wYWRkaW5nOwotICAgICAgICAgICAgYnJlYWs7Ci0jZW5kaWYKLSNpZiBkZWZpbmVkKE1CRURUTFNfQ0lQSEVSX1BBRERJTkdfWkVST1NfQU5EX0xFTikKLSAgICAgICAgY2FzZSBNQkVEVExTX1BBRERJTkdfWkVST1NfQU5EX0xFTjoKLSAgICAgICAgICAgIGN0eC0+YWRkX3BhZGRpbmcgPSBhZGRfemVyb3NfYW5kX2xlbl9wYWRkaW5nOwotICAgICAgICAgICAgY3R4LT5nZXRfcGFkZGluZyA9IGdldF96ZXJvc19hbmRfbGVuX3BhZGRpbmc7Ci0gICAgICAgICAgICBicmVhazsKLSNlbmRpZgotI2lmIGRlZmluZWQoTUJFRFRMU19DSVBIRVJfUEFERElOR19aRVJPUykKLSAgICAgICAgY2FzZSBNQkVEVExTX1BBRERJTkdfWkVST1M6Ci0gICAgICAgICAgICBjdHgtPmFkZF9wYWRkaW5nID0gYWRkX3plcm9zX3BhZGRpbmc7Ci0gICAgICAgICAgICBjdHgtPmdldF9wYWRkaW5nID0gZ2V0X3plcm9zX3BhZGRpbmc7Ci0gICAgICAgICAgICBicmVhazsKLSNlbmRpZgotICAgICAgICBjYXNlIE1CRURUTFNfUEFERElOR19OT05FOgotICAgICAgICAgICAgY3R4LT5hZGRfcGFkZGluZyA9IE5VTEw7Ci0gICAgICAgICAgICBjdHgtPmdldF9wYWRkaW5nID0gZ2V0X25vX3BhZGRpbmc7Ci0gICAgICAgICAgICBicmVhazsKLQotICAgICAgICBkZWZhdWx0OgotICAgICAgICAgICAgcmV0dXJuIE1CRURUTFNfRVJSX0NJUEhFUl9GRUFUVVJFX1VOQVZBSUxBQkxFOwotICAgIH0KLQotICAgIHJldHVybiAwOwotfQotI2VuZGlmIC8qIE1CRURUTFNfQ0lQSEVSX01PREVfV0lUSF9QQURESU5HICovCi0KLSNpZiBkZWZpbmVkKE1CRURUTFNfR0NNX0MpIHx8IGRlZmluZWQoTUJFRFRMU19DSEFDSEFQT0xZX0MpCi1pbnQgbWJlZHRsc19jaXBoZXJfd3JpdGVfdGFnKG1iZWR0bHNfY2lwaGVyX2NvbnRleHRfdCAqY3R4LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBjaGFyICp0YWcsIHNpemVfdCB0YWdfbGVuKQotewotICAgIGlmIChjdHgtPmNpcGhlcl9pbmZvID09IE5VTEwpIHsKLSAgICAgICAgcmV0dXJuIE1CRURUTFNfRVJSX0NJUEhFUl9CQURfSU5QVVRfREFUQTsKLSAgICB9Ci0KLSAgICBpZiAoTUJFRFRMU19FTkNSWVBUICE9IGN0eC0+b3BlcmF0aW9uKSB7Ci0gICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9DSVBIRVJfQkFEX0lOUFVUX0RBVEE7Ci0gICAgfQotCi0jaWYgZGVmaW5lZChNQkVEVExTX1VTRV9QU0FfQ1JZUFRPKSAmJiAhZGVmaW5lZChNQkVEVExTX0RFUFJFQ0FURURfUkVNT1ZFRCkKLSAgICBpZiAoY3R4LT5wc2FfZW5hYmxlZCA9PSAxKSB7Ci0gICAgICAgIC8qIFdoaWxlIFBTQSBDcnlwdG8gaGFzIGFuIEFQSSBmb3IgbXVsdGlwYXJ0Ci0gICAgICAgICAqIG9wZXJhdGlvbnMsIHdlIGN1cnJlbnRseSBkb24ndCBtYWtlIGl0Ci0gICAgICAgICAqIGFjY2Vzc2libGUgdGhyb3VnaCB0aGUgY2lwaGVyIGxheWVyLiAqLwotICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfQ0lQSEVSX0ZFQVRVUkVfVU5BVkFJTEFCTEU7Ci0gICAgfQotI2VuZGlmIC8qIE1CRURUTFNfVVNFX1BTQV9DUllQVE8gJiYgIU1CRURUTFNfREVQUkVDQVRFRF9SRU1PVkVEICovCi0KLSNpZiBkZWZpbmVkKE1CRURUTFNfR0NNX0MpCi0gICAgaWYgKE1CRURUTFNfTU9ERV9HQ00gPT0gKChtYmVkdGxzX2NpcGhlcl9tb2RlX3QpIGN0eC0+Y2lwaGVyX2luZm8tPm1vZGUpKSB7Ci0gICAgICAgIHNpemVfdCBvdXRwdXRfbGVuZ3RoOwotICAgICAgICAvKiBUaGUgY29kZSBoZXJlIGRvZXNuJ3QgeWV0IHN1cHBvcnQgYWx0ZXJuYXRpdmUgaW1wbGVtZW50YXRpb25zCi0gICAgICAgICAqIHRoYXQgY2FuIGRlbGF5IHVwIHRvIGEgYmxvY2sgb2Ygb3V0cHV0LiAqLwotICAgICAgICByZXR1cm4gbWJlZHRsc19nY21fZmluaXNoKChtYmVkdGxzX2djbV9jb250ZXh0ICopIGN0eC0+Y2lwaGVyX2N0eCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOVUxMLCAwLCAmb3V0cHV0X2xlbmd0aCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YWcsIHRhZ19sZW4pOwotICAgIH0KLSNlbmRpZgotCi0jaWYgZGVmaW5lZChNQkVEVExTX0NIQUNIQVBPTFlfQykKLSAgICBpZiAoTUJFRFRMU19DSVBIRVJfQ0hBQ0hBMjBfUE9MWTEzMDUgPT0gKChtYmVkdGxzX2NpcGhlcl90eXBlX3QpIGN0eC0+Y2lwaGVyX2luZm8tPnR5cGUpKSB7Ci0gICAgICAgIC8qIERvbid0IGFsbG93IHRydW5jYXRlZCBNQUMgZm9yIFBvbHkxMzA1ICovCi0gICAgICAgIGlmICh0YWdfbGVuICE9IDE2VSkgewotICAgICAgICAgICAgcmV0dXJuIE1CRURUTFNfRVJSX0NJUEhFUl9CQURfSU5QVVRfREFUQTsKLSAgICAgICAgfQotCi0gICAgICAgIHJldHVybiBtYmVkdGxzX2NoYWNoYXBvbHlfZmluaXNoKAotICAgICAgICAgICAgKG1iZWR0bHNfY2hhY2hhcG9seV9jb250ZXh0ICopIGN0eC0+Y2lwaGVyX2N0eCwgdGFnKTsKLSAgICB9Ci0jZW5kaWYKLQotICAgIHJldHVybiBNQkVEVExTX0VSUl9DSVBIRVJfRkVBVFVSRV9VTkFWQUlMQUJMRTsKLX0KLQotaW50IG1iZWR0bHNfY2lwaGVyX2NoZWNrX3RhZyhtYmVkdGxzX2NpcGhlcl9jb250ZXh0X3QgKmN0eCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdW5zaWduZWQgY2hhciAqdGFnLCBzaXplX3QgdGFnX2xlbikKLXsKLSAgICB1bnNpZ25lZCBjaGFyIGNoZWNrX3RhZ1sxNl07Ci0gICAgaW50IHJldCA9IE1CRURUTFNfRVJSX0VSUk9SX0NPUlJVUFRJT05fREVURUNURUQ7Ci0KLSAgICBpZiAoY3R4LT5jaXBoZXJfaW5mbyA9PSBOVUxMKSB7Ci0gICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9DSVBIRVJfQkFEX0lOUFVUX0RBVEE7Ci0gICAgfQotCi0gICAgaWYgKE1CRURUTFNfREVDUllQVCAhPSBjdHgtPm9wZXJhdGlvbikgewotICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfQ0lQSEVSX0JBRF9JTlBVVF9EQVRBOwotICAgIH0KLQotI2lmIGRlZmluZWQoTUJFRFRMU19VU0VfUFNBX0NSWVBUTykgJiYgIWRlZmluZWQoTUJFRFRMU19ERVBSRUNBVEVEX1JFTU9WRUQpCi0gICAgaWYgKGN0eC0+cHNhX2VuYWJsZWQgPT0gMSkgewotICAgICAgICAvKiBXaGlsZSBQU0EgQ3J5cHRvIGhhcyBhbiBBUEkgZm9yIG11bHRpcGFydAotICAgICAgICAgKiBvcGVyYXRpb25zLCB3ZSBjdXJyZW50bHkgZG9uJ3QgbWFrZSBpdAotICAgICAgICAgKiBhY2Nlc3NpYmxlIHRocm91Z2ggdGhlIGNpcGhlciBsYXllci4gKi8KLSAgICAgICAgcmV0dXJuIE1CRURUTFNfRVJSX0NJUEhFUl9GRUFUVVJFX1VOQVZBSUxBQkxFOwotICAgIH0KLSNlbmRpZiAvKiBNQkVEVExTX1VTRV9QU0FfQ1JZUFRPICYmICFNQkVEVExTX0RFUFJFQ0FURURfUkVNT1ZFRCAqLwotCi0gICAgLyogU3RhdHVzIHRvIHJldHVybiBvbiBhIG5vbi1hdXRoZW50aWNhdGVkIGFsZ29yaXRobS4gKi8KLSAgICByZXQgPSBNQkVEVExTX0VSUl9DSVBIRVJfRkVBVFVSRV9VTkFWQUlMQUJMRTsKLQotI2lmIGRlZmluZWQoTUJFRFRMU19HQ01fQykKLSAgICBpZiAoTUJFRFRMU19NT0RFX0dDTSA9PSAoKG1iZWR0bHNfY2lwaGVyX21vZGVfdCkgY3R4LT5jaXBoZXJfaW5mby0+bW9kZSkpIHsKLSAgICAgICAgc2l6ZV90IG91dHB1dF9sZW5ndGg7Ci0gICAgICAgIC8qIFRoZSBjb2RlIGhlcmUgZG9lc24ndCB5ZXQgc3VwcG9ydCBhbHRlcm5hdGl2ZSBpbXBsZW1lbnRhdGlvbnMKLSAgICAgICAgICogdGhhdCBjYW4gZGVsYXkgdXAgdG8gYSBibG9jayBvZiBvdXRwdXQuICovCi0KLSAgICAgICAgaWYgKHRhZ19sZW4gPiBzaXplb2YoY2hlY2tfdGFnKSkgewotICAgICAgICAgICAgcmV0dXJuIE1CRURUTFNfRVJSX0NJUEhFUl9CQURfSU5QVVRfREFUQTsKLSAgICAgICAgfQotCi0gICAgICAgIGlmICgwICE9IChyZXQgPSBtYmVkdGxzX2djbV9maW5pc2goCi0gICAgICAgICAgICAgICAgICAgICAgKG1iZWR0bHNfZ2NtX2NvbnRleHQgKikgY3R4LT5jaXBoZXJfY3R4LAotICAgICAgICAgICAgICAgICAgICAgIE5VTEwsIDAsICZvdXRwdXRfbGVuZ3RoLAotICAgICAgICAgICAgICAgICAgICAgIGNoZWNrX3RhZywgdGFnX2xlbikpKSB7Ci0gICAgICAgICAgICByZXR1cm4gcmV0OwotICAgICAgICB9Ci0KLSAgICAgICAgLyogQ2hlY2sgdGhlIHRhZyBpbiAiY29uc3RhbnQtdGltZSIgKi8KLSAgICAgICAgaWYgKG1iZWR0bHNfY3RfbWVtY21wKHRhZywgY2hlY2tfdGFnLCB0YWdfbGVuKSAhPSAwKSB7Ci0gICAgICAgICAgICByZXQgPSBNQkVEVExTX0VSUl9DSVBIRVJfQVVUSF9GQUlMRUQ7Ci0gICAgICAgICAgICBnb3RvIGV4aXQ7Ci0gICAgICAgIH0KLSAgICB9Ci0jZW5kaWYgLyogTUJFRFRMU19HQ01fQyAqLwotCi0jaWYgZGVmaW5lZChNQkVEVExTX0NIQUNIQVBPTFlfQykKLSAgICBpZiAoTUJFRFRMU19DSVBIRVJfQ0hBQ0hBMjBfUE9MWTEzMDUgPT0gKChtYmVkdGxzX2NpcGhlcl90eXBlX3QpIGN0eC0+Y2lwaGVyX2luZm8tPnR5cGUpKSB7Ci0gICAgICAgIC8qIERvbid0IGFsbG93IHRydW5jYXRlZCBNQUMgZm9yIFBvbHkxMzA1ICovCi0gICAgICAgIGlmICh0YWdfbGVuICE9IHNpemVvZihjaGVja190YWcpKSB7Ci0gICAgICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfQ0lQSEVSX0JBRF9JTlBVVF9EQVRBOwotICAgICAgICB9Ci0KLSAgICAgICAgcmV0ID0gbWJlZHRsc19jaGFjaGFwb2x5X2ZpbmlzaCgKLSAgICAgICAgICAgIChtYmVkdGxzX2NoYWNoYXBvbHlfY29udGV4dCAqKSBjdHgtPmNpcGhlcl9jdHgsIGNoZWNrX3RhZyk7Ci0gICAgICAgIGlmIChyZXQgIT0gMCkgewotICAgICAgICAgICAgcmV0dXJuIHJldDsKLSAgICAgICAgfQotCi0gICAgICAgIC8qIENoZWNrIHRoZSB0YWcgaW4gImNvbnN0YW50LXRpbWUiICovCi0gICAgICAgIGlmIChtYmVkdGxzX2N0X21lbWNtcCh0YWcsIGNoZWNrX3RhZywgdGFnX2xlbikgIT0gMCkgewotICAgICAgICAgICAgcmV0ID0gTUJFRFRMU19FUlJfQ0lQSEVSX0FVVEhfRkFJTEVEOwotICAgICAgICAgICAgZ290byBleGl0OwotICAgICAgICB9Ci0gICAgfQotI2VuZGlmIC8qIE1CRURUTFNfQ0hBQ0hBUE9MWV9DICovCi0KLWV4aXQ6Ci0gICAgbWJlZHRsc19wbGF0Zm9ybV96ZXJvaXplKGNoZWNrX3RhZywgdGFnX2xlbik7Ci0gICAgcmV0dXJuIHJldDsKLX0KLSNlbmRpZiAvKiBNQkVEVExTX0dDTV9DIHx8IE1CRURUTFNfQ0hBQ0hBUE9MWV9DICovCi0KLS8qCi0gKiBQYWNrZXQtb3JpZW50ZWQgd3JhcHBlciBmb3Igbm9uLUFFQUQgbW9kZXMKLSAqLwotaW50IG1iZWR0bHNfY2lwaGVyX2NyeXB0KG1iZWR0bHNfY2lwaGVyX2NvbnRleHRfdCAqY3R4LAotICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgKml2LCBzaXplX3QgaXZfbGVuLAotICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgKmlucHV0LCBzaXplX3QgaWxlbiwKLSAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBjaGFyICpvdXRwdXQsIHNpemVfdCAqb2xlbikKLXsKLSAgICBpbnQgcmV0ID0gTUJFRFRMU19FUlJfRVJST1JfQ09SUlVQVElPTl9ERVRFQ1RFRDsKLSAgICBzaXplX3QgZmluaXNoX29sZW47Ci0KLSNpZiBkZWZpbmVkKE1CRURUTFNfVVNFX1BTQV9DUllQVE8pICYmICFkZWZpbmVkKE1CRURUTFNfREVQUkVDQVRFRF9SRU1PVkVEKQotICAgIGlmIChjdHgtPnBzYV9lbmFibGVkID09IDEpIHsKLSAgICAgICAgLyogQXMgaW4gdGhlIG5vbi1QU0EgY2FzZSwgd2UgZG9uJ3QgY2hlY2sgdGhhdAotICAgICAgICAgKiBhIGtleSBoYXMgYmVlbiBzZXQuIElmIG5vdCwgdGhlIGtleSBzbG90IHdpbGwKLSAgICAgICAgICogc3RpbGwgYmUgaW4gaXRzIGRlZmF1bHQgc3RhdGUgb2YgMCwgd2hpY2ggaXMKLSAgICAgICAgICogZ3VhcmFudGVlZCB0byBiZSBpbnZhbGlkLCBoZW5jZSB0aGUgUFNBLWNhbGwKLSAgICAgICAgICogYmVsb3cgd2lsbCBncmFjZWZ1bGx5IGZhaWwuICovCi0gICAgICAgIG1iZWR0bHNfY2lwaGVyX2NvbnRleHRfcHNhICogY29uc3QgY2lwaGVyX3BzYSA9Ci0gICAgICAgICAgICAobWJlZHRsc19jaXBoZXJfY29udGV4dF9wc2EgKikgY3R4LT5jaXBoZXJfY3R4OwotCi0gICAgICAgIHBzYV9zdGF0dXNfdCBzdGF0dXM7Ci0gICAgICAgIHBzYV9jaXBoZXJfb3BlcmF0aW9uX3QgY2lwaGVyX29wID0gUFNBX0NJUEhFUl9PUEVSQVRJT05fSU5JVDsKLSAgICAgICAgc2l6ZV90IHBhcnRfbGVuOwotCi0gICAgICAgIGlmIChjdHgtPm9wZXJhdGlvbiA9PSBNQkVEVExTX0RFQ1JZUFQpIHsKLSAgICAgICAgICAgIHN0YXR1cyA9IHBzYV9jaXBoZXJfZGVjcnlwdF9zZXR1cCgmY2lwaGVyX29wLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNpcGhlcl9wc2EtPnNsb3QsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2lwaGVyX3BzYS0+YWxnKTsKLSAgICAgICAgfSBlbHNlIGlmIChjdHgtPm9wZXJhdGlvbiA9PSBNQkVEVExTX0VOQ1JZUFQpIHsKLSAgICAgICAgICAgIHN0YXR1cyA9IHBzYV9jaXBoZXJfZW5jcnlwdF9zZXR1cCgmY2lwaGVyX29wLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNpcGhlcl9wc2EtPnNsb3QsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2lwaGVyX3BzYS0+YWxnKTsKLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9DSVBIRVJfQkFEX0lOUFVUX0RBVEE7Ci0gICAgICAgIH0KLQotICAgICAgICAvKiBJbiB0aGUgZm9sbG93aW5nLCB3ZSBjYW4gaW1tZWRpYXRlbHkgcmV0dXJuIG9uIGFuIGVycm9yLAotICAgICAgICAgKiBiZWNhdXNlIHRoZSBQU0EgQ3J5cHRvIEFQSSBndWFyYW50ZWVzIHRoYXQgY2lwaGVyIG9wZXJhdGlvbnMKLSAgICAgICAgICogYXJlIHRlcm1pbmF0ZWQgYnkgdW5zdWNjZXNzZnVsIGNhbGxzIHRvIHBzYV9jaXBoZXJfdXBkYXRlKCksCi0gICAgICAgICAqIGFuZCBieSBhbnkgY2FsbCB0byBwc2FfY2lwaGVyX2ZpbmlzaCgpLiAqLwotICAgICAgICBpZiAoc3RhdHVzICE9IFBTQV9TVUNDRVNTKSB7Ci0gICAgICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfUExBVEZPUk1fSFdfQUNDRUxfRkFJTEVEOwotICAgICAgICB9Ci0KLSAgICAgICAgaWYgKCgobWJlZHRsc19jaXBoZXJfbW9kZV90KSBjdHgtPmNpcGhlcl9pbmZvLT5tb2RlKSAhPSBNQkVEVExTX01PREVfRUNCKSB7Ci0gICAgICAgICAgICBzdGF0dXMgPSBwc2FfY2lwaGVyX3NldF9pdigmY2lwaGVyX29wLCBpdiwgaXZfbGVuKTsKLSAgICAgICAgICAgIGlmIChzdGF0dXMgIT0gUFNBX1NVQ0NFU1MpIHsKLSAgICAgICAgICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfUExBVEZPUk1fSFdfQUNDRUxfRkFJTEVEOwotICAgICAgICAgICAgfQotICAgICAgICB9Ci0KLSAgICAgICAgc3RhdHVzID0gcHNhX2NpcGhlcl91cGRhdGUoJmNpcGhlcl9vcCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5wdXQsIGlsZW4sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG91dHB1dCwgaWxlbiwgb2xlbik7Ci0gICAgICAgIGlmIChzdGF0dXMgIT0gUFNBX1NVQ0NFU1MpIHsKLSAgICAgICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9QTEFURk9STV9IV19BQ0NFTF9GQUlMRUQ7Ci0gICAgICAgIH0KLQotICAgICAgICBzdGF0dXMgPSBwc2FfY2lwaGVyX2ZpbmlzaCgmY2lwaGVyX29wLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvdXRwdXQgKyAqb2xlbiwgaWxlbiAtICpvbGVuLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmcGFydF9sZW4pOwotICAgICAgICBpZiAoc3RhdHVzICE9IFBTQV9TVUNDRVNTKSB7Ci0gICAgICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfUExBVEZPUk1fSFdfQUNDRUxfRkFJTEVEOwotICAgICAgICB9Ci0KLSAgICAgICAgKm9sZW4gKz0gcGFydF9sZW47Ci0gICAgICAgIHJldHVybiAwOwotICAgIH0KLSNlbmRpZiAvKiBNQkVEVExTX1VTRV9QU0FfQ1JZUFRPICYmICFNQkVEVExTX0RFUFJFQ0FURURfUkVNT1ZFRCAqLwotCi0gICAgaWYgKChyZXQgPSBtYmVkdGxzX2NpcGhlcl9zZXRfaXYoY3R4LCBpdiwgaXZfbGVuKSkgIT0gMCkgewotICAgICAgICByZXR1cm4gcmV0OwotICAgIH0KLQotICAgIGlmICgocmV0ID0gbWJlZHRsc19jaXBoZXJfcmVzZXQoY3R4KSkgIT0gMCkgewotICAgICAgICByZXR1cm4gcmV0OwotICAgIH0KLQotICAgIGlmICgocmV0ID0gbWJlZHRsc19jaXBoZXJfdXBkYXRlKGN0eCwgaW5wdXQsIGlsZW4sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3V0cHV0LCBvbGVuKSkgIT0gMCkgewotICAgICAgICByZXR1cm4gcmV0OwotICAgIH0KLQotICAgIGlmICgocmV0ID0gbWJlZHRsc19jaXBoZXJfZmluaXNoKGN0eCwgb3V0cHV0ICsgKm9sZW4sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJmZpbmlzaF9vbGVuKSkgIT0gMCkgewotICAgICAgICByZXR1cm4gcmV0OwotICAgIH0KLQotICAgICpvbGVuICs9IGZpbmlzaF9vbGVuOwotCi0gICAgcmV0dXJuIDA7Ci19Ci0KLSNpZiBkZWZpbmVkKE1CRURUTFNfQ0lQSEVSX01PREVfQUVBRCkKLS8qCi0gKiBQYWNrZXQtb3JpZW50ZWQgZW5jcnlwdGlvbiBmb3IgQUVBRCBtb2RlczogaW50ZXJuYWwgZnVuY3Rpb24gdXNlZCBieQotICogbWJlZHRsc19jaXBoZXJfYXV0aF9lbmNyeXB0X2V4dCgpLgotICovCi1zdGF0aWMgaW50IG1iZWR0bHNfY2lwaGVyX2FlYWRfZW5jcnlwdChtYmVkdGxzX2NpcGhlcl9jb250ZXh0X3QgKmN0eCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgKml2LCBzaXplX3QgaXZfbGVuLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdW5zaWduZWQgY2hhciAqYWQsIHNpemVfdCBhZF9sZW4sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1bnNpZ25lZCBjaGFyICppbnB1dCwgc2l6ZV90IGlsZW4sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBjaGFyICpvdXRwdXQsIHNpemVfdCAqb2xlbiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGNoYXIgKnRhZywgc2l6ZV90IHRhZ19sZW4pCi17Ci0jaWYgZGVmaW5lZChNQkVEVExTX1VTRV9QU0FfQ1JZUFRPKSAmJiAhZGVmaW5lZChNQkVEVExTX0RFUFJFQ0FURURfUkVNT1ZFRCkKLSAgICBpZiAoY3R4LT5wc2FfZW5hYmxlZCA9PSAxKSB7Ci0gICAgICAgIC8qIEFzIGluIHRoZSBub24tUFNBIGNhc2UsIHdlIGRvbid0IGNoZWNrIHRoYXQKLSAgICAgICAgICogYSBrZXkgaGFzIGJlZW4gc2V0LiBJZiBub3QsIHRoZSBrZXkgc2xvdCB3aWxsCi0gICAgICAgICAqIHN0aWxsIGJlIGluIGl0cyBkZWZhdWx0IHN0YXRlIG9mIDAsIHdoaWNoIGlzCi0gICAgICAgICAqIGd1YXJhbnRlZWQgdG8gYmUgaW52YWxpZCwgaGVuY2UgdGhlIFBTQS1jYWxsCi0gICAgICAgICAqIGJlbG93IHdpbGwgZ3JhY2VmdWxseSBmYWlsLiAqLwotICAgICAgICBtYmVkdGxzX2NpcGhlcl9jb250ZXh0X3BzYSAqIGNvbnN0IGNpcGhlcl9wc2EgPQotICAgICAgICAgICAgKG1iZWR0bHNfY2lwaGVyX2NvbnRleHRfcHNhICopIGN0eC0+Y2lwaGVyX2N0eDsKLQotICAgICAgICBwc2Ffc3RhdHVzX3Qgc3RhdHVzOwotCi0gICAgICAgIC8qIFBTQSBDcnlwdG8gQVBJIGFsd2F5cyB3cml0ZXMgdGhlIGF1dGhlbnRpY2F0aW9uIHRhZwotICAgICAgICAgKiBhdCB0aGUgZW5kIG9mIHRoZSBlbmNyeXB0ZWQgbWVzc2FnZS4gKi8KLSAgICAgICAgaWYgKG91dHB1dCA9PSBOVUxMIHx8IHRhZyAhPSBvdXRwdXQgKyBpbGVuKSB7Ci0gICAgICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfQ0lQSEVSX0ZFQVRVUkVfVU5BVkFJTEFCTEU7Ci0gICAgICAgIH0KLQotICAgICAgICBzdGF0dXMgPSBwc2FfYWVhZF9lbmNyeXB0KGNpcGhlcl9wc2EtPnNsb3QsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2lwaGVyX3BzYS0+YWxnLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGl2LCBpdl9sZW4sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWQsIGFkX2xlbiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnB1dCwgaWxlbiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvdXRwdXQsIGlsZW4gKyB0YWdfbGVuLCBvbGVuKTsKLSAgICAgICAgaWYgKHN0YXR1cyAhPSBQU0FfU1VDQ0VTUykgewotICAgICAgICAgICAgcmV0dXJuIE1CRURUTFNfRVJSX1BMQVRGT1JNX0hXX0FDQ0VMX0ZBSUxFRDsKLSAgICAgICAgfQotCi0gICAgICAgICpvbGVuIC09IHRhZ19sZW47Ci0gICAgICAgIHJldHVybiAwOwotICAgIH0KLSNlbmRpZiAvKiBNQkVEVExTX1VTRV9QU0FfQ1JZUFRPICYmICFNQkVEVExTX0RFUFJFQ0FURURfUkVNT1ZFRCAqLwotCi0jaWYgZGVmaW5lZChNQkVEVExTX0dDTV9DKQotICAgIGlmIChNQkVEVExTX01PREVfR0NNID09ICgobWJlZHRsc19jaXBoZXJfbW9kZV90KSBjdHgtPmNpcGhlcl9pbmZvLT5tb2RlKSkgewotICAgICAgICAqb2xlbiA9IGlsZW47Ci0gICAgICAgIHJldHVybiBtYmVkdGxzX2djbV9jcnlwdF9hbmRfdGFnKGN0eC0+Y2lwaGVyX2N0eCwgTUJFRFRMU19HQ01fRU5DUllQVCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWxlbiwgaXYsIGl2X2xlbiwgYWQsIGFkX2xlbiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5wdXQsIG91dHB1dCwgdGFnX2xlbiwgdGFnKTsKLSAgICB9Ci0jZW5kaWYgLyogTUJFRFRMU19HQ01fQyAqLwotI2lmIGRlZmluZWQoTUJFRFRMU19DQ01fQykKLSAgICBpZiAoTUJFRFRMU19NT0RFX0NDTSA9PSAoKG1iZWR0bHNfY2lwaGVyX21vZGVfdCkgY3R4LT5jaXBoZXJfaW5mby0+bW9kZSkpIHsKLSAgICAgICAgKm9sZW4gPSBpbGVuOwotICAgICAgICByZXR1cm4gbWJlZHRsc19jY21fZW5jcnlwdF9hbmRfdGFnKGN0eC0+Y2lwaGVyX2N0eCwgaWxlbiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpdiwgaXZfbGVuLCBhZCwgYWRfbGVuLCBpbnB1dCwgb3V0cHV0LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhZywgdGFnX2xlbik7Ci0gICAgfQotI2VuZGlmIC8qIE1CRURUTFNfQ0NNX0MgKi8KLSNpZiBkZWZpbmVkKE1CRURUTFNfQ0hBQ0hBUE9MWV9DKQotICAgIGlmIChNQkVEVExTX0NJUEhFUl9DSEFDSEEyMF9QT0xZMTMwNSA9PSAoKG1iZWR0bHNfY2lwaGVyX3R5cGVfdCkgY3R4LT5jaXBoZXJfaW5mby0+dHlwZSkpIHsKLSAgICAgICAgLyogQ2hhY2hhUG9seSBoYXMgZml4ZWQgbGVuZ3RoIG5vbmNlIGFuZCBNQUMgKHRhZykgKi8KLSAgICAgICAgaWYgKChpdl9sZW4gIT0gbWJlZHRsc19jaXBoZXJfaW5mb19nZXRfaXZfc2l6ZShjdHgtPmNpcGhlcl9pbmZvKSkgfHwKLSAgICAgICAgICAgICh0YWdfbGVuICE9IDE2VSkpIHsKLSAgICAgICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9DSVBIRVJfQkFEX0lOUFVUX0RBVEE7Ci0gICAgICAgIH0KLQotICAgICAgICAqb2xlbiA9IGlsZW47Ci0gICAgICAgIHJldHVybiBtYmVkdGxzX2NoYWNoYXBvbHlfZW5jcnlwdF9hbmRfdGFnKGN0eC0+Y2lwaGVyX2N0eCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWxlbiwgaXYsIGFkLCBhZF9sZW4sIGlucHV0LCBvdXRwdXQsIHRhZyk7Ci0gICAgfQotI2VuZGlmIC8qIE1CRURUTFNfQ0hBQ0hBUE9MWV9DICovCi0KLSAgICByZXR1cm4gTUJFRFRMU19FUlJfQ0lQSEVSX0ZFQVRVUkVfVU5BVkFJTEFCTEU7Ci19Ci0KLS8qCi0gKiBQYWNrZXQtb3JpZW50ZWQgZW5jcnlwdGlvbiBmb3IgQUVBRCBtb2RlczogaW50ZXJuYWwgZnVuY3Rpb24gdXNlZCBieQotICogbWJlZHRsc19jaXBoZXJfYXV0aF9lbmNyeXB0X2V4dCgpLgotICovCi1zdGF0aWMgaW50IG1iZWR0bHNfY2lwaGVyX2FlYWRfZGVjcnlwdChtYmVkdGxzX2NpcGhlcl9jb250ZXh0X3QgKmN0eCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgKml2LCBzaXplX3QgaXZfbGVuLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdW5zaWduZWQgY2hhciAqYWQsIHNpemVfdCBhZF9sZW4sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1bnNpZ25lZCBjaGFyICppbnB1dCwgc2l6ZV90IGlsZW4sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBjaGFyICpvdXRwdXQsIHNpemVfdCAqb2xlbiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgKnRhZywgc2l6ZV90IHRhZ19sZW4pCi17Ci0jaWYgZGVmaW5lZChNQkVEVExTX1VTRV9QU0FfQ1JZUFRPKSAmJiAhZGVmaW5lZChNQkVEVExTX0RFUFJFQ0FURURfUkVNT1ZFRCkKLSAgICBpZiAoY3R4LT5wc2FfZW5hYmxlZCA9PSAxKSB7Ci0gICAgICAgIC8qIEFzIGluIHRoZSBub24tUFNBIGNhc2UsIHdlIGRvbid0IGNoZWNrIHRoYXQKLSAgICAgICAgICogYSBrZXkgaGFzIGJlZW4gc2V0LiBJZiBub3QsIHRoZSBrZXkgc2xvdCB3aWxsCi0gICAgICAgICAqIHN0aWxsIGJlIGluIGl0cyBkZWZhdWx0IHN0YXRlIG9mIDAsIHdoaWNoIGlzCi0gICAgICAgICAqIGd1YXJhbnRlZWQgdG8gYmUgaW52YWxpZCwgaGVuY2UgdGhlIFBTQS1jYWxsCi0gICAgICAgICAqIGJlbG93IHdpbGwgZ3JhY2VmdWxseSBmYWlsLiAqLwotICAgICAgICBtYmVkdGxzX2NpcGhlcl9jb250ZXh0X3BzYSAqIGNvbnN0IGNpcGhlcl9wc2EgPQotICAgICAgICAgICAgKG1iZWR0bHNfY2lwaGVyX2NvbnRleHRfcHNhICopIGN0eC0+Y2lwaGVyX2N0eDsKLQotICAgICAgICBwc2Ffc3RhdHVzX3Qgc3RhdHVzOwotCi0gICAgICAgIC8qIFBTQSBDcnlwdG8gQVBJIGFsd2F5cyB3cml0ZXMgdGhlIGF1dGhlbnRpY2F0aW9uIHRhZwotICAgICAgICAgKiBhdCB0aGUgZW5kIG9mIHRoZSBlbmNyeXB0ZWQgbWVzc2FnZS4gKi8KLSAgICAgICAgaWYgKGlucHV0ID09IE5VTEwgfHwgdGFnICE9IGlucHV0ICsgaWxlbikgewotICAgICAgICAgICAgcmV0dXJuIE1CRURUTFNfRVJSX0NJUEhFUl9GRUFUVVJFX1VOQVZBSUxBQkxFOwotICAgICAgICB9Ci0KLSAgICAgICAgc3RhdHVzID0gcHNhX2FlYWRfZGVjcnlwdChjaXBoZXJfcHNhLT5zbG90LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNpcGhlcl9wc2EtPmFsZywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpdiwgaXZfbGVuLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFkLCBhZF9sZW4sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5wdXQsIGlsZW4gKyB0YWdfbGVuLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG91dHB1dCwgaWxlbiwgb2xlbik7Ci0gICAgICAgIGlmIChzdGF0dXMgPT0gUFNBX0VSUk9SX0lOVkFMSURfU0lHTkFUVVJFKSB7Ci0gICAgICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfQ0lQSEVSX0FVVEhfRkFJTEVEOwotICAgICAgICB9IGVsc2UgaWYgKHN0YXR1cyAhPSBQU0FfU1VDQ0VTUykgewotICAgICAgICAgICAgcmV0dXJuIE1CRURUTFNfRVJSX1BMQVRGT1JNX0hXX0FDQ0VMX0ZBSUxFRDsKLSAgICAgICAgfQotCi0gICAgICAgIHJldHVybiAwOwotICAgIH0KLSNlbmRpZiAvKiBNQkVEVExTX1VTRV9QU0FfQ1JZUFRPICYmICFNQkVEVExTX0RFUFJFQ0FURURfUkVNT1ZFRCAqLwotCi0jaWYgZGVmaW5lZChNQkVEVExTX0dDTV9DKQotICAgIGlmIChNQkVEVExTX01PREVfR0NNID09ICgobWJlZHRsc19jaXBoZXJfbW9kZV90KSBjdHgtPmNpcGhlcl9pbmZvLT5tb2RlKSkgewotICAgICAgICBpbnQgcmV0ID0gTUJFRFRMU19FUlJfRVJST1JfQ09SUlVQVElPTl9ERVRFQ1RFRDsKLQotICAgICAgICAqb2xlbiA9IGlsZW47Ci0gICAgICAgIHJldCA9IG1iZWR0bHNfZ2NtX2F1dGhfZGVjcnlwdChjdHgtPmNpcGhlcl9jdHgsIGlsZW4sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpdiwgaXZfbGVuLCBhZCwgYWRfbGVuLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFnLCB0YWdfbGVuLCBpbnB1dCwgb3V0cHV0KTsKLQotICAgICAgICBpZiAocmV0ID09IE1CRURUTFNfRVJSX0dDTV9BVVRIX0ZBSUxFRCkgewotICAgICAgICAgICAgcmV0ID0gTUJFRFRMU19FUlJfQ0lQSEVSX0FVVEhfRkFJTEVEOwotICAgICAgICB9Ci0KLSAgICAgICAgcmV0dXJuIHJldDsKLSAgICB9Ci0jZW5kaWYgLyogTUJFRFRMU19HQ01fQyAqLwotI2lmIGRlZmluZWQoTUJFRFRMU19DQ01fQykKLSAgICBpZiAoTUJFRFRMU19NT0RFX0NDTSA9PSAoKG1iZWR0bHNfY2lwaGVyX21vZGVfdCkgY3R4LT5jaXBoZXJfaW5mby0+bW9kZSkpIHsKLSAgICAgICAgaW50IHJldCA9IE1CRURUTFNfRVJSX0VSUk9SX0NPUlJVUFRJT05fREVURUNURUQ7Ci0KLSAgICAgICAgKm9sZW4gPSBpbGVuOwotICAgICAgICByZXQgPSBtYmVkdGxzX2NjbV9hdXRoX2RlY3J5cHQoY3R4LT5jaXBoZXJfY3R4LCBpbGVuLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXYsIGl2X2xlbiwgYWQsIGFkX2xlbiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlucHV0LCBvdXRwdXQsIHRhZywgdGFnX2xlbik7Ci0KLSAgICAgICAgaWYgKHJldCA9PSBNQkVEVExTX0VSUl9DQ01fQVVUSF9GQUlMRUQpIHsKLSAgICAgICAgICAgIHJldCA9IE1CRURUTFNfRVJSX0NJUEhFUl9BVVRIX0ZBSUxFRDsKLSAgICAgICAgfQotCi0gICAgICAgIHJldHVybiByZXQ7Ci0gICAgfQotI2VuZGlmIC8qIE1CRURUTFNfQ0NNX0MgKi8KLSNpZiBkZWZpbmVkKE1CRURUTFNfQ0hBQ0hBUE9MWV9DKQotICAgIGlmIChNQkVEVExTX0NJUEhFUl9DSEFDSEEyMF9QT0xZMTMwNSA9PSAoKG1iZWR0bHNfY2lwaGVyX3R5cGVfdCkgY3R4LT5jaXBoZXJfaW5mby0+dHlwZSkpIHsKLSAgICAgICAgaW50IHJldCA9IE1CRURUTFNfRVJSX0VSUk9SX0NPUlJVUFRJT05fREVURUNURUQ7Ci0KLSAgICAgICAgLyogQ2hhY2hhUG9seSBoYXMgZml4ZWQgbGVuZ3RoIG5vbmNlIGFuZCBNQUMgKHRhZykgKi8KLSAgICAgICAgaWYgKChpdl9sZW4gIT0gbWJlZHRsc19jaXBoZXJfaW5mb19nZXRfaXZfc2l6ZShjdHgtPmNpcGhlcl9pbmZvKSkgfHwKLSAgICAgICAgICAgICh0YWdfbGVuICE9IDE2VSkpIHsKLSAgICAgICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9DSVBIRVJfQkFEX0lOUFVUX0RBVEE7Ci0gICAgICAgIH0KLQotICAgICAgICAqb2xlbiA9IGlsZW47Ci0gICAgICAgIHJldCA9IG1iZWR0bHNfY2hhY2hhcG9seV9hdXRoX2RlY3J5cHQoY3R4LT5jaXBoZXJfY3R4LCBpbGVuLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGl2LCBhZCwgYWRfbGVuLCB0YWcsIGlucHV0LCBvdXRwdXQpOwotCi0gICAgICAgIGlmIChyZXQgPT0gTUJFRFRMU19FUlJfQ0hBQ0hBUE9MWV9BVVRIX0ZBSUxFRCkgewotICAgICAgICAgICAgcmV0ID0gTUJFRFRMU19FUlJfQ0lQSEVSX0FVVEhfRkFJTEVEOwotICAgICAgICB9Ci0KLSAgICAgICAgcmV0dXJuIHJldDsKLSAgICB9Ci0jZW5kaWYgLyogTUJFRFRMU19DSEFDSEFQT0xZX0MgKi8KLQotICAgIHJldHVybiBNQkVEVExTX0VSUl9DSVBIRVJfRkVBVFVSRV9VTkFWQUlMQUJMRTsKLX0KLSNlbmRpZiAvKiBNQkVEVExTX0NJUEhFUl9NT0RFX0FFQUQgKi8KLQotI2lmIGRlZmluZWQoTUJFRFRMU19DSVBIRVJfTU9ERV9BRUFEKSB8fCBkZWZpbmVkKE1CRURUTFNfTklTVF9LV19DKQotLyoKLSAqIFBhY2tldC1vcmllbnRlZCBlbmNyeXB0aW9uIGZvciBBRUFEL05JU1RfS1c6IHB1YmxpYyBmdW5jdGlvbi4KLSAqLwotaW50IG1iZWR0bHNfY2lwaGVyX2F1dGhfZW5jcnlwdF9leHQobWJlZHRsc19jaXBoZXJfY29udGV4dF90ICpjdHgsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1bnNpZ25lZCBjaGFyICppdiwgc2l6ZV90IGl2X2xlbiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgKmFkLCBzaXplX3QgYWRfbGVuLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdW5zaWduZWQgY2hhciAqaW5wdXQsIHNpemVfdCBpbGVuLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgY2hhciAqb3V0cHV0LCBzaXplX3Qgb3V0cHV0X2xlbiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCAqb2xlbiwgc2l6ZV90IHRhZ19sZW4pCi17Ci0jaWYgZGVmaW5lZChNQkVEVExTX05JU1RfS1dfQykKLSAgICBpZiAoCi0jaWYgZGVmaW5lZChNQkVEVExTX1VTRV9QU0FfQ1JZUFRPKSAmJiAhZGVmaW5lZChNQkVEVExTX0RFUFJFQ0FURURfUkVNT1ZFRCkKLSAgICAgICAgY3R4LT5wc2FfZW5hYmxlZCA9PSAwICYmCi0jZW5kaWYKLSAgICAgICAgKE1CRURUTFNfTU9ERV9LVyA9PSAoKG1iZWR0bHNfY2lwaGVyX21vZGVfdCkgY3R4LT5jaXBoZXJfaW5mby0+bW9kZSkgfHwKLSAgICAgICAgIE1CRURUTFNfTU9ERV9LV1AgPT0gKChtYmVkdGxzX2NpcGhlcl9tb2RlX3QpIGN0eC0+Y2lwaGVyX2luZm8tPm1vZGUpKSkgewotICAgICAgICBtYmVkdGxzX25pc3Rfa3dfbW9kZV90IG1vZGUgPQotICAgICAgICAgICAgKE1CRURUTFNfTU9ERV9LVyA9PSAoKG1iZWR0bHNfY2lwaGVyX21vZGVfdCkgY3R4LT5jaXBoZXJfaW5mby0+bW9kZSkpID8KLSAgICAgICAgICAgIE1CRURUTFNfS1dfTU9ERV9LVyA6IE1CRURUTFNfS1dfTU9ERV9LV1A7Ci0KLSAgICAgICAgLyogVGhlcmUgaXMgbm8gaXYsIHRhZyBvciBhZCBhc3NvY2lhdGVkIHdpdGggS1cgYW5kIEtXUCwKLSAgICAgICAgICogc28gdGhlc2UgbGVuZ3RoIHNob3VsZCBiZSAwIGFzIGRvY3VtZW50ZWQuICovCi0gICAgICAgIGlmIChpdl9sZW4gIT0gMCB8fCB0YWdfbGVuICE9IDAgfHwgYWRfbGVuICE9IDApIHsKLSAgICAgICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9DSVBIRVJfQkFEX0lOUFVUX0RBVEE7Ci0gICAgICAgIH0KLQotICAgICAgICAodm9pZCkgaXY7Ci0gICAgICAgICh2b2lkKSBhZDsKLQotICAgICAgICByZXR1cm4gbWJlZHRsc19uaXN0X2t3X3dyYXAoY3R4LT5jaXBoZXJfY3R4LCBtb2RlLCBpbnB1dCwgaWxlbiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG91dHB1dCwgb2xlbiwgb3V0cHV0X2xlbik7Ci0gICAgfQotI2VuZGlmIC8qIE1CRURUTFNfTklTVF9LV19DICovCi0KLSNpZiBkZWZpbmVkKE1CRURUTFNfQ0lQSEVSX01PREVfQUVBRCkKLSAgICAvKiBBRUFEIGNhc2U6IGNoZWNrIGxlbmd0aCBiZWZvcmUgcGFzc2luZyBvbiB0byBzaGFyZWQgZnVuY3Rpb24gKi8KLSAgICBpZiAob3V0cHV0X2xlbiA8IGlsZW4gKyB0YWdfbGVuKSB7Ci0gICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9DSVBIRVJfQkFEX0lOUFVUX0RBVEE7Ci0gICAgfQotCi0gICAgaW50IHJldCA9IG1iZWR0bHNfY2lwaGVyX2FlYWRfZW5jcnlwdChjdHgsIGl2LCBpdl9sZW4sIGFkLCBhZF9sZW4sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnB1dCwgaWxlbiwgb3V0cHV0LCBvbGVuLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3V0cHV0ICsgaWxlbiwgdGFnX2xlbik7Ci0gICAgKm9sZW4gKz0gdGFnX2xlbjsKLSAgICByZXR1cm4gcmV0OwotI2Vsc2UKLSAgICByZXR1cm4gTUJFRFRMU19FUlJfQ0lQSEVSX0ZFQVRVUkVfVU5BVkFJTEFCTEU7Ci0jZW5kaWYgLyogTUJFRFRMU19DSVBIRVJfTU9ERV9BRUFEICovCi19Ci0KLS8qCi0gKiBQYWNrZXQtb3JpZW50ZWQgZGVjcnlwdGlvbiBmb3IgQUVBRC9OSVNUX0tXOiBwdWJsaWMgZnVuY3Rpb24uCi0gKi8KLWludCBtYmVkdGxzX2NpcGhlcl9hdXRoX2RlY3J5cHRfZXh0KG1iZWR0bHNfY2lwaGVyX2NvbnRleHRfdCAqY3R4LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdW5zaWduZWQgY2hhciAqaXYsIHNpemVfdCBpdl9sZW4sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1bnNpZ25lZCBjaGFyICphZCwgc2l6ZV90IGFkX2xlbiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgKmlucHV0LCBzaXplX3QgaWxlbiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGNoYXIgKm91dHB1dCwgc2l6ZV90IG91dHB1dF9sZW4sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgKm9sZW4sIHNpemVfdCB0YWdfbGVuKQotewotI2lmIGRlZmluZWQoTUJFRFRMU19OSVNUX0tXX0MpCi0gICAgaWYgKAotI2lmIGRlZmluZWQoTUJFRFRMU19VU0VfUFNBX0NSWVBUTykgJiYgIWRlZmluZWQoTUJFRFRMU19ERVBSRUNBVEVEX1JFTU9WRUQpCi0gICAgICAgIGN0eC0+cHNhX2VuYWJsZWQgPT0gMCAmJgotI2VuZGlmCi0gICAgICAgIChNQkVEVExTX01PREVfS1cgPT0gKChtYmVkdGxzX2NpcGhlcl9tb2RlX3QpIGN0eC0+Y2lwaGVyX2luZm8tPm1vZGUpIHx8Ci0gICAgICAgICBNQkVEVExTX01PREVfS1dQID09ICgobWJlZHRsc19jaXBoZXJfbW9kZV90KSBjdHgtPmNpcGhlcl9pbmZvLT5tb2RlKSkpIHsKLSAgICAgICAgbWJlZHRsc19uaXN0X2t3X21vZGVfdCBtb2RlID0KLSAgICAgICAgICAgIChNQkVEVExTX01PREVfS1cgPT0gKChtYmVkdGxzX2NpcGhlcl9tb2RlX3QpIGN0eC0+Y2lwaGVyX2luZm8tPm1vZGUpKSA/Ci0gICAgICAgICAgICBNQkVEVExTX0tXX01PREVfS1cgOiBNQkVEVExTX0tXX01PREVfS1dQOwotCi0gICAgICAgIC8qIFRoZXJlIGlzIG5vIGl2LCB0YWcgb3IgYWQgYXNzb2NpYXRlZCB3aXRoIEtXIGFuZCBLV1AsCi0gICAgICAgICAqIHNvIHRoZXNlIGxlbmd0aCBzaG91bGQgYmUgMCBhcyBkb2N1bWVudGVkLiAqLwotICAgICAgICBpZiAoaXZfbGVuICE9IDAgfHwgdGFnX2xlbiAhPSAwIHx8IGFkX2xlbiAhPSAwKSB7Ci0gICAgICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfQ0lQSEVSX0JBRF9JTlBVVF9EQVRBOwotICAgICAgICB9Ci0KLSAgICAgICAgKHZvaWQpIGl2OwotICAgICAgICAodm9pZCkgYWQ7Ci0KLSAgICAgICAgcmV0dXJuIG1iZWR0bHNfbmlzdF9rd191bndyYXAoY3R4LT5jaXBoZXJfY3R4LCBtb2RlLCBpbnB1dCwgaWxlbiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3V0cHV0LCBvbGVuLCBvdXRwdXRfbGVuKTsKLSAgICB9Ci0jZW5kaWYgLyogTUJFRFRMU19OSVNUX0tXX0MgKi8KLQotI2lmIGRlZmluZWQoTUJFRFRMU19DSVBIRVJfTU9ERV9BRUFEKQotICAgIC8qIEFFQUQgY2FzZTogY2hlY2sgbGVuZ3RoIGJlZm9yZSBwYXNzaW5nIG9uIHRvIHNoYXJlZCBmdW5jdGlvbiAqLwotICAgIGlmIChpbGVuIDwgdGFnX2xlbiB8fCBvdXRwdXRfbGVuIDwgaWxlbiAtIHRhZ19sZW4pIHsKLSAgICAgICAgcmV0dXJuIE1CRURUTFNfRVJSX0NJUEhFUl9CQURfSU5QVVRfREFUQTsKLSAgICB9Ci0KLSAgICByZXR1cm4gbWJlZHRsc19jaXBoZXJfYWVhZF9kZWNyeXB0KGN0eCwgaXYsIGl2X2xlbiwgYWQsIGFkX2xlbiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlucHV0LCBpbGVuIC0gdGFnX2xlbiwgb3V0cHV0LCBvbGVuLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5wdXQgKyBpbGVuIC0gdGFnX2xlbiwgdGFnX2xlbik7Ci0jZWxzZQotICAgIHJldHVybiBNQkVEVExTX0VSUl9DSVBIRVJfRkVBVFVSRV9VTkFWQUlMQUJMRTsKLSNlbmRpZiAvKiBNQkVEVExTX0NJUEhFUl9NT0RFX0FFQUQgKi8KLX0KLSNlbmRpZiAvKiBNQkVEVExTX0NJUEhFUl9NT0RFX0FFQUQgfHwgTUJFRFRMU19OSVNUX0tXX0MgKi8KLQotI2VuZGlmIC8qIE1CRURUTFNfQ0lQSEVSX0MgKi8KZGlmZiAtLWdpdCBhL2xpYnJhcnkvY21hYy5jIGIvbGlicmFyeS9jbWFjLmMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGVkYTEwZDAuLjAwMDAwMDAKLS0tIGEvbGlicmFyeS9jbWFjLmMKKysrIC9kZXYvbnVsbApAQCAtMSwxMDY3ICswLDAgQEAKLS8qKgotICogXGZpbGUgY21hYy5jCi0gKgotICogXGJyaWVmIE5JU1QgU1A4MDAtMzhCIGNvbXBsaWFudCBDTUFDIGltcGxlbWVudGF0aW9uIGZvciBBRVMgYW5kIDNERVMKLSAqCi0gKiAgQ29weXJpZ2h0IFRoZSBNYmVkIFRMUyBDb250cmlidXRvcnMKLSAqICBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMCBPUiBHUEwtMi4wLW9yLWxhdGVyCi0gKi8KLQotLyoKLSAqIFJlZmVyZW5jZXM6Ci0gKgotICogLSBOSVNUIFNQIDgwMC0zOEIgUmVjb21tZW5kYXRpb24gZm9yIEJsb2NrIENpcGhlciBNb2RlcyBvZiBPcGVyYXRpb246IFRoZQotICogICAgICBDTUFDIE1vZGUgZm9yIEF1dGhlbnRpY2F0aW9uCi0gKiAgIGh0dHA6Ly9udmxwdWJzLm5pc3QuZ292L25pc3RwdWJzL1NwZWNpYWxQdWJsaWNhdGlvbnMvTklTVC5TUC44MDAtMzhiLnBkZgotICoKLSAqIC0gUkZDIDQ0OTMgLSBUaGUgQUVTLUNNQUMgQWxnb3JpdGhtCi0gKiAgIGh0dHBzOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9yZmM0NDkzCi0gKgotICogLSBSRkMgNDYxNSAtIFRoZSBBZHZhbmNlZCBFbmNyeXB0aW9uIFN0YW5kYXJkLUNpcGhlci1iYXNlZCBNZXNzYWdlCi0gKiAgICAgIEF1dGhlbnRpY2F0aW9uIENvZGUtUHNldWRvLVJhbmRvbSBGdW5jdGlvbi0xMjggKEFFUy1DTUFDLVBSRi0xMjgpCi0gKiAgICAgIEFsZ29yaXRobSBmb3IgdGhlIEludGVybmV0IEtleSBFeGNoYW5nZSBQcm90b2NvbCAoSUtFKQotICogICBodHRwczovL3Rvb2xzLmlldGYub3JnL2h0bWwvcmZjNDYxNQotICoKLSAqICAgQWRkaXRpb25hbCB0ZXN0IHZlY3RvcnM6IElTTy9JRUMgOTc5Ny0xCi0gKgotICovCi0KLSNpbmNsdWRlICJjb21tb24uaCIKLQotI2lmIGRlZmluZWQoTUJFRFRMU19DTUFDX0MpCi0KLSNpbmNsdWRlICJtYmVkdGxzL2NtYWMuaCIKLSNpbmNsdWRlICJtYmVkdGxzL3BsYXRmb3JtX3V0aWwuaCIKLSNpbmNsdWRlICJtYmVkdGxzL2Vycm9yLmgiCi0jaW5jbHVkZSAibWJlZHRscy9wbGF0Zm9ybS5oIgotI2luY2x1ZGUgImNvbnN0YW50X3RpbWVfaW50ZXJuYWwuaCIKLQotI2luY2x1ZGUgPHN0cmluZy5oPgotCi0jaWYgIWRlZmluZWQoTUJFRFRMU19DTUFDX0FMVCkgfHwgZGVmaW5lZChNQkVEVExTX1NFTEZfVEVTVCkKLQotLyoKLSAqIE11bHRpcGxpY2F0aW9uIGJ5IHUgaW4gdGhlIEdhbG9pcyBmaWVsZCBvZiBHRigyXm4pCi0gKgotICogQXMgZXhwbGFpbmVkIGluIE5JU1QgU1AgODAwLTM4QiwgdGhpcyBjYW4gYmUgY29tcHV0ZWQ6Ci0gKgotICogICBJZiBNU0IocCkgPSAwLCB0aGVuIHAgPSAocCA8PCAxKQotICogICBJZiBNU0IocCkgPSAxLCB0aGVuIHAgPSAocCA8PCAxKSBeIFJfbgotICogICB3aXRoIFJfNjQgPSAweDFCIGFuZCAgUl8xMjggPSAweDg3Ci0gKgotICogSW5wdXQgYW5kIG91dHB1dCBNVVNUIE5PVCBwb2ludCB0byB0aGUgc2FtZSBidWZmZXIKLSAqIEJsb2NrIHNpemUgbXVzdCBiZSA4IGJ5dGVzIG9yIDE2IGJ5dGVzIC0gdGhlIGJsb2NrIHNpemVzIGZvciBERVMgYW5kIEFFUy4KLSAqLwotc3RhdGljIGludCBjbWFjX211bHRpcGx5X2J5X3UodW5zaWduZWQgY2hhciAqb3V0cHV0LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdW5zaWduZWQgY2hhciAqaW5wdXQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgYmxvY2tzaXplKQotewotICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgUl8xMjggPSAweDg3OwotICAgIHVuc2lnbmVkIGNoYXIgUl9uOwotICAgIHVpbnQzMl90IG92ZXJmbG93ID0gMHgwMDsKLSAgICBpbnQgaTsKLQotICAgIGlmIChibG9ja3NpemUgPT0gTUJFRFRMU19BRVNfQkxPQ0tfU0laRSkgewotICAgICAgICBSX24gPSBSXzEyODsKLSAgICB9Ci0jaWYgZGVmaW5lZChNQkVEVExTX0RFU19DKQotICAgIGVsc2UgaWYgKGJsb2Nrc2l6ZSA9PSBNQkVEVExTX0RFUzNfQkxPQ0tfU0laRSkgewotICAgICAgICBjb25zdCB1bnNpZ25lZCBjaGFyIFJfNjQgPSAweDFCOwotICAgICAgICBSX24gPSBSXzY0OwotICAgIH0KLSNlbmRpZgotICAgIGVsc2UgewotICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfQ0lQSEVSX0JBRF9JTlBVVF9EQVRBOwotICAgIH0KLQotICAgIGZvciAoaSA9IChpbnQpIGJsb2Nrc2l6ZSAtIDQ7IGkgPj0gMDsgaSAtPSA0KSB7Ci0gICAgICAgIHVpbnQzMl90IGkzMiA9IE1CRURUTFNfR0VUX1VJTlQzMl9CRSgmaW5wdXRbaV0sIDApOwotICAgICAgICB1aW50MzJfdCBuZXdfb3ZlcmZsb3cgPSBpMzIgPj4gMzE7Ci0gICAgICAgIGkzMiA9IChpMzIgPDwgMSkgfCBvdmVyZmxvdzsKLSAgICAgICAgTUJFRFRMU19QVVRfVUlOVDMyX0JFKGkzMiwgJm91dHB1dFtpXSwgMCk7Ci0gICAgICAgIG92ZXJmbG93ID0gbmV3X292ZXJmbG93OwotICAgIH0KLQotICAgIFJfbiA9ICh1bnNpZ25lZCBjaGFyKSBtYmVkdGxzX2N0X3VpbnRfaWZfZWxzZV8wKG1iZWR0bHNfY3RfYm9vbChpbnB1dFswXSA+PiA3KSwgUl9uKTsKLSAgICBvdXRwdXRbYmxvY2tzaXplIC0gMV0gXj0gUl9uOwotCi0gICAgcmV0dXJuIDA7Ci19Ci0KLS8qCi0gKiBHZW5lcmF0ZSBzdWJrZXlzCi0gKgotICogLSBhcyBzcGVjaWZpZWQgYnkgUkZDIDQ0OTMsIHNlY3Rpb24gMi4zIFN1YmtleSBHZW5lcmF0aW9uIEFsZ29yaXRobQotICovCi1zdGF0aWMgaW50IGNtYWNfZ2VuZXJhdGVfc3Via2V5cyhtYmVkdGxzX2NpcGhlcl9jb250ZXh0X3QgKmN0eCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGNoYXIgKksxLCB1bnNpZ25lZCBjaGFyICpLMikKLXsKLSAgICBpbnQgcmV0ID0gTUJFRFRMU19FUlJfRVJST1JfQ09SUlVQVElPTl9ERVRFQ1RFRDsKLSAgICB1bnNpZ25lZCBjaGFyIExbTUJFRFRMU19DTUFDX01BWF9CTE9DS19TSVpFXTsKLSAgICBzaXplX3Qgb2xlbiwgYmxvY2tfc2l6ZTsKLQotICAgIG1iZWR0bHNfcGxhdGZvcm1femVyb2l6ZShMLCBzaXplb2YoTCkpOwotCi0gICAgYmxvY2tfc2l6ZSA9IG1iZWR0bHNfY2lwaGVyX2luZm9fZ2V0X2Jsb2NrX3NpemUoY3R4LT5jaXBoZXJfaW5mbyk7Ci0KLSAgICAvKiBDYWxjdWxhdGUgRWsoMCkgKi8KLSAgICBpZiAoKHJldCA9IG1iZWR0bHNfY2lwaGVyX3VwZGF0ZShjdHgsIEwsIGJsb2NrX3NpemUsIEwsICZvbGVuKSkgIT0gMCkgewotICAgICAgICBnb3RvIGV4aXQ7Ci0gICAgfQotCi0gICAgLyoKLSAgICAgKiBHZW5lcmF0ZSBLMSBhbmQgSzIKLSAgICAgKi8KLSAgICBpZiAoKHJldCA9IGNtYWNfbXVsdGlwbHlfYnlfdShLMSwgTCwgYmxvY2tfc2l6ZSkpICE9IDApIHsKLSAgICAgICAgZ290byBleGl0OwotICAgIH0KLQotICAgIGlmICgocmV0ID0gY21hY19tdWx0aXBseV9ieV91KEsyLCBLMSwgYmxvY2tfc2l6ZSkpICE9IDApIHsKLSAgICAgICAgZ290byBleGl0OwotICAgIH0KLQotZXhpdDoKLSAgICBtYmVkdGxzX3BsYXRmb3JtX3plcm9pemUoTCwgc2l6ZW9mKEwpKTsKLQotICAgIHJldHVybiByZXQ7Ci19Ci0jZW5kaWYgLyogIWRlZmluZWQoTUJFRFRMU19DTUFDX0FMVCkgfHwgZGVmaW5lZChNQkVEVExTX1NFTEZfVEVTVCkgKi8KLQotI2lmICFkZWZpbmVkKE1CRURUTFNfQ01BQ19BTFQpCi0KLS8qCi0gKiBDcmVhdGUgcGFkZGVkIGxhc3QgYmxvY2sgZnJvbSAocGFydGlhbCkgbGFzdCBibG9jay4KLSAqCi0gKiBXZSBjYW4ndCB1c2UgdGhlIHBhZGRpbmcgb3B0aW9uIGZyb20gdGhlIGNpcGhlciBsYXllciwgYXMgaXQgb25seSB3b3JrcyBmb3IKLSAqIENCQyBhbmQgd2UgdXNlIEVDQiBtb2RlLCBhbmQgYW55d2F5IHdlIG5lZWQgdG8gWE9SIEsxIG9yIEsyIGluIGFkZGl0aW9uLgotICovCi1zdGF0aWMgdm9pZCBjbWFjX3BhZCh1bnNpZ25lZCBjaGFyIHBhZGRlZF9ibG9ja1tNQkVEVExTX0NNQUNfTUFYX0JMT0NLX1NJWkVdLAotICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IHBhZGRlZF9ibG9ja19sZW4sCi0gICAgICAgICAgICAgICAgICAgICBjb25zdCB1bnNpZ25lZCBjaGFyICpsYXN0X2Jsb2NrLAotICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IGxhc3RfYmxvY2tfbGVuKQotewotICAgIHNpemVfdCBqOwotCi0gICAgZm9yIChqID0gMDsgaiA8IHBhZGRlZF9ibG9ja19sZW47IGorKykgewotICAgICAgICBpZiAoaiA8IGxhc3RfYmxvY2tfbGVuKSB7Ci0gICAgICAgICAgICBwYWRkZWRfYmxvY2tbal0gPSBsYXN0X2Jsb2NrW2pdOwotICAgICAgICB9IGVsc2UgaWYgKGogPT0gbGFzdF9ibG9ja19sZW4pIHsKLSAgICAgICAgICAgIHBhZGRlZF9ibG9ja1tqXSA9IDB4ODA7Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBwYWRkZWRfYmxvY2tbal0gPSAweDAwOwotICAgICAgICB9Ci0gICAgfQotfQotCi1pbnQgbWJlZHRsc19jaXBoZXJfY21hY19zdGFydHMobWJlZHRsc19jaXBoZXJfY29udGV4dF90ICpjdHgsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdW5zaWduZWQgY2hhciAqa2V5LCBzaXplX3Qga2V5Yml0cykKLXsKLSAgICBtYmVkdGxzX2NpcGhlcl90eXBlX3QgdHlwZTsKLSAgICBtYmVkdGxzX2NtYWNfY29udGV4dF90ICpjbWFjX2N0eDsKLSAgICBpbnQgcmV0dmFsOwotCi0gICAgaWYgKGN0eCA9PSBOVUxMIHx8IGN0eC0+Y2lwaGVyX2luZm8gPT0gTlVMTCB8fCBrZXkgPT0gTlVMTCkgewotICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfQ0lQSEVSX0JBRF9JTlBVVF9EQVRBOwotICAgIH0KLQotICAgIGlmICgocmV0dmFsID0gbWJlZHRsc19jaXBoZXJfc2V0a2V5KGN0eCwga2V5LCAoaW50KSBrZXliaXRzLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1CRURUTFNfRU5DUllQVCkpICE9IDApIHsKLSAgICAgICAgcmV0dXJuIHJldHZhbDsKLSAgICB9Ci0KLSAgICB0eXBlID0gbWJlZHRsc19jaXBoZXJfaW5mb19nZXRfdHlwZShjdHgtPmNpcGhlcl9pbmZvKTsKLQotICAgIHN3aXRjaCAodHlwZSkgewotICAgICAgICBjYXNlIE1CRURUTFNfQ0lQSEVSX0FFU18xMjhfRUNCOgotICAgICAgICBjYXNlIE1CRURUTFNfQ0lQSEVSX0FFU18xOTJfRUNCOgotICAgICAgICBjYXNlIE1CRURUTFNfQ0lQSEVSX0FFU18yNTZfRUNCOgotICAgICAgICBjYXNlIE1CRURUTFNfQ0lQSEVSX0RFU19FREUzX0VDQjoKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBkZWZhdWx0OgotICAgICAgICAgICAgcmV0dXJuIE1CRURUTFNfRVJSX0NJUEhFUl9CQURfSU5QVVRfREFUQTsKLSAgICB9Ci0KLSAgICAvKiBBbGxvY2F0ZWQgYW5kIGluaXRpYWxpc2UgaW4gdGhlIGNpcGhlciBjb250ZXh0IG1lbW9yeSBmb3IgdGhlIENNQUMKLSAgICAgKiBjb250ZXh0ICovCi0gICAgY21hY19jdHggPSBtYmVkdGxzX2NhbGxvYygxLCBzaXplb2YobWJlZHRsc19jbWFjX2NvbnRleHRfdCkpOwotICAgIGlmIChjbWFjX2N0eCA9PSBOVUxMKSB7Ci0gICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9DSVBIRVJfQUxMT0NfRkFJTEVEOwotICAgIH0KLQotICAgIGN0eC0+Y21hY19jdHggPSBjbWFjX2N0eDsKLQotICAgIG1iZWR0bHNfcGxhdGZvcm1femVyb2l6ZShjbWFjX2N0eC0+c3RhdGUsIHNpemVvZihjbWFjX2N0eC0+c3RhdGUpKTsKLQotICAgIHJldHVybiAwOwotfQotCi1pbnQgbWJlZHRsc19jaXBoZXJfY21hY191cGRhdGUobWJlZHRsc19jaXBoZXJfY29udGV4dF90ICpjdHgsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdW5zaWduZWQgY2hhciAqaW5wdXQsIHNpemVfdCBpbGVuKQotewotICAgIG1iZWR0bHNfY21hY19jb250ZXh0X3QgKmNtYWNfY3R4OwotICAgIHVuc2lnbmVkIGNoYXIgKnN0YXRlOwotICAgIGludCByZXQgPSAwOwotICAgIHNpemVfdCBuLCBqLCBvbGVuLCBibG9ja19zaXplOwotCi0gICAgaWYgKGN0eCA9PSBOVUxMIHx8IGN0eC0+Y2lwaGVyX2luZm8gPT0gTlVMTCB8fCBpbnB1dCA9PSBOVUxMIHx8Ci0gICAgICAgIGN0eC0+Y21hY19jdHggPT0gTlVMTCkgewotICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfQ0lQSEVSX0JBRF9JTlBVVF9EQVRBOwotICAgIH0KLQotICAgIGNtYWNfY3R4ID0gY3R4LT5jbWFjX2N0eDsKLSAgICBibG9ja19zaXplID0gbWJlZHRsc19jaXBoZXJfaW5mb19nZXRfYmxvY2tfc2l6ZShjdHgtPmNpcGhlcl9pbmZvKTsKLSAgICBzdGF0ZSA9IGN0eC0+Y21hY19jdHgtPnN0YXRlOwotCi0gICAgLyogV2l0aG91dCB0aGUgTUJFRFRMU19BU1NVTUUgYmVsb3csIGdjYyAtTzMgd2lsbCBnZW5lcmF0ZSBhIHdhcm5pbmcgb2YgdGhlIGZvcm0KLSAgICAgKiBlcnJvcjogd3JpdGluZyAxNiBieXRlcyBpbnRvIGEgcmVnaW9uIG9mIHNpemUgMCBbLVdlcnJvcj1zdHJpbmdvcC1vdmVyZmxvdz1dICovCi0gICAgTUJFRFRMU19BU1NVTUUoYmxvY2tfc2l6ZSA8PSBNQkVEVExTX0NNQUNfTUFYX0JMT0NLX1NJWkUpOwotCi0gICAgLyogSXMgdGhlcmUgZGF0YSBzdGlsbCB0byBwcm9jZXNzIGZyb20gdGhlIGxhc3QgY2FsbCwgdGhhdCdzIGdyZWF0ZXIgaW4KLSAgICAgKiBzaXplIHRoYW4gYSBibG9jaz8gKi8KLSAgICBpZiAoY21hY19jdHgtPnVucHJvY2Vzc2VkX2xlbiA+IDAgJiYKLSAgICAgICAgaWxlbiA+IGJsb2NrX3NpemUgLSBjbWFjX2N0eC0+dW5wcm9jZXNzZWRfbGVuKSB7Ci0gICAgICAgIG1lbWNweSgmY21hY19jdHgtPnVucHJvY2Vzc2VkX2Jsb2NrW2NtYWNfY3R4LT51bnByb2Nlc3NlZF9sZW5dLAotICAgICAgICAgICAgICAgaW5wdXQsCi0gICAgICAgICAgICAgICBibG9ja19zaXplIC0gY21hY19jdHgtPnVucHJvY2Vzc2VkX2xlbik7Ci0KLSAgICAgICAgbWJlZHRsc194b3Jfbm9fc2ltZChzdGF0ZSwgY21hY19jdHgtPnVucHJvY2Vzc2VkX2Jsb2NrLCBzdGF0ZSwgYmxvY2tfc2l6ZSk7Ci0KLSAgICAgICAgaWYgKChyZXQgPSBtYmVkdGxzX2NpcGhlcl91cGRhdGUoY3R4LCBzdGF0ZSwgYmxvY2tfc2l6ZSwgc3RhdGUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZvbGVuKSkgIT0gMCkgewotICAgICAgICAgICAgZ290byBleGl0OwotICAgICAgICB9Ci0KLSAgICAgICAgaW5wdXQgKz0gYmxvY2tfc2l6ZSAtIGNtYWNfY3R4LT51bnByb2Nlc3NlZF9sZW47Ci0gICAgICAgIGlsZW4gLT0gYmxvY2tfc2l6ZSAtIGNtYWNfY3R4LT51bnByb2Nlc3NlZF9sZW47Ci0gICAgICAgIGNtYWNfY3R4LT51bnByb2Nlc3NlZF9sZW4gPSAwOwotICAgIH0KLQotICAgIC8qIG4gaXMgdGhlIG51bWJlciBvZiBibG9ja3MgaW5jbHVkaW5nIGFueSBmaW5hbCBwYXJ0aWFsIGJsb2NrICovCi0gICAgbiA9IChpbGVuICsgYmxvY2tfc2l6ZSAtIDEpIC8gYmxvY2tfc2l6ZTsKLQotICAgIC8qIEl0ZXJhdGUgYWNyb3NzIHRoZSBpbnB1dCBkYXRhIGluIGJsb2NrIHNpemVkIGNodW5rcywgZXhjbHVkaW5nIGFueQotICAgICAqIGZpbmFsIHBhcnRpYWwgb3IgY29tcGxldGUgYmxvY2sgKi8KLSAgICBmb3IgKGogPSAxOyBqIDwgbjsgaisrKSB7Ci0gICAgICAgIG1iZWR0bHNfeG9yX25vX3NpbWQoc3RhdGUsIGlucHV0LCBzdGF0ZSwgYmxvY2tfc2l6ZSk7Ci0KLSAgICAgICAgaWYgKChyZXQgPSBtYmVkdGxzX2NpcGhlcl91cGRhdGUoY3R4LCBzdGF0ZSwgYmxvY2tfc2l6ZSwgc3RhdGUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZvbGVuKSkgIT0gMCkgewotICAgICAgICAgICAgZ290byBleGl0OwotICAgICAgICB9Ci0KLSAgICAgICAgaWxlbiAtPSBibG9ja19zaXplOwotICAgICAgICBpbnB1dCArPSBibG9ja19zaXplOwotICAgIH0KLQotICAgIC8qIElmIHRoZXJlIGlzIGRhdGEgbGVmdCBvdmVyIHRoYXQgd2Fzbid0IGFsaWduZWQgdG8gYSBibG9jayAqLwotICAgIGlmIChpbGVuID4gMCkgewotICAgICAgICBtZW1jcHkoJmNtYWNfY3R4LT51bnByb2Nlc3NlZF9ibG9ja1tjbWFjX2N0eC0+dW5wcm9jZXNzZWRfbGVuXSwKLSAgICAgICAgICAgICAgIGlucHV0LAotICAgICAgICAgICAgICAgaWxlbik7Ci0gICAgICAgIGNtYWNfY3R4LT51bnByb2Nlc3NlZF9sZW4gKz0gaWxlbjsKLSAgICB9Ci0KLWV4aXQ6Ci0gICAgcmV0dXJuIHJldDsKLX0KLQotaW50IG1iZWR0bHNfY2lwaGVyX2NtYWNfZmluaXNoKG1iZWR0bHNfY2lwaGVyX2NvbnRleHRfdCAqY3R4LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGNoYXIgKm91dHB1dCkKLXsKLSAgICBtYmVkdGxzX2NtYWNfY29udGV4dF90ICpjbWFjX2N0eDsKLSAgICB1bnNpZ25lZCBjaGFyICpzdGF0ZSwgKmxhc3RfYmxvY2s7Ci0gICAgdW5zaWduZWQgY2hhciBLMVtNQkVEVExTX0NNQUNfTUFYX0JMT0NLX1NJWkVdOwotICAgIHVuc2lnbmVkIGNoYXIgSzJbTUJFRFRMU19DTUFDX01BWF9CTE9DS19TSVpFXTsKLSAgICB1bnNpZ25lZCBjaGFyIE1fbGFzdFtNQkVEVExTX0NNQUNfTUFYX0JMT0NLX1NJWkVdOwotICAgIGludCByZXQgPSBNQkVEVExTX0VSUl9FUlJPUl9DT1JSVVBUSU9OX0RFVEVDVEVEOwotICAgIHNpemVfdCBvbGVuLCBibG9ja19zaXplOwotCi0gICAgaWYgKGN0eCA9PSBOVUxMIHx8IGN0eC0+Y2lwaGVyX2luZm8gPT0gTlVMTCB8fCBjdHgtPmNtYWNfY3R4ID09IE5VTEwgfHwKLSAgICAgICAgb3V0cHV0ID09IE5VTEwpIHsKLSAgICAgICAgcmV0dXJuIE1CRURUTFNfRVJSX0NJUEhFUl9CQURfSU5QVVRfREFUQTsKLSAgICB9Ci0KLSAgICBjbWFjX2N0eCA9IGN0eC0+Y21hY19jdHg7Ci0gICAgYmxvY2tfc2l6ZSA9IG1iZWR0bHNfY2lwaGVyX2luZm9fZ2V0X2Jsb2NrX3NpemUoY3R4LT5jaXBoZXJfaW5mbyk7Ci0gICAgTUJFRFRMU19BU1NVTUUoYmxvY2tfc2l6ZSA8PSBNQkVEVExTX0NNQUNfTUFYX0JMT0NLX1NJWkUpOyAvLyBzaWxlbmNlIEdDQyB3YXJuaW5nCi0gICAgc3RhdGUgPSBjbWFjX2N0eC0+c3RhdGU7Ci0KLSAgICBtYmVkdGxzX3BsYXRmb3JtX3plcm9pemUoSzEsIHNpemVvZihLMSkpOwotICAgIG1iZWR0bHNfcGxhdGZvcm1femVyb2l6ZShLMiwgc2l6ZW9mKEsyKSk7Ci0gICAgY21hY19nZW5lcmF0ZV9zdWJrZXlzKGN0eCwgSzEsIEsyKTsKLQotICAgIGxhc3RfYmxvY2sgPSBjbWFjX2N0eC0+dW5wcm9jZXNzZWRfYmxvY2s7Ci0KLSAgICAvKiBDYWxjdWxhdGUgbGFzdCBibG9jayAqLwotICAgIGlmIChjbWFjX2N0eC0+dW5wcm9jZXNzZWRfbGVuIDwgYmxvY2tfc2l6ZSkgewotICAgICAgICBjbWFjX3BhZChNX2xhc3QsIGJsb2NrX3NpemUsIGxhc3RfYmxvY2ssIGNtYWNfY3R4LT51bnByb2Nlc3NlZF9sZW4pOwotICAgICAgICBtYmVkdGxzX3hvcihNX2xhc3QsIE1fbGFzdCwgSzIsIGJsb2NrX3NpemUpOwotICAgIH0gZWxzZSB7Ci0gICAgICAgIC8qIExhc3QgYmxvY2sgaXMgY29tcGxldGUgYmxvY2sgKi8KLSAgICAgICAgbWJlZHRsc194b3IoTV9sYXN0LCBsYXN0X2Jsb2NrLCBLMSwgYmxvY2tfc2l6ZSk7Ci0gICAgfQotCi0KLSAgICBtYmVkdGxzX3hvcihzdGF0ZSwgTV9sYXN0LCBzdGF0ZSwgYmxvY2tfc2l6ZSk7Ci0gICAgaWYgKChyZXQgPSBtYmVkdGxzX2NpcGhlcl91cGRhdGUoY3R4LCBzdGF0ZSwgYmxvY2tfc2l6ZSwgc3RhdGUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJm9sZW4pKSAhPSAwKSB7Ci0gICAgICAgIGdvdG8gZXhpdDsKLSAgICB9Ci0KLSAgICBtZW1jcHkob3V0cHV0LCBzdGF0ZSwgYmxvY2tfc2l6ZSk7Ci0KLWV4aXQ6Ci0gICAgLyogV2lwZSB0aGUgZ2VuZXJhdGVkIGtleXMgb24gdGhlIHN0YWNrLCBhbmQgYW55IG90aGVyIHRyYW5zaWVudHMgdG8gYXZvaWQKLSAgICAgKiBzaWRlIGNoYW5uZWwgbGVha2FnZSAqLwotICAgIG1iZWR0bHNfcGxhdGZvcm1femVyb2l6ZShLMSwgc2l6ZW9mKEsxKSk7Ci0gICAgbWJlZHRsc19wbGF0Zm9ybV96ZXJvaXplKEsyLCBzaXplb2YoSzIpKTsKLQotICAgIGNtYWNfY3R4LT51bnByb2Nlc3NlZF9sZW4gPSAwOwotICAgIG1iZWR0bHNfcGxhdGZvcm1femVyb2l6ZShjbWFjX2N0eC0+dW5wcm9jZXNzZWRfYmxvY2ssCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVvZihjbWFjX2N0eC0+dW5wcm9jZXNzZWRfYmxvY2spKTsKLQotICAgIG1iZWR0bHNfcGxhdGZvcm1femVyb2l6ZShzdGF0ZSwgTUJFRFRMU19DTUFDX01BWF9CTE9DS19TSVpFKTsKLSAgICByZXR1cm4gcmV0OwotfQotCi1pbnQgbWJlZHRsc19jaXBoZXJfY21hY19yZXNldChtYmVkdGxzX2NpcGhlcl9jb250ZXh0X3QgKmN0eCkKLXsKLSAgICBtYmVkdGxzX2NtYWNfY29udGV4dF90ICpjbWFjX2N0eDsKLQotICAgIGlmIChjdHggPT0gTlVMTCB8fCBjdHgtPmNpcGhlcl9pbmZvID09IE5VTEwgfHwgY3R4LT5jbWFjX2N0eCA9PSBOVUxMKSB7Ci0gICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9DSVBIRVJfQkFEX0lOUFVUX0RBVEE7Ci0gICAgfQotCi0gICAgY21hY19jdHggPSBjdHgtPmNtYWNfY3R4OwotCi0gICAgLyogUmVzZXQgdGhlIGludGVybmFsIHN0YXRlICovCi0gICAgY21hY19jdHgtPnVucHJvY2Vzc2VkX2xlbiA9IDA7Ci0gICAgbWJlZHRsc19wbGF0Zm9ybV96ZXJvaXplKGNtYWNfY3R4LT51bnByb2Nlc3NlZF9ibG9jaywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZW9mKGNtYWNfY3R4LT51bnByb2Nlc3NlZF9ibG9jaykpOwotICAgIG1iZWR0bHNfcGxhdGZvcm1femVyb2l6ZShjbWFjX2N0eC0+c3RhdGUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVvZihjbWFjX2N0eC0+c3RhdGUpKTsKLQotICAgIHJldHVybiAwOwotfQotCi1pbnQgbWJlZHRsc19jaXBoZXJfY21hYyhjb25zdCBtYmVkdGxzX2NpcGhlcl9pbmZvX3QgKmNpcGhlcl9pbmZvLAotICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdW5zaWduZWQgY2hhciAqa2V5LCBzaXplX3Qga2V5bGVuLAotICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdW5zaWduZWQgY2hhciAqaW5wdXQsIHNpemVfdCBpbGVuLAotICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgY2hhciAqb3V0cHV0KQotewotICAgIG1iZWR0bHNfY2lwaGVyX2NvbnRleHRfdCBjdHg7Ci0gICAgaW50IHJldCA9IE1CRURUTFNfRVJSX0VSUk9SX0NPUlJVUFRJT05fREVURUNURUQ7Ci0KLSAgICBpZiAoY2lwaGVyX2luZm8gPT0gTlVMTCB8fCBrZXkgPT0gTlVMTCB8fCBpbnB1dCA9PSBOVUxMIHx8IG91dHB1dCA9PSBOVUxMKSB7Ci0gICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9DSVBIRVJfQkFEX0lOUFVUX0RBVEE7Ci0gICAgfQotCi0gICAgbWJlZHRsc19jaXBoZXJfaW5pdCgmY3R4KTsKLQotICAgIGlmICgocmV0ID0gbWJlZHRsc19jaXBoZXJfc2V0dXAoJmN0eCwgY2lwaGVyX2luZm8pKSAhPSAwKSB7Ci0gICAgICAgIGdvdG8gZXhpdDsKLSAgICB9Ci0KLSAgICByZXQgPSBtYmVkdGxzX2NpcGhlcl9jbWFjX3N0YXJ0cygmY3R4LCBrZXksIGtleWxlbik7Ci0gICAgaWYgKHJldCAhPSAwKSB7Ci0gICAgICAgIGdvdG8gZXhpdDsKLSAgICB9Ci0KLSAgICByZXQgPSBtYmVkdGxzX2NpcGhlcl9jbWFjX3VwZGF0ZSgmY3R4LCBpbnB1dCwgaWxlbik7Ci0gICAgaWYgKHJldCAhPSAwKSB7Ci0gICAgICAgIGdvdG8gZXhpdDsKLSAgICB9Ci0KLSAgICByZXQgPSBtYmVkdGxzX2NpcGhlcl9jbWFjX2ZpbmlzaCgmY3R4LCBvdXRwdXQpOwotCi1leGl0OgotICAgIG1iZWR0bHNfY2lwaGVyX2ZyZWUoJmN0eCk7Ci0KLSAgICByZXR1cm4gcmV0OwotfQotCi0jaWYgZGVmaW5lZChNQkVEVExTX0FFU19DKQotLyoKLSAqIEltcGxlbWVudGF0aW9uIG9mIEFFUy1DTUFDLVBSRi0xMjggZGVmaW5lZCBpbiBSRkMgNDYxNQotICovCi1pbnQgbWJlZHRsc19hZXNfY21hY19wcmZfMTI4KGNvbnN0IHVuc2lnbmVkIGNoYXIgKmtleSwgc2l6ZV90IGtleV9sZW5ndGgsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgKmlucHV0LCBzaXplX3QgaW5fbGVuLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBjaGFyIG91dHB1dFsxNl0pCi17Ci0gICAgaW50IHJldCA9IE1CRURUTFNfRVJSX0VSUk9SX0NPUlJVUFRJT05fREVURUNURUQ7Ci0gICAgY29uc3QgbWJlZHRsc19jaXBoZXJfaW5mb190ICpjaXBoZXJfaW5mbzsKLSAgICB1bnNpZ25lZCBjaGFyIHplcm9fa2V5W01CRURUTFNfQUVTX0JMT0NLX1NJWkVdOwotICAgIHVuc2lnbmVkIGNoYXIgaW50X2tleVtNQkVEVExTX0FFU19CTE9DS19TSVpFXTsKLQotICAgIGlmIChrZXkgPT0gTlVMTCB8fCBpbnB1dCA9PSBOVUxMIHx8IG91dHB1dCA9PSBOVUxMKSB7Ci0gICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9DSVBIRVJfQkFEX0lOUFVUX0RBVEE7Ci0gICAgfQotCi0gICAgY2lwaGVyX2luZm8gPSBtYmVkdGxzX2NpcGhlcl9pbmZvX2Zyb21fdHlwZShNQkVEVExTX0NJUEhFUl9BRVNfMTI4X0VDQik7Ci0gICAgaWYgKGNpcGhlcl9pbmZvID09IE5VTEwpIHsKLSAgICAgICAgLyogRmFpbGluZyBhdCB0aGlzIHBvaW50IG11c3QgYmUgZHVlIHRvIGEgYnVpbGQgaXNzdWUgKi8KLSAgICAgICAgcmV0ID0gTUJFRFRMU19FUlJfQ0lQSEVSX0ZFQVRVUkVfVU5BVkFJTEFCTEU7Ci0gICAgICAgIGdvdG8gZXhpdDsKLSAgICB9Ci0KLSAgICBpZiAoa2V5X2xlbmd0aCA9PSBNQkVEVExTX0FFU19CTE9DS19TSVpFKSB7Ci0gICAgICAgIC8qIFVzZSBrZXkgYXMgaXMgKi8KLSAgICAgICAgbWVtY3B5KGludF9rZXksIGtleSwgTUJFRFRMU19BRVNfQkxPQ0tfU0laRSk7Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgbWVtc2V0KHplcm9fa2V5LCAwLCBNQkVEVExTX0FFU19CTE9DS19TSVpFKTsKLQotICAgICAgICByZXQgPSBtYmVkdGxzX2NpcGhlcl9jbWFjKGNpcGhlcl9pbmZvLCB6ZXJvX2tleSwgMTI4LCBrZXksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga2V5X2xlbmd0aCwgaW50X2tleSk7Ci0gICAgICAgIGlmIChyZXQgIT0gMCkgewotICAgICAgICAgICAgZ290byBleGl0OwotICAgICAgICB9Ci0gICAgfQotCi0gICAgcmV0ID0gbWJlZHRsc19jaXBoZXJfY21hYyhjaXBoZXJfaW5mbywgaW50X2tleSwgMTI4LCBpbnB1dCwgaW5fbGVuLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3V0cHV0KTsKLQotZXhpdDoKLSAgICBtYmVkdGxzX3BsYXRmb3JtX3plcm9pemUoaW50X2tleSwgc2l6ZW9mKGludF9rZXkpKTsKLQotICAgIHJldHVybiByZXQ7Ci19Ci0jZW5kaWYgLyogTUJFRFRMU19BRVNfQyAqLwotCi0jZW5kaWYgLyogIU1CRURUTFNfQ01BQ19BTFQgKi8KLQotI2lmIGRlZmluZWQoTUJFRFRMU19TRUxGX1RFU1QpCi0vKgotICogQ01BQyB0ZXN0IGRhdGEgZm9yIFNQODAwLTM4QgotICogaHR0cDovL2NzcmMubmlzdC5nb3YvZ3JvdXBzL1NUL3Rvb2xraXQvZG9jdW1lbnRzL0V4YW1wbGVzL0FFU19DTUFDLnBkZgotICogaHR0cDovL2NzcmMubmlzdC5nb3YvZ3JvdXBzL1NUL3Rvb2xraXQvZG9jdW1lbnRzL0V4YW1wbGVzL1RERVNfQ01BQy5wZGYKLSAqCi0gKiBBRVMtQ01BQy1QUkYtMTI4IHRlc3QgZGF0YSBmcm9tIFJGQyA0NjE1Ci0gKiBodHRwczovL3Rvb2xzLmlldGYub3JnL2h0bWwvcmZjNDYxNSNwYWdlLTQKLSAqLwotCi0jZGVmaW5lIE5CX0NNQUNfVEVTVFNfUEVSX0tFWSA0Ci0jZGVmaW5lIE5CX1BSRl9URVNUUyAzCi0KLSNpZiBkZWZpbmVkKE1CRURUTFNfQUVTX0MpIHx8IGRlZmluZWQoTUJFRFRMU19ERVNfQykKLS8qIEFsbCBDTUFDIHRlc3QgaW5wdXRzIGFyZSB0cnVuY2F0ZWQgZnJvbSB0aGUgc2FtZSA2NCBieXRlIGJ1ZmZlci4gKi8KLXN0YXRpYyBjb25zdCB1bnNpZ25lZCBjaGFyIHRlc3RfbWVzc2FnZVtdID0gewotICAgIC8qIFBUICovCi0gICAgMHg2YiwgMHhjMSwgMHhiZSwgMHhlMiwgICAgIDB4MmUsIDB4NDAsIDB4OWYsIDB4OTYsCi0gICAgMHhlOSwgMHgzZCwgMHg3ZSwgMHgxMSwgICAgIDB4NzMsIDB4OTMsIDB4MTcsIDB4MmEsCi0gICAgMHhhZSwgMHgyZCwgMHg4YSwgMHg1NywgICAgIDB4MWUsIDB4MDMsIDB4YWMsIDB4OWMsCi0gICAgMHg5ZSwgMHhiNywgMHg2ZiwgMHhhYywgICAgIDB4NDUsIDB4YWYsIDB4OGUsIDB4NTEsCi0gICAgMHgzMCwgMHhjOCwgMHgxYywgMHg0NiwgICAgIDB4YTMsIDB4NWMsIDB4ZTQsIDB4MTEsCi0gICAgMHhlNSwgMHhmYiwgMHhjMSwgMHgxOSwgICAgIDB4MWEsIDB4MGEsIDB4NTIsIDB4ZWYsCi0gICAgMHhmNiwgMHg5ZiwgMHgyNCwgMHg0NSwgICAgIDB4ZGYsIDB4NGYsIDB4OWIsIDB4MTcsCi0gICAgMHhhZCwgMHgyYiwgMHg0MSwgMHg3YiwgICAgIDB4ZTYsIDB4NmMsIDB4MzcsIDB4MTAKLX07Ci0jZW5kaWYgLyogTUJFRFRMU19BRVNfQyB8fCBNQkVEVExTX0RFU19DICovCi0KLSNpZiBkZWZpbmVkKE1CRURUTFNfQUVTX0MpCi0vKiBUcnVuY2F0aW9uIHBvaW50IG9mIG1lc3NhZ2UgZm9yIEFFUyBDTUFDIHRlc3RzICAqLwotc3RhdGljIGNvbnN0ICB1bnNpZ25lZCBpbnQgIGFlc19tZXNzYWdlX2xlbmd0aHNbTkJfQ01BQ19URVNUU19QRVJfS0VZXSA9IHsKLSAgICAvKiBNbGVuICovCi0gICAgMCwKLSAgICAxNiwKLSAgICAyMCwKLSAgICA2NAotfTsKLQotLyogQ01BQy1BRVMxMjggVGVzdCBEYXRhICovCi1zdGF0aWMgY29uc3QgdW5zaWduZWQgY2hhciBhZXNfMTI4X2tleVsxNl0gPSB7Ci0gICAgMHgyYiwgMHg3ZSwgMHgxNSwgMHgxNiwgICAgIDB4MjgsIDB4YWUsIDB4ZDIsIDB4YTYsCi0gICAgMHhhYiwgMHhmNywgMHgxNSwgMHg4OCwgICAgIDB4MDksIDB4Y2YsIDB4NGYsIDB4M2MKLX07Ci1zdGF0aWMgY29uc3QgdW5zaWduZWQgY2hhciBhZXNfMTI4X3N1YmtleXNbMl1bTUJFRFRMU19BRVNfQkxPQ0tfU0laRV0gPSB7Ci0gICAgewotICAgICAgICAvKiBLMSAqLwotICAgICAgICAweGZiLCAweGVlLCAweGQ2LCAweDE4LCAgICAgMHgzNSwgMHg3MSwgMHgzMywgMHg2NiwKLSAgICAgICAgMHg3YywgMHg4NSwgMHhlMCwgMHg4ZiwgICAgIDB4NzIsIDB4MzYsIDB4YTgsIDB4ZGUKLSAgICB9LAotICAgIHsKLSAgICAgICAgLyogSzIgKi8KLSAgICAgICAgMHhmNywgMHhkZCwgMHhhYywgMHgzMCwgICAgIDB4NmEsIDB4ZTIsIDB4NjYsIDB4Y2MsCi0gICAgICAgIDB4ZjksIDB4MGIsIDB4YzEsIDB4MWUsICAgICAweGU0LCAweDZkLCAweDUxLCAweDNiCi0gICAgfQotfTsKLXN0YXRpYyBjb25zdCB1bnNpZ25lZCBjaGFyIGFlc18xMjhfZXhwZWN0ZWRfcmVzdWx0W05CX0NNQUNfVEVTVFNfUEVSX0tFWV1bTUJFRFRMU19BRVNfQkxPQ0tfU0laRV0gPQotewotICAgIHsKLSAgICAgICAgLyogRXhhbXBsZSAjMSAqLwotICAgICAgICAweGJiLCAweDFkLCAweDY5LCAweDI5LCAgICAgMHhlOSwgMHg1OSwgMHgzNywgMHgyOCwKLSAgICAgICAgMHg3ZiwgMHhhMywgMHg3ZCwgMHgxMiwgICAgIDB4OWIsIDB4NzUsIDB4NjcsIDB4NDYKLSAgICB9LAotICAgIHsKLSAgICAgICAgLyogRXhhbXBsZSAjMiAqLwotICAgICAgICAweDA3LCAweDBhLCAweDE2LCAweGI0LCAgICAgMHg2YiwgMHg0ZCwgMHg0MSwgMHg0NCwKLSAgICAgICAgMHhmNywgMHg5YiwgMHhkZCwgMHg5ZCwgICAgIDB4ZDAsIDB4NGEsIDB4MjgsIDB4N2MKLSAgICB9LAotICAgIHsKLSAgICAgICAgLyogRXhhbXBsZSAjMyAqLwotICAgICAgICAweDdkLCAweDg1LCAweDQ0LCAweDllLCAgICAgMHhhNiwgMHhlYSwgMHgxOSwgMHhjOCwKLSAgICAgICAgMHgyMywgMHhhNywgMHhiZiwgMHg3OCwgICAgIDB4ODMsIDB4N2QsIDB4ZmEsIDB4ZGUKLSAgICB9LAotICAgIHsKLSAgICAgICAgLyogRXhhbXBsZSAjNCAqLwotICAgICAgICAweDUxLCAweGYwLCAweGJlLCAweGJmLCAgICAgMHg3ZSwgMHgzYiwgMHg5ZCwgMHg5MiwKLSAgICAgICAgMHhmYywgMHg0OSwgMHg3NCwgMHgxNywgICAgIDB4NzksIDB4MzYsIDB4M2MsIDB4ZmUKLSAgICB9Ci19OwotCi0vKiBDTUFDLUFFUzE5MiBUZXN0IERhdGEgKi8KLSNpZiAhZGVmaW5lZChNQkVEVExTX0FFU19PTkxZXzEyOF9CSVRfS0VZX0xFTkdUSCkKLXN0YXRpYyBjb25zdCB1bnNpZ25lZCBjaGFyIGFlc18xOTJfa2V5WzI0XSA9IHsKLSAgICAweDhlLCAweDczLCAweGIwLCAweGY3LCAgICAgMHhkYSwgMHgwZSwgMHg2NCwgMHg1MiwKLSAgICAweGM4LCAweDEwLCAweGYzLCAweDJiLCAgICAgMHg4MCwgMHg5MCwgMHg3OSwgMHhlNSwKLSAgICAweDYyLCAweGY4LCAweGVhLCAweGQyLCAgICAgMHg1MiwgMHgyYywgMHg2YiwgMHg3YgotfTsKLXN0YXRpYyBjb25zdCB1bnNpZ25lZCBjaGFyIGFlc18xOTJfc3Via2V5c1syXVtNQkVEVExTX0FFU19CTE9DS19TSVpFXSA9IHsKLSAgICB7Ci0gICAgICAgIC8qIEsxICovCi0gICAgICAgIDB4NDQsIDB4OGEsIDB4NWIsIDB4MWMsICAgICAweDkzLCAweDUxLCAweDRiLCAweDI3LAotICAgICAgICAweDNlLCAweGU2LCAweDQzLCAweDlkLCAgICAgMHhkNCwgMHhkYSwgMHhhMiwgMHg5NgotICAgIH0sCi0gICAgewotICAgICAgICAvKiBLMiAqLwotICAgICAgICAweDg5LCAweDE0LCAweGI2LCAweDM5LCAgICAgMHgyNiwgMHhhMiwgMHg5NiwgMHg0ZSwKLSAgICAgICAgMHg3ZCwgMHhjYywgMHg4NywgMHgzYiwgICAgIDB4YTksIDB4YjUsIDB4NDUsIDB4MmMKLSAgICB9Ci19Owotc3RhdGljIGNvbnN0IHVuc2lnbmVkIGNoYXIgYWVzXzE5Ml9leHBlY3RlZF9yZXN1bHRbTkJfQ01BQ19URVNUU19QRVJfS0VZXVtNQkVEVExTX0FFU19CTE9DS19TSVpFXSA9Ci17Ci0gICAgewotICAgICAgICAvKiBFeGFtcGxlICMxICovCi0gICAgICAgIDB4ZDEsIDB4N2QsIDB4ZGYsIDB4NDYsICAgICAweGFkLCAweGFhLCAweGNkLCAweGU1LAotICAgICAgICAweDMxLCAweGNhLCAweGM0LCAweDgzLCAgICAgMHhkZSwgMHg3YSwgMHg5MywgMHg2NwotICAgIH0sCi0gICAgewotICAgICAgICAvKiBFeGFtcGxlICMyICovCi0gICAgICAgIDB4OWUsIDB4OTksIDB4YTcsIDB4YmYsICAgICAweDMxLCAweGU3LCAweDEwLCAweDkwLAotICAgICAgICAweDA2LCAweDYyLCAweGY2LCAweDVlLCAgICAgMHg2MSwgMHg3YywgMHg1MSwgMHg4NAotICAgIH0sCi0gICAgewotICAgICAgICAvKiBFeGFtcGxlICMzICovCi0gICAgICAgIDB4M2QsIDB4NzUsIDB4YzEsIDB4OTQsICAgICAweGVkLCAweDk2LCAweDA3LCAweDA0LAotICAgICAgICAweDQ0LCAweGE5LCAweGZhLCAweDdlLCAgICAgMHhjNywgMHg0MCwgMHhlYywgMHhmOAotICAgIH0sCi0gICAgewotICAgICAgICAvKiBFeGFtcGxlICM0ICovCi0gICAgICAgIDB4YTEsIDB4ZDUsIDB4ZGYsIDB4MGUsICAgICAweGVkLCAweDc5LCAweDBmLCAweDc5LAotICAgICAgICAweDRkLCAweDc3LCAweDU4LCAweDk2LCAgICAgMHg1OSwgMHhmMywgMHg5YSwgMHgxMQotICAgIH0KLX07Ci0jZW5kaWYgLyogIU1CRURUTFNfQUVTX09OTFlfMTI4X0JJVF9LRVlfTEVOR1RIICovCi0KLS8qIENNQUMtQUVTMjU2IFRlc3QgRGF0YSAqLwotI2lmICFkZWZpbmVkKE1CRURUTFNfQUVTX09OTFlfMTI4X0JJVF9LRVlfTEVOR1RIKQotc3RhdGljIGNvbnN0IHVuc2lnbmVkIGNoYXIgYWVzXzI1Nl9rZXlbMzJdID0gewotICAgIDB4NjAsIDB4M2QsIDB4ZWIsIDB4MTAsICAgICAweDE1LCAweGNhLCAweDcxLCAweGJlLAotICAgIDB4MmIsIDB4NzMsIDB4YWUsIDB4ZjAsICAgICAweDg1LCAweDdkLCAweDc3LCAweDgxLAotICAgIDB4MWYsIDB4MzUsIDB4MmMsIDB4MDcsICAgICAweDNiLCAweDYxLCAweDA4LCAweGQ3LAotICAgIDB4MmQsIDB4OTgsIDB4MTAsIDB4YTMsICAgICAweDA5LCAweDE0LCAweGRmLCAweGY0Ci19Owotc3RhdGljIGNvbnN0IHVuc2lnbmVkIGNoYXIgYWVzXzI1Nl9zdWJrZXlzWzJdW01CRURUTFNfQUVTX0JMT0NLX1NJWkVdID0gewotICAgIHsKLSAgICAgICAgLyogSzEgKi8KLSAgICAgICAgMHhjYSwgMHhkMSwgMHhlZCwgMHgwMywgICAgIDB4MjksIDB4OWUsIDB4ZWQsIDB4YWMsCi0gICAgICAgIDB4MmUsIDB4OWEsIDB4OTksIDB4ODAsICAgICAweDg2LCAweDIxLCAweDUwLCAweDJmCi0gICAgfSwKLSAgICB7Ci0gICAgICAgIC8qIEsyICovCi0gICAgICAgIDB4OTUsIDB4YTMsIDB4ZGEsIDB4MDYsICAgICAweDUzLCAweDNkLCAweGRiLCAweDU4LAotICAgICAgICAweDVkLCAweDM1LCAweDMzLCAweDAxLCAgICAgMHgwYywgMHg0MiwgMHhhMCwgMHhkOQotICAgIH0KLX07Ci1zdGF0aWMgY29uc3QgdW5zaWduZWQgY2hhciBhZXNfMjU2X2V4cGVjdGVkX3Jlc3VsdFtOQl9DTUFDX1RFU1RTX1BFUl9LRVldW01CRURUTFNfQUVTX0JMT0NLX1NJWkVdID0KLXsKLSAgICB7Ci0gICAgICAgIC8qIEV4YW1wbGUgIzEgKi8KLSAgICAgICAgMHgwMiwgMHg4OSwgMHg2MiwgMHhmNiwgICAgIDB4MWIsIDB4N2IsIDB4ZjgsIDB4OWUsCi0gICAgICAgIDB4ZmMsIDB4NmIsIDB4NTUsIDB4MWYsICAgICAweDQ2LCAweDY3LCAweGQ5LCAweDgzCi0gICAgfSwKLSAgICB7Ci0gICAgICAgIC8qIEV4YW1wbGUgIzIgKi8KLSAgICAgICAgMHgyOCwgMHhhNywgMHgwMiwgMHgzZiwgICAgIDB4NDUsIDB4MmUsIDB4OGYsIDB4ODIsCi0gICAgICAgIDB4YmQsIDB4NGIsIDB4ZjIsIDB4OGQsICAgICAweDhjLCAweDM3LCAweGMzLCAweDVjCi0gICAgfSwKLSAgICB7Ci0gICAgICAgIC8qIEV4YW1wbGUgIzMgKi8KLSAgICAgICAgMHgxNSwgMHg2NywgMHgyNywgMHhkYywgICAgIDB4MDgsIDB4NzgsIDB4OTQsIDB4NGEsCi0gICAgICAgIDB4MDIsIDB4M2MsIDB4MWYsIDB4ZTAsICAgICAweDNiLCAweGFkLCAweDZkLCAweDkzCi0gICAgfSwKLSAgICB7Ci0gICAgICAgIC8qIEV4YW1wbGUgIzQgKi8KLSAgICAgICAgMHhlMSwgMHg5OSwgMHgyMSwgMHg5MCwgICAgIDB4NTQsIDB4OWYsIDB4NmUsIDB4ZDUsCi0gICAgICAgIDB4NjksIDB4NmEsIDB4MmMsIDB4MDUsICAgICAweDZjLCAweDMxLCAweDU0LCAweDEwCi0gICAgfQotfTsKLSNlbmRpZiAvKiAhTUJFRFRMU19BRVNfT05MWV8xMjhfQklUX0tFWV9MRU5HVEggKi8KLSNlbmRpZiAvKiBNQkVEVExTX0FFU19DICovCi0KLSNpZiBkZWZpbmVkKE1CRURUTFNfREVTX0MpCi0vKiBUcnVuY2F0aW9uIHBvaW50IG9mIG1lc3NhZ2UgZm9yIDNERVMgQ01BQyB0ZXN0cyAgKi8KLXN0YXRpYyBjb25zdCB1bnNpZ25lZCBpbnQgZGVzM19tZXNzYWdlX2xlbmd0aHNbTkJfQ01BQ19URVNUU19QRVJfS0VZXSA9IHsKLSAgICAwLAotICAgIDE2LAotICAgIDIwLAotICAgIDMyCi19OwotCi0vKiBDTUFDLVRERVMgKEdlbmVyYXRpb24pIC0gMiBLZXkgVGVzdCBEYXRhICovCi1zdGF0aWMgY29uc3QgdW5zaWduZWQgY2hhciBkZXMzXzJrZXlfa2V5WzI0XSA9IHsKLSAgICAvKiBLZXkxICovCi0gICAgMHgwMSwgMHgyMywgMHg0NSwgMHg2NywgICAgIDB4ODksIDB4YWIsIDB4Y2QsIDB4ZWYsCi0gICAgLyogS2V5MiAqLwotICAgIDB4MjMsIDB4NDUsIDB4NjcsIDB4ODksICAgICAweGFiLCAweGNkLCAweEVGLCAweDAxLAotICAgIC8qIEtleTMgKi8KLSAgICAweDAxLCAweDIzLCAweDQ1LCAweDY3LCAgICAgMHg4OSwgMHhhYiwgMHhjZCwgMHhlZgotfTsKLXN0YXRpYyBjb25zdCB1bnNpZ25lZCBjaGFyIGRlczNfMmtleV9zdWJrZXlzWzJdWzhdID0gewotICAgIHsKLSAgICAgICAgLyogSzEgKi8KLSAgICAgICAgMHgwZCwgMHhkMiwgMHhjYiwgMHg3YSwgICAgIDB4M2QsIDB4ODgsIDB4ODgsIDB4ZDkKLSAgICB9LAotICAgIHsKLSAgICAgICAgLyogSzIgKi8KLSAgICAgICAgMHgxYiwgMHhhNSwgMHg5NiwgMHhmNCwgICAgIDB4N2IsIDB4MTEsIDB4MTEsIDB4YjIKLSAgICB9Ci19Owotc3RhdGljIGNvbnN0IHVuc2lnbmVkIGNoYXIgZGVzM18ya2V5X2V4cGVjdGVkX3Jlc3VsdFtOQl9DTUFDX1RFU1RTX1BFUl9LRVldW01CRURUTFNfREVTM19CTE9DS19TSVpFXQotICAgID0gewotICAgIHsKLSAgICAgICAgLyogU2FtcGxlICMxICovCi0gICAgICAgIDB4NzksIDB4Y2UsIDB4NTIsIDB4YTcsICAgICAweGY3LCAweDg2LCAweGE5LCAweDYwCi0gICAgfSwKLSAgICB7Ci0gICAgICAgIC8qIFNhbXBsZSAjMiAqLwotICAgICAgICAweGNjLCAweDE4LCAweGEwLCAweGI3LCAgICAgMHg5YSwgMHhmMiwgMHg0MSwgMHgzYgotICAgIH0sCi0gICAgewotICAgICAgICAvKiBTYW1wbGUgIzMgKi8KLSAgICAgICAgMHhjMCwgMHg2ZCwgMHgzNywgMHg3ZSwgICAgIDB4Y2QsIDB4MTAsIDB4MTksIDB4NjkKLSAgICB9LAotICAgIHsKLSAgICAgICAgLyogU2FtcGxlICM0ICovCi0gICAgICAgIDB4OWMsIDB4ZDMsIDB4MzUsIDB4ODAsICAgICAweGY5LCAweGI2LCAweDRkLCAweGZiCi0gICAgfQotICAgIH07Ci0KLS8qIENNQUMtVERFUyAoR2VuZXJhdGlvbikgLSAzIEtleSBUZXN0IERhdGEgKi8KLXN0YXRpYyBjb25zdCB1bnNpZ25lZCBjaGFyIGRlczNfM2tleV9rZXlbMjRdID0gewotICAgIC8qIEtleTEgKi8KLSAgICAweDAxLCAweDIzLCAweDQ1LCAweDY3LCAgICAgMHg4OSwgMHhhYSwgMHhjZCwgMHhlZiwKLSAgICAvKiBLZXkyICovCi0gICAgMHgyMywgMHg0NSwgMHg2NywgMHg4OSwgICAgIDB4YWIsIDB4Y2QsIDB4ZWYsIDB4MDEsCi0gICAgLyogS2V5MyAqLwotICAgIDB4NDUsIDB4NjcsIDB4ODksIDB4YWIsICAgICAweGNkLCAweGVmLCAweDAxLCAweDIzCi19Owotc3RhdGljIGNvbnN0IHVuc2lnbmVkIGNoYXIgZGVzM18za2V5X3N1YmtleXNbMl1bOF0gPSB7Ci0gICAgewotICAgICAgICAvKiBLMSAqLwotICAgICAgICAweDlkLCAweDc0LCAweGU3LCAweDM5LCAgICAgMHgzMywgMHgxNywgMHg5NiwgMHhjMAotICAgIH0sCi0gICAgewotICAgICAgICAvKiBLMiAqLwotICAgICAgICAweDNhLCAweGU5LCAweGNlLCAweDcyLCAgICAgMHg2NiwgMHgyZiwgMHgyZCwgMHg5YgotICAgIH0KLX07Ci1zdGF0aWMgY29uc3QgdW5zaWduZWQgY2hhciBkZXMzXzNrZXlfZXhwZWN0ZWRfcmVzdWx0W05CX0NNQUNfVEVTVFNfUEVSX0tFWV1bTUJFRFRMU19ERVMzX0JMT0NLX1NJWkVdCi0gICAgPSB7Ci0gICAgewotICAgICAgICAvKiBTYW1wbGUgIzEgKi8KLSAgICAgICAgMHg3ZCwgMHhiMCwgMHhkMywgMHg3ZCwgICAgIDB4ZjksIDB4MzYsIDB4YzUsIDB4NTAKLSAgICB9LAotICAgIHsKLSAgICAgICAgLyogU2FtcGxlICMyICovCi0gICAgICAgIDB4MzAsIDB4MjMsIDB4OWMsIDB4ZjEsICAgICAweGY1LCAweDJlLCAweDY2LCAweDA5Ci0gICAgfSwKLSAgICB7Ci0gICAgICAgIC8qIFNhbXBsZSAjMyAqLwotICAgICAgICAweDZjLCAweDlmLCAweDNlLCAweGU0LCAgICAgMHg5MiwgMHgzZiwgMHg2YiwgMHhlMgotICAgIH0sCi0gICAgewotICAgICAgICAvKiBTYW1wbGUgIzQgKi8KLSAgICAgICAgMHg5OSwgMHg0MiwgMHg5YiwgMHhkMCwgICAgIDB4YkYsIDB4NzksIDB4MDQsIDB4ZTUKLSAgICB9Ci0gICAgfTsKLQotI2VuZGlmIC8qIE1CRURUTFNfREVTX0MgKi8KLQotI2lmIGRlZmluZWQoTUJFRFRMU19BRVNfQykKLS8qIEFFUyBBRVMtQ01BQy1QUkYtMTI4IFRlc3QgRGF0YSAqLwotc3RhdGljIGNvbnN0IHVuc2lnbmVkIGNoYXIgUFJGS1tdID0gewotICAgIC8qIEtleSAqLwotICAgIDB4MDAsIDB4MDEsIDB4MDIsIDB4MDMsICAgICAweDA0LCAweDA1LCAweDA2LCAweDA3LAotICAgIDB4MDgsIDB4MDksIDB4MGEsIDB4MGIsICAgICAweDBjLCAweDBkLCAweDBlLCAweDBmLAotICAgIDB4ZWQsIDB4Y2IKLX07Ci0KLS8qIFNpemVzIGluIGJ5dGVzICovCi1zdGF0aWMgY29uc3Qgc2l6ZV90IFBSRktsZW5bTkJfUFJGX1RFU1RTXSA9IHsKLSAgICAxOCwKLSAgICAxNiwKLSAgICAxMAotfTsKLQotLyogTWVzc2FnZSAqLwotc3RhdGljIGNvbnN0IHVuc2lnbmVkIGNoYXIgUFJGTVtdID0gewotICAgIDB4MDAsIDB4MDEsIDB4MDIsIDB4MDMsICAgICAweDA0LCAweDA1LCAweDA2LCAweDA3LAotICAgIDB4MDgsIDB4MDksIDB4MGEsIDB4MGIsICAgICAweDBjLCAweDBkLCAweDBlLCAweDBmLAotICAgIDB4MTAsIDB4MTEsIDB4MTIsIDB4MTMKLX07Ci0KLXN0YXRpYyBjb25zdCB1bnNpZ25lZCBjaGFyIFBSRlRbTkJfUFJGX1RFU1RTXVsxNl0gPSB7Ci0gICAgewotICAgICAgICAweDg0LCAweGEzLCAweDQ4LCAweGE0LCAgICAgMHhhNCwgMHg1ZCwgMHgyMywgMHg1YiwKLSAgICAgICAgMHhhYiwgMHhmZiwgMHhmYywgMHgwZCwgICAgIDB4MmIsIDB4NGQsIDB4YTAsIDB4OWEKLSAgICB9LAotICAgIHsKLSAgICAgICAgMHg5OCwgMHgwYSwgMHhlOCwgMHg3YiwgICAgIDB4NWYsIDB4NGMsIDB4OWMsIDB4NTIsCi0gICAgICAgIDB4MTQsIDB4ZjUsIDB4YjYsIDB4YTgsICAgICAweDQ1LCAweDVlLCAweDRjLCAweDJkCi0gICAgfSwKLSAgICB7Ci0gICAgICAgIDB4MjksIDB4MGQsIDB4OWUsIDB4MTEsICAgICAweDJlLCAweGRiLCAweDA5LCAweGVlLAotICAgICAgICAweDE0LCAweDFmLCAweGNmLCAweDY0LCAgICAgMHhjMCwgMHhiNywgMHgyZiwgMHgzZAotICAgIH0KLX07Ci0jZW5kaWYgLyogTUJFRFRMU19BRVNfQyAqLwotCi1zdGF0aWMgaW50IGNtYWNfdGVzdF9zdWJrZXlzKGludCB2ZXJib3NlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICp0ZXN0bmFtZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdW5zaWduZWQgY2hhciAqa2V5LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQga2V5Yml0cywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdW5zaWduZWQgY2hhciAqc3Via2V5cywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWJlZHRsc19jaXBoZXJfdHlwZV90IGNpcGhlcl90eXBlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgYmxvY2tfc2l6ZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IG51bV90ZXN0cykKLXsKLSAgICBpbnQgaSwgcmV0ID0gMDsKLSAgICBtYmVkdGxzX2NpcGhlcl9jb250ZXh0X3QgY3R4OwotICAgIGNvbnN0IG1iZWR0bHNfY2lwaGVyX2luZm9fdCAqY2lwaGVyX2luZm87Ci0gICAgdW5zaWduZWQgY2hhciBLMVtNQkVEVExTX0NNQUNfTUFYX0JMT0NLX1NJWkVdOwotICAgIHVuc2lnbmVkIGNoYXIgSzJbTUJFRFRMU19DTUFDX01BWF9CTE9DS19TSVpFXTsKLQotICAgIGNpcGhlcl9pbmZvID0gbWJlZHRsc19jaXBoZXJfaW5mb19mcm9tX3R5cGUoY2lwaGVyX3R5cGUpOwotICAgIGlmIChjaXBoZXJfaW5mbyA9PSBOVUxMKSB7Ci0gICAgICAgIC8qIEZhaWxpbmcgYXQgdGhpcyBwb2ludCBtdXN0IGJlIGR1ZSB0byBhIGJ1aWxkIGlzc3VlICovCi0gICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9DSVBIRVJfRkVBVFVSRV9VTkFWQUlMQUJMRTsKLSAgICB9Ci0KLSAgICBmb3IgKGkgPSAwOyBpIDwgbnVtX3Rlc3RzOyBpKyspIHsKLSAgICAgICAgaWYgKHZlcmJvc2UgIT0gMCkgewotICAgICAgICAgICAgbWJlZHRsc19wcmludGYoIiAgJXMgQ01BQyBzdWJrZXkgIyVkOiAiLCB0ZXN0bmFtZSwgaSArIDEpOwotICAgICAgICB9Ci0KLSAgICAgICAgbWJlZHRsc19jaXBoZXJfaW5pdCgmY3R4KTsKLQotICAgICAgICBpZiAoKHJldCA9IG1iZWR0bHNfY2lwaGVyX3NldHVwKCZjdHgsIGNpcGhlcl9pbmZvKSkgIT0gMCkgewotICAgICAgICAgICAgaWYgKHZlcmJvc2UgIT0gMCkgewotICAgICAgICAgICAgICAgIG1iZWR0bHNfcHJpbnRmKCJ0ZXN0IGV4ZWN1dGlvbiBmYWlsZWRcbiIpOwotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICBnb3RvIGNsZWFudXA7Ci0gICAgICAgIH0KLQotICAgICAgICBpZiAoKHJldCA9IG1iZWR0bHNfY2lwaGVyX3NldGtleSgmY3R4LCBrZXksIGtleWJpdHMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1CRURUTFNfRU5DUllQVCkpICE9IDApIHsKLSAgICAgICAgICAgIC8qIFdoZW4gQ01BQyBpcyBpbXBsZW1lbnRlZCBieSBhbiBhbHRlcm5hdGl2ZSBpbXBsZW1lbnRhdGlvbiwgb3IKLSAgICAgICAgICAgICAqIHRoZSB1bmRlcmx5aW5nIHByaW1pdGl2ZSBpdHNlbGYgaXMgaW1wbGVtZW50ZWQgYWx0ZXJuYXRpdmVseSwKLSAgICAgICAgICAgICAqIEFFUy0xOTIgbWF5IGJlIHVuYXZhaWxhYmxlLiBUaGlzIHNob3VsZCBub3QgY2F1c2UgdGhlIHNlbGZ0ZXN0Ci0gICAgICAgICAgICAgKiBmdW5jdGlvbiB0byBmYWlsLiAqLwotICAgICAgICAgICAgaWYgKChyZXQgPT0gTUJFRFRMU19FUlJfUExBVEZPUk1fRkVBVFVSRV9VTlNVUFBPUlRFRCB8fAotICAgICAgICAgICAgICAgICByZXQgPT0gTUJFRFRMU19FUlJfQ0lQSEVSX0ZFQVRVUkVfVU5BVkFJTEFCTEUpICYmCi0gICAgICAgICAgICAgICAgY2lwaGVyX3R5cGUgPT0gTUJFRFRMU19DSVBIRVJfQUVTXzE5Ml9FQ0IpIHsKLSAgICAgICAgICAgICAgICBpZiAodmVyYm9zZSAhPSAwKSB7Ci0gICAgICAgICAgICAgICAgICAgIG1iZWR0bHNfcHJpbnRmKCJza2lwcGVkXG4iKTsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgZ290byBuZXh0X3Rlc3Q7Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIGlmICh2ZXJib3NlICE9IDApIHsKLSAgICAgICAgICAgICAgICBtYmVkdGxzX3ByaW50ZigidGVzdCBleGVjdXRpb24gZmFpbGVkXG4iKTsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgZ290byBjbGVhbnVwOwotICAgICAgICB9Ci0KLSAgICAgICAgcmV0ID0gY21hY19nZW5lcmF0ZV9zdWJrZXlzKCZjdHgsIEsxLCBLMik7Ci0gICAgICAgIGlmIChyZXQgIT0gMCkgewotICAgICAgICAgICAgaWYgKHZlcmJvc2UgIT0gMCkgewotICAgICAgICAgICAgICAgIG1iZWR0bHNfcHJpbnRmKCJmYWlsZWRcbiIpOwotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICBnb3RvIGNsZWFudXA7Ci0gICAgICAgIH0KLQotICAgICAgICBpZiAoKHJldCA9IG1lbWNtcChLMSwgc3Via2V5cywgYmxvY2tfc2l6ZSkpICE9IDAgIHx8Ci0gICAgICAgICAgICAocmV0ID0gbWVtY21wKEsyLCAmc3Via2V5c1tibG9ja19zaXplXSwgYmxvY2tfc2l6ZSkpICE9IDApIHsKLSAgICAgICAgICAgIGlmICh2ZXJib3NlICE9IDApIHsKLSAgICAgICAgICAgICAgICBtYmVkdGxzX3ByaW50ZigiZmFpbGVkXG4iKTsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgZ290byBjbGVhbnVwOwotICAgICAgICB9Ci0KLSAgICAgICAgaWYgKHZlcmJvc2UgIT0gMCkgewotICAgICAgICAgICAgbWJlZHRsc19wcmludGYoInBhc3NlZFxuIik7Ci0gICAgICAgIH0KLQotbmV4dF90ZXN0OgotICAgICAgICBtYmVkdGxzX2NpcGhlcl9mcmVlKCZjdHgpOwotICAgIH0KLQotICAgIHJldCA9IDA7Ci0gICAgZ290byBleGl0OwotCi1jbGVhbnVwOgotICAgIG1iZWR0bHNfY2lwaGVyX2ZyZWUoJmN0eCk7Ci0KLWV4aXQ6Ci0gICAgcmV0dXJuIHJldDsKLX0KLQotc3RhdGljIGludCBjbWFjX3Rlc3Rfd3RoX2NpcGhlcihpbnQgdmVyYm9zZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqdGVzdG5hbWUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgKmtleSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGtleWJpdHMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgKm1lc3NhZ2VzLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1bnNpZ25lZCBpbnQgbWVzc2FnZV9sZW5ndGhzWzRdLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1bnNpZ25lZCBjaGFyICpleHBlY3RlZF9yZXN1bHQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1iZWR0bHNfY2lwaGVyX3R5cGVfdCBjaXBoZXJfdHlwZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGJsb2NrX3NpemUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBudW1fdGVzdHMpCi17Ci0gICAgY29uc3QgbWJlZHRsc19jaXBoZXJfaW5mb190ICpjaXBoZXJfaW5mbzsKLSAgICBpbnQgaSwgcmV0ID0gMDsKLSAgICB1bnNpZ25lZCBjaGFyIG91dHB1dFtNQkVEVExTX0NNQUNfTUFYX0JMT0NLX1NJWkVdOwotCi0gICAgY2lwaGVyX2luZm8gPSBtYmVkdGxzX2NpcGhlcl9pbmZvX2Zyb21fdHlwZShjaXBoZXJfdHlwZSk7Ci0gICAgaWYgKGNpcGhlcl9pbmZvID09IE5VTEwpIHsKLSAgICAgICAgLyogRmFpbGluZyBhdCB0aGlzIHBvaW50IG11c3QgYmUgZHVlIHRvIGEgYnVpbGQgaXNzdWUgKi8KLSAgICAgICAgcmV0ID0gTUJFRFRMU19FUlJfQ0lQSEVSX0ZFQVRVUkVfVU5BVkFJTEFCTEU7Ci0gICAgICAgIGdvdG8gZXhpdDsKLSAgICB9Ci0KLSAgICBmb3IgKGkgPSAwOyBpIDwgbnVtX3Rlc3RzOyBpKyspIHsKLSAgICAgICAgaWYgKHZlcmJvc2UgIT0gMCkgewotICAgICAgICAgICAgbWJlZHRsc19wcmludGYoIiAgJXMgQ01BQyAjJWQ6ICIsIHRlc3RuYW1lLCBpICsgMSk7Ci0gICAgICAgIH0KLQotICAgICAgICBpZiAoKHJldCA9IG1iZWR0bHNfY2lwaGVyX2NtYWMoY2lwaGVyX2luZm8sIGtleSwga2V5Yml0cywgbWVzc2FnZXMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZXNzYWdlX2xlbmd0aHNbaV0sIG91dHB1dCkpICE9IDApIHsKLSAgICAgICAgICAgIC8qIFdoZW4gQ01BQyBpcyBpbXBsZW1lbnRlZCBieSBhbiBhbHRlcm5hdGl2ZSBpbXBsZW1lbnRhdGlvbiwgb3IKLSAgICAgICAgICAgICAqIHRoZSB1bmRlcmx5aW5nIHByaW1pdGl2ZSBpdHNlbGYgaXMgaW1wbGVtZW50ZWQgYWx0ZXJuYXRpdmVseSwKLSAgICAgICAgICAgICAqIEFFUy0xOTIgYW5kL29yIDNERVMgbWF5IGJlIHVuYXZhaWxhYmxlLiBUaGlzIHNob3VsZCBub3QgY2F1c2UKLSAgICAgICAgICAgICAqIHRoZSBzZWxmdGVzdCBmdW5jdGlvbiB0byBmYWlsLiAqLwotICAgICAgICAgICAgaWYgKChyZXQgPT0gTUJFRFRMU19FUlJfUExBVEZPUk1fRkVBVFVSRV9VTlNVUFBPUlRFRCB8fAotICAgICAgICAgICAgICAgICByZXQgPT0gTUJFRFRMU19FUlJfQ0lQSEVSX0ZFQVRVUkVfVU5BVkFJTEFCTEUpICYmCi0gICAgICAgICAgICAgICAgKGNpcGhlcl90eXBlID09IE1CRURUTFNfQ0lQSEVSX0FFU18xOTJfRUNCIHx8Ci0gICAgICAgICAgICAgICAgIGNpcGhlcl90eXBlID09IE1CRURUTFNfQ0lQSEVSX0RFU19FREUzX0VDQikpIHsKLSAgICAgICAgICAgICAgICBpZiAodmVyYm9zZSAhPSAwKSB7Ci0gICAgICAgICAgICAgICAgICAgIG1iZWR0bHNfcHJpbnRmKCJza2lwcGVkXG4iKTsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIGlmICh2ZXJib3NlICE9IDApIHsKLSAgICAgICAgICAgICAgICBtYmVkdGxzX3ByaW50ZigiZmFpbGVkXG4iKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGdvdG8gZXhpdDsKLSAgICAgICAgfQotCi0gICAgICAgIGlmICgocmV0ID0gbWVtY21wKG91dHB1dCwgJmV4cGVjdGVkX3Jlc3VsdFtpICogYmxvY2tfc2l6ZV0sIGJsb2NrX3NpemUpKSAhPSAwKSB7Ci0gICAgICAgICAgICBpZiAodmVyYm9zZSAhPSAwKSB7Ci0gICAgICAgICAgICAgICAgbWJlZHRsc19wcmludGYoImZhaWxlZFxuIik7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBnb3RvIGV4aXQ7Ci0gICAgICAgIH0KLQotICAgICAgICBpZiAodmVyYm9zZSAhPSAwKSB7Ci0gICAgICAgICAgICBtYmVkdGxzX3ByaW50ZigicGFzc2VkXG4iKTsKLSAgICAgICAgfQotICAgIH0KLSAgICByZXQgPSAwOwotCi1leGl0OgotICAgIHJldHVybiByZXQ7Ci19Ci0KLSNpZiBkZWZpbmVkKE1CRURUTFNfQUVTX0MpCi1zdGF0aWMgaW50IHRlc3RfYWVzMTI4X2NtYWNfcHJmKGludCB2ZXJib3NlKQotewotICAgIGludCBpOwotICAgIGludCByZXQgPSBNQkVEVExTX0VSUl9FUlJPUl9DT1JSVVBUSU9OX0RFVEVDVEVEOwotICAgIHVuc2lnbmVkIGNoYXIgb3V0cHV0W01CRURUTFNfQUVTX0JMT0NLX1NJWkVdOwotCi0gICAgZm9yIChpID0gMDsgaSA8IE5CX1BSRl9URVNUUzsgaSsrKSB7Ci0gICAgICAgIG1iZWR0bHNfcHJpbnRmKCIgIEFFUyBDTUFDIDEyOCBQUkYgIyVkOiAiLCBpKTsKLSAgICAgICAgcmV0ID0gbWJlZHRsc19hZXNfY21hY19wcmZfMTI4KFBSRkssIFBSRktsZW5baV0sIFBSRk0sIDIwLCBvdXRwdXQpOwotICAgICAgICBpZiAocmV0ICE9IDAgfHwKLSAgICAgICAgICAgIG1lbWNtcChvdXRwdXQsIFBSRlRbaV0sIE1CRURUTFNfQUVTX0JMT0NLX1NJWkUpICE9IDApIHsKLQotICAgICAgICAgICAgaWYgKHZlcmJvc2UgIT0gMCkgewotICAgICAgICAgICAgICAgIG1iZWR0bHNfcHJpbnRmKCJmYWlsZWRcbiIpOwotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICByZXR1cm4gcmV0OwotICAgICAgICB9IGVsc2UgaWYgKHZlcmJvc2UgIT0gMCkgewotICAgICAgICAgICAgbWJlZHRsc19wcmludGYoInBhc3NlZFxuIik7Ci0gICAgICAgIH0KLSAgICB9Ci0gICAgcmV0dXJuIHJldDsKLX0KLSNlbmRpZiAvKiBNQkVEVExTX0FFU19DICovCi0KLWludCBtYmVkdGxzX2NtYWNfc2VsZl90ZXN0KGludCB2ZXJib3NlKQotewotICAgIGludCByZXQgPSBNQkVEVExTX0VSUl9FUlJPUl9DT1JSVVBUSU9OX0RFVEVDVEVEOwotCi0jaWYgZGVmaW5lZChNQkVEVExTX0FFU19DKQotICAgIC8qIEFFUy0xMjggKi8KLSAgICBpZiAoKHJldCA9IGNtYWNfdGVzdF9zdWJrZXlzKHZlcmJvc2UsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiQUVTIDEyOCIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhZXNfMTI4X2tleSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEyOCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjb25zdCB1bnNpZ25lZCBjaGFyICopIGFlc18xMjhfc3Via2V5cywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1CRURUTFNfQ0lQSEVSX0FFU18xMjhfRUNCLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTUJFRFRMU19BRVNfQkxPQ0tfU0laRSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5CX0NNQUNfVEVTVFNfUEVSX0tFWSkpICE9IDApIHsKLSAgICAgICAgcmV0dXJuIHJldDsKLSAgICB9Ci0KLSAgICBpZiAoKHJldCA9IGNtYWNfdGVzdF93dGhfY2lwaGVyKHZlcmJvc2UsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiQUVTIDEyOCIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhZXNfMTI4X2tleSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEyOCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RfbWVzc2FnZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFlc19tZXNzYWdlX2xlbmd0aHMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY29uc3QgdW5zaWduZWQgY2hhciAqKSBhZXNfMTI4X2V4cGVjdGVkX3Jlc3VsdCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1CRURUTFNfQ0lQSEVSX0FFU18xMjhfRUNCLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTUJFRFRMU19BRVNfQkxPQ0tfU0laRSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5CX0NNQUNfVEVTVFNfUEVSX0tFWSkpICE9IDApIHsKLSAgICAgICAgcmV0dXJuIHJldDsKLSAgICB9Ci0KLSAgICAvKiBBRVMtMTkyICovCi0jaWYgIWRlZmluZWQoTUJFRFRMU19BRVNfT05MWV8xMjhfQklUX0tFWV9MRU5HVEgpCi0gICAgaWYgKChyZXQgPSBjbWFjX3Rlc3Rfc3Via2V5cyh2ZXJib3NlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkFFUyAxOTIiLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWVzXzE5Ml9rZXksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxOTIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY29uc3QgdW5zaWduZWQgY2hhciAqKSBhZXNfMTkyX3N1YmtleXMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNQkVEVExTX0NJUEhFUl9BRVNfMTkyX0VDQiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1CRURUTFNfQUVTX0JMT0NLX1NJWkUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOQl9DTUFDX1RFU1RTX1BFUl9LRVkpKSAhPSAwKSB7Ci0gICAgICAgIHJldHVybiByZXQ7Ci0gICAgfQotCi0gICAgaWYgKChyZXQgPSBjbWFjX3Rlc3Rfd3RoX2NpcGhlcih2ZXJib3NlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkFFUyAxOTIiLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWVzXzE5Ml9rZXksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxOTIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0X21lc3NhZ2UsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhZXNfbWVzc2FnZV9sZW5ndGhzLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNvbnN0IHVuc2lnbmVkIGNoYXIgKikgYWVzXzE5Ml9leHBlY3RlZF9yZXN1bHQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNQkVEVExTX0NJUEhFUl9BRVNfMTkyX0VDQiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1CRURUTFNfQUVTX0JMT0NLX1NJWkUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOQl9DTUFDX1RFU1RTX1BFUl9LRVkpKSAhPSAwKSB7Ci0gICAgICAgIHJldHVybiByZXQ7Ci0gICAgfQotI2VuZGlmIC8qICFNQkVEVExTX0FFU19PTkxZXzEyOF9CSVRfS0VZX0xFTkdUSCAqLwotCi0gICAgLyogQUVTLTI1NiAqLwotI2lmICFkZWZpbmVkKE1CRURUTFNfQUVTX09OTFlfMTI4X0JJVF9LRVlfTEVOR1RIKQotICAgIGlmICgocmV0ID0gY21hY190ZXN0X3N1YmtleXModmVyYm9zZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJBRVMgMjU2IiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFlc18yNTZfa2V5LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMjU2LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNvbnN0IHVuc2lnbmVkIGNoYXIgKikgYWVzXzI1Nl9zdWJrZXlzLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTUJFRFRMU19DSVBIRVJfQUVTXzI1Nl9FQ0IsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNQkVEVExTX0FFU19CTE9DS19TSVpFLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTkJfQ01BQ19URVNUU19QRVJfS0VZKSkgIT0gMCkgewotICAgICAgICByZXR1cm4gcmV0OwotICAgIH0KLQotICAgIGlmICgocmV0ID0gY21hY190ZXN0X3d0aF9jaXBoZXIodmVyYm9zZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJBRVMgMjU2IiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFlc18yNTZfa2V5LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMjU2LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGVzdF9tZXNzYWdlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWVzX21lc3NhZ2VfbGVuZ3RocywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjb25zdCB1bnNpZ25lZCBjaGFyICopIGFlc18yNTZfZXhwZWN0ZWRfcmVzdWx0LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTUJFRFRMU19DSVBIRVJfQUVTXzI1Nl9FQ0IsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNQkVEVExTX0FFU19CTE9DS19TSVpFLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTkJfQ01BQ19URVNUU19QRVJfS0VZKSkgIT0gMCkgewotICAgICAgICByZXR1cm4gcmV0OwotICAgIH0KLSNlbmRpZiAvKiAhTUJFRFRMU19BRVNfT05MWV8xMjhfQklUX0tFWV9MRU5HVEggKi8KLSNlbmRpZiAvKiBNQkVEVExTX0FFU19DICovCi0KLSNpZiBkZWZpbmVkKE1CRURUTFNfREVTX0MpCi0gICAgLyogM0RFUyAyIGtleSAqLwotICAgIGlmICgocmV0ID0gY21hY190ZXN0X3N1YmtleXModmVyYm9zZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIzREVTIDIga2V5IiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlczNfMmtleV9rZXksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxOTIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY29uc3QgdW5zaWduZWQgY2hhciAqKSBkZXMzXzJrZXlfc3Via2V5cywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1CRURUTFNfQ0lQSEVSX0RFU19FREUzX0VDQiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1CRURUTFNfREVTM19CTE9DS19TSVpFLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTkJfQ01BQ19URVNUU19QRVJfS0VZKSkgIT0gMCkgewotICAgICAgICByZXR1cm4gcmV0OwotICAgIH0KLQotICAgIGlmICgocmV0ID0gY21hY190ZXN0X3d0aF9jaXBoZXIodmVyYm9zZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIzREVTIDIga2V5IiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlczNfMmtleV9rZXksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxOTIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0X21lc3NhZ2UsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXMzX21lc3NhZ2VfbGVuZ3RocywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjb25zdCB1bnNpZ25lZCBjaGFyICopIGRlczNfMmtleV9leHBlY3RlZF9yZXN1bHQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNQkVEVExTX0NJUEhFUl9ERVNfRURFM19FQ0IsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNQkVEVExTX0RFUzNfQkxPQ0tfU0laRSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5CX0NNQUNfVEVTVFNfUEVSX0tFWSkpICE9IDApIHsKLSAgICAgICAgcmV0dXJuIHJldDsKLSAgICB9Ci0KLSAgICAvKiAzREVTIDMga2V5ICovCi0gICAgaWYgKChyZXQgPSBjbWFjX3Rlc3Rfc3Via2V5cyh2ZXJib3NlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjNERVMgMyBrZXkiLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVzM18za2V5X2tleSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDE5MiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjb25zdCB1bnNpZ25lZCBjaGFyICopIGRlczNfM2tleV9zdWJrZXlzLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTUJFRFRMU19DSVBIRVJfREVTX0VERTNfRUNCLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTUJFRFRMU19ERVMzX0JMT0NLX1NJWkUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOQl9DTUFDX1RFU1RTX1BFUl9LRVkpKSAhPSAwKSB7Ci0gICAgICAgIHJldHVybiByZXQ7Ci0gICAgfQotCi0gICAgaWYgKChyZXQgPSBjbWFjX3Rlc3Rfd3RoX2NpcGhlcih2ZXJib3NlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjNERVMgMyBrZXkiLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVzM18za2V5X2tleSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDE5MiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RfbWVzc2FnZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlczNfbWVzc2FnZV9sZW5ndGhzLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNvbnN0IHVuc2lnbmVkIGNoYXIgKikgZGVzM18za2V5X2V4cGVjdGVkX3Jlc3VsdCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1CRURUTFNfQ0lQSEVSX0RFU19FREUzX0VDQiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1CRURUTFNfREVTM19CTE9DS19TSVpFLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTkJfQ01BQ19URVNUU19QRVJfS0VZKSkgIT0gMCkgewotICAgICAgICByZXR1cm4gcmV0OwotICAgIH0KLSNlbmRpZiAvKiBNQkVEVExTX0RFU19DICovCi0KLSNpZiBkZWZpbmVkKE1CRURUTFNfQUVTX0MpCi0gICAgaWYgKChyZXQgPSB0ZXN0X2FlczEyOF9jbWFjX3ByZih2ZXJib3NlKSkgIT0gMCkgewotICAgICAgICByZXR1cm4gcmV0OwotICAgIH0KLSNlbmRpZiAvKiBNQkVEVExTX0FFU19DICovCi0KLSAgICBpZiAodmVyYm9zZSAhPSAwKSB7Ci0gICAgICAgIG1iZWR0bHNfcHJpbnRmKCJcbiIpOwotICAgIH0KLQotICAgIHJldHVybiAwOwotfQotCi0jZW5kaWYgLyogTUJFRFRMU19TRUxGX1RFU1QgKi8KLQotI2VuZGlmIC8qIE1CRURUTFNfQ01BQ19DICovCmRpZmYgLS1naXQgYS9saWJyYXJ5L2NvbnN0YW50X3RpbWUuYyBiL2xpYnJhcnkvY29uc3RhbnRfdGltZS5jCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkMjEyZGRmLi4wMDAwMDAwCi0tLSBhL2xpYnJhcnkvY29uc3RhbnRfdGltZS5jCisrKyAvZGV2L251bGwKQEAgLTEsMjQ4ICswLDAgQEAKLS8qKgotICogIENvbnN0YW50LXRpbWUgZnVuY3Rpb25zCi0gKgotICogIENvcHlyaWdodCBUaGUgTWJlZCBUTFMgQ29udHJpYnV0b3JzCi0gKiAgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjAgT1IgR1BMLTIuMC1vci1sYXRlcgotICovCi0KLS8qCi0gKiBUaGUgZm9sbG93aW5nIGZ1bmN0aW9ucyBhcmUgaW1wbGVtZW50ZWQgd2l0aG91dCB1c2luZyBjb21wYXJpc29uIG9wZXJhdG9ycywgYXMgdGhvc2UKLSAqIG1pZ2h0IGJlIHRyYW5zbGF0ZWQgdG8gYnJhbmNoZXMgYnkgc29tZSBjb21waWxlcnMgb24gc29tZSBwbGF0Zm9ybXMuCi0gKi8KLQotI2luY2x1ZGUgPHN0ZGludC5oPgotI2luY2x1ZGUgPGxpbWl0cy5oPgotCi0jaW5jbHVkZSAiY29tbW9uLmgiCi0jaW5jbHVkZSAiY29uc3RhbnRfdGltZV9pbnRlcm5hbC5oIgotI2luY2x1ZGUgIm1iZWR0bHMvY29uc3RhbnRfdGltZS5oIgotI2luY2x1ZGUgIm1iZWR0bHMvZXJyb3IuaCIKLSNpbmNsdWRlICJtYmVkdGxzL3BsYXRmb3JtX3V0aWwuaCIKLQotI2luY2x1ZGUgPHN0cmluZy5oPgotCi0jaWYgIWRlZmluZWQoTUJFRFRMU19DVF9BU00pCi0vKgotICogRGVmaW5lIGFuIG9iamVjdCB3aXRoIHRoZSB2YWx1ZSB6ZXJvLCBzdWNoIHRoYXQgdGhlIGNvbXBpbGVyIGNhbm5vdCBwcm92ZSB0aGF0IGl0Ci0gKiBoYXMgdGhlIHZhbHVlIHplcm8gKGJlY2F1c2UgaXQgaXMgdm9sYXRpbGUsIGl0ICJtYXkgYmUgbW9kaWZpZWQgaW4gd2F5cyB1bmtub3duIHRvCi0gKiB0aGUgaW1wbGVtZW50YXRpb24iKS4KLSAqLwotdm9sYXRpbGUgbWJlZHRsc19jdF91aW50X3QgbWJlZHRsc19jdF96ZXJvID0gMDsKLSNlbmRpZgotCi0vKgotICogRGVmaW5lIE1CRURUTFNfRUZGSUNJRU5UX1VOQUxJR05FRF9WT0xBVElMRV9BQ0NFU1Mgd2hlcmUgYXNzZW1ibHkgaXMgcHJlc2VudCB0bwotICogcGVyZm9ybSBmYXN0IHVuYWxpZ25lZCBhY2Nlc3MgdG8gdm9sYXRpbGUgZGF0YS4KLSAqCi0gKiBUaGlzIGlzIG5lZWRlZCBiZWNhdXNlIG1iZWR0bHNfZ2V0X3VuYWxpZ25lZF91aW50WFggZXRjIGRvbid0IHN1cHBvcnQgdm9sYXRpbGUKLSAqIG1lbW9yeSBhY2Nlc3Nlcy4KLSAqCi0gKiBTb21lIG9mIHRoZXNlIGRlZmluaXRpb25zIGNvdWxkIGJlIG1vdmVkIGludG8gYWxpZ25tZW50LmggYnV0IGZvciBub3cgdGhleSBhcmUKLSAqIG9ubHkgdXNlZCBoZXJlLgotICovCi0jaWYgZGVmaW5lZChNQkVEVExTX0VGRklDSUVOVF9VTkFMSUdORURfQUNDRVNTKSAmJiBcCi0gICAgKChkZWZpbmVkKE1CRURUTFNfQ1RfQVJNX0FTTSkgJiYgKFVJTlRQVFJfTUFYID09IDB4ZmZmZmZmZmZ1bCkpIHx8IFwKLSAgICBkZWZpbmVkKE1CRURUTFNfQ1RfQUFSQ0g2NF9BU00pKQotLyogV2UgY2hlY2sgcG9pbnRlciBzaXplcyB0byBhdm9pZCBpc3N1ZXMgd2l0aCB0aGVtIG5vdCBtYXRjaGluZyByZWdpc3RlciBzaXplIHJlcXVpcmVtZW50cyAqLwotI2RlZmluZSBNQkVEVExTX0VGRklDSUVOVF9VTkFMSUdORURfVk9MQVRJTEVfQUNDRVNTCi0KLXN0YXRpYyBpbmxpbmUgdWludDMyX3QgbWJlZHRsc19nZXRfdW5hbGlnbmVkX3ZvbGF0aWxlX3VpbnQzMih2b2xhdGlsZSBjb25zdCB1bnNpZ25lZCBjaGFyICpwKQotewotICAgIC8qIFRoaXMgaXMgVUIsIGV2ZW4gd2hlcmUgaXQncyBzYWZlOgotICAgICAqICAgIHJldHVybiAqKCh2b2xhdGlsZSB1aW50MzJfdCopcCk7Ci0gICAgICogc28gaW5zdGVhZCB0aGUgc2FtZSB0aGluZyBpcyBleHByZXNzZWQgaW4gYXNzZW1ibHkgYmVsb3cuCi0gICAgICovCi0gICAgdWludDMyX3QgcjsKLSNpZiBkZWZpbmVkKE1CRURUTFNfQ1RfQVJNX0FTTSkKLSAgICBhc20gdm9sYXRpbGUgKCJsZHIgJTAsIFslMV0iIDogIj1yIiAocikgOiAiciIgKHApIDopOwotI2VsaWYgZGVmaW5lZChNQkVEVExTX0NUX0FBUkNINjRfQVNNKQotICAgIGFzbSB2b2xhdGlsZSAoImxkciAldzAsIFslMV0iIDogIj1yIiAocikgOiBNQkVEVExTX0FTTV9BQVJDSDY0X1BUUl9DT05TVFJBSU5UKHApIDopOwotI2Vsc2UKLSNlcnJvciAiTm8gYXNzZW1ibHkgZGVmaW5lZCBmb3IgbWJlZHRsc19nZXRfdW5hbGlnbmVkX3ZvbGF0aWxlX3VpbnQzMiIKLSNlbmRpZgotICAgIHJldHVybiByOwotfQotI2VuZGlmIC8qIGRlZmluZWQoTUJFRFRMU19FRkZJQ0lFTlRfVU5BTElHTkVEX0FDQ0VTUykgJiYKLSAgICAgICAgICAoZGVmaW5lZChNQkVEVExTX0NUX0FSTV9BU00pIHx8IGRlZmluZWQoTUJFRFRMU19DVF9BQVJDSDY0X0FTTSkpICovCi0KLWludCBtYmVkdGxzX2N0X21lbWNtcChjb25zdCB2b2lkICphLAotICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHZvaWQgKmIsCi0gICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IG4pCi17Ci0gICAgc2l6ZV90IGkgPSAwOwotICAgIC8qCi0gICAgICogYEFgIGFuZCBgQmAgYXJlIGNhc3QgdG8gdm9sYXRpbGUgdG8gZW5zdXJlIHRoYXQgdGhlIGNvbXBpbGVyCi0gICAgICogZ2VuZXJhdGVzIGNvZGUgdGhhdCBhbHdheXMgZnVsbHkgcmVhZHMgYm90aCBidWZmZXJzLgotICAgICAqIE90aGVyd2lzZSBpdCBjb3VsZCBnZW5lcmF0ZSBhIHRlc3QgdG8gZXhpdCBlYXJseSBpZiBgZGlmZmAgaGFzIGFsbAotICAgICAqIGJpdHMgc2V0IGVhcmx5IGluIHRoZSBsb29wLgotICAgICAqLwotICAgIHZvbGF0aWxlIGNvbnN0IHVuc2lnbmVkIGNoYXIgKkEgPSAodm9sYXRpbGUgY29uc3QgdW5zaWduZWQgY2hhciAqKSBhOwotICAgIHZvbGF0aWxlIGNvbnN0IHVuc2lnbmVkIGNoYXIgKkIgPSAodm9sYXRpbGUgY29uc3QgdW5zaWduZWQgY2hhciAqKSBiOwotICAgIHVpbnQzMl90IGRpZmYgPSAwOwotCi0jaWYgZGVmaW5lZChNQkVEVExTX0VGRklDSUVOVF9VTkFMSUdORURfVk9MQVRJTEVfQUNDRVNTKQotICAgIGZvciAoOyAoaSArIDQpIDw9IG47IGkgKz0gNCkgewotICAgICAgICB1aW50MzJfdCB4ID0gbWJlZHRsc19nZXRfdW5hbGlnbmVkX3ZvbGF0aWxlX3VpbnQzMihBICsgaSk7Ci0gICAgICAgIHVpbnQzMl90IHkgPSBtYmVkdGxzX2dldF91bmFsaWduZWRfdm9sYXRpbGVfdWludDMyKEIgKyBpKTsKLSAgICAgICAgZGlmZiB8PSB4IF4geTsKLSAgICB9Ci0jZW5kaWYKLQotICAgIGZvciAoOyBpIDwgbjsgaSsrKSB7Ci0gICAgICAgIC8qIFJlYWQgdm9sYXRpbGUgZGF0YSBpbiBvcmRlciBiZWZvcmUgY29tcHV0aW5nIGRpZmYuCi0gICAgICAgICAqIFRoaXMgYXZvaWRzIElBUiBjb21waWxlciB3YXJuaW5nOgotICAgICAgICAgKiAndGhlIG9yZGVyIG9mIHZvbGF0aWxlIGFjY2Vzc2VzIGlzIHVuZGVmaW5lZCAuLicgKi8KLSAgICAgICAgdW5zaWduZWQgY2hhciB4ID0gQVtpXSwgeSA9IEJbaV07Ci0gICAgICAgIGRpZmYgfD0geCBeIHk7Ci0gICAgfQotCi0KLSNpZiAoSU5UX01BWCA8IElOVDMyX01BWCkKLSAgICAvKiBXZSBkb24ndCBzdXBwb3J0IGludCBzbWFsbGVyIHRoYW4gMzItYml0cywgYnV0IGlmIHNvbWVvbmUgdHJpZWQgdG8gYnVpbGQKLSAgICAgKiB3aXRoIHRoaXMgY29uZmlndXJhdGlvbiwgdGhlcmUgaXMgYSByaXNrIHRoYXQsIGZvciBkaWZmZXJpbmcgZGF0YSwgdGhlCi0gICAgICogb25seSBiaXRzIHNldCBpbiBkaWZmIGFyZSBpbiB0aGUgdG9wIDE2LWJpdHMsIGFuZCB3b3VsZCBiZSBsb3N0IGJ5IGEKLSAgICAgKiBzaW1wbGUgY2FzdCBmcm9tIHVpbnQzMiB0byBpbnQuCi0gICAgICogVGhpcyB3b3VsZCBoYXZlIHNpZ25pZmljYW50IHNlY3VyaXR5IGltcGxpY2F0aW9ucywgc28gcHJvdGVjdCBhZ2FpbnN0IGl0LiAqLwotI2Vycm9yICJtYmVkdGxzX2N0X21lbWNtcCgpIHJlcXVpcmVzIG1pbmltdW0gMzItYml0IGludHMiCi0jZWxzZQotICAgIC8qIFRoZSBiaXQtdHdpZGRsaW5nIGVuc3VyZXMgdGhhdCB3aGVuIHdlIGNhc3QgdWludDMyX3QgdG8gaW50LCB3ZSBhcmUgY2FzdGluZwotICAgICAqIGEgdmFsdWUgdGhhdCBpcyBpbiB0aGUgcmFuZ2UgMC4uSU5UX01BWCAtIGEgdmFsdWUgbGFyZ2VyIHRoYW4gdGhpcyB3b3VsZAotICAgICAqIHJlc3VsdCBpbiBpbXBsZW1lbnRhdGlvbiBkZWZpbmVkIGJlaGF2aW91ci4KLSAgICAgKgotICAgICAqIFRoaXMgZW5zdXJlcyB0aGF0IHRoZSB2YWx1ZSByZXR1cm5lZCBieSB0aGUgZnVuY3Rpb24gaXMgbm9uLXplcm8gaWZmCi0gICAgICogZGlmZiBpcyBub24temVyby4KLSAgICAgKi8KLSAgICByZXR1cm4gKGludCkgKChkaWZmICYgMHhmZmZmKSB8IChkaWZmID4+IDE2KSk7Ci0jZW5kaWYKLX0KLQotI2lmIGRlZmluZWQoTUJFRFRMU19OSVNUX0tXX0MpCi0KLWludCBtYmVkdGxzX2N0X21lbWNtcF9wYXJ0aWFsKGNvbnN0IHZvaWQgKmEsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB2b2lkICpiLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IG4sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3Qgc2tpcF9oZWFkLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IHNraXBfdGFpbCkKLXsKLSAgICB1bnNpZ25lZCBpbnQgZGlmZiA9IDA7Ci0KLSAgICB2b2xhdGlsZSBjb25zdCB1bnNpZ25lZCBjaGFyICpBID0gKHZvbGF0aWxlIGNvbnN0IHVuc2lnbmVkIGNoYXIgKikgYTsKLSAgICB2b2xhdGlsZSBjb25zdCB1bnNpZ25lZCBjaGFyICpCID0gKHZvbGF0aWxlIGNvbnN0IHVuc2lnbmVkIGNoYXIgKikgYjsKLQotICAgIHNpemVfdCB2YWxpZF9lbmQgPSBuIC0gc2tpcF90YWlsOwotCi0gICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBuOyBpKyspIHsKLSAgICAgICAgdW5zaWduZWQgY2hhciB4ID0gQVtpXSwgeSA9IEJbaV07Ci0gICAgICAgIHVuc2lnbmVkIGludCBkID0geCBeIHk7Ci0gICAgICAgIG1iZWR0bHNfY3RfY29uZGl0aW9uX3QgdmFsaWQgPSBtYmVkdGxzX2N0X2Jvb2xfYW5kKG1iZWR0bHNfY3RfdWludF9nZShpLCBza2lwX2hlYWQpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYmVkdGxzX2N0X3VpbnRfbHQoaSwgdmFsaWRfZW5kKSk7Ci0gICAgICAgIGRpZmYgfD0gbWJlZHRsc19jdF91aW50X2lmX2Vsc2VfMCh2YWxpZCwgZCk7Ci0gICAgfQotCi0gICAgLyogU2luY2Ugd2UgZ28gYnl0ZS1ieS1ieXRlLCB0aGUgb25seSBiaXRzIHNldCB3aWxsIGJlIGluIHRoZSBib3R0b20gOCBiaXRzLCBzbyB0aGUKLSAgICAgKiBjYXN0IGZyb20gdWludCB0byBpbnQgaXMgc2FmZS4gKi8KLSAgICByZXR1cm4gKGludCkgZGlmZjsKLX0KLQotI2VuZGlmCi0KLSNpZiBkZWZpbmVkKE1CRURUTFNfUEtDUzFfVjE1KSAmJiBkZWZpbmVkKE1CRURUTFNfUlNBX0MpICYmICFkZWZpbmVkKE1CRURUTFNfUlNBX0FMVCkKLQotdm9pZCBtYmVkdGxzX2N0X21lbW1vdmVfbGVmdCh2b2lkICpzdGFydCwgc2l6ZV90IHRvdGFsLCBzaXplX3Qgb2Zmc2V0KQotewotICAgIHZvbGF0aWxlIHVuc2lnbmVkIGNoYXIgKmJ1ZiA9IHN0YXJ0OwotICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgdG90YWw7IGkrKykgewotICAgICAgICBtYmVkdGxzX2N0X2NvbmRpdGlvbl90IG5vX29wID0gbWJlZHRsc19jdF91aW50X2d0KHRvdGFsIC0gb2Zmc2V0LCBpKTsKLSAgICAgICAgLyogVGhlIGZpcnN0IGB0b3RhbCAtIG9mZnNldGAgcGFzc2VzIGFyZSBhIG5vLW9wLiBUaGUgbGFzdAotICAgICAgICAgKiBgb2Zmc2V0YCBwYXNzZXMgc2hpZnQgdGhlIGRhdGEgb25lIGJ5dGUgdG8gdGhlIGxlZnQgYW5kCi0gICAgICAgICAqIHplcm8gb3V0IHRoZSBsYXN0IGJ5dGUuICovCi0gICAgICAgIGZvciAoc2l6ZV90IG4gPSAwOyBuIDwgdG90YWwgLSAxOyBuKyspIHsKLSAgICAgICAgICAgIHVuc2lnbmVkIGNoYXIgY3VycmVudCA9IGJ1ZltuXTsKLSAgICAgICAgICAgIHVuc2lnbmVkIGNoYXIgbmV4dCAgICA9IGJ1ZltuKzFdOwotICAgICAgICAgICAgYnVmW25dID0gbWJlZHRsc19jdF91aW50X2lmKG5vX29wLCBjdXJyZW50LCBuZXh0KTsKLSAgICAgICAgfQotICAgICAgICBidWZbdG90YWwtMV0gPSBtYmVkdGxzX2N0X3VpbnRfaWZfZWxzZV8wKG5vX29wLCBidWZbdG90YWwtMV0pOwotICAgIH0KLX0KLQotI2VuZGlmIC8qIE1CRURUTFNfUEtDUzFfVjE1ICYmIE1CRURUTFNfUlNBX0MgJiYgISBNQkVEVExTX1JTQV9BTFQgKi8KLQotdm9pZCBtYmVkdGxzX2N0X21lbWNweV9pZihtYmVkdGxzX2N0X2NvbmRpdGlvbl90IGNvbmRpdGlvbiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgY2hhciAqZGVzdCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdW5zaWduZWQgY2hhciAqc3JjMSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdW5zaWduZWQgY2hhciAqc3JjMiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IGxlbikKLXsKLSNpZiBkZWZpbmVkKE1CRURUTFNfQ1RfU0laRV82NCkKLSAgICBjb25zdCB1aW50NjRfdCBtYXNrICAgICA9ICh1aW50NjRfdCkgY29uZGl0aW9uOwotICAgIGNvbnN0IHVpbnQ2NF90IG5vdF9tYXNrID0gKHVpbnQ2NF90KSB+bWJlZHRsc19jdF9jb21waWxlcl9vcGFxdWUoY29uZGl0aW9uKTsKLSNlbHNlCi0gICAgY29uc3QgdWludDMyX3QgbWFzayAgICAgPSAodWludDMyX3QpIGNvbmRpdGlvbjsKLSAgICBjb25zdCB1aW50MzJfdCBub3RfbWFzayA9ICh1aW50MzJfdCkgfm1iZWR0bHNfY3RfY29tcGlsZXJfb3BhcXVlKGNvbmRpdGlvbik7Ci0jZW5kaWYKLQotICAgIC8qIElmIHNyYzIgaXMgTlVMTCwgc2V0dXAgc3JjMiBzbyB0aGF0IHdlIHJlYWQgZnJvbSB0aGUgZGVzdGluYXRpb24gYWRkcmVzcy4KLSAgICAgKgotICAgICAqIFRoaXMgbWVhbnMgdGhhdCBpZiBzcmMyID09IE5VTEwgJiYgY29uZGl0aW9uIGlzIGZhbHNlLCB0aGUgcmVzdWx0IHdpbGwgYmUgYQotICAgICAqIG5vLW9wIGJlY2F1c2Ugd2UgcmVhZCBmcm9tIGRlc3QgYW5kIHdyaXRlIHRoZSBzYW1lIGRhdGEgYmFjayBpbnRvIGRlc3QuCi0gICAgICovCi0gICAgaWYgKHNyYzIgPT0gTlVMTCkgewotICAgICAgICBzcmMyID0gZGVzdDsKLSAgICB9Ci0KLSAgICAvKiBkZXN0W2ldID0gYzEgPT0gYzIgPyBzcmNbaV0gOiBkZXN0W2ldICovCi0gICAgc2l6ZV90IGkgPSAwOwotI2lmIGRlZmluZWQoTUJFRFRMU19FRkZJQ0lFTlRfVU5BTElHTkVEX0FDQ0VTUykKLSNpZiBkZWZpbmVkKE1CRURUTFNfQ1RfU0laRV82NCkKLSAgICBmb3IgKDsgKGkgKyA4KSA8PSBsZW47IGkgKz0gOCkgewotICAgICAgICB1aW50NjRfdCBhID0gbWJlZHRsc19nZXRfdW5hbGlnbmVkX3VpbnQ2NChzcmMxICsgaSkgJiBtYXNrOwotICAgICAgICB1aW50NjRfdCBiID0gbWJlZHRsc19nZXRfdW5hbGlnbmVkX3VpbnQ2NChzcmMyICsgaSkgJiBub3RfbWFzazsKLSAgICAgICAgbWJlZHRsc19wdXRfdW5hbGlnbmVkX3VpbnQ2NChkZXN0ICsgaSwgYSB8IGIpOwotICAgIH0KLSNlbHNlCi0gICAgZm9yICg7IChpICsgNCkgPD0gbGVuOyBpICs9IDQpIHsKLSAgICAgICAgdWludDMyX3QgYSA9IG1iZWR0bHNfZ2V0X3VuYWxpZ25lZF91aW50MzIoc3JjMSArIGkpICYgbWFzazsKLSAgICAgICAgdWludDMyX3QgYiA9IG1iZWR0bHNfZ2V0X3VuYWxpZ25lZF91aW50MzIoc3JjMiArIGkpICYgbm90X21hc2s7Ci0gICAgICAgIG1iZWR0bHNfcHV0X3VuYWxpZ25lZF91aW50MzIoZGVzdCArIGksIGEgfCBiKTsKLSAgICB9Ci0jZW5kaWYgLyogZGVmaW5lZChNQkVEVExTX0NUX1NJWkVfNjQpICovCi0jZW5kaWYgLyogTUJFRFRMU19FRkZJQ0lFTlRfVU5BTElHTkVEX0FDQ0VTUyAqLwotICAgIGZvciAoOyBpIDwgbGVuOyBpKyspIHsKLSAgICAgICAgZGVzdFtpXSA9IChzcmMxW2ldICYgbWFzaykgfCAoc3JjMltpXSAmIG5vdF9tYXNrKTsKLSAgICB9Ci19Ci0KLXZvaWQgbWJlZHRsc19jdF9tZW1jcHlfb2Zmc2V0KHVuc2lnbmVkIGNoYXIgKmRlc3QsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1bnNpZ25lZCBjaGFyICpzcmMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3Qgb2Zmc2V0LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IG9mZnNldF9taW4sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3Qgb2Zmc2V0X21heCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBsZW4pCi17Ci0gICAgc2l6ZV90IG9mZnNldHZhbDsKLQotICAgIGZvciAob2Zmc2V0dmFsID0gb2Zmc2V0X21pbjsgb2Zmc2V0dmFsIDw9IG9mZnNldF9tYXg7IG9mZnNldHZhbCsrKSB7Ci0gICAgICAgIG1iZWR0bHNfY3RfbWVtY3B5X2lmKG1iZWR0bHNfY3RfdWludF9lcShvZmZzZXR2YWwsIG9mZnNldCksIGRlc3QsIHNyYyArIG9mZnNldHZhbCwgTlVMTCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGVuKTsKLSAgICB9Ci19Ci0KLSNpZiBkZWZpbmVkKE1CRURUTFNfUEtDUzFfVjE1KSAmJiBkZWZpbmVkKE1CRURUTFNfUlNBX0MpICYmICFkZWZpbmVkKE1CRURUTFNfUlNBX0FMVCkKLQotdm9pZCBtYmVkdGxzX2N0X3plcm9pemVfaWYobWJlZHRsc19jdF9jb25kaXRpb25fdCBjb25kaXRpb24sIHZvaWQgKmJ1Ziwgc2l6ZV90IGxlbikKLXsKLSAgICB1aW50MzJfdCBtYXNrID0gKHVpbnQzMl90KSB+Y29uZGl0aW9uOwotICAgIHVpbnQ4X3QgKnAgPSAodWludDhfdCAqKSBidWY7Ci0gICAgc2l6ZV90IGkgPSAwOwotI2lmIGRlZmluZWQoTUJFRFRMU19FRkZJQ0lFTlRfVU5BTElHTkVEX0FDQ0VTUykKLSAgICBmb3IgKDsgKGkgKyA0KSA8PSBsZW47IGkgKz0gNCkgewotICAgICAgICBtYmVkdGxzX3B1dF91bmFsaWduZWRfdWludDMyKCh2b2lkICopIChwICsgaSksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWJlZHRsc19nZXRfdW5hbGlnbmVkX3VpbnQzMigodm9pZCAqKSAocCArIGkpKSAmIG1hc2spOwotICAgIH0KLSNlbmRpZgotICAgIGZvciAoOyBpIDwgbGVuOyBpKyspIHsKLSAgICAgICAgcFtpXSA9IHBbaV0gJiBtYXNrOwotICAgIH0KLX0KLQotI2VuZGlmIC8qIGRlZmluZWQoTUJFRFRMU19QS0NTMV9WMTUpICYmIGRlZmluZWQoTUJFRFRMU19SU0FfQykgJiYgIWRlZmluZWQoTUJFRFRMU19SU0FfQUxUKSAqLwpkaWZmIC0tZ2l0IGEvbGlicmFyeS9jb25zdGFudF90aW1lX2ludGVybmFsLmggYi9saWJyYXJ5L2NvbnN0YW50X3RpbWVfaW50ZXJuYWwuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNjFhNWM2ZC4uMDAwMDAwMAotLS0gYS9saWJyYXJ5L2NvbnN0YW50X3RpbWVfaW50ZXJuYWwuaAorKysgL2Rldi9udWxsCkBAIC0xLDU3OSArMCwwIEBACi0vKioKLSAqICBDb25zdGFudC10aW1lIGZ1bmN0aW9ucwotICoKLSAqICBDb3B5cmlnaHQgVGhlIE1iZWQgVExTIENvbnRyaWJ1dG9ycwotICogIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wIE9SIEdQTC0yLjAtb3ItbGF0ZXIKLSAqLwotCi0jaWZuZGVmIE1CRURUTFNfQ09OU1RBTlRfVElNRV9JTlRFUk5BTF9ICi0jZGVmaW5lIE1CRURUTFNfQ09OU1RBTlRfVElNRV9JTlRFUk5BTF9ICi0KLSNpbmNsdWRlIDxzdGRpbnQuaD4KLSNpbmNsdWRlIDxzdGRkZWYuaD4KLQotI2luY2x1ZGUgImNvbW1vbi5oIgotCi0jaWYgZGVmaW5lZChNQkVEVExTX0JJR05VTV9DKQotI2luY2x1ZGUgIm1iZWR0bHMvYmlnbnVtLmgiCi0jZW5kaWYKLQotLyogVGhlIGNvbnN0YW50LXRpbWUgaW50ZXJmYWNlIHByb3ZpZGVzIHZhcmlvdXMgb3BlcmF0aW9ucyB0aGF0IGFyZSBsaWtlbHkKLSAqIHRvIHJlc3VsdCBpbiBjb25zdGFudC10aW1lIGNvZGUgdGhhdCBkb2VzIG5vdCBicmFuY2ggb3IgdXNlIGNvbmRpdGlvbmFsCi0gKiBpbnN0cnVjdGlvbnMgZm9yIHNlY3JldCBkYXRhIChmb3Igc2VjcmV0IHBvaW50ZXJzLCB0aGlzIGFsc28gYXBwbGllcyB0bwotICogdGhlIGRhdGEgcG9pbnRlZCB0bykuCi0gKgotICogSXQgaGFzIHRocmVlIG1haW4gcGFydHM6Ci0gKgotICogLSBib29sZWFuIG9wZXJhdGlvbnMKLSAqICAgVGhlc2UgYXJlIGFsbCBuYW1lZCBtYmVkdGxzX2N0Xzx0eXBlPl88b3BlcmF0aW9uPi4KLSAqICAgVGhleSBvcGVyYXRlIG92ZXIgPHR5cGU+IGFuZCByZXR1cm4gbWJlZHRsc19jdF9jb25kaXRpb25fdC4KLSAqICAgQWxsIGFyZ3VtZW50cyBhcmUgY29uc2lkZXJlZCBzZWNyZXQuCi0gKiAgIGV4YW1wbGU6IGJvb2wgeCA9IHkgfCB6ICAgICAgICAgID0+ICAgIHggPSBtYmVkdGxzX2N0X2Jvb2xfb3IoeSwgeikKLSAqICAgZXhhbXBsZTogYm9vbCB4ID0geSA9PSB6ICAgICAgICAgPT4gICAgeCA9IG1iZWR0bHNfY3RfdWludF9lcSh5LCB6KQotICoKLSAqIC0gY29uZGl0aW9uYWwgZGF0YSBzZWxlY3Rpb24KLSAqICAgVGhlc2UgYXJlIGFsbCBuYW1lZCBtYmVkdGxzX2N0Xzx0eXBlPl9pZiBhbmQgbWJlZHRsc19jdF88dHlwZT5faWZfZWxzZV8wCi0gKiAgIEFsbCBhcmd1bWVudHMgYXJlIGNvbnNpZGVyZWQgc2VjcmV0LgotICogICBleGFtcGxlOiBzaXplX3QgYSA9IHggPyBiIDogYyAgICA9PiAgICBhID0gbWJlZHRsc19jdF9zaXplX2lmKHgsIGIsIGMpCi0gKiAgIGV4YW1wbGU6IHVuc2lnbmVkIGEgPSB4ID8gYiA6IDAgID0+ICAgIGEgPSBtYmVkdGxzX2N0X3VpbnRfaWZfZWxzZV8wKHgsIGIpCi0gKgotICogLSBibG9jayBtZW1vcnkgb3BlcmF0aW9ucwotICogICBPbmx5IHNvbWUgYXJndW1lbnRzIGFyZSBjb25zaWRlcmVkIHNlY3JldCwgYXMgZG9jdW1lbnRlZCBmb3IgZWFjaAotICogICBmdW5jdGlvbi4KLSAqICAgZXhhbXBsZTogaWYgKHgpIG1lbWNweSguLi4pICAgICAgPT4gICAgbWJlZHRsc19jdF9tZW1jcHlfaWYoeCwgLi4uKQotICoKLSAqIG1iZWR0bHNfY3RfY29uZGl0aW9uX3QgbXVzdCBiZSB0cmVhdGVkIGFzIG9wYXF1ZSBhbmQgb25seSBjcmVhdGVkIGFuZAotICogbWFuaXB1bGF0ZWQgdmlhIHRoZSBmdW5jdGlvbnMgaW4gdGhpcyBoZWFkZXIuIFRoZSBjb21waWxlciBzaG91bGQgbmV2ZXIKLSAqIGJlIGFibGUgdG8gcHJvdmUgYW55dGhpbmcgYWJvdXQgaXRzIHZhbHVlIGF0IGNvbXBpbGUtdGltZS4KLSAqCi0gKiBtYmVkdGxzX2N0X3VpbnRfdCBpcyBhbiB1bnNpZ25lZCBpbnRlZ2VyIHR5cGUgb3ZlciB3aGljaCBjb25zdGFudCB0aW1lCi0gKiBvcGVyYXRpb25zIG1heSBiZSBwZXJmb3JtZWQgdmlhIHRoZSBmdW5jdGlvbnMgaW4gdGhpcyBoZWFkZXIuIEl0IGlzIGFzIGJpZwotICogYXMgdGhlIGxhcmdlciBvZiBzaXplX3QgYW5kIG1iZWR0bHNfbXBpX3VpbnQsIGkuZS4gaXQgaXMgc2FmZSB0byBjYXN0Ci0gKiB0by9mcm9tICJ1bnNpZ25lZCBpbnQiLCAic2l6ZV90IiwgYW5kICJtYmVkdGxzX21waV91aW50IiAoYW5kIGFueSBvdGhlcgotICogbm90LWxhcmdlciBpbnRlZ2VyIHR5cGVzKS4KLSAqCi0gKiBGb3IgQXJtICgzMi1iaXQsIDY0LWJpdCBhbmQgVGh1bWIpLCB4ODYgYW5kIHg4Ni02NCwgYXNzZW1ibHkgaW1wbGVtZW50YXRpb25zCi0gKiBhcmUgdXNlZCB0byBlbnN1cmUgdGhhdCB0aGUgZ2VuZXJhdGVkIGNvZGUgaXMgY29uc3RhbnQgdGltZS4gRm9yIG90aGVyCi0gKiBhcmNoaXRlY3R1cmVzLCBpdCB1c2VzIGEgcGxhaW4gQyBmYWxsYmFjayBkZXNpZ25lZCB0byB5aWVsZCBjb25zdGFudC10aW1lIGNvZGUKLSAqICh0aGlzIGhhcyBiZWVuIG9ic2VydmVkIHRvIGJlIGNvbnN0YW50LXRpbWUgb24gbGF0ZXN0IGdjYywgY2xhbmcgYW5kIE1TVkMKLSAqIGFzIG9mIE1heSAyMDIzKS4KLSAqCi0gKiBGb3IgcmVhZGFiaWxpdHksIHRoZSBzdGF0aWMgaW5saW5lIGRlZmluaXRpb25zIGFyZSBzZXBhcmF0ZWQgb3V0IGludG8KLSAqIGNvbnN0YW50X3RpbWVfaW1wbC5oLgotICovCi0KLSNpZiAoU0laRV9NQVggPiAweGZmZmZmZmZmZmZmZmZmZmZVTEwpCi0vKiBQb2ludGVyIHNpemUgPiA2NC1iaXQgKi8KLXR5cGVkZWYgc2l6ZV90ICAgIG1iZWR0bHNfY3RfY29uZGl0aW9uX3Q7Ci10eXBlZGVmIHNpemVfdCAgICBtYmVkdGxzX2N0X3VpbnRfdDsKLXR5cGVkZWYgcHRyZGlmZl90IG1iZWR0bHNfY3RfaW50X3Q7Ci0jZGVmaW5lIE1CRURUTFNfQ1RfVFJVRSAgKChtYmVkdGxzX2N0X2NvbmRpdGlvbl90KSBtYmVkdGxzX2N0X2NvbXBpbGVyX29wYXF1ZShTSVpFX01BWCkpCi0jZWxpZiAoU0laRV9NQVggPiAweGZmZmZmZmZmKSB8fCBkZWZpbmVkKE1CRURUTFNfSEFWRV9JTlQ2NCkKLS8qIDMyLWJpdCA8IHBvaW50ZXIgc2l6ZSA8PSA2NC1iaXQsIG9yIDY0LWJpdCBNUEkgKi8KLXR5cGVkZWYgdWludDY0X3QgIG1iZWR0bHNfY3RfY29uZGl0aW9uX3Q7Ci10eXBlZGVmIHVpbnQ2NF90ICBtYmVkdGxzX2N0X3VpbnRfdDsKLXR5cGVkZWYgaW50NjRfdCAgIG1iZWR0bHNfY3RfaW50X3Q7Ci0jZGVmaW5lIE1CRURUTFNfQ1RfU0laRV82NAotI2RlZmluZSBNQkVEVExTX0NUX1RSVUUgICgobWJlZHRsc19jdF9jb25kaXRpb25fdCkgbWJlZHRsc19jdF9jb21waWxlcl9vcGFxdWUoVUlOVDY0X01BWCkpCi0jZWxzZQotLyogUG9pbnRlciBzaXplIDw9IDMyLWJpdCwgYW5kIG5vIDY0LWJpdCBNUElzICovCi10eXBlZGVmIHVpbnQzMl90ICBtYmVkdGxzX2N0X2NvbmRpdGlvbl90OwotdHlwZWRlZiB1aW50MzJfdCAgbWJlZHRsc19jdF91aW50X3Q7Ci10eXBlZGVmIGludDMyX3QgICBtYmVkdGxzX2N0X2ludF90OwotI2RlZmluZSBNQkVEVExTX0NUX1NJWkVfMzIKLSNkZWZpbmUgTUJFRFRMU19DVF9UUlVFICAoKG1iZWR0bHNfY3RfY29uZGl0aW9uX3QpIG1iZWR0bHNfY3RfY29tcGlsZXJfb3BhcXVlKFVJTlQzMl9NQVgpKQotI2VuZGlmCi0jZGVmaW5lIE1CRURUTFNfQ1RfRkFMU0UgKChtYmVkdGxzX2N0X2NvbmRpdGlvbl90KSBtYmVkdGxzX2N0X2NvbXBpbGVyX29wYXF1ZSgwKSkKLQotLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotICogQm9vbGVhbiBvcGVyYXRpb25zCi0gKi8KLQotLyoqIENvbnZlcnQgYSBudW1iZXIgaW50byBhIG1iZWR0bHNfY3RfY29uZGl0aW9uX3QuCi0gKgotICogXHBhcmFtIHggTnVtYmVyIHRvIGNvbnZlcnQuCi0gKgotICogXHJldHVybiBNQkVEVExTX0NUX1RSVUUgaWYgXHAgeCAhPSAwLCBvciBNQkVEVExTX0NUX0ZBTFNFIGlmIFxwIHggPT0gMAotICoKLSAqLwotc3RhdGljIGlubGluZSBtYmVkdGxzX2N0X2NvbmRpdGlvbl90IG1iZWR0bHNfY3RfYm9vbChtYmVkdGxzX2N0X3VpbnRfdCB4KTsKLQotLyoqIEJvb2xlYW4gIm5vdCBlcXVhbCIgb3BlcmF0aW9uLgotICoKLSAqIEZ1bmN0aW9uYWxseSBlcXVpdmFsZW50IHRvOgotICoKLSAqIFxwIHggIT0gXHAgeQotICoKLSAqIFxwYXJhbSB4ICAgICBUaGUgZmlyc3QgdmFsdWUgdG8gYW5hbHl6ZS4KLSAqIFxwYXJhbSB5ICAgICBUaGUgc2Vjb25kIHZhbHVlIHRvIGFuYWx5emUuCi0gKgotICogXHJldHVybiAgICAgIE1CRURUTFNfQ1RfVFJVRSBpZiBccCB4ICE9IFxwIHksIG90aGVyd2lzZSBNQkVEVExTX0NUX0ZBTFNFLgotICovCi1zdGF0aWMgaW5saW5lIG1iZWR0bHNfY3RfY29uZGl0aW9uX3QgbWJlZHRsc19jdF91aW50X25lKG1iZWR0bHNfY3RfdWludF90IHgsIG1iZWR0bHNfY3RfdWludF90IHkpOwotCi0vKiogQm9vbGVhbiAiZXF1YWxzIiBvcGVyYXRpb24uCi0gKgotICogRnVuY3Rpb25hbGx5IGVxdWl2YWxlbnQgdG86Ci0gKgotICogXHAgeCA9PSBccCB5Ci0gKgotICogXHBhcmFtIHggICAgIFRoZSBmaXJzdCB2YWx1ZSB0byBhbmFseXplLgotICogXHBhcmFtIHkgICAgIFRoZSBzZWNvbmQgdmFsdWUgdG8gYW5hbHl6ZS4KLSAqCi0gKiBccmV0dXJuICAgICAgTUJFRFRMU19DVF9UUlVFIGlmIFxwIHggPT0gXHAgeSwgb3RoZXJ3aXNlIE1CRURUTFNfQ1RfRkFMU0UuCi0gKi8KLXN0YXRpYyBpbmxpbmUgbWJlZHRsc19jdF9jb25kaXRpb25fdCBtYmVkdGxzX2N0X3VpbnRfZXEobWJlZHRsc19jdF91aW50X3QgeCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWJlZHRsc19jdF91aW50X3QgeSk7Ci0KLS8qKiBCb29sZWFuICJsZXNzIHRoYW4iIG9wZXJhdGlvbi4KLSAqCi0gKiBGdW5jdGlvbmFsbHkgZXF1aXZhbGVudCB0bzoKLSAqCi0gKiBccCB4IDwgXHAgeQotICoKLSAqIFxwYXJhbSB4ICAgICBUaGUgZmlyc3QgdmFsdWUgdG8gYW5hbHl6ZS4KLSAqIFxwYXJhbSB5ICAgICBUaGUgc2Vjb25kIHZhbHVlIHRvIGFuYWx5emUuCi0gKgotICogXHJldHVybiAgICAgIE1CRURUTFNfQ1RfVFJVRSBpZiBccCB4IDwgXHAgeSwgb3RoZXJ3aXNlIE1CRURUTFNfQ1RfRkFMU0UuCi0gKi8KLXN0YXRpYyBpbmxpbmUgbWJlZHRsc19jdF9jb25kaXRpb25fdCBtYmVkdGxzX2N0X3VpbnRfbHQobWJlZHRsc19jdF91aW50X3QgeCwgbWJlZHRsc19jdF91aW50X3QgeSk7Ci0KLS8qKiBCb29sZWFuICJncmVhdGVyIHRoYW4iIG9wZXJhdGlvbi4KLSAqCi0gKiBGdW5jdGlvbmFsbHkgZXF1aXZhbGVudCB0bzoKLSAqCi0gKiBccCB4ID4gXHAgeQotICoKLSAqIFxwYXJhbSB4ICAgICBUaGUgZmlyc3QgdmFsdWUgdG8gYW5hbHl6ZS4KLSAqIFxwYXJhbSB5ICAgICBUaGUgc2Vjb25kIHZhbHVlIHRvIGFuYWx5emUuCi0gKgotICogXHJldHVybiAgICAgIE1CRURUTFNfQ1RfVFJVRSBpZiBccCB4ID4gXHAgeSwgb3RoZXJ3aXNlIE1CRURUTFNfQ1RfRkFMU0UuCi0gKi8KLXN0YXRpYyBpbmxpbmUgbWJlZHRsc19jdF9jb25kaXRpb25fdCBtYmVkdGxzX2N0X3VpbnRfZ3QobWJlZHRsc19jdF91aW50X3QgeCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWJlZHRsc19jdF91aW50X3QgeSk7Ci0KLS8qKiBCb29sZWFuICJncmVhdGVyIG9yIGVxdWFsIiBvcGVyYXRpb24uCi0gKgotICogRnVuY3Rpb25hbGx5IGVxdWl2YWxlbnQgdG86Ci0gKgotICogXHAgeCA+PSBccCB5Ci0gKgotICogXHBhcmFtIHggICAgIFRoZSBmaXJzdCB2YWx1ZSB0byBhbmFseXplLgotICogXHBhcmFtIHkgICAgIFRoZSBzZWNvbmQgdmFsdWUgdG8gYW5hbHl6ZS4KLSAqCi0gKiBccmV0dXJuICAgICAgTUJFRFRMU19DVF9UUlVFIGlmIFxwIHggPj0gXHAgeSwKLSAqICAgICAgICAgICAgICBvdGhlcndpc2UgTUJFRFRMU19DVF9GQUxTRS4KLSAqLwotc3RhdGljIGlubGluZSBtYmVkdGxzX2N0X2NvbmRpdGlvbl90IG1iZWR0bHNfY3RfdWludF9nZShtYmVkdGxzX2N0X3VpbnRfdCB4LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYmVkdGxzX2N0X3VpbnRfdCB5KTsKLQotLyoqIEJvb2xlYW4gImxlc3MgdGhhbiBvciBlcXVhbCIgb3BlcmF0aW9uLgotICoKLSAqIEZ1bmN0aW9uYWxseSBlcXVpdmFsZW50IHRvOgotICoKLSAqIFxwIHggPD0gXHAgeQotICoKLSAqIFxwYXJhbSB4ICAgICBUaGUgZmlyc3QgdmFsdWUgdG8gYW5hbHl6ZS4KLSAqIFxwYXJhbSB5ICAgICBUaGUgc2Vjb25kIHZhbHVlIHRvIGFuYWx5emUuCi0gKgotICogXHJldHVybiAgICAgIE1CRURUTFNfQ1RfVFJVRSBpZiBccCB4IDw9IFxwIHksCi0gKiAgICAgICAgICAgICAgb3RoZXJ3aXNlIE1CRURUTFNfQ1RfRkFMU0UuCi0gKi8KLXN0YXRpYyBpbmxpbmUgbWJlZHRsc19jdF9jb25kaXRpb25fdCBtYmVkdGxzX2N0X3VpbnRfbGUobWJlZHRsc19jdF91aW50X3QgeCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWJlZHRsc19jdF91aW50X3QgeSk7Ci0KLS8qKiBCb29sZWFuIG5vdC1lcXVhbHMgb3BlcmF0aW9uLgotICoKLSAqIEZ1bmN0aW9uYWxseSBlcXVpdmFsZW50IHRvOgotICoKLSAqIFxwIHggIT0gXHAgeQotICoKLSAqIFxwYXJhbSB4ICAgICBUaGUgZmlyc3QgdmFsdWUgdG8gYW5hbHl6ZS4KLSAqIFxwYXJhbSB5ICAgICBUaGUgc2Vjb25kIHZhbHVlIHRvIGFuYWx5emUuCi0gKgotICogXG5vdGUgICAgICAgIFRoaXMgaXMgbW9yZSBlZmZpY2llbnQgdGhhbiBtYmVkdGxzX2N0X3VpbnRfbmUgaWYgYm90aCBhcmd1bWVudHMgYXJlCi0gKiAgICAgICAgICAgICAgbWJlZHRsc19jdF9jb25kaXRpb25fdC4KLSAqCi0gKiBccmV0dXJuICAgICAgTUJFRFRMU19DVF9UUlVFIGlmIFxwIHggIT0gXHAgeSwKLSAqICAgICAgICAgICAgICBvdGhlcndpc2UgTUJFRFRMU19DVF9GQUxTRS4KLSAqLwotc3RhdGljIGlubGluZSBtYmVkdGxzX2N0X2NvbmRpdGlvbl90IG1iZWR0bHNfY3RfYm9vbF9uZShtYmVkdGxzX2N0X2NvbmRpdGlvbl90IHgsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1iZWR0bHNfY3RfY29uZGl0aW9uX3QgeSk7Ci0KLS8qKiBCb29sZWFuICJhbmQiIG9wZXJhdGlvbi4KLSAqCi0gKiBGdW5jdGlvbmFsbHkgZXF1aXZhbGVudCB0bzoKLSAqCi0gKiBccCB4ICYmIFxwIHkKLSAqCi0gKiBccGFyYW0geCAgICAgVGhlIGZpcnN0IHZhbHVlIHRvIGFuYWx5emUuCi0gKiBccGFyYW0geSAgICAgVGhlIHNlY29uZCB2YWx1ZSB0byBhbmFseXplLgotICoKLSAqIFxyZXR1cm4gICAgICBNQkVEVExTX0NUX1RSVUUgaWYgXHAgeCAmJiBccCB5LAotICogICAgICAgICAgICAgIG90aGVyd2lzZSBNQkVEVExTX0NUX0ZBTFNFLgotICovCi1zdGF0aWMgaW5saW5lIG1iZWR0bHNfY3RfY29uZGl0aW9uX3QgbWJlZHRsc19jdF9ib29sX2FuZChtYmVkdGxzX2N0X2NvbmRpdGlvbl90IHgsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYmVkdGxzX2N0X2NvbmRpdGlvbl90IHkpOwotCi0vKiogQm9vbGVhbiAib3IiIG9wZXJhdGlvbi4KLSAqCi0gKiBGdW5jdGlvbmFsbHkgZXF1aXZhbGVudCB0bzoKLSAqCi0gKiBccCB4IHx8IFxwIHkKLSAqCi0gKiBccGFyYW0geCAgICAgVGhlIGZpcnN0IHZhbHVlIHRvIGFuYWx5emUuCi0gKiBccGFyYW0geSAgICAgVGhlIHNlY29uZCB2YWx1ZSB0byBhbmFseXplLgotICoKLSAqIFxyZXR1cm4gICAgICBNQkVEVExTX0NUX1RSVUUgaWYgXHAgeCB8fCBccCB5LAotICogICAgICAgICAgICAgIG90aGVyd2lzZSBNQkVEVExTX0NUX0ZBTFNFLgotICovCi1zdGF0aWMgaW5saW5lIG1iZWR0bHNfY3RfY29uZGl0aW9uX3QgbWJlZHRsc19jdF9ib29sX29yKG1iZWR0bHNfY3RfY29uZGl0aW9uX3QgeCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWJlZHRsc19jdF9jb25kaXRpb25fdCB5KTsKLQotLyoqIEJvb2xlYW4gIm5vdCIgb3BlcmF0aW9uLgotICoKLSAqIEZ1bmN0aW9uYWxseSBlcXVpdmFsZW50IHRvOgotICoKLSAqICEgXHAgeAotICoKLSAqIFxwYXJhbSB4ICAgICBUaGUgdmFsdWUgdG8gaW52ZXJ0Ci0gKgotICogXHJldHVybiAgICAgIE1CRURUTFNfQ1RfRkFMU0UgaWYgXHAgeCwgb3RoZXJ3aXNlIE1CRURUTFNfQ1RfVFJVRS4KLSAqLwotc3RhdGljIGlubGluZSBtYmVkdGxzX2N0X2NvbmRpdGlvbl90IG1iZWR0bHNfY3RfYm9vbF9ub3QobWJlZHRsc19jdF9jb25kaXRpb25fdCB4KTsKLQotCi0vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0gKiBEYXRhIHNlbGVjdGlvbiBvcGVyYXRpb25zCi0gKi8KLQotLyoqIENob29zZSBiZXR3ZWVuIHR3byBzaXplX3QgdmFsdWVzLgotICoKLSAqIEZ1bmN0aW9uYWxseSBlcXVpdmFsZW50IHRvOgotICoKLSAqIGNvbmRpdGlvbiA/IGlmMSA6IGlmMC4KLSAqCi0gKiBccGFyYW0gY29uZGl0aW9uICAgICBDb25kaXRpb24gdG8gdGVzdC4KLSAqIFxwYXJhbSBpZjEgICAgICAgICAgIFZhbHVlIHRvIHVzZSBpZiBccCBjb25kaXRpb24gPT0gTUJFRFRMU19DVF9UUlVFLgotICogXHBhcmFtIGlmMCAgICAgICAgICAgVmFsdWUgdG8gdXNlIGlmIFxwIGNvbmRpdGlvbiA9PSBNQkVEVExTX0NUX0ZBTFNFLgotICoKLSAqIFxyZXR1cm4gIFxjIGlmMSBpZiBccCBjb25kaXRpb24gPT0gTUJFRFRMU19DVF9UUlVFLCBvdGhlcndpc2UgXGMgaWYwLgotICovCi1zdGF0aWMgaW5saW5lIHNpemVfdCBtYmVkdGxzX2N0X3NpemVfaWYobWJlZHRsc19jdF9jb25kaXRpb25fdCBjb25kaXRpb24sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IGlmMSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgaWYwKTsKLQotLyoqIENob29zZSBiZXR3ZWVuIHR3byB1bnNpZ25lZCB2YWx1ZXMuCi0gKgotICogRnVuY3Rpb25hbGx5IGVxdWl2YWxlbnQgdG86Ci0gKgotICogY29uZGl0aW9uID8gaWYxIDogaWYwLgotICoKLSAqIFxwYXJhbSBjb25kaXRpb24gICAgIENvbmRpdGlvbiB0byB0ZXN0LgotICogXHBhcmFtIGlmMSAgICAgICAgICAgVmFsdWUgdG8gdXNlIGlmIFxwIGNvbmRpdGlvbiA9PSBNQkVEVExTX0NUX1RSVUUuCi0gKiBccGFyYW0gaWYwICAgICAgICAgICBWYWx1ZSB0byB1c2UgaWYgXHAgY29uZGl0aW9uID09IE1CRURUTFNfQ1RfRkFMU0UuCi0gKgotICogXHJldHVybiAgXGMgaWYxIGlmIFxwIGNvbmRpdGlvbiA9PSBNQkVEVExTX0NUX1RSVUUsIG90aGVyd2lzZSBcYyBpZjAuCi0gKi8KLXN0YXRpYyBpbmxpbmUgdW5zaWduZWQgbWJlZHRsc19jdF91aW50X2lmKG1iZWR0bHNfY3RfY29uZGl0aW9uX3QgY29uZGl0aW9uLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaWYxLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaWYwKTsKLQotLyoqIENob29zZSBiZXR3ZWVuIHR3byBtYmVkdGxzX2N0X2NvbmRpdGlvbl90IHZhbHVlcy4KLSAqCi0gKiBGdW5jdGlvbmFsbHkgZXF1aXZhbGVudCB0bzoKLSAqCi0gKiBjb25kaXRpb24gPyBpZjEgOiBpZjAuCi0gKgotICogXHBhcmFtIGNvbmRpdGlvbiAgICAgQ29uZGl0aW9uIHRvIHRlc3QuCi0gKiBccGFyYW0gaWYxICAgICAgICAgICBWYWx1ZSB0byB1c2UgaWYgXHAgY29uZGl0aW9uID09IE1CRURUTFNfQ1RfVFJVRS4KLSAqIFxwYXJhbSBpZjAgICAgICAgICAgIFZhbHVlIHRvIHVzZSBpZiBccCBjb25kaXRpb24gPT0gTUJFRFRMU19DVF9GQUxTRS4KLSAqCi0gKiBccmV0dXJuICBcYyBpZjEgaWYgXHAgY29uZGl0aW9uID09IE1CRURUTFNfQ1RfVFJVRSwgb3RoZXJ3aXNlIFxjIGlmMC4KLSAqLwotc3RhdGljIGlubGluZSBtYmVkdGxzX2N0X2NvbmRpdGlvbl90IG1iZWR0bHNfY3RfYm9vbF9pZihtYmVkdGxzX2N0X2NvbmRpdGlvbl90IGNvbmRpdGlvbiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWJlZHRsc19jdF9jb25kaXRpb25fdCBpZjEsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1iZWR0bHNfY3RfY29uZGl0aW9uX3QgaWYwKTsKLQotI2lmIGRlZmluZWQoTUJFRFRMU19CSUdOVU1fQykKLQotLyoqIENob29zZSBiZXR3ZWVuIHR3byBtYmVkdGxzX21waV91aW50IHZhbHVlcy4KLSAqCi0gKiBGdW5jdGlvbmFsbHkgZXF1aXZhbGVudCB0bzoKLSAqCi0gKiBjb25kaXRpb24gPyBpZjEgOiBpZjAuCi0gKgotICogXHBhcmFtIGNvbmRpdGlvbiAgICAgQ29uZGl0aW9uIHRvIHRlc3QuCi0gKiBccGFyYW0gaWYxICAgICAgICAgICBWYWx1ZSB0byB1c2UgaWYgXHAgY29uZGl0aW9uID09IE1CRURUTFNfQ1RfVFJVRS4KLSAqIFxwYXJhbSBpZjAgICAgICAgICAgIFZhbHVlIHRvIHVzZSBpZiBccCBjb25kaXRpb24gPT0gTUJFRFRMU19DVF9GQUxTRS4KLSAqCi0gKiBccmV0dXJuICBcYyBpZjEgaWYgXHAgY29uZGl0aW9uID09IE1CRURUTFNfQ1RfVFJVRSwgb3RoZXJ3aXNlIFxjIGlmMC4KLSAqLwotc3RhdGljIGlubGluZSBtYmVkdGxzX21waV91aW50IG1iZWR0bHNfY3RfbXBpX3VpbnRfaWYobWJlZHRsc19jdF9jb25kaXRpb25fdCBjb25kaXRpb24sIFwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1iZWR0bHNfbXBpX3VpbnQgaWYxLCBcCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYmVkdGxzX21waV91aW50IGlmMCk7Ci0KLSNlbmRpZgotCi0vKiogQ2hvb3NlIGJldHdlZW4gYW4gdW5zaWduZWQgdmFsdWUgYW5kIDAuCi0gKgotICogRnVuY3Rpb25hbGx5IGVxdWl2YWxlbnQgdG86Ci0gKgotICogY29uZGl0aW9uID8gaWYxIDogMC4KLSAqCi0gKiBGdW5jdGlvbmFsbHkgZXF1aXZhbGVudCB0byBtYmVkdGxzX2N0X3VpbnRfaWYoY29uZGl0aW9uLCBpZjEsIDApIGJ1dAotICogcmVzdWx0cyBpbiBzbWFsbGVyIGNvZGUgc2l6ZS4KLSAqCi0gKiBccGFyYW0gY29uZGl0aW9uICAgICBDb25kaXRpb24gdG8gdGVzdC4KLSAqIFxwYXJhbSBpZjEgICAgICAgICAgIFZhbHVlIHRvIHVzZSBpZiBccCBjb25kaXRpb24gPT0gTUJFRFRMU19DVF9UUlVFLgotICoKLSAqIFxyZXR1cm4gIFxjIGlmMSBpZiBccCBjb25kaXRpb24gPT0gTUJFRFRMU19DVF9UUlVFLCBvdGhlcndpc2UgMC4KLSAqLwotc3RhdGljIGlubGluZSB1bnNpZ25lZCBtYmVkdGxzX2N0X3VpbnRfaWZfZWxzZV8wKG1iZWR0bHNfY3RfY29uZGl0aW9uX3QgY29uZGl0aW9uLCB1bnNpZ25lZCBpZjEpOwotCi0vKiogQ2hvb3NlIGJldHdlZW4gYW4gbWJlZHRsc19jdF9jb25kaXRpb25fdCBhbmQgMC4KLSAqCi0gKiBGdW5jdGlvbmFsbHkgZXF1aXZhbGVudCB0bzoKLSAqCi0gKiBjb25kaXRpb24gPyBpZjEgOiAwLgotICoKLSAqIEZ1bmN0aW9uYWxseSBlcXVpdmFsZW50IHRvIG1iZWR0bHNfY3RfYm9vbF9pZihjb25kaXRpb24sIGlmMSwgMCkgYnV0Ci0gKiByZXN1bHRzIGluIHNtYWxsZXIgY29kZSBzaXplLgotICoKLSAqIFxwYXJhbSBjb25kaXRpb24gICAgIENvbmRpdGlvbiB0byB0ZXN0LgotICogXHBhcmFtIGlmMSAgICAgICAgICAgVmFsdWUgdG8gdXNlIGlmIFxwIGNvbmRpdGlvbiA9PSBNQkVEVExTX0NUX1RSVUUuCi0gKgotICogXHJldHVybiAgXGMgaWYxIGlmIFxwIGNvbmRpdGlvbiA9PSBNQkVEVExTX0NUX1RSVUUsIG90aGVyd2lzZSAwLgotICovCi1zdGF0aWMgaW5saW5lIG1iZWR0bHNfY3RfY29uZGl0aW9uX3QgbWJlZHRsc19jdF9ib29sX2lmX2Vsc2VfMChtYmVkdGxzX2N0X2NvbmRpdGlvbl90IGNvbmRpdGlvbiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1iZWR0bHNfY3RfY29uZGl0aW9uX3QgaWYxKTsKLQotLyoqIENob29zZSBiZXR3ZWVuIGEgc2l6ZV90IHZhbHVlIGFuZCAwLgotICoKLSAqIEZ1bmN0aW9uYWxseSBlcXVpdmFsZW50IHRvOgotICoKLSAqIGNvbmRpdGlvbiA/IGlmMSA6IDAuCi0gKgotICogRnVuY3Rpb25hbGx5IGVxdWl2YWxlbnQgdG8gbWJlZHRsc19jdF9zaXplX2lmKGNvbmRpdGlvbiwgaWYxLCAwKSBidXQKLSAqIHJlc3VsdHMgaW4gc21hbGxlciBjb2RlIHNpemUuCi0gKgotICogXHBhcmFtIGNvbmRpdGlvbiAgICAgQ29uZGl0aW9uIHRvIHRlc3QuCi0gKiBccGFyYW0gaWYxICAgICAgICAgICBWYWx1ZSB0byB1c2UgaWYgXHAgY29uZGl0aW9uID09IE1CRURUTFNfQ1RfVFJVRS4KLSAqCi0gKiBccmV0dXJuICBcYyBpZjEgaWYgXHAgY29uZGl0aW9uID09IE1CRURUTFNfQ1RfVFJVRSwgb3RoZXJ3aXNlIDAuCi0gKi8KLXN0YXRpYyBpbmxpbmUgc2l6ZV90IG1iZWR0bHNfY3Rfc2l6ZV9pZl9lbHNlXzAobWJlZHRsc19jdF9jb25kaXRpb25fdCBjb25kaXRpb24sIHNpemVfdCBpZjEpOwotCi0jaWYgZGVmaW5lZChNQkVEVExTX0JJR05VTV9DKQotCi0vKiogQ2hvb3NlIGJldHdlZW4gYW4gbWJlZHRsc19tcGlfdWludCB2YWx1ZSBhbmQgMC4KLSAqCi0gKiBGdW5jdGlvbmFsbHkgZXF1aXZhbGVudCB0bzoKLSAqCi0gKiBjb25kaXRpb24gPyBpZjEgOiAwLgotICoKLSAqIEZ1bmN0aW9uYWxseSBlcXVpdmFsZW50IHRvIG1iZWR0bHNfY3RfbXBpX3VpbnRfaWYoY29uZGl0aW9uLCBpZjEsIDApIGJ1dAotICogcmVzdWx0cyBpbiBzbWFsbGVyIGNvZGUgc2l6ZS4KLSAqCi0gKiBccGFyYW0gY29uZGl0aW9uICAgICBDb25kaXRpb24gdG8gdGVzdC4KLSAqIFxwYXJhbSBpZjEgICAgICAgICAgIFZhbHVlIHRvIHVzZSBpZiBccCBjb25kaXRpb24gPT0gTUJFRFRMU19DVF9UUlVFLgotICoKLSAqIFxyZXR1cm4gIFxjIGlmMSBpZiBccCBjb25kaXRpb24gPT0gTUJFRFRMU19DVF9UUlVFLCBvdGhlcndpc2UgMC4KLSAqLwotc3RhdGljIGlubGluZSBtYmVkdGxzX21waV91aW50IG1iZWR0bHNfY3RfbXBpX3VpbnRfaWZfZWxzZV8wKG1iZWR0bHNfY3RfY29uZGl0aW9uX3QgY29uZGl0aW9uLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1iZWR0bHNfbXBpX3VpbnQgaWYxKTsKLQotI2VuZGlmCi0KLS8qKiBDb25zdGFudC1mbG93IGNoYXIgc2VsZWN0aW9uCi0gKgotICogXHBhcmFtIGxvdyAgIFNlY3JldC4gQm90dG9tIG9mIHJhbmdlCi0gKiBccGFyYW0gaGlnaCAgU2VjcmV0LiBUb3Agb2YgcmFuZ2UKLSAqIFxwYXJhbSBjICAgICBTZWNyZXQuIFZhbHVlIHRvIGNvbXBhcmUgdG8gcmFuZ2UKLSAqIFxwYXJhbSB0ICAgICBTZWNyZXQuIFZhbHVlIHRvIHJldHVybiwgaWYgaW4gcmFuZ2UKLSAqCi0gKiBccmV0dXJuICAgICAgXHAgdCBpZiBccCBsb3cgPD0gXHAgYyA8PSBccCBoaWdoLCAwIG90aGVyd2lzZS4KLSAqLwotc3RhdGljIGlubGluZSB1bnNpZ25lZCBjaGFyIG1iZWR0bHNfY3RfdWNoYXJfaW5fcmFuZ2VfaWYodW5zaWduZWQgY2hhciBsb3csCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBjaGFyIGhpZ2gsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBjaGFyIGMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBjaGFyIHQpOwotCi0vKiogQ2hvb3NlIGJldHdlZW4gdHdvIGVycm9yIHZhbHVlcy4gVGhlIHZhbHVlcyBtdXN0IGJlIGluIHRoZSByYW5nZSBbLTMyNzY3Li4wXS4KLSAqCi0gKiBGdW5jdGlvbmFsbHkgZXF1aXZhbGVudCB0bzoKLSAqCi0gKiBjb25kaXRpb24gPyBpZjEgOiBpZjAuCi0gKgotICogXHBhcmFtIGNvbmRpdGlvbiAgICAgQ29uZGl0aW9uIHRvIHRlc3QuCi0gKiBccGFyYW0gaWYxICAgICAgICAgICBWYWx1ZSB0byB1c2UgaWYgXHAgY29uZGl0aW9uID09IE1CRURUTFNfQ1RfVFJVRS4KLSAqIFxwYXJhbSBpZjAgICAgICAgICAgIFZhbHVlIHRvIHVzZSBpZiBccCBjb25kaXRpb24gPT0gTUJFRFRMU19DVF9GQUxTRS4KLSAqCi0gKiBccmV0dXJuICBcYyBpZjEgaWYgXHAgY29uZGl0aW9uID09IE1CRURUTFNfQ1RfVFJVRSwgb3RoZXJ3aXNlIFxjIGlmMC4KLSAqLwotc3RhdGljIGlubGluZSBpbnQgbWJlZHRsc19jdF9lcnJvcl9pZihtYmVkdGxzX2N0X2NvbmRpdGlvbl90IGNvbmRpdGlvbiwgaW50IGlmMSwgaW50IGlmMCk7Ci0KLS8qKiBDaG9vc2UgYmV0d2VlbiBhbiBlcnJvciB2YWx1ZSBhbmQgMC4gVGhlIGVycm9yIHZhbHVlIG11c3QgYmUgaW4gdGhlIHJhbmdlIFstMzI3NjcuLjBdLgotICoKLSAqIEZ1bmN0aW9uYWxseSBlcXVpdmFsZW50IHRvOgotICoKLSAqIGNvbmRpdGlvbiA/IGlmMSA6IDAuCi0gKgotICogRnVuY3Rpb25hbGx5IGVxdWl2YWxlbnQgdG8gbWJlZHRsc19jdF9lcnJvcl9pZihjb25kaXRpb24sIGlmMSwgMCkgYnV0Ci0gKiByZXN1bHRzIGluIHNtYWxsZXIgY29kZSBzaXplLgotICoKLSAqIFxwYXJhbSBjb25kaXRpb24gICAgIENvbmRpdGlvbiB0byB0ZXN0LgotICogXHBhcmFtIGlmMSAgICAgICAgICAgVmFsdWUgdG8gdXNlIGlmIFxwIGNvbmRpdGlvbiA9PSBNQkVEVExTX0NUX1RSVUUuCi0gKgotICogXHJldHVybiAgXGMgaWYxIGlmIFxwIGNvbmRpdGlvbiA9PSBNQkVEVExTX0NUX1RSVUUsIG90aGVyd2lzZSAwLgotICovCi1zdGF0aWMgaW5saW5lIGludCBtYmVkdGxzX2N0X2Vycm9yX2lmX2Vsc2VfMChtYmVkdGxzX2N0X2NvbmRpdGlvbl90IGNvbmRpdGlvbiwgaW50IGlmMSk7Ci0KLS8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLSAqIEJsb2NrIG1lbW9yeSBvcGVyYXRpb25zCi0gKi8KLQotI2lmIGRlZmluZWQoTUJFRFRMU19QS0NTMV9WMTUpICYmIGRlZmluZWQoTUJFRFRMU19SU0FfQykgJiYgIWRlZmluZWQoTUJFRFRMU19SU0FfQUxUKQotCi0vKiogQ29uZGl0aW9uYWxseSBzZXQgYSBibG9jayBvZiBtZW1vcnkgdG8gemVyby4KLSAqCi0gKiBSZWdhcmRsZXNzIG9mIHRoZSBjb25kaXRpb24sIGV2ZXJ5IGJ5dGUgd2lsbCBiZSByZWFkIG9uY2UgYW5kIHdyaXR0ZW4gdG8KLSAqIG9uY2UuCi0gKgotICogXHBhcmFtIGNvbmRpdGlvbiAgICAgU2VjcmV0LiBDb25kaXRpb24gdG8gdGVzdC4KLSAqIFxwYXJhbSBidWYgICAgICAgICAgIFNlY3JldC4gUG9pbnRlciB0byB0aGUgc3RhcnQgb2YgdGhlIGJ1ZmZlci4KLSAqIFxwYXJhbSBsZW4gICAgICAgICAgIE51bWJlciBvZiBieXRlcyB0byBzZXQgdG8gemVyby4KLSAqCi0gKiBcd2FybmluZyBVbmxpa2UgbWJlZHRsc19wbGF0Zm9ybV96ZXJvaXplLCB0aGlzIGRvZXMgbm90IGhhdmUgdGhlIHNhbWUgZ3VhcmFudGVlcwotICogYWJvdXQgbm90IGJlaW5nIG9wdGltaXNlZCBhd2F5IGlmIHRoZSBtZW1vcnkgaXMgbmV2ZXIgcmVhZCBhZ2Fpbi4KLSAqLwotdm9pZCBtYmVkdGxzX2N0X3plcm9pemVfaWYobWJlZHRsc19jdF9jb25kaXRpb25fdCBjb25kaXRpb24sIHZvaWQgKmJ1Ziwgc2l6ZV90IGxlbik7Ci0KLS8qKiBTaGlmdCBzb21lIGRhdGEgdG93YXJkcyB0aGUgbGVmdCBpbnNpZGUgYSBidWZmZXIuCi0gKgotICogRnVuY3Rpb25hbGx5IGVxdWl2YWxlbnQgdG86Ci0gKgotICogbWVtbW92ZShzdGFydCwgc3RhcnQgKyBvZmZzZXQsIHRvdGFsIC0gb2Zmc2V0KTsKLSAqIG1lbXNldChzdGFydCArICh0b3RhbCAtIG9mZnNldCksIDAsIG9mZnNldCk7Ci0gKgotICogVGltaW5nIGluZGVwZW5kZW5jZSBjb21lcyBhdCB0aGUgZXhwZW5zZSBvZiBwZXJmb3JtYW5jZS4KLSAqCi0gKiBccGFyYW0gc3RhcnQgICAgIFNlY3JldC4gUG9pbnRlciB0byB0aGUgc3RhcnQgb2YgdGhlIGJ1ZmZlci4KLSAqIFxwYXJhbSB0b3RhbCAgICAgVG90YWwgc2l6ZSBvZiB0aGUgYnVmZmVyLgotICogXHBhcmFtIG9mZnNldCAgICBTZWNyZXQuIE9mZnNldCBmcm9tIHdoaWNoIHRvIGNvcHkgXHAgdG90YWwgLSBccCBvZmZzZXQgYnl0ZXMuCi0gKi8KLXZvaWQgbWJlZHRsc19jdF9tZW1tb3ZlX2xlZnQodm9pZCAqc3RhcnQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCB0b3RhbCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IG9mZnNldCk7Ci0KLSNlbmRpZiAvKiBkZWZpbmVkKE1CRURUTFNfUEtDUzFfVjE1KSAmJiBkZWZpbmVkKE1CRURUTFNfUlNBX0MpICYmICFkZWZpbmVkKE1CRURUTFNfUlNBX0FMVCkgKi8KLQotLyoqIENvbmRpdGlvbmFsIG1lbWNweS4KLSAqCi0gKiBGdW5jdGlvbmFsbHkgZXF1aXZhbGVudCB0bzoKLSAqCi0gKiBpZiAoY29uZGl0aW9uKSB7Ci0gKiAgICAgIG1lbWNweShkZXN0LCBzcmMxLCBsZW4pOwotICogfSBlbHNlIHsKLSAqICAgICAgaWYgKHNyYzIgIT0gTlVMTCkKLSAqICAgICAgICAgIG1lbWNweShkZXN0LCBzcmMyLCBsZW4pOwotICogfQotICoKLSAqIEl0IHdpbGwgYWx3YXlzIHJlYWQgbGVuIGJ5dGVzIGZyb20gc3JjMS4KLSAqIElmIHNyYzIgIT0gTlVMTCwgaXQgd2lsbCBhbHdheXMgcmVhZCBsZW4gYnl0ZXMgZnJvbSBzcmMyLgotICogSWYgc3JjMiA9PSBOVUxMLCBpdCB3aWxsIGluc3RlYWQgcmVhZCBsZW4gYnl0ZXMgZnJvbSBkZXN0IChhcyBpZiBzcmMyID09IGRlc3QpLgotICoKLSAqIFxwYXJhbSBjb25kaXRpb24gVGhlIGNvbmRpdGlvbgotICogXHBhcmFtIGRlc3QgICAgICBTZWNyZXQuIERlc3RpbmF0aW9uIHBvaW50ZXIuCi0gKiBccGFyYW0gc3JjMSAgICAgIFNlY3JldC4gUG9pbnRlciB0byBjb3B5IGZyb20gKGlmIFxwIGNvbmRpdGlvbiA9PSBNQkVEVExTX0NUX1RSVUUpLgotICogICAgICAgICAgICAgICAgICBUaGlzIG1heSBiZSBlcXVhbCB0byBccCBkZXN0LCBidXQgbWF5IG5vdCBvdmVybGFwIGluIG90aGVyIHdheXMuCi0gKiBccGFyYW0gc3JjMiAgICAgIFNlY3JldCAoY29udGVudHMgb25seSAtIG1heSBicmFuY2ggdG8gZGV0ZXJtaW5lIGlmIHRoaXMgcGFyYW1ldGVyIGlzIE5VTEwpLgotICogICAgICAgICAgICAgICAgICBQb2ludGVyIHRvIGNvcHkgZnJvbSAoaWYgXHAgY29uZGl0aW9uID09IE1CRURUTFNfQ1RfRkFMU0UgYW5kIFxwIHNyYzIgaXMgbm90IE5VTEwpLiBNYXkgYmUgTlVMTC4KLSAqICAgICAgICAgICAgICAgICAgVGhpcyBtYXkgYmUgZXF1YWwgdG8gXHAgZGVzdCwgYnV0IG1heSBub3Qgb3ZlcmxhcCBpdCBpbiBvdGhlciB3YXlzLiBJdCBtYXkgb3ZlcmxhcCB3aXRoIFxwIHNyYzEuCi0gKiBccGFyYW0gbGVuICAgICAgIE51bWJlciBvZiBieXRlcyB0byBjb3B5LgotICovCi12b2lkIG1iZWR0bHNfY3RfbWVtY3B5X2lmKG1iZWR0bHNfY3RfY29uZGl0aW9uX3QgY29uZGl0aW9uLAotICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBjaGFyICpkZXN0LAotICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1bnNpZ25lZCBjaGFyICpzcmMxLAotICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1bnNpZ25lZCBjaGFyICpzcmMyLAotICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgbGVuCi0gICAgICAgICAgICAgICAgICAgICAgICAgICk7Ci0KLS8qKiBDb3B5IGRhdGEgZnJvbSBhIHNlY3JldCBwb3NpdGlvbi4KLSAqCi0gKiBGdW5jdGlvbmFsbHkgZXF1aXZhbGVudCB0bzoKLSAqCi0gKiBtZW1jcHkoZHN0LCBzcmMgKyBvZmZzZXQsIGxlbikKLSAqCi0gKiBUaGlzIGZ1bmN0aW9uIGNvcGllcyBccCBsZW4gYnl0ZXMgZnJvbSBccCBzcmMgKyBccCBvZmZzZXQgdG8KLSAqIFxwIGRzdCwgd2l0aCBhIGNvZGUgZmxvdyBhbmQgbWVtb3J5IGFjY2VzcyBwYXR0ZXJuIHRoYXQgZG9lcyBub3QgZGVwZW5kIG9uCi0gKiBccCBvZmZzZXQsIGJ1dCBvbmx5IG9uIFxwIG9mZnNldF9taW4sIFxwIG9mZnNldF9tYXggYW5kIFxwIGxlbi4KLSAqCi0gKiBcbm90ZSAgICAgICAgICAgICAgICBUaGlzIGZ1bmN0aW9uIHJlYWRzIGZyb20gXHAgZGVzdCwgYnV0IHRoZSB2YWx1ZSB0aGF0Ci0gKiAgICAgICAgICAgICAgICAgICAgICBpcyByZWFkIGRvZXMgbm90IGluZmx1ZW5jZSB0aGUgcmVzdWx0IGFuZCB0aGlzCi0gKiAgICAgICAgICAgICAgICAgICAgICBmdW5jdGlvbidzIGJlaGF2aW9yIGlzIHdlbGwtZGVmaW5lZCByZWdhcmRsZXNzIG9mIHRoZQotICogICAgICAgICAgICAgICAgICAgICAgY29udGVudHMgb2YgdGhlIGJ1ZmZlcnMuIFRoaXMgbWF5IHJlc3VsdCBpbiBmYWxzZQotICogICAgICAgICAgICAgICAgICAgICAgcG9zaXRpdmVzIGZyb20gc3RhdGljIG9yIGR5bmFtaWMgYW5hbHl6ZXJzLCBlc3BlY2lhbGx5Ci0gKiAgICAgICAgICAgICAgICAgICAgICBpZiBccCBkZXN0IGlzIG5vdCBpbml0aWFsaXplZC4KLSAqCi0gKiBccGFyYW0gZGVzdCAgICAgICAgICBTZWNyZXQuIFRoZSBkZXN0aW5hdGlvbiBidWZmZXIuIFRoaXMgbXVzdCBwb2ludCB0byBhIHdyaXRhYmxlCi0gKiAgICAgICAgICAgICAgICAgICAgICBidWZmZXIgb2YgYXQgbGVhc3QgXHAgbGVuIGJ5dGVzLgotICogXHBhcmFtIHNyYyAgICAgICAgICAgU2VjcmV0LiBUaGUgYmFzZSBvZiB0aGUgc291cmNlIGJ1ZmZlci4gVGhpcyBtdXN0IHBvaW50IHRvIGEKLSAqICAgICAgICAgICAgICAgICAgICAgIHJlYWRhYmxlIGJ1ZmZlciBvZiBhdCBsZWFzdCBccCBvZmZzZXRfbWF4ICsgXHAgbGVuCi0gKiAgICAgICAgICAgICAgICAgICAgICBieXRlcy4gU2hvdWxkbid0IG92ZXJsYXAgd2l0aCBccCBkZXN0Ci0gKiBccGFyYW0gb2Zmc2V0ICAgICAgICBTZWNyZXQuIFRoZSBvZmZzZXQgaW4gdGhlIHNvdXJjZSBidWZmZXIgZnJvbSB3aGljaCB0byBjb3B5LgotICogICAgICAgICAgICAgICAgICAgICAgVGhpcyBtdXN0IGJlIG5vIGxlc3MgdGhhbiBccCBvZmZzZXRfbWluIGFuZCBubyBncmVhdGVyCi0gKiAgICAgICAgICAgICAgICAgICAgICB0aGFuIFxwIG9mZnNldF9tYXguCi0gKiBccGFyYW0gb2Zmc2V0X21pbiAgICBUaGUgbWluaW1hbCB2YWx1ZSBvZiBccCBvZmZzZXQuCi0gKiBccGFyYW0gb2Zmc2V0X21heCAgICBUaGUgbWF4aW1hbCB2YWx1ZSBvZiBccCBvZmZzZXQuCi0gKiBccGFyYW0gbGVuICAgICAgICAgICBUaGUgbnVtYmVyIG9mIGJ5dGVzIHRvIGNvcHkuCi0gKi8KLXZvaWQgbWJlZHRsc19jdF9tZW1jcHlfb2Zmc2V0KHVuc2lnbmVkIGNoYXIgKmRlc3QsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1bnNpZ25lZCBjaGFyICpzcmMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3Qgb2Zmc2V0LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IG9mZnNldF9taW4sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3Qgb2Zmc2V0X21heCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBsZW4pOwotCi0vKiBEb2N1bWVudGVkIGluIGluY2x1ZGUvbWJlZHRscy9jb25zdGFudF90aW1lLmguIGEgYW5kIGIgYXJlIHNlY3JldC4KLQotICAgaW50IG1iZWR0bHNfY3RfbWVtY21wKGNvbnN0IHZvaWQgKmEsCi0gICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgdm9pZCAqYiwKLSAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3Qgbik7Ci0gKi8KLQotI2lmIGRlZmluZWQoTUJFRFRMU19OSVNUX0tXX0MpCi0KLS8qKiBDb25zdGFudC10aW1lIGJ1ZmZlciBjb21wYXJpc29uIHdpdGhvdXQgYnJhbmNoZXMuCi0gKgotICogU2ltaWxhciB0byBtYmVkdGxzX2N0X21lbWNtcCwgZXhjZXB0IHRoYXQgdGhlIHJlc3VsdCBvbmx5IGRlcGVuZHMgb24gcGFydCBvZgotICogdGhlIGlucHV0IGRhdGEgLSBkaWZmZXJlbmNlcyBpbiB0aGUgaGVhZCBvciB0YWlsIGFyZSBpZ25vcmVkLiBGdW5jdGlvbmFsbHkgZXF1aXZhbGVudCB0bzoKLSAqCi0gKiBtZW1jbXAoYSArIHNraXBfaGVhZCwgYiArIHNraXBfaGVhZCwgc2l6ZSAtIHNraXBfaGVhZCAtIHNraXBfdGFpbCkKLSAqCi0gKiBUaW1lIHRha2VuIGRlcGVuZHMgb24gXHAgbiwgYnV0IG5vdCBvbiBccCBza2lwX2hlYWQgb3IgXHAgc2tpcF90YWlsIC4KLSAqCi0gKiBCZWhhdmlvdXIgaXMgdW5kZWZpbmVkIGlmICggXHAgc2tpcF9oZWFkICsgXHAgc2tpcF90YWlsKSA+IFxwIG4uCi0gKgotICogXHBhcmFtIGEgICAgICAgICBTZWNyZXQuIFBvaW50ZXIgdG8gdGhlIGZpcnN0IGJ1ZmZlciwgY29udGFpbmluZyBhdCBsZWFzdCBccCBuIGJ5dGVzLiBNYXkgbm90IGJlIE5VTEwuCi0gKiBccGFyYW0gYiAgICAgICAgIFNlY3JldC4gUG9pbnRlciB0byB0aGUgc2Vjb25kIGJ1ZmZlciwgY29udGFpbmluZyBhdCBsZWFzdCBccCBuIGJ5dGVzLiBNYXkgbm90IGJlIE5VTEwuCi0gKiBccGFyYW0gbiAgICAgICAgIFRoZSBudW1iZXIgb2YgYnl0ZXMgdG8gZXhhbWluZSAodG90YWwgc2l6ZSBvZiB0aGUgYnVmZmVycykuCi0gKiBccGFyYW0gc2tpcF9oZWFkIFNlY3JldC4gVGhlIG51bWJlciBvZiBieXRlcyB0byB0cmVhdCBhcyBub24tc2lnbmlmaWNhbnQgYXQgdGhlIHN0YXJ0IG9mIHRoZSBidWZmZXIuCi0gKiAgICAgICAgICAgICAgICAgIFRoZXNlIGJ5dGVzIHdpbGwgc3RpbGwgYmUgcmVhZC4KLSAqIFxwYXJhbSBza2lwX3RhaWwgU2VjcmV0LiBUaGUgbnVtYmVyIG9mIGJ5dGVzIHRvIHRyZWF0IGFzIG5vbi1zaWduaWZpY2FudCBhdCB0aGUgZW5kIG9mIHRoZSBidWZmZXIuCi0gKiAgICAgICAgICAgICAgICAgIFRoZXNlIGJ5dGVzIHdpbGwgc3RpbGwgYmUgcmVhZC4KLSAqCi0gKiBccmV0dXJuICAgICAgICAgIFplcm8gaWYgdGhlIGNvbnRlbnRzIG9mIHRoZSB0d28gYnVmZmVycyBhcmUgdGhlIHNhbWUsIG90aGVyd2lzZSBub24temVyby4KLSAqLwotaW50IG1iZWR0bHNfY3RfbWVtY21wX3BhcnRpYWwoY29uc3Qgdm9pZCAqYSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHZvaWQgKmIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgbiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBza2lwX2hlYWQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3Qgc2tpcF90YWlsKTsKLQotI2VuZGlmCi0KLS8qIEluY2x1ZGUgdGhlIGltcGxlbWVudGF0aW9uIG9mIHN0YXRpYyBpbmxpbmUgZnVuY3Rpb25zIGFib3ZlLiAqLwotI2luY2x1ZGUgImNvbnN0YW50X3RpbWVfaW1wbC5oIgotCi0jZW5kaWYgLyogTUJFRFRMU19DT05TVEFOVF9USU1FX0lOVEVSTkFMX0ggKi8KZGlmZiAtLWdpdCBhL2xpYnJhcnkvZGVzLmMgYi9saWJyYXJ5L2Rlcy5jCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmMDAzMmIzLi4wMDAwMDAwCi0tLSBhL2xpYnJhcnkvZGVzLmMKKysrIC9kZXYvbnVsbApAQCAtMSwxMDQyICswLDAgQEAKLS8qCi0gKiAgRklQUy00Ni0zIGNvbXBsaWFudCBUcmlwbGUtREVTIGltcGxlbWVudGF0aW9uCi0gKgotICogIENvcHlyaWdodCBUaGUgTWJlZCBUTFMgQ29udHJpYnV0b3JzCi0gKiAgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjAgT1IgR1BMLTIuMC1vci1sYXRlcgotICovCi0vKgotICogIERFUywgb24gd2hpY2ggVERFUyBpcyBiYXNlZCwgd2FzIG9yaWdpbmFsbHkgZGVzaWduZWQgYnkgSG9yc3QgRmVpc3RlbAotICogIGF0IElCTSBpbiAxOTc0LCBhbmQgd2FzIGFkb3B0ZWQgYXMgYSBzdGFuZGFyZCBieSBOSVNUIChmb3JtZXJseSBOQlMpLgotICoKLSAqICBodHRwOi8vY3NyYy5uaXN0Lmdvdi9wdWJsaWNhdGlvbnMvZmlwcy9maXBzNDYtMy9maXBzNDYtMy5wZGYKLSAqLwotCi0jaW5jbHVkZSAiY29tbW9uLmgiCi0KLSNpZiBkZWZpbmVkKE1CRURUTFNfREVTX0MpCi0KLSNpbmNsdWRlICJtYmVkdGxzL2Rlcy5oIgotI2luY2x1ZGUgIm1iZWR0bHMvZXJyb3IuaCIKLSNpbmNsdWRlICJtYmVkdGxzL3BsYXRmb3JtX3V0aWwuaCIKLQotI2luY2x1ZGUgPHN0cmluZy5oPgotCi0jaW5jbHVkZSAibWJlZHRscy9wbGF0Zm9ybS5oIgotCi0jaWYgIWRlZmluZWQoTUJFRFRMU19ERVNfQUxUKQotCi0vKgotICogRXhwYW5kZWQgREVTIFMtYm94ZXMKLSAqLwotc3RhdGljIGNvbnN0IHVpbnQzMl90IFNCMVs2NF0gPQotewotICAgIDB4MDEwMTA0MDAsIDB4MDAwMDAwMDAsIDB4MDAwMTAwMDAsIDB4MDEwMTA0MDQsCi0gICAgMHgwMTAxMDAwNCwgMHgwMDAxMDQwNCwgMHgwMDAwMDAwNCwgMHgwMDAxMDAwMCwKLSAgICAweDAwMDAwNDAwLCAweDAxMDEwNDAwLCAweDAxMDEwNDA0LCAweDAwMDAwNDAwLAotICAgIDB4MDEwMDA0MDQsIDB4MDEwMTAwMDQsIDB4MDEwMDAwMDAsIDB4MDAwMDAwMDQsCi0gICAgMHgwMDAwMDQwNCwgMHgwMTAwMDQwMCwgMHgwMTAwMDQwMCwgMHgwMDAxMDQwMCwKLSAgICAweDAwMDEwNDAwLCAweDAxMDEwMDAwLCAweDAxMDEwMDAwLCAweDAxMDAwNDA0LAotICAgIDB4MDAwMTAwMDQsIDB4MDEwMDAwMDQsIDB4MDEwMDAwMDQsIDB4MDAwMTAwMDQsCi0gICAgMHgwMDAwMDAwMCwgMHgwMDAwMDQwNCwgMHgwMDAxMDQwNCwgMHgwMTAwMDAwMCwKLSAgICAweDAwMDEwMDAwLCAweDAxMDEwNDA0LCAweDAwMDAwMDA0LCAweDAxMDEwMDAwLAotICAgIDB4MDEwMTA0MDAsIDB4MDEwMDAwMDAsIDB4MDEwMDAwMDAsIDB4MDAwMDA0MDAsCi0gICAgMHgwMTAxMDAwNCwgMHgwMDAxMDAwMCwgMHgwMDAxMDQwMCwgMHgwMTAwMDAwNCwKLSAgICAweDAwMDAwNDAwLCAweDAwMDAwMDA0LCAweDAxMDAwNDA0LCAweDAwMDEwNDA0LAotICAgIDB4MDEwMTA0MDQsIDB4MDAwMTAwMDQsIDB4MDEwMTAwMDAsIDB4MDEwMDA0MDQsCi0gICAgMHgwMTAwMDAwNCwgMHgwMDAwMDQwNCwgMHgwMDAxMDQwNCwgMHgwMTAxMDQwMCwKLSAgICAweDAwMDAwNDA0LCAweDAxMDAwNDAwLCAweDAxMDAwNDAwLCAweDAwMDAwMDAwLAotICAgIDB4MDAwMTAwMDQsIDB4MDAwMTA0MDAsIDB4MDAwMDAwMDAsIDB4MDEwMTAwMDQKLX07Ci0KLXN0YXRpYyBjb25zdCB1aW50MzJfdCBTQjJbNjRdID0KLXsKLSAgICAweDgwMTA4MDIwLCAweDgwMDA4MDAwLCAweDAwMDA4MDAwLCAweDAwMTA4MDIwLAotICAgIDB4MDAxMDAwMDAsIDB4MDAwMDAwMjAsIDB4ODAxMDAwMjAsIDB4ODAwMDgwMjAsCi0gICAgMHg4MDAwMDAyMCwgMHg4MDEwODAyMCwgMHg4MDEwODAwMCwgMHg4MDAwMDAwMCwKLSAgICAweDgwMDA4MDAwLCAweDAwMTAwMDAwLCAweDAwMDAwMDIwLCAweDgwMTAwMDIwLAotICAgIDB4MDAxMDgwMDAsIDB4MDAxMDAwMjAsIDB4ODAwMDgwMjAsIDB4MDAwMDAwMDAsCi0gICAgMHg4MDAwMDAwMCwgMHgwMDAwODAwMCwgMHgwMDEwODAyMCwgMHg4MDEwMDAwMCwKLSAgICAweDAwMTAwMDIwLCAweDgwMDAwMDIwLCAweDAwMDAwMDAwLCAweDAwMTA4MDAwLAotICAgIDB4MDAwMDgwMjAsIDB4ODAxMDgwMDAsIDB4ODAxMDAwMDAsIDB4MDAwMDgwMjAsCi0gICAgMHgwMDAwMDAwMCwgMHgwMDEwODAyMCwgMHg4MDEwMDAyMCwgMHgwMDEwMDAwMCwKLSAgICAweDgwMDA4MDIwLCAweDgwMTAwMDAwLCAweDgwMTA4MDAwLCAweDAwMDA4MDAwLAotICAgIDB4ODAxMDAwMDAsIDB4ODAwMDgwMDAsIDB4MDAwMDAwMjAsIDB4ODAxMDgwMjAsCi0gICAgMHgwMDEwODAyMCwgMHgwMDAwMDAyMCwgMHgwMDAwODAwMCwgMHg4MDAwMDAwMCwKLSAgICAweDAwMDA4MDIwLCAweDgwMTA4MDAwLCAweDAwMTAwMDAwLCAweDgwMDAwMDIwLAotICAgIDB4MDAxMDAwMjAsIDB4ODAwMDgwMjAsIDB4ODAwMDAwMjAsIDB4MDAxMDAwMjAsCi0gICAgMHgwMDEwODAwMCwgMHgwMDAwMDAwMCwgMHg4MDAwODAwMCwgMHgwMDAwODAyMCwKLSAgICAweDgwMDAwMDAwLCAweDgwMTAwMDIwLCAweDgwMTA4MDIwLCAweDAwMTA4MDAwCi19OwotCi1zdGF0aWMgY29uc3QgdWludDMyX3QgU0IzWzY0XSA9Ci17Ci0gICAgMHgwMDAwMDIwOCwgMHgwODAyMDIwMCwgMHgwMDAwMDAwMCwgMHgwODAyMDAwOCwKLSAgICAweDA4MDAwMjAwLCAweDAwMDAwMDAwLCAweDAwMDIwMjA4LCAweDA4MDAwMjAwLAotICAgIDB4MDAwMjAwMDgsIDB4MDgwMDAwMDgsIDB4MDgwMDAwMDgsIDB4MDAwMjAwMDAsCi0gICAgMHgwODAyMDIwOCwgMHgwMDAyMDAwOCwgMHgwODAyMDAwMCwgMHgwMDAwMDIwOCwKLSAgICAweDA4MDAwMDAwLCAweDAwMDAwMDA4LCAweDA4MDIwMjAwLCAweDAwMDAwMjAwLAotICAgIDB4MDAwMjAyMDAsIDB4MDgwMjAwMDAsIDB4MDgwMjAwMDgsIDB4MDAwMjAyMDgsCi0gICAgMHgwODAwMDIwOCwgMHgwMDAyMDIwMCwgMHgwMDAyMDAwMCwgMHgwODAwMDIwOCwKLSAgICAweDAwMDAwMDA4LCAweDA4MDIwMjA4LCAweDAwMDAwMjAwLCAweDA4MDAwMDAwLAotICAgIDB4MDgwMjAyMDAsIDB4MDgwMDAwMDAsIDB4MDAwMjAwMDgsIDB4MDAwMDAyMDgsCi0gICAgMHgwMDAyMDAwMCwgMHgwODAyMDIwMCwgMHgwODAwMDIwMCwgMHgwMDAwMDAwMCwKLSAgICAweDAwMDAwMjAwLCAweDAwMDIwMDA4LCAweDA4MDIwMjA4LCAweDA4MDAwMjAwLAotICAgIDB4MDgwMDAwMDgsIDB4MDAwMDAyMDAsIDB4MDAwMDAwMDAsIDB4MDgwMjAwMDgsCi0gICAgMHgwODAwMDIwOCwgMHgwMDAyMDAwMCwgMHgwODAwMDAwMCwgMHgwODAyMDIwOCwKLSAgICAweDAwMDAwMDA4LCAweDAwMDIwMjA4LCAweDAwMDIwMjAwLCAweDA4MDAwMDA4LAotICAgIDB4MDgwMjAwMDAsIDB4MDgwMDAyMDgsIDB4MDAwMDAyMDgsIDB4MDgwMjAwMDAsCi0gICAgMHgwMDAyMDIwOCwgMHgwMDAwMDAwOCwgMHgwODAyMDAwOCwgMHgwMDAyMDIwMAotfTsKLQotc3RhdGljIGNvbnN0IHVpbnQzMl90IFNCNFs2NF0gPQotewotICAgIDB4MDA4MDIwMDEsIDB4MDAwMDIwODEsIDB4MDAwMDIwODEsIDB4MDAwMDAwODAsCi0gICAgMHgwMDgwMjA4MCwgMHgwMDgwMDA4MSwgMHgwMDgwMDAwMSwgMHgwMDAwMjAwMSwKLSAgICAweDAwMDAwMDAwLCAweDAwODAyMDAwLCAweDAwODAyMDAwLCAweDAwODAyMDgxLAotICAgIDB4MDAwMDAwODEsIDB4MDAwMDAwMDAsIDB4MDA4MDAwODAsIDB4MDA4MDAwMDEsCi0gICAgMHgwMDAwMDAwMSwgMHgwMDAwMjAwMCwgMHgwMDgwMDAwMCwgMHgwMDgwMjAwMSwKLSAgICAweDAwMDAwMDgwLCAweDAwODAwMDAwLCAweDAwMDAyMDAxLCAweDAwMDAyMDgwLAotICAgIDB4MDA4MDAwODEsIDB4MDAwMDAwMDEsIDB4MDAwMDIwODAsIDB4MDA4MDAwODAsCi0gICAgMHgwMDAwMjAwMCwgMHgwMDgwMjA4MCwgMHgwMDgwMjA4MSwgMHgwMDAwMDA4MSwKLSAgICAweDAwODAwMDgwLCAweDAwODAwMDAxLCAweDAwODAyMDAwLCAweDAwODAyMDgxLAotICAgIDB4MDAwMDAwODEsIDB4MDAwMDAwMDAsIDB4MDAwMDAwMDAsIDB4MDA4MDIwMDAsCi0gICAgMHgwMDAwMjA4MCwgMHgwMDgwMDA4MCwgMHgwMDgwMDA4MSwgMHgwMDAwMDAwMSwKLSAgICAweDAwODAyMDAxLCAweDAwMDAyMDgxLCAweDAwMDAyMDgxLCAweDAwMDAwMDgwLAotICAgIDB4MDA4MDIwODEsIDB4MDAwMDAwODEsIDB4MDAwMDAwMDEsIDB4MDAwMDIwMDAsCi0gICAgMHgwMDgwMDAwMSwgMHgwMDAwMjAwMSwgMHgwMDgwMjA4MCwgMHgwMDgwMDA4MSwKLSAgICAweDAwMDAyMDAxLCAweDAwMDAyMDgwLCAweDAwODAwMDAwLCAweDAwODAyMDAxLAotICAgIDB4MDAwMDAwODAsIDB4MDA4MDAwMDAsIDB4MDAwMDIwMDAsIDB4MDA4MDIwODAKLX07Ci0KLXN0YXRpYyBjb25zdCB1aW50MzJfdCBTQjVbNjRdID0KLXsKLSAgICAweDAwMDAwMTAwLCAweDAyMDgwMTAwLCAweDAyMDgwMDAwLCAweDQyMDAwMTAwLAotICAgIDB4MDAwODAwMDAsIDB4MDAwMDAxMDAsIDB4NDAwMDAwMDAsIDB4MDIwODAwMDAsCi0gICAgMHg0MDA4MDEwMCwgMHgwMDA4MDAwMCwgMHgwMjAwMDEwMCwgMHg0MDA4MDEwMCwKLSAgICAweDQyMDAwMTAwLCAweDQyMDgwMDAwLCAweDAwMDgwMTAwLCAweDQwMDAwMDAwLAotICAgIDB4MDIwMDAwMDAsIDB4NDAwODAwMDAsIDB4NDAwODAwMDAsIDB4MDAwMDAwMDAsCi0gICAgMHg0MDAwMDEwMCwgMHg0MjA4MDEwMCwgMHg0MjA4MDEwMCwgMHgwMjAwMDEwMCwKLSAgICAweDQyMDgwMDAwLCAweDQwMDAwMTAwLCAweDAwMDAwMDAwLCAweDQyMDAwMDAwLAotICAgIDB4MDIwODAxMDAsIDB4MDIwMDAwMDAsIDB4NDIwMDAwMDAsIDB4MDAwODAxMDAsCi0gICAgMHgwMDA4MDAwMCwgMHg0MjAwMDEwMCwgMHgwMDAwMDEwMCwgMHgwMjAwMDAwMCwKLSAgICAweDQwMDAwMDAwLCAweDAyMDgwMDAwLCAweDQyMDAwMTAwLCAweDQwMDgwMTAwLAotICAgIDB4MDIwMDAxMDAsIDB4NDAwMDAwMDAsIDB4NDIwODAwMDAsIDB4MDIwODAxMDAsCi0gICAgMHg0MDA4MDEwMCwgMHgwMDAwMDEwMCwgMHgwMjAwMDAwMCwgMHg0MjA4MDAwMCwKLSAgICAweDQyMDgwMTAwLCAweDAwMDgwMTAwLCAweDQyMDAwMDAwLCAweDQyMDgwMTAwLAotICAgIDB4MDIwODAwMDAsIDB4MDAwMDAwMDAsIDB4NDAwODAwMDAsIDB4NDIwMDAwMDAsCi0gICAgMHgwMDA4MDEwMCwgMHgwMjAwMDEwMCwgMHg0MDAwMDEwMCwgMHgwMDA4MDAwMCwKLSAgICAweDAwMDAwMDAwLCAweDQwMDgwMDAwLCAweDAyMDgwMTAwLCAweDQwMDAwMTAwCi19OwotCi1zdGF0aWMgY29uc3QgdWludDMyX3QgU0I2WzY0XSA9Ci17Ci0gICAgMHgyMDAwMDAxMCwgMHgyMDQwMDAwMCwgMHgwMDAwNDAwMCwgMHgyMDQwNDAxMCwKLSAgICAweDIwNDAwMDAwLCAweDAwMDAwMDEwLCAweDIwNDA0MDEwLCAweDAwNDAwMDAwLAotICAgIDB4MjAwMDQwMDAsIDB4MDA0MDQwMTAsIDB4MDA0MDAwMDAsIDB4MjAwMDAwMTAsCi0gICAgMHgwMDQwMDAxMCwgMHgyMDAwNDAwMCwgMHgyMDAwMDAwMCwgMHgwMDAwNDAxMCwKLSAgICAweDAwMDAwMDAwLCAweDAwNDAwMDEwLCAweDIwMDA0MDEwLCAweDAwMDA0MDAwLAotICAgIDB4MDA0MDQwMDAsIDB4MjAwMDQwMTAsIDB4MDAwMDAwMTAsIDB4MjA0MDAwMTAsCi0gICAgMHgyMDQwMDAxMCwgMHgwMDAwMDAwMCwgMHgwMDQwNDAxMCwgMHgyMDQwNDAwMCwKLSAgICAweDAwMDA0MDEwLCAweDAwNDA0MDAwLCAweDIwNDA0MDAwLCAweDIwMDAwMDAwLAotICAgIDB4MjAwMDQwMDAsIDB4MDAwMDAwMTAsIDB4MjA0MDAwMTAsIDB4MDA0MDQwMDAsCi0gICAgMHgyMDQwNDAxMCwgMHgwMDQwMDAwMCwgMHgwMDAwNDAxMCwgMHgyMDAwMDAxMCwKLSAgICAweDAwNDAwMDAwLCAweDIwMDA0MDAwLCAweDIwMDAwMDAwLCAweDAwMDA0MDEwLAotICAgIDB4MjAwMDAwMTAsIDB4MjA0MDQwMTAsIDB4MDA0MDQwMDAsIDB4MjA0MDAwMDAsCi0gICAgMHgwMDQwNDAxMCwgMHgyMDQwNDAwMCwgMHgwMDAwMDAwMCwgMHgyMDQwMDAxMCwKLSAgICAweDAwMDAwMDEwLCAweDAwMDA0MDAwLCAweDIwNDAwMDAwLCAweDAwNDA0MDEwLAotICAgIDB4MDAwMDQwMDAsIDB4MDA0MDAwMTAsIDB4MjAwMDQwMTAsIDB4MDAwMDAwMDAsCi0gICAgMHgyMDQwNDAwMCwgMHgyMDAwMDAwMCwgMHgwMDQwMDAxMCwgMHgyMDAwNDAxMAotfTsKLQotc3RhdGljIGNvbnN0IHVpbnQzMl90IFNCN1s2NF0gPQotewotICAgIDB4MDAyMDAwMDAsIDB4MDQyMDAwMDIsIDB4MDQwMDA4MDIsIDB4MDAwMDAwMDAsCi0gICAgMHgwMDAwMDgwMCwgMHgwNDAwMDgwMiwgMHgwMDIwMDgwMiwgMHgwNDIwMDgwMCwKLSAgICAweDA0MjAwODAyLCAweDAwMjAwMDAwLCAweDAwMDAwMDAwLCAweDA0MDAwMDAyLAotICAgIDB4MDAwMDAwMDIsIDB4MDQwMDAwMDAsIDB4MDQyMDAwMDIsIDB4MDAwMDA4MDIsCi0gICAgMHgwNDAwMDgwMCwgMHgwMDIwMDgwMiwgMHgwMDIwMDAwMiwgMHgwNDAwMDgwMCwKLSAgICAweDA0MDAwMDAyLCAweDA0MjAwMDAwLCAweDA0MjAwODAwLCAweDAwMjAwMDAyLAotICAgIDB4MDQyMDAwMDAsIDB4MDAwMDA4MDAsIDB4MDAwMDA4MDIsIDB4MDQyMDA4MDIsCi0gICAgMHgwMDIwMDgwMCwgMHgwMDAwMDAwMiwgMHgwNDAwMDAwMCwgMHgwMDIwMDgwMCwKLSAgICAweDA0MDAwMDAwLCAweDAwMjAwODAwLCAweDAwMjAwMDAwLCAweDA0MDAwODAyLAotICAgIDB4MDQwMDA4MDIsIDB4MDQyMDAwMDIsIDB4MDQyMDAwMDIsIDB4MDAwMDAwMDIsCi0gICAgMHgwMDIwMDAwMiwgMHgwNDAwMDAwMCwgMHgwNDAwMDgwMCwgMHgwMDIwMDAwMCwKLSAgICAweDA0MjAwODAwLCAweDAwMDAwODAyLCAweDAwMjAwODAyLCAweDA0MjAwODAwLAotICAgIDB4MDAwMDA4MDIsIDB4MDQwMDAwMDIsIDB4MDQyMDA4MDIsIDB4MDQyMDAwMDAsCi0gICAgMHgwMDIwMDgwMCwgMHgwMDAwMDAwMCwgMHgwMDAwMDAwMiwgMHgwNDIwMDgwMiwKLSAgICAweDAwMDAwMDAwLCAweDAwMjAwODAyLCAweDA0MjAwMDAwLCAweDAwMDAwODAwLAotICAgIDB4MDQwMDAwMDIsIDB4MDQwMDA4MDAsIDB4MDAwMDA4MDAsIDB4MDAyMDAwMDIKLX07Ci0KLXN0YXRpYyBjb25zdCB1aW50MzJfdCBTQjhbNjRdID0KLXsKLSAgICAweDEwMDAxMDQwLCAweDAwMDAxMDAwLCAweDAwMDQwMDAwLCAweDEwMDQxMDQwLAotICAgIDB4MTAwMDAwMDAsIDB4MTAwMDEwNDAsIDB4MDAwMDAwNDAsIDB4MTAwMDAwMDAsCi0gICAgMHgwMDA0MDA0MCwgMHgxMDA0MDAwMCwgMHgxMDA0MTA0MCwgMHgwMDA0MTAwMCwKLSAgICAweDEwMDQxMDAwLCAweDAwMDQxMDQwLCAweDAwMDAxMDAwLCAweDAwMDAwMDQwLAotICAgIDB4MTAwNDAwMDAsIDB4MTAwMDAwNDAsIDB4MTAwMDEwMDAsIDB4MDAwMDEwNDAsCi0gICAgMHgwMDA0MTAwMCwgMHgwMDA0MDA0MCwgMHgxMDA0MDA0MCwgMHgxMDA0MTAwMCwKLSAgICAweDAwMDAxMDQwLCAweDAwMDAwMDAwLCAweDAwMDAwMDAwLCAweDEwMDQwMDQwLAotICAgIDB4MTAwMDAwNDAsIDB4MTAwMDEwMDAsIDB4MDAwNDEwNDAsIDB4MDAwNDAwMDAsCi0gICAgMHgwMDA0MTA0MCwgMHgwMDA0MDAwMCwgMHgxMDA0MTAwMCwgMHgwMDAwMTAwMCwKLSAgICAweDAwMDAwMDQwLCAweDEwMDQwMDQwLCAweDAwMDAxMDAwLCAweDAwMDQxMDQwLAotICAgIDB4MTAwMDEwMDAsIDB4MDAwMDAwNDAsIDB4MTAwMDAwNDAsIDB4MTAwNDAwMDAsCi0gICAgMHgxMDA0MDA0MCwgMHgxMDAwMDAwMCwgMHgwMDA0MDAwMCwgMHgxMDAwMTA0MCwKLSAgICAweDAwMDAwMDAwLCAweDEwMDQxMDQwLCAweDAwMDQwMDQwLCAweDEwMDAwMDQwLAotICAgIDB4MTAwNDAwMDAsIDB4MTAwMDEwMDAsIDB4MTAwMDEwNDAsIDB4MDAwMDAwMDAsCi0gICAgMHgxMDA0MTA0MCwgMHgwMDA0MTAwMCwgMHgwMDA0MTAwMCwgMHgwMDAwMTA0MCwKLSAgICAweDAwMDAxMDQwLCAweDAwMDQwMDQwLCAweDEwMDAwMDAwLCAweDEwMDQxMDAwCi19OwotCi0vKgotICogUEMxOiBsZWZ0IGFuZCByaWdodCBoYWx2ZXMgYml0LXN3YXAKLSAqLwotc3RhdGljIGNvbnN0IHVpbnQzMl90IExIc1sxNl0gPQotewotICAgIDB4MDAwMDAwMDAsIDB4MDAwMDAwMDEsIDB4MDAwMDAxMDAsIDB4MDAwMDAxMDEsCi0gICAgMHgwMDAxMDAwMCwgMHgwMDAxMDAwMSwgMHgwMDAxMDEwMCwgMHgwMDAxMDEwMSwKLSAgICAweDAxMDAwMDAwLCAweDAxMDAwMDAxLCAweDAxMDAwMTAwLCAweDAxMDAwMTAxLAotICAgIDB4MDEwMTAwMDAsIDB4MDEwMTAwMDEsIDB4MDEwMTAxMDAsIDB4MDEwMTAxMDEKLX07Ci0KLXN0YXRpYyBjb25zdCB1aW50MzJfdCBSSHNbMTZdID0KLXsKLSAgICAweDAwMDAwMDAwLCAweDAxMDAwMDAwLCAweDAwMDEwMDAwLCAweDAxMDEwMDAwLAotICAgIDB4MDAwMDAxMDAsIDB4MDEwMDAxMDAsIDB4MDAwMTAxMDAsIDB4MDEwMTAxMDAsCi0gICAgMHgwMDAwMDAwMSwgMHgwMTAwMDAwMSwgMHgwMDAxMDAwMSwgMHgwMTAxMDAwMSwKLSAgICAweDAwMDAwMTAxLCAweDAxMDAwMTAxLCAweDAwMDEwMTAxLCAweDAxMDEwMTAxLAotfTsKLQotLyoKLSAqIEluaXRpYWwgUGVybXV0YXRpb24gbWFjcm8KLSAqLwotI2RlZmluZSBERVNfSVAoWCwgWSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIGRvICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICAgICAgVCA9ICgoKFgpID4+ICA0KSBeIChZKSkgJiAweDBGMEYwRjBGOyAoWSkgXj0gVDsgKFgpIF49IChUIDw8ICA0KTsgXAotICAgICAgICBUID0gKCgoWCkgPj4gMTYpIF4gKFkpKSAmIDB4MDAwMEZGRkY7IChZKSBePSBUOyAoWCkgXj0gKFQgPDwgMTYpOyBcCi0gICAgICAgIFQgPSAoKChZKSA+PiAgMikgXiAoWCkpICYgMHgzMzMzMzMzMzsgKFgpIF49IFQ7IChZKSBePSAoVCA8PCAgMik7IFwKLSAgICAgICAgVCA9ICgoKFkpID4+ICA4KSBeIChYKSkgJiAweDAwRkYwMEZGOyAoWCkgXj0gVDsgKFkpIF49IChUIDw8ICA4KTsgXAotICAgICAgICAoWSkgPSAoKChZKSA8PCAxKSB8ICgoWSkgPj4gMzEpKSAmIDB4RkZGRkZGRkY7ICAgICAgICAgICAgICAgICAgICBcCi0gICAgICAgIFQgPSAoKFgpIF4gKFkpKSAmIDB4QUFBQUFBQUE7IChZKSBePSBUOyAoWCkgXj0gVDsgICAgICAgICAgICAgICAgIFwKLSAgICAgICAgKFgpID0gKCgoWCkgPDwgMSkgfCAoKFgpID4+IDMxKSkgJiAweEZGRkZGRkZGOyAgICAgICAgICAgICAgICAgICAgXAotICAgIH0gd2hpbGUgKDApCi0KLS8qCi0gKiBGaW5hbCBQZXJtdXRhdGlvbiBtYWNybwotICovCi0jZGVmaW5lIERFU19GUChYLCBZKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgZG8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgICAgICAoWCkgPSAoKChYKSA8PCAzMSkgfCAoKFgpID4+IDEpKSAmIDB4RkZGRkZGRkY7ICAgICAgICAgICAgICAgICAgICBcCi0gICAgICAgIFQgPSAoKFgpIF4gKFkpKSAmIDB4QUFBQUFBQUE7IChYKSBePSBUOyAoWSkgXj0gVDsgICAgICAgICAgICAgICAgIFwKLSAgICAgICAgKFkpID0gKCgoWSkgPDwgMzEpIHwgKChZKSA+PiAxKSkgJiAweEZGRkZGRkZGOyAgICAgICAgICAgICAgICAgICAgXAotICAgICAgICBUID0gKCgoWSkgPj4gIDgpIF4gKFgpKSAmIDB4MDBGRjAwRkY7IChYKSBePSBUOyAoWSkgXj0gKFQgPDwgIDgpOyBcCi0gICAgICAgIFQgPSAoKChZKSA+PiAgMikgXiAoWCkpICYgMHgzMzMzMzMzMzsgKFgpIF49IFQ7IChZKSBePSAoVCA8PCAgMik7IFwKLSAgICAgICAgVCA9ICgoKFgpID4+IDE2KSBeIChZKSkgJiAweDAwMDBGRkZGOyAoWSkgXj0gVDsgKFgpIF49IChUIDw8IDE2KTsgXAotICAgICAgICBUID0gKCgoWCkgPj4gIDQpIF4gKFkpKSAmIDB4MEYwRjBGMEY7IChZKSBePSBUOyAoWCkgXj0gKFQgPDwgIDQpOyBcCi0gICAgfSB3aGlsZSAoMCkKLQotLyoKLSAqIERFUyByb3VuZCBtYWNybwotICovCi0jZGVmaW5lIERFU19ST1VORChYLCBZKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICBkbyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgICAgICBUID0gKlNLKysgXiAoWCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICAgICAgKFkpIF49IFNCOFsoVCkgJiAweDNGXSBeICAgICAgICAgICAgXAotICAgICAgICAgICAgICAgU0I2WyhUID4+ICA4KSAmIDB4M0ZdIF4gICAgICAgICAgICBcCi0gICAgICAgICAgICAgICBTQjRbKFQgPj4gMTYpICYgMHgzRl0gXiAgICAgICAgICAgIFwKLSAgICAgICAgICAgICAgIFNCMlsoVCA+PiAyNCkgJiAweDNGXTsgICAgICAgICAgICAgXAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICAgICAgVCA9ICpTSysrIF4gKCgoWCkgPDwgMjgpIHwgKChYKSA+PiA0KSk7ICAgICBcCi0gICAgICAgIChZKSBePSBTQjdbKFQpICYgMHgzRl0gXiAgICAgICAgICAgIFwKLSAgICAgICAgICAgICAgIFNCNVsoVCA+PiAgOCkgJiAweDNGXSBeICAgICAgICAgICAgXAotICAgICAgICAgICAgICAgU0IzWyhUID4+IDE2KSAmIDB4M0ZdIF4gICAgICAgICAgICBcCi0gICAgICAgICAgICAgICBTQjFbKFQgPj4gMjQpICYgMHgzRl07ICAgICAgICAgICAgIFwKLSAgICB9IHdoaWxlICgwKQotCi0jZGVmaW5lIFNXQVAoYSwgYikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgZG8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgICAgICB1aW50MzJfdCB0ID0gKGEpOyAoYSkgPSAoYik7IChiKSA9IHQ7IHQgPSAwOyAgICBcCi0gICAgfSB3aGlsZSAoMCkKLQotdm9pZCBtYmVkdGxzX2Rlc19pbml0KG1iZWR0bHNfZGVzX2NvbnRleHQgKmN0eCkKLXsKLSAgICBtZW1zZXQoY3R4LCAwLCBzaXplb2YobWJlZHRsc19kZXNfY29udGV4dCkpOwotfQotCi12b2lkIG1iZWR0bHNfZGVzX2ZyZWUobWJlZHRsc19kZXNfY29udGV4dCAqY3R4KQotewotICAgIGlmIChjdHggPT0gTlVMTCkgewotICAgICAgICByZXR1cm47Ci0gICAgfQotCi0gICAgbWJlZHRsc19wbGF0Zm9ybV96ZXJvaXplKGN0eCwgc2l6ZW9mKG1iZWR0bHNfZGVzX2NvbnRleHQpKTsKLX0KLQotdm9pZCBtYmVkdGxzX2RlczNfaW5pdChtYmVkdGxzX2RlczNfY29udGV4dCAqY3R4KQotewotICAgIG1lbXNldChjdHgsIDAsIHNpemVvZihtYmVkdGxzX2RlczNfY29udGV4dCkpOwotfQotCi12b2lkIG1iZWR0bHNfZGVzM19mcmVlKG1iZWR0bHNfZGVzM19jb250ZXh0ICpjdHgpCi17Ci0gICAgaWYgKGN0eCA9PSBOVUxMKSB7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICBtYmVkdGxzX3BsYXRmb3JtX3plcm9pemUoY3R4LCBzaXplb2YobWJlZHRsc19kZXMzX2NvbnRleHQpKTsKLX0KLQotc3RhdGljIGNvbnN0IHVuc2lnbmVkIGNoYXIgb2RkX3Bhcml0eV90YWJsZVsxMjhdID0geyAxLCAgMiwgIDQsICA3LCAgOCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMTEsIDEzLCAxNCwgMTYsIDE5LCAyMSwgMjIsIDI1LCAyNiwgMjgsIDMxLCAzMiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMzUsIDM3LCAzOCwgNDEsIDQyLCA0NCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNDcsIDQ5LCA1MCwgNTIsIDU1LCA1NiwgNTksIDYxLCA2MiwgNjQsIDY3LCA2OSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNzAsIDczLCA3NCwgNzYsIDc5LCA4MSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgODIsIDg0LCA4NywgODgsIDkxLCA5MywgOTQsIDk3LCA5OCwgMTAwLCAxMDMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEwNCwgMTA3LCAxMDksIDExMCwgMTEyLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxMTUsIDExNywgMTE4LCAxMjEsIDEyMiwgMTI0LCAxMjcsIDEyOCwgMTMxLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxMzMsIDEzNCwgMTM3LCAxMzgsIDE0MCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMTQzLCAxNDUsIDE0NiwgMTQ4LCAxNTEsIDE1MiwgMTU1LCAxNTcsIDE1OCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMTYxLCAxNjIsIDE2NCwgMTY3LCAxNjgsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDE3MSwgMTczLCAxNzQsIDE3NiwgMTc5LCAxODEsIDE4MiwgMTg1LCAxODYsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDE4OCwgMTkxLCAxOTMsIDE5NCwgMTk2LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxOTksIDIwMCwgMjAzLCAyMDUsIDIwNiwgMjA4LCAyMTEsIDIxMywgMjE0LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyMTcsIDIxOCwgMjIwLCAyMjMsIDIyNCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMjI3LCAyMjksIDIzMCwgMjMzLCAyMzQsIDIzNiwgMjM5LCAyNDEsIDI0MiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMjQ0LCAyNDcsIDI0OCwgMjUxLCAyNTMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDI1NCB9OwotCi12b2lkIG1iZWR0bHNfZGVzX2tleV9zZXRfcGFyaXR5KHVuc2lnbmVkIGNoYXIga2V5W01CRURUTFNfREVTX0tFWV9TSVpFXSkKLXsKLSAgICBpbnQgaTsKLQotICAgIGZvciAoaSA9IDA7IGkgPCBNQkVEVExTX0RFU19LRVlfU0laRTsgaSsrKSB7Ci0gICAgICAgIGtleVtpXSA9IG9kZF9wYXJpdHlfdGFibGVba2V5W2ldIC8gMl07Ci0gICAgfQotfQotCi0vKgotICogQ2hlY2sgdGhlIGdpdmVuIGtleSdzIHBhcml0eSwgcmV0dXJucyAxIG9uIGZhaWx1cmUsIDAgb24gU1VDQ0VTUwotICovCi1pbnQgbWJlZHRsc19kZXNfa2V5X2NoZWNrX2tleV9wYXJpdHkoY29uc3QgdW5zaWduZWQgY2hhciBrZXlbTUJFRFRMU19ERVNfS0VZX1NJWkVdKQotewotICAgIGludCBpOwotCi0gICAgZm9yIChpID0gMDsgaSA8IE1CRURUTFNfREVTX0tFWV9TSVpFOyBpKyspIHsKLSAgICAgICAgaWYgKGtleVtpXSAhPSBvZGRfcGFyaXR5X3RhYmxlW2tleVtpXSAvIDJdKSB7Ci0gICAgICAgICAgICByZXR1cm4gMTsKLSAgICAgICAgfQotICAgIH0KLQotICAgIHJldHVybiAwOwotfQotCi0vKgotICogVGFibGUgb2Ygd2VhayBhbmQgc2VtaS13ZWFrIGtleXMKLSAqCi0gKiBTb3VyY2U6IGh0dHA6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvV2Vha19rZXkKLSAqCi0gKiBXZWFrOgotICogQWx0ZXJuYXRpbmcgb25lcyArIHplcm9zICgweDAxMDEwMTAxMDEwMTAxMDEpCi0gKiBBbHRlcm5hdGluZyAnRicgKyAnRScgKDB4RkVGRUZFRkVGRUZFRkVGRSkKLSAqICcweEUwRTBFMEUwRjFGMUYxRjEnCi0gKiAnMHgxRjFGMUYxRjBFMEUwRTBFJwotICoKLSAqIFNlbWktd2VhazoKLSAqIDB4MDExRjAxMUYwMTBFMDEwRSBhbmQgMHgxRjAxMUYwMTBFMDEwRTAxCi0gKiAweDAxRTAwMUUwMDFGMTAxRjEgYW5kIDB4RTAwMUUwMDFGMTAxRjEwMQotICogMHgwMUZFMDFGRTAxRkUwMUZFIGFuZCAweEZFMDFGRTAxRkUwMUZFMDEKLSAqIDB4MUZFMDFGRTAwRUYxMEVGMSBhbmQgMHhFMDFGRTAxRkYxMEVGMTBFCi0gKiAweDFGRkUxRkZFMEVGRTBFRkUgYW5kIDB4RkUxRkZFMUZGRTBFRkUwRQotICogMHhFMEZFRTBGRUYxRkVGMUZFIGFuZCAweEZFRTBGRUUwRkVGMUZFRjEKLSAqCi0gKi8KLQotI2RlZmluZSBXRUFLX0tFWV9DT1VOVCAxNgotCi1zdGF0aWMgY29uc3QgdW5zaWduZWQgY2hhciB3ZWFrX2tleV90YWJsZVtXRUFLX0tFWV9DT1VOVF1bTUJFRFRMU19ERVNfS0VZX1NJWkVdID0KLXsKLSAgICB7IDB4MDEsIDB4MDEsIDB4MDEsIDB4MDEsIDB4MDEsIDB4MDEsIDB4MDEsIDB4MDEgfSwKLSAgICB7IDB4RkUsIDB4RkUsIDB4RkUsIDB4RkUsIDB4RkUsIDB4RkUsIDB4RkUsIDB4RkUgfSwKLSAgICB7IDB4MUYsIDB4MUYsIDB4MUYsIDB4MUYsIDB4MEUsIDB4MEUsIDB4MEUsIDB4MEUgfSwKLSAgICB7IDB4RTAsIDB4RTAsIDB4RTAsIDB4RTAsIDB4RjEsIDB4RjEsIDB4RjEsIDB4RjEgfSwKLQotICAgIHsgMHgwMSwgMHgxRiwgMHgwMSwgMHgxRiwgMHgwMSwgMHgwRSwgMHgwMSwgMHgwRSB9LAotICAgIHsgMHgxRiwgMHgwMSwgMHgxRiwgMHgwMSwgMHgwRSwgMHgwMSwgMHgwRSwgMHgwMSB9LAotICAgIHsgMHgwMSwgMHhFMCwgMHgwMSwgMHhFMCwgMHgwMSwgMHhGMSwgMHgwMSwgMHhGMSB9LAotICAgIHsgMHhFMCwgMHgwMSwgMHhFMCwgMHgwMSwgMHhGMSwgMHgwMSwgMHhGMSwgMHgwMSB9LAotICAgIHsgMHgwMSwgMHhGRSwgMHgwMSwgMHhGRSwgMHgwMSwgMHhGRSwgMHgwMSwgMHhGRSB9LAotICAgIHsgMHhGRSwgMHgwMSwgMHhGRSwgMHgwMSwgMHhGRSwgMHgwMSwgMHhGRSwgMHgwMSB9LAotICAgIHsgMHgxRiwgMHhFMCwgMHgxRiwgMHhFMCwgMHgwRSwgMHhGMSwgMHgwRSwgMHhGMSB9LAotICAgIHsgMHhFMCwgMHgxRiwgMHhFMCwgMHgxRiwgMHhGMSwgMHgwRSwgMHhGMSwgMHgwRSB9LAotICAgIHsgMHgxRiwgMHhGRSwgMHgxRiwgMHhGRSwgMHgwRSwgMHhGRSwgMHgwRSwgMHhGRSB9LAotICAgIHsgMHhGRSwgMHgxRiwgMHhGRSwgMHgxRiwgMHhGRSwgMHgwRSwgMHhGRSwgMHgwRSB9LAotICAgIHsgMHhFMCwgMHhGRSwgMHhFMCwgMHhGRSwgMHhGMSwgMHhGRSwgMHhGMSwgMHhGRSB9LAotICAgIHsgMHhGRSwgMHhFMCwgMHhGRSwgMHhFMCwgMHhGRSwgMHhGMSwgMHhGRSwgMHhGMSB9Ci19OwotCi1pbnQgbWJlZHRsc19kZXNfa2V5X2NoZWNrX3dlYWsoY29uc3QgdW5zaWduZWQgY2hhciBrZXlbTUJFRFRMU19ERVNfS0VZX1NJWkVdKQotewotICAgIGludCBpOwotCi0gICAgZm9yIChpID0gMDsgaSA8IFdFQUtfS0VZX0NPVU5UOyBpKyspIHsKLSAgICAgICAgaWYgKG1lbWNtcCh3ZWFrX2tleV90YWJsZVtpXSwga2V5LCBNQkVEVExTX0RFU19LRVlfU0laRSkgPT0gMCkgewotICAgICAgICAgICAgcmV0dXJuIDE7Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICByZXR1cm4gMDsKLX0KLQotI2lmICFkZWZpbmVkKE1CRURUTFNfREVTX1NFVEtFWV9BTFQpCi12b2lkIG1iZWR0bHNfZGVzX3NldGtleSh1aW50MzJfdCBTS1szMl0sIGNvbnN0IHVuc2lnbmVkIGNoYXIga2V5W01CRURUTFNfREVTX0tFWV9TSVpFXSkKLXsKLSAgICBpbnQgaTsKLSAgICB1aW50MzJfdCBYLCBZLCBUOwotCi0gICAgWCA9IE1CRURUTFNfR0VUX1VJTlQzMl9CRShrZXksIDApOwotICAgIFkgPSBNQkVEVExTX0dFVF9VSU5UMzJfQkUoa2V5LCA0KTsKLQotICAgIC8qCi0gICAgICogUGVybXV0ZWQgQ2hvaWNlIDEKLSAgICAgKi8KLSAgICBUID0gICgoWSA+PiAgNCkgXiBYKSAmIDB4MEYwRjBGMEY7ICBYIF49IFQ7IFkgXj0gKFQgPDwgIDQpOwotICAgIFQgPSAgKChZKSBeIFgpICYgMHgxMDEwMTAxMDsgIFggXj0gVDsgWSBePSAoVCk7Ci0KLSAgICBYID0gICAoTEhzWyhYKSAmIDB4Rl0gPDwgMykgfCAoTEhzWyhYID4+ICA4KSAmIDB4Rl0gPDwgMikKLSAgICAgICAgfCAoTEhzWyhYID4+IDE2KSAmIDB4Rl0gPDwgMSkgfCAoTEhzWyhYID4+IDI0KSAmIDB4Rl0pCi0gICAgICAgIHwgKExIc1soWCA+PiAgNSkgJiAweEZdIDw8IDcpIHwgKExIc1soWCA+PiAxMykgJiAweEZdIDw8IDYpCi0gICAgICAgIHwgKExIc1soWCA+PiAyMSkgJiAweEZdIDw8IDUpIHwgKExIc1soWCA+PiAyOSkgJiAweEZdIDw8IDQpOwotCi0gICAgWSA9ICAgKFJIc1soWSA+PiAgMSkgJiAweEZdIDw8IDMpIHwgKFJIc1soWSA+PiAgOSkgJiAweEZdIDw8IDIpCi0gICAgICAgIHwgKFJIc1soWSA+PiAxNykgJiAweEZdIDw8IDEpIHwgKFJIc1soWSA+PiAyNSkgJiAweEZdKQotICAgICAgICB8IChSSHNbKFkgPj4gIDQpICYgMHhGXSA8PCA3KSB8IChSSHNbKFkgPj4gMTIpICYgMHhGXSA8PCA2KQotICAgICAgICB8IChSSHNbKFkgPj4gMjApICYgMHhGXSA8PCA1KSB8IChSSHNbKFkgPj4gMjgpICYgMHhGXSA8PCA0KTsKLQotICAgIFggJj0gMHgwRkZGRkZGRjsKLSAgICBZICY9IDB4MEZGRkZGRkY7Ci0KLSAgICAvKgotICAgICAqIGNhbGN1bGF0ZSBzdWJrZXlzCi0gICAgICovCi0gICAgZm9yIChpID0gMDsgaSA8IDE2OyBpKyspIHsKLSAgICAgICAgaWYgKGkgPCAyIHx8IGkgPT0gOCB8fCBpID09IDE1KSB7Ci0gICAgICAgICAgICBYID0gKChYIDw8ICAxKSB8IChYID4+IDI3KSkgJiAweDBGRkZGRkZGOwotICAgICAgICAgICAgWSA9ICgoWSA8PCAgMSkgfCAoWSA+PiAyNykpICYgMHgwRkZGRkZGRjsKLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIFggPSAoKFggPDwgIDIpIHwgKFggPj4gMjYpKSAmIDB4MEZGRkZGRkY7Ci0gICAgICAgICAgICBZID0gKChZIDw8ICAyKSB8IChZID4+IDI2KSkgJiAweDBGRkZGRkZGOwotICAgICAgICB9Ci0KLSAgICAgICAgKlNLKysgPSAgICgoWCA8PCAgNCkgJiAweDI0MDAwMDAwKSB8ICgoWCA8PCAyOCkgJiAweDEwMDAwMDAwKQotICAgICAgICAgICAgICAgIHwgKChYIDw8IDE0KSAmIDB4MDgwMDAwMDApIHwgKChYIDw8IDE4KSAmIDB4MDIwODAwMDApCi0gICAgICAgICAgICAgICAgfCAoKFggPDwgIDYpICYgMHgwMTAwMDAwMCkgfCAoKFggPDwgIDkpICYgMHgwMDIwMDAwMCkKLSAgICAgICAgICAgICAgICB8ICgoWCA+PiAgMSkgJiAweDAwMTAwMDAwKSB8ICgoWCA8PCAxMCkgJiAweDAwMDQwMDAwKQotICAgICAgICAgICAgICAgIHwgKChYIDw8ICAyKSAmIDB4MDAwMjAwMDApIHwgKChYID4+IDEwKSAmIDB4MDAwMTAwMDApCi0gICAgICAgICAgICAgICAgfCAoKFkgPj4gMTMpICYgMHgwMDAwMjAwMCkgfCAoKFkgPj4gIDQpICYgMHgwMDAwMTAwMCkKLSAgICAgICAgICAgICAgICB8ICgoWSA8PCAgNikgJiAweDAwMDAwODAwKSB8ICgoWSA+PiAgMSkgJiAweDAwMDAwNDAwKQotICAgICAgICAgICAgICAgIHwgKChZID4+IDE0KSAmIDB4MDAwMDAyMDApIHwgKChZKSAmIDB4MDAwMDAxMDApCi0gICAgICAgICAgICAgICAgfCAoKFkgPj4gIDUpICYgMHgwMDAwMDAyMCkgfCAoKFkgPj4gMTApICYgMHgwMDAwMDAxMCkKLSAgICAgICAgICAgICAgICB8ICgoWSA+PiAgMykgJiAweDAwMDAwMDA4KSB8ICgoWSA+PiAxOCkgJiAweDAwMDAwMDA0KQotICAgICAgICAgICAgICAgIHwgKChZID4+IDI2KSAmIDB4MDAwMDAwMDIpIHwgKChZID4+IDI0KSAmIDB4MDAwMDAwMDEpOwotCi0gICAgICAgICpTSysrID0gICAoKFggPDwgMTUpICYgMHgyMDAwMDAwMCkgfCAoKFggPDwgMTcpICYgMHgxMDAwMDAwMCkKLSAgICAgICAgICAgICAgICB8ICgoWCA8PCAxMCkgJiAweDA4MDAwMDAwKSB8ICgoWCA8PCAyMikgJiAweDA0MDAwMDAwKQotICAgICAgICAgICAgICAgIHwgKChYID4+ICAyKSAmIDB4MDIwMDAwMDApIHwgKChYIDw8ICAxKSAmIDB4MDEwMDAwMDApCi0gICAgICAgICAgICAgICAgfCAoKFggPDwgMTYpICYgMHgwMDIwMDAwMCkgfCAoKFggPDwgMTEpICYgMHgwMDEwMDAwMCkKLSAgICAgICAgICAgICAgICB8ICgoWCA8PCAgMykgJiAweDAwMDgwMDAwKSB8ICgoWCA+PiAgNikgJiAweDAwMDQwMDAwKQotICAgICAgICAgICAgICAgIHwgKChYIDw8IDE1KSAmIDB4MDAwMjAwMDApIHwgKChYID4+ICA0KSAmIDB4MDAwMTAwMDApCi0gICAgICAgICAgICAgICAgfCAoKFkgPj4gIDIpICYgMHgwMDAwMjAwMCkgfCAoKFkgPDwgIDgpICYgMHgwMDAwMTAwMCkKLSAgICAgICAgICAgICAgICB8ICgoWSA+PiAxNCkgJiAweDAwMDAwODA4KSB8ICgoWSA+PiAgOSkgJiAweDAwMDAwNDAwKQotICAgICAgICAgICAgICAgIHwgKChZKSAmIDB4MDAwMDAyMDApIHwgKChZIDw8ICA3KSAmIDB4MDAwMDAxMDApCi0gICAgICAgICAgICAgICAgfCAoKFkgPj4gIDcpICYgMHgwMDAwMDAyMCkgfCAoKFkgPj4gIDMpICYgMHgwMDAwMDAxMSkKLSAgICAgICAgICAgICAgICB8ICgoWSA8PCAgMikgJiAweDAwMDAwMDA0KSB8ICgoWSA+PiAyMSkgJiAweDAwMDAwMDAyKTsKLSAgICB9Ci19Ci0jZW5kaWYgLyogIU1CRURUTFNfREVTX1NFVEtFWV9BTFQgKi8KLQotLyoKLSAqIERFUyBrZXkgc2NoZWR1bGUgKDU2LWJpdCwgZW5jcnlwdGlvbikKLSAqLwotaW50IG1iZWR0bHNfZGVzX3NldGtleV9lbmMobWJlZHRsc19kZXNfY29udGV4dCAqY3R4LCBjb25zdCB1bnNpZ25lZCBjaGFyIGtleVtNQkVEVExTX0RFU19LRVlfU0laRV0pCi17Ci0gICAgbWJlZHRsc19kZXNfc2V0a2V5KGN0eC0+c2ssIGtleSk7Ci0KLSAgICByZXR1cm4gMDsKLX0KLQotLyoKLSAqIERFUyBrZXkgc2NoZWR1bGUgKDU2LWJpdCwgZGVjcnlwdGlvbikKLSAqLwotaW50IG1iZWR0bHNfZGVzX3NldGtleV9kZWMobWJlZHRsc19kZXNfY29udGV4dCAqY3R4LCBjb25zdCB1bnNpZ25lZCBjaGFyIGtleVtNQkVEVExTX0RFU19LRVlfU0laRV0pCi17Ci0gICAgaW50IGk7Ci0KLSAgICBtYmVkdGxzX2Rlc19zZXRrZXkoY3R4LT5zaywga2V5KTsKLQotICAgIGZvciAoaSA9IDA7IGkgPCAxNjsgaSArPSAyKSB7Ci0gICAgICAgIFNXQVAoY3R4LT5za1tpXSwgY3R4LT5za1szMCAtIGldKTsKLSAgICAgICAgU1dBUChjdHgtPnNrW2kgKyAxXSwgY3R4LT5za1szMSAtIGldKTsKLSAgICB9Ci0KLSAgICByZXR1cm4gMDsKLX0KLQotc3RhdGljIHZvaWQgZGVzM19zZXQya2V5KHVpbnQzMl90IGVza1s5Nl0sCi0gICAgICAgICAgICAgICAgICAgICAgICAgdWludDMyX3QgZHNrWzk2XSwKLSAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1bnNpZ25lZCBjaGFyIGtleVtNQkVEVExTX0RFU19LRVlfU0laRSoyXSkKLXsKLSAgICBpbnQgaTsKLQotICAgIG1iZWR0bHNfZGVzX3NldGtleShlc2ssIGtleSk7Ci0gICAgbWJlZHRsc19kZXNfc2V0a2V5KGRzayArIDMyLCBrZXkgKyA4KTsKLQotICAgIGZvciAoaSA9IDA7IGkgPCAzMjsgaSArPSAyKSB7Ci0gICAgICAgIGRza1tpXSA9IGVza1szMCAtIGldOwotICAgICAgICBkc2tbaSArICAxXSA9IGVza1szMSAtIGldOwotCi0gICAgICAgIGVza1tpICsgMzJdID0gZHNrWzYyIC0gaV07Ci0gICAgICAgIGVza1tpICsgMzNdID0gZHNrWzYzIC0gaV07Ci0KLSAgICAgICAgZXNrW2kgKyA2NF0gPSBlc2tbaV07Ci0gICAgICAgIGVza1tpICsgNjVdID0gZXNrW2kgKyAxXTsKLQotICAgICAgICBkc2tbaSArIDY0XSA9IGRza1tpXTsKLSAgICAgICAgZHNrW2kgKyA2NV0gPSBkc2tbaSArIDFdOwotICAgIH0KLX0KLQotLyoKLSAqIFRyaXBsZS1ERVMga2V5IHNjaGVkdWxlICgxMTItYml0LCBlbmNyeXB0aW9uKQotICovCi1pbnQgbWJlZHRsc19kZXMzX3NldDJrZXlfZW5jKG1iZWR0bHNfZGVzM19jb250ZXh0ICpjdHgsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIga2V5W01CRURUTFNfREVTX0tFWV9TSVpFICogMl0pCi17Ci0gICAgdWludDMyX3Qgc2tbOTZdOwotCi0gICAgZGVzM19zZXQya2V5KGN0eC0+c2ssIHNrLCBrZXkpOwotICAgIG1iZWR0bHNfcGxhdGZvcm1femVyb2l6ZShzaywgIHNpemVvZihzaykpOwotCi0gICAgcmV0dXJuIDA7Ci19Ci0KLS8qCi0gKiBUcmlwbGUtREVTIGtleSBzY2hlZHVsZSAoMTEyLWJpdCwgZGVjcnlwdGlvbikKLSAqLwotaW50IG1iZWR0bHNfZGVzM19zZXQya2V5X2RlYyhtYmVkdGxzX2RlczNfY29udGV4dCAqY3R4LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1bnNpZ25lZCBjaGFyIGtleVtNQkVEVExTX0RFU19LRVlfU0laRSAqIDJdKQotewotICAgIHVpbnQzMl90IHNrWzk2XTsKLQotICAgIGRlczNfc2V0MmtleShzaywgY3R4LT5zaywga2V5KTsKLSAgICBtYmVkdGxzX3BsYXRmb3JtX3plcm9pemUoc2ssICBzaXplb2Yoc2spKTsKLQotICAgIHJldHVybiAwOwotfQotCi1zdGF0aWMgdm9pZCBkZXMzX3NldDNrZXkodWludDMyX3QgZXNrWzk2XSwKLSAgICAgICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCBkc2tbOTZdLAotICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIga2V5WzI0XSkKLXsKLSAgICBpbnQgaTsKLQotICAgIG1iZWR0bHNfZGVzX3NldGtleShlc2ssIGtleSk7Ci0gICAgbWJlZHRsc19kZXNfc2V0a2V5KGRzayArIDMyLCBrZXkgKyAgOCk7Ci0gICAgbWJlZHRsc19kZXNfc2V0a2V5KGVzayArIDY0LCBrZXkgKyAxNik7Ci0KLSAgICBmb3IgKGkgPSAwOyBpIDwgMzI7IGkgKz0gMikgewotICAgICAgICBkc2tbaV0gPSBlc2tbOTQgLSBpXTsKLSAgICAgICAgZHNrW2kgKyAgMV0gPSBlc2tbOTUgLSBpXTsKLQotICAgICAgICBlc2tbaSArIDMyXSA9IGRza1s2MiAtIGldOwotICAgICAgICBlc2tbaSArIDMzXSA9IGRza1s2MyAtIGldOwotCi0gICAgICAgIGRza1tpICsgNjRdID0gZXNrWzMwIC0gaV07Ci0gICAgICAgIGRza1tpICsgNjVdID0gZXNrWzMxIC0gaV07Ci0gICAgfQotfQotCi0vKgotICogVHJpcGxlLURFUyBrZXkgc2NoZWR1bGUgKDE2OC1iaXQsIGVuY3J5cHRpb24pCi0gKi8KLWludCBtYmVkdGxzX2RlczNfc2V0M2tleV9lbmMobWJlZHRsc19kZXMzX2NvbnRleHQgKmN0eCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdW5zaWduZWQgY2hhciBrZXlbTUJFRFRMU19ERVNfS0VZX1NJWkUgKiAzXSkKLXsKLSAgICB1aW50MzJfdCBza1s5Nl07Ci0KLSAgICBkZXMzX3NldDNrZXkoY3R4LT5zaywgc2ssIGtleSk7Ci0gICAgbWJlZHRsc19wbGF0Zm9ybV96ZXJvaXplKHNrLCAgc2l6ZW9mKHNrKSk7Ci0KLSAgICByZXR1cm4gMDsKLX0KLQotLyoKLSAqIFRyaXBsZS1ERVMga2V5IHNjaGVkdWxlICgxNjgtYml0LCBkZWNyeXB0aW9uKQotICovCi1pbnQgbWJlZHRsc19kZXMzX3NldDNrZXlfZGVjKG1iZWR0bHNfZGVzM19jb250ZXh0ICpjdHgsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIga2V5W01CRURUTFNfREVTX0tFWV9TSVpFICogM10pCi17Ci0gICAgdWludDMyX3Qgc2tbOTZdOwotCi0gICAgZGVzM19zZXQza2V5KHNrLCBjdHgtPnNrLCBrZXkpOwotICAgIG1iZWR0bHNfcGxhdGZvcm1femVyb2l6ZShzaywgIHNpemVvZihzaykpOwotCi0gICAgcmV0dXJuIDA7Ci19Ci0KLS8qCi0gKiBERVMtRUNCIGJsb2NrIGVuY3J5cHRpb24vZGVjcnlwdGlvbgotICovCi0jaWYgIWRlZmluZWQoTUJFRFRMU19ERVNfQ1JZUFRfRUNCX0FMVCkKLWludCBtYmVkdGxzX2Rlc19jcnlwdF9lY2IobWJlZHRsc19kZXNfY29udGV4dCAqY3R4LAotICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1bnNpZ25lZCBjaGFyIGlucHV0WzhdLAotICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBjaGFyIG91dHB1dFs4XSkKLXsKLSAgICBpbnQgaTsKLSAgICB1aW50MzJfdCBYLCBZLCBULCAqU0s7Ci0KLSAgICBTSyA9IGN0eC0+c2s7Ci0KLSAgICBYID0gTUJFRFRMU19HRVRfVUlOVDMyX0JFKGlucHV0LCAwKTsKLSAgICBZID0gTUJFRFRMU19HRVRfVUlOVDMyX0JFKGlucHV0LCA0KTsKLQotICAgIERFU19JUChYLCBZKTsKLQotICAgIGZvciAoaSA9IDA7IGkgPCA4OyBpKyspIHsKLSAgICAgICAgREVTX1JPVU5EKFksIFgpOwotICAgICAgICBERVNfUk9VTkQoWCwgWSk7Ci0gICAgfQotCi0gICAgREVTX0ZQKFksIFgpOwotCi0gICAgTUJFRFRMU19QVVRfVUlOVDMyX0JFKFksIG91dHB1dCwgMCk7Ci0gICAgTUJFRFRMU19QVVRfVUlOVDMyX0JFKFgsIG91dHB1dCwgNCk7Ci0KLSAgICByZXR1cm4gMDsKLX0KLSNlbmRpZiAvKiAhTUJFRFRMU19ERVNfQ1JZUFRfRUNCX0FMVCAqLwotCi0jaWYgZGVmaW5lZChNQkVEVExTX0NJUEhFUl9NT0RFX0NCQykKLS8qCi0gKiBERVMtQ0JDIGJ1ZmZlciBlbmNyeXB0aW9uL2RlY3J5cHRpb24KLSAqLwotaW50IG1iZWR0bHNfZGVzX2NyeXB0X2NiYyhtYmVkdGxzX2Rlc19jb250ZXh0ICpjdHgsCi0gICAgICAgICAgICAgICAgICAgICAgICAgIGludCBtb2RlLAotICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgbGVuZ3RoLAotICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBjaGFyIGl2WzhdLAotICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1bnNpZ25lZCBjaGFyICppbnB1dCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgY2hhciAqb3V0cHV0KQotewotICAgIGludCByZXQgPSBNQkVEVExTX0VSUl9FUlJPUl9DT1JSVVBUSU9OX0RFVEVDVEVEOwotICAgIHVuc2lnbmVkIGNoYXIgdGVtcFs4XTsKLQotICAgIGlmIChsZW5ndGggJSA4KSB7Ci0gICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9ERVNfSU5WQUxJRF9JTlBVVF9MRU5HVEg7Ci0gICAgfQotCi0gICAgaWYgKG1vZGUgPT0gTUJFRFRMU19ERVNfRU5DUllQVCkgewotICAgICAgICB3aGlsZSAobGVuZ3RoID4gMCkgewotICAgICAgICAgICAgbWJlZHRsc194b3Iob3V0cHV0LCBpbnB1dCwgaXYsIDgpOwotCi0gICAgICAgICAgICByZXQgPSBtYmVkdGxzX2Rlc19jcnlwdF9lY2IoY3R4LCBvdXRwdXQsIG91dHB1dCk7Ci0gICAgICAgICAgICBpZiAocmV0ICE9IDApIHsKLSAgICAgICAgICAgICAgICBnb3RvIGV4aXQ7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBtZW1jcHkoaXYsIG91dHB1dCwgOCk7Ci0KLSAgICAgICAgICAgIGlucHV0ICArPSA4OwotICAgICAgICAgICAgb3V0cHV0ICs9IDg7Ci0gICAgICAgICAgICBsZW5ndGggLT0gODsKLSAgICAgICAgfQotICAgIH0gZWxzZSB7IC8qIE1CRURUTFNfREVTX0RFQ1JZUFQgKi8KLSAgICAgICAgd2hpbGUgKGxlbmd0aCA+IDApIHsKLSAgICAgICAgICAgIG1lbWNweSh0ZW1wLCBpbnB1dCwgOCk7Ci0gICAgICAgICAgICByZXQgPSBtYmVkdGxzX2Rlc19jcnlwdF9lY2IoY3R4LCBpbnB1dCwgb3V0cHV0KTsKLSAgICAgICAgICAgIGlmIChyZXQgIT0gMCkgewotICAgICAgICAgICAgICAgIGdvdG8gZXhpdDsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgbWJlZHRsc194b3Iob3V0cHV0LCBvdXRwdXQsIGl2LCA4KTsKLQotICAgICAgICAgICAgbWVtY3B5KGl2LCB0ZW1wLCA4KTsKLQotICAgICAgICAgICAgaW5wdXQgICs9IDg7Ci0gICAgICAgICAgICBvdXRwdXQgKz0gODsKLSAgICAgICAgICAgIGxlbmd0aCAtPSA4OwotICAgICAgICB9Ci0gICAgfQotICAgIHJldCA9IDA7Ci0KLWV4aXQ6Ci0gICAgcmV0dXJuIHJldDsKLX0KLSNlbmRpZiAvKiBNQkVEVExTX0NJUEhFUl9NT0RFX0NCQyAqLwotCi0vKgotICogM0RFUy1FQ0IgYmxvY2sgZW5jcnlwdGlvbi9kZWNyeXB0aW9uCi0gKi8KLSNpZiAhZGVmaW5lZChNQkVEVExTX0RFUzNfQ1JZUFRfRUNCX0FMVCkKLWludCBtYmVkdGxzX2RlczNfY3J5cHRfZWNiKG1iZWR0bHNfZGVzM19jb250ZXh0ICpjdHgsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1bnNpZ25lZCBjaGFyIGlucHV0WzhdLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgY2hhciBvdXRwdXRbOF0pCi17Ci0gICAgaW50IGk7Ci0gICAgdWludDMyX3QgWCwgWSwgVCwgKlNLOwotCi0gICAgU0sgPSBjdHgtPnNrOwotCi0gICAgWCA9IE1CRURUTFNfR0VUX1VJTlQzMl9CRShpbnB1dCwgMCk7Ci0gICAgWSA9IE1CRURUTFNfR0VUX1VJTlQzMl9CRShpbnB1dCwgNCk7Ci0KLSAgICBERVNfSVAoWCwgWSk7Ci0KLSAgICBmb3IgKGkgPSAwOyBpIDwgODsgaSsrKSB7Ci0gICAgICAgIERFU19ST1VORChZLCBYKTsKLSAgICAgICAgREVTX1JPVU5EKFgsIFkpOwotICAgIH0KLQotICAgIGZvciAoaSA9IDA7IGkgPCA4OyBpKyspIHsKLSAgICAgICAgREVTX1JPVU5EKFgsIFkpOwotICAgICAgICBERVNfUk9VTkQoWSwgWCk7Ci0gICAgfQotCi0gICAgZm9yIChpID0gMDsgaSA8IDg7IGkrKykgewotICAgICAgICBERVNfUk9VTkQoWSwgWCk7Ci0gICAgICAgIERFU19ST1VORChYLCBZKTsKLSAgICB9Ci0KLSAgICBERVNfRlAoWSwgWCk7Ci0KLSAgICBNQkVEVExTX1BVVF9VSU5UMzJfQkUoWSwgb3V0cHV0LCAwKTsKLSAgICBNQkVEVExTX1BVVF9VSU5UMzJfQkUoWCwgb3V0cHV0LCA0KTsKLQotICAgIHJldHVybiAwOwotfQotI2VuZGlmIC8qICFNQkVEVExTX0RFUzNfQ1JZUFRfRUNCX0FMVCAqLwotCi0jaWYgZGVmaW5lZChNQkVEVExTX0NJUEhFUl9NT0RFX0NCQykKLS8qCi0gKiAzREVTLUNCQyBidWZmZXIgZW5jcnlwdGlvbi9kZWNyeXB0aW9uCi0gKi8KLWludCBtYmVkdGxzX2RlczNfY3J5cHRfY2JjKG1iZWR0bHNfZGVzM19jb250ZXh0ICpjdHgsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgbW9kZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBsZW5ndGgsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBjaGFyIGl2WzhdLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdW5zaWduZWQgY2hhciAqaW5wdXQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBjaGFyICpvdXRwdXQpCi17Ci0gICAgaW50IHJldCA9IE1CRURUTFNfRVJSX0VSUk9SX0NPUlJVUFRJT05fREVURUNURUQ7Ci0gICAgdW5zaWduZWQgY2hhciB0ZW1wWzhdOwotCi0gICAgaWYgKGxlbmd0aCAlIDgpIHsKLSAgICAgICAgcmV0dXJuIE1CRURUTFNfRVJSX0RFU19JTlZBTElEX0lOUFVUX0xFTkdUSDsKLSAgICB9Ci0KLSAgICBpZiAobW9kZSA9PSBNQkVEVExTX0RFU19FTkNSWVBUKSB7Ci0gICAgICAgIHdoaWxlIChsZW5ndGggPiAwKSB7Ci0gICAgICAgICAgICBtYmVkdGxzX3hvcihvdXRwdXQsIGlucHV0LCBpdiwgOCk7Ci0KLSAgICAgICAgICAgIHJldCA9IG1iZWR0bHNfZGVzM19jcnlwdF9lY2IoY3R4LCBvdXRwdXQsIG91dHB1dCk7Ci0gICAgICAgICAgICBpZiAocmV0ICE9IDApIHsKLSAgICAgICAgICAgICAgICBnb3RvIGV4aXQ7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBtZW1jcHkoaXYsIG91dHB1dCwgOCk7Ci0KLSAgICAgICAgICAgIGlucHV0ICArPSA4OwotICAgICAgICAgICAgb3V0cHV0ICs9IDg7Ci0gICAgICAgICAgICBsZW5ndGggLT0gODsKLSAgICAgICAgfQotICAgIH0gZWxzZSB7IC8qIE1CRURUTFNfREVTX0RFQ1JZUFQgKi8KLSAgICAgICAgd2hpbGUgKGxlbmd0aCA+IDApIHsKLSAgICAgICAgICAgIG1lbWNweSh0ZW1wLCBpbnB1dCwgOCk7Ci0gICAgICAgICAgICByZXQgPSBtYmVkdGxzX2RlczNfY3J5cHRfZWNiKGN0eCwgaW5wdXQsIG91dHB1dCk7Ci0gICAgICAgICAgICBpZiAocmV0ICE9IDApIHsKLSAgICAgICAgICAgICAgICBnb3RvIGV4aXQ7Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIG1iZWR0bHNfeG9yKG91dHB1dCwgb3V0cHV0LCBpdiwgOCk7Ci0KLSAgICAgICAgICAgIG1lbWNweShpdiwgdGVtcCwgOCk7Ci0KLSAgICAgICAgICAgIGlucHV0ICArPSA4OwotICAgICAgICAgICAgb3V0cHV0ICs9IDg7Ci0gICAgICAgICAgICBsZW5ndGggLT0gODsKLSAgICAgICAgfQotICAgIH0KLSAgICByZXQgPSAwOwotCi1leGl0OgotICAgIHJldHVybiByZXQ7Ci19Ci0jZW5kaWYgLyogTUJFRFRMU19DSVBIRVJfTU9ERV9DQkMgKi8KLQotI2VuZGlmIC8qICFNQkVEVExTX0RFU19BTFQgKi8KLQotI2lmIGRlZmluZWQoTUJFRFRMU19TRUxGX1RFU1QpCi0vKgotICogREVTIGFuZCAzREVTIHRlc3QgdmVjdG9ycyBmcm9tOgotICoKLSAqIGh0dHA6Ly9jc3JjLm5pc3QuZ292L2dyb3Vwcy9TVE0vY2F2cC9kb2N1bWVudHMvZGVzL3RyaXBsZWRlcy12ZWN0b3JzLnppcAotICovCi1zdGF0aWMgY29uc3QgdW5zaWduZWQgY2hhciBkZXMzX3Rlc3Rfa2V5c1syNF0gPQotewotICAgIDB4MDEsIDB4MjMsIDB4NDUsIDB4NjcsIDB4ODksIDB4QUIsIDB4Q0QsIDB4RUYsCi0gICAgMHgyMywgMHg0NSwgMHg2NywgMHg4OSwgMHhBQiwgMHhDRCwgMHhFRiwgMHgwMSwKLSAgICAweDQ1LCAweDY3LCAweDg5LCAweEFCLCAweENELCAweEVGLCAweDAxLCAweDIzCi19OwotCi1zdGF0aWMgY29uc3QgdW5zaWduZWQgY2hhciBkZXMzX3Rlc3RfYnVmWzhdID0KLXsKLSAgICAweDRFLCAweDZGLCAweDc3LCAweDIwLCAweDY5LCAweDczLCAweDIwLCAweDc0Ci19OwotCi1zdGF0aWMgY29uc3QgdW5zaWduZWQgY2hhciBkZXMzX3Rlc3RfZWNiX2RlY1szXVs4XSA9Ci17Ci0gICAgeyAweDM3LCAweDJCLCAweDk4LCAweEJGLCAweDUyLCAweDY1LCAweEIwLCAweDU5IH0sCi0gICAgeyAweEMyLCAweDEwLCAweDE5LCAweDlDLCAweDM4LCAweDVBLCAweDY1LCAweEExIH0sCi0gICAgeyAweEEyLCAweDcwLCAweDU2LCAweDY4LCAweDY5LCAweEU1LCAweDE1LCAweDFEIH0KLX07Ci0KLXN0YXRpYyBjb25zdCB1bnNpZ25lZCBjaGFyIGRlczNfdGVzdF9lY2JfZW5jWzNdWzhdID0KLXsKLSAgICB7IDB4MUMsIDB4RDUsIDB4OTcsIDB4RUEsIDB4ODQsIDB4MjYsIDB4NzMsIDB4RkIgfSwKLSAgICB7IDB4QjMsIDB4OTIsIDB4NEQsIDB4RjMsIDB4QzUsIDB4QjUsIDB4NDIsIDB4OTMgfSwKLSAgICB7IDB4REEsIDB4MzcsIDB4NjQsIDB4NDEsIDB4QkEsIDB4NkYsIDB4NjIsIDB4NkYgfQotfTsKLQotI2lmIGRlZmluZWQoTUJFRFRMU19DSVBIRVJfTU9ERV9DQkMpCi1zdGF0aWMgY29uc3QgdW5zaWduZWQgY2hhciBkZXMzX3Rlc3RfaXZbOF0gPQotewotICAgIDB4MTIsIDB4MzQsIDB4NTYsIDB4NzgsIDB4OTAsIDB4QUIsIDB4Q0QsIDB4RUYsCi19OwotCi1zdGF0aWMgY29uc3QgdW5zaWduZWQgY2hhciBkZXMzX3Rlc3RfY2JjX2RlY1szXVs4XSA9Ci17Ci0gICAgeyAweDU4LCAweEQ5LCAweDQ4LCAweEVGLCAweDg1LCAweDE0LCAweDY1LCAweDlBIH0sCi0gICAgeyAweDVGLCAweEM4LCAweDc4LCAweEQ0LCAweEQ3LCAweDkyLCAweEQ5LCAweDU0IH0sCi0gICAgeyAweDI1LCAweEY5LCAweDc1LCAweDg1LCAweEE4LCAweDFFLCAweDQ4LCAweEJGIH0KLX07Ci0KLXN0YXRpYyBjb25zdCB1bnNpZ25lZCBjaGFyIGRlczNfdGVzdF9jYmNfZW5jWzNdWzhdID0KLXsKLSAgICB7IDB4OTEsIDB4MUMsIDB4NkQsIDB4Q0YsIDB4NDgsIDB4QTcsIDB4QzMsIDB4NEQgfSwKLSAgICB7IDB4NjAsIDB4MUEsIDB4NzYsIDB4OEYsIDB4QTEsIDB4RjksIDB4NjYsIDB4RjEgfSwKLSAgICB7IDB4QTEsIDB4NTAsIDB4MEYsIDB4OTksIDB4QjIsIDB4Q0QsIDB4NjQsIDB4NzYgfQotfTsKLSNlbmRpZiAvKiBNQkVEVExTX0NJUEhFUl9NT0RFX0NCQyAqLwotCi0vKgotICogQ2hlY2t1cCByb3V0aW5lCi0gKi8KLWludCBtYmVkdGxzX2Rlc19zZWxmX3Rlc3QoaW50IHZlcmJvc2UpCi17Ci0gICAgaW50IGksIGosIHUsIHYsIHJldCA9IDA7Ci0gICAgbWJlZHRsc19kZXNfY29udGV4dCBjdHg7Ci0gICAgbWJlZHRsc19kZXMzX2NvbnRleHQgY3R4MzsKLSAgICB1bnNpZ25lZCBjaGFyIGJ1Zls4XTsKLSNpZiBkZWZpbmVkKE1CRURUTFNfQ0lQSEVSX01PREVfQ0JDKQotICAgIHVuc2lnbmVkIGNoYXIgcHJ2WzhdOwotICAgIHVuc2lnbmVkIGNoYXIgaXZbOF07Ci0jZW5kaWYKLQotICAgIG1iZWR0bHNfZGVzX2luaXQoJmN0eCk7Ci0gICAgbWJlZHRsc19kZXMzX2luaXQoJmN0eDMpOwotICAgIC8qCi0gICAgICogRUNCIG1vZGUKLSAgICAgKi8KLSAgICBmb3IgKGkgPSAwOyBpIDwgNjsgaSsrKSB7Ci0gICAgICAgIHUgPSBpID4+IDE7Ci0gICAgICAgIHYgPSBpICAmIDE7Ci0KLSAgICAgICAgaWYgKHZlcmJvc2UgIT0gMCkgewotICAgICAgICAgICAgbWJlZHRsc19wcmludGYoIiAgREVTJWMtRUNCLSUzZCAoJXMpOiAiLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgKHUgPT0gMCkgPyAnICcgOiAnMycsIDU2ICsgdSAqIDU2LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgKHYgPT0gTUJFRFRMU19ERVNfREVDUllQVCkgPyAiZGVjIiA6ICJlbmMiKTsKLSAgICAgICAgfQotCi0gICAgICAgIG1lbWNweShidWYsIGRlczNfdGVzdF9idWYsIDgpOwotCi0gICAgICAgIHN3aXRjaCAoaSkgewotICAgICAgICAgICAgY2FzZSAwOgotICAgICAgICAgICAgICAgIHJldCA9IG1iZWR0bHNfZGVzX3NldGtleV9kZWMoJmN0eCwgZGVzM190ZXN0X2tleXMpOwotICAgICAgICAgICAgICAgIGJyZWFrOwotCi0gICAgICAgICAgICBjYXNlIDE6Ci0gICAgICAgICAgICAgICAgcmV0ID0gbWJlZHRsc19kZXNfc2V0a2V5X2VuYygmY3R4LCBkZXMzX3Rlc3Rfa2V5cyk7Ci0gICAgICAgICAgICAgICAgYnJlYWs7Ci0KLSAgICAgICAgICAgIGNhc2UgMjoKLSAgICAgICAgICAgICAgICByZXQgPSBtYmVkdGxzX2RlczNfc2V0MmtleV9kZWMoJmN0eDMsIGRlczNfdGVzdF9rZXlzKTsKLSAgICAgICAgICAgICAgICBicmVhazsKLQotICAgICAgICAgICAgY2FzZSAzOgotICAgICAgICAgICAgICAgIHJldCA9IG1iZWR0bHNfZGVzM19zZXQya2V5X2VuYygmY3R4MywgZGVzM190ZXN0X2tleXMpOwotICAgICAgICAgICAgICAgIGJyZWFrOwotCi0gICAgICAgICAgICBjYXNlIDQ6Ci0gICAgICAgICAgICAgICAgcmV0ID0gbWJlZHRsc19kZXMzX3NldDNrZXlfZGVjKCZjdHgzLCBkZXMzX3Rlc3Rfa2V5cyk7Ci0gICAgICAgICAgICAgICAgYnJlYWs7Ci0KLSAgICAgICAgICAgIGNhc2UgNToKLSAgICAgICAgICAgICAgICByZXQgPSBtYmVkdGxzX2RlczNfc2V0M2tleV9lbmMoJmN0eDMsIGRlczNfdGVzdF9rZXlzKTsKLSAgICAgICAgICAgICAgICBicmVhazsKLQotICAgICAgICAgICAgZGVmYXVsdDoKLSAgICAgICAgICAgICAgICByZXR1cm4gMTsKLSAgICAgICAgfQotICAgICAgICBpZiAocmV0ICE9IDApIHsKLSAgICAgICAgICAgIGdvdG8gZXhpdDsKLSAgICAgICAgfQotCi0gICAgICAgIGZvciAoaiA9IDA7IGogPCAxMDA7IGorKykgewotICAgICAgICAgICAgaWYgKHUgPT0gMCkgewotICAgICAgICAgICAgICAgIHJldCA9IG1iZWR0bHNfZGVzX2NyeXB0X2VjYigmY3R4LCBidWYsIGJ1Zik7Ci0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgIHJldCA9IG1iZWR0bHNfZGVzM19jcnlwdF9lY2IoJmN0eDMsIGJ1ZiwgYnVmKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmIChyZXQgIT0gMCkgewotICAgICAgICAgICAgICAgIGdvdG8gZXhpdDsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfQotCi0gICAgICAgIGlmICgodiA9PSBNQkVEVExTX0RFU19ERUNSWVBUICYmCi0gICAgICAgICAgICAgbWVtY21wKGJ1ZiwgZGVzM190ZXN0X2VjYl9kZWNbdV0sIDgpICE9IDApIHx8Ci0gICAgICAgICAgICAodiAhPSBNQkVEVExTX0RFU19ERUNSWVBUICYmCi0gICAgICAgICAgICAgbWVtY21wKGJ1ZiwgZGVzM190ZXN0X2VjYl9lbmNbdV0sIDgpICE9IDApKSB7Ci0gICAgICAgICAgICBpZiAodmVyYm9zZSAhPSAwKSB7Ci0gICAgICAgICAgICAgICAgbWJlZHRsc19wcmludGYoImZhaWxlZFxuIik7Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIHJldCA9IDE7Ci0gICAgICAgICAgICBnb3RvIGV4aXQ7Ci0gICAgICAgIH0KLQotICAgICAgICBpZiAodmVyYm9zZSAhPSAwKSB7Ci0gICAgICAgICAgICBtYmVkdGxzX3ByaW50ZigicGFzc2VkXG4iKTsKLSAgICAgICAgfQotICAgIH0KLQotICAgIGlmICh2ZXJib3NlICE9IDApIHsKLSAgICAgICAgbWJlZHRsc19wcmludGYoIlxuIik7Ci0gICAgfQotCi0jaWYgZGVmaW5lZChNQkVEVExTX0NJUEhFUl9NT0RFX0NCQykKLSAgICAvKgotICAgICAqIENCQyBtb2RlCi0gICAgICovCi0gICAgZm9yIChpID0gMDsgaSA8IDY7IGkrKykgewotICAgICAgICB1ID0gaSA+PiAxOwotICAgICAgICB2ID0gaSAgJiAxOwotCi0gICAgICAgIGlmICh2ZXJib3NlICE9IDApIHsKLSAgICAgICAgICAgIG1iZWR0bHNfcHJpbnRmKCIgIERFUyVjLUNCQy0lM2QgKCVzKTogIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICh1ID09IDApID8gJyAnIDogJzMnLCA1NiArIHUgKiA1NiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICh2ID09IE1CRURUTFNfREVTX0RFQ1JZUFQpID8gImRlYyIgOiAiZW5jIik7Ci0gICAgICAgIH0KLQotICAgICAgICBtZW1jcHkoaXYsICBkZXMzX3Rlc3RfaXYsICA4KTsKLSAgICAgICAgbWVtY3B5KHBydiwgZGVzM190ZXN0X2l2LCAgOCk7Ci0gICAgICAgIG1lbWNweShidWYsIGRlczNfdGVzdF9idWYsIDgpOwotCi0gICAgICAgIHN3aXRjaCAoaSkgewotICAgICAgICAgICAgY2FzZSAwOgotICAgICAgICAgICAgICAgIHJldCA9IG1iZWR0bHNfZGVzX3NldGtleV9kZWMoJmN0eCwgZGVzM190ZXN0X2tleXMpOwotICAgICAgICAgICAgICAgIGJyZWFrOwotCi0gICAgICAgICAgICBjYXNlIDE6Ci0gICAgICAgICAgICAgICAgcmV0ID0gbWJlZHRsc19kZXNfc2V0a2V5X2VuYygmY3R4LCBkZXMzX3Rlc3Rfa2V5cyk7Ci0gICAgICAgICAgICAgICAgYnJlYWs7Ci0KLSAgICAgICAgICAgIGNhc2UgMjoKLSAgICAgICAgICAgICAgICByZXQgPSBtYmVkdGxzX2RlczNfc2V0MmtleV9kZWMoJmN0eDMsIGRlczNfdGVzdF9rZXlzKTsKLSAgICAgICAgICAgICAgICBicmVhazsKLQotICAgICAgICAgICAgY2FzZSAzOgotICAgICAgICAgICAgICAgIHJldCA9IG1iZWR0bHNfZGVzM19zZXQya2V5X2VuYygmY3R4MywgZGVzM190ZXN0X2tleXMpOwotICAgICAgICAgICAgICAgIGJyZWFrOwotCi0gICAgICAgICAgICBjYXNlIDQ6Ci0gICAgICAgICAgICAgICAgcmV0ID0gbWJlZHRsc19kZXMzX3NldDNrZXlfZGVjKCZjdHgzLCBkZXMzX3Rlc3Rfa2V5cyk7Ci0gICAgICAgICAgICAgICAgYnJlYWs7Ci0KLSAgICAgICAgICAgIGNhc2UgNToKLSAgICAgICAgICAgICAgICByZXQgPSBtYmVkdGxzX2RlczNfc2V0M2tleV9lbmMoJmN0eDMsIGRlczNfdGVzdF9rZXlzKTsKLSAgICAgICAgICAgICAgICBicmVhazsKLQotICAgICAgICAgICAgZGVmYXVsdDoKLSAgICAgICAgICAgICAgICByZXR1cm4gMTsKLSAgICAgICAgfQotICAgICAgICBpZiAocmV0ICE9IDApIHsKLSAgICAgICAgICAgIGdvdG8gZXhpdDsKLSAgICAgICAgfQotCi0gICAgICAgIGlmICh2ID09IE1CRURUTFNfREVTX0RFQ1JZUFQpIHsKLSAgICAgICAgICAgIGZvciAoaiA9IDA7IGogPCAxMDA7IGorKykgewotICAgICAgICAgICAgICAgIGlmICh1ID09IDApIHsKLSAgICAgICAgICAgICAgICAgICAgcmV0ID0gbWJlZHRsc19kZXNfY3J5cHRfY2JjKCZjdHgsIHYsIDgsIGl2LCBidWYsIGJ1Zik7Ci0gICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgcmV0ID0gbWJlZHRsc19kZXMzX2NyeXB0X2NiYygmY3R4MywgdiwgOCwgaXYsIGJ1ZiwgYnVmKTsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgaWYgKHJldCAhPSAwKSB7Ci0gICAgICAgICAgICAgICAgICAgIGdvdG8gZXhpdDsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBmb3IgKGogPSAwOyBqIDwgMTAwOyBqKyspIHsKLSAgICAgICAgICAgICAgICB1bnNpZ25lZCBjaGFyIHRtcFs4XTsKLQotICAgICAgICAgICAgICAgIGlmICh1ID09IDApIHsKLSAgICAgICAgICAgICAgICAgICAgcmV0ID0gbWJlZHRsc19kZXNfY3J5cHRfY2JjKCZjdHgsIHYsIDgsIGl2LCBidWYsIGJ1Zik7Ci0gICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgcmV0ID0gbWJlZHRsc19kZXMzX2NyeXB0X2NiYygmY3R4MywgdiwgOCwgaXYsIGJ1ZiwgYnVmKTsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgaWYgKHJldCAhPSAwKSB7Ci0gICAgICAgICAgICAgICAgICAgIGdvdG8gZXhpdDsKLSAgICAgICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgICAgICBtZW1jcHkodG1wLCBwcnYsIDgpOwotICAgICAgICAgICAgICAgIG1lbWNweShwcnYsIGJ1ZiwgOCk7Ci0gICAgICAgICAgICAgICAgbWVtY3B5KGJ1ZiwgdG1wLCA4KTsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgbWVtY3B5KGJ1ZiwgcHJ2LCA4KTsKLSAgICAgICAgfQotCi0gICAgICAgIGlmICgodiA9PSBNQkVEVExTX0RFU19ERUNSWVBUICYmCi0gICAgICAgICAgICAgbWVtY21wKGJ1ZiwgZGVzM190ZXN0X2NiY19kZWNbdV0sIDgpICE9IDApIHx8Ci0gICAgICAgICAgICAodiAhPSBNQkVEVExTX0RFU19ERUNSWVBUICYmCi0gICAgICAgICAgICAgbWVtY21wKGJ1ZiwgZGVzM190ZXN0X2NiY19lbmNbdV0sIDgpICE9IDApKSB7Ci0gICAgICAgICAgICBpZiAodmVyYm9zZSAhPSAwKSB7Ci0gICAgICAgICAgICAgICAgbWJlZHRsc19wcmludGYoImZhaWxlZFxuIik7Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIHJldCA9IDE7Ci0gICAgICAgICAgICBnb3RvIGV4aXQ7Ci0gICAgICAgIH0KLQotICAgICAgICBpZiAodmVyYm9zZSAhPSAwKSB7Ci0gICAgICAgICAgICBtYmVkdGxzX3ByaW50ZigicGFzc2VkXG4iKTsKLSAgICAgICAgfQotICAgIH0KLSNlbmRpZiAvKiBNQkVEVExTX0NJUEhFUl9NT0RFX0NCQyAqLwotCi0gICAgaWYgKHZlcmJvc2UgIT0gMCkgewotICAgICAgICBtYmVkdGxzX3ByaW50ZigiXG4iKTsKLSAgICB9Ci0KLWV4aXQ6Ci0gICAgbWJlZHRsc19kZXNfZnJlZSgmY3R4KTsKLSAgICBtYmVkdGxzX2RlczNfZnJlZSgmY3R4Myk7Ci0KLSAgICBpZiAocmV0ICE9IDApIHsKLSAgICAgICAgcmV0ID0gMTsKLSAgICB9Ci0gICAgcmV0dXJuIHJldDsKLX0KLQotI2VuZGlmIC8qIE1CRURUTFNfU0VMRl9URVNUICovCi0KLSNlbmRpZiAvKiBNQkVEVExTX0RFU19DICovCmRpZmYgLS1naXQgYS9saWJyYXJ5L2RobS5jIGIvbGlicmFyeS9kaG0uYwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYmNjMDdmNS4uMDAwMDAwMAotLS0gYS9saWJyYXJ5L2RobS5jCisrKyAvZGV2L251bGwKQEAgLTEsNzEyICswLDAgQEAKLS8qCi0gKiAgRGlmZmllLUhlbGxtYW4tTWVya2xlIGtleSBleGNoYW5nZQotICoKLSAqICBDb3B5cmlnaHQgVGhlIE1iZWQgVExTIENvbnRyaWJ1dG9ycwotICogIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wIE9SIEdQTC0yLjAtb3ItbGF0ZXIKLSAqLwotLyoKLSAqICBUaGUgZm9sbG93aW5nIHNvdXJjZXMgd2VyZSByZWZlcmVuY2VkIGluIHRoZSBkZXNpZ24gb2YgdGhpcyBpbXBsZW1lbnRhdGlvbgotICogIG9mIHRoZSBEaWZmaWUtSGVsbG1hbi1NZXJrbGUgYWxnb3JpdGhtOgotICoKLSAqICBbMV0gSGFuZGJvb2sgb2YgQXBwbGllZCBDcnlwdG9ncmFwaHkgLSAxOTk3LCBDaGFwdGVyIDEyCi0gKiAgICAgIE1lbmV6ZXMsIHZhbiBPb3JzY2hvdCBhbmQgVmFuc3RvbmUKLSAqCi0gKi8KLQotI2luY2x1ZGUgImNvbW1vbi5oIgotCi0jaWYgZGVmaW5lZChNQkVEVExTX0RITV9DKQotCi0jaW5jbHVkZSAibWJlZHRscy9kaG0uaCIKLSNpbmNsdWRlICJtYmVkdGxzL3BsYXRmb3JtX3V0aWwuaCIKLSNpbmNsdWRlICJtYmVkdGxzL2Vycm9yLmgiCi0KLSNpbmNsdWRlIDxzdHJpbmcuaD4KLQotI2lmIGRlZmluZWQoTUJFRFRMU19QRU1fUEFSU0VfQykKLSNpbmNsdWRlICJtYmVkdGxzL3BlbS5oIgotI2VuZGlmCi0KLSNpZiBkZWZpbmVkKE1CRURUTFNfQVNOMV9QQVJTRV9DKQotI2luY2x1ZGUgIm1iZWR0bHMvYXNuMS5oIgotI2VuZGlmCi0KLSNpbmNsdWRlICJtYmVkdGxzL3BsYXRmb3JtLmgiCi0KLSNpZiAhZGVmaW5lZChNQkVEVExTX0RITV9BTFQpCi0KLS8qCi0gKiBoZWxwZXIgdG8gdmFsaWRhdGUgdGhlIG1iZWR0bHNfbXBpIHNpemUgYW5kIGltcG9ydCBpdAotICovCi1zdGF0aWMgaW50IGRobV9yZWFkX2JpZ251bShtYmVkdGxzX21waSAqWCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGNoYXIgKipwLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdW5zaWduZWQgY2hhciAqZW5kKQotewotICAgIGludCByZXQsIG47Ci0KLSAgICBpZiAoZW5kIC0gKnAgPCAyKSB7Ci0gICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9ESE1fQkFEX0lOUFVUX0RBVEE7Ci0gICAgfQotCi0gICAgbiA9IE1CRURUTFNfR0VUX1VJTlQxNl9CRSgqcCwgMCk7Ci0gICAgKCpwKSArPSAyOwotCi0gICAgaWYgKChzaXplX3QpIChlbmQgLSAqcCkgPCAoc2l6ZV90KSBuKSB7Ci0gICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9ESE1fQkFEX0lOUFVUX0RBVEE7Ci0gICAgfQotCi0gICAgaWYgKChyZXQgPSBtYmVkdGxzX21waV9yZWFkX2JpbmFyeShYLCAqcCwgbikpICE9IDApIHsKLSAgICAgICAgcmV0dXJuIE1CRURUTFNfRVJST1JfQUREKE1CRURUTFNfRVJSX0RITV9SRUFEX1BBUkFNU19GQUlMRUQsIHJldCk7Ci0gICAgfQotCi0gICAgKCpwKSArPSBuOwotCi0gICAgcmV0dXJuIDA7Ci19Ci0KLS8qCi0gKiBWZXJpZnkgc2FuaXR5IG9mIHBhcmFtZXRlciB3aXRoIHJlZ2FyZHMgdG8gUAotICoKLSAqIFBhcmFtZXRlciBzaG91bGQgYmU6IDIgPD0gcHVibGljX3BhcmFtIDw9IFAgLSAyCi0gKgotICogVGhpcyBtZWFucyB0aGF0IHdlIG5lZWQgdG8gcmV0dXJuIGFuIGVycm9yIGlmCi0gKiAgICAgICAgICAgICAgcHVibGljX3BhcmFtIDwgMiBvciBwdWJsaWNfcGFyYW0gPiBQLTIKLSAqCi0gKiBGb3IgbW9yZSBpbmZvcm1hdGlvbiBvbiB0aGUgYXR0YWNrLCBzZWU6Ci0gKiAgaHR0cDovL3d3dy5jbC5jYW0uYWMudWsvfnJqYTE0L1BhcGVycy9wc2FuZHFzLnBkZgotICogIGh0dHA6Ly93ZWIubnZkLm5pc3QuZ292L3ZpZXcvdnVsbi9kZXRhaWw/dnVsbklkPUNWRS0yMDA1LTI2NDMKLSAqLwotc3RhdGljIGludCBkaG1fY2hlY2tfcmFuZ2UoY29uc3QgbWJlZHRsc19tcGkgKnBhcmFtLCBjb25zdCBtYmVkdGxzX21waSAqUCkKLXsKLSAgICBtYmVkdGxzX21waSBVOwotICAgIGludCByZXQgPSAwOwotCi0gICAgbWJlZHRsc19tcGlfaW5pdCgmVSk7Ci0KLSAgICBNQkVEVExTX01QSV9DSEsobWJlZHRsc19tcGlfc3ViX2ludCgmVSwgUCwgMikpOwotCi0gICAgaWYgKG1iZWR0bHNfbXBpX2NtcF9pbnQocGFyYW0sIDIpIDwgMCB8fAotICAgICAgICBtYmVkdGxzX21waV9jbXBfbXBpKHBhcmFtLCAmVSkgPiAwKSB7Ci0gICAgICAgIHJldCA9IE1CRURUTFNfRVJSX0RITV9CQURfSU5QVVRfREFUQTsKLSAgICB9Ci0KLWNsZWFudXA6Ci0gICAgbWJlZHRsc19tcGlfZnJlZSgmVSk7Ci0gICAgcmV0dXJuIHJldDsKLX0KLQotdm9pZCBtYmVkdGxzX2RobV9pbml0KG1iZWR0bHNfZGhtX2NvbnRleHQgKmN0eCkKLXsKLSAgICBtZW1zZXQoY3R4LCAwLCBzaXplb2YobWJlZHRsc19kaG1fY29udGV4dCkpOwotfQotCi1zaXplX3QgbWJlZHRsc19kaG1fZ2V0X2JpdGxlbihjb25zdCBtYmVkdGxzX2RobV9jb250ZXh0ICpjdHgpCi17Ci0gICAgcmV0dXJuIG1iZWR0bHNfbXBpX2JpdGxlbigmY3R4LT5QKTsKLX0KLQotc2l6ZV90IG1iZWR0bHNfZGhtX2dldF9sZW4oY29uc3QgbWJlZHRsc19kaG1fY29udGV4dCAqY3R4KQotewotICAgIHJldHVybiBtYmVkdGxzX21waV9zaXplKCZjdHgtPlApOwotfQotCi1pbnQgbWJlZHRsc19kaG1fZ2V0X3ZhbHVlKGNvbnN0IG1iZWR0bHNfZGhtX2NvbnRleHQgKmN0eCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgbWJlZHRsc19kaG1fcGFyYW1ldGVyIHBhcmFtLAotICAgICAgICAgICAgICAgICAgICAgICAgICBtYmVkdGxzX21waSAqZGVzdCkKLXsKLSAgICBjb25zdCBtYmVkdGxzX21waSAqc3JjID0gTlVMTDsKLSAgICBzd2l0Y2ggKHBhcmFtKSB7Ci0gICAgICAgIGNhc2UgTUJFRFRMU19ESE1fUEFSQU1fUDoKLSAgICAgICAgICAgIHNyYyA9ICZjdHgtPlA7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBNQkVEVExTX0RITV9QQVJBTV9HOgotICAgICAgICAgICAgc3JjID0gJmN0eC0+RzsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIE1CRURUTFNfREhNX1BBUkFNX1g6Ci0gICAgICAgICAgICBzcmMgPSAmY3R4LT5YOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgTUJFRFRMU19ESE1fUEFSQU1fR1g6Ci0gICAgICAgICAgICBzcmMgPSAmY3R4LT5HWDsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIE1CRURUTFNfREhNX1BBUkFNX0dZOgotICAgICAgICAgICAgc3JjID0gJmN0eC0+R1k7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBNQkVEVExTX0RITV9QQVJBTV9LOgotICAgICAgICAgICAgc3JjID0gJmN0eC0+SzsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBkZWZhdWx0OgotICAgICAgICAgICAgcmV0dXJuIE1CRURUTFNfRVJSX0RITV9CQURfSU5QVVRfREFUQTsKLSAgICB9Ci0gICAgcmV0dXJuIG1iZWR0bHNfbXBpX2NvcHkoZGVzdCwgc3JjKTsKLX0KLQotLyoKLSAqIFBhcnNlIHRoZSBTZXJ2ZXJLZXlFeGNoYW5nZSBwYXJhbWV0ZXJzCi0gKi8KLWludCBtYmVkdGxzX2RobV9yZWFkX3BhcmFtcyhtYmVkdGxzX2RobV9jb250ZXh0ICpjdHgsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgY2hhciAqKnAsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdW5zaWduZWQgY2hhciAqZW5kKQotewotICAgIGludCByZXQgPSBNQkVEVExTX0VSUl9FUlJPUl9DT1JSVVBUSU9OX0RFVEVDVEVEOwotCi0gICAgaWYgKChyZXQgPSBkaG1fcmVhZF9iaWdudW0oJmN0eC0+UCwgIHAsIGVuZCkpICE9IDAgfHwKLSAgICAgICAgKHJldCA9IGRobV9yZWFkX2JpZ251bSgmY3R4LT5HLCAgcCwgZW5kKSkgIT0gMCB8fAotICAgICAgICAocmV0ID0gZGhtX3JlYWRfYmlnbnVtKCZjdHgtPkdZLCBwLCBlbmQpKSAhPSAwKSB7Ci0gICAgICAgIHJldHVybiByZXQ7Ci0gICAgfQotCi0gICAgaWYgKChyZXQgPSBkaG1fY2hlY2tfcmFuZ2UoJmN0eC0+R1ksICZjdHgtPlApKSAhPSAwKSB7Ci0gICAgICAgIHJldHVybiByZXQ7Ci0gICAgfQotCi0gICAgcmV0dXJuIDA7Ci19Ci0KLS8qCi0gKiBQaWNrIGEgcmFuZG9tIFIgaW4gdGhlIHJhbmdlIFsyLCBNLTJdIGZvciBibGluZGluZyBvciBrZXkgZ2VuZXJhdGlvbi4KLSAqLwotc3RhdGljIGludCBkaG1fcmFuZG9tX2JlbG93KG1iZWR0bHNfbXBpICpSLCBjb25zdCBtYmVkdGxzX21waSAqTSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgKCpmX3JuZykodm9pZCAqLCB1bnNpZ25lZCBjaGFyICosIHNpemVfdCksIHZvaWQgKnBfcm5nKQotewotICAgIGludCByZXQ7Ci0KLSAgICBNQkVEVExTX01QSV9DSEsobWJlZHRsc19tcGlfcmFuZG9tKFIsIDMsIE0sIGZfcm5nLCBwX3JuZykpOwotICAgIE1CRURUTFNfTVBJX0NISyhtYmVkdGxzX21waV9zdWJfaW50KFIsIFIsIDEpKTsKLQotY2xlYW51cDoKLSAgICByZXR1cm4gcmV0OwotfQotCi1zdGF0aWMgaW50IGRobV9tYWtlX2NvbW1vbihtYmVkdGxzX2RobV9jb250ZXh0ICpjdHgsIGludCB4X3NpemUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgKCpmX3JuZykodm9pZCAqLCB1bnNpZ25lZCBjaGFyICosIHNpemVfdCksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICB2b2lkICpwX3JuZykKLXsKLSAgICBpbnQgcmV0ID0gMDsKLQotICAgIGlmIChtYmVkdGxzX21waV9jbXBfaW50KCZjdHgtPlAsIDApID09IDApIHsKLSAgICAgICAgcmV0dXJuIE1CRURUTFNfRVJSX0RITV9CQURfSU5QVVRfREFUQTsKLSAgICB9Ci0gICAgaWYgKHhfc2l6ZSA8IDApIHsKLSAgICAgICAgcmV0dXJuIE1CRURUTFNfRVJSX0RITV9CQURfSU5QVVRfREFUQTsKLSAgICB9Ci0KLSAgICBpZiAoKHVuc2lnbmVkKSB4X3NpemUgPCBtYmVkdGxzX21waV9zaXplKCZjdHgtPlApKSB7Ci0gICAgICAgIE1CRURUTFNfTVBJX0NISyhtYmVkdGxzX21waV9maWxsX3JhbmRvbSgmY3R4LT5YLCB4X3NpemUsIGZfcm5nLCBwX3JuZykpOwotICAgIH0gZWxzZSB7Ci0gICAgICAgIC8qIEdlbmVyYXRlIFggYXMgbGFyZ2UgYXMgcG9zc2libGUgKCA8PSBQIC0gMiApICovCi0gICAgICAgIHJldCA9IGRobV9yYW5kb21fYmVsb3coJmN0eC0+WCwgJmN0eC0+UCwgZl9ybmcsIHBfcm5nKTsKLSAgICAgICAgaWYgKHJldCA9PSBNQkVEVExTX0VSUl9NUElfTk9UX0FDQ0VQVEFCTEUpIHsKLSAgICAgICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9ESE1fTUFLRV9QQVJBTVNfRkFJTEVEOwotICAgICAgICB9Ci0gICAgICAgIGlmIChyZXQgIT0gMCkgewotICAgICAgICAgICAgcmV0dXJuIHJldDsKLSAgICAgICAgfQotICAgIH0KLQotICAgIC8qCi0gICAgICogQ2FsY3VsYXRlIEdYID0gR15YIG1vZCBQCi0gICAgICovCi0gICAgTUJFRFRMU19NUElfQ0hLKG1iZWR0bHNfbXBpX2V4cF9tb2QoJmN0eC0+R1gsICZjdHgtPkcsICZjdHgtPlgsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJmN0eC0+UCwgJmN0eC0+UlApKTsKLQotICAgIGlmICgocmV0ID0gZGhtX2NoZWNrX3JhbmdlKCZjdHgtPkdYLCAmY3R4LT5QKSkgIT0gMCkgewotICAgICAgICByZXR1cm4gcmV0OwotICAgIH0KLQotY2xlYW51cDoKLSAgICByZXR1cm4gcmV0OwotfQotCi0vKgotICogU2V0dXAgYW5kIHdyaXRlIHRoZSBTZXJ2ZXJLZXlFeGNoYW5nZSBwYXJhbWV0ZXJzCi0gKi8KLWludCBtYmVkdGxzX2RobV9tYWtlX3BhcmFtcyhtYmVkdGxzX2RobV9jb250ZXh0ICpjdHgsIGludCB4X3NpemUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgY2hhciAqb3V0cHV0LCBzaXplX3QgKm9sZW4sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50ICgqZl9ybmcpKHZvaWQgKiwgdW5zaWduZWQgY2hhciAqLCBzaXplX3QpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZvaWQgKnBfcm5nKQotewotICAgIGludCByZXQ7Ci0gICAgc2l6ZV90IG4xLCBuMiwgbjM7Ci0gICAgdW5zaWduZWQgY2hhciAqcDsKLQotICAgIHJldCA9IGRobV9tYWtlX2NvbW1vbihjdHgsIHhfc2l6ZSwgZl9ybmcsIHBfcm5nKTsKLSAgICBpZiAocmV0ICE9IDApIHsKLSAgICAgICAgZ290byBjbGVhbnVwOwotICAgIH0KLQotICAgIC8qCi0gICAgICogRXhwb3J0IFAsIEcsIEdYLiBSRkMgNTI0NiDCpzQuNCBzdGF0ZXMgdGhhdCAibGVhZGluZyB6ZXJvIG9jdGV0cyBhcmUKLSAgICAgKiBub3QgcmVxdWlyZWQiLiBXZSBvbWl0IGxlYWRpbmcgemVyb3MgZm9yIGNvbXBhY3RuZXNzLgotICAgICAqLwotI2RlZmluZSBESE1fTVBJX0VYUE9SVChYLCBuKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICBkbyB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICAgICAgTUJFRFRMU19NUElfQ0hLKG1iZWR0bHNfbXBpX3dyaXRlX2JpbmFyeSgoWCksICAgICAgICAgICAgICAgXAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHAgKyAyLCAgICAgICAgICAgICAgIFwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobikpKTsgICAgICAgICAgIFwKLSAgICAgICAgKnArKyA9IE1CRURUTFNfQllURV8xKG4pOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgICAgICpwKysgPSBNQkVEVExTX0JZVEVfMChuKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgICAgICBwICs9IChuKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICB9IHdoaWxlICgwKQotCi0gICAgbjEgPSBtYmVkdGxzX21waV9zaXplKCZjdHgtPlApOwotICAgIG4yID0gbWJlZHRsc19tcGlfc2l6ZSgmY3R4LT5HKTsKLSAgICBuMyA9IG1iZWR0bHNfbXBpX3NpemUoJmN0eC0+R1gpOwotCi0gICAgcCA9IG91dHB1dDsKLSAgICBESE1fTVBJX0VYUE9SVCgmY3R4LT5QLCBuMSk7Ci0gICAgREhNX01QSV9FWFBPUlQoJmN0eC0+RywgbjIpOwotICAgIERITV9NUElfRVhQT1JUKCZjdHgtPkdYLCBuMyk7Ci0KLSAgICAqb2xlbiA9IChzaXplX3QpIChwIC0gb3V0cHV0KTsKLQotY2xlYW51cDoKLSAgICBpZiAocmV0ICE9IDAgJiYgcmV0ID4gLTEyOCkgewotICAgICAgICByZXQgPSBNQkVEVExTX0VSUk9SX0FERChNQkVEVExTX0VSUl9ESE1fTUFLRV9QQVJBTVNfRkFJTEVELCByZXQpOwotICAgIH0KLSAgICByZXR1cm4gcmV0OwotfQotCi0vKgotICogU2V0IHByaW1lIG1vZHVsdXMgYW5kIGdlbmVyYXRvcgotICovCi1pbnQgbWJlZHRsc19kaG1fc2V0X2dyb3VwKG1iZWR0bHNfZGhtX2NvbnRleHQgKmN0eCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbWJlZHRsc19tcGkgKlAsCi0gICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IG1iZWR0bHNfbXBpICpHKQotewotICAgIGludCByZXQgPSBNQkVEVExTX0VSUl9FUlJPUl9DT1JSVVBUSU9OX0RFVEVDVEVEOwotCi0gICAgaWYgKChyZXQgPSBtYmVkdGxzX21waV9jb3B5KCZjdHgtPlAsIFApKSAhPSAwIHx8Ci0gICAgICAgIChyZXQgPSBtYmVkdGxzX21waV9jb3B5KCZjdHgtPkcsIEcpKSAhPSAwKSB7Ci0gICAgICAgIHJldHVybiBNQkVEVExTX0VSUk9SX0FERChNQkVEVExTX0VSUl9ESE1fU0VUX0dST1VQX0ZBSUxFRCwgcmV0KTsKLSAgICB9Ci0KLSAgICByZXR1cm4gMDsKLX0KLQotLyoKLSAqIEltcG9ydCB0aGUgcGVlcidzIHB1YmxpYyB2YWx1ZSBHXlkKLSAqLwotaW50IG1iZWR0bHNfZGhtX3JlYWRfcHVibGljKG1iZWR0bHNfZGhtX2NvbnRleHQgKmN0eCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1bnNpZ25lZCBjaGFyICppbnB1dCwgc2l6ZV90IGlsZW4pCi17Ci0gICAgaW50IHJldCA9IE1CRURUTFNfRVJSX0VSUk9SX0NPUlJVUFRJT05fREVURUNURUQ7Ci0KLSAgICBpZiAoaWxlbiA8IDEgfHwgaWxlbiA+IG1iZWR0bHNfZGhtX2dldF9sZW4oY3R4KSkgewotICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfREhNX0JBRF9JTlBVVF9EQVRBOwotICAgIH0KLQotICAgIGlmICgocmV0ID0gbWJlZHRsc19tcGlfcmVhZF9iaW5hcnkoJmN0eC0+R1ksIGlucHV0LCBpbGVuKSkgIT0gMCkgewotICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJPUl9BREQoTUJFRFRMU19FUlJfREhNX1JFQURfUFVCTElDX0ZBSUxFRCwgcmV0KTsKLSAgICB9Ci0KLSAgICByZXR1cm4gMDsKLX0KLQotLyoKLSAqIENyZWF0ZSBvd24gcHJpdmF0ZSB2YWx1ZSBYIGFuZCBleHBvcnQgR15YCi0gKi8KLWludCBtYmVkdGxzX2RobV9tYWtlX3B1YmxpYyhtYmVkdGxzX2RobV9jb250ZXh0ICpjdHgsIGludCB4X3NpemUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgY2hhciAqb3V0cHV0LCBzaXplX3Qgb2xlbiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgKCpmX3JuZykodm9pZCAqLCB1bnNpZ25lZCBjaGFyICosIHNpemVfdCksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgdm9pZCAqcF9ybmcpCi17Ci0gICAgaW50IHJldDsKLQotICAgIGlmIChvbGVuIDwgMSB8fCBvbGVuID4gbWJlZHRsc19kaG1fZ2V0X2xlbihjdHgpKSB7Ci0gICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9ESE1fQkFEX0lOUFVUX0RBVEE7Ci0gICAgfQotCi0gICAgcmV0ID0gZGhtX21ha2VfY29tbW9uKGN0eCwgeF9zaXplLCBmX3JuZywgcF9ybmcpOwotICAgIGlmIChyZXQgPT0gTUJFRFRMU19FUlJfREhNX01BS0VfUEFSQU1TX0ZBSUxFRCkgewotICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfREhNX01BS0VfUFVCTElDX0ZBSUxFRDsKLSAgICB9Ci0gICAgaWYgKHJldCAhPSAwKSB7Ci0gICAgICAgIGdvdG8gY2xlYW51cDsKLSAgICB9Ci0KLSAgICBNQkVEVExTX01QSV9DSEsobWJlZHRsc19tcGlfd3JpdGVfYmluYXJ5KCZjdHgtPkdYLCBvdXRwdXQsIG9sZW4pKTsKLQotY2xlYW51cDoKLSAgICBpZiAocmV0ICE9IDAgJiYgcmV0ID4gLTEyOCkgewotICAgICAgICByZXQgPSBNQkVEVExTX0VSUk9SX0FERChNQkVEVExTX0VSUl9ESE1fTUFLRV9QVUJMSUNfRkFJTEVELCByZXQpOwotICAgIH0KLSAgICByZXR1cm4gcmV0OwotfQotCi0KLS8qCi0gKiBVc2UgdGhlIGJsaW5kaW5nIG1ldGhvZCBhbmQgb3B0aW1pc2F0aW9uIHN1Z2dlc3RlZCBpbiBzZWN0aW9uIDEwIG9mOgotICogIEtPQ0hFUiwgUGF1bCBDLiBUaW1pbmcgYXR0YWNrcyBvbiBpbXBsZW1lbnRhdGlvbnMgb2YgRGlmZmllLUhlbGxtYW4sIFJTQSwKLSAqICBEU1MsIGFuZCBvdGhlciBzeXN0ZW1zLiBJbiA6IEFkdmFuY2VzIGluIENyeXB0b2xvZ3ktQ1JZUFRPJzk2LiBTcHJpbmdlcgotICogIEJlcmxpbiBIZWlkZWxiZXJnLCAxOTk2LiBwLiAxMDQtMTEzLgotICovCi1zdGF0aWMgaW50IGRobV91cGRhdGVfYmxpbmRpbmcobWJlZHRsc19kaG1fY29udGV4dCAqY3R4LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCAoKmZfcm5nKSh2b2lkICosIHVuc2lnbmVkIGNoYXIgKiwgc2l6ZV90KSwgdm9pZCAqcF9ybmcpCi17Ci0gICAgaW50IHJldDsKLSAgICBtYmVkdGxzX21waSBSOwotCi0gICAgbWJlZHRsc19tcGlfaW5pdCgmUik7Ci0KLSAgICAvKgotICAgICAqIERvbid0IHVzZSBhbnkgYmxpbmRpbmcgdGhlIGZpcnN0IHRpbWUgYSBwYXJ0aWN1bGFyIFggaXMgdXNlZCwKLSAgICAgKiBidXQgcmVtZW1iZXIgaXQgdG8gdXNlIGJsaW5kaW5nIG5leHQgdGltZS4KLSAgICAgKi8KLSAgICBpZiAobWJlZHRsc19tcGlfY21wX21waSgmY3R4LT5YLCAmY3R4LT5wWCkgIT0gMCkgewotICAgICAgICBNQkVEVExTX01QSV9DSEsobWJlZHRsc19tcGlfY29weSgmY3R4LT5wWCwgJmN0eC0+WCkpOwotICAgICAgICBNQkVEVExTX01QSV9DSEsobWJlZHRsc19tcGlfbHNldCgmY3R4LT5WaSwgMSkpOwotICAgICAgICBNQkVEVExTX01QSV9DSEsobWJlZHRsc19tcGlfbHNldCgmY3R4LT5WZiwgMSkpOwotCi0gICAgICAgIHJldHVybiAwOwotICAgIH0KLQotICAgIC8qCi0gICAgICogT2ssIHdlIG5lZWQgYmxpbmRpbmcuIENhbiB3ZSByZS11c2UgZXhpc3RpbmcgdmFsdWVzPwotICAgICAqIElmIHllcywganVzdCB1cGRhdGUgdGhlbSBieSBzcXVhcmluZyB0aGVtLgotICAgICAqLwotICAgIGlmIChtYmVkdGxzX21waV9jbXBfaW50KCZjdHgtPlZpLCAxKSAhPSAwKSB7Ci0gICAgICAgIE1CRURUTFNfTVBJX0NISyhtYmVkdGxzX21waV9tdWxfbXBpKCZjdHgtPlZpLCAmY3R4LT5WaSwgJmN0eC0+VmkpKTsKLSAgICAgICAgTUJFRFRMU19NUElfQ0hLKG1iZWR0bHNfbXBpX21vZF9tcGkoJmN0eC0+VmksICZjdHgtPlZpLCAmY3R4LT5QKSk7Ci0KLSAgICAgICAgTUJFRFRMU19NUElfQ0hLKG1iZWR0bHNfbXBpX211bF9tcGkoJmN0eC0+VmYsICZjdHgtPlZmLCAmY3R4LT5WZikpOwotICAgICAgICBNQkVEVExTX01QSV9DSEsobWJlZHRsc19tcGlfbW9kX21waSgmY3R4LT5WZiwgJmN0eC0+VmYsICZjdHgtPlApKTsKLQotICAgICAgICByZXR1cm4gMDsKLSAgICB9Ci0KLSAgICAvKgotICAgICAqIFdlIG5lZWQgdG8gZ2VuZXJhdGUgYmxpbmRpbmcgdmFsdWVzIGZyb20gc2NyYXRjaAotICAgICAqLwotCi0gICAgLyogVmkgPSByYW5kb20oIDIsIFAtMiApICovCi0gICAgTUJFRFRMU19NUElfQ0hLKGRobV9yYW5kb21fYmVsb3coJmN0eC0+VmksICZjdHgtPlAsIGZfcm5nLCBwX3JuZykpOwotCi0gICAgLyogVmYgPSBWaV4tWCBtb2QgUAotICAgICAqIEZpcnN0IGNvbXB1dGUgVmleLTEgPSBSICogKFIgVmkpXi0xLCAoYXZvaWRpbmcgbGVha3MgZnJvbSBpbnZfbW9kKSwKLSAgICAgKiB0aGVuIGVsZXZhdGUgdG8gdGhlIFh0aCBwb3dlci4gKi8KLSAgICBNQkVEVExTX01QSV9DSEsoZGhtX3JhbmRvbV9iZWxvdygmUiwgJmN0eC0+UCwgZl9ybmcsIHBfcm5nKSk7Ci0gICAgTUJFRFRMU19NUElfQ0hLKG1iZWR0bHNfbXBpX211bF9tcGkoJmN0eC0+VmYsICZjdHgtPlZpLCAmUikpOwotICAgIE1CRURUTFNfTVBJX0NISyhtYmVkdGxzX21waV9tb2RfbXBpKCZjdHgtPlZmLCAmY3R4LT5WZiwgJmN0eC0+UCkpOwotICAgIE1CRURUTFNfTVBJX0NISyhtYmVkdGxzX21waV9pbnZfbW9kKCZjdHgtPlZmLCAmY3R4LT5WZiwgJmN0eC0+UCkpOwotICAgIE1CRURUTFNfTVBJX0NISyhtYmVkdGxzX21waV9tdWxfbXBpKCZjdHgtPlZmLCAmY3R4LT5WZiwgJlIpKTsKLSAgICBNQkVEVExTX01QSV9DSEsobWJlZHRsc19tcGlfbW9kX21waSgmY3R4LT5WZiwgJmN0eC0+VmYsICZjdHgtPlApKTsKLQotICAgIE1CRURUTFNfTVBJX0NISyhtYmVkdGxzX21waV9leHBfbW9kKCZjdHgtPlZmLCAmY3R4LT5WZiwgJmN0eC0+WCwgJmN0eC0+UCwgJmN0eC0+UlApKTsKLQotY2xlYW51cDoKLSAgICBtYmVkdGxzX21waV9mcmVlKCZSKTsKLQotICAgIHJldHVybiByZXQ7Ci19Ci0KLS8qCi0gKiBEZXJpdmUgYW5kIGV4cG9ydCB0aGUgc2hhcmVkIHNlY3JldCAoR15ZKV5YIG1vZCBQCi0gKi8KLWludCBtYmVkdGxzX2RobV9jYWxjX3NlY3JldChtYmVkdGxzX2RobV9jb250ZXh0ICpjdHgsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgY2hhciAqb3V0cHV0LCBzaXplX3Qgb3V0cHV0X3NpemUsIHNpemVfdCAqb2xlbiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgKCpmX3JuZykodm9pZCAqLCB1bnNpZ25lZCBjaGFyICosIHNpemVfdCksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgdm9pZCAqcF9ybmcpCi17Ci0gICAgaW50IHJldCA9IE1CRURUTFNfRVJSX0VSUk9SX0NPUlJVUFRJT05fREVURUNURUQ7Ci0gICAgbWJlZHRsc19tcGkgR1liOwotCi0gICAgaWYgKGZfcm5nID09IE5VTEwpIHsKLSAgICAgICAgcmV0dXJuIE1CRURUTFNfRVJSX0RITV9CQURfSU5QVVRfREFUQTsKLSAgICB9Ci0KLSAgICBpZiAob3V0cHV0X3NpemUgPCBtYmVkdGxzX2RobV9nZXRfbGVuKGN0eCkpIHsKLSAgICAgICAgcmV0dXJuIE1CRURUTFNfRVJSX0RITV9CQURfSU5QVVRfREFUQTsKLSAgICB9Ci0KLSAgICBpZiAoKHJldCA9IGRobV9jaGVja19yYW5nZSgmY3R4LT5HWSwgJmN0eC0+UCkpICE9IDApIHsKLSAgICAgICAgcmV0dXJuIHJldDsKLSAgICB9Ci0KLSAgICBtYmVkdGxzX21waV9pbml0KCZHWWIpOwotCi0gICAgLyogQmxpbmQgcGVlcidzIHZhbHVlICovCi0gICAgTUJFRFRMU19NUElfQ0hLKGRobV91cGRhdGVfYmxpbmRpbmcoY3R4LCBmX3JuZywgcF9ybmcpKTsKLSAgICBNQkVEVExTX01QSV9DSEsobWJlZHRsc19tcGlfbXVsX21waSgmR1liLCAmY3R4LT5HWSwgJmN0eC0+VmkpKTsKLSAgICBNQkVEVExTX01QSV9DSEsobWJlZHRsc19tcGlfbW9kX21waSgmR1liLCAmR1liLCAmY3R4LT5QKSk7Ci0KLSAgICAvKiBEbyBtb2R1bGFyIGV4cG9uZW50aWF0aW9uICovCi0gICAgTUJFRFRMU19NUElfQ0hLKG1iZWR0bHNfbXBpX2V4cF9tb2QoJmN0eC0+SywgJkdZYiwgJmN0eC0+WCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmY3R4LT5QLCAmY3R4LT5SUCkpOwotCi0gICAgLyogVW5ibGluZCBzZWNyZXQgdmFsdWUgKi8KLSAgICBNQkVEVExTX01QSV9DSEsobWJlZHRsc19tcGlfbXVsX21waSgmY3R4LT5LLCAmY3R4LT5LLCAmY3R4LT5WZikpOwotICAgIE1CRURUTFNfTVBJX0NISyhtYmVkdGxzX21waV9tb2RfbXBpKCZjdHgtPkssICZjdHgtPkssICZjdHgtPlApKTsKLQotICAgIC8qIE91dHB1dCB0aGUgc2VjcmV0IHdpdGhvdXQgYW55IGxlYWRpbmcgemVybyBieXRlLiBUaGlzIGlzIG1hbmRhdG9yeQotICAgICAqIGZvciBUTFMgcGVyIFJGQyA1MjQ2IMKnOC4xLjIuICovCi0gICAgKm9sZW4gPSBtYmVkdGxzX21waV9zaXplKCZjdHgtPkspOwotICAgIE1CRURUTFNfTVBJX0NISyhtYmVkdGxzX21waV93cml0ZV9iaW5hcnkoJmN0eC0+Sywgb3V0cHV0LCAqb2xlbikpOwotCi1jbGVhbnVwOgotICAgIG1iZWR0bHNfbXBpX2ZyZWUoJkdZYik7Ci0KLSAgICBpZiAocmV0ICE9IDApIHsKLSAgICAgICAgcmV0dXJuIE1CRURUTFNfRVJST1JfQUREKE1CRURUTFNfRVJSX0RITV9DQUxDX1NFQ1JFVF9GQUlMRUQsIHJldCk7Ci0gICAgfQotCi0gICAgcmV0dXJuIDA7Ci19Ci0KLS8qCi0gKiBGcmVlIHRoZSBjb21wb25lbnRzIG9mIGEgREhNIGtleQotICovCi12b2lkIG1iZWR0bHNfZGhtX2ZyZWUobWJlZHRsc19kaG1fY29udGV4dCAqY3R4KQotewotICAgIGlmIChjdHggPT0gTlVMTCkgewotICAgICAgICByZXR1cm47Ci0gICAgfQotCi0gICAgbWJlZHRsc19tcGlfZnJlZSgmY3R4LT5wWCk7Ci0gICAgbWJlZHRsc19tcGlfZnJlZSgmY3R4LT5WZik7Ci0gICAgbWJlZHRsc19tcGlfZnJlZSgmY3R4LT5WaSk7Ci0gICAgbWJlZHRsc19tcGlfZnJlZSgmY3R4LT5SUCk7Ci0gICAgbWJlZHRsc19tcGlfZnJlZSgmY3R4LT5LKTsKLSAgICBtYmVkdGxzX21waV9mcmVlKCZjdHgtPkdZKTsKLSAgICBtYmVkdGxzX21waV9mcmVlKCZjdHgtPkdYKTsKLSAgICBtYmVkdGxzX21waV9mcmVlKCZjdHgtPlgpOwotICAgIG1iZWR0bHNfbXBpX2ZyZWUoJmN0eC0+Ryk7Ci0gICAgbWJlZHRsc19tcGlfZnJlZSgmY3R4LT5QKTsKLQotICAgIG1iZWR0bHNfcGxhdGZvcm1femVyb2l6ZShjdHgsIHNpemVvZihtYmVkdGxzX2RobV9jb250ZXh0KSk7Ci19Ci0KLSNpZiBkZWZpbmVkKE1CRURUTFNfQVNOMV9QQVJTRV9DKQotLyoKLSAqIFBhcnNlIERITSBwYXJhbWV0ZXJzCi0gKi8KLWludCBtYmVkdGxzX2RobV9wYXJzZV9kaG0obWJlZHRsc19kaG1fY29udGV4dCAqZGhtLCBjb25zdCB1bnNpZ25lZCBjaGFyICpkaG1pbiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IGRobWlubGVuKQotewotICAgIGludCByZXQgPSBNQkVEVExTX0VSUl9FUlJPUl9DT1JSVVBUSU9OX0RFVEVDVEVEOwotICAgIHNpemVfdCBsZW47Ci0gICAgdW5zaWduZWQgY2hhciAqcCwgKmVuZDsKLSNpZiBkZWZpbmVkKE1CRURUTFNfUEVNX1BBUlNFX0MpCi0gICAgbWJlZHRsc19wZW1fY29udGV4dCBwZW07Ci0jZW5kaWYgLyogTUJFRFRMU19QRU1fUEFSU0VfQyAqLwotCi0jaWYgZGVmaW5lZChNQkVEVExTX1BFTV9QQVJTRV9DKQotICAgIG1iZWR0bHNfcGVtX2luaXQoJnBlbSk7Ci0KLSAgICAvKiBBdm9pZCBjYWxsaW5nIG1iZWR0bHNfcGVtX3JlYWRfYnVmZmVyKCkgb24gbm9uLW51bGwtdGVybWluYXRlZCBzdHJpbmcgKi8KLSAgICBpZiAoZGhtaW5sZW4gPT0gMCB8fCBkaG1pbltkaG1pbmxlbiAtIDFdICE9ICdcMCcpIHsKLSAgICAgICAgcmV0ID0gTUJFRFRMU19FUlJfUEVNX05PX0hFQURFUl9GT09URVJfUFJFU0VOVDsKLSAgICB9IGVsc2UgewotICAgICAgICByZXQgPSBtYmVkdGxzX3BlbV9yZWFkX2J1ZmZlcigmcGVtLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiLS0tLS1CRUdJTiBESCBQQVJBTUVURVJTLS0tLS0iLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiLS0tLS1FTkQgREggUEFSQU1FVEVSUy0tLS0tIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGhtaW4sIE5VTEwsIDAsICZkaG1pbmxlbik7Ci0gICAgfQotCi0gICAgaWYgKHJldCA9PSAwKSB7Ci0gICAgICAgIC8qCi0gICAgICAgICAqIFdhcyBQRU0gZW5jb2RlZAotICAgICAgICAgKi8KLSAgICAgICAgZGhtaW5sZW4gPSBwZW0uYnVmbGVuOwotICAgIH0gZWxzZSBpZiAocmV0ICE9IE1CRURUTFNfRVJSX1BFTV9OT19IRUFERVJfRk9PVEVSX1BSRVNFTlQpIHsKLSAgICAgICAgZ290byBleGl0OwotICAgIH0KLQotICAgIHAgPSAocmV0ID09IDApID8gcGVtLmJ1ZiA6ICh1bnNpZ25lZCBjaGFyICopIGRobWluOwotI2Vsc2UKLSAgICBwID0gKHVuc2lnbmVkIGNoYXIgKikgZGhtaW47Ci0jZW5kaWYgLyogTUJFRFRMU19QRU1fUEFSU0VfQyAqLwotICAgIGVuZCA9IHAgKyBkaG1pbmxlbjsKLQotICAgIC8qCi0gICAgICogIERIUGFyYW1zIDo6PSBTRVFVRU5DRSB7Ci0gICAgICogICAgICBwcmltZSAgICAgICAgICAgICAgSU5URUdFUiwgIC0tIFAKLSAgICAgKiAgICAgIGdlbmVyYXRvciAgICAgICAgICBJTlRFR0VSLCAgLS0gZwotICAgICAqICAgICAgcHJpdmF0ZVZhbHVlTGVuZ3RoIElOVEVHRVIgT1BUSU9OQUwKLSAgICAgKiAgfQotICAgICAqLwotICAgIGlmICgocmV0ID0gbWJlZHRsc19hc24xX2dldF90YWcoJnAsIGVuZCwgJmxlbiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1CRURUTFNfQVNOMV9DT05TVFJVQ1RFRCB8IE1CRURUTFNfQVNOMV9TRVFVRU5DRSkpICE9IDApIHsKLSAgICAgICAgcmV0ID0gTUJFRFRMU19FUlJPUl9BREQoTUJFRFRMU19FUlJfREhNX0lOVkFMSURfRk9STUFULCByZXQpOwotICAgICAgICBnb3RvIGV4aXQ7Ci0gICAgfQotCi0gICAgZW5kID0gcCArIGxlbjsKLQotICAgIGlmICgocmV0ID0gbWJlZHRsc19hc24xX2dldF9tcGkoJnAsIGVuZCwgJmRobS0+UCkpICE9IDAgfHwKLSAgICAgICAgKHJldCA9IG1iZWR0bHNfYXNuMV9nZXRfbXBpKCZwLCBlbmQsICZkaG0tPkcpKSAhPSAwKSB7Ci0gICAgICAgIHJldCA9IE1CRURUTFNfRVJST1JfQUREKE1CRURUTFNfRVJSX0RITV9JTlZBTElEX0ZPUk1BVCwgcmV0KTsKLSAgICAgICAgZ290byBleGl0OwotICAgIH0KLQotICAgIGlmIChwICE9IGVuZCkgewotICAgICAgICAvKiBUaGlzIG1pZ2h0IGJlIHRoZSBvcHRpb25hbCBwcml2YXRlVmFsdWVMZW5ndGguCi0gICAgICAgICAqIElmIHNvLCB3ZSBjYW4gY2xlYW5seSBkaXNjYXJkIGl0ICovCi0gICAgICAgIG1iZWR0bHNfbXBpIHJlYzsKLSAgICAgICAgbWJlZHRsc19tcGlfaW5pdCgmcmVjKTsKLSAgICAgICAgcmV0ID0gbWJlZHRsc19hc24xX2dldF9tcGkoJnAsIGVuZCwgJnJlYyk7Ci0gICAgICAgIG1iZWR0bHNfbXBpX2ZyZWUoJnJlYyk7Ci0gICAgICAgIGlmIChyZXQgIT0gMCkgewotICAgICAgICAgICAgcmV0ID0gTUJFRFRMU19FUlJPUl9BREQoTUJFRFRMU19FUlJfREhNX0lOVkFMSURfRk9STUFULCByZXQpOwotICAgICAgICAgICAgZ290byBleGl0OwotICAgICAgICB9Ci0gICAgICAgIGlmIChwICE9IGVuZCkgewotICAgICAgICAgICAgcmV0ID0gTUJFRFRMU19FUlJPUl9BREQoTUJFRFRMU19FUlJfREhNX0lOVkFMSURfRk9STUFULAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTUJFRFRMU19FUlJfQVNOMV9MRU5HVEhfTUlTTUFUQ0gpOwotICAgICAgICAgICAgZ290byBleGl0OwotICAgICAgICB9Ci0gICAgfQotCi0gICAgcmV0ID0gMDsKLQotZXhpdDoKLSNpZiBkZWZpbmVkKE1CRURUTFNfUEVNX1BBUlNFX0MpCi0gICAgbWJlZHRsc19wZW1fZnJlZSgmcGVtKTsKLSNlbmRpZgotICAgIGlmIChyZXQgIT0gMCkgewotICAgICAgICBtYmVkdGxzX2RobV9mcmVlKGRobSk7Ci0gICAgfQotCi0gICAgcmV0dXJuIHJldDsKLX0KLQotI2lmIGRlZmluZWQoTUJFRFRMU19GU19JTykKLS8qCi0gKiBMb2FkIGFsbCBkYXRhIGZyb20gYSBmaWxlIGludG8gYSBnaXZlbiBidWZmZXIuCi0gKgotICogVGhlIGZpbGUgaXMgZXhwZWN0ZWQgdG8gY29udGFpbiBlaXRoZXIgUEVNIG9yIERFUiBlbmNvZGVkIGRhdGEuCi0gKiBBIHRlcm1pbmF0aW5nIG51bGwgYnl0ZSBpcyBhbHdheXMgYXBwZW5kZWQuIEl0IGlzIGluY2x1ZGVkIGluIHRoZSBhbm5vdW5jZWQKLSAqIGxlbmd0aCBvbmx5IGlmIHRoZSBkYXRhIGxvb2tzIGxpa2UgaXQgaXMgUEVNIGVuY29kZWQuCi0gKi8KLXN0YXRpYyBpbnQgbG9hZF9maWxlKGNvbnN0IGNoYXIgKnBhdGgsIHVuc2lnbmVkIGNoYXIgKipidWYsIHNpemVfdCAqbikKLXsKLSAgICBGSUxFICpmOwotICAgIGxvbmcgc2l6ZTsKLQotICAgIGlmICgoZiA9IGZvcGVuKHBhdGgsICJyYiIpKSA9PSBOVUxMKSB7Ci0gICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9ESE1fRklMRV9JT19FUlJPUjsKLSAgICB9Ci0gICAgLyogVGhlIGRhdGEgbG9hZGVkIGhlcmUgaXMgcHVibGljLCBzbyBkb24ndCBib3RoZXIgZGlzYWJsaW5nIGJ1ZmZlcmluZy4gKi8KLQotICAgIGZzZWVrKGYsIDAsIFNFRUtfRU5EKTsKLSAgICBpZiAoKHNpemUgPSBmdGVsbChmKSkgPT0gLTEpIHsKLSAgICAgICAgZmNsb3NlKGYpOwotICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfREhNX0ZJTEVfSU9fRVJST1I7Ci0gICAgfQotICAgIGZzZWVrKGYsIDAsIFNFRUtfU0VUKTsKLQotICAgICpuID0gKHNpemVfdCkgc2l6ZTsKLQotICAgIGlmICgqbiArIDEgPT0gMCB8fAotICAgICAgICAoKmJ1ZiA9IG1iZWR0bHNfY2FsbG9jKDEsICpuICsgMSkpID09IE5VTEwpIHsKLSAgICAgICAgZmNsb3NlKGYpOwotICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfREhNX0FMTE9DX0ZBSUxFRDsKLSAgICB9Ci0KLSAgICBpZiAoZnJlYWQoKmJ1ZiwgMSwgKm4sIGYpICE9ICpuKSB7Ci0gICAgICAgIGZjbG9zZShmKTsKLQotICAgICAgICBtYmVkdGxzX3plcm9pemVfYW5kX2ZyZWUoKmJ1ZiwgKm4gKyAxKTsKLQotICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfREhNX0ZJTEVfSU9fRVJST1I7Ci0gICAgfQotCi0gICAgZmNsb3NlKGYpOwotCi0gICAgKCpidWYpWypuXSA9ICdcMCc7Ci0KLSAgICBpZiAoc3Ryc3RyKChjb25zdCBjaGFyICopICpidWYsICItLS0tLUJFR0lOICIpICE9IE5VTEwpIHsKLSAgICAgICAgKysqbjsKLSAgICB9Ci0KLSAgICByZXR1cm4gMDsKLX0KLQotLyoKLSAqIExvYWQgYW5kIHBhcnNlIERITSBwYXJhbWV0ZXJzCi0gKi8KLWludCBtYmVkdGxzX2RobV9wYXJzZV9kaG1maWxlKG1iZWR0bHNfZGhtX2NvbnRleHQgKmRobSwgY29uc3QgY2hhciAqcGF0aCkKLXsKLSAgICBpbnQgcmV0ID0gTUJFRFRMU19FUlJfRVJST1JfQ09SUlVQVElPTl9ERVRFQ1RFRDsKLSAgICBzaXplX3QgbjsKLSAgICB1bnNpZ25lZCBjaGFyICpidWY7Ci0KLSAgICBpZiAoKHJldCA9IGxvYWRfZmlsZShwYXRoLCAmYnVmLCAmbikpICE9IDApIHsKLSAgICAgICAgcmV0dXJuIHJldDsKLSAgICB9Ci0KLSAgICByZXQgPSBtYmVkdGxzX2RobV9wYXJzZV9kaG0oZGhtLCBidWYsIG4pOwotCi0gICAgbWJlZHRsc196ZXJvaXplX2FuZF9mcmVlKGJ1Ziwgbik7Ci0KLSAgICByZXR1cm4gcmV0OwotfQotI2VuZGlmIC8qIE1CRURUTFNfRlNfSU8gKi8KLSNlbmRpZiAvKiBNQkVEVExTX0FTTjFfUEFSU0VfQyAqLwotI2VuZGlmIC8qIE1CRURUTFNfREhNX0FMVCAqLwotCi0jaWYgZGVmaW5lZChNQkVEVExTX1NFTEZfVEVTVCkKLQotI2lmIGRlZmluZWQoTUJFRFRMU19QRU1fUEFSU0VfQykKLXN0YXRpYyBjb25zdCBjaGFyIG1iZWR0bHNfdGVzdF9kaG1fcGFyYW1zW10gPQotICAgICItLS0tLUJFR0lOIERIIFBBUkFNRVRFUlMtLS0tLVxyXG4iCi0gICAgIk1JR0hBb0dCQUo0MTlEQkVPZ21RVHpvNXFYbDVmUWNOOVRONDU1d2tPTDcwNTJIenh4UlZNeWhZbXdRY2dKdmhcclxuIgotICAgICIxc2ExOGZ5ZlI5T2lWRU1ZZ2xPcGtxVm9HTE43cWQ1YVFOTmk1VzcvQytWQmRIVEJKY0daSnl5UDVCM3FjejMyXHJcbiIKLSAgICAiOW1MSkt1ZGxWdWRWMFF4azVxVUphUFoveHVwejBOeW9WcHZpdWlCT0kxZ05pOG92U1hXekFnRUNcclxuIgotICAgICItLS0tLUVORCBESCBQQVJBTUVURVJTLS0tLS1cclxuIjsKLSNlbHNlIC8qIE1CRURUTFNfUEVNX1BBUlNFX0MgKi8KLXN0YXRpYyBjb25zdCBjaGFyIG1iZWR0bHNfdGVzdF9kaG1fcGFyYW1zW10gPSB7Ci0gICAgMHgzMCwgMHg4MSwgMHg4NywgMHgwMiwgMHg4MSwgMHg4MSwgMHgwMCwgMHg5ZSwgMHgzNSwgMHhmNCwgMHgzMCwgMHg0NCwKLSAgICAweDNhLCAweDA5LCAweDkwLCAweDRmLCAweDNhLCAweDM5LCAweGE5LCAweDc5LCAweDc5LCAweDdkLCAweDA3LCAweDBkLAotICAgIDB4ZjUsIDB4MzMsIDB4NzgsIDB4ZTcsIDB4OWMsIDB4MjQsIDB4MzgsIDB4YmUsIDB4ZjQsIDB4ZTcsIDB4NjEsIDB4ZjMsCi0gICAgMHhjNywgMHgxNCwgMHg1NSwgMHgzMywgMHgyOCwgMHg1OCwgMHg5YiwgMHgwNCwgMHgxYywgMHg4MCwgMHg5YiwgMHhlMSwKLSAgICAweGQ2LCAweGM2LCAweGI1LCAweGYxLCAweGZjLCAweDlmLCAweDQ3LCAweGQzLCAweGEyLCAweDU0LCAweDQzLCAweDE4LAotICAgIDB4ODIsIDB4NTMsIDB4YTksIDB4OTIsIDB4YTUsIDB4NjgsIDB4MTgsIDB4YjMsIDB4N2IsIDB4YTksIDB4ZGUsIDB4NWEsCi0gICAgMHg0MCwgMHhkMywgMHg2MiwgMHhlNSwgMHg2ZSwgMHhmZiwgMHgwYiwgMHhlNSwgMHg0MSwgMHg3NCwgMHg3NCwgMHhjMSwKLSAgICAweDI1LCAweGMxLCAweDk5LCAweDI3LCAweDJjLCAweDhmLCAweGU0LCAweDFkLCAweGVhLCAweDczLCAweDNkLCAweGY2LAotICAgIDB4ZjYsIDB4NjIsIDB4YzksIDB4MmEsIDB4ZTcsIDB4NjUsIDB4NTYsIDB4ZTcsIDB4NTUsIDB4ZDEsIDB4MGMsIDB4NjQsCi0gICAgMHhlNiwgMHhhNSwgMHgwOSwgMHg2OCwgMHhmNiwgMHg3ZiwgMHhjNiwgMHhlYSwgMHg3MywgMHhkMCwgMHhkYywgMHhhOCwKLSAgICAweDU2LCAweDliLCAweGUyLCAweGJhLCAweDIwLCAweDRlLCAweDIzLCAweDU4LCAweDBkLCAweDhiLCAweGNhLCAweDJmLAotICAgIDB4NDksIDB4NzUsIDB4YjMsIDB4MDIsIDB4MDEsIDB4MDIKLX07Ci0jZW5kaWYgLyogTUJFRFRMU19QRU1fUEFSU0VfQyAqLwotCi1zdGF0aWMgY29uc3Qgc2l6ZV90IG1iZWR0bHNfdGVzdF9kaG1fcGFyYW1zX2xlbiA9IHNpemVvZihtYmVkdGxzX3Rlc3RfZGhtX3BhcmFtcyk7Ci0KLS8qCi0gKiBDaGVja3VwIHJvdXRpbmUKLSAqLwotaW50IG1iZWR0bHNfZGhtX3NlbGZfdGVzdChpbnQgdmVyYm9zZSkKLXsKLSAgICBpbnQgcmV0ID0gTUJFRFRMU19FUlJfRVJST1JfQ09SUlVQVElPTl9ERVRFQ1RFRDsKLSAgICBtYmVkdGxzX2RobV9jb250ZXh0IGRobTsKLQotICAgIG1iZWR0bHNfZGhtX2luaXQoJmRobSk7Ci0KLSAgICBpZiAodmVyYm9zZSAhPSAwKSB7Ci0gICAgICAgIG1iZWR0bHNfcHJpbnRmKCIgIERITSBwYXJhbWV0ZXIgbG9hZDogIik7Ci0gICAgfQotCi0gICAgaWYgKChyZXQgPSBtYmVkdGxzX2RobV9wYXJzZV9kaG0oJmRobSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY29uc3QgdW5zaWduZWQgY2hhciAqKSBtYmVkdGxzX3Rlc3RfZGhtX3BhcmFtcywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYmVkdGxzX3Rlc3RfZGhtX3BhcmFtc19sZW4pKSAhPSAwKSB7Ci0gICAgICAgIGlmICh2ZXJib3NlICE9IDApIHsKLSAgICAgICAgICAgIG1iZWR0bHNfcHJpbnRmKCJmYWlsZWRcbiIpOwotICAgICAgICB9Ci0KLSAgICAgICAgcmV0ID0gMTsKLSAgICAgICAgZ290byBleGl0OwotICAgIH0KLQotICAgIGlmICh2ZXJib3NlICE9IDApIHsKLSAgICAgICAgbWJlZHRsc19wcmludGYoInBhc3NlZFxuXG4iKTsKLSAgICB9Ci0KLWV4aXQ6Ci0gICAgbWJlZHRsc19kaG1fZnJlZSgmZGhtKTsKLQotICAgIHJldHVybiByZXQ7Ci19Ci0KLSNlbmRpZiAvKiBNQkVEVExTX1NFTEZfVEVTVCAqLwotCi0jZW5kaWYgLyogTUJFRFRMU19ESE1fQyAqLwpkaWZmIC0tZ2l0IGEvbGlicmFyeS9lY2pwYWtlLmMgYi9saWJyYXJ5L2VjanBha2UuYwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggY2RmNWQ3ZS4uMDAwMDAwMAotLS0gYS9saWJyYXJ5L2VjanBha2UuYworKysgL2Rldi9udWxsCkBAIC0xLDEyMTYgKzAsMCBAQAotLyoKLSAqICBFbGxpcHRpYyBjdXJ2ZSBKLVBBS0UKLSAqCi0gKiAgQ29weXJpZ2h0IFRoZSBNYmVkIFRMUyBDb250cmlidXRvcnMKLSAqICBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMCBPUiBHUEwtMi4wLW9yLWxhdGVyCi0gKi8KLQotLyoKLSAqIFJlZmVyZW5jZXMgaW4gdGhlIGNvZGUgYXJlIHRvIHRoZSBUaHJlYWQgdjEuMCBTcGVjaWZpY2F0aW9uLAotICogYXZhaWxhYmxlIHRvIG1lbWJlcnMgb2YgdGhlIFRocmVhZCBHcm91cCBodHRwOi8vdGhyZWFkZ3JvdXAub3JnLwotICovCi0KLSNpbmNsdWRlICJjb21tb24uaCIKLQotI2lmIGRlZmluZWQoTUJFRFRMU19FQ0pQQUtFX0MpCi0KLSNpbmNsdWRlICJtYmVkdGxzL2VjanBha2UuaCIKLSNpbmNsdWRlICJtYmVkdGxzL3BsYXRmb3JtX3V0aWwuaCIKLSNpbmNsdWRlICJtYmVkdGxzL2Vycm9yLmgiCi0KLSNpbmNsdWRlIDxzdHJpbmcuaD4KLQotI2lmICFkZWZpbmVkKE1CRURUTFNfRUNKUEFLRV9BTFQpCi0KLS8qCi0gKiBDb252ZXJ0IGEgbWJlZHRsc19lY2pwYWtlX3JvbGUgdG8gaWRlbnRpZmllciBzdHJpbmcKLSAqLwotc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBlY2pwYWtlX2lkW10gPSB7Ci0gICAgImNsaWVudCIsCi0gICAgInNlcnZlciIKLX07Ci0KLSNkZWZpbmUgSURfTUlORSAgICAgKGVjanBha2VfaWRbY3R4LT5yb2xlXSkKLSNkZWZpbmUgSURfUEVFUiAgICAgKGVjanBha2VfaWRbMSAtIGN0eC0+cm9sZV0pCi0KLS8qKgotICogSGVscGVyIHRvIENvbXB1dGUgYSBoYXNoIGZyb20gbWRfdHlwZQotICovCi1zdGF0aWMgaW50IG1iZWR0bHNfZWNqcGFrZV9jb21wdXRlX2hhc2gobWJlZHRsc19tZF90eXBlX3QgbWRfdHlwZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1bnNpZ25lZCBjaGFyICppbnB1dCwgc2l6ZV90IGlsZW4sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgY2hhciAqb3V0cHV0KQotewotICAgIHJldHVybiBtYmVkdGxzX21kKG1iZWR0bHNfbWRfaW5mb19mcm9tX3R5cGUobWRfdHlwZSksCi0gICAgICAgICAgICAgICAgICAgICAgaW5wdXQsIGlsZW4sIG91dHB1dCk7Ci19Ci0KLS8qCi0gKiBJbml0aWFsaXplIGNvbnRleHQKLSAqLwotdm9pZCBtYmVkdGxzX2VjanBha2VfaW5pdChtYmVkdGxzX2VjanBha2VfY29udGV4dCAqY3R4KQotewotICAgIGN0eC0+bWRfdHlwZSA9IE1CRURUTFNfTURfTk9ORTsKLSAgICBtYmVkdGxzX2VjcF9ncm91cF9pbml0KCZjdHgtPmdycCk7Ci0gICAgY3R4LT5wb2ludF9mb3JtYXQgPSBNQkVEVExTX0VDUF9QRl9VTkNPTVBSRVNTRUQ7Ci0KLSAgICBtYmVkdGxzX2VjcF9wb2ludF9pbml0KCZjdHgtPlhtMSk7Ci0gICAgbWJlZHRsc19lY3BfcG9pbnRfaW5pdCgmY3R4LT5YbTIpOwotICAgIG1iZWR0bHNfZWNwX3BvaW50X2luaXQoJmN0eC0+WHAxKTsKLSAgICBtYmVkdGxzX2VjcF9wb2ludF9pbml0KCZjdHgtPlhwMik7Ci0gICAgbWJlZHRsc19lY3BfcG9pbnRfaW5pdCgmY3R4LT5YcCk7Ci0KLSAgICBtYmVkdGxzX21waV9pbml0KCZjdHgtPnhtMSk7Ci0gICAgbWJlZHRsc19tcGlfaW5pdCgmY3R4LT54bTIpOwotICAgIG1iZWR0bHNfbXBpX2luaXQoJmN0eC0+cyk7Ci19Ci0KLS8qCi0gKiBGcmVlIGNvbnRleHQKLSAqLwotdm9pZCBtYmVkdGxzX2VjanBha2VfZnJlZShtYmVkdGxzX2VjanBha2VfY29udGV4dCAqY3R4KQotewotICAgIGlmIChjdHggPT0gTlVMTCkgewotICAgICAgICByZXR1cm47Ci0gICAgfQotCi0gICAgY3R4LT5tZF90eXBlID0gTUJFRFRMU19NRF9OT05FOwotICAgIG1iZWR0bHNfZWNwX2dyb3VwX2ZyZWUoJmN0eC0+Z3JwKTsKLQotICAgIG1iZWR0bHNfZWNwX3BvaW50X2ZyZWUoJmN0eC0+WG0xKTsKLSAgICBtYmVkdGxzX2VjcF9wb2ludF9mcmVlKCZjdHgtPlhtMik7Ci0gICAgbWJlZHRsc19lY3BfcG9pbnRfZnJlZSgmY3R4LT5YcDEpOwotICAgIG1iZWR0bHNfZWNwX3BvaW50X2ZyZWUoJmN0eC0+WHAyKTsKLSAgICBtYmVkdGxzX2VjcF9wb2ludF9mcmVlKCZjdHgtPlhwKTsKLQotICAgIG1iZWR0bHNfbXBpX2ZyZWUoJmN0eC0+eG0xKTsKLSAgICBtYmVkdGxzX21waV9mcmVlKCZjdHgtPnhtMik7Ci0gICAgbWJlZHRsc19tcGlfZnJlZSgmY3R4LT5zKTsKLX0KLQotLyoKLSAqIFNldHVwIGNvbnRleHQKLSAqLwotaW50IG1iZWR0bHNfZWNqcGFrZV9zZXR1cChtYmVkdGxzX2VjanBha2VfY29udGV4dCAqY3R4LAotICAgICAgICAgICAgICAgICAgICAgICAgICBtYmVkdGxzX2VjanBha2Vfcm9sZSByb2xlLAotICAgICAgICAgICAgICAgICAgICAgICAgICBtYmVkdGxzX21kX3R5cGVfdCBoYXNoLAotICAgICAgICAgICAgICAgICAgICAgICAgICBtYmVkdGxzX2VjcF9ncm91cF9pZCBjdXJ2ZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdW5zaWduZWQgY2hhciAqc2VjcmV0LAotICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgbGVuKQotewotICAgIGludCByZXQgPSBNQkVEVExTX0VSUl9FUlJPUl9DT1JSVVBUSU9OX0RFVEVDVEVEOwotCi0gICAgaWYgKHJvbGUgIT0gTUJFRFRMU19FQ0pQQUtFX0NMSUVOVCAmJiByb2xlICE9IE1CRURUTFNfRUNKUEFLRV9TRVJWRVIpIHsKLSAgICAgICAgcmV0dXJuIE1CRURUTFNfRVJSX0VDUF9CQURfSU5QVVRfREFUQTsKLSAgICB9Ci0KLSAgICBjdHgtPnJvbGUgPSByb2xlOwotCi0gICAgaWYgKChtYmVkdGxzX21kX2luZm9fZnJvbV90eXBlKGhhc2gpKSA9PSBOVUxMKSB7Ci0gICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9NRF9GRUFUVVJFX1VOQVZBSUxBQkxFOwotICAgIH0KLQotICAgIGN0eC0+bWRfdHlwZSA9IGhhc2g7Ci0KLSAgICBNQkVEVExTX01QSV9DSEsobWJlZHRsc19lY3BfZ3JvdXBfbG9hZCgmY3R4LT5ncnAsIGN1cnZlKSk7Ci0KLSAgICBNQkVEVExTX01QSV9DSEsobWJlZHRsc19tcGlfcmVhZF9iaW5hcnkoJmN0eC0+cywgc2VjcmV0LCBsZW4pKTsKLQotY2xlYW51cDoKLSAgICBpZiAocmV0ICE9IDApIHsKLSAgICAgICAgbWJlZHRsc19lY2pwYWtlX2ZyZWUoY3R4KTsKLSAgICB9Ci0KLSAgICByZXR1cm4gcmV0OwotfQotCi1pbnQgbWJlZHRsc19lY2pwYWtlX3NldF9wb2ludF9mb3JtYXQobWJlZHRsc19lY2pwYWtlX2NvbnRleHQgKmN0eCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgcG9pbnRfZm9ybWF0KQotewotICAgIHN3aXRjaCAocG9pbnRfZm9ybWF0KSB7Ci0gICAgICAgIGNhc2UgTUJFRFRMU19FQ1BfUEZfVU5DT01QUkVTU0VEOgotICAgICAgICBjYXNlIE1CRURUTFNfRUNQX1BGX0NPTVBSRVNTRUQ6Ci0gICAgICAgICAgICBjdHgtPnBvaW50X2Zvcm1hdCA9IHBvaW50X2Zvcm1hdDsKLSAgICAgICAgICAgIHJldHVybiAwOwotICAgICAgICBkZWZhdWx0OgotICAgICAgICAgICAgcmV0dXJuIE1CRURUTFNfRVJSX0VDUF9CQURfSU5QVVRfREFUQTsKLSAgICB9Ci19Ci0KLS8qCi0gKiBDaGVjayBpZiBjb250ZXh0IGlzIHJlYWR5IGZvciB1c2UKLSAqLwotaW50IG1iZWR0bHNfZWNqcGFrZV9jaGVjayhjb25zdCBtYmVkdGxzX2VjanBha2VfY29udGV4dCAqY3R4KQotewotICAgIGlmIChjdHgtPm1kX3R5cGUgPT0gTUJFRFRMU19NRF9OT05FIHx8Ci0gICAgICAgIGN0eC0+Z3JwLmlkID09IE1CRURUTFNfRUNQX0RQX05PTkUgfHwKLSAgICAgICAgY3R4LT5zLnAgPT0gTlVMTCkgewotICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfRUNQX0JBRF9JTlBVVF9EQVRBOwotICAgIH0KLQotICAgIHJldHVybiAwOwotfQotCi0vKgotICogV3JpdGUgYSBwb2ludCBwbHVzIGl0cyBsZW5ndGggdG8gYSBidWZmZXIKLSAqLwotc3RhdGljIGludCBlY2pwYWtlX3dyaXRlX2xlbl9wb2ludCh1bnNpZ25lZCBjaGFyICoqcCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdW5zaWduZWQgY2hhciAqZW5kLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBtYmVkdGxzX2VjcF9ncm91cCAqZ3JwLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBpbnQgcGYsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IG1iZWR0bHNfZWNwX3BvaW50ICpQKQotewotICAgIGludCByZXQgPSBNQkVEVExTX0VSUl9FUlJPUl9DT1JSVVBUSU9OX0RFVEVDVEVEOwotICAgIHNpemVfdCBsZW47Ci0KLSAgICAvKiBOZWVkIGF0IGxlYXN0IDQgZm9yIGxlbmd0aCBwbHVzIDEgZm9yIHBvaW50ICovCi0gICAgaWYgKGVuZCA8ICpwIHx8IGVuZCAtICpwIDwgNSkgewotICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfRUNQX0JVRkZFUl9UT09fU01BTEw7Ci0gICAgfQotCi0gICAgcmV0ID0gbWJlZHRsc19lY3BfcG9pbnRfd3JpdGVfYmluYXJ5KGdycCwgUCwgcGYsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZsZW4sICpwICsgNCwgKHNpemVfdCkgKGVuZCAtICgqcCArIDQpKSk7Ci0gICAgaWYgKHJldCAhPSAwKSB7Ci0gICAgICAgIHJldHVybiByZXQ7Ci0gICAgfQotCi0gICAgTUJFRFRMU19QVVRfVUlOVDMyX0JFKGxlbiwgKnAsIDApOwotCi0gICAgKnAgKz0gNCArIGxlbjsKLQotICAgIHJldHVybiAwOwotfQotCi0vKgotICogU2l6ZSBvZiB0aGUgdGVtcG9yYXJ5IGJ1ZmZlciBmb3IgZWNqcGFrZV9oYXNoOgotICogMyBFQyBwb2ludHMgcGx1cyB0aGVpciBsZW5ndGgsIHBsdXMgSUQgYW5kIGl0cyBsZW5ndGggKDQgKyA2IGJ5dGVzKQotICovCi0jZGVmaW5lIEVDSlBBS0VfSEFTSF9CVUZfTEVOICAgICgzICogKDQgKyBNQkVEVExTX0VDUF9NQVhfUFRfTEVOKSArIDQgKyA2KQotCi0vKgotICogQ29tcHV0ZSBoYXNoIGZvciBaS1AgKDcuNC4yLjIuMi4xKQotICovCi1zdGF0aWMgaW50IGVjanBha2VfaGFzaChjb25zdCBtYmVkdGxzX21kX3R5cGVfdCBtZF90eXBlLAotICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbWJlZHRsc19lY3BfZ3JvdXAgKmdycCwKLSAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGludCBwZiwKLSAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IG1iZWR0bHNfZWNwX3BvaW50ICpHLAotICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbWJlZHRsc19lY3BfcG9pbnQgKlYsCi0gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBtYmVkdGxzX2VjcF9wb2ludCAqWCwKLSAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKmlkLAotICAgICAgICAgICAgICAgICAgICAgICAgbWJlZHRsc19tcGkgKmgpCi17Ci0gICAgaW50IHJldCA9IE1CRURUTFNfRVJSX0VSUk9SX0NPUlJVUFRJT05fREVURUNURUQ7Ci0gICAgdW5zaWduZWQgY2hhciBidWZbRUNKUEFLRV9IQVNIX0JVRl9MRU5dOwotICAgIHVuc2lnbmVkIGNoYXIgKnAgPSBidWY7Ci0gICAgY29uc3QgdW5zaWduZWQgY2hhciAqZW5kID0gYnVmICsgc2l6ZW9mKGJ1Zik7Ci0gICAgY29uc3Qgc2l6ZV90IGlkX2xlbiA9IHN0cmxlbihpZCk7Ci0gICAgdW5zaWduZWQgY2hhciBoYXNoW01CRURUTFNfTURfTUFYX1NJWkVdOwotCi0gICAgLyogV3JpdGUgdGhpbmdzIHRvIHRlbXBvcmFyeSBidWZmZXIgKi8KLSAgICBNQkVEVExTX01QSV9DSEsoZWNqcGFrZV93cml0ZV9sZW5fcG9pbnQoJnAsIGVuZCwgZ3JwLCBwZiwgRykpOwotICAgIE1CRURUTFNfTVBJX0NISyhlY2pwYWtlX3dyaXRlX2xlbl9wb2ludCgmcCwgZW5kLCBncnAsIHBmLCBWKSk7Ci0gICAgTUJFRFRMU19NUElfQ0hLKGVjanBha2Vfd3JpdGVfbGVuX3BvaW50KCZwLCBlbmQsIGdycCwgcGYsIFgpKTsKLQotICAgIGlmIChlbmQgLSBwIDwgNCkgewotICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfRUNQX0JVRkZFUl9UT09fU01BTEw7Ci0gICAgfQotCi0gICAgTUJFRFRMU19QVVRfVUlOVDMyX0JFKGlkX2xlbiwgcCwgMCk7Ci0gICAgcCArPSA0OwotCi0gICAgaWYgKGVuZCA8IHAgfHwgKHNpemVfdCkgKGVuZCAtIHApIDwgaWRfbGVuKSB7Ci0gICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9FQ1BfQlVGRkVSX1RPT19TTUFMTDsKLSAgICB9Ci0KLSAgICBtZW1jcHkocCwgaWQsIGlkX2xlbik7Ci0gICAgcCArPSBpZF9sZW47Ci0KLSAgICAvKiBDb21wdXRlIGhhc2ggKi8KLSAgICBNQkVEVExTX01QSV9DSEsobWJlZHRsc19lY2pwYWtlX2NvbXB1dGVfaGFzaChtZF90eXBlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ1ZiwgKHNpemVfdCkgKHAgLSBidWYpLCBoYXNoKSk7Ci0KLSAgICAvKiBUdXJuIGl0IGludG8gYW4gaW50ZWdlciBtb2QgbiAqLwotICAgIE1CRURUTFNfTVBJX0NISyhtYmVkdGxzX21waV9yZWFkX2JpbmFyeShoLCBoYXNoLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYmVkdGxzX21kX2dldF9zaXplX2Zyb21fdHlwZShtZF90eXBlKSkpOwotICAgIE1CRURUTFNfTVBJX0NISyhtYmVkdGxzX21waV9tb2RfbXBpKGgsIGgsICZncnAtPk4pKTsKLQotY2xlYW51cDoKLSAgICByZXR1cm4gcmV0OwotfQotCi0vKgotICogUGFyc2UgYSBFQ1Nobm9yclpLUCAoNy40LjIuMi4yKSBhbmQgdmVyaWZ5IGl0ICg3LjQuMi4zLjMpCi0gKi8KLXN0YXRpYyBpbnQgZWNqcGFrZV96a3BfcmVhZChjb25zdCBtYmVkdGxzX21kX3R5cGVfdCBtZF90eXBlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IG1iZWR0bHNfZWNwX2dyb3VwICpncnAsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgaW50IHBmLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IG1iZWR0bHNfZWNwX3BvaW50ICpHLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IG1iZWR0bHNfZWNwX3BvaW50ICpYLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKmlkLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgKipwLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgKmVuZCkKLXsKLSAgICBpbnQgcmV0ID0gTUJFRFRMU19FUlJfRVJST1JfQ09SUlVQVElPTl9ERVRFQ1RFRDsKLSAgICBtYmVkdGxzX2VjcF9wb2ludCBWLCBWVjsKLSAgICBtYmVkdGxzX21waSByLCBoOwotICAgIHNpemVfdCByX2xlbjsKLQotICAgIG1iZWR0bHNfZWNwX3BvaW50X2luaXQoJlYpOwotICAgIG1iZWR0bHNfZWNwX3BvaW50X2luaXQoJlZWKTsKLSAgICBtYmVkdGxzX21waV9pbml0KCZyKTsKLSAgICBtYmVkdGxzX21waV9pbml0KCZoKTsKLQotICAgIC8qCi0gICAgICogc3RydWN0IHsKLSAgICAgKiAgICAgRUNQb2ludCBWOwotICAgICAqICAgICBvcGFxdWUgcjwxLi4yXjgtMT47Ci0gICAgICogfSBFQ1NjaG5vcnJaS1A7Ci0gICAgICovCi0gICAgaWYgKGVuZCA8ICpwKSB7Ci0gICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9FQ1BfQkFEX0lOUFVUX0RBVEE7Ci0gICAgfQotCi0gICAgTUJFRFRMU19NUElfQ0hLKG1iZWR0bHNfZWNwX3Rsc19yZWFkX3BvaW50KGdycCwgJlYsIHAsIChzaXplX3QpIChlbmQgLSAqcCkpKTsKLQotICAgIGlmIChlbmQgPCAqcCB8fCAoc2l6ZV90KSAoZW5kIC0gKnApIDwgMSkgewotICAgICAgICByZXQgPSBNQkVEVExTX0VSUl9FQ1BfQkFEX0lOUFVUX0RBVEE7Ci0gICAgICAgIGdvdG8gY2xlYW51cDsKLSAgICB9Ci0KLSAgICByX2xlbiA9ICooKnApKys7Ci0KLSAgICBpZiAoZW5kIDwgKnAgfHwgKHNpemVfdCkgKGVuZCAtICpwKSA8IHJfbGVuIHx8IHJfbGVuID09IDApIHsKLSAgICAgICAgcmV0ID0gTUJFRFRMU19FUlJfRUNQX0JBRF9JTlBVVF9EQVRBOwotICAgICAgICBnb3RvIGNsZWFudXA7Ci0gICAgfQotCi0gICAgTUJFRFRMU19NUElfQ0hLKG1iZWR0bHNfbXBpX3JlYWRfYmluYXJ5KCZyLCAqcCwgcl9sZW4pKTsKLSAgICAqcCArPSByX2xlbjsKLQotICAgIC8qCi0gICAgICogVmVyaWZpY2F0aW9uCi0gICAgICovCi0gICAgTUJFRFRMU19NUElfQ0hLKGVjanBha2VfaGFzaChtZF90eXBlLCBncnAsIHBmLCBHLCAmViwgWCwgaWQsICZoKSk7Ci0gICAgTUJFRFRMU19NUElfQ0hLKG1iZWR0bHNfZWNwX211bGFkZCgobWJlZHRsc19lY3BfZ3JvdXAgKikgZ3JwLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJlZWLCAmaCwgWCwgJnIsIEcpKTsKLQotICAgIGlmIChtYmVkdGxzX2VjcF9wb2ludF9jbXAoJlZWLCAmVikgIT0gMCkgewotICAgICAgICByZXQgPSBNQkVEVExTX0VSUl9FQ1BfVkVSSUZZX0ZBSUxFRDsKLSAgICAgICAgZ290byBjbGVhbnVwOwotICAgIH0KLQotY2xlYW51cDoKLSAgICBtYmVkdGxzX2VjcF9wb2ludF9mcmVlKCZWKTsKLSAgICBtYmVkdGxzX2VjcF9wb2ludF9mcmVlKCZWVik7Ci0gICAgbWJlZHRsc19tcGlfZnJlZSgmcik7Ci0gICAgbWJlZHRsc19tcGlfZnJlZSgmaCk7Ci0KLSAgICByZXR1cm4gcmV0OwotfQotCi0vKgotICogR2VuZXJhdGUgWktQICg3LjQuMi4zLjIpIGFuZCB3cml0ZSBpdCBhcyBFQ1NjaG5vcnJaS1AgKDcuNC4yLjIuMikKLSAqLwotc3RhdGljIGludCBlY2pwYWtlX3prcF93cml0ZShjb25zdCBtYmVkdGxzX21kX3R5cGVfdCBtZF90eXBlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBtYmVkdGxzX2VjcF9ncm91cCAqZ3JwLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBpbnQgcGYsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IG1iZWR0bHNfZWNwX3BvaW50ICpHLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBtYmVkdGxzX21waSAqeCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbWJlZHRsc19lY3BfcG9pbnQgKlgsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKmlkLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBjaGFyICoqcCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdW5zaWduZWQgY2hhciAqZW5kLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgKCpmX3JuZykodm9pZCAqLCB1bnNpZ25lZCBjaGFyICosIHNpemVfdCksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZvaWQgKnBfcm5nKQotewotICAgIGludCByZXQgPSBNQkVEVExTX0VSUl9FUlJPUl9DT1JSVVBUSU9OX0RFVEVDVEVEOwotICAgIG1iZWR0bHNfZWNwX3BvaW50IFY7Ci0gICAgbWJlZHRsc19tcGkgdjsKLSAgICBtYmVkdGxzX21waSBoOyAvKiBsYXRlciByZWN5Y2xlZCB0byBob2xkIHIgKi8KLSAgICBzaXplX3QgbGVuOwotCi0gICAgaWYgKGVuZCA8ICpwKSB7Ci0gICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9FQ1BfQlVGRkVSX1RPT19TTUFMTDsKLSAgICB9Ci0KLSAgICBtYmVkdGxzX2VjcF9wb2ludF9pbml0KCZWKTsKLSAgICBtYmVkdGxzX21waV9pbml0KCZ2KTsKLSAgICBtYmVkdGxzX21waV9pbml0KCZoKTsKLQotICAgIC8qIENvbXB1dGUgc2lnbmF0dXJlICovCi0gICAgTUJFRFRMU19NUElfQ0hLKG1iZWR0bHNfZWNwX2dlbl9rZXlwYWlyX2Jhc2UoKG1iZWR0bHNfZWNwX2dyb3VwICopIGdycCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHLCAmdiwgJlYsIGZfcm5nLCBwX3JuZykpOwotICAgIE1CRURUTFNfTVBJX0NISyhlY2pwYWtlX2hhc2gobWRfdHlwZSwgZ3JwLCBwZiwgRywgJlYsIFgsIGlkLCAmaCkpOwotICAgIE1CRURUTFNfTVBJX0NISyhtYmVkdGxzX21waV9tdWxfbXBpKCZoLCAmaCwgeCkpOyAgICAgLyogeCpoICovCi0gICAgTUJFRFRMU19NUElfQ0hLKG1iZWR0bHNfbXBpX3N1Yl9tcGkoJmgsICZ2LCAmaCkpOyAgICAgLyogdiAtIHgqaCAqLwotICAgIE1CRURUTFNfTVBJX0NISyhtYmVkdGxzX21waV9tb2RfbXBpKCZoLCAmaCwgJmdycC0+TikpOyAgICAgLyogciAqLwotCi0gICAgLyogV3JpdGUgaXQgb3V0ICovCi0gICAgTUJFRFRMU19NUElfQ0hLKG1iZWR0bHNfZWNwX3Rsc193cml0ZV9wb2ludChncnAsICZWLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGYsICZsZW4sICpwLCAoc2l6ZV90KSAoZW5kIC0gKnApKSk7Ci0gICAgKnAgKz0gbGVuOwotCi0gICAgbGVuID0gbWJlZHRsc19tcGlfc2l6ZSgmaCk7ICAgLyogYWN0dWFsbHkgciAqLwotICAgIGlmIChlbmQgPCAqcCB8fCAoc2l6ZV90KSAoZW5kIC0gKnApIDwgMSArIGxlbiB8fCBsZW4gPiAyNTUpIHsKLSAgICAgICAgcmV0ID0gTUJFRFRMU19FUlJfRUNQX0JVRkZFUl9UT09fU01BTEw7Ci0gICAgICAgIGdvdG8gY2xlYW51cDsKLSAgICB9Ci0KLSAgICAqKCpwKSsrID0gTUJFRFRMU19CWVRFXzAobGVuKTsKLSAgICBNQkVEVExTX01QSV9DSEsobWJlZHRsc19tcGlfd3JpdGVfYmluYXJ5KCZoLCAqcCwgbGVuKSk7ICAgICAvKiByICovCi0gICAgKnAgKz0gbGVuOwotCi1jbGVhbnVwOgotICAgIG1iZWR0bHNfZWNwX3BvaW50X2ZyZWUoJlYpOwotICAgIG1iZWR0bHNfbXBpX2ZyZWUoJnYpOwotICAgIG1iZWR0bHNfbXBpX2ZyZWUoJmgpOwotCi0gICAgcmV0dXJuIHJldDsKLX0KLQotLyoKLSAqIFBhcnNlIGEgRUNKUEFLRUtleUtQICg3LjQuMi4yLjEpIGFuZCBjaGVjayBwcm9vZgotICogT3V0cHV0OiB2ZXJpZmllZCBwdWJsaWMga2V5IFgKLSAqLwotc3RhdGljIGludCBlY2pwYWtlX2trcF9yZWFkKGNvbnN0IG1iZWR0bHNfbWRfdHlwZV90IG1kX3R5cGUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbWJlZHRsc19lY3BfZ3JvdXAgKmdycCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBpbnQgcGYsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbWJlZHRsc19lY3BfcG9pbnQgKkcsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgbWJlZHRsc19lY3BfcG9pbnQgKlgsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqaWQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdW5zaWduZWQgY2hhciAqKnAsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdW5zaWduZWQgY2hhciAqZW5kKQotewotICAgIGludCByZXQgPSBNQkVEVExTX0VSUl9FUlJPUl9DT1JSVVBUSU9OX0RFVEVDVEVEOwotCi0gICAgaWYgKGVuZCA8ICpwKSB7Ci0gICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9FQ1BfQkFEX0lOUFVUX0RBVEE7Ci0gICAgfQotCi0gICAgLyoKLSAgICAgKiBzdHJ1Y3QgewotICAgICAqICAgICBFQ1BvaW50IFg7Ci0gICAgICogICAgIEVDU2Nobm9yclpLUCB6a3A7Ci0gICAgICogfSBFQ0pQQUtFS2V5S1A7Ci0gICAgICovCi0gICAgTUJFRFRMU19NUElfQ0hLKG1iZWR0bHNfZWNwX3Rsc19yZWFkX3BvaW50KGdycCwgWCwgcCwgKHNpemVfdCkgKGVuZCAtICpwKSkpOwotICAgIGlmIChtYmVkdGxzX2VjcF9pc196ZXJvKFgpKSB7Ci0gICAgICAgIHJldCA9IE1CRURUTFNfRVJSX0VDUF9JTlZBTElEX0tFWTsKLSAgICAgICAgZ290byBjbGVhbnVwOwotICAgIH0KLQotICAgIE1CRURUTFNfTVBJX0NISyhlY2pwYWtlX3prcF9yZWFkKG1kX3R5cGUsIGdycCwgcGYsIEcsIFgsIGlkLCBwLCBlbmQpKTsKLQotY2xlYW51cDoKLSAgICByZXR1cm4gcmV0OwotfQotCi0vKgotICogR2VuZXJhdGUgYW4gRUNKUEFLRUtleUtQCi0gKiBPdXRwdXQ6IHRoZSBzZXJpYWxpemVkIHN0cnVjdHVyZSwgcGx1cyBwcml2YXRlL3B1YmxpYyBrZXkgcGFpcgotICovCi1zdGF0aWMgaW50IGVjanBha2Vfa2twX3dyaXRlKGNvbnN0IG1iZWR0bHNfbWRfdHlwZV90IG1kX3R5cGUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IG1iZWR0bHNfZWNwX2dyb3VwICpncnAsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGludCBwZiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbWJlZHRsc19lY3BfcG9pbnQgKkcsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1iZWR0bHNfbXBpICp4LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYmVkdGxzX2VjcF9wb2ludCAqWCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqaWQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGNoYXIgKipwLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1bnNpZ25lZCBjaGFyICplbmQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCAoKmZfcm5nKSh2b2lkICosIHVuc2lnbmVkIGNoYXIgKiwgc2l6ZV90KSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdm9pZCAqcF9ybmcpCi17Ci0gICAgaW50IHJldCA9IE1CRURUTFNfRVJSX0VSUk9SX0NPUlJVUFRJT05fREVURUNURUQ7Ci0gICAgc2l6ZV90IGxlbjsKLQotICAgIGlmIChlbmQgPCAqcCkgewotICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfRUNQX0JVRkZFUl9UT09fU01BTEw7Ci0gICAgfQotCi0gICAgLyogR2VuZXJhdGUga2V5ICg3LjQuMi4zLjEpIGFuZCB3cml0ZSBpdCBvdXQgKi8KLSAgICBNQkVEVExTX01QSV9DSEsobWJlZHRsc19lY3BfZ2VuX2tleXBhaXJfYmFzZSgobWJlZHRsc19lY3BfZ3JvdXAgKikgZ3JwLCBHLCB4LCBYLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZfcm5nLCBwX3JuZykpOwotICAgIE1CRURUTFNfTVBJX0NISyhtYmVkdGxzX2VjcF90bHNfd3JpdGVfcG9pbnQoZ3JwLCBYLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGYsICZsZW4sICpwLCAoc2l6ZV90KSAoZW5kIC0gKnApKSk7Ci0gICAgKnAgKz0gbGVuOwotCi0gICAgLyogR2VuZXJhdGUgYW5kIHdyaXRlIHByb29mICovCi0gICAgTUJFRFRMU19NUElfQ0hLKGVjanBha2VfemtwX3dyaXRlKG1kX3R5cGUsIGdycCwgcGYsIEcsIHgsIFgsIGlkLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwLCBlbmQsIGZfcm5nLCBwX3JuZykpOwotCi1jbGVhbnVwOgotICAgIHJldHVybiByZXQ7Ci19Ci0KLS8qCi0gKiBSZWFkIGEgRUNKUEFLRUtleUtQUGFpckxpc3QgKDcuNC4yLjMpIGFuZCBjaGVjayBwcm9vZnMKLSAqIE91dHB1dHM6IHZlcmlmaWVkIHBlZXIgcHVibGljIGtleXMgWGEsIFhiCi0gKi8KLXN0YXRpYyBpbnQgZWNqcGFrZV9ra3BwX3JlYWQoY29uc3QgbWJlZHRsc19tZF90eXBlX3QgbWRfdHlwZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbWJlZHRsc19lY3BfZ3JvdXAgKmdycCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgaW50IHBmLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBtYmVkdGxzX2VjcF9wb2ludCAqRywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWJlZHRsc19lY3BfcG9pbnQgKlhhLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYmVkdGxzX2VjcF9wb2ludCAqWGIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKmlkLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1bnNpZ25lZCBjaGFyICpidWYsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBsZW4pCi17Ci0gICAgaW50IHJldCA9IE1CRURUTFNfRVJSX0VSUk9SX0NPUlJVUFRJT05fREVURUNURUQ7Ci0gICAgY29uc3QgdW5zaWduZWQgY2hhciAqcCA9IGJ1ZjsKLSAgICBjb25zdCB1bnNpZ25lZCBjaGFyICplbmQgPSBidWYgKyBsZW47Ci0KLSAgICAvKgotICAgICAqIHN0cnVjdCB7Ci0gICAgICogICAgIEVDSlBBS0VLZXlLUCBlY2pwYWtlX2tleV9rcF9wYWlyX2xpc3RbMl07Ci0gICAgICogfSBFQ0pQQUtFS2V5S1BQYWlyTGlzdDsKLSAgICAgKi8KLSAgICBNQkVEVExTX01QSV9DSEsoZWNqcGFrZV9ra3BfcmVhZChtZF90eXBlLCBncnAsIHBmLCBHLCBYYSwgaWQsICZwLCBlbmQpKTsKLSAgICBNQkVEVExTX01QSV9DSEsoZWNqcGFrZV9ra3BfcmVhZChtZF90eXBlLCBncnAsIHBmLCBHLCBYYiwgaWQsICZwLCBlbmQpKTsKLQotICAgIGlmIChwICE9IGVuZCkgewotICAgICAgICByZXQgPSBNQkVEVExTX0VSUl9FQ1BfQkFEX0lOUFVUX0RBVEE7Ci0gICAgfQotCi1jbGVhbnVwOgotICAgIHJldHVybiByZXQ7Ci19Ci0KLS8qCi0gKiBHZW5lcmF0ZSBhIEVDSlBBS0VLZXlLUFBhaXJMaXN0Ci0gKiBPdXRwdXRzOiB0aGUgc2VyaWFsaXplZCBzdHJ1Y3R1cmUsIHBsdXMgdHdvIHByaXZhdGUvcHVibGljIGtleSBwYWlycwotICovCi1zdGF0aWMgaW50IGVjanBha2Vfa2twcF93cml0ZShjb25zdCBtYmVkdGxzX21kX3R5cGVfdCBtZF90eXBlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbWJlZHRsc19lY3BfZ3JvdXAgKmdycCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGludCBwZiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IG1iZWR0bHNfZWNwX3BvaW50ICpHLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWJlZHRsc19tcGkgKnhtMSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1iZWR0bHNfZWNwX3BvaW50ICpYYSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1iZWR0bHNfbXBpICp4bTIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYmVkdGxzX2VjcF9wb2ludCAqWGIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICppZCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGNoYXIgKmJ1ZiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBsZW4sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgKm9sZW4sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgKCpmX3JuZykodm9pZCAqLCB1bnNpZ25lZCBjaGFyICosIHNpemVfdCksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2b2lkICpwX3JuZykKLXsKLSAgICBpbnQgcmV0ID0gTUJFRFRMU19FUlJfRVJST1JfQ09SUlVQVElPTl9ERVRFQ1RFRDsKLSAgICB1bnNpZ25lZCBjaGFyICpwID0gYnVmOwotICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgKmVuZCA9IGJ1ZiArIGxlbjsKLQotICAgIE1CRURUTFNfTVBJX0NISyhlY2pwYWtlX2trcF93cml0ZShtZF90eXBlLCBncnAsIHBmLCBHLCB4bTEsIFhhLCBpZCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJnAsIGVuZCwgZl9ybmcsIHBfcm5nKSk7Ci0gICAgTUJFRFRMU19NUElfQ0hLKGVjanBha2Vfa2twX3dyaXRlKG1kX3R5cGUsIGdycCwgcGYsIEcsIHhtMiwgWGIsIGlkLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmcCwgZW5kLCBmX3JuZywgcF9ybmcpKTsKLQotICAgICpvbGVuID0gKHNpemVfdCkgKHAgLSBidWYpOwotCi1jbGVhbnVwOgotICAgIHJldHVybiByZXQ7Ci19Ci0KLS8qCi0gKiBSZWFkIGFuZCBwcm9jZXNzIHRoZSBmaXJzdCByb3VuZCBtZXNzYWdlCi0gKi8KLWludCBtYmVkdGxzX2VjanBha2VfcmVhZF9yb3VuZF9vbmUobWJlZHRsc19lY2pwYWtlX2NvbnRleHQgKmN0eCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdW5zaWduZWQgY2hhciAqYnVmLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgbGVuKQotewotICAgIHJldHVybiBlY2pwYWtlX2trcHBfcmVhZChjdHgtPm1kX3R5cGUsICZjdHgtPmdycCwgY3R4LT5wb2ludF9mb3JtYXQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICZjdHgtPmdycC5HLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmY3R4LT5YcDEsICZjdHgtPlhwMiwgSURfUEVFUiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnVmLCBsZW4pOwotfQotCi0vKgotICogR2VuZXJhdGUgYW5kIHdyaXRlIHRoZSBmaXJzdCByb3VuZCBtZXNzYWdlCi0gKi8KLWludCBtYmVkdGxzX2VjanBha2Vfd3JpdGVfcm91bmRfb25lKG1iZWR0bHNfZWNqcGFrZV9jb250ZXh0ICpjdHgsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBjaGFyICpidWYsIHNpemVfdCBsZW4sIHNpemVfdCAqb2xlbiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCAoKmZfcm5nKSh2b2lkICosIHVuc2lnbmVkIGNoYXIgKiwgc2l6ZV90KSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZvaWQgKnBfcm5nKQotewotICAgIHJldHVybiBlY2pwYWtlX2trcHBfd3JpdGUoY3R4LT5tZF90eXBlLCAmY3R4LT5ncnAsIGN0eC0+cG9pbnRfZm9ybWF0LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJmN0eC0+Z3JwLkcsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmY3R4LT54bTEsICZjdHgtPlhtMSwgJmN0eC0+eG0yLCAmY3R4LT5YbTIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJRF9NSU5FLCBidWYsIGxlbiwgb2xlbiwgZl9ybmcsIHBfcm5nKTsKLX0KLQotLyoKLSAqIENvbXB1dGUgdGhlIHN1bSBvZiB0aHJlZSBwb2ludHMgUiA9IEEgKyBCICsgQwotICovCi1zdGF0aWMgaW50IGVjanBha2VfZWNwX2FkZDMobWJlZHRsc19lY3BfZ3JvdXAgKmdycCwgbWJlZHRsc19lY3BfcG9pbnQgKlIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbWJlZHRsc19lY3BfcG9pbnQgKkEsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbWJlZHRsc19lY3BfcG9pbnQgKkIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbWJlZHRsc19lY3BfcG9pbnQgKkMpCi17Ci0gICAgaW50IHJldCA9IE1CRURUTFNfRVJSX0VSUk9SX0NPUlJVUFRJT05fREVURUNURUQ7Ci0gICAgbWJlZHRsc19tcGkgb25lOwotCi0gICAgbWJlZHRsc19tcGlfaW5pdCgmb25lKTsKLQotICAgIE1CRURUTFNfTVBJX0NISyhtYmVkdGxzX21waV9sc2V0KCZvbmUsIDEpKTsKLSAgICBNQkVEVExTX01QSV9DSEsobWJlZHRsc19lY3BfbXVsYWRkKGdycCwgUiwgJm9uZSwgQSwgJm9uZSwgQikpOwotICAgIE1CRURUTFNfTVBJX0NISyhtYmVkdGxzX2VjcF9tdWxhZGQoZ3JwLCBSLCAmb25lLCBSLCAmb25lLCBDKSk7Ci0KLWNsZWFudXA6Ci0gICAgbWJlZHRsc19tcGlfZnJlZSgmb25lKTsKLQotICAgIHJldHVybiByZXQ7Ci19Ci0KLS8qCi0gKiBSZWFkIGFuZCBwcm9jZXNzIHNlY29uZCByb3VuZCBtZXNzYWdlIChDOiA3LjQuMi41LCBTOiA3LjQuMi42KQotICovCi1pbnQgbWJlZHRsc19lY2pwYWtlX3JlYWRfcm91bmRfdHdvKG1iZWR0bHNfZWNqcGFrZV9jb250ZXh0ICpjdHgsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgKmJ1ZiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IGxlbikKLXsKLSAgICBpbnQgcmV0ID0gTUJFRFRMU19FUlJfRVJST1JfQ09SUlVQVElPTl9ERVRFQ1RFRDsKLSAgICBjb25zdCB1bnNpZ25lZCBjaGFyICpwID0gYnVmOwotICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgKmVuZCA9IGJ1ZiArIGxlbjsKLSAgICBtYmVkdGxzX2VjcF9ncm91cCBncnA7Ci0gICAgbWJlZHRsc19lY3BfcG9pbnQgRzsgICAgLyogQzogR0IsIFM6IEdBICovCi0KLSAgICBtYmVkdGxzX2VjcF9ncm91cF9pbml0KCZncnApOwotICAgIG1iZWR0bHNfZWNwX3BvaW50X2luaXQoJkcpOwotCi0gICAgLyoKLSAgICAgKiBTZXJ2ZXI6IEdBID0gWDMgICsgWDQgICsgWDEgICAgICAoNy40LjIuNi4xKQotICAgICAqIENsaWVudDogR0IgPSBYMSAgKyBYMiAgKyBYMyAgICAgICg3LjQuMi41LjEpCi0gICAgICogVW5pZmllZDogRyA9IFhtMSArIFhtMiArIFhwMQotICAgICAqIFdlIG5lZWQgdGhhdCBiZWZvcmUgcGFyc2luZyBpbiBvcmRlciB0byBjaGVjayBYcCBhcyB3ZSByZWFkIGl0Ci0gICAgICovCi0gICAgTUJFRFRMU19NUElfQ0hLKGVjanBha2VfZWNwX2FkZDMoJmN0eC0+Z3JwLCAmRywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmY3R4LT5YbTEsICZjdHgtPlhtMiwgJmN0eC0+WHAxKSk7Ci0KLSAgICAvKgotICAgICAqIHN0cnVjdCB7Ci0gICAgICogICAgIEVDUGFyYW1ldGVycyBjdXJ2ZV9wYXJhbXM7ICAgLy8gb25seSBjbGllbnQgcmVhZGluZyBzZXJ2ZXIgbXNnCi0gICAgICogICAgIEVDSlBBS0VLZXlLUCBlY2pwYWtlX2tleV9rcDsKLSAgICAgKiB9IENsaWVudC9TZXJ2ZXJFQ0pQQUtFUGFyYW1zOwotICAgICAqLwotICAgIGlmIChjdHgtPnJvbGUgPT0gTUJFRFRMU19FQ0pQQUtFX0NMSUVOVCkgewotICAgICAgICBNQkVEVExTX01QSV9DSEsobWJlZHRsc19lY3BfdGxzX3JlYWRfZ3JvdXAoJmdycCwgJnAsIGxlbikpOwotICAgICAgICBpZiAoZ3JwLmlkICE9IGN0eC0+Z3JwLmlkKSB7Ci0gICAgICAgICAgICByZXQgPSBNQkVEVExTX0VSUl9FQ1BfRkVBVFVSRV9VTkFWQUlMQUJMRTsKLSAgICAgICAgICAgIGdvdG8gY2xlYW51cDsKLSAgICAgICAgfQotICAgIH0KLQotICAgIE1CRURUTFNfTVBJX0NISyhlY2pwYWtlX2trcF9yZWFkKGN0eC0+bWRfdHlwZSwgJmN0eC0+Z3JwLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGN0eC0+cG9pbnRfZm9ybWF0LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZHLCAmY3R4LT5YcCwgSURfUEVFUiwgJnAsIGVuZCkpOwotCi0gICAgaWYgKHAgIT0gZW5kKSB7Ci0gICAgICAgIHJldCA9IE1CRURUTFNfRVJSX0VDUF9CQURfSU5QVVRfREFUQTsKLSAgICAgICAgZ290byBjbGVhbnVwOwotICAgIH0KLQotY2xlYW51cDoKLSAgICBtYmVkdGxzX2VjcF9ncm91cF9mcmVlKCZncnApOwotICAgIG1iZWR0bHNfZWNwX3BvaW50X2ZyZWUoJkcpOwotCi0gICAgcmV0dXJuIHJldDsKLX0KLQotLyoKLSAqIENvbXB1dGUgUiA9ICsvLSBYICogUyBtb2QgTiwgdGFraW5nIGNhcmUgbm90IHRvIGxlYWsgUwotICovCi1zdGF0aWMgaW50IGVjanBha2VfbXVsX3NlY3JldChtYmVkdGxzX21waSAqUiwgaW50IHNpZ24sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBtYmVkdGxzX21waSAqWCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IG1iZWR0bHNfbXBpICpTLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbWJlZHRsc19tcGkgKk4sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgKCpmX3JuZykodm9pZCAqLCB1bnNpZ25lZCBjaGFyICosIHNpemVfdCksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2b2lkICpwX3JuZykKLXsKLSAgICBpbnQgcmV0ID0gTUJFRFRMU19FUlJfRVJST1JfQ09SUlVQVElPTl9ERVRFQ1RFRDsKLSAgICBtYmVkdGxzX21waSBiOyAvKiBCbGluZGluZyB2YWx1ZSwgdGhlbiBzICsgTiAqIGJsaW5kaW5nICovCi0KLSAgICBtYmVkdGxzX21waV9pbml0KCZiKTsKLQotICAgIC8qIGIgPSBzICsgcm5kLTEyOC1iaXQgKiBOICovCi0gICAgTUJFRFRMU19NUElfQ0hLKG1iZWR0bHNfbXBpX2ZpbGxfcmFuZG9tKCZiLCAxNiwgZl9ybmcsIHBfcm5nKSk7Ci0gICAgTUJFRFRMU19NUElfQ0hLKG1iZWR0bHNfbXBpX211bF9tcGkoJmIsICZiLCBOKSk7Ci0gICAgTUJFRFRMU19NUElfQ0hLKG1iZWR0bHNfbXBpX2FkZF9tcGkoJmIsICZiLCBTKSk7Ci0KLSAgICAvKiBSID0gc2lnbiAqIFggKiBiIG1vZCBOICovCi0gICAgTUJFRFRMU19NUElfQ0hLKG1iZWR0bHNfbXBpX211bF9tcGkoUiwgWCwgJmIpKTsKLSAgICBSLT5zICo9IHNpZ247Ci0gICAgTUJFRFRMU19NUElfQ0hLKG1iZWR0bHNfbXBpX21vZF9tcGkoUiwgUiwgTikpOwotCi1jbGVhbnVwOgotICAgIG1iZWR0bHNfbXBpX2ZyZWUoJmIpOwotCi0gICAgcmV0dXJuIHJldDsKLX0KLQotLyoKLSAqIEdlbmVyYXRlIGFuZCB3cml0ZSB0aGUgc2Vjb25kIHJvdW5kIG1lc3NhZ2UgKFM6IDcuNC4yLjUsIEM6IDcuNC4yLjYpCi0gKi8KLWludCBtYmVkdGxzX2VjanBha2Vfd3JpdGVfcm91bmRfdHdvKG1iZWR0bHNfZWNqcGFrZV9jb250ZXh0ICpjdHgsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBjaGFyICpidWYsIHNpemVfdCBsZW4sIHNpemVfdCAqb2xlbiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCAoKmZfcm5nKSh2b2lkICosIHVuc2lnbmVkIGNoYXIgKiwgc2l6ZV90KSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZvaWQgKnBfcm5nKQotewotICAgIGludCByZXQgPSBNQkVEVExTX0VSUl9FUlJPUl9DT1JSVVBUSU9OX0RFVEVDVEVEOwotICAgIG1iZWR0bHNfZWNwX3BvaW50IEc7ICAgIC8qIEM6IEdBLCBTOiBHQiAqLwotICAgIG1iZWR0bHNfZWNwX3BvaW50IFhtOyAgIC8qIEM6IFhjLCBTOiBYcyAqLwotICAgIG1iZWR0bHNfbXBpIHhtOyAgICAgICAgIC8qIEM6IHhjLCBTOiB4cyAqLwotICAgIHVuc2lnbmVkIGNoYXIgKnAgPSBidWY7Ci0gICAgY29uc3QgdW5zaWduZWQgY2hhciAqZW5kID0gYnVmICsgbGVuOwotICAgIHNpemVfdCBlY19sZW47Ci0KLSAgICBtYmVkdGxzX2VjcF9wb2ludF9pbml0KCZHKTsKLSAgICBtYmVkdGxzX2VjcF9wb2ludF9pbml0KCZYbSk7Ci0gICAgbWJlZHRsc19tcGlfaW5pdCgmeG0pOwotCi0gICAgLyoKLSAgICAgKiBGaXJzdCBnZW5lcmF0ZSBwcml2YXRlL3B1YmxpYyBrZXkgcGFpciAoUzogNy40LjIuNS4xLCBDOiA3LjQuMi42LjEpCi0gICAgICoKLSAgICAgKiBDbGllbnQ6ICBHQSA9IFgxICArIFgzICArIFg0ICB8IHhzID0geDIgICogcyB8IFhjID0geGMgKiBHQQotICAgICAqIFNlcnZlcjogIEdCID0gWDMgICsgWDEgICsgWDIgIHwgeHMgPSB4NCAgKiBzIHwgWHMgPSB4cyAqIEdCCi0gICAgICogVW5pZmllZDogRyAgPSBYbTEgKyBYcDEgKyBYcDIgfCB4bSA9IHhtMiAqIHMgfCBYbSA9IHhtICogRwotICAgICAqLwotICAgIE1CRURUTFNfTVBJX0NISyhlY2pwYWtlX2VjcF9hZGQzKCZjdHgtPmdycCwgJkcsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJmN0eC0+WHAxLCAmY3R4LT5YcDIsICZjdHgtPlhtMSkpOwotICAgIE1CRURUTFNfTVBJX0NISyhlY2pwYWtlX211bF9zZWNyZXQoJnhtLCAxLCAmY3R4LT54bTIsICZjdHgtPnMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmY3R4LT5ncnAuTiwgZl9ybmcsIHBfcm5nKSk7Ci0gICAgTUJFRFRMU19NUElfQ0hLKG1iZWR0bHNfZWNwX211bCgmY3R4LT5ncnAsICZYbSwgJnhtLCAmRywgZl9ybmcsIHBfcm5nKSk7Ci0KLSAgICAvKgotICAgICAqIE5vdyB3cml0ZSB0aGluZ3Mgb3V0Ci0gICAgICoKLSAgICAgKiBzdHJ1Y3QgewotICAgICAqICAgICBFQ1BhcmFtZXRlcnMgY3VydmVfcGFyYW1zOyAgIC8vIG9ubHkgc2VydmVyIHdyaXRpbmcgaXRzIG1lc3NhZ2UKLSAgICAgKiAgICAgRUNKUEFLRUtleUtQIGVjanBha2Vfa2V5X2twOwotICAgICAqIH0gQ2xpZW50L1NlcnZlckVDSlBBS0VQYXJhbXM7Ci0gICAgICovCi0gICAgaWYgKGN0eC0+cm9sZSA9PSBNQkVEVExTX0VDSlBBS0VfU0VSVkVSKSB7Ci0gICAgICAgIGlmIChlbmQgPCBwKSB7Ci0gICAgICAgICAgICByZXQgPSBNQkVEVExTX0VSUl9FQ1BfQlVGRkVSX1RPT19TTUFMTDsKLSAgICAgICAgICAgIGdvdG8gY2xlYW51cDsKLSAgICAgICAgfQotICAgICAgICBNQkVEVExTX01QSV9DSEsobWJlZHRsc19lY3BfdGxzX3dyaXRlX2dyb3VwKCZjdHgtPmdycCwgJmVjX2xlbiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwLCAoc2l6ZV90KSAoZW5kIC0gcCkpKTsKLSAgICAgICAgcCArPSBlY19sZW47Ci0gICAgfQotCi0gICAgaWYgKGVuZCA8IHApIHsKLSAgICAgICAgcmV0ID0gTUJFRFRMU19FUlJfRUNQX0JVRkZFUl9UT09fU01BTEw7Ci0gICAgICAgIGdvdG8gY2xlYW51cDsKLSAgICB9Ci0gICAgTUJFRFRMU19NUElfQ0hLKG1iZWR0bHNfZWNwX3Rsc193cml0ZV9wb2ludCgmY3R4LT5ncnAsICZYbSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGN0eC0+cG9pbnRfZm9ybWF0LCAmZWNfbGVuLCBwLCAoc2l6ZV90KSAoZW5kIC0gcCkpKTsKLSAgICBwICs9IGVjX2xlbjsKLQotICAgIE1CRURUTFNfTVBJX0NISyhlY2pwYWtlX3prcF93cml0ZShjdHgtPm1kX3R5cGUsICZjdHgtPmdycCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3R4LT5wb2ludF9mb3JtYXQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZHLCAmeG0sICZYbSwgSURfTUlORSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJnAsIGVuZCwgZl9ybmcsIHBfcm5nKSk7Ci0KLSAgICAqb2xlbiA9IChzaXplX3QpIChwIC0gYnVmKTsKLQotY2xlYW51cDoKLSAgICBtYmVkdGxzX2VjcF9wb2ludF9mcmVlKCZHKTsKLSAgICBtYmVkdGxzX2VjcF9wb2ludF9mcmVlKCZYbSk7Ci0gICAgbWJlZHRsc19tcGlfZnJlZSgmeG0pOwotCi0gICAgcmV0dXJuIHJldDsKLX0KLQotLyoKLSAqIERlcml2ZSBQTVMgKDcuNC4yLjcgLyA3LjQuMi44KQotICovCi1zdGF0aWMgaW50IG1iZWR0bHNfZWNqcGFrZV9kZXJpdmVfayhtYmVkdGxzX2VjanBha2VfY29udGV4dCAqY3R4LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWJlZHRsc19lY3BfcG9pbnQgKkssCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgKCpmX3JuZykodm9pZCAqLCB1bnNpZ25lZCBjaGFyICosIHNpemVfdCksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2b2lkICpwX3JuZykKLXsKLSAgICBpbnQgcmV0ID0gTUJFRFRMU19FUlJfRVJST1JfQ09SUlVQVElPTl9ERVRFQ1RFRDsKLSAgICBtYmVkdGxzX21waSBtX3htMl9zLCBvbmU7Ci0KLSAgICBtYmVkdGxzX21waV9pbml0KCZtX3htMl9zKTsKLSAgICBtYmVkdGxzX21waV9pbml0KCZvbmUpOwotCi0gICAgTUJFRFRMU19NUElfQ0hLKG1iZWR0bHNfbXBpX2xzZXQoJm9uZSwgMSkpOwotCi0gICAgLyoKLSAgICAgKiBDbGllbnQ6ICBLID0gKCBYcyAtIFg0ICAqIHgyICAqIHMgKSAqIHgyCi0gICAgICogU2VydmVyOiAgSyA9ICggWGMgLSBYMiAgKiB4NCAgKiBzICkgKiB4NAotICAgICAqIFVuaWZpZWQ6IEsgPSAoIFhwIC0gWHAyICogeG0yICogcyApICogeG0yCi0gICAgICovCi0gICAgTUJFRFRMU19NUElfQ0hLKGVjanBha2VfbXVsX3NlY3JldCgmbV94bTJfcywgLTEsICZjdHgtPnhtMiwgJmN0eC0+cywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZjdHgtPmdycC5OLCBmX3JuZywgcF9ybmcpKTsKLSAgICBNQkVEVExTX01QSV9DSEsobWJlZHRsc19lY3BfbXVsYWRkKCZjdHgtPmdycCwgSywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZvbmUsICZjdHgtPlhwLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJm1feG0yX3MsICZjdHgtPlhwMikpOwotICAgIE1CRURUTFNfTVBJX0NISyhtYmVkdGxzX2VjcF9tdWwoJmN0eC0+Z3JwLCBLLCAmY3R4LT54bTIsIEssCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmX3JuZywgcF9ybmcpKTsKLQotY2xlYW51cDoKLSAgICBtYmVkdGxzX21waV9mcmVlKCZtX3htMl9zKTsKLSAgICBtYmVkdGxzX21waV9mcmVlKCZvbmUpOwotCi0gICAgcmV0dXJuIHJldDsKLX0KLQotaW50IG1iZWR0bHNfZWNqcGFrZV9kZXJpdmVfc2VjcmV0KG1iZWR0bHNfZWNqcGFrZV9jb250ZXh0ICpjdHgsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgY2hhciAqYnVmLCBzaXplX3QgbGVuLCBzaXplX3QgKm9sZW4sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50ICgqZl9ybmcpKHZvaWQgKiwgdW5zaWduZWQgY2hhciAqLCBzaXplX3QpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZvaWQgKnBfcm5nKQotewotICAgIGludCByZXQgPSBNQkVEVExTX0VSUl9FUlJPUl9DT1JSVVBUSU9OX0RFVEVDVEVEOwotICAgIG1iZWR0bHNfZWNwX3BvaW50IEs7Ci0gICAgdW5zaWduZWQgY2hhciBreFtNQkVEVExTX0VDUF9NQVhfQllURVNdOwotICAgIHNpemVfdCB4X2J5dGVzOwotCi0gICAgKm9sZW4gPSBtYmVkdGxzX21kX2dldF9zaXplX2Zyb21fdHlwZShjdHgtPm1kX3R5cGUpOwotICAgIGlmIChsZW4gPCAqb2xlbikgewotICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfRUNQX0JVRkZFUl9UT09fU01BTEw7Ci0gICAgfQotCi0gICAgbWJlZHRsc19lY3BfcG9pbnRfaW5pdCgmSyk7Ci0KLSAgICByZXQgPSBtYmVkdGxzX2VjanBha2VfZGVyaXZlX2soY3R4LCAmSywgZl9ybmcsIHBfcm5nKTsKLSAgICBpZiAocmV0KSB7Ci0gICAgICAgIGdvdG8gY2xlYW51cDsKLSAgICB9Ci0KLSAgICAvKiBQTVMgPSBTSEEtMjU2KCBLLlggKSAqLwotICAgIHhfYnl0ZXMgPSAoY3R4LT5ncnAucGJpdHMgKyA3KSAvIDg7Ci0gICAgTUJFRFRMU19NUElfQ0hLKG1iZWR0bHNfbXBpX3dyaXRlX2JpbmFyeSgmSy5YLCBreCwgeF9ieXRlcykpOwotICAgIE1CRURUTFNfTVBJX0NISyhtYmVkdGxzX2VjanBha2VfY29tcHV0ZV9oYXNoKGN0eC0+bWRfdHlwZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBreCwgeF9ieXRlcywgYnVmKSk7Ci0KLWNsZWFudXA6Ci0gICAgbWJlZHRsc19lY3BfcG9pbnRfZnJlZSgmSyk7Ci0KLSAgICByZXR1cm4gcmV0OwotfQotCi1pbnQgbWJlZHRsc19lY2pwYWtlX3dyaXRlX3NoYXJlZF9rZXkobWJlZHRsc19lY2pwYWtlX2NvbnRleHQgKmN0eCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBjaGFyICpidWYsIHNpemVfdCBsZW4sIHNpemVfdCAqb2xlbiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgKCpmX3JuZykodm9pZCAqLCB1bnNpZ25lZCBjaGFyICosIHNpemVfdCksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdm9pZCAqcF9ybmcpCi17Ci0gICAgaW50IHJldCA9IE1CRURUTFNfRVJSX0VSUk9SX0NPUlJVUFRJT05fREVURUNURUQ7Ci0gICAgbWJlZHRsc19lY3BfcG9pbnQgSzsKLQotICAgIG1iZWR0bHNfZWNwX3BvaW50X2luaXQoJkspOwotCi0gICAgcmV0ID0gbWJlZHRsc19lY2pwYWtlX2Rlcml2ZV9rKGN0eCwgJkssIGZfcm5nLCBwX3JuZyk7Ci0gICAgaWYgKHJldCkgewotICAgICAgICBnb3RvIGNsZWFudXA7Ci0gICAgfQotCi0gICAgcmV0ID0gbWJlZHRsc19lY3BfcG9pbnRfd3JpdGVfYmluYXJ5KCZjdHgtPmdycCwgJkssIGN0eC0+cG9pbnRfZm9ybWF0LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbGVuLCBidWYsIGxlbik7Ci0gICAgaWYgKHJldCAhPSAwKSB7Ci0gICAgICAgIGdvdG8gY2xlYW51cDsKLSAgICB9Ci0KLWNsZWFudXA6Ci0gICAgbWJlZHRsc19lY3BfcG9pbnRfZnJlZSgmSyk7Ci0KLSAgICByZXR1cm4gcmV0OwotfQotCi0jdW5kZWYgSURfTUlORQotI3VuZGVmIElEX1BFRVIKLQotI2VuZGlmIC8qICEgTUJFRFRMU19FQ0pQQUtFX0FMVCAqLwotCi0jaWYgZGVmaW5lZChNQkVEVExTX1NFTEZfVEVTVCkKLQotI2luY2x1ZGUgIm1iZWR0bHMvcGxhdGZvcm0uaCIKLQotI2lmICFkZWZpbmVkKE1CRURUTFNfRUNQX0RQX1NFQ1AyNTZSMV9FTkFCTEVEKSB8fCBcCi0gICAgIWRlZmluZWQoTUJFRFRMU19NRF9DQU5fU0hBMjU2KQotaW50IG1iZWR0bHNfZWNqcGFrZV9zZWxmX3Rlc3QoaW50IHZlcmJvc2UpCi17Ci0gICAgKHZvaWQpIHZlcmJvc2U7Ci0gICAgcmV0dXJuIDA7Ci19Ci0jZWxzZQotCi1zdGF0aWMgY29uc3QgdW5zaWduZWQgY2hhciBlY2pwYWtlX3Rlc3RfcGFzc3dvcmRbXSA9IHsKLSAgICAweDc0LCAweDY4LCAweDcyLCAweDY1LCAweDYxLCAweDY0LCAweDZhLCAweDcwLCAweDYxLCAweDZiLCAweDY1LCAweDc0LAotICAgIDB4NjUsIDB4NzMsIDB4NzQKLX07Ci0KLSNpZiAhZGVmaW5lZChNQkVEVExTX0VDSlBBS0VfQUxUKQotCi1zdGF0aWMgY29uc3QgdW5zaWduZWQgY2hhciBlY2pwYWtlX3Rlc3RfeDFbXSA9IHsKLSAgICAweDAxLCAweDAyLCAweDAzLCAweDA0LCAweDA1LCAweDA2LCAweDA3LCAweDA4LCAweDA5LCAweDBhLCAweDBiLCAweDBjLAotICAgIDB4MGQsIDB4MGUsIDB4MGYsIDB4MTAsIDB4MTEsIDB4MTIsIDB4MTMsIDB4MTQsIDB4MTUsIDB4MTYsIDB4MTcsIDB4MTgsCi0gICAgMHgxOSwgMHgxYSwgMHgxYiwgMHgxYywgMHgxZCwgMHgxZSwgMHgxZiwgMHgyMQotfTsKLQotc3RhdGljIGNvbnN0IHVuc2lnbmVkIGNoYXIgZWNqcGFrZV90ZXN0X3gyW10gPSB7Ci0gICAgMHg2MSwgMHg2MiwgMHg2MywgMHg2NCwgMHg2NSwgMHg2NiwgMHg2NywgMHg2OCwgMHg2OSwgMHg2YSwgMHg2YiwgMHg2YywKLSAgICAweDZkLCAweDZlLCAweDZmLCAweDcwLCAweDcxLCAweDcyLCAweDczLCAweDc0LCAweDc1LCAweDc2LCAweDc3LCAweDc4LAotICAgIDB4NzksIDB4N2EsIDB4N2IsIDB4N2MsIDB4N2QsIDB4N2UsIDB4N2YsIDB4ODEKLX07Ci0KLXN0YXRpYyBjb25zdCB1bnNpZ25lZCBjaGFyIGVjanBha2VfdGVzdF94M1tdID0gewotICAgIDB4NjEsIDB4NjIsIDB4NjMsIDB4NjQsIDB4NjUsIDB4NjYsIDB4NjcsIDB4NjgsIDB4NjksIDB4NmEsIDB4NmIsIDB4NmMsCi0gICAgMHg2ZCwgMHg2ZSwgMHg2ZiwgMHg3MCwgMHg3MSwgMHg3MiwgMHg3MywgMHg3NCwgMHg3NSwgMHg3NiwgMHg3NywgMHg3OCwKLSAgICAweDc5LCAweDdhLCAweDdiLCAweDdjLCAweDdkLCAweDdlLCAweDdmLCAweDgxCi19OwotCi1zdGF0aWMgY29uc3QgdW5zaWduZWQgY2hhciBlY2pwYWtlX3Rlc3RfeDRbXSA9IHsKLSAgICAweGMxLCAweGMyLCAweGMzLCAweGM0LCAweGM1LCAweGM2LCAweGM3LCAweGM4LCAweGM5LCAweGNhLCAweGNiLCAweGNjLAotICAgIDB4Y2QsIDB4Y2UsIDB4Y2YsIDB4ZDAsIDB4ZDEsIDB4ZDIsIDB4ZDMsIDB4ZDQsIDB4ZDUsIDB4ZDYsIDB4ZDcsIDB4ZDgsCi0gICAgMHhkOSwgMHhkYSwgMHhkYiwgMHhkYywgMHhkZCwgMHhkZSwgMHhkZiwgMHhlMQotfTsKLQotc3RhdGljIGNvbnN0IHVuc2lnbmVkIGNoYXIgZWNqcGFrZV90ZXN0X2NsaV9vbmVbXSA9IHsKLSAgICAweDQxLCAweDA0LCAweGFjLCAweGNmLCAweDAxLCAweDA2LCAweGVmLCAweDg1LCAweDhmLCAweGEyLCAweGQ5LCAweDE5LAotICAgIDB4MzMsIDB4MTMsIDB4NDYsIDB4ODAsIDB4NWEsIDB4NzgsIDB4YjUsIDB4OGIsIDB4YmEsIDB4ZDAsIDB4YjgsIDB4NDQsCi0gICAgMHhlNSwgMHhjNywgMHg4OSwgMHgyOCwgMHg3OSwgMHgxNCwgMHg2MSwgMHg4NywgMHhkZCwgMHgyNiwgMHg2NiwgMHhhZCwKLSAgICAweGE3LCAweDgxLCAweGJiLCAweDdmLCAweDExLCAweDEzLCAweDcyLCAweDI1LCAweDFhLCAweDg5LCAweDEwLCAweDYyLAotICAgIDB4MWYsIDB4NjMsIDB4NGQsIDB4ZjEsIDB4MjgsIDB4YWMsIDB4NDgsIDB4ZTMsIDB4ODEsIDB4ZmQsIDB4NmUsIDB4ZjksCi0gICAgMHgwNiwgMHgwNywgMHgzMSwgMHhmNiwgMHg5NCwgMHhhNCwgMHg0MSwgMHgwNCwgMHgxZCwgMHhkMCwgMHhiZCwgMHg1ZCwKLSAgICAweDQ1LCAweDY2LCAweGM5LCAweGJlLCAweGQ5LCAweGNlLCAweDdkLCAweGU3LCAweDAxLCAweGI1LCAweGU4LCAweDJlLAotICAgIDB4MDgsIDB4ZTgsIDB4NGIsIDB4NzMsIDB4MDQsIDB4NjYsIDB4MDEsIDB4OGEsIDB4YjksIDB4MDMsIDB4YzcsIDB4OWUsCi0gICAgMHhiOSwgMHg4MiwgMHgxNywgMHgyMiwgMHgzNiwgMHhjMCwgMHhjMSwgMHg3MiwgMHg4YSwgMHhlNCwgMHhiZiwgMHg3MywKLSAgICAweDYxLCAweDBkLCAweDM0LCAweGRlLCAweDQ0LCAweDI0LCAweDZlLCAweGYzLCAweGQ5LCAweGMwLCAweDVhLCAweDIyLAotICAgIDB4MzYsIDB4ZmIsIDB4NjYsIDB4YTYsIDB4NTgsIDB4M2QsIDB4NzQsIDB4NDksIDB4MzAsIDB4OGIsIDB4YWIsIDB4Y2UsCi0gICAgMHgyMCwgMHg3MiwgMHhmZSwgMHgxNiwgMHg2NiwgMHgyOSwgMHg5MiwgMHhlOSwgMHgyMywgMHg1YywgMHgyNSwgMHgwMCwKLSAgICAweDJmLCAweDExLCAweGIxLCAweDUwLCAweDg3LCAweGI4LCAweDI3LCAweDM4LCAweGUwLCAweDNjLCAweDk0LCAweDViLAotICAgIDB4ZjcsIDB4YTIsIDB4OTksIDB4NWQsIDB4ZGEsIDB4MWUsIDB4OTgsIDB4MzQsIDB4NTgsIDB4NDEsIDB4MDQsIDB4N2UsCi0gICAgMHhhNiwgMHhlMywgMHhhNCwgMHg0OCwgMHg3MCwgMHgzNywgMHhhOSwgMHhlMCwgMHhkYiwgMHhkNywgMHg5MiwgMHg2MiwKLSAgICAweGIyLCAweGNjLCAweDI3LCAweDNlLCAweDc3LCAweDk5LCAweDMwLCAweGZjLCAweDE4LCAweDQwLCAweDlhLCAweGM1LAotICAgIDB4MzYsIDB4MWMsIDB4NWYsIDB4ZTYsIDB4NjksIDB4ZDcsIDB4MDIsIDB4ZTEsIDB4NDcsIDB4NzksIDB4MGEsIDB4ZWIsCi0gICAgMHg0YywgMHhlNywgMHhmZCwgMHg2NSwgMHg3NSwgMHhhYiwgMHgwZiwgMHg2YywgMHg3ZiwgMHhkMSwgMHhjMywgMHgzNSwKLSAgICAweDkzLCAweDlhLCAweGE4LCAweDYzLCAweGJhLCAweDM3LCAweGVjLCAweDkxLCAweGI3LCAweGUzLCAweDJiLCAweGIwLAotICAgIDB4MTMsIDB4YmIsIDB4MmIsIDB4NDEsIDB4MDQsIDB4YTQsIDB4OTUsIDB4NTgsIDB4ZDMsIDB4MmUsIDB4ZDEsIDB4ZWIsCi0gICAgMHhmYywgMHgxOCwgMHgxNiwgMHhhZiwgMHg0ZiwgMHhmMCwgMHg5YiwgMHg1NSwgMHhmYywgMHhiNCwgMHhjYSwgMHg0NywKLSAgICAweGIyLCAweGEwLCAweDJkLCAweDFlLCAweDdjLCAweGFmLCAweDExLCAweDc5LCAweGVhLCAweDNmLCAweGUxLCAweDM5LAotICAgIDB4NWIsIDB4MjIsIDB4YjgsIDB4NjEsIDB4OTYsIDB4NDAsIDB4MTYsIDB4ZmEsIDB4YmEsIDB4ZjcsIDB4MmMsIDB4OTcsCi0gICAgMHg1NiwgMHg5NSwgMHhkOSwgMHgzZCwgMHg0ZCwgMHhmMCwgMHhlNSwgMHgxOSwgMHg3ZiwgMHhlOSwgMHhmMCwgMHg0MCwKLSAgICAweDYzLCAweDRlLCAweGQ1LCAweDk3LCAweDY0LCAweDkzLCAweDc3LCAweDg3LCAweGJlLCAweDIwLCAweGJjLCAweDRkLAotICAgIDB4ZWUsIDB4YmIsIDB4ZjksIDB4YjgsIDB4ZDYsIDB4MGEsIDB4MzMsIDB4NWYsIDB4MDQsIDB4NmMsIDB4YTMsIDB4YWEsCi0gICAgMHg5NCwgMHgxZSwgMHg0NSwgMHg4NiwgMHg0YywgMHg3YywgMHhhZCwgMHhlZiwgMHg5YywgMHhmNywgMHg1YiwgMHgzZCwKLSAgICAweDhiLCAweDAxLCAweDBlLCAweDQ0LCAweDNlLCAweGYwCi19OwotCi1zdGF0aWMgY29uc3QgdW5zaWduZWQgY2hhciBlY2pwYWtlX3Rlc3Rfc3J2X29uZVtdID0gewotICAgIDB4NDEsIDB4MDQsIDB4N2UsIDB4YTYsIDB4ZTMsIDB4YTQsIDB4NDgsIDB4NzAsIDB4MzcsIDB4YTksIDB4ZTAsIDB4ZGIsCi0gICAgMHhkNywgMHg5MiwgMHg2MiwgMHhiMiwgMHhjYywgMHgyNywgMHgzZSwgMHg3NywgMHg5OSwgMHgzMCwgMHhmYywgMHgxOCwKLSAgICAweDQwLCAweDlhLCAweGM1LCAweDM2LCAweDFjLCAweDVmLCAweGU2LCAweDY5LCAweGQ3LCAweDAyLCAweGUxLCAweDQ3LAotICAgIDB4NzksIDB4MGEsIDB4ZWIsIDB4NGMsIDB4ZTcsIDB4ZmQsIDB4NjUsIDB4NzUsIDB4YWIsIDB4MGYsIDB4NmMsIDB4N2YsCi0gICAgMHhkMSwgMHhjMywgMHgzNSwgMHg5MywgMHg5YSwgMHhhOCwgMHg2MywgMHhiYSwgMHgzNywgMHhlYywgMHg5MSwgMHhiNywKLSAgICAweGUzLCAweDJiLCAweGIwLCAweDEzLCAweGJiLCAweDJiLCAweDQxLCAweDA0LCAweDA5LCAweGY4LCAweDViLCAweDNkLAotICAgIDB4MjAsIDB4ZWIsIDB4ZDcsIDB4ODgsIDB4NWMsIDB4ZTQsIDB4NjQsIDB4YzAsIDB4OGQsIDB4MDUsIDB4NmQsIDB4NjQsCi0gICAgMHgyOCwgMHhmZSwgMHg0ZCwgMHhkOSwgMHgyOCwgMHg3YSwgMHhhMywgMHg2NSwgMHhmMSwgMHgzMSwgMHhmNCwgMHgzNiwKLSAgICAweDBmLCAweGYzLCAweDg2LCAweGQ4LCAweDQ2LCAweDg5LCAweDhiLCAweGM0LCAweGI0LCAweDE1LCAweDgzLCAweGMyLAotICAgIDB4YTUsIDB4MTksIDB4N2YsIDB4NjUsIDB4ZDcsIDB4ODcsIDB4NDIsIDB4NzQsIDB4NmMsIDB4MTIsIDB4YTUsIDB4ZWMsCi0gICAgMHgwYSwgMHg0ZiwgMHhmZSwgMHgyZiwgMHgyNywgMHgwYSwgMHg3NSwgMHgwYSwgMHgxZCwgMHg4ZiwgMHhiNSwgMHgxNiwKLSAgICAweDIwLCAweDkzLCAweDRkLCAweDc0LCAweGViLCAweDQzLCAweGU1LCAweDRkLCAweGY0LCAweDI0LCAweGZkLCAweDk2LAotICAgIDB4MzAsIDB4NmMsIDB4MDEsIDB4MTcsIDB4YmYsIDB4MTMsIDB4MWEsIDB4ZmEsIDB4YmYsIDB4OTAsIDB4YTksIDB4ZDMsCi0gICAgMHgzZCwgMHgxMSwgMHg5OCwgMHhkOSwgMHgwNSwgMHgxOSwgMHgzNywgMHgzNSwgMHgxNCwgMHg0MSwgMHgwNCwgMHgxOSwKLSAgICAweDBhLCAweDA3LCAweDcwLCAweDBmLCAweGZhLCAweDRiLCAweGU2LCAweGFlLCAweDFkLCAweDc5LCAweGVlLCAweDBmLAotICAgIDB4MDYsIDB4YWUsIDB4YjUsIDB4NDQsIDB4Y2QsIDB4NWEsIDB4ZGQsIDB4YWEsIDB4YmUsIDB4ZGYsIDB4NzAsIDB4ZjgsCi0gICAgMHg2MiwgMHgzMywgMHgyMSwgMHgzMywgMHgyYywgMHg1NCwgMHhmMywgMHg1NSwgMHhmMCwgMHhmYiwgMHhmZSwgMHhjNywKLSAgICAweDgzLCAweGVkLCAweDM1LCAweDllLCAweDVkLCAweDBiLCAweGY3LCAweDM3LCAweDdhLCAweDBmLCAweGM0LCAweGVhLAotICAgIDB4N2EsIDB4Y2UsIDB4NDcsIDB4M2MsIDB4OWMsIDB4MTEsIDB4MmIsIDB4NDEsIDB4Y2MsIDB4ZDQsIDB4MWEsIDB4YzUsCi0gICAgMHg2YSwgMHg1NiwgMHgxMiwgMHg0MSwgMHgwNCwgMHgzNiwgMHgwYSwgMHgxYywgMHhlYSwgMHgzMywgMHhmYywgMHhlNiwKLSAgICAweDQxLCAweDE1LCAweDY0LCAweDU4LCAweGUwLCAweGE0LCAweGVhLCAweGMyLCAweDE5LCAweGU5LCAweDY4LCAweDMxLAotICAgIDB4ZTYsIDB4YWUsIDB4YmMsIDB4ODgsIDB4YjMsIDB4ZjMsIDB4NzUsIDB4MmYsIDB4OTMsIDB4YTAsIDB4MjgsIDB4MWQsCi0gICAgMHgxYiwgMHhmMSwgMHhmYiwgMHgxMCwgMHg2MCwgMHg1MSwgMHhkYiwgMHg5NiwgMHg5NCwgMHhhOCwgMHhkNiwgMHhlOCwKLSAgICAweDYyLCAweGE1LCAweGVmLCAweDEzLCAweDI0LCAweGEzLCAweGQ5LCAweGUyLCAweDc4LCAweDk0LCAweGYxLCAweGVlLAotICAgIDB4NGYsIDB4N2MsIDB4NTksIDB4MTksIDB4OTksIDB4NjUsIDB4YTgsIDB4ZGQsIDB4NGEsIDB4MjAsIDB4OTEsIDB4ODQsCi0gICAgMHg3ZCwgMHgyZCwgMHgyMiwgMHhkZiwgMHgzZSwgMHhlNSwgMHg1ZiwgMHhhYSwgMHgyYSwgMHgzZiwgMHhiMywgMHgzZiwKLSAgICAweGQyLCAweGQxLCAweGUwLCAweDU1LCAweGEwLCAweDdhLCAweDdjLCAweDYxLCAweGVjLCAweGZiLCAweDhkLCAweDgwLAotICAgIDB4ZWMsIDB4MDAsIDB4YzIsIDB4YzksIDB4ZWIsIDB4MTIKLX07Ci0KLXN0YXRpYyBjb25zdCB1bnNpZ25lZCBjaGFyIGVjanBha2VfdGVzdF9zcnZfdHdvW10gPSB7Ci0gICAgMHgwMywgMHgwMCwgMHgxNywgMHg0MSwgMHgwNCwgMHgwZiwgMHhiMiwgMHgyYiwgMHgxZCwgMHg1ZCwgMHgxMSwgMHgyMywKLSAgICAweGUwLCAweGVmLCAweDlmLCAweGViLCAweDlkLCAweDhhLCAweDJlLCAweDU5LCAweDBhLCAweDFmLCAweDRkLCAweDdjLAotICAgIDB4ZWQsIDB4MmMsIDB4MmIsIDB4MDYsIDB4NTgsIDB4NmUsIDB4OGYsIDB4MmEsIDB4MTYsIDB4ZDQsIDB4ZWIsIDB4MmYsCi0gICAgMHhkYSwgMHg0MywgMHgyOCwgMHhhMiwgMHgwYiwgMHgwNywgMHhkOCwgMHhmZCwgMHg2NiwgMHg3NiwgMHg1NCwgMHhjYSwKLSAgICAweDE4LCAweGM1LCAweDRlLCAweDMyLCAweGEzLCAweDMzLCAweGEwLCAweDg0LCAweDU0LCAweDUxLCAweGU5LCAweDI2LAotICAgIDB4ZWUsIDB4ODgsIDB4MDQsIDB4ZmQsIDB4N2EsIDB4ZjAsIDB4YWEsIDB4YTcsIDB4YTYsIDB4NDEsIDB4MDQsIDB4NTUsCi0gICAgMHgxNiwgMHhlYSwgMHgzZSwgMHg1NCwgMHhhMCwgMHhkNSwgMHhkOCwgMHhiMiwgMHhjZSwgMHg3OCwgMHg2YiwgMHgzOCwKLSAgICAweGQzLCAweDgzLCAweDM3LCAweDAwLCAweDI5LCAweGE1LCAweGRiLCAweGU0LCAweDQ1LCAweDljLCAweDlkLCAweGQ2LAotICAgIDB4MDEsIDB4YjQsIDB4MDgsIDB4YTIsIDB4NGEsIDB4ZTYsIDB4NDYsIDB4NWMsIDB4OGEsIDB4YzksIDB4MDUsIDB4YjksCi0gICAgMHhlYiwgMHgwMywgMHhiNSwgMHhkMywgMHg2OSwgMHgxYywgMHgxMywgMHg5ZSwgMHhmOCwgMHgzZiwgMHgxYywgMHhkNCwKLSAgICAweDIwLCAweDBmLCAweDZjLCAweDljLCAweGQ0LCAweGVjLCAweDM5LCAweDIyLCAweDE4LCAweGE1LCAweDllLCAweGQyLAotICAgIDB4NDMsIDB4ZDMsIDB4YzgsIDB4MjAsIDB4ZmYsIDB4NzIsIDB4NGEsIDB4OWEsIDB4NzAsIDB4YjgsIDB4OGMsIDB4YjgsCi0gICAgMHg2ZiwgMHgyMCwgMHhiNCwgMHgzNCwgMHhjNiwgMHg4NiwgMHg1YSwgMHhhMSwgMHhjZCwgMHg3OSwgMHgwNiwgMHhkZCwKLSAgICAweDdjLCAweDliLCAweGNlLCAweDM1LCAweDI1LCAweGY1LCAweDA4LCAweDI3LCAweDZmLCAweDI2LCAweDgzLCAweDZjCi19OwotCi1zdGF0aWMgY29uc3QgdW5zaWduZWQgY2hhciBlY2pwYWtlX3Rlc3RfY2xpX3R3b1tdID0gewotICAgIDB4NDEsIDB4MDQsIDB4NjksIDB4ZDUsIDB4NGUsIDB4ZTgsIDB4NWUsIDB4OTAsIDB4Y2UsIDB4M2YsIDB4MTIsIDB4NDYsCi0gICAgMHg3NCwgMHgyZCwgMHhlNSwgMHgwNywgMHhlOSwgMHgzOSwgMHhlOCwgMHgxZCwgMHgxZCwgMHhjMSwgMHhjNSwgMHhjYiwKLSAgICAweDk4LCAweDhiLCAweDU4LCAweGMzLCAweDEwLCAweGM5LCAweGZkLCAweGQ5LCAweDUyLCAweDRkLCAweDkzLCAweDcyLAotICAgIDB4MGIsIDB4NDUsIDB4NTQsIDB4MWMsIDB4ODMsIDB4ZWUsIDB4ODgsIDB4NDEsIDB4MTksIDB4MWQsIDB4YTcsIDB4Y2UsCi0gICAgMHhkOCwgMHg2ZSwgMHgzMywgMHgxMiwgMHhkNCwgMHgzNiwgMHgyMywgMHhjMSwgMHhkNiwgMHgzZSwgMHg3NCwgMHg5OCwKLSAgICAweDlhLCAweGJhLCAweDRhLCAweGZmLCAweGQxLCAweGVlLCAweDQxLCAweDA0LCAweDA3LCAweDdlLCAweDhjLCAweDMxLAotICAgIDB4ZTIsIDB4MGUsIDB4NmIsIDB4ZWQsIDB4YjcsIDB4NjAsIDB4YzEsIDB4MzUsIDB4OTMsIDB4ZTYsIDB4OWYsIDB4MTUsCi0gICAgMHhiZSwgMHg4NSwgMHhjMiwgMHg3ZCwgMHg2OCwgMHhjZCwgMHgwOSwgMHhjYywgMHhiOCwgMHhjNCwgMHgxOCwgMHgzNiwKLSAgICAweDA4LCAweDkxLCAweDdjLCAweDVjLCAweDNkLCAweDQwLCAweDlmLCAweGFjLCAweDM5LCAweGZlLCAweGZlLCAweGU4LAotICAgIDB4MmYsIDB4NzIsIDB4OTIsIDB4ZDMsIDB4NmYsIDB4MGQsIDB4MjMsIDB4ZTAsIDB4NTUsIDB4OTEsIDB4M2YsIDB4NDUsCi0gICAgMHhhNSwgMHgyYiwgMHg4NSwgMHhkZCwgMHg4YSwgMHgyMCwgMHg1MiwgMHhlOSwgMHhlMSwgMHgyOSwgMHhiYiwgMHg0ZCwKLSAgICAweDIwLCAweDBmLCAweDAxLCAweDFmLCAweDE5LCAweDQ4LCAweDM1LCAweDM1LCAweGE2LCAweGU4LCAweDlhLCAweDU4LAotICAgIDB4MGMsIDB4OWIsIDB4MDAsIDB4MDMsIDB4YmEsIDB4ZjIsIDB4MTQsIDB4NjIsIDB4ZWMsIDB4ZTksIDB4MWEsIDB4ODIsCi0gICAgMHhjYywgMHgzOCwgMHhkYiwgMHhkYywgMHhhZSwgMHg2MCwgMHhkOSwgMHhjNSwgMHg0YwotfTsKLQotc3RhdGljIGNvbnN0IHVuc2lnbmVkIGNoYXIgZWNqcGFrZV90ZXN0X3NoYXJlZF9rZXlbXSA9IHsKLSAgICAweDA0LCAweDAxLCAweGFiLCAweGU5LCAweGYyLCAweGM3LCAweDNhLCAweDk5LCAweDE0LCAweGNiLCAweDFmLCAweDgwLAotICAgIDB4ZmIsIDB4OWQsIDB4ZGIsIDB4N2UsIDB4MDAsIDB4MTIsIDB4YTgsIDB4OWMsIDB4MmYsIDB4MzksIDB4MjcsIDB4NzksCi0gICAgMHhmOSwgMHg2NCwgMHg0MCwgMHgxNCwgMHg3NSwgMHhlYSwgMHhjMSwgMHgzMSwgMHgyOCwgMHg0MywgMHg4ZiwgMHhlMSwKLSAgICAweDEyLCAweDQxLCAweGQ2LCAweGMxLCAweGU1LCAweDVmLCAweDdiLCAweDgwLCAweDg4LCAweDk0LCAweGM5LCAweGMwLAotICAgIDB4MjcsIDB4YTMsIDB4MzQsIDB4NDEsIDB4ZjUsIDB4Y2IsIDB4YTEsIDB4ZmUsIDB4NmMsIDB4YzcsIDB4ZTYsIDB4MTIsCi0gICAgMHgxNywgMHhjMywgMHhkZSwgMHgyNywgMHhiNCwKLX07Ci0KLXN0YXRpYyBjb25zdCB1bnNpZ25lZCBjaGFyIGVjanBha2VfdGVzdF9wbXNbXSA9IHsKLSAgICAweGYzLCAweGQ0LCAweDdmLCAweDU5LCAweDk4LCAweDQ0LCAweGRiLCAweDkyLCAweGE1LCAweDY5LCAweGJiLCAweGU3LAotICAgIDB4OTgsIDB4MWUsIDB4MzksIDB4ZDksIDB4MzEsIDB4ZmQsIDB4NzQsIDB4M2IsIDB4ZjIsIDB4MmUsIDB4OTgsIDB4ZjksCi0gICAgMHhiNCwgMHgzOCwgMHhmNywgMHgxOSwgMHhkMywgMHhjNCwgMHhmMywgMHg1MQotfTsKLQotLyoKLSAqIFBSTkcgZm9yIHRlc3QgLSAhISFJTlNFQ1VSRSBORVZFUiBVU0UgSU4gUFJPRFVDVElPTiEhIQotICoKLSAqIFRoaXMgaXMgdGhlIGxpbmVhciBjb25ncnVlbnRpYWwgZ2VuZXJhdG9yIGZyb20gbnVtZXJpY2FsIHJlY2lwZXMsCi0gKiBleGNlcHQgd2Ugb25seSB1c2UgdGhlIGxvdyBieXRlIGFzIHRoZSBvdXRwdXQuIFNlZQotICogaHR0cHM6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvTGluZWFyX2NvbmdydWVudGlhbF9nZW5lcmF0b3IjUGFyYW1ldGVyc19pbl9jb21tb25fdXNlCi0gKi8KLXN0YXRpYyBpbnQgc2VsZl90ZXN0X3JuZyh2b2lkICpjdHgsIHVuc2lnbmVkIGNoYXIgKm91dCwgc2l6ZV90IGxlbikKLXsKLSAgICBzdGF0aWMgdWludDMyX3Qgc3RhdGUgPSA0MjsKLQotICAgICh2b2lkKSBjdHg7Ci0KLSAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGxlbjsgaSsrKSB7Ci0gICAgICAgIHN0YXRlID0gc3RhdGUgKiAxNjY0NTI1dSArIDEwMTM5MDQyMjN1OwotICAgICAgICBvdXRbaV0gPSAodW5zaWduZWQgY2hhcikgc3RhdGU7Ci0gICAgfQotCi0gICAgcmV0dXJuIDA7Ci19Ci0KLS8qIExvYWQgbXkgcHJpdmF0ZSBrZXlzIGFuZCBnZW5lcmF0ZSB0aGUgY29ycmVzcG9uZGluZyBwdWJsaWMga2V5cyAqLwotc3RhdGljIGludCBlY2pwYWtlX3Rlc3RfbG9hZChtYmVkdGxzX2VjanBha2VfY29udGV4dCAqY3R4LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1bnNpZ25lZCBjaGFyICp4bTEsIHNpemVfdCBsZW4xLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1bnNpZ25lZCBjaGFyICp4bTIsIHNpemVfdCBsZW4yKQotewotICAgIGludCByZXQgPSBNQkVEVExTX0VSUl9FUlJPUl9DT1JSVVBUSU9OX0RFVEVDVEVEOwotCi0gICAgTUJFRFRMU19NUElfQ0hLKG1iZWR0bHNfbXBpX3JlYWRfYmluYXJ5KCZjdHgtPnhtMSwgeG0xLCBsZW4xKSk7Ci0gICAgTUJFRFRMU19NUElfQ0hLKG1iZWR0bHNfbXBpX3JlYWRfYmluYXJ5KCZjdHgtPnhtMiwgeG0yLCBsZW4yKSk7Ci0gICAgTUJFRFRMU19NUElfQ0hLKG1iZWR0bHNfZWNwX211bCgmY3R4LT5ncnAsICZjdHgtPlhtMSwgJmN0eC0+eG0xLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJmN0eC0+Z3JwLkcsIHNlbGZfdGVzdF9ybmcsIE5VTEwpKTsKLSAgICBNQkVEVExTX01QSV9DSEsobWJlZHRsc19lY3BfbXVsKCZjdHgtPmdycCwgJmN0eC0+WG0yLCAmY3R4LT54bTIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmY3R4LT5ncnAuRywgc2VsZl90ZXN0X3JuZywgTlVMTCkpOwotCi1jbGVhbnVwOgotICAgIHJldHVybiByZXQ7Ci19Ci0KLSNlbmRpZiAvKiAhIE1CRURUTFNfRUNKUEFLRV9BTFQgKi8KLQotLyogRm9yIHRlc3RzIHdlIGRvbid0IG5lZWQgYSBzZWN1cmUgUk5HOwotICogdXNlIHRoZSBMR0MgZnJvbSBOdW1lcmljYWwgUmVjaXBlcyBmb3Igc2ltcGxpY2l0eSAqLwotc3RhdGljIGludCBlY2pwYWtlX2xnYyh2b2lkICpwLCB1bnNpZ25lZCBjaGFyICpvdXQsIHNpemVfdCBsZW4pCi17Ci0gICAgc3RhdGljIHVpbnQzMl90IHggPSA0MjsKLSAgICAodm9pZCkgcDsKLQotICAgIHdoaWxlIChsZW4gPiAwKSB7Ci0gICAgICAgIHNpemVfdCB1c2VfbGVuID0gbGVuID4gNCA/IDQgOiBsZW47Ci0gICAgICAgIHggPSAxNjY0NTI1ICogeCArIDEwMTM5MDQyMjM7Ci0gICAgICAgIG1lbWNweShvdXQsICZ4LCB1c2VfbGVuKTsKLSAgICAgICAgb3V0ICs9IHVzZV9sZW47Ci0gICAgICAgIGxlbiAtPSB1c2VfbGVuOwotICAgIH0KLQotICAgIHJldHVybiAwOwotfQotCi0jZGVmaW5lIFRFU1RfQVNTRVJUKHgpICAgIFwKLSAgICBkbyB7ICAgICAgICAgICAgICAgICAgICBcCi0gICAgICAgIGlmICh4KSAgICAgICAgICAgICBcCi0gICAgICAgIHJldCA9IDA7ICAgICAgICBcCi0gICAgICAgIGVsc2UgICAgICAgICAgICAgICAgXAotICAgICAgICB7ICAgICAgICAgICAgICAgICAgIFwKLSAgICAgICAgICAgIHJldCA9IDE7ICAgICAgICBcCi0gICAgICAgICAgICBnb3RvIGNsZWFudXA7ICAgXAotICAgICAgICB9ICAgICAgICAgICAgICAgICAgIFwKLSAgICB9IHdoaWxlICgwKQotCi0vKgotICogQ2hlY2t1cCByb3V0aW5lCi0gKi8KLWludCBtYmVkdGxzX2VjanBha2Vfc2VsZl90ZXN0KGludCB2ZXJib3NlKQotewotICAgIGludCByZXQgPSBNQkVEVExTX0VSUl9FUlJPUl9DT1JSVVBUSU9OX0RFVEVDVEVEOwotICAgIG1iZWR0bHNfZWNqcGFrZV9jb250ZXh0IGNsaTsKLSAgICBtYmVkdGxzX2VjanBha2VfY29udGV4dCBzcnY7Ci0gICAgdW5zaWduZWQgY2hhciBidWZbNTEyXSwgcG1zWzMyXTsKLSAgICBzaXplX3QgbGVuLCBwbXNsZW47Ci0KLSAgICBtYmVkdGxzX2VjanBha2VfaW5pdCgmY2xpKTsKLSAgICBtYmVkdGxzX2VjanBha2VfaW5pdCgmc3J2KTsKLQotICAgIGlmICh2ZXJib3NlICE9IDApIHsKLSAgICAgICAgbWJlZHRsc19wcmludGYoIiAgRUNKUEFLRSB0ZXN0ICMwIChzZXR1cCk6ICIpOwotICAgIH0KLQotICAgIFRFU1RfQVNTRVJUKG1iZWR0bHNfZWNqcGFrZV9zZXR1cCgmY2xpLCBNQkVEVExTX0VDSlBBS0VfQ0xJRU5ULAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNQkVEVExTX01EX1NIQTI1NiwgTUJFRFRMU19FQ1BfRFBfU0VDUDI1NlIxLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlY2pwYWtlX3Rlc3RfcGFzc3dvcmQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVvZihlY2pwYWtlX3Rlc3RfcGFzc3dvcmQpKSA9PSAwKTsKLQotICAgIFRFU1RfQVNTRVJUKG1iZWR0bHNfZWNqcGFrZV9zZXR1cCgmc3J2LCBNQkVEVExTX0VDSlBBS0VfU0VSVkVSLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNQkVEVExTX01EX1NIQTI1NiwgTUJFRFRMU19FQ1BfRFBfU0VDUDI1NlIxLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlY2pwYWtlX3Rlc3RfcGFzc3dvcmQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVvZihlY2pwYWtlX3Rlc3RfcGFzc3dvcmQpKSA9PSAwKTsKLQotICAgIGlmICh2ZXJib3NlICE9IDApIHsKLSAgICAgICAgbWJlZHRsc19wcmludGYoInBhc3NlZFxuIik7Ci0gICAgfQotCi0gICAgaWYgKHZlcmJvc2UgIT0gMCkgewotICAgICAgICBtYmVkdGxzX3ByaW50ZigiICBFQ0pQQUtFIHRlc3QgIzEgKHJhbmRvbSBoYW5kc2hha2UpOiAiKTsKLSAgICB9Ci0KLSAgICBURVNUX0FTU0VSVChtYmVkdGxzX2VjanBha2Vfd3JpdGVfcm91bmRfb25lKCZjbGksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBidWYsIHNpemVvZihidWYpLCAmbGVuLCBlY2pwYWtlX2xnYywgTlVMTCkgPT0gMCk7Ci0KLSAgICBURVNUX0FTU0VSVChtYmVkdGxzX2VjanBha2VfcmVhZF9yb3VuZF9vbmUoJnNydiwgYnVmLCBsZW4pID09IDApOwotCi0gICAgVEVTVF9BU1NFUlQobWJlZHRsc19lY2pwYWtlX3dyaXRlX3JvdW5kX29uZSgmc3J2LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnVmLCBzaXplb2YoYnVmKSwgJmxlbiwgZWNqcGFrZV9sZ2MsIE5VTEwpID09IDApOwotCi0gICAgVEVTVF9BU1NFUlQobWJlZHRsc19lY2pwYWtlX3JlYWRfcm91bmRfb25lKCZjbGksIGJ1ZiwgbGVuKSA9PSAwKTsKLQotICAgIFRFU1RfQVNTRVJUKG1iZWR0bHNfZWNqcGFrZV93cml0ZV9yb3VuZF90d28oJnNydiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ1Ziwgc2l6ZW9mKGJ1ZiksICZsZW4sIGVjanBha2VfbGdjLCBOVUxMKSA9PSAwKTsKLQotICAgIFRFU1RfQVNTRVJUKG1iZWR0bHNfZWNqcGFrZV9yZWFkX3JvdW5kX3R3bygmY2xpLCBidWYsIGxlbikgPT0gMCk7Ci0KLSAgICBURVNUX0FTU0VSVChtYmVkdGxzX2VjanBha2VfZGVyaXZlX3NlY3JldCgmY2xpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBtcywgc2l6ZW9mKHBtcyksICZwbXNsZW4sIGVjanBha2VfbGdjLCBOVUxMKSA9PSAwKTsKLQotICAgIFRFU1RfQVNTRVJUKG1iZWR0bHNfZWNqcGFrZV93cml0ZV9yb3VuZF90d28oJmNsaSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ1Ziwgc2l6ZW9mKGJ1ZiksICZsZW4sIGVjanBha2VfbGdjLCBOVUxMKSA9PSAwKTsKLQotICAgIFRFU1RfQVNTRVJUKG1iZWR0bHNfZWNqcGFrZV9yZWFkX3JvdW5kX3R3bygmc3J2LCBidWYsIGxlbikgPT0gMCk7Ci0KLSAgICBURVNUX0FTU0VSVChtYmVkdGxzX2VjanBha2VfZGVyaXZlX3NlY3JldCgmc3J2LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ1Ziwgc2l6ZW9mKGJ1ZiksICZsZW4sIGVjanBha2VfbGdjLCBOVUxMKSA9PSAwKTsKLQotICAgIFRFU1RfQVNTRVJUKGxlbiA9PSBwbXNsZW4pOwotICAgIFRFU1RfQVNTRVJUKG1lbWNtcChidWYsIHBtcywgbGVuKSA9PSAwKTsKLQotICAgIGlmICh2ZXJib3NlICE9IDApIHsKLSAgICAgICAgbWJlZHRsc19wcmludGYoInBhc3NlZFxuIik7Ci0gICAgfQotCi0jaWYgIWRlZmluZWQoTUJFRFRMU19FQ0pQQUtFX0FMVCkKLSAgICAvKiAncmVmZXJlbmNlIGhhbmRzaGFrZScgdGVzdHMgY2FuIG9ubHkgYmUgcnVuIGFnYWluc3QgaW1wbGVtZW50YXRpb25zCi0gICAgICogZm9yIHdoaWNoIHdlIGhhdmUgMTAwJSBjb250cm9sIG92ZXIgaG93IHRoZSByYW5kb20gZXBoZW1lcmFsIGtleXMKLSAgICAgKiBhcmUgZ2VuZXJhdGVkLiBUaGlzIGlzIG9ubHkgdGhlIGNhc2UgZm9yIHRoZSBpbnRlcm5hbCBNYmVkIFRMUwotICAgICAqIGltcGxlbWVudGF0aW9uLCBzbyB0aGVzZSB0ZXN0cyBhcmUgc2tpcHBlZCBpbiBjYXNlIHRoZSBpbnRlcm5hbAotICAgICAqIGltcGxlbWVudGF0aW9uIGlzIHN3YXBwZWQgb3V0IGZvciBhbiBhbHRlcm5hdGl2ZSBvbmUuICovCi0gICAgaWYgKHZlcmJvc2UgIT0gMCkgewotICAgICAgICBtYmVkdGxzX3ByaW50ZigiICBFQ0pQQUtFIHRlc3QgIzIgKHJlZmVyZW5jZSBoYW5kc2hha2UpOiAiKTsKLSAgICB9Ci0KLSAgICAvKiBTaW11bGF0ZSBnZW5lcmF0aW9uIG9mIHJvdW5kIG9uZSAqLwotICAgIE1CRURUTFNfTVBJX0NISyhlY2pwYWtlX3Rlc3RfbG9hZCgmY2xpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlY2pwYWtlX3Rlc3RfeDEsIHNpemVvZihlY2pwYWtlX3Rlc3RfeDEpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlY2pwYWtlX3Rlc3RfeDIsIHNpemVvZihlY2pwYWtlX3Rlc3RfeDIpKSk7Ci0KLSAgICBNQkVEVExTX01QSV9DSEsoZWNqcGFrZV90ZXN0X2xvYWQoJnNydiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWNqcGFrZV90ZXN0X3gzLCBzaXplb2YoZWNqcGFrZV90ZXN0X3gzKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWNqcGFrZV90ZXN0X3g0LCBzaXplb2YoZWNqcGFrZV90ZXN0X3g0KSkpOwotCi0gICAgLyogUmVhZCByb3VuZCBvbmUgKi8KLSAgICBURVNUX0FTU0VSVChtYmVkdGxzX2VjanBha2VfcmVhZF9yb3VuZF9vbmUoJnNydiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWNqcGFrZV90ZXN0X2NsaV9vbmUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVvZihlY2pwYWtlX3Rlc3RfY2xpX29uZSkpID09IDApOwotCi0gICAgVEVTVF9BU1NFUlQobWJlZHRsc19lY2pwYWtlX3JlYWRfcm91bmRfb25lKCZjbGksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVjanBha2VfdGVzdF9zcnZfb25lLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplb2YoZWNqcGFrZV90ZXN0X3Nydl9vbmUpKSA9PSAwKTsKLQotICAgIC8qIFNraXAgZ2VuZXJhdGlvbiBvZiByb3VuZCB0d28sIHJlYWQgcm91bmQgdHdvICovCi0gICAgVEVTVF9BU1NFUlQobWJlZHRsc19lY2pwYWtlX3JlYWRfcm91bmRfdHdvKCZjbGksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVjanBha2VfdGVzdF9zcnZfdHdvLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplb2YoZWNqcGFrZV90ZXN0X3Nydl90d28pKSA9PSAwKTsKLQotICAgIFRFU1RfQVNTRVJUKG1iZWR0bHNfZWNqcGFrZV9yZWFkX3JvdW5kX3R3bygmc3J2LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlY2pwYWtlX3Rlc3RfY2xpX3R3bywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZW9mKGVjanBha2VfdGVzdF9jbGlfdHdvKSkgPT0gMCk7Ci0KLSAgICAvKiBTZXJ2ZXIgZGVyaXZlcyBQTVMgKi8KLSAgICBURVNUX0FTU0VSVChtYmVkdGxzX2VjanBha2VfZGVyaXZlX3NlY3JldCgmc3J2LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ1Ziwgc2l6ZW9mKGJ1ZiksICZsZW4sIGVjanBha2VfbGdjLCBOVUxMKSA9PSAwKTsKLQotICAgIFRFU1RfQVNTRVJUKGxlbiA9PSBzaXplb2YoZWNqcGFrZV90ZXN0X3BtcykpOwotICAgIFRFU1RfQVNTRVJUKG1lbWNtcChidWYsIGVjanBha2VfdGVzdF9wbXMsIGxlbikgPT0gMCk7Ci0KLSAgICAvKiBTZXJ2ZXIgZGVyaXZlcyBLIGFzIHVuc2lnbmVkIGJpbmFyeSBkYXRhICovCi0gICAgVEVTVF9BU1NFUlQobWJlZHRsc19lY2pwYWtlX3dyaXRlX3NoYXJlZF9rZXkoJnNydiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBidWYsIHNpemVvZihidWYpLCAmbGVuLCBlY2pwYWtlX2xnYywgTlVMTCkgPT0gMCk7Ci0KLSAgICBURVNUX0FTU0VSVChsZW4gPT0gc2l6ZW9mKGVjanBha2VfdGVzdF9zaGFyZWRfa2V5KSk7Ci0gICAgVEVTVF9BU1NFUlQobWVtY21wKGJ1ZiwgZWNqcGFrZV90ZXN0X3NoYXJlZF9rZXksIGxlbikgPT0gMCk7Ci0KLSAgICBtZW1zZXQoYnVmLCAwLCBsZW4pOyAgIC8qIEF2b2lkIGludGVyZmVyZW5jZXMgd2l0aCBuZXh0IHN0ZXAgKi8KLQotICAgIC8qIENsaWVudCBkZXJpdmVzIFBNUyAqLwotICAgIFRFU1RfQVNTRVJUKG1iZWR0bHNfZWNqcGFrZV9kZXJpdmVfc2VjcmV0KCZjbGksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnVmLCBzaXplb2YoYnVmKSwgJmxlbiwgZWNqcGFrZV9sZ2MsIE5VTEwpID09IDApOwotCi0gICAgVEVTVF9BU1NFUlQobGVuID09IHNpemVvZihlY2pwYWtlX3Rlc3RfcG1zKSk7Ci0gICAgVEVTVF9BU1NFUlQobWVtY21wKGJ1ZiwgZWNqcGFrZV90ZXN0X3BtcywgbGVuKSA9PSAwKTsKLQotICAgIC8qIENsaWVudCBkZXJpdmVzIEsgYXMgdW5zaWduZWQgYmluYXJ5IGRhdGEgKi8KLSAgICBURVNUX0FTU0VSVChtYmVkdGxzX2VjanBha2Vfd3JpdGVfc2hhcmVkX2tleSgmY2xpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ1Ziwgc2l6ZW9mKGJ1ZiksICZsZW4sIGVjanBha2VfbGdjLCBOVUxMKSA9PSAwKTsKLQotICAgIFRFU1RfQVNTRVJUKGxlbiA9PSBzaXplb2YoZWNqcGFrZV90ZXN0X3NoYXJlZF9rZXkpKTsKLSAgICBURVNUX0FTU0VSVChtZW1jbXAoYnVmLCBlY2pwYWtlX3Rlc3Rfc2hhcmVkX2tleSwgbGVuKSA9PSAwKTsKLQotICAgIGlmICh2ZXJib3NlICE9IDApIHsKLSAgICAgICAgbWJlZHRsc19wcmludGYoInBhc3NlZFxuIik7Ci0gICAgfQotI2VuZGlmIC8qICEgTUJFRFRMU19FQ0pQQUtFX0FMVCAqLwotCi1jbGVhbnVwOgotICAgIG1iZWR0bHNfZWNqcGFrZV9mcmVlKCZjbGkpOwotICAgIG1iZWR0bHNfZWNqcGFrZV9mcmVlKCZzcnYpOwotCi0gICAgaWYgKHJldCAhPSAwKSB7Ci0gICAgICAgIGlmICh2ZXJib3NlICE9IDApIHsKLSAgICAgICAgICAgIG1iZWR0bHNfcHJpbnRmKCJmYWlsZWRcbiIpOwotICAgICAgICB9Ci0KLSAgICAgICAgcmV0ID0gMTsKLSAgICB9Ci0KLSAgICBpZiAodmVyYm9zZSAhPSAwKSB7Ci0gICAgICAgIG1iZWR0bHNfcHJpbnRmKCJcbiIpOwotICAgIH0KLQotICAgIHJldHVybiByZXQ7Ci19Ci0KLSN1bmRlZiBURVNUX0FTU0VSVAotCi0jZW5kaWYgLyogTUJFRFRMU19FQ1BfRFBfU0VDUDI1NlIxX0VOQUJMRUQgJiYgTUJFRFRMU19NRF9DQU5fU0hBMjU2ICovCi0KLSNlbmRpZiAvKiBNQkVEVExTX1NFTEZfVEVTVCAqLwotCi0jZW5kaWYgLyogTUJFRFRMU19FQ0pQQUtFX0MgKi8KZGlmZiAtLWdpdCBhL2xpYnJhcnkvZWNwLmMgYi9saWJyYXJ5L2VjcC5jCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0MjcwNTliLi4wMDAwMDAwCi0tLSBhL2xpYnJhcnkvZWNwLmMKKysrIC9kZXYvbnVsbApAQCAtMSwzNzAzICswLDAgQEAKLS8qCi0gKiAgRWxsaXB0aWMgY3VydmVzIG92ZXIgR0YocCk6IGdlbmVyaWMgZnVuY3Rpb25zCi0gKgotICogIENvcHlyaWdodCBUaGUgTWJlZCBUTFMgQ29udHJpYnV0b3JzCi0gKiAgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjAgT1IgR1BMLTIuMC1vci1sYXRlcgotICovCi0KLS8qCi0gKiBSZWZlcmVuY2VzOgotICoKLSAqIFNFQzEgaHR0cHM6Ly93d3cuc2VjZy5vcmcvc2VjMS12Mi5wZGYKLSAqIEdFQ0MgPSBHdWlkZSB0byBFbGxpcHRpYyBDdXJ2ZSBDcnlwdG9ncmFwaHkgLSBIYW5rZXJzb24sIE1lbmV6ZXMsIFZhbnN0b25lCi0gKiBGSVBTIDE4Ni0zIGh0dHA6Ly9jc3JjLm5pc3QuZ292L3B1YmxpY2F0aW9ucy9maXBzL2ZpcHMxODYtMy9maXBzXzE4Ni0zLnBkZgotICogUkZDIDQ0OTIgZm9yIHRoZSByZWxhdGVkIFRMUyBzdHJ1Y3R1cmVzIGFuZCBjb25zdGFudHMKLSAqIC0gaHR0cHM6Ly93d3cucmZjLWVkaXRvci5vcmcvcmZjL3JmYzQ0OTIKLSAqIFJGQyA3NzQ4IGZvciB0aGUgQ3VydmU0NDggYW5kIEN1cnZlMjU1MTkgY3VydmUgZGVmaW5pdGlvbnMKLSAqIC0gaHR0cHM6Ly93d3cucmZjLWVkaXRvci5vcmcvcmZjL3JmYzc3NDgKLSAqCi0gKiBbQ3VydmUyNTUxOV0gaHR0cHM6Ly9jci55cC50by9lY2RoL2N1cnZlMjU1MTktMjAwNjAyMDkucGRmCi0gKgotICogWzJdIENPUk9OLCBKZWFuLVMnZWJhc3RpZW4uIFJlc2lzdGFuY2UgYWdhaW5zdCBkaWZmZXJlbnRpYWwgcG93ZXIgYW5hbHlzaXMKLSAqICAgICBmb3IgZWxsaXB0aWMgY3VydmUgY3J5cHRvc3lzdGVtcy4gSW4gOiBDcnlwdG9ncmFwaGljIEhhcmR3YXJlIGFuZAotICogICAgIEVtYmVkZGVkIFN5c3RlbXMuIFNwcmluZ2VyIEJlcmxpbiBIZWlkZWxiZXJnLCAxOTk5LiBwLiAyOTItMzAyLgotICogICAgIDxodHRwOi8vbGluay5zcHJpbmdlci5jb20vY2hhcHRlci8xMC4xMDA3LzMtNTQwLTQ4MDU5LTVfMjU+Ci0gKgotICogWzNdIEhFREFCT1UsIE11c3RhcGhhLCBQSU5FTCwgUGllcnJlLCBldCBCJ0VOJ0VURUFVLCBMdWNpZW4uIEEgY29tYiBtZXRob2QgdG8KLSAqICAgICByZW5kZXIgRUNDIHJlc2lzdGFudCBhZ2FpbnN0IFNpZGUgQ2hhbm5lbCBBdHRhY2tzLiBJQUNSIENyeXB0b2xvZ3kKLSAqICAgICBlUHJpbnQgQXJjaGl2ZSwgMjAwNCwgdm9sLiAyMDA0LCBwLiAzNDIuCi0gKiAgICAgPGh0dHA6Ly9lcHJpbnQuaWFjci5vcmcvMjAwNC8zNDIucGRmPgotICovCi0KLSNpbmNsdWRlICJjb21tb24uaCIKLQotLyoqCi0gKiBcYnJpZWYgRnVuY3Rpb24gbGV2ZWwgYWx0ZXJuYXRpdmUgaW1wbGVtZW50YXRpb24uCi0gKgotICogVGhlIE1CRURUTFNfRUNQX0lOVEVSTkFMX0FMVCBtYWNybyBlbmFibGVzIGFsdGVybmF0aXZlIGltcGxlbWVudGF0aW9ucyB0bwotICogcmVwbGFjZSBjZXJ0YWluIGZ1bmN0aW9ucyBpbiB0aGlzIG1vZHVsZS4gVGhlIGFsdGVybmF0aXZlIGltcGxlbWVudGF0aW9ucyBhcmUKLSAqIHR5cGljYWxseSBoYXJkd2FyZSBhY2NlbGVyYXRvcnMgYW5kIG5lZWQgdG8gYWN0aXZhdGUgdGhlIGhhcmR3YXJlIGJlZm9yZSB0aGUKLSAqIGNvbXB1dGF0aW9uIHN0YXJ0cyBhbmQgZGVhY3RpdmF0ZSBpdCBhZnRlciBpdCBmaW5pc2hlcy4gVGhlCi0gKiBtYmVkdGxzX2ludGVybmFsX2VjcF9pbml0KCkgYW5kIG1iZWR0bHNfaW50ZXJuYWxfZWNwX2ZyZWUoKSBmdW5jdGlvbnMgc2VydmUKLSAqIHRoaXMgcHVycG9zZS4KLSAqCi0gKiBUbyBwcmVzZXJ2ZSB0aGUgY29ycmVjdCBmdW5jdGlvbmFsaXR5IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBtdXN0IGhvbGQ6Ci0gKgotICogLSBUaGUgYWx0ZXJuYXRpdmUgaW1wbGVtZW50YXRpb24gbXVzdCBiZSBhY3RpdmF0ZWQgYnkKLSAqICAgbWJlZHRsc19pbnRlcm5hbF9lY3BfaW5pdCgpIGJlZm9yZSBhbnkgb2YgdGhlIHJlcGxhY2VhYmxlIGZ1bmN0aW9ucyBpcwotICogICBjYWxsZWQuCi0gKiAtIG1iZWR0bHNfaW50ZXJuYWxfZWNwX2ZyZWUoKSBtdXN0IFxiIG9ubHkgYmUgY2FsbGVkIHdoZW4gdGhlIGFsdGVybmF0aXZlCi0gKiAgIGltcGxlbWVudGF0aW9uIGlzIGFjdGl2YXRlZC4KLSAqIC0gbWJlZHRsc19pbnRlcm5hbF9lY3BfaW5pdCgpIG11c3QgXGIgbm90IGJlIGNhbGxlZCB3aGVuIHRoZSBhbHRlcm5hdGl2ZQotICogICBpbXBsZW1lbnRhdGlvbiBpcyBhY3RpdmF0ZWQuCi0gKiAtIFB1YmxpYyBmdW5jdGlvbnMgbXVzdCBub3QgcmV0dXJuIHdoaWxlIHRoZSBhbHRlcm5hdGl2ZSBpbXBsZW1lbnRhdGlvbiBpcwotICogICBhY3RpdmF0ZWQuCi0gKiAtIFJlcGxhY2VhYmxlIGZ1bmN0aW9ucyBhcmUgZ3VhcmRlZCBieSBcYyBNQkVEVExTX0VDUF9YWFhfQUxUIG1hY3JvcyBhbmQKLSAqICAgYmVmb3JlIGNhbGxpbmcgdGhlbSBhbiBcY29kZSBpZiggbWJlZHRsc19pbnRlcm5hbF9lY3BfZ3JwX2NhcGFibGUoIGdycCApICkKLSAqICAgXGVuZGNvZGUgZW5zdXJlcyB0aGF0IHRoZSBhbHRlcm5hdGl2ZSBpbXBsZW1lbnRhdGlvbiBzdXBwb3J0cyB0aGUgY3VycmVudAotICogICBncm91cC4KLSAqLwotI2lmIGRlZmluZWQoTUJFRFRMU19FQ1BfSU5URVJOQUxfQUxUKQotI2VuZGlmCi0KLSNpZiBkZWZpbmVkKE1CRURUTFNfRUNQX0xJR0hUKQotCi0jaW5jbHVkZSAibWJlZHRscy9lY3AuaCIKLSNpbmNsdWRlICJtYmVkdGxzL3RocmVhZGluZy5oIgotI2luY2x1ZGUgIm1iZWR0bHMvcGxhdGZvcm1fdXRpbC5oIgotI2luY2x1ZGUgIm1iZWR0bHMvZXJyb3IuaCIKLQotI2luY2x1ZGUgImJuX211bC5oIgotI2luY2x1ZGUgImVjcF9pbnZhc2l2ZS5oIgotCi0jaW5jbHVkZSA8c3RyaW5nLmg+Ci0KLSNpZiAhZGVmaW5lZChNQkVEVExTX0VDUF9BTFQpCi0KLSNpbmNsdWRlICJtYmVkdGxzL3BsYXRmb3JtLmgiCi0KLSNpbmNsdWRlICJlY3BfaW50ZXJuYWxfYWx0LmgiCi0KLSNpZiBkZWZpbmVkKE1CRURUTFNfU0VMRl9URVNUKQotLyoKLSAqIENvdW50cyBvZiBwb2ludCBhZGRpdGlvbiBhbmQgZG91YmxpbmcsIGFuZCBmaWVsZCBtdWx0aXBsaWNhdGlvbnMuCi0gKiBVc2VkIHRvIHRlc3QgcmVzaXN0YW5jZSBvZiBwb2ludCBtdWx0aXBsaWNhdGlvbiB0byBzaW1wbGUgdGltaW5nIGF0dGFja3MuCi0gKi8KLSNpZiBkZWZpbmVkKE1CRURUTFNfRUNQX0MpCi1zdGF0aWMgdW5zaWduZWQgbG9uZyBhZGRfY291bnQsIGRibF9jb3VudDsKLSNlbmRpZiAvKiBNQkVEVExTX0VDUF9DICovCi1zdGF0aWMgdW5zaWduZWQgbG9uZyBtdWxfY291bnQ7Ci0jZW5kaWYKLQotI2lmIGRlZmluZWQoTUJFRFRMU19FQ1BfUkVTVEFSVEFCTEUpCi0vKgotICogTWF4aW11bSBudW1iZXIgb2YgImJhc2ljIG9wZXJhdGlvbnMiIHRvIGJlIGRvbmUgaW4gYSByb3cuCi0gKgotICogRGVmYXVsdCB2YWx1ZSAwIG1lYW5zIHRoYXQgRUNDIG9wZXJhdGlvbnMgd2lsbCBub3QgeWllbGQuCi0gKiBOb3RlIHRoYXQgcmVnYXJkbGVzcyBvZiB0aGUgdmFsdWUgb2YgZWNwX21heF9vcHMsIGFsd2F5cyBhdAotICogbGVhc3Qgb25lIHN0ZXAgaXMgcGVyZm9ybWVkIGJlZm9yZSB5aWVsZGluZy4KLSAqCi0gKiBTZXR0aW5nIGVjcF9tYXhfb3BzPTEgY2FuIGJlIHN1aXRhYmxlIGZvciB0ZXN0aW5nIHB1cnBvc2VzCi0gKiBhcyBpdCB3aWxsIGludGVycnVwdCBjb21wdXRhdGlvbiBhdCBhbGwgcG9zc2libGUgcG9pbnRzLgotICovCi1zdGF0aWMgdW5zaWduZWQgZWNwX21heF9vcHMgPSAwOwotCi0vKgotICogU2V0IGVjcF9tYXhfb3BzCi0gKi8KLXZvaWQgbWJlZHRsc19lY3Bfc2V0X21heF9vcHModW5zaWduZWQgbWF4X29wcykKLXsKLSAgICBlY3BfbWF4X29wcyA9IG1heF9vcHM7Ci19Ci0KLS8qCi0gKiBDaGVjayBpZiByZXN0YXJ0IGlzIGVuYWJsZWQKLSAqLwotaW50IG1iZWR0bHNfZWNwX3Jlc3RhcnRfaXNfZW5hYmxlZCh2b2lkKQotewotICAgIHJldHVybiBlY3BfbWF4X29wcyAhPSAwOwotfQotCi0vKgotICogUmVzdGFydCBzdWItY29udGV4dCBmb3IgZWNwX211bF9jb21iKCkKLSAqLwotc3RydWN0IG1iZWR0bHNfZWNwX3Jlc3RhcnRfbXVsIHsKLSAgICBtYmVkdGxzX2VjcF9wb2ludCBSOyAgICAvKiBjdXJyZW50IGludGVybWVkaWF0ZSByZXN1bHQgICAgICAgICAgICAgICAgICAqLwotICAgIHNpemVfdCBpOyAgICAgICAgICAgICAgIC8qIGN1cnJlbnQgaW5kZXggaW4gdmFyaW91cyBsb29wcywgMCBvdXRzaWRlICAgICovCi0gICAgbWJlZHRsc19lY3BfcG9pbnQgKlQ7ICAgLyogdGFibGUgZm9yIHByZWNvbXB1dGVkIHBvaW50cyAgICAgICAgICAgICAgICAgKi8KLSAgICB1bnNpZ25lZCBjaGFyIFRfc2l6ZTsgICAvKiBudW1iZXIgb2YgcG9pbnRzIGluIHRhYmxlIFQgICAgICAgICAgICAgICAgICAqLwotICAgIGVudW0geyAgICAgICAgICAgICAgICAgIC8qIHdoYXQgd2VyZSB3ZSBkb2luZyBsYXN0IHRpbWUgd2UgcmV0dXJuZWQ/ICAgICovCi0gICAgICAgIGVjcF9yc21faW5pdCA9IDAsICAgICAgIC8qIG5vdGhpbmcgc28gZmFyLCBkdW1teSBpbml0aWFsIHN0YXRlICAgICAgKi8KLSAgICAgICAgZWNwX3JzbV9wcmVfZGJsLCAgICAgICAgLyogcHJlY29tcHV0ZSAyXm4gbXVsdGlwbGVzICAgICAgICAgICAgICAgICAqLwotICAgICAgICBlY3BfcnNtX3ByZV9ub3JtX2RibCwgICAvKiBub3JtYWxpemUgcHJlY29tcHV0ZWQgMl5uIG11bHRpcGxlcyAgICAgICovCi0gICAgICAgIGVjcF9yc21fcHJlX2FkZCwgICAgICAgIC8qIHByZWNvbXB1dGUgcmVtYWluaW5nIHBvaW50cyBieSBhZGRpbmcgICAgKi8KLSAgICAgICAgZWNwX3JzbV9wcmVfbm9ybV9hZGQsICAgLyogbm9ybWFsaXplIGFsbCBwcmVjb21wdXRlZCBwb2ludHMgICAgICAgICAqLwotICAgICAgICBlY3BfcnNtX2NvbWJfY29yZSwgICAgICAvKiBlY3BfbXVsX2NvbWJfY29yZSgpICAgICAgICAgICAgICAgICAgICAgICovCi0gICAgICAgIGVjcF9yc21fZmluYWxfbm9ybSwgICAgIC8qIGRvIHRoZSBmaW5hbCBub3JtYWxpemF0aW9uICAgICAgICAgICAgICAgKi8KLSAgICB9IHN0YXRlOwotfTsKLQotLyoKLSAqIEluaXQgcmVzdGFydF9tdWwgc3ViLWNvbnRleHQKLSAqLwotc3RhdGljIHZvaWQgZWNwX3Jlc3RhcnRfcnNtX2luaXQobWJlZHRsc19lY3BfcmVzdGFydF9tdWxfY3R4ICpjdHgpCi17Ci0gICAgbWJlZHRsc19lY3BfcG9pbnRfaW5pdCgmY3R4LT5SKTsKLSAgICBjdHgtPmkgPSAwOwotICAgIGN0eC0+VCA9IE5VTEw7Ci0gICAgY3R4LT5UX3NpemUgPSAwOwotICAgIGN0eC0+c3RhdGUgPSBlY3BfcnNtX2luaXQ7Ci19Ci0KLS8qCi0gKiBGcmVlIHRoZSBjb21wb25lbnRzIG9mIGEgcmVzdGFydF9tdWwgc3ViLWNvbnRleHQKLSAqLwotc3RhdGljIHZvaWQgZWNwX3Jlc3RhcnRfcnNtX2ZyZWUobWJlZHRsc19lY3BfcmVzdGFydF9tdWxfY3R4ICpjdHgpCi17Ci0gICAgdW5zaWduZWQgY2hhciBpOwotCi0gICAgaWYgKGN0eCA9PSBOVUxMKSB7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICBtYmVkdGxzX2VjcF9wb2ludF9mcmVlKCZjdHgtPlIpOwotCi0gICAgaWYgKGN0eC0+VCAhPSBOVUxMKSB7Ci0gICAgICAgIGZvciAoaSA9IDA7IGkgPCBjdHgtPlRfc2l6ZTsgaSsrKSB7Ci0gICAgICAgICAgICBtYmVkdGxzX2VjcF9wb2ludF9mcmVlKGN0eC0+VCArIGkpOwotICAgICAgICB9Ci0gICAgICAgIG1iZWR0bHNfZnJlZShjdHgtPlQpOwotICAgIH0KLQotICAgIGVjcF9yZXN0YXJ0X3JzbV9pbml0KGN0eCk7Ci19Ci0KLS8qCi0gKiBSZXN0YXJ0IGNvbnRleHQgZm9yIGVjcF9tdWxhZGQoKQotICovCi1zdHJ1Y3QgbWJlZHRsc19lY3BfcmVzdGFydF9tdWxhZGQgewotICAgIG1iZWR0bHNfZWNwX3BvaW50IG1QOyAgICAgICAvKiBtUCB2YWx1ZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KLSAgICBtYmVkdGxzX2VjcF9wb2ludCBSOyAgICAgICAgLyogUiBpbnRlcm1lZGlhdGUgcmVzdWx0ICAgICAgICAgICAgICAgICovCi0gICAgZW51bSB7ICAgICAgICAgICAgICAgICAgICAgIC8qIHdoYXQgc2hvdWxkIHdlIGRvIG5leHQ/ICAgICAgICAgICAgICAqLwotICAgICAgICBlY3BfcnNtYV9tdWwxID0gMCwgICAgICAvKiBmaXJzdCBtdWx0aXBsaWNhdGlvbiAgICAgICAgICAgICAgICAgKi8KLSAgICAgICAgZWNwX3JzbWFfbXVsMiwgICAgICAgICAgLyogc2Vjb25kIG11bHRpcGxpY2F0aW9uICAgICAgICAgICAgICAgICovCi0gICAgICAgIGVjcF9yc21hX2FkZCwgICAgICAgICAgIC8qIGFkZGl0aW9uICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLwotICAgICAgICBlY3BfcnNtYV9ub3JtLCAgICAgICAgICAvKiBub3JtYWxpemF0aW9uICAgICAgICAgICAgICAgICAgICAgICAgKi8KLSAgICB9IHN0YXRlOwotfTsKLQotLyoKLSAqIEluaXQgcmVzdGFydF9tdWxhZGQgc3ViLWNvbnRleHQKLSAqLwotc3RhdGljIHZvaWQgZWNwX3Jlc3RhcnRfbWFfaW5pdChtYmVkdGxzX2VjcF9yZXN0YXJ0X211bGFkZF9jdHggKmN0eCkKLXsKLSAgICBtYmVkdGxzX2VjcF9wb2ludF9pbml0KCZjdHgtPm1QKTsKLSAgICBtYmVkdGxzX2VjcF9wb2ludF9pbml0KCZjdHgtPlIpOwotICAgIGN0eC0+c3RhdGUgPSBlY3BfcnNtYV9tdWwxOwotfQotCi0vKgotICogRnJlZSB0aGUgY29tcG9uZW50cyBvZiBhIHJlc3RhcnRfbXVsYWRkIHN1Yi1jb250ZXh0Ci0gKi8KLXN0YXRpYyB2b2lkIGVjcF9yZXN0YXJ0X21hX2ZyZWUobWJlZHRsc19lY3BfcmVzdGFydF9tdWxhZGRfY3R4ICpjdHgpCi17Ci0gICAgaWYgKGN0eCA9PSBOVUxMKSB7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICBtYmVkdGxzX2VjcF9wb2ludF9mcmVlKCZjdHgtPm1QKTsKLSAgICBtYmVkdGxzX2VjcF9wb2ludF9mcmVlKCZjdHgtPlIpOwotCi0gICAgZWNwX3Jlc3RhcnRfbWFfaW5pdChjdHgpOwotfQotCi0vKgotICogSW5pdGlhbGl6ZSBhIHJlc3RhcnQgY29udGV4dAotICovCi12b2lkIG1iZWR0bHNfZWNwX3Jlc3RhcnRfaW5pdChtYmVkdGxzX2VjcF9yZXN0YXJ0X2N0eCAqY3R4KQotewotICAgIGN0eC0+b3BzX2RvbmUgPSAwOwotICAgIGN0eC0+ZGVwdGggPSAwOwotICAgIGN0eC0+cnNtID0gTlVMTDsKLSAgICBjdHgtPm1hID0gTlVMTDsKLX0KLQotLyoKLSAqIEZyZWUgdGhlIGNvbXBvbmVudHMgb2YgYSByZXN0YXJ0IGNvbnRleHQKLSAqLwotdm9pZCBtYmVkdGxzX2VjcF9yZXN0YXJ0X2ZyZWUobWJlZHRsc19lY3BfcmVzdGFydF9jdHggKmN0eCkKLXsKLSAgICBpZiAoY3R4ID09IE5VTEwpIHsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLQotICAgIGVjcF9yZXN0YXJ0X3JzbV9mcmVlKGN0eC0+cnNtKTsKLSAgICBtYmVkdGxzX2ZyZWUoY3R4LT5yc20pOwotCi0gICAgZWNwX3Jlc3RhcnRfbWFfZnJlZShjdHgtPm1hKTsKLSAgICBtYmVkdGxzX2ZyZWUoY3R4LT5tYSk7Ci0KLSAgICBtYmVkdGxzX2VjcF9yZXN0YXJ0X2luaXQoY3R4KTsKLX0KLQotLyoKLSAqIENoZWNrIGlmIHdlIGNhbiBkbyB0aGUgbmV4dCBzdGVwCi0gKi8KLWludCBtYmVkdGxzX2VjcF9jaGVja19idWRnZXQoY29uc3QgbWJlZHRsc19lY3BfZ3JvdXAgKmdycCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWJlZHRsc19lY3BfcmVzdGFydF9jdHggKnJzX2N0eCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgb3BzKQotewotICAgIGlmIChyc19jdHggIT0gTlVMTCAmJiBlY3BfbWF4X29wcyAhPSAwKSB7Ci0gICAgICAgIC8qIHNjYWxlIGRlcGVuZGluZyBvbiBjdXJ2ZSBzaXplOiB0aGUgY2hvc2VuIHJlZmVyZW5jZSBpcyAyNTYtYml0LAotICAgICAgICAgKiBhbmQgbXVsdGlwbGljYXRpb24gaXMgcXVhZHJhdGljLiBSb3VuZCB0byB0aGUgY2xvc2VzdCBpbnRlZ2VyLiAqLwotICAgICAgICBpZiAoZ3JwLT5wYml0cyA+PSA1MTIpIHsKLSAgICAgICAgICAgIG9wcyAqPSA0OwotICAgICAgICB9IGVsc2UgaWYgKGdycC0+cGJpdHMgPj0gMzg0KSB7Ci0gICAgICAgICAgICBvcHMgKj0gMjsKLSAgICAgICAgfQotCi0gICAgICAgIC8qIEF2b2lkIGluZmluaXRlIGxvb3BzOiBhbHdheXMgYWxsb3cgZmlyc3Qgc3RlcC4KLSAgICAgICAgICogQmVjYXVzZSBvZiB0aGF0LCBob3dldmVyLCBpdCdzIG5vdCBnZW5lcmFsbHkgdHJ1ZQotICAgICAgICAgKiB0aGF0IG9wc19kb25lIDw9IGVjcF9tYXhfb3BzLCBzbyB0aGUgY2hlY2sKLSAgICAgICAgICogb3BzX2RvbmUgPiBlY3BfbWF4X29wcyBiZWxvdyBpcyBtYW5kYXRvcnkuICovCi0gICAgICAgIGlmICgocnNfY3R4LT5vcHNfZG9uZSAhPSAwKSAmJgotICAgICAgICAgICAgKHJzX2N0eC0+b3BzX2RvbmUgPiBlY3BfbWF4X29wcyB8fAotICAgICAgICAgICAgIG9wcyA+IGVjcF9tYXhfb3BzIC0gcnNfY3R4LT5vcHNfZG9uZSkpIHsKLSAgICAgICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9FQ1BfSU5fUFJPR1JFU1M7Ci0gICAgICAgIH0KLQotICAgICAgICAvKiB1cGRhdGUgcnVubmluZyBjb3VudCAqLwotICAgICAgICByc19jdHgtPm9wc19kb25lICs9IG9wczsKLSAgICB9Ci0KLSAgICByZXR1cm4gMDsKLX0KLQotLyogQ2FsbCB0aGlzIHdoZW4gZW50ZXJpbmcgYSBmdW5jdGlvbiB0aGF0IG5lZWRzIGl0cyBvd24gc3ViLWNvbnRleHQgKi8KLSNkZWZpbmUgRUNQX1JTX0VOVEVSKFNVQikgICBkbyB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgICAgIC8qIHJlc2V0IG9wcyBjb3VudCBmb3IgdGhpcyBjYWxsIGlmIHRvcC1sZXZlbCAqLyAgICAgICAgICAgICAgICAgICAgXAotICAgICAgICBpZiAocnNfY3R4ICE9IE5VTEwgJiYgcnNfY3R4LT5kZXB0aCsrID09IDApICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgICAgICByc19jdHgtPm9wc19kb25lID0gMDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgICAgICAvKiBzZXQgdXAgb3VyIG93biBzdWItY29udGV4dCBpZiBuZWVkZWQgKi8gICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICAgICAgaWYgKG1iZWR0bHNfZWNwX3Jlc3RhcnRfaXNfZW5hYmxlZCgpICYmICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgICAgICAgICByc19jdHggIT0gTlVMTCAmJiByc19jdHgtPlNVQiA9PSBOVUxMKSAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgICAgIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgICAgICAgICAgcnNfY3R4LT5TVUIgPSBtYmVkdGxzX2NhbGxvYygxLCBzaXplb2YoKnJzX2N0eC0+U1VCKSk7ICAgICAgXAotICAgICAgICAgICAgaWYgKHJzX2N0eC0+U1VCID09IE5VTEwpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgICAgICAgICAgcmV0dXJuIE1CRURUTFNfRVJSX0VDUF9BTExPQ19GQUlMRUQ7ICAgICAgICAgICAgICAgICAgICAgXAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICAgICAgICAgIGVjcF9yZXN0YXJ0XyMjIFNVQiAjI19pbml0KHJzX2N0eC0+U1VCKTsgICAgICAgICAgICAgICAgICAgICAgXAotICAgICAgICB9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLX0gd2hpbGUgKDApCi0KLS8qIENhbGwgdGhpcyB3aGVuIGxlYXZpbmcgYSBmdW5jdGlvbiB0aGF0IG5lZWRzIGl0cyBvd24gc3ViLWNvbnRleHQgKi8KLSNkZWZpbmUgRUNQX1JTX0xFQVZFKFNVQikgICBkbyB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgICAgIC8qIGNsZWFyIG91ciBzdWItY29udGV4dCB3aGVuIG5vdCBpbiBwcm9ncmVzcyAoZG9uZSBvciBlcnJvcikgKi8gICAgXAotICAgICAgICBpZiAocnNfY3R4ICE9IE5VTEwgJiYgcnNfY3R4LT5TVUIgIT0gTlVMTCAmJiAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICAgICAgICAgIHJldCAhPSBNQkVEVExTX0VSUl9FQ1BfSU5fUFJPR1JFU1MpICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICAgICAgeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgICAgICAgICBlY3BfcmVzdGFydF8jIyBTVUIgIyNfZnJlZShyc19jdHgtPlNVQik7ICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICAgICAgICAgIG1iZWR0bHNfZnJlZShyc19jdHgtPlNVQik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgICAgICAgICAgcnNfY3R4LT5TVUIgPSBOVUxMOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICAgICAgfSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgICAgIGlmIChyc19jdHggIT0gTlVMTCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgICAgIHJzX2N0eC0+ZGVwdGgtLTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi19IHdoaWxlICgwKQotCi0jZWxzZSAvKiBNQkVEVExTX0VDUF9SRVNUQVJUQUJMRSAqLwotCi0jZGVmaW5lIEVDUF9SU19FTlRFUihzdWIpICAgICAodm9pZCkgcnNfY3R4OwotI2RlZmluZSBFQ1BfUlNfTEVBVkUoc3ViKSAgICAgKHZvaWQpIHJzX2N0eDsKLQotI2VuZGlmIC8qIE1CRURUTFNfRUNQX1JFU1RBUlRBQkxFICovCi0KLSNpZiBkZWZpbmVkKE1CRURUTFNfRUNQX0MpCi1zdGF0aWMgdm9pZCBtcGlfaW5pdF9tYW55KG1iZWR0bHNfbXBpICphcnIsIHNpemVfdCBzaXplKQotewotICAgIHdoaWxlIChzaXplLS0pIHsKLSAgICAgICAgbWJlZHRsc19tcGlfaW5pdChhcnIrKyk7Ci0gICAgfQotfQotCi1zdGF0aWMgdm9pZCBtcGlfZnJlZV9tYW55KG1iZWR0bHNfbXBpICphcnIsIHNpemVfdCBzaXplKQotewotICAgIHdoaWxlIChzaXplLS0pIHsKLSAgICAgICAgbWJlZHRsc19tcGlfZnJlZShhcnIrKyk7Ci0gICAgfQotfQotI2VuZGlmIC8qIE1CRURUTFNfRUNQX0MgKi8KLQotLyoKLSAqIExpc3Qgb2Ygc3VwcG9ydGVkIGN1cnZlczoKLSAqICAtIGludGVybmFsIElECi0gKiAgLSBUTFMgTmFtZWRDdXJ2ZSBJRCAoUkZDIDQ0OTIgc2VjLiA1LjEuMSwgUkZDIDcwNzEgc2VjLiAyLCBSRkMgODQ0NiBzZWMuIDQuMi43KQotICogIC0gc2l6ZSBpbiBiaXRzCi0gKiAgLSByZWFkYWJsZSBuYW1lCi0gKgotICogQ3VydmVzIGFyZSBsaXN0ZWQgaW4gb3JkZXI6IGxhcmdlc3QgY3VydmVzIGZpcnN0LCBhbmQgZm9yIGEgZ2l2ZW4gc2l6ZSwKLSAqIGZhc3Rlc3QgY3VydmVzIGZpcnN0LgotICoKLSAqIFJlbWluZGVyOiB1cGRhdGUgcHJvZmlsZXMgaW4geDUwOV9jcnQuYyBhbmQgc3NsX3Rscy5jIHdoZW4gYWRkaW5nIGEgbmV3IGN1cnZlIQotICovCi1zdGF0aWMgY29uc3QgbWJlZHRsc19lY3BfY3VydmVfaW5mbyBlY3Bfc3VwcG9ydGVkX2N1cnZlc1tdID0KLXsKLSNpZiBkZWZpbmVkKE1CRURUTFNfRUNQX0RQX1NFQ1A1MjFSMV9FTkFCTEVEKQotICAgIHsgTUJFRFRMU19FQ1BfRFBfU0VDUDUyMVIxLCAgICAyNSwgICAgIDUyMSwgICAgInNlY3A1MjFyMSIgICAgICAgICB9LAotI2VuZGlmCi0jaWYgZGVmaW5lZChNQkVEVExTX0VDUF9EUF9CUDUxMlIxX0VOQUJMRUQpCi0gICAgeyBNQkVEVExTX0VDUF9EUF9CUDUxMlIxLCAgICAgIDI4LCAgICAgNTEyLCAgICAiYnJhaW5wb29sUDUxMnIxIiAgIH0sCi0jZW5kaWYKLSNpZiBkZWZpbmVkKE1CRURUTFNfRUNQX0RQX1NFQ1AzODRSMV9FTkFCTEVEKQotICAgIHsgTUJFRFRMU19FQ1BfRFBfU0VDUDM4NFIxLCAgICAyNCwgICAgIDM4NCwgICAgInNlY3AzODRyMSIgICAgICAgICB9LAotI2VuZGlmCi0jaWYgZGVmaW5lZChNQkVEVExTX0VDUF9EUF9CUDM4NFIxX0VOQUJMRUQpCi0gICAgeyBNQkVEVExTX0VDUF9EUF9CUDM4NFIxLCAgICAgIDI3LCAgICAgMzg0LCAgICAiYnJhaW5wb29sUDM4NHIxIiAgIH0sCi0jZW5kaWYKLSNpZiBkZWZpbmVkKE1CRURUTFNfRUNQX0RQX1NFQ1AyNTZSMV9FTkFCTEVEKQotICAgIHsgTUJFRFRMU19FQ1BfRFBfU0VDUDI1NlIxLCAgICAyMywgICAgIDI1NiwgICAgInNlY3AyNTZyMSIgICAgICAgICB9LAotI2VuZGlmCi0jaWYgZGVmaW5lZChNQkVEVExTX0VDUF9EUF9TRUNQMjU2SzFfRU5BQkxFRCkKLSAgICB7IE1CRURUTFNfRUNQX0RQX1NFQ1AyNTZLMSwgICAgMjIsICAgICAyNTYsICAgICJzZWNwMjU2azEiICAgICAgICAgfSwKLSNlbmRpZgotI2lmIGRlZmluZWQoTUJFRFRMU19FQ1BfRFBfQlAyNTZSMV9FTkFCTEVEKQotICAgIHsgTUJFRFRMU19FQ1BfRFBfQlAyNTZSMSwgICAgICAyNiwgICAgIDI1NiwgICAgImJyYWlucG9vbFAyNTZyMSIgICB9LAotI2VuZGlmCi0jaWYgZGVmaW5lZChNQkVEVExTX0VDUF9EUF9TRUNQMjI0UjFfRU5BQkxFRCkKLSAgICB7IE1CRURUTFNfRUNQX0RQX1NFQ1AyMjRSMSwgICAgMjEsICAgICAyMjQsICAgICJzZWNwMjI0cjEiICAgICAgICAgfSwKLSNlbmRpZgotI2lmIGRlZmluZWQoTUJFRFRMU19FQ1BfRFBfU0VDUDIyNEsxX0VOQUJMRUQpCi0gICAgeyBNQkVEVExTX0VDUF9EUF9TRUNQMjI0SzEsICAgIDIwLCAgICAgMjI0LCAgICAic2VjcDIyNGsxIiAgICAgICAgIH0sCi0jZW5kaWYKLSNpZiBkZWZpbmVkKE1CRURUTFNfRUNQX0RQX1NFQ1AxOTJSMV9FTkFCTEVEKQotICAgIHsgTUJFRFRMU19FQ1BfRFBfU0VDUDE5MlIxLCAgICAxOSwgICAgIDE5MiwgICAgInNlY3AxOTJyMSIgICAgICAgICB9LAotI2VuZGlmCi0jaWYgZGVmaW5lZChNQkVEVExTX0VDUF9EUF9TRUNQMTkySzFfRU5BQkxFRCkKLSAgICB7IE1CRURUTFNfRUNQX0RQX1NFQ1AxOTJLMSwgICAgMTgsICAgICAxOTIsICAgICJzZWNwMTkyazEiICAgICAgICAgfSwKLSNlbmRpZgotI2lmIGRlZmluZWQoTUJFRFRMU19FQ1BfRFBfQ1VSVkUyNTUxOV9FTkFCTEVEKQotICAgIHsgTUJFRFRMU19FQ1BfRFBfQ1VSVkUyNTUxOSwgICAyOSwgICAgIDI1NiwgICAgIngyNTUxOSIgICAgICAgICAgICB9LAotI2VuZGlmCi0jaWYgZGVmaW5lZChNQkVEVExTX0VDUF9EUF9DVVJWRTQ0OF9FTkFCTEVEKQotICAgIHsgTUJFRFRMU19FQ1BfRFBfQ1VSVkU0NDgsICAgICAzMCwgICAgIDQ0OCwgICAgIng0NDgiICAgICAgICAgICAgICB9LAotI2VuZGlmCi0gICAgeyBNQkVEVExTX0VDUF9EUF9OT05FLCAgICAgICAgICAwLCAgICAgMCwgICAgICBOVUxMICAgICAgICAgICAgICAgIH0sCi19OwotCi0jZGVmaW5lIEVDUF9OQl9DVVJWRVMgICBzaXplb2YoZWNwX3N1cHBvcnRlZF9jdXJ2ZXMpIC8gICAgXAotICAgIHNpemVvZihlY3Bfc3VwcG9ydGVkX2N1cnZlc1swXSkKLQotc3RhdGljIG1iZWR0bHNfZWNwX2dyb3VwX2lkIGVjcF9zdXBwb3J0ZWRfZ3JwX2lkW0VDUF9OQl9DVVJWRVNdOwotCi0vKgotICogTGlzdCBvZiBzdXBwb3J0ZWQgY3VydmVzIGFuZCBhc3NvY2lhdGVkIGluZm8KLSAqLwotY29uc3QgbWJlZHRsc19lY3BfY3VydmVfaW5mbyAqbWJlZHRsc19lY3BfY3VydmVfbGlzdCh2b2lkKQotewotICAgIHJldHVybiBlY3Bfc3VwcG9ydGVkX2N1cnZlczsKLX0KLQotLyoKLSAqIExpc3Qgb2Ygc3VwcG9ydGVkIGN1cnZlcywgZ3JvdXAgSUQgb25seQotICovCi1jb25zdCBtYmVkdGxzX2VjcF9ncm91cF9pZCAqbWJlZHRsc19lY3BfZ3JwX2lkX2xpc3Qodm9pZCkKLXsKLSAgICBzdGF0aWMgaW50IGluaXRfZG9uZSA9IDA7Ci0KLSAgICBpZiAoIWluaXRfZG9uZSkgewotICAgICAgICBzaXplX3QgaSA9IDA7Ci0gICAgICAgIGNvbnN0IG1iZWR0bHNfZWNwX2N1cnZlX2luZm8gKmN1cnZlX2luZm87Ci0KLSAgICAgICAgZm9yIChjdXJ2ZV9pbmZvID0gbWJlZHRsc19lY3BfY3VydmVfbGlzdCgpOwotICAgICAgICAgICAgIGN1cnZlX2luZm8tPmdycF9pZCAhPSBNQkVEVExTX0VDUF9EUF9OT05FOwotICAgICAgICAgICAgIGN1cnZlX2luZm8rKykgewotICAgICAgICAgICAgZWNwX3N1cHBvcnRlZF9ncnBfaWRbaSsrXSA9IGN1cnZlX2luZm8tPmdycF9pZDsKLSAgICAgICAgfQotICAgICAgICBlY3Bfc3VwcG9ydGVkX2dycF9pZFtpXSA9IE1CRURUTFNfRUNQX0RQX05PTkU7Ci0KLSAgICAgICAgaW5pdF9kb25lID0gMTsKLSAgICB9Ci0KLSAgICByZXR1cm4gZWNwX3N1cHBvcnRlZF9ncnBfaWQ7Ci19Ci0KLS8qCi0gKiBHZXQgdGhlIGN1cnZlIGluZm8gZm9yIHRoZSBpbnRlcm5hbCBpZGVudGlmaWVyCi0gKi8KLWNvbnN0IG1iZWR0bHNfZWNwX2N1cnZlX2luZm8gKm1iZWR0bHNfZWNwX2N1cnZlX2luZm9fZnJvbV9ncnBfaWQobWJlZHRsc19lY3BfZ3JvdXBfaWQgZ3JwX2lkKQotewotICAgIGNvbnN0IG1iZWR0bHNfZWNwX2N1cnZlX2luZm8gKmN1cnZlX2luZm87Ci0KLSAgICBmb3IgKGN1cnZlX2luZm8gPSBtYmVkdGxzX2VjcF9jdXJ2ZV9saXN0KCk7Ci0gICAgICAgICBjdXJ2ZV9pbmZvLT5ncnBfaWQgIT0gTUJFRFRMU19FQ1BfRFBfTk9ORTsKLSAgICAgICAgIGN1cnZlX2luZm8rKykgewotICAgICAgICBpZiAoY3VydmVfaW5mby0+Z3JwX2lkID09IGdycF9pZCkgewotICAgICAgICAgICAgcmV0dXJuIGN1cnZlX2luZm87Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICByZXR1cm4gTlVMTDsKLX0KLQotLyoKLSAqIEdldCB0aGUgY3VydmUgaW5mbyBmcm9tIHRoZSBUTFMgaWRlbnRpZmllcgotICovCi1jb25zdCBtYmVkdGxzX2VjcF9jdXJ2ZV9pbmZvICptYmVkdGxzX2VjcF9jdXJ2ZV9pbmZvX2Zyb21fdGxzX2lkKHVpbnQxNl90IHRsc19pZCkKLXsKLSAgICBjb25zdCBtYmVkdGxzX2VjcF9jdXJ2ZV9pbmZvICpjdXJ2ZV9pbmZvOwotCi0gICAgZm9yIChjdXJ2ZV9pbmZvID0gbWJlZHRsc19lY3BfY3VydmVfbGlzdCgpOwotICAgICAgICAgY3VydmVfaW5mby0+Z3JwX2lkICE9IE1CRURUTFNfRUNQX0RQX05PTkU7Ci0gICAgICAgICBjdXJ2ZV9pbmZvKyspIHsKLSAgICAgICAgaWYgKGN1cnZlX2luZm8tPnRsc19pZCA9PSB0bHNfaWQpIHsKLSAgICAgICAgICAgIHJldHVybiBjdXJ2ZV9pbmZvOwotICAgICAgICB9Ci0gICAgfQotCi0gICAgcmV0dXJuIE5VTEw7Ci19Ci0KLS8qCi0gKiBHZXQgdGhlIGN1cnZlIGluZm8gZnJvbSB0aGUgbmFtZQotICovCi1jb25zdCBtYmVkdGxzX2VjcF9jdXJ2ZV9pbmZvICptYmVkdGxzX2VjcF9jdXJ2ZV9pbmZvX2Zyb21fbmFtZShjb25zdCBjaGFyICpuYW1lKQotewotICAgIGNvbnN0IG1iZWR0bHNfZWNwX2N1cnZlX2luZm8gKmN1cnZlX2luZm87Ci0KLSAgICBpZiAobmFtZSA9PSBOVUxMKSB7Ci0gICAgICAgIHJldHVybiBOVUxMOwotICAgIH0KLQotICAgIGZvciAoY3VydmVfaW5mbyA9IG1iZWR0bHNfZWNwX2N1cnZlX2xpc3QoKTsKLSAgICAgICAgIGN1cnZlX2luZm8tPmdycF9pZCAhPSBNQkVEVExTX0VDUF9EUF9OT05FOwotICAgICAgICAgY3VydmVfaW5mbysrKSB7Ci0gICAgICAgIGlmIChzdHJjbXAoY3VydmVfaW5mby0+bmFtZSwgbmFtZSkgPT0gMCkgewotICAgICAgICAgICAgcmV0dXJuIGN1cnZlX2luZm87Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICByZXR1cm4gTlVMTDsKLX0KLQotLyoKLSAqIEdldCB0aGUgdHlwZSBvZiBhIGN1cnZlCi0gKi8KLW1iZWR0bHNfZWNwX2N1cnZlX3R5cGUgbWJlZHRsc19lY3BfZ2V0X3R5cGUoY29uc3QgbWJlZHRsc19lY3BfZ3JvdXAgKmdycCkKLXsKLSAgICBpZiAoZ3JwLT5HLlgucCA9PSBOVUxMKSB7Ci0gICAgICAgIHJldHVybiBNQkVEVExTX0VDUF9UWVBFX05PTkU7Ci0gICAgfQotCi0gICAgaWYgKGdycC0+Ry5ZLnAgPT0gTlVMTCkgewotICAgICAgICByZXR1cm4gTUJFRFRMU19FQ1BfVFlQRV9NT05UR09NRVJZOwotICAgIH0gZWxzZSB7Ci0gICAgICAgIHJldHVybiBNQkVEVExTX0VDUF9UWVBFX1NIT1JUX1dFSUVSU1RSQVNTOwotICAgIH0KLX0KLQotLyoKLSAqIEluaXRpYWxpemUgKHRoZSBjb21wb25lbnRzIG9mKSBhIHBvaW50Ci0gKi8KLXZvaWQgbWJlZHRsc19lY3BfcG9pbnRfaW5pdChtYmVkdGxzX2VjcF9wb2ludCAqcHQpCi17Ci0gICAgbWJlZHRsc19tcGlfaW5pdCgmcHQtPlgpOwotICAgIG1iZWR0bHNfbXBpX2luaXQoJnB0LT5ZKTsKLSAgICBtYmVkdGxzX21waV9pbml0KCZwdC0+Wik7Ci19Ci0KLS8qCi0gKiBJbml0aWFsaXplICh0aGUgY29tcG9uZW50cyBvZikgYSBncm91cAotICovCi12b2lkIG1iZWR0bHNfZWNwX2dyb3VwX2luaXQobWJlZHRsc19lY3BfZ3JvdXAgKmdycCkKLXsKLSAgICBncnAtPmlkID0gTUJFRFRMU19FQ1BfRFBfTk9ORTsKLSAgICBtYmVkdGxzX21waV9pbml0KCZncnAtPlApOwotICAgIG1iZWR0bHNfbXBpX2luaXQoJmdycC0+QSk7Ci0gICAgbWJlZHRsc19tcGlfaW5pdCgmZ3JwLT5CKTsKLSAgICBtYmVkdGxzX2VjcF9wb2ludF9pbml0KCZncnAtPkcpOwotICAgIG1iZWR0bHNfbXBpX2luaXQoJmdycC0+Tik7Ci0gICAgZ3JwLT5wYml0cyA9IDA7Ci0gICAgZ3JwLT5uYml0cyA9IDA7Ci0gICAgZ3JwLT5oID0gMDsKLSAgICBncnAtPm1vZHAgPSBOVUxMOwotICAgIGdycC0+dF9wcmUgPSBOVUxMOwotICAgIGdycC0+dF9wb3N0ID0gTlVMTDsKLSAgICBncnAtPnRfZGF0YSA9IE5VTEw7Ci0gICAgZ3JwLT5UID0gTlVMTDsKLSAgICBncnAtPlRfc2l6ZSA9IDA7Ci19Ci0KLS8qCi0gKiBJbml0aWFsaXplICh0aGUgY29tcG9uZW50cyBvZikgYSBrZXkgcGFpcgotICovCi12b2lkIG1iZWR0bHNfZWNwX2tleXBhaXJfaW5pdChtYmVkdGxzX2VjcF9rZXlwYWlyICprZXkpCi17Ci0gICAgbWJlZHRsc19lY3BfZ3JvdXBfaW5pdCgma2V5LT5ncnApOwotICAgIG1iZWR0bHNfbXBpX2luaXQoJmtleS0+ZCk7Ci0gICAgbWJlZHRsc19lY3BfcG9pbnRfaW5pdCgma2V5LT5RKTsKLX0KLQotLyoKLSAqIFVuYWxsb2NhdGUgKHRoZSBjb21wb25lbnRzIG9mKSBhIHBvaW50Ci0gKi8KLXZvaWQgbWJlZHRsc19lY3BfcG9pbnRfZnJlZShtYmVkdGxzX2VjcF9wb2ludCAqcHQpCi17Ci0gICAgaWYgKHB0ID09IE5VTEwpIHsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLQotICAgIG1iZWR0bHNfbXBpX2ZyZWUoJihwdC0+WCkpOwotICAgIG1iZWR0bHNfbXBpX2ZyZWUoJihwdC0+WSkpOwotICAgIG1iZWR0bHNfbXBpX2ZyZWUoJihwdC0+WikpOwotfQotCi0vKgotICogQ2hlY2sgdGhhdCB0aGUgY29tYiB0YWJsZSAoZ3JwLT5UKSBpcyBzdGF0aWMgaW5pdGlhbGl6ZWQuCi0gKi8KLXN0YXRpYyBpbnQgZWNwX2dyb3VwX2lzX3N0YXRpY19jb21iX3RhYmxlKGNvbnN0IG1iZWR0bHNfZWNwX2dyb3VwICpncnApCi17Ci0jaWYgTUJFRFRMU19FQ1BfRklYRURfUE9JTlRfT1BUSU0gPT0gMQotICAgIHJldHVybiBncnAtPlQgIT0gTlVMTCAmJiBncnAtPlRfc2l6ZSA9PSAwOwotI2Vsc2UKLSAgICAodm9pZCkgZ3JwOwotICAgIHJldHVybiAwOwotI2VuZGlmCi19Ci0KLS8qCi0gKiBVbmFsbG9jYXRlICh0aGUgY29tcG9uZW50cyBvZikgYSBncm91cAotICovCi12b2lkIG1iZWR0bHNfZWNwX2dyb3VwX2ZyZWUobWJlZHRsc19lY3BfZ3JvdXAgKmdycCkKLXsKLSAgICBzaXplX3QgaTsKLQotICAgIGlmIChncnAgPT0gTlVMTCkgewotICAgICAgICByZXR1cm47Ci0gICAgfQotCi0gICAgaWYgKGdycC0+aCAhPSAxKSB7Ci0gICAgICAgIG1iZWR0bHNfbXBpX2ZyZWUoJmdycC0+QSk7Ci0gICAgICAgIG1iZWR0bHNfbXBpX2ZyZWUoJmdycC0+Qik7Ci0gICAgICAgIG1iZWR0bHNfZWNwX3BvaW50X2ZyZWUoJmdycC0+Ryk7Ci0KLSNpZiAhZGVmaW5lZChNQkVEVExTX0VDUF9XSVRIX01QSV9VSU5UKQotICAgICAgICBtYmVkdGxzX21waV9mcmVlKCZncnAtPk4pOwotICAgICAgICBtYmVkdGxzX21waV9mcmVlKCZncnAtPlApOwotI2VuZGlmCi0gICAgfQotCi0gICAgaWYgKCFlY3BfZ3JvdXBfaXNfc3RhdGljX2NvbWJfdGFibGUoZ3JwKSAmJiBncnAtPlQgIT0gTlVMTCkgewotICAgICAgICBmb3IgKGkgPSAwOyBpIDwgZ3JwLT5UX3NpemU7IGkrKykgewotICAgICAgICAgICAgbWJlZHRsc19lY3BfcG9pbnRfZnJlZSgmZ3JwLT5UW2ldKTsKLSAgICAgICAgfQotICAgICAgICBtYmVkdGxzX2ZyZWUoZ3JwLT5UKTsKLSAgICB9Ci0KLSAgICBtYmVkdGxzX3BsYXRmb3JtX3plcm9pemUoZ3JwLCBzaXplb2YobWJlZHRsc19lY3BfZ3JvdXApKTsKLX0KLQotLyoKLSAqIFVuYWxsb2NhdGUgKHRoZSBjb21wb25lbnRzIG9mKSBhIGtleSBwYWlyCi0gKi8KLXZvaWQgbWJlZHRsc19lY3Bfa2V5cGFpcl9mcmVlKG1iZWR0bHNfZWNwX2tleXBhaXIgKmtleSkKLXsKLSAgICBpZiAoa2V5ID09IE5VTEwpIHsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLQotICAgIG1iZWR0bHNfZWNwX2dyb3VwX2ZyZWUoJmtleS0+Z3JwKTsKLSAgICBtYmVkdGxzX21waV9mcmVlKCZrZXktPmQpOwotICAgIG1iZWR0bHNfZWNwX3BvaW50X2ZyZWUoJmtleS0+USk7Ci19Ci0KLS8qCi0gKiBDb3B5IHRoZSBjb250ZW50cyBvZiBhIHBvaW50Ci0gKi8KLWludCBtYmVkdGxzX2VjcF9jb3B5KG1iZWR0bHNfZWNwX3BvaW50ICpQLCBjb25zdCBtYmVkdGxzX2VjcF9wb2ludCAqUSkKLXsKLSAgICBpbnQgcmV0ID0gTUJFRFRMU19FUlJfRVJST1JfQ09SUlVQVElPTl9ERVRFQ1RFRDsKLSAgICBNQkVEVExTX01QSV9DSEsobWJlZHRsc19tcGlfY29weSgmUC0+WCwgJlEtPlgpKTsKLSAgICBNQkVEVExTX01QSV9DSEsobWJlZHRsc19tcGlfY29weSgmUC0+WSwgJlEtPlkpKTsKLSAgICBNQkVEVExTX01QSV9DSEsobWJlZHRsc19tcGlfY29weSgmUC0+WiwgJlEtPlopKTsKLQotY2xlYW51cDoKLSAgICByZXR1cm4gcmV0OwotfQotCi0vKgotICogQ29weSB0aGUgY29udGVudHMgb2YgYSBncm91cCBvYmplY3QKLSAqLwotaW50IG1iZWR0bHNfZWNwX2dyb3VwX2NvcHkobWJlZHRsc19lY3BfZ3JvdXAgKmRzdCwgY29uc3QgbWJlZHRsc19lY3BfZ3JvdXAgKnNyYykKLXsKLSAgICByZXR1cm4gbWJlZHRsc19lY3BfZ3JvdXBfbG9hZChkc3QsIHNyYy0+aWQpOwotfQotCi0vKgotICogU2V0IHBvaW50IHRvIHplcm8KLSAqLwotaW50IG1iZWR0bHNfZWNwX3NldF96ZXJvKG1iZWR0bHNfZWNwX3BvaW50ICpwdCkKLXsKLSAgICBpbnQgcmV0ID0gTUJFRFRMU19FUlJfRVJST1JfQ09SUlVQVElPTl9ERVRFQ1RFRDsKLSAgICBNQkVEVExTX01QSV9DSEsobWJlZHRsc19tcGlfbHNldCgmcHQtPlgsIDEpKTsKLSAgICBNQkVEVExTX01QSV9DSEsobWJlZHRsc19tcGlfbHNldCgmcHQtPlksIDEpKTsKLSAgICBNQkVEVExTX01QSV9DSEsobWJlZHRsc19tcGlfbHNldCgmcHQtPlosIDApKTsKLQotY2xlYW51cDoKLSAgICByZXR1cm4gcmV0OwotfQotCi0vKgotICogVGVsbCBpZiBhIHBvaW50IGlzIHplcm8KLSAqLwotaW50IG1iZWR0bHNfZWNwX2lzX3plcm8obWJlZHRsc19lY3BfcG9pbnQgKnB0KQotewotICAgIHJldHVybiBtYmVkdGxzX21waV9jbXBfaW50KCZwdC0+WiwgMCkgPT0gMDsKLX0KLQotLyoKLSAqIENvbXBhcmUgdHdvIHBvaW50cyBsYXppbHkKLSAqLwotaW50IG1iZWR0bHNfZWNwX3BvaW50X2NtcChjb25zdCBtYmVkdGxzX2VjcF9wb2ludCAqUCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbWJlZHRsc19lY3BfcG9pbnQgKlEpCi17Ci0gICAgaWYgKG1iZWR0bHNfbXBpX2NtcF9tcGkoJlAtPlgsICZRLT5YKSA9PSAwICYmCi0gICAgICAgIG1iZWR0bHNfbXBpX2NtcF9tcGkoJlAtPlksICZRLT5ZKSA9PSAwICYmCi0gICAgICAgIG1iZWR0bHNfbXBpX2NtcF9tcGkoJlAtPlosICZRLT5aKSA9PSAwKSB7Ci0gICAgICAgIHJldHVybiAwOwotICAgIH0KLQotICAgIHJldHVybiBNQkVEVExTX0VSUl9FQ1BfQkFEX0lOUFVUX0RBVEE7Ci19Ci0KLS8qCi0gKiBJbXBvcnQgYSBub24temVybyBwb2ludCBmcm9tIEFTQ0lJIHN0cmluZ3MKLSAqLwotaW50IG1iZWR0bHNfZWNwX3BvaW50X3JlYWRfc3RyaW5nKG1iZWR0bHNfZWNwX3BvaW50ICpQLCBpbnQgcmFkaXgsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqeCwgY29uc3QgY2hhciAqeSkKLXsKLSAgICBpbnQgcmV0ID0gTUJFRFRMU19FUlJfRVJST1JfQ09SUlVQVElPTl9ERVRFQ1RFRDsKLSAgICBNQkVEVExTX01QSV9DSEsobWJlZHRsc19tcGlfcmVhZF9zdHJpbmcoJlAtPlgsIHJhZGl4LCB4KSk7Ci0gICAgTUJFRFRMU19NUElfQ0hLKG1iZWR0bHNfbXBpX3JlYWRfc3RyaW5nKCZQLT5ZLCByYWRpeCwgeSkpOwotICAgIE1CRURUTFNfTVBJX0NISyhtYmVkdGxzX21waV9sc2V0KCZQLT5aLCAxKSk7Ci0KLWNsZWFudXA6Ci0gICAgcmV0dXJuIHJldDsKLX0KLQotLyoKLSAqIEV4cG9ydCBhIHBvaW50IGludG8gdW5zaWduZWQgYmluYXJ5IGRhdGEgKFNFQzEgMi4zLjMgYW5kIFJGQzc3NDgpCi0gKi8KLWludCBtYmVkdGxzX2VjcF9wb2ludF93cml0ZV9iaW5hcnkoY29uc3QgbWJlZHRsc19lY3BfZ3JvdXAgKmdycCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbWJlZHRsc19lY3BfcG9pbnQgKlAsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBmb3JtYXQsIHNpemVfdCAqb2xlbiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgY2hhciAqYnVmLCBzaXplX3QgYnVmbGVuKQotewotICAgIGludCByZXQgPSBNQkVEVExTX0VSUl9FQ1BfRkVBVFVSRV9VTkFWQUlMQUJMRTsKLSAgICBzaXplX3QgcGxlbjsKLSAgICBpZiAoZm9ybWF0ICE9IE1CRURUTFNfRUNQX1BGX1VOQ09NUFJFU1NFRCAmJgotICAgICAgICBmb3JtYXQgIT0gTUJFRFRMU19FQ1BfUEZfQ09NUFJFU1NFRCkgewotICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfRUNQX0JBRF9JTlBVVF9EQVRBOwotICAgIH0KLQotICAgIHBsZW4gPSBtYmVkdGxzX21waV9zaXplKCZncnAtPlApOwotCi0jaWYgZGVmaW5lZChNQkVEVExTX0VDUF9NT05UR09NRVJZX0VOQUJMRUQpCi0gICAgKHZvaWQpIGZvcm1hdDsgLyogTW9udGdvbWVyeSBjdXJ2ZXMgYWx3YXlzIHVzZSB0aGUgc2FtZSBwb2ludCBmb3JtYXQgKi8KLSAgICBpZiAobWJlZHRsc19lY3BfZ2V0X3R5cGUoZ3JwKSA9PSBNQkVEVExTX0VDUF9UWVBFX01PTlRHT01FUlkpIHsKLSAgICAgICAgKm9sZW4gPSBwbGVuOwotICAgICAgICBpZiAoYnVmbGVuIDwgKm9sZW4pIHsKLSAgICAgICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9FQ1BfQlVGRkVSX1RPT19TTUFMTDsKLSAgICAgICAgfQotCi0gICAgICAgIE1CRURUTFNfTVBJX0NISyhtYmVkdGxzX21waV93cml0ZV9iaW5hcnlfbGUoJlAtPlgsIGJ1ZiwgcGxlbikpOwotICAgIH0KLSNlbmRpZgotI2lmIGRlZmluZWQoTUJFRFRMU19FQ1BfU0hPUlRfV0VJRVJTVFJBU1NfRU5BQkxFRCkKLSAgICBpZiAobWJlZHRsc19lY3BfZ2V0X3R5cGUoZ3JwKSA9PSBNQkVEVExTX0VDUF9UWVBFX1NIT1JUX1dFSUVSU1RSQVNTKSB7Ci0gICAgICAgIC8qCi0gICAgICAgICAqIENvbW1vbiBjYXNlOiBQID09IDAKLSAgICAgICAgICovCi0gICAgICAgIGlmIChtYmVkdGxzX21waV9jbXBfaW50KCZQLT5aLCAwKSA9PSAwKSB7Ci0gICAgICAgICAgICBpZiAoYnVmbGVuIDwgMSkgewotICAgICAgICAgICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9FQ1BfQlVGRkVSX1RPT19TTUFMTDsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgYnVmWzBdID0gMHgwMDsKLSAgICAgICAgICAgICpvbGVuID0gMTsKLQotICAgICAgICAgICAgcmV0dXJuIDA7Ci0gICAgICAgIH0KLQotICAgICAgICBpZiAoZm9ybWF0ID09IE1CRURUTFNfRUNQX1BGX1VOQ09NUFJFU1NFRCkgewotICAgICAgICAgICAgKm9sZW4gPSAyICogcGxlbiArIDE7Ci0KLSAgICAgICAgICAgIGlmIChidWZsZW4gPCAqb2xlbikgewotICAgICAgICAgICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9FQ1BfQlVGRkVSX1RPT19TTUFMTDsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgYnVmWzBdID0gMHgwNDsKLSAgICAgICAgICAgIE1CRURUTFNfTVBJX0NISyhtYmVkdGxzX21waV93cml0ZV9iaW5hcnkoJlAtPlgsIGJ1ZiArIDEsIHBsZW4pKTsKLSAgICAgICAgICAgIE1CRURUTFNfTVBJX0NISyhtYmVkdGxzX21waV93cml0ZV9iaW5hcnkoJlAtPlksIGJ1ZiArIDEgKyBwbGVuLCBwbGVuKSk7Ci0gICAgICAgIH0gZWxzZSBpZiAoZm9ybWF0ID09IE1CRURUTFNfRUNQX1BGX0NPTVBSRVNTRUQpIHsKLSAgICAgICAgICAgICpvbGVuID0gcGxlbiArIDE7Ci0KLSAgICAgICAgICAgIGlmIChidWZsZW4gPCAqb2xlbikgewotICAgICAgICAgICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9FQ1BfQlVGRkVSX1RPT19TTUFMTDsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgYnVmWzBdID0gMHgwMiArIG1iZWR0bHNfbXBpX2dldF9iaXQoJlAtPlksIDApOwotICAgICAgICAgICAgTUJFRFRMU19NUElfQ0hLKG1iZWR0bHNfbXBpX3dyaXRlX2JpbmFyeSgmUC0+WCwgYnVmICsgMSwgcGxlbikpOwotICAgICAgICB9Ci0gICAgfQotI2VuZGlmCi0KLWNsZWFudXA6Ci0gICAgcmV0dXJuIHJldDsKLX0KLQotI2lmIGRlZmluZWQoTUJFRFRMU19FQ1BfU0hPUlRfV0VJRVJTVFJBU1NfRU5BQkxFRCkKLXN0YXRpYyBpbnQgbWJlZHRsc19lY3Bfc3dfZGVyaXZlX3koY29uc3QgbWJlZHRsc19lY3BfZ3JvdXAgKmdycCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbWJlZHRsc19tcGkgKlgsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1iZWR0bHNfbXBpICpZLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgcGFyaXR5X2JpdCk7Ci0jZW5kaWYgLyogTUJFRFRMU19FQ1BfU0hPUlRfV0VJRVJTVFJBU1NfRU5BQkxFRCAqLwotCi0vKgotICogSW1wb3J0IGEgcG9pbnQgZnJvbSB1bnNpZ25lZCBiaW5hcnkgZGF0YSAoU0VDMSAyLjMuNCBhbmQgUkZDNzc0OCkKLSAqLwotaW50IG1iZWR0bHNfZWNwX3BvaW50X3JlYWRfYmluYXJ5KGNvbnN0IG1iZWR0bHNfZWNwX2dyb3VwICpncnAsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWJlZHRsc19lY3BfcG9pbnQgKnB0LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgKmJ1Ziwgc2l6ZV90IGlsZW4pCi17Ci0gICAgaW50IHJldCA9IE1CRURUTFNfRVJSX0VDUF9GRUFUVVJFX1VOQVZBSUxBQkxFOwotICAgIHNpemVfdCBwbGVuOwotICAgIGlmIChpbGVuIDwgMSkgewotICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfRUNQX0JBRF9JTlBVVF9EQVRBOwotICAgIH0KLQotICAgIHBsZW4gPSBtYmVkdGxzX21waV9zaXplKCZncnAtPlApOwotCi0jaWYgZGVmaW5lZChNQkVEVExTX0VDUF9NT05UR09NRVJZX0VOQUJMRUQpCi0gICAgaWYgKG1iZWR0bHNfZWNwX2dldF90eXBlKGdycCkgPT0gTUJFRFRMU19FQ1BfVFlQRV9NT05UR09NRVJZKSB7Ci0gICAgICAgIGlmIChwbGVuICE9IGlsZW4pIHsKLSAgICAgICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9FQ1BfQkFEX0lOUFVUX0RBVEE7Ci0gICAgICAgIH0KLQotICAgICAgICBNQkVEVExTX01QSV9DSEsobWJlZHRsc19tcGlfcmVhZF9iaW5hcnlfbGUoJnB0LT5YLCBidWYsIHBsZW4pKTsKLSAgICAgICAgbWJlZHRsc19tcGlfZnJlZSgmcHQtPlkpOwotCi0gICAgICAgIGlmIChncnAtPmlkID09IE1CRURUTFNfRUNQX0RQX0NVUlZFMjU1MTkpIHsKLSAgICAgICAgICAgIC8qIFNldCBtb3N0IHNpZ25pZmljYW50IGJpdCB0byAwIGFzIHByZXNjcmliZWQgaW4gUkZDNzc0OCDCpzUgKi8KLSAgICAgICAgICAgIE1CRURUTFNfTVBJX0NISyhtYmVkdGxzX21waV9zZXRfYml0KCZwdC0+WCwgcGxlbiAqIDggLSAxLCAwKSk7Ci0gICAgICAgIH0KLQotICAgICAgICBNQkVEVExTX01QSV9DSEsobWJlZHRsc19tcGlfbHNldCgmcHQtPlosIDEpKTsKLSAgICB9Ci0jZW5kaWYKLSNpZiBkZWZpbmVkKE1CRURUTFNfRUNQX1NIT1JUX1dFSUVSU1RSQVNTX0VOQUJMRUQpCi0gICAgaWYgKG1iZWR0bHNfZWNwX2dldF90eXBlKGdycCkgPT0gTUJFRFRMU19FQ1BfVFlQRV9TSE9SVF9XRUlFUlNUUkFTUykgewotICAgICAgICBpZiAoYnVmWzBdID09IDB4MDApIHsKLSAgICAgICAgICAgIGlmIChpbGVuID09IDEpIHsKLSAgICAgICAgICAgICAgICByZXR1cm4gbWJlZHRsc19lY3Bfc2V0X3plcm8ocHQpOwotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfRUNQX0JBRF9JTlBVVF9EQVRBOwotICAgICAgICAgICAgfQotICAgICAgICB9Ci0KLSAgICAgICAgaWYgKGlsZW4gPCAxICsgcGxlbikgewotICAgICAgICAgICAgcmV0dXJuIE1CRURUTFNfRVJSX0VDUF9CQURfSU5QVVRfREFUQTsKLSAgICAgICAgfQotCi0gICAgICAgIE1CRURUTFNfTVBJX0NISyhtYmVkdGxzX21waV9yZWFkX2JpbmFyeSgmcHQtPlgsIGJ1ZiArIDEsIHBsZW4pKTsKLSAgICAgICAgTUJFRFRMU19NUElfQ0hLKG1iZWR0bHNfbXBpX2xzZXQoJnB0LT5aLCAxKSk7Ci0KLSAgICAgICAgaWYgKGJ1ZlswXSA9PSAweDA0KSB7Ci0gICAgICAgICAgICAvKiBmb3JtYXQgPT0gTUJFRFRMU19FQ1BfUEZfVU5DT01QUkVTU0VEICovCi0gICAgICAgICAgICBpZiAoaWxlbiAhPSAxICsgcGxlbiAqIDIpIHsKLSAgICAgICAgICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfRUNQX0JBRF9JTlBVVF9EQVRBOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgcmV0dXJuIG1iZWR0bHNfbXBpX3JlYWRfYmluYXJ5KCZwdC0+WSwgYnVmICsgMSArIHBsZW4sIHBsZW4pOwotICAgICAgICB9IGVsc2UgaWYgKGJ1ZlswXSA9PSAweDAyIHx8IGJ1ZlswXSA9PSAweDAzKSB7Ci0gICAgICAgICAgICAvKiBmb3JtYXQgPT0gTUJFRFRMU19FQ1BfUEZfQ09NUFJFU1NFRCAqLwotICAgICAgICAgICAgaWYgKGlsZW4gIT0gMSArIHBsZW4pIHsKLSAgICAgICAgICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfRUNQX0JBRF9JTlBVVF9EQVRBOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgcmV0dXJuIG1iZWR0bHNfZWNwX3N3X2Rlcml2ZV95KGdycCwgJnB0LT5YLCAmcHQtPlksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGJ1ZlswXSAmIDEpKTsKLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9FQ1BfQkFEX0lOUFVUX0RBVEE7Ci0gICAgICAgIH0KLSAgICB9Ci0jZW5kaWYKLQotY2xlYW51cDoKLSAgICByZXR1cm4gcmV0OwotfQotCi0vKgotICogSW1wb3J0IGEgcG9pbnQgZnJvbSBhIFRMUyBFQ1BvaW50IHJlY29yZCAoUkZDIDQ0OTIpCi0gKiAgICAgIHN0cnVjdCB7Ci0gKiAgICAgICAgICBvcGFxdWUgcG9pbnQgPDEuLjJeOC0xPjsKLSAqICAgICAgfSBFQ1BvaW50OwotICovCi1pbnQgbWJlZHRsc19lY3BfdGxzX3JlYWRfcG9pbnQoY29uc3QgbWJlZHRsc19lY3BfZ3JvdXAgKmdycCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYmVkdGxzX2VjcF9wb2ludCAqcHQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdW5zaWduZWQgY2hhciAqKmJ1Ziwgc2l6ZV90IGJ1Zl9sZW4pCi17Ci0gICAgdW5zaWduZWQgY2hhciBkYXRhX2xlbjsKLSAgICBjb25zdCB1bnNpZ25lZCBjaGFyICpidWZfc3RhcnQ7Ci0gICAgLyoKLSAgICAgKiBXZSBtdXN0IGhhdmUgYXQgbGVhc3QgdHdvIGJ5dGVzICgxIGZvciBsZW5ndGgsIGF0IGxlYXN0IG9uZSBmb3IgZGF0YSkKLSAgICAgKi8KLSAgICBpZiAoYnVmX2xlbiA8IDIpIHsKLSAgICAgICAgcmV0dXJuIE1CRURUTFNfRVJSX0VDUF9CQURfSU5QVVRfREFUQTsKLSAgICB9Ci0KLSAgICBkYXRhX2xlbiA9ICooKmJ1ZikrKzsKLSAgICBpZiAoZGF0YV9sZW4gPCAxIHx8IGRhdGFfbGVuID4gYnVmX2xlbiAtIDEpIHsKLSAgICAgICAgcmV0dXJuIE1CRURUTFNfRVJSX0VDUF9CQURfSU5QVVRfREFUQTsKLSAgICB9Ci0KLSAgICAvKgotICAgICAqIFNhdmUgYnVmZmVyIHN0YXJ0IGZvciByZWFkX2JpbmFyeSBhbmQgdXBkYXRlIGJ1ZgotICAgICAqLwotICAgIGJ1Zl9zdGFydCA9ICpidWY7Ci0gICAgKmJ1ZiArPSBkYXRhX2xlbjsKLQotICAgIHJldHVybiBtYmVkdGxzX2VjcF9wb2ludF9yZWFkX2JpbmFyeShncnAsIHB0LCBidWZfc3RhcnQsIGRhdGFfbGVuKTsKLX0KLQotLyoKLSAqIEV4cG9ydCBhIHBvaW50IGFzIGEgVExTIEVDUG9pbnQgcmVjb3JkIChSRkMgNDQ5MikKLSAqICAgICAgc3RydWN0IHsKLSAqICAgICAgICAgIG9wYXF1ZSBwb2ludCA8MS4uMl44LTE+OwotICogICAgICB9IEVDUG9pbnQ7Ci0gKi8KLWludCBtYmVkdGxzX2VjcF90bHNfd3JpdGVfcG9pbnQoY29uc3QgbWJlZHRsc19lY3BfZ3JvdXAgKmdycCwgY29uc3QgbWJlZHRsc19lY3BfcG9pbnQgKnB0LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgZm9ybWF0LCBzaXplX3QgKm9sZW4sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGNoYXIgKmJ1Ziwgc2l6ZV90IGJsZW4pCi17Ci0gICAgaW50IHJldCA9IE1CRURUTFNfRVJSX0VSUk9SX0NPUlJVUFRJT05fREVURUNURUQ7Ci0gICAgaWYgKGZvcm1hdCAhPSBNQkVEVExTX0VDUF9QRl9VTkNPTVBSRVNTRUQgJiYKLSAgICAgICAgZm9ybWF0ICE9IE1CRURUTFNfRUNQX1BGX0NPTVBSRVNTRUQpIHsKLSAgICAgICAgcmV0dXJuIE1CRURUTFNfRVJSX0VDUF9CQURfSU5QVVRfREFUQTsKLSAgICB9Ci0KLSAgICAvKgotICAgICAqIGJ1ZmZlciBsZW5ndGggbXVzdCBiZSBhdCBsZWFzdCBvbmUsIGZvciBvdXIgbGVuZ3RoIGJ5dGUKLSAgICAgKi8KLSAgICBpZiAoYmxlbiA8IDEpIHsKLSAgICAgICAgcmV0dXJuIE1CRURUTFNfRVJSX0VDUF9CQURfSU5QVVRfREFUQTsKLSAgICB9Ci0KLSAgICBpZiAoKHJldCA9IG1iZWR0bHNfZWNwX3BvaW50X3dyaXRlX2JpbmFyeShncnAsIHB0LCBmb3JtYXQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb2xlbiwgYnVmICsgMSwgYmxlbiAtIDEpKSAhPSAwKSB7Ci0gICAgICAgIHJldHVybiByZXQ7Ci0gICAgfQotCi0gICAgLyoKLSAgICAgKiB3cml0ZSBsZW5ndGggdG8gdGhlIGZpcnN0IGJ5dGUgYW5kIHVwZGF0ZSB0b3RhbCBsZW5ndGgKLSAgICAgKi8KLSAgICBidWZbMF0gPSAodW5zaWduZWQgY2hhcikgKm9sZW47Ci0gICAgKysqb2xlbjsKLQotICAgIHJldHVybiAwOwotfQotCi0vKgotICogU2V0IGEgZ3JvdXAgZnJvbSBhbiBFQ1BhcmFtZXRlcnMgcmVjb3JkIChSRkMgNDQ5MikKLSAqLwotaW50IG1iZWR0bHNfZWNwX3Rsc19yZWFkX2dyb3VwKG1iZWR0bHNfZWNwX2dyb3VwICpncnAsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdW5zaWduZWQgY2hhciAqKmJ1Ziwgc2l6ZV90IGxlbikKLXsKLSAgICBpbnQgcmV0ID0gTUJFRFRMU19FUlJfRVJST1JfQ09SUlVQVElPTl9ERVRFQ1RFRDsKLSAgICBtYmVkdGxzX2VjcF9ncm91cF9pZCBncnBfaWQ7Ci0gICAgaWYgKChyZXQgPSBtYmVkdGxzX2VjcF90bHNfcmVhZF9ncm91cF9pZCgmZ3JwX2lkLCBidWYsIGxlbikpICE9IDApIHsKLSAgICAgICAgcmV0dXJuIHJldDsKLSAgICB9Ci0KLSAgICByZXR1cm4gbWJlZHRsc19lY3BfZ3JvdXBfbG9hZChncnAsIGdycF9pZCk7Ci19Ci0KLS8qCi0gKiBSZWFkIGEgZ3JvdXAgaWQgZnJvbSBhbiBFQ1BhcmFtZXRlcnMgcmVjb3JkIChSRkMgNDQ5MikgYW5kIGNvbnZlcnQgaXQgdG8KLSAqIG1iZWR0bHNfZWNwX2dyb3VwX2lkLgotICovCi1pbnQgbWJlZHRsc19lY3BfdGxzX3JlYWRfZ3JvdXBfaWQobWJlZHRsc19lY3BfZ3JvdXBfaWQgKmdycCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1bnNpZ25lZCBjaGFyICoqYnVmLCBzaXplX3QgbGVuKQotewotICAgIHVpbnQxNl90IHRsc19pZDsKLSAgICBjb25zdCBtYmVkdGxzX2VjcF9jdXJ2ZV9pbmZvICpjdXJ2ZV9pbmZvOwotICAgIC8qCi0gICAgICogV2UgZXhwZWN0IGF0IGxlYXN0IHRocmVlIGJ5dGVzIChzZWUgYmVsb3cpCi0gICAgICovCi0gICAgaWYgKGxlbiA8IDMpIHsKLSAgICAgICAgcmV0dXJuIE1CRURUTFNfRVJSX0VDUF9CQURfSU5QVVRfREFUQTsKLSAgICB9Ci0KLSAgICAvKgotICAgICAqIEZpcnN0IGJ5dGUgaXMgY3VydmVfdHlwZTsgb25seSBuYW1lZF9jdXJ2ZSBpcyBoYW5kbGVkCi0gICAgICovCi0gICAgaWYgKCooKmJ1ZikrKyAhPSBNQkVEVExTX0VDUF9UTFNfTkFNRURfQ1VSVkUpIHsKLSAgICAgICAgcmV0dXJuIE1CRURUTFNfRVJSX0VDUF9CQURfSU5QVVRfREFUQTsKLSAgICB9Ci0KLSAgICAvKgotICAgICAqIE5leHQgdHdvIGJ5dGVzIGFyZSB0aGUgbmFtZWRjdXJ2ZSB2YWx1ZQotICAgICAqLwotICAgIHRsc19pZCA9IE1CRURUTFNfR0VUX1VJTlQxNl9CRSgqYnVmLCAwKTsKLSAgICAqYnVmICs9IDI7Ci0KLSAgICBpZiAoKGN1cnZlX2luZm8gPSBtYmVkdGxzX2VjcF9jdXJ2ZV9pbmZvX2Zyb21fdGxzX2lkKHRsc19pZCkpID09IE5VTEwpIHsKLSAgICAgICAgcmV0dXJuIE1CRURUTFNfRVJSX0VDUF9GRUFUVVJFX1VOQVZBSUxBQkxFOwotICAgIH0KLQotICAgICpncnAgPSBjdXJ2ZV9pbmZvLT5ncnBfaWQ7Ci0KLSAgICByZXR1cm4gMDsKLX0KLQotLyoKLSAqIFdyaXRlIHRoZSBFQ1BhcmFtZXRlcnMgcmVjb3JkIGNvcnJlc3BvbmRpbmcgdG8gYSBncm91cCAoUkZDIDQ0OTIpCi0gKi8KLWludCBtYmVkdGxzX2VjcF90bHNfd3JpdGVfZ3JvdXAoY29uc3QgbWJlZHRsc19lY3BfZ3JvdXAgKmdycCwgc2l6ZV90ICpvbGVuLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBjaGFyICpidWYsIHNpemVfdCBibGVuKQotewotICAgIGNvbnN0IG1iZWR0bHNfZWNwX2N1cnZlX2luZm8gKmN1cnZlX2luZm87Ci0gICAgaWYgKChjdXJ2ZV9pbmZvID0gbWJlZHRsc19lY3BfY3VydmVfaW5mb19mcm9tX2dycF9pZChncnAtPmlkKSkgPT0gTlVMTCkgewotICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfRUNQX0JBRF9JTlBVVF9EQVRBOwotICAgIH0KLQotICAgIC8qCi0gICAgICogV2UgYXJlIGdvaW5nIHRvIHdyaXRlIDMgYnl0ZXMgKHNlZSBiZWxvdykKLSAgICAgKi8KLSAgICAqb2xlbiA9IDM7Ci0gICAgaWYgKGJsZW4gPCAqb2xlbikgewotICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfRUNQX0JVRkZFUl9UT09fU01BTEw7Ci0gICAgfQotCi0gICAgLyoKLSAgICAgKiBGaXJzdCBieXRlIGlzIGN1cnZlX3R5cGUsIGFsd2F5cyBuYW1lZF9jdXJ2ZQotICAgICAqLwotICAgICpidWYrKyA9IE1CRURUTFNfRUNQX1RMU19OQU1FRF9DVVJWRTsKLQotICAgIC8qCi0gICAgICogTmV4dCB0d28gYnl0ZXMgYXJlIHRoZSBuYW1lZGN1cnZlIHZhbHVlCi0gICAgICovCi0gICAgTUJFRFRMU19QVVRfVUlOVDE2X0JFKGN1cnZlX2luZm8tPnRsc19pZCwgYnVmLCAwKTsKLQotICAgIHJldHVybiAwOwotfQotCi0vKgotICogV3JhcHBlciBhcm91bmQgZmFzdCBxdWFzaS1tb2RwIGZ1bmN0aW9ucywgd2l0aCBmYWxsLWJhY2sgdG8gbWJlZHRsc19tcGlfbW9kX21waS4KLSAqIFNlZSB0aGUgZG9jdW1lbnRhdGlvbiBvZiBzdHJ1Y3QgbWJlZHRsc19lY3BfZ3JvdXAuCi0gKgotICogVGhpcyBmdW5jdGlvbiBpcyBpbiB0aGUgY3JpdGlhbCBsb29wIGZvciBtYmVkdGxzX2VjcF9tdWwsIHNvIHBheSBhdHRlbnRpb24gdG8gcGVyZi4KLSAqLwotc3RhdGljIGludCBlY3BfbW9kcChtYmVkdGxzX21waSAqTiwgY29uc3QgbWJlZHRsc19lY3BfZ3JvdXAgKmdycCkKLXsKLSAgICBpbnQgcmV0ID0gTUJFRFRMU19FUlJfRVJST1JfQ09SUlVQVElPTl9ERVRFQ1RFRDsKLQotICAgIGlmIChncnAtPm1vZHAgPT0gTlVMTCkgewotICAgICAgICByZXR1cm4gbWJlZHRsc19tcGlfbW9kX21waShOLCBOLCAmZ3JwLT5QKTsKLSAgICB9Ci0KLSAgICAvKiBOLT5zIDwgMCBpcyBhIG11Y2ggZmFzdGVyIHRlc3QsIHdoaWNoIGZhaWxzIG9ubHkgaWYgTiBpcyAwICovCi0gICAgaWYgKChOLT5zIDwgMCAmJiBtYmVkdGxzX21waV9jbXBfaW50KE4sIDApICE9IDApIHx8Ci0gICAgICAgIG1iZWR0bHNfbXBpX2JpdGxlbihOKSA+IDIgKiBncnAtPnBiaXRzKSB7Ci0gICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9FQ1BfQkFEX0lOUFVUX0RBVEE7Ci0gICAgfQotCi0gICAgTUJFRFRMU19NUElfQ0hLKGdycC0+bW9kcChOKSk7Ci0KLSAgICAvKiBOLT5zIDwgMCBpcyBhIG11Y2ggZmFzdGVyIHRlc3QsIHdoaWNoIGZhaWxzIG9ubHkgaWYgTiBpcyAwICovCi0gICAgd2hpbGUgKE4tPnMgPCAwICYmIG1iZWR0bHNfbXBpX2NtcF9pbnQoTiwgMCkgIT0gMCkgewotICAgICAgICBNQkVEVExTX01QSV9DSEsobWJlZHRsc19tcGlfYWRkX21waShOLCBOLCAmZ3JwLT5QKSk7Ci0gICAgfQotCi0gICAgd2hpbGUgKG1iZWR0bHNfbXBpX2NtcF9tcGkoTiwgJmdycC0+UCkgPj0gMCkgewotICAgICAgICAvKiB3ZSBrbm93biBQLCBOIGFuZCB0aGUgcmVzdWx0IGFyZSBwb3NpdGl2ZSAqLwotICAgICAgICBNQkVEVExTX01QSV9DSEsobWJlZHRsc19tcGlfc3ViX2FicyhOLCBOLCAmZ3JwLT5QKSk7Ci0gICAgfQotCi1jbGVhbnVwOgotICAgIHJldHVybiByZXQ7Ci19Ci0KLS8qCi0gKiBGYXN0IG1vZC1wIGZ1bmN0aW9ucyBleHBlY3QgdGhlaXIgYXJndW1lbnQgdG8gYmUgaW4gdGhlIDAuLnBeMiByYW5nZS4KLSAqCi0gKiBJbiBvcmRlciB0byBndWFyYW50ZWUgdGhhdCwgd2UgbmVlZCB0byBlbnN1cmUgdGhhdCBvcGVyYW5kcyBvZgotICogbWJlZHRsc19tcGlfbXVsX21waSBhcmUgaW4gdGhlIDAuLnAgcmFuZ2UuIFNvLCBhZnRlciBlYWNoIG9wZXJhdGlvbiB3ZSB3aWxsCi0gKiBicmluZyB0aGUgcmVzdWx0IGJhY2sgdG8gdGhpcyByYW5nZS4KLSAqCi0gKiBUaGUgZm9sbG93aW5nIG1hY3JvcyBhcmUgc2hvcnRjdXRzIGZvciBkb2luZyB0aGF0LgotICovCi0KLS8qCi0gKiBSZWR1Y2UgYSBtYmVkdGxzX21waSBtb2QgcCBpbi1wbGFjZSwgZ2VuZXJhbCBjYXNlLCB0byB1c2UgYWZ0ZXIgbWJlZHRsc19tcGlfbXVsX21waQotICovCi0jaWYgZGVmaW5lZChNQkVEVExTX1NFTEZfVEVTVCkKLSNkZWZpbmUgSU5DX01VTF9DT1VOVCAgIG11bF9jb3VudCsrOwotI2Vsc2UKLSNkZWZpbmUgSU5DX01VTF9DT1VOVAotI2VuZGlmCi0KLSNkZWZpbmUgTU9EX01VTChOKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgZG8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgICAgIE1CRURUTFNfTVBJX0NISyhlY3BfbW9kcCgmKE4pLCBncnApKTsgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICAgICAgSU5DX01VTF9DT1VOVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICB9IHdoaWxlICgwKQotCi1zdGF0aWMgaW5saW5lIGludCBtYmVkdGxzX21waV9tdWxfbW9kKGNvbnN0IG1iZWR0bHNfZWNwX2dyb3VwICpncnAsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1iZWR0bHNfbXBpICpYLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBtYmVkdGxzX21waSAqQSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbWJlZHRsc19tcGkgKkIpCi17Ci0gICAgaW50IHJldCA9IE1CRURUTFNfRVJSX0VSUk9SX0NPUlJVUFRJT05fREVURUNURUQ7Ci0gICAgTUJFRFRMU19NUElfQ0hLKG1iZWR0bHNfbXBpX211bF9tcGkoWCwgQSwgQikpOwotICAgIE1PRF9NVUwoKlgpOwotY2xlYW51cDoKLSAgICByZXR1cm4gcmV0OwotfQotCi0vKgotICogUmVkdWNlIGEgbWJlZHRsc19tcGkgbW9kIHAgaW4tcGxhY2UsIHRvIHVzZSBhZnRlciBtYmVkdGxzX21waV9zdWJfbXBpCi0gKiBOLT5zIDwgMCBpcyBhIHZlcnkgZmFzdCB0ZXN0LCB3aGljaCBmYWlscyBvbmx5IGlmIE4gaXMgMAotICovCi0jZGVmaW5lIE1PRF9TVUIoTikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIGRvIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgICAgICB3aGlsZSAoKE4pLT5zIDwgMCAmJiBtYmVkdGxzX21waV9jbXBfaW50KChOKSwgMCkgIT0gMCkgICAgICAgICAgICAgXAotICAgICAgICBNQkVEVExTX01QSV9DSEsobWJlZHRsc19tcGlfYWRkX21waSgoTiksIChOKSwgJmdycC0+UCkpOyAgICAgIFwKLSAgICB9IHdoaWxlICgwKQotCi1NQkVEVExTX01BWUJFX1VOVVNFRAotc3RhdGljIGlubGluZSBpbnQgbWJlZHRsc19tcGlfc3ViX21vZChjb25zdCBtYmVkdGxzX2VjcF9ncm91cCAqZ3JwLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYmVkdGxzX21waSAqWCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbWJlZHRsc19tcGkgKkEsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IG1iZWR0bHNfbXBpICpCKQotewotICAgIGludCByZXQgPSBNQkVEVExTX0VSUl9FUlJPUl9DT1JSVVBUSU9OX0RFVEVDVEVEOwotICAgIE1CRURUTFNfTVBJX0NISyhtYmVkdGxzX21waV9zdWJfbXBpKFgsIEEsIEIpKTsKLSAgICBNT0RfU1VCKFgpOwotY2xlYW51cDoKLSAgICByZXR1cm4gcmV0OwotfQotCi0vKgotICogUmVkdWNlIGEgbWJlZHRsc19tcGkgbW9kIHAgaW4tcGxhY2UsIHRvIHVzZSBhZnRlciBtYmVkdGxzX21waV9hZGRfbXBpIGFuZCBtYmVkdGxzX21waV9tdWxfaW50LgotICogV2Uga25vd24gUCwgTiBhbmQgdGhlIHJlc3VsdCBhcmUgcG9zaXRpdmUsIHNvIHN1Yl9hYnMgaXMgY29ycmVjdCwgYW5kCi0gKiBhIGJpdCBmYXN0ZXIuCi0gKi8KLSNkZWZpbmUgTU9EX0FERChOKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICB3aGlsZSAobWJlZHRsc19tcGlfY21wX21waSgoTiksICZncnAtPlApID49IDApICAgICAgICAgICAgICAgICAgXAotICAgIE1CRURUTFNfTVBJX0NISyhtYmVkdGxzX21waV9zdWJfYWJzKChOKSwgKE4pLCAmZ3JwLT5QKSkKLQotc3RhdGljIGlubGluZSBpbnQgbWJlZHRsc19tcGlfYWRkX21vZChjb25zdCBtYmVkdGxzX2VjcF9ncm91cCAqZ3JwLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYmVkdGxzX21waSAqWCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbWJlZHRsc19tcGkgKkEsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IG1iZWR0bHNfbXBpICpCKQotewotICAgIGludCByZXQgPSBNQkVEVExTX0VSUl9FUlJPUl9DT1JSVVBUSU9OX0RFVEVDVEVEOwotICAgIE1CRURUTFNfTVBJX0NISyhtYmVkdGxzX21waV9hZGRfbXBpKFgsIEEsIEIpKTsKLSAgICBNT0RfQUREKFgpOwotY2xlYW51cDoKLSAgICByZXR1cm4gcmV0OwotfQotCi1NQkVEVExTX01BWUJFX1VOVVNFRAotc3RhdGljIGlubGluZSBpbnQgbWJlZHRsc19tcGlfbXVsX2ludF9tb2QoY29uc3QgbWJlZHRsc19lY3BfZ3JvdXAgKmdycCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1iZWR0bHNfbXBpICpYLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbWJlZHRsc19tcGkgKkEsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYmVkdGxzX21waV91aW50IGMpCi17Ci0gICAgaW50IHJldCA9IE1CRURUTFNfRVJSX0VSUk9SX0NPUlJVUFRJT05fREVURUNURUQ7Ci0KLSAgICBNQkVEVExTX01QSV9DSEsobWJlZHRsc19tcGlfbXVsX2ludChYLCBBLCBjKSk7Ci0gICAgTU9EX0FERChYKTsKLWNsZWFudXA6Ci0gICAgcmV0dXJuIHJldDsKLX0KLQotTUJFRFRMU19NQVlCRV9VTlVTRUQKLXN0YXRpYyBpbmxpbmUgaW50IG1iZWR0bHNfbXBpX3N1Yl9pbnRfbW9kKGNvbnN0IG1iZWR0bHNfZWNwX2dyb3VwICpncnAsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYmVkdGxzX21waSAqWCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IG1iZWR0bHNfbXBpICpBLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWJlZHRsc19tcGlfdWludCBjKQotewotICAgIGludCByZXQgPSBNQkVEVExTX0VSUl9FUlJPUl9DT1JSVVBUSU9OX0RFVEVDVEVEOwotCi0gICAgTUJFRFRMU19NUElfQ0hLKG1iZWR0bHNfbXBpX3N1Yl9pbnQoWCwgQSwgYykpOwotICAgIE1PRF9TVUIoWCk7Ci1jbGVhbnVwOgotICAgIHJldHVybiByZXQ7Ci19Ci0KLSNkZWZpbmUgTVBJX0VDUF9TVUJfSU5UKFgsIEEsIGMpICAgICAgICAgICAgIFwKLSAgICBNQkVEVExTX01QSV9DSEsobWJlZHRsc19tcGlfc3ViX2ludF9tb2QoZ3JwLCBYLCBBLCBjKSkKLQotTUJFRFRMU19NQVlCRV9VTlVTRUQKLXN0YXRpYyBpbmxpbmUgaW50IG1iZWR0bHNfbXBpX3NoaWZ0X2xfbW9kKGNvbnN0IG1iZWR0bHNfZWNwX2dyb3VwICpncnAsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYmVkdGxzX21waSAqWCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBjb3VudCkKLXsKLSAgICBpbnQgcmV0ID0gTUJFRFRMU19FUlJfRVJST1JfQ09SUlVQVElPTl9ERVRFQ1RFRDsKLSAgICBNQkVEVExTX01QSV9DSEsobWJlZHRsc19tcGlfc2hpZnRfbChYLCBjb3VudCkpOwotICAgIE1PRF9BREQoWCk7Ci1jbGVhbnVwOgotICAgIHJldHVybiByZXQ7Ci19Ci0KLS8qCi0gKiBNYWNybyB3cmFwcGVycyBhcm91bmQgRUNQIG1vZHVsYXIgYXJpdGhtZXRpYwotICoKLSAqIEN1cnJlbnRseSwgdGhlc2Ugd3JhcHBlcnMgYXJlIGRlZmluZWQgdmlhIHRoZSBiaWdudW0gbW9kdWxlLgotICovCi0KLSNkZWZpbmUgTVBJX0VDUF9BREQoWCwgQSwgQikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICBNQkVEVExTX01QSV9DSEsobWJlZHRsc19tcGlfYWRkX21vZChncnAsIFgsIEEsIEIpKQotCi0jZGVmaW5lIE1QSV9FQ1BfU1VCKFgsIEEsIEIpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgTUJFRFRMU19NUElfQ0hLKG1iZWR0bHNfbXBpX3N1Yl9tb2QoZ3JwLCBYLCBBLCBCKSkKLQotI2RlZmluZSBNUElfRUNQX01VTChYLCBBLCBCKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIE1CRURUTFNfTVBJX0NISyhtYmVkdGxzX21waV9tdWxfbW9kKGdycCwgWCwgQSwgQikpCi0KLSNkZWZpbmUgTVBJX0VDUF9TUVIoWCwgQSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICBNQkVEVExTX01QSV9DSEsobWJlZHRsc19tcGlfbXVsX21vZChncnAsIFgsIEEsIEEpKQotCi0jZGVmaW5lIE1QSV9FQ1BfTVVMX0lOVChYLCBBLCBjKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgTUJFRFRMU19NUElfQ0hLKG1iZWR0bHNfbXBpX211bF9pbnRfbW9kKGdycCwgWCwgQSwgYykpCi0KLSNkZWZpbmUgTVBJX0VDUF9JTlYoZHN0LCBzcmMpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICBNQkVEVExTX01QSV9DSEsobWJlZHRsc19tcGlfaW52X21vZCgoZHN0KSwgKHNyYyksICZncnAtPlApKQotCi0jZGVmaW5lIE1QSV9FQ1BfTU9WKFgsIEEpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgTUJFRFRMU19NUElfQ0hLKG1iZWR0bHNfbXBpX2NvcHkoWCwgQSkpCi0KLSNkZWZpbmUgTVBJX0VDUF9TSElGVF9MKFgsIGNvdW50KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICBNQkVEVExTX01QSV9DSEsobWJlZHRsc19tcGlfc2hpZnRfbF9tb2QoZ3JwLCBYLCBjb3VudCkpCi0KLSNkZWZpbmUgTVBJX0VDUF9MU0VUKFgsIGMpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICBNQkVEVExTX01QSV9DSEsobWJlZHRsc19tcGlfbHNldChYLCBjKSkKLQotI2RlZmluZSBNUElfRUNQX0NNUF9JTlQoWCwgYykgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIG1iZWR0bHNfbXBpX2NtcF9pbnQoWCwgYykKLQotI2RlZmluZSBNUElfRUNQX0NNUChYLCBZKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIG1iZWR0bHNfbXBpX2NtcF9tcGkoWCwgWSkKLQotLyogTmVlZHMgZl9ybmcsIHBfcm5nIHRvIGJlIGRlZmluZWQuICovCi0jZGVmaW5lIE1QSV9FQ1BfUkFORChYKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgTUJFRFRMU19NUElfQ0hLKG1iZWR0bHNfbXBpX3JhbmRvbSgoWCksIDIsICZncnAtPlAsIGZfcm5nLCBwX3JuZykpCi0KLS8qIENvbmRpdGlvbmFsIG5lZ2F0aW9uCi0gKiBOZWVkcyBncnAgYW5kIGEgdGVtcG9yYXJ5IE1QSSB0bXAgdG8gYmUgZGVmaW5lZC4gKi8KLSNkZWZpbmUgTVBJX0VDUF9DT05EX05FRyhYLCBjb25kKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgZG8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgICAgIHVuc2lnbmVkIGNoYXIgbm9uemVybyA9IG1iZWR0bHNfbXBpX2NtcF9pbnQoKFgpLCAwKSAhPSAwOyAgICAgICAgXAotICAgICAgICBNQkVEVExTX01QSV9DSEsobWJlZHRsc19tcGlfc3ViX21waSgmdG1wLCAmZ3JwLT5QLCAoWCkpKTsgICAgICBcCi0gICAgICAgIE1CRURUTFNfTVBJX0NISyhtYmVkdGxzX21waV9zYWZlX2NvbmRfYXNzaWduKChYKSwgJnRtcCwgICAgICAgICAgXAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub256ZXJvICYgY29uZCkpOyBcCi0gICAgfSB3aGlsZSAoMCkKLQotI2RlZmluZSBNUElfRUNQX05FRyhYKSBNUElfRUNQX0NPTkRfTkVHKChYKSwgMSkKLQotI2RlZmluZSBNUElfRUNQX1ZBTElEKFgpICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICAoKFgpLT5wICE9IE5VTEwpCi0KLSNkZWZpbmUgTVBJX0VDUF9DT05EX0FTU0lHTihYLCBZLCBjb25kKSAgICAgICBcCi0gICAgTUJFRFRMU19NUElfQ0hLKG1iZWR0bHNfbXBpX3NhZmVfY29uZF9hc3NpZ24oKFgpLCAoWSksIChjb25kKSkpCi0KLSNkZWZpbmUgTVBJX0VDUF9DT05EX1NXQVAoWCwgWSwgY29uZCkgICAgICAgXAotICAgIE1CRURUTFNfTVBJX0NISyhtYmVkdGxzX21waV9zYWZlX2NvbmRfc3dhcCgoWCksIChZKSwgKGNvbmQpKSkKLQotI2lmIGRlZmluZWQoTUJFRFRMU19FQ1BfU0hPUlRfV0VJRVJTVFJBU1NfRU5BQkxFRCkKLQotLyoKLSAqIENvbXB1dGVzIHRoZSByaWdodC1oYW5kIHNpZGUgb2YgdGhlIFNob3J0IFdlaWVyc3RyYXNzIGVxdWF0aW9uCi0gKiBSSFMgPSBYXjMgKyBBIFggKyBCCi0gKi8KLXN0YXRpYyBpbnQgZWNwX3N3X3Jocyhjb25zdCBtYmVkdGxzX2VjcF9ncm91cCAqZ3JwLAotICAgICAgICAgICAgICAgICAgICAgIG1iZWR0bHNfbXBpICpyaHMsCi0gICAgICAgICAgICAgICAgICAgICAgY29uc3QgbWJlZHRsc19tcGkgKlgpCi17Ci0gICAgaW50IHJldDsKLQotICAgIC8qIENvbXB1dGUgWF4zICsgQSBYICsgQiBhcyBYIChYXjIgKyBBKSArIEIgKi8KLSAgICBNUElfRUNQX1NRUihyaHMsIFgpOwotCi0gICAgLyogU3BlY2lhbCBjYXNlIGZvciBBID0gLTMgKi8KLSAgICBpZiAobWJlZHRsc19lY3BfZ3JvdXBfYV9pc19taW51c18zKGdycCkpIHsKLSAgICAgICAgTVBJX0VDUF9TVUJfSU5UKHJocywgcmhzLCAzKTsKLSAgICB9IGVsc2UgewotICAgICAgICBNUElfRUNQX0FERChyaHMsIHJocywgJmdycC0+QSk7Ci0gICAgfQotCi0gICAgTVBJX0VDUF9NVUwocmhzLCByaHMsIFgpOwotICAgIE1QSV9FQ1BfQUREKHJocywgcmhzLCAmZ3JwLT5CKTsKLQotY2xlYW51cDoKLSAgICByZXR1cm4gcmV0OwotfQotCi0vKgotICogRGVyaXZlIFkgZnJvbSBYIGFuZCBhIHBhcml0eSBiaXQKLSAqLwotc3RhdGljIGludCBtYmVkdGxzX2VjcF9zd19kZXJpdmVfeShjb25zdCBtYmVkdGxzX2VjcF9ncm91cCAqZ3JwLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBtYmVkdGxzX21waSAqWCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWJlZHRsc19tcGkgKlksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBwYXJpdHlfYml0KQotewotICAgIC8qIHcgPSB5XjIgPSB4XjMgKyBheCArIGIKLSAgICAgKiB5ID0gc3FydCh3KSA9IHdeKChwKzEpLzQpIG1vZCBwICAgKGZvciBwcmltZSBwIHdoZXJlIHAgPSAzIG1vZCA0KQotICAgICAqCi0gICAgICogTm90ZTogdGhpcyBtZXRob2QgZm9yIGV4dHJhY3Rpbmcgc3F1YXJlIHJvb3QgZG9lcyBub3QgdmFsaWRhdGUgdGhhdCB3Ci0gICAgICogd2FzIGluZGVlZCBhIHNxdWFyZSBzbyB0aGlzIGZ1bmN0aW9uIHdpbGwgcmV0dXJuIGdhcmJhZ2UgaW4gWSBpZiBYCi0gICAgICogZG9lcyBub3QgY29ycmVzcG9uZCB0byBhIHBvaW50IG9uIHRoZSBjdXJ2ZS4KLSAgICAgKi8KLQotICAgIC8qIENoZWNrIHByZXJlcXVpc2l0ZSBwID0gMyBtb2QgNCAqLwotICAgIGlmIChtYmVkdGxzX21waV9nZXRfYml0KCZncnAtPlAsIDApICE9IDEgfHwKLSAgICAgICAgbWJlZHRsc19tcGlfZ2V0X2JpdCgmZ3JwLT5QLCAxKSAhPSAxKSB7Ci0gICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9FQ1BfRkVBVFVSRV9VTkFWQUlMQUJMRTsKLSAgICB9Ci0KLSAgICBpbnQgcmV0OwotICAgIG1iZWR0bHNfbXBpIGV4cDsKLSAgICBtYmVkdGxzX21waV9pbml0KCZleHApOwotCi0gICAgLyogdXNlIFkgdG8gc3RvcmUgaW50ZXJtZWRpYXRlIHJlc3VsdCwgYWN0dWFsbHkgdyBhYm92ZSAqLwotICAgIE1CRURUTFNfTVBJX0NISyhlY3Bfc3dfcmhzKGdycCwgWSwgWCkpOwotCi0gICAgLyogdyA9IHleMiAqLyAvKiBZIGNvbnRhaW5zIHleMiBpbnRlcm1lZGlhdGUgcmVzdWx0ICovCi0gICAgLyogZXhwID0gKChwKzEpLzQpICovCi0gICAgTUJFRFRMU19NUElfQ0hLKG1iZWR0bHNfbXBpX2FkZF9pbnQoJmV4cCwgJmdycC0+UCwgMSkpOwotICAgIE1CRURUTFNfTVBJX0NISyhtYmVkdGxzX21waV9zaGlmdF9yKCZleHAsIDIpKTsKLSAgICAvKiBzcXJ0KHcpID0gd14oKHArMSkvNCkgbW9kIHAgICAoZm9yIHByaW1lIHAgd2hlcmUgcCA9IDMgbW9kIDQpICovCi0gICAgTUJFRFRMU19NUElfQ0hLKG1iZWR0bHNfbXBpX2V4cF9tb2QoWSwgWSAvKnleMiovLCAmZXhwLCAmZ3JwLT5QLCBOVUxMKSk7Ci0KLSAgICAvKiBjaGVjayBwYXJpdHkgYml0IG1hdGNoIG9yIGVsc2UgaW52ZXJ0IFkgKi8KLSAgICAvKiBUaGlzIHF1aWNrIGludmVyc2lvbiBpbXBsZW1lbnRhdGlvbiBpcyB2YWxpZCBiZWNhdXNlIFkgIT0gMCBmb3IgYWxsCi0gICAgICogU2hvcnQgV2VpZXJzdHJhc3MgY3VydmVzIHN1cHBvcnRlZCBieSBtYmVkdGxzLCBhcyBlYWNoIHN1cHBvcnRlZCBjdXJ2ZQotICAgICAqIGhhcyBhbiBvcmRlciB0aGF0IGlzIGEgbGFyZ2UgcHJpbWUsIHNvIGVhY2ggc3VwcG9ydGVkIGN1cnZlIGRvZXMgbm90Ci0gICAgICogaGF2ZSBhbnkgcG9pbnQgb2Ygb3JkZXIgMiwgYW5kIGEgcG9pbnQgd2l0aCBZID09IDAgd291bGQgYmUgb2Ygb3JkZXIgMiAqLwotICAgIGlmIChtYmVkdGxzX21waV9nZXRfYml0KFksIDApICE9IHBhcml0eV9iaXQpIHsKLSAgICAgICAgTUJFRFRMU19NUElfQ0hLKG1iZWR0bHNfbXBpX3N1Yl9tcGkoWSwgJmdycC0+UCwgWSkpOwotICAgIH0KLQotY2xlYW51cDoKLQotICAgIG1iZWR0bHNfbXBpX2ZyZWUoJmV4cCk7Ci0gICAgcmV0dXJuIHJldDsKLX0KLSNlbmRpZiAvKiBNQkVEVExTX0VDUF9TSE9SVF9XRUlFUlNUUkFTU19FTkFCTEVEICovCi0KLSNpZiBkZWZpbmVkKE1CRURUTFNfRUNQX0MpCi0jaWYgZGVmaW5lZChNQkVEVExTX0VDUF9TSE9SVF9XRUlFUlNUUkFTU19FTkFCTEVEKQotLyoKLSAqIEZvciBjdXJ2ZXMgaW4gc2hvcnQgV2VpZXJzdHJhc3MgZm9ybSwgd2UgZG8gYWxsIHRoZSBpbnRlcm5hbCBvcGVyYXRpb25zIGluCi0gKiBKYWNvYmlhbiBjb29yZGluYXRlcy4KLSAqCi0gKiBGb3IgbXVsdGlwbGljYXRpb24sIHdlJ2xsIHVzZSBhIGNvbWIgbWV0aG9kIHdpdGggY291bnRlcm1lYXN1cmVzIGFnYWluc3QKLSAqIFNQQSwgaGVuY2UgdGltaW5nIGF0dGFja3MuCi0gKi8KLQotLyoKLSAqIE5vcm1hbGl6ZSBqYWNvYmlhbiBjb29yZGluYXRlcyBzbyB0aGF0IFogPT0gMCB8fCBaID09IDEgIChHRUNDIDMuMi4xKQotICogQ29zdDogMU4gOj0gMUkgKyAzTSArIDFTCi0gKi8KLXN0YXRpYyBpbnQgZWNwX25vcm1hbGl6ZV9qYWMoY29uc3QgbWJlZHRsc19lY3BfZ3JvdXAgKmdycCwgbWJlZHRsc19lY3BfcG9pbnQgKnB0KQotewotICAgIGlmIChNUElfRUNQX0NNUF9JTlQoJnB0LT5aLCAwKSA9PSAwKSB7Ci0gICAgICAgIHJldHVybiAwOwotICAgIH0KLQotI2lmIGRlZmluZWQoTUJFRFRMU19FQ1BfTk9STUFMSVpFX0pBQ19BTFQpCi0gICAgaWYgKG1iZWR0bHNfaW50ZXJuYWxfZWNwX2dycF9jYXBhYmxlKGdycCkpIHsKLSAgICAgICAgcmV0dXJuIG1iZWR0bHNfaW50ZXJuYWxfZWNwX25vcm1hbGl6ZV9qYWMoZ3JwLCBwdCk7Ci0gICAgfQotI2VuZGlmIC8qIE1CRURUTFNfRUNQX05PUk1BTElaRV9KQUNfQUxUICovCi0KLSNpZiBkZWZpbmVkKE1CRURUTFNfRUNQX05PX0ZBTExCQUNLKSAmJiBkZWZpbmVkKE1CRURUTFNfRUNQX05PUk1BTElaRV9KQUNfQUxUKQotICAgIHJldHVybiBNQkVEVExTX0VSUl9FQ1BfRkVBVFVSRV9VTkFWQUlMQUJMRTsKLSNlbHNlCi0gICAgaW50IHJldCA9IE1CRURUTFNfRVJSX0VSUk9SX0NPUlJVUFRJT05fREVURUNURUQ7Ci0gICAgbWJlZHRsc19tcGkgVDsKLSAgICBtYmVkdGxzX21waV9pbml0KCZUKTsKLQotICAgIE1QSV9FQ1BfSU5WKCZULCAgICAgICAmcHQtPlopOyAgICAgICAgICAgIC8qIFQgICA8LSAgICAgICAgICAxIC8gWiAgICovCi0gICAgTVBJX0VDUF9NVUwoJnB0LT5ZLCAgICZwdC0+WSwgICAgICZUKTsgICAgLyogWScgIDwtIFkqVCAgICA9IFkgLyBaICAgKi8KLSAgICBNUElfRUNQX1NRUigmVCwgICAgICAgJlQpOyAgICAgICAgICAgICAgICAvKiBUICAgPC0gVF4yICAgID0gMSAvIFpeMiAqLwotICAgIE1QSV9FQ1BfTVVMKCZwdC0+WCwgICAmcHQtPlgsICAgICAmVCk7ICAgIC8qIFggICA8LSBYICAqIFQgPSBYIC8gWl4yICovCi0gICAgTVBJX0VDUF9NVUwoJnB0LT5ZLCAgICZwdC0+WSwgICAgICZUKTsgICAgLyogWScnIDwtIFknICogVCA9IFkgLyBaXjMgKi8KLQotICAgIE1QSV9FQ1BfTFNFVCgmcHQtPlosIDEpOwotCi1jbGVhbnVwOgotCi0gICAgbWJlZHRsc19tcGlfZnJlZSgmVCk7Ci0KLSAgICByZXR1cm4gcmV0OwotI2VuZGlmIC8qICFkZWZpbmVkKE1CRURUTFNfRUNQX05PX0ZBTExCQUNLKSB8fCAhZGVmaW5lZChNQkVEVExTX0VDUF9OT1JNQUxJWkVfSkFDX0FMVCkgKi8KLX0KLQotLyoKLSAqIE5vcm1hbGl6ZSBqYWNvYmlhbiBjb29yZGluYXRlcyBvZiBhbiBhcnJheSBvZiAocG9pbnRlcnMgdG8pIHBvaW50cywKLSAqIHVzaW5nIE1vbnRnb21lcnkncyB0cmljayB0byBwZXJmb3JtIG9ubHkgb25lIGludmVyc2lvbiBtb2QgUC4KLSAqIChTZWUgZm9yIGV4YW1wbGUgQ29oZW4ncyAiQSBDb3Vyc2UgaW4gQ29tcHV0YXRpb25hbCBBbGdlYnJhaWMgTnVtYmVyCi0gKiBUaGVvcnkiLCBBbGdvcml0aG0gMTAuMy40LikKLSAqCi0gKiBXYXJuaW5nOiBmYWlscyAocmV0dXJuaW5nIGFuIGVycm9yKSBpZiBvbmUgb2YgdGhlIHBvaW50cyBpcyB6ZXJvIQotICogVGhpcyBzaG91bGQgbmV2ZXIgaGFwcGVuLCBzZWUgY2hvaWNlIG9mIHcgaW4gZWNwX211bF9jb21iKCkuCi0gKgotICogQ29zdDogMU4odCkgOj0gMUkgKyAoNnQgLSAzKU0gKyAxUwotICovCi1zdGF0aWMgaW50IGVjcF9ub3JtYWxpemVfamFjX21hbnkoY29uc3QgbWJlZHRsc19lY3BfZ3JvdXAgKmdycCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYmVkdGxzX2VjcF9wb2ludCAqVFtdLCBzaXplX3QgVF9zaXplKQotewotICAgIGlmIChUX3NpemUgPCAyKSB7Ci0gICAgICAgIHJldHVybiBlY3Bfbm9ybWFsaXplX2phYyhncnAsICpUKTsKLSAgICB9Ci0KLSNpZiBkZWZpbmVkKE1CRURUTFNfRUNQX05PUk1BTElaRV9KQUNfTUFOWV9BTFQpCi0gICAgaWYgKG1iZWR0bHNfaW50ZXJuYWxfZWNwX2dycF9jYXBhYmxlKGdycCkpIHsKLSAgICAgICAgcmV0dXJuIG1iZWR0bHNfaW50ZXJuYWxfZWNwX25vcm1hbGl6ZV9qYWNfbWFueShncnAsIFQsIFRfc2l6ZSk7Ci0gICAgfQotI2VuZGlmCi0KLSNpZiBkZWZpbmVkKE1CRURUTFNfRUNQX05PX0ZBTExCQUNLKSAmJiBkZWZpbmVkKE1CRURUTFNfRUNQX05PUk1BTElaRV9KQUNfTUFOWV9BTFQpCi0gICAgcmV0dXJuIE1CRURUTFNfRVJSX0VDUF9GRUFUVVJFX1VOQVZBSUxBQkxFOwotI2Vsc2UKLSAgICBpbnQgcmV0ID0gTUJFRFRMU19FUlJfRVJST1JfQ09SUlVQVElPTl9ERVRFQ1RFRDsKLSAgICBzaXplX3QgaTsKLSAgICBtYmVkdGxzX21waSAqYywgdDsKLQotICAgIGlmICgoYyA9IG1iZWR0bHNfY2FsbG9jKFRfc2l6ZSwgc2l6ZW9mKG1iZWR0bHNfbXBpKSkpID09IE5VTEwpIHsKLSAgICAgICAgcmV0dXJuIE1CRURUTFNfRVJSX0VDUF9BTExPQ19GQUlMRUQ7Ci0gICAgfQotCi0gICAgbWJlZHRsc19tcGlfaW5pdCgmdCk7Ci0KLSAgICBtcGlfaW5pdF9tYW55KGMsIFRfc2l6ZSk7Ci0gICAgLyoKLSAgICAgKiBjW2ldID0gWl8wICogLi4uICogWl9pLCAgIGkgPSAwLC4uLG4gOj0gVF9zaXplLTEKLSAgICAgKi8KLSAgICBNUElfRUNQX01PVigmY1swXSwgJlRbMF0tPlopOwotICAgIGZvciAoaSA9IDE7IGkgPCBUX3NpemU7IGkrKykgewotICAgICAgICBNUElfRUNQX01VTCgmY1tpXSwgJmNbaS0xXSwgJlRbaV0tPlopOwotICAgIH0KLQotICAgIC8qCi0gICAgICogY1tuXSA9IDEgLyAoWl8wICogLi4uICogWl9uKSBtb2QgUAotICAgICAqLwotICAgIE1QSV9FQ1BfSU5WKCZjW1Rfc2l6ZS0xXSwgJmNbVF9zaXplLTFdKTsKLQotICAgIGZvciAoaSA9IFRfc2l6ZSAtIDE7OyBpLS0pIHsKLSAgICAgICAgLyogQXQgdGhlIHN0YXJ0IG9mIGl0ZXJhdGlvbiBpIChub3RlIHRoYXQgaSBkZWNyZW1lbnRzKSwgd2UgaGF2ZQotICAgICAgICAgKiAtIGNbal0gPSBaXzAgKiAuLi4uICogWl9qICAgICAgICBmb3IgaiAgPCBpLAotICAgICAgICAgKiAtIGNbal0gPSAxIC8gKFpfMCAqIC4uLi4gKiBaX2opICBmb3IgaiA9PSBpLAotICAgICAgICAgKgotICAgICAgICAgKiBUaGlzIGlzIG1haW50YWluZWQgdmlhCi0gICAgICAgICAqIC0gY1tpLTFdIDwtIGNbaV0gKiBaX2kKLSAgICAgICAgICoKLSAgICAgICAgICogV2UgYWxzbyBkZXJpdmUgMS9aX2kgPSBjW2ldICogY1tpLTFdIGZvciBpPjAgYW5kIHVzZSB0aGF0Ci0gICAgICAgICAqIHRvIGRvIHRoZSBhY3R1YWwgbm9ybWFsaXphdGlvbi4gRm9yIGk9PTAsIHdlIGFscmVhZHkgaGF2ZQotICAgICAgICAgKiBjWzBdID0gMSAvIFpfMC4KLSAgICAgICAgICovCi0KLSAgICAgICAgaWYgKGkgPiAwKSB7Ci0gICAgICAgICAgICAvKiBDb21wdXRlIDEvWl9pIGFuZCBlc3RhYmxpc2ggaW52YXJpYW50IGZvciB0aGUgbmV4dCBpdGVyYXRpb24uICovCi0gICAgICAgICAgICBNUElfRUNQX01VTCgmdCwgICAgICAmY1tpXSwgJmNbaS0xXSk7Ci0gICAgICAgICAgICBNUElfRUNQX01VTCgmY1tpLTFdLCAmY1tpXSwgJlRbaV0tPlopOwotICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgTVBJX0VDUF9NT1YoJnQsICZjWzBdKTsKLSAgICAgICAgfQotCi0gICAgICAgIC8qIE5vdyB0IGhvbGRzIDEgLyBaX2k7IG5vcm1hbGl6ZSBhcyBpbiBlY3Bfbm9ybWFsaXplX2phYygpICovCi0gICAgICAgIE1QSV9FQ1BfTVVMKCZUW2ldLT5ZLCAmVFtpXS0+WSwgJnQpOwotICAgICAgICBNUElfRUNQX1NRUigmdCwgICAgICAgJnQpOwotICAgICAgICBNUElfRUNQX01VTCgmVFtpXS0+WCwgJlRbaV0tPlgsICZ0KTsKLSAgICAgICAgTVBJX0VDUF9NVUwoJlRbaV0tPlksICZUW2ldLT5ZLCAmdCk7Ci0KLSAgICAgICAgLyoKLSAgICAgICAgICogUG9zdC1wcmVjZXNzaW5nOiByZWNsYWltIHNvbWUgbWVtb3J5IGJ5IHNocmlua2luZyBjb29yZGluYXRlcwotICAgICAgICAgKiAtIG5vdCBzdG9yaW5nIFogKGFsd2F5cyAxKQotICAgICAgICAgKiAtIHNocmlua2luZyBvdGhlciBjb29yZGluYXRlcywgYnV0IHN0aWxsIGtlZXBpbmcgdGhlIHNhbWUgbnVtYmVyIG9mCi0gICAgICAgICAqICAgbGltYnMgYXMgUCwgYXMgb3RoZXJ3aXNlIGl0IHdpbGwgdG9vIGxpa2VseSBiZSByZWdyb3duIHRvbyBmYXN0LgotICAgICAgICAgKi8KLSAgICAgICAgTUJFRFRMU19NUElfQ0hLKG1iZWR0bHNfbXBpX3NocmluaygmVFtpXS0+WCwgZ3JwLT5QLm4pKTsKLSAgICAgICAgTUJFRFRMU19NUElfQ0hLKG1iZWR0bHNfbXBpX3NocmluaygmVFtpXS0+WSwgZ3JwLT5QLm4pKTsKLQotICAgICAgICBNUElfRUNQX0xTRVQoJlRbaV0tPlosIDEpOwotCi0gICAgICAgIGlmIChpID09IDApIHsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICB9Ci0gICAgfQotCi1jbGVhbnVwOgotCi0gICAgbWJlZHRsc19tcGlfZnJlZSgmdCk7Ci0gICAgbXBpX2ZyZWVfbWFueShjLCBUX3NpemUpOwotICAgIG1iZWR0bHNfZnJlZShjKTsKLQotICAgIHJldHVybiByZXQ7Ci0jZW5kaWYgLyogIWRlZmluZWQoTUJFRFRMU19FQ1BfTk9fRkFMTEJBQ0spIHx8ICFkZWZpbmVkKE1CRURUTFNfRUNQX05PUk1BTElaRV9KQUNfTUFOWV9BTFQpICovCi19Ci0KLS8qCi0gKiBDb25kaXRpb25hbCBwb2ludCBpbnZlcnNpb246IFEgLT4gLVEgPSAoUS5YLCAtUS5ZLCBRLlopIHdpdGhvdXQgbGVhay4KLSAqICJpbnYiIG11c3QgYmUgMCAoZG9uJ3QgaW52ZXJ0KSBvciAxIChpbnZlcnQpIG9yIHRoZSByZXN1bHQgd2lsbCBiZSBpbnZhbGlkCi0gKi8KLXN0YXRpYyBpbnQgZWNwX3NhZmVfaW52ZXJ0X2phYyhjb25zdCBtYmVkdGxzX2VjcF9ncm91cCAqZ3JwLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1iZWR0bHNfZWNwX3BvaW50ICpRLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGNoYXIgaW52KQotewotICAgIGludCByZXQgPSBNQkVEVExTX0VSUl9FUlJPUl9DT1JSVVBUSU9OX0RFVEVDVEVEOwotICAgIG1iZWR0bHNfbXBpIHRtcDsKLSAgICBtYmVkdGxzX21waV9pbml0KCZ0bXApOwotCi0gICAgTVBJX0VDUF9DT05EX05FRygmUS0+WSwgaW52KTsKLQotY2xlYW51cDoKLSAgICBtYmVkdGxzX21waV9mcmVlKCZ0bXApOwotICAgIHJldHVybiByZXQ7Ci19Ci0KLS8qCi0gKiBQb2ludCBkb3VibGluZyBSID0gMiBQLCBKYWNvYmlhbiBjb29yZGluYXRlcwotICoKLSAqIEJhc2VkIG9uIGh0dHA6Ly93d3cuaHlwZXJlbGxpcHRpYy5vcmcvRUZEL2cxcC9hdXRvLXNob3J0dy1qYWNvYmlhbi5odG1sI2RvdWJsaW5nLWRibC0xOTk4LWNtby0yIC4KLSAqCi0gKiBXZSBmb2xsb3cgdGhlIHZhcmlhYmxlIG5hbWluZyBmYWlybHkgY2xvc2VseS4gVGhlIGZvcm11bGEgdmFyaWF0aW9ucyB0aGF0IHRyYWRlIGEgTVVMIGZvciBhIFNRUgotICogKHBsdXMgYSBmZXcgQUREcykgYXJlbid0IHVzZWZ1bCBhcyBvdXIgYmlnbnVtIGltcGxlbWVudGF0aW9uIGRvZXNuJ3QgZGlzdGluZ3Vpc2ggc3F1YXJpbmcuCi0gKgotICogU3RhbmRhcmQgb3B0aW1pemF0aW9ucyBhcmUgYXBwbGllZCB3aGVuIGN1cnZlIHBhcmFtZXRlciBBIGlzIG9uZSBvZiB7IDAsIC0zIH0uCi0gKgotICogQ29zdDogMUQgOj0gM00gKyA0UyAgICAgICAgICAoQSA9PSAgMCkKLSAqICAgICAgICAgICAgIDRNICsgNFMgICAgICAgICAgKEEgPT0gLTMpCi0gKiAgICAgICAgICAgICAzTSArIDZTICsgMWEgICAgIG90aGVyd2lzZQotICovCi1zdGF0aWMgaW50IGVjcF9kb3VibGVfamFjKGNvbnN0IG1iZWR0bHNfZWNwX2dyb3VwICpncnAsIG1iZWR0bHNfZWNwX3BvaW50ICpSLAotICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBtYmVkdGxzX2VjcF9wb2ludCAqUCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgbWJlZHRsc19tcGkgdG1wWzRdKQotewotI2lmIGRlZmluZWQoTUJFRFRMU19TRUxGX1RFU1QpCi0gICAgZGJsX2NvdW50Kys7Ci0jZW5kaWYKLQotI2lmIGRlZmluZWQoTUJFRFRMU19FQ1BfRE9VQkxFX0pBQ19BTFQpCi0gICAgaWYgKG1iZWR0bHNfaW50ZXJuYWxfZWNwX2dycF9jYXBhYmxlKGdycCkpIHsKLSAgICAgICAgcmV0dXJuIG1iZWR0bHNfaW50ZXJuYWxfZWNwX2RvdWJsZV9qYWMoZ3JwLCBSLCBQKTsKLSAgICB9Ci0jZW5kaWYgLyogTUJFRFRMU19FQ1BfRE9VQkxFX0pBQ19BTFQgKi8KLQotI2lmIGRlZmluZWQoTUJFRFRMU19FQ1BfTk9fRkFMTEJBQ0spICYmIGRlZmluZWQoTUJFRFRMU19FQ1BfRE9VQkxFX0pBQ19BTFQpCi0gICAgcmV0dXJuIE1CRURUTFNfRVJSX0VDUF9GRUFUVVJFX1VOQVZBSUxBQkxFOwotI2Vsc2UKLSAgICBpbnQgcmV0ID0gTUJFRFRMU19FUlJfRVJST1JfQ09SUlVQVElPTl9ERVRFQ1RFRDsKLQotICAgIC8qIFNwZWNpYWwgY2FzZSBmb3IgQSA9IC0zICovCi0gICAgaWYgKG1iZWR0bHNfZWNwX2dyb3VwX2FfaXNfbWludXNfMyhncnApKSB7Ci0gICAgICAgIC8qIHRtcFswXSA8LSBNID0gMyhYICsgWl4yKShYIC0gWl4yKSAqLwotICAgICAgICBNUElfRUNQX1NRUigmdG1wWzFdLCAgJlAtPlopOwotICAgICAgICBNUElfRUNQX0FERCgmdG1wWzJdLCAgJlAtPlgsICAmdG1wWzFdKTsKLSAgICAgICAgTVBJX0VDUF9TVUIoJnRtcFszXSwgICZQLT5YLCAgJnRtcFsxXSk7Ci0gICAgICAgIE1QSV9FQ1BfTVVMKCZ0bXBbMV0sICAmdG1wWzJdLCAgICAgJnRtcFszXSk7Ci0gICAgICAgIE1QSV9FQ1BfTVVMX0lOVCgmdG1wWzBdLCAgJnRtcFsxXSwgICAgIDMpOwotICAgIH0gZWxzZSB7Ci0gICAgICAgIC8qIHRtcFswXSA8LSBNID0gMy5YXjIgKyBBLlpeNCAqLwotICAgICAgICBNUElfRUNQX1NRUigmdG1wWzFdLCAgJlAtPlgpOwotICAgICAgICBNUElfRUNQX01VTF9JTlQoJnRtcFswXSwgICZ0bXBbMV0sICAzKTsKLQotICAgICAgICAvKiBPcHRpbWl6ZSBhd2F5IGZvciAia29ibGl0eiIgY3VydmVzIHdpdGggQSA9IDAgKi8KLSAgICAgICAgaWYgKE1QSV9FQ1BfQ01QX0lOVCgmZ3JwLT5BLCAwKSAhPSAwKSB7Ci0gICAgICAgICAgICAvKiBNICs9IEEuWl40ICovCi0gICAgICAgICAgICBNUElfRUNQX1NRUigmdG1wWzFdLCAgJlAtPlopOwotICAgICAgICAgICAgTVBJX0VDUF9TUVIoJnRtcFsyXSwgICZ0bXBbMV0pOwotICAgICAgICAgICAgTVBJX0VDUF9NVUwoJnRtcFsxXSwgICZ0bXBbMl0sICAgICAmZ3JwLT5BKTsKLSAgICAgICAgICAgIE1QSV9FQ1BfQUREKCZ0bXBbMF0sICAmdG1wWzBdLCAgICAgJnRtcFsxXSk7Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICAvKiB0bXBbMV0gPC0gUyA9IDQuWC5ZXjIgKi8KLSAgICBNUElfRUNQX1NRUigmdG1wWzJdLCAgJlAtPlkpOwotICAgIE1QSV9FQ1BfU0hJRlRfTCgmdG1wWzJdLCAgMSk7Ci0gICAgTVBJX0VDUF9NVUwoJnRtcFsxXSwgICZQLT5YLCAmdG1wWzJdKTsKLSAgICBNUElfRUNQX1NISUZUX0woJnRtcFsxXSwgIDEpOwotCi0gICAgLyogdG1wWzNdIDwtIFUgPSA4LlleNCAqLwotICAgIE1QSV9FQ1BfU1FSKCZ0bXBbM10sICAmdG1wWzJdKTsKLSAgICBNUElfRUNQX1NISUZUX0woJnRtcFszXSwgIDEpOwotCi0gICAgLyogdG1wWzJdIDwtIFQgPSBNXjIgLSAyLlMgKi8KLSAgICBNUElfRUNQX1NRUigmdG1wWzJdLCAgJnRtcFswXSk7Ci0gICAgTVBJX0VDUF9TVUIoJnRtcFsyXSwgICZ0bXBbMl0sICZ0bXBbMV0pOwotICAgIE1QSV9FQ1BfU1VCKCZ0bXBbMl0sICAmdG1wWzJdLCAmdG1wWzFdKTsKLQotICAgIC8qIHRtcFsxXSA8LSBTID0gTShTIC0gVCkgLSBVICovCi0gICAgTVBJX0VDUF9TVUIoJnRtcFsxXSwgICZ0bXBbMV0sICAgICAmdG1wWzJdKTsKLSAgICBNUElfRUNQX01VTCgmdG1wWzFdLCAgJnRtcFsxXSwgICAgICZ0bXBbMF0pOwotICAgIE1QSV9FQ1BfU1VCKCZ0bXBbMV0sICAmdG1wWzFdLCAgICAgJnRtcFszXSk7Ci0KLSAgICAvKiB0bXBbM10gPC0gVSA9IDIuWS5aICovCi0gICAgTVBJX0VDUF9NVUwoJnRtcFszXSwgICZQLT5ZLCAgJlAtPlopOwotICAgIE1QSV9FQ1BfU0hJRlRfTCgmdG1wWzNdLCAgMSk7Ci0KLSAgICAvKiBTdG9yZSByZXN1bHRzICovCi0gICAgTVBJX0VDUF9NT1YoJlItPlgsICZ0bXBbMl0pOwotICAgIE1QSV9FQ1BfTU9WKCZSLT5ZLCAmdG1wWzFdKTsKLSAgICBNUElfRUNQX01PVigmUi0+WiwgJnRtcFszXSk7Ci0KLWNsZWFudXA6Ci0KLSAgICByZXR1cm4gcmV0OwotI2VuZGlmIC8qICFkZWZpbmVkKE1CRURUTFNfRUNQX05PX0ZBTExCQUNLKSB8fCAhZGVmaW5lZChNQkVEVExTX0VDUF9ET1VCTEVfSkFDX0FMVCkgKi8KLX0KLQotLyoKLSAqIEFkZGl0aW9uOiBSID0gUCArIFEsIG1peGVkIGFmZmluZS1KYWNvYmlhbiBjb29yZGluYXRlcyAoR0VDQyAzLjIyKQotICoKLSAqIFRoZSBjb29yZGluYXRlcyBvZiBRIG11c3QgYmUgbm9ybWFsaXplZCAoPSBhZmZpbmUpLAotICogYnV0IHRob3NlIG9mIFAgZG9uJ3QgbmVlZCB0by4gUiBpcyBub3Qgbm9ybWFsaXplZC4KLSAqCi0gKiBQLFEsUiBtYXkgYWxpYXMsIGJ1dCBvbmx5IGF0IHRoZSBsZXZlbCBvZiBFQyBwb2ludHM6IHRoZXkgbXVzdCBiZSBlaXRoZXIKLSAqIGVxdWFsIGFzIHBvaW50ZXJzLCBvciBkaXNqb2ludCAoaW5jbHVkaW5nIHRoZSBjb29yZGluYXRlIGRhdGEgYnVmZmVycykuCi0gKiBGaW5lLWdyYWluZWQgYWxpYXNpbmcgYXQgdGhlIGxldmVsIG9mIGNvb3JkaW5hdGVzIGlzIG5vdCBzdXBwb3J0ZWQuCi0gKgotICogU3BlY2lhbCBjYXNlczogKDEpIFAgb3IgUSBpcyB6ZXJvLCAoMikgUiBpcyB6ZXJvLCAoMykgUCA9PSBRLgotICogTm9uZSBvZiB0aGVzZSBjYXNlcyBjYW4gaGFwcGVuIGFzIGludGVybWVkaWF0ZSBzdGVwIGluIGVjcF9tdWxfY29tYigpOgotICogLSBhdCBlYWNoIHN0ZXAsIFAsIFEgYW5kIFIgYXJlIG11bHRpcGxlcyBvZiB0aGUgYmFzZSBwb2ludCwgdGhlIGZhY3RvcgotICogICBiZWluZyBsZXNzIHRoYW4gaXRzIG9yZGVyLCBzbyBub25lIG9mIHRoZW0gaXMgemVybzsKLSAqIC0gUSBpcyBhbiBvZGQgbXVsdGlwbGUgb2YgdGhlIGJhc2UgcG9pbnQsIFAgYW4gZXZlbiBtdWx0aXBsZSwKLSAqICAgZHVlIHRvIHRoZSBjaG9pY2Ugb2YgcHJlY29tcHV0ZWQgcG9pbnRzIGluIHRoZSBtb2RpZmllZCBjb21iIG1ldGhvZC4KLSAqIFNvIGJyYW5jaGVzIGZvciB0aGVzZSBjYXNlcyBkbyBub3QgbGVhayBzZWNyZXQgaW5mb3JtYXRpb24uCi0gKgotICogQ29zdDogMUEgOj0gOE0gKyAzUwotICovCi1zdGF0aWMgaW50IGVjcF9hZGRfbWl4ZWQoY29uc3QgbWJlZHRsc19lY3BfZ3JvdXAgKmdycCwgbWJlZHRsc19lY3BfcG9pbnQgKlIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbWJlZHRsc19lY3BfcG9pbnQgKlAsIGNvbnN0IG1iZWR0bHNfZWNwX3BvaW50ICpRLAotICAgICAgICAgICAgICAgICAgICAgICAgIG1iZWR0bHNfbXBpIHRtcFs0XSkKLXsKLSNpZiBkZWZpbmVkKE1CRURUTFNfU0VMRl9URVNUKQotICAgIGFkZF9jb3VudCsrOwotI2VuZGlmCi0KLSNpZiBkZWZpbmVkKE1CRURUTFNfRUNQX0FERF9NSVhFRF9BTFQpCi0gICAgaWYgKG1iZWR0bHNfaW50ZXJuYWxfZWNwX2dycF9jYXBhYmxlKGdycCkpIHsKLSAgICAgICAgcmV0dXJuIG1iZWR0bHNfaW50ZXJuYWxfZWNwX2FkZF9taXhlZChncnAsIFIsIFAsIFEpOwotICAgIH0KLSNlbmRpZiAvKiBNQkVEVExTX0VDUF9BRERfTUlYRURfQUxUICovCi0KLSNpZiBkZWZpbmVkKE1CRURUTFNfRUNQX05PX0ZBTExCQUNLKSAmJiBkZWZpbmVkKE1CRURUTFNfRUNQX0FERF9NSVhFRF9BTFQpCi0gICAgcmV0dXJuIE1CRURUTFNfRVJSX0VDUF9GRUFUVVJFX1VOQVZBSUxBQkxFOwotI2Vsc2UKLSAgICBpbnQgcmV0ID0gTUJFRFRMU19FUlJfRVJST1JfQ09SUlVQVElPTl9ERVRFQ1RFRDsKLQotICAgIC8qIE5PVEU6IEFsaWFzaW5nIGJldHdlZW4gaW5wdXQgYW5kIG91dHB1dCBpcyBhbGxvd2VkLCBzbyBvbmUgaGFzIHRvIG1ha2UKLSAgICAgKiAgICAgICBzdXJlIHRoYXQgYXQgdGhlIHBvaW50IFgsWSxaIGFyZSB3cml0dGVuLCB7UCxRfS0+e1gsWSxafSBhcmUgbm8KLSAgICAgKiAgICAgICBsb25nZXIgcmVhZCBmcm9tLiAqLwotICAgIG1iZWR0bHNfbXBpICogY29uc3QgWCA9ICZSLT5YOwotICAgIG1iZWR0bHNfbXBpICogY29uc3QgWSA9ICZSLT5ZOwotICAgIG1iZWR0bHNfbXBpICogY29uc3QgWiA9ICZSLT5aOwotCi0gICAgaWYgKCFNUElfRUNQX1ZBTElEKCZRLT5aKSkgewotICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfRUNQX0JBRF9JTlBVVF9EQVRBOwotICAgIH0KLQotICAgIC8qCi0gICAgICogVHJpdmlhbCBjYXNlczogUCA9PSAwIG9yIFEgPT0gMCAoY2FzZSAxKQotICAgICAqLwotICAgIGlmIChNUElfRUNQX0NNUF9JTlQoJlAtPlosIDApID09IDApIHsKLSAgICAgICAgcmV0dXJuIG1iZWR0bHNfZWNwX2NvcHkoUiwgUSk7Ci0gICAgfQotCi0gICAgaWYgKE1QSV9FQ1BfQ01QX0lOVCgmUS0+WiwgMCkgPT0gMCkgewotICAgICAgICByZXR1cm4gbWJlZHRsc19lY3BfY29weShSLCBQKTsKLSAgICB9Ci0KLSAgICAvKgotICAgICAqIE1ha2Ugc3VyZSBRIGNvb3JkaW5hdGVzIGFyZSBub3JtYWxpemVkCi0gICAgICovCi0gICAgaWYgKE1QSV9FQ1BfQ01QX0lOVCgmUS0+WiwgMSkgIT0gMCkgewotICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfRUNQX0JBRF9JTlBVVF9EQVRBOwotICAgIH0KLQotICAgIE1QSV9FQ1BfU1FSKCZ0bXBbMF0sICZQLT5aKTsKLSAgICBNUElfRUNQX01VTCgmdG1wWzFdLCAmdG1wWzBdLCAmUC0+Wik7Ci0gICAgTVBJX0VDUF9NVUwoJnRtcFswXSwgJnRtcFswXSwgJlEtPlgpOwotICAgIE1QSV9FQ1BfTVVMKCZ0bXBbMV0sICZ0bXBbMV0sICZRLT5ZKTsKLSAgICBNUElfRUNQX1NVQigmdG1wWzBdLCAmdG1wWzBdLCAmUC0+WCk7Ci0gICAgTVBJX0VDUF9TVUIoJnRtcFsxXSwgJnRtcFsxXSwgJlAtPlkpOwotCi0gICAgLyogU3BlY2lhbCBjYXNlcyAoMikgYW5kICgzKSAqLwotICAgIGlmIChNUElfRUNQX0NNUF9JTlQoJnRtcFswXSwgMCkgPT0gMCkgewotICAgICAgICBpZiAoTVBJX0VDUF9DTVBfSU5UKCZ0bXBbMV0sIDApID09IDApIHsKLSAgICAgICAgICAgIHJldCA9IGVjcF9kb3VibGVfamFjKGdycCwgUiwgUCwgdG1wKTsKLSAgICAgICAgICAgIGdvdG8gY2xlYW51cDsKLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIHJldCA9IG1iZWR0bHNfZWNwX3NldF96ZXJvKFIpOwotICAgICAgICAgICAgZ290byBjbGVhbnVwOwotICAgICAgICB9Ci0gICAgfQotCi0gICAgLyoge1AsUX0tPlogbm8gbG9uZ2VyIHVzZWQsIHNvIE9LIHRvIHdyaXRlIHRvIFogZXZlbiBpZiB0aGVyZSdzIGFsaWFzaW5nLiAqLwotICAgIE1QSV9FQ1BfTVVMKFosICAgICAgICAmUC0+WiwgICAgJnRtcFswXSk7Ci0gICAgTVBJX0VDUF9TUVIoJnRtcFsyXSwgICZ0bXBbMF0pOwotICAgIE1QSV9FQ1BfTVVMKCZ0bXBbM10sICAmdG1wWzJdLCAgJnRtcFswXSk7Ci0gICAgTVBJX0VDUF9NVUwoJnRtcFsyXSwgICZ0bXBbMl0sICAmUC0+WCk7Ci0KLSAgICBNUElfRUNQX01PVigmdG1wWzBdLCAmdG1wWzJdKTsKLSAgICBNUElfRUNQX1NISUZUX0woJnRtcFswXSwgMSk7Ci0KLSAgICAvKiB7UCxRfS0+WCBubyBsb25nZXIgdXNlZCwgc28gT0sgdG8gd3JpdGUgdG8gWCBldmVuIGlmIHRoZXJlJ3MgYWxpYXNpbmcuICovCi0gICAgTVBJX0VDUF9TUVIoWCwgICAgICAgICZ0bXBbMV0pOwotICAgIE1QSV9FQ1BfU1VCKFgsICAgICAgICBYLCAgICAgICAgJnRtcFswXSk7Ci0gICAgTVBJX0VDUF9TVUIoWCwgICAgICAgIFgsICAgICAgICAmdG1wWzNdKTsKLSAgICBNUElfRUNQX1NVQigmdG1wWzJdLCAgJnRtcFsyXSwgIFgpOwotICAgIE1QSV9FQ1BfTVVMKCZ0bXBbMl0sICAmdG1wWzJdLCAgJnRtcFsxXSk7Ci0gICAgTVBJX0VDUF9NVUwoJnRtcFszXSwgICZ0bXBbM10sICAmUC0+WSk7Ci0gICAgLyoge1AsUX0tPlkgbm8gbG9uZ2VyIHVzZWQsIHNvIE9LIHRvIHdyaXRlIHRvIFkgZXZlbiBpZiB0aGVyZSdzIGFsaWFzaW5nLiAqLwotICAgIE1QSV9FQ1BfU1VCKFksICAgICAmdG1wWzJdLCAgICAgJnRtcFszXSk7Ci0KLWNsZWFudXA6Ci0KLSAgICByZXR1cm4gcmV0OwotI2VuZGlmIC8qICFkZWZpbmVkKE1CRURUTFNfRUNQX05PX0ZBTExCQUNLKSB8fCAhZGVmaW5lZChNQkVEVExTX0VDUF9BRERfTUlYRURfQUxUKSAqLwotfQotCi0vKgotICogUmFuZG9taXplIGphY29iaWFuIGNvb3JkaW5hdGVzOgotICogKFgsIFksIFopIC0+IChsXjIgWCwgbF4zIFksIGwgWikgZm9yIHJhbmRvbSBsCi0gKiBUaGlzIGlzIHNvcnQgb2YgdGhlIHJldmVyc2Ugb3BlcmF0aW9uIG9mIGVjcF9ub3JtYWxpemVfamFjKCkuCi0gKgotICogVGhpcyBjb3VudGVybWVhc3VyZSB3YXMgZmlyc3Qgc3VnZ2VzdGVkIGluIFsyXS4KLSAqLwotc3RhdGljIGludCBlY3BfcmFuZG9taXplX2phYyhjb25zdCBtYmVkdGxzX2VjcF9ncm91cCAqZ3JwLCBtYmVkdGxzX2VjcF9wb2ludCAqcHQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCAoKmZfcm5nKSh2b2lkICosIHVuc2lnbmVkIGNoYXIgKiwgc2l6ZV90KSwgdm9pZCAqcF9ybmcpCi17Ci0jaWYgZGVmaW5lZChNQkVEVExTX0VDUF9SQU5ET01JWkVfSkFDX0FMVCkKLSAgICBpZiAobWJlZHRsc19pbnRlcm5hbF9lY3BfZ3JwX2NhcGFibGUoZ3JwKSkgewotICAgICAgICByZXR1cm4gbWJlZHRsc19pbnRlcm5hbF9lY3BfcmFuZG9taXplX2phYyhncnAsIHB0LCBmX3JuZywgcF9ybmcpOwotICAgIH0KLSNlbmRpZiAvKiBNQkVEVExTX0VDUF9SQU5ET01JWkVfSkFDX0FMVCAqLwotCi0jaWYgZGVmaW5lZChNQkVEVExTX0VDUF9OT19GQUxMQkFDSykgJiYgZGVmaW5lZChNQkVEVExTX0VDUF9SQU5ET01JWkVfSkFDX0FMVCkKLSAgICByZXR1cm4gTUJFRFRMU19FUlJfRUNQX0ZFQVRVUkVfVU5BVkFJTEFCTEU7Ci0jZWxzZQotICAgIGludCByZXQgPSBNQkVEVExTX0VSUl9FUlJPUl9DT1JSVVBUSU9OX0RFVEVDVEVEOwotICAgIG1iZWR0bHNfbXBpIGw7Ci0KLSAgICBtYmVkdGxzX21waV9pbml0KCZsKTsKLQotICAgIC8qIEdlbmVyYXRlIGwgc3VjaCB0aGF0IDEgPCBsIDwgcCAqLwotICAgIE1QSV9FQ1BfUkFORCgmbCk7Ci0KLSAgICAvKiBaJyA9IGwgKiBaICovCi0gICAgTVBJX0VDUF9NVUwoJnB0LT5aLCAgICZwdC0+WiwgICAgICZsKTsKLQotICAgIC8qIFknID0gbCAqIFkgKi8KLSAgICBNUElfRUNQX01VTCgmcHQtPlksICAgJnB0LT5ZLCAgICAgJmwpOwotCi0gICAgLyogWCcgPSBsXjIgKiBYICovCi0gICAgTVBJX0VDUF9TUVIoJmwsICAgICAgICZsKTsKLSAgICBNUElfRUNQX01VTCgmcHQtPlgsICAgJnB0LT5YLCAgICAgJmwpOwotCi0gICAgLyogWScnID0gbF4yICogWScgPSBsXjMgKiBZICovCi0gICAgTVBJX0VDUF9NVUwoJnB0LT5ZLCAgICZwdC0+WSwgICAgICZsKTsKLQotY2xlYW51cDoKLSAgICBtYmVkdGxzX21waV9mcmVlKCZsKTsKLQotICAgIGlmIChyZXQgPT0gTUJFRFRMU19FUlJfTVBJX05PVF9BQ0NFUFRBQkxFKSB7Ci0gICAgICAgIHJldCA9IE1CRURUTFNfRVJSX0VDUF9SQU5ET01fRkFJTEVEOwotICAgIH0KLSAgICByZXR1cm4gcmV0OwotI2VuZGlmIC8qICFkZWZpbmVkKE1CRURUTFNfRUNQX05PX0ZBTExCQUNLKSB8fCAhZGVmaW5lZChNQkVEVExTX0VDUF9SQU5ET01JWkVfSkFDX0FMVCkgKi8KLX0KLQotLyoKLSAqIENoZWNrIGFuZCBkZWZpbmUgcGFyYW1ldGVycyB1c2VkIGJ5IHRoZSBjb21iIG1ldGhvZCAoc2VlIGJlbG93IGZvciBkZXRhaWxzKQotICovCi0jaWYgTUJFRFRMU19FQ1BfV0lORE9XX1NJWkUgPCAyIHx8IE1CRURUTFNfRUNQX1dJTkRPV19TSVpFID4gNwotI2Vycm9yICJNQkVEVExTX0VDUF9XSU5ET1dfU0laRSBvdXQgb2YgYm91bmRzIgotI2VuZGlmCi0KLS8qIGQgPSBjZWlsKCBuIC8gdyApICovCi0jZGVmaW5lIENPTUJfTUFYX0QgICAgICAoTUJFRFRMU19FQ1BfTUFYX0JJVFMgKyAxKSAvIDIKLQotLyogbnVtYmVyIG9mIHByZWNvbXB1dGVkIHBvaW50cyAqLwotI2RlZmluZSBDT01CX01BWF9QUkUgICAgKDEgPDwgKE1CRURUTFNfRUNQX1dJTkRPV19TSVpFIC0gMSkpCi0KLS8qCi0gKiBDb21wdXRlIHRoZSByZXByZXNlbnRhdGlvbiBvZiBtIHRoYXQgd2lsbCBiZSB1c2VkIHdpdGggb3VyIGNvbWIgbWV0aG9kLgotICoKLSAqIFRoZSBiYXNpYyBjb21iIG1ldGhvZCBpcyBkZXNjcmliZWQgaW4gR0VDQyAzLjQ0IGZvciBleGFtcGxlLiBXZSB1c2UgYQotICogbW9kaWZpZWQgdmVyc2lvbiB0aGF0IHByb3ZpZGVzIHJlc2lzdGFuY2UgdG8gU1BBIGJ5IGF2b2lkaW5nIHplcm8KLSAqIGRpZ2l0cyBpbiB0aGUgcmVwcmVzZW50YXRpb24gYXMgaW4gWzNdLiBXZSBtb2RpZnkgdGhlIG1ldGhvZCBmdXJ0aGVyIGJ5Ci0gKiByZXF1aXJpbmcgdGhhdCBhbGwgS19pIGJlIG9kZCwgd2hpY2ggaGFzIHRoZSBzbWFsbCBjb3N0IHRoYXQgb3VyCi0gKiByZXByZXNlbnRhdGlvbiB1c2VzIG9uZSBtb3JlIEtfaSwgZHVlIHRvIGNhcnJpZXMsIGJ1dCBzYXZlcyBvbiB0aGUgc2l6ZSBvZgotICogdGhlIHByZWNvbXB1dGVkIHRhYmxlLgotICoKLSAqIFN1bW1hcnkgb2YgdGhlIGNvbWIgbWV0aG9kIGFuZCBpdHMgbW9kaWZpY2F0aW9uczoKLSAqCi0gKiAtIFRoZSBnb2FsIGlzIHRvIGNvbXB1dGUgbSpQIGZvciBzb21lIHcqZC1iaXQgaW50ZWdlciBtLgotICoKLSAqIC0gVGhlIGJhc2ljIGNvbWIgbWV0aG9kIHNwbGl0cyBtIGludG8gdGhlIHctYml0IGludGVnZXJzCi0gKiAgIHhbMF0gLi4geFtkLTFdIHdoZXJlIHhbaV0gY29uc2lzdHMgb2YgdGhlIGJpdHMgaW4gbSB3aG9zZQotICogICBpbmRleCBoYXMgcmVzaWR1ZSBpIG1vZHVsbyBkLCBhbmQgY29tcHV0ZXMgbSAqIFAgYXMKLSAqICAgU1t4WzBdXSArIDIgKiBTW3hbMV1dICsgLi4gKyAyXihkLTEpIFNbeFtkLTFdXSwgd2hlcmUKLSAqICAgU1tpX3t3LTF9IC4uIGlfMF0gOj0gaV97dy0xfSAyXnsody0xKWR9IFAgKyAuLi4gKyBpXzEgMl5kIFAgKyBpXzAgUC4KLSAqCi0gKiAtIElmIGl0IGhhcHBlbnMgdGhhdCwgc2F5LCB4W2krMV09MCAoPT4gU1t4W2krMV1dPTApLCBvbmUgY2FuIHJlcGxhY2UgdGhlIHN1bSBieQotICogICAgLi4gKyAyXntpLTF9IFNbeFtpLTFdXSAtIDJeaSBTW3hbaV1dICsgMl57aSsxfSBTW3hbaV1dICsgMl57aSsyfSBTW3hbaSsyXV0gLi4sCi0gKiAgIHRoZXJlYnkgc3VjY2Vzc2l2ZWx5IGNvbnZlcnRpbmcgaXQgaW50byBhIGZvcm0gd2hlcmUgYWxsIHN1bW1hbmRzCi0gKiAgIGFyZSBub256ZXJvLCBhdCB0aGUgY29zdCBvZiBuZWdhdGl2ZSBzdW1tYW5kcy4gVGhpcyBpcyB0aGUgYmFzaWMgaWRlYSBvZiBbM10uCi0gKgotICogLSBNb3JlIGdlbmVyYWxseSwgZXZlbiBpZiB4W2krMV0gIT0gMCwgd2UgY2FuIGZpcnN0IHRyYW5zZm9ybSB0aGUgc3VtIGFzCi0gKiAgIC4uIC0gMl5pIFNbeFtpXV0gKyAyXntpKzF9ICggU1t4W2ldXSArIFNbeFtpKzFdXSApICsgMl57aSsyfSBTW3hbaSsyXV0gLi4sCi0gKiAgIGFuZCB0aGVuIHJlcGxhY2UgU1t4W2ldXSArIFNbeFtpKzFdXSA9IFNbeFtpXSBeIHhbaSsxXV0gKyAyIFNbeFtpXSAmIHhbaSsxXV0uCi0gKiAgIFBlcmZvcm1pbmcgYW5kIGl0ZXJhdGluZyB0aGlzIHByb2NlZHVyZSBmb3IgdGhvc2UgeFtpXSB0aGF0IGFyZSBldmVuCi0gKiAgIChrZWVwaW5nIHRyYWNrIG9mIGNhcnJ5KSwgd2UgY2FuIHRyYW5zZm9ybSB0aGUgb3JpZ2luYWwgc3VtIGludG8gb25lIG9mIHRoZSBmb3JtCi0gKiAgIFNbeCdbMF1dICstIDIgU1t4J1sxXV0gKy0gLi4gKy0gMl57ZC0xfSBTW3gnW2QtMV1dICsgMl5kIFNbeCdbZF1dCi0gKiAgIHdpdGggYWxsIHgnW2ldIG9kZC4gSXQgaXMgdGhlcmVmb3JlIG9ubHkgbmVjZXNzYXJ5IHRvIGtub3cgUyBhdCBvZGQgaW5kaWNlcywKLSAqICAgd2hpY2ggaXMgd2h5IHdlIGFyZSBvbmx5IGNvbXB1dGluZyBoYWxmIG9mIGl0IGluIHRoZSBmaXJzdCBwbGFjZSBpbgotICogICBlY3BfcHJlY29tcHV0ZV9jb21iIGFuZCBhY2Nlc3NpbmcgaXQgd2l0aCBpbmRleCBhYnMoaSkgLyAyIGluIGVjcF9zZWxlY3RfY29tYi4KLSAqCi0gKiAtIEZvciB0aGUgc2FrZSBvZiBjb21wYWN0bmVzcywgb25seSB0aGUgc2V2ZW4gbG93LW9yZGVyIGJpdHMgb2YgeFtpXQotICogICBhcmUgdXNlZCB0byByZXByZXNlbnQgaXRzIGFic29sdXRlIHZhbHVlIChLX2kgaW4gdGhlIHBhcGVyKSwgYW5kIHRoZSBtc2IKLSAqICAgb2YgeFtpXSBlbmNvZGVzIHRoZSBzaWduIChzX2kgaW4gdGhlIHBhcGVyKTogaXQgaXMgc2V0IGlmIGFuZCBvbmx5IGlmCi0gKiAgIGlmIHNfaSA9PSAtMTsKLSAqCi0gKiBDYWxsaW5nIGNvbnZlbnRpb25zOgotICogLSB4IGlzIGFuIGFycmF5IG9mIHNpemUgZCArIDEKLSAqIC0gdyBpcyB0aGUgc2l6ZSwgaWUgbnVtYmVyIG9mIHRlZXRoLCBvZiB0aGUgY29tYiwgYW5kIG11c3QgYmUgYmV0d2VlbgotICogICAyIGFuZCA3IChpbiBwcmFjdGljZSwgYmV0d2VlbiAyIGFuZCBNQkVEVExTX0VDUF9XSU5ET1dfU0laRSkKLSAqIC0gbSBpcyB0aGUgTVBJLCBleHBlY3RlZCB0byBiZSBvZGQgYW5kIHN1Y2ggdGhhdCBiaXRsZW5ndGgobSkgPD0gdyAqIGQKLSAqICAgKHRoZSByZXN1bHQgd2lsbCBiZSBpbmNvcnJlY3QgaWYgdGhlc2UgYXNzdW1wdGlvbnMgYXJlIG5vdCBzYXRpc2ZpZWQpCi0gKi8KLXN0YXRpYyB2b2lkIGVjcF9jb21iX3JlY29kZV9jb3JlKHVuc2lnbmVkIGNoYXIgeFtdLCBzaXplX3QgZCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGNoYXIgdywgY29uc3QgbWJlZHRsc19tcGkgKm0pCi17Ci0gICAgc2l6ZV90IGksIGo7Ci0gICAgdW5zaWduZWQgY2hhciBjLCBjYywgYWRqdXN0OwotCi0gICAgbWVtc2V0KHgsIDAsIGQrMSk7Ci0KLSAgICAvKiBGaXJzdCBnZXQgdGhlIGNsYXNzaWNhbCBjb21iIHZhbHVlcyAoZXhjZXB0IGZvciB4X2QgPSAwKSAqLwotICAgIGZvciAoaSA9IDA7IGkgPCBkOyBpKyspIHsKLSAgICAgICAgZm9yIChqID0gMDsgaiA8IHc7IGorKykgewotICAgICAgICAgICAgeFtpXSB8PSBtYmVkdGxzX21waV9nZXRfYml0KG0sIGkgKyBkICogaikgPDwgajsKLSAgICAgICAgfQotICAgIH0KLQotICAgIC8qIE5vdyBtYWtlIHN1cmUgeF8xIC4uIHhfZCBhcmUgb2RkICovCi0gICAgYyA9IDA7Ci0gICAgZm9yIChpID0gMTsgaSA8PSBkOyBpKyspIHsKLSAgICAgICAgLyogQWRkIGNhcnJ5IGFuZCB1cGRhdGUgaXQgKi8KLSAgICAgICAgY2MgICA9IHhbaV0gJiBjOwotICAgICAgICB4W2ldID0geFtpXSBeIGM7Ci0gICAgICAgIGMgPSBjYzsKLQotICAgICAgICAvKiBBZGp1c3QgaWYgbmVlZGVkLCBhdm9pZGluZyBicmFuY2hlcyAqLwotICAgICAgICBhZGp1c3QgPSAxIC0gKHhbaV0gJiAweDAxKTsKLSAgICAgICAgYyAgIHw9IHhbaV0gJiAoeFtpLTFdICogYWRqdXN0KTsKLSAgICAgICAgeFtpXSA9IHhbaV0gXiAoeFtpLTFdICogYWRqdXN0KTsKLSAgICAgICAgeFtpLTFdIHw9IGFkanVzdCA8PCA3OwotICAgIH0KLX0KLQotLyoKLSAqIFByZWNvbXB1dGUgcG9pbnRzIGZvciB0aGUgYWRhcHRlZCBjb21iIG1ldGhvZAotICoKLSAqIEFzc3VtcHRpb246IFQgbXVzdCBiZSBhYmxlIHRvIGhvbGQgMl57dyAtIDF9IGVsZW1lbnRzLgotICoKLSAqIE9wZXJhdGlvbjogSWYgaSA9IGlfe3ctMX0gLi4uIGlfMSBpcyB0aGUgYmluYXJ5IHJlcHJlc2VudGF0aW9uIG9mIGksCi0gKiAgICAgICAgICAgIHNldHMgVFtpXSA9IGlfe3ctMX0gMl57KHctMSlkfSBQICsgLi4uICsgaV8xIDJeZCBQICsgUC4KLSAqCi0gKiBDb3N0OiBkKHctMSkgRCArICgyXnt3LTF9IC0gMSkgQSArIDEgTih3LTEpICsgMSBOKDJee3ctMX0gLSAxKQotICoKLSAqIE5vdGU6IEV2ZW4gY29tYiB2YWx1ZXMgKHRob3NlIHdoZXJlIFAgd291bGQgYmUgb21pdHRlZCBmcm9tIHRoZQotICogICAgICAgc3VtIGRlZmluaW5nIFRbaV0gYWJvdmUpIGFyZSBub3QgbmVlZGVkIGluIG91ciBhZGFwdGlvbgotICogICAgICAgdGhlIGNvbWIgbWV0aG9kLiBTZWUgZWNwX2NvbWJfcmVjb2RlX2NvcmUoKS4KLSAqCi0gKiBUaGlzIGZ1bmN0aW9uIGN1cnJlbnRseSB3b3JrcyBpbiBmb3VyIHN0ZXBzOgotICogKDEpIFtkYmxdICAgICAgQ29tcHV0YXRpb24gb2YgaW50ZXJtZWRpYXRlIFRbaV0gZm9yIDItcG93ZXIgdmFsdWVzIG9mIGkKLSAqICgyKSBbbm9ybV9kYmxdIE5vcm1hbGl6YXRpb24gb2YgY29vcmRpbmF0ZXMgb2YgdGhlc2UgVFtpXQotICogKDMpIFthZGRdICAgICAgQ29tcHV0YXRpb24gb2YgYWxsIFRbaV0KLSAqICg0KSBbbm9ybV9hZGRdIE5vcm1hbGl6YXRpb24gb2YgYWxsIFRbaV0KLSAqCi0gKiBTdGVwIDEgY2FuIGJlIGludGVycnVwdGVkIGJ1dCBub3QgdGhlIG90aGVyczsgdG9nZXRoZXIgd2l0aCB0aGUgZmluYWwKLSAqIGNvb3JkaW5hdGUgbm9ybWFsaXphdGlvbiB0aGV5IGFyZSB0aGUgbGFyZ2VzdCBzdGVwcyBkb25lIGF0IG9uY2UsIGRlcGVuZGluZwotICogb24gdGhlIHdpbmRvdyBzaXplLiBIZXJlIGFyZSBvcGVyYXRpb24gY291bnRzIGZvciBQLTI1NjoKLSAqCi0gKiBzdGVwICAgICAoMikgICAgICgzKSAgICAgKDQpCi0gKiB3ID0gNSAgICAxNDIgICAgIDE2NSAgICAgMjA4Ci0gKiB3ID0gNCAgICAxMzYgICAgICA3NyAgICAgMTYwCi0gKiB3ID0gMyAgICAxMzAgICAgICAzMyAgICAgMTM2Ci0gKiB3ID0gMiAgICAxMjQgICAgICAxMSAgICAgMTI0Ci0gKgotICogU28gaWYgRUNDIG9wZXJhdGlvbnMgYXJlIGJsb2NraW5nIGZvciB0b28gbG9uZyBldmVuIHdpdGggYSBsb3cgbWF4X29wcwotICogdmFsdWUsIGl0J3MgdXNlZnVsIHRvIHNldCBNQkVEVExTX0VDUF9XSU5ET1dfU0laRSB0byBhIGxvd2VyIHZhbHVlIGluIG9yZGVyCi0gKiB0byBtaW5pbWl6ZSBtYXhpbXVtIGJsb2NraW5nIHRpbWUuCi0gKi8KLXN0YXRpYyBpbnQgZWNwX3ByZWNvbXB1dGVfY29tYihjb25zdCBtYmVkdGxzX2VjcF9ncm91cCAqZ3JwLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1iZWR0bHNfZWNwX3BvaW50IFRbXSwgY29uc3QgbWJlZHRsc19lY3BfcG9pbnQgKlAsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgY2hhciB3LCBzaXplX3QgZCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYmVkdGxzX2VjcF9yZXN0YXJ0X2N0eCAqcnNfY3R4KQotewotICAgIGludCByZXQgPSBNQkVEVExTX0VSUl9FUlJPUl9DT1JSVVBUSU9OX0RFVEVDVEVEOwotICAgIHVuc2lnbmVkIGNoYXIgaTsKLSAgICBzaXplX3QgaiA9IDA7Ci0gICAgY29uc3QgdW5zaWduZWQgY2hhciBUX3NpemUgPSAxVSA8PCAodyAtIDEpOwotICAgIG1iZWR0bHNfZWNwX3BvaW50ICpjdXIsICpUVFtDT01CX01BWF9QUkUgLSAxXSA9IHsgTlVMTCB9OwotCi0gICAgbWJlZHRsc19tcGkgdG1wWzRdOwotCi0gICAgbXBpX2luaXRfbWFueSh0bXAsIHNpemVvZih0bXApIC8gc2l6ZW9mKG1iZWR0bHNfbXBpKSk7Ci0KLSNpZiBkZWZpbmVkKE1CRURUTFNfRUNQX1JFU1RBUlRBQkxFKQotICAgIGlmIChyc19jdHggIT0gTlVMTCAmJiByc19jdHgtPnJzbSAhPSBOVUxMKSB7Ci0gICAgICAgIGlmIChyc19jdHgtPnJzbS0+c3RhdGUgPT0gZWNwX3JzbV9wcmVfZGJsKSB7Ci0gICAgICAgICAgICBnb3RvIGRibDsKLSAgICAgICAgfQotICAgICAgICBpZiAocnNfY3R4LT5yc20tPnN0YXRlID09IGVjcF9yc21fcHJlX25vcm1fZGJsKSB7Ci0gICAgICAgICAgICBnb3RvIG5vcm1fZGJsOwotICAgICAgICB9Ci0gICAgICAgIGlmIChyc19jdHgtPnJzbS0+c3RhdGUgPT0gZWNwX3JzbV9wcmVfYWRkKSB7Ci0gICAgICAgICAgICBnb3RvIGFkZDsKLSAgICAgICAgfQotICAgICAgICBpZiAocnNfY3R4LT5yc20tPnN0YXRlID09IGVjcF9yc21fcHJlX25vcm1fYWRkKSB7Ci0gICAgICAgICAgICBnb3RvIG5vcm1fYWRkOwotICAgICAgICB9Ci0gICAgfQotI2Vsc2UKLSAgICAodm9pZCkgcnNfY3R4OwotI2VuZGlmCi0KLSNpZiBkZWZpbmVkKE1CRURUTFNfRUNQX1JFU1RBUlRBQkxFKQotICAgIGlmIChyc19jdHggIT0gTlVMTCAmJiByc19jdHgtPnJzbSAhPSBOVUxMKSB7Ci0gICAgICAgIHJzX2N0eC0+cnNtLT5zdGF0ZSA9IGVjcF9yc21fcHJlX2RibDsKLQotICAgICAgICAvKiBpbml0aWFsIHN0YXRlIGZvciB0aGUgbG9vcCAqLwotICAgICAgICByc19jdHgtPnJzbS0+aSA9IDA7Ci0gICAgfQotCi1kYmw6Ci0jZW5kaWYKLSAgICAvKgotICAgICAqIFNldCBUWzBdID0gUCBhbmQKLSAgICAgKiBUWzJee2wtMX1dID0gMl57ZGx9IFAgZm9yIGwgPSAxIC4uIHctMSAodGhpcyBpcyBub3QgdGhlIGZpbmFsIHZhbHVlKQotICAgICAqLwotICAgIE1CRURUTFNfTVBJX0NISyhtYmVkdGxzX2VjcF9jb3B5KCZUWzBdLCBQKSk7Ci0KLSNpZiBkZWZpbmVkKE1CRURUTFNfRUNQX1JFU1RBUlRBQkxFKQotICAgIGlmIChyc19jdHggIT0gTlVMTCAmJiByc19jdHgtPnJzbSAhPSBOVUxMICYmIHJzX2N0eC0+cnNtLT5pICE9IDApIHsKLSAgICAgICAgaiA9IHJzX2N0eC0+cnNtLT5pOwotICAgIH0gZWxzZQotI2VuZGlmCi0gICAgaiA9IDA7Ci0KLSAgICBmb3IgKDsgaiA8IGQgKiAodyAtIDEpOyBqKyspIHsKLSAgICAgICAgTUJFRFRMU19FQ1BfQlVER0VUKE1CRURUTFNfRUNQX09QU19EQkwpOwotCi0gICAgICAgIGkgPSAxVSA8PCAoaiAvIGQpOwotICAgICAgICBjdXIgPSBUICsgaTsKLQotICAgICAgICBpZiAoaiAlIGQgPT0gMCkgewotICAgICAgICAgICAgTUJFRFRMU19NUElfQ0hLKG1iZWR0bHNfZWNwX2NvcHkoY3VyLCBUICsgKGkgPj4gMSkpKTsKLSAgICAgICAgfQotCi0gICAgICAgIE1CRURUTFNfTVBJX0NISyhlY3BfZG91YmxlX2phYyhncnAsIGN1ciwgY3VyLCB0bXApKTsKLSAgICB9Ci0KLSNpZiBkZWZpbmVkKE1CRURUTFNfRUNQX1JFU1RBUlRBQkxFKQotICAgIGlmIChyc19jdHggIT0gTlVMTCAmJiByc19jdHgtPnJzbSAhPSBOVUxMKSB7Ci0gICAgICAgIHJzX2N0eC0+cnNtLT5zdGF0ZSA9IGVjcF9yc21fcHJlX25vcm1fZGJsOwotICAgIH0KLQotbm9ybV9kYmw6Ci0jZW5kaWYKLSAgICAvKgotICAgICAqIE5vcm1hbGl6ZSBjdXJyZW50IGVsZW1lbnRzIGluIFQgdG8gYWxsb3cgdGhlbSB0byBiZSB1c2VkIGluCi0gICAgICogZWNwX2FkZF9taXhlZCgpIGJlbG93LCB3aGljaCByZXF1aXJlcyBvbmUgbm9ybWFsaXplZCBpbnB1dC4KLSAgICAgKgotICAgICAqIEFzIFQgaGFzIGhvbGVzLCB1c2UgYW4gYXV4aWxpYXJ5IGFycmF5IG9mIHBvaW50ZXJzIHRvIGVsZW1lbnRzIGluIFQuCi0gICAgICoKLSAgICAgKi8KLSAgICBqID0gMDsKLSAgICBmb3IgKGkgPSAxOyBpIDwgVF9zaXplOyBpIDw8PSAxKSB7Ci0gICAgICAgIFRUW2orK10gPSBUICsgaTsKLSAgICB9Ci0KLSAgICBNQkVEVExTX0VDUF9CVURHRVQoTUJFRFRMU19FQ1BfT1BTX0lOViArIDYgKiBqIC0gMik7Ci0KLSAgICBNQkVEVExTX01QSV9DSEsoZWNwX25vcm1hbGl6ZV9qYWNfbWFueShncnAsIFRULCBqKSk7Ci0KLSNpZiBkZWZpbmVkKE1CRURUTFNfRUNQX1JFU1RBUlRBQkxFKQotICAgIGlmIChyc19jdHggIT0gTlVMTCAmJiByc19jdHgtPnJzbSAhPSBOVUxMKSB7Ci0gICAgICAgIHJzX2N0eC0+cnNtLT5zdGF0ZSA9IGVjcF9yc21fcHJlX2FkZDsKLSAgICB9Ci0KLWFkZDoKLSNlbmRpZgotICAgIC8qCi0gICAgICogQ29tcHV0ZSB0aGUgcmVtYWluaW5nIG9uZXMgdXNpbmcgdGhlIG1pbmltYWwgbnVtYmVyIG9mIGFkZGl0aW9ucwotICAgICAqIEJlIGNhcmVmdWwgdG8gdXBkYXRlIFRbMl5sXSBvbmx5IGFmdGVyIHVzaW5nIGl0IQotICAgICAqLwotICAgIE1CRURUTFNfRUNQX0JVREdFVCgoVF9zaXplIC0gMSkgKiBNQkVEVExTX0VDUF9PUFNfQUREKTsKLQotICAgIGZvciAoaSA9IDE7IGkgPCBUX3NpemU7IGkgPDw9IDEpIHsKLSAgICAgICAgaiA9IGk7Ci0gICAgICAgIHdoaWxlIChqLS0pIHsKLSAgICAgICAgICAgIE1CRURUTFNfTVBJX0NISyhlY3BfYWRkX21peGVkKGdycCwgJlRbaSArIGpdLCAmVFtqXSwgJlRbaV0sIHRtcCkpOwotICAgICAgICB9Ci0gICAgfQotCi0jaWYgZGVmaW5lZChNQkVEVExTX0VDUF9SRVNUQVJUQUJMRSkKLSAgICBpZiAocnNfY3R4ICE9IE5VTEwgJiYgcnNfY3R4LT5yc20gIT0gTlVMTCkgewotICAgICAgICByc19jdHgtPnJzbS0+c3RhdGUgPSBlY3BfcnNtX3ByZV9ub3JtX2FkZDsKLSAgICB9Ci0KLW5vcm1fYWRkOgotI2VuZGlmCi0gICAgLyoKLSAgICAgKiBOb3JtYWxpemUgZmluYWwgZWxlbWVudHMgaW4gVC4gRXZlbiB0aG91Z2ggdGhlcmUgYXJlIG5vIGhvbGVzIG5vdywgd2UKLSAgICAgKiBzdGlsbCBuZWVkIHRoZSBhdXhpbGlhcnkgYXJyYXkgZm9yIGhvbW9nZW5laXR5IHdpdGggdGhlIHByZXZpb3VzCi0gICAgICogY2FsbC4gQWxzbywgc2tpcCBUWzBdIHdoaWNoIGlzIGFscmVhZHkgbm9ybWFsaXNlZCwgYmVpbmcgYSBjb3B5IG9mIFAuCi0gICAgICovCi0gICAgZm9yIChqID0gMDsgaiArIDEgPCBUX3NpemU7IGorKykgewotICAgICAgICBUVFtqXSA9IFQgKyBqICsgMTsKLSAgICB9Ci0KLSAgICBNQkVEVExTX0VDUF9CVURHRVQoTUJFRFRMU19FQ1BfT1BTX0lOViArIDYgKiBqIC0gMik7Ci0KLSAgICBNQkVEVExTX01QSV9DSEsoZWNwX25vcm1hbGl6ZV9qYWNfbWFueShncnAsIFRULCBqKSk7Ci0KLSAgICAvKiBGcmVlIFogY29vcmRpbmF0ZSAoPTEgYWZ0ZXIgbm9ybWFsaXphdGlvbikgdG8gc2F2ZSBSQU0uCi0gICAgICogVGhpcyBtYWtlcyBUW2ldIGludmFsaWQgYXMgbWJlZHRsc19lY3BfcG9pbnRzLCBidXQgdGhpcyBpcyBPSwotICAgICAqIHNpbmNlIGZyb20gdGhpcyBwb2ludCBvbndhcmRzLCB0aGV5IGFyZSBvbmx5IGFjY2Vzc2VkIGluZGlyZWN0bHkKLSAgICAgKiB2aWEgdGhlIGdldHRlciBmdW5jdGlvbiBlY3Bfc2VsZWN0X2NvbWIoKSB3aGljaCBkb2VzIHNldCB0aGUKLSAgICAgKiB0YXJnZXQncyBaIGNvb3JkaW5hdGUgdG8gMS4gKi8KLSAgICBmb3IgKGkgPSAwOyBpIDwgVF9zaXplOyBpKyspIHsKLSAgICAgICAgbWJlZHRsc19tcGlfZnJlZSgmVFtpXS5aKTsKLSAgICB9Ci0KLWNsZWFudXA6Ci0KLSAgICBtcGlfZnJlZV9tYW55KHRtcCwgc2l6ZW9mKHRtcCkgLyBzaXplb2YobWJlZHRsc19tcGkpKTsKLQotI2lmIGRlZmluZWQoTUJFRFRMU19FQ1BfUkVTVEFSVEFCTEUpCi0gICAgaWYgKHJzX2N0eCAhPSBOVUxMICYmIHJzX2N0eC0+cnNtICE9IE5VTEwgJiYKLSAgICAgICAgcmV0ID09IE1CRURUTFNfRVJSX0VDUF9JTl9QUk9HUkVTUykgewotICAgICAgICBpZiAocnNfY3R4LT5yc20tPnN0YXRlID09IGVjcF9yc21fcHJlX2RibCkgewotICAgICAgICAgICAgcnNfY3R4LT5yc20tPmkgPSBqOwotICAgICAgICB9Ci0gICAgfQotI2VuZGlmCi0KLSAgICByZXR1cm4gcmV0OwotfQotCi0vKgotICogU2VsZWN0IHByZWNvbXB1dGVkIHBvaW50OiBSID0gc2lnbihpKSAqIFRbIGFicyhpKSAvIDIgXQotICoKLSAqIFNlZSBlY3BfY29tYl9yZWNvZGVfY29yZSgpIGZvciBiYWNrZ3JvdW5kCi0gKi8KLXN0YXRpYyBpbnQgZWNwX3NlbGVjdF9jb21iKGNvbnN0IG1iZWR0bHNfZWNwX2dyb3VwICpncnAsIG1iZWR0bHNfZWNwX3BvaW50ICpSLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbWJlZHRsc19lY3BfcG9pbnQgVFtdLCB1bnNpZ25lZCBjaGFyIFRfc2l6ZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGNoYXIgaSkKLXsKLSAgICBpbnQgcmV0ID0gTUJFRFRMU19FUlJfRVJST1JfQ09SUlVQVElPTl9ERVRFQ1RFRDsKLSAgICB1bnNpZ25lZCBjaGFyIGlpLCBqOwotCi0gICAgLyogSWdub3JlIHRoZSAic2lnbiIgYml0IGFuZCBzY2FsZSBkb3duICovCi0gICAgaWkgPSAgKGkgJiAweDdGdSkgPj4gMTsKLQotICAgIC8qIFJlYWQgdGhlIHdob2xlIHRhYmxlIHRvIHRod2FydCBjYWNoZS1iYXNlZCB0aW1pbmcgYXR0YWNrcyAqLwotICAgIGZvciAoaiA9IDA7IGogPCBUX3NpemU7IGorKykgewotICAgICAgICBNUElfRUNQX0NPTkRfQVNTSUdOKCZSLT5YLCAmVFtqXS5YLCBqID09IGlpKTsKLSAgICAgICAgTVBJX0VDUF9DT05EX0FTU0lHTigmUi0+WSwgJlRbal0uWSwgaiA9PSBpaSk7Ci0gICAgfQotCi0gICAgLyogU2FmZWx5IGludmVydCByZXN1bHQgaWYgaSBpcyAibmVnYXRpdmUiICovCi0gICAgTUJFRFRMU19NUElfQ0hLKGVjcF9zYWZlX2ludmVydF9qYWMoZ3JwLCBSLCBpID4+IDcpKTsKLQotICAgIE1QSV9FQ1BfTFNFVCgmUi0+WiwgMSk7Ci0KLWNsZWFudXA6Ci0gICAgcmV0dXJuIHJldDsKLX0KLQotLyoKLSAqIENvcmUgbXVsdGlwbGljYXRpb24gYWxnb3JpdGhtIGZvciB0aGUgKG1vZGlmaWVkKSBjb21iIG1ldGhvZC4KLSAqIFRoaXMgcGFydCBpcyBhY3R1YWxseSBjb21tb24gd2l0aCB0aGUgYmFzaWMgY29tYiBtZXRob2QgKEdFQ0MgMy40NCkKLSAqCi0gKiBDb3N0OiBkIEEgKyBkIEQgKyAxIFIKLSAqLwotc3RhdGljIGludCBlY3BfbXVsX2NvbWJfY29yZShjb25zdCBtYmVkdGxzX2VjcF9ncm91cCAqZ3JwLCBtYmVkdGxzX2VjcF9wb2ludCAqUiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbWJlZHRsc19lY3BfcG9pbnQgVFtdLCB1bnNpZ25lZCBjaGFyIFRfc2l6ZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdW5zaWduZWQgY2hhciB4W10sIHNpemVfdCBkLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgKCpmX3JuZykodm9pZCAqLCB1bnNpZ25lZCBjaGFyICosIHNpemVfdCksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZvaWQgKnBfcm5nLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYmVkdGxzX2VjcF9yZXN0YXJ0X2N0eCAqcnNfY3R4KQotewotICAgIGludCByZXQgPSBNQkVEVExTX0VSUl9FUlJPUl9DT1JSVVBUSU9OX0RFVEVDVEVEOwotICAgIG1iZWR0bHNfZWNwX3BvaW50IFR4aTsKLSAgICBtYmVkdGxzX21waSB0bXBbNF07Ci0gICAgc2l6ZV90IGk7Ci0KLSAgICBtYmVkdGxzX2VjcF9wb2ludF9pbml0KCZUeGkpOwotICAgIG1waV9pbml0X21hbnkodG1wLCBzaXplb2YodG1wKSAvIHNpemVvZihtYmVkdGxzX21waSkpOwotCi0jaWYgIWRlZmluZWQoTUJFRFRMU19FQ1BfUkVTVEFSVEFCTEUpCi0gICAgKHZvaWQpIHJzX2N0eDsKLSNlbmRpZgotCi0jaWYgZGVmaW5lZChNQkVEVExTX0VDUF9SRVNUQVJUQUJMRSkKLSAgICBpZiAocnNfY3R4ICE9IE5VTEwgJiYgcnNfY3R4LT5yc20gIT0gTlVMTCAmJgotICAgICAgICByc19jdHgtPnJzbS0+c3RhdGUgIT0gZWNwX3JzbV9jb21iX2NvcmUpIHsKLSAgICAgICAgcnNfY3R4LT5yc20tPmkgPSAwOwotICAgICAgICByc19jdHgtPnJzbS0+c3RhdGUgPSBlY3BfcnNtX2NvbWJfY29yZTsKLSAgICB9Ci0KLSAgICAvKiBuZXcgJ2lmJyBpbnN0ZWFkIG9mIG5lc3RlZCBmb3IgdGhlIHNha2Ugb2YgdGhlICdlbHNlJyBicmFuY2ggKi8KLSAgICBpZiAocnNfY3R4ICE9IE5VTEwgJiYgcnNfY3R4LT5yc20gIT0gTlVMTCAmJiByc19jdHgtPnJzbS0+aSAhPSAwKSB7Ci0gICAgICAgIC8qIHJlc3RvcmUgY3VycmVudCBpbmRleCAoUiBhbHJlYWR5IHBvaW50aW5nIHRvIHJzX2N0eC0+cnNtLT5SKSAqLwotICAgICAgICBpID0gcnNfY3R4LT5yc20tPmk7Ci0gICAgfSBlbHNlCi0jZW5kaWYKLSAgICB7Ci0gICAgICAgIC8qIFN0YXJ0IHdpdGggYSBub24temVybyBwb2ludCBhbmQgcmFuZG9taXplIGl0cyBjb29yZGluYXRlcyAqLwotICAgICAgICBpID0gZDsKLSAgICAgICAgTUJFRFRMU19NUElfQ0hLKGVjcF9zZWxlY3RfY29tYihncnAsIFIsIFQsIFRfc2l6ZSwgeFtpXSkpOwotICAgICAgICBpZiAoZl9ybmcgIT0gMCkgewotICAgICAgICAgICAgTUJFRFRMU19NUElfQ0hLKGVjcF9yYW5kb21pemVfamFjKGdycCwgUiwgZl9ybmcsIHBfcm5nKSk7Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICB3aGlsZSAoaSAhPSAwKSB7Ci0gICAgICAgIE1CRURUTFNfRUNQX0JVREdFVChNQkVEVExTX0VDUF9PUFNfREJMICsgTUJFRFRMU19FQ1BfT1BTX0FERCk7Ci0gICAgICAgIC0taTsKLQotICAgICAgICBNQkVEVExTX01QSV9DSEsoZWNwX2RvdWJsZV9qYWMoZ3JwLCBSLCBSLCB0bXApKTsKLSAgICAgICAgTUJFRFRMU19NUElfQ0hLKGVjcF9zZWxlY3RfY29tYihncnAsICZUeGksIFQsIFRfc2l6ZSwgeFtpXSkpOwotICAgICAgICBNQkVEVExTX01QSV9DSEsoZWNwX2FkZF9taXhlZChncnAsIFIsIFIsICZUeGksIHRtcCkpOwotICAgIH0KLQotY2xlYW51cDoKLQotICAgIG1iZWR0bHNfZWNwX3BvaW50X2ZyZWUoJlR4aSk7Ci0gICAgbXBpX2ZyZWVfbWFueSh0bXAsIHNpemVvZih0bXApIC8gc2l6ZW9mKG1iZWR0bHNfbXBpKSk7Ci0KLSNpZiBkZWZpbmVkKE1CRURUTFNfRUNQX1JFU1RBUlRBQkxFKQotICAgIGlmIChyc19jdHggIT0gTlVMTCAmJiByc19jdHgtPnJzbSAhPSBOVUxMICYmCi0gICAgICAgIHJldCA9PSBNQkVEVExTX0VSUl9FQ1BfSU5fUFJPR1JFU1MpIHsKLSAgICAgICAgcnNfY3R4LT5yc20tPmkgPSBpOwotICAgICAgICAvKiBubyBuZWVkIHRvIHNhdmUgUiwgYWxyZWFkeSBwb2ludGluZyB0byByc19jdHgtPnJzbS0+UiAqLwotICAgIH0KLSNlbmRpZgotCi0gICAgcmV0dXJuIHJldDsKLX0KLQotLyoKLSAqIFJlY29kZSB0aGUgc2NhbGFyIHRvIGdldCBjb25zdGFudC10aW1lIGNvbWIgbXVsdGlwbGljYXRpb24KLSAqCi0gKiBBcyB0aGUgYWN0dWFsIHNjYWxhciByZWNvZGluZyBuZWVkcyBhbiBvZGQgc2NhbGFyIGFzIGEgc3RhcnRpbmcgcG9pbnQsCi0gKiB0aGlzIHdyYXBwZXIgZW5zdXJlcyB0aGF0IGJ5IHJlcGxhY2luZyBtIGJ5IE4gLSBtIGlmIG5lY2Vzc2FyeSwgYW5kCi0gKiBpbmZvcm1zIHRoZSBjYWxsZXIgdGhhdCB0aGUgcmVzdWx0IG9mIG11bHRpcGxpY2F0aW9uIHdpbGwgYmUgbmVnYXRlZC4KLSAqCi0gKiBUaGlzIHdvcmtzIGJlY2F1c2Ugd2Ugb25seSBzdXBwb3J0IGxhcmdlIHByaW1lIG9yZGVyIGZvciBTaG9ydCBXZWllcnN0cmFzcwotICogY3VydmVzLCBzbyBOIGlzIGFsd2F5cyBvZGQgaGVuY2UgZWl0aGVyIG0gb3IgTiAtIG0gaXMuCi0gKgotICogU2VlIGVjcF9jb21iX3JlY29kZV9jb3JlKCkgZm9yIGJhY2tncm91bmQuCi0gKi8KLXN0YXRpYyBpbnQgZWNwX2NvbWJfcmVjb2RlX3NjYWxhcihjb25zdCBtYmVkdGxzX2VjcF9ncm91cCAqZ3JwLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IG1iZWR0bHNfbXBpICptLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGNoYXIga1tDT01CX01BWF9EICsgMV0sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IGQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgY2hhciB3LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGNoYXIgKnBhcml0eV90cmljaykKLXsKLSAgICBpbnQgcmV0ID0gTUJFRFRMU19FUlJfRVJST1JfQ09SUlVQVElPTl9ERVRFQ1RFRDsKLSAgICBtYmVkdGxzX21waSBNLCBtbTsKLQotICAgIG1iZWR0bHNfbXBpX2luaXQoJk0pOwotICAgIG1iZWR0bHNfbXBpX2luaXQoJm1tKTsKLQotICAgIC8qIE4gaXMgYWx3YXlzIG9kZCAoc2VlIGFib3ZlKSwganVzdCBtYWtlIGV4dHJhIHN1cmUgKi8KLSAgICBpZiAobWJlZHRsc19tcGlfZ2V0X2JpdCgmZ3JwLT5OLCAwKSAhPSAxKSB7Ci0gICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9FQ1BfQkFEX0lOUFVUX0RBVEE7Ci0gICAgfQotCi0gICAgLyogZG8gd2UgbmVlZCB0aGUgcGFyaXR5IHRyaWNrPyAqLwotICAgICpwYXJpdHlfdHJpY2sgPSAobWJlZHRsc19tcGlfZ2V0X2JpdChtLCAwKSA9PSAwKTsKLQotICAgIC8qIGV4ZWN1dGUgcGFyaXR5IGZpeCBpbiBjb25zdGFudCB0aW1lICovCi0gICAgTUJFRFRMU19NUElfQ0hLKG1iZWR0bHNfbXBpX2NvcHkoJk0sIG0pKTsKLSAgICBNQkVEVExTX01QSV9DSEsobWJlZHRsc19tcGlfc3ViX21waSgmbW0sICZncnAtPk4sIG0pKTsKLSAgICBNQkVEVExTX01QSV9DSEsobWJlZHRsc19tcGlfc2FmZV9jb25kX2Fzc2lnbigmTSwgJm1tLCAqcGFyaXR5X3RyaWNrKSk7Ci0KLSAgICAvKiBhY3R1YWwgc2NhbGFyIHJlY29kaW5nICovCi0gICAgZWNwX2NvbWJfcmVjb2RlX2NvcmUoaywgZCwgdywgJk0pOwotCi1jbGVhbnVwOgotICAgIG1iZWR0bHNfbXBpX2ZyZWUoJm1tKTsKLSAgICBtYmVkdGxzX21waV9mcmVlKCZNKTsKLQotICAgIHJldHVybiByZXQ7Ci19Ci0KLS8qCi0gKiBQZXJmb3JtIGNvbWIgbXVsdGlwbGljYXRpb24gKGZvciBzaG9ydCBXZWllcnN0cmFzcyBjdXJ2ZXMpCi0gKiBvbmNlIHRoZSBhdXhpbGlhcnkgdGFibGUgaGFzIGJlZW4gcHJlLWNvbXB1dGVkLgotICoKLSAqIFNjYWxhciByZWNvZGluZyBtYXkgdXNlIGEgcGFyaXR5IHRyaWNrIHRoYXQgbWFrZXMgdXMgY29tcHV0ZSAtbSAqIFAsCi0gKiBpZiB0aGF0IGlzIHRoZSBjYXNlIHdlJ2xsIG5lZWQgdG8gcmVjb3ZlciBtICogUCBhdCB0aGUgZW5kLgotICovCi1zdGF0aWMgaW50IGVjcF9tdWxfY29tYl9hZnRlcl9wcmVjb21wKGNvbnN0IG1iZWR0bHNfZWNwX2dyb3VwICpncnAsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1iZWR0bHNfZWNwX3BvaW50ICpSLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBtYmVkdGxzX21waSAqbSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbWJlZHRsc19lY3BfcG9pbnQgKlQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGNoYXIgVF9zaXplLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBjaGFyIHcsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBkLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgKCpmX3JuZykodm9pZCAqLCB1bnNpZ25lZCBjaGFyICosIHNpemVfdCksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZvaWQgKnBfcm5nLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYmVkdGxzX2VjcF9yZXN0YXJ0X2N0eCAqcnNfY3R4KQotewotICAgIGludCByZXQgPSBNQkVEVExTX0VSUl9FUlJPUl9DT1JSVVBUSU9OX0RFVEVDVEVEOwotICAgIHVuc2lnbmVkIGNoYXIgcGFyaXR5X3RyaWNrOwotICAgIHVuc2lnbmVkIGNoYXIga1tDT01CX01BWF9EICsgMV07Ci0gICAgbWJlZHRsc19lY3BfcG9pbnQgKlJSID0gUjsKLQotI2lmIGRlZmluZWQoTUJFRFRMU19FQ1BfUkVTVEFSVEFCTEUpCi0gICAgaWYgKHJzX2N0eCAhPSBOVUxMICYmIHJzX2N0eC0+cnNtICE9IE5VTEwpIHsKLSAgICAgICAgUlIgPSAmcnNfY3R4LT5yc20tPlI7Ci0KLSAgICAgICAgaWYgKHJzX2N0eC0+cnNtLT5zdGF0ZSA9PSBlY3BfcnNtX2ZpbmFsX25vcm0pIHsKLSAgICAgICAgICAgIGdvdG8gZmluYWxfbm9ybTsKLSAgICAgICAgfQotICAgIH0KLSNlbmRpZgotCi0gICAgTUJFRFRMU19NUElfQ0hLKGVjcF9jb21iX3JlY29kZV9zY2FsYXIoZ3JwLCBtLCBrLCBkLCB3LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZwYXJpdHlfdHJpY2spKTsKLSAgICBNQkVEVExTX01QSV9DSEsoZWNwX211bF9jb21iX2NvcmUoZ3JwLCBSUiwgVCwgVF9zaXplLCBrLCBkLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmX3JuZywgcF9ybmcsIHJzX2N0eCkpOwotICAgIE1CRURUTFNfTVBJX0NISyhlY3Bfc2FmZV9pbnZlcnRfamFjKGdycCwgUlIsIHBhcml0eV90cmljaykpOwotCi0jaWYgZGVmaW5lZChNQkVEVExTX0VDUF9SRVNUQVJUQUJMRSkKLSAgICBpZiAocnNfY3R4ICE9IE5VTEwgJiYgcnNfY3R4LT5yc20gIT0gTlVMTCkgewotICAgICAgICByc19jdHgtPnJzbS0+c3RhdGUgPSBlY3BfcnNtX2ZpbmFsX25vcm07Ci0gICAgfQotCi1maW5hbF9ub3JtOgotICAgIE1CRURUTFNfRUNQX0JVREdFVChNQkVEVExTX0VDUF9PUFNfSU5WKTsKLSNlbmRpZgotICAgIC8qCi0gICAgICogS25vd2xlZGdlIG9mIHRoZSBqYWNvYmlhbiBjb29yZGluYXRlcyBtYXkgbGVhayB0aGUgbGFzdCBmZXcgYml0cyBvZiB0aGUKLSAgICAgKiBzY2FsYXIgWzFdLCBhbmQgc2luY2Ugb3VyIE1QSSBpbXBsZW1lbnRhdGlvbiBpc24ndCBjb25zdGFudC1mbG93LAotICAgICAqIGludmVyc2lvbiAodXNlZCBmb3IgY29vcmRpbmF0ZSBub3JtYWxpemF0aW9uKSBtYXkgbGVhayB0aGUgZnVsbCB2YWx1ZQotICAgICAqIG9mIGl0cyBpbnB1dCB2aWEgc2lkZS1jaGFubmVscyBbMl0uCi0gICAgICoKLSAgICAgKiBbMV0gaHR0cHM6Ly9lcHJpbnQuaWFjci5vcmcvMjAwMy8xOTEKLSAgICAgKiBbMl0gaHR0cHM6Ly9lcHJpbnQuaWFjci5vcmcvMjAyMC8wNTUKLSAgICAgKgotICAgICAqIEF2b2lkIHRoZSBsZWFrIGJ5IHJhbmRvbWl6aW5nIGNvb3JkaW5hdGVzIGJlZm9yZSB3ZSBub3JtYWxpemUgdGhlbS4KLSAgICAgKi8KLSAgICBpZiAoZl9ybmcgIT0gMCkgewotICAgICAgICBNQkVEVExTX01QSV9DSEsoZWNwX3JhbmRvbWl6ZV9qYWMoZ3JwLCBSUiwgZl9ybmcsIHBfcm5nKSk7Ci0gICAgfQotCi0gICAgTUJFRFRMU19NUElfQ0hLKGVjcF9ub3JtYWxpemVfamFjKGdycCwgUlIpKTsKLQotI2lmIGRlZmluZWQoTUJFRFRMU19FQ1BfUkVTVEFSVEFCTEUpCi0gICAgaWYgKHJzX2N0eCAhPSBOVUxMICYmIHJzX2N0eC0+cnNtICE9IE5VTEwpIHsKLSAgICAgICAgTUJFRFRMU19NUElfQ0hLKG1iZWR0bHNfZWNwX2NvcHkoUiwgUlIpKTsKLSAgICB9Ci0jZW5kaWYKLQotY2xlYW51cDoKLSAgICByZXR1cm4gcmV0OwotfQotCi0vKgotICogUGljayB3aW5kb3cgc2l6ZSBiYXNlZCBvbiBjdXJ2ZSBzaXplIGFuZCB3aGV0aGVyIHdlIG9wdGltaXplIGZvciBiYXNlIHBvaW50Ci0gKi8KLXN0YXRpYyB1bnNpZ25lZCBjaGFyIGVjcF9waWNrX3dpbmRvd19zaXplKGNvbnN0IG1iZWR0bHNfZWNwX2dyb3VwICpncnAsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBjaGFyIHBfZXFfZykKLXsKLSAgICB1bnNpZ25lZCBjaGFyIHc7Ci0KLSAgICAvKgotICAgICAqIE1pbmltaXplIHRoZSBudW1iZXIgb2YgbXVsdGlwbGljYXRpb25zLCB0aGF0IGlzIG1pbmltaXplCi0gICAgICogMTAgKiBkICogdyArIDE4ICogMl4ody0xKSArIDExICogZCArIDcgKiB3LCB3aXRoIGQgPSBjZWlsKCBuYml0cyAvIHcgKQotICAgICAqIChzZWUgY29zdHMgb2YgdGhlIHZhcmlvdXMgcGFydHMsIHdpdGggMVMgPSAxTSkKLSAgICAgKi8KLSAgICB3ID0gZ3JwLT5uYml0cyA+PSAzODQgPyA1IDogNDsKLQotICAgIC8qCi0gICAgICogSWYgUCA9PSBHLCBwcmUtY29tcHV0ZSBhIGJpdCBtb3JlLCBzaW5jZSB0aGlzIG1heSBiZSByZS11c2VkIGxhdGVyLgotICAgICAqIEp1c3QgYWRkaW5nIG9uZSBhdm9pZHMgdXBwaW5nIHRoZSBjb3N0IG9mIHRoZSBmaXJzdCBtdWwgdG9vIG11Y2gsCi0gICAgICogYW5kIHRoZSBtZW1vcnkgY29zdCB0b28uCi0gICAgICovCi0gICAgaWYgKHBfZXFfZykgewotICAgICAgICB3Kys7Ci0gICAgfQotCi0gICAgLyoKLSAgICAgKiBJZiBzdGF0aWMgY29tYiB0YWJsZSBtYXkgbm90IGJlIHVzZWQgKCFwX2VxX2cpIG9yIHN0YXRpYyBjb21iIHRhYmxlIGRvZXMKLSAgICAgKiBub3QgZXhpc3RzLCBtYWtlIHN1cmUgdyBpcyB3aXRoaW4gYm91bmRzLgotICAgICAqIChUaGUgbGFzdCB0ZXN0IGlzIHVzZWZ1bCBvbmx5IGZvciB2ZXJ5IHNtYWxsIGN1cnZlcyBpbiB0aGUgdGVzdCBzdWl0ZS4pCi0gICAgICoKLSAgICAgKiBUaGUgdXNlciByZWR1Y2VzIE1CRURUTFNfRUNQX1dJTkRPV19TSVpFIGRvZXMgbm90IGNoYW5nZXMgdGhlIHNpemUgb2YKLSAgICAgKiBzdGF0aWMgY29tYiB0YWJsZSwgYmVjYXVzZSB0aGUgc2l6ZSBvZiBzdGF0aWMgY29tYiB0YWJsZSBpcyBmaXhlZCB3aGVuCi0gICAgICogaXQgaXMgZ2VuZXJhdGVkLgotICAgICAqLwotI2lmIChNQkVEVExTX0VDUF9XSU5ET1dfU0laRSA8IDYpCi0gICAgaWYgKCghcF9lcV9nIHx8ICFlY3BfZ3JvdXBfaXNfc3RhdGljX2NvbWJfdGFibGUoZ3JwKSkgJiYgdyA+IE1CRURUTFNfRUNQX1dJTkRPV19TSVpFKSB7Ci0gICAgICAgIHcgPSBNQkVEVExTX0VDUF9XSU5ET1dfU0laRTsKLSAgICB9Ci0jZW5kaWYKLSAgICBpZiAodyA+PSBncnAtPm5iaXRzKSB7Ci0gICAgICAgIHcgPSAyOwotICAgIH0KLQotICAgIHJldHVybiB3OwotfQotCi0vKgotICogTXVsdGlwbGljYXRpb24gdXNpbmcgdGhlIGNvbWIgbWV0aG9kIC0gZm9yIGN1cnZlcyBpbiBzaG9ydCBXZWllcnN0cmFzcyBmb3JtCi0gKgotICogVGhpcyBmdW5jdGlvbiBpcyBtYWlubHkgcmVzcG9uc2libGUgZm9yIGFkbWluaXN0cmF0aXZlIHdvcms6Ci0gKiAtIG1hbmFnaW5nIHRoZSByZXN0YXJ0IGNvbnRleHQgaWYgZW5hYmxlZAotICogLSBtYW5hZ2luZyB0aGUgdGFibGUgb2YgcHJlY29tcHV0ZWQgcG9pbnRzIChwYXNzZWQgYmV0d2VlbiB0aGUgYmVsb3cgdHdvCi0gKiAgIGZ1bmN0aW9ucyk6IGFsbG9jYXRpb24sIGNvbXB1dGF0aW9uLCBvd25lcnNoaXAgdHJhbnNmZXIsIGZyZWVpbmcuCi0gKgotICogSXQgZGVsZWdhdGVzIHRoZSBhY3R1YWwgYXJpdGhtZXRpYyB3b3JrIHRvOgotICogICAgICBlY3BfcHJlY29tcHV0ZV9jb21iKCkgYW5kIGVjcF9tdWxfY29tYl93aXRoX3ByZWNvbXAoKQotICoKLSAqIFNlZSBjb21tZW50cyBvbiBlY3BfY29tYl9yZWNvZGVfY29yZSgpIHJlZ2FyZGluZyB0aGUgY29tcHV0YXRpb24gc3RyYXRlZ3kuCi0gKi8KLXN0YXRpYyBpbnQgZWNwX211bF9jb21iKG1iZWR0bHNfZWNwX2dyb3VwICpncnAsIG1iZWR0bHNfZWNwX3BvaW50ICpSLAotICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbWJlZHRsc19tcGkgKm0sIGNvbnN0IG1iZWR0bHNfZWNwX3BvaW50ICpQLAotICAgICAgICAgICAgICAgICAgICAgICAgaW50ICgqZl9ybmcpKHZvaWQgKiwgdW5zaWduZWQgY2hhciAqLCBzaXplX3QpLAotICAgICAgICAgICAgICAgICAgICAgICAgdm9pZCAqcF9ybmcsCi0gICAgICAgICAgICAgICAgICAgICAgICBtYmVkdGxzX2VjcF9yZXN0YXJ0X2N0eCAqcnNfY3R4KQotewotICAgIGludCByZXQgPSBNQkVEVExTX0VSUl9FUlJPUl9DT1JSVVBUSU9OX0RFVEVDVEVEOwotICAgIHVuc2lnbmVkIGNoYXIgdywgcF9lcV9nLCBpOwotICAgIHNpemVfdCBkOwotICAgIHVuc2lnbmVkIGNoYXIgVF9zaXplID0gMCwgVF9vayA9IDA7Ci0gICAgbWJlZHRsc19lY3BfcG9pbnQgKlQgPSBOVUxMOwotCi0gICAgRUNQX1JTX0VOVEVSKHJzbSk7Ci0KLSAgICAvKiBJcyBQIHRoZSBiYXNlIHBvaW50ID8gKi8KLSNpZiBNQkVEVExTX0VDUF9GSVhFRF9QT0lOVF9PUFRJTSA9PSAxCi0gICAgcF9lcV9nID0gKE1QSV9FQ1BfQ01QKCZQLT5ZLCAmZ3JwLT5HLlkpID09IDAgJiYKLSAgICAgICAgICAgICAgTVBJX0VDUF9DTVAoJlAtPlgsICZncnAtPkcuWCkgPT0gMCk7Ci0jZWxzZQotICAgIHBfZXFfZyA9IDA7Ci0jZW5kaWYKLQotICAgIC8qIFBpY2sgd2luZG93IHNpemUgYW5kIGRlZHVjZSByZWxhdGVkIHNpemVzICovCi0gICAgdyA9IGVjcF9waWNrX3dpbmRvd19zaXplKGdycCwgcF9lcV9nKTsKLSAgICBUX3NpemUgPSAxVSA8PCAodyAtIDEpOwotICAgIGQgPSAoZ3JwLT5uYml0cyArIHcgLSAxKSAvIHc7Ci0KLSAgICAvKiBQcmUtY29tcHV0ZWQgdGFibGU6IGRvIHdlIGhhdmUgaXQgYWxyZWFkeSBmb3IgdGhlIGJhc2UgcG9pbnQ/ICovCi0gICAgaWYgKHBfZXFfZyAmJiBncnAtPlQgIT0gTlVMTCkgewotICAgICAgICAvKiBzZWNvbmQgcG9pbnRlciB0byB0aGUgc2FtZSB0YWJsZSwgd2lsbCBiZSBkZWxldGVkIG9uIGV4aXQgKi8KLSAgICAgICAgVCA9IGdycC0+VDsKLSAgICAgICAgVF9vayA9IDE7Ci0gICAgfSBlbHNlCi0jaWYgZGVmaW5lZChNQkVEVExTX0VDUF9SRVNUQVJUQUJMRSkKLSAgICAvKiBQcmUtY29tcHV0ZWQgdGFibGU6IGRvIHdlIGhhdmUgb25lIGluIHByb2dyZXNzPyBjb21wbGV0ZT8gKi8KLSAgICBpZiAocnNfY3R4ICE9IE5VTEwgJiYgcnNfY3R4LT5yc20gIT0gTlVMTCAmJiByc19jdHgtPnJzbS0+VCAhPSBOVUxMKSB7Ci0gICAgICAgIC8qIHRyYW5zZmVyIG93bmVyc2hpcCBvZiBUIGZyb20gcnNtIHRvIGxvY2FsIGZ1bmN0aW9uICovCi0gICAgICAgIFQgPSByc19jdHgtPnJzbS0+VDsKLSAgICAgICAgcnNfY3R4LT5yc20tPlQgPSBOVUxMOwotICAgICAgICByc19jdHgtPnJzbS0+VF9zaXplID0gMDsKLQotICAgICAgICAvKiBUaGlzIGVmZmVjdGl2ZWx5IGp1bXBzIHRvIHRoZSBjYWxsIHRvIG11bF9jb21iX2FmdGVyX3ByZWNvbXAoKSAqLwotICAgICAgICBUX29rID0gcnNfY3R4LT5yc20tPnN0YXRlID49IGVjcF9yc21fY29tYl9jb3JlOwotICAgIH0gZWxzZQotI2VuZGlmCi0gICAgLyogQWxsb2NhdGUgdGFibGUgaWYgd2UgZGlkbid0IGhhdmUgYW55ICovCi0gICAgewotICAgICAgICBUID0gbWJlZHRsc19jYWxsb2MoVF9zaXplLCBzaXplb2YobWJlZHRsc19lY3BfcG9pbnQpKTsKLSAgICAgICAgaWYgKFQgPT0gTlVMTCkgewotICAgICAgICAgICAgcmV0ID0gTUJFRFRMU19FUlJfRUNQX0FMTE9DX0ZBSUxFRDsKLSAgICAgICAgICAgIGdvdG8gY2xlYW51cDsKLSAgICAgICAgfQotCi0gICAgICAgIGZvciAoaSA9IDA7IGkgPCBUX3NpemU7IGkrKykgewotICAgICAgICAgICAgbWJlZHRsc19lY3BfcG9pbnRfaW5pdCgmVFtpXSk7Ci0gICAgICAgIH0KLQotICAgICAgICBUX29rID0gMDsKLSAgICB9Ci0KLSAgICAvKiBDb21wdXRlIHRhYmxlIChvciBmaW5pc2ggY29tcHV0aW5nIGl0KSBpZiBub3QgZG9uZSBhbHJlYWR5ICovCi0gICAgaWYgKCFUX29rKSB7Ci0gICAgICAgIE1CRURUTFNfTVBJX0NISyhlY3BfcHJlY29tcHV0ZV9jb21iKGdycCwgVCwgUCwgdywgZCwgcnNfY3R4KSk7Ci0KLSAgICAgICAgaWYgKHBfZXFfZykgewotICAgICAgICAgICAgLyogYWxtb3N0IHRyYW5zZmVyIG93bmVyc2hpcCBvZiBUIHRvIHRoZSBncm91cCwgYnV0IGtlZXAgYSBjb3B5IG9mCi0gICAgICAgICAgICAgKiB0aGUgcG9pbnRlciB0byB1c2UgZm9yIGNhbGxpbmcgdGhlIG5leHQgZnVuY3Rpb24gbW9yZSBlYXNpbHkgKi8KLSAgICAgICAgICAgIGdycC0+VCA9IFQ7Ci0gICAgICAgICAgICBncnAtPlRfc2l6ZSA9IFRfc2l6ZTsKLSAgICAgICAgfQotICAgIH0KLQotICAgIC8qIEFjdHVhbCBjb21iIG11bHRpcGxpY2F0aW9uIHVzaW5nIHByZWNvbXB1dGVkIHBvaW50cyAqLwotICAgIE1CRURUTFNfTVBJX0NISyhlY3BfbXVsX2NvbWJfYWZ0ZXJfcHJlY29tcChncnAsIFIsIG0sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFQsIFRfc2l6ZSwgdywgZCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZl9ybmcsIHBfcm5nLCByc19jdHgpKTsKLQotY2xlYW51cDoKLQotICAgIC8qIGRvZXMgVCBiZWxvbmcgdG8gdGhlIGdyb3VwPyAqLwotICAgIGlmIChUID09IGdycC0+VCkgewotICAgICAgICBUID0gTlVMTDsKLSAgICB9Ci0KLSAgICAvKiBkb2VzIFQgYmVsb25nIHRvIHRoZSByZXN0YXJ0IGNvbnRleHQ/ICovCi0jaWYgZGVmaW5lZChNQkVEVExTX0VDUF9SRVNUQVJUQUJMRSkKLSAgICBpZiAocnNfY3R4ICE9IE5VTEwgJiYgcnNfY3R4LT5yc20gIT0gTlVMTCAmJiByZXQgPT0gTUJFRFRMU19FUlJfRUNQX0lOX1BST0dSRVNTICYmIFQgIT0gTlVMTCkgewotICAgICAgICAvKiB0cmFuc2ZlciBvd25lcnNoaXAgb2YgVCBmcm9tIGxvY2FsIGZ1bmN0aW9uIHRvIHJzbSAqLwotICAgICAgICByc19jdHgtPnJzbS0+VF9zaXplID0gVF9zaXplOwotICAgICAgICByc19jdHgtPnJzbS0+VCA9IFQ7Ci0gICAgICAgIFQgPSBOVUxMOwotICAgIH0KLSNlbmRpZgotCi0gICAgLyogZGlkIFQgYmVsb25nIHRvIHVzPyB0aGVuIGxldCdzIGRlc3Ryb3kgaXQhICovCi0gICAgaWYgKFQgIT0gTlVMTCkgewotICAgICAgICBmb3IgKGkgPSAwOyBpIDwgVF9zaXplOyBpKyspIHsKLSAgICAgICAgICAgIG1iZWR0bHNfZWNwX3BvaW50X2ZyZWUoJlRbaV0pOwotICAgICAgICB9Ci0gICAgICAgIG1iZWR0bHNfZnJlZShUKTsKLSAgICB9Ci0KLSAgICAvKiBwcmV2ZW50IGNhbGxlciBmcm9tIHVzaW5nIGludmFsaWQgdmFsdWUgKi8KLSAgICBpbnQgc2hvdWxkX2ZyZWVfUiA9IChyZXQgIT0gMCk7Ci0jaWYgZGVmaW5lZChNQkVEVExTX0VDUF9SRVNUQVJUQUJMRSkKLSAgICAvKiBkb24ndCBmcmVlIFIgd2hpbGUgaW4gcHJvZ3Jlc3MgaW4gY2FzZSBSID09IFAgKi8KLSAgICBpZiAocmV0ID09IE1CRURUTFNfRVJSX0VDUF9JTl9QUk9HUkVTUykgewotICAgICAgICBzaG91bGRfZnJlZV9SID0gMDsKLSAgICB9Ci0jZW5kaWYKLSAgICBpZiAoc2hvdWxkX2ZyZWVfUikgewotICAgICAgICBtYmVkdGxzX2VjcF9wb2ludF9mcmVlKFIpOwotICAgIH0KLQotICAgIEVDUF9SU19MRUFWRShyc20pOwotCi0gICAgcmV0dXJuIHJldDsKLX0KLQotI2VuZGlmIC8qIE1CRURUTFNfRUNQX1NIT1JUX1dFSUVSU1RSQVNTX0VOQUJMRUQgKi8KLQotI2lmIGRlZmluZWQoTUJFRFRMU19FQ1BfTU9OVEdPTUVSWV9FTkFCTEVEKQotLyoKLSAqIEZvciBNb250Z29tZXJ5IGN1cnZlcywgd2UgZG8gYWxsIHRoZSBpbnRlcm5hbCBhcml0aG1ldGljIGluIHByb2plY3RpdmUKLSAqIGNvb3JkaW5hdGVzLiBJbXBvcnQvZXhwb3J0IG9mIHBvaW50cyB1c2VzIG9ubHkgdGhlIHggY29vcmRpbmF0ZXMsIHdoaWNoIGlzCi0gKiBpbnRlcm5hbGx5IHJlcHJlc2VudGVkIGFzIFggLyBaLgotICoKLSAqIEZvciBzY2FsYXIgbXVsdGlwbGljYXRpb24sIHdlJ2xsIHVzZSBhIE1vbnRnb21lcnkgbGFkZGVyLgotICovCi0KLS8qCi0gKiBOb3JtYWxpemUgTW9udGdvbWVyeSB4L3ogY29vcmRpbmF0ZXM6IFggPSBYL1osIFogPSAxCi0gKiBDb3N0OiAxTSArIDFJCi0gKi8KLXN0YXRpYyBpbnQgZWNwX25vcm1hbGl6ZV9teHooY29uc3QgbWJlZHRsc19lY3BfZ3JvdXAgKmdycCwgbWJlZHRsc19lY3BfcG9pbnQgKlApCi17Ci0jaWYgZGVmaW5lZChNQkVEVExTX0VDUF9OT1JNQUxJWkVfTVhaX0FMVCkKLSAgICBpZiAobWJlZHRsc19pbnRlcm5hbF9lY3BfZ3JwX2NhcGFibGUoZ3JwKSkgewotICAgICAgICByZXR1cm4gbWJlZHRsc19pbnRlcm5hbF9lY3Bfbm9ybWFsaXplX214eihncnAsIFApOwotICAgIH0KLSNlbmRpZiAvKiBNQkVEVExTX0VDUF9OT1JNQUxJWkVfTVhaX0FMVCAqLwotCi0jaWYgZGVmaW5lZChNQkVEVExTX0VDUF9OT19GQUxMQkFDSykgJiYgZGVmaW5lZChNQkVEVExTX0VDUF9OT1JNQUxJWkVfTVhaX0FMVCkKLSAgICByZXR1cm4gTUJFRFRMU19FUlJfRUNQX0ZFQVRVUkVfVU5BVkFJTEFCTEU7Ci0jZWxzZQotICAgIGludCByZXQgPSBNQkVEVExTX0VSUl9FUlJPUl9DT1JSVVBUSU9OX0RFVEVDVEVEOwotICAgIE1QSV9FQ1BfSU5WKCZQLT5aLCAmUC0+Wik7Ci0gICAgTVBJX0VDUF9NVUwoJlAtPlgsICZQLT5YLCAmUC0+Wik7Ci0gICAgTVBJX0VDUF9MU0VUKCZQLT5aLCAxKTsKLQotY2xlYW51cDoKLSAgICByZXR1cm4gcmV0OwotI2VuZGlmIC8qICFkZWZpbmVkKE1CRURUTFNfRUNQX05PX0ZBTExCQUNLKSB8fCAhZGVmaW5lZChNQkVEVExTX0VDUF9OT1JNQUxJWkVfTVhaX0FMVCkgKi8KLX0KLQotLyoKLSAqIFJhbmRvbWl6ZSBwcm9qZWN0aXZlIHgveiBjb29yZGluYXRlczoKLSAqIChYLCBaKSAtPiAobCBYLCBsIFopIGZvciByYW5kb20gbAotICogVGhpcyBpcyBzb3J0IG9mIHRoZSByZXZlcnNlIG9wZXJhdGlvbiBvZiBlY3Bfbm9ybWFsaXplX214eigpLgotICoKLSAqIFRoaXMgY291bnRlcm1lYXN1cmUgd2FzIGZpcnN0IHN1Z2dlc3RlZCBpbiBbMl0uCi0gKiBDb3N0OiAyTQotICovCi1zdGF0aWMgaW50IGVjcF9yYW5kb21pemVfbXh6KGNvbnN0IG1iZWR0bHNfZWNwX2dyb3VwICpncnAsIG1iZWR0bHNfZWNwX3BvaW50ICpQLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgKCpmX3JuZykodm9pZCAqLCB1bnNpZ25lZCBjaGFyICosIHNpemVfdCksIHZvaWQgKnBfcm5nKQotewotI2lmIGRlZmluZWQoTUJFRFRMU19FQ1BfUkFORE9NSVpFX01YWl9BTFQpCi0gICAgaWYgKG1iZWR0bHNfaW50ZXJuYWxfZWNwX2dycF9jYXBhYmxlKGdycCkpIHsKLSAgICAgICAgcmV0dXJuIG1iZWR0bHNfaW50ZXJuYWxfZWNwX3JhbmRvbWl6ZV9teHooZ3JwLCBQLCBmX3JuZywgcF9ybmcpOwotICAgIH0KLSNlbmRpZiAvKiBNQkVEVExTX0VDUF9SQU5ET01JWkVfTVhaX0FMVCAqLwotCi0jaWYgZGVmaW5lZChNQkVEVExTX0VDUF9OT19GQUxMQkFDSykgJiYgZGVmaW5lZChNQkVEVExTX0VDUF9SQU5ET01JWkVfTVhaX0FMVCkKLSAgICByZXR1cm4gTUJFRFRMU19FUlJfRUNQX0ZFQVRVUkVfVU5BVkFJTEFCTEU7Ci0jZWxzZQotICAgIGludCByZXQgPSBNQkVEVExTX0VSUl9FUlJPUl9DT1JSVVBUSU9OX0RFVEVDVEVEOwotICAgIG1iZWR0bHNfbXBpIGw7Ci0gICAgbWJlZHRsc19tcGlfaW5pdCgmbCk7Ci0KLSAgICAvKiBHZW5lcmF0ZSBsIHN1Y2ggdGhhdCAxIDwgbCA8IHAgKi8KLSAgICBNUElfRUNQX1JBTkQoJmwpOwotCi0gICAgTVBJX0VDUF9NVUwoJlAtPlgsICZQLT5YLCAmbCk7Ci0gICAgTVBJX0VDUF9NVUwoJlAtPlosICZQLT5aLCAmbCk7Ci0KLWNsZWFudXA6Ci0gICAgbWJlZHRsc19tcGlfZnJlZSgmbCk7Ci0KLSAgICBpZiAocmV0ID09IE1CRURUTFNfRVJSX01QSV9OT1RfQUNDRVBUQUJMRSkgewotICAgICAgICByZXQgPSBNQkVEVExTX0VSUl9FQ1BfUkFORE9NX0ZBSUxFRDsKLSAgICB9Ci0gICAgcmV0dXJuIHJldDsKLSNlbmRpZiAvKiAhZGVmaW5lZChNQkVEVExTX0VDUF9OT19GQUxMQkFDSykgfHwgIWRlZmluZWQoTUJFRFRMU19FQ1BfUkFORE9NSVpFX01YWl9BTFQpICovCi19Ci0KLS8qCi0gKiBEb3VibGUtYW5kLWFkZDogUiA9IDJQLCBTID0gUCArIFEsIHdpdGggZCA9IFgoUCAtIFEpLAotICogZm9yIE1vbnRnb21lcnkgY3VydmVzIGluIHgveiBjb29yZGluYXRlcy4KLSAqCi0gKiBodHRwOi8vd3d3Lmh5cGVyZWxsaXB0aWMub3JnL0VGRC9nMXAvYXV0by1jb2RlL21vbnRnb20veHovbGFkZGVyL21sYWRkLTE5ODctbS5vcDMKLSAqIHdpdGgKLSAqIGQgPSAgWDEKLSAqIFAgPSAoWDIsIFoyKQotICogUSA9IChYMywgWjMpCi0gKiBSID0gKFg0LCBaNCkKLSAqIFMgPSAoWDUsIFo1KQotICogYW5kIGVsaW1pbmF0aW5nIHRlbXBvcmFyeSB2YXJpYWJsZXMgdE8sIC4uLiwgdDQuCi0gKgotICogQ29zdDogNU0gKyA0UwotICovCi1zdGF0aWMgaW50IGVjcF9kb3VibGVfYWRkX214eihjb25zdCBtYmVkdGxzX2VjcF9ncm91cCAqZ3JwLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWJlZHRsc19lY3BfcG9pbnQgKlIsIG1iZWR0bHNfZWNwX3BvaW50ICpTLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbWJlZHRsc19lY3BfcG9pbnQgKlAsIGNvbnN0IG1iZWR0bHNfZWNwX3BvaW50ICpRLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbWJlZHRsc19tcGkgKmQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYmVkdGxzX21waSBUWzRdKQotewotI2lmIGRlZmluZWQoTUJFRFRMU19FQ1BfRE9VQkxFX0FERF9NWFpfQUxUKQotICAgIGlmIChtYmVkdGxzX2ludGVybmFsX2VjcF9ncnBfY2FwYWJsZShncnApKSB7Ci0gICAgICAgIHJldHVybiBtYmVkdGxzX2ludGVybmFsX2VjcF9kb3VibGVfYWRkX214eihncnAsIFIsIFMsIFAsIFEsIGQpOwotICAgIH0KLSNlbmRpZiAvKiBNQkVEVExTX0VDUF9ET1VCTEVfQUREX01YWl9BTFQgKi8KLQotI2lmIGRlZmluZWQoTUJFRFRMU19FQ1BfTk9fRkFMTEJBQ0spICYmIGRlZmluZWQoTUJFRFRMU19FQ1BfRE9VQkxFX0FERF9NWFpfQUxUKQotICAgIHJldHVybiBNQkVEVExTX0VSUl9FQ1BfRkVBVFVSRV9VTkFWQUlMQUJMRTsKLSNlbHNlCi0gICAgaW50IHJldCA9IE1CRURUTFNfRVJSX0VSUk9SX0NPUlJVUFRJT05fREVURUNURUQ7Ci0KLSAgICBNUElfRUNQX0FERCgmVFswXSwgJlAtPlgsICAgJlAtPlopOyAgIC8qIFBwIDo9IFBYICsgUFogICAgICAgICAgICAgICAgICAgICovCi0gICAgTVBJX0VDUF9TVUIoJlRbMV0sICZQLT5YLCAgICZQLT5aKTsgICAvKiBQbSA6PSBQWCAtIFBaICAgICAgICAgICAgICAgICAgICAqLwotICAgIE1QSV9FQ1BfQUREKCZUWzJdLCAmUS0+WCwgICAmUS0+Wik7ICAgLyogUXAgOj0gUVggKyBYWiAgICAgICAgICAgICAgICAgICAgKi8KLSAgICBNUElfRUNQX1NVQigmVFszXSwgJlEtPlgsICAgJlEtPlopOyAgIC8qIFFtIDo9IFFYIC0gUVogICAgICAgICAgICAgICAgICAgICovCi0gICAgTVBJX0VDUF9NVUwoJlRbM10sICZUWzNdLCAgICZUWzBdKTsgICAvKiBRbSAqIFBwICAgICAgICAgICAgICAgICAgICAgICAgICAqLwotICAgIE1QSV9FQ1BfTVVMKCZUWzJdLCAmVFsyXSwgICAmVFsxXSk7ICAgLyogUXAgKiBQbSAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KLSAgICBNUElfRUNQX1NRUigmVFswXSwgJlRbMF0pOyAgICAgICAgICAgIC8qIFBwXjIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCi0gICAgTVBJX0VDUF9TUVIoJlRbMV0sICZUWzFdKTsgICAgICAgICAgICAvKiBQbV4yICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLwotICAgIE1QSV9FQ1BfTVVMKCZSLT5YLCAmVFswXSwgICAmVFsxXSk7ICAgLyogUHBeMiAqIFBtXjIgICAgICAgICAgICAgICAgICAgICAgKi8KLSAgICBNUElfRUNQX1NVQigmVFswXSwgJlRbMF0sICAgJlRbMV0pOyAgIC8qIFBwXjIgLSBQbV4yICAgICAgICAgICAgICAgICAgICAgICovCi0gICAgTVBJX0VDUF9NVUwoJlItPlosICZncnAtPkEsICZUWzBdKTsgICAvKiBBICogKFBwXjIgLSBQbV4yKSAgICAgICAgICAgICAgICAqLwotICAgIE1QSV9FQ1BfQUREKCZSLT5aLCAmVFsxXSwgICAmUi0+Wik7ICAgLyogWyBBICogKFBwXjItUG1eMikgXSArIFBtXjIgICAgICAgKi8KLSAgICBNUElfRUNQX0FERCgmUy0+WCwgJlRbM10sICAgJlRbMl0pOyAgIC8qIFFtKlBwICsgUXAqUG0gICAgICAgICAgICAgICAgICAgICovCi0gICAgTVBJX0VDUF9TUVIoJlMtPlgsICZTLT5YKTsgICAgICAgICAgICAvKiAoUW0qUHAgKyBRcCpQbSleMiAgICAgICAgICAgICAgICAqLwotICAgIE1QSV9FQ1BfU1VCKCZTLT5aLCAmVFszXSwgICAmVFsyXSk7ICAgLyogUW0qUHAgLSBRcCpQbSAgICAgICAgICAgICAgICAgICAgKi8KLSAgICBNUElfRUNQX1NRUigmUy0+WiwgJlMtPlopOyAgICAgICAgICAgIC8qIChRbSpQcCAtIFFwKlBtKV4yICAgICAgICAgICAgICAgICovCi0gICAgTVBJX0VDUF9NVUwoJlMtPlosIGQsICAgICAgICZTLT5aKTsgICAvKiBkICogKCBRbSpQcCAtIFFwKlBtICleMiAgICAgICAgICAqLwotICAgIE1QSV9FQ1BfTVVMKCZSLT5aLCAmVFswXSwgICAmUi0+Wik7ICAgLyogW0EqKFBwXjItUG1eMikrUG1eMl0qKFBwXjItUG1eMikgKi8KLQotY2xlYW51cDoKLQotICAgIHJldHVybiByZXQ7Ci0jZW5kaWYgLyogIWRlZmluZWQoTUJFRFRMU19FQ1BfTk9fRkFMTEJBQ0spIHx8ICFkZWZpbmVkKE1CRURUTFNfRUNQX0RPVUJMRV9BRERfTVhaX0FMVCkgKi8KLX0KLQotLyoKLSAqIE11bHRpcGxpY2F0aW9uIHdpdGggTW9udGdvbWVyeSBsYWRkZXIgaW4geC96IGNvb3JkaW5hdGVzLAotICogZm9yIGN1cnZlcyBpbiBNb250Z29tZXJ5IGZvcm0KLSAqLwotc3RhdGljIGludCBlY3BfbXVsX214eihtYmVkdGxzX2VjcF9ncm91cCAqZ3JwLCBtYmVkdGxzX2VjcF9wb2ludCAqUiwKLSAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbWJlZHRsc19tcGkgKm0sIGNvbnN0IG1iZWR0bHNfZWNwX3BvaW50ICpQLAotICAgICAgICAgICAgICAgICAgICAgICBpbnQgKCpmX3JuZykodm9pZCAqLCB1bnNpZ25lZCBjaGFyICosIHNpemVfdCksCi0gICAgICAgICAgICAgICAgICAgICAgIHZvaWQgKnBfcm5nKQotewotICAgIGludCByZXQgPSBNQkVEVExTX0VSUl9FUlJPUl9DT1JSVVBUSU9OX0RFVEVDVEVEOwotICAgIHNpemVfdCBpOwotICAgIHVuc2lnbmVkIGNoYXIgYjsKLSAgICBtYmVkdGxzX2VjcF9wb2ludCBSUDsKLSAgICBtYmVkdGxzX21waSBQWDsKLSAgICBtYmVkdGxzX21waSB0bXBbNF07Ci0gICAgbWJlZHRsc19lY3BfcG9pbnRfaW5pdCgmUlApOyBtYmVkdGxzX21waV9pbml0KCZQWCk7Ci0KLSAgICBtcGlfaW5pdF9tYW55KHRtcCwgc2l6ZW9mKHRtcCkgLyBzaXplb2YobWJlZHRsc19tcGkpKTsKLQotICAgIGlmIChmX3JuZyA9PSBOVUxMKSB7Ci0gICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9FQ1BfQkFEX0lOUFVUX0RBVEE7Ci0gICAgfQotCi0gICAgLyogU2F2ZSBQWCBhbmQgcmVhZCBmcm9tIFAgYmVmb3JlIHdyaXRpbmcgdG8gUiwgaW4gY2FzZSBQID09IFIgKi8KLSAgICBNUElfRUNQX01PVigmUFgsICZQLT5YKTsKLSAgICBNQkVEVExTX01QSV9DSEsobWJlZHRsc19lY3BfY29weSgmUlAsIFApKTsKLQotICAgIC8qIFNldCBSIHRvIHplcm8gaW4gbW9kaWZpZWQgeC96IGNvb3JkaW5hdGVzICovCi0gICAgTVBJX0VDUF9MU0VUKCZSLT5YLCAxKTsKLSAgICBNUElfRUNQX0xTRVQoJlItPlosIDApOwotICAgIG1iZWR0bHNfbXBpX2ZyZWUoJlItPlkpOwotCi0gICAgLyogUlAuWCBtaWdodCBiZSBzbGlnaHRseSBsYXJnZXIgdGhhbiBQLCBzbyByZWR1Y2UgaXQgKi8KLSAgICBNT0RfQUREKCZSUC5YKTsKLQotICAgIC8qIFJhbmRvbWl6ZSBjb29yZGluYXRlcyBvZiB0aGUgc3RhcnRpbmcgcG9pbnQgKi8KLSAgICBNQkVEVExTX01QSV9DSEsoZWNwX3JhbmRvbWl6ZV9teHooZ3JwLCAmUlAsIGZfcm5nLCBwX3JuZykpOwotCi0gICAgLyogTG9vcCBpbnZhcmlhbnQ6IFIgPSByZXN1bHQgc28gZmFyLCBSUCA9IFIgKyBQICovCi0gICAgaSA9IGdycC0+bmJpdHMgKyAxOyAvKiBvbmUgcGFzdCB0aGUgKHplcm8tYmFzZWQpIHJlcXVpcmVkIG1zYiBmb3IgcHJpdmF0ZSBrZXlzICovCi0gICAgd2hpbGUgKGktLSA+IDApIHsKLSAgICAgICAgYiA9IG1iZWR0bHNfbXBpX2dldF9iaXQobSwgaSk7Ci0gICAgICAgIC8qCi0gICAgICAgICAqICBpZiAoYikgUiA9IDJSICsgUCBlbHNlIFIgPSAyUiwKLSAgICAgICAgICogd2hpY2ggaXM6Ci0gICAgICAgICAqICBpZiAoYikgZG91YmxlX2FkZCggUlAsIFIsIFJQLCBSICkKLSAgICAgICAgICogIGVsc2UgICBkb3VibGVfYWRkKCBSLCBSUCwgUiwgUlAgKQotICAgICAgICAgKiBidXQgdXNpbmcgc2FmZSBjb25kaXRpb25hbCBzd2FwcyB0byBhdm9pZCBsZWFrcwotICAgICAgICAgKi8KLSAgICAgICAgTVBJX0VDUF9DT05EX1NXQVAoJlItPlgsICZSUC5YLCBiKTsKLSAgICAgICAgTVBJX0VDUF9DT05EX1NXQVAoJlItPlosICZSUC5aLCBiKTsKLSAgICAgICAgTUJFRFRMU19NUElfQ0hLKGVjcF9kb3VibGVfYWRkX214eihncnAsIFIsICZSUCwgUiwgJlJQLCAmUFgsIHRtcCkpOwotICAgICAgICBNUElfRUNQX0NPTkRfU1dBUCgmUi0+WCwgJlJQLlgsIGIpOwotICAgICAgICBNUElfRUNQX0NPTkRfU1dBUCgmUi0+WiwgJlJQLlosIGIpOwotICAgIH0KLQotICAgIC8qCi0gICAgICogS25vd2xlZGdlIG9mIHRoZSBwcm9qZWN0aXZlIGNvb3JkaW5hdGVzIG1heSBsZWFrIHRoZSBsYXN0IGZldyBiaXRzIG9mIHRoZQotICAgICAqIHNjYWxhciBbMV0sIGFuZCBzaW5jZSBvdXIgTVBJIGltcGxlbWVudGF0aW9uIGlzbid0IGNvbnN0YW50LWZsb3csCi0gICAgICogaW52ZXJzaW9uICh1c2VkIGZvciBjb29yZGluYXRlIG5vcm1hbGl6YXRpb24pIG1heSBsZWFrIHRoZSBmdWxsIHZhbHVlCi0gICAgICogb2YgaXRzIGlucHV0IHZpYSBzaWRlLWNoYW5uZWxzIFsyXS4KLSAgICAgKgotICAgICAqIFsxXSBodHRwczovL2VwcmludC5pYWNyLm9yZy8yMDAzLzE5MQotICAgICAqIFsyXSBodHRwczovL2VwcmludC5pYWNyLm9yZy8yMDIwLzA1NQotICAgICAqCi0gICAgICogQXZvaWQgdGhlIGxlYWsgYnkgcmFuZG9taXppbmcgY29vcmRpbmF0ZXMgYmVmb3JlIHdlIG5vcm1hbGl6ZSB0aGVtLgotICAgICAqLwotICAgIE1CRURUTFNfTVBJX0NISyhlY3BfcmFuZG9taXplX214eihncnAsIFIsIGZfcm5nLCBwX3JuZykpOwotICAgIE1CRURUTFNfTVBJX0NISyhlY3Bfbm9ybWFsaXplX214eihncnAsIFIpKTsKLQotY2xlYW51cDoKLSAgICBtYmVkdGxzX2VjcF9wb2ludF9mcmVlKCZSUCk7IG1iZWR0bHNfbXBpX2ZyZWUoJlBYKTsKLQotICAgIG1waV9mcmVlX21hbnkodG1wLCBzaXplb2YodG1wKSAvIHNpemVvZihtYmVkdGxzX21waSkpOwotICAgIHJldHVybiByZXQ7Ci19Ci0KLSNlbmRpZiAvKiBNQkVEVExTX0VDUF9NT05UR09NRVJZX0VOQUJMRUQgKi8KLQotLyoKLSAqIFJlc3RhcnRhYmxlIG11bHRpcGxpY2F0aW9uIFIgPSBtICogUAotICoKLSAqIFRoaXMgaW50ZXJuYWwgZnVuY3Rpb24gY2FuIGJlIGNhbGxlZCB3aXRob3V0IGFuIFJORyBpbiBjYXNlIHdoZXJlIHdlIGtub3cKLSAqIHRoZSBpbnB1dHMgYXJlIG5vdCBzZW5zaXRpdmUuCi0gKi8KLXN0YXRpYyBpbnQgZWNwX211bF9yZXN0YXJ0YWJsZV9pbnRlcm5hbChtYmVkdGxzX2VjcF9ncm91cCAqZ3JwLCBtYmVkdGxzX2VjcF9wb2ludCAqUiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBtYmVkdGxzX21waSAqbSwgY29uc3QgbWJlZHRsc19lY3BfcG9pbnQgKlAsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50ICgqZl9ybmcpKHZvaWQgKiwgdW5zaWduZWQgY2hhciAqLCBzaXplX3QpLCB2b2lkICpwX3JuZywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYmVkdGxzX2VjcF9yZXN0YXJ0X2N0eCAqcnNfY3R4KQotewotICAgIGludCByZXQgPSBNQkVEVExTX0VSUl9FQ1BfQkFEX0lOUFVUX0RBVEE7Ci0jaWYgZGVmaW5lZChNQkVEVExTX0VDUF9JTlRFUk5BTF9BTFQpCi0gICAgY2hhciBpc19ncnBfY2FwYWJsZSA9IDA7Ci0jZW5kaWYKLQotI2lmIGRlZmluZWQoTUJFRFRMU19FQ1BfUkVTVEFSVEFCTEUpCi0gICAgLyogcmVzZXQgb3BzIGNvdW50IGZvciB0aGlzIGNhbGwgaWYgdG9wLWxldmVsICovCi0gICAgaWYgKHJzX2N0eCAhPSBOVUxMICYmIHJzX2N0eC0+ZGVwdGgrKyA9PSAwKSB7Ci0gICAgICAgIHJzX2N0eC0+b3BzX2RvbmUgPSAwOwotICAgIH0KLSNlbHNlCi0gICAgKHZvaWQpIHJzX2N0eDsKLSNlbmRpZgotCi0jaWYgZGVmaW5lZChNQkVEVExTX0VDUF9JTlRFUk5BTF9BTFQpCi0gICAgaWYgKChpc19ncnBfY2FwYWJsZSA9IG1iZWR0bHNfaW50ZXJuYWxfZWNwX2dycF9jYXBhYmxlKGdycCkpKSB7Ci0gICAgICAgIE1CRURUTFNfTVBJX0NISyhtYmVkdGxzX2ludGVybmFsX2VjcF9pbml0KGdycCkpOwotICAgIH0KLSNlbmRpZiAvKiBNQkVEVExTX0VDUF9JTlRFUk5BTF9BTFQgKi8KLQotICAgIGludCByZXN0YXJ0aW5nID0gMDsKLSNpZiBkZWZpbmVkKE1CRURUTFNfRUNQX1JFU1RBUlRBQkxFKQotICAgIHJlc3RhcnRpbmcgPSAocnNfY3R4ICE9IE5VTEwgJiYgcnNfY3R4LT5yc20gIT0gTlVMTCk7Ci0jZW5kaWYKLSAgICAvKiBza2lwIGFyZ3VtZW50IGNoZWNrIHdoZW4gcmVzdGFydGluZyAqLwotICAgIGlmICghcmVzdGFydGluZykgewotICAgICAgICAvKiBjaGVja19wcml2a2V5IGlzIGZyZWUgKi8KLSAgICAgICAgTUJFRFRMU19FQ1BfQlVER0VUKE1CRURUTFNfRUNQX09QU19DSEspOwotCi0gICAgICAgIC8qIENvbW1vbiBzYW5pdHkgY2hlY2tzICovCi0gICAgICAgIE1CRURUTFNfTVBJX0NISyhtYmVkdGxzX2VjcF9jaGVja19wcml2a2V5KGdycCwgbSkpOwotICAgICAgICBNQkVEVExTX01QSV9DSEsobWJlZHRsc19lY3BfY2hlY2tfcHVia2V5KGdycCwgUCkpOwotICAgIH0KLQotICAgIHJldCA9IE1CRURUTFNfRVJSX0VDUF9CQURfSU5QVVRfREFUQTsKLSNpZiBkZWZpbmVkKE1CRURUTFNfRUNQX01PTlRHT01FUllfRU5BQkxFRCkKLSAgICBpZiAobWJlZHRsc19lY3BfZ2V0X3R5cGUoZ3JwKSA9PSBNQkVEVExTX0VDUF9UWVBFX01PTlRHT01FUlkpIHsKLSAgICAgICAgTUJFRFRMU19NUElfQ0hLKGVjcF9tdWxfbXh6KGdycCwgUiwgbSwgUCwgZl9ybmcsIHBfcm5nKSk7Ci0gICAgfQotI2VuZGlmCi0jaWYgZGVmaW5lZChNQkVEVExTX0VDUF9TSE9SVF9XRUlFUlNUUkFTU19FTkFCTEVEKQotICAgIGlmIChtYmVkdGxzX2VjcF9nZXRfdHlwZShncnApID09IE1CRURUTFNfRUNQX1RZUEVfU0hPUlRfV0VJRVJTVFJBU1MpIHsKLSAgICAgICAgTUJFRFRMU19NUElfQ0hLKGVjcF9tdWxfY29tYihncnAsIFIsIG0sIFAsIGZfcm5nLCBwX3JuZywgcnNfY3R4KSk7Ci0gICAgfQotI2VuZGlmCi0KLWNsZWFudXA6Ci0KLSNpZiBkZWZpbmVkKE1CRURUTFNfRUNQX0lOVEVSTkFMX0FMVCkKLSAgICBpZiAoaXNfZ3JwX2NhcGFibGUpIHsKLSAgICAgICAgbWJlZHRsc19pbnRlcm5hbF9lY3BfZnJlZShncnApOwotICAgIH0KLSNlbmRpZiAvKiBNQkVEVExTX0VDUF9JTlRFUk5BTF9BTFQgKi8KLQotI2lmIGRlZmluZWQoTUJFRFRMU19FQ1BfUkVTVEFSVEFCTEUpCi0gICAgaWYgKHJzX2N0eCAhPSBOVUxMKSB7Ci0gICAgICAgIHJzX2N0eC0+ZGVwdGgtLTsKLSAgICB9Ci0jZW5kaWYKLQotICAgIHJldHVybiByZXQ7Ci19Ci0KLS8qCi0gKiBSZXN0YXJ0YWJsZSBtdWx0aXBsaWNhdGlvbiBSID0gbSAqIFAKLSAqLwotaW50IG1iZWR0bHNfZWNwX211bF9yZXN0YXJ0YWJsZShtYmVkdGxzX2VjcF9ncm91cCAqZ3JwLCBtYmVkdGxzX2VjcF9wb2ludCAqUiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbWJlZHRsc19tcGkgKm0sIGNvbnN0IG1iZWR0bHNfZWNwX3BvaW50ICpQLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgKCpmX3JuZykodm9pZCAqLCB1bnNpZ25lZCBjaGFyICosIHNpemVfdCksIHZvaWQgKnBfcm5nLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYmVkdGxzX2VjcF9yZXN0YXJ0X2N0eCAqcnNfY3R4KQotewotICAgIGlmIChmX3JuZyA9PSBOVUxMKSB7Ci0gICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9FQ1BfQkFEX0lOUFVUX0RBVEE7Ci0gICAgfQotCi0gICAgcmV0dXJuIGVjcF9tdWxfcmVzdGFydGFibGVfaW50ZXJuYWwoZ3JwLCBSLCBtLCBQLCBmX3JuZywgcF9ybmcsIHJzX2N0eCk7Ci19Ci0KLS8qCi0gKiBNdWx0aXBsaWNhdGlvbiBSID0gbSAqIFAKLSAqLwotaW50IG1iZWR0bHNfZWNwX211bChtYmVkdGxzX2VjcF9ncm91cCAqZ3JwLCBtYmVkdGxzX2VjcF9wb2ludCAqUiwKLSAgICAgICAgICAgICAgICAgICAgY29uc3QgbWJlZHRsc19tcGkgKm0sIGNvbnN0IG1iZWR0bHNfZWNwX3BvaW50ICpQLAotICAgICAgICAgICAgICAgICAgICBpbnQgKCpmX3JuZykodm9pZCAqLCB1bnNpZ25lZCBjaGFyICosIHNpemVfdCksIHZvaWQgKnBfcm5nKQotewotICAgIHJldHVybiBtYmVkdGxzX2VjcF9tdWxfcmVzdGFydGFibGUoZ3JwLCBSLCBtLCBQLCBmX3JuZywgcF9ybmcsIE5VTEwpOwotfQotI2VuZGlmIC8qIE1CRURUTFNfRUNQX0MgKi8KLQotI2lmIGRlZmluZWQoTUJFRFRMU19FQ1BfU0hPUlRfV0VJRVJTVFJBU1NfRU5BQkxFRCkKLS8qCi0gKiBDaGVjayB0aGF0IGFuIGFmZmluZSBwb2ludCBpcyB2YWxpZCBhcyBhIHB1YmxpYyBrZXksCi0gKiBzaG9ydCB3ZWllcnN0cmFzcyBjdXJ2ZXMgKFNFQzEgMy4yLjMuMSkKLSAqLwotc3RhdGljIGludCBlY3BfY2hlY2tfcHVia2V5X3N3KGNvbnN0IG1iZWR0bHNfZWNwX2dyb3VwICpncnAsIGNvbnN0IG1iZWR0bHNfZWNwX3BvaW50ICpwdCkKLXsKLSAgICBpbnQgcmV0ID0gTUJFRFRMU19FUlJfRVJST1JfQ09SUlVQVElPTl9ERVRFQ1RFRDsKLSAgICBtYmVkdGxzX21waSBZWSwgUkhTOwotCi0gICAgLyogcHQgY29vcmRpbmF0ZXMgbXVzdCBiZSBub3JtYWxpemVkIGZvciBvdXIgY2hlY2tzICovCi0gICAgaWYgKG1iZWR0bHNfbXBpX2NtcF9pbnQoJnB0LT5YLCAwKSA8IDAgfHwKLSAgICAgICAgbWJlZHRsc19tcGlfY21wX2ludCgmcHQtPlksIDApIDwgMCB8fAotICAgICAgICBtYmVkdGxzX21waV9jbXBfbXBpKCZwdC0+WCwgJmdycC0+UCkgPj0gMCB8fAotICAgICAgICBtYmVkdGxzX21waV9jbXBfbXBpKCZwdC0+WSwgJmdycC0+UCkgPj0gMCkgewotICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfRUNQX0lOVkFMSURfS0VZOwotICAgIH0KLQotICAgIG1iZWR0bHNfbXBpX2luaXQoJllZKTsgbWJlZHRsc19tcGlfaW5pdCgmUkhTKTsKLQotICAgIC8qCi0gICAgICogWVkgPSBZXjIKLSAgICAgKiBSSFMgPSBYXjMgKyBBIFggKyBCCi0gICAgICovCi0gICAgTVBJX0VDUF9TUVIoJllZLCAgJnB0LT5ZKTsKLSAgICBNQkVEVExTX01QSV9DSEsoZWNwX3N3X3JocyhncnAsICZSSFMsICZwdC0+WCkpOwotCi0gICAgaWYgKE1QSV9FQ1BfQ01QKCZZWSwgJlJIUykgIT0gMCkgewotICAgICAgICByZXQgPSBNQkVEVExTX0VSUl9FQ1BfSU5WQUxJRF9LRVk7Ci0gICAgfQotCi1jbGVhbnVwOgotCi0gICAgbWJlZHRsc19tcGlfZnJlZSgmWVkpOyBtYmVkdGxzX21waV9mcmVlKCZSSFMpOwotCi0gICAgcmV0dXJuIHJldDsKLX0KLSNlbmRpZiAvKiBNQkVEVExTX0VDUF9TSE9SVF9XRUlFUlNUUkFTU19FTkFCTEVEICovCi0KLSNpZiBkZWZpbmVkKE1CRURUTFNfRUNQX0MpCi0jaWYgZGVmaW5lZChNQkVEVExTX0VDUF9TSE9SVF9XRUlFUlNUUkFTU19FTkFCTEVEKQotLyoKLSAqIFIgPSBtICogUCB3aXRoIHNob3J0Y3V0cyBmb3IgbSA9PSAwLCBtID09IDEgYW5kIG0gPT0gLTEKLSAqIE5PVCBjb25zdGFudC10aW1lIC0gT05MWSBmb3Igc2hvcnQgV2VpZXJzdHJhc3MhCi0gKi8KLXN0YXRpYyBpbnQgbWJlZHRsc19lY3BfbXVsX3Nob3J0Y3V0cyhtYmVkdGxzX2VjcF9ncm91cCAqZ3JwLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1iZWR0bHNfZWNwX3BvaW50ICpSLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IG1iZWR0bHNfbXBpICptLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IG1iZWR0bHNfZWNwX3BvaW50ICpQLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1iZWR0bHNfZWNwX3Jlc3RhcnRfY3R4ICpyc19jdHgpCi17Ci0gICAgaW50IHJldCA9IE1CRURUTFNfRVJSX0VSUk9SX0NPUlJVUFRJT05fREVURUNURUQ7Ci0gICAgbWJlZHRsc19tcGkgdG1wOwotICAgIG1iZWR0bHNfbXBpX2luaXQoJnRtcCk7Ci0KLSAgICBpZiAobWJlZHRsc19tcGlfY21wX2ludChtLCAwKSA9PSAwKSB7Ci0gICAgICAgIE1CRURUTFNfTVBJX0NISyhtYmVkdGxzX2VjcF9jaGVja19wdWJrZXkoZ3JwLCBQKSk7Ci0gICAgICAgIE1CRURUTFNfTVBJX0NISyhtYmVkdGxzX2VjcF9zZXRfemVybyhSKSk7Ci0gICAgfSBlbHNlIGlmIChtYmVkdGxzX21waV9jbXBfaW50KG0sIDEpID09IDApIHsKLSAgICAgICAgTUJFRFRMU19NUElfQ0hLKG1iZWR0bHNfZWNwX2NoZWNrX3B1YmtleShncnAsIFApKTsKLSAgICAgICAgTUJFRFRMU19NUElfQ0hLKG1iZWR0bHNfZWNwX2NvcHkoUiwgUCkpOwotICAgIH0gZWxzZSBpZiAobWJlZHRsc19tcGlfY21wX2ludChtLCAtMSkgPT0gMCkgewotICAgICAgICBNQkVEVExTX01QSV9DSEsobWJlZHRsc19lY3BfY2hlY2tfcHVia2V5KGdycCwgUCkpOwotICAgICAgICBNQkVEVExTX01QSV9DSEsobWJlZHRsc19lY3BfY29weShSLCBQKSk7Ci0gICAgICAgIE1QSV9FQ1BfTkVHKCZSLT5ZKTsKLSAgICB9IGVsc2UgewotICAgICAgICBNQkVEVExTX01QSV9DSEsoZWNwX211bF9yZXN0YXJ0YWJsZV9pbnRlcm5hbChncnAsIFIsIG0sIFAsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5VTEwsIE5VTEwsIHJzX2N0eCkpOwotICAgIH0KLQotY2xlYW51cDoKLSAgICBtYmVkdGxzX21waV9mcmVlKCZ0bXApOwotCi0gICAgcmV0dXJuIHJldDsKLX0KLQotLyoKLSAqIFJlc3RhcnRhYmxlIGxpbmVhciBjb21iaW5hdGlvbgotICogTk9UIGNvbnN0YW50LXRpbWUKLSAqLwotaW50IG1iZWR0bHNfZWNwX211bGFkZF9yZXN0YXJ0YWJsZSgKLSAgICBtYmVkdGxzX2VjcF9ncm91cCAqZ3JwLCBtYmVkdGxzX2VjcF9wb2ludCAqUiwKLSAgICBjb25zdCBtYmVkdGxzX21waSAqbSwgY29uc3QgbWJlZHRsc19lY3BfcG9pbnQgKlAsCi0gICAgY29uc3QgbWJlZHRsc19tcGkgKm4sIGNvbnN0IG1iZWR0bHNfZWNwX3BvaW50ICpRLAotICAgIG1iZWR0bHNfZWNwX3Jlc3RhcnRfY3R4ICpyc19jdHgpCi17Ci0gICAgaW50IHJldCA9IE1CRURUTFNfRVJSX0VSUk9SX0NPUlJVUFRJT05fREVURUNURUQ7Ci0gICAgbWJlZHRsc19lY3BfcG9pbnQgbVA7Ci0gICAgbWJlZHRsc19lY3BfcG9pbnQgKnBtUCA9ICZtUDsKLSAgICBtYmVkdGxzX2VjcF9wb2ludCAqcFIgPSBSOwotICAgIG1iZWR0bHNfbXBpIHRtcFs0XTsKLSNpZiBkZWZpbmVkKE1CRURUTFNfRUNQX0lOVEVSTkFMX0FMVCkKLSAgICBjaGFyIGlzX2dycF9jYXBhYmxlID0gMDsKLSNlbmRpZgotICAgIGlmIChtYmVkdGxzX2VjcF9nZXRfdHlwZShncnApICE9IE1CRURUTFNfRUNQX1RZUEVfU0hPUlRfV0VJRVJTVFJBU1MpIHsKLSAgICAgICAgcmV0dXJuIE1CRURUTFNfRVJSX0VDUF9GRUFUVVJFX1VOQVZBSUxBQkxFOwotICAgIH0KLQotICAgIG1iZWR0bHNfZWNwX3BvaW50X2luaXQoJm1QKTsKLSAgICBtcGlfaW5pdF9tYW55KHRtcCwgc2l6ZW9mKHRtcCkgLyBzaXplb2YobWJlZHRsc19tcGkpKTsKLQotICAgIEVDUF9SU19FTlRFUihtYSk7Ci0KLSNpZiBkZWZpbmVkKE1CRURUTFNfRUNQX1JFU1RBUlRBQkxFKQotICAgIGlmIChyc19jdHggIT0gTlVMTCAmJiByc19jdHgtPm1hICE9IE5VTEwpIHsKLSAgICAgICAgLyogcmVkaXJlY3QgaW50ZXJtZWRpYXRlIHJlc3VsdHMgdG8gcmVzdGFydCBjb250ZXh0ICovCi0gICAgICAgIHBtUCA9ICZyc19jdHgtPm1hLT5tUDsKLSAgICAgICAgcFIgID0gJnJzX2N0eC0+bWEtPlI7Ci0KLSAgICAgICAgLyoganVtcCB0byBuZXh0IG9wZXJhdGlvbiAqLwotICAgICAgICBpZiAocnNfY3R4LT5tYS0+c3RhdGUgPT0gZWNwX3JzbWFfbXVsMikgewotICAgICAgICAgICAgZ290byBtdWwyOwotICAgICAgICB9Ci0gICAgICAgIGlmIChyc19jdHgtPm1hLT5zdGF0ZSA9PSBlY3BfcnNtYV9hZGQpIHsKLSAgICAgICAgICAgIGdvdG8gYWRkOwotICAgICAgICB9Ci0gICAgICAgIGlmIChyc19jdHgtPm1hLT5zdGF0ZSA9PSBlY3BfcnNtYV9ub3JtKSB7Ci0gICAgICAgICAgICBnb3RvIG5vcm07Ci0gICAgICAgIH0KLSAgICB9Ci0jZW5kaWYgLyogTUJFRFRMU19FQ1BfUkVTVEFSVEFCTEUgKi8KLQotICAgIE1CRURUTFNfTVBJX0NISyhtYmVkdGxzX2VjcF9tdWxfc2hvcnRjdXRzKGdycCwgcG1QLCBtLCBQLCByc19jdHgpKTsKLSNpZiBkZWZpbmVkKE1CRURUTFNfRUNQX1JFU1RBUlRBQkxFKQotICAgIGlmIChyc19jdHggIT0gTlVMTCAmJiByc19jdHgtPm1hICE9IE5VTEwpIHsKLSAgICAgICAgcnNfY3R4LT5tYS0+c3RhdGUgPSBlY3BfcnNtYV9tdWwyOwotICAgIH0KLQotbXVsMjoKLSNlbmRpZgotICAgIE1CRURUTFNfTVBJX0NISyhtYmVkdGxzX2VjcF9tdWxfc2hvcnRjdXRzKGdycCwgcFIsICBuLCBRLCByc19jdHgpKTsKLQotI2lmIGRlZmluZWQoTUJFRFRMU19FQ1BfSU5URVJOQUxfQUxUKQotICAgIGlmICgoaXNfZ3JwX2NhcGFibGUgPSBtYmVkdGxzX2ludGVybmFsX2VjcF9ncnBfY2FwYWJsZShncnApKSkgewotICAgICAgICBNQkVEVExTX01QSV9DSEsobWJlZHRsc19pbnRlcm5hbF9lY3BfaW5pdChncnApKTsKLSAgICB9Ci0jZW5kaWYgLyogTUJFRFRMU19FQ1BfSU5URVJOQUxfQUxUICovCi0KLSNpZiBkZWZpbmVkKE1CRURUTFNfRUNQX1JFU1RBUlRBQkxFKQotICAgIGlmIChyc19jdHggIT0gTlVMTCAmJiByc19jdHgtPm1hICE9IE5VTEwpIHsKLSAgICAgICAgcnNfY3R4LT5tYS0+c3RhdGUgPSBlY3BfcnNtYV9hZGQ7Ci0gICAgfQotCi1hZGQ6Ci0jZW5kaWYKLSAgICBNQkVEVExTX0VDUF9CVURHRVQoTUJFRFRMU19FQ1BfT1BTX0FERCk7Ci0gICAgTUJFRFRMU19NUElfQ0hLKGVjcF9hZGRfbWl4ZWQoZ3JwLCBwUiwgcG1QLCBwUiwgdG1wKSk7Ci0jaWYgZGVmaW5lZChNQkVEVExTX0VDUF9SRVNUQVJUQUJMRSkKLSAgICBpZiAocnNfY3R4ICE9IE5VTEwgJiYgcnNfY3R4LT5tYSAhPSBOVUxMKSB7Ci0gICAgICAgIHJzX2N0eC0+bWEtPnN0YXRlID0gZWNwX3JzbWFfbm9ybTsKLSAgICB9Ci0KLW5vcm06Ci0jZW5kaWYKLSAgICBNQkVEVExTX0VDUF9CVURHRVQoTUJFRFRMU19FQ1BfT1BTX0lOVik7Ci0gICAgTUJFRFRMU19NUElfQ0hLKGVjcF9ub3JtYWxpemVfamFjKGdycCwgcFIpKTsKLQotI2lmIGRlZmluZWQoTUJFRFRMU19FQ1BfUkVTVEFSVEFCTEUpCi0gICAgaWYgKHJzX2N0eCAhPSBOVUxMICYmIHJzX2N0eC0+bWEgIT0gTlVMTCkgewotICAgICAgICBNQkVEVExTX01QSV9DSEsobWJlZHRsc19lY3BfY29weShSLCBwUikpOwotICAgIH0KLSNlbmRpZgotCi1jbGVhbnVwOgotCi0gICAgbXBpX2ZyZWVfbWFueSh0bXAsIHNpemVvZih0bXApIC8gc2l6ZW9mKG1iZWR0bHNfbXBpKSk7Ci0KLSNpZiBkZWZpbmVkKE1CRURUTFNfRUNQX0lOVEVSTkFMX0FMVCkKLSAgICBpZiAoaXNfZ3JwX2NhcGFibGUpIHsKLSAgICAgICAgbWJlZHRsc19pbnRlcm5hbF9lY3BfZnJlZShncnApOwotICAgIH0KLSNlbmRpZiAvKiBNQkVEVExTX0VDUF9JTlRFUk5BTF9BTFQgKi8KLQotICAgIG1iZWR0bHNfZWNwX3BvaW50X2ZyZWUoJm1QKTsKLQotICAgIEVDUF9SU19MRUFWRShtYSk7Ci0KLSAgICByZXR1cm4gcmV0OwotfQotCi0vKgotICogTGluZWFyIGNvbWJpbmF0aW9uCi0gKiBOT1QgY29uc3RhbnQtdGltZQotICovCi1pbnQgbWJlZHRsc19lY3BfbXVsYWRkKG1iZWR0bHNfZWNwX2dyb3VwICpncnAsIG1iZWR0bHNfZWNwX3BvaW50ICpSLAotICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBtYmVkdGxzX21waSAqbSwgY29uc3QgbWJlZHRsc19lY3BfcG9pbnQgKlAsCi0gICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IG1iZWR0bHNfbXBpICpuLCBjb25zdCBtYmVkdGxzX2VjcF9wb2ludCAqUSkKLXsKLSAgICByZXR1cm4gbWJlZHRsc19lY3BfbXVsYWRkX3Jlc3RhcnRhYmxlKGdycCwgUiwgbSwgUCwgbiwgUSwgTlVMTCk7Ci19Ci0jZW5kaWYgLyogTUJFRFRMU19FQ1BfU0hPUlRfV0VJRVJTVFJBU1NfRU5BQkxFRCAqLwotI2VuZGlmIC8qIE1CRURUTFNfRUNQX0MgKi8KLQotI2lmIGRlZmluZWQoTUJFRFRMU19FQ1BfTU9OVEdPTUVSWV9FTkFCTEVEKQotI2lmIGRlZmluZWQoTUJFRFRMU19FQ1BfRFBfQ1VSVkUyNTUxOV9FTkFCTEVEKQotI2RlZmluZSBFQ1BfTVBJX0lOSVQoX3AsIF9uKSB7IC5wID0gKG1iZWR0bHNfbXBpX3VpbnQgKikgKF9wKSwgLnMgPSAxLCAubiA9IChfbikgfQotI2RlZmluZSBFQ1BfTVBJX0lOSVRfQVJSQVkoeCkgICBcCi0gICAgRUNQX01QSV9JTklUKHgsIHNpemVvZih4KSAvIHNpemVvZihtYmVkdGxzX21waV91aW50KSkKLS8qCi0gKiBDb25zdGFudHMgZm9yIHRoZSB0d28gcG9pbnRzIG90aGVyIHRoYW4gMCwgMSwgLTEgKG1vZCBwKSBpbgotICogaHR0cHM6Ly9jci55cC50by9lY2RoLmh0bWwjdmFsaWRhdGUKLSAqIFNlZSBlY3BfY2hlY2tfcHVia2V5X3gyNTUxOSgpLgotICovCi1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCB4MjU1MTlfYmFkX3BvaW50XzFbXSA9IHsKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4ZTAsIDB4ZWIsIDB4N2EsIDB4N2MsIDB4M2IsIDB4NDEsIDB4YjgsIDB4YWUpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgxNiwgMHg1NiwgMHhlMywgMHhmYSwgMHhmMSwgMHg5ZiwgMHhjNCwgMHg2YSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweGRhLCAweDA5LCAweDhkLCAweGViLCAweDljLCAweDMyLCAweGIxLCAweGZkKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4ODYsIDB4NjIsIDB4MDUsIDB4MTYsIDB4NWYsIDB4NDksIDB4YjgsIDB4MDApLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHgyNTUxOV9iYWRfcG9pbnRfMltdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg1ZiwgMHg5YywgMHg5NSwgMHhiYywgMHhhMywgMHg1MCwgMHg4YywgMHgyNCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweGIxLCAweGQwLCAweGIxLCAweDU1LCAweDljLCAweDgzLCAweGVmLCAweDViKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MDQsIDB4NDQsIDB4NWMsIDB4YzQsIDB4NTgsIDB4MWMsIDB4OGUsIDB4ODYpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhkOCwgMHgyMiwgMHg0ZSwgMHhkZCwgMHhkMCwgMHg5ZiwgMHgxMSwgMHg1NyksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpIGVjcF94MjU1MTlfYmFkX3BvaW50XzEgPSBFQ1BfTVBJX0lOSVRfQVJSQVkoCi0gICAgeDI1NTE5X2JhZF9wb2ludF8xKTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waSBlY3BfeDI1NTE5X2JhZF9wb2ludF8yID0gRUNQX01QSV9JTklUX0FSUkFZKAotICAgIHgyNTUxOV9iYWRfcG9pbnRfMik7Ci0jZW5kaWYgLyogTUJFRFRMU19FQ1BfRFBfQ1VSVkUyNTUxOV9FTkFCTEVEICovCi0KLS8qCi0gKiBDaGVjayB0aGF0IHRoZSBpbnB1dCBwb2ludCBpcyBub3Qgb25lIG9mIHRoZSBsb3ctb3JkZXIgcG9pbnRzLgotICogVGhpcyBpcyByZWNvbW1lbmRlZCBieSB0aGUgIk1heSB0aGUgRm91cnRoIiBwYXBlcjoKLSAqIGh0dHBzOi8vZXByaW50LmlhY3Iub3JnLzIwMTcvODA2LnBkZgotICogVGhvc2UgcG9pbnRzIGFyZSBuZXZlciBzZW50IGJ5IGFuIGhvbmVzdCBwZWVyLgotICovCi1zdGF0aWMgaW50IGVjcF9jaGVja19iYWRfcG9pbnRzX214KGNvbnN0IG1iZWR0bHNfbXBpICpYLCBjb25zdCBtYmVkdGxzX21waSAqUCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbWJlZHRsc19lY3BfZ3JvdXBfaWQgZ3JwX2lkKQotewotICAgIGludCByZXQ7Ci0gICAgbWJlZHRsc19tcGkgWG1QOwotCi0gICAgbWJlZHRsc19tcGlfaW5pdCgmWG1QKTsKLQotICAgIC8qIFJlZHVjZSBYIG1vZCBQIHNvIHRoYXQgd2Ugb25seSBuZWVkIHRvIGNoZWNrIHZhbHVlcyBsZXNzIHRoYW4gUC4KLSAgICAgKiBXZSBrbm93IFggPCAyXjI1NiBzbyB3ZSBjYW4gcHJvY2VlZCBieSBzdWJ0cmFjdGlvbi4gKi8KLSAgICBNQkVEVExTX01QSV9DSEsobWJlZHRsc19tcGlfY29weSgmWG1QLCBYKSk7Ci0gICAgd2hpbGUgKG1iZWR0bHNfbXBpX2NtcF9tcGkoJlhtUCwgUCkgPj0gMCkgewotICAgICAgICBNQkVEVExTX01QSV9DSEsobWJlZHRsc19tcGlfc3ViX21waSgmWG1QLCAmWG1QLCBQKSk7Ci0gICAgfQotCi0gICAgLyogQ2hlY2sgYWdhaW5zdCB0aGUga25vd24gYmFkIHZhbHVlcyB0aGF0IGFyZSBsZXNzIHRoYW4gUC4gRm9yIEN1cnZlNDQ4Ci0gICAgICogdGhlc2UgYXJlIDAsIDEgYW5kIC0xLiBGb3IgQ3VydmUyNTUxOSB3ZSBjaGVjayB0aGUgdmFsdWVzIGxlc3MgdGhhbiBQCi0gICAgICogZnJvbSB0aGUgZm9sbG93aW5nIGxpc3Q6IGh0dHBzOi8vY3IueXAudG8vZWNkaC5odG1sI3ZhbGlkYXRlICovCi0gICAgaWYgKG1iZWR0bHNfbXBpX2NtcF9pbnQoJlhtUCwgMSkgPD0gMCkgeyAgLyogdGFrZXMgY2FyZSBvZiAwIGFuZCAxICovCi0gICAgICAgIHJldCA9IE1CRURUTFNfRVJSX0VDUF9JTlZBTElEX0tFWTsKLSAgICAgICAgZ290byBjbGVhbnVwOwotICAgIH0KLQotI2lmIGRlZmluZWQoTUJFRFRMU19FQ1BfRFBfQ1VSVkUyNTUxOV9FTkFCTEVEKQotICAgIGlmIChncnBfaWQgPT0gTUJFRFRMU19FQ1BfRFBfQ1VSVkUyNTUxOSkgewotICAgICAgICBpZiAobWJlZHRsc19tcGlfY21wX21waSgmWG1QLCAmZWNwX3gyNTUxOV9iYWRfcG9pbnRfMSkgPT0gMCkgewotICAgICAgICAgICAgcmV0ID0gTUJFRFRMU19FUlJfRUNQX0lOVkFMSURfS0VZOwotICAgICAgICAgICAgZ290byBjbGVhbnVwOwotICAgICAgICB9Ci0KLSAgICAgICAgaWYgKG1iZWR0bHNfbXBpX2NtcF9tcGkoJlhtUCwgJmVjcF94MjU1MTlfYmFkX3BvaW50XzIpID09IDApIHsKLSAgICAgICAgICAgIHJldCA9IE1CRURUTFNfRVJSX0VDUF9JTlZBTElEX0tFWTsKLSAgICAgICAgICAgIGdvdG8gY2xlYW51cDsKLSAgICAgICAgfQotICAgIH0KLSNlbHNlCi0gICAgKHZvaWQpIGdycF9pZDsKLSNlbmRpZgotCi0gICAgLyogRmluYWwgY2hlY2s6IGNoZWNrIGlmIFhtUCArIDEgaXMgUCAoZmluYWwgYmVjYXVzZSBpdCBjaGFuZ2VzIFhtUCEpICovCi0gICAgTUJFRFRMU19NUElfQ0hLKG1iZWR0bHNfbXBpX2FkZF9pbnQoJlhtUCwgJlhtUCwgMSkpOwotICAgIGlmIChtYmVkdGxzX21waV9jbXBfbXBpKCZYbVAsIFApID09IDApIHsKLSAgICAgICAgcmV0ID0gTUJFRFRMU19FUlJfRUNQX0lOVkFMSURfS0VZOwotICAgICAgICBnb3RvIGNsZWFudXA7Ci0gICAgfQotCi0gICAgcmV0ID0gMDsKLQotY2xlYW51cDoKLSAgICBtYmVkdGxzX21waV9mcmVlKCZYbVApOwotCi0gICAgcmV0dXJuIHJldDsKLX0KLQotLyoKLSAqIENoZWNrIHZhbGlkaXR5IG9mIGEgcHVibGljIGtleSBmb3IgTW9udGdvbWVyeSBjdXJ2ZXMgd2l0aCB4LW9ubHkgc2NoZW1lcwotICovCi1zdGF0aWMgaW50IGVjcF9jaGVja19wdWJrZXlfbXgoY29uc3QgbWJlZHRsc19lY3BfZ3JvdXAgKmdycCwgY29uc3QgbWJlZHRsc19lY3BfcG9pbnQgKnB0KQotewotICAgIC8qIFtDdXJ2ZTI1NTE5IHAuIDVdIEp1c3QgY2hlY2sgWCBpcyB0aGUgY29ycmVjdCBudW1iZXIgb2YgYnl0ZXMgKi8KLSAgICAvKiBBbGxvdyBhbnkgcHVibGljIHZhbHVlLCBpZiBpdCdzIHRvbyBiaWcgdGhlbiB3ZSdsbCBqdXN0IHJlZHVjZSBpdCBtb2QgcAotICAgICAqIChSRkMgNzc0OCBzZWMuIDUgcGFyYS4gMykuICovCi0gICAgaWYgKG1iZWR0bHNfbXBpX3NpemUoJnB0LT5YKSA+IChncnAtPm5iaXRzICsgNykgLyA4KSB7Ci0gICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9FQ1BfSU5WQUxJRF9LRVk7Ci0gICAgfQotCi0gICAgLyogSW1wbGljaXQgaW4gYWxsIHN0YW5kYXJkcyAoYXMgdGhleSBkb24ndCBjb25zaWRlciBuZWdhdGl2ZSBudW1iZXJzKToKLSAgICAgKiBYIG11c3QgYmUgbm9uLW5lZ2F0aXZlLiBUaGlzIGlzIG5vcm1hbGx5IGVuc3VyZWQgYnkgdGhlIHdheSBpdCdzCi0gICAgICogZW5jb2RlZCBmb3IgdHJhbnNtaXNzaW9uLCBidXQgbGV0J3MgYmUgZXh0cmEgc3VyZS4gKi8KLSAgICBpZiAobWJlZHRsc19tcGlfY21wX2ludCgmcHQtPlgsIDApIDwgMCkgewotICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfRUNQX0lOVkFMSURfS0VZOwotICAgIH0KLQotICAgIHJldHVybiBlY3BfY2hlY2tfYmFkX3BvaW50c19teCgmcHQtPlgsICZncnAtPlAsIGdycC0+aWQpOwotfQotI2VuZGlmIC8qIE1CRURUTFNfRUNQX01PTlRHT01FUllfRU5BQkxFRCAqLwotCi0vKgotICogQ2hlY2sgdGhhdCBhIHBvaW50IGlzIHZhbGlkIGFzIGEgcHVibGljIGtleQotICovCi1pbnQgbWJlZHRsc19lY3BfY2hlY2tfcHVia2V5KGNvbnN0IG1iZWR0bHNfZWNwX2dyb3VwICpncnAsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IG1iZWR0bHNfZWNwX3BvaW50ICpwdCkKLXsKLSAgICAvKiBNdXN0IHVzZSBhZmZpbmUgY29vcmRpbmF0ZXMgKi8KLSAgICBpZiAobWJlZHRsc19tcGlfY21wX2ludCgmcHQtPlosIDEpICE9IDApIHsKLSAgICAgICAgcmV0dXJuIE1CRURUTFNfRVJSX0VDUF9JTlZBTElEX0tFWTsKLSAgICB9Ci0KLSNpZiBkZWZpbmVkKE1CRURUTFNfRUNQX01PTlRHT01FUllfRU5BQkxFRCkKLSAgICBpZiAobWJlZHRsc19lY3BfZ2V0X3R5cGUoZ3JwKSA9PSBNQkVEVExTX0VDUF9UWVBFX01PTlRHT01FUlkpIHsKLSAgICAgICAgcmV0dXJuIGVjcF9jaGVja19wdWJrZXlfbXgoZ3JwLCBwdCk7Ci0gICAgfQotI2VuZGlmCi0jaWYgZGVmaW5lZChNQkVEVExTX0VDUF9TSE9SVF9XRUlFUlNUUkFTU19FTkFCTEVEKQotICAgIGlmIChtYmVkdGxzX2VjcF9nZXRfdHlwZShncnApID09IE1CRURUTFNfRUNQX1RZUEVfU0hPUlRfV0VJRVJTVFJBU1MpIHsKLSAgICAgICAgcmV0dXJuIGVjcF9jaGVja19wdWJrZXlfc3coZ3JwLCBwdCk7Ci0gICAgfQotI2VuZGlmCi0gICAgcmV0dXJuIE1CRURUTFNfRVJSX0VDUF9CQURfSU5QVVRfREFUQTsKLX0KLQotLyoKLSAqIENoZWNrIHRoYXQgYW4gbWJlZHRsc19tcGkgaXMgdmFsaWQgYXMgYSBwcml2YXRlIGtleQotICovCi1pbnQgbWJlZHRsc19lY3BfY2hlY2tfcHJpdmtleShjb25zdCBtYmVkdGxzX2VjcF9ncm91cCAqZ3JwLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbWJlZHRsc19tcGkgKmQpCi17Ci0jaWYgZGVmaW5lZChNQkVEVExTX0VDUF9NT05UR09NRVJZX0VOQUJMRUQpCi0gICAgaWYgKG1iZWR0bHNfZWNwX2dldF90eXBlKGdycCkgPT0gTUJFRFRMU19FQ1BfVFlQRV9NT05UR09NRVJZKSB7Ci0gICAgICAgIC8qIHNlZSBSRkMgNzc0OCBzZWMuIDUgcGFyYS4gNSAqLwotICAgICAgICBpZiAobWJlZHRsc19tcGlfZ2V0X2JpdChkLCAwKSAhPSAwIHx8Ci0gICAgICAgICAgICBtYmVkdGxzX21waV9nZXRfYml0KGQsIDEpICE9IDAgfHwKLSAgICAgICAgICAgIG1iZWR0bHNfbXBpX2JpdGxlbihkKSAtIDEgIT0gZ3JwLT5uYml0cykgeyAgLyogbWJlZHRsc19tcGlfYml0bGVuIGlzIG9uZS1iYXNlZCEgKi8KLSAgICAgICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9FQ1BfSU5WQUxJRF9LRVk7Ci0gICAgICAgIH0KLQotICAgICAgICAvKiBzZWUgW0N1cnZlMjU1MTldIHBhZ2UgNSAqLwotICAgICAgICBpZiAoZ3JwLT5uYml0cyA9PSAyNTQgJiYgbWJlZHRsc19tcGlfZ2V0X2JpdChkLCAyKSAhPSAwKSB7Ci0gICAgICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfRUNQX0lOVkFMSURfS0VZOwotICAgICAgICB9Ci0KLSAgICAgICAgcmV0dXJuIDA7Ci0gICAgfQotI2VuZGlmIC8qIE1CRURUTFNfRUNQX01PTlRHT01FUllfRU5BQkxFRCAqLwotI2lmIGRlZmluZWQoTUJFRFRMU19FQ1BfU0hPUlRfV0VJRVJTVFJBU1NfRU5BQkxFRCkKLSAgICBpZiAobWJlZHRsc19lY3BfZ2V0X3R5cGUoZ3JwKSA9PSBNQkVEVExTX0VDUF9UWVBFX1NIT1JUX1dFSUVSU1RSQVNTKSB7Ci0gICAgICAgIC8qIHNlZSBTRUMxIDMuMiAqLwotICAgICAgICBpZiAobWJlZHRsc19tcGlfY21wX2ludChkLCAxKSA8IDAgfHwKLSAgICAgICAgICAgIG1iZWR0bHNfbXBpX2NtcF9tcGkoZCwgJmdycC0+TikgPj0gMCkgewotICAgICAgICAgICAgcmV0dXJuIE1CRURUTFNfRVJSX0VDUF9JTlZBTElEX0tFWTsKLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIHJldHVybiAwOwotICAgICAgICB9Ci0gICAgfQotI2VuZGlmIC8qIE1CRURUTFNfRUNQX1NIT1JUX1dFSUVSU1RSQVNTX0VOQUJMRUQgKi8KLQotICAgIHJldHVybiBNQkVEVExTX0VSUl9FQ1BfQkFEX0lOUFVUX0RBVEE7Ci19Ci0KLSNpZiBkZWZpbmVkKE1CRURUTFNfRUNQX01PTlRHT01FUllfRU5BQkxFRCkKLU1CRURUTFNfU1RBVElDX1RFU1RBQkxFCi1pbnQgbWJlZHRsc19lY3BfZ2VuX3ByaXZrZXlfbXgoc2l6ZV90IGhpZ2hfYml0LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1iZWR0bHNfbXBpICpkLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCAoKmZfcm5nKSh2b2lkICosIHVuc2lnbmVkIGNoYXIgKiwgc2l6ZV90KSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2b2lkICpwX3JuZykKLXsKLSAgICBpbnQgcmV0ID0gTUJFRFRMU19FUlJfRUNQX0JBRF9JTlBVVF9EQVRBOwotICAgIHNpemVfdCBuX3JhbmRvbV9ieXRlcyA9IGhpZ2hfYml0IC8gOCArIDE7Ci0KLSAgICAvKiBbQ3VydmUyNTUxOV0gcGFnZSA1ICovCi0gICAgLyogR2VuZXJhdGUgYSAoaGlnaF9iaXQrMSktYml0IHJhbmRvbSBudW1iZXIgYnkgZ2VuZXJhdGluZyBqdXN0IGVub3VnaAotICAgICAqIHJhbmRvbSBieXRlcywgdGhlbiBzaGlmdGluZyBvdXQgZXh0cmEgYml0cyBmcm9tIHRoZSB0b3AgKG5lY2Vzc2FyeQotICAgICAqIHdoZW4gKGhpZ2hfYml0KzEpIGlzIG5vdCBhIG11bHRpcGxlIG9mIDgpLiAqLwotICAgIE1CRURUTFNfTVBJX0NISyhtYmVkdGxzX21waV9maWxsX3JhbmRvbShkLCBuX3JhbmRvbV9ieXRlcywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZl9ybmcsIHBfcm5nKSk7Ci0gICAgTUJFRFRMU19NUElfQ0hLKG1iZWR0bHNfbXBpX3NoaWZ0X3IoZCwgOCAqIG5fcmFuZG9tX2J5dGVzIC0gaGlnaF9iaXQgLSAxKSk7Ci0KLSAgICBNQkVEVExTX01QSV9DSEsobWJlZHRsc19tcGlfc2V0X2JpdChkLCBoaWdoX2JpdCwgMSkpOwotCi0gICAgLyogTWFrZSBzdXJlIHRoZSBsYXN0IHR3byBiaXRzIGFyZSB1bnNldCBmb3IgQ3VydmU0NDgsIHRocmVlIGJpdHMgZm9yCi0gICAgICAgQ3VydmUyNTUxOSAqLwotICAgIE1CRURUTFNfTVBJX0NISyhtYmVkdGxzX21waV9zZXRfYml0KGQsIDAsIDApKTsKLSAgICBNQkVEVExTX01QSV9DSEsobWJlZHRsc19tcGlfc2V0X2JpdChkLCAxLCAwKSk7Ci0gICAgaWYgKGhpZ2hfYml0ID09IDI1NCkgewotICAgICAgICBNQkVEVExTX01QSV9DSEsobWJlZHRsc19tcGlfc2V0X2JpdChkLCAyLCAwKSk7Ci0gICAgfQotCi1jbGVhbnVwOgotICAgIHJldHVybiByZXQ7Ci19Ci0jZW5kaWYgLyogTUJFRFRMU19FQ1BfTU9OVEdPTUVSWV9FTkFCTEVEICovCi0KLSNpZiBkZWZpbmVkKE1CRURUTFNfRUNQX1NIT1JUX1dFSUVSU1RSQVNTX0VOQUJMRUQpCi1zdGF0aWMgaW50IG1iZWR0bHNfZWNwX2dlbl9wcml2a2V5X3N3KAotICAgIGNvbnN0IG1iZWR0bHNfbXBpICpOLCBtYmVkdGxzX21waSAqZCwKLSAgICBpbnQgKCpmX3JuZykodm9pZCAqLCB1bnNpZ25lZCBjaGFyICosIHNpemVfdCksIHZvaWQgKnBfcm5nKQotewotICAgIGludCByZXQgPSBtYmVkdGxzX21waV9yYW5kb20oZCwgMSwgTiwgZl9ybmcsIHBfcm5nKTsKLSAgICBzd2l0Y2ggKHJldCkgewotICAgICAgICBjYXNlIE1CRURUTFNfRVJSX01QSV9OT1RfQUNDRVBUQUJMRToKLSAgICAgICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9FQ1BfUkFORE9NX0ZBSUxFRDsKLSAgICAgICAgZGVmYXVsdDoKLSAgICAgICAgICAgIHJldHVybiByZXQ7Ci0gICAgfQotfQotI2VuZGlmIC8qIE1CRURUTFNfRUNQX1NIT1JUX1dFSUVSU1RSQVNTX0VOQUJMRUQgKi8KLQotLyoKLSAqIEdlbmVyYXRlIGEgcHJpdmF0ZSBrZXkKLSAqLwotaW50IG1iZWR0bHNfZWNwX2dlbl9wcml2a2V5KGNvbnN0IG1iZWR0bHNfZWNwX2dyb3VwICpncnAsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgbWJlZHRsc19tcGkgKmQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50ICgqZl9ybmcpKHZvaWQgKiwgdW5zaWduZWQgY2hhciAqLCBzaXplX3QpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZvaWQgKnBfcm5nKQotewotI2lmIGRlZmluZWQoTUJFRFRMU19FQ1BfTU9OVEdPTUVSWV9FTkFCTEVEKQotICAgIGlmIChtYmVkdGxzX2VjcF9nZXRfdHlwZShncnApID09IE1CRURUTFNfRUNQX1RZUEVfTU9OVEdPTUVSWSkgewotICAgICAgICByZXR1cm4gbWJlZHRsc19lY3BfZ2VuX3ByaXZrZXlfbXgoZ3JwLT5uYml0cywgZCwgZl9ybmcsIHBfcm5nKTsKLSAgICB9Ci0jZW5kaWYgLyogTUJFRFRMU19FQ1BfTU9OVEdPTUVSWV9FTkFCTEVEICovCi0KLSNpZiBkZWZpbmVkKE1CRURUTFNfRUNQX1NIT1JUX1dFSUVSU1RSQVNTX0VOQUJMRUQpCi0gICAgaWYgKG1iZWR0bHNfZWNwX2dldF90eXBlKGdycCkgPT0gTUJFRFRMU19FQ1BfVFlQRV9TSE9SVF9XRUlFUlNUUkFTUykgewotICAgICAgICByZXR1cm4gbWJlZHRsc19lY3BfZ2VuX3ByaXZrZXlfc3coJmdycC0+TiwgZCwgZl9ybmcsIHBfcm5nKTsKLSAgICB9Ci0jZW5kaWYgLyogTUJFRFRMU19FQ1BfU0hPUlRfV0VJRVJTVFJBU1NfRU5BQkxFRCAqLwotCi0gICAgcmV0dXJuIE1CRURUTFNfRVJSX0VDUF9CQURfSU5QVVRfREFUQTsKLX0KLQotI2lmIGRlZmluZWQoTUJFRFRMU19FQ1BfQykKLS8qCi0gKiBHZW5lcmF0ZSBhIGtleXBhaXIgd2l0aCBjb25maWd1cmFibGUgYmFzZSBwb2ludAotICovCi1pbnQgbWJlZHRsc19lY3BfZ2VuX2tleXBhaXJfYmFzZShtYmVkdGxzX2VjcF9ncm91cCAqZ3JwLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbWJlZHRsc19lY3BfcG9pbnQgKkcsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYmVkdGxzX21waSAqZCwgbWJlZHRsc19lY3BfcG9pbnQgKlEsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgKCpmX3JuZykodm9pZCAqLCB1bnNpZ25lZCBjaGFyICosIHNpemVfdCksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2b2lkICpwX3JuZykKLXsKLSAgICBpbnQgcmV0ID0gTUJFRFRMU19FUlJfRVJST1JfQ09SUlVQVElPTl9ERVRFQ1RFRDsKLSAgICBNQkVEVExTX01QSV9DSEsobWJlZHRsc19lY3BfZ2VuX3ByaXZrZXkoZ3JwLCBkLCBmX3JuZywgcF9ybmcpKTsKLSAgICBNQkVEVExTX01QSV9DSEsobWJlZHRsc19lY3BfbXVsKGdycCwgUSwgZCwgRywgZl9ybmcsIHBfcm5nKSk7Ci0KLWNsZWFudXA6Ci0gICAgcmV0dXJuIHJldDsKLX0KLQotLyoKLSAqIEdlbmVyYXRlIGtleSBwYWlyLCB3cmFwcGVyIGZvciBjb252ZW50aW9uYWwgYmFzZSBwb2ludAotICovCi1pbnQgbWJlZHRsc19lY3BfZ2VuX2tleXBhaXIobWJlZHRsc19lY3BfZ3JvdXAgKmdycCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYmVkdGxzX21waSAqZCwgbWJlZHRsc19lY3BfcG9pbnQgKlEsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50ICgqZl9ybmcpKHZvaWQgKiwgdW5zaWduZWQgY2hhciAqLCBzaXplX3QpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZvaWQgKnBfcm5nKQotewotICAgIHJldHVybiBtYmVkdGxzX2VjcF9nZW5fa2V5cGFpcl9iYXNlKGdycCwgJmdycC0+RywgZCwgUSwgZl9ybmcsIHBfcm5nKTsKLX0KLQotLyoKLSAqIEdlbmVyYXRlIGEga2V5cGFpciwgcHJldHRpZXIgd3JhcHBlcgotICovCi1pbnQgbWJlZHRsc19lY3BfZ2VuX2tleShtYmVkdGxzX2VjcF9ncm91cF9pZCBncnBfaWQsIG1iZWR0bHNfZWNwX2tleXBhaXIgKmtleSwKLSAgICAgICAgICAgICAgICAgICAgICAgIGludCAoKmZfcm5nKSh2b2lkICosIHVuc2lnbmVkIGNoYXIgKiwgc2l6ZV90KSwgdm9pZCAqcF9ybmcpCi17Ci0gICAgaW50IHJldCA9IE1CRURUTFNfRVJSX0VSUk9SX0NPUlJVUFRJT05fREVURUNURUQ7Ci0gICAgaWYgKChyZXQgPSBtYmVkdGxzX2VjcF9ncm91cF9sb2FkKCZrZXktPmdycCwgZ3JwX2lkKSkgIT0gMCkgewotICAgICAgICByZXR1cm4gcmV0OwotICAgIH0KLQotICAgIHJldHVybiBtYmVkdGxzX2VjcF9nZW5fa2V5cGFpcigma2V5LT5ncnAsICZrZXktPmQsICZrZXktPlEsIGZfcm5nLCBwX3JuZyk7Ci19Ci0jZW5kaWYgLyogTUJFRFRMU19FQ1BfQyAqLwotCi1pbnQgbWJlZHRsc19lY3Bfc2V0X3B1YmxpY19rZXkobWJlZHRsc19lY3BfZ3JvdXBfaWQgZ3JwX2lkLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1iZWR0bHNfZWNwX2tleXBhaXIgKmtleSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBtYmVkdGxzX2VjcF9wb2ludCAqUSkKLXsKLSAgICBpbnQgcmV0ID0gTUJFRFRMU19FUlJfRVJST1JfQ09SUlVQVElPTl9ERVRFQ1RFRDsKLQotICAgIGlmIChrZXktPmdycC5pZCA9PSBNQkVEVExTX0VDUF9EUF9OT05FKSB7Ci0gICAgICAgIC8qIEdyb3VwIG5vdCBzZXQgeWV0ICovCi0gICAgICAgIGlmICgocmV0ID0gbWJlZHRsc19lY3BfZ3JvdXBfbG9hZCgma2V5LT5ncnAsIGdycF9pZCkpICE9IDApIHsKLSAgICAgICAgICAgIHJldHVybiByZXQ7Ci0gICAgICAgIH0KLSAgICB9IGVsc2UgaWYgKGtleS0+Z3JwLmlkICE9IGdycF9pZCkgewotICAgICAgICAvKiBHcm91cCBtaXNtYXRjaCAqLwotICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfRUNQX0JBRF9JTlBVVF9EQVRBOwotICAgIH0KLSAgICByZXR1cm4gbWJlZHRsc19lY3BfY29weSgma2V5LT5RLCBRKTsKLX0KLQotCi0jZGVmaW5lIEVDUF9DVVJWRTI1NTE5X0tFWV9TSVpFIDMyCi0jZGVmaW5lIEVDUF9DVVJWRTQ0OF9LRVlfU0laRSAgIDU2Ci0vKgotICogUmVhZCBhIHByaXZhdGUga2V5LgotICovCi1pbnQgbWJlZHRsc19lY3BfcmVhZF9rZXkobWJlZHRsc19lY3BfZ3JvdXBfaWQgZ3JwX2lkLCBtYmVkdGxzX2VjcF9rZXlwYWlyICprZXksCi0gICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdW5zaWduZWQgY2hhciAqYnVmLCBzaXplX3QgYnVmbGVuKQotewotICAgIGludCByZXQgPSAwOwotCi0gICAgaWYgKChyZXQgPSBtYmVkdGxzX2VjcF9ncm91cF9sb2FkKCZrZXktPmdycCwgZ3JwX2lkKSkgIT0gMCkgewotICAgICAgICByZXR1cm4gcmV0OwotICAgIH0KLQotICAgIHJldCA9IE1CRURUTFNfRVJSX0VDUF9GRUFUVVJFX1VOQVZBSUxBQkxFOwotCi0jaWYgZGVmaW5lZChNQkVEVExTX0VDUF9NT05UR09NRVJZX0VOQUJMRUQpCi0gICAgaWYgKG1iZWR0bHNfZWNwX2dldF90eXBlKCZrZXktPmdycCkgPT0gTUJFRFRMU19FQ1BfVFlQRV9NT05UR09NRVJZKSB7Ci0gICAgICAgIC8qCi0gICAgICAgICAqIE1hc2sgdGhlIGtleSBhcyBtYW5kYXRlZCBieSBSRkM3NzQ4IGZvciBDdXJ2ZTI1NTE5IGFuZCBDdXJ2ZTQ0OC4KLSAgICAgICAgICovCi0gICAgICAgIGlmIChncnBfaWQgPT0gTUJFRFRMU19FQ1BfRFBfQ1VSVkUyNTUxOSkgewotICAgICAgICAgICAgaWYgKGJ1ZmxlbiAhPSBFQ1BfQ1VSVkUyNTUxOV9LRVlfU0laRSkgewotICAgICAgICAgICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9FQ1BfSU5WQUxJRF9LRVk7Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIE1CRURUTFNfTVBJX0NISyhtYmVkdGxzX21waV9yZWFkX2JpbmFyeV9sZSgma2V5LT5kLCBidWYsIGJ1ZmxlbikpOwotCi0gICAgICAgICAgICAvKiBTZXQgdGhlIHRocmVlIGxlYXN0IHNpZ25pZmljYW50IGJpdHMgdG8gMCAqLwotICAgICAgICAgICAgTUJFRFRMU19NUElfQ0hLKG1iZWR0bHNfbXBpX3NldF9iaXQoJmtleS0+ZCwgMCwgMCkpOwotICAgICAgICAgICAgTUJFRFRMU19NUElfQ0hLKG1iZWR0bHNfbXBpX3NldF9iaXQoJmtleS0+ZCwgMSwgMCkpOwotICAgICAgICAgICAgTUJFRFRMU19NUElfQ0hLKG1iZWR0bHNfbXBpX3NldF9iaXQoJmtleS0+ZCwgMiwgMCkpOwotCi0gICAgICAgICAgICAvKiBTZXQgdGhlIG1vc3Qgc2lnbmlmaWNhbnQgYml0IHRvIDAgKi8KLSAgICAgICAgICAgIE1CRURUTFNfTVBJX0NISygKLSAgICAgICAgICAgICAgICBtYmVkdGxzX21waV9zZXRfYml0KCZrZXktPmQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFQ1BfQ1VSVkUyNTUxOV9LRVlfU0laRSAqIDggLSAxLCAwKQotICAgICAgICAgICAgICAgICk7Ci0KLSAgICAgICAgICAgIC8qIFNldCB0aGUgc2Vjb25kIG1vc3Qgc2lnbmlmaWNhbnQgYml0IHRvIDEgKi8KLSAgICAgICAgICAgIE1CRURUTFNfTVBJX0NISygKLSAgICAgICAgICAgICAgICBtYmVkdGxzX21waV9zZXRfYml0KCZrZXktPmQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFQ1BfQ1VSVkUyNTUxOV9LRVlfU0laRSAqIDggLSAyLCAxKQotICAgICAgICAgICAgICAgICk7Ci0gICAgICAgIH0gZWxzZSBpZiAoZ3JwX2lkID09IE1CRURUTFNfRUNQX0RQX0NVUlZFNDQ4KSB7Ci0gICAgICAgICAgICBpZiAoYnVmbGVuICE9IEVDUF9DVVJWRTQ0OF9LRVlfU0laRSkgewotICAgICAgICAgICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9FQ1BfSU5WQUxJRF9LRVk7Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIE1CRURUTFNfTVBJX0NISyhtYmVkdGxzX21waV9yZWFkX2JpbmFyeV9sZSgma2V5LT5kLCBidWYsIGJ1ZmxlbikpOwotCi0gICAgICAgICAgICAvKiBTZXQgdGhlIHR3byBsZWFzdCBzaWduaWZpY2FudCBiaXRzIHRvIDAgKi8KLSAgICAgICAgICAgIE1CRURUTFNfTVBJX0NISyhtYmVkdGxzX21waV9zZXRfYml0KCZrZXktPmQsIDAsIDApKTsKLSAgICAgICAgICAgIE1CRURUTFNfTVBJX0NISyhtYmVkdGxzX21waV9zZXRfYml0KCZrZXktPmQsIDEsIDApKTsKLQotICAgICAgICAgICAgLyogU2V0IHRoZSBtb3N0IHNpZ25pZmljYW50IGJpdCB0byAxICovCi0gICAgICAgICAgICBNQkVEVExTX01QSV9DSEsoCi0gICAgICAgICAgICAgICAgbWJlZHRsc19tcGlfc2V0X2JpdCgma2V5LT5kLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRUNQX0NVUlZFNDQ4X0tFWV9TSVpFICogOCAtIDEsIDEpCi0gICAgICAgICAgICAgICAgKTsKLSAgICAgICAgfQotICAgIH0KLSNlbmRpZgotI2lmIGRlZmluZWQoTUJFRFRMU19FQ1BfU0hPUlRfV0VJRVJTVFJBU1NfRU5BQkxFRCkKLSAgICBpZiAobWJlZHRsc19lY3BfZ2V0X3R5cGUoJmtleS0+Z3JwKSA9PSBNQkVEVExTX0VDUF9UWVBFX1NIT1JUX1dFSUVSU1RSQVNTKSB7Ci0gICAgICAgIE1CRURUTFNfTVBJX0NISyhtYmVkdGxzX21waV9yZWFkX2JpbmFyeSgma2V5LT5kLCBidWYsIGJ1ZmxlbikpOwotICAgIH0KLSNlbmRpZgotCi0gICAgaWYgKHJldCA9PSAwKSB7Ci0gICAgICAgIE1CRURUTFNfTVBJX0NISyhtYmVkdGxzX2VjcF9jaGVja19wcml2a2V5KCZrZXktPmdycCwgJmtleS0+ZCkpOwotICAgIH0KLQotY2xlYW51cDoKLQotICAgIGlmIChyZXQgIT0gMCkgewotICAgICAgICBtYmVkdGxzX21waV9mcmVlKCZrZXktPmQpOwotICAgIH0KLQotICAgIHJldHVybiByZXQ7Ci19Ci0KLS8qCi0gKiBXcml0ZSBhIHByaXZhdGUga2V5LgotICovCi0jaWYgIWRlZmluZWQgTUJFRFRMU19ERVBSRUNBVEVEX1JFTU9WRUQKLWludCBtYmVkdGxzX2VjcF93cml0ZV9rZXkobWJlZHRsc19lY3Bfa2V5cGFpciAqa2V5LAotICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBjaGFyICpidWYsIHNpemVfdCBidWZsZW4pCi17Ci0gICAgaW50IHJldCA9IE1CRURUTFNfRVJSX0VSUk9SX0NPUlJVUFRJT05fREVURUNURUQ7Ci0KLSNpZiBkZWZpbmVkKE1CRURUTFNfRUNQX01PTlRHT01FUllfRU5BQkxFRCkKLSAgICBpZiAobWJlZHRsc19lY3BfZ2V0X3R5cGUoJmtleS0+Z3JwKSA9PSBNQkVEVExTX0VDUF9UWVBFX01PTlRHT01FUlkpIHsKLSAgICAgICAgaWYgKGtleS0+Z3JwLmlkID09IE1CRURUTFNfRUNQX0RQX0NVUlZFMjU1MTkpIHsKLSAgICAgICAgICAgIGlmIChidWZsZW4gPCBFQ1BfQ1VSVkUyNTUxOV9LRVlfU0laRSkgewotICAgICAgICAgICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9FQ1BfQlVGRkVSX1RPT19TTUFMTDsKLSAgICAgICAgICAgIH0KLQotICAgICAgICB9IGVsc2UgaWYgKGtleS0+Z3JwLmlkID09IE1CRURUTFNfRUNQX0RQX0NVUlZFNDQ4KSB7Ci0gICAgICAgICAgICBpZiAoYnVmbGVuIDwgRUNQX0NVUlZFNDQ4X0tFWV9TSVpFKSB7Ci0gICAgICAgICAgICAgICAgcmV0dXJuIE1CRURUTFNfRVJSX0VDUF9CVUZGRVJfVE9PX1NNQUxMOwotICAgICAgICAgICAgfQotICAgICAgICB9Ci0gICAgICAgIE1CRURUTFNfTVBJX0NISyhtYmVkdGxzX21waV93cml0ZV9iaW5hcnlfbGUoJmtleS0+ZCwgYnVmLCBidWZsZW4pKTsKLSAgICB9Ci0jZW5kaWYKLSNpZiBkZWZpbmVkKE1CRURUTFNfRUNQX1NIT1JUX1dFSUVSU1RSQVNTX0VOQUJMRUQpCi0gICAgaWYgKG1iZWR0bHNfZWNwX2dldF90eXBlKCZrZXktPmdycCkgPT0gTUJFRFRMU19FQ1BfVFlQRV9TSE9SVF9XRUlFUlNUUkFTUykgewotICAgICAgICBNQkVEVExTX01QSV9DSEsobWJlZHRsc19tcGlfd3JpdGVfYmluYXJ5KCZrZXktPmQsIGJ1ZiwgYnVmbGVuKSk7Ci0gICAgfQotCi0jZW5kaWYKLWNsZWFudXA6Ci0KLSAgICByZXR1cm4gcmV0OwotfQotI2VuZGlmIC8qIE1CRURUTFNfREVQUkVDQVRFRF9SRU1PVkVEICovCi0KLWludCBtYmVkdGxzX2VjcF93cml0ZV9rZXlfZXh0KGNvbnN0IG1iZWR0bHNfZWNwX2tleXBhaXIgKmtleSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCAqb2xlbiwgdW5zaWduZWQgY2hhciAqYnVmLCBzaXplX3QgYnVmbGVuKQotewotICAgIHNpemVfdCBsZW4gPSAoa2V5LT5ncnAubmJpdHMgKyA3KSAvIDg7Ci0gICAgaWYgKGxlbiA+IGJ1ZmxlbikgewotICAgICAgICAvKiBGb3Igcm9idXN0bmVzcywgZW5zdXJlICpvbGVuIDw9IGJ1ZmxlbiBldmVuIG9uIGVycm9yLiAqLwotICAgICAgICAqb2xlbiA9IDA7Ci0gICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9FQ1BfQlVGRkVSX1RPT19TTUFMTDsKLSAgICB9Ci0gICAgKm9sZW4gPSBsZW47Ci0KLSAgICAvKiBQcml2YXRlIGtleSBub3Qgc2V0ICovCi0gICAgaWYgKGtleS0+ZC5uID09IDApIHsKLSAgICAgICAgcmV0dXJuIE1CRURUTFNfRVJSX0VDUF9CQURfSU5QVVRfREFUQTsKLSAgICB9Ci0KLSNpZiBkZWZpbmVkKE1CRURUTFNfRUNQX01PTlRHT01FUllfRU5BQkxFRCkKLSAgICBpZiAobWJlZHRsc19lY3BfZ2V0X3R5cGUoJmtleS0+Z3JwKSA9PSBNQkVEVExTX0VDUF9UWVBFX01PTlRHT01FUlkpIHsKLSAgICAgICAgcmV0dXJuIG1iZWR0bHNfbXBpX3dyaXRlX2JpbmFyeV9sZSgma2V5LT5kLCBidWYsIGxlbik7Ci0gICAgfQotI2VuZGlmCi0KLSNpZiBkZWZpbmVkKE1CRURUTFNfRUNQX1NIT1JUX1dFSUVSU1RSQVNTX0VOQUJMRUQpCi0gICAgaWYgKG1iZWR0bHNfZWNwX2dldF90eXBlKCZrZXktPmdycCkgPT0gTUJFRFRMU19FQ1BfVFlQRV9TSE9SVF9XRUlFUlNUUkFTUykgewotICAgICAgICByZXR1cm4gbWJlZHRsc19tcGlfd3JpdGVfYmluYXJ5KCZrZXktPmQsIGJ1ZiwgbGVuKTsKLSAgICB9Ci0jZW5kaWYKLQotICAgIC8qIFByaXZhdGUga2V5IHNldCBidXQgbm8gcmVjb2duaXplZCBjdXJ2ZSB0eXBlPyBUaGlzIHNob3VsZG4ndCBoYXBwZW4uICovCi0gICAgcmV0dXJuIE1CRURUTFNfRVJSX0VSUk9SX0NPUlJVUFRJT05fREVURUNURUQ7Ci19Ci0KLS8qCi0gKiBXcml0ZSBhIHB1YmxpYyBrZXkuCi0gKi8KLWludCBtYmVkdGxzX2VjcF93cml0ZV9wdWJsaWNfa2V5KGNvbnN0IG1iZWR0bHNfZWNwX2tleXBhaXIgKmtleSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBmb3JtYXQsIHNpemVfdCAqb2xlbiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGNoYXIgKmJ1Ziwgc2l6ZV90IGJ1ZmxlbikKLXsKLSAgICByZXR1cm4gbWJlZHRsc19lY3BfcG9pbnRfd3JpdGVfYmluYXJ5KCZrZXktPmdycCwgJmtleS0+USwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1hdCwgb2xlbiwgYnVmLCBidWZsZW4pOwotfQotCi0KLSNpZiBkZWZpbmVkKE1CRURUTFNfRUNQX0MpCi0vKgotICogQ2hlY2sgYSBwdWJsaWMtcHJpdmF0ZSBrZXkgcGFpcgotICovCi1pbnQgbWJlZHRsc19lY3BfY2hlY2tfcHViX3ByaXYoCi0gICAgY29uc3QgbWJlZHRsc19lY3Bfa2V5cGFpciAqcHViLCBjb25zdCBtYmVkdGxzX2VjcF9rZXlwYWlyICpwcnYsCi0gICAgaW50ICgqZl9ybmcpKHZvaWQgKiwgdW5zaWduZWQgY2hhciAqLCBzaXplX3QpLCB2b2lkICpwX3JuZykKLXsKLSAgICBpbnQgcmV0ID0gTUJFRFRMU19FUlJfRVJST1JfQ09SUlVQVElPTl9ERVRFQ1RFRDsKLSAgICBtYmVkdGxzX2VjcF9wb2ludCBROwotICAgIG1iZWR0bHNfZWNwX2dyb3VwIGdycDsKLSAgICBpZiAocHViLT5ncnAuaWQgPT0gTUJFRFRMU19FQ1BfRFBfTk9ORSB8fAotICAgICAgICBwdWItPmdycC5pZCAhPSBwcnYtPmdycC5pZCB8fAotICAgICAgICBtYmVkdGxzX21waV9jbXBfbXBpKCZwdWItPlEuWCwgJnBydi0+US5YKSB8fAotICAgICAgICBtYmVkdGxzX21waV9jbXBfbXBpKCZwdWItPlEuWSwgJnBydi0+US5ZKSB8fAotICAgICAgICBtYmVkdGxzX21waV9jbXBfbXBpKCZwdWItPlEuWiwgJnBydi0+US5aKSkgewotICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfRUNQX0JBRF9JTlBVVF9EQVRBOwotICAgIH0KLQotICAgIG1iZWR0bHNfZWNwX3BvaW50X2luaXQoJlEpOwotICAgIG1iZWR0bHNfZWNwX2dyb3VwX2luaXQoJmdycCk7Ci0KLSAgICAvKiBtYmVkdGxzX2VjcF9tdWwoKSBuZWVkcyBhIG5vbi1jb25zdCBncm91cC4uLiAqLwotICAgIG1iZWR0bHNfZWNwX2dyb3VwX2NvcHkoJmdycCwgJnBydi0+Z3JwKTsKLQotICAgIC8qIEFsc28gY2hlY2tzIGQgaXMgdmFsaWQgKi8KLSAgICBNQkVEVExTX01QSV9DSEsobWJlZHRsc19lY3BfbXVsKCZncnAsICZRLCAmcHJ2LT5kLCAmcHJ2LT5ncnAuRywgZl9ybmcsIHBfcm5nKSk7Ci0KLSAgICBpZiAobWJlZHRsc19tcGlfY21wX21waSgmUS5YLCAmcHJ2LT5RLlgpIHx8Ci0gICAgICAgIG1iZWR0bHNfbXBpX2NtcF9tcGkoJlEuWSwgJnBydi0+US5ZKSB8fAotICAgICAgICBtYmVkdGxzX21waV9jbXBfbXBpKCZRLlosICZwcnYtPlEuWikpIHsKLSAgICAgICAgcmV0ID0gTUJFRFRMU19FUlJfRUNQX0JBRF9JTlBVVF9EQVRBOwotICAgICAgICBnb3RvIGNsZWFudXA7Ci0gICAgfQotCi1jbGVhbnVwOgotICAgIG1iZWR0bHNfZWNwX3BvaW50X2ZyZWUoJlEpOwotICAgIG1iZWR0bHNfZWNwX2dyb3VwX2ZyZWUoJmdycCk7Ci0KLSAgICByZXR1cm4gcmV0OwotfQotCi1pbnQgbWJlZHRsc19lY3Bfa2V5cGFpcl9jYWxjX3B1YmxpYyhtYmVkdGxzX2VjcF9rZXlwYWlyICprZXksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgKCpmX3JuZykodm9pZCAqLCB1bnNpZ25lZCBjaGFyICosIHNpemVfdCksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2b2lkICpwX3JuZykKLXsKLSAgICByZXR1cm4gbWJlZHRsc19lY3BfbXVsKCZrZXktPmdycCwgJmtleS0+USwgJmtleS0+ZCwgJmtleS0+Z3JwLkcsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICBmX3JuZywgcF9ybmcpOwotfQotI2VuZGlmIC8qIE1CRURUTFNfRUNQX0MgKi8KLQotbWJlZHRsc19lY3BfZ3JvdXBfaWQgbWJlZHRsc19lY3Bfa2V5cGFpcl9nZXRfZ3JvdXBfaWQoCi0gICAgY29uc3QgbWJlZHRsc19lY3Bfa2V5cGFpciAqa2V5KQotewotICAgIHJldHVybiBrZXktPmdycC5pZDsKLX0KLQotLyoKLSAqIEV4cG9ydCBnZW5lcmljIGtleS1wYWlyIHBhcmFtZXRlcnMuCi0gKi8KLWludCBtYmVkdGxzX2VjcF9leHBvcnQoY29uc3QgbWJlZHRsc19lY3Bfa2V5cGFpciAqa2V5LCBtYmVkdGxzX2VjcF9ncm91cCAqZ3JwLAotICAgICAgICAgICAgICAgICAgICAgICBtYmVkdGxzX21waSAqZCwgbWJlZHRsc19lY3BfcG9pbnQgKlEpCi17Ci0gICAgaW50IHJldCA9IE1CRURUTFNfRVJSX0VSUk9SX0NPUlJVUFRJT05fREVURUNURUQ7Ci0KLSAgICBpZiAoZ3JwICE9IE5VTEwgJiYgKHJldCA9IG1iZWR0bHNfZWNwX2dyb3VwX2NvcHkoZ3JwLCAma2V5LT5ncnApKSAhPSAwKSB7Ci0gICAgICAgIHJldHVybiByZXQ7Ci0gICAgfQotCi0gICAgaWYgKGQgIT0gTlVMTCAmJiAocmV0ID0gbWJlZHRsc19tcGlfY29weShkLCAma2V5LT5kKSkgIT0gMCkgewotICAgICAgICByZXR1cm4gcmV0OwotICAgIH0KLQotICAgIGlmIChRICE9IE5VTEwgJiYgKHJldCA9IG1iZWR0bHNfZWNwX2NvcHkoUSwgJmtleS0+USkpICE9IDApIHsKLSAgICAgICAgcmV0dXJuIHJldDsKLSAgICB9Ci0KLSAgICByZXR1cm4gMDsKLX0KLQotI2lmIGRlZmluZWQoTUJFRFRMU19TRUxGX1RFU1QpCi0KLSNpZiBkZWZpbmVkKE1CRURUTFNfRUNQX0MpCi0vKgotICogUFJORyBmb3IgdGVzdCAtICEhIUlOU0VDVVJFIE5FVkVSIFVTRSBJTiBQUk9EVUNUSU9OISEhCi0gKgotICogVGhpcyBpcyB0aGUgbGluZWFyIGNvbmdydWVudGlhbCBnZW5lcmF0b3IgZnJvbSBudW1lcmljYWwgcmVjaXBlcywKLSAqIGV4Y2VwdCB3ZSBvbmx5IHVzZSB0aGUgbG93IGJ5dGUgYXMgdGhlIG91dHB1dC4gU2VlCi0gKiBodHRwczovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9MaW5lYXJfY29uZ3J1ZW50aWFsX2dlbmVyYXRvciNQYXJhbWV0ZXJzX2luX2NvbW1vbl91c2UKLSAqLwotc3RhdGljIGludCBzZWxmX3Rlc3Rfcm5nKHZvaWQgKmN0eCwgdW5zaWduZWQgY2hhciAqb3V0LCBzaXplX3QgbGVuKQotewotICAgIHN0YXRpYyB1aW50MzJfdCBzdGF0ZSA9IDQyOwotCi0gICAgKHZvaWQpIGN0eDsKLQotICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbGVuOyBpKyspIHsKLSAgICAgICAgc3RhdGUgPSBzdGF0ZSAqIDE2NjQ1MjV1ICsgMTAxMzkwNDIyM3U7Ci0gICAgICAgIG91dFtpXSA9ICh1bnNpZ25lZCBjaGFyKSBzdGF0ZTsKLSAgICB9Ci0KLSAgICByZXR1cm4gMDsKLX0KLQotLyogQWRqdXN0IHRoZSBleHBvbmVudCB0byBiZSBhIHZhbGlkIHByaXZhdGUgcG9pbnQgZm9yIHRoZSBzcGVjaWZpZWQgY3VydmUuCi0gKiBUaGlzIGlzIHNvbWV0aW1lcyBuZWNlc3NhcnkgYmVjYXVzZSB3ZSB1c2UgYSBzaW5nbGUgc2V0IG9mIGV4cG9uZW50cwotICogZm9yIGFsbCBjdXJ2ZXMgYnV0IHRoZSB2YWxpZGl0eSBvZiB2YWx1ZXMgZGVwZW5kcyBvbiB0aGUgY3VydmUuICovCi1zdGF0aWMgaW50IHNlbGZfdGVzdF9hZGp1c3RfZXhwb25lbnQoY29uc3QgbWJlZHRsc19lY3BfZ3JvdXAgKmdycCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYmVkdGxzX21waSAqbSkKLXsKLSAgICBpbnQgcmV0ID0gMDsKLSAgICBzd2l0Y2ggKGdycC0+aWQpIHsKLSAgICAvKiBJZiBDdXJ2ZTI1NTE5IGlzIGF2YWlsYWJsZSwgdGhlbiB0aGF0J3Mgd2hhdCB3ZSB1c2UgZm9yIHRoZQotICAgICAqIE1vbnRnb21lcnkgdGVzdCwgc28gd2UgZG9uJ3QgbmVlZCB0aGUgYWRqdXN0bWVudCBjb2RlLiAqLwotI2lmICFkZWZpbmVkKE1CRURUTFNfRUNQX0RQX0NVUlZFMjU1MTlfRU5BQkxFRCkKLSNpZiBkZWZpbmVkKE1CRURUTFNfRUNQX0RQX0NVUlZFNDQ4X0VOQUJMRUQpCi0gICAgICAgIGNhc2UgTUJFRFRMU19FQ1BfRFBfQ1VSVkU0NDg6Ci0gICAgICAgICAgICAvKiBNb3ZlIGhpZ2hlc3QgYml0IGZyb20gMjU0IHRvIE4tMS4gU2V0dGluZyBiaXQgTi0xIGlzCi0gICAgICAgICAgICAgKiBuZWNlc3NhcnkgdG8gZW5mb3JjZSB0aGUgaGlnaGVzdC1iaXQtc2V0IGNvbnN0cmFpbnQuICovCi0gICAgICAgICAgICBNQkVEVExTX01QSV9DSEsobWJlZHRsc19tcGlfc2V0X2JpdChtLCAyNTQsIDApKTsKLSAgICAgICAgICAgIE1CRURUTFNfTVBJX0NISyhtYmVkdGxzX21waV9zZXRfYml0KG0sIGdycC0+bmJpdHMsIDEpKTsKLSAgICAgICAgICAgIC8qIENvcHkgc2Vjb25kLWhpZ2hlc3QgYml0IGZyb20gMjUzIHRvIE4tMi4gVGhpcyBpcyBub3QKLSAgICAgICAgICAgICAqIG5lY2Vzc2FyeSBidXQgaW1wcm92ZXMgdGhlIHRlc3QgdmFyaWV0eSBhIGJpdC4gKi8KLSAgICAgICAgICAgIE1CRURUTFNfTVBJX0NISygKLSAgICAgICAgICAgICAgICBtYmVkdGxzX21waV9zZXRfYml0KG0sIGdycC0+bmJpdHMgLSAxLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWJlZHRsc19tcGlfZ2V0X2JpdChtLCAyNTMpKSk7Ci0gICAgICAgICAgICBicmVhazsKLSNlbmRpZgotI2VuZGlmIC8qICEgZGVmaW5lZChNQkVEVExTX0VDUF9EUF9DVVJWRTI1NTE5X0VOQUJMRUQpICovCi0gICAgICAgIGRlZmF1bHQ6Ci0gICAgICAgICAgICAvKiBOb24tTW9udGdvbWVyeSBjdXJ2ZXMgYW5kIEN1cnZlMjU1MTkgbmVlZCBubyBhZGp1c3RtZW50LiAqLwotICAgICAgICAgICAgKHZvaWQpIGdycDsKLSAgICAgICAgICAgICh2b2lkKSBtOwotICAgICAgICAgICAgZ290byBjbGVhbnVwOwotICAgIH0KLWNsZWFudXA6Ci0gICAgcmV0dXJuIHJldDsKLX0KLQotLyogQ2FsY3VsYXRlIFIgPSBtLlAgZm9yIGVhY2ggbSBpbiBleHBvbmVudHMuIENoZWNrIHRoYXQgdGhlIG51bWJlciBvZgotICogYmFzaWMgb3BlcmF0aW9ucyBkb2Vzbid0IGRlcGVuZCBvbiB0aGUgdmFsdWUgb2YgbS4gKi8KLXN0YXRpYyBpbnQgc2VsZl90ZXN0X3BvaW50KGludCB2ZXJib3NlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgbWJlZHRsc19lY3BfZ3JvdXAgKmdycCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIG1iZWR0bHNfZWNwX3BvaW50ICpSLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgbWJlZHRsc19tcGkgKm0sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBtYmVkdGxzX2VjcF9wb2ludCAqUCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKmNvbnN0ICpleHBvbmVudHMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3Qgbl9leHBvbmVudHMpCi17Ci0gICAgaW50IHJldCA9IDA7Ci0gICAgc2l6ZV90IGkgPSAwOwotICAgIHVuc2lnbmVkIGxvbmcgYWRkX2NfcHJldiwgZGJsX2NfcHJldiwgbXVsX2NfcHJldjsKLSAgICBhZGRfY291bnQgPSAwOwotICAgIGRibF9jb3VudCA9IDA7Ci0gICAgbXVsX2NvdW50ID0gMDsKLQotICAgIE1CRURUTFNfTVBJX0NISyhtYmVkdGxzX21waV9yZWFkX3N0cmluZyhtLCAxNiwgZXhwb25lbnRzWzBdKSk7Ci0gICAgTUJFRFRMU19NUElfQ0hLKHNlbGZfdGVzdF9hZGp1c3RfZXhwb25lbnQoZ3JwLCBtKSk7Ci0gICAgTUJFRFRMU19NUElfQ0hLKG1iZWR0bHNfZWNwX211bChncnAsIFIsIG0sIFAsIHNlbGZfdGVzdF9ybmcsIE5VTEwpKTsKLQotICAgIGZvciAoaSA9IDE7IGkgPCBuX2V4cG9uZW50czsgaSsrKSB7Ci0gICAgICAgIGFkZF9jX3ByZXYgPSBhZGRfY291bnQ7Ci0gICAgICAgIGRibF9jX3ByZXYgPSBkYmxfY291bnQ7Ci0gICAgICAgIG11bF9jX3ByZXYgPSBtdWxfY291bnQ7Ci0gICAgICAgIGFkZF9jb3VudCA9IDA7Ci0gICAgICAgIGRibF9jb3VudCA9IDA7Ci0gICAgICAgIG11bF9jb3VudCA9IDA7Ci0KLSAgICAgICAgTUJFRFRMU19NUElfQ0hLKG1iZWR0bHNfbXBpX3JlYWRfc3RyaW5nKG0sIDE2LCBleHBvbmVudHNbaV0pKTsKLSAgICAgICAgTUJFRFRMU19NUElfQ0hLKHNlbGZfdGVzdF9hZGp1c3RfZXhwb25lbnQoZ3JwLCBtKSk7Ci0gICAgICAgIE1CRURUTFNfTVBJX0NISyhtYmVkdGxzX2VjcF9tdWwoZ3JwLCBSLCBtLCBQLCBzZWxmX3Rlc3Rfcm5nLCBOVUxMKSk7Ci0KLSAgICAgICAgaWYgKGFkZF9jb3VudCAhPSBhZGRfY19wcmV2IHx8Ci0gICAgICAgICAgICBkYmxfY291bnQgIT0gZGJsX2NfcHJldiB8fAotICAgICAgICAgICAgbXVsX2NvdW50ICE9IG11bF9jX3ByZXYpIHsKLSAgICAgICAgICAgIHJldCA9IDE7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgfQotICAgIH0KLQotY2xlYW51cDoKLSAgICBpZiAodmVyYm9zZSAhPSAwKSB7Ci0gICAgICAgIGlmIChyZXQgIT0gMCkgewotICAgICAgICAgICAgbWJlZHRsc19wcmludGYoImZhaWxlZCAoJXUpXG4iLCAodW5zaWduZWQgaW50KSBpKTsKLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIG1iZWR0bHNfcHJpbnRmKCJwYXNzZWRcbiIpOwotICAgICAgICB9Ci0gICAgfQotICAgIHJldHVybiByZXQ7Ci19Ci0jZW5kaWYgLyogTUJFRFRMU19FQ1BfQyAqLwotCi0vKgotICogQ2hlY2t1cCByb3V0aW5lCi0gKi8KLWludCBtYmVkdGxzX2VjcF9zZWxmX3Rlc3QoaW50IHZlcmJvc2UpCi17Ci0jaWYgZGVmaW5lZChNQkVEVExTX0VDUF9DKQotICAgIGludCByZXQgPSBNQkVEVExTX0VSUl9FUlJPUl9DT1JSVVBUSU9OX0RFVEVDVEVEOwotICAgIG1iZWR0bHNfZWNwX2dyb3VwIGdycDsKLSAgICBtYmVkdGxzX2VjcF9wb2ludCBSLCBQOwotICAgIG1iZWR0bHNfbXBpIG07Ci0KLSNpZiBkZWZpbmVkKE1CRURUTFNfRUNQX1NIT1JUX1dFSUVSU1RSQVNTX0VOQUJMRUQpCi0gICAgLyogRXhwb25lbnRzIGVzcGVjaWFsbHkgYWRhcHRlZCBmb3Igc2VjcDE5MmsxLCB3aGljaCBoYXMgdGhlIGxvd2VzdAotICAgICAqIG9yZGVyIG4gb2YgYWxsIHN1cHBvcnRlZCBjdXJ2ZXMgKHNlY3AxOTJyMSBpcyBpbiBhIHNsaWdodGx5IGxhcmdlcgotICAgICAqIGZpZWxkIGJ1dCB0aGUgb3JkZXIgb2YgaXRzIGJhc2UgcG9pbnQgaXMgc2xpZ2h0bHkgc21hbGxlcikuICovCi0gICAgY29uc3QgY2hhciAqc3dfZXhwb25lbnRzW10gPQotICAgIHsKLSAgICAgICAgIjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMSIsIC8qIG9uZSAqLwotICAgICAgICAiRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZFMjZGMkZDMTcwRjY5NDY2QTc0REVGRDhDIiwgLyogbiAtIDEgKi8KLSAgICAgICAgIjVFQTZGMzg5QTM4QjhCQzgxRTc2Nzc1M0IxNUFBNTU2OUUxNzgyRTMwQUJFN0QyNSIsIC8qIHJhbmRvbSAqLwotICAgICAgICAiNDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwIiwgLyogb25lIGFuZCB6ZXJvcyAqLwotICAgICAgICAiN0ZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGIiwgLyogYWxsIG9uZXMgKi8KLSAgICAgICAgIjU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NSIsIC8qIDEwMTAxMC4uLiAqLwotICAgIH07Ci0jZW5kaWYgLyogTUJFRFRMU19FQ1BfU0hPUlRfV0VJRVJTVFJBU1NfRU5BQkxFRCAqLwotI2lmIGRlZmluZWQoTUJFRFRMU19FQ1BfTU9OVEdPTUVSWV9FTkFCTEVEKQotICAgIGNvbnN0IGNoYXIgKm1fZXhwb25lbnRzW10gPQotICAgIHsKLSAgICAgICAgLyogVmFsaWQgcHJpdmF0ZSB2YWx1ZXMgZm9yIEN1cnZlMjU1MTkuIEluIGEgYnVpbGQgd2l0aCBDdXJ2ZTQ0OAotICAgICAgICAgKiBidXQgbm90IEN1cnZlMjU1MTksIHRoZXkgd2lsbCBiZSBhZGp1c3RlZCBpbgotICAgICAgICAgKiBzZWxmX3Rlc3RfYWRqdXN0X2V4cG9uZW50KCkuICovCi0gICAgICAgICI0MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwIiwKLSAgICAgICAgIjVDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzNDMzAiLAotICAgICAgICAiNTcxNUVDQ0UyNDU4M0Y3QTcwMjNDMjQxNjQzOTA1ODY4NDJFODE2RDcyODBBNDlFRjZERjRFQUU2QjI4MEJGOCIsCi0gICAgICAgICI0MUEyQjAxNzUxNkY2RDI1NEUxRjAwMkJDQ0JBREQ1NEJFMzBGOENFQzczN0EwRTkxMkI0OTYzQjZCQTc0NDYwIiwKLSAgICAgICAgIjU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTAiLAotICAgICAgICAiN0ZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGOCIsCi0gICAgfTsKLSNlbmRpZiAvKiBNQkVEVExTX0VDUF9NT05UR09NRVJZX0VOQUJMRUQgKi8KLQotICAgIG1iZWR0bHNfZWNwX2dyb3VwX2luaXQoJmdycCk7Ci0gICAgbWJlZHRsc19lY3BfcG9pbnRfaW5pdCgmUik7Ci0gICAgbWJlZHRsc19lY3BfcG9pbnRfaW5pdCgmUCk7Ci0gICAgbWJlZHRsc19tcGlfaW5pdCgmbSk7Ci0KLSNpZiBkZWZpbmVkKE1CRURUTFNfRUNQX1NIT1JUX1dFSUVSU1RSQVNTX0VOQUJMRUQpCi0gICAgLyogVXNlIHNlY3AxOTJyMSBpZiBhdmFpbGFibGUsIG9yIGFueSBhdmFpbGFibGUgY3VydmUgKi8KLSNpZiBkZWZpbmVkKE1CRURUTFNfRUNQX0RQX1NFQ1AxOTJSMV9FTkFCTEVEKQotICAgIE1CRURUTFNfTVBJX0NISyhtYmVkdGxzX2VjcF9ncm91cF9sb2FkKCZncnAsIE1CRURUTFNfRUNQX0RQX1NFQ1AxOTJSMSkpOwotI2Vsc2UKLSAgICBNQkVEVExTX01QSV9DSEsobWJlZHRsc19lY3BfZ3JvdXBfbG9hZCgmZ3JwLCBtYmVkdGxzX2VjcF9jdXJ2ZV9saXN0KCktPmdycF9pZCkpOwotI2VuZGlmCi0KLSAgICBpZiAodmVyYm9zZSAhPSAwKSB7Ci0gICAgICAgIG1iZWR0bHNfcHJpbnRmKCIgIEVDUCBTVyB0ZXN0ICMxIChjb25zdGFudCBvcF9jb3VudCwgYmFzZSBwb2ludCBHKTogIik7Ci0gICAgfQotICAgIC8qIERvIGEgZHVtbXkgbXVsdGlwbGljYXRpb24gZmlyc3QgdG8gdHJpZ2dlciBwcmVjb21wdXRhdGlvbiAqLwotICAgIE1CRURUTFNfTVBJX0NISyhtYmVkdGxzX21waV9sc2V0KCZtLCAyKSk7Ci0gICAgTUJFRFRMU19NUElfQ0hLKG1iZWR0bHNfZWNwX211bCgmZ3JwLCAmUCwgJm0sICZncnAuRywgc2VsZl90ZXN0X3JuZywgTlVMTCkpOwotICAgIHJldCA9IHNlbGZfdGVzdF9wb2ludCh2ZXJib3NlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAmZ3JwLCAmUiwgJm0sICZncnAuRywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgc3dfZXhwb25lbnRzLAotICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplb2Yoc3dfZXhwb25lbnRzKSAvIHNpemVvZihzd19leHBvbmVudHNbMF0pKTsKLSAgICBpZiAocmV0ICE9IDApIHsKLSAgICAgICAgZ290byBjbGVhbnVwOwotICAgIH0KLQotICAgIGlmICh2ZXJib3NlICE9IDApIHsKLSAgICAgICAgbWJlZHRsc19wcmludGYoIiAgRUNQIFNXIHRlc3QgIzIgKGNvbnN0YW50IG9wX2NvdW50LCBvdGhlciBwb2ludCk6ICIpOwotICAgIH0KLSAgICAvKiBXZSBjb21wdXRlZCBQID0gMkcgbGFzdCB0aW1lLCB1c2UgaXQgKi8KLSAgICByZXQgPSBzZWxmX3Rlc3RfcG9pbnQodmVyYm9zZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgJmdycCwgJlIsICZtLCAmUCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgc3dfZXhwb25lbnRzLAotICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplb2Yoc3dfZXhwb25lbnRzKSAvIHNpemVvZihzd19leHBvbmVudHNbMF0pKTsKLSAgICBpZiAocmV0ICE9IDApIHsKLSAgICAgICAgZ290byBjbGVhbnVwOwotICAgIH0KLQotICAgIG1iZWR0bHNfZWNwX2dyb3VwX2ZyZWUoJmdycCk7Ci0gICAgbWJlZHRsc19lY3BfcG9pbnRfZnJlZSgmUik7Ci0jZW5kaWYgLyogTUJFRFRMU19FQ1BfU0hPUlRfV0VJRVJTVFJBU1NfRU5BQkxFRCAqLwotCi0jaWYgZGVmaW5lZChNQkVEVExTX0VDUF9NT05UR09NRVJZX0VOQUJMRUQpCi0gICAgaWYgKHZlcmJvc2UgIT0gMCkgewotICAgICAgICBtYmVkdGxzX3ByaW50ZigiICBFQ1AgTW9udGdvbWVyeSB0ZXN0IChjb25zdGFudCBvcF9jb3VudCk6ICIpOwotICAgIH0KLSNpZiBkZWZpbmVkKE1CRURUTFNfRUNQX0RQX0NVUlZFMjU1MTlfRU5BQkxFRCkKLSAgICBNQkVEVExTX01QSV9DSEsobWJlZHRsc19lY3BfZ3JvdXBfbG9hZCgmZ3JwLCBNQkVEVExTX0VDUF9EUF9DVVJWRTI1NTE5KSk7Ci0jZWxpZiBkZWZpbmVkKE1CRURUTFNfRUNQX0RQX0NVUlZFNDQ4X0VOQUJMRUQpCi0gICAgTUJFRFRMU19NUElfQ0hLKG1iZWR0bHNfZWNwX2dyb3VwX2xvYWQoJmdycCwgTUJFRFRMU19FQ1BfRFBfQ1VSVkU0NDgpKTsKLSNlbHNlCi0jZXJyb3IgIk1CRURUTFNfRUNQX01PTlRHT01FUllfRU5BQkxFRCBpcyBkZWZpbmVkLCBidXQgbm8gY3VydmUgaXMgc3VwcG9ydGVkIGZvciBzZWxmLXRlc3QiCi0jZW5kaWYKLSAgICByZXQgPSBzZWxmX3Rlc3RfcG9pbnQodmVyYm9zZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgJmdycCwgJlIsICZtLCAmZ3JwLkcsCi0gICAgICAgICAgICAgICAgICAgICAgICAgIG1fZXhwb25lbnRzLAotICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplb2YobV9leHBvbmVudHMpIC8gc2l6ZW9mKG1fZXhwb25lbnRzWzBdKSk7Ci0gICAgaWYgKHJldCAhPSAwKSB7Ci0gICAgICAgIGdvdG8gY2xlYW51cDsKLSAgICB9Ci0jZW5kaWYgLyogTUJFRFRMU19FQ1BfTU9OVEdPTUVSWV9FTkFCTEVEICovCi0KLWNsZWFudXA6Ci0KLSAgICBpZiAocmV0IDwgMCAmJiB2ZXJib3NlICE9IDApIHsKLSAgICAgICAgbWJlZHRsc19wcmludGYoIlVuZXhwZWN0ZWQgZXJyb3IsIHJldHVybiBjb2RlID0gJTA4WFxuIiwgKHVuc2lnbmVkIGludCkgcmV0KTsKLSAgICB9Ci0KLSAgICBtYmVkdGxzX2VjcF9ncm91cF9mcmVlKCZncnApOwotICAgIG1iZWR0bHNfZWNwX3BvaW50X2ZyZWUoJlIpOwotICAgIG1iZWR0bHNfZWNwX3BvaW50X2ZyZWUoJlApOwotICAgIG1iZWR0bHNfbXBpX2ZyZWUoJm0pOwotCi0gICAgaWYgKHZlcmJvc2UgIT0gMCkgewotICAgICAgICBtYmVkdGxzX3ByaW50ZigiXG4iKTsKLSAgICB9Ci0KLSAgICByZXR1cm4gcmV0OwotI2Vsc2UgLyogTUJFRFRMU19FQ1BfQyAqLwotICAgICh2b2lkKSB2ZXJib3NlOwotICAgIHJldHVybiAwOwotI2VuZGlmIC8qIE1CRURUTFNfRUNQX0MgKi8KLX0KLQotI2VuZGlmIC8qIE1CRURUTFNfU0VMRl9URVNUICovCi0KLSNlbmRpZiAvKiAhTUJFRFRMU19FQ1BfQUxUICovCi0KLSNlbmRpZiAvKiBNQkVEVExTX0VDUF9MSUdIVCAqLwpkaWZmIC0tZ2l0IGEvbGlicmFyeS9lY3BfY3VydmVzLmMgYi9saWJyYXJ5L2VjcF9jdXJ2ZXMuYwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYzNjZDMzZi4uMDAwMDAwMAotLS0gYS9saWJyYXJ5L2VjcF9jdXJ2ZXMuYworKysgL2Rldi9udWxsCkBAIC0xLDU0NjAgKzAsMCBAQAotLyoKLSAqICBFbGxpcHRpYyBjdXJ2ZXMgb3ZlciBHRihwKTogY3VydmUtc3BlY2lmaWMgZGF0YSBhbmQgZnVuY3Rpb25zCi0gKgotICogIENvcHlyaWdodCBUaGUgTWJlZCBUTFMgQ29udHJpYnV0b3JzCi0gKiAgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjAgT1IgR1BMLTIuMC1vci1sYXRlcgotICovCi0KLSNpbmNsdWRlICJjb21tb24uaCIKLQotI2lmICFkZWZpbmVkKE1CRURUTFNfRUNQX1dJVEhfTVBJX1VJTlQpCi0KLSNpZiBkZWZpbmVkKE1CRURUTFNfRUNQX0xJR0hUKQotCi0jaW5jbHVkZSAibWJlZHRscy9lY3AuaCIKLSNpbmNsdWRlICJtYmVkdGxzL3BsYXRmb3JtX3V0aWwuaCIKLSNpbmNsdWRlICJtYmVkdGxzL2Vycm9yLmgiCi0KLSNpbmNsdWRlICJibl9tdWwuaCIKLSNpbmNsdWRlICJiaWdudW1fY29yZS5oIgotI2luY2x1ZGUgImVjcF9pbnZhc2l2ZS5oIgotCi0jaW5jbHVkZSA8c3RyaW5nLmg+Ci0KLSNpZiAhZGVmaW5lZChNQkVEVExTX0VDUF9BTFQpCi0KLSNkZWZpbmUgRUNQX01QSV9JTklUKF9wLCBfbikgeyAucCA9IChtYmVkdGxzX21waV91aW50ICopIChfcCksIC5zID0gMSwgLm4gPSAoX24pIH0KLQotI2RlZmluZSBFQ1BfTVBJX0lOSVRfQVJSQVkoeCkgICBcCi0gICAgRUNQX01QSV9JTklUKHgsIHNpemVvZih4KSAvIHNpemVvZihtYmVkdGxzX21waV91aW50KSkKLQotI2RlZmluZSBFQ1BfUE9JTlRfSU5JVF9YWV9aMCh4LCB5KSB7IFwKLSAgICAgICAgRUNQX01QSV9JTklUX0FSUkFZKHgpLCBFQ1BfTVBJX0lOSVRfQVJSQVkoeSksIEVDUF9NUElfSU5JVChOVUxMLCAwKSB9Ci0jZGVmaW5lIEVDUF9QT0lOVF9JTklUX1hZX1oxKHgsIHkpIHsgXAotICAgICAgICBFQ1BfTVBJX0lOSVRfQVJSQVkoeCksIEVDUF9NUElfSU5JVF9BUlJBWSh5KSwgRUNQX01QSV9JTklUKG1waV9vbmUsIDEpIH0KLQotI2lmIGRlZmluZWQoTUJFRFRMU19FQ1BfRFBfU0VDUDE5MlIxX0VOQUJMRUQpIHx8ICAgXAotICAgIGRlZmluZWQoTUJFRFRMU19FQ1BfRFBfU0VDUDIyNFIxX0VOQUJMRUQpIHx8ICAgXAotICAgIGRlZmluZWQoTUJFRFRMU19FQ1BfRFBfU0VDUDI1NlIxX0VOQUJMRUQpIHx8ICAgXAotICAgIGRlZmluZWQoTUJFRFRMU19FQ1BfRFBfU0VDUDM4NFIxX0VOQUJMRUQpIHx8ICAgXAotICAgIGRlZmluZWQoTUJFRFRMU19FQ1BfRFBfU0VDUDUyMVIxX0VOQUJMRUQpIHx8ICAgXAotICAgIGRlZmluZWQoTUJFRFRMU19FQ1BfRFBfQlAyNTZSMV9FTkFCTEVEKSAgIHx8ICAgXAotICAgIGRlZmluZWQoTUJFRFRMU19FQ1BfRFBfQlAzODRSMV9FTkFCTEVEKSAgIHx8ICAgXAotICAgIGRlZmluZWQoTUJFRFRMU19FQ1BfRFBfQlA1MTJSMV9FTkFCTEVEKSAgIHx8ICAgXAotICAgIGRlZmluZWQoTUJFRFRMU19FQ1BfRFBfU0VDUDE5MksxX0VOQUJMRUQpIHx8ICAgXAotICAgIGRlZmluZWQoTUJFRFRMU19FQ1BfRFBfU0VDUDIyNEsxX0VOQUJMRUQpIHx8ICAgXAotICAgIGRlZmluZWQoTUJFRFRMU19FQ1BfRFBfU0VDUDI1NksxX0VOQUJMRUQpCi0vKiBGb3IgdGhlc2UgY3VydmVzLCB3ZSBidWlsZCB0aGUgZ3JvdXAgcGFyYW1ldGVycyBkeW5hbWljYWxseS4gKi8KLSNkZWZpbmUgRUNQX0xPQURfR1JPVVAKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IG1waV9vbmVbXSA9IHsgMSB9OwotI2VuZGlmCi0KLS8qCi0gKiBOb3RlOiB0aGUgY29uc3RhbnRzIGFyZSBpbiBsaXR0bGUtZW5kaWFuIG9yZGVyCi0gKiB0byBiZSBkaXJlY3RseSB1c2FibGUgaW4gTVBJcwotICovCi0KLS8qCi0gKiBEb21haW4gcGFyYW1ldGVycyBmb3Igc2VjcDE5MnIxCi0gKi8KLSNpZiBkZWZpbmVkKE1CRURUTFNfRUNQX0RQX1NFQ1AxOTJSMV9FTkFCTEVEKQotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDE5MnIxX3BbXSA9IHsKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RkYsIDB4RkYsIDB4RkYsIDB4RkYsIDB4RkYsIDB4RkYsIDB4RkYsIDB4RkYpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhGRSwgMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEZGLCAweEZGLCAweEZGLCAweEZGLCAweEZGLCAweEZGLCAweEZGLCAweEZGKSwKLX07Ci1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMTkycjFfYltdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhCMSwgMHhCOSwgMHg0NiwgMHhDMSwgMHhFQywgMHhERSwgMHhCOCwgMHhGRSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDQ5LCAweDMwLCAweDI0LCAweDcyLCAweEFCLCAweEU5LCAweEE3LCAweDBGKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RTcsIDB4ODAsIDB4OUMsIDB4RTUsIDB4MTksIDB4MDUsIDB4MjEsIDB4NjQpLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AxOTJyMV9neFtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgxMiwgMHgxMCwgMHhGRiwgMHg4MiwgMHhGRCwgMHgwQSwgMHhGRiwgMHhGNCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDAwLCAweDg4LCAweEExLCAweDQzLCAweEVCLCAweDIwLCAweEJGLCAweDdDKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RjYsIDB4OTAsIDB4MzAsIDB4QjAsIDB4MEUsIDB4QTgsIDB4OEQsIDB4MTgpLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AxOTJyMV9neVtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgxMSwgMHg0OCwgMHg3OSwgMHgxRSwgMHhBMSwgMHg3NywgMHhGOSwgMHg3MyksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEQ1LCAweENELCAweDI0LCAweDZCLCAweEVELCAweDExLCAweDEwLCAweDYzKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NzgsIDB4REEsIDB4QzgsIDB4RkYsIDB4OTUsIDB4MkIsIDB4MTksIDB4MDcpLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AxOTJyMV9uW10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDMxLCAweDI4LCAweEQyLCAweEI0LCAweEIxLCAweEM5LCAweDZCLCAweDE0KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MzYsIDB4RjgsIDB4REUsIDB4OTksIDB4RkYsIDB4RkYsIDB4RkYsIDB4RkYpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiksCi19OwotI2lmIE1CRURUTFNfRUNQX0ZJWEVEX1BPSU5UX09QVElNID09IDEKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AxOTJyMV9UXzBfWFtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgxMiwgMHgxMCwgMHhGRiwgMHg4MiwgMHhGRCwgMHgwQSwgMHhGRiwgMHhGNCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDAwLCAweDg4LCAweEExLCAweDQzLCAweEVCLCAweDIwLCAweEJGLCAweDdDKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RjYsIDB4OTAsIDB4MzAsIDB4QjAsIDB4MEUsIDB4QTgsIDB4OEQsIDB4MTgpLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AxOTJyMV9UXzBfWVtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgxMSwgMHg0OCwgMHg3OSwgMHgxRSwgMHhBMSwgMHg3NywgMHhGOSwgMHg3MyksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEQ1LCAweENELCAweDI0LCAweDZCLCAweEVELCAweDExLCAweDEwLCAweDYzKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NzgsIDB4REEsIDB4QzgsIDB4RkYsIDB4OTUsIDB4MkIsIDB4MTksIDB4MDcpLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AxOTJyMV9UXzFfWFtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg5NywgMHg5RSwgMHhFMywgMHg2MCwgMHg1OSwgMHhEMSwgMHhDNCwgMHhDMiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDkxLCAweEJELCAweDIyLCAweEQ3LCAweDJELCAweDA3LCAweEJELCAweEI2KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NzQsIDB4MkEsIDB4Q0YsIDB4MzMsIDB4RjAsIDB4QkUsIDB4RDEsIDB4RUQpLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AxOTJyMV9UXzFfWVtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg4OCwgMHg3MSwgMHg0QiwgMHhBOCwgMHhFRCwgMHg3RSwgMHhDOSwgMHgxQSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDhFLCAweDJBLCAweEY2LCAweERGLCAweDBFLCAweEU4LCAweDRDLCAweDBGKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QzUsIDB4MzUsIDB4RjcsIDB4OEEsIDB4QzMsIDB4RUMsIDB4REUsIDB4MUUpLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AxOTJyMV9UXzJfWFtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgwMCwgMHg2NywgMHhDMiwgMHgxRCwgMHgzMiwgMHg4RiwgMHgxMCwgMHhGQiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEJCLCAweDJELCAweDE3LCAweEYzLCAweEU0LCAweEZFLCAweEQ4LCAweDEzKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NTUsIDB4NDUsIDB4MTAsIDB4NzAsIDB4MkMsIDB4M0UsIDB4NTIsIDB4M0UpLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AxOTJyMV9UXzJfWVtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg2MSwgMHhGMSwgMHgwNCwgMHg1RCwgMHhFRSwgMHhENCwgMHg1NiwgMHhFNiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDc4LCAweEI3LCAweDM4LCAweDI3LCAweDYxLCAweEFBLCAweDgxLCAweDg3KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NzEsIDB4MzcsIDB4RDcsIDB4MEUsIDB4MjksIDB4MEUsIDB4MTEsIDB4MTQpLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AxOTJyMV9UXzNfWFtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgxRSwgMHgzNSwgMHg1MiwgMHhDNiwgMHgzMSwgMHhCNywgMHgyNywgMHhGNSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDNELCAweEQ0LCAweDE1LCAweDk4LCAweDBGLCAweEU3LCAweEYzLCAweDZBKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RDMsIDB4MzEsIDB4NzAsIDB4MzUsIDB4MDksIDB4QTAsIDB4MkIsIDB4QzIpLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AxOTJyMV9UXzNfWVtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgyMSwgMHg3NSwgMHhBNywgMHg0QywgMHg4OCwgMHhDRiwgMHg1QiwgMHhFNCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDE3LCAweDE3LCAweDQ4LCAweDhELCAweEYyLCAweEYwLCAweDg2LCAweEVEKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NDksIDB4Q0YsIDB4RkUsIDB4NkIsIDB4QjAsIDB4QTUsIDB4MDYsIDB4QUIpLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AxOTJyMV9UXzRfWFtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgxOCwgMHg2QSwgMHhEQywgMHg5QSwgMHg2RCwgMHg3QiwgMHg0NywgMHgyRSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDEyLCAweEZDLCAweDUxLCAweDEyLCAweDYyLCAweDY2LCAweDBCLCAweDU5KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4Q0QsIDB4NDAsIDB4OTMsIDB4QTAsIDB4QjUsIDB4NUEsIDB4NTgsIDB4RDcpLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AxOTJyMV9UXzRfWVtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhFRiwgMHhDQiwgMHhBRiwgMHhEQywgMHgwQiwgMHhBMSwgMHgyNiwgMHhGQiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweERBLCAweDM2LCAweDlELCAweEEzLCAweEQ3LCAweDNCLCAweEFELCAweDM5KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QjQsIDB4M0IsIDB4MDUsIDB4OUEsIDB4QTgsIDB4QUEsIDB4NjksIDB4QjIpLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AxOTJyMV9UXzVfWFtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg2RCwgMHhEOSwgMHhEMSwgMHg0RCwgMHg0QSwgMHg2RSwgMHg5NiwgMHgxRSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDE3LCAweDY2LCAweDMyLCAweDM5LCAweEM2LCAweDU3LCAweDdELCAweEU2KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4OTIsIDB4QTAsIDB4MzYsIDB4QzIsIDB4NDUsIDB4RjksIDB4MDAsIDB4NjIpLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AxOTJyMV9UXzVfWVtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhCNCwgMHhFRiwgMHg1OSwgMHg0NiwgMHhEQywgMHg2MCwgMHhEOSwgMHg4RiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDI0LCAweEIwLCAweEU5LCAweDQxLCAweEE0LCAweDg3LCAweDc2LCAweDg5KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MTMsIDB4RDQsIDB4MEUsIDB4QjIsIDB4RkEsIDB4MTYsIDB4NTYsIDB4REMpLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AxOTJyMV9UXzZfWFtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgwQSwgMHg2MiwgMHhEMiwgMHhCMSwgMHgzNCwgMHhCMiwgMHhGMSwgMHgwNiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEIyLCAweEVELCAweDU1LCAweEM1LCAweDQ3LCAweEI1LCAweDA3LCAweDE1KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MTcsIDB4RjYsIDB4MkYsIDB4OTQsIDB4QzMsIDB4REQsIDB4NTQsIDB4MkYpLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AxOTJyMV9UXzZfWVtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhGRCwgMHhBNiwgMHhENCwgMHg4QywgMHhBOSwgMHhDRSwgMHg0RCwgMHgyRSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEI5LCAweDRCLCAweDQ2LCAweENDLCAweEIyLCAweDU1LCAweEM4LCAweEIyKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4M0EsIDB4QUUsIDB4MzEsIDB4RUQsIDB4ODksIDB4NjUsIDB4NTksIDB4NTUpLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AxOTJyMV9UXzdfWFtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhDQywgMHgwQSwgMHhEMSwgMHgxQSwgMHhDNSwgMHhGNiwgMHhFQSwgMHg0MyksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDBDLCAweEZDLCAweDBDLCAweDFBLCAweEZCLCAweEEwLCAweEM4LCAweDcwKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RUEsIDB4RkQsIDB4NTMsIDB4NkYsIDB4NkQsIDB4QkYsIDB4QkEsIDB4QUYpLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AxOTJyMV9UXzdfWVtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgyRCwgMHhCMCwgMHg3RCwgMHg4MywgMHg5NiwgMHhFMywgMHhDQiwgMHg5RCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDZGLCAweDZFLCAweDU1LCAweDJDLCAweDIwLCAweDUzLCAweDJGLCAweDQ2KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QTYsIDB4NjYsIDB4MDAsIDB4MTcsIDB4MDgsIDB4RkUsIDB4QUMsIDB4MzEpLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AxOTJyMV9UXzhfWFtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgwOSwgMHgxMiwgMHg5NywgMHgzQSwgMHhDNywgMHg1NywgMHg0NSwgMHhDRCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDM4LCAweDI1LCAweDk5LCAweDAwLCAweEY2LCAweDk3LCAweEI0LCAweDY0KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4OUIsIDB4NzQsIDB4RTYsIDB4RTYsIDB4QTMsIDB4REYsIDB4OUMsIDB4Q0MpLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AxOTJyMV9UXzhfWVtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgzMiwgMHhGNCwgMHg3NiwgMHhENSwgMHg1RiwgMHgyQSwgMHhGRCwgMHg4NSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDYyLCAweDgwLCAweDdFLCAweDNFLCAweEU1LCAweEU4LCAweEQ2LCAweDYzKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RTIsIDB4QUQsIDB4MUUsIDB4NzAsIDB4NzksIDB4M0UsIDB4M0QsIDB4ODMpLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AxOTJyMV9UXzlfWFtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg4RSwgMHgxNSwgMHhCQiwgMHhCMywgMHg0MiwgMHg2QSwgMHhBMSwgMHg3QyksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDlCLCAweDU4LCAweENCLCAweDQzLCAweDI1LCAweDAwLCAweDE0LCAweDY4KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MDYsIDB4NEUsIDB4OTMsIDB4MTEsIDB4RTAsIDB4MzIsIDB4NTQsIDB4OTgpLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AxOTJyMV9UXzlfWVtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhBNywgMHg1MiwgMHhBMiwgMHhCNCwgMHg1NywgMHgzMiwgMHhCOSwgMHgxMSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDdELCAweDQzLCAweEExLCAweEIxLCAweEZCLCAweDAxLCAweEUxLCAweEU3KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QTYsIDB4RkIsIDB4NUEsIDB4MTEsIDB4QjgsIDB4QzIsIDB4MDMsIDB4RTUpLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AxOTJyMV9UXzEwX1hbXSA9IHsKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MUMsIDB4MkIsIDB4NzEsIDB4MjYsIDB4NEUsIDB4N0MsIDB4QzUsIDB4MzIpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgxRiwgMHhGNSwgMHhEMywgMHhBOCwgMHhFNCwgMHg5NSwgMHg0OCwgMHg2NSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDU1LCAweEFFLCAweEQ5LCAweDVELCAweDlGLCAweDZBLCAweDIyLCAweEFEKSwKLX07Ci1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMTkycjFfVF8xMF9ZW10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEQ5LCAweENDLCAweEEzLCAweDRELCAweEEwLCAweDFDLCAweDM0LCAweEVGKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QTMsIDB4M0MsIDB4NjIsIDB4RjgsIDB4NUUsIDB4QTYsIDB4NTgsIDB4N0QpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg2RCwgMHg2RSwgMHg2NiwgMHg4QSwgMHgzRCwgMHgxNywgMHhGRiwgMHgwRiksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDE5MnIxX1RfMTFfWFtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhGNywgMHhDRCwgMHhBOCwgMHhERCwgMHhEMSwgMHgyMCwgMHg1QywgMHhFQSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEJGLCAweEZFLCAweDE3LCAweEUyLCAweENGLCAweEVBLCAweDYzLCAweERFKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NzQsIDB4NTEsIDB4QzksIDB4MTYsIDB4REUsIDB4QjQsIDB4QjIsIDB4REQpLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AxOTJyMV9UXzExX1lbXSA9IHsKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NTksIDB4QkUsIDB4MTIsIDB4RDcsIDB4QTMsIDB4MEEsIDB4NTAsIDB4MzMpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg1MywgMHg4NywgMHhDNSwgMHg4QSwgMHg3NiwgMHg1NywgMHgwNywgMHg2MCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEU1LCAweDFGLCAweEM2LCAweDFCLCAweDY2LCAweEM0LCAweDNELCAweDhBKSwKLX07Ci1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMTkycjFfVF8xMl9YW10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDI4LCAweEE0LCAweDg1LCAweDEzLCAweDhGLCAweEE3LCAweDM1LCAweDE5KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NTgsIDB4MEQsIDB4RkQsIDB4RkYsIDB4MUIsIDB4RDEsIDB4RDYsIDB4RUYpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhCQSwgMHg3QSwgMHhEMCwgMHhDMywgMHhCNCwgMHhFRiwgMHgzOSwgMHg2NiksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDE5MnIxX1RfMTJfWVtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgzQSwgMHhGRSwgMHhBNSwgMHg5QywgMHgzNCwgMHgzMCwgMHg0OSwgMHg0MCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweERFLCAweEM1LCAweDM5LCAweDI2LCAweDA2LCAweEUzLCAweDAxLCAweDE3KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RTIsIDB4MkIsIDB4NjYsIDB4RkMsIDB4OTUsIDB4NUYsIDB4MzUsIDB4RjcpLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AxOTJyMV9UXzEzX1hbXSA9IHsKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NTgsIDB4Q0YsIDB4NTQsIDB4NjMsIDB4OTksIDB4NTcsIDB4MDUsIDB4NDUpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg3MSwgMHg2RiwgMHgwMCwgMHg1RiwgMHg2NSwgMHgwOCwgMHg0NywgMHg5OCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDYyLCAweDJBLCAweDkwLCAweDZELCAweDY3LCAweEM2LCAweEJDLCAweDQ1KSwKLX07Ci1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMTkycjFfVF8xM19ZW10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDhBLCAweDRELCAweDg4LCAweDBBLCAweDM1LCAweDlFLCAweDMzLCAweDlDKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4N0MsIDB4MTcsIDB4MEMsIDB4RjgsIDB4RTEsIDB4N0EsIDB4NDksIDB4MDIpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhBNCwgMHg0NCwgMHgwNiwgMHg4RiwgMHgwQiwgMHg3MCwgMHgyRiwgMHg3MSksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDE5MnIxX1RfMTRfWFtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg4NSwgMHg0QiwgMHhDQiwgMHhGOSwgMHg4RSwgMHg2QSwgMHhEQSwgMHgxQiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDI5LCAweDQzLCAweEExLCAweDNGLCAweENFLCAweDE3LCAweEQyLCAweDMyKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NUQsIDB4MEQsIDB4RDIsIDB4NkMsIDB4ODIsIDB4MzcsIDB4RTUsIDB4RkMpLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AxOTJyMV9UXzE0X1lbXSA9IHsKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NEEsIDB4M0MsIDB4RjQsIDB4OTIsIDB4QjQsIDB4OEEsIDB4OTUsIDB4ODUpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg4NSwgMHg5NiwgMHhGMSwgMHgwQSwgMHgzNCwgMHgyRiwgMHg3NCwgMHg3RSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDdCLCAweEExLCAweEFBLCAweEJBLCAweDg2LCAweDc3LCAweDRGLCAweEEyKSwKLX07Ci1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMTkycjFfVF8xNV9YW10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEU1LCAweDdGLCAweEVGLCAweDYwLCAweDUwLCAweDgwLCAweEQ3LCAweEQ0KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MzEsIDB4QUMsIDB4QzksIDB4RkUsIDB4RUMsIDB4MEEsIDB4MUEsIDB4OUYpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg2QiwgMHgyRiwgMHhCRSwgMHg5MSwgMHhENywgMHhCNywgMHgzOCwgMHg0OCksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDE5MnIxX1RfMTVfWVtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhCMSwgMHhBRSwgMHg4NSwgMHg5OCwgMHhGRSwgMHgwNSwgMHg3RiwgMHg5RiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDkxLCAweEJFLCAweEZELCAweDExLCAweDMxLCAweDNELCAweDE0LCAweDEzKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NTksIDB4NzUsIDB4RTgsIDB4MzAsIDB4MDEsIDB4Q0IsIDB4OUIsIDB4MUMpLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX2VjcF9wb2ludCBzZWNwMTkycjFfVFsxNl0gPSB7Ci0gICAgRUNQX1BPSU5UX0lOSVRfWFlfWjEoc2VjcDE5MnIxX1RfMF9YLCBzZWNwMTkycjFfVF8wX1kpLAotICAgIEVDUF9QT0lOVF9JTklUX1hZX1owKHNlY3AxOTJyMV9UXzFfWCwgc2VjcDE5MnIxX1RfMV9ZKSwKLSAgICBFQ1BfUE9JTlRfSU5JVF9YWV9aMChzZWNwMTkycjFfVF8yX1gsIHNlY3AxOTJyMV9UXzJfWSksCi0gICAgRUNQX1BPSU5UX0lOSVRfWFlfWjAoc2VjcDE5MnIxX1RfM19YLCBzZWNwMTkycjFfVF8zX1kpLAotICAgIEVDUF9QT0lOVF9JTklUX1hZX1owKHNlY3AxOTJyMV9UXzRfWCwgc2VjcDE5MnIxX1RfNF9ZKSwKLSAgICBFQ1BfUE9JTlRfSU5JVF9YWV9aMChzZWNwMTkycjFfVF81X1gsIHNlY3AxOTJyMV9UXzVfWSksCi0gICAgRUNQX1BPSU5UX0lOSVRfWFlfWjAoc2VjcDE5MnIxX1RfNl9YLCBzZWNwMTkycjFfVF82X1kpLAotICAgIEVDUF9QT0lOVF9JTklUX1hZX1owKHNlY3AxOTJyMV9UXzdfWCwgc2VjcDE5MnIxX1RfN19ZKSwKLSAgICBFQ1BfUE9JTlRfSU5JVF9YWV9aMChzZWNwMTkycjFfVF84X1gsIHNlY3AxOTJyMV9UXzhfWSksCi0gICAgRUNQX1BPSU5UX0lOSVRfWFlfWjAoc2VjcDE5MnIxX1RfOV9YLCBzZWNwMTkycjFfVF85X1kpLAotICAgIEVDUF9QT0lOVF9JTklUX1hZX1owKHNlY3AxOTJyMV9UXzEwX1gsIHNlY3AxOTJyMV9UXzEwX1kpLAotICAgIEVDUF9QT0lOVF9JTklUX1hZX1owKHNlY3AxOTJyMV9UXzExX1gsIHNlY3AxOTJyMV9UXzExX1kpLAotICAgIEVDUF9QT0lOVF9JTklUX1hZX1owKHNlY3AxOTJyMV9UXzEyX1gsIHNlY3AxOTJyMV9UXzEyX1kpLAotICAgIEVDUF9QT0lOVF9JTklUX1hZX1owKHNlY3AxOTJyMV9UXzEzX1gsIHNlY3AxOTJyMV9UXzEzX1kpLAotICAgIEVDUF9QT0lOVF9JTklUX1hZX1owKHNlY3AxOTJyMV9UXzE0X1gsIHNlY3AxOTJyMV9UXzE0X1kpLAotICAgIEVDUF9QT0lOVF9JTklUX1hZX1owKHNlY3AxOTJyMV9UXzE1X1gsIHNlY3AxOTJyMV9UXzE1X1kpLAotfTsKLSNlbHNlCi0jZGVmaW5lIHNlY3AxOTJyMV9UIE5VTEwKLSNlbmRpZgotI2VuZGlmIC8qIE1CRURUTFNfRUNQX0RQX1NFQ1AxOTJSMV9FTkFCTEVEICovCi0KLS8qCi0gKiBEb21haW4gcGFyYW1ldGVycyBmb3Igc2VjcDIyNHIxCi0gKi8KLSNpZiBkZWZpbmVkKE1CRURUTFNfRUNQX0RQX1NFQ1AyMjRSMV9FTkFCTEVEKQotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDIyNHIxX3BbXSA9IHsKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MDEsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDApLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEZGLCAweEZGLCAweEZGLCAweEZGLCAweEZGLCAweEZGLCAweEZGLCAweEZGKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RkYsIDB4RkYsIDB4RkYsIDB4RkYsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDApLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AyMjRyMV9iW10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEI0LCAweEZGLCAweDU1LCAweDIzLCAweDQzLCAweDM5LCAweDBCLCAweDI3KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QkEsIDB4RDgsIDB4QkYsIDB4RDcsIDB4QjcsIDB4QjAsIDB4NDQsIDB4NTApLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg1NiwgMHgzMiwgMHg0MSwgMHhGNSwgMHhBQiwgMHhCMywgMHgwNCwgMHgwQyksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfNCgweDg1LCAweDBBLCAweDA1LCAweEI0KSwKLX07Ci1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMjI0cjFfZ3hbXSA9IHsKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MjEsIDB4MUQsIDB4NUMsIDB4MTEsIDB4RDYsIDB4ODAsIDB4MzIsIDB4MzQpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgyMiwgMHgxMSwgMHhDMiwgMHg1NiwgMHhEMywgMHhDMSwgMHgwMywgMHg0QSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEI5LCAweDkwLCAweDEzLCAweDMyLCAweDdGLCAweEJGLCAweEI0LCAweDZCKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF80KDB4QkQsIDB4MEMsIDB4MEUsIDB4QjcpLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AyMjRyMV9neVtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgzNCwgMHg3RSwgMHgwMCwgMHg4NSwgMHg5OSwgMHg4MSwgMHhENSwgMHg0NCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDY0LCAweDQ3LCAweDA3LCAweDVBLCAweEEwLCAweDc1LCAweDQzLCAweENEKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RTYsIDB4REYsIDB4MjIsIDB4NEMsIDB4RkIsIDB4MjMsIDB4RjcsIDB4QjUpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzQoMHg4OCwgMHg2MywgMHgzNywgMHhCRCksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDIyNHIxX25bXSA9IHsKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4M0QsIDB4MkEsIDB4NUMsIDB4NUMsIDB4NDUsIDB4MjksIDB4REQsIDB4MTMpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgzRSwgMHhGMCwgMHhCOCwgMHhFMCwgMHhBMiwgMHgxNiwgMHhGRiwgMHhGRiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEZGLCAweEZGLCAweEZGLCAweEZGLCAweEZGLCAweEZGLCAweEZGLCAweEZGKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF80KDB4RkYsIDB4RkYsIDB4RkYsIDB4RkYpLAotfTsKLSNpZiBNQkVEVExTX0VDUF9GSVhFRF9QT0lOVF9PUFRJTSA9PSAxCi1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMjI0cjFfVF8wX1hbXSA9IHsKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MjEsIDB4MUQsIDB4NUMsIDB4MTEsIDB4RDYsIDB4ODAsIDB4MzIsIDB4MzQpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgyMiwgMHgxMSwgMHhDMiwgMHg1NiwgMHhEMywgMHhDMSwgMHgwMywgMHg0QSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEI5LCAweDkwLCAweDEzLCAweDMyLCAweDdGLCAweEJGLCAweEI0LCAweDZCKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QkQsIDB4MEMsIDB4MEUsIDB4QjcsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDApLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AyMjRyMV9UXzBfWVtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgzNCwgMHg3RSwgMHgwMCwgMHg4NSwgMHg5OSwgMHg4MSwgMHhENSwgMHg0NCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDY0LCAweDQ3LCAweDA3LCAweDVBLCAweEEwLCAweDc1LCAweDQzLCAweENEKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RTYsIDB4REYsIDB4MjIsIDB4NEMsIDB4RkIsIDB4MjMsIDB4RjcsIDB4QjUpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg4OCwgMHg2MywgMHgzNywgMHhCRCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDIyNHIxX1RfMV9YW10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEUwLCAweEY5LCAweEI4LCAweEQwLCAweDNELCAweEQyLCAweEQzLCAweEZBKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MUUsIDB4RkQsIDB4OTksIDB4MjYsIDB4MTksIDB4RkUsIDB4MTMsIDB4NkUpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgxQywgMHgwRSwgMHg0QywgMHg0OCwgMHg3QywgMHhBMiwgMHgxNywgMHgwMSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDNELCAweEEzLCAweDEzLCAweDU3LCAweDAwLCAweDAwLCAweDAwLCAweDAwKSwKLX07Ci1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMjI0cjFfVF8xX1lbXSA9IHsKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4OUYsIDB4MTYsIDB4NUMsIDB4OEYsIDB4QUEsIDB4RUQsIDB4MEYsIDB4NTgpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhCRiwgMHhDNSwgMHg0MywgMHgzNCwgMHg5MywgMHgwNSwgMHgyQSwgMHg0QyksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEU0LCAweEUzLCAweDZDLCAweENBLCAweEM2LCAweDE0LCAweEMyLCAweDI1KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RDMsIDB4NDMsIDB4NkMsIDB4RDcsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDApLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AyMjRyMV9UXzJfWFtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhDMywgMHg1QSwgMHg5OCwgMHgxRSwgMHhDOCwgMHhBNSwgMHg0MiwgMHhBMyksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDk4LCAweDQ5LCAweDU2LCAweDc4LCAweEY4LCAweEVGLCAweEVELCAweDY1KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MUIsIDB4QkIsIDB4NjQsIDB4QjYsIDB4NEMsIDB4NTQsIDB4NUYsIDB4RDEpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgyRiwgMHgwQywgMHgzMywgMHhDQywgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDIyNHIxX1RfMl9ZW10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEZBLCAweDc5LCAweENCLCAweDJFLCAweDA4LCAweEZGLCAweEQ4LCAweEU2KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MkUsIDB4MUYsIDB4RDQsIDB4RDcsIDB4NTcsIDB4RTksIDB4MzksIDB4NDUpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhEOCwgMHhENiwgMHgzQiwgMHgwQSwgMHgxQywgMHg4NywgMHhCNywgMHg2QSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEVCLCAweDMwLCAweEQ4LCAweDA1LCAweDAwLCAweDAwLCAweDAwLCAweDAwKSwKLX07Ci1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMjI0cjFfVF8zX1hbXSA9IHsKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QUQsIDB4NzksIDB4NzQsIDB4OUEsIDB4RTYsIDB4QkIsIDB4QzIsIDB4QzIpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhCNCwgMHg1QiwgMHhBNiwgMHg2NywgMHhDMSwgMHg5MSwgMHhFNywgMHg2NCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEYwLCAweERGLCAweDM4LCAweDgyLCAweDE5LCAweDJDLCAweDRDLCAweENBKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RDEsIDB4MkUsIDB4MzksIDB4QzUsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDApLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AyMjRyMV9UXzNfWVtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg5OSwgMHgzNiwgMHg3OCwgMHg0RSwgMHhBRSwgMHg1QiwgMHgwMiwgMHg3NiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDE0LCAweEY2LCAweDhCLCAweEY4LCAweEY0LCAweDkyLCAweDZCLCAweDQyKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QkEsIDB4NEQsIDB4NzEsIDB4MzUsIDB4RTcsIDB4MEMsIDB4MkMsIDB4OTgpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg5QiwgMHhBNSwgMHgxRiwgMHhBRSwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDIyNHIxX1RfNF9YW10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEFGLCAweDFDLCAweDRCLCAweERGLCAweDVCLCAweEYyLCAweDUxLCAweEI3KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MDUsIDB4NzQsIDB4QjEsIDB4NUEsIDB4QzYsIDB4MEYsIDB4MEUsIDB4NjEpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhFOCwgMHgyNCwgMHgwOSwgMHg2MiwgMHhBRiwgMHhGQywgMHhEQiwgMHg0NSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDQzLCAweEUxLCAweDgwLCAweDU1LCAweDAwLCAweDAwLCAweDAwLCAweDAwKSwKLX07Ci1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMjI0cjFfVF80X1lbXSA9IHsKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4M0MsIDB4ODIsIDB4RkUsIDB4QUQsIDB4QzMsIDB4RTUsIDB4Q0YsIDB4RDgpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgyNCwgMHhBMiwgMHg2MiwgMHgxNywgMHg3NiwgMHhGMCwgMHg1QSwgMHhGQSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDNFLCAweEI4LCAweEU1LCAweEFDLCAweEI3LCAweDY2LCAweDM4LCAweEFBKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4OTcsIDB4RkQsIDB4ODYsIDB4MDUsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDApLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AyMjRyMV9UXzVfWFtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg1OSwgMHhEMywgMHgwQywgMHgzQywgMHhEMSwgMHg2NiwgMHhCMCwgMHhGMSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEJDLCAweDU5LCAweEI0LCAweDhELCAweDkwLCAweDEwLCAweEI3LCAweEEyKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4OTYsIDB4NDcsIDB4OUIsIDB4RTYsIDB4NTUsIDB4OEEsIDB4RTQsIDB4RUUpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhCMSwgMHg0OSwgMHhEQiwgMHg3OCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDIyNHIxX1RfNV9ZW10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDQxLCAweDk3LCAweEVELCAweERFLCAweEZGLCAweEIzLCAweERGLCAweDQ4KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MTAsIDB4QjksIDB4ODMsIDB4QjcsIDB4RUIsIDB4QkUsIDB4NDAsIDB4OEQpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhBRiwgMHhEMywgMHhEMywgMHhDRCwgMHgwRSwgMHg4MiwgMHg3OSwgMHgzRCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDlCLCAweDgzLCAweDFCLCAweEYwLCAweDAwLCAweDAwLCAweDAwLCAweDAwKSwKLX07Ci1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMjI0cjFfVF82X1hbXSA9IHsKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4M0YsIDB4MjIsIDB4QkIsIDB4NTQsIDB4RDMsIDB4MzEsIDB4NTYsIDB4RkMpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg4MCwgMHgzNiwgMHhFNSwgMHhFMCwgMHg4OSwgMHg5NiwgMHg4RSwgMHg3MSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEUxLCAweEVGLCAweDBBLCAweEVELCAweEQwLCAweDExLCAweDRBLCAweEZGKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MTUsIDB4MDAsIDB4NTcsIDB4MjcsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDApLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AyMjRyMV9UXzZfWVtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgxMywgMHhDQSwgMHgzRCwgMHhGNywgMHg2NCwgMHg5QiwgMHg2RSwgMHg4NSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDkwLCAweEUzLCAweDcwLCAweDZCLCAweDQxLCAweEQ3LCAweEVELCAweDhGKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MDIsIDB4NDQsIDB4NDQsIDB4ODAsIDB4Q0UsIDB4MTMsIDB4MzcsIDB4OTIpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg5NCwgMHg3MywgMHg4MCwgMHg3OSwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDIyNHIxX1RfN19YW10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEI3LCAweDRELCAweDcwLCAweDdELCAweDMxLCAweDBGLCAweDFDLCAweDU4KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NkQsIDB4MzUsIDB4ODgsIDB4NDcsIDB4QzQsIDB4MjQsIDB4NzgsIDB4M0YpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhCQSwgMHhGMCwgMHhDRCwgMHg5MSwgMHg4MSwgMHhCMywgMHhERSwgMHhCNiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDA0LCAweENFLCAweEM2LCAweEY3LCAweDAwLCAweDAwLCAweDAwLCAweDAwKSwKLX07Ci1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMjI0cjFfVF83X1lbXSA9IHsKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RTksIDB4OUMsIDB4MkQsIDB4RTgsIDB4RDIsIDB4MDAsIDB4OEYsIDB4MTApLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhENSwgMHg1RSwgMHg3QywgMHgwRSwgMHgwQywgMHg2RSwgMHg1OCwgMHgwMiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEFFLCAweDgxLCAweDIxLCAweENFLCAweDQzLCAweEY0LCAweDI0LCAweDNEKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4OUUsIDB4QkMsIDB4RjAsIDB4RjQsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDApLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AyMjRyMV9UXzhfWFtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhENiwgMHgxMCwgMHhDMiwgMHg3NCwgMHg0QSwgMHg4RiwgMHg4QSwgMHhDRiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDg5LCAweDY3LCAweEY0LCAweDJCLCAweDM4LCAweDJCLCAweDM1LCAweDE3KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RjUsIDB4RTcsIDB4MEMsIDB4QTksIDB4RkEsIDB4NzcsIDB4NUMsIDB4QkQpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhFMCwgMHgzMywgMHgxOSwgMHgyQiwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDIyNHIxX1RfOF9ZW10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEU3LCAweDNFLCAweDk2LCAweDIyLCAweDUzLCAweEUxLCAweEU5LCAweEJFKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RTAsIDB4MTMsIDB4QkMsIDB4QTEsIDB4MTYsIDB4RUMsIDB4MDEsIDB4MUEpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg5QSwgMHgwMCwgMHhDOSwgMHg3QSwgMHhDMywgMHg3MywgMHhBNSwgMHg0NSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEUxLCAweEY0LCAweDVFLCAweEMxLCAweDAwLCAweDAwLCAweDAwLCAweDAwKSwKLX07Ci1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMjI0cjFfVF85X1hbXSA9IHsKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QTgsIDB4OTUsIDB4RDYsIDB4RDksIDB4MzIsIDB4MzAsIDB4MkIsIDB4RDApLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg3NywgMHg0MiwgMHgwOSwgMHgwNSwgMHg2MSwgMHgyQSwgMHg3RSwgMHg4MiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDczLCAweDg0LCAweEEyLCAweDA1LCAweDg4LCAweDY0LCAweDY1LCAweEY5KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MDMsIDB4MkQsIDB4OTAsIDB4QjMsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDApLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AyMjRyMV9UXzlfWVtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgwQSwgMHhFNywgMHgyRSwgMHg4NSwgMHg1NSwgMHg4MCwgMHg3QywgMHg3OSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDBGLCAweEMxLCAweEFDLCAweDc4LCAweEI0LCAweEFGLCAweEZCLCAweDZFKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RDMsIDB4QzMsIDB4MjgsIDB4OEUsIDB4NzksIDB4MTgsIDB4MUYsIDB4NTgpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgzNCwgMHg0NiwgMHhDRiwgMHg0OSwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDIyNHIxX1RfMTBfWFtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg2MywgMHg1RiwgMHhBOCwgMHg2QywgMHg0NiwgMHg4MywgMHg0MywgMHhGQSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEZBLCAweEE5LCAweDkzLCAweDExLCAweEI2LCAweDA3LCAweDU3LCAweDc0KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NzcsIDB4MkEsIDB4OUQsIDB4MDMsIDB4ODksIDB4N0UsIDB4RDcsIDB4M0MpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg3QiwgMHg4QywgMHg2MiwgMHhDRiwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDIyNHIxX1RfMTBfWVtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg0NCwgMHgyQywgMHgxMywgMHg1OSwgMHhDQywgMHhGQSwgMHg4NCwgMHg5RSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDUxLCAweEI5LCAweDQ4LCAweEJDLCAweDU3LCAweEM3LCAweEIzLCAweDdDKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RkMsIDB4MEEsIDB4MzgsIDB4MjQsIDB4MkUsIDB4M0EsIDB4MjgsIDB4MjUpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhCQywgMHgwQSwgMHg0MywgMHhCOCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDIyNHIxX1RfMTFfWFtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg1OSwgMHgyNSwgMHhBQiwgMHhDMSwgMHhFRSwgMHg3MCwgMHgzQywgMHhFMSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEYzLCAweERCLCAweDQ1LCAweDFELCAweDRBLCAweDgwLCAweDc1LCAweDM1KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RTgsIDB4MUYsIDB4NEQsIDB4MkQsIDB4OUEsIDB4MDUsIDB4RjQsIDB4Q0IpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg2QiwgMHgxMCwgMHhGMCwgMHg1QSwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDIyNHIxX1RfMTFfWVtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgzNSwgMHg5NSwgMHhFMSwgMHhEQywgMHgxNSwgMHg4NiwgMHhDMywgMHg3QiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEVDLCAweERDLCAweDI3LCAweEQxLCAweDU2LCAweEExLCAweDE0LCAweDBEKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NTksIDB4MEIsIDB4RDYsIDB4NzcsIDB4NEUsIDB4NDQsIDB4QTIsIDB4RjgpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg5NCwgMHg0MiwgMHg3MSwgMHgxRiwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDIyNHIxX1RfMTJfWFtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgzMCwgMHg4NiwgMHhCMiwgMHhCMCwgMHhDOCwgMHgyRiwgMHg3QiwgMHhGRSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDk2LCAweEVGLCAweENCLCAweERCLCAweEJDLCAweDlFLCAweDNCLCAweEM1KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MUIsIDB4MDMsIDB4ODYsIDB4REQsIDB4NUIsIDB4RjUsIDB4OEQsIDB4NDYpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg1OCwgMHg5NSwgMHg3OSwgMHhENiwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDIyNHIxX1RfMTJfWVtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg4NCwgMHgzMiwgMHgxNCwgMHhEQSwgMHg5QiwgMHg0RiwgMHgwNywgMHgzOSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEI1LCAweDNFLCAweEZCLCAweDA2LCAweEVFLCAweEE3LCAweDQwLCAweDQwKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NzYsIDB4MUYsIDB4REYsIDB4NzEsIDB4NjEsIDB4RkQsIDB4OEIsIDB4QkUpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg4MCwgMHg4QiwgMHhBQiwgMHg4QiwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDIyNHIxX1RfMTNfWFtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhDOSwgMHgzNCwgMHhCMywgMHhCNCwgMHhCQywgMHg5RiwgMHhCMCwgMHg1RSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEU2LCAweDU4LCAweDQ4LCAweEE4LCAweDc3LCAweEJCLCAweDEzLCAweDJGKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NDEsIDB4QzYsIDB4RjcsIDB4MzQsIDB4Q0MsIDB4ODksIDB4MjEsIDB4MEEpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhDQSwgMHgzMywgMHhERCwgMHgxRiwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDIyNHIxX1RfMTNfWVtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhDQywgMHg4MSwgMHhFRiwgMHhBNCwgMHhGMiwgMHgxMCwgMHgwQiwgMHhDRCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDgzLCAweEY3LCAweDZFLCAweDcyLCAweDRBLCAweERGLCAweERELCAweEU4KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NjcsIDB4MjMsIDB4MEEsIDB4NTMsIDB4MDMsIDB4MTYsIDB4NjIsIDB4RDIpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgwQiwgMHg3NiwgMHhGRCwgMHgzQywgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDIyNHIxX1RfMTRfWFtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhDQiwgMHgxNCwgMHhBMSwgMHhGQSwgMHhBMCwgMHgxOCwgMHhCRSwgMHgwNyksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDAzLCAweDJBLCAweEUxLCAweEQ3LCAweEIwLCAweDZDLCAweEEwLCAweERFKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RDEsIDB4QzAsIDB4QjAsIDB4QzYsIDB4NjMsIDB4MjQsIDB4Q0QsIDB4NEUpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgzMywgMHgzOCwgMHgyQywgMHhCMSwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDIyNHIxX1RfMTRfWVtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhFRSwgMHhDRCwgMHg3RCwgMHgyMCwgMHgwQywgMHhGRSwgMHhBQywgMHhDMyksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDA5LCAweDk3LCAweDlGLCAweEEyLCAweEI2LCAweDQ1LCAweEY3LCAweDdCKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4Q0EsIDB4OTksIDB4RjMsIDB4RDIsIDB4MjAsIDB4MDIsIDB4RUIsIDB4MDQpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg0MywgMHgxOCwgMHg1QiwgMHg3QiwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDIyNHIxX1RfMTVfWFtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgyQiwgMHhERCwgMHg3NywgMHg5MSwgMHg2MCwgMHhFQSwgMHhGRCwgMHhEMyksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDdELCAweEQzLCAweEI1LCAweEQ2LCAweDkwLCAweDE3LCAweDBFLCAweDFBKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MDAsIDB4RjQsIDB4MjgsIDB4QzEsIDB4RjIsIDB4NTMsIDB4RjYsIDB4NjMpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg0OSwgMHg1OCwgMHhEQywgMHg2MSwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDIyNHIxX1RfMTVfWVtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhBOCwgMHgyMCwgMHgwMSwgMHhGQiwgMHhGMSwgMHhCRCwgMHg1RiwgMHg0NSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEQwLCAweDdGLCAweDA2LCAweERBLCAweDExLCAweENCLCAweEJBLCAweEE2KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QTcsIDB4NDEsIDB4MDAsIDB4QTQsIDB4MUIsIDB4MzAsIDB4MzMsIDB4NzkpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhGNCwgMHhGRiwgMHgyNywgMHhDQSwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfZWNwX3BvaW50IHNlY3AyMjRyMV9UWzE2XSA9IHsKLSAgICBFQ1BfUE9JTlRfSU5JVF9YWV9aMShzZWNwMjI0cjFfVF8wX1gsIHNlY3AyMjRyMV9UXzBfWSksCi0gICAgRUNQX1BPSU5UX0lOSVRfWFlfWjAoc2VjcDIyNHIxX1RfMV9YLCBzZWNwMjI0cjFfVF8xX1kpLAotICAgIEVDUF9QT0lOVF9JTklUX1hZX1owKHNlY3AyMjRyMV9UXzJfWCwgc2VjcDIyNHIxX1RfMl9ZKSwKLSAgICBFQ1BfUE9JTlRfSU5JVF9YWV9aMChzZWNwMjI0cjFfVF8zX1gsIHNlY3AyMjRyMV9UXzNfWSksCi0gICAgRUNQX1BPSU5UX0lOSVRfWFlfWjAoc2VjcDIyNHIxX1RfNF9YLCBzZWNwMjI0cjFfVF80X1kpLAotICAgIEVDUF9QT0lOVF9JTklUX1hZX1owKHNlY3AyMjRyMV9UXzVfWCwgc2VjcDIyNHIxX1RfNV9ZKSwKLSAgICBFQ1BfUE9JTlRfSU5JVF9YWV9aMChzZWNwMjI0cjFfVF82X1gsIHNlY3AyMjRyMV9UXzZfWSksCi0gICAgRUNQX1BPSU5UX0lOSVRfWFlfWjAoc2VjcDIyNHIxX1RfN19YLCBzZWNwMjI0cjFfVF83X1kpLAotICAgIEVDUF9QT0lOVF9JTklUX1hZX1owKHNlY3AyMjRyMV9UXzhfWCwgc2VjcDIyNHIxX1RfOF9ZKSwKLSAgICBFQ1BfUE9JTlRfSU5JVF9YWV9aMChzZWNwMjI0cjFfVF85X1gsIHNlY3AyMjRyMV9UXzlfWSksCi0gICAgRUNQX1BPSU5UX0lOSVRfWFlfWjAoc2VjcDIyNHIxX1RfMTBfWCwgc2VjcDIyNHIxX1RfMTBfWSksCi0gICAgRUNQX1BPSU5UX0lOSVRfWFlfWjAoc2VjcDIyNHIxX1RfMTFfWCwgc2VjcDIyNHIxX1RfMTFfWSksCi0gICAgRUNQX1BPSU5UX0lOSVRfWFlfWjAoc2VjcDIyNHIxX1RfMTJfWCwgc2VjcDIyNHIxX1RfMTJfWSksCi0gICAgRUNQX1BPSU5UX0lOSVRfWFlfWjAoc2VjcDIyNHIxX1RfMTNfWCwgc2VjcDIyNHIxX1RfMTNfWSksCi0gICAgRUNQX1BPSU5UX0lOSVRfWFlfWjAoc2VjcDIyNHIxX1RfMTRfWCwgc2VjcDIyNHIxX1RfMTRfWSksCi0gICAgRUNQX1BPSU5UX0lOSVRfWFlfWjAoc2VjcDIyNHIxX1RfMTVfWCwgc2VjcDIyNHIxX1RfMTVfWSksCi19OwotI2Vsc2UKLSNkZWZpbmUgc2VjcDIyNHIxX1QgTlVMTAotI2VuZGlmCi0jZW5kaWYgLyogTUJFRFRMU19FQ1BfRFBfU0VDUDIyNFIxX0VOQUJMRUQgKi8KLQotLyoKLSAqIERvbWFpbiBwYXJhbWV0ZXJzIGZvciBzZWNwMjU2cjEKLSAqLwotI2lmIGRlZmluZWQoTUJFRFRMU19FQ1BfRFBfU0VDUDI1NlIxX0VOQUJMRUQpCi1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMjU2cjFfcFtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEZGLCAweEZGLCAweEZGLCAweEZGLCAweDAwLCAweDAwLCAweDAwLCAweDAwKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDApLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgwMSwgMHgwMCwgMHgwMCwgMHgwMCwgMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDI1NnIxX2JbXSA9IHsKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NEIsIDB4NjAsIDB4RDIsIDB4MjcsIDB4M0UsIDB4M0MsIDB4Q0UsIDB4M0IpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhGNiwgMHhCMCwgMHg1MywgMHhDQywgMHhCMCwgMHgwNiwgMHgxRCwgMHg2NSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEJDLCAweDg2LCAweDk4LCAweDc2LCAweDU1LCAweEJELCAweEVCLCAweEIzKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RTcsIDB4OTMsIDB4M0EsIDB4QUEsIDB4RDgsIDB4MzUsIDB4QzYsIDB4NUEpLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AyNTZyMV9neFtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg5NiwgMHhDMiwgMHg5OCwgMHhEOCwgMHg0NSwgMHgzOSwgMHhBMSwgMHhGNCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEEwLCAweDMzLCAweEVCLCAweDJELCAweDgxLCAweDdELCAweDAzLCAweDc3KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RjIsIDB4NDAsIDB4QTQsIDB4NjMsIDB4RTUsIDB4RTYsIDB4QkMsIDB4RjgpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg0NywgMHg0MiwgMHgyQywgMHhFMSwgMHhGMiwgMHhEMSwgMHgxNywgMHg2QiksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDI1NnIxX2d5W10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEY1LCAweDUxLCAweEJGLCAweDM3LCAweDY4LCAweDQwLCAweEI2LCAweENCKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4Q0UsIDB4NUUsIDB4MzEsIDB4NkIsIDB4NTcsIDB4MzMsIDB4Q0UsIDB4MkIpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgxNiwgMHg5RSwgMHgwRiwgMHg3QywgMHg0QSwgMHhFQiwgMHhFNywgMHg4RSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDlCLCAweDdGLCAweDFBLCAweEZFLCAweEUyLCAweDQyLCAweEUzLCAweDRGKSwKLX07Ci1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMjU2cjFfbltdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg1MSwgMHgyNSwgMHg2MywgMHhGQywgMHhDMiwgMHhDQSwgMHhCOSwgMHhGMyksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDg0LCAweDlFLCAweDE3LCAweEE3LCAweEFELCAweEZBLCAweEU2LCAweEJDKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RkYsIDB4RkYsIDB4RkYsIDB4RkYsIDB4RkYsIDB4RkYsIDB4RkYsIDB4RkYpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiksCi19OwotI2lmIE1CRURUTFNfRUNQX0ZJWEVEX1BPSU5UX09QVElNID09IDEKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AyNTZyMV9UXzBfWFtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg5NiwgMHhDMiwgMHg5OCwgMHhEOCwgMHg0NSwgMHgzOSwgMHhBMSwgMHhGNCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEEwLCAweDMzLCAweEVCLCAweDJELCAweDgxLCAweDdELCAweDAzLCAweDc3KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RjIsIDB4NDAsIDB4QTQsIDB4NjMsIDB4RTUsIDB4RTYsIDB4QkMsIDB4RjgpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg0NywgMHg0MiwgMHgyQywgMHhFMSwgMHhGMiwgMHhEMSwgMHgxNywgMHg2QiksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDI1NnIxX1RfMF9ZW10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEY1LCAweDUxLCAweEJGLCAweDM3LCAweDY4LCAweDQwLCAweEI2LCAweENCKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4Q0UsIDB4NUUsIDB4MzEsIDB4NkIsIDB4NTcsIDB4MzMsIDB4Q0UsIDB4MkIpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgxNiwgMHg5RSwgMHgwRiwgMHg3QywgMHg0QSwgMHhFQiwgMHhFNywgMHg4RSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDlCLCAweDdGLCAweDFBLCAweEZFLCAweEUyLCAweDQyLCAweEUzLCAweDRGKSwKLX07Ci1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMjU2cjFfVF8xX1hbXSA9IHsKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NzAsIDB4QzgsIDB4QkEsIDB4MDQsIDB4QjcsIDB4NEIsIDB4RDIsIDB4RjcpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhBQiwgMHhDNiwgMHgyMywgMHgzQSwgMHhBMCwgMHgwOSwgMHgzQSwgMHg1OSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDFELCAweDlELCAweDRDLCAweEY5LCAweDU4LCAweDIzLCAweENDLCAweERGKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MDIsIDB4RUQsIDB4N0IsIDB4MjksIDB4ODcsIDB4MEYsIDB4RkEsIDB4M0MpLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AyNTZyMV9UXzFfWVtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg0MCwgMHg2OSwgMHhGMiwgMHg0MCwgMHgwQiwgMHhBMywgMHg5OCwgMHhDRSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEFGLCAweEE4LCAweDQ4LCAweDAyLCAweDBELCAweDFDLCAweDEyLCAweDYyKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4OUIsIDB4QUYsIDB4MDksIDB4ODMsIDB4ODAsIDB4QUEsIDB4NTgsIDB4QTcpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhDNiwgMHgxMiwgMHhCRSwgMHg3MCwgMHg5NCwgMHg3NiwgMHhFMywgMHhFNCksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDI1NnIxX1RfMl9YW10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDdELCAweDdELCAweEVGLCAweDg2LCAweEZGLCAweEUzLCAweDM3LCAweEREKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4REIsIDB4ODYsIDB4OEIsIDB4MDgsIDB4MjcsIDB4N0MsIDB4RDcsIDB4RjYpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg5MSwgMHg1NCwgMHg0QywgMHgyNSwgMHg0RiwgMHg5QSwgMHhGRSwgMHgyOCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDVFLCAweEZELCAweEYwLCAweDZELCAweDM3LCAweDAzLCAweDY5LCAweEQ2KSwKLX07Ci1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMjU2cjFfVF8yX1lbXSA9IHsKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4OTYsIDB4RDUsIDB4REEsIDB4QUQsIDB4OTIsIDB4NDksIDB4RjAsIDB4OUYpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhGOSwgMHg3MywgMHg0MywgMHg5RSwgMHhBRiwgMHhBNywgMHhEMSwgMHhGMyksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDY3LCAweDQxLCAweDA3LCAweERGLCAweDc4LCAweDk1LCAweDNFLCAweEExKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MjIsIDB4M0QsIDB4RDEsIDB4RTYsIDB4M0MsIDB4QTUsIDB4RTIsIDB4MjApLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AyNTZyMV9UXzNfWFtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhCRiwgMHg2QSwgMHg1RCwgMHg1MiwgMHgzNSwgMHhENywgMHhCRiwgMHhBRSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDVBLCAweEEyLCAweEJFLCAweDk2LCAweEY0LCAweEY4LCAweDAyLCAweEMzKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QTQsIDB4MjAsIDB4NDksIDB4NTQsIDB4RUEsIDB4QjMsIDB4ODIsIDB4REIpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgyRSwgMHhEQiwgMHhFQSwgMHgwMiwgMHhEMSwgMHg3NSwgMHgxQywgMHg2MiksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDI1NnIxX1RfM19ZW10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEYwLCAweDg1LCAweEY0LCAweDlFLCAweDRDLCAweERDLCAweDM5LCAweDg5KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NjMsIDB4NkQsIDB4QzQsIDB4NTcsIDB4RDgsIDB4MDMsIDB4NUQsIDB4MjIpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg3MCwgMHg3RiwgMHgyRCwgMHg1MiwgMHg2RiwgMHhDOSwgMHhEQSwgMHg0RiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDlELCAweDY0LCAweEZBLCAweEI0LCAweEZFLCAweEE0LCAweEM0LCAweEQ3KSwKLX07Ci1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMjU2cjFfVF80X1hbXSA9IHsKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MkEsIDB4MzcsIDB4QjksIDB4QzAsIDB4QUEsIDB4NTksIDB4QzYsIDB4OEIpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgzRiwgMHg1OCwgMHhEOSwgMHhFRCwgMHg1OCwgMHg5OSwgMHg2NSwgMHhGNyksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDg4LCAweDdELCAweDI2LCAweDhDLCAweDRBLCAweEY5LCAweDA1LCAweDlGKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4OUQsIDB4NzMsIDB4OUEsIDB4QzksIDB4RTcsIDB4NDYsIDB4REMsIDB4MDApLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AyNTZyMV9UXzRfWVtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhGMiwgMHhEMCwgMHg1NSwgMHhERiwgMHgwMCwgMHgwQSwgMHhGNSwgMHg0QSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDZBLCAweEJGLCAweDU2LCAweDgxLCAweDJELCAweDIwLCAweEVCLCAweEI1KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MTEsIDB4QzEsIDB4MjgsIDB4NTIsIDB4QUIsIDB4RTMsIDB4RDEsIDB4NDApLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgyNCwgMHgzNCwgMHg3OSwgMHg0NSwgMHg1NywgMHhBNSwgMHgxMiwgMHgwMyksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDI1NnIxX1RfNV9YW10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEVFLCAweENGLCAweEI4LCAweDdFLCAweEY3LCAweDkyLCAweDk2LCAweDhEKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4M0QsIDB4MDEsIDB4OEMsIDB4MEQsIDB4MjMsIDB4RjIsIDB4RTMsIDB4MDUpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg1OSwgMHgyRSwgMHhFMywgMHg4NCwgMHg1MiwgMHg3QSwgMHgzNCwgMHg3NiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEU1LCAweEExLCAweEIwLCAweDE1LCAweDkwLCAweEUyLCAweDUzLCAweDNDKSwKLX07Ci1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMjU2cjFfVF81X1lbXSA9IHsKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RDQsIDB4OTgsIDB4RTcsIDB4RkEsIDB4QTUsIDB4N0QsIDB4OEIsIDB4NTMpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg5MSwgMHgzNSwgMHhEMiwgMHgwMCwgMHhEMSwgMHgxQiwgMHg5RiwgMHgxQiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDNGLCAweDY5LCAweDA4LCAweDlBLCAweDcyLCAweEYwLCAweEE5LCAweDExKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QjMsIDB4RkUsIDB4MEUsIDB4MTQsIDB4REEsIDB4N0MsIDB4MEUsIDB4RDMpLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AyNTZyMV9UXzZfWFtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg4MywgMHhGNiwgMHhFOCwgMHhGOCwgMHg4NywgMHhGNywgMHhGQywgMHg2RCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDkwLCAweEJFLCAweDdGLCAweDNGLCAweDdBLCAweDJCLCAweEQ3LCAweDEzKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4Q0YsIDB4MzIsIDB4RjIsIDB4MkQsIDB4OTQsIDB4NkQsIDB4NDIsIDB4RkQpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhBRCwgMHg5QSwgMHhFMywgMHg1RiwgMHg0MiwgMHhCQiwgMHg4NCwgMHhFRCksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDI1NnIxX1RfNl9ZW10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEZDLCAweDk1LCAweDI5LCAweDczLCAweEExLCAweDY3LCAweDNFLCAweDAyKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RTMsIDB4MzAsIDB4NTQsIDB4MzUsIDB4OEUsIDB4MEEsIDB4REQsIDB4NjcpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgwMywgMHhENywgMHhBMSwgMHg5NywgMHg2MSwgMHgzQiwgMHhGOCwgMHgwQyksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEYyLCAweDMzLCAweDNDLCAweDU4LCAweDU1LCAweDM0LCAweDIzLCAweEEzKSwKLX07Ci1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMjU2cjFfVF83X1hbXSA9IHsKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4OTksIDB4NUQsIDB4MTYsIDB4NUYsIDB4N0IsIDB4QkMsIDB4QkIsIDB4Q0UpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg2MSwgMHhFRSwgMHg0RSwgMHg4QSwgMHhDMSwgMHg1MSwgMHhDQywgMHg1MCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDFGLCAweDBELCAweDRELCAweDFCLCAweDUzLCAweDIzLCAweDFELCAweEIzKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4REEsIDB4MkEsIDB4MzgsIDB4NjYsIDB4NTIsIDB4ODQsIDB4RTEsIDB4OTUpLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AyNTZyMV9UXzdfWVtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg1QiwgMHg5QiwgMHg4MywgMHgwQSwgMHg4MSwgMHg0RiwgMHhBRCwgMHhBQyksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDBGLCAweEZGLCAweDQyLCAweDQxLCAweDZFLCAweEE5LCAweEEyLCAweEEwKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MkYsIDB4QTEsIDB4NEYsIDB4MUYsIDB4ODksIDB4ODIsIDB4QUEsIDB4M0UpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhGMywgMHhCOCwgMHgwRiwgMHg2QiwgMHg4RiwgMHg4QywgMHhENiwgMHg2OCksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDI1NnIxX1RfOF9YW10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEYxLCAweEIzLCAweEJCLCAweDUxLCAweDY5LCAweEEyLCAweDExLCAweDkzKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NjUsIDB4NEYsIDB4MEYsIDB4OEQsIDB4QkQsIDB4MjYsIDB4MEYsIDB4RTgpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhCOSwgMHhDQiwgMHhFQywgMHg2QiwgMHgzNCwgMHhDMywgMHgzRCwgMHg5RCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEU0LCAweDVELCAweDFFLCAweDEwLCAweEQ1LCAweDQ0LCAweEUyLCAweDU0KSwKLX07Ci1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMjU2cjFfVF84X1lbXSA9IHsKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MjgsIDB4OUUsIDB4QjEsIDB4RjEsIDB4NkUsIDB4NEMsIDB4QUQsIDB4QjMpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhCNywgMHhFMywgMHhDMiwgMHg1OCwgMHhDMCwgMHhGQiwgMHgzNCwgMHg0MyksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDI1LCAweDlDLCAweERGLCAweDM1LCAweDA3LCAweDQxLCAweEJELCAweDE5KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QjYsIDB4NkUsIDB4MTAsIDB4RUMsIDB4MEUsIDB4RUMsIDB4QkIsIDB4RDYpLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AyNTZyMV9UXzlfWFtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhDOCwgMHhDRiwgMHhFRiwgMHgzRiwgMHg4MywgMHgxQSwgMHg4OCwgMHhFOCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDBCLCAweDI5LCAweEI1LCAweEI5LCAweEUwLCAweEM5LCAweEEzLCAweEFFKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4ODgsIDB4NDYsIDB4MUUsIDB4NzcsIDB4Q0QsIDB4N0UsIDB4QjMsIDB4MTApLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhCNiwgMHgyMSwgMHhEMCwgMHhENCwgMHhBMywgMHgxNiwgMHgwOCwgMHhFRSksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDI1NnIxX1RfOV9ZW10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEExLCAweENBLCAweEE4LCAweEIzLCAweEJGLCAweDI5LCAweDk5LCAweDhFKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RDEsIDB4RjIsIDB4MDUsIDB4QzEsIDB4Q0YsIDB4NUQsIDB4OTEsIDB4NDgpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg5RiwgMHgwMSwgMHg0OSwgMHhEQiwgMHg4MiwgMHhERiwgMHg1RiwgMHgzQSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEUxLCAweDA2LCAweDkwLCAweEFELCAweEUzLCAweDM4LCAweEE0LCAweEM0KSwKLX07Ci1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMjU2cjFfVF8xMF9YW10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEM5LCAweEQyLCAweDNBLCAweEU4LCAweDAzLCAweEM1LCAweDZELCAweDVEKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QkUsIDB4MzUsIDB4RDAsIDB4QUUsIDB4MUQsIDB4N0EsIDB4OUYsIDB4Q0EpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgzMywgMHgxRSwgMHhEMiwgMHhDQiwgMHhBQywgMHg4OCwgMHgyNywgMHg1NSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEYwLCAweEI5LCAweDlDLCAweEUwLCAweDMxLCAweERELCAweDk5LCAweDg2KSwKLX07Ci1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMjU2cjFfVF8xMF9ZW10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDYxLCAweEY5LCAweDlCLCAweDMyLCAweDk2LCAweDQxLCAweDU4LCAweDM4KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RjksIDB4NUEsIDB4MkEsIDB4QjgsIDB4OTYsIDB4MEUsIDB4QjIsIDB4NEMpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhDMSwgMHg3OCwgMHgyQywgMHhDNywgMHgwOCwgMHg5OSwgMHgxOSwgMHgyNCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEI3LCAweDU5LCAweDI4LCAweEU5LCAweDg0LCAweDU0LCAweEU2LCAweDE2KSwKLX07Ci1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMjU2cjFfVF8xMV9YW10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweERELCAweDM4LCAweDMwLCAweERCLCAweDcwLCAweDJDLCAweDBBLCAweEEyKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4N0MsIDB4NUMsIDB4OUQsIDB4RTksIDB4RDUsIDB4NDYsIDB4MEIsIDB4NUYpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg4MywgMHgwQiwgMHg2MCwgMHg0QiwgMHgzNywgMHg3RCwgMHhCOSwgMHhDOSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDVFLCAweDI0LCAweEYzLCAweDNELCAweDc5LCAweDdGLCAweDZDLCAweDE4KSwKLX07Ci1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMjU2cjFfVF8xMV9ZW10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDdGLCAweEU1LCAweDFDLCAweDRGLCAweDYwLCAweDI0LCAweEY3LCAweDJBKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RUQsIDB4RDgsIDB4RTIsIDB4OTEsIDB4N0YsIDB4ODksIDB4NDksIDB4OTIpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg5NywgMHhBNywgMHgyRSwgMHg4RCwgMHg2QSwgMHhCMywgMHgzOSwgMHg4MSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDEzLCAweDg5LCAweEI1LCAweDlBLCAweEI4LCAweDhELCAweDQyLCAweDlDKSwKLX07Ci1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMjU2cjFfVF8xMl9YW10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDhELCAweDQ1LCAweEU2LCAweDRCLCAweDNGLCAweDRGLCAweDFFLCAweDFGKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NDcsIDB4NjUsIDB4NUUsIDB4NTksIDB4MjIsIDB4Q0MsIDB4NzIsIDB4NUYpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhGMSwgMHg5MywgMHgxQSwgMHgyNywgMHgxRSwgMHgzNCwgMHhDNSwgMHg1QiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDYzLCAweEYyLCAweEE1LCAweDU4LCAweDVDLCAweDE1LCAweDJFLCAweEM2KSwKLX07Ci1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMjU2cjFfVF8xMl9ZW10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEY0LCAweDdGLCAweEJBLCAweDU4LCAweDVBLCAweDg0LCAweDZGLCAweDVGKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QUQsIDB4QTYsIDB4MzYsIDB4N0UsIDB4REMsIDB4RjcsIDB4RTEsIDB4NjcpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgwNCwgMHg0RCwgMHhBQSwgMHhFRSwgMHg1NywgMHg3NiwgMHgzQSwgMHhEMyksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDRFLCAweDdFLCAweDI2LCAweDE4LCAweDIyLCAweDIzLCAweDlGLCAweEZGKSwKLX07Ci1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMjU2cjFfVF8xM19YW10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDFELCAweDRDLCAweDY0LCAweEM3LCAweDU1LCAweDAyLCAweDNGLCAweEUzKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RDgsIDB4MDIsIDB4OTAsIDB4QkIsIDB4QzMsIDB4RUMsIDB4MzAsIDB4NDApLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg5RiwgMHg2RiwgMHg2NCwgMHhGNCwgMHgxNiwgMHg2OSwgMHg0OCwgMHhBNCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEZBLCAweDQ0LCAweDlDLCAweDk1LCAweDBDLCAweDdELCAweDY3LCAweDVFKSwKLX07Ci1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMjU2cjFfVF8xM19ZW10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDQ0LCAweDkxLCAweDhCLCAweEQ4LCAweEQwLCAweEQ3LCAweEU3LCAweEUyKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MUYsIDB4RjksIDB4NDgsIDB4NjIsIDB4NkYsIDB4QTgsIDB4OTMsIDB4NUQpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhFQSwgMHgzQSwgMHg5OSwgMHgwMiwgMHhENSwgMHgwQiwgMHgzRCwgMHhFMyksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDFFLCAweEQzLCAweDAwLCAweDMxLCAweEU2LCAweDBDLCAweDlGLCAweDQ0KSwKLX07Ci1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMjU2cjFfVF8xNF9YW10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDU2LCAweEIyLCAweEFBLCAweEZELCAweDg4LCAweDE1LCAweERGLCAweDUyKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NEMsIDB4MzUsIDB4MjcsIDB4MzEsIDB4NDQsIDB4Q0QsIDB4QzAsIDB4NjgpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg1MywgMHhGOCwgMHg5MSwgMHhBNSwgMHg3MSwgMHg5NCwgMHg4NCwgMHgyQSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDkyLCAweENCLCAweEQwLCAweDkzLCAweEU5LCAweDg4LCAweERBLCAweEU0KSwKLX07Ci1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMjU2cjFfVF8xNF9ZW10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDI0LCAweEM2LCAweDM5LCAweDE2LCAweDVELCAweEEzLCAweDFFLCAweDZEKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QkEsIDB4MDcsIDB4MzcsIDB4MjYsIDB4MzYsIDB4MkEsIDB4RkUsIDB4NjApLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg1MSwgMHhCQywgMHhGMywgMHhEMCwgMHhERSwgMHg1MCwgMHhGQywgMHg5NyksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDgwLCAweDJFLCAweDA2LCAweDEwLCAweDE1LCAweDRELCAweEZBLCAweEY3KSwKLX07Ci1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMjU2cjFfVF8xNV9YW10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDI3LCAweDY1LCAweDY5LCAweDVCLCAweDY2LCAweEEyLCAweDc1LCAweDJFKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4OUMsIDB4MTYsIDB4MDAsIDB4NUEsIDB4QjAsIDB4MzAsIDB4MjUsIDB4MUEpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg0MiwgMHhGQiwgMHg4NiwgMHg0MiwgMHg4MCwgMHhDMSwgMHhDNCwgMHg3NiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDVCLCAweDFELCAweDgzLCAweDhFLCAweDk0LCAweDAxLCAweDVGLCAweDgyKSwKLX07Ci1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMjU2cjFfVF8xNV9ZW10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDM5LCAweDM3LCAweDcwLCAweEVGLCAweDFGLCAweEExLCAweEYwLCAweERCKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NkEsIDB4MTAsIDB4NUIsIDB4Q0UsIDB4QzQsIDB4OUIsIDB4NkYsIDB4MTApLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg1MCwgMHgxMSwgMHgxMSwgMHgyNCwgMHg0RiwgMHg0QywgMHg3OSwgMHg2MSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDE3LCAweDNBLCAweDcyLCAweEJDLCAweEZFLCAweDcyLCAweDU4LCAweDQzKSwKLX07Ci1zdGF0aWMgY29uc3QgbWJlZHRsc19lY3BfcG9pbnQgc2VjcDI1NnIxX1RbMTZdID0gewotICAgIEVDUF9QT0lOVF9JTklUX1hZX1oxKHNlY3AyNTZyMV9UXzBfWCwgc2VjcDI1NnIxX1RfMF9ZKSwKLSAgICBFQ1BfUE9JTlRfSU5JVF9YWV9aMChzZWNwMjU2cjFfVF8xX1gsIHNlY3AyNTZyMV9UXzFfWSksCi0gICAgRUNQX1BPSU5UX0lOSVRfWFlfWjAoc2VjcDI1NnIxX1RfMl9YLCBzZWNwMjU2cjFfVF8yX1kpLAotICAgIEVDUF9QT0lOVF9JTklUX1hZX1owKHNlY3AyNTZyMV9UXzNfWCwgc2VjcDI1NnIxX1RfM19ZKSwKLSAgICBFQ1BfUE9JTlRfSU5JVF9YWV9aMChzZWNwMjU2cjFfVF80X1gsIHNlY3AyNTZyMV9UXzRfWSksCi0gICAgRUNQX1BPSU5UX0lOSVRfWFlfWjAoc2VjcDI1NnIxX1RfNV9YLCBzZWNwMjU2cjFfVF81X1kpLAotICAgIEVDUF9QT0lOVF9JTklUX1hZX1owKHNlY3AyNTZyMV9UXzZfWCwgc2VjcDI1NnIxX1RfNl9ZKSwKLSAgICBFQ1BfUE9JTlRfSU5JVF9YWV9aMChzZWNwMjU2cjFfVF83X1gsIHNlY3AyNTZyMV9UXzdfWSksCi0gICAgRUNQX1BPSU5UX0lOSVRfWFlfWjAoc2VjcDI1NnIxX1RfOF9YLCBzZWNwMjU2cjFfVF84X1kpLAotICAgIEVDUF9QT0lOVF9JTklUX1hZX1owKHNlY3AyNTZyMV9UXzlfWCwgc2VjcDI1NnIxX1RfOV9ZKSwKLSAgICBFQ1BfUE9JTlRfSU5JVF9YWV9aMChzZWNwMjU2cjFfVF8xMF9YLCBzZWNwMjU2cjFfVF8xMF9ZKSwKLSAgICBFQ1BfUE9JTlRfSU5JVF9YWV9aMChzZWNwMjU2cjFfVF8xMV9YLCBzZWNwMjU2cjFfVF8xMV9ZKSwKLSAgICBFQ1BfUE9JTlRfSU5JVF9YWV9aMChzZWNwMjU2cjFfVF8xMl9YLCBzZWNwMjU2cjFfVF8xMl9ZKSwKLSAgICBFQ1BfUE9JTlRfSU5JVF9YWV9aMChzZWNwMjU2cjFfVF8xM19YLCBzZWNwMjU2cjFfVF8xM19ZKSwKLSAgICBFQ1BfUE9JTlRfSU5JVF9YWV9aMChzZWNwMjU2cjFfVF8xNF9YLCBzZWNwMjU2cjFfVF8xNF9ZKSwKLSAgICBFQ1BfUE9JTlRfSU5JVF9YWV9aMChzZWNwMjU2cjFfVF8xNV9YLCBzZWNwMjU2cjFfVF8xNV9ZKSwKLX07Ci0jZWxzZQotI2RlZmluZSBzZWNwMjU2cjFfVCBOVUxMCi0jZW5kaWYKLQotI2VuZGlmIC8qIE1CRURUTFNfRUNQX0RQX1NFQ1AyNTZSMV9FTkFCTEVEICovCi0KLS8qCi0gKiBEb21haW4gcGFyYW1ldGVycyBmb3Igc2VjcDM4NHIxCi0gKi8KLSNpZiBkZWZpbmVkKE1CRURUTFNfRUNQX0RQX1NFQ1AzODRSMV9FTkFCTEVEKQotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDM4NHIxX3BbXSA9IHsKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RkYsIDB4RkYsIDB4RkYsIDB4RkYsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDApLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEZFLCAweEZGLCAweEZGLCAweEZGLCAweEZGLCAweEZGLCAweEZGLCAweEZGKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RkYsIDB4RkYsIDB4RkYsIDB4RkYsIDB4RkYsIDB4RkYsIDB4RkYsIDB4RkYpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEZGLCAweEZGLCAweEZGLCAweEZGLCAweEZGLCAweEZGLCAweEZGLCAweEZGKSwKLX07Ci1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMzg0cjFfYltdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhFRiwgMHgyQSwgMHhFQywgMHhEMywgMHhFRCwgMHhDOCwgMHg4NSwgMHgyQSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDlELCAweEQxLCAweDJFLCAweDhBLCAweDhELCAweDM5LCAweDU2LCAweEM2KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NUEsIDB4ODcsIDB4MTMsIDB4NTAsIDB4OEYsIDB4MDgsIDB4MTQsIDB4MDMpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgxMiwgMHg0MSwgMHg4MSwgMHhGRSwgMHg2RSwgMHg5QywgMHgxRCwgMHgxOCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDE5LCAweDJELCAweEY4LCAweEUzLCAweDZCLCAweDA1LCAweDhFLCAweDk4KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RTQsIDB4RTcsIDB4M0UsIDB4RTIsIDB4QTcsIDB4MkYsIDB4MzEsIDB4QjMpLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AzODRyMV9neFtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhCNywgMHgwQSwgMHg3NiwgMHg3MiwgMHgzOCwgMHg1RSwgMHg1NCwgMHgzQSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDZDLCAweDI5LCAweDU1LCAweEJGLCAweDVELCAweEYyLCAweDAyLCAweDU1KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MzgsIDB4MkEsIDB4NTQsIDB4ODIsIDB4RTAsIDB4NDEsIDB4RjcsIDB4NTkpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg5OCwgMHg5QiwgMHhBNywgMHg4QiwgMHg2MiwgMHgzQiwgMHgxRCwgMHg2RSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDc0LCAweEFELCAweDIwLCAweEYzLCAweDFFLCAweEM3LCAweEIxLCAweDhFKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MzcsIDB4MDUsIDB4OEIsIDB4QkUsIDB4MjIsIDB4Q0EsIDB4ODcsIDB4QUEpLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AzODRyMV9neVtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg1RiwgMHgwRSwgMHhFQSwgMHg5MCwgMHg3QywgMHgxRCwgMHg0MywgMHg3QSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDlELCAweDgxLCAweDdFLCAweDFELCAweENFLCAweEIxLCAweDYwLCAweDBBKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QzAsIDB4QjgsIDB4RjAsIDB4QjUsIDB4MTMsIDB4MzEsIDB4REEsIDB4RTkpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg3QywgMHgxNCwgMHg5QSwgMHgyOCwgMHhCRCwgMHgxRCwgMHhGNCwgMHhGOCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDI5LCAweERDLCAweDkyLCAweDkyLCAweEJGLCAweDk4LCAweDlFLCAweDVEKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NkYsIDB4MkMsIDB4MjYsIDB4OTYsIDB4NEEsIDB4REUsIDB4MTcsIDB4MzYpLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AzODRyMV9uW10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDczLCAweDI5LCAweEM1LCAweENDLCAweDZBLCAweDE5LCAweEVDLCAweEVDKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4N0EsIDB4QTcsIDB4QjAsIDB4NDgsIDB4QjIsIDB4MEQsIDB4MUEsIDB4NTgpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhERiwgMHgyRCwgMHgzNywgMHhGNCwgMHg4MSwgMHg0RCwgMHg2MywgMHhDNyksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEZGLCAweEZGLCAweEZGLCAweEZGLCAweEZGLCAweEZGLCAweEZGLCAweEZGKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RkYsIDB4RkYsIDB4RkYsIDB4RkYsIDB4RkYsIDB4RkYsIDB4RkYsIDB4RkYpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiksCi19OwotI2lmIE1CRURUTFNfRUNQX0ZJWEVEX1BPSU5UX09QVElNID09IDEKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AzODRyMV9UXzBfWFtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhCNywgMHgwQSwgMHg3NiwgMHg3MiwgMHgzOCwgMHg1RSwgMHg1NCwgMHgzQSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDZDLCAweDI5LCAweDU1LCAweEJGLCAweDVELCAweEYyLCAweDAyLCAweDU1KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MzgsIDB4MkEsIDB4NTQsIDB4ODIsIDB4RTAsIDB4NDEsIDB4RjcsIDB4NTkpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg5OCwgMHg5QiwgMHhBNywgMHg4QiwgMHg2MiwgMHgzQiwgMHgxRCwgMHg2RSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDc0LCAweEFELCAweDIwLCAweEYzLCAweDFFLCAweEM3LCAweEIxLCAweDhFKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MzcsIDB4MDUsIDB4OEIsIDB4QkUsIDB4MjIsIDB4Q0EsIDB4ODcsIDB4QUEpLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AzODRyMV9UXzBfWVtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg1RiwgMHgwRSwgMHhFQSwgMHg5MCwgMHg3QywgMHgxRCwgMHg0MywgMHg3QSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDlELCAweDgxLCAweDdFLCAweDFELCAweENFLCAweEIxLCAweDYwLCAweDBBKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QzAsIDB4QjgsIDB4RjAsIDB4QjUsIDB4MTMsIDB4MzEsIDB4REEsIDB4RTkpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg3QywgMHgxNCwgMHg5QSwgMHgyOCwgMHhCRCwgMHgxRCwgMHhGNCwgMHhGOCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDI5LCAweERDLCAweDkyLCAweDkyLCAweEJGLCAweDk4LCAweDlFLCAweDVEKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NkYsIDB4MkMsIDB4MjYsIDB4OTYsIDB4NEEsIDB4REUsIDB4MTcsIDB4MzYpLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AzODRyMV9UXzFfWFtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg0NiwgMHg5MiwgMHgwMCwgMHgyQywgMHg3OCwgMHhEQiwgMHgxRiwgMHgzNyksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDE3LCAweEYzLCAweEVCLCAweEI3LCAweDA2LCAweEY3LCAweEI2LCAweEJDKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4M0QsIDB4QkMsIDB4MkMsIDB4Q0YsIDB4RDgsIDB4RUQsIDB4NTMsIDB4RTcpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg1MiwgMHg3NSwgMHg3QiwgMHhBMywgMHhBQiwgMHhDMywgMHgyQywgMHg4NSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEU1LCAweDlELCAweDc4LCAweDQxLCAweEY2LCAweDc2LCAweDg0LCAweEFDKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NTQsIDB4NTYsIDB4RTgsIDB4NTIsIDB4QjMsIDB4Q0IsIDB4QTgsIDB4QkQpLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AzODRyMV9UXzFfWVtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg2RCwgMHhGMiwgMHhBRSwgMHhBNCwgMHhCNiwgMHg4OSwgMHgxQiwgMHhEQSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDAxLCAweDBGLCAweENFLCAweDFDLCAweDdDLCAweEY2LCAweDUwLCAweDRDKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NEMsIDB4RUIsIDB4OTAsIDB4RTYsIDB4NEQsIDB4QzcsIDB4RDQsIDB4N0EpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhEMSwgMHg0OSwgMHgyRCwgMHg4QSwgMHgwMSwgMHg5OSwgMHg2MCwgMHg5NCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDVGLCAweDgwLCAweDlCLCAweDlCLCAweDZBLCAweEIwLCAweDA3LCAweEQ5KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QzIsIDB4QTIsIDB4RUUsIDB4NTksIDB4QkUsIDB4OTUsIDB4QkMsIDB4MjMpLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AzODRyMV9UXzJfWFtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhFNiwgMHg5RCwgMHg1NiwgMHhBRSwgMHg1OSwgMHhGQiwgMHgxRiwgMHg5OCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweENGLCAweEFDLCAweDkxLCAweDgwLCAweDg3LCAweEE4LCAweDZFLCAweDU4KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MzAsIDB4MDgsIDB4QTcsIDB4MDgsIDB4OTQsIDB4MzIsIDB4RkMsIDB4NjcpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg5RiwgMHgyOSwgMHg5RSwgMHg4NCwgMHhGNCwgMHhFNSwgMHg2RSwgMHg3RSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDU1LCAweDIxLCAweEI5LCAweDUwLCAweDI0LCAweEY4LCAweDlDLCAweEM3KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MzQsIDB4MDQsIDB4MDEsIDB4QzIsIDB4RkIsIDB4NzcsIDB4M0UsIDB4REUpLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AzODRyMV9UXzJfWVtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgwMCwgMHgzOCwgMHhFRSwgMHhFMywgMHhDNywgMHg5RCwgMHhFQywgMHhBNiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEI2LCAweDg4LCAweENGLCAweDQzLCAweEZBLCAweDkyLCAweDVFLCAweDhFKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RTksIDB4Q0EsIDB4NDMsIDB4RjgsIDB4M0IsIDB4NDksIDB4N0UsIDB4NzUpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgxQywgMHhFNywgMHhFQiwgMHgxNywgMHg0NSwgMHg4NiwgMHhDMiwgMHhFMSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDkyLCAweDY5LCAweDU3LCAweDMyLCAweEUwLCAweDlDLCAweEQxLCAweDAwKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RDksIDB4MTAsIDB4QjgsIDB4NEQsIDB4QjgsIDB4RjQsIDB4MEQsIDB4RTMpLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AzODRyMV9UXzNfWFtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg2MCwgMHhEQywgMHg5QSwgMHhCMiwgMHg3OSwgMHgzOSwgMHgyNywgMHgxNiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDRGLCAweDcxLCAweEU0LCAweDNCLCAweDRELCAweDYwLCAweDBDLCAweEEzKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NTUsIDB4QkQsIDB4MTksIDB4NDAsIDB4RkEsIDB4MTksIDB4MkEsIDB4NUEpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg0RCwgMHhGOCwgMHgxRSwgMHg0MywgMHhBMSwgMHg1MCwgMHg4RCwgMHhFRiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEEzLCAweDE4LCAweDdDLCAweDQxLCAweEZBLCAweDdDLCAweDFCLCAweDU4KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MDAsIDB4NTksIDB4MjQsIDB4QzQsIDB4RTksIDB4QjcsIDB4RDMsIDB4QUQpLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AzODRyMV9UXzNfWVtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhCQiwgMHgwMSwgMHgzRCwgMHg2MywgMHg1NCwgMHg0NSwgMHg2RiwgMHhCNyksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDdCLCAweEIyLCAweDE5LCAweEEzLCAweDg2LCAweDFELCAweDQyLCAweDM0KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4ODQsIDB4MDIsIDB4ODcsIDB4MTgsIDB4OTIsIDB4NTIsIDB4MUEsIDB4NzEpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg2QywgMHgxOCwgMHhCMSwgMHg1RCwgMHgxOCwgMHgxQiwgMHgzNywgMHhGRSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEY0LCAweDc0LCAweDYxLCAweEJBLCAweDE4LCAweEFGLCAweDQwLCAweDMwKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4REEsIDB4N0QsIDB4M0MsIDB4NTIsIDB4MEYsIDB4MDcsIDB4QjAsIDB4NkYpLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AzODRyMV9UXzRfWFtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgwOSwgMHgzOSwgMHgxMywgMHhBQSwgMHg2MCwgMHgxNSwgMHg5OSwgMHgzMCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDE3LCAweDAwLCAweENCLCAweEM2LCAweEIxLCAweERCLCAweDk3LCAweDkwKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RTYsIDB4RkEsIDB4NjAsIDB4QjgsIDB4MjQsIDB4RTQsIDB4N0QsIDB4RDMpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhERCwgMHg3NSwgMHhCMywgMHg3MCwgMHhCMiwgMHg4MywgMHhCMSwgMHg5QiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEEzLCAweEUzLCAweDZDLCAweENELCAweDMzLCAweDYyLCAweDdBLCAweDU2KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4ODgsIDB4MzAsIDB4REMsIDB4MEYsIDB4OUYsIDB4QkIsIDB4QjgsIDB4QUEpLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AzODRyMV9UXzRfWVtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhBNiwgMHhENSwgMHgwQSwgMHg2MCwgMHg4MSwgMHhCOSwgMHhDNSwgMHgxNiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDQ0LCAweEFBLCAweDJGLCAweEQ2LCAweEYyLCAweDczLCAweERGLCAweEVCKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RjMsIDB4N0IsIDB4NzQsIDB4QzksIDB4QjMsIDB4NUIsIDB4OTUsIDB4NkQpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhBQywgMHgwNCwgMHhFQiwgMHgxNSwgMHhDOCwgMHg1RiwgMHgwMCwgMHhGNiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEI1LCAweDUwLCAweDIwLCAweDI4LCAweEQxLCAweDAxLCAweEFGLCAweEYwKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MjgsIDB4NkQsIDB4NEYsIDB4MzEsIDB4ODEsIDB4MkYsIDB4OTQsIDB4NDgpLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AzODRyMV9UXzVfWFtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg0NiwgMHgyRiwgMHhEOCwgMHhCNiwgMHg2MywgMHg3QywgMHhFOSwgMHg1MCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEQ5LCAweDhDLCAweEI5LCAweDE0LCAweEQ5LCAweDM3LCAweDYzLCAweERFKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MTAsIDB4MDIsIDB4QjgsIDB4NDYsIDB4QUQsIDB4Q0UsIDB4N0IsIDB4MzgpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg4MiwgMHg0NywgMHgyRCwgMHg2NiwgMHhBNywgMHhFOSwgMHgzMywgMHgyMyksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDkyLCAweEY5LCAweDkzLCAweDk0LCAweEE4LCAweDQ4LCAweEIzLCAweDRGKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RTksIDB4NEEsIDB4QUMsIDB4NTEsIDB4MDgsIDB4NzIsIDB4MkYsIDB4MUEpLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AzODRyMV9UXzVfWVtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhEQSwgMHhBRCwgMHhBMCwgMHhGOSwgMHg4MSwgMHhFMSwgMHg3OCwgMHg5NyksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDNBLCAweDlBLCAweDYzLCAweEQ4LCAweEJBLCAweDc5LCAweDFBLCAweDE3KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MzQsIDB4MzEsIDB4N0IsIDB4N0EsIDB4NUEsIDB4NUQsIDB4N0QsIDB4MkQpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg4MywgMHg5NiwgMHgxMiwgMHg0QiwgMHgxOSwgMHgwOSwgMHhFMCwgMHhCNyksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDU1LCAweDhBLCAweDU3LCAweEVFLCAweDRFLCAweDZFLCAweDdFLCAweEVDKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MTEsIDB4OUQsIDB4NjksIDB4REMsIDB4QjMsIDB4REEsIDB4RDgsIDB4MDgpLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AzODRyMV9UXzZfWFtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg2OCwgMHg0OSwgMHgwMywgMHgwMywgMHgzMywgMHg2RiwgMHgyOCwgMHg0QSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDVELCAweERCLCAweEE3LCAweDA1LCAweDhDLCAweEYzLCAweDRELCAweEZCKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4OEUsIDB4OTIsIDB4QjEsIDB4QTgsIDB4RUMsIDB4MEQsIDB4NjQsIDB4M0IpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg0RSwgMHhGQywgMHhGRCwgMHhEMCwgMHg0QiwgMHg4OCwgMHgxQiwgMHg1RCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDgzLCAweDlDLCAweDUxLCAweDY5LCAweENFLCAweDcxLCAweDczLCAweEY1KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QjgsIDB4NUEsIDB4MTQsIDB4MjMsIDB4MUEsIDB4NDYsIDB4NjMsIDB4NUYpLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AzODRyMV9UXzZfWVtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhCQywgMHg0QywgMHg3MCwgMHg0NCwgMHgxOCwgMHhDRCwgMHhFRiwgMHhFRCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEMyLCAweDQ5LCAweERELCAweDY0LCAweDdFLCAweDdFLCAweDRELCAweDkyKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QTIsIDB4MzIsIDB4N0MsIDB4MDksIDB4RDAsIDB4M0YsIDB4RDYsIDB4MkMpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg2RCwgMHhFMCwgMHg0RiwgMHg2NSwgMHgwQywgMHg3QSwgMHg1NCwgMHgzRSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDE2LCAweEZBLCAweEZCLCAweDRBLCAweEI0LCAweDc5LCAweDVBLCAweDhDKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MDQsIDB4NUQsIDB4MUIsIDB4MkIsIDB4REEsIDB4QkMsIDB4OUEsIDB4NzQpLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AzODRyMV9UXzdfWFtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg1MSwgMHhBQywgMHg1NiwgMHhGNywgMHg1RiwgMHg1MSwgMHg2OCwgMHgwQiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEM2LCAweEUwLCAweDFELCAweEJDLCAweDEzLCAweDRFLCAweEFDLCAweDAzKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QjcsIDB4RjUsIDB4QzUsIDB4RTYsIDB4RDIsIDB4ODgsIDB4QkEsIDB4Q0IpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhGQSwgMHgwRSwgMHgyOCwgMHgyMywgMHg1OCwgMHg2NywgMHhGQSwgMHhFRSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDlFLCAweDgwLCAweDRCLCAweEQ4LCAweEM0LCAweERGLCAweDE1LCAweEU0KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RjEsIDB4MEUsIDB4NTgsIDB4RTYsIDB4MkMsIDB4NTksIDB4QzIsIDB4MDMpLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AzODRyMV9UXzdfWVtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg5QiwgMHgyNiwgMHgyNywgMHg5OSwgMHgxNiwgMHgyQiwgMHgyMiwgMHgwQiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEJBLCAweEYzLCAweDhGLCAweEMzLCAweDJBLCAweDlCLCAweEZDLCAweDM4KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RkMsIDB4MkUsIDB4ODMsIDB4M0QsIDB4RkUsIDB4OUUsIDB4M0MsIDB4MUIpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgwOCwgMHg1NywgMHhDRCwgMHgyRCwgMHhDMSwgMHg0OSwgMHgzOCwgMHhCNSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDk1LCAweDQyLCAweDhCLCAweDMzLCAweDg5LCAweDFGLCAweEVBLCAweDAxKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QUEsIDB4MUQsIDB4MTMsIDB4RDcsIDB4NTAsIDB4QkIsIDB4M0UsIDB4RUIpLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AzODRyMV9UXzhfWFtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhEMiwgMHg5QSwgMHg1MiwgMHhEMiwgMHg1NCwgMHg3QywgMHg5NywgMHhGMiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEUwLCAweDMzLCAweDZFLCAweEVELCAweEQ5LCAweDg3LCAweDUwLCAweEM1KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NUEsIDB4MzUsIDB4N0UsIDB4MTYsIDB4NDAsIDB4MTUsIDB4ODMsIDB4QjgpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgzMywgMHgyQiwgMHhBNCwgMHhBQiwgMHgwMywgMHg5MSwgMHhFQSwgMHhGRSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEMxLCAweDQ3LCAweDM5LCAweEVGLCAweDA1LCAweDU5LCAweEQwLCAweDkwKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QkYsIDB4MjQsIDB4MEQsIDB4NzYsIDB4MTEsIDB4NTMsIDB4MDgsIDB4QUYpLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AzODRyMV9UXzhfWVtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgxRiwgMHgyRiwgMHhERCwgMHhCRCwgMHg1MCwgMHg0OCwgMHhCMSwgMHhFNSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDgwLCAweDFDLCAweDg0LCAweDU1LCAweDc4LCAweDE0LCAweEVCLCAweEY2KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RDksIDB4NUUsIDB4M0UsIDB4QTYsIDB4QUYsIDB4RjYsIDB4QzcsIDB4MDQpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhFNywgMHgxMSwgMHhFMiwgMHg2NSwgMHhDQSwgMHg0MSwgMHg5NSwgMHgzQiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEFFLCAweDgzLCAweEQ4LCAweEU2LCAweDRELCAweDIyLCAweDA2LCAweDJEKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RkEsIDB4N0YsIDB4MjUsIDB4MkEsIDB4QUEsIDB4MjgsIDB4NDYsIDB4OTcpLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AzODRyMV9UXzlfWFtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg3OSwgMHhEQiwgMHgxNSwgMHg1NiwgMHg4NCwgMHhDQiwgMHhDMCwgMHg1NiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDU2LCAweERCLCAweDBFLCAweDA4LCAweEM5LCAweEY1LCAweEQ0LCAweDlFKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RTYsIDB4NjIsIDB4RDAsIDB4MUEsIDB4N0MsIDB4MTMsIDB4RDUsIDB4MDcpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg3RCwgMHhBRCwgMHg1MywgMHhFMCwgMHgzMiwgMHgyMSwgMHhBMCwgMHhDMCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEM1LCAweDM4LCAweDgxLCAweDIxLCAweDIzLCAweDBFLCAweEQyLCAweEJCKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MUMsIDB4NTEsIDB4MDUsIDB4RDAsIDB4MUUsIDB4ODIsIDB4QTksIDB4NzEpLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AzODRyMV9UXzlfWVtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhBNywgMHhDMywgMHgyNywgMHhCRiwgMHhDNiwgMHhBQSwgMHhCNywgMHhCOSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweENCLCAweDY1LCAweDQ1LCAweERGLCAweEI5LCAweDQ2LCAweDE3LCAweDQ2KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RjUsIDB4MzgsIDB4M0YsIDB4QjIsIDB4QjEsIDB4NUQsIDB4Q0EsIDB4MUMpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg4OCwgMHgyOSwgMHg2QywgMHg2MywgMHhFOSwgMHhENywgMHg0OCwgMHhCOCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEJDLCAweEYxLCAweEQ3LCAweDk5LCAweDhDLCAweEMyLCAweDA1LCAweDk5KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NkQsIDB4RTYsIDB4NUUsIDB4ODIsIDB4NkQsIDB4RTUsIDB4N0UsIDB4RDUpLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AzODRyMV9UXzEwX1hbXSA9IHsKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4N0IsIDB4NjEsIDB4RkEsIDB4N0QsIDB4MDEsIDB4REIsIDB4QjYsIDB4NjMpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgxMSwgMHhDNiwgMHg1OCwgMHgzOSwgMHhGNCwgMHhDNiwgMHg4MiwgMHgyMyksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDQ3LCAweDVBLCAweDdBLCAweDgwLCAweDA4LCAweENELCAweEFBLCAweEQ4KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4REEsIDB4OEMsIDB4QzYsIDB4M0YsIDB4M0MsIDB4QTUsIDB4NjgsIDB4RjQpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhCQiwgMHhGNSwgMHhENSwgMHgxNywgMHhBRSwgMHgzNiwgMHhEOCwgMHg4QSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEM3LCAweEFELCAweDkyLCAweEM1LCAweDU3LCAweDZDLCAweERBLCAweDkxKSwKLX07Ci1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMzg0cjFfVF8xMF9ZW10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEU4LCAweDY3LCAweDE3LCAweEMwLCAweDQwLCAweDc4LCAweDhDLCAweDg0KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4N0UsIDB4OUYsIDB4RjQsIDB4QUEsIDB4REEsIDB4NUMsIDB4N0UsIDB4QjIpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg5NiwgMHhEQiwgMHg0MiwgMHgzRSwgMHg3MiwgMHg2NCwgMHhBMCwgMHg2NyksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDI3LCAweEY5LCAweDQxLCAweDE3LCAweDQzLCAweEUzLCAweEU4LCAweEE4KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NjYsIDB4REQsIDB4Q0MsIDB4NDMsIDB4N0UsIDB4MTYsIDB4MDUsIDB4MDMpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgzNiwgMHg0QiwgMHhDRiwgMHg0OCwgMHg4RiwgMHg0MSwgMHg5MCwgMHhFNSksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDM4NHIxX1RfMTFfWFtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg5OCwgMHgwQywgMHg2QiwgMHg5RCwgMHgyMiwgMHgwNCwgMHhCQywgMHg1QyksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDg2LCAweDYzLCAweDc5LCAweDJGLCAweDZBLCAweDBFLCAweDhBLCAweERFKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MjksIDB4NjcsIDB4M0YsIDB4MDIsIDB4QjgsIDB4OTEsIDB4N0YsIDB4NzQpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhGQywgMHgxNCwgMHg2NCwgMHhBMCwgMHgzMywgMHhGNCwgMHg2QiwgMHg1MCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDFDLCAweDQ0LCAweDcxLCAweDg3LCAweEI4LCAweDg4LCAweDNGLCAweDQ1KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MUIsIDB4MkIsIDB4ODUsIDB4MDUsIDB4QzUsIDB4NDQsIDB4NTMsIDB4MTUpLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AzODRyMV9UXzExX1lbXSA9IHsKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4M0UsIDB4MkIsIDB4RkUsIDB4RDEsIDB4MUMsIDB4NzMsIDB4RTMsIDB4MkUpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg2NiwgMHgzMywgMHhBMSwgMHhEMywgMHg2OSwgMHgxQywgMHg5RCwgMHhEMiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEUwLCAweDVBLCAweEJBLCAweEI2LCAweEFFLCAweDFCLCAweDk0LCAweDA0KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QUYsIDB4NzQsIDB4OTAsIDB4NUMsIDB4NTcsIDB4QjAsIDB4M0EsIDB4NDUpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhERCwgMHgyRiwgMHg5MywgMHgyMCwgMHgyNCwgMHg1NCwgMHgxRCwgMHg4RCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEZBLCAweDc4LCAweDlELCAweDcxLCAweDY3LCAweDVELCAweDQ5LCAweDk4KSwKLX07Ci1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMzg0cjFfVF8xMl9YW10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDEyLCAweEM4LCAweDBFLCAweDExLCAweDhELCAweEUwLCAweDhGLCAweDY5KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NTksIDB4N0YsIDB4NzksIDB4NkMsIDB4NUYsIDB4QjcsIDB4QkMsIDB4QjEpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg4OCwgMHhFMSwgMHg4MywgMHgzQywgMHgxMiwgMHhCQiwgMHhFRSwgMHg5NiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDJBLCAweEMyLCAweEM0LCAweDFCLCAweDQxLCAweDcxLCAweEI5LCAweDE3KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QjAsIDB4RUUsIDB4QkIsIDB4MUQsIDB4ODksIDB4NTAsIDB4ODgsIDB4RjIpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhGQywgMHgxQywgMHg1NSwgMHg3NCwgMHhFQiwgMHhERSwgMHg5MiwgMHgzRiksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDM4NHIxX1RfMTJfWVtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg5QywgMHgzOCwgMHg5MiwgMHgwNiwgMHgxOSwgMHhEMCwgMHhCMywgMHhCMiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDJBLCAweDk5LCAweDI2LCAweEEzLCAweDVGLCAweEUyLCAweEMxLCAweDgxKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NzUsIDB4RkMsIDB4RkQsIDB4QzMsIDB4QjYsIDB4MjYsIDB4MjQsIDB4OEYpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhBRiwgMHhBRCwgMHhFNywgMHg0OSwgMHhCNywgMHg2NCwgMHg0QiwgMHg5NiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDZDLCAweDRFLCAweDk1LCAweEFELCAweDA3LCAweEZFLCAweEI2LCAweDMwKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NEYsIDB4MTUsIDB4RTcsIDB4MkQsIDB4MTksIDB4QTksIDB4MDgsIDB4MTApLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AzODRyMV9UXzEzX1hbXSA9IHsKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QkUsIDB4QkQsIDB4QUMsIDB4MEEsIDB4M0YsIDB4NkIsIDB4RkYsIDB4RkEpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhFMCwgMHhFNCwgMHg3NCwgMHgxNCwgMHhEOSwgMHg3MCwgMHgxRCwgMHg3MSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEYyLCAweEIwLCAweDcxLCAweEJCLCAweEQ4LCAweDE4LCAweDk2LCAweDJCKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4REEsIDB4QjgsIDB4MTksIDB4OTAsIDB4ODAsIDB4QjUsIDB4RUUsIDB4MDEpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg5MSwgMHgyMSwgMHgyMCwgMHhBNiwgMHgxNywgMHg0OCwgMHgwMywgMHg2RiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEUzLCAweDFELCAweEJCLCAweDZELCAweDk0LCAweDIwLCAweDM0LCAweEYxKSwKLX07Ci1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMzg0cjFfVF8xM19ZW10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDU5LCAweDgyLCAweDY3LCAweDRCLCAweDhFLCAweDRFLCAweEJFLCAweEUyKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QkUsIDB4REEsIDB4NzcsIDB4RjgsIDB4MjMsIDB4NTUsIDB4MkIsIDB4MkQpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg1QywgMHgwMiwgMHhERSwgMHgyNSwgMHgzNSwgMHgyRCwgMHg3NCwgMHg1MSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEQwLCAweDBDLCAweEI4LCAweDBCLCAweDM5LCAweEJBLCAweEFELCAweDA0KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QTYsIDB4MEUsIDB4MjgsIDB4NEQsIDB4RTEsIDB4M0QsIDB4RTQsIDB4MUIpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg1RCwgMHhFQywgMHgwQSwgMHhENCwgMHhCOCwgMHhDNCwgMHg4RCwgMHhCMCksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDM4NHIxX1RfMTRfWFtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgzRSwgMHg2OCwgMHhDRSwgMHhDMiwgMHg1NSwgMHg0RCwgMHgwQywgMHg2RCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDlCLCAweDIwLCAweDkzLCAweDMyLCAweDkwLCAweEQ2LCAweEFFLCAweDQ3KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4REQsIDB4NzgsIDB4QUIsIDB4NDMsIDB4OUUsIDB4RUIsIDB4NzMsIDB4QUUpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhFRCwgMHg5NywgMHhDMywgMHg4MywgMHhBNiwgMHgzQywgMHhGMSwgMHhCRiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDBGLCAweDI1LCAweDI1LCAweDY2LCAweDA4LCAweDI2LCAweEZBLCAweDRCKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NDEsIDB4RkIsIDB4NDQsIDB4NUQsIDB4ODIsIDB4RUMsIDB4M0IsIDB4QUMpLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AzODRyMV9UXzE0X1lbXSA9IHsKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NTgsIDB4OTAsIDB4RUEsIDB4QjUsIDB4MDQsIDB4OTksIDB4RDAsIDB4NjkpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg0QSwgMHhGMiwgMHgyMiwgMHhBMCwgMHhFQiwgMHhGRCwgMHg0NSwgMHg4NyksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDVELCAweEE0LCAweDgxLCAweDMyLCAweEZDLCAweEZBLCAweEVFLCAweDVCKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MjcsIDB4QkIsIDB4QTQsIDB4NkEsIDB4NzcsIDB4NDEsIDB4NUMsIDB4MUQpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhBMSwgMHgxRSwgMHhBQSwgMHg0RiwgMHhGMCwgMHgxMCwgMHhCMywgMHg1MCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDA5LCAweDc0LCAweDEzLCAweDE0LCAweDlFLCAweDkwLCAweEQ3LCAweEU2KSwKLX07Ci1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMzg0cjFfVF8xNV9YW10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweERCLCAweEJELCAweDcwLCAweDRGLCAweEE4LCAweEQxLCAweDA2LCAweDJDKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MTksIDB4NEUsIDB4MkUsIDB4NjgsIDB4RkMsIDB4MzUsIDB4RkEsIDB4NTApLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg2MCwgMHg1MywgMHg3NSwgMHhFRCwgMHhGMiwgMHg1RiwgMHhDMiwgMHhFQiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDM5LCAweDg3LCAweDZCLCAweDlGLCAweDA1LCAweEUyLCAweDIyLCAweDkzKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NEYsIDB4MUEsIDB4QTgsIDB4QjcsIDB4MDMsIDB4OUUsIDB4NkQsIDB4N0MpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhDQiwgMHhEMCwgMHg2OSwgMHg4OCwgMHhBOCwgMHgzOSwgMHg5RSwgMHgzQSksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDM4NHIxX1RfMTVfWVtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhGOCwgMHhFRiwgMHg2OCwgMHhGRSwgMHhFQywgMHgyNCwgMHgwOCwgMHgxNSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEExLCAweDA2LCAweDRCLCAweDkyLCAweDBELCAweEI3LCAweDM0LCAweDc0KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4M0UsIDB4RjQsIDB4REQsIDB4MUEsIDB4QTAsIDB4NEEsIDB4RTQsIDB4NDUpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhDMywgMHg2MywgMHg0RiwgMHg0RiwgMHhDRSwgMHhCQiwgMHhENiwgMHhEMyksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweENELCAweEVFLCAweDhELCAweERGLCAweDNGLCAweDczLCAweEI3LCAweEFDKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4REYsIDB4MDYsIDB4QjYsIDB4ODAsIDB4NEQsIDB4ODEsIDB4RDksIDB4NTMpLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AzODRyMV9UXzE2X1hbXSA9IHsKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MTUsIDB4RjUsIDB4MTMsIDB4REYsIDB4MTMsIDB4MTksIDB4OTcsIDB4OTQpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgwOCwgMHhGOSwgMHhCMywgMHgzMywgMHg2NiwgMHg4MiwgMHgyMSwgMHhGRSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEY1LCAweEZDLCAweDM5LCAweDE2LCAweDIzLCAweDQzLCAweDc2LCAweDBFKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MDksIDB4NDgsIDB4MjUsIDB4QTEsIDB4NjQsIDB4OTUsIDB4MUMsIDB4MkYpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg0MywgMHhBQywgMHgxNSwgMHg1NywgMHhEOSwgMHhERSwgMHhBMCwgMHgyOCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDE2LCAweDVGLCAweEI4LCAweDNELCAweDQ4LCAweDkxLCAweDI0LCAweENDKSwKLX07Ci1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMzg0cjFfVF8xNl9ZW10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDJELCAweEYyLCAweEM4LCAweDU0LCAweEQxLCAweDMyLCAweEJELCAweEM0KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4OEEsIDB4M0IsIDB4RjAsIDB4QUEsIDB4OUQsIDB4RDgsIDB4RjQsIDB4MjApLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg0RiwgMHhDMywgMHhCQiwgMHg2QywgMHg2NiwgMHhBQywgMHgyNSwgMHgyRCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDZGLCAweDI1LCAweDEwLCAweEIyLCAweEUxLCAweDQxLCAweERFLCAweDFEKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4M0MsIDB4RTgsIDB4MzAsIDB4QjgsIDB4MzcsIDB4QkMsIDB4MkEsIDB4OTgpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhCQSwgMHg1NywgMHgwMSwgMHg0QSwgMHgxRSwgMHg3OCwgMHg5RiwgMHg4NSksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDM4NHIxX1RfMTdfWFtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhCRCwgMHgxOSwgMHhDRCwgMHgxMiwgMHgwQiwgMHg1MSwgMHg0RiwgMHg1NiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDMwLCAweDRCLCAweDNELCAweDI0LCAweEE0LCAweDE2LCAweDU5LCAweDA1KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QUMsIDB4RUIsIDB4RDMsIDB4NTksIDB4MkUsIDB4NzUsIDB4N0MsIDB4MDEpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg4QywgMHhCOSwgMHhCNCwgMHhBNSwgMHhEOSwgMHgyRSwgMHgyOSwgMHg0QyksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDg2LCAweDE2LCAweDA1LCAweDc1LCAweDAyLCAweEIzLCAweDA2LCAweEVFKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QUIsIDB4N0MsIDB4OUYsIDB4NzksIDB4OTEsIDB4RjEsIDB4NEYsIDB4MjMpLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AzODRyMV9UXzE3X1lbXSA9IHsKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NjUsIDB4OTgsIDB4N0MsIDB4ODQsIDB4RTEsIDB4RkYsIDB4MzAsIDB4NzcpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg3MSwgMHhFMiwgMHhDMiwgMHg1RiwgMHg1NSwgMHg0MCwgMHhCRCwgMHhDRCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDY5LCAweDY1LCAweDg3LCAweDNGLCAweEM0LCAweEMyLCAweDI0LCAweDU3KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MEUsIDB4MzAsIDB4MEEsIDB4NjAsIDB4MTUsIDB4RDEsIDB4MjQsIDB4NDgpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg1NywgMHg5OSwgMHhEOSwgMHhCNiwgMHhBRSwgMHhCMSwgMHhBRiwgMHgxRCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDlCLCAweDgwLCAweEVFLCAweEEyLCAweDBGLCAweDc0LCAweEI5LCAweEYzKSwKLX07Ci1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMzg0cjFfVF8xOF9YW10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDAzLCAweEU2LCAweDBGLCAweDM3LCAweEMxLCAweDEwLCAweDk5LCAweDFFKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NjEsIDB4QUQsIDB4OUQsIDB4NUQsIDB4ODAsIDB4MDEsIDB4QTYsIDB4RkUpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhCMCwgMHgwRiwgMHgxMCwgMHgyQSwgMHg5RCwgMHgyMCwgMHgzOCwgMHhFQiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDZDLCAweDYwLCAweENCLCAweENFLCAweDVBLCAweEEwLCAweEE3LCAweDMyKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QkEsIDB4Q0YsIDB4MTQsIDB4REYsIDB4QkYsIDB4RTUsIDB4NzQsIDB4MkQpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhCNSwgMHgxMiwgMHgxQSwgMHhERCwgMHg1OSwgMHgwMiwgMHg1RCwgMHhDNiksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDM4NHIxX1RfMThfWVtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhDOCwgMHhDOSwgMHhGOCwgMHhGNSwgMHhCNiwgMHgxMywgMHg0RCwgMHg3QiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEVELCAweDQ1LCAweEIxLCAweDkzLCAweEIzLCAweEEyLCAweDc5LCAweERDKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NzQsIDB4RjYsIDB4Q0YsIDB4RjcsIDB4RTYsIDB4MjksIDB4OUMsIDB4Q0MpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg4NywgMHg1MCwgMHg2NSwgMHg4MCwgMHhCQywgMHg1OSwgMHgwQSwgMHg1OSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDBFLCAweEYwLCAweDI0LCAweDM1LCAweEEyLCAweDQ2LCAweEYwLCAweDBDKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QkQsIDB4MjYsIDB4QzAsIDB4OUQsIDB4NjEsIDB4NTYsIDB4NjIsIDB4NjcpLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AzODRyMV9UXzE5X1hbXSA9IHsKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MTAsIDB4QkIsIDB4QzIsIDB4MjQsIDB4NDMsIDB4MkUsIDB4MzcsIDB4NTQpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg4QSwgMHhGNywgMHhDRSwgMHgzNSwgMHhGQywgMHg3NywgMHhGMywgMHgzRiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDc1LCAweDM0LCAweDk2LCAweEQ1LCAweDRBLCAweDc2LCAweDlELCAweDZCKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QjgsIDB4M0IsIDB4MEYsIDB4RUEsIDB4QTgsIDB4MTIsIDB4MEIsIDB4MjIpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg2NiwgMHgzRiwgMHg1RCwgMHgyRCwgMHgxQywgMHhENCwgMHg5RSwgMHhGQiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDdELCAweDJFLCAweERELCAweEM3LCAweDZFLCAweEFCLCAweEFGLCAweERDKSwKLX07Ci1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMzg0cjFfVF8xOV9ZW10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDhDLCAweEIyLCAweDdCLCAweDBDLCAweDlBLCAweDgzLCAweDhFLCAweDU5KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MzAsIDB4NTEsIDB4OTAsIDB4OTIsIDB4NzksIDB4MzIsIDB4MTksIDB4QzMpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhFRSwgMHg4OSwgMHhGOSwgMHhEMCwgMHhDRiwgMHgyQywgMHhBNSwgMHg4RiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDdCLCAweDUwLCAweDIxLCAweERFLCAweDUwLCAweDQxLCAweDlELCAweDgxKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RTAsIDB4N0QsIDB4MkIsIDB4OUUsIDB4OUQsIDB4OTUsIDB4QTgsIDB4RTMpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhEOCwgMHhBNSwgMHgyMCwgMHg4NywgMHg4OCwgMHg5NywgMHg1RiwgMHhBQSksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDM4NHIxX1RfMjBfWFtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg2NCwgMHg1OSwgMHhCNCwgMHg2NiwgMHg3RSwgMHhFOCwgMHg1QSwgMHg2MCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEE1LCAweDVDLCAweDdFLCAweEIyLCAweEFELCAweEQ5LCAweEM5LCAweERBKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4ODIsIDB4OTcsIDB4NDksIDB4QTMsIDB4MTMsIDB4ODMsIDB4MDcsIDB4MkUpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg1QSwgMHgyNiwgMHhDNywgMHgxMywgMHgzNSwgMHgwRCwgMHhCMCwgMHg2QiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDFFLCAweDYwLCAweEFCLCAweEZBLCAweDRCLCAweDkzLCAweDE4LCAweDJDKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NTQsIDB4MkQsIDB4MUMsIDB4MzEsIDB4NEMsIDB4RTQsIDB4NjEsIDB4QUUpLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AzODRyMV9UXzIwX1lbXSA9IHsKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4REUsIDB4NEQsIDB4MUUsIDB4NTEsIDB4NTksIDB4NkUsIDB4OTEsIDB4QzUpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgzOCwgMHg1NCwgMHg0RCwgMHg1MSwgMHhFRCwgMHgzNiwgMHhDQywgMHg2MCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDE4LCAweEE4LCAweDU2LCAweEM3LCAweDc4LCAweDI3LCAweDMzLCAweEM1KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NDIsIDB4QjcsIDB4OTUsIDB4QzksIDB4OEIsIDB4QzgsIDB4NkEsIDB4QkMpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg1RSwgMHhFOSwgMHgxMywgMHg5NiwgMHhCMywgMHhFMSwgMHhGOSwgMHhFRSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEY1LCAweDQ2LCAweEIwLCAweDVFLCAweEMzLCAweDk0LCAweDAzLCAweDA1KSwKLX07Ci1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMzg0cjFfVF8yMV9YW10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDZELCAweDVCLCAweDI5LCAweDMwLCAweDQxLCAweDFBLCAweDlFLCAweEI2KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NzYsIDB4Q0EsIDB4ODMsIDB4MzEsIDB4NUIsIDB4QTcsIDB4Q0IsIDB4NDIpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgyMSwgMHg0MSwgMHg1MCwgMHg0NCwgMHg0RCwgMHg2NCwgMHgzMSwgMHg4OSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweENGLCAweDg0LCAweEMyLCAweDVELCAweDk3LCAweEE1LCAweDNDLCAweDE4KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RjAsIDB4MEYsIDB4QTUsIDB4RkQsIDB4OEUsIDB4NUEsIDB4NDcsIDB4MkMpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg3QywgMHg1OCwgMHgwMiwgMHgyRCwgMHg0MCwgMHhCMSwgMHgwQiwgMHhCQSksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDM4NHIxX1RfMjFfWVtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhEQSwgMHgzMywgMHg4QywgMHg2NywgMHhDRSwgMHgyMywgMHg0MywgMHg5OSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDg0LCAweDUzLCAweDQ3LCAweDcyLCAweDQ0LCAweDFGLCAweDVCLCAweDJBKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QUUsIDB4QzEsIDB4RDksIDB4QTQsIDB4NTAsIDB4ODgsIDB4NjMsIDB4MTgpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg3QywgMHhGMiwgMHg3NSwgMHg2OSwgMHg3MywgMHgwMCwgMHhDNCwgMHgzMSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDRCLCAweDkwLCAweDFELCAweERGLCAweDFBLCAweDAwLCAweEQ4LCAweDY5KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MDUsIDB4QjEsIDB4ODksIDB4NDgsIDB4QTgsIDB4NzAsIDB4NjIsIDB4RUYpLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AzODRyMV9UXzIyX1hbXSA9IHsKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4N0UsIDB4OEEsIDB4NTUsIDB4NTAsIDB4N0IsIDB4RUYsIDB4OEEsIDB4M0MpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhGRSwgMHgxQiwgMHgyMywgMHg0OCwgMHgyMywgMHg2MywgMHg5MSwgMHhCNiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDBELCAweDA0LCAweDU0LCAweDNDLCAweDI0LCAweDlCLCAweEM3LCAweDlBKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MjUsIDB4MzgsIDB4QzMsIDB4ODQsIDB4RkIsIDB4RkYsIDB4OUYsIDB4NDkpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg2NiwgMHgyQSwgMHhFMCwgMHg2RCwgMHg2OCwgMHg4QSwgMHg1QywgMHhDQiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEM0LCAweDkzLCAweDUzLCAweDg1LCAweEExLCAweDBELCAweEFGLCAweDYzKSwKLX07Ci1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMzg0cjFfVF8yMl9ZW10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDFCLCAweDg4LCAweDk1LCAweDRDLCAweDBCLCAweEQwLCAweDA2LCAweDUxKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4OTIsIDB4QUYsIDB4OEQsIDB4NDksIDB4QTIsIDB4QzgsIDB4QjQsIDB4RTApLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg3NSwgMHg3NiwgMHg1MywgMHgwOSwgMHg4OCwgMHg0MywgMHg4NywgMHhDQSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDkwLCAweEE0LCAweDc3LCAweDNGLCAweDVFLCAweDIxLCAweEI0LCAweDBBKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MzUsIDB4OUUsIDB4ODYsIDB4NjQsIDB4Q0MsIDB4OTEsIDB4QzEsIDB4NzcpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhDMSwgMHgxNywgMHg1NiwgMHhDQiwgMHhDMywgMHg3RCwgMHg1QiwgMHhCMSksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDM4NHIxX1RfMjNfWFtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg2NCwgMHg3NCwgMHg5RiwgMHhCNSwgMHg5MSwgMHgyMSwgMHhCMSwgMHgxQyksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDFFLCAweEVELCAweEUxLCAweDExLCAweEVGLCAweDQ1LCAweEFGLCAweEMxKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RTAsIDB4MzEsIDB4QkUsIDB4QjIsIDB4QkMsIDB4NzIsIDB4NjUsIDB4MUYpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhCMSwgMHg0QiwgMHg4QywgMHg3NywgMHhDRSwgMHgxRSwgMHg0MiwgMHhCNSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEZGLCAweEM5LCAweEFBLCAweEI5LCAweEQ5LCAweDg2LCAweDk5LCAweDU1KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NjUsIDB4MjMsIDB4ODAsIDB4QzYsIDB4NEUsIDB4MzUsIDB4MEIsIDB4NkQpLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AzODRyMV9UXzIzX1lbXSA9IHsKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NDcsIDB4RDgsIDB4QTIsIDB4MEEsIDB4MzksIDB4MzIsIDB4MUQsIDB4MjMpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg2MSwgMHhDOCwgMHg4NiwgMHhGMSwgMHgxMiwgMHg5QSwgMHg0QSwgMHgwNSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDhELCAweEYxLCAweDdDLCAweEFBLCAweDcwLCAweDhFLCAweEJDLCAweDAxKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NjIsIDB4MDEsIDB4NDcsIDB4OEYsIDB4REQsIDB4OEIsIDB4QTUsIDB4QzgpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhEQiwgMHgwOCwgMHgyMSwgMHhGNCwgMHhBQiwgMHhDNywgMHhGNSwgMHg5NiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDBBLCAweDc2LCAweEE1LCAweDk1LCAweEM0LCAweDBGLCAweDg4LCAweDFEKSwKLX07Ci1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMzg0cjFfVF8yNF9YW10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDNGLCAweDQyLCAweDJBLCAweDUyLCAweENELCAweDc1LCAweDUxLCAweDQ5KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4OTAsIDB4MzYsIDB4RTUsIDB4MDQsIDB4MkIsIDB4NDQsIDB4QzYsIDB4RUYpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg1QywgMHhFRSwgMHgxNiwgMHgxMywgMHgwNywgMHg4MywgMHhCNSwgMHgzMCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDc2LCAweDU5LCAweEM2LCAweEEyLCAweDE5LCAweDA1LCAweEQzLCAweEM2KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QjYsIDB4OEIsIDB4QTgsIDB4MTYsIDB4MDksIDB4QjcsIDB4RUEsIDB4RDYpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg3MCwgMHhFRSwgMHgxNCwgMHhBRiwgMHhCNSwgMHhGRCwgMHhEMCwgMHhFRiksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDM4NHIxX1RfMjRfWVtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgxOCwgMHg3QywgMHhDQSwgMHg3MSwgMHgzRSwgMHg2RSwgMHg2NiwgMHg3NSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEJFLCAweDMxLCAweDBFLCAweDNGLCAweEU1LCAweDkxLCAweEM0LCAweDdGKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4OEUsIDB4M0QsIDB4QzIsIDB4M0UsIDB4OTUsIDB4MzcsIDB4NTgsIDB4MkIpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgwMSwgMHgxRiwgMHgwMiwgMHgwMywgMHhGMywgMHhFRiwgMHhFRSwgMHg2NiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDI4LCAweDVCLCAweDFBLCAweEZDLCAweDM4LCAweENELCAweEU4LCAweDI0KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MTIsIDB4NTcsIDB4NDIsIDB4ODUsIDB4QzYsIDB4MjEsIDB4NjgsIDB4NzEpLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AzODRyMV9UXzI1X1hbXSA9IHsKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4OEQsIDB4QTIsIDB4NEEsIDB4NjYsIDB4QjEsIDB4MEEsIDB4RTYsIDB4QzApLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg4NiwgMHgwQywgMHg5NCwgMHg5RCwgMHg1RSwgMHg5OSwgMHhCMiwgMHhDRSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEFELCAweDAzLCAweDQwLCAweENBLCAweEIyLCAweEIzLCAweDMwLCAweDU1KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NzQsIDB4NzgsIDB4NDgsIDB4MjcsIDB4MzQsIDB4MUUsIDB4RTIsIDB4NDIpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhBRSwgMHg3MiwgMHg1QiwgMHhBQywgMHhDMSwgMHg2RCwgMHhFMywgMHg4MiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDU3LCAweEFCLCAweDQ2LCAweENCLCAweEVBLCAweDVFLCAweDRCLCAweDBCKSwKLX07Ci1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMzg0cjFfVF8yNV9ZW10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEZDLCAweDA4LCAweEFELCAweDRFLCAweDUxLCAweDlGLCAweDJBLCAweDUyKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NjgsIDB4NUMsIDB4N0QsIDB4NEMsIDB4RDYsIDB4Q0YsIDB4REQsIDB4MDIpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhEOCwgMHg3NiwgMHgyNiwgMHhFMCwgMHg4QiwgMHgxMCwgMHhEOSwgMHg3QyksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDMwLCAweEE3LCAweDIzLCAweDRFLCAweDVGLCAweEQyLCAweDQyLCAweDE3KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RDEsIDB4RTUsIDB4QTQsIDB4RUMsIDB4NzcsIDB4MjEsIDB4MzQsIDB4MjgpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg1QywgMHgxNCwgMHg2NSwgMHhFQSwgMHg0QSwgMHg4NSwgMHhDMywgMHgyRiksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDM4NHIxX1RfMjZfWFtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgxOSwgMHhEOCwgMHg0MCwgMHgyNywgMHg3MywgMHgxNSwgMHg3RSwgMHg2NSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEY2LCAweEJCLCAweDUzLCAweDdFLCAweDBGLCAweDQwLCAweEM4LCAweEQ0KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RUEsIDB4MzcsIDB4MTksIDB4NzMsIDB4RUYsIDB4NUEsIDB4NUUsIDB4MDQpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg5QywgMHg3MywgMHgyQiwgMHg0OSwgMHg3RSwgMHhBQywgMHg5NywgMHg1QyksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDE1LCAweEIyLCAweEMzLCAweDFFLCAweDBFLCAweEU3LCAweEQyLCAweDIxKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4OEEsIDB4MDgsIDB4RDYsIDB4REQsIDB4QUMsIDB4MjEsIDB4RDYsIDB4M0UpLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AzODRyMV9UXzI2X1lbXSA9IHsKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QTksIDB4MjYsIDB4QkUsIDB4NkQsIDB4NkQsIDB4RjIsIDB4MzgsIDB4M0YpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgwOCwgMHg2QywgMHgzMSwgMHhBNywgMHg0OSwgMHg1MCwgMHgzQSwgMHg4OSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEMzLCAweDk5LCAweEM2LCAweEY1LCAweEQyLCAweEMyLCAweDMwLCAweDVBKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MkEsIDB4RTQsIDB4RjYsIDB4OEIsIDB4OEIsIDB4OTcsIDB4RTksIDB4QjIpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhERCwgMHgyMSwgMHhCNywgMHgwRCwgMHhGQywgMHgxNSwgMHg1NCwgMHgwQiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDY1LCAweDgzLCAweDFDLCAweEE0LCAweENELCAweDZCLCAweDlELCAweEYyKSwKLX07Ci1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMzg0cjFfVF8yN19YW10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEQ2LCAweEU4LCAweDRDLCAweDQ4LCAweEU0LCAweEFBLCAweDY5LCAweDkzKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MjcsIDB4N0EsIDB4MjcsIDB4RkMsIDB4MzcsIDB4OTYsIDB4MUEsIDB4N0IpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg2RiwgMHhFNywgMHgzMCwgMHhBNSwgMHhDRiwgMHgxMywgMHg0NiwgMHg1QyksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDhDLCAweEQ4LCAweEFGLCAweDc0LCAweDIzLCAweDRELCAweDU2LCAweDg0KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MzIsIDB4M0QsIDB4NDQsIDB4MTQsIDB4MUIsIDB4OTcsIDB4ODMsIDB4RjApLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhGQSwgMHg0NywgMHhENywgMHg1RiwgMHhGRCwgMHg5OCwgMHgzOCwgMHhGNyksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDM4NHIxX1RfMjdfWVtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhBMywgMHg3MywgMHg2NCwgMHgzNiwgMHhGRCwgMHg3QiwgMHhDMSwgMHgxNSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEVBLCAweDVELCAweDMyLCAweEQyLCAweDQ3LCAweDk0LCAweDg5LCAweDJEKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NTEsIDB4RTksIDB4MzAsIDB4QUMsIDB4MDYsIDB4QzgsIDB4NjUsIDB4MDQpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhGQSwgMHg2QywgMHhCOSwgMHgxQiwgMHhGNywgMHg2MSwgMHg0OSwgMHg1MyksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEQ3LCAweEZGLCAweDMyLCAweDQzLCAweDgwLCAweERBLCAweEE2LCAweEIxKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QUMsIDB4RjgsIDB4MDQsIDB4MDEsIDB4OTUsIDB4MzUsIDB4Q0UsIDB4MjEpLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AzODRyMV9UXzI4X1hbXSA9IHsKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NkQsIDB4MDYsIDB4NDYsIDB4MEQsIDB4NTEsIDB4RTIsIDB4RDgsIDB4QUMpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgxNCwgMHg1NywgMHgxRCwgMHg2RiwgMHg3OSwgMHhBMCwgMHhDRCwgMHhBNiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweERGLCAweEZCLCAweDM2LCAweENBLCAweEFELCAweEY1LCAweDlFLCAweDQxKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NkYsIDB4N0EsIDB4MUQsIDB4OUUsIDB4MUQsIDB4OTUsIDB4NDgsIDB4REMpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg4MSwgMHgyNiwgMHhBNSwgMHhCNywgMHgxNSwgMHgyQywgMHhDMiwgMHhDNiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDg2LCAweDQyLCAweDcyLCAweEFBLCAweDExLCAweERDLCAweEM5LCAweEI2KSwKLX07Ci1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMzg0cjFfVF8yOF9ZW10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDNGLCAweDZDLCAweDY0LCAweEE3LCAweDYyLCAweDNDLCAweEFCLCAweEQ0KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NDgsIDB4NkEsIDB4NDQsIDB4RDgsIDB4NjAsIDB4QzAsIDB4QTgsIDB4ODApLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg4MiwgMHg3NiwgMHg1OCwgMHgxMiwgMHg1NywgMHgzQywgMHg4OSwgMHg0NiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDgyLCAweDRGLCAweDgzLCAweENFLCAweENCLCAweEI4LCAweEQwLCAweDJDKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4OUEsIDB4ODQsIDB4MDQsIDB4QjAsIDB4QUQsIDB4RUIsIDB4RkEsIDB4REYpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgzNCwgMHhBNCwgMHhDMywgMHg0MSwgMHg0NCwgMHg0RSwgMHg2NSwgMHgzRSksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDM4NHIxX1RfMjlfWFtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhCNiwgMHgxNiwgMHhBOSwgMHgxQywgMHhFNywgMHg2NSwgMHgyMCwgMHhDMSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDU4LCAweDUzLCAweDMyLCAweEY4LCAweEMwLCAweEE2LCAweEJELCAweDJDKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QjcsIDB4RjAsIDB4RTYsIDB4NTcsIDB4MzEsIDB4Q0MsIDB4MjYsIDB4NkYpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgyNywgMHhFMywgMHg1NCwgMHgxQywgMHgzNCwgMHhEMywgMHgxNywgMHhCQyksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEY1LCAweEFFLCAweEVELCAweEZCLCAweENELCAweEU3LCAweDFFLCAweDlGKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NUEsIDB4MTYsIDB4MUMsIDB4MzQsIDB4NDAsIDB4MDAsIDB4MUYsIDB4QjYpLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AzODRyMV9UXzI5X1lbXSA9IHsKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NkEsIDB4MzIsIDB4MDAsIDB4QzIsIDB4RDQsIDB4M0IsIDB4MUEsIDB4MDkpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgzNCwgMHhFMCwgMHg5OSwgMHg4RiwgMHgwQywgMHg0QSwgMHgxNiwgMHg0NCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDgzLCAweDczLCAweDE4LCAweDFCLCAweEQ0LCAweDk0LCAweDI5LCAweDYyKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MjksIDB4QTQsIDB4MkQsIDB4QjEsIDB4OUQsIDB4NzQsIDB4MzIsIDB4NjcpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhCRiwgMHhGNCwgMHhCMSwgMHgwQywgMHgzNywgMHg2MiwgMHg4QiwgMHg2NiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEM5LCAweEZGLCAweERBLCAweEUyLCAweDM1LCAweEEzLCAweEI2LCAweDQyKSwKLX07Ci1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMzg0cjFfVF8zMF9YW10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDkxLCAweDQ5LCAweDk5LCAweDY1LCAweEM1LCAweEVELCAweDE2LCAweEVGKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NzksIDB4NDIsIDB4OUEsIDB4RjMsIDB4QTcsIDB4NEUsIDB4NkYsIDB4MkIpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg3QiwgMHgwQSwgMHg3RSwgMHhDMCwgMHhENywgMHg0RSwgMHgwNywgMHg1NSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEQ2LCAweDdBLCAweDMxLCAweDY5LCAweEE2LCAweEI5LCAweDE1LCAweDM0KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QTgsIDB4RTAsIDB4NzIsIDB4QTQsIDB4M0YsIDB4QjksIDB4RjgsIDB4MEMpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgyQiwgMHg3NSwgMHgzMiwgMHg4NSwgMHhBMiwgMHhERSwgMHgzNywgMHgxMiksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDM4NHIxX1RfMzBfWVtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhCQywgMHhDMCwgMHgwRCwgMHhDRiwgMHgyNSwgMHg0MSwgMHhBNCwgMHhGNCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDlCLCAweEZDLCAweEIyLCAweDQ4LCAweEMzLCAweDg1LCAweDgzLCAweDRCKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MkIsIDB4QkUsIDB4MEIsIDB4NTgsIDB4MkQsIDB4N0EsIDB4OUEsIDB4NjIpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhDNSwgMHhGMywgMHg4MSwgMHgxOCwgMHgxQiwgMHg3NCwgMHg0RiwgMHgyQyksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEUyLCAweDQzLCAweEEzLCAweDBBLCAweDE2LCAweDhCLCAweEEzLCAweDFFKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NEEsIDB4MTgsIDB4ODEsIDB4N0IsIDB4OEQsIDB4QTIsIDB4MzUsIDB4NzcpLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AzODRyMV9UXzMxX1hbXSA9IHsKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4ODYsIDB4QzQsIDB4M0YsIDB4MkMsIDB4RTcsIDB4NUYsIDB4OTksIDB4MDMpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhGMCwgMHgyQiwgMHhCNywgMHhCNiwgMHhBRCwgMHg1QSwgMHg1NiwgMHhGRiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDA0LCAweDAwLCAweEE0LCAweDQ4LCAweEM4LCAweEU4LCAweEJBLCAweEJGKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RTgsIDB4QTEsIDB4QjUsIDB4MTMsIDB4NUEsIDB4Q0QsIDB4OTksIDB4OUMpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhCMCwgMHg5NSwgMHhBRCwgMHhGQywgMHhFMiwgMHg3RSwgMHhFNywgMHhGRSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDk2LCAweDZCLCAweEQxLCAweDM0LCAweDk5LCAweDUzLCAweDYzLCAweDBCKSwKLX07Ci1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMzg0cjFfVF8zMV9ZW10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDE5LCAweDhBLCAweDc3LCAweDVELCAweDJCLCAweEFCLCAweDAxLCAweDI4KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NEUsIDB4ODUsIDB4RDAsIDB4RDUsIDB4NDksIDB4ODMsIDB4NEQsIDB4NjApLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg4MSwgMHhDNiwgMHg5MSwgMHgzMCwgMHgzQiwgMHgwMCwgMHhBRiwgMHg3QSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDNBLCAweEFFLCAweDYxLCAweDA3LCAweEUxLCAweEI2LCAweEUyLCAweEM5KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4OTUsIDB4NDMsIDB4NDEsIDB4RkUsIDB4OUIsIDB4QjYsIDB4RjAsIDB4QTUpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhCNCwgMHg5NywgMHhBRSwgMHhBRCwgMHg4OSwgMHg4OCwgMHg5RSwgMHg0MSksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfZWNwX3BvaW50IHNlY3AzODRyMV9UWzMyXSA9IHsKLSAgICBFQ1BfUE9JTlRfSU5JVF9YWV9aMShzZWNwMzg0cjFfVF8wX1gsIHNlY3AzODRyMV9UXzBfWSksCi0gICAgRUNQX1BPSU5UX0lOSVRfWFlfWjAoc2VjcDM4NHIxX1RfMV9YLCBzZWNwMzg0cjFfVF8xX1kpLAotICAgIEVDUF9QT0lOVF9JTklUX1hZX1owKHNlY3AzODRyMV9UXzJfWCwgc2VjcDM4NHIxX1RfMl9ZKSwKLSAgICBFQ1BfUE9JTlRfSU5JVF9YWV9aMChzZWNwMzg0cjFfVF8zX1gsIHNlY3AzODRyMV9UXzNfWSksCi0gICAgRUNQX1BPSU5UX0lOSVRfWFlfWjAoc2VjcDM4NHIxX1RfNF9YLCBzZWNwMzg0cjFfVF80X1kpLAotICAgIEVDUF9QT0lOVF9JTklUX1hZX1owKHNlY3AzODRyMV9UXzVfWCwgc2VjcDM4NHIxX1RfNV9ZKSwKLSAgICBFQ1BfUE9JTlRfSU5JVF9YWV9aMChzZWNwMzg0cjFfVF82X1gsIHNlY3AzODRyMV9UXzZfWSksCi0gICAgRUNQX1BPSU5UX0lOSVRfWFlfWjAoc2VjcDM4NHIxX1RfN19YLCBzZWNwMzg0cjFfVF83X1kpLAotICAgIEVDUF9QT0lOVF9JTklUX1hZX1owKHNlY3AzODRyMV9UXzhfWCwgc2VjcDM4NHIxX1RfOF9ZKSwKLSAgICBFQ1BfUE9JTlRfSU5JVF9YWV9aMChzZWNwMzg0cjFfVF85X1gsIHNlY3AzODRyMV9UXzlfWSksCi0gICAgRUNQX1BPSU5UX0lOSVRfWFlfWjAoc2VjcDM4NHIxX1RfMTBfWCwgc2VjcDM4NHIxX1RfMTBfWSksCi0gICAgRUNQX1BPSU5UX0lOSVRfWFlfWjAoc2VjcDM4NHIxX1RfMTFfWCwgc2VjcDM4NHIxX1RfMTFfWSksCi0gICAgRUNQX1BPSU5UX0lOSVRfWFlfWjAoc2VjcDM4NHIxX1RfMTJfWCwgc2VjcDM4NHIxX1RfMTJfWSksCi0gICAgRUNQX1BPSU5UX0lOSVRfWFlfWjAoc2VjcDM4NHIxX1RfMTNfWCwgc2VjcDM4NHIxX1RfMTNfWSksCi0gICAgRUNQX1BPSU5UX0lOSVRfWFlfWjAoc2VjcDM4NHIxX1RfMTRfWCwgc2VjcDM4NHIxX1RfMTRfWSksCi0gICAgRUNQX1BPSU5UX0lOSVRfWFlfWjAoc2VjcDM4NHIxX1RfMTVfWCwgc2VjcDM4NHIxX1RfMTVfWSksCi0gICAgRUNQX1BPSU5UX0lOSVRfWFlfWjAoc2VjcDM4NHIxX1RfMTZfWCwgc2VjcDM4NHIxX1RfMTZfWSksCi0gICAgRUNQX1BPSU5UX0lOSVRfWFlfWjAoc2VjcDM4NHIxX1RfMTdfWCwgc2VjcDM4NHIxX1RfMTdfWSksCi0gICAgRUNQX1BPSU5UX0lOSVRfWFlfWjAoc2VjcDM4NHIxX1RfMThfWCwgc2VjcDM4NHIxX1RfMThfWSksCi0gICAgRUNQX1BPSU5UX0lOSVRfWFlfWjAoc2VjcDM4NHIxX1RfMTlfWCwgc2VjcDM4NHIxX1RfMTlfWSksCi0gICAgRUNQX1BPSU5UX0lOSVRfWFlfWjAoc2VjcDM4NHIxX1RfMjBfWCwgc2VjcDM4NHIxX1RfMjBfWSksCi0gICAgRUNQX1BPSU5UX0lOSVRfWFlfWjAoc2VjcDM4NHIxX1RfMjFfWCwgc2VjcDM4NHIxX1RfMjFfWSksCi0gICAgRUNQX1BPSU5UX0lOSVRfWFlfWjAoc2VjcDM4NHIxX1RfMjJfWCwgc2VjcDM4NHIxX1RfMjJfWSksCi0gICAgRUNQX1BPSU5UX0lOSVRfWFlfWjAoc2VjcDM4NHIxX1RfMjNfWCwgc2VjcDM4NHIxX1RfMjNfWSksCi0gICAgRUNQX1BPSU5UX0lOSVRfWFlfWjAoc2VjcDM4NHIxX1RfMjRfWCwgc2VjcDM4NHIxX1RfMjRfWSksCi0gICAgRUNQX1BPSU5UX0lOSVRfWFlfWjAoc2VjcDM4NHIxX1RfMjVfWCwgc2VjcDM4NHIxX1RfMjVfWSksCi0gICAgRUNQX1BPSU5UX0lOSVRfWFlfWjAoc2VjcDM4NHIxX1RfMjZfWCwgc2VjcDM4NHIxX1RfMjZfWSksCi0gICAgRUNQX1BPSU5UX0lOSVRfWFlfWjAoc2VjcDM4NHIxX1RfMjdfWCwgc2VjcDM4NHIxX1RfMjdfWSksCi0gICAgRUNQX1BPSU5UX0lOSVRfWFlfWjAoc2VjcDM4NHIxX1RfMjhfWCwgc2VjcDM4NHIxX1RfMjhfWSksCi0gICAgRUNQX1BPSU5UX0lOSVRfWFlfWjAoc2VjcDM4NHIxX1RfMjlfWCwgc2VjcDM4NHIxX1RfMjlfWSksCi0gICAgRUNQX1BPSU5UX0lOSVRfWFlfWjAoc2VjcDM4NHIxX1RfMzBfWCwgc2VjcDM4NHIxX1RfMzBfWSksCi0gICAgRUNQX1BPSU5UX0lOSVRfWFlfWjAoc2VjcDM4NHIxX1RfMzFfWCwgc2VjcDM4NHIxX1RfMzFfWSksCi19OwotI2Vsc2UKLSNkZWZpbmUgc2VjcDM4NHIxX1QgTlVMTAotI2VuZGlmCi0KLSNlbmRpZiAvKiBNQkVEVExTX0VDUF9EUF9TRUNQMzg0UjFfRU5BQkxFRCAqLwotCi0vKgotICogRG9tYWluIHBhcmFtZXRlcnMgZm9yIHNlY3A1MjFyMQotICovCi0jaWYgZGVmaW5lZChNQkVEVExTX0VDUF9EUF9TRUNQNTIxUjFfRU5BQkxFRCkKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3A1MjFyMV9wW10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEZGLCAweEZGLCAweEZGLCAweEZGLCAweEZGLCAweEZGLCAweEZGLCAweEZGKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RkYsIDB4RkYsIDB4RkYsIDB4RkYsIDB4RkYsIDB4RkYsIDB4RkYsIDB4RkYpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEZGLCAweEZGLCAweEZGLCAweEZGLCAweEZGLCAweEZGLCAweEZGLCAweEZGKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RkYsIDB4RkYsIDB4RkYsIDB4RkYsIDB4RkYsIDB4RkYsIDB4RkYsIDB4RkYpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEZGLCAweEZGLCAweEZGLCAweEZGLCAweEZGLCAweEZGLCAweEZGLCAweEZGKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RkYsIDB4RkYsIDB4RkYsIDB4RkYsIDB4RkYsIDB4RkYsIDB4RkYsIDB4RkYpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzIoMHhGRiwgMHgwMSksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDUyMXIxX2JbXSA9IHsKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MDAsIDB4M0YsIDB4NTAsIDB4NkIsIDB4RDQsIDB4MUYsIDB4NDUsIDB4RUYpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhGMSwgMHgzNCwgMHgyQywgMHgzRCwgMHg4OCwgMHhERiwgMHg3MywgMHgzNSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDA3LCAweEJGLCAweEIxLCAweDNCLCAweEJELCAweEMwLCAweDUyLCAweDE2KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4N0IsIDB4OTMsIDB4N0UsIDB4RUMsIDB4NTEsIDB4MzksIDB4MTksIDB4NTYpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhFMSwgMHgwOSwgMHhGMSwgMHg4RSwgMHg5MSwgMHg4OSwgMHhCNCwgMHhCOCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEYzLCAweDE1LCAweEIzLCAweDk5LCAweDVCLCAweDcyLCAweERBLCAweEEyKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RUUsIDB4NDAsIDB4ODUsIDB4QjYsIDB4QTAsIDB4MjEsIDB4OUEsIDB4OTIpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgxRiwgMHg5QSwgMHgxQywgMHg4RSwgMHg2MSwgMHhCOSwgMHgzRSwgMHg5NSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfMigweDUxLCAweDAwKSwKLX07Ci1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwNTIxcjFfZ3hbXSA9IHsKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NjYsIDB4QkQsIDB4RTUsIDB4QzIsIDB4MzEsIDB4N0UsIDB4N0UsIDB4RjkpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg5QiwgMHg0MiwgMHg2QSwgMHg4NSwgMHhDMSwgMHhCMywgMHg0OCwgMHgzMyksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweERFLCAweEE4LCAweEZGLCAweEEyLCAweDI3LCAweEMxLCAweDFELCAweEZFKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MjgsIDB4NTksIDB4RTcsIDB4RUYsIDB4NzcsIDB4NUUsIDB4NEIsIDB4QTEpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhCQSwgMHgzRCwgMHg0RCwgMHg2QiwgMHg2MCwgMHhBRiwgMHgyOCwgMHhGOCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDIxLCAweEI1LCAweDNGLCAweDA1LCAweDM5LCAweDgxLCAweDY0LCAweDlDKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NDIsIDB4QjQsIDB4OTUsIDB4MjMsIDB4NjYsIDB4Q0IsIDB4M0UsIDB4OUUpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhDRCwgMHhFOSwgMHgwNCwgMHgwNCwgMHhCNywgMHgwNiwgMHg4RSwgMHg4NSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfMigweEM2LCAweDAwKSwKLX07Ci1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwNTIxcjFfZ3lbXSA9IHsKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NTAsIDB4NjYsIDB4RDEsIDB4OUYsIDB4NzYsIDB4OTQsIDB4QkUsIDB4ODgpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg0MCwgMHhDMiwgMHg3MiwgMHhBMiwgMHg4NiwgMHg3MCwgMHgzQywgMHgzNSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDYxLCAweDA3LCAweEFELCAweDNGLCAweDAxLCAweEI5LCAweDUwLCAweEM1KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NDAsIDB4MjYsIDB4RjQsIDB4NUUsIDB4OTksIDB4NzIsIDB4RUUsIDB4OTcpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgyQywgMHg2NiwgMHgzRSwgMHgyNywgMHgxNywgMHhCRCwgMHhBRiwgMHgxNyksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDY4LCAweDQ0LCAweDlCLCAweDU3LCAweDQ5LCAweDQ0LCAweEY1LCAweDk4KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RDksIDB4MUIsIDB4N0QsIDB4MkMsIDB4QjQsIDB4NUYsIDB4OEEsIDB4NUMpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgwNCwgMHhDMCwgMHgzQiwgMHg5QSwgMHg3OCwgMHg2QSwgMHgyOSwgMHgzOSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfMigweDE4LCAweDAxKSwKLX07Ci1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwNTIxcjFfbltdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgwOSwgMHg2NCwgMHgzOCwgMHg5MSwgMHgxRSwgMHhCNywgMHg2RiwgMHhCQiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEFFLCAweDQ3LCAweDlDLCAweDg5LCAweEI4LCAweEM5LCAweEI1LCAweDNCKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RDAsIDB4QTUsIDB4MDksIDB4RjcsIDB4NDgsIDB4MDEsIDB4Q0MsIDB4N0YpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg2QiwgMHg5NiwgMHgyRiwgMHhCRiwgMHg4MywgMHg4NywgMHg4NiwgMHg1MSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEZBLCAweEZGLCAweEZGLCAweEZGLCAweEZGLCAweEZGLCAweEZGLCAweEZGKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RkYsIDB4RkYsIDB4RkYsIDB4RkYsIDB4RkYsIDB4RkYsIDB4RkYsIDB4RkYpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEZGLCAweEZGLCAweEZGLCAweEZGLCAweEZGLCAweEZGLCAweEZGLCAweEZGKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF8yKDB4RkYsIDB4MDEpLAotfTsKLSNpZiBNQkVEVExTX0VDUF9GSVhFRF9QT0lOVF9PUFRJTSA9PSAxCi1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwNTIxcjFfVF8wX1hbXSA9IHsKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NjYsIDB4QkQsIDB4RTUsIDB4QzIsIDB4MzEsIDB4N0UsIDB4N0UsIDB4RjkpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg5QiwgMHg0MiwgMHg2QSwgMHg4NSwgMHhDMSwgMHhCMywgMHg0OCwgMHgzMyksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweERFLCAweEE4LCAweEZGLCAweEEyLCAweDI3LCAweEMxLCAweDFELCAweEZFKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MjgsIDB4NTksIDB4RTcsIDB4RUYsIDB4NzcsIDB4NUUsIDB4NEIsIDB4QTEpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhCQSwgMHgzRCwgMHg0RCwgMHg2QiwgMHg2MCwgMHhBRiwgMHgyOCwgMHhGOCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDIxLCAweEI1LCAweDNGLCAweDA1LCAweDM5LCAweDgxLCAweDY0LCAweDlDKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NDIsIDB4QjQsIDB4OTUsIDB4MjMsIDB4NjYsIDB4Q0IsIDB4M0UsIDB4OUUpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhDRCwgMHhFOSwgMHgwNCwgMHgwNCwgMHhCNywgMHgwNiwgMHg4RSwgMHg4NSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEM2LCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwKSwKLX07Ci1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwNTIxcjFfVF8wX1lbXSA9IHsKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NTAsIDB4NjYsIDB4RDEsIDB4OUYsIDB4NzYsIDB4OTQsIDB4QkUsIDB4ODgpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg0MCwgMHhDMiwgMHg3MiwgMHhBMiwgMHg4NiwgMHg3MCwgMHgzQywgMHgzNSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDYxLCAweDA3LCAweEFELCAweDNGLCAweDAxLCAweEI5LCAweDUwLCAweEM1KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NDAsIDB4MjYsIDB4RjQsIDB4NUUsIDB4OTksIDB4NzIsIDB4RUUsIDB4OTcpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgyQywgMHg2NiwgMHgzRSwgMHgyNywgMHgxNywgMHhCRCwgMHhBRiwgMHgxNyksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDY4LCAweDQ0LCAweDlCLCAweDU3LCAweDQ5LCAweDQ0LCAweEY1LCAweDk4KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RDksIDB4MUIsIDB4N0QsIDB4MkMsIDB4QjQsIDB4NUYsIDB4OEEsIDB4NUMpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgwNCwgMHhDMCwgMHgzQiwgMHg5QSwgMHg3OCwgMHg2QSwgMHgyOSwgMHgzOSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDE4LCAweDAxLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwKSwKLX07Ci1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwNTIxcjFfVF8xX1hbXSA9IHsKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MkYsIDB4QjEsIDB4MkQsIDB4RUIsIDB4MjcsIDB4MkYsIDB4RTgsIDB4REEpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg5OCwgMHg0QiwgMHg0NCwgMHgyNSwgMHhEQiwgMHg1QywgMHg1RiwgMHg2NyksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDEzLCAweDg1LCAweDI4LCAweDc4LCAweDJFLCAweDc1LCAweDM0LCAweDMyKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NjksIDB4NTcsIDB4MEYsIDB4NzMsIDB4NzgsIDB4N0EsIDB4RTMsIDB4NTMpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg4RCwgMHhEOCwgMHhFQywgMHhEQywgMHhEQSwgMHgwNCwgMHhBRCwgMHhBQiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDM0LCAweDhBLCAweDA5LCAweEYzLCAweDU4LCAweDc5LCAweEQ4LCAweDI5KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NjMsIDB4MDMsIDB4Q0IsIDB4NTAsIDB4MUEsIDB4N0YsIDB4NTYsIDB4MDApLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhGNiwgMHhBNiwgMHg3OCwgMHgzOCwgMHg4NSwgMHg2NywgMHgwQiwgMHg0MCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDgzLCAweDAxLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwKSwKLX07Ci1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwNTIxcjFfVF8xX1lbXSA9IHsKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4OEEsIDB4RDUsIDB4RDIsIDB4MjIsIDB4QzQsIDB4MDAsIDB4M0IsIDB4QkEpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhENSwgMHg5MywgMHgwRSwgMHg3QiwgMHg4NSwgMHg1MSwgMHhDMywgMHgwNiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDNELCAweEE2LCAweDVGLCAweDU0LCAweDQ5LCAweDAyLCAweDgxLCAweDc4KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MjIsIDB4RTksIDB4NkIsIDB4M0EsIDB4OTIsIDB4RTcsIDB4NzIsIDB4MUQpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg2RiwgMHg1RiwgMHgyOCwgMHg5RSwgMHg5MSwgMHgyNywgMHg4OCwgMHhFMyksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEVGLCAweDI4LCAweDMxLCAweEIzLCAweDg0LCAweENBLCAweDEyLCAweDMyKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4M0QsIDB4RjksIDB4QUMsIDB4MjIsIDB4MTAsIDB4MEEsIDB4NjQsIDB4NDEpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhFOSwgMHhDNiwgMHgzMywgMHgxRiwgMHg2OSwgMHgxOSwgMHgxOCwgMHhCRiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEJFLCAweDAxLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwKSwKLX07Ci1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwNTIxcjFfVF8yX1hbXSA9IHsKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QTAsIDB4NDgsIDB4QjgsIDB4QzcsIDB4MzcsIDB4NUEsIDB4MDAsIDB4MzYpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgwNywgMHhDQywgMHgzMiwgMHhFMCwgMHhFRSwgMHgwMywgMHhDMiwgMHhCQSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEM0LCAweDI5LCAweEMyLCAweEU0LCAweDZFLCAweDI0LCAweDIwLCAweDhEKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MDYsIDB4NkIsIDB4N0YsIDB4N0IsIDB4RjksIDB4QjAsIDB4QjgsIDB4MTMpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgxRCwgMHg3QiwgMHgzQywgMHhFMSwgMHgxOSwgMHhBMSwgMHgyMywgMHgwMiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDJBLCAweEUzLCAweEMyLCAweDUzLCAweEMwLCAweDA3LCAweDEzLCAweEE5KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MDcsIDB4RkUsIDB4MzYsIDB4MzUsIDB4OUYsIDB4NUUsIDB4NTksIDB4Q0UpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgxRCwgMHg1NSwgMHg4OSwgMHg4NCwgMHhCQywgMHhFRiwgMHhBMiwgMHhDMiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDE5LCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwKSwKLX07Ci1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwNTIxcjFfVF8yX1lbXSA9IHsKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RkQsIDB4MUEsIDB4MDgsIDB4NjcsIDB4QjQsIDB4RTcsIDB4MjIsIDB4RUQpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg3NiwgMHgyNiwgMHhERiwgMHg4MSwgMHgzQywgMHg1RiwgMHgxQywgMHhEQSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEUwLCAweDRELCAweEQwLCAweDBBLCAweDQ4LCAweDA2LCAweEY0LCAweDQ4KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NzMsIDB4MTgsIDB4MzksIDB4RjcsIDB4RDEsIDB4MjAsIDB4NzcsIDB4OEQpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg3OCwgMHg4RiwgMHg0NCwgMHgxMywgMHhDQiwgMHg3OCwgMHgxMSwgMHgxMSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDMzLCAweEUyLCAweDQ5LCAweEVBLCAweDQzLCAweDc5LCAweDA4LCAweDM5KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MDEsIDB4RDEsIDB4RDgsIDB4NzMsIDB4MkMsIDB4NzEsIDB4MkYsIDB4NjkpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgyMSwgMHhFNSwgMHhFNywgMHhGNCwgMHg0NiwgMHhBQiwgMHgyMCwgMHhDQSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDVBLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwKSwKLX07Ci1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwNTIxcjFfVF8zX1hbXSA9IHsKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4OEMsIDB4MEIsIDB4QjksIDB4NzEsIDB4MUEsIDB4MjcsIDB4QjcsIDB4QTcpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgyQSwgMHhBMiwgMHgyQywgMHhEMSwgMHhEQSwgMHhCQywgMHhDMSwgMHhCRCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDEwLCAweEEzLCAweDEwLCAweDFGLCAweDkwLCAweEYyLCAweEE1LCAweDUyKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MjgsIDB4RkIsIDB4MjAsIDB4RjQsIDB4QzAsIDB4NzAsIDB4QzAsIDB4RjUpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg4RiwgMHhBNywgMHg5OSwgMHhGMCwgMHhBNSwgMHhEMywgMHgwOSwgMHhERCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDI2LCAweEU4LCAweDE0LCAweDM5LCAweEJFLCAweENCLCAweDYwLCAweEFGKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4OUYsIDB4RDYsIDB4MTQsIDB4QTksIDB4QzksIDB4MjAsIDB4QzMsIDB4RUEpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg1RCwgMHhBOCwgMHg1QiwgMHhGRCwgMHgyRCwgMHg5NiwgMHhCQywgMHg3OCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEMwLCAweDAxLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwKSwKLX07Ci1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwNTIxcjFfVF8zX1lbXSA9IHsKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4OUQsIDB4MDQsIDB4NDUsIDB4QkUsIDB4Q0UsIDB4NzUsIDB4OTUsIDB4RjYpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhDQywgMHhEQSwgMHg1OCwgMHg0OSwgMHgzNSwgMHgwOSwgMHg4RCwgMHg0MSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDc2LCAweEYwLCAweEMwLCAweDM2LCAweEYyLCAweEE2LCAweDJELCAweDE0KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RTcsIDB4RkMsIDB4M0QsIDB4QTgsIDB4RkIsIDB4M0MsIDB4RDIsIDB4NTEpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgwMSwgMHg0RCwgMHg3MSwgMHgwOSwgMHgxOCwgMHg0MiwgMHhGMCwgMHgyRCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDhELCAweEMxLCAweENFLCAweDlFLCAweDZBLCAweDQ5LCAweDYwLCAweDEyKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QUQsIDB4QjEsIDB4MDAsIDB4RjcsIDB4QTEsIDB4N0EsIDB4MzEsIDB4QjQpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg0MSwgMHhDMywgMHg4NiwgMHhDRCwgMHgyMCwgMHg0QSwgMHgxNywgMHg4NiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDZDLCAweDAxLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwKSwKLX07Ci1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwNTIxcjFfVF80X1hbXSA9IHsKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4OTgsIDB4QUIsIDB4OEIsIDB4NDcsIDB4OEQsIDB4QUEsIDB4QTYsIDB4NUIpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhDNCwgMHg5NywgMHhGMCwgMHhCQywgMHgyRCwgMHhEQywgMHg5RCwgMHg4NCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDAxLCAweDg2LCAweEIwLCAweDc0LCAweEIyLCAweEY0LCAweEY2LCAweDY3KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QUMsIDB4QkQsIDB4QUMsIDB4RTMsIDB4OEYsIDB4NDMsIDB4NUMsIDB4QjEpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgzNywgMHhDMywgMHhFMiwgMHg2RSwgMHgyNSwgMHg0OSwgMHhDRCwgMHgwQiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDY0LCAweDVFLCAweDA4LCAweEIzLCAweEI5LCAweEFDLCAweDVGLCAweEQxKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MDgsIDB4QjcsIDB4RDEsIDB4RjQsIDB4REMsIDB4MTksIDB4RTksIDB4QzgpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg0OSwgMHhFNCwgMHhGQSwgMHhFMSwgMHgzNiwgMHgzRSwgMHhFRCwgMHg2RSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDBBLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwKSwKLX07Ci1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwNTIxcjFfVF80X1lbXSA9IHsKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MDAsIDB4NjcsIDB4OTIsIDB4ODQsIDB4NkUsIDB4NDgsIDB4MDMsIDB4NTEpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg5RSwgMHg5NSwgMHhFRiwgMHg4RiwgMHhCMiwgMHg4MiwgMHg2QiwgMHgxQyksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDhELCAweEZBLCAweEI5LCAweDU1LCAweDIzLCAweEZFLCAweDA5LCAweEIzKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RUYsIDB4NzksIDB4ODUsIDB4NEIsIDB4MEUsIDB4RDQsIDB4MzUsIDB4REIpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg5QSwgMHgyNywgMHg0NSwgMHg4MSwgMHhFMCwgMHg4OCwgMHg1MiwgMHhBRCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDE3LCAweDYzLCAweEEyLCAweDRCLCAweEJDLCAweDVELCAweEIxLCAweDkyKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MjgsIDB4OEMsIDB4ODMsIDB4RDksIDB4M0UsIDB4RDMsIDB4NDIsIDB4REEpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg5OSwgMHgwMywgMHgzQSwgMHgzMSwgMHhCQSwgMHhFOSwgMHgzQSwgMHhEMSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDQ3LCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwKSwKLX07Ci1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwNTIxcjFfVF81X1hbXSA9IHsKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MzUsIDB4MTAsIDB4Q0QsIDB4MkQsIDB4MDAsIDB4RkUsIDB4MzIsIDB4QTcpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhFNCwgMHg2RSwgMHgxRiwgMHhEQSwgMHhGOCwgMHg2RiwgMHg0RCwgMHgwMyksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDA5LCAweDc5LCAweDdELCAweDA5LCAweEU1LCAweEQzLCAweDAzLCAweDIxKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NTgsIDB4QzMsIDB4QkUsIDB4REYsIDB4MDcsIDB4NjUsIDB4NDksIDB4Q0MpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgwOCwgMHg1NywgMHgzMywgMHhFRiwgMHhBRSwgMHg0RiwgMHgwNCwgMHgyNyksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDlBLCAweEU5LCAweDlCLCAweEZFLCAweEJGLCAweEU2LCAweDg1LCAweEY2KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QkQsIDB4QkEsIDB4QUEsIDB4MDYsIDB4QzQsIDB4QzYsIDB4QjgsIDB4NTcpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgwQywgMHg4MywgMHgwMSwgMHhBOSwgMHhGNiwgMHg1MSwgMHhFNywgMHhCOCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDFCLCAweDAxLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwKSwKLX07Ci1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwNTIxcjFfVF81X1lbXSA9IHsKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QjksIDB4QTYsIDB4MTUsIDB4OEUsIDB4QUIsIDB4MUYsIDB4MTAsIDB4ODcpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg3NCwgMHgwOCwgMHgyNywgMHgxQSwgMHhBMSwgMHgyMSwgMHhBRCwgMHhGNSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDAyLCAweDA5LCAweDkwLCAweDZFLCAweDUwLCAweDkwLCAweDlBLCAweDVEKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4ODYsIDB4OUEsIDB4RkUsIDB4RDcsIDB4QTEsIDB4RjUsIDB4QTIsIDB4MTUpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhFOCwgMHg3RCwgMHhFMywgMHhEQywgMHgyMSwgMHhGQiwgMHhBNCwgMHg3QiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEI5LCAweEJGLCAweDA3LCAweEZGLCAweDQ1LCAweERGLCAweDUxLCAweDc3KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MEIsIDB4NUMsIDB4MzQsIDB4MDIsIDB4NjIsIDB4OUIsIDB4MDgsIDB4MTIpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg4NiwgMHhDRSwgMHg5QSwgMHg2QSwgMHhFQywgMHg3NSwgMHhGNiwgMHg0NiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDZELCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwKSwKLX07Ci1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwNTIxcjFfVF82X1hbXSA9IHsKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RTYsIDB4NTksIDB4RjQsIDB4NzgsIDB4M0MsIDB4NjAsIDB4QjEsIDB4NEEpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgzRSwgMHgzNywgMHg4NCwgMHg2QSwgMHhEQywgMHhGMiwgMHg5QSwgMHg3RCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDQwLCAweDlBLCAweDlBLCAweDE1LCAweDM2LCAweEUwLCAweDJCLCAweDJEKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RUMsIDB4MzgsIDB4OUMsIDB4NTAsIDB4M0QsIDB4MUUsIDB4MzcsIDB4ODIpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhCNywgMHg3OSwgMHhGMCwgMHg5MiwgMHhGMiwgMHg4QiwgMHgxOCwgMHg4MiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDE3LCAweEUwLCAweDgyLCAweDFFLCAweDgwLCAweDgyLCAweDRCLCAweEQ3KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RkEsIDB4QkIsIDB4NTksIDB4NkIsIDB4OEEsIDB4NzcsIDB4NDEsIDB4NDApLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhBNywgMHhGOSwgMHhENCwgMHhCOCwgMHg0QSwgMHg4MiwgMHhDRiwgMHg0MCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDVELCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwKSwKLX07Ci1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwNTIxcjFfVF82X1lbXSA9IHsKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MUUsIDB4OEMsIDB4QzgsIDB4OUIsIDB4NzIsIDB4OUUsIDB4RjcsIDB4RjkpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhCOCwgMHhDRSwgMHhFOSwgMHg3NywgMHgwQSwgMHgxOSwgMHg1OSwgMHg4NCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDlELCAweEExLCAweDQxLCAweDZBLCAweDcyLCAweDRCLCAweEI0LCAweERDKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MEIsIDB4MzUsIDB4NDMsIDB4RTIsIDB4OEMsIDB4QkUsIDB4MEQsIDB4RTMpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhDMSwgMHhFQiwgMHhBRCwgMHhGMywgMHhBOSwgMHhBNiwgMHg2OCwgMHhBMSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDgxLCAweDJGLCAweEUyLCAweDQ4LCAweDBDLCAweERCLCAweDFGLCAweDQyKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RDEsIDB4MUUsIDB4NjAsIDB4OUIsIDB4MkEsIDB4RDIsIDB4QzEsIDB4M0MpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhDMCwgMHg2NCwgMHhCNSwgMHhEMiwgMHhGNiwgMHhGNiwgMHg2RSwgMHgyMiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDcwLCAweDAxLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwKSwKLX07Ci1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwNTIxcjFfVF83X1hbXSA9IHsKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QzYsIDB4M0QsIDB4MzAsIDB4NzgsIDB4MTAsIDB4MTgsIDB4NDEsIDB4NTEpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg5NiwgMHgxRCwgMHgxQywgMHhFMCwgMHg2RCwgMHg4MywgMHhEMSwgMHg5MyksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDdCLCAweDAzLCAweDBCLCAweEY1LCAweDJGLCAweDZDLCAweDA0LCAweDk4KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NkMsIDB4M0UsIDB4RDUsIDB4RkMsIDB4MzEsIDB4NUIsIDB4M0EsIDB4RUIpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg1MCwgMHg4MiwgMHgyRiwgMHhGQiwgMHhGRSwgMHhGOCwgMHg3NiwgMHgzOSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDg1LCAweDI2LCAweERBLCAweDlDLCAweDM2LCAweEY1LCAweDkzLCAweEQxKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NEMsIDB4RTcsIDB4NkUsIDB4RDIsIDB4N0QsIDB4ODEsIDB4MDksIDB4QzYpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhEMywgMHgwMywgMHhGOSwgMHg1OCwgMHg0OCwgMHgyNCwgMHhBMiwgMHhFRSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEU5LCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwKSwKLX07Ci1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwNTIxcjFfVF83X1lbXSA9IHsKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MUIsIDB4NzksIDB4MEMsIDB4OEUsIDB4NkIsIDB4OTUsIDB4RjMsIDB4QzQpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhGNCwgMHgxMCwgMHg1QywgMHg4NywgMHgwMywgMHgzOSwgMHhDRiwgMHg2OCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEFELCAweEYwLCAweEY3LCAweEMxLCAweDA3LCAweEE0LCAweEY0LCAweDNGKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MzIsIDB4RTgsIDB4MDIsIDB4ODksIDB4NjUsIDB4QzQsIDB4NzIsIDB4MzYpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhCNCwgMHg4OCwgMHhFQSwgMHg5NiwgMHg2NywgMHgwQiwgMHg1RCwgMHhERiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEE4LCAweDc1LCAweDYwLCAweEE4LCAweEJELCAweDc0LCAweERGLCAweDY4KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NkUsIDB4RTUsIDB4NzEsIDB4NTAsIDB4NjcsIDB4RDAsIDB4RDIsIDB4RTYpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhENSwgMHhGQywgMHhFNSwgMHhDNywgMHg3NywgMHhCMCwgMHg3RiwgMHg4QyksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEYxLCAweDAxLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwKSwKLX07Ci1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwNTIxcjFfVF84X1hbXSA9IHsKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4OTcsIDB4ODYsIDB4NjksIDB4Q0QsIDB4MEQsIDB4OUEsIDB4QkQsIDB4NjYpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg1OCwgMHgxNywgMHhCQywgMHhCQiwgMHg1OSwgMHg4NSwgMHg3RCwgMHgwRSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDhELCAweEE4LCAweDc2LCAweEFDLCAweDgwLCAweEE5LCAweDcyLCAweEUwKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NzQsIDB4NzgsIDB4QzEsIDB4RTIsIDB4NEQsIDB4QUYsIDB4RjksIDB4M0MpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhBRCwgMHg5NywgMHg4RSwgMHg3NCwgMHhDNCwgMHg0QiwgMHhCMiwgMHg4NSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEVBLCAweEQ4LCAweEY2LCAweEYzLCAweEFGLCAweDJGLCAweDUyLCAweEU1KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4OTUsIDB4NTcsIDB4RjQsIDB4Q0UsIDB4RUUsIDB4NDMsIDB4RUQsIDB4NjApLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg3RCwgMHg0NiwgMHgzOCwgMHhERSwgMHgyMCwgMHhGRCwgMHg1OSwgMHgxOCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEQ3LCAweDAxLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwKSwKLX07Ci1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwNTIxcjFfVF84X1lbXSA9IHsKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MUMsIDB4MTgsIDB4RTgsIDB4NTgsIDB4QjksIDB4NzYsIDB4MkMsIDB4RTYpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhFRCwgMHg1NCwgMHhFNCwgMHhGRSwgMHhDNywgMHhCQywgMHgzMSwgMHgzNyksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEY1LCAweEY4LCAweDg5LCAweEVFLCAweDcwLCAweEI1LCAweEIwLCAweDJDKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4ODMsIDB4MjIsIDB4MjYsIDB4OUEsIDB4NTMsIDB4QjksIDB4MzgsIDB4MEEpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg3NCwgMHhBNywgMHgxOSwgMHg4QywgMHg3NCwgMHg3RSwgMHg4OCwgMHg0NiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEI0LCAweERBLCAweDBBLCAweEU4LCAweERBLCAweEE1LCAweEJFLCAweDFEKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4OTAsIDB4NUMsIDB4RjcsIDB4QjEsIDB4MEMsIDB4NzIsIDB4RkIsIDB4MDkpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg3OCwgMHhFMiwgMHgyMywgMHhFNywgMHg0NiwgMHhCNywgMHhFMCwgMHg5MSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEM1LCAweDAxLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwKSwKLX07Ci1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwNTIxcjFfVF85X1hbXSA9IHsKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4M0EsIDB4MzYsIDB4QkMsIDB4QkQsIDB4NDgsIDB4MTEsIDB4OEUsIDB4NzIpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhBQiwgMHhCQiwgMHhBMSwgMHhGNywgMHgwQiwgMHg5RSwgMHhCRiwgMHhERiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDY4LCAweDI4LCAweEUxLCAweEEyLCAweDhGLCAweEZDLCAweEZDLCAweEQ2KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4ODEsIDB4RkUsIDB4MTksIDB4MEEsIDB4RTUsIDB4RTcsIDB4NjksIDB4MzkpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg1RSwgMHhDRCwgMHgxMiwgMHhGNSwgMHhCRSwgMHhEMywgMHgwNCwgMHhGMSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEY1LCAweEE4LCAweDBELCAweDgxLCAweDU5LCAweEM0LCAweDc5LCAweDk4KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QTMsIDB4RjMsIDB4NEIsIDB4OTIsIDB4NjUsIDB4QzMsIDB4MzEsIDB4QUQpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg3NSwgMHhCNSwgMHg0RiwgMHg0RCwgMHg5MSwgMHhENCwgMHhFMiwgMHhCMiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDUxLCAweDAxLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwKSwKLX07Ci1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwNTIxcjFfVF85X1lbXSA9IHsKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NzIsIDB4MDksIDB4NDEsIDB4NzksIDB4MUQsIDB4NEQsIDB4MEQsIDB4MzMpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhCQiwgMHgzMSwgMHgxOCwgMHhCQSwgMHhBMCwgMHhGMiwgMHg2RSwgMHg3RSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDkzLCAweDVCLCAweDRELCAweDRGLCAweEFGLCAweEM5LCAweDhDLCAweEExKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NDgsIDB4OTksIDB4OUMsIDB4MDYsIDB4NjgsIDB4REUsIDB4RDgsIDB4MjkpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhBMCwgMHgwNCwgMHhFMSwgMHhCNSwgMHg5RCwgMHgwMCwgMHhCQywgMHhCOCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDYxLCAweDk1LCAweDkyLCAweDhELCAweDcyLCAweEQzLCAweDM3LCAweDQyKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QUIsIDB4NEIsIDB4MjcsIDB4QTIsIDB4RTgsIDB4QTQsIDB4MjYsIDB4QTEpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg0RiwgMHg0NSwgMHg5QywgMHhBOSwgMHhDQiwgMHg5RiwgMHhCQSwgMHg4NSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweENCLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwKSwKLX07Ci1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwNTIxcjFfVF8xMF9YW10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDA4LCAweDdFLCAweDFCLCAweDY0LCAweEY0LCAweEU4LCAweEE1LCAweDU1KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RjcsIDB4MjAsIDB4QTksIDB4Q0EsIDB4RjMsIDB4ODksIDB4RTUsIDB4RTEpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg4MywgMHhFRCwgMHhGQywgMHhBQiwgMHhEOSwgMHgwQSwgMHhCOSwgMHgwNyksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDA4LCAweDZGLCAweDQ2LCAweDdDLCAweENELCAweDc4LCAweEZGLCAweDA1KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NjksIDB4QUIsIDB4NzEsIDB4NUEsIDB4OTQsIDB4QUIsIDB4MjAsIDB4MjApLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhDMiwgMHgyRSwgMHhFRSwgMHg4NywgMHg1NywgMHgxRiwgMHhBRCwgMHhEMyksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDkxLCAweDRDLCAweDNELCAweEZCLCAweDdFLCAweEExLCAweDhCLCAweDA3KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NjksIDB4Q0YsIDB4MDcsIDB4ODYsIDB4QkEsIDB4NTMsIDB4MzcsIDB4Q0YpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgzOCwgMHgwMSwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDUyMXIxX1RfMTBfWVtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgwMCwgMHgyNiwgMHhCMiwgMHhCOSwgMHhFMiwgMHg5MSwgMHhFMywgMHhCNSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDc5LCAweEM5LCAweDU0LCAweDg0LCAweDA4LCAweDNELCAweDBCLCAweEQyKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NUQsIDB4QTgsIDB4NzcsIDB4MkYsIDB4NjQsIDB4NDUsIDB4OTksIDB4NEMpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg4NywgMHg5NiwgMHgxNiwgMHgxRiwgMHhEQiwgMHg5NiwgMHgyOCwgMHg5NyksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDgzLCAweDJCLCAweDhELCAweEZGLCAweEEyLCAweDRGLCAweDU1LCAweEQzKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NzEsIDB4RTYsIDB4NDgsIDB4QkQsIDB4OTksIDB4M0QsIDB4MTIsIDB4NTcpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgzRiwgMHg4NCwgMHg1OSwgMHhEQSwgMHhCOSwgMHhCNiwgMHg2NiwgMHgxMiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDZELCAweDc4LCAweDQxLCAweDkyLCAweERGLCAweEY0LCAweDNGLCAweDYzKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MUYsIDB4MDEsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDApLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3A1MjFyMV9UXzExX1hbXSA9IHsKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4N0UsIDB4ODYsIDB4NkYsIDB4NEYsIDB4QkYsIDB4NjcsIDB4REYsIDB4MkYpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhGMiwgMHgyQiwgMHgxRSwgMHg1RiwgMHgwMCwgMHhFQSwgMHhGNiwgMHg1NiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDkwLCAweEI5LCAweDZBLCAweDg5LCAweEQ4LCAweEMwLCAweEQ3LCAweEE3KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4Q0IsIDB4OUEsIDB4MzIsIDB4MjMsIDB4QTAsIDB4MDIsIDB4OTEsIDB4NTgpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg0MiwgMHg3RiwgMHg2QSwgMHgxNSwgMHg2NCwgMHg2QSwgMHg4QiwgMHhCQiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDhBLCAweDU3LCAweDgyLCAweDU4LCAweEE5LCAweDU2LCAweEI1LCAweEZCKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4REQsIDB4NTAsIDB4OTIsIDB4NjAsIDB4Q0MsIDB4ODEsIDB4MjQsIDB4QTgpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgzNiwgMHgzRCwgMHhBRCwgMHhEQSwgMHhEOSwgMHg1MSwgMHgzRSwgMHg1NyksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDVELCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwKSwKLX07Ci1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwNTIxcjFfVF8xMV9ZW10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEVDLCAweEZFLCAweDhGLCAweEIwLCAweDBCLCAweERFLCAweDJFLCAweDdFKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NzksIDB4RDIsIDB4QkUsIDB4RUYsIDB4QUMsIDB4NzYsIDB4NzEsIDB4QTMpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg1NSwgMHhFOCwgMHg3MiwgMHgwQiwgMHhBQywgMHhGRSwgMHhDQSwgMHg1QSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEFELCAweDVCLCAweEM3LCAweEZDLCAweEUzLCAweDNDLCAweDdDLCAweDRDKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QTEsIDB4MDQsIDB4QTcsIDB4QjksIDB4OUIsIDB4OTMsIDB4QzAsIDB4MkYpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg0MSwgMHg0OCwgMHg0QiwgMHg4RSwgMHgzMiwgMHhDNSwgMHhGMCwgMHg2QiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEIwLCAweDQyLCAweDA3LCAweEMxLCAweEYyLCAweEYxLCAweDcyLCAweDVCKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MUUsIDB4MzcsIDB4NTQsIDB4OUMsIDB4ODgsIDB4RDIsIDB4NjIsIDB4QUEpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhDMSwgMHgwMSwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDUyMXIxX1RfMTJfWFtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhDMiwgMHgxOSwgMHg4QSwgMHg4OSwgMHg1OCwgMHhBMiwgMHgwRiwgMHhEQiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDAxLCAweENDLCAweDRDLCAweDk3LCAweDMwLCAweDY2LCAweDM0LCAweDI2KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4ODMsIDB4NkEsIDB4MUUsIDB4MUYsIDB4REIsIDB4QzksIDB4NUUsIDB4MTMpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgxQiwgMHg0RCwgMHg0OSwgMHhGRiwgMHg5QiwgMHg5QywgMHhBQywgMHg5QiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEQ3LCAweEU0LCAweDRCLCAweEYyLCAweEQ0LCAweDFBLCAweEQyLCAweDc4KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4Q0QsIDB4REEsIDB4RTgsIDB4NjEsIDB4OUYsIDB4QzgsIDB4NDksIDB4MzIpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg1MSwgMHhDQiwgMHhGMiwgMHgyRCwgMHg4NSwgMHhGNiwgMHg4RCwgMHg1MiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEI3LCAweEM1LCAweENELCAweDJDLCAweDc5LCAweEM2LCAweDBFLCAweDRGKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4REIsIDB4MDEsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDApLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3A1MjFyMV9UXzEyX1lbXSA9IHsKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NzMsIDB4MUQsIDB4NTUsIDB4MEYsIDB4RjgsIDB4MjIsIDB4OUYsIDB4NzgpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg3NiwgMHg1NiwgMHhCQSwgMHhFNywgMHg1NywgMHgzMiwgMHhFQywgMHg0MiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDY1LCAweDlBLCAweEM2LCAweDRDLCAweDA5LCAweEM0LCAweDUyLCAweDNGKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QjYsIDB4MUUsIDB4NkYsIDB4RjQsIDB4N0QsIDB4MjcsIDB4REQsIDB4QUYpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg5NCwgMHgxMSwgMHgxNiwgMHhFQywgMHg3OSwgMHg4MywgMHhBRCwgMHhBRSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDQ2LCAweDRFLCAweDkyLCAweDFGLCAweDE5LCAweDdELCAweDY1LCAweERDKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MDksIDB4RkYsIDB4NzgsIDB4MTUsIDB4NDUsIDB4NjMsIDB4MzIsIDB4RTQpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhCRiwgMHg5MSwgMHhEMCwgMHg3OCwgMHg1OCwgMHhEQSwgMHg1MCwgMHg0NyksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDczLCAweDAxLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwKSwKLX07Ci1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwNTIxcjFfVF8xM19YW10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDIzLCAweERFLCAweDQwLCAweEY2LCAweDQxLCAweEI0LCAweDNCLCAweDk1KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QzYsIDB4OEQsIDB4RTAsIDB4RTEsIDB4QTksIDB4RjAsIDB4MzUsIDB4NUQpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhFNiwgMHhENCwgMHhCQSwgMHg3QiwgMHhDQywgMHgxQiwgMHgzQSwgMHgzMiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEQwLCAweDVBLCAweDJFLCAweDc0LCAweDQ3LCAweDE0LCAweEMzLCAweDREKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4N0QsIDB4RjAsIDB4OEIsIDB4MDYsIDB4MTUsIDB4OEUsIDB4MEUsIDB4Q0EpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhCNSwgMHhEMiwgMHhFQiwgMHg5NywgMHg1MCwgMHg3RCwgMHgzMSwgMHhGQyksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDQyLCAweDkzLCAweDRDLCAweERCLCAweDk3LCAweDc5LCAweDQ0LCAweEY1KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4OUMsIDB4QTIsIDB4QTAsIDB4MEIsIDB4QzgsIDB4M0EsIDB4OEEsIDB4RjkpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg2MSwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDUyMXIxX1RfMTNfWVtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg3OSwgMHg1MCwgMHg5MiwgMHg5RSwgMHgyNCwgMHgxRiwgMHhDQiwgMHg0QyksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEQzLCAweDE2LCAweEM5LCAweEM1LCAweDNELCAweDVBLCAweEFGLCAweDk3KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MTgsIDB4RTMsIDB4OTcsIDB4RTQsIDB4QTgsIDB4NTAsIDB4RjYsIDB4N0UpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg0NSwgMHg1NywgMHg5NywgMHg0MiwgMHg3OCwgMHg5MiwgMHg0OSwgMHgwRCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEE1LCAweEVCLCAweDYyLCAweDI0LCAweEZCLCAweDhGLCAweDMyLCAweENGKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RjMsIDB4MEMsIDB4MzYsIDB4NkUsIDB4OEYsIDB4RTgsIDB4RTgsIDB4OEUpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhDMiwgMHhEMywgMHg3QywgMHhDNywgMHg4RCwgMHgzRiwgMHg1QywgMHhFMSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDZBLCAweDY0LCAweDZBLCAweDczLCAweDEwLCAweDc5LCAweEI4LCAweDVBKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4Q0IsIDB4MDEsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDApLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3A1MjFyMV9UXzE0X1hbXSA9IHsKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NTEsIDB4RjksIDB4RUYsIDB4QTUsIDB4MjAsIDB4NEEsIDB4NUMsIDB4QTEpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgyRiwgMHhGMywgMHhGNCwgMHg0OSwgMHg1QiwgMHg3MywgMHhBQSwgMHgxQiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEM2LCAweEYyLCAweEVBLCAweDBGLCAweDAwLCAweEFELCAweDUzLCAweEFCKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MDMsIDB4QjgsIDB4NjYsIDB4RUQsIDB4QzQsIDB4MkIsIDB4NEMsIDB4MzUpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgzQSwgMHgyRiwgMHhDMSwgMHg5QSwgMHgzNywgMHhEMiwgMHg3RiwgMHg1OCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDI5LCAweEE3LCAweDgxLCAweDM4LCAweDY0LCAweEM5LCAweDM3LCAweDM4KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QkUsIDB4M0IsIDB4NkMsIDB4OUYsIDB4NUIsIDB4RDksIDB4OEIsIDB4MUQpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhCNiwgMHgxNCwgMHhEOSwgMHgwOCwgMHhEOCwgMHhEMiwgMHg3RSwgMHgyMyksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDFDLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwKSwKLX07Ci1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwNTIxcjFfVF8xNF9ZW10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDE1LCAweDcxLCAweEU2LCAweDNELCAweEQxLCAweEIwLCAweEU3LCAweENEKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NUIsIDB4ODEsIDB4MjMsIDB4RUMsIDB4MkQsIDB4NDIsIDB4NDUsIDB4RTYpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg1MSwgMHg1QiwgMHg0NCwgMHg2QiwgMHg4OSwgMHgwMywgMHg2NywgMHgyOCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDg0LCAweDI3LCAweEFFLCAweDgwLCAweDVBLCAweDMzLCAweEJFLCAweDExKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RTMsIDB4QjYsIDB4NjQsIDB4MUEsIDB4REYsIDB4RDMsIDB4ODUsIDB4OTEpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg2NywgMHg4QywgMHgyMiwgMHhCQSwgMHhEMCwgMHhCRCwgMHhDQywgMHhBMCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEY3LCAweDNDLCAweDAxLCAweDNBLCAweEZGLCAweDlELCAweEM3LCAweDZCKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MEMsIDB4QzcsIDB4NjQsIDB4QjQsIDB4NTksIDB4NEUsIDB4OUYsIDB4MjIpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg4NSwgMHgwMSwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDUyMXIxX1RfMTVfWFtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhBMSwgMHgzNCwgMHgwQSwgMHg0MSwgMHg5NCwgMHhBOCwgMHhGMiwgMHhCNyksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEY2LCAweEQ0LCAweEU0LCAweEYwLCAweDk3LCAweDQ1LCAweDZELCAweENBKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4OEYsIDB4MUYsIDB4NEQsIDB4NkQsIDB4RkUsIDB4QTAsIDB4QzQsIDB4ODQpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgxRCwgMHgyOCwgMHg1QywgMHg0MCwgMHhCQiwgMHg2NSwgMHhENCwgMHg0MiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDk4LCAweEE4LCAweDg3LCAweDM1LCAweDIwLCAweDNBLCAweDg5LCAweDQ0KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RDYsIDB4RkQsIDB4NEYsIDB4QUIsIDB4MkQsIDB4RDEsIDB4RDAsIDB4QzApLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg4NiwgMHhFOCwgMHgwMCwgMHhGQywgMHg2OSwgMHg1MiwgMHhGOCwgMHhENSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEUxLCAweDlBLCAweDk5LCAweEUxLCAweERDLCAweDlDLCAweDNGLCAweEQ5KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4OTksIDB4MDEsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDApLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3A1MjFyMV9UXzE1X1lbXSA9IHsKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MTIsIDB4MDgsIDB4OTgsIDB4RDksIDB4Q0EsIDB4NzMsIDB4RDUsIDB4QTkpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhCOSwgMHgyQywgMHhFMCwgMHhBNywgMHgzRSwgMHg5MSwgMHhENywgMHg4NyksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDY4LCAweDA0LCAweEIwLCAweDU0LCAweDA5LCAweEY0LCAweDcyLCAweEI3KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QzgsIDB4RUUsIDB4MjgsIDB4Q0MsIDB4RTgsIDB4NTAsIDB4NzgsIDB4MjApLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgwRCwgMHg5MSwgMHgwMywgMHg3NiwgMHhEQiwgMHg2OCwgMHgyNCwgMHg3NyksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDdBLCAweEUwLCAweDU2LCAweEIyLCAweDVELCAweDEyLCAweEQzLCAweEI1KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MEQsIDB4NDIsIDB4NTksIDB4OEIsIDB4REYsIDB4NjcsIDB4QjUsIDB4QkUpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhEMSwgMHhDQywgMHhFNSwgMHgzMSwgMHg1MywgMHg3QSwgMHg0NiwgMHhCMyksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweERBLCAweDAxLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwKSwKLX07Ci1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwNTIxcjFfVF8xNl9YW10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweENDLCAweDhELCAweDU5LCAweEI1LCAweDFCLCAweDBGLCAweEY0LCAweEFGKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RDksIDB4MkYsIDB4RDEsIDB4MkMsIDB4RTAsIDB4RDgsIDB4MDQsIDB4RUYpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhBQywgMHhGNCwgMHhENywgMHhCQSwgMHhCMCwgMHhBMywgMHg3RSwgMHhDOSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweENELCAweDA4LCAweDUxLCAweDU2LCAweEE2LCAweDc2LCAweDY3LCAweDMzKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4OEMsIDB4MTcsIDB4NjMsIDB4RkUsIDB4NTYsIDB4RDAsIDB4RDksIDB4NzEpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhBQSwgMHhGNiwgMHhDMywgMHgxNCwgMHg0NywgMHhDNSwgMHhBNywgMHgzMSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDcyLCAweDRDLCAweDgwLCAweEY2LCAweEEyLCAweDU3LCAweEE3LCAweDVEKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MTEsIDB4QjMsIDB4N0IsIDB4RjgsIDB4MkYsIDB4RTEsIDB4M0UsIDB4N0IpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhGQSwgMHgwMSwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDUyMXIxX1RfMTZfWVtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgyNiwgMHhGNCwgMHhGOSwgMHg2QiwgMHg3QiwgMHg5MCwgMHhERiwgMHgzMCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDFGLCAweDgyLCAweEVGLCAweDYyLCAweEExLCAweDRDLCAweDUzLCAweENBKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RTYsIDB4OTksIDB4NzYsIDB4MDEsIDB4QkEsIDB4OEQsIDB4MEYsIDB4NTQpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhBRiwgMHhGNCwgMHg1OCwgMHg3MywgMHg1NiwgMHhGRSwgMHhERCwgMHg3QyksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEY2LCAweENFLCAweEY5LCAweEU4LCAweEExLCAweDM0LCAweEMzLCAweDVCKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MDksIDB4NUYsIDB4REMsIDB4NkEsIDB4M0QsIDB4RDgsIDB4N0YsIDB4NDIpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhDMiwgMHhGNCwgMHg1MSwgMHhCOCwgMHhCOCwgMHhDMSwgMHhENywgMHgyRiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEFFLCAweDdELCAweDU4LCAweEQxLCAweEQ0LCAweDFCLCAweDRELCAweDIzKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RDMsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDApLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3A1MjFyMV9UXzE3X1hbXSA9IHsKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QjksIDB4OTUsIDB4REYsIDB4MDAsIDB4RDgsIDB4MjEsIDB4REUsIDB4OTQpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhGNywgMHg0NywgMHgzQywgMHhDMywgMHhCMiwgMHgwMSwgMHg1MywgMHg1RCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDFFLCAweDE3LCAweDQzLCAweDIzLCAweEJELCAweENBLCAweDcxLCAweEYyKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NzAsIDB4QkEsIDB4MEYsIDB4NEYsIDB4REMsIDB4NDEsIDB4NTQsIDB4QkUpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhENiwgMHgzOSwgMHgyNiwgMHg3MCwgMHg1MywgMHgzMiwgMHgxOCwgMHgxMSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDMyLCAweDQ2LCAweDA3LCAweDk3LCAweDNBLCAweDU3LCAweEUwLCAweDAxKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RDYsIDB4OTIsIDB4NEYsIDB4Q0UsIDB4REYsIDB4MjUsIDB4ODAsIDB4MjYpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg1QiwgMHg2RiwgMHg5QSwgMHgwMywgMHgwNSwgMHg0QiwgMHhEMSwgMHg0NyksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDVELCAweDAxLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwKSwKLX07Ci1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwNTIxcjFfVF8xN19ZW10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDI1LCAweDAxLCAweDcyLCAweDMwLCAweDkwLCAweDE3LCAweDUxLCAweDIwKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NzQsIDB4RkIsIDB4NDEsIDB4NjUsIDB4NUMsIDB4QjQsIDB4MkQsIDB4RUUpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg2NiwgMHhDRCwgMHhDRCwgMHhBQSwgMHg0MSwgMHhDQywgMHhCQiwgMHgwNyksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEQ0LCAweENFLCAweDA4LCAweDBBLCAweDYzLCAweEU5LCAweEEyLCAweEZGKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4M0QsIDB4QTgsIDB4MjEsIDB4N0YsIDB4N0EsIDB4NUIsIDB4OUIsIDB4ODEpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgxMCwgMHg2QiwgMHg4OSwgMHg0NCwgMHgwQSwgMHg3RiwgMHg4NSwgMHg1RiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDdELCAweERFLCAweDdDLCAweDE5LCAweDVDLCAweDY1LCAweDI2LCAweDYxKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RDcsIDB4QUMsIDB4NjIsIDB4MjksIDB4NEEsIDB4RjEsIDB4RDAsIDB4ODEpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgzOCwgMHgwMSwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDUyMXIxX1RfMThfWFtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgzMiwgMHgwMCwgMHg0MCwgMHg4NywgMHhFQiwgMHhBOSwgMHg1OCwgMHg1NiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEFGLCAweDUxLCAweDBCLCAweEZGLCAweDU2LCAweDM1LCAweDUxLCAweEIzKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4N0IsIDB4QUMsIDB4MDgsIDB4OTQsIDB4NzEsIDB4REEsIDB4RUMsIDB4OTkpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg1RiwgMHg0RCwgMHhDNSwgMHg3QiwgMHgzMSwgMHg4QiwgMHg4RCwgMHg1RSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDE1LCAweDA1LCAweEYxLCAweDNFLCAweDlFLCAweDhGLCAweDE3LCAweDhGKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RjAsIDB4OUMsIDB4NEIsIDB4NjIsIDB4OTQsIDB4QUQsIDB4NDksIDB4RkMpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgwRiwgMHhDOSwgMHhDNiwgMHg4RiwgMHhGRCwgMHgzMywgMHg0NCwgMHgzNCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDVGLCAweDk2LCAweDE3LCAweDdGLCAweDQyLCAweEJFLCAweEY3LCAweDBEKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RDQsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDApLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3A1MjFyMV9UXzE4X1lbXSA9IHsKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RkIsIDB4MjksIDB4MzksIDB4MTMsIDB4MDgsIDB4OEQsIDB4OTEsIDB4NDcpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhGNiwgMHg3OSwgMHhGOSwgMHgyRiwgMHhBOSwgMHgwQSwgMHhDRiwgMHhENiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEFCLCAweDg3LCAweDdBLCAweEEzLCAweDE5LCAweEFCLCAweDU1LCAweEFEKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RTgsIDB4MEIsIDB4MDEsIDB4QzUsIDB4NTYsIDB4MTksIDB4OUQsIDB4OUUpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgxOSwgMHhERSwgMHg4MiwgMHgzQiwgMHhFQSwgMHhEMywgMHgwQiwgMHg4QyksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDY1LCAweDZCLCAweEM3LCAweEYzLCAweDBGLCAweDgyLCAweDg3LCAweDZDKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RDgsIDB4MkUsIDB4MjMsIDB4RjIsIDB4MzksIDB4OUQsIDB4NDksIDB4NzApLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgzMSwgMHhERSwgMHhBRiwgMHg3QSwgMHhFRSwgMHhCMCwgMHhEQSwgMHg3MCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDYzLCAweDAxLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwKSwKLX07Ci1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwNTIxcjFfVF8xOV9YW10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDc2LCAweDRFLCAweDJBLCAweDUwLCAweEZELCAweDhFLCAweEMwLCAweEVCKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NTIsIDB4MEYsIDB4N0MsIDB4NzYsIDB4NjMsIDB4RDgsIDB4ODksIDB4NDUpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhFQywgMHgyRCwgMHhCOSwgMHg0RSwgMHhGNCwgMHhFRSwgMHg4NSwgMHhDRiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEMxLCAweDk1LCAweDVDLCAweDk2LCAweDVELCAweEFBLCAweDU5LCAweDBCKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4Q0EsIDB4REIsIDB4RDIsIDB4NjgsIDB4OEUsIDB4NUEsIDB4OTQsIDB4NjApLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhEOSwgMHgwMiwgMHhCRiwgMHg3NywgMHg5RiwgMHhCOSwgMHg0QywgMHhDOSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDJELCAweERDLCAweEMwLCAweENGLCAweDgxLCAweDFFLCAweEM0LCAweDZDKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MkIsIDB4Q0MsIDB4MzcsIDB4ODYsIDB4REMsIDB4RTIsIDB4NjQsIDB4NzIpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhENSwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDUyMXIxX1RfMTlfWVtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgyQywgMHgzMCwgMHhCMSwgMHg1OSwgMHgyMCwgMHg5RCwgMHg5OCwgMHgyOCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDc3LCAweDBDLCAweDlELCAweEY4LCAweDIwLCAweERDLCAweDkwLCAweEJBKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QjEsIDB4QTAsIDB4RjQsIDB4RTcsIDB4M0UsIDB4OUMsIDB4OUUsIDB4QTIpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhCNSwgMHgyNSwgMHhBMiwgMHhCMCwgMHg1NCwgMHhDRCwgMHgyRSwgMHgzMyksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEVBLCAweEQ5LCAweDQyLCAweEIwLCAweDgwLCAweEIwLCAweEEzLCAweDM4KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4OUYsIDB4RkUsIDB4OUQsIDB4OEQsIDB4NDAsIDB4RkYsIDB4MjcsIDB4NkQpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgzQSwgMHg5RCwgMHhBNiwgMHg4OCwgMHgzQSwgMHg4QiwgMHg2RiwgMHgxNCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEI2LCAweDM5LCAweEVFLCAweDFGLCAweDNGLCAweEIxLCAweDRGLCAweDYzKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MzEsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDApLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3A1MjFyMV9UXzIwX1hbXSA9IHsKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NkQsIDB4RDcsIDB4OUUsIDB4RkYsIDB4RDIsIDB4MzUsIDB4NjcsIDB4MDMpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhDQSwgMHg0RiwgMHgxNSwgMHg1RCwgMHhFMywgMHhFOCwgMHg1MywgMHg4NiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDkyLCAweEY3LCAweDI0LCAweDk4LCAweEEyLCAweENCLCAweDExLCAweDY4KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MDYsIDB4MkUsIDB4MjUsIDB4RTEsIDB4OTQsIDB4QzUsIDB4QTMsIDB4OTYpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhFMCwgMHg4MiwgMHg2RSwgMHhCQSwgMHhFNywgMHg0MywgMHgyNSwgMHhCMCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDE4LCAweDY1LCAweEI0LCAweDQ5LCAweDczLCAweDE4LCAweDM1LCAweDU0KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NTksIDB4NUIsIDB4QkMsIDB4NjIsIDB4ODYsIDB4NEMsIDB4QzEsIDB4QjcpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg5QiwgMHhGMiwgMHg5NSwgMHhBMiwgMHhCQiwgMHhBMiwgMHgzNSwgMHg2NSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEJGLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwKSwKLX07Ci1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwNTIxcjFfVF8yMF9ZW10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDcyLCAweDU5LCAweDYyLCAweEIwLCAweDRCLCAweDFFLCAweEI0LCAweEQ4KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MEQsIDB4NTUsIDB4Q0UsIDB4QjAsIDB4NjksIDB4QkEsIDB4NjMsIDB4MTApLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg2RSwgMHg2OSwgMHg4NiwgMHhEQiwgMHgzNCwgMHg3RCwgMHg2OCwgMHg2NCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweERBLCAweDA2LCAweENBLCAweDU1LCAweDQ0LCAweDM2LCAweDJCLCAweEJBKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NkMsIDB4RDQsIDB4QzQsIDB4M0QsIDB4Q0QsIDB4OUUsIDB4NjksIDB4QTQpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgzRiwgMHg0NCwgMHhFNCwgMHhCRiwgMHgzMSwgMHhFNiwgMHg0MCwgMHg5RiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDdFLCAweDRGLCAweEZBLCAweDc1LCAweEUzLCAweEZCLCAweDk3LCAweDBFKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MDgsIDB4QzAsIDB4QkQsIDB4MUMsIDB4NDgsIDB4QjAsIDB4MjYsIDB4RDApLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhEMiwgMHgwMSwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDUyMXIxX1RfMjFfWFtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgxQywgMHg3QiwgMHgzMiwgMHhGQSwgMHhGMiwgMHg2RCwgMHg4NCwgMHg4RSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEEwLCAweDIxLCAweDAzLCAweDFELCAweDBELCAweDIyLCAweDU1LCAweDY3KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MTgsIDB4RjksIDB4NDIsIDB4MDMsIDB4OUMsIDB4QzIsIDB4Q0IsIDB4QkEpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhGOCwgMHhBMSwgMHg5NiwgMHhEOSwgMHg5RCwgMHgxMSwgMHg2RiwgMHhCRSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEZGLCAweDQwLCAweDU3LCAweEVCLCAweDQwLCAweDJELCAweEMwLCAweDExKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MkYsIDB4OTYsIDB4QkIsIDB4NEYsIDB4MkYsIDB4MjMsIDB4QTgsIDB4MjgpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgzQSwgMHgyOSwgMHg4NSwgMHgyMSwgMHhBNSwgMHg1MCwgMHg2MiwgMHgwNiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEM5LCAweDdELCAweDkyLCAweENGLCAweDg3LCAweDBDLCAweDIyLCAweEY5KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QzksIDB4MDEsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDApLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3A1MjFyMV9UXzIxX1lbXSA9IHsKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NUEsIDB4MEUsIDB4QTUsIDB4MzIsIDB4NUIsIDB4REYsIDB4OUMsIDB4RDUpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgyNywgMHg5NiwgMHgzNywgMHgyQywgMHg4OCwgMHgzNSwgMHgzMCwgMHhBMSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDQwLCAweEI0LCAweDY5LCAweEZGLCAweEVCLCAweEM2LCAweDk0LCAweDA4KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QzksIDB4NTUsIDB4NjAsIDB4QUQsIDB4QUEsIDB4NTgsIDB4MTQsIDB4ODgpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgzQywgMHhGRiwgMHhGMiwgMHhCMiwgMHhENSwgMHhBNywgMHhEOSwgMHgyNyksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDJELCAweEFFLCAweDU0LCAweEQyLCAweDYwLCAweDMxLCAweEYzLCAweDE1KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QkIsIDB4OTIsIDB4ODMsIDB4RTMsIDB4RjEsIDB4NDIsIDB4ODMsIDB4NkUpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg0OSwgMHhEMiwgMHhDOCwgMHhCNywgMHg3NiwgMHg0NSwgMHg3RiwgMHg3RCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDA0LCAweDAxLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwKSwKLX07Ci1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwNTIxcjFfVF8yMl9YW10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDRBLCAweDExLCAweEE0LCAweEZCLCAweDdBLCAweDAxLCAweEJDLCAweEM4KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4Q0QsIDB4MjcsIDB4NzMsIDB4OEQsIDB4MDIsIDB4OTEsIDB4MjcsIDB4OEUpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhBNCwgMHg2MiwgMHhGNiwgMHhERCwgMHg2QiwgMHhGQSwgMHg1QiwgMHhCOSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEVGLCAweENBLCAweEEyLCAweDQ0LCAweDJDLCAweEYwLCAweDI4LCAweEQ4KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4M0MsIDB4RjEsIDB4N0EsIDB4QTIsIDB4NDIsIDB4NEMsIDB4NTAsIDB4QzYpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgyRCwgMHg4MywgMHgzRSwgMHg1MCwgMHhBQiwgMHg5QywgMHhGNywgMHg2NyksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDFELCAweEVELCAweDc4LCAweENCLCAweDc2LCAweDY5LCAweERBLCAweDQyKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4REIsIDB4MDEsIDB4MUUsIDB4NDMsIDB4MjcsIDB4NDcsIDB4NkUsIDB4REEpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg5NCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDUyMXIxX1RfMjJfWVtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhEMywgMHg0RiwgMHg1NCwgMHhCOSwgMHgzRSwgMHhCRCwgMHhENSwgMHg0NCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEM5LCAweDM1LCAweDQwLCAweDY5LCAweDdGLCAweDc0LCAweDlELCAweDMyKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NUEsIDB4MDYsIDB4NkYsIDB4NjcsIDB4NjgsIDB4MkIsIDB4NEQsIDB4MTApLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhDNiwgMHg2NSwgMHg0MSwgMHhGQywgMHg3QywgMHgxRSwgMHhFOCwgMHhDOCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEYyLCAweDc5LCAweDM3LCAweEFGLCAweEZELCAweEQyLCAweERBLCAweDRDKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MzMsIDB4QTgsIDB4NjksIDB4NTYsIDB4NjIsIDB4QTQsIDB4RTQsIDB4QTMpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg0MiwgMHg3MSwgMHg3MywgMHgyMSwgMHg4QSwgMHgxNywgMHg4MSwgMHhBMiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDE0LCAweDU1LCAweDhGLCAweDdCLCAweEI4LCAweEFGLCAweEY3LCAweDg2KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QUEsIDB4MDEsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDApLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3A1MjFyMV9UXzIzX1hbXSA9IHsKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NEIsIDB4RDEsIDB4QkQsIDB4QkUsIDB4OEMsIDB4QkMsIDB4NjAsIDB4NkUpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg2MiwgMHhBNiwgMHg1NywgMHg4QywgMHhBRSwgMHg1QywgMHgxOSwgMHhGRSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDdBLCAweDQzLCAweEU0LCAweEQ5LCAweEQ4LCAweDdCLCAweEU3LCAweDQxKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RUQsIDB4QjksIDB4RTQsIDB4ODUsIDB4N0MsIDB4MkUsIDB4RkMsIDB4MjApLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgwMiwgMHgyRSwgMHgwMSwgMHgyQSwgMHg2RCwgMHg1NiwgMHhCRSwgMHg5NyksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDZBLCAweDBDLCAweDI1LCAweDlCLCAweEFFLCAweDg2LCAweDM3LCAweDQzKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NEEsIDB4MjIsIDB4QjMsIDB4Q0IsIDB4OTksIDB4NjYsIDB4QjcsIDB4OUUpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg1NiwgMHhGNywgMHg5MCwgMHhGMCwgMHgxQiwgMHgwOSwgMHgyNywgMHhGNyksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEM4LCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwKSwKLX07Ci1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwNTIxcjFfVF8yM19ZW10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDFDLCAweDE2LCAweDA4LCAweEVGLCAweDM5LCAweDY0LCAweDQ5LCAweDMxKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MDgsIDB4QTAsIDB4RTMsIDB4OTcsIDB4QTksIDB4MDcsIDB4NTQsIDB4MjYpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhDRCwgMHhGRiwgMHhFMiwgMHgwMCwgMHgwNywgMHgyMSwgMHg4OCwgMHgyMCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDE2LCAweEZELCAweDU5LCAweDUzLCAweDA1LCAweDZDLCAweDQyLCAweDI3KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4OEYsIDB4RjcsIDB4MzksIDB4NUMsIDB4ODIsIDB4MzYsIDB4RTgsIDB4MDMpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgyRSwgMHg4MywgMHhBOCwgMHhFMiwgMHhBOCwgMHg0MywgMHgwNywgMHgzOCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEU2LCAweEFGLCAweDJCLCAweDc5LCAweEVELCAweEQ4LCAweDM5LCAweDg3KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MTUsIDB4MjAsIDB4OTEsIDB4N0EsIDB4QzQsIDB4MDcsIDB4RUYsIDB4NkMpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgyOCwgMHgwMSwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDUyMXIxX1RfMjRfWFtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg2QSwgMHgxMCwgMHgyRiwgMHhBQSwgMHgwQywgMHg5NCwgMHgwRSwgMHg1QSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEI3LCAweDgxLCAweDg3LCAweDQxLCAweDIzLCAweEVCLCAweDU1LCAweDdDKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QjgsIDB4NTMsIDB4Q0MsIDB4NzksIDB4QjYsIDB4RUIsIDB4NkMsIDB4Q0MpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhGNCwgMHg3NywgMHg3MywgMHg5RCwgMHhGQywgMHg2NCwgMHg2RiwgMHg3RiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDNDLCAweDQwLCAweEUzLCAweDZELCAweDFDLCAweDE2LCAweDcxLCAweDE1KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NUEsIDB4RjQsIDB4MUIsIDB4RkYsIDB4MUMsIDB4MkYsIDB4QTUsIDB4RDcpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgwNiwgMHgwRSwgMHgwQiwgMHgxMSwgMHhGNCwgMHg4RCwgMHg5MywgMHhBRiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDU4LCAweEM1LCAweDY0LCAweDZGLCAweDI0LCAweDE5LCAweEYyLCAweDlCKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MUMsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDApLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3A1MjFyMV9UXzI0X1lbXSA9IHsKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NTIsIDB4QjMsIDB4QUYsIDB4QTUsIDB4MEUsIDB4NEYsIDB4NUUsIDB4RTEpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgwRiwgMHg3NywgMHhDQSwgMHhGMiwgMHg2RCwgMHhDNSwgMHhGNiwgMHg5RiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDkwLCAweDE4LCAweDhFLCAweDMzLCAweDY4LCAweDZDLCAweEU4LCAweEUwKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RkMsIDB4OEIsIDB4ODAsIDB4OTAsIDB4MTksIDB4N0YsIDB4OTAsIDB4OTYpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg1QiwgMHg4MCwgMHg2QiwgMHg2OCwgMHhFMiwgMHg3RCwgMHhENCwgMHhEMCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDJBLCAweEMxLCAweDY3LCAweEIzLCAweDcyLCAweENCLCAweEJGLCAweDJGKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NEYsIDB4RDUsIDB4RDMsIDB4MUQsIDB4MTQsIDB4NTgsIDB4MEEsIDB4ODApLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg3OSwgMHg3QSwgMHg2NSwgMHg5OCwgMHhCMywgMHgwNywgMHg0QiwgMHgyRiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEYzLCAweDAxLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwKSwKLX07Ci1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwNTIxcjFfVF8yNV9YW10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDJBLCAweDg3LCAweDBGLCAweDVGLCAweENGLCAweEEyLCAweDAxLCAweDA4KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MEMsIDB4QzksIDB4QzgsIDB4NkUsIDB4MzUsIDB4ODcsIDB4QTUsIDB4NjcpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg5NCwgMHgzRSwgMHg5MSwgMHhBMCwgMHhBQiwgMHgyNCwgMHgxRSwgMHhGMiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEI5LCAweEJDLCAweDAyLCAweDM1LCAweDcwLCAweEMxLCAweDVGLCAweDk4KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MjYsIDB4NTksIDB4QTAsIDB4NTAsIDB4MDQsIDB4ODAsIDB4NTIsIDB4ODUpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhGOCwgMHg1NiwgMHg2RSwgMHg0MiwgMHg4RiwgMHg4QywgMHg5MSwgMHg2NSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEFDLCAweEEyLCAweENCLCAweEE1LCAweERFLCAweDE0LCAweDI0LCAweDM4KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MDAsIDB4Q0IsIDB4NzQsIDB4MjgsIDB4RTYsIDB4QTcsIDB4RTcsIDB4QzMpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg1RiwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDUyMXIxX1RfMjVfWVtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgzNSwgMHg3MywgMHhBOCwgMHg4RiwgMHg5RSwgMHgwRSwgMHg2MywgMHg5NiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEM4LCAweDFCLCAweDc3LCAweEM3LCAweEMxLCAweDM4LCAweEY5LCAweERDKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RDgsIDB4M0MsIDB4Q0YsIDB4QTgsIDB4N0EsIDB4RDcsIDB4RjMsIDB4QzQpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhERCwgMHg1RiwgMHg5QSwgMHhDOSwgMHhBRCwgMHhFOSwgMHgxQSwgMHg5MyksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEZDLCAweENGLCAweDJCLCAweDVFLCAweEQ1LCAweDgxLCAweDk1LCAweEE4KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MTksIDB4ODgsIDB4NzUsIDB4MjksIDB4MUYsIDB4QzcsIDB4QzcsIDB4RDApLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhEOCwgMHhBOSwgMHg1QSwgMHg0RCwgMHg2MywgMHg5NSwgMHhGOSwgMHg0RSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEVCLCAweENELCAweDA0LCAweDhGLCAweENELCAweDkxLCAweERFLCAweEM2KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NzEsIDB4MDEsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDApLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3A1MjFyMV9UXzI2X1hbXSA9IHsKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4ODgsIDB4RDQsIDB4RkQsIDB4MjUsIDB4MTEsIDB4OTksIDB4NkUsIDB4RUEpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhCMCwgMHg4MywgMHgwMSwgMHgzRCwgMHhGQiwgMHg1NiwgMHhBNSwgMHg0RSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEMyLCAweDNBLCAweERDLCAweDc0LCAweEMyLCAweEQ3LCAweENGLCAweEU4KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4OEYsIDB4QkQsIDB4RjEsIDB4REQsIDB4QTMsIDB4MDcsIDB4MDMsIDB4RTIpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg3QiwgMHhCRSwgMHhFOSwgMHgyRSwgMHg1OCwgMHg4NCwgMHg2NiwgMHhGQyksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDcxLCAweDIwLCAweDc4LCAweDM3LCAweDc5LCAweDBCLCAweEE2LCAweDY0KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RTMsIDB4RjIsIDB4QUMsIDB4NjUsIDB4QzgsIDB4QzksIDB4MkYsIDB4NjEpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgyNiwgMHg5MywgMHhFNSwgMHgwRCwgMHgwQywgMHhDNiwgMHhCOCwgMHhDQiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDlDLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwKSwKLX07Ci1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwNTIxcjFfVF8yNl9ZW10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDY5LCAweEFELCAweDVDLCAweDE5LCAweDEyLCAweDYxLCAweDBFLCAweDI1KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MzksIDB4NEYsIDB4MEIsIDB4MUYsIDB4NDksIDB4N0UsIDB4Q0QsIDB4ODEpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg0NiwgMHgyRSwgMHgzMCwgMHg2MSwgMHhEQiwgMHgwOCwgMHg2OCwgMHg5QiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDQxLCAweDc4LCAweEFGLCAweEIzLCAweDA4LCAweEMxLCAweDY5LCAweEU1KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QzQsIDB4NUYsIDB4NUQsIDB4QzEsIDB4NTcsIDB4NkYsIDB4RDgsIDB4MzQpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgzOCwgMHhEMywgMHg2QSwgMHhGNywgMHhGRCwgMHg4NiwgMHhFNSwgMHhCMyksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEE4LCAweDYzLCAweEJELCAweDcwLCAweDdCLCAweDQ3LCAweEU4LCAweDZEKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MTgsIDB4NjIsIDB4QzgsIDB4N0UsIDB4OUQsIDB4MTEsIDB4MkIsIDB4QTUpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhCNiwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDUyMXIxX1RfMjdfWFtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhFMiwgMHg4NCwgMHhGRCwgMHhENSwgMHg5QSwgMHg1NiwgMHg3RiwgMHg1QyksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDdDLCAweEJCLCAweEE0LCAweDZGLCAweDEyLCAweDZFLCAweDRELCAweEY4KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MUQsIDB4MDgsIDB4QTEsIDB4ODIsIDB4OUMsIDB4NjIsIDB4NzQsIDB4N0IpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg5RSwgMHg1OCwgMHgyMiwgMHgwNSwgMHgxRCwgMHgxNSwgMHgzNSwgMHg3OSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDlBLCAweDg4LCAweENGLCAweDVDLCAweDA1LCAweDc4LCAweEZCLCAweDk0KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QUMsIDB4NkIsIDB4MkYsIDB4NzksIDB4MDksIDB4NzMsIDB4NjcsIDB4RUMpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhEOCwgMHhBMCwgMHg4MCwgMHhEOCwgMHhFOCwgMHhFQywgMHhGQiwgMHg0MiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEY1LCAweEU3LCAweDBCLCAweEI3LCAweDgxLCAweDQ4LCAweDdCLCAweEQ5KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RTMsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDApLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3A1MjFyMV9UXzI3X1lbXSA9IHsKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RTgsIDB4NTMsIDB4QTksIDB4RUQsIDB4NjEsIDB4OTIsIDB4RDcsIDB4ODUpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgyNiwgMHg0OSwgMHhEOSwgMHg1RCwgMHg5QiwgMHg0RSwgMHg4OSwgMHgzNSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEI4LCAweDEyLCAweEVCLCAweDlBLCAweEM5LCAweENCLCAweEMxLCAweDk1KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MzUsIDB4REMsIDB4OTUsIDB4MTYsIDB4RkUsIDB4MjksIDB4NzAsIDB4MDEpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg2NCwgMHgzMywgMHhCMSwgMHhENiwgMHg3OCwgMHhCOSwgMHhFMiwgMHgzNiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDM0LCAweENFLCAweDg4LCAweEMzLCAweEZELCAweDdBLCAweDZCLCAweEI4KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NDAsIDB4MUUsIDB4NTAsIDB4MUUsIDB4QUYsIDB4QjEsIDB4MjUsIDB4MkQpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhDMSwgMHhFNywgMHhENywgMHhENSwgMHhCRCwgMHg3QSwgMHgxMiwgMHhGOSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDMxLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwKSwKLX07Ci1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwNTIxcjFfVF8yOF9YW10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDIyLCAweEFBLCAweEEyLCAweDgwLCAweDVELCAweDhGLCAweENELCAweEM4KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NDgsIDB4MzksIDB4NzksIDB4NjQsIDB4QTEsIDB4NjcsIDB4M0MsIDB4QjcpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgzRCwgMHhDNywgMHg0OSwgMHhGRiwgMHg3RiwgMHhBQywgMHhBQiwgMHg1NSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDgxLCAweDU0LCAweDNFLCAweDgzLCAweEYwLCAweDNELCAweEJDLCAweEI1KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4ODcsIDB4OTIsIDB4NEEsIDB4MzgsIDB4NDIsIDB4OEEsIDB4QUIsIDB4RjYpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhFNywgMHgwQiwgMHg0RiwgMHhFRSwgMHg5RSwgMHg5MiwgMHhBNSwgMHhCRSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEJBLCAweERELCAweDE5LCAweDk2LCAweEYyLCAweEYwLCAweDZCLCAweDJFKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QkUsIDB4RkMsIDB4REQsIDB4QjIsIDB4OEEsIDB4RTUsIDB4NEMsIDB4MjIpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhENCwgMHgwMSwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDUyMXIxX1RfMjhfWVtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhCNywgMHgwNiwgMHg0OSwgMHhBQywgMHg5OSwgMHg3RSwgMHhGOCwgMHgxMiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDc2LCAweEM4LCAweDAxLCAweDUxLCAweEVBLCAweEY2LCAweDUyLCAweEU3KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NDMsIDB4ODksIDB4NjYsIDB4MkIsIDB4MUYsIDB4OUIsIDB4MkEsIDB4QTMpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhERiwgMHgwRiwgMHg5NSwgMHgwNywgMHgyQiwgMHg2QywgMHg2RSwgMHg5RSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDI0LCAweEMzLCAweEI0LCAweEJCLCAweDkxLCAweDFGLCAweEEzLCAweDcyKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NUYsIDB4NkUsIDB4NTQsIDB4MjgsIDB4N0IsIDB4OUMsIDB4NzksIDB4MkUpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgwMywgMHg0NSwgMHhGRiwgMHhBNiwgMHhEQSwgMHhBMiwgMHg4MywgMHg3MSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEVCLCAweERFLCAweDhGLCAweDE3LCAweDM3LCAweDgyLCAweENCLCAweEUyKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MzAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDApLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3A1MjFyMV9UXzI5X1hbXSA9IHsKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RDgsIDB4OTQsIDB4M0YsIDB4MjYsIDB4QzksIDB4MUQsIDB4RDksIDB4QUUpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgwOSwgMHg5NywgMHgyOCwgMHgyMCwgMHhDRCwgMHhDMSwgMHhGMywgMHg0MCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDk1LCAweEM5LCAweEI1LCAweDYwLCAweDlCLCAweDFFLCAweERDLCAweDc0KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NUIsIDB4QjksIDB4NUIsIDB4N0QsIDB4QTAsIDB4QjIsIDB4OEMsIDB4RjApLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgzMywgMHhEMSwgMHg0MiwgMHhFNiwgMHgzOSwgMHgzMywgMHg2RCwgMHhCQiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDVELCAweEMwLCAweEZDLCAweEQyLCAweDE0LCAweDVELCAweDNFLCAweDNDKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NzgsIDB4NEEsIDB4M0UsIDB4NDAsIDB4MTYsIDB4OTMsIDB4MTUsIDB4Q0YpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhGQSwgMHgyNCwgMHhDMSwgMHgyNywgMHgyNywgMHhFNSwgMHg0QiwgMHhEOCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEQ0LCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwKSwKLX07Ci1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwNTIxcjFfVF8yOV9ZW10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDFELCAweDUwLCAweEQ4LCAweEJDLCAweEMxLCAweDQ2LCAweDIyLCAweEJCKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QUQsIDB4MEUsIDB4NjAsIDB4QTEsIDB4QjMsIDB4NTAsIDB4RDQsIDB4ODYpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg4MCwgMHhCMSwgMHgyNiwgMHhCNiwgMHg2RCwgMHg0NywgMHg1QSwgMHg2RiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDQ1LCAweEFDLCAweDExLCAweDM1LCAweDNFLCAweEI5LCAweEY0LCAweDAxKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NTgsIDB4OTcsIDB4RkEsIDB4QkIsIDB4NkIsIDB4MzksIDB4MTMsIDB4RDgpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgxNSwgMHg3QiwgMHgzNCwgMHgxMiwgMHg3NSwgMHg4RSwgMHg5QiwgMHhDNiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDJDLCAweDlFLCAweENELCAweDI5LCAweEI2LCAweEVGLCAweDhELCAweDEwKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NDcsIDB4QUMsIDB4RTksIDB4MjUsIDB4MjcsIDB4QkIsIDB4NzgsIDB4NDcpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgyRiwgMHgwMSwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDUyMXIxX1RfMzBfWFtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgzMCwgMHg3QSwgMHhBOCwgMHhEMywgMHhFMywgMHg2NiwgMHhFNSwgMHg2NiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDJGLCAweDRDLCAweEM0LCAweDJDLCAweDc2LCAweDgxLCAweDUwLCAweDMyKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RUUsIDB4NzEsIDB4MDgsIDB4QjgsIDB4NTIsIDB4N0MsIDB4QUYsIDB4REMpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg0NSwgMHg1OSwgMHgyNCwgMHhERCwgMHhGQiwgMHgyRiwgMHhEMCwgMHhEQSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEI3LCAweENELCAweDU2LCAweEU5LCAweEFDLCAweDkxLCAweEU2LCAweEI5KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RTUsIDB4NjQsIDB4MjAsIDB4QzYsIDB4OUYsIDB4RTQsIDB4RUYsIDB4REYpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg2RCwgMHgyQywgMHg4RiwgMHg4QywgMHg5NywgMHhGNiwgMHgyMiwgMHhDMyksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEFDLCAweEY0LCAweDg4LCAweEFBLCAweEE4LCAweEQ3LCAweEE1LCAweDY4KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4REUsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDApLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3A1MjFyMV9UXzMwX1lbXSA9IHsKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MjEsIDB4NkMsIDB4QUUsIDB4ODMsIDB4QjEsIDB4NTUsIDB4NTUsIDB4RUUpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhCMCwgMHg2NywgMHg4NCwgMHg0NywgMHg3QywgMHg4MywgMHg1QywgMHg4OSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDVCLCAweDEwLCAweDRELCAweERELCAweDMwLCAweDYwLCAweEIwLCAweEU2KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NTksIDB4QTcsIDB4MzYsIDB4NzYsIDB4MjQsIDB4MzIsIDB4OUYsIDB4OUQpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhERCwgMHg0MiwgMHg4MSwgMHhGQiwgMHhBNCwgMHgyRSwgMHgxMywgMHg2OCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDg3LCAweDk0LCAweDkxLCAweEZGLCAweDk5LCAweEEwLCAweDA5LCAweDYxKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NUQsIDB4ODMsIDB4QTEsIDB4NzYsIDB4QUYsIDB4MzcsIDB4NUMsIDB4NzcpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgxRSwgMHhBOCwgMHgwNCwgMHg4NiwgMHhDNCwgMHhBOSwgMHg3OSwgMHg0MiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDkzLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwKSwKLX07Ci1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwNTIxcjFfVF8zMV9YW10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEI2LCAweDhDLCAweEMyLCAweDM0LCAweEZCLCAweDgzLCAweDI4LCAweDI3KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QTQsIDB4MDMsIDB4N0QsIDB4NUUsIDB4OUUsIDB4MEUsIDB4QjAsIDB4MjIpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhBMiwgMHgwMiwgMHg0NiwgMHg3RiwgMHhCOSwgMHhBQywgMHhCQiwgMHgyMyksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDA2LCAweEVELCAweDQ4LCAweEMyLCAweDk2LCAweDRELCAweDU2LCAweDI3KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NDQsIDB4QjUsIDB4QzUsIDB4RDEsIDB4RTYsIDB4MUMsIDB4N0UsIDB4OUIpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg5MiwgMHgyRSwgMHgxOCwgMHg3MSwgMHgyRCwgMHg3QiwgMHhENywgMHhCMyksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEFCLCAweDQ2LCAweDlELCAweERFLCAweEFBLCAweDc4LCAweDhFLCAweEIxKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NEQsIDB4RDcsIDB4NjksIDB4MkUsIDB4RTEsIDB4RDksIDB4NDgsIDB4REUpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhGQiwgMHgwMSwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDUyMXIxX1RfMzFfWVtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhBRiwgMHhGRiwgMHg5RSwgMHgwOSwgMHgyMiwgMHgyMiwgMHhFNiwgMHg4RCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDZDLCAweDE0LCAweDI4LCAweDEzLCAweDFCLCAweDYyLCAweDEyLCAweDIyKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4Q0MsIDB4N0YsIDB4NjcsIDB4MDMsIDB4QjAsIDB4QzAsIDB4RjMsIDB4MDUpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhDMCwgMHhDMywgMHgwRiwgMHhGQiwgMHgyNSwgMHg0OCwgMHgzRSwgMHhGNCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDBCLCAweDZFLCAweDUzLCAweDk4LCAweDM2LCAweEIzLCAweEQzLCAweDk0KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RUIsIDB4ODEsIDB4NTQsIDB4MjIsIDB4QTQsIDB4Q0MsIDB4QzEsIDB4MjIpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhGNSwgMHhCQSwgMHhGQywgMHhBOSwgMHhERiwgMHg2OCwgMHg4NiwgMHgyQiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDcxLCAweDkyLCAweDBFLCAweEMzLCAweEYyLCAweDU4LCAweEU4LCAweDUxKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RTksIDB4MDEsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDApLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX2VjcF9wb2ludCBzZWNwNTIxcjFfVFszMl0gPSB7Ci0gICAgRUNQX1BPSU5UX0lOSVRfWFlfWjEoc2VjcDUyMXIxX1RfMF9YLCBzZWNwNTIxcjFfVF8wX1kpLAotICAgIEVDUF9QT0lOVF9JTklUX1hZX1owKHNlY3A1MjFyMV9UXzFfWCwgc2VjcDUyMXIxX1RfMV9ZKSwKLSAgICBFQ1BfUE9JTlRfSU5JVF9YWV9aMChzZWNwNTIxcjFfVF8yX1gsIHNlY3A1MjFyMV9UXzJfWSksCi0gICAgRUNQX1BPSU5UX0lOSVRfWFlfWjAoc2VjcDUyMXIxX1RfM19YLCBzZWNwNTIxcjFfVF8zX1kpLAotICAgIEVDUF9QT0lOVF9JTklUX1hZX1owKHNlY3A1MjFyMV9UXzRfWCwgc2VjcDUyMXIxX1RfNF9ZKSwKLSAgICBFQ1BfUE9JTlRfSU5JVF9YWV9aMChzZWNwNTIxcjFfVF81X1gsIHNlY3A1MjFyMV9UXzVfWSksCi0gICAgRUNQX1BPSU5UX0lOSVRfWFlfWjAoc2VjcDUyMXIxX1RfNl9YLCBzZWNwNTIxcjFfVF82X1kpLAotICAgIEVDUF9QT0lOVF9JTklUX1hZX1owKHNlY3A1MjFyMV9UXzdfWCwgc2VjcDUyMXIxX1RfN19ZKSwKLSAgICBFQ1BfUE9JTlRfSU5JVF9YWV9aMChzZWNwNTIxcjFfVF84X1gsIHNlY3A1MjFyMV9UXzhfWSksCi0gICAgRUNQX1BPSU5UX0lOSVRfWFlfWjAoc2VjcDUyMXIxX1RfOV9YLCBzZWNwNTIxcjFfVF85X1kpLAotICAgIEVDUF9QT0lOVF9JTklUX1hZX1owKHNlY3A1MjFyMV9UXzEwX1gsIHNlY3A1MjFyMV9UXzEwX1kpLAotICAgIEVDUF9QT0lOVF9JTklUX1hZX1owKHNlY3A1MjFyMV9UXzExX1gsIHNlY3A1MjFyMV9UXzExX1kpLAotICAgIEVDUF9QT0lOVF9JTklUX1hZX1owKHNlY3A1MjFyMV9UXzEyX1gsIHNlY3A1MjFyMV9UXzEyX1kpLAotICAgIEVDUF9QT0lOVF9JTklUX1hZX1owKHNlY3A1MjFyMV9UXzEzX1gsIHNlY3A1MjFyMV9UXzEzX1kpLAotICAgIEVDUF9QT0lOVF9JTklUX1hZX1owKHNlY3A1MjFyMV9UXzE0X1gsIHNlY3A1MjFyMV9UXzE0X1kpLAotICAgIEVDUF9QT0lOVF9JTklUX1hZX1owKHNlY3A1MjFyMV9UXzE1X1gsIHNlY3A1MjFyMV9UXzE1X1kpLAotICAgIEVDUF9QT0lOVF9JTklUX1hZX1owKHNlY3A1MjFyMV9UXzE2X1gsIHNlY3A1MjFyMV9UXzE2X1kpLAotICAgIEVDUF9QT0lOVF9JTklUX1hZX1owKHNlY3A1MjFyMV9UXzE3X1gsIHNlY3A1MjFyMV9UXzE3X1kpLAotICAgIEVDUF9QT0lOVF9JTklUX1hZX1owKHNlY3A1MjFyMV9UXzE4X1gsIHNlY3A1MjFyMV9UXzE4X1kpLAotICAgIEVDUF9QT0lOVF9JTklUX1hZX1owKHNlY3A1MjFyMV9UXzE5X1gsIHNlY3A1MjFyMV9UXzE5X1kpLAotICAgIEVDUF9QT0lOVF9JTklUX1hZX1owKHNlY3A1MjFyMV9UXzIwX1gsIHNlY3A1MjFyMV9UXzIwX1kpLAotICAgIEVDUF9QT0lOVF9JTklUX1hZX1owKHNlY3A1MjFyMV9UXzIxX1gsIHNlY3A1MjFyMV9UXzIxX1kpLAotICAgIEVDUF9QT0lOVF9JTklUX1hZX1owKHNlY3A1MjFyMV9UXzIyX1gsIHNlY3A1MjFyMV9UXzIyX1kpLAotICAgIEVDUF9QT0lOVF9JTklUX1hZX1owKHNlY3A1MjFyMV9UXzIzX1gsIHNlY3A1MjFyMV9UXzIzX1kpLAotICAgIEVDUF9QT0lOVF9JTklUX1hZX1owKHNlY3A1MjFyMV9UXzI0X1gsIHNlY3A1MjFyMV9UXzI0X1kpLAotICAgIEVDUF9QT0lOVF9JTklUX1hZX1owKHNlY3A1MjFyMV9UXzI1X1gsIHNlY3A1MjFyMV9UXzI1X1kpLAotICAgIEVDUF9QT0lOVF9JTklUX1hZX1owKHNlY3A1MjFyMV9UXzI2X1gsIHNlY3A1MjFyMV9UXzI2X1kpLAotICAgIEVDUF9QT0lOVF9JTklUX1hZX1owKHNlY3A1MjFyMV9UXzI3X1gsIHNlY3A1MjFyMV9UXzI3X1kpLAotICAgIEVDUF9QT0lOVF9JTklUX1hZX1owKHNlY3A1MjFyMV9UXzI4X1gsIHNlY3A1MjFyMV9UXzI4X1kpLAotICAgIEVDUF9QT0lOVF9JTklUX1hZX1owKHNlY3A1MjFyMV9UXzI5X1gsIHNlY3A1MjFyMV9UXzI5X1kpLAotICAgIEVDUF9QT0lOVF9JTklUX1hZX1owKHNlY3A1MjFyMV9UXzMwX1gsIHNlY3A1MjFyMV9UXzMwX1kpLAotICAgIEVDUF9QT0lOVF9JTklUX1hZX1owKHNlY3A1MjFyMV9UXzMxX1gsIHNlY3A1MjFyMV9UXzMxX1kpLAotfTsKLSNlbHNlCi0jZGVmaW5lIHNlY3A1MjFyMV9UIE5VTEwKLSNlbmRpZgotI2VuZGlmIC8qIE1CRURUTFNfRUNQX0RQX1NFQ1A1MjFSMV9FTkFCTEVEICovCi0KLSNpZiBkZWZpbmVkKE1CRURUTFNfRUNQX0RQX1NFQ1AxOTJLMV9FTkFCTEVEKQotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDE5MmsxX3BbXSA9IHsKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MzcsIDB4RUUsIDB4RkYsIDB4RkYsIDB4RkUsIDB4RkYsIDB4RkYsIDB4RkYpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEZGLCAweEZGLCAweEZGLCAweEZGLCAweEZGLCAweEZGLCAweEZGLCAweEZGKSwKLX07Ci1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMTkyazFfYVtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzIoMHgwMCwgMHgwMCksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDE5MmsxX2JbXSA9IHsKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF8yKDB4MDMsIDB4MDApLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AxOTJrMV9neFtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg3RCwgMHg2QywgMHhFMCwgMHhFQSwgMHhCMSwgMHhEMSwgMHhBNSwgMHgxRCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDM0LCAweEY0LCAweEI3LCAweDgwLCAweDAyLCAweDdELCAweEIwLCAweDI2KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QUUsIDB4RTksIDB4NTcsIDB4QzAsIDB4MEUsIDB4RjEsIDB4NEYsIDB4REIpLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AxOTJrMV9neVtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg5RCwgMHgyRiwgMHg1RSwgMHhEOSwgMHg4OCwgMHhBQSwgMHg4MiwgMHg0MCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDM0LCAweDg2LCAweEJFLCAweDE1LCAweEQwLCAweDYzLCAweDQxLCAweDg0KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QTcsIDB4MjgsIDB4NTYsIDB4OUMsIDB4NkQsIDB4MkYsIDB4MkYsIDB4OUIpLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AxOTJrMV9uW10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDhELCAweEZELCAweERFLCAweDc0LCAweDZBLCAweDQ2LCAweDY5LCAweDBGKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MTcsIDB4RkMsIDB4RjIsIDB4MjYsIDB4RkUsIDB4RkYsIDB4RkYsIDB4RkYpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiksCi19OwotCi0jaWYgTUJFRFRMU19FQ1BfRklYRURfUE9JTlRfT1BUSU0gPT0gMQotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDE5MmsxX1RfMF9YW10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDdELCAweDZDLCAweEUwLCAweEVBLCAweEIxLCAweEQxLCAweEE1LCAweDFEKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MzQsIDB4RjQsIDB4QjcsIDB4ODAsIDB4MDIsIDB4N0QsIDB4QjAsIDB4MjYpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhBRSwgMHhFOSwgMHg1NywgMHhDMCwgMHgwRSwgMHhGMSwgMHg0RiwgMHhEQiksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDE5MmsxX1RfMF9ZW10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDlELCAweDJGLCAweDVFLCAweEQ5LCAweDg4LCAweEFBLCAweDgyLCAweDQwKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MzQsIDB4ODYsIDB4QkUsIDB4MTUsIDB4RDAsIDB4NjMsIDB4NDEsIDB4ODQpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhBNywgMHgyOCwgMHg1NiwgMHg5QywgMHg2RCwgMHgyRiwgMHgyRiwgMHg5QiksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDE5MmsxX1RfMV9YW10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDZGLCAweDc3LCAweDNELCAweDBELCAweDg1LCAweDQ4LCAweEE4LCAweEE5KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NjIsIDB4MDcsIDB4REYsIDB4MUQsIDB4QjMsIDB4QjMsIDB4MDEsIDB4NTQpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgwNSwgMHg4NiwgMHhGNiwgMHhBRiwgMHgxOSwgMHgyQSwgMHg4OCwgMHgyRSksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDE5MmsxX1RfMV9ZW10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDMzLCAweDkwLCAweEI2LCAweDJGLCAweDQ4LCAweDM2LCAweDRDLCAweDVCKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4REIsIDB4MTEsIDB4MTQsIDB4QTYsIDB4Q0IsIDB4QkEsIDB4MTUsIDB4RDkpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg3RSwgMHhCMCwgMHhGMiwgMHhENCwgMHhDOSwgMHhEQSwgMHhCQSwgMHhENyksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDE5MmsxX1RfMl9YW10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEU0LCAweEMxLCAweDlDLCAweEU2LCAweEJCLCAweEZCLCAweENGLCAweDIzKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4OTMsIDB4MTksIDB4QUMsIDB4NUEsIDB4QzksIDB4OEEsIDB4MUMsIDB4NzUpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhDMSwgMHhGNiwgMHg3NiwgMHg4NiwgMHg4OSwgMHgyNywgMHg4RCwgMHgyOCksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDE5MmsxX1RfMl9ZW10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDRCLCAweEUwLCAweDZGLCAweDM0LCAweEJBLCAweDVFLCAweEQzLCAweDk2KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NkEsIDB4REMsIDB4QTYsIDB4ODcsIDB4QzksIDB4OUQsIDB4QzAsIDB4ODIpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgwOSwgMHgxMSwgMHg3RSwgMHhENiwgMHhGNywgMHgzMywgMHhGQywgMHhFNCksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDE5MmsxX1RfM19YW10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEMyLCAweDM3LCAweDNFLCAweEMwLCAweDdGLCAweDYyLCAweEU3LCAweDU0KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QTUsIDB4M0IsIDB4NjksIDB4OUQsIDB4NDQsIDB4QkMsIDB4ODIsIDB4OTkpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhENCwgMHg4NCwgMHhCMywgMHg1RiwgMHgyQiwgMHhBNSwgMHg5RSwgMHgyQyksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDE5MmsxX1RfM19ZW10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDFELCAweDk1LCAweEVCLCAweDRDLCAweDA0LCAweEI0LCAweEY0LCAweDc1KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NTUsIDB4QUQsIDB4NEIsIDB4RDUsIDB4OUEsIDB4RUIsIDB4QzQsIDB4NEUpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhDOSwgMHhCMSwgMHhDNSwgMHg1OSwgMHhFMywgMHhENSwgMHgxNiwgMHgyQSksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDE5MmsxX1RfNF9YW10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDQ4LCAweDJBLCAweENDLCAweEFDLCAweEQwLCAweEVFLCAweDUwLCAweEVDKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4OTksIDB4ODMsIDB4RTAsIDB4NUIsIDB4MTQsIDB4NDQsIDB4NTIsIDB4MjApLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhENiwgMHgxNSwgMHgyRCwgMHg3OCwgMHhGNiwgMHg1MSwgMHgzMiwgMHhDRiksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDE5MmsxX1RfNF9ZW10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDg2LCAweDM2LCAweDlCLCAweERELCAweEY4LCAweERELCAweEVGLCAweEIyKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MEIsIDB4QjEsIDB4NkEsIDB4MkIsIDB4QUYsIDB4RUIsIDB4MkIsIDB4QjEpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhDOSwgMHg4NywgMHg3QSwgMHg2NiwgMHg1RCwgMHg1QiwgMHhERiwgMHg4RiksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDE5MmsxX1RfNV9YW10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDYyLCAweDQ1LCAweEU1LCAweDgxLCAweDlCLCAweEVCLCAweDM3LCAweDIzKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QjMsIDB4MjksIDB4RTIsIDB4MjAsIDB4NjQsIDB4MjMsIDB4NkIsIDB4NkUpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhGRSwgMHgxRCwgMHg0MSwgMHhFMSwgMHg5QiwgMHg2MSwgMHg3QiwgMHhEOSksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDE5MmsxX1RfNV9ZW10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDc1LCAweDU3LCAweEEzLCAweDBBLCAweDEzLCAweEU0LCAweDU5LCAweDE1KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NzksIDB4NkUsIDB4NEEsIDB4NDgsIDB4ODQsIDB4OTAsIDB4QUMsIDB4QzcpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg5QywgMHhCOCwgMHhGNSwgMHhGMywgMHhERSwgMHhBMCwgMHhBMSwgMHgxRCksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDE5MmsxX1RfNl9YW10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEEzLCAweDMyLCAweDgxLCAweEE5LCAweDkxLCAweDVBLCAweDRFLCAweDMzKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4Q0IsIDB4QTgsIDB4OTAsIDB4QkUsIDB4MEYsIDB4RUMsIDB4QzAsIDB4ODUpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg4MCwgMHgzMCwgMHhENywgMHgwOCwgMHhBRSwgMHhDNCwgMHgzQSwgMHhBNSksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDE5MmsxX1RfNl9ZW10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEJDLCAweDU1LCAweEUzLCAweDc2LCAweEIzLCAweDY0LCAweDc0LCAweDlGKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4M0YsIDB4NzUsIDB4RDQsIDB4REIsIDB4OTgsIDB4RDcsIDB4MzksIDB4QUUpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhENCwgMHhFQiwgMHg4QSwgMHhBQiwgMHgxNiwgMHhEOSwgMHhENCwgMHgwQiksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDE5MmsxX1RfN19YW10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDQxLCAweEJFLCAweEY5LCAweEM3LCAweEM3LCAweEJBLCAweEYzLCAweEExKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QzIsIDB4ODUsIDB4NTksIDB4RjMsIDB4NjAsIDB4NDEsIDB4MDIsIDB4RDIpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg0NiwgMHgxQywgMHg0QSwgMHhBNCwgMHhDNywgMHhFRCwgMHg2NiwgMHhCQyksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDE5MmsxX1RfN19ZW10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEMzLCAweDlDLCAweDJFLCAweDQ2LCAweDUyLCAweDE4LCAweDg3LCAweDE0KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RkYsIDB4MzUsIDB4NUEsIDB4NzUsIDB4QUMsIDB4NEQsIDB4NzUsIDB4OTEpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhDRSwgMHgyRiwgMHhBQywgMHhGQywgMHhCQywgMHhFNiwgMHg5MywgMHg1RSksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDE5MmsxX1RfOF9YW10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDg3LCAweDRELCAweEM5LCAweDE4LCAweEU5LCAweDAwLCAweEVCLCAweDMzKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MUEsIDB4NjksIDB4NzIsIDB4MDcsIDB4NUEsIDB4NTksIDB4QTgsIDB4MjYpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhCNiwgMHg2NSwgMHg4MywgMHgyMCwgMHgxMCwgMHhGOSwgMHg2OSwgMHg4MiksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDE5MmsxX1RfOF9ZW10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDhCLCAweDU2LCAweDdGLCAweDlGLCAweEJGLCAweDQ2LCAweDBDLCAweDdFKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RkMsIDB4Q0YsIDB4RjAsIDB4REMsIDB4REYsIDB4MkQsIDB4RTYsIDB4RTUpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgwOSwgMHhGMCwgMHg3MiwgMHgzQSwgMHg3QSwgMHgwMywgMHhFNSwgMHgyMiksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDE5MmsxX1RfOV9YW10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDNFLCAweEFBLCAweDU3LCAweDEzLCAweDM3LCAweEE3LCAweDJDLCAweEQ0KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QTMsIDB4QUMsIDB4QTIsIDB4MjMsIDB4RjksIDB4ODQsIDB4NjAsIDB4RDMpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgzMiwgMHhFQiwgMHg1MSwgMHg3MCwgMHg2NCwgMHg3OCwgMHhDQSwgMHgwNSksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDE5MmsxX1RfOV9ZW10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDkxLCAweENDLCAweDMwLCAweDYyLCAweDkzLCAweDQ2LCAweDEzLCAweEU5KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MjEsIDB4MjYsIDB4Q0MsIDB4NkMsIDB4M0QsIDB4NUMsIDB4REEsIDB4MkMpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhENSwgMHhBQSwgMHhCOCwgMHgwMywgMHhBNCwgMHgxQSwgMHgwMCwgMHg5NiksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDE5MmsxX1RfMTBfWFtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhGOSwgMHg5RCwgMHhFNiwgMHhDQywgMHg0RSwgMHgyRSwgMHhDMiwgMHhENSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEI0LCAweEMzLCAweDhBLCAweEFFLCAweDZGLCAweDQwLCAweDA1LCAweEVCKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4OUQsIDB4OEYsIDB4NEEsIDB4NEQsIDB4MzUsIDB4RDMsIDB4NTAsIDB4OUQpLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AxOTJrMV9UXzEwX1lbXSA9IHsKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MUYsIDB4RkQsIDB4OTgsIDB4QUIsIDB4QzcsIDB4MDMsIDB4QjQsIDB4NTUpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg0MCwgMHg0MCwgMHhEMiwgMHg5RiwgMHhDQSwgMHhEMCwgMHg1MywgMHgwMCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDFBLCAweDg0LCAweDAwLCAweDZGLCAweEM4LCAweEFELCAweEVELCAweDhEKSwKLX07Ci1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMTkyazFfVF8xMV9YW10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweENFLCAweEQzLCAweDU3LCAweEQ3LCAweEMzLCAweDA3LCAweEJELCAweEQ3KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NjcsIDB4QkEsIDB4NDcsIDB4MUQsIDB4M0QsIDB4RUYsIDB4OTgsIDB4NkMpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg2RCwgMHhDMCwgMHg2QywgMHg3RiwgMHgxMiwgMHhFRSwgMHg5RiwgMHg2NyksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDE5MmsxX1RfMTFfWVtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhDQSwgMHgwMiwgMHhEQSwgMHg3OSwgMHhBQSwgMHhDOSwgMHgyNywgMHhDNCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDIxLCAweDc5LCAweEM3LCAweDcxLCAweDg0LCAweENCLCAweEU1LCAweDVBKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MTUsIDB4MzcsIDB4MDYsIDB4QkEsIDB4QjUsIDB4RDUsIDB4MTgsIDB4NEMpLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AxOTJrMV9UXzEyX1hbXSA9IHsKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QTEsIDB4NjUsIDB4NzIsIDB4NkMsIDB4RjIsIDB4NjMsIDB4MjcsIDB4NkEpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg2OSwgMHhCQywgMHg3MSwgMHhERiwgMHg3NSwgMHhGOCwgMHg5OCwgMHg0RCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDcwLCAweDcwLCAweDlCLCAweERDLCAweEU3LCAweDE4LCAweDcxLCAweEZGKSwKLX07Ci1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMTkyazFfVF8xMl9ZW10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDE1LCAweDVCLCAweDlGLCAweDAwLCAweDVBLCAweEI2LCAweDgwLCAweDdBKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QjcsIDB4RTAsIDB4QkIsIDB4RkMsIDB4NUUsIDB4NzgsIDB4OUMsIDB4ODkpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg2MCwgMHgwMywgMHg2OCwgMHg4MywgMHgzRCwgMHgyRSwgMHg0QywgMHhERCksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDE5MmsxX1RfMTNfWFtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgzQiwgMHg0OSwgMHgyMywgMHhBOCwgMHhDQiwgMHgzQiwgMHgxQSwgMHhGNiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDhCLCAweDNELCAweEE3LCAweDQ2LCAweENGLCAweDc1LCAweEI2LCAweDJDKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4OTIsIDB4RkQsIDB4MzAsIDB4MDEsIDB4QjYsIDB4RUYsIDB4RjksIDB4RTgpLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AxOTJrMV9UXzEzX1lbXSA9IHsKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4REMsIDB4RkEsIDB4REEsIDB4QjgsIDB4MjksIDB4NDIsIDB4QzksIDB4QzcpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgwNiwgMHhENywgMHhBMCwgMHhFNiwgMHg2QiwgMHg4NiwgMHg2MSwgMHgzOSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweERCLCAweEU5LCAweEQzLCAweDM3LCAweEQ4LCAweEU3LCAweDM1LCAweEE5KSwKLX07Ci1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMTkyazFfVF8xNF9YW10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEZELCAweEM4LCAweDhFLCAweEIxLCAweENCLCAweEIxLCAweEI1LCAweDREKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MTYsIDB4RDcsIDB4NDYsIDB4N0QsIDB4QUYsIDB4RTIsIDB4REMsIDB4QkIpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhEMCwgMHg0NiwgMHhFNywgMHhEOCwgMHg3NiwgMHgzMSwgMHg5MCwgMHg3NiksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDE5MmsxX1RfMTRfWVtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhFQiwgMHhEMywgMHhGNCwgMHg3NCwgMHhFMSwgMHg2NywgMHhEOCwgMHg2NiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEU3LCAweDcwLCAweDNDLCAweEM4LCAweEFGLCAweDVGLCAweEY0LCAweDU4KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MjQsIDB4NEUsIDB4RUQsIDB4NUMsIDB4NDMsIDB4QjMsIDB4MTYsIDB4MzUpLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AxOTJrMV9UXzE1X1hbXSA9IHsKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NTcsIDB4QUUsIDB4RDEsIDB4REQsIDB4MzEsIDB4MTQsIDB4RDMsIDB4RjApLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhFOCwgMHgxNCwgMHgwNiwgMHgxMywgMHgxMiwgMHgxQywgMHg4MSwgMHhGNSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEE2LCAweEY5LCAweDBDLCAweDkxLCAweEY3LCAweDY3LCAweDU5LCAweDYzKSwKLX07Ci1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMTkyazFfVF8xNV9ZW10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEFCLCAweDkxLCAweEUyLCAweEY0LCAweDlELCAweEVCLCAweDg4LCAweDg3KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4REIsIDB4ODIsIDB4MzAsIDB4OUMsIDB4QUUsIDB4MTgsIDB4NEQsIDB4QjcpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgzQywgMHg3OSwgMHhDRiwgMHgxNywgMHhBNSwgMHgxRSwgMHhFOCwgMHhDOCksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfZWNwX3BvaW50IHNlY3AxOTJrMV9UWzE2XSA9IHsKLSAgICBFQ1BfUE9JTlRfSU5JVF9YWV9aMShzZWNwMTkyazFfVF8wX1gsIHNlY3AxOTJrMV9UXzBfWSksCi0gICAgRUNQX1BPSU5UX0lOSVRfWFlfWjAoc2VjcDE5MmsxX1RfMV9YLCBzZWNwMTkyazFfVF8xX1kpLAotICAgIEVDUF9QT0lOVF9JTklUX1hZX1owKHNlY3AxOTJrMV9UXzJfWCwgc2VjcDE5MmsxX1RfMl9ZKSwKLSAgICBFQ1BfUE9JTlRfSU5JVF9YWV9aMChzZWNwMTkyazFfVF8zX1gsIHNlY3AxOTJrMV9UXzNfWSksCi0gICAgRUNQX1BPSU5UX0lOSVRfWFlfWjAoc2VjcDE5MmsxX1RfNF9YLCBzZWNwMTkyazFfVF80X1kpLAotICAgIEVDUF9QT0lOVF9JTklUX1hZX1owKHNlY3AxOTJrMV9UXzVfWCwgc2VjcDE5MmsxX1RfNV9ZKSwKLSAgICBFQ1BfUE9JTlRfSU5JVF9YWV9aMChzZWNwMTkyazFfVF82X1gsIHNlY3AxOTJrMV9UXzZfWSksCi0gICAgRUNQX1BPSU5UX0lOSVRfWFlfWjAoc2VjcDE5MmsxX1RfN19YLCBzZWNwMTkyazFfVF83X1kpLAotICAgIEVDUF9QT0lOVF9JTklUX1hZX1owKHNlY3AxOTJrMV9UXzhfWCwgc2VjcDE5MmsxX1RfOF9ZKSwKLSAgICBFQ1BfUE9JTlRfSU5JVF9YWV9aMChzZWNwMTkyazFfVF85X1gsIHNlY3AxOTJrMV9UXzlfWSksCi0gICAgRUNQX1BPSU5UX0lOSVRfWFlfWjAoc2VjcDE5MmsxX1RfMTBfWCwgc2VjcDE5MmsxX1RfMTBfWSksCi0gICAgRUNQX1BPSU5UX0lOSVRfWFlfWjAoc2VjcDE5MmsxX1RfMTFfWCwgc2VjcDE5MmsxX1RfMTFfWSksCi0gICAgRUNQX1BPSU5UX0lOSVRfWFlfWjAoc2VjcDE5MmsxX1RfMTJfWCwgc2VjcDE5MmsxX1RfMTJfWSksCi0gICAgRUNQX1BPSU5UX0lOSVRfWFlfWjAoc2VjcDE5MmsxX1RfMTNfWCwgc2VjcDE5MmsxX1RfMTNfWSksCi0gICAgRUNQX1BPSU5UX0lOSVRfWFlfWjAoc2VjcDE5MmsxX1RfMTRfWCwgc2VjcDE5MmsxX1RfMTRfWSksCi0gICAgRUNQX1BPSU5UX0lOSVRfWFlfWjAoc2VjcDE5MmsxX1RfMTVfWCwgc2VjcDE5MmsxX1RfMTVfWSksCi19OwotI2Vsc2UKLSNkZWZpbmUgc2VjcDE5MmsxX1QgTlVMTAotI2VuZGlmCi0KLSNlbmRpZiAvKiBNQkVEVExTX0VDUF9EUF9TRUNQMTkySzFfRU5BQkxFRCAqLwotCi0jaWYgZGVmaW5lZChNQkVEVExTX0VDUF9EUF9TRUNQMjI0SzFfRU5BQkxFRCkKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AyMjRrMV9wW10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDZELCAweEU1LCAweEZGLCAweEZGLCAweEZFLCAweEZGLCAweEZGLCAweEZGKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RkYsIDB4RkYsIDB4RkYsIDB4RkYsIDB4RkYsIDB4RkYsIDB4RkYsIDB4RkYpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfNCgweEZGLCAweEZGLCAweEZGLCAweEZGKSwKLX07Ci1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMjI0azFfYVtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzIoMHgwMCwgMHgwMCksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDIyNGsxX2JbXSA9IHsKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF8yKDB4MDUsIDB4MDApLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AyMjRrMV9neFtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg1QywgMHhBNCwgMHhCNywgMHhCNiwgMHgwRSwgMHg2NSwgMHg3RSwgMHgwRiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEE5LCAweDc1LCAweDcwLCAweEU0LCAweEU5LCAweDY3LCAweEE0LCAweDY5KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QTEsIDB4MjgsIDB4RkMsIDB4MzAsIDB4REYsIDB4OTksIDB4RjAsIDB4NEQpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzQoMHgzMywgMHg1QiwgMHg0NSwgMHhBMSksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDIyNGsxX2d5W10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEE1LCAweDYxLCAweDZELCAweDU1LCAweERCLCAweDRCLCAweENBLCAweEUyKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NTksIDB4QkQsIDB4QjAsIDB4QzAsIDB4RjcsIDB4MTksIDB4RTMsIDB4RjcpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhENiwgMHhGQiwgMHhDQSwgMHg4MiwgMHg0MiwgMHgzNCwgMHhCQSwgMHg3RiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfNCgweEVELCAweDlGLCAweDA4LCAweDdFKSwKLX07Ci1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMjI0azFfbltdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhGNywgMHhCMSwgMHg5RiwgMHg3NiwgMHg3MSwgMHhBOSwgMHhGMCwgMHhDQSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDg0LCAweDYxLCAweEVDLCAweEQyLCAweEU4LCAweERDLCAweDAxLCAweDAwKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDApLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMSwgMHgwMCwgMHgwMCwgMHgwMCksCi19OwotCi0jaWYgTUJFRFRMU19FQ1BfRklYRURfUE9JTlRfT1BUSU0gPT0gMQotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDIyNGsxX1RfMF9YW10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDVDLCAweEE0LCAweEI3LCAweEI2LCAweDBFLCAweDY1LCAweDdFLCAweDBGKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QTksIDB4NzUsIDB4NzAsIDB4RTQsIDB4RTksIDB4NjcsIDB4QTQsIDB4NjkpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhBMSwgMHgyOCwgMHhGQywgMHgzMCwgMHhERiwgMHg5OSwgMHhGMCwgMHg0RCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDMzLCAweDVCLCAweDQ1LCAweEExLCAweDAwLCAweDAwLCAweDAwLCAweDAwKSwKLX07Ci1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMjI0azFfVF8wX1lbXSA9IHsKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QTUsIDB4NjEsIDB4NkQsIDB4NTUsIDB4REIsIDB4NEIsIDB4Q0EsIDB4RTIpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg1OSwgMHhCRCwgMHhCMCwgMHhDMCwgMHhGNywgMHgxOSwgMHhFMywgMHhGNyksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEQ2LCAweEZCLCAweENBLCAweDgyLCAweDQyLCAweDM0LCAweEJBLCAweDdGKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RUQsIDB4OUYsIDB4MDgsIDB4N0UsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDApLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AyMjRrMV9UXzFfWFtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg5OSwgMHg2QywgMHgyMiwgMHgyMiwgMHg0MCwgMHg4OSwgMHhBRSwgMHg3QSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDJGLCAweDkyLCAweEUxLCAweDg3LCAweDU2LCAweDM1LCAweEFGLCAweDlCKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4ODgsIDB4QUYsIDB4MDgsIDB4MzUsIDB4MjcsIDB4RUEsIDB4MDQsIDB4RUQpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhGMCwgMHg1MywgMHhGRCwgMHhDRiwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDIyNGsxX1RfMV9ZW10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEMxLCAweEQwLCAweDlGLCAweDhELCAweEYzLCAweDYzLCAweDU0LCAweDMwKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MzksIDB4REIsIDB4MEYsIDB4NjEsIDB4NTQsIDB4MjYsIDB4RDEsIDB4OTgpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhGNSwgMHgyMSwgMHhGNywgMHgxQiwgMHhCNSwgMHgxRCwgMHhGNiwgMHg3RSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEZGLCAweDA1LCAweERBLCAweDhGLCAweDAwLCAweDAwLCAweDAwLCAweDAwKSwKLX07Ci1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMjI0azFfVF8yX1hbXSA9IHsKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MTAsIDB4MjYsIDB4NzMsIDB4QkMsIDB4RTQsIDB4MjksIDB4NjIsIDB4NTYpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgzNywgMHg5NSwgMHgxNywgMHg4QiwgMHhDMywgMHg5QiwgMHhBQywgMHhDQyksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEIxLCAweERCLCAweDc3LCAweERGLCAweERELCAweDEzLCAweDA0LCAweDk4KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MDIsIDB4RkMsIDB4MjIsIDB4OTMsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDApLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AyMjRrMV9UXzJfWVtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhBQywgMHg2NSwgMHhGMSwgMHg1QSwgMHgzNywgMHhFRiwgMHg3OSwgMHhBRCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDk5LCAweDAxLCAweDM3LCAweEFDLCAweDlBLCAweDVCLCAweDUxLCAweDY1KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RkEsIDB4NzUsIDB4MTMsIDB4QTksIDB4NEEsIDB4QUQsIDB4RkUsIDB4OUIpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgzMiwgMHg4MiwgMHg2RiwgMHg2NiwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDIyNGsxX1RfM19YW10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDRELCAweDVFLCAweEYwLCAweDQwLCAweEMzLCAweEE2LCAweEUyLCAweDFFKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MzQsIDB4OUEsIDB4NkYsIDB4Q0YsIDB4MTEsIDB4MjYsIDB4NjYsIDB4ODUpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg3OSwgMHg3MywgMHhBOCwgMHhDRiwgMHgyQiwgMHgxMiwgMHgzNiwgMHgzNyksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEI5LCAweEIzLCAweDBBLCAweDU4LCAweDAwLCAweDAwLCAweDAwLCAweDAwKSwKLX07Ci1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMjI0azFfVF8zX1lbXSA9IHsKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RDMsIDB4NzksIDB4MDAsIDB4NTUsIDB4MDQsIDB4MzQsIDB4OTAsIDB4MUEpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgwQSwgMHg1NCwgMHgxQywgMHhDMiwgMHg0NSwgMHgwQywgMHgxQiwgMHgyMyksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDg2LCAweDE5LCAweEFCLCAweEE4LCAweEZDLCAweDczLCAweERDLCAweEVFKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NzIsIDB4RkIsIDB4OTMsIDB4Q0UsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDApLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AyMjRrMV9UXzRfWFtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhGOCwgMHg3NSwgMHhEMCwgMHg2NiwgMHg5NSwgMHg4NiwgMHhDQSwgMHg2NiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDE3LCAweEVBLCAweDI5LCAweDE2LCAweDZBLCAweDM4LCAweERGLCAweDQxKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RDgsIDB4QTIsIDB4MzYsIDB4MkYsIDB4REMsIDB4QkIsIDB4NUUsIDB4RjcpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhENCwgMHg4OSwgMHg1OSwgMHg0OSwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDIyNGsxX1RfNF9ZW10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweENBLCAweEEzLCAweDk5LCAweDlELCAweEI4LCAweDc3LCAweDlELCAweDFEKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MEEsIDB4OTMsIDB4NDMsIDB4NDcsIDB4QzYsIDB4NUMsIDB4RjksIDB4RkQpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhBQSwgMHgwMCwgMHg3OSwgMHg0MiwgMHg2NCwgMHhCOCwgMHgyNSwgMHgzRSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDI5LCAweDU0LCAweEI0LCAweDMzLCAweDAwLCAweDAwLCAweDAwLCAweDAwKSwKLX07Ci1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMjI0azFfVF81X1hbXSA9IHsKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RDksIDB4MEMsIDB4NDIsIDB4OTAsIDB4ODMsIDB4MEIsIDB4MzEsIDB4NUYpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg1NCwgMHgyRSwgMHhBRSwgMHhDOCwgMHhDNywgMHg1RiwgMHhEMiwgMHg3MCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEE5LCAweEJDLCAweEFELCAweDQxLCAweEU3LCAweDMyLCAweDNBLCAweDgxKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4OEEsIDB4OTcsIDB4NTIsIDB4ODMsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDApLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AyMjRrMV9UXzVfWVtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgxQSwgMHgxMywgMHg3QSwgMHhCRCwgMHhBRSwgMHg5NCwgMHg2MCwgMHhGRCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDkyLCAweDlCLCAweDk1LCAweEI0LCAweDZFLCAweDY4LCAweEIyLCAweDFGKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MTUsIDB4NDksIDB4QkUsIDB4NTEsIDB4RkUsIDB4NjYsIDB4MTUsIDB4NzQpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhFNiwgMHgzNywgMHhFNCwgMHhGRSwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDIyNGsxX1RfNl9YW10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEY2LCAweDlCLCAweEVFLCAweDY0LCAweEM5LCAweDFCLCAweEJELCAweDc3KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4REEsIDB4NUYsIDB4MzQsIDB4QTksIDB4MEIsIDB4QjcsIDB4MjUsIDB4NTIpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg5MCwgMHgxMywgMHhCMSwgMHgzOCwgMHhGQiwgMHg5RCwgMHg3OCwgMHhFRCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDM5LCAweEU3LCAweDFCLCAweEZBLCAweDAwLCAweDAwLCAweDAwLCAweDAwKSwKLX07Ci1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMjI0azFfVF82X1lbXSA9IHsKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RkIsIDB4QjMsIDB4QjcsIDB4NDQsIDB4OTIsIDB4NkIsIDB4MDAsIDB4ODIpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg5NywgMHg4MiwgMHg0NCwgMHgzRSwgMHgxOCwgMHgxQSwgMHg1OCwgMHg2QSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDE1LCAweEY4LCAweEMwLCAweEU0LCAweEVFLCAweEMxLCAweEJGLCAweDQ0KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4N0UsIDB4MzIsIDB4MjcsIDB4QjIsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDApLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AyMjRrMV9UXzdfWFtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhGNCwgMHg5QSwgMHg0MiwgMHg2MiwgMHg4QiwgMHgyNiwgMHg1NCwgMHgyMSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDI0LCAweDg1LCAweDc0LCAweEEwLCAweDc5LCAweEE4LCAweEVFLCAweEJFKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4ODAsIDB4MzYsIDB4NjAsIDB4QjMsIDB4MjgsIDB4NEQsIDB4NTUsIDB4QkUpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgzMiwgMHgyNywgMHg4MiwgMHgyOSwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDIyNGsxX1RfN19ZW10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDBELCAweEZDLCAweDczLCAweDc3LCAweEFGLCAweDVDLCAweEFDLCAweDc4KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4Q0MsIDB4RUQsIDB4RTUsIDB4RjYsIDB4MUQsIDB4QTgsIDB4NjcsIDB4NDMpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhGOCwgMHhERSwgMHgzMywgMHgxQywgMHhGMSwgMHg4MCwgMHg3MywgMHhGOCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDJBLCAweEUyLCAweERFLCAweDNDLCAweDAwLCAweDAwLCAweDAwLCAweDAwKSwKLX07Ci1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMjI0azFfVF84X1hbXSA9IHsKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NTcsIDB4M0UsIDB4NkIsIDB4RkUsIDB4RjAsIDB4MDQsIDB4MjgsIDB4MDEpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhCQiwgMHhCMiwgMHgxNCwgMHg5RCwgMHgxOCwgMHgxMSwgMHg3RCwgMHg5RCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDk2LCAweEM0LCAweEQ2LCAweDJFLCAweDZFLCAweDU3LCAweDRELCAweEUxKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RUEsIDB4NTUsIDB4MUIsIDB4REUsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDApLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AyMjRrMV9UXzhfWVtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgwNywgMHhGNywgMHgxNywgMHhCQywgMHg0NSwgMHhBQiwgMHgxNiwgMHhBQiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweENELCAweEIwLCAweEVGLCAweDYxLCAweEUzLCAweDIwLCAweDdDLCAweEY4KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NkMsIDB4ODUsIDB4NDEsIDB4NEQsIDB4RjEsIDB4N0UsIDB4NEQsIDB4NDEpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg5OSwgMHhDMiwgMHg5QiwgMHg1RSwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDIyNGsxX1RfOV9YW10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDcwLCAweDJFLCAweDQ5LCAweDNELCAweDNFLCAweDRCLCAweEQzLCAweDMyKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QzgsIDB4MkIsIDB4OUQsIDB4RDUsIDB4MjcsIDB4RkEsIDB4Q0EsIDB4RTApLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhCMywgMHhCMywgMHg2QSwgMHhFMCwgMHg3OSwgMHgxNCwgMHgyOCwgMHgwRiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDZDLCAweDFFLCAweERDLCAweEY1LCAweDAwLCAweDAwLCAweDAwLCAweDAwKSwKLX07Ci1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMjI0azFfVF85X1lbXSA9IHsKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4Q0EsIDB4NDQsIDB4NTYsIDB4Q0QsIDB4RkMsIDB4OUYsIDB4MDksIDB4RkYpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg1QywgMHg4QywgMHg1OSwgMHhBNCwgMHg2NCwgMHgyQSwgMHgzQSwgMHhFRCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDQwLCAweEEwLCAweEI1LCAweDg2LCAweDRFLCAweDY5LCAweERBLCAweDA2KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MDgsIDB4OEIsIDB4MTEsIDB4MzgsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDApLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AyMjRrMV9UXzEwX1hbXSA9IHsKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QTAsIDB4MTcsIDB4MTYsIDB4MTIsIDB4MTcsIDB4REMsIDB4MDAsIDB4N0UpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhFNywgMHg3NiwgMHgyNCwgMHg2QywgMHg5NywgMHgyQywgMHhCNSwgMHhGOSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDgyLCAweDcxLCAweEUzLCAweEIwLCAweEJCLCAweDRFLCAweDUwLCAweDUyKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NkUsIDB4NDgsIDB4MjYsIDB4RDUsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDApLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AyMjRrMV9UXzEwX1lbXSA9IHsKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MDYsIDB4NUYsIDB4MjgsIDB4RjYsIDB4MDEsIDB4NUEsIDB4NjAsIDB4NDEpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhBRSwgMHg5NSwgMHhGRSwgMHhEMCwgMHhBRCwgMHgxNSwgMHhENCwgMHhEOSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEFELCAweDVCLCAweDdBLCAweEZELCAweDgwLCAweEY3LCAweDlGLCAweDY0KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MzIsIDB4QkMsIDB4MUIsIDB4REYsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDApLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AyMjRrMV9UXzExX1hbXSA9IHsKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QkIsIDB4RTYsIDB4REYsIDB4MTQsIDB4MjksIDB4RjQsIDB4RDQsIDB4MTQpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhFNSwgMHgxMiwgMHhERCwgMHhFQywgMHg1QiwgMHg4QSwgMHg1OSwgMHhFNSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDI2LCAweDkyLCAweDNFLCAweDM1LCAweDA4LCAweEU5LCAweENGLCAweDBFKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RTAsIDB4MzUsIDB4MjksIDB4OTcsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDApLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AyMjRrMV9UXzExX1lbXSA9IHsKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MTEsIDB4REIsIDB4RDYsIDB4NkEsIDB4QzUsIDB4NDMsIDB4QTQsIDB4QTEpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg2MSwgMHgzMywgMHg1MCwgMHg2MSwgMHg3MCwgMHhBMSwgMHhFOSwgMHhDRSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDE1LCAweDE1LCAweDZFLCAweDVGLCAweDAxLCAweDBDLCAweDhDLCAweEZBKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4ODUsIDB4QTEsIDB4OUEsIDB4OUQsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDApLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AyMjRrMV9UXzEyX1hbXSA9IHsKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NkUsIDB4QzYsIDB4RjcsIDB4RTIsIDB4NEEsIDB4Q0QsIDB4OUIsIDB4NjEpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgzNCwgMHg0RCwgMHg1QSwgMHhCOCwgMHhFMiwgMHg2RCwgMHhBNiwgMHg1MCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDMyLCAweDNGLCAweEI2LCAweDE3LCAweEUzLCAweDJDLCAweDZGLCAweDY1KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MUUsIDB4QTQsIDB4NTksIDB4NTEsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDApLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AyMjRrMV9UXzEyX1lbXSA9IHsKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NzcsIDB4NEYsIDB4N0MsIDB4NDksIDB4Q0QsIDB4NkUsIDB4RUIsIDB4M0MpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgwNSwgMHhDOSwgMHgxRiwgMHhCNywgMHg0RCwgMHg5OCwgMHhDNywgMHg2NyksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDRDLCAweEZELCAweDk4LCAweDIwLCAweDk1LCAweEJCLCAweDIwLCAweDNBKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RTAsIDB4RjIsIDB4NzMsIDB4OTIsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDApLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AyMjRrMV9UXzEzX1hbXSA9IHsKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RTIsIDB4RUYsIDB4RkIsIDB4MzAsIDB4RkEsIDB4MTIsIDB4MUEsIDB4QjApLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg3QSwgMHg0QywgMHgyNCwgMHhCNCwgMHg1QiwgMHhDOSwgMHg0QywgMHgwRiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDdBLCAweERELCAweDVFLCAweDg0LCAweDk1LCAweDRELCAweDI2LCAweEVEKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RTMsIDB4RkEsIDB4RjksIDB4M0EsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDApLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AyMjRrMV9UXzEzX1lbXSA9IHsKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NkEsIDB4QTMsIDB4MkUsIDB4N0EsIDB4REMsIDB4QTcsIDB4NTMsIDB4QTkpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg3QywgMHg5RiwgMHg4MSwgMHg4NCwgMHhCMiwgMHgwRCwgMHhGRSwgMHgzMSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDYxLCAweDg5LCAweDFCLCAweDc3LCAweDBDLCAweDg5LCAweDcxLCAweEVDKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RkEsIDB4RkYsIDB4N0YsIDB4QjIsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDApLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AyMjRrMV9UXzE0X1hbXSA9IHsKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MjgsIDB4RTksIDB4MkMsIDB4NzksIDB4QTYsIDB4M0MsIDB4QUQsIDB4OTMpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhENiwgMHhFMCwgMHgyMywgMHgwMiwgMHg4NiwgMHgwRiwgMHg3NywgMHgyQSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDEzLCAweDkzLCAweDZELCAweEU5LCAweEY5LCAweDNDLCAweEJFLCAweEI5KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MDQsIDB4RTcsIDB4MjQsIDB4OTIsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDApLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AyMjRrMV9UXzE0X1lbXSA9IHsKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QkIsIDB4M0MsIDB4NUIsIDB4NEIsIDB4MUIsIDB4MjUsIDB4MzcsIDB4RDYpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhDOSwgMHhFOCwgMHgzOCwgMHgxQiwgMHhBMSwgMHg1QSwgMHgyRSwgMHg2OCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDAzLCAweDE5LCAweEZELCAweEY0LCAweDc4LCAweDAxLCAweDZCLCAweDQ0KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MEYsIDB4NjksIDB4MzcsIDB4NEYsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDApLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AyMjRrMV9UXzE1X1hbXSA9IHsKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MUEsIDB4RTIsIDB4QkYsIDB4RDMsIDB4RUMsIDB4OTUsIDB4OUMsIDB4MDMpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhDMiwgMHg3QiwgMHhGQywgMHhENSwgMHhEMywgMHgyNSwgMHg1RSwgMHgwRiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDM5LCAweDU1LCAweDA5LCAweEEyLCAweDU4LCAweDZBLCAweEM5LCAweEZGKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4ODAsIDB4Q0MsIDB4M0IsIDB4RDksIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDApLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AyMjRrMV9UXzE1X1lbXSA9IHsKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4OEYsIDB4MDgsIDB4NjUsIDB4NUUsIDB4Q0IsIDB4QUIsIDB4NDgsIDB4QzgpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhFRSwgMHg3OSwgMHg4QiwgMHhDMCwgMHgxMSwgMHhDMCwgMHg2OSwgMHgzOCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEU2LCAweEU4LCAweDhDLCAweDRDLCAweEM1LCAweDI4LCAweEU0LCAweEFFKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QTUsIDB4MUYsIDB4MzQsIDB4NUMsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDApLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX2VjcF9wb2ludCBzZWNwMjI0azFfVFsxNl0gPSB7Ci0gICAgRUNQX1BPSU5UX0lOSVRfWFlfWjEoc2VjcDIyNGsxX1RfMF9YLCBzZWNwMjI0azFfVF8wX1kpLAotICAgIEVDUF9QT0lOVF9JTklUX1hZX1owKHNlY3AyMjRrMV9UXzFfWCwgc2VjcDIyNGsxX1RfMV9ZKSwKLSAgICBFQ1BfUE9JTlRfSU5JVF9YWV9aMChzZWNwMjI0azFfVF8yX1gsIHNlY3AyMjRrMV9UXzJfWSksCi0gICAgRUNQX1BPSU5UX0lOSVRfWFlfWjAoc2VjcDIyNGsxX1RfM19YLCBzZWNwMjI0azFfVF8zX1kpLAotICAgIEVDUF9QT0lOVF9JTklUX1hZX1owKHNlY3AyMjRrMV9UXzRfWCwgc2VjcDIyNGsxX1RfNF9ZKSwKLSAgICBFQ1BfUE9JTlRfSU5JVF9YWV9aMChzZWNwMjI0azFfVF81X1gsIHNlY3AyMjRrMV9UXzVfWSksCi0gICAgRUNQX1BPSU5UX0lOSVRfWFlfWjAoc2VjcDIyNGsxX1RfNl9YLCBzZWNwMjI0azFfVF82X1kpLAotICAgIEVDUF9QT0lOVF9JTklUX1hZX1owKHNlY3AyMjRrMV9UXzdfWCwgc2VjcDIyNGsxX1RfN19ZKSwKLSAgICBFQ1BfUE9JTlRfSU5JVF9YWV9aMChzZWNwMjI0azFfVF84X1gsIHNlY3AyMjRrMV9UXzhfWSksCi0gICAgRUNQX1BPSU5UX0lOSVRfWFlfWjAoc2VjcDIyNGsxX1RfOV9YLCBzZWNwMjI0azFfVF85X1kpLAotICAgIEVDUF9QT0lOVF9JTklUX1hZX1owKHNlY3AyMjRrMV9UXzEwX1gsIHNlY3AyMjRrMV9UXzEwX1kpLAotICAgIEVDUF9QT0lOVF9JTklUX1hZX1owKHNlY3AyMjRrMV9UXzExX1gsIHNlY3AyMjRrMV9UXzExX1kpLAotICAgIEVDUF9QT0lOVF9JTklUX1hZX1owKHNlY3AyMjRrMV9UXzEyX1gsIHNlY3AyMjRrMV9UXzEyX1kpLAotICAgIEVDUF9QT0lOVF9JTklUX1hZX1owKHNlY3AyMjRrMV9UXzEzX1gsIHNlY3AyMjRrMV9UXzEzX1kpLAotICAgIEVDUF9QT0lOVF9JTklUX1hZX1owKHNlY3AyMjRrMV9UXzE0X1gsIHNlY3AyMjRrMV9UXzE0X1kpLAotICAgIEVDUF9QT0lOVF9JTklUX1hZX1owKHNlY3AyMjRrMV9UXzE1X1gsIHNlY3AyMjRrMV9UXzE1X1kpLAotfTsKLSNlbHNlCi0jZGVmaW5lIHNlY3AyMjRrMV9UIE5VTEwKLSNlbmRpZgotI2VuZGlmIC8qIE1CRURUTFNfRUNQX0RQX1NFQ1AyMjRLMV9FTkFCTEVEICovCi0KLSNpZiBkZWZpbmVkKE1CRURUTFNfRUNQX0RQX1NFQ1AyNTZLMV9FTkFCTEVEKQotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDI1NmsxX3BbXSA9IHsKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MkYsIDB4RkMsIDB4RkYsIDB4RkYsIDB4RkUsIDB4RkYsIDB4RkYsIDB4RkYpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEZGLCAweEZGLCAweEZGLCAweEZGLCAweEZGLCAweEZGLCAweEZGLCAweEZGKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RkYsIDB4RkYsIDB4RkYsIDB4RkYsIDB4RkYsIDB4RkYsIDB4RkYsIDB4RkYpLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AyNTZrMV9hW10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfMigweDAwLCAweDAwKSwKLX07Ci1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMjU2azFfYltdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzIoMHgwNywgMHgwMCksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDI1NmsxX2d4W10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDk4LCAweDE3LCAweEY4LCAweDE2LCAweDVCLCAweDgxLCAweEYyLCAweDU5KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RDksIDB4MjgsIDB4Q0UsIDB4MkQsIDB4REIsIDB4RkMsIDB4OUIsIDB4MDIpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgwNywgMHgwQiwgMHg4NywgMHhDRSwgMHg5NSwgMHg2MiwgMHhBMCwgMHg1NSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEFDLCAweEJCLCAweERDLCAweEY5LCAweDdFLCAweDY2LCAweEJFLCAweDc5KSwKLX07Ci1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMjU2azFfZ3lbXSA9IHsKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QjgsIDB4RDQsIDB4MTAsIDB4RkIsIDB4OEYsIDB4RDAsIDB4NDcsIDB4OUMpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgxOSwgMHg1NCwgMHg4NSwgMHhBNiwgMHg0OCwgMHhCNCwgMHgxNywgMHhGRCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEE4LCAweDA4LCAweDExLCAweDBFLCAweEZDLCAweEZCLCAweEE0LCAweDVEKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NjUsIDB4QzQsIDB4QTMsIDB4MjYsIDB4NzcsIDB4REEsIDB4M0EsIDB4NDgpLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AyNTZrMV9uW10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDQxLCAweDQxLCAweDM2LCAweEQwLCAweDhDLCAweDVFLCAweEQyLCAweEJGKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4M0IsIDB4QTAsIDB4NDgsIDB4QUYsIDB4RTYsIDB4REMsIDB4QUUsIDB4QkEpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhGRSwgMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEZGLCAweEZGLCAweEZGLCAweEZGLCAweEZGLCAweEZGLCAweEZGLCAweEZGKSwKLX07Ci0KLSNpZiBNQkVEVExTX0VDUF9GSVhFRF9QT0lOVF9PUFRJTSA9PSAxCi1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMjU2azFfVF8wX1hbXSA9IHsKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4OTgsIDB4MTcsIDB4RjgsIDB4MTYsIDB4NUIsIDB4ODEsIDB4RjIsIDB4NTkpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhEOSwgMHgyOCwgMHhDRSwgMHgyRCwgMHhEQiwgMHhGQywgMHg5QiwgMHgwMiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDA3LCAweDBCLCAweDg3LCAweENFLCAweDk1LCAweDYyLCAweEEwLCAweDU1KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QUMsIDB4QkIsIDB4REMsIDB4RjksIDB4N0UsIDB4NjYsIDB4QkUsIDB4NzkpLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AyNTZrMV9UXzBfWVtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhCOCwgMHhENCwgMHgxMCwgMHhGQiwgMHg4RiwgMHhEMCwgMHg0NywgMHg5QyksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDE5LCAweDU0LCAweDg1LCAweEE2LCAweDQ4LCAweEI0LCAweDE3LCAweEZEKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QTgsIDB4MDgsIDB4MTEsIDB4MEUsIDB4RkMsIDB4RkIsIDB4QTQsIDB4NUQpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg2NSwgMHhDNCwgMHhBMywgMHgyNiwgMHg3NywgMHhEQSwgMHgzQSwgMHg0OCksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDI1NmsxX1RfMV9YW10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEU3LCAweEVFLCAweEQ3LCAweDFFLCAweDY3LCAweDg2LCAweDMyLCAweDc0KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MjMsIDB4NzMsIDB4QjEsIDB4QTksIDB4RDUsIDB4Q0MsIDB4MjcsIDB4NzgpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgxRiwgMHgwRSwgMHgxMSwgMHgwMSwgMHg3MSwgMHhGRSwgMHg5MiwgMHg3MyksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEM2LCAweDI4LCAweDYzLCAweDZELCAweDcyLCAweDA5LCAweEE2LCAweEMwKSwKLX07Ci1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMjU2azFfVF8xX1lbXSA9IHsKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4Q0UsIDB4RTEsIDB4NjksIDB4REMsIDB4M0UsIDB4MkMsIDB4NzUsIDB4QzMpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhFNSwgMHhCNywgMHgzRiwgMHgzMCwgMHgyNiwgMHgzQywgMHhERiwgMHg4RSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDNELCAweEJFLCAweEI5LCAweDVELCAweDBFLCAweEU4LCAweDVFLCAweDE0KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MDEsIDB4QzMsIDB4MDUsIDB4RDYsIDB4QjcsIDB4RDUsIDB4MjQsIDB4RkMpLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AyNTZrMV9UXzJfWFtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgxMywgMHhDRiwgMHg3QiwgMHhEQywgMHhDRCwgMHhDMywgMHgzOSwgMHg5RCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDQyLCAweERBLCAweEI5LCAweEU1LCAweDY0LCAweEE3LCAweDQ3LCAweDkxKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NzYsIDB4NDYsIDB4QTgsIDB4NjEsIDB4RjYsIDB4MjMsIDB4RUIsIDB4NTgpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg1QywgMHhDMSwgMHhGRiwgMHhFNCwgMHg1NSwgMHhENSwgMHhDMiwgMHhCRiksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDI1NmsxX1RfMl9ZW10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEM5LCAweEJFLCAweEI5LCAweDU5LCAweDI0LCAweDEzLCAweDRBLCAweDJBKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NjQsIDB4NDUsIDB4MTIsIDB4REUsIDB4QkEsIDB4NEYsIDB4RUYsIDB4NTYpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhCRSwgMHgwOCwgMHhCRiwgMHhDMSwgMHg2NiwgMHhBQSwgMHgwQSwgMHhCQyksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDM2LCAweEZFLCAweDMwLCAweDU1LCAweDMxLCAweDg2LCAweEE3LCAweEI0KSwKLX07Ci1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMjU2azFfVF8zX1hbXSA9IHsKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MUQsIDB4QkYsIDB4MTgsIDB4ODEsIDB4NjcsIDB4MjcsIDB4NDIsIDB4QkQpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgwOCwgMHgwNSwgMHg4MywgMHhBNCwgMHhERCwgMHg1NywgMHhEMywgMHg1MCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDIwLCAweDYzLCAweEFCLCAweEU0LCAweDkwLCAweDcwLCAweEQwLCAweDdDKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NzEsIDB4NUQsIDB4RkQsIDB4QTAsIDB4RUYsIDB4Q0YsIDB4MUMsIDB4NTQpLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AyNTZrMV9UXzNfWVtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgxMywgMHg4MCwgMHhFNCwgMHhGNiwgMHgwOSwgMHhCQywgMHg1NywgMHg5MCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDIxLCAweDlGLCAweDZFLCAweDg4LCAweDU0LCAweDZFLCAweDUxLCAweEYyKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RjUsIDB4NUYsIDB4ODUsIDB4RkIsIDB4ODQsIDB4M0UsIDB4NEEsIDB4QUEpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhBOCwgMHgxOSwgMHhGNSwgMHg1NSwgMHhDOSwgMHgwNywgMHhEOCwgMHhDRSksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDI1NmsxX1RfNF9YW10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDFBLCAweEI0LCAweEMzLCAweEQ5LCAweDVDLCAweEEwLCAweEQ0LCAweDkwKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MEQsIDB4MzAsIDB4QUYsIDB4NTksIDB4OUIsIDB4RjgsIDB4MDQsIDB4ODUpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg0RCwgMHhBNiwgMHhGRCwgMHg2NiwgMHg3QiwgMHhDMywgMHgzOSwgMHg4NSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEUwLCAweEJGLCAweEYwLCAweEMyLCAweEU5LCAweDcxLCAweEE0LCAweDlFKSwKLX07Ci1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMjU2azFfVF80X1lbXSA9IHsKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MTQsIDB4MkQsIDB4QjksIDB4ODgsIDB4MjgsIDB4RjEsIDB4QkUsIDB4NzgpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgxNCwgMHhGMywgMHgxQSwgMHgwRSwgMHhCOSwgMHgwMSwgMHg2NiwgMHgzNCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDc3LCAweEE3LCAweEE0LCAweEY0LCAweDA1LCAweEQwLCAweEFBLCAweDUzKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MDAsIDB4MzksIDB4MUUsIDB4NDcsIDB4RTUsIDB4NjgsIDB4QzgsIDB4QzApLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AyNTZrMV9UXzVfWFtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhERCwgMHhCOSwgMHhGQywgMHhFMCwgMHgzMywgMHg4QSwgMHg3RCwgMHg5NiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDRGLCAweDkzLCAweEE1LCAweDUzLCAweDU1LCAweDE2LCAweEI0LCAweDZFKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RTksIDB4NUYsIDB4RUEsIDB4OUIsIDB4MjksIDB4NTIsIDB4NzEsIDB4REEpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhCMiwgMHhGMCwgMHgyNCwgMHhCOCwgMHg3RCwgMHhCNywgMHhBMCwgMHg5QiksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDI1NmsxX1RfNV9ZW10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEMyLCAweDAwLCAweDI3LCAweEIyLCAweERGLCAweDczLCAweEEyLCAweEUwKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MUQsIDB4MkUsIDB4NEQsIDB4N0MsIDB4REUsIDB4N0EsIDB4MjMsIDB4MzIpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhBQywgMHg2NSwgMHg2MCwgMHhDNywgMHg5NywgMHgxRSwgMHhBNCwgMHgyMiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweENELCAweDEzLCAweDVCLCAweDc3LCAweDU5LCAweENCLCAweDM2LCAweEUxKSwKLX07Ci1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMjU2azFfVF82X1hbXSA9IHsKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4OTksIDB4QkMsIDB4OUYsIDB4OUUsIDB4MkQsIDB4NTMsIDB4MkEsIDB4QTgpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg4NywgMHg1RiwgMHg2NCwgMHg5RiwgMHgxQSwgMHgxOSwgMHhFNiwgMHg3NyksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDlFLCAweDdCLCAweDM5LCAweEQyLCAweERCLCAweDg1LCAweDg0LCAweEQ1KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4ODMsIDB4QzcsIDB4MEQsIDB4NTgsIDB4NkUsIDB4M0YsIDB4NTIsIDB4MTUpLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AyNTZrMV9UXzZfWVtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgyMSwgMHg2OCwgMHgxOSwgMHgwQiwgMHg2OCwgMHhDOSwgMHgxRSwgMHhGQiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEQyLCAweDRFLCAweDIxLCAweDQ5LCAweDNELCAweDU1LCAweENDLCAweDI1KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RjUsIDB4RjksIDB4MjUsIDB4NDUsIDB4NTQsIDB4NDUsIDB4QjEsIDB4MEYpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhBOSwgMHhCMywgMHhGNywgMHhDRCwgMHg4MCwgMHhBNCwgMHgwNCwgMHgwNSksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDI1NmsxX1RfN19YW10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEQ0LCAweDFFLCAweDg4LCAweEM0LCAweEFBLCAweDE4LCAweDdFLCAweDQ1KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NEIsIDB4QUMsIDB4RDksIDB4QjIsIDB4QTEsIDB4QzAsIDB4NzEsIDB4NUQpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhBOSwgMHhBMiwgMHhGMSwgMHgxNSwgMHhBNiwgMHg1RiwgMHg2QywgMHg4NiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDRGLCAweDVCLCAweDA1LCAweEJDLCAweEI3LCAweEM2LCAweDRFLCAweDcyKSwKLX07Ci1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMjU2azFfVF83X1lbXSA9IHsKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MUQsIDB4ODAsIDB4RjgsIDB4NUMsIDB4MjAsIDB4MkEsIDB4RTEsIDB4RTIpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg3QywgMHg0OCwgMHgyRSwgMHg2OCwgMHg4MiwgMHg3RiwgMHhFQiwgMHg1RiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEEyLCAweDNCLCAweDI1LCAweERCLCAweDMyLCAweDRELCAweDg4LCAweDQyKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RUUsIDB4NkUsIDB4QTYsIDB4QjYsIDB4NkQsIDB4NjIsIDB4NzgsIDB4MjIpLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AyNTZrMV9UXzhfWFtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgxRiwgMHg0RCwgMHgzRSwgMHg4NiwgMHg1OCwgMHhDMywgMHhFQiwgMHhCQSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDFBLCAweDg5LCAweDMzLCAweDE4LCAweDIxLCAweDFELCAweDlCLCAweEU3KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MEIsIDB4OUQsIDB4RkYsIDB4QzMsIDB4NzksIDB4QzEsIDB4ODgsIDB4RjgpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgyOCwgMHhENCwgMHg0OCwgMHg1MywgMHhFOCwgMHhBRCwgMHgyMSwgMHgxNiksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDI1NmsxX1RfOF9ZW10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEY1LCAweDdCLCAweERFLCAweENCLCAweEQ4LCAweDM5LCAweDE3LCAweDdDKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RDMsIDB4RjMsIDB4MDMsIDB4RjIsIDB4NUMsIDB4QkMsIDB4QzgsIDB4OEEpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgyNywgMHhBRSwgMHg0QywgMHhCMCwgMHgxNiwgMHhBNCwgMHg5MywgMHg4NiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDcxLCAweDhCLCAweDZCLCAweERDLCAweEQ3LCAweDlBLCAweDNFLCAweDdFKSwKLX07Ci1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMjU2azFfVF85X1hbXSA9IHsKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RDYsIDB4MkQsIDB4N0EsIDB4RDIsIDB4NTksIDB4MDUsIDB4QTIsIDB4ODIpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg1NywgMHg1NiwgMHgwOSwgMHgzMiwgMHhGMSwgMHhFOCwgMHhFMywgMHg3MiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDAzLCAweENBLCAweEU1LCAweDJFLCAweEYwLCAweEZCLCAweDE4LCAweDE5KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QkEsIDB4ODUsIDB4QTksIDB4MjMsIDB4MTUsIDB4MzEsIDB4MUYsIDB4MEUpLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AyNTZrMV9UXzlfWVtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg3NiwgMHhFNSwgMHhCMSwgMHg4NiwgMHhCOSwgMHg2RSwgMHg4RCwgMHhEMyksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDZDLCAweDc3LCAweEZDLCAweEM5LCAweEEzLCAweDNGLCAweDg5LCAweEQyKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4REIsIDB4NkEsIDB4REMsIDB4MjUsIDB4QjAsIDB4QzcsIDB4NDEsIDB4NTQpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgwMiwgMHgxMSwgMHg2QiwgMHhBNiwgMHgxMSwgMHg2MiwgMHhENCwgMHgyRCksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDI1NmsxX1RfMTBfWFtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgxOSwgMHg3RCwgMHgzNCwgMHhCMywgMHgyMCwgMHg3RiwgMHgzNywgMHhBQSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEJELCAweEQ0LCAweDQ1LCAweEU4LCAweEMyLCAweEU5LCAweEM1LCAweEVBKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NUEsIDB4MzIsIDB4M0IsIDB4MjUsIDB4N0UsIDB4NzksIDB4QUYsIDB4RTcpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgzRiwgMHhFNCwgMHg1NCwgMHg3MSwgMHhCRSwgMHgzNSwgMHg0RSwgMHhEMCksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDI1NmsxX1RfMTBfWVtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhCMCwgMHg5NCwgMHhERCwgMHg4RiwgMHhCNSwgMHhDMiwgMHhERCwgMHg3NSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDA3LCAweDQ5LCAweEU5LCAweDFDLCAweDJGLCAweDA4LCAweDQ5LCAweEM2KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NzcsIDB4QjYsIDB4MDMsIDB4ODgsIDB4NkYsIDB4QjgsIDB4MTUsIDB4NjcpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhBNCwgMHhEMywgMHgxQywgMHhGMywgMHhBNSwgMHhFQiwgMHg3OSwgMHgwMSksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDI1NmsxX1RfMTFfWFtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgyNSwgMHhGOSwgMHg0MywgMHg4OCwgMHg4OSwgMHgwRCwgMHgwNiwgMHhFQSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDAyLCAweDJELCAweEY1LCAweDk4LCAweDMyLCAweEY2LCAweEIxLCAweDA1KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MjMsIDB4NzMsIDB4OEYsIDB4MkIsIDB4NTAsIDB4MjcsIDB4MEEsIDB4RTcpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhBNywgMHhFMywgMHhCRCwgMHgxNiwgMHgwNSwgMHhDOCwgMHg5MywgMHgxMiksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDI1NmsxX1RfMTFfWVtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgwQSwgMHg2QSwgMHhGNywgMHhFMywgMHgzRCwgMHhERSwgMHg1RiwgMHgyRiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDQ3LCAweEEzLCAweDlDLCAweDIyLCAweDNDLCAweDMzLCAweDM2LCAweDVEKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MjAsIDB4MjQsIDB4NEMsIDB4NjksIDB4NDUsIDB4NzgsIDB4MTQsIDB4QUUpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg1OSwgMHhGOCwgMHhENCwgMHhCRiwgMHhCOCwgMHhDMCwgMHhBMSwgMHgyNSksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDI1NmsxX1RfMTJfWFtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg3RSwgMHg4OCwgMHhFMSwgMHg5MSwgMHgwMywgMHhFQiwgMHhCMywgMHgyQiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDVDLCAweDExLCAweEExLCAweEVGLCAweDE0LCAweDBELCAweEM0LCAweDdEKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RkUsIDB4RDQsIDB4MEQsIDB4MUQsIDB4OTYsIDB4MzMsIDB4NUMsIDB4MTkpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg3MCwgMHg0NSwgMHgyQSwgMHgxQSwgMHhFNiwgMHg1NywgMHgwNCwgMHg5QiksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDI1NmsxX1RfMTJfWVtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg3MCwgMHhCNSwgMHhBNywgMHg4MCwgMHhFOSwgMHg5MywgMHg5NywgMHg4RCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDVELCAweEI5LCAweDdDLCAweEEwLCAweEM5LCAweDU3LCAweDI2LCAweDQzKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4OUUsIDB4RUYsIDB4NTYsIDB4REEsIDB4NjYsIDB4RjYsIDB4MUIsIDB4OUEpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgxRiwgMHg4OSwgMHg2QiwgMHg5MSwgMHhFMCwgMHhBOSwgMHg2NSwgMHgyQiksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDI1NmsxX1RfMTNfWFtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg5MSwgMHg5OCwgMHg5NiwgMHg5QiwgMHgwNiwgMHg3RCwgMHg1RSwgMHg1QSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDBBLCAweEZBLCAweEMxLCAweDVGLCAweDE5LCAweDM3LCAweDk0LCAweDlEKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4Q0YsIDB4QkUsIDB4NkIsIDB4MUEsIDB4MDUsIDB4RTQsIDB4QkYsIDB4OUYpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg4NCwgMHhDRCwgMHg1RCwgMHgzNSwgMHhCNCwgMHg1MSwgMHhGNywgMHg2NCksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDI1NmsxX1RfMTNfWVtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg2QywgMHhFRiwgMHg5NiwgMHhEQiwgMHhGMiwgMHg2MSwgMHg2MywgMHg1OSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweENCLCAweDA0LCAweDg4LCAweEM5LCAweDlGLCAweDFCLCAweDk0LCAweEI5KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4REIsIDB4MzAsIDB4NzksIDB4N0UsIDB4MjQsIDB4RTcsIDB4NUYsIDB4QjgpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgzRiwgMHhCOCwgMHg5MCwgMHhCNywgMHg5NCwgMHgyNSwgMHhCQiwgMHgwRiksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDI1NmsxX1RfMTRfWFtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg2MiwgMHg3OSwgMHhFQSwgMHhBRCwgMHhDMCwgMHg2RCwgMHgxOCwgMHg1NyksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEU5LCAweEE0LCAweDU4LCAweDJBLCAweDhELCAweDk1LCAweEIzLCAweEU2KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QzgsIDB4QzQsIDB4QzIsIDB4MTIsIDB4MEQsIDB4NzksIDB4RTIsIDB4MkIpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgwMiwgMHg2RiwgMHhCRSwgMHg5NywgMHg0RCwgMHhBNCwgMHgyMCwgMHgwNyksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDI1NmsxX1RfMTRfWVtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhDQSwgMHgzMSwgMHg3MSwgMHhDNiwgMHhBNiwgMHg5MSwgMHhFQiwgMHgxRiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEI0LCAweDlCLCAweEE4LCAweDRBLCAweEU3LCAweDc3LCAweEUxLCAweEFBKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QTksIDB4MDYsIDB4RDMsIDB4M0QsIDB4OTQsIDB4MzAsIDB4RUYsIDB4OEMpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhFNywgMHhERiwgMHhDQSwgMHhGQSwgMHhGNSwgMHgyOCwgMHhGOCwgMHhDOSksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDI1NmsxX1RfMTVfWFtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhDQywgMHhFMSwgMHgzMiwgMHhGRCwgMHgzRSwgMHg4MSwgMHhGOCwgMHgxMSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweENELCAweEYyLCAweDRCLCAweDFELCAweDE5LCAweEM5LCAweDBGLCAweENDKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NTksIDB4QjEsIDB4OEEsIDB4MjIsIDB4OEIsIDB4MDUsIDB4NkIsIDB4NTYpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgzNSwgMHgyMSwgMHhFRiwgMHgzMCwgMHhFQywgMHgwOSwgMHgyQSwgMHg4OSksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDI1NmsxX1RfMTVfWVtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgxNSwgMHg4NCwgMHg0QSwgMHg0NiwgMHgwNywgMHg2QywgMHgzQywgMHg0QyksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweERELCAweDE4LCAweDNBLCAweEY0LCAweENDLCAweEY1LCAweEIyLCAweEYyKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NEYsIDB4OEYsIDB4Q0QsIDB4MEEsIDB4OUMsIDB4RjQsIDB4QkQsIDB4OTUpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgzNywgMHg4OSwgMHg3RiwgMHg4QSwgMHhCMSwgMHg1MiwgMHgzQSwgMHhBQiksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfZWNwX3BvaW50IHNlY3AyNTZrMV9UWzE2XSA9IHsKLSAgICBFQ1BfUE9JTlRfSU5JVF9YWV9aMShzZWNwMjU2azFfVF8wX1gsIHNlY3AyNTZrMV9UXzBfWSksCi0gICAgRUNQX1BPSU5UX0lOSVRfWFlfWjAoc2VjcDI1NmsxX1RfMV9YLCBzZWNwMjU2azFfVF8xX1kpLAotICAgIEVDUF9QT0lOVF9JTklUX1hZX1owKHNlY3AyNTZrMV9UXzJfWCwgc2VjcDI1NmsxX1RfMl9ZKSwKLSAgICBFQ1BfUE9JTlRfSU5JVF9YWV9aMChzZWNwMjU2azFfVF8zX1gsIHNlY3AyNTZrMV9UXzNfWSksCi0gICAgRUNQX1BPSU5UX0lOSVRfWFlfWjAoc2VjcDI1NmsxX1RfNF9YLCBzZWNwMjU2azFfVF80X1kpLAotICAgIEVDUF9QT0lOVF9JTklUX1hZX1owKHNlY3AyNTZrMV9UXzVfWCwgc2VjcDI1NmsxX1RfNV9ZKSwKLSAgICBFQ1BfUE9JTlRfSU5JVF9YWV9aMChzZWNwMjU2azFfVF82X1gsIHNlY3AyNTZrMV9UXzZfWSksCi0gICAgRUNQX1BPSU5UX0lOSVRfWFlfWjAoc2VjcDI1NmsxX1RfN19YLCBzZWNwMjU2azFfVF83X1kpLAotICAgIEVDUF9QT0lOVF9JTklUX1hZX1owKHNlY3AyNTZrMV9UXzhfWCwgc2VjcDI1NmsxX1RfOF9ZKSwKLSAgICBFQ1BfUE9JTlRfSU5JVF9YWV9aMChzZWNwMjU2azFfVF85X1gsIHNlY3AyNTZrMV9UXzlfWSksCi0gICAgRUNQX1BPSU5UX0lOSVRfWFlfWjAoc2VjcDI1NmsxX1RfMTBfWCwgc2VjcDI1NmsxX1RfMTBfWSksCi0gICAgRUNQX1BPSU5UX0lOSVRfWFlfWjAoc2VjcDI1NmsxX1RfMTFfWCwgc2VjcDI1NmsxX1RfMTFfWSksCi0gICAgRUNQX1BPSU5UX0lOSVRfWFlfWjAoc2VjcDI1NmsxX1RfMTJfWCwgc2VjcDI1NmsxX1RfMTJfWSksCi0gICAgRUNQX1BPSU5UX0lOSVRfWFlfWjAoc2VjcDI1NmsxX1RfMTNfWCwgc2VjcDI1NmsxX1RfMTNfWSksCi0gICAgRUNQX1BPSU5UX0lOSVRfWFlfWjAoc2VjcDI1NmsxX1RfMTRfWCwgc2VjcDI1NmsxX1RfMTRfWSksCi0gICAgRUNQX1BPSU5UX0lOSVRfWFlfWjAoc2VjcDI1NmsxX1RfMTVfWCwgc2VjcDI1NmsxX1RfMTVfWSksCi19OwotI2Vsc2UKLSNkZWZpbmUgc2VjcDI1NmsxX1QgTlVMTAotI2VuZGlmCi0jZW5kaWYgLyogTUJFRFRMU19FQ1BfRFBfU0VDUDI1NksxX0VOQUJMRUQgKi8KLQotLyoKLSAqIERvbWFpbiBwYXJhbWV0ZXJzIGZvciBicmFpbnBvb2xQMjU2cjEgKFJGQyA1NjM5IDMuNCkKLSAqLwotI2lmIGRlZmluZWQoTUJFRFRMU19FQ1BfRFBfQlAyNTZSMV9FTkFCTEVEKQotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgYnJhaW5wb29sUDI1NnIxX3BbXSA9IHsKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NzcsIDB4NTMsIDB4NkUsIDB4MUYsIDB4MUQsIDB4NDgsIDB4MTMsIDB4MjApLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgyOCwgMHgyMCwgMHgyNiwgMHhENSwgMHgyMywgMHhGNiwgMHgzQiwgMHg2RSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDcyLCAweDhELCAweDgzLCAweDlELCAweDkwLCAweDBBLCAweDY2LCAweDNFKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QkMsIDB4QTksIDB4RUUsIDB4QTEsIDB4REIsIDB4NTcsIDB4RkIsIDB4QTkpLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IGJyYWlucG9vbFAyNTZyMV9hW10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEQ5LCAweEI1LCAweDMwLCAweEYzLCAweDQ0LCAweDRCLCAweDRBLCAweEU5KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NkMsIDB4NUMsIDB4REMsIDB4MjYsIDB4QzEsIDB4NTUsIDB4ODAsIDB4RkIpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhFNywgMHhGRiwgMHg3QSwgMHg0MSwgMHgzMCwgMHg3NSwgMHhGNiwgMHhFRSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDU3LCAweDMwLCAweDJDLCAweEZDLCAweDc1LCAweDA5LCAweDVBLCAweDdEKSwKLX07Ci1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBicmFpbnBvb2xQMjU2cjFfYltdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhCNiwgMHgwNywgMHg4QywgMHhGRiwgMHgxOCwgMHhEQywgMHhDQywgMHg2QiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweENFLCAweEUxLCAweEY3LCAweDVDLCAweDI5LCAweDE2LCAweDg0LCAweDk1KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QkYsIDB4N0MsIDB4RDcsIDB4QkIsIDB4RDksIDB4QjUsIDB4MzAsIDB4RjMpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg0NCwgMHg0QiwgMHg0QSwgMHhFOSwgMHg2QywgMHg1QywgMHhEQywgMHgyNiksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgYnJhaW5wb29sUDI1NnIxX2d4W10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDYyLCAweDMyLCAweENFLCAweDlBLCAweEJELCAweDUzLCAweDQ0LCAweDNBKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QzIsIDB4MjMsIDB4QkQsIDB4RTMsIDB4RTEsIDB4MjcsIDB4REUsIDB4QjkpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhBRiwgMHhCNywgMHg4MSwgMHhGQywgMHgyRiwgMHg0OCwgMHg0QiwgMHgyQyksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweENCLCAweDU3LCAweDdFLCAweENCLCAweEI5LCAweEFFLCAweEQyLCAweDhCKSwKLX07Ci1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBicmFpbnBvb2xQMjU2cjFfZ3lbXSA9IHsKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4OTcsIDB4NjksIDB4MDQsIDB4MkYsIDB4QzcsIDB4NTQsIDB4MUQsIDB4NUMpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg1NCwgMHg4RSwgMHhFRCwgMHgyRCwgMHgxMywgMHg0NSwgMHg3NywgMHhDMiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEM5LCAweDFELCAweDYxLCAweDE0LCAweDFBLCAweDQ2LCAweEY4LCAweDk3KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RkQsIDB4QzQsIDB4REEsIDB4QzMsIDB4MzUsIDB4RjgsIDB4N0UsIDB4NTQpLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IGJyYWlucG9vbFAyNTZyMV9uW10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEE3LCAweDU2LCAweDQ4LCAweDk3LCAweDgyLCAweDBFLCAweDFFLCAweDkwKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RjcsIDB4QTYsIDB4NjEsIDB4QjUsIDB4QTMsIDB4N0EsIDB4MzksIDB4OEMpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg3MSwgMHg4RCwgMHg4MywgMHg5RCwgMHg5MCwgMHgwQSwgMHg2NiwgMHgzRSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEJDLCAweEE5LCAweEVFLCAweEExLCAweERCLCAweDU3LCAweEZCLCAweEE5KSwKLX07Ci0KLSNpZiBNQkVEVExTX0VDUF9GSVhFRF9QT0lOVF9PUFRJTSA9PSAxCi1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBicmFpbnBvb2xQMjU2cjFfVF8wX1hbXSA9IHsKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NjIsIDB4MzIsIDB4Q0UsIDB4OUEsIDB4QkQsIDB4NTMsIDB4NDQsIDB4M0EpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhDMiwgMHgyMywgMHhCRCwgMHhFMywgMHhFMSwgMHgyNywgMHhERSwgMHhCOSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEFGLCAweEI3LCAweDgxLCAweEZDLCAweDJGLCAweDQ4LCAweDRCLCAweDJDKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4Q0IsIDB4NTcsIDB4N0UsIDB4Q0IsIDB4QjksIDB4QUUsIDB4RDIsIDB4OEIpLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IGJyYWlucG9vbFAyNTZyMV9UXzBfWVtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg5NywgMHg2OSwgMHgwNCwgMHgyRiwgMHhDNywgMHg1NCwgMHgxRCwgMHg1QyksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDU0LCAweDhFLCAweEVELCAweDJELCAweDEzLCAweDQ1LCAweDc3LCAweEMyKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QzksIDB4MUQsIDB4NjEsIDB4MTQsIDB4MUEsIDB4NDYsIDB4RjgsIDB4OTcpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhGRCwgMHhDNCwgMHhEQSwgMHhDMywgMHgzNSwgMHhGOCwgMHg3RSwgMHg1NCksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgYnJhaW5wb29sUDI1NnIxX1RfMV9YW10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDNDLCAweEEyLCAweEVELCAweDUyLCAweEM5LCAweDhDLCAweEUzLCAweEE1KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NzIsIDB4QzksIDB4QzQsIDB4ODcsIDB4M0YsIDB4OTMsIDB4N0EsIDB4RDEpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg5NiwgMHgxMiwgMHg1MywgMHg2MSwgMHgzRSwgMHg3NiwgMHgwOCwgMHhDQiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDA5LCAweDhDLCAweDc0LCAweEY0LCAweDA4LCAweEMzLCAweDc2LCAweDgwKSwKLX07Ci1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBicmFpbnBvb2xQMjU2cjFfVF8xX1lbXSA9IHsKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MDUsIDB4REQsIDB4MDksIDB4QTYsIDB4RUQsIDB4RUUsIDB4QzQsIDB4MzgpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg3NCwgMHhEOSwgMHhCRSwgMHg0QiwgMHhBNSwgMHhCNywgMHgyQiwgMHg2RSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDQyLCAweDIwLCAweDEyLCAweENBLCAweDBBLCAweDM4LCAweDI0LCAweEFCKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MDAsIDB4NzIsIDB4NzEsIDB4OTAsIDB4N0EsIDB4MkUsIDB4QjcsIDB4MjMpLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IGJyYWlucG9vbFAyNTZyMV9UXzJfWFtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgyQywgMHg2NiwgMHhBMSwgMHg5MywgMHgxMCwgMHgyQSwgMHg1MSwgMHgxNyksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDg4LCAweDEwLCAweDExLCAweDEyLCAweEJDLCAweEIwLCAweEI2LCAweDkzKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4M0MsIDB4NTgsIDB4RDcsIDB4MEEsIDB4ODQsIDB4MDUsIDB4QTMsIDB4OUMpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhGNywgMHg4RSwgMHg5NSwgMHg2MSwgMHhEMywgMHgwQiwgMHhERiwgMHgzNiksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgYnJhaW5wb29sUDI1NnIxX1RfMl9ZW10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEY5LCAweDkyLCAweDEyLCAweDBGLCAweDVFLCAweDg3LCAweDcwLCAweDFCKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MzgsIDB4RTksIDB4OUIsIDB4RUIsIDB4M0EsIDB4RkIsIDB4Q0YsIDB4QzQpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhEQywgMHg5MiwgMHhCOSwgMHhGNywgMHg0NSwgMHhEMywgMHgwNiwgMHhCNiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDgyLCAweDI4LCAweDY1LCAweEUxLCAweEM1LCAweDZDLCAweDU3LCAweDE4KSwKLX07Ci1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBicmFpbnBvb2xQMjU2cjFfVF8zX1hbXSA9IHsKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MjgsIDB4MEUsIDB4NzcsIDB4MDEsIDB4ODEsIDB4OUUsIDB4MzgsIDB4NUMpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg3MSwgMHhGMCwgMHhENSwgMHhBNSwgMHg5MSwgMHgyQiwgMHhERiwgMHhDMCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEQ4LCAweEVFLCAweEI2LCAweDI1LCAweEQ2LCAweDk4LCAweERFLCAweDJEKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4N0IsIDB4QTEsIDB4NTUsIDB4NjMsIDB4MzksIDB4RUIsIDB4QjUsIDB4NDcpLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IGJyYWlucG9vbFAyNTZyMV9UXzNfWVtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhCNiwgMHhENiwgMHhCOCwgMHhFMywgMHgxMywgMHhFRCwgMHg3RiwgMHhBMyksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDZDLCAweEU4LCAweEFFLCAweDM2LCAweEI4LCAweENELCAweDE5LCAweDAyKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RjksIDB4ODIsIDB4ODMsIDB4N0EsIDB4N0IsIDB4NDYsIDB4NTYsIDB4RTgpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg0RSwgMHg2MCwgMHg0NiwgMHgxNSwgMHg1QSwgMHhBQywgMHg5OSwgMHgzMCksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgYnJhaW5wb29sUDI1NnIxX1RfNF9YW10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEJGLCAweDYxLCAweDUwLCAweEM2LCAweEZGLCAweDEwLCAweDdELCAweDA0KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4OTIsIDB4NTEsIDB4REYsIDB4QTksIDB4N0QsIDB4NzgsIDB4MjYsIDB4NzQpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg1NiwgMHgxNSwgMHg5QSwgMHhGNywgMHgwMSwgMHhDMSwgMHhCQiwgMHg0MCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDI2LCAweDBGLCAweEU2LCAweDJBLCAweEJELCAweDRBLCAweDlFLCAweDg3KSwKLX07Ci1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBicmFpbnBvb2xQMjU2cjFfVF80X1lbXSA9IHsKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NTcsIDB4RjgsIDB4RDEsIDB4NzcsIDB4RDIsIDB4NDksIDB4QjMsIDB4REQpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgzNiwgMHg4NiwgMHhGQiwgMHg5RSwgMHgxRiwgMHg1QSwgMHg2MCwgMHg0NyksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDk4LCAweEM0LCAweDhELCAweENELCAweDg2LCAweDYxLCAweDJGLCAweEY5KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NDEsIDB4RjYsIDB4QjksIDB4QUMsIDB4MzcsIDB4OUQsIDB4RTksIDB4MjgpLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IGJyYWlucG9vbFAyNTZyMV9UXzVfWFtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhGQSwgMHg3NywgMHhBQSwgMHg5NywgMHg5QywgMHgwQiwgMHgwNCwgMHgyMCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDgwLCAweEE2LCAweDYwLCAweDgxLCAweENFLCAweDI1LCAweDEzLCAweDNFKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MjQsIDB4MDAsIDB4RjMsIDB4QkIsIDB4ODIsIDB4OTksIDB4OTUsIDB4QjcpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg0NywgMHg1QSwgMHhDRSwgMHg5MCwgMHg3MSwgMHgzOCwgMHgyRiwgMHgxMCksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgYnJhaW5wb29sUDI1NnIxX1RfNV9ZW10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEE3LCAweDFBLCAweEMwLCAweDg0LCAweDI3LCAweEQ2LCAweDlELCAweEI3KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MzQsIDB4MzcsIDB4NTIsIDB4MTYsIDB4MTMsIDB4MEUsIDB4Q0UsIDB4OTIpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgxRSwgMHhCRiwgMHg1QSwgMHhEQiwgMHhEQiwgMHg2RSwgMHgxRSwgMHg2OSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDNFLCAweEI3LCAweDVFLCAweEY5LCAweDg2LCAweERELCAweDhBLCAweDVDKSwKLX07Ci1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBicmFpbnBvb2xQMjU2cjFfVF82X1hbXSA9IHsKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4M0QsIDB4QUIsIDB4NUMsIDB4OEQsIDB4MUQsIDB4RjIsIDB4MkQsIDB4MUUpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg2NSwgMHhDNSwgMHhGOCwgMHhGNywgMHgxRCwgMHg5NiwgMHgwQiwgMHg0RCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEFDLCAweDRDLCAweEE3LCAweDQ1LCAweDIwLCAweDZBLCAweDFFLCAweDVCKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MjEsIDB4NUQsIDB4RUYsIDB4REUsIDB4RUUsIDB4MzksIDB4NDQsIDB4MTkpLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IGJyYWlucG9vbFAyNTZyMV9UXzZfWVtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg0QiwgMHgyRiwgMHg2RCwgMHg1MiwgMHhDOSwgMHg1OCwgMHg2MCwgMHhFOCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEMzLCAweEM5LCAweDYyLCAweENCLCAweDM4LCAweDNDLCAweDU1LCAweENBKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RkYsIDB4QTUsIDB4MDksIDB4MTAsIDB4ODgsIDB4REIsIDB4RTMsIDB4QkQpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg1MiwgMHhFMCwgMHgzQywgMHhDRSwgMHgwNiwgMHgwQiwgMHg0QiwgMHg1RCksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgYnJhaW5wb29sUDI1NnIxX1RfN19YW10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEIxLCAweDFELCAweEI0LCAweDEwLCAweDc2LCAweDhGLCAweEJBLCAweDA5KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NTcsIDB4NzAsIDB4NUEsIDB4MDcsIDB4RjUsIDB4MUEsIDB4NzQsIDB4QzcpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgwQiwgMHhFOSwgMHg5NCwgMHhBOCwgMHhDMCwgMHhENSwgMHg0QSwgMHg0QSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDNFLCAweDZELCAweEQ0LCAweEU4LCAweDlCLCAweEU5LCAweDZELCAweDBFKSwKLX07Ci1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBicmFpbnBvb2xQMjU2cjFfVF83X1lbXSA9IHsKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NjUsIDB4MDAsIDB4MzIsIDB4NDEsIDB4NTcsIDB4ODQsIDB4ODksIDB4NTIpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhFRSwgMHhDNywgMHgxNCwgMHhFQywgMHhFOSwgMHgyNywgMHhGRiwgMHhGMyksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDlBLCAweDY3LCAweDlFLCAweEZCLCAweEI2LCAweEI4LCAweDk2LCAweEYzKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RTUsIDB4NEEsIDB4RTMsIDB4OTcsIDB4NEIsIDB4NTgsIDB4REUsIDB4MzApLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IGJyYWlucG9vbFAyNTZyMV9UXzhfWFtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhBNiwgMHgxRSwgMHg1QywgMHhGNSwgMHg3RiwgMHhENSwgMHhENCwgMHhBQSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDVELCAweDA4LCAweDdBLCAweEYxLCAweEJELCAweDg5LCAweEM3LCAweDFFKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4M0EsIDB4RjksIDB4MTEsIDB4MUIsIDB4RjUsIDB4M0MsIDB4NkQsIDB4OEMpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgxOSwgMHg1MCwgMHhFNSwgMHg2OSwgMHgxRCwgMHg1OSwgMHhGQywgMHgwQyksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgYnJhaW5wb29sUDI1NnIxX1RfOF9ZW10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEYxLCAweDJGLCAweEY4LCAweDNGLCAweEVDLCAweDU1LCAweDk5LCAweDU3KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NDEsIDB4QTcsIDB4MjksIDB4OTAsIDB4NDMsIDB4ODEsIDB4MzEsIDB4NEMpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhDMywgMHgxOCwgMHg0NCwgMHg1MCwgMHg1RCwgMHg3NiwgMHhDQiwgMHhERCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEYwLCAweEM1LCAweDVCLCAweDlBLCAweDAzLCAweEU2LCAweDE3LCAweDM5KSwKLX07Ci1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBicmFpbnBvb2xQMjU2cjFfVF85X1hbXSA9IHsKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MjEsIDB4ODksIDB4RkMsIDB4NTUsIDB4OTQsIDB4OTEsIDB4NkEsIDB4QTIpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg3NCwgMHg0NiwgMHgzNSwgMHhGMiwgMHgzQSwgMHg0MiwgMHgwOCwgMHgyRiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEQzLCAweEQyLCAweDc2LCAweDQ5LCAweDQyLCAweDg3LCAweEQzLCAweDdGKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4OTAsIDB4RUEsIDB4QTAsIDB4NTIsIDB4RjEsIDB4NkEsIDB4MzAsIDB4NTcpLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IGJyYWlucG9vbFAyNTZyMV9UXzlfWVtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgwMCwgMHhCMiwgMHg1NywgMHhBMywgMHg4QSwgMHg0RCwgMHgxQiwgMHgzQyksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEZDLCAweEEzLCAweDk5LCAweDk0LCAweEI1LCAweDNELCAweDY0LCAweDA5KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MzUsIDB4QzMsIDB4RDcsIDB4NTMsIDB4RjYsIDB4NDksIDB4MUMsIDB4NjApLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgyNywgMHgyMywgMHg0MSwgMHg0RCwgMHhGQiwgMHg3QSwgMHg1QywgMHg1MyksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgYnJhaW5wb29sUDI1NnIxX1RfMTBfWFtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhDQSwgMHhCOCwgMHgxNSwgMHg2NSwgMHg1QywgMHg4NSwgMHg5NCwgMHhENyksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEFDLCAweDM3LCAweEM3LCAweEY4LCAweDdFLCAweEFFLCAweDZDLCAweDEwKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NTMsIDB4RDgsIDB4MTEsIDB4NTQsIDB4OTgsIDB4NDQsIDB4RTMsIDB4RjEpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhFNCwgMHg0RCwgMHhBNiwgMHg0QiwgMHgyOCwgMHhGMiwgMHg1NywgMHg5RSksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgYnJhaW5wb29sUDI1NnIxX1RfMTBfWVtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhGNiwgMHhEMCwgMHhFQiwgMHgxRSwgMHhBQSwgMHgzMCwgMHhEMywgMHg2QSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDU4LCAweDlCLCAweDRELCAweEE3LCAweDczLCAweDZFLCAweEI2LCAweDQ1KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NUQsIDB4NDcsIDB4RjYsIDB4RUQsIDB4MzcsIDB4RUYsIDB4NzEsIDB4NEQpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhBOCwgMHhCNSwgMHg0OSwgMHg2MSwgMHg1RSwgMHg0NSwgMHhGNiwgMHg0QSksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgYnJhaW5wb29sUDI1NnIxX1RfMTFfWFtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhFRiwgMHgwRSwgMHhCMywgMHg4NCwgMHgzQSwgMHg2MywgMHg3MiwgMHg4NCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDZELCAweDUzLCAweDVDLCAweEE3LCAweEM2LCAweDJFLCAweEFCLCAweDlFKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RUIsIDB4MEYsIDB4OEYsIDB4ODcsIDB4NTAsIDB4MjgsIDB4QjQsIDB4QUUpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg1QywgMHg5OCwgMHg0QSwgMHg5OCwgMHgzMSwgMHg4NiwgMHhDQSwgMHg1MSksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgYnJhaW5wb29sUDI1NnIxX1RfMTFfWVtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhCRSwgMHhDOSwgMHhFMiwgMHhGRCwgMHg1RCwgMHgxRiwgMHhFOCwgMHhDMiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEQ1LCAweDkwLCAweDkxLCAweEM0LCAweDg0LCAweEYwLCAweEJBLCAweEM1KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NkMsIDB4NUEsIDB4QjMsIDB4NEUsIDB4RkIsIDB4RTAsIDB4NTcsIDB4RTgpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg2QiwgMHgwQiwgMHg5MCwgMHhBNiwgMHhGRCwgMHg5RCwgMHg4RSwgMHgwMiksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgYnJhaW5wb29sUDI1NnIxX1RfMTJfWFtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhGOCwgMHg0MSwgMHg4RiwgMHgzMSwgMHhGQSwgMHg1QSwgMHhGNiwgMHgzMyksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEFDLCAweEU5LCAweEUzLCAweEY2LCAweEUwLCAweDRBLCAweEU3LCAweEQyKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4ODQsIDB4NEUsIDB4Q0QsIDB4QTIsIDB4MjIsIDB4MTQsIDB4RDQsIDB4MTIpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg3QywgMHhFRCwgMHgyMSwgMHhCNywgMHgwRiwgMHg1MywgMHgxMCwgMHgxNyksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgYnJhaW5wb29sUDI1NnIxX1RfMTJfWVtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgwNSwgMHgwNiwgMHgyNCwgMHgyQywgMHg0RSwgMHhEMSwgMHgxRSwgMHg5RiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEQ3LCAweDNGLCAweEMxLCAweDlGLCAweEFCLCAweEYwLCAweDM3LCAweDk1KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MDMsIDB4NUUsIDB4MTIsIDB4Q0UsIDB4ODMsIDB4MUIsIDB4MkEsIDB4MTgpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg2MSwgMHg2NSwgMHhDRiwgMHhFOCwgMHg1QywgMHhBNSwgMHhBMiwgMHg3MCksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgYnJhaW5wb29sUDI1NnIxX1RfMTNfWFtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhCOCwgMHg4NiwgMHg3NiwgMHgzQSwgMHg5NCwgMHhGNiwgMHgxRCwgMHhDMSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDFELCAweERBLCAweEM5LCAweEE2LCAweDI5LCAweDkzLCAweDE1LCAweDEwKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NkQsIDB4NjEsIDB4NkEsIDB4N0QsIDB4QzcsIDB4QTksIDB4RjMsIDB4NzYpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg0QSwgMHgwMywgMHg3MSwgMHhBMiwgMHgxNSwgMHhDRSwgMHg1MCwgMHg3MiksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgYnJhaW5wb29sUDI1NnIxX1RfMTNfWVtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhCNiwgMHhEMCwgMHhBOCwgMHgxRSwgMHg5MSwgMHhDNCwgMHg0RiwgMHgyNCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDJELCAweDRCLCAweDdFLCAweEQ3LCAweDcxLCAweDU4LCAweDdFLCAweDFFKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4OTMsIDB4NDUsIDB4QUYsIDB4MkEsIDB4MTgsIDB4OTMsIDB4OTUsIDB4M0IpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgxQiwgMHg4RiwgMHhDNywgMHhGQSwgMHg0QywgMHg3QSwgMHg4NiwgMHg1NCksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgYnJhaW5wb29sUDI1NnIxX1RfMTRfWFtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg5NywgMHhBRiwgMHg2OCwgMHgzQSwgMHgyMywgMHhDMSwgMHgyRSwgMHhCRiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDg5LCAweDUwLCAweDExLCAweDY3LCAweDM5LCAweEI5LCAweEFGLCAweDQ4KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MTksIDB4ODYsIDB4QUEsIDB4MUUsIDB4ODgsIDB4MjEsIDB4MjksIDB4OEIpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhDRCwgMHgyOCwgMHhBNCwgMHg5RCwgMHg4OSwgMHhBOSwgMHg5QSwgMHgxMCksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgYnJhaW5wb29sUDI1NnIxX1RfMTRfWVtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg5MSwgMHhCQSwgMHgwNCwgMHg2NywgMHhCNywgMHgwMSwgMHg0MCwgMHgzOCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDA4LCAweEU5LCAweDA5LCAweEEzLCAweENBLCAweEE2LCAweDM3LCAweEY2KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NkMsIDB4OTcsIDB4QTgsIDB4QjYsIDB4M0MsIDB4RUUsIDB4OTAsIDB4M0QpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhEQywgMHhFRCwgMHhDNCwgMHhGNywgMHhDMywgMHg5NSwgMHhFQywgMHg4NSksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgYnJhaW5wb29sUDI1NnIxX1RfMTVfWFtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhGNSwgMHg4NCwgMHhCRCwgMHhFQiwgMHhENSwgMHg2NCwgMHhCQiwgMHg5RCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweERCLCAweDlCLCAweEUyLCAweDI4LCAweDUwLCAweEMyLCAweDcyLCAweDQwKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MzksIDB4RjIsIDB4NzQsIDB4RDEsIDB4MjYsIDB4QkYsIDB4MzIsIDB4NjgpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgzNiwgMHhDQiwgMHhBRiwgMHg3MiwgMHhEQiwgMHg2RCwgMHgzMCwgMHg5OCksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgYnJhaW5wb29sUDI1NnIxX1RfMTVfWVtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhCMywgMHg1MCwgMHg4NSwgMHhGNCwgMHgyQiwgMHg0OCwgMHhDMSwgMHhBRCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEMwLCAweDI4LCAweEJCLCAweDExLCAweEJBLCAweDVCLCAweDIyLCAweDZDKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QUQsIDB4QTEsIDB4RTUsIDB4NUMsIDB4QzksIDB4MUQsIDB4NDQsIDB4NDUpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhENCwgMHhFOCwgMHhFNiwgMHg2RiwgMHhCQiwgMHhDMSwgMHg4MSwgMHg3RiksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfZWNwX3BvaW50IGJyYWlucG9vbFAyNTZyMV9UWzE2XSA9IHsKLSAgICBFQ1BfUE9JTlRfSU5JVF9YWV9aMShicmFpbnBvb2xQMjU2cjFfVF8wX1gsIGJyYWlucG9vbFAyNTZyMV9UXzBfWSksCi0gICAgRUNQX1BPSU5UX0lOSVRfWFlfWjAoYnJhaW5wb29sUDI1NnIxX1RfMV9YLCBicmFpbnBvb2xQMjU2cjFfVF8xX1kpLAotICAgIEVDUF9QT0lOVF9JTklUX1hZX1owKGJyYWlucG9vbFAyNTZyMV9UXzJfWCwgYnJhaW5wb29sUDI1NnIxX1RfMl9ZKSwKLSAgICBFQ1BfUE9JTlRfSU5JVF9YWV9aMChicmFpbnBvb2xQMjU2cjFfVF8zX1gsIGJyYWlucG9vbFAyNTZyMV9UXzNfWSksCi0gICAgRUNQX1BPSU5UX0lOSVRfWFlfWjAoYnJhaW5wb29sUDI1NnIxX1RfNF9YLCBicmFpbnBvb2xQMjU2cjFfVF80X1kpLAotICAgIEVDUF9QT0lOVF9JTklUX1hZX1owKGJyYWlucG9vbFAyNTZyMV9UXzVfWCwgYnJhaW5wb29sUDI1NnIxX1RfNV9ZKSwKLSAgICBFQ1BfUE9JTlRfSU5JVF9YWV9aMChicmFpbnBvb2xQMjU2cjFfVF82X1gsIGJyYWlucG9vbFAyNTZyMV9UXzZfWSksCi0gICAgRUNQX1BPSU5UX0lOSVRfWFlfWjAoYnJhaW5wb29sUDI1NnIxX1RfN19YLCBicmFpbnBvb2xQMjU2cjFfVF83X1kpLAotICAgIEVDUF9QT0lOVF9JTklUX1hZX1owKGJyYWlucG9vbFAyNTZyMV9UXzhfWCwgYnJhaW5wb29sUDI1NnIxX1RfOF9ZKSwKLSAgICBFQ1BfUE9JTlRfSU5JVF9YWV9aMChicmFpbnBvb2xQMjU2cjFfVF85X1gsIGJyYWlucG9vbFAyNTZyMV9UXzlfWSksCi0gICAgRUNQX1BPSU5UX0lOSVRfWFlfWjAoYnJhaW5wb29sUDI1NnIxX1RfMTBfWCwgYnJhaW5wb29sUDI1NnIxX1RfMTBfWSksCi0gICAgRUNQX1BPSU5UX0lOSVRfWFlfWjAoYnJhaW5wb29sUDI1NnIxX1RfMTFfWCwgYnJhaW5wb29sUDI1NnIxX1RfMTFfWSksCi0gICAgRUNQX1BPSU5UX0lOSVRfWFlfWjAoYnJhaW5wb29sUDI1NnIxX1RfMTJfWCwgYnJhaW5wb29sUDI1NnIxX1RfMTJfWSksCi0gICAgRUNQX1BPSU5UX0lOSVRfWFlfWjAoYnJhaW5wb29sUDI1NnIxX1RfMTNfWCwgYnJhaW5wb29sUDI1NnIxX1RfMTNfWSksCi0gICAgRUNQX1BPSU5UX0lOSVRfWFlfWjAoYnJhaW5wb29sUDI1NnIxX1RfMTRfWCwgYnJhaW5wb29sUDI1NnIxX1RfMTRfWSksCi0gICAgRUNQX1BPSU5UX0lOSVRfWFlfWjAoYnJhaW5wb29sUDI1NnIxX1RfMTVfWCwgYnJhaW5wb29sUDI1NnIxX1RfMTVfWSksCi19OwotI2Vsc2UKLSNkZWZpbmUgYnJhaW5wb29sUDI1NnIxX1QgTlVMTAotI2VuZGlmCi0KLSNlbmRpZiAvKiBNQkVEVExTX0VDUF9EUF9CUDI1NlIxX0VOQUJMRUQgKi8KLQotLyoKLSAqIERvbWFpbiBwYXJhbWV0ZXJzIGZvciBicmFpbnBvb2xQMzg0cjEgKFJGQyA1NjM5IDMuNikKLSAqLwotI2lmIGRlZmluZWQoTUJFRFRMU19FQ1BfRFBfQlAzODRSMV9FTkFCTEVEKQotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgYnJhaW5wb29sUDM4NHIxX3BbXSA9IHsKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NTMsIDB4RUMsIDB4MDcsIDB4MzEsIDB4MTMsIDB4MDAsIDB4NDcsIDB4ODcpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg3MSwgMHgxQSwgMHgxRCwgMHg5MCwgMHgyOSwgMHhBNywgMHhEMywgMHhBQyksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDIzLCAweDExLCAweEI3LCAweDdGLCAweDE5LCAweERBLCAweEIxLCAweDEyKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QjQsIDB4NTYsIDB4NTQsIDB4RUQsIDB4MDksIDB4NzEsIDB4MkYsIDB4MTUpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhERiwgMHg0MSwgMHhFNiwgMHg1MCwgMHg3RSwgMHg2RiwgMHg1RCwgMHgwRiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDI4LCAweDZELCAweDM4LCAweEEzLCAweDgyLCAweDFFLCAweEI5LCAweDhDKSwKLX07Ci1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBicmFpbnBvb2xQMzg0cjFfYVtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgyNiwgMHgyOCwgMHhDRSwgMHgyMiwgMHhERCwgMHhDNywgMHhBOCwgMHgwNCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEVCLCAweEQ0LCAweDNBLCAweDUwLCAweDRBLCAweDgxLCAweEE1LCAweDhBKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MEYsIDB4RjksIDB4OTEsIDB4QkEsIDB4RUYsIDB4NjUsIDB4OTEsIDB4MTMpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg4NywgMHgyNywgMHhCMiwgMHg0RiwgMHg4RSwgMHhBMiwgMHhCRSwgMHhDMiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEEwLCAweEFGLCAweDA1LCAweENFLCAweDBBLCAweDA4LCAweDcyLCAweDNDKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MEMsIDB4MTUsIDB4OEMsIDB4M0QsIDB4QzYsIDB4ODIsIDB4QzMsIDB4N0IpLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IGJyYWlucG9vbFAzODRyMV9iW10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDExLCAweDRDLCAweDUwLCAweEZBLCAweDk2LCAweDg2LCAweEI3LCAweDNBKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4OTQsIDB4QzksIDB4REIsIDB4OTUsIDB4MDIsIDB4MzksIDB4QjQsIDB4N0MpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhENSwgMHg2MiwgMHhFQiwgMHgzRSwgMHhBNSwgMHgwRSwgMHg4OCwgMHgyRSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEE2LCAweEQyLCAweERDLCAweDA3LCAweEUxLCAweDdELCAweEI3LCAweDJGKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4N0MsIDB4NDQsIDB4RjAsIDB4MTYsIDB4NTQsIDB4QjUsIDB4MzksIDB4OEIpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgyNiwgMHgyOCwgMHhDRSwgMHgyMiwgMHhERCwgMHhDNywgMHhBOCwgMHgwNCksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgYnJhaW5wb29sUDM4NHIxX2d4W10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDFFLCAweEFGLCAweEQ0LCAweDQ3LCAweEUyLCAweEIyLCAweDg3LCAweEVGKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QUEsIDB4NDYsIDB4RDYsIDB4MzYsIDB4MzQsIDB4RTAsIDB4MjYsIDB4RTgpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhFOCwgMHgxMCwgMHhCRCwgMHgwQywgMHhGRSwgMHhDQSwgMHg3RiwgMHhEQiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEUzLCAweDRGLCAweEYxLCAweDdFLCAweEU3LCAweEEzLCAweDQ3LCAweDg4KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NkIsIDB4M0YsIDB4QzEsIDB4QjcsIDB4ODEsIDB4M0EsIDB4QTYsIDB4QTIpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhGRiwgMHg0NSwgMHhDRiwgMHg2OCwgMHhGMCwgMHg2NCwgMHgxQywgMHgxRCksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgYnJhaW5wb29sUDM4NHIxX2d5W10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDE1LCAweDUzLCAweDNDLCAweDI2LCAweDQxLCAweDAzLCAweDgyLCAweDQyKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MTEsIDB4ODEsIDB4OTEsIDB4NzcsIDB4MjEsIDB4NDYsIDB4NDYsIDB4MEUpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgyOCwgMHgyOSwgMHg5MSwgMHhGOSwgMHg0RiwgMHgwNSwgMHg5QywgMHhFMSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDY0LCAweDU4LCAweEVDLCAweEZFLCAweDI5LCAweDBCLCAweEI3LCAweDYyKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NTIsIDB4RDUsIDB4Q0YsIDB4OTUsIDB4OEUsIDB4RUIsIDB4QjEsIDB4NUMpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhBNCwgMHhDMiwgMHhGOSwgMHgyMCwgMHg3NSwgMHgxRCwgMHhCRSwgMHg4QSksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgYnJhaW5wb29sUDM4NHIxX25bXSA9IHsKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NjUsIDB4NjUsIDB4MDQsIDB4RTksIDB4MDIsIDB4MzIsIDB4ODgsIDB4M0IpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgxMCwgMHhDMywgMHg3RiwgMHg2QiwgMHhBRiwgMHhCNiwgMHgzQSwgMHhDRiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEE3LCAweDI1LCAweDA0LCAweEFDLCAweDZDLCAweDZFLCAweDE2LCAweDFGKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QjMsIDB4NTYsIDB4NTQsIDB4RUQsIDB4MDksIDB4NzEsIDB4MkYsIDB4MTUpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhERiwgMHg0MSwgMHhFNiwgMHg1MCwgMHg3RSwgMHg2RiwgMHg1RCwgMHgwRiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDI4LCAweDZELCAweDM4LCAweEEzLCAweDgyLCAweDFFLCAweEI5LCAweDhDKSwKLX07Ci0KLSNpZiBNQkVEVExTX0VDUF9GSVhFRF9QT0lOVF9PUFRJTSA9PSAxCi1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBicmFpbnBvb2xQMzg0cjFfVF8wX1hbXSA9IHsKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MUUsIDB4QUYsIDB4RDQsIDB4NDcsIDB4RTIsIDB4QjIsIDB4ODcsIDB4RUYpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhBQSwgMHg0NiwgMHhENiwgMHgzNiwgMHgzNCwgMHhFMCwgMHgyNiwgMHhFOCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEU4LCAweDEwLCAweEJELCAweDBDLCAweEZFLCAweENBLCAweDdGLCAweERCKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RTMsIDB4NEYsIDB4RjEsIDB4N0UsIDB4RTcsIDB4QTMsIDB4NDcsIDB4ODgpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg2QiwgMHgzRiwgMHhDMSwgMHhCNywgMHg4MSwgMHgzQSwgMHhBNiwgMHhBMiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEZGLCAweDQ1LCAweENGLCAweDY4LCAweEYwLCAweDY0LCAweDFDLCAweDFEKSwKLX07Ci1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBicmFpbnBvb2xQMzg0cjFfVF8wX1lbXSA9IHsKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MTUsIDB4NTMsIDB4M0MsIDB4MjYsIDB4NDEsIDB4MDMsIDB4ODIsIDB4NDIpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgxMSwgMHg4MSwgMHg5MSwgMHg3NywgMHgyMSwgMHg0NiwgMHg0NiwgMHgwRSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDI4LCAweDI5LCAweDkxLCAweEY5LCAweDRGLCAweDA1LCAweDlDLCAweEUxKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NjQsIDB4NTgsIDB4RUMsIDB4RkUsIDB4MjksIDB4MEIsIDB4QjcsIDB4NjIpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg1MiwgMHhENSwgMHhDRiwgMHg5NSwgMHg4RSwgMHhFQiwgMHhCMSwgMHg1QyksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEE0LCAweEMyLCAweEY5LCAweDIwLCAweDc1LCAweDFELCAweEJFLCAweDhBKSwKLX07Ci1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBicmFpbnBvb2xQMzg0cjFfVF8xX1hbXSA9IHsKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4OTMsIDB4RDgsIDB4OEEsIDB4NTQsIDB4NDEsIDB4RDYsIDB4NkIsIDB4MUQpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhFMiwgMHgzQiwgMHhGMSwgMHgyMiwgMHhGRCwgMHgyRCwgMHg0QiwgMHgwMyksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDAxLCAweDU1LCAweEUzLCAweDMzLCAweEYwLCAweDczLCAweDUyLCAweDVBKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QzEsIDB4M0YsIDB4MzAsIDB4MjYsIDB4Q0EsIDB4N0YsIDB4NTIsIDB4QTMpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhEMywgMHg2RSwgMHgxNywgMHg5QiwgMHhENSwgMHgyQSwgMHg0QSwgMHgzMSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDg2LCAweERBLCAweDZCLCAweEU1LCAweDAzLCAweDA3LCAweDFELCAweDJFKSwKLX07Ci1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBicmFpbnBvb2xQMzg0cjFfVF8xX1lbXSA9IHsKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NTEsIDB4N0EsIDB4QUYsIDB4OTgsIDB4RTMsIDB4QTQsIDB4RjYsIDB4MTkpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhFQywgMHg3RCwgMHhGRSwgMHg1MSwgMHg0MCwgMHgzQiwgMHg0NywgMHhEMiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEZDLCAweDg4LCAweEVDLCAweEM0LCAweEUyLCAweDhGLCAweENCLCAweEE0KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MzAsIDB4RTIsIDB4ODgsIDB4MkQsIDB4NEUsIDB4NTAsIDB4RUIsIDB4OUEpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgxMywgMHg1NCwgMHg5NCwgMHg1RSwgMHhGNCwgMHg3RiwgMHgzQSwgMHgwNCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweENELCAweDA3LCAweDFDLCAweEUxLCAweEJELCAweDBGLCAweEY4LCAweDYzKSwKLX07Ci1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBicmFpbnBvb2xQMzg0cjFfVF8yX1hbXSA9IHsKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4OTQsIDB4OTIsIDB4MjgsIDB4MkUsIDB4MzIsIDB4MDQsIDB4QjEsIDB4NEQpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgyNSwgMHg4MiwgMHg0NCwgMHg0MywgMHg3NiwgMHgwRCwgMHg1NSwgMHhCRiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDVCLCAweEUzLCAweEZGLCAweDg5LCAweDQ2LCAweERFLCAweDRFLCAweEZFKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NUIsIDB4MjIsIDB4QkIsIDB4NjcsIDB4MUEsIDB4ODEsIDB4RUUsIDB4MjcpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhDOCwgMHg1NCwgMHhFMiwgMHg3QSwgMHhBRSwgMHhEQSwgMHgyQywgMHhEMCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDc0LCAweDlBLCAweDkwLCAweEFBLCAweDZFLCAweDhCLCAweENDLCAweDVGKSwKLX07Ci1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBicmFpbnBvb2xQMzg0cjFfVF8yX1lbXSA9IHsKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MTYsIDB4NDAsIDB4QUMsIDB4RUQsIDB4N0QsIDB4MzcsIDB4ODcsIDB4QUMpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg5OCwgMHhGOCwgMHhCMSwgMHg4MCwgMHg0QywgMHg4QywgMHgwNCwgMHg0MiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEMyLCAweDk4LCAweDJDLCAweEFELCAweDMwLCAweDY5LCAweDM1LCAweEMwKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MzIsIDB4MkUsIDB4MDAsIDB4MkYsIDB4NDQsIDB4OEMsIDB4RjAsIDB4QzApLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgxNiwgMHg1OCwgMHgwNywgMHhENywgMHhDRCwgMHg2MCwgMHhBMSwgMHg1QiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEFGLCAweEZCLCAweDdCLCAweDAzLCAweDA1LCAweDVFLCAweDc5LCAweDczKSwKLX07Ci1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBicmFpbnBvb2xQMzg0cjFfVF8zX1hbXSA9IHsKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QzgsIDB4MTcsIDB4Q0UsIDB4MzgsIDB4NEIsIDB4NUUsIDB4NUIsIDB4QzgpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg2MCwgMHgwRSwgMHgwQSwgMHg2MSwgMHg5RCwgMHg3QywgMHg2MiwgMHgwOCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDI1LCAweEYwLCAweDk4LCAweDcxLCAweDdGLCAweDE3LCAweDI2LCAweEQ3KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4ODMsIDB4RDMsIDB4RkEsIDB4M0MsIDB4RjAsIDB4NzAsIDB4MDcsIDB4ODIpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgyOSwgMHg0NywgMHg1QywgMHgwOSwgMHg0MywgMHhCNywgMHg2NSwgMHgxNSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDBFLCAweEE5LCAweEE3LCAweDNFLCAweEZBLCAweEYzLCAweEVDLCAweDIyKSwKLX07Ci1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBicmFpbnBvb2xQMzg0cjFfVF8zX1lbXSA9IHsKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4REEsIDB4NzgsIDB4MjIsIDB4MkIsIDB4NTgsIDB4NzEsIDB4RkEsIDB4QUEpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgwMCwgMHgzMCwgMHhDRSwgMHg2QSwgMHhCMywgMHhCMCwgMHg0RiwgMHg4MyksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweENGLCAweDk1LCAweDIwLCAweEE5LCAweDIzLCAweEMyLCAweDY1LCAweEU3KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NTUsIDB4Q0YsIDB4MDMsIDB4NUIsIDB4OEEsIDB4ODAsIDB4NDQsIDB4QkIpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg1QywgMHhGOCwgMHg5MSwgMHhGNywgMHhENSwgMHhFRCwgMHhFQSwgMHg4MSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDQwLCAweDVCLCAweDE2LCAweDEwLCAweDI1LCAweEFDLCAweDJBLCAweDE3KSwKLX07Ci1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBicmFpbnBvb2xQMzg0cjFfVF80X1hbXSA9IHsKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RjIsIDB4RUMsIDB4REMsIDB4QzQsIDB4N0IsIDB4OEMsIDB4NkIsIDB4RTkpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgyQiwgMHhCQiwgMHgxQywgMHhEMywgMHg1QSwgMHhFRSwgMHhEOSwgMHg5NyksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDY0LCAweDVELCAweDMwLCAweDVFLCAweEY3LCAweEIyLCAweDQxLCAweDlEKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RUQsIDB4Q0UsIDB4MEYsIDB4MUEsIDB4QzYsIDB4NDEsIDB4NjQsIDB4NjIpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhGMiwgMHgxOCwgMHhFMSwgMHhFMywgMHg4MiwgMHgxNSwgMHg2NiwgMHg0QiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDlCLCAweEUyLCAweDI0LCAweDA0LCAweDcyLCAweDM5LCAweEEwLCAweDdDKSwKLX07Ci1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBicmFpbnBvb2xQMzg0cjFfVF80X1lbXSA9IHsKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MkIsIDB4NTEsIDB4QTIsIDB4NTgsIDB4ODgsIDB4NjIsIDB4RTEsIDB4MDIpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg1OCwgMHhEMiwgMHg2NSwgMHgxNCwgMHhFOSwgMHg0QywgMHg4MiwgMHgzMCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweERDLCAweEUxLCAweEFDLCAweDg3LCAweEFFLCAweDMxLCAweDFBLCAweDdBKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4ODUsIDB4NEYsIDB4OTYsIDB4MUUsIDB4ODUsIDB4N0EsIDB4QzMsIDB4MkIpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhGMCwgMHg4NiwgMHhCQiwgMHhGMCwgMHhDMCwgMHg5RCwgMHgwOCwgMHg3QiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEJELCAweDUzLCAweDAzLCAweDA5LCAweDgwLCAweDkxLCAweEVGLCAweDY4KSwKLX07Ci1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBicmFpbnBvb2xQMzg0cjFfVF81X1hbXSA9IHsKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MkQsIDB4RDcsIDB4QUYsIDB4NkYsIDB4NjksIDB4N0IsIDB4ODgsIDB4QTEpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhBRiwgMHgxMywgMHhFNCwgMHgzMCwgMHhBMiwgMHg0NywgMHhCNSwgMHhDMSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDBGLCAweEQyLCAweEMwLCAweERELCAweDhBLCAweDFDLCAweDNDLCAweEYyKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RjksIDB4OEMsIDB4QjMsIDB4NEMsIDB4QkEsIDB4OEIsIDB4NkQsIDB4Q0YpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg2QiwgMHhDNywgMHhBMSwgMHhBOCwgMHg2RSwgMHgzQywgMHg0RiwgMHhGMSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDk0LCAweDRBLCAweDk3LCAweEM4LCAweDAzLCAweDZGLCAweDAxLCAweDgyKSwKLX07Ci1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBicmFpbnBvb2xQMzg0cjFfVF81X1lbXSA9IHsKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NzQsIDB4MTgsIDB4MTIsIDB4QTksIDB4MzksIDB4RDUsIDB4MjIsIDB4MjYpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg0NywgMHhBNywgMHhDMCwgMHhCRCwgMHg5RCwgMHg4RCwgMHg3OCwgMHgzOCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEE5LCAweEIzLCAweEQwLCAweDdGLCAweERGLCAweEQwLCAweDMwLCAweERFKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MzcsIDB4MjUsIDB4NzMsIDB4OTYsIDB4RUMsIDB4QTgsIDB4MUQsIDB4N0MpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg5MSwgMHhEMSwgMHg2NSwgMHg2NiwgMHhEQywgMHhEOSwgMHhDRiwgMHhERiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDk1LCAweEVELCAweDdCLCAweDM3LCAweEFELCAweEUyLCAweEJFLCAweDJEKSwKLX07Ci1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBicmFpbnBvb2xQMzg0cjFfVF82X1hbXSA9IHsKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NTAsIDB4NzksIDB4NDIsIDB4NkEsIDB4MDcsIDB4NjYsIDB4QjEsIDB4QkQpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg0NSwgMHg1MywgMHg2MiwgMHg2NSwgMHg5MiwgMHgwOSwgMHg0QywgMHhBMSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDA2LCAweEFGLCAweEMzLCAweDAzLCAweEY2LCAweEY0LCAweDJELCAweDlCKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RTgsIDB4Q0EsIDB4NDEsIDB4RDksIDB4QTIsIDB4NjksIDB4OUIsIDB4QzkpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg0QiwgMHhCMiwgMHhBNiwgMHg4RCwgMHhFMSwgMHhBQSwgMHg2MSwgMHg3NiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDExLCAweEJBLCAweDRELCAweDEyLCAweEI2LCAweEJFLCAweEYzLCAweDdFKSwKLX07Ci1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBicmFpbnBvb2xQMzg0cjFfVF82X1lbXSA9IHsKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4Q0EsIDB4RDksIDB4OTIsIDB4MjIsIDB4MDcsIDB4Q0UsIDB4QzksIDB4MjYpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg2MiwgMHhBMSwgMHg3QywgMHg5MSwgMHhEQiwgMHgzMiwgMHhGNywgMHhFNSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDZELCAweDQ5LCAweDRCLCAweDZELCAweEZCLCAweEQ5LCAweDcwLCAweDNCKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MUMsIDB4RkIsIDB4NEUsIDB4NEMsIDB4NUUsIDB4NjYsIDB4ODEsIDB4MUQpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhBNSwgMHhCMywgMHhFMSwgMHgwMCwgMHhCNywgMHhEOSwgMHhDQywgMHg1OCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEYzLCAweDM2LCAweDhCLCAweEM0LCAweDM5LCAweDIwLCAweEZELCAweDMwKSwKLX07Ci1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBicmFpbnBvb2xQMzg0cjFfVF83X1hbXSA9IHsKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4OTQsIDB4MUYsIDB4NjAsIDB4MDMsIDB4QkIsIDB4RDcsIDB4NjAsIDB4NTcpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg3MiwgMHgzQywgMHg2MiwgMHhERCwgMHg3MSwgMHg5NSwgMHhFOSwgMHg2MSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEIwLCAweDVCLCAweDdBLCAweDVGLCAweDY4LCAweDgxLCAweEM1LCAweDkwKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MUUsIDB4QUYsIDB4QjUsIDB4QjksIDB4OTgsIDB4NDIsIDB4MjgsIDB4QTUpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgwQywgMHgyOSwgMHg4RSwgMHgxMSwgMHg0OSwgMHhCNCwgMHhENywgMHgyMCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDlCLCAweDNFLCAweEQyLCAweDMwLCAweEExLCAweEJBLCAweENBLCAweDAzKSwKLX07Ci1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBicmFpbnBvb2xQMzg0cjFfVF83X1lbXSA9IHsKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MjksIDB4MzcsIDB4NjQsIDB4NDQsIDB4MkYsIDB4MDMsIDB4RTUsIDB4NDEpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg0QSwgMHg0MiwgMHhCQywgMHhGRiwgMHhBMiwgMHgxQSwgMHg1RiwgMHgwNiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDFELCAweDA0LCAweEFCLCAweDA0LCAweEUwLCAweDI0LCAweEFELCAweDJBKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4M0QsIDB4NDUsIDB4MTcsIDB4NjcsIDB4MUYsIDB4M0UsIDB4NTMsIDB4RjgpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhFRCwgMHgwRiwgMHhCMywgMHgxQiwgMHg1NywgMHg1NCwgMHhDMiwgMHgwMyksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDU5LCAweEQzLCAweEY4LCAweEM0LCAweDFCLCAweDlCLCAweEZBLCAweDMwKSwKLX07Ci1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBicmFpbnBvb2xQMzg0cjFfVF84X1hbXSA9IHsKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MzcsIDB4OTAsIDB4RkQsIDB4RkIsIDB4Q0EsIDB4NDksIDB4MzgsIDB4NEUpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhDMywgMHhDRiwgMHhDNiwgMHhERCwgMHhGMCwgMHhGRiwgMHg4QywgMHgxMSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEQ3LCAweDY5LCAweDlELCAweEJELCAweDVGLCAweDMzLCAweEU5LCAweEI0KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NDcsIDB4MTksIDB4ODIsIDB4M0QsIDB4QUMsIDB4MUMsIDB4NDAsIDB4MjMpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg0MCwgMHhDNywgMHgwMiwgMHg0NiwgMHgxNCwgMHg3NywgMHgwMCwgMHhCRSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEM5LCAweDA1LCAweEYyLCAweDc3LCAweDNBLCAweDY2LCAweDVDLCAweDM5KSwKLX07Ci1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBicmFpbnBvb2xQMzg0cjFfVF84X1lbXSA9IHsKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MUUsIDB4RTYsIDB4MTcsIDB4REUsIDB4QjIsIDB4QTEsIDB4RTUsIDB4QjgpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhDNywgMHg3MSwgMHhFQywgMHg5RCwgMHhEOCwgMHhGNSwgMHhENCwgMHg2NiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEFBLCAweEM2LCAweDQyLCAweDVFLCAweEU3LCAweDE4LCAweEJBLCAweEQwKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QzUsIDB4MjEsIDB4NjgsIDB4NUEsIDB4MjYsIDB4RkIsIDB4RDcsIDB4MTcpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgyNiwgMHgwMCwgMHg1QywgMHhCQSwgMHg4QSwgMHgzNCwgMHhFQywgMHg3NSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEMzLCAweDlDLCAweDNDLCAweEFGLCAweDUzLCAweEU4LCAweDY1LCAweDM1KSwKLX07Ci1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBicmFpbnBvb2xQMzg0cjFfVF85X1hbXSA9IHsKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QkUsIDB4RUYsIDB4MjgsIDB4REMsIDB4NjcsIDB4MDUsIDB4QzgsIDB4REYpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgwQiwgMHg3OCwgMHhDMywgMHg4NSwgMHg0OSwgMHhBMCwgMHhCQywgMHgwRiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDEwLCAweDNFLCAweDJELCAweEEwLCAweENGLCAweEQ0LCAweDdBLCAweEY1KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MzYsIDB4OTMsIDB4RkUsIDB4NjAsIDB4QjMsIDB4NkUsIDB4OTksIDB4RTIpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg2MiwgMHhBRCwgMHgwNCwgMHhFNywgMHg0OSwgMHhBRiwgMHg1RSwgMHhFMyksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDU0LCAweDdBLCAweEVELCAweEE2LCAweDlFLCAweDE4LCAweDA5LCAweDMxKSwKLX07Ci1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBicmFpbnBvb2xQMzg0cjFfVF85X1lbXSA9IHsKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RTgsIDB4MDUsIDB4OTQsIDB4NDQsIDB4REMsIDB4QjgsIDB4ODUsIDB4OTQpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgxNCwgMHhCNywgMHgzNywgMHhDMiwgMHg1MCwgMHg3NSwgMHgxNSwgMHhEQSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEQ2LCAweEM2LCAweDBGLCAweEIyLCAweEE5LCAweDkxLCAweDNFLCAweEU4KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QjksIDB4ODEsIDB4QUQsIDB4MjUsIDB4QTEsIDB4MjYsIDB4NzMsIDB4MTUpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhGRCwgMHhGMSwgMHhEMSwgMHg2MSwgMHg3QywgMHg3NiwgMHg4RiwgMHgxMyksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDA2LCAweERCLCAweDRBLCAweEZGLCAweDE0LCAweEE3LCAweDQ4LCAweDBCKSwKLX07Ci1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBicmFpbnBvb2xQMzg0cjFfVF8xMF9YW10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDJBLCAweDczLCAweEM2LCAweEMyLCAweENDLCAweEYxLCAweDU3LCAweDA0KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QjYsIDB4RUQsIDB4NzMsIDB4MjcsIDB4NzAsIDB4ODIsIDB4QjYsIDB4NUUpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgwQiwgMHhCQSwgMHhBQywgMHgzQSwgMHhDRiwgMHhGNCwgMHhFQSwgMHhBNiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDk5LCAweEQ2LCAweEIxLCAweDhGLCAweDBFLCAweDA4LCAweDJDLCAweDVFKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MTcsIDB4RTMsIDB4OEYsIDB4MkYsIDB4MEUsIDB4QTEsIDB4RjMsIDB4MDcpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgxQSwgMHhGNSwgMHg3QywgMHg5QiwgMHgyOSwgMHgwQSwgMHhGNiwgMHgyOCksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgYnJhaW5wb29sUDM4NHIxX1RfMTBfWVtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhCRCwgMHhFRSwgMHgxNywgMHg0NywgMHgzNCwgMHgxNSwgMHhBMywgMHhBRiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEZCLCAweEJFLCAweDg4LCAweDQ4LCAweEU3LCAweEEyLCAweEJCLCAweERFKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QzUsIDB4QUQsIDB4REMsIDB4NjUsIDB4NjEsIDB4MzcsIDB4MEYsIDB4QzEpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhGQSwgMHg2NywgMHhBRCwgMHhBMiwgMHgzQSwgMHgxQywgMHg5MSwgMHg3OCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDU1LCAweDA3LCAweDBDLCAweDNBLCAweDQxLCAweDZFLCAweDEzLCAweDI4KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NzMsIDB4QkQsIDB4N0UsIDB4RUQsIDB4QUEsIDB4MTQsIDB4REQsIDB4NjEpLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IGJyYWlucG9vbFAzODRyMV9UXzExX1hbXSA9IHsKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QzMsIDB4REMsIDB4MjAsIDB4MDEsIDB4NzIsIDB4MTEsIDB4NDgsIDB4NTUpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgxRSwgMHhDNCwgMHg3QiwgMHhGOCwgMHg2MiwgMHgzRCwgMHhGMCwgMHg5RiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEU4LCAweEMyLCAweDNELCAweDJFLCAweDUyLCAweEEzLCAweDRBLCAweDg5KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4Q0UsIDB4RTIsIDB4NTMsIDB4NDYsIDB4NUUsIDB4MjEsIDB4RjgsIDB4Q0UpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhDMiwgMHhDNywgMHg4RiwgMHhBOSwgMHgyNiwgMHg0MiwgMHgzMiwgMHgzQSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEZCLCAweEE2LCAweEEwLCAweDhELCAweDRCLCAweDlBLCAweDE5LCAweDAzKSwKLX07Ci1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBicmFpbnBvb2xQMzg0cjFfVF8xMV9ZW10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEVBLCAweEFCLCAweDZELCAweDFFLCAweEZCLCAweEVFLCAweDYwLCAweDBDKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QjYsIDB4NTYsIDB4M0MsIDB4QzUsIDB4NUQsIDB4MTAsIDB4NzksIDB4MUMpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgyNSwgMHhCQywgMHg0MSwgMHg5RiwgMHg3MSwgMHhFRiwgMHgwMiwgMHhGOSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEEyLCAweDM2LCAweEM0LCAweEQwLCAweDg4LCAweDlCLCAweDMyLCAweEZDKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4OUMsIDB4RDQsIDB4NUQsIDB4MTcsIDB4MzksIDB4RTYsIDB4MjIsIDB4MkMpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg3QiwgMHgyNiwgMHgwMSwgMHhDRSwgMHhCRSwgMHg0QSwgMHg5QywgMHgyNyksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgYnJhaW5wb29sUDM4NHIxX1RfMTJfWFtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhFRiwgMHg2RCwgMHgxMSwgMHhDQSwgMHg2QywgMHg1QSwgMHg5MywgMHgwQyksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEVCLCAweDk2LCAweDI2LCAweEFGLCAweDJGLCAweEU0LCAweDMwLCAweDk4KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MzUsIDB4QzEsIDB4NEMsIDB4QzYsIDB4MzAsIDB4MUYsIDB4NUMsIDB4MDQpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg1OSwgMHhCMywgMHhFOCwgMHhGQywgMHgzNSwgMHhFQiwgMHg2MywgMHg2QyksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDlDLCAweDFELCAweENBLCAweEZDLCAweDUwLCAweDM2LCAweDRCLCAweDk2KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RTQsIDB4MEUsIDB4MjMsIDB4NUIsIDB4QUYsIDB4RUIsIDB4MkQsIDB4MzEpLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IGJyYWlucG9vbFAzODRyMV9UXzEyX1lbXSA9IHsKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QzYsIDB4ODgsIDB4QjYsIDB4RDcsIDB4NzQsIDB4NEEsIDB4MjMsIDB4QjYpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhFRiwgMHg2NiwgMHhFMiwgMHhCQiwgMHgyOSwgMHhBNiwgMHg0RiwgMHg1NSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEU5LCAweDZGLCAweDdFLCAweDY4LCAweDZFLCAweEEwLCAweDE0LCAweDk0KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4M0IsIDB4NzMsIDB4RDQsIDB4RTgsIDB4QUIsIDB4NUIsIDB4RjYsIDB4MEQpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg0NiwgMHhFMCwgMHgzQywgMHgyNCwgMHgwMCwgMHg5NSwgMHhFOSwgMHhBRCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDM3LCAweDBELCAweDRGLCAweDgxLCAweEQwLCAweEYyLCAweDNGLCAweDAwKSwKLX07Ci1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBicmFpbnBvb2xQMzg0cjFfVF8xM19YW10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDk5LCAweDFELCAweENELCAweDc4LCAweDM5LCAweEM0LCAweDZCLCAweEQ5KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4ODEsIDB4NDUsIDB4QzcsIDB4QjgsIDB4MkYsIDB4QUEsIDB4NUQsIDB4RTMpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgzMywgMHg4QywgMHg2RSwgMHhBMywgMHgyNCwgMHhCMiwgMHhEQiwgMHg0QiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDY5LCAweDJELCAweEQ5LCAweEYxLCAweEM3LCAweDlCLCAweDhBLCAweEFGKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NjcsIDB4RTEsIDB4MkMsIDB4QjksIDB4NDAsIDB4MzcsIDB4OTEsIDB4NzUpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg4MSwgMHgyQywgMHhCNSwgMHgyMywgMHgwMywgMHgyQiwgMHhBRiwgMHgyRiksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgYnJhaW5wb29sUDM4NHIxX1RfMTNfWVtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgyRiwgMHg5RCwgMHg1QSwgMHgyMCwgMHgxMCwgMHhBOSwgMHg4NCwgMHhEQSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDYxLCAweDMwLCAweDg5LCAweDIwLCAweDEzLCAweEU5LCAweEIyLCAweENBKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QjYsIDB4NkUsIDB4NTIsIDB4RUIsIDB4MDMsIDB4MTgsIDB4MUYsIDB4QTYpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg2QywgMHg5RSwgMHgxQywgMHgzNSwgMHg4NywgMHg5MiwgMHg2OSwgMHhDNyksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEExLCAweEM5LCAweDg4LCAweEFGLCAweEM2LCAweDZDLCAweDgzLCAweDcyKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4Q0IsIDB4RDUsIDB4N0EsIDB4NTQsIDB4MzQsIDB4OTksIDB4QjYsIDB4NkYpLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IGJyYWlucG9vbFAzODRyMV9UXzE0X1hbXSA9IHsKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4REYsIDB4QUQsIDB4NDUsIDB4OUIsIDB4NEIsIDB4NDEsIDB4NEQsIDB4NTApLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgxQiwgMHg1RCwgMHhBQiwgMHg3RiwgMHgzNSwgMHgzNCwgMHhFOSwgMHgyOSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDczLCAweEJFLCAweDc4LCAweDM0LCAweDQ0LCAweEYzLCAweDRBLCAweDg3KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RkIsIDB4REUsIDB4RTMsIDB4QzQsIDB4RUUsIDB4MEIsIDB4RjksIDB4RUIpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg1RSwgMHg4NiwgMHgxNiwgMHg0OCwgMHgzMiwgMHhCOCwgMHg3NCwgMHg0MSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEYyLCAweEVFLCAweDdDLCAweEJBLCAweEJELCAweDgxLCAweEUzLCAweDU1KSwKLX07Ci1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBicmFpbnBvb2xQMzg0cjFfVF8xNF9ZW10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEY4LCAweDZBLCAweEZBLCAweDg0LCAweERBLCAweEI4LCAweEQ1LCAweDE0KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QjIsIDB4OUYsIDB4OEEsIDB4RDUsIDB4MUIsIDB4MkUsIDB4MUEsIDB4MEIpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg1RiwgMHgwQywgMHg2MSwgMHhFMiwgMHhGRiwgMHg1QiwgMHhFNiwgMHhENSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDBFLCAweDYyLCAweEMxLCAweDg3LCAweDUzLCAweDFCLCAweDkyLCAweEEzKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NTQsIDB4OTAsIDB4MDAsIDB4RDEsIDB4NkEsIDB4MEMsIDB4MEUsIDB4MjgpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg4QiwgMHgyRSwgMHhCNSwgMHgzQiwgMHg0NCwgMHhCNSwgMHhBMCwgMHg3OCksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgYnJhaW5wb29sUDM4NHIxX1RfMTVfWFtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhCOCwgMHg1RCwgMHgwMiwgMHg1OCwgMHhCNSwgMHhCRSwgMHg0NSwgMHgxNCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEFELCAweEVGLCAweDhFLCAweDkwLCAweDRELCAweDJBLCAweDMyLCAweEFDKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NDgsIDB4OTksIDB4NzUsIDB4NUMsIDB4MEEsIDB4MzMsIDB4OEYsIDB4MzYpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhDOCwgMHg2QywgMHg5NSwgMHhENCwgMHgxRiwgMHhGMywgMHhFQiwgMHhEQSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEMyLCAweEU0LCAweDRDLCAweDkxLCAweDIwLCAweEYzLCAweDI1LCAweEVCKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RjEsIDB4OTUsIDB4RUIsIDB4MjksIDB4NkYsIDB4MjAsIDB4MzQsIDB4ODEpLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IGJyYWlucG9vbFAzODRyMV9UXzE1X1lbXSA9IHsKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MkQsIDB4MTUsIDB4RTUsIDB4MTMsIDB4N0UsIDB4NjQsIDB4OEIsIDB4QUQpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhBNywgMHhCQywgMHgwRCwgMHgxOCwgMHg3RSwgMHgzNywgMHg5RSwgMHhGQSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEU4LCAweDgyLCAweDIwLCAweEY3LCAweDJELCAweDdBLCAweDc3LCAweDUyKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4Q0IsIDB4MjksIDB4QTIsIDB4REIsIDB4N0EsIDB4RTYsIDB4NkYsIDB4QTUpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhBMCwgMHhDNiwgMHg1MCwgMHg1QywgMHhCQywgMHhFNiwgMHg0RiwgMHhCRCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDFFLCAweDlGLCAweEQ1LCAweEU4LCAweEM1LCAweDNELCAweEI3LCAweDMwKSwKLX07Ci1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBicmFpbnBvb2xQMzg0cjFfVF8xNl9YW10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDQ1LCAweDAzLCAweDU1LCAweDEwLCAweERCLCAweEE2LCAweDhCLCAweDIyKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NEUsIDB4MTcsIDB4QUUsIDB4NzgsIDB4QzksIDB4MUQsIDB4NDMsIDB4Q0EpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg0RSwgMHgzNSwgMHg0OSwgMHhENCwgMHg0NywgMHg4NCwgMHg4RCwgMHgyMCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEYzLCAweDk1LCAweDJGLCAweEVBLCAweEJDLCAweEI0LCAweDE4LCAweEIzKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RDQsIDB4NDgsIDB4QUUsIDB4ODksIDB4RjUsIDB4NjUsIDB4M0QsIDB4ODkpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg4NiwgMHhGMiwgMHgyQiwgMHgyMCwgMHhEMSwgMHg3NSwgMHg1MCwgMHg2MyksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgYnJhaW5wb29sUDM4NHIxX1RfMTZfWVtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhBRCwgMHhFNiwgMHg1QywgMHgyQywgMHhFMCwgMHg3RCwgMHhERiwgMHgyRCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDNFLCAweDA3LCAweDNFLCAweENFLCAweDlGLCAweDE4LCAweEI2LCAweDA1KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4OUEsIDB4RjgsIDB4RjAsIDB4RDUsIDB4RkEsIDB4NDIsIDB4MUQsIDB4NkQpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg0MSwgMHg2QywgMHgxRCwgMHgwMywgMHhDOSwgMHgwRSwgMHgyQiwgMHgyRiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDQzLCAweDE4LCAweDUyLCAweEE1LCAweEI0LCAweDYzLCAweEUxLCAweDA2KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QjcsIDB4MEEsIDB4RDksIDB4QzQsIDB4RkQsIDB4MTYsIDB4NjAsIDB4NTQpLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IGJyYWlucG9vbFAzODRyMV9UXzE3X1hbXSA9IHsKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NDMsIDB4N0QsIDB4REUsIDB4REYsIDB4NEIsIDB4NEEsIDB4QjAsIDB4Q0IpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhCMCwgMHg0RSwgMHg4QywgMHg5NCwgMHhDMSwgMHhFMiwgMHg4NSwgMHhERiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDRGLCAweEYwLCAweEVBLCAweEI1LCAweDlCLCAweDcwLCAweEVGLCAweDEwKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NTYsIDB4QzIsIDB4MzksIDB4NUQsIDB4RjMsIDB4MkMsIDB4RDksIDB4MkMpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgwRCwgMHgxQywgMHgyRSwgMHhDQywgMHgyRiwgMHg1NCwgMHg4NywgMHg4MCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEIwLCAweDcyLCAweEM3LCAweEI1LCAweDUwLCAweEEzLCAweDg0LCAweDc3KSwKLX07Ci1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBicmFpbnBvb2xQMzg0cjFfVF8xN19ZW10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEI3LCAweEQxLCAweEFGLCAweEE5LCAweEI0LCAweDhCLCAweDVELCAweEZBKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QzgsIDB4RjYsIDB4NTIsIDB4OEEsIDB4QzMsIDB4NTYsIDB4QTUsIDB4NUUpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgzQiwgMHg1MiwgMHhGRiwgMHhFQSwgMHgwNSwgMHg0MiwgMHg3NywgMHg4MyksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDI5LCAweDA4LCAweDkwLCAweDcyLCAweDg2LCAweEM0LCAweEMzLCAweEI4KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NEQsIDB4MTUsIDB4RjgsIDB4RjEsIDB4MTYsIDB4NjcsIDB4QzYsIDB4RDUpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg3NSwgMHg4NywgMHhBQywgMHg4RiwgMHg3MSwgMHhFQywgMHg4MywgMHg4MSksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgYnJhaW5wb29sUDM4NHIxX1RfMThfWFtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg5MSwgMHhFMSwgMHhFNiwgMHgyRCwgMHgwRSwgMHgxMSwgMHhBMSwgMHg2MiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDc0LCAweEUyLCAweEE4LCAweDMyLCAweEU2LCAweEUzLCAweDgzLCAweEQxKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NTAsIDB4NTYsIDB4RTUsIDB4Q0QsIDB4QjcsIDB4MkIsIDB4NjcsIDB4NkYpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhFNSwgMHhFRCwgMHhDOSwgMHg2NSwgMHg2RCwgMHg4NywgMHhFMSwgMHg4RSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDUwLCAweDhFLCAweEZELCAweDlBLCAweDUzLCAweDBFLCAweEZBLCAweEEzKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NDksIDB4NEMsIDB4NEEsIDB4RTIsIDB4MjMsIDB4ODQsIDB4RkEsIDB4MDEpLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IGJyYWlucG9vbFAzODRyMV9UXzE4X1lbXSA9IHsKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QjQsIDB4RkUsIDB4NDksIDB4ODEsIDB4RDEsIDB4M0UsIDB4RjQsIDB4N0MpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg0NSwgMHg3MiwgMHhFMCwgMHhFRiwgMHgwRCwgMHhCOCwgMHgzRSwgMHg2RiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDNDLCAweDAwLCAweDBGLCAweDVGLCAweENFLCAweDYwLCAweDcyLCAweDJDKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QjcsIDB4Q0MsIDB4RDgsIDB4MDMsIDB4MDcsIDB4NkUsIDB4NUEsIDB4Q0QpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgyNywgMHgzQSwgMHgzNSwgMHg1MCwgMHg0RSwgMHgxRiwgMHhDQSwgMHg1RiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDU4LCAweEVBLCAweDg4LCAweDU1LCAweEJELCAweDZFLCAweDA1LCAweDdGKSwKLX07Ci1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBicmFpbnBvb2xQMzg0cjFfVF8xOV9YW10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEIxLCAweDZELCAweEYxLCAweDk3LCAweEE2LCAweDY5LCAweDM5LCAweDI0KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MEIsIDB4NDEsIDB4OTksIDB4RkYsIDB4M0IsIDB4QTEsIDB4MjYsIDB4RUMpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg5NSwgMHgyRiwgMHg5NSwgMHg4MCwgMHgxMiwgMHg0QSwgMHgxQiwgMHhDQiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEVBLCAweEJGLCAweDUxLCAweEFBLCAweEFFLCAweDJELCAweERBLCAweENGKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MEMsIDB4MUMsIDB4QjMsIDB4NTIsIDB4MzYsIDB4NDksIDB4RDQsIDB4ODYpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg5OSwgMHhDMSwgMHgxRiwgMHgzQSwgMHhEMywgMHgzRSwgMHg1QywgMHgxQSksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgYnJhaW5wb29sUDM4NHIxX1RfMTlfWVtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg3MywgMHg1MSwgMHhGNywgMHgyQiwgMHhDOCwgMHhBOSwgMHhBNywgMHgxNSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDEyLCAweDRFLCAweDdGLCAweDk4LCAweDQxLCAweDY2LCAweEIwLCAweDAzKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4OTEsIDB4MUQsIDB4QzAsIDB4NDIsIDB4Q0QsIDB4RjgsIDB4QzMsIDB4MkIpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhDQywgMHg0MSwgMHg5MSwgMHg3RCwgMHhDQywgMHg4QiwgMHhDQywgMHg0MSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDJBLCAweEFFLCAweDc2LCAweEVELCAweDU2LCAweDE4LCAweEM1LCAweEFCKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QUIsIDB4NkEsIDB4MDYsIDB4QTMsIDB4N0YsIDB4NjUsIDB4MTAsIDB4MUYpLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IGJyYWlucG9vbFAzODRyMV9UXzIwX1hbXSA9IHsKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MEMsIDB4RUMsIDB4M0MsIDB4MDUsIDB4MDUsIDB4Q0EsIDB4RjYsIDB4RUQpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg0OCwgMHhDRCwgMHgwMiwgMHg1MSwgMHgxMiwgMHgxNiwgMHgzQywgMHg2MyksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEE4LCAweEVCLCAweEIzLCAweDQzLCAweDdCLCAweERELCAweEIyLCAweDdDKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MDAsIDB4NTksIDB4OTAsIDB4NDEsIDB4REIsIDB4RTQsIDB4RjUsIDB4OTEpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhEMCwgMHgwRSwgMHgxOCwgMHgyQSwgMHg1QSwgMHg4MywgMHg3QywgMHgyRiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEUxLCAweDM3LCAweEExLCAweDBELCAweEYxLCAweDJGLCAweDYzLCAweDc5KSwKLX07Ci1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBicmFpbnBvb2xQMzg0cjFfVF8yMF9ZW10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDIxLCAweEMwLCAweEZBLCAweDZGLCAweDFGLCAweDY3LCAweENGLCAweEVDKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4OTgsIDB4MzQsIDB4NDUsIDB4QkIsIDB4RjQsIDB4RjksIDB4OUIsIDB4ODkpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhGNSwgMHg2OSwgMHhGRSwgMHg2NywgMHgxRCwgMHg2NCwgMHg4RiwgMHhCOSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweERCLCAweDM5LCAweEJGLCAweEQ4LCAweEIzLCAweEM3LCAweEFELCAweDhBKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4OEMsIDB4OTMsIDB4RkYsIDB4RjMsIDB4MjgsIDB4RkEsIDB4MzksIDB4RjYpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhGQSwgMHhGOSwgMHhDMywgMHg4NSwgMHgyNiwgMHg3QSwgMHg4OCwgMHg4OSksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgYnJhaW5wb29sUDM4NHIxX1RfMjFfWFtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg0RCwgMHhENSwgMHg3OSwgMHhEOCwgMHgxMSwgMHhERSwgMHhFQiwgMHg0RSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDFDLCAweDQ2LCAweEE0LCAweDZBLCAweERBLCAweDc0LCAweDM0LCAweEE4KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MUUsIDB4QkQsIDB4RDMsIDB4RjUsIDB4MTQsIDB4RUUsIDB4RkUsIDB4QUUpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgxOSwgMHg0QywgMHhBMywgMHg3MSwgMHg0MywgMHg2NSwgMHhGOCwgMHg5NCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDcyLCAweDZDLCAweDM1LCAweEZBLCAweDkwLCAweDI1LCAweEQ4LCAweEUyKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QkIsIDB4MzQsIDB4ODQsIDB4OTYsIDB4QTEsIDB4NDMsIDB4MDMsIDB4NEQpLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IGJyYWlucG9vbFAzODRyMV9UXzIxX1lbXSA9IHsKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RjEsIDB4M0IsIDB4M0IsIDB4MkYsIDB4Q0EsIDB4NTksIDB4RjIsIDB4NDIpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhDRCwgMHg0OCwgMHgyNCwgMHg3NCwgMHhEOCwgMHg3MiwgMHg5MCwgMHhBMyksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDgzLCAweDQyLCAweDc0LCAweDhDLCAweDZGLCAweDUyLCAweDE5LCAweDNEKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NDAsIDB4OUUsIDB4NDEsIDB4NjMsIDB4NjgsIDB4NzgsIDB4NEMsIDB4MkYpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg1MywgMHg5NCwgMHhCNiwgMHg2QiwgMHgzOCwgMHg1MiwgMHhBOCwgMHg5RiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDgxLCAweDMwLCAweDI1LCAweDkzLCAweEExLCAweDZGLCAweDZFLCAweDY4KSwKLX07Ci1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBicmFpbnBvb2xQMzg0cjFfVF8yMl9YW10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEZDLCAweDJGLCAweDRCLCAweDY0LCAweDc5LCAweDUwLCAweEZGLCAweDAxKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RDQsIDB4MzYsIDB4RUQsIDB4NTcsIDB4MzksIDB4M0IsIDB4RTcsIDB4RjMpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhGMSwgMHg4NSwgMHhFQSwgMHgzNSwgMHhENiwgMHhDMCwgMHhBMCwgMHg1MiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEJBLCAweDg5LCAweDNBLCAweENDLCAweDIyLCAweDFDLCAweDQ2LCAweDAyKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NkMsIDB4N0EsIDB4QjAsIDB4QTEsIDB4MUIsIDB4NjksIDB4NjIsIDB4NTUpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg1NywgMHhCOCwgMHg4QSwgMHg2QywgMHgxOCwgMHg4NSwgMHgwRCwgMHg4OCksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgYnJhaW5wb29sUDM4NHIxX1RfMjJfWVtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhGRCwgMHhCNiwgMHg1MCwgMHhFOSwgMHg0RSwgMHg3RiwgMHhFOCwgMHgwNyksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDkyLCAweDVCLCAweDVDLCAweEQxLCAweDRCLCAweDExLCAweDlBLCAweEQ4KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4OTYsIDB4MjUsIDB4NTYsIDB4NzQsIDB4NTEsIDB4OUMsIDB4RUMsIDB4OUMpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg1NSwgMHg3RiwgMHhCNiwgMHg4QSwgMHhDQiwgMHgzQSwgMHgxMCwgMHg2QSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDYwLCAweDMzLCAweDA3LCAweDAxLCAweEU5LCAweDQ5LCAweDU5LCAweEU2KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QzYsIDB4QTUsIDB4MkUsIDB4RjIsIDB4QkEsIDB4MzIsIDB4NjMsIDB4NDQpLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IGJyYWlucG9vbFAzODRyMV9UXzIzX1hbXSA9IHsKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RjgsIDB4MDYsIDB4MEIsIDB4QTUsIDB4NDQsIDB4MjcsIDB4N0YsIDB4MjIpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgzMCwgMHg3NCwgMHhBQywgMHgwRiwgMHhDQywgMHg0RiwgMHgxMywgMHg2MSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEZELCAweEIxLCAweEJGLCAweDk3LCAweDQ5LCAweEE1LCAweDFDLCAweDFEKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4OEEsIDB4NjQsIDB4NjgsIDB4N0IsIDB4MEYsIDB4Q0MsIDB4NzcsIDB4RjgpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhCQiwgMHgzOSwgMHhGOSwgMHg0RSwgMHg4NCwgMHg5QywgMHhGNiwgMHg5NiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEJDLCAweENGLCAweDZELCAweEUyLCAweEExLCAweDJELCAweEY5LCAweDJCKSwKLX07Ci1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBicmFpbnBvb2xQMzg0cjFfVF8yM19ZW10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDk1LCAweEM0LCAweDkwLCAweDU3LCAweDMxLCAweDAxLCAweDA1LCAweDVFKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4Q0MsIDB4MUUsIDB4QkIsIDB4QkYsIDB4OTgsIDB4QTQsIDB4N0MsIDB4RTMpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg4OSwgMHhFMywgMHhBMCwgMHhCMiwgMHhDRCwgMHgzOSwgMHg5QSwgMHgzRiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDkyLCAweDM0LCAweDYwLCAweDdBLCAweDg5LCAweDk4LCAweEI1LCAweDUyKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4OEQsIDB4MjAsIDB4M0QsIDB4M0EsIDB4MDQsIDB4OEYsIDB4NUEsIDB4QUMpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhBMywgMHgyNiwgMHhCNiwgMHg0OSwgMHgwOSwgMHg5QywgMHgwRiwgMHg1OSksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgYnJhaW5wb29sUDM4NHIxX1RfMjRfWFtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg3MiwgMHg2NiwgMHhEMiwgMHgzOCwgMHgyQSwgMHg2MiwgMHg4MSwgMHhDQSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEM1LCAweEM4LCAweDIwLCAweDVFLCAweDI4LCAweEEzLCAweDgxLCAweEE3KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MjAsIDB4MzEsIDB4QTQsIDB4RjEsIDB4RUEsIDB4N0QsIDB4ODcsIDB4NDUpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg4RiwgMHgyQywgMHg5OSwgMHgwOSwgMHg2RiwgMHg2MywgMHhFQiwgMHgyRiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDczLCAweDc2LCAweERBLCAweDFBLCAweDA2LCAweEJFLCAweERFLCAweEEyKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MjksIDB4MDksIDB4MkUsIDB4NzUsIDB4MzksIDB4MzAsIDB4MkQsIDB4NDIpLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IGJyYWlucG9vbFAzODRyMV9UXzI0X1lbXSA9IHsKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NDEsIDB4OUIsIDB4QzEsIDB4NUEsIDB4MTcsIDB4QzMsIDB4OEMsIDB4MzEpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg1OCwgMHg4RCwgMHg5NCwgMHg0RCwgMHgzRCwgMHhBQiwgMHg2MCwgMHhENCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEZGLCAweEZELCAweDFFLCAweDBGLCAweDQzLCAweEFFLCAweDlELCAweDYyKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4OEUsIDB4RjIsIDB4RjMsIDB4MjAsIDB4MUIsIDB4QUEsIDB4QjcsIDB4NDEpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg5RCwgMHg1QiwgMHhBNCwgMHhGNCwgMHg5MCwgMHgzQiwgMHhFMywgMHg3MSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEY3LCAweDc4LCAweDcyLCAweEJELCAweDY1LCAweDA5LCAweDBCLCAweDAxKSwKLX07Ci1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBicmFpbnBvb2xQMzg0cjFfVF8yNV9YW10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweENBLCAweDM3LCAweDJBLCAweDZDLCAweDE2LCAweDRGLCAweDY0LCAweDU5KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NUEsIDB4Q0UsIDB4QTMsIDB4OTAsIDB4QjQsIDB4OUEsIDB4QkMsIDB4RjcpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgyNywgMHgzOCwgMHg1NSwgMHg2MywgMHgxRCwgMHgzQSwgMHg2RSwgMHgxOCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDM3LCAweEI0LCAweEFBLCAweDk5LCAweDIyLCAweDQ1LCAweDg5LCAweDJDKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QjcsIDB4N0MsIDB4OEMsIDB4QTYsIDB4M0QsIDB4QTcsIDB4M0UsIDB4RTgpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg3MCwgMHgwNiwgMHg0MiwgMHhEQywgMHhBNiwgMHhFMywgMHhDNiwgMHgxMiksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgYnJhaW5wb29sUDM4NHIxX1RfMjVfWVtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg1NSwgMHg4QywgMHgzRCwgMHg1RCwgMHg0NywgMHgzMSwgMHg3QywgMHhFQiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDQ2LCAweDg1LCAweEVFLCAweDQ2LCAweDdFLCAweDEzLCAweDA0LCAweDQxKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4OUUsIDB4M0MsIDB4OEIsIDB4NDMsIDB4MkUsIDB4NzQsIDB4RjUsIDB4RjYpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhCQSwgMHg4OCwgMHg4RSwgMHgwNywgMHgyOSwgMHgwOCwgMHgwMywgMHgyNiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEVBLCAweDlCLCAweDg5LCAweEVCLCAweDA4LCAweEU4LCAweDQzLCAweEI1KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MTcsIDB4MDcsIDB4NjcsIDB4RkQsIDB4RDksIDB4NzMsIDB4NkYsIDB4MTgpLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IGJyYWlucG9vbFAzODRyMV9UXzI2X1hbXSA9IHsKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MjksIDB4RUIsIDB4MjEsIDB4OEQsIDB4OTgsIDB4NDMsIDB4NzQsIDB4OTgpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg4OCwgMHhDQywgMHgxNCwgMHhEOCwgMHgwOCwgMHhCQiwgMHhBNiwgMHhFMyksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEM0LCAweDk4LCAweEYyLCAweDZBLCAweDE4LCAweEMzLCAweERELCAweDlFKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QzcsIDB4MzgsIDB4OTEsIDB4QTAsIDB4MDMsIDB4RjIsIDB4MDQsIDB4NjIpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg3QSwgMHhBRiwgMHhFOCwgMHhGRCwgMHhGQiwgMHgxMywgMHg3MCwgMHg3NCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEQwLCAweDkzLCAweDg3LCAweDk4LCAweDRBLCAweEUwLCAweDAwLCAweDEyKSwKLX07Ci1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBicmFpbnBvb2xQMzg0cjFfVF8yNl9ZW10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDk3LCAweDJFLCAweDY5LCAweDlDLCAweEEyLCAweDJELCAweDAzLCAweDNGKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NzksIDB4RkUsIDB4RjMsIDB4QjksIDB4QzEsIDB4ODUsIDB4MkEsIDB4RUUpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhDRSwgMHhGRCwgMHg4NiwgMHhCMSwgMHhDRCwgMHhCRiwgMHg0MSwgMHhCNyksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEEwLCAweEQ4LCAweDlBLCAweDIxLCAweEYzLCAweEZFLCAweENCLCAweEYxKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4OTUsIDB4NzgsIDB4MDQsIDB4NjAsIDB4QjcsIDB4QTksIDB4QTIsIDB4ODQpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhFOCwgMHgxRSwgMHg2NiwgMHgyQSwgMHg1NCwgMHg1MSwgMHhCRCwgMHg4QiksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgYnJhaW5wb29sUDM4NHIxX1RfMjdfWFtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg4RSwgMHgxNiwgMHgzNiwgMHhFRiwgMHg2MSwgMHgyRCwgMHhFRSwgMHgzQiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDQ1LCAweDVGLCAweDg4LCAweEEwLCAweDEzLCAweDEyLCAweEY3LCAweDIzKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QTksIDB4QzYsIDB4QUQsIDB4NEEsIDB4NEEsIDB4MDcsIDB4MDEsIDB4NUIpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhCOCwgMHg3NCwgMHhCMSwgMHg0RiwgMHhFQiwgMHhCRCwgMHhENSwgMHg2QiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDU3LCAweEY5LCAweDcxLCAweEEyLCAweDA2LCAweDRGLCAweEQ3LCAweEJDKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RkYsIDB4OEIsIDB4NEQsIDB4NDgsIDB4RTAsIDB4OTgsIDB4RkIsIDB4NkEpLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IGJyYWlucG9vbFAzODRyMV9UXzI3X1lbXSA9IHsKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QzQsIDB4QkEsIDB4MTAsIDB4QTMsIDB4MEQsIDB4NTIsIDB4QUMsIDB4M0EpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgxMSwgMHhEMCwgMHhFMCwgMHgzNiwgMHhFNiwgMHgwNywgMHgzQSwgMHgzMCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDdFLCAweDgwLCAweEYwLCAweEFBLCAweDQ5LCAweDIyLCAweDRCLCAweEREKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RkYsIDB4QzcsIDB4QUIsIDB4MUMsIDB4ODksIDB4Q0QsIDB4MjQsIDB4NDApLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg4MiwgMHgyQSwgMHhGQywgMHhCMywgMHg2RCwgMHg0NSwgMHg5NiwgMHg0OSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDYzLCAweEU0LCAweERCLCAweDUyLCAweDNGLCAweEM0LCAweEI0LCAweDE5KSwKLX07Ci1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBicmFpbnBvb2xQMzg0cjFfVF8yOF9YW10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDVCLCAweENDLCAweEM4LCAweDdGLCAweEJCLCAweDZCLCAweDg3LCAweDQ3KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QzAsIDB4MjEsIDB4M0MsIDB4NjksIDB4N0QsIDB4MzgsIDB4NTcsIDB4NTApLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg1MiwgMHg0QywgMHgxOCwgMHgzQywgMHg1MywgMHhBNSwgMHg0OCwgMHg2RCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDIxLCAweEMzLCAweDY0LCAweDQ1LCAweERCLCAweEM0LCAweDZELCAweDE1KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NDksIDB4Q0MsIDB4RDEsIDB4QkIsIDB4MTcsIDB4QjgsIDB4MzQsIDB4MkQpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg2QywgMHg2OSwgMHg3MSwgMHhGQSwgMHhBMCwgMHgyOCwgMHg0QSwgMHgzRCksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgYnJhaW5wb29sUDM4NHIxX1RfMjhfWVtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhFRCwgMHhFOCwgMHg5RSwgMHgzOSwgMHhFQSwgMHg4RCwgMHgzOCwgMHhEQiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweENDLCAweDlDLCAweEJCLCAweENELCAweDgwLCAweDFBLCAweEVFLCAweEI3KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QkMsIDB4QTAsIDB4NDUsIDB4QkYsIDB4RDksIDB4MjIsIDB4MTEsIDB4MzIpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhEQSwgMHg3QywgMHg1QywgMHhEOSwgMHhDMCwgMHg5RiwgMHg2OSwgMHhGNSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEJDLCAweDhBLCAweEE2LCAweDc5LCAweDRFLCAweDM1LCAweEI5LCAweEQ1KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4Q0MsIDB4OEIsIDB4OUEsIDB4M0UsIDB4QTEsIDB4QjgsIDB4MjgsIDB4MTApLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IGJyYWlucG9vbFAzODRyMV9UXzI5X1hbXSA9IHsKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NTUsIDB4MkYsIDB4RUYsIDB4QkIsIDB4QTksIDB4NzIsIDB4N0YsIDB4RUEpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhCNSwgMHgzNCwgMHhCNywgMHgxMiwgMHhCOSwgMHhFNywgMHhDMywgMHgyQSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEY4LCAweDFELCAweEQ5LCAweDQyLCAweDc3LCAweDBDLCAweDcxLCAweDZFKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RUMsIDB4MDEsIDB4NTksIDB4QTcsIDB4NTYsIDB4MDMsIDB4OTEsIDB4OEQpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg2QywgMHg5MSwgMHg5OSwgMHgzMywgMHgzMCwgMHgzRSwgMHhFRiwgMHgxMyksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDg3LCAweEM5LCAweDVBLCAweDlBLCAweDU0LCAweDY2LCAweEYxLCAweDcwKSwKLX07Ci1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBicmFpbnBvb2xQMzg0cjFfVF8yOV9ZW10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDY0LCAweDJDLCAweEI3LCAweDZFLCAweDcxLCAweDdELCAweDM1LCAweDMwKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MUEsIDB4MEQsIDB4RUYsIDB4RDEsIDB4MkQsIDB4OTksIDB4NjMsIDB4MkYpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhFNCwgMHgzMSwgMHhBRiwgMHgyRCwgMHhDOSwgMHhDNiwgMHhDMiwgMHhBRSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDE5LCAweEMwLCAweERGLCAweDgwLCAweDU0LCAweEM0LCAweEFDLCAweEYzKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RTMsIDB4NkIsIDB4QTAsIDB4ODQsIDB4OTYsIDB4RjcsIDB4MzEsIDB4QzgpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg5MywgMHhFMiwgMHg3QywgMHg3QSwgMHg0MSwgMHg0NSwgMHg3NSwgMHg2QSksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgYnJhaW5wb29sUDM4NHIxX1RfMzBfWFtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhBRSwgMHhFRSwgMHg1OCwgMHgzMSwgMHhFOCwgMHg2OCwgMHhENiwgMHg3NiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEQyLCAweDJFLCAweDQ4LCAweEI3LCAweDA5LCAweDlGLCAweEQ0LCAweENBKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MzQsIDB4QTksIDB4NUMsIDB4RTcsIDB4NjQsIDB4NDMsIDB4NUQsIDB4QzkpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg5RSwgMHg1OCwgMHg5RiwgMHg1MCwgMHhBQiwgMHg2OCwgMHhGRiwgMHg2RCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDg3LCAweDg4LCAweDJELCAweEJBLCAweDEyLCAweEJGLCAweDhELCAweDdEKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RDQsIDB4REYsIDB4NkYsIDB4QjMsIDB4NzUsIDB4QTQsIDB4NTUsIDB4NzMpLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IGJyYWlucG9vbFAzODRyMV9UXzMwX1lbXSA9IHsKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NkQsIDB4MTcsIDB4OTIsIDB4MzksIDB4QjcsIDB4MTMsIDB4MzcsIDB4NkYpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg1RSwgMHg0MywgMHg3MSwgMHhBNywgMHhDQSwgMHgxNywgMHgxQiwgMHgzMiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEU3LCAweEI5LCAweEIwLCAweDc4LCAweEVGLCAweEEwLCAweERBLCAweDgzKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4OUEsIDB4ODQsIDB4RjIsIDB4MEYsIDB4ODUsIDB4QTIsIDB4QjYsIDB4MUYpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg3MiwgMHg2NSwgMHgyRSwgMHg2RSwgMHg0NSwgMHhCOSwgMHg0QywgMHgzQyksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEZFLCAweDZBLCAweDhDLCAweDJCLCAweDc3LCAweDk2LCAweDM2LCAweDIyKSwKLX07Ci1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBicmFpbnBvb2xQMzg0cjFfVF8zMV9YW10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDY4LCAweDdBLCAweDEzLCAweDRBLCAweDk3LCAweDYzLCAweDAyLCAweDEwKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QkMsIDB4MUUsIDB4MDYsIDB4MDMsIDB4OEYsIDB4QjksIDB4RUUsIDB4NjQpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg2OCwgMHhFRSwgMHg4QiwgMHg4OSwgMHhBOSwgMHg3MCwgMHhEQiwgMHhDRSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDE1LCAweDdCLCAweDgxLCAweEM5LCAweDcwLCAweDhELCAweDYyLCAweDMyKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NzUsIDB4REEsIDB4NDYsIDB4RjgsIDB4RjksIDB4M0EsIDB4QkUsIDB4NTUpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg5RiwgMHg5QywgMHg3QSwgMHg5NywgMHg2MiwgMHhFQiwgMHhGQSwgMHgwRiksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgYnJhaW5wb29sUDM4NHIxX1RfMzFfWVtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhCMiwgMHgwMywgMHgzRCwgMHgzQywgMHg0NiwgMHgyNywgMHg5RSwgMHg2NSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEE0LCAweDA4LCAweDFDLCAweEQ1LCAweDI1LCAweEFGLCAweEU5LCAweDQwKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RkUsIDB4NjksIDB4REMsIDB4NTksIDB4RjQsIDB4OEEsIDB4N0MsIDB4MUYpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhGQywgMHg5QSwgMHg3QSwgMHg5OSwgMHgyMSwgMHgwQywgMHg0RSwgMHhFMyksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEY1LCAweENFLCAweDg1LCAweDVGLCAweEFDLCAweEFBLCAweDgyLCAweDEwKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4ODMsIDB4NTcsIDB4NjksIDB4OTAsIDB4NzYsIDB4RjMsIDB4NTMsIDB4M0YpLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX2VjcF9wb2ludCBicmFpbnBvb2xQMzg0cjFfVFszMl0gPSB7Ci0gICAgRUNQX1BPSU5UX0lOSVRfWFlfWjEoYnJhaW5wb29sUDM4NHIxX1RfMF9YLCBicmFpbnBvb2xQMzg0cjFfVF8wX1kpLAotICAgIEVDUF9QT0lOVF9JTklUX1hZX1owKGJyYWlucG9vbFAzODRyMV9UXzFfWCwgYnJhaW5wb29sUDM4NHIxX1RfMV9ZKSwKLSAgICBFQ1BfUE9JTlRfSU5JVF9YWV9aMChicmFpbnBvb2xQMzg0cjFfVF8yX1gsIGJyYWlucG9vbFAzODRyMV9UXzJfWSksCi0gICAgRUNQX1BPSU5UX0lOSVRfWFlfWjAoYnJhaW5wb29sUDM4NHIxX1RfM19YLCBicmFpbnBvb2xQMzg0cjFfVF8zX1kpLAotICAgIEVDUF9QT0lOVF9JTklUX1hZX1owKGJyYWlucG9vbFAzODRyMV9UXzRfWCwgYnJhaW5wb29sUDM4NHIxX1RfNF9ZKSwKLSAgICBFQ1BfUE9JTlRfSU5JVF9YWV9aMChicmFpbnBvb2xQMzg0cjFfVF81X1gsIGJyYWlucG9vbFAzODRyMV9UXzVfWSksCi0gICAgRUNQX1BPSU5UX0lOSVRfWFlfWjAoYnJhaW5wb29sUDM4NHIxX1RfNl9YLCBicmFpbnBvb2xQMzg0cjFfVF82X1kpLAotICAgIEVDUF9QT0lOVF9JTklUX1hZX1owKGJyYWlucG9vbFAzODRyMV9UXzdfWCwgYnJhaW5wb29sUDM4NHIxX1RfN19ZKSwKLSAgICBFQ1BfUE9JTlRfSU5JVF9YWV9aMChicmFpbnBvb2xQMzg0cjFfVF84X1gsIGJyYWlucG9vbFAzODRyMV9UXzhfWSksCi0gICAgRUNQX1BPSU5UX0lOSVRfWFlfWjAoYnJhaW5wb29sUDM4NHIxX1RfOV9YLCBicmFpbnBvb2xQMzg0cjFfVF85X1kpLAotICAgIEVDUF9QT0lOVF9JTklUX1hZX1owKGJyYWlucG9vbFAzODRyMV9UXzEwX1gsIGJyYWlucG9vbFAzODRyMV9UXzEwX1kpLAotICAgIEVDUF9QT0lOVF9JTklUX1hZX1owKGJyYWlucG9vbFAzODRyMV9UXzExX1gsIGJyYWlucG9vbFAzODRyMV9UXzExX1kpLAotICAgIEVDUF9QT0lOVF9JTklUX1hZX1owKGJyYWlucG9vbFAzODRyMV9UXzEyX1gsIGJyYWlucG9vbFAzODRyMV9UXzEyX1kpLAotICAgIEVDUF9QT0lOVF9JTklUX1hZX1owKGJyYWlucG9vbFAzODRyMV9UXzEzX1gsIGJyYWlucG9vbFAzODRyMV9UXzEzX1kpLAotICAgIEVDUF9QT0lOVF9JTklUX1hZX1owKGJyYWlucG9vbFAzODRyMV9UXzE0X1gsIGJyYWlucG9vbFAzODRyMV9UXzE0X1kpLAotICAgIEVDUF9QT0lOVF9JTklUX1hZX1owKGJyYWlucG9vbFAzODRyMV9UXzE1X1gsIGJyYWlucG9vbFAzODRyMV9UXzE1X1kpLAotICAgIEVDUF9QT0lOVF9JTklUX1hZX1owKGJyYWlucG9vbFAzODRyMV9UXzE2X1gsIGJyYWlucG9vbFAzODRyMV9UXzE2X1kpLAotICAgIEVDUF9QT0lOVF9JTklUX1hZX1owKGJyYWlucG9vbFAzODRyMV9UXzE3X1gsIGJyYWlucG9vbFAzODRyMV9UXzE3X1kpLAotICAgIEVDUF9QT0lOVF9JTklUX1hZX1owKGJyYWlucG9vbFAzODRyMV9UXzE4X1gsIGJyYWlucG9vbFAzODRyMV9UXzE4X1kpLAotICAgIEVDUF9QT0lOVF9JTklUX1hZX1owKGJyYWlucG9vbFAzODRyMV9UXzE5X1gsIGJyYWlucG9vbFAzODRyMV9UXzE5X1kpLAotICAgIEVDUF9QT0lOVF9JTklUX1hZX1owKGJyYWlucG9vbFAzODRyMV9UXzIwX1gsIGJyYWlucG9vbFAzODRyMV9UXzIwX1kpLAotICAgIEVDUF9QT0lOVF9JTklUX1hZX1owKGJyYWlucG9vbFAzODRyMV9UXzIxX1gsIGJyYWlucG9vbFAzODRyMV9UXzIxX1kpLAotICAgIEVDUF9QT0lOVF9JTklUX1hZX1owKGJyYWlucG9vbFAzODRyMV9UXzIyX1gsIGJyYWlucG9vbFAzODRyMV9UXzIyX1kpLAotICAgIEVDUF9QT0lOVF9JTklUX1hZX1owKGJyYWlucG9vbFAzODRyMV9UXzIzX1gsIGJyYWlucG9vbFAzODRyMV9UXzIzX1kpLAotICAgIEVDUF9QT0lOVF9JTklUX1hZX1owKGJyYWlucG9vbFAzODRyMV9UXzI0X1gsIGJyYWlucG9vbFAzODRyMV9UXzI0X1kpLAotICAgIEVDUF9QT0lOVF9JTklUX1hZX1owKGJyYWlucG9vbFAzODRyMV9UXzI1X1gsIGJyYWlucG9vbFAzODRyMV9UXzI1X1kpLAotICAgIEVDUF9QT0lOVF9JTklUX1hZX1owKGJyYWlucG9vbFAzODRyMV9UXzI2X1gsIGJyYWlucG9vbFAzODRyMV9UXzI2X1kpLAotICAgIEVDUF9QT0lOVF9JTklUX1hZX1owKGJyYWlucG9vbFAzODRyMV9UXzI3X1gsIGJyYWlucG9vbFAzODRyMV9UXzI3X1kpLAotICAgIEVDUF9QT0lOVF9JTklUX1hZX1owKGJyYWlucG9vbFAzODRyMV9UXzI4X1gsIGJyYWlucG9vbFAzODRyMV9UXzI4X1kpLAotICAgIEVDUF9QT0lOVF9JTklUX1hZX1owKGJyYWlucG9vbFAzODRyMV9UXzI5X1gsIGJyYWlucG9vbFAzODRyMV9UXzI5X1kpLAotICAgIEVDUF9QT0lOVF9JTklUX1hZX1owKGJyYWlucG9vbFAzODRyMV9UXzMwX1gsIGJyYWlucG9vbFAzODRyMV9UXzMwX1kpLAotICAgIEVDUF9QT0lOVF9JTklUX1hZX1owKGJyYWlucG9vbFAzODRyMV9UXzMxX1gsIGJyYWlucG9vbFAzODRyMV9UXzMxX1kpLAotfTsKLSNlbHNlCi0jZGVmaW5lIGJyYWlucG9vbFAzODRyMV9UIE5VTEwKLSNlbmRpZgotCi0jZW5kaWYgLyogTUJFRFRMU19FQ1BfRFBfQlAzODRSMV9FTkFCTEVEICovCi0KLS8qCi0gKiBEb21haW4gcGFyYW1ldGVycyBmb3IgYnJhaW5wb29sUDUxMnIxIChSRkMgNTYzOSAzLjcpCi0gKi8KLSNpZiBkZWZpbmVkKE1CRURUTFNfRUNQX0RQX0JQNTEyUjFfRU5BQkxFRCkKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IGJyYWlucG9vbFA1MTJyMV9wW10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEYzLCAweDQ4LCAweDNBLCAweDU4LCAweDU2LCAweDYwLCAweEFBLCAweDI4KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4ODUsIDB4QzYsIDB4ODIsIDB4MkQsIDB4MkYsIDB4RkYsIDB4ODEsIDB4MjgpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhFNiwgMHg4MCwgMHhBMywgMHhFNiwgMHgyQSwgMHhBMSwgMHhDRCwgMHhBRSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDQyLCAweDY4LCAweEM2LCAweDlCLCAweDAwLCAweDlCLCAweDRELCAweDdEKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NzEsIDB4MDgsIDB4MzMsIDB4NzAsIDB4Q0EsIDB4OUMsIDB4NjMsIDB4RDYpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgwRSwgMHhEMiwgMHhDOSwgMHhCMywgMHhCMywgMHg4RCwgMHgzMCwgMHhDQiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDA3LCAweEZDLCAweEM5LCAweDMzLCAweEFFLCAweEU2LCAweEQ0LCAweDNGKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4OEIsIDB4QzQsIDB4RTksIDB4REIsIDB4QjgsIDB4OUQsIDB4REQsIDB4QUEpLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IGJyYWlucG9vbFA1MTJyMV9hW10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweENBLCAweDk0LCAweEZDLCAweDc3LCAweDRELCAweEFDLCAweEMxLCAweEU3KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QjksIDB4QzcsIDB4RjIsIDB4MkIsIDB4QTcsIDB4MTcsIDB4MTEsIDB4N0YpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhCNSwgMHhDOCwgMHg5QSwgMHg4QiwgMHhDOSwgMHhGMSwgMHgyRSwgMHgwQSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEExLCAweDNBLCAweDI1LCAweEE4LCAweDVBLCAweDVELCAweEVELCAweDJEKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QkMsIDB4NjMsIDB4OTgsIDB4RUEsIDB4Q0EsIDB4NDEsIDB4MzQsIDB4QTgpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgxMCwgMHgxNiwgMHhGOSwgMHgzRCwgMHg4RCwgMHhERCwgMHhDQiwgMHg5NCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEM1LCAweDRDLCAweDIzLCAweEFDLCAweDQ1LCAweDcxLCAweDMyLCAweEUyKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4ODksIDB4M0IsIDB4NjAsIDB4OEIsIDB4MzEsIDB4QTMsIDB4MzAsIDB4NzgpLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IGJyYWlucG9vbFA1MTJyMV9iW10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDIzLCAweEY3LCAweDE2LCAweDgwLCAweDYzLCAweEJELCAweDA5LCAweDI4KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4REQsIDB4RTUsIDB4QkEsIDB4NUUsIDB4QjcsIDB4NTAsIDB4NDAsIDB4OTgpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg2NywgMHgzRSwgMHgwOCwgMHhEQywgMHhDQSwgMHg5NCwgMHhGQywgMHg3NyksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDRELCAweEFDLCAweEMxLCAweEU3LCAweEI5LCAweEM3LCAweEYyLCAweDJCKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QTcsIDB4MTcsIDB4MTEsIDB4N0YsIDB4QjUsIDB4QzgsIDB4OUEsIDB4OEIpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhDOSwgMHhGMSwgMHgyRSwgMHgwQSwgMHhBMSwgMHgzQSwgMHgyNSwgMHhBOCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDVBLCAweDVELCAweEVELCAweDJELCAweEJDLCAweDYzLCAweDk4LCAweEVBKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4Q0EsIDB4NDEsIDB4MzQsIDB4QTgsIDB4MTAsIDB4MTYsIDB4RjksIDB4M0QpLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IGJyYWlucG9vbFA1MTJyMV9neFtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgyMiwgMHhGOCwgMHhCOSwgMHhCQywgMHgwOSwgMHgyMiwgMHgzNSwgMHg4QiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDY4LCAweDVFLCAweDZBLCAweDQwLCAweDQ3LCAweDUwLCAweDZELCAweDdDKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NUYsIDB4N0QsIDB4QjksIDB4OTMsIDB4N0IsIDB4NjgsIDB4RDEsIDB4NTApLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg4RCwgMHhENCwgMHhEMCwgMHhFMiwgMHg3OCwgMHgxRiwgMHgzQiwgMHhGRiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDhFLCAweDA5LCAweEQwLCAweEY0LCAweEVFLCAweDYyLCAweDNCLCAweEI0KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QzEsIDB4MTYsIDB4RDksIDB4QjUsIDB4NzAsIDB4OUYsIDB4RUQsIDB4ODUpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg5MywgMHg2QSwgMHg0QywgMHg5QywgMHgyRSwgMHgzMiwgMHgyMSwgMHg1QSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDY0LCAweEQ5LCAweDJFLCAweEQ4LCAweEJELCAweEU0LCAweEFFLCAweDgxKSwKLX07Ci1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBicmFpbnBvb2xQNTEycjFfZ3lbXSA9IHsKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4OTIsIDB4MDgsIDB4RDgsIDB4M0EsIDB4MEYsIDB4MUUsIDB4Q0QsIDB4NzgpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgwNiwgMHg1NCwgMHhGMCwgMHhBOCwgMHgyRiwgMHgyQiwgMHhDQSwgMHhEMSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEFFLCAweDYzLCAweDI3LCAweDhBLCAweEQ4LCAweDRCLCAweENBLCAweDVCKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NUUsIDB4NDgsIDB4NUYsIDB4NEEsIDB4NDksIDB4REUsIDB4REMsIDB4QjIpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgxMSwgMHg4MSwgMHgxRiwgMHg4OCwgMHg1QiwgMHhDNSwgMHgwMCwgMHhBMCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDFBLCAweDdCLCAweEE1LCAweDI0LCAweDAwLCAweEY3LCAweDA5LCAweEYyKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RkQsIDB4MjIsIDB4NzgsIDB4Q0YsIDB4QTksIDB4QkYsIDB4RUEsIDB4QzApLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhFQywgMHgzMiwgMHg2MywgMHg1NiwgMHg1RCwgMHgzOCwgMHhERSwgMHg3RCksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgYnJhaW5wb29sUDUxMnIxX25bXSA9IHsKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NjksIDB4MDAsIDB4QTksIDB4OUMsIDB4ODIsIDB4OTYsIDB4ODcsIDB4QjUpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhERCwgMHhEQSwgMHg1RCwgMHgwOCwgMHg4MSwgMHhEMywgMHhCMSwgMHgxRCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDQ3LCAweDEwLCAweEFDLCAweDdGLCAweDE5LCAweDYxLCAweDg2LCAweDQxKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MTksIDB4MjYsIDB4QTksIDB4NEMsIDB4NDEsIDB4NUMsIDB4M0UsIDB4NTUpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg3MCwgMHgwOCwgMHgzMywgMHg3MCwgMHhDQSwgMHg5QywgMHg2MywgMHhENiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDBFLCAweEQyLCAweEM5LCAweEIzLCAweEIzLCAweDhELCAweDMwLCAweENCKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MDcsIDB4RkMsIDB4QzksIDB4MzMsIDB4QUUsIDB4RTYsIDB4RDQsIDB4M0YpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg4QiwgMHhDNCwgMHhFOSwgMHhEQiwgMHhCOCwgMHg5RCwgMHhERCwgMHhBQSksCi19OwotCi0jaWYgTUJFRFRMU19FQ1BfRklYRURfUE9JTlRfT1BUSU0gPT0gMQotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgYnJhaW5wb29sUDUxMnIxX1RfMF9YW10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDIyLCAweEY4LCAweEI5LCAweEJDLCAweDA5LCAweDIyLCAweDM1LCAweDhCKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NjgsIDB4NUUsIDB4NkEsIDB4NDAsIDB4NDcsIDB4NTAsIDB4NkQsIDB4N0MpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg1RiwgMHg3RCwgMHhCOSwgMHg5MywgMHg3QiwgMHg2OCwgMHhEMSwgMHg1MCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDhELCAweEQ0LCAweEQwLCAweEUyLCAweDc4LCAweDFGLCAweDNCLCAweEZGKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4OEUsIDB4MDksIDB4RDAsIDB4RjQsIDB4RUUsIDB4NjIsIDB4M0IsIDB4QjQpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhDMSwgMHgxNiwgMHhEOSwgMHhCNSwgMHg3MCwgMHg5RiwgMHhFRCwgMHg4NSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDkzLCAweDZBLCAweDRDLCAweDlDLCAweDJFLCAweDMyLCAweDIxLCAweDVBKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NjQsIDB4RDksIDB4MkUsIDB4RDgsIDB4QkQsIDB4RTQsIDB4QUUsIDB4ODEpLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IGJyYWlucG9vbFA1MTJyMV9UXzBfWVtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg5MiwgMHgwOCwgMHhEOCwgMHgzQSwgMHgwRiwgMHgxRSwgMHhDRCwgMHg3OCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDA2LCAweDU0LCAweEYwLCAweEE4LCAweDJGLCAweDJCLCAweENBLCAweEQxKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QUUsIDB4NjMsIDB4MjcsIDB4OEEsIDB4RDgsIDB4NEIsIDB4Q0EsIDB4NUIpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg1RSwgMHg0OCwgMHg1RiwgMHg0QSwgMHg0OSwgMHhERSwgMHhEQywgMHhCMiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDExLCAweDgxLCAweDFGLCAweDg4LCAweDVCLCAweEM1LCAweDAwLCAweEEwKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MUEsIDB4N0IsIDB4QTUsIDB4MjQsIDB4MDAsIDB4RjcsIDB4MDksIDB4RjIpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhGRCwgMHgyMiwgMHg3OCwgMHhDRiwgMHhBOSwgMHhCRiwgMHhFQSwgMHhDMCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEVDLCAweDMyLCAweDYzLCAweDU2LCAweDVELCAweDM4LCAweERFLCAweDdEKSwKLX07Ci1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBicmFpbnBvb2xQNTEycjFfVF8xX1hbXSA9IHsKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RUEsIDB4RTksIDB4NkIsIDB4OEMsIDB4NkYsIDB4OUQsIDB4ODgsIDB4NDMpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhCQiwgMHg0RiwgMHg4NiwgMHg5NiwgMHhBNywgMHg1NiwgMHhEMSwgMHgzNyksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDlELCAweEFCLCAweEZBLCAweEVFLCAweEE3LCAweEY1LCAweDBFLCAweEE2KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RTMsIDB4NDAsIDB4RUYsIDB4OUUsIDB4NkQsIDB4RDYsIDB4MzIsIDB4MzMpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhFMywgMHhFRCwgMHg1NiwgMHgxNCwgMHg1NywgMHgxQSwgMHg4RCwgMHg2OSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEE0LCAweEVELCAweDRELCAweDNBLCAweEZBLCAweDcxLCAweDc1LCAweDZCKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NjYsIDB4QzUsIDB4NzYsIDB4MUMsIDB4MTQsIDB4QkUsIDB4QjUsIDB4Q0QpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhFMSwgMHg1QSwgMHhDQiwgMHhFNywgMHgzNiwgMHgxRCwgMHg1MiwgMHgxQyksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgYnJhaW5wb29sUDUxMnIxX1RfMV9ZW10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDZCLCAweDhELCAweDdBLCAweEVCLCAweEEzLCAweDhCLCAweEQ1LCAweEIwKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MUYsIDB4QTMsIDB4NDEsIDB4RjgsIDB4QUMsIDB4OUUsIDB4QUIsIDB4NzQpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgxMiwgMHhFMywgMHg2NSwgMHgwRCwgMHgxQywgMHhGRSwgMHgwOSwgMHgyQiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDNGLCAweENBLCAweDEzLCAweDNGLCAweEM1LCAweEY5LCAweDdFLCAweEVDKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MkMsIDB4NUQsIDB4NjMsIDB4MjgsIDB4QTYsIDB4ODksIDB4RDMsIDB4OTEpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhDOSwgMHg5NSwgMHgzRiwgMHg3QSwgMHg4MiwgMHhENCwgMHg3NywgMHhFMyksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDM0LCAweEJCLCAweDkyLCAweDMyLCAweDAwLCAweEY0LCAweDY2LCAweDQyKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QkEsIDB4NTgsIDB4MzEsIDB4RDEsIDB4MTcsIDB4OUYsIDB4MkEsIDB4MjIpLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IGJyYWlucG9vbFA1MTJyMV9UXzJfWFtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg1MiwgMHgzNiwgMHhBOSwgMHhDRCwgMHg4MCwgMHhBNSwgMHgyRCwgMHg3OCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDkxLCAweDQ0LCAweEFCLCAweENFLCAweDcxLCAweEZGLCAweDBDLCAweDlCKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MTgsIDB4MjQsIDB4NTgsIDB4MzUsIDB4NUEsIDB4MjEsIDB4MzIsIDB4OTMpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgxQiwgMHhBNiwgMHgyOCwgMHhGOCwgMHg3QSwgMHg5NywgMHhBRSwgMHg4QiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDg0LCAweEU3LCAweDA4LCAweEZBLCAweDQ3LCAweEM5LCAweDU1LCAweDA5KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4OEQsIDB4QUMsIDB4MkUsIDB4ODQsIDB4QTQsIDB4RjUsIDB4NTIsIDB4QzQpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhEOSwgMHg1OCwgMHgwNSwgMHg5RCwgMHhBNywgMHhDOCwgMHg3MSwgMHhCRiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEIzLCAweDkyLCAweEI0LCAweDkyLCAweEMxLCAweDkyLCAweEVDLCAweDZCKSwKLX07Ci1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBicmFpbnBvb2xQNTEycjFfVF8yX1lbXSA9IHsKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NEEsIDB4NDgsIDB4MkQsIDB4NzksIDB4NUUsIDB4NTgsIDB4RTUsIDB4NjkpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhCNCwgMHg4NSwgMHgyNiwgMHhFQywgMHhFOSwgMHg2RSwgMHhENCwgMHgwNiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDk4LCAweDY4LCAweDI2LCAweDg3LCAweDM4LCAweEEyLCAweEQyLCAweDBCKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RjcsIDB4MTcsIDB4NjAsIDB4Q0UsIDB4NzUsIDB4RjgsIDB4QTUsIDB4NkYpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgyMCwgMHg1MSwgMHhEQiwgMHhBOSwgMHhBRSwgMHg4NywgMHhGMSwgMHgxNSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweERELCAweDQ5LCAweDkyLCAweDNCLCAweDE5LCAweDk2LCAweEY1LCAweEIwKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QzQsIDB4RDUsIDB4NTIsIDB4NTIsIDB4OEMsIDB4Q0UsIDB4RkQsIDB4RkEpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgyNCwgMHgxOCwgMHgwQSwgMHhFNiwgMHhGNiwgMHhBRSwgMHgwOCwgMHg0MSksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgYnJhaW5wb29sUDUxMnIxX1RfM19YW10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDdFLCAweDJCLCAweEQ4LCAweDU0LCAweENFLCAweEIwLCAweDU3LCAweEZFKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4OEEsIDB4QjAsIDB4RjgsIDB4OUUsIDB4MDMsIDB4MDMsIDB4M0MsIDB4NUQpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg5MywgMHgwRSwgMHgyOSwgMHgyOSwgMHgwMCwgMHhGMywgMHg3MCwgMHhCRiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDU0LCAweDMzLCAweDk5LCAweDBFLCAweDAwLCAweDVELCAweEZFLCAweDRCKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NDYsIDB4MkQsIDB4RjIsIDB4NTksIDB4MzIsIDB4Q0YsIDB4MDMsIDB4RjQpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgzQiwgMHhDOSwgMHg3MiwgMHhBRSwgMHgwQywgMHhFRiwgMHhEMSwgMHg1QiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEI2LCAweDVBLCAweDI3LCAweEJGLCAweDJGLCAweDQ1LCAweEY5LCAweDUxKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RDQsIDB4QkUsIDB4RTUsIDB4MkMsIDB4RkYsIDB4NUIsIDB4MUUsIDB4ODgpLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IGJyYWlucG9vbFA1MTJyMV9UXzNfWVtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhBQSwgMHhBQywgMHhCQiwgMHhEOCwgMHg4MywgMHhDMiwgMHg0NiwgMHhGNiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweENGLCAweERDLCAweENFLCAweDE1LCAweEI0LCAweEVGLCAweENGLCAweDQ2KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NDYsIDB4REIsIDB4NUUsIDB4OTQsIDB4MzEsIDB4MEIsIDB4QjIsIDB4N0EpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgzQywgMHhCOSwgMHhFMywgMHhFMywgMHgxMSwgMHg3MSwgMHg0MSwgMHgxRSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDM2LCAweEUzLCAweDAxLCAweEI3LCAweDdELCAweEJDLCAweDY1LCAweEJFKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RkMsIDB4MDcsIDB4NjUsIDB4ODcsIDB4QTcsIDB4RTgsIDB4NDgsIDB4RTMpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg2NiwgMHg0OCwgMHg4RiwgMHhENCwgMHgzMCwgMHg4RSwgMHhCNCwgMHg2QyksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDg2LCAweEUwLCAweDczLCAweEJFLCAweDFFLCAweEJGLCAweDU2LCAweDM2KSwKLX07Ci1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBicmFpbnBvb2xQNTEycjFfVF80X1hbXSA9IHsKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RkUsIDB4MEUsIDB4NUUsIDB4ODcsIDB4QzUsIDB4QUIsIDB4MEUsIDB4M0MpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhCOSwgMHhGOSwgMHg1RiwgMHg4MCwgMHgyNCwgMHg0QywgMHgyQSwgMHhGMSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweERFLCAweDE1LCAweDIxLCAweDU0LCAweDkyLCAweDg0LCAweDhELCAweDZBKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QTgsIDB4OEEsIDB4NDcsIDB4NzQsIDB4REMsIDB4NDIsIDB4QjEsIDB4RjgpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg4MSwgMHhGNywgMHgzMCwgMHhGRCwgMHhDMSwgMHg5QiwgMHgwQywgMHg1QiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDRFLCAweDZDLCAweENDLCAweERGLCAweEM1LCAweEUzLCAweEE5LCAweEQ1KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RDYsIDB4NjcsIDB4NTksIDB4MTAsIDB4NUMsIDB4NTEsIDB4NTQsIDB4NDApLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhBMCwgMHgzNywgMHhGQiwgMHg2RSwgMHhCMCwgMHg3OCwgMHg2MywgMHg4RSksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgYnJhaW5wb29sUDUxMnIxX1RfNF9ZW10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEE1LCAweEVGLCAweEM0LCAweDM5LCAweDIwLCAweEYxLCAweDQ2LCAweDY2KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RTIsIDB4NjIsIDB4QUUsIDB4RkYsIDB4MTAsIDB4RTQsIDB4RTIsIDB4RTkpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhGRiwgMHg1QywgMHhGNSwgMHgyRSwgMHgyMiwgMHg4OSwgMHhFNSwgMHg4MiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDg5LCAweDBDLCAweDI5LCAweEE4LCAweDYyLCAweEFFLCAweERCLCAweDY1KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RDcsIDB4OUUsIDB4MEYsIDB4Q0EsIDB4ODcsIDB4MkEsIDB4NkYsIDB4N0IpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhDRSwgMHhEQywgMHg5QiwgMHg5RiwgMHg2NSwgMHhENCwgMHhBRCwgMHgyNyksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEVELCAweEMzLCAweDA4LCAweDBGLCAweENGLCAweDY3LCAweEU5LCAweEY0KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4OTIsIDB4NUMsIDB4RDcsIDB4RkYsIDB4NDEsIDB4OUMsIDB4Q0IsIDB4MjYpLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IGJyYWlucG9vbFA1MTJyMV9UXzVfWFtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgzNywgMHgyNSwgMHgwNSwgMHgxMiwgMHhBRCwgMHg3MywgMHg2MywgMHg5MCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEM3LCAweDk5LCAweDA3LCAweDg2LCAweDU3LCAweEU3LCAweDk0LCAweEIxKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MDAsIDB4NEIsIDB4QTUsIDB4QkYsIDB4MTgsIDB4QTksIDB4RUYsIDB4NkEpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhGQSwgMHg0QywgMHhDNCwgMHgwOSwgMHhGMiwgMHgyRiwgMHgwQywgMHhBQSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDhDLCAweDNBLCAweDA0LCAweEVBLCAweDg5LCAweDZDLCAweDkxLCAweEI5KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4N0QsIDB4NkMsIDB4M0EsIDB4RTcsIDB4QTMsIDB4RUMsIDB4MjQsIDB4N0IpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgxNiwgMHhBMSwgMHgyNiwgMHgyMSwgMHgwNCwgMHhFMywgMHhCOSwgMHg0MCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDUzLCAweDcxLCAweDRCLCAweDdCLCAweEMyLCAweDg5LCAweENELCAweEEyKSwKLX07Ci1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBicmFpbnBvb2xQNTEycjFfVF81X1lbXSA9IHsKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QjcsIDB4QjksIDB4QTgsIDB4OUQsIDB4RkQsIDB4MDAsIDB4M0EsIDB4MUYpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg2MywgMHg0MSwgMHg2QywgMHhCQiwgMHg1QSwgMHhDQSwgMHgxRiwgMHg3NCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDJBLCAweEQ3LCAweEUyLCAweDZDLCAweDZCLCAweEE3LCAweDQ4LCAweEM5KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MUUsIDB4MTksIDB4QUQsIDB4QTcsIDB4QzEsIDB4N0UsIDB4NEYsIDB4NkUpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhEMSwgMHhGNywgMHgxOSwgMHgzQywgMHgwNiwgMHg3NCwgMHgyQywgMHgzQSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEM1LCAweDIzLCAweDRGLCAweDBDLCAweDA5LCAweEIwLCAweDgwLCAweDRBKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NEUsIDB4NzQsIDB4MzQsIDB4MDgsIDB4NDQsIDB4N0UsIDB4QTMsIDB4REQpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhGQiwgMHhDQywgMHg4RCwgMHgxMiwgMHg2RSwgMHhFMSwgMHgzRCwgMHgwQiksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgYnJhaW5wb29sUDUxMnIxX1RfNl9YW10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDM4LCAweDE4LCAweEIxLCAweDcxLCAweDAyLCAweDkzLCAweEMyLCAweEE0KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QzksIDB4ODksIDB4NDAsIDB4RTIsIDB4MUYsIDB4RTcsIDB4NUUsIDB4NjgpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg1MCwgMHg4RSwgMHhBRSwgMHg4OSwgMHgwMSwgMHhENCwgMHgwQywgMHhFQiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEFFLCAweERBLCAweDU4LCAweDcwLCAweDI0LCAweEYyLCAweEU0LCAweDVGKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NkYsIDB4QzcsIDB4MUQsIDB4RDYsIDB4NEEsIDB4NkYsIDB4NjYsIDB4NEYpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg5MiwgMHgxRCwgMHg3RSwgMHg0QSwgMHgyQywgMHhDQSwgMHhFQywgMHgzQiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEExLCAweDA2LCAweDdGLCAweEE4LCAweDk5LCAweEU0LCAweEQzLCAweDRFKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MkEsIDB4MUQsIDB4NUEsIDB4REYsIDB4NUUsIDB4NTgsIDB4MzYsIDB4NDkpLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IGJyYWlucG9vbFA1MTJyMV9UXzZfWVtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg5QywgMHhCOSwgMHgzMiwgMHg2OSwgMHgxRiwgMHg3MiwgMHgyQSwgMHhCMyksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDFDLCAweDczLCAweEUyLCAweDAzLCAweDM5LCAweDM1LCAweEFBLCAweEE4KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RUIsIDB4NUUsIDB4NUQsIDB4NDgsIDB4RUYsIDB4QUUsIDB4MzAsIDB4RjUpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg3NywgMHg3RiwgMHg2MCwgMHgxOSwgMHhBRiwgMHhFQywgMHg5RCwgMHhGQyksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweENBLCAweEQ5LCAweDE5LCAweEU0LCAweDFCLCAweDU2LCAweDE1LCAweDVGKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QkMsIDB4RDcsIDB4MzMsIDB4NTksIDB4MUYsIDB4NDMsIDB4NTksIDB4MkMpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhDNiwgMHhDRSwgMHhFRSwgMHhDQSwgMHhBNCwgMHg3RiwgMHg2MywgMHhENCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEJELCAweDQwLCAweEMwLCAweEY2LCAweDE5LCAweDg5LCAweDQzLCAweDIwKSwKLX07Ci1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBicmFpbnBvb2xQNTEycjFfVF83X1hbXSA9IHsKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RUIsIDB4OTIsIDB4RUEsIDB4MDcsIDB4NjUsIDB4NzksIDB4ODYsIDB4RDMpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhGRiwgMHhCNywgMHgxMywgMHg3NSwgMHhEMywgMHhDNSwgMHgwQSwgMHhDOSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDI2LCAweDlFLCAweEZBLCAweEUxLCAweDFGLCAweDBDLCAweEY5LCAweDc0KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QjQsIDB4OEMsIDB4RUQsIDB4NUMsIDB4MjEsIDB4RTksIDB4MDksIDB4REQpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhGNCwgMHg0RCwgMHhEOCwgMHgxOCwgMHhDNCwgMHhGNiwgMHgzNiwgMHgzOSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEM3LCAweEM5LCAweEFDLCAweDVDLCAweEZBLCAweDY5LCAweEE0LCAweEEwKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NkIsIDB4OEMsIDB4OTQsIDB4MUMsIDB4N0IsIDB4NzEsIDB4MzYsIDB4NTgpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg3QywgMHhCRCwgMHg0NiwgMHhDRSwgMHhCNywgMHgxRCwgMHg5QywgMHg1RSksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgYnJhaW5wb29sUDUxMnIxX1RfN19ZW10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEVBLCAweEQ2LCAweDk2LCAweDRCLCAweEE2LCAweDQ3LCAweEVCLCAweEU1KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NUYsIDB4RjEsIDB4NUYsIDB4MTUsIDB4REUsIDB4OTksIDB4NkYsIDB4NjYpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgyMSwgMHhCRCwgMHhFNSwgMHgwNCwgMHhCOCwgMHhFNiwgMHhDMCwgMHgwQiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDQ5LCAweEQzLCAweEYwLCAweDA0LCAweDAwLCAweEU0LCAweDA1LCAweERCKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4OTYsIDB4RjMsIDB4MDYsIDB4QTMsIDB4MUEsIDB4RkYsIDB4RUEsIDB4NzMpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgwOCwgMHgzMiwgMHhBQSwgMHg5OSwgMHgzMywgMHgwOSwgMHhCNiwgMHgzNCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDZFLCAweEVGLCAweEZDLCAweDYxLCAweDEwLCAweDQyLCAweDMxLCAweDk0KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MzQsIDB4RjEsIDB4RjQsIDB4MzMsIDB4Q0YsIDB4MjgsIDB4OTAsIDB4OUMpLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IGJyYWlucG9vbFA1MTJyMV9UXzhfWFtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgxMCwgMHhERSwgMHhGOSwgMHg4OCwgMHg4NywgMHg3QiwgMHhFQiwgMHhDOSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDY2LCAweEI4LCAweERBLCAweEZBLCAweERBLCAweDNELCAweEE2LCAweDE3KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QTAsIDB4RjAsIDB4NjIsIDB4ODIsIDB4NTMsIDB4MzIsIDB4NTUsIDB4MDMpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgyRiwgMHhBNSwgMHgzMiwgMHg0QSwgMHgxOSwgMHgxMSwgMHg5QywgMHgxMCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDE2LCAweEIzLCAweDI3LCAweEU5LCAweDc1LCAweDkwLCAweDA1LCAweDJEKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NjMsIDB4MUMsIDB4OTAsIDB4NDgsIDB4NzcsIDB4MDEsIDB4ODUsIDB4MUIpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhDNywgMHhENiwgMHg5QiwgMHg4NCwgMHhBOCwgMHhENywgMHhDNSwgMHgyOCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEUxLCAweDdBLCAweENCLCAweEIzLCAweDExLCAweDQ2LCAweEQ3LCAweDk5KSwKLX07Ci1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBicmFpbnBvb2xQNTEycjFfVF84X1lbXSA9IHsKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4OEIsIDB4MjMsIDB4QkYsIDB4NzUsIDB4NzUsIDB4QTEsIDB4OTUsIDB4OTApLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg0QiwgMHg2NiwgMHg1RCwgMHgzNCwgMHgxMywgMHhBOSwgMHgwMywgMHhCRSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDI5LCAweDgwLCAweDlELCAweDVGLCAweEQyLCAweDQ0LCAweEUxLCAweDYyKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4OTYsIDB4NUQsIDB4QkQsIDB4QTgsIDB4QkYsIDB4QjQsIDB4MjUsIDB4MUYpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg2QSwgMHg5OSwgMHgxRiwgMHg1MywgMHhGMSwgMHg1NywgMHhEQiwgMHhFNyksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDIxLCAweDdDLCAweEU1LCAweEM1LCAweDUxLCAweDBCLCAweDRDLCAweDlCKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NkIsIDB4QjAsIDB4MUEsIDB4OUMsIDB4MTYsIDB4QjAsIDB4MzIsIDB4MUYpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhGNCwgMHhFMywgMHhDRiwgMHhERCwgMHg0OCwgMHhCNCwgMHg3QiwgMHgzMyksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgYnJhaW5wb29sUDUxMnIxX1RfOV9YW10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEMwLCAweERELCAweDlFLCAweDNDLCAweDk4LCAweDBFLCAweDc3LCAweDY1KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NkMsIDB4QUIsIDB4MDEsIDB4RDMsIDB4ODcsIDB4NzQsIDB4MjUsIDB4NEEpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg4NywgMHhBMywgMHhFMywgMHg3NiwgMHg0MywgMHg4NywgMHgxMiwgMHhCRCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDU0LCAweEIxLCAweDNCLCAweDYwLCAweDY2LCAweEVCLCAweDk4LCAweDU0KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RDIsIDB4NzgsIDB4QzgsIDB4RDcsIDB4NEUsIDB4NzUsIDB4Q0EsIDB4NjkpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgwNywgMHhERiwgMHg3MSwgMHgxOSwgMHhFNywgMHgwNywgMHgzNiwgMHhCNSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDZELCAweEM5LCAweEE4LCAweDVGLCAweDkxLCAweEJGLCAweDQ3LCAweEIyKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4ODAsIDB4OTYsIDB4NTgsIDB4OTYsIDB4MTgsIDB4QjYsIDB4RkEsIDB4MDEpLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IGJyYWlucG9vbFA1MTJyMV9UXzlfWVtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhEMCwgMHgyRCwgMHhBOSwgMHg5QiwgMHg4NiwgMHhEQiwgMHgwQywgMHg0QyksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEU0LCAweDBCLCAweDJELCAweDU2LCAweDRBLCAweEQzLCAweDkzLCAweDhBKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QjUsIDB4MTUsIDB4RTIsIDB4NjUsIDB4MTIsIDB4ODYsIDB4MEUsIDB4QjIpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhCNCwgMHg0MSwgMHg0RCwgMHhDMSwgMHhDQiwgMHhFNCwgMHhDMywgMHhENyksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDZBLCAweDUzLCAweDEwLCAweENBLCAweEEzLCAweEFDLCAweDgzLCAweDI2KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4M0UsIDB4MDEsIDB4MjIsIDB4OTYsIDB4MTAsIDB4QUQsIDB4NjksIDB4REIpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg0MiwgMHg0NiwgMHg0RSwgMHhEOCwgMHhFQSwgMHhENiwgMHg5RCwgMHhGMyksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDQzLCAweDJGLCAweDdGLCAweDYyLCAweDYyLCAweDgwLCAweEQwLCAweDE0KSwKLX07Ci1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBicmFpbnBvb2xQNTEycjFfVF8xMF9YW10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEIyLCAweERBLCAweDAwLCAweDYzLCAweDA5LCAweEJELCAweDZBLCAweDgzKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MEYsIDB4RDQsIDB4NkUsIDB4NDgsIDB4MDUsIDB4QjcsIDB4RjcsIDB4MTcpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgxNCwgMHg0RCwgMHhENywgMHgwMCwgMHg0QSwgMHgxNSwgMHgyNywgMHg3QSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDNBLCAweDE1LCAweEFBLCAweDM3LCAweDI3LCAweDM0LCAweDE4LCAweDI0KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4M0EsIDB4MjAsIDB4MkMsIDB4ODQsIDB4MUIsIDB4ODgsIDB4QkEsIDB4MDUpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhBQywgMHgwOSwgMHhENiwgMHgwNCwgMHhBMiwgMHg2MCwgMHg4NCwgMHg3MiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEM4LCAweDA0LCAweDk0LCAweDA4LCAweEQ0LCAweEVELCAweDQ3LCAweERCKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4OEIsIDB4RjMsIDB4RTQsIDB4M0UsIDB4QjksIDB4NUIsIDB4MzUsIDB4NDIpLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IGJyYWlucG9vbFA1MTJyMV9UXzEwX1lbXSA9IHsKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NUYsIDB4RDgsIDB4QjYsIDB4ODAsIDB4RDYsIDB4RjEsIDB4MzAsIDB4REQpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhENiwgMHgxNCwgMHhBNiwgMHg4NSwgMHhFRSwgMHhBNywgMHhEOCwgMHg2MSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEU0LCAweDQ5LCAweDJBLCAweDFFLCAweDdDLCAweEU5LCAweDJELCAweEVDKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4M0EsIDB4ODcsIDB4NTYsIDB4OTEsIDB4MDMsIDB4NzcsIDB4NEQsIDB4NTUpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgwRSwgMHg1MiwgMHhENCwgMHhBQSwgMHhGNywgMHhGQSwgMHhCMCwgMHhDNSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDA0LCAweDVELCAweDExLCAweDM5LCAweEIxLCAweEU3LCAweDc2LCAweEFEKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RDYsIDB4MTMsIDB4QkMsIDB4MzcsIDB4NUQsIDB4NzQsIDB4Q0QsIDB4QzIpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhDOSwgMHg0OCwgMHgxNCwgMHgyMywgMHgzMCwgMHhGOCwgMHg0NiwgMHgzNyksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgYnJhaW5wb29sUDUxMnIxX1RfMTFfWFtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhBQywgMHgyNywgMHhCMCwgMHhEOSwgMHhCMiwgMHg3NCwgMHhCNCwgMHhDMCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEVBLCAweEE2LCAweEI5LCAweDZGLCAweDlGLCAweDY0LCAweDM2LCAweDkyKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MkUsIDB4MkIsIDB4NzgsIDB4NDAsIDB4MDUsIDB4MkIsIDB4N0IsIDB4QTkpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhCMywgMHg2OCwgMHgzQSwgMHhCNiwgMHg0QSwgMHhFMiwgMHhEQiwgMHhCOCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDFFLCAweDMzLCAweEQ3LCAweDM0LCAweDhCLCAweDI1LCAweDQ1LCAweEVGKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4ODksIDB4Q0UsIDB4QTgsIDB4QzksIDB4MDEsIDB4RkIsIDB4MEUsIDB4N0IpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhFMiwgMHhGOSwgMHg1MSwgMHg0QywgMHgxMiwgMHg5RiwgMHg2MCwgMHhFNCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDY3LCAweDg1LCAweEJELCAweDMwLCAweDM3LCAweDg0LCAweDM5LCAweDQ0KSwKLX07Ci1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBicmFpbnBvb2xQNTEycjFfVF8xMV9ZW10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDI2LCAweDMzLCAweEFGLCAweDJFLCAweEI4LCAweDJFLCAweENDLCAweDNDKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QTQsIDB4QjEsIDB4NzMsIDB4NTksIDB4NEUsIDB4MEMsIDB4MDksIDB4NEEpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg4QSwgMHgyNCwgMHg4OSwgMHg4MSwgMHgxMiwgMHhGRiwgMHhCQiwgMHg2RSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDcxLCAweDM3LCAweDFBLCAweDY2LCAweEVFLCAweEVELCAweEI2LCAweDlCKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MTYsIDB4QkQsIDB4MDQsIDB4MjAsIDB4NUQsIDB4RkIsIDB4QkYsIDB4OTUpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhBMCwgMHhGOCwgMHgzNCwgMHhBMywgMHhGRiwgMHg0NSwgMHhERSwgMHg5MiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDlCLCAweDE4LCAweDczLCAweEYxLCAweDMyLCAweDI1LCAweDU4LCAweEVCKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NjMsIDB4QzEsIDB4MTQsIDB4RTMsIDB4OUUsIDB4NDAsIDB4MEYsIDB4MTIpLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IGJyYWlucG9vbFA1MTJyMV9UXzEyX1hbXSA9IHsKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NjEsIDB4MDcsIDB4OUQsIDB4OUMsIDB4MDAsIDB4RjcsIDB4NTYsIDB4MTkpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhGQiwgMHhCQSwgMHg4NywgMHhGOSwgMHgxNSwgMHgwQywgMHg2NiwgMHg1RCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDdFLCAweDFGLCAweEMxLCAweDI4LCAweEIwLCAweDQ3LCAweDBELCAweEY1KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4OTYsIDB4Q0EsIDB4MjcsIDB4RUUsIDB4NEIsIDB4MjMsIDB4MkIsIDB4ODkpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg3RSwgMHhCNSwgMHg2OCwgMHhDOCwgMHgxNywgMHg1RCwgMHhDMywgMHhBQSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDE3LCAweDAyLCAweDA4LCAweEVFLCAweDIwLCAweDlELCAweEVBLCAweDY0KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QTcsIDB4MTQsIDB4NTAsIDB4RDQsIDB4N0QsIDB4NUYsIDB4Q0YsIDB4QTApLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhENSwgMHhGQSwgMHhGOCwgMHhBNywgMHhDNiwgMHhEQywgMHgxNCwgMHg4QyksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgYnJhaW5wb29sUDUxMnIxX1RfMTJfWVtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg3NiwgMHhCRCwgMHgwQSwgMHgxQSwgMHgxOCwgMHg5OCwgMHhEQywgMHhCMCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDYzLCAweDYzLCAweDAyLCAweEI3LCAweEQ1LCAweDVCLCAweDVBLCAweEM2KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NTEsIDB4QjEsIDB4RDcsIDB4NEIsIDB4MTUsIDB4MzksIDB4NjEsIDB4NUQpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg1QywgMHgzMiwgMHhFMSwgMHg5RSwgMHg3MCwgMHgxQiwgMHhDRSwgMHg1MSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDY0LCAweEQ4LCAweDE4LCAweDgzLCAweDUyLCAweDlCLCAweDZELCAweEEyKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QTQsIDB4NTUsIDB4NTYsIDB4MTksIDB4MzQsIDB4QTQsIDB4RUEsIDB4RkMpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgzMCwgMHhBOSwgMHg1NSwgMHg4MCwgMHhFMywgMHgxNSwgMHgzNiwgMHg4QiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEJCLCAweDA2LCAweEM4LCAweDFELCAweDE3LCAweDBELCAweEFELCAweDE2KSwKLX07Ci1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBicmFpbnBvb2xQNTEycjFfVF8xM19YW10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDIwLCAweEQ2LCAweEYwLCAweENDLCAweEYzLCAweDYzLCAweDUzLCAweEQyKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MjcsIDB4NUEsIDB4REMsIDB4NDYsIDB4QkQsIDB4MEQsIDB4QUQsIDB4OTYpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgyMSwgMHgyRiwgMHgxMSwgMHg2MCwgMHgxNSwgMHg1MSwgMHg0QSwgMHhFQSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDMzLCAweEUzLCAweDkzLCAweDM4LCAweEQ1LCAweDgzLCAweEFBLCAweDBEKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4OTAsIDB4QTYsIDB4Q0MsIDB4QjEsIDB4RkQsIDB4QkIsIDB4MUEsIDB4MEYpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgzQiwgMHg1NCwgMHhDOCwgMHg1NCwgMHg2RiwgMHg3OSwgMHgxQSwgMHg1OSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDNGLCAweDRBLCAweERBLCAweDI4LCAweDkyLCAweDk3LCAweDlELCAweDdGKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RDYsIDB4NEIsIDB4REIsIDB4QzcsIDB4NTIsIDB4QzUsIDB4NjYsIDB4MzQpLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IGJyYWlucG9vbFA1MTJyMV9UXzEzX1lbXSA9IHsKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MDUsIDB4N0UsIDB4OTIsIDB4NTMsIDB4MzAsIDB4OTMsIDB4RkQsIDB4RkYpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhBMCwgMHgxNiwgMHg2QSwgMHhCMSwgMHg5MSwgMHgwQSwgMHhCNCwgMHg1MiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDZELCAweDlELCAweDQwLCAweDNGLCAweEUzLCAweEYxLCAweDAxLCAweDQ2KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MTMsIDB4MEUsIDB4RDgsIDB4RUQsIDB4MTEsIDB4OEUsIDB4NEMsIDB4RUQpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg4NiwgMHg0QSwgMHgxQiwgMHg4OCwgMHhERiwgMHg4RCwgMHgyOSwgMHhFNyksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDk3LCAweDIzLCAweDIxLCAweDExLCAweEFCLCAweDc3LCAweDgxLCAweDYyKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MEIsIDB4QUYsIDB4MTEsIDB4RkEsIDB4QkEsIDB4NDAsIDB4NjMsIDB4RTcpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgyQiwgMHg2RiwgMHg4RCwgMHg4MCwgMHhERiwgMHg2NywgMHhGNSwgMHg0NCksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgYnJhaW5wb29sUDUxMnIxX1RfMTRfWFtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhCMiwgMHg4QiwgMHhCNywgMHgwOCwgMHhGNCwgMHhENywgMHgyRCwgMHhBOCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEM3LCAweDJCLCAweDMwLCAweDAyLCAweDQ1LCAweDcxLCAweDA4LCAweDQ5KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4OTcsIDB4M0EsIDB4Q0EsIDB4NTAsIDB4RjYsIDB4QzIsIDB4MTksIDB4OEMpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgxNywgMHhCOSwgMHg5QiwgMHgzRSwgMHg3MywgMHg5NSwgMHgxRCwgMHg0OSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEI2LCAweDYwLCAweDU5LCAweDQ4LCAweENCLCAweEQ4LCAweEQ2LCAweEFBKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RjAsIDB4QjksIDB4NkMsIDB4ODksIDB4QUIsIDB4OTksIDB4QTgsIDB4RjgpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhFRiwgMHhBMSwgMHg4QiwgMHg0RSwgMHgwNiwgMHgxOSwgMHhFQywgMHg5OSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDcwLCAweDk1LCAweDA0LCAweENGLCAweEQ1LCAweDk0LCAweEIzLCAweDAyKSwKLX07Ci1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBicmFpbnBvb2xQNTEycjFfVF8xNF9ZW10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDI5LCAweDM1LCAweDkzLCAweDdDLCAweEIzLCAweEI4LCAweDlFLCAweDFCKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QzQsIDB4NDUsIDB4NUMsIDB4N0UsIDB4QkYsIDB4NzUsIDB4ODEsIDB4MEYpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhEQywgMHhFOCwgMHgyNCwgMHhERiwgMHhFQywgMHgyRiwgMHg3RCwgMHhCOSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEYyLCAweDhCLCAweEQ1LCAweDZBLCAweDlCLCAweEEwLCAweEUwLCAweDRGKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MzIsIDB4RTMsIDB4MjcsIDB4ODIsIDB4REUsIDB4REQsIDB4Q0EsIDB4NEIpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhBNywgMHg1NywgMHg1NiwgMHg0NiwgMHgwNSwgMHgwNiwgMHgwMSwgMHgyRSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDc0LCAweDM1LCAweEE3LCAweDQ3LCAweEUyLCAweDZCLCAweDJDLCAweDRGKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MzgsIDB4OUQsIDB4NEMsIDB4RUMsIDB4MUYsIDB4MTEsIDB4NzUsIDB4MkIpLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IGJyYWlucG9vbFA1MTJyMV9UXzE1X1hbXSA9IHsKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QUMsIDB4QUEsIDB4NDEsIDB4QzEsIDB4RTksIDB4MEUsIDB4RTksIDB4QUEpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgwQSwgMHhDRiwgMHg5QywgMHg0QiwgMHhFOCwgMHhFRCwgMHgwQSwgMHg0OSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDNELCAweDczLCAweENBLCAweDBDLCAweDQ2LCAweDBBLCAweDlDLCAweEU0KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4OTksIDB4RTEsIDB4OUUsIDB4QkMsIDB4RkUsIDB4NDQsIDB4NjMsIDB4NkQpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgzMSwgMHg0MywgMHg3MSwgMHhFRSwgMHhGOCwgMHhDMSwgMHg4QywgMHg1QyksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDZBLCAweDRCLCAweEYwLCAweDY5LCAweDI1LCAweEJELCAweDcxLCAweDFBKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RkQsIDB4OUEsIDB4RkUsIDB4ODIsIDB4RTcsIDB4QzEsIDB4QzEsIDB4RUUpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhGQywgMHg1QSwgMHg2RSwgMHg1RSwgMHg5NywgMHg2QSwgMHgzNSwgMHg4RCksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgYnJhaW5wb29sUDUxMnIxX1RfMTVfWVtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhBMiwgMHgxOCwgMHg2QywgMHg3RSwgMHhCOCwgMHg5RSwgMHg1NywgMHgzMiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDM1LCAweEI5LCAweEMxLCAweEQwLCAweEZFLCAweDc4LCAweEZCLCAweDMyKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4N0MsIDB4MDgsIDB4QUUsIDB4NDYsIDB4MzQsIDB4RUEsIDB4N0EsIDB4N0YpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhFOCwgMHgxQywgMHg1NiwgMHhBOSwgMHgxOCwgMHgzNywgMHhENCwgMHg5RSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDI4LCAweDYzLCAweEU5LCAweDBBLCAweEI2LCAweDM4LCAweDNDLCAweEMxKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4M0UsIDB4NEYsIDB4QTQsIDB4NkUsIDB4ODUsIDB4MzEsIDB4MjMsIDB4NTIpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgwRCwgMHhBRCwgMHhDNCwgMHhDMywgMHhCMSwgMHg0QiwgMHgxQywgMHg4MiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDMwLCAweDU2LCAweDRBLCAweDM4LCAweEIzLCAweDZCLCAweDZGLCAweDJDKSwKLX07Ci1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBicmFpbnBvb2xQNTEycjFfVF8xNl9YW10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDY3LCAweEM3LCAweDE5LCAweERFLCAweDIxLCAweEVELCAweDg5LCAweEQwKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MkYsIDB4QkUsIDB4QTYsIDB4QUUsIDB4RUIsIDB4OUQsIDB4QTcsIDB4MkEpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgwNCwgMHgwRSwgMHgxMywgMHgxRSwgMHg4NiwgMHg1NywgMHhDMywgMHgzQiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDFGLCAweDRCLCAweDMwLCAweDQ2LCAweDUyLCAweEMxLCAweEVDLCAweDUyKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NkUsIDB4RDUsIDB4NDQsIDB4MzEsIDB4OTYsIDB4M0IsIDB4MjYsIDB4MjcpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg3NywgMHg2OCwgMHhBOCwgMHg2NywgMHg3OCwgMHgzOSwgMHhFOCwgMHg2OCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDhFLCAweDc4LCAweEI3LCAweERELCAweEYyLCAweDU4LCAweEI2LCAweDNEKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4ODEsIDB4M0MsIDB4QjMsIDB4MjYsIDB4QzQsIDB4MkMsIDB4OEMsIDB4QTUpLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IGJyYWlucG9vbFA1MTJyMV9UXzE2X1lbXSA9IHsKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QjksIDB4MjQsIDB4RTUsIDB4NzMsIDB4RUUsIDB4OUEsIDB4MDIsIDB4QTkpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhEOSwgMHg2QSwgMHg2NSwgMHg2MCwgMHhGMywgMHg2MiwgMHhFMywgMHhFOSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEZCLCAweDA3LCAweDg0LCAweEU2LCAweDNCLCAweDQ2LCAweDY1LCAweDlGKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RTEsIDB4OEYsIDB4MEMsIDB4QjAsIDB4RTEsIDB4MDQsIDB4ODIsIDB4OUQpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhFQiwgMHgxMywgMHhCRiwgMHgzRCwgMHhBMCwgMHg0OCwgMHhBMiwgMHg3NCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDA4LCAweDI2LCAweDc2LCAweDc0LCAweEFCLCAweDBCLCAweDI5LCAweEU4KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MzAsIDB4NkUsIDB4NUYsIDB4MDMsIDB4MzQsIDB4N0MsIDB4MzgsIDB4Q0UpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg0RCwgMHg3MiwgMHhGOSwgMHgzQiwgMHgzQywgMHhBNCwgMHhCQywgMHg3QyksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgYnJhaW5wb29sUDUxMnIxX1RfMTdfWFtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg1QywgMHhDRSwgMHgxOCwgMHg4MCwgMHhCOCwgMHgyNCwgMHg0NSwgMHg4MSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEYxLCAweDA5LCAweDAzLCAweEI4LCAweDA2LCAweDY0LCAweEY3LCAweEVDKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RjEsIDB4MjYsIDB4QjEsIDB4MTAsIDB4NkQsIDB4NzEsIDB4MTIsIDB4MkUpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhBRCwgMHgxMiwgMHhDNiwgMHg2RSwgMHgxRSwgMHg2QSwgMHhDMywgMHg4MCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEU1LCAweEQzLCAweDBBLCAweERFLCAweEQ4LCAweDZCLCAweDA0LCAweDVDKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4OTYsIDB4ODcsIDB4NUIsIDB4QUUsIDB4REIsIDB4M0MsIDB4QzAsIDB4QzUpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg4RSwgMHhGNSwgMHhGOSwgMHhDMSwgMHg5QSwgMHg4OSwgMHhCQiwgMHg3RSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEVELCAweDY5LCAweDcyLCAweDhCLCAweEFFLCAweDMyLCAweDEzLCAweDExKSwKLX07Ci1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBicmFpbnBvb2xQNTEycjFfVF8xN19ZW10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEY5LCAweDE2LCAweDA3LCAweDUwLCAweEZBLCAweDRDLCAweENGLCAweEU4KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RjgsIDB4NTAsIDB4MjEsIDB4RTksIDB4REUsIDB4RUMsIDB4N0UsIDB4REYpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg3QywgMHgyRiwgMHhFOCwgMHg4MywgMHgzMCwgMHgwQiwgMHg2NSwgMHgwRSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEE1LCAweDBCLCAweDk5LCAweEFDLCAweEM5LCAweEJBLCAweDZDLCAweDJBKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QTcsIDB4NTksIDB4NUEsIDB4MEQsIDB4N0IsIDB4OUUsIDB4MDgsIDB4QUQpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgzNCwgMHg5MSwgMHhCMiwgMHhEQywgMHg5MCwgMHhDRSwgMHg2NywgMHhFRCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEUzLCAweDkzLCAweDYwLCAweDBDLCAweEQ3LCAweDFGLCAweDJGLCAweDE3KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MTksIDB4N0YsIDB4OUQsIDB4NDAsIDB4RjgsIDB4NzgsIDB4N0EsIDB4NTQpLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IGJyYWlucG9vbFA1MTJyMV9UXzE4X1hbXSA9IHsKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MTMsIDB4MjIsIDB4OTUsIDB4RTgsIDB4RUYsIDB4MzEsIDB4NTcsIDB4MzUpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgyRCwgMHg4OCwgMHg1MywgMHhGRSwgMHhBRiwgMHg3QywgMHg0NywgMHgxNCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDBFLCAweENFLCAweENDLCAweDc5LCAweEU4LCAweDlGLCAweDhDLCAweEM0KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4REIsIDB4MTYsIDB4REQsIDB4NzcsIDB4NkUsIDB4OEEsIDB4NzMsIDB4OTcpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhDMCwgMHgwNywgMHg5NywgMHgyMSwgMHgzQiwgMHhGOCwgMHg1RiwgMHhBOCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEM2LCAweEI1LCAweEQyLCAweDgxLCAweDg0LCAweEYwLCAweEU3LCAweDlGKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4Q0IsIDB4OEYsIDB4NzUsIDB4MDksIDB4NkEsIDB4MEUsIDB4NTMsIDB4QUQpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhFNiwgMHg0RiwgMHg3MCwgMHg5NywgMHhDNywgMHhBQywgMHg3RCwgMHgzRiksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgYnJhaW5wb29sUDUxMnIxX1RfMThfWVtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhGOSwgMHgzQywgMHg2QSwgMHhCNCwgMHgxMCwgMHhBOSwgMHhDOCwgMHgxRCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEVFLCAweEM1LCAweEQ2LCAweDY5LCAweDE2LCAweEI4LCAweEFDLCAweDI1KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QUMsIDB4NDQsIDB4REMsIDB4RUIsIDB4NDgsIDB4NTQsIDB4NUQsIDB4NUYpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg2RiwgMHg0OCwgMHg5QiwgMHhENywgMHg3MiwgMHg2OSwgMHhBNCwgMHg4QSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEI0LCAweDBELCAweDM2LCAweDlBLCAweDY2LCAweDBCLCAweEVDLCAweDI0KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QkUsIDB4QzYsIDB4RDQsIDB4QjYsIDB4NjAsIDB4RTUsIDB4QzMsIDB4M0EpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhCQSwgMHgyOSwgMHg0MiwgMHhFMCwgMHg5RCwgMHhGRCwgMHg3QywgMHgzRSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDQzLCAweDEwLCAweEJBLCAweDU1LCAweEJDLCAweDNCLCAweDM4LCAweDVEKSwKLX07Ci1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBicmFpbnBvb2xQNTEycjFfVF8xOV9YW10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDI1LCAweDY2LCAweEZBLCAweDA1LCAweDczLCAweDAzLCAweDFCLCAweDY5KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MTEsIDB4QTQsIDB4NjYsIDB4MTIsIDB4OTYsIDB4N0IsIDB4MDIsIDB4NEMpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg0NCwgMHhCNSwgMHhERSwgMHg2RCwgMHg5OCwgMHhEMSwgMHhENSwgMHhBOCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEUyLCAweEY1LCAweDQ0LCAweEI4LCAweDhFLCAweEY2LCAweDhDLCAweDA1KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NjgsIDB4MTUsIDB4MkIsIDB4NzIsIDB4QkMsIDB4NDksIDB4RTUsIDB4REYpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg2QywgMHg0NCwgMHhENywgMHhERiwgMHg4RiwgMHhFQiwgMHg4RCwgMHg4MCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDA1LCAweDY0LCAweDg4LCAweEFBLCAweEI3LCAweEU0LCAweDcwLCAweDFEKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4OUMsIDB4MTQsIDB4QkIsIDB4RTksIDB4OUIsIDB4QjksIDB4NjUsIDB4NUQpLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IGJyYWlucG9vbFA1MTJyMV9UXzE5X1lbXSA9IHsKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NjYsIDB4OEUsIDB4ODgsIDB4RjUsIDB4RjEsIDB4QzEsIDB4ODksIDB4QTIpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgxNiwgMHgzMCwgMHg1MywgMHhFNiwgMHhGQiwgMHgyRCwgMHg4MiwgMHhCNCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEE3LCAweEU0LCAweEZGLCAweEJBLCAweDMxLCAweDc5LCAweEFCLCAweEMyKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NDUsIDB4MDksIDB4RjcsIDB4QjcsIDB4MDksIDB4NzgsIDB4NEMsIDB4OTApLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgxMCwgMHhBRSwgMHhDMiwgMHg0NCwgMHhEQywgMHgxNywgMHg3OCwgMHg0NyksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEM3LCAweEQ0LCAweDE3LCAweDQzLCAweDE5LCAweDc0LCAweDlFLCAweDIzKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MTUsIDB4NjQsIDB4M0IsIDB4NzMsIDB4QTIsIDB4OTksIDB4MjcsIDB4NzYpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgwNSwgMHg3NCwgMHgzNiwgMHg1RiwgMHhEMywgMHgxNCwgMHhCMSwgMHgzMSksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgYnJhaW5wb29sUDUxMnIxX1RfMjBfWFtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhBQywgMHgwNywgMHhBQiwgMHhGRCwgMHg5QiwgMHgwMywgMHhDNSwgMHhENSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEM3LCAweEJFLCAweEIwLCAweDFELCAweEYyLCAweDBDLCAweDczLCAweDczKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4OTksIDB4RTcsIDB4N0IsIDB4ODcsIDB4RDMsIDB4MzQsIDB4RkQsIDB4RTIpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg5QSwgMHgyNSwgMHgzRCwgMHhDNywgMHgzNiwgMHg4MywgMHg1MywgMHhEQyksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDIyLCAweDdDLCAweENGLCAweDYzLCAweDU1LCAweDEyLCAweDExLCAweEIwKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QzAsIDB4MzQsIDB4NEQsIDB4MjcsIDB4OTIsIDB4QUMsIDB4MTgsIDB4MTYpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg5OCwgMHg0MiwgMHg2MSwgMHg5RCwgMHgyRSwgMHhGRiwgMHgxMywgMHgxNiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEY0LCAweERFLCAweDkyLCAweDY1LCAweDU3LCAweDBELCAweEJDLCAweDBBKSwKLX07Ci1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBicmFpbnBvb2xQNTEycjFfVF8yMF9ZW10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEVGLCAweDdCLCAweDZFLCAweEM2LCAweDJBLCAweDIxLCAweDc0LCAweDBBKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MzcsIDB4QTcsIDB4NTMsIDB4NEQsIDB4MjksIDB4MzYsIDB4RUYsIDB4RTUpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhFMSwgMHhENiwgMHg0MSwgMHhDNywgMHg5OSwgMHhBRCwgMHg1MCwgMHg1MyksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDk5LCAweEFDLCAweDQxLCAweDlGLCAweEZCLCAweDRDLCAweDg2LCAweEYxKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4OEIsIDB4QkIsIDB4RTYsIDB4MjUsIDB4MjgsIDB4QUEsIDB4RUIsIDB4MUUpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg5MiwgMHgwNCwgMHhBMiwgMHhDMywgMHhBQSwgMHgwOCwgMHg4QSwgMHhDQyksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDVBLCAweDJCLCAweDVCLCAweEUyLCAweDhELCAweDc2LCAweEVBLCAweDM0KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QjMsIDB4MzMsIDB4RDIsIDB4MjEsIDB4NEQsIDB4NjIsIDB4RTMsIDB4OEUpLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IGJyYWlucG9vbFA1MTJyMV9UXzIxX1hbXSA9IHsKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RjYsIDB4MDYsIDB4OEIsIDB4MkIsIDB4QzIsIDB4QzQsIDB4QjEsIDB4RDIpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhGQSwgMHhGNSwgMHhBMSwgMHhDMCwgMHgwMywgMHg2QSwgMHgyOSwgMHgxMiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEY1LCAweEE5LCAweEVGLCAweDU1LCAweEI2LCAweDFBLCAweDlGLCAweDZCKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4OUIsIDB4NTQsIDB4MzIsIDB4QkUsIDB4MDYsIDB4NDMsIDB4QjUsIDB4RkQpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhGNywgMHhENiwgMHhEOSwgMHgyMCwgMHg4OSwgMHhCRSwgMHhENCwgMHgxQiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEU4LCAweDI2LCAweDk1LCAweDEwLCAweENFLCAweEI0LCAweDg4LCAweDc5KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RTYsIDB4QTYsIDB4MjcsIDB4QUMsIDB4MzIsIDB4QkEsIDB4QkQsIDB4QzcpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhBMywgMHhBNiwgMHhBRSwgMHg5QywgMHg3QiwgMHhCRSwgMHhBMSwgMHg2MyksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgYnJhaW5wb29sUDUxMnIxX1RfMjFfWVtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg4QiwgMHhDRCwgMHg0RCwgMHgzRCwgMHhERiwgMHg5NiwgMHhCQiwgMHg3RCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDc3LCAweEE3LCAweDExLCAweDA2LCAweENDLCAweDBFLCAweDMxLCAweDgxKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MjAsIDB4RTQsIDB4RjQsIDB4QUQsIDB4N0IsIDB4NUYsIDB4RjEsIDB4RUYpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhFNCwgMHg1NCwgMHhCRSwgMHhGNCwgMHg4QSwgMHgwMywgMHg0NywgMHhERiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEI0LCAweDUzLCAweDAwLCAweDdGLCAweEIwLCAweDhBLCAweDY4LCAweEE2KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QTAsIDB4MTYsIDB4QjEsIDB4NzMsIDB4NkYsIDB4NUIsIDB4MEUsIDB4QzMpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgyQSwgMHgzMiwgMHhFMywgMHg0MywgMHg2NCwgMHg3NSwgMHhGQiwgMHhGQiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEEwLCAweDE4LCAweDU1LCAweDhBLCAweDRFLCAweDZFLCAweDM1LCAweDU0KSwKLX07Ci1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBicmFpbnBvb2xQNTEycjFfVF8yMl9YW10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDgwLCAweDk3LCAweDE1LCAweDFFLCAweENCLCAweEYyLCAweDlDLCAweEE1KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MkIsIDB4RDEsIDB4QkIsIDB4RjMsIDB4NzAsIDB4QUQsIDB4MTMsIDB4QUQpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhEOCwgMHg5NiwgMHhBNCwgMHhDNSwgMHg1RSwgMHhEQSwgMHhENSwgMHg1NyksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDA3LCAweDgxLCAweEU5LCAweDY1LCAweDY2LCAweDc2LCAweDQ3LCAweDQ1KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QzksIDB4MzUsIDB4ODcsIDB4MDYsIDB4NzMsIDB4Q0YsIDB4MzQsIDB4RDIpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg1QSwgMHg4MSwgMHgxNSwgMHg0MiwgMHhBMiwgMHg3OSwgMHg1QiwgMHg0MiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDA4LCAweEEyLCAweDdELCAweDA5LCAweDE0LCAweDY0LCAweEM2LCAweEFFKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NUUsIDB4NkQsIDB4QzQsIDB4RUQsIDB4RjEsIDB4RDYsIDB4RTksIDB4MjQpLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IGJyYWlucG9vbFA1MTJyMV9UXzIyX1lbXSA9IHsKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QjQsIDB4RDUsIDB4QkIsIDB4MjUsIDB4QTMsIDB4REQsIDB4QTMsIDB4ODgpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg0NiwgMHhGMiwgMHg2OCwgMHg2NywgMHgzOSwgMHg4RiwgMHg3MywgMHg5MyksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEYwLCAweDc2LCAweDI4LCAweDg5LCAweEFELCAweDMyLCAweEUwLCAweERGKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RjgsIDB4OTAsIDB4Q0MsIDB4NTcsIDB4NTgsIDB4QUEsIDB4QzksIDB4NzUpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg1RSwgMHhENywgMHg0MywgMHhEMiwgMHhDRSwgMHg1RSwgMHhBMCwgMHgwOCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDMzLCAweEIwLCAweEI4LCAweEE0LCAweDlFLCAweDk2LCAweDI2LCAweDg2KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4OTQsIDB4NjEsIDB4MUQsIDB4RjMsIDB4NjUsIDB4NUUsIDB4NjAsIDB4Q0EpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhDNywgMHgxRSwgMHg2NSwgMHhFRCwgMHhDRiwgMHgwNywgMHg2MCwgMHgyMCksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgYnJhaW5wb29sUDUxMnIxX1RfMjNfWFtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhBNCwgMHgzMCwgMHgxNywgMHg4QSwgMHg5MSwgMHg4OCwgMHgwQSwgMHhBNCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDA1LCAweDdELCAweDE4LCAweEE0LCAweEFDLCAweDU5LCAweEZDLCAweDVGKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QTQsIDB4MzEsIDB4OEIsIDB4MjUsIDB4NjUsIDB4MzksIDB4OUEsIDB4REMpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgxNSwgMHgxNiwgMHg0QiwgMHg2OCwgMHhCQSwgMHg1OSwgMHgxMywgMHgyRiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDhELCAweEZELCAweEQzLCAweEM1LCAweDU2LCAweEM5LCAweDhDLCAweDVFKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QkMsIDB4QzYsIDB4OUYsIDB4RjQsIDB4RTYsIDB4RjcsIDB4QjQsIDB4MDEpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgyRCwgMHg3QywgMHgwMywgMHgwMCwgMHgyNiwgMHg5RiwgMHhEOCwgMHg3QiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDI0LCAweDFELCAweDZFLCAweDAwLCAweEI5LCAweDAwLCAweDZFLCAweDkzKSwKLX07Ci1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBicmFpbnBvb2xQNTEycjFfVF8yM19ZW10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDc1LCAweDYzLCAweERBLCAweDAzLCAweDJCLCAweEQ1LCAweDBCLCAweEZFKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NDYsIDB4RkMsIDB4RTIsIDB4QzgsIDB4NDcsIDB4RjAsIDB4QUUsIDB4RjIpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg1MSwgMHg0QywgMHhGNywgMHg1MCwgMHgwQywgMHg0OCwgMHgwNiwgMHgyQSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweERGLCAweDJCLCAweDMyLCAweDk4LCAweDBFLCAweDdFLCAweDYxLCAweDQxKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NUQsIDB4MDIsIDB4MjcsIDB4RkUsIDB4NzUsIDB4ODYsIDB4REYsIDB4MjQpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgyQiwgMHgzMCwgMHhCMSwgMHgyMiwgMHgzMiwgMHgxQiwgMHhGRSwgMHgyNCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEMyLCAweDI3LCAweEY3LCAweDc4LCAweDZGLCAweEQ3LCAweEZELCAweEU0KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QTAsIDB4NzgsIDB4Q0MsIDB4RUEsIDB4QzAsIDB4NTAsIDB4MjQsIDB4NDQpLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IGJyYWlucG9vbFA1MTJyMV9UXzI0X1hbXSA9IHsKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MzcsIDB4MkIsIDB4NEYsIDB4N0YsIDB4NTgsIDB4RTYsIDB4QzIsIDB4NzApLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgzNywgMHg0MywgMHhENSwgMHhBNywgMHgzNSwgMHgzQywgMHg4MCwgMHhCOCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDFBLCAweDZELCAweDRCLCAweDEyLCAweDAwLCAweDdCLCAweEU2LCAweEE2KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MzcsIDB4MTUsIDB4QkQsIDB4RDAsIDB4OUIsIDB4Q0EsIDB4QUEsIDB4ODEpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhDRiwgMHhDRSwgMHg5QywgMHhFMywgMHg4QiwgMHg2MCwgMHg3QSwgMHg1MyksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDBDLCAweERBLCAweDRCLCAweDAzLCAweEE3LCAweDhELCAweDQzLCAweDIyKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NTcsIDB4QUYsIDB4MDAsIDB4MkIsIDB4MzIsIDB4RjAsIDB4MjIsIDB4NjgpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhEQywgMHhEOSwgMHg5OSwgMHg5OSwgMHhCRSwgMHg0MywgMHg5OSwgMHgzRSksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgYnJhaW5wb29sUDUxMnIxX1RfMjRfWVtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgxRiwgMHg3MSwgMHg0MSwgMHhGNCwgMHhCNSwgMHhGRCwgMHhERCwgMHgzNiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDlELCAweEUyLCAweDIwLCAweDRDLCAweEQxLCAweDJFLCAweDFGLCAweDA2KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4OTYsIDB4NDMsIDB4NDgsIDB4NzYsIDB4OEEsIDB4NDksIDB4QUMsIDB4ODcpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgwQywgMHgxQSwgMHg1NSwgMHhBOCwgMHhBMywgMHhENCwgMHg1NywgMHg3NSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDdDLCAweEE2LCAweDg0LCAweDM5LCAweEM5LCAweDEzLCAweEJCLCAweDYwKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RDksIDB4RkEsIDB4QTksIDB4NzAsIDB4REUsIDB4ODMsIDB4REQsIDB4QzkpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhFQywgMHhDOSwgMHhEOSwgMHgzRSwgMHg0NCwgMHg5MSwgMHg2OCwgMHg3QiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEI2LCAweDlGLCAweDg1LCAweDZELCAweEY3LCAweDU0LCAweDM2LCAweDgyKSwKLX07Ci1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBicmFpbnBvb2xQNTEycjFfVF8yNV9YW10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDY4LCAweDZCLCAweEE2LCAweEEzLCAweEU1LCAweEQ0LCAweDQ2LCAweERCKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MjMsIDB4M0UsIDB4REMsIDB4ODQsIDB4N0MsIDB4N0IsIDB4MjQsIDB4MzQpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgxNCwgMHhFRCwgMHg3RiwgMHg4NiwgMHgwNywgMHg2QywgMHg1NywgMHhDQSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDk1LCAweDA2LCAweEZFLCAweDUyLCAweDEyLCAweDc5LCAweDY5LCAweDU2KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4ODQsIDB4RDEsIDB4NDQsIDB4NUYsIDB4MjEsIDB4M0EsIDB4QzMsIDB4ODQpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg1RSwgMHhEOSwgMHg0QSwgMHhDMCwgMHg3NSwgMHhBQiwgMHgxNywgMHhBQyksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEZGLCAweDgxLCAweDk0LCAweEI2LCAweDgwLCAweDZCLCAweDZGLCAweEMzKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MDcsIDB4QkUsIDB4OEUsIDB4QTUsIDB4QUEsIDB4QkMsIDB4MUUsIDB4M0UpLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IGJyYWlucG9vbFA1MTJyMV9UXzI1X1lbXSA9IHsKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4ODksIDB4QzcsIDB4ODUsIDB4QTYsIDB4NTksIDB4OUIsIDB4QjEsIDB4NTIpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgxQywgMHhDRSwgMHg0MCwgMHhEMSwgMHhGQiwgMHhERiwgMHg5NCwgMHhGNyksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDE4LCAweEI4LCAweDVFLCAweEJGLCAweDQ1LCAweEE4LCAweDJELCAweDJEKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4OTgsIDB4OUMsIDB4MDYsIDB4MUIsIDB4QTksIDB4NTcsIDB4QjksIDB4NzkpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg1MywgMHhFOSwgMHhDRSwgMHhBMiwgMHhEMywgMHg3NCwgMHhBMSwgMHgzQyksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEFBLCAweDVGLCAweDM0LCAweDc4LCAweERCLCAweEFFLCAweDNBLCAweDE0KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4N0QsIDB4MzIsIDB4ODQsIDB4M0UsIDB4NjgsIDB4NkEsIDB4NDMsIDB4MEYpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg4QywgMHhCQywgMHgzOSwgMHgzNiwgMHhBNCwgMHhDNSwgMHhCQiwgMHgxMSksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgYnJhaW5wb29sUDUxMnIxX1RfMjZfWFtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg4QywgMHgwNywgMHhBMiwgMHhCNSwgMHhDOSwgMHgwRiwgMHg0RCwgMHgwRiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEUzLCAweDFELCAweDY3LCAweEU2LCAweEYxLCAweDQ2LCAweEVCLCAweDcxKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RDcsIDB4NDEsIDB4MjMsIDB4OTUsIDB4RTcsIDB4RTAsIDB4MTAsIDB4REQpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhCRSwgMHg2OSwgMHhGRSwgMHg2OCwgMHg4QywgMHhDNiwgMHg1RiwgMHhCNiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEUzLCAweEI5LCAweDJCLCAweDNELCAweEQyLCAweDRGLCAweEQ4LCAweDFBKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QTMsIDB4MDksIDB4RjUsIDB4NUYsIDB4Q0YsIDB4RjYsIDB4OTEsIDB4NTcpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg2NSwgMHgxNSwgMHg0MiwgMHg2QiwgMHg2RCwgMHhCNSwgMHhGMywgMHhCNiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEJGLCAweDU2LCAweDlELCAweEM1LCAweEZGLCAweENBLCAweDEzLCAweDlCKSwKLX07Ci1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBicmFpbnBvb2xQNTEycjFfVF8yNl9ZW10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDRELCAweDM4LCAweEU2LCAweDIzLCAweDYzLCAweDQ4LCAweDNDLCAweENBKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RDIsIDB4NjgsIDB4M0MsIDB4RDEsIDB4M0IsIDB4RTksIDB4M0IsIDB4ODIpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhCNSwgMHgwOCwgMHg1NCwgMHg0OSwgMHhEMSwgMHg0NiwgMHg0NSwgMHgxMyksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDA3LCAweDcwLCAweDUyLCAweDZFLCAweDc5LCAweEM0LCAweDVFLCAweDk1KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MzYsIDB4REYsIDB4RTgsIDB4NUEsIDB4MzIsIDB4ODEsIDB4REEsIDB4RDMpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgzQywgMHgyRCwgMHg5NCwgMHg1QiwgMHhCNSwgMHgzNSwgMHg5RiwgMHgwQSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDJBLCAweDEyLCAweDhELCAweEMzLCAweDM2LCAweDM2LCAweEIyLCAweDJBKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MzksIDB4MkYsIDB4MjIsIDB4MzgsIDB4NUIsIDB4MTgsIDB4NEMsIDB4MzUpLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IGJyYWlucG9vbFA1MTJyMV9UXzI3X1hbXSA9IHsKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MTAsIDB4QzEsIDB4MjIsIDB4MEUsIDB4RjAsIDB4NzMsIDB4MTEsIDB4MDUpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhCMiwgMHhBRSwgMHhBNCwgMHg1NiwgMHgxOCwgMHg2MSwgMHg2NiwgMHgxMiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDc5LCAweEZCLCAweDcyLCAweDA4LCAweDg0LCAweDM4LCAweDUxLCAweEIwKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4REEsIDB4ODYsIDB4QTgsIDB4QjksIDB4MzEsIDB4OTksIDB4MjksIDB4QzMpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg4QSwgMHhGQiwgMHhDMywgMHg0MiwgMHhCMywgMHhDNywgMHg2RiwgMHgzQSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEQ4LCAweEY4LCAweEUxLCAweDA5LCAweEJFLCAweDc1LCAweEIwLCAweDIyKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NUEsIDB4N0QsIDB4RkYsIDB4RjQsIDB4OTksIDB4RkMsIDB4MTMsIDB4QUIpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhFNiwgMHgxQiwgMHg4NCwgMHg4MSwgMHg0MiwgMHgyMiwgMHhDNiwgMHgzRCksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgYnJhaW5wb29sUDUxMnIxX1RfMjdfWVtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgyMSwgMHhFMCwgMHgzNywgMHhBNCwgMHhBMCwgMHgyRiwgMHgzOCwgMHg3RiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEQwLCAweDNELCAweEI3LCAweDQwLCAweDJGLCAweDM5LCAweDNDLCAweDdBKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4N0EsIDB4M0IsIDB4OEEsIDB4NTEsIDB4QUUsIDB4NDAsIDB4NDksIDB4N0EpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgzNiwgMHgyMCwgMHg5RiwgMHhERCwgMHhBOSwgMHhEMCwgMHg3NywgMHhDNyksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDc4LCAweDFELCAweDY0LCAweERBLCAweEEwLCAweDUzLCAweEM3LCAweDdEKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MzcsIDB4N0IsIDB4NjYsIDB4NTUsIDB4OTQsIDB4RDEsIDB4NTEsIDB4NDQpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgwRSwgMHhBOSwgMHhCNSwgMHg1QiwgMHgzOCwgMHgzNSwgMHg0MCwgMHhDMCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEM4LCAweEM5LCAweDBGLCAweEYwLCAweDczLCAweDc5LCAweDQzLCAweDYxKSwKLX07Ci1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBicmFpbnBvb2xQNTEycjFfVF8yOF9YW10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDEwLCAweDQ3LCAweDQ1LCAweDY5LCAweDgwLCAweDcyLCAweDcyLCAweDQyKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NzAsIDB4MTEsIDB4OTksIDB4NTksIDB4REIsIDB4NDgsIDB4ODAsIDB4MzkpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg3NSwgMHg2RSwgMHgzRCwgMHhGQywgMHgzNywgMHgxNSwgMHhGNCwgMHhCRiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDE3LCAweEJCLCAweDVCLCAweEE2LCAweDM1LCAweDhELCAweDI4LCAweDIwKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QUIsIDB4MUEsIDB4M0IsIDB4MkMsIDB4OEYsIDB4RDMsIDB4QUEsIDB4MkQpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg1NSwgMHgxQywgMHgxQSwgMHhGOCwgMHgwMiwgMHhEOSwgMHg3QiwgMHg0MSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEFGLCAweDY5LCAweEFDLCAweEY4LCAweDU0LCAweDMxLCAweDE0LCAweEExKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NDEsIDB4OEEsIDB4RTYsIDB4REUsIDB4NTgsIDB4QjksIDB4QzQsIDB4N0EpLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IGJyYWlucG9vbFA1MTJyMV9UXzI4X1lbXSA9IHsKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NTcsIDB4ODMsIDB4NTIsIDB4RkUsIDB4RjksIDB4N0IsIDB4RTksIDB4MUYpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgwNywgMHhBMiwgMHg1NSwgMHg0NiwgMHgxNSwgMHg0OSwgMHhDMSwgMHgzQSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDFELCAweEJDLCAweDVDLCAweDkxLCAweEJELCAweEI5LCAweDlDLCAweEY0KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QkIsIDB4RkQsIDB4QjEsIDB4NEUsIDB4NUYsIDB4NzQsIDB4RUUsIDB4NTMpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhCMSwgMHg4QiwgMHhEOCwgMHg4QiwgMHgxNywgMHg3MywgMHgxQiwgMHg5NiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDIyLCAweDkyLCAweEQ3LCAweDY3LCAweDA2LCAweEFELCAweDI1LCAweENEKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MDEsIDB4MEYsIDB4ODAsIDB4MjQsIDB4RTIsIDB4MjcsIDB4NUYsIDB4OEIpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg2MSwgMHgxQywgMHhDRSwgMHhEMCwgMHg2NywgMHhDQSwgMHhENCwgMHgwQiksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgYnJhaW5wb29sUDUxMnIxX1RfMjlfWFtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg4NywgMHhGMSwgMHhERCwgMHgzMywgMHg2NiwgMHhGOSwgMHgwNSwgMHhENiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDFELCAweEU1LCAweDZCLCAweDc5LCAweEJELCAweDQ4LCAweDQyLCAweEFBKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RDEsIDB4MTQsIDB4NTIsIDB4RTMsIDB4NTMsIDB4QjQsIDB4NTAsIDB4RDQpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgzMiwgMHg4NCwgMHg2QywgMHhDRiwgMHhEQSwgMHhCMiwgMHgyMCwgMHgwQSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDcwLCAweEQ2LCAweDFBLCAweEU1LCAweEUyLCAweDI5LCAweDcwLCAweENFKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RDUsIDB4NjEsIDB4RkUsIDB4QkIsIDB4MjEsIDB4ODIsIDB4RDEsIDB4RkUpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgyQywgMHhGMCwgMHg5QywgMHg4QiwgMHgxQSwgMHg0MiwgMHgzMCwgMHgwNiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDQzLCAweEQ2LCAweDQ5LCAweDgxLCAweDkyLCAweEYxLCAweEQwLCAweDkwKSwKLX07Ci1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBicmFpbnBvb2xQNTEycjFfVF8yOV9ZW10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEM5LCAweDkxLCAweDkzLCAweDZBLCAweEE2LCAweDIyLCAweEU5LCAweEQ2KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MDksIDB4REMsIDB4QzMsIDB4NjksIDB4MTEsIDB4OTUsIDB4N0QsIDB4RUMpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgxQywgMHhBMywgMHg5RCwgMHg4NywgMHg1RSwgMHg2NCwgMHg0MSwgMHhBMiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEJFLCAweDg3LCAweDVBLCAweDE1LCAweEJELCAweDZFLCAweDNDLCAweDhEKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RDAsIDB4OEQsIDB4NTAsIDB4Q0MsIDB4Q0YsIDB4QjcsIDB4OEYsIDB4MEIpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgzOCwgMHg2NSwgMHhDRCwgMHgzMSwgMHgzMCwgMHhGMSwgMHg2OCwgMHgxMyksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDEwLCAweDVDLCAweDY2LCAweDY3LCAweDkyLCAweDMwLCAweDU3LCAweDk1KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MjMsIDB4OUIsIDB4MDEsIDB4M0QsIDB4MjAsIDB4OEIsIDB4RDEsIDB4MEQpLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IGJyYWlucG9vbFA1MTJyMV9UXzMwX1hbXSA9IHsKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QUIsIDB4QzAsIDB4RTYsIDB4NEYsIDB4REUsIDB4NjIsIDB4QUIsIDB4QjMpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhBNCwgMHg0OCwgMHhCMywgMHgxQywgMHgwRiwgMHgxNiwgMHg5MywgMHg0NSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDc3LCAweDYzLCAweEJELCAweDFGLCAweDE2LCAweDUwLCAweDU2LCAweDk4KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NUQsIDB4MDYsIDB4QkMsIDB4RTksIDB4MjcsIDB4MUMsIDB4OUEsIDB4N0IpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhGOCwgMHhGRSwgMHgyMSwgMHhDNSwgMHgzOSwgMHg1NSwgMHhFMSwgMHhGRCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEY2LCAweEE4LCAweEQwLCAweDk2LCAweDBFLCAweEI1LCAweEIyLCAweDg0KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4M0QsIDB4RTcsIDB4NEIsIDB4RjMsIDB4MTEsIDB4MEMsIDB4QzksIDB4NUIpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg0MywgMHgzQSwgMHhDNCwgMHg4NywgMHg3MSwgMHhFRSwgMHhGQSwgMHgxOCksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgYnJhaW5wb29sUDUxMnIxX1RfMzBfWVtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhBNywgMHg3NywgMHhFRSwgMHg4MSwgMHg1RSwgMHg5NiwgMHhFQSwgMHg0QiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEVFLCAweERGLCAweEE5LCAweEY0LCAweDRGLCAweDdDLCAweEIyLCAweDQzKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4OUYsIDB4RDQsIDB4REYsIDB4MzUsIDB4NjMsIDB4NDcsIDB4MjUsIDB4OEEpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhBNSwgMHgzRCwgMHhGRiwgMHhBNCwgMHgwMiwgMHhDMywgMHg5NSwgMHgxMSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEQ1LCAweDEwLCAweDc4LCAweEQxLCAweDJCLCAweEI3LCAweEJFLCAweDBFKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MEEsIDB4RTksIDB4NTcsIDB4RjksIDB4RTAsIDB4RDgsIDB4RkMsIDB4QkMpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhGMywgMHhDNCwgMHgwMSwgMHhENiwgMHhCNCwgMHhFNywgMHg3OCwgMHhFMiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDAyLCAweDZDLCAweEI5LCAweDEzLCAweEE0LCAweEU4LCAweDZELCAweDZGKSwKLX07Ci1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBicmFpbnBvb2xQNTEycjFfVF8zMV9YW10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEU4LCAweEIwLCAweEM5LCAweENELCAweEJGLCAweEEyLCAweDFFLCAweDYzKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4REQsIDB4NEYsIDB4ODYsIDB4MjIsIDB4OUIsIDB4RUEsIDB4RTgsIDB4QkIpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg1MCwgMHg0NiwgMHhERiwgMHg0MywgMHhCOSwgMHg4MiwgMHgyRCwgMHgwQSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDA3LCAweDMyLCAweEYxLCAweDRFLCAweDk1LCAweDQxLCAweEFFLCAweDhFKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NTIsIDB4OTMsIDB4MjYsIDB4RkMsIDB4RDMsIDB4OTAsIDB4REMsIDB4RUIpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgwNCwgMHgwNSwgMHg0NSwgMHhDQSwgMHhGOSwgMHg1QSwgMHg4OSwgMHg5MyksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEM1LCAweDgyLCAweDYzLCAweDRFLCAweDU1LCAweDFELCAweDNBLCAweDA4KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4N0MsIDB4NjksIDB4NTIsIDB4NDksIDB4RTksIDB4RUQsIDB4NTcsIDB4MzQpLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IGJyYWlucG9vbFA1MTJyMV9UXzMxX1lbXSA9IHsKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NzAsIDB4NjQsIDB4RTksIDB4QUMsIDB4NEMsIDB4NEEsIDB4RUEsIDB4MjUpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhFOSwgMHhFOSwgMHgwQiwgMHg5OSwgMHhFNywgMHhGOSwgMHhBOSwgMHgyQyksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDI0LCAweDBDLCAweEMxLCAweEY0LCAweDhELCAweDA3LCAweEI2LCAweEIxKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QUQsIDB4NjgsIDB4RkEsIDB4MzUsIDB4RTQsIDB4OUUsIDB4QUUsIDB4RDkpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhGMCwgMHgyRCwgMHgxQSwgMHgxMywgMHg4RSwgMHgwMiwgMHhFMiwgMHg2MyksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDI3LCAweDM4LCAweDI4LCAweDg2LCAweDQ2LCAweDdCLCAweDNBLCAweEUxKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4M0YsIDB4NEMsIDB4NjQsIDB4NTksIDB4MEEsIDB4RjksIDB4MDIsIDB4QzQpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg0MSwgMHg0RiwgMHgyMywgMHhBMiwgMHhDMywgMHhENSwgMHhFRiwgMHg0MiksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfZWNwX3BvaW50IGJyYWlucG9vbFA1MTJyMV9UWzMyXSA9IHsKLSAgICBFQ1BfUE9JTlRfSU5JVF9YWV9aMShicmFpbnBvb2xQNTEycjFfVF8wX1gsIGJyYWlucG9vbFA1MTJyMV9UXzBfWSksCi0gICAgRUNQX1BPSU5UX0lOSVRfWFlfWjAoYnJhaW5wb29sUDUxMnIxX1RfMV9YLCBicmFpbnBvb2xQNTEycjFfVF8xX1kpLAotICAgIEVDUF9QT0lOVF9JTklUX1hZX1owKGJyYWlucG9vbFA1MTJyMV9UXzJfWCwgYnJhaW5wb29sUDUxMnIxX1RfMl9ZKSwKLSAgICBFQ1BfUE9JTlRfSU5JVF9YWV9aMChicmFpbnBvb2xQNTEycjFfVF8zX1gsIGJyYWlucG9vbFA1MTJyMV9UXzNfWSksCi0gICAgRUNQX1BPSU5UX0lOSVRfWFlfWjAoYnJhaW5wb29sUDUxMnIxX1RfNF9YLCBicmFpbnBvb2xQNTEycjFfVF80X1kpLAotICAgIEVDUF9QT0lOVF9JTklUX1hZX1owKGJyYWlucG9vbFA1MTJyMV9UXzVfWCwgYnJhaW5wb29sUDUxMnIxX1RfNV9ZKSwKLSAgICBFQ1BfUE9JTlRfSU5JVF9YWV9aMChicmFpbnBvb2xQNTEycjFfVF82X1gsIGJyYWlucG9vbFA1MTJyMV9UXzZfWSksCi0gICAgRUNQX1BPSU5UX0lOSVRfWFlfWjAoYnJhaW5wb29sUDUxMnIxX1RfN19YLCBicmFpbnBvb2xQNTEycjFfVF83X1kpLAotICAgIEVDUF9QT0lOVF9JTklUX1hZX1owKGJyYWlucG9vbFA1MTJyMV9UXzhfWCwgYnJhaW5wb29sUDUxMnIxX1RfOF9ZKSwKLSAgICBFQ1BfUE9JTlRfSU5JVF9YWV9aMChicmFpbnBvb2xQNTEycjFfVF85X1gsIGJyYWlucG9vbFA1MTJyMV9UXzlfWSksCi0gICAgRUNQX1BPSU5UX0lOSVRfWFlfWjAoYnJhaW5wb29sUDUxMnIxX1RfMTBfWCwgYnJhaW5wb29sUDUxMnIxX1RfMTBfWSksCi0gICAgRUNQX1BPSU5UX0lOSVRfWFlfWjAoYnJhaW5wb29sUDUxMnIxX1RfMTFfWCwgYnJhaW5wb29sUDUxMnIxX1RfMTFfWSksCi0gICAgRUNQX1BPSU5UX0lOSVRfWFlfWjAoYnJhaW5wb29sUDUxMnIxX1RfMTJfWCwgYnJhaW5wb29sUDUxMnIxX1RfMTJfWSksCi0gICAgRUNQX1BPSU5UX0lOSVRfWFlfWjAoYnJhaW5wb29sUDUxMnIxX1RfMTNfWCwgYnJhaW5wb29sUDUxMnIxX1RfMTNfWSksCi0gICAgRUNQX1BPSU5UX0lOSVRfWFlfWjAoYnJhaW5wb29sUDUxMnIxX1RfMTRfWCwgYnJhaW5wb29sUDUxMnIxX1RfMTRfWSksCi0gICAgRUNQX1BPSU5UX0lOSVRfWFlfWjAoYnJhaW5wb29sUDUxMnIxX1RfMTVfWCwgYnJhaW5wb29sUDUxMnIxX1RfMTVfWSksCi0gICAgRUNQX1BPSU5UX0lOSVRfWFlfWjAoYnJhaW5wb29sUDUxMnIxX1RfMTZfWCwgYnJhaW5wb29sUDUxMnIxX1RfMTZfWSksCi0gICAgRUNQX1BPSU5UX0lOSVRfWFlfWjAoYnJhaW5wb29sUDUxMnIxX1RfMTdfWCwgYnJhaW5wb29sUDUxMnIxX1RfMTdfWSksCi0gICAgRUNQX1BPSU5UX0lOSVRfWFlfWjAoYnJhaW5wb29sUDUxMnIxX1RfMThfWCwgYnJhaW5wb29sUDUxMnIxX1RfMThfWSksCi0gICAgRUNQX1BPSU5UX0lOSVRfWFlfWjAoYnJhaW5wb29sUDUxMnIxX1RfMTlfWCwgYnJhaW5wb29sUDUxMnIxX1RfMTlfWSksCi0gICAgRUNQX1BPSU5UX0lOSVRfWFlfWjAoYnJhaW5wb29sUDUxMnIxX1RfMjBfWCwgYnJhaW5wb29sUDUxMnIxX1RfMjBfWSksCi0gICAgRUNQX1BPSU5UX0lOSVRfWFlfWjAoYnJhaW5wb29sUDUxMnIxX1RfMjFfWCwgYnJhaW5wb29sUDUxMnIxX1RfMjFfWSksCi0gICAgRUNQX1BPSU5UX0lOSVRfWFlfWjAoYnJhaW5wb29sUDUxMnIxX1RfMjJfWCwgYnJhaW5wb29sUDUxMnIxX1RfMjJfWSksCi0gICAgRUNQX1BPSU5UX0lOSVRfWFlfWjAoYnJhaW5wb29sUDUxMnIxX1RfMjNfWCwgYnJhaW5wb29sUDUxMnIxX1RfMjNfWSksCi0gICAgRUNQX1BPSU5UX0lOSVRfWFlfWjAoYnJhaW5wb29sUDUxMnIxX1RfMjRfWCwgYnJhaW5wb29sUDUxMnIxX1RfMjRfWSksCi0gICAgRUNQX1BPSU5UX0lOSVRfWFlfWjAoYnJhaW5wb29sUDUxMnIxX1RfMjVfWCwgYnJhaW5wb29sUDUxMnIxX1RfMjVfWSksCi0gICAgRUNQX1BPSU5UX0lOSVRfWFlfWjAoYnJhaW5wb29sUDUxMnIxX1RfMjZfWCwgYnJhaW5wb29sUDUxMnIxX1RfMjZfWSksCi0gICAgRUNQX1BPSU5UX0lOSVRfWFlfWjAoYnJhaW5wb29sUDUxMnIxX1RfMjdfWCwgYnJhaW5wb29sUDUxMnIxX1RfMjdfWSksCi0gICAgRUNQX1BPSU5UX0lOSVRfWFlfWjAoYnJhaW5wb29sUDUxMnIxX1RfMjhfWCwgYnJhaW5wb29sUDUxMnIxX1RfMjhfWSksCi0gICAgRUNQX1BPSU5UX0lOSVRfWFlfWjAoYnJhaW5wb29sUDUxMnIxX1RfMjlfWCwgYnJhaW5wb29sUDUxMnIxX1RfMjlfWSksCi0gICAgRUNQX1BPSU5UX0lOSVRfWFlfWjAoYnJhaW5wb29sUDUxMnIxX1RfMzBfWCwgYnJhaW5wb29sUDUxMnIxX1RfMzBfWSksCi0gICAgRUNQX1BPSU5UX0lOSVRfWFlfWjAoYnJhaW5wb29sUDUxMnIxX1RfMzFfWCwgYnJhaW5wb29sUDUxMnIxX1RfMzFfWSksCi19OwotI2Vsc2UKLSNkZWZpbmUgYnJhaW5wb29sUDUxMnIxX1QgTlVMTAotI2VuZGlmCi0jZW5kaWYgLyogTUJFRFRMU19FQ1BfRFBfQlA1MTJSMV9FTkFCTEVEICovCi0KLSNpZiBkZWZpbmVkKEVDUF9MT0FEX0dST1VQKQotLyoKLSAqIENyZWF0ZSBhbiBNUEkgZnJvbSBlbWJlZGRlZCBjb25zdGFudHMKLSAqIChhc3N1bWVzIGxlbiBpcyBhbiBleGFjdCBtdWx0aXBsZSBvZiBzaXplb2YobWJlZHRsc19tcGlfdWludCkpCi0gKi8KLXN0YXRpYyBpbmxpbmUgdm9pZCBlY3BfbXBpX2xvYWQobWJlZHRsc19tcGkgKlgsIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgKnAsIHNpemVfdCBsZW4pCi17Ci0gICAgWC0+cyA9IDE7Ci0gICAgWC0+biA9ICh1bnNpZ25lZCBzaG9ydCkgKGxlbiAvIHNpemVvZihtYmVkdGxzX21waV91aW50KSk7Ci0gICAgWC0+cCA9IChtYmVkdGxzX21waV91aW50ICopIHA7Ci19Ci0KLS8qCi0gKiBTZXQgYW4gTVBJIHRvIHN0YXRpYyB2YWx1ZSAxCi0gKi8KLXN0YXRpYyBpbmxpbmUgdm9pZCBlY3BfbXBpX3NldDEobWJlZHRsc19tcGkgKlgpCi17Ci0gICAgWC0+cyA9IDE7Ci0gICAgWC0+biA9IDE7Ci0gICAgWC0+cCA9IChtYmVkdGxzX21waV91aW50ICopIG1waV9vbmU7IC8qIFgtPnAgd2lsbCBub3QgYmUgbW9kaWZpZWQgc28gdGhlIGNhc3QgaXMgc2FmZSAqLwotfQotCi0vKgotICogTWFrZSBncm91cCBhdmFpbGFibGUgZnJvbSBlbWJlZGRlZCBjb25zdGFudHMKLSAqLwotc3RhdGljIGludCBlY3BfZ3JvdXBfbG9hZChtYmVkdGxzX2VjcF9ncm91cCAqZ3JwLAotICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBtYmVkdGxzX21waV91aW50ICpwLCAgc2l6ZV90IHBsZW4sCi0gICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgKmEsICBzaXplX3QgYWxlbiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbWJlZHRsc19tcGlfdWludCAqYiwgIHNpemVfdCBibGVuLAotICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBtYmVkdGxzX21waV91aW50ICpneCwgc2l6ZV90IGd4bGVuLAotICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBtYmVkdGxzX21waV91aW50ICpneSwgc2l6ZV90IGd5bGVuLAotICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBtYmVkdGxzX21waV91aW50ICpuLCAgc2l6ZV90IG5sZW4sCi0gICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IG1iZWR0bHNfZWNwX3BvaW50ICpUKQotewotICAgIGVjcF9tcGlfbG9hZCgmZ3JwLT5QLCBwLCBwbGVuKTsKLSAgICBpZiAoYSAhPSBOVUxMKSB7Ci0gICAgICAgIGVjcF9tcGlfbG9hZCgmZ3JwLT5BLCBhLCBhbGVuKTsKLSAgICB9Ci0gICAgZWNwX21waV9sb2FkKCZncnAtPkIsIGIsIGJsZW4pOwotICAgIGVjcF9tcGlfbG9hZCgmZ3JwLT5OLCBuLCBubGVuKTsKLQotICAgIGVjcF9tcGlfbG9hZCgmZ3JwLT5HLlgsIGd4LCBneGxlbik7Ci0gICAgZWNwX21waV9sb2FkKCZncnAtPkcuWSwgZ3ksIGd5bGVuKTsKLSAgICBlY3BfbXBpX3NldDEoJmdycC0+Ry5aKTsKLQotICAgIGdycC0+cGJpdHMgPSBtYmVkdGxzX21waV9iaXRsZW4oJmdycC0+UCk7Ci0gICAgZ3JwLT5uYml0cyA9IG1iZWR0bHNfbXBpX2JpdGxlbigmZ3JwLT5OKTsKLQotICAgIGdycC0+aCA9IDE7Ci0KLSAgICBncnAtPlQgPSAobWJlZHRsc19lY3BfcG9pbnQgKikgVDsKLSAgICAvKgotICAgICAqIFNldCBUX3NpemUgdG8gMCB0byBwcmV2ZW50IFQgZnJlZSBieSBtYmVkdGxzX2VjcF9ncm91cF9mcmVlLgotICAgICAqLwotICAgIGdycC0+VF9zaXplID0gMDsKLQotICAgIHJldHVybiAwOwotfQotI2VuZGlmIC8qIEVDUF9MT0FEX0dST1VQICovCi0KLSNpZiBkZWZpbmVkKE1CRURUTFNfRUNQX05JU1RfT1BUSU0pCi0vKiBGb3J3YXJkIGRlY2xhcmF0aW9ucyAqLwotI2lmIGRlZmluZWQoTUJFRFRMU19FQ1BfRFBfU0VDUDE5MlIxX0VOQUJMRUQpCi1zdGF0aWMgaW50IGVjcF9tb2RfcDE5MihtYmVkdGxzX21waSAqKTsKLSNlbmRpZgotI2lmIGRlZmluZWQoTUJFRFRMU19FQ1BfRFBfU0VDUDIyNFIxX0VOQUJMRUQpCi1zdGF0aWMgaW50IGVjcF9tb2RfcDIyNChtYmVkdGxzX21waSAqKTsKLSNlbmRpZgotI2lmIGRlZmluZWQoTUJFRFRMU19FQ1BfRFBfU0VDUDI1NlIxX0VOQUJMRUQpCi1zdGF0aWMgaW50IGVjcF9tb2RfcDI1NihtYmVkdGxzX21waSAqKTsKLSNlbmRpZgotI2lmIGRlZmluZWQoTUJFRFRMU19FQ1BfRFBfU0VDUDM4NFIxX0VOQUJMRUQpCi1zdGF0aWMgaW50IGVjcF9tb2RfcDM4NChtYmVkdGxzX21waSAqKTsKLSNlbmRpZgotI2lmIGRlZmluZWQoTUJFRFRMU19FQ1BfRFBfU0VDUDUyMVIxX0VOQUJMRUQpCi1zdGF0aWMgaW50IGVjcF9tb2RfcDUyMShtYmVkdGxzX21waSAqKTsKLSNlbmRpZgotCi0jZGVmaW5lIE5JU1RfTU9EUChQKSAgICAgIGdycC0+bW9kcCA9IGVjcF9tb2RfICMjIFA7Ci0jZWxzZQotI2RlZmluZSBOSVNUX01PRFAoUCkKLSNlbmRpZiAvKiBNQkVEVExTX0VDUF9OSVNUX09QVElNICovCi0KLS8qIEFkZGl0aW9uYWwgZm9yd2FyZCBkZWNsYXJhdGlvbnMgKi8KLSNpZiBkZWZpbmVkKE1CRURUTFNfRUNQX0RQX0NVUlZFMjU1MTlfRU5BQkxFRCkKLXN0YXRpYyBpbnQgZWNwX21vZF9wMjU1KG1iZWR0bHNfbXBpICopOwotI2VuZGlmCi0jaWYgZGVmaW5lZChNQkVEVExTX0VDUF9EUF9DVVJWRTQ0OF9FTkFCTEVEKQotc3RhdGljIGludCBlY3BfbW9kX3A0NDgobWJlZHRsc19tcGkgKik7Ci0jZW5kaWYKLSNpZiBkZWZpbmVkKE1CRURUTFNfRUNQX0RQX1NFQ1AxOTJLMV9FTkFCTEVEKQotc3RhdGljIGludCBlY3BfbW9kX3AxOTJrMShtYmVkdGxzX21waSAqKTsKLSNlbmRpZgotI2lmIGRlZmluZWQoTUJFRFRMU19FQ1BfRFBfU0VDUDIyNEsxX0VOQUJMRUQpCi1zdGF0aWMgaW50IGVjcF9tb2RfcDIyNGsxKG1iZWR0bHNfbXBpICopOwotI2VuZGlmCi0jaWYgZGVmaW5lZChNQkVEVExTX0VDUF9EUF9TRUNQMjU2SzFfRU5BQkxFRCkKLXN0YXRpYyBpbnQgZWNwX21vZF9wMjU2azEobWJlZHRsc19tcGkgKik7Ci0jZW5kaWYKLQotI2lmIGRlZmluZWQoRUNQX0xPQURfR1JPVVApCi0jZGVmaW5lIExPQURfR1JPVVBfQShHKSAgIGVjcF9ncm91cF9sb2FkKGdycCwgICAgICAgICAgICBcCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEcgIyMgX3AsICBzaXplb2YoRyAjIyBfcCksICAgXAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHICMjIF9hLCAgc2l6ZW9mKEcgIyMgX2EpLCAgIFwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRyAjIyBfYiwgIHNpemVvZihHICMjIF9iKSwgICBcCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEcgIyMgX2d4LCBzaXplb2YoRyAjIyBfZ3gpLCAgIFwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRyAjIyBfZ3ksIHNpemVvZihHICMjIF9neSksICAgXAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHICMjIF9uLCAgc2l6ZW9mKEcgIyMgX24pLCAgIFwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRyAjIyBfVCAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkKLQotI2RlZmluZSBMT0FEX0dST1VQKEcpICAgICBlY3BfZ3JvdXBfbG9hZChncnAsICAgICAgICAgICAgXAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHICMjIF9wLCAgc2l6ZW9mKEcgIyMgX3ApLCAgIFwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCwgICAgIDAsICAgICAgICAgICAgICAgICAgICBcCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEcgIyMgX2IsICBzaXplb2YoRyAjIyBfYiksICAgXAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHICMjIF9neCwgc2l6ZW9mKEcgIyMgX2d4KSwgICBcCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEcgIyMgX2d5LCBzaXplb2YoRyAjIyBfZ3kpLCAgIFwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRyAjIyBfbiwgIHNpemVvZihHICMjIF9uKSwgICBcCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEcgIyMgX1QgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApCi0jZW5kaWYgLyogRUNQX0xPQURfR1JPVVAgKi8KLQotI2lmIGRlZmluZWQoTUJFRFRMU19FQ1BfRFBfQ1VSVkUyNTUxOV9FTkFCTEVEKQotLyogQ29uc3RhbnRzIHVzZWQgYnkgZWNwX3VzZV9jdXJ2ZTI1NTE5KCkgKi8KLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV9zaW50IGN1cnZlMjU1MTlfYTI0ID0gMHgwMURCNDI7Ci1zdGF0aWMgY29uc3QgdW5zaWduZWQgY2hhciBjdXJ2ZTI1NTE5X3BhcnRfb2ZfbltdID0gewotICAgIDB4MTQsIDB4REUsIDB4RjksIDB4REUsIDB4QTIsIDB4RjcsIDB4OUMsIDB4RDYsCi0gICAgMHg1OCwgMHgxMiwgMHg2MywgMHgxQSwgMHg1QywgMHhGNSwgMHhEMywgMHhFRCwKLX07Ci0KLS8qCi0gKiBTcGVjaWFsaXplZCBmdW5jdGlvbiBmb3IgY3JlYXRpbmcgdGhlIEN1cnZlMjU1MTkgZ3JvdXAKLSAqLwotc3RhdGljIGludCBlY3BfdXNlX2N1cnZlMjU1MTkobWJlZHRsc19lY3BfZ3JvdXAgKmdycCkKLXsKLSAgICBpbnQgcmV0ID0gTUJFRFRMU19FUlJfRVJST1JfQ09SUlVQVElPTl9ERVRFQ1RFRDsKLQotICAgIC8qIEFjdHVhbGx5ICggQSArIDIgKSAvIDQgKi8KLSAgICBNQkVEVExTX01QSV9DSEsobWJlZHRsc19tcGlfbHNldCgmZ3JwLT5BLCBjdXJ2ZTI1NTE5X2EyNCkpOwotCi0gICAgLyogUCA9IDJeMjU1IC0gMTkgKi8KLSAgICBNQkVEVExTX01QSV9DSEsobWJlZHRsc19tcGlfbHNldCgmZ3JwLT5QLCAxKSk7Ci0gICAgTUJFRFRMU19NUElfQ0hLKG1iZWR0bHNfbXBpX3NoaWZ0X2woJmdycC0+UCwgMjU1KSk7Ci0gICAgTUJFRFRMU19NUElfQ0hLKG1iZWR0bHNfbXBpX3N1Yl9pbnQoJmdycC0+UCwgJmdycC0+UCwgMTkpKTsKLSAgICBncnAtPnBiaXRzID0gbWJlZHRsc19tcGlfYml0bGVuKCZncnAtPlApOwotCi0gICAgLyogTiA9IDJeMjUyICsgMjc3NDIzMTc3NzczNzIzNTM1MzU4NTE5Mzc3OTA4ODM2NDg0OTMgKi8KLSAgICBNQkVEVExTX01QSV9DSEsobWJlZHRsc19tcGlfcmVhZF9iaW5hcnkoJmdycC0+TiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3VydmUyNTUxOV9wYXJ0X29mX24sIHNpemVvZihjdXJ2ZTI1NTE5X3BhcnRfb2ZfbikpKTsKLSAgICBNQkVEVExTX01QSV9DSEsobWJlZHRsc19tcGlfc2V0X2JpdCgmZ3JwLT5OLCAyNTIsIDEpKTsKLQotICAgIC8qIFkgaW50ZW50aW9uYWxseSBub3Qgc2V0LCBzaW5jZSB3ZSB1c2UgeC96IGNvb3JkaW5hdGVzLgotICAgICAqIFRoaXMgaXMgdXNlZCBhcyBhIG1hcmtlciB0byBpZGVudGlmeSBNb250Z29tZXJ5IGN1cnZlcyEgKi8KLSAgICBNQkVEVExTX01QSV9DSEsobWJlZHRsc19tcGlfbHNldCgmZ3JwLT5HLlgsIDkpKTsKLSAgICBNQkVEVExTX01QSV9DSEsobWJlZHRsc19tcGlfbHNldCgmZ3JwLT5HLlosIDEpKTsKLSAgICBtYmVkdGxzX21waV9mcmVlKCZncnAtPkcuWSk7Ci0KLSAgICAvKiBBY3R1YWxseSwgdGhlIHJlcXVpcmVkIG1zYiBmb3IgcHJpdmF0ZSBrZXlzICovCi0gICAgZ3JwLT5uYml0cyA9IDI1NDsKLQotY2xlYW51cDoKLSAgICBpZiAocmV0ICE9IDApIHsKLSAgICAgICAgbWJlZHRsc19lY3BfZ3JvdXBfZnJlZShncnApOwotICAgIH0KLQotICAgIHJldHVybiByZXQ7Ci19Ci0jZW5kaWYgLyogTUJFRFRMU19FQ1BfRFBfQ1VSVkUyNTUxOV9FTkFCTEVEICovCi0KLSNpZiBkZWZpbmVkKE1CRURUTFNfRUNQX0RQX0NVUlZFNDQ4X0VOQUJMRUQpCi0vKiBDb25zdGFudHMgdXNlZCBieSBlY3BfdXNlX2N1cnZlNDQ4KCkgKi8KLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV9zaW50IGN1cnZlNDQ4X2EyNCA9IDB4OThBQTsKLXN0YXRpYyBjb25zdCB1bnNpZ25lZCBjaGFyIGN1cnZlNDQ4X3BhcnRfb2ZfbltdID0gewotICAgIDB4ODMsIDB4MzUsIDB4REMsIDB4MTYsIDB4M0IsIDB4QjEsIDB4MjQsCi0gICAgMHhCNiwgMHg1MSwgMHgyOSwgMHhDOSwgMHg2RiwgMHhERSwgMHg5MywKLSAgICAweDNELCAweDhELCAweDcyLCAweDNBLCAweDcwLCAweEFBLCAweERDLAotICAgIDB4ODcsIDB4M0QsIDB4NkQsIDB4NTQsIDB4QTcsIDB4QkIsIDB4MEQsCi19OwotCi0vKgotICogU3BlY2lhbGl6ZWQgZnVuY3Rpb24gZm9yIGNyZWF0aW5nIHRoZSBDdXJ2ZTQ0OCBncm91cAotICovCi1zdGF0aWMgaW50IGVjcF91c2VfY3VydmU0NDgobWJlZHRsc19lY3BfZ3JvdXAgKmdycCkKLXsKLSAgICBtYmVkdGxzX21waSBOczsKLSAgICBpbnQgcmV0ID0gTUJFRFRMU19FUlJfRVJST1JfQ09SUlVQVElPTl9ERVRFQ1RFRDsKLQotICAgIG1iZWR0bHNfbXBpX2luaXQoJk5zKTsKLQotICAgIC8qIEFjdHVhbGx5ICggQSArIDIgKSAvIDQgKi8KLSAgICBNQkVEVExTX01QSV9DSEsobWJlZHRsc19tcGlfbHNldCgmZ3JwLT5BLCBjdXJ2ZTQ0OF9hMjQpKTsKLQotICAgIC8qIFAgPSAyXjQ0OCAtIDJeMjI0IC0gMSAqLwotICAgIE1CRURUTFNfTVBJX0NISyhtYmVkdGxzX21waV9sc2V0KCZncnAtPlAsIDEpKTsKLSAgICBNQkVEVExTX01QSV9DSEsobWJlZHRsc19tcGlfc2hpZnRfbCgmZ3JwLT5QLCAyMjQpKTsKLSAgICBNQkVEVExTX01QSV9DSEsobWJlZHRsc19tcGlfc3ViX2ludCgmZ3JwLT5QLCAmZ3JwLT5QLCAxKSk7Ci0gICAgTUJFRFRMU19NUElfQ0hLKG1iZWR0bHNfbXBpX3NoaWZ0X2woJmdycC0+UCwgMjI0KSk7Ci0gICAgTUJFRFRMU19NUElfQ0hLKG1iZWR0bHNfbXBpX3N1Yl9pbnQoJmdycC0+UCwgJmdycC0+UCwgMSkpOwotICAgIGdycC0+cGJpdHMgPSBtYmVkdGxzX21waV9iaXRsZW4oJmdycC0+UCk7Ci0KLSAgICAvKiBZIGludGVudGlvbmFsbHkgbm90IHNldCwgc2luY2Ugd2UgdXNlIHgveiBjb29yZGluYXRlcy4KLSAgICAgKiBUaGlzIGlzIHVzZWQgYXMgYSBtYXJrZXIgdG8gaWRlbnRpZnkgTW9udGdvbWVyeSBjdXJ2ZXMhICovCi0gICAgTUJFRFRMU19NUElfQ0hLKG1iZWR0bHNfbXBpX2xzZXQoJmdycC0+Ry5YLCA1KSk7Ci0gICAgTUJFRFRMU19NUElfQ0hLKG1iZWR0bHNfbXBpX2xzZXQoJmdycC0+Ry5aLCAxKSk7Ci0gICAgbWJlZHRsc19tcGlfZnJlZSgmZ3JwLT5HLlkpOwotCi0gICAgLyogTiA9IDJeNDQ2IC0gMTM4MTgwNjY4MDk4OTUxMTUzNTIwMDczODY3NDg1MTU0MjY4ODAzMzY2OTI0NzQ4ODIxNzg2MDk4OTQ1NDc1MDM4ODUgKi8KLSAgICBNQkVEVExTX01QSV9DSEsobWJlZHRsc19tcGlfc2V0X2JpdCgmZ3JwLT5OLCA0NDYsIDEpKTsKLSAgICBNQkVEVExTX01QSV9DSEsobWJlZHRsc19tcGlfcmVhZF9iaW5hcnkoJk5zLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdXJ2ZTQ0OF9wYXJ0X29mX24sIHNpemVvZihjdXJ2ZTQ0OF9wYXJ0X29mX24pKSk7Ci0gICAgTUJFRFRMU19NUElfQ0hLKG1iZWR0bHNfbXBpX3N1Yl9tcGkoJmdycC0+TiwgJmdycC0+TiwgJk5zKSk7Ci0KLSAgICAvKiBBY3R1YWxseSwgdGhlIHJlcXVpcmVkIG1zYiBmb3IgcHJpdmF0ZSBrZXlzICovCi0gICAgZ3JwLT5uYml0cyA9IDQ0NzsKLQotY2xlYW51cDoKLSAgICBtYmVkdGxzX21waV9mcmVlKCZOcyk7Ci0gICAgaWYgKHJldCAhPSAwKSB7Ci0gICAgICAgIG1iZWR0bHNfZWNwX2dyb3VwX2ZyZWUoZ3JwKTsKLSAgICB9Ci0KLSAgICByZXR1cm4gcmV0OwotfQotI2VuZGlmIC8qIE1CRURUTFNfRUNQX0RQX0NVUlZFNDQ4X0VOQUJMRUQgKi8KLQotLyoKLSAqIFNldCBhIGdyb3VwIHVzaW5nIHdlbGwta25vd24gZG9tYWluIHBhcmFtZXRlcnMKLSAqLwotaW50IG1iZWR0bHNfZWNwX2dyb3VwX2xvYWQobWJlZHRsc19lY3BfZ3JvdXAgKmdycCwgbWJlZHRsc19lY3BfZ3JvdXBfaWQgaWQpCi17Ci0gICAgbWJlZHRsc19lY3BfZ3JvdXBfZnJlZShncnApOwotCi0gICAgbWJlZHRsc19lY3BfZ3JvdXBfaW5pdChncnApOwotCi0gICAgZ3JwLT5pZCA9IGlkOwotCi0gICAgc3dpdGNoIChpZCkgewotI2lmIGRlZmluZWQoTUJFRFRMU19FQ1BfRFBfU0VDUDE5MlIxX0VOQUJMRUQpCi0gICAgICAgIGNhc2UgTUJFRFRMU19FQ1BfRFBfU0VDUDE5MlIxOgotICAgICAgICAgICAgTklTVF9NT0RQKHAxOTIpOwotICAgICAgICAgICAgcmV0dXJuIExPQURfR1JPVVAoc2VjcDE5MnIxKTsKLSNlbmRpZiAvKiBNQkVEVExTX0VDUF9EUF9TRUNQMTkyUjFfRU5BQkxFRCAqLwotCi0jaWYgZGVmaW5lZChNQkVEVExTX0VDUF9EUF9TRUNQMjI0UjFfRU5BQkxFRCkKLSAgICAgICAgY2FzZSBNQkVEVExTX0VDUF9EUF9TRUNQMjI0UjE6Ci0gICAgICAgICAgICBOSVNUX01PRFAocDIyNCk7Ci0gICAgICAgICAgICByZXR1cm4gTE9BRF9HUk9VUChzZWNwMjI0cjEpOwotI2VuZGlmIC8qIE1CRURUTFNfRUNQX0RQX1NFQ1AyMjRSMV9FTkFCTEVEICovCi0KLSNpZiBkZWZpbmVkKE1CRURUTFNfRUNQX0RQX1NFQ1AyNTZSMV9FTkFCTEVEKQotICAgICAgICBjYXNlIE1CRURUTFNfRUNQX0RQX1NFQ1AyNTZSMToKLSAgICAgICAgICAgIE5JU1RfTU9EUChwMjU2KTsKLSAgICAgICAgICAgIHJldHVybiBMT0FEX0dST1VQKHNlY3AyNTZyMSk7Ci0jZW5kaWYgLyogTUJFRFRMU19FQ1BfRFBfU0VDUDI1NlIxX0VOQUJMRUQgKi8KLQotI2lmIGRlZmluZWQoTUJFRFRMU19FQ1BfRFBfU0VDUDM4NFIxX0VOQUJMRUQpCi0gICAgICAgIGNhc2UgTUJFRFRMU19FQ1BfRFBfU0VDUDM4NFIxOgotICAgICAgICAgICAgTklTVF9NT0RQKHAzODQpOwotICAgICAgICAgICAgcmV0dXJuIExPQURfR1JPVVAoc2VjcDM4NHIxKTsKLSNlbmRpZiAvKiBNQkVEVExTX0VDUF9EUF9TRUNQMzg0UjFfRU5BQkxFRCAqLwotCi0jaWYgZGVmaW5lZChNQkVEVExTX0VDUF9EUF9TRUNQNTIxUjFfRU5BQkxFRCkKLSAgICAgICAgY2FzZSBNQkVEVExTX0VDUF9EUF9TRUNQNTIxUjE6Ci0gICAgICAgICAgICBOSVNUX01PRFAocDUyMSk7Ci0gICAgICAgICAgICByZXR1cm4gTE9BRF9HUk9VUChzZWNwNTIxcjEpOwotI2VuZGlmIC8qIE1CRURUTFNfRUNQX0RQX1NFQ1A1MjFSMV9FTkFCTEVEICovCi0KLSNpZiBkZWZpbmVkKE1CRURUTFNfRUNQX0RQX1NFQ1AxOTJLMV9FTkFCTEVEKQotICAgICAgICBjYXNlIE1CRURUTFNfRUNQX0RQX1NFQ1AxOTJLMToKLSAgICAgICAgICAgIGdycC0+bW9kcCA9IGVjcF9tb2RfcDE5MmsxOwotICAgICAgICAgICAgcmV0dXJuIExPQURfR1JPVVBfQShzZWNwMTkyazEpOwotI2VuZGlmIC8qIE1CRURUTFNfRUNQX0RQX1NFQ1AxOTJLMV9FTkFCTEVEICovCi0KLSNpZiBkZWZpbmVkKE1CRURUTFNfRUNQX0RQX1NFQ1AyMjRLMV9FTkFCTEVEKQotICAgICAgICBjYXNlIE1CRURUTFNfRUNQX0RQX1NFQ1AyMjRLMToKLSAgICAgICAgICAgIGdycC0+bW9kcCA9IGVjcF9tb2RfcDIyNGsxOwotICAgICAgICAgICAgcmV0dXJuIExPQURfR1JPVVBfQShzZWNwMjI0azEpOwotI2VuZGlmIC8qIE1CRURUTFNfRUNQX0RQX1NFQ1AyMjRLMV9FTkFCTEVEICovCi0KLSNpZiBkZWZpbmVkKE1CRURUTFNfRUNQX0RQX1NFQ1AyNTZLMV9FTkFCTEVEKQotICAgICAgICBjYXNlIE1CRURUTFNfRUNQX0RQX1NFQ1AyNTZLMToKLSAgICAgICAgICAgIGdycC0+bW9kcCA9IGVjcF9tb2RfcDI1NmsxOwotICAgICAgICAgICAgcmV0dXJuIExPQURfR1JPVVBfQShzZWNwMjU2azEpOwotI2VuZGlmIC8qIE1CRURUTFNfRUNQX0RQX1NFQ1AyNTZLMV9FTkFCTEVEICovCi0KLSNpZiBkZWZpbmVkKE1CRURUTFNfRUNQX0RQX0JQMjU2UjFfRU5BQkxFRCkKLSAgICAgICAgY2FzZSBNQkVEVExTX0VDUF9EUF9CUDI1NlIxOgotICAgICAgICAgICAgcmV0dXJuIExPQURfR1JPVVBfQShicmFpbnBvb2xQMjU2cjEpOwotI2VuZGlmIC8qIE1CRURUTFNfRUNQX0RQX0JQMjU2UjFfRU5BQkxFRCAqLwotCi0jaWYgZGVmaW5lZChNQkVEVExTX0VDUF9EUF9CUDM4NFIxX0VOQUJMRUQpCi0gICAgICAgIGNhc2UgTUJFRFRMU19FQ1BfRFBfQlAzODRSMToKLSAgICAgICAgICAgIHJldHVybiBMT0FEX0dST1VQX0EoYnJhaW5wb29sUDM4NHIxKTsKLSNlbmRpZiAvKiBNQkVEVExTX0VDUF9EUF9CUDM4NFIxX0VOQUJMRUQgKi8KLQotI2lmIGRlZmluZWQoTUJFRFRMU19FQ1BfRFBfQlA1MTJSMV9FTkFCTEVEKQotICAgICAgICBjYXNlIE1CRURUTFNfRUNQX0RQX0JQNTEyUjE6Ci0gICAgICAgICAgICByZXR1cm4gTE9BRF9HUk9VUF9BKGJyYWlucG9vbFA1MTJyMSk7Ci0jZW5kaWYgLyogTUJFRFRMU19FQ1BfRFBfQlA1MTJSMV9FTkFCTEVEICovCi0KLSNpZiBkZWZpbmVkKE1CRURUTFNfRUNQX0RQX0NVUlZFMjU1MTlfRU5BQkxFRCkKLSAgICAgICAgY2FzZSBNQkVEVExTX0VDUF9EUF9DVVJWRTI1NTE5OgotICAgICAgICAgICAgZ3JwLT5tb2RwID0gZWNwX21vZF9wMjU1OwotICAgICAgICAgICAgcmV0dXJuIGVjcF91c2VfY3VydmUyNTUxOShncnApOwotI2VuZGlmIC8qIE1CRURUTFNfRUNQX0RQX0NVUlZFMjU1MTlfRU5BQkxFRCAqLwotCi0jaWYgZGVmaW5lZChNQkVEVExTX0VDUF9EUF9DVVJWRTQ0OF9FTkFCTEVEKQotICAgICAgICBjYXNlIE1CRURUTFNfRUNQX0RQX0NVUlZFNDQ4OgotICAgICAgICAgICAgZ3JwLT5tb2RwID0gZWNwX21vZF9wNDQ4OwotICAgICAgICAgICAgcmV0dXJuIGVjcF91c2VfY3VydmU0NDgoZ3JwKTsKLSNlbmRpZiAvKiBNQkVEVExTX0VDUF9EUF9DVVJWRTQ0OF9FTkFCTEVEICovCi0KLSAgICAgICAgZGVmYXVsdDoKLSAgICAgICAgICAgIGdycC0+aWQgPSBNQkVEVExTX0VDUF9EUF9OT05FOwotICAgICAgICAgICAgcmV0dXJuIE1CRURUTFNfRVJSX0VDUF9GRUFUVVJFX1VOQVZBSUxBQkxFOwotICAgIH0KLX0KLQotI2lmIGRlZmluZWQoTUJFRFRMU19FQ1BfTklTVF9PUFRJTSkKLS8qCi0gKiBGYXN0IHJlZHVjdGlvbiBtb2R1bG8gdGhlIHByaW1lcyB1c2VkIGJ5IHRoZSBOSVNUIGN1cnZlcy4KLSAqCi0gKiBUaGVzZSBmdW5jdGlvbnMgYXJlIGNyaXRpY2FsIGZvciBzcGVlZCwgYnV0IG5vdCBuZWVkZWQgZm9yIGNvcnJlY3QKLSAqIG9wZXJhdGlvbnMuIFNvLCB3ZSBtYWtlIHRoZSBjaG9pY2UgdG8gaGVhdmlseSByZWx5IG9uIHRoZSBpbnRlcm5hbHMgb2Ygb3VyCi0gKiBiaWdudW0gbGlicmFyeSwgd2hpY2ggY3JlYXRlcyBhIHRpZ2h0IGNvdXBsaW5nIGJldHdlZW4gdGhlc2UgZnVuY3Rpb25zIGFuZAotICogb3VyIE1QSSBpbXBsZW1lbnRhdGlvbi4gIEhvd2V2ZXIsIHRoZSBjb3VwbGluZyBiZXR3ZWVuIHRoZSBFQ1AgbW9kdWxlIGFuZAotICogTVBJIHJlbWFpbnMgbG9vc2UsIHNpbmNlIHRoZXNlIGZ1bmN0aW9ucyBjYW4gYmUgZGVhY3RpdmF0ZWQgYXQgd2lsbC4KLSAqLwotCi0jaWYgZGVmaW5lZChNQkVEVExTX0VDUF9EUF9TRUNQMTkyUjFfRU5BQkxFRCkKLS8qCi0gKiBDb21wYXJlZCB0byB0aGUgd2F5IHRoaW5ncyBhcmUgcHJlc2VudGVkIGluIEZJUFMgMTg2LTMgRC4yLAotICogd2UgcHJvY2VlZCBpbiBjb2x1bW5zLCBmcm9tIHJpZ2h0IChsZWFzdCBzaWduaWZpY2FudCBjaHVuaykgdG8gbGVmdCwKLSAqIGFkZGluZyBjaHVua3MgdG8gTiBpbiBwbGFjZSwgYW5kIGtlZXBpbmcgYSBjYXJyeSBmb3IgdGhlIG5leHQgY2h1bmsuCi0gKiBUaGlzIGF2b2lkcyBtb3ZpbmcgdGhpbmdzIGFyb3VuZCBpbiBtZW1vcnksIGFuZCB1c2VsZXNzbHkgYWRkaW5nIHplcm9zLAotICogY29tcGFyZWQgdG8gdGhlIG1vcmUgc3RyYWlnaHRmb3J3YXJkLCBsaW5lLW9yaWVudGVkIGFwcHJvYWNoLgotICoKLSAqIEZvciB0aGlzIHByaW1lIHdlIG5lZWQgdG8gaGFuZGxlIGRhdGEgaW4gY2h1bmtzIG9mIDY0IGJpdHMuCi0gKiBTaW5jZSB0aGlzIGlzIGFsd2F5cyBhIG11bHRpcGxlIG9mIG91ciBiYXNpYyBtYmVkdGxzX21waV91aW50LCB3ZSBjYW4KLSAqIHVzZSBhIG1iZWR0bHNfbXBpX3VpbnQgKiB0byBkZXNpZ25hdGUgc3VjaCBhIGNodW5rLCBhbmQgc21hbGwgbG9vcHMgdG8gaGFuZGxlIGl0LgotICovCi0KLS8qIEFkZCA2NC1iaXQgY2h1bmtzIChkc3QgKz0gc3JjKSBhbmQgdXBkYXRlIGNhcnJ5ICovCi1zdGF0aWMgaW5saW5lIHZvaWQgYWRkNjQobWJlZHRsc19tcGlfdWludCAqZHN0LCBtYmVkdGxzX21waV91aW50ICpzcmMsIG1iZWR0bHNfbXBpX3VpbnQgKmNhcnJ5KQotewotICAgIHVuc2lnbmVkIGNoYXIgaTsKLSAgICBtYmVkdGxzX21waV91aW50IGMgPSAwOwotICAgIGZvciAoaSA9IDA7IGkgPCA4IC8gc2l6ZW9mKG1iZWR0bHNfbXBpX3VpbnQpOyBpKyssIGRzdCsrLCBzcmMrKykgewotICAgICAgICAqZHN0ICs9IGM7ICAgICAgYyAgPSAoKmRzdCA8IGMpOwotICAgICAgICAqZHN0ICs9ICpzcmM7ICAgYyArPSAoKmRzdCA8ICpzcmMpOwotICAgIH0KLSAgICAqY2FycnkgKz0gYzsKLX0KLQotLyogQWRkIGNhcnJ5IHRvIGEgNjQtYml0IGNodW5rIGFuZCB1cGRhdGUgY2FycnkgKi8KLXN0YXRpYyBpbmxpbmUgdm9pZCBjYXJyeTY0KG1iZWR0bHNfbXBpX3VpbnQgKmRzdCwgbWJlZHRsc19tcGlfdWludCAqY2FycnkpCi17Ci0gICAgdW5zaWduZWQgY2hhciBpOwotICAgIGZvciAoaSA9IDA7IGkgPCA4IC8gc2l6ZW9mKG1iZWR0bHNfbXBpX3VpbnQpOyBpKyssIGRzdCsrKSB7Ci0gICAgICAgICpkc3QgKz0gKmNhcnJ5OwotICAgICAgICAqY2FycnkgID0gKCpkc3QgPCAqY2FycnkpOwotICAgIH0KLX0KLQotI2RlZmluZSBXSURUSCAgICAgICA4IC8gc2l6ZW9mKG1iZWR0bHNfbXBpX3VpbnQpCi0jZGVmaW5lIEEoaSkgICAgICBOLT5wICsgKGkpICogV0lEVEgKLSNkZWZpbmUgQUREKGkpICAgIGFkZDY0KHAsIEEoaSksICZjKQotI2RlZmluZSBORVhUICAgICAgICBwICs9IFdJRFRIOyBjYXJyeTY0KHAsICZjKQotI2RlZmluZSBMQVNUICAgICAgICBwICs9IFdJRFRIOyAqcCA9IGM7IHdoaWxlICgrK3AgPCBlbmQpICpwID0gMAotCi0vKgotICogRmFzdCBxdWFzaS1yZWR1Y3Rpb24gbW9kdWxvIHAxOTIgKEZJUFMgMTg2LTMgRC4yLjEpCi0gKi8KLXN0YXRpYyBpbnQgZWNwX21vZF9wMTkyKG1iZWR0bHNfbXBpICpOKQotewotICAgIGludCByZXQgPSBNQkVEVExTX0VSUl9FUlJPUl9DT1JSVVBUSU9OX0RFVEVDVEVEOwotICAgIG1iZWR0bHNfbXBpX3VpbnQgYyA9IDA7Ci0gICAgbWJlZHRsc19tcGlfdWludCAqcCwgKmVuZDsKLQotICAgIC8qIE1ha2Ugc3VyZSB3ZSBoYXZlIGVub3VnaCBibG9ja3Mgc28gdGhhdCBBKDUpIGlzIGxlZ2FsICovCi0gICAgTUJFRFRMU19NUElfQ0hLKG1iZWR0bHNfbXBpX2dyb3coTiwgNiAqIFdJRFRIKSk7Ci0KLSAgICBwID0gTi0+cDsKLSAgICBlbmQgPSBwICsgTi0+bjsKLQotICAgIEFERCgzKTsgQUREKDUpOyAgICAgICAgICAgICBORVhUOyAgICAgLy8gQTAgKz0gQTMgKyBBNQotICAgIEFERCgzKTsgQUREKDQpOyBBREQoNSk7ICAgTkVYVDsgICAgICAgLy8gQTEgKz0gQTMgKyBBNCArIEE1Ci0gICAgQUREKDQpOyBBREQoNSk7ICAgICAgICAgICAgIExBU1Q7ICAgICAvLyBBMiArPSBBNCArIEE1Ci0KLWNsZWFudXA6Ci0gICAgcmV0dXJuIHJldDsKLX0KLQotI3VuZGVmIFdJRFRICi0jdW5kZWYgQQotI3VuZGVmIEFERAotI3VuZGVmIE5FWFQKLSN1bmRlZiBMQVNUCi0jZW5kaWYgLyogTUJFRFRMU19FQ1BfRFBfU0VDUDE5MlIxX0VOQUJMRUQgKi8KLQotI2lmIGRlZmluZWQoTUJFRFRMU19FQ1BfRFBfU0VDUDIyNFIxX0VOQUJMRUQpIHx8ICAgXAotICAgIGRlZmluZWQoTUJFRFRMU19FQ1BfRFBfU0VDUDI1NlIxX0VOQUJMRUQpIHx8ICAgXAotICAgIGRlZmluZWQoTUJFRFRMU19FQ1BfRFBfU0VDUDM4NFIxX0VOQUJMRUQpCi0vKgotICogVGhlIHJlYWRlciBpcyBhZHZpc2VkIHRvIGZpcnN0IHVuZGVyc3RhbmQgZWNwX21vZF9wMTkyKCkgc2luY2UgdGhlIHNhbWUKLSAqIGdlbmVyYWwgc3RydWN0dXJlIGlzIHVzZWQgaGVyZSwgYnV0IHdpdGggYWRkaXRpb25hbCBjb21wbGljYXRpb25zOgotICogKDEpIGNodW5rcyBvZiAzMiBiaXRzLCBhbmQgKDIpIHN1YnRyYWN0aW9ucy4KLSAqLwotCi0vKgotICogRm9yIHRoZXNlIHByaW1lcywgd2UgbmVlZCB0byBoYW5kbGUgZGF0YSBpbiBjaHVua3Mgb2YgMzIgYml0cy4KLSAqIFRoaXMgbWFrZXMgaXQgbW9yZSBjb21wbGljYXRlZCBpZiB3ZSB1c2UgNjQgYml0cyBsaW1icyBpbiBNUEksCi0gKiB3aGljaCBwcmV2ZW50cyB1cyBmcm9tIHVzaW5nIGEgdW5pZm9ybSBhY2Nlc3MgbWV0aG9kIGFzIGZvciBwMTkyLgotICoKLSAqIFNvLCB3ZSBkZWZpbmUgYSBtaW5pIGFic3RyYWN0aW9uIGxheWVyIHRvIGFjY2VzcyAzMiBiaXQgY2h1bmtzLAotICogbG9hZCB0aGVtIGluICdjdXInIGZvciB3b3JrLCBhbmQgc3RvcmUgdGhlbSBiYWNrIGZyb20gJ2N1cicgd2hlbiBkb25lLgotICoKLSAqIFdoaWxlIGF0IGl0LCBhbHNvIGRlZmluZSB0aGUgc2l6ZSBvZiBOIGluIHRlcm1zIG9mIDMyLWJpdCBjaHVua3MuCi0gKi8KLSNkZWZpbmUgTE9BRDMyICAgICAgY3VyID0gQShpKTsKLQotI2lmIGRlZmluZWQoTUJFRFRMU19IQVZFX0lOVDMyKSAgLyogMzIgYml0ICovCi0KLSNkZWZpbmUgTUFYMzIgICAgICAgTi0+bgotI2RlZmluZSBBKGopICAgICAgTi0+cFtqXQotI2RlZmluZSBTVE9SRTMyICAgICBOLT5wW2ldID0gY3VyOwotCi0jZWxzZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiA2NC1iaXQgKi8KLQotI2RlZmluZSBNQVgzMiAgICAgICBOLT5uICogMgotI2RlZmluZSBBKGopIChqKSAlIDIgPyAodWludDMyX3QpIChOLT5wWyhqKS8yXSA+PiAzMikgOiBcCi0gICAgKHVpbnQzMl90KSAoTi0+cFsoaikvMl0pCi0jZGVmaW5lIFNUT1JFMzIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICBpZiAoaSAlIDIpIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgICAgIE4tPnBbaS8yXSAmPSAweDAwMDAwMDAwRkZGRkZGRkY7ICAgICAgICAgIFwKLSAgICAgICAgTi0+cFtpLzJdIHw9ICgobWJlZHRsc19tcGlfdWludCkgY3VyKSA8PCAzMjsgICAgICAgIFwKLSAgICB9IGVsc2UgeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgICAgICBOLT5wW2kvMl0gJj0gMHhGRkZGRkZGRjAwMDAwMDAwOyAgICAgICAgICBcCi0gICAgICAgIE4tPnBbaS8yXSB8PSAobWJlZHRsc19tcGlfdWludCkgY3VyOyAgICAgICAgICAgICAgICBcCi0gICAgfQotCi0jZW5kaWYgLyogc2l6ZW9mKCBtYmVkdGxzX21waV91aW50ICkgKi8KLQotLyoKLSAqIEhlbHBlcnMgZm9yIGFkZGl0aW9uIGFuZCBzdWJ0cmFjdGlvbiBvZiBjaHVua3MsIHdpdGggc2lnbmVkIGNhcnJ5LgotICovCi1zdGF0aWMgaW5saW5lIHZvaWQgYWRkMzIodWludDMyX3QgKmRzdCwgdWludDMyX3Qgc3JjLCBzaWduZWQgY2hhciAqY2FycnkpCi17Ci0gICAgKmRzdCArPSBzcmM7Ci0gICAgKmNhcnJ5ICs9ICgqZHN0IDwgc3JjKTsKLX0KLQotc3RhdGljIGlubGluZSB2b2lkIHN1YjMyKHVpbnQzMl90ICpkc3QsIHVpbnQzMl90IHNyYywgc2lnbmVkIGNoYXIgKmNhcnJ5KQotewotICAgICpjYXJyeSAtPSAoKmRzdCA8IHNyYyk7Ci0gICAgKmRzdCAtPSBzcmM7Ci19Ci0KLSNkZWZpbmUgQUREKGopICAgIGFkZDMyKCZjdXIsIEEoaiksICZjKTsKLSNkZWZpbmUgU1VCKGopICAgIHN1YjMyKCZjdXIsIEEoaiksICZjKTsKLQotLyoKLSAqIEhlbHBlcnMgZm9yIHRoZSBtYWluICdsb29wJwotICovCi0jZGVmaW5lIElOSVQoYikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIGludCByZXQgPSBNQkVEVExTX0VSUl9FUlJPUl9DT1JSVVBUSU9OX0RFVEVDVEVEOyAgICAgICAgICAgICAgICAgICAgXAotICAgIHNpZ25lZCBjaGFyIGMgPSAwLCBjYzsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIHVpbnQzMl90IGN1cjsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIHNpemVfdCBpID0gMCwgYml0cyA9IChiKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIC8qIE4gaXMgdGhlIHNpemUgb2YgdGhlIHByb2R1Y3Qgb2YgdHdvIGItYml0IG51bWJlcnMsIHBsdXMgb25lICovICAgXAotICAgIC8qIGxpbWIgZm9yIGZpeF9uZWdhdGl2ZSAqLyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIE1CRURUTFNfTVBJX0NISyhtYmVkdGxzX21waV9ncm93KE4sIChiKSAqIDIgLyBiaUwgKyAxKSk7ICAgICAgXAotICAgIExPQUQzMjsKLQotI2RlZmluZSBORVhUICAgICAgICAgICAgICAgICAgICBcCi0gICAgU1RPUkUzMjsgaSsrOyBMT0FEMzI7ICAgICAgIFwKLSAgICBjYyA9IGM7IGMgPSAwOyAgICAgICAgICAgICAgXAotICAgIGlmIChjYyA8IDApICAgICAgICAgICAgICAgIFwKLSAgICBzdWIzMigmY3VyLCAtY2MsICZjKTsgXAotICAgIGVsc2UgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgYWRkMzIoJmN1ciwgY2MsICZjKTsgIFwKLQotI2RlZmluZSBMQVNUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIFNUT1JFMzI7IGkrKzsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIGN1ciA9IGMgPiAwID8gYyA6IDA7IFNUT1JFMzI7ICAgICAgICAgICAgICAgXAotICAgIGN1ciA9IDA7IHdoaWxlICgrK2kgPCBNQVgzMikgeyBTVE9SRTMyOyB9ICBcCi0gICAgaWYgKGMgPCAwKSBtYmVkdGxzX2VjcF9maXhfbmVnYXRpdmUoTiwgYywgYml0cyk7Ci0KLS8qCi0gKiBJZiB0aGUgcmVzdWx0IGlzIG5lZ2F0aXZlLCB3ZSBnZXQgaXQgaW4gdGhlIGZvcm0KLSAqIGMgKiAyXmJpdHMgKyBOLCB3aXRoIGMgbmVnYXRpdmUgYW5kIE4gcG9zaXRpdmUgc2hvcnRlciB0aGFuICdiaXRzJwotICovCi1zdGF0aWMgdm9pZCBtYmVkdGxzX2VjcF9maXhfbmVnYXRpdmUobWJlZHRsc19tcGkgKk4sIHNpZ25lZCBjaGFyIGMsIHNpemVfdCBiaXRzKQotewotICAgIHNpemVfdCBpOwotCi0gICAgLyogU2V0IE4gOj0gMl5iaXRzIC0gMSAtIE4uIFdlIGtub3cgdGhhdCAwIDw9IE4gPCAyXmJpdHMsIHNvCi0gICAgICogc2V0IHRoZSBhYnNvbHV0ZSB2YWx1ZSB0byAweGZmZi4uLmZmZiAtIE4uIFRoZXJlIGlzIG5vIGNhcnJ5Ci0gICAgICogc2luY2Ugd2UncmUgc3VidHJhY3RpbmcgZnJvbSBhbGwtYml0cy1vbmUuICAqLwotICAgIGZvciAoaSA9IDA7IGkgPD0gYml0cyAvIDggLyBzaXplb2YobWJlZHRsc19tcGlfdWludCk7IGkrKykgewotICAgICAgICBOLT5wW2ldID0gfihtYmVkdGxzX21waV91aW50KSAwIC0gTi0+cFtpXTsKLSAgICB9Ci0gICAgLyogQWRkIDEsIHRha2luZyBjYXJlIG9mIHRoZSBjYXJyeS4gKi8KLSAgICBpID0gMDsKLSAgICBkbyB7Ci0gICAgICAgICsrTi0+cFtpXTsKLSAgICB9IHdoaWxlIChOLT5wW2krK10gPT0gMCAmJiBpIDw9IGJpdHMgLyA4IC8gc2l6ZW9mKG1iZWR0bHNfbXBpX3VpbnQpKTsKLSAgICAvKiBJbnZlcnQgdGhlIHNpZ24uCi0gICAgICogTm93IE4gPSBOMCAtIDJeYml0cyB3aGVyZSBOMCBpcyB0aGUgaW5pdGlhbCB2YWx1ZSBvZiBOLiAqLwotICAgIE4tPnMgPSAtMTsKLQotICAgIC8qIEFkZCB8Y3wgKiAyXmJpdHMgdG8gdGhlIGFic29sdXRlIHZhbHVlLiBTaW5jZSBjIGFuZCBOIGFyZQotICAgICAqIG5lZ2F0aXZlLCB0aGlzIGFkZHMgYyAqIDJeYml0cy4gKi8KLSAgICBtYmVkdGxzX21waV91aW50IG1zdyA9IChtYmVkdGxzX21waV91aW50KSAtYzsKLSNpZiBkZWZpbmVkKE1CRURUTFNfSEFWRV9JTlQ2NCkKLSAgICBpZiAoYml0cyA9PSAyMjQpIHsKLSAgICAgICAgbXN3IDw8PSAzMjsKLSAgICB9Ci0jZW5kaWYKLSAgICBOLT5wW2JpdHMgLyA4IC8gc2l6ZW9mKG1iZWR0bHNfbXBpX3VpbnQpXSArPSBtc3c7Ci19Ci0KLSNpZiBkZWZpbmVkKE1CRURUTFNfRUNQX0RQX1NFQ1AyMjRSMV9FTkFCTEVEKQotLyoKLSAqIEZhc3QgcXVhc2ktcmVkdWN0aW9uIG1vZHVsbyBwMjI0IChGSVBTIDE4Ni0zIEQuMi4yKQotICovCi1zdGF0aWMgaW50IGVjcF9tb2RfcDIyNChtYmVkdGxzX21waSAqTikKLXsKLSAgICBJTklUKDIyNCk7Ci0KLSAgICBTVUIoNyk7IFNVQigxMSk7ICAgICAgICAgICAgICAgTkVYVDsgICAgICAvLyBBMCArPSAtQTcgLSBBMTEKLSAgICBTVUIoOCk7IFNVQigxMik7ICAgICAgICAgICAgICAgTkVYVDsgICAgICAvLyBBMSArPSAtQTggLSBBMTIKLSAgICBTVUIoOSk7IFNVQigxMyk7ICAgICAgICAgICAgICAgTkVYVDsgICAgICAvLyBBMiArPSAtQTkgLSBBMTMKLSAgICBTVUIoMTApOyBBREQoNyk7IEFERCgxMSk7ICAgIE5FWFQ7ICAgICAgICAvLyBBMyArPSAtQTEwICsgQTcgKyBBMTEKLSAgICBTVUIoMTEpOyBBREQoOCk7IEFERCgxMik7ICAgIE5FWFQ7ICAgICAgICAvLyBBNCArPSAtQTExICsgQTggKyBBMTIKLSAgICBTVUIoMTIpOyBBREQoOSk7IEFERCgxMyk7ICAgIE5FWFQ7ICAgICAgICAvLyBBNSArPSAtQTEyICsgQTkgKyBBMTMKLSAgICBTVUIoMTMpOyBBREQoMTApOyAgICAgICAgICAgICAgIExBU1Q7ICAgICAvLyBBNiArPSAtQTEzICsgQTEwCi0KLWNsZWFudXA6Ci0gICAgcmV0dXJuIHJldDsKLX0KLSNlbmRpZiAvKiBNQkVEVExTX0VDUF9EUF9TRUNQMjI0UjFfRU5BQkxFRCAqLwotCi0jaWYgZGVmaW5lZChNQkVEVExTX0VDUF9EUF9TRUNQMjU2UjFfRU5BQkxFRCkKLS8qCi0gKiBGYXN0IHF1YXNpLXJlZHVjdGlvbiBtb2R1bG8gcDI1NiAoRklQUyAxODYtMyBELjIuMykKLSAqLwotc3RhdGljIGludCBlY3BfbW9kX3AyNTYobWJlZHRsc19tcGkgKk4pCi17Ci0gICAgSU5JVCgyNTYpOwotCi0gICAgQUREKDgpOyBBREQoOSk7Ci0gICAgU1VCKDExKTsgU1VCKDEyKTsgU1VCKDEzKTsgU1VCKDE0KTsgICAgICAgICAgICAgTkVYVDsgICAgICAgICAvLyBBMAotCi0gICAgQUREKDkpOyBBREQoMTApOwotICAgIFNVQigxMik7IFNVQigxMyk7IFNVQigxNCk7IFNVQigxNSk7ICAgICAgICAgICAgIE5FWFQ7ICAgICAgICAgLy8gQTEKLQotICAgIEFERCgxMCk7IEFERCgxMSk7Ci0gICAgU1VCKDEzKTsgU1VCKDE0KTsgU1VCKDE1KTsgICAgICAgICAgICAgICAgICAgICAgICBORVhUOyAgICAgICAvLyBBMgotCi0gICAgQUREKDExKTsgQUREKDExKTsgQUREKDEyKTsgQUREKDEyKTsgQUREKDEzKTsKLSAgICBTVUIoMTUpOyBTVUIoOCk7IFNVQig5KTsgICAgICAgICAgICAgICAgICAgICAgICBORVhUOyAgICAgICAgIC8vIEEzCi0KLSAgICBBREQoMTIpOyBBREQoMTIpOyBBREQoMTMpOyBBREQoMTMpOyBBREQoMTQpOwotICAgIFNVQig5KTsgU1VCKDEwKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5FWFQ7ICAgICAgLy8gQTQKLQotICAgIEFERCgxMyk7IEFERCgxMyk7IEFERCgxNCk7IEFERCgxNCk7IEFERCgxNSk7Ci0gICAgU1VCKDEwKTsgU1VCKDExKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5FWFQ7ICAgICAvLyBBNQotCi0gICAgQUREKDE0KTsgQUREKDE0KTsgQUREKDE1KTsgQUREKDE1KTsgQUREKDE0KTsgQUREKDEzKTsKLSAgICBTVUIoOCk7IFNVQig5KTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5FWFQ7ICAgICAgIC8vIEE2Ci0KLSAgICBBREQoMTUpOyBBREQoMTUpOyBBREQoMTUpOyBBREQoOCk7Ci0gICAgU1VCKDEwKTsgU1VCKDExKTsgU1VCKDEyKTsgU1VCKDEzKTsgICAgICAgICAgICAgTEFTVDsgICAgICAgICAvLyBBNwotCi1jbGVhbnVwOgotICAgIHJldHVybiByZXQ7Ci19Ci0jZW5kaWYgLyogTUJFRFRMU19FQ1BfRFBfU0VDUDI1NlIxX0VOQUJMRUQgKi8KLQotI2lmIGRlZmluZWQoTUJFRFRMU19FQ1BfRFBfU0VDUDM4NFIxX0VOQUJMRUQpCi0vKgotICogRmFzdCBxdWFzaS1yZWR1Y3Rpb24gbW9kdWxvIHAzODQgKEZJUFMgMTg2LTMgRC4yLjQpCi0gKi8KLXN0YXRpYyBpbnQgZWNwX21vZF9wMzg0KG1iZWR0bHNfbXBpICpOKQotewotICAgIElOSVQoMzg0KTsKLQotICAgIEFERCgxMik7IEFERCgyMSk7IEFERCgyMCk7Ci0gICAgU1VCKDIzKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTkVYVDsgICAvLyBBMAotCi0gICAgQUREKDEzKTsgQUREKDIyKTsgQUREKDIzKTsKLSAgICBTVUIoMTIpOyBTVUIoMjApOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTkVYVDsgICAgIC8vIEEyCi0KLSAgICBBREQoMTQpOyBBREQoMjMpOwotICAgIFNVQigxMyk7IFNVQigyMSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBORVhUOyAgICAgLy8gQTIKLQotICAgIEFERCgxNSk7IEFERCgxMik7IEFERCgyMCk7IEFERCgyMSk7Ci0gICAgU1VCKDE0KTsgU1VCKDIyKTsgU1VCKDIzKTsgICAgICAgICAgICAgICAgICAgICAgICBORVhUOyAgICAgICAvLyBBMwotCi0gICAgQUREKDIxKTsgQUREKDIxKTsgQUREKDE2KTsgQUREKDEzKTsgQUREKDEyKTsgQUREKDIwKTsgQUREKDIyKTsKLSAgICBTVUIoMTUpOyBTVUIoMjMpOyBTVUIoMjMpOyAgICAgICAgICAgICAgICAgICAgICAgIE5FWFQ7ICAgICAgIC8vIEE0Ci0KLSAgICBBREQoMjIpOyBBREQoMjIpOyBBREQoMTcpOyBBREQoMTQpOyBBREQoMTMpOyBBREQoMjEpOyBBREQoMjMpOwotICAgIFNVQigxNik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5FWFQ7ICAgLy8gQTUKLQotICAgIEFERCgyMyk7IEFERCgyMyk7IEFERCgxOCk7IEFERCgxNSk7IEFERCgxNCk7IEFERCgyMik7Ci0gICAgU1VCKDE3KTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTkVYVDsgICAvLyBBNgotCi0gICAgQUREKDE5KTsgQUREKDE2KTsgQUREKDE1KTsgQUREKDIzKTsKLSAgICBTVUIoMTgpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBORVhUOyAgIC8vIEE3Ci0KLSAgICBBREQoMjApOyBBREQoMTcpOyBBREQoMTYpOwotICAgIFNVQigxOSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5FWFQ7ICAgLy8gQTgKLQotICAgIEFERCgyMSk7IEFERCgxOCk7IEFERCgxNyk7Ci0gICAgU1VCKDIwKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTkVYVDsgICAvLyBBOQotCi0gICAgQUREKDIyKTsgQUREKDE5KTsgQUREKDE4KTsKLSAgICBTVUIoMjEpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBORVhUOyAgIC8vIEExMAotCi0gICAgQUREKDIzKTsgQUREKDIwKTsgQUREKDE5KTsKLSAgICBTVUIoMjIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMQVNUOyAgIC8vIEExMQotCi1jbGVhbnVwOgotICAgIHJldHVybiByZXQ7Ci19Ci0jZW5kaWYgLyogTUJFRFRMU19FQ1BfRFBfU0VDUDM4NFIxX0VOQUJMRUQgKi8KLQotI3VuZGVmIEEKLSN1bmRlZiBMT0FEMzIKLSN1bmRlZiBTVE9SRTMyCi0jdW5kZWYgTUFYMzIKLSN1bmRlZiBJTklUCi0jdW5kZWYgTkVYVAotI3VuZGVmIExBU1QKLQotI2VuZGlmIC8qIE1CRURUTFNfRUNQX0RQX1NFQ1AyMjRSMV9FTkFCTEVEIHx8Ci0gICAgICAgICAgTUJFRFRMU19FQ1BfRFBfU0VDUDI1NlIxX0VOQUJMRUQgfHwKLSAgICAgICAgICBNQkVEVExTX0VDUF9EUF9TRUNQMzg0UjFfRU5BQkxFRCAqLwotCi0jaWYgZGVmaW5lZChNQkVEVExTX0VDUF9EUF9TRUNQNTIxUjFfRU5BQkxFRCkKLS8qCi0gKiBIZXJlIHdlIGhhdmUgYW4gYWN0dWFsIE1lcnNlbm5lIHByaW1lLCBzbyB0aGluZ3MgYXJlIG1vcmUgc3RyYWlnaHRmb3J3YXJkLgotICogSG93ZXZlciwgY2h1bmtzIGFyZSBhbGlnbmVkIG9uIGEgJ3dlaXJkJyBib3VuZGFyeSAoNTIxIGJpdHMpLgotICovCi0KLS8qIFNpemUgb2YgcDUyMSBpbiB0ZXJtcyBvZiBtYmVkdGxzX21waV91aW50ICovCi0jZGVmaW5lIFA1MjFfV0lEVEggICAgICAoNTIxIC8gOCAvIHNpemVvZihtYmVkdGxzX21waV91aW50KSArIDEpCi0KLS8qIEJpdHMgdG8ga2VlcCBpbiB0aGUgbW9zdCBzaWduaWZpY2FudCBtYmVkdGxzX21waV91aW50ICovCi0jZGVmaW5lIFA1MjFfTUFTSyAgICAgICAweDAxRkYKLQotLyoKLSAqIEZhc3QgcXVhc2ktcmVkdWN0aW9uIG1vZHVsbyBwNTIxIChGSVBTIDE4Ni0zIEQuMi41KQotICogV3JpdGUgTiBhcyBBMSArIDJeNTIxIEEwLCByZXR1cm4gQTAgKyBBMQotICovCi1zdGF0aWMgaW50IGVjcF9tb2RfcDUyMShtYmVkdGxzX21waSAqTikKLXsKLSAgICBpbnQgcmV0ID0gTUJFRFRMU19FUlJfRVJST1JfQ09SUlVQVElPTl9ERVRFQ1RFRDsKLSAgICBzaXplX3QgaTsKLSAgICBtYmVkdGxzX21waSBNOwotICAgIG1iZWR0bHNfbXBpX3VpbnQgTXBbUDUyMV9XSURUSCArIDFdOwotICAgIC8qIFdvcnN0IGNhc2UgZm9yIHRoZSBzaXplIG9mIE0gaXMgd2hlbiBtYmVkdGxzX21waV91aW50IGlzIDE2IGJpdHM6Ci0gICAgICogd2UgbmVlZCB0byBob2xkIGJpdHMgNTEzIHRvIDEwNTYsIHdoaWNoIGlzIDM0IGxpbWJzLCB0aGF0IGlzCi0gICAgICogUDUyMV9XSURUSCArIDEuIE90aGVyd2lzZSBQNTIxX1dJRFRIIGlzIGVub3VnaC4gKi8KLQotICAgIGlmIChOLT5uIDwgUDUyMV9XSURUSCkgewotICAgICAgICByZXR1cm4gMDsKLSAgICB9Ci0KLSAgICAvKiBNID0gQTEgKi8KLSAgICBNLnMgPSAxOwotICAgIE0ubiA9IE4tPm4gLSAoUDUyMV9XSURUSCAtIDEpOwotICAgIGlmIChNLm4gPiBQNTIxX1dJRFRIICsgMSkgewotICAgICAgICBNLm4gPSBQNTIxX1dJRFRIICsgMTsKLSAgICB9Ci0gICAgTS5wID0gTXA7Ci0gICAgbWVtY3B5KE1wLCBOLT5wICsgUDUyMV9XSURUSCAtIDEsIE0ubiAqIHNpemVvZihtYmVkdGxzX21waV91aW50KSk7Ci0gICAgTUJFRFRMU19NUElfQ0hLKG1iZWR0bHNfbXBpX3NoaWZ0X3IoJk0sIDUyMSAlICg4ICogc2l6ZW9mKG1iZWR0bHNfbXBpX3VpbnQpKSkpOwotCi0gICAgLyogTiA9IEEwICovCi0gICAgTi0+cFtQNTIxX1dJRFRIIC0gMV0gJj0gUDUyMV9NQVNLOwotICAgIGZvciAoaSA9IFA1MjFfV0lEVEg7IGkgPCBOLT5uOyBpKyspIHsKLSAgICAgICAgTi0+cFtpXSA9IDA7Ci0gICAgfQotCi0gICAgLyogTiA9IEEwICsgQTEgKi8KLSAgICBNQkVEVExTX01QSV9DSEsobWJlZHRsc19tcGlfYWRkX2FicyhOLCBOLCAmTSkpOwotCi1jbGVhbnVwOgotICAgIHJldHVybiByZXQ7Ci19Ci0KLSN1bmRlZiBQNTIxX1dJRFRICi0jdW5kZWYgUDUyMV9NQVNLCi0jZW5kaWYgLyogTUJFRFRMU19FQ1BfRFBfU0VDUDUyMVIxX0VOQUJMRUQgKi8KLQotI2VuZGlmIC8qIE1CRURUTFNfRUNQX05JU1RfT1BUSU0gKi8KLQotI2lmIGRlZmluZWQoTUJFRFRMU19FQ1BfRFBfQ1VSVkUyNTUxOV9FTkFCTEVEKQotCi0vKiBTaXplIG9mIHAyNTUgaW4gdGVybXMgb2YgbWJlZHRsc19tcGlfdWludCAqLwotI2RlZmluZSBQMjU1X1dJRFRIICAgICAgKDI1NSAvIDggLyBzaXplb2YobWJlZHRsc19tcGlfdWludCkgKyAxKQotCi0vKgotICogRmFzdCBxdWFzaS1yZWR1Y3Rpb24gbW9kdWxvIHAyNTUgPSAyXjI1NSAtIDE5Ci0gKiBXcml0ZSBOIGFzIEEwICsgMl4yNTYgQTEsIHJldHVybiBBMCArIDM4ICogQTEKLSAqLwotc3RhdGljIGludCBlY3BfbW9kX3AyNTUobWJlZHRsc19tcGkgKk4pCi17Ci0gICAgbWJlZHRsc19tcGlfdWludCBNcFtQMjU1X1dJRFRIXTsKLQotICAgIC8qIEhlbHBlciByZWZlcmVuY2VzIGZvciB0b3AgcGFydCBvZiBOICovCi0gICAgbWJlZHRsc19tcGlfdWludCAqIGNvbnN0IE5UX3AgPSBOLT5wICsgUDI1NV9XSURUSDsKLSAgICBjb25zdCBzaXplX3QgTlRfbiA9IE4tPm4gLSBQMjU1X1dJRFRIOwotICAgIGlmIChOLT5uIDw9IFAyNTVfV0lEVEgpIHsKLSAgICAgICAgcmV0dXJuIDA7Ci0gICAgfQotICAgIGlmIChOVF9uID4gUDI1NV9XSURUSCkgewotICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfRUNQX0JBRF9JTlBVVF9EQVRBOwotICAgIH0KLQotICAgIC8qIFNwbGl0IE4gYXMgTiArIDJeMjU2IE0gKi8KLSAgICBtZW1jcHkoTXAsICAgTlRfcCwgc2l6ZW9mKG1iZWR0bHNfbXBpX3VpbnQpICogTlRfbik7Ci0gICAgbWVtc2V0KE5UX3AsIDAsICAgIHNpemVvZihtYmVkdGxzX21waV91aW50KSAqIE5UX24pOwotCi0gICAgLyogTiA9IEEwICsgMzggKiBBMSAqLwotICAgIG1iZWR0bHNfbXBpX2NvcmVfbWxhKE4tPnAsIFAyNTVfV0lEVEggKyAxLAotICAgICAgICAgICAgICAgICAgICAgICAgIE1wLCBOVF9uLAotICAgICAgICAgICAgICAgICAgICAgICAgIDM4KTsKLQotICAgIHJldHVybiAwOwotfQotI2VuZGlmIC8qIE1CRURUTFNfRUNQX0RQX0NVUlZFMjU1MTlfRU5BQkxFRCAqLwotCi0jaWYgZGVmaW5lZChNQkVEVExTX0VDUF9EUF9DVVJWRTQ0OF9FTkFCTEVEKQotCi0vKiBTaXplIG9mIHA0NDggaW4gdGVybXMgb2YgbWJlZHRsc19tcGlfdWludCAqLwotI2RlZmluZSBQNDQ4X1dJRFRIICAgICAgKDQ0OCAvIDggLyBzaXplb2YobWJlZHRsc19tcGlfdWludCkpCi0KLS8qIE51bWJlciBvZiBsaW1icyBmdWxseSBvY2N1cGllZCBieSAyXjIyNCAobWF4KSwgYW5kIGxpbWJzIHVzZWQgYnkgaXQgKG1pbikgKi8KLSNkZWZpbmUgRElWX1JPVU5EX1VQKFgsIFkpICgoKFgpICsgKFkpIC0xKSAvIChZKSkKLSNkZWZpbmUgUDIyNF9TSVpFICAgICAgICAoMjI0IC8gOCkKLSNkZWZpbmUgUDIyNF9XSURUSF9NSU4gICAoUDIyNF9TSVpFIC8gc2l6ZW9mKG1iZWR0bHNfbXBpX3VpbnQpKQotI2RlZmluZSBQMjI0X1dJRFRIX01BWCAgIERJVl9ST1VORF9VUChQMjI0X1NJWkUsIHNpemVvZihtYmVkdGxzX21waV91aW50KSkKLSNkZWZpbmUgUDIyNF9VTlVTRURfQklUUyAoKFAyMjRfV0lEVEhfTUFYICogc2l6ZW9mKG1iZWR0bHNfbXBpX3VpbnQpICogOCkgLSAyMjQpCi0KLS8qCi0gKiBGYXN0IHF1YXNpLXJlZHVjdGlvbiBtb2R1bG8gcDQ0OCA9IDJeNDQ4IC0gMl4yMjQgLSAxCi0gKiBXcml0ZSBOIGFzIEEwICsgMl40NDggQTEgYW5kIEExIGFzIEIwICsgMl4yMjQgQjEsIGFuZCByZXR1cm4KLSAqIEEwICsgQTEgKyBCMSArIChCMCArIEIxKSAqIDJeMjI0LiAgVGhpcyBpcyBkaWZmZXJlbnQgdG8gdGhlIHJlZmVyZW5jZQotICogaW1wbGVtZW50YXRpb24gb2YgQ3VydmU0NDgsIHdoaWNoIHVzZXMgaXRzIG93biBzcGVjaWFsIDU2LWJpdCBsaW1icyByYXRoZXIKLSAqIHRoYW4gYSBnZW5lcmljIGJpZ251bSBsaWJyYXJ5LiAgV2UgY291bGQgc3F1ZWV6ZSBzb21lIGV4dHJhIHNwZWVkIG91dCBvbgotICogMzItYml0IG1hY2hpbmVzIGJ5IHNwbGl0dGluZyBOIHVwIGludG8gMzItYml0IGxpbWJzIGFuZCBkb2luZyB0aGUKLSAqIGFyaXRobWV0aWMgdXNpbmcgdGhlIGxpbWJzIGRpcmVjdGx5IGFzIHdlIGRvIGZvciB0aGUgTklTVCBwcmltZXMgYWJvdmUsCi0gKiBidXQgZm9yIDY0LWJpdCB0YXJnZXRzIGl0IHNob3VsZCB1c2UgaGFsZiB0aGUgbnVtYmVyIG9mIG9wZXJhdGlvbnMgaWYgd2UgZG8KLSAqIHRoZSByZWR1Y3Rpb24gd2l0aCAyMjQtYml0IGxpbWJzLCBzaW5jZSBtcGlfYWRkX21waSB3aWxsIHRoZW4gdXNlIDY0LWJpdCBhZGRzLgotICovCi1zdGF0aWMgaW50IGVjcF9tb2RfcDQ0OChtYmVkdGxzX21waSAqTikKLXsKLSAgICBpbnQgcmV0ID0gTUJFRFRMU19FUlJfRVJST1JfQ09SUlVQVElPTl9ERVRFQ1RFRDsKLSAgICBzaXplX3QgaTsKLSAgICBtYmVkdGxzX21waSBNLCBROwotICAgIG1iZWR0bHNfbXBpX3VpbnQgTXBbUDQ0OF9XSURUSCArIDFdLCBRcFtQNDQ4X1dJRFRIXTsKLQotICAgIGlmIChOLT5uIDw9IFA0NDhfV0lEVEgpIHsKLSAgICAgICAgcmV0dXJuIDA7Ci0gICAgfQotCi0gICAgLyogTSA9IEExICovCi0gICAgTS5zID0gMTsKLSAgICBNLm4gPSBOLT5uIC0gKFA0NDhfV0lEVEgpOwotICAgIGlmIChNLm4gPiBQNDQ4X1dJRFRIKSB7Ci0gICAgICAgIC8qIFNob3VsZG4ndCBiZSBjYWxsZWQgd2l0aCBOIGxhcmdlciB0aGFuIDJeODk2ISAqLwotICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfRUNQX0JBRF9JTlBVVF9EQVRBOwotICAgIH0KLSAgICBNLnAgPSBNcDsKLSAgICBtZW1zZXQoTXAsIDAsIHNpemVvZihNcCkpOwotICAgIG1lbWNweShNcCwgTi0+cCArIFA0NDhfV0lEVEgsIE0ubiAqIHNpemVvZihtYmVkdGxzX21waV91aW50KSk7Ci0KLSAgICAvKiBOID0gQTAgKi8KLSAgICBmb3IgKGkgPSBQNDQ4X1dJRFRIOyBpIDwgTi0+bjsgaSsrKSB7Ci0gICAgICAgIE4tPnBbaV0gPSAwOwotICAgIH0KLQotICAgIC8qIE4gKz0gQTEgKi8KLSAgICBNQkVEVExTX01QSV9DSEsobWJlZHRsc19tcGlfYWRkX21waShOLCBOLCAmTSkpOwotCi0gICAgLyogUSA9IEIxLCBOICs9IEIxICovCi0gICAgUSA9IE07Ci0gICAgUS5wID0gUXA7Ci0gICAgbWVtY3B5KFFwLCBNcCwgc2l6ZW9mKFFwKSk7Ci0gICAgTUJFRFRMU19NUElfQ0hLKG1iZWR0bHNfbXBpX3NoaWZ0X3IoJlEsIDIyNCkpOwotICAgIE1CRURUTFNfTVBJX0NISyhtYmVkdGxzX21waV9hZGRfbXBpKE4sIE4sICZRKSk7Ci0KLSAgICAvKiBNID0gKEIwICsgQjEpICogMl4yMjQsIE4gKz0gTSAqLwotICAgIGlmIChzaXplb2YobWJlZHRsc19tcGlfdWludCkgPiA0KSB7Ci0gICAgICAgIE1wW1AyMjRfV0lEVEhfTUlOXSAmPSAoKG1iZWR0bHNfbXBpX3VpbnQpLTEpID4+IChQMjI0X1VOVVNFRF9CSVRTKTsKLSAgICB9Ci0gICAgZm9yIChpID0gUDIyNF9XSURUSF9NQVg7IGkgPCBNLm47ICsraSkgewotICAgICAgICBNcFtpXSA9IDA7Ci0gICAgfQotICAgIE1CRURUTFNfTVBJX0NISyhtYmVkdGxzX21waV9hZGRfbXBpKCZNLCAmTSwgJlEpKTsKLSAgICBNLm4gPSBQNDQ4X1dJRFRIICsgMTsgLyogTWFrZSByb29tIGZvciBzaGlmdGVkIGNhcnJ5IGJpdCBmcm9tIHRoZSBhZGRpdGlvbiAqLwotICAgIE1CRURUTFNfTVBJX0NISyhtYmVkdGxzX21waV9zaGlmdF9sKCZNLCAyMjQpKTsKLSAgICBNQkVEVExTX01QSV9DSEsobWJlZHRsc19tcGlfYWRkX21waShOLCBOLCAmTSkpOwotCi1jbGVhbnVwOgotICAgIHJldHVybiByZXQ7Ci19Ci0jZW5kaWYgLyogTUJFRFRMU19FQ1BfRFBfQ1VSVkU0NDhfRU5BQkxFRCAqLwotCi0jaWYgZGVmaW5lZChNQkVEVExTX0VDUF9EUF9TRUNQMTkySzFfRU5BQkxFRCkgfHwgICBcCi0gICAgZGVmaW5lZChNQkVEVExTX0VDUF9EUF9TRUNQMjI0SzFfRU5BQkxFRCkgfHwgICBcCi0gICAgZGVmaW5lZChNQkVEVExTX0VDUF9EUF9TRUNQMjU2SzFfRU5BQkxFRCkKLS8qCi0gKiBGYXN0IHF1YXNpLXJlZHVjdGlvbiBtb2R1bG8gUCA9IDJecyAtIFIsCi0gKiB3aXRoIFIgYWJvdXQgMzMgYml0cywgdXNlZCBieSB0aGUgS29ibGl0eiBjdXJ2ZXMuCi0gKgotICogV3JpdGUgTiBhcyBBMCArIDJeMjI0IEExLCByZXR1cm4gQTAgKyBSICogQTEuCi0gKiBBY3R1YWxseSBkbyB0d28gcGFzc2VzLCBzaW5jZSBSIGlzIGJpZy4KLSAqLwotI2RlZmluZSBQX0tPQkxJVFpfTUFYICAgKDI1NiAvIDggLyBzaXplb2YobWJlZHRsc19tcGlfdWludCkpICAgICAgLy8gTWF4IGxpbWJzIGluIFAKLSNkZWZpbmUgUF9LT0JMSVRaX1IgICAgICg4IC8gc2l6ZW9mKG1iZWR0bHNfbXBpX3VpbnQpKSAgICAgICAgICAgIC8vIExpbWJzIGluIFIKLXN0YXRpYyBpbmxpbmUgaW50IGVjcF9tb2Rfa29ibGl0eihtYmVkdGxzX21waSAqTiwgY29uc3QgbWJlZHRsc19tcGlfdWludCAqUnAsIHNpemVfdCBwX2xpbWJzLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBhZGp1c3QsIHNpemVfdCBzaGlmdCwgbWJlZHRsc19tcGlfdWludCBtYXNrKQotewotICAgIGludCByZXQgPSBNQkVEVExTX0VSUl9FUlJPUl9DT1JSVVBUSU9OX0RFVEVDVEVEOwotICAgIHNpemVfdCBpOwotICAgIG1iZWR0bHNfbXBpIE0sIFI7Ci0gICAgbWJlZHRsc19tcGlfdWludCBNcFtQX0tPQkxJVFpfTUFYICsgUF9LT0JMSVRaX1IgKyAxXTsKLQotICAgIGlmIChOLT5uIDwgcF9saW1icykgewotICAgICAgICByZXR1cm4gMDsKLSAgICB9Ci0KLSAgICAvKiBJbml0IFIgKi8KLSAgICBSLnMgPSAxOwotICAgIFIucCA9IChtYmVkdGxzX21waV91aW50ICopIFJwOyAvKiBSLnAgd2lsbCBub3QgYmUgbW9kaWZpZWQgc28gdGhlIGNhc3QgaXMgc2FmZSAqLwotICAgIFIubiA9IFBfS09CTElUWl9SOwotCi0gICAgLyogQ29tbW9uIHNldHVwIGZvciBNICovCi0gICAgTS5zID0gMTsKLSAgICBNLnAgPSBNcDsKLQotICAgIC8qIE0gPSBBMSAqLwotICAgIE0ubiA9ICh1bnNpZ25lZCBzaG9ydCkgKE4tPm4gLSAocF9saW1icyAtIGFkanVzdCkpOwotICAgIGlmIChNLm4gPiBwX2xpbWJzICsgYWRqdXN0KSB7Ci0gICAgICAgIE0ubiA9ICh1bnNpZ25lZCBzaG9ydCkgKHBfbGltYnMgKyBhZGp1c3QpOwotICAgIH0KLSAgICBtZW1zZXQoTXAsIDAsIHNpemVvZihNcCkpOwotICAgIG1lbWNweShNcCwgTi0+cCArIHBfbGltYnMgLSBhZGp1c3QsIE0ubiAqIHNpemVvZihtYmVkdGxzX21waV91aW50KSk7Ci0gICAgaWYgKHNoaWZ0ICE9IDApIHsKLSAgICAgICAgTUJFRFRMU19NUElfQ0hLKG1iZWR0bHNfbXBpX3NoaWZ0X3IoJk0sIHNoaWZ0KSk7Ci0gICAgfQotICAgIE0ubiArPSBSLm47IC8qIE1ha2Ugcm9vbSBmb3IgbXVsdGlwbGljYXRpb24gYnkgUiAqLwotCi0gICAgLyogTiA9IEEwICovCi0gICAgaWYgKG1hc2sgIT0gMCkgewotICAgICAgICBOLT5wW3BfbGltYnMgLSAxXSAmPSBtYXNrOwotICAgIH0KLSAgICBmb3IgKGkgPSBwX2xpbWJzOyBpIDwgTi0+bjsgaSsrKSB7Ci0gICAgICAgIE4tPnBbaV0gPSAwOwotICAgIH0KLQotICAgIC8qIE4gPSBBMCArIFIgKiBBMSAqLwotICAgIE1CRURUTFNfTVBJX0NISyhtYmVkdGxzX21waV9tdWxfbXBpKCZNLCAmTSwgJlIpKTsKLSAgICBNQkVEVExTX01QSV9DSEsobWJlZHRsc19tcGlfYWRkX2FicyhOLCBOLCAmTSkpOwotCi0gICAgLyogU2Vjb25kIHBhc3MgKi8KLQotICAgIC8qIE0gPSBBMSAqLwotICAgIE0ubiA9ICh1bnNpZ25lZCBzaG9ydCkgKE4tPm4gLSAocF9saW1icyAtIGFkanVzdCkpOwotICAgIGlmIChNLm4gPiBwX2xpbWJzICsgYWRqdXN0KSB7Ci0gICAgICAgIE0ubiA9ICh1bnNpZ25lZCBzaG9ydCkgKHBfbGltYnMgKyBhZGp1c3QpOwotICAgIH0KLSAgICBtZW1zZXQoTXAsIDAsIHNpemVvZihNcCkpOwotICAgIG1lbWNweShNcCwgTi0+cCArIHBfbGltYnMgLSBhZGp1c3QsIE0ubiAqIHNpemVvZihtYmVkdGxzX21waV91aW50KSk7Ci0gICAgaWYgKHNoaWZ0ICE9IDApIHsKLSAgICAgICAgTUJFRFRMU19NUElfQ0hLKG1iZWR0bHNfbXBpX3NoaWZ0X3IoJk0sIHNoaWZ0KSk7Ci0gICAgfQotICAgIE0ubiArPSBSLm47IC8qIE1ha2Ugcm9vbSBmb3IgbXVsdGlwbGljYXRpb24gYnkgUiAqLwotCi0gICAgLyogTiA9IEEwICovCi0gICAgaWYgKG1hc2sgIT0gMCkgewotICAgICAgICBOLT5wW3BfbGltYnMgLSAxXSAmPSBtYXNrOwotICAgIH0KLSAgICBmb3IgKGkgPSBwX2xpbWJzOyBpIDwgTi0+bjsgaSsrKSB7Ci0gICAgICAgIE4tPnBbaV0gPSAwOwotICAgIH0KLQotICAgIC8qIE4gPSBBMCArIFIgKiBBMSAqLwotICAgIE1CRURUTFNfTVBJX0NISyhtYmVkdGxzX21waV9tdWxfbXBpKCZNLCAmTSwgJlIpKTsKLSAgICBNQkVEVExTX01QSV9DSEsobWJlZHRsc19tcGlfYWRkX2FicyhOLCBOLCAmTSkpOwotCi1jbGVhbnVwOgotICAgIHJldHVybiByZXQ7Ci19Ci0jZW5kaWYgLyogTUJFRFRMU19FQ1BfRFBfU0VDUDE5MksxX0VOQUJMRUQpIHx8Ci0gICAgICAgICAgTUJFRFRMU19FQ1BfRFBfU0VDUDIyNEsxX0VOQUJMRUQpIHx8Ci0gICAgICAgICAgTUJFRFRMU19FQ1BfRFBfU0VDUDI1NksxX0VOQUJMRUQpICovCi0KLSNpZiBkZWZpbmVkKE1CRURUTFNfRUNQX0RQX1NFQ1AxOTJLMV9FTkFCTEVEKQotLyoKLSAqIEZhc3QgcXVhc2ktcmVkdWN0aW9uIG1vZHVsbyBwMTkyazEgPSAyXjE5MiAtIFIsCi0gKiB3aXRoIFIgPSAyXjMyICsgMl4xMiArIDJeOCArIDJeNyArIDJeNiArIDJeMyArIDEgPSAweDAxMDAwMDExQzkKLSAqLwotc3RhdGljIGludCBlY3BfbW9kX3AxOTJrMShtYmVkdGxzX21waSAqTikKLXsKLSAgICBzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBScFtdID0gewotICAgICAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QzksIDB4MTEsIDB4MDAsIDB4MDAsIDB4MDEsIDB4MDAsIDB4MDAsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMCkKLSAgICB9OwotCi0gICAgcmV0dXJuIGVjcF9tb2Rfa29ibGl0eihOLCBScCwgMTkyIC8gOCAvIHNpemVvZihtYmVkdGxzX21waV91aW50KSwgMCwgMCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIDApOwotfQotI2VuZGlmIC8qIE1CRURUTFNfRUNQX0RQX1NFQ1AxOTJLMV9FTkFCTEVEICovCi0KLSNpZiBkZWZpbmVkKE1CRURUTFNfRUNQX0RQX1NFQ1AyMjRLMV9FTkFCTEVEKQotLyoKLSAqIEZhc3QgcXVhc2ktcmVkdWN0aW9uIG1vZHVsbyBwMjI0azEgPSAyXjIyNCAtIFIsCi0gKiB3aXRoIFIgPSAyXjMyICsgMl4xMiArIDJeMTEgKyAyXjkgKyAyXjcgKyAyXjQgKyAyICsgMSA9IDB4MDEwMDAwMUE5MwotICovCi1zdGF0aWMgaW50IGVjcF9tb2RfcDIyNGsxKG1iZWR0bHNfbXBpICpOKQotewotICAgIHN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IFJwW10gPSB7Ci0gICAgICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg5MywgMHgxQSwgMHgwMCwgMHgwMCwgMHgwMSwgMHgwMCwgMHgwMCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwKQotICAgIH07Ci0KLSNpZiBkZWZpbmVkKE1CRURUTFNfSEFWRV9JTlQ2NCkKLSAgICByZXR1cm4gZWNwX21vZF9rb2JsaXR6KE4sIFJwLCA0LCAxLCAzMiwgMHhGRkZGRkZGRik7Ci0jZWxzZQotICAgIHJldHVybiBlY3BfbW9kX2tvYmxpdHooTiwgUnAsIDIyNCAvIDggLyBzaXplb2YobWJlZHRsc19tcGlfdWludCksIDAsIDAsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAwKTsKLSNlbmRpZgotfQotCi0jZW5kaWYgLyogTUJFRFRMU19FQ1BfRFBfU0VDUDIyNEsxX0VOQUJMRUQgKi8KLQotI2lmIGRlZmluZWQoTUJFRFRMU19FQ1BfRFBfU0VDUDI1NksxX0VOQUJMRUQpCi0vKgotICogRmFzdCBxdWFzaS1yZWR1Y3Rpb24gbW9kdWxvIHAyNTZrMSA9IDJeMjU2IC0gUiwKLSAqIHdpdGggUiA9IDJeMzIgKyAyXjkgKyAyXjggKyAyXjcgKyAyXjYgKyAyXjQgKyAxID0gMHgwMTAwMDAwM0QxCi0gKi8KLXN0YXRpYyBpbnQgZWNwX21vZF9wMjU2azEobWJlZHRsc19tcGkgKk4pCi17Ci0gICAgc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgUnBbXSA9IHsKLSAgICAgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEQxLCAweDAzLCAweDAwLCAweDAwLCAweDAxLCAweDAwLCAweDAwLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDApCi0gICAgfTsKLSAgICByZXR1cm4gZWNwX21vZF9rb2JsaXR6KE4sIFJwLCAyNTYgLyA4IC8gc2l6ZW9mKG1iZWR0bHNfbXBpX3VpbnQpLCAwLCAwLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgMCk7Ci19Ci0jZW5kaWYgLyogTUJFRFRMU19FQ1BfRFBfU0VDUDI1NksxX0VOQUJMRUQgKi8KLQotI2lmIGRlZmluZWQoTUJFRFRMU19URVNUX0hPT0tTKQotCi1NQkVEVExTX1NUQVRJQ19URVNUQUJMRQotbWJlZHRsc19lY3BfdmFyaWFudCBtYmVkdGxzX2VjcF9nZXRfdmFyaWFudCh2b2lkKQotewotICAgIHJldHVybiBNQkVEVExTX0VDUF9WQVJJQU5UX1dJVEhfTVBJX1NUUlVDVDsKLX0KLQotI2VuZGlmIC8qIE1CRURUTFNfVEVTVF9IT09LUyAqLwotCi0jZW5kaWYgLyogIU1CRURUTFNfRUNQX0FMVCAqLwotCi0jZW5kaWYgLyogTUJFRFRMU19FQ1BfTElHSFQgKi8KLSNlbmRpZiAvKiBNQkVEVExTX0VDUF9XSVRIX01QSV9VSU5UICovCmRpZmYgLS1naXQgYS9saWJyYXJ5L2VjcF9jdXJ2ZXNfbmV3LmMgYi9saWJyYXJ5L2VjcF9jdXJ2ZXNfbmV3LmMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAzNWIyM2EuLjAwMDAwMDAKLS0tIGEvbGlicmFyeS9lY3BfY3VydmVzX25ldy5jCisrKyAvZGV2L251bGwKQEAgLTEsNjAzNiArMCwwIEBACi0vKgotICogIEVsbGlwdGljIGN1cnZlcyBvdmVyIEdGKHApOiBjdXJ2ZS1zcGVjaWZpYyBkYXRhIGFuZCBmdW5jdGlvbnMKLSAqCi0gKiAgQ29weXJpZ2h0IFRoZSBNYmVkIFRMUyBDb250cmlidXRvcnMKLSAqICBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMCBPUiBHUEwtMi4wLW9yLWxhdGVyCi0gKi8KLQotI2luY2x1ZGUgImNvbW1vbi5oIgotCi0jaWYgZGVmaW5lZChNQkVEVExTX0VDUF9XSVRIX01QSV9VSU5UKQotCi0jaWYgZGVmaW5lZChNQkVEVExTX0VDUF9MSUdIVCkKLQotI2luY2x1ZGUgIm1iZWR0bHMvZWNwLmgiCi0jaW5jbHVkZSAibWJlZHRscy9wbGF0Zm9ybS5oIgotI2luY2x1ZGUgIm1iZWR0bHMvcGxhdGZvcm1fdXRpbC5oIgotI2luY2x1ZGUgIm1iZWR0bHMvZXJyb3IuaCIKLQotI2luY2x1ZGUgIm1iZWR0bHMvcGxhdGZvcm0uaCIKLQotI2luY2x1ZGUgImNvbnN0YW50X3RpbWVfaW50ZXJuYWwuaCIKLQotI2luY2x1ZGUgImJuX211bC5oIgotI2luY2x1ZGUgImJpZ251bV9jb3JlLmgiCi0jaW5jbHVkZSAiZWNwX2ludmFzaXZlLmgiCi0KLSNpbmNsdWRlIDxzdHJpbmcuaD4KLQotI2lmICFkZWZpbmVkKE1CRURUTFNfRUNQX0FMVCkKLQotI2RlZmluZSBFQ1BfTVBJX0lOSVQoX3AsIF9uKSB7IC5wID0gKG1iZWR0bHNfbXBpX3VpbnQgKikgKF9wKSwgLnMgPSAxLCAubiA9IChfbikgfQotCi0jZGVmaW5lIEVDUF9NUElfSU5JVF9BUlJBWSh4KSAgIFwKLSAgICBFQ1BfTVBJX0lOSVQoeCwgc2l6ZW9mKHgpIC8gc2l6ZW9mKG1iZWR0bHNfbXBpX3VpbnQpKQotCi0jZGVmaW5lIEVDUF9QT0lOVF9JTklUX1hZX1owKHgsIHkpIHsgXAotICAgICAgICBFQ1BfTVBJX0lOSVRfQVJSQVkoeCksIEVDUF9NUElfSU5JVF9BUlJBWSh5KSwgRUNQX01QSV9JTklUKE5VTEwsIDApIH0KLSNkZWZpbmUgRUNQX1BPSU5UX0lOSVRfWFlfWjEoeCwgeSkgeyBcCi0gICAgICAgIEVDUF9NUElfSU5JVF9BUlJBWSh4KSwgRUNQX01QSV9JTklUX0FSUkFZKHkpLCBFQ1BfTVBJX0lOSVQobXBpX29uZSwgMSkgfQotCi0jaWYgZGVmaW5lZChNQkVEVExTX0VDUF9EUF9TRUNQMTkyUjFfRU5BQkxFRCkgfHwgICBcCi0gICAgZGVmaW5lZChNQkVEVExTX0VDUF9EUF9TRUNQMjI0UjFfRU5BQkxFRCkgfHwgICBcCi0gICAgZGVmaW5lZChNQkVEVExTX0VDUF9EUF9TRUNQMjU2UjFfRU5BQkxFRCkgfHwgICBcCi0gICAgZGVmaW5lZChNQkVEVExTX0VDUF9EUF9TRUNQMzg0UjFfRU5BQkxFRCkgfHwgICBcCi0gICAgZGVmaW5lZChNQkVEVExTX0VDUF9EUF9TRUNQNTIxUjFfRU5BQkxFRCkgfHwgICBcCi0gICAgZGVmaW5lZChNQkVEVExTX0VDUF9EUF9CUDI1NlIxX0VOQUJMRUQpICAgfHwgICBcCi0gICAgZGVmaW5lZChNQkVEVExTX0VDUF9EUF9CUDM4NFIxX0VOQUJMRUQpICAgfHwgICBcCi0gICAgZGVmaW5lZChNQkVEVExTX0VDUF9EUF9CUDUxMlIxX0VOQUJMRUQpICAgfHwgICBcCi0gICAgZGVmaW5lZChNQkVEVExTX0VDUF9EUF9TRUNQMTkySzFfRU5BQkxFRCkgfHwgICBcCi0gICAgZGVmaW5lZChNQkVEVExTX0VDUF9EUF9TRUNQMjI0SzFfRU5BQkxFRCkgfHwgICBcCi0gICAgZGVmaW5lZChNQkVEVExTX0VDUF9EUF9TRUNQMjU2SzFfRU5BQkxFRCkKLS8qIEZvciB0aGVzZSBjdXJ2ZXMsIHdlIGJ1aWxkIHRoZSBncm91cCBwYXJhbWV0ZXJzIGR5bmFtaWNhbGx5LiAqLwotI2RlZmluZSBFQ1BfTE9BRF9HUk9VUAotc3RhdGljIG1iZWR0bHNfbXBpX3VpbnQgbXBpX29uZVtdID0geyAxIH07Ci0jZW5kaWYKLQotLyoKLSAqIE5vdGU6IHRoZSBjb25zdGFudHMgYXJlIGluIGxpdHRsZS1lbmRpYW4gb3JkZXIKLSAqIHRvIGJlIGRpcmVjdGx5IHVzYWJsZSBpbiBNUElzCi0gKi8KLQotLyoKLSAqIERvbWFpbiBwYXJhbWV0ZXJzIGZvciBzZWNwMTkycjEKLSAqLwotI2lmIGRlZmluZWQoTUJFRFRMU19FQ1BfRFBfU0VDUDE5MlIxX0VOQUJMRUQpCi1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMTkycjFfcFtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEZFLCAweEZGLCAweEZGLCAweEZGLCAweEZGLCAweEZGLCAweEZGLCAweEZGKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RkYsIDB4RkYsIDB4RkYsIDB4RkYsIDB4RkYsIDB4RkYsIDB4RkYsIDB4RkYpLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AxOTJyMV9iW10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEIxLCAweEI5LCAweDQ2LCAweEMxLCAweEVDLCAweERFLCAweEI4LCAweEZFKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NDksIDB4MzAsIDB4MjQsIDB4NzIsIDB4QUIsIDB4RTksIDB4QTcsIDB4MEYpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhFNywgMHg4MCwgMHg5QywgMHhFNSwgMHgxOSwgMHgwNSwgMHgyMSwgMHg2NCksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDE5MnIxX2d4W10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDEyLCAweDEwLCAweEZGLCAweDgyLCAweEZELCAweDBBLCAweEZGLCAweEY0KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MDAsIDB4ODgsIDB4QTEsIDB4NDMsIDB4RUIsIDB4MjAsIDB4QkYsIDB4N0MpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhGNiwgMHg5MCwgMHgzMCwgMHhCMCwgMHgwRSwgMHhBOCwgMHg4RCwgMHgxOCksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDE5MnIxX2d5W10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDExLCAweDQ4LCAweDc5LCAweDFFLCAweEExLCAweDc3LCAweEY5LCAweDczKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RDUsIDB4Q0QsIDB4MjQsIDB4NkIsIDB4RUQsIDB4MTEsIDB4MTAsIDB4NjMpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg3OCwgMHhEQSwgMHhDOCwgMHhGRiwgMHg5NSwgMHgyQiwgMHgxOSwgMHgwNyksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDE5MnIxX25bXSA9IHsKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MzEsIDB4MjgsIDB4RDIsIDB4QjQsIDB4QjEsIDB4QzksIDB4NkIsIDB4MTQpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgzNiwgMHhGOCwgMHhERSwgMHg5OSwgMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEZGLCAweEZGLCAweEZGLCAweEZGLCAweEZGLCAweEZGLCAweEZGLCAweEZGKSwKLX07Ci0jaWYgTUJFRFRMU19FQ1BfRklYRURfUE9JTlRfT1BUSU0gPT0gMQotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDE5MnIxX1RfMF9YW10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDEyLCAweDEwLCAweEZGLCAweDgyLCAweEZELCAweDBBLCAweEZGLCAweEY0KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MDAsIDB4ODgsIDB4QTEsIDB4NDMsIDB4RUIsIDB4MjAsIDB4QkYsIDB4N0MpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhGNiwgMHg5MCwgMHgzMCwgMHhCMCwgMHgwRSwgMHhBOCwgMHg4RCwgMHgxOCksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDE5MnIxX1RfMF9ZW10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDExLCAweDQ4LCAweDc5LCAweDFFLCAweEExLCAweDc3LCAweEY5LCAweDczKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RDUsIDB4Q0QsIDB4MjQsIDB4NkIsIDB4RUQsIDB4MTEsIDB4MTAsIDB4NjMpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg3OCwgMHhEQSwgMHhDOCwgMHhGRiwgMHg5NSwgMHgyQiwgMHgxOSwgMHgwNyksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDE5MnIxX1RfMV9YW10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDk3LCAweDlFLCAweEUzLCAweDYwLCAweDU5LCAweEQxLCAweEM0LCAweEMyKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4OTEsIDB4QkQsIDB4MjIsIDB4RDcsIDB4MkQsIDB4MDcsIDB4QkQsIDB4QjYpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg3NCwgMHgyQSwgMHhDRiwgMHgzMywgMHhGMCwgMHhCRSwgMHhEMSwgMHhFRCksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDE5MnIxX1RfMV9ZW10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDg4LCAweDcxLCAweDRCLCAweEE4LCAweEVELCAweDdFLCAweEM5LCAweDFBKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4OEUsIDB4MkEsIDB4RjYsIDB4REYsIDB4MEUsIDB4RTgsIDB4NEMsIDB4MEYpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhDNSwgMHgzNSwgMHhGNywgMHg4QSwgMHhDMywgMHhFQywgMHhERSwgMHgxRSksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDE5MnIxX1RfMl9YW10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDAwLCAweDY3LCAweEMyLCAweDFELCAweDMyLCAweDhGLCAweDEwLCAweEZCKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QkIsIDB4MkQsIDB4MTcsIDB4RjMsIDB4RTQsIDB4RkUsIDB4RDgsIDB4MTMpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg1NSwgMHg0NSwgMHgxMCwgMHg3MCwgMHgyQywgMHgzRSwgMHg1MiwgMHgzRSksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDE5MnIxX1RfMl9ZW10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDYxLCAweEYxLCAweDA0LCAweDVELCAweEVFLCAweEQ0LCAweDU2LCAweEU2KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NzgsIDB4QjcsIDB4MzgsIDB4MjcsIDB4NjEsIDB4QUEsIDB4ODEsIDB4ODcpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg3MSwgMHgzNywgMHhENywgMHgwRSwgMHgyOSwgMHgwRSwgMHgxMSwgMHgxNCksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDE5MnIxX1RfM19YW10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDFFLCAweDM1LCAweDUyLCAweEM2LCAweDMxLCAweEI3LCAweDI3LCAweEY1KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4M0QsIDB4RDQsIDB4MTUsIDB4OTgsIDB4MEYsIDB4RTcsIDB4RjMsIDB4NkEpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhEMywgMHgzMSwgMHg3MCwgMHgzNSwgMHgwOSwgMHhBMCwgMHgyQiwgMHhDMiksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDE5MnIxX1RfM19ZW10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDIxLCAweDc1LCAweEE3LCAweDRDLCAweDg4LCAweENGLCAweDVCLCAweEU0KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MTcsIDB4MTcsIDB4NDgsIDB4OEQsIDB4RjIsIDB4RjAsIDB4ODYsIDB4RUQpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg0OSwgMHhDRiwgMHhGRSwgMHg2QiwgMHhCMCwgMHhBNSwgMHgwNiwgMHhBQiksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDE5MnIxX1RfNF9YW10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDE4LCAweDZBLCAweERDLCAweDlBLCAweDZELCAweDdCLCAweDQ3LCAweDJFKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MTIsIDB4RkMsIDB4NTEsIDB4MTIsIDB4NjIsIDB4NjYsIDB4MEIsIDB4NTkpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhDRCwgMHg0MCwgMHg5MywgMHhBMCwgMHhCNSwgMHg1QSwgMHg1OCwgMHhENyksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDE5MnIxX1RfNF9ZW10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEVGLCAweENCLCAweEFGLCAweERDLCAweDBCLCAweEExLCAweDI2LCAweEZCKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4REEsIDB4MzYsIDB4OUQsIDB4QTMsIDB4RDcsIDB4M0IsIDB4QUQsIDB4MzkpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhCNCwgMHgzQiwgMHgwNSwgMHg5QSwgMHhBOCwgMHhBQSwgMHg2OSwgMHhCMiksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDE5MnIxX1RfNV9YW10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDZELCAweEQ5LCAweEQxLCAweDRELCAweDRBLCAweDZFLCAweDk2LCAweDFFKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MTcsIDB4NjYsIDB4MzIsIDB4MzksIDB4QzYsIDB4NTcsIDB4N0QsIDB4RTYpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg5MiwgMHhBMCwgMHgzNiwgMHhDMiwgMHg0NSwgMHhGOSwgMHgwMCwgMHg2MiksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDE5MnIxX1RfNV9ZW10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEI0LCAweEVGLCAweDU5LCAweDQ2LCAweERDLCAweDYwLCAweEQ5LCAweDhGKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MjQsIDB4QjAsIDB4RTksIDB4NDEsIDB4QTQsIDB4ODcsIDB4NzYsIDB4ODkpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgxMywgMHhENCwgMHgwRSwgMHhCMiwgMHhGQSwgMHgxNiwgMHg1NiwgMHhEQyksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDE5MnIxX1RfNl9YW10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDBBLCAweDYyLCAweEQyLCAweEIxLCAweDM0LCAweEIyLCAweEYxLCAweDA2KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QjIsIDB4RUQsIDB4NTUsIDB4QzUsIDB4NDcsIDB4QjUsIDB4MDcsIDB4MTUpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgxNywgMHhGNiwgMHgyRiwgMHg5NCwgMHhDMywgMHhERCwgMHg1NCwgMHgyRiksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDE5MnIxX1RfNl9ZW10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEZELCAweEE2LCAweEQ0LCAweDhDLCAweEE5LCAweENFLCAweDRELCAweDJFKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QjksIDB4NEIsIDB4NDYsIDB4Q0MsIDB4QjIsIDB4NTUsIDB4QzgsIDB4QjIpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgzQSwgMHhBRSwgMHgzMSwgMHhFRCwgMHg4OSwgMHg2NSwgMHg1OSwgMHg1NSksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDE5MnIxX1RfN19YW10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweENDLCAweDBBLCAweEQxLCAweDFBLCAweEM1LCAweEY2LCAweEVBLCAweDQzKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MEMsIDB4RkMsIDB4MEMsIDB4MUEsIDB4RkIsIDB4QTAsIDB4QzgsIDB4NzApLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhFQSwgMHhGRCwgMHg1MywgMHg2RiwgMHg2RCwgMHhCRiwgMHhCQSwgMHhBRiksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDE5MnIxX1RfN19ZW10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDJELCAweEIwLCAweDdELCAweDgzLCAweDk2LCAweEUzLCAweENCLCAweDlEKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NkYsIDB4NkUsIDB4NTUsIDB4MkMsIDB4MjAsIDB4NTMsIDB4MkYsIDB4NDYpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhBNiwgMHg2NiwgMHgwMCwgMHgxNywgMHgwOCwgMHhGRSwgMHhBQywgMHgzMSksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDE5MnIxX1RfOF9YW10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDA5LCAweDEyLCAweDk3LCAweDNBLCAweEM3LCAweDU3LCAweDQ1LCAweENEKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MzgsIDB4MjUsIDB4OTksIDB4MDAsIDB4RjYsIDB4OTcsIDB4QjQsIDB4NjQpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg5QiwgMHg3NCwgMHhFNiwgMHhFNiwgMHhBMywgMHhERiwgMHg5QywgMHhDQyksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDE5MnIxX1RfOF9ZW10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDMyLCAweEY0LCAweDc2LCAweEQ1LCAweDVGLCAweDJBLCAweEZELCAweDg1KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NjIsIDB4ODAsIDB4N0UsIDB4M0UsIDB4RTUsIDB4RTgsIDB4RDYsIDB4NjMpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhFMiwgMHhBRCwgMHgxRSwgMHg3MCwgMHg3OSwgMHgzRSwgMHgzRCwgMHg4MyksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDE5MnIxX1RfOV9YW10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDhFLCAweDE1LCAweEJCLCAweEIzLCAweDQyLCAweDZBLCAweEExLCAweDdDKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4OUIsIDB4NTgsIDB4Q0IsIDB4NDMsIDB4MjUsIDB4MDAsIDB4MTQsIDB4NjgpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgwNiwgMHg0RSwgMHg5MywgMHgxMSwgMHhFMCwgMHgzMiwgMHg1NCwgMHg5OCksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDE5MnIxX1RfOV9ZW10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEE3LCAweDUyLCAweEEyLCAweEI0LCAweDU3LCAweDMyLCAweEI5LCAweDExKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4N0QsIDB4NDMsIDB4QTEsIDB4QjEsIDB4RkIsIDB4MDEsIDB4RTEsIDB4RTcpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhBNiwgMHhGQiwgMHg1QSwgMHgxMSwgMHhCOCwgMHhDMiwgMHgwMywgMHhFNSksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDE5MnIxX1RfMTBfWFtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgxQywgMHgyQiwgMHg3MSwgMHgyNiwgMHg0RSwgMHg3QywgMHhDNSwgMHgzMiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDFGLCAweEY1LCAweEQzLCAweEE4LCAweEU0LCAweDk1LCAweDQ4LCAweDY1KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NTUsIDB4QUUsIDB4RDksIDB4NUQsIDB4OUYsIDB4NkEsIDB4MjIsIDB4QUQpLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AxOTJyMV9UXzEwX1lbXSA9IHsKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RDksIDB4Q0MsIDB4QTMsIDB4NEQsIDB4QTAsIDB4MUMsIDB4MzQsIDB4RUYpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhBMywgMHgzQywgMHg2MiwgMHhGOCwgMHg1RSwgMHhBNiwgMHg1OCwgMHg3RCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDZELCAweDZFLCAweDY2LCAweDhBLCAweDNELCAweDE3LCAweEZGLCAweDBGKSwKLX07Ci1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMTkycjFfVF8xMV9YW10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEY3LCAweENELCAweEE4LCAweERELCAweEQxLCAweDIwLCAweDVDLCAweEVBKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QkYsIDB4RkUsIDB4MTcsIDB4RTIsIDB4Q0YsIDB4RUEsIDB4NjMsIDB4REUpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg3NCwgMHg1MSwgMHhDOSwgMHgxNiwgMHhERSwgMHhCNCwgMHhCMiwgMHhERCksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDE5MnIxX1RfMTFfWVtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg1OSwgMHhCRSwgMHgxMiwgMHhENywgMHhBMywgMHgwQSwgMHg1MCwgMHgzMyksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDUzLCAweDg3LCAweEM1LCAweDhBLCAweDc2LCAweDU3LCAweDA3LCAweDYwKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RTUsIDB4MUYsIDB4QzYsIDB4MUIsIDB4NjYsIDB4QzQsIDB4M0QsIDB4OEEpLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AxOTJyMV9UXzEyX1hbXSA9IHsKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MjgsIDB4QTQsIDB4ODUsIDB4MTMsIDB4OEYsIDB4QTcsIDB4MzUsIDB4MTkpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg1OCwgMHgwRCwgMHhGRCwgMHhGRiwgMHgxQiwgMHhEMSwgMHhENiwgMHhFRiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEJBLCAweDdBLCAweEQwLCAweEMzLCAweEI0LCAweEVGLCAweDM5LCAweDY2KSwKLX07Ci1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMTkycjFfVF8xMl9ZW10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDNBLCAweEZFLCAweEE1LCAweDlDLCAweDM0LCAweDMwLCAweDQ5LCAweDQwKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4REUsIDB4QzUsIDB4MzksIDB4MjYsIDB4MDYsIDB4RTMsIDB4MDEsIDB4MTcpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhFMiwgMHgyQiwgMHg2NiwgMHhGQywgMHg5NSwgMHg1RiwgMHgzNSwgMHhGNyksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDE5MnIxX1RfMTNfWFtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg1OCwgMHhDRiwgMHg1NCwgMHg2MywgMHg5OSwgMHg1NywgMHgwNSwgMHg0NSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDcxLCAweDZGLCAweDAwLCAweDVGLCAweDY1LCAweDA4LCAweDQ3LCAweDk4KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NjIsIDB4MkEsIDB4OTAsIDB4NkQsIDB4NjcsIDB4QzYsIDB4QkMsIDB4NDUpLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AxOTJyMV9UXzEzX1lbXSA9IHsKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4OEEsIDB4NEQsIDB4ODgsIDB4MEEsIDB4MzUsIDB4OUUsIDB4MzMsIDB4OUMpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg3QywgMHgxNywgMHgwQywgMHhGOCwgMHhFMSwgMHg3QSwgMHg0OSwgMHgwMiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEE0LCAweDQ0LCAweDA2LCAweDhGLCAweDBCLCAweDcwLCAweDJGLCAweDcxKSwKLX07Ci1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMTkycjFfVF8xNF9YW10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDg1LCAweDRCLCAweENCLCAweEY5LCAweDhFLCAweDZBLCAweERBLCAweDFCKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MjksIDB4NDMsIDB4QTEsIDB4M0YsIDB4Q0UsIDB4MTcsIDB4RDIsIDB4MzIpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg1RCwgMHgwRCwgMHhEMiwgMHg2QywgMHg4MiwgMHgzNywgMHhFNSwgMHhGQyksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDE5MnIxX1RfMTRfWVtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg0QSwgMHgzQywgMHhGNCwgMHg5MiwgMHhCNCwgMHg4QSwgMHg5NSwgMHg4NSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDg1LCAweDk2LCAweEYxLCAweDBBLCAweDM0LCAweDJGLCAweDc0LCAweDdFKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4N0IsIDB4QTEsIDB4QUEsIDB4QkEsIDB4ODYsIDB4NzcsIDB4NEYsIDB4QTIpLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AxOTJyMV9UXzE1X1hbXSA9IHsKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RTUsIDB4N0YsIDB4RUYsIDB4NjAsIDB4NTAsIDB4ODAsIDB4RDcsIDB4RDQpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgzMSwgMHhBQywgMHhDOSwgMHhGRSwgMHhFQywgMHgwQSwgMHgxQSwgMHg5RiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDZCLCAweDJGLCAweEJFLCAweDkxLCAweEQ3LCAweEI3LCAweDM4LCAweDQ4KSwKLX07Ci1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMTkycjFfVF8xNV9ZW10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEIxLCAweEFFLCAweDg1LCAweDk4LCAweEZFLCAweDA1LCAweDdGLCAweDlGKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4OTEsIDB4QkUsIDB4RkQsIDB4MTEsIDB4MzEsIDB4M0QsIDB4MTQsIDB4MTMpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg1OSwgMHg3NSwgMHhFOCwgMHgzMCwgMHgwMSwgMHhDQiwgMHg5QiwgMHgxQyksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfZWNwX3BvaW50IHNlY3AxOTJyMV9UWzE2XSA9IHsKLSAgICBFQ1BfUE9JTlRfSU5JVF9YWV9aMShzZWNwMTkycjFfVF8wX1gsIHNlY3AxOTJyMV9UXzBfWSksCi0gICAgRUNQX1BPSU5UX0lOSVRfWFlfWjAoc2VjcDE5MnIxX1RfMV9YLCBzZWNwMTkycjFfVF8xX1kpLAotICAgIEVDUF9QT0lOVF9JTklUX1hZX1owKHNlY3AxOTJyMV9UXzJfWCwgc2VjcDE5MnIxX1RfMl9ZKSwKLSAgICBFQ1BfUE9JTlRfSU5JVF9YWV9aMChzZWNwMTkycjFfVF8zX1gsIHNlY3AxOTJyMV9UXzNfWSksCi0gICAgRUNQX1BPSU5UX0lOSVRfWFlfWjAoc2VjcDE5MnIxX1RfNF9YLCBzZWNwMTkycjFfVF80X1kpLAotICAgIEVDUF9QT0lOVF9JTklUX1hZX1owKHNlY3AxOTJyMV9UXzVfWCwgc2VjcDE5MnIxX1RfNV9ZKSwKLSAgICBFQ1BfUE9JTlRfSU5JVF9YWV9aMChzZWNwMTkycjFfVF82X1gsIHNlY3AxOTJyMV9UXzZfWSksCi0gICAgRUNQX1BPSU5UX0lOSVRfWFlfWjAoc2VjcDE5MnIxX1RfN19YLCBzZWNwMTkycjFfVF83X1kpLAotICAgIEVDUF9QT0lOVF9JTklUX1hZX1owKHNlY3AxOTJyMV9UXzhfWCwgc2VjcDE5MnIxX1RfOF9ZKSwKLSAgICBFQ1BfUE9JTlRfSU5JVF9YWV9aMChzZWNwMTkycjFfVF85X1gsIHNlY3AxOTJyMV9UXzlfWSksCi0gICAgRUNQX1BPSU5UX0lOSVRfWFlfWjAoc2VjcDE5MnIxX1RfMTBfWCwgc2VjcDE5MnIxX1RfMTBfWSksCi0gICAgRUNQX1BPSU5UX0lOSVRfWFlfWjAoc2VjcDE5MnIxX1RfMTFfWCwgc2VjcDE5MnIxX1RfMTFfWSksCi0gICAgRUNQX1BPSU5UX0lOSVRfWFlfWjAoc2VjcDE5MnIxX1RfMTJfWCwgc2VjcDE5MnIxX1RfMTJfWSksCi0gICAgRUNQX1BPSU5UX0lOSVRfWFlfWjAoc2VjcDE5MnIxX1RfMTNfWCwgc2VjcDE5MnIxX1RfMTNfWSksCi0gICAgRUNQX1BPSU5UX0lOSVRfWFlfWjAoc2VjcDE5MnIxX1RfMTRfWCwgc2VjcDE5MnIxX1RfMTRfWSksCi0gICAgRUNQX1BPSU5UX0lOSVRfWFlfWjAoc2VjcDE5MnIxX1RfMTVfWCwgc2VjcDE5MnIxX1RfMTVfWSksCi19OwotI2Vsc2UKLSNkZWZpbmUgc2VjcDE5MnIxX1QgTlVMTAotI2VuZGlmCi0jZW5kaWYgLyogTUJFRFRMU19FQ1BfRFBfU0VDUDE5MlIxX0VOQUJMRUQgKi8KLQotLyoKLSAqIERvbWFpbiBwYXJhbWV0ZXJzIGZvciBzZWNwMjI0cjEKLSAqLwotI2lmIGRlZmluZWQoTUJFRFRMU19FQ1BfRFBfU0VDUDIyNFIxX0VOQUJMRUQpCi1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMjI0cjFfcFtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgwMSwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDAwLCAweDAwLCAweDAwLCAweDAwLCAweEZGLCAweEZGLCAweEZGLCAweEZGKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RkYsIDB4RkYsIDB4RkYsIDB4RkYsIDB4RkYsIDB4RkYsIDB4RkYsIDB4RkYpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDIyNHIxX2JbXSA9IHsKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QjQsIDB4RkYsIDB4NTUsIDB4MjMsIDB4NDMsIDB4MzksIDB4MEIsIDB4MjcpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhCQSwgMHhEOCwgMHhCRiwgMHhENywgMHhCNywgMHhCMCwgMHg0NCwgMHg1MCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDU2LCAweDMyLCAweDQxLCAweEY1LCAweEFCLCAweEIzLCAweDA0LCAweDBDKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF80KDB4ODUsIDB4MEEsIDB4MDUsIDB4QjQpLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AyMjRyMV9neFtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgyMSwgMHgxRCwgMHg1QywgMHgxMSwgMHhENiwgMHg4MCwgMHgzMiwgMHgzNCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDIyLCAweDExLCAweEMyLCAweDU2LCAweEQzLCAweEMxLCAweDAzLCAweDRBKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QjksIDB4OTAsIDB4MTMsIDB4MzIsIDB4N0YsIDB4QkYsIDB4QjQsIDB4NkIpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzQoMHhCRCwgMHgwQywgMHgwRSwgMHhCNyksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDIyNHIxX2d5W10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDM0LCAweDdFLCAweDAwLCAweDg1LCAweDk5LCAweDgxLCAweEQ1LCAweDQ0KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NjQsIDB4NDcsIDB4MDcsIDB4NUEsIDB4QTAsIDB4NzUsIDB4NDMsIDB4Q0QpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhFNiwgMHhERiwgMHgyMiwgMHg0QywgMHhGQiwgMHgyMywgMHhGNywgMHhCNSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfNCgweDg4LCAweDYzLCAweDM3LCAweEJEKSwKLX07Ci1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMjI0cjFfbltdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgzRCwgMHgyQSwgMHg1QywgMHg1QywgMHg0NSwgMHgyOSwgMHhERCwgMHgxMyksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDNFLCAweEYwLCAweEI4LCAweEUwLCAweEEyLCAweDE2LCAweEZGLCAweEZGKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RkYsIDB4RkYsIDB4RkYsIDB4RkYsIDB4RkYsIDB4RkYsIDB4RkYsIDB4RkYpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzQoMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiksCi19OwotI2lmIE1CRURUTFNfRUNQX0ZJWEVEX1BPSU5UX09QVElNID09IDEKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AyMjRyMV9UXzBfWFtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgyMSwgMHgxRCwgMHg1QywgMHgxMSwgMHhENiwgMHg4MCwgMHgzMiwgMHgzNCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDIyLCAweDExLCAweEMyLCAweDU2LCAweEQzLCAweEMxLCAweDAzLCAweDRBKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QjksIDB4OTAsIDB4MTMsIDB4MzIsIDB4N0YsIDB4QkYsIDB4QjQsIDB4NkIpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhCRCwgMHgwQywgMHgwRSwgMHhCNywgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDIyNHIxX1RfMF9ZW10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDM0LCAweDdFLCAweDAwLCAweDg1LCAweDk5LCAweDgxLCAweEQ1LCAweDQ0KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NjQsIDB4NDcsIDB4MDcsIDB4NUEsIDB4QTAsIDB4NzUsIDB4NDMsIDB4Q0QpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhFNiwgMHhERiwgMHgyMiwgMHg0QywgMHhGQiwgMHgyMywgMHhGNywgMHhCNSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDg4LCAweDYzLCAweDM3LCAweEJELCAweDAwLCAweDAwLCAweDAwLCAweDAwKSwKLX07Ci1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMjI0cjFfVF8xX1hbXSA9IHsKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RTAsIDB4RjksIDB4QjgsIDB4RDAsIDB4M0QsIDB4RDIsIDB4RDMsIDB4RkEpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgxRSwgMHhGRCwgMHg5OSwgMHgyNiwgMHgxOSwgMHhGRSwgMHgxMywgMHg2RSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDFDLCAweDBFLCAweDRDLCAweDQ4LCAweDdDLCAweEEyLCAweDE3LCAweDAxKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4M0QsIDB4QTMsIDB4MTMsIDB4NTcsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDApLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AyMjRyMV9UXzFfWVtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg5RiwgMHgxNiwgMHg1QywgMHg4RiwgMHhBQSwgMHhFRCwgMHgwRiwgMHg1OCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEJGLCAweEM1LCAweDQzLCAweDM0LCAweDkzLCAweDA1LCAweDJBLCAweDRDKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RTQsIDB4RTMsIDB4NkMsIDB4Q0EsIDB4QzYsIDB4MTQsIDB4QzIsIDB4MjUpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhEMywgMHg0MywgMHg2QywgMHhENywgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDIyNHIxX1RfMl9YW10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEMzLCAweDVBLCAweDk4LCAweDFFLCAweEM4LCAweEE1LCAweDQyLCAweEEzKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4OTgsIDB4NDksIDB4NTYsIDB4NzgsIDB4RjgsIDB4RUYsIDB4RUQsIDB4NjUpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgxQiwgMHhCQiwgMHg2NCwgMHhCNiwgMHg0QywgMHg1NCwgMHg1RiwgMHhEMSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDJGLCAweDBDLCAweDMzLCAweENDLCAweDAwLCAweDAwLCAweDAwLCAweDAwKSwKLX07Ci1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMjI0cjFfVF8yX1lbXSA9IHsKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RkEsIDB4NzksIDB4Q0IsIDB4MkUsIDB4MDgsIDB4RkYsIDB4RDgsIDB4RTYpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgyRSwgMHgxRiwgMHhENCwgMHhENywgMHg1NywgMHhFOSwgMHgzOSwgMHg0NSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEQ4LCAweEQ2LCAweDNCLCAweDBBLCAweDFDLCAweDg3LCAweEI3LCAweDZBKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RUIsIDB4MzAsIDB4RDgsIDB4MDUsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDApLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AyMjRyMV9UXzNfWFtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhBRCwgMHg3OSwgMHg3NCwgMHg5QSwgMHhFNiwgMHhCQiwgMHhDMiwgMHhDMiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEI0LCAweDVCLCAweEE2LCAweDY3LCAweEMxLCAweDkxLCAweEU3LCAweDY0KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RjAsIDB4REYsIDB4MzgsIDB4ODIsIDB4MTksIDB4MkMsIDB4NEMsIDB4Q0EpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhEMSwgMHgyRSwgMHgzOSwgMHhDNSwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDIyNHIxX1RfM19ZW10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDk5LCAweDM2LCAweDc4LCAweDRFLCAweEFFLCAweDVCLCAweDAyLCAweDc2KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MTQsIDB4RjYsIDB4OEIsIDB4RjgsIDB4RjQsIDB4OTIsIDB4NkIsIDB4NDIpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhCQSwgMHg0RCwgMHg3MSwgMHgzNSwgMHhFNywgMHgwQywgMHgyQywgMHg5OCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDlCLCAweEE1LCAweDFGLCAweEFFLCAweDAwLCAweDAwLCAweDAwLCAweDAwKSwKLX07Ci1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMjI0cjFfVF80X1hbXSA9IHsKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QUYsIDB4MUMsIDB4NEIsIDB4REYsIDB4NUIsIDB4RjIsIDB4NTEsIDB4QjcpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgwNSwgMHg3NCwgMHhCMSwgMHg1QSwgMHhDNiwgMHgwRiwgMHgwRSwgMHg2MSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEU4LCAweDI0LCAweDA5LCAweDYyLCAweEFGLCAweEZDLCAweERCLCAweDQ1KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NDMsIDB4RTEsIDB4ODAsIDB4NTUsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDApLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AyMjRyMV9UXzRfWVtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgzQywgMHg4MiwgMHhGRSwgMHhBRCwgMHhDMywgMHhFNSwgMHhDRiwgMHhEOCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDI0LCAweEEyLCAweDYyLCAweDE3LCAweDc2LCAweEYwLCAweDVBLCAweEZBKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4M0UsIDB4QjgsIDB4RTUsIDB4QUMsIDB4QjcsIDB4NjYsIDB4MzgsIDB4QUEpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg5NywgMHhGRCwgMHg4NiwgMHgwNSwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDIyNHIxX1RfNV9YW10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDU5LCAweEQzLCAweDBDLCAweDNDLCAweEQxLCAweDY2LCAweEIwLCAweEYxKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QkMsIDB4NTksIDB4QjQsIDB4OEQsIDB4OTAsIDB4MTAsIDB4QjcsIDB4QTIpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg5NiwgMHg0NywgMHg5QiwgMHhFNiwgMHg1NSwgMHg4QSwgMHhFNCwgMHhFRSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEIxLCAweDQ5LCAweERCLCAweDc4LCAweDAwLCAweDAwLCAweDAwLCAweDAwKSwKLX07Ci1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMjI0cjFfVF81X1lbXSA9IHsKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NDEsIDB4OTcsIDB4RUQsIDB4REUsIDB4RkYsIDB4QjMsIDB4REYsIDB4NDgpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgxMCwgMHhCOSwgMHg4MywgMHhCNywgMHhFQiwgMHhCRSwgMHg0MCwgMHg4RCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEFGLCAweEQzLCAweEQzLCAweENELCAweDBFLCAweDgyLCAweDc5LCAweDNEKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4OUIsIDB4ODMsIDB4MUIsIDB4RjAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDApLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AyMjRyMV9UXzZfWFtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgzRiwgMHgyMiwgMHhCQiwgMHg1NCwgMHhEMywgMHgzMSwgMHg1NiwgMHhGQyksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDgwLCAweDM2LCAweEU1LCAweEUwLCAweDg5LCAweDk2LCAweDhFLCAweDcxKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RTEsIDB4RUYsIDB4MEEsIDB4RUQsIDB4RDAsIDB4MTEsIDB4NEEsIDB4RkYpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgxNSwgMHgwMCwgMHg1NywgMHgyNywgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDIyNHIxX1RfNl9ZW10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDEzLCAweENBLCAweDNELCAweEY3LCAweDY0LCAweDlCLCAweDZFLCAweDg1KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4OTAsIDB4RTMsIDB4NzAsIDB4NkIsIDB4NDEsIDB4RDcsIDB4RUQsIDB4OEYpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgwMiwgMHg0NCwgMHg0NCwgMHg4MCwgMHhDRSwgMHgxMywgMHgzNywgMHg5MiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDk0LCAweDczLCAweDgwLCAweDc5LCAweDAwLCAweDAwLCAweDAwLCAweDAwKSwKLX07Ci1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMjI0cjFfVF83X1hbXSA9IHsKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QjcsIDB4NEQsIDB4NzAsIDB4N0QsIDB4MzEsIDB4MEYsIDB4MUMsIDB4NTgpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg2RCwgMHgzNSwgMHg4OCwgMHg0NywgMHhDNCwgMHgyNCwgMHg3OCwgMHgzRiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEJBLCAweEYwLCAweENELCAweDkxLCAweDgxLCAweEIzLCAweERFLCAweEI2KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MDQsIDB4Q0UsIDB4QzYsIDB4RjcsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDApLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AyMjRyMV9UXzdfWVtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhFOSwgMHg5QywgMHgyRCwgMHhFOCwgMHhEMiwgMHgwMCwgMHg4RiwgMHgxMCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEQ1LCAweDVFLCAweDdDLCAweDBFLCAweDBDLCAweDZFLCAweDU4LCAweDAyKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QUUsIDB4ODEsIDB4MjEsIDB4Q0UsIDB4NDMsIDB4RjQsIDB4MjQsIDB4M0QpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg5RSwgMHhCQywgMHhGMCwgMHhGNCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDIyNHIxX1RfOF9YW10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEQ2LCAweDEwLCAweEMyLCAweDc0LCAweDRBLCAweDhGLCAweDhBLCAweENGKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4ODksIDB4NjcsIDB4RjQsIDB4MkIsIDB4MzgsIDB4MkIsIDB4MzUsIDB4MTcpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhGNSwgMHhFNywgMHgwQywgMHhBOSwgMHhGQSwgMHg3NywgMHg1QywgMHhCRCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEUwLCAweDMzLCAweDE5LCAweDJCLCAweDAwLCAweDAwLCAweDAwLCAweDAwKSwKLX07Ci1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMjI0cjFfVF84X1lbXSA9IHsKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RTcsIDB4M0UsIDB4OTYsIDB4MjIsIDB4NTMsIDB4RTEsIDB4RTksIDB4QkUpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhFMCwgMHgxMywgMHhCQywgMHhBMSwgMHgxNiwgMHhFQywgMHgwMSwgMHgxQSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDlBLCAweDAwLCAweEM5LCAweDdBLCAweEMzLCAweDczLCAweEE1LCAweDQ1KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RTEsIDB4RjQsIDB4NUUsIDB4QzEsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDApLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AyMjRyMV9UXzlfWFtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhBOCwgMHg5NSwgMHhENiwgMHhEOSwgMHgzMiwgMHgzMCwgMHgyQiwgMHhEMCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDc3LCAweDQyLCAweDA5LCAweDA1LCAweDYxLCAweDJBLCAweDdFLCAweDgyKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NzMsIDB4ODQsIDB4QTIsIDB4MDUsIDB4ODgsIDB4NjQsIDB4NjUsIDB4RjkpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgwMywgMHgyRCwgMHg5MCwgMHhCMywgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDIyNHIxX1RfOV9ZW10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDBBLCAweEU3LCAweDJFLCAweDg1LCAweDU1LCAweDgwLCAweDdDLCAweDc5KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MEYsIDB4QzEsIDB4QUMsIDB4NzgsIDB4QjQsIDB4QUYsIDB4RkIsIDB4NkUpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhEMywgMHhDMywgMHgyOCwgMHg4RSwgMHg3OSwgMHgxOCwgMHgxRiwgMHg1OCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDM0LCAweDQ2LCAweENGLCAweDQ5LCAweDAwLCAweDAwLCAweDAwLCAweDAwKSwKLX07Ci1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMjI0cjFfVF8xMF9YW10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDYzLCAweDVGLCAweEE4LCAweDZDLCAweDQ2LCAweDgzLCAweDQzLCAweEZBKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RkEsIDB4QTksIDB4OTMsIDB4MTEsIDB4QjYsIDB4MDcsIDB4NTcsIDB4NzQpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg3NywgMHgyQSwgMHg5RCwgMHgwMywgMHg4OSwgMHg3RSwgMHhENywgMHgzQyksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDdCLCAweDhDLCAweDYyLCAweENGLCAweDAwLCAweDAwLCAweDAwLCAweDAwKSwKLX07Ci1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMjI0cjFfVF8xMF9ZW10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDQ0LCAweDJDLCAweDEzLCAweDU5LCAweENDLCAweEZBLCAweDg0LCAweDlFKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NTEsIDB4QjksIDB4NDgsIDB4QkMsIDB4NTcsIDB4QzcsIDB4QjMsIDB4N0MpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhGQywgMHgwQSwgMHgzOCwgMHgyNCwgMHgyRSwgMHgzQSwgMHgyOCwgMHgyNSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEJDLCAweDBBLCAweDQzLCAweEI4LCAweDAwLCAweDAwLCAweDAwLCAweDAwKSwKLX07Ci1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMjI0cjFfVF8xMV9YW10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDU5LCAweDI1LCAweEFCLCAweEMxLCAweEVFLCAweDcwLCAweDNDLCAweEUxKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RjMsIDB4REIsIDB4NDUsIDB4MUQsIDB4NEEsIDB4ODAsIDB4NzUsIDB4MzUpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhFOCwgMHgxRiwgMHg0RCwgMHgyRCwgMHg5QSwgMHgwNSwgMHhGNCwgMHhDQiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDZCLCAweDEwLCAweEYwLCAweDVBLCAweDAwLCAweDAwLCAweDAwLCAweDAwKSwKLX07Ci1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMjI0cjFfVF8xMV9ZW10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDM1LCAweDk1LCAweEUxLCAweERDLCAweDE1LCAweDg2LCAweEMzLCAweDdCKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RUMsIDB4REMsIDB4MjcsIDB4RDEsIDB4NTYsIDB4QTEsIDB4MTQsIDB4MEQpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg1OSwgMHgwQiwgMHhENiwgMHg3NywgMHg0RSwgMHg0NCwgMHhBMiwgMHhGOCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDk0LCAweDQyLCAweDcxLCAweDFGLCAweDAwLCAweDAwLCAweDAwLCAweDAwKSwKLX07Ci1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMjI0cjFfVF8xMl9YW10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDMwLCAweDg2LCAweEIyLCAweEIwLCAweEM4LCAweDJGLCAweDdCLCAweEZFKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4OTYsIDB4RUYsIDB4Q0IsIDB4REIsIDB4QkMsIDB4OUUsIDB4M0IsIDB4QzUpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgxQiwgMHgwMywgMHg4NiwgMHhERCwgMHg1QiwgMHhGNSwgMHg4RCwgMHg0NiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDU4LCAweDk1LCAweDc5LCAweEQ2LCAweDAwLCAweDAwLCAweDAwLCAweDAwKSwKLX07Ci1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMjI0cjFfVF8xMl9ZW10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDg0LCAweDMyLCAweDE0LCAweERBLCAweDlCLCAweDRGLCAweDA3LCAweDM5KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QjUsIDB4M0UsIDB4RkIsIDB4MDYsIDB4RUUsIDB4QTcsIDB4NDAsIDB4NDApLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg3NiwgMHgxRiwgMHhERiwgMHg3MSwgMHg2MSwgMHhGRCwgMHg4QiwgMHhCRSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDgwLCAweDhCLCAweEFCLCAweDhCLCAweDAwLCAweDAwLCAweDAwLCAweDAwKSwKLX07Ci1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMjI0cjFfVF8xM19YW10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEM5LCAweDM0LCAweEIzLCAweEI0LCAweEJDLCAweDlGLCAweEIwLCAweDVFKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RTYsIDB4NTgsIDB4NDgsIDB4QTgsIDB4NzcsIDB4QkIsIDB4MTMsIDB4MkYpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg0MSwgMHhDNiwgMHhGNywgMHgzNCwgMHhDQywgMHg4OSwgMHgyMSwgMHgwQSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweENBLCAweDMzLCAweERELCAweDFGLCAweDAwLCAweDAwLCAweDAwLCAweDAwKSwKLX07Ci1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMjI0cjFfVF8xM19ZW10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweENDLCAweDgxLCAweEVGLCAweEE0LCAweEYyLCAweDEwLCAweDBCLCAweENEKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4ODMsIDB4RjcsIDB4NkUsIDB4NzIsIDB4NEEsIDB4REYsIDB4REQsIDB4RTgpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg2NywgMHgyMywgMHgwQSwgMHg1MywgMHgwMywgMHgxNiwgMHg2MiwgMHhEMiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDBCLCAweDc2LCAweEZELCAweDNDLCAweDAwLCAweDAwLCAweDAwLCAweDAwKSwKLX07Ci1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMjI0cjFfVF8xNF9YW10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweENCLCAweDE0LCAweEExLCAweEZBLCAweEEwLCAweDE4LCAweEJFLCAweDA3KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MDMsIDB4MkEsIDB4RTEsIDB4RDcsIDB4QjAsIDB4NkMsIDB4QTAsIDB4REUpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhEMSwgMHhDMCwgMHhCMCwgMHhDNiwgMHg2MywgMHgyNCwgMHhDRCwgMHg0RSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDMzLCAweDM4LCAweDJDLCAweEIxLCAweDAwLCAweDAwLCAweDAwLCAweDAwKSwKLX07Ci1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMjI0cjFfVF8xNF9ZW10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEVFLCAweENELCAweDdELCAweDIwLCAweDBDLCAweEZFLCAweEFDLCAweEMzKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MDksIDB4OTcsIDB4OUYsIDB4QTIsIDB4QjYsIDB4NDUsIDB4RjcsIDB4N0IpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhDQSwgMHg5OSwgMHhGMywgMHhEMiwgMHgyMCwgMHgwMiwgMHhFQiwgMHgwNCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDQzLCAweDE4LCAweDVCLCAweDdCLCAweDAwLCAweDAwLCAweDAwLCAweDAwKSwKLX07Ci1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMjI0cjFfVF8xNV9YW10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDJCLCAweERELCAweDc3LCAweDkxLCAweDYwLCAweEVBLCAweEZELCAweEQzKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4N0QsIDB4RDMsIDB4QjUsIDB4RDYsIDB4OTAsIDB4MTcsIDB4MEUsIDB4MUEpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgwMCwgMHhGNCwgMHgyOCwgMHhDMSwgMHhGMiwgMHg1MywgMHhGNiwgMHg2MyksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDQ5LCAweDU4LCAweERDLCAweDYxLCAweDAwLCAweDAwLCAweDAwLCAweDAwKSwKLX07Ci1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMjI0cjFfVF8xNV9ZW10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEE4LCAweDIwLCAweDAxLCAweEZCLCAweEYxLCAweEJELCAweDVGLCAweDQ1KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RDAsIDB4N0YsIDB4MDYsIDB4REEsIDB4MTEsIDB4Q0IsIDB4QkEsIDB4QTYpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhBNywgMHg0MSwgMHgwMCwgMHhBNCwgMHgxQiwgMHgzMCwgMHgzMywgMHg3OSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEY0LCAweEZGLCAweDI3LCAweENBLCAweDAwLCAweDAwLCAweDAwLCAweDAwKSwKLX07Ci1zdGF0aWMgY29uc3QgbWJlZHRsc19lY3BfcG9pbnQgc2VjcDIyNHIxX1RbMTZdID0gewotICAgIEVDUF9QT0lOVF9JTklUX1hZX1oxKHNlY3AyMjRyMV9UXzBfWCwgc2VjcDIyNHIxX1RfMF9ZKSwKLSAgICBFQ1BfUE9JTlRfSU5JVF9YWV9aMChzZWNwMjI0cjFfVF8xX1gsIHNlY3AyMjRyMV9UXzFfWSksCi0gICAgRUNQX1BPSU5UX0lOSVRfWFlfWjAoc2VjcDIyNHIxX1RfMl9YLCBzZWNwMjI0cjFfVF8yX1kpLAotICAgIEVDUF9QT0lOVF9JTklUX1hZX1owKHNlY3AyMjRyMV9UXzNfWCwgc2VjcDIyNHIxX1RfM19ZKSwKLSAgICBFQ1BfUE9JTlRfSU5JVF9YWV9aMChzZWNwMjI0cjFfVF80X1gsIHNlY3AyMjRyMV9UXzRfWSksCi0gICAgRUNQX1BPSU5UX0lOSVRfWFlfWjAoc2VjcDIyNHIxX1RfNV9YLCBzZWNwMjI0cjFfVF81X1kpLAotICAgIEVDUF9QT0lOVF9JTklUX1hZX1owKHNlY3AyMjRyMV9UXzZfWCwgc2VjcDIyNHIxX1RfNl9ZKSwKLSAgICBFQ1BfUE9JTlRfSU5JVF9YWV9aMChzZWNwMjI0cjFfVF83X1gsIHNlY3AyMjRyMV9UXzdfWSksCi0gICAgRUNQX1BPSU5UX0lOSVRfWFlfWjAoc2VjcDIyNHIxX1RfOF9YLCBzZWNwMjI0cjFfVF84X1kpLAotICAgIEVDUF9QT0lOVF9JTklUX1hZX1owKHNlY3AyMjRyMV9UXzlfWCwgc2VjcDIyNHIxX1RfOV9ZKSwKLSAgICBFQ1BfUE9JTlRfSU5JVF9YWV9aMChzZWNwMjI0cjFfVF8xMF9YLCBzZWNwMjI0cjFfVF8xMF9ZKSwKLSAgICBFQ1BfUE9JTlRfSU5JVF9YWV9aMChzZWNwMjI0cjFfVF8xMV9YLCBzZWNwMjI0cjFfVF8xMV9ZKSwKLSAgICBFQ1BfUE9JTlRfSU5JVF9YWV9aMChzZWNwMjI0cjFfVF8xMl9YLCBzZWNwMjI0cjFfVF8xMl9ZKSwKLSAgICBFQ1BfUE9JTlRfSU5JVF9YWV9aMChzZWNwMjI0cjFfVF8xM19YLCBzZWNwMjI0cjFfVF8xM19ZKSwKLSAgICBFQ1BfUE9JTlRfSU5JVF9YWV9aMChzZWNwMjI0cjFfVF8xNF9YLCBzZWNwMjI0cjFfVF8xNF9ZKSwKLSAgICBFQ1BfUE9JTlRfSU5JVF9YWV9aMChzZWNwMjI0cjFfVF8xNV9YLCBzZWNwMjI0cjFfVF8xNV9ZKSwKLX07Ci0jZWxzZQotI2RlZmluZSBzZWNwMjI0cjFfVCBOVUxMCi0jZW5kaWYKLSNlbmRpZiAvKiBNQkVEVExTX0VDUF9EUF9TRUNQMjI0UjFfRU5BQkxFRCAqLwotCi0vKgotICogRG9tYWluIHBhcmFtZXRlcnMgZm9yIHNlY3AyNTZyMQotICovCi0jaWYgZGVmaW5lZChNQkVEVExTX0VDUF9EUF9TRUNQMjU2UjFfRU5BQkxFRCkKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AyNTZyMV9wW10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEZGLCAweEZGLCAweEZGLCAweEZGLCAweEZGLCAweEZGLCAweEZGLCAweEZGKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RkYsIDB4RkYsIDB4RkYsIDB4RkYsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDApLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDAxLCAweDAwLCAweDAwLCAweDAwLCAweEZGLCAweEZGLCAweEZGLCAweEZGKSwKLX07Ci1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMjU2cjFfYltdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg0QiwgMHg2MCwgMHhEMiwgMHgyNywgMHgzRSwgMHgzQywgMHhDRSwgMHgzQiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEY2LCAweEIwLCAweDUzLCAweENDLCAweEIwLCAweDA2LCAweDFELCAweDY1KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QkMsIDB4ODYsIDB4OTgsIDB4NzYsIDB4NTUsIDB4QkQsIDB4RUIsIDB4QjMpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhFNywgMHg5MywgMHgzQSwgMHhBQSwgMHhEOCwgMHgzNSwgMHhDNiwgMHg1QSksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDI1NnIxX2d4W10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDk2LCAweEMyLCAweDk4LCAweEQ4LCAweDQ1LCAweDM5LCAweEExLCAweEY0KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QTAsIDB4MzMsIDB4RUIsIDB4MkQsIDB4ODEsIDB4N0QsIDB4MDMsIDB4NzcpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhGMiwgMHg0MCwgMHhBNCwgMHg2MywgMHhFNSwgMHhFNiwgMHhCQywgMHhGOCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDQ3LCAweDQyLCAweDJDLCAweEUxLCAweEYyLCAweEQxLCAweDE3LCAweDZCKSwKLX07Ci1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMjU2cjFfZ3lbXSA9IHsKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RjUsIDB4NTEsIDB4QkYsIDB4MzcsIDB4NjgsIDB4NDAsIDB4QjYsIDB4Q0IpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhDRSwgMHg1RSwgMHgzMSwgMHg2QiwgMHg1NywgMHgzMywgMHhDRSwgMHgyQiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDE2LCAweDlFLCAweDBGLCAweDdDLCAweDRBLCAweEVCLCAweEU3LCAweDhFKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4OUIsIDB4N0YsIDB4MUEsIDB4RkUsIDB4RTIsIDB4NDIsIDB4RTMsIDB4NEYpLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AyNTZyMV9uW10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDUxLCAweDI1LCAweDYzLCAweEZDLCAweEMyLCAweENBLCAweEI5LCAweEYzKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4ODQsIDB4OUUsIDB4MTcsIDB4QTcsIDB4QUQsIDB4RkEsIDB4RTYsIDB4QkMpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDAwLCAweDAwLCAweDAwLCAweDAwLCAweEZGLCAweEZGLCAweEZGLCAweEZGKSwKLX07Ci0jaWYgTUJFRFRMU19FQ1BfRklYRURfUE9JTlRfT1BUSU0gPT0gMQotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDI1NnIxX1RfMF9YW10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDk2LCAweEMyLCAweDk4LCAweEQ4LCAweDQ1LCAweDM5LCAweEExLCAweEY0KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QTAsIDB4MzMsIDB4RUIsIDB4MkQsIDB4ODEsIDB4N0QsIDB4MDMsIDB4NzcpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhGMiwgMHg0MCwgMHhBNCwgMHg2MywgMHhFNSwgMHhFNiwgMHhCQywgMHhGOCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDQ3LCAweDQyLCAweDJDLCAweEUxLCAweEYyLCAweEQxLCAweDE3LCAweDZCKSwKLX07Ci1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMjU2cjFfVF8wX1lbXSA9IHsKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RjUsIDB4NTEsIDB4QkYsIDB4MzcsIDB4NjgsIDB4NDAsIDB4QjYsIDB4Q0IpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhDRSwgMHg1RSwgMHgzMSwgMHg2QiwgMHg1NywgMHgzMywgMHhDRSwgMHgyQiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDE2LCAweDlFLCAweDBGLCAweDdDLCAweDRBLCAweEVCLCAweEU3LCAweDhFKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4OUIsIDB4N0YsIDB4MUEsIDB4RkUsIDB4RTIsIDB4NDIsIDB4RTMsIDB4NEYpLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AyNTZyMV9UXzFfWFtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg3MCwgMHhDOCwgMHhCQSwgMHgwNCwgMHhCNywgMHg0QiwgMHhEMiwgMHhGNyksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEFCLCAweEM2LCAweDIzLCAweDNBLCAweEEwLCAweDA5LCAweDNBLCAweDU5KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MUQsIDB4OUQsIDB4NEMsIDB4RjksIDB4NTgsIDB4MjMsIDB4Q0MsIDB4REYpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgwMiwgMHhFRCwgMHg3QiwgMHgyOSwgMHg4NywgMHgwRiwgMHhGQSwgMHgzQyksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDI1NnIxX1RfMV9ZW10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDQwLCAweDY5LCAweEYyLCAweDQwLCAweDBCLCAweEEzLCAweDk4LCAweENFKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QUYsIDB4QTgsIDB4NDgsIDB4MDIsIDB4MEQsIDB4MUMsIDB4MTIsIDB4NjIpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg5QiwgMHhBRiwgMHgwOSwgMHg4MywgMHg4MCwgMHhBQSwgMHg1OCwgMHhBNyksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEM2LCAweDEyLCAweEJFLCAweDcwLCAweDk0LCAweDc2LCAweEUzLCAweEU0KSwKLX07Ci1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMjU2cjFfVF8yX1hbXSA9IHsKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4N0QsIDB4N0QsIDB4RUYsIDB4ODYsIDB4RkYsIDB4RTMsIDB4MzcsIDB4REQpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhEQiwgMHg4NiwgMHg4QiwgMHgwOCwgMHgyNywgMHg3QywgMHhENywgMHhGNiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDkxLCAweDU0LCAweDRDLCAweDI1LCAweDRGLCAweDlBLCAweEZFLCAweDI4KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NUUsIDB4RkQsIDB4RjAsIDB4NkQsIDB4MzcsIDB4MDMsIDB4NjksIDB4RDYpLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AyNTZyMV9UXzJfWVtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg5NiwgMHhENSwgMHhEQSwgMHhBRCwgMHg5MiwgMHg0OSwgMHhGMCwgMHg5RiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEY5LCAweDczLCAweDQzLCAweDlFLCAweEFGLCAweEE3LCAweEQxLCAweEYzKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NjcsIDB4NDEsIDB4MDcsIDB4REYsIDB4NzgsIDB4OTUsIDB4M0UsIDB4QTEpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgyMiwgMHgzRCwgMHhEMSwgMHhFNiwgMHgzQywgMHhBNSwgMHhFMiwgMHgyMCksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDI1NnIxX1RfM19YW10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEJGLCAweDZBLCAweDVELCAweDUyLCAweDM1LCAweEQ3LCAweEJGLCAweEFFKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NUEsIDB4QTIsIDB4QkUsIDB4OTYsIDB4RjQsIDB4RjgsIDB4MDIsIDB4QzMpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhBNCwgMHgyMCwgMHg0OSwgMHg1NCwgMHhFQSwgMHhCMywgMHg4MiwgMHhEQiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDJFLCAweERCLCAweEVBLCAweDAyLCAweEQxLCAweDc1LCAweDFDLCAweDYyKSwKLX07Ci1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMjU2cjFfVF8zX1lbXSA9IHsKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RjAsIDB4ODUsIDB4RjQsIDB4OUUsIDB4NEMsIDB4REMsIDB4MzksIDB4ODkpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg2MywgMHg2RCwgMHhDNCwgMHg1NywgMHhEOCwgMHgwMywgMHg1RCwgMHgyMiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDcwLCAweDdGLCAweDJELCAweDUyLCAweDZGLCAweEM5LCAweERBLCAweDRGKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4OUQsIDB4NjQsIDB4RkEsIDB4QjQsIDB4RkUsIDB4QTQsIDB4QzQsIDB4RDcpLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AyNTZyMV9UXzRfWFtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgyQSwgMHgzNywgMHhCOSwgMHhDMCwgMHhBQSwgMHg1OSwgMHhDNiwgMHg4QiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDNGLCAweDU4LCAweEQ5LCAweEVELCAweDU4LCAweDk5LCAweDY1LCAweEY3KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4ODgsIDB4N0QsIDB4MjYsIDB4OEMsIDB4NEEsIDB4RjksIDB4MDUsIDB4OUYpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg5RCwgMHg3MywgMHg5QSwgMHhDOSwgMHhFNywgMHg0NiwgMHhEQywgMHgwMCksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDI1NnIxX1RfNF9ZW10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEYyLCAweEQwLCAweDU1LCAweERGLCAweDAwLCAweDBBLCAweEY1LCAweDRBKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NkEsIDB4QkYsIDB4NTYsIDB4ODEsIDB4MkQsIDB4MjAsIDB4RUIsIDB4QjUpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgxMSwgMHhDMSwgMHgyOCwgMHg1MiwgMHhBQiwgMHhFMywgMHhEMSwgMHg0MCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDI0LCAweDM0LCAweDc5LCAweDQ1LCAweDU3LCAweEE1LCAweDEyLCAweDAzKSwKLX07Ci1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMjU2cjFfVF81X1hbXSA9IHsKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RUUsIDB4Q0YsIDB4QjgsIDB4N0UsIDB4RjcsIDB4OTIsIDB4OTYsIDB4OEQpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgzRCwgMHgwMSwgMHg4QywgMHgwRCwgMHgyMywgMHhGMiwgMHhFMywgMHgwNSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDU5LCAweDJFLCAweEUzLCAweDg0LCAweDUyLCAweDdBLCAweDM0LCAweDc2KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RTUsIDB4QTEsIDB4QjAsIDB4MTUsIDB4OTAsIDB4RTIsIDB4NTMsIDB4M0MpLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AyNTZyMV9UXzVfWVtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhENCwgMHg5OCwgMHhFNywgMHhGQSwgMHhBNSwgMHg3RCwgMHg4QiwgMHg1MyksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDkxLCAweDM1LCAweEQyLCAweDAwLCAweEQxLCAweDFCLCAweDlGLCAweDFCKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4M0YsIDB4NjksIDB4MDgsIDB4OUEsIDB4NzIsIDB4RjAsIDB4QTksIDB4MTEpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhCMywgMHhGRSwgMHgwRSwgMHgxNCwgMHhEQSwgMHg3QywgMHgwRSwgMHhEMyksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDI1NnIxX1RfNl9YW10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDgzLCAweEY2LCAweEU4LCAweEY4LCAweDg3LCAweEY3LCAweEZDLCAweDZEKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4OTAsIDB4QkUsIDB4N0YsIDB4M0YsIDB4N0EsIDB4MkIsIDB4RDcsIDB4MTMpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhDRiwgMHgzMiwgMHhGMiwgMHgyRCwgMHg5NCwgMHg2RCwgMHg0MiwgMHhGRCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEFELCAweDlBLCAweEUzLCAweDVGLCAweDQyLCAweEJCLCAweDg0LCAweEVEKSwKLX07Ci1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMjU2cjFfVF82X1lbXSA9IHsKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RkMsIDB4OTUsIDB4MjksIDB4NzMsIDB4QTEsIDB4NjcsIDB4M0UsIDB4MDIpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhFMywgMHgzMCwgMHg1NCwgMHgzNSwgMHg4RSwgMHgwQSwgMHhERCwgMHg2NyksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDAzLCAweEQ3LCAweEExLCAweDk3LCAweDYxLCAweDNCLCAweEY4LCAweDBDKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RjIsIDB4MzMsIDB4M0MsIDB4NTgsIDB4NTUsIDB4MzQsIDB4MjMsIDB4QTMpLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AyNTZyMV9UXzdfWFtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg5OSwgMHg1RCwgMHgxNiwgMHg1RiwgMHg3QiwgMHhCQywgMHhCQiwgMHhDRSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDYxLCAweEVFLCAweDRFLCAweDhBLCAweEMxLCAweDUxLCAweENDLCAweDUwKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MUYsIDB4MEQsIDB4NEQsIDB4MUIsIDB4NTMsIDB4MjMsIDB4MUQsIDB4QjMpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhEQSwgMHgyQSwgMHgzOCwgMHg2NiwgMHg1MiwgMHg4NCwgMHhFMSwgMHg5NSksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDI1NnIxX1RfN19ZW10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDVCLCAweDlCLCAweDgzLCAweDBBLCAweDgxLCAweDRGLCAweEFELCAweEFDKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MEYsIDB4RkYsIDB4NDIsIDB4NDEsIDB4NkUsIDB4QTksIDB4QTIsIDB4QTApLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgyRiwgMHhBMSwgMHg0RiwgMHgxRiwgMHg4OSwgMHg4MiwgMHhBQSwgMHgzRSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEYzLCAweEI4LCAweDBGLCAweDZCLCAweDhGLCAweDhDLCAweEQ2LCAweDY4KSwKLX07Ci1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMjU2cjFfVF84X1hbXSA9IHsKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RjEsIDB4QjMsIDB4QkIsIDB4NTEsIDB4NjksIDB4QTIsIDB4MTEsIDB4OTMpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg2NSwgMHg0RiwgMHgwRiwgMHg4RCwgMHhCRCwgMHgyNiwgMHgwRiwgMHhFOCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEI5LCAweENCLCAweEVDLCAweDZCLCAweDM0LCAweEMzLCAweDNELCAweDlEKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RTQsIDB4NUQsIDB4MUUsIDB4MTAsIDB4RDUsIDB4NDQsIDB4RTIsIDB4NTQpLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AyNTZyMV9UXzhfWVtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgyOCwgMHg5RSwgMHhCMSwgMHhGMSwgMHg2RSwgMHg0QywgMHhBRCwgMHhCMyksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEI3LCAweEUzLCAweEMyLCAweDU4LCAweEMwLCAweEZCLCAweDM0LCAweDQzKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MjUsIDB4OUMsIDB4REYsIDB4MzUsIDB4MDcsIDB4NDEsIDB4QkQsIDB4MTkpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhCNiwgMHg2RSwgMHgxMCwgMHhFQywgMHgwRSwgMHhFQywgMHhCQiwgMHhENiksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDI1NnIxX1RfOV9YW10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEM4LCAweENGLCAweEVGLCAweDNGLCAweDgzLCAweDFBLCAweDg4LCAweEU4KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MEIsIDB4MjksIDB4QjUsIDB4QjksIDB4RTAsIDB4QzksIDB4QTMsIDB4QUUpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg4OCwgMHg0NiwgMHgxRSwgMHg3NywgMHhDRCwgMHg3RSwgMHhCMywgMHgxMCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEI2LCAweDIxLCAweEQwLCAweEQ0LCAweEEzLCAweDE2LCAweDA4LCAweEVFKSwKLX07Ci1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMjU2cjFfVF85X1lbXSA9IHsKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QTEsIDB4Q0EsIDB4QTgsIDB4QjMsIDB4QkYsIDB4MjksIDB4OTksIDB4OEUpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhEMSwgMHhGMiwgMHgwNSwgMHhDMSwgMHhDRiwgMHg1RCwgMHg5MSwgMHg0OCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDlGLCAweDAxLCAweDQ5LCAweERCLCAweDgyLCAweERGLCAweDVGLCAweDNBKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RTEsIDB4MDYsIDB4OTAsIDB4QUQsIDB4RTMsIDB4MzgsIDB4QTQsIDB4QzQpLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AyNTZyMV9UXzEwX1hbXSA9IHsKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QzksIDB4RDIsIDB4M0EsIDB4RTgsIDB4MDMsIDB4QzUsIDB4NkQsIDB4NUQpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhCRSwgMHgzNSwgMHhEMCwgMHhBRSwgMHgxRCwgMHg3QSwgMHg5RiwgMHhDQSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDMzLCAweDFFLCAweEQyLCAweENCLCAweEFDLCAweDg4LCAweDI3LCAweDU1KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RjAsIDB4QjksIDB4OUMsIDB4RTAsIDB4MzEsIDB4REQsIDB4OTksIDB4ODYpLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AyNTZyMV9UXzEwX1lbXSA9IHsKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NjEsIDB4RjksIDB4OUIsIDB4MzIsIDB4OTYsIDB4NDEsIDB4NTgsIDB4MzgpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhGOSwgMHg1QSwgMHgyQSwgMHhCOCwgMHg5NiwgMHgwRSwgMHhCMiwgMHg0QyksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEMxLCAweDc4LCAweDJDLCAweEM3LCAweDA4LCAweDk5LCAweDE5LCAweDI0KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QjcsIDB4NTksIDB4MjgsIDB4RTksIDB4ODQsIDB4NTQsIDB4RTYsIDB4MTYpLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AyNTZyMV9UXzExX1hbXSA9IHsKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4REQsIDB4MzgsIDB4MzAsIDB4REIsIDB4NzAsIDB4MkMsIDB4MEEsIDB4QTIpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg3QywgMHg1QywgMHg5RCwgMHhFOSwgMHhENSwgMHg0NiwgMHgwQiwgMHg1RiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDgzLCAweDBCLCAweDYwLCAweDRCLCAweDM3LCAweDdELCAweEI5LCAweEM5KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NUUsIDB4MjQsIDB4RjMsIDB4M0QsIDB4NzksIDB4N0YsIDB4NkMsIDB4MTgpLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AyNTZyMV9UXzExX1lbXSA9IHsKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4N0YsIDB4RTUsIDB4MUMsIDB4NEYsIDB4NjAsIDB4MjQsIDB4RjcsIDB4MkEpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhFRCwgMHhEOCwgMHhFMiwgMHg5MSwgMHg3RiwgMHg4OSwgMHg0OSwgMHg5MiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDk3LCAweEE3LCAweDJFLCAweDhELCAweDZBLCAweEIzLCAweDM5LCAweDgxKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MTMsIDB4ODksIDB4QjUsIDB4OUEsIDB4QjgsIDB4OEQsIDB4NDIsIDB4OUMpLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AyNTZyMV9UXzEyX1hbXSA9IHsKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4OEQsIDB4NDUsIDB4RTYsIDB4NEIsIDB4M0YsIDB4NEYsIDB4MUUsIDB4MUYpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg0NywgMHg2NSwgMHg1RSwgMHg1OSwgMHgyMiwgMHhDQywgMHg3MiwgMHg1RiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEYxLCAweDkzLCAweDFBLCAweDI3LCAweDFFLCAweDM0LCAweEM1LCAweDVCKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NjMsIDB4RjIsIDB4QTUsIDB4NTgsIDB4NUMsIDB4MTUsIDB4MkUsIDB4QzYpLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AyNTZyMV9UXzEyX1lbXSA9IHsKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RjQsIDB4N0YsIDB4QkEsIDB4NTgsIDB4NUEsIDB4ODQsIDB4NkYsIDB4NUYpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhBRCwgMHhBNiwgMHgzNiwgMHg3RSwgMHhEQywgMHhGNywgMHhFMSwgMHg2NyksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDA0LCAweDRELCAweEFBLCAweEVFLCAweDU3LCAweDc2LCAweDNBLCAweEQzKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NEUsIDB4N0UsIDB4MjYsIDB4MTgsIDB4MjIsIDB4MjMsIDB4OUYsIDB4RkYpLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AyNTZyMV9UXzEzX1hbXSA9IHsKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MUQsIDB4NEMsIDB4NjQsIDB4QzcsIDB4NTUsIDB4MDIsIDB4M0YsIDB4RTMpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhEOCwgMHgwMiwgMHg5MCwgMHhCQiwgMHhDMywgMHhFQywgMHgzMCwgMHg0MCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDlGLCAweDZGLCAweDY0LCAweEY0LCAweDE2LCAweDY5LCAweDQ4LCAweEE0KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RkEsIDB4NDQsIDB4OUMsIDB4OTUsIDB4MEMsIDB4N0QsIDB4NjcsIDB4NUUpLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AyNTZyMV9UXzEzX1lbXSA9IHsKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NDQsIDB4OTEsIDB4OEIsIDB4RDgsIDB4RDAsIDB4RDcsIDB4RTcsIDB4RTIpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgxRiwgMHhGOSwgMHg0OCwgMHg2MiwgMHg2RiwgMHhBOCwgMHg5MywgMHg1RCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEVBLCAweDNBLCAweDk5LCAweDAyLCAweEQ1LCAweDBCLCAweDNELCAweEUzKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MUUsIDB4RDMsIDB4MDAsIDB4MzEsIDB4RTYsIDB4MEMsIDB4OUYsIDB4NDQpLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AyNTZyMV9UXzE0X1hbXSA9IHsKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NTYsIDB4QjIsIDB4QUEsIDB4RkQsIDB4ODgsIDB4MTUsIDB4REYsIDB4NTIpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg0QywgMHgzNSwgMHgyNywgMHgzMSwgMHg0NCwgMHhDRCwgMHhDMCwgMHg2OCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDUzLCAweEY4LCAweDkxLCAweEE1LCAweDcxLCAweDk0LCAweDg0LCAweDJBKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4OTIsIDB4Q0IsIDB4RDAsIDB4OTMsIDB4RTksIDB4ODgsIDB4REEsIDB4RTQpLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AyNTZyMV9UXzE0X1lbXSA9IHsKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MjQsIDB4QzYsIDB4MzksIDB4MTYsIDB4NUQsIDB4QTMsIDB4MUUsIDB4NkQpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhCQSwgMHgwNywgMHgzNywgMHgyNiwgMHgzNiwgMHgyQSwgMHhGRSwgMHg2MCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDUxLCAweEJDLCAweEYzLCAweEQwLCAweERFLCAweDUwLCAweEZDLCAweDk3KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4ODAsIDB4MkUsIDB4MDYsIDB4MTAsIDB4MTUsIDB4NEQsIDB4RkEsIDB4RjcpLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AyNTZyMV9UXzE1X1hbXSA9IHsKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MjcsIDB4NjUsIDB4NjksIDB4NUIsIDB4NjYsIDB4QTIsIDB4NzUsIDB4MkUpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg5QywgMHgxNiwgMHgwMCwgMHg1QSwgMHhCMCwgMHgzMCwgMHgyNSwgMHgxQSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDQyLCAweEZCLCAweDg2LCAweDQyLCAweDgwLCAweEMxLCAweEM0LCAweDc2KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NUIsIDB4MUQsIDB4ODMsIDB4OEUsIDB4OTQsIDB4MDEsIDB4NUYsIDB4ODIpLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AyNTZyMV9UXzE1X1lbXSA9IHsKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MzksIDB4MzcsIDB4NzAsIDB4RUYsIDB4MUYsIDB4QTEsIDB4RjAsIDB4REIpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg2QSwgMHgxMCwgMHg1QiwgMHhDRSwgMHhDNCwgMHg5QiwgMHg2RiwgMHgxMCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDUwLCAweDExLCAweDExLCAweDI0LCAweDRGLCAweDRDLCAweDc5LCAweDYxKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MTcsIDB4M0EsIDB4NzIsIDB4QkMsIDB4RkUsIDB4NzIsIDB4NTgsIDB4NDMpLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX2VjcF9wb2ludCBzZWNwMjU2cjFfVFsxNl0gPSB7Ci0gICAgRUNQX1BPSU5UX0lOSVRfWFlfWjEoc2VjcDI1NnIxX1RfMF9YLCBzZWNwMjU2cjFfVF8wX1kpLAotICAgIEVDUF9QT0lOVF9JTklUX1hZX1owKHNlY3AyNTZyMV9UXzFfWCwgc2VjcDI1NnIxX1RfMV9ZKSwKLSAgICBFQ1BfUE9JTlRfSU5JVF9YWV9aMChzZWNwMjU2cjFfVF8yX1gsIHNlY3AyNTZyMV9UXzJfWSksCi0gICAgRUNQX1BPSU5UX0lOSVRfWFlfWjAoc2VjcDI1NnIxX1RfM19YLCBzZWNwMjU2cjFfVF8zX1kpLAotICAgIEVDUF9QT0lOVF9JTklUX1hZX1owKHNlY3AyNTZyMV9UXzRfWCwgc2VjcDI1NnIxX1RfNF9ZKSwKLSAgICBFQ1BfUE9JTlRfSU5JVF9YWV9aMChzZWNwMjU2cjFfVF81X1gsIHNlY3AyNTZyMV9UXzVfWSksCi0gICAgRUNQX1BPSU5UX0lOSVRfWFlfWjAoc2VjcDI1NnIxX1RfNl9YLCBzZWNwMjU2cjFfVF82X1kpLAotICAgIEVDUF9QT0lOVF9JTklUX1hZX1owKHNlY3AyNTZyMV9UXzdfWCwgc2VjcDI1NnIxX1RfN19ZKSwKLSAgICBFQ1BfUE9JTlRfSU5JVF9YWV9aMChzZWNwMjU2cjFfVF84X1gsIHNlY3AyNTZyMV9UXzhfWSksCi0gICAgRUNQX1BPSU5UX0lOSVRfWFlfWjAoc2VjcDI1NnIxX1RfOV9YLCBzZWNwMjU2cjFfVF85X1kpLAotICAgIEVDUF9QT0lOVF9JTklUX1hZX1owKHNlY3AyNTZyMV9UXzEwX1gsIHNlY3AyNTZyMV9UXzEwX1kpLAotICAgIEVDUF9QT0lOVF9JTklUX1hZX1owKHNlY3AyNTZyMV9UXzExX1gsIHNlY3AyNTZyMV9UXzExX1kpLAotICAgIEVDUF9QT0lOVF9JTklUX1hZX1owKHNlY3AyNTZyMV9UXzEyX1gsIHNlY3AyNTZyMV9UXzEyX1kpLAotICAgIEVDUF9QT0lOVF9JTklUX1hZX1owKHNlY3AyNTZyMV9UXzEzX1gsIHNlY3AyNTZyMV9UXzEzX1kpLAotICAgIEVDUF9QT0lOVF9JTklUX1hZX1owKHNlY3AyNTZyMV9UXzE0X1gsIHNlY3AyNTZyMV9UXzE0X1kpLAotICAgIEVDUF9QT0lOVF9JTklUX1hZX1owKHNlY3AyNTZyMV9UXzE1X1gsIHNlY3AyNTZyMV9UXzE1X1kpLAotfTsKLSNlbHNlCi0jZGVmaW5lIHNlY3AyNTZyMV9UIE5VTEwKLSNlbmRpZgotCi0jZW5kaWYgLyogTUJFRFRMU19FQ1BfRFBfU0VDUDI1NlIxX0VOQUJMRUQgKi8KLQotLyoKLSAqIERvbWFpbiBwYXJhbWV0ZXJzIGZvciBzZWNwMzg0cjEKLSAqLwotI2lmIGRlZmluZWQoTUJFRFRMU19FQ1BfRFBfU0VDUDM4NFIxX0VOQUJMRUQpCi1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMzg0cjFfcFtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDAwLCAweDAwLCAweDAwLCAweDAwLCAweEZGLCAweEZGLCAweEZGLCAweEZGKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RkUsIDB4RkYsIDB4RkYsIDB4RkYsIDB4RkYsIDB4RkYsIDB4RkYsIDB4RkYpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEZGLCAweEZGLCAweEZGLCAweEZGLCAweEZGLCAweEZGLCAweEZGLCAweEZGKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RkYsIDB4RkYsIDB4RkYsIDB4RkYsIDB4RkYsIDB4RkYsIDB4RkYsIDB4RkYpLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AzODRyMV9iW10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEVGLCAweDJBLCAweEVDLCAweEQzLCAweEVELCAweEM4LCAweDg1LCAweDJBKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4OUQsIDB4RDEsIDB4MkUsIDB4OEEsIDB4OEQsIDB4MzksIDB4NTYsIDB4QzYpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg1QSwgMHg4NywgMHgxMywgMHg1MCwgMHg4RiwgMHgwOCwgMHgxNCwgMHgwMyksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDEyLCAweDQxLCAweDgxLCAweEZFLCAweDZFLCAweDlDLCAweDFELCAweDE4KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MTksIDB4MkQsIDB4RjgsIDB4RTMsIDB4NkIsIDB4MDUsIDB4OEUsIDB4OTgpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhFNCwgMHhFNywgMHgzRSwgMHhFMiwgMHhBNywgMHgyRiwgMHgzMSwgMHhCMyksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDM4NHIxX2d4W10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEI3LCAweDBBLCAweDc2LCAweDcyLCAweDM4LCAweDVFLCAweDU0LCAweDNBKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NkMsIDB4MjksIDB4NTUsIDB4QkYsIDB4NUQsIDB4RjIsIDB4MDIsIDB4NTUpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgzOCwgMHgyQSwgMHg1NCwgMHg4MiwgMHhFMCwgMHg0MSwgMHhGNywgMHg1OSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDk4LCAweDlCLCAweEE3LCAweDhCLCAweDYyLCAweDNCLCAweDFELCAweDZFKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NzQsIDB4QUQsIDB4MjAsIDB4RjMsIDB4MUUsIDB4QzcsIDB4QjEsIDB4OEUpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgzNywgMHgwNSwgMHg4QiwgMHhCRSwgMHgyMiwgMHhDQSwgMHg4NywgMHhBQSksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDM4NHIxX2d5W10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDVGLCAweDBFLCAweEVBLCAweDkwLCAweDdDLCAweDFELCAweDQzLCAweDdBKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4OUQsIDB4ODEsIDB4N0UsIDB4MUQsIDB4Q0UsIDB4QjEsIDB4NjAsIDB4MEEpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhDMCwgMHhCOCwgMHhGMCwgMHhCNSwgMHgxMywgMHgzMSwgMHhEQSwgMHhFOSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDdDLCAweDE0LCAweDlBLCAweDI4LCAweEJELCAweDFELCAweEY0LCAweEY4KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MjksIDB4REMsIDB4OTIsIDB4OTIsIDB4QkYsIDB4OTgsIDB4OUUsIDB4NUQpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg2RiwgMHgyQywgMHgyNiwgMHg5NiwgMHg0QSwgMHhERSwgMHgxNywgMHgzNiksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDM4NHIxX25bXSA9IHsKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NzMsIDB4MjksIDB4QzUsIDB4Q0MsIDB4NkEsIDB4MTksIDB4RUMsIDB4RUMpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg3QSwgMHhBNywgMHhCMCwgMHg0OCwgMHhCMiwgMHgwRCwgMHgxQSwgMHg1OCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweERGLCAweDJELCAweDM3LCAweEY0LCAweDgxLCAweDRELCAweDYzLCAweEM3KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RkYsIDB4RkYsIDB4RkYsIDB4RkYsIDB4RkYsIDB4RkYsIDB4RkYsIDB4RkYpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEZGLCAweEZGLCAweEZGLCAweEZGLCAweEZGLCAweEZGLCAweEZGLCAweEZGKSwKLX07Ci0jaWYgTUJFRFRMU19FQ1BfRklYRURfUE9JTlRfT1BUSU0gPT0gMQotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDM4NHIxX1RfMF9YW10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEI3LCAweDBBLCAweDc2LCAweDcyLCAweDM4LCAweDVFLCAweDU0LCAweDNBKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NkMsIDB4MjksIDB4NTUsIDB4QkYsIDB4NUQsIDB4RjIsIDB4MDIsIDB4NTUpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgzOCwgMHgyQSwgMHg1NCwgMHg4MiwgMHhFMCwgMHg0MSwgMHhGNywgMHg1OSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDk4LCAweDlCLCAweEE3LCAweDhCLCAweDYyLCAweDNCLCAweDFELCAweDZFKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NzQsIDB4QUQsIDB4MjAsIDB4RjMsIDB4MUUsIDB4QzcsIDB4QjEsIDB4OEUpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgzNywgMHgwNSwgMHg4QiwgMHhCRSwgMHgyMiwgMHhDQSwgMHg4NywgMHhBQSksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDM4NHIxX1RfMF9ZW10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDVGLCAweDBFLCAweEVBLCAweDkwLCAweDdDLCAweDFELCAweDQzLCAweDdBKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4OUQsIDB4ODEsIDB4N0UsIDB4MUQsIDB4Q0UsIDB4QjEsIDB4NjAsIDB4MEEpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhDMCwgMHhCOCwgMHhGMCwgMHhCNSwgMHgxMywgMHgzMSwgMHhEQSwgMHhFOSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDdDLCAweDE0LCAweDlBLCAweDI4LCAweEJELCAweDFELCAweEY0LCAweEY4KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MjksIDB4REMsIDB4OTIsIDB4OTIsIDB4QkYsIDB4OTgsIDB4OUUsIDB4NUQpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg2RiwgMHgyQywgMHgyNiwgMHg5NiwgMHg0QSwgMHhERSwgMHgxNywgMHgzNiksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDM4NHIxX1RfMV9YW10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDQ2LCAweDkyLCAweDAwLCAweDJDLCAweDc4LCAweERCLCAweDFGLCAweDM3KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MTcsIDB4RjMsIDB4RUIsIDB4QjcsIDB4MDYsIDB4RjcsIDB4QjYsIDB4QkMpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgzRCwgMHhCQywgMHgyQywgMHhDRiwgMHhEOCwgMHhFRCwgMHg1MywgMHhFNyksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDUyLCAweDc1LCAweDdCLCAweEEzLCAweEFCLCAweEMzLCAweDJDLCAweDg1KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RTUsIDB4OUQsIDB4NzgsIDB4NDEsIDB4RjYsIDB4NzYsIDB4ODQsIDB4QUMpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg1NCwgMHg1NiwgMHhFOCwgMHg1MiwgMHhCMywgMHhDQiwgMHhBOCwgMHhCRCksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDM4NHIxX1RfMV9ZW10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDZELCAweEYyLCAweEFFLCAweEE0LCAweEI2LCAweDg5LCAweDFCLCAweERBKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MDEsIDB4MEYsIDB4Q0UsIDB4MUMsIDB4N0MsIDB4RjYsIDB4NTAsIDB4NEMpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg0QywgMHhFQiwgMHg5MCwgMHhFNiwgMHg0RCwgMHhDNywgMHhENCwgMHg3QSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEQxLCAweDQ5LCAweDJELCAweDhBLCAweDAxLCAweDk5LCAweDYwLCAweDk0KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NUYsIDB4ODAsIDB4OUIsIDB4OUIsIDB4NkEsIDB4QjAsIDB4MDcsIDB4RDkpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhDMiwgMHhBMiwgMHhFRSwgMHg1OSwgMHhCRSwgMHg5NSwgMHhCQywgMHgyMyksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDM4NHIxX1RfMl9YW10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEU2LCAweDlELCAweDU2LCAweEFFLCAweDU5LCAweEZCLCAweDFGLCAweDk4KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4Q0YsIDB4QUMsIDB4OTEsIDB4ODAsIDB4ODcsIDB4QTgsIDB4NkUsIDB4NTgpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgzMCwgMHgwOCwgMHhBNywgMHgwOCwgMHg5NCwgMHgzMiwgMHhGQywgMHg2NyksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDlGLCAweDI5LCAweDlFLCAweDg0LCAweEY0LCAweEU1LCAweDZFLCAweDdFKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NTUsIDB4MjEsIDB4QjksIDB4NTAsIDB4MjQsIDB4RjgsIDB4OUMsIDB4QzcpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgzNCwgMHgwNCwgMHgwMSwgMHhDMiwgMHhGQiwgMHg3NywgMHgzRSwgMHhERSksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDM4NHIxX1RfMl9ZW10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDAwLCAweDM4LCAweEVFLCAweEUzLCAweEM3LCAweDlELCAweEVDLCAweEE2KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QjYsIDB4ODgsIDB4Q0YsIDB4NDMsIDB4RkEsIDB4OTIsIDB4NUUsIDB4OEUpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhFOSwgMHhDQSwgMHg0MywgMHhGOCwgMHgzQiwgMHg0OSwgMHg3RSwgMHg3NSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDFDLCAweEU3LCAweEVCLCAweDE3LCAweDQ1LCAweDg2LCAweEMyLCAweEUxKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4OTIsIDB4NjksIDB4NTcsIDB4MzIsIDB4RTAsIDB4OUMsIDB4RDEsIDB4MDApLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhEOSwgMHgxMCwgMHhCOCwgMHg0RCwgMHhCOCwgMHhGNCwgMHgwRCwgMHhFMyksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDM4NHIxX1RfM19YW10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDYwLCAweERDLCAweDlBLCAweEIyLCAweDc5LCAweDM5LCAweDI3LCAweDE2KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NEYsIDB4NzEsIDB4RTQsIDB4M0IsIDB4NEQsIDB4NjAsIDB4MEMsIDB4QTMpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg1NSwgMHhCRCwgMHgxOSwgMHg0MCwgMHhGQSwgMHgxOSwgMHgyQSwgMHg1QSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDRELCAweEY4LCAweDFFLCAweDQzLCAweEExLCAweDUwLCAweDhELCAweEVGKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QTMsIDB4MTgsIDB4N0MsIDB4NDEsIDB4RkEsIDB4N0MsIDB4MUIsIDB4NTgpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgwMCwgMHg1OSwgMHgyNCwgMHhDNCwgMHhFOSwgMHhCNywgMHhEMywgMHhBRCksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDM4NHIxX1RfM19ZW10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEJCLCAweDAxLCAweDNELCAweDYzLCAweDU0LCAweDQ1LCAweDZGLCAweEI3KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4N0IsIDB4QjIsIDB4MTksIDB4QTMsIDB4ODYsIDB4MUQsIDB4NDIsIDB4MzQpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg4NCwgMHgwMiwgMHg4NywgMHgxOCwgMHg5MiwgMHg1MiwgMHgxQSwgMHg3MSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDZDLCAweDE4LCAweEIxLCAweDVELCAweDE4LCAweDFCLCAweDM3LCAweEZFKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RjQsIDB4NzQsIDB4NjEsIDB4QkEsIDB4MTgsIDB4QUYsIDB4NDAsIDB4MzApLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhEQSwgMHg3RCwgMHgzQywgMHg1MiwgMHgwRiwgMHgwNywgMHhCMCwgMHg2RiksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDM4NHIxX1RfNF9YW10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDA5LCAweDM5LCAweDEzLCAweEFBLCAweDYwLCAweDE1LCAweDk5LCAweDMwKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MTcsIDB4MDAsIDB4Q0IsIDB4QzYsIDB4QjEsIDB4REIsIDB4OTcsIDB4OTApLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhFNiwgMHhGQSwgMHg2MCwgMHhCOCwgMHgyNCwgMHhFNCwgMHg3RCwgMHhEMyksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweERELCAweDc1LCAweEIzLCAweDcwLCAweEIyLCAweDgzLCAweEIxLCAweDlCKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QTMsIDB4RTMsIDB4NkMsIDB4Q0QsIDB4MzMsIDB4NjIsIDB4N0EsIDB4NTYpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg4OCwgMHgzMCwgMHhEQywgMHgwRiwgMHg5RiwgMHhCQiwgMHhCOCwgMHhBQSksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDM4NHIxX1RfNF9ZW10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEE2LCAweEQ1LCAweDBBLCAweDYwLCAweDgxLCAweEI5LCAweEM1LCAweDE2KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NDQsIDB4QUEsIDB4MkYsIDB4RDYsIDB4RjIsIDB4NzMsIDB4REYsIDB4RUIpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhGMywgMHg3QiwgMHg3NCwgMHhDOSwgMHhCMywgMHg1QiwgMHg5NSwgMHg2RCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEFDLCAweDA0LCAweEVCLCAweDE1LCAweEM4LCAweDVGLCAweDAwLCAweEY2KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QjUsIDB4NTAsIDB4MjAsIDB4MjgsIDB4RDEsIDB4MDEsIDB4QUYsIDB4RjApLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgyOCwgMHg2RCwgMHg0RiwgMHgzMSwgMHg4MSwgMHgyRiwgMHg5NCwgMHg0OCksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDM4NHIxX1RfNV9YW10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDQ2LCAweDJGLCAweEQ4LCAweEI2LCAweDYzLCAweDdDLCAweEU5LCAweDUwKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RDksIDB4OEMsIDB4QjksIDB4MTQsIDB4RDksIDB4MzcsIDB4NjMsIDB4REUpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgxMCwgMHgwMiwgMHhCOCwgMHg0NiwgMHhBRCwgMHhDRSwgMHg3QiwgMHgzOCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDgyLCAweDQ3LCAweDJELCAweDY2LCAweEE3LCAweEU5LCAweDMzLCAweDIzKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4OTIsIDB4RjksIDB4OTMsIDB4OTQsIDB4QTgsIDB4NDgsIDB4QjMsIDB4NEYpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhFOSwgMHg0QSwgMHhBQywgMHg1MSwgMHgwOCwgMHg3MiwgMHgyRiwgMHgxQSksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDM4NHIxX1RfNV9ZW10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweERBLCAweEFELCAweEEwLCAweEY5LCAweDgxLCAweEUxLCAweDc4LCAweDk3KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4M0EsIDB4OUEsIDB4NjMsIDB4RDgsIDB4QkEsIDB4NzksIDB4MUEsIDB4MTcpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgzNCwgMHgzMSwgMHg3QiwgMHg3QSwgMHg1QSwgMHg1RCwgMHg3RCwgMHgyRCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDgzLCAweDk2LCAweDEyLCAweDRCLCAweDE5LCAweDA5LCAweEUwLCAweEI3KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NTUsIDB4OEEsIDB4NTcsIDB4RUUsIDB4NEUsIDB4NkUsIDB4N0UsIDB4RUMpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgxMSwgMHg5RCwgMHg2OSwgMHhEQywgMHhCMywgMHhEQSwgMHhEOCwgMHgwOCksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDM4NHIxX1RfNl9YW10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDY4LCAweDQ5LCAweDAzLCAweDAzLCAweDMzLCAweDZGLCAweDI4LCAweDRBKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NUQsIDB4REIsIDB4QTcsIDB4MDUsIDB4OEMsIDB4RjMsIDB4NEQsIDB4RkIpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg4RSwgMHg5MiwgMHhCMSwgMHhBOCwgMHhFQywgMHgwRCwgMHg2NCwgMHgzQiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDRFLCAweEZDLCAweEZELCAweEQwLCAweDRCLCAweDg4LCAweDFCLCAweDVEKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4ODMsIDB4OUMsIDB4NTEsIDB4NjksIDB4Q0UsIDB4NzEsIDB4NzMsIDB4RjUpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhCOCwgMHg1QSwgMHgxNCwgMHgyMywgMHgxQSwgMHg0NiwgMHg2MywgMHg1RiksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDM4NHIxX1RfNl9ZW10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEJDLCAweDRDLCAweDcwLCAweDQ0LCAweDE4LCAweENELCAweEVGLCAweEVEKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QzIsIDB4NDksIDB4REQsIDB4NjQsIDB4N0UsIDB4N0UsIDB4NEQsIDB4OTIpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhBMiwgMHgzMiwgMHg3QywgMHgwOSwgMHhEMCwgMHgzRiwgMHhENiwgMHgyQyksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDZELCAweEUwLCAweDRGLCAweDY1LCAweDBDLCAweDdBLCAweDU0LCAweDNFKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MTYsIDB4RkEsIDB4RkIsIDB4NEEsIDB4QjQsIDB4NzksIDB4NUEsIDB4OEMpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgwNCwgMHg1RCwgMHgxQiwgMHgyQiwgMHhEQSwgMHhCQywgMHg5QSwgMHg3NCksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDM4NHIxX1RfN19YW10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDUxLCAweEFDLCAweDU2LCAweEY3LCAweDVGLCAweDUxLCAweDY4LCAweDBCKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QzYsIDB4RTAsIDB4MUQsIDB4QkMsIDB4MTMsIDB4NEUsIDB4QUMsIDB4MDMpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhCNywgMHhGNSwgMHhDNSwgMHhFNiwgMHhEMiwgMHg4OCwgMHhCQSwgMHhDQiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEZBLCAweDBFLCAweDI4LCAweDIzLCAweDU4LCAweDY3LCAweEZBLCAweEVFKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4OUUsIDB4ODAsIDB4NEIsIDB4RDgsIDB4QzQsIDB4REYsIDB4MTUsIDB4RTQpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhGMSwgMHgwRSwgMHg1OCwgMHhFNiwgMHgyQywgMHg1OSwgMHhDMiwgMHgwMyksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDM4NHIxX1RfN19ZW10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDlCLCAweDI2LCAweDI3LCAweDk5LCAweDE2LCAweDJCLCAweDIyLCAweDBCKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QkEsIDB4RjMsIDB4OEYsIDB4QzMsIDB4MkEsIDB4OUIsIDB4RkMsIDB4MzgpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhGQywgMHgyRSwgMHg4MywgMHgzRCwgMHhGRSwgMHg5RSwgMHgzQywgMHgxQiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDA4LCAweDU3LCAweENELCAweDJELCAweEMxLCAweDQ5LCAweDM4LCAweEI1KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4OTUsIDB4NDIsIDB4OEIsIDB4MzMsIDB4ODksIDB4MUYsIDB4RUEsIDB4MDEpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhBQSwgMHgxRCwgMHgxMywgMHhENywgMHg1MCwgMHhCQiwgMHgzRSwgMHhFQiksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDM4NHIxX1RfOF9YW10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEQyLCAweDlBLCAweDUyLCAweEQyLCAweDU0LCAweDdDLCAweDk3LCAweEYyKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RTAsIDB4MzMsIDB4NkUsIDB4RUQsIDB4RDksIDB4ODcsIDB4NTAsIDB4QzUpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg1QSwgMHgzNSwgMHg3RSwgMHgxNiwgMHg0MCwgMHgxNSwgMHg4MywgMHhCOCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDMzLCAweDJCLCAweEE0LCAweEFCLCAweDAzLCAweDkxLCAweEVBLCAweEZFKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QzEsIDB4NDcsIDB4MzksIDB4RUYsIDB4MDUsIDB4NTksIDB4RDAsIDB4OTApLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhCRiwgMHgyNCwgMHgwRCwgMHg3NiwgMHgxMSwgMHg1MywgMHgwOCwgMHhBRiksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDM4NHIxX1RfOF9ZW10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDFGLCAweDJGLCAweERELCAweEJELCAweDUwLCAweDQ4LCAweEIxLCAweEU1KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4ODAsIDB4MUMsIDB4ODQsIDB4NTUsIDB4NzgsIDB4MTQsIDB4RUIsIDB4RjYpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhEOSwgMHg1RSwgMHgzRSwgMHhBNiwgMHhBRiwgMHhGNiwgMHhDNywgMHgwNCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEU3LCAweDExLCAweEUyLCAweDY1LCAweENBLCAweDQxLCAweDk1LCAweDNCKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QUUsIDB4ODMsIDB4RDgsIDB4RTYsIDB4NEQsIDB4MjIsIDB4MDYsIDB4MkQpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhGQSwgMHg3RiwgMHgyNSwgMHgyQSwgMHhBQSwgMHgyOCwgMHg0NiwgMHg5NyksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDM4NHIxX1RfOV9YW10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDc5LCAweERCLCAweDE1LCAweDU2LCAweDg0LCAweENCLCAweEMwLCAweDU2KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NTYsIDB4REIsIDB4MEUsIDB4MDgsIDB4QzksIDB4RjUsIDB4RDQsIDB4OUUpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhFNiwgMHg2MiwgMHhEMCwgMHgxQSwgMHg3QywgMHgxMywgMHhENSwgMHgwNyksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDdELCAweEFELCAweDUzLCAweEUwLCAweDMyLCAweDIxLCAweEEwLCAweEMwKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QzUsIDB4MzgsIDB4ODEsIDB4MjEsIDB4MjMsIDB4MEUsIDB4RDIsIDB4QkIpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgxQywgMHg1MSwgMHgwNSwgMHhEMCwgMHgxRSwgMHg4MiwgMHhBOSwgMHg3MSksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDM4NHIxX1RfOV9ZW10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEE3LCAweEMzLCAweDI3LCAweEJGLCAweEM2LCAweEFBLCAweEI3LCAweEI5KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4Q0IsIDB4NjUsIDB4NDUsIDB4REYsIDB4QjksIDB4NDYsIDB4MTcsIDB4NDYpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhGNSwgMHgzOCwgMHgzRiwgMHhCMiwgMHhCMSwgMHg1RCwgMHhDQSwgMHgxQyksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDg4LCAweDI5LCAweDZDLCAweDYzLCAweEU5LCAweEQ3LCAweDQ4LCAweEI4KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QkMsIDB4RjEsIDB4RDcsIDB4OTksIDB4OEMsIDB4QzIsIDB4MDUsIDB4OTkpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg2RCwgMHhFNiwgMHg1RSwgMHg4MiwgMHg2RCwgMHhFNSwgMHg3RSwgMHhENSksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDM4NHIxX1RfMTBfWFtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg3QiwgMHg2MSwgMHhGQSwgMHg3RCwgMHgwMSwgMHhEQiwgMHhCNiwgMHg2MyksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDExLCAweEM2LCAweDU4LCAweDM5LCAweEY0LCAweEM2LCAweDgyLCAweDIzKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NDcsIDB4NUEsIDB4N0EsIDB4ODAsIDB4MDgsIDB4Q0QsIDB4QUEsIDB4RDgpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhEQSwgMHg4QywgMHhDNiwgMHgzRiwgMHgzQywgMHhBNSwgMHg2OCwgMHhGNCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEJCLCAweEY1LCAweEQ1LCAweDE3LCAweEFFLCAweDM2LCAweEQ4LCAweDhBKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QzcsIDB4QUQsIDB4OTIsIDB4QzUsIDB4NTcsIDB4NkMsIDB4REEsIDB4OTEpLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AzODRyMV9UXzEwX1lbXSA9IHsKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RTgsIDB4NjcsIDB4MTcsIDB4QzAsIDB4NDAsIDB4NzgsIDB4OEMsIDB4ODQpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg3RSwgMHg5RiwgMHhGNCwgMHhBQSwgMHhEQSwgMHg1QywgMHg3RSwgMHhCMiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDk2LCAweERCLCAweDQyLCAweDNFLCAweDcyLCAweDY0LCAweEEwLCAweDY3KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MjcsIDB4RjksIDB4NDEsIDB4MTcsIDB4NDMsIDB4RTMsIDB4RTgsIDB4QTgpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg2NiwgMHhERCwgMHhDQywgMHg0MywgMHg3RSwgMHgxNiwgMHgwNSwgMHgwMyksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDM2LCAweDRCLCAweENGLCAweDQ4LCAweDhGLCAweDQxLCAweDkwLCAweEU1KSwKLX07Ci1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMzg0cjFfVF8xMV9YW10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDk4LCAweDBDLCAweDZCLCAweDlELCAweDIyLCAweDA0LCAweEJDLCAweDVDKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4ODYsIDB4NjMsIDB4NzksIDB4MkYsIDB4NkEsIDB4MEUsIDB4OEEsIDB4REUpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgyOSwgMHg2NywgMHgzRiwgMHgwMiwgMHhCOCwgMHg5MSwgMHg3RiwgMHg3NCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEZDLCAweDE0LCAweDY0LCAweEEwLCAweDMzLCAweEY0LCAweDZCLCAweDUwKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MUMsIDB4NDQsIDB4NzEsIDB4ODcsIDB4QjgsIDB4ODgsIDB4M0YsIDB4NDUpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgxQiwgMHgyQiwgMHg4NSwgMHgwNSwgMHhDNSwgMHg0NCwgMHg1MywgMHgxNSksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDM4NHIxX1RfMTFfWVtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgzRSwgMHgyQiwgMHhGRSwgMHhEMSwgMHgxQywgMHg3MywgMHhFMywgMHgyRSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDY2LCAweDMzLCAweEExLCAweEQzLCAweDY5LCAweDFDLCAweDlELCAweEQyKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RTAsIDB4NUEsIDB4QkEsIDB4QjYsIDB4QUUsIDB4MUIsIDB4OTQsIDB4MDQpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhBRiwgMHg3NCwgMHg5MCwgMHg1QywgMHg1NywgMHhCMCwgMHgzQSwgMHg0NSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweERELCAweDJGLCAweDkzLCAweDIwLCAweDI0LCAweDU0LCAweDFELCAweDhEKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RkEsIDB4NzgsIDB4OUQsIDB4NzEsIDB4NjcsIDB4NUQsIDB4NDksIDB4OTgpLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AzODRyMV9UXzEyX1hbXSA9IHsKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MTIsIDB4QzgsIDB4MEUsIDB4MTEsIDB4OEQsIDB4RTAsIDB4OEYsIDB4NjkpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg1OSwgMHg3RiwgMHg3OSwgMHg2QywgMHg1RiwgMHhCNywgMHhCQywgMHhCMSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDg4LCAweEUxLCAweDgzLCAweDNDLCAweDEyLCAweEJCLCAweEVFLCAweDk2KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MkEsIDB4QzIsIDB4QzQsIDB4MUIsIDB4NDEsIDB4NzEsIDB4QjksIDB4MTcpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhCMCwgMHhFRSwgMHhCQiwgMHgxRCwgMHg4OSwgMHg1MCwgMHg4OCwgMHhGMiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEZDLCAweDFDLCAweDU1LCAweDc0LCAweEVCLCAweERFLCAweDkyLCAweDNGKSwKLX07Ci1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMzg0cjFfVF8xMl9ZW10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDlDLCAweDM4LCAweDkyLCAweDA2LCAweDE5LCAweEQwLCAweEIzLCAweEIyKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MkEsIDB4OTksIDB4MjYsIDB4QTMsIDB4NUYsIDB4RTIsIDB4QzEsIDB4ODEpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg3NSwgMHhGQywgMHhGRCwgMHhDMywgMHhCNiwgMHgyNiwgMHgyNCwgMHg4RiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEFGLCAweEFELCAweEU3LCAweDQ5LCAweEI3LCAweDY0LCAweDRCLCAweDk2KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NkMsIDB4NEUsIDB4OTUsIDB4QUQsIDB4MDcsIDB4RkUsIDB4QjYsIDB4MzApLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg0RiwgMHgxNSwgMHhFNywgMHgyRCwgMHgxOSwgMHhBOSwgMHgwOCwgMHgxMCksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDM4NHIxX1RfMTNfWFtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhCRSwgMHhCRCwgMHhBQywgMHgwQSwgMHgzRiwgMHg2QiwgMHhGRiwgMHhGQSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEUwLCAweEU0LCAweDc0LCAweDE0LCAweEQ5LCAweDcwLCAweDFELCAweDcxKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RjIsIDB4QjAsIDB4NzEsIDB4QkIsIDB4RDgsIDB4MTgsIDB4OTYsIDB4MkIpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhEQSwgMHhCOCwgMHgxOSwgMHg5MCwgMHg4MCwgMHhCNSwgMHhFRSwgMHgwMSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDkxLCAweDIxLCAweDIwLCAweEE2LCAweDE3LCAweDQ4LCAweDAzLCAweDZGKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RTMsIDB4MUQsIDB4QkIsIDB4NkQsIDB4OTQsIDB4MjAsIDB4MzQsIDB4RjEpLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AzODRyMV9UXzEzX1lbXSA9IHsKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NTksIDB4ODIsIDB4NjcsIDB4NEIsIDB4OEUsIDB4NEUsIDB4QkUsIDB4RTIpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhCRSwgMHhEQSwgMHg3NywgMHhGOCwgMHgyMywgMHg1NSwgMHgyQiwgMHgyRCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDVDLCAweDAyLCAweERFLCAweDI1LCAweDM1LCAweDJELCAweDc0LCAweDUxKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RDAsIDB4MEMsIDB4QjgsIDB4MEIsIDB4MzksIDB4QkEsIDB4QUQsIDB4MDQpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhBNiwgMHgwRSwgMHgyOCwgMHg0RCwgMHhFMSwgMHgzRCwgMHhFNCwgMHgxQiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDVELCAweEVDLCAweDBBLCAweEQ0LCAweEI4LCAweEM0LCAweDhELCAweEIwKSwKLX07Ci1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMzg0cjFfVF8xNF9YW10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDNFLCAweDY4LCAweENFLCAweEMyLCAweDU1LCAweDRELCAweDBDLCAweDZEKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4OUIsIDB4MjAsIDB4OTMsIDB4MzIsIDB4OTAsIDB4RDYsIDB4QUUsIDB4NDcpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhERCwgMHg3OCwgMHhBQiwgMHg0MywgMHg5RSwgMHhFQiwgMHg3MywgMHhBRSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEVELCAweDk3LCAweEMzLCAweDgzLCAweEE2LCAweDNDLCAweEYxLCAweEJGKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MEYsIDB4MjUsIDB4MjUsIDB4NjYsIDB4MDgsIDB4MjYsIDB4RkEsIDB4NEIpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg0MSwgMHhGQiwgMHg0NCwgMHg1RCwgMHg4MiwgMHhFQywgMHgzQiwgMHhBQyksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDM4NHIxX1RfMTRfWVtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg1OCwgMHg5MCwgMHhFQSwgMHhCNSwgMHgwNCwgMHg5OSwgMHhEMCwgMHg2OSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDRBLCAweEYyLCAweDIyLCAweEEwLCAweEVCLCAweEZELCAweDQ1LCAweDg3KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NUQsIDB4QTQsIDB4ODEsIDB4MzIsIDB4RkMsIDB4RkEsIDB4RUUsIDB4NUIpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgyNywgMHhCQiwgMHhBNCwgMHg2QSwgMHg3NywgMHg0MSwgMHg1QywgMHgxRCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEExLCAweDFFLCAweEFBLCAweDRGLCAweEYwLCAweDEwLCAweEIzLCAweDUwKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MDksIDB4NzQsIDB4MTMsIDB4MTQsIDB4OUUsIDB4OTAsIDB4RDcsIDB4RTYpLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AzODRyMV9UXzE1X1hbXSA9IHsKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4REIsIDB4QkQsIDB4NzAsIDB4NEYsIDB4QTgsIDB4RDEsIDB4MDYsIDB4MkMpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgxOSwgMHg0RSwgMHgyRSwgMHg2OCwgMHhGQywgMHgzNSwgMHhGQSwgMHg1MCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDYwLCAweDUzLCAweDc1LCAweEVELCAweEYyLCAweDVGLCAweEMyLCAweEVCKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MzksIDB4ODcsIDB4NkIsIDB4OUYsIDB4MDUsIDB4RTIsIDB4MjIsIDB4OTMpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg0RiwgMHgxQSwgMHhBOCwgMHhCNywgMHgwMywgMHg5RSwgMHg2RCwgMHg3QyksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweENCLCAweEQwLCAweDY5LCAweDg4LCAweEE4LCAweDM5LCAweDlFLCAweDNBKSwKLX07Ci1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMzg0cjFfVF8xNV9ZW10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEY4LCAweEVGLCAweDY4LCAweEZFLCAweEVDLCAweDI0LCAweDA4LCAweDE1KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QTEsIDB4MDYsIDB4NEIsIDB4OTIsIDB4MEQsIDB4QjcsIDB4MzQsIDB4NzQpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgzRSwgMHhGNCwgMHhERCwgMHgxQSwgMHhBMCwgMHg0QSwgMHhFNCwgMHg0NSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEMzLCAweDYzLCAweDRGLCAweDRGLCAweENFLCAweEJCLCAweEQ2LCAweEQzKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4Q0QsIDB4RUUsIDB4OEQsIDB4REYsIDB4M0YsIDB4NzMsIDB4QjcsIDB4QUMpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhERiwgMHgwNiwgMHhCNiwgMHg4MCwgMHg0RCwgMHg4MSwgMHhEOSwgMHg1MyksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDM4NHIxX1RfMTZfWFtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgxNSwgMHhGNSwgMHgxMywgMHhERiwgMHgxMywgMHgxOSwgMHg5NywgMHg5NCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDA4LCAweEY5LCAweEIzLCAweDMzLCAweDY2LCAweDgyLCAweDIxLCAweEZFKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RjUsIDB4RkMsIDB4MzksIDB4MTYsIDB4MjMsIDB4NDMsIDB4NzYsIDB4MEUpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgwOSwgMHg0OCwgMHgyNSwgMHhBMSwgMHg2NCwgMHg5NSwgMHgxQywgMHgyRiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDQzLCAweEFDLCAweDE1LCAweDU3LCAweEQ5LCAweERFLCAweEEwLCAweDI4KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MTYsIDB4NUYsIDB4QjgsIDB4M0QsIDB4NDgsIDB4OTEsIDB4MjQsIDB4Q0MpLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AzODRyMV9UXzE2X1lbXSA9IHsKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MkQsIDB4RjIsIDB4QzgsIDB4NTQsIDB4RDEsIDB4MzIsIDB4QkQsIDB4QzQpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg4QSwgMHgzQiwgMHhGMCwgMHhBQSwgMHg5RCwgMHhEOCwgMHhGNCwgMHgyMCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDRGLCAweEMzLCAweEJCLCAweDZDLCAweDY2LCAweEFDLCAweDI1LCAweDJEKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NkYsIDB4MjUsIDB4MTAsIDB4QjIsIDB4RTEsIDB4NDEsIDB4REUsIDB4MUQpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgzQywgMHhFOCwgMHgzMCwgMHhCOCwgMHgzNywgMHhCQywgMHgyQSwgMHg5OCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEJBLCAweDU3LCAweDAxLCAweDRBLCAweDFFLCAweDc4LCAweDlGLCAweDg1KSwKLX07Ci1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMzg0cjFfVF8xN19YW10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEJELCAweDE5LCAweENELCAweDEyLCAweDBCLCAweDUxLCAweDRGLCAweDU2KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MzAsIDB4NEIsIDB4M0QsIDB4MjQsIDB4QTQsIDB4MTYsIDB4NTksIDB4MDUpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhBQywgMHhFQiwgMHhEMywgMHg1OSwgMHgyRSwgMHg3NSwgMHg3QywgMHgwMSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDhDLCAweEI5LCAweEI0LCAweEE1LCAweEQ5LCAweDJFLCAweDI5LCAweDRDKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4ODYsIDB4MTYsIDB4MDUsIDB4NzUsIDB4MDIsIDB4QjMsIDB4MDYsIDB4RUUpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhBQiwgMHg3QywgMHg5RiwgMHg3OSwgMHg5MSwgMHhGMSwgMHg0RiwgMHgyMyksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDM4NHIxX1RfMTdfWVtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg2NSwgMHg5OCwgMHg3QywgMHg4NCwgMHhFMSwgMHhGRiwgMHgzMCwgMHg3NyksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDcxLCAweEUyLCAweEMyLCAweDVGLCAweDU1LCAweDQwLCAweEJELCAweENEKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NjksIDB4NjUsIDB4ODcsIDB4M0YsIDB4QzQsIDB4QzIsIDB4MjQsIDB4NTcpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgwRSwgMHgzMCwgMHgwQSwgMHg2MCwgMHgxNSwgMHhEMSwgMHgyNCwgMHg0OCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDU3LCAweDk5LCAweEQ5LCAweEI2LCAweEFFLCAweEIxLCAweEFGLCAweDFEKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4OUIsIDB4ODAsIDB4RUUsIDB4QTIsIDB4MEYsIDB4NzQsIDB4QjksIDB4RjMpLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AzODRyMV9UXzE4X1hbXSA9IHsKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MDMsIDB4RTYsIDB4MEYsIDB4MzcsIDB4QzEsIDB4MTAsIDB4OTksIDB4MUUpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg2MSwgMHhBRCwgMHg5RCwgMHg1RCwgMHg4MCwgMHgwMSwgMHhBNiwgMHhGRSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEIwLCAweDBGLCAweDEwLCAweDJBLCAweDlELCAweDIwLCAweDM4LCAweEVCKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NkMsIDB4NjAsIDB4Q0IsIDB4Q0UsIDB4NUEsIDB4QTAsIDB4QTcsIDB4MzIpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhCQSwgMHhDRiwgMHgxNCwgMHhERiwgMHhCRiwgMHhFNSwgMHg3NCwgMHgyRCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEI1LCAweDEyLCAweDFBLCAweERELCAweDU5LCAweDAyLCAweDVELCAweEM2KSwKLX07Ci1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMzg0cjFfVF8xOF9ZW10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEM4LCAweEM5LCAweEY4LCAweEY1LCAweEI2LCAweDEzLCAweDRELCAweDdCKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RUQsIDB4NDUsIDB4QjEsIDB4OTMsIDB4QjMsIDB4QTIsIDB4NzksIDB4REMpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg3NCwgMHhGNiwgMHhDRiwgMHhGNywgMHhFNiwgMHgyOSwgMHg5QywgMHhDQyksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDg3LCAweDUwLCAweDY1LCAweDgwLCAweEJDLCAweDU5LCAweDBBLCAweDU5KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MEUsIDB4RjAsIDB4MjQsIDB4MzUsIDB4QTIsIDB4NDYsIDB4RjAsIDB4MEMpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhCRCwgMHgyNiwgMHhDMCwgMHg5RCwgMHg2MSwgMHg1NiwgMHg2MiwgMHg2NyksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDM4NHIxX1RfMTlfWFtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgxMCwgMHhCQiwgMHhDMiwgMHgyNCwgMHg0MywgMHgyRSwgMHgzNywgMHg1NCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDhBLCAweEY3LCAweENFLCAweDM1LCAweEZDLCAweDc3LCAweEYzLCAweDNGKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NzUsIDB4MzQsIDB4OTYsIDB4RDUsIDB4NEEsIDB4NzYsIDB4OUQsIDB4NkIpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhCOCwgMHgzQiwgMHgwRiwgMHhFQSwgMHhBOCwgMHgxMiwgMHgwQiwgMHgyMiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDY2LCAweDNGLCAweDVELCAweDJELCAweDFDLCAweEQ0LCAweDlFLCAweEZCKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4N0QsIDB4MkUsIDB4REQsIDB4QzcsIDB4NkUsIDB4QUIsIDB4QUYsIDB4REMpLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AzODRyMV9UXzE5X1lbXSA9IHsKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4OEMsIDB4QjIsIDB4N0IsIDB4MEMsIDB4OUEsIDB4ODMsIDB4OEUsIDB4NTkpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgzMCwgMHg1MSwgMHg5MCwgMHg5MiwgMHg3OSwgMHgzMiwgMHgxOSwgMHhDMyksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEVFLCAweDg5LCAweEY5LCAweEQwLCAweENGLCAweDJDLCAweEE1LCAweDhGKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4N0IsIDB4NTAsIDB4MjEsIDB4REUsIDB4NTAsIDB4NDEsIDB4OUQsIDB4ODEpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhFMCwgMHg3RCwgMHgyQiwgMHg5RSwgMHg5RCwgMHg5NSwgMHhBOCwgMHhFMyksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEQ4LCAweEE1LCAweDIwLCAweDg3LCAweDg4LCAweDk3LCAweDVGLCAweEFBKSwKLX07Ci1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMzg0cjFfVF8yMF9YW10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDY0LCAweDU5LCAweEI0LCAweDY2LCAweDdFLCAweEU4LCAweDVBLCAweDYwKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QTUsIDB4NUMsIDB4N0UsIDB4QjIsIDB4QUQsIDB4RDksIDB4QzksIDB4REEpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg4MiwgMHg5NywgMHg0OSwgMHhBMywgMHgxMywgMHg4MywgMHgwNywgMHgyRSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDVBLCAweDI2LCAweEM3LCAweDEzLCAweDM1LCAweDBELCAweEIwLCAweDZCKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MUUsIDB4NjAsIDB4QUIsIDB4RkEsIDB4NEIsIDB4OTMsIDB4MTgsIDB4MkMpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg1NCwgMHgyRCwgMHgxQywgMHgzMSwgMHg0QywgMHhFNCwgMHg2MSwgMHhBRSksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDM4NHIxX1RfMjBfWVtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhERSwgMHg0RCwgMHgxRSwgMHg1MSwgMHg1OSwgMHg2RSwgMHg5MSwgMHhDNSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDM4LCAweDU0LCAweDRELCAweDUxLCAweEVELCAweDM2LCAweENDLCAweDYwKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MTgsIDB4QTgsIDB4NTYsIDB4QzcsIDB4NzgsIDB4MjcsIDB4MzMsIDB4QzUpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg0MiwgMHhCNywgMHg5NSwgMHhDOSwgMHg4QiwgMHhDOCwgMHg2QSwgMHhCQyksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDVFLCAweEU5LCAweDEzLCAweDk2LCAweEIzLCAweEUxLCAweEY5LCAweEVFKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RjUsIDB4NDYsIDB4QjAsIDB4NUUsIDB4QzMsIDB4OTQsIDB4MDMsIDB4MDUpLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AzODRyMV9UXzIxX1hbXSA9IHsKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NkQsIDB4NUIsIDB4MjksIDB4MzAsIDB4NDEsIDB4MUEsIDB4OUUsIDB4QjYpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg3NiwgMHhDQSwgMHg4MywgMHgzMSwgMHg1QiwgMHhBNywgMHhDQiwgMHg0MiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDIxLCAweDQxLCAweDUwLCAweDQ0LCAweDRELCAweDY0LCAweDMxLCAweDg5KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4Q0YsIDB4ODQsIDB4QzIsIDB4NUQsIDB4OTcsIDB4QTUsIDB4M0MsIDB4MTgpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhGMCwgMHgwRiwgMHhBNSwgMHhGRCwgMHg4RSwgMHg1QSwgMHg0NywgMHgyQyksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDdDLCAweDU4LCAweDAyLCAweDJELCAweDQwLCAweEIxLCAweDBCLCAweEJBKSwKLX07Ci1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMzg0cjFfVF8yMV9ZW10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweERBLCAweDMzLCAweDhDLCAweDY3LCAweENFLCAweDIzLCAweDQzLCAweDk5KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4ODQsIDB4NTMsIDB4NDcsIDB4NzIsIDB4NDQsIDB4MUYsIDB4NUIsIDB4MkEpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhBRSwgMHhDMSwgMHhEOSwgMHhBNCwgMHg1MCwgMHg4OCwgMHg2MywgMHgxOCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDdDLCAweEYyLCAweDc1LCAweDY5LCAweDczLCAweDAwLCAweEM0LCAweDMxKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NEIsIDB4OTAsIDB4MUQsIDB4REYsIDB4MUEsIDB4MDAsIDB4RDgsIDB4NjkpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgwNSwgMHhCMSwgMHg4OSwgMHg0OCwgMHhBOCwgMHg3MCwgMHg2MiwgMHhFRiksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDM4NHIxX1RfMjJfWFtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg3RSwgMHg4QSwgMHg1NSwgMHg1MCwgMHg3QiwgMHhFRiwgMHg4QSwgMHgzQyksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEZFLCAweDFCLCAweDIzLCAweDQ4LCAweDIzLCAweDYzLCAweDkxLCAweEI2KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MEQsIDB4MDQsIDB4NTQsIDB4M0MsIDB4MjQsIDB4OUIsIDB4QzcsIDB4OUEpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgyNSwgMHgzOCwgMHhDMywgMHg4NCwgMHhGQiwgMHhGRiwgMHg5RiwgMHg0OSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDY2LCAweDJBLCAweEUwLCAweDZELCAweDY4LCAweDhBLCAweDVDLCAweENCKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QzQsIDB4OTMsIDB4NTMsIDB4ODUsIDB4QTEsIDB4MEQsIDB4QUYsIDB4NjMpLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AzODRyMV9UXzIyX1lbXSA9IHsKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MUIsIDB4ODgsIDB4OTUsIDB4NEMsIDB4MEIsIDB4RDAsIDB4MDYsIDB4NTEpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg5MiwgMHhBRiwgMHg4RCwgMHg0OSwgMHhBMiwgMHhDOCwgMHhCNCwgMHhFMCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDc1LCAweDc2LCAweDUzLCAweDA5LCAweDg4LCAweDQzLCAweDg3LCAweENBKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4OTAsIDB4QTQsIDB4NzcsIDB4M0YsIDB4NUUsIDB4MjEsIDB4QjQsIDB4MEEpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgzNSwgMHg5RSwgMHg4NiwgMHg2NCwgMHhDQywgMHg5MSwgMHhDMSwgMHg3NyksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEMxLCAweDE3LCAweDU2LCAweENCLCAweEMzLCAweDdELCAweDVCLCAweEIxKSwKLX07Ci1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMzg0cjFfVF8yM19YW10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDY0LCAweDc0LCAweDlGLCAweEI1LCAweDkxLCAweDIxLCAweEIxLCAweDFDKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MUUsIDB4RUQsIDB4RTEsIDB4MTEsIDB4RUYsIDB4NDUsIDB4QUYsIDB4QzEpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhFMCwgMHgzMSwgMHhCRSwgMHhCMiwgMHhCQywgMHg3MiwgMHg2NSwgMHgxRiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEIxLCAweDRCLCAweDhDLCAweDc3LCAweENFLCAweDFFLCAweDQyLCAweEI1KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RkYsIDB4QzksIDB4QUEsIDB4QjksIDB4RDksIDB4ODYsIDB4OTksIDB4NTUpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg2NSwgMHgyMywgMHg4MCwgMHhDNiwgMHg0RSwgMHgzNSwgMHgwQiwgMHg2RCksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDM4NHIxX1RfMjNfWVtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg0NywgMHhEOCwgMHhBMiwgMHgwQSwgMHgzOSwgMHgzMiwgMHgxRCwgMHgyMyksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDYxLCAweEM4LCAweDg2LCAweEYxLCAweDEyLCAweDlBLCAweDRBLCAweDA1KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4OEQsIDB4RjEsIDB4N0MsIDB4QUEsIDB4NzAsIDB4OEUsIDB4QkMsIDB4MDEpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg2MiwgMHgwMSwgMHg0NywgMHg4RiwgMHhERCwgMHg4QiwgMHhBNSwgMHhDOCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweERCLCAweDA4LCAweDIxLCAweEY0LCAweEFCLCAweEM3LCAweEY1LCAweDk2KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MEEsIDB4NzYsIDB4QTUsIDB4OTUsIDB4QzQsIDB4MEYsIDB4ODgsIDB4MUQpLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AzODRyMV9UXzI0X1hbXSA9IHsKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4M0YsIDB4NDIsIDB4MkEsIDB4NTIsIDB4Q0QsIDB4NzUsIDB4NTEsIDB4NDkpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg5MCwgMHgzNiwgMHhFNSwgMHgwNCwgMHgyQiwgMHg0NCwgMHhDNiwgMHhFRiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDVDLCAweEVFLCAweDE2LCAweDEzLCAweDA3LCAweDgzLCAweEI1LCAweDMwKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NzYsIDB4NTksIDB4QzYsIDB4QTIsIDB4MTksIDB4MDUsIDB4RDMsIDB4QzYpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhCNiwgMHg4QiwgMHhBOCwgMHgxNiwgMHgwOSwgMHhCNywgMHhFQSwgMHhENiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDcwLCAweEVFLCAweDE0LCAweEFGLCAweEI1LCAweEZELCAweEQwLCAweEVGKSwKLX07Ci1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMzg0cjFfVF8yNF9ZW10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDE4LCAweDdDLCAweENBLCAweDcxLCAweDNFLCAweDZFLCAweDY2LCAweDc1KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QkUsIDB4MzEsIDB4MEUsIDB4M0YsIDB4RTUsIDB4OTEsIDB4QzQsIDB4N0YpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg4RSwgMHgzRCwgMHhDMiwgMHgzRSwgMHg5NSwgMHgzNywgMHg1OCwgMHgyQiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDAxLCAweDFGLCAweDAyLCAweDAzLCAweEYzLCAweEVGLCAweEVFLCAweDY2KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MjgsIDB4NUIsIDB4MUEsIDB4RkMsIDB4MzgsIDB4Q0QsIDB4RTgsIDB4MjQpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgxMiwgMHg1NywgMHg0MiwgMHg4NSwgMHhDNiwgMHgyMSwgMHg2OCwgMHg3MSksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDM4NHIxX1RfMjVfWFtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg4RCwgMHhBMiwgMHg0QSwgMHg2NiwgMHhCMSwgMHgwQSwgMHhFNiwgMHhDMCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDg2LCAweDBDLCAweDk0LCAweDlELCAweDVFLCAweDk5LCAweEIyLCAweENFKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QUQsIDB4MDMsIDB4NDAsIDB4Q0EsIDB4QjIsIDB4QjMsIDB4MzAsIDB4NTUpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg3NCwgMHg3OCwgMHg0OCwgMHgyNywgMHgzNCwgMHgxRSwgMHhFMiwgMHg0MiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEFFLCAweDcyLCAweDVCLCAweEFDLCAweEMxLCAweDZELCAweEUzLCAweDgyKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NTcsIDB4QUIsIDB4NDYsIDB4Q0IsIDB4RUEsIDB4NUUsIDB4NEIsIDB4MEIpLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AzODRyMV9UXzI1X1lbXSA9IHsKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RkMsIDB4MDgsIDB4QUQsIDB4NEUsIDB4NTEsIDB4OUYsIDB4MkEsIDB4NTIpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg2OCwgMHg1QywgMHg3RCwgMHg0QywgMHhENiwgMHhDRiwgMHhERCwgMHgwMiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEQ4LCAweDc2LCAweDI2LCAweEUwLCAweDhCLCAweDEwLCAweEQ5LCAweDdDKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MzAsIDB4QTcsIDB4MjMsIDB4NEUsIDB4NUYsIDB4RDIsIDB4NDIsIDB4MTcpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhEMSwgMHhFNSwgMHhBNCwgMHhFQywgMHg3NywgMHgyMSwgMHgzNCwgMHgyOCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDVDLCAweDE0LCAweDY1LCAweEVBLCAweDRBLCAweDg1LCAweEMzLCAweDJGKSwKLX07Ci1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMzg0cjFfVF8yNl9YW10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDE5LCAweEQ4LCAweDQwLCAweDI3LCAweDczLCAweDE1LCAweDdFLCAweDY1KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RjYsIDB4QkIsIDB4NTMsIDB4N0UsIDB4MEYsIDB4NDAsIDB4QzgsIDB4RDQpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhFQSwgMHgzNywgMHgxOSwgMHg3MywgMHhFRiwgMHg1QSwgMHg1RSwgMHgwNCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDlDLCAweDczLCAweDJCLCAweDQ5LCAweDdFLCAweEFDLCAweDk3LCAweDVDKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MTUsIDB4QjIsIDB4QzMsIDB4MUUsIDB4MEUsIDB4RTcsIDB4RDIsIDB4MjEpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg4QSwgMHgwOCwgMHhENiwgMHhERCwgMHhBQywgMHgyMSwgMHhENiwgMHgzRSksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDM4NHIxX1RfMjZfWVtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhBOSwgMHgyNiwgMHhCRSwgMHg2RCwgMHg2RCwgMHhGMiwgMHgzOCwgMHgzRiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDA4LCAweDZDLCAweDMxLCAweEE3LCAweDQ5LCAweDUwLCAweDNBLCAweDg5KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QzMsIDB4OTksIDB4QzYsIDB4RjUsIDB4RDIsIDB4QzIsIDB4MzAsIDB4NUEpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgyQSwgMHhFNCwgMHhGNiwgMHg4QiwgMHg4QiwgMHg5NywgMHhFOSwgMHhCMiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweERELCAweDIxLCAweEI3LCAweDBELCAweEZDLCAweDE1LCAweDU0LCAweDBCKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NjUsIDB4ODMsIDB4MUMsIDB4QTQsIDB4Q0QsIDB4NkIsIDB4OUQsIDB4RjIpLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AzODRyMV9UXzI3X1hbXSA9IHsKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RDYsIDB4RTgsIDB4NEMsIDB4NDgsIDB4RTQsIDB4QUEsIDB4NjksIDB4OTMpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgyNywgMHg3QSwgMHgyNywgMHhGQywgMHgzNywgMHg5NiwgMHgxQSwgMHg3QiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDZGLCAweEU3LCAweDMwLCAweEE1LCAweENGLCAweDEzLCAweDQ2LCAweDVDKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4OEMsIDB4RDgsIDB4QUYsIDB4NzQsIDB4MjMsIDB4NEQsIDB4NTYsIDB4ODQpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgzMiwgMHgzRCwgMHg0NCwgMHgxNCwgMHgxQiwgMHg5NywgMHg4MywgMHhGMCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEZBLCAweDQ3LCAweEQ3LCAweDVGLCAweEZELCAweDk4LCAweDM4LCAweEY3KSwKLX07Ci1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMzg0cjFfVF8yN19ZW10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEEzLCAweDczLCAweDY0LCAweDM2LCAweEZELCAweDdCLCAweEMxLCAweDE1KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RUEsIDB4NUQsIDB4MzIsIDB4RDIsIDB4NDcsIDB4OTQsIDB4ODksIDB4MkQpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg1MSwgMHhFOSwgMHgzMCwgMHhBQywgMHgwNiwgMHhDOCwgMHg2NSwgMHgwNCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEZBLCAweDZDLCAweEI5LCAweDFCLCAweEY3LCAweDYxLCAweDQ5LCAweDUzKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RDcsIDB4RkYsIDB4MzIsIDB4NDMsIDB4ODAsIDB4REEsIDB4QTYsIDB4QjEpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhBQywgMHhGOCwgMHgwNCwgMHgwMSwgMHg5NSwgMHgzNSwgMHhDRSwgMHgyMSksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDM4NHIxX1RfMjhfWFtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg2RCwgMHgwNiwgMHg0NiwgMHgwRCwgMHg1MSwgMHhFMiwgMHhEOCwgMHhBQyksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDE0LCAweDU3LCAweDFELCAweDZGLCAweDc5LCAweEEwLCAweENELCAweEE2KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4REYsIDB4RkIsIDB4MzYsIDB4Q0EsIDB4QUQsIDB4RjUsIDB4OUUsIDB4NDEpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg2RiwgMHg3QSwgMHgxRCwgMHg5RSwgMHgxRCwgMHg5NSwgMHg0OCwgMHhEQyksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDgxLCAweDI2LCAweEE1LCAweEI3LCAweDE1LCAweDJDLCAweEMyLCAweEM2KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4ODYsIDB4NDIsIDB4NzIsIDB4QUEsIDB4MTEsIDB4REMsIDB4QzksIDB4QjYpLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AzODRyMV9UXzI4X1lbXSA9IHsKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4M0YsIDB4NkMsIDB4NjQsIDB4QTcsIDB4NjIsIDB4M0MsIDB4QUIsIDB4RDQpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg0OCwgMHg2QSwgMHg0NCwgMHhEOCwgMHg2MCwgMHhDMCwgMHhBOCwgMHg4MCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDgyLCAweDc2LCAweDU4LCAweDEyLCAweDU3LCAweDNDLCAweDg5LCAweDQ2KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4ODIsIDB4NEYsIDB4ODMsIDB4Q0UsIDB4Q0IsIDB4QjgsIDB4RDAsIDB4MkMpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg5QSwgMHg4NCwgMHgwNCwgMHhCMCwgMHhBRCwgMHhFQiwgMHhGQSwgMHhERiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDM0LCAweEE0LCAweEMzLCAweDQxLCAweDQ0LCAweDRFLCAweDY1LCAweDNFKSwKLX07Ci1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMzg0cjFfVF8yOV9YW10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEI2LCAweDE2LCAweEE5LCAweDFDLCAweEU3LCAweDY1LCAweDIwLCAweEMxKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NTgsIDB4NTMsIDB4MzIsIDB4RjgsIDB4QzAsIDB4QTYsIDB4QkQsIDB4MkMpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhCNywgMHhGMCwgMHhFNiwgMHg1NywgMHgzMSwgMHhDQywgMHgyNiwgMHg2RiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDI3LCAweEUzLCAweDU0LCAweDFDLCAweDM0LCAweEQzLCAweDE3LCAweEJDKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RjUsIDB4QUUsIDB4RUQsIDB4RkIsIDB4Q0QsIDB4RTcsIDB4MUUsIDB4OUYpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg1QSwgMHgxNiwgMHgxQywgMHgzNCwgMHg0MCwgMHgwMCwgMHgxRiwgMHhCNiksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDM4NHIxX1RfMjlfWVtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg2QSwgMHgzMiwgMHgwMCwgMHhDMiwgMHhENCwgMHgzQiwgMHgxQSwgMHgwOSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDM0LCAweEUwLCAweDk5LCAweDhGLCAweDBDLCAweDRBLCAweDE2LCAweDQ0KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4ODMsIDB4NzMsIDB4MTgsIDB4MUIsIDB4RDQsIDB4OTQsIDB4MjksIDB4NjIpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgyOSwgMHhBNCwgMHgyRCwgMHhCMSwgMHg5RCwgMHg3NCwgMHgzMiwgMHg2NyksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEJGLCAweEY0LCAweEIxLCAweDBDLCAweDM3LCAweDYyLCAweDhCLCAweDY2KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QzksIDB4RkYsIDB4REEsIDB4RTIsIDB4MzUsIDB4QTMsIDB4QjYsIDB4NDIpLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AzODRyMV9UXzMwX1hbXSA9IHsKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4OTEsIDB4NDksIDB4OTksIDB4NjUsIDB4QzUsIDB4RUQsIDB4MTYsIDB4RUYpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg3OSwgMHg0MiwgMHg5QSwgMHhGMywgMHhBNywgMHg0RSwgMHg2RiwgMHgyQiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDdCLCAweDBBLCAweDdFLCAweEMwLCAweEQ3LCAweDRFLCAweDA3LCAweDU1KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RDYsIDB4N0EsIDB4MzEsIDB4NjksIDB4QTYsIDB4QjksIDB4MTUsIDB4MzQpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhBOCwgMHhFMCwgMHg3MiwgMHhBNCwgMHgzRiwgMHhCOSwgMHhGOCwgMHgwQyksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDJCLCAweDc1LCAweDMyLCAweDg1LCAweEEyLCAweERFLCAweDM3LCAweDEyKSwKLX07Ci1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMzg0cjFfVF8zMF9ZW10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEJDLCAweEMwLCAweDBELCAweENGLCAweDI1LCAweDQxLCAweEE0LCAweEY0KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4OUIsIDB4RkMsIDB4QjIsIDB4NDgsIDB4QzMsIDB4ODUsIDB4ODMsIDB4NEIpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgyQiwgMHhCRSwgMHgwQiwgMHg1OCwgMHgyRCwgMHg3QSwgMHg5QSwgMHg2MiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEM1LCAweEYzLCAweDgxLCAweDE4LCAweDFCLCAweDc0LCAweDRGLCAweDJDKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RTIsIDB4NDMsIDB4QTMsIDB4MEEsIDB4MTYsIDB4OEIsIDB4QTMsIDB4MUUpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg0QSwgMHgxOCwgMHg4MSwgMHg3QiwgMHg4RCwgMHhBMiwgMHgzNSwgMHg3NyksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDM4NHIxX1RfMzFfWFtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg4NiwgMHhDNCwgMHgzRiwgMHgyQywgMHhFNywgMHg1RiwgMHg5OSwgMHgwMyksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEYwLCAweDJCLCAweEI3LCAweEI2LCAweEFELCAweDVBLCAweDU2LCAweEZGKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MDQsIDB4MDAsIDB4QTQsIDB4NDgsIDB4QzgsIDB4RTgsIDB4QkEsIDB4QkYpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhFOCwgMHhBMSwgMHhCNSwgMHgxMywgMHg1QSwgMHhDRCwgMHg5OSwgMHg5QyksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEIwLCAweDk1LCAweEFELCAweEZDLCAweEUyLCAweDdFLCAweEU3LCAweEZFKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4OTYsIDB4NkIsIDB4RDEsIDB4MzQsIDB4OTksIDB4NTMsIDB4NjMsIDB4MEIpLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AzODRyMV9UXzMxX1lbXSA9IHsKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MTksIDB4OEEsIDB4NzcsIDB4NUQsIDB4MkIsIDB4QUIsIDB4MDEsIDB4MjgpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg0RSwgMHg4NSwgMHhEMCwgMHhENSwgMHg0OSwgMHg4MywgMHg0RCwgMHg2MCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDgxLCAweEM2LCAweDkxLCAweDMwLCAweDNCLCAweDAwLCAweEFGLCAweDdBKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4M0EsIDB4QUUsIDB4NjEsIDB4MDcsIDB4RTEsIDB4QjYsIDB4RTIsIDB4QzkpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg5NSwgMHg0MywgMHg0MSwgMHhGRSwgMHg5QiwgMHhCNiwgMHhGMCwgMHhBNSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEI0LCAweDk3LCAweEFFLCAweEFELCAweDg5LCAweDg4LCAweDlFLCAweDQxKSwKLX07Ci1zdGF0aWMgY29uc3QgbWJlZHRsc19lY3BfcG9pbnQgc2VjcDM4NHIxX1RbMzJdID0gewotICAgIEVDUF9QT0lOVF9JTklUX1hZX1oxKHNlY3AzODRyMV9UXzBfWCwgc2VjcDM4NHIxX1RfMF9ZKSwKLSAgICBFQ1BfUE9JTlRfSU5JVF9YWV9aMChzZWNwMzg0cjFfVF8xX1gsIHNlY3AzODRyMV9UXzFfWSksCi0gICAgRUNQX1BPSU5UX0lOSVRfWFlfWjAoc2VjcDM4NHIxX1RfMl9YLCBzZWNwMzg0cjFfVF8yX1kpLAotICAgIEVDUF9QT0lOVF9JTklUX1hZX1owKHNlY3AzODRyMV9UXzNfWCwgc2VjcDM4NHIxX1RfM19ZKSwKLSAgICBFQ1BfUE9JTlRfSU5JVF9YWV9aMChzZWNwMzg0cjFfVF80X1gsIHNlY3AzODRyMV9UXzRfWSksCi0gICAgRUNQX1BPSU5UX0lOSVRfWFlfWjAoc2VjcDM4NHIxX1RfNV9YLCBzZWNwMzg0cjFfVF81X1kpLAotICAgIEVDUF9QT0lOVF9JTklUX1hZX1owKHNlY3AzODRyMV9UXzZfWCwgc2VjcDM4NHIxX1RfNl9ZKSwKLSAgICBFQ1BfUE9JTlRfSU5JVF9YWV9aMChzZWNwMzg0cjFfVF83X1gsIHNlY3AzODRyMV9UXzdfWSksCi0gICAgRUNQX1BPSU5UX0lOSVRfWFlfWjAoc2VjcDM4NHIxX1RfOF9YLCBzZWNwMzg0cjFfVF84X1kpLAotICAgIEVDUF9QT0lOVF9JTklUX1hZX1owKHNlY3AzODRyMV9UXzlfWCwgc2VjcDM4NHIxX1RfOV9ZKSwKLSAgICBFQ1BfUE9JTlRfSU5JVF9YWV9aMChzZWNwMzg0cjFfVF8xMF9YLCBzZWNwMzg0cjFfVF8xMF9ZKSwKLSAgICBFQ1BfUE9JTlRfSU5JVF9YWV9aMChzZWNwMzg0cjFfVF8xMV9YLCBzZWNwMzg0cjFfVF8xMV9ZKSwKLSAgICBFQ1BfUE9JTlRfSU5JVF9YWV9aMChzZWNwMzg0cjFfVF8xMl9YLCBzZWNwMzg0cjFfVF8xMl9ZKSwKLSAgICBFQ1BfUE9JTlRfSU5JVF9YWV9aMChzZWNwMzg0cjFfVF8xM19YLCBzZWNwMzg0cjFfVF8xM19ZKSwKLSAgICBFQ1BfUE9JTlRfSU5JVF9YWV9aMChzZWNwMzg0cjFfVF8xNF9YLCBzZWNwMzg0cjFfVF8xNF9ZKSwKLSAgICBFQ1BfUE9JTlRfSU5JVF9YWV9aMChzZWNwMzg0cjFfVF8xNV9YLCBzZWNwMzg0cjFfVF8xNV9ZKSwKLSAgICBFQ1BfUE9JTlRfSU5JVF9YWV9aMChzZWNwMzg0cjFfVF8xNl9YLCBzZWNwMzg0cjFfVF8xNl9ZKSwKLSAgICBFQ1BfUE9JTlRfSU5JVF9YWV9aMChzZWNwMzg0cjFfVF8xN19YLCBzZWNwMzg0cjFfVF8xN19ZKSwKLSAgICBFQ1BfUE9JTlRfSU5JVF9YWV9aMChzZWNwMzg0cjFfVF8xOF9YLCBzZWNwMzg0cjFfVF8xOF9ZKSwKLSAgICBFQ1BfUE9JTlRfSU5JVF9YWV9aMChzZWNwMzg0cjFfVF8xOV9YLCBzZWNwMzg0cjFfVF8xOV9ZKSwKLSAgICBFQ1BfUE9JTlRfSU5JVF9YWV9aMChzZWNwMzg0cjFfVF8yMF9YLCBzZWNwMzg0cjFfVF8yMF9ZKSwKLSAgICBFQ1BfUE9JTlRfSU5JVF9YWV9aMChzZWNwMzg0cjFfVF8yMV9YLCBzZWNwMzg0cjFfVF8yMV9ZKSwKLSAgICBFQ1BfUE9JTlRfSU5JVF9YWV9aMChzZWNwMzg0cjFfVF8yMl9YLCBzZWNwMzg0cjFfVF8yMl9ZKSwKLSAgICBFQ1BfUE9JTlRfSU5JVF9YWV9aMChzZWNwMzg0cjFfVF8yM19YLCBzZWNwMzg0cjFfVF8yM19ZKSwKLSAgICBFQ1BfUE9JTlRfSU5JVF9YWV9aMChzZWNwMzg0cjFfVF8yNF9YLCBzZWNwMzg0cjFfVF8yNF9ZKSwKLSAgICBFQ1BfUE9JTlRfSU5JVF9YWV9aMChzZWNwMzg0cjFfVF8yNV9YLCBzZWNwMzg0cjFfVF8yNV9ZKSwKLSAgICBFQ1BfUE9JTlRfSU5JVF9YWV9aMChzZWNwMzg0cjFfVF8yNl9YLCBzZWNwMzg0cjFfVF8yNl9ZKSwKLSAgICBFQ1BfUE9JTlRfSU5JVF9YWV9aMChzZWNwMzg0cjFfVF8yN19YLCBzZWNwMzg0cjFfVF8yN19ZKSwKLSAgICBFQ1BfUE9JTlRfSU5JVF9YWV9aMChzZWNwMzg0cjFfVF8yOF9YLCBzZWNwMzg0cjFfVF8yOF9ZKSwKLSAgICBFQ1BfUE9JTlRfSU5JVF9YWV9aMChzZWNwMzg0cjFfVF8yOV9YLCBzZWNwMzg0cjFfVF8yOV9ZKSwKLSAgICBFQ1BfUE9JTlRfSU5JVF9YWV9aMChzZWNwMzg0cjFfVF8zMF9YLCBzZWNwMzg0cjFfVF8zMF9ZKSwKLSAgICBFQ1BfUE9JTlRfSU5JVF9YWV9aMChzZWNwMzg0cjFfVF8zMV9YLCBzZWNwMzg0cjFfVF8zMV9ZKSwKLX07Ci0jZWxzZQotI2RlZmluZSBzZWNwMzg0cjFfVCBOVUxMCi0jZW5kaWYKLQotI2VuZGlmIC8qIE1CRURUTFNfRUNQX0RQX1NFQ1AzODRSMV9FTkFCTEVEICovCi0KLS8qCi0gKiBEb21haW4gcGFyYW1ldGVycyBmb3Igc2VjcDUyMXIxCi0gKi8KLSNpZiBkZWZpbmVkKE1CRURUTFNfRUNQX0RQX1NFQ1A1MjFSMV9FTkFCTEVEKQotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDUyMXIxX3BbXSA9IHsKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RkYsIDB4RkYsIDB4RkYsIDB4RkYsIDB4RkYsIDB4RkYsIDB4RkYsIDB4RkYpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEZGLCAweEZGLCAweEZGLCAweEZGLCAweEZGLCAweEZGLCAweEZGLCAweEZGKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RkYsIDB4RkYsIDB4RkYsIDB4RkYsIDB4RkYsIDB4RkYsIDB4RkYsIDB4RkYpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEZGLCAweEZGLCAweEZGLCAweEZGLCAweEZGLCAweEZGLCAweEZGLCAweEZGKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RkYsIDB4RkYsIDB4RkYsIDB4RkYsIDB4RkYsIDB4RkYsIDB4RkYsIDB4RkYpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfMigweEZGLCAweDAxKSwKLX07Ci1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwNTIxcjFfYltdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgwMCwgMHgzRiwgMHg1MCwgMHg2QiwgMHhENCwgMHgxRiwgMHg0NSwgMHhFRiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEYxLCAweDM0LCAweDJDLCAweDNELCAweDg4LCAweERGLCAweDczLCAweDM1KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MDcsIDB4QkYsIDB4QjEsIDB4M0IsIDB4QkQsIDB4QzAsIDB4NTIsIDB4MTYpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg3QiwgMHg5MywgMHg3RSwgMHhFQywgMHg1MSwgMHgzOSwgMHgxOSwgMHg1NiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEUxLCAweDA5LCAweEYxLCAweDhFLCAweDkxLCAweDg5LCAweEI0LCAweEI4KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RjMsIDB4MTUsIDB4QjMsIDB4OTksIDB4NUIsIDB4NzIsIDB4REEsIDB4QTIpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhFRSwgMHg0MCwgMHg4NSwgMHhCNiwgMHhBMCwgMHgyMSwgMHg5QSwgMHg5MiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDFGLCAweDlBLCAweDFDLCAweDhFLCAweDYxLCAweEI5LCAweDNFLCAweDk1KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF8yKDB4NTEsIDB4MDApLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3A1MjFyMV9neFtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg2NiwgMHhCRCwgMHhFNSwgMHhDMiwgMHgzMSwgMHg3RSwgMHg3RSwgMHhGOSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDlCLCAweDQyLCAweDZBLCAweDg1LCAweEMxLCAweEIzLCAweDQ4LCAweDMzKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4REUsIDB4QTgsIDB4RkYsIDB4QTIsIDB4MjcsIDB4QzEsIDB4MUQsIDB4RkUpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgyOCwgMHg1OSwgMHhFNywgMHhFRiwgMHg3NywgMHg1RSwgMHg0QiwgMHhBMSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEJBLCAweDNELCAweDRELCAweDZCLCAweDYwLCAweEFGLCAweDI4LCAweEY4KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MjEsIDB4QjUsIDB4M0YsIDB4MDUsIDB4MzksIDB4ODEsIDB4NjQsIDB4OUMpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg0MiwgMHhCNCwgMHg5NSwgMHgyMywgMHg2NiwgMHhDQiwgMHgzRSwgMHg5RSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweENELCAweEU5LCAweDA0LCAweDA0LCAweEI3LCAweDA2LCAweDhFLCAweDg1KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF8yKDB4QzYsIDB4MDApLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3A1MjFyMV9neVtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg1MCwgMHg2NiwgMHhEMSwgMHg5RiwgMHg3NiwgMHg5NCwgMHhCRSwgMHg4OCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDQwLCAweEMyLCAweDcyLCAweEEyLCAweDg2LCAweDcwLCAweDNDLCAweDM1KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NjEsIDB4MDcsIDB4QUQsIDB4M0YsIDB4MDEsIDB4QjksIDB4NTAsIDB4QzUpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg0MCwgMHgyNiwgMHhGNCwgMHg1RSwgMHg5OSwgMHg3MiwgMHhFRSwgMHg5NyksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDJDLCAweDY2LCAweDNFLCAweDI3LCAweDE3LCAweEJELCAweEFGLCAweDE3KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NjgsIDB4NDQsIDB4OUIsIDB4NTcsIDB4NDksIDB4NDQsIDB4RjUsIDB4OTgpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhEOSwgMHgxQiwgMHg3RCwgMHgyQywgMHhCNCwgMHg1RiwgMHg4QSwgMHg1QyksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDA0LCAweEMwLCAweDNCLCAweDlBLCAweDc4LCAweDZBLCAweDI5LCAweDM5KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF8yKDB4MTgsIDB4MDEpLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3A1MjFyMV9uW10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDA5LCAweDY0LCAweDM4LCAweDkxLCAweDFFLCAweEI3LCAweDZGLCAweEJCKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QUUsIDB4NDcsIDB4OUMsIDB4ODksIDB4QjgsIDB4QzksIDB4QjUsIDB4M0IpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhEMCwgMHhBNSwgMHgwOSwgMHhGNywgMHg0OCwgMHgwMSwgMHhDQywgMHg3RiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDZCLCAweDk2LCAweDJGLCAweEJGLCAweDgzLCAweDg3LCAweDg2LCAweDUxKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RkEsIDB4RkYsIDB4RkYsIDB4RkYsIDB4RkYsIDB4RkYsIDB4RkYsIDB4RkYpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEZGLCAweEZGLCAweEZGLCAweEZGLCAweEZGLCAweEZGLCAweEZGLCAweEZGKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RkYsIDB4RkYsIDB4RkYsIDB4RkYsIDB4RkYsIDB4RkYsIDB4RkYsIDB4RkYpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzIoMHhGRiwgMHgwMSksCi19OwotI2lmIE1CRURUTFNfRUNQX0ZJWEVEX1BPSU5UX09QVElNID09IDEKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3A1MjFyMV9UXzBfWFtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg2NiwgMHhCRCwgMHhFNSwgMHhDMiwgMHgzMSwgMHg3RSwgMHg3RSwgMHhGOSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDlCLCAweDQyLCAweDZBLCAweDg1LCAweEMxLCAweEIzLCAweDQ4LCAweDMzKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4REUsIDB4QTgsIDB4RkYsIDB4QTIsIDB4MjcsIDB4QzEsIDB4MUQsIDB4RkUpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgyOCwgMHg1OSwgMHhFNywgMHhFRiwgMHg3NywgMHg1RSwgMHg0QiwgMHhBMSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEJBLCAweDNELCAweDRELCAweDZCLCAweDYwLCAweEFGLCAweDI4LCAweEY4KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MjEsIDB4QjUsIDB4M0YsIDB4MDUsIDB4MzksIDB4ODEsIDB4NjQsIDB4OUMpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg0MiwgMHhCNCwgMHg5NSwgMHgyMywgMHg2NiwgMHhDQiwgMHgzRSwgMHg5RSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweENELCAweEU5LCAweDA0LCAweDA0LCAweEI3LCAweDA2LCAweDhFLCAweDg1KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QzYsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDApLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3A1MjFyMV9UXzBfWVtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg1MCwgMHg2NiwgMHhEMSwgMHg5RiwgMHg3NiwgMHg5NCwgMHhCRSwgMHg4OCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDQwLCAweEMyLCAweDcyLCAweEEyLCAweDg2LCAweDcwLCAweDNDLCAweDM1KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NjEsIDB4MDcsIDB4QUQsIDB4M0YsIDB4MDEsIDB4QjksIDB4NTAsIDB4QzUpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg0MCwgMHgyNiwgMHhGNCwgMHg1RSwgMHg5OSwgMHg3MiwgMHhFRSwgMHg5NyksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDJDLCAweDY2LCAweDNFLCAweDI3LCAweDE3LCAweEJELCAweEFGLCAweDE3KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NjgsIDB4NDQsIDB4OUIsIDB4NTcsIDB4NDksIDB4NDQsIDB4RjUsIDB4OTgpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhEOSwgMHgxQiwgMHg3RCwgMHgyQywgMHhCNCwgMHg1RiwgMHg4QSwgMHg1QyksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDA0LCAweEMwLCAweDNCLCAweDlBLCAweDc4LCAweDZBLCAweDI5LCAweDM5KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MTgsIDB4MDEsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDApLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3A1MjFyMV9UXzFfWFtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgyRiwgMHhCMSwgMHgyRCwgMHhFQiwgMHgyNywgMHgyRiwgMHhFOCwgMHhEQSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDk4LCAweDRCLCAweDQ0LCAweDI1LCAweERCLCAweDVDLCAweDVGLCAweDY3KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MTMsIDB4ODUsIDB4MjgsIDB4NzgsIDB4MkUsIDB4NzUsIDB4MzQsIDB4MzIpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg2OSwgMHg1NywgMHgwRiwgMHg3MywgMHg3OCwgMHg3QSwgMHhFMywgMHg1MyksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDhELCAweEQ4LCAweEVDLCAweERDLCAweERBLCAweDA0LCAweEFELCAweEFCKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MzQsIDB4OEEsIDB4MDksIDB4RjMsIDB4NTgsIDB4NzksIDB4RDgsIDB4MjkpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg2MywgMHgwMywgMHhDQiwgMHg1MCwgMHgxQSwgMHg3RiwgMHg1NiwgMHgwMCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEY2LCAweEE2LCAweDc4LCAweDM4LCAweDg1LCAweDY3LCAweDBCLCAweDQwKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4ODMsIDB4MDEsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDApLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3A1MjFyMV9UXzFfWVtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg4QSwgMHhENSwgMHhEMiwgMHgyMiwgMHhDNCwgMHgwMCwgMHgzQiwgMHhCQSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEQ1LCAweDkzLCAweDBFLCAweDdCLCAweDg1LCAweDUxLCAweEMzLCAweDA2KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4M0QsIDB4QTYsIDB4NUYsIDB4NTQsIDB4NDksIDB4MDIsIDB4ODEsIDB4NzgpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgyMiwgMHhFOSwgMHg2QiwgMHgzQSwgMHg5MiwgMHhFNywgMHg3MiwgMHgxRCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDZGLCAweDVGLCAweDI4LCAweDlFLCAweDkxLCAweDI3LCAweDg4LCAweEUzKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RUYsIDB4MjgsIDB4MzEsIDB4QjMsIDB4ODQsIDB4Q0EsIDB4MTIsIDB4MzIpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgzRCwgMHhGOSwgMHhBQywgMHgyMiwgMHgxMCwgMHgwQSwgMHg2NCwgMHg0MSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEU5LCAweEM2LCAweDMzLCAweDFGLCAweDY5LCAweDE5LCAweDE4LCAweEJGKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QkUsIDB4MDEsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDApLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3A1MjFyMV9UXzJfWFtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhBMCwgMHg0OCwgMHhCOCwgMHhDNywgMHgzNywgMHg1QSwgMHgwMCwgMHgzNiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDA3LCAweENDLCAweDMyLCAweEUwLCAweEVFLCAweDAzLCAweEMyLCAweEJBKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QzQsIDB4MjksIDB4QzIsIDB4RTQsIDB4NkUsIDB4MjQsIDB4MjAsIDB4OEQpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgwNiwgMHg2QiwgMHg3RiwgMHg3QiwgMHhGOSwgMHhCMCwgMHhCOCwgMHgxMyksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDFELCAweDdCLCAweDNDLCAweEUxLCAweDE5LCAweEExLCAweDIzLCAweDAyKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MkEsIDB4RTMsIDB4QzIsIDB4NTMsIDB4QzAsIDB4MDcsIDB4MTMsIDB4QTkpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgwNywgMHhGRSwgMHgzNiwgMHgzNSwgMHg5RiwgMHg1RSwgMHg1OSwgMHhDRSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDFELCAweDU1LCAweDg5LCAweDg0LCAweEJDLCAweEVGLCAweEEyLCAweEMyKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MTksIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDApLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3A1MjFyMV9UXzJfWVtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhGRCwgMHgxQSwgMHgwOCwgMHg2NywgMHhCNCwgMHhFNywgMHgyMiwgMHhFRCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDc2LCAweDI2LCAweERGLCAweDgxLCAweDNDLCAweDVGLCAweDFDLCAweERBKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RTAsIDB4NEQsIDB4RDAsIDB4MEEsIDB4NDgsIDB4MDYsIDB4RjQsIDB4NDgpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg3MywgMHgxOCwgMHgzOSwgMHhGNywgMHhEMSwgMHgyMCwgMHg3NywgMHg4RCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDc4LCAweDhGLCAweDQ0LCAweDEzLCAweENCLCAweDc4LCAweDExLCAweDExKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MzMsIDB4RTIsIDB4NDksIDB4RUEsIDB4NDMsIDB4NzksIDB4MDgsIDB4MzkpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgwMSwgMHhEMSwgMHhEOCwgMHg3MywgMHgyQywgMHg3MSwgMHgyRiwgMHg2OSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDIxLCAweEU1LCAweEU3LCAweEY0LCAweDQ2LCAweEFCLCAweDIwLCAweENBKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NUEsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDApLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3A1MjFyMV9UXzNfWFtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg4QywgMHgwQiwgMHhCOSwgMHg3MSwgMHgxQSwgMHgyNywgMHhCNywgMHhBNyksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDJBLCAweEEyLCAweDJDLCAweEQxLCAweERBLCAweEJDLCAweEMxLCAweEJEKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MTAsIDB4QTMsIDB4MTAsIDB4MUYsIDB4OTAsIDB4RjIsIDB4QTUsIDB4NTIpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgyOCwgMHhGQiwgMHgyMCwgMHhGNCwgMHhDMCwgMHg3MCwgMHhDMCwgMHhGNSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDhGLCAweEE3LCAweDk5LCAweEYwLCAweEE1LCAweEQzLCAweDA5LCAweEREKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MjYsIDB4RTgsIDB4MTQsIDB4MzksIDB4QkUsIDB4Q0IsIDB4NjAsIDB4QUYpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg5RiwgMHhENiwgMHgxNCwgMHhBOSwgMHhDOSwgMHgyMCwgMHhDMywgMHhFQSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDVELCAweEE4LCAweDVCLCAweEZELCAweDJELCAweDk2LCAweEJDLCAweDc4KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QzAsIDB4MDEsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDApLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3A1MjFyMV9UXzNfWVtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg5RCwgMHgwNCwgMHg0NSwgMHhCRSwgMHhDRSwgMHg3NSwgMHg5NSwgMHhGNiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweENDLCAweERBLCAweDU4LCAweDQ5LCAweDM1LCAweDA5LCAweDhELCAweDQxKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NzYsIDB4RjAsIDB4QzAsIDB4MzYsIDB4RjIsIDB4QTYsIDB4MkQsIDB4MTQpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhFNywgMHhGQywgMHgzRCwgMHhBOCwgMHhGQiwgMHgzQywgMHhEMiwgMHg1MSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDAxLCAweDRELCAweDcxLCAweDA5LCAweDE4LCAweDQyLCAweEYwLCAweDJEKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4OEQsIDB4QzEsIDB4Q0UsIDB4OUUsIDB4NkEsIDB4NDksIDB4NjAsIDB4MTIpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhBRCwgMHhCMSwgMHgwMCwgMHhGNywgMHhBMSwgMHg3QSwgMHgzMSwgMHhCNCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDQxLCAweEMzLCAweDg2LCAweENELCAweDIwLCAweDRBLCAweDE3LCAweDg2KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NkMsIDB4MDEsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDApLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3A1MjFyMV9UXzRfWFtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg5OCwgMHhBQiwgMHg4QiwgMHg0NywgMHg4RCwgMHhBQSwgMHhBNiwgMHg1QiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEM0LCAweDk3LCAweEYwLCAweEJDLCAweDJELCAweERDLCAweDlELCAweDg0KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MDEsIDB4ODYsIDB4QjAsIDB4NzQsIDB4QjIsIDB4RjQsIDB4RjYsIDB4NjcpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhBQywgMHhCRCwgMHhBQywgMHhFMywgMHg4RiwgMHg0MywgMHg1QywgMHhCMSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDM3LCAweEMzLCAweEUyLCAweDZFLCAweDI1LCAweDQ5LCAweENELCAweDBCKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NjQsIDB4NUUsIDB4MDgsIDB4QjMsIDB4QjksIDB4QUMsIDB4NUYsIDB4RDEpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgwOCwgMHhCNywgMHhEMSwgMHhGNCwgMHhEQywgMHgxOSwgMHhFOSwgMHhDOCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDQ5LCAweEU0LCAweEZBLCAweEUxLCAweDM2LCAweDNFLCAweEVELCAweDZFKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MEEsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDApLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3A1MjFyMV9UXzRfWVtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgwMCwgMHg2NywgMHg5MiwgMHg4NCwgMHg2RSwgMHg0OCwgMHgwMywgMHg1MSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDlFLCAweDk1LCAweEVGLCAweDhGLCAweEIyLCAweDgyLCAweDZCLCAweDFDKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4OEQsIDB4RkEsIDB4QjksIDB4NTUsIDB4MjMsIDB4RkUsIDB4MDksIDB4QjMpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhFRiwgMHg3OSwgMHg4NSwgMHg0QiwgMHgwRSwgMHhENCwgMHgzNSwgMHhEQiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDlBLCAweDI3LCAweDQ1LCAweDgxLCAweEUwLCAweDg4LCAweDUyLCAweEFEKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MTcsIDB4NjMsIDB4QTIsIDB4NEIsIDB4QkMsIDB4NUQsIDB4QjEsIDB4OTIpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgyOCwgMHg4QywgMHg4MywgMHhEOSwgMHgzRSwgMHhEMywgMHg0MiwgMHhEQSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDk5LCAweDAzLCAweDNBLCAweDMxLCAweEJBLCAweEU5LCAweDNBLCAweEQxKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NDcsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDApLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3A1MjFyMV9UXzVfWFtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgzNSwgMHgxMCwgMHhDRCwgMHgyRCwgMHgwMCwgMHhGRSwgMHgzMiwgMHhBNyksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEU0LCAweDZFLCAweDFGLCAweERBLCAweEY4LCAweDZGLCAweDRELCAweDAzKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MDksIDB4NzksIDB4N0QsIDB4MDksIDB4RTUsIDB4RDMsIDB4MDMsIDB4MjEpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg1OCwgMHhDMywgMHhCRSwgMHhERiwgMHgwNywgMHg2NSwgMHg0OSwgMHhDQyksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDA4LCAweDU3LCAweDMzLCAweEVGLCAweEFFLCAweDRGLCAweDA0LCAweDI3KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4OUEsIDB4RTksIDB4OUIsIDB4RkUsIDB4QkYsIDB4RTYsIDB4ODUsIDB4RjYpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhCRCwgMHhCQSwgMHhBQSwgMHgwNiwgMHhDNCwgMHhDNiwgMHhCOCwgMHg1NyksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDBDLCAweDgzLCAweDAxLCAweEE5LCAweEY2LCAweDUxLCAweEU3LCAweEI4KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MUIsIDB4MDEsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDApLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3A1MjFyMV9UXzVfWVtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhCOSwgMHhBNiwgMHgxNSwgMHg4RSwgMHhBQiwgMHgxRiwgMHgxMCwgMHg4NyksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDc0LCAweDA4LCAweDI3LCAweDFBLCAweEExLCAweDIxLCAweEFELCAweEY1KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MDIsIDB4MDksIDB4OTAsIDB4NkUsIDB4NTAsIDB4OTAsIDB4OUEsIDB4NUQpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg4NiwgMHg5QSwgMHhGRSwgMHhENywgMHhBMSwgMHhGNSwgMHhBMiwgMHgxNSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEU4LCAweDdELCAweEUzLCAweERDLCAweDIxLCAweEZCLCAweEE0LCAweDdCKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QjksIDB4QkYsIDB4MDcsIDB4RkYsIDB4NDUsIDB4REYsIDB4NTEsIDB4NzcpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgwQiwgMHg1QywgMHgzNCwgMHgwMiwgMHg2MiwgMHg5QiwgMHgwOCwgMHgxMiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDg2LCAweENFLCAweDlBLCAweDZBLCAweEVDLCAweDc1LCAweEY2LCAweDQ2KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NkQsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDApLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3A1MjFyMV9UXzZfWFtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhFNiwgMHg1OSwgMHhGNCwgMHg3OCwgMHgzQywgMHg2MCwgMHhCMSwgMHg0QSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDNFLCAweDM3LCAweDg0LCAweDZBLCAweERDLCAweEYyLCAweDlBLCAweDdEKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NDAsIDB4OUEsIDB4OUEsIDB4MTUsIDB4MzYsIDB4RTAsIDB4MkIsIDB4MkQpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhFQywgMHgzOCwgMHg5QywgMHg1MCwgMHgzRCwgMHgxRSwgMHgzNywgMHg4MiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEI3LCAweDc5LCAweEYwLCAweDkyLCAweEYyLCAweDhCLCAweDE4LCAweDgyKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MTcsIDB4RTAsIDB4ODIsIDB4MUUsIDB4ODAsIDB4ODIsIDB4NEIsIDB4RDcpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhGQSwgMHhCQiwgMHg1OSwgMHg2QiwgMHg4QSwgMHg3NywgMHg0MSwgMHg0MCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEE3LCAweEY5LCAweEQ0LCAweEI4LCAweDRBLCAweDgyLCAweENGLCAweDQwKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NUQsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDApLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3A1MjFyMV9UXzZfWVtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgxRSwgMHg4QywgMHhDOCwgMHg5QiwgMHg3MiwgMHg5RSwgMHhGNywgMHhGOSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEI4LCAweENFLCAweEU5LCAweDc3LCAweDBBLCAweDE5LCAweDU5LCAweDg0KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4OUQsIDB4QTEsIDB4NDEsIDB4NkEsIDB4NzIsIDB4NEIsIDB4QjQsIDB4REMpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgwQiwgMHgzNSwgMHg0MywgMHhFMiwgMHg4QywgMHhCRSwgMHgwRCwgMHhFMyksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEMxLCAweEVCLCAweEFELCAweEYzLCAweEE5LCAweEE2LCAweDY4LCAweEExKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4ODEsIDB4MkYsIDB4RTIsIDB4NDgsIDB4MEMsIDB4REIsIDB4MUYsIDB4NDIpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhEMSwgMHgxRSwgMHg2MCwgMHg5QiwgMHgyQSwgMHhEMiwgMHhDMSwgMHgzQyksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEMwLCAweDY0LCAweEI1LCAweEQyLCAweEY2LCAweEY2LCAweDZFLCAweDIyKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NzAsIDB4MDEsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDApLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3A1MjFyMV9UXzdfWFtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhDNiwgMHgzRCwgMHgzMCwgMHg3OCwgMHgxMCwgMHgxOCwgMHg0MSwgMHg1MSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDk2LCAweDFELCAweDFDLCAweEUwLCAweDZELCAweDgzLCAweEQxLCAweDkzKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4N0IsIDB4MDMsIDB4MEIsIDB4RjUsIDB4MkYsIDB4NkMsIDB4MDQsIDB4OTgpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg2QywgMHgzRSwgMHhENSwgMHhGQywgMHgzMSwgMHg1QiwgMHgzQSwgMHhFQiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDUwLCAweDgyLCAweDJGLCAweEZCLCAweEZFLCAweEY4LCAweDc2LCAweDM5KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4ODUsIDB4MjYsIDB4REEsIDB4OUMsIDB4MzYsIDB4RjUsIDB4OTMsIDB4RDEpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg0QywgMHhFNywgMHg2RSwgMHhEMiwgMHg3RCwgMHg4MSwgMHgwOSwgMHhDNiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEQzLCAweDAzLCAweEY5LCAweDU4LCAweDQ4LCAweDI0LCAweEEyLCAweEVFKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RTksIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDApLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3A1MjFyMV9UXzdfWVtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgxQiwgMHg3OSwgMHgwQywgMHg4RSwgMHg2QiwgMHg5NSwgMHhGMywgMHhDNCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEY0LCAweDEwLCAweDVDLCAweDg3LCAweDAzLCAweDM5LCAweENGLCAweDY4KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QUQsIDB4RjAsIDB4RjcsIDB4QzEsIDB4MDcsIDB4QTQsIDB4RjQsIDB4M0YpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgzMiwgMHhFOCwgMHgwMiwgMHg4OSwgMHg2NSwgMHhDNCwgMHg3MiwgMHgzNiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEI0LCAweDg4LCAweEVBLCAweDk2LCAweDY3LCAweDBCLCAweDVELCAweERGKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QTgsIDB4NzUsIDB4NjAsIDB4QTgsIDB4QkQsIDB4NzQsIDB4REYsIDB4NjgpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg2RSwgMHhFNSwgMHg3MSwgMHg1MCwgMHg2NywgMHhEMCwgMHhEMiwgMHhFNiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEQ1LCAweEZDLCAweEU1LCAweEM3LCAweDc3LCAweEIwLCAweDdGLCAweDhDKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RjEsIDB4MDEsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDApLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3A1MjFyMV9UXzhfWFtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg5NywgMHg4NiwgMHg2OSwgMHhDRCwgMHgwRCwgMHg5QSwgMHhCRCwgMHg2NiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDU4LCAweDE3LCAweEJDLCAweEJCLCAweDU5LCAweDg1LCAweDdELCAweDBFKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4OEQsIDB4QTgsIDB4NzYsIDB4QUMsIDB4ODAsIDB4QTksIDB4NzIsIDB4RTApLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg3NCwgMHg3OCwgMHhDMSwgMHhFMiwgMHg0RCwgMHhBRiwgMHhGOSwgMHgzQyksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEFELCAweDk3LCAweDhFLCAweDc0LCAweEM0LCAweDRCLCAweEIyLCAweDg1KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RUEsIDB4RDgsIDB4RjYsIDB4RjMsIDB4QUYsIDB4MkYsIDB4NTIsIDB4RTUpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg5NSwgMHg1NywgMHhGNCwgMHhDRSwgMHhFRSwgMHg0MywgMHhFRCwgMHg2MCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDdELCAweDQ2LCAweDM4LCAweERFLCAweDIwLCAweEZELCAweDU5LCAweDE4KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RDcsIDB4MDEsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDApLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3A1MjFyMV9UXzhfWVtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgxQywgMHgxOCwgMHhFOCwgMHg1OCwgMHhCOSwgMHg3NiwgMHgyQywgMHhFNiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEVELCAweDU0LCAweEU0LCAweEZFLCAweEM3LCAweEJDLCAweDMxLCAweDM3KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RjUsIDB4RjgsIDB4ODksIDB4RUUsIDB4NzAsIDB4QjUsIDB4QjAsIDB4MkMpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg4MywgMHgyMiwgMHgyNiwgMHg5QSwgMHg1MywgMHhCOSwgMHgzOCwgMHgwQSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDc0LCAweEE3LCAweDE5LCAweDhDLCAweDc0LCAweDdFLCAweDg4LCAweDQ2KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QjQsIDB4REEsIDB4MEEsIDB4RTgsIDB4REEsIDB4QTUsIDB4QkUsIDB4MUQpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg5MCwgMHg1QywgMHhGNywgMHhCMSwgMHgwQywgMHg3MiwgMHhGQiwgMHgwOSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDc4LCAweEUyLCAweDIzLCAweEU3LCAweDQ2LCAweEI3LCAweEUwLCAweDkxKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QzUsIDB4MDEsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDApLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3A1MjFyMV9UXzlfWFtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgzQSwgMHgzNiwgMHhCQywgMHhCRCwgMHg0OCwgMHgxMSwgMHg4RSwgMHg3MiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEFCLCAweEJCLCAweEExLCAweEY3LCAweDBCLCAweDlFLCAweEJGLCAweERGKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NjgsIDB4MjgsIDB4RTEsIDB4QTIsIDB4OEYsIDB4RkMsIDB4RkMsIDB4RDYpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg4MSwgMHhGRSwgMHgxOSwgMHgwQSwgMHhFNSwgMHhFNywgMHg2OSwgMHgzOSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDVFLCAweENELCAweDEyLCAweEY1LCAweEJFLCAweEQzLCAweDA0LCAweEYxKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RjUsIDB4QTgsIDB4MEQsIDB4ODEsIDB4NTksIDB4QzQsIDB4NzksIDB4OTgpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhBMywgMHhGMywgMHg0QiwgMHg5MiwgMHg2NSwgMHhDMywgMHgzMSwgMHhBRCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDc1LCAweEI1LCAweDRGLCAweDRELCAweDkxLCAweEQ0LCAweEUyLCAweEIyKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NTEsIDB4MDEsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDApLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3A1MjFyMV9UXzlfWVtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg3MiwgMHgwOSwgMHg0MSwgMHg3OSwgMHgxRCwgMHg0RCwgMHgwRCwgMHgzMyksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEJCLCAweDMxLCAweDE4LCAweEJBLCAweEEwLCAweEYyLCAweDZFLCAweDdFKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4OTMsIDB4NUIsIDB4NEQsIDB4NEYsIDB4QUYsIDB4QzksIDB4OEMsIDB4QTEpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg0OCwgMHg5OSwgMHg5QywgMHgwNiwgMHg2OCwgMHhERSwgMHhEOCwgMHgyOSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEEwLCAweDA0LCAweEUxLCAweEI1LCAweDlELCAweDAwLCAweEJDLCAweEI4KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NjEsIDB4OTUsIDB4OTIsIDB4OEQsIDB4NzIsIDB4RDMsIDB4MzcsIDB4NDIpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhBQiwgMHg0QiwgMHgyNywgMHhBMiwgMHhFOCwgMHhBNCwgMHgyNiwgMHhBMSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDRGLCAweDQ1LCAweDlDLCAweEE5LCAweENCLCAweDlGLCAweEJBLCAweDg1KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4Q0IsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDApLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3A1MjFyMV9UXzEwX1hbXSA9IHsKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MDgsIDB4N0UsIDB4MUIsIDB4NjQsIDB4RjQsIDB4RTgsIDB4QTUsIDB4NTUpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhGNywgMHgyMCwgMHhBOSwgMHhDQSwgMHhGMywgMHg4OSwgMHhFNSwgMHhFMSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDgzLCAweEVELCAweEZDLCAweEFCLCAweEQ5LCAweDBBLCAweEI5LCAweDA3KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MDgsIDB4NkYsIDB4NDYsIDB4N0MsIDB4Q0QsIDB4NzgsIDB4RkYsIDB4MDUpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg2OSwgMHhBQiwgMHg3MSwgMHg1QSwgMHg5NCwgMHhBQiwgMHgyMCwgMHgyMCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEMyLCAweDJFLCAweEVFLCAweDg3LCAweDU3LCAweDFGLCAweEFELCAweEQzKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4OTEsIDB4NEMsIDB4M0QsIDB4RkIsIDB4N0UsIDB4QTEsIDB4OEIsIDB4MDcpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg2OSwgMHhDRiwgMHgwNywgMHg4NiwgMHhCQSwgMHg1MywgMHgzNywgMHhDRiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDM4LCAweDAxLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwKSwKLX07Ci1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwNTIxcjFfVF8xMF9ZW10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDAwLCAweDI2LCAweEIyLCAweEI5LCAweEUyLCAweDkxLCAweEUzLCAweEI1KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NzksIDB4QzksIDB4NTQsIDB4ODQsIDB4MDgsIDB4M0QsIDB4MEIsIDB4RDIpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg1RCwgMHhBOCwgMHg3NywgMHgyRiwgMHg2NCwgMHg0NSwgMHg5OSwgMHg0QyksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDg3LCAweDk2LCAweDE2LCAweDFGLCAweERCLCAweDk2LCAweDI4LCAweDk3KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4ODMsIDB4MkIsIDB4OEQsIDB4RkYsIDB4QTIsIDB4NEYsIDB4NTUsIDB4RDMpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg3MSwgMHhFNiwgMHg0OCwgMHhCRCwgMHg5OSwgMHgzRCwgMHgxMiwgMHg1NyksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDNGLCAweDg0LCAweDU5LCAweERBLCAweEI5LCAweEI2LCAweDY2LCAweDEyKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NkQsIDB4NzgsIDB4NDEsIDB4OTIsIDB4REYsIDB4RjQsIDB4M0YsIDB4NjMpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgxRiwgMHgwMSwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDUyMXIxX1RfMTFfWFtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg3RSwgMHg4NiwgMHg2RiwgMHg0RiwgMHhCRiwgMHg2NywgMHhERiwgMHgyRiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEYyLCAweDJCLCAweDFFLCAweDVGLCAweDAwLCAweEVBLCAweEY2LCAweDU2KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4OTAsIDB4QjksIDB4NkEsIDB4ODksIDB4RDgsIDB4QzAsIDB4RDcsIDB4QTcpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhDQiwgMHg5QSwgMHgzMiwgMHgyMywgMHhBMCwgMHgwMiwgMHg5MSwgMHg1OCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDQyLCAweDdGLCAweDZBLCAweDE1LCAweDY0LCAweDZBLCAweDhCLCAweEJCKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4OEEsIDB4NTcsIDB4ODIsIDB4NTgsIDB4QTksIDB4NTYsIDB4QjUsIDB4RkIpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhERCwgMHg1MCwgMHg5MiwgMHg2MCwgMHhDQywgMHg4MSwgMHgyNCwgMHhBOCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDM2LCAweDNELCAweEFELCAweERBLCAweEQ5LCAweDUxLCAweDNFLCAweDU3KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NUQsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDApLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3A1MjFyMV9UXzExX1lbXSA9IHsKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RUMsIDB4RkUsIDB4OEYsIDB4QjAsIDB4MEIsIDB4REUsIDB4MkUsIDB4N0UpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg3OSwgMHhEMiwgMHhCRSwgMHhFRiwgMHhBQywgMHg3NiwgMHg3MSwgMHhBMyksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDU1LCAweEU4LCAweDcyLCAweDBCLCAweEFDLCAweEZFLCAweENBLCAweDVBKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QUQsIDB4NUIsIDB4QzcsIDB4RkMsIDB4RTMsIDB4M0MsIDB4N0MsIDB4NEMpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhBMSwgMHgwNCwgMHhBNywgMHhCOSwgMHg5QiwgMHg5MywgMHhDMCwgMHgyRiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDQxLCAweDQ4LCAweDRCLCAweDhFLCAweDMyLCAweEM1LCAweEYwLCAweDZCKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QjAsIDB4NDIsIDB4MDcsIDB4QzEsIDB4RjIsIDB4RjEsIDB4NzIsIDB4NUIpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgxRSwgMHgzNywgMHg1NCwgMHg5QywgMHg4OCwgMHhEMiwgMHg2MiwgMHhBQSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEMxLCAweDAxLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwKSwKLX07Ci1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwNTIxcjFfVF8xMl9YW10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEMyLCAweDE5LCAweDhBLCAweDg5LCAweDU4LCAweEEyLCAweDBGLCAweERCKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MDEsIDB4Q0MsIDB4NEMsIDB4OTcsIDB4MzAsIDB4NjYsIDB4MzQsIDB4MjYpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg4MywgMHg2QSwgMHgxRSwgMHgxRiwgMHhEQiwgMHhDOSwgMHg1RSwgMHgxMyksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDFCLCAweDRELCAweDQ5LCAweEZGLCAweDlCLCAweDlDLCAweEFDLCAweDlCKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RDcsIDB4RTQsIDB4NEIsIDB4RjIsIDB4RDQsIDB4MUEsIDB4RDIsIDB4NzgpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhDRCwgMHhEQSwgMHhFOCwgMHg2MSwgMHg5RiwgMHhDOCwgMHg0OSwgMHgzMiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDUxLCAweENCLCAweEYyLCAweDJELCAweDg1LCAweEY2LCAweDhELCAweDUyKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QjcsIDB4QzUsIDB4Q0QsIDB4MkMsIDB4NzksIDB4QzYsIDB4MEUsIDB4NEYpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhEQiwgMHgwMSwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDUyMXIxX1RfMTJfWVtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg3MywgMHgxRCwgMHg1NSwgMHgwRiwgMHhGOCwgMHgyMiwgMHg5RiwgMHg3OCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDc2LCAweDU2LCAweEJBLCAweEU3LCAweDU3LCAweDMyLCAweEVDLCAweDQyKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NjUsIDB4OUEsIDB4QzYsIDB4NEMsIDB4MDksIDB4QzQsIDB4NTIsIDB4M0YpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhCNiwgMHgxRSwgMHg2RiwgMHhGNCwgMHg3RCwgMHgyNywgMHhERCwgMHhBRiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDk0LCAweDExLCAweDE2LCAweEVDLCAweDc5LCAweDgzLCAweEFELCAweEFFKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NDYsIDB4NEUsIDB4OTIsIDB4MUYsIDB4MTksIDB4N0QsIDB4NjUsIDB4REMpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgwOSwgMHhGRiwgMHg3OCwgMHgxNSwgMHg0NSwgMHg2MywgMHgzMiwgMHhFNCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEJGLCAweDkxLCAweEQwLCAweDc4LCAweDU4LCAweERBLCAweDUwLCAweDQ3KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NzMsIDB4MDEsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDApLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3A1MjFyMV9UXzEzX1hbXSA9IHsKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MjMsIDB4REUsIDB4NDAsIDB4RjYsIDB4NDEsIDB4QjQsIDB4M0IsIDB4OTUpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhDNiwgMHg4RCwgMHhFMCwgMHhFMSwgMHhBOSwgMHhGMCwgMHgzNSwgMHg1RCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEU2LCAweEQ0LCAweEJBLCAweDdCLCAweENDLCAweDFCLCAweDNBLCAweDMyKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RDAsIDB4NUEsIDB4MkUsIDB4NzQsIDB4NDcsIDB4MTQsIDB4QzMsIDB4NEQpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg3RCwgMHhGMCwgMHg4QiwgMHgwNiwgMHgxNSwgMHg4RSwgMHgwRSwgMHhDQSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEI1LCAweEQyLCAweEVCLCAweDk3LCAweDUwLCAweDdELCAweDMxLCAweEZDKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NDIsIDB4OTMsIDB4NEMsIDB4REIsIDB4OTcsIDB4NzksIDB4NDQsIDB4RjUpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg5QywgMHhBMiwgMHhBMCwgMHgwQiwgMHhDOCwgMHgzQSwgMHg4QSwgMHhGOSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDYxLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwKSwKLX07Ci1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwNTIxcjFfVF8xM19ZW10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDc5LCAweDUwLCAweDkyLCAweDlFLCAweDI0LCAweDFGLCAweENCLCAweDRDKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RDMsIDB4MTYsIDB4QzksIDB4QzUsIDB4M0QsIDB4NUEsIDB4QUYsIDB4OTcpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgxOCwgMHhFMywgMHg5NywgMHhFNCwgMHhBOCwgMHg1MCwgMHhGNiwgMHg3RSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDQ1LCAweDU3LCAweDk3LCAweDQyLCAweDc4LCAweDkyLCAweDQ5LCAweDBEKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QTUsIDB4RUIsIDB4NjIsIDB4MjQsIDB4RkIsIDB4OEYsIDB4MzIsIDB4Q0YpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhGMywgMHgwQywgMHgzNiwgMHg2RSwgMHg4RiwgMHhFOCwgMHhFOCwgMHg4RSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEMyLCAweEQzLCAweDdDLCAweEM3LCAweDhELCAweDNGLCAweDVDLCAweEUxKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NkEsIDB4NjQsIDB4NkEsIDB4NzMsIDB4MTAsIDB4NzksIDB4QjgsIDB4NUEpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhDQiwgMHgwMSwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDUyMXIxX1RfMTRfWFtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg1MSwgMHhGOSwgMHhFRiwgMHhBNSwgMHgyMCwgMHg0QSwgMHg1QywgMHhBMSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDJGLCAweEYzLCAweEY0LCAweDQ5LCAweDVCLCAweDczLCAweEFBLCAweDFCKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QzYsIDB4RjIsIDB4RUEsIDB4MEYsIDB4MDAsIDB4QUQsIDB4NTMsIDB4QUIpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgwMywgMHhCOCwgMHg2NiwgMHhFRCwgMHhDNCwgMHgyQiwgMHg0QywgMHgzNSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDNBLCAweDJGLCAweEMxLCAweDlBLCAweDM3LCAweEQyLCAweDdGLCAweDU4KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MjksIDB4QTcsIDB4ODEsIDB4MzgsIDB4NjQsIDB4QzksIDB4MzcsIDB4MzgpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhCRSwgMHgzQiwgMHg2QywgMHg5RiwgMHg1QiwgMHhEOSwgMHg4QiwgMHgxRCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEI2LCAweDE0LCAweEQ5LCAweDA4LCAweEQ4LCAweEQyLCAweDdFLCAweDIzKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MUMsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDApLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3A1MjFyMV9UXzE0X1lbXSA9IHsKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MTUsIDB4NzEsIDB4RTYsIDB4M0QsIDB4RDEsIDB4QjAsIDB4RTcsIDB4Q0QpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg1QiwgMHg4MSwgMHgyMywgMHhFQywgMHgyRCwgMHg0MiwgMHg0NSwgMHhFNiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDUxLCAweDVCLCAweDQ0LCAweDZCLCAweDg5LCAweDAzLCAweDY3LCAweDI4KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4ODQsIDB4MjcsIDB4QUUsIDB4ODAsIDB4NUEsIDB4MzMsIDB4QkUsIDB4MTEpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhFMywgMHhCNiwgMHg2NCwgMHgxQSwgMHhERiwgMHhEMywgMHg4NSwgMHg5MSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDY3LCAweDhDLCAweDIyLCAweEJBLCAweEQwLCAweEJELCAweENDLCAweEEwKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RjcsIDB4M0MsIDB4MDEsIDB4M0EsIDB4RkYsIDB4OUQsIDB4QzcsIDB4NkIpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgwQywgMHhDNywgMHg2NCwgMHhCNCwgMHg1OSwgMHg0RSwgMHg5RiwgMHgyMiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDg1LCAweDAxLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwKSwKLX07Ci1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwNTIxcjFfVF8xNV9YW10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEExLCAweDM0LCAweDBBLCAweDQxLCAweDk0LCAweEE4LCAweEYyLCAweEI3KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RjYsIDB4RDQsIDB4RTQsIDB4RjAsIDB4OTcsIDB4NDUsIDB4NkQsIDB4Q0EpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg4RiwgMHgxRiwgMHg0RCwgMHg2RCwgMHhGRSwgMHhBMCwgMHhDNCwgMHg4NCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDFELCAweDI4LCAweDVDLCAweDQwLCAweEJCLCAweDY1LCAweEQ0LCAweDQyKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4OTgsIDB4QTgsIDB4ODcsIDB4MzUsIDB4MjAsIDB4M0EsIDB4ODksIDB4NDQpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhENiwgMHhGRCwgMHg0RiwgMHhBQiwgMHgyRCwgMHhEMSwgMHhEMCwgMHhDMCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDg2LCAweEU4LCAweDAwLCAweEZDLCAweDY5LCAweDUyLCAweEY4LCAweEQ1KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RTEsIDB4OUEsIDB4OTksIDB4RTEsIDB4REMsIDB4OUMsIDB4M0YsIDB4RDkpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg5OSwgMHgwMSwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDUyMXIxX1RfMTVfWVtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgxMiwgMHgwOCwgMHg5OCwgMHhEOSwgMHhDQSwgMHg3MywgMHhENSwgMHhBOSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEI5LCAweDJDLCAweEUwLCAweEE3LCAweDNFLCAweDkxLCAweEQ3LCAweDg3KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NjgsIDB4MDQsIDB4QjAsIDB4NTQsIDB4MDksIDB4RjQsIDB4NzIsIDB4QjcpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhDOCwgMHhFRSwgMHgyOCwgMHhDQywgMHhFOCwgMHg1MCwgMHg3OCwgMHgyMCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDBELCAweDkxLCAweDAzLCAweDc2LCAweERCLCAweDY4LCAweDI0LCAweDc3KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4N0EsIDB4RTAsIDB4NTYsIDB4QjIsIDB4NUQsIDB4MTIsIDB4RDMsIDB4QjUpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgwRCwgMHg0MiwgMHg1OSwgMHg4QiwgMHhERiwgMHg2NywgMHhCNSwgMHhCRSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEQxLCAweENDLCAweEU1LCAweDMxLCAweDUzLCAweDdBLCAweDQ2LCAweEIzKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4REEsIDB4MDEsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDApLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3A1MjFyMV9UXzE2X1hbXSA9IHsKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4Q0MsIDB4OEQsIDB4NTksIDB4QjUsIDB4MUIsIDB4MEYsIDB4RjQsIDB4QUYpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhEOSwgMHgyRiwgMHhEMSwgMHgyQywgMHhFMCwgMHhEOCwgMHgwNCwgMHhFRiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEFDLCAweEY0LCAweEQ3LCAweEJBLCAweEIwLCAweEEzLCAweDdFLCAweEM5KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4Q0QsIDB4MDgsIDB4NTEsIDB4NTYsIDB4QTYsIDB4NzYsIDB4NjcsIDB4MzMpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg4QywgMHgxNywgMHg2MywgMHhGRSwgMHg1NiwgMHhEMCwgMHhEOSwgMHg3MSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEFBLCAweEY2LCAweEMzLCAweDE0LCAweDQ3LCAweEM1LCAweEE3LCAweDMxKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NzIsIDB4NEMsIDB4ODAsIDB4RjYsIDB4QTIsIDB4NTcsIDB4QTcsIDB4NUQpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgxMSwgMHhCMywgMHg3QiwgMHhGOCwgMHgyRiwgMHhFMSwgMHgzRSwgMHg3QiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEZBLCAweDAxLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwKSwKLX07Ci1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwNTIxcjFfVF8xNl9ZW10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDI2LCAweEY0LCAweEY5LCAweDZCLCAweDdCLCAweDkwLCAweERGLCAweDMwKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MUYsIDB4ODIsIDB4RUYsIDB4NjIsIDB4QTEsIDB4NEMsIDB4NTMsIDB4Q0EpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhFNiwgMHg5OSwgMHg3NiwgMHgwMSwgMHhCQSwgMHg4RCwgMHgwRiwgMHg1NCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEFGLCAweEY0LCAweDU4LCAweDczLCAweDU2LCAweEZFLCAweERELCAweDdDKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RjYsIDB4Q0UsIDB4RjksIDB4RTgsIDB4QTEsIDB4MzQsIDB4QzMsIDB4NUIpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgwOSwgMHg1RiwgMHhEQywgMHg2QSwgMHgzRCwgMHhEOCwgMHg3RiwgMHg0MiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEMyLCAweEY0LCAweDUxLCAweEI4LCAweEI4LCAweEMxLCAweEQ3LCAweDJGKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QUUsIDB4N0QsIDB4NTgsIDB4RDEsIDB4RDQsIDB4MUIsIDB4NEQsIDB4MjMpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhEMywgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDUyMXIxX1RfMTdfWFtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhCOSwgMHg5NSwgMHhERiwgMHgwMCwgMHhEOCwgMHgyMSwgMHhERSwgMHg5NCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEY3LCAweDQ3LCAweDNDLCAweEMzLCAweEIyLCAweDAxLCAweDUzLCAweDVEKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MUUsIDB4MTcsIDB4NDMsIDB4MjMsIDB4QkQsIDB4Q0EsIDB4NzEsIDB4RjIpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg3MCwgMHhCQSwgMHgwRiwgMHg0RiwgMHhEQywgMHg0MSwgMHg1NCwgMHhCRSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEQ2LCAweDM5LCAweDI2LCAweDcwLCAweDUzLCAweDMyLCAweDE4LCAweDExKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MzIsIDB4NDYsIDB4MDcsIDB4OTcsIDB4M0EsIDB4NTcsIDB4RTAsIDB4MDEpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhENiwgMHg5MiwgMHg0RiwgMHhDRSwgMHhERiwgMHgyNSwgMHg4MCwgMHgyNiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDVCLCAweDZGLCAweDlBLCAweDAzLCAweDA1LCAweDRCLCAweEQxLCAweDQ3KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NUQsIDB4MDEsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDApLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3A1MjFyMV9UXzE3X1lbXSA9IHsKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MjUsIDB4MDEsIDB4NzIsIDB4MzAsIDB4OTAsIDB4MTcsIDB4NTEsIDB4MjApLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg3NCwgMHhGQiwgMHg0MSwgMHg2NSwgMHg1QywgMHhCNCwgMHgyRCwgMHhFRSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDY2LCAweENELCAweENELCAweEFBLCAweDQxLCAweENDLCAweEJCLCAweDA3KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RDQsIDB4Q0UsIDB4MDgsIDB4MEEsIDB4NjMsIDB4RTksIDB4QTIsIDB4RkYpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgzRCwgMHhBOCwgMHgyMSwgMHg3RiwgMHg3QSwgMHg1QiwgMHg5QiwgMHg4MSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDEwLCAweDZCLCAweDg5LCAweDQ0LCAweDBBLCAweDdGLCAweDg1LCAweDVGKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4N0QsIDB4REUsIDB4N0MsIDB4MTksIDB4NUMsIDB4NjUsIDB4MjYsIDB4NjEpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhENywgMHhBQywgMHg2MiwgMHgyOSwgMHg0QSwgMHhGMSwgMHhEMCwgMHg4MSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDM4LCAweDAxLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwKSwKLX07Ci1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwNTIxcjFfVF8xOF9YW10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDMyLCAweDAwLCAweDQwLCAweDg3LCAweEVCLCAweEE5LCAweDU4LCAweDU2KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QUYsIDB4NTEsIDB4MEIsIDB4RkYsIDB4NTYsIDB4MzUsIDB4NTEsIDB4QjMpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg3QiwgMHhBQywgMHgwOCwgMHg5NCwgMHg3MSwgMHhEQSwgMHhFQywgMHg5OSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDVGLCAweDRELCAweEM1LCAweDdCLCAweDMxLCAweDhCLCAweDhELCAweDVFKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MTUsIDB4MDUsIDB4RjEsIDB4M0UsIDB4OUUsIDB4OEYsIDB4MTcsIDB4OEYpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhGMCwgMHg5QywgMHg0QiwgMHg2MiwgMHg5NCwgMHhBRCwgMHg0OSwgMHhGQyksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDBGLCAweEM5LCAweEM2LCAweDhGLCAweEZELCAweDMzLCAweDQ0LCAweDM0KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NUYsIDB4OTYsIDB4MTcsIDB4N0YsIDB4NDIsIDB4QkUsIDB4RjcsIDB4MEQpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhENCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDUyMXIxX1RfMThfWVtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhGQiwgMHgyOSwgMHgzOSwgMHgxMywgMHgwOCwgMHg4RCwgMHg5MSwgMHg0NyksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEY2LCAweDc5LCAweEY5LCAweDJGLCAweEE5LCAweDBBLCAweENGLCAweEQ2KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QUIsIDB4ODcsIDB4N0EsIDB4QTMsIDB4MTksIDB4QUIsIDB4NTUsIDB4QUQpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhFOCwgMHgwQiwgMHgwMSwgMHhDNSwgMHg1NiwgMHgxOSwgMHg5RCwgMHg5RSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDE5LCAweERFLCAweDgyLCAweDNCLCAweEVBLCAweEQzLCAweDBCLCAweDhDKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NjUsIDB4NkIsIDB4QzcsIDB4RjMsIDB4MEYsIDB4ODIsIDB4ODcsIDB4NkMpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhEOCwgMHgyRSwgMHgyMywgMHhGMiwgMHgzOSwgMHg5RCwgMHg0OSwgMHg3MCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDMxLCAweERFLCAweEFGLCAweDdBLCAweEVFLCAweEIwLCAweERBLCAweDcwKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NjMsIDB4MDEsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDApLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3A1MjFyMV9UXzE5X1hbXSA9IHsKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NzYsIDB4NEUsIDB4MkEsIDB4NTAsIDB4RkQsIDB4OEUsIDB4QzAsIDB4RUIpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg1MiwgMHgwRiwgMHg3QywgMHg3NiwgMHg2MywgMHhEOCwgMHg4OSwgMHg0NSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEVDLCAweDJELCAweEI5LCAweDRFLCAweEY0LCAweEVFLCAweDg1LCAweENGKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QzEsIDB4OTUsIDB4NUMsIDB4OTYsIDB4NUQsIDB4QUEsIDB4NTksIDB4MEIpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhDQSwgMHhEQiwgMHhEMiwgMHg2OCwgMHg4RSwgMHg1QSwgMHg5NCwgMHg2MCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEQ5LCAweDAyLCAweEJGLCAweDc3LCAweDlGLCAweEI5LCAweDRDLCAweEM5KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MkQsIDB4REMsIDB4QzAsIDB4Q0YsIDB4ODEsIDB4MUUsIDB4QzQsIDB4NkMpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgyQiwgMHhDQywgMHgzNywgMHg4NiwgMHhEQywgMHhFMiwgMHg2NCwgMHg3MiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEQ1LCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwKSwKLX07Ci1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwNTIxcjFfVF8xOV9ZW10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDJDLCAweDMwLCAweEIxLCAweDU5LCAweDIwLCAweDlELCAweDk4LCAweDI4KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NzcsIDB4MEMsIDB4OUQsIDB4RjgsIDB4MjAsIDB4REMsIDB4OTAsIDB4QkEpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhCMSwgMHhBMCwgMHhGNCwgMHhFNywgMHgzRSwgMHg5QywgMHg5RSwgMHhBMiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEI1LCAweDI1LCAweEEyLCAweEIwLCAweDU0LCAweENELCAweDJFLCAweDMzKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RUEsIDB4RDksIDB4NDIsIDB4QjAsIDB4ODAsIDB4QjAsIDB4QTMsIDB4MzgpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg5RiwgMHhGRSwgMHg5RCwgMHg4RCwgMHg0MCwgMHhGRiwgMHgyNywgMHg2RCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDNBLCAweDlELCAweEE2LCAweDg4LCAweDNBLCAweDhCLCAweDZGLCAweDE0KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QjYsIDB4MzksIDB4RUUsIDB4MUYsIDB4M0YsIDB4QjEsIDB4NEYsIDB4NjMpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgzMSwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDUyMXIxX1RfMjBfWFtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg2RCwgMHhENywgMHg5RSwgMHhGRiwgMHhEMiwgMHgzNSwgMHg2NywgMHgwMyksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweENBLCAweDRGLCAweDE1LCAweDVELCAweEUzLCAweEU4LCAweDUzLCAweDg2KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4OTIsIDB4RjcsIDB4MjQsIDB4OTgsIDB4QTIsIDB4Q0IsIDB4MTEsIDB4NjgpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgwNiwgMHgyRSwgMHgyNSwgMHhFMSwgMHg5NCwgMHhDNSwgMHhBMywgMHg5NiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEUwLCAweDgyLCAweDZFLCAweEJBLCAweEU3LCAweDQzLCAweDI1LCAweEIwKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MTgsIDB4NjUsIDB4QjQsIDB4NDksIDB4NzMsIDB4MTgsIDB4MzUsIDB4NTQpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg1OSwgMHg1QiwgMHhCQywgMHg2MiwgMHg4NiwgMHg0QywgMHhDMSwgMHhCNyksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDlCLCAweEYyLCAweDk1LCAweEEyLCAweEJCLCAweEEyLCAweDM1LCAweDY1KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QkYsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDApLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3A1MjFyMV9UXzIwX1lbXSA9IHsKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NzIsIDB4NTksIDB4NjIsIDB4QjAsIDB4NEIsIDB4MUUsIDB4QjQsIDB4RDgpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgwRCwgMHg1NSwgMHhDRSwgMHhCMCwgMHg2OSwgMHhCQSwgMHg2MywgMHgxMCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDZFLCAweDY5LCAweDg2LCAweERCLCAweDM0LCAweDdELCAweDY4LCAweDY0KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4REEsIDB4MDYsIDB4Q0EsIDB4NTUsIDB4NDQsIDB4MzYsIDB4MkIsIDB4QkEpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg2QywgMHhENCwgMHhDNCwgMHgzRCwgMHhDRCwgMHg5RSwgMHg2OSwgMHhBNCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDNGLCAweDQ0LCAweEU0LCAweEJGLCAweDMxLCAweEU2LCAweDQwLCAweDlGKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4N0UsIDB4NEYsIDB4RkEsIDB4NzUsIDB4RTMsIDB4RkIsIDB4OTcsIDB4MEUpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgwOCwgMHhDMCwgMHhCRCwgMHgxQywgMHg0OCwgMHhCMCwgMHgyNiwgMHhEMCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEQyLCAweDAxLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwKSwKLX07Ci1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwNTIxcjFfVF8yMV9YW10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDFDLCAweDdCLCAweDMyLCAweEZBLCAweEYyLCAweDZELCAweDg0LCAweDhFKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QTAsIDB4MjEsIDB4MDMsIDB4MUQsIDB4MEQsIDB4MjIsIDB4NTUsIDB4NjcpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgxOCwgMHhGOSwgMHg0MiwgMHgwMywgMHg5QywgMHhDMiwgMHhDQiwgMHhCQSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEY4LCAweEExLCAweDk2LCAweEQ5LCAweDlELCAweDExLCAweDZGLCAweEJFKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RkYsIDB4NDAsIDB4NTcsIDB4RUIsIDB4NDAsIDB4MkQsIDB4QzAsIDB4MTEpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgyRiwgMHg5NiwgMHhCQiwgMHg0RiwgMHgyRiwgMHgyMywgMHhBOCwgMHgyOCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDNBLCAweDI5LCAweDg1LCAweDIxLCAweEE1LCAweDUwLCAweDYyLCAweDA2KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QzksIDB4N0QsIDB4OTIsIDB4Q0YsIDB4ODcsIDB4MEMsIDB4MjIsIDB4RjkpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhDOSwgMHgwMSwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDUyMXIxX1RfMjFfWVtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg1QSwgMHgwRSwgMHhBNSwgMHgzMiwgMHg1QiwgMHhERiwgMHg5QywgMHhENSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDI3LCAweDk2LCAweDM3LCAweDJDLCAweDg4LCAweDM1LCAweDMwLCAweEExKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NDAsIDB4QjQsIDB4NjksIDB4RkYsIDB4RUIsIDB4QzYsIDB4OTQsIDB4MDgpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhDOSwgMHg1NSwgMHg2MCwgMHhBRCwgMHhBQSwgMHg1OCwgMHgxNCwgMHg4OCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDNDLCAweEZGLCAweEYyLCAweEIyLCAweEQ1LCAweEE3LCAweEQ5LCAweDI3KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MkQsIDB4QUUsIDB4NTQsIDB4RDIsIDB4NjAsIDB4MzEsIDB4RjMsIDB4MTUpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhCQiwgMHg5MiwgMHg4MywgMHhFMywgMHhGMSwgMHg0MiwgMHg4MywgMHg2RSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDQ5LCAweEQyLCAweEM4LCAweEI3LCAweDc2LCAweDQ1LCAweDdGLCAweDdEKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MDQsIDB4MDEsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDApLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3A1MjFyMV9UXzIyX1hbXSA9IHsKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NEEsIDB4MTEsIDB4QTQsIDB4RkIsIDB4N0EsIDB4MDEsIDB4QkMsIDB4QzgpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhDRCwgMHgyNywgMHg3MywgMHg4RCwgMHgwMiwgMHg5MSwgMHgyNywgMHg4RSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEE0LCAweDYyLCAweEY2LCAweERELCAweDZCLCAweEZBLCAweDVCLCAweEI5KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RUYsIDB4Q0EsIDB4QTIsIDB4NDQsIDB4MkMsIDB4RjAsIDB4MjgsIDB4RDgpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgzQywgMHhGMSwgMHg3QSwgMHhBMiwgMHg0MiwgMHg0QywgMHg1MCwgMHhDNiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDJELCAweDgzLCAweDNFLCAweDUwLCAweEFCLCAweDlDLCAweEY3LCAweDY3KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MUQsIDB4RUQsIDB4NzgsIDB4Q0IsIDB4NzYsIDB4NjksIDB4REEsIDB4NDIpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhEQiwgMHgwMSwgMHgxRSwgMHg0MywgMHgyNywgMHg0NywgMHg2RSwgMHhEQSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDk0LCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwKSwKLX07Ci1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwNTIxcjFfVF8yMl9ZW10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEQzLCAweDRGLCAweDU0LCAweEI5LCAweDNFLCAweEJELCAweEQ1LCAweDQ0KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QzksIDB4MzUsIDB4NDAsIDB4NjksIDB4N0YsIDB4NzQsIDB4OUQsIDB4MzIpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg1QSwgMHgwNiwgMHg2RiwgMHg2NywgMHg2OCwgMHgyQiwgMHg0RCwgMHgxMCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEM2LCAweDY1LCAweDQxLCAweEZDLCAweDdDLCAweDFFLCAweEU4LCAweEM4KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RjIsIDB4NzksIDB4MzcsIDB4QUYsIDB4RkQsIDB4RDIsIDB4REEsIDB4NEMpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgzMywgMHhBOCwgMHg2OSwgMHg1NiwgMHg2MiwgMHhBNCwgMHhFNCwgMHhBMyksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDQyLCAweDcxLCAweDczLCAweDIxLCAweDhBLCAweDE3LCAweDgxLCAweEEyKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MTQsIDB4NTUsIDB4OEYsIDB4N0IsIDB4QjgsIDB4QUYsIDB4RjcsIDB4ODYpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhBQSwgMHgwMSwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDUyMXIxX1RfMjNfWFtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg0QiwgMHhEMSwgMHhCRCwgMHhCRSwgMHg4QywgMHhCQywgMHg2MCwgMHg2RSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDYyLCAweEE2LCAweDU3LCAweDhDLCAweEFFLCAweDVDLCAweDE5LCAweEZFKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4N0EsIDB4NDMsIDB4RTQsIDB4RDksIDB4RDgsIDB4N0IsIDB4RTcsIDB4NDEpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhFRCwgMHhCOSwgMHhFNCwgMHg4NSwgMHg3QywgMHgyRSwgMHhGQywgMHgyMCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDAyLCAweDJFLCAweDAxLCAweDJBLCAweDZELCAweDU2LCAweEJFLCAweDk3KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NkEsIDB4MEMsIDB4MjUsIDB4OUIsIDB4QUUsIDB4ODYsIDB4MzcsIDB4NDMpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg0QSwgMHgyMiwgMHhCMywgMHhDQiwgMHg5OSwgMHg2NiwgMHhCNywgMHg5RSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDU2LCAweEY3LCAweDkwLCAweEYwLCAweDFCLCAweDA5LCAweDI3LCAweEY3KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QzgsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDApLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3A1MjFyMV9UXzIzX1lbXSA9IHsKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MUMsIDB4MTYsIDB4MDgsIDB4RUYsIDB4MzksIDB4NjQsIDB4NDksIDB4MzEpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgwOCwgMHhBMCwgMHhFMywgMHg5NywgMHhBOSwgMHgwNywgMHg1NCwgMHgyNiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweENELCAweEZGLCAweEUyLCAweDAwLCAweDA3LCAweDIxLCAweDg4LCAweDIwKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MTYsIDB4RkQsIDB4NTksIDB4NTMsIDB4MDUsIDB4NkMsIDB4NDIsIDB4MjcpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg4RiwgMHhGNywgMHgzOSwgMHg1QywgMHg4MiwgMHgzNiwgMHhFOCwgMHgwMyksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDJFLCAweDgzLCAweEE4LCAweEUyLCAweEE4LCAweDQzLCAweDA3LCAweDM4KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RTYsIDB4QUYsIDB4MkIsIDB4NzksIDB4RUQsIDB4RDgsIDB4MzksIDB4ODcpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgxNSwgMHgyMCwgMHg5MSwgMHg3QSwgMHhDNCwgMHgwNywgMHhFRiwgMHg2QyksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDI4LCAweDAxLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwKSwKLX07Ci1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwNTIxcjFfVF8yNF9YW10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDZBLCAweDEwLCAweDJGLCAweEFBLCAweDBDLCAweDk0LCAweDBFLCAweDVBKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QjcsIDB4ODEsIDB4ODcsIDB4NDEsIDB4MjMsIDB4RUIsIDB4NTUsIDB4N0MpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhCOCwgMHg1MywgMHhDQywgMHg3OSwgMHhCNiwgMHhFQiwgMHg2QywgMHhDQyksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEY0LCAweDc3LCAweDczLCAweDlELCAweEZDLCAweDY0LCAweDZGLCAweDdGKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4M0MsIDB4NDAsIDB4RTMsIDB4NkQsIDB4MUMsIDB4MTYsIDB4NzEsIDB4MTUpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg1QSwgMHhGNCwgMHgxQiwgMHhGRiwgMHgxQywgMHgyRiwgMHhBNSwgMHhENyksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDA2LCAweDBFLCAweDBCLCAweDExLCAweEY0LCAweDhELCAweDkzLCAweEFGKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NTgsIDB4QzUsIDB4NjQsIDB4NkYsIDB4MjQsIDB4MTksIDB4RjIsIDB4OUIpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgxQywgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDUyMXIxX1RfMjRfWVtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg1MiwgMHhCMywgMHhBRiwgMHhBNSwgMHgwRSwgMHg0RiwgMHg1RSwgMHhFMSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDBGLCAweDc3LCAweENBLCAweEYyLCAweDZELCAweEM1LCAweEY2LCAweDlGKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4OTAsIDB4MTgsIDB4OEUsIDB4MzMsIDB4NjgsIDB4NkMsIDB4RTgsIDB4RTApLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhGQywgMHg4QiwgMHg4MCwgMHg5MCwgMHgxOSwgMHg3RiwgMHg5MCwgMHg5NiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDVCLCAweDgwLCAweDZCLCAweDY4LCAweEUyLCAweDdELCAweEQ0LCAweEQwKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MkEsIDB4QzEsIDB4NjcsIDB4QjMsIDB4NzIsIDB4Q0IsIDB4QkYsIDB4MkYpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg0RiwgMHhENSwgMHhEMywgMHgxRCwgMHgxNCwgMHg1OCwgMHgwQSwgMHg4MCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDc5LCAweDdBLCAweDY1LCAweDk4LCAweEIzLCAweDA3LCAweDRCLCAweDJGKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RjMsIDB4MDEsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDApLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3A1MjFyMV9UXzI1X1hbXSA9IHsKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MkEsIDB4ODcsIDB4MEYsIDB4NUYsIDB4Q0YsIDB4QTIsIDB4MDEsIDB4MDgpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgwQywgMHhDOSwgMHhDOCwgMHg2RSwgMHgzNSwgMHg4NywgMHhBNSwgMHg2NyksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDk0LCAweDNFLCAweDkxLCAweEEwLCAweEFCLCAweDI0LCAweDFFLCAweEYyKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QjksIDB4QkMsIDB4MDIsIDB4MzUsIDB4NzAsIDB4QzEsIDB4NUYsIDB4OTgpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgyNiwgMHg1OSwgMHhBMCwgMHg1MCwgMHgwNCwgMHg4MCwgMHg1MiwgMHg4NSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEY4LCAweDU2LCAweDZFLCAweDQyLCAweDhGLCAweDhDLCAweDkxLCAweDY1KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QUMsIDB4QTIsIDB4Q0IsIDB4QTUsIDB4REUsIDB4MTQsIDB4MjQsIDB4MzgpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgwMCwgMHhDQiwgMHg3NCwgMHgyOCwgMHhFNiwgMHhBNywgMHhFNywgMHhDMyksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDVGLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwKSwKLX07Ci1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwNTIxcjFfVF8yNV9ZW10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDM1LCAweDczLCAweEE4LCAweDhGLCAweDlFLCAweDBFLCAweDYzLCAweDk2KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QzgsIDB4MUIsIDB4NzcsIDB4QzcsIDB4QzEsIDB4MzgsIDB4RjksIDB4REMpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhEOCwgMHgzQywgMHhDRiwgMHhBOCwgMHg3QSwgMHhENywgMHhGMywgMHhDNCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweERELCAweDVGLCAweDlBLCAweEM5LCAweEFELCAweEU5LCAweDFBLCAweDkzKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RkMsIDB4Q0YsIDB4MkIsIDB4NUUsIDB4RDUsIDB4ODEsIDB4OTUsIDB4QTgpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgxOSwgMHg4OCwgMHg3NSwgMHgyOSwgMHgxRiwgMHhDNywgMHhDNywgMHhEMCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEQ4LCAweEE5LCAweDVBLCAweDRELCAweDYzLCAweDk1LCAweEY5LCAweDRFKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RUIsIDB4Q0QsIDB4MDQsIDB4OEYsIDB4Q0QsIDB4OTEsIDB4REUsIDB4QzYpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg3MSwgMHgwMSwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDUyMXIxX1RfMjZfWFtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg4OCwgMHhENCwgMHhGRCwgMHgyNSwgMHgxMSwgMHg5OSwgMHg2RSwgMHhFQSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEIwLCAweDgzLCAweDAxLCAweDNELCAweEZCLCAweDU2LCAweEE1LCAweDRFKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QzIsIDB4M0EsIDB4REMsIDB4NzQsIDB4QzIsIDB4RDcsIDB4Q0YsIDB4RTgpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg4RiwgMHhCRCwgMHhGMSwgMHhERCwgMHhBMywgMHgwNywgMHgwMywgMHhFMiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDdCLCAweEJFLCAweEU5LCAweDJFLCAweDU4LCAweDg0LCAweDY2LCAweEZDKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NzEsIDB4MjAsIDB4NzgsIDB4MzcsIDB4NzksIDB4MEIsIDB4QTYsIDB4NjQpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhFMywgMHhGMiwgMHhBQywgMHg2NSwgMHhDOCwgMHhDOSwgMHgyRiwgMHg2MSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDI2LCAweDkzLCAweEU1LCAweDBELCAweDBDLCAweEM2LCAweEI4LCAweENCKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4OUMsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDApLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3A1MjFyMV9UXzI2X1lbXSA9IHsKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NjksIDB4QUQsIDB4NUMsIDB4MTksIDB4MTIsIDB4NjEsIDB4MEUsIDB4MjUpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgzOSwgMHg0RiwgMHgwQiwgMHgxRiwgMHg0OSwgMHg3RSwgMHhDRCwgMHg4MSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDQ2LCAweDJFLCAweDMwLCAweDYxLCAweERCLCAweDA4LCAweDY4LCAweDlCKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NDEsIDB4NzgsIDB4QUYsIDB4QjMsIDB4MDgsIDB4QzEsIDB4NjksIDB4RTUpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhDNCwgMHg1RiwgMHg1RCwgMHhDMSwgMHg1NywgMHg2RiwgMHhEOCwgMHgzNCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDM4LCAweEQzLCAweDZBLCAweEY3LCAweEZELCAweDg2LCAweEU1LCAweEIzKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QTgsIDB4NjMsIDB4QkQsIDB4NzAsIDB4N0IsIDB4NDcsIDB4RTgsIDB4NkQpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgxOCwgMHg2MiwgMHhDOCwgMHg3RSwgMHg5RCwgMHgxMSwgMHgyQiwgMHhBNSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEI2LCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwKSwKLX07Ci1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwNTIxcjFfVF8yN19YW10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEUyLCAweDg0LCAweEZELCAweEQ1LCAweDlBLCAweDU2LCAweDdGLCAweDVDKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4N0MsIDB4QkIsIDB4QTQsIDB4NkYsIDB4MTIsIDB4NkUsIDB4NEQsIDB4RjgpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgxRCwgMHgwOCwgMHhBMSwgMHg4MiwgMHg5QywgMHg2MiwgMHg3NCwgMHg3QiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDlFLCAweDU4LCAweDIyLCAweDA1LCAweDFELCAweDE1LCAweDM1LCAweDc5KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4OUEsIDB4ODgsIDB4Q0YsIDB4NUMsIDB4MDUsIDB4NzgsIDB4RkIsIDB4OTQpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhBQywgMHg2QiwgMHgyRiwgMHg3OSwgMHgwOSwgMHg3MywgMHg2NywgMHhFQyksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEQ4LCAweEEwLCAweDgwLCAweEQ4LCAweEU4LCAweEVDLCAweEZCLCAweDQyKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RjUsIDB4RTcsIDB4MEIsIDB4QjcsIDB4ODEsIDB4NDgsIDB4N0IsIDB4RDkpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhFMywgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDUyMXIxX1RfMjdfWVtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhFOCwgMHg1MywgMHhBOSwgMHhFRCwgMHg2MSwgMHg5MiwgMHhENywgMHg4NSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDI2LCAweDQ5LCAweEQ5LCAweDVELCAweDlCLCAweDRFLCAweDg5LCAweDM1KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QjgsIDB4MTIsIDB4RUIsIDB4OUEsIDB4QzksIDB4Q0IsIDB4QzEsIDB4OTUpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgzNSwgMHhEQywgMHg5NSwgMHgxNiwgMHhGRSwgMHgyOSwgMHg3MCwgMHgwMSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDY0LCAweDMzLCAweEIxLCAweEQ2LCAweDc4LCAweEI5LCAweEUyLCAweDM2KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MzQsIDB4Q0UsIDB4ODgsIDB4QzMsIDB4RkQsIDB4N0EsIDB4NkIsIDB4QjgpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg0MCwgMHgxRSwgMHg1MCwgMHgxRSwgMHhBRiwgMHhCMSwgMHgyNSwgMHgyRCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEMxLCAweEU3LCAweEQ3LCAweEQ1LCAweEJELCAweDdBLCAweDEyLCAweEY5KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MzEsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDApLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3A1MjFyMV9UXzI4X1hbXSA9IHsKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MjIsIDB4QUEsIDB4QTIsIDB4ODAsIDB4NUQsIDB4OEYsIDB4Q0QsIDB4QzgpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg0OCwgMHgzOSwgMHg3OSwgMHg2NCwgMHhBMSwgMHg2NywgMHgzQywgMHhCNyksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDNELCAweEM3LCAweDQ5LCAweEZGLCAweDdGLCAweEFDLCAweEFCLCAweDU1KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4ODEsIDB4NTQsIDB4M0UsIDB4ODMsIDB4RjAsIDB4M0QsIDB4QkMsIDB4QjUpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg4NywgMHg5MiwgMHg0QSwgMHgzOCwgMHg0MiwgMHg4QSwgMHhBQiwgMHhGNiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEU3LCAweDBCLCAweDRGLCAweEVFLCAweDlFLCAweDkyLCAweEE1LCAweEJFKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QkEsIDB4REQsIDB4MTksIDB4OTYsIDB4RjIsIDB4RjAsIDB4NkIsIDB4MkUpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhCRSwgMHhGQywgMHhERCwgMHhCMiwgMHg4QSwgMHhFNSwgMHg0QywgMHgyMiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEQ0LCAweDAxLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwKSwKLX07Ci1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwNTIxcjFfVF8yOF9ZW10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEI3LCAweDA2LCAweDQ5LCAweEFDLCAweDk5LCAweDdFLCAweEY4LCAweDEyKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NzYsIDB4QzgsIDB4MDEsIDB4NTEsIDB4RUEsIDB4RjYsIDB4NTIsIDB4RTcpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg0MywgMHg4OSwgMHg2NiwgMHgyQiwgMHgxRiwgMHg5QiwgMHgyQSwgMHhBMyksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweERGLCAweDBGLCAweDk1LCAweDA3LCAweDJCLCAweDZDLCAweDZFLCAweDlFKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MjQsIDB4QzMsIDB4QjQsIDB4QkIsIDB4OTEsIDB4MUYsIDB4QTMsIDB4NzIpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg1RiwgMHg2RSwgMHg1NCwgMHgyOCwgMHg3QiwgMHg5QywgMHg3OSwgMHgyRSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDAzLCAweDQ1LCAweEZGLCAweEE2LCAweERBLCAweEEyLCAweDgzLCAweDcxKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RUIsIDB4REUsIDB4OEYsIDB4MTcsIDB4MzcsIDB4ODIsIDB4Q0IsIDB4RTIpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgzMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDUyMXIxX1RfMjlfWFtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhEOCwgMHg5NCwgMHgzRiwgMHgyNiwgMHhDOSwgMHgxRCwgMHhEOSwgMHhBRSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDA5LCAweDk3LCAweDI4LCAweDIwLCAweENELCAweEMxLCAweEYzLCAweDQwKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4OTUsIDB4QzksIDB4QjUsIDB4NjAsIDB4OUIsIDB4MUUsIDB4REMsIDB4NzQpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg1QiwgMHhCOSwgMHg1QiwgMHg3RCwgMHhBMCwgMHhCMiwgMHg4QywgMHhGMCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDMzLCAweEQxLCAweDQyLCAweEU2LCAweDM5LCAweDMzLCAweDZELCAweEJCKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NUQsIDB4QzAsIDB4RkMsIDB4RDIsIDB4MTQsIDB4NUQsIDB4M0UsIDB4M0MpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg3OCwgMHg0QSwgMHgzRSwgMHg0MCwgMHgxNiwgMHg5MywgMHgxNSwgMHhDRiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEZBLCAweDI0LCAweEMxLCAweDI3LCAweDI3LCAweEU1LCAweDRCLCAweEQ4KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RDQsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDApLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3A1MjFyMV9UXzI5X1lbXSA9IHsKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MUQsIDB4NTAsIDB4RDgsIDB4QkMsIDB4QzEsIDB4NDYsIDB4MjIsIDB4QkIpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhBRCwgMHgwRSwgMHg2MCwgMHhBMSwgMHhCMywgMHg1MCwgMHhENCwgMHg4NiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDgwLCAweEIxLCAweDI2LCAweEI2LCAweDZELCAweDQ3LCAweDVBLCAweDZGKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NDUsIDB4QUMsIDB4MTEsIDB4MzUsIDB4M0UsIDB4QjksIDB4RjQsIDB4MDEpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg1OCwgMHg5NywgMHhGQSwgMHhCQiwgMHg2QiwgMHgzOSwgMHgxMywgMHhEOCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDE1LCAweDdCLCAweDM0LCAweDEyLCAweDc1LCAweDhFLCAweDlCLCAweEM2KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MkMsIDB4OUUsIDB4Q0QsIDB4MjksIDB4QjYsIDB4RUYsIDB4OEQsIDB4MTApLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg0NywgMHhBQywgMHhFOSwgMHgyNSwgMHgyNywgMHhCQiwgMHg3OCwgMHg0NyksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDJGLCAweDAxLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwKSwKLX07Ci1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwNTIxcjFfVF8zMF9YW10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDMwLCAweDdBLCAweEE4LCAweEQzLCAweEUzLCAweDY2LCAweEU1LCAweDY2KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MkYsIDB4NEMsIDB4QzQsIDB4MkMsIDB4NzYsIDB4ODEsIDB4NTAsIDB4MzIpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhFRSwgMHg3MSwgMHgwOCwgMHhCOCwgMHg1MiwgMHg3QywgMHhBRiwgMHhEQyksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDQ1LCAweDU5LCAweDI0LCAweERELCAweEZCLCAweDJGLCAweEQwLCAweERBKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QjcsIDB4Q0QsIDB4NTYsIDB4RTksIDB4QUMsIDB4OTEsIDB4RTYsIDB4QjkpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhFNSwgMHg2NCwgMHgyMCwgMHhDNiwgMHg5RiwgMHhFNCwgMHhFRiwgMHhERiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDZELCAweDJDLCAweDhGLCAweDhDLCAweDk3LCAweEY2LCAweDIyLCAweEMzKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QUMsIDB4RjQsIDB4ODgsIDB4QUEsIDB4QTgsIDB4RDcsIDB4QTUsIDB4NjgpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhERSwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDUyMXIxX1RfMzBfWVtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgyMSwgMHg2QywgMHhBRSwgMHg4MywgMHhCMSwgMHg1NSwgMHg1NSwgMHhFRSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEIwLCAweDY3LCAweDg0LCAweDQ3LCAweDdDLCAweDgzLCAweDVDLCAweDg5KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NUIsIDB4MTAsIDB4NEQsIDB4REQsIDB4MzAsIDB4NjAsIDB4QjAsIDB4RTYpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg1OSwgMHhBNywgMHgzNiwgMHg3NiwgMHgyNCwgMHgzMiwgMHg5RiwgMHg5RCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweERELCAweDQyLCAweDgxLCAweEZCLCAweEE0LCAweDJFLCAweDEzLCAweDY4KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4ODcsIDB4OTQsIDB4OTEsIDB4RkYsIDB4OTksIDB4QTAsIDB4MDksIDB4NjEpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg1RCwgMHg4MywgMHhBMSwgMHg3NiwgMHhBRiwgMHgzNywgMHg1QywgMHg3NyksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDFFLCAweEE4LCAweDA0LCAweDg2LCAweEM0LCAweEE5LCAweDc5LCAweDQyKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4OTMsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDApLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3A1MjFyMV9UXzMxX1hbXSA9IHsKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QjYsIDB4OEMsIDB4QzIsIDB4MzQsIDB4RkIsIDB4ODMsIDB4MjgsIDB4MjcpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhBNCwgMHgwMywgMHg3RCwgMHg1RSwgMHg5RSwgMHgwRSwgMHhCMCwgMHgyMiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEEyLCAweDAyLCAweDQ2LCAweDdGLCAweEI5LCAweEFDLCAweEJCLCAweDIzKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MDYsIDB4RUQsIDB4NDgsIDB4QzIsIDB4OTYsIDB4NEQsIDB4NTYsIDB4MjcpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg0NCwgMHhCNSwgMHhDNSwgMHhEMSwgMHhFNiwgMHgxQywgMHg3RSwgMHg5QiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDkyLCAweDJFLCAweDE4LCAweDcxLCAweDJELCAweDdCLCAweEQ3LCAweEIzKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QUIsIDB4NDYsIDB4OUQsIDB4REUsIDB4QUEsIDB4NzgsIDB4OEUsIDB4QjEpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg0RCwgMHhENywgMHg2OSwgMHgyRSwgMHhFMSwgMHhEOSwgMHg0OCwgMHhERSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEZCLCAweDAxLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwKSwKLX07Ci1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwNTIxcjFfVF8zMV9ZW10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEFGLCAweEZGLCAweDlFLCAweDA5LCAweDIyLCAweDIyLCAweEU2LCAweDhEKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NkMsIDB4MTQsIDB4MjgsIDB4MTMsIDB4MUIsIDB4NjIsIDB4MTIsIDB4MjIpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhDQywgMHg3RiwgMHg2NywgMHgwMywgMHhCMCwgMHhDMCwgMHhGMywgMHgwNSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEMwLCAweEMzLCAweDBGLCAweEZCLCAweDI1LCAweDQ4LCAweDNFLCAweEY0KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MEIsIDB4NkUsIDB4NTMsIDB4OTgsIDB4MzYsIDB4QjMsIDB4RDMsIDB4OTQpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhFQiwgMHg4MSwgMHg1NCwgMHgyMiwgMHhBNCwgMHhDQywgMHhDMSwgMHgyMiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEY1LCAweEJBLCAweEZDLCAweEE5LCAweERGLCAweDY4LCAweDg2LCAweDJCKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NzEsIDB4OTIsIDB4MEUsIDB4QzMsIDB4RjIsIDB4NTgsIDB4RTgsIDB4NTEpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhFOSwgMHgwMSwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfZWNwX3BvaW50IHNlY3A1MjFyMV9UWzMyXSA9IHsKLSAgICBFQ1BfUE9JTlRfSU5JVF9YWV9aMShzZWNwNTIxcjFfVF8wX1gsIHNlY3A1MjFyMV9UXzBfWSksCi0gICAgRUNQX1BPSU5UX0lOSVRfWFlfWjAoc2VjcDUyMXIxX1RfMV9YLCBzZWNwNTIxcjFfVF8xX1kpLAotICAgIEVDUF9QT0lOVF9JTklUX1hZX1owKHNlY3A1MjFyMV9UXzJfWCwgc2VjcDUyMXIxX1RfMl9ZKSwKLSAgICBFQ1BfUE9JTlRfSU5JVF9YWV9aMChzZWNwNTIxcjFfVF8zX1gsIHNlY3A1MjFyMV9UXzNfWSksCi0gICAgRUNQX1BPSU5UX0lOSVRfWFlfWjAoc2VjcDUyMXIxX1RfNF9YLCBzZWNwNTIxcjFfVF80X1kpLAotICAgIEVDUF9QT0lOVF9JTklUX1hZX1owKHNlY3A1MjFyMV9UXzVfWCwgc2VjcDUyMXIxX1RfNV9ZKSwKLSAgICBFQ1BfUE9JTlRfSU5JVF9YWV9aMChzZWNwNTIxcjFfVF82X1gsIHNlY3A1MjFyMV9UXzZfWSksCi0gICAgRUNQX1BPSU5UX0lOSVRfWFlfWjAoc2VjcDUyMXIxX1RfN19YLCBzZWNwNTIxcjFfVF83X1kpLAotICAgIEVDUF9QT0lOVF9JTklUX1hZX1owKHNlY3A1MjFyMV9UXzhfWCwgc2VjcDUyMXIxX1RfOF9ZKSwKLSAgICBFQ1BfUE9JTlRfSU5JVF9YWV9aMChzZWNwNTIxcjFfVF85X1gsIHNlY3A1MjFyMV9UXzlfWSksCi0gICAgRUNQX1BPSU5UX0lOSVRfWFlfWjAoc2VjcDUyMXIxX1RfMTBfWCwgc2VjcDUyMXIxX1RfMTBfWSksCi0gICAgRUNQX1BPSU5UX0lOSVRfWFlfWjAoc2VjcDUyMXIxX1RfMTFfWCwgc2VjcDUyMXIxX1RfMTFfWSksCi0gICAgRUNQX1BPSU5UX0lOSVRfWFlfWjAoc2VjcDUyMXIxX1RfMTJfWCwgc2VjcDUyMXIxX1RfMTJfWSksCi0gICAgRUNQX1BPSU5UX0lOSVRfWFlfWjAoc2VjcDUyMXIxX1RfMTNfWCwgc2VjcDUyMXIxX1RfMTNfWSksCi0gICAgRUNQX1BPSU5UX0lOSVRfWFlfWjAoc2VjcDUyMXIxX1RfMTRfWCwgc2VjcDUyMXIxX1RfMTRfWSksCi0gICAgRUNQX1BPSU5UX0lOSVRfWFlfWjAoc2VjcDUyMXIxX1RfMTVfWCwgc2VjcDUyMXIxX1RfMTVfWSksCi0gICAgRUNQX1BPSU5UX0lOSVRfWFlfWjAoc2VjcDUyMXIxX1RfMTZfWCwgc2VjcDUyMXIxX1RfMTZfWSksCi0gICAgRUNQX1BPSU5UX0lOSVRfWFlfWjAoc2VjcDUyMXIxX1RfMTdfWCwgc2VjcDUyMXIxX1RfMTdfWSksCi0gICAgRUNQX1BPSU5UX0lOSVRfWFlfWjAoc2VjcDUyMXIxX1RfMThfWCwgc2VjcDUyMXIxX1RfMThfWSksCi0gICAgRUNQX1BPSU5UX0lOSVRfWFlfWjAoc2VjcDUyMXIxX1RfMTlfWCwgc2VjcDUyMXIxX1RfMTlfWSksCi0gICAgRUNQX1BPSU5UX0lOSVRfWFlfWjAoc2VjcDUyMXIxX1RfMjBfWCwgc2VjcDUyMXIxX1RfMjBfWSksCi0gICAgRUNQX1BPSU5UX0lOSVRfWFlfWjAoc2VjcDUyMXIxX1RfMjFfWCwgc2VjcDUyMXIxX1RfMjFfWSksCi0gICAgRUNQX1BPSU5UX0lOSVRfWFlfWjAoc2VjcDUyMXIxX1RfMjJfWCwgc2VjcDUyMXIxX1RfMjJfWSksCi0gICAgRUNQX1BPSU5UX0lOSVRfWFlfWjAoc2VjcDUyMXIxX1RfMjNfWCwgc2VjcDUyMXIxX1RfMjNfWSksCi0gICAgRUNQX1BPSU5UX0lOSVRfWFlfWjAoc2VjcDUyMXIxX1RfMjRfWCwgc2VjcDUyMXIxX1RfMjRfWSksCi0gICAgRUNQX1BPSU5UX0lOSVRfWFlfWjAoc2VjcDUyMXIxX1RfMjVfWCwgc2VjcDUyMXIxX1RfMjVfWSksCi0gICAgRUNQX1BPSU5UX0lOSVRfWFlfWjAoc2VjcDUyMXIxX1RfMjZfWCwgc2VjcDUyMXIxX1RfMjZfWSksCi0gICAgRUNQX1BPSU5UX0lOSVRfWFlfWjAoc2VjcDUyMXIxX1RfMjdfWCwgc2VjcDUyMXIxX1RfMjdfWSksCi0gICAgRUNQX1BPSU5UX0lOSVRfWFlfWjAoc2VjcDUyMXIxX1RfMjhfWCwgc2VjcDUyMXIxX1RfMjhfWSksCi0gICAgRUNQX1BPSU5UX0lOSVRfWFlfWjAoc2VjcDUyMXIxX1RfMjlfWCwgc2VjcDUyMXIxX1RfMjlfWSksCi0gICAgRUNQX1BPSU5UX0lOSVRfWFlfWjAoc2VjcDUyMXIxX1RfMzBfWCwgc2VjcDUyMXIxX1RfMzBfWSksCi0gICAgRUNQX1BPSU5UX0lOSVRfWFlfWjAoc2VjcDUyMXIxX1RfMzFfWCwgc2VjcDUyMXIxX1RfMzFfWSksCi19OwotI2Vsc2UKLSNkZWZpbmUgc2VjcDUyMXIxX1QgTlVMTAotI2VuZGlmCi0jZW5kaWYgLyogTUJFRFRMU19FQ1BfRFBfU0VDUDUyMVIxX0VOQUJMRUQgKi8KLQotI2lmIGRlZmluZWQoTUJFRFRMU19FQ1BfRFBfU0VDUDE5MksxX0VOQUJMRUQpCi1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMTkyazFfcFtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgzNywgMHhFRSwgMHhGRiwgMHhGRiwgMHhGRSwgMHhGRiwgMHhGRiwgMHhGRiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEZGLCAweEZGLCAweEZGLCAweEZGLCAweEZGLCAweEZGLCAweEZGLCAweEZGKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RkYsIDB4RkYsIDB4RkYsIDB4RkYsIDB4RkYsIDB4RkYsIDB4RkYsIDB4RkYpLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AxOTJrMV9hW10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfMigweDAwLCAweDAwKSwKLX07Ci1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMTkyazFfYltdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzIoMHgwMywgMHgwMCksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDE5MmsxX2d4W10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDdELCAweDZDLCAweEUwLCAweEVBLCAweEIxLCAweEQxLCAweEE1LCAweDFEKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MzQsIDB4RjQsIDB4QjcsIDB4ODAsIDB4MDIsIDB4N0QsIDB4QjAsIDB4MjYpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhBRSwgMHhFOSwgMHg1NywgMHhDMCwgMHgwRSwgMHhGMSwgMHg0RiwgMHhEQiksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDE5MmsxX2d5W10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDlELCAweDJGLCAweDVFLCAweEQ5LCAweDg4LCAweEFBLCAweDgyLCAweDQwKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MzQsIDB4ODYsIDB4QkUsIDB4MTUsIDB4RDAsIDB4NjMsIDB4NDEsIDB4ODQpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhBNywgMHgyOCwgMHg1NiwgMHg5QywgMHg2RCwgMHgyRiwgMHgyRiwgMHg5QiksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDE5MmsxX25bXSA9IHsKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4OEQsIDB4RkQsIDB4REUsIDB4NzQsIDB4NkEsIDB4NDYsIDB4NjksIDB4MEYpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgxNywgMHhGQywgMHhGMiwgMHgyNiwgMHhGRSwgMHhGRiwgMHhGRiwgMHhGRiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEZGLCAweEZGLCAweEZGLCAweEZGLCAweEZGLCAweEZGLCAweEZGLCAweEZGKSwKLX07Ci0KLSNpZiBNQkVEVExTX0VDUF9GSVhFRF9QT0lOVF9PUFRJTSA9PSAxCi1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMTkyazFfVF8wX1hbXSA9IHsKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4N0QsIDB4NkMsIDB4RTAsIDB4RUEsIDB4QjEsIDB4RDEsIDB4QTUsIDB4MUQpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgzNCwgMHhGNCwgMHhCNywgMHg4MCwgMHgwMiwgMHg3RCwgMHhCMCwgMHgyNiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEFFLCAweEU5LCAweDU3LCAweEMwLCAweDBFLCAweEYxLCAweDRGLCAweERCKSwKLX07Ci1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMTkyazFfVF8wX1lbXSA9IHsKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4OUQsIDB4MkYsIDB4NUUsIDB4RDksIDB4ODgsIDB4QUEsIDB4ODIsIDB4NDApLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgzNCwgMHg4NiwgMHhCRSwgMHgxNSwgMHhEMCwgMHg2MywgMHg0MSwgMHg4NCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEE3LCAweDI4LCAweDU2LCAweDlDLCAweDZELCAweDJGLCAweDJGLCAweDlCKSwKLX07Ci1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMTkyazFfVF8xX1hbXSA9IHsKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NkYsIDB4NzcsIDB4M0QsIDB4MEQsIDB4ODUsIDB4NDgsIDB4QTgsIDB4QTkpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg2MiwgMHgwNywgMHhERiwgMHgxRCwgMHhCMywgMHhCMywgMHgwMSwgMHg1NCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDA1LCAweDg2LCAweEY2LCAweEFGLCAweDE5LCAweDJBLCAweDg4LCAweDJFKSwKLX07Ci1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMTkyazFfVF8xX1lbXSA9IHsKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MzMsIDB4OTAsIDB4QjYsIDB4MkYsIDB4NDgsIDB4MzYsIDB4NEMsIDB4NUIpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhEQiwgMHgxMSwgMHgxNCwgMHhBNiwgMHhDQiwgMHhCQSwgMHgxNSwgMHhEOSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDdFLCAweEIwLCAweEYyLCAweEQ0LCAweEM5LCAweERBLCAweEJBLCAweEQ3KSwKLX07Ci1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMTkyazFfVF8yX1hbXSA9IHsKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RTQsIDB4QzEsIDB4OUMsIDB4RTYsIDB4QkIsIDB4RkIsIDB4Q0YsIDB4MjMpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg5MywgMHgxOSwgMHhBQywgMHg1QSwgMHhDOSwgMHg4QSwgMHgxQywgMHg3NSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEMxLCAweEY2LCAweDc2LCAweDg2LCAweDg5LCAweDI3LCAweDhELCAweDI4KSwKLX07Ci1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMTkyazFfVF8yX1lbXSA9IHsKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NEIsIDB4RTAsIDB4NkYsIDB4MzQsIDB4QkEsIDB4NUUsIDB4RDMsIDB4OTYpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg2QSwgMHhEQywgMHhBNiwgMHg4NywgMHhDOSwgMHg5RCwgMHhDMCwgMHg4MiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDA5LCAweDExLCAweDdFLCAweEQ2LCAweEY3LCAweDMzLCAweEZDLCAweEU0KSwKLX07Ci1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMTkyazFfVF8zX1hbXSA9IHsKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QzIsIDB4MzcsIDB4M0UsIDB4QzAsIDB4N0YsIDB4NjIsIDB4RTcsIDB4NTQpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhBNSwgMHgzQiwgMHg2OSwgMHg5RCwgMHg0NCwgMHhCQywgMHg4MiwgMHg5OSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEQ0LCAweDg0LCAweEIzLCAweDVGLCAweDJCLCAweEE1LCAweDlFLCAweDJDKSwKLX07Ci1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMTkyazFfVF8zX1lbXSA9IHsKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MUQsIDB4OTUsIDB4RUIsIDB4NEMsIDB4MDQsIDB4QjQsIDB4RjQsIDB4NzUpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg1NSwgMHhBRCwgMHg0QiwgMHhENSwgMHg5QSwgMHhFQiwgMHhDNCwgMHg0RSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEM5LCAweEIxLCAweEM1LCAweDU5LCAweEUzLCAweEQ1LCAweDE2LCAweDJBKSwKLX07Ci1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMTkyazFfVF80X1hbXSA9IHsKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NDgsIDB4MkEsIDB4Q0MsIDB4QUMsIDB4RDAsIDB4RUUsIDB4NTAsIDB4RUMpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg5OSwgMHg4MywgMHhFMCwgMHg1QiwgMHgxNCwgMHg0NCwgMHg1MiwgMHgyMCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEQ2LCAweDE1LCAweDJELCAweDc4LCAweEY2LCAweDUxLCAweDMyLCAweENGKSwKLX07Ci1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMTkyazFfVF80X1lbXSA9IHsKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4ODYsIDB4MzYsIDB4OUIsIDB4REQsIDB4RjgsIDB4REQsIDB4RUYsIDB4QjIpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgwQiwgMHhCMSwgMHg2QSwgMHgyQiwgMHhBRiwgMHhFQiwgMHgyQiwgMHhCMSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEM5LCAweDg3LCAweDdBLCAweDY2LCAweDVELCAweDVCLCAweERGLCAweDhGKSwKLX07Ci1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMTkyazFfVF81X1hbXSA9IHsKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NjIsIDB4NDUsIDB4RTUsIDB4ODEsIDB4OUIsIDB4RUIsIDB4MzcsIDB4MjMpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhCMywgMHgyOSwgMHhFMiwgMHgyMCwgMHg2NCwgMHgyMywgMHg2QiwgMHg2RSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEZFLCAweDFELCAweDQxLCAweEUxLCAweDlCLCAweDYxLCAweDdCLCAweEQ5KSwKLX07Ci1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMTkyazFfVF81X1lbXSA9IHsKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NzUsIDB4NTcsIDB4QTMsIDB4MEEsIDB4MTMsIDB4RTQsIDB4NTksIDB4MTUpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg3OSwgMHg2RSwgMHg0QSwgMHg0OCwgMHg4NCwgMHg5MCwgMHhBQywgMHhDNyksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDlDLCAweEI4LCAweEY1LCAweEYzLCAweERFLCAweEEwLCAweEExLCAweDFEKSwKLX07Ci1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMTkyazFfVF82X1hbXSA9IHsKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QTMsIDB4MzIsIDB4ODEsIDB4QTksIDB4OTEsIDB4NUEsIDB4NEUsIDB4MzMpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhDQiwgMHhBOCwgMHg5MCwgMHhCRSwgMHgwRiwgMHhFQywgMHhDMCwgMHg4NSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDgwLCAweDMwLCAweEQ3LCAweDA4LCAweEFFLCAweEM0LCAweDNBLCAweEE1KSwKLX07Ci1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMTkyazFfVF82X1lbXSA9IHsKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QkMsIDB4NTUsIDB4RTMsIDB4NzYsIDB4QjMsIDB4NjQsIDB4NzQsIDB4OUYpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgzRiwgMHg3NSwgMHhENCwgMHhEQiwgMHg5OCwgMHhENywgMHgzOSwgMHhBRSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEQ0LCAweEVCLCAweDhBLCAweEFCLCAweDE2LCAweEQ5LCAweEQ0LCAweDBCKSwKLX07Ci1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMTkyazFfVF83X1hbXSA9IHsKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NDEsIDB4QkUsIDB4RjksIDB4QzcsIDB4QzcsIDB4QkEsIDB4RjMsIDB4QTEpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhDMiwgMHg4NSwgMHg1OSwgMHhGMywgMHg2MCwgMHg0MSwgMHgwMiwgMHhEMiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDQ2LCAweDFDLCAweDRBLCAweEE0LCAweEM3LCAweEVELCAweDY2LCAweEJDKSwKLX07Ci1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMTkyazFfVF83X1lbXSA9IHsKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QzMsIDB4OUMsIDB4MkUsIDB4NDYsIDB4NTIsIDB4MTgsIDB4ODcsIDB4MTQpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhGRiwgMHgzNSwgMHg1QSwgMHg3NSwgMHhBQywgMHg0RCwgMHg3NSwgMHg5MSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweENFLCAweDJGLCAweEFDLCAweEZDLCAweEJDLCAweEU2LCAweDkzLCAweDVFKSwKLX07Ci1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMTkyazFfVF84X1hbXSA9IHsKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4ODcsIDB4NEQsIDB4QzksIDB4MTgsIDB4RTksIDB4MDAsIDB4RUIsIDB4MzMpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgxQSwgMHg2OSwgMHg3MiwgMHgwNywgMHg1QSwgMHg1OSwgMHhBOCwgMHgyNiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEI2LCAweDY1LCAweDgzLCAweDIwLCAweDEwLCAweEY5LCAweDY5LCAweDgyKSwKLX07Ci1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMTkyazFfVF84X1lbXSA9IHsKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4OEIsIDB4NTYsIDB4N0YsIDB4OUYsIDB4QkYsIDB4NDYsIDB4MEMsIDB4N0UpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhGQywgMHhDRiwgMHhGMCwgMHhEQywgMHhERiwgMHgyRCwgMHhFNiwgMHhFNSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDA5LCAweEYwLCAweDcyLCAweDNBLCAweDdBLCAweDAzLCAweEU1LCAweDIyKSwKLX07Ci1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMTkyazFfVF85X1hbXSA9IHsKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4M0UsIDB4QUEsIDB4NTcsIDB4MTMsIDB4MzcsIDB4QTcsIDB4MkMsIDB4RDQpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhBMywgMHhBQywgMHhBMiwgMHgyMywgMHhGOSwgMHg4NCwgMHg2MCwgMHhEMyksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDMyLCAweEVCLCAweDUxLCAweDcwLCAweDY0LCAweDc4LCAweENBLCAweDA1KSwKLX07Ci1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMTkyazFfVF85X1lbXSA9IHsKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4OTEsIDB4Q0MsIDB4MzAsIDB4NjIsIDB4OTMsIDB4NDYsIDB4MTMsIDB4RTkpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgyMSwgMHgyNiwgMHhDQywgMHg2QywgMHgzRCwgMHg1QywgMHhEQSwgMHgyQyksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEQ1LCAweEFBLCAweEI4LCAweDAzLCAweEE0LCAweDFBLCAweDAwLCAweDk2KSwKLX07Ci1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMTkyazFfVF8xMF9YW10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEY5LCAweDlELCAweEU2LCAweENDLCAweDRFLCAweDJFLCAweEMyLCAweEQ1KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QjQsIDB4QzMsIDB4OEEsIDB4QUUsIDB4NkYsIDB4NDAsIDB4MDUsIDB4RUIpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg5RCwgMHg4RiwgMHg0QSwgMHg0RCwgMHgzNSwgMHhEMywgMHg1MCwgMHg5RCksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDE5MmsxX1RfMTBfWVtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgxRiwgMHhGRCwgMHg5OCwgMHhBQiwgMHhDNywgMHgwMywgMHhCNCwgMHg1NSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDQwLCAweDQwLCAweEQyLCAweDlGLCAweENBLCAweEQwLCAweDUzLCAweDAwKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MUEsIDB4ODQsIDB4MDAsIDB4NkYsIDB4QzgsIDB4QUQsIDB4RUQsIDB4OEQpLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AxOTJrMV9UXzExX1hbXSA9IHsKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4Q0UsIDB4RDMsIDB4NTcsIDB4RDcsIDB4QzMsIDB4MDcsIDB4QkQsIDB4RDcpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg2NywgMHhCQSwgMHg0NywgMHgxRCwgMHgzRCwgMHhFRiwgMHg5OCwgMHg2QyksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDZELCAweEMwLCAweDZDLCAweDdGLCAweDEyLCAweEVFLCAweDlGLCAweDY3KSwKLX07Ci1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMTkyazFfVF8xMV9ZW10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweENBLCAweDAyLCAweERBLCAweDc5LCAweEFBLCAweEM5LCAweDI3LCAweEM0KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MjEsIDB4NzksIDB4QzcsIDB4NzEsIDB4ODQsIDB4Q0IsIDB4RTUsIDB4NUEpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgxNSwgMHgzNywgMHgwNiwgMHhCQSwgMHhCNSwgMHhENSwgMHgxOCwgMHg0QyksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDE5MmsxX1RfMTJfWFtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhBMSwgMHg2NSwgMHg3MiwgMHg2QywgMHhGMiwgMHg2MywgMHgyNywgMHg2QSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDY5LCAweEJDLCAweDcxLCAweERGLCAweDc1LCAweEY4LCAweDk4LCAweDREKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NzAsIDB4NzAsIDB4OUIsIDB4REMsIDB4RTcsIDB4MTgsIDB4NzEsIDB4RkYpLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AxOTJrMV9UXzEyX1lbXSA9IHsKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MTUsIDB4NUIsIDB4OUYsIDB4MDAsIDB4NUEsIDB4QjYsIDB4ODAsIDB4N0EpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhCNywgMHhFMCwgMHhCQiwgMHhGQywgMHg1RSwgMHg3OCwgMHg5QywgMHg4OSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDYwLCAweDAzLCAweDY4LCAweDgzLCAweDNELCAweDJFLCAweDRDLCAweEREKSwKLX07Ci1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMTkyazFfVF8xM19YW10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDNCLCAweDQ5LCAweDIzLCAweEE4LCAweENCLCAweDNCLCAweDFBLCAweEY2KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4OEIsIDB4M0QsIDB4QTcsIDB4NDYsIDB4Q0YsIDB4NzUsIDB4QjYsIDB4MkMpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg5MiwgMHhGRCwgMHgzMCwgMHgwMSwgMHhCNiwgMHhFRiwgMHhGOSwgMHhFOCksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDE5MmsxX1RfMTNfWVtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhEQywgMHhGQSwgMHhEQSwgMHhCOCwgMHgyOSwgMHg0MiwgMHhDOSwgMHhDNyksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDA2LCAweEQ3LCAweEEwLCAweEU2LCAweDZCLCAweDg2LCAweDYxLCAweDM5KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4REIsIDB4RTksIDB4RDMsIDB4MzcsIDB4RDgsIDB4RTcsIDB4MzUsIDB4QTkpLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AxOTJrMV9UXzE0X1hbXSA9IHsKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RkQsIDB4QzgsIDB4OEUsIDB4QjEsIDB4Q0IsIDB4QjEsIDB4QjUsIDB4NEQpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgxNiwgMHhENywgMHg0NiwgMHg3RCwgMHhBRiwgMHhFMiwgMHhEQywgMHhCQiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEQwLCAweDQ2LCAweEU3LCAweEQ4LCAweDc2LCAweDMxLCAweDkwLCAweDc2KSwKLX07Ci1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMTkyazFfVF8xNF9ZW10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEVCLCAweEQzLCAweEY0LCAweDc0LCAweEUxLCAweDY3LCAweEQ4LCAweDY2KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RTcsIDB4NzAsIDB4M0MsIDB4QzgsIDB4QUYsIDB4NUYsIDB4RjQsIDB4NTgpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgyNCwgMHg0RSwgMHhFRCwgMHg1QywgMHg0MywgMHhCMywgMHgxNiwgMHgzNSksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDE5MmsxX1RfMTVfWFtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg1NywgMHhBRSwgMHhEMSwgMHhERCwgMHgzMSwgMHgxNCwgMHhEMywgMHhGMCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEU4LCAweDE0LCAweDA2LCAweDEzLCAweDEyLCAweDFDLCAweDgxLCAweEY1KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QTYsIDB4RjksIDB4MEMsIDB4OTEsIDB4RjcsIDB4NjcsIDB4NTksIDB4NjMpLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AxOTJrMV9UXzE1X1lbXSA9IHsKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QUIsIDB4OTEsIDB4RTIsIDB4RjQsIDB4OUQsIDB4RUIsIDB4ODgsIDB4ODcpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhEQiwgMHg4MiwgMHgzMCwgMHg5QywgMHhBRSwgMHgxOCwgMHg0RCwgMHhCNyksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDNDLCAweDc5LCAweENGLCAweDE3LCAweEE1LCAweDFFLCAweEU4LCAweEM4KSwKLX07Ci1zdGF0aWMgY29uc3QgbWJlZHRsc19lY3BfcG9pbnQgc2VjcDE5MmsxX1RbMTZdID0gewotICAgIEVDUF9QT0lOVF9JTklUX1hZX1oxKHNlY3AxOTJrMV9UXzBfWCwgc2VjcDE5MmsxX1RfMF9ZKSwKLSAgICBFQ1BfUE9JTlRfSU5JVF9YWV9aMChzZWNwMTkyazFfVF8xX1gsIHNlY3AxOTJrMV9UXzFfWSksCi0gICAgRUNQX1BPSU5UX0lOSVRfWFlfWjAoc2VjcDE5MmsxX1RfMl9YLCBzZWNwMTkyazFfVF8yX1kpLAotICAgIEVDUF9QT0lOVF9JTklUX1hZX1owKHNlY3AxOTJrMV9UXzNfWCwgc2VjcDE5MmsxX1RfM19ZKSwKLSAgICBFQ1BfUE9JTlRfSU5JVF9YWV9aMChzZWNwMTkyazFfVF80X1gsIHNlY3AxOTJrMV9UXzRfWSksCi0gICAgRUNQX1BPSU5UX0lOSVRfWFlfWjAoc2VjcDE5MmsxX1RfNV9YLCBzZWNwMTkyazFfVF81X1kpLAotICAgIEVDUF9QT0lOVF9JTklUX1hZX1owKHNlY3AxOTJrMV9UXzZfWCwgc2VjcDE5MmsxX1RfNl9ZKSwKLSAgICBFQ1BfUE9JTlRfSU5JVF9YWV9aMChzZWNwMTkyazFfVF83X1gsIHNlY3AxOTJrMV9UXzdfWSksCi0gICAgRUNQX1BPSU5UX0lOSVRfWFlfWjAoc2VjcDE5MmsxX1RfOF9YLCBzZWNwMTkyazFfVF84X1kpLAotICAgIEVDUF9QT0lOVF9JTklUX1hZX1owKHNlY3AxOTJrMV9UXzlfWCwgc2VjcDE5MmsxX1RfOV9ZKSwKLSAgICBFQ1BfUE9JTlRfSU5JVF9YWV9aMChzZWNwMTkyazFfVF8xMF9YLCBzZWNwMTkyazFfVF8xMF9ZKSwKLSAgICBFQ1BfUE9JTlRfSU5JVF9YWV9aMChzZWNwMTkyazFfVF8xMV9YLCBzZWNwMTkyazFfVF8xMV9ZKSwKLSAgICBFQ1BfUE9JTlRfSU5JVF9YWV9aMChzZWNwMTkyazFfVF8xMl9YLCBzZWNwMTkyazFfVF8xMl9ZKSwKLSAgICBFQ1BfUE9JTlRfSU5JVF9YWV9aMChzZWNwMTkyazFfVF8xM19YLCBzZWNwMTkyazFfVF8xM19ZKSwKLSAgICBFQ1BfUE9JTlRfSU5JVF9YWV9aMChzZWNwMTkyazFfVF8xNF9YLCBzZWNwMTkyazFfVF8xNF9ZKSwKLSAgICBFQ1BfUE9JTlRfSU5JVF9YWV9aMChzZWNwMTkyazFfVF8xNV9YLCBzZWNwMTkyazFfVF8xNV9ZKSwKLX07Ci0jZWxzZQotI2RlZmluZSBzZWNwMTkyazFfVCBOVUxMCi0jZW5kaWYKLQotI2VuZGlmIC8qIE1CRURUTFNfRUNQX0RQX1NFQ1AxOTJLMV9FTkFCTEVEICovCi0KLSNpZiBkZWZpbmVkKE1CRURUTFNfRUNQX0RQX1NFQ1AyMjRLMV9FTkFCTEVEKQotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDIyNGsxX3BbXSA9IHsKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NkQsIDB4RTUsIDB4RkYsIDB4RkYsIDB4RkUsIDB4RkYsIDB4RkYsIDB4RkYpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEZGLCAweEZGLCAweEZGLCAweEZGLCAweEZGLCAweEZGLCAweEZGLCAweEZGKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF80KDB4RkYsIDB4RkYsIDB4RkYsIDB4RkYpLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AyMjRrMV9hW10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfMigweDAwLCAweDAwKSwKLX07Ci1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMjI0azFfYltdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzIoMHgwNSwgMHgwMCksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDIyNGsxX2d4W10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDVDLCAweEE0LCAweEI3LCAweEI2LCAweDBFLCAweDY1LCAweDdFLCAweDBGKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QTksIDB4NzUsIDB4NzAsIDB4RTQsIDB4RTksIDB4NjcsIDB4QTQsIDB4NjkpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhBMSwgMHgyOCwgMHhGQywgMHgzMCwgMHhERiwgMHg5OSwgMHhGMCwgMHg0RCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfNCgweDMzLCAweDVCLCAweDQ1LCAweEExKSwKLX07Ci1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMjI0azFfZ3lbXSA9IHsKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QTUsIDB4NjEsIDB4NkQsIDB4NTUsIDB4REIsIDB4NEIsIDB4Q0EsIDB4RTIpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg1OSwgMHhCRCwgMHhCMCwgMHhDMCwgMHhGNywgMHgxOSwgMHhFMywgMHhGNyksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEQ2LCAweEZCLCAweENBLCAweDgyLCAweDQyLCAweDM0LCAweEJBLCAweDdGKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF80KDB4RUQsIDB4OUYsIDB4MDgsIDB4N0UpLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AyMjRrMV9uW10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEY3LCAweEIxLCAweDlGLCAweDc2LCAweDcxLCAweEE5LCAweEYwLCAweENBKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4ODQsIDB4NjEsIDB4RUMsIDB4RDIsIDB4RTgsIDB4REMsIDB4MDEsIDB4MDApLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAxLCAweDAwLCAweDAwLCAweDAwKSwKLX07Ci0KLSNpZiBNQkVEVExTX0VDUF9GSVhFRF9QT0lOVF9PUFRJTSA9PSAxCi1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMjI0azFfVF8wX1hbXSA9IHsKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NUMsIDB4QTQsIDB4QjcsIDB4QjYsIDB4MEUsIDB4NjUsIDB4N0UsIDB4MEYpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhBOSwgMHg3NSwgMHg3MCwgMHhFNCwgMHhFOSwgMHg2NywgMHhBNCwgMHg2OSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEExLCAweDI4LCAweEZDLCAweDMwLCAweERGLCAweDk5LCAweEYwLCAweDREKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MzMsIDB4NUIsIDB4NDUsIDB4QTEsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDApLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AyMjRrMV9UXzBfWVtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhBNSwgMHg2MSwgMHg2RCwgMHg1NSwgMHhEQiwgMHg0QiwgMHhDQSwgMHhFMiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDU5LCAweEJELCAweEIwLCAweEMwLCAweEY3LCAweDE5LCAweEUzLCAweEY3KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RDYsIDB4RkIsIDB4Q0EsIDB4ODIsIDB4NDIsIDB4MzQsIDB4QkEsIDB4N0YpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhFRCwgMHg5RiwgMHgwOCwgMHg3RSwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDIyNGsxX1RfMV9YW10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDk5LCAweDZDLCAweDIyLCAweDIyLCAweDQwLCAweDg5LCAweEFFLCAweDdBKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MkYsIDB4OTIsIDB4RTEsIDB4ODcsIDB4NTYsIDB4MzUsIDB4QUYsIDB4OUIpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg4OCwgMHhBRiwgMHgwOCwgMHgzNSwgMHgyNywgMHhFQSwgMHgwNCwgMHhFRCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEYwLCAweDUzLCAweEZELCAweENGLCAweDAwLCAweDAwLCAweDAwLCAweDAwKSwKLX07Ci1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMjI0azFfVF8xX1lbXSA9IHsKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QzEsIDB4RDAsIDB4OUYsIDB4OEQsIDB4RjMsIDB4NjMsIDB4NTQsIDB4MzApLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgzOSwgMHhEQiwgMHgwRiwgMHg2MSwgMHg1NCwgMHgyNiwgMHhEMSwgMHg5OCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEY1LCAweDIxLCAweEY3LCAweDFCLCAweEI1LCAweDFELCAweEY2LCAweDdFKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RkYsIDB4MDUsIDB4REEsIDB4OEYsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDApLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AyMjRrMV9UXzJfWFtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgxMCwgMHgyNiwgMHg3MywgMHhCQywgMHhFNCwgMHgyOSwgMHg2MiwgMHg1NiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDM3LCAweDk1LCAweDE3LCAweDhCLCAweEMzLCAweDlCLCAweEFDLCAweENDKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QjEsIDB4REIsIDB4NzcsIDB4REYsIDB4REQsIDB4MTMsIDB4MDQsIDB4OTgpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgwMiwgMHhGQywgMHgyMiwgMHg5MywgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDIyNGsxX1RfMl9ZW10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEFDLCAweDY1LCAweEYxLCAweDVBLCAweDM3LCAweEVGLCAweDc5LCAweEFEKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4OTksIDB4MDEsIDB4MzcsIDB4QUMsIDB4OUEsIDB4NUIsIDB4NTEsIDB4NjUpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhGQSwgMHg3NSwgMHgxMywgMHhBOSwgMHg0QSwgMHhBRCwgMHhGRSwgMHg5QiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDMyLCAweDgyLCAweDZGLCAweDY2LCAweDAwLCAweDAwLCAweDAwLCAweDAwKSwKLX07Ci1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMjI0azFfVF8zX1hbXSA9IHsKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NEQsIDB4NUUsIDB4RjAsIDB4NDAsIDB4QzMsIDB4QTYsIDB4RTIsIDB4MUUpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgzNCwgMHg5QSwgMHg2RiwgMHhDRiwgMHgxMSwgMHgyNiwgMHg2NiwgMHg4NSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDc5LCAweDczLCAweEE4LCAweENGLCAweDJCLCAweDEyLCAweDM2LCAweDM3KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QjksIDB4QjMsIDB4MEEsIDB4NTgsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDApLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AyMjRrMV9UXzNfWVtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhEMywgMHg3OSwgMHgwMCwgMHg1NSwgMHgwNCwgMHgzNCwgMHg5MCwgMHgxQSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDBBLCAweDU0LCAweDFDLCAweEMyLCAweDQ1LCAweDBDLCAweDFCLCAweDIzKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4ODYsIDB4MTksIDB4QUIsIDB4QTgsIDB4RkMsIDB4NzMsIDB4REMsIDB4RUUpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg3MiwgMHhGQiwgMHg5MywgMHhDRSwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDIyNGsxX1RfNF9YW10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEY4LCAweDc1LCAweEQwLCAweDY2LCAweDk1LCAweDg2LCAweENBLCAweDY2KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MTcsIDB4RUEsIDB4MjksIDB4MTYsIDB4NkEsIDB4MzgsIDB4REYsIDB4NDEpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhEOCwgMHhBMiwgMHgzNiwgMHgyRiwgMHhEQywgMHhCQiwgMHg1RSwgMHhGNyksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEQ0LCAweDg5LCAweDU5LCAweDQ5LCAweDAwLCAweDAwLCAweDAwLCAweDAwKSwKLX07Ci1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMjI0azFfVF80X1lbXSA9IHsKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4Q0EsIDB4QTMsIDB4OTksIDB4OUQsIDB4QjgsIDB4NzcsIDB4OUQsIDB4MUQpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgwQSwgMHg5MywgMHg0MywgMHg0NywgMHhDNiwgMHg1QywgMHhGOSwgMHhGRCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEFBLCAweDAwLCAweDc5LCAweDQyLCAweDY0LCAweEI4LCAweDI1LCAweDNFKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MjksIDB4NTQsIDB4QjQsIDB4MzMsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDApLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AyMjRrMV9UXzVfWFtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhEOSwgMHgwQywgMHg0MiwgMHg5MCwgMHg4MywgMHgwQiwgMHgzMSwgMHg1RiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDU0LCAweDJFLCAweEFFLCAweEM4LCAweEM3LCAweDVGLCAweEQyLCAweDcwKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QTksIDB4QkMsIDB4QUQsIDB4NDEsIDB4RTcsIDB4MzIsIDB4M0EsIDB4ODEpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg4QSwgMHg5NywgMHg1MiwgMHg4MywgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDIyNGsxX1RfNV9ZW10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDFBLCAweDEzLCAweDdBLCAweEJELCAweEFFLCAweDk0LCAweDYwLCAweEZEKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4OTIsIDB4OUIsIDB4OTUsIDB4QjQsIDB4NkUsIDB4NjgsIDB4QjIsIDB4MUYpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgxNSwgMHg0OSwgMHhCRSwgMHg1MSwgMHhGRSwgMHg2NiwgMHgxNSwgMHg3NCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEU2LCAweDM3LCAweEU0LCAweEZFLCAweDAwLCAweDAwLCAweDAwLCAweDAwKSwKLX07Ci1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMjI0azFfVF82X1hbXSA9IHsKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RjYsIDB4OUIsIDB4RUUsIDB4NjQsIDB4QzksIDB4MUIsIDB4QkQsIDB4NzcpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhEQSwgMHg1RiwgMHgzNCwgMHhBOSwgMHgwQiwgMHhCNywgMHgyNSwgMHg1MiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDkwLCAweDEzLCAweEIxLCAweDM4LCAweEZCLCAweDlELCAweDc4LCAweEVEKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MzksIDB4RTcsIDB4MUIsIDB4RkEsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDApLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AyMjRrMV9UXzZfWVtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhGQiwgMHhCMywgMHhCNywgMHg0NCwgMHg5MiwgMHg2QiwgMHgwMCwgMHg4MiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDk3LCAweDgyLCAweDQ0LCAweDNFLCAweDE4LCAweDFBLCAweDU4LCAweDZBKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MTUsIDB4RjgsIDB4QzAsIDB4RTQsIDB4RUUsIDB4QzEsIDB4QkYsIDB4NDQpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg3RSwgMHgzMiwgMHgyNywgMHhCMiwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDIyNGsxX1RfN19YW10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEY0LCAweDlBLCAweDQyLCAweDYyLCAweDhCLCAweDI2LCAweDU0LCAweDIxKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MjQsIDB4ODUsIDB4NzQsIDB4QTAsIDB4NzksIDB4QTgsIDB4RUUsIDB4QkUpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg4MCwgMHgzNiwgMHg2MCwgMHhCMywgMHgyOCwgMHg0RCwgMHg1NSwgMHhCRSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDMyLCAweDI3LCAweDgyLCAweDI5LCAweDAwLCAweDAwLCAweDAwLCAweDAwKSwKLX07Ci1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMjI0azFfVF83X1lbXSA9IHsKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MEQsIDB4RkMsIDB4NzMsIDB4NzcsIDB4QUYsIDB4NUMsIDB4QUMsIDB4NzgpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhDQywgMHhFRCwgMHhFNSwgMHhGNiwgMHgxRCwgMHhBOCwgMHg2NywgMHg0MyksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEY4LCAweERFLCAweDMzLCAweDFDLCAweEYxLCAweDgwLCAweDczLCAweEY4KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MkEsIDB4RTIsIDB4REUsIDB4M0MsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDApLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AyMjRrMV9UXzhfWFtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg1NywgMHgzRSwgMHg2QiwgMHhGRSwgMHhGMCwgMHgwNCwgMHgyOCwgMHgwMSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEJCLCAweEIyLCAweDE0LCAweDlELCAweDE4LCAweDExLCAweDdELCAweDlEKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4OTYsIDB4QzQsIDB4RDYsIDB4MkUsIDB4NkUsIDB4NTcsIDB4NEQsIDB4RTEpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhFQSwgMHg1NSwgMHgxQiwgMHhERSwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDIyNGsxX1RfOF9ZW10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDA3LCAweEY3LCAweDE3LCAweEJDLCAweDQ1LCAweEFCLCAweDE2LCAweEFCKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4Q0QsIDB4QjAsIDB4RUYsIDB4NjEsIDB4RTMsIDB4MjAsIDB4N0MsIDB4RjgpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg2QywgMHg4NSwgMHg0MSwgMHg0RCwgMHhGMSwgMHg3RSwgMHg0RCwgMHg0MSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDk5LCAweEMyLCAweDlCLCAweDVFLCAweDAwLCAweDAwLCAweDAwLCAweDAwKSwKLX07Ci1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMjI0azFfVF85X1hbXSA9IHsKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NzAsIDB4MkUsIDB4NDksIDB4M0QsIDB4M0UsIDB4NEIsIDB4RDMsIDB4MzIpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhDOCwgMHgyQiwgMHg5RCwgMHhENSwgMHgyNywgMHhGQSwgMHhDQSwgMHhFMCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEIzLCAweEIzLCAweDZBLCAweEUwLCAweDc5LCAweDE0LCAweDI4LCAweDBGKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NkMsIDB4MUUsIDB4REMsIDB4RjUsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDApLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AyMjRrMV9UXzlfWVtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhDQSwgMHg0NCwgMHg1NiwgMHhDRCwgMHhGQywgMHg5RiwgMHgwOSwgMHhGRiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDVDLCAweDhDLCAweDU5LCAweEE0LCAweDY0LCAweDJBLCAweDNBLCAweEVEKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NDAsIDB4QTAsIDB4QjUsIDB4ODYsIDB4NEUsIDB4NjksIDB4REEsIDB4MDYpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgwOCwgMHg4QiwgMHgxMSwgMHgzOCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDIyNGsxX1RfMTBfWFtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhBMCwgMHgxNywgMHgxNiwgMHgxMiwgMHgxNywgMHhEQywgMHgwMCwgMHg3RSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEU3LCAweDc2LCAweDI0LCAweDZDLCAweDk3LCAweDJDLCAweEI1LCAweEY5KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4ODIsIDB4NzEsIDB4RTMsIDB4QjAsIDB4QkIsIDB4NEUsIDB4NTAsIDB4NTIpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg2RSwgMHg0OCwgMHgyNiwgMHhENSwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDIyNGsxX1RfMTBfWVtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgwNiwgMHg1RiwgMHgyOCwgMHhGNiwgMHgwMSwgMHg1QSwgMHg2MCwgMHg0MSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEFFLCAweDk1LCAweEZFLCAweEQwLCAweEFELCAweDE1LCAweEQ0LCAweEQ5KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QUQsIDB4NUIsIDB4N0EsIDB4RkQsIDB4ODAsIDB4RjcsIDB4OUYsIDB4NjQpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgzMiwgMHhCQywgMHgxQiwgMHhERiwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDIyNGsxX1RfMTFfWFtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhCQiwgMHhFNiwgMHhERiwgMHgxNCwgMHgyOSwgMHhGNCwgMHhENCwgMHgxNCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEU1LCAweDEyLCAweERELCAweEVDLCAweDVCLCAweDhBLCAweDU5LCAweEU1KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MjYsIDB4OTIsIDB4M0UsIDB4MzUsIDB4MDgsIDB4RTksIDB4Q0YsIDB4MEUpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhFMCwgMHgzNSwgMHgyOSwgMHg5NywgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDIyNGsxX1RfMTFfWVtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgxMSwgMHhEQiwgMHhENiwgMHg2QSwgMHhDNSwgMHg0MywgMHhBNCwgMHhBMSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDYxLCAweDMzLCAweDUwLCAweDYxLCAweDcwLCAweEExLCAweEU5LCAweENFKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MTUsIDB4MTUsIDB4NkUsIDB4NUYsIDB4MDEsIDB4MEMsIDB4OEMsIDB4RkEpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg4NSwgMHhBMSwgMHg5QSwgMHg5RCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDIyNGsxX1RfMTJfWFtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg2RSwgMHhDNiwgMHhGNywgMHhFMiwgMHg0QSwgMHhDRCwgMHg5QiwgMHg2MSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDM0LCAweDRELCAweDVBLCAweEI4LCAweEUyLCAweDZELCAweEE2LCAweDUwKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MzIsIDB4M0YsIDB4QjYsIDB4MTcsIDB4RTMsIDB4MkMsIDB4NkYsIDB4NjUpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgxRSwgMHhBNCwgMHg1OSwgMHg1MSwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDIyNGsxX1RfMTJfWVtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg3NywgMHg0RiwgMHg3QywgMHg0OSwgMHhDRCwgMHg2RSwgMHhFQiwgMHgzQyksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDA1LCAweEM5LCAweDFGLCAweEI3LCAweDRELCAweDk4LCAweEM3LCAweDY3KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NEMsIDB4RkQsIDB4OTgsIDB4MjAsIDB4OTUsIDB4QkIsIDB4MjAsIDB4M0EpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhFMCwgMHhGMiwgMHg3MywgMHg5MiwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDIyNGsxX1RfMTNfWFtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhFMiwgMHhFRiwgMHhGQiwgMHgzMCwgMHhGQSwgMHgxMiwgMHgxQSwgMHhCMCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDdBLCAweDRDLCAweDI0LCAweEI0LCAweDVCLCAweEM5LCAweDRDLCAweDBGKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4N0EsIDB4REQsIDB4NUUsIDB4ODQsIDB4OTUsIDB4NEQsIDB4MjYsIDB4RUQpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhFMywgMHhGQSwgMHhGOSwgMHgzQSwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDIyNGsxX1RfMTNfWVtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg2QSwgMHhBMywgMHgyRSwgMHg3QSwgMHhEQywgMHhBNywgMHg1MywgMHhBOSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDdDLCAweDlGLCAweDgxLCAweDg0LCAweEIyLCAweDBELCAweEZFLCAweDMxKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NjEsIDB4ODksIDB4MUIsIDB4NzcsIDB4MEMsIDB4ODksIDB4NzEsIDB4RUMpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhGQSwgMHhGRiwgMHg3RiwgMHhCMiwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDIyNGsxX1RfMTRfWFtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgyOCwgMHhFOSwgMHgyQywgMHg3OSwgMHhBNiwgMHgzQywgMHhBRCwgMHg5MyksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEQ2LCAweEUwLCAweDIzLCAweDAyLCAweDg2LCAweDBGLCAweDc3LCAweDJBKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MTMsIDB4OTMsIDB4NkQsIDB4RTksIDB4RjksIDB4M0MsIDB4QkUsIDB4QjkpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgwNCwgMHhFNywgMHgyNCwgMHg5MiwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDIyNGsxX1RfMTRfWVtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhCQiwgMHgzQywgMHg1QiwgMHg0QiwgMHgxQiwgMHgyNSwgMHgzNywgMHhENiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEM5LCAweEU4LCAweDM4LCAweDFCLCAweEExLCAweDVBLCAweDJFLCAweDY4KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MDMsIDB4MTksIDB4RkQsIDB4RjQsIDB4NzgsIDB4MDEsIDB4NkIsIDB4NDQpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgwRiwgMHg2OSwgMHgzNywgMHg0RiwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDIyNGsxX1RfMTVfWFtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgxQSwgMHhFMiwgMHhCRiwgMHhEMywgMHhFQywgMHg5NSwgMHg5QywgMHgwMyksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEMyLCAweDdCLCAweEZDLCAweEQ1LCAweEQzLCAweDI1LCAweDVFLCAweDBGKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MzksIDB4NTUsIDB4MDksIDB4QTIsIDB4NTgsIDB4NkEsIDB4QzksIDB4RkYpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg4MCwgMHhDQywgMHgzQiwgMHhEOSwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDIyNGsxX1RfMTVfWVtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg4RiwgMHgwOCwgMHg2NSwgMHg1RSwgMHhDQiwgMHhBQiwgMHg0OCwgMHhDOCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEVFLCAweDc5LCAweDhCLCAweEMwLCAweDExLCAweEMwLCAweDY5LCAweDM4KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RTYsIDB4RTgsIDB4OEMsIDB4NEMsIDB4QzUsIDB4MjgsIDB4RTQsIDB4QUUpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhBNSwgMHgxRiwgMHgzNCwgMHg1QywgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfZWNwX3BvaW50IHNlY3AyMjRrMV9UWzE2XSA9IHsKLSAgICBFQ1BfUE9JTlRfSU5JVF9YWV9aMShzZWNwMjI0azFfVF8wX1gsIHNlY3AyMjRrMV9UXzBfWSksCi0gICAgRUNQX1BPSU5UX0lOSVRfWFlfWjAoc2VjcDIyNGsxX1RfMV9YLCBzZWNwMjI0azFfVF8xX1kpLAotICAgIEVDUF9QT0lOVF9JTklUX1hZX1owKHNlY3AyMjRrMV9UXzJfWCwgc2VjcDIyNGsxX1RfMl9ZKSwKLSAgICBFQ1BfUE9JTlRfSU5JVF9YWV9aMChzZWNwMjI0azFfVF8zX1gsIHNlY3AyMjRrMV9UXzNfWSksCi0gICAgRUNQX1BPSU5UX0lOSVRfWFlfWjAoc2VjcDIyNGsxX1RfNF9YLCBzZWNwMjI0azFfVF80X1kpLAotICAgIEVDUF9QT0lOVF9JTklUX1hZX1owKHNlY3AyMjRrMV9UXzVfWCwgc2VjcDIyNGsxX1RfNV9ZKSwKLSAgICBFQ1BfUE9JTlRfSU5JVF9YWV9aMChzZWNwMjI0azFfVF82X1gsIHNlY3AyMjRrMV9UXzZfWSksCi0gICAgRUNQX1BPSU5UX0lOSVRfWFlfWjAoc2VjcDIyNGsxX1RfN19YLCBzZWNwMjI0azFfVF83X1kpLAotICAgIEVDUF9QT0lOVF9JTklUX1hZX1owKHNlY3AyMjRrMV9UXzhfWCwgc2VjcDIyNGsxX1RfOF9ZKSwKLSAgICBFQ1BfUE9JTlRfSU5JVF9YWV9aMChzZWNwMjI0azFfVF85X1gsIHNlY3AyMjRrMV9UXzlfWSksCi0gICAgRUNQX1BPSU5UX0lOSVRfWFlfWjAoc2VjcDIyNGsxX1RfMTBfWCwgc2VjcDIyNGsxX1RfMTBfWSksCi0gICAgRUNQX1BPSU5UX0lOSVRfWFlfWjAoc2VjcDIyNGsxX1RfMTFfWCwgc2VjcDIyNGsxX1RfMTFfWSksCi0gICAgRUNQX1BPSU5UX0lOSVRfWFlfWjAoc2VjcDIyNGsxX1RfMTJfWCwgc2VjcDIyNGsxX1RfMTJfWSksCi0gICAgRUNQX1BPSU5UX0lOSVRfWFlfWjAoc2VjcDIyNGsxX1RfMTNfWCwgc2VjcDIyNGsxX1RfMTNfWSksCi0gICAgRUNQX1BPSU5UX0lOSVRfWFlfWjAoc2VjcDIyNGsxX1RfMTRfWCwgc2VjcDIyNGsxX1RfMTRfWSksCi0gICAgRUNQX1BPSU5UX0lOSVRfWFlfWjAoc2VjcDIyNGsxX1RfMTVfWCwgc2VjcDIyNGsxX1RfMTVfWSksCi19OwotI2Vsc2UKLSNkZWZpbmUgc2VjcDIyNGsxX1QgTlVMTAotI2VuZGlmCi0jZW5kaWYgLyogTUJFRFRMU19FQ1BfRFBfU0VDUDIyNEsxX0VOQUJMRUQgKi8KLQotI2lmIGRlZmluZWQoTUJFRFRMU19FQ1BfRFBfU0VDUDI1NksxX0VOQUJMRUQpCi1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMjU2azFfcFtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgyRiwgMHhGQywgMHhGRiwgMHhGRiwgMHhGRSwgMHhGRiwgMHhGRiwgMHhGRiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEZGLCAweEZGLCAweEZGLCAweEZGLCAweEZGLCAweEZGLCAweEZGLCAweEZGKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RkYsIDB4RkYsIDB4RkYsIDB4RkYsIDB4RkYsIDB4RkYsIDB4RkYsIDB4RkYpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDI1NmsxX2FbXSA9IHsKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF8yKDB4MDAsIDB4MDApLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AyNTZrMV9iW10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfMigweDA3LCAweDAwKSwKLX07Ci1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMjU2azFfZ3hbXSA9IHsKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4OTgsIDB4MTcsIDB4RjgsIDB4MTYsIDB4NUIsIDB4ODEsIDB4RjIsIDB4NTkpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhEOSwgMHgyOCwgMHhDRSwgMHgyRCwgMHhEQiwgMHhGQywgMHg5QiwgMHgwMiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDA3LCAweDBCLCAweDg3LCAweENFLCAweDk1LCAweDYyLCAweEEwLCAweDU1KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QUMsIDB4QkIsIDB4REMsIDB4RjksIDB4N0UsIDB4NjYsIDB4QkUsIDB4NzkpLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AyNTZrMV9neVtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhCOCwgMHhENCwgMHgxMCwgMHhGQiwgMHg4RiwgMHhEMCwgMHg0NywgMHg5QyksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDE5LCAweDU0LCAweDg1LCAweEE2LCAweDQ4LCAweEI0LCAweDE3LCAweEZEKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QTgsIDB4MDgsIDB4MTEsIDB4MEUsIDB4RkMsIDB4RkIsIDB4QTQsIDB4NUQpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg2NSwgMHhDNCwgMHhBMywgMHgyNiwgMHg3NywgMHhEQSwgMHgzQSwgMHg0OCksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDI1NmsxX25bXSA9IHsKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NDEsIDB4NDEsIDB4MzYsIDB4RDAsIDB4OEMsIDB4NUUsIDB4RDIsIDB4QkYpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgzQiwgMHhBMCwgMHg0OCwgMHhBRiwgMHhFNiwgMHhEQywgMHhBRSwgMHhCQSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEZFLCAweEZGLCAweEZGLCAweEZGLCAweEZGLCAweEZGLCAweEZGLCAweEZGKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RkYsIDB4RkYsIDB4RkYsIDB4RkYsIDB4RkYsIDB4RkYsIDB4RkYsIDB4RkYpLAotfTsKLQotI2lmIE1CRURUTFNfRUNQX0ZJWEVEX1BPSU5UX09QVElNID09IDEKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AyNTZrMV9UXzBfWFtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg5OCwgMHgxNywgMHhGOCwgMHgxNiwgMHg1QiwgMHg4MSwgMHhGMiwgMHg1OSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEQ5LCAweDI4LCAweENFLCAweDJELCAweERCLCAweEZDLCAweDlCLCAweDAyKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MDcsIDB4MEIsIDB4ODcsIDB4Q0UsIDB4OTUsIDB4NjIsIDB4QTAsIDB4NTUpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhBQywgMHhCQiwgMHhEQywgMHhGOSwgMHg3RSwgMHg2NiwgMHhCRSwgMHg3OSksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDI1NmsxX1RfMF9ZW10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEI4LCAweEQ0LCAweDEwLCAweEZCLCAweDhGLCAweEQwLCAweDQ3LCAweDlDKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MTksIDB4NTQsIDB4ODUsIDB4QTYsIDB4NDgsIDB4QjQsIDB4MTcsIDB4RkQpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhBOCwgMHgwOCwgMHgxMSwgMHgwRSwgMHhGQywgMHhGQiwgMHhBNCwgMHg1RCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDY1LCAweEM0LCAweEEzLCAweDI2LCAweDc3LCAweERBLCAweDNBLCAweDQ4KSwKLX07Ci1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMjU2azFfVF8xX1hbXSA9IHsKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RTcsIDB4RUUsIDB4RDcsIDB4MUUsIDB4NjcsIDB4ODYsIDB4MzIsIDB4NzQpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgyMywgMHg3MywgMHhCMSwgMHhBOSwgMHhENSwgMHhDQywgMHgyNywgMHg3OCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDFGLCAweDBFLCAweDExLCAweDAxLCAweDcxLCAweEZFLCAweDkyLCAweDczKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QzYsIDB4MjgsIDB4NjMsIDB4NkQsIDB4NzIsIDB4MDksIDB4QTYsIDB4QzApLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AyNTZrMV9UXzFfWVtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhDRSwgMHhFMSwgMHg2OSwgMHhEQywgMHgzRSwgMHgyQywgMHg3NSwgMHhDMyksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEU1LCAweEI3LCAweDNGLCAweDMwLCAweDI2LCAweDNDLCAweERGLCAweDhFKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4M0QsIDB4QkUsIDB4QjksIDB4NUQsIDB4MEUsIDB4RTgsIDB4NUUsIDB4MTQpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgwMSwgMHhDMywgMHgwNSwgMHhENiwgMHhCNywgMHhENSwgMHgyNCwgMHhGQyksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDI1NmsxX1RfMl9YW10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDEzLCAweENGLCAweDdCLCAweERDLCAweENELCAweEMzLCAweDM5LCAweDlEKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NDIsIDB4REEsIDB4QjksIDB4RTUsIDB4NjQsIDB4QTcsIDB4NDcsIDB4OTEpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg3NiwgMHg0NiwgMHhBOCwgMHg2MSwgMHhGNiwgMHgyMywgMHhFQiwgMHg1OCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDVDLCAweEMxLCAweEZGLCAweEU0LCAweDU1LCAweEQ1LCAweEMyLCAweEJGKSwKLX07Ci1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMjU2azFfVF8yX1lbXSA9IHsKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QzksIDB4QkUsIDB4QjksIDB4NTksIDB4MjQsIDB4MTMsIDB4NEEsIDB4MkEpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg2NCwgMHg0NSwgMHgxMiwgMHhERSwgMHhCQSwgMHg0RiwgMHhFRiwgMHg1NiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEJFLCAweDA4LCAweEJGLCAweEMxLCAweDY2LCAweEFBLCAweDBBLCAweEJDKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MzYsIDB4RkUsIDB4MzAsIDB4NTUsIDB4MzEsIDB4ODYsIDB4QTcsIDB4QjQpLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AyNTZrMV9UXzNfWFtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgxRCwgMHhCRiwgMHgxOCwgMHg4MSwgMHg2NywgMHgyNywgMHg0MiwgMHhCRCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDA4LCAweDA1LCAweDgzLCAweEE0LCAweERELCAweDU3LCAweEQzLCAweDUwKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MjAsIDB4NjMsIDB4QUIsIDB4RTQsIDB4OTAsIDB4NzAsIDB4RDAsIDB4N0MpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg3MSwgMHg1RCwgMHhGRCwgMHhBMCwgMHhFRiwgMHhDRiwgMHgxQywgMHg1NCksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDI1NmsxX1RfM19ZW10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDEzLCAweDgwLCAweEU0LCAweEY2LCAweDA5LCAweEJDLCAweDU3LCAweDkwKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MjEsIDB4OUYsIDB4NkUsIDB4ODgsIDB4NTQsIDB4NkUsIDB4NTEsIDB4RjIpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhGNSwgMHg1RiwgMHg4NSwgMHhGQiwgMHg4NCwgMHgzRSwgMHg0QSwgMHhBQSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEE4LCAweDE5LCAweEY1LCAweDU1LCAweEM5LCAweDA3LCAweEQ4LCAweENFKSwKLX07Ci1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMjU2azFfVF80X1hbXSA9IHsKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MUEsIDB4QjQsIDB4QzMsIDB4RDksIDB4NUMsIDB4QTAsIDB4RDQsIDB4OTApLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgwRCwgMHgzMCwgMHhBRiwgMHg1OSwgMHg5QiwgMHhGOCwgMHgwNCwgMHg4NSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDRELCAweEE2LCAweEZELCAweDY2LCAweDdCLCAweEMzLCAweDM5LCAweDg1KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RTAsIDB4QkYsIDB4RjAsIDB4QzIsIDB4RTksIDB4NzEsIDB4QTQsIDB4OUUpLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AyNTZrMV9UXzRfWVtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgxNCwgMHgyRCwgMHhCOSwgMHg4OCwgMHgyOCwgMHhGMSwgMHhCRSwgMHg3OCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDE0LCAweEYzLCAweDFBLCAweDBFLCAweEI5LCAweDAxLCAweDY2LCAweDM0KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NzcsIDB4QTcsIDB4QTQsIDB4RjQsIDB4MDUsIDB4RDAsIDB4QUEsIDB4NTMpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgwMCwgMHgzOSwgMHgxRSwgMHg0NywgMHhFNSwgMHg2OCwgMHhDOCwgMHhDMCksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDI1NmsxX1RfNV9YW10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweERELCAweEI5LCAweEZDLCAweEUwLCAweDMzLCAweDhBLCAweDdELCAweDk2KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NEYsIDB4OTMsIDB4QTUsIDB4NTMsIDB4NTUsIDB4MTYsIDB4QjQsIDB4NkUpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhFOSwgMHg1RiwgMHhFQSwgMHg5QiwgMHgyOSwgMHg1MiwgMHg3MSwgMHhEQSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEIyLCAweEYwLCAweDI0LCAweEI4LCAweDdELCAweEI3LCAweEEwLCAweDlCKSwKLX07Ci1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMjU2azFfVF81X1lbXSA9IHsKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QzIsIDB4MDAsIDB4MjcsIDB4QjIsIDB4REYsIDB4NzMsIDB4QTIsIDB4RTApLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgxRCwgMHgyRSwgMHg0RCwgMHg3QywgMHhERSwgMHg3QSwgMHgyMywgMHgzMiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEFDLCAweDY1LCAweDYwLCAweEM3LCAweDk3LCAweDFFLCAweEE0LCAweDIyKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4Q0QsIDB4MTMsIDB4NUIsIDB4NzcsIDB4NTksIDB4Q0IsIDB4MzYsIDB4RTEpLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AyNTZrMV9UXzZfWFtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg5OSwgMHhCQywgMHg5RiwgMHg5RSwgMHgyRCwgMHg1MywgMHgyQSwgMHhBOCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDg3LCAweDVGLCAweDY0LCAweDlGLCAweDFBLCAweDE5LCAweEU2LCAweDc3KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4OUUsIDB4N0IsIDB4MzksIDB4RDIsIDB4REIsIDB4ODUsIDB4ODQsIDB4RDUpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg4MywgMHhDNywgMHgwRCwgMHg1OCwgMHg2RSwgMHgzRiwgMHg1MiwgMHgxNSksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDI1NmsxX1RfNl9ZW10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDIxLCAweDY4LCAweDE5LCAweDBCLCAweDY4LCAweEM5LCAweDFFLCAweEZCKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RDIsIDB4NEUsIDB4MjEsIDB4NDksIDB4M0QsIDB4NTUsIDB4Q0MsIDB4MjUpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhGNSwgMHhGOSwgMHgyNSwgMHg0NSwgMHg1NCwgMHg0NSwgMHhCMSwgMHgwRiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEE5LCAweEIzLCAweEY3LCAweENELCAweDgwLCAweEE0LCAweDA0LCAweDA1KSwKLX07Ci1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMjU2azFfVF83X1hbXSA9IHsKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RDQsIDB4MUUsIDB4ODgsIDB4QzQsIDB4QUEsIDB4MTgsIDB4N0UsIDB4NDUpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg0QiwgMHhBQywgMHhEOSwgMHhCMiwgMHhBMSwgMHhDMCwgMHg3MSwgMHg1RCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEE5LCAweEEyLCAweEYxLCAweDE1LCAweEE2LCAweDVGLCAweDZDLCAweDg2KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NEYsIDB4NUIsIDB4MDUsIDB4QkMsIDB4QjcsIDB4QzYsIDB4NEUsIDB4NzIpLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AyNTZrMV9UXzdfWVtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgxRCwgMHg4MCwgMHhGOCwgMHg1QywgMHgyMCwgMHgyQSwgMHhFMSwgMHhFMiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDdDLCAweDQ4LCAweDJFLCAweDY4LCAweDgyLCAweDdGLCAweEVCLCAweDVGKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QTIsIDB4M0IsIDB4MjUsIDB4REIsIDB4MzIsIDB4NEQsIDB4ODgsIDB4NDIpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhFRSwgMHg2RSwgMHhBNiwgMHhCNiwgMHg2RCwgMHg2MiwgMHg3OCwgMHgyMiksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDI1NmsxX1RfOF9YW10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDFGLCAweDRELCAweDNFLCAweDg2LCAweDU4LCAweEMzLCAweEVCLCAweEJBKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MUEsIDB4ODksIDB4MzMsIDB4MTgsIDB4MjEsIDB4MUQsIDB4OUIsIDB4RTcpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgwQiwgMHg5RCwgMHhGRiwgMHhDMywgMHg3OSwgMHhDMSwgMHg4OCwgMHhGOCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDI4LCAweEQ0LCAweDQ4LCAweDUzLCAweEU4LCAweEFELCAweDIxLCAweDE2KSwKLX07Ci1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMjU2azFfVF84X1lbXSA9IHsKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RjUsIDB4N0IsIDB4REUsIDB4Q0IsIDB4RDgsIDB4MzksIDB4MTcsIDB4N0MpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhEMywgMHhGMywgMHgwMywgMHhGMiwgMHg1QywgMHhCQywgMHhDOCwgMHg4QSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDI3LCAweEFFLCAweDRDLCAweEIwLCAweDE2LCAweEE0LCAweDkzLCAweDg2KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NzEsIDB4OEIsIDB4NkIsIDB4REMsIDB4RDcsIDB4OUEsIDB4M0UsIDB4N0UpLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AyNTZrMV9UXzlfWFtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhENiwgMHgyRCwgMHg3QSwgMHhEMiwgMHg1OSwgMHgwNSwgMHhBMiwgMHg4MiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDU3LCAweDU2LCAweDA5LCAweDMyLCAweEYxLCAweEU4LCAweEUzLCAweDcyKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MDMsIDB4Q0EsIDB4RTUsIDB4MkUsIDB4RjAsIDB4RkIsIDB4MTgsIDB4MTkpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhCQSwgMHg4NSwgMHhBOSwgMHgyMywgMHgxNSwgMHgzMSwgMHgxRiwgMHgwRSksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDI1NmsxX1RfOV9ZW10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDc2LCAweEU1LCAweEIxLCAweDg2LCAweEI5LCAweDZFLCAweDhELCAweEQzKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NkMsIDB4NzcsIDB4RkMsIDB4QzksIDB4QTMsIDB4M0YsIDB4ODksIDB4RDIpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhEQiwgMHg2QSwgMHhEQywgMHgyNSwgMHhCMCwgMHhDNywgMHg0MSwgMHg1NCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDAyLCAweDExLCAweDZCLCAweEE2LCAweDExLCAweDYyLCAweEQ0LCAweDJEKSwKLX07Ci1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMjU2azFfVF8xMF9YW10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDE5LCAweDdELCAweDM0LCAweEIzLCAweDIwLCAweDdGLCAweDM3LCAweEFBKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QkQsIDB4RDQsIDB4NDUsIDB4RTgsIDB4QzIsIDB4RTksIDB4QzUsIDB4RUEpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg1QSwgMHgzMiwgMHgzQiwgMHgyNSwgMHg3RSwgMHg3OSwgMHhBRiwgMHhFNyksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDNGLCAweEU0LCAweDU0LCAweDcxLCAweEJFLCAweDM1LCAweDRFLCAweEQwKSwKLX07Ci1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMjU2azFfVF8xMF9ZW10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEIwLCAweDk0LCAweERELCAweDhGLCAweEI1LCAweEMyLCAweERELCAweDc1KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MDcsIDB4NDksIDB4RTksIDB4MUMsIDB4MkYsIDB4MDgsIDB4NDksIDB4QzYpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg3NywgMHhCNiwgMHgwMywgMHg4OCwgMHg2RiwgMHhCOCwgMHgxNSwgMHg2NyksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEE0LCAweEQzLCAweDFDLCAweEYzLCAweEE1LCAweEVCLCAweDc5LCAweDAxKSwKLX07Ci1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMjU2azFfVF8xMV9YW10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDI1LCAweEY5LCAweDQzLCAweDg4LCAweDg5LCAweDBELCAweDA2LCAweEVBKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MDIsIDB4MkQsIDB4RjUsIDB4OTgsIDB4MzIsIDB4RjYsIDB4QjEsIDB4MDUpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgyMywgMHg3MywgMHg4RiwgMHgyQiwgMHg1MCwgMHgyNywgMHgwQSwgMHhFNyksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEE3LCAweEUzLCAweEJELCAweDE2LCAweDA1LCAweEM4LCAweDkzLCAweDEyKSwKLX07Ci1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMjU2azFfVF8xMV9ZW10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDBBLCAweDZBLCAweEY3LCAweEUzLCAweDNELCAweERFLCAweDVGLCAweDJGKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NDcsIDB4QTMsIDB4OUMsIDB4MjIsIDB4M0MsIDB4MzMsIDB4MzYsIDB4NUQpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgyMCwgMHgyNCwgMHg0QywgMHg2OSwgMHg0NSwgMHg3OCwgMHgxNCwgMHhBRSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDU5LCAweEY4LCAweEQ0LCAweEJGLCAweEI4LCAweEMwLCAweEExLCAweDI1KSwKLX07Ci1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMjU2azFfVF8xMl9YW10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDdFLCAweDg4LCAweEUxLCAweDkxLCAweDAzLCAweEVCLCAweEIzLCAweDJCKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NUMsIDB4MTEsIDB4QTEsIDB4RUYsIDB4MTQsIDB4MEQsIDB4QzQsIDB4N0QpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhGRSwgMHhENCwgMHgwRCwgMHgxRCwgMHg5NiwgMHgzMywgMHg1QywgMHgxOSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDcwLCAweDQ1LCAweDJBLCAweDFBLCAweEU2LCAweDU3LCAweDA0LCAweDlCKSwKLX07Ci1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMjU2azFfVF8xMl9ZW10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDcwLCAweEI1LCAweEE3LCAweDgwLCAweEU5LCAweDkzLCAweDk3LCAweDhEKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NUQsIDB4QjksIDB4N0MsIDB4QTAsIDB4QzksIDB4NTcsIDB4MjYsIDB4NDMpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg5RSwgMHhFRiwgMHg1NiwgMHhEQSwgMHg2NiwgMHhGNiwgMHgxQiwgMHg5QSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDFGLCAweDg5LCAweDZCLCAweDkxLCAweEUwLCAweEE5LCAweDY1LCAweDJCKSwKLX07Ci1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMjU2azFfVF8xM19YW10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDkxLCAweDk4LCAweDk2LCAweDlCLCAweDA2LCAweDdELCAweDVFLCAweDVBKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MEEsIDB4RkEsIDB4QzEsIDB4NUYsIDB4MTksIDB4MzcsIDB4OTQsIDB4OUQpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhDRiwgMHhCRSwgMHg2QiwgMHgxQSwgMHgwNSwgMHhFNCwgMHhCRiwgMHg5RiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDg0LCAweENELCAweDVELCAweDM1LCAweEI0LCAweDUxLCAweEY3LCAweDY0KSwKLX07Ci1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMjU2azFfVF8xM19ZW10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDZDLCAweEVGLCAweDk2LCAweERCLCAweEYyLCAweDYxLCAweDYzLCAweDU5KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4Q0IsIDB4MDQsIDB4ODgsIDB4QzksIDB4OUYsIDB4MUIsIDB4OTQsIDB4QjkpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhEQiwgMHgzMCwgMHg3OSwgMHg3RSwgMHgyNCwgMHhFNywgMHg1RiwgMHhCOCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDNGLCAweEI4LCAweDkwLCAweEI3LCAweDk0LCAweDI1LCAweEJCLCAweDBGKSwKLX07Ci1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMjU2azFfVF8xNF9YW10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDYyLCAweDc5LCAweEVBLCAweEFELCAweEMwLCAweDZELCAweDE4LCAweDU3KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RTksIDB4QTQsIDB4NTgsIDB4MkEsIDB4OEQsIDB4OTUsIDB4QjMsIDB4RTYpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhDOCwgMHhDNCwgMHhDMiwgMHgxMiwgMHgwRCwgMHg3OSwgMHhFMiwgMHgyQiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDAyLCAweDZGLCAweEJFLCAweDk3LCAweDRELCAweEE0LCAweDIwLCAweDA3KSwKLX07Ci1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMjU2azFfVF8xNF9ZW10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweENBLCAweDMxLCAweDcxLCAweEM2LCAweEE2LCAweDkxLCAweEVCLCAweDFGKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QjQsIDB4OUIsIDB4QTgsIDB4NEEsIDB4RTcsIDB4NzcsIDB4RTEsIDB4QUEpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhBOSwgMHgwNiwgMHhEMywgMHgzRCwgMHg5NCwgMHgzMCwgMHhFRiwgMHg4QyksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEU3LCAweERGLCAweENBLCAweEZBLCAweEY1LCAweDI4LCAweEY4LCAweEM5KSwKLX07Ci1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMjU2azFfVF8xNV9YW10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweENDLCAweEUxLCAweDMyLCAweEZELCAweDNFLCAweDgxLCAweEY4LCAweDExKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4Q0QsIDB4RjIsIDB4NEIsIDB4MUQsIDB4MTksIDB4QzksIDB4MEYsIDB4Q0MpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg1OSwgMHhCMSwgMHg4QSwgMHgyMiwgMHg4QiwgMHgwNSwgMHg2QiwgMHg1NiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDM1LCAweDIxLCAweEVGLCAweDMwLCAweEVDLCAweDA5LCAweDJBLCAweDg5KSwKLX07Ci1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMjU2azFfVF8xNV9ZW10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDE1LCAweDg0LCAweDRBLCAweDQ2LCAweDA3LCAweDZDLCAweDNDLCAweDRDKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4REQsIDB4MTgsIDB4M0EsIDB4RjQsIDB4Q0MsIDB4RjUsIDB4QjIsIDB4RjIpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg0RiwgMHg4RiwgMHhDRCwgMHgwQSwgMHg5QywgMHhGNCwgMHhCRCwgMHg5NSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDM3LCAweDg5LCAweDdGLCAweDhBLCAweEIxLCAweDUyLCAweDNBLCAweEFCKSwKLX07Ci1zdGF0aWMgY29uc3QgbWJlZHRsc19lY3BfcG9pbnQgc2VjcDI1NmsxX1RbMTZdID0gewotICAgIEVDUF9QT0lOVF9JTklUX1hZX1oxKHNlY3AyNTZrMV9UXzBfWCwgc2VjcDI1NmsxX1RfMF9ZKSwKLSAgICBFQ1BfUE9JTlRfSU5JVF9YWV9aMChzZWNwMjU2azFfVF8xX1gsIHNlY3AyNTZrMV9UXzFfWSksCi0gICAgRUNQX1BPSU5UX0lOSVRfWFlfWjAoc2VjcDI1NmsxX1RfMl9YLCBzZWNwMjU2azFfVF8yX1kpLAotICAgIEVDUF9QT0lOVF9JTklUX1hZX1owKHNlY3AyNTZrMV9UXzNfWCwgc2VjcDI1NmsxX1RfM19ZKSwKLSAgICBFQ1BfUE9JTlRfSU5JVF9YWV9aMChzZWNwMjU2azFfVF80X1gsIHNlY3AyNTZrMV9UXzRfWSksCi0gICAgRUNQX1BPSU5UX0lOSVRfWFlfWjAoc2VjcDI1NmsxX1RfNV9YLCBzZWNwMjU2azFfVF81X1kpLAotICAgIEVDUF9QT0lOVF9JTklUX1hZX1owKHNlY3AyNTZrMV9UXzZfWCwgc2VjcDI1NmsxX1RfNl9ZKSwKLSAgICBFQ1BfUE9JTlRfSU5JVF9YWV9aMChzZWNwMjU2azFfVF83X1gsIHNlY3AyNTZrMV9UXzdfWSksCi0gICAgRUNQX1BPSU5UX0lOSVRfWFlfWjAoc2VjcDI1NmsxX1RfOF9YLCBzZWNwMjU2azFfVF84X1kpLAotICAgIEVDUF9QT0lOVF9JTklUX1hZX1owKHNlY3AyNTZrMV9UXzlfWCwgc2VjcDI1NmsxX1RfOV9ZKSwKLSAgICBFQ1BfUE9JTlRfSU5JVF9YWV9aMChzZWNwMjU2azFfVF8xMF9YLCBzZWNwMjU2azFfVF8xMF9ZKSwKLSAgICBFQ1BfUE9JTlRfSU5JVF9YWV9aMChzZWNwMjU2azFfVF8xMV9YLCBzZWNwMjU2azFfVF8xMV9ZKSwKLSAgICBFQ1BfUE9JTlRfSU5JVF9YWV9aMChzZWNwMjU2azFfVF8xMl9YLCBzZWNwMjU2azFfVF8xMl9ZKSwKLSAgICBFQ1BfUE9JTlRfSU5JVF9YWV9aMChzZWNwMjU2azFfVF8xM19YLCBzZWNwMjU2azFfVF8xM19ZKSwKLSAgICBFQ1BfUE9JTlRfSU5JVF9YWV9aMChzZWNwMjU2azFfVF8xNF9YLCBzZWNwMjU2azFfVF8xNF9ZKSwKLSAgICBFQ1BfUE9JTlRfSU5JVF9YWV9aMChzZWNwMjU2azFfVF8xNV9YLCBzZWNwMjU2azFfVF8xNV9ZKSwKLX07Ci0jZWxzZQotI2RlZmluZSBzZWNwMjU2azFfVCBOVUxMCi0jZW5kaWYKLSNlbmRpZiAvKiBNQkVEVExTX0VDUF9EUF9TRUNQMjU2SzFfRU5BQkxFRCAqLwotCi0vKgotICogRG9tYWluIHBhcmFtZXRlcnMgZm9yIGJyYWlucG9vbFAyNTZyMSAoUkZDIDU2MzkgMy40KQotICovCi0jaWYgZGVmaW5lZChNQkVEVExTX0VDUF9EUF9CUDI1NlIxX0VOQUJMRUQpCi1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBicmFpbnBvb2xQMjU2cjFfcFtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg3NywgMHg1MywgMHg2RSwgMHgxRiwgMHgxRCwgMHg0OCwgMHgxMywgMHgyMCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDI4LCAweDIwLCAweDI2LCAweEQ1LCAweDIzLCAweEY2LCAweDNCLCAweDZFKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NzIsIDB4OEQsIDB4ODMsIDB4OUQsIDB4OTAsIDB4MEEsIDB4NjYsIDB4M0UpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhCQywgMHhBOSwgMHhFRSwgMHhBMSwgMHhEQiwgMHg1NywgMHhGQiwgMHhBOSksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgYnJhaW5wb29sUDI1NnIxX2FbXSA9IHsKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RDksIDB4QjUsIDB4MzAsIDB4RjMsIDB4NDQsIDB4NEIsIDB4NEEsIDB4RTkpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg2QywgMHg1QywgMHhEQywgMHgyNiwgMHhDMSwgMHg1NSwgMHg4MCwgMHhGQiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEU3LCAweEZGLCAweDdBLCAweDQxLCAweDMwLCAweDc1LCAweEY2LCAweEVFKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NTcsIDB4MzAsIDB4MkMsIDB4RkMsIDB4NzUsIDB4MDksIDB4NUEsIDB4N0QpLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IGJyYWlucG9vbFAyNTZyMV9iW10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEI2LCAweDA3LCAweDhDLCAweEZGLCAweDE4LCAweERDLCAweENDLCAweDZCKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4Q0UsIDB4RTEsIDB4RjcsIDB4NUMsIDB4MjksIDB4MTYsIDB4ODQsIDB4OTUpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhCRiwgMHg3QywgMHhENywgMHhCQiwgMHhEOSwgMHhCNSwgMHgzMCwgMHhGMyksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDQ0LCAweDRCLCAweDRBLCAweEU5LCAweDZDLCAweDVDLCAweERDLCAweDI2KSwKLX07Ci1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBicmFpbnBvb2xQMjU2cjFfZ3hbXSA9IHsKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NjIsIDB4MzIsIDB4Q0UsIDB4OUEsIDB4QkQsIDB4NTMsIDB4NDQsIDB4M0EpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhDMiwgMHgyMywgMHhCRCwgMHhFMywgMHhFMSwgMHgyNywgMHhERSwgMHhCOSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEFGLCAweEI3LCAweDgxLCAweEZDLCAweDJGLCAweDQ4LCAweDRCLCAweDJDKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4Q0IsIDB4NTcsIDB4N0UsIDB4Q0IsIDB4QjksIDB4QUUsIDB4RDIsIDB4OEIpLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IGJyYWlucG9vbFAyNTZyMV9neVtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg5NywgMHg2OSwgMHgwNCwgMHgyRiwgMHhDNywgMHg1NCwgMHgxRCwgMHg1QyksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDU0LCAweDhFLCAweEVELCAweDJELCAweDEzLCAweDQ1LCAweDc3LCAweEMyKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QzksIDB4MUQsIDB4NjEsIDB4MTQsIDB4MUEsIDB4NDYsIDB4RjgsIDB4OTcpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhGRCwgMHhDNCwgMHhEQSwgMHhDMywgMHgzNSwgMHhGOCwgMHg3RSwgMHg1NCksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgYnJhaW5wb29sUDI1NnIxX25bXSA9IHsKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QTcsIDB4NTYsIDB4NDgsIDB4OTcsIDB4ODIsIDB4MEUsIDB4MUUsIDB4OTApLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhGNywgMHhBNiwgMHg2MSwgMHhCNSwgMHhBMywgMHg3QSwgMHgzOSwgMHg4QyksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDcxLCAweDhELCAweDgzLCAweDlELCAweDkwLCAweDBBLCAweDY2LCAweDNFKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QkMsIDB4QTksIDB4RUUsIDB4QTEsIDB4REIsIDB4NTcsIDB4RkIsIDB4QTkpLAotfTsKLQotI2lmIE1CRURUTFNfRUNQX0ZJWEVEX1BPSU5UX09QVElNID09IDEKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IGJyYWlucG9vbFAyNTZyMV9UXzBfWFtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg2MiwgMHgzMiwgMHhDRSwgMHg5QSwgMHhCRCwgMHg1MywgMHg0NCwgMHgzQSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEMyLCAweDIzLCAweEJELCAweEUzLCAweEUxLCAweDI3LCAweERFLCAweEI5KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QUYsIDB4QjcsIDB4ODEsIDB4RkMsIDB4MkYsIDB4NDgsIDB4NEIsIDB4MkMpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhDQiwgMHg1NywgMHg3RSwgMHhDQiwgMHhCOSwgMHhBRSwgMHhEMiwgMHg4QiksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgYnJhaW5wb29sUDI1NnIxX1RfMF9ZW10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDk3LCAweDY5LCAweDA0LCAweDJGLCAweEM3LCAweDU0LCAweDFELCAweDVDKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NTQsIDB4OEUsIDB4RUQsIDB4MkQsIDB4MTMsIDB4NDUsIDB4NzcsIDB4QzIpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhDOSwgMHgxRCwgMHg2MSwgMHgxNCwgMHgxQSwgMHg0NiwgMHhGOCwgMHg5NyksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEZELCAweEM0LCAweERBLCAweEMzLCAweDM1LCAweEY4LCAweDdFLCAweDU0KSwKLX07Ci1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBicmFpbnBvb2xQMjU2cjFfVF8xX1hbXSA9IHsKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4M0MsIDB4QTIsIDB4RUQsIDB4NTIsIDB4QzksIDB4OEMsIDB4RTMsIDB4QTUpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg3MiwgMHhDOSwgMHhDNCwgMHg4NywgMHgzRiwgMHg5MywgMHg3QSwgMHhEMSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDk2LCAweDEyLCAweDUzLCAweDYxLCAweDNFLCAweDc2LCAweDA4LCAweENCKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MDksIDB4OEMsIDB4NzQsIDB4RjQsIDB4MDgsIDB4QzMsIDB4NzYsIDB4ODApLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IGJyYWlucG9vbFAyNTZyMV9UXzFfWVtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgwNSwgMHhERCwgMHgwOSwgMHhBNiwgMHhFRCwgMHhFRSwgMHhDNCwgMHgzOCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDc0LCAweEQ5LCAweEJFLCAweDRCLCAweEE1LCAweEI3LCAweDJCLCAweDZFKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NDIsIDB4MjAsIDB4MTIsIDB4Q0EsIDB4MEEsIDB4MzgsIDB4MjQsIDB4QUIpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgwMCwgMHg3MiwgMHg3MSwgMHg5MCwgMHg3QSwgMHgyRSwgMHhCNywgMHgyMyksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgYnJhaW5wb29sUDI1NnIxX1RfMl9YW10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDJDLCAweDY2LCAweEExLCAweDkzLCAweDEwLCAweDJBLCAweDUxLCAweDE3KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4ODgsIDB4MTAsIDB4MTEsIDB4MTIsIDB4QkMsIDB4QjAsIDB4QjYsIDB4OTMpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgzQywgMHg1OCwgMHhENywgMHgwQSwgMHg4NCwgMHgwNSwgMHhBMywgMHg5QyksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEY3LCAweDhFLCAweDk1LCAweDYxLCAweEQzLCAweDBCLCAweERGLCAweDM2KSwKLX07Ci1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBicmFpbnBvb2xQMjU2cjFfVF8yX1lbXSA9IHsKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RjksIDB4OTIsIDB4MTIsIDB4MEYsIDB4NUUsIDB4ODcsIDB4NzAsIDB4MUIpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgzOCwgMHhFOSwgMHg5QiwgMHhFQiwgMHgzQSwgMHhGQiwgMHhDRiwgMHhDNCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweERDLCAweDkyLCAweEI5LCAweEY3LCAweDQ1LCAweEQzLCAweDA2LCAweEI2KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4ODIsIDB4MjgsIDB4NjUsIDB4RTEsIDB4QzUsIDB4NkMsIDB4NTcsIDB4MTgpLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IGJyYWlucG9vbFAyNTZyMV9UXzNfWFtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgyOCwgMHgwRSwgMHg3NywgMHgwMSwgMHg4MSwgMHg5RSwgMHgzOCwgMHg1QyksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDcxLCAweEYwLCAweEQ1LCAweEE1LCAweDkxLCAweDJCLCAweERGLCAweEMwKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RDgsIDB4RUUsIDB4QjYsIDB4MjUsIDB4RDYsIDB4OTgsIDB4REUsIDB4MkQpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg3QiwgMHhBMSwgMHg1NSwgMHg2MywgMHgzOSwgMHhFQiwgMHhCNSwgMHg0NyksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgYnJhaW5wb29sUDI1NnIxX1RfM19ZW10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEI2LCAweEQ2LCAweEI4LCAweEUzLCAweDEzLCAweEVELCAweDdGLCAweEEzKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NkMsIDB4RTgsIDB4QUUsIDB4MzYsIDB4QjgsIDB4Q0QsIDB4MTksIDB4MDIpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhGOSwgMHg4MiwgMHg4MywgMHg3QSwgMHg3QiwgMHg0NiwgMHg1NiwgMHhFOCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDRFLCAweDYwLCAweDQ2LCAweDE1LCAweDVBLCAweEFDLCAweDk5LCAweDMwKSwKLX07Ci1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBicmFpbnBvb2xQMjU2cjFfVF80X1hbXSA9IHsKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QkYsIDB4NjEsIDB4NTAsIDB4QzYsIDB4RkYsIDB4MTAsIDB4N0QsIDB4MDQpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg5MiwgMHg1MSwgMHhERiwgMHhBOSwgMHg3RCwgMHg3OCwgMHgyNiwgMHg3NCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDU2LCAweDE1LCAweDlBLCAweEY3LCAweDAxLCAweEMxLCAweEJCLCAweDQwKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MjYsIDB4MEYsIDB4RTYsIDB4MkEsIDB4QkQsIDB4NEEsIDB4OUUsIDB4ODcpLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IGJyYWlucG9vbFAyNTZyMV9UXzRfWVtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg1NywgMHhGOCwgMHhEMSwgMHg3NywgMHhEMiwgMHg0OSwgMHhCMywgMHhERCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDM2LCAweDg2LCAweEZCLCAweDlFLCAweDFGLCAweDVBLCAweDYwLCAweDQ3KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4OTgsIDB4QzQsIDB4OEQsIDB4Q0QsIDB4ODYsIDB4NjEsIDB4MkYsIDB4RjkpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg0MSwgMHhGNiwgMHhCOSwgMHhBQywgMHgzNywgMHg5RCwgMHhFOSwgMHgyOCksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgYnJhaW5wb29sUDI1NnIxX1RfNV9YW10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEZBLCAweDc3LCAweEFBLCAweDk3LCAweDlDLCAweDBCLCAweDA0LCAweDIwKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4ODAsIDB4QTYsIDB4NjAsIDB4ODEsIDB4Q0UsIDB4MjUsIDB4MTMsIDB4M0UpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgyNCwgMHgwMCwgMHhGMywgMHhCQiwgMHg4MiwgMHg5OSwgMHg5NSwgMHhCNyksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDQ3LCAweDVBLCAweENFLCAweDkwLCAweDcxLCAweDM4LCAweDJGLCAweDEwKSwKLX07Ci1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBicmFpbnBvb2xQMjU2cjFfVF81X1lbXSA9IHsKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QTcsIDB4MUEsIDB4QzAsIDB4ODQsIDB4MjcsIDB4RDYsIDB4OUQsIDB4QjcpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgzNCwgMHgzNywgMHg1MiwgMHgxNiwgMHgxMywgMHgwRSwgMHhDRSwgMHg5MiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDFFLCAweEJGLCAweDVBLCAweERCLCAweERCLCAweDZFLCAweDFFLCAweDY5KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4M0UsIDB4QjcsIDB4NUUsIDB4RjksIDB4ODYsIDB4REQsIDB4OEEsIDB4NUMpLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IGJyYWlucG9vbFAyNTZyMV9UXzZfWFtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgzRCwgMHhBQiwgMHg1QywgMHg4RCwgMHgxRCwgMHhGMiwgMHgyRCwgMHgxRSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDY1LCAweEM1LCAweEY4LCAweEY3LCAweDFELCAweDk2LCAweDBCLCAweDREKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QUMsIDB4NEMsIDB4QTcsIDB4NDUsIDB4MjAsIDB4NkEsIDB4MUUsIDB4NUIpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgyMSwgMHg1RCwgMHhFRiwgMHhERSwgMHhFRSwgMHgzOSwgMHg0NCwgMHgxOSksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgYnJhaW5wb29sUDI1NnIxX1RfNl9ZW10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDRCLCAweDJGLCAweDZELCAweDUyLCAweEM5LCAweDU4LCAweDYwLCAweEU4KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QzMsIDB4QzksIDB4NjIsIDB4Q0IsIDB4MzgsIDB4M0MsIDB4NTUsIDB4Q0EpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhGRiwgMHhBNSwgMHgwOSwgMHgxMCwgMHg4OCwgMHhEQiwgMHhFMywgMHhCRCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDUyLCAweEUwLCAweDNDLCAweENFLCAweDA2LCAweDBCLCAweDRCLCAweDVEKSwKLX07Ci1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBicmFpbnBvb2xQMjU2cjFfVF83X1hbXSA9IHsKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QjEsIDB4MUQsIDB4QjQsIDB4MTAsIDB4NzYsIDB4OEYsIDB4QkEsIDB4MDkpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg1NywgMHg3MCwgMHg1QSwgMHgwNywgMHhGNSwgMHgxQSwgMHg3NCwgMHhDNyksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDBCLCAweEU5LCAweDk0LCAweEE4LCAweEMwLCAweEQ1LCAweDRBLCAweDRBKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4M0UsIDB4NkQsIDB4RDQsIDB4RTgsIDB4OUIsIDB4RTksIDB4NkQsIDB4MEUpLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IGJyYWlucG9vbFAyNTZyMV9UXzdfWVtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg2NSwgMHgwMCwgMHgzMiwgMHg0MSwgMHg1NywgMHg4NCwgMHg4OSwgMHg1MiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEVFLCAweEM3LCAweDE0LCAweEVDLCAweEU5LCAweDI3LCAweEZGLCAweEYzKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4OUEsIDB4NjcsIDB4OUUsIDB4RkIsIDB4QjYsIDB4QjgsIDB4OTYsIDB4RjMpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhFNSwgMHg0QSwgMHhFMywgMHg5NywgMHg0QiwgMHg1OCwgMHhERSwgMHgzMCksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgYnJhaW5wb29sUDI1NnIxX1RfOF9YW10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEE2LCAweDFFLCAweDVDLCAweEY1LCAweDdGLCAweEQ1LCAweEQ0LCAweEFBKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NUQsIDB4MDgsIDB4N0EsIDB4RjEsIDB4QkQsIDB4ODksIDB4QzcsIDB4MUUpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgzQSwgMHhGOSwgMHgxMSwgMHgxQiwgMHhGNSwgMHgzQywgMHg2RCwgMHg4QyksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDE5LCAweDUwLCAweEU1LCAweDY5LCAweDFELCAweDU5LCAweEZDLCAweDBDKSwKLX07Ci1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBicmFpbnBvb2xQMjU2cjFfVF84X1lbXSA9IHsKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RjEsIDB4MkYsIDB4RjgsIDB4M0YsIDB4RUMsIDB4NTUsIDB4OTksIDB4NTcpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg0MSwgMHhBNywgMHgyOSwgMHg5MCwgMHg0MywgMHg4MSwgMHgzMSwgMHg0QyksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEMzLCAweDE4LCAweDQ0LCAweDUwLCAweDVELCAweDc2LCAweENCLCAweEREKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RjAsIDB4QzUsIDB4NUIsIDB4OUEsIDB4MDMsIDB4RTYsIDB4MTcsIDB4MzkpLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IGJyYWlucG9vbFAyNTZyMV9UXzlfWFtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgyMSwgMHg4OSwgMHhGQywgMHg1NSwgMHg5NCwgMHg5MSwgMHg2QSwgMHhBMiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDc0LCAweDQ2LCAweDM1LCAweEYyLCAweDNBLCAweDQyLCAweDA4LCAweDJGKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RDMsIDB4RDIsIDB4NzYsIDB4NDksIDB4NDIsIDB4ODcsIDB4RDMsIDB4N0YpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg5MCwgMHhFQSwgMHhBMCwgMHg1MiwgMHhGMSwgMHg2QSwgMHgzMCwgMHg1NyksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgYnJhaW5wb29sUDI1NnIxX1RfOV9ZW10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDAwLCAweEIyLCAweDU3LCAweEEzLCAweDhBLCAweDRELCAweDFCLCAweDNDKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RkMsIDB4QTMsIDB4OTksIDB4OTQsIDB4QjUsIDB4M0QsIDB4NjQsIDB4MDkpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgzNSwgMHhDMywgMHhENywgMHg1MywgMHhGNiwgMHg0OSwgMHgxQywgMHg2MCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDI3LCAweDIzLCAweDQxLCAweDRELCAweEZCLCAweDdBLCAweDVDLCAweDUzKSwKLX07Ci1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBicmFpbnBvb2xQMjU2cjFfVF8xMF9YW10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweENBLCAweEI4LCAweDE1LCAweDY1LCAweDVDLCAweDg1LCAweDk0LCAweEQ3KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QUMsIDB4MzcsIDB4QzcsIDB4RjgsIDB4N0UsIDB4QUUsIDB4NkMsIDB4MTApLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg1MywgMHhEOCwgMHgxMSwgMHg1NCwgMHg5OCwgMHg0NCwgMHhFMywgMHhGMSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEU0LCAweDRELCAweEE2LCAweDRCLCAweDI4LCAweEYyLCAweDU3LCAweDlFKSwKLX07Ci1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBicmFpbnBvb2xQMjU2cjFfVF8xMF9ZW10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEY2LCAweEQwLCAweEVCLCAweDFFLCAweEFBLCAweDMwLCAweEQzLCAweDZBKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NTgsIDB4OUIsIDB4NEQsIDB4QTcsIDB4NzMsIDB4NkUsIDB4QjYsIDB4NDUpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg1RCwgMHg0NywgMHhGNiwgMHhFRCwgMHgzNywgMHhFRiwgMHg3MSwgMHg0RCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEE4LCAweEI1LCAweDQ5LCAweDYxLCAweDVFLCAweDQ1LCAweEY2LCAweDRBKSwKLX07Ci1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBicmFpbnBvb2xQMjU2cjFfVF8xMV9YW10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEVGLCAweDBFLCAweEIzLCAweDg0LCAweDNBLCAweDYzLCAweDcyLCAweDg0KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NkQsIDB4NTMsIDB4NUMsIDB4QTcsIDB4QzYsIDB4MkUsIDB4QUIsIDB4OUUpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhFQiwgMHgwRiwgMHg4RiwgMHg4NywgMHg1MCwgMHgyOCwgMHhCNCwgMHhBRSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDVDLCAweDk4LCAweDRBLCAweDk4LCAweDMxLCAweDg2LCAweENBLCAweDUxKSwKLX07Ci1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBicmFpbnBvb2xQMjU2cjFfVF8xMV9ZW10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEJFLCAweEM5LCAweEUyLCAweEZELCAweDVELCAweDFGLCAweEU4LCAweEMyKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RDUsIDB4OTAsIDB4OTEsIDB4QzQsIDB4ODQsIDB4RjAsIDB4QkEsIDB4QzUpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg2QywgMHg1QSwgMHhCMywgMHg0RSwgMHhGQiwgMHhFMCwgMHg1NywgMHhFOCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDZCLCAweDBCLCAweDkwLCAweEE2LCAweEZELCAweDlELCAweDhFLCAweDAyKSwKLX07Ci1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBicmFpbnBvb2xQMjU2cjFfVF8xMl9YW10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEY4LCAweDQxLCAweDhGLCAweDMxLCAweEZBLCAweDVBLCAweEY2LCAweDMzKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QUMsIDB4RTksIDB4RTMsIDB4RjYsIDB4RTAsIDB4NEEsIDB4RTcsIDB4RDIpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg4NCwgMHg0RSwgMHhDRCwgMHhBMiwgMHgyMiwgMHgxNCwgMHhENCwgMHgxMiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDdDLCAweEVELCAweDIxLCAweEI3LCAweDBGLCAweDUzLCAweDEwLCAweDE3KSwKLX07Ci1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBicmFpbnBvb2xQMjU2cjFfVF8xMl9ZW10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDA1LCAweDA2LCAweDI0LCAweDJDLCAweDRFLCAweEQxLCAweDFFLCAweDlGKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RDcsIDB4M0YsIDB4QzEsIDB4OUYsIDB4QUIsIDB4RjAsIDB4MzcsIDB4OTUpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgwMywgMHg1RSwgMHgxMiwgMHhDRSwgMHg4MywgMHgxQiwgMHgyQSwgMHgxOCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDYxLCAweDY1LCAweENGLCAweEU4LCAweDVDLCAweEE1LCAweEEyLCAweDcwKSwKLX07Ci1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBicmFpbnBvb2xQMjU2cjFfVF8xM19YW10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEI4LCAweDg2LCAweDc2LCAweDNBLCAweDk0LCAweEY2LCAweDFELCAweEMxKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MUQsIDB4REEsIDB4QzksIDB4QTYsIDB4MjksIDB4OTMsIDB4MTUsIDB4MTApLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg2RCwgMHg2MSwgMHg2QSwgMHg3RCwgMHhDNywgMHhBOSwgMHhGMywgMHg3NiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDRBLCAweDAzLCAweDcxLCAweEEyLCAweDE1LCAweENFLCAweDUwLCAweDcyKSwKLX07Ci1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBicmFpbnBvb2xQMjU2cjFfVF8xM19ZW10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEI2LCAweEQwLCAweEE4LCAweDFFLCAweDkxLCAweEM0LCAweDRGLCAweDI0KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MkQsIDB4NEIsIDB4N0UsIDB4RDcsIDB4NzEsIDB4NTgsIDB4N0UsIDB4MUUpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg5MywgMHg0NSwgMHhBRiwgMHgyQSwgMHgxOCwgMHg5MywgMHg5NSwgMHgzQiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDFCLCAweDhGLCAweEM3LCAweEZBLCAweDRDLCAweDdBLCAweDg2LCAweDU0KSwKLX07Ci1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBicmFpbnBvb2xQMjU2cjFfVF8xNF9YW10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDk3LCAweEFGLCAweDY4LCAweDNBLCAweDIzLCAweEMxLCAweDJFLCAweEJGKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4ODksIDB4NTAsIDB4MTEsIDB4NjcsIDB4MzksIDB4QjksIDB4QUYsIDB4NDgpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgxOSwgMHg4NiwgMHhBQSwgMHgxRSwgMHg4OCwgMHgyMSwgMHgyOSwgMHg4QiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweENELCAweDI4LCAweEE0LCAweDlELCAweDg5LCAweEE5LCAweDlBLCAweDEwKSwKLX07Ci1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBicmFpbnBvb2xQMjU2cjFfVF8xNF9ZW10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDkxLCAweEJBLCAweDA0LCAweDY3LCAweEI3LCAweDAxLCAweDQwLCAweDM4KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MDgsIDB4RTksIDB4MDksIDB4QTMsIDB4Q0EsIDB4QTYsIDB4MzcsIDB4RjYpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg2QywgMHg5NywgMHhBOCwgMHhCNiwgMHgzQywgMHhFRSwgMHg5MCwgMHgzRCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweERDLCAweEVELCAweEM0LCAweEY3LCAweEMzLCAweDk1LCAweEVDLCAweDg1KSwKLX07Ci1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBicmFpbnBvb2xQMjU2cjFfVF8xNV9YW10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEY1LCAweDg0LCAweEJELCAweEVCLCAweEQ1LCAweDY0LCAweEJCLCAweDlEKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4REIsIDB4OUIsIDB4RTIsIDB4MjgsIDB4NTAsIDB4QzIsIDB4NzIsIDB4NDApLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgzOSwgMHhGMiwgMHg3NCwgMHhEMSwgMHgyNiwgMHhCRiwgMHgzMiwgMHg2OCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDM2LCAweENCLCAweEFGLCAweDcyLCAweERCLCAweDZELCAweDMwLCAweDk4KSwKLX07Ci1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBicmFpbnBvb2xQMjU2cjFfVF8xNV9ZW10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEIzLCAweDUwLCAweDg1LCAweEY0LCAweDJCLCAweDQ4LCAweEMxLCAweEFEKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QzAsIDB4MjgsIDB4QkIsIDB4MTEsIDB4QkEsIDB4NUIsIDB4MjIsIDB4NkMpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhBRCwgMHhBMSwgMHhFNSwgMHg1QywgMHhDOSwgMHgxRCwgMHg0NCwgMHg0NSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEQ0LCAweEU4LCAweEU2LCAweDZGLCAweEJCLCAweEMxLCAweDgxLCAweDdGKSwKLX07Ci1zdGF0aWMgY29uc3QgbWJlZHRsc19lY3BfcG9pbnQgYnJhaW5wb29sUDI1NnIxX1RbMTZdID0gewotICAgIEVDUF9QT0lOVF9JTklUX1hZX1oxKGJyYWlucG9vbFAyNTZyMV9UXzBfWCwgYnJhaW5wb29sUDI1NnIxX1RfMF9ZKSwKLSAgICBFQ1BfUE9JTlRfSU5JVF9YWV9aMChicmFpbnBvb2xQMjU2cjFfVF8xX1gsIGJyYWlucG9vbFAyNTZyMV9UXzFfWSksCi0gICAgRUNQX1BPSU5UX0lOSVRfWFlfWjAoYnJhaW5wb29sUDI1NnIxX1RfMl9YLCBicmFpbnBvb2xQMjU2cjFfVF8yX1kpLAotICAgIEVDUF9QT0lOVF9JTklUX1hZX1owKGJyYWlucG9vbFAyNTZyMV9UXzNfWCwgYnJhaW5wb29sUDI1NnIxX1RfM19ZKSwKLSAgICBFQ1BfUE9JTlRfSU5JVF9YWV9aMChicmFpbnBvb2xQMjU2cjFfVF80X1gsIGJyYWlucG9vbFAyNTZyMV9UXzRfWSksCi0gICAgRUNQX1BPSU5UX0lOSVRfWFlfWjAoYnJhaW5wb29sUDI1NnIxX1RfNV9YLCBicmFpbnBvb2xQMjU2cjFfVF81X1kpLAotICAgIEVDUF9QT0lOVF9JTklUX1hZX1owKGJyYWlucG9vbFAyNTZyMV9UXzZfWCwgYnJhaW5wb29sUDI1NnIxX1RfNl9ZKSwKLSAgICBFQ1BfUE9JTlRfSU5JVF9YWV9aMChicmFpbnBvb2xQMjU2cjFfVF83X1gsIGJyYWlucG9vbFAyNTZyMV9UXzdfWSksCi0gICAgRUNQX1BPSU5UX0lOSVRfWFlfWjAoYnJhaW5wb29sUDI1NnIxX1RfOF9YLCBicmFpbnBvb2xQMjU2cjFfVF84X1kpLAotICAgIEVDUF9QT0lOVF9JTklUX1hZX1owKGJyYWlucG9vbFAyNTZyMV9UXzlfWCwgYnJhaW5wb29sUDI1NnIxX1RfOV9ZKSwKLSAgICBFQ1BfUE9JTlRfSU5JVF9YWV9aMChicmFpbnBvb2xQMjU2cjFfVF8xMF9YLCBicmFpbnBvb2xQMjU2cjFfVF8xMF9ZKSwKLSAgICBFQ1BfUE9JTlRfSU5JVF9YWV9aMChicmFpbnBvb2xQMjU2cjFfVF8xMV9YLCBicmFpbnBvb2xQMjU2cjFfVF8xMV9ZKSwKLSAgICBFQ1BfUE9JTlRfSU5JVF9YWV9aMChicmFpbnBvb2xQMjU2cjFfVF8xMl9YLCBicmFpbnBvb2xQMjU2cjFfVF8xMl9ZKSwKLSAgICBFQ1BfUE9JTlRfSU5JVF9YWV9aMChicmFpbnBvb2xQMjU2cjFfVF8xM19YLCBicmFpbnBvb2xQMjU2cjFfVF8xM19ZKSwKLSAgICBFQ1BfUE9JTlRfSU5JVF9YWV9aMChicmFpbnBvb2xQMjU2cjFfVF8xNF9YLCBicmFpbnBvb2xQMjU2cjFfVF8xNF9ZKSwKLSAgICBFQ1BfUE9JTlRfSU5JVF9YWV9aMChicmFpbnBvb2xQMjU2cjFfVF8xNV9YLCBicmFpbnBvb2xQMjU2cjFfVF8xNV9ZKSwKLX07Ci0jZWxzZQotI2RlZmluZSBicmFpbnBvb2xQMjU2cjFfVCBOVUxMCi0jZW5kaWYKLQotI2VuZGlmIC8qIE1CRURUTFNfRUNQX0RQX0JQMjU2UjFfRU5BQkxFRCAqLwotCi0vKgotICogRG9tYWluIHBhcmFtZXRlcnMgZm9yIGJyYWlucG9vbFAzODRyMSAoUkZDIDU2MzkgMy42KQotICovCi0jaWYgZGVmaW5lZChNQkVEVExTX0VDUF9EUF9CUDM4NFIxX0VOQUJMRUQpCi1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBicmFpbnBvb2xQMzg0cjFfcFtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg1MywgMHhFQywgMHgwNywgMHgzMSwgMHgxMywgMHgwMCwgMHg0NywgMHg4NyksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDcxLCAweDFBLCAweDFELCAweDkwLCAweDI5LCAweEE3LCAweEQzLCAweEFDKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MjMsIDB4MTEsIDB4QjcsIDB4N0YsIDB4MTksIDB4REEsIDB4QjEsIDB4MTIpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhCNCwgMHg1NiwgMHg1NCwgMHhFRCwgMHgwOSwgMHg3MSwgMHgyRiwgMHgxNSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweERGLCAweDQxLCAweEU2LCAweDUwLCAweDdFLCAweDZGLCAweDVELCAweDBGKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MjgsIDB4NkQsIDB4MzgsIDB4QTMsIDB4ODIsIDB4MUUsIDB4QjksIDB4OEMpLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IGJyYWlucG9vbFAzODRyMV9hW10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDI2LCAweDI4LCAweENFLCAweDIyLCAweERELCAweEM3LCAweEE4LCAweDA0KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RUIsIDB4RDQsIDB4M0EsIDB4NTAsIDB4NEEsIDB4ODEsIDB4QTUsIDB4OEEpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgwRiwgMHhGOSwgMHg5MSwgMHhCQSwgMHhFRiwgMHg2NSwgMHg5MSwgMHgxMyksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDg3LCAweDI3LCAweEIyLCAweDRGLCAweDhFLCAweEEyLCAweEJFLCAweEMyKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QTAsIDB4QUYsIDB4MDUsIDB4Q0UsIDB4MEEsIDB4MDgsIDB4NzIsIDB4M0MpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgwQywgMHgxNSwgMHg4QywgMHgzRCwgMHhDNiwgMHg4MiwgMHhDMywgMHg3QiksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgYnJhaW5wb29sUDM4NHIxX2JbXSA9IHsKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MTEsIDB4NEMsIDB4NTAsIDB4RkEsIDB4OTYsIDB4ODYsIDB4QjcsIDB4M0EpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg5NCwgMHhDOSwgMHhEQiwgMHg5NSwgMHgwMiwgMHgzOSwgMHhCNCwgMHg3QyksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEQ1LCAweDYyLCAweEVCLCAweDNFLCAweEE1LCAweDBFLCAweDg4LCAweDJFKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QTYsIDB4RDIsIDB4REMsIDB4MDcsIDB4RTEsIDB4N0QsIDB4QjcsIDB4MkYpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg3QywgMHg0NCwgMHhGMCwgMHgxNiwgMHg1NCwgMHhCNSwgMHgzOSwgMHg4QiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDI2LCAweDI4LCAweENFLCAweDIyLCAweERELCAweEM3LCAweEE4LCAweDA0KSwKLX07Ci1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBicmFpbnBvb2xQMzg0cjFfZ3hbXSA9IHsKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MUUsIDB4QUYsIDB4RDQsIDB4NDcsIDB4RTIsIDB4QjIsIDB4ODcsIDB4RUYpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhBQSwgMHg0NiwgMHhENiwgMHgzNiwgMHgzNCwgMHhFMCwgMHgyNiwgMHhFOCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEU4LCAweDEwLCAweEJELCAweDBDLCAweEZFLCAweENBLCAweDdGLCAweERCKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RTMsIDB4NEYsIDB4RjEsIDB4N0UsIDB4RTcsIDB4QTMsIDB4NDcsIDB4ODgpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg2QiwgMHgzRiwgMHhDMSwgMHhCNywgMHg4MSwgMHgzQSwgMHhBNiwgMHhBMiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEZGLCAweDQ1LCAweENGLCAweDY4LCAweEYwLCAweDY0LCAweDFDLCAweDFEKSwKLX07Ci1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBicmFpbnBvb2xQMzg0cjFfZ3lbXSA9IHsKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MTUsIDB4NTMsIDB4M0MsIDB4MjYsIDB4NDEsIDB4MDMsIDB4ODIsIDB4NDIpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgxMSwgMHg4MSwgMHg5MSwgMHg3NywgMHgyMSwgMHg0NiwgMHg0NiwgMHgwRSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDI4LCAweDI5LCAweDkxLCAweEY5LCAweDRGLCAweDA1LCAweDlDLCAweEUxKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NjQsIDB4NTgsIDB4RUMsIDB4RkUsIDB4MjksIDB4MEIsIDB4QjcsIDB4NjIpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg1MiwgMHhENSwgMHhDRiwgMHg5NSwgMHg4RSwgMHhFQiwgMHhCMSwgMHg1QyksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEE0LCAweEMyLCAweEY5LCAweDIwLCAweDc1LCAweDFELCAweEJFLCAweDhBKSwKLX07Ci1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBicmFpbnBvb2xQMzg0cjFfbltdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg2NSwgMHg2NSwgMHgwNCwgMHhFOSwgMHgwMiwgMHgzMiwgMHg4OCwgMHgzQiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDEwLCAweEMzLCAweDdGLCAweDZCLCAweEFGLCAweEI2LCAweDNBLCAweENGKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QTcsIDB4MjUsIDB4MDQsIDB4QUMsIDB4NkMsIDB4NkUsIDB4MTYsIDB4MUYpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhCMywgMHg1NiwgMHg1NCwgMHhFRCwgMHgwOSwgMHg3MSwgMHgyRiwgMHgxNSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweERGLCAweDQxLCAweEU2LCAweDUwLCAweDdFLCAweDZGLCAweDVELCAweDBGKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MjgsIDB4NkQsIDB4MzgsIDB4QTMsIDB4ODIsIDB4MUUsIDB4QjksIDB4OEMpLAotfTsKLQotI2lmIE1CRURUTFNfRUNQX0ZJWEVEX1BPSU5UX09QVElNID09IDEKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IGJyYWlucG9vbFAzODRyMV9UXzBfWFtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgxRSwgMHhBRiwgMHhENCwgMHg0NywgMHhFMiwgMHhCMiwgMHg4NywgMHhFRiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEFBLCAweDQ2LCAweEQ2LCAweDM2LCAweDM0LCAweEUwLCAweDI2LCAweEU4KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RTgsIDB4MTAsIDB4QkQsIDB4MEMsIDB4RkUsIDB4Q0EsIDB4N0YsIDB4REIpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhFMywgMHg0RiwgMHhGMSwgMHg3RSwgMHhFNywgMHhBMywgMHg0NywgMHg4OCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDZCLCAweDNGLCAweEMxLCAweEI3LCAweDgxLCAweDNBLCAweEE2LCAweEEyKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RkYsIDB4NDUsIDB4Q0YsIDB4NjgsIDB4RjAsIDB4NjQsIDB4MUMsIDB4MUQpLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IGJyYWlucG9vbFAzODRyMV9UXzBfWVtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgxNSwgMHg1MywgMHgzQywgMHgyNiwgMHg0MSwgMHgwMywgMHg4MiwgMHg0MiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDExLCAweDgxLCAweDkxLCAweDc3LCAweDIxLCAweDQ2LCAweDQ2LCAweDBFKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MjgsIDB4MjksIDB4OTEsIDB4RjksIDB4NEYsIDB4MDUsIDB4OUMsIDB4RTEpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg2NCwgMHg1OCwgMHhFQywgMHhGRSwgMHgyOSwgMHgwQiwgMHhCNywgMHg2MiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDUyLCAweEQ1LCAweENGLCAweDk1LCAweDhFLCAweEVCLCAweEIxLCAweDVDKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QTQsIDB4QzIsIDB4RjksIDB4MjAsIDB4NzUsIDB4MUQsIDB4QkUsIDB4OEEpLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IGJyYWlucG9vbFAzODRyMV9UXzFfWFtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg5MywgMHhEOCwgMHg4QSwgMHg1NCwgMHg0MSwgMHhENiwgMHg2QiwgMHgxRCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEUyLCAweDNCLCAweEYxLCAweDIyLCAweEZELCAweDJELCAweDRCLCAweDAzKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MDEsIDB4NTUsIDB4RTMsIDB4MzMsIDB4RjAsIDB4NzMsIDB4NTIsIDB4NUEpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhDMSwgMHgzRiwgMHgzMCwgMHgyNiwgMHhDQSwgMHg3RiwgMHg1MiwgMHhBMyksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEQzLCAweDZFLCAweDE3LCAweDlCLCAweEQ1LCAweDJBLCAweDRBLCAweDMxKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4ODYsIDB4REEsIDB4NkIsIDB4RTUsIDB4MDMsIDB4MDcsIDB4MUQsIDB4MkUpLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IGJyYWlucG9vbFAzODRyMV9UXzFfWVtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg1MSwgMHg3QSwgMHhBRiwgMHg5OCwgMHhFMywgMHhBNCwgMHhGNiwgMHgxOSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEVDLCAweDdELCAweEZFLCAweDUxLCAweDQwLCAweDNCLCAweDQ3LCAweEQyKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RkMsIDB4ODgsIDB4RUMsIDB4QzQsIDB4RTIsIDB4OEYsIDB4Q0IsIDB4QTQpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgzMCwgMHhFMiwgMHg4OCwgMHgyRCwgMHg0RSwgMHg1MCwgMHhFQiwgMHg5QSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDEzLCAweDU0LCAweDk0LCAweDVFLCAweEY0LCAweDdGLCAweDNBLCAweDA0KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4Q0QsIDB4MDcsIDB4MUMsIDB4RTEsIDB4QkQsIDB4MEYsIDB4RjgsIDB4NjMpLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IGJyYWlucG9vbFAzODRyMV9UXzJfWFtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg5NCwgMHg5MiwgMHgyOCwgMHgyRSwgMHgzMiwgMHgwNCwgMHhCMSwgMHg0RCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDI1LCAweDgyLCAweDQ0LCAweDQzLCAweDc2LCAweDBELCAweDU1LCAweEJGKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NUIsIDB4RTMsIDB4RkYsIDB4ODksIDB4NDYsIDB4REUsIDB4NEUsIDB4RkUpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg1QiwgMHgyMiwgMHhCQiwgMHg2NywgMHgxQSwgMHg4MSwgMHhFRSwgMHgyNyksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEM4LCAweDU0LCAweEUyLCAweDdBLCAweEFFLCAweERBLCAweDJDLCAweEQwKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NzQsIDB4OUEsIDB4OTAsIDB4QUEsIDB4NkUsIDB4OEIsIDB4Q0MsIDB4NUYpLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IGJyYWlucG9vbFAzODRyMV9UXzJfWVtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgxNiwgMHg0MCwgMHhBQywgMHhFRCwgMHg3RCwgMHgzNywgMHg4NywgMHhBQyksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDk4LCAweEY4LCAweEIxLCAweDgwLCAweDRDLCAweDhDLCAweDA0LCAweDQyKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QzIsIDB4OTgsIDB4MkMsIDB4QUQsIDB4MzAsIDB4NjksIDB4MzUsIDB4QzApLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgzMiwgMHgyRSwgMHgwMCwgMHgyRiwgMHg0NCwgMHg4QywgMHhGMCwgMHhDMCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDE2LCAweDU4LCAweDA3LCAweEQ3LCAweENELCAweDYwLCAweEExLCAweDVCKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QUYsIDB4RkIsIDB4N0IsIDB4MDMsIDB4MDUsIDB4NUUsIDB4NzksIDB4NzMpLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IGJyYWlucG9vbFAzODRyMV9UXzNfWFtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhDOCwgMHgxNywgMHhDRSwgMHgzOCwgMHg0QiwgMHg1RSwgMHg1QiwgMHhDOCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDYwLCAweDBFLCAweDBBLCAweDYxLCAweDlELCAweDdDLCAweDYyLCAweDA4KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MjUsIDB4RjAsIDB4OTgsIDB4NzEsIDB4N0YsIDB4MTcsIDB4MjYsIDB4RDcpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg4MywgMHhEMywgMHhGQSwgMHgzQywgMHhGMCwgMHg3MCwgMHgwNywgMHg4MiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDI5LCAweDQ3LCAweDVDLCAweDA5LCAweDQzLCAweEI3LCAweDY1LCAweDE1KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MEUsIDB4QTksIDB4QTcsIDB4M0UsIDB4RkEsIDB4RjMsIDB4RUMsIDB4MjIpLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IGJyYWlucG9vbFAzODRyMV9UXzNfWVtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhEQSwgMHg3OCwgMHgyMiwgMHgyQiwgMHg1OCwgMHg3MSwgMHhGQSwgMHhBQSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDAwLCAweDMwLCAweENFLCAweDZBLCAweEIzLCAweEIwLCAweDRGLCAweDgzKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4Q0YsIDB4OTUsIDB4MjAsIDB4QTksIDB4MjMsIDB4QzIsIDB4NjUsIDB4RTcpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg1NSwgMHhDRiwgMHgwMywgMHg1QiwgMHg4QSwgMHg4MCwgMHg0NCwgMHhCQiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDVDLCAweEY4LCAweDkxLCAweEY3LCAweEQ1LCAweEVELCAweEVBLCAweDgxKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NDAsIDB4NUIsIDB4MTYsIDB4MTAsIDB4MjUsIDB4QUMsIDB4MkEsIDB4MTcpLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IGJyYWlucG9vbFAzODRyMV9UXzRfWFtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhGMiwgMHhFQywgMHhEQywgMHhDNCwgMHg3QiwgMHg4QywgMHg2QiwgMHhFOSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDJCLCAweEJCLCAweDFDLCAweEQzLCAweDVBLCAweEVFLCAweEQ5LCAweDk3KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NjQsIDB4NUQsIDB4MzAsIDB4NUUsIDB4RjcsIDB4QjIsIDB4NDEsIDB4OUQpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhFRCwgMHhDRSwgMHgwRiwgMHgxQSwgMHhDNiwgMHg0MSwgMHg2NCwgMHg2MiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEYyLCAweDE4LCAweEUxLCAweEUzLCAweDgyLCAweDE1LCAweDY2LCAweDRCKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4OUIsIDB4RTIsIDB4MjQsIDB4MDQsIDB4NzIsIDB4MzksIDB4QTAsIDB4N0MpLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IGJyYWlucG9vbFAzODRyMV9UXzRfWVtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgyQiwgMHg1MSwgMHhBMiwgMHg1OCwgMHg4OCwgMHg2MiwgMHhFMSwgMHgwMiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDU4LCAweEQyLCAweDY1LCAweDE0LCAweEU5LCAweDRDLCAweDgyLCAweDMwKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4REMsIDB4RTEsIDB4QUMsIDB4ODcsIDB4QUUsIDB4MzEsIDB4MUEsIDB4N0EpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg4NSwgMHg0RiwgMHg5NiwgMHgxRSwgMHg4NSwgMHg3QSwgMHhDMywgMHgyQiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEYwLCAweDg2LCAweEJCLCAweEYwLCAweEMwLCAweDlELCAweDA4LCAweDdCKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QkQsIDB4NTMsIDB4MDMsIDB4MDksIDB4ODAsIDB4OTEsIDB4RUYsIDB4NjgpLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IGJyYWlucG9vbFAzODRyMV9UXzVfWFtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgyRCwgMHhENywgMHhBRiwgMHg2RiwgMHg2OSwgMHg3QiwgMHg4OCwgMHhBMSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEFGLCAweDEzLCAweEU0LCAweDMwLCAweEEyLCAweDQ3LCAweEI1LCAweEMxKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MEYsIDB4RDIsIDB4QzAsIDB4REQsIDB4OEEsIDB4MUMsIDB4M0MsIDB4RjIpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhGOSwgMHg4QywgMHhCMywgMHg0QywgMHhCQSwgMHg4QiwgMHg2RCwgMHhDRiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDZCLCAweEM3LCAweEExLCAweEE4LCAweDZFLCAweDNDLCAweDRGLCAweEYxKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4OTQsIDB4NEEsIDB4OTcsIDB4QzgsIDB4MDMsIDB4NkYsIDB4MDEsIDB4ODIpLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IGJyYWlucG9vbFAzODRyMV9UXzVfWVtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg3NCwgMHgxOCwgMHgxMiwgMHhBOSwgMHgzOSwgMHhENSwgMHgyMiwgMHgyNiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDQ3LCAweEE3LCAweEMwLCAweEJELCAweDlELCAweDhELCAweDc4LCAweDM4KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QTksIDB4QjMsIDB4RDAsIDB4N0YsIDB4REYsIDB4RDAsIDB4MzAsIDB4REUpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgzNywgMHgyNSwgMHg3MywgMHg5NiwgMHhFQywgMHhBOCwgMHgxRCwgMHg3QyksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDkxLCAweEQxLCAweDY1LCAweDY2LCAweERDLCAweEQ5LCAweENGLCAweERGKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4OTUsIDB4RUQsIDB4N0IsIDB4MzcsIDB4QUQsIDB4RTIsIDB4QkUsIDB4MkQpLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IGJyYWlucG9vbFAzODRyMV9UXzZfWFtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg1MCwgMHg3OSwgMHg0MiwgMHg2QSwgMHgwNywgMHg2NiwgMHhCMSwgMHhCRCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDQ1LCAweDUzLCAweDYyLCAweDY1LCAweDkyLCAweDA5LCAweDRDLCAweEExKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MDYsIDB4QUYsIDB4QzMsIDB4MDMsIDB4RjYsIDB4RjQsIDB4MkQsIDB4OUIpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhFOCwgMHhDQSwgMHg0MSwgMHhEOSwgMHhBMiwgMHg2OSwgMHg5QiwgMHhDOSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDRCLCAweEIyLCAweEE2LCAweDhELCAweEUxLCAweEFBLCAweDYxLCAweDc2KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MTEsIDB4QkEsIDB4NEQsIDB4MTIsIDB4QjYsIDB4QkUsIDB4RjMsIDB4N0UpLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IGJyYWlucG9vbFAzODRyMV9UXzZfWVtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhDQSwgMHhEOSwgMHg5MiwgMHgyMiwgMHgwNywgMHhDRSwgMHhDOSwgMHgyNiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDYyLCAweEExLCAweDdDLCAweDkxLCAweERCLCAweDMyLCAweEY3LCAweEU1KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NkQsIDB4NDksIDB4NEIsIDB4NkQsIDB4RkIsIDB4RDksIDB4NzAsIDB4M0IpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgxQywgMHhGQiwgMHg0RSwgMHg0QywgMHg1RSwgMHg2NiwgMHg4MSwgMHgxRCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEE1LCAweEIzLCAweEUxLCAweDAwLCAweEI3LCAweEQ5LCAweENDLCAweDU4KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RjMsIDB4MzYsIDB4OEIsIDB4QzQsIDB4MzksIDB4MjAsIDB4RkQsIDB4MzApLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IGJyYWlucG9vbFAzODRyMV9UXzdfWFtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg5NCwgMHgxRiwgMHg2MCwgMHgwMywgMHhCQiwgMHhENywgMHg2MCwgMHg1NyksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDcyLCAweDNDLCAweDYyLCAweERELCAweDcxLCAweDk1LCAweEU5LCAweDYxKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QjAsIDB4NUIsIDB4N0EsIDB4NUYsIDB4NjgsIDB4ODEsIDB4QzUsIDB4OTApLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgxRSwgMHhBRiwgMHhCNSwgMHhCOSwgMHg5OCwgMHg0MiwgMHgyOCwgMHhBNSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDBDLCAweDI5LCAweDhFLCAweDExLCAweDQ5LCAweEI0LCAweEQ3LCAweDIwKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4OUIsIDB4M0UsIDB4RDIsIDB4MzAsIDB4QTEsIDB4QkEsIDB4Q0EsIDB4MDMpLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IGJyYWlucG9vbFAzODRyMV9UXzdfWVtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgyOSwgMHgzNywgMHg2NCwgMHg0NCwgMHgyRiwgMHgwMywgMHhFNSwgMHg0MSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDRBLCAweDQyLCAweEJDLCAweEZGLCAweEEyLCAweDFBLCAweDVGLCAweDA2KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MUQsIDB4MDQsIDB4QUIsIDB4MDQsIDB4RTAsIDB4MjQsIDB4QUQsIDB4MkEpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgzRCwgMHg0NSwgMHgxNywgMHg2NywgMHgxRiwgMHgzRSwgMHg1MywgMHhGOCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEVELCAweDBGLCAweEIzLCAweDFCLCAweDU3LCAweDU0LCAweEMyLCAweDAzKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NTksIDB4RDMsIDB4RjgsIDB4QzQsIDB4MUIsIDB4OUIsIDB4RkEsIDB4MzApLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IGJyYWlucG9vbFAzODRyMV9UXzhfWFtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgzNywgMHg5MCwgMHhGRCwgMHhGQiwgMHhDQSwgMHg0OSwgMHgzOCwgMHg0RSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEMzLCAweENGLCAweEM2LCAweERELCAweEYwLCAweEZGLCAweDhDLCAweDExKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RDcsIDB4NjksIDB4OUQsIDB4QkQsIDB4NUYsIDB4MzMsIDB4RTksIDB4QjQpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg0NywgMHgxOSwgMHg4MiwgMHgzRCwgMHhBQywgMHgxQywgMHg0MCwgMHgyMyksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDQwLCAweEM3LCAweDAyLCAweDQ2LCAweDE0LCAweDc3LCAweDAwLCAweEJFKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QzksIDB4MDUsIDB4RjIsIDB4NzcsIDB4M0EsIDB4NjYsIDB4NUMsIDB4MzkpLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IGJyYWlucG9vbFAzODRyMV9UXzhfWVtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgxRSwgMHhFNiwgMHgxNywgMHhERSwgMHhCMiwgMHhBMSwgMHhFNSwgMHhCOCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEM3LCAweDcxLCAweEVDLCAweDlELCAweEQ4LCAweEY1LCAweEQ0LCAweDY2KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QUEsIDB4QzYsIDB4NDIsIDB4NUUsIDB4RTcsIDB4MTgsIDB4QkEsIDB4RDApLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhDNSwgMHgyMSwgMHg2OCwgMHg1QSwgMHgyNiwgMHhGQiwgMHhENywgMHgxNyksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDI2LCAweDAwLCAweDVDLCAweEJBLCAweDhBLCAweDM0LCAweEVDLCAweDc1KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QzMsIDB4OUMsIDB4M0MsIDB4QUYsIDB4NTMsIDB4RTgsIDB4NjUsIDB4MzUpLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IGJyYWlucG9vbFAzODRyMV9UXzlfWFtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhCRSwgMHhFRiwgMHgyOCwgMHhEQywgMHg2NywgMHgwNSwgMHhDOCwgMHhERiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDBCLCAweDc4LCAweEMzLCAweDg1LCAweDQ5LCAweEEwLCAweEJDLCAweDBGKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MTAsIDB4M0UsIDB4MkQsIDB4QTAsIDB4Q0YsIDB4RDQsIDB4N0EsIDB4RjUpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgzNiwgMHg5MywgMHhGRSwgMHg2MCwgMHhCMywgMHg2RSwgMHg5OSwgMHhFMiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDYyLCAweEFELCAweDA0LCAweEU3LCAweDQ5LCAweEFGLCAweDVFLCAweEUzKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NTQsIDB4N0EsIDB4RUQsIDB4QTYsIDB4OUUsIDB4MTgsIDB4MDksIDB4MzEpLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IGJyYWlucG9vbFAzODRyMV9UXzlfWVtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhFOCwgMHgwNSwgMHg5NCwgMHg0NCwgMHhEQywgMHhCOCwgMHg4NSwgMHg5NCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDE0LCAweEI3LCAweDM3LCAweEMyLCAweDUwLCAweDc1LCAweDE1LCAweERBKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RDYsIDB4QzYsIDB4MEYsIDB4QjIsIDB4QTksIDB4OTEsIDB4M0UsIDB4RTgpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhCOSwgMHg4MSwgMHhBRCwgMHgyNSwgMHhBMSwgMHgyNiwgMHg3MywgMHgxNSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEZELCAweEYxLCAweEQxLCAweDYxLCAweDdDLCAweDc2LCAweDhGLCAweDEzKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MDYsIDB4REIsIDB4NEEsIDB4RkYsIDB4MTQsIDB4QTcsIDB4NDgsIDB4MEIpLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IGJyYWlucG9vbFAzODRyMV9UXzEwX1hbXSA9IHsKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MkEsIDB4NzMsIDB4QzYsIDB4QzIsIDB4Q0MsIDB4RjEsIDB4NTcsIDB4MDQpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhCNiwgMHhFRCwgMHg3MywgMHgyNywgMHg3MCwgMHg4MiwgMHhCNiwgMHg1RSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDBCLCAweEJBLCAweEFDLCAweDNBLCAweENGLCAweEY0LCAweEVBLCAweEE2KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4OTksIDB4RDYsIDB4QjEsIDB4OEYsIDB4MEUsIDB4MDgsIDB4MkMsIDB4NUUpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgxNywgMHhFMywgMHg4RiwgMHgyRiwgMHgwRSwgMHhBMSwgMHhGMywgMHgwNyksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDFBLCAweEY1LCAweDdDLCAweDlCLCAweDI5LCAweDBBLCAweEY2LCAweDI4KSwKLX07Ci1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBicmFpbnBvb2xQMzg0cjFfVF8xMF9ZW10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEJELCAweEVFLCAweDE3LCAweDQ3LCAweDM0LCAweDE1LCAweEEzLCAweEFGKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RkIsIDB4QkUsIDB4ODgsIDB4NDgsIDB4RTcsIDB4QTIsIDB4QkIsIDB4REUpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhDNSwgMHhBRCwgMHhEQywgMHg2NSwgMHg2MSwgMHgzNywgMHgwRiwgMHhDMSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEZBLCAweDY3LCAweEFELCAweEEyLCAweDNBLCAweDFDLCAweDkxLCAweDc4KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NTUsIDB4MDcsIDB4MEMsIDB4M0EsIDB4NDEsIDB4NkUsIDB4MTMsIDB4MjgpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg3MywgMHhCRCwgMHg3RSwgMHhFRCwgMHhBQSwgMHgxNCwgMHhERCwgMHg2MSksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgYnJhaW5wb29sUDM4NHIxX1RfMTFfWFtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhDMywgMHhEQywgMHgyMCwgMHgwMSwgMHg3MiwgMHgxMSwgMHg0OCwgMHg1NSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDFFLCAweEM0LCAweDdCLCAweEY4LCAweDYyLCAweDNELCAweEYwLCAweDlGKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RTgsIDB4QzIsIDB4M0QsIDB4MkUsIDB4NTIsIDB4QTMsIDB4NEEsIDB4ODkpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhDRSwgMHhFMiwgMHg1MywgMHg0NiwgMHg1RSwgMHgyMSwgMHhGOCwgMHhDRSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEMyLCAweEM3LCAweDhGLCAweEE5LCAweDI2LCAweDQyLCAweDMyLCAweDNBKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RkIsIDB4QTYsIDB4QTAsIDB4OEQsIDB4NEIsIDB4OUEsIDB4MTksIDB4MDMpLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IGJyYWlucG9vbFAzODRyMV9UXzExX1lbXSA9IHsKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RUEsIDB4QUIsIDB4NkQsIDB4MUUsIDB4RkIsIDB4RUUsIDB4NjAsIDB4MEMpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhCNiwgMHg1NiwgMHgzQywgMHhDNSwgMHg1RCwgMHgxMCwgMHg3OSwgMHgxQyksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDI1LCAweEJDLCAweDQxLCAweDlGLCAweDcxLCAweEVGLCAweDAyLCAweEY5KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QTIsIDB4MzYsIDB4QzQsIDB4RDAsIDB4ODgsIDB4OUIsIDB4MzIsIDB4RkMpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg5QywgMHhENCwgMHg1RCwgMHgxNywgMHgzOSwgMHhFNiwgMHgyMiwgMHgyQyksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDdCLCAweDI2LCAweDAxLCAweENFLCAweEJFLCAweDRBLCAweDlDLCAweDI3KSwKLX07Ci1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBicmFpbnBvb2xQMzg0cjFfVF8xMl9YW10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEVGLCAweDZELCAweDExLCAweENBLCAweDZDLCAweDVBLCAweDkzLCAweDBDKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RUIsIDB4OTYsIDB4MjYsIDB4QUYsIDB4MkYsIDB4RTQsIDB4MzAsIDB4OTgpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgzNSwgMHhDMSwgMHg0QywgMHhDNiwgMHgzMCwgMHgxRiwgMHg1QywgMHgwNCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDU5LCAweEIzLCAweEU4LCAweEZDLCAweDM1LCAweEVCLCAweDYzLCAweDZDKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4OUMsIDB4MUQsIDB4Q0EsIDB4RkMsIDB4NTAsIDB4MzYsIDB4NEIsIDB4OTYpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhFNCwgMHgwRSwgMHgyMywgMHg1QiwgMHhBRiwgMHhFQiwgMHgyRCwgMHgzMSksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgYnJhaW5wb29sUDM4NHIxX1RfMTJfWVtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhDNiwgMHg4OCwgMHhCNiwgMHhENywgMHg3NCwgMHg0QSwgMHgyMywgMHhCNiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEVGLCAweDY2LCAweEUyLCAweEJCLCAweDI5LCAweEE2LCAweDRGLCAweDU1KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RTksIDB4NkYsIDB4N0UsIDB4NjgsIDB4NkUsIDB4QTAsIDB4MTQsIDB4OTQpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgzQiwgMHg3MywgMHhENCwgMHhFOCwgMHhBQiwgMHg1QiwgMHhGNiwgMHgwRCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDQ2LCAweEUwLCAweDNDLCAweDI0LCAweDAwLCAweDk1LCAweEU5LCAweEFEKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MzcsIDB4MEQsIDB4NEYsIDB4ODEsIDB4RDAsIDB4RjIsIDB4M0YsIDB4MDApLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IGJyYWlucG9vbFAzODRyMV9UXzEzX1hbXSA9IHsKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4OTksIDB4MUQsIDB4Q0QsIDB4NzgsIDB4MzksIDB4QzQsIDB4NkIsIDB4RDkpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg4MSwgMHg0NSwgMHhDNywgMHhCOCwgMHgyRiwgMHhBQSwgMHg1RCwgMHhFMyksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDMzLCAweDhDLCAweDZFLCAweEEzLCAweDI0LCAweEIyLCAweERCLCAweDRCKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NjksIDB4MkQsIDB4RDksIDB4RjEsIDB4QzcsIDB4OUIsIDB4OEEsIDB4QUYpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg2NywgMHhFMSwgMHgyQywgMHhCOSwgMHg0MCwgMHgzNywgMHg5MSwgMHg3NSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDgxLCAweDJDLCAweEI1LCAweDIzLCAweDAzLCAweDJCLCAweEFGLCAweDJGKSwKLX07Ci1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBicmFpbnBvb2xQMzg0cjFfVF8xM19ZW10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDJGLCAweDlELCAweDVBLCAweDIwLCAweDEwLCAweEE5LCAweDg0LCAweERBKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NjEsIDB4MzAsIDB4ODksIDB4MjAsIDB4MTMsIDB4RTksIDB4QjIsIDB4Q0EpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhCNiwgMHg2RSwgMHg1MiwgMHhFQiwgMHgwMywgMHgxOCwgMHgxRiwgMHhBNiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDZDLCAweDlFLCAweDFDLCAweDM1LCAweDg3LCAweDkyLCAweDY5LCAweEM3KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QTEsIDB4QzksIDB4ODgsIDB4QUYsIDB4QzYsIDB4NkMsIDB4ODMsIDB4NzIpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhDQiwgMHhENSwgMHg3QSwgMHg1NCwgMHgzNCwgMHg5OSwgMHhCNiwgMHg2RiksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgYnJhaW5wb29sUDM4NHIxX1RfMTRfWFtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhERiwgMHhBRCwgMHg0NSwgMHg5QiwgMHg0QiwgMHg0MSwgMHg0RCwgMHg1MCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDFCLCAweDVELCAweEFCLCAweDdGLCAweDM1LCAweDM0LCAweEU5LCAweDI5KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NzMsIDB4QkUsIDB4NzgsIDB4MzQsIDB4NDQsIDB4RjMsIDB4NEEsIDB4ODcpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhGQiwgMHhERSwgMHhFMywgMHhDNCwgMHhFRSwgMHgwQiwgMHhGOSwgMHhFQiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDVFLCAweDg2LCAweDE2LCAweDQ4LCAweDMyLCAweEI4LCAweDc0LCAweDQxKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RjIsIDB4RUUsIDB4N0MsIDB4QkEsIDB4QkQsIDB4ODEsIDB4RTMsIDB4NTUpLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IGJyYWlucG9vbFAzODRyMV9UXzE0X1lbXSA9IHsKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RjgsIDB4NkEsIDB4RkEsIDB4ODQsIDB4REEsIDB4QjgsIDB4RDUsIDB4MTQpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhCMiwgMHg5RiwgMHg4QSwgMHhENSwgMHgxQiwgMHgyRSwgMHgxQSwgMHgwQiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDVGLCAweDBDLCAweDYxLCAweEUyLCAweEZGLCAweDVCLCAweEU2LCAweEQ1KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MEUsIDB4NjIsIDB4QzEsIDB4ODcsIDB4NTMsIDB4MUIsIDB4OTIsIDB4QTMpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg1NCwgMHg5MCwgMHgwMCwgMHhEMSwgMHg2QSwgMHgwQywgMHgwRSwgMHgyOCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDhCLCAweDJFLCAweEI1LCAweDNCLCAweDQ0LCAweEI1LCAweEEwLCAweDc4KSwKLX07Ci1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBicmFpbnBvb2xQMzg0cjFfVF8xNV9YW10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEI4LCAweDVELCAweDAyLCAweDU4LCAweEI1LCAweEJFLCAweDQ1LCAweDE0KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QUQsIDB4RUYsIDB4OEUsIDB4OTAsIDB4NEQsIDB4MkEsIDB4MzIsIDB4QUMpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg0OCwgMHg5OSwgMHg3NSwgMHg1QywgMHgwQSwgMHgzMywgMHg4RiwgMHgzNiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEM4LCAweDZDLCAweDk1LCAweEQ0LCAweDFGLCAweEYzLCAweEVCLCAweERBKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QzIsIDB4RTQsIDB4NEMsIDB4OTEsIDB4MjAsIDB4RjMsIDB4MjUsIDB4RUIpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhGMSwgMHg5NSwgMHhFQiwgMHgyOSwgMHg2RiwgMHgyMCwgMHgzNCwgMHg4MSksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgYnJhaW5wb29sUDM4NHIxX1RfMTVfWVtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgyRCwgMHgxNSwgMHhFNSwgMHgxMywgMHg3RSwgMHg2NCwgMHg4QiwgMHhBRCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEE3LCAweEJDLCAweDBELCAweDE4LCAweDdFLCAweDM3LCAweDlFLCAweEZBKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RTgsIDB4ODIsIDB4MjAsIDB4RjcsIDB4MkQsIDB4N0EsIDB4NzcsIDB4NTIpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhDQiwgMHgyOSwgMHhBMiwgMHhEQiwgMHg3QSwgMHhFNiwgMHg2RiwgMHhBNSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEEwLCAweEM2LCAweDUwLCAweDVDLCAweEJDLCAweEU2LCAweDRGLCAweEJEKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MUUsIDB4OUYsIDB4RDUsIDB4RTgsIDB4QzUsIDB4M0QsIDB4QjcsIDB4MzApLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IGJyYWlucG9vbFAzODRyMV9UXzE2X1hbXSA9IHsKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NDUsIDB4MDMsIDB4NTUsIDB4MTAsIDB4REIsIDB4QTYsIDB4OEIsIDB4MjIpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg0RSwgMHgxNywgMHhBRSwgMHg3OCwgMHhDOSwgMHgxRCwgMHg0MywgMHhDQSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDRFLCAweDM1LCAweDQ5LCAweEQ0LCAweDQ3LCAweDg0LCAweDhELCAweDIwKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RjMsIDB4OTUsIDB4MkYsIDB4RUEsIDB4QkMsIDB4QjQsIDB4MTgsIDB4QjMpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhENCwgMHg0OCwgMHhBRSwgMHg4OSwgMHhGNSwgMHg2NSwgMHgzRCwgMHg4OSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDg2LCAweEYyLCAweDJCLCAweDIwLCAweEQxLCAweDc1LCAweDUwLCAweDYzKSwKLX07Ci1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBicmFpbnBvb2xQMzg0cjFfVF8xNl9ZW10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEFELCAweEU2LCAweDVDLCAweDJDLCAweEUwLCAweDdELCAweERGLCAweDJEKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4M0UsIDB4MDcsIDB4M0UsIDB4Q0UsIDB4OUYsIDB4MTgsIDB4QjYsIDB4MDUpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg5QSwgMHhGOCwgMHhGMCwgMHhENSwgMHhGQSwgMHg0MiwgMHgxRCwgMHg2RCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDQxLCAweDZDLCAweDFELCAweDAzLCAweEM5LCAweDBFLCAweDJCLCAweDJGKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NDMsIDB4MTgsIDB4NTIsIDB4QTUsIDB4QjQsIDB4NjMsIDB4RTEsIDB4MDYpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhCNywgMHgwQSwgMHhEOSwgMHhDNCwgMHhGRCwgMHgxNiwgMHg2MCwgMHg1NCksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgYnJhaW5wb29sUDM4NHIxX1RfMTdfWFtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg0MywgMHg3RCwgMHhERSwgMHhERiwgMHg0QiwgMHg0QSwgMHhCMCwgMHhDQiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEIwLCAweDRFLCAweDhDLCAweDk0LCAweEMxLCAweEUyLCAweDg1LCAweERGKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NEYsIDB4RjAsIDB4RUEsIDB4QjUsIDB4OUIsIDB4NzAsIDB4RUYsIDB4MTApLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg1NiwgMHhDMiwgMHgzOSwgMHg1RCwgMHhGMywgMHgyQywgMHhEOSwgMHgyQyksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDBELCAweDFDLCAweDJFLCAweENDLCAweDJGLCAweDU0LCAweDg3LCAweDgwKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QjAsIDB4NzIsIDB4QzcsIDB4QjUsIDB4NTAsIDB4QTMsIDB4ODQsIDB4NzcpLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IGJyYWlucG9vbFAzODRyMV9UXzE3X1lbXSA9IHsKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QjcsIDB4RDEsIDB4QUYsIDB4QTksIDB4QjQsIDB4OEIsIDB4NUQsIDB4RkEpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhDOCwgMHhGNiwgMHg1MiwgMHg4QSwgMHhDMywgMHg1NiwgMHhBNSwgMHg1RSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDNCLCAweDUyLCAweEZGLCAweEVBLCAweDA1LCAweDQyLCAweDc3LCAweDgzKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MjksIDB4MDgsIDB4OTAsIDB4NzIsIDB4ODYsIDB4QzQsIDB4QzMsIDB4QjgpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg0RCwgMHgxNSwgMHhGOCwgMHhGMSwgMHgxNiwgMHg2NywgMHhDNiwgMHhENSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDc1LCAweDg3LCAweEFDLCAweDhGLCAweDcxLCAweEVDLCAweDgzLCAweDgxKSwKLX07Ci1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBicmFpbnBvb2xQMzg0cjFfVF8xOF9YW10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDkxLCAweEUxLCAweEU2LCAweDJELCAweDBFLCAweDExLCAweEExLCAweDYyKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NzQsIDB4RTIsIDB4QTgsIDB4MzIsIDB4RTYsIDB4RTMsIDB4ODMsIDB4RDEpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg1MCwgMHg1NiwgMHhFNSwgMHhDRCwgMHhCNywgMHgyQiwgMHg2NywgMHg2RiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEU1LCAweEVELCAweEM5LCAweDY1LCAweDZELCAweDg3LCAweEUxLCAweDhFKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NTAsIDB4OEUsIDB4RkQsIDB4OUEsIDB4NTMsIDB4MEUsIDB4RkEsIDB4QTMpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg0OSwgMHg0QywgMHg0QSwgMHhFMiwgMHgyMywgMHg4NCwgMHhGQSwgMHgwMSksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgYnJhaW5wb29sUDM4NHIxX1RfMThfWVtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhCNCwgMHhGRSwgMHg0OSwgMHg4MSwgMHhEMSwgMHgzRSwgMHhGNCwgMHg3QyksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDQ1LCAweDcyLCAweEUwLCAweEVGLCAweDBELCAweEI4LCAweDNFLCAweDZGKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4M0MsIDB4MDAsIDB4MEYsIDB4NUYsIDB4Q0UsIDB4NjAsIDB4NzIsIDB4MkMpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhCNywgMHhDQywgMHhEOCwgMHgwMywgMHgwNywgMHg2RSwgMHg1QSwgMHhDRCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDI3LCAweDNBLCAweDM1LCAweDUwLCAweDRFLCAweDFGLCAweENBLCAweDVGKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NTgsIDB4RUEsIDB4ODgsIDB4NTUsIDB4QkQsIDB4NkUsIDB4MDUsIDB4N0YpLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IGJyYWlucG9vbFAzODRyMV9UXzE5X1hbXSA9IHsKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QjEsIDB4NkQsIDB4RjEsIDB4OTcsIDB4QTYsIDB4NjksIDB4MzksIDB4MjQpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgwQiwgMHg0MSwgMHg5OSwgMHhGRiwgMHgzQiwgMHhBMSwgMHgyNiwgMHhFQyksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDk1LCAweDJGLCAweDk1LCAweDgwLCAweDEyLCAweDRBLCAweDFCLCAweENCKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RUEsIDB4QkYsIDB4NTEsIDB4QUEsIDB4QUUsIDB4MkQsIDB4REEsIDB4Q0YpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgwQywgMHgxQywgMHhCMywgMHg1MiwgMHgzNiwgMHg0OSwgMHhENCwgMHg4NiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDk5LCAweEMxLCAweDFGLCAweDNBLCAweEQzLCAweDNFLCAweDVDLCAweDFBKSwKLX07Ci1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBicmFpbnBvb2xQMzg0cjFfVF8xOV9ZW10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDczLCAweDUxLCAweEY3LCAweDJCLCAweEM4LCAweEE5LCAweEE3LCAweDE1KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MTIsIDB4NEUsIDB4N0YsIDB4OTgsIDB4NDEsIDB4NjYsIDB4QjAsIDB4MDMpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg5MSwgMHgxRCwgMHhDMCwgMHg0MiwgMHhDRCwgMHhGOCwgMHhDMywgMHgyQiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweENDLCAweDQxLCAweDkxLCAweDdELCAweENDLCAweDhCLCAweENDLCAweDQxKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MkEsIDB4QUUsIDB4NzYsIDB4RUQsIDB4NTYsIDB4MTgsIDB4QzUsIDB4QUIpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhBQiwgMHg2QSwgMHgwNiwgMHhBMywgMHg3RiwgMHg2NSwgMHgxMCwgMHgxRiksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgYnJhaW5wb29sUDM4NHIxX1RfMjBfWFtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgwQywgMHhFQywgMHgzQywgMHgwNSwgMHgwNSwgMHhDQSwgMHhGNiwgMHhFRCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDQ4LCAweENELCAweDAyLCAweDUxLCAweDEyLCAweDE2LCAweDNDLCAweDYzKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QTgsIDB4RUIsIDB4QjMsIDB4NDMsIDB4N0IsIDB4REQsIDB4QjIsIDB4N0MpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgwMCwgMHg1OSwgMHg5MCwgMHg0MSwgMHhEQiwgMHhFNCwgMHhGNSwgMHg5MSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEQwLCAweDBFLCAweDE4LCAweDJBLCAweDVBLCAweDgzLCAweDdDLCAweDJGKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RTEsIDB4MzcsIDB4QTEsIDB4MEQsIDB4RjEsIDB4MkYsIDB4NjMsIDB4NzkpLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IGJyYWlucG9vbFAzODRyMV9UXzIwX1lbXSA9IHsKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MjEsIDB4QzAsIDB4RkEsIDB4NkYsIDB4MUYsIDB4NjcsIDB4Q0YsIDB4RUMpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg5OCwgMHgzNCwgMHg0NSwgMHhCQiwgMHhGNCwgMHhGOSwgMHg5QiwgMHg4OSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEY1LCAweDY5LCAweEZFLCAweDY3LCAweDFELCAweDY0LCAweDhGLCAweEI5KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4REIsIDB4MzksIDB4QkYsIDB4RDgsIDB4QjMsIDB4QzcsIDB4QUQsIDB4OEEpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg4QywgMHg5MywgMHhGRiwgMHhGMywgMHgyOCwgMHhGQSwgMHgzOSwgMHhGNiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEZBLCAweEY5LCAweEMzLCAweDg1LCAweDI2LCAweDdBLCAweDg4LCAweDg5KSwKLX07Ci1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBicmFpbnBvb2xQMzg0cjFfVF8yMV9YW10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDRELCAweEQ1LCAweDc5LCAweEQ4LCAweDExLCAweERFLCAweEVCLCAweDRFKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MUMsIDB4NDYsIDB4QTQsIDB4NkEsIDB4REEsIDB4NzQsIDB4MzQsIDB4QTgpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgxRSwgMHhCRCwgMHhEMywgMHhGNSwgMHgxNCwgMHhFRSwgMHhGRSwgMHhBRSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDE5LCAweDRDLCAweEEzLCAweDcxLCAweDQzLCAweDY1LCAweEY4LCAweDk0KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NzIsIDB4NkMsIDB4MzUsIDB4RkEsIDB4OTAsIDB4MjUsIDB4RDgsIDB4RTIpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhCQiwgMHgzNCwgMHg4NCwgMHg5NiwgMHhBMSwgMHg0MywgMHgwMywgMHg0RCksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgYnJhaW5wb29sUDM4NHIxX1RfMjFfWVtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhGMSwgMHgzQiwgMHgzQiwgMHgyRiwgMHhDQSwgMHg1OSwgMHhGMiwgMHg0MiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweENELCAweDQ4LCAweDI0LCAweDc0LCAweEQ4LCAweDcyLCAweDkwLCAweEEzKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4ODMsIDB4NDIsIDB4NzQsIDB4OEMsIDB4NkYsIDB4NTIsIDB4MTksIDB4M0QpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg0MCwgMHg5RSwgMHg0MSwgMHg2MywgMHg2OCwgMHg3OCwgMHg0QywgMHgyRiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDUzLCAweDk0LCAweEI2LCAweDZCLCAweDM4LCAweDUyLCAweEE4LCAweDlGKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4ODEsIDB4MzAsIDB4MjUsIDB4OTMsIDB4QTEsIDB4NkYsIDB4NkUsIDB4NjgpLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IGJyYWlucG9vbFAzODRyMV9UXzIyX1hbXSA9IHsKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RkMsIDB4MkYsIDB4NEIsIDB4NjQsIDB4NzksIDB4NTAsIDB4RkYsIDB4MDEpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhENCwgMHgzNiwgMHhFRCwgMHg1NywgMHgzOSwgMHgzQiwgMHhFNywgMHhGMyksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEYxLCAweDg1LCAweEVBLCAweDM1LCAweEQ2LCAweEMwLCAweEEwLCAweDUyKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QkEsIDB4ODksIDB4M0EsIDB4Q0MsIDB4MjIsIDB4MUMsIDB4NDYsIDB4MDIpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg2QywgMHg3QSwgMHhCMCwgMHhBMSwgMHgxQiwgMHg2OSwgMHg2MiwgMHg1NSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDU3LCAweEI4LCAweDhBLCAweDZDLCAweDE4LCAweDg1LCAweDBELCAweDg4KSwKLX07Ci1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBicmFpbnBvb2xQMzg0cjFfVF8yMl9ZW10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEZELCAweEI2LCAweDUwLCAweEU5LCAweDRFLCAweDdGLCAweEU4LCAweDA3KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4OTIsIDB4NUIsIDB4NUMsIDB4RDEsIDB4NEIsIDB4MTEsIDB4OUEsIDB4RDgpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg5NiwgMHgyNSwgMHg1NiwgMHg3NCwgMHg1MSwgMHg5QywgMHhFQywgMHg5QyksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDU1LCAweDdGLCAweEI2LCAweDhBLCAweENCLCAweDNBLCAweDEwLCAweDZBKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NjAsIDB4MzMsIDB4MDcsIDB4MDEsIDB4RTksIDB4NDksIDB4NTksIDB4RTYpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhDNiwgMHhBNSwgMHgyRSwgMHhGMiwgMHhCQSwgMHgzMiwgMHg2MywgMHg0NCksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgYnJhaW5wb29sUDM4NHIxX1RfMjNfWFtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhGOCwgMHgwNiwgMHgwQiwgMHhBNSwgMHg0NCwgMHgyNywgMHg3RiwgMHgyMiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDMwLCAweDc0LCAweEFDLCAweDBGLCAweENDLCAweDRGLCAweDEzLCAweDYxKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RkQsIDB4QjEsIDB4QkYsIDB4OTcsIDB4NDksIDB4QTUsIDB4MUMsIDB4MUQpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg4QSwgMHg2NCwgMHg2OCwgMHg3QiwgMHgwRiwgMHhDQywgMHg3NywgMHhGOCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEJCLCAweDM5LCAweEY5LCAweDRFLCAweDg0LCAweDlDLCAweEY2LCAweDk2KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QkMsIDB4Q0YsIDB4NkQsIDB4RTIsIDB4QTEsIDB4MkQsIDB4RjksIDB4MkIpLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IGJyYWlucG9vbFAzODRyMV9UXzIzX1lbXSA9IHsKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4OTUsIDB4QzQsIDB4OTAsIDB4NTcsIDB4MzEsIDB4MDEsIDB4MDUsIDB4NUUpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhDQywgMHgxRSwgMHhCQiwgMHhCRiwgMHg5OCwgMHhBNCwgMHg3QywgMHhFMyksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDg5LCAweEUzLCAweEEwLCAweEIyLCAweENELCAweDM5LCAweDlBLCAweDNGKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4OTIsIDB4MzQsIDB4NjAsIDB4N0EsIDB4ODksIDB4OTgsIDB4QjUsIDB4NTIpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg4RCwgMHgyMCwgMHgzRCwgMHgzQSwgMHgwNCwgMHg4RiwgMHg1QSwgMHhBQyksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEEzLCAweDI2LCAweEI2LCAweDQ5LCAweDA5LCAweDlDLCAweDBGLCAweDU5KSwKLX07Ci1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBicmFpbnBvb2xQMzg0cjFfVF8yNF9YW10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDcyLCAweDY2LCAweEQyLCAweDM4LCAweDJBLCAweDYyLCAweDgxLCAweENBKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QzUsIDB4QzgsIDB4MjAsIDB4NUUsIDB4MjgsIDB4QTMsIDB4ODEsIDB4QTcpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgyMCwgMHgzMSwgMHhBNCwgMHhGMSwgMHhFQSwgMHg3RCwgMHg4NywgMHg0NSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDhGLCAweDJDLCAweDk5LCAweDA5LCAweDZGLCAweDYzLCAweEVCLCAweDJGKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NzMsIDB4NzYsIDB4REEsIDB4MUEsIDB4MDYsIDB4QkUsIDB4REUsIDB4QTIpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgyOSwgMHgwOSwgMHgyRSwgMHg3NSwgMHgzOSwgMHgzMCwgMHgyRCwgMHg0MiksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgYnJhaW5wb29sUDM4NHIxX1RfMjRfWVtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg0MSwgMHg5QiwgMHhDMSwgMHg1QSwgMHgxNywgMHhDMywgMHg4QywgMHgzMSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDU4LCAweDhELCAweDk0LCAweDRELCAweDNELCAweEFCLCAweDYwLCAweEQ0KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RkYsIDB4RkQsIDB4MUUsIDB4MEYsIDB4NDMsIDB4QUUsIDB4OUQsIDB4NjIpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg4RSwgMHhGMiwgMHhGMywgMHgyMCwgMHgxQiwgMHhBQSwgMHhCNywgMHg0MSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDlELCAweDVCLCAweEE0LCAweEY0LCAweDkwLCAweDNCLCAweEUzLCAweDcxKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RjcsIDB4NzgsIDB4NzIsIDB4QkQsIDB4NjUsIDB4MDksIDB4MEIsIDB4MDEpLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IGJyYWlucG9vbFAzODRyMV9UXzI1X1hbXSA9IHsKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4Q0EsIDB4MzcsIDB4MkEsIDB4NkMsIDB4MTYsIDB4NEYsIDB4NjQsIDB4NTkpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg1QSwgMHhDRSwgMHhBMywgMHg5MCwgMHhCNCwgMHg5QSwgMHhCQywgMHhGNyksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDI3LCAweDM4LCAweDU1LCAweDYzLCAweDFELCAweDNBLCAweDZFLCAweDE4KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MzcsIDB4QjQsIDB4QUEsIDB4OTksIDB4MjIsIDB4NDUsIDB4ODksIDB4MkMpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhCNywgMHg3QywgMHg4QywgMHhBNiwgMHgzRCwgMHhBNywgMHgzRSwgMHhFOCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDcwLCAweDA2LCAweDQyLCAweERDLCAweEE2LCAweEUzLCAweEM2LCAweDEyKSwKLX07Ci1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBicmFpbnBvb2xQMzg0cjFfVF8yNV9ZW10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDU1LCAweDhDLCAweDNELCAweDVELCAweDQ3LCAweDMxLCAweDdDLCAweEVCKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NDYsIDB4ODUsIDB4RUUsIDB4NDYsIDB4N0UsIDB4MTMsIDB4MDQsIDB4NDEpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg5RSwgMHgzQywgMHg4QiwgMHg0MywgMHgyRSwgMHg3NCwgMHhGNSwgMHhGNiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEJBLCAweDg4LCAweDhFLCAweDA3LCAweDI5LCAweDA4LCAweDAzLCAweDI2KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RUEsIDB4OUIsIDB4ODksIDB4RUIsIDB4MDgsIDB4RTgsIDB4NDMsIDB4QjUpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgxNywgMHgwNywgMHg2NywgMHhGRCwgMHhEOSwgMHg3MywgMHg2RiwgMHgxOCksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgYnJhaW5wb29sUDM4NHIxX1RfMjZfWFtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgyOSwgMHhFQiwgMHgyMSwgMHg4RCwgMHg5OCwgMHg0MywgMHg3NCwgMHg5OCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDg4LCAweENDLCAweDE0LCAweEQ4LCAweDA4LCAweEJCLCAweEE2LCAweEUzKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QzQsIDB4OTgsIDB4RjIsIDB4NkEsIDB4MTgsIDB4QzMsIDB4REQsIDB4OUUpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhDNywgMHgzOCwgMHg5MSwgMHhBMCwgMHgwMywgMHhGMiwgMHgwNCwgMHg2MiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDdBLCAweEFGLCAweEU4LCAweEZELCAweEZCLCAweDEzLCAweDcwLCAweDc0KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RDAsIDB4OTMsIDB4ODcsIDB4OTgsIDB4NEEsIDB4RTAsIDB4MDAsIDB4MTIpLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IGJyYWlucG9vbFAzODRyMV9UXzI2X1lbXSA9IHsKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4OTcsIDB4MkUsIDB4NjksIDB4OUMsIDB4QTIsIDB4MkQsIDB4MDMsIDB4M0YpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg3OSwgMHhGRSwgMHhGMywgMHhCOSwgMHhDMSwgMHg4NSwgMHgyQSwgMHhFRSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweENFLCAweEZELCAweDg2LCAweEIxLCAweENELCAweEJGLCAweDQxLCAweEI3KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QTAsIDB4RDgsIDB4OUEsIDB4MjEsIDB4RjMsIDB4RkUsIDB4Q0IsIDB4RjEpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg5NSwgMHg3OCwgMHgwNCwgMHg2MCwgMHhCNywgMHhBOSwgMHhBMiwgMHg4NCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEU4LCAweDFFLCAweDY2LCAweDJBLCAweDU0LCAweDUxLCAweEJELCAweDhCKSwKLX07Ci1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBicmFpbnBvb2xQMzg0cjFfVF8yN19YW10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDhFLCAweDE2LCAweDM2LCAweEVGLCAweDYxLCAweDJELCAweEVFLCAweDNCKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NDUsIDB4NUYsIDB4ODgsIDB4QTAsIDB4MTMsIDB4MTIsIDB4RjcsIDB4MjMpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhBOSwgMHhDNiwgMHhBRCwgMHg0QSwgMHg0QSwgMHgwNywgMHgwMSwgMHg1QiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEI4LCAweDc0LCAweEIxLCAweDRGLCAweEVCLCAweEJELCAweEQ1LCAweDZCKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NTcsIDB4RjksIDB4NzEsIDB4QTIsIDB4MDYsIDB4NEYsIDB4RDcsIDB4QkMpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhGRiwgMHg4QiwgMHg0RCwgMHg0OCwgMHhFMCwgMHg5OCwgMHhGQiwgMHg2QSksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgYnJhaW5wb29sUDM4NHIxX1RfMjdfWVtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhDNCwgMHhCQSwgMHgxMCwgMHhBMywgMHgwRCwgMHg1MiwgMHhBQywgMHgzQSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDExLCAweEQwLCAweEUwLCAweDM2LCAweEU2LCAweDA3LCAweDNBLCAweDMwKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4N0UsIDB4ODAsIDB4RjAsIDB4QUEsIDB4NDksIDB4MjIsIDB4NEIsIDB4REQpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhGRiwgMHhDNywgMHhBQiwgMHgxQywgMHg4OSwgMHhDRCwgMHgyNCwgMHg0MCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDgyLCAweDJBLCAweEZDLCAweEIzLCAweDZELCAweDQ1LCAweDk2LCAweDQ5KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NjMsIDB4RTQsIDB4REIsIDB4NTIsIDB4M0YsIDB4QzQsIDB4QjQsIDB4MTkpLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IGJyYWlucG9vbFAzODRyMV9UXzI4X1hbXSA9IHsKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NUIsIDB4Q0MsIDB4QzgsIDB4N0YsIDB4QkIsIDB4NkIsIDB4ODcsIDB4NDcpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhDMCwgMHgyMSwgMHgzQywgMHg2OSwgMHg3RCwgMHgzOCwgMHg1NywgMHg1MCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDUyLCAweDRDLCAweDE4LCAweDNDLCAweDUzLCAweEE1LCAweDQ4LCAweDZEKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MjEsIDB4QzMsIDB4NjQsIDB4NDUsIDB4REIsIDB4QzQsIDB4NkQsIDB4MTUpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg0OSwgMHhDQywgMHhEMSwgMHhCQiwgMHgxNywgMHhCOCwgMHgzNCwgMHgyRCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDZDLCAweDY5LCAweDcxLCAweEZBLCAweEEwLCAweDI4LCAweDRBLCAweDNEKSwKLX07Ci1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBicmFpbnBvb2xQMzg0cjFfVF8yOF9ZW10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEVELCAweEU4LCAweDlFLCAweDM5LCAweEVBLCAweDhELCAweDM4LCAweERCKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4Q0MsIDB4OUMsIDB4QkIsIDB4Q0QsIDB4ODAsIDB4MUEsIDB4RUUsIDB4QjcpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhCQywgMHhBMCwgMHg0NSwgMHhCRiwgMHhEOSwgMHgyMiwgMHgxMSwgMHgzMiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweERBLCAweDdDLCAweDVDLCAweEQ5LCAweEMwLCAweDlGLCAweDY5LCAweEY1KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QkMsIDB4OEEsIDB4QTYsIDB4NzksIDB4NEUsIDB4MzUsIDB4QjksIDB4RDUpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhDQywgMHg4QiwgMHg5QSwgMHgzRSwgMHhBMSwgMHhCOCwgMHgyOCwgMHgxMCksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgYnJhaW5wb29sUDM4NHIxX1RfMjlfWFtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg1NSwgMHgyRiwgMHhFRiwgMHhCQiwgMHhBOSwgMHg3MiwgMHg3RiwgMHhFQSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEI1LCAweDM0LCAweEI3LCAweDEyLCAweEI5LCAweEU3LCAweEMzLCAweDJBKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RjgsIDB4MUQsIDB4RDksIDB4NDIsIDB4NzcsIDB4MEMsIDB4NzEsIDB4NkUpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhFQywgMHgwMSwgMHg1OSwgMHhBNywgMHg1NiwgMHgwMywgMHg5MSwgMHg4RCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDZDLCAweDkxLCAweDk5LCAweDMzLCAweDMwLCAweDNFLCAweEVGLCAweDEzKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4ODcsIDB4QzksIDB4NUEsIDB4OUEsIDB4NTQsIDB4NjYsIDB4RjEsIDB4NzApLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IGJyYWlucG9vbFAzODRyMV9UXzI5X1lbXSA9IHsKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NjQsIDB4MkMsIDB4QjcsIDB4NkUsIDB4NzEsIDB4N0QsIDB4MzUsIDB4MzApLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgxQSwgMHgwRCwgMHhFRiwgMHhEMSwgMHgyRCwgMHg5OSwgMHg2MywgMHgyRiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEU0LCAweDMxLCAweEFGLCAweDJELCAweEM5LCAweEM2LCAweEMyLCAweEFFKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MTksIDB4QzAsIDB4REYsIDB4ODAsIDB4NTQsIDB4QzQsIDB4QUMsIDB4RjMpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhFMywgMHg2QiwgMHhBMCwgMHg4NCwgMHg5NiwgMHhGNywgMHgzMSwgMHhDOCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDkzLCAweEUyLCAweDdDLCAweDdBLCAweDQxLCAweDQ1LCAweDc1LCAweDZBKSwKLX07Ci1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBicmFpbnBvb2xQMzg0cjFfVF8zMF9YW10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEFFLCAweEVFLCAweDU4LCAweDMxLCAweEU4LCAweDY4LCAweEQ2LCAweDc2KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RDIsIDB4MkUsIDB4NDgsIDB4QjcsIDB4MDksIDB4OUYsIDB4RDQsIDB4Q0EpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgzNCwgMHhBOSwgMHg1QywgMHhFNywgMHg2NCwgMHg0MywgMHg1RCwgMHhDOSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDlFLCAweDU4LCAweDlGLCAweDUwLCAweEFCLCAweDY4LCAweEZGLCAweDZEKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4ODcsIDB4ODgsIDB4MkQsIDB4QkEsIDB4MTIsIDB4QkYsIDB4OEQsIDB4N0QpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhENCwgMHhERiwgMHg2RiwgMHhCMywgMHg3NSwgMHhBNCwgMHg1NSwgMHg3MyksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgYnJhaW5wb29sUDM4NHIxX1RfMzBfWVtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg2RCwgMHgxNywgMHg5MiwgMHgzOSwgMHhCNywgMHgxMywgMHgzNywgMHg2RiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDVFLCAweDQzLCAweDcxLCAweEE3LCAweENBLCAweDE3LCAweDFCLCAweDMyKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RTcsIDB4QjksIDB4QjAsIDB4NzgsIDB4RUYsIDB4QTAsIDB4REEsIDB4ODMpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg5QSwgMHg4NCwgMHhGMiwgMHgwRiwgMHg4NSwgMHhBMiwgMHhCNiwgMHgxRiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDcyLCAweDY1LCAweDJFLCAweDZFLCAweDQ1LCAweEI5LCAweDRDLCAweDNDKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RkUsIDB4NkEsIDB4OEMsIDB4MkIsIDB4NzcsIDB4OTYsIDB4MzYsIDB4MjIpLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IGJyYWlucG9vbFAzODRyMV9UXzMxX1hbXSA9IHsKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NjgsIDB4N0EsIDB4MTMsIDB4NEEsIDB4OTcsIDB4NjMsIDB4MDIsIDB4MTApLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhCQywgMHgxRSwgMHgwNiwgMHgwMywgMHg4RiwgMHhCOSwgMHhFRSwgMHg2NCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDY4LCAweEVFLCAweDhCLCAweDg5LCAweEE5LCAweDcwLCAweERCLCAweENFKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MTUsIDB4N0IsIDB4ODEsIDB4QzksIDB4NzAsIDB4OEQsIDB4NjIsIDB4MzIpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg3NSwgMHhEQSwgMHg0NiwgMHhGOCwgMHhGOSwgMHgzQSwgMHhCRSwgMHg1NSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDlGLCAweDlDLCAweDdBLCAweDk3LCAweDYyLCAweEVCLCAweEZBLCAweDBGKSwKLX07Ci1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBicmFpbnBvb2xQMzg0cjFfVF8zMV9ZW10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEIyLCAweDAzLCAweDNELCAweDNDLCAweDQ2LCAweDI3LCAweDlFLCAweDY1KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QTQsIDB4MDgsIDB4MUMsIDB4RDUsIDB4MjUsIDB4QUYsIDB4RTksIDB4NDApLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhGRSwgMHg2OSwgMHhEQywgMHg1OSwgMHhGNCwgMHg4QSwgMHg3QywgMHgxRiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEZDLCAweDlBLCAweDdBLCAweDk5LCAweDIxLCAweDBDLCAweDRFLCAweEUzKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RjUsIDB4Q0UsIDB4ODUsIDB4NUYsIDB4QUMsIDB4QUEsIDB4ODIsIDB4MTApLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg4MywgMHg1NywgMHg2OSwgMHg5MCwgMHg3NiwgMHhGMywgMHg1MywgMHgzRiksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfZWNwX3BvaW50IGJyYWlucG9vbFAzODRyMV9UWzMyXSA9IHsKLSAgICBFQ1BfUE9JTlRfSU5JVF9YWV9aMShicmFpbnBvb2xQMzg0cjFfVF8wX1gsIGJyYWlucG9vbFAzODRyMV9UXzBfWSksCi0gICAgRUNQX1BPSU5UX0lOSVRfWFlfWjAoYnJhaW5wb29sUDM4NHIxX1RfMV9YLCBicmFpbnBvb2xQMzg0cjFfVF8xX1kpLAotICAgIEVDUF9QT0lOVF9JTklUX1hZX1owKGJyYWlucG9vbFAzODRyMV9UXzJfWCwgYnJhaW5wb29sUDM4NHIxX1RfMl9ZKSwKLSAgICBFQ1BfUE9JTlRfSU5JVF9YWV9aMChicmFpbnBvb2xQMzg0cjFfVF8zX1gsIGJyYWlucG9vbFAzODRyMV9UXzNfWSksCi0gICAgRUNQX1BPSU5UX0lOSVRfWFlfWjAoYnJhaW5wb29sUDM4NHIxX1RfNF9YLCBicmFpbnBvb2xQMzg0cjFfVF80X1kpLAotICAgIEVDUF9QT0lOVF9JTklUX1hZX1owKGJyYWlucG9vbFAzODRyMV9UXzVfWCwgYnJhaW5wb29sUDM4NHIxX1RfNV9ZKSwKLSAgICBFQ1BfUE9JTlRfSU5JVF9YWV9aMChicmFpbnBvb2xQMzg0cjFfVF82X1gsIGJyYWlucG9vbFAzODRyMV9UXzZfWSksCi0gICAgRUNQX1BPSU5UX0lOSVRfWFlfWjAoYnJhaW5wb29sUDM4NHIxX1RfN19YLCBicmFpbnBvb2xQMzg0cjFfVF83X1kpLAotICAgIEVDUF9QT0lOVF9JTklUX1hZX1owKGJyYWlucG9vbFAzODRyMV9UXzhfWCwgYnJhaW5wb29sUDM4NHIxX1RfOF9ZKSwKLSAgICBFQ1BfUE9JTlRfSU5JVF9YWV9aMChicmFpbnBvb2xQMzg0cjFfVF85X1gsIGJyYWlucG9vbFAzODRyMV9UXzlfWSksCi0gICAgRUNQX1BPSU5UX0lOSVRfWFlfWjAoYnJhaW5wb29sUDM4NHIxX1RfMTBfWCwgYnJhaW5wb29sUDM4NHIxX1RfMTBfWSksCi0gICAgRUNQX1BPSU5UX0lOSVRfWFlfWjAoYnJhaW5wb29sUDM4NHIxX1RfMTFfWCwgYnJhaW5wb29sUDM4NHIxX1RfMTFfWSksCi0gICAgRUNQX1BPSU5UX0lOSVRfWFlfWjAoYnJhaW5wb29sUDM4NHIxX1RfMTJfWCwgYnJhaW5wb29sUDM4NHIxX1RfMTJfWSksCi0gICAgRUNQX1BPSU5UX0lOSVRfWFlfWjAoYnJhaW5wb29sUDM4NHIxX1RfMTNfWCwgYnJhaW5wb29sUDM4NHIxX1RfMTNfWSksCi0gICAgRUNQX1BPSU5UX0lOSVRfWFlfWjAoYnJhaW5wb29sUDM4NHIxX1RfMTRfWCwgYnJhaW5wb29sUDM4NHIxX1RfMTRfWSksCi0gICAgRUNQX1BPSU5UX0lOSVRfWFlfWjAoYnJhaW5wb29sUDM4NHIxX1RfMTVfWCwgYnJhaW5wb29sUDM4NHIxX1RfMTVfWSksCi0gICAgRUNQX1BPSU5UX0lOSVRfWFlfWjAoYnJhaW5wb29sUDM4NHIxX1RfMTZfWCwgYnJhaW5wb29sUDM4NHIxX1RfMTZfWSksCi0gICAgRUNQX1BPSU5UX0lOSVRfWFlfWjAoYnJhaW5wb29sUDM4NHIxX1RfMTdfWCwgYnJhaW5wb29sUDM4NHIxX1RfMTdfWSksCi0gICAgRUNQX1BPSU5UX0lOSVRfWFlfWjAoYnJhaW5wb29sUDM4NHIxX1RfMThfWCwgYnJhaW5wb29sUDM4NHIxX1RfMThfWSksCi0gICAgRUNQX1BPSU5UX0lOSVRfWFlfWjAoYnJhaW5wb29sUDM4NHIxX1RfMTlfWCwgYnJhaW5wb29sUDM4NHIxX1RfMTlfWSksCi0gICAgRUNQX1BPSU5UX0lOSVRfWFlfWjAoYnJhaW5wb29sUDM4NHIxX1RfMjBfWCwgYnJhaW5wb29sUDM4NHIxX1RfMjBfWSksCi0gICAgRUNQX1BPSU5UX0lOSVRfWFlfWjAoYnJhaW5wb29sUDM4NHIxX1RfMjFfWCwgYnJhaW5wb29sUDM4NHIxX1RfMjFfWSksCi0gICAgRUNQX1BPSU5UX0lOSVRfWFlfWjAoYnJhaW5wb29sUDM4NHIxX1RfMjJfWCwgYnJhaW5wb29sUDM4NHIxX1RfMjJfWSksCi0gICAgRUNQX1BPSU5UX0lOSVRfWFlfWjAoYnJhaW5wb29sUDM4NHIxX1RfMjNfWCwgYnJhaW5wb29sUDM4NHIxX1RfMjNfWSksCi0gICAgRUNQX1BPSU5UX0lOSVRfWFlfWjAoYnJhaW5wb29sUDM4NHIxX1RfMjRfWCwgYnJhaW5wb29sUDM4NHIxX1RfMjRfWSksCi0gICAgRUNQX1BPSU5UX0lOSVRfWFlfWjAoYnJhaW5wb29sUDM4NHIxX1RfMjVfWCwgYnJhaW5wb29sUDM4NHIxX1RfMjVfWSksCi0gICAgRUNQX1BPSU5UX0lOSVRfWFlfWjAoYnJhaW5wb29sUDM4NHIxX1RfMjZfWCwgYnJhaW5wb29sUDM4NHIxX1RfMjZfWSksCi0gICAgRUNQX1BPSU5UX0lOSVRfWFlfWjAoYnJhaW5wb29sUDM4NHIxX1RfMjdfWCwgYnJhaW5wb29sUDM4NHIxX1RfMjdfWSksCi0gICAgRUNQX1BPSU5UX0lOSVRfWFlfWjAoYnJhaW5wb29sUDM4NHIxX1RfMjhfWCwgYnJhaW5wb29sUDM4NHIxX1RfMjhfWSksCi0gICAgRUNQX1BPSU5UX0lOSVRfWFlfWjAoYnJhaW5wb29sUDM4NHIxX1RfMjlfWCwgYnJhaW5wb29sUDM4NHIxX1RfMjlfWSksCi0gICAgRUNQX1BPSU5UX0lOSVRfWFlfWjAoYnJhaW5wb29sUDM4NHIxX1RfMzBfWCwgYnJhaW5wb29sUDM4NHIxX1RfMzBfWSksCi0gICAgRUNQX1BPSU5UX0lOSVRfWFlfWjAoYnJhaW5wb29sUDM4NHIxX1RfMzFfWCwgYnJhaW5wb29sUDM4NHIxX1RfMzFfWSksCi19OwotI2Vsc2UKLSNkZWZpbmUgYnJhaW5wb29sUDM4NHIxX1QgTlVMTAotI2VuZGlmCi0KLSNlbmRpZiAvKiBNQkVEVExTX0VDUF9EUF9CUDM4NFIxX0VOQUJMRUQgKi8KLQotLyoKLSAqIERvbWFpbiBwYXJhbWV0ZXJzIGZvciBicmFpbnBvb2xQNTEycjEgKFJGQyA1NjM5IDMuNykKLSAqLwotI2lmIGRlZmluZWQoTUJFRFRMU19FQ1BfRFBfQlA1MTJSMV9FTkFCTEVEKQotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgYnJhaW5wb29sUDUxMnIxX3BbXSA9IHsKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RjMsIDB4NDgsIDB4M0EsIDB4NTgsIDB4NTYsIDB4NjAsIDB4QUEsIDB4MjgpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg4NSwgMHhDNiwgMHg4MiwgMHgyRCwgMHgyRiwgMHhGRiwgMHg4MSwgMHgyOCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEU2LCAweDgwLCAweEEzLCAweEU2LCAweDJBLCAweEExLCAweENELCAweEFFKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NDIsIDB4NjgsIDB4QzYsIDB4OUIsIDB4MDAsIDB4OUIsIDB4NEQsIDB4N0QpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg3MSwgMHgwOCwgMHgzMywgMHg3MCwgMHhDQSwgMHg5QywgMHg2MywgMHhENiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDBFLCAweEQyLCAweEM5LCAweEIzLCAweEIzLCAweDhELCAweDMwLCAweENCKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MDcsIDB4RkMsIDB4QzksIDB4MzMsIDB4QUUsIDB4RTYsIDB4RDQsIDB4M0YpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg4QiwgMHhDNCwgMHhFOSwgMHhEQiwgMHhCOCwgMHg5RCwgMHhERCwgMHhBQSksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgYnJhaW5wb29sUDUxMnIxX2FbXSA9IHsKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4Q0EsIDB4OTQsIDB4RkMsIDB4NzcsIDB4NEQsIDB4QUMsIDB4QzEsIDB4RTcpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhCOSwgMHhDNywgMHhGMiwgMHgyQiwgMHhBNywgMHgxNywgMHgxMSwgMHg3RiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEI1LCAweEM4LCAweDlBLCAweDhCLCAweEM5LCAweEYxLCAweDJFLCAweDBBKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QTEsIDB4M0EsIDB4MjUsIDB4QTgsIDB4NUEsIDB4NUQsIDB4RUQsIDB4MkQpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhCQywgMHg2MywgMHg5OCwgMHhFQSwgMHhDQSwgMHg0MSwgMHgzNCwgMHhBOCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDEwLCAweDE2LCAweEY5LCAweDNELCAweDhELCAweERELCAweENCLCAweDk0KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QzUsIDB4NEMsIDB4MjMsIDB4QUMsIDB4NDUsIDB4NzEsIDB4MzIsIDB4RTIpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg4OSwgMHgzQiwgMHg2MCwgMHg4QiwgMHgzMSwgMHhBMywgMHgzMCwgMHg3OCksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgYnJhaW5wb29sUDUxMnIxX2JbXSA9IHsKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MjMsIDB4RjcsIDB4MTYsIDB4ODAsIDB4NjMsIDB4QkQsIDB4MDksIDB4MjgpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhERCwgMHhFNSwgMHhCQSwgMHg1RSwgMHhCNywgMHg1MCwgMHg0MCwgMHg5OCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDY3LCAweDNFLCAweDA4LCAweERDLCAweENBLCAweDk0LCAweEZDLCAweDc3KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NEQsIDB4QUMsIDB4QzEsIDB4RTcsIDB4QjksIDB4QzcsIDB4RjIsIDB4MkIpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhBNywgMHgxNywgMHgxMSwgMHg3RiwgMHhCNSwgMHhDOCwgMHg5QSwgMHg4QiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEM5LCAweEYxLCAweDJFLCAweDBBLCAweEExLCAweDNBLCAweDI1LCAweEE4KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NUEsIDB4NUQsIDB4RUQsIDB4MkQsIDB4QkMsIDB4NjMsIDB4OTgsIDB4RUEpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhDQSwgMHg0MSwgMHgzNCwgMHhBOCwgMHgxMCwgMHgxNiwgMHhGOSwgMHgzRCksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgYnJhaW5wb29sUDUxMnIxX2d4W10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDIyLCAweEY4LCAweEI5LCAweEJDLCAweDA5LCAweDIyLCAweDM1LCAweDhCKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NjgsIDB4NUUsIDB4NkEsIDB4NDAsIDB4NDcsIDB4NTAsIDB4NkQsIDB4N0MpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg1RiwgMHg3RCwgMHhCOSwgMHg5MywgMHg3QiwgMHg2OCwgMHhEMSwgMHg1MCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDhELCAweEQ0LCAweEQwLCAweEUyLCAweDc4LCAweDFGLCAweDNCLCAweEZGKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4OEUsIDB4MDksIDB4RDAsIDB4RjQsIDB4RUUsIDB4NjIsIDB4M0IsIDB4QjQpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhDMSwgMHgxNiwgMHhEOSwgMHhCNSwgMHg3MCwgMHg5RiwgMHhFRCwgMHg4NSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDkzLCAweDZBLCAweDRDLCAweDlDLCAweDJFLCAweDMyLCAweDIxLCAweDVBKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NjQsIDB4RDksIDB4MkUsIDB4RDgsIDB4QkQsIDB4RTQsIDB4QUUsIDB4ODEpLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IGJyYWlucG9vbFA1MTJyMV9neVtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg5MiwgMHgwOCwgMHhEOCwgMHgzQSwgMHgwRiwgMHgxRSwgMHhDRCwgMHg3OCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDA2LCAweDU0LCAweEYwLCAweEE4LCAweDJGLCAweDJCLCAweENBLCAweEQxKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QUUsIDB4NjMsIDB4MjcsIDB4OEEsIDB4RDgsIDB4NEIsIDB4Q0EsIDB4NUIpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg1RSwgMHg0OCwgMHg1RiwgMHg0QSwgMHg0OSwgMHhERSwgMHhEQywgMHhCMiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDExLCAweDgxLCAweDFGLCAweDg4LCAweDVCLCAweEM1LCAweDAwLCAweEEwKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MUEsIDB4N0IsIDB4QTUsIDB4MjQsIDB4MDAsIDB4RjcsIDB4MDksIDB4RjIpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhGRCwgMHgyMiwgMHg3OCwgMHhDRiwgMHhBOSwgMHhCRiwgMHhFQSwgMHhDMCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEVDLCAweDMyLCAweDYzLCAweDU2LCAweDVELCAweDM4LCAweERFLCAweDdEKSwKLX07Ci1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBicmFpbnBvb2xQNTEycjFfbltdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg2OSwgMHgwMCwgMHhBOSwgMHg5QywgMHg4MiwgMHg5NiwgMHg4NywgMHhCNSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweERELCAweERBLCAweDVELCAweDA4LCAweDgxLCAweEQzLCAweEIxLCAweDFEKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NDcsIDB4MTAsIDB4QUMsIDB4N0YsIDB4MTksIDB4NjEsIDB4ODYsIDB4NDEpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgxOSwgMHgyNiwgMHhBOSwgMHg0QywgMHg0MSwgMHg1QywgMHgzRSwgMHg1NSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDcwLCAweDA4LCAweDMzLCAweDcwLCAweENBLCAweDlDLCAweDYzLCAweEQ2KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MEUsIDB4RDIsIDB4QzksIDB4QjMsIDB4QjMsIDB4OEQsIDB4MzAsIDB4Q0IpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgwNywgMHhGQywgMHhDOSwgMHgzMywgMHhBRSwgMHhFNiwgMHhENCwgMHgzRiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDhCLCAweEM0LCAweEU5LCAweERCLCAweEI4LCAweDlELCAweERELCAweEFBKSwKLX07Ci0KLSNpZiBNQkVEVExTX0VDUF9GSVhFRF9QT0lOVF9PUFRJTSA9PSAxCi1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBicmFpbnBvb2xQNTEycjFfVF8wX1hbXSA9IHsKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MjIsIDB4RjgsIDB4QjksIDB4QkMsIDB4MDksIDB4MjIsIDB4MzUsIDB4OEIpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg2OCwgMHg1RSwgMHg2QSwgMHg0MCwgMHg0NywgMHg1MCwgMHg2RCwgMHg3QyksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDVGLCAweDdELCAweEI5LCAweDkzLCAweDdCLCAweDY4LCAweEQxLCAweDUwKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4OEQsIDB4RDQsIDB4RDAsIDB4RTIsIDB4NzgsIDB4MUYsIDB4M0IsIDB4RkYpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg4RSwgMHgwOSwgMHhEMCwgMHhGNCwgMHhFRSwgMHg2MiwgMHgzQiwgMHhCNCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEMxLCAweDE2LCAweEQ5LCAweEI1LCAweDcwLCAweDlGLCAweEVELCAweDg1KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4OTMsIDB4NkEsIDB4NEMsIDB4OUMsIDB4MkUsIDB4MzIsIDB4MjEsIDB4NUEpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg2NCwgMHhEOSwgMHgyRSwgMHhEOCwgMHhCRCwgMHhFNCwgMHhBRSwgMHg4MSksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgYnJhaW5wb29sUDUxMnIxX1RfMF9ZW10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDkyLCAweDA4LCAweEQ4LCAweDNBLCAweDBGLCAweDFFLCAweENELCAweDc4KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MDYsIDB4NTQsIDB4RjAsIDB4QTgsIDB4MkYsIDB4MkIsIDB4Q0EsIDB4RDEpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhBRSwgMHg2MywgMHgyNywgMHg4QSwgMHhEOCwgMHg0QiwgMHhDQSwgMHg1QiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDVFLCAweDQ4LCAweDVGLCAweDRBLCAweDQ5LCAweERFLCAweERDLCAweEIyKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MTEsIDB4ODEsIDB4MUYsIDB4ODgsIDB4NUIsIDB4QzUsIDB4MDAsIDB4QTApLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgxQSwgMHg3QiwgMHhBNSwgMHgyNCwgMHgwMCwgMHhGNywgMHgwOSwgMHhGMiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEZELCAweDIyLCAweDc4LCAweENGLCAweEE5LCAweEJGLCAweEVBLCAweEMwKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RUMsIDB4MzIsIDB4NjMsIDB4NTYsIDB4NUQsIDB4MzgsIDB4REUsIDB4N0QpLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IGJyYWlucG9vbFA1MTJyMV9UXzFfWFtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhFQSwgMHhFOSwgMHg2QiwgMHg4QywgMHg2RiwgMHg5RCwgMHg4OCwgMHg0MyksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEJCLCAweDRGLCAweDg2LCAweDk2LCAweEE3LCAweDU2LCAweEQxLCAweDM3KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4OUQsIDB4QUIsIDB4RkEsIDB4RUUsIDB4QTcsIDB4RjUsIDB4MEUsIDB4QTYpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhFMywgMHg0MCwgMHhFRiwgMHg5RSwgMHg2RCwgMHhENiwgMHgzMiwgMHgzMyksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEUzLCAweEVELCAweDU2LCAweDE0LCAweDU3LCAweDFBLCAweDhELCAweDY5KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QTQsIDB4RUQsIDB4NEQsIDB4M0EsIDB4RkEsIDB4NzEsIDB4NzUsIDB4NkIpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg2NiwgMHhDNSwgMHg3NiwgMHgxQywgMHgxNCwgMHhCRSwgMHhCNSwgMHhDRCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEUxLCAweDVBLCAweENCLCAweEU3LCAweDM2LCAweDFELCAweDUyLCAweDFDKSwKLX07Ci1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBicmFpbnBvb2xQNTEycjFfVF8xX1lbXSA9IHsKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NkIsIDB4OEQsIDB4N0EsIDB4RUIsIDB4QTMsIDB4OEIsIDB4RDUsIDB4QjApLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgxRiwgMHhBMywgMHg0MSwgMHhGOCwgMHhBQywgMHg5RSwgMHhBQiwgMHg3NCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDEyLCAweEUzLCAweDY1LCAweDBELCAweDFDLCAweEZFLCAweDA5LCAweDJCKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4M0YsIDB4Q0EsIDB4MTMsIDB4M0YsIDB4QzUsIDB4RjksIDB4N0UsIDB4RUMpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgyQywgMHg1RCwgMHg2MywgMHgyOCwgMHhBNiwgMHg4OSwgMHhEMywgMHg5MSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEM5LCAweDk1LCAweDNGLCAweDdBLCAweDgyLCAweEQ0LCAweDc3LCAweEUzKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MzQsIDB4QkIsIDB4OTIsIDB4MzIsIDB4MDAsIDB4RjQsIDB4NjYsIDB4NDIpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhCQSwgMHg1OCwgMHgzMSwgMHhEMSwgMHgxNywgMHg5RiwgMHgyQSwgMHgyMiksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgYnJhaW5wb29sUDUxMnIxX1RfMl9YW10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDUyLCAweDM2LCAweEE5LCAweENELCAweDgwLCAweEE1LCAweDJELCAweDc4KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4OTEsIDB4NDQsIDB4QUIsIDB4Q0UsIDB4NzEsIDB4RkYsIDB4MEMsIDB4OUIpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgxOCwgMHgyNCwgMHg1OCwgMHgzNSwgMHg1QSwgMHgyMSwgMHgzMiwgMHg5MyksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDFCLCAweEE2LCAweDI4LCAweEY4LCAweDdBLCAweDk3LCAweEFFLCAweDhCKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4ODQsIDB4RTcsIDB4MDgsIDB4RkEsIDB4NDcsIDB4QzksIDB4NTUsIDB4MDkpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg4RCwgMHhBQywgMHgyRSwgMHg4NCwgMHhBNCwgMHhGNSwgMHg1MiwgMHhDNCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEQ5LCAweDU4LCAweDA1LCAweDlELCAweEE3LCAweEM4LCAweDcxLCAweEJGKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QjMsIDB4OTIsIDB4QjQsIDB4OTIsIDB4QzEsIDB4OTIsIDB4RUMsIDB4NkIpLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IGJyYWlucG9vbFA1MTJyMV9UXzJfWVtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg0QSwgMHg0OCwgMHgyRCwgMHg3OSwgMHg1RSwgMHg1OCwgMHhFNSwgMHg2OSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEI0LCAweDg1LCAweDI2LCAweEVDLCAweEU5LCAweDZFLCAweEQ0LCAweDA2KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4OTgsIDB4NjgsIDB4MjYsIDB4ODcsIDB4MzgsIDB4QTIsIDB4RDIsIDB4MEIpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhGNywgMHgxNywgMHg2MCwgMHhDRSwgMHg3NSwgMHhGOCwgMHhBNSwgMHg2RiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDIwLCAweDUxLCAweERCLCAweEE5LCAweEFFLCAweDg3LCAweEYxLCAweDE1KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4REQsIDB4NDksIDB4OTIsIDB4M0IsIDB4MTksIDB4OTYsIDB4RjUsIDB4QjApLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhDNCwgMHhENSwgMHg1MiwgMHg1MiwgMHg4QywgMHhDRSwgMHhGRCwgMHhGQSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDI0LCAweDE4LCAweDBBLCAweEU2LCAweEY2LCAweEFFLCAweDA4LCAweDQxKSwKLX07Ci1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBicmFpbnBvb2xQNTEycjFfVF8zX1hbXSA9IHsKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4N0UsIDB4MkIsIDB4RDgsIDB4NTQsIDB4Q0UsIDB4QjAsIDB4NTcsIDB4RkUpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg4QSwgMHhCMCwgMHhGOCwgMHg5RSwgMHgwMywgMHgwMywgMHgzQywgMHg1RCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDkzLCAweDBFLCAweDI5LCAweDI5LCAweDAwLCAweEYzLCAweDcwLCAweEJGKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NTQsIDB4MzMsIDB4OTksIDB4MEUsIDB4MDAsIDB4NUQsIDB4RkUsIDB4NEIpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg0NiwgMHgyRCwgMHhGMiwgMHg1OSwgMHgzMiwgMHhDRiwgMHgwMywgMHhGNCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDNCLCAweEM5LCAweDcyLCAweEFFLCAweDBDLCAweEVGLCAweEQxLCAweDVCKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QjYsIDB4NUEsIDB4MjcsIDB4QkYsIDB4MkYsIDB4NDUsIDB4RjksIDB4NTEpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhENCwgMHhCRSwgMHhFNSwgMHgyQywgMHhGRiwgMHg1QiwgMHgxRSwgMHg4OCksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgYnJhaW5wb29sUDUxMnIxX1RfM19ZW10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEFBLCAweEFDLCAweEJCLCAweEQ4LCAweDgzLCAweEMyLCAweDQ2LCAweEY2KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4Q0YsIDB4REMsIDB4Q0UsIDB4MTUsIDB4QjQsIDB4RUYsIDB4Q0YsIDB4NDYpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg0NiwgMHhEQiwgMHg1RSwgMHg5NCwgMHgzMSwgMHgwQiwgMHhCMiwgMHg3QSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDNDLCAweEI5LCAweEUzLCAweEUzLCAweDExLCAweDcxLCAweDQxLCAweDFFKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MzYsIDB4RTMsIDB4MDEsIDB4QjcsIDB4N0QsIDB4QkMsIDB4NjUsIDB4QkUpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhGQywgMHgwNywgMHg2NSwgMHg4NywgMHhBNywgMHhFOCwgMHg0OCwgMHhFMyksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDY2LCAweDQ4LCAweDhGLCAweEQ0LCAweDMwLCAweDhFLCAweEI0LCAweDZDKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4ODYsIDB4RTAsIDB4NzMsIDB4QkUsIDB4MUUsIDB4QkYsIDB4NTYsIDB4MzYpLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IGJyYWlucG9vbFA1MTJyMV9UXzRfWFtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhGRSwgMHgwRSwgMHg1RSwgMHg4NywgMHhDNSwgMHhBQiwgMHgwRSwgMHgzQyksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEI5LCAweEY5LCAweDVGLCAweDgwLCAweDI0LCAweDRDLCAweDJBLCAweEYxKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4REUsIDB4MTUsIDB4MjEsIDB4NTQsIDB4OTIsIDB4ODQsIDB4OEQsIDB4NkEpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhBOCwgMHg4QSwgMHg0NywgMHg3NCwgMHhEQywgMHg0MiwgMHhCMSwgMHhGOCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDgxLCAweEY3LCAweDMwLCAweEZELCAweEMxLCAweDlCLCAweDBDLCAweDVCKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NEUsIDB4NkMsIDB4Q0MsIDB4REYsIDB4QzUsIDB4RTMsIDB4QTksIDB4RDUpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhENiwgMHg2NywgMHg1OSwgMHgxMCwgMHg1QywgMHg1MSwgMHg1NCwgMHg0MCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEEwLCAweDM3LCAweEZCLCAweDZFLCAweEIwLCAweDc4LCAweDYzLCAweDhFKSwKLX07Ci1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBicmFpbnBvb2xQNTEycjFfVF80X1lbXSA9IHsKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QTUsIDB4RUYsIDB4QzQsIDB4MzksIDB4MjAsIDB4RjEsIDB4NDYsIDB4NjYpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhFMiwgMHg2MiwgMHhBRSwgMHhGRiwgMHgxMCwgMHhFNCwgMHhFMiwgMHhFOSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEZGLCAweDVDLCAweEY1LCAweDJFLCAweDIyLCAweDg5LCAweEU1LCAweDgyKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4ODksIDB4MEMsIDB4MjksIDB4QTgsIDB4NjIsIDB4QUUsIDB4REIsIDB4NjUpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhENywgMHg5RSwgMHgwRiwgMHhDQSwgMHg4NywgMHgyQSwgMHg2RiwgMHg3QiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweENFLCAweERDLCAweDlCLCAweDlGLCAweDY1LCAweEQ0LCAweEFELCAweDI3KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RUQsIDB4QzMsIDB4MDgsIDB4MEYsIDB4Q0YsIDB4NjcsIDB4RTksIDB4RjQpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg5MiwgMHg1QywgMHhENywgMHhGRiwgMHg0MSwgMHg5QywgMHhDQiwgMHgyNiksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgYnJhaW5wb29sUDUxMnIxX1RfNV9YW10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDM3LCAweDI1LCAweDA1LCAweDEyLCAweEFELCAweDczLCAweDYzLCAweDkwKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QzcsIDB4OTksIDB4MDcsIDB4ODYsIDB4NTcsIDB4RTcsIDB4OTQsIDB4QjEpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgwMCwgMHg0QiwgMHhBNSwgMHhCRiwgMHgxOCwgMHhBOSwgMHhFRiwgMHg2QSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEZBLCAweDRDLCAweEM0LCAweDA5LCAweEYyLCAweDJGLCAweDBDLCAweEFBKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4OEMsIDB4M0EsIDB4MDQsIDB4RUEsIDB4ODksIDB4NkMsIDB4OTEsIDB4QjkpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg3RCwgMHg2QywgMHgzQSwgMHhFNywgMHhBMywgMHhFQywgMHgyNCwgMHg3QiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDE2LCAweEExLCAweDI2LCAweDIxLCAweDA0LCAweEUzLCAweEI5LCAweDQwKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NTMsIDB4NzEsIDB4NEIsIDB4N0IsIDB4QzIsIDB4ODksIDB4Q0QsIDB4QTIpLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IGJyYWlucG9vbFA1MTJyMV9UXzVfWVtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhCNywgMHhCOSwgMHhBOCwgMHg5RCwgMHhGRCwgMHgwMCwgMHgzQSwgMHgxRiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDYzLCAweDQxLCAweDZDLCAweEJCLCAweDVBLCAweENBLCAweDFGLCAweDc0KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MkEsIDB4RDcsIDB4RTIsIDB4NkMsIDB4NkIsIDB4QTcsIDB4NDgsIDB4QzkpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgxRSwgMHgxOSwgMHhBRCwgMHhBNywgMHhDMSwgMHg3RSwgMHg0RiwgMHg2RSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEQxLCAweEY3LCAweDE5LCAweDNDLCAweDA2LCAweDc0LCAweDJDLCAweDNBKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QzUsIDB4MjMsIDB4NEYsIDB4MEMsIDB4MDksIDB4QjAsIDB4ODAsIDB4NEEpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg0RSwgMHg3NCwgMHgzNCwgMHgwOCwgMHg0NCwgMHg3RSwgMHhBMywgMHhERCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEZCLCAweENDLCAweDhELCAweDEyLCAweDZFLCAweEUxLCAweDNELCAweDBCKSwKLX07Ci1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBicmFpbnBvb2xQNTEycjFfVF82X1hbXSA9IHsKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MzgsIDB4MTgsIDB4QjEsIDB4NzEsIDB4MDIsIDB4OTMsIDB4QzIsIDB4QTQpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhDOSwgMHg4OSwgMHg0MCwgMHhFMiwgMHgxRiwgMHhFNywgMHg1RSwgMHg2OCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDUwLCAweDhFLCAweEFFLCAweDg5LCAweDAxLCAweEQ0LCAweDBDLCAweEVCKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QUUsIDB4REEsIDB4NTgsIDB4NzAsIDB4MjQsIDB4RjIsIDB4RTQsIDB4NUYpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg2RiwgMHhDNywgMHgxRCwgMHhENiwgMHg0QSwgMHg2RiwgMHg2NiwgMHg0RiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDkyLCAweDFELCAweDdFLCAweDRBLCAweDJDLCAweENBLCAweEVDLCAweDNCKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QTEsIDB4MDYsIDB4N0YsIDB4QTgsIDB4OTksIDB4RTQsIDB4RDMsIDB4NEUpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgyQSwgMHgxRCwgMHg1QSwgMHhERiwgMHg1RSwgMHg1OCwgMHgzNiwgMHg0OSksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgYnJhaW5wb29sUDUxMnIxX1RfNl9ZW10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDlDLCAweEI5LCAweDMyLCAweDY5LCAweDFGLCAweDcyLCAweDJBLCAweEIzKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MUMsIDB4NzMsIDB4RTIsIDB4MDMsIDB4MzksIDB4MzUsIDB4QUEsIDB4QTgpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhFQiwgMHg1RSwgMHg1RCwgMHg0OCwgMHhFRiwgMHhBRSwgMHgzMCwgMHhGNSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDc3LCAweDdGLCAweDYwLCAweDE5LCAweEFGLCAweEVDLCAweDlELCAweEZDKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4Q0EsIDB4RDksIDB4MTksIDB4RTQsIDB4MUIsIDB4NTYsIDB4MTUsIDB4NUYpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhCQywgMHhENywgMHgzMywgMHg1OSwgMHgxRiwgMHg0MywgMHg1OSwgMHgyQyksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEM2LCAweENFLCAweEVFLCAweENBLCAweEE0LCAweDdGLCAweDYzLCAweEQ0KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QkQsIDB4NDAsIDB4QzAsIDB4RjYsIDB4MTksIDB4ODksIDB4NDMsIDB4MjApLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IGJyYWlucG9vbFA1MTJyMV9UXzdfWFtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhFQiwgMHg5MiwgMHhFQSwgMHgwNywgMHg2NSwgMHg3OSwgMHg4NiwgMHhEMyksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEZGLCAweEI3LCAweDEzLCAweDc1LCAweEQzLCAweEM1LCAweDBBLCAweEM5KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MjYsIDB4OUUsIDB4RkEsIDB4RTEsIDB4MUYsIDB4MEMsIDB4RjksIDB4NzQpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhCNCwgMHg4QywgMHhFRCwgMHg1QywgMHgyMSwgMHhFOSwgMHgwOSwgMHhERCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEY0LCAweDRELCAweEQ4LCAweDE4LCAweEM0LCAweEY2LCAweDM2LCAweDM5KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QzcsIDB4QzksIDB4QUMsIDB4NUMsIDB4RkEsIDB4NjksIDB4QTQsIDB4QTApLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg2QiwgMHg4QywgMHg5NCwgMHgxQywgMHg3QiwgMHg3MSwgMHgzNiwgMHg1OCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDdDLCAweEJELCAweDQ2LCAweENFLCAweEI3LCAweDFELCAweDlDLCAweDVFKSwKLX07Ci1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBicmFpbnBvb2xQNTEycjFfVF83X1lbXSA9IHsKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RUEsIDB4RDYsIDB4OTYsIDB4NEIsIDB4QTYsIDB4NDcsIDB4RUIsIDB4RTUpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg1RiwgMHhGMSwgMHg1RiwgMHgxNSwgMHhERSwgMHg5OSwgMHg2RiwgMHg2NiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDIxLCAweEJELCAweEU1LCAweDA0LCAweEI4LCAweEU2LCAweEMwLCAweDBCKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NDksIDB4RDMsIDB4RjAsIDB4MDQsIDB4MDAsIDB4RTQsIDB4MDUsIDB4REIpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg5NiwgMHhGMywgMHgwNiwgMHhBMywgMHgxQSwgMHhGRiwgMHhFQSwgMHg3MyksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDA4LCAweDMyLCAweEFBLCAweDk5LCAweDMzLCAweDA5LCAweEI2LCAweDM0KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NkUsIDB4RUYsIDB4RkMsIDB4NjEsIDB4MTAsIDB4NDIsIDB4MzEsIDB4OTQpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgzNCwgMHhGMSwgMHhGNCwgMHgzMywgMHhDRiwgMHgyOCwgMHg5MCwgMHg5QyksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgYnJhaW5wb29sUDUxMnIxX1RfOF9YW10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDEwLCAweERFLCAweEY5LCAweDg4LCAweDg3LCAweDdCLCAweEVCLCAweEM5KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NjYsIDB4QjgsIDB4REEsIDB4RkEsIDB4REEsIDB4M0QsIDB4QTYsIDB4MTcpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhBMCwgMHhGMCwgMHg2MiwgMHg4MiwgMHg1MywgMHgzMiwgMHg1NSwgMHgwMyksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDJGLCAweEE1LCAweDMyLCAweDRBLCAweDE5LCAweDExLCAweDlDLCAweDEwKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MTYsIDB4QjMsIDB4MjcsIDB4RTksIDB4NzUsIDB4OTAsIDB4MDUsIDB4MkQpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg2MywgMHgxQywgMHg5MCwgMHg0OCwgMHg3NywgMHgwMSwgMHg4NSwgMHgxQiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEM3LCAweEQ2LCAweDlCLCAweDg0LCAweEE4LCAweEQ3LCAweEM1LCAweDI4KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RTEsIDB4N0EsIDB4Q0IsIDB4QjMsIDB4MTEsIDB4NDYsIDB4RDcsIDB4OTkpLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IGJyYWlucG9vbFA1MTJyMV9UXzhfWVtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg4QiwgMHgyMywgMHhCRiwgMHg3NSwgMHg3NSwgMHhBMSwgMHg5NSwgMHg5MCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDRCLCAweDY2LCAweDVELCAweDM0LCAweDEzLCAweEE5LCAweDAzLCAweEJFKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MjksIDB4ODAsIDB4OUQsIDB4NUYsIDB4RDIsIDB4NDQsIDB4RTEsIDB4NjIpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg5NiwgMHg1RCwgMHhCRCwgMHhBOCwgMHhCRiwgMHhCNCwgMHgyNSwgMHgxRiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDZBLCAweDk5LCAweDFGLCAweDUzLCAweEYxLCAweDU3LCAweERCLCAweEU3KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MjEsIDB4N0MsIDB4RTUsIDB4QzUsIDB4NTEsIDB4MEIsIDB4NEMsIDB4OUIpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg2QiwgMHhCMCwgMHgxQSwgMHg5QywgMHgxNiwgMHhCMCwgMHgzMiwgMHgxRiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEY0LCAweEUzLCAweENGLCAweERELCAweDQ4LCAweEI0LCAweDdCLCAweDMzKSwKLX07Ci1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBicmFpbnBvb2xQNTEycjFfVF85X1hbXSA9IHsKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QzAsIDB4REQsIDB4OUUsIDB4M0MsIDB4OTgsIDB4MEUsIDB4NzcsIDB4NjUpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg2QywgMHhBQiwgMHgwMSwgMHhEMywgMHg4NywgMHg3NCwgMHgyNSwgMHg0QSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDg3LCAweEEzLCAweEUzLCAweDc2LCAweDQzLCAweDg3LCAweDEyLCAweEJEKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NTQsIDB4QjEsIDB4M0IsIDB4NjAsIDB4NjYsIDB4RUIsIDB4OTgsIDB4NTQpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhEMiwgMHg3OCwgMHhDOCwgMHhENywgMHg0RSwgMHg3NSwgMHhDQSwgMHg2OSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDA3LCAweERGLCAweDcxLCAweDE5LCAweEU3LCAweDA3LCAweDM2LCAweEI1KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NkQsIDB4QzksIDB4QTgsIDB4NUYsIDB4OTEsIDB4QkYsIDB4NDcsIDB4QjIpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg4MCwgMHg5NiwgMHg1OCwgMHg5NiwgMHgxOCwgMHhCNiwgMHhGQSwgMHgwMSksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgYnJhaW5wb29sUDUxMnIxX1RfOV9ZW10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEQwLCAweDJELCAweEE5LCAweDlCLCAweDg2LCAweERCLCAweDBDLCAweDRDKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RTQsIDB4MEIsIDB4MkQsIDB4NTYsIDB4NEEsIDB4RDMsIDB4OTMsIDB4OEEpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhCNSwgMHgxNSwgMHhFMiwgMHg2NSwgMHgxMiwgMHg4NiwgMHgwRSwgMHhCMiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEI0LCAweDQxLCAweDRELCAweEMxLCAweENCLCAweEU0LCAweEMzLCAweEQ3KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NkEsIDB4NTMsIDB4MTAsIDB4Q0EsIDB4QTMsIDB4QUMsIDB4ODMsIDB4MjYpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgzRSwgMHgwMSwgMHgyMiwgMHg5NiwgMHgxMCwgMHhBRCwgMHg2OSwgMHhEQiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDQyLCAweDQ2LCAweDRFLCAweEQ4LCAweEVBLCAweEQ2LCAweDlELCAweEYzKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NDMsIDB4MkYsIDB4N0YsIDB4NjIsIDB4NjIsIDB4ODAsIDB4RDAsIDB4MTQpLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IGJyYWlucG9vbFA1MTJyMV9UXzEwX1hbXSA9IHsKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QjIsIDB4REEsIDB4MDAsIDB4NjMsIDB4MDksIDB4QkQsIDB4NkEsIDB4ODMpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgwRiwgMHhENCwgMHg2RSwgMHg0OCwgMHgwNSwgMHhCNywgMHhGNywgMHgxNyksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDE0LCAweDRELCAweEQ3LCAweDAwLCAweDRBLCAweDE1LCAweDI3LCAweDdBKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4M0EsIDB4MTUsIDB4QUEsIDB4MzcsIDB4MjcsIDB4MzQsIDB4MTgsIDB4MjQpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgzQSwgMHgyMCwgMHgyQywgMHg4NCwgMHgxQiwgMHg4OCwgMHhCQSwgMHgwNSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEFDLCAweDA5LCAweEQ2LCAweDA0LCAweEEyLCAweDYwLCAweDg0LCAweDcyKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QzgsIDB4MDQsIDB4OTQsIDB4MDgsIDB4RDQsIDB4RUQsIDB4NDcsIDB4REIpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg4QiwgMHhGMywgMHhFNCwgMHgzRSwgMHhCOSwgMHg1QiwgMHgzNSwgMHg0MiksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgYnJhaW5wb29sUDUxMnIxX1RfMTBfWVtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg1RiwgMHhEOCwgMHhCNiwgMHg4MCwgMHhENiwgMHhGMSwgMHgzMCwgMHhERCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEQ2LCAweDE0LCAweEE2LCAweDg1LCAweEVFLCAweEE3LCAweEQ4LCAweDYxKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RTQsIDB4NDksIDB4MkEsIDB4MUUsIDB4N0MsIDB4RTksIDB4MkQsIDB4RUMpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgzQSwgMHg4NywgMHg1NiwgMHg5MSwgMHgwMywgMHg3NywgMHg0RCwgMHg1NSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDBFLCAweDUyLCAweEQ0LCAweEFBLCAweEY3LCAweEZBLCAweEIwLCAweEM1KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MDQsIDB4NUQsIDB4MTEsIDB4MzksIDB4QjEsIDB4RTcsIDB4NzYsIDB4QUQpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhENiwgMHgxMywgMHhCQywgMHgzNywgMHg1RCwgMHg3NCwgMHhDRCwgMHhDMiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEM5LCAweDQ4LCAweDE0LCAweDIzLCAweDMwLCAweEY4LCAweDQ2LCAweDM3KSwKLX07Ci1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBicmFpbnBvb2xQNTEycjFfVF8xMV9YW10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEFDLCAweDI3LCAweEIwLCAweEQ5LCAweEIyLCAweDc0LCAweEI0LCAweEMwKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RUEsIDB4QTYsIDB4QjksIDB4NkYsIDB4OUYsIDB4NjQsIDB4MzYsIDB4OTIpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgyRSwgMHgyQiwgMHg3OCwgMHg0MCwgMHgwNSwgMHgyQiwgMHg3QiwgMHhBOSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEIzLCAweDY4LCAweDNBLCAweEI2LCAweDRBLCAweEUyLCAweERCLCAweEI4KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MUUsIDB4MzMsIDB4RDcsIDB4MzQsIDB4OEIsIDB4MjUsIDB4NDUsIDB4RUYpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg4OSwgMHhDRSwgMHhBOCwgMHhDOSwgMHgwMSwgMHhGQiwgMHgwRSwgMHg3QiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEUyLCAweEY5LCAweDUxLCAweDRDLCAweDEyLCAweDlGLCAweDYwLCAweEU0KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NjcsIDB4ODUsIDB4QkQsIDB4MzAsIDB4MzcsIDB4ODQsIDB4MzksIDB4NDQpLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IGJyYWlucG9vbFA1MTJyMV9UXzExX1lbXSA9IHsKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MjYsIDB4MzMsIDB4QUYsIDB4MkUsIDB4QjgsIDB4MkUsIDB4Q0MsIDB4M0MpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhBNCwgMHhCMSwgMHg3MywgMHg1OSwgMHg0RSwgMHgwQywgMHgwOSwgMHg0QSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDhBLCAweDI0LCAweDg5LCAweDgxLCAweDEyLCAweEZGLCAweEJCLCAweDZFKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NzEsIDB4MzcsIDB4MUEsIDB4NjYsIDB4RUUsIDB4RUQsIDB4QjYsIDB4OUIpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgxNiwgMHhCRCwgMHgwNCwgMHgyMCwgMHg1RCwgMHhGQiwgMHhCRiwgMHg5NSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEEwLCAweEY4LCAweDM0LCAweEEzLCAweEZGLCAweDQ1LCAweERFLCAweDkyKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4OUIsIDB4MTgsIDB4NzMsIDB4RjEsIDB4MzIsIDB4MjUsIDB4NTgsIDB4RUIpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg2MywgMHhDMSwgMHgxNCwgMHhFMywgMHg5RSwgMHg0MCwgMHgwRiwgMHgxMiksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgYnJhaW5wb29sUDUxMnIxX1RfMTJfWFtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg2MSwgMHgwNywgMHg5RCwgMHg5QywgMHgwMCwgMHhGNywgMHg1NiwgMHgxOSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEZCLCAweEJBLCAweDg3LCAweEY5LCAweDE1LCAweDBDLCAweDY2LCAweDVEKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4N0UsIDB4MUYsIDB4QzEsIDB4MjgsIDB4QjAsIDB4NDcsIDB4MEQsIDB4RjUpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg5NiwgMHhDQSwgMHgyNywgMHhFRSwgMHg0QiwgMHgyMywgMHgyQiwgMHg4OSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDdFLCAweEI1LCAweDY4LCAweEM4LCAweDE3LCAweDVELCAweEMzLCAweEFBKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MTcsIDB4MDIsIDB4MDgsIDB4RUUsIDB4MjAsIDB4OUQsIDB4RUEsIDB4NjQpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhBNywgMHgxNCwgMHg1MCwgMHhENCwgMHg3RCwgMHg1RiwgMHhDRiwgMHhBMCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEQ1LCAweEZBLCAweEY4LCAweEE3LCAweEM2LCAweERDLCAweDE0LCAweDhDKSwKLX07Ci1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBicmFpbnBvb2xQNTEycjFfVF8xMl9ZW10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDc2LCAweEJELCAweDBBLCAweDFBLCAweDE4LCAweDk4LCAweERDLCAweEIwKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NjMsIDB4NjMsIDB4MDIsIDB4QjcsIDB4RDUsIDB4NUIsIDB4NUEsIDB4QzYpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg1MSwgMHhCMSwgMHhENywgMHg0QiwgMHgxNSwgMHgzOSwgMHg2MSwgMHg1RCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDVDLCAweDMyLCAweEUxLCAweDlFLCAweDcwLCAweDFCLCAweENFLCAweDUxKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NjQsIDB4RDgsIDB4MTgsIDB4ODMsIDB4NTIsIDB4OUIsIDB4NkQsIDB4QTIpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhBNCwgMHg1NSwgMHg1NiwgMHgxOSwgMHgzNCwgMHhBNCwgMHhFQSwgMHhGQyksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDMwLCAweEE5LCAweDU1LCAweDgwLCAweEUzLCAweDE1LCAweDM2LCAweDhCKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QkIsIDB4MDYsIDB4QzgsIDB4MUQsIDB4MTcsIDB4MEQsIDB4QUQsIDB4MTYpLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IGJyYWlucG9vbFA1MTJyMV9UXzEzX1hbXSA9IHsKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MjAsIDB4RDYsIDB4RjAsIDB4Q0MsIDB4RjMsIDB4NjMsIDB4NTMsIDB4RDIpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgyNywgMHg1QSwgMHhEQywgMHg0NiwgMHhCRCwgMHgwRCwgMHhBRCwgMHg5NiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDIxLCAweDJGLCAweDExLCAweDYwLCAweDE1LCAweDUxLCAweDRBLCAweEVBKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MzMsIDB4RTMsIDB4OTMsIDB4MzgsIDB4RDUsIDB4ODMsIDB4QUEsIDB4MEQpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg5MCwgMHhBNiwgMHhDQywgMHhCMSwgMHhGRCwgMHhCQiwgMHgxQSwgMHgwRiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDNCLCAweDU0LCAweEM4LCAweDU0LCAweDZGLCAweDc5LCAweDFBLCAweDU5KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4M0YsIDB4NEEsIDB4REEsIDB4MjgsIDB4OTIsIDB4OTcsIDB4OUQsIDB4N0YpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhENiwgMHg0QiwgMHhEQiwgMHhDNywgMHg1MiwgMHhDNSwgMHg2NiwgMHgzNCksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgYnJhaW5wb29sUDUxMnIxX1RfMTNfWVtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgwNSwgMHg3RSwgMHg5MiwgMHg1MywgMHgzMCwgMHg5MywgMHhGRCwgMHhGRiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEEwLCAweDE2LCAweDZBLCAweEIxLCAweDkxLCAweDBBLCAweEI0LCAweDUyKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NkQsIDB4OUQsIDB4NDAsIDB4M0YsIDB4RTMsIDB4RjEsIDB4MDEsIDB4NDYpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgxMywgMHgwRSwgMHhEOCwgMHhFRCwgMHgxMSwgMHg4RSwgMHg0QywgMHhFRCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDg2LCAweDRBLCAweDFCLCAweDg4LCAweERGLCAweDhELCAweDI5LCAweEU3KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4OTcsIDB4MjMsIDB4MjEsIDB4MTEsIDB4QUIsIDB4NzcsIDB4ODEsIDB4NjIpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgwQiwgMHhBRiwgMHgxMSwgMHhGQSwgMHhCQSwgMHg0MCwgMHg2MywgMHhFNyksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDJCLCAweDZGLCAweDhELCAweDgwLCAweERGLCAweDY3LCAweEY1LCAweDQ0KSwKLX07Ci1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBicmFpbnBvb2xQNTEycjFfVF8xNF9YW10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEIyLCAweDhCLCAweEI3LCAweDA4LCAweEY0LCAweEQ3LCAweDJELCAweEE4KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QzcsIDB4MkIsIDB4MzAsIDB4MDIsIDB4NDUsIDB4NzEsIDB4MDgsIDB4NDkpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg5NywgMHgzQSwgMHhDQSwgMHg1MCwgMHhGNiwgMHhDMiwgMHgxOSwgMHg4QyksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDE3LCAweEI5LCAweDlCLCAweDNFLCAweDczLCAweDk1LCAweDFELCAweDQ5KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QjYsIDB4NjAsIDB4NTksIDB4NDgsIDB4Q0IsIDB4RDgsIDB4RDYsIDB4QUEpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhGMCwgMHhCOSwgMHg2QywgMHg4OSwgMHhBQiwgMHg5OSwgMHhBOCwgMHhGOCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEVGLCAweEExLCAweDhCLCAweDRFLCAweDA2LCAweDE5LCAweEVDLCAweDk5KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NzAsIDB4OTUsIDB4MDQsIDB4Q0YsIDB4RDUsIDB4OTQsIDB4QjMsIDB4MDIpLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IGJyYWlucG9vbFA1MTJyMV9UXzE0X1lbXSA9IHsKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MjksIDB4MzUsIDB4OTMsIDB4N0MsIDB4QjMsIDB4QjgsIDB4OUUsIDB4MUIpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhDNCwgMHg0NSwgMHg1QywgMHg3RSwgMHhCRiwgMHg3NSwgMHg4MSwgMHgwRiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweERDLCAweEU4LCAweDI0LCAweERGLCAweEVDLCAweDJGLCAweDdELCAweEI5KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RjIsIDB4OEIsIDB4RDUsIDB4NkEsIDB4OUIsIDB4QTAsIDB4RTAsIDB4NEYpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgzMiwgMHhFMywgMHgyNywgMHg4MiwgMHhERSwgMHhERCwgMHhDQSwgMHg0QiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEE3LCAweDU3LCAweDU2LCAweDQ2LCAweDA1LCAweDA2LCAweDAxLCAweDJFKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NzQsIDB4MzUsIDB4QTcsIDB4NDcsIDB4RTIsIDB4NkIsIDB4MkMsIDB4NEYpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgzOCwgMHg5RCwgMHg0QywgMHhFQywgMHgxRiwgMHgxMSwgMHg3NSwgMHgyQiksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgYnJhaW5wb29sUDUxMnIxX1RfMTVfWFtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhBQywgMHhBQSwgMHg0MSwgMHhDMSwgMHhFOSwgMHgwRSwgMHhFOSwgMHhBQSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDBBLCAweENGLCAweDlDLCAweDRCLCAweEU4LCAweEVELCAweDBBLCAweDQ5KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4M0QsIDB4NzMsIDB4Q0EsIDB4MEMsIDB4NDYsIDB4MEEsIDB4OUMsIDB4RTQpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg5OSwgMHhFMSwgMHg5RSwgMHhCQywgMHhGRSwgMHg0NCwgMHg2MywgMHg2RCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDMxLCAweDQzLCAweDcxLCAweEVFLCAweEY4LCAweEMxLCAweDhDLCAweDVDKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NkEsIDB4NEIsIDB4RjAsIDB4NjksIDB4MjUsIDB4QkQsIDB4NzEsIDB4MUEpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhGRCwgMHg5QSwgMHhGRSwgMHg4MiwgMHhFNywgMHhDMSwgMHhDMSwgMHhFRSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEZDLCAweDVBLCAweDZFLCAweDVFLCAweDk3LCAweDZBLCAweDM1LCAweDhEKSwKLX07Ci1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBicmFpbnBvb2xQNTEycjFfVF8xNV9ZW10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEEyLCAweDE4LCAweDZDLCAweDdFLCAweEI4LCAweDlFLCAweDU3LCAweDMyKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MzUsIDB4QjksIDB4QzEsIDB4RDAsIDB4RkUsIDB4NzgsIDB4RkIsIDB4MzIpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg3QywgMHgwOCwgMHhBRSwgMHg0NiwgMHgzNCwgMHhFQSwgMHg3QSwgMHg3RiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEU4LCAweDFDLCAweDU2LCAweEE5LCAweDE4LCAweDM3LCAweEQ0LCAweDlFKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MjgsIDB4NjMsIDB4RTksIDB4MEEsIDB4QjYsIDB4MzgsIDB4M0MsIDB4QzEpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgzRSwgMHg0RiwgMHhBNCwgMHg2RSwgMHg4NSwgMHgzMSwgMHgyMywgMHg1MiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDBELCAweEFELCAweEM0LCAweEMzLCAweEIxLCAweDRCLCAweDFDLCAweDgyKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MzAsIDB4NTYsIDB4NEEsIDB4MzgsIDB4QjMsIDB4NkIsIDB4NkYsIDB4MkMpLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IGJyYWlucG9vbFA1MTJyMV9UXzE2X1hbXSA9IHsKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NjcsIDB4QzcsIDB4MTksIDB4REUsIDB4MjEsIDB4RUQsIDB4ODksIDB4RDApLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgyRiwgMHhCRSwgMHhBNiwgMHhBRSwgMHhFQiwgMHg5RCwgMHhBNywgMHgyQSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDA0LCAweDBFLCAweDEzLCAweDFFLCAweDg2LCAweDU3LCAweEMzLCAweDNCKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MUYsIDB4NEIsIDB4MzAsIDB4NDYsIDB4NTIsIDB4QzEsIDB4RUMsIDB4NTIpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg2RSwgMHhENSwgMHg0NCwgMHgzMSwgMHg5NiwgMHgzQiwgMHgyNiwgMHgyNyksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDc3LCAweDY4LCAweEE4LCAweDY3LCAweDc4LCAweDM5LCAweEU4LCAweDY4KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4OEUsIDB4NzgsIDB4QjcsIDB4REQsIDB4RjIsIDB4NTgsIDB4QjYsIDB4M0QpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg4MSwgMHgzQywgMHhCMywgMHgyNiwgMHhDNCwgMHgyQywgMHg4QywgMHhBNSksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgYnJhaW5wb29sUDUxMnIxX1RfMTZfWVtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhCOSwgMHgyNCwgMHhFNSwgMHg3MywgMHhFRSwgMHg5QSwgMHgwMiwgMHhBOSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEQ5LCAweDZBLCAweDY1LCAweDYwLCAweEYzLCAweDYyLCAweEUzLCAweEU5KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RkIsIDB4MDcsIDB4ODQsIDB4RTYsIDB4M0IsIDB4NDYsIDB4NjUsIDB4OUYpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhFMSwgMHg4RiwgMHgwQywgMHhCMCwgMHhFMSwgMHgwNCwgMHg4MiwgMHg5RCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEVCLCAweDEzLCAweEJGLCAweDNELCAweEEwLCAweDQ4LCAweEEyLCAweDc0KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MDgsIDB4MjYsIDB4NzYsIDB4NzQsIDB4QUIsIDB4MEIsIDB4MjksIDB4RTgpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgzMCwgMHg2RSwgMHg1RiwgMHgwMywgMHgzNCwgMHg3QywgMHgzOCwgMHhDRSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDRELCAweDcyLCAweEY5LCAweDNCLCAweDNDLCAweEE0LCAweEJDLCAweDdDKSwKLX07Ci1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBicmFpbnBvb2xQNTEycjFfVF8xN19YW10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDVDLCAweENFLCAweDE4LCAweDgwLCAweEI4LCAweDI0LCAweDQ1LCAweDgxKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RjEsIDB4MDksIDB4MDMsIDB4QjgsIDB4MDYsIDB4NjQsIDB4RjcsIDB4RUMpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhGMSwgMHgyNiwgMHhCMSwgMHgxMCwgMHg2RCwgMHg3MSwgMHgxMiwgMHgyRSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEFELCAweDEyLCAweEM2LCAweDZFLCAweDFFLCAweDZBLCAweEMzLCAweDgwKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RTUsIDB4RDMsIDB4MEEsIDB4REUsIDB4RDgsIDB4NkIsIDB4MDQsIDB4NUMpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg5NiwgMHg4NywgMHg1QiwgMHhBRSwgMHhEQiwgMHgzQywgMHhDMCwgMHhDNSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDhFLCAweEY1LCAweEY5LCAweEMxLCAweDlBLCAweDg5LCAweEJCLCAweDdFKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RUQsIDB4NjksIDB4NzIsIDB4OEIsIDB4QUUsIDB4MzIsIDB4MTMsIDB4MTEpLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IGJyYWlucG9vbFA1MTJyMV9UXzE3X1lbXSA9IHsKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RjksIDB4MTYsIDB4MDcsIDB4NTAsIDB4RkEsIDB4NEMsIDB4Q0YsIDB4RTgpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhGOCwgMHg1MCwgMHgyMSwgMHhFOSwgMHhERSwgMHhFQywgMHg3RSwgMHhERiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDdDLCAweDJGLCAweEU4LCAweDgzLCAweDMwLCAweDBCLCAweDY1LCAweDBFKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QTUsIDB4MEIsIDB4OTksIDB4QUMsIDB4QzksIDB4QkEsIDB4NkMsIDB4MkEpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhBNywgMHg1OSwgMHg1QSwgMHgwRCwgMHg3QiwgMHg5RSwgMHgwOCwgMHhBRCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDM0LCAweDkxLCAweEIyLCAweERDLCAweDkwLCAweENFLCAweDY3LCAweEVEKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RTMsIDB4OTMsIDB4NjAsIDB4MEMsIDB4RDcsIDB4MUYsIDB4MkYsIDB4MTcpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgxOSwgMHg3RiwgMHg5RCwgMHg0MCwgMHhGOCwgMHg3OCwgMHg3QSwgMHg1NCksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgYnJhaW5wb29sUDUxMnIxX1RfMThfWFtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgxMywgMHgyMiwgMHg5NSwgMHhFOCwgMHhFRiwgMHgzMSwgMHg1NywgMHgzNSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDJELCAweDg4LCAweDUzLCAweEZFLCAweEFGLCAweDdDLCAweDQ3LCAweDE0KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MEUsIDB4Q0UsIDB4Q0MsIDB4NzksIDB4RTgsIDB4OUYsIDB4OEMsIDB4QzQpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhEQiwgMHgxNiwgMHhERCwgMHg3NywgMHg2RSwgMHg4QSwgMHg3MywgMHg5NyksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEMwLCAweDA3LCAweDk3LCAweDIxLCAweDNCLCAweEY4LCAweDVGLCAweEE4KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QzYsIDB4QjUsIDB4RDIsIDB4ODEsIDB4ODQsIDB4RjAsIDB4RTcsIDB4OUYpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhDQiwgMHg4RiwgMHg3NSwgMHgwOSwgMHg2QSwgMHgwRSwgMHg1MywgMHhBRCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEU2LCAweDRGLCAweDcwLCAweDk3LCAweEM3LCAweEFDLCAweDdELCAweDNGKSwKLX07Ci1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBicmFpbnBvb2xQNTEycjFfVF8xOF9ZW10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEY5LCAweDNDLCAweDZBLCAweEI0LCAweDEwLCAweEE5LCAweEM4LCAweDFEKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RUUsIDB4QzUsIDB4RDYsIDB4NjksIDB4MTYsIDB4QjgsIDB4QUMsIDB4MjUpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhBQywgMHg0NCwgMHhEQywgMHhFQiwgMHg0OCwgMHg1NCwgMHg1RCwgMHg1RiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDZGLCAweDQ4LCAweDlCLCAweEQ3LCAweDcyLCAweDY5LCAweEE0LCAweDhBKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QjQsIDB4MEQsIDB4MzYsIDB4OUEsIDB4NjYsIDB4MEIsIDB4RUMsIDB4MjQpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhCRSwgMHhDNiwgMHhENCwgMHhCNiwgMHg2MCwgMHhFNSwgMHhDMywgMHgzQSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEJBLCAweDI5LCAweDQyLCAweEUwLCAweDlELCAweEZELCAweDdDLCAweDNFKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NDMsIDB4MTAsIDB4QkEsIDB4NTUsIDB4QkMsIDB4M0IsIDB4MzgsIDB4NUQpLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IGJyYWlucG9vbFA1MTJyMV9UXzE5X1hbXSA9IHsKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MjUsIDB4NjYsIDB4RkEsIDB4MDUsIDB4NzMsIDB4MDMsIDB4MUIsIDB4NjkpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgxMSwgMHhBNCwgMHg2NiwgMHgxMiwgMHg5NiwgMHg3QiwgMHgwMiwgMHg0QyksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDQ0LCAweEI1LCAweERFLCAweDZELCAweDk4LCAweEQxLCAweEQ1LCAweEE4KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RTIsIDB4RjUsIDB4NDQsIDB4QjgsIDB4OEUsIDB4RjYsIDB4OEMsIDB4MDUpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg2OCwgMHgxNSwgMHgyQiwgMHg3MiwgMHhCQywgMHg0OSwgMHhFNSwgMHhERiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDZDLCAweDQ0LCAweEQ3LCAweERGLCAweDhGLCAweEVCLCAweDhELCAweDgwKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MDUsIDB4NjQsIDB4ODgsIDB4QUEsIDB4QjcsIDB4RTQsIDB4NzAsIDB4MUQpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg5QywgMHgxNCwgMHhCQiwgMHhFOSwgMHg5QiwgMHhCOSwgMHg2NSwgMHg1RCksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgYnJhaW5wb29sUDUxMnIxX1RfMTlfWVtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg2NiwgMHg4RSwgMHg4OCwgMHhGNSwgMHhGMSwgMHhDMSwgMHg4OSwgMHhBMiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDE2LCAweDMwLCAweDUzLCAweEU2LCAweEZCLCAweDJELCAweDgyLCAweEI0KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QTcsIDB4RTQsIDB4RkYsIDB4QkEsIDB4MzEsIDB4NzksIDB4QUIsIDB4QzIpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg0NSwgMHgwOSwgMHhGNywgMHhCNywgMHgwOSwgMHg3OCwgMHg0QywgMHg5MCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDEwLCAweEFFLCAweEMyLCAweDQ0LCAweERDLCAweDE3LCAweDc4LCAweDQ3KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QzcsIDB4RDQsIDB4MTcsIDB4NDMsIDB4MTksIDB4NzQsIDB4OUUsIDB4MjMpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgxNSwgMHg2NCwgMHgzQiwgMHg3MywgMHhBMiwgMHg5OSwgMHgyNywgMHg3NiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDA1LCAweDc0LCAweDM2LCAweDVGLCAweEQzLCAweDE0LCAweEIxLCAweDMxKSwKLX07Ci1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBicmFpbnBvb2xQNTEycjFfVF8yMF9YW10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEFDLCAweDA3LCAweEFCLCAweEZELCAweDlCLCAweDAzLCAweEM1LCAweEQ1KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QzcsIDB4QkUsIDB4QjAsIDB4MUQsIDB4RjIsIDB4MEMsIDB4NzMsIDB4NzMpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg5OSwgMHhFNywgMHg3QiwgMHg4NywgMHhEMywgMHgzNCwgMHhGRCwgMHhFMiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDlBLCAweDI1LCAweDNELCAweEM3LCAweDM2LCAweDgzLCAweDUzLCAweERDKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MjIsIDB4N0MsIDB4Q0YsIDB4NjMsIDB4NTUsIDB4MTIsIDB4MTEsIDB4QjApLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhDMCwgMHgzNCwgMHg0RCwgMHgyNywgMHg5MiwgMHhBQywgMHgxOCwgMHgxNiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDk4LCAweDQyLCAweDYxLCAweDlELCAweDJFLCAweEZGLCAweDEzLCAweDE2KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RjQsIDB4REUsIDB4OTIsIDB4NjUsIDB4NTcsIDB4MEQsIDB4QkMsIDB4MEEpLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IGJyYWlucG9vbFA1MTJyMV9UXzIwX1lbXSA9IHsKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RUYsIDB4N0IsIDB4NkUsIDB4QzYsIDB4MkEsIDB4MjEsIDB4NzQsIDB4MEEpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgzNywgMHhBNywgMHg1MywgMHg0RCwgMHgyOSwgMHgzNiwgMHhFRiwgMHhFNSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEUxLCAweEQ2LCAweDQxLCAweEM3LCAweDk5LCAweEFELCAweDUwLCAweDUzKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4OTksIDB4QUMsIDB4NDEsIDB4OUYsIDB4RkIsIDB4NEMsIDB4ODYsIDB4RjEpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg4QiwgMHhCQiwgMHhFNiwgMHgyNSwgMHgyOCwgMHhBQSwgMHhFQiwgMHgxRSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDkyLCAweDA0LCAweEEyLCAweEMzLCAweEFBLCAweDA4LCAweDhBLCAweENDKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NUEsIDB4MkIsIDB4NUIsIDB4RTIsIDB4OEQsIDB4NzYsIDB4RUEsIDB4MzQpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhCMywgMHgzMywgMHhEMiwgMHgyMSwgMHg0RCwgMHg2MiwgMHhFMywgMHg4RSksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgYnJhaW5wb29sUDUxMnIxX1RfMjFfWFtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhGNiwgMHgwNiwgMHg4QiwgMHgyQiwgMHhDMiwgMHhDNCwgMHhCMSwgMHhEMiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEZBLCAweEY1LCAweEExLCAweEMwLCAweDAzLCAweDZBLCAweDI5LCAweDEyKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RjUsIDB4QTksIDB4RUYsIDB4NTUsIDB4QjYsIDB4MUEsIDB4OUYsIDB4NkIpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg5QiwgMHg1NCwgMHgzMiwgMHhCRSwgMHgwNiwgMHg0MywgMHhCNSwgMHhGRCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEY3LCAweEQ2LCAweEQ5LCAweDIwLCAweDg5LCAweEJFLCAweEQ0LCAweDFCKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RTgsIDB4MjYsIDB4OTUsIDB4MTAsIDB4Q0UsIDB4QjQsIDB4ODgsIDB4NzkpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhFNiwgMHhBNiwgMHgyNywgMHhBQywgMHgzMiwgMHhCQSwgMHhCRCwgMHhDNyksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEEzLCAweEE2LCAweEFFLCAweDlDLCAweDdCLCAweEJFLCAweEExLCAweDYzKSwKLX07Ci1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBicmFpbnBvb2xQNTEycjFfVF8yMV9ZW10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDhCLCAweENELCAweDRELCAweDNELCAweERGLCAweDk2LCAweEJCLCAweDdEKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NzcsIDB4QTcsIDB4MTEsIDB4MDYsIDB4Q0MsIDB4MEUsIDB4MzEsIDB4ODEpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgyMCwgMHhFNCwgMHhGNCwgMHhBRCwgMHg3QiwgMHg1RiwgMHhGMSwgMHhFRiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEU0LCAweDU0LCAweEJFLCAweEY0LCAweDhBLCAweDAzLCAweDQ3LCAweERGKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QjQsIDB4NTMsIDB4MDAsIDB4N0YsIDB4QjAsIDB4OEEsIDB4NjgsIDB4QTYpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhBMCwgMHgxNiwgMHhCMSwgMHg3MywgMHg2RiwgMHg1QiwgMHgwRSwgMHhDMyksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDJBLCAweDMyLCAweEUzLCAweDQzLCAweDY0LCAweDc1LCAweEZCLCAweEZCKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QTAsIDB4MTgsIDB4NTUsIDB4OEEsIDB4NEUsIDB4NkUsIDB4MzUsIDB4NTQpLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IGJyYWlucG9vbFA1MTJyMV9UXzIyX1hbXSA9IHsKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4ODAsIDB4OTcsIDB4MTUsIDB4MUUsIDB4Q0IsIDB4RjIsIDB4OUMsIDB4QTUpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgyQiwgMHhEMSwgMHhCQiwgMHhGMywgMHg3MCwgMHhBRCwgMHgxMywgMHhBRCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEQ4LCAweDk2LCAweEE0LCAweEM1LCAweDVFLCAweERBLCAweEQ1LCAweDU3KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MDcsIDB4ODEsIDB4RTksIDB4NjUsIDB4NjYsIDB4NzYsIDB4NDcsIDB4NDUpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhDOSwgMHgzNSwgMHg4NywgMHgwNiwgMHg3MywgMHhDRiwgMHgzNCwgMHhEMiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDVBLCAweDgxLCAweDE1LCAweDQyLCAweEEyLCAweDc5LCAweDVCLCAweDQyKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MDgsIDB4QTIsIDB4N0QsIDB4MDksIDB4MTQsIDB4NjQsIDB4QzYsIDB4QUUpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg1RSwgMHg2RCwgMHhDNCwgMHhFRCwgMHhGMSwgMHhENiwgMHhFOSwgMHgyNCksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgYnJhaW5wb29sUDUxMnIxX1RfMjJfWVtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhCNCwgMHhENSwgMHhCQiwgMHgyNSwgMHhBMywgMHhERCwgMHhBMywgMHg4OCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDQ2LCAweEYyLCAweDY4LCAweDY3LCAweDM5LCAweDhGLCAweDczLCAweDkzKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RjAsIDB4NzYsIDB4MjgsIDB4ODksIDB4QUQsIDB4MzIsIDB4RTAsIDB4REYpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhGOCwgMHg5MCwgMHhDQywgMHg1NywgMHg1OCwgMHhBQSwgMHhDOSwgMHg3NSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDVFLCAweEQ3LCAweDQzLCAweEQyLCAweENFLCAweDVFLCAweEEwLCAweDA4KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MzMsIDB4QjAsIDB4QjgsIDB4QTQsIDB4OUUsIDB4OTYsIDB4MjYsIDB4ODYpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg5NCwgMHg2MSwgMHgxRCwgMHhGMywgMHg2NSwgMHg1RSwgMHg2MCwgMHhDQSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEM3LCAweDFFLCAweDY1LCAweEVELCAweENGLCAweDA3LCAweDYwLCAweDIwKSwKLX07Ci1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBicmFpbnBvb2xQNTEycjFfVF8yM19YW10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEE0LCAweDMwLCAweDE3LCAweDhBLCAweDkxLCAweDg4LCAweDBBLCAweEE0KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MDUsIDB4N0QsIDB4MTgsIDB4QTQsIDB4QUMsIDB4NTksIDB4RkMsIDB4NUYpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhBNCwgMHgzMSwgMHg4QiwgMHgyNSwgMHg2NSwgMHgzOSwgMHg5QSwgMHhEQyksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDE1LCAweDE2LCAweDRCLCAweDY4LCAweEJBLCAweDU5LCAweDEzLCAweDJGKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4OEQsIDB4RkQsIDB4RDMsIDB4QzUsIDB4NTYsIDB4QzksIDB4OEMsIDB4NUUpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhCQywgMHhDNiwgMHg5RiwgMHhGNCwgMHhFNiwgMHhGNywgMHhCNCwgMHgwMSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDJELCAweDdDLCAweDAzLCAweDAwLCAweDI2LCAweDlGLCAweEQ4LCAweDdCKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MjQsIDB4MUQsIDB4NkUsIDB4MDAsIDB4QjksIDB4MDAsIDB4NkUsIDB4OTMpLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IGJyYWlucG9vbFA1MTJyMV9UXzIzX1lbXSA9IHsKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NzUsIDB4NjMsIDB4REEsIDB4MDMsIDB4MkIsIDB4RDUsIDB4MEIsIDB4RkUpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg0NiwgMHhGQywgMHhFMiwgMHhDOCwgMHg0NywgMHhGMCwgMHhBRSwgMHhGMiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDUxLCAweDRDLCAweEY3LCAweDUwLCAweDBDLCAweDQ4LCAweDA2LCAweDJBKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4REYsIDB4MkIsIDB4MzIsIDB4OTgsIDB4MEUsIDB4N0UsIDB4NjEsIDB4NDEpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg1RCwgMHgwMiwgMHgyNywgMHhGRSwgMHg3NSwgMHg4NiwgMHhERiwgMHgyNCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDJCLCAweDMwLCAweEIxLCAweDIyLCAweDMyLCAweDFCLCAweEZFLCAweDI0KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QzIsIDB4MjcsIDB4RjcsIDB4NzgsIDB4NkYsIDB4RDcsIDB4RkQsIDB4RTQpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhBMCwgMHg3OCwgMHhDQywgMHhFQSwgMHhDMCwgMHg1MCwgMHgyNCwgMHg0NCksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgYnJhaW5wb29sUDUxMnIxX1RfMjRfWFtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgzNywgMHgyQiwgMHg0RiwgMHg3RiwgMHg1OCwgMHhFNiwgMHhDMiwgMHg3MCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDM3LCAweDQzLCAweEQ1LCAweEE3LCAweDM1LCAweDNDLCAweDgwLCAweEI4KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MUEsIDB4NkQsIDB4NEIsIDB4MTIsIDB4MDAsIDB4N0IsIDB4RTYsIDB4QTYpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgzNywgMHgxNSwgMHhCRCwgMHhEMCwgMHg5QiwgMHhDQSwgMHhBQSwgMHg4MSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweENGLCAweENFLCAweDlDLCAweEUzLCAweDhCLCAweDYwLCAweDdBLCAweDUzKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MEMsIDB4REEsIDB4NEIsIDB4MDMsIDB4QTcsIDB4OEQsIDB4NDMsIDB4MjIpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg1NywgMHhBRiwgMHgwMCwgMHgyQiwgMHgzMiwgMHhGMCwgMHgyMiwgMHg2OCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweERDLCAweEQ5LCAweDk5LCAweDk5LCAweEJFLCAweDQzLCAweDk5LCAweDNFKSwKLX07Ci1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBicmFpbnBvb2xQNTEycjFfVF8yNF9ZW10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDFGLCAweDcxLCAweDQxLCAweEY0LCAweEI1LCAweEZELCAweERELCAweDM2KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4OUQsIDB4RTIsIDB4MjAsIDB4NEMsIDB4RDEsIDB4MkUsIDB4MUYsIDB4MDYpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg5NiwgMHg0MywgMHg0OCwgMHg3NiwgMHg4QSwgMHg0OSwgMHhBQywgMHg4NyksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDBDLCAweDFBLCAweDU1LCAweEE4LCAweEEzLCAweEQ0LCAweDU3LCAweDc1KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4N0MsIDB4QTYsIDB4ODQsIDB4MzksIDB4QzksIDB4MTMsIDB4QkIsIDB4NjApLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhEOSwgMHhGQSwgMHhBOSwgMHg3MCwgMHhERSwgMHg4MywgMHhERCwgMHhDOSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEVDLCAweEM5LCAweEQ5LCAweDNFLCAweDQ0LCAweDkxLCAweDY4LCAweDdCKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QjYsIDB4OUYsIDB4ODUsIDB4NkQsIDB4RjcsIDB4NTQsIDB4MzYsIDB4ODIpLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IGJyYWlucG9vbFA1MTJyMV9UXzI1X1hbXSA9IHsKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NjgsIDB4NkIsIDB4QTYsIDB4QTMsIDB4RTUsIDB4RDQsIDB4NDYsIDB4REIpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgyMywgMHgzRSwgMHhEQywgMHg4NCwgMHg3QywgMHg3QiwgMHgyNCwgMHgzNCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDE0LCAweEVELCAweDdGLCAweDg2LCAweDA3LCAweDZDLCAweDU3LCAweENBKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4OTUsIDB4MDYsIDB4RkUsIDB4NTIsIDB4MTIsIDB4NzksIDB4NjksIDB4NTYpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg4NCwgMHhEMSwgMHg0NCwgMHg1RiwgMHgyMSwgMHgzQSwgMHhDMywgMHg4NCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDVFLCAweEQ5LCAweDRBLCAweEMwLCAweDc1LCAweEFCLCAweDE3LCAweEFDKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RkYsIDB4ODEsIDB4OTQsIDB4QjYsIDB4ODAsIDB4NkIsIDB4NkYsIDB4QzMpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgwNywgMHhCRSwgMHg4RSwgMHhBNSwgMHhBQSwgMHhCQywgMHgxRSwgMHgzRSksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgYnJhaW5wb29sUDUxMnIxX1RfMjVfWVtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg4OSwgMHhDNywgMHg4NSwgMHhBNiwgMHg1OSwgMHg5QiwgMHhCMSwgMHg1MiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDFDLCAweENFLCAweDQwLCAweEQxLCAweEZCLCAweERGLCAweDk0LCAweEY3KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MTgsIDB4QjgsIDB4NUUsIDB4QkYsIDB4NDUsIDB4QTgsIDB4MkQsIDB4MkQpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg5OCwgMHg5QywgMHgwNiwgMHgxQiwgMHhBOSwgMHg1NywgMHhCOSwgMHg3OSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDUzLCAweEU5LCAweENFLCAweEEyLCAweEQzLCAweDc0LCAweEExLCAweDNDKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QUEsIDB4NUYsIDB4MzQsIDB4NzgsIDB4REIsIDB4QUUsIDB4M0EsIDB4MTQpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg3RCwgMHgzMiwgMHg4NCwgMHgzRSwgMHg2OCwgMHg2QSwgMHg0MywgMHgwRiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDhDLCAweEJDLCAweDM5LCAweDM2LCAweEE0LCAweEM1LCAweEJCLCAweDExKSwKLX07Ci1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBicmFpbnBvb2xQNTEycjFfVF8yNl9YW10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDhDLCAweDA3LCAweEEyLCAweEI1LCAweEM5LCAweDBGLCAweDRELCAweDBGKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RTMsIDB4MUQsIDB4NjcsIDB4RTYsIDB4RjEsIDB4NDYsIDB4RUIsIDB4NzEpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhENywgMHg0MSwgMHgyMywgMHg5NSwgMHhFNywgMHhFMCwgMHgxMCwgMHhERCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEJFLCAweDY5LCAweEZFLCAweDY4LCAweDhDLCAweEM2LCAweDVGLCAweEI2KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RTMsIDB4QjksIDB4MkIsIDB4M0QsIDB4RDIsIDB4NEYsIDB4RDgsIDB4MUEpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhBMywgMHgwOSwgMHhGNSwgMHg1RiwgMHhDRiwgMHhGNiwgMHg5MSwgMHg1NyksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDY1LCAweDE1LCAweDQyLCAweDZCLCAweDZELCAweEI1LCAweEYzLCAweEI2KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QkYsIDB4NTYsIDB4OUQsIDB4QzUsIDB4RkYsIDB4Q0EsIDB4MTMsIDB4OUIpLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IGJyYWlucG9vbFA1MTJyMV9UXzI2X1lbXSA9IHsKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NEQsIDB4MzgsIDB4RTYsIDB4MjMsIDB4NjMsIDB4NDgsIDB4M0MsIDB4Q0EpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhEMiwgMHg2OCwgMHgzQywgMHhEMSwgMHgzQiwgMHhFOSwgMHgzQiwgMHg4MiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEI1LCAweDA4LCAweDU0LCAweDQ5LCAweEQxLCAweDQ2LCAweDQ1LCAweDEzKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MDcsIDB4NzAsIDB4NTIsIDB4NkUsIDB4NzksIDB4QzQsIDB4NUUsIDB4OTUpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgzNiwgMHhERiwgMHhFOCwgMHg1QSwgMHgzMiwgMHg4MSwgMHhEQSwgMHhEMyksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDNDLCAweDJELCAweDk0LCAweDVCLCAweEI1LCAweDM1LCAweDlGLCAweDBBKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MkEsIDB4MTIsIDB4OEQsIDB4QzMsIDB4MzYsIDB4MzYsIDB4QjIsIDB4MkEpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgzOSwgMHgyRiwgMHgyMiwgMHgzOCwgMHg1QiwgMHgxOCwgMHg0QywgMHgzNSksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgYnJhaW5wb29sUDUxMnIxX1RfMjdfWFtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgxMCwgMHhDMSwgMHgyMiwgMHgwRSwgMHhGMCwgMHg3MywgMHgxMSwgMHgwNSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEIyLCAweEFFLCAweEE0LCAweDU2LCAweDE4LCAweDYxLCAweDY2LCAweDEyKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NzksIDB4RkIsIDB4NzIsIDB4MDgsIDB4ODQsIDB4MzgsIDB4NTEsIDB4QjApLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhEQSwgMHg4NiwgMHhBOCwgMHhCOSwgMHgzMSwgMHg5OSwgMHgyOSwgMHhDMyksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDhBLCAweEZCLCAweEMzLCAweDQyLCAweEIzLCAweEM3LCAweDZGLCAweDNBKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RDgsIDB4RjgsIDB4RTEsIDB4MDksIDB4QkUsIDB4NzUsIDB4QjAsIDB4MjIpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg1QSwgMHg3RCwgMHhGRiwgMHhGNCwgMHg5OSwgMHhGQywgMHgxMywgMHhBQiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEU2LCAweDFCLCAweDg0LCAweDgxLCAweDQyLCAweDIyLCAweEM2LCAweDNEKSwKLX07Ci1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBicmFpbnBvb2xQNTEycjFfVF8yN19ZW10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDIxLCAweEUwLCAweDM3LCAweEE0LCAweEEwLCAweDJGLCAweDM4LCAweDdGKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RDAsIDB4M0QsIDB4QjcsIDB4NDAsIDB4MkYsIDB4MzksIDB4M0MsIDB4N0EpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg3QSwgMHgzQiwgMHg4QSwgMHg1MSwgMHhBRSwgMHg0MCwgMHg0OSwgMHg3QSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDM2LCAweDIwLCAweDlGLCAweERELCAweEE5LCAweEQwLCAweDc3LCAweEM3KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NzgsIDB4MUQsIDB4NjQsIDB4REEsIDB4QTAsIDB4NTMsIDB4QzcsIDB4N0QpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgzNywgMHg3QiwgMHg2NiwgMHg1NSwgMHg5NCwgMHhEMSwgMHg1MSwgMHg0NCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDBFLCAweEE5LCAweEI1LCAweDVCLCAweDM4LCAweDM1LCAweDQwLCAweEMwKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QzgsIDB4QzksIDB4MEYsIDB4RjAsIDB4NzMsIDB4NzksIDB4NDMsIDB4NjEpLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IGJyYWlucG9vbFA1MTJyMV9UXzI4X1hbXSA9IHsKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MTAsIDB4NDcsIDB4NDUsIDB4NjksIDB4ODAsIDB4NzIsIDB4NzIsIDB4NDIpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg3MCwgMHgxMSwgMHg5OSwgMHg1OSwgMHhEQiwgMHg0OCwgMHg4MCwgMHgzOSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDc1LCAweDZFLCAweDNELCAweEZDLCAweDM3LCAweDE1LCAweEY0LCAweEJGKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MTcsIDB4QkIsIDB4NUIsIDB4QTYsIDB4MzUsIDB4OEQsIDB4MjgsIDB4MjApLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhBQiwgMHgxQSwgMHgzQiwgMHgyQywgMHg4RiwgMHhEMywgMHhBQSwgMHgyRCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDU1LCAweDFDLCAweDFBLCAweEY4LCAweDAyLCAweEQ5LCAweDdCLCAweDQxKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QUYsIDB4NjksIDB4QUMsIDB4RjgsIDB4NTQsIDB4MzEsIDB4MTQsIDB4QTEpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg0MSwgMHg4QSwgMHhFNiwgMHhERSwgMHg1OCwgMHhCOSwgMHhDNCwgMHg3QSksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgYnJhaW5wb29sUDUxMnIxX1RfMjhfWVtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg1NywgMHg4MywgMHg1MiwgMHhGRSwgMHhGOSwgMHg3QiwgMHhFOSwgMHgxRiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDA3LCAweEEyLCAweDU1LCAweDQ2LCAweDE1LCAweDQ5LCAweEMxLCAweDNBKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MUQsIDB4QkMsIDB4NUMsIDB4OTEsIDB4QkQsIDB4QjksIDB4OUMsIDB4RjQpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhCQiwgMHhGRCwgMHhCMSwgMHg0RSwgMHg1RiwgMHg3NCwgMHhFRSwgMHg1MyksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEIxLCAweDhCLCAweEQ4LCAweDhCLCAweDE3LCAweDczLCAweDFCLCAweDk2KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MjIsIDB4OTIsIDB4RDcsIDB4NjcsIDB4MDYsIDB4QUQsIDB4MjUsIDB4Q0QpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgwMSwgMHgwRiwgMHg4MCwgMHgyNCwgMHhFMiwgMHgyNywgMHg1RiwgMHg4QiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDYxLCAweDFDLCAweENFLCAweEQwLCAweDY3LCAweENBLCAweEQ0LCAweDBCKSwKLX07Ci1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBicmFpbnBvb2xQNTEycjFfVF8yOV9YW10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDg3LCAweEYxLCAweERELCAweDMzLCAweDY2LCAweEY5LCAweDA1LCAweEQ2KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MUQsIDB4RTUsIDB4NkIsIDB4NzksIDB4QkQsIDB4NDgsIDB4NDIsIDB4QUEpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhEMSwgMHgxNCwgMHg1MiwgMHhFMywgMHg1MywgMHhCNCwgMHg1MCwgMHhENCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDMyLCAweDg0LCAweDZDLCAweENGLCAweERBLCAweEIyLCAweDIwLCAweDBBKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NzAsIDB4RDYsIDB4MUEsIDB4RTUsIDB4RTIsIDB4MjksIDB4NzAsIDB4Q0UpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhENSwgMHg2MSwgMHhGRSwgMHhCQiwgMHgyMSwgMHg4MiwgMHhEMSwgMHhGRSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDJDLCAweEYwLCAweDlDLCAweDhCLCAweDFBLCAweDQyLCAweDMwLCAweDA2KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NDMsIDB4RDYsIDB4NDksIDB4ODEsIDB4OTIsIDB4RjEsIDB4RDAsIDB4OTApLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IGJyYWlucG9vbFA1MTJyMV9UXzI5X1lbXSA9IHsKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QzksIDB4OTEsIDB4OTMsIDB4NkEsIDB4QTYsIDB4MjIsIDB4RTksIDB4RDYpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgwOSwgMHhEQywgMHhDMywgMHg2OSwgMHgxMSwgMHg5NSwgMHg3RCwgMHhFQyksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDFDLCAweEEzLCAweDlELCAweDg3LCAweDVFLCAweDY0LCAweDQxLCAweEEyKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QkUsIDB4ODcsIDB4NUEsIDB4MTUsIDB4QkQsIDB4NkUsIDB4M0MsIDB4OEQpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhEMCwgMHg4RCwgMHg1MCwgMHhDQywgMHhDRiwgMHhCNywgMHg4RiwgMHgwQiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDM4LCAweDY1LCAweENELCAweDMxLCAweDMwLCAweEYxLCAweDY4LCAweDEzKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MTAsIDB4NUMsIDB4NjYsIDB4NjcsIDB4OTIsIDB4MzAsIDB4NTcsIDB4OTUpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgyMywgMHg5QiwgMHgwMSwgMHgzRCwgMHgyMCwgMHg4QiwgMHhEMSwgMHgwRCksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgYnJhaW5wb29sUDUxMnIxX1RfMzBfWFtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhBQiwgMHhDMCwgMHhFNiwgMHg0RiwgMHhERSwgMHg2MiwgMHhBQiwgMHhCMyksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEE0LCAweDQ4LCAweEIzLCAweDFDLCAweDBGLCAweDE2LCAweDkzLCAweDQ1KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NzcsIDB4NjMsIDB4QkQsIDB4MUYsIDB4MTYsIDB4NTAsIDB4NTYsIDB4OTgpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg1RCwgMHgwNiwgMHhCQywgMHhFOSwgMHgyNywgMHgxQywgMHg5QSwgMHg3QiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEY4LCAweEZFLCAweDIxLCAweEM1LCAweDM5LCAweDU1LCAweEUxLCAweEZEKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RjYsIDB4QTgsIDB4RDAsIDB4OTYsIDB4MEUsIDB4QjUsIDB4QjIsIDB4ODQpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgzRCwgMHhFNywgMHg0QiwgMHhGMywgMHgxMSwgMHgwQywgMHhDOSwgMHg1QiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDQzLCAweDNBLCAweEM0LCAweDg3LCAweDcxLCAweEVFLCAweEZBLCAweDE4KSwKLX07Ci1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBicmFpbnBvb2xQNTEycjFfVF8zMF9ZW10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEE3LCAweDc3LCAweEVFLCAweDgxLCAweDVFLCAweDk2LCAweEVBLCAweDRCKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RUUsIDB4REYsIDB4QTksIDB4RjQsIDB4NEYsIDB4N0MsIDB4QjIsIDB4NDMpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg5RiwgMHhENCwgMHhERiwgMHgzNSwgMHg2MywgMHg0NywgMHgyNSwgMHg4QSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEE1LCAweDNELCAweEZGLCAweEE0LCAweDAyLCAweEMzLCAweDk1LCAweDExKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RDUsIDB4MTAsIDB4NzgsIDB4RDEsIDB4MkIsIDB4QjcsIDB4QkUsIDB4MEUpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgwQSwgMHhFOSwgMHg1NywgMHhGOSwgMHhFMCwgMHhEOCwgMHhGQywgMHhCQyksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEYzLCAweEM0LCAweDAxLCAweEQ2LCAweEI0LCAweEU3LCAweDc4LCAweEUyKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MDIsIDB4NkMsIDB4QjksIDB4MTMsIDB4QTQsIDB4RTgsIDB4NkQsIDB4NkYpLAotfTsKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IGJyYWlucG9vbFA1MTJyMV9UXzMxX1hbXSA9IHsKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RTgsIDB4QjAsIDB4QzksIDB4Q0QsIDB4QkYsIDB4QTIsIDB4MUUsIDB4NjMpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhERCwgMHg0RiwgMHg4NiwgMHgyMiwgMHg5QiwgMHhFQSwgMHhFOCwgMHhCQiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDUwLCAweDQ2LCAweERGLCAweDQzLCAweEI5LCAweDgyLCAweDJELCAweDBBKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MDcsIDB4MzIsIDB4RjEsIDB4NEUsIDB4OTUsIDB4NDEsIDB4QUUsIDB4OEUpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg1MiwgMHg5MywgMHgyNiwgMHhGQywgMHhEMywgMHg5MCwgMHhEQywgMHhFQiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDA0LCAweDA1LCAweDQ1LCAweENBLCAweEY5LCAweDVBLCAweDg5LCAweDkzKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QzUsIDB4ODIsIDB4NjMsIDB4NEUsIDB4NTUsIDB4MUQsIDB4M0EsIDB4MDgpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg3QywgMHg2OSwgMHg1MiwgMHg0OSwgMHhFOSwgMHhFRCwgMHg1NywgMHgzNCksCi19Owotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgYnJhaW5wb29sUDUxMnIxX1RfMzFfWVtdID0gewotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg3MCwgMHg2NCwgMHhFOSwgMHhBQywgMHg0QywgMHg0QSwgMHhFQSwgMHgyNSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEU5LCAweEU5LCAweDBCLCAweDk5LCAweEU3LCAweEY5LCAweEE5LCAweDJDKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MjQsIDB4MEMsIDB4QzEsIDB4RjQsIDB4OEQsIDB4MDcsIDB4QjYsIDB4QjEpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhBRCwgMHg2OCwgMHhGQSwgMHgzNSwgMHhFNCwgMHg5RSwgMHhBRSwgMHhEOSksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEYwLCAweDJELCAweDFBLCAweDEzLCAweDhFLCAweDAyLCAweEUyLCAweDYzKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MjcsIDB4MzgsIDB4MjgsIDB4ODYsIDB4NDYsIDB4N0IsIDB4M0EsIDB4RTEpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgzRiwgMHg0QywgMHg2NCwgMHg1OSwgMHgwQSwgMHhGOSwgMHgwMiwgMHhDNCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDQxLCAweDRGLCAweDIzLCAweEEyLCAweEMzLCAweEQ1LCAweEVGLCAweDQyKSwKLX07Ci1zdGF0aWMgY29uc3QgbWJlZHRsc19lY3BfcG9pbnQgYnJhaW5wb29sUDUxMnIxX1RbMzJdID0gewotICAgIEVDUF9QT0lOVF9JTklUX1hZX1oxKGJyYWlucG9vbFA1MTJyMV9UXzBfWCwgYnJhaW5wb29sUDUxMnIxX1RfMF9ZKSwKLSAgICBFQ1BfUE9JTlRfSU5JVF9YWV9aMChicmFpbnBvb2xQNTEycjFfVF8xX1gsIGJyYWlucG9vbFA1MTJyMV9UXzFfWSksCi0gICAgRUNQX1BPSU5UX0lOSVRfWFlfWjAoYnJhaW5wb29sUDUxMnIxX1RfMl9YLCBicmFpbnBvb2xQNTEycjFfVF8yX1kpLAotICAgIEVDUF9QT0lOVF9JTklUX1hZX1owKGJyYWlucG9vbFA1MTJyMV9UXzNfWCwgYnJhaW5wb29sUDUxMnIxX1RfM19ZKSwKLSAgICBFQ1BfUE9JTlRfSU5JVF9YWV9aMChicmFpbnBvb2xQNTEycjFfVF80X1gsIGJyYWlucG9vbFA1MTJyMV9UXzRfWSksCi0gICAgRUNQX1BPSU5UX0lOSVRfWFlfWjAoYnJhaW5wb29sUDUxMnIxX1RfNV9YLCBicmFpbnBvb2xQNTEycjFfVF81X1kpLAotICAgIEVDUF9QT0lOVF9JTklUX1hZX1owKGJyYWlucG9vbFA1MTJyMV9UXzZfWCwgYnJhaW5wb29sUDUxMnIxX1RfNl9ZKSwKLSAgICBFQ1BfUE9JTlRfSU5JVF9YWV9aMChicmFpbnBvb2xQNTEycjFfVF83X1gsIGJyYWlucG9vbFA1MTJyMV9UXzdfWSksCi0gICAgRUNQX1BPSU5UX0lOSVRfWFlfWjAoYnJhaW5wb29sUDUxMnIxX1RfOF9YLCBicmFpbnBvb2xQNTEycjFfVF84X1kpLAotICAgIEVDUF9QT0lOVF9JTklUX1hZX1owKGJyYWlucG9vbFA1MTJyMV9UXzlfWCwgYnJhaW5wb29sUDUxMnIxX1RfOV9ZKSwKLSAgICBFQ1BfUE9JTlRfSU5JVF9YWV9aMChicmFpbnBvb2xQNTEycjFfVF8xMF9YLCBicmFpbnBvb2xQNTEycjFfVF8xMF9ZKSwKLSAgICBFQ1BfUE9JTlRfSU5JVF9YWV9aMChicmFpbnBvb2xQNTEycjFfVF8xMV9YLCBicmFpbnBvb2xQNTEycjFfVF8xMV9ZKSwKLSAgICBFQ1BfUE9JTlRfSU5JVF9YWV9aMChicmFpbnBvb2xQNTEycjFfVF8xMl9YLCBicmFpbnBvb2xQNTEycjFfVF8xMl9ZKSwKLSAgICBFQ1BfUE9JTlRfSU5JVF9YWV9aMChicmFpbnBvb2xQNTEycjFfVF8xM19YLCBicmFpbnBvb2xQNTEycjFfVF8xM19ZKSwKLSAgICBFQ1BfUE9JTlRfSU5JVF9YWV9aMChicmFpbnBvb2xQNTEycjFfVF8xNF9YLCBicmFpbnBvb2xQNTEycjFfVF8xNF9ZKSwKLSAgICBFQ1BfUE9JTlRfSU5JVF9YWV9aMChicmFpbnBvb2xQNTEycjFfVF8xNV9YLCBicmFpbnBvb2xQNTEycjFfVF8xNV9ZKSwKLSAgICBFQ1BfUE9JTlRfSU5JVF9YWV9aMChicmFpbnBvb2xQNTEycjFfVF8xNl9YLCBicmFpbnBvb2xQNTEycjFfVF8xNl9ZKSwKLSAgICBFQ1BfUE9JTlRfSU5JVF9YWV9aMChicmFpbnBvb2xQNTEycjFfVF8xN19YLCBicmFpbnBvb2xQNTEycjFfVF8xN19ZKSwKLSAgICBFQ1BfUE9JTlRfSU5JVF9YWV9aMChicmFpbnBvb2xQNTEycjFfVF8xOF9YLCBicmFpbnBvb2xQNTEycjFfVF8xOF9ZKSwKLSAgICBFQ1BfUE9JTlRfSU5JVF9YWV9aMChicmFpbnBvb2xQNTEycjFfVF8xOV9YLCBicmFpbnBvb2xQNTEycjFfVF8xOV9ZKSwKLSAgICBFQ1BfUE9JTlRfSU5JVF9YWV9aMChicmFpbnBvb2xQNTEycjFfVF8yMF9YLCBicmFpbnBvb2xQNTEycjFfVF8yMF9ZKSwKLSAgICBFQ1BfUE9JTlRfSU5JVF9YWV9aMChicmFpbnBvb2xQNTEycjFfVF8yMV9YLCBicmFpbnBvb2xQNTEycjFfVF8yMV9ZKSwKLSAgICBFQ1BfUE9JTlRfSU5JVF9YWV9aMChicmFpbnBvb2xQNTEycjFfVF8yMl9YLCBicmFpbnBvb2xQNTEycjFfVF8yMl9ZKSwKLSAgICBFQ1BfUE9JTlRfSU5JVF9YWV9aMChicmFpbnBvb2xQNTEycjFfVF8yM19YLCBicmFpbnBvb2xQNTEycjFfVF8yM19ZKSwKLSAgICBFQ1BfUE9JTlRfSU5JVF9YWV9aMChicmFpbnBvb2xQNTEycjFfVF8yNF9YLCBicmFpbnBvb2xQNTEycjFfVF8yNF9ZKSwKLSAgICBFQ1BfUE9JTlRfSU5JVF9YWV9aMChicmFpbnBvb2xQNTEycjFfVF8yNV9YLCBicmFpbnBvb2xQNTEycjFfVF8yNV9ZKSwKLSAgICBFQ1BfUE9JTlRfSU5JVF9YWV9aMChicmFpbnBvb2xQNTEycjFfVF8yNl9YLCBicmFpbnBvb2xQNTEycjFfVF8yNl9ZKSwKLSAgICBFQ1BfUE9JTlRfSU5JVF9YWV9aMChicmFpbnBvb2xQNTEycjFfVF8yN19YLCBicmFpbnBvb2xQNTEycjFfVF8yN19ZKSwKLSAgICBFQ1BfUE9JTlRfSU5JVF9YWV9aMChicmFpbnBvb2xQNTEycjFfVF8yOF9YLCBicmFpbnBvb2xQNTEycjFfVF8yOF9ZKSwKLSAgICBFQ1BfUE9JTlRfSU5JVF9YWV9aMChicmFpbnBvb2xQNTEycjFfVF8yOV9YLCBicmFpbnBvb2xQNTEycjFfVF8yOV9ZKSwKLSAgICBFQ1BfUE9JTlRfSU5JVF9YWV9aMChicmFpbnBvb2xQNTEycjFfVF8zMF9YLCBicmFpbnBvb2xQNTEycjFfVF8zMF9ZKSwKLSAgICBFQ1BfUE9JTlRfSU5JVF9YWV9aMChicmFpbnBvb2xQNTEycjFfVF8zMV9YLCBicmFpbnBvb2xQNTEycjFfVF8zMV9ZKSwKLX07Ci0jZWxzZQotI2RlZmluZSBicmFpbnBvb2xQNTEycjFfVCBOVUxMCi0jZW5kaWYKLSNlbmRpZiAvKiBNQkVEVExTX0VDUF9EUF9CUDUxMlIxX0VOQUJMRUQgKi8KLQotCi0jaWYgZGVmaW5lZChFQ1BfTE9BRF9HUk9VUCkgfHwgZGVmaW5lZChNQkVEVExTX0VDUF9EUF9DVVJWRTI1NTE5X0VOQUJMRUQpIHx8IFwKLSAgICBkZWZpbmVkKE1CRURUTFNfRUNQX0RQX0NVUlZFNDQ4X0VOQUJMRUQpCi0vKgotICogQ3JlYXRlIGFuIE1QSSBmcm9tIGVtYmVkZGVkIGNvbnN0YW50cwotICogKGFzc3VtZXMgbGVuIGlzIGFuIGV4YWN0IG11bHRpcGxlIG9mIHNpemVvZihtYmVkdGxzX21waV91aW50KSBhbmQKLSAqIGxlbiA8IDEwNDg1NzYpCi0gKi8KLXN0YXRpYyBpbmxpbmUgdm9pZCBlY3BfbXBpX2xvYWQobWJlZHRsc19tcGkgKlgsIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgKnAsIHNpemVfdCBsZW4pCi17Ci0gICAgWC0+cyA9IDE7Ci0gICAgWC0+biA9ICh1bnNpZ25lZCBzaG9ydCkgKGxlbiAvIHNpemVvZihtYmVkdGxzX21waV91aW50KSk7Ci0gICAgWC0+cCA9IChtYmVkdGxzX21waV91aW50ICopIHA7Ci19Ci0jZW5kaWYKLQotI2lmIGRlZmluZWQoRUNQX0xPQURfR1JPVVApCi0vKgotICogU2V0IGFuIE1QSSB0byBzdGF0aWMgdmFsdWUgMQotICovCi1zdGF0aWMgaW5saW5lIHZvaWQgZWNwX21waV9zZXQxKG1iZWR0bHNfbXBpICpYKQotewotICAgIFgtPnMgPSAxOwotICAgIFgtPm4gPSAxOwotICAgIFgtPnAgPSBtcGlfb25lOwotfQotCi0vKgotICogTWFrZSBncm91cCBhdmFpbGFibGUgZnJvbSBlbWJlZGRlZCBjb25zdGFudHMKLSAqLwotc3RhdGljIGludCBlY3BfZ3JvdXBfbG9hZChtYmVkdGxzX2VjcF9ncm91cCAqZ3JwLAotICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBtYmVkdGxzX21waV91aW50ICpwLCAgc2l6ZV90IHBsZW4sCi0gICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgKmEsICBzaXplX3QgYWxlbiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbWJlZHRsc19tcGlfdWludCAqYiwgIHNpemVfdCBibGVuLAotICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBtYmVkdGxzX21waV91aW50ICpneCwgc2l6ZV90IGd4bGVuLAotICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBtYmVkdGxzX21waV91aW50ICpneSwgc2l6ZV90IGd5bGVuLAotICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBtYmVkdGxzX21waV91aW50ICpuLCAgc2l6ZV90IG5sZW4sCi0gICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IG1iZWR0bHNfZWNwX3BvaW50ICpUKQotewotICAgIGVjcF9tcGlfbG9hZCgmZ3JwLT5QLCBwLCBwbGVuKTsKLSAgICBpZiAoYSAhPSBOVUxMKSB7Ci0gICAgICAgIGVjcF9tcGlfbG9hZCgmZ3JwLT5BLCBhLCBhbGVuKTsKLSAgICB9Ci0gICAgZWNwX21waV9sb2FkKCZncnAtPkIsIGIsIGJsZW4pOwotICAgIGVjcF9tcGlfbG9hZCgmZ3JwLT5OLCBuLCBubGVuKTsKLQotICAgIGVjcF9tcGlfbG9hZCgmZ3JwLT5HLlgsIGd4LCBneGxlbik7Ci0gICAgZWNwX21waV9sb2FkKCZncnAtPkcuWSwgZ3ksIGd5bGVuKTsKLSAgICBlY3BfbXBpX3NldDEoJmdycC0+Ry5aKTsKLQotICAgIGdycC0+cGJpdHMgPSBtYmVkdGxzX21waV9iaXRsZW4oJmdycC0+UCk7Ci0gICAgZ3JwLT5uYml0cyA9IG1iZWR0bHNfbXBpX2JpdGxlbigmZ3JwLT5OKTsKLQotICAgIGdycC0+aCA9IDE7Ci0KLSAgICBncnAtPlQgPSAobWJlZHRsc19lY3BfcG9pbnQgKikgVDsKLSAgICAvKgotICAgICAqIFNldCBUX3NpemUgdG8gMCB0byBwcmV2ZW50IFQgZnJlZSBieSBtYmVkdGxzX2VjcF9ncm91cF9mcmVlLgotICAgICAqLwotICAgIGdycC0+VF9zaXplID0gMDsKLQotICAgIHJldHVybiAwOwotfQotI2VuZGlmIC8qIEVDUF9MT0FEX0dST1VQICovCi0KLSNpZiBkZWZpbmVkKE1CRURUTFNfRUNQX05JU1RfT1BUSU0pCi0vKiBGb3J3YXJkIGRlY2xhcmF0aW9ucyAqLwotI2lmIGRlZmluZWQoTUJFRFRMU19FQ1BfRFBfU0VDUDE5MlIxX0VOQUJMRUQpCi1zdGF0aWMgaW50IGVjcF9tb2RfcDE5MihtYmVkdGxzX21waSAqKTsKLU1CRURUTFNfU1RBVElDX1RFU1RBQkxFCi1pbnQgbWJlZHRsc19lY3BfbW9kX3AxOTJfcmF3KG1iZWR0bHNfbXBpX3VpbnQgKk5wLCBzaXplX3QgTm4pOwotI2VuZGlmCi0jaWYgZGVmaW5lZChNQkVEVExTX0VDUF9EUF9TRUNQMjI0UjFfRU5BQkxFRCkKLXN0YXRpYyBpbnQgZWNwX21vZF9wMjI0KG1iZWR0bHNfbXBpICopOwotTUJFRFRMU19TVEFUSUNfVEVTVEFCTEUKLWludCBtYmVkdGxzX2VjcF9tb2RfcDIyNF9yYXcobWJlZHRsc19tcGlfdWludCAqWCwgc2l6ZV90IFhfbGltYnMpOwotI2VuZGlmCi0jaWYgZGVmaW5lZChNQkVEVExTX0VDUF9EUF9TRUNQMjU2UjFfRU5BQkxFRCkKLXN0YXRpYyBpbnQgZWNwX21vZF9wMjU2KG1iZWR0bHNfbXBpICopOwotTUJFRFRMU19TVEFUSUNfVEVTVEFCTEUKLWludCBtYmVkdGxzX2VjcF9tb2RfcDI1Nl9yYXcobWJlZHRsc19tcGlfdWludCAqWCwgc2l6ZV90IFhfbGltYnMpOwotI2VuZGlmCi0jaWYgZGVmaW5lZChNQkVEVExTX0VDUF9EUF9TRUNQMzg0UjFfRU5BQkxFRCkKLXN0YXRpYyBpbnQgZWNwX21vZF9wMzg0KG1iZWR0bHNfbXBpICopOwotTUJFRFRMU19TVEFUSUNfVEVTVEFCTEUKLWludCBtYmVkdGxzX2VjcF9tb2RfcDM4NF9yYXcobWJlZHRsc19tcGlfdWludCAqWCwgc2l6ZV90IFhfbGltYnMpOwotI2VuZGlmCi0jaWYgZGVmaW5lZChNQkVEVExTX0VDUF9EUF9TRUNQNTIxUjFfRU5BQkxFRCkKLXN0YXRpYyBpbnQgZWNwX21vZF9wNTIxKG1iZWR0bHNfbXBpICopOwotTUJFRFRMU19TVEFUSUNfVEVTVEFCTEUKLWludCBtYmVkdGxzX2VjcF9tb2RfcDUyMV9yYXcobWJlZHRsc19tcGlfdWludCAqTl9wLCBzaXplX3QgTl9uKTsKLSNlbmRpZgotCi0jZGVmaW5lIE5JU1RfTU9EUChQKSAgICAgIGdycC0+bW9kcCA9IGVjcF9tb2RfICMjIFA7Ci0jZWxzZQotI2RlZmluZSBOSVNUX01PRFAoUCkKLSNlbmRpZiAvKiBNQkVEVExTX0VDUF9OSVNUX09QVElNICovCi0KLS8qIEFkZGl0aW9uYWwgZm9yd2FyZCBkZWNsYXJhdGlvbnMgKi8KLSNpZiBkZWZpbmVkKE1CRURUTFNfRUNQX0RQX0NVUlZFMjU1MTlfRU5BQkxFRCkKLXN0YXRpYyBpbnQgZWNwX21vZF9wMjU1KG1iZWR0bHNfbXBpICopOwotTUJFRFRMU19TVEFUSUNfVEVTVEFCTEUKLWludCBtYmVkdGxzX2VjcF9tb2RfcDI1NV9yYXcobWJlZHRsc19tcGlfdWludCAqWCwgc2l6ZV90IFhfbGltYnMpOwotI2VuZGlmCi0jaWYgZGVmaW5lZChNQkVEVExTX0VDUF9EUF9DVVJWRTQ0OF9FTkFCTEVEKQotc3RhdGljIGludCBlY3BfbW9kX3A0NDgobWJlZHRsc19tcGkgKik7Ci1NQkVEVExTX1NUQVRJQ19URVNUQUJMRQotaW50IG1iZWR0bHNfZWNwX21vZF9wNDQ4X3JhdyhtYmVkdGxzX21waV91aW50ICosIHNpemVfdCk7Ci0jZW5kaWYKLSNpZiBkZWZpbmVkKE1CRURUTFNfRUNQX0RQX1NFQ1AxOTJLMV9FTkFCTEVEKQotc3RhdGljIGludCBlY3BfbW9kX3AxOTJrMShtYmVkdGxzX21waSAqKTsKLU1CRURUTFNfU1RBVElDX1RFU1RBQkxFCi1pbnQgbWJlZHRsc19lY3BfbW9kX3AxOTJrMV9yYXcobWJlZHRsc19tcGlfdWludCAqWCwgc2l6ZV90IFhfbGltYnMpOwotI2VuZGlmCi0jaWYgZGVmaW5lZChNQkVEVExTX0VDUF9EUF9TRUNQMjI0SzFfRU5BQkxFRCkKLXN0YXRpYyBpbnQgZWNwX21vZF9wMjI0azEobWJlZHRsc19tcGkgKik7Ci1NQkVEVExTX1NUQVRJQ19URVNUQUJMRQotaW50IG1iZWR0bHNfZWNwX21vZF9wMjI0azFfcmF3KG1iZWR0bHNfbXBpX3VpbnQgKlgsIHNpemVfdCBYX2xpbWJzKTsKLSNlbmRpZgotI2lmIGRlZmluZWQoTUJFRFRMU19FQ1BfRFBfU0VDUDI1NksxX0VOQUJMRUQpCi1zdGF0aWMgaW50IGVjcF9tb2RfcDI1NmsxKG1iZWR0bHNfbXBpICopOwotTUJFRFRMU19TVEFUSUNfVEVTVEFCTEUKLWludCBtYmVkdGxzX2VjcF9tb2RfcDI1NmsxX3JhdyhtYmVkdGxzX21waV91aW50ICpYLCBzaXplX3QgWF9saW1icyk7Ci0jZW5kaWYKLQotI2lmIGRlZmluZWQoRUNQX0xPQURfR1JPVVApCi0jZGVmaW5lIExPQURfR1JPVVBfQShHKSAgIGVjcF9ncm91cF9sb2FkKGdycCwgICAgICAgICAgICBcCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEcgIyMgX3AsICBzaXplb2YoRyAjIyBfcCksICAgXAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHICMjIF9hLCAgc2l6ZW9mKEcgIyMgX2EpLCAgIFwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRyAjIyBfYiwgIHNpemVvZihHICMjIF9iKSwgICBcCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEcgIyMgX2d4LCBzaXplb2YoRyAjIyBfZ3gpLCAgIFwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRyAjIyBfZ3ksIHNpemVvZihHICMjIF9neSksICAgXAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHICMjIF9uLCAgc2l6ZW9mKEcgIyMgX24pLCAgIFwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRyAjIyBfVCAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkKLQotI2RlZmluZSBMT0FEX0dST1VQKEcpICAgICBlY3BfZ3JvdXBfbG9hZChncnAsICAgICAgICAgICAgXAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHICMjIF9wLCAgc2l6ZW9mKEcgIyMgX3ApLCAgIFwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCwgICAgIDAsICAgICAgICAgICAgICAgICAgICBcCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEcgIyMgX2IsICBzaXplb2YoRyAjIyBfYiksICAgXAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHICMjIF9neCwgc2l6ZW9mKEcgIyMgX2d4KSwgICBcCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEcgIyMgX2d5LCBzaXplb2YoRyAjIyBfZ3kpLCAgIFwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRyAjIyBfbiwgIHNpemVvZihHICMjIF9uKSwgICBcCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEcgIyMgX1QgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApCi0jZW5kaWYgLyogRUNQX0xPQURfR1JPVVAgKi8KLQotI2lmIGRlZmluZWQoTUJFRFRMU19FQ1BfRFBfQ1VSVkUyNTUxOV9FTkFCTEVEKQotLyogQ29uc3RhbnRzIHVzZWQgYnkgZWNwX3VzZV9jdXJ2ZTI1NTE5KCkgKi8KLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV9zaW50IGN1cnZlMjU1MTlfYTI0ID0gMHgwMURCNDI7Ci0KLS8qIFAgPSAyXjI1NSAtIDE5ICovCi1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBjdXJ2ZTI1NTE5X3BbXSA9IHsKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RUQsIDBYRkYsIDBYRkYsIDBYRkYsIDBYRkYsIDBYRkYsIDBYRkYsIDBYRkYpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMFhGRiwgMFhGRiwgMFhGRiwgMFhGRiwgMFhGRiwgMFhGRiwgMFhGRiwgMFhGRiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgwWEZGLCAwWEZGLCAwWEZGLCAwWEZGLCAwWEZGLCAwWEZGLCAwWEZGLCAwWEZGKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDBYRkYsIDBYRkYsIDBYRkYsIDBYRkYsIDBYRkYsIDBYRkYsIDBYRkYsIDBYN0YpCi19OwotCi0vKiBOID0gMl4yNTIgKyAyNzc0MjMxNzc3NzM3MjM1MzUzNTg1MTkzNzc5MDg4MzY0ODQ5MyAqLwotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgY3VydmUyNTUxOV9uW10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgwWEVELCAwWEQzLCAwWEY1LCAwWDVDLCAwWDFBLCAwWDYzLCAwWDEyLCAwWDU4KSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDBYRDYsIDBYOUMsIDBYRjcsIDBYQTIsIDBYREUsIDBYRjksIDBYREUsIDBYMTQpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMFgwMCwgMFgwMCwgMFgwMCwgMFgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDEwKQotfTsKLQotLyoKLSAqIFNwZWNpYWxpemVkIGZ1bmN0aW9uIGZvciBjcmVhdGluZyB0aGUgQ3VydmUyNTUxOSBncm91cAotICovCi1zdGF0aWMgaW50IGVjcF91c2VfY3VydmUyNTUxOShtYmVkdGxzX2VjcF9ncm91cCAqZ3JwKQotewotICAgIGludCByZXQgPSBNQkVEVExTX0VSUl9FUlJPUl9DT1JSVVBUSU9OX0RFVEVDVEVEOwotCi0gICAgLyogQWN0dWFsbHkgKCBBICsgMiApIC8gNCAqLwotICAgIE1CRURUTFNfTVBJX0NISyhtYmVkdGxzX21waV9sc2V0KCZncnAtPkEsIGN1cnZlMjU1MTlfYTI0KSk7Ci0KLSAgICBlY3BfbXBpX2xvYWQoJmdycC0+UCwgY3VydmUyNTUxOV9wLCBzaXplb2YoY3VydmUyNTUxOV9wKSk7Ci0KLSAgICBncnAtPnBiaXRzID0gbWJlZHRsc19tcGlfYml0bGVuKCZncnAtPlApOwotCi0gICAgZWNwX21waV9sb2FkKCZncnAtPk4sIGN1cnZlMjU1MTlfbiwgc2l6ZW9mKGN1cnZlMjU1MTlfbikpOwotCi0gICAgLyogWSBpbnRlbnRpb25hbGx5IG5vdCBzZXQsIHNpbmNlIHdlIHVzZSB4L3ogY29vcmRpbmF0ZXMuCi0gICAgICogVGhpcyBpcyB1c2VkIGFzIGEgbWFya2VyIHRvIGlkZW50aWZ5IE1vbnRnb21lcnkgY3VydmVzISAqLwotICAgIE1CRURUTFNfTVBJX0NISyhtYmVkdGxzX21waV9sc2V0KCZncnAtPkcuWCwgOSkpOwotICAgIE1CRURUTFNfTVBJX0NISyhtYmVkdGxzX21waV9sc2V0KCZncnAtPkcuWiwgMSkpOwotICAgIG1iZWR0bHNfbXBpX2ZyZWUoJmdycC0+Ry5ZKTsKLQotICAgIC8qIEFjdHVhbGx5LCB0aGUgcmVxdWlyZWQgbXNiIGZvciBwcml2YXRlIGtleXMgKi8KLSAgICBncnAtPm5iaXRzID0gMjU0OwotCi1jbGVhbnVwOgotICAgIGlmIChyZXQgIT0gMCkgewotICAgICAgICBtYmVkdGxzX2VjcF9ncm91cF9mcmVlKGdycCk7Ci0gICAgfQotCi0gICAgcmV0dXJuIHJldDsKLX0KLSNlbmRpZiAvKiBNQkVEVExTX0VDUF9EUF9DVVJWRTI1NTE5X0VOQUJMRUQgKi8KLQotI2lmIGRlZmluZWQoTUJFRFRMU19FQ1BfRFBfQ1VSVkU0NDhfRU5BQkxFRCkKLS8qIENvbnN0YW50cyB1c2VkIGJ5IGVjcF91c2VfY3VydmU0NDgoKSAqLwotc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3NpbnQgY3VydmU0NDhfYTI0ID0gMHg5OEFBOwotCi0vKiBQID0gMl40NDggLSAyXjIyNCAtIDEgKi8KLXN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IGN1cnZlNDQ4X3BbXSA9IHsKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDBYRkYsIDBYRkYsIDBYRkYsIDBYRkYsIDBYRkYsIDBYRkYsIDBYRkYsIDBYRkYpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMFhGRiwgMFhGRiwgMFhGRiwgMFhGRiwgMFhGRiwgMFhGRiwgMFhGRiwgMFhGRiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgwWEZGLCAwWEZGLCAwWEZGLCAwWEZGLCAwWEZGLCAwWEZGLCAwWEZGLCAwWEZGKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDBYRkYsIDBYRkYsIDBYRkYsIDBYRkYsIDBYRkUsIDBYRkYsIDBYRkYsIDBYRkYpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMFhGRiwgMFhGRiwgMFhGRiwgMFhGRiwgMFhGRiwgMFhGRiwgMFhGRiwgMFhGRiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgwWEZGLCAwWEZGLCAwWEZGLCAwWEZGLCAwWEZGLCAwWEZGLCAwWEZGLCAwWEZGKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDBYRkYsIDBYRkYsIDBYRkYsIDBYRkYsIDBYRkYsIDBYRkYsIDBYRkYsIDBYRkYpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMFgwMCwgMFgwMCwgMFgwMCwgMFgwMCwgMFgwMCwgMFgwMCwgMFgwMCwgMFgwMCkKLX07Ci0KLS8qIE4gPSAyXjQ0NiAtIDEzODE4MDY2ODA5ODk1MTE1MzUyMDA3Mzg2NzQ4NTE1NDI2ODgwMzM2NjkyNDc0ODgyMTc4NjA5ODk0NTQ3NTAzODg1ICovCi1zdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBjdXJ2ZTQ0OF9uW10gPSB7Ci0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgwWEYzLCAwWDQ0LCAwWDU4LCAwWEFCLCAwWDkyLCAwWEMyLCAwWDc4LCAwWDIzKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDBYNTUsIDBYOEYsIDBYQzUsIDBYOEQsIDBYNzIsIDBYQzIsIDBYNkMsIDBYMjEpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMFg5MCwgMFgzNiwgMFhENiwgMFhBRSwgMFg0OSwgMFhEQiwgMFg0RSwgMFhDNCksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgwWEU5LCAwWDIzLCAwWENBLCAwWDdDLCAwWEZGLCAwWEZGLCAwWEZGLCAwWEZGKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDBYRkYsIDBYRkYsIDBYRkYsIDBYRkYsIDBYRkYsIDBYRkYsIDBYRkYsIDBYRkYpLAotICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMFhGRiwgMFhGRiwgMFhGRiwgMFhGRiwgMFhGRiwgMFhGRiwgMFhGRiwgMFhGRiksCi0gICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgwWEZGLCAwWEZGLCAwWEZGLCAwWEZGLCAwWEZGLCAwWEZGLCAwWEZGLCAwWDNGKSwKLSAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDBYMDAsIDBYMDAsIDBYMDAsIDBYMDAsIDBYMDAsIDBYMDAsIDBYMDAsIDBYMDApCi19OwotCi0vKgotICogU3BlY2lhbGl6ZWQgZnVuY3Rpb24gZm9yIGNyZWF0aW5nIHRoZSBDdXJ2ZTQ0OCBncm91cAotICovCi1zdGF0aWMgaW50IGVjcF91c2VfY3VydmU0NDgobWJlZHRsc19lY3BfZ3JvdXAgKmdycCkKLXsKLSAgICBpbnQgcmV0ID0gTUJFRFRMU19FUlJfRVJST1JfQ09SUlVQVElPTl9ERVRFQ1RFRDsKLQotICAgIC8qIEFjdHVhbGx5ICggQSArIDIgKSAvIDQgKi8KLSAgICBNQkVEVExTX01QSV9DSEsobWJlZHRsc19tcGlfbHNldCgmZ3JwLT5BLCBjdXJ2ZTQ0OF9hMjQpKTsKLQotICAgIGVjcF9tcGlfbG9hZCgmZ3JwLT5QLCBjdXJ2ZTQ0OF9wLCBzaXplb2YoY3VydmU0NDhfcCkpOwotICAgIGdycC0+cGJpdHMgPSBtYmVkdGxzX21waV9iaXRsZW4oJmdycC0+UCk7Ci0KLSAgICAvKiBZIGludGVudGlvbmFsbHkgbm90IHNldCwgc2luY2Ugd2UgdXNlIHgveiBjb29yZGluYXRlcy4KLSAgICAgKiBUaGlzIGlzIHVzZWQgYXMgYSBtYXJrZXIgdG8gaWRlbnRpZnkgTW9udGdvbWVyeSBjdXJ2ZXMhICovCi0gICAgTUJFRFRMU19NUElfQ0hLKG1iZWR0bHNfbXBpX2xzZXQoJmdycC0+Ry5YLCA1KSk7Ci0gICAgTUJFRFRMU19NUElfQ0hLKG1iZWR0bHNfbXBpX2xzZXQoJmdycC0+Ry5aLCAxKSk7Ci0gICAgbWJlZHRsc19tcGlfZnJlZSgmZ3JwLT5HLlkpOwotCi0gICAgZWNwX21waV9sb2FkKCZncnAtPk4sIGN1cnZlNDQ4X24sIHNpemVvZihjdXJ2ZTQ0OF9uKSk7Ci0KLSAgICAvKiBBY3R1YWxseSwgdGhlIHJlcXVpcmVkIG1zYiBmb3IgcHJpdmF0ZSBrZXlzICovCi0gICAgZ3JwLT5uYml0cyA9IDQ0NzsKLQotY2xlYW51cDoKLSAgICBpZiAocmV0ICE9IDApIHsKLSAgICAgICAgbWJlZHRsc19lY3BfZ3JvdXBfZnJlZShncnApOwotICAgIH0KLQotICAgIHJldHVybiByZXQ7Ci19Ci0jZW5kaWYgLyogTUJFRFRMU19FQ1BfRFBfQ1VSVkU0NDhfRU5BQkxFRCAqLwotCi0vKgotICogU2V0IGEgZ3JvdXAgdXNpbmcgd2VsbC1rbm93biBkb21haW4gcGFyYW1ldGVycwotICovCi1pbnQgbWJlZHRsc19lY3BfZ3JvdXBfbG9hZChtYmVkdGxzX2VjcF9ncm91cCAqZ3JwLCBtYmVkdGxzX2VjcF9ncm91cF9pZCBpZCkKLXsKLSAgICBtYmVkdGxzX2VjcF9ncm91cF9mcmVlKGdycCk7Ci0KLSAgICBtYmVkdGxzX2VjcF9ncm91cF9pbml0KGdycCk7Ci0KLSAgICBncnAtPmlkID0gaWQ7Ci0KLSAgICBzd2l0Y2ggKGlkKSB7Ci0jaWYgZGVmaW5lZChNQkVEVExTX0VDUF9EUF9TRUNQMTkyUjFfRU5BQkxFRCkKLSAgICAgICAgY2FzZSBNQkVEVExTX0VDUF9EUF9TRUNQMTkyUjE6Ci0gICAgICAgICAgICBOSVNUX01PRFAocDE5Mik7Ci0gICAgICAgICAgICByZXR1cm4gTE9BRF9HUk9VUChzZWNwMTkycjEpOwotI2VuZGlmIC8qIE1CRURUTFNfRUNQX0RQX1NFQ1AxOTJSMV9FTkFCTEVEICovCi0KLSNpZiBkZWZpbmVkKE1CRURUTFNfRUNQX0RQX1NFQ1AyMjRSMV9FTkFCTEVEKQotICAgICAgICBjYXNlIE1CRURUTFNfRUNQX0RQX1NFQ1AyMjRSMToKLSAgICAgICAgICAgIE5JU1RfTU9EUChwMjI0KTsKLSAgICAgICAgICAgIHJldHVybiBMT0FEX0dST1VQKHNlY3AyMjRyMSk7Ci0jZW5kaWYgLyogTUJFRFRMU19FQ1BfRFBfU0VDUDIyNFIxX0VOQUJMRUQgKi8KLQotI2lmIGRlZmluZWQoTUJFRFRMU19FQ1BfRFBfU0VDUDI1NlIxX0VOQUJMRUQpCi0gICAgICAgIGNhc2UgTUJFRFRMU19FQ1BfRFBfU0VDUDI1NlIxOgotICAgICAgICAgICAgTklTVF9NT0RQKHAyNTYpOwotICAgICAgICAgICAgcmV0dXJuIExPQURfR1JPVVAoc2VjcDI1NnIxKTsKLSNlbmRpZiAvKiBNQkVEVExTX0VDUF9EUF9TRUNQMjU2UjFfRU5BQkxFRCAqLwotCi0jaWYgZGVmaW5lZChNQkVEVExTX0VDUF9EUF9TRUNQMzg0UjFfRU5BQkxFRCkKLSAgICAgICAgY2FzZSBNQkVEVExTX0VDUF9EUF9TRUNQMzg0UjE6Ci0gICAgICAgICAgICBOSVNUX01PRFAocDM4NCk7Ci0gICAgICAgICAgICByZXR1cm4gTE9BRF9HUk9VUChzZWNwMzg0cjEpOwotI2VuZGlmIC8qIE1CRURUTFNfRUNQX0RQX1NFQ1AzODRSMV9FTkFCTEVEICovCi0KLSNpZiBkZWZpbmVkKE1CRURUTFNfRUNQX0RQX1NFQ1A1MjFSMV9FTkFCTEVEKQotICAgICAgICBjYXNlIE1CRURUTFNfRUNQX0RQX1NFQ1A1MjFSMToKLSAgICAgICAgICAgIE5JU1RfTU9EUChwNTIxKTsKLSAgICAgICAgICAgIHJldHVybiBMT0FEX0dST1VQKHNlY3A1MjFyMSk7Ci0jZW5kaWYgLyogTUJFRFRMU19FQ1BfRFBfU0VDUDUyMVIxX0VOQUJMRUQgKi8KLQotI2lmIGRlZmluZWQoTUJFRFRMU19FQ1BfRFBfU0VDUDE5MksxX0VOQUJMRUQpCi0gICAgICAgIGNhc2UgTUJFRFRMU19FQ1BfRFBfU0VDUDE5MksxOgotICAgICAgICAgICAgZ3JwLT5tb2RwID0gZWNwX21vZF9wMTkyazE7Ci0gICAgICAgICAgICByZXR1cm4gTE9BRF9HUk9VUF9BKHNlY3AxOTJrMSk7Ci0jZW5kaWYgLyogTUJFRFRMU19FQ1BfRFBfU0VDUDE5MksxX0VOQUJMRUQgKi8KLQotI2lmIGRlZmluZWQoTUJFRFRMU19FQ1BfRFBfU0VDUDIyNEsxX0VOQUJMRUQpCi0gICAgICAgIGNhc2UgTUJFRFRMU19FQ1BfRFBfU0VDUDIyNEsxOgotICAgICAgICAgICAgZ3JwLT5tb2RwID0gZWNwX21vZF9wMjI0azE7Ci0gICAgICAgICAgICByZXR1cm4gTE9BRF9HUk9VUF9BKHNlY3AyMjRrMSk7Ci0jZW5kaWYgLyogTUJFRFRMU19FQ1BfRFBfU0VDUDIyNEsxX0VOQUJMRUQgKi8KLQotI2lmIGRlZmluZWQoTUJFRFRMU19FQ1BfRFBfU0VDUDI1NksxX0VOQUJMRUQpCi0gICAgICAgIGNhc2UgTUJFRFRMU19FQ1BfRFBfU0VDUDI1NksxOgotICAgICAgICAgICAgZ3JwLT5tb2RwID0gZWNwX21vZF9wMjU2azE7Ci0gICAgICAgICAgICByZXR1cm4gTE9BRF9HUk9VUF9BKHNlY3AyNTZrMSk7Ci0jZW5kaWYgLyogTUJFRFRMU19FQ1BfRFBfU0VDUDI1NksxX0VOQUJMRUQgKi8KLQotI2lmIGRlZmluZWQoTUJFRFRMU19FQ1BfRFBfQlAyNTZSMV9FTkFCTEVEKQotICAgICAgICBjYXNlIE1CRURUTFNfRUNQX0RQX0JQMjU2UjE6Ci0gICAgICAgICAgICByZXR1cm4gTE9BRF9HUk9VUF9BKGJyYWlucG9vbFAyNTZyMSk7Ci0jZW5kaWYgLyogTUJFRFRMU19FQ1BfRFBfQlAyNTZSMV9FTkFCTEVEICovCi0KLSNpZiBkZWZpbmVkKE1CRURUTFNfRUNQX0RQX0JQMzg0UjFfRU5BQkxFRCkKLSAgICAgICAgY2FzZSBNQkVEVExTX0VDUF9EUF9CUDM4NFIxOgotICAgICAgICAgICAgcmV0dXJuIExPQURfR1JPVVBfQShicmFpbnBvb2xQMzg0cjEpOwotI2VuZGlmIC8qIE1CRURUTFNfRUNQX0RQX0JQMzg0UjFfRU5BQkxFRCAqLwotCi0jaWYgZGVmaW5lZChNQkVEVExTX0VDUF9EUF9CUDUxMlIxX0VOQUJMRUQpCi0gICAgICAgIGNhc2UgTUJFRFRMU19FQ1BfRFBfQlA1MTJSMToKLSAgICAgICAgICAgIHJldHVybiBMT0FEX0dST1VQX0EoYnJhaW5wb29sUDUxMnIxKTsKLSNlbmRpZiAvKiBNQkVEVExTX0VDUF9EUF9CUDUxMlIxX0VOQUJMRUQgKi8KLQotI2lmIGRlZmluZWQoTUJFRFRMU19FQ1BfRFBfQ1VSVkUyNTUxOV9FTkFCTEVEKQotICAgICAgICBjYXNlIE1CRURUTFNfRUNQX0RQX0NVUlZFMjU1MTk6Ci0gICAgICAgICAgICBncnAtPm1vZHAgPSBlY3BfbW9kX3AyNTU7Ci0gICAgICAgICAgICByZXR1cm4gZWNwX3VzZV9jdXJ2ZTI1NTE5KGdycCk7Ci0jZW5kaWYgLyogTUJFRFRMU19FQ1BfRFBfQ1VSVkUyNTUxOV9FTkFCTEVEICovCi0KLSNpZiBkZWZpbmVkKE1CRURUTFNfRUNQX0RQX0NVUlZFNDQ4X0VOQUJMRUQpCi0gICAgICAgIGNhc2UgTUJFRFRMU19FQ1BfRFBfQ1VSVkU0NDg6Ci0gICAgICAgICAgICBncnAtPm1vZHAgPSBlY3BfbW9kX3A0NDg7Ci0gICAgICAgICAgICByZXR1cm4gZWNwX3VzZV9jdXJ2ZTQ0OChncnApOwotI2VuZGlmIC8qIE1CRURUTFNfRUNQX0RQX0NVUlZFNDQ4X0VOQUJMRUQgKi8KLQotICAgICAgICBkZWZhdWx0OgotICAgICAgICAgICAgZ3JwLT5pZCA9IE1CRURUTFNfRUNQX0RQX05PTkU7Ci0gICAgICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfRUNQX0ZFQVRVUkVfVU5BVkFJTEFCTEU7Ci0gICAgfQotfQotCi0jaWYgZGVmaW5lZChNQkVEVExTX0VDUF9OSVNUX09QVElNKQotLyoKLSAqIEZhc3QgcmVkdWN0aW9uIG1vZHVsbyB0aGUgcHJpbWVzIHVzZWQgYnkgdGhlIE5JU1QgY3VydmVzLgotICoKLSAqIFRoZXNlIGZ1bmN0aW9ucyBhcmUgY3JpdGljYWwgZm9yIHNwZWVkLCBidXQgbm90IG5lZWRlZCBmb3IgY29ycmVjdAotICogb3BlcmF0aW9ucy4gU28sIHdlIG1ha2UgdGhlIGNob2ljZSB0byBoZWF2aWx5IHJlbHkgb24gdGhlIGludGVybmFscyBvZiBvdXIKLSAqIGJpZ251bSBsaWJyYXJ5LCB3aGljaCBjcmVhdGVzIGEgdGlnaHQgY291cGxpbmcgYmV0d2VlbiB0aGVzZSBmdW5jdGlvbnMgYW5kCi0gKiBvdXIgTVBJIGltcGxlbWVudGF0aW9uLiAgSG93ZXZlciwgdGhlIGNvdXBsaW5nIGJldHdlZW4gdGhlIEVDUCBtb2R1bGUgYW5kCi0gKiBNUEkgcmVtYWlucyBsb29zZSwgc2luY2UgdGhlc2UgZnVuY3Rpb25zIGNhbiBiZSBkZWFjdGl2YXRlZCBhdCB3aWxsLgotICovCi0KLSNpZiBkZWZpbmVkKE1CRURUTFNfRUNQX0RQX1NFQ1AxOTJSMV9FTkFCTEVEKQotLyoKLSAqIENvbXBhcmVkIHRvIHRoZSB3YXkgdGhpbmdzIGFyZSBwcmVzZW50ZWQgaW4gRklQUyAxODYtMyBELjIsCi0gKiB3ZSBwcm9jZWVkIGluIGNvbHVtbnMsIGZyb20gcmlnaHQgKGxlYXN0IHNpZ25pZmljYW50IGNodW5rKSB0byBsZWZ0LAotICogYWRkaW5nIGNodW5rcyB0byBOIGluIHBsYWNlLCBhbmQga2VlcGluZyBhIGNhcnJ5IGZvciB0aGUgbmV4dCBjaHVuay4KLSAqIFRoaXMgYXZvaWRzIG1vdmluZyB0aGluZ3MgYXJvdW5kIGluIG1lbW9yeSwgYW5kIHVzZWxlc3NseSBhZGRpbmcgemVyb3MsCi0gKiBjb21wYXJlZCB0byB0aGUgbW9yZSBzdHJhaWdodGZvcndhcmQsIGxpbmUtb3JpZW50ZWQgYXBwcm9hY2guCi0gKgotICogRm9yIHRoaXMgcHJpbWUgd2UgbmVlZCB0byBoYW5kbGUgZGF0YSBpbiBjaHVua3Mgb2YgNjQgYml0cy4KLSAqIFNpbmNlIHRoaXMgaXMgYWx3YXlzIGEgbXVsdGlwbGUgb2Ygb3VyIGJhc2ljIG1iZWR0bHNfbXBpX3VpbnQsIHdlIGNhbgotICogdXNlIGEgbWJlZHRsc19tcGlfdWludCAqIHRvIGRlc2lnbmF0ZSBzdWNoIGEgY2h1bmssIGFuZCBzbWFsbCBsb29wcyB0byBoYW5kbGUgaXQuCi0gKi8KLQotLyogQWRkIDY0LWJpdCBjaHVua3MgKGRzdCArPSBzcmMpIGFuZCB1cGRhdGUgY2FycnkgKi8KLXN0YXRpYyBpbmxpbmUgdm9pZCBhZGQ2NChtYmVkdGxzX21waV91aW50ICpkc3QsIG1iZWR0bHNfbXBpX3VpbnQgKnNyYywgbWJlZHRsc19tcGlfdWludCAqY2FycnkpCi17Ci0gICAgdW5zaWduZWQgY2hhciBpOwotICAgIG1iZWR0bHNfbXBpX3VpbnQgYyA9IDA7Ci0gICAgZm9yIChpID0gMDsgaSA8IDggLyBzaXplb2YobWJlZHRsc19tcGlfdWludCk7IGkrKywgZHN0KyssIHNyYysrKSB7Ci0gICAgICAgICpkc3QgKz0gYzsgICAgICBjICA9ICgqZHN0IDwgYyk7Ci0gICAgICAgICpkc3QgKz0gKnNyYzsgICBjICs9ICgqZHN0IDwgKnNyYyk7Ci0gICAgfQotICAgICpjYXJyeSArPSBjOwotfQotCi0vKiBBZGQgY2FycnkgdG8gYSA2NC1iaXQgY2h1bmsgYW5kIHVwZGF0ZSBjYXJyeSAqLwotc3RhdGljIGlubGluZSB2b2lkIGNhcnJ5NjQobWJlZHRsc19tcGlfdWludCAqZHN0LCBtYmVkdGxzX21waV91aW50ICpjYXJyeSkKLXsKLSAgICB1bnNpZ25lZCBjaGFyIGk7Ci0gICAgZm9yIChpID0gMDsgaSA8IDggLyBzaXplb2YobWJlZHRsc19tcGlfdWludCk7IGkrKywgZHN0KyspIHsKLSAgICAgICAgKmRzdCArPSAqY2Fycnk7Ci0gICAgICAgICpjYXJyeSAgPSAoKmRzdCA8ICpjYXJyeSk7Ci0gICAgfQotfQotCi0jZGVmaW5lIFdJRFRIICAgICAgIDggLyBzaXplb2YobWJlZHRsc19tcGlfdWludCkKLSNkZWZpbmUgQShpKSAgICAgICAgTnAgKyAoaSkgKiBXSURUSAotI2RlZmluZSBBREQoaSkgICAgICBhZGQ2NChwLCBBKGkpLCAmYykKLSNkZWZpbmUgTkVYVCAgICAgICAgcCArPSBXSURUSDsgY2Fycnk2NChwLCAmYykKLSNkZWZpbmUgTEFTVCAgICAgICAgcCArPSBXSURUSDsgZG8gKnAgPSAwOyB3aGlsZSAoKytwIDwgZW5kKQotI2RlZmluZSBSRVNFVCAgICAgICBsYXN0X2NhcnJ5WzBdID0gYzsgYyA9IDA7IHAgPSBOcAotI2RlZmluZSBBRERfTEFTVCAgICBhZGQ2NChwLCBsYXN0X2NhcnJ5LCAmYykKLQotLyoKLSAqIEZhc3QgcXVhc2ktcmVkdWN0aW9uIG1vZHVsbyBwMTkyIChGSVBTIDE4Ni0zIEQuMi4xKQotICovCi1zdGF0aWMgaW50IGVjcF9tb2RfcDE5MihtYmVkdGxzX21waSAqTikKLXsKLSAgICBpbnQgcmV0ID0gTUJFRFRMU19FUlJfRVJST1JfQ09SUlVQVElPTl9ERVRFQ1RFRDsKLSAgICBzaXplX3QgZXhwZWN0ZWRfd2lkdGggPSBCSVRTX1RPX0xJTUJTKDE5MikgKiAyOwotICAgIE1CRURUTFNfTVBJX0NISyhtYmVkdGxzX21waV9ncm93KE4sIGV4cGVjdGVkX3dpZHRoKSk7Ci0gICAgcmV0ID0gbWJlZHRsc19lY3BfbW9kX3AxOTJfcmF3KE4tPnAsIGV4cGVjdGVkX3dpZHRoKTsKLQotY2xlYW51cDoKLSAgICByZXR1cm4gcmV0OwotfQotCi1NQkVEVExTX1NUQVRJQ19URVNUQUJMRQotaW50IG1iZWR0bHNfZWNwX21vZF9wMTkyX3JhdyhtYmVkdGxzX21waV91aW50ICpOcCwgc2l6ZV90IE5uKQotewotICAgIG1iZWR0bHNfbXBpX3VpbnQgYyA9IDAsIGxhc3RfY2FycnlbV0lEVEhdID0geyAwIH07Ci0gICAgbWJlZHRsc19tcGlfdWludCAqcCwgKmVuZDsKLQotICAgIGlmIChObiAhPSBCSVRTX1RPX0xJTUJTKDE5MikgKiAyKSB7Ci0gICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9FQ1BfQkFEX0lOUFVUX0RBVEE7Ci0gICAgfQotCi0gICAgcCA9IE5wOwotICAgIGVuZCA9IHAgKyBObjsKLQotICAgIEFERCgzKTsgQUREKDUpOyAgICAgICAgIE5FWFQ7ICAgLy8gQTAgKz0gQTMgKyBBNQotICAgIEFERCgzKTsgQUREKDQpOyBBREQoNSk7IE5FWFQ7ICAgLy8gQTEgKz0gQTMgKyBBNCArIEE1Ci0gICAgQUREKDQpOyBBREQoNSk7ICAgICAgICAgICAgICAgICAvLyBBMiArPSBBNCArIEE1Ci0KLSAgICBSRVNFVDsKLQotICAgIC8qIFVzZSB0aGUgcmVkdWN0aW9uIGZvciB0aGUgY2FycnkgYXMgd2VsbDoKLSAgICAgKiAyXjE5MiAqIGxhc3RfY2FycnkgPSAyXjY0ICogbGFzdF9jYXJyeSArIGxhc3RfY2FycnkgbW9kIFAxOTIKLSAgICAgKiBJdCBjYW4gZ2VuZXJhdGUgYSBjYXJyeS4gKi8KLSAgICBBRERfTEFTVDsgTkVYVDsgICAgICAgICAgICAgICAgIC8vIEEwICs9IGxhc3RfY2FycnkKLSAgICBBRERfTEFTVDsgTkVYVDsgICAgICAgICAgICAgICAgIC8vIEExICs9IGxhc3RfY2FycnkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIEEyICs9IGNhcnJ5Ci0KLSAgICBSRVNFVDsKLQotICAgIC8qIFVzZSB0aGUgcmVkdWN0aW9uIGZvciB0aGUgY2FycnkgYXMgd2VsbDoKLSAgICAgKiAyXjE5MiAqIGxhc3RfY2FycnkgPSAyXjY0ICogbGFzdF9jYXJyeSArIGxhc3RfY2FycnkgbW9kIFAxOTIKLSAgICAgKi8KLSAgICBBRERfTEFTVDsgTkVYVDsgICAgICAgICAgICAgICAgIC8vIEEwICs9IGxhc3RfY2FycnkKLSAgICBBRERfTEFTVDsgTkVYVDsgICAgICAgICAgICAgICAgIC8vIEExICs9IGxhc3RfY2FycnkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIEEyICs9IGNhcnJ5Ci0KLSAgICBMQVNUOwotCi0gICAgcmV0dXJuIDA7Ci19Ci0KLSN1bmRlZiBXSURUSAotI3VuZGVmIEEKLSN1bmRlZiBBREQKLSN1bmRlZiBORVhUCi0jdW5kZWYgTEFTVAotI3VuZGVmIFJFU0VUCi0jdW5kZWYgQUREX0xBU1QKLSNlbmRpZiAvKiBNQkVEVExTX0VDUF9EUF9TRUNQMTkyUjFfRU5BQkxFRCAqLwotCi0jaWYgZGVmaW5lZChNQkVEVExTX0VDUF9EUF9TRUNQMjI0UjFfRU5BQkxFRCkgfHwgICBcCi0gICAgZGVmaW5lZChNQkVEVExTX0VDUF9EUF9TRUNQMjU2UjFfRU5BQkxFRCkgfHwgICBcCi0gICAgZGVmaW5lZChNQkVEVExTX0VDUF9EUF9TRUNQMzg0UjFfRU5BQkxFRCkKLQotLyoKLSAqIFRoZSByZWFkZXIgaXMgYWR2aXNlZCB0byBmaXJzdCB1bmRlcnN0YW5kIGVjcF9tb2RfcDE5MigpIHNpbmNlIHRoZSBzYW1lCi0gKiBnZW5lcmFsIHN0cnVjdHVyZSBpcyB1c2VkIGhlcmUsIGJ1dCB3aXRoIGFkZGl0aW9uYWwgY29tcGxpY2F0aW9uczoKLSAqICgxKSBjaHVua3Mgb2YgMzIgYml0cywgYW5kICgyKSBzdWJ0cmFjdGlvbnMuCi0gKi8KLQotLyoKLSAqIEZvciB0aGVzZSBwcmltZXMsIHdlIG5lZWQgdG8gaGFuZGxlIGRhdGEgaW4gY2h1bmtzIG9mIDMyIGJpdHMuCi0gKiBUaGlzIG1ha2VzIGl0IG1vcmUgY29tcGxpY2F0ZWQgaWYgd2UgdXNlIDY0IGJpdHMgbGltYnMgaW4gTVBJLAotICogd2hpY2ggcHJldmVudHMgdXMgZnJvbSB1c2luZyBhIHVuaWZvcm0gYWNjZXNzIG1ldGhvZCBhcyBmb3IgcDE5Mi4KLSAqCi0gKiBTbywgd2UgZGVmaW5lIGEgbWluaSBhYnN0cmFjdGlvbiBsYXllciB0byBhY2Nlc3MgMzIgYml0IGNodW5rcywKLSAqIGxvYWQgdGhlbSBpbiAnY3VyJyBmb3Igd29yaywgYW5kIHN0b3JlIHRoZW0gYmFjayBmcm9tICdjdXInIHdoZW4gZG9uZS4KLSAqCi0gKiBXaGlsZSBhdCBpdCwgYWxzbyBkZWZpbmUgdGhlIHNpemUgb2YgTiBpbiB0ZXJtcyBvZiAzMi1iaXQgY2h1bmtzLgotICovCi0jZGVmaW5lIExPQUQzMiAgICAgIGN1ciA9IEEoaSk7Ci0KLSNpZiBkZWZpbmVkKE1CRURUTFNfSEFWRV9JTlQzMikgIC8qIDMyIGJpdCAqLwotCi0jZGVmaW5lIE1BWDMyICAgICAgIFhfbGltYnMKLSNkZWZpbmUgQShqKSAgICAgICAgWFtqXQotI2RlZmluZSBTVE9SRTMyICAgICBYW2ldID0gKG1iZWR0bHNfbXBpX3VpbnQpIGN1cjsKLSNkZWZpbmUgU1RPUkUwICAgICAgWFtpXSA9IDA7Ci0KLSNlbHNlIC8qIDY0IGJpdCAqLwotCi0jZGVmaW5lIE1BWDMyICAgWF9saW1icyAqIDIKLSNkZWZpbmUgQShqKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICAoaikgJSAyID8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICAodWludDMyX3QpIChYWyhqKSAvIDJdID4+IDMyKSA6ICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICAodWludDMyX3QpIChYWyhqKSAvIDJdKQotI2RlZmluZSBTVE9SRTMyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIGlmIChpICUgMikgeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgICAgICBYW2kvMl0gJj0gMHgwMDAwMDAwMEZGRkZGRkZGOyAgICAgICAgICAgICAgICAgICAgICAgXAotICAgICAgICBYW2kvMl0gfD0gKHVpbnQ2NF90KSAoY3VyKSA8PCAzMjsgICAgICAgICAgICAgICAgICAgXAotICAgIH0gZWxzZSB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgICAgICBYW2kvMl0gJj0gMHhGRkZGRkZGRjAwMDAwMDAwOyAgICAgICAgICAgICAgICAgICAgICAgXAotICAgICAgICBYW2kvMl0gfD0gKHVpbnQzMl90KSBjdXI7ICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIH0KLQotI2RlZmluZSBTVE9SRTAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIGlmIChpICUgMikgeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgICAgICBYW2kvMl0gJj0gMHgwMDAwMDAwMEZGRkZGRkZGOyAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIH0gZWxzZSB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgICAgICBYW2kvMl0gJj0gMHhGRkZGRkZGRjAwMDAwMDAwOyAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIH0KLQotI2VuZGlmCi0KLXN0YXRpYyBpbmxpbmUgaW50OF90IGV4dHJhY3RfY2FycnkoaW50NjRfdCBjdXIpCi17Ci0gICAgcmV0dXJuIChpbnQ4X3QpIChjdXIgPj4gMzIpOwotfQotCi0jZGVmaW5lIEFERChqKSAgICBjdXIgKz0gQShqKQotI2RlZmluZSBTVUIoaikgICAgY3VyIC09IEEoaikKLQotI2RlZmluZSBBRERfQ0FSUlkoY2MpIGN1ciArPSAoY2MpCi0jZGVmaW5lIFNVQl9DQVJSWShjYykgY3VyIC09IChjYykKLQotI2RlZmluZSBBRERfTEFTVCBBRERfQ0FSUlkobGFzdF9jKQotI2RlZmluZSBTVUJfTEFTVCBTVUJfQ0FSUlkobGFzdF9jKQotCi0vKgotICogSGVscGVycyBmb3IgdGhlIG1haW4gJ2xvb3AnCi0gKi8KLSNkZWZpbmUgSU5JVChiKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIGludDhfdCBjID0gMCwgbGFzdF9jOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgaW50NjRfdCBjdXI7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICBzaXplX3QgaSA9IDA7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIExPQUQzMjsKLQotI2RlZmluZSBORVhUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgYyA9IGV4dHJhY3RfY2FycnkoY3VyKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICBTVE9SRTMyOyBpKys7IExPQUQzMjsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIEFERF9DQVJSWShjKTsKLQotI2RlZmluZSBSRVNFVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgYyA9IGV4dHJhY3RfY2FycnkoY3VyKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICBsYXN0X2MgPSBjOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIFNUT1JFMzI7IGkgPSAwOyBMT0FEMzI7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgYyA9IDA7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLQotI2RlZmluZSBMQVNUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgYyA9IGV4dHJhY3RfY2FycnkoY3VyKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICBTVE9SRTMyOyBpKys7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIGlmIChjICE9IDApICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgcmV0dXJuIE1CRURUTFNfRVJSX0VDUF9CQURfSU5QVVRfREFUQTsgICAgICAgICAgICAgIFwKLSAgICB3aGlsZSAoaSA8IE1BWDMyKSB7IFNUT1JFMDsgaSsrOyB9Ci0KLSNpZiBkZWZpbmVkKE1CRURUTFNfRUNQX0RQX1NFQ1AyMjRSMV9FTkFCTEVEKQotCi0vKgotICogRmFzdCBxdWFzaS1yZWR1Y3Rpb24gbW9kdWxvIHAyMjQgKEZJUFMgMTg2LTMgRC4yLjIpCi0gKi8KLXN0YXRpYyBpbnQgZWNwX21vZF9wMjI0KG1iZWR0bHNfbXBpICpOKQotewotICAgIGludCByZXQgPSBNQkVEVExTX0VSUl9FUlJPUl9DT1JSVVBUSU9OX0RFVEVDVEVEOwotICAgIHNpemVfdCBleHBlY3RlZF93aWR0aCA9IEJJVFNfVE9fTElNQlMoMjI0KSAqIDI7Ci0gICAgTUJFRFRMU19NUElfQ0hLKG1iZWR0bHNfbXBpX2dyb3coTiwgZXhwZWN0ZWRfd2lkdGgpKTsKLSAgICByZXQgPSBtYmVkdGxzX2VjcF9tb2RfcDIyNF9yYXcoTi0+cCwgZXhwZWN0ZWRfd2lkdGgpOwotY2xlYW51cDoKLSAgICByZXR1cm4gcmV0OwotfQotCi1NQkVEVExTX1NUQVRJQ19URVNUQUJMRQotaW50IG1iZWR0bHNfZWNwX21vZF9wMjI0X3JhdyhtYmVkdGxzX21waV91aW50ICpYLCBzaXplX3QgWF9saW1icykKLXsKLSAgICBpZiAoWF9saW1icyAhPSBCSVRTX1RPX0xJTUJTKDIyNCkgKiAyKSB7Ci0gICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9FQ1BfQkFEX0lOUFVUX0RBVEE7Ci0gICAgfQotCi0gICAgSU5JVCgyMjQpOwotCi0gICAgU1VCKDcpOyAgU1VCKDExKTsgICAgICAgICAgIE5FWFQ7ICAgLy8gQTAgKz0gLUE3ICAtIEExMQotICAgIFNVQig4KTsgIFNVQigxMik7ICAgICAgICAgICBORVhUOyAgIC8vIEExICs9IC1BOCAgLSBBMTIKLSAgICBTVUIoOSk7ICBTVUIoMTMpOyAgICAgICAgICAgTkVYVDsgICAvLyBBMiArPSAtQTkgIC0gQTEzCi0gICAgU1VCKDEwKTsgQUREKDcpOyAgQUREKDExKTsgIE5FWFQ7ICAgLy8gQTMgKz0gLUExMCArIEE3ICsgQTExCi0gICAgU1VCKDExKTsgQUREKDgpOyAgQUREKDEyKTsgIE5FWFQ7ICAgLy8gQTQgKz0gLUExMSArIEE4ICsgQTEyCi0gICAgU1VCKDEyKTsgQUREKDkpOyAgQUREKDEzKTsgIE5FWFQ7ICAgLy8gQTUgKz0gLUExMiArIEE5ICsgQTEzCi0gICAgU1VCKDEzKTsgQUREKDEwKTsgICAgICAgICAgICAgICAgICAgLy8gQTYgKz0gLUExMyArIEExMAotCi0gICAgUkVTRVQ7Ci0KLSAgICAvKiBVc2UgMl4yMjQgPSBQICsgMl45NiAtIDEgdG8gbW9kdWxvIHJlZHVjZSB0aGUgZmluYWwgY2FycnkgKi8KLSAgICBTVUJfTEFTVDsgTkVYVDsgICAgICAgICAgICAgICAgICAgICAvLyBBMCAtPSBsYXN0X2MKLSAgICA7ICAgICAgICAgTkVYVDsgICAgICAgICAgICAgICAgICAgICAvLyBBMQotICAgIDsgICAgICAgICBORVhUOyAgICAgICAgICAgICAgICAgICAgIC8vIEEyCi0gICAgQUREX0xBU1Q7IE5FWFQ7ICAgICAgICAgICAgICAgICAgICAgLy8gQTMgKz0gbGFzdF9jCi0gICAgOyAgICAgICAgIE5FWFQ7ICAgICAgICAgICAgICAgICAgICAgLy8gQTQKLSAgICA7ICAgICAgICAgTkVYVDsgICAgICAgICAgICAgICAgICAgICAvLyBBNQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIEE2Ci0KLSAgICAvKiBUaGUgY2FycnkgcmVkdWN0aW9uIGNhbm5vdCBnZW5lcmF0ZSBhIGNhcnJ5Ci0gICAgICogKHNlZSBjb21taXQgNzNlODU1MyBmb3IgZGV0YWlscykqLwotCi0gICAgTEFTVDsKLQotICAgIHJldHVybiAwOwotfQotCi0jZW5kaWYgLyogTUJFRFRMU19FQ1BfRFBfU0VDUDIyNFIxX0VOQUJMRUQgKi8KLQotI2lmIGRlZmluZWQoTUJFRFRMU19FQ1BfRFBfU0VDUDI1NlIxX0VOQUJMRUQpCi0KLS8qCi0gKiBGYXN0IHF1YXNpLXJlZHVjdGlvbiBtb2R1bG8gcDI1NiAoRklQUyAxODYtMyBELjIuMykKLSAqLwotc3RhdGljIGludCBlY3BfbW9kX3AyNTYobWJlZHRsc19tcGkgKk4pCi17Ci0gICAgaW50IHJldCA9IE1CRURUTFNfRVJSX0VSUk9SX0NPUlJVUFRJT05fREVURUNURUQ7Ci0gICAgc2l6ZV90IGV4cGVjdGVkX3dpZHRoID0gQklUU19UT19MSU1CUygyNTYpICogMjsKLSAgICBNQkVEVExTX01QSV9DSEsobWJlZHRsc19tcGlfZ3JvdyhOLCBleHBlY3RlZF93aWR0aCkpOwotICAgIHJldCA9IG1iZWR0bHNfZWNwX21vZF9wMjU2X3JhdyhOLT5wLCBleHBlY3RlZF93aWR0aCk7Ci1jbGVhbnVwOgotICAgIHJldHVybiByZXQ7Ci19Ci0KLU1CRURUTFNfU1RBVElDX1RFU1RBQkxFCi1pbnQgbWJlZHRsc19lY3BfbW9kX3AyNTZfcmF3KG1iZWR0bHNfbXBpX3VpbnQgKlgsIHNpemVfdCBYX2xpbWJzKQotewotICAgIGlmIChYX2xpbWJzICE9IEJJVFNfVE9fTElNQlMoMjU2KSAqIDIpIHsKLSAgICAgICAgcmV0dXJuIE1CRURUTFNfRVJSX0VDUF9CQURfSU5QVVRfREFUQTsKLSAgICB9Ci0KLSAgICBJTklUKDI1Nik7Ci0KLSAgICBBREQoOCk7ICBBREQoOSk7Ci0gICAgU1VCKDExKTsgU1VCKDEyKTsgU1VCKDEzKTsgU1VCKDE0KTsgICAgICAgICAgICAgICAgICAgTkVYVDsgLy8gQTAKLQotICAgIEFERCg5KTsgIEFERCgxMCk7Ci0gICAgU1VCKDEyKTsgU1VCKDEzKTsgU1VCKDE0KTsgU1VCKDE1KTsgICAgICAgICAgICAgICAgICAgTkVYVDsgLy8gQTEKLQotICAgIEFERCgxMCk7IEFERCgxMSk7Ci0gICAgU1VCKDEzKTsgU1VCKDE0KTsgU1VCKDE1KTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgTkVYVDsgLy8gQTIKLQotICAgIEFERCgxMSk7IEFERCgxMSk7IEFERCgxMik7IEFERCgxMik7IEFERCgxMyk7Ci0gICAgU1VCKDE1KTsgU1VCKDgpOyAgU1VCKDkpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTkVYVDsgLy8gQTMKLQotICAgIEFERCgxMik7IEFERCgxMik7IEFERCgxMyk7IEFERCgxMyk7IEFERCgxNCk7Ci0gICAgU1VCKDkpOyAgU1VCKDEwKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTkVYVDsgLy8gQTQKLQotICAgIEFERCgxMyk7IEFERCgxMyk7IEFERCgxNCk7IEFERCgxNCk7IEFERCgxNSk7Ci0gICAgU1VCKDEwKTsgU1VCKDExKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTkVYVDsgLy8gQTUKLQotICAgIEFERCgxNCk7IEFERCgxNCk7IEFERCgxNSk7IEFERCgxNSk7IEFERCgxNCk7IEFERCgxMyk7Ci0gICAgU1VCKDgpOyAgU1VCKDkpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTkVYVDsgLy8gQTYKLQotICAgIEFERCgxNSk7IEFERCgxNSk7IEFERCgxNSk7IEFERCg4KTsKLSAgICBTVUIoMTApOyBTVUIoMTEpOyBTVUIoMTIpOyBTVUIoMTMpOyAgICAgICAgICAgICAgICAgICAgICAgICAvLyBBNwotCi0gICAgUkVTRVQ7Ci0KLSAgICAvKiBVc2UgMl4yMjQgKiAoMl4zMiAtIDEpICsgMl4xOTIgKyAyXjk2IC0gMQotICAgICAqIHRvIG1vZHVsbyByZWR1Y2UgdGhlIGZpbmFsIGNhcnJ5LiAqLwotICAgIEFERF9MQVNUOyBORVhUOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIEEwCi0gICAgOyAgICAgICAgIE5FWFQ7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gQTEKLSAgICA7ICAgICAgICAgTkVYVDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBBMgotICAgIFNVQl9MQVNUOyBORVhUOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIEEzCi0gICAgOyAgICAgICAgIE5FWFQ7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gQTQKLSAgICA7ICAgICAgICAgTkVYVDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBBNQotICAgIFNVQl9MQVNUOyBORVhUOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIEE2Ci0gICAgQUREX0xBU1Q7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gQTcKLQotICAgIFJFU0VUOwotCi0gICAgLyogVXNlIDJeMjI0ICogKDJeMzIgLSAxKSArIDJeMTkyICsgMl45NiAtIDEKLSAgICAgKiB0byBtb2R1bG8gcmVkdWNlIHRoZSBjYXJyeSBnZW5lcmF0ZWQgYnkgdGhlIHByZXZpb3VzIHJlZHVjdGlvbi4gKi8KLSAgICBBRERfTEFTVDsgTkVYVDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBBMAotICAgIDsgICAgICAgICBORVhUOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIEExCi0gICAgOyAgICAgICAgIE5FWFQ7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gQTIKLSAgICBTVUJfTEFTVDsgTkVYVDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBBMwotICAgIDsgICAgICAgICBORVhUOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIEE0Ci0gICAgOyAgICAgICAgIE5FWFQ7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gQTUKLSAgICBTVUJfTEFTVDsgTkVYVDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBBNgotICAgIEFERF9MQVNUOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIEE3Ci0KLSAgICBMQVNUOwotCi0gICAgcmV0dXJuIDA7Ci19Ci0KLSNlbmRpZiAvKiBNQkVEVExTX0VDUF9EUF9TRUNQMjU2UjFfRU5BQkxFRCAqLwotCi0jaWYgZGVmaW5lZChNQkVEVExTX0VDUF9EUF9TRUNQMzg0UjFfRU5BQkxFRCkKLS8qCi0gKiBGYXN0IHF1YXNpLXJlZHVjdGlvbiBtb2R1bG8gcDM4NCAoRklQUyAxODYtMyBELjIuNCkKLSAqLwotc3RhdGljIGludCBlY3BfbW9kX3AzODQobWJlZHRsc19tcGkgKk4pCi17Ci0gICAgaW50IHJldCA9IE1CRURUTFNfRVJSX0VSUk9SX0NPUlJVUFRJT05fREVURUNURUQ7Ci0gICAgc2l6ZV90IGV4cGVjdGVkX3dpZHRoID0gQklUU19UT19MSU1CUygzODQpICogMjsKLSAgICBNQkVEVExTX01QSV9DSEsobWJlZHRsc19tcGlfZ3JvdyhOLCBleHBlY3RlZF93aWR0aCkpOwotICAgIHJldCA9IG1iZWR0bHNfZWNwX21vZF9wMzg0X3JhdyhOLT5wLCBleHBlY3RlZF93aWR0aCk7Ci1jbGVhbnVwOgotICAgIHJldHVybiByZXQ7Ci19Ci0KLU1CRURUTFNfU1RBVElDX1RFU1RBQkxFCi1pbnQgbWJlZHRsc19lY3BfbW9kX3AzODRfcmF3KG1iZWR0bHNfbXBpX3VpbnQgKlgsIHNpemVfdCBYX2xpbWJzKQotewotICAgIGlmIChYX2xpbWJzICE9IEJJVFNfVE9fTElNQlMoMzg0KSAqIDIpIHsKLSAgICAgICAgcmV0dXJuIE1CRURUTFNfRVJSX0VDUF9CQURfSU5QVVRfREFUQTsKLSAgICB9Ci0KLSAgICBJTklUKDM4NCk7Ci0KLSAgICBBREQoMTIpOyBBREQoMjEpOyBBREQoMjApOwotICAgIFNVQigyMyk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTkVYVDsgLy8gQTAKLQotICAgIEFERCgxMyk7IEFERCgyMik7IEFERCgyMyk7Ci0gICAgU1VCKDEyKTsgU1VCKDIwKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBORVhUOyAvLyBBMQotCi0gICAgQUREKDE0KTsgQUREKDIzKTsKLSAgICBTVUIoMTMpOyBTVUIoMjEpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5FWFQ7IC8vIEEyCi0KLSAgICBBREQoMTUpOyBBREQoMTIpOyBBREQoMjApOyBBREQoMjEpOwotICAgIFNVQigxNCk7IFNVQigyMik7IFNVQigyMyk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTkVYVDsgLy8gQTMKLQotICAgIEFERCgyMSk7IEFERCgyMSk7IEFERCgxNik7IEFERCgxMyk7IEFERCgxMik7IEFERCgyMCk7IEFERCgyMik7Ci0gICAgU1VCKDE1KTsgU1VCKDIzKTsgU1VCKDIzKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBORVhUOyAvLyBBNAotCi0gICAgQUREKDIyKTsgQUREKDIyKTsgQUREKDE3KTsgQUREKDE0KTsgQUREKDEzKTsgQUREKDIxKTsgQUREKDIzKTsKLSAgICBTVUIoMTYpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5FWFQ7IC8vIEE1Ci0KLSAgICBBREQoMjMpOyBBREQoMjMpOyBBREQoMTgpOyBBREQoMTUpOyBBREQoMTQpOyBBREQoMjIpOwotICAgIFNVQigxNyk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTkVYVDsgLy8gQTYKLQotICAgIEFERCgxOSk7IEFERCgxNik7IEFERCgxNSk7IEFERCgyMyk7Ci0gICAgU1VCKDE4KTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBORVhUOyAvLyBBNwotCi0gICAgQUREKDIwKTsgQUREKDE3KTsgQUREKDE2KTsKLSAgICBTVUIoMTkpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5FWFQ7IC8vIEE4Ci0KLSAgICBBREQoMjEpOyBBREQoMTgpOyBBREQoMTcpOwotICAgIFNVQigyMCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTkVYVDsgLy8gQTkKLQotICAgIEFERCgyMik7IEFERCgxOSk7IEFERCgxOCk7Ci0gICAgU1VCKDIxKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBORVhUOyAvLyBBMTAKLQotICAgIEFERCgyMyk7IEFERCgyMCk7IEFERCgxOSk7Ci0gICAgU1VCKDIyKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBBMTEKLQotICAgIFJFU0VUOwotCi0gICAgLyogVXNlIDJeMzg0ID0gUCArIDJeMTI4ICsgMl45NiAtIDJeMzIgKyAxIHRvIG1vZHVsbyByZWR1Y2UgdGhlIGZpbmFsIGNhcnJ5ICovCi0gICAgQUREX0xBU1Q7IE5FWFQ7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBBMAotICAgIFNVQl9MQVNUOyBORVhUOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gQTEKLSAgICA7ICAgICAgICAgTkVYVDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIEEyCi0gICAgQUREX0xBU1Q7IE5FWFQ7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBBMwotICAgIEFERF9MQVNUOyBORVhUOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gQTQKLSAgICA7ICAgICAgICAgTkVYVDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIEE1Ci0gICAgOyAgICAgICAgIE5FWFQ7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBBNgotICAgIDsgICAgICAgICBORVhUOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gQTcKLSAgICA7ICAgICAgICAgTkVYVDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIEE4Ci0gICAgOyAgICAgICAgIE5FWFQ7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBBOQotICAgIDsgICAgICAgICBORVhUOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gQTEwCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBBMTEKLQotICAgIFJFU0VUOwotCi0gICAgQUREX0xBU1Q7IE5FWFQ7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBBMAotICAgIFNVQl9MQVNUOyBORVhUOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gQTEKLSAgICA7ICAgICAgICAgTkVYVDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIEEyCi0gICAgQUREX0xBU1Q7IE5FWFQ7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBBMwotICAgIEFERF9MQVNUOyBORVhUOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gQTQKLSAgICA7ICAgICAgICAgTkVYVDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIEE1Ci0gICAgOyAgICAgICAgIE5FWFQ7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBBNgotICAgIDsgICAgICAgICBORVhUOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gQTcKLSAgICA7ICAgICAgICAgTkVYVDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIEE4Ci0gICAgOyAgICAgICAgIE5FWFQ7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBBOQotICAgIDsgICAgICAgICBORVhUOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gQTEwCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBBMTEKLQotICAgIExBU1Q7Ci0KLSAgICByZXR1cm4gMDsKLX0KLSNlbmRpZiAvKiBNQkVEVExTX0VDUF9EUF9TRUNQMzg0UjFfRU5BQkxFRCAqLwotCi0jdW5kZWYgTE9BRDMyCi0jdW5kZWYgTUFYMzIKLSN1bmRlZiBBCi0jdW5kZWYgU1RPUkUzMgotI3VuZGVmIFNUT1JFMAotI3VuZGVmIEFERAotI3VuZGVmIFNVQgotI3VuZGVmIEFERF9DQVJSWQotI3VuZGVmIFNVQl9DQVJSWQotI3VuZGVmIEFERF9MQVNUCi0jdW5kZWYgU1VCX0xBU1QKLSN1bmRlZiBJTklUCi0jdW5kZWYgTkVYVAotI3VuZGVmIFJFU0VUCi0jdW5kZWYgTEFTVAotCi0jZW5kaWYgLyogTUJFRFRMU19FQ1BfRFBfU0VDUDIyNFIxX0VOQUJMRUQgfHwKLSAgICAgICAgICBNQkVEVExTX0VDUF9EUF9TRUNQMjU2UjFfRU5BQkxFRCB8fAotICAgICAgICAgIE1CRURUTFNfRUNQX0RQX1NFQ1AzODRSMV9FTkFCTEVEICovCi0KLSNpZiBkZWZpbmVkKE1CRURUTFNfRUNQX0RQX1NFQ1A1MjFSMV9FTkFCTEVEKQotLyogU2l6ZSBvZiBwNTIxIGluIHRlcm1zIG9mIG1iZWR0bHNfbXBpX3VpbnQgKi8KLSNkZWZpbmUgUDUyMV9XSURUSCAgICAgICg1MjEgLyA4IC8gc2l6ZW9mKG1iZWR0bHNfbXBpX3VpbnQpICsgMSkKLQotLyogQml0cyB0byBrZWVwIGluIHRoZSBtb3N0IHNpZ25pZmljYW50IG1iZWR0bHNfbXBpX3VpbnQgKi8KLSNkZWZpbmUgUDUyMV9NQVNLICAgICAgIDB4MDFGRgotCi0vKgotICogRmFzdCBxdWFzaS1yZWR1Y3Rpb24gbW9kdWxvIHA1MjEgPSAyXjUyMSAtIDEgKEZJUFMgMTg2LTMgRC4yLjUpCi0gKi8KLXN0YXRpYyBpbnQgZWNwX21vZF9wNTIxKG1iZWR0bHNfbXBpICpOKQotewotICAgIGludCByZXQgPSBNQkVEVExTX0VSUl9FUlJPUl9DT1JSVVBUSU9OX0RFVEVDVEVEOwotICAgIHNpemVfdCBleHBlY3RlZF93aWR0aCA9IEJJVFNfVE9fTElNQlMoNTIxKSAqIDI7Ci0gICAgTUJFRFRMU19NUElfQ0hLKG1iZWR0bHNfbXBpX2dyb3coTiwgZXhwZWN0ZWRfd2lkdGgpKTsKLSAgICByZXQgPSBtYmVkdGxzX2VjcF9tb2RfcDUyMV9yYXcoTi0+cCwgZXhwZWN0ZWRfd2lkdGgpOwotY2xlYW51cDoKLSAgICByZXR1cm4gcmV0OwotfQotCi1NQkVEVExTX1NUQVRJQ19URVNUQUJMRQotaW50IG1iZWR0bHNfZWNwX21vZF9wNTIxX3JhdyhtYmVkdGxzX21waV91aW50ICpYLCBzaXplX3QgWF9saW1icykKLXsKLSAgICBtYmVkdGxzX21waV91aW50IGNhcnJ5ID0gMDsKLQotICAgIGlmIChYX2xpbWJzICE9IEJJVFNfVE9fTElNQlMoNTIxKSAqIDIpIHsKLSAgICAgICAgcmV0dXJuIE1CRURUTFNfRVJSX0VDUF9CQURfSU5QVVRfREFUQTsKLSAgICB9Ci0KLSAgICAvKiBTdGVwIDE6IFJlZHVjdGlvbiB0byBQNTIxX1dJRFRIIGxpbWJzICovCi0gICAgLyogSGVscGVyIHJlZmVyZW5jZXMgZm9yIGJvdHRvbSBwYXJ0IG9mIFggKi8KLSAgICBtYmVkdGxzX21waV91aW50ICpYMCA9IFg7Ci0gICAgc2l6ZV90IFgwX2xpbWJzID0gUDUyMV9XSURUSDsKLSAgICAvKiBIZWxwZXIgcmVmZXJlbmNlcyBmb3IgdG9wIHBhcnQgb2YgWCAqLwotICAgIG1iZWR0bHNfbXBpX3VpbnQgKlgxID0gWCArIFgwX2xpbWJzOwotICAgIHNpemVfdCBYMV9saW1icyA9IFhfbGltYnMgLSBYMF9saW1iczsKLSAgICAvKiBTcGxpdCBYIGFzIFgwICsgMl5QNTIxX1dJRFRIIFgxIGFuZCBjb21wdXRlIFgwICsgMl4oYmlMIC0gOSkgWDEuCi0gICAgICogKFdlIGFyZSB1c2luZyB0aGF0IDJeUDUyMV9XSURUSCA9IDJeKDUxMiArIGJpTCkgYW5kIHRoYXQKLSAgICAgKiAyXig1MTIgKyBiaUwpIFgxID0gMl4oYmlMIC0gOSkgWDEgbW9kIFA1MjEuKQotICAgICAqIFRoZSBoaWdoIG9yZGVyIGxpbWIgb2YgdGhlIHJlc3VsdCB3aWxsIGJlIGhlbGQgaW4gY2FycnkgYW5kIHRoZSByZXN0Ci0gICAgICogaW4gWDAgKHRoYXQgaXMgdGhlIHJlc3VsdCB3aWxsIGJlIHJlcHJlc2VudGVkIGFzCi0gICAgICogMl5QNTIxX1dJRFRIIGNhcnJ5ICsgWDApLgotICAgICAqCi0gICAgICogQWxzbywgbm90ZSB0aGF0IHRoZSByZXN1bHRpbmcgY2FycnkgaXMgZWl0aGVyIDAgb3IgMToKLSAgICAgKiBYMCA8IDJeUDUyMV9XSURUSCA9IDJeKDUxMiArIGJpTCkgYW5kIFgxIDwgMl4oUDUyMV9XSURUSC1iaUwpID0gMl41MTIKLSAgICAgKiB0aGVyZWZvcmUKLSAgICAgKiBYMCArIDJeKGJpTCAtIDkpIFgxIDwgMl4oNTEyICsgYmlMKSArIDJeKDUxMiArIGJpTCAtIDkpCi0gICAgICogd2hpY2ggaW4gdHVybiBpcyBsZXNzIHRoYW4gMiAqIDJeKDUxMiArIGJpTCkuCi0gICAgICovCi0gICAgbWJlZHRsc19tcGlfdWludCBzaGlmdCA9ICgobWJlZHRsc19tcGlfdWludCkgMXUpIDw8IChiaUwgLSA5KTsKLSAgICBjYXJyeSA9IG1iZWR0bHNfbXBpX2NvcmVfbWxhKFgwLCBYMF9saW1icywgWDEsIFgxX2xpbWJzLCBzaGlmdCk7Ci0gICAgLyogU2V0IFggdG8gWDAgKGJ5IGNsZWFyaW5nIHRoZSB0b3AgcGFydCkuICovCi0gICAgbWVtc2V0KFgxLCAwLCBYMV9saW1icyAqIHNpemVvZihtYmVkdGxzX21waV91aW50KSk7Ci0KLSAgICAvKiBTdGVwIDI6IFJlZHVjdGlvbiBtb2R1bG8gUDUyMQotICAgICAqCi0gICAgICogQXQgdGhpcyBwb2ludCBYIGlzIHJlZHVjZWQgdG8gUDUyMV9XSURUSCBsaW1icy4gV2hhdCByZW1haW5zIGlzIHRvIGFkZAotICAgICAqIHRoZSBjYXJyeSAodGhhdCBpcyAyXlA1MjFfV0lEVEggY2FycnkpIGFuZCB0byByZWR1Y2UgbW9kIFA1MjEuICovCi0KLSAgICAvKiAyXlA1MjFfV0lEVEggY2FycnkgPSAyXig1MTIgKyBiaUwpIGNhcnJ5ID0gMl4oYmlMIC0gOSkgY2FycnkgbW9kIFA1MjEuCi0gICAgICogQWxzbywgcmVjYWxsIHRoYXQgY2FycnkgaXMgZWl0aGVyIDAgb3IgMS4gKi8KLSAgICBtYmVkdGxzX21waV91aW50IGFkZGVuZCA9IGNhcnJ5IDw8IChiaUwgLSA5KTsKLSAgICAvKiBLZWVwIHRoZSB0b3AgOSBiaXRzIGFuZCByZWR1Y2UgdGhlIHJlc3QsIHVzaW5nIDJeNTIxID0gMSBtb2QgUDUyMS4gKi8KLSAgICBhZGRlbmQgKz0gKFhbUDUyMV9XSURUSCAtIDFdID4+IDkpOwotICAgIFhbUDUyMV9XSURUSCAtIDFdICY9IFA1MjFfTUFTSzsKLQotICAgIC8qIFJldXNlIHRoZSB0b3AgcGFydCBvZiBYIChhbHJlYWR5IHplcm9lZCkgYXMgYSBoZWxwZXIgYXJyYXkgZm9yCi0gICAgICogY2Fycnlpbmcgb3V0IHRoZSBhZGRpdGlvbi4gKi8KLSAgICBtYmVkdGxzX21waV91aW50ICphZGRlbmRfYXJyID0gWCArIFA1MjFfV0lEVEg7Ci0gICAgYWRkZW5kX2FyclswXSA9IGFkZGVuZDsKLSAgICAodm9pZCkgbWJlZHRsc19tcGlfY29yZV9hZGQoWCwgWCwgYWRkZW5kX2FyciwgUDUyMV9XSURUSCk7Ci0gICAgLyogQm90aCBhZGRlbmRzIHdlcmUgbGVzcyB0aGFuIFA1MjEgdGhlcmVmb3JlIFggPCAyICogUDUyMS4gKFRoaXMgYWxzbyBtZWFucwotICAgICAqIHRoYXQgdGhlIHJlc3VsdCBmaXQgaW4gUDUyMV9XSURUSCBsaW1icyBhbmQgdGhlcmUgd29uJ3QgYmUgYW55IGNhcnJ5LikgKi8KLQotICAgIC8qIENsZWFyIHRoZSByZXVzZWQgcGFydCBvZiBYLiAqLwotICAgIGFkZGVuZF9hcnJbMF0gPSAwOwotCi0gICAgcmV0dXJuIDA7Ci19Ci0KLSN1bmRlZiBQNTIxX1dJRFRICi0jdW5kZWYgUDUyMV9NQVNLCi0KLSNlbmRpZiAvKiBNQkVEVExTX0VDUF9EUF9TRUNQNTIxUjFfRU5BQkxFRCAqLwotCi0jZW5kaWYgLyogTUJFRFRMU19FQ1BfTklTVF9PUFRJTSAqLwotCi0jaWYgZGVmaW5lZChNQkVEVExTX0VDUF9EUF9DVVJWRTI1NTE5X0VOQUJMRUQpCi0KLS8qIFNpemUgb2YgcDI1NSBpbiB0ZXJtcyBvZiBtYmVkdGxzX21waV91aW50ICovCi0jZGVmaW5lIFAyNTVfV0lEVEggICAgICAoMjU1IC8gOCAvIHNpemVvZihtYmVkdGxzX21waV91aW50KSArIDEpCi0KLS8qCi0gKiBGYXN0IHF1YXNpLXJlZHVjdGlvbiBtb2R1bG8gcDI1NSA9IDJeMjU1IC0gMTkKLSAqIFdyaXRlIE4gYXMgQTAgKyAyXjI1NiBBMSwgcmV0dXJuIEEwICsgMzggKiBBMQotICovCi1zdGF0aWMgaW50IGVjcF9tb2RfcDI1NShtYmVkdGxzX21waSAqTikKLXsKLSAgICBpbnQgcmV0ID0gTUJFRFRMU19FUlJfRVJST1JfQ09SUlVQVElPTl9ERVRFQ1RFRDsKLSAgICBzaXplX3QgZXhwZWN0ZWRfd2lkdGggPSBCSVRTX1RPX0xJTUJTKDI1NSkgKiAyOwotICAgIE1CRURUTFNfTVBJX0NISyhtYmVkdGxzX21waV9ncm93KE4sIGV4cGVjdGVkX3dpZHRoKSk7Ci0gICAgcmV0ID0gbWJlZHRsc19lY3BfbW9kX3AyNTVfcmF3KE4tPnAsIGV4cGVjdGVkX3dpZHRoKTsKLWNsZWFudXA6Ci0gICAgcmV0dXJuIHJldDsKLX0KLQotTUJFRFRMU19TVEFUSUNfVEVTVEFCTEUKLWludCBtYmVkdGxzX2VjcF9tb2RfcDI1NV9yYXcobWJlZHRsc19tcGlfdWludCAqWCwgc2l6ZV90IFhfTGltYnMpCi17Ci0KLSAgICBpZiAoWF9MaW1icyAhPSBCSVRTX1RPX0xJTUJTKDI1NSkgKiAyKSB7Ci0gICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9FQ1BfQkFEX0lOUFVUX0RBVEE7Ci0gICAgfQotCi0gICAgbWJlZHRsc19tcGlfdWludCAqY2FycnkgPSBtYmVkdGxzX2NhbGxvYyhQMjU1X1dJRFRILCBjaUwpOwotICAgIGlmIChjYXJyeSA9PSBOVUxMKSB7Ci0gICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9FQ1BfQUxMT0NfRkFJTEVEOwotICAgIH0KLQotICAgIC8qIFN0ZXAgMTogUmVkdWN0aW9uIHRvIFAyNTVfV0lEVEggbGltYnMgKi8KLSAgICBpZiAoWF9MaW1icyA+IFAyNTVfV0lEVEgpIHsKLSAgICAgICAgLyogSGVscGVyIHJlZmVyZW5jZXMgZm9yIHRvcCBwYXJ0IG9mIFggKi8KLSAgICAgICAgbWJlZHRsc19tcGlfdWludCAqIGNvbnN0IEExID0gWCArIFAyNTVfV0lEVEg7Ci0gICAgICAgIGNvbnN0IHNpemVfdCBBMV9saW1icyA9IFhfTGltYnMgLSBQMjU1X1dJRFRIOwotCi0gICAgICAgIC8qIFggPSBBMCArIDM4ICogQTEsIGNhcHR1cmUgY2Fycnkgb3V0ICovCi0gICAgICAgICpjYXJyeSA9IG1iZWR0bHNfbXBpX2NvcmVfbWxhKFgsIFAyNTVfV0lEVEgsIEExLCBBMV9saW1icywgMzgpOwotICAgICAgICAvKiBDbGVhciB0b3AgcGFydCAqLwotICAgICAgICBtZW1zZXQoQTEsIDAsIHNpemVvZihtYmVkdGxzX21waV91aW50KSAqIEExX2xpbWJzKTsKLSAgICB9Ci0KLSAgICAvKiBTdGVwIDI6IFJlZHVjZSB0byA8MnAKLSAgICAgKiBTcGxpdCBhcyBBMCArIDJeMjU1KmMsIHdpdGggYyBhIHNjYWxhciwgYW5kIGNvbXB1dGUgQTAgKyAxOSpjICovCi0gICAgKmNhcnJ5IDw8PSAxOwotICAgICpjYXJyeSArPSAoWFtQMjU1X1dJRFRIIC0gMV0gPj4gKGJpTCAtIDEpKTsKLSAgICAqY2FycnkgKj0gMTk7Ci0KLSAgICAvKiBDbGVhciB0b3AgYml0ICovCi0gICAgWFtQMjU1X1dJRFRIIC0gMV0gPDw9IDE7IFhbUDI1NV9XSURUSCAtIDFdID4+PSAxOwotICAgIC8qIFNpbmNlIHRoZSB0b3AgYml0IGZvciBYIGhhcyBiZWVuIGNsZWFyZWQgMCArIDAgKyBDYXJyeQotICAgICAqIHdpbGwgbm90IG92ZXJmbG93LgotICAgICAqCi0gICAgICogRnVydGhlcm1vcmUgZm9yIDJwID0gMl4yNTYtMzguIFdoZW4gYSBjYXJyeSBwcm9wYWdhdGlvbiBvbiB0aGUgaGlnaGVzdAotICAgICAqIGxpbWIgb2NjdXJzLCBYID4gMl4yNTUgYW5kIGFsbCB0aGUgcmVtYWluaW5nIGJpdHMgb24gdGhlIGxpbWIgYXJlIHplcm8uCi0gICAgICogICAtIElmIFggPCAyXjI1NSA9PT4gWCA8IDJwCi0gICAgICogICAtIElmIFggPiAyXjI1NSA9PT4gWCA8IDJeMjU2IC0gMl4yNTUgPCAycCAgKi8KLSAgICAodm9pZCkgbWJlZHRsc19tcGlfY29yZV9hZGQoWCwgWCwgY2FycnksIFAyNTVfV0lEVEgpOwotCi0gICAgbWJlZHRsc19mcmVlKGNhcnJ5KTsKLSAgICByZXR1cm4gMDsKLX0KLSNlbmRpZiAvKiBNQkVEVExTX0VDUF9EUF9DVVJWRTI1NTE5X0VOQUJMRUQgKi8KLQotI2lmIGRlZmluZWQoTUJFRFRMU19FQ1BfRFBfQ1VSVkU0NDhfRU5BQkxFRCkKLQotLyogU2l6ZSBvZiBwNDQ4IGluIHRlcm1zIG9mIG1iZWR0bHNfbXBpX3VpbnQgKi8KLSNkZWZpbmUgUDQ0OF9XSURUSCAgICAgICg0NDggLyA4IC8gc2l6ZW9mKG1iZWR0bHNfbXBpX3VpbnQpKQotCi0vKiBOdW1iZXIgb2YgbGltYnMgZnVsbHkgb2NjdXBpZWQgYnkgMl4yMjQgKG1heCksIGFuZCBsaW1icyB1c2VkIGJ5IGl0IChtaW4pICovCi0jZGVmaW5lIERJVl9ST1VORF9VUChYLCBZKSAoKChYKSArIChZKSAtMSkgLyAoWSkpCi0jZGVmaW5lIFAyMjRfU0laRSAgICAgICAgKDIyNCAvIDgpCi0jZGVmaW5lIFAyMjRfV0lEVEhfTUlOICAgKFAyMjRfU0laRSAvIHNpemVvZihtYmVkdGxzX21waV91aW50KSkKLSNkZWZpbmUgUDIyNF9XSURUSF9NQVggICBESVZfUk9VTkRfVVAoUDIyNF9TSVpFLCBzaXplb2YobWJlZHRsc19tcGlfdWludCkpCi0jZGVmaW5lIFAyMjRfVU5VU0VEX0JJVFMgKChQMjI0X1dJRFRIX01BWCAqIHNpemVvZihtYmVkdGxzX21waV91aW50KSAqIDgpIC0gMjI0KQotCi1zdGF0aWMgaW50IGVjcF9tb2RfcDQ0OChtYmVkdGxzX21waSAqTikKLXsKLSAgICBpbnQgcmV0ID0gTUJFRFRMU19FUlJfRVJST1JfQ09SUlVQVElPTl9ERVRFQ1RFRDsKLSAgICBzaXplX3QgZXhwZWN0ZWRfd2lkdGggPSBCSVRTX1RPX0xJTUJTKDQ0OCkgKiAyOwotCi0gICAgLyogVGhpcyBpcyByZXF1aXJlZCBhcyBzb21lIHRlc3RzIGFuZCB1c2UgY2FzZXMgZG8gbm90IHBhc3MgaW4gYSBCaWdudW0gb2YKLSAgICAgKiB0aGUgY29ycmVjdCBzaXplLCBhbmQgZXhwZWN0IHRoZSBncm93dGggdG8gYmUgZG9uZSBhdXRvbWF0aWNhbGx5LCB3aGljaAotICAgICAqIHdpbGwgbm8gbG9uZ2VyIGhhcHBlbi4gKi8KLSAgICBNQkVEVExTX01QSV9DSEsobWJlZHRsc19tcGlfZ3JvdyhOLCBleHBlY3RlZF93aWR0aCkpOwotCi0gICAgcmV0ID0gbWJlZHRsc19lY3BfbW9kX3A0NDhfcmF3KE4tPnAsIE4tPm4pOwotCi1jbGVhbnVwOgotICAgIHJldHVybiByZXQ7Ci19Ci0KLS8qCi0gKiBGYXN0IHF1YXNpLXJlZHVjdGlvbiBtb2R1bG8gcDQ0OCA9IDJeNDQ4IC0gMl4yMjQgLSAxCi0gKiBXcml0ZSBYIGFzIEEwICsgMl40NDggQTEgYW5kIEExIGFzIEIwICsgMl4yMjQgQjEsIGFuZCByZXR1cm4gQTAgKyBBMSArIEIxICsKLSAqIChCMCArIEIxKSAqIDJeMjI0LiAgVGhpcyBpcyBkaWZmZXJlbnQgdG8gdGhlIHJlZmVyZW5jZSBpbXBsZW1lbnRhdGlvbiBvZgotICogQ3VydmU0NDgsIHdoaWNoIHVzZXMgaXRzIG93biBzcGVjaWFsIDU2LWJpdCBsaW1icyByYXRoZXIgdGhhbiBhIGdlbmVyaWMKLSAqIGJpZ251bSBsaWJyYXJ5LiAgV2UgY291bGQgc3F1ZWV6ZSBzb21lIGV4dHJhIHNwZWVkIG91dCBvbiAzMi1iaXQgbWFjaGluZXMgYnkKLSAqIHNwbGl0dGluZyBOIHVwIGludG8gMzItYml0IGxpbWJzIGFuZCBkb2luZyB0aGUgYXJpdGhtZXRpYyB1c2luZyB0aGUgbGltYnMKLSAqIGRpcmVjdGx5IGFzIHdlIGRvIGZvciB0aGUgTklTVCBwcmltZXMgYWJvdmUsIGJ1dCBmb3IgNjQtYml0IHRhcmdldHMgaXQgc2hvdWxkCi0gKiB1c2UgaGFsZiB0aGUgbnVtYmVyIG9mIG9wZXJhdGlvbnMgaWYgd2UgZG8gdGhlIHJlZHVjdGlvbiB3aXRoIDIyNC1iaXQgbGltYnMsCi0gKiBzaW5jZSBtcGlfY29yZV9hZGQgd2lsbCB0aGVuIHVzZSA2NC1iaXQgYWRkcy4KLSAqLwotTUJFRFRMU19TVEFUSUNfVEVTVEFCTEUKLWludCBtYmVkdGxzX2VjcF9tb2RfcDQ0OF9yYXcobWJlZHRsc19tcGlfdWludCAqWCwgc2l6ZV90IFhfbGltYnMpCi17Ci0gICAgc2l6ZV90IHJvdW5kOwotICAgIGludCByZXQgPSBNQkVEVExTX0VSUl9FUlJPUl9DT1JSVVBUSU9OX0RFVEVDVEVEOwotCi0gICAgaWYgKFhfbGltYnMgIT0gQklUU19UT19MSU1CUyg0NDgpICogMikgewotICAgICAgICByZXR1cm4gMDsKLSAgICB9Ci0KLSAgICBzaXplX3QgTV9saW1icyA9IFhfbGltYnMgLSAoUDQ0OF9XSURUSCk7Ci0KLSAgICBpZiAoTV9saW1icyA+IFA0NDhfV0lEVEgpIHsKLSAgICAgICAgLyogU2hvdWxkbid0IGJlIGNhbGxlZCB3aXRoIFggbGFyZ2VyIHRoYW4gMl44OTYhICovCi0gICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9FQ1BfQkFEX0lOUFVUX0RBVEE7Ci0gICAgfQotCi0gICAgLyogQm90aCBNIGFuZCBRIHJlcXVpcmUgYW4gZXh0cmEgbGltYiB0byBjYXRjaCBjYXJyaWVzLiAqLwotICAgIE1fbGltYnMrKzsKLQotICAgIGNvbnN0IHNpemVfdCBRX2xpbWJzID0gTV9saW1iczsKLSAgICBtYmVkdGxzX21waV91aW50ICpNID0gTlVMTDsKLSAgICBtYmVkdGxzX21waV91aW50ICpRID0gTlVMTDsKLQotICAgIE0gPSBtYmVkdGxzX2NhbGxvYyhNX2xpbWJzLCBjaUwpOwotCi0gICAgaWYgKE0gPT0gTlVMTCkgewotICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfRUNQX0FMTE9DX0ZBSUxFRDsKLSAgICB9Ci0KLSAgICBRID0gbWJlZHRsc19jYWxsb2MoUV9saW1icywgY2lMKTsKLQotICAgIGlmIChRID09IE5VTEwpIHsKLSAgICAgICAgcmV0ID0gIE1CRURUTFNfRVJSX0VDUF9BTExPQ19GQUlMRUQ7Ci0gICAgICAgIGdvdG8gY2xlYW51cDsKLSAgICB9Ci0KLSAgICAvKiBNID0gQTEgKi8KLSAgICBtZW1zZXQoTSwgMCwgKE1fbGltYnMgKiBjaUwpKTsKLSAgICAvKiBEbyBub3QgY29weSBpbnRvIHRoZSBvdmVyZmxvdyBsaW1iLCBhcyB0aGlzIHdvdWxkIHJlYWQgcGFzdCB0aGUgZW5kIG9mCi0gICAgICogWC4gKi8KLSAgICBtZW1jcHkoTSwgWCArIFA0NDhfV0lEVEgsICgoTV9saW1icyAtIDEpICogY2lMKSk7Ci0KLSAgICAvKiBYID0gQTAgKi8KLSAgICBtZW1zZXQoWCArIFA0NDhfV0lEVEgsIDAsICgoTV9saW1icyAtIDEpICogY2lMKSk7Ci0KLSAgICAvKiBYID0gWCArIE0gPSBBMCArIEExICovCi0gICAgLyogQ2FycnkgaGVyZSBmaXRzIGluIG92ZXJzaXplIFguIE92ZXJzaXplIE0gbWVhbnMgaXQgd2lsbCBnZXQKLSAgICAgKiBhZGRlZCBpbiwgbm90IHJldHVybmVkIGFzIGNhcnJ5LiAqLwotICAgICh2b2lkKSBtYmVkdGxzX21waV9jb3JlX2FkZChYLCBYLCBNLCBNX2xpbWJzKTsKLQotICAgIC8qIFEgPSBCMSA9IE0gPj4gMjI0ICovCi0gICAgbWVtY3B5KFEsIChjaGFyICopIE0gKyBQMjI0X1NJWkUsIFAyMjRfU0laRSk7Ci0gICAgbWVtc2V0KChjaGFyICopIFEgKyBQMjI0X1NJWkUsIDAsIFAyMjRfU0laRSk7Ci0KLSAgICAvKiBYID0gWCArIFEgPSAoQTAgKyBBMSkgKyBCMQotICAgICAqIE92ZXJzaXplIFEgY2F0Y2hlcyBwb3RlbnRpYWwgY2FycnkgaGVyZSB3aGVuIFggaXMgYWxyZWFkeSBtYXggNDQ4IGJpdHMuCi0gICAgICovCi0gICAgKHZvaWQpIG1iZWR0bHNfbXBpX2NvcmVfYWRkKFgsIFgsIFEsIFFfbGltYnMpOwotCi0gICAgLyogTSA9IEIwICovCi0jaWZkZWYgTUJFRFRMU19IQVZFX0lOVDY0Ci0gICAgTVtQMjI0X1dJRFRIX01JTl0gJj0gKChtYmVkdGxzX21waV91aW50KS0xKSA+PiAoUDIyNF9VTlVTRURfQklUUyk7Ci0gI2VuZGlmCi0gICAgbWVtc2V0KE0gKyBQMjI0X1dJRFRIX01BWCwgMCwgKChNX2xpbWJzIC0gUDIyNF9XSURUSF9NQVgpICogY2lMKSk7Ci0KLSAgICAvKiBNID0gTSArIFEgPSBCMCArIEIxICovCi0gICAgKHZvaWQpIG1iZWR0bHNfbXBpX2NvcmVfYWRkKE0sIE0sIFEsIFFfbGltYnMpOwotCi0gICAgLyogTSA9IChCMCArIEIxKSAqIDJeMjI0ICovCi0gICAgLyogU2hpZnRlZCBjYXJyeSBiaXQgZnJvbSB0aGUgYWRkaXRpb24gZml0cyBpbiBvdmVyc2l6ZSBNLiAqLwotICAgIG1lbW1vdmUoKGNoYXIgKikgTSArIFAyMjRfU0laRSwgTSwgUDIyNF9TSVpFICsgY2lMKTsKLSAgICBtZW1zZXQoTSwgMCwgUDIyNF9TSVpFKTsKLQotICAgIC8qIFggPSBYICsgTSA9IChBMCArIEExICsgQjEpICsgKEIwICsgQjEpICogMl4yMjQgKi8KLSAgICAodm9pZCkgbWJlZHRsc19tcGlfY29yZV9hZGQoWCwgWCwgTSwgTV9saW1icyk7Ci0KLSAgICAvKiBJbiB0aGUgc2Vjb25kIGFuZCB0aGlyZCByb3VuZHMgQTEgYW5kIEIwIGhhdmUgYXQgbW9zdCAxIG5vbi16ZXJvIGxpbWIgYW5kCi0gICAgICogQjE9MC4KLSAgICAgKiBVc2luZyB0aGlzIHdlIG5lZWQgdG8gY2FsY3VsYXRlOgotICAgICAqIEEwICsgQTEgKyBCMSArIChCMCArIEIxKSAqIDJeMjI0ID0gQTAgKyBBMSArIEIwICogMl4yMjQuICovCi0gICAgZm9yIChyb3VuZCA9IDA7IHJvdW5kIDwgMjsgKytyb3VuZCkgewotCi0gICAgICAgIC8qIE0gPSBBMSAqLwotICAgICAgICBtZW1zZXQoTSwgMCwgKE1fbGltYnMgKiBjaUwpKTsKLSAgICAgICAgbWVtY3B5KE0sIFggKyBQNDQ4X1dJRFRILCAoKE1fbGltYnMgLSAxKSAqIGNpTCkpOwotCi0gICAgICAgIC8qIFggPSBBMCAqLwotICAgICAgICBtZW1zZXQoWCArIFA0NDhfV0lEVEgsIDAsICgoTV9saW1icyAtIDEpICogY2lMKSk7Ci0KLSAgICAgICAgLyogTSA9IEExICsgQjAgKiAyXjIyNAotICAgICAgICAgKiBXZSBrbm93IHRoYXQgb25seSBvbmUgbGltYiBvZiBBMSB3aWxsIGJlIG5vbi16ZXJvIGFuZCB0aGF0IGl0IHdpbGwgYmUKLSAgICAgICAgICogbGltYiAwLiBXZSBhbHNvIGtub3cgdGhhdCBCMCBpcyB0aGUgYm90dG9tIDIyNCBiaXRzIG9mIEExICh3aGljaCBpcwotICAgICAgICAgKiB0aGVuIHNoaWZ0ZWQgdXAgMjI0IGJpdHMpLCBzbywgZ2l2ZW4gTSBpcyBjdXJyZW50bHkgQTEgdGhpcyB0dXJucwotICAgICAgICAgKiBpbnRvOgotICAgICAgICAgKiBNID0gTSArIChNIDw8IDIyNCkKLSAgICAgICAgICogQXMgdGhlIHNpbmdsZSBub24temVybyBsaW1iIGluIEIwIHdpbGwgYmUgQTEgbGltYiAwIHNoaWZ0ZWQgdXAgYnkgMjI0Ci0gICAgICAgICAqIGJpdHMsIHdlIGNhbiBqdXN0IG1vdmUgdGhhdCBpbnRvIHRoZSByaWdodCBwbGFjZSwgc2hpZnRlZCB1cAotICAgICAgICAgKiBhY2NvcmRpbmdseS4qLwotICAgICAgICBNW1AyMjRfV0lEVEhfTUlOXSA9IE1bMF0gPDwgKDIyNCAmIChiaUwgLSAxKSk7Ci0KLSAgICAgICAgLyogWCA9IEEwICsgKEExICsgQjAgKiAyXjIyNCkgKi8KLSAgICAgICAgKHZvaWQpIG1iZWR0bHNfbXBpX2NvcmVfYWRkKFgsIFgsIE0sIE1fbGltYnMpOwotICAgIH0KLQotICAgIHJldCA9IDA7Ci0KLWNsZWFudXA6Ci0gICAgbWJlZHRsc19mcmVlKE0pOwotICAgIG1iZWR0bHNfZnJlZShRKTsKLQotICAgIHJldHVybiByZXQ7Ci19Ci0jZW5kaWYgLyogTUJFRFRMU19FQ1BfRFBfQ1VSVkU0NDhfRU5BQkxFRCAqLwotCi0jaWYgZGVmaW5lZChNQkVEVExTX0VDUF9EUF9TRUNQMTkySzFfRU5BQkxFRCkgfHwgICBcCi0gICAgZGVmaW5lZChNQkVEVExTX0VDUF9EUF9TRUNQMjI0SzFfRU5BQkxFRCkgfHwgICBcCi0gICAgZGVmaW5lZChNQkVEVExTX0VDUF9EUF9TRUNQMjU2SzFfRU5BQkxFRCkKLQotLyoKLSAqIEZhc3QgcXVhc2ktcmVkdWN0aW9uIG1vZHVsbyBQID0gMl5zIC0gUiwKLSAqIHdpdGggUiBhYm91dCAzMyBiaXRzLCB1c2VkIGJ5IHRoZSBLb2JsaXR6IGN1cnZlcy4KLSAqCi0gKiBXcml0ZSBYIGFzIEEwICsgMl4yMjQgQTEsIHJldHVybiBBMCArIFIgKiBBMS4KLSAqLwotI2RlZmluZSBQX0tPQkxJVFpfUiAgICAgKDggLyBzaXplb2YobWJlZHRsc19tcGlfdWludCkpICAgICAgICAgICAgLy8gTGltYnMgaW4gUgotCi1zdGF0aWMgaW5saW5lIGludCBlY3BfbW9kX2tvYmxpdHoobWJlZHRsc19tcGlfdWludCAqWCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgWF9saW1icywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYmVkdGxzX21waV91aW50ICpSLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBiaXRzKQotewotICAgIGludCByZXQgPSAwOwotCi0gICAgLyogRGV0ZXJtaW5lIGlmIEExIGlzIGFsaWduZWQgdG8gbGltYiBiaXRzaXplLiBJZiBub3QgdGhlbiB0aGUgdXNlZCBsaW1icwotICAgICAqIG9mIFAsIEEwIGFuZCBBMSBtdXN0IGJlIHNldCBhY2NvcmRpbmdseSBhbmQgdGhlcmUgaXMgYSBtaWRkbGUgbGltYgotICAgICAqIHdoaWNoIGlzIHNoYXJlZCBieSBBMCBhbmQgQTEgYW5kIG5lZWQgdG8gaGFuZGxlIGFjY29yZGluZ2x5LgotICAgICAqLwotICAgIHNpemVfdCBzaGlmdCAgID0gYml0cyAlIGJpTDsKLSAgICBzaXplX3QgYWRqdXN0ICA9IChzaGlmdCArIGJpTCAtIDEpIC8gYmlMOwotICAgIHNpemVfdCBQX2xpbWJzID0gYml0cyAvIGJpTCArIGFkanVzdDsKLQotICAgIG1iZWR0bHNfbXBpX3VpbnQgKkExID0gbWJlZHRsc19jYWxsb2MoUF9saW1icywgY2lMKTsKLSAgICBpZiAoQTEgPT0gTlVMTCkgewotICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfRUNQX0FMTE9DX0ZBSUxFRDsKLSAgICB9Ci0KLSAgICAvKiBDcmVhdGUgYSBidWZmZXIgdG8gc3RvcmUgdGhlIHZhbHVlIG9mIGBSICogQTFgICovCi0gICAgc2l6ZV90IFJfbGltYnMgPSBQX0tPQkxJVFpfUjsKLSAgICBzaXplX3QgTV9saW1icyA9IFBfbGltYnMgKyBSX2xpbWJzOwotICAgIG1iZWR0bHNfbXBpX3VpbnQgKk0gPSBtYmVkdGxzX2NhbGxvYyhNX2xpbWJzLCBjaUwpOwotICAgIGlmIChNID09IE5VTEwpIHsKLSAgICAgICAgcmV0ID0gTUJFRFRMU19FUlJfRUNQX0FMTE9DX0ZBSUxFRDsKLSAgICAgICAgZ290byBjbGVhbnVwOwotICAgIH0KLQotICAgIG1iZWR0bHNfbXBpX3VpbnQgbWFzayA9IDA7Ci0gICAgaWYgKGFkanVzdCAhPSAwKSB7Ci0gICAgICAgIG1hc2sgID0gKChtYmVkdGxzX21waV91aW50KSAxIDw8IHNoaWZ0KSAtIDE7Ci0gICAgfQotCi0gICAgLyogVHdvIHBhc3NlcyBhcmUgbmVlZGVkIHRvIHJlZHVjZSB0aGUgdmFsdWUgb2YgYEEwICsgUiAqIEExYCBhbmQgdGhlbgotICAgICAqIHdlIG5lZWQgYW4gYWRkaXRpb25hbCBvbmUgdG8gcmVkdWNlIHRoZSBwb3NzaWJsZSBvdmVyZmxvdyBkdXJpbmcKLSAgICAgKiB0aGUgYWRkaXRpb24uCi0gICAgICovCi0gICAgZm9yIChzaXplX3QgcGFzcyA9IDA7IHBhc3MgPCAzOyBwYXNzKyspIHsKLSAgICAgICAgLyogQ29weSBBMSAqLwotICAgICAgICBtZW1jcHkoQTEsIFggKyBQX2xpbWJzIC0gYWRqdXN0LCBQX2xpbWJzICogY2lMKTsKLQotICAgICAgICAvKiBTaGlmdCBBMSB0byBiZSBhbGlnbmVkICovCi0gICAgICAgIGlmIChzaGlmdCAhPSAwKSB7Ci0gICAgICAgICAgICBtYmVkdGxzX21waV9jb3JlX3NoaWZ0X3IoQTEsIFBfbGltYnMsIHNoaWZ0KTsKLSAgICAgICAgfQotCi0gICAgICAgIC8qIFplcm9pemUgdGhlIEExIHBhcnQgb2YgdGhlIHNoYXJlZCBsaW1iICovCi0gICAgICAgIGlmIChtYXNrICE9IDApIHsKLSAgICAgICAgICAgIFhbUF9saW1icyAtIDFdICY9IG1hc2s7Ci0gICAgICAgIH0KLQotICAgICAgICAvKiBYID0gQTAKLSAgICAgICAgICogWmVyb2l6ZSB0aGUgQTEgcGFydCBvZiBYIHRvIGtlZXAgb25seSB0aGUgQTAgcGFydC4KLSAgICAgICAgICovCi0gICAgICAgIGZvciAoc2l6ZV90IGkgPSBQX2xpbWJzOyBpIDwgWF9saW1iczsgaSsrKSB7Ci0gICAgICAgICAgICBYW2ldID0gMDsKLSAgICAgICAgfQotCi0gICAgICAgIC8qIFggPSBBMCArIFIgKiBBMSAqLwotICAgICAgICBtYmVkdGxzX21waV9jb3JlX211bChNLCBBMSwgUF9saW1icywgUiwgUl9saW1icyk7Ci0gICAgICAgICh2b2lkKSBtYmVkdGxzX21waV9jb3JlX2FkZChYLCBYLCBNLCBQX2xpbWJzICsgUl9saW1icyk7Ci0KLSAgICAgICAgLyogQ2FycnkgY2FuIG5vdCBiZSBnZW5lcmF0ZWQgc2luY2UgUiBpcyBhIDMzLWJpdCB2YWx1ZSBhbmQgc3RvcmVkIGluCi0gICAgICAgICAqIDY0IGJpdHMuIFRoZSByZXN1bHQgdmFsdWUgb2YgdGhlIG11bHRpcGxpY2F0aW9uIGlzIGF0IG1vc3QKLSAgICAgICAgICogUCBsZW5ndGggKyAzMyBiaXRzIGluIGxlbmd0aCBhbmQgdGhlIHJlc3VsdCB2YWx1ZSBvZiB0aGUgYWRkaXRpb24KLSAgICAgICAgICogaXMgYXQgbW9zdCBQIGxlbmd0aCArIDM0IGJpdHMgaW4gbGVuZ3RoLiBTbyB0aGUgcmVzdWx0IG9mIHRoZQotICAgICAgICAgKiBhZGRpdGlvbiBhbHdheXMgZml0cyBpbiBQIGxlbmd0aCArIDY0IGJpdHMuCi0gICAgICAgICAqLwotICAgIH0KLQotY2xlYW51cDoKLSAgICBtYmVkdGxzX2ZyZWUoTSk7Ci0gICAgbWJlZHRsc19mcmVlKEExKTsKLQotICAgIHJldHVybiByZXQ7Ci19Ci0KLSNlbmRpZiAvKiBNQkVEVExTX0VDUF9EUF9TRUNQMTkySzFfRU5BQkxFRCkgfHwKLSAgICAgICAgICBNQkVEVExTX0VDUF9EUF9TRUNQMjI0SzFfRU5BQkxFRCkgfHwKLSAgICAgICAgICBNQkVEVExTX0VDUF9EUF9TRUNQMjU2SzFfRU5BQkxFRCkgKi8KLQotI2lmIGRlZmluZWQoTUJFRFRMU19FQ1BfRFBfU0VDUDE5MksxX0VOQUJMRUQpCi0KLS8qCi0gKiBGYXN0IHF1YXNpLXJlZHVjdGlvbiBtb2R1bG8gcDE5MmsxID0gMl4xOTIgLSBSLAotICogd2l0aCBSID0gMl4zMiArIDJeMTIgKyAyXjggKyAyXjcgKyAyXjYgKyAyXjMgKyAxID0gMHgwMTAwMDAxMUM5Ci0gKi8KLXN0YXRpYyBpbnQgZWNwX21vZF9wMTkyazEobWJlZHRsc19tcGkgKk4pCi17Ci0gICAgaW50IHJldCA9IE1CRURUTFNfRVJSX0VSUk9SX0NPUlJVUFRJT05fREVURUNURUQ7Ci0gICAgc2l6ZV90IGV4cGVjdGVkX3dpZHRoID0gQklUU19UT19MSU1CUygxOTIpICogMjsKLSAgICBNQkVEVExTX01QSV9DSEsobWJlZHRsc19tcGlfZ3JvdyhOLCBleHBlY3RlZF93aWR0aCkpOwotICAgIHJldCA9IG1iZWR0bHNfZWNwX21vZF9wMTkyazFfcmF3KE4tPnAsIGV4cGVjdGVkX3dpZHRoKTsKLQotY2xlYW51cDoKLSAgICByZXR1cm4gcmV0OwotfQotCi1NQkVEVExTX1NUQVRJQ19URVNUQUJMRQotaW50IG1iZWR0bHNfZWNwX21vZF9wMTkyazFfcmF3KG1iZWR0bHNfbXBpX3VpbnQgKlgsIHNpemVfdCBYX2xpbWJzKQotewotICAgIHN0YXRpYyBtYmVkdGxzX21waV91aW50IFJwW10gPSB7Ci0gICAgICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhDOSwgMHgxMSwgMHgwMCwgMHgwMCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxLCAweDAwLCAweDAwLCAweDAwKQotICAgIH07Ci0KLSAgICBpZiAoWF9saW1icyAhPSBCSVRTX1RPX0xJTUJTKDE5MikgKiAyKSB7Ci0gICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9FQ1BfQkFEX0lOUFVUX0RBVEE7Ci0gICAgfQotCi0gICAgcmV0dXJuIGVjcF9tb2Rfa29ibGl0eihYLCBYX2xpbWJzLCBScCwgMTkyKTsKLX0KLQotI2VuZGlmIC8qIE1CRURUTFNfRUNQX0RQX1NFQ1AxOTJLMV9FTkFCTEVEICovCi0KLSNpZiBkZWZpbmVkKE1CRURUTFNfRUNQX0RQX1NFQ1AyMjRLMV9FTkFCTEVEKQotCi0vKgotICogRmFzdCBxdWFzaS1yZWR1Y3Rpb24gbW9kdWxvIHAyMjRrMSA9IDJeMjI0IC0gUiwKLSAqIHdpdGggUiA9IDJeMzIgKyAyXjEyICsgMl4xMSArIDJeOSArIDJeNyArIDJeNCArIDIgKyAxID0gMHgwMTAwMDAxQTkzCi0gKi8KLXN0YXRpYyBpbnQgZWNwX21vZF9wMjI0azEobWJlZHRsc19tcGkgKk4pCi17Ci0gICAgaW50IHJldCA9IE1CRURUTFNfRVJSX0VSUk9SX0NPUlJVUFRJT05fREVURUNURUQ7Ci0gICAgc2l6ZV90IGV4cGVjdGVkX3dpZHRoID0gQklUU19UT19MSU1CUygyMjQpICogMjsKLSAgICBNQkVEVExTX01QSV9DSEsobWJlZHRsc19tcGlfZ3JvdyhOLCBleHBlY3RlZF93aWR0aCkpOwotICAgIHJldCA9IG1iZWR0bHNfZWNwX21vZF9wMjI0azFfcmF3KE4tPnAsIGV4cGVjdGVkX3dpZHRoKTsKLQotY2xlYW51cDoKLSAgICByZXR1cm4gcmV0OwotfQotCi1NQkVEVExTX1NUQVRJQ19URVNUQUJMRQotaW50IG1iZWR0bHNfZWNwX21vZF9wMjI0azFfcmF3KG1iZWR0bHNfbXBpX3VpbnQgKlgsIHNpemVfdCBYX2xpbWJzKQotewotICAgIHN0YXRpYyBtYmVkdGxzX21waV91aW50IFJwW10gPSB7Ci0gICAgICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg5MywgMHgxQSwgMHgwMCwgMHgwMCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxLCAweDAwLCAweDAwLCAweDAwKQotICAgIH07Ci0KLSAgICBpZiAoWF9saW1icyAhPSAgQklUU19UT19MSU1CUygyMjQpICogMikgewotICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfRUNQX0JBRF9JTlBVVF9EQVRBOwotICAgIH0KLQotICAgIHJldHVybiBlY3BfbW9kX2tvYmxpdHooWCwgWF9saW1icywgUnAsIDIyNCk7Ci19Ci0KLSNlbmRpZiAvKiBNQkVEVExTX0VDUF9EUF9TRUNQMjI0SzFfRU5BQkxFRCAqLwotCi0jaWYgZGVmaW5lZChNQkVEVExTX0VDUF9EUF9TRUNQMjU2SzFfRU5BQkxFRCkKLQotLyoKLSAqIEZhc3QgcXVhc2ktcmVkdWN0aW9uIG1vZHVsbyBwMjU2azEgPSAyXjI1NiAtIFIsCi0gKiB3aXRoIFIgPSAyXjMyICsgMl45ICsgMl44ICsgMl43ICsgMl42ICsgMl40ICsgMSA9IDB4MDEwMDAwMDNEMQotICovCi1zdGF0aWMgaW50IGVjcF9tb2RfcDI1NmsxKG1iZWR0bHNfbXBpICpOKQotewotICAgIGludCByZXQgPSBNQkVEVExTX0VSUl9FUlJPUl9DT1JSVVBUSU9OX0RFVEVDVEVEOwotICAgIHNpemVfdCBleHBlY3RlZF93aWR0aCA9IEJJVFNfVE9fTElNQlMoMjU2KSAqIDI7Ci0gICAgTUJFRFRMU19NUElfQ0hLKG1iZWR0bHNfbXBpX2dyb3coTiwgZXhwZWN0ZWRfd2lkdGgpKTsKLSAgICByZXQgPSBtYmVkdGxzX2VjcF9tb2RfcDI1NmsxX3JhdyhOLT5wLCBleHBlY3RlZF93aWR0aCk7Ci0KLWNsZWFudXA6Ci0gICAgcmV0dXJuIHJldDsKLX0KLQotTUJFRFRMU19TVEFUSUNfVEVTVEFCTEUKLWludCBtYmVkdGxzX2VjcF9tb2RfcDI1NmsxX3JhdyhtYmVkdGxzX21waV91aW50ICpYLCBzaXplX3QgWF9saW1icykKLXsKLSAgICBzdGF0aWMgbWJlZHRsc19tcGlfdWludCBScFtdID0gewotICAgICAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RDEsIDB4MDMsIDB4MDAsIDB4MDAsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMSwgMHgwMCwgMHgwMCwgMHgwMCkKLSAgICB9OwotCi0gICAgaWYgKFhfbGltYnMgIT0gQklUU19UT19MSU1CUygyNTYpICogMikgewotICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfRUNQX0JBRF9JTlBVVF9EQVRBOwotICAgIH0KLQotICAgIHJldHVybiBlY3BfbW9kX2tvYmxpdHooWCwgWF9saW1icywgUnAsIDI1Nik7Ci19Ci0KLSNlbmRpZiAvKiBNQkVEVExTX0VDUF9EUF9TRUNQMjU2SzFfRU5BQkxFRCAqLwotCi0jaWYgZGVmaW5lZChNQkVEVExTX1RFU1RfSE9PS1MpCi1NQkVEVExTX1NUQVRJQ19URVNUQUJMRQotaW50IG1iZWR0bHNfZWNwX21vZHVsdXNfc2V0dXAobWJlZHRsc19tcGlfbW9kX21vZHVsdXMgKk4sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBtYmVkdGxzX2VjcF9ncm91cF9pZCBpZCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IG1iZWR0bHNfZWNwX21vZHVsdXNfdHlwZSBjdHlwZSkKLXsKLSAgICBtYmVkdGxzX21waV9tb2RwX2ZuIG1vZHAgPSBOVUxMOwotICAgIG1iZWR0bHNfbXBpX3VpbnQgKnAgPSBOVUxMOwotICAgIHNpemVfdCBwX2xpbWJzOwotCi0gICAgaWYgKCEoY3R5cGUgPT0gKG1iZWR0bHNfZWNwX21vZHVsdXNfdHlwZSkgTUJFRFRMU19FQ1BfTU9EX0NPT1JESU5BVEUgfHwgXAotICAgICAgICAgIGN0eXBlID09IChtYmVkdGxzX2VjcF9tb2R1bHVzX3R5cGUpIE1CRURUTFNfRUNQX01PRF9TQ0FMQVIpKSB7Ci0gICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9FQ1BfQkFEX0lOUFVUX0RBVEE7Ci0gICAgfQotCi0gICAgc3dpdGNoIChpZCkgewotI2lmIGRlZmluZWQoTUJFRFRMU19FQ1BfRFBfU0VDUDE5MlIxX0VOQUJMRUQpCi0gICAgICAgIGNhc2UgTUJFRFRMU19FQ1BfRFBfU0VDUDE5MlIxOgotICAgICAgICAgICAgaWYgKGN0eXBlID09IChtYmVkdGxzX2VjcF9tb2R1bHVzX3R5cGUpIE1CRURUTFNfRUNQX01PRF9DT09SRElOQVRFKSB7Ci0jaWYgZGVmaW5lZChNQkVEVExTX0VDUF9OSVNUX09QVElNKQotICAgICAgICAgICAgICAgIG1vZHAgPSAmbWJlZHRsc19lY3BfbW9kX3AxOTJfcmF3OwotI2VuZGlmCi0gICAgICAgICAgICAgICAgcCA9IChtYmVkdGxzX21waV91aW50ICopIHNlY3AxOTJyMV9wOwotICAgICAgICAgICAgICAgIHBfbGltYnMgPSBDSEFSU19UT19MSU1CUyhzaXplb2Yoc2VjcDE5MnIxX3ApKTsKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgcCA9IChtYmVkdGxzX21waV91aW50ICopIHNlY3AxOTJyMV9uOwotICAgICAgICAgICAgICAgIHBfbGltYnMgPSBDSEFSU19UT19MSU1CUyhzaXplb2Yoc2VjcDE5MnIxX24pKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGJyZWFrOwotI2VuZGlmCi0KLSNpZiBkZWZpbmVkKE1CRURUTFNfRUNQX0RQX1NFQ1AyMjRSMV9FTkFCTEVEKQotICAgICAgICBjYXNlIE1CRURUTFNfRUNQX0RQX1NFQ1AyMjRSMToKLSAgICAgICAgICAgIGlmIChjdHlwZSA9PSAobWJlZHRsc19lY3BfbW9kdWx1c190eXBlKSBNQkVEVExTX0VDUF9NT0RfQ09PUkRJTkFURSkgewotI2lmIGRlZmluZWQoTUJFRFRMU19FQ1BfTklTVF9PUFRJTSkKLSAgICAgICAgICAgICAgICBtb2RwID0gJm1iZWR0bHNfZWNwX21vZF9wMjI0X3JhdzsKLSNlbmRpZgotICAgICAgICAgICAgICAgIHAgPSAobWJlZHRsc19tcGlfdWludCAqKSBzZWNwMjI0cjFfcDsKLSAgICAgICAgICAgICAgICBwX2xpbWJzID0gQ0hBUlNfVE9fTElNQlMoc2l6ZW9mKHNlY3AyMjRyMV9wKSk7Ci0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgIHAgPSAobWJlZHRsc19tcGlfdWludCAqKSBzZWNwMjI0cjFfbjsKLSAgICAgICAgICAgICAgICBwX2xpbWJzID0gQ0hBUlNfVE9fTElNQlMoc2l6ZW9mKHNlY3AyMjRyMV9uKSk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBicmVhazsKLSNlbmRpZgotCi0jaWYgZGVmaW5lZChNQkVEVExTX0VDUF9EUF9TRUNQMjU2UjFfRU5BQkxFRCkKLSAgICAgICAgY2FzZSBNQkVEVExTX0VDUF9EUF9TRUNQMjU2UjE6Ci0gICAgICAgICAgICBpZiAoY3R5cGUgPT0gKG1iZWR0bHNfZWNwX21vZHVsdXNfdHlwZSkgTUJFRFRMU19FQ1BfTU9EX0NPT1JESU5BVEUpIHsKLSNpZiBkZWZpbmVkKE1CRURUTFNfRUNQX05JU1RfT1BUSU0pCi0gICAgICAgICAgICAgICAgbW9kcCA9ICZtYmVkdGxzX2VjcF9tb2RfcDI1Nl9yYXc7Ci0jZW5kaWYKLSAgICAgICAgICAgICAgICBwID0gKG1iZWR0bHNfbXBpX3VpbnQgKikgc2VjcDI1NnIxX3A7Ci0gICAgICAgICAgICAgICAgcF9saW1icyA9IENIQVJTX1RPX0xJTUJTKHNpemVvZihzZWNwMjU2cjFfcCkpOwotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICBwID0gKG1iZWR0bHNfbXBpX3VpbnQgKikgc2VjcDI1NnIxX247Ci0gICAgICAgICAgICAgICAgcF9saW1icyA9IENIQVJTX1RPX0xJTUJTKHNpemVvZihzZWNwMjU2cjFfbikpOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgYnJlYWs7Ci0jZW5kaWYKLQotI2lmIGRlZmluZWQoTUJFRFRMU19FQ1BfRFBfU0VDUDM4NFIxX0VOQUJMRUQpCi0gICAgICAgIGNhc2UgTUJFRFRMU19FQ1BfRFBfU0VDUDM4NFIxOgotICAgICAgICAgICAgaWYgKGN0eXBlID09IChtYmVkdGxzX2VjcF9tb2R1bHVzX3R5cGUpIE1CRURUTFNfRUNQX01PRF9DT09SRElOQVRFKSB7Ci0jaWYgZGVmaW5lZChNQkVEVExTX0VDUF9OSVNUX09QVElNKQotICAgICAgICAgICAgICAgIG1vZHAgPSAmbWJlZHRsc19lY3BfbW9kX3AzODRfcmF3OwotI2VuZGlmCi0gICAgICAgICAgICAgICAgcCA9IChtYmVkdGxzX21waV91aW50ICopIHNlY3AzODRyMV9wOwotICAgICAgICAgICAgICAgIHBfbGltYnMgPSBDSEFSU19UT19MSU1CUyhzaXplb2Yoc2VjcDM4NHIxX3ApKTsKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgcCA9IChtYmVkdGxzX21waV91aW50ICopIHNlY3AzODRyMV9uOwotICAgICAgICAgICAgICAgIHBfbGltYnMgPSBDSEFSU19UT19MSU1CUyhzaXplb2Yoc2VjcDM4NHIxX24pKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGJyZWFrOwotI2VuZGlmCi0KLSNpZiBkZWZpbmVkKE1CRURUTFNfRUNQX0RQX1NFQ1A1MjFSMV9FTkFCTEVEKQotICAgICAgICBjYXNlIE1CRURUTFNfRUNQX0RQX1NFQ1A1MjFSMToKLSAgICAgICAgICAgIGlmIChjdHlwZSA9PSAobWJlZHRsc19lY3BfbW9kdWx1c190eXBlKSBNQkVEVExTX0VDUF9NT0RfQ09PUkRJTkFURSkgewotI2lmIGRlZmluZWQoTUJFRFRMU19FQ1BfTklTVF9PUFRJTSkKLSAgICAgICAgICAgICAgICBtb2RwID0gJm1iZWR0bHNfZWNwX21vZF9wNTIxX3JhdzsKLSNlbmRpZgotICAgICAgICAgICAgICAgIHAgPSAobWJlZHRsc19tcGlfdWludCAqKSBzZWNwNTIxcjFfcDsKLSAgICAgICAgICAgICAgICBwX2xpbWJzID0gQ0hBUlNfVE9fTElNQlMoc2l6ZW9mKHNlY3A1MjFyMV9wKSk7Ci0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgIHAgPSAobWJlZHRsc19tcGlfdWludCAqKSBzZWNwNTIxcjFfbjsKLSAgICAgICAgICAgICAgICBwX2xpbWJzID0gQ0hBUlNfVE9fTElNQlMoc2l6ZW9mKHNlY3A1MjFyMV9uKSk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBicmVhazsKLSNlbmRpZgotCi0jaWYgZGVmaW5lZChNQkVEVExTX0VDUF9EUF9CUDI1NlIxX0VOQUJMRUQpCi0gICAgICAgIGNhc2UgTUJFRFRMU19FQ1BfRFBfQlAyNTZSMToKLSAgICAgICAgICAgIGlmIChjdHlwZSA9PSAobWJlZHRsc19lY3BfbW9kdWx1c190eXBlKSBNQkVEVExTX0VDUF9NT0RfQ09PUkRJTkFURSkgewotICAgICAgICAgICAgICAgIHAgPSAobWJlZHRsc19tcGlfdWludCAqKSBicmFpbnBvb2xQMjU2cjFfcDsKLSAgICAgICAgICAgICAgICBwX2xpbWJzID0gQ0hBUlNfVE9fTElNQlMoc2l6ZW9mKGJyYWlucG9vbFAyNTZyMV9wKSk7Ci0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgIHAgPSAobWJlZHRsc19tcGlfdWludCAqKSBicmFpbnBvb2xQMjU2cjFfbjsKLSAgICAgICAgICAgICAgICBwX2xpbWJzID0gQ0hBUlNfVE9fTElNQlMoc2l6ZW9mKGJyYWlucG9vbFAyNTZyMV9uKSk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBicmVhazsKLSNlbmRpZgotCi0jaWYgZGVmaW5lZChNQkVEVExTX0VDUF9EUF9CUDM4NFIxX0VOQUJMRUQpCi0gICAgICAgIGNhc2UgTUJFRFRMU19FQ1BfRFBfQlAzODRSMToKLSAgICAgICAgICAgIGlmIChjdHlwZSA9PSAobWJlZHRsc19lY3BfbW9kdWx1c190eXBlKSBNQkVEVExTX0VDUF9NT0RfQ09PUkRJTkFURSkgewotICAgICAgICAgICAgICAgIHAgPSAobWJlZHRsc19tcGlfdWludCAqKSBicmFpbnBvb2xQMzg0cjFfcDsKLSAgICAgICAgICAgICAgICBwX2xpbWJzID0gQ0hBUlNfVE9fTElNQlMoc2l6ZW9mKGJyYWlucG9vbFAzODRyMV9wKSk7Ci0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgIHAgPSAobWJlZHRsc19tcGlfdWludCAqKSBicmFpbnBvb2xQMzg0cjFfbjsKLSAgICAgICAgICAgICAgICBwX2xpbWJzID0gQ0hBUlNfVE9fTElNQlMoc2l6ZW9mKGJyYWlucG9vbFAzODRyMV9uKSk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBicmVhazsKLSNlbmRpZgotCi0jaWYgZGVmaW5lZChNQkVEVExTX0VDUF9EUF9CUDUxMlIxX0VOQUJMRUQpCi0gICAgICAgIGNhc2UgTUJFRFRMU19FQ1BfRFBfQlA1MTJSMToKLSAgICAgICAgICAgIGlmIChjdHlwZSA9PSAobWJlZHRsc19lY3BfbW9kdWx1c190eXBlKSBNQkVEVExTX0VDUF9NT0RfQ09PUkRJTkFURSkgewotICAgICAgICAgICAgICAgIHAgPSAobWJlZHRsc19tcGlfdWludCAqKSBicmFpbnBvb2xQNTEycjFfcDsKLSAgICAgICAgICAgICAgICBwX2xpbWJzID0gQ0hBUlNfVE9fTElNQlMoc2l6ZW9mKGJyYWlucG9vbFA1MTJyMV9wKSk7Ci0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgIHAgPSAobWJlZHRsc19tcGlfdWludCAqKSBicmFpbnBvb2xQNTEycjFfbjsKLSAgICAgICAgICAgICAgICBwX2xpbWJzID0gQ0hBUlNfVE9fTElNQlMoc2l6ZW9mKGJyYWlucG9vbFA1MTJyMV9uKSk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBicmVhazsKLSNlbmRpZgotCi0jaWYgZGVmaW5lZChNQkVEVExTX0VDUF9EUF9DVVJWRTI1NTE5X0VOQUJMRUQpCi0gICAgICAgIGNhc2UgTUJFRFRMU19FQ1BfRFBfQ1VSVkUyNTUxOToKLSAgICAgICAgICAgIGlmIChjdHlwZSA9PSAobWJlZHRsc19lY3BfbW9kdWx1c190eXBlKSBNQkVEVExTX0VDUF9NT0RfQ09PUkRJTkFURSkgewotICAgICAgICAgICAgICAgIG1vZHAgPSAmbWJlZHRsc19lY3BfbW9kX3AyNTVfcmF3OwotICAgICAgICAgICAgICAgIHAgPSAobWJlZHRsc19tcGlfdWludCAqKSBjdXJ2ZTI1NTE5X3A7Ci0gICAgICAgICAgICAgICAgcF9saW1icyA9IENIQVJTX1RPX0xJTUJTKHNpemVvZihjdXJ2ZTI1NTE5X3ApKTsKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgcCA9IChtYmVkdGxzX21waV91aW50ICopIGN1cnZlMjU1MTlfbjsKLSAgICAgICAgICAgICAgICBwX2xpbWJzID0gQ0hBUlNfVE9fTElNQlMoc2l6ZW9mKGN1cnZlMjU1MTlfbikpOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgYnJlYWs7Ci0jZW5kaWYKLQotI2lmIGRlZmluZWQoTUJFRFRMU19FQ1BfRFBfU0VDUDE5MksxX0VOQUJMRUQpCi0gICAgICAgIGNhc2UgTUJFRFRMU19FQ1BfRFBfU0VDUDE5MksxOgotICAgICAgICAgICAgaWYgKGN0eXBlID09IChtYmVkdGxzX2VjcF9tb2R1bHVzX3R5cGUpIE1CRURUTFNfRUNQX01PRF9DT09SRElOQVRFKSB7Ci0gICAgICAgICAgICAgICAgbW9kcCA9ICZtYmVkdGxzX2VjcF9tb2RfcDE5MmsxX3JhdzsKLSAgICAgICAgICAgICAgICBwID0gKG1iZWR0bHNfbXBpX3VpbnQgKikgc2VjcDE5MmsxX3A7Ci0gICAgICAgICAgICAgICAgcF9saW1icyA9IENIQVJTX1RPX0xJTUJTKHNpemVvZihzZWNwMTkyazFfcCkpOwotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICBwID0gKG1iZWR0bHNfbXBpX3VpbnQgKikgc2VjcDE5MmsxX247Ci0gICAgICAgICAgICAgICAgcF9saW1icyA9IENIQVJTX1RPX0xJTUJTKHNpemVvZihzZWNwMTkyazFfbikpOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgYnJlYWs7Ci0jZW5kaWYKLQotI2lmIGRlZmluZWQoTUJFRFRMU19FQ1BfRFBfU0VDUDIyNEsxX0VOQUJMRUQpCi0gICAgICAgIGNhc2UgTUJFRFRMU19FQ1BfRFBfU0VDUDIyNEsxOgotICAgICAgICAgICAgaWYgKGN0eXBlID09IChtYmVkdGxzX2VjcF9tb2R1bHVzX3R5cGUpIE1CRURUTFNfRUNQX01PRF9DT09SRElOQVRFKSB7Ci0gICAgICAgICAgICAgICAgbW9kcCA9ICZtYmVkdGxzX2VjcF9tb2RfcDIyNGsxX3JhdzsKLSAgICAgICAgICAgICAgICBwID0gKG1iZWR0bHNfbXBpX3VpbnQgKikgc2VjcDIyNGsxX3A7Ci0gICAgICAgICAgICAgICAgcF9saW1icyA9IENIQVJTX1RPX0xJTUJTKHNpemVvZihzZWNwMjI0azFfcCkpOwotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICBwID0gKG1iZWR0bHNfbXBpX3VpbnQgKikgc2VjcDIyNGsxX247Ci0gICAgICAgICAgICAgICAgcF9saW1icyA9IENIQVJTX1RPX0xJTUJTKHNpemVvZihzZWNwMjI0azFfbikpOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgYnJlYWs7Ci0jZW5kaWYKLQotI2lmIGRlZmluZWQoTUJFRFRMU19FQ1BfRFBfU0VDUDI1NksxX0VOQUJMRUQpCi0gICAgICAgIGNhc2UgTUJFRFRMU19FQ1BfRFBfU0VDUDI1NksxOgotICAgICAgICAgICAgaWYgKGN0eXBlID09IChtYmVkdGxzX2VjcF9tb2R1bHVzX3R5cGUpIE1CRURUTFNfRUNQX01PRF9DT09SRElOQVRFKSB7Ci0gICAgICAgICAgICAgICAgbW9kcCA9ICZtYmVkdGxzX2VjcF9tb2RfcDI1NmsxX3JhdzsKLSAgICAgICAgICAgICAgICBwID0gKG1iZWR0bHNfbXBpX3VpbnQgKikgc2VjcDI1NmsxX3A7Ci0gICAgICAgICAgICAgICAgcF9saW1icyA9IENIQVJTX1RPX0xJTUJTKHNpemVvZihzZWNwMjU2azFfcCkpOwotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICBwID0gKG1iZWR0bHNfbXBpX3VpbnQgKikgc2VjcDI1NmsxX247Ci0gICAgICAgICAgICAgICAgcF9saW1icyA9IENIQVJTX1RPX0xJTUJTKHNpemVvZihzZWNwMjU2azFfbikpOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgYnJlYWs7Ci0jZW5kaWYKLQotI2lmIGRlZmluZWQoTUJFRFRMU19FQ1BfRFBfQ1VSVkU0NDhfRU5BQkxFRCkKLSAgICAgICAgY2FzZSBNQkVEVExTX0VDUF9EUF9DVVJWRTQ0ODoKLSAgICAgICAgICAgIGlmIChjdHlwZSA9PSAobWJlZHRsc19lY3BfbW9kdWx1c190eXBlKSBNQkVEVExTX0VDUF9NT0RfQ09PUkRJTkFURSkgewotICAgICAgICAgICAgICAgIG1vZHAgPSAmbWJlZHRsc19lY3BfbW9kX3A0NDhfcmF3OwotICAgICAgICAgICAgICAgIHAgPSAobWJlZHRsc19tcGlfdWludCAqKSBjdXJ2ZTQ0OF9wOwotICAgICAgICAgICAgICAgIHBfbGltYnMgPSBDSEFSU19UT19MSU1CUyhzaXplb2YoY3VydmU0NDhfcCkpOwotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICBwID0gKG1iZWR0bHNfbXBpX3VpbnQgKikgY3VydmU0NDhfbjsKLSAgICAgICAgICAgICAgICBwX2xpbWJzID0gQ0hBUlNfVE9fTElNQlMoc2l6ZW9mKGN1cnZlNDQ4X24pKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGJyZWFrOwotI2VuZGlmCi0KLSAgICAgICAgZGVmYXVsdDoKLSAgICAgICAgY2FzZSBNQkVEVExTX0VDUF9EUF9OT05FOgotICAgICAgICAgICAgcmV0dXJuIE1CRURUTFNfRVJSX0VDUF9CQURfSU5QVVRfREFUQTsKLSAgICB9Ci0KLSAgICBpZiAobW9kcCAhPSBOVUxMKSB7Ci0gICAgICAgIGlmIChtYmVkdGxzX21waV9tb2Rfb3B0cmVkX21vZHVsdXNfc2V0dXAoTiwgcCwgcF9saW1icywgbW9kcCkpIHsKLSAgICAgICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9FUlJPUl9DT1JSVVBUSU9OX0RFVEVDVEVEOwotICAgICAgICB9Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgaWYgKG1iZWR0bHNfbXBpX21vZF9tb2R1bHVzX3NldHVwKE4sIHAsIHBfbGltYnMpKSB7Ci0gICAgICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfRVJST1JfQ09SUlVQVElPTl9ERVRFQ1RFRDsKLSAgICAgICAgfQotICAgIH0KLSAgICByZXR1cm4gMDsKLX0KLSNlbmRpZiAvKiBNQkVEVExTX1RFU1RfSE9PS1MgKi8KLQotI2lmIGRlZmluZWQoTUJFRFRMU19URVNUX0hPT0tTKQotCi1NQkVEVExTX1NUQVRJQ19URVNUQUJMRQotbWJlZHRsc19lY3BfdmFyaWFudCBtYmVkdGxzX2VjcF9nZXRfdmFyaWFudCh2b2lkKQotewotICAgIHJldHVybiBNQkVEVExTX0VDUF9WQVJJQU5UX1dJVEhfTVBJX1VJTlQ7Ci19Ci0KLSNlbmRpZiAvKiBNQkVEVExTX1RFU1RfSE9PS1MgKi8KLQotI2VuZGlmIC8qICFNQkVEVExTX0VDUF9BTFQgKi8KLSNlbmRpZiAvKiBNQkVEVExTX0VDUF9MSUdIVCAqLwotI2VuZGlmIC8qIE1CRURUTFNfRUNQX1dJVEhfTVBJX1VJTlQgKi8KZGlmZiAtLWdpdCBhL2xpYnJhcnkvZWNwX2ludGVybmFsX2FsdC5oIGIvbGlicmFyeS9lY3BfaW50ZXJuYWxfYWx0LmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDY2OGVkYzcuLjAwMDAwMDAKLS0tIGEvbGlicmFyeS9lY3BfaW50ZXJuYWxfYWx0LmgKKysrIC9kZXYvbnVsbApAQCAtMSwyODcgKzAsMCBAQAotLyoqCi0gKiBcZmlsZSBlY3BfaW50ZXJuYWxfYWx0LmgKLSAqCi0gKiBcYnJpZWYgRnVuY3Rpb24gZGVjbGFyYXRpb25zIGZvciBhbHRlcm5hdGl2ZSBpbXBsZW1lbnRhdGlvbiBvZiBlbGxpcHRpYyBjdXJ2ZQotICogcG9pbnQgYXJpdGhtZXRpYy4KLSAqLwotLyoKLSAqICBDb3B5cmlnaHQgVGhlIE1iZWQgVExTIENvbnRyaWJ1dG9ycwotICogIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wIE9SIEdQTC0yLjAtb3ItbGF0ZXIKLSAqLwotCi0vKgotICogUmVmZXJlbmNlczoKLSAqCi0gKiBbMV0gQkVSTlNURUlOLCBEYW5pZWwgSi4gQ3VydmUyNTUxOTogbmV3IERpZmZpZS1IZWxsbWFuIHNwZWVkIHJlY29yZHMuCi0gKiAgICAgPGh0dHA6Ly9jci55cC50by9lY2RoL2N1cnZlMjU1MTktMjAwNjAyMDkucGRmPgotICoKLSAqIFsyXSBDT1JPTiwgSmVhbi1TJ2ViYXN0aWVuLiBSZXNpc3RhbmNlIGFnYWluc3QgZGlmZmVyZW50aWFsIHBvd2VyIGFuYWx5c2lzCi0gKiAgICAgZm9yIGVsbGlwdGljIGN1cnZlIGNyeXB0b3N5c3RlbXMuIEluIDogQ3J5cHRvZ3JhcGhpYyBIYXJkd2FyZSBhbmQKLSAqICAgICBFbWJlZGRlZCBTeXN0ZW1zLiBTcHJpbmdlciBCZXJsaW4gSGVpZGVsYmVyZywgMTk5OS4gcC4gMjkyLTMwMi4KLSAqICAgICA8aHR0cDovL2xpbmsuc3ByaW5nZXIuY29tL2NoYXB0ZXIvMTAuMTAwNy8zLTU0MC00ODA1OS01XzI1PgotICoKLSAqIFszXSBIRURBQk9VLCBNdXN0YXBoYSwgUElORUwsIFBpZXJyZSwgZXQgQidFTidFVEVBVSwgTHVjaWVuLiBBIGNvbWIgbWV0aG9kIHRvCi0gKiAgICAgcmVuZGVyIEVDQyByZXNpc3RhbnQgYWdhaW5zdCBTaWRlIENoYW5uZWwgQXR0YWNrcy4gSUFDUiBDcnlwdG9sb2d5Ci0gKiAgICAgZVByaW50IEFyY2hpdmUsIDIwMDQsIHZvbC4gMjAwNCwgcC4gMzQyLgotICogICAgIDxodHRwOi8vZXByaW50LmlhY3Iub3JnLzIwMDQvMzQyLnBkZj4KLSAqCi0gKiBbNF0gQ2VydGljb20gUmVzZWFyY2guIFNFQyAyOiBSZWNvbW1lbmRlZCBFbGxpcHRpYyBDdXJ2ZSBEb21haW4gUGFyYW1ldGVycy4KLSAqICAgICA8aHR0cDovL3d3dy5zZWNnLm9yZy9zZWMyLXYyLnBkZj4KLSAqCi0gKiBbNV0gSEFOS0VSU09OLCBEYXJyZWwsIE1FTkVaRVMsIEFsZnJlZCBKLiwgVkFOU1RPTkUsIFNjb3R0LiBHdWlkZSB0byBFbGxpcHRpYwotICogICAgIEN1cnZlIENyeXB0b2dyYXBoeS4KLSAqCi0gKiBbNl0gRGlnaXRhbCBTaWduYXR1cmUgU3RhbmRhcmQgKERTUyksIEZJUFMgMTg2LTQuCi0gKiAgICAgPGh0dHA6Ly9udmxwdWJzLm5pc3QuZ292L25pc3RwdWJzL0ZJUFMvTklTVC5GSVBTLjE4Ni00LnBkZj4KLSAqCi0gKiBbN10gRWxsaXB0aWMgQ3VydmUgQ3J5cHRvZ3JhcGh5IChFQ0MpIENpcGhlciBTdWl0ZXMgZm9yIFRyYW5zcG9ydCBMYXllcgotICogICAgIFNlY3VyaXR5IChUTFMpLCBSRkMgNDQ5Mi4KLSAqICAgICA8aHR0cHM6Ly90b29scy5pZXRmLm9yZy9zZWFyY2gvcmZjNDQ5Mj4KLSAqCi0gKiBbOF0gPGh0dHA6Ly93d3cuaHlwZXJlbGxpcHRpYy5vcmcvRUZEL2cxcC9hdXRvLXNob3J0dy1qYWNvYmlhbi5odG1sPgotICoKLSAqIFs5XSBDT0hFTiwgSGVucmkuIEEgQ291cnNlIGluIENvbXB1dGF0aW9uYWwgQWxnZWJyYWljIE51bWJlciBUaGVvcnkuCi0gKiAgICAgU3ByaW5nZXIgU2NpZW5jZSAmIEJ1c2luZXNzIE1lZGlhLCAxIEF1ZyAyMDAwCi0gKi8KLQotI2lmbmRlZiBNQkVEVExTX0VDUF9JTlRFUk5BTF9ICi0jZGVmaW5lIE1CRURUTFNfRUNQX0lOVEVSTkFMX0gKLQotI2luY2x1ZGUgIm1iZWR0bHMvYnVpbGRfaW5mby5oIgotCi0jaWYgZGVmaW5lZChNQkVEVExTX0VDUF9JTlRFUk5BTF9BTFQpCi0KLS8qKgotICogXGJyaWVmICAgICAgICAgICBJbmRpY2F0ZSBpZiB0aGUgRWxsaXB0aWMgQ3VydmUgUG9pbnQgbW9kdWxlIGV4dGVuc2lvbiBjYW4KLSAqICAgICAgICAgICAgICAgICAgaGFuZGxlIHRoZSBncm91cC4KLSAqCi0gKiBccGFyYW0gZ3JwICAgICAgIFRoZSBwb2ludGVyIHRvIHRoZSBlbGxpcHRpYyBjdXJ2ZSBncm91cCB0aGF0IHdpbGwgYmUgdGhlCi0gKiAgICAgICAgICAgICAgICAgIGJhc2lzIG9mIHRoZSBjcnlwdG9ncmFwaGljIGNvbXB1dGF0aW9ucy4KLSAqCi0gKiBccmV0dXJuICAgICAgICAgIE5vbi16ZXJvIGlmIHN1Y2Nlc3NmdWwuCi0gKi8KLXVuc2lnbmVkIGNoYXIgbWJlZHRsc19pbnRlcm5hbF9lY3BfZ3JwX2NhcGFibGUoY29uc3QgbWJlZHRsc19lY3BfZ3JvdXAgKmdycCk7Ci0KLS8qKgotICogXGJyaWVmICAgICAgICAgICBJbml0aWFsaXNlIHRoZSBFbGxpcHRpYyBDdXJ2ZSBQb2ludCBtb2R1bGUgZXh0ZW5zaW9uLgotICoKLSAqICAgICAgICAgICAgICAgICAgSWYgbWJlZHRsc19pbnRlcm5hbF9lY3BfZ3JwX2NhcGFibGUgcmV0dXJucyB0cnVlIGZvciBhCi0gKiAgICAgICAgICAgICAgICAgIGdyb3VwLCB0aGlzIGZ1bmN0aW9uIGhhcyB0byBiZSBhYmxlIHRvIGluaXRpYWxpc2UgdGhlCi0gKiAgICAgICAgICAgICAgICAgIG1vZHVsZSBmb3IgaXQuCi0gKgotICogICAgICAgICAgICAgICAgICBUaGlzIG1vZHVsZSBjYW4gYmUgYSBkcml2ZXIgdG8gYSBjcnlwdG8gaGFyZHdhcmUKLSAqICAgICAgICAgICAgICAgICAgYWNjZWxlcmF0b3IsIGZvciB3aGljaCB0aGlzIGNvdWxkIGJlIGFuIGluaXRpYWxpc2UgZnVuY3Rpb24uCi0gKgotICogXHBhcmFtIGdycCAgICAgICBUaGUgcG9pbnRlciB0byB0aGUgZ3JvdXAgdGhlIG1vZHVsZSBuZWVkcyB0byBiZQotICogICAgICAgICAgICAgICAgICBpbml0aWFsaXNlZCBmb3IuCi0gKgotICogXHJldHVybiAgICAgICAgICAwIGlmIHN1Y2Nlc3NmdWwuCi0gKi8KLWludCBtYmVkdGxzX2ludGVybmFsX2VjcF9pbml0KGNvbnN0IG1iZWR0bHNfZWNwX2dyb3VwICpncnApOwotCi0vKioKLSAqIFxicmllZiAgICAgICAgICAgRnJlZXMgYW5kIGRlYWxsb2NhdGVzIHRoZSBFbGxpcHRpYyBDdXJ2ZSBQb2ludCBtb2R1bGUKLSAqICAgICAgICAgICAgICAgICAgZXh0ZW5zaW9uLgotICoKLSAqIFxwYXJhbSBncnAgICAgICAgVGhlIHBvaW50ZXIgdG8gdGhlIGdyb3VwIHRoZSBtb2R1bGUgd2FzIGluaXRpYWxpc2VkIGZvci4KLSAqLwotdm9pZCBtYmVkdGxzX2ludGVybmFsX2VjcF9mcmVlKGNvbnN0IG1iZWR0bHNfZWNwX2dyb3VwICpncnApOwotCi0jaWYgZGVmaW5lZChNQkVEVExTX0VDUF9TSE9SVF9XRUlFUlNUUkFTU19FTkFCTEVEKQotCi0jaWYgZGVmaW5lZChNQkVEVExTX0VDUF9SQU5ET01JWkVfSkFDX0FMVCkKLS8qKgotICogXGJyaWVmICAgICAgICAgICBSYW5kb21pemUgamFjb2JpYW4gY29vcmRpbmF0ZXM6Ci0gKiAgICAgICAgICAgICAgICAgIChYLCBZLCBaKSAtPiAobF4yIFgsIGxeMyBZLCBsIFopIGZvciByYW5kb20gbC4KLSAqCi0gKiBccGFyYW0gZ3JwICAgICAgIFBvaW50ZXIgdG8gdGhlIGdyb3VwIHJlcHJlc2VudGluZyB0aGUgY3VydmUuCi0gKgotICogXHBhcmFtIHB0ICAgICAgICBUaGUgcG9pbnQgb24gdGhlIGN1cnZlIHRvIGJlIHJhbmRvbWlzZWQsIGdpdmVuIHdpdGggSmFjb2JpYW4KLSAqICAgICAgICAgICAgICAgICAgY29vcmRpbmF0ZXMuCi0gKgotICogXHBhcmFtIGZfcm5nICAgICBBIGZ1bmN0aW9uIHBvaW50ZXIgdG8gdGhlIHJhbmRvbSBudW1iZXIgZ2VuZXJhdG9yLgotICoKLSAqIFxwYXJhbSBwX3JuZyAgICAgQSBwb2ludGVyIHRvIHRoZSByYW5kb20gbnVtYmVyIGdlbmVyYXRvciBzdGF0ZS4KLSAqCi0gKiBccmV0dXJuICAgICAgICAgIDAgaWYgc3VjY2Vzc2Z1bC4KLSAqLwotaW50IG1iZWR0bHNfaW50ZXJuYWxfZWNwX3JhbmRvbWl6ZV9qYWMoY29uc3QgbWJlZHRsc19lY3BfZ3JvdXAgKmdycCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1iZWR0bHNfZWNwX3BvaW50ICpwdCwgaW50ICgqZl9ybmcpKHZvaWQgKiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGNoYXIgKiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2b2lkICpwX3JuZyk7Ci0jZW5kaWYKLQotI2lmIGRlZmluZWQoTUJFRFRMU19FQ1BfQUREX01JWEVEX0FMVCkKLS8qKgotICogXGJyaWVmICAgICAgICAgICBBZGRpdGlvbjogUiA9IFAgKyBRLCBtaXhlZCBhZmZpbmUtSmFjb2JpYW4gY29vcmRpbmF0ZXMuCi0gKgotICogICAgICAgICAgICAgICAgICBUaGUgY29vcmRpbmF0ZXMgb2YgUSBtdXN0IGJlIG5vcm1hbGl6ZWQgKD0gYWZmaW5lKSwKLSAqICAgICAgICAgICAgICAgICAgYnV0IHRob3NlIG9mIFAgZG9uJ3QgbmVlZCB0by4gUiBpcyBub3Qgbm9ybWFsaXplZC4KLSAqCi0gKiAgICAgICAgICAgICAgICAgIFRoaXMgZnVuY3Rpb24gaXMgdXNlZCBvbmx5IGFzIGEgc3VicnV0aW5lIG9mCi0gKiAgICAgICAgICAgICAgICAgIGVjcF9tdWxfY29tYigpLgotICoKLSAqICAgICAgICAgICAgICAgICAgU3BlY2lhbCBjYXNlczogKDEpIFAgb3IgUSBpcyB6ZXJvLCAoMikgUiBpcyB6ZXJvLAotICogICAgICAgICAgICAgICAgICAgICAgKDMpIFAgPT0gUS4KLSAqICAgICAgICAgICAgICAgICAgTm9uZSBvZiB0aGVzZSBjYXNlcyBjYW4gaGFwcGVuIGFzIGludGVybWVkaWF0ZSBzdGVwIGluCi0gKiAgICAgICAgICAgICAgICAgIGVjcF9tdWxfY29tYigpOgotICogICAgICAgICAgICAgICAgICAgICAgLSBhdCBlYWNoIHN0ZXAsIFAsIFEgYW5kIFIgYXJlIG11bHRpcGxlcyBvZiB0aGUgYmFzZQotICogICAgICAgICAgICAgICAgICAgICAgcG9pbnQsIHRoZSBmYWN0b3IgYmVpbmcgbGVzcyB0aGFuIGl0cyBvcmRlciwgc28gbm9uZSBvZgotICogICAgICAgICAgICAgICAgICAgICAgdGhlbSBpcyB6ZXJvOwotICogICAgICAgICAgICAgICAgICAgICAgLSBRIGlzIGFuIG9kZCBtdWx0aXBsZSBvZiB0aGUgYmFzZSBwb2ludCwgUCBhbiBldmVuCi0gKiAgICAgICAgICAgICAgICAgICAgICBtdWx0aXBsZSwgZHVlIHRvIHRoZSBjaG9pY2Ugb2YgcHJlY29tcHV0ZWQgcG9pbnRzIGluIHRoZQotICogICAgICAgICAgICAgICAgICAgICAgbW9kaWZpZWQgY29tYiBtZXRob2QuCi0gKiAgICAgICAgICAgICAgICAgIFNvIGJyYW5jaGVzIGZvciB0aGVzZSBjYXNlcyBkbyBub3QgbGVhayBzZWNyZXQgaW5mb3JtYXRpb24uCi0gKgotICogICAgICAgICAgICAgICAgICBXZSBhY2NlcHQgUS0+WiBiZWluZyB1bnNldCAoc2F2aW5nIG1lbW9yeSBpbiB0YWJsZXMpIGFzCi0gKiAgICAgICAgICAgICAgICAgIG1lYW5pbmcgMS4KLSAqCi0gKiAgICAgICAgICAgICAgICAgIENvc3QgaW4gZmllbGQgb3BlcmF0aW9ucyBpZiBkb25lIGJ5IFs1XSAzLjIyOgotICogICAgICAgICAgICAgICAgICAgICAgMUEgOj0gOE0gKyAzUwotICoKLSAqIFxwYXJhbSBncnAgICAgICAgUG9pbnRlciB0byB0aGUgZ3JvdXAgcmVwcmVzZW50aW5nIHRoZSBjdXJ2ZS4KLSAqCi0gKiBccGFyYW0gUiAgICAgICAgIFBvaW50ZXIgdG8gYSBwb2ludCBzdHJ1Y3R1cmUgdG8gaG9sZCB0aGUgcmVzdWx0LgotICoKLSAqIFxwYXJhbSBQICAgICAgICAgUG9pbnRlciB0byB0aGUgZmlyc3Qgc3VtbWFuZCwgZ2l2ZW4gd2l0aCBKYWNvYmlhbgotICogICAgICAgICAgICAgICAgICBjb29yZGluYXRlcwotICoKLSAqIFxwYXJhbSBRICAgICAgICAgUG9pbnRlciB0byB0aGUgc2Vjb25kIHN1bW1hbmQsIGdpdmVuIHdpdGggYWZmaW5lCi0gKiAgICAgICAgICAgICAgICAgIGNvb3JkaW5hdGVzLgotICoKLSAqIFxyZXR1cm4gICAgICAgICAgMCBpZiBzdWNjZXNzZnVsLgotICovCi1pbnQgbWJlZHRsc19pbnRlcm5hbF9lY3BfYWRkX21peGVkKGNvbnN0IG1iZWR0bHNfZWNwX2dyb3VwICpncnAsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1iZWR0bHNfZWNwX3BvaW50ICpSLCBjb25zdCBtYmVkdGxzX2VjcF9wb2ludCAqUCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbWJlZHRsc19lY3BfcG9pbnQgKlEpOwotI2VuZGlmCi0KLS8qKgotICogXGJyaWVmICAgICAgICAgICBQb2ludCBkb3VibGluZyBSID0gMiBQLCBKYWNvYmlhbiBjb29yZGluYXRlcy4KLSAqCi0gKiAgICAgICAgICAgICAgICAgIENvc3Q6ICAgMUQgOj0gM00gKyA0UyAgICAoQSA9PSAgMCkKLSAqICAgICAgICAgICAgICAgICAgICAgICAgICA0TSArIDRTICAgICAgICAgIChBID09IC0zKQotICogICAgICAgICAgICAgICAgICAgICAgICAgIDNNICsgNlMgKyAxYSAgICAgb3RoZXJ3aXNlCi0gKiAgICAgICAgICAgICAgICAgIHdoZW4gdGhlIGltcGxlbWVudGF0aW9uIGlzIGJhc2VkIG9uIHRoZSAiZGJsLTE5OTgtY21vLTIiCi0gKiAgICAgICAgICAgICAgICAgIGRvdWJsaW5nIGZvcm11bGFzIGluIFs4XSBhbmQgc3RhbmRhcmQgb3B0aW1pemF0aW9ucyBhcmUKLSAqICAgICAgICAgICAgICAgICAgYXBwbGllZCB3aGVuIGN1cnZlIHBhcmFtZXRlciBBIGlzIG9uZSBvZiB7IDAsIC0zIH0uCi0gKgotICogXHBhcmFtIGdycCAgICAgICBQb2ludGVyIHRvIHRoZSBncm91cCByZXByZXNlbnRpbmcgdGhlIGN1cnZlLgotICoKLSAqIFxwYXJhbSBSICAgICAgICAgUG9pbnRlciB0byBhIHBvaW50IHN0cnVjdHVyZSB0byBob2xkIHRoZSByZXN1bHQuCi0gKgotICogXHBhcmFtIFAgICAgICAgICBQb2ludGVyIHRvIHRoZSBwb2ludCB0aGF0IGhhcyB0byBiZSBkb3VibGVkLCBnaXZlbiB3aXRoCi0gKiAgICAgICAgICAgICAgICAgIEphY29iaWFuIGNvb3JkaW5hdGVzLgotICoKLSAqIFxyZXR1cm4gICAgICAgICAgMCBpZiBzdWNjZXNzZnVsLgotICovCi0jaWYgZGVmaW5lZChNQkVEVExTX0VDUF9ET1VCTEVfSkFDX0FMVCkKLWludCBtYmVkdGxzX2ludGVybmFsX2VjcF9kb3VibGVfamFjKGNvbnN0IG1iZWR0bHNfZWNwX2dyb3VwICpncnAsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYmVkdGxzX2VjcF9wb2ludCAqUiwgY29uc3QgbWJlZHRsc19lY3BfcG9pbnQgKlApOwotI2VuZGlmCi0KLS8qKgotICogXGJyaWVmICAgICAgICAgICBOb3JtYWxpemUgamFjb2JpYW4gY29vcmRpbmF0ZXMgb2YgYW4gYXJyYXkgb2YgKHBvaW50ZXJzIHRvKQotICogICAgICAgICAgICAgICAgICBwb2ludHMuCi0gKgotICogICAgICAgICAgICAgICAgICBVc2luZyBNb250Z29tZXJ5J3MgdHJpY2sgdG8gcGVyZm9ybSBvbmx5IG9uZSBpbnZlcnNpb24gbW9kIFAKLSAqICAgICAgICAgICAgICAgICAgdGhlIGNvc3QgaXM6Ci0gKiAgICAgICAgICAgICAgICAgICAgICAxTih0KSA6PSAxSSArICg2dCAtIDMpTSArIDFTCi0gKiAgICAgICAgICAgICAgICAgIChTZWUgZm9yIGV4YW1wbGUgQWxnb3JpdGhtIDEwLjMuNC4gaW4gWzldKQotICoKLSAqICAgICAgICAgICAgICAgICAgVGhpcyBmdW5jdGlvbiBpcyB1c2VkIG9ubHkgYXMgYSBzdWJydXRpbmUgb2YKLSAqICAgICAgICAgICAgICAgICAgZWNwX211bF9jb21iKCkuCi0gKgotICogICAgICAgICAgICAgICAgICBXYXJuaW5nOiBmYWlscyAocmV0dXJuaW5nIGFuIGVycm9yKSBpZiBvbmUgb2YgdGhlIHBvaW50cyBpcwotICogICAgICAgICAgICAgICAgICB6ZXJvIQotICogICAgICAgICAgICAgICAgICBUaGlzIHNob3VsZCBuZXZlciBoYXBwZW4sIHNlZSBjaG9pY2Ugb2YgdyBpbiBlY3BfbXVsX2NvbWIoKS4KLSAqCi0gKiBccGFyYW0gZ3JwICAgICAgIFBvaW50ZXIgdG8gdGhlIGdyb3VwIHJlcHJlc2VudGluZyB0aGUgY3VydmUuCi0gKgotICogXHBhcmFtIFQgICAgICAgICBBcnJheSBvZiBwb2ludGVycyB0byB0aGUgcG9pbnRzIHRvIG5vcm1hbGlzZS4KLSAqCi0gKiBccGFyYW0gdF9sZW4gICAgIE51bWJlciBvZiBlbGVtZW50cyBpbiB0aGUgYXJyYXkuCi0gKgotICogXHJldHVybiAgICAgICAgICAwIGlmIHN1Y2Nlc3NmdWwsCi0gKiAgICAgICAgICAgICAgICAgICAgICBhbiBlcnJvciBpZiBvbmUgb2YgdGhlIHBvaW50cyBpcyB6ZXJvLgotICovCi0jaWYgZGVmaW5lZChNQkVEVExTX0VDUF9OT1JNQUxJWkVfSkFDX01BTllfQUxUKQotaW50IG1iZWR0bHNfaW50ZXJuYWxfZWNwX25vcm1hbGl6ZV9qYWNfbWFueShjb25zdCBtYmVkdGxzX2VjcF9ncm91cCAqZ3JwLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYmVkdGxzX2VjcF9wb2ludCAqVFtdLCBzaXplX3QgdF9sZW4pOwotI2VuZGlmCi0KLS8qKgotICogXGJyaWVmICAgICAgICAgICBOb3JtYWxpemUgamFjb2JpYW4gY29vcmRpbmF0ZXMgc28gdGhhdCBaID09IDAgfHwgWiA9PSAxLgotICoKLSAqICAgICAgICAgICAgICAgICAgQ29zdCBpbiBmaWVsZCBvcGVyYXRpb25zIGlmIGRvbmUgYnkgWzVdIDMuMi4xOgotICogICAgICAgICAgICAgICAgICAgICAgMU4gOj0gMUkgKyAzTSArIDFTCi0gKgotICogXHBhcmFtIGdycCAgICAgICBQb2ludGVyIHRvIHRoZSBncm91cCByZXByZXNlbnRpbmcgdGhlIGN1cnZlLgotICoKLSAqIFxwYXJhbSBwdCAgICAgICAgcG9pbnRlciB0byB0aGUgcG9pbnQgdG8gYmUgbm9ybWFsaXNlZC4gVGhpcyBpcyBhbgotICogICAgICAgICAgICAgICAgICBpbnB1dC9vdXRwdXQgcGFyYW1ldGVyLgotICoKLSAqIFxyZXR1cm4gICAgICAgICAgMCBpZiBzdWNjZXNzZnVsLgotICovCi0jaWYgZGVmaW5lZChNQkVEVExTX0VDUF9OT1JNQUxJWkVfSkFDX0FMVCkKLWludCBtYmVkdGxzX2ludGVybmFsX2VjcF9ub3JtYWxpemVfamFjKGNvbnN0IG1iZWR0bHNfZWNwX2dyb3VwICpncnAsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYmVkdGxzX2VjcF9wb2ludCAqcHQpOwotI2VuZGlmCi0KLSNlbmRpZiAvKiBNQkVEVExTX0VDUF9TSE9SVF9XRUlFUlNUUkFTU19FTkFCTEVEICovCi0KLSNpZiBkZWZpbmVkKE1CRURUTFNfRUNQX01PTlRHT01FUllfRU5BQkxFRCkKLQotI2lmIGRlZmluZWQoTUJFRFRMU19FQ1BfRE9VQkxFX0FERF9NWFpfQUxUKQotaW50IG1iZWR0bHNfaW50ZXJuYWxfZWNwX2RvdWJsZV9hZGRfbXh6KGNvbnN0IG1iZWR0bHNfZWNwX2dyb3VwICpncnAsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWJlZHRsc19lY3BfcG9pbnQgKlIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWJlZHRsc19lY3BfcG9pbnQgKlMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbWJlZHRsc19lY3BfcG9pbnQgKlAsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbWJlZHRsc19lY3BfcG9pbnQgKlEsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbWJlZHRsc19tcGkgKmQpOwotI2VuZGlmCi0KLS8qKgotICogXGJyaWVmICAgICAgICAgICBSYW5kb21pemUgcHJvamVjdGl2ZSB4L3ogY29vcmRpbmF0ZXM6Ci0gKiAgICAgICAgICAgICAgICAgICAgICAoWCwgWikgLT4gKGwgWCwgbCBaKSBmb3IgcmFuZG9tIGwKLSAqCi0gKiBccGFyYW0gZ3JwICAgICAgIHBvaW50ZXIgdG8gdGhlIGdyb3VwIHJlcHJlc2VudGluZyB0aGUgY3VydmUKLSAqCi0gKiBccGFyYW0gUCAgICAgICAgIHRoZSBwb2ludCBvbiB0aGUgY3VydmUgdG8gYmUgcmFuZG9taXNlZCBnaXZlbiB3aXRoCi0gKiAgICAgICAgICAgICAgICAgIHByb2plY3RpdmUgY29vcmRpbmF0ZXMuIFRoaXMgaXMgYW4gaW5wdXQvb3V0cHV0IHBhcmFtZXRlci4KLSAqCi0gKiBccGFyYW0gZl9ybmcgICAgIGEgZnVuY3Rpb24gcG9pbnRlciB0byB0aGUgcmFuZG9tIG51bWJlciBnZW5lcmF0b3IKLSAqCi0gKiBccGFyYW0gcF9ybmcgICAgIGEgcG9pbnRlciB0byB0aGUgcmFuZG9tIG51bWJlciBnZW5lcmF0b3Igc3RhdGUKLSAqCi0gKiBccmV0dXJuICAgICAgICAgIDAgaWYgc3VjY2Vzc2Z1bAotICovCi0jaWYgZGVmaW5lZChNQkVEVExTX0VDUF9SQU5ET01JWkVfTVhaX0FMVCkKLWludCBtYmVkdGxzX2ludGVybmFsX2VjcF9yYW5kb21pemVfbXh6KGNvbnN0IG1iZWR0bHNfZWNwX2dyb3VwICpncnAsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYmVkdGxzX2VjcF9wb2ludCAqUCwgaW50ICgqZl9ybmcpKHZvaWQgKiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgY2hhciAqLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdm9pZCAqcF9ybmcpOwotI2VuZGlmCi0KLS8qKgotICogXGJyaWVmICAgICAgICAgICBOb3JtYWxpemUgTW9udGdvbWVyeSB4L3ogY29vcmRpbmF0ZXM6IFggPSBYL1osIFogPSAxLgotICoKLSAqIFxwYXJhbSBncnAgICAgICAgcG9pbnRlciB0byB0aGUgZ3JvdXAgcmVwcmVzZW50aW5nIHRoZSBjdXJ2ZQotICoKLSAqIFxwYXJhbSBQICAgICAgICAgcG9pbnRlciB0byB0aGUgcG9pbnQgdG8gYmUgbm9ybWFsaXNlZC4gVGhpcyBpcyBhbgotICogICAgICAgICAgICAgICAgICBpbnB1dC9vdXRwdXQgcGFyYW1ldGVyLgotICoKLSAqIFxyZXR1cm4gICAgICAgICAgMCBpZiBzdWNjZXNzZnVsCi0gKi8KLSNpZiBkZWZpbmVkKE1CRURUTFNfRUNQX05PUk1BTElaRV9NWFpfQUxUKQotaW50IG1iZWR0bHNfaW50ZXJuYWxfZWNwX25vcm1hbGl6ZV9teHooY29uc3QgbWJlZHRsc19lY3BfZ3JvdXAgKmdycCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1iZWR0bHNfZWNwX3BvaW50ICpQKTsKLSNlbmRpZgotCi0jZW5kaWYgLyogTUJFRFRMU19FQ1BfTU9OVEdPTUVSWV9FTkFCTEVEICovCi0KLSNlbmRpZiAvKiBNQkVEVExTX0VDUF9JTlRFUk5BTF9BTFQgKi8KLQotI2VuZGlmIC8qIGVjcF9pbnRlcm5hbF9hbHQuaCAqLwpkaWZmIC0tZ2l0IGEvbGlicmFyeS9lbnRyb3B5LmMgYi9saWJyYXJ5L2VudHJvcHkuYwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZTNiYzg1MS4uMDAwMDAwMAotLS0gYS9saWJyYXJ5L2VudHJvcHkuYworKysgL2Rldi9udWxsCkBAIC0xLDY3NiArMCwwIEBACi0vKgotICogIEVudHJvcHkgYWNjdW11bGF0b3IgaW1wbGVtZW50YXRpb24KLSAqCi0gKiAgQ29weXJpZ2h0IFRoZSBNYmVkIFRMUyBDb250cmlidXRvcnMKLSAqICBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMCBPUiBHUEwtMi4wLW9yLWxhdGVyCi0gKi8KLQotI2luY2x1ZGUgImNvbW1vbi5oIgotCi0jaWYgZGVmaW5lZChNQkVEVExTX0VOVFJPUFlfQykKLQotI2luY2x1ZGUgIm1iZWR0bHMvZW50cm9weS5oIgotI2luY2x1ZGUgImVudHJvcHlfcG9sbC5oIgotI2luY2x1ZGUgIm1iZWR0bHMvcGxhdGZvcm1fdXRpbC5oIgotI2luY2x1ZGUgIm1iZWR0bHMvZXJyb3IuaCIKLQotI2luY2x1ZGUgPHN0cmluZy5oPgotCi0jaWYgZGVmaW5lZChNQkVEVExTX0ZTX0lPKQotI2luY2x1ZGUgPHN0ZGlvLmg+Ci0jZW5kaWYKLQotI2luY2x1ZGUgIm1iZWR0bHMvcGxhdGZvcm0uaCIKLQotI2RlZmluZSBFTlRST1BZX01BWF9MT09QICAgIDI1NiAgICAgLyoqPCBNYXhpbXVtIGFtb3VudCB0byBsb29wIGJlZm9yZSBlcnJvciAqLwotCi12b2lkIG1iZWR0bHNfZW50cm9weV9pbml0KG1iZWR0bHNfZW50cm9weV9jb250ZXh0ICpjdHgpCi17Ci0gICAgY3R4LT5zb3VyY2VfY291bnQgPSAwOwotICAgIG1lbXNldChjdHgtPnNvdXJjZSwgMCwgc2l6ZW9mKGN0eC0+c291cmNlKSk7Ci0KLSNpZiBkZWZpbmVkKE1CRURUTFNfVEhSRUFESU5HX0MpCi0gICAgbWJlZHRsc19tdXRleF9pbml0KCZjdHgtPm11dGV4KTsKLSNlbmRpZgotCi0gICAgY3R4LT5hY2N1bXVsYXRvcl9zdGFydGVkID0gMDsKLSAgICBtYmVkdGxzX21kX2luaXQoJmN0eC0+YWNjdW11bGF0b3IpOwotCi0gICAgLyogUmVtaW5kZXI6IFVwZGF0ZSBFTlRST1BZX0hBVkVfU1RST05HIGluIHRoZSB0ZXN0IGZpbGVzCi0gICAgICogICAgICAgICAgIHdoZW4gYWRkaW5nIG1vcmUgc3Ryb25nIGVudHJvcHkgc291cmNlcyBoZXJlLiAqLwotCi0jaWYgIWRlZmluZWQoTUJFRFRMU19OT19ERUZBVUxUX0VOVFJPUFlfU09VUkNFUykKLSNpZiAhZGVmaW5lZChNQkVEVExTX05PX1BMQVRGT1JNX0VOVFJPUFkpCi0gICAgbWJlZHRsc19lbnRyb3B5X2FkZF9zb3VyY2UoY3R4LCBtYmVkdGxzX3BsYXRmb3JtX2VudHJvcHlfcG9sbCwgTlVMTCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNQkVEVExTX0VOVFJPUFlfTUlOX1BMQVRGT1JNLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1CRURUTFNfRU5UUk9QWV9TT1VSQ0VfU1RST05HKTsKLSNlbmRpZgotI2lmIGRlZmluZWQoTUJFRFRMU19FTlRST1BZX0hBUkRXQVJFX0FMVCkKLSAgICBtYmVkdGxzX2VudHJvcHlfYWRkX3NvdXJjZShjdHgsIG1iZWR0bHNfaGFyZHdhcmVfcG9sbCwgTlVMTCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNQkVEVExTX0VOVFJPUFlfTUlOX0hBUkRXQVJFLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1CRURUTFNfRU5UUk9QWV9TT1VSQ0VfU1RST05HKTsKLSNlbmRpZgotI2lmIGRlZmluZWQoTUJFRFRMU19FTlRST1BZX05WX1NFRUQpCi0gICAgbWJlZHRsc19lbnRyb3B5X2FkZF9zb3VyY2UoY3R4LCBtYmVkdGxzX252X3NlZWRfcG9sbCwgTlVMTCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNQkVEVExTX0VOVFJPUFlfQkxPQ0tfU0laRSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNQkVEVExTX0VOVFJPUFlfU09VUkNFX1NUUk9ORyk7Ci0gICAgY3R4LT5pbml0aWFsX2VudHJvcHlfcnVuID0gMDsKLSNlbmRpZgotI2VuZGlmIC8qIE1CRURUTFNfTk9fREVGQVVMVF9FTlRST1BZX1NPVVJDRVMgKi8KLX0KLQotdm9pZCBtYmVkdGxzX2VudHJvcHlfZnJlZShtYmVkdGxzX2VudHJvcHlfY29udGV4dCAqY3R4KQotewotICAgIC8qIElmIHRoZSBjb250ZXh0IHdhcyBhbHJlYWR5IGZyZWUsIGRvbid0IGNhbGwgZnJlZSgpIGFnYWluLgotICAgICAqIFRoaXMgaXMgaW1wb3J0YW50IGZvciBtdXRleGVzIHdoaWNoIGRvbid0IGFsbG93IGRvdWJsZS1mcmVlLiAqLwotICAgIGlmIChjdHgtPmFjY3VtdWxhdG9yX3N0YXJ0ZWQgPT0gLTEpIHsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLQotI2lmIGRlZmluZWQoTUJFRFRMU19USFJFQURJTkdfQykKLSAgICBtYmVkdGxzX211dGV4X2ZyZWUoJmN0eC0+bXV0ZXgpOwotI2VuZGlmCi0gICAgbWJlZHRsc19tZF9mcmVlKCZjdHgtPmFjY3VtdWxhdG9yKTsKLSNpZiBkZWZpbmVkKE1CRURUTFNfRU5UUk9QWV9OVl9TRUVEKQotICAgIGN0eC0+aW5pdGlhbF9lbnRyb3B5X3J1biA9IDA7Ci0jZW5kaWYKLSAgICBjdHgtPnNvdXJjZV9jb3VudCA9IDA7Ci0gICAgbWJlZHRsc19wbGF0Zm9ybV96ZXJvaXplKGN0eC0+c291cmNlLCBzaXplb2YoY3R4LT5zb3VyY2UpKTsKLSAgICBjdHgtPmFjY3VtdWxhdG9yX3N0YXJ0ZWQgPSAtMTsKLX0KLQotaW50IG1iZWR0bHNfZW50cm9weV9hZGRfc291cmNlKG1iZWR0bHNfZW50cm9weV9jb250ZXh0ICpjdHgsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWJlZHRsc19lbnRyb3B5X2Zfc291cmNlX3B0ciBmX3NvdXJjZSwgdm9pZCAqcF9zb3VyY2UsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IHRocmVzaG9sZCwgaW50IHN0cm9uZykKLXsKLSAgICBpbnQgaWR4LCByZXQgPSAwOwotCi0jaWYgZGVmaW5lZChNQkVEVExTX1RIUkVBRElOR19DKQotICAgIGlmICgocmV0ID0gbWJlZHRsc19tdXRleF9sb2NrKCZjdHgtPm11dGV4KSkgIT0gMCkgewotICAgICAgICByZXR1cm4gcmV0OwotICAgIH0KLSNlbmRpZgotCi0gICAgaWR4ID0gY3R4LT5zb3VyY2VfY291bnQ7Ci0gICAgaWYgKGlkeCA+PSBNQkVEVExTX0VOVFJPUFlfTUFYX1NPVVJDRVMpIHsKLSAgICAgICAgcmV0ID0gTUJFRFRMU19FUlJfRU5UUk9QWV9NQVhfU09VUkNFUzsKLSAgICAgICAgZ290byBleGl0OwotICAgIH0KLQotICAgIGN0eC0+c291cmNlW2lkeF0uZl9zb3VyY2UgID0gZl9zb3VyY2U7Ci0gICAgY3R4LT5zb3VyY2VbaWR4XS5wX3NvdXJjZSAgPSBwX3NvdXJjZTsKLSAgICBjdHgtPnNvdXJjZVtpZHhdLnRocmVzaG9sZCA9IHRocmVzaG9sZDsKLSAgICBjdHgtPnNvdXJjZVtpZHhdLnN0cm9uZyAgICA9IHN0cm9uZzsKLQotICAgIGN0eC0+c291cmNlX2NvdW50Kys7Ci0KLWV4aXQ6Ci0jaWYgZGVmaW5lZChNQkVEVExTX1RIUkVBRElOR19DKQotICAgIGlmIChtYmVkdGxzX211dGV4X3VubG9jaygmY3R4LT5tdXRleCkgIT0gMCkgewotICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfVEhSRUFESU5HX01VVEVYX0VSUk9SOwotICAgIH0KLSNlbmRpZgotCi0gICAgcmV0dXJuIHJldDsKLX0KLQotLyoKLSAqIEVudHJvcHkgYWNjdW11bGF0b3IgdXBkYXRlCi0gKi8KLXN0YXRpYyBpbnQgZW50cm9weV91cGRhdGUobWJlZHRsc19lbnRyb3B5X2NvbnRleHQgKmN0eCwgdW5zaWduZWQgY2hhciBzb3VyY2VfaWQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgKmRhdGEsIHNpemVfdCBsZW4pCi17Ci0gICAgdW5zaWduZWQgY2hhciBoZWFkZXJbMl07Ci0gICAgdW5zaWduZWQgY2hhciB0bXBbTUJFRFRMU19FTlRST1BZX0JMT0NLX1NJWkVdOwotICAgIHNpemVfdCB1c2VfbGVuID0gbGVuOwotICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgKnAgPSBkYXRhOwotICAgIGludCByZXQgPSAwOwotCi0gICAgaWYgKHVzZV9sZW4gPiBNQkVEVExTX0VOVFJPUFlfQkxPQ0tfU0laRSkgewotICAgICAgICBpZiAoKHJldCA9IG1iZWR0bHNfbWQobWJlZHRsc19tZF9pbmZvX2Zyb21fdHlwZShNQkVEVExTX0VOVFJPUFlfTUQpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YSwgbGVuLCB0bXApKSAhPSAwKSB7Ci0gICAgICAgICAgICBnb3RvIGNsZWFudXA7Ci0gICAgICAgIH0KLSAgICAgICAgcCA9IHRtcDsKLSAgICAgICAgdXNlX2xlbiA9IE1CRURUTFNfRU5UUk9QWV9CTE9DS19TSVpFOwotICAgIH0KLQotICAgIGhlYWRlclswXSA9IHNvdXJjZV9pZDsKLSAgICBoZWFkZXJbMV0gPSB1c2VfbGVuICYgMHhGRjsKLQotICAgIC8qCi0gICAgICogU3RhcnQgdGhlIGFjY3VtdWxhdG9yIGlmIHRoaXMgaGFzIG5vdCBhbHJlYWR5IGhhcHBlbmVkLiBOb3RlIHRoYXQKLSAgICAgKiBpdCBpcyBzdWZmaWNpZW50IHRvIHN0YXJ0IHRoZSBhY2N1bXVsYXRvciBoZXJlIG9ubHkgYmVjYXVzZSBhbGwgY2FsbHMgdG8KLSAgICAgKiBnYXRoZXIgZW50cm9weSBldmVudHVhbGx5IGV4ZWN1dGUgdGhpcyBjb2RlLgotICAgICAqLwotICAgIGlmIChjdHgtPmFjY3VtdWxhdG9yX3N0YXJ0ZWQgPT0gMCkgewotICAgICAgICByZXQgPSBtYmVkdGxzX21kX3NldHVwKCZjdHgtPmFjY3VtdWxhdG9yLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1iZWR0bHNfbWRfaW5mb19mcm9tX3R5cGUoTUJFRFRMU19FTlRST1BZX01EKSwgMCk7Ci0gICAgICAgIGlmIChyZXQgIT0gMCkgewotICAgICAgICAgICAgZ290byBjbGVhbnVwOwotICAgICAgICB9Ci0gICAgICAgIHJldCA9IG1iZWR0bHNfbWRfc3RhcnRzKCZjdHgtPmFjY3VtdWxhdG9yKTsKLSAgICAgICAgaWYgKHJldCAhPSAwKSB7Ci0gICAgICAgICAgICBnb3RvIGNsZWFudXA7Ci0gICAgICAgIH0KLSAgICAgICAgY3R4LT5hY2N1bXVsYXRvcl9zdGFydGVkID0gMTsKLSAgICB9Ci0gICAgaWYgKChyZXQgPSBtYmVkdGxzX21kX3VwZGF0ZSgmY3R4LT5hY2N1bXVsYXRvciwgaGVhZGVyLCAyKSkgIT0gMCkgewotICAgICAgICBnb3RvIGNsZWFudXA7Ci0gICAgfQotICAgIHJldCA9IG1iZWR0bHNfbWRfdXBkYXRlKCZjdHgtPmFjY3VtdWxhdG9yLCBwLCB1c2VfbGVuKTsKLQotY2xlYW51cDoKLSAgICBtYmVkdGxzX3BsYXRmb3JtX3plcm9pemUodG1wLCBzaXplb2YodG1wKSk7Ci0KLSAgICByZXR1cm4gcmV0OwotfQotCi1pbnQgbWJlZHRsc19lbnRyb3B5X3VwZGF0ZV9tYW51YWwobWJlZHRsc19lbnRyb3B5X2NvbnRleHQgKmN0eCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1bnNpZ25lZCBjaGFyICpkYXRhLCBzaXplX3QgbGVuKQotewotICAgIGludCByZXQgPSBNQkVEVExTX0VSUl9FUlJPUl9DT1JSVVBUSU9OX0RFVEVDVEVEOwotCi0jaWYgZGVmaW5lZChNQkVEVExTX1RIUkVBRElOR19DKQotICAgIGlmICgocmV0ID0gbWJlZHRsc19tdXRleF9sb2NrKCZjdHgtPm11dGV4KSkgIT0gMCkgewotICAgICAgICByZXR1cm4gcmV0OwotICAgIH0KLSNlbmRpZgotCi0gICAgcmV0ID0gZW50cm9weV91cGRhdGUoY3R4LCBNQkVEVExTX0VOVFJPUFlfU09VUkNFX01BTlVBTCwgZGF0YSwgbGVuKTsKLQotI2lmIGRlZmluZWQoTUJFRFRMU19USFJFQURJTkdfQykKLSAgICBpZiAobWJlZHRsc19tdXRleF91bmxvY2soJmN0eC0+bXV0ZXgpICE9IDApIHsKLSAgICAgICAgcmV0dXJuIE1CRURUTFNfRVJSX1RIUkVBRElOR19NVVRFWF9FUlJPUjsKLSAgICB9Ci0jZW5kaWYKLQotICAgIHJldHVybiByZXQ7Ci19Ci0KLS8qCi0gKiBSdW4gdGhyb3VnaCB0aGUgZGlmZmVyZW50IHNvdXJjZXMgdG8gYWRkIGVudHJvcHkgdG8gb3VyIGFjY3VtdWxhdG9yCi0gKi8KLXN0YXRpYyBpbnQgZW50cm9weV9nYXRoZXJfaW50ZXJuYWwobWJlZHRsc19lbnRyb3B5X2NvbnRleHQgKmN0eCkKLXsKLSAgICBpbnQgcmV0ID0gTUJFRFRMU19FUlJfRU5UUk9QWV9TT1VSQ0VfRkFJTEVEOwotICAgIGludCBpOwotICAgIGludCBoYXZlX29uZV9zdHJvbmcgPSAwOwotICAgIHVuc2lnbmVkIGNoYXIgYnVmW01CRURUTFNfRU5UUk9QWV9NQVhfR0FUSEVSXTsKLSAgICBzaXplX3Qgb2xlbjsKLQotICAgIGlmIChjdHgtPnNvdXJjZV9jb3VudCA9PSAwKSB7Ci0gICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9FTlRST1BZX05PX1NPVVJDRVNfREVGSU5FRDsKLSAgICB9Ci0KLSAgICAvKgotICAgICAqIFJ1biB0aHJvdWdoIG91ciBlbnRyb3B5IHNvdXJjZXMKLSAgICAgKi8KLSAgICBmb3IgKGkgPSAwOyBpIDwgY3R4LT5zb3VyY2VfY291bnQ7IGkrKykgewotICAgICAgICBpZiAoY3R4LT5zb3VyY2VbaV0uc3Ryb25nID09IE1CRURUTFNfRU5UUk9QWV9TT1VSQ0VfU1RST05HKSB7Ci0gICAgICAgICAgICBoYXZlX29uZV9zdHJvbmcgPSAxOwotICAgICAgICB9Ci0KLSAgICAgICAgb2xlbiA9IDA7Ci0gICAgICAgIGlmICgocmV0ID0gY3R4LT5zb3VyY2VbaV0uZl9zb3VyY2UoY3R4LT5zb3VyY2VbaV0ucF9zb3VyY2UsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnVmLCBNQkVEVExTX0VOVFJPUFlfTUFYX0dBVEhFUiwgJm9sZW4pKSAhPSAwKSB7Ci0gICAgICAgICAgICBnb3RvIGNsZWFudXA7Ci0gICAgICAgIH0KLQotICAgICAgICAvKgotICAgICAgICAgKiBBZGQgaWYgd2UgYWN0dWFsbHkgZ2F0aGVyZWQgc29tZXRoaW5nCi0gICAgICAgICAqLwotICAgICAgICBpZiAob2xlbiA+IDApIHsKLSAgICAgICAgICAgIGlmICgocmV0ID0gZW50cm9weV91cGRhdGUoY3R4LCAodW5zaWduZWQgY2hhcikgaSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnVmLCBvbGVuKSkgIT0gMCkgewotICAgICAgICAgICAgICAgIHJldHVybiByZXQ7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBjdHgtPnNvdXJjZVtpXS5zaXplICs9IG9sZW47Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICBpZiAoaGF2ZV9vbmVfc3Ryb25nID09IDApIHsKLSAgICAgICAgcmV0ID0gTUJFRFRMU19FUlJfRU5UUk9QWV9OT19TVFJPTkdfU09VUkNFOwotICAgIH0KLQotY2xlYW51cDoKLSAgICBtYmVkdGxzX3BsYXRmb3JtX3plcm9pemUoYnVmLCBzaXplb2YoYnVmKSk7Ci0KLSAgICByZXR1cm4gcmV0OwotfQotCi0vKgotICogVGhyZWFkLXNhZmUgd3JhcHBlciBmb3IgZW50cm9weV9nYXRoZXJfaW50ZXJuYWwoKQotICovCi1pbnQgbWJlZHRsc19lbnRyb3B5X2dhdGhlcihtYmVkdGxzX2VudHJvcHlfY29udGV4dCAqY3R4KQotewotICAgIGludCByZXQgPSBNQkVEVExTX0VSUl9FUlJPUl9DT1JSVVBUSU9OX0RFVEVDVEVEOwotCi0jaWYgZGVmaW5lZChNQkVEVExTX1RIUkVBRElOR19DKQotICAgIGlmICgocmV0ID0gbWJlZHRsc19tdXRleF9sb2NrKCZjdHgtPm11dGV4KSkgIT0gMCkgewotICAgICAgICByZXR1cm4gcmV0OwotICAgIH0KLSNlbmRpZgotCi0gICAgcmV0ID0gZW50cm9weV9nYXRoZXJfaW50ZXJuYWwoY3R4KTsKLQotI2lmIGRlZmluZWQoTUJFRFRMU19USFJFQURJTkdfQykKLSAgICBpZiAobWJlZHRsc19tdXRleF91bmxvY2soJmN0eC0+bXV0ZXgpICE9IDApIHsKLSAgICAgICAgcmV0dXJuIE1CRURUTFNfRVJSX1RIUkVBRElOR19NVVRFWF9FUlJPUjsKLSAgICB9Ci0jZW5kaWYKLQotICAgIHJldHVybiByZXQ7Ci19Ci0KLWludCBtYmVkdGxzX2VudHJvcHlfZnVuYyh2b2lkICpkYXRhLCB1bnNpZ25lZCBjaGFyICpvdXRwdXQsIHNpemVfdCBsZW4pCi17Ci0gICAgaW50IHJldCwgY291bnQgPSAwLCBpLCB0aHJlc2hvbGRzX3JlYWNoZWQ7Ci0gICAgc2l6ZV90IHN0cm9uZ19zaXplOwotICAgIG1iZWR0bHNfZW50cm9weV9jb250ZXh0ICpjdHggPSAobWJlZHRsc19lbnRyb3B5X2NvbnRleHQgKikgZGF0YTsKLSAgICB1bnNpZ25lZCBjaGFyIGJ1ZltNQkVEVExTX0VOVFJPUFlfQkxPQ0tfU0laRV07Ci0KLSAgICBpZiAobGVuID4gTUJFRFRMU19FTlRST1BZX0JMT0NLX1NJWkUpIHsKLSAgICAgICAgcmV0dXJuIE1CRURUTFNfRVJSX0VOVFJPUFlfU09VUkNFX0ZBSUxFRDsKLSAgICB9Ci0KLSNpZiBkZWZpbmVkKE1CRURUTFNfRU5UUk9QWV9OVl9TRUVEKQotICAgIC8qIFVwZGF0ZSB0aGUgTlYgZW50cm9weSBzZWVkIGJlZm9yZSBnZW5lcmF0aW5nIGFueSBlbnRyb3B5IGZvciBvdXRzaWRlCi0gICAgICogdXNlLgotICAgICAqLwotICAgIGlmIChjdHgtPmluaXRpYWxfZW50cm9weV9ydW4gPT0gMCkgewotICAgICAgICBjdHgtPmluaXRpYWxfZW50cm9weV9ydW4gPSAxOwotICAgICAgICBpZiAoKHJldCA9IG1iZWR0bHNfZW50cm9weV91cGRhdGVfbnZfc2VlZChjdHgpKSAhPSAwKSB7Ci0gICAgICAgICAgICByZXR1cm4gcmV0OwotICAgICAgICB9Ci0gICAgfQotI2VuZGlmCi0KLSNpZiBkZWZpbmVkKE1CRURUTFNfVEhSRUFESU5HX0MpCi0gICAgaWYgKChyZXQgPSBtYmVkdGxzX211dGV4X2xvY2soJmN0eC0+bXV0ZXgpKSAhPSAwKSB7Ci0gICAgICAgIHJldHVybiByZXQ7Ci0gICAgfQotI2VuZGlmCi0KLSAgICAvKgotICAgICAqIEFsd2F5cyBnYXRoZXIgZXh0cmEgZW50cm9weSBiZWZvcmUgYSBjYWxsCi0gICAgICovCi0gICAgZG8gewotICAgICAgICBpZiAoY291bnQrKyA+IEVOVFJPUFlfTUFYX0xPT1ApIHsKLSAgICAgICAgICAgIHJldCA9IE1CRURUTFNfRVJSX0VOVFJPUFlfU09VUkNFX0ZBSUxFRDsKLSAgICAgICAgICAgIGdvdG8gZXhpdDsKLSAgICAgICAgfQotCi0gICAgICAgIGlmICgocmV0ID0gZW50cm9weV9nYXRoZXJfaW50ZXJuYWwoY3R4KSkgIT0gMCkgewotICAgICAgICAgICAgZ290byBleGl0OwotICAgICAgICB9Ci0KLSAgICAgICAgdGhyZXNob2xkc19yZWFjaGVkID0gMTsKLSAgICAgICAgc3Ryb25nX3NpemUgPSAwOwotICAgICAgICBmb3IgKGkgPSAwOyBpIDwgY3R4LT5zb3VyY2VfY291bnQ7IGkrKykgewotICAgICAgICAgICAgaWYgKGN0eC0+c291cmNlW2ldLnNpemUgPCBjdHgtPnNvdXJjZVtpXS50aHJlc2hvbGQpIHsKLSAgICAgICAgICAgICAgICB0aHJlc2hvbGRzX3JlYWNoZWQgPSAwOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYgKGN0eC0+c291cmNlW2ldLnN0cm9uZyA9PSBNQkVEVExTX0VOVFJPUFlfU09VUkNFX1NUUk9ORykgewotICAgICAgICAgICAgICAgIHN0cm9uZ19zaXplICs9IGN0eC0+c291cmNlW2ldLnNpemU7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLSAgICB9IHdoaWxlICghdGhyZXNob2xkc19yZWFjaGVkIHx8IHN0cm9uZ19zaXplIDwgTUJFRFRMU19FTlRST1BZX0JMT0NLX1NJWkUpOwotCi0gICAgbWVtc2V0KGJ1ZiwgMCwgTUJFRFRMU19FTlRST1BZX0JMT0NLX1NJWkUpOwotCi0gICAgLyoKLSAgICAgKiBOb3RlIHRoYXQgYXQgdGhpcyBzdGFnZSBpdCBpcyBhc3N1bWVkIHRoYXQgdGhlIGFjY3VtdWxhdG9yIHdhcyBzdGFydGVkCi0gICAgICogaW4gYSBwcmV2aW91cyBjYWxsIHRvIGVudHJvcHlfdXBkYXRlKCkuIElmIHRoaXMgaXMgbm90IGd1YXJhbnRlZWQsIHRoZQotICAgICAqIGNvZGUgYmVsb3cgd2lsbCBmYWlsLgotICAgICAqLwotICAgIGlmICgocmV0ID0gbWJlZHRsc19tZF9maW5pc2goJmN0eC0+YWNjdW11bGF0b3IsIGJ1ZikpICE9IDApIHsKLSAgICAgICAgZ290byBleGl0OwotICAgIH0KLQotICAgIC8qCi0gICAgICogUmVzZXQgYWNjdW11bGF0b3IgYW5kIGNvdW50ZXJzIGFuZCByZWN5Y2xlIGV4aXN0aW5nIGVudHJvcHkKLSAgICAgKi8KLSAgICBtYmVkdGxzX21kX2ZyZWUoJmN0eC0+YWNjdW11bGF0b3IpOwotICAgIG1iZWR0bHNfbWRfaW5pdCgmY3R4LT5hY2N1bXVsYXRvcik7Ci0gICAgcmV0ID0gbWJlZHRsc19tZF9zZXR1cCgmY3R4LT5hY2N1bXVsYXRvciwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIG1iZWR0bHNfbWRfaW5mb19mcm9tX3R5cGUoTUJFRFRMU19FTlRST1BZX01EKSwgMCk7Ci0gICAgaWYgKHJldCAhPSAwKSB7Ci0gICAgICAgIGdvdG8gZXhpdDsKLSAgICB9Ci0gICAgcmV0ID0gbWJlZHRsc19tZF9zdGFydHMoJmN0eC0+YWNjdW11bGF0b3IpOwotICAgIGlmIChyZXQgIT0gMCkgewotICAgICAgICBnb3RvIGV4aXQ7Ci0gICAgfQotICAgIGlmICgocmV0ID0gbWJlZHRsc19tZF91cGRhdGUoJmN0eC0+YWNjdW11bGF0b3IsIGJ1ZiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1CRURUTFNfRU5UUk9QWV9CTE9DS19TSVpFKSkgIT0gMCkgewotICAgICAgICBnb3RvIGV4aXQ7Ci0gICAgfQotCi0gICAgLyoKLSAgICAgKiBQZXJmb3JtIHNlY29uZCBoYXNoaW5nIG9uIGVudHJvcHkKLSAgICAgKi8KLSAgICBpZiAoKHJldCA9IG1iZWR0bHNfbWQobWJlZHRsc19tZF9pbmZvX2Zyb21fdHlwZShNQkVEVExTX0VOVFJPUFlfTUQpLAotICAgICAgICAgICAgICAgICAgICAgICAgICBidWYsIE1CRURUTFNfRU5UUk9QWV9CTE9DS19TSVpFLCBidWYpKSAhPSAwKSB7Ci0gICAgICAgIGdvdG8gZXhpdDsKLSAgICB9Ci0KLSAgICBmb3IgKGkgPSAwOyBpIDwgY3R4LT5zb3VyY2VfY291bnQ7IGkrKykgewotICAgICAgICBjdHgtPnNvdXJjZVtpXS5zaXplID0gMDsKLSAgICB9Ci0KLSAgICBtZW1jcHkob3V0cHV0LCBidWYsIGxlbik7Ci0KLSAgICByZXQgPSAwOwotCi1leGl0OgotICAgIG1iZWR0bHNfcGxhdGZvcm1femVyb2l6ZShidWYsIHNpemVvZihidWYpKTsKLQotI2lmIGRlZmluZWQoTUJFRFRMU19USFJFQURJTkdfQykKLSAgICBpZiAobWJlZHRsc19tdXRleF91bmxvY2soJmN0eC0+bXV0ZXgpICE9IDApIHsKLSAgICAgICAgcmV0dXJuIE1CRURUTFNfRVJSX1RIUkVBRElOR19NVVRFWF9FUlJPUjsKLSAgICB9Ci0jZW5kaWYKLQotICAgIHJldHVybiByZXQ7Ci19Ci0KLSNpZiBkZWZpbmVkKE1CRURUTFNfRU5UUk9QWV9OVl9TRUVEKQotaW50IG1iZWR0bHNfZW50cm9weV91cGRhdGVfbnZfc2VlZChtYmVkdGxzX2VudHJvcHlfY29udGV4dCAqY3R4KQotewotICAgIGludCByZXQgPSBNQkVEVExTX0VSUl9FTlRST1BZX0ZJTEVfSU9fRVJST1I7Ci0gICAgdW5zaWduZWQgY2hhciBidWZbTUJFRFRMU19FTlRST1BZX0JMT0NLX1NJWkVdOwotCi0gICAgLyogUmVhZCBuZXcgc2VlZCAgYW5kIHdyaXRlIGl0IHRvIE5WICovCi0gICAgaWYgKChyZXQgPSBtYmVkdGxzX2VudHJvcHlfZnVuYyhjdHgsIGJ1ZiwgTUJFRFRMU19FTlRST1BZX0JMT0NLX1NJWkUpKSAhPSAwKSB7Ci0gICAgICAgIHJldHVybiByZXQ7Ci0gICAgfQotCi0gICAgaWYgKG1iZWR0bHNfbnZfc2VlZF93cml0ZShidWYsIE1CRURUTFNfRU5UUk9QWV9CTE9DS19TSVpFKSA8IDApIHsKLSAgICAgICAgcmV0dXJuIE1CRURUTFNfRVJSX0VOVFJPUFlfRklMRV9JT19FUlJPUjsKLSAgICB9Ci0KLSAgICAvKiBNYW51YWxseSB1cGRhdGUgdGhlIHJlbWFpbmluZyBzdHJlYW0gd2l0aCBhIHNlcGFyYXRvciB2YWx1ZSB0byBkaXZlcmdlICovCi0gICAgbWVtc2V0KGJ1ZiwgMCwgTUJFRFRMU19FTlRST1BZX0JMT0NLX1NJWkUpOwotICAgIHJldCA9IG1iZWR0bHNfZW50cm9weV91cGRhdGVfbWFudWFsKGN0eCwgYnVmLCBNQkVEVExTX0VOVFJPUFlfQkxPQ0tfU0laRSk7Ci0KLSAgICByZXR1cm4gcmV0OwotfQotI2VuZGlmIC8qIE1CRURUTFNfRU5UUk9QWV9OVl9TRUVEICovCi0KLSNpZiBkZWZpbmVkKE1CRURUTFNfRlNfSU8pCi1pbnQgbWJlZHRsc19lbnRyb3B5X3dyaXRlX3NlZWRfZmlsZShtYmVkdGxzX2VudHJvcHlfY29udGV4dCAqY3R4LCBjb25zdCBjaGFyICpwYXRoKQotewotICAgIGludCByZXQgPSBNQkVEVExTX0VSUl9FUlJPUl9DT1JSVVBUSU9OX0RFVEVDVEVEOwotICAgIEZJTEUgKmYgPSBOVUxMOwotICAgIHVuc2lnbmVkIGNoYXIgYnVmW01CRURUTFNfRU5UUk9QWV9CTE9DS19TSVpFXTsKLQotICAgIGlmICgocmV0ID0gbWJlZHRsc19lbnRyb3B5X2Z1bmMoY3R4LCBidWYsIE1CRURUTFNfRU5UUk9QWV9CTE9DS19TSVpFKSkgIT0gMCkgewotICAgICAgICByZXQgPSBNQkVEVExTX0VSUl9FTlRST1BZX1NPVVJDRV9GQUlMRUQ7Ci0gICAgICAgIGdvdG8gZXhpdDsKLSAgICB9Ci0KLSAgICBpZiAoKGYgPSBmb3BlbihwYXRoLCAid2IiKSkgPT0gTlVMTCkgewotICAgICAgICByZXQgPSBNQkVEVExTX0VSUl9FTlRST1BZX0ZJTEVfSU9fRVJST1I7Ci0gICAgICAgIGdvdG8gZXhpdDsKLSAgICB9Ci0KLSAgICAvKiBFbnN1cmUgbm8gc3RkaW8gYnVmZmVyaW5nIG9mIHNlY3JldHMsIGFzIHN1Y2ggYnVmZmVycyBjYW5ub3QgYmUgd2lwZWQuICovCi0gICAgbWJlZHRsc19zZXRidWYoZiwgTlVMTCk7Ci0KLSAgICBpZiAoZndyaXRlKGJ1ZiwgMSwgTUJFRFRMU19FTlRST1BZX0JMT0NLX1NJWkUsIGYpICE9IE1CRURUTFNfRU5UUk9QWV9CTE9DS19TSVpFKSB7Ci0gICAgICAgIHJldCA9IE1CRURUTFNfRVJSX0VOVFJPUFlfRklMRV9JT19FUlJPUjsKLSAgICAgICAgZ290byBleGl0OwotICAgIH0KLQotICAgIHJldCA9IDA7Ci0KLWV4aXQ6Ci0gICAgbWJlZHRsc19wbGF0Zm9ybV96ZXJvaXplKGJ1Ziwgc2l6ZW9mKGJ1ZikpOwotCi0gICAgaWYgKGYgIT0gTlVMTCkgewotICAgICAgICBmY2xvc2UoZik7Ci0gICAgfQotCi0gICAgcmV0dXJuIHJldDsKLX0KLQotaW50IG1iZWR0bHNfZW50cm9weV91cGRhdGVfc2VlZF9maWxlKG1iZWR0bHNfZW50cm9weV9jb250ZXh0ICpjdHgsIGNvbnN0IGNoYXIgKnBhdGgpCi17Ci0gICAgaW50IHJldCA9IDA7Ci0gICAgRklMRSAqZjsKLSAgICBzaXplX3QgbjsKLSAgICB1bnNpZ25lZCBjaGFyIGJ1ZltNQkVEVExTX0VOVFJPUFlfTUFYX1NFRURfU0laRV07Ci0KLSAgICBpZiAoKGYgPSBmb3BlbihwYXRoLCAicmIiKSkgPT0gTlVMTCkgewotICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfRU5UUk9QWV9GSUxFX0lPX0VSUk9SOwotICAgIH0KLQotICAgIC8qIEVuc3VyZSBubyBzdGRpbyBidWZmZXJpbmcgb2Ygc2VjcmV0cywgYXMgc3VjaCBidWZmZXJzIGNhbm5vdCBiZSB3aXBlZC4gKi8KLSAgICBtYmVkdGxzX3NldGJ1ZihmLCBOVUxMKTsKLQotICAgIGZzZWVrKGYsIDAsIFNFRUtfRU5EKTsKLSAgICBuID0gKHNpemVfdCkgZnRlbGwoZik7Ci0gICAgZnNlZWsoZiwgMCwgU0VFS19TRVQpOwotCi0gICAgaWYgKG4gPiBNQkVEVExTX0VOVFJPUFlfTUFYX1NFRURfU0laRSkgewotICAgICAgICBuID0gTUJFRFRMU19FTlRST1BZX01BWF9TRUVEX1NJWkU7Ci0gICAgfQotCi0gICAgaWYgKGZyZWFkKGJ1ZiwgMSwgbiwgZikgIT0gbikgewotICAgICAgICByZXQgPSBNQkVEVExTX0VSUl9FTlRST1BZX0ZJTEVfSU9fRVJST1I7Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgcmV0ID0gbWJlZHRsc19lbnRyb3B5X3VwZGF0ZV9tYW51YWwoY3R4LCBidWYsIG4pOwotICAgIH0KLQotICAgIGZjbG9zZShmKTsKLQotICAgIG1iZWR0bHNfcGxhdGZvcm1femVyb2l6ZShidWYsIHNpemVvZihidWYpKTsKLQotICAgIGlmIChyZXQgIT0gMCkgewotICAgICAgICByZXR1cm4gcmV0OwotICAgIH0KLQotICAgIHJldHVybiBtYmVkdGxzX2VudHJvcHlfd3JpdGVfc2VlZF9maWxlKGN0eCwgcGF0aCk7Ci19Ci0jZW5kaWYgLyogTUJFRFRMU19GU19JTyAqLwotCi0jaWYgZGVmaW5lZChNQkVEVExTX1NFTEZfVEVTVCkKLS8qCi0gKiBEdW1teSBzb3VyY2UgZnVuY3Rpb24KLSAqLwotc3RhdGljIGludCBlbnRyb3B5X2R1bW15X3NvdXJjZSh2b2lkICpkYXRhLCB1bnNpZ25lZCBjaGFyICpvdXRwdXQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBsZW4sIHNpemVfdCAqb2xlbikKLXsKLSAgICAoKHZvaWQpIGRhdGEpOwotCi0gICAgbWVtc2V0KG91dHB1dCwgMHgyYSwgbGVuKTsKLSAgICAqb2xlbiA9IGxlbjsKLQotICAgIHJldHVybiAwOwotfQotCi0jaWYgZGVmaW5lZChNQkVEVExTX0VOVFJPUFlfSEFSRFdBUkVfQUxUKQotCi1zdGF0aWMgaW50IG1iZWR0bHNfZW50cm9weV9zb3VyY2Vfc2VsZl90ZXN0X2dhdGhlcih1bnNpZ25lZCBjaGFyICpidWYsIHNpemVfdCBidWZfbGVuKQotewotICAgIGludCByZXQgPSAwOwotICAgIHNpemVfdCBlbnRyb3B5X2xlbiA9IDA7Ci0gICAgc2l6ZV90IG9sZW4gPSAwOwotICAgIHNpemVfdCBhdHRlbXB0cyA9IGJ1Zl9sZW47Ci0KLSAgICB3aGlsZSAoYXR0ZW1wdHMgPiAwICYmIGVudHJvcHlfbGVuIDwgYnVmX2xlbikgewotICAgICAgICBpZiAoKHJldCA9IG1iZWR0bHNfaGFyZHdhcmVfcG9sbChOVUxMLCBidWYgKyBlbnRyb3B5X2xlbiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnVmX2xlbiAtIGVudHJvcHlfbGVuLCAmb2xlbikpICE9IDApIHsKLSAgICAgICAgICAgIHJldHVybiByZXQ7Ci0gICAgICAgIH0KLQotICAgICAgICBlbnRyb3B5X2xlbiArPSBvbGVuOwotICAgICAgICBhdHRlbXB0cy0tOwotICAgIH0KLQotICAgIGlmIChlbnRyb3B5X2xlbiA8IGJ1Zl9sZW4pIHsKLSAgICAgICAgcmV0ID0gMTsKLSAgICB9Ci0KLSAgICByZXR1cm4gcmV0OwotfQotCi0KLXN0YXRpYyBpbnQgbWJlZHRsc19lbnRyb3B5X3NvdXJjZV9zZWxmX3Rlc3RfY2hlY2tfYml0cyhjb25zdCB1bnNpZ25lZCBjaGFyICpidWYsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IGJ1Zl9sZW4pCi17Ci0gICAgdW5zaWduZWQgY2hhciBzZXQgPSAweEZGOwotICAgIHVuc2lnbmVkIGNoYXIgdW5zZXQgPSAweDAwOwotICAgIHNpemVfdCBpOwotCi0gICAgZm9yIChpID0gMDsgaSA8IGJ1Zl9sZW47IGkrKykgewotICAgICAgICBzZXQgJj0gYnVmW2ldOwotICAgICAgICB1bnNldCB8PSBidWZbaV07Ci0gICAgfQotCi0gICAgcmV0dXJuIHNldCA9PSAweEZGIHx8IHVuc2V0ID09IDB4MDA7Ci19Ci0KLS8qCi0gKiBBIHRlc3QgdG8gZW5zdXJlIHRoYXQgdGhlIGVudHJvcHkgc291cmNlcyBhcmUgZnVuY3Rpb25pbmcgY29ycmVjdGx5Ci0gKiBhbmQgdGhlcmUgaXMgbm8gb2J2aW91cyBmYWlsdXJlLiBUaGUgdGVzdCBwZXJmb3JtcyB0aGUgZm9sbG93aW5nIGNoZWNrczoKLSAqICAtIFRoZSBlbnRyb3B5IHNvdXJjZSBpcyBub3QgcHJvdmlkaW5nIG9ubHkgMHMgKGFsbCBiaXRzIHVuc2V0KSBvciAxcyAoYWxsCi0gKiAgICBiaXRzIHNldCkuCi0gKiAgLSBUaGUgZW50cm9weSBzb3VyY2UgaXMgbm90IHByb3ZpZGluZyB2YWx1ZXMgaW4gYSBwYXR0ZXJuLiBCZWNhdXNlIHRoZQotICogICAgaGFyZHdhcmUgY291bGQgYmUgcHJvdmlkaW5nIGRhdGEgaW4gYW4gYXJiaXRyYXJ5IGxlbmd0aCwgdGhpcyBjaGVjayBwb2xscwotICogICAgdGhlIGhhcmR3YXJlIGVudHJvcHkgc291cmNlIHR3aWNlIGFuZCBjb21wYXJlcyB0aGUgcmVzdWx0IHRvIGVuc3VyZSB0aGV5Ci0gKiAgICBhcmUgbm90IGVxdWFsLgotICogIC0gVGhlIGVycm9yIGNvZGUgcmV0dXJuZWQgYnkgdGhlIGVudHJvcHkgc291cmNlIGlzIG5vdCBhbiBlcnJvci4KLSAqLwotaW50IG1iZWR0bHNfZW50cm9weV9zb3VyY2Vfc2VsZl90ZXN0KGludCB2ZXJib3NlKQotewotICAgIGludCByZXQgPSAwOwotICAgIHVuc2lnbmVkIGNoYXIgYnVmMFsyICogc2l6ZW9mKHVuc2lnbmVkIGxvbmcgbG9uZyBpbnQpXTsKLSAgICB1bnNpZ25lZCBjaGFyIGJ1ZjFbMiAqIHNpemVvZih1bnNpZ25lZCBsb25nIGxvbmcgaW50KV07Ci0KLSAgICBpZiAodmVyYm9zZSAhPSAwKSB7Ci0gICAgICAgIG1iZWR0bHNfcHJpbnRmKCIgIEVOVFJPUFlfQklBUyB0ZXN0OiAiKTsKLSAgICB9Ci0KLSAgICBtZW1zZXQoYnVmMCwgMHgwMCwgc2l6ZW9mKGJ1ZjApKTsKLSAgICBtZW1zZXQoYnVmMSwgMHgwMCwgc2l6ZW9mKGJ1ZjEpKTsKLQotICAgIGlmICgocmV0ID0gbWJlZHRsc19lbnRyb3B5X3NvdXJjZV9zZWxmX3Rlc3RfZ2F0aGVyKGJ1ZjAsIHNpemVvZihidWYwKSkpICE9IDApIHsKLSAgICAgICAgZ290byBjbGVhbnVwOwotICAgIH0KLSAgICBpZiAoKHJldCA9IG1iZWR0bHNfZW50cm9weV9zb3VyY2Vfc2VsZl90ZXN0X2dhdGhlcihidWYxLCBzaXplb2YoYnVmMSkpKSAhPSAwKSB7Ci0gICAgICAgIGdvdG8gY2xlYW51cDsKLSAgICB9Ci0KLSAgICAvKiBNYWtlIHN1cmUgdGhhdCB0aGUgcmV0dXJuZWQgdmFsdWVzIGFyZSBub3QgYWxsIDAgb3IgMSAqLwotICAgIGlmICgocmV0ID0gbWJlZHRsc19lbnRyb3B5X3NvdXJjZV9zZWxmX3Rlc3RfY2hlY2tfYml0cyhidWYwLCBzaXplb2YoYnVmMCkpKSAhPSAwKSB7Ci0gICAgICAgIGdvdG8gY2xlYW51cDsKLSAgICB9Ci0gICAgaWYgKChyZXQgPSBtYmVkdGxzX2VudHJvcHlfc291cmNlX3NlbGZfdGVzdF9jaGVja19iaXRzKGJ1ZjEsIHNpemVvZihidWYxKSkpICE9IDApIHsKLSAgICAgICAgZ290byBjbGVhbnVwOwotICAgIH0KLQotICAgIC8qIE1ha2Ugc3VyZSB0aGF0IHRoZSBlbnRyb3B5IHNvdXJjZSBpcyBub3QgcmV0dXJuaW5nIHZhbHVlcyBpbiBhCi0gICAgICogcGF0dGVybiAqLwotICAgIHJldCA9IG1lbWNtcChidWYwLCBidWYxLCBzaXplb2YoYnVmMCkpID09IDA7Ci0KLWNsZWFudXA6Ci0gICAgaWYgKHZlcmJvc2UgIT0gMCkgewotICAgICAgICBpZiAocmV0ICE9IDApIHsKLSAgICAgICAgICAgIG1iZWR0bHNfcHJpbnRmKCJmYWlsZWRcbiIpOwotICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgbWJlZHRsc19wcmludGYoInBhc3NlZFxuIik7Ci0gICAgICAgIH0KLQotICAgICAgICBtYmVkdGxzX3ByaW50ZigiXG4iKTsKLSAgICB9Ci0KLSAgICByZXR1cm4gcmV0ICE9IDA7Ci19Ci0KLSNlbmRpZiAvKiBNQkVEVExTX0VOVFJPUFlfSEFSRFdBUkVfQUxUICovCi0KLS8qCi0gKiBUaGUgYWN0dWFsIGVudHJvcHkgcXVhbGl0eSBpcyBoYXJkIHRvIHRlc3QsIGJ1dCB3ZSBjYW4gYXQgbGVhc3QKLSAqIHRlc3QgdGhhdCB0aGUgZnVuY3Rpb25zIGRvbid0IGNhdXNlIGVycm9ycyBhbmQgd3JpdGUgdGhlIGNvcnJlY3QKLSAqIGFtb3VudCBvZiBkYXRhIHRvIGJ1ZmZlcnMuCi0gKi8KLWludCBtYmVkdGxzX2VudHJvcHlfc2VsZl90ZXN0KGludCB2ZXJib3NlKQotewotICAgIGludCByZXQgPSAxOwotICAgIG1iZWR0bHNfZW50cm9weV9jb250ZXh0IGN0eDsKLSAgICB1bnNpZ25lZCBjaGFyIGJ1ZltNQkVEVExTX0VOVFJPUFlfQkxPQ0tfU0laRV0gPSB7IDAgfTsKLSAgICB1bnNpZ25lZCBjaGFyIGFjY1tNQkVEVExTX0VOVFJPUFlfQkxPQ0tfU0laRV0gPSB7IDAgfTsKLSAgICBzaXplX3QgaSwgajsKLQotICAgIGlmICh2ZXJib3NlICE9IDApIHsKLSAgICAgICAgbWJlZHRsc19wcmludGYoIiAgRU5UUk9QWSB0ZXN0OiAiKTsKLSAgICB9Ci0KLSAgICBtYmVkdGxzX2VudHJvcHlfaW5pdCgmY3R4KTsKLQotICAgIC8qIEZpcnN0IGRvIGEgZ2F0aGVyIHRvIG1ha2Ugc3VyZSB3ZSBoYXZlIGRlZmF1bHQgc291cmNlcyAqLwotICAgIGlmICgocmV0ID0gbWJlZHRsc19lbnRyb3B5X2dhdGhlcigmY3R4KSkgIT0gMCkgewotICAgICAgICBnb3RvIGNsZWFudXA7Ci0gICAgfQotCi0gICAgcmV0ID0gbWJlZHRsc19lbnRyb3B5X2FkZF9zb3VyY2UoJmN0eCwgZW50cm9weV9kdW1teV9zb3VyY2UsIE5VTEwsIDE2LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1CRURUTFNfRU5UUk9QWV9TT1VSQ0VfV0VBSyk7Ci0gICAgaWYgKHJldCAhPSAwKSB7Ci0gICAgICAgIGdvdG8gY2xlYW51cDsKLSAgICB9Ci0KLSAgICBpZiAoKHJldCA9IG1iZWR0bHNfZW50cm9weV91cGRhdGVfbWFudWFsKCZjdHgsIGJ1Ziwgc2l6ZW9mKGJ1ZikpKSAhPSAwKSB7Ci0gICAgICAgIGdvdG8gY2xlYW51cDsKLSAgICB9Ci0KLSAgICAvKgotICAgICAqIFRvIHRlc3QgdGhhdCBtYmVkdGxzX2VudHJvcHlfZnVuYyB3cml0ZXMgY29ycmVjdCBudW1iZXIgb2YgYnl0ZXM6Ci0gICAgICogLSB1c2UgdGhlIHdob2xlIGJ1ZmZlciBhbmQgcmVseSBvbiBBU2FuIHRvIGRldGVjdCBvdmVycnVucwotICAgICAqIC0gY29sbGVjdCBlbnRyb3B5IDggdGltZXMgYW5kIE9SIHRoZSByZXN1bHQgaW4gYW4gYWNjdW11bGF0b3I6Ci0gICAgICogICBhbnkgYnl0ZSBzaG91bGQgdGhlbiBiZSAwIHdpdGggcHJvYmFibHkgMl4oLTY0KSwgc28gcmVxdWlyaW5nCi0gICAgICogICBlYWNoIG9mIHRoZSAzMiBvciA2NCBieXRlcyB0byBiZSBub24temVybyBoYXMgYSBmYWxzZSBmYWlsdXJlIHJhdGUKLSAgICAgKiAgIG9mIGF0IG1vc3QgMl4oLTU4KSB3aGljaCBpcyBhY2NlcHRhYmxlLgotICAgICAqLwotICAgIGZvciAoaSA9IDA7IGkgPCA4OyBpKyspIHsKLSAgICAgICAgaWYgKChyZXQgPSBtYmVkdGxzX2VudHJvcHlfZnVuYygmY3R4LCBidWYsIHNpemVvZihidWYpKSkgIT0gMCkgewotICAgICAgICAgICAgZ290byBjbGVhbnVwOwotICAgICAgICB9Ci0KLSAgICAgICAgZm9yIChqID0gMDsgaiA8IHNpemVvZihidWYpOyBqKyspIHsKLSAgICAgICAgICAgIGFjY1tqXSB8PSBidWZbal07Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICBmb3IgKGogPSAwOyBqIDwgc2l6ZW9mKGJ1Zik7IGorKykgewotICAgICAgICBpZiAoYWNjW2pdID09IDApIHsKLSAgICAgICAgICAgIHJldCA9IDE7Ci0gICAgICAgICAgICBnb3RvIGNsZWFudXA7Ci0gICAgICAgIH0KLSAgICB9Ci0KLSNpZiBkZWZpbmVkKE1CRURUTFNfRU5UUk9QWV9IQVJEV0FSRV9BTFQpCi0gICAgaWYgKChyZXQgPSBtYmVkdGxzX2VudHJvcHlfc291cmNlX3NlbGZfdGVzdCgwKSkgIT0gMCkgewotICAgICAgICBnb3RvIGNsZWFudXA7Ci0gICAgfQotI2VuZGlmCi0KLWNsZWFudXA6Ci0gICAgbWJlZHRsc19lbnRyb3B5X2ZyZWUoJmN0eCk7Ci0KLSAgICBpZiAodmVyYm9zZSAhPSAwKSB7Ci0gICAgICAgIGlmIChyZXQgIT0gMCkgewotICAgICAgICAgICAgbWJlZHRsc19wcmludGYoImZhaWxlZFxuIik7Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBtYmVkdGxzX3ByaW50ZigicGFzc2VkXG4iKTsKLSAgICAgICAgfQotCi0gICAgICAgIG1iZWR0bHNfcHJpbnRmKCJcbiIpOwotICAgIH0KLQotICAgIHJldHVybiByZXQgIT0gMDsKLX0KLSNlbmRpZiAvKiBNQkVEVExTX1NFTEZfVEVTVCAqLwotCi0jZW5kaWYgLyogTUJFRFRMU19FTlRST1BZX0MgKi8KZGlmZiAtLWdpdCBhL2xpYnJhcnkvZ2NtLmMgYi9saWJyYXJ5L2djbS5jCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1ZGZhYzIzLi4wMDAwMDAwCi0tLSBhL2xpYnJhcnkvZ2NtLmMKKysrIC9kZXYvbnVsbApAQCAtMSwxMzMwICswLDAgQEAKLS8qCi0gKiAgTklTVCBTUDgwMC0zOEQgY29tcGxpYW50IEdDTSBpbXBsZW1lbnRhdGlvbgotICoKLSAqICBDb3B5cmlnaHQgVGhlIE1iZWQgVExTIENvbnRyaWJ1dG9ycwotICogIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wIE9SIEdQTC0yLjAtb3ItbGF0ZXIKLSAqLwotCi0vKgotICogaHR0cDovL2NzcmMubmlzdC5nb3YvcHVibGljYXRpb25zL25pc3RwdWJzLzgwMC0zOEQvU1AtODAwLTM4RC5wZGYKLSAqCi0gKiBTZWUgYWxzbzoKLSAqIFtNR1ZdIGh0dHA6Ly9jc3JjLm5pc3QuZ292L2dyb3Vwcy9TVC90b29sa2l0L0JDTS9kb2N1bWVudHMvcHJvcG9zZWRtb2Rlcy9nY20vZ2NtLXJldmlzZWQtc3BlYy5wZGYKLSAqCi0gKiBXZSB1c2UgdGhlIGFsZ29yaXRobSBkZXNjcmliZWQgYXMgU2hvdXAncyBtZXRob2Qgd2l0aCA0LWJpdCB0YWJsZXMgaW4KLSAqIFtNR1ZdIDQuMSwgcHAuIDEyLTEzLCB0byBlbmhhbmNlIHNwZWVkIHdpdGhvdXQgdXNpbmcgdG9vIG11Y2ggbWVtb3J5LgotICovCi0KLSNpbmNsdWRlICJjb21tb24uaCIKLQotI2lmIGRlZmluZWQoTUJFRFRMU19HQ01fQykKLQotI2luY2x1ZGUgIm1iZWR0bHMvZ2NtLmgiCi0jaW5jbHVkZSAibWJlZHRscy9wbGF0Zm9ybS5oIgotI2luY2x1ZGUgIm1iZWR0bHMvcGxhdGZvcm1fdXRpbC5oIgotI2luY2x1ZGUgIm1iZWR0bHMvZXJyb3IuaCIKLSNpbmNsdWRlICJtYmVkdGxzL2NvbnN0YW50X3RpbWUuaCIKLQotI2lmIGRlZmluZWQoTUJFRFRMU19CTE9DS19DSVBIRVJfQykKLSNpbmNsdWRlICJibG9ja19jaXBoZXJfaW50ZXJuYWwuaCIKLSNlbmRpZgotCi0jaW5jbHVkZSA8c3RyaW5nLmg+Ci0KLSNpZiBkZWZpbmVkKE1CRURUTFNfQUVTTklfQykKLSNpbmNsdWRlICJhZXNuaS5oIgotI2VuZGlmCi0KLSNpZiBkZWZpbmVkKE1CRURUTFNfQUVTQ0VfQykKLSNpbmNsdWRlICJhZXNjZS5oIgotI2VuZGlmCi0KLSNpZiAhZGVmaW5lZChNQkVEVExTX0dDTV9BTFQpCi0KLS8qIFVzZWQgdG8gc2VsZWN0IHRoZSBhY2NlbGVyYXRpb24gbWVjaGFuaXNtICovCi0jZGVmaW5lIE1CRURUTFNfR0NNX0FDQ19TTUFMTFRBQkxFICAwCi0jZGVmaW5lIE1CRURUTFNfR0NNX0FDQ19MQVJHRVRBQkxFICAxCi0jZGVmaW5lIE1CRURUTFNfR0NNX0FDQ19BRVNOSSAgICAgICAyCi0jZGVmaW5lIE1CRURUTFNfR0NNX0FDQ19BRVNDRSAgICAgICAzCi0KLS8qCi0gKiBJbml0aWFsaXplIGEgY29udGV4dAotICovCi12b2lkIG1iZWR0bHNfZ2NtX2luaXQobWJlZHRsc19nY21fY29udGV4dCAqY3R4KQotewotICAgIG1lbXNldChjdHgsIDAsIHNpemVvZihtYmVkdGxzX2djbV9jb250ZXh0KSk7Ci19Ci0KLXN0YXRpYyBpbmxpbmUgdm9pZCBnY21fc2V0X2FjY2VsZXJhdGlvbihtYmVkdGxzX2djbV9jb250ZXh0ICpjdHgpCi17Ci0jaWYgZGVmaW5lZChNQkVEVExTX0dDTV9MQVJHRV9UQUJMRSkKLSAgICBjdHgtPmFjY2VsZXJhdGlvbiA9IE1CRURUTFNfR0NNX0FDQ19MQVJHRVRBQkxFOwotI2Vsc2UKLSAgICBjdHgtPmFjY2VsZXJhdGlvbiA9IE1CRURUTFNfR0NNX0FDQ19TTUFMTFRBQkxFOwotI2VuZGlmCi0KLSNpZiBkZWZpbmVkKE1CRURUTFNfQUVTTklfSEFWRV9DT0RFKQotICAgIC8qIFdpdGggQ0xNVUwgc3VwcG9ydCwgd2UgbmVlZCBvbmx5IGgsIG5vdCB0aGUgcmVzdCBvZiB0aGUgdGFibGUgKi8KLSAgICBpZiAobWJlZHRsc19hZXNuaV9oYXNfc3VwcG9ydChNQkVEVExTX0FFU05JX0NMTVVMKSkgewotICAgICAgICBjdHgtPmFjY2VsZXJhdGlvbiA9IE1CRURUTFNfR0NNX0FDQ19BRVNOSTsKLSAgICB9Ci0jZW5kaWYKLQotI2lmIGRlZmluZWQoTUJFRFRMU19BRVNDRV9IQVZFX0NPREUpCi0gICAgaWYgKE1CRURUTFNfQUVTQ0VfSEFTX1NVUFBPUlQoKSkgewotICAgICAgICBjdHgtPmFjY2VsZXJhdGlvbiA9IE1CRURUTFNfR0NNX0FDQ19BRVNDRTsKLSAgICB9Ci0jZW5kaWYKLX0KLQotc3RhdGljIGlubGluZSB2b2lkIGdjbV9nZW5fdGFibGVfcmlnaHRzaGlmdCh1aW50NjRfdCBkc3RbMl0sIGNvbnN0IHVpbnQ2NF90IHNyY1syXSkKLXsKLSAgICB1aW50OF90ICp1OERzdCA9ICh1aW50OF90ICopIGRzdDsKLSAgICB1aW50OF90ICp1OFNyYyA9ICh1aW50OF90ICopIHNyYzsKLQotICAgIE1CRURUTFNfUFVUX1VJTlQ2NF9CRShNQkVEVExTX0dFVF9VSU5UNjRfQkUoJnNyY1sxXSwgMCkgPj4gMSwgJmRzdFsxXSwgMCk7Ci0gICAgdThEc3RbOF0gfD0gKHU4U3JjWzddICYgMHgwMSkgPDwgNzsKLSAgICBNQkVEVExTX1BVVF9VSU5UNjRfQkUoTUJFRFRMU19HRVRfVUlOVDY0X0JFKCZzcmNbMF0sIDApID4+IDEsICZkc3RbMF0sIDApOwotICAgIHU4RHN0WzBdIF49ICh1OFNyY1sxNV0gJiAweDAxKSA/IDB4RTEgOiAwOwotfQotCi0vKgotICogUHJlY29tcHV0ZSBzbWFsbCBtdWx0aXBsZXMgb2YgSCwgdGhhdCBpcyBzZXQKLSAqICAgICAgSEhbaV0gfHwgSExbaV0gPSBIIHRpbWVzIGksCi0gKiB3aGVyZSBpIGlzIHNlZW4gYXMgYSBmaWVsZCBlbGVtZW50IGFzIGluIFtNR1ZdLCBpZSBoaWdoLW9yZGVyIGJpdHMKLSAqIGNvcnJlc3BvbmQgdG8gbG93IHBvd2VycyBvZiBQLiBUaGUgcmVzdWx0IGlzIHN0b3JlZCBpbiB0aGUgc2FtZSB3YXksIHRoYXQKLSAqIGlzIHRoZSBoaWdoLW9yZGVyIGJpdCBvZiBISCBjb3JyZXNwb25kcyB0byBQXjAgYW5kIHRoZSBsb3ctb3JkZXIgYml0IG9mIEhMCi0gKiBjb3JyZXNwb25kcyB0byBQXjEyNy4KLSAqLwotc3RhdGljIGludCBnY21fZ2VuX3RhYmxlKG1iZWR0bHNfZ2NtX2NvbnRleHQgKmN0eCkKLXsKLSAgICBpbnQgcmV0LCBpLCBqOwotICAgIHVpbnQ2NF90IHU2NGhbMl0gPSB7IDAgfTsKLSAgICB1aW50OF90ICpoID0gKHVpbnQ4X3QgKikgdTY0aDsKLQotI2lmIGRlZmluZWQoTUJFRFRMU19CTE9DS19DSVBIRVJfQykKLSAgICByZXQgPSBtYmVkdGxzX2Jsb2NrX2NpcGhlcl9lbmNyeXB0KCZjdHgtPmJsb2NrX2NpcGhlcl9jdHgsIGgsIGgpOwotI2Vsc2UKLSAgICBzaXplX3Qgb2xlbiA9IDA7Ci0gICAgcmV0ID0gbWJlZHRsc19jaXBoZXJfdXBkYXRlKCZjdHgtPmNpcGhlcl9jdHgsIGgsIDE2LCBoLCAmb2xlbik7Ci0jZW5kaWYKLSAgICBpZiAocmV0ICE9IDApIHsKLSAgICAgICAgcmV0dXJuIHJldDsKLSAgICB9Ci0KLSAgICBnY21fc2V0X2FjY2VsZXJhdGlvbihjdHgpOwotCi0gICAgLyogTUJFRFRMU19HQ01fSFRBQkxFX1NJWkUvMiA9IDEwMDAgY29ycmVzcG9uZHMgdG8gMSBpbiBHRigyXjEyOCkgKi8KLSAgICBjdHgtPkhbTUJFRFRMU19HQ01fSFRBQkxFX1NJWkUvMl1bMF0gPSB1NjRoWzBdOwotICAgIGN0eC0+SFtNQkVEVExTX0dDTV9IVEFCTEVfU0laRS8yXVsxXSA9IHU2NGhbMV07Ci0KLSAgICBzd2l0Y2ggKGN0eC0+YWNjZWxlcmF0aW9uKSB7Ci0jaWYgZGVmaW5lZChNQkVEVExTX0FFU05JX0hBVkVfQ09ERSkKLSAgICAgICAgY2FzZSBNQkVEVExTX0dDTV9BQ0NfQUVTTkk6Ci0gICAgICAgICAgICByZXR1cm4gMDsKLSNlbmRpZgotCi0jaWYgZGVmaW5lZChNQkVEVExTX0FFU0NFX0hBVkVfQ09ERSkKLSAgICAgICAgY2FzZSBNQkVEVExTX0dDTV9BQ0NfQUVTQ0U6Ci0gICAgICAgICAgICByZXR1cm4gMDsKLSNlbmRpZgotCi0gICAgICAgIGRlZmF1bHQ6Ci0gICAgICAgICAgICAvKiAwIGNvcnJlc3BvbmRzIHRvIDAgaW4gR0YoMl4xMjgpICovCi0gICAgICAgICAgICBjdHgtPkhbMF1bMF0gPSAwOwotICAgICAgICAgICAgY3R4LT5IWzBdWzFdID0gMDsKLQotICAgICAgICAgICAgZm9yIChpID0gTUJFRFRMU19HQ01fSFRBQkxFX1NJWkUvNDsgaSA+IDA7IGkgPj49IDEpIHsKLSAgICAgICAgICAgICAgICBnY21fZ2VuX3RhYmxlX3JpZ2h0c2hpZnQoY3R4LT5IW2ldLCBjdHgtPkhbaSoyXSk7Ci0gICAgICAgICAgICB9Ci0KLSNpZiAhZGVmaW5lZChNQkVEVExTX0dDTV9MQVJHRV9UQUJMRSkKLSAgICAgICAgICAgIC8qIHBhY2sgZWxlbWVudHMgb2YgSCBhcyA2NC1iaXRzIGludHMsIGJpZy1lbmRpYW4gKi8KLSAgICAgICAgICAgIGZvciAoaSA9IE1CRURUTFNfR0NNX0hUQUJMRV9TSVpFLzI7IGkgPiAwOyBpID4+PSAxKSB7Ci0gICAgICAgICAgICAgICAgTUJFRFRMU19QVVRfVUlOVDY0X0JFKGN0eC0+SFtpXVswXSwgJmN0eC0+SFtpXVswXSwgMCk7Ci0gICAgICAgICAgICAgICAgTUJFRFRMU19QVVRfVUlOVDY0X0JFKGN0eC0+SFtpXVsxXSwgJmN0eC0+SFtpXVsxXSwgMCk7Ci0gICAgICAgICAgICB9Ci0jZW5kaWYKLQotICAgICAgICAgICAgZm9yIChpID0gMjsgaSA8IE1CRURUTFNfR0NNX0hUQUJMRV9TSVpFOyBpIDw8PSAxKSB7Ci0gICAgICAgICAgICAgICAgZm9yIChqID0gMTsgaiA8IGk7IGorKykgewotICAgICAgICAgICAgICAgICAgICBtYmVkdGxzX3hvcl9ub19zaW1kKCh1bnNpZ25lZCBjaGFyICopIGN0eC0+SFtpK2pdLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh1bnNpZ25lZCBjaGFyICopIGN0eC0+SFtpXSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodW5zaWduZWQgY2hhciAqKSBjdHgtPkhbal0sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMTYpOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLSAgICB9Ci0KLSAgICByZXR1cm4gMDsKLX0KLQotaW50IG1iZWR0bHNfZ2NtX3NldGtleShtYmVkdGxzX2djbV9jb250ZXh0ICpjdHgsCi0gICAgICAgICAgICAgICAgICAgICAgIG1iZWR0bHNfY2lwaGVyX2lkX3QgY2lwaGVyLAotICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1bnNpZ25lZCBjaGFyICprZXksCi0gICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCBrZXliaXRzKQotewotICAgIGludCByZXQgPSBNQkVEVExTX0VSUl9FUlJPUl9DT1JSVVBUSU9OX0RFVEVDVEVEOwotCi0gICAgaWYgKGtleWJpdHMgIT0gMTI4ICYmIGtleWJpdHMgIT0gMTkyICYmIGtleWJpdHMgIT0gMjU2KSB7Ci0gICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9HQ01fQkFEX0lOUFVUOwotICAgIH0KLQotI2lmIGRlZmluZWQoTUJFRFRMU19CTE9DS19DSVBIRVJfQykKLSAgICBtYmVkdGxzX2Jsb2NrX2NpcGhlcl9mcmVlKCZjdHgtPmJsb2NrX2NpcGhlcl9jdHgpOwotCi0gICAgaWYgKChyZXQgPSBtYmVkdGxzX2Jsb2NrX2NpcGhlcl9zZXR1cCgmY3R4LT5ibG9ja19jaXBoZXJfY3R4LCBjaXBoZXIpKSAhPSAwKSB7Ci0gICAgICAgIHJldHVybiByZXQ7Ci0gICAgfQotCi0gICAgaWYgKChyZXQgPSBtYmVkdGxzX2Jsb2NrX2NpcGhlcl9zZXRrZXkoJmN0eC0+YmxvY2tfY2lwaGVyX2N0eCwga2V5LCBrZXliaXRzKSkgIT0gMCkgewotICAgICAgICByZXR1cm4gcmV0OwotICAgIH0KLSNlbHNlCi0gICAgY29uc3QgbWJlZHRsc19jaXBoZXJfaW5mb190ICpjaXBoZXJfaW5mbzsKLQotICAgIGNpcGhlcl9pbmZvID0gbWJlZHRsc19jaXBoZXJfaW5mb19mcm9tX3ZhbHVlcyhjaXBoZXIsIGtleWJpdHMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1CRURUTFNfTU9ERV9FQ0IpOwotICAgIGlmIChjaXBoZXJfaW5mbyA9PSBOVUxMKSB7Ci0gICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9HQ01fQkFEX0lOUFVUOwotICAgIH0KLQotICAgIGlmIChtYmVkdGxzX2NpcGhlcl9pbmZvX2dldF9ibG9ja19zaXplKGNpcGhlcl9pbmZvKSAhPSAxNikgewotICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfR0NNX0JBRF9JTlBVVDsKLSAgICB9Ci0KLSAgICBtYmVkdGxzX2NpcGhlcl9mcmVlKCZjdHgtPmNpcGhlcl9jdHgpOwotCi0gICAgaWYgKChyZXQgPSBtYmVkdGxzX2NpcGhlcl9zZXR1cCgmY3R4LT5jaXBoZXJfY3R4LCBjaXBoZXJfaW5mbykpICE9IDApIHsKLSAgICAgICAgcmV0dXJuIHJldDsKLSAgICB9Ci0KLSAgICBpZiAoKHJldCA9IG1iZWR0bHNfY2lwaGVyX3NldGtleSgmY3R4LT5jaXBoZXJfY3R4LCBrZXksIGtleWJpdHMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTUJFRFRMU19FTkNSWVBUKSkgIT0gMCkgewotICAgICAgICByZXR1cm4gcmV0OwotICAgIH0KLSNlbmRpZgotCi0gICAgaWYgKChyZXQgPSBnY21fZ2VuX3RhYmxlKGN0eCkpICE9IDApIHsKLSAgICAgICAgcmV0dXJuIHJldDsKLSAgICB9Ci0KLSAgICByZXR1cm4gMDsKLX0KLQotI2lmIGRlZmluZWQoTUJFRFRMU19HQ01fTEFSR0VfVEFCTEUpCi1zdGF0aWMgY29uc3QgdWludDE2X3QgbGFzdDhbMjU2XSA9IHsKLSAgICAweDAwMDAsIDB4YzIwMSwgMHg4NDAzLCAweDQ2MDIsIDB4MDgwNywgMHhjYTA2LCAweDhjMDQsIDB4NGUwNSwKLSAgICAweDEwMGUsIDB4ZDIwZiwgMHg5NDBkLCAweDU2MGMsIDB4MTgwOSwgMHhkYTA4LCAweDljMGEsIDB4NWUwYiwKLSAgICAweDIwMWMsIDB4ZTIxZCwgMHhhNDFmLCAweDY2MWUsIDB4MjgxYiwgMHhlYTFhLCAweGFjMTgsIDB4NmUxOSwKLSAgICAweDMwMTIsIDB4ZjIxMywgMHhiNDExLCAweDc2MTAsIDB4MzgxNSwgMHhmYTE0LCAweGJjMTYsIDB4N2UxNywKLSAgICAweDQwMzgsIDB4ODIzOSwgMHhjNDNiLCAweDA2M2EsIDB4NDgzZiwgMHg4YTNlLCAweGNjM2MsIDB4MGUzZCwKLSAgICAweDUwMzYsIDB4OTIzNywgMHhkNDM1LCAweDE2MzQsIDB4NTgzMSwgMHg5YTMwLCAweGRjMzIsIDB4MWUzMywKLSAgICAweDYwMjQsIDB4YTIyNSwgMHhlNDI3LCAweDI2MjYsIDB4NjgyMywgMHhhYTIyLCAweGVjMjAsIDB4MmUyMSwKLSAgICAweDcwMmEsIDB4YjIyYiwgMHhmNDI5LCAweDM2MjgsIDB4NzgyZCwgMHhiYTJjLCAweGZjMmUsIDB4M2UyZiwKLSAgICAweDgwNzAsIDB4NDI3MSwgMHgwNDczLCAweGM2NzIsIDB4ODg3NywgMHg0YTc2LCAweDBjNzQsIDB4Y2U3NSwKLSAgICAweDkwN2UsIDB4NTI3ZiwgMHgxNDdkLCAweGQ2N2MsIDB4OTg3OSwgMHg1YTc4LCAweDFjN2EsIDB4ZGU3YiwKLSAgICAweGEwNmMsIDB4NjI2ZCwgMHgyNDZmLCAweGU2NmUsIDB4YTg2YiwgMHg2YTZhLCAweDJjNjgsIDB4ZWU2OSwKLSAgICAweGIwNjIsIDB4NzI2MywgMHgzNDYxLCAweGY2NjAsIDB4Yjg2NSwgMHg3YTY0LCAweDNjNjYsIDB4ZmU2NywKLSAgICAweGMwNDgsIDB4MDI0OSwgMHg0NDRiLCAweDg2NGEsIDB4Yzg0ZiwgMHgwYTRlLCAweDRjNGMsIDB4OGU0ZCwKLSAgICAweGQwNDYsIDB4MTI0NywgMHg1NDQ1LCAweDk2NDQsIDB4ZDg0MSwgMHgxYTQwLCAweDVjNDIsIDB4OWU0MywKLSAgICAweGUwNTQsIDB4MjI1NSwgMHg2NDU3LCAweGE2NTYsIDB4ZTg1MywgMHgyYTUyLCAweDZjNTAsIDB4YWU1MSwKLSAgICAweGYwNWEsIDB4MzI1YiwgMHg3NDU5LCAweGI2NTgsIDB4Zjg1ZCwgMHgzYTVjLCAweDdjNWUsIDB4YmU1ZiwKLSAgICAweDAwZTEsIDB4YzJlMCwgMHg4NGUyLCAweDQ2ZTMsIDB4MDhlNiwgMHhjYWU3LCAweDhjZTUsIDB4NGVlNCwKLSAgICAweDEwZWYsIDB4ZDJlZSwgMHg5NGVjLCAweDU2ZWQsIDB4MThlOCwgMHhkYWU5LCAweDljZWIsIDB4NWVlYSwKLSAgICAweDIwZmQsIDB4ZTJmYywgMHhhNGZlLCAweDY2ZmYsIDB4MjhmYSwgMHhlYWZiLCAweGFjZjksIDB4NmVmOCwKLSAgICAweDMwZjMsIDB4ZjJmMiwgMHhiNGYwLCAweDc2ZjEsIDB4MzhmNCwgMHhmYWY1LCAweGJjZjcsIDB4N2VmNiwKLSAgICAweDQwZDksIDB4ODJkOCwgMHhjNGRhLCAweDA2ZGIsIDB4NDhkZSwgMHg4YWRmLCAweGNjZGQsIDB4MGVkYywKLSAgICAweDUwZDcsIDB4OTJkNiwgMHhkNGQ0LCAweDE2ZDUsIDB4NThkMCwgMHg5YWQxLCAweGRjZDMsIDB4MWVkMiwKLSAgICAweDYwYzUsIDB4YTJjNCwgMHhlNGM2LCAweDI2YzcsIDB4NjhjMiwgMHhhYWMzLCAweGVjYzEsIDB4MmVjMCwKLSAgICAweDcwY2IsIDB4YjJjYSwgMHhmNGM4LCAweDM2YzksIDB4NzhjYywgMHhiYWNkLCAweGZjY2YsIDB4M2VjZSwKLSAgICAweDgwOTEsIDB4NDI5MCwgMHgwNDkyLCAweGM2OTMsIDB4ODg5NiwgMHg0YTk3LCAweDBjOTUsIDB4Y2U5NCwKLSAgICAweDkwOWYsIDB4NTI5ZSwgMHgxNDljLCAweGQ2OWQsIDB4OTg5OCwgMHg1YTk5LCAweDFjOWIsIDB4ZGU5YSwKLSAgICAweGEwOGQsIDB4NjI4YywgMHgyNDhlLCAweGU2OGYsIDB4YTg4YSwgMHg2YThiLCAweDJjODksIDB4ZWU4OCwKLSAgICAweGIwODMsIDB4NzI4MiwgMHgzNDgwLCAweGY2ODEsIDB4Yjg4NCwgMHg3YTg1LCAweDNjODcsIDB4ZmU4NiwKLSAgICAweGMwYTksIDB4MDJhOCwgMHg0NGFhLCAweDg2YWIsIDB4YzhhZSwgMHgwYWFmLCAweDRjYWQsIDB4OGVhYywKLSAgICAweGQwYTcsIDB4MTJhNiwgMHg1NGE0LCAweDk2YTUsIDB4ZDhhMCwgMHgxYWExLCAweDVjYTMsIDB4OWVhMiwKLSAgICAweGUwYjUsIDB4MjJiNCwgMHg2NGI2LCAweGE2YjcsIDB4ZThiMiwgMHgyYWIzLCAweDZjYjEsIDB4YWViMCwKLSAgICAweGYwYmIsIDB4MzJiYSwgMHg3NGI4LCAweGI2YjksIDB4ZjhiYywgMHgzYWJkLCAweDdjYmYsIDB4YmViZQotfTsKLQotc3RhdGljIHZvaWQgZ2NtX211bHRfbGFyZ2V0YWJsZSh1aW50OF90ICpvdXRwdXQsIGNvbnN0IHVpbnQ4X3QgKngsIHVpbnQ2NF90IEhbMjU2XVsyXSkKLXsKLSAgICBpbnQgaTsKLSAgICB1aW50NjRfdCB1NjR6WzJdOwotICAgIHVpbnQxNl90ICp1MTZ6ID0gKHVpbnQxNl90ICopIHU2NHo7Ci0gICAgdWludDhfdCAqdTh6ID0gKHVpbnQ4X3QgKikgdTY0ejsKLSAgICB1aW50OF90IHJlbTsKLQotICAgIHU2NHpbMF0gPSAwOwotICAgIHU2NHpbMV0gPSAwOwotCi0gICAgaWYgKE1CRURUTFNfSVNfQklHX0VORElBTikgewotICAgICAgICBmb3IgKGkgPSAxNTsgaSA+IDA7IGktLSkgewotICAgICAgICAgICAgbWJlZHRsc194b3Jfbm9fc2ltZCh1OHosIHU4eiwgKHVpbnQ4X3QgKikgSFt4W2ldXSwgMTYpOwotICAgICAgICAgICAgcmVtID0gdTh6WzE1XTsKLQotICAgICAgICAgICAgdTY0elsxXSA+Pj0gODsKLSAgICAgICAgICAgIHU4els4XSA9IHU4els3XTsKLSAgICAgICAgICAgIHU2NHpbMF0gPj49IDg7Ci0KLSAgICAgICAgICAgIHUxNnpbMF0gXj0gTUJFRFRMU19HRVRfVUlOVDE2X0xFKCZsYXN0OFtyZW1dLCAwKTsKLSAgICAgICAgfQotICAgIH0gZWxzZSB7Ci0gICAgICAgIGZvciAoaSA9IDE1OyBpID4gMDsgaS0tKSB7Ci0gICAgICAgICAgICBtYmVkdGxzX3hvcl9ub19zaW1kKHU4eiwgdTh6LCAodWludDhfdCAqKSBIW3hbaV1dLCAxNik7Ci0gICAgICAgICAgICByZW0gPSB1OHpbMTVdOwotCi0gICAgICAgICAgICB1NjR6WzFdIDw8PSA4OwotICAgICAgICAgICAgdTh6WzhdID0gdTh6WzddOwotICAgICAgICAgICAgdTY0elswXSA8PD0gODsKLQotICAgICAgICAgICAgdTE2elswXSBePSBsYXN0OFtyZW1dOwotICAgICAgICB9Ci0gICAgfQotCi0gICAgbWJlZHRsc194b3Jfbm9fc2ltZChvdXRwdXQsIHU4eiwgKHVpbnQ4X3QgKikgSFt4WzBdXSwgMTYpOwotfQotI2Vsc2UKLS8qCi0gKiBTaG91cCdzIG1ldGhvZCBmb3IgbXVsdGlwbGljYXRpb24gdXNlIHRoaXMgdGFibGUgd2l0aAotICogICAgICBsYXN0NFt4XSA9IHggdGltZXMgUF4xMjgKLSAqIHdoZXJlIHggYW5kIGxhc3Q0W3hdIGFyZSBzZWVuIGFzIGVsZW1lbnRzIG9mIEdGKDJeMTI4KSBhcyBpbiBbTUdWXQotICovCi1zdGF0aWMgY29uc3QgdWludDE2X3QgbGFzdDRbMTZdID0KLXsKLSAgICAweDAwMDAsIDB4MWMyMCwgMHgzODQwLCAweDI0NjAsCi0gICAgMHg3MDgwLCAweDZjYTAsIDB4NDhjMCwgMHg1NGUwLAotICAgIDB4ZTEwMCwgMHhmZDIwLCAweGQ5NDAsIDB4YzU2MCwKLSAgICAweDkxODAsIDB4OGRhMCwgMHhhOWMwLCAweGI1ZTAKLX07Ci0KLXN0YXRpYyB2b2lkIGdjbV9tdWx0X3NtYWxsdGFibGUodWludDhfdCAqb3V0cHV0LCBjb25zdCB1aW50OF90ICp4LCB1aW50NjRfdCBIWzE2XVsyXSkKLXsKLSAgICBpbnQgaSA9IDA7Ci0gICAgdW5zaWduZWQgY2hhciBsbywgaGksIHJlbTsKLSAgICB1aW50NjRfdCB1NjR6WzJdOwotICAgIGNvbnN0IHVpbnQ2NF90ICpwdTY0eiA9IE5VTEw7Ci0gICAgdWludDhfdCAqdTh6ID0gKHVpbnQ4X3QgKikgdTY0ejsKLQotICAgIGxvID0geFsxNV0gJiAweGY7Ci0gICAgaGkgPSAoeFsxNV0gPj4gNCkgJiAweGY7Ci0KLSAgICBwdTY0eiA9IEhbbG9dOwotCi0gICAgcmVtID0gKHVuc2lnbmVkIGNoYXIpIHB1NjR6WzFdICYgMHhmOwotICAgIHU2NHpbMV0gPSAocHU2NHpbMF0gPDwgNjApIHwgKHB1NjR6WzFdID4+IDQpOwotICAgIHU2NHpbMF0gPSAocHU2NHpbMF0gPj4gNCk7Ci0gICAgdTY0elswXSBePSAodWludDY0X3QpIGxhc3Q0W3JlbV0gPDwgNDg7Ci0gICAgbWJlZHRsc194b3Jfbm9fc2ltZCh1OHosIHU4eiwgKHVpbnQ4X3QgKikgSFtoaV0sIDE2KTsKLQotICAgIGZvciAoaSA9IDE0OyBpID49IDA7IGktLSkgewotICAgICAgICBsbyA9IHhbaV0gJiAweGY7Ci0gICAgICAgIGhpID0gKHhbaV0gPj4gNCkgJiAweGY7Ci0KLSAgICAgICAgcmVtID0gKHVuc2lnbmVkIGNoYXIpIHU2NHpbMV0gJiAweGY7Ci0gICAgICAgIHU2NHpbMV0gPSAodTY0elswXSA8PCA2MCkgfCAodTY0elsxXSA+PiA0KTsKLSAgICAgICAgdTY0elswXSA9ICh1NjR6WzBdID4+IDQpOwotICAgICAgICB1NjR6WzBdIF49ICh1aW50NjRfdCkgbGFzdDRbcmVtXSA8PCA0ODsKLSAgICAgICAgbWJlZHRsc194b3Jfbm9fc2ltZCh1OHosIHU4eiwgKHVpbnQ4X3QgKikgSFtsb10sIDE2KTsKLQotICAgICAgICByZW0gPSAodW5zaWduZWQgY2hhcikgdTY0elsxXSAmIDB4ZjsKLSAgICAgICAgdTY0elsxXSA9ICh1NjR6WzBdIDw8IDYwKSB8ICh1NjR6WzFdID4+IDQpOwotICAgICAgICB1NjR6WzBdID0gKHU2NHpbMF0gPj4gNCk7Ci0gICAgICAgIHU2NHpbMF0gXj0gKHVpbnQ2NF90KSBsYXN0NFtyZW1dIDw8IDQ4OwotICAgICAgICBtYmVkdGxzX3hvcl9ub19zaW1kKHU4eiwgdTh6LCAodWludDhfdCAqKSBIW2hpXSwgMTYpOwotICAgIH0KLQotICAgIE1CRURUTFNfUFVUX1VJTlQ2NF9CRSh1NjR6WzBdLCBvdXRwdXQsIDApOwotICAgIE1CRURUTFNfUFVUX1VJTlQ2NF9CRSh1NjR6WzFdLCBvdXRwdXQsIDgpOwotfQotI2VuZGlmCi0KLS8qCi0gKiBTZXRzIG91dHB1dCB0byB4IHRpbWVzIEggdXNpbmcgdGhlIHByZWNvbXB1dGVkIHRhYmxlcy4KLSAqIHggYW5kIG91dHB1dCBhcmUgc2VlbiBhcyBlbGVtZW50cyBvZiBHRigyXjEyOCkgYXMgaW4gW01HVl0uCi0gKi8KLXN0YXRpYyB2b2lkIGdjbV9tdWx0KG1iZWR0bHNfZ2NtX2NvbnRleHQgKmN0eCwgY29uc3QgdW5zaWduZWQgY2hhciB4WzE2XSwKLSAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGNoYXIgb3V0cHV0WzE2XSkKLXsKLSAgICBzd2l0Y2ggKGN0eC0+YWNjZWxlcmF0aW9uKSB7Ci0jaWYgZGVmaW5lZChNQkVEVExTX0FFU05JX0hBVkVfQ09ERSkKLSAgICAgICAgY2FzZSBNQkVEVExTX0dDTV9BQ0NfQUVTTkk6Ci0gICAgICAgICAgICBtYmVkdGxzX2Flc25pX2djbV9tdWx0KG91dHB1dCwgeCwgKHVpbnQ4X3QgKikgY3R4LT5IW01CRURUTFNfR0NNX0hUQUJMRV9TSVpFLzJdKTsKLSAgICAgICAgICAgIGJyZWFrOwotI2VuZGlmCi0KLSNpZiBkZWZpbmVkKE1CRURUTFNfQUVTQ0VfSEFWRV9DT0RFKQotICAgICAgICBjYXNlIE1CRURUTFNfR0NNX0FDQ19BRVNDRToKLSAgICAgICAgICAgIG1iZWR0bHNfYWVzY2VfZ2NtX211bHQob3V0cHV0LCB4LCAodWludDhfdCAqKSBjdHgtPkhbTUJFRFRMU19HQ01fSFRBQkxFX1NJWkUvMl0pOwotICAgICAgICAgICAgYnJlYWs7Ci0jZW5kaWYKLQotI2lmIGRlZmluZWQoTUJFRFRMU19HQ01fTEFSR0VfVEFCTEUpCi0gICAgICAgIGNhc2UgTUJFRFRMU19HQ01fQUNDX0xBUkdFVEFCTEU6Ci0gICAgICAgICAgICBnY21fbXVsdF9sYXJnZXRhYmxlKG91dHB1dCwgeCwgY3R4LT5IKTsKLSAgICAgICAgICAgIGJyZWFrOwotI2Vsc2UKLSAgICAgICAgY2FzZSBNQkVEVExTX0dDTV9BQ0NfU01BTExUQUJMRToKLSAgICAgICAgICAgIGdjbV9tdWx0X3NtYWxsdGFibGUob3V0cHV0LCB4LCBjdHgtPkgpOwotICAgICAgICAgICAgYnJlYWs7Ci0jZW5kaWYKLSAgICB9Ci0KLSAgICByZXR1cm47Ci19Ci0KLWludCBtYmVkdGxzX2djbV9zdGFydHMobWJlZHRsc19nY21fY29udGV4dCAqY3R4LAotICAgICAgICAgICAgICAgICAgICAgICBpbnQgbW9kZSwKLSAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdW5zaWduZWQgY2hhciAqaXYsIHNpemVfdCBpdl9sZW4pCi17Ci0gICAgaW50IHJldCA9IE1CRURUTFNfRVJSX0VSUk9SX0NPUlJVUFRJT05fREVURUNURUQ7Ci0gICAgdW5zaWduZWQgY2hhciB3b3JrX2J1ZlsxNl07Ci0gICAgY29uc3QgdW5zaWduZWQgY2hhciAqcDsKLSAgICBzaXplX3QgdXNlX2xlbjsKLSAgICB1aW50NjRfdCBpdl9iaXRzOwotI2lmICFkZWZpbmVkKE1CRURUTFNfQkxPQ0tfQ0lQSEVSX0MpCi0gICAgc2l6ZV90IG9sZW4gPSAwOwotI2VuZGlmCi0KLSAgICAvKiBJViBpcyBsaW1pdGVkIHRvIDJeNjQgYml0cywgc28gMl42MSBieXRlcyAqLwotICAgIC8qIElWIGlzIG5vdCBhbGxvd2VkIHRvIGJlIHplcm8gbGVuZ3RoICovCi0gICAgaWYgKGl2X2xlbiA9PSAwIHx8ICh1aW50NjRfdCkgaXZfbGVuID4+IDYxICE9IDApIHsKLSAgICAgICAgcmV0dXJuIE1CRURUTFNfRVJSX0dDTV9CQURfSU5QVVQ7Ci0gICAgfQotCi0gICAgbWVtc2V0KGN0eC0+eSwgMHgwMCwgc2l6ZW9mKGN0eC0+eSkpOwotICAgIG1lbXNldChjdHgtPmJ1ZiwgMHgwMCwgc2l6ZW9mKGN0eC0+YnVmKSk7Ci0KLSAgICBjdHgtPm1vZGUgPSBtb2RlOwotICAgIGN0eC0+bGVuID0gMDsKLSAgICBjdHgtPmFkZF9sZW4gPSAwOwotCi0gICAgaWYgKGl2X2xlbiA9PSAxMikgewotICAgICAgICBtZW1jcHkoY3R4LT55LCBpdiwgaXZfbGVuKTsKLSAgICAgICAgY3R4LT55WzE1XSA9IDE7Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgbWVtc2V0KHdvcmtfYnVmLCAweDAwLCAxNik7Ci0gICAgICAgIGl2X2JpdHMgPSAodWludDY0X3QpIGl2X2xlbiAqIDg7Ci0gICAgICAgIE1CRURUTFNfUFVUX1VJTlQ2NF9CRShpdl9iaXRzLCB3b3JrX2J1ZiwgOCk7Ci0KLSAgICAgICAgcCA9IGl2OwotICAgICAgICB3aGlsZSAoaXZfbGVuID4gMCkgewotICAgICAgICAgICAgdXNlX2xlbiA9IChpdl9sZW4gPCAxNikgPyBpdl9sZW4gOiAxNjsKLQotI2lmIGRlZmluZWQoTUJFRFRMU19DT01QSUxFUl9JU19HQ0MpICYmIChNQkVEVExTX0dDQ19WRVJTSU9OID49IDcwMTEwKQotI3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIEdDQyBkaWFnbm9zdGljIHdhcm5pbmcgIi1Xc3RyaW5nb3Atb3ZlcmZsb3c9MCIKLSNlbmRpZgotCi0gICAgICAgICAgICBtYmVkdGxzX3hvcihjdHgtPnksIGN0eC0+eSwgcCwgdXNlX2xlbik7Ci0KLSNpZiBkZWZpbmVkKE1CRURUTFNfQ09NUElMRVJfSVNfR0NDKSAmJiAoTUJFRFRMU19HQ0NfVkVSU0lPTiA+PSA3MDExMCkKLSNwcmFnbWEgR0NDIGRpYWdub3N0aWMgcG9wCi0jZW5kaWYKLQotICAgICAgICAgICAgZ2NtX211bHQoY3R4LCBjdHgtPnksIGN0eC0+eSk7Ci0KLSAgICAgICAgICAgIGl2X2xlbiAtPSB1c2VfbGVuOwotICAgICAgICAgICAgcCArPSB1c2VfbGVuOwotICAgICAgICB9Ci0KLSAgICAgICAgbWJlZHRsc194b3IoY3R4LT55LCBjdHgtPnksIHdvcmtfYnVmLCAxNik7Ci0KLSAgICAgICAgZ2NtX211bHQoY3R4LCBjdHgtPnksIGN0eC0+eSk7Ci0gICAgfQotCi0KLSNpZiBkZWZpbmVkKE1CRURUTFNfQkxPQ0tfQ0lQSEVSX0MpCi0gICAgcmV0ID0gbWJlZHRsc19ibG9ja19jaXBoZXJfZW5jcnlwdCgmY3R4LT5ibG9ja19jaXBoZXJfY3R4LCBjdHgtPnksIGN0eC0+YmFzZV9lY3RyKTsKLSNlbHNlCi0gICAgcmV0ID0gbWJlZHRsc19jaXBoZXJfdXBkYXRlKCZjdHgtPmNpcGhlcl9jdHgsIGN0eC0+eSwgMTYsIGN0eC0+YmFzZV9lY3RyLCAmb2xlbik7Ci0jZW5kaWYKLSAgICBpZiAocmV0ICE9IDApIHsKLSAgICAgICAgcmV0dXJuIHJldDsKLSAgICB9Ci0KLSAgICByZXR1cm4gMDsKLX0KLQotLyoqCi0gKiBtYmVkdGxzX2djbV9jb250ZXh0OjpidWYgY29udGFpbnMgdGhlIHBhcnRpYWwgc3RhdGUgb2YgdGhlIGNvbXB1dGF0aW9uIG9mCi0gKiB0aGUgYXV0aGVudGljYXRpb24gdGFnLgotICogbWJlZHRsc19nY21fY29udGV4dDo6YWRkX2xlbiBhbmQgbWJlZHRsc19nY21fY29udGV4dDo6bGVuIGluZGljYXRlCi0gKiBkaWZmZXJlbnQgc3RhZ2VzIG9mIHRoZSBjb21wdXRhdGlvbjoKLSAqICAgICAqIGxlbiA9PSAwICYmIGFkZF9sZW4gPT0gMDogICAgICBpbml0aWFsIHN0YXRlCi0gKiAgICAgKiBsZW4gPT0gMCAmJiBhZGRfbGVuICUgMTYgIT0gMDogdGhlIGZpcnN0IGBhZGRfbGVuICUgMTZgIGJ5dGVzIGhhdmUKLSAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhIHBhcnRpYWwgYmxvY2sgb2YgQUQgdGhhdCBoYXMgYmVlbgotICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHhvcmVkIGluIGJ1dCBub3QgeWV0IG11bHRpcGxpZWQgaW4uCi0gKiAgICAgKiBsZW4gPT0gMCAmJiBhZGRfbGVuICUgMTYgPT0gMDogdGhlIGF1dGhlbnRpY2F0aW9uIHRhZyBpcyBjb3JyZWN0IGlmCi0gKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlIGRhdGEgZW5kcyBub3cuCi0gKiAgICAgKiBsZW4gJSAxNiAhPSAwOiAgICAgICAgICAgICAgICAgdGhlIGZpcnN0IGBsZW4gJSAxNmAgYnl0ZXMgaGF2ZQotICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGEgcGFydGlhbCBibG9jayBvZiBjaXBoZXJ0ZXh0IHRoYXQgaGFzCi0gKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmVlbiB4b3JlZCBpbiBidXQgbm90IHlldCBtdWx0aXBsaWVkIGluLgotICogICAgICogbGVuID4gMCAmJiBsZW4gJSAxNiA9PSAwOiAgICAgIHRoZSBhdXRoZW50aWNhdGlvbiB0YWcgaXMgY29ycmVjdCBpZgotICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoZSBkYXRhIGVuZHMgbm93LgotICovCi1pbnQgbWJlZHRsc19nY21fdXBkYXRlX2FkKG1iZWR0bHNfZ2NtX2NvbnRleHQgKmN0eCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdW5zaWduZWQgY2hhciAqYWRkLCBzaXplX3QgYWRkX2xlbikKLXsKLSAgICBjb25zdCB1bnNpZ25lZCBjaGFyICpwOwotICAgIHNpemVfdCB1c2VfbGVuLCBvZmZzZXQ7Ci0gICAgdWludDY0X3QgbmV3X2FkZF9sZW47Ci0KLSAgICAvKiBBRCBpcyBsaW1pdGVkIHRvIDJeNjQgYml0cywgaWUgMl42MSBieXRlcwotICAgICAqIEFsc28gY2hlY2sgZm9yIHBvc3NpYmxlIG92ZXJmbG93ICovCi0jaWYgU0laRV9NQVggPiAweEZGRkZGRkZGRkZGRkZGRkZVTEwKLSAgICBpZiAoYWRkX2xlbiA+IDB4RkZGRkZGRkZGRkZGRkZGRlVMTCkgewotICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfR0NNX0JBRF9JTlBVVDsKLSAgICB9Ci0jZW5kaWYKLSAgICBuZXdfYWRkX2xlbiA9IGN0eC0+YWRkX2xlbiArICh1aW50NjRfdCkgYWRkX2xlbjsKLSAgICBpZiAobmV3X2FkZF9sZW4gPCBjdHgtPmFkZF9sZW4gfHwgbmV3X2FkZF9sZW4gPj4gNjEgIT0gMCkgewotICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfR0NNX0JBRF9JTlBVVDsKLSAgICB9Ci0KLSAgICBvZmZzZXQgPSBjdHgtPmFkZF9sZW4gJSAxNjsKLSAgICBwID0gYWRkOwotCi0gICAgaWYgKG9mZnNldCAhPSAwKSB7Ci0gICAgICAgIHVzZV9sZW4gPSAxNiAtIG9mZnNldDsKLSAgICAgICAgaWYgKHVzZV9sZW4gPiBhZGRfbGVuKSB7Ci0gICAgICAgICAgICB1c2VfbGVuID0gYWRkX2xlbjsKLSAgICAgICAgfQotCi0gICAgICAgIG1iZWR0bHNfeG9yKGN0eC0+YnVmICsgb2Zmc2V0LCBjdHgtPmJ1ZiArIG9mZnNldCwgcCwgdXNlX2xlbik7Ci0KLSAgICAgICAgaWYgKG9mZnNldCArIHVzZV9sZW4gPT0gMTYpIHsKLSAgICAgICAgICAgIGdjbV9tdWx0KGN0eCwgY3R4LT5idWYsIGN0eC0+YnVmKTsKLSAgICAgICAgfQotCi0gICAgICAgIGN0eC0+YWRkX2xlbiArPSB1c2VfbGVuOwotICAgICAgICBhZGRfbGVuIC09IHVzZV9sZW47Ci0gICAgICAgIHAgKz0gdXNlX2xlbjsKLSAgICB9Ci0KLSAgICBjdHgtPmFkZF9sZW4gKz0gYWRkX2xlbjsKLQotICAgIHdoaWxlIChhZGRfbGVuID49IDE2KSB7Ci0gICAgICAgIG1iZWR0bHNfeG9yKGN0eC0+YnVmLCBjdHgtPmJ1ZiwgcCwgMTYpOwotCi0gICAgICAgIGdjbV9tdWx0KGN0eCwgY3R4LT5idWYsIGN0eC0+YnVmKTsKLQotICAgICAgICBhZGRfbGVuIC09IDE2OwotICAgICAgICBwICs9IDE2OwotICAgIH0KLQotICAgIGlmIChhZGRfbGVuID4gMCkgewotICAgICAgICBtYmVkdGxzX3hvcihjdHgtPmJ1ZiwgY3R4LT5idWYsIHAsIGFkZF9sZW4pOwotICAgIH0KLQotICAgIHJldHVybiAwOwotfQotCi0vKiBJbmNyZW1lbnQgdGhlIGNvdW50ZXIuICovCi1zdGF0aWMgdm9pZCBnY21faW5jcih1bnNpZ25lZCBjaGFyIHlbMTZdKQotewotICAgIHVpbnQzMl90IHggPSBNQkVEVExTX0dFVF9VSU5UMzJfQkUoeSwgMTIpOwotICAgIHgrKzsKLSAgICBNQkVEVExTX1BVVF9VSU5UMzJfQkUoeCwgeSwgMTIpOwotfQotCi0vKiBDYWxjdWxhdGUgYW5kIGFwcGx5IHRoZSBlbmNyeXB0aW9uIG1hc2suIFByb2Nlc3MgdXNlX2xlbiBieXRlcyBvZiBkYXRhLAotICogc3RhcnRpbmcgYXQgcG9zaXRpb24gb2Zmc2V0IGluIHRoZSBtYXNrIGJsb2NrLiAqLwotc3RhdGljIGludCBnY21fbWFzayhtYmVkdGxzX2djbV9jb250ZXh0ICpjdHgsCi0gICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGNoYXIgZWN0clsxNl0sCi0gICAgICAgICAgICAgICAgICAgIHNpemVfdCBvZmZzZXQsIHNpemVfdCB1c2VfbGVuLAotICAgICAgICAgICAgICAgICAgICBjb25zdCB1bnNpZ25lZCBjaGFyICppbnB1dCwKLSAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgY2hhciAqb3V0cHV0KQotewotICAgIGludCByZXQgPSBNQkVEVExTX0VSUl9FUlJPUl9DT1JSVVBUSU9OX0RFVEVDVEVEOwotCi0jaWYgZGVmaW5lZChNQkVEVExTX0JMT0NLX0NJUEhFUl9DKQotICAgIHJldCA9IG1iZWR0bHNfYmxvY2tfY2lwaGVyX2VuY3J5cHQoJmN0eC0+YmxvY2tfY2lwaGVyX2N0eCwgY3R4LT55LCBlY3RyKTsKLSNlbHNlCi0gICAgc2l6ZV90IG9sZW4gPSAwOwotICAgIHJldCA9IG1iZWR0bHNfY2lwaGVyX3VwZGF0ZSgmY3R4LT5jaXBoZXJfY3R4LCBjdHgtPnksIDE2LCBlY3RyLCAmb2xlbik7Ci0jZW5kaWYKLSAgICBpZiAocmV0ICE9IDApIHsKLSAgICAgICAgbWJlZHRsc19wbGF0Zm9ybV96ZXJvaXplKGVjdHIsIDE2KTsKLSAgICAgICAgcmV0dXJuIHJldDsKLSAgICB9Ci0KLSAgICBpZiAoY3R4LT5tb2RlID09IE1CRURUTFNfR0NNX0RFQ1JZUFQpIHsKLSAgICAgICAgbWJlZHRsc194b3IoY3R4LT5idWYgKyBvZmZzZXQsIGN0eC0+YnVmICsgb2Zmc2V0LCBpbnB1dCwgdXNlX2xlbik7Ci0gICAgfQotICAgIG1iZWR0bHNfeG9yKG91dHB1dCwgZWN0ciArIG9mZnNldCwgaW5wdXQsIHVzZV9sZW4pOwotICAgIGlmIChjdHgtPm1vZGUgPT0gTUJFRFRMU19HQ01fRU5DUllQVCkgewotICAgICAgICBtYmVkdGxzX3hvcihjdHgtPmJ1ZiArIG9mZnNldCwgY3R4LT5idWYgKyBvZmZzZXQsIG91dHB1dCwgdXNlX2xlbik7Ci0gICAgfQotCi0gICAgcmV0dXJuIDA7Ci19Ci0KLWludCBtYmVkdGxzX2djbV91cGRhdGUobWJlZHRsc19nY21fY29udGV4dCAqY3R4LAotICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1bnNpZ25lZCBjaGFyICppbnB1dCwgc2l6ZV90IGlucHV0X2xlbmd0aCwKLSAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgY2hhciAqb3V0cHV0LCBzaXplX3Qgb3V0cHV0X3NpemUsCi0gICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCAqb3V0cHV0X2xlbmd0aCkKLXsKLSAgICBpbnQgcmV0ID0gTUJFRFRMU19FUlJfRVJST1JfQ09SUlVQVElPTl9ERVRFQ1RFRDsKLSAgICBjb25zdCB1bnNpZ25lZCBjaGFyICpwID0gaW5wdXQ7Ci0gICAgdW5zaWduZWQgY2hhciAqb3V0X3AgPSBvdXRwdXQ7Ci0gICAgc2l6ZV90IG9mZnNldDsKLSAgICB1bnNpZ25lZCBjaGFyIGVjdHJbMTZdID0geyAwIH07Ci0KLSAgICBpZiAob3V0cHV0X3NpemUgPCBpbnB1dF9sZW5ndGgpIHsKLSAgICAgICAgcmV0dXJuIE1CRURUTFNfRVJSX0dDTV9CVUZGRVJfVE9PX1NNQUxMOwotICAgIH0KLSAgICAqb3V0cHV0X2xlbmd0aCA9IGlucHV0X2xlbmd0aDsKLQotICAgIC8qIEV4aXQgZWFybHkgaWYgaW5wdXRfbGVuZ3RoPT0wIHNvIHRoYXQgd2UgZG9uJ3QgZG8gYW55IHBvaW50ZXIgYXJpdGhtZXRpYwotICAgICAqIG9uIGEgcG90ZW50aWFsbHkgbnVsbCBwb2ludGVyLgotICAgICAqIFJldHVybmluZyBlYXJseSBhbHNvIG1lYW5zIHRoYXQgdGhlIGxhc3QgcGFydGlhbCBibG9jayBvZiBBRCByZW1haW5zCi0gICAgICogdW50b3VjaGVkIGZvciBtYmVkdGxzX2djbV9maW5pc2ggKi8KLSAgICBpZiAoaW5wdXRfbGVuZ3RoID09IDApIHsKLSAgICAgICAgcmV0dXJuIDA7Ci0gICAgfQotCi0gICAgaWYgKG91dHB1dCA+IGlucHV0ICYmIChzaXplX3QpIChvdXRwdXQgLSBpbnB1dCkgPCBpbnB1dF9sZW5ndGgpIHsKLSAgICAgICAgcmV0dXJuIE1CRURUTFNfRVJSX0dDTV9CQURfSU5QVVQ7Ci0gICAgfQotCi0gICAgLyogVG90YWwgbGVuZ3RoIGlzIHJlc3RyaWN0ZWQgdG8gMl4zOSAtIDI1NiBiaXRzLCBpZSAyXjM2IC0gMl41IGJ5dGVzCi0gICAgICogQWxzbyBjaGVjayBmb3IgcG9zc2libGUgb3ZlcmZsb3cgKi8KLSAgICBpZiAoY3R4LT5sZW4gKyBpbnB1dF9sZW5ndGggPCBjdHgtPmxlbiB8fAotICAgICAgICAodWludDY0X3QpIGN0eC0+bGVuICsgaW5wdXRfbGVuZ3RoID4gMHhGRkZGRkZGRTB1bGwpIHsKLSAgICAgICAgcmV0dXJuIE1CRURUTFNfRVJSX0dDTV9CQURfSU5QVVQ7Ci0gICAgfQotCi0gICAgaWYgKGN0eC0+bGVuID09IDAgJiYgY3R4LT5hZGRfbGVuICUgMTYgIT0gMCkgewotICAgICAgICBnY21fbXVsdChjdHgsIGN0eC0+YnVmLCBjdHgtPmJ1Zik7Ci0gICAgfQotCi0gICAgb2Zmc2V0ID0gY3R4LT5sZW4gJSAxNjsKLSAgICBpZiAob2Zmc2V0ICE9IDApIHsKLSAgICAgICAgc2l6ZV90IHVzZV9sZW4gPSAxNiAtIG9mZnNldDsKLSAgICAgICAgaWYgKHVzZV9sZW4gPiBpbnB1dF9sZW5ndGgpIHsKLSAgICAgICAgICAgIHVzZV9sZW4gPSBpbnB1dF9sZW5ndGg7Ci0gICAgICAgIH0KLQotICAgICAgICBpZiAoKHJldCA9IGdjbV9tYXNrKGN0eCwgZWN0ciwgb2Zmc2V0LCB1c2VfbGVuLCBwLCBvdXRfcCkpICE9IDApIHsKLSAgICAgICAgICAgIHJldHVybiByZXQ7Ci0gICAgICAgIH0KLQotICAgICAgICBpZiAob2Zmc2V0ICsgdXNlX2xlbiA9PSAxNikgewotICAgICAgICAgICAgZ2NtX211bHQoY3R4LCBjdHgtPmJ1ZiwgY3R4LT5idWYpOwotICAgICAgICB9Ci0KLSAgICAgICAgY3R4LT5sZW4gKz0gdXNlX2xlbjsKLSAgICAgICAgaW5wdXRfbGVuZ3RoIC09IHVzZV9sZW47Ci0gICAgICAgIHAgKz0gdXNlX2xlbjsKLSAgICAgICAgb3V0X3AgKz0gdXNlX2xlbjsKLSAgICB9Ci0KLSAgICBjdHgtPmxlbiArPSBpbnB1dF9sZW5ndGg7Ci0KLSAgICB3aGlsZSAoaW5wdXRfbGVuZ3RoID49IDE2KSB7Ci0gICAgICAgIGdjbV9pbmNyKGN0eC0+eSk7Ci0gICAgICAgIGlmICgocmV0ID0gZ2NtX21hc2soY3R4LCBlY3RyLCAwLCAxNiwgcCwgb3V0X3ApKSAhPSAwKSB7Ci0gICAgICAgICAgICByZXR1cm4gcmV0OwotICAgICAgICB9Ci0KLSAgICAgICAgZ2NtX211bHQoY3R4LCBjdHgtPmJ1ZiwgY3R4LT5idWYpOwotCi0gICAgICAgIGlucHV0X2xlbmd0aCAtPSAxNjsKLSAgICAgICAgcCArPSAxNjsKLSAgICAgICAgb3V0X3AgKz0gMTY7Ci0gICAgfQotCi0gICAgaWYgKGlucHV0X2xlbmd0aCA+IDApIHsKLSAgICAgICAgZ2NtX2luY3IoY3R4LT55KTsKLSAgICAgICAgaWYgKChyZXQgPSBnY21fbWFzayhjdHgsIGVjdHIsIDAsIGlucHV0X2xlbmd0aCwgcCwgb3V0X3ApKSAhPSAwKSB7Ci0gICAgICAgICAgICByZXR1cm4gcmV0OwotICAgICAgICB9Ci0gICAgfQotCi0gICAgbWJlZHRsc19wbGF0Zm9ybV96ZXJvaXplKGVjdHIsIHNpemVvZihlY3RyKSk7Ci0gICAgcmV0dXJuIDA7Ci19Ci0KLWludCBtYmVkdGxzX2djbV9maW5pc2gobWJlZHRsc19nY21fY29udGV4dCAqY3R4LAotICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBjaGFyICpvdXRwdXQsIHNpemVfdCBvdXRwdXRfc2l6ZSwKLSAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90ICpvdXRwdXRfbGVuZ3RoLAotICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBjaGFyICp0YWcsIHNpemVfdCB0YWdfbGVuKQotewotICAgIHVuc2lnbmVkIGNoYXIgd29ya19idWZbMTZdOwotICAgIHVpbnQ2NF90IG9yaWdfbGVuOwotICAgIHVpbnQ2NF90IG9yaWdfYWRkX2xlbjsKLQotICAgIC8qIFdlIG5ldmVyIHBhc3MgYW55IG91dHB1dCBpbiBmaW5pc2goKS4gVGhlIG91dHB1dCBwYXJhbWV0ZXIgZXhpc3RzIG9ubHkKLSAgICAgKiBmb3IgdGhlIHNha2Ugb2YgYWx0ZXJuYXRpdmUgaW1wbGVtZW50YXRpb25zLiAqLwotICAgICh2b2lkKSBvdXRwdXQ7Ci0gICAgKHZvaWQpIG91dHB1dF9zaXplOwotICAgICpvdXRwdXRfbGVuZ3RoID0gMDsKLQotICAgIC8qIFRvdGFsIGxlbmd0aCBpcyByZXN0cmljdGVkIHRvIDJeMzkgLSAyNTYgYml0cywgaWUgMl4zNiAtIDJeNSBieXRlcwotICAgICAqIGFuZCBBRCBsZW5ndGggaXMgcmVzdHJpY3RlZCB0byAyXjY0IGJpdHMsIGllIDJeNjEgYnl0ZXMgc28gbmVpdGhlciBvZgotICAgICAqIHRoZSB0d28gbXVsdGlwbGljYXRpb25zIHdvdWxkIG92ZXJmbG93LiAqLwotICAgIG9yaWdfbGVuID0gY3R4LT5sZW4gKiA4OwotICAgIG9yaWdfYWRkX2xlbiA9IGN0eC0+YWRkX2xlbiAqIDg7Ci0KLSAgICBpZiAoY3R4LT5sZW4gPT0gMCAmJiBjdHgtPmFkZF9sZW4gJSAxNiAhPSAwKSB7Ci0gICAgICAgIGdjbV9tdWx0KGN0eCwgY3R4LT5idWYsIGN0eC0+YnVmKTsKLSAgICB9Ci0KLSAgICBpZiAodGFnX2xlbiA+IDE2IHx8IHRhZ19sZW4gPCA0KSB7Ci0gICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9HQ01fQkFEX0lOUFVUOwotICAgIH0KLQotICAgIGlmIChjdHgtPmxlbiAlIDE2ICE9IDApIHsKLSAgICAgICAgZ2NtX211bHQoY3R4LCBjdHgtPmJ1ZiwgY3R4LT5idWYpOwotICAgIH0KLQotICAgIG1lbWNweSh0YWcsIGN0eC0+YmFzZV9lY3RyLCB0YWdfbGVuKTsKLQotICAgIGlmIChvcmlnX2xlbiB8fCBvcmlnX2FkZF9sZW4pIHsKLSAgICAgICAgbWVtc2V0KHdvcmtfYnVmLCAweDAwLCAxNik7Ci0KLSAgICAgICAgTUJFRFRMU19QVVRfVUlOVDMyX0JFKChvcmlnX2FkZF9sZW4gPj4gMzIpLCB3b3JrX2J1ZiwgMCk7Ci0gICAgICAgIE1CRURUTFNfUFVUX1VJTlQzMl9CRSgob3JpZ19hZGRfbGVuKSwgd29ya19idWYsIDQpOwotICAgICAgICBNQkVEVExTX1BVVF9VSU5UMzJfQkUoKG9yaWdfbGVuICAgICA+PiAzMiksIHdvcmtfYnVmLCA4KTsKLSAgICAgICAgTUJFRFRMU19QVVRfVUlOVDMyX0JFKChvcmlnX2xlbiksIHdvcmtfYnVmLCAxMik7Ci0KLSAgICAgICAgbWJlZHRsc194b3IoY3R4LT5idWYsIGN0eC0+YnVmLCB3b3JrX2J1ZiwgMTYpOwotCi0gICAgICAgIGdjbV9tdWx0KGN0eCwgY3R4LT5idWYsIGN0eC0+YnVmKTsKLQotICAgICAgICBtYmVkdGxzX3hvcih0YWcsIHRhZywgY3R4LT5idWYsIHRhZ19sZW4pOwotICAgIH0KLQotICAgIHJldHVybiAwOwotfQotCi1pbnQgbWJlZHRsc19nY21fY3J5cHRfYW5kX3RhZyhtYmVkdGxzX2djbV9jb250ZXh0ICpjdHgsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgbW9kZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBsZW5ndGgsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1bnNpZ25lZCBjaGFyICppdiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBpdl9sZW4sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1bnNpZ25lZCBjaGFyICphZGQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgYWRkX2xlbiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgKmlucHV0LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgY2hhciAqb3V0cHV0LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IHRhZ19sZW4sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBjaGFyICp0YWcpCi17Ci0gICAgaW50IHJldCA9IE1CRURUTFNfRVJSX0VSUk9SX0NPUlJVUFRJT05fREVURUNURUQ7Ci0gICAgc2l6ZV90IG9sZW47Ci0KLSAgICBpZiAoKHJldCA9IG1iZWR0bHNfZ2NtX3N0YXJ0cyhjdHgsIG1vZGUsIGl2LCBpdl9sZW4pKSAhPSAwKSB7Ci0gICAgICAgIHJldHVybiByZXQ7Ci0gICAgfQotCi0gICAgaWYgKChyZXQgPSBtYmVkdGxzX2djbV91cGRhdGVfYWQoY3R4LCBhZGQsIGFkZF9sZW4pKSAhPSAwKSB7Ci0gICAgICAgIHJldHVybiByZXQ7Ci0gICAgfQotCi0gICAgaWYgKChyZXQgPSBtYmVkdGxzX2djbV91cGRhdGUoY3R4LCBpbnB1dCwgbGVuZ3RoLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG91dHB1dCwgbGVuZ3RoLCAmb2xlbikpICE9IDApIHsKLSAgICAgICAgcmV0dXJuIHJldDsKLSAgICB9Ci0KLSAgICBpZiAoKHJldCA9IG1iZWR0bHNfZ2NtX2ZpbmlzaChjdHgsIE5VTEwsIDAsICZvbGVuLCB0YWcsIHRhZ19sZW4pKSAhPSAwKSB7Ci0gICAgICAgIHJldHVybiByZXQ7Ci0gICAgfQotCi0gICAgcmV0dXJuIDA7Ci19Ci0KLWludCBtYmVkdGxzX2djbV9hdXRoX2RlY3J5cHQobWJlZHRsc19nY21fY29udGV4dCAqY3R4LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgbGVuZ3RoLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1bnNpZ25lZCBjaGFyICppdiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IGl2X2xlbiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdW5zaWduZWQgY2hhciAqYWRkLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgYWRkX2xlbiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdW5zaWduZWQgY2hhciAqdGFnLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgdGFnX2xlbiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdW5zaWduZWQgY2hhciAqaW5wdXQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGNoYXIgKm91dHB1dCkKLXsKLSAgICBpbnQgcmV0ID0gTUJFRFRMU19FUlJfRVJST1JfQ09SUlVQVElPTl9ERVRFQ1RFRDsKLSAgICB1bnNpZ25lZCBjaGFyIGNoZWNrX3RhZ1sxNl07Ci0gICAgaW50IGRpZmY7Ci0KLSAgICBpZiAoKHJldCA9IG1iZWR0bHNfZ2NtX2NyeXB0X2FuZF90YWcoY3R4LCBNQkVEVExTX0dDTV9ERUNSWVBULCBsZW5ndGgsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGl2LCBpdl9sZW4sIGFkZCwgYWRkX2xlbiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5wdXQsIG91dHB1dCwgdGFnX2xlbiwgY2hlY2tfdGFnKSkgIT0gMCkgewotICAgICAgICByZXR1cm4gcmV0OwotICAgIH0KLQotICAgIC8qIENoZWNrIHRhZyBpbiAiY29uc3RhbnQtdGltZSIgKi8KLSAgICBkaWZmID0gbWJlZHRsc19jdF9tZW1jbXAodGFnLCBjaGVja190YWcsIHRhZ19sZW4pOwotCi0gICAgaWYgKGRpZmYgIT0gMCkgewotICAgICAgICBtYmVkdGxzX3BsYXRmb3JtX3plcm9pemUob3V0cHV0LCBsZW5ndGgpOwotICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfR0NNX0FVVEhfRkFJTEVEOwotICAgIH0KLQotICAgIHJldHVybiAwOwotfQotCi12b2lkIG1iZWR0bHNfZ2NtX2ZyZWUobWJlZHRsc19nY21fY29udGV4dCAqY3R4KQotewotICAgIGlmIChjdHggPT0gTlVMTCkgewotICAgICAgICByZXR1cm47Ci0gICAgfQotI2lmIGRlZmluZWQoTUJFRFRMU19CTE9DS19DSVBIRVJfQykKLSAgICBtYmVkdGxzX2Jsb2NrX2NpcGhlcl9mcmVlKCZjdHgtPmJsb2NrX2NpcGhlcl9jdHgpOwotI2Vsc2UKLSAgICBtYmVkdGxzX2NpcGhlcl9mcmVlKCZjdHgtPmNpcGhlcl9jdHgpOwotI2VuZGlmCi0gICAgbWJlZHRsc19wbGF0Zm9ybV96ZXJvaXplKGN0eCwgc2l6ZW9mKG1iZWR0bHNfZ2NtX2NvbnRleHQpKTsKLX0KLQotI2VuZGlmIC8qICFNQkVEVExTX0dDTV9BTFQgKi8KLQotI2lmIGRlZmluZWQoTUJFRFRMU19TRUxGX1RFU1QpICYmIGRlZmluZWQoTUJFRFRMU19DQ01fR0NNX0NBTl9BRVMpCi0vKgotICogQUVTLUdDTSB0ZXN0IHZlY3RvcnMgZnJvbToKLSAqCi0gKiBodHRwOi8vY3NyYy5uaXN0Lmdvdi9ncm91cHMvU1RNL2NhdnAvZG9jdW1lbnRzL21hYy9nY210ZXN0dmVjdG9ycy56aXAKLSAqLwotI2RlZmluZSBNQVhfVEVTVFMgICA2Ci0KLXN0YXRpYyBjb25zdCBpbnQga2V5X2luZGV4X3Rlc3RfZGF0YVtNQVhfVEVTVFNdID0KLXsgMCwgMCwgMSwgMSwgMSwgMSB9OwotCi1zdGF0aWMgY29uc3QgdW5zaWduZWQgY2hhciBrZXlfdGVzdF9kYXRhW11bMzJdID0KLXsKLSAgICB7IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gICAgICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAgICAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgICAgIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAgfSwKLSAgICB7IDB4ZmUsIDB4ZmYsIDB4ZTksIDB4OTIsIDB4ODYsIDB4NjUsIDB4NzMsIDB4MWMsCi0gICAgICAweDZkLCAweDZhLCAweDhmLCAweDk0LCAweDY3LCAweDMwLCAweDgzLCAweDA4LAotICAgICAgMHhmZSwgMHhmZiwgMHhlOSwgMHg5MiwgMHg4NiwgMHg2NSwgMHg3MywgMHgxYywKLSAgICAgIDB4NmQsIDB4NmEsIDB4OGYsIDB4OTQsIDB4NjcsIDB4MzAsIDB4ODMsIDB4MDggfSwKLX07Ci0KLXN0YXRpYyBjb25zdCBzaXplX3QgaXZfbGVuX3Rlc3RfZGF0YVtNQVhfVEVTVFNdID0KLXsgMTIsIDEyLCAxMiwgMTIsIDgsIDYwIH07Ci0KLXN0YXRpYyBjb25zdCBpbnQgaXZfaW5kZXhfdGVzdF9kYXRhW01BWF9URVNUU10gPQoteyAwLCAwLCAxLCAxLCAxLCAyIH07Ci0KLXN0YXRpYyBjb25zdCB1bnNpZ25lZCBjaGFyIGl2X3Rlc3RfZGF0YVtdWzY0XSA9Ci17Ci0gICAgeyAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAgICAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCB9LAotICAgIHsgMHhjYSwgMHhmZSwgMHhiYSwgMHhiZSwgMHhmYSwgMHhjZSwgMHhkYiwgMHhhZCwKLSAgICAgIDB4ZGUsIDB4Y2EsIDB4ZjgsIDB4ODggfSwKLSAgICB7IDB4OTMsIDB4MTMsIDB4MjIsIDB4NWQsIDB4ZjgsIDB4ODQsIDB4MDYsIDB4ZTUsCi0gICAgICAweDU1LCAweDkwLCAweDljLCAweDVhLCAweGZmLCAweDUyLCAweDY5LCAweGFhLAotICAgICAgMHg2YSwgMHg3YSwgMHg5NSwgMHgzOCwgMHg1MywgMHg0ZiwgMHg3ZCwgMHhhMSwKLSAgICAgIDB4ZTQsIDB4YzMsIDB4MDMsIDB4ZDIsIDB4YTMsIDB4MTgsIDB4YTcsIDB4MjgsCi0gICAgICAweGMzLCAweGMwLCAweGM5LCAweDUxLCAweDU2LCAweDgwLCAweDk1LCAweDM5LAotICAgICAgMHhmYywgMHhmMCwgMHhlMiwgMHg0MiwgMHg5YSwgMHg2YiwgMHg1MiwgMHg1NCwKLSAgICAgIDB4MTYsIDB4YWUsIDB4ZGIsIDB4ZjUsIDB4YTAsIDB4ZGUsIDB4NmEsIDB4NTcsCi0gICAgICAweGE2LCAweDM3LCAweGIzLCAweDliIH0sCi19OwotCi1zdGF0aWMgY29uc3Qgc2l6ZV90IGFkZF9sZW5fdGVzdF9kYXRhW01BWF9URVNUU10gPQoteyAwLCAwLCAwLCAyMCwgMjAsIDIwIH07Ci0KLXN0YXRpYyBjb25zdCBpbnQgYWRkX2luZGV4X3Rlc3RfZGF0YVtNQVhfVEVTVFNdID0KLXsgMCwgMCwgMCwgMSwgMSwgMSB9OwotCi1zdGF0aWMgY29uc3QgdW5zaWduZWQgY2hhciBhZGRpdGlvbmFsX3Rlc3RfZGF0YVtdWzY0XSA9Ci17Ci0gICAgeyAweDAwIH0sCi0gICAgeyAweGZlLCAweGVkLCAweGZhLCAweGNlLCAweGRlLCAweGFkLCAweGJlLCAweGVmLAotICAgICAgMHhmZSwgMHhlZCwgMHhmYSwgMHhjZSwgMHhkZSwgMHhhZCwgMHhiZSwgMHhlZiwKLSAgICAgIDB4YWIsIDB4YWQsIDB4ZGEsIDB4ZDIgfSwKLX07Ci0KLXN0YXRpYyBjb25zdCBzaXplX3QgcHRfbGVuX3Rlc3RfZGF0YVtNQVhfVEVTVFNdID0KLXsgMCwgMTYsIDY0LCA2MCwgNjAsIDYwIH07Ci0KLXN0YXRpYyBjb25zdCBpbnQgcHRfaW5kZXhfdGVzdF9kYXRhW01BWF9URVNUU10gPQoteyAwLCAwLCAxLCAxLCAxLCAxIH07Ci0KLXN0YXRpYyBjb25zdCB1bnNpZ25lZCBjaGFyIHB0X3Rlc3RfZGF0YVtdWzY0XSA9Ci17Ci0gICAgeyAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAgICAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCB9LAotICAgIHsgMHhkOSwgMHgzMSwgMHgzMiwgMHgyNSwgMHhmOCwgMHg4NCwgMHgwNiwgMHhlNSwKLSAgICAgIDB4YTUsIDB4NTksIDB4MDksIDB4YzUsIDB4YWYsIDB4ZjUsIDB4MjYsIDB4OWEsCi0gICAgICAweDg2LCAweGE3LCAweGE5LCAweDUzLCAweDE1LCAweDM0LCAweGY3LCAweGRhLAotICAgICAgMHgyZSwgMHg0YywgMHgzMCwgMHgzZCwgMHg4YSwgMHgzMSwgMHg4YSwgMHg3MiwKLSAgICAgIDB4MWMsIDB4M2MsIDB4MGMsIDB4OTUsIDB4OTUsIDB4NjgsIDB4MDksIDB4NTMsCi0gICAgICAweDJmLCAweGNmLCAweDBlLCAweDI0LCAweDQ5LCAweGE2LCAweGI1LCAweDI1LAotICAgICAgMHhiMSwgMHg2YSwgMHhlZCwgMHhmNSwgMHhhYSwgMHgwZCwgMHhlNiwgMHg1NywKLSAgICAgIDB4YmEsIDB4NjMsIDB4N2IsIDB4MzksIDB4MWEsIDB4YWYsIDB4ZDIsIDB4NTUgfSwKLX07Ci0KLXN0YXRpYyBjb25zdCB1bnNpZ25lZCBjaGFyIGN0X3Rlc3RfZGF0YVtdWzY0XSA9Ci17Ci0gICAgeyAweDAwIH0sCi0gICAgeyAweDAzLCAweDg4LCAweGRhLCAweGNlLCAweDYwLCAweGI2LCAweGEzLCAweDkyLAotICAgICAgMHhmMywgMHgyOCwgMHhjMiwgMHhiOSwgMHg3MSwgMHhiMiwgMHhmZSwgMHg3OCB9LAotICAgIHsgMHg0MiwgMHg4MywgMHgxZSwgMHhjMiwgMHgyMSwgMHg3NywgMHg3NCwgMHgyNCwKLSAgICAgIDB4NGIsIDB4NzIsIDB4MjEsIDB4YjcsIDB4ODQsIDB4ZDAsIDB4ZDQsIDB4OWMsCi0gICAgICAweGUzLCAweGFhLCAweDIxLCAweDJmLCAweDJjLCAweDAyLCAweGE0LCAweGUwLAotICAgICAgMHgzNSwgMHhjMSwgMHg3ZSwgMHgyMywgMHgyOSwgMHhhYywgMHhhMSwgMHgyZSwKLSAgICAgIDB4MjEsIDB4ZDUsIDB4MTQsIDB4YjIsIDB4NTQsIDB4NjYsIDB4OTMsIDB4MWMsCi0gICAgICAweDdkLCAweDhmLCAweDZhLCAweDVhLCAweGFjLCAweDg0LCAweGFhLCAweDA1LAotICAgICAgMHgxYiwgMHhhMywgMHgwYiwgMHgzOSwgMHg2YSwgMHgwYSwgMHhhYywgMHg5NywKLSAgICAgIDB4M2QsIDB4NTgsIDB4ZTAsIDB4OTEsIDB4NDcsIDB4M2YsIDB4NTksIDB4ODUgfSwKLSAgICB7IDB4NDIsIDB4ODMsIDB4MWUsIDB4YzIsIDB4MjEsIDB4NzcsIDB4NzQsIDB4MjQsCi0gICAgICAweDRiLCAweDcyLCAweDIxLCAweGI3LCAweDg0LCAweGQwLCAweGQ0LCAweDljLAotICAgICAgMHhlMywgMHhhYSwgMHgyMSwgMHgyZiwgMHgyYywgMHgwMiwgMHhhNCwgMHhlMCwKLSAgICAgIDB4MzUsIDB4YzEsIDB4N2UsIDB4MjMsIDB4MjksIDB4YWMsIDB4YTEsIDB4MmUsCi0gICAgICAweDIxLCAweGQ1LCAweDE0LCAweGIyLCAweDU0LCAweDY2LCAweDkzLCAweDFjLAotICAgICAgMHg3ZCwgMHg4ZiwgMHg2YSwgMHg1YSwgMHhhYywgMHg4NCwgMHhhYSwgMHgwNSwKLSAgICAgIDB4MWIsIDB4YTMsIDB4MGIsIDB4MzksIDB4NmEsIDB4MGEsIDB4YWMsIDB4OTcsCi0gICAgICAweDNkLCAweDU4LCAweGUwLCAweDkxIH0sCi0gICAgeyAweDYxLCAweDM1LCAweDNiLCAweDRjLCAweDI4LCAweDA2LCAweDkzLCAweDRhLAotICAgICAgMHg3NywgMHg3ZiwgMHhmNSwgMHgxZiwgMHhhMiwgMHgyYSwgMHg0NywgMHg1NSwKLSAgICAgIDB4NjksIDB4OWIsIDB4MmEsIDB4NzEsIDB4NGYsIDB4Y2QsIDB4YzYsIDB4ZjgsCi0gICAgICAweDM3LCAweDY2LCAweGU1LCAweGY5LCAweDdiLCAweDZjLCAweDc0LCAweDIzLAotICAgICAgMHg3MywgMHg4MCwgMHg2OSwgMHgwMCwgMHhlNCwgMHg5ZiwgMHgyNCwgMHhiMiwKLSAgICAgIDB4MmIsIDB4MDksIDB4NzUsIDB4NDQsIDB4ZDQsIDB4ODksIDB4NmIsIDB4NDIsCi0gICAgICAweDQ5LCAweDg5LCAweGI1LCAweGUxLCAweGViLCAweGFjLCAweDBmLCAweDA3LAotICAgICAgMHhjMiwgMHgzZiwgMHg0NSwgMHg5OCB9LAotICAgIHsgMHg4YywgMHhlMiwgMHg0OSwgMHg5OCwgMHg2MiwgMHg1NiwgMHgxNSwgMHhiNiwKLSAgICAgIDB4MDMsIDB4YTAsIDB4MzMsIDB4YWMsIDB4YTEsIDB4M2YsIDB4YjgsIDB4OTQsCi0gICAgICAweGJlLCAweDkxLCAweDEyLCAweGE1LCAweGMzLCAweGEyLCAweDExLCAweGE4LAotICAgICAgMHhiYSwgMHgyNiwgMHgyYSwgMHgzYywgMHhjYSwgMHg3ZSwgMHgyYywgMHhhNywKLSAgICAgIDB4MDEsIDB4ZTQsIDB4YTksIDB4YTQsIDB4ZmIsIDB4YTQsIDB4M2MsIDB4OTAsCi0gICAgICAweGNjLCAweGRjLCAweGIyLCAweDgxLCAweGQ0LCAweDhjLCAweDdjLCAweDZmLAotICAgICAgMHhkNiwgMHgyOCwgMHg3NSwgMHhkMiwgMHhhYywgMHhhNCwgMHgxNywgMHgwMywKLSAgICAgIDB4NGMsIDB4MzQsIDB4YWUsIDB4ZTUgfSwKLSNpZiAhZGVmaW5lZChNQkVEVExTX0FFU19PTkxZXzEyOF9CSVRfS0VZX0xFTkdUSCkKLSAgICB7IDB4MDAgfSwKLSAgICB7IDB4OTgsIDB4ZTcsIDB4MjQsIDB4N2MsIDB4MDcsIDB4ZjAsIDB4ZmUsIDB4NDEsCi0gICAgICAweDFjLCAweDI2LCAweDdlLCAweDQzLCAweDg0LCAweGIwLCAweGY2LCAweDAwIH0sCi0gICAgeyAweDM5LCAweDgwLCAweGNhLCAweDBiLCAweDNjLCAweDAwLCAweGU4LCAweDQxLAotICAgICAgMHhlYiwgMHgwNiwgMHhmYSwgMHhjNCwgMHg4NywgMHgyYSwgMHgyNywgMHg1NywKLSAgICAgIDB4ODUsIDB4OWUsIDB4MWMsIDB4ZWEsIDB4YTYsIDB4ZWYsIDB4ZDksIDB4ODQsCi0gICAgICAweDYyLCAweDg1LCAweDkzLCAweGI0LCAweDBjLCAweGExLCAweGUxLCAweDljLAotICAgICAgMHg3ZCwgMHg3NywgMHgzZCwgMHgwMCwgMHhjMSwgMHg0NCwgMHhjNSwgMHgyNSwKLSAgICAgIDB4YWMsIDB4NjEsIDB4OWQsIDB4MTgsIDB4YzgsIDB4NGEsIDB4M2YsIDB4NDcsCi0gICAgICAweDE4LCAweGUyLCAweDQ0LCAweDhiLCAweDJmLCAweGUzLCAweDI0LCAweGQ5LAotICAgICAgMHhjYywgMHhkYSwgMHgyNywgMHgxMCwgMHhhYywgMHhhZCwgMHhlMiwgMHg1NiB9LAotICAgIHsgMHgzOSwgMHg4MCwgMHhjYSwgMHgwYiwgMHgzYywgMHgwMCwgMHhlOCwgMHg0MSwKLSAgICAgIDB4ZWIsIDB4MDYsIDB4ZmEsIDB4YzQsIDB4ODcsIDB4MmEsIDB4MjcsIDB4NTcsCi0gICAgICAweDg1LCAweDllLCAweDFjLCAweGVhLCAweGE2LCAweGVmLCAweGQ5LCAweDg0LAotICAgICAgMHg2MiwgMHg4NSwgMHg5MywgMHhiNCwgMHgwYywgMHhhMSwgMHhlMSwgMHg5YywKLSAgICAgIDB4N2QsIDB4NzcsIDB4M2QsIDB4MDAsIDB4YzEsIDB4NDQsIDB4YzUsIDB4MjUsCi0gICAgICAweGFjLCAweDYxLCAweDlkLCAweDE4LCAweGM4LCAweDRhLCAweDNmLCAweDQ3LAotICAgICAgMHgxOCwgMHhlMiwgMHg0NCwgMHg4YiwgMHgyZiwgMHhlMywgMHgyNCwgMHhkOSwKLSAgICAgIDB4Y2MsIDB4ZGEsIDB4MjcsIDB4MTAgfSwKLSAgICB7IDB4MGYsIDB4MTAsIDB4ZjUsIDB4OTksIDB4YWUsIDB4MTQsIDB4YTEsIDB4NTQsCi0gICAgICAweGVkLCAweDI0LCAweGIzLCAweDZlLCAweDI1LCAweDMyLCAweDRkLCAweGI4LAotICAgICAgMHhjNSwgMHg2NiwgMHg2MywgMHgyZSwgMHhmMiwgMHhiYiwgMHhiMywgMHg0ZiwKLSAgICAgIDB4ODMsIDB4NDcsIDB4MjgsIDB4MGYsIDB4YzQsIDB4NTAsIDB4NzAsIDB4NTcsCi0gICAgICAweGZkLCAweGRjLCAweDI5LCAweGRmLCAweDlhLCAweDQ3LCAweDFmLCAweDc1LAotICAgICAgMHhjNiwgMHg2NSwgMHg0MSwgMHhkNCwgMHhkNCwgMHhkYSwgMHhkMSwgMHhjOSwKLSAgICAgIDB4ZTksIDB4M2EsIDB4MTksIDB4YTUsIDB4OGUsIDB4OGIsIDB4NDcsIDB4M2YsCi0gICAgICAweGEwLCAweGYwLCAweDYyLCAweGY3IH0sCi0gICAgeyAweGQyLCAweDdlLCAweDg4LCAweDY4LCAweDFjLCAweGUzLCAweDI0LCAweDNjLAotICAgICAgMHg0OCwgMHgzMCwgMHgxNiwgMHg1YSwgMHg4ZiwgMHhkYywgMHhmOSwgMHhmZiwKLSAgICAgIDB4MWQsIDB4ZTksIDB4YTEsIDB4ZDgsIDB4ZTYsIDB4YjQsIDB4NDcsIDB4ZWYsCi0gICAgICAweDZlLCAweGY3LCAweGI3LCAweDk4LCAweDI4LCAweDY2LCAweDZlLCAweDQ1LAotICAgICAgMHg4MSwgMHhlNywgMHg5MCwgMHgxMiwgMHhhZiwgMHgzNCwgMHhkZCwgMHhkOSwKLSAgICAgIDB4ZTIsIDB4ZjAsIDB4MzcsIDB4NTgsIDB4OWIsIDB4MjksIDB4MmQsIDB4YjMsCi0gICAgICAweGU2LCAweDdjLCAweDAzLCAweDY3LCAweDQ1LCAweGZhLCAweDIyLCAweGU3LAotICAgICAgMHhlOSwgMHhiNywgMHgzNywgMHgzYiB9LAotICAgIHsgMHgwMCB9LAotICAgIHsgMHhjZSwgMHhhNywgMHg0MCwgMHgzZCwgMHg0ZCwgMHg2MCwgMHg2YiwgMHg2ZSwKLSAgICAgIDB4MDcsIDB4NGUsIDB4YzUsIDB4ZDMsIDB4YmEsIDB4ZjMsIDB4OWQsIDB4MTggfSwKLSAgICB7IDB4NTIsIDB4MmQsIDB4YzEsIDB4ZjAsIDB4OTksIDB4NTYsIDB4N2QsIDB4MDcsCi0gICAgICAweGY0LCAweDdmLCAweDM3LCAweGEzLCAweDJhLCAweDg0LCAweDQyLCAweDdkLAotICAgICAgMHg2NCwgMHgzYSwgMHg4YywgMHhkYywgMHhiZiwgMHhlNSwgMHhjMCwgMHhjOSwKLSAgICAgIDB4NzUsIDB4OTgsIDB4YTIsIDB4YmQsIDB4MjUsIDB4NTUsIDB4ZDEsIDB4YWEsCi0gICAgICAweDhjLCAweGIwLCAweDhlLCAweDQ4LCAweDU5LCAweDBkLCAweGJiLCAweDNkLAotICAgICAgMHhhNywgMHhiMCwgMHg4YiwgMHgxMCwgMHg1NiwgMHg4MiwgMHg4OCwgMHgzOCwKLSAgICAgIDB4YzUsIDB4ZjYsIDB4MWUsIDB4NjMsIDB4OTMsIDB4YmEsIDB4N2EsIDB4MGEsCi0gICAgICAweGJjLCAweGM5LCAweGY2LCAweDYyLCAweDg5LCAweDgwLCAweDE1LCAweGFkIH0sCi0gICAgeyAweDUyLCAweDJkLCAweGMxLCAweGYwLCAweDk5LCAweDU2LCAweDdkLCAweDA3LAotICAgICAgMHhmNCwgMHg3ZiwgMHgzNywgMHhhMywgMHgyYSwgMHg4NCwgMHg0MiwgMHg3ZCwKLSAgICAgIDB4NjQsIDB4M2EsIDB4OGMsIDB4ZGMsIDB4YmYsIDB4ZTUsIDB4YzAsIDB4YzksCi0gICAgICAweDc1LCAweDk4LCAweGEyLCAweGJkLCAweDI1LCAweDU1LCAweGQxLCAweGFhLAotICAgICAgMHg4YywgMHhiMCwgMHg4ZSwgMHg0OCwgMHg1OSwgMHgwZCwgMHhiYiwgMHgzZCwKLSAgICAgIDB4YTcsIDB4YjAsIDB4OGIsIDB4MTAsIDB4NTYsIDB4ODIsIDB4ODgsIDB4MzgsCi0gICAgICAweGM1LCAweGY2LCAweDFlLCAweDYzLCAweDkzLCAweGJhLCAweDdhLCAweDBhLAotICAgICAgMHhiYywgMHhjOSwgMHhmNiwgMHg2MiB9LAotICAgIHsgMHhjMywgMHg3NiwgMHgyZCwgMHhmMSwgMHhjYSwgMHg3OCwgMHg3ZCwgMHgzMiwKLSAgICAgIDB4YWUsIDB4NDcsIDB4YzEsIDB4M2IsIDB4ZjEsIDB4OTgsIDB4NDQsIDB4Y2IsCi0gICAgICAweGFmLCAweDFhLCAweGUxLCAweDRkLCAweDBiLCAweDk3LCAweDZhLCAweGZhLAotICAgICAgMHhjNSwgMHgyZiwgMHhmNywgMHhkNywgMHg5YiwgMHhiYSwgMHg5ZCwgMHhlMCwKLSAgICAgIDB4ZmUsIDB4YjUsIDB4ODIsIDB4ZDMsIDB4MzksIDB4MzQsIDB4YTQsIDB4ZjAsCi0gICAgICAweDk1LCAweDRjLCAweGMyLCAweDM2LCAweDNiLCAweGM3LCAweDNmLCAweDc4LAotICAgICAgMHg2MiwgMHhhYywgMHg0MywgMHgwZSwgMHg2NCwgMHhhYiwgMHhlNCwgMHg5OSwKLSAgICAgIDB4ZjQsIDB4N2MsIDB4OWIsIDB4MWYgfSwKLSAgICB7IDB4NWEsIDB4OGQsIDB4ZWYsIDB4MmYsIDB4MGMsIDB4OWUsIDB4NTMsIDB4ZjEsCi0gICAgICAweGY3LCAweDVkLCAweDc4LCAweDUzLCAweDY1LCAweDllLCAweDJhLCAweDIwLAotICAgICAgMHhlZSwgMHhiMiwgMHhiMiwgMHgyYSwgMHhhZiwgMHhkZSwgMHg2NCwgMHgxOSwKLSAgICAgIDB4YTAsIDB4NTgsIDB4YWIsIDB4NGYsIDB4NmYsIDB4NzQsIDB4NmIsIDB4ZjQsCi0gICAgICAweDBmLCAweGMwLCAweGMzLCAweGI3LCAweDgwLCAweGYyLCAweDQ0LCAweDQ1LAotICAgICAgMHgyZCwgMHhhMywgMHhlYiwgMHhmMSwgMHhjNSwgMHhkOCwgMHgyYywgMHhkZSwKLSAgICAgIDB4YTIsIDB4NDEsIDB4ODksIDB4OTcsIDB4MjAsIDB4MGUsIDB4ZjgsIDB4MmUsCi0gICAgICAweDQ0LCAweGFlLCAweDdlLCAweDNmIH0sCi0jZW5kaWYgLyogIU1CRURUTFNfQUVTX09OTFlfMTI4X0JJVF9LRVlfTEVOR1RIICovCi19OwotCi1zdGF0aWMgY29uc3QgdW5zaWduZWQgY2hhciB0YWdfdGVzdF9kYXRhW11bMTZdID0KLXsKLSAgICB7IDB4NTgsIDB4ZTIsIDB4ZmMsIDB4Y2UsIDB4ZmEsIDB4N2UsIDB4MzAsIDB4NjEsCi0gICAgICAweDM2LCAweDdmLCAweDFkLCAweDU3LCAweGE0LCAweGU3LCAweDQ1LCAweDVhIH0sCi0gICAgeyAweGFiLCAweDZlLCAweDQ3LCAweGQ0LCAweDJjLCAweGVjLCAweDEzLCAweGJkLAotICAgICAgMHhmNSwgMHgzYSwgMHg2NywgMHhiMiwgMHgxMiwgMHg1NywgMHhiZCwgMHhkZiB9LAotICAgIHsgMHg0ZCwgMHg1YywgMHgyYSwgMHhmMywgMHgyNywgMHhjZCwgMHg2NCwgMHhhNiwKLSAgICAgIDB4MmMsIDB4ZjMsIDB4NWEsIDB4YmQsIDB4MmIsIDB4YTYsIDB4ZmEsIDB4YjQgfSwKLSAgICB7IDB4NWIsIDB4YzksIDB4NGYsIDB4YmMsIDB4MzIsIDB4MjEsIDB4YTUsIDB4ZGIsCi0gICAgICAweDk0LCAweGZhLCAweGU5LCAweDVhLCAweGU3LCAweDEyLCAweDFhLCAweDQ3IH0sCi0gICAgeyAweDM2LCAweDEyLCAweGQyLCAweGU3LCAweDllLCAweDNiLCAweDA3LCAweDg1LAotICAgICAgMHg1NiwgMHgxYiwgMHhlMSwgMHg0YSwgMHhhYywgMHhhMiwgMHhmYywgMHhjYiB9LAotICAgIHsgMHg2MSwgMHg5YywgMHhjNSwgMHhhZSwgMHhmZiwgMHhmZSwgMHgwYiwgMHhmYSwKLSAgICAgIDB4NDYsIDB4MmEsIDB4ZjQsIDB4M2MsIDB4MTYsIDB4OTksIDB4ZDAsIDB4NTAgfSwKLSNpZiAhZGVmaW5lZChNQkVEVExTX0FFU19PTkxZXzEyOF9CSVRfS0VZX0xFTkdUSCkKLSAgICB7IDB4Y2QsIDB4MzMsIDB4YjIsIDB4OGEsIDB4YzcsIDB4NzMsIDB4ZjcsIDB4NGIsCi0gICAgICAweGEwLCAweDBlLCAweGQxLCAweGYzLCAweDEyLCAweDU3LCAweDI0LCAweDM1IH0sCi0gICAgeyAweDJmLCAweGY1LCAweDhkLCAweDgwLCAweDAzLCAweDM5LCAweDI3LCAweGFiLAotICAgICAgMHg4ZSwgMHhmNCwgMHhkNCwgMHg1OCwgMHg3NSwgMHgxNCwgMHhmMCwgMHhmYiB9LAotICAgIHsgMHg5OSwgMHgyNCwgMHhhNywgMHhjOCwgMHg1OCwgMHg3MywgMHgzNiwgMHhiZiwKLSAgICAgIDB4YjEsIDB4MTgsIDB4MDIsIDB4NGQsIDB4YjgsIDB4NjcsIDB4NGEsIDB4MTQgfSwKLSAgICB7IDB4MjUsIDB4MTksIDB4NDksIDB4OGUsIDB4ODAsIDB4ZjEsIDB4NDcsIDB4OGYsCi0gICAgICAweDM3LCAweGJhLCAweDU1LCAweGJkLCAweDZkLCAweDI3LCAweDYxLCAweDhjIH0sCi0gICAgeyAweDY1LCAweGRjLCAweGM1LCAweDdmLCAweGNmLCAweDYyLCAweDNhLCAweDI0LAotICAgICAgMHgwOSwgMHg0ZiwgMHhjYywgMHhhNCwgMHgwZCwgMHgzNSwgMHgzMywgMHhmOCB9LAotICAgIHsgMHhkYywgMHhmNSwgMHg2NiwgMHhmZiwgMHgyOSwgMHgxYywgMHgyNSwgMHhiYiwKLSAgICAgIDB4YjgsIDB4NTYsIDB4OGYsIDB4YzMsIDB4ZDMsIDB4NzYsIDB4YTYsIDB4ZDkgfSwKLSAgICB7IDB4NTMsIDB4MGYsIDB4OGEsIDB4ZmIsIDB4YzcsIDB4NDUsIDB4MzYsIDB4YjksCi0gICAgICAweGE5LCAweDYzLCAweGI0LCAweGYxLCAweGM0LCAweGNiLCAweDczLCAweDhiIH0sCi0gICAgeyAweGQwLCAweGQxLCAweGM4LCAweGE3LCAweDk5LCAweDk5LCAweDZiLCAweGYwLAotICAgICAgMHgyNiwgMHg1YiwgMHg5OCwgMHhiNSwgMHhkNCwgMHg4YSwgMHhiOSwgMHgxOSB9LAotICAgIHsgMHhiMCwgMHg5NCwgMHhkYSwgMHhjNSwgMHhkOSwgMHgzNCwgMHg3MSwgMHhiZCwKLSAgICAgIDB4ZWMsIDB4MWEsIDB4NTAsIDB4MjIsIDB4NzAsIDB4ZTMsIDB4Y2MsIDB4NmMgfSwKLSAgICB7IDB4NzYsIDB4ZmMsIDB4NmUsIDB4Y2UsIDB4MGYsIDB4NGUsIDB4MTcsIDB4NjgsCi0gICAgICAweGNkLCAweGRmLCAweDg4LCAweDUzLCAweGJiLCAweDJkLCAweDU1LCAweDFiIH0sCi0gICAgeyAweDNhLCAweDMzLCAweDdkLCAweGJmLCAweDQ2LCAweGE3LCAweDkyLCAweGM0LAotICAgICAgMHg1ZSwgMHg0NSwgMHg0OSwgMHgxMywgMHhmZSwgMHgyZSwgMHhhOCwgMHhmMiB9LAotICAgIHsgMHhhNCwgMHg0YSwgMHg4MiwgMHg2NiwgMHhlZSwgMHgxYywgMHg4ZSwgMHhiMCwKLSAgICAgIDB4YzgsIDB4YjUsIDB4ZDQsIDB4Y2YsIDB4NWEsIDB4ZTksIDB4ZjEsIDB4OWEgfSwKLSNlbmRpZiAvKiAhTUJFRFRMU19BRVNfT05MWV8xMjhfQklUX0tFWV9MRU5HVEggKi8KLX07Ci0KLWludCBtYmVkdGxzX2djbV9zZWxmX3Rlc3QoaW50IHZlcmJvc2UpCi17Ci0gICAgbWJlZHRsc19nY21fY29udGV4dCBjdHg7Ci0gICAgdW5zaWduZWQgY2hhciBidWZbNjRdOwotICAgIHVuc2lnbmVkIGNoYXIgdGFnX2J1ZlsxNl07Ci0gICAgaW50IGksIGosIHJldDsKLSAgICBtYmVkdGxzX2NpcGhlcl9pZF90IGNpcGhlciA9IE1CRURUTFNfQ0lQSEVSX0lEX0FFUzsKLSAgICBzaXplX3Qgb2xlbjsKLQotICAgIGlmICh2ZXJib3NlICE9IDApIHsKLSNpZiBkZWZpbmVkKE1CRURUTFNfR0NNX0FMVCkKLSAgICAgICAgbWJlZHRsc19wcmludGYoIiAgR0NNIG5vdGU6IGFsdGVybmF0aXZlIGltcGxlbWVudGF0aW9uLlxuIik7Ci0jZWxzZSAvKiBNQkVEVExTX0dDTV9BTFQgKi8KLSNpZiBkZWZpbmVkKE1CRURUTFNfQUVTTklfSEFWRV9DT0RFKQotICAgICAgICBpZiAobWJlZHRsc19hZXNuaV9oYXNfc3VwcG9ydChNQkVEVExTX0FFU05JX0NMTVVMKSkgewotICAgICAgICAgICAgbWJlZHRsc19wcmludGYoIiAgR0NNIG5vdGU6IHVzaW5nIEFFU05JLlxuIik7Ci0gICAgICAgIH0gZWxzZQotI2VuZGlmCi0KLSNpZiBkZWZpbmVkKE1CRURUTFNfQUVTQ0VfSEFWRV9DT0RFKQotICAgICAgICBpZiAoTUJFRFRMU19BRVNDRV9IQVNfU1VQUE9SVCgpKSB7Ci0gICAgICAgICAgICBtYmVkdGxzX3ByaW50ZigiICBHQ00gbm90ZTogdXNpbmcgQUVTQ0UuXG4iKTsKLSAgICAgICAgfSBlbHNlCi0jZW5kaWYKLQotICAgICAgICBtYmVkdGxzX3ByaW50ZigiICBHQ00gbm90ZTogYnVpbHQtaW4gaW1wbGVtZW50YXRpb24uXG4iKTsKLSNlbmRpZiAvKiBNQkVEVExTX0dDTV9BTFQgKi8KLSAgICB9Ci0KLSAgICBzdGF0aWMgY29uc3QgaW50IGxvb3BfbGltaXQgPQotICAgICAgICAoc2l6ZW9mKGN0X3Rlc3RfZGF0YSkgLyBzaXplb2YoKmN0X3Rlc3RfZGF0YSkpIC8gTUFYX1RFU1RTOwotCi0gICAgZm9yIChqID0gMDsgaiA8IGxvb3BfbGltaXQ7IGorKykgewotICAgICAgICBpbnQga2V5X2xlbiA9IDEyOCArIDY0ICogajsKLQotICAgICAgICBmb3IgKGkgPSAwOyBpIDwgTUFYX1RFU1RTOyBpKyspIHsKLSAgICAgICAgICAgIGlmICh2ZXJib3NlICE9IDApIHsKLSAgICAgICAgICAgICAgICBtYmVkdGxzX3ByaW50ZigiICBBRVMtR0NNLSUzZCAjJWQgKCVzKTogIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXlfbGVuLCBpLCAiZW5jIik7Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIG1iZWR0bHNfZ2NtX2luaXQoJmN0eCk7Ci0KLSAgICAgICAgICAgIHJldCA9IG1iZWR0bHNfZ2NtX3NldGtleSgmY3R4LCBjaXBoZXIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga2V5X3Rlc3RfZGF0YVtrZXlfaW5kZXhfdGVzdF9kYXRhW2ldXSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXlfbGVuKTsKLSAgICAgICAgICAgIC8qCi0gICAgICAgICAgICAgKiBBRVMtMTkyIGlzIGFuIG9wdGlvbmFsIGZlYXR1cmUgdGhhdCBtYXkgYmUgdW5hdmFpbGFibGUgd2hlbgotICAgICAgICAgICAgICogdGhlcmUgaXMgYW4gYWx0ZXJuYXRpdmUgdW5kZXJseWluZyBpbXBsZW1lbnRhdGlvbiBpLmUuIHdoZW4KLSAgICAgICAgICAgICAqIE1CRURUTFNfQUVTX0FMVCBpcyBkZWZpbmVkLgotICAgICAgICAgICAgICovCi0gICAgICAgICAgICBpZiAocmV0ID09IE1CRURUTFNfRVJSX1BMQVRGT1JNX0ZFQVRVUkVfVU5TVVBQT1JURUQgJiYga2V5X2xlbiA9PSAxOTIpIHsKLSAgICAgICAgICAgICAgICBtYmVkdGxzX3ByaW50Zigic2tpcHBlZFxuIik7Ci0gICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICB9IGVsc2UgaWYgKHJldCAhPSAwKSB7Ci0gICAgICAgICAgICAgICAgZ290byBleGl0OwotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICByZXQgPSBtYmVkdGxzX2djbV9jcnlwdF9hbmRfdGFnKCZjdHgsIE1CRURUTFNfR0NNX0VOQ1JZUFQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB0X2xlbl90ZXN0X2RhdGFbaV0sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGl2X3Rlc3RfZGF0YVtpdl9pbmRleF90ZXN0X2RhdGFbaV1dLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpdl9sZW5fdGVzdF9kYXRhW2ldLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhZGRpdGlvbmFsX3Rlc3RfZGF0YVthZGRfaW5kZXhfdGVzdF9kYXRhW2ldXSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWRkX2xlbl90ZXN0X2RhdGFbaV0sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB0X3Rlc3RfZGF0YVtwdF9pbmRleF90ZXN0X2RhdGFbaV1dLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBidWYsIDE2LCB0YWdfYnVmKTsKLSNpZiBkZWZpbmVkKE1CRURUTFNfR0NNX0FMVCkKLSAgICAgICAgICAgIC8qIEFsbG93IGFsdGVybmF0aXZlIGltcGxlbWVudGF0aW9ucyB0byBvbmx5IHN1cHBvcnQgMTItYnl0ZSBub25jZXMuICovCi0gICAgICAgICAgICBpZiAocmV0ID09IE1CRURUTFNfRVJSX1BMQVRGT1JNX0ZFQVRVUkVfVU5TVVBQT1JURUQgJiYKLSAgICAgICAgICAgICAgICBpdl9sZW5fdGVzdF9kYXRhW2ldICE9IDEyKSB7Ci0gICAgICAgICAgICAgICAgbWJlZHRsc19wcmludGYoInNraXBwZWRcbiIpOwotICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgfQotI2VuZGlmIC8qIGRlZmluZWQoTUJFRFRMU19HQ01fQUxUKSAqLwotICAgICAgICAgICAgaWYgKHJldCAhPSAwKSB7Ci0gICAgICAgICAgICAgICAgZ290byBleGl0OwotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICBpZiAobWVtY21wKGJ1ZiwgY3RfdGVzdF9kYXRhW2ogKiA2ICsgaV0sCi0gICAgICAgICAgICAgICAgICAgICAgIHB0X2xlbl90ZXN0X2RhdGFbaV0pICE9IDAgfHwKLSAgICAgICAgICAgICAgICBtZW1jbXAodGFnX2J1ZiwgdGFnX3Rlc3RfZGF0YVtqICogNiArIGldLCAxNikgIT0gMCkgewotICAgICAgICAgICAgICAgIHJldCA9IDE7Ci0gICAgICAgICAgICAgICAgZ290byBleGl0OwotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICBtYmVkdGxzX2djbV9mcmVlKCZjdHgpOwotCi0gICAgICAgICAgICBpZiAodmVyYm9zZSAhPSAwKSB7Ci0gICAgICAgICAgICAgICAgbWJlZHRsc19wcmludGYoInBhc3NlZFxuIik7Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIG1iZWR0bHNfZ2NtX2luaXQoJmN0eCk7Ci0KLSAgICAgICAgICAgIGlmICh2ZXJib3NlICE9IDApIHsKLSAgICAgICAgICAgICAgICBtYmVkdGxzX3ByaW50ZigiICBBRVMtR0NNLSUzZCAjJWQgKCVzKTogIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXlfbGVuLCBpLCAiZGVjIik7Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIHJldCA9IG1iZWR0bHNfZ2NtX3NldGtleSgmY3R4LCBjaXBoZXIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga2V5X3Rlc3RfZGF0YVtrZXlfaW5kZXhfdGVzdF9kYXRhW2ldXSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXlfbGVuKTsKLSAgICAgICAgICAgIGlmIChyZXQgIT0gMCkgewotICAgICAgICAgICAgICAgIGdvdG8gZXhpdDsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgcmV0ID0gbWJlZHRsc19nY21fY3J5cHRfYW5kX3RhZygmY3R4LCBNQkVEVExTX0dDTV9ERUNSWVBULAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwdF9sZW5fdGVzdF9kYXRhW2ldLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpdl90ZXN0X2RhdGFbaXZfaW5kZXhfdGVzdF9kYXRhW2ldXSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXZfbGVuX3Rlc3RfZGF0YVtpXSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWRkaXRpb25hbF90ZXN0X2RhdGFbYWRkX2luZGV4X3Rlc3RfZGF0YVtpXV0sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFkZF9sZW5fdGVzdF9kYXRhW2ldLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdF90ZXN0X2RhdGFbaiAqIDYgKyBpXSwgYnVmLCAxNiwgdGFnX2J1Zik7Ci0KLSAgICAgICAgICAgIGlmIChyZXQgIT0gMCkgewotICAgICAgICAgICAgICAgIGdvdG8gZXhpdDsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgaWYgKG1lbWNtcChidWYsIHB0X3Rlc3RfZGF0YVtwdF9pbmRleF90ZXN0X2RhdGFbaV1dLAotICAgICAgICAgICAgICAgICAgICAgICBwdF9sZW5fdGVzdF9kYXRhW2ldKSAhPSAwIHx8Ci0gICAgICAgICAgICAgICAgbWVtY21wKHRhZ19idWYsIHRhZ190ZXN0X2RhdGFbaiAqIDYgKyBpXSwgMTYpICE9IDApIHsKLSAgICAgICAgICAgICAgICByZXQgPSAxOwotICAgICAgICAgICAgICAgIGdvdG8gZXhpdDsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgbWJlZHRsc19nY21fZnJlZSgmY3R4KTsKLQotICAgICAgICAgICAgaWYgKHZlcmJvc2UgIT0gMCkgewotICAgICAgICAgICAgICAgIG1iZWR0bHNfcHJpbnRmKCJwYXNzZWRcbiIpOwotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICBtYmVkdGxzX2djbV9pbml0KCZjdHgpOwotCi0gICAgICAgICAgICBpZiAodmVyYm9zZSAhPSAwKSB7Ci0gICAgICAgICAgICAgICAgbWJlZHRsc19wcmludGYoIiAgQUVTLUdDTS0lM2QgIyVkIHNwbGl0ICglcyk6ICIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga2V5X2xlbiwgaSwgImVuYyIpOwotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICByZXQgPSBtYmVkdGxzX2djbV9zZXRrZXkoJmN0eCwgY2lwaGVyLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtleV90ZXN0X2RhdGFba2V5X2luZGV4X3Rlc3RfZGF0YVtpXV0sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga2V5X2xlbik7Ci0gICAgICAgICAgICBpZiAocmV0ICE9IDApIHsKLSAgICAgICAgICAgICAgICBnb3RvIGV4aXQ7Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIHJldCA9IG1iZWR0bHNfZ2NtX3N0YXJ0cygmY3R4LCBNQkVEVExTX0dDTV9FTkNSWVBULAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGl2X3Rlc3RfZGF0YVtpdl9pbmRleF90ZXN0X2RhdGFbaV1dLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGl2X2xlbl90ZXN0X2RhdGFbaV0pOwotICAgICAgICAgICAgaWYgKHJldCAhPSAwKSB7Ci0gICAgICAgICAgICAgICAgZ290byBleGl0OwotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICByZXQgPSBtYmVkdGxzX2djbV91cGRhdGVfYWQoJmN0eCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhZGRpdGlvbmFsX3Rlc3RfZGF0YVthZGRfaW5kZXhfdGVzdF9kYXRhW2ldXSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhZGRfbGVuX3Rlc3RfZGF0YVtpXSk7Ci0gICAgICAgICAgICBpZiAocmV0ICE9IDApIHsKLSAgICAgICAgICAgICAgICBnb3RvIGV4aXQ7Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIGlmIChwdF9sZW5fdGVzdF9kYXRhW2ldID4gMzIpIHsKLSAgICAgICAgICAgICAgICBzaXplX3QgcmVzdF9sZW4gPSBwdF9sZW5fdGVzdF9kYXRhW2ldIC0gMzI7Ci0gICAgICAgICAgICAgICAgcmV0ID0gbWJlZHRsc19nY21fdXBkYXRlKCZjdHgsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB0X3Rlc3RfZGF0YVtwdF9pbmRleF90ZXN0X2RhdGFbaV1dLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAzMiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnVmLCBzaXplb2YoYnVmKSwgJm9sZW4pOwotICAgICAgICAgICAgICAgIGlmIChyZXQgIT0gMCkgewotICAgICAgICAgICAgICAgICAgICBnb3RvIGV4aXQ7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIGlmIChvbGVuICE9IDMyKSB7Ci0gICAgICAgICAgICAgICAgICAgIGdvdG8gZXhpdDsKLSAgICAgICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgICAgICByZXQgPSBtYmVkdGxzX2djbV91cGRhdGUoJmN0eCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHRfdGVzdF9kYXRhW3B0X2luZGV4X3Rlc3RfZGF0YVtpXV0gKyAzMiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzdF9sZW4sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ1ZiArIDMyLCBzaXplb2YoYnVmKSAtIDMyLCAmb2xlbik7Ci0gICAgICAgICAgICAgICAgaWYgKHJldCAhPSAwKSB7Ci0gICAgICAgICAgICAgICAgICAgIGdvdG8gZXhpdDsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgaWYgKG9sZW4gIT0gcmVzdF9sZW4pIHsKLSAgICAgICAgICAgICAgICAgICAgZ290byBleGl0OwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgcmV0ID0gbWJlZHRsc19nY21fdXBkYXRlKCZjdHgsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB0X3Rlc3RfZGF0YVtwdF9pbmRleF90ZXN0X2RhdGFbaV1dLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwdF9sZW5fdGVzdF9kYXRhW2ldLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBidWYsIHNpemVvZihidWYpLCAmb2xlbik7Ci0gICAgICAgICAgICAgICAgaWYgKHJldCAhPSAwKSB7Ci0gICAgICAgICAgICAgICAgICAgIGdvdG8gZXhpdDsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgaWYgKG9sZW4gIT0gcHRfbGVuX3Rlc3RfZGF0YVtpXSkgewotICAgICAgICAgICAgICAgICAgICBnb3RvIGV4aXQ7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICByZXQgPSBtYmVkdGxzX2djbV9maW5pc2goJmN0eCwgTlVMTCwgMCwgJm9sZW4sIHRhZ19idWYsIDE2KTsKLSAgICAgICAgICAgIGlmIChyZXQgIT0gMCkgewotICAgICAgICAgICAgICAgIGdvdG8gZXhpdDsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgaWYgKG1lbWNtcChidWYsIGN0X3Rlc3RfZGF0YVtqICogNiArIGldLAotICAgICAgICAgICAgICAgICAgICAgICBwdF9sZW5fdGVzdF9kYXRhW2ldKSAhPSAwIHx8Ci0gICAgICAgICAgICAgICAgbWVtY21wKHRhZ19idWYsIHRhZ190ZXN0X2RhdGFbaiAqIDYgKyBpXSwgMTYpICE9IDApIHsKLSAgICAgICAgICAgICAgICByZXQgPSAxOwotICAgICAgICAgICAgICAgIGdvdG8gZXhpdDsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgbWJlZHRsc19nY21fZnJlZSgmY3R4KTsKLQotICAgICAgICAgICAgaWYgKHZlcmJvc2UgIT0gMCkgewotICAgICAgICAgICAgICAgIG1iZWR0bHNfcHJpbnRmKCJwYXNzZWRcbiIpOwotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICBtYmVkdGxzX2djbV9pbml0KCZjdHgpOwotCi0gICAgICAgICAgICBpZiAodmVyYm9zZSAhPSAwKSB7Ci0gICAgICAgICAgICAgICAgbWJlZHRsc19wcmludGYoIiAgQUVTLUdDTS0lM2QgIyVkIHNwbGl0ICglcyk6ICIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga2V5X2xlbiwgaSwgImRlYyIpOwotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICByZXQgPSBtYmVkdGxzX2djbV9zZXRrZXkoJmN0eCwgY2lwaGVyLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtleV90ZXN0X2RhdGFba2V5X2luZGV4X3Rlc3RfZGF0YVtpXV0sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga2V5X2xlbik7Ci0gICAgICAgICAgICBpZiAocmV0ICE9IDApIHsKLSAgICAgICAgICAgICAgICBnb3RvIGV4aXQ7Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIHJldCA9IG1iZWR0bHNfZ2NtX3N0YXJ0cygmY3R4LCBNQkVEVExTX0dDTV9ERUNSWVBULAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGl2X3Rlc3RfZGF0YVtpdl9pbmRleF90ZXN0X2RhdGFbaV1dLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGl2X2xlbl90ZXN0X2RhdGFbaV0pOwotICAgICAgICAgICAgaWYgKHJldCAhPSAwKSB7Ci0gICAgICAgICAgICAgICAgZ290byBleGl0OwotICAgICAgICAgICAgfQotICAgICAgICAgICAgcmV0ID0gbWJlZHRsc19nY21fdXBkYXRlX2FkKCZjdHgsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWRkaXRpb25hbF90ZXN0X2RhdGFbYWRkX2luZGV4X3Rlc3RfZGF0YVtpXV0sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWRkX2xlbl90ZXN0X2RhdGFbaV0pOwotICAgICAgICAgICAgaWYgKHJldCAhPSAwKSB7Ci0gICAgICAgICAgICAgICAgZ290byBleGl0OwotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICBpZiAocHRfbGVuX3Rlc3RfZGF0YVtpXSA+IDMyKSB7Ci0gICAgICAgICAgICAgICAgc2l6ZV90IHJlc3RfbGVuID0gcHRfbGVuX3Rlc3RfZGF0YVtpXSAtIDMyOwotICAgICAgICAgICAgICAgIHJldCA9IG1iZWR0bHNfZ2NtX3VwZGF0ZSgmY3R4LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdF90ZXN0X2RhdGFbaiAqIDYgKyBpXSwgMzIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ1Ziwgc2l6ZW9mKGJ1ZiksICZvbGVuKTsKLSAgICAgICAgICAgICAgICBpZiAocmV0ICE9IDApIHsKLSAgICAgICAgICAgICAgICAgICAgZ290byBleGl0OwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICBpZiAob2xlbiAhPSAzMikgewotICAgICAgICAgICAgICAgICAgICBnb3RvIGV4aXQ7Ci0gICAgICAgICAgICAgICAgfQotCi0gICAgICAgICAgICAgICAgcmV0ID0gbWJlZHRsc19nY21fdXBkYXRlKCZjdHgsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGN0X3Rlc3RfZGF0YVtqICogNiArIGldICsgMzIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3RfbGVuLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBidWYgKyAzMiwgc2l6ZW9mKGJ1ZikgLSAzMiwgJm9sZW4pOwotICAgICAgICAgICAgICAgIGlmIChyZXQgIT0gMCkgewotICAgICAgICAgICAgICAgICAgICBnb3RvIGV4aXQ7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIGlmIChvbGVuICE9IHJlc3RfbGVuKSB7Ci0gICAgICAgICAgICAgICAgICAgIGdvdG8gZXhpdDsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgIHJldCA9IG1iZWR0bHNfZ2NtX3VwZGF0ZSgmY3R4LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdF90ZXN0X2RhdGFbaiAqIDYgKyBpXSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHRfbGVuX3Rlc3RfZGF0YVtpXSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnVmLCBzaXplb2YoYnVmKSwgJm9sZW4pOwotICAgICAgICAgICAgICAgIGlmIChyZXQgIT0gMCkgewotICAgICAgICAgICAgICAgICAgICBnb3RvIGV4aXQ7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIGlmIChvbGVuICE9IHB0X2xlbl90ZXN0X2RhdGFbaV0pIHsKLSAgICAgICAgICAgICAgICAgICAgZ290byBleGl0OwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgcmV0ID0gbWJlZHRsc19nY21fZmluaXNoKCZjdHgsIE5VTEwsIDAsICZvbGVuLCB0YWdfYnVmLCAxNik7Ci0gICAgICAgICAgICBpZiAocmV0ICE9IDApIHsKLSAgICAgICAgICAgICAgICBnb3RvIGV4aXQ7Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIGlmIChtZW1jbXAoYnVmLCBwdF90ZXN0X2RhdGFbcHRfaW5kZXhfdGVzdF9kYXRhW2ldXSwKLSAgICAgICAgICAgICAgICAgICAgICAgcHRfbGVuX3Rlc3RfZGF0YVtpXSkgIT0gMCB8fAotICAgICAgICAgICAgICAgIG1lbWNtcCh0YWdfYnVmLCB0YWdfdGVzdF9kYXRhW2ogKiA2ICsgaV0sIDE2KSAhPSAwKSB7Ci0gICAgICAgICAgICAgICAgcmV0ID0gMTsKLSAgICAgICAgICAgICAgICBnb3RvIGV4aXQ7Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIG1iZWR0bHNfZ2NtX2ZyZWUoJmN0eCk7Ci0KLSAgICAgICAgICAgIGlmICh2ZXJib3NlICE9IDApIHsKLSAgICAgICAgICAgICAgICBtYmVkdGxzX3ByaW50ZigicGFzc2VkXG4iKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfQotICAgIH0KLQotICAgIGlmICh2ZXJib3NlICE9IDApIHsKLSAgICAgICAgbWJlZHRsc19wcmludGYoIlxuIik7Ci0gICAgfQotCi0gICAgcmV0ID0gMDsKLQotZXhpdDoKLSAgICBpZiAocmV0ICE9IDApIHsKLSAgICAgICAgaWYgKHZlcmJvc2UgIT0gMCkgewotICAgICAgICAgICAgbWJlZHRsc19wcmludGYoImZhaWxlZFxuIik7Ci0gICAgICAgIH0KLSAgICAgICAgbWJlZHRsc19nY21fZnJlZSgmY3R4KTsKLSAgICB9Ci0KLSAgICByZXR1cm4gcmV0OwotfQotCi0jZW5kaWYgLyogTUJFRFRMU19TRUxGX1RFU1QgJiYgTUJFRFRMU19BRVNfQyAqLwotCi0jZW5kaWYgLyogTUJFRFRMU19HQ01fQyAqLwpkaWZmIC0tZ2l0IGEvbGlicmFyeS9sbW90cy5jIGIvbGlicmFyeS9sbW90cy5jCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjNzA5MWI0Li4wMDAwMDAwCi0tLSBhL2xpYnJhcnkvbG1vdHMuYworKysgL2Rldi9udWxsCkBAIC0xLDc3OCArMCwwIEBACi0vKgotICogVGhlIExNLU9UUyBvbmUtdGltZSBwdWJsaWMta2V5IHNpZ25hdHVyZSBzY2hlbWUKLSAqCi0gKiBDb3B5cmlnaHQgVGhlIE1iZWQgVExTIENvbnRyaWJ1dG9ycwotICogIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wIE9SIEdQTC0yLjAtb3ItbGF0ZXIKLSAqLwotCi0vKgotICogIFRoZSBmb2xsb3dpbmcgc291cmNlcyB3ZXJlIHJlZmVyZW5jZWQgaW4gdGhlIGRlc2lnbiBvZiB0aGlzIGltcGxlbWVudGF0aW9uCi0gKiAgb2YgdGhlIExNLU9UUyBhbGdvcml0aG06Ci0gKgotICogIFsxXSBJRVRGIFJGQzg1NTQKLSAqICAgICAgRC4gTWNHcmV3LCBNLiBDdXJjaW8sIFMuRmx1aHJlcgotICogICAgICBodHRwczovL2RhdGF0cmFja2VyLmlldGYub3JnL2RvYy9odG1sL3JmYzg1NTQKLSAqCi0gKiAgWzJdIE5JU1QgU3BlY2lhbCBQdWJsaWNhdGlvbiA4MDAtMjA4Ci0gKiAgICAgIERhdmlkIEEuIENvb3BlciBldC4gYWwuCi0gKiAgICAgIGh0dHBzOi8vbnZscHVicy5uaXN0Lmdvdi9uaXN0cHVicy9TcGVjaWFsUHVibGljYXRpb25zL05JU1QuU1AuODAwLTIwOC5wZGYKLSAqLwotCi0jaW5jbHVkZSAiY29tbW9uLmgiCi0KLSNpZiBkZWZpbmVkKE1CRURUTFNfTE1TX0MpCi0KLSNpbmNsdWRlIDxzdHJpbmcuaD4KLQotI2luY2x1ZGUgImxtb3RzLmgiCi0KLSNpbmNsdWRlICJtYmVkdGxzL2xtcy5oIgotI2luY2x1ZGUgIm1iZWR0bHMvcGxhdGZvcm1fdXRpbC5oIgotI2luY2x1ZGUgIm1iZWR0bHMvZXJyb3IuaCIKLSNpbmNsdWRlICJwc2FfdXRpbF9pbnRlcm5hbC5oIgotCi0jaW5jbHVkZSAicHNhL2NyeXB0by5oIgotCi0vKiBEZWZpbmUgYSBsb2NhbCB0cmFuc2xhdGluZyBmdW5jdGlvbiB0byBzYXZlIGNvZGUgc2l6ZSBieSBub3QgdXNpbmcgdG9vIG1hbnkKLSAqIGFyZ3VtZW50cyBpbiBlYWNoIHRyYW5zbGF0aW5nIHBsYWNlLiAqLwotc3RhdGljIGludCBsb2NhbF9lcnJfdHJhbnNsYXRpb24ocHNhX3N0YXR1c190IHN0YXR1cykKLXsKLSAgICByZXR1cm4gcHNhX3N0YXR1c190b19tYmVkdGxzKHN0YXR1cywgcHNhX3RvX2xtc19lcnJvcnMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBUlJBWV9MRU5HVEgocHNhX3RvX2xtc19lcnJvcnMpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHNhX2dlbmVyaWNfc3RhdHVzX3RvX21iZWR0bHMpOwotfQotI2RlZmluZSBQU0FfVE9fTUJFRFRMU19FUlIoc3RhdHVzKSBsb2NhbF9lcnJfdHJhbnNsYXRpb24oc3RhdHVzKQotCi0jZGVmaW5lIFBVQkxJQ19LRVlfVFlQRV9PRkZTRVQgICAgICgwKQotI2RlZmluZSBQVUJMSUNfS0VZX0lfS0VZX0lEX09GRlNFVCAoUFVCTElDX0tFWV9UWVBFX09GRlNFVCArIFwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1CRURUTFNfTE1PVFNfVFlQRV9MRU4pCi0jZGVmaW5lIFBVQkxJQ19LRVlfUV9MRUFGX0lEX09GRlNFVCAoUFVCTElDX0tFWV9JX0tFWV9JRF9PRkZTRVQgKyBcCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTUJFRFRMU19MTU9UU19JX0tFWV9JRF9MRU4pCi0jZGVmaW5lIFBVQkxJQ19LRVlfS0VZX0hBU0hfT0ZGU0VUIChQVUJMSUNfS0VZX1FfTEVBRl9JRF9PRkZTRVQgKyBcCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNQkVEVExTX0xNT1RTX1FfTEVBRl9JRF9MRU4pCi0KLS8qIFdlIG9ubHkgc3VwcG9ydCBwYXJhbWV0ZXIgc2V0cyB0aGF0IHVzZSA4LWJpdCBkaWdpdHMsIGFzIGl0IGRvZXMgbm90IHJlcXVpcmUKLSAqIHRyYW5zbGF0aW9uIGxvZ2ljIGJldHdlZW4gZGlnaXRzIGFuZCBieXRlcyAqLwotI2RlZmluZSBXX1dJTlRFUk5JVFpfUEFSQU1FVEVSICg4dSkKLSNkZWZpbmUgQ0hFQ0tTVU1fTEVOICAgICAgICAgICAoMikKLSNkZWZpbmUgSV9ESUdJVF9JRFhfTEVOICAgICAgICAoMikKLSNkZWZpbmUgSl9IQVNIX0lEWF9MRU4gICAgICAgICAoMSkKLSNkZWZpbmUgRF9DT05TVF9MRU4gICAgICAgICAgICAoMikKLQotI2RlZmluZSBESUdJVF9NQVhfVkFMVUUgICAgICAgICgoMXUgPDwgV19XSU5URVJOSVRaX1BBUkFNRVRFUikgLSAxdSkKLQotI2RlZmluZSBEX0NPTlNUX0xFTiAgICAgICAgICAgICgyKQotc3RhdGljIGNvbnN0IHVuc2lnbmVkIGNoYXIgRF9QVUJMSUNfQ09OU1RBTlRfQllURVNbRF9DT05TVF9MRU5dID0geyAweDgwLCAweDgwIH07Ci1zdGF0aWMgY29uc3QgdW5zaWduZWQgY2hhciBEX01FU1NBR0VfQ09OU1RBTlRfQllURVNbRF9DT05TVF9MRU5dID0geyAweDgxLCAweDgxIH07Ci0KLSNpZiBkZWZpbmVkKE1CRURUTFNfVEVTVF9IT09LUykKLWludCAoKm1iZWR0bHNfbG1vdHNfc2lnbl9wcml2YXRlX2tleV9pbnZhbGlkYXRlZF9ob29rKSh1bnNpZ25lZCBjaGFyICopID0gTlVMTDsKLSNlbmRpZiAvKiBkZWZpbmVkKE1CRURUTFNfVEVTVF9IT09LUykgKi8KLQotLyogQ2FsY3VsYXRlIHRoZSBjaGVja3N1bSBkaWdpdHMgdGhhdCBhcmUgYXBwZW5kZWQgdG8gdGhlIGVuZCBvZiB0aGUgTE1PVFMgZGlnaXQKLSAqIHN0cmluZy4gU2VlIE5JU1QgU1A4MDAtMjA4IHNlY3Rpb24gMy4xIG9yIFJGQzg1NTQgQWxnb3JpdGhtIDIgZm9yIGRldGFpbHMgb2YKLSAqIHRoZSBjaGVja3N1bSBhbGdvcml0aG0uCi0gKgotICogIHBhcmFtcyAgICAgICAgICAgICAgVGhlIExNT1RTIHBhcmFtZXRlciBzZXQsIEkgYW5kIHEgdmFsdWVzIHdoaWNoCi0gKiAgICAgICAgICAgICAgICAgICAgICBkZXNjcmliZSB0aGUga2V5IGJlaW5nIHVzZWQuCi0gKgotICogIGRpZ2VzdCAgICAgICAgICAgICAgVGhlIGRpZ2l0IHN0cmluZyB0byBjcmVhdGUgdGhlIGRpZ2VzdCBmcm9tLiBBcwotICogICAgICAgICAgICAgICAgICAgICAgdGhpcyBkb2VzIG5vdCBjb250YWluIGEgY2hlY2tzdW0sIGl0IGlzIHRoZSBzYW1lCi0gKiAgICAgICAgICAgICAgICAgICAgICBzaXplIGFzIGEgaGFzaCBvdXRwdXQuCi0gKi8KLXN0YXRpYyB1bnNpZ25lZCBzaG9ydCBsbW90c19jaGVja3N1bV9jYWxjdWxhdGUoY29uc3QgbWJlZHRsc19sbW90c19wYXJhbWV0ZXJzX3QgKnBhcmFtcywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdW5zaWduZWQgY2hhciAqZGlnZXN0KQotewotICAgIHNpemVfdCBpZHg7Ci0gICAgdW5zaWduZWQgc3VtID0gMDsKLQotICAgIGZvciAoaWR4ID0gMDsgaWR4IDwgTUJFRFRMU19MTU9UU19OX0hBU0hfTEVOKHBhcmFtcy0+dHlwZSk7IGlkeCsrKSB7Ci0gICAgICAgIHN1bSArPSBESUdJVF9NQVhfVkFMVUUgLSBkaWdlc3RbaWR4XTsKLSAgICB9Ci0KLSAgICByZXR1cm4gc3VtOwotfQotCi0vKiBDcmVhdGUgdGhlIHN0cmluZyBvZiBkaWdlc3QgZGlnaXRzIChpbiB0aGUgYmFzZSBkZXRlcm1pbmVkIGJ5IHRoZSBXaW50ZXJuaXR6Ci0gKiBwYXJhbWV0ZXIgd2l0aCB0aGUgY2hlY2tzdW0gYXBwZW5kZWQgdG8gdGhlIGVuZCAoUSB8fCBja3NtKFEpKS4gU2VlIE5JU1QKLSAqIFNQODAwLTIwOCBzZWN0aW9uIDMuMSBvciBSRkM4NTU0IEFsZ29yaXRobSAzIHN0ZXAgNSAoYWxzbyB1c2VkIGluIEFsZ29yaXRobQotICogNGIgc3RlcCAzKSBmb3IgZGV0YWlscy4KLSAqCi0gKiAgcGFyYW1zICAgICAgICAgICAgICBUaGUgTE1PVFMgcGFyYW1ldGVyIHNldCwgSSBhbmQgcSB2YWx1ZXMgd2hpY2gKLSAqICAgICAgICAgICAgICAgICAgICAgIGRlc2NyaWJlIHRoZSBrZXkgYmVpbmcgdXNlZC4KLSAqCi0gKiAgbXNnICAgICAgICAgICAgICAgICBUaGUgbWVzc2FnZSB0aGF0IHdpbGwgYmUgaGFzaGVkIHRvIGNyZWF0ZSB0aGUKLSAqICAgICAgICAgICAgICAgICAgICAgIGRpZ2VzdC4KLSAqCi0gKiAgbXNnX3NpemUgICAgICAgICAgICBUaGUgc2l6ZSBvZiB0aGUgbWVzc2FnZS4KLSAqCi0gKiAgQ19yYW5kb21fdmFsdWUgICAgICBUaGUgcmFuZG9tIHZhbHVlIHRoYXQgd2lsbCBiZSBjb21iaW5lZCB3aXRoIHRoZQotICogICAgICAgICAgICAgICAgICAgICAgbWVzc2FnZSBkaWdlc3QuIFRoaXMgaXMgYWx3YXlzIHRoZSBzYW1lIHNpemUgYXMgYQotICogICAgICAgICAgICAgICAgICAgICAgaGFzaCBvdXRwdXQgZm9yIHdoaWNoZXZlciBoYXNoIGFsZ29yaXRobSBpcwotICogICAgICAgICAgICAgICAgICAgICAgZGV0ZXJtaW5lZCBieSB0aGUgcGFyYW1ldGVyIHNldC4KLSAqCi0gKiAgb3V0cHV0ICAgICAgICAgICAgICBBbiBvdXRwdXQgY29udGFpbmluZyB0aGUgZGlnaXQgc3RyaW5nICgrCi0gKiAgICAgICAgICAgICAgICAgICAgICBjaGVja3N1bSkgb2YgbGVuZ3RoIFAgZGlnaXRzIChpbiB0aGUgY2FzZSBvZgotICogICAgICAgICAgICAgICAgICAgICAgTUJFRFRMU19MTU9UU19TSEEyNTZfTjMyX1c4LCB0aGlzIG1lYW5zIGl0IGlzIG9mCi0gKiAgICAgICAgICAgICAgICAgICAgICBzaXplIFAgYnl0ZXMpLgotICovCi1zdGF0aWMgaW50IGNyZWF0ZV9kaWdpdF9hcnJheV93aXRoX2NoZWNrc3VtKGNvbnN0IG1iZWR0bHNfbG1vdHNfcGFyYW1ldGVyc190ICpwYXJhbXMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgKm1zZywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IG1zZ19sZW4sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgKkNfcmFuZG9tX3ZhbHVlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBjaGFyICpvdXQpCi17Ci0gICAgcHNhX2hhc2hfb3BlcmF0aW9uX3Qgb3AgPSBQU0FfSEFTSF9PUEVSQVRJT05fSU5JVDsKLSAgICBwc2Ffc3RhdHVzX3Qgc3RhdHVzID0gUFNBX0VSUk9SX0NPUlJVUFRJT05fREVURUNURUQ7Ci0gICAgc2l6ZV90IG91dHB1dF9oYXNoX2xlbjsKLSAgICB1bnNpZ25lZCBzaG9ydCBjaGVja3N1bTsKLQotICAgIHN0YXR1cyA9IHBzYV9oYXNoX3NldHVwKCZvcCwgUFNBX0FMR19TSEFfMjU2KTsKLSAgICBpZiAoc3RhdHVzICE9IFBTQV9TVUNDRVNTKSB7Ci0gICAgICAgIGdvdG8gZXhpdDsKLSAgICB9Ci0KLSAgICBzdGF0dXMgPSBwc2FfaGFzaF91cGRhdGUoJm9wLCBwYXJhbXMtPklfa2V5X2lkZW50aWZpZXIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1CRURUTFNfTE1PVFNfSV9LRVlfSURfTEVOKTsKLSAgICBpZiAoc3RhdHVzICE9IFBTQV9TVUNDRVNTKSB7Ci0gICAgICAgIGdvdG8gZXhpdDsKLSAgICB9Ci0KLSAgICBzdGF0dXMgPSBwc2FfaGFzaF91cGRhdGUoJm9wLCBwYXJhbXMtPnFfbGVhZl9pZGVudGlmaWVyLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNQkVEVExTX0xNT1RTX1FfTEVBRl9JRF9MRU4pOwotICAgIGlmIChzdGF0dXMgIT0gUFNBX1NVQ0NFU1MpIHsKLSAgICAgICAgZ290byBleGl0OwotICAgIH0KLQotICAgIHN0YXR1cyA9IHBzYV9oYXNoX3VwZGF0ZSgmb3AsIERfTUVTU0FHRV9DT05TVEFOVF9CWVRFUywgRF9DT05TVF9MRU4pOwotICAgIGlmIChzdGF0dXMgIT0gUFNBX1NVQ0NFU1MpIHsKLSAgICAgICAgZ290byBleGl0OwotICAgIH0KLQotICAgIHN0YXR1cyA9IHBzYV9oYXNoX3VwZGF0ZSgmb3AsIENfcmFuZG9tX3ZhbHVlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNQkVEVExTX0xNT1RTX0NfUkFORE9NX1ZBTFVFX0xFTihwYXJhbXMtPnR5cGUpKTsKLSAgICBpZiAoc3RhdHVzICE9IFBTQV9TVUNDRVNTKSB7Ci0gICAgICAgIGdvdG8gZXhpdDsKLSAgICB9Ci0KLSAgICBzdGF0dXMgPSBwc2FfaGFzaF91cGRhdGUoJm9wLCBtc2csIG1zZ19sZW4pOwotICAgIGlmIChzdGF0dXMgIT0gUFNBX1NVQ0NFU1MpIHsKLSAgICAgICAgZ290byBleGl0OwotICAgIH0KLQotICAgIHN0YXR1cyA9IHBzYV9oYXNoX2ZpbmlzaCgmb3AsIG91dCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTUJFRFRMU19MTU9UU19OX0hBU0hfTEVOKHBhcmFtcy0+dHlwZSksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICZvdXRwdXRfaGFzaF9sZW4pOwotICAgIGlmIChzdGF0dXMgIT0gUFNBX1NVQ0NFU1MpIHsKLSAgICAgICAgZ290byBleGl0OwotICAgIH0KLQotICAgIGNoZWNrc3VtID0gbG1vdHNfY2hlY2tzdW1fY2FsY3VsYXRlKHBhcmFtcywgb3V0KTsKLSAgICBNQkVEVExTX1BVVF9VSU5UMTZfQkUoY2hlY2tzdW0sIG91dCwgTUJFRFRMU19MTU9UU19OX0hBU0hfTEVOKHBhcmFtcy0+dHlwZSkpOwotCi1leGl0OgotICAgIHBzYV9oYXNoX2Fib3J0KCZvcCk7Ci0KLSAgICByZXR1cm4gUFNBX1RPX01CRURUTFNfRVJSKHN0YXR1cyk7Ci19Ci0KLS8qIEhhc2ggZWFjaCBlbGVtZW50IG9mIHRoZSBzdHJpbmcgb2YgZGlnaXRzICgrIGNoZWNrc3VtKSwgcHJvZHVjaW5nIGEgaGFzaAotICogb3V0cHV0IGZvciBlYWNoIGVsZW1lbnQuIFRoaXMgaXMgdXNlZCBpbiBzZXZlcmFsIHBsYWNlcyAoYnkgdmFyeWluZyB0aGUKLSAqIGhhc2hfaWR4X21pbi9tYXhfdmFsdWVzKSBpbiBvcmRlciB0byBjYWxjdWxhdGUgYSBwdWJsaWMga2V5IGZyb20gYSBwcml2YXRlCi0gKiBrZXkgKFJGQzg1NTQgQWxnb3JpdGhtIDEgc3RlcCA0KSwgaW4gb3JkZXIgdG8gc2lnbiBhIG1lc3NhZ2UgKFJGQzg1NTQKLSAqIEFsZ29yaXRobSAzIHN0ZXAgNSksIGFuZCB0byBjYWxjdWxhdGUgYSBwdWJsaWMga2V5IGNhbmRpZGF0ZSBmcm9tIGEKLSAqIHNpZ25hdHVyZSBhbmQgbWVzc2FnZSAoUkZDODU1NCBBbGdvcml0aG0gNGIgc3RlcCAzKS4KLSAqCi0gKiAgcGFyYW1zICAgICAgICAgICAgICBUaGUgTE1PVFMgcGFyYW1ldGVyIHNldCwgSSBhbmQgcSB2YWx1ZXMgd2hpY2gKLSAqICAgICAgICAgICAgICAgICAgICAgIGRlc2NyaWJlIHRoZSBrZXkgYmVpbmcgdXNlZC4KLSAqCi0gKiAgeF9kaWdpdF9hcnJheSAgICAgICBUaGUgYXJyYXkgb2YgZGlnaXRzIChvZiBzaXplIFAsIDM0IGluIHRoZSBjYXNlIG9mCi0gKiAgICAgICAgICAgICAgICAgICAgICBNQkVEVExTX0xNT1RTX1NIQTI1Nl9OMzJfVzgpLgotICoKLSAqICBoYXNoX2lkeF9taW5fdmFsdWVzIEFuIGFycmF5IG9mIHRoZSBzdGFydGluZyB2YWx1ZXMgb2YgdGhlIGogaXRlcmF0b3IKLSAqICAgICAgICAgICAgICAgICAgICAgIGZvciBlYWNoIG9mIHRoZSBtZW1iZXJzIG9mIHRoZSBkaWdpdCBhcnJheS4gSWYKLSAqICAgICAgICAgICAgICAgICAgICAgIHRoaXMgdmFsdWUgaW4gTlVMTCwgdGhlbiBhbGwgaXRlcmF0b3JzIHdpbGwgc3RhcnQKLSAqICAgICAgICAgICAgICAgICAgICAgIGF0IDAuCi0gKgotICogIGhhc2hfaWR4X21heF92YWx1ZXMgQW4gYXJyYXkgb2YgdGhlIHVwcGVyIGJvdW5kIHZhbHVlcyBvZiB0aGUgagotICogICAgICAgICAgICAgICAgICAgICAgaXRlcmF0b3IgZm9yIGVhY2ggb2YgdGhlIG1lbWJlcnMgb2YgdGhlIGRpZ2l0Ci0gKiAgICAgICAgICAgICAgICAgICAgICBhcnJheS4gSWYgdGhpcyB2YWx1ZSBpbiBOVUxMLCB0aGVuIGl0ZXJhdG9yIGlzCi0gKiAgICAgICAgICAgICAgICAgICAgICBib3VuZGVkIHRvIGJlIGxlc3MgdGhhbiAyXncgLSAxICgyNTUgaW4gdGhlIGNhc2UKLSAqICAgICAgICAgICAgICAgICAgICAgIG9mIE1CRURUTFNfTE1PVFNfU0hBMjU2X04zMl9XOCkKLSAqCi0gKiAgb3V0cHV0ICAgICAgICAgICAgICBBbiBhcnJheSBjb250YWluaW5nIGEgaGFzaCBvdXRwdXQgZm9yIGVhY2ggbWVtYmVyCi0gKiAgICAgICAgICAgICAgICAgICAgICBvZiB0aGUgZGlnaXQgc3RyaW5nIFAuIEluIHRoZSBjYXNlIG9mCi0gKiAgICAgICAgICAgICAgICAgICAgICBNQkVEVExTX0xNT1RTX1NIQTI1Nl9OMzJfVzgsIHRoaXMgaXMgb2Ygc2l6ZSAzMiAqCi0gKiAgICAgICAgICAgICAgICAgICAgICAzNC4KLSAqLwotc3RhdGljIGludCBoYXNoX2RpZ2l0X2FycmF5KGNvbnN0IG1iZWR0bHNfbG1vdHNfcGFyYW1ldGVyc190ICpwYXJhbXMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdW5zaWduZWQgY2hhciAqeF9kaWdpdF9hcnJheSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1bnNpZ25lZCBjaGFyICpoYXNoX2lkeF9taW5fdmFsdWVzLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgKmhhc2hfaWR4X21heF92YWx1ZXMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgY2hhciAqb3V0cHV0KQotewotICAgIHVuc2lnbmVkIGludCBpX2RpZ2l0X2lkeDsKLSAgICB1bnNpZ25lZCBjaGFyIGlfZGlnaXRfaWR4X2J5dGVzW0lfRElHSVRfSURYX0xFTl07Ci0gICAgdW5zaWduZWQgaW50IGpfaGFzaF9pZHg7Ci0gICAgdW5zaWduZWQgY2hhciBqX2hhc2hfaWR4X2J5dGVzW0pfSEFTSF9JRFhfTEVOXTsKLSAgICB1bnNpZ25lZCBpbnQgal9oYXNoX2lkeF9taW47Ci0gICAgdW5zaWduZWQgaW50IGpfaGFzaF9pZHhfbWF4OwotICAgIHBzYV9oYXNoX29wZXJhdGlvbl90IG9wID0gUFNBX0hBU0hfT1BFUkFUSU9OX0lOSVQ7Ci0gICAgcHNhX3N0YXR1c190IHN0YXR1cyA9IFBTQV9FUlJPUl9DT1JSVVBUSU9OX0RFVEVDVEVEOwotICAgIHNpemVfdCBvdXRwdXRfaGFzaF9sZW47Ci0gICAgdW5zaWduZWQgY2hhciB0bXBfaGFzaFtNQkVEVExTX0xNT1RTX05fSEFTSF9MRU5fTUFYXTsKLQotICAgIGZvciAoaV9kaWdpdF9pZHggPSAwOwotICAgICAgICAgaV9kaWdpdF9pZHggPCBNQkVEVExTX0xNT1RTX1BfU0lHX0RJR0lUX0NPVU5UKHBhcmFtcy0+dHlwZSk7Ci0gICAgICAgICBpX2RpZ2l0X2lkeCsrKSB7Ci0KLSAgICAgICAgbWVtY3B5KHRtcF9oYXNoLAotICAgICAgICAgICAgICAgJnhfZGlnaXRfYXJyYXlbaV9kaWdpdF9pZHggKiBNQkVEVExTX0xNT1RTX05fSEFTSF9MRU4ocGFyYW1zLT50eXBlKV0sCi0gICAgICAgICAgICAgICBNQkVEVExTX0xNT1RTX05fSEFTSF9MRU4ocGFyYW1zLT50eXBlKSk7Ci0KLSAgICAgICAgal9oYXNoX2lkeF9taW4gPSBoYXNoX2lkeF9taW5fdmFsdWVzICE9IE5VTEwgPwotICAgICAgICAgICAgICAgICAgICAgICAgIGhhc2hfaWR4X21pbl92YWx1ZXNbaV9kaWdpdF9pZHhdIDogMDsKLSAgICAgICAgal9oYXNoX2lkeF9tYXggPSBoYXNoX2lkeF9tYXhfdmFsdWVzICE9IE5VTEwgPwotICAgICAgICAgICAgICAgICAgICAgICAgIGhhc2hfaWR4X21heF92YWx1ZXNbaV9kaWdpdF9pZHhdIDogRElHSVRfTUFYX1ZBTFVFOwotCi0gICAgICAgIGZvciAoal9oYXNoX2lkeCA9IGpfaGFzaF9pZHhfbWluOwotICAgICAgICAgICAgIGpfaGFzaF9pZHggPCBqX2hhc2hfaWR4X21heDsKLSAgICAgICAgICAgICBqX2hhc2hfaWR4KyspIHsKLSAgICAgICAgICAgIHN0YXR1cyA9IHBzYV9oYXNoX3NldHVwKCZvcCwgUFNBX0FMR19TSEFfMjU2KTsKLSAgICAgICAgICAgIGlmIChzdGF0dXMgIT0gUFNBX1NVQ0NFU1MpIHsKLSAgICAgICAgICAgICAgICBnb3RvIGV4aXQ7Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIHN0YXR1cyA9IHBzYV9oYXNoX3VwZGF0ZSgmb3AsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFyYW1zLT5JX2tleV9pZGVudGlmaWVyLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1CRURUTFNfTE1PVFNfSV9LRVlfSURfTEVOKTsKLSAgICAgICAgICAgIGlmIChzdGF0dXMgIT0gUFNBX1NVQ0NFU1MpIHsKLSAgICAgICAgICAgICAgICBnb3RvIGV4aXQ7Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIHN0YXR1cyA9IHBzYV9oYXNoX3VwZGF0ZSgmb3AsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFyYW1zLT5xX2xlYWZfaWRlbnRpZmllciwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNQkVEVExTX0xNT1RTX1FfTEVBRl9JRF9MRU4pOwotICAgICAgICAgICAgaWYgKHN0YXR1cyAhPSBQU0FfU1VDQ0VTUykgewotICAgICAgICAgICAgICAgIGdvdG8gZXhpdDsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgTUJFRFRMU19QVVRfVUlOVDE2X0JFKGlfZGlnaXRfaWR4LCBpX2RpZ2l0X2lkeF9ieXRlcywgMCk7Ci0gICAgICAgICAgICBzdGF0dXMgPSBwc2FfaGFzaF91cGRhdGUoJm9wLCBpX2RpZ2l0X2lkeF9ieXRlcywgSV9ESUdJVF9JRFhfTEVOKTsKLSAgICAgICAgICAgIGlmIChzdGF0dXMgIT0gUFNBX1NVQ0NFU1MpIHsKLSAgICAgICAgICAgICAgICBnb3RvIGV4aXQ7Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIGpfaGFzaF9pZHhfYnl0ZXNbMF0gPSAodWludDhfdCkgal9oYXNoX2lkeDsKLSAgICAgICAgICAgIHN0YXR1cyA9IHBzYV9oYXNoX3VwZGF0ZSgmb3AsIGpfaGFzaF9pZHhfYnl0ZXMsIEpfSEFTSF9JRFhfTEVOKTsKLSAgICAgICAgICAgIGlmIChzdGF0dXMgIT0gUFNBX1NVQ0NFU1MpIHsKLSAgICAgICAgICAgICAgICBnb3RvIGV4aXQ7Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIHN0YXR1cyA9IHBzYV9oYXNoX3VwZGF0ZSgmb3AsIHRtcF9oYXNoLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1CRURUTFNfTE1PVFNfTl9IQVNIX0xFTihwYXJhbXMtPnR5cGUpKTsKLSAgICAgICAgICAgIGlmIChzdGF0dXMgIT0gUFNBX1NVQ0NFU1MpIHsKLSAgICAgICAgICAgICAgICBnb3RvIGV4aXQ7Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIHN0YXR1cyA9IHBzYV9oYXNoX2ZpbmlzaCgmb3AsIHRtcF9oYXNoLCBzaXplb2YodG1wX2hhc2gpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZvdXRwdXRfaGFzaF9sZW4pOwotICAgICAgICAgICAgaWYgKHN0YXR1cyAhPSBQU0FfU1VDQ0VTUykgewotICAgICAgICAgICAgICAgIGdvdG8gZXhpdDsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgcHNhX2hhc2hfYWJvcnQoJm9wKTsKLSAgICAgICAgfQotCi0gICAgICAgIG1lbWNweSgmb3V0cHV0W2lfZGlnaXRfaWR4ICogTUJFRFRMU19MTU9UU19OX0hBU0hfTEVOKHBhcmFtcy0+dHlwZSldLAotICAgICAgICAgICAgICAgdG1wX2hhc2gsIE1CRURUTFNfTE1PVFNfTl9IQVNIX0xFTihwYXJhbXMtPnR5cGUpKTsKLSAgICB9Ci0KLWV4aXQ6Ci0gICAgcHNhX2hhc2hfYWJvcnQoJm9wKTsKLSAgICBtYmVkdGxzX3BsYXRmb3JtX3plcm9pemUodG1wX2hhc2gsIHNpemVvZih0bXBfaGFzaCkpOwotCi0gICAgcmV0dXJuIFBTQV9UT19NQkVEVExTX0VSUihzdGF0dXMpOwotfQotCi0vKiBDb21iaW5lIHRoZSBoYXNoZXMgb2YgdGhlIGRpZ2l0IGFycmF5IGludG8gYSBwdWJsaWMga2V5LiBUaGlzIGlzIHVzZWQgaW4KLSAqIGluIG9yZGVyIHRvIGNhbGN1bGF0ZSBhIHB1YmxpYyBrZXkgZnJvbSBhIHByaXZhdGUga2V5IChSRkM4NTU0IEFsZ29yaXRobSAxCi0gKiBzdGVwIDQpLCBhbmQgdG8gY2FsY3VsYXRlIGEgcHVibGljIGtleSBjYW5kaWRhdGUgZnJvbSBhIHNpZ25hdHVyZSBhbmQgbWVzc2FnZQotICogKFJGQzg1NTQgQWxnb3JpdGhtIDRiIHN0ZXAgMykuCi0gKgotICogIHBhcmFtcyAgICAgICAgICAgVGhlIExNT1RTIHBhcmFtZXRlciBzZXQsIEkgYW5kIHEgdmFsdWVzIHdoaWNoIGRlc2NyaWJlCi0gKiAgICAgICAgICAgICAgICAgICB0aGUga2V5IGJlaW5nIHVzZWQuCi0gKiAgeV9oYXNoZWRfZGlnaXRzICBUaGUgYXJyYXkgb2YgaGFzaGVzLCBvbmUgaGFzaCBmb3IgZWFjaCBkaWdpdCBvZiB0aGUKLSAqICAgICAgICAgICAgICAgICAgIHN5bWJvbCBhcnJheSAod2hpY2ggaXMgb2Ygc2l6ZSBQLCAzNCBpbiB0aGUgY2FzZSBvZgotICogICAgICAgICAgICAgICAgICAgTUJFRFRMU19MTU9UU19TSEEyNTZfTjMyX1c4KQotICoKLSAqICBwdWJfa2V5ICAgICAgICAgIFRoZSBvdXRwdXQgcHVibGljIGtleSAob3IgY2FuZGlkYXRlIHB1YmxpYyBrZXkgaW4KLSAqICAgICAgICAgICAgICAgICAgIGNhc2UgdGhpcyBpcyBiZWluZyBydW4gYXMgcGFydCBvZiBzaWduYXR1cmUKLSAqICAgICAgICAgICAgICAgICAgIHZlcmlmaWNhdGlvbiksIGluIHRoZSBmb3JtIG9mIGEgaGFzaCBvdXRwdXQuCi0gKi8KLXN0YXRpYyBpbnQgcHVibGljX2tleV9mcm9tX2hhc2hlZF9kaWdpdF9hcnJheShjb25zdCBtYmVkdGxzX2xtb3RzX3BhcmFtZXRlcnNfdCAqcGFyYW1zLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgKnlfaGFzaGVkX2RpZ2l0cywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBjaGFyICpwdWJfa2V5KQotewotICAgIHBzYV9oYXNoX29wZXJhdGlvbl90IG9wID0gUFNBX0hBU0hfT1BFUkFUSU9OX0lOSVQ7Ci0gICAgcHNhX3N0YXR1c190IHN0YXR1cyA9IFBTQV9FUlJPUl9DT1JSVVBUSU9OX0RFVEVDVEVEOwotICAgIHNpemVfdCBvdXRwdXRfaGFzaF9sZW47Ci0KLSAgICBzdGF0dXMgPSBwc2FfaGFzaF9zZXR1cCgmb3AsIFBTQV9BTEdfU0hBXzI1Nik7Ci0gICAgaWYgKHN0YXR1cyAhPSBQU0FfU1VDQ0VTUykgewotICAgICAgICBnb3RvIGV4aXQ7Ci0gICAgfQotCi0gICAgc3RhdHVzID0gcHNhX2hhc2hfdXBkYXRlKCZvcCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFyYW1zLT5JX2tleV9pZGVudGlmaWVyLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNQkVEVExTX0xNT1RTX0lfS0VZX0lEX0xFTik7Ci0gICAgaWYgKHN0YXR1cyAhPSBQU0FfU1VDQ0VTUykgewotICAgICAgICBnb3RvIGV4aXQ7Ci0gICAgfQotCi0gICAgc3RhdHVzID0gcHNhX2hhc2hfdXBkYXRlKCZvcCwgcGFyYW1zLT5xX2xlYWZfaWRlbnRpZmllciwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTUJFRFRMU19MTU9UU19RX0xFQUZfSURfTEVOKTsKLSAgICBpZiAoc3RhdHVzICE9IFBTQV9TVUNDRVNTKSB7Ci0gICAgICAgIGdvdG8gZXhpdDsKLSAgICB9Ci0KLSAgICBzdGF0dXMgPSBwc2FfaGFzaF91cGRhdGUoJm9wLCBEX1BVQkxJQ19DT05TVEFOVF9CWVRFUywgRF9DT05TVF9MRU4pOwotICAgIGlmIChzdGF0dXMgIT0gUFNBX1NVQ0NFU1MpIHsKLSAgICAgICAgZ290byBleGl0OwotICAgIH0KLQotICAgIHN0YXR1cyA9IHBzYV9oYXNoX3VwZGF0ZSgmb3AsIHlfaGFzaGVkX2RpZ2l0cywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTUJFRFRMU19MTU9UU19QX1NJR19ESUdJVF9DT1VOVChwYXJhbXMtPnR5cGUpICoKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTUJFRFRMU19MTU9UU19OX0hBU0hfTEVOKHBhcmFtcy0+dHlwZSkpOwotICAgIGlmIChzdGF0dXMgIT0gUFNBX1NVQ0NFU1MpIHsKLSAgICAgICAgZ290byBleGl0OwotICAgIH0KLQotICAgIHN0YXR1cyA9IHBzYV9oYXNoX2ZpbmlzaCgmb3AsIHB1Yl9rZXksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1CRURUTFNfTE1PVFNfTl9IQVNIX0xFTihwYXJhbXMtPnR5cGUpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmb3V0cHV0X2hhc2hfbGVuKTsKLSAgICBpZiAoc3RhdHVzICE9IFBTQV9TVUNDRVNTKSB7Ci0KLWV4aXQ6Ci0gICAgICAgIHBzYV9oYXNoX2Fib3J0KCZvcCk7Ci0gICAgfQotCi0gICAgcmV0dXJuIFBTQV9UT19NQkVEVExTX0VSUihzdGF0dXMpOwotfQotCi0jaWYgIWRlZmluZWQoTUJFRFRMU19ERVBSRUNBVEVEX1JFTU9WRUQpCi1pbnQgbWJlZHRsc19sbXNfZXJyb3JfZnJvbV9wc2EocHNhX3N0YXR1c190IHN0YXR1cykKLXsKLSAgICBzd2l0Y2ggKHN0YXR1cykgewotICAgICAgICBjYXNlIFBTQV9TVUNDRVNTOgotICAgICAgICAgICAgcmV0dXJuIDA7Ci0gICAgICAgIGNhc2UgUFNBX0VSUk9SX0hBUkRXQVJFX0ZBSUxVUkU6Ci0gICAgICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfUExBVEZPUk1fSFdfQUNDRUxfRkFJTEVEOwotICAgICAgICBjYXNlIFBTQV9FUlJPUl9OT1RfU1VQUE9SVEVEOgotICAgICAgICAgICAgcmV0dXJuIE1CRURUTFNfRVJSX1BMQVRGT1JNX0ZFQVRVUkVfVU5TVVBQT1JURUQ7Ci0gICAgICAgIGNhc2UgUFNBX0VSUk9SX0JVRkZFUl9UT09fU01BTEw6Ci0gICAgICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfTE1TX0JVRkZFUl9UT09fU01BTEw7Ci0gICAgICAgIGNhc2UgUFNBX0VSUk9SX0lOVkFMSURfQVJHVU1FTlQ6Ci0gICAgICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfTE1TX0JBRF9JTlBVVF9EQVRBOwotICAgICAgICBkZWZhdWx0OgotICAgICAgICAgICAgcmV0dXJuIE1CRURUTFNfRVJSX0VSUk9SX0dFTkVSSUNfRVJST1I7Ci0gICAgfQotfQotI2VuZGlmIC8qICFNQkVEVExTX0RFUFJFQ0FURURfUkVNT1ZFRCAqLwotCi12b2lkIG1iZWR0bHNfbG1vdHNfcHVibGljX2luaXQobWJlZHRsc19sbW90c19wdWJsaWNfdCAqY3R4KQotewotICAgIG1lbXNldChjdHgsIDAsIHNpemVvZigqY3R4KSk7Ci19Ci0KLXZvaWQgbWJlZHRsc19sbW90c19wdWJsaWNfZnJlZShtYmVkdGxzX2xtb3RzX3B1YmxpY190ICpjdHgpCi17Ci0gICAgbWJlZHRsc19wbGF0Zm9ybV96ZXJvaXplKGN0eCwgc2l6ZW9mKCpjdHgpKTsKLX0KLQotaW50IG1iZWR0bHNfbG1vdHNfaW1wb3J0X3B1YmxpY19rZXkobWJlZHRsc19sbW90c19wdWJsaWNfdCAqY3R4LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdW5zaWduZWQgY2hhciAqa2V5LCBzaXplX3Qga2V5X2xlbikKLXsKLSAgICBpZiAoa2V5X2xlbiA8IE1CRURUTFNfTE1PVFNfU0lHX1RZUEVfT0ZGU0VUICsgTUJFRFRMU19MTU9UU19UWVBFX0xFTikgewotICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfTE1TX0JBRF9JTlBVVF9EQVRBOwotICAgIH0KLQotICAgIGN0eC0+cGFyYW1zLnR5cGUgPSAobWJlZHRsc19sbW90c19hbGdvcml0aG1fdHlwZV90KQotICAgICAgICAgICAgICAgICAgICAgICBNQkVEVExTX0dFVF9VSU5UMzJfQkUoa2V5LCBNQkVEVExTX0xNT1RTX1NJR19UWVBFX09GRlNFVCk7Ci0KLSAgICBpZiAoa2V5X2xlbiAhPSBNQkVEVExTX0xNT1RTX1BVQkxJQ19LRVlfTEVOKGN0eC0+cGFyYW1zLnR5cGUpKSB7Ci0gICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9MTVNfQkFEX0lOUFVUX0RBVEE7Ci0gICAgfQotCi0gICAgbWVtY3B5KGN0eC0+cGFyYW1zLklfa2V5X2lkZW50aWZpZXIsCi0gICAgICAgICAgIGtleSArIFBVQkxJQ19LRVlfSV9LRVlfSURfT0ZGU0VULAotICAgICAgICAgICBNQkVEVExTX0xNT1RTX0lfS0VZX0lEX0xFTik7Ci0KLSAgICBtZW1jcHkoY3R4LT5wYXJhbXMucV9sZWFmX2lkZW50aWZpZXIsCi0gICAgICAgICAgIGtleSArIFBVQkxJQ19LRVlfUV9MRUFGX0lEX09GRlNFVCwKLSAgICAgICAgICAgTUJFRFRMU19MTU9UU19RX0xFQUZfSURfTEVOKTsKLQotICAgIG1lbWNweShjdHgtPnB1YmxpY19rZXksCi0gICAgICAgICAgIGtleSArIFBVQkxJQ19LRVlfS0VZX0hBU0hfT0ZGU0VULAotICAgICAgICAgICBNQkVEVExTX0xNT1RTX05fSEFTSF9MRU4oY3R4LT5wYXJhbXMudHlwZSkpOwotCi0gICAgY3R4LT5oYXZlX3B1YmxpY19rZXkgPSAxOwotCi0gICAgcmV0dXJuIDA7Ci19Ci0KLWludCBtYmVkdGxzX2xtb3RzX2V4cG9ydF9wdWJsaWNfa2V5KGNvbnN0IG1iZWR0bHNfbG1vdHNfcHVibGljX3QgKmN0eCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGNoYXIgKmtleSwgc2l6ZV90IGtleV9zaXplLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90ICprZXlfbGVuKQotewotICAgIGlmIChrZXlfc2l6ZSA8IE1CRURUTFNfTE1PVFNfUFVCTElDX0tFWV9MRU4oY3R4LT5wYXJhbXMudHlwZSkpIHsKLSAgICAgICAgcmV0dXJuIE1CRURUTFNfRVJSX0xNU19CVUZGRVJfVE9PX1NNQUxMOwotICAgIH0KLQotICAgIGlmICghY3R4LT5oYXZlX3B1YmxpY19rZXkpIHsKLSAgICAgICAgcmV0dXJuIE1CRURUTFNfRVJSX0xNU19CQURfSU5QVVRfREFUQTsKLSAgICB9Ci0KLSAgICBNQkVEVExTX1BVVF9VSU5UMzJfQkUoY3R4LT5wYXJhbXMudHlwZSwga2V5LCBNQkVEVExTX0xNT1RTX1NJR19UWVBFX09GRlNFVCk7Ci0KLSAgICBtZW1jcHkoa2V5ICsgUFVCTElDX0tFWV9JX0tFWV9JRF9PRkZTRVQsCi0gICAgICAgICAgIGN0eC0+cGFyYW1zLklfa2V5X2lkZW50aWZpZXIsCi0gICAgICAgICAgIE1CRURUTFNfTE1PVFNfSV9LRVlfSURfTEVOKTsKLQotICAgIG1lbWNweShrZXkgKyBQVUJMSUNfS0VZX1FfTEVBRl9JRF9PRkZTRVQsCi0gICAgICAgICAgIGN0eC0+cGFyYW1zLnFfbGVhZl9pZGVudGlmaWVyLAotICAgICAgICAgICBNQkVEVExTX0xNT1RTX1FfTEVBRl9JRF9MRU4pOwotCi0gICAgbWVtY3B5KGtleSArIFBVQkxJQ19LRVlfS0VZX0hBU0hfT0ZGU0VULCBjdHgtPnB1YmxpY19rZXksCi0gICAgICAgICAgIE1CRURUTFNfTE1PVFNfTl9IQVNIX0xFTihjdHgtPnBhcmFtcy50eXBlKSk7Ci0KLSAgICBpZiAoa2V5X2xlbiAhPSBOVUxMKSB7Ci0gICAgICAgICprZXlfbGVuID0gTUJFRFRMU19MTU9UU19QVUJMSUNfS0VZX0xFTihjdHgtPnBhcmFtcy50eXBlKTsKLSAgICB9Ci0KLSAgICByZXR1cm4gMDsKLX0KLQotaW50IG1iZWR0bHNfbG1vdHNfY2FsY3VsYXRlX3B1YmxpY19rZXlfY2FuZGlkYXRlKGNvbnN0IG1iZWR0bHNfbG1vdHNfcGFyYW1ldGVyc190ICpwYXJhbXMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdW5zaWduZWQgY2hhciAgKm1zZywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgbXNnX3NpemUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdW5zaWduZWQgY2hhciAqc2lnLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBzaWdfc2l6ZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBjaGFyICpvdXQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IG91dF9zaXplLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCAqb3V0X2xlbikKLXsKLSAgICB1bnNpZ25lZCBjaGFyIHRtcF9kaWdpdF9hcnJheVtNQkVEVExTX0xNT1RTX1BfU0lHX0RJR0lUX0NPVU5UX01BWF07Ci0gICAgdW5zaWduZWQgY2hhciB5X2hhc2hlZF9kaWdpdHNbTUJFRFRMU19MTU9UU19QX1NJR19ESUdJVF9DT1VOVF9NQVhdW01CRURUTFNfTE1PVFNfTl9IQVNIX0xFTl9NQVhdOwotICAgIGludCByZXQgPSBNQkVEVExTX0VSUl9FUlJPUl9DT1JSVVBUSU9OX0RFVEVDVEVEOwotCi0gICAgaWYgKG1zZyA9PSBOVUxMICYmIG1zZ19zaXplICE9IDApIHsKLSAgICAgICAgcmV0dXJuIE1CRURUTFNfRVJSX0xNU19CQURfSU5QVVRfREFUQTsKLSAgICB9Ci0KLSAgICBpZiAoc2lnX3NpemUgIT0gTUJFRFRMU19MTU9UU19TSUdfTEVOKHBhcmFtcy0+dHlwZSkgfHwKLSAgICAgICAgb3V0X3NpemUgPCBNQkVEVExTX0xNT1RTX05fSEFTSF9MRU4ocGFyYW1zLT50eXBlKSkgewotICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfTE1TX0JBRF9JTlBVVF9EQVRBOwotICAgIH0KLQotICAgIHJldCA9IGNyZWF0ZV9kaWdpdF9hcnJheV93aXRoX2NoZWNrc3VtKHBhcmFtcywgbXNnLCBtc2dfc2l6ZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaWcgKyBNQkVEVExTX0xNT1RTX1NJR19DX1JBTkRPTV9PRkZTRVQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG1wX2RpZ2l0X2FycmF5KTsKLSAgICBpZiAocmV0KSB7Ci0gICAgICAgIHJldHVybiByZXQ7Ci0gICAgfQotCi0gICAgcmV0ID0gaGFzaF9kaWdpdF9hcnJheShwYXJhbXMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICBzaWcgKyBNQkVEVExTX0xNT1RTX1NJR19TSUdOQVRVUkVfT0ZGU0VUKHBhcmFtcy0+dHlwZSksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICB0bXBfZGlnaXRfYXJyYXksIE5VTEwsICh1bnNpZ25lZCBjaGFyICopIHlfaGFzaGVkX2RpZ2l0cyk7Ci0gICAgaWYgKHJldCkgewotICAgICAgICByZXR1cm4gcmV0OwotICAgIH0KLQotICAgIHJldCA9IHB1YmxpY19rZXlfZnJvbV9oYXNoZWRfZGlnaXRfYXJyYXkocGFyYW1zLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHVuc2lnbmVkIGNoYXIgKikgeV9oYXNoZWRfZGlnaXRzLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3V0KTsKLSAgICBpZiAocmV0KSB7Ci0gICAgICAgIHJldHVybiByZXQ7Ci0gICAgfQotCi0gICAgaWYgKG91dF9sZW4gIT0gTlVMTCkgewotICAgICAgICAqb3V0X2xlbiA9IE1CRURUTFNfTE1PVFNfTl9IQVNIX0xFTihwYXJhbXMtPnR5cGUpOwotICAgIH0KLQotICAgIHJldHVybiAwOwotfQotCi1pbnQgbWJlZHRsc19sbW90c192ZXJpZnkoY29uc3QgbWJlZHRsc19sbW90c19wdWJsaWNfdCAqY3R4LAotICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgKm1zZywgc2l6ZV90IG1zZ19zaXplLAotICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgKnNpZywgc2l6ZV90IHNpZ19zaXplKQotewotICAgIHVuc2lnbmVkIGNoYXIgS2NfcHVibGljX2tleV9jYW5kaWRhdGVbTUJFRFRMU19MTU9UU19OX0hBU0hfTEVOX01BWF07Ci0gICAgaW50IHJldCA9IE1CRURUTFNfRVJSX0VSUk9SX0NPUlJVUFRJT05fREVURUNURUQ7Ci0KLSAgICBpZiAobXNnID09IE5VTEwgJiYgbXNnX3NpemUgIT0gMCkgewotICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfTE1TX0JBRF9JTlBVVF9EQVRBOwotICAgIH0KLQotICAgIGlmICghY3R4LT5oYXZlX3B1YmxpY19rZXkpIHsKLSAgICAgICAgcmV0dXJuIE1CRURUTFNfRVJSX0xNU19CQURfSU5QVVRfREFUQTsKLSAgICB9Ci0KLSAgICBpZiAoY3R4LT5wYXJhbXMudHlwZSAhPSBNQkVEVExTX0xNT1RTX1NIQTI1Nl9OMzJfVzgpIHsKLSAgICAgICAgcmV0dXJuIE1CRURUTFNfRVJSX0xNU19CQURfSU5QVVRfREFUQTsKLSAgICB9Ci0KLSAgICBpZiAoc2lnX3NpemUgPCBNQkVEVExTX0xNT1RTX1NJR19UWVBFX09GRlNFVCArIE1CRURUTFNfTE1PVFNfVFlQRV9MRU4pIHsKLSAgICAgICAgcmV0dXJuIE1CRURUTFNfRVJSX0xNU19WRVJJRllfRkFJTEVEOwotICAgIH0KLQotICAgIGlmIChNQkVEVExTX0dFVF9VSU5UMzJfQkUoc2lnLCBNQkVEVExTX0xNT1RTX1NJR19UWVBFX09GRlNFVCkgIT0gTUJFRFRMU19MTU9UU19TSEEyNTZfTjMyX1c4KSB7Ci0gICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9MTVNfVkVSSUZZX0ZBSUxFRDsKLSAgICB9Ci0KLSAgICByZXQgPSBtYmVkdGxzX2xtb3RzX2NhbGN1bGF0ZV9wdWJsaWNfa2V5X2NhbmRpZGF0ZSgmY3R4LT5wYXJhbXMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbXNnLCBtc2dfc2l6ZSwgc2lnLCBzaWdfc2l6ZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBLY19wdWJsaWNfa2V5X2NhbmRpZGF0ZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNQkVEVExTX0xNT1RTX05fSEFTSF9MRU4oY3R4LT5wYXJhbXMudHlwZSksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCk7Ci0gICAgaWYgKHJldCkgewotICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfTE1TX1ZFUklGWV9GQUlMRUQ7Ci0gICAgfQotCi0gICAgaWYgKG1lbWNtcCgmS2NfcHVibGljX2tleV9jYW5kaWRhdGUsIGN0eC0+cHVibGljX2tleSwKLSAgICAgICAgICAgICAgIHNpemVvZihjdHgtPnB1YmxpY19rZXkpKSkgewotICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfTE1TX1ZFUklGWV9GQUlMRUQ7Ci0gICAgfQotCi0gICAgcmV0dXJuIDA7Ci19Ci0KLSNpZiBkZWZpbmVkKE1CRURUTFNfTE1TX1BSSVZBVEUpCi0KLXZvaWQgbWJlZHRsc19sbW90c19wcml2YXRlX2luaXQobWJlZHRsc19sbW90c19wcml2YXRlX3QgKmN0eCkKLXsKLSAgICBtZW1zZXQoY3R4LCAwLCBzaXplb2YoKmN0eCkpOwotfQotCi12b2lkIG1iZWR0bHNfbG1vdHNfcHJpdmF0ZV9mcmVlKG1iZWR0bHNfbG1vdHNfcHJpdmF0ZV90ICpjdHgpCi17Ci0gICAgbWJlZHRsc19wbGF0Zm9ybV96ZXJvaXplKGN0eCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZW9mKCpjdHgpKTsKLX0KLQotaW50IG1iZWR0bHNfbG1vdHNfZ2VuZXJhdGVfcHJpdmF0ZV9rZXkobWJlZHRsc19sbW90c19wcml2YXRlX3QgKmN0eCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1iZWR0bHNfbG1vdHNfYWxnb3JpdGhtX3R5cGVfdCB0eXBlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdW5zaWduZWQgY2hhciBJX2tleV9pZGVudGlmaWVyW01CRURUTFNfTE1PVFNfSV9LRVlfSURfTEVOXSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQzMl90IHFfbGVhZl9pZGVudGlmaWVyLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdW5zaWduZWQgY2hhciAqc2VlZCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBzZWVkX3NpemUpCi17Ci0gICAgcHNhX2hhc2hfb3BlcmF0aW9uX3Qgb3AgPSBQU0FfSEFTSF9PUEVSQVRJT05fSU5JVDsKLSAgICBwc2Ffc3RhdHVzX3Qgc3RhdHVzID0gUFNBX0VSUk9SX0NPUlJVUFRJT05fREVURUNURUQ7Ci0gICAgc2l6ZV90IG91dHB1dF9oYXNoX2xlbjsKLSAgICB1bnNpZ25lZCBpbnQgaV9kaWdpdF9pZHg7Ci0gICAgdW5zaWduZWQgY2hhciBpX2RpZ2l0X2lkeF9ieXRlc1syXTsKLSAgICB1bnNpZ25lZCBjaGFyIGNvbnN0X2J5dGVzWzFdID0geyAweEZGIH07Ci0KLSAgICBpZiAoY3R4LT5oYXZlX3ByaXZhdGVfa2V5KSB7Ci0gICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9MTVNfQkFEX0lOUFVUX0RBVEE7Ci0gICAgfQotCi0gICAgaWYgKHR5cGUgIT0gTUJFRFRMU19MTU9UU19TSEEyNTZfTjMyX1c4KSB7Ci0gICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9MTVNfQkFEX0lOUFVUX0RBVEE7Ci0gICAgfQotCi0gICAgY3R4LT5wYXJhbXMudHlwZSA9IHR5cGU7Ci0KLSAgICBtZW1jcHkoY3R4LT5wYXJhbXMuSV9rZXlfaWRlbnRpZmllciwKLSAgICAgICAgICAgSV9rZXlfaWRlbnRpZmllciwKLSAgICAgICAgICAgc2l6ZW9mKGN0eC0+cGFyYW1zLklfa2V5X2lkZW50aWZpZXIpKTsKLQotICAgIE1CRURUTFNfUFVUX1VJTlQzMl9CRShxX2xlYWZfaWRlbnRpZmllciwgY3R4LT5wYXJhbXMucV9sZWFmX2lkZW50aWZpZXIsIDApOwotCi0gICAgZm9yIChpX2RpZ2l0X2lkeCA9IDA7Ci0gICAgICAgICBpX2RpZ2l0X2lkeCA8IE1CRURUTFNfTE1PVFNfUF9TSUdfRElHSVRfQ09VTlQoY3R4LT5wYXJhbXMudHlwZSk7Ci0gICAgICAgICBpX2RpZ2l0X2lkeCsrKSB7Ci0gICAgICAgIHN0YXR1cyA9IHBzYV9oYXNoX3NldHVwKCZvcCwgUFNBX0FMR19TSEFfMjU2KTsKLSAgICAgICAgaWYgKHN0YXR1cyAhPSBQU0FfU1VDQ0VTUykgewotICAgICAgICAgICAgZ290byBleGl0OwotICAgICAgICB9Ci0KLSAgICAgICAgc3RhdHVzID0gcHNhX2hhc2hfdXBkYXRlKCZvcCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGN0eC0+cGFyYW1zLklfa2V5X2lkZW50aWZpZXIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplb2YoY3R4LT5wYXJhbXMuSV9rZXlfaWRlbnRpZmllcikpOwotICAgICAgICBpZiAoc3RhdHVzICE9IFBTQV9TVUNDRVNTKSB7Ci0gICAgICAgICAgICBnb3RvIGV4aXQ7Ci0gICAgICAgIH0KLQotICAgICAgICBzdGF0dXMgPSBwc2FfaGFzaF91cGRhdGUoJm9wLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3R4LT5wYXJhbXMucV9sZWFmX2lkZW50aWZpZXIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNQkVEVExTX0xNT1RTX1FfTEVBRl9JRF9MRU4pOwotICAgICAgICBpZiAoc3RhdHVzICE9IFBTQV9TVUNDRVNTKSB7Ci0gICAgICAgICAgICBnb3RvIGV4aXQ7Ci0gICAgICAgIH0KLQotICAgICAgICBNQkVEVExTX1BVVF9VSU5UMTZfQkUoaV9kaWdpdF9pZHgsIGlfZGlnaXRfaWR4X2J5dGVzLCAwKTsKLSAgICAgICAgc3RhdHVzID0gcHNhX2hhc2hfdXBkYXRlKCZvcCwgaV9kaWdpdF9pZHhfYnl0ZXMsIElfRElHSVRfSURYX0xFTik7Ci0gICAgICAgIGlmIChzdGF0dXMgIT0gUFNBX1NVQ0NFU1MpIHsKLSAgICAgICAgICAgIGdvdG8gZXhpdDsKLSAgICAgICAgfQotCi0gICAgICAgIHN0YXR1cyA9IHBzYV9oYXNoX3VwZGF0ZSgmb3AsIGNvbnN0X2J5dGVzLCBzaXplb2YoY29uc3RfYnl0ZXMpKTsKLSAgICAgICAgaWYgKHN0YXR1cyAhPSBQU0FfU1VDQ0VTUykgewotICAgICAgICAgICAgZ290byBleGl0OwotICAgICAgICB9Ci0KLSAgICAgICAgc3RhdHVzID0gcHNhX2hhc2hfdXBkYXRlKCZvcCwgc2VlZCwgc2VlZF9zaXplKTsKLSAgICAgICAgaWYgKHN0YXR1cyAhPSBQU0FfU1VDQ0VTUykgewotICAgICAgICAgICAgZ290byBleGl0OwotICAgICAgICB9Ci0KLSAgICAgICAgc3RhdHVzID0gcHNhX2hhc2hfZmluaXNoKCZvcCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGN0eC0+cHJpdmF0ZV9rZXlbaV9kaWdpdF9pZHhdLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTUJFRFRMU19MTU9UU19OX0hBU0hfTEVOKGN0eC0+cGFyYW1zLnR5cGUpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJm91dHB1dF9oYXNoX2xlbik7Ci0gICAgICAgIGlmIChzdGF0dXMgIT0gUFNBX1NVQ0NFU1MpIHsKLSAgICAgICAgICAgIGdvdG8gZXhpdDsKLSAgICAgICAgfQotCi0gICAgICAgIHBzYV9oYXNoX2Fib3J0KCZvcCk7Ci0gICAgfQotCi0gICAgY3R4LT5oYXZlX3ByaXZhdGVfa2V5ID0gMTsKLQotZXhpdDoKLSAgICBwc2FfaGFzaF9hYm9ydCgmb3ApOwotCi0gICAgcmV0dXJuIFBTQV9UT19NQkVEVExTX0VSUihzdGF0dXMpOwotfQotCi1pbnQgbWJlZHRsc19sbW90c19jYWxjdWxhdGVfcHVibGljX2tleShtYmVkdGxzX2xtb3RzX3B1YmxpY190ICpjdHgsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBtYmVkdGxzX2xtb3RzX3ByaXZhdGVfdCAqcHJpdl9jdHgpCi17Ci0gICAgdW5zaWduZWQgY2hhciB5X2hhc2hlZF9kaWdpdHNbTUJFRFRMU19MTU9UU19QX1NJR19ESUdJVF9DT1VOVF9NQVhdW01CRURUTFNfTE1PVFNfTl9IQVNIX0xFTl9NQVhdOwotICAgIGludCByZXQgPSBNQkVEVExTX0VSUl9FUlJPUl9DT1JSVVBUSU9OX0RFVEVDVEVEOwotCi0gICAgLyogQ2hlY2sgdGhhdCBhIHByaXZhdGUga2V5IGlzIGxvYWRlZCAqLwotICAgIGlmICghcHJpdl9jdHgtPmhhdmVfcHJpdmF0ZV9rZXkpIHsKLSAgICAgICAgcmV0dXJuIE1CRURUTFNfRVJSX0xNU19CQURfSU5QVVRfREFUQTsKLSAgICB9Ci0KLSAgICByZXQgPSBoYXNoX2RpZ2l0X2FycmF5KCZwcml2X2N0eC0+cGFyYW1zLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgKHVuc2lnbmVkIGNoYXIgKikgcHJpdl9jdHgtPnByaXZhdGVfa2V5LCBOVUxMLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCwgKHVuc2lnbmVkIGNoYXIgKikgeV9oYXNoZWRfZGlnaXRzKTsKLSAgICBpZiAocmV0KSB7Ci0gICAgICAgIGdvdG8gZXhpdDsKLSAgICB9Ci0KLSAgICByZXQgPSBwdWJsaWNfa2V5X2Zyb21faGFzaGVkX2RpZ2l0X2FycmF5KCZwcml2X2N0eC0+cGFyYW1zLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHVuc2lnbmVkIGNoYXIgKikgeV9oYXNoZWRfZGlnaXRzLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3R4LT5wdWJsaWNfa2V5KTsKLSAgICBpZiAocmV0KSB7Ci0gICAgICAgIGdvdG8gZXhpdDsKLSAgICB9Ci0KLSAgICBtZW1jcHkoJmN0eC0+cGFyYW1zLCAmcHJpdl9jdHgtPnBhcmFtcywKLSAgICAgICAgICAgc2l6ZW9mKGN0eC0+cGFyYW1zKSk7Ci0KLSAgICBjdHgtPmhhdmVfcHVibGljX2tleSA9IDE7Ci0KLWV4aXQ6Ci0gICAgbWJlZHRsc19wbGF0Zm9ybV96ZXJvaXplKHlfaGFzaGVkX2RpZ2l0cywgc2l6ZW9mKHlfaGFzaGVkX2RpZ2l0cykpOwotCi0gICAgcmV0dXJuIHJldDsKLX0KLQotaW50IG1iZWR0bHNfbG1vdHNfc2lnbihtYmVkdGxzX2xtb3RzX3ByaXZhdGVfdCAqY3R4LAotICAgICAgICAgICAgICAgICAgICAgICBpbnQgKCpmX3JuZykodm9pZCAqLCB1bnNpZ25lZCBjaGFyICosIHNpemVfdCksCi0gICAgICAgICAgICAgICAgICAgICAgIHZvaWQgKnBfcm5nLCBjb25zdCB1bnNpZ25lZCBjaGFyICptc2csIHNpemVfdCBtc2dfc2l6ZSwKLSAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgY2hhciAqc2lnLCBzaXplX3Qgc2lnX3NpemUsIHNpemVfdCAqc2lnX2xlbikKLXsKLSAgICB1bnNpZ25lZCBjaGFyIHRtcF9kaWdpdF9hcnJheVtNQkVEVExTX0xNT1RTX1BfU0lHX0RJR0lUX0NPVU5UX01BWF07Ci0gICAgLyogQ3JlYXRlIGEgdGVtcG9yYXJ5IGJ1ZmZlciB0byBwcmVwYXJlIHRoZSBzaWduYXR1cmUgaW4uIFRoaXMgYWxsb3dzIHVzIHRvCi0gICAgICogZmluaXNoIGNyZWF0aW5nIGEgc2lnbmF0dXJlIChlbnN1cmluZyB0aGUgcHJvY2VzcyBkb2Vzbid0IGZhaWwpLCBhbmQgdGhlbgotICAgICAqIGVyYXNlIHRoZSBwcml2YXRlIGtleSAqKmJlZm9yZSoqIHdyaXRpbmcgYW55IGRhdGEgaW50byB0aGUgc2lnIHBhcmFtZXRlcgotICAgICAqIGJ1ZmZlci4gSWYgZGF0YSB3ZXJlIGRpcmVjdGx5IHdyaXR0ZW4gaW50byB0aGUgc2lnIGJ1ZmZlciwgaXQgbWlnaHQgbGVhawotICAgICAqIGEgcGFydGlhbCBzaWduYXR1cmUgb24gZmFpbHVyZSwgd2hpY2ggZWZmZWN0aXZlbHkgY29tcHJvbWlzZXMgdGhlIHByaXZhdGUKLSAgICAgKiBrZXkuCi0gICAgICovCi0gICAgdW5zaWduZWQgY2hhciB0bXBfc2lnW01CRURUTFNfTE1PVFNfUF9TSUdfRElHSVRfQ09VTlRfTUFYXVtNQkVEVExTX0xNT1RTX05fSEFTSF9MRU5fTUFYXTsKLSAgICB1bnNpZ25lZCBjaGFyIHRtcF9jX3JhbmRvbVtNQkVEVExTX0xNT1RTX05fSEFTSF9MRU5fTUFYXTsKLSAgICBpbnQgcmV0ID0gTUJFRFRMU19FUlJfRVJST1JfQ09SUlVQVElPTl9ERVRFQ1RFRDsKLQotICAgIGlmIChtc2cgPT0gTlVMTCAmJiBtc2dfc2l6ZSAhPSAwKSB7Ci0gICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9MTVNfQkFEX0lOUFVUX0RBVEE7Ci0gICAgfQotCi0gICAgaWYgKHNpZ19zaXplIDwgTUJFRFRMU19MTU9UU19TSUdfTEVOKGN0eC0+cGFyYW1zLnR5cGUpKSB7Ci0gICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9MTVNfQlVGRkVSX1RPT19TTUFMTDsKLSAgICB9Ci0KLSAgICAvKiBDaGVjayB0aGF0IGEgcHJpdmF0ZSBrZXkgaXMgbG9hZGVkICovCi0gICAgaWYgKCFjdHgtPmhhdmVfcHJpdmF0ZV9rZXkpIHsKLSAgICAgICAgcmV0dXJuIE1CRURUTFNfRVJSX0xNU19CQURfSU5QVVRfREFUQTsKLSAgICB9Ci0KLSAgICByZXQgPSBmX3JuZyhwX3JuZywgdG1wX2NfcmFuZG9tLAotICAgICAgICAgICAgICAgIE1CRURUTFNfTE1PVFNfTl9IQVNIX0xFTihjdHgtPnBhcmFtcy50eXBlKSk7Ci0gICAgaWYgKHJldCkgewotICAgICAgICByZXR1cm4gcmV0OwotICAgIH0KLQotICAgIHJldCA9IGNyZWF0ZV9kaWdpdF9hcnJheV93aXRoX2NoZWNrc3VtKCZjdHgtPnBhcmFtcywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtc2csIG1zZ19zaXplLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRtcF9jX3JhbmRvbSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0bXBfZGlnaXRfYXJyYXkpOwotICAgIGlmIChyZXQpIHsKLSAgICAgICAgZ290byBleGl0OwotICAgIH0KLQotICAgIHJldCA9IGhhc2hfZGlnaXRfYXJyYXkoJmN0eC0+cGFyYW1zLCAodW5zaWduZWQgY2hhciAqKSBjdHgtPnByaXZhdGVfa2V5LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCwgdG1wX2RpZ2l0X2FycmF5LCAodW5zaWduZWQgY2hhciAqKSB0bXBfc2lnKTsKLSAgICBpZiAocmV0KSB7Ci0gICAgICAgIGdvdG8gZXhpdDsKLSAgICB9Ci0KLSAgICBNQkVEVExTX1BVVF9VSU5UMzJfQkUoY3R4LT5wYXJhbXMudHlwZSwgc2lnLCBNQkVEVExTX0xNT1RTX1NJR19UWVBFX09GRlNFVCk7Ci0KLSAgICAvKiBUZXN0IGhvb2sgdG8gY2hlY2sgaWYgc2lnIGlzIGJlaW5nIHdyaXR0ZW4gdG8gYmVmb3JlIHdlIGludmFsaWRhdGUgdGhlCi0gICAgICogcHJpdmF0ZSBrZXkuCi0gICAgICovCi0jaWYgZGVmaW5lZChNQkVEVExTX1RFU1RfSE9PS1MpCi0gICAgaWYgKG1iZWR0bHNfbG1vdHNfc2lnbl9wcml2YXRlX2tleV9pbnZhbGlkYXRlZF9ob29rICE9IE5VTEwpIHsKLSAgICAgICAgcmV0ID0gKCptYmVkdGxzX2xtb3RzX3NpZ25fcHJpdmF0ZV9rZXlfaW52YWxpZGF0ZWRfaG9vaykoc2lnKTsKLSAgICAgICAgaWYgKHJldCAhPSAwKSB7Ci0gICAgICAgICAgICByZXR1cm4gcmV0OwotICAgICAgICB9Ci0gICAgfQotI2VuZGlmIC8qIGRlZmluZWQoTUJFRFRMU19URVNUX0hPT0tTKSAqLwotCi0gICAgLyogV2UndmUgZ290IGEgdmFsaWQgc2lnbmF0dXJlIG5vdywgc28gaXQncyB0aW1lIHRvIG1ha2Ugc3VyZSB0aGUgcHJpdmF0ZQotICAgICAqIGtleSBjYW4ndCBiZSByZXVzZWQuCi0gICAgICovCi0gICAgY3R4LT5oYXZlX3ByaXZhdGVfa2V5ID0gMDsKLSAgICBtYmVkdGxzX3BsYXRmb3JtX3plcm9pemUoY3R4LT5wcml2YXRlX2tleSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZW9mKGN0eC0+cHJpdmF0ZV9rZXkpKTsKLQotICAgIG1lbWNweShzaWcgKyBNQkVEVExTX0xNT1RTX1NJR19DX1JBTkRPTV9PRkZTRVQsIHRtcF9jX3JhbmRvbSwKLSAgICAgICAgICAgTUJFRFRMU19MTU9UU19DX1JBTkRPTV9WQUxVRV9MRU4oY3R4LT5wYXJhbXMudHlwZSkpOwotCi0gICAgbWVtY3B5KHNpZyArIE1CRURUTFNfTE1PVFNfU0lHX1NJR05BVFVSRV9PRkZTRVQoY3R4LT5wYXJhbXMudHlwZSksIHRtcF9zaWcsCi0gICAgICAgICAgIE1CRURUTFNfTE1PVFNfUF9TSUdfRElHSVRfQ09VTlQoY3R4LT5wYXJhbXMudHlwZSkKLSAgICAgICAgICAgKiBNQkVEVExTX0xNT1RTX05fSEFTSF9MRU4oY3R4LT5wYXJhbXMudHlwZSkpOwotCi0gICAgaWYgKHNpZ19sZW4gIT0gTlVMTCkgewotICAgICAgICAqc2lnX2xlbiA9IE1CRURUTFNfTE1PVFNfU0lHX0xFTihjdHgtPnBhcmFtcy50eXBlKTsKLSAgICB9Ci0KLSAgICByZXQgPSAwOwotCi1leGl0OgotICAgIG1iZWR0bHNfcGxhdGZvcm1femVyb2l6ZSh0bXBfZGlnaXRfYXJyYXksIHNpemVvZih0bXBfZGlnaXRfYXJyYXkpKTsKLSAgICBtYmVkdGxzX3BsYXRmb3JtX3plcm9pemUodG1wX3NpZywgc2l6ZW9mKHRtcF9zaWcpKTsKLQotICAgIHJldHVybiByZXQ7Ci19Ci0KLSNlbmRpZiAvKiBkZWZpbmVkKE1CRURUTFNfTE1TX1BSSVZBVEUpICovCi0jZW5kaWYgLyogZGVmaW5lZChNQkVEVExTX0xNU19DKSAqLwpkaWZmIC0tZ2l0IGEvbGlicmFyeS9sbXMuYyBiL2xpYnJhcnkvbG1zLmMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDhkM2NhZTAuLjAwMDAwMDAKLS0tIGEvbGlicmFyeS9sbXMuYworKysgL2Rldi9udWxsCkBAIC0xLDc2MSArMCwwIEBACi0vKgotICogIFRoZSBMTVMgc3RhdGVmdWwtaGFzaCBwdWJsaWMta2V5IHNpZ25hdHVyZSBzY2hlbWUKLSAqCi0gKiAgQ29weXJpZ2h0IFRoZSBNYmVkIFRMUyBDb250cmlidXRvcnMKLSAqICBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMCBPUiBHUEwtMi4wLW9yLWxhdGVyCi0gKi8KLQotLyoKLSAqICBUaGUgZm9sbG93aW5nIHNvdXJjZXMgd2VyZSByZWZlcmVuY2VkIGluIHRoZSBkZXNpZ24gb2YgdGhpcyBpbXBsZW1lbnRhdGlvbgotICogIG9mIHRoZSBMTVMgYWxnb3JpdGhtOgotICoKLSAqICBbMV0gSUVURiBSRkM4NTU0Ci0gKiAgICAgIEQuIE1jR3JldywgTS4gQ3VyY2lvLCBTLkZsdWhyZXIKLSAqICAgICAgaHR0cHM6Ly9kYXRhdHJhY2tlci5pZXRmLm9yZy9kb2MvaHRtbC9yZmM4NTU0Ci0gKgotICogIFsyXSBOSVNUIFNwZWNpYWwgUHVibGljYXRpb24gODAwLTIwOAotICogICAgICBEYXZpZCBBLiBDb29wZXIgZXQuIGFsLgotICogICAgICBodHRwczovL252bHB1YnMubmlzdC5nb3YvbmlzdHB1YnMvU3BlY2lhbFB1YmxpY2F0aW9ucy9OSVNULlNQLjgwMC0yMDgucGRmCi0gKi8KLQotI2luY2x1ZGUgImNvbW1vbi5oIgotCi0jaWYgZGVmaW5lZChNQkVEVExTX0xNU19DKQotCi0jaW5jbHVkZSA8c3RyaW5nLmg+Ci0KLSNpbmNsdWRlICJsbW90cy5oIgotCi0jaW5jbHVkZSAicHNhL2NyeXB0by5oIgotI2luY2x1ZGUgInBzYV91dGlsX2ludGVybmFsLmgiCi0jaW5jbHVkZSAibWJlZHRscy9sbXMuaCIKLSNpbmNsdWRlICJtYmVkdGxzL2Vycm9yLmgiCi0jaW5jbHVkZSAibWJlZHRscy9wbGF0Zm9ybV91dGlsLmgiCi0KLSNpbmNsdWRlICJtYmVkdGxzL3BsYXRmb3JtLmgiCi0KLS8qIERlZmluZSBhIGxvY2FsIHRyYW5zbGF0aW5nIGZ1bmN0aW9uIHRvIHNhdmUgY29kZSBzaXplIGJ5IG5vdCB1c2luZyB0b28gbWFueQotICogYXJndW1lbnRzIGluIGVhY2ggdHJhbnNsYXRpbmcgcGxhY2UuICovCi1zdGF0aWMgaW50IGxvY2FsX2Vycl90cmFuc2xhdGlvbihwc2Ffc3RhdHVzX3Qgc3RhdHVzKQotewotICAgIHJldHVybiBwc2Ffc3RhdHVzX3RvX21iZWR0bHMoc3RhdHVzLCBwc2FfdG9fbG1zX2Vycm9ycywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFSUkFZX0xFTkdUSChwc2FfdG9fbG1zX2Vycm9ycyksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwc2FfZ2VuZXJpY19zdGF0dXNfdG9fbWJlZHRscyk7Ci19Ci0jZGVmaW5lIFBTQV9UT19NQkVEVExTX0VSUihzdGF0dXMpIGxvY2FsX2Vycl90cmFuc2xhdGlvbihzdGF0dXMpCi0KLSNkZWZpbmUgU0lHX1FfTEVBRl9JRF9PRkZTRVQgICAgICgwKQotI2RlZmluZSBTSUdfT1RTX1NJR19PRkZTRVQgICAgICAgKFNJR19RX0xFQUZfSURfT0ZGU0VUICsgXAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1CRURUTFNfTE1PVFNfUV9MRUFGX0lEX0xFTikKLSNkZWZpbmUgU0lHX1RZUEVfT0ZGU0VUKG90c3R5cGUpIChTSUdfT1RTX1NJR19PRkZTRVQgICArIFwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNQkVEVExTX0xNT1RTX1NJR19MRU4ob3RzdHlwZSkpCi0jZGVmaW5lIFNJR19QQVRIX09GRlNFVChvdHN0eXBlKSAoU0lHX1RZUEVfT0ZGU0VUKG90c3R5cGUpICsgXAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1CRURUTFNfTE1TX1RZUEVfTEVOKQotCi0jZGVmaW5lIFBVQkxJQ19LRVlfVFlQRV9PRkZTRVQgICAgICAoMCkKLSNkZWZpbmUgUFVCTElDX0tFWV9PVFNUWVBFX09GRlNFVCAgIChQVUJMSUNfS0VZX1RZUEVfT0ZGU0VUICsgXAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1CRURUTFNfTE1TX1RZUEVfTEVOKQotI2RlZmluZSBQVUJMSUNfS0VZX0lfS0VZX0lEX09GRlNFVCAgKFBVQkxJQ19LRVlfT1RTVFlQRV9PRkZTRVQgICsgXAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1CRURUTFNfTE1PVFNfVFlQRV9MRU4pCi0jZGVmaW5lIFBVQkxJQ19LRVlfUk9PVF9OT0RFX09GRlNFVCAoUFVCTElDX0tFWV9JX0tFWV9JRF9PRkZTRVQgKyBcCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTUJFRFRMU19MTU9UU19JX0tFWV9JRF9MRU4pCi0KLQotLyogQ3VycmVudGx5IG9ubHkgc3VwcG9ydCBIPTEwICovCi0jZGVmaW5lIEhfVFJFRV9IRUlHSFRfTUFYICAgICAgICAgICAgICAgICAgMTAKLSNkZWZpbmUgTUVSS0xFX1RSRUVfTk9ERV9BTSh0eXBlKSAgICAgICAgICAoKHNpemVfdCkgMSA8PCAoTUJFRFRMU19MTVNfSF9UUkVFX0hFSUdIVCh0eXBlKSArIDF1KSkKLSNkZWZpbmUgTUVSS0xFX1RSRUVfTEVBRl9OT0RFX0FNKHR5cGUpICAgICAoKHNpemVfdCkgMSA8PCBNQkVEVExTX0xNU19IX1RSRUVfSEVJR0hUKHR5cGUpKQotI2RlZmluZSBNRVJLTEVfVFJFRV9JTlRFUk5BTF9OT0RFX0FNKHR5cGUpICgodW5zaWduZWQgaW50KSBcCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgxdSA8PCBNQkVEVExTX0xNU19IX1RSRUVfSEVJR0hUKHR5cGUpKSkKLQotI2RlZmluZSBEX0NPTlNUX0xFTiAgICAgICAgICAgKDIpCi1zdGF0aWMgY29uc3QgdW5zaWduZWQgY2hhciBEX0xFQUZfQ09OU1RBTlRfQllURVNbRF9DT05TVF9MRU5dID0geyAweDgyLCAweDgyIH07Ci1zdGF0aWMgY29uc3QgdW5zaWduZWQgY2hhciBEX0lOVFJfQ09OU1RBTlRfQllURVNbRF9DT05TVF9MRU5dID0geyAweDgzLCAweDgzIH07Ci0KLQotLyogQ2FsY3VsYXRlIHRoZSB2YWx1ZSBvZiBhIGxlYWYgbm9kZSBvZiB0aGUgTWVya2xlIHRyZWUgKHdoaWNoIGlzIGEgaGFzaCBvZiBhCi0gKiBwdWJsaWMga2V5IGFuZCBzb21lIG90aGVyIHBhcmFtZXRlcnMgbGlrZSB0aGUgbGVhZiBpbmRleCkuIFRoaXMgZnVuY3Rpb24KLSAqIGltcGxlbWVudHMgUkZDODU1NCBzZWN0aW9uIDUuMywgaW4gdGhlIGNhc2Ugd2hlcmUgciA+PSAyXmguCi0gKgotICogIHBhcmFtcyAgICAgICAgICAgICAgVGhlIExNUyBwYXJhbWV0ZXIgc2V0LCB0aGUgdW5kZXJseWluZyBMTU9UUwotICogICAgICAgICAgICAgICAgICAgICAgcGFyYW1ldGVyIHNldCwgYW5kIEkgdmFsdWUgd2hpY2ggZGVzY3JpYmUgdGhlIGtleQotICogICAgICAgICAgICAgICAgICAgICAgYmVpbmcgdXNlZC4KLSAqCi0gKiAgcHViX2tleSAgICAgICAgICAgICBUaGUgcHVibGljIGtleSBvZiB0aGUgcHJpdmF0ZSB3aG9zZSBpbmRleAotICogICAgICAgICAgICAgICAgICAgICAgY29ycmVzcG9uZHMgdG8gdGhlIGluZGV4IG9mIHRoaXMgbGVhZiBub2RlLiBUaGlzCi0gKiAgICAgICAgICAgICAgICAgICAgICBpcyBhIGhhc2ggb3V0cHV0LgotICoKLSAqICByX25vZGVfaWR4ICAgICAgICAgIFRoZSBpbmRleCBvZiB0aGlzIG5vZGUgaW4gdGhlIE1lcmtsZSB0cmVlLiBOb3RlCi0gKiAgICAgICAgICAgICAgICAgICAgICB0aGF0IHRoZSByb290IG5vZGUgb2YgdGhlIE1lcmtsZSB0cmVlIGlzCi0gKiAgICAgICAgICAgICAgICAgICAgICAxLWluZGV4ZWQuCi0gKgotICogIG91dCAgICAgICAgICAgICAgICAgVGhlIG91dHB1dCBub2RlIHZhbHVlLCB3aGljaCBpcyBhIGhhc2ggb3V0cHV0LgotICovCi1zdGF0aWMgaW50IGNyZWF0ZV9tZXJrbGVfbGVhZl92YWx1ZShjb25zdCBtYmVkdGxzX2xtc19wYXJhbWV0ZXJzX3QgKnBhcmFtcywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGNoYXIgKnB1Yl9rZXksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgcl9ub2RlX2lkeCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGNoYXIgKm91dCkKLXsKLSAgICBwc2FfaGFzaF9vcGVyYXRpb25fdCBvcDsKLSAgICBwc2Ffc3RhdHVzX3Qgc3RhdHVzID0gUFNBX0VSUk9SX0NPUlJVUFRJT05fREVURUNURUQ7Ci0gICAgc2l6ZV90IG91dHB1dF9oYXNoX2xlbjsKLSAgICB1bnNpZ25lZCBjaGFyIHJfbm9kZV9pZHhfYnl0ZXNbNF07Ci0KLSAgICBvcCA9IHBzYV9oYXNoX29wZXJhdGlvbl9pbml0KCk7Ci0gICAgc3RhdHVzID0gcHNhX2hhc2hfc2V0dXAoJm9wLCBQU0FfQUxHX1NIQV8yNTYpOwotICAgIGlmIChzdGF0dXMgIT0gUFNBX1NVQ0NFU1MpIHsKLSAgICAgICAgZ290byBleGl0OwotICAgIH0KLQotICAgIHN0YXR1cyA9IHBzYV9oYXNoX3VwZGF0ZSgmb3AsIHBhcmFtcy0+SV9rZXlfaWRlbnRpZmllciwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTUJFRFRMU19MTU9UU19JX0tFWV9JRF9MRU4pOwotICAgIGlmIChzdGF0dXMgIT0gUFNBX1NVQ0NFU1MpIHsKLSAgICAgICAgZ290byBleGl0OwotICAgIH0KLQotICAgIE1CRURUTFNfUFVUX1VJTlQzMl9CRShyX25vZGVfaWR4LCByX25vZGVfaWR4X2J5dGVzLCAwKTsKLSAgICBzdGF0dXMgPSBwc2FfaGFzaF91cGRhdGUoJm9wLCByX25vZGVfaWR4X2J5dGVzLCA0KTsKLSAgICBpZiAoc3RhdHVzICE9IFBTQV9TVUNDRVNTKSB7Ci0gICAgICAgIGdvdG8gZXhpdDsKLSAgICB9Ci0KLSAgICBzdGF0dXMgPSBwc2FfaGFzaF91cGRhdGUoJm9wLCBEX0xFQUZfQ09OU1RBTlRfQllURVMsIERfQ09OU1RfTEVOKTsKLSAgICBpZiAoc3RhdHVzICE9IFBTQV9TVUNDRVNTKSB7Ci0gICAgICAgIGdvdG8gZXhpdDsKLSAgICB9Ci0KLSAgICBzdGF0dXMgPSBwc2FfaGFzaF91cGRhdGUoJm9wLCBwdWJfa2V5LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNQkVEVExTX0xNT1RTX05fSEFTSF9MRU4ocGFyYW1zLT5vdHN0eXBlKSk7Ci0gICAgaWYgKHN0YXR1cyAhPSBQU0FfU1VDQ0VTUykgewotICAgICAgICBnb3RvIGV4aXQ7Ci0gICAgfQotCi0gICAgc3RhdHVzID0gcHNhX2hhc2hfZmluaXNoKCZvcCwgb3V0LCBNQkVEVExTX0xNU19NX05PREVfQllURVMocGFyYW1zLT50eXBlKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJm91dHB1dF9oYXNoX2xlbik7Ci0gICAgaWYgKHN0YXR1cyAhPSBQU0FfU1VDQ0VTUykgewotICAgICAgICBnb3RvIGV4aXQ7Ci0gICAgfQotCi1leGl0OgotICAgIHBzYV9oYXNoX2Fib3J0KCZvcCk7Ci0KLSAgICByZXR1cm4gUFNBX1RPX01CRURUTFNfRVJSKHN0YXR1cyk7Ci19Ci0KLS8qIENhbGN1bGF0ZSB0aGUgdmFsdWUgb2YgYW4gaW50ZXJuYWwgbm9kZSBvZiB0aGUgTWVya2xlIHRyZWUgKHdoaWNoIGlzIGEgaGFzaAotICogb2YgYSBwdWJsaWMga2V5IGFuZCBzb21lIG90aGVyIHBhcmFtZXRlcnMgbGlrZSB0aGUgbm9kZSBpbmRleCkuIFRoaXMgZnVuY3Rpb24KLSAqIGltcGxlbWVudHMgUkZDODU1NCBzZWN0aW9uIDUuMywgaW4gdGhlIGNhc2Ugd2hlcmUgciA8IDJeaC4KLSAqCi0gKiAgcGFyYW1zICAgICAgICAgICAgICBUaGUgTE1TIHBhcmFtZXRlciBzZXQsIHRoZSB1bmRlcmx5aW5nIExNT1RTCi0gKiAgICAgICAgICAgICAgICAgICAgICBwYXJhbWV0ZXIgc2V0LCBhbmQgSSB2YWx1ZSB3aGljaCBkZXNjcmliZSB0aGUga2V5Ci0gKiAgICAgICAgICAgICAgICAgICAgICBiZWluZyB1c2VkLgotICoKLSAqICBsZWZ0X25vZGUgICAgICAgICAgIFRoZSB2YWx1ZSBvZiB0aGUgY2hpbGQgb2YgdGhpcyBub2RlIHdoaWNoIGlzIG9uCi0gKiAgICAgICAgICAgICAgICAgICAgICB0aGUgbGVmdC1oYW5kIHNpZGUuIEFzIHdpdGggYWxsIG5vZGVzIG9uIHRoZQotICogICAgICAgICAgICAgICAgICAgICAgTWVya2xlIHRyZWUsIHRoaXMgaXMgYSBoYXNoIG91dHB1dC4KLSAqCi0gKiAgcmlnaHRfbm9kZSAgICAgICAgICBUaGUgdmFsdWUgb2YgdGhlIGNoaWxkIG9mIHRoaXMgbm9kZSB3aGljaCBpcyBvbgotICogICAgICAgICAgICAgICAgICAgICAgdGhlIHJpZ2h0LWhhbmQgc2lkZS4gQXMgd2l0aCBhbGwgbm9kZXMgb24gdGhlCi0gKiAgICAgICAgICAgICAgICAgICAgICBNZXJrbGUgdHJlZSwgdGhpcyBpcyBhIGhhc2ggb3V0cHV0LgotICoKLSAqICByX25vZGVfaWR4ICAgICAgICAgIFRoZSBpbmRleCBvZiB0aGlzIG5vZGUgaW4gdGhlIE1lcmtsZSB0cmVlLiBOb3RlCi0gKiAgICAgICAgICAgICAgICAgICAgICB0aGF0IHRoZSByb290IG5vZGUgb2YgdGhlIE1lcmtsZSB0cmVlIGlzCi0gKiAgICAgICAgICAgICAgICAgICAgICAxLWluZGV4ZWQuCi0gKgotICogIG91dCAgICAgICAgICAgICAgICAgVGhlIG91dHB1dCBub2RlIHZhbHVlLCB3aGljaCBpcyBhIGhhc2ggb3V0cHV0LgotICovCi1zdGF0aWMgaW50IGNyZWF0ZV9tZXJrbGVfaW50ZXJuYWxfdmFsdWUoY29uc3QgbWJlZHRsc19sbXNfcGFyYW1ldGVyc190ICpwYXJhbXMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdW5zaWduZWQgY2hhciAqbGVmdF9ub2RlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgKnJpZ2h0X25vZGUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50IHJfbm9kZV9pZHgsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgY2hhciAqb3V0KQotewotICAgIHBzYV9oYXNoX29wZXJhdGlvbl90IG9wOwotICAgIHBzYV9zdGF0dXNfdCBzdGF0dXMgPSBQU0FfRVJST1JfQ09SUlVQVElPTl9ERVRFQ1RFRDsKLSAgICBzaXplX3Qgb3V0cHV0X2hhc2hfbGVuOwotICAgIHVuc2lnbmVkIGNoYXIgcl9ub2RlX2lkeF9ieXRlc1s0XTsKLQotICAgIG9wID0gcHNhX2hhc2hfb3BlcmF0aW9uX2luaXQoKTsKLSAgICBzdGF0dXMgPSBwc2FfaGFzaF9zZXR1cCgmb3AsIFBTQV9BTEdfU0hBXzI1Nik7Ci0gICAgaWYgKHN0YXR1cyAhPSBQU0FfU1VDQ0VTUykgewotICAgICAgICBnb3RvIGV4aXQ7Ci0gICAgfQotCi0gICAgc3RhdHVzID0gcHNhX2hhc2hfdXBkYXRlKCZvcCwgcGFyYW1zLT5JX2tleV9pZGVudGlmaWVyLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNQkVEVExTX0xNT1RTX0lfS0VZX0lEX0xFTik7Ci0gICAgaWYgKHN0YXR1cyAhPSBQU0FfU1VDQ0VTUykgewotICAgICAgICBnb3RvIGV4aXQ7Ci0gICAgfQotCi0gICAgTUJFRFRMU19QVVRfVUlOVDMyX0JFKHJfbm9kZV9pZHgsIHJfbm9kZV9pZHhfYnl0ZXMsIDApOwotICAgIHN0YXR1cyA9IHBzYV9oYXNoX3VwZGF0ZSgmb3AsIHJfbm9kZV9pZHhfYnl0ZXMsIDQpOwotICAgIGlmIChzdGF0dXMgIT0gUFNBX1NVQ0NFU1MpIHsKLSAgICAgICAgZ290byBleGl0OwotICAgIH0KLQotICAgIHN0YXR1cyA9IHBzYV9oYXNoX3VwZGF0ZSgmb3AsIERfSU5UUl9DT05TVEFOVF9CWVRFUywgRF9DT05TVF9MRU4pOwotICAgIGlmIChzdGF0dXMgIT0gUFNBX1NVQ0NFU1MpIHsKLSAgICAgICAgZ290byBleGl0OwotICAgIH0KLQotICAgIHN0YXR1cyA9IHBzYV9oYXNoX3VwZGF0ZSgmb3AsIGxlZnRfbm9kZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTUJFRFRMU19MTVNfTV9OT0RFX0JZVEVTKHBhcmFtcy0+dHlwZSkpOwotICAgIGlmIChzdGF0dXMgIT0gUFNBX1NVQ0NFU1MpIHsKLSAgICAgICAgZ290byBleGl0OwotICAgIH0KLQotICAgIHN0YXR1cyA9IHBzYV9oYXNoX3VwZGF0ZSgmb3AsIHJpZ2h0X25vZGUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1CRURUTFNfTE1TX01fTk9ERV9CWVRFUyhwYXJhbXMtPnR5cGUpKTsKLSAgICBpZiAoc3RhdHVzICE9IFBTQV9TVUNDRVNTKSB7Ci0gICAgICAgIGdvdG8gZXhpdDsKLSAgICB9Ci0KLSAgICBzdGF0dXMgPSBwc2FfaGFzaF9maW5pc2goJm9wLCBvdXQsIE1CRURUTFNfTE1TX01fTk9ERV9CWVRFUyhwYXJhbXMtPnR5cGUpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmb3V0cHV0X2hhc2hfbGVuKTsKLSAgICBpZiAoc3RhdHVzICE9IFBTQV9TVUNDRVNTKSB7Ci0gICAgICAgIGdvdG8gZXhpdDsKLSAgICB9Ci0KLWV4aXQ6Ci0gICAgcHNhX2hhc2hfYWJvcnQoJm9wKTsKLQotICAgIHJldHVybiBQU0FfVE9fTUJFRFRMU19FUlIoc3RhdHVzKTsKLX0KLQotdm9pZCBtYmVkdGxzX2xtc19wdWJsaWNfaW5pdChtYmVkdGxzX2xtc19wdWJsaWNfdCAqY3R4KQotewotICAgIG1lbXNldChjdHgsIDAsIHNpemVvZigqY3R4KSk7Ci19Ci0KLXZvaWQgbWJlZHRsc19sbXNfcHVibGljX2ZyZWUobWJlZHRsc19sbXNfcHVibGljX3QgKmN0eCkKLXsKLSAgICBtYmVkdGxzX3BsYXRmb3JtX3plcm9pemUoY3R4LCBzaXplb2YoKmN0eCkpOwotfQotCi1pbnQgbWJlZHRsc19sbXNfaW1wb3J0X3B1YmxpY19rZXkobWJlZHRsc19sbXNfcHVibGljX3QgKmN0eCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1bnNpZ25lZCBjaGFyICprZXksIHNpemVfdCBrZXlfc2l6ZSkKLXsKLSAgICBtYmVkdGxzX2xtc19hbGdvcml0aG1fdHlwZV90IHR5cGU7Ci0gICAgbWJlZHRsc19sbW90c19hbGdvcml0aG1fdHlwZV90IG90c3R5cGU7Ci0KLSAgICB0eXBlID0gKG1iZWR0bHNfbG1zX2FsZ29yaXRobV90eXBlX3QpIE1CRURUTFNfR0VUX1VJTlQzMl9CRShrZXksIFBVQkxJQ19LRVlfVFlQRV9PRkZTRVQpOwotICAgIGlmICh0eXBlICE9IE1CRURUTFNfTE1TX1NIQTI1Nl9NMzJfSDEwKSB7Ci0gICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9MTVNfQkFEX0lOUFVUX0RBVEE7Ci0gICAgfQotICAgIGN0eC0+cGFyYW1zLnR5cGUgPSB0eXBlOwotCi0gICAgaWYgKGtleV9zaXplICE9IE1CRURUTFNfTE1TX1BVQkxJQ19LRVlfTEVOKGN0eC0+cGFyYW1zLnR5cGUpKSB7Ci0gICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9MTVNfQkFEX0lOUFVUX0RBVEE7Ci0gICAgfQotCi0gICAgb3RzdHlwZSA9IChtYmVkdGxzX2xtb3RzX2FsZ29yaXRobV90eXBlX3QpCi0gICAgICAgICAgICAgIE1CRURUTFNfR0VUX1VJTlQzMl9CRShrZXksIFBVQkxJQ19LRVlfT1RTVFlQRV9PRkZTRVQpOwotICAgIGlmIChvdHN0eXBlICE9IE1CRURUTFNfTE1PVFNfU0hBMjU2X04zMl9XOCkgewotICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfTE1TX0JBRF9JTlBVVF9EQVRBOwotICAgIH0KLSAgICBjdHgtPnBhcmFtcy5vdHN0eXBlID0gb3RzdHlwZTsKLQotICAgIG1lbWNweShjdHgtPnBhcmFtcy5JX2tleV9pZGVudGlmaWVyLAotICAgICAgICAgICBrZXkgKyBQVUJMSUNfS0VZX0lfS0VZX0lEX09GRlNFVCwKLSAgICAgICAgICAgTUJFRFRMU19MTU9UU19JX0tFWV9JRF9MRU4pOwotICAgIG1lbWNweShjdHgtPlRfMV9wdWJfa2V5LCBrZXkgKyBQVUJMSUNfS0VZX1JPT1RfTk9ERV9PRkZTRVQsCi0gICAgICAgICAgIE1CRURUTFNfTE1TX01fTk9ERV9CWVRFUyhjdHgtPnBhcmFtcy50eXBlKSk7Ci0KLSAgICBjdHgtPmhhdmVfcHVibGljX2tleSA9IDE7Ci0KLSAgICByZXR1cm4gMDsKLX0KLQotaW50IG1iZWR0bHNfbG1zX2V4cG9ydF9wdWJsaWNfa2V5KGNvbnN0IG1iZWR0bHNfbG1zX3B1YmxpY190ICpjdHgsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgY2hhciAqa2V5LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBrZXlfc2l6ZSwgc2l6ZV90ICprZXlfbGVuKQotewotICAgIGlmIChrZXlfc2l6ZSA8IE1CRURUTFNfTE1TX1BVQkxJQ19LRVlfTEVOKGN0eC0+cGFyYW1zLnR5cGUpKSB7Ci0gICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9MTVNfQlVGRkVSX1RPT19TTUFMTDsKLSAgICB9Ci0KLSAgICBpZiAoIWN0eC0+aGF2ZV9wdWJsaWNfa2V5KSB7Ci0gICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9MTVNfQkFEX0lOUFVUX0RBVEE7Ci0gICAgfQotCi0gICAgTUJFRFRMU19QVVRfVUlOVDMyX0JFKGN0eC0+cGFyYW1zLnR5cGUsIGtleSwgUFVCTElDX0tFWV9UWVBFX09GRlNFVCk7Ci0gICAgTUJFRFRMU19QVVRfVUlOVDMyX0JFKGN0eC0+cGFyYW1zLm90c3R5cGUsIGtleSwgUFVCTElDX0tFWV9PVFNUWVBFX09GRlNFVCk7Ci0gICAgbWVtY3B5KGtleSArIFBVQkxJQ19LRVlfSV9LRVlfSURfT0ZGU0VULAotICAgICAgICAgICBjdHgtPnBhcmFtcy5JX2tleV9pZGVudGlmaWVyLAotICAgICAgICAgICBNQkVEVExTX0xNT1RTX0lfS0VZX0lEX0xFTik7Ci0gICAgbWVtY3B5KGtleSArUFVCTElDX0tFWV9ST09UX05PREVfT0ZGU0VULAotICAgICAgICAgICBjdHgtPlRfMV9wdWJfa2V5LAotICAgICAgICAgICBNQkVEVExTX0xNU19NX05PREVfQllURVMoY3R4LT5wYXJhbXMudHlwZSkpOwotCi0gICAgaWYgKGtleV9sZW4gIT0gTlVMTCkgewotICAgICAgICAqa2V5X2xlbiA9IE1CRURUTFNfTE1TX1BVQkxJQ19LRVlfTEVOKGN0eC0+cGFyYW1zLnR5cGUpOwotICAgIH0KLQotICAgIHJldHVybiAwOwotfQotCi1pbnQgbWJlZHRsc19sbXNfdmVyaWZ5KGNvbnN0IG1iZWR0bHNfbG1zX3B1YmxpY190ICpjdHgsCi0gICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgKm1zZywgc2l6ZV90IG1zZ19zaXplLAotICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1bnNpZ25lZCBjaGFyICpzaWcsIHNpemVfdCBzaWdfc2l6ZSkKLXsKLSAgICB1bnNpZ25lZCBpbnQgcV9sZWFmX2lkZW50aWZpZXI7Ci0gICAgdW5zaWduZWQgY2hhciBLY19jYW5kaWRhdGVfb3RzX3B1Yl9rZXlbTUJFRFRMU19MTU9UU19OX0hBU0hfTEVOX01BWF07Ci0gICAgdW5zaWduZWQgY2hhciBUY19jYW5kaWRhdGVfcm9vdF9ub2RlW01CRURUTFNfTE1TX01fTk9ERV9CWVRFU19NQVhdOwotICAgIHVuc2lnbmVkIGludCBoZWlnaHQ7Ci0gICAgdW5zaWduZWQgaW50IGN1cnJfbm9kZV9pZDsKLSAgICB1bnNpZ25lZCBpbnQgcGFyZW50X25vZGVfaWQ7Ci0gICAgY29uc3QgdW5zaWduZWQgY2hhciAqbGVmdF9ub2RlOwotICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgKnJpZ2h0X25vZGU7Ci0gICAgbWJlZHRsc19sbW90c19wYXJhbWV0ZXJzX3Qgb3RzX3BhcmFtczsKLSAgICBpbnQgcmV0ID0gTUJFRFRMU19FUlJfRVJST1JfQ09SUlVQVElPTl9ERVRFQ1RFRDsKLQotICAgIGlmICghY3R4LT5oYXZlX3B1YmxpY19rZXkpIHsKLSAgICAgICAgcmV0dXJuIE1CRURUTFNfRVJSX0xNU19CQURfSU5QVVRfREFUQTsKLSAgICB9Ci0KLSAgICBpZiAoY3R4LT5wYXJhbXMudHlwZQotICAgICAgICAhPSBNQkVEVExTX0xNU19TSEEyNTZfTTMyX0gxMCkgewotICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfTE1TX0JBRF9JTlBVVF9EQVRBOwotICAgIH0KLQotICAgIGlmIChjdHgtPnBhcmFtcy5vdHN0eXBlCi0gICAgICAgICE9IE1CRURUTFNfTE1PVFNfU0hBMjU2X04zMl9XOCkgewotICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfTE1TX0JBRF9JTlBVVF9EQVRBOwotICAgIH0KLQotICAgIGlmIChzaWdfc2l6ZSAhPSBNQkVEVExTX0xNU19TSUdfTEVOKGN0eC0+cGFyYW1zLnR5cGUsIGN0eC0+cGFyYW1zLm90c3R5cGUpKSB7Ci0gICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9MTVNfVkVSSUZZX0ZBSUxFRDsKLSAgICB9Ci0KLSAgICBpZiAoc2lnX3NpemUgPCBTSUdfT1RTX1NJR19PRkZTRVQgKyBNQkVEVExTX0xNT1RTX1RZUEVfTEVOKSB7Ci0gICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9MTVNfVkVSSUZZX0ZBSUxFRDsKLSAgICB9Ci0KLSAgICBpZiAoTUJFRFRMU19HRVRfVUlOVDMyX0JFKHNpZywgU0lHX09UU19TSUdfT0ZGU0VUICsgTUJFRFRMU19MTU9UU19TSUdfVFlQRV9PRkZTRVQpCi0gICAgICAgICE9IE1CRURUTFNfTE1PVFNfU0hBMjU2X04zMl9XOCkgewotICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfTE1TX1ZFUklGWV9GQUlMRUQ7Ci0gICAgfQotCi0gICAgaWYgKHNpZ19zaXplIDwgU0lHX1RZUEVfT0ZGU0VUKGN0eC0+cGFyYW1zLm90c3R5cGUpICsgTUJFRFRMU19MTVNfVFlQRV9MRU4pIHsKLSAgICAgICAgcmV0dXJuIE1CRURUTFNfRVJSX0xNU19WRVJJRllfRkFJTEVEOwotICAgIH0KLQotICAgIGlmIChNQkVEVExTX0dFVF9VSU5UMzJfQkUoc2lnLCBTSUdfVFlQRV9PRkZTRVQoY3R4LT5wYXJhbXMub3RzdHlwZSkpCi0gICAgICAgICE9IE1CRURUTFNfTE1TX1NIQTI1Nl9NMzJfSDEwKSB7Ci0gICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9MTVNfVkVSSUZZX0ZBSUxFRDsKLSAgICB9Ci0KLQotICAgIHFfbGVhZl9pZGVudGlmaWVyID0gTUJFRFRMU19HRVRfVUlOVDMyX0JFKHNpZywgU0lHX1FfTEVBRl9JRF9PRkZTRVQpOwotCi0gICAgaWYgKHFfbGVhZl9pZGVudGlmaWVyID49IE1FUktMRV9UUkVFX0xFQUZfTk9ERV9BTShjdHgtPnBhcmFtcy50eXBlKSkgewotICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfTE1TX1ZFUklGWV9GQUlMRUQ7Ci0gICAgfQotCi0gICAgbWVtY3B5KG90c19wYXJhbXMuSV9rZXlfaWRlbnRpZmllciwKLSAgICAgICAgICAgY3R4LT5wYXJhbXMuSV9rZXlfaWRlbnRpZmllciwKLSAgICAgICAgICAgTUJFRFRMU19MTU9UU19JX0tFWV9JRF9MRU4pOwotICAgIE1CRURUTFNfUFVUX1VJTlQzMl9CRShxX2xlYWZfaWRlbnRpZmllciwgb3RzX3BhcmFtcy5xX2xlYWZfaWRlbnRpZmllciwgMCk7Ci0gICAgb3RzX3BhcmFtcy50eXBlID0gY3R4LT5wYXJhbXMub3RzdHlwZTsKLQotICAgIHJldCA9IG1iZWR0bHNfbG1vdHNfY2FsY3VsYXRlX3B1YmxpY19rZXlfY2FuZGlkYXRlKCZvdHNfcGFyYW1zLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1zZywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtc2dfc2l6ZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaWcgKyBTSUdfT1RTX1NJR19PRkZTRVQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTUJFRFRMU19MTU9UU19TSUdfTEVOKGN0eC0+cGFyYW1zLm90c3R5cGUpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEtjX2NhbmRpZGF0ZV9vdHNfcHViX2tleSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplb2YoS2NfY2FuZGlkYXRlX290c19wdWJfa2V5KSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOVUxMKTsKLSAgICBpZiAocmV0ICE9IDApIHsKLSAgICAgICAgcmV0dXJuIE1CRURUTFNfRVJSX0xNU19WRVJJRllfRkFJTEVEOwotICAgIH0KLQotICAgIGNyZWF0ZV9tZXJrbGVfbGVhZl92YWx1ZSgKLSAgICAgICAgJmN0eC0+cGFyYW1zLAotICAgICAgICBLY19jYW5kaWRhdGVfb3RzX3B1Yl9rZXksCi0gICAgICAgIE1FUktMRV9UUkVFX0lOVEVSTkFMX05PREVfQU0oY3R4LT5wYXJhbXMudHlwZSkgKyBxX2xlYWZfaWRlbnRpZmllciwKLSAgICAgICAgVGNfY2FuZGlkYXRlX3Jvb3Rfbm9kZSk7Ci0KLSAgICBjdXJyX25vZGVfaWQgPSBNRVJLTEVfVFJFRV9JTlRFUk5BTF9OT0RFX0FNKGN0eC0+cGFyYW1zLnR5cGUpICsKLSAgICAgICAgICAgICAgICAgICBxX2xlYWZfaWRlbnRpZmllcjsKLQotICAgIGZvciAoaGVpZ2h0ID0gMDsgaGVpZ2h0IDwgTUJFRFRMU19MTVNfSF9UUkVFX0hFSUdIVChjdHgtPnBhcmFtcy50eXBlKTsKLSAgICAgICAgIGhlaWdodCsrKSB7Ci0gICAgICAgIHBhcmVudF9ub2RlX2lkID0gY3Vycl9ub2RlX2lkIC8gMjsKLQotICAgICAgICAvKiBMZWZ0L3JpZ2h0IG5vZGUgb3JkZXJpbmcgbWF0dGVycyBmb3IgdGhlIGhhc2ggKi8KLSAgICAgICAgaWYgKGN1cnJfbm9kZV9pZCAmIDEpIHsKLSAgICAgICAgICAgIGxlZnRfbm9kZSA9IHNpZyArIFNJR19QQVRIX09GRlNFVChjdHgtPnBhcmFtcy5vdHN0eXBlKSArCi0gICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQgKiBNQkVEVExTX0xNU19NX05PREVfQllURVMoY3R4LT5wYXJhbXMudHlwZSk7Ci0gICAgICAgICAgICByaWdodF9ub2RlID0gVGNfY2FuZGlkYXRlX3Jvb3Rfbm9kZTsKLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIGxlZnRfbm9kZSA9IFRjX2NhbmRpZGF0ZV9yb290X25vZGU7Ci0gICAgICAgICAgICByaWdodF9ub2RlID0gc2lnICsgU0lHX1BBVEhfT0ZGU0VUKGN0eC0+cGFyYW1zLm90c3R5cGUpICsKLSAgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQgKiBNQkVEVExTX0xNU19NX05PREVfQllURVMoY3R4LT5wYXJhbXMudHlwZSk7Ci0gICAgICAgIH0KLQotICAgICAgICBjcmVhdGVfbWVya2xlX2ludGVybmFsX3ZhbHVlKCZjdHgtPnBhcmFtcywgbGVmdF9ub2RlLCByaWdodF9ub2RlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhcmVudF9ub2RlX2lkLCBUY19jYW5kaWRhdGVfcm9vdF9ub2RlKTsKLQotICAgICAgICBjdXJyX25vZGVfaWQgLz0gMjsKLSAgICB9Ci0KLSAgICBpZiAobWVtY21wKFRjX2NhbmRpZGF0ZV9yb290X25vZGUsIGN0eC0+VF8xX3B1Yl9rZXksCi0gICAgICAgICAgICAgICBNQkVEVExTX0xNU19NX05PREVfQllURVMoY3R4LT5wYXJhbXMudHlwZSkpKSB7Ci0gICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9MTVNfVkVSSUZZX0ZBSUxFRDsKLSAgICB9Ci0KLSAgICByZXR1cm4gMDsKLX0KLQotI2lmIGRlZmluZWQoTUJFRFRMU19MTVNfUFJJVkFURSkKLQotLyogQ2FsY3VsYXRlIGEgZnVsbCBNZXJrbGUgdHJlZSBiYXNlZCBvbiBhIHByaXZhdGUga2V5LiBUaGlzIGZ1bmN0aW9uCi0gKiBpbXBsZW1lbnRzIFJGQzg1NTQgc2VjdGlvbiA1LjMsIGFuZCBpcyB1c2VkIHRvIGdlbmVyYXRlIGEgcHVibGljIGtleSAoYXMgdGhlCi0gKiBwdWJsaWMga2V5IGlzIHRoZSByb290IG5vZGUgb2YgdGhlIE1lcmtsZSB0cmVlKS4KLSAqCi0gKiAgY3R4ICAgICAgICAgICAgICAgICBUaGUgTE1TIHByaXZhdGUgY29udGV4dCwgY29udGFpbmluZyBhIHBhcmFtZXRlcgotICogICAgICAgICAgICAgICAgICAgICAgc2V0IGFuZCBwcml2YXRlIGtleSBtYXRlcmlhbCBjb25zaXN0aW5nIG9mIGJvdGgKLSAqICAgICAgICAgICAgICAgICAgICAgIHB1YmxpYyBhbmQgcHJpdmF0ZSBPVFMuCi0gKgotICogIHRyZWUgICAgICAgICAgICAgICAgVGhlIG91dHB1dCB0cmVlLCB3aGljaCBpcyAyXihIICsgMSkgaGFzaCBvdXRwdXRzLgotICogICAgICAgICAgICAgICAgICAgICAgSW4gdGhlIGNhc2Ugb2YgSD0xMCB3ZSBoYXZlIDIwNDggdHJlZSBub2RlcyAob2YKLSAqICAgICAgICAgICAgICAgICAgICAgIHdoaWNoIDEwMjQgb2YgdGhlbSBhcmUgbGVhZiBub2RlcykuIE5vdGUgdGhhdAotICogICAgICAgICAgICAgICAgICAgICAgYmVjYXVzZSB0aGUgTWVya2xlIHRyZWUgcm9vdCBpcyAxLWluZGV4ZWQsIHRoZSAwCi0gKiAgICAgICAgICAgICAgICAgICAgICBpbmRleCB0cmVlIG5vZGUgaXMgbmV2ZXIgdXNlZC4KLSAqLwotc3RhdGljIGludCBjYWxjdWxhdGVfbWVya2xlX3RyZWUoY29uc3QgbWJlZHRsc19sbXNfcHJpdmF0ZV90ICpjdHgsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBjaGFyICp0cmVlKQotewotICAgIHVuc2lnbmVkIGludCBwcml2X2tleV9pZHg7Ci0gICAgdW5zaWduZWQgaW50IHJfbm9kZV9pZHg7Ci0gICAgaW50IHJldCA9IE1CRURUTFNfRVJSX0VSUk9SX0NPUlJVUFRJT05fREVURUNURUQ7Ci0KLSAgICAvKiBGaXJzdCBjcmVhdGUgdGhlIGxlYWYgbm9kZXMsIGluIGFzY2VuZGluZyBvcmRlciAqLwotICAgIGZvciAocHJpdl9rZXlfaWR4ID0gMDsKLSAgICAgICAgIHByaXZfa2V5X2lkeCA8IE1FUktMRV9UUkVFX0lOVEVSTkFMX05PREVfQU0oY3R4LT5wYXJhbXMudHlwZSk7Ci0gICAgICAgICBwcml2X2tleV9pZHgrKykgewotICAgICAgICByX25vZGVfaWR4ID0gTUVSS0xFX1RSRUVfSU5URVJOQUxfTk9ERV9BTShjdHgtPnBhcmFtcy50eXBlKSArIHByaXZfa2V5X2lkeDsKLQotICAgICAgICByZXQgPSBjcmVhdGVfbWVya2xlX2xlYWZfdmFsdWUoJmN0eC0+cGFyYW1zLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3R4LT5vdHNfcHVibGljX2tleXNbcHJpdl9rZXlfaWR4XS5wdWJsaWNfa2V5LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcl9ub2RlX2lkeCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZ0cmVlW3Jfbm9kZV9pZHggKiBNQkVEVExTX0xNU19NX05PREVfQllURVMoCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3R4LT5wYXJhbXMudHlwZSldKTsKLSAgICAgICAgaWYgKHJldCAhPSAwKSB7Ci0gICAgICAgICAgICByZXR1cm4gcmV0OwotICAgICAgICB9Ci0gICAgfQotCi0gICAgLyogVGhlbiB0aGUgaW50ZXJuYWwgbm9kZXMsIGluIHJldmVyc2Ugb3JkZXIgc28gdGhhdCB3ZSBjYW4gZ3VhcmFudGVlIHRoZQotICAgICAqIHBhcmVudCBoYXMgYmVlbiBjcmVhdGVkICovCi0gICAgZm9yIChyX25vZGVfaWR4ID0gTUVSS0xFX1RSRUVfSU5URVJOQUxfTk9ERV9BTShjdHgtPnBhcmFtcy50eXBlKSAtIDE7Ci0gICAgICAgICByX25vZGVfaWR4ID4gMDsKLSAgICAgICAgIHJfbm9kZV9pZHgtLSkgewotICAgICAgICByZXQgPSBjcmVhdGVfbWVya2xlX2ludGVybmFsX3ZhbHVlKCZjdHgtPnBhcmFtcywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmdHJlZVsocl9ub2RlX2lkeCAqIDIpICoKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNQkVEVExTX0xNU19NX05PREVfQllURVMoY3R4LT5wYXJhbXMudHlwZSldLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZ0cmVlWyhyX25vZGVfaWR4ICogMiArIDEpICoKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNQkVEVExTX0xNU19NX05PREVfQllURVMoY3R4LT5wYXJhbXMudHlwZSldLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJfbm9kZV9pZHgsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJnRyZWVbcl9ub2RlX2lkeCAqCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTUJFRFRMU19MTVNfTV9OT0RFX0JZVEVTKGN0eC0+cGFyYW1zLnR5cGUpXSk7Ci0gICAgICAgIGlmIChyZXQgIT0gMCkgewotICAgICAgICAgICAgcmV0dXJuIHJldDsKLSAgICAgICAgfQotICAgIH0KLQotICAgIHJldHVybiAwOwotfQotCi0vKiBDYWxjdWxhdGUgYSBwYXRoIGZyb20gYSBsZWFmIG5vZGUgb2YgdGhlIE1lcmtsZSB0cmVlIHRvIHRoZSByb290IG9mIHRoZSB0cmVlLAotICogYW5kIHJldHVybiB0aGUgZnVsbCBwYXRoLiBUaGlzIGZ1bmN0aW9uIGltcGxlbWVudHMgUkZDODU1NCBzZWN0aW9uIDUuNC4xLCBhcwotICogdGhlIE1lcmtsZSBwYXRoIGlzIHRoZSBtYWluIGNvbXBvbmVudCBvZiBhbiBMTVMgc2lnbmF0dXJlLgotICoKLSAqICBjdHggICAgICAgICAgICAgICAgIFRoZSBMTVMgcHJpdmF0ZSBjb250ZXh0LCBjb250YWluaW5nIGEgcGFyYW1ldGVyCi0gKiAgICAgICAgICAgICAgICAgICAgICBzZXQgYW5kIHByaXZhdGUga2V5IG1hdGVyaWFsIGNvbnNpc3Rpbmcgb2YgYm90aAotICogICAgICAgICAgICAgICAgICAgICAgcHVibGljIGFuZCBwcml2YXRlIE9UUy4KLSAqCi0gKiAgbGVhZl9ub2RlX2lkICAgICAgICBXaGljaCBsZWFmIG5vZGUgdG8gY2FsY3VsYXRlIHRoZSBwYXRoIGZyb20uCi0gKgotICogIHBhdGggICAgICAgICAgICAgICAgVGhlIG91dHB1dCBwYXRoLCB3aGljaCBpcyBIIGhhc2ggb3V0cHV0cy4KLSAqLwotc3RhdGljIGludCBnZXRfbWVya2xlX3BhdGgobWJlZHRsc19sbXNfcHJpdmF0ZV90ICpjdHgsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgbGVhZl9ub2RlX2lkLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgY2hhciAqcGF0aCkKLXsKLSAgICBjb25zdCBzaXplX3Qgbm9kZV9ieXRlcyA9IE1CRURUTFNfTE1TX01fTk9ERV9CWVRFUyhjdHgtPnBhcmFtcy50eXBlKTsKLSAgICB1bnNpZ25lZCBpbnQgY3Vycl9ub2RlX2lkID0gbGVhZl9ub2RlX2lkOwotICAgIHVuc2lnbmVkIGludCBhZGphY2VudF9ub2RlX2lkOwotICAgIHVuc2lnbmVkIGNoYXIgKnRyZWUgPSBOVUxMOwotICAgIHVuc2lnbmVkIGludCBoZWlnaHQ7Ci0gICAgaW50IHJldCA9IE1CRURUTFNfRVJSX0VSUk9SX0NPUlJVUFRJT05fREVURUNURUQ7Ci0KLSAgICB0cmVlID0gbWJlZHRsc19jYWxsb2MoKHNpemVfdCkgTUVSS0xFX1RSRUVfTk9ERV9BTShjdHgtPnBhcmFtcy50eXBlKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgbm9kZV9ieXRlcyk7Ci0gICAgaWYgKHRyZWUgPT0gTlVMTCkgewotICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfTE1TX0FMTE9DX0ZBSUxFRDsKLSAgICB9Ci0KLSAgICByZXQgPSBjYWxjdWxhdGVfbWVya2xlX3RyZWUoY3R4LCB0cmVlKTsKLSAgICBpZiAocmV0ICE9IDApIHsKLSAgICAgICAgZ290byBleGl0OwotICAgIH0KLQotICAgIGZvciAoaGVpZ2h0ID0gMDsgaGVpZ2h0IDwgTUJFRFRMU19MTVNfSF9UUkVFX0hFSUdIVChjdHgtPnBhcmFtcy50eXBlKTsKLSAgICAgICAgIGhlaWdodCsrKSB7Ci0gICAgICAgIGFkamFjZW50X25vZGVfaWQgPSBjdXJyX25vZGVfaWQgXiAxOwotCi0gICAgICAgIG1lbWNweSgmcGF0aFtoZWlnaHQgKiBub2RlX2J5dGVzXSwKLSAgICAgICAgICAgICAgICZ0cmVlW2FkamFjZW50X25vZGVfaWQgKiBub2RlX2J5dGVzXSwgbm9kZV9ieXRlcyk7Ci0KLSAgICAgICAgY3Vycl9ub2RlX2lkID4+PSAxOwotICAgIH0KLQotICAgIHJldCA9IDA7Ci0KLWV4aXQ6Ci0gICAgbWJlZHRsc196ZXJvaXplX2FuZF9mcmVlKHRyZWUsIG5vZGVfYnl0ZXMgKgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoc2l6ZV90KSBNRVJLTEVfVFJFRV9OT0RFX0FNKGN0eC0+cGFyYW1zLnR5cGUpKTsKLQotICAgIHJldHVybiByZXQ7Ci19Ci0KLXZvaWQgbWJlZHRsc19sbXNfcHJpdmF0ZV9pbml0KG1iZWR0bHNfbG1zX3ByaXZhdGVfdCAqY3R4KQotewotICAgIG1lbXNldChjdHgsIDAsIHNpemVvZigqY3R4KSk7Ci19Ci0KLXZvaWQgbWJlZHRsc19sbXNfcHJpdmF0ZV9mcmVlKG1iZWR0bHNfbG1zX3ByaXZhdGVfdCAqY3R4KQotewotICAgIHVuc2lnbmVkIGludCBpZHg7Ci0KLSAgICBpZiAoY3R4LT5oYXZlX3ByaXZhdGVfa2V5KSB7Ci0gICAgICAgIGlmIChjdHgtPm90c19wcml2YXRlX2tleXMgIT0gTlVMTCkgewotICAgICAgICAgICAgZm9yIChpZHggPSAwOyBpZHggPCBNRVJLTEVfVFJFRV9MRUFGX05PREVfQU0oY3R4LT5wYXJhbXMudHlwZSk7IGlkeCsrKSB7Ci0gICAgICAgICAgICAgICAgbWJlZHRsc19sbW90c19wcml2YXRlX2ZyZWUoJmN0eC0+b3RzX3ByaXZhdGVfa2V5c1tpZHhdKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfQotCi0gICAgICAgIGlmIChjdHgtPm90c19wdWJsaWNfa2V5cyAhPSBOVUxMKSB7Ci0gICAgICAgICAgICBmb3IgKGlkeCA9IDA7IGlkeCA8IE1FUktMRV9UUkVFX0xFQUZfTk9ERV9BTShjdHgtPnBhcmFtcy50eXBlKTsgaWR4KyspIHsKLSAgICAgICAgICAgICAgICBtYmVkdGxzX2xtb3RzX3B1YmxpY19mcmVlKCZjdHgtPm90c19wdWJsaWNfa2V5c1tpZHhdKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfQotCi0gICAgICAgIG1iZWR0bHNfZnJlZShjdHgtPm90c19wcml2YXRlX2tleXMpOwotICAgICAgICBtYmVkdGxzX2ZyZWUoY3R4LT5vdHNfcHVibGljX2tleXMpOwotICAgIH0KLQotICAgIG1iZWR0bHNfcGxhdGZvcm1femVyb2l6ZShjdHgsIHNpemVvZigqY3R4KSk7Ci19Ci0KLQotaW50IG1iZWR0bHNfbG1zX2dlbmVyYXRlX3ByaXZhdGVfa2V5KG1iZWR0bHNfbG1zX3ByaXZhdGVfdCAqY3R4LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1iZWR0bHNfbG1zX2FsZ29yaXRobV90eXBlX3QgdHlwZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYmVkdGxzX2xtb3RzX2FsZ29yaXRobV90eXBlX3Qgb3RzdHlwZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgKCpmX3JuZykodm9pZCAqLCB1bnNpZ25lZCBjaGFyICosIHNpemVfdCksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdm9pZCAqcF9ybmcsIGNvbnN0IHVuc2lnbmVkIGNoYXIgKnNlZWQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IHNlZWRfc2l6ZSkKLXsKLSAgICB1bnNpZ25lZCBpbnQgaWR4ID0gMDsKLSAgICBpbnQgcmV0ID0gTUJFRFRMU19FUlJfRVJST1JfQ09SUlVQVElPTl9ERVRFQ1RFRDsKLQotICAgIGlmICh0eXBlICE9IE1CRURUTFNfTE1TX1NIQTI1Nl9NMzJfSDEwKSB7Ci0gICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9MTVNfQkFEX0lOUFVUX0RBVEE7Ci0gICAgfQotCi0gICAgaWYgKG90c3R5cGUgIT0gTUJFRFRMU19MTU9UU19TSEEyNTZfTjMyX1c4KSB7Ci0gICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9MTVNfQkFEX0lOUFVUX0RBVEE7Ci0gICAgfQotCi0gICAgaWYgKGN0eC0+aGF2ZV9wcml2YXRlX2tleSkgewotICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfTE1TX0JBRF9JTlBVVF9EQVRBOwotICAgIH0KLQotICAgIGN0eC0+cGFyYW1zLnR5cGUgPSB0eXBlOwotICAgIGN0eC0+cGFyYW1zLm90c3R5cGUgPSBvdHN0eXBlOwotICAgIGN0eC0+aGF2ZV9wcml2YXRlX2tleSA9IDE7Ci0KLSAgICByZXQgPSBmX3JuZyhwX3JuZywKLSAgICAgICAgICAgICAgICBjdHgtPnBhcmFtcy5JX2tleV9pZGVudGlmaWVyLAotICAgICAgICAgICAgICAgIE1CRURUTFNfTE1PVFNfSV9LRVlfSURfTEVOKTsKLSAgICBpZiAocmV0ICE9IDApIHsKLSAgICAgICAgZ290byBleGl0OwotICAgIH0KLQotICAgIC8qIFJlcXVpcmVzIGEgY2FzdCB0byBzaXplX3QgdG8gYXZvaWQgYW4gaW1wbGljaXQgY2FzdCB3YXJuaW5nIG9uIGNlcnRhaW4KLSAgICAgKiBwbGF0Zm9ybXMgKHBhcnRpY3VsYXJseSBXaW5kb3dzKSAqLwotICAgIGN0eC0+b3RzX3ByaXZhdGVfa2V5cyA9IG1iZWR0bHNfY2FsbG9jKChzaXplX3QpIE1FUktMRV9UUkVFX0xFQUZfTk9ERV9BTShjdHgtPnBhcmFtcy50eXBlKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplb2YoKmN0eC0+b3RzX3ByaXZhdGVfa2V5cykpOwotICAgIGlmIChjdHgtPm90c19wcml2YXRlX2tleXMgPT0gTlVMTCkgewotICAgICAgICByZXQgPSBNQkVEVExTX0VSUl9MTVNfQUxMT0NfRkFJTEVEOwotICAgICAgICBnb3RvIGV4aXQ7Ci0gICAgfQotCi0gICAgLyogUmVxdWlyZXMgYSBjYXN0IHRvIHNpemVfdCB0byBhdm9pZCBhbiBpbXBsaWNpdCBjYXN0IHdhcm5pbmcgb24gY2VydGFpbgotICAgICAqIHBsYXRmb3JtcyAocGFydGljdWxhcmx5IFdpbmRvd3MpICovCi0gICAgY3R4LT5vdHNfcHVibGljX2tleXMgPSBtYmVkdGxzX2NhbGxvYygoc2l6ZV90KSBNRVJLTEVfVFJFRV9MRUFGX05PREVfQU0oY3R4LT5wYXJhbXMudHlwZSksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplb2YoKmN0eC0+b3RzX3B1YmxpY19rZXlzKSk7Ci0gICAgaWYgKGN0eC0+b3RzX3B1YmxpY19rZXlzID09IE5VTEwpIHsKLSAgICAgICAgcmV0ID0gTUJFRFRMU19FUlJfTE1TX0FMTE9DX0ZBSUxFRDsKLSAgICAgICAgZ290byBleGl0OwotICAgIH0KLQotICAgIGZvciAoaWR4ID0gMDsgaWR4IDwgTUVSS0xFX1RSRUVfTEVBRl9OT0RFX0FNKGN0eC0+cGFyYW1zLnR5cGUpOyBpZHgrKykgewotICAgICAgICBtYmVkdGxzX2xtb3RzX3ByaXZhdGVfaW5pdCgmY3R4LT5vdHNfcHJpdmF0ZV9rZXlzW2lkeF0pOwotICAgICAgICBtYmVkdGxzX2xtb3RzX3B1YmxpY19pbml0KCZjdHgtPm90c19wdWJsaWNfa2V5c1tpZHhdKTsKLSAgICB9Ci0KLQotICAgIGZvciAoaWR4ID0gMDsgaWR4IDwgTUVSS0xFX1RSRUVfTEVBRl9OT0RFX0FNKGN0eC0+cGFyYW1zLnR5cGUpOyBpZHgrKykgewotICAgICAgICByZXQgPSBtYmVkdGxzX2xtb3RzX2dlbmVyYXRlX3ByaXZhdGVfa2V5KCZjdHgtPm90c19wcml2YXRlX2tleXNbaWR4XSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvdHN0eXBlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGN0eC0+cGFyYW1zLklfa2V5X2lkZW50aWZpZXIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWR4LCBzZWVkLCBzZWVkX3NpemUpOwotICAgICAgICBpZiAocmV0ICE9IDApIHsKLSAgICAgICAgICAgIGdvdG8gZXhpdDsKLSAgICAgICAgfQotCi0gICAgICAgIHJldCA9IG1iZWR0bHNfbG1vdHNfY2FsY3VsYXRlX3B1YmxpY19rZXkoJmN0eC0+b3RzX3B1YmxpY19rZXlzW2lkeF0sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJmN0eC0+b3RzX3ByaXZhdGVfa2V5c1tpZHhdKTsKLSAgICAgICAgaWYgKHJldCAhPSAwKSB7Ci0gICAgICAgICAgICBnb3RvIGV4aXQ7Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICBjdHgtPnFfbmV4dF91c2FibGVfa2V5ID0gMDsKLQotZXhpdDoKLSAgICBpZiAocmV0ICE9IDApIHsKLSAgICAgICAgbWJlZHRsc19sbXNfcHJpdmF0ZV9mcmVlKGN0eCk7Ci0gICAgfQotCi0gICAgcmV0dXJuIHJldDsKLX0KLQotaW50IG1iZWR0bHNfbG1zX2NhbGN1bGF0ZV9wdWJsaWNfa2V5KG1iZWR0bHNfbG1zX3B1YmxpY190ICpjdHgsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbWJlZHRsc19sbXNfcHJpdmF0ZV90ICpwcml2X2N0eCkKLXsKLSAgICBjb25zdCBzaXplX3Qgbm9kZV9ieXRlcyA9IE1CRURUTFNfTE1TX01fTk9ERV9CWVRFUyhwcml2X2N0eC0+cGFyYW1zLnR5cGUpOwotICAgIGludCByZXQgPSBNQkVEVExTX0VSUl9FUlJPUl9DT1JSVVBUSU9OX0RFVEVDVEVEOwotICAgIHVuc2lnbmVkIGNoYXIgKnRyZWUgPSBOVUxMOwotCi0gICAgaWYgKCFwcml2X2N0eC0+aGF2ZV9wcml2YXRlX2tleSkgewotICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfTE1TX0JBRF9JTlBVVF9EQVRBOwotICAgIH0KLQotICAgIGlmIChwcml2X2N0eC0+cGFyYW1zLnR5cGUKLSAgICAgICAgIT0gTUJFRFRMU19MTVNfU0hBMjU2X00zMl9IMTApIHsKLSAgICAgICAgcmV0dXJuIE1CRURUTFNfRVJSX0xNU19CQURfSU5QVVRfREFUQTsKLSAgICB9Ci0KLSAgICBpZiAocHJpdl9jdHgtPnBhcmFtcy5vdHN0eXBlCi0gICAgICAgICE9IE1CRURUTFNfTE1PVFNfU0hBMjU2X04zMl9XOCkgewotICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfTE1TX0JBRF9JTlBVVF9EQVRBOwotICAgIH0KLQotICAgIHRyZWUgPSBtYmVkdGxzX2NhbGxvYygoc2l6ZV90KSBNRVJLTEVfVFJFRV9OT0RFX0FNKHByaXZfY3R4LT5wYXJhbXMudHlwZSksCi0gICAgICAgICAgICAgICAgICAgICAgICAgIG5vZGVfYnl0ZXMpOwotICAgIGlmICh0cmVlID09IE5VTEwpIHsKLSAgICAgICAgcmV0dXJuIE1CRURUTFNfRVJSX0xNU19BTExPQ19GQUlMRUQ7Ci0gICAgfQotCi0gICAgbWVtY3B5KCZjdHgtPnBhcmFtcywgJnByaXZfY3R4LT5wYXJhbXMsCi0gICAgICAgICAgIHNpemVvZihtYmVkdGxzX2xtb3RzX3BhcmFtZXRlcnNfdCkpOwotCi0gICAgcmV0ID0gY2FsY3VsYXRlX21lcmtsZV90cmVlKHByaXZfY3R4LCB0cmVlKTsKLSAgICBpZiAocmV0ICE9IDApIHsKLSAgICAgICAgZ290byBleGl0OwotICAgIH0KLQotICAgIC8qIFJvb3Qgbm9kZSBpcyBhbHdheXMgYXQgcG9zaXRpb24gMSwgZHVlIHRvIDEtYmFzZWQgaW5kZXhpbmcgKi8KLSAgICBtZW1jcHkoY3R4LT5UXzFfcHViX2tleSwgJnRyZWVbbm9kZV9ieXRlc10sIG5vZGVfYnl0ZXMpOwotCi0gICAgY3R4LT5oYXZlX3B1YmxpY19rZXkgPSAxOwotCi0gICAgcmV0ID0gMDsKLQotZXhpdDoKLSAgICBtYmVkdGxzX3plcm9pemVfYW5kX2ZyZWUodHJlZSwgbm9kZV9ieXRlcyAqCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIChzaXplX3QpIE1FUktMRV9UUkVFX05PREVfQU0ocHJpdl9jdHgtPnBhcmFtcy50eXBlKSk7Ci0KLSAgICByZXR1cm4gcmV0OwotfQotCi0KLWludCBtYmVkdGxzX2xtc19zaWduKG1iZWR0bHNfbG1zX3ByaXZhdGVfdCAqY3R4LAotICAgICAgICAgICAgICAgICAgICAgaW50ICgqZl9ybmcpKHZvaWQgKiwgdW5zaWduZWQgY2hhciAqLCBzaXplX3QpLAotICAgICAgICAgICAgICAgICAgICAgdm9pZCAqcF9ybmcsIGNvbnN0IHVuc2lnbmVkIGNoYXIgKm1zZywKLSAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCBtc2dfc2l6ZSwgdW5zaWduZWQgY2hhciAqc2lnLCBzaXplX3Qgc2lnX3NpemUsCi0gICAgICAgICAgICAgICAgICAgICBzaXplX3QgKnNpZ19sZW4pCi17Ci0gICAgdWludDMyX3QgcV9sZWFmX2lkZW50aWZpZXI7Ci0gICAgaW50IHJldCA9IE1CRURUTFNfRVJSX0VSUk9SX0NPUlJVUFRJT05fREVURUNURUQ7Ci0KLSAgICBpZiAoIWN0eC0+aGF2ZV9wcml2YXRlX2tleSkgewotICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfTE1TX0JBRF9JTlBVVF9EQVRBOwotICAgIH0KLQotICAgIGlmIChzaWdfc2l6ZSA8IE1CRURUTFNfTE1TX1NJR19MRU4oY3R4LT5wYXJhbXMudHlwZSwgY3R4LT5wYXJhbXMub3RzdHlwZSkpIHsKLSAgICAgICAgcmV0dXJuIE1CRURUTFNfRVJSX0xNU19CVUZGRVJfVE9PX1NNQUxMOwotICAgIH0KLQotICAgIGlmIChjdHgtPnBhcmFtcy50eXBlICE9IE1CRURUTFNfTE1TX1NIQTI1Nl9NMzJfSDEwKSB7Ci0gICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9MTVNfQkFEX0lOUFVUX0RBVEE7Ci0gICAgfQotCi0gICAgaWYgKGN0eC0+cGFyYW1zLm90c3R5cGUKLSAgICAgICAgIT0gTUJFRFRMU19MTU9UU19TSEEyNTZfTjMyX1c4KSB7Ci0gICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9MTVNfQkFEX0lOUFVUX0RBVEE7Ci0gICAgfQotCi0gICAgaWYgKGN0eC0+cV9uZXh0X3VzYWJsZV9rZXkgPj0gTUVSS0xFX1RSRUVfTEVBRl9OT0RFX0FNKGN0eC0+cGFyYW1zLnR5cGUpKSB7Ci0gICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9MTVNfT1VUX09GX1BSSVZBVEVfS0VZUzsKLSAgICB9Ci0KLQotICAgIHFfbGVhZl9pZGVudGlmaWVyID0gY3R4LT5xX25leHRfdXNhYmxlX2tleTsKLSAgICAvKiBUaGlzIG5ldyB2YWx1ZSBtdXN0IF9hbHdheXNfIGJlIHdyaXR0ZW4gYmFjayB0byB0aGUgZGlzayBiZWZvcmUgdGhlCi0gICAgICogc2lnbmF0dXJlIGlzIHJldHVybmVkLgotICAgICAqLwotICAgIGN0eC0+cV9uZXh0X3VzYWJsZV9rZXkgKz0gMTsKLQotICAgIGlmIChNQkVEVExTX0xNU19TSUdfTEVOKGN0eC0+cGFyYW1zLnR5cGUsIGN0eC0+cGFyYW1zLm90c3R5cGUpCi0gICAgICAgIDwgU0lHX09UU19TSUdfT0ZGU0VUKSB7Ci0gICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9MTVNfQkFEX0lOUFVUX0RBVEE7Ci0gICAgfQotCi0gICAgcmV0ID0gbWJlZHRsc19sbW90c19zaWduKCZjdHgtPm90c19wcml2YXRlX2tleXNbcV9sZWFmX2lkZW50aWZpZXJdLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmX3JuZywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcF9ybmcsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1zZywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbXNnX3NpemUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpZyArIFNJR19PVFNfU0lHX09GRlNFVCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTUJFRFRMU19MTVNfU0lHX0xFTihjdHgtPnBhcmFtcy50eXBlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGN0eC0+cGFyYW1zLm90c3R5cGUpIC0gU0lHX09UU19TSUdfT0ZGU0VULAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOVUxMKTsKLSAgICBpZiAocmV0ICE9IDApIHsKLSAgICAgICAgcmV0dXJuIHJldDsKLSAgICB9Ci0KLSAgICBNQkVEVExTX1BVVF9VSU5UMzJfQkUoY3R4LT5wYXJhbXMudHlwZSwgc2lnLCBTSUdfVFlQRV9PRkZTRVQoY3R4LT5wYXJhbXMub3RzdHlwZSkpOwotICAgIE1CRURUTFNfUFVUX1VJTlQzMl9CRShxX2xlYWZfaWRlbnRpZmllciwgc2lnLCBTSUdfUV9MRUFGX0lEX09GRlNFVCk7Ci0KLSAgICByZXQgPSBnZXRfbWVya2xlX3BhdGgoY3R4LAotICAgICAgICAgICAgICAgICAgICAgICAgICBNRVJLTEVfVFJFRV9JTlRFUk5BTF9OT0RFX0FNKGN0eC0+cGFyYW1zLnR5cGUpICsgcV9sZWFmX2lkZW50aWZpZXIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgIHNpZyArIFNJR19QQVRIX09GRlNFVChjdHgtPnBhcmFtcy5vdHN0eXBlKSk7Ci0gICAgaWYgKHJldCAhPSAwKSB7Ci0gICAgICAgIHJldHVybiByZXQ7Ci0gICAgfQotCi0gICAgaWYgKHNpZ19sZW4gIT0gTlVMTCkgewotICAgICAgICAqc2lnX2xlbiA9IE1CRURUTFNfTE1TX1NJR19MRU4oY3R4LT5wYXJhbXMudHlwZSwgY3R4LT5wYXJhbXMub3RzdHlwZSk7Ci0gICAgfQotCi0KLSAgICByZXR1cm4gMDsKLX0KLQotI2VuZGlmIC8qIGRlZmluZWQoTUJFRFRMU19MTVNfUFJJVkFURSkgKi8KLSNlbmRpZiAvKiBkZWZpbmVkKE1CRURUTFNfTE1TX0MpICovCmRpZmYgLS1naXQgYS9saWJyYXJ5L21kLmMgYi9saWJyYXJ5L21kLmMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGM5NTg0NmEuLjAwMDAwMDAKLS0tIGEvbGlicmFyeS9tZC5jCisrKyAvZGV2L251bGwKQEAgLTEsMTEwOCArMCwwIEBACi0vKioKLSAqIFxmaWxlIG1kLmMKLSAqCi0gKiBcYnJpZWYgR2VuZXJpYyBtZXNzYWdlIGRpZ2VzdCB3cmFwcGVyIGZvciBNYmVkIFRMUwotICoKLSAqIFxhdXRob3IgQWRyaWFhbiBkZSBKb25nIDxkZWpvbmdAZm94LWl0LmNvbT4KLSAqCi0gKiAgQ29weXJpZ2h0IFRoZSBNYmVkIFRMUyBDb250cmlidXRvcnMKLSAqICBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMCBPUiBHUEwtMi4wLW9yLWxhdGVyCi0gKi8KLQotI2luY2x1ZGUgImNvbW1vbi5oIgotCi0vKgotICogQXZhaWxhYmlsaXR5IG9mIGZ1bmN0aW9ucyBpbiB0aGlzIG1vZHVsZSBpcyBjb250cm9sbGVkIGJ5IHR3bwotICogZmVhdHVyZSBtYWNyb3M6Ci0gKiAtIE1CRURUTFNfTURfQyBlbmFibGVzIHRoZSB3aG9sZSBtb2R1bGU7Ci0gKiAtIE1CRURUTFNfTURfTElHSFQgZW5hYmxlcyBvbmx5IGZ1bmN0aW9ucyBmb3IgaGFzaGluZyBhbmQgYWNjZXNzaW5nCi0gKiBtb3N0IGhhc2ggbWV0YWRhdGEgKGV2ZXJ5dGhpbmcgZXhjZXB0IHN0cmluZyBuYW1lcyk7IGlzIGl0Ci0gKiBhdXRvbWF0aWNhbGx5IHNldCB3aGVuZXZlciBNQkVEVExTX01EX0MgaXMgZGVmaW5lZC4KLSAqCi0gKiBJbiB0aGlzIGZpbGUsIGZ1bmN0aW9ucyBmcm9tIE1EX0xJR0hUIGFyZSBhdCB0aGUgdG9wLCBNRF9DIGF0IHRoZSBlbmQuCi0gKgotICogSW4gdGhlIGZ1dHVyZSB3ZSBtYXkgd2FudCB0byBjaGFuZ2UgdGhlIGNvbnRyYWN0IG9mIHNvbWUgZnVuY3Rpb25zCi0gKiAoYmVoYXZpb3VyIHdpdGggTlVMTCBhcmd1bWVudHMpIGRlcGVuZGluZyBvbiB3aGV0aGVyIE1EX0MgaXMgZGVmaW5lZCBvcgotICogb25seSBNRF9MSUdIVC4gQWxzbywgdGhlIGV4YWN0IHNjb3BlIG9mIE1EX0xJR0hUIG1pZ2h0IHZhcnkuCi0gKgotICogRm9yIHRoZXNlIHJlYXNvbnMsIHdlJ3JlIGtlZXBpbmcgTURfTElHSFQgaW50ZXJuYWwgZm9yIG5vdy4KLSAqLwotI2lmIGRlZmluZWQoTUJFRFRMU19NRF9MSUdIVCkKLQotI2luY2x1ZGUgIm1iZWR0bHMvbWQuaCIKLSNpbmNsdWRlICJtZF93cmFwLmgiCi0jaW5jbHVkZSAibWJlZHRscy9wbGF0Zm9ybV91dGlsLmgiCi0jaW5jbHVkZSAibWJlZHRscy9lcnJvci5oIgotCi0jaW5jbHVkZSAibWJlZHRscy9tZDUuaCIKLSNpbmNsdWRlICJtYmVkdGxzL3JpcGVtZDE2MC5oIgotI2luY2x1ZGUgIm1iZWR0bHMvc2hhMS5oIgotI2luY2x1ZGUgIm1iZWR0bHMvc2hhMjU2LmgiCi0jaW5jbHVkZSAibWJlZHRscy9zaGE1MTIuaCIKLSNpbmNsdWRlICJtYmVkdGxzL3NoYTMuaCIKLQotI2lmIGRlZmluZWQoTUJFRFRMU19QU0FfQ1JZUFRPX0NMSUVOVCkKLSNpbmNsdWRlIDxwc2EvY3J5cHRvLmg+Ci0jaW5jbHVkZSAibWRfcHNhLmgiCi0jaW5jbHVkZSAicHNhX3V0aWxfaW50ZXJuYWwuaCIKLSNlbmRpZgotCi0jaWYgZGVmaW5lZChNQkVEVExTX01EX1NPTUVfUFNBKQotI2luY2x1ZGUgInBzYV9jcnlwdG9fY29yZS5oIgotI2VuZGlmCi0KLSNpbmNsdWRlICJtYmVkdGxzL3BsYXRmb3JtLmgiCi0KLSNpbmNsdWRlIDxzdHJpbmcuaD4KLQotI2lmIGRlZmluZWQoTUJFRFRMU19GU19JTykKLSNpbmNsdWRlIDxzdGRpby5oPgotI2VuZGlmCi0KLS8qIFNlZSBjb21tZW50IGFib3ZlIE1CRURUTFNfTURfTUFYX1NJWkUgaW4gbWQuaCAqLwotI2lmIGRlZmluZWQoTUJFRFRMU19QU0FfQ1JZUFRPX0MpICYmIE1CRURUTFNfTURfTUFYX1NJWkUgPCBQU0FfSEFTSF9NQVhfU0laRQotI2Vycm9yICJJbnRlcm5hbCBlcnJvcjogTUJFRFRMU19NRF9NQVhfU0laRSA8IFBTQV9IQVNIX01BWF9TSVpFIgotI2VuZGlmCi0KLSNpZiBkZWZpbmVkKE1CRURUTFNfTURfQykKLSNkZWZpbmUgTURfSU5GTyh0eXBlLCBvdXRfc2l6ZSwgYmxvY2tfc2l6ZSkgdHlwZSwgb3V0X3NpemUsIGJsb2NrX3NpemUsCi0jZWxzZQotI2RlZmluZSBNRF9JTkZPKHR5cGUsIG91dF9zaXplLCBibG9ja19zaXplKSB0eXBlLCBvdXRfc2l6ZSwKLSNlbmRpZgotCi0jaWYgZGVmaW5lZChNQkVEVExTX01EX0NBTl9NRDUpCi1zdGF0aWMgY29uc3QgbWJlZHRsc19tZF9pbmZvX3QgbWJlZHRsc19tZDVfaW5mbyA9IHsKLSAgICBNRF9JTkZPKE1CRURUTFNfTURfTUQ1LCAxNiwgNjQpCi19OwotI2VuZGlmCi0KLSNpZiBkZWZpbmVkKE1CRURUTFNfTURfQ0FOX1JJUEVNRDE2MCkKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21kX2luZm9fdCBtYmVkdGxzX3JpcGVtZDE2MF9pbmZvID0gewotICAgIE1EX0lORk8oTUJFRFRMU19NRF9SSVBFTUQxNjAsIDIwLCA2NCkKLX07Ci0jZW5kaWYKLQotI2lmIGRlZmluZWQoTUJFRFRMU19NRF9DQU5fU0hBMSkKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21kX2luZm9fdCBtYmVkdGxzX3NoYTFfaW5mbyA9IHsKLSAgICBNRF9JTkZPKE1CRURUTFNfTURfU0hBMSwgMjAsIDY0KQotfTsKLSNlbmRpZgotCi0jaWYgZGVmaW5lZChNQkVEVExTX01EX0NBTl9TSEEyMjQpCi1zdGF0aWMgY29uc3QgbWJlZHRsc19tZF9pbmZvX3QgbWJlZHRsc19zaGEyMjRfaW5mbyA9IHsKLSAgICBNRF9JTkZPKE1CRURUTFNfTURfU0hBMjI0LCAyOCwgNjQpCi19OwotI2VuZGlmCi0KLSNpZiBkZWZpbmVkKE1CRURUTFNfTURfQ0FOX1NIQTI1NikKLXN0YXRpYyBjb25zdCBtYmVkdGxzX21kX2luZm9fdCBtYmVkdGxzX3NoYTI1Nl9pbmZvID0gewotICAgIE1EX0lORk8oTUJFRFRMU19NRF9TSEEyNTYsIDMyLCA2NCkKLX07Ci0jZW5kaWYKLQotI2lmIGRlZmluZWQoTUJFRFRMU19NRF9DQU5fU0hBMzg0KQotc3RhdGljIGNvbnN0IG1iZWR0bHNfbWRfaW5mb190IG1iZWR0bHNfc2hhMzg0X2luZm8gPSB7Ci0gICAgTURfSU5GTyhNQkVEVExTX01EX1NIQTM4NCwgNDgsIDEyOCkKLX07Ci0jZW5kaWYKLQotI2lmIGRlZmluZWQoTUJFRFRMU19NRF9DQU5fU0hBNTEyKQotc3RhdGljIGNvbnN0IG1iZWR0bHNfbWRfaW5mb190IG1iZWR0bHNfc2hhNTEyX2luZm8gPSB7Ci0gICAgTURfSU5GTyhNQkVEVExTX01EX1NIQTUxMiwgNjQsIDEyOCkKLX07Ci0jZW5kaWYKLQotI2lmIGRlZmluZWQoTUJFRFRMU19NRF9DQU5fU0hBM18yMjQpCi1zdGF0aWMgY29uc3QgbWJlZHRsc19tZF9pbmZvX3QgbWJlZHRsc19zaGEzXzIyNF9pbmZvID0gewotICAgIE1EX0lORk8oTUJFRFRMU19NRF9TSEEzXzIyNCwgMjgsIDE0NCkKLX07Ci0jZW5kaWYKLQotI2lmIGRlZmluZWQoTUJFRFRMU19NRF9DQU5fU0hBM18yNTYpCi1zdGF0aWMgY29uc3QgbWJlZHRsc19tZF9pbmZvX3QgbWJlZHRsc19zaGEzXzI1Nl9pbmZvID0gewotICAgIE1EX0lORk8oTUJFRFRMU19NRF9TSEEzXzI1NiwgMzIsIDEzNikKLX07Ci0jZW5kaWYKLQotI2lmIGRlZmluZWQoTUJFRFRMU19NRF9DQU5fU0hBM18zODQpCi1zdGF0aWMgY29uc3QgbWJlZHRsc19tZF9pbmZvX3QgbWJlZHRsc19zaGEzXzM4NF9pbmZvID0gewotICAgIE1EX0lORk8oTUJFRFRMU19NRF9TSEEzXzM4NCwgNDgsIDEwNCkKLX07Ci0jZW5kaWYKLQotI2lmIGRlZmluZWQoTUJFRFRMU19NRF9DQU5fU0hBM181MTIpCi1zdGF0aWMgY29uc3QgbWJlZHRsc19tZF9pbmZvX3QgbWJlZHRsc19zaGEzXzUxMl9pbmZvID0gewotICAgIE1EX0lORk8oTUJFRFRMU19NRF9TSEEzXzUxMiwgNjQsIDcyKQotfTsKLSNlbmRpZgotCi1jb25zdCBtYmVkdGxzX21kX2luZm9fdCAqbWJlZHRsc19tZF9pbmZvX2Zyb21fdHlwZShtYmVkdGxzX21kX3R5cGVfdCBtZF90eXBlKQotewotICAgIHN3aXRjaCAobWRfdHlwZSkgewotI2lmIGRlZmluZWQoTUJFRFRMU19NRF9DQU5fTUQ1KQotICAgICAgICBjYXNlIE1CRURUTFNfTURfTUQ1OgotICAgICAgICAgICAgcmV0dXJuICZtYmVkdGxzX21kNV9pbmZvOwotI2VuZGlmCi0jaWYgZGVmaW5lZChNQkVEVExTX01EX0NBTl9SSVBFTUQxNjApCi0gICAgICAgIGNhc2UgTUJFRFRMU19NRF9SSVBFTUQxNjA6Ci0gICAgICAgICAgICByZXR1cm4gJm1iZWR0bHNfcmlwZW1kMTYwX2luZm87Ci0jZW5kaWYKLSNpZiBkZWZpbmVkKE1CRURUTFNfTURfQ0FOX1NIQTEpCi0gICAgICAgIGNhc2UgTUJFRFRMU19NRF9TSEExOgotICAgICAgICAgICAgcmV0dXJuICZtYmVkdGxzX3NoYTFfaW5mbzsKLSNlbmRpZgotI2lmIGRlZmluZWQoTUJFRFRMU19NRF9DQU5fU0hBMjI0KQotICAgICAgICBjYXNlIE1CRURUTFNfTURfU0hBMjI0OgotICAgICAgICAgICAgcmV0dXJuICZtYmVkdGxzX3NoYTIyNF9pbmZvOwotI2VuZGlmCi0jaWYgZGVmaW5lZChNQkVEVExTX01EX0NBTl9TSEEyNTYpCi0gICAgICAgIGNhc2UgTUJFRFRMU19NRF9TSEEyNTY6Ci0gICAgICAgICAgICByZXR1cm4gJm1iZWR0bHNfc2hhMjU2X2luZm87Ci0jZW5kaWYKLSNpZiBkZWZpbmVkKE1CRURUTFNfTURfQ0FOX1NIQTM4NCkKLSAgICAgICAgY2FzZSBNQkVEVExTX01EX1NIQTM4NDoKLSAgICAgICAgICAgIHJldHVybiAmbWJlZHRsc19zaGEzODRfaW5mbzsKLSNlbmRpZgotI2lmIGRlZmluZWQoTUJFRFRMU19NRF9DQU5fU0hBNTEyKQotICAgICAgICBjYXNlIE1CRURUTFNfTURfU0hBNTEyOgotICAgICAgICAgICAgcmV0dXJuICZtYmVkdGxzX3NoYTUxMl9pbmZvOwotI2VuZGlmCi0jaWYgZGVmaW5lZChNQkVEVExTX01EX0NBTl9TSEEzXzIyNCkKLSAgICAgICAgY2FzZSBNQkVEVExTX01EX1NIQTNfMjI0OgotICAgICAgICAgICAgcmV0dXJuICZtYmVkdGxzX3NoYTNfMjI0X2luZm87Ci0jZW5kaWYKLSNpZiBkZWZpbmVkKE1CRURUTFNfTURfQ0FOX1NIQTNfMjU2KQotICAgICAgICBjYXNlIE1CRURUTFNfTURfU0hBM18yNTY6Ci0gICAgICAgICAgICByZXR1cm4gJm1iZWR0bHNfc2hhM18yNTZfaW5mbzsKLSNlbmRpZgotI2lmIGRlZmluZWQoTUJFRFRMU19NRF9DQU5fU0hBM18zODQpCi0gICAgICAgIGNhc2UgTUJFRFRMU19NRF9TSEEzXzM4NDoKLSAgICAgICAgICAgIHJldHVybiAmbWJlZHRsc19zaGEzXzM4NF9pbmZvOwotI2VuZGlmCi0jaWYgZGVmaW5lZChNQkVEVExTX01EX0NBTl9TSEEzXzUxMikKLSAgICAgICAgY2FzZSBNQkVEVExTX01EX1NIQTNfNTEyOgotICAgICAgICAgICAgcmV0dXJuICZtYmVkdGxzX3NoYTNfNTEyX2luZm87Ci0jZW5kaWYKLSAgICAgICAgZGVmYXVsdDoKLSAgICAgICAgICAgIHJldHVybiBOVUxMOwotICAgIH0KLX0KLQotI2lmIGRlZmluZWQoTUJFRFRMU19NRF9TT01FX1BTQSkKLXN0YXRpYyBwc2FfYWxnb3JpdGhtX3QgcHNhX2FsZ19vZl9tZChjb25zdCBtYmVkdGxzX21kX2luZm9fdCAqaW5mbykKLXsKLSAgICBzd2l0Y2ggKGluZm8tPnR5cGUpIHsKLSNpZiBkZWZpbmVkKE1CRURUTFNfTURfTUQ1X1ZJQV9QU0EpCi0gICAgICAgIGNhc2UgTUJFRFRMU19NRF9NRDU6Ci0gICAgICAgICAgICByZXR1cm4gUFNBX0FMR19NRDU7Ci0jZW5kaWYKLSNpZiBkZWZpbmVkKE1CRURUTFNfTURfUklQRU1EMTYwX1ZJQV9QU0EpCi0gICAgICAgIGNhc2UgTUJFRFRMU19NRF9SSVBFTUQxNjA6Ci0gICAgICAgICAgICByZXR1cm4gUFNBX0FMR19SSVBFTUQxNjA7Ci0jZW5kaWYKLSNpZiBkZWZpbmVkKE1CRURUTFNfTURfU0hBMV9WSUFfUFNBKQotICAgICAgICBjYXNlIE1CRURUTFNfTURfU0hBMToKLSAgICAgICAgICAgIHJldHVybiBQU0FfQUxHX1NIQV8xOwotI2VuZGlmCi0jaWYgZGVmaW5lZChNQkVEVExTX01EX1NIQTIyNF9WSUFfUFNBKQotICAgICAgICBjYXNlIE1CRURUTFNfTURfU0hBMjI0OgotICAgICAgICAgICAgcmV0dXJuIFBTQV9BTEdfU0hBXzIyNDsKLSNlbmRpZgotI2lmIGRlZmluZWQoTUJFRFRMU19NRF9TSEEyNTZfVklBX1BTQSkKLSAgICAgICAgY2FzZSBNQkVEVExTX01EX1NIQTI1NjoKLSAgICAgICAgICAgIHJldHVybiBQU0FfQUxHX1NIQV8yNTY7Ci0jZW5kaWYKLSNpZiBkZWZpbmVkKE1CRURUTFNfTURfU0hBMzg0X1ZJQV9QU0EpCi0gICAgICAgIGNhc2UgTUJFRFRMU19NRF9TSEEzODQ6Ci0gICAgICAgICAgICByZXR1cm4gUFNBX0FMR19TSEFfMzg0OwotI2VuZGlmCi0jaWYgZGVmaW5lZChNQkVEVExTX01EX1NIQTUxMl9WSUFfUFNBKQotICAgICAgICBjYXNlIE1CRURUTFNfTURfU0hBNTEyOgotICAgICAgICAgICAgcmV0dXJuIFBTQV9BTEdfU0hBXzUxMjsKLSNlbmRpZgotI2lmIGRlZmluZWQoTUJFRFRMU19NRF9TSEEzXzIyNF9WSUFfUFNBKQotICAgICAgICBjYXNlIE1CRURUTFNfTURfU0hBM18yMjQ6Ci0gICAgICAgICAgICByZXR1cm4gUFNBX0FMR19TSEEzXzIyNDsKLSNlbmRpZgotI2lmIGRlZmluZWQoTUJFRFRMU19NRF9TSEEzXzI1Nl9WSUFfUFNBKQotICAgICAgICBjYXNlIE1CRURUTFNfTURfU0hBM18yNTY6Ci0gICAgICAgICAgICByZXR1cm4gUFNBX0FMR19TSEEzXzI1NjsKLSNlbmRpZgotI2lmIGRlZmluZWQoTUJFRFRMU19NRF9TSEEzXzM4NF9WSUFfUFNBKQotICAgICAgICBjYXNlIE1CRURUTFNfTURfU0hBM18zODQ6Ci0gICAgICAgICAgICByZXR1cm4gUFNBX0FMR19TSEEzXzM4NDsKLSNlbmRpZgotI2lmIGRlZmluZWQoTUJFRFRMU19NRF9TSEEzXzUxMl9WSUFfUFNBKQotICAgICAgICBjYXNlIE1CRURUTFNfTURfU0hBM181MTI6Ci0gICAgICAgICAgICByZXR1cm4gUFNBX0FMR19TSEEzXzUxMjsKLSNlbmRpZgotICAgICAgICBkZWZhdWx0OgotICAgICAgICAgICAgcmV0dXJuIFBTQV9BTEdfTk9ORTsKLSAgICB9Ci19Ci0KLXN0YXRpYyBpbnQgbWRfY2FuX3VzZV9wc2EoY29uc3QgbWJlZHRsc19tZF9pbmZvX3QgKmluZm8pCi17Ci0gICAgcHNhX2FsZ29yaXRobV90IGFsZyA9IHBzYV9hbGdfb2ZfbWQoaW5mbyk7Ci0gICAgaWYgKGFsZyA9PSBQU0FfQUxHX05PTkUpIHsKLSAgICAgICAgcmV0dXJuIDA7Ci0gICAgfQotCi0gICAgcmV0dXJuIHBzYV9jYW5fZG9faGFzaChhbGcpOwotfQotI2VuZGlmIC8qIE1CRURUTFNfTURfU09NRV9QU0EgKi8KLQotdm9pZCBtYmVkdGxzX21kX2luaXQobWJlZHRsc19tZF9jb250ZXh0X3QgKmN0eCkKLXsKLSAgICAvKiBOb3RlOiB0aGlzIHNldHMgZW5naW5lIChpZiBwcmVzZW50KSB0byBNQkVEVExTX01EX0VOR0lORV9MRUdBQ1kgKi8KLSAgICBtZW1zZXQoY3R4LCAwLCBzaXplb2YobWJlZHRsc19tZF9jb250ZXh0X3QpKTsKLX0KLQotdm9pZCBtYmVkdGxzX21kX2ZyZWUobWJlZHRsc19tZF9jb250ZXh0X3QgKmN0eCkKLXsKLSAgICBpZiAoY3R4ID09IE5VTEwgfHwgY3R4LT5tZF9pbmZvID09IE5VTEwpIHsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLQotICAgIGlmIChjdHgtPm1kX2N0eCAhPSBOVUxMKSB7Ci0jaWYgZGVmaW5lZChNQkVEVExTX01EX1NPTUVfUFNBKQotICAgICAgICBpZiAoY3R4LT5lbmdpbmUgPT0gTUJFRFRMU19NRF9FTkdJTkVfUFNBKSB7Ci0gICAgICAgICAgICBwc2FfaGFzaF9hYm9ydChjdHgtPm1kX2N0eCk7Ci0gICAgICAgIH0gZWxzZQotI2VuZGlmCi0gICAgICAgIHN3aXRjaCAoY3R4LT5tZF9pbmZvLT50eXBlKSB7Ci0jaWYgZGVmaW5lZChNQkVEVExTX01ENV9DKQotICAgICAgICAgICAgY2FzZSBNQkVEVExTX01EX01ENToKLSAgICAgICAgICAgICAgICBtYmVkdGxzX21kNV9mcmVlKGN0eC0+bWRfY3R4KTsKLSAgICAgICAgICAgICAgICBicmVhazsKLSNlbmRpZgotI2lmIGRlZmluZWQoTUJFRFRMU19SSVBFTUQxNjBfQykKLSAgICAgICAgICAgIGNhc2UgTUJFRFRMU19NRF9SSVBFTUQxNjA6Ci0gICAgICAgICAgICAgICAgbWJlZHRsc19yaXBlbWQxNjBfZnJlZShjdHgtPm1kX2N0eCk7Ci0gICAgICAgICAgICAgICAgYnJlYWs7Ci0jZW5kaWYKLSNpZiBkZWZpbmVkKE1CRURUTFNfU0hBMV9DKQotICAgICAgICAgICAgY2FzZSBNQkVEVExTX01EX1NIQTE6Ci0gICAgICAgICAgICAgICAgbWJlZHRsc19zaGExX2ZyZWUoY3R4LT5tZF9jdHgpOwotICAgICAgICAgICAgICAgIGJyZWFrOwotI2VuZGlmCi0jaWYgZGVmaW5lZChNQkVEVExTX1NIQTIyNF9DKQotICAgICAgICAgICAgY2FzZSBNQkVEVExTX01EX1NIQTIyNDoKLSAgICAgICAgICAgICAgICBtYmVkdGxzX3NoYTI1Nl9mcmVlKGN0eC0+bWRfY3R4KTsKLSAgICAgICAgICAgICAgICBicmVhazsKLSNlbmRpZgotI2lmIGRlZmluZWQoTUJFRFRMU19TSEEyNTZfQykKLSAgICAgICAgICAgIGNhc2UgTUJFRFRMU19NRF9TSEEyNTY6Ci0gICAgICAgICAgICAgICAgbWJlZHRsc19zaGEyNTZfZnJlZShjdHgtPm1kX2N0eCk7Ci0gICAgICAgICAgICAgICAgYnJlYWs7Ci0jZW5kaWYKLSNpZiBkZWZpbmVkKE1CRURUTFNfU0hBMzg0X0MpCi0gICAgICAgICAgICBjYXNlIE1CRURUTFNfTURfU0hBMzg0OgotICAgICAgICAgICAgICAgIG1iZWR0bHNfc2hhNTEyX2ZyZWUoY3R4LT5tZF9jdHgpOwotICAgICAgICAgICAgICAgIGJyZWFrOwotI2VuZGlmCi0jaWYgZGVmaW5lZChNQkVEVExTX1NIQTUxMl9DKQotICAgICAgICAgICAgY2FzZSBNQkVEVExTX01EX1NIQTUxMjoKLSAgICAgICAgICAgICAgICBtYmVkdGxzX3NoYTUxMl9mcmVlKGN0eC0+bWRfY3R4KTsKLSAgICAgICAgICAgICAgICBicmVhazsKLSNlbmRpZgotI2lmIGRlZmluZWQoTUJFRFRMU19TSEEzX0MpCi0gICAgICAgICAgICBjYXNlIE1CRURUTFNfTURfU0hBM18yMjQ6Ci0gICAgICAgICAgICBjYXNlIE1CRURUTFNfTURfU0hBM18yNTY6Ci0gICAgICAgICAgICBjYXNlIE1CRURUTFNfTURfU0hBM18zODQ6Ci0gICAgICAgICAgICBjYXNlIE1CRURUTFNfTURfU0hBM181MTI6Ci0gICAgICAgICAgICAgICAgbWJlZHRsc19zaGEzX2ZyZWUoY3R4LT5tZF9jdHgpOwotICAgICAgICAgICAgICAgIGJyZWFrOwotI2VuZGlmCi0gICAgICAgICAgICBkZWZhdWx0OgotICAgICAgICAgICAgICAgIC8qIFNob3VsZG4ndCBoYXBwZW4gKi8KLSAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgfQotICAgICAgICBtYmVkdGxzX2ZyZWUoY3R4LT5tZF9jdHgpOwotICAgIH0KLQotI2lmIGRlZmluZWQoTUJFRFRMU19NRF9DKQotICAgIGlmIChjdHgtPmhtYWNfY3R4ICE9IE5VTEwpIHsKLSAgICAgICAgbWJlZHRsc196ZXJvaXplX2FuZF9mcmVlKGN0eC0+aG1hY19jdHgsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyICogY3R4LT5tZF9pbmZvLT5ibG9ja19zaXplKTsKLSAgICB9Ci0jZW5kaWYKLQotICAgIG1iZWR0bHNfcGxhdGZvcm1femVyb2l6ZShjdHgsIHNpemVvZihtYmVkdGxzX21kX2NvbnRleHRfdCkpOwotfQotCi1pbnQgbWJlZHRsc19tZF9jbG9uZShtYmVkdGxzX21kX2NvbnRleHRfdCAqZHN0LAotICAgICAgICAgICAgICAgICAgICAgY29uc3QgbWJlZHRsc19tZF9jb250ZXh0X3QgKnNyYykKLXsKLSAgICBpZiAoZHN0ID09IE5VTEwgfHwgZHN0LT5tZF9pbmZvID09IE5VTEwgfHwKLSAgICAgICAgc3JjID09IE5VTEwgfHwgc3JjLT5tZF9pbmZvID09IE5VTEwgfHwKLSAgICAgICAgZHN0LT5tZF9pbmZvICE9IHNyYy0+bWRfaW5mbykgewotICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfTURfQkFEX0lOUFVUX0RBVEE7Ci0gICAgfQotCi0jaWYgZGVmaW5lZChNQkVEVExTX01EX1NPTUVfUFNBKQotICAgIGlmIChzcmMtPmVuZ2luZSAhPSBkc3QtPmVuZ2luZSkgewotICAgICAgICAvKiBUaGlzIGNhbiBoYXBwZW4gd2l0aCBzcmMgc2V0IHRvIGxlZ2FjeSBiZWNhdXNlIFBTQSB3YXNuJ3QgcmVhZHkKLSAgICAgICAgICogeWV0LCBhbmQgZHN0IHRvIFBTQSBiZWNhdXNlIGl0IGJlY2FtZSByZWFkeSBpbiB0aGUgbWVhbnRpbWUuCi0gICAgICAgICAqIFdlIGN1cnJlbnRseSBkb24ndCBzdXBwb3J0IHRoYXQgY2FzZSAod2UnZCBuZWVkIHRvIHJlLWFsbG9jYXRlCi0gICAgICAgICAqIG1kX2N0eCB0byB0aGUgc2l6ZSBvZiB0aGUgYXBwcm9wcmlhdGUgTUQgY29udGV4dCkuICovCi0gICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9NRF9GRUFUVVJFX1VOQVZBSUxBQkxFOwotICAgIH0KLQotICAgIGlmIChzcmMtPmVuZ2luZSA9PSBNQkVEVExTX01EX0VOR0lORV9QU0EpIHsKLSAgICAgICAgcHNhX3N0YXR1c190IHN0YXR1cyA9IHBzYV9oYXNoX2Nsb25lKHNyYy0+bWRfY3R4LCBkc3QtPm1kX2N0eCk7Ci0gICAgICAgIHJldHVybiBtYmVkdGxzX21kX2Vycm9yX2Zyb21fcHNhKHN0YXR1cyk7Ci0gICAgfQotI2VuZGlmCi0KLSAgICBzd2l0Y2ggKHNyYy0+bWRfaW5mby0+dHlwZSkgewotI2lmIGRlZmluZWQoTUJFRFRMU19NRDVfQykKLSAgICAgICAgY2FzZSBNQkVEVExTX01EX01ENToKLSAgICAgICAgICAgIG1iZWR0bHNfbWQ1X2Nsb25lKGRzdC0+bWRfY3R4LCBzcmMtPm1kX2N0eCk7Ci0gICAgICAgICAgICBicmVhazsKLSNlbmRpZgotI2lmIGRlZmluZWQoTUJFRFRMU19SSVBFTUQxNjBfQykKLSAgICAgICAgY2FzZSBNQkVEVExTX01EX1JJUEVNRDE2MDoKLSAgICAgICAgICAgIG1iZWR0bHNfcmlwZW1kMTYwX2Nsb25lKGRzdC0+bWRfY3R4LCBzcmMtPm1kX2N0eCk7Ci0gICAgICAgICAgICBicmVhazsKLSNlbmRpZgotI2lmIGRlZmluZWQoTUJFRFRMU19TSEExX0MpCi0gICAgICAgIGNhc2UgTUJFRFRMU19NRF9TSEExOgotICAgICAgICAgICAgbWJlZHRsc19zaGExX2Nsb25lKGRzdC0+bWRfY3R4LCBzcmMtPm1kX2N0eCk7Ci0gICAgICAgICAgICBicmVhazsKLSNlbmRpZgotI2lmIGRlZmluZWQoTUJFRFRMU19TSEEyMjRfQykKLSAgICAgICAgY2FzZSBNQkVEVExTX01EX1NIQTIyNDoKLSAgICAgICAgICAgIG1iZWR0bHNfc2hhMjU2X2Nsb25lKGRzdC0+bWRfY3R4LCBzcmMtPm1kX2N0eCk7Ci0gICAgICAgICAgICBicmVhazsKLSNlbmRpZgotI2lmIGRlZmluZWQoTUJFRFRMU19TSEEyNTZfQykKLSAgICAgICAgY2FzZSBNQkVEVExTX01EX1NIQTI1NjoKLSAgICAgICAgICAgIG1iZWR0bHNfc2hhMjU2X2Nsb25lKGRzdC0+bWRfY3R4LCBzcmMtPm1kX2N0eCk7Ci0gICAgICAgICAgICBicmVhazsKLSNlbmRpZgotI2lmIGRlZmluZWQoTUJFRFRMU19TSEEzODRfQykKLSAgICAgICAgY2FzZSBNQkVEVExTX01EX1NIQTM4NDoKLSAgICAgICAgICAgIG1iZWR0bHNfc2hhNTEyX2Nsb25lKGRzdC0+bWRfY3R4LCBzcmMtPm1kX2N0eCk7Ci0gICAgICAgICAgICBicmVhazsKLSNlbmRpZgotI2lmIGRlZmluZWQoTUJFRFRMU19TSEE1MTJfQykKLSAgICAgICAgY2FzZSBNQkVEVExTX01EX1NIQTUxMjoKLSAgICAgICAgICAgIG1iZWR0bHNfc2hhNTEyX2Nsb25lKGRzdC0+bWRfY3R4LCBzcmMtPm1kX2N0eCk7Ci0gICAgICAgICAgICBicmVhazsKLSNlbmRpZgotI2lmIGRlZmluZWQoTUJFRFRMU19TSEEzX0MpCi0gICAgICAgIGNhc2UgTUJFRFRMU19NRF9TSEEzXzIyNDoKLSAgICAgICAgY2FzZSBNQkVEVExTX01EX1NIQTNfMjU2OgotICAgICAgICBjYXNlIE1CRURUTFNfTURfU0hBM18zODQ6Ci0gICAgICAgIGNhc2UgTUJFRFRMU19NRF9TSEEzXzUxMjoKLSAgICAgICAgICAgIG1iZWR0bHNfc2hhM19jbG9uZShkc3QtPm1kX2N0eCwgc3JjLT5tZF9jdHgpOwotICAgICAgICAgICAgYnJlYWs7Ci0jZW5kaWYKLSAgICAgICAgZGVmYXVsdDoKLSAgICAgICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9NRF9CQURfSU5QVVRfREFUQTsKLSAgICB9Ci0KLSAgICByZXR1cm4gMDsKLX0KLQotI2RlZmluZSBBTExPQyh0eXBlKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICBkbyB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICAgICAgY3R4LT5tZF9jdHggPSBtYmVkdGxzX2NhbGxvYygxLCBzaXplb2YobWJlZHRsc18jI3R5cGUjI19jb250ZXh0KSk7IFwKLSAgICAgICAgaWYgKGN0eC0+bWRfY3R4ID09IE5VTEwpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfTURfQUxMT0NfRkFJTEVEOyAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgICAgIG1iZWR0bHNfIyN0eXBlIyNfaW5pdChjdHgtPm1kX2N0eCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIH0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIHdoaWxlICgwKQotCi1pbnQgbWJlZHRsc19tZF9zZXR1cChtYmVkdGxzX21kX2NvbnRleHRfdCAqY3R4LCBjb25zdCBtYmVkdGxzX21kX2luZm9fdCAqbWRfaW5mbywgaW50IGhtYWMpCi17Ci0jaWYgZGVmaW5lZChNQkVEVExTX01EX0MpCi0gICAgaWYgKGN0eCA9PSBOVUxMKSB7Ci0gICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9NRF9CQURfSU5QVVRfREFUQTsKLSAgICB9Ci0jZW5kaWYKLSAgICBpZiAobWRfaW5mbyA9PSBOVUxMKSB7Ci0gICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9NRF9CQURfSU5QVVRfREFUQTsKLSAgICB9Ci0KLSAgICBjdHgtPm1kX2luZm8gPSBtZF9pbmZvOwotICAgIGN0eC0+bWRfY3R4ID0gTlVMTDsKLSNpZiBkZWZpbmVkKE1CRURUTFNfTURfQykKLSAgICBjdHgtPmhtYWNfY3R4ID0gTlVMTDsKLSNlbHNlCi0gICAgaWYgKGhtYWMgIT0gMCkgewotICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfTURfQkFEX0lOUFVUX0RBVEE7Ci0gICAgfQotI2VuZGlmCi0KLSNpZiBkZWZpbmVkKE1CRURUTFNfTURfU09NRV9QU0EpCi0gICAgaWYgKG1kX2Nhbl91c2VfcHNhKGN0eC0+bWRfaW5mbykpIHsKLSAgICAgICAgY3R4LT5tZF9jdHggPSBtYmVkdGxzX2NhbGxvYygxLCBzaXplb2YocHNhX2hhc2hfb3BlcmF0aW9uX3QpKTsKLSAgICAgICAgaWYgKGN0eC0+bWRfY3R4ID09IE5VTEwpIHsKLSAgICAgICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9NRF9BTExPQ19GQUlMRUQ7Ci0gICAgICAgIH0KLSAgICAgICAgY3R4LT5lbmdpbmUgPSBNQkVEVExTX01EX0VOR0lORV9QU0E7Ci0gICAgfSBlbHNlCi0jZW5kaWYKLSAgICBzd2l0Y2ggKG1kX2luZm8tPnR5cGUpIHsKLSNpZiBkZWZpbmVkKE1CRURUTFNfTUQ1X0MpCi0gICAgICAgIGNhc2UgTUJFRFRMU19NRF9NRDU6Ci0gICAgICAgICAgICBBTExPQyhtZDUpOwotICAgICAgICAgICAgYnJlYWs7Ci0jZW5kaWYKLSNpZiBkZWZpbmVkKE1CRURUTFNfUklQRU1EMTYwX0MpCi0gICAgICAgIGNhc2UgTUJFRFRMU19NRF9SSVBFTUQxNjA6Ci0gICAgICAgICAgICBBTExPQyhyaXBlbWQxNjApOwotICAgICAgICAgICAgYnJlYWs7Ci0jZW5kaWYKLSNpZiBkZWZpbmVkKE1CRURUTFNfU0hBMV9DKQotICAgICAgICBjYXNlIE1CRURUTFNfTURfU0hBMToKLSAgICAgICAgICAgIEFMTE9DKHNoYTEpOwotICAgICAgICAgICAgYnJlYWs7Ci0jZW5kaWYKLSNpZiBkZWZpbmVkKE1CRURUTFNfU0hBMjI0X0MpCi0gICAgICAgIGNhc2UgTUJFRFRMU19NRF9TSEEyMjQ6Ci0gICAgICAgICAgICBBTExPQyhzaGEyNTYpOwotICAgICAgICAgICAgYnJlYWs7Ci0jZW5kaWYKLSNpZiBkZWZpbmVkKE1CRURUTFNfU0hBMjU2X0MpCi0gICAgICAgIGNhc2UgTUJFRFRMU19NRF9TSEEyNTY6Ci0gICAgICAgICAgICBBTExPQyhzaGEyNTYpOwotICAgICAgICAgICAgYnJlYWs7Ci0jZW5kaWYKLSNpZiBkZWZpbmVkKE1CRURUTFNfU0hBMzg0X0MpCi0gICAgICAgIGNhc2UgTUJFRFRMU19NRF9TSEEzODQ6Ci0gICAgICAgICAgICBBTExPQyhzaGE1MTIpOwotICAgICAgICAgICAgYnJlYWs7Ci0jZW5kaWYKLSNpZiBkZWZpbmVkKE1CRURUTFNfU0hBNTEyX0MpCi0gICAgICAgIGNhc2UgTUJFRFRMU19NRF9TSEE1MTI6Ci0gICAgICAgICAgICBBTExPQyhzaGE1MTIpOwotICAgICAgICAgICAgYnJlYWs7Ci0jZW5kaWYKLSNpZiBkZWZpbmVkKE1CRURUTFNfU0hBM19DKQotICAgICAgICBjYXNlIE1CRURUTFNfTURfU0hBM18yMjQ6Ci0gICAgICAgIGNhc2UgTUJFRFRMU19NRF9TSEEzXzI1NjoKLSAgICAgICAgY2FzZSBNQkVEVExTX01EX1NIQTNfMzg0OgotICAgICAgICBjYXNlIE1CRURUTFNfTURfU0hBM181MTI6Ci0gICAgICAgICAgICBBTExPQyhzaGEzKTsKLSAgICAgICAgICAgIGJyZWFrOwotI2VuZGlmCi0gICAgICAgIGRlZmF1bHQ6Ci0gICAgICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfTURfQkFEX0lOUFVUX0RBVEE7Ci0gICAgfQotCi0jaWYgZGVmaW5lZChNQkVEVExTX01EX0MpCi0gICAgaWYgKGhtYWMgIT0gMCkgewotICAgICAgICBjdHgtPmhtYWNfY3R4ID0gbWJlZHRsc19jYWxsb2MoMiwgbWRfaW5mby0+YmxvY2tfc2l6ZSk7Ci0gICAgICAgIGlmIChjdHgtPmhtYWNfY3R4ID09IE5VTEwpIHsKLSAgICAgICAgICAgIG1iZWR0bHNfbWRfZnJlZShjdHgpOwotICAgICAgICAgICAgcmV0dXJuIE1CRURUTFNfRVJSX01EX0FMTE9DX0ZBSUxFRDsKLSAgICAgICAgfQotICAgIH0KLSNlbmRpZgotCi0gICAgcmV0dXJuIDA7Ci19Ci0jdW5kZWYgQUxMT0MKLQotaW50IG1iZWR0bHNfbWRfc3RhcnRzKG1iZWR0bHNfbWRfY29udGV4dF90ICpjdHgpCi17Ci0jaWYgZGVmaW5lZChNQkVEVExTX01EX0MpCi0gICAgaWYgKGN0eCA9PSBOVUxMIHx8IGN0eC0+bWRfaW5mbyA9PSBOVUxMKSB7Ci0gICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9NRF9CQURfSU5QVVRfREFUQTsKLSAgICB9Ci0jZW5kaWYKLQotI2lmIGRlZmluZWQoTUJFRFRMU19NRF9TT01FX1BTQSkKLSAgICBpZiAoY3R4LT5lbmdpbmUgPT0gTUJFRFRMU19NRF9FTkdJTkVfUFNBKSB7Ci0gICAgICAgIHBzYV9hbGdvcml0aG1fdCBhbGcgPSBwc2FfYWxnX29mX21kKGN0eC0+bWRfaW5mbyk7Ci0gICAgICAgIHBzYV9oYXNoX2Fib3J0KGN0eC0+bWRfY3R4KTsKLSAgICAgICAgcHNhX3N0YXR1c190IHN0YXR1cyA9IHBzYV9oYXNoX3NldHVwKGN0eC0+bWRfY3R4LCBhbGcpOwotICAgICAgICByZXR1cm4gbWJlZHRsc19tZF9lcnJvcl9mcm9tX3BzYShzdGF0dXMpOwotICAgIH0KLSNlbmRpZgotCi0gICAgc3dpdGNoIChjdHgtPm1kX2luZm8tPnR5cGUpIHsKLSNpZiBkZWZpbmVkKE1CRURUTFNfTUQ1X0MpCi0gICAgICAgIGNhc2UgTUJFRFRMU19NRF9NRDU6Ci0gICAgICAgICAgICByZXR1cm4gbWJlZHRsc19tZDVfc3RhcnRzKGN0eC0+bWRfY3R4KTsKLSNlbmRpZgotI2lmIGRlZmluZWQoTUJFRFRMU19SSVBFTUQxNjBfQykKLSAgICAgICAgY2FzZSBNQkVEVExTX01EX1JJUEVNRDE2MDoKLSAgICAgICAgICAgIHJldHVybiBtYmVkdGxzX3JpcGVtZDE2MF9zdGFydHMoY3R4LT5tZF9jdHgpOwotI2VuZGlmCi0jaWYgZGVmaW5lZChNQkVEVExTX1NIQTFfQykKLSAgICAgICAgY2FzZSBNQkVEVExTX01EX1NIQTE6Ci0gICAgICAgICAgICByZXR1cm4gbWJlZHRsc19zaGExX3N0YXJ0cyhjdHgtPm1kX2N0eCk7Ci0jZW5kaWYKLSNpZiBkZWZpbmVkKE1CRURUTFNfU0hBMjI0X0MpCi0gICAgICAgIGNhc2UgTUJFRFRMU19NRF9TSEEyMjQ6Ci0gICAgICAgICAgICByZXR1cm4gbWJlZHRsc19zaGEyNTZfc3RhcnRzKGN0eC0+bWRfY3R4LCAxKTsKLSNlbmRpZgotI2lmIGRlZmluZWQoTUJFRFRMU19TSEEyNTZfQykKLSAgICAgICAgY2FzZSBNQkVEVExTX01EX1NIQTI1NjoKLSAgICAgICAgICAgIHJldHVybiBtYmVkdGxzX3NoYTI1Nl9zdGFydHMoY3R4LT5tZF9jdHgsIDApOwotI2VuZGlmCi0jaWYgZGVmaW5lZChNQkVEVExTX1NIQTM4NF9DKQotICAgICAgICBjYXNlIE1CRURUTFNfTURfU0hBMzg0OgotICAgICAgICAgICAgcmV0dXJuIG1iZWR0bHNfc2hhNTEyX3N0YXJ0cyhjdHgtPm1kX2N0eCwgMSk7Ci0jZW5kaWYKLSNpZiBkZWZpbmVkKE1CRURUTFNfU0hBNTEyX0MpCi0gICAgICAgIGNhc2UgTUJFRFRMU19NRF9TSEE1MTI6Ci0gICAgICAgICAgICByZXR1cm4gbWJlZHRsc19zaGE1MTJfc3RhcnRzKGN0eC0+bWRfY3R4LCAwKTsKLSNlbmRpZgotI2lmIGRlZmluZWQoTUJFRFRMU19TSEEzX0MpCi0gICAgICAgIGNhc2UgTUJFRFRMU19NRF9TSEEzXzIyNDoKLSAgICAgICAgICAgIHJldHVybiBtYmVkdGxzX3NoYTNfc3RhcnRzKGN0eC0+bWRfY3R4LCBNQkVEVExTX1NIQTNfMjI0KTsKLSAgICAgICAgY2FzZSBNQkVEVExTX01EX1NIQTNfMjU2OgotICAgICAgICAgICAgcmV0dXJuIG1iZWR0bHNfc2hhM19zdGFydHMoY3R4LT5tZF9jdHgsIE1CRURUTFNfU0hBM18yNTYpOwotICAgICAgICBjYXNlIE1CRURUTFNfTURfU0hBM18zODQ6Ci0gICAgICAgICAgICByZXR1cm4gbWJlZHRsc19zaGEzX3N0YXJ0cyhjdHgtPm1kX2N0eCwgTUJFRFRMU19TSEEzXzM4NCk7Ci0gICAgICAgIGNhc2UgTUJFRFRMU19NRF9TSEEzXzUxMjoKLSAgICAgICAgICAgIHJldHVybiBtYmVkdGxzX3NoYTNfc3RhcnRzKGN0eC0+bWRfY3R4LCBNQkVEVExTX1NIQTNfNTEyKTsKLSNlbmRpZgotICAgICAgICBkZWZhdWx0OgotICAgICAgICAgICAgcmV0dXJuIE1CRURUTFNfRVJSX01EX0JBRF9JTlBVVF9EQVRBOwotICAgIH0KLX0KLQotaW50IG1iZWR0bHNfbWRfdXBkYXRlKG1iZWR0bHNfbWRfY29udGV4dF90ICpjdHgsIGNvbnN0IHVuc2lnbmVkIGNoYXIgKmlucHV0LCBzaXplX3QgaWxlbikKLXsKLSNpZiBkZWZpbmVkKE1CRURUTFNfTURfQykKLSAgICBpZiAoY3R4ID09IE5VTEwgfHwgY3R4LT5tZF9pbmZvID09IE5VTEwpIHsKLSAgICAgICAgcmV0dXJuIE1CRURUTFNfRVJSX01EX0JBRF9JTlBVVF9EQVRBOwotICAgIH0KLSNlbmRpZgotCi0jaWYgZGVmaW5lZChNQkVEVExTX01EX1NPTUVfUFNBKQotICAgIGlmIChjdHgtPmVuZ2luZSA9PSBNQkVEVExTX01EX0VOR0lORV9QU0EpIHsKLSAgICAgICAgcHNhX3N0YXR1c190IHN0YXR1cyA9IHBzYV9oYXNoX3VwZGF0ZShjdHgtPm1kX2N0eCwgaW5wdXQsIGlsZW4pOwotICAgICAgICByZXR1cm4gbWJlZHRsc19tZF9lcnJvcl9mcm9tX3BzYShzdGF0dXMpOwotICAgIH0KLSNlbmRpZgotCi0gICAgc3dpdGNoIChjdHgtPm1kX2luZm8tPnR5cGUpIHsKLSNpZiBkZWZpbmVkKE1CRURUTFNfTUQ1X0MpCi0gICAgICAgIGNhc2UgTUJFRFRMU19NRF9NRDU6Ci0gICAgICAgICAgICByZXR1cm4gbWJlZHRsc19tZDVfdXBkYXRlKGN0eC0+bWRfY3R4LCBpbnB1dCwgaWxlbik7Ci0jZW5kaWYKLSNpZiBkZWZpbmVkKE1CRURUTFNfUklQRU1EMTYwX0MpCi0gICAgICAgIGNhc2UgTUJFRFRMU19NRF9SSVBFTUQxNjA6Ci0gICAgICAgICAgICByZXR1cm4gbWJlZHRsc19yaXBlbWQxNjBfdXBkYXRlKGN0eC0+bWRfY3R4LCBpbnB1dCwgaWxlbik7Ci0jZW5kaWYKLSNpZiBkZWZpbmVkKE1CRURUTFNfU0hBMV9DKQotICAgICAgICBjYXNlIE1CRURUTFNfTURfU0hBMToKLSAgICAgICAgICAgIHJldHVybiBtYmVkdGxzX3NoYTFfdXBkYXRlKGN0eC0+bWRfY3R4LCBpbnB1dCwgaWxlbik7Ci0jZW5kaWYKLSNpZiBkZWZpbmVkKE1CRURUTFNfU0hBMjI0X0MpCi0gICAgICAgIGNhc2UgTUJFRFRMU19NRF9TSEEyMjQ6Ci0gICAgICAgICAgICByZXR1cm4gbWJlZHRsc19zaGEyNTZfdXBkYXRlKGN0eC0+bWRfY3R4LCBpbnB1dCwgaWxlbik7Ci0jZW5kaWYKLSNpZiBkZWZpbmVkKE1CRURUTFNfU0hBMjU2X0MpCi0gICAgICAgIGNhc2UgTUJFRFRMU19NRF9TSEEyNTY6Ci0gICAgICAgICAgICByZXR1cm4gbWJlZHRsc19zaGEyNTZfdXBkYXRlKGN0eC0+bWRfY3R4LCBpbnB1dCwgaWxlbik7Ci0jZW5kaWYKLSNpZiBkZWZpbmVkKE1CRURUTFNfU0hBMzg0X0MpCi0gICAgICAgIGNhc2UgTUJFRFRMU19NRF9TSEEzODQ6Ci0gICAgICAgICAgICByZXR1cm4gbWJlZHRsc19zaGE1MTJfdXBkYXRlKGN0eC0+bWRfY3R4LCBpbnB1dCwgaWxlbik7Ci0jZW5kaWYKLSNpZiBkZWZpbmVkKE1CRURUTFNfU0hBNTEyX0MpCi0gICAgICAgIGNhc2UgTUJFRFRMU19NRF9TSEE1MTI6Ci0gICAgICAgICAgICByZXR1cm4gbWJlZHRsc19zaGE1MTJfdXBkYXRlKGN0eC0+bWRfY3R4LCBpbnB1dCwgaWxlbik7Ci0jZW5kaWYKLSNpZiBkZWZpbmVkKE1CRURUTFNfU0hBM19DKQotICAgICAgICBjYXNlIE1CRURUTFNfTURfU0hBM18yMjQ6Ci0gICAgICAgIGNhc2UgTUJFRFRMU19NRF9TSEEzXzI1NjoKLSAgICAgICAgY2FzZSBNQkVEVExTX01EX1NIQTNfMzg0OgotICAgICAgICBjYXNlIE1CRURUTFNfTURfU0hBM181MTI6Ci0gICAgICAgICAgICByZXR1cm4gbWJlZHRsc19zaGEzX3VwZGF0ZShjdHgtPm1kX2N0eCwgaW5wdXQsIGlsZW4pOwotI2VuZGlmCi0gICAgICAgIGRlZmF1bHQ6Ci0gICAgICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfTURfQkFEX0lOUFVUX0RBVEE7Ci0gICAgfQotfQotCi1pbnQgbWJlZHRsc19tZF9maW5pc2gobWJlZHRsc19tZF9jb250ZXh0X3QgKmN0eCwgdW5zaWduZWQgY2hhciAqb3V0cHV0KQotewotI2lmIGRlZmluZWQoTUJFRFRMU19NRF9DKQotICAgIGlmIChjdHggPT0gTlVMTCB8fCBjdHgtPm1kX2luZm8gPT0gTlVMTCkgewotICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfTURfQkFEX0lOUFVUX0RBVEE7Ci0gICAgfQotI2VuZGlmCi0KLSNpZiBkZWZpbmVkKE1CRURUTFNfTURfU09NRV9QU0EpCi0gICAgaWYgKGN0eC0+ZW5naW5lID09IE1CRURUTFNfTURfRU5HSU5FX1BTQSkgewotICAgICAgICBzaXplX3Qgc2l6ZSA9IGN0eC0+bWRfaW5mby0+c2l6ZTsKLSAgICAgICAgcHNhX3N0YXR1c190IHN0YXR1cyA9IHBzYV9oYXNoX2ZpbmlzaChjdHgtPm1kX2N0eCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvdXRwdXQsIHNpemUsICZzaXplKTsKLSAgICAgICAgcmV0dXJuIG1iZWR0bHNfbWRfZXJyb3JfZnJvbV9wc2Eoc3RhdHVzKTsKLSAgICB9Ci0jZW5kaWYKLQotICAgIHN3aXRjaCAoY3R4LT5tZF9pbmZvLT50eXBlKSB7Ci0jaWYgZGVmaW5lZChNQkVEVExTX01ENV9DKQotICAgICAgICBjYXNlIE1CRURUTFNfTURfTUQ1OgotICAgICAgICAgICAgcmV0dXJuIG1iZWR0bHNfbWQ1X2ZpbmlzaChjdHgtPm1kX2N0eCwgb3V0cHV0KTsKLSNlbmRpZgotI2lmIGRlZmluZWQoTUJFRFRMU19SSVBFTUQxNjBfQykKLSAgICAgICAgY2FzZSBNQkVEVExTX01EX1JJUEVNRDE2MDoKLSAgICAgICAgICAgIHJldHVybiBtYmVkdGxzX3JpcGVtZDE2MF9maW5pc2goY3R4LT5tZF9jdHgsIG91dHB1dCk7Ci0jZW5kaWYKLSNpZiBkZWZpbmVkKE1CRURUTFNfU0hBMV9DKQotICAgICAgICBjYXNlIE1CRURUTFNfTURfU0hBMToKLSAgICAgICAgICAgIHJldHVybiBtYmVkdGxzX3NoYTFfZmluaXNoKGN0eC0+bWRfY3R4LCBvdXRwdXQpOwotI2VuZGlmCi0jaWYgZGVmaW5lZChNQkVEVExTX1NIQTIyNF9DKQotICAgICAgICBjYXNlIE1CRURUTFNfTURfU0hBMjI0OgotICAgICAgICAgICAgcmV0dXJuIG1iZWR0bHNfc2hhMjU2X2ZpbmlzaChjdHgtPm1kX2N0eCwgb3V0cHV0KTsKLSNlbmRpZgotI2lmIGRlZmluZWQoTUJFRFRMU19TSEEyNTZfQykKLSAgICAgICAgY2FzZSBNQkVEVExTX01EX1NIQTI1NjoKLSAgICAgICAgICAgIHJldHVybiBtYmVkdGxzX3NoYTI1Nl9maW5pc2goY3R4LT5tZF9jdHgsIG91dHB1dCk7Ci0jZW5kaWYKLSNpZiBkZWZpbmVkKE1CRURUTFNfU0hBMzg0X0MpCi0gICAgICAgIGNhc2UgTUJFRFRMU19NRF9TSEEzODQ6Ci0gICAgICAgICAgICByZXR1cm4gbWJlZHRsc19zaGE1MTJfZmluaXNoKGN0eC0+bWRfY3R4LCBvdXRwdXQpOwotI2VuZGlmCi0jaWYgZGVmaW5lZChNQkVEVExTX1NIQTUxMl9DKQotICAgICAgICBjYXNlIE1CRURUTFNfTURfU0hBNTEyOgotICAgICAgICAgICAgcmV0dXJuIG1iZWR0bHNfc2hhNTEyX2ZpbmlzaChjdHgtPm1kX2N0eCwgb3V0cHV0KTsKLSNlbmRpZgotI2lmIGRlZmluZWQoTUJFRFRMU19TSEEzX0MpCi0gICAgICAgIGNhc2UgTUJFRFRMU19NRF9TSEEzXzIyNDoKLSAgICAgICAgY2FzZSBNQkVEVExTX01EX1NIQTNfMjU2OgotICAgICAgICBjYXNlIE1CRURUTFNfTURfU0hBM18zODQ6Ci0gICAgICAgIGNhc2UgTUJFRFRMU19NRF9TSEEzXzUxMjoKLSAgICAgICAgICAgIHJldHVybiBtYmVkdGxzX3NoYTNfZmluaXNoKGN0eC0+bWRfY3R4LCBvdXRwdXQsIGN0eC0+bWRfaW5mby0+c2l6ZSk7Ci0jZW5kaWYKLSAgICAgICAgZGVmYXVsdDoKLSAgICAgICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9NRF9CQURfSU5QVVRfREFUQTsKLSAgICB9Ci19Ci0KLWludCBtYmVkdGxzX21kKGNvbnN0IG1iZWR0bHNfbWRfaW5mb190ICptZF9pbmZvLCBjb25zdCB1bnNpZ25lZCBjaGFyICppbnB1dCwgc2l6ZV90IGlsZW4sCi0gICAgICAgICAgICAgICB1bnNpZ25lZCBjaGFyICpvdXRwdXQpCi17Ci0gICAgaWYgKG1kX2luZm8gPT0gTlVMTCkgewotICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfTURfQkFEX0lOUFVUX0RBVEE7Ci0gICAgfQotCi0jaWYgZGVmaW5lZChNQkVEVExTX01EX1NPTUVfUFNBKQotICAgIGlmIChtZF9jYW5fdXNlX3BzYShtZF9pbmZvKSkgewotICAgICAgICBzaXplX3Qgc2l6ZSA9IG1kX2luZm8tPnNpemU7Ci0gICAgICAgIHBzYV9zdGF0dXNfdCBzdGF0dXMgPSBwc2FfaGFzaF9jb21wdXRlKHBzYV9hbGdfb2ZfbWQobWRfaW5mbyksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlucHV0LCBpbGVuLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvdXRwdXQsIHNpemUsICZzaXplKTsKLSAgICAgICAgcmV0dXJuIG1iZWR0bHNfbWRfZXJyb3JfZnJvbV9wc2Eoc3RhdHVzKTsKLSAgICB9Ci0jZW5kaWYKLQotICAgIHN3aXRjaCAobWRfaW5mby0+dHlwZSkgewotI2lmIGRlZmluZWQoTUJFRFRMU19NRDVfQykKLSAgICAgICAgY2FzZSBNQkVEVExTX01EX01ENToKLSAgICAgICAgICAgIHJldHVybiBtYmVkdGxzX21kNShpbnB1dCwgaWxlbiwgb3V0cHV0KTsKLSNlbmRpZgotI2lmIGRlZmluZWQoTUJFRFRMU19SSVBFTUQxNjBfQykKLSAgICAgICAgY2FzZSBNQkVEVExTX01EX1JJUEVNRDE2MDoKLSAgICAgICAgICAgIHJldHVybiBtYmVkdGxzX3JpcGVtZDE2MChpbnB1dCwgaWxlbiwgb3V0cHV0KTsKLSNlbmRpZgotI2lmIGRlZmluZWQoTUJFRFRMU19TSEExX0MpCi0gICAgICAgIGNhc2UgTUJFRFRMU19NRF9TSEExOgotICAgICAgICAgICAgcmV0dXJuIG1iZWR0bHNfc2hhMShpbnB1dCwgaWxlbiwgb3V0cHV0KTsKLSNlbmRpZgotI2lmIGRlZmluZWQoTUJFRFRMU19TSEEyMjRfQykKLSAgICAgICAgY2FzZSBNQkVEVExTX01EX1NIQTIyNDoKLSAgICAgICAgICAgIHJldHVybiBtYmVkdGxzX3NoYTI1NihpbnB1dCwgaWxlbiwgb3V0cHV0LCAxKTsKLSNlbmRpZgotI2lmIGRlZmluZWQoTUJFRFRMU19TSEEyNTZfQykKLSAgICAgICAgY2FzZSBNQkVEVExTX01EX1NIQTI1NjoKLSAgICAgICAgICAgIHJldHVybiBtYmVkdGxzX3NoYTI1NihpbnB1dCwgaWxlbiwgb3V0cHV0LCAwKTsKLSNlbmRpZgotI2lmIGRlZmluZWQoTUJFRFRMU19TSEEzODRfQykKLSAgICAgICAgY2FzZSBNQkVEVExTX01EX1NIQTM4NDoKLSAgICAgICAgICAgIHJldHVybiBtYmVkdGxzX3NoYTUxMihpbnB1dCwgaWxlbiwgb3V0cHV0LCAxKTsKLSNlbmRpZgotI2lmIGRlZmluZWQoTUJFRFRMU19TSEE1MTJfQykKLSAgICAgICAgY2FzZSBNQkVEVExTX01EX1NIQTUxMjoKLSAgICAgICAgICAgIHJldHVybiBtYmVkdGxzX3NoYTUxMihpbnB1dCwgaWxlbiwgb3V0cHV0LCAwKTsKLSNlbmRpZgotI2lmIGRlZmluZWQoTUJFRFRMU19TSEEzX0MpCi0gICAgICAgIGNhc2UgTUJFRFRMU19NRF9TSEEzXzIyNDoKLSAgICAgICAgICAgIHJldHVybiBtYmVkdGxzX3NoYTMoTUJFRFRMU19TSEEzXzIyNCwgaW5wdXQsIGlsZW4sIG91dHB1dCwgbWRfaW5mby0+c2l6ZSk7Ci0gICAgICAgIGNhc2UgTUJFRFRMU19NRF9TSEEzXzI1NjoKLSAgICAgICAgICAgIHJldHVybiBtYmVkdGxzX3NoYTMoTUJFRFRMU19TSEEzXzI1NiwgaW5wdXQsIGlsZW4sIG91dHB1dCwgbWRfaW5mby0+c2l6ZSk7Ci0gICAgICAgIGNhc2UgTUJFRFRMU19NRF9TSEEzXzM4NDoKLSAgICAgICAgICAgIHJldHVybiBtYmVkdGxzX3NoYTMoTUJFRFRMU19TSEEzXzM4NCwgaW5wdXQsIGlsZW4sIG91dHB1dCwgbWRfaW5mby0+c2l6ZSk7Ci0gICAgICAgIGNhc2UgTUJFRFRMU19NRF9TSEEzXzUxMjoKLSAgICAgICAgICAgIHJldHVybiBtYmVkdGxzX3NoYTMoTUJFRFRMU19TSEEzXzUxMiwgaW5wdXQsIGlsZW4sIG91dHB1dCwgbWRfaW5mby0+c2l6ZSk7Ci0jZW5kaWYKLSAgICAgICAgZGVmYXVsdDoKLSAgICAgICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9NRF9CQURfSU5QVVRfREFUQTsKLSAgICB9Ci19Ci0KLXVuc2lnbmVkIGNoYXIgbWJlZHRsc19tZF9nZXRfc2l6ZShjb25zdCBtYmVkdGxzX21kX2luZm9fdCAqbWRfaW5mbykKLXsKLSAgICBpZiAobWRfaW5mbyA9PSBOVUxMKSB7Ci0gICAgICAgIHJldHVybiAwOwotICAgIH0KLQotICAgIHJldHVybiBtZF9pbmZvLT5zaXplOwotfQotCi1tYmVkdGxzX21kX3R5cGVfdCBtYmVkdGxzX21kX2dldF90eXBlKGNvbnN0IG1iZWR0bHNfbWRfaW5mb190ICptZF9pbmZvKQotewotICAgIGlmIChtZF9pbmZvID09IE5VTEwpIHsKLSAgICAgICAgcmV0dXJuIE1CRURUTFNfTURfTk9ORTsKLSAgICB9Ci0KLSAgICByZXR1cm4gbWRfaW5mby0+dHlwZTsKLX0KLQotI2lmIGRlZmluZWQoTUJFRFRMU19QU0FfQ1JZUFRPX0NMSUVOVCkKLWludCBtYmVkdGxzX21kX2Vycm9yX2Zyb21fcHNhKHBzYV9zdGF0dXNfdCBzdGF0dXMpCi17Ci0gICAgcmV0dXJuIFBTQV9UT19NQkVEVExTX0VSUl9MSVNUKHN0YXR1cywgcHNhX3RvX21kX2Vycm9ycywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHNhX2dlbmVyaWNfc3RhdHVzX3RvX21iZWR0bHMpOwotfQotI2VuZGlmIC8qIE1CRURUTFNfUFNBX0NSWVBUT19DTElFTlQgKi8KLQotCi0vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCi0gKiBGdW5jdGlvbnMgYWJvdmUgdGhpcyBzZXBhcmF0b3IgYXJlIHBhcnQgb2YgTUJFRFRMU19NRF9MSUdIVCwgICAgICAgICAqCi0gKiBmdW5jdGlvbnMgYmVsb3cgYXJlIG9ubHkgYXZhaWxhYmxlIHdoZW4gTUJFRFRMU19NRF9DIGlzIHNldC4gICAgICAgICAqCi0gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwotI2lmIGRlZmluZWQoTUJFRFRMU19NRF9DKQotCi0vKgotICogUmVtaW5kZXI6IHVwZGF0ZSBwcm9maWxlcyBpbiB4NTA5X2NydC5jIHdoZW4gYWRkaW5nIGEgbmV3IGhhc2ghCi0gKi8KLXN0YXRpYyBjb25zdCBpbnQgc3VwcG9ydGVkX2RpZ2VzdHNbXSA9IHsKLQotI2lmIGRlZmluZWQoTUJFRFRMU19NRF9DQU5fU0hBNTEyKQotICAgIE1CRURUTFNfTURfU0hBNTEyLAotI2VuZGlmCi0KLSNpZiBkZWZpbmVkKE1CRURUTFNfTURfQ0FOX1NIQTM4NCkKLSAgICBNQkVEVExTX01EX1NIQTM4NCwKLSNlbmRpZgotCi0jaWYgZGVmaW5lZChNQkVEVExTX01EX0NBTl9TSEEyNTYpCi0gICAgTUJFRFRMU19NRF9TSEEyNTYsCi0jZW5kaWYKLSNpZiBkZWZpbmVkKE1CRURUTFNfTURfQ0FOX1NIQTIyNCkKLSAgICBNQkVEVExTX01EX1NIQTIyNCwKLSNlbmRpZgotCi0jaWYgZGVmaW5lZChNQkVEVExTX01EX0NBTl9TSEExKQotICAgIE1CRURUTFNfTURfU0hBMSwKLSNlbmRpZgotCi0jaWYgZGVmaW5lZChNQkVEVExTX01EX0NBTl9SSVBFTUQxNjApCi0gICAgTUJFRFRMU19NRF9SSVBFTUQxNjAsCi0jZW5kaWYKLQotI2lmIGRlZmluZWQoTUJFRFRMU19NRF9DQU5fTUQ1KQotICAgIE1CRURUTFNfTURfTUQ1LAotI2VuZGlmCi0KLSNpZiBkZWZpbmVkKE1CRURUTFNfTURfQ0FOX1NIQTNfMjI0KQotICAgIE1CRURUTFNfTURfU0hBM18yMjQsCi0jZW5kaWYKLQotI2lmIGRlZmluZWQoTUJFRFRMU19NRF9DQU5fU0hBM18yNTYpCi0gICAgTUJFRFRMU19NRF9TSEEzXzI1NiwKLSNlbmRpZgotCi0jaWYgZGVmaW5lZChNQkVEVExTX01EX0NBTl9TSEEzXzM4NCkKLSAgICBNQkVEVExTX01EX1NIQTNfMzg0LAotI2VuZGlmCi0KLSNpZiBkZWZpbmVkKE1CRURUTFNfTURfQ0FOX1NIQTNfNTEyKQotICAgIE1CRURUTFNfTURfU0hBM181MTIsCi0jZW5kaWYKLQotICAgIE1CRURUTFNfTURfTk9ORQotfTsKLQotY29uc3QgaW50ICptYmVkdGxzX21kX2xpc3Qodm9pZCkKLXsKLSAgICByZXR1cm4gc3VwcG9ydGVkX2RpZ2VzdHM7Ci19Ci0KLXR5cGVkZWYgc3RydWN0IHsKLSAgICBjb25zdCBjaGFyICptZF9uYW1lOwotICAgIG1iZWR0bHNfbWRfdHlwZV90IG1kX3R5cGU7Ci19IG1kX25hbWVfZW50cnk7Ci0KLXN0YXRpYyBjb25zdCBtZF9uYW1lX2VudHJ5IG1kX25hbWVzW10gPSB7Ci0jaWYgZGVmaW5lZChNQkVEVExTX01EX0NBTl9NRDUpCi0gICAgeyAiTUQ1IiwgTUJFRFRMU19NRF9NRDUgfSwKLSNlbmRpZgotI2lmIGRlZmluZWQoTUJFRFRMU19NRF9DQU5fUklQRU1EMTYwKQotICAgIHsgIlJJUEVNRDE2MCIsIE1CRURUTFNfTURfUklQRU1EMTYwIH0sCi0jZW5kaWYKLSNpZiBkZWZpbmVkKE1CRURUTFNfTURfQ0FOX1NIQTEpCi0gICAgeyAiU0hBMSIsIE1CRURUTFNfTURfU0hBMSB9LAotICAgIHsgIlNIQSIsIE1CRURUTFNfTURfU0hBMSB9LCAvLyBjb21wYXRpYmlsaXR5IGZhbGxiYWNrCi0jZW5kaWYKLSNpZiBkZWZpbmVkKE1CRURUTFNfTURfQ0FOX1NIQTIyNCkKLSAgICB7ICJTSEEyMjQiLCBNQkVEVExTX01EX1NIQTIyNCB9LAotI2VuZGlmCi0jaWYgZGVmaW5lZChNQkVEVExTX01EX0NBTl9TSEEyNTYpCi0gICAgeyAiU0hBMjU2IiwgTUJFRFRMU19NRF9TSEEyNTYgfSwKLSNlbmRpZgotI2lmIGRlZmluZWQoTUJFRFRMU19NRF9DQU5fU0hBMzg0KQotICAgIHsgIlNIQTM4NCIsIE1CRURUTFNfTURfU0hBMzg0IH0sCi0jZW5kaWYKLSNpZiBkZWZpbmVkKE1CRURUTFNfTURfQ0FOX1NIQTUxMikKLSAgICB7ICJTSEE1MTIiLCBNQkVEVExTX01EX1NIQTUxMiB9LAotI2VuZGlmCi0jaWYgZGVmaW5lZChNQkVEVExTX01EX0NBTl9TSEEzXzIyNCkKLSAgICB7ICJTSEEzLTIyNCIsIE1CRURUTFNfTURfU0hBM18yMjQgfSwKLSNlbmRpZgotI2lmIGRlZmluZWQoTUJFRFRMU19NRF9DQU5fU0hBM18yNTYpCi0gICAgeyAiU0hBMy0yNTYiLCBNQkVEVExTX01EX1NIQTNfMjU2IH0sCi0jZW5kaWYKLSNpZiBkZWZpbmVkKE1CRURUTFNfTURfQ0FOX1NIQTNfMzg0KQotICAgIHsgIlNIQTMtMzg0IiwgTUJFRFRMU19NRF9TSEEzXzM4NCB9LAotI2VuZGlmCi0jaWYgZGVmaW5lZChNQkVEVExTX01EX0NBTl9TSEEzXzUxMikKLSAgICB7ICJTSEEzLTUxMiIsIE1CRURUTFNfTURfU0hBM181MTIgfSwKLSNlbmRpZgotICAgIHsgTlVMTCwgTUJFRFRMU19NRF9OT05FIH0sCi19OwotCi1jb25zdCBtYmVkdGxzX21kX2luZm9fdCAqbWJlZHRsc19tZF9pbmZvX2Zyb21fc3RyaW5nKGNvbnN0IGNoYXIgKm1kX25hbWUpCi17Ci0gICAgaWYgKE5VTEwgPT0gbWRfbmFtZSkgewotICAgICAgICByZXR1cm4gTlVMTDsKLSAgICB9Ci0KLSAgICBjb25zdCBtZF9uYW1lX2VudHJ5ICplbnRyeSA9IG1kX25hbWVzOwotICAgIHdoaWxlIChlbnRyeS0+bWRfbmFtZSAhPSBOVUxMICYmCi0gICAgICAgICAgIHN0cmNtcChlbnRyeS0+bWRfbmFtZSwgbWRfbmFtZSkgIT0gMCkgewotICAgICAgICArK2VudHJ5OwotICAgIH0KLQotICAgIHJldHVybiBtYmVkdGxzX21kX2luZm9fZnJvbV90eXBlKGVudHJ5LT5tZF90eXBlKTsKLX0KLQotY29uc3QgY2hhciAqbWJlZHRsc19tZF9nZXRfbmFtZShjb25zdCBtYmVkdGxzX21kX2luZm9fdCAqbWRfaW5mbykKLXsKLSAgICBpZiAobWRfaW5mbyA9PSBOVUxMKSB7Ci0gICAgICAgIHJldHVybiBOVUxMOwotICAgIH0KLQotICAgIGNvbnN0IG1kX25hbWVfZW50cnkgKmVudHJ5ID0gbWRfbmFtZXM7Ci0gICAgd2hpbGUgKGVudHJ5LT5tZF90eXBlICE9IE1CRURUTFNfTURfTk9ORSAmJgotICAgICAgICAgICBlbnRyeS0+bWRfdHlwZSAhPSBtZF9pbmZvLT50eXBlKSB7Ci0gICAgICAgICsrZW50cnk7Ci0gICAgfQotCi0gICAgcmV0dXJuIGVudHJ5LT5tZF9uYW1lOwotfQotCi1jb25zdCBtYmVkdGxzX21kX2luZm9fdCAqbWJlZHRsc19tZF9pbmZvX2Zyb21fY3R4KAotICAgIGNvbnN0IG1iZWR0bHNfbWRfY29udGV4dF90ICpjdHgpCi17Ci0gICAgaWYgKGN0eCA9PSBOVUxMKSB7Ci0gICAgICAgIHJldHVybiBOVUxMOwotICAgIH0KLQotICAgIHJldHVybiBjdHgtPk1CRURUTFNfUFJJVkFURShtZF9pbmZvKTsKLX0KLQotI2lmIGRlZmluZWQoTUJFRFRMU19GU19JTykKLWludCBtYmVkdGxzX21kX2ZpbGUoY29uc3QgbWJlZHRsc19tZF9pbmZvX3QgKm1kX2luZm8sIGNvbnN0IGNoYXIgKnBhdGgsIHVuc2lnbmVkIGNoYXIgKm91dHB1dCkKLXsKLSAgICBpbnQgcmV0ID0gTUJFRFRMU19FUlJfRVJST1JfQ09SUlVQVElPTl9ERVRFQ1RFRDsKLSAgICBGSUxFICpmOwotICAgIHNpemVfdCBuOwotICAgIG1iZWR0bHNfbWRfY29udGV4dF90IGN0eDsKLSAgICB1bnNpZ25lZCBjaGFyIGJ1ZlsxMDI0XTsKLQotICAgIGlmIChtZF9pbmZvID09IE5VTEwpIHsKLSAgICAgICAgcmV0dXJuIE1CRURUTFNfRVJSX01EX0JBRF9JTlBVVF9EQVRBOwotICAgIH0KLQotICAgIGlmICgoZiA9IGZvcGVuKHBhdGgsICJyYiIpKSA9PSBOVUxMKSB7Ci0gICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9NRF9GSUxFX0lPX0VSUk9SOwotICAgIH0KLQotICAgIC8qIEVuc3VyZSBubyBzdGRpbyBidWZmZXJpbmcgb2Ygc2VjcmV0cywgYXMgc3VjaCBidWZmZXJzIGNhbm5vdCBiZSB3aXBlZC4gKi8KLSAgICBtYmVkdGxzX3NldGJ1ZihmLCBOVUxMKTsKLQotICAgIG1iZWR0bHNfbWRfaW5pdCgmY3R4KTsKLQotICAgIGlmICgocmV0ID0gbWJlZHRsc19tZF9zZXR1cCgmY3R4LCBtZF9pbmZvLCAwKSkgIT0gMCkgewotICAgICAgICBnb3RvIGNsZWFudXA7Ci0gICAgfQotCi0gICAgaWYgKChyZXQgPSBtYmVkdGxzX21kX3N0YXJ0cygmY3R4KSkgIT0gMCkgewotICAgICAgICBnb3RvIGNsZWFudXA7Ci0gICAgfQotCi0gICAgd2hpbGUgKChuID0gZnJlYWQoYnVmLCAxLCBzaXplb2YoYnVmKSwgZikpID4gMCkgewotICAgICAgICBpZiAoKHJldCA9IG1iZWR0bHNfbWRfdXBkYXRlKCZjdHgsIGJ1ZiwgbikpICE9IDApIHsKLSAgICAgICAgICAgIGdvdG8gY2xlYW51cDsKLSAgICAgICAgfQotICAgIH0KLQotICAgIGlmIChmZXJyb3IoZikgIT0gMCkgewotICAgICAgICByZXQgPSBNQkVEVExTX0VSUl9NRF9GSUxFX0lPX0VSUk9SOwotICAgIH0gZWxzZSB7Ci0gICAgICAgIHJldCA9IG1iZWR0bHNfbWRfZmluaXNoKCZjdHgsIG91dHB1dCk7Ci0gICAgfQotCi1jbGVhbnVwOgotICAgIG1iZWR0bHNfcGxhdGZvcm1femVyb2l6ZShidWYsIHNpemVvZihidWYpKTsKLSAgICBmY2xvc2UoZik7Ci0gICAgbWJlZHRsc19tZF9mcmVlKCZjdHgpOwotCi0gICAgcmV0dXJuIHJldDsKLX0KLSNlbmRpZiAvKiBNQkVEVExTX0ZTX0lPICovCi0KLWludCBtYmVkdGxzX21kX2htYWNfc3RhcnRzKG1iZWR0bHNfbWRfY29udGV4dF90ICpjdHgsIGNvbnN0IHVuc2lnbmVkIGNoYXIgKmtleSwgc2l6ZV90IGtleWxlbikKLXsKLSAgICBpbnQgcmV0ID0gTUJFRFRMU19FUlJfRVJST1JfQ09SUlVQVElPTl9ERVRFQ1RFRDsKLSAgICB1bnNpZ25lZCBjaGFyIHN1bVtNQkVEVExTX01EX01BWF9TSVpFXTsKLSAgICB1bnNpZ25lZCBjaGFyICppcGFkLCAqb3BhZDsKLQotICAgIGlmIChjdHggPT0gTlVMTCB8fCBjdHgtPm1kX2luZm8gPT0gTlVMTCB8fCBjdHgtPmhtYWNfY3R4ID09IE5VTEwpIHsKLSAgICAgICAgcmV0dXJuIE1CRURUTFNfRVJSX01EX0JBRF9JTlBVVF9EQVRBOwotICAgIH0KLQotICAgIGlmIChrZXlsZW4gPiAoc2l6ZV90KSBjdHgtPm1kX2luZm8tPmJsb2NrX3NpemUpIHsKLSAgICAgICAgaWYgKChyZXQgPSBtYmVkdGxzX21kX3N0YXJ0cyhjdHgpKSAhPSAwKSB7Ci0gICAgICAgICAgICBnb3RvIGNsZWFudXA7Ci0gICAgICAgIH0KLSAgICAgICAgaWYgKChyZXQgPSBtYmVkdGxzX21kX3VwZGF0ZShjdHgsIGtleSwga2V5bGVuKSkgIT0gMCkgewotICAgICAgICAgICAgZ290byBjbGVhbnVwOwotICAgICAgICB9Ci0gICAgICAgIGlmICgocmV0ID0gbWJlZHRsc19tZF9maW5pc2goY3R4LCBzdW0pKSAhPSAwKSB7Ci0gICAgICAgICAgICBnb3RvIGNsZWFudXA7Ci0gICAgICAgIH0KLQotICAgICAgICBrZXlsZW4gPSBjdHgtPm1kX2luZm8tPnNpemU7Ci0gICAgICAgIGtleSA9IHN1bTsKLSAgICB9Ci0KLSAgICBpcGFkID0gKHVuc2lnbmVkIGNoYXIgKikgY3R4LT5obWFjX2N0eDsKLSAgICBvcGFkID0gKHVuc2lnbmVkIGNoYXIgKikgY3R4LT5obWFjX2N0eCArIGN0eC0+bWRfaW5mby0+YmxvY2tfc2l6ZTsKLQotICAgIG1lbXNldChpcGFkLCAweDM2LCBjdHgtPm1kX2luZm8tPmJsb2NrX3NpemUpOwotICAgIG1lbXNldChvcGFkLCAweDVDLCBjdHgtPm1kX2luZm8tPmJsb2NrX3NpemUpOwotCi0gICAgbWJlZHRsc194b3IoaXBhZCwgaXBhZCwga2V5LCBrZXlsZW4pOwotICAgIG1iZWR0bHNfeG9yKG9wYWQsIG9wYWQsIGtleSwga2V5bGVuKTsKLQotICAgIGlmICgocmV0ID0gbWJlZHRsc19tZF9zdGFydHMoY3R4KSkgIT0gMCkgewotICAgICAgICBnb3RvIGNsZWFudXA7Ci0gICAgfQotICAgIGlmICgocmV0ID0gbWJlZHRsc19tZF91cGRhdGUoY3R4LCBpcGFkLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3R4LT5tZF9pbmZvLT5ibG9ja19zaXplKSkgIT0gMCkgewotICAgICAgICBnb3RvIGNsZWFudXA7Ci0gICAgfQotCi1jbGVhbnVwOgotICAgIG1iZWR0bHNfcGxhdGZvcm1femVyb2l6ZShzdW0sIHNpemVvZihzdW0pKTsKLQotICAgIHJldHVybiByZXQ7Ci19Ci0KLWludCBtYmVkdGxzX21kX2htYWNfdXBkYXRlKG1iZWR0bHNfbWRfY29udGV4dF90ICpjdHgsIGNvbnN0IHVuc2lnbmVkIGNoYXIgKmlucHV0LCBzaXplX3QgaWxlbikKLXsKLSAgICBpZiAoY3R4ID09IE5VTEwgfHwgY3R4LT5tZF9pbmZvID09IE5VTEwgfHwgY3R4LT5obWFjX2N0eCA9PSBOVUxMKSB7Ci0gICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9NRF9CQURfSU5QVVRfREFUQTsKLSAgICB9Ci0KLSAgICByZXR1cm4gbWJlZHRsc19tZF91cGRhdGUoY3R4LCBpbnB1dCwgaWxlbik7Ci19Ci0KLWludCBtYmVkdGxzX21kX2htYWNfZmluaXNoKG1iZWR0bHNfbWRfY29udGV4dF90ICpjdHgsIHVuc2lnbmVkIGNoYXIgKm91dHB1dCkKLXsKLSAgICBpbnQgcmV0ID0gTUJFRFRMU19FUlJfRVJST1JfQ09SUlVQVElPTl9ERVRFQ1RFRDsKLSAgICB1bnNpZ25lZCBjaGFyIHRtcFtNQkVEVExTX01EX01BWF9TSVpFXTsKLSAgICB1bnNpZ25lZCBjaGFyICpvcGFkOwotCi0gICAgaWYgKGN0eCA9PSBOVUxMIHx8IGN0eC0+bWRfaW5mbyA9PSBOVUxMIHx8IGN0eC0+aG1hY19jdHggPT0gTlVMTCkgewotICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfTURfQkFEX0lOUFVUX0RBVEE7Ci0gICAgfQotCi0gICAgb3BhZCA9ICh1bnNpZ25lZCBjaGFyICopIGN0eC0+aG1hY19jdHggKyBjdHgtPm1kX2luZm8tPmJsb2NrX3NpemU7Ci0KLSAgICBpZiAoKHJldCA9IG1iZWR0bHNfbWRfZmluaXNoKGN0eCwgdG1wKSkgIT0gMCkgewotICAgICAgICByZXR1cm4gcmV0OwotICAgIH0KLSAgICBpZiAoKHJldCA9IG1iZWR0bHNfbWRfc3RhcnRzKGN0eCkpICE9IDApIHsKLSAgICAgICAgcmV0dXJuIHJldDsKLSAgICB9Ci0gICAgaWYgKChyZXQgPSBtYmVkdGxzX21kX3VwZGF0ZShjdHgsIG9wYWQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdHgtPm1kX2luZm8tPmJsb2NrX3NpemUpKSAhPSAwKSB7Ci0gICAgICAgIHJldHVybiByZXQ7Ci0gICAgfQotICAgIGlmICgocmV0ID0gbWJlZHRsc19tZF91cGRhdGUoY3R4LCB0bXAsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdHgtPm1kX2luZm8tPnNpemUpKSAhPSAwKSB7Ci0gICAgICAgIHJldHVybiByZXQ7Ci0gICAgfQotICAgIHJldHVybiBtYmVkdGxzX21kX2ZpbmlzaChjdHgsIG91dHB1dCk7Ci19Ci0KLWludCBtYmVkdGxzX21kX2htYWNfcmVzZXQobWJlZHRsc19tZF9jb250ZXh0X3QgKmN0eCkKLXsKLSAgICBpbnQgcmV0ID0gTUJFRFRMU19FUlJfRVJST1JfQ09SUlVQVElPTl9ERVRFQ1RFRDsKLSAgICB1bnNpZ25lZCBjaGFyICppcGFkOwotCi0gICAgaWYgKGN0eCA9PSBOVUxMIHx8IGN0eC0+bWRfaW5mbyA9PSBOVUxMIHx8IGN0eC0+aG1hY19jdHggPT0gTlVMTCkgewotICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfTURfQkFEX0lOUFVUX0RBVEE7Ci0gICAgfQotCi0gICAgaXBhZCA9ICh1bnNpZ25lZCBjaGFyICopIGN0eC0+aG1hY19jdHg7Ci0KLSAgICBpZiAoKHJldCA9IG1iZWR0bHNfbWRfc3RhcnRzKGN0eCkpICE9IDApIHsKLSAgICAgICAgcmV0dXJuIHJldDsKLSAgICB9Ci0gICAgcmV0dXJuIG1iZWR0bHNfbWRfdXBkYXRlKGN0eCwgaXBhZCwgY3R4LT5tZF9pbmZvLT5ibG9ja19zaXplKTsKLX0KLQotaW50IG1iZWR0bHNfbWRfaG1hYyhjb25zdCBtYmVkdGxzX21kX2luZm9fdCAqbWRfaW5mbywKLSAgICAgICAgICAgICAgICAgICAgY29uc3QgdW5zaWduZWQgY2hhciAqa2V5LCBzaXplX3Qga2V5bGVuLAotICAgICAgICAgICAgICAgICAgICBjb25zdCB1bnNpZ25lZCBjaGFyICppbnB1dCwgc2l6ZV90IGlsZW4sCi0gICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGNoYXIgKm91dHB1dCkKLXsKLSAgICBtYmVkdGxzX21kX2NvbnRleHRfdCBjdHg7Ci0gICAgaW50IHJldCA9IE1CRURUTFNfRVJSX0VSUk9SX0NPUlJVUFRJT05fREVURUNURUQ7Ci0KLSAgICBpZiAobWRfaW5mbyA9PSBOVUxMKSB7Ci0gICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9NRF9CQURfSU5QVVRfREFUQTsKLSAgICB9Ci0KLSAgICBtYmVkdGxzX21kX2luaXQoJmN0eCk7Ci0KLSAgICBpZiAoKHJldCA9IG1iZWR0bHNfbWRfc2V0dXAoJmN0eCwgbWRfaW5mbywgMSkpICE9IDApIHsKLSAgICAgICAgZ290byBjbGVhbnVwOwotICAgIH0KLQotICAgIGlmICgocmV0ID0gbWJlZHRsc19tZF9obWFjX3N0YXJ0cygmY3R4LCBrZXksIGtleWxlbikpICE9IDApIHsKLSAgICAgICAgZ290byBjbGVhbnVwOwotICAgIH0KLSAgICBpZiAoKHJldCA9IG1iZWR0bHNfbWRfaG1hY191cGRhdGUoJmN0eCwgaW5wdXQsIGlsZW4pKSAhPSAwKSB7Ci0gICAgICAgIGdvdG8gY2xlYW51cDsKLSAgICB9Ci0gICAgaWYgKChyZXQgPSBtYmVkdGxzX21kX2htYWNfZmluaXNoKCZjdHgsIG91dHB1dCkpICE9IDApIHsKLSAgICAgICAgZ290byBjbGVhbnVwOwotICAgIH0KLQotY2xlYW51cDoKLSAgICBtYmVkdGxzX21kX2ZyZWUoJmN0eCk7Ci0KLSAgICByZXR1cm4gcmV0OwotfQotCi0jZW5kaWYgLyogTUJFRFRMU19NRF9DICovCi0KLSNlbmRpZiAvKiBNQkVEVExTX01EX0xJR0hUICovCmRpZmYgLS1naXQgYS9saWJyYXJ5L21kNS5jIGIvbGlicmFyeS9tZDUuYwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZTRhODdhMi4uMDAwMDAwMAotLS0gYS9saWJyYXJ5L21kNS5jCisrKyAvZGV2L251bGwKQEAgLTEsNDI2ICswLDAgQEAKLS8qCi0gKiAgUkZDIDEzMjEgY29tcGxpYW50IE1ENSBpbXBsZW1lbnRhdGlvbgotICoKLSAqICBDb3B5cmlnaHQgVGhlIE1iZWQgVExTIENvbnRyaWJ1dG9ycwotICogIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wIE9SIEdQTC0yLjAtb3ItbGF0ZXIKLSAqLwotLyoKLSAqICBUaGUgTUQ1IGFsZ29yaXRobSB3YXMgZGVzaWduZWQgYnkgUm9uIFJpdmVzdCBpbiAxOTkxLgotICoKLSAqICBodHRwOi8vd3d3LmlldGYub3JnL3JmYy9yZmMxMzIxLnR4dAotICovCi0KLSNpbmNsdWRlICJjb21tb24uaCIKLQotI2lmIGRlZmluZWQoTUJFRFRMU19NRDVfQykKLQotI2luY2x1ZGUgIm1iZWR0bHMvbWQ1LmgiCi0jaW5jbHVkZSAibWJlZHRscy9wbGF0Zm9ybV91dGlsLmgiCi0jaW5jbHVkZSAibWJlZHRscy9lcnJvci5oIgotCi0jaW5jbHVkZSA8c3RyaW5nLmg+Ci0KLSNpbmNsdWRlICJtYmVkdGxzL3BsYXRmb3JtLmgiCi0KLSNpZiAhZGVmaW5lZChNQkVEVExTX01ENV9BTFQpCi0KLXZvaWQgbWJlZHRsc19tZDVfaW5pdChtYmVkdGxzX21kNV9jb250ZXh0ICpjdHgpCi17Ci0gICAgbWVtc2V0KGN0eCwgMCwgc2l6ZW9mKG1iZWR0bHNfbWQ1X2NvbnRleHQpKTsKLX0KLQotdm9pZCBtYmVkdGxzX21kNV9mcmVlKG1iZWR0bHNfbWQ1X2NvbnRleHQgKmN0eCkKLXsKLSAgICBpZiAoY3R4ID09IE5VTEwpIHsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLQotICAgIG1iZWR0bHNfcGxhdGZvcm1femVyb2l6ZShjdHgsIHNpemVvZihtYmVkdGxzX21kNV9jb250ZXh0KSk7Ci19Ci0KLXZvaWQgbWJlZHRsc19tZDVfY2xvbmUobWJlZHRsc19tZDVfY29udGV4dCAqZHN0LAotICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBtYmVkdGxzX21kNV9jb250ZXh0ICpzcmMpCi17Ci0gICAgKmRzdCA9ICpzcmM7Ci19Ci0KLS8qCi0gKiBNRDUgY29udGV4dCBzZXR1cAotICovCi1pbnQgbWJlZHRsc19tZDVfc3RhcnRzKG1iZWR0bHNfbWQ1X2NvbnRleHQgKmN0eCkKLXsKLSAgICBjdHgtPnRvdGFsWzBdID0gMDsKLSAgICBjdHgtPnRvdGFsWzFdID0gMDsKLQotICAgIGN0eC0+c3RhdGVbMF0gPSAweDY3NDUyMzAxOwotICAgIGN0eC0+c3RhdGVbMV0gPSAweEVGQ0RBQjg5OwotICAgIGN0eC0+c3RhdGVbMl0gPSAweDk4QkFEQ0ZFOwotICAgIGN0eC0+c3RhdGVbM10gPSAweDEwMzI1NDc2OwotCi0gICAgcmV0dXJuIDA7Ci19Ci0KLSNpZiAhZGVmaW5lZChNQkVEVExTX01ENV9QUk9DRVNTX0FMVCkKLWludCBtYmVkdGxzX2ludGVybmFsX21kNV9wcm9jZXNzKG1iZWR0bHNfbWQ1X2NvbnRleHQgKmN0eCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgZGF0YVs2NF0pCi17Ci0gICAgc3RydWN0IHsKLSAgICAgICAgdWludDMyX3QgWFsxNl0sIEEsIEIsIEMsIEQ7Ci0gICAgfSBsb2NhbDsKLQotICAgIGxvY2FsLlhbMF0gPSBNQkVEVExTX0dFVF9VSU5UMzJfTEUoZGF0YSwgIDApOwotICAgIGxvY2FsLlhbMV0gPSBNQkVEVExTX0dFVF9VSU5UMzJfTEUoZGF0YSwgIDQpOwotICAgIGxvY2FsLlhbMl0gPSBNQkVEVExTX0dFVF9VSU5UMzJfTEUoZGF0YSwgIDgpOwotICAgIGxvY2FsLlhbM10gPSBNQkVEVExTX0dFVF9VSU5UMzJfTEUoZGF0YSwgMTIpOwotICAgIGxvY2FsLlhbNF0gPSBNQkVEVExTX0dFVF9VSU5UMzJfTEUoZGF0YSwgMTYpOwotICAgIGxvY2FsLlhbNV0gPSBNQkVEVExTX0dFVF9VSU5UMzJfTEUoZGF0YSwgMjApOwotICAgIGxvY2FsLlhbNl0gPSBNQkVEVExTX0dFVF9VSU5UMzJfTEUoZGF0YSwgMjQpOwotICAgIGxvY2FsLlhbN10gPSBNQkVEVExTX0dFVF9VSU5UMzJfTEUoZGF0YSwgMjgpOwotICAgIGxvY2FsLlhbOF0gPSBNQkVEVExTX0dFVF9VSU5UMzJfTEUoZGF0YSwgMzIpOwotICAgIGxvY2FsLlhbOV0gPSBNQkVEVExTX0dFVF9VSU5UMzJfTEUoZGF0YSwgMzYpOwotICAgIGxvY2FsLlhbMTBdID0gTUJFRFRMU19HRVRfVUlOVDMyX0xFKGRhdGEsIDQwKTsKLSAgICBsb2NhbC5YWzExXSA9IE1CRURUTFNfR0VUX1VJTlQzMl9MRShkYXRhLCA0NCk7Ci0gICAgbG9jYWwuWFsxMl0gPSBNQkVEVExTX0dFVF9VSU5UMzJfTEUoZGF0YSwgNDgpOwotICAgIGxvY2FsLlhbMTNdID0gTUJFRFRMU19HRVRfVUlOVDMyX0xFKGRhdGEsIDUyKTsKLSAgICBsb2NhbC5YWzE0XSA9IE1CRURUTFNfR0VUX1VJTlQzMl9MRShkYXRhLCA1Nik7Ci0gICAgbG9jYWwuWFsxNV0gPSBNQkVEVExTX0dFVF9VSU5UMzJfTEUoZGF0YSwgNjApOwotCi0jZGVmaW5lIFMoeCwgbikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgICgoKHgpIDw8IChuKSkgfCAoKCh4KSAmIDB4RkZGRkZGRkYpID4+ICgzMiAtIChuKSkpKQotCi0jZGVmaW5lIFAoYSwgYiwgYywgZCwgaywgcywgdCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgZG8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgICAgIChhKSArPSBGKChiKSwgKGMpLCAoZCkpICsgbG9jYWwuWFsoayldICsgKHQpOyAgICAgICAgICAgICAgICAgICAgIFwKLSAgICAgICAgKGEpID0gUygoYSksIChzKSkgKyAoYik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgfSB3aGlsZSAoMCkKLQotICAgIGxvY2FsLkEgPSBjdHgtPnN0YXRlWzBdOwotICAgIGxvY2FsLkIgPSBjdHgtPnN0YXRlWzFdOwotICAgIGxvY2FsLkMgPSBjdHgtPnN0YXRlWzJdOwotICAgIGxvY2FsLkQgPSBjdHgtPnN0YXRlWzNdOwotCi0jZGVmaW5lIEYoeCwgeSwgeikgKCh6KSBeICgoeCkgJiAoKHkpIF4gKHopKSkpCi0KLSAgICBQKGxvY2FsLkEsIGxvY2FsLkIsIGxvY2FsLkMsIGxvY2FsLkQsICAwLCAgNywgMHhENzZBQTQ3OCk7Ci0gICAgUChsb2NhbC5ELCBsb2NhbC5BLCBsb2NhbC5CLCBsb2NhbC5DLCAgMSwgMTIsIDB4RThDN0I3NTYpOwotICAgIFAobG9jYWwuQywgbG9jYWwuRCwgbG9jYWwuQSwgbG9jYWwuQiwgIDIsIDE3LCAweDI0MjA3MERCKTsKLSAgICBQKGxvY2FsLkIsIGxvY2FsLkMsIGxvY2FsLkQsIGxvY2FsLkEsICAzLCAyMiwgMHhDMUJEQ0VFRSk7Ci0gICAgUChsb2NhbC5BLCBsb2NhbC5CLCBsb2NhbC5DLCBsb2NhbC5ELCAgNCwgIDcsIDB4RjU3QzBGQUYpOwotICAgIFAobG9jYWwuRCwgbG9jYWwuQSwgbG9jYWwuQiwgbG9jYWwuQywgIDUsIDEyLCAweDQ3ODdDNjJBKTsKLSAgICBQKGxvY2FsLkMsIGxvY2FsLkQsIGxvY2FsLkEsIGxvY2FsLkIsICA2LCAxNywgMHhBODMwNDYxMyk7Ci0gICAgUChsb2NhbC5CLCBsb2NhbC5DLCBsb2NhbC5ELCBsb2NhbC5BLCAgNywgMjIsIDB4RkQ0Njk1MDEpOwotICAgIFAobG9jYWwuQSwgbG9jYWwuQiwgbG9jYWwuQywgbG9jYWwuRCwgIDgsICA3LCAweDY5ODA5OEQ4KTsKLSAgICBQKGxvY2FsLkQsIGxvY2FsLkEsIGxvY2FsLkIsIGxvY2FsLkMsICA5LCAxMiwgMHg4QjQ0RjdBRik7Ci0gICAgUChsb2NhbC5DLCBsb2NhbC5ELCBsb2NhbC5BLCBsb2NhbC5CLCAxMCwgMTcsIDB4RkZGRjVCQjEpOwotICAgIFAobG9jYWwuQiwgbG9jYWwuQywgbG9jYWwuRCwgbG9jYWwuQSwgMTEsIDIyLCAweDg5NUNEN0JFKTsKLSAgICBQKGxvY2FsLkEsIGxvY2FsLkIsIGxvY2FsLkMsIGxvY2FsLkQsIDEyLCAgNywgMHg2QjkwMTEyMik7Ci0gICAgUChsb2NhbC5ELCBsb2NhbC5BLCBsb2NhbC5CLCBsb2NhbC5DLCAxMywgMTIsIDB4RkQ5ODcxOTMpOwotICAgIFAobG9jYWwuQywgbG9jYWwuRCwgbG9jYWwuQSwgbG9jYWwuQiwgMTQsIDE3LCAweEE2Nzk0MzhFKTsKLSAgICBQKGxvY2FsLkIsIGxvY2FsLkMsIGxvY2FsLkQsIGxvY2FsLkEsIDE1LCAyMiwgMHg0OUI0MDgyMSk7Ci0KLSN1bmRlZiBGCi0KLSNkZWZpbmUgRih4LCB5LCB6KSAoKHkpIF4gKCh6KSAmICgoeCkgXiAoeSkpKSkKLQotICAgIFAobG9jYWwuQSwgbG9jYWwuQiwgbG9jYWwuQywgbG9jYWwuRCwgIDEsICA1LCAweEY2MUUyNTYyKTsKLSAgICBQKGxvY2FsLkQsIGxvY2FsLkEsIGxvY2FsLkIsIGxvY2FsLkMsICA2LCAgOSwgMHhDMDQwQjM0MCk7Ci0gICAgUChsb2NhbC5DLCBsb2NhbC5ELCBsb2NhbC5BLCBsb2NhbC5CLCAxMSwgMTQsIDB4MjY1RTVBNTEpOwotICAgIFAobG9jYWwuQiwgbG9jYWwuQywgbG9jYWwuRCwgbG9jYWwuQSwgIDAsIDIwLCAweEU5QjZDN0FBKTsKLSAgICBQKGxvY2FsLkEsIGxvY2FsLkIsIGxvY2FsLkMsIGxvY2FsLkQsICA1LCAgNSwgMHhENjJGMTA1RCk7Ci0gICAgUChsb2NhbC5ELCBsb2NhbC5BLCBsb2NhbC5CLCBsb2NhbC5DLCAxMCwgIDksIDB4MDI0NDE0NTMpOwotICAgIFAobG9jYWwuQywgbG9jYWwuRCwgbG9jYWwuQSwgbG9jYWwuQiwgMTUsIDE0LCAweEQ4QTFFNjgxKTsKLSAgICBQKGxvY2FsLkIsIGxvY2FsLkMsIGxvY2FsLkQsIGxvY2FsLkEsICA0LCAyMCwgMHhFN0QzRkJDOCk7Ci0gICAgUChsb2NhbC5BLCBsb2NhbC5CLCBsb2NhbC5DLCBsb2NhbC5ELCAgOSwgIDUsIDB4MjFFMUNERTYpOwotICAgIFAobG9jYWwuRCwgbG9jYWwuQSwgbG9jYWwuQiwgbG9jYWwuQywgMTQsICA5LCAweEMzMzcwN0Q2KTsKLSAgICBQKGxvY2FsLkMsIGxvY2FsLkQsIGxvY2FsLkEsIGxvY2FsLkIsICAzLCAxNCwgMHhGNEQ1MEQ4Nyk7Ci0gICAgUChsb2NhbC5CLCBsb2NhbC5DLCBsb2NhbC5ELCBsb2NhbC5BLCAgOCwgMjAsIDB4NDU1QTE0RUQpOwotICAgIFAobG9jYWwuQSwgbG9jYWwuQiwgbG9jYWwuQywgbG9jYWwuRCwgMTMsICA1LCAweEE5RTNFOTA1KTsKLSAgICBQKGxvY2FsLkQsIGxvY2FsLkEsIGxvY2FsLkIsIGxvY2FsLkMsICAyLCAgOSwgMHhGQ0VGQTNGOCk7Ci0gICAgUChsb2NhbC5DLCBsb2NhbC5ELCBsb2NhbC5BLCBsb2NhbC5CLCAgNywgMTQsIDB4Njc2RjAyRDkpOwotICAgIFAobG9jYWwuQiwgbG9jYWwuQywgbG9jYWwuRCwgbG9jYWwuQSwgMTIsIDIwLCAweDhEMkE0QzhBKTsKLQotI3VuZGVmIEYKLQotI2RlZmluZSBGKHgsIHksIHopICgoeCkgXiAoeSkgXiAoeikpCi0KLSAgICBQKGxvY2FsLkEsIGxvY2FsLkIsIGxvY2FsLkMsIGxvY2FsLkQsICA1LCAgNCwgMHhGRkZBMzk0Mik7Ci0gICAgUChsb2NhbC5ELCBsb2NhbC5BLCBsb2NhbC5CLCBsb2NhbC5DLCAgOCwgMTEsIDB4ODc3MUY2ODEpOwotICAgIFAobG9jYWwuQywgbG9jYWwuRCwgbG9jYWwuQSwgbG9jYWwuQiwgMTEsIDE2LCAweDZEOUQ2MTIyKTsKLSAgICBQKGxvY2FsLkIsIGxvY2FsLkMsIGxvY2FsLkQsIGxvY2FsLkEsIDE0LCAyMywgMHhGREU1MzgwQyk7Ci0gICAgUChsb2NhbC5BLCBsb2NhbC5CLCBsb2NhbC5DLCBsb2NhbC5ELCAgMSwgIDQsIDB4QTRCRUVBNDQpOwotICAgIFAobG9jYWwuRCwgbG9jYWwuQSwgbG9jYWwuQiwgbG9jYWwuQywgIDQsIDExLCAweDRCREVDRkE5KTsKLSAgICBQKGxvY2FsLkMsIGxvY2FsLkQsIGxvY2FsLkEsIGxvY2FsLkIsICA3LCAxNiwgMHhGNkJCNEI2MCk7Ci0gICAgUChsb2NhbC5CLCBsb2NhbC5DLCBsb2NhbC5ELCBsb2NhbC5BLCAxMCwgMjMsIDB4QkVCRkJDNzApOwotICAgIFAobG9jYWwuQSwgbG9jYWwuQiwgbG9jYWwuQywgbG9jYWwuRCwgMTMsICA0LCAweDI4OUI3RUM2KTsKLSAgICBQKGxvY2FsLkQsIGxvY2FsLkEsIGxvY2FsLkIsIGxvY2FsLkMsICAwLCAxMSwgMHhFQUExMjdGQSk7Ci0gICAgUChsb2NhbC5DLCBsb2NhbC5ELCBsb2NhbC5BLCBsb2NhbC5CLCAgMywgMTYsIDB4RDRFRjMwODUpOwotICAgIFAobG9jYWwuQiwgbG9jYWwuQywgbG9jYWwuRCwgbG9jYWwuQSwgIDYsIDIzLCAweDA0ODgxRDA1KTsKLSAgICBQKGxvY2FsLkEsIGxvY2FsLkIsIGxvY2FsLkMsIGxvY2FsLkQsICA5LCAgNCwgMHhEOUQ0RDAzOSk7Ci0gICAgUChsb2NhbC5ELCBsb2NhbC5BLCBsb2NhbC5CLCBsb2NhbC5DLCAxMiwgMTEsIDB4RTZEQjk5RTUpOwotICAgIFAobG9jYWwuQywgbG9jYWwuRCwgbG9jYWwuQSwgbG9jYWwuQiwgMTUsIDE2LCAweDFGQTI3Q0Y4KTsKLSAgICBQKGxvY2FsLkIsIGxvY2FsLkMsIGxvY2FsLkQsIGxvY2FsLkEsICAyLCAyMywgMHhDNEFDNTY2NSk7Ci0KLSN1bmRlZiBGCi0KLSNkZWZpbmUgRih4LCB5LCB6KSAoKHkpIF4gKCh4KSB8IH4oeikpKQotCi0gICAgUChsb2NhbC5BLCBsb2NhbC5CLCBsb2NhbC5DLCBsb2NhbC5ELCAgMCwgIDYsIDB4RjQyOTIyNDQpOwotICAgIFAobG9jYWwuRCwgbG9jYWwuQSwgbG9jYWwuQiwgbG9jYWwuQywgIDcsIDEwLCAweDQzMkFGRjk3KTsKLSAgICBQKGxvY2FsLkMsIGxvY2FsLkQsIGxvY2FsLkEsIGxvY2FsLkIsIDE0LCAxNSwgMHhBQjk0MjNBNyk7Ci0gICAgUChsb2NhbC5CLCBsb2NhbC5DLCBsb2NhbC5ELCBsb2NhbC5BLCAgNSwgMjEsIDB4RkM5M0EwMzkpOwotICAgIFAobG9jYWwuQSwgbG9jYWwuQiwgbG9jYWwuQywgbG9jYWwuRCwgMTIsICA2LCAweDY1NUI1OUMzKTsKLSAgICBQKGxvY2FsLkQsIGxvY2FsLkEsIGxvY2FsLkIsIGxvY2FsLkMsICAzLCAxMCwgMHg4RjBDQ0M5Mik7Ci0gICAgUChsb2NhbC5DLCBsb2NhbC5ELCBsb2NhbC5BLCBsb2NhbC5CLCAxMCwgMTUsIDB4RkZFRkY0N0QpOwotICAgIFAobG9jYWwuQiwgbG9jYWwuQywgbG9jYWwuRCwgbG9jYWwuQSwgIDEsIDIxLCAweDg1ODQ1REQxKTsKLSAgICBQKGxvY2FsLkEsIGxvY2FsLkIsIGxvY2FsLkMsIGxvY2FsLkQsICA4LCAgNiwgMHg2RkE4N0U0Rik7Ci0gICAgUChsb2NhbC5ELCBsb2NhbC5BLCBsb2NhbC5CLCBsb2NhbC5DLCAxNSwgMTAsIDB4RkUyQ0U2RTApOwotICAgIFAobG9jYWwuQywgbG9jYWwuRCwgbG9jYWwuQSwgbG9jYWwuQiwgIDYsIDE1LCAweEEzMDE0MzE0KTsKLSAgICBQKGxvY2FsLkIsIGxvY2FsLkMsIGxvY2FsLkQsIGxvY2FsLkEsIDEzLCAyMSwgMHg0RTA4MTFBMSk7Ci0gICAgUChsb2NhbC5BLCBsb2NhbC5CLCBsb2NhbC5DLCBsb2NhbC5ELCAgNCwgIDYsIDB4Rjc1MzdFODIpOwotICAgIFAobG9jYWwuRCwgbG9jYWwuQSwgbG9jYWwuQiwgbG9jYWwuQywgMTEsIDEwLCAweEJEM0FGMjM1KTsKLSAgICBQKGxvY2FsLkMsIGxvY2FsLkQsIGxvY2FsLkEsIGxvY2FsLkIsICAyLCAxNSwgMHgyQUQ3RDJCQik7Ci0gICAgUChsb2NhbC5CLCBsb2NhbC5DLCBsb2NhbC5ELCBsb2NhbC5BLCAgOSwgMjEsIDB4RUI4NkQzOTEpOwotCi0jdW5kZWYgRgotCi0gICAgY3R4LT5zdGF0ZVswXSArPSBsb2NhbC5BOwotICAgIGN0eC0+c3RhdGVbMV0gKz0gbG9jYWwuQjsKLSAgICBjdHgtPnN0YXRlWzJdICs9IGxvY2FsLkM7Ci0gICAgY3R4LT5zdGF0ZVszXSArPSBsb2NhbC5EOwotCi0gICAgLyogWmVyb2lzZSB2YXJpYWJsZXMgdG8gY2xlYXIgc2Vuc2l0aXZlIGRhdGEgZnJvbSBtZW1vcnkuICovCi0gICAgbWJlZHRsc19wbGF0Zm9ybV96ZXJvaXplKCZsb2NhbCwgc2l6ZW9mKGxvY2FsKSk7Ci0KLSAgICByZXR1cm4gMDsKLX0KLQotI2VuZGlmIC8qICFNQkVEVExTX01ENV9QUk9DRVNTX0FMVCAqLwotCi0vKgotICogTUQ1IHByb2Nlc3MgYnVmZmVyCi0gKi8KLWludCBtYmVkdGxzX21kNV91cGRhdGUobWJlZHRsc19tZDVfY29udGV4dCAqY3R4LAotICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1bnNpZ25lZCBjaGFyICppbnB1dCwKLSAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IGlsZW4pCi17Ci0gICAgaW50IHJldCA9IE1CRURUTFNfRVJSX0VSUk9SX0NPUlJVUFRJT05fREVURUNURUQ7Ci0gICAgc2l6ZV90IGZpbGw7Ci0gICAgdWludDMyX3QgbGVmdDsKLQotICAgIGlmIChpbGVuID09IDApIHsKLSAgICAgICAgcmV0dXJuIDA7Ci0gICAgfQotCi0gICAgbGVmdCA9IGN0eC0+dG90YWxbMF0gJiAweDNGOwotICAgIGZpbGwgPSA2NCAtIGxlZnQ7Ci0KLSAgICBjdHgtPnRvdGFsWzBdICs9ICh1aW50MzJfdCkgaWxlbjsKLSAgICBjdHgtPnRvdGFsWzBdICY9IDB4RkZGRkZGRkY7Ci0KLSAgICBpZiAoY3R4LT50b3RhbFswXSA8ICh1aW50MzJfdCkgaWxlbikgewotICAgICAgICBjdHgtPnRvdGFsWzFdKys7Ci0gICAgfQotCi0gICAgaWYgKGxlZnQgJiYgaWxlbiA+PSBmaWxsKSB7Ci0gICAgICAgIG1lbWNweSgodm9pZCAqKSAoY3R4LT5idWZmZXIgKyBsZWZ0KSwgaW5wdXQsIGZpbGwpOwotICAgICAgICBpZiAoKHJldCA9IG1iZWR0bHNfaW50ZXJuYWxfbWQ1X3Byb2Nlc3MoY3R4LCBjdHgtPmJ1ZmZlcikpICE9IDApIHsKLSAgICAgICAgICAgIHJldHVybiByZXQ7Ci0gICAgICAgIH0KLQotICAgICAgICBpbnB1dCArPSBmaWxsOwotICAgICAgICBpbGVuICAtPSBmaWxsOwotICAgICAgICBsZWZ0ID0gMDsKLSAgICB9Ci0KLSAgICB3aGlsZSAoaWxlbiA+PSA2NCkgewotICAgICAgICBpZiAoKHJldCA9IG1iZWR0bHNfaW50ZXJuYWxfbWQ1X3Byb2Nlc3MoY3R4LCBpbnB1dCkpICE9IDApIHsKLSAgICAgICAgICAgIHJldHVybiByZXQ7Ci0gICAgICAgIH0KLQotICAgICAgICBpbnB1dCArPSA2NDsKLSAgICAgICAgaWxlbiAgLT0gNjQ7Ci0gICAgfQotCi0gICAgaWYgKGlsZW4gPiAwKSB7Ci0gICAgICAgIG1lbWNweSgodm9pZCAqKSAoY3R4LT5idWZmZXIgKyBsZWZ0KSwgaW5wdXQsIGlsZW4pOwotICAgIH0KLQotICAgIHJldHVybiAwOwotfQotCi0vKgotICogTUQ1IGZpbmFsIGRpZ2VzdAotICovCi1pbnQgbWJlZHRsc19tZDVfZmluaXNoKG1iZWR0bHNfbWQ1X2NvbnRleHQgKmN0eCwKLSAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgY2hhciBvdXRwdXRbMTZdKQotewotICAgIGludCByZXQgPSBNQkVEVExTX0VSUl9FUlJPUl9DT1JSVVBUSU9OX0RFVEVDVEVEOwotICAgIHVpbnQzMl90IHVzZWQ7Ci0gICAgdWludDMyX3QgaGlnaCwgbG93OwotCi0gICAgLyoKLSAgICAgKiBBZGQgcGFkZGluZzogMHg4MCB0aGVuIDB4MDAgdW50aWwgOCBieXRlcyByZW1haW4gZm9yIHRoZSBsZW5ndGgKLSAgICAgKi8KLSAgICB1c2VkID0gY3R4LT50b3RhbFswXSAmIDB4M0Y7Ci0KLSAgICBjdHgtPmJ1ZmZlclt1c2VkKytdID0gMHg4MDsKLQotICAgIGlmICh1c2VkIDw9IDU2KSB7Ci0gICAgICAgIC8qIEVub3VnaCByb29tIGZvciBwYWRkaW5nICsgbGVuZ3RoIGluIGN1cnJlbnQgYmxvY2sgKi8KLSAgICAgICAgbWVtc2V0KGN0eC0+YnVmZmVyICsgdXNlZCwgMCwgNTYgLSB1c2VkKTsKLSAgICB9IGVsc2UgewotICAgICAgICAvKiBXZSdsbCBuZWVkIGFuIGV4dHJhIGJsb2NrICovCi0gICAgICAgIG1lbXNldChjdHgtPmJ1ZmZlciArIHVzZWQsIDAsIDY0IC0gdXNlZCk7Ci0KLSAgICAgICAgaWYgKChyZXQgPSBtYmVkdGxzX2ludGVybmFsX21kNV9wcm9jZXNzKGN0eCwgY3R4LT5idWZmZXIpKSAhPSAwKSB7Ci0gICAgICAgICAgICBnb3RvIGV4aXQ7Ci0gICAgICAgIH0KLQotICAgICAgICBtZW1zZXQoY3R4LT5idWZmZXIsIDAsIDU2KTsKLSAgICB9Ci0KLSAgICAvKgotICAgICAqIEFkZCBtZXNzYWdlIGxlbmd0aAotICAgICAqLwotICAgIGhpZ2ggPSAoY3R4LT50b3RhbFswXSA+PiAyOSkKLSAgICAgICAgICAgfCAoY3R4LT50b3RhbFsxXSA8PCAgMyk7Ci0gICAgbG93ICA9IChjdHgtPnRvdGFsWzBdIDw8ICAzKTsKLQotICAgIE1CRURUTFNfUFVUX1VJTlQzMl9MRShsb3csICBjdHgtPmJ1ZmZlciwgNTYpOwotICAgIE1CRURUTFNfUFVUX1VJTlQzMl9MRShoaWdoLCBjdHgtPmJ1ZmZlciwgNjApOwotCi0gICAgaWYgKChyZXQgPSBtYmVkdGxzX2ludGVybmFsX21kNV9wcm9jZXNzKGN0eCwgY3R4LT5idWZmZXIpKSAhPSAwKSB7Ci0gICAgICAgIGdvdG8gZXhpdDsKLSAgICB9Ci0KLSAgICAvKgotICAgICAqIE91dHB1dCBmaW5hbCBzdGF0ZQotICAgICAqLwotICAgIE1CRURUTFNfUFVUX1VJTlQzMl9MRShjdHgtPnN0YXRlWzBdLCBvdXRwdXQsICAwKTsKLSAgICBNQkVEVExTX1BVVF9VSU5UMzJfTEUoY3R4LT5zdGF0ZVsxXSwgb3V0cHV0LCAgNCk7Ci0gICAgTUJFRFRMU19QVVRfVUlOVDMyX0xFKGN0eC0+c3RhdGVbMl0sIG91dHB1dCwgIDgpOwotICAgIE1CRURUTFNfUFVUX1VJTlQzMl9MRShjdHgtPnN0YXRlWzNdLCBvdXRwdXQsIDEyKTsKLQotICAgIHJldCA9IDA7Ci0KLWV4aXQ6Ci0gICAgbWJlZHRsc19tZDVfZnJlZShjdHgpOwotICAgIHJldHVybiByZXQ7Ci19Ci0KLSNlbmRpZiAvKiAhTUJFRFRMU19NRDVfQUxUICovCi0KLS8qCi0gKiBvdXRwdXQgPSBNRDUoIGlucHV0IGJ1ZmZlciApCi0gKi8KLWludCBtYmVkdGxzX21kNShjb25zdCB1bnNpZ25lZCBjaGFyICppbnB1dCwKLSAgICAgICAgICAgICAgICBzaXplX3QgaWxlbiwKLSAgICAgICAgICAgICAgICB1bnNpZ25lZCBjaGFyIG91dHB1dFsxNl0pCi17Ci0gICAgaW50IHJldCA9IE1CRURUTFNfRVJSX0VSUk9SX0NPUlJVUFRJT05fREVURUNURUQ7Ci0gICAgbWJlZHRsc19tZDVfY29udGV4dCBjdHg7Ci0KLSAgICBtYmVkdGxzX21kNV9pbml0KCZjdHgpOwotCi0gICAgaWYgKChyZXQgPSBtYmVkdGxzX21kNV9zdGFydHMoJmN0eCkpICE9IDApIHsKLSAgICAgICAgZ290byBleGl0OwotICAgIH0KLQotICAgIGlmICgocmV0ID0gbWJlZHRsc19tZDVfdXBkYXRlKCZjdHgsIGlucHV0LCBpbGVuKSkgIT0gMCkgewotICAgICAgICBnb3RvIGV4aXQ7Ci0gICAgfQotCi0gICAgaWYgKChyZXQgPSBtYmVkdGxzX21kNV9maW5pc2goJmN0eCwgb3V0cHV0KSkgIT0gMCkgewotICAgICAgICBnb3RvIGV4aXQ7Ci0gICAgfQotCi1leGl0OgotICAgIG1iZWR0bHNfbWQ1X2ZyZWUoJmN0eCk7Ci0KLSAgICByZXR1cm4gcmV0OwotfQotCi0jaWYgZGVmaW5lZChNQkVEVExTX1NFTEZfVEVTVCkKLS8qCi0gKiBSRkMgMTMyMSB0ZXN0IHZlY3RvcnMKLSAqLwotc3RhdGljIGNvbnN0IHVuc2lnbmVkIGNoYXIgbWQ1X3Rlc3RfYnVmWzddWzgxXSA9Ci17Ci0gICAgeyAiIiB9LAotICAgIHsgImEiIH0sCi0gICAgeyAiYWJjIiB9LAotICAgIHsgIm1lc3NhZ2UgZGlnZXN0IiB9LAotICAgIHsgImFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6IiB9LAotICAgIHsgIkFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXowMTIzNDU2Nzg5IiB9LAotICAgIHsgIjEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwIiB9Ci19OwotCi1zdGF0aWMgY29uc3Qgc2l6ZV90IG1kNV90ZXN0X2J1Zmxlbls3XSA9Ci17Ci0gICAgMCwgMSwgMywgMTQsIDI2LCA2MiwgODAKLX07Ci0KLXN0YXRpYyBjb25zdCB1bnNpZ25lZCBjaGFyIG1kNV90ZXN0X3N1bVs3XVsxNl0gPQotewotICAgIHsgMHhENCwgMHgxRCwgMHg4QywgMHhEOSwgMHg4RiwgMHgwMCwgMHhCMiwgMHgwNCwKLSAgICAgIDB4RTksIDB4ODAsIDB4MDksIDB4OTgsIDB4RUMsIDB4RjgsIDB4NDIsIDB4N0UgfSwKLSAgICB7IDB4MEMsIDB4QzEsIDB4NzUsIDB4QjksIDB4QzAsIDB4RjEsIDB4QjYsIDB4QTgsCi0gICAgICAweDMxLCAweEMzLCAweDk5LCAweEUyLCAweDY5LCAweDc3LCAweDI2LCAweDYxIH0sCi0gICAgeyAweDkwLCAweDAxLCAweDUwLCAweDk4LCAweDNDLCAweEQyLCAweDRGLCAweEIwLAotICAgICAgMHhENiwgMHg5NiwgMHgzRiwgMHg3RCwgMHgyOCwgMHhFMSwgMHg3RiwgMHg3MiB9LAotICAgIHsgMHhGOSwgMHg2QiwgMHg2OSwgMHg3RCwgMHg3QywgMHhCNywgMHg5MywgMHg4RCwKLSAgICAgIDB4NTIsIDB4NUEsIDB4MkYsIDB4MzEsIDB4QUEsIDB4RjEsIDB4NjEsIDB4RDAgfSwKLSAgICB7IDB4QzMsIDB4RkMsIDB4RDMsIDB4RDcsIDB4NjEsIDB4OTIsIDB4RTQsIDB4MDAsCi0gICAgICAweDdELCAweEZCLCAweDQ5LCAweDZDLCAweENBLCAweDY3LCAweEUxLCAweDNCIH0sCi0gICAgeyAweEQxLCAweDc0LCAweEFCLCAweDk4LCAweEQyLCAweDc3LCAweEQ5LCAweEY1LAotICAgICAgMHhBNSwgMHg2MSwgMHgxQywgMHgyQywgMHg5RiwgMHg0MSwgMHg5RCwgMHg5RiB9LAotICAgIHsgMHg1NywgMHhFRCwgMHhGNCwgMHhBMiwgMHgyQiwgMHhFMywgMHhDOSwgMHg1NSwKLSAgICAgIDB4QUMsIDB4NDksIDB4REEsIDB4MkUsIDB4MjEsIDB4MDcsIDB4QjYsIDB4N0EgfQotfTsKLQotLyoKLSAqIENoZWNrdXAgcm91dGluZQotICovCi1pbnQgbWJlZHRsc19tZDVfc2VsZl90ZXN0KGludCB2ZXJib3NlKQotewotICAgIGludCBpLCByZXQgPSAwOwotICAgIHVuc2lnbmVkIGNoYXIgbWQ1c3VtWzE2XTsKLQotICAgIGZvciAoaSA9IDA7IGkgPCA3OyBpKyspIHsKLSAgICAgICAgaWYgKHZlcmJvc2UgIT0gMCkgewotICAgICAgICAgICAgbWJlZHRsc19wcmludGYoIiAgTUQ1IHRlc3QgIyVkOiAiLCBpICsgMSk7Ci0gICAgICAgIH0KLQotICAgICAgICByZXQgPSBtYmVkdGxzX21kNShtZDVfdGVzdF9idWZbaV0sIG1kNV90ZXN0X2J1ZmxlbltpXSwgbWQ1c3VtKTsKLSAgICAgICAgaWYgKHJldCAhPSAwKSB7Ci0gICAgICAgICAgICBnb3RvIGZhaWw7Ci0gICAgICAgIH0KLQotICAgICAgICBpZiAobWVtY21wKG1kNXN1bSwgbWQ1X3Rlc3Rfc3VtW2ldLCAxNikgIT0gMCkgewotICAgICAgICAgICAgcmV0ID0gMTsKLSAgICAgICAgICAgIGdvdG8gZmFpbDsKLSAgICAgICAgfQotCi0gICAgICAgIGlmICh2ZXJib3NlICE9IDApIHsKLSAgICAgICAgICAgIG1iZWR0bHNfcHJpbnRmKCJwYXNzZWRcbiIpOwotICAgICAgICB9Ci0gICAgfQotCi0gICAgaWYgKHZlcmJvc2UgIT0gMCkgewotICAgICAgICBtYmVkdGxzX3ByaW50ZigiXG4iKTsKLSAgICB9Ci0KLSAgICByZXR1cm4gMDsKLQotZmFpbDoKLSAgICBpZiAodmVyYm9zZSAhPSAwKSB7Ci0gICAgICAgIG1iZWR0bHNfcHJpbnRmKCJmYWlsZWRcbiIpOwotICAgIH0KLQotICAgIHJldHVybiByZXQ7Ci19Ci0KLSNlbmRpZiAvKiBNQkVEVExTX1NFTEZfVEVTVCAqLwotCi0jZW5kaWYgLyogTUJFRFRMU19NRDVfQyAqLwpkaWZmIC0tZ2l0IGEvbGlicmFyeS9uZXRfc29ja2V0cy5jIGIvbGlicmFyeS9uZXRfc29ja2V0cy5jCmluZGV4IGVkZWM1ODcuLmVmODlhODggMTAwNjQ0Ci0tLSBhL2xpYnJhcnkvbmV0X3NvY2tldHMuYworKysgYi9saWJyYXJ5L25ldF9zb2NrZXRzLmMKQEAgLTY4Myw3ICs2ODMsNyBAQAogICovCiB2b2lkIG1iZWR0bHNfbmV0X2ZyZWUobWJlZHRsc19uZXRfY29udGV4dCAqY3R4KQogewotICAgIGlmIChjdHgtPmZkID09IC0xKSB7CisgICAgaWYgKGN0eCA9PSBOVUxMIHx8IGN0eC0+ZmQgPT0gLTEpIHsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIApkaWZmIC0tZ2l0IGEvbGlicmFyeS9uaXN0X2t3LmMgYi9saWJyYXJ5L25pc3Rfa3cuYwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZjE1NDI1Yi4uMDAwMDAwMAotLS0gYS9saWJyYXJ5L25pc3Rfa3cuYworKysgL2Rldi9udWxsCkBAIC0xLDcyNSArMCwwIEBACi0vKgotICogIEltcGxlbWVudGF0aW9uIG9mIE5JU1QgU1AgODAwLTM4RiBrZXkgd3JhcHBpbmcsIHN1cHBvcnRpbmcgS1cgYW5kIEtXUCBtb2RlcwotICogIG9ubHkKLSAqCi0gKiAgQ29weXJpZ2h0IFRoZSBNYmVkIFRMUyBDb250cmlidXRvcnMKLSAqICBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMCBPUiBHUEwtMi4wLW9yLWxhdGVyCi0gKi8KLS8qCi0gKiBEZWZpbml0aW9uIG9mIEtleSBXcmFwcGluZzoKLSAqIGh0dHBzOi8vbnZscHVicy5uaXN0Lmdvdi9uaXN0cHVicy9TcGVjaWFsUHVibGljYXRpb25zL05JU1QuU1AuODAwLTM4Ri5wZGYKLSAqIFJGQyAzMzk0ICJBZHZhbmNlZCBFbmNyeXB0aW9uIFN0YW5kYXJkIChBRVMpIEtleSBXcmFwIEFsZ29yaXRobSIKLSAqIFJGQyA1NjQ5ICJBZHZhbmNlZCBFbmNyeXB0aW9uIFN0YW5kYXJkIChBRVMpIEtleSBXcmFwIHdpdGggUGFkZGluZyBBbGdvcml0aG0iCi0gKgotICogTm90ZTogUkZDIDMzOTQgZGVmaW5lcyBkaWZmZXJlbnQgbWV0aG9kb2xvZ3kgZm9yIGludGVybWVkaWF0ZSBvcGVyYXRpb25zIGZvcgotICogdGhlIHdyYXBwaW5nIGFuZCB1bndyYXBwaW5nIG9wZXJhdGlvbiB0aGFuIHRoZSBkZWZpbml0aW9uIGluIE5JU1QgU1AgODAwLTM4Ri4KLSAqLwotCi0jaW5jbHVkZSAiY29tbW9uLmgiCi0KLSNpZiBkZWZpbmVkKE1CRURUTFNfTklTVF9LV19DKQotCi0jaW5jbHVkZSAibWJlZHRscy9uaXN0X2t3LmgiCi0jaW5jbHVkZSAibWJlZHRscy9wbGF0Zm9ybV91dGlsLmgiCi0jaW5jbHVkZSAibWJlZHRscy9lcnJvci5oIgotI2luY2x1ZGUgIm1iZWR0bHMvY29uc3RhbnRfdGltZS5oIgotI2luY2x1ZGUgImNvbnN0YW50X3RpbWVfaW50ZXJuYWwuaCIKLQotI2luY2x1ZGUgPHN0ZGludC5oPgotI2luY2x1ZGUgPHN0cmluZy5oPgotCi0jaW5jbHVkZSAibWJlZHRscy9wbGF0Zm9ybS5oIgotCi0jaWYgIWRlZmluZWQoTUJFRFRMU19OSVNUX0tXX0FMVCkKLQotI2RlZmluZSBLV19TRU1JQkxPQ0tfTEVOR1RIICAgIDgKLSNkZWZpbmUgTUlOX1NFTUlCTE9DS1NfQ09VTlQgICAzCi0KLS8qISBUaGUgNjQtYml0IGRlZmF1bHQgaW50ZWdyaXR5IGNoZWNrIHZhbHVlIChJQ1YpIGZvciBLVyBtb2RlLiAqLwotc3RhdGljIGNvbnN0IHVuc2lnbmVkIGNoYXIgTklTVF9LV19JQ1YxW10gPSB7IDB4QTYsIDB4QTYsIDB4QTYsIDB4QTYsIDB4QTYsIDB4QTYsIDB4QTYsIDB4QTYgfTsKLS8qISBUaGUgMzItYml0IGRlZmF1bHQgaW50ZWdyaXR5IGNoZWNrIHZhbHVlIChJQ1YpIGZvciBLV1AgbW9kZS4gKi8KLXN0YXRpYyBjb25zdCAgdW5zaWduZWQgY2hhciBOSVNUX0tXX0lDVjJbXSA9IHsgMHhBNiwgMHg1OSwgMHg1OSwgMHhBNiB9OwotCi0vKgotICogSW5pdGlhbGl6ZSBjb250ZXh0Ci0gKi8KLXZvaWQgbWJlZHRsc19uaXN0X2t3X2luaXQobWJlZHRsc19uaXN0X2t3X2NvbnRleHQgKmN0eCkKLXsKLSAgICBtZW1zZXQoY3R4LCAwLCBzaXplb2YobWJlZHRsc19uaXN0X2t3X2NvbnRleHQpKTsKLX0KLQotaW50IG1iZWR0bHNfbmlzdF9rd19zZXRrZXkobWJlZHRsc19uaXN0X2t3X2NvbnRleHQgKmN0eCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIG1iZWR0bHNfY2lwaGVyX2lkX3QgY2lwaGVyLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdW5zaWduZWQgY2hhciAqa2V5LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50IGtleWJpdHMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBpbnQgaXNfd3JhcCkKLXsKLSAgICBpbnQgcmV0ID0gTUJFRFRMU19FUlJfRVJST1JfQ09SUlVQVElPTl9ERVRFQ1RFRDsKLSAgICBjb25zdCBtYmVkdGxzX2NpcGhlcl9pbmZvX3QgKmNpcGhlcl9pbmZvOwotCi0gICAgY2lwaGVyX2luZm8gPSBtYmVkdGxzX2NpcGhlcl9pbmZvX2Zyb21fdmFsdWVzKGNpcGhlciwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga2V5Yml0cywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTUJFRFRMU19NT0RFX0VDQik7Ci0gICAgaWYgKGNpcGhlcl9pbmZvID09IE5VTEwpIHsKLSAgICAgICAgcmV0dXJuIE1CRURUTFNfRVJSX0NJUEhFUl9CQURfSU5QVVRfREFUQTsKLSAgICB9Ci0KLSAgICBpZiAobWJlZHRsc19jaXBoZXJfaW5mb19nZXRfYmxvY2tfc2l6ZShjaXBoZXJfaW5mbykgIT0gMTYpIHsKLSAgICAgICAgcmV0dXJuIE1CRURUTFNfRVJSX0NJUEhFUl9CQURfSU5QVVRfREFUQTsKLSAgICB9Ci0KLSAgICAvKgotICAgICAqIFNQIDgwMC0zOEYgY3VycmVudGx5IGRlZmluZXMgQUVTIGNpcGhlciBhcyB0aGUgb25seSBibG9jayBjaXBoZXIgYWxsb3dlZDoKLSAgICAgKiAiRm9yIEtXIGFuZCBLV1AsIHRoZSB1bmRlcmx5aW5nIGJsb2NrIGNpcGhlciBzaGFsbCBiZSBhcHByb3ZlZCwgYW5kIHRoZQotICAgICAqICBibG9jayBzaXplIHNoYWxsIGJlIDEyOCBiaXRzLiBDdXJyZW50bHksIHRoZSBBRVMgYmxvY2sgY2lwaGVyLCB3aXRoIGtleQotICAgICAqICBsZW5ndGhzIG9mIDEyOCwgMTkyLCBvciAyNTYgYml0cywgaXMgdGhlIG9ubHkgYmxvY2sgY2lwaGVyIHRoYXQgZml0cwotICAgICAqICB0aGlzIHByb2ZpbGUuIgotICAgICAqICBDdXJyZW50bHkgd2UgZG9uJ3Qgc3VwcG9ydCBvdGhlciAxMjggYml0IGJsb2NrIGNpcGhlcnMgZm9yIGtleSB3cmFwcGluZywKLSAgICAgKiAgc3VjaCBhcyBDYW1lbGxpYSBhbmQgQXJpYS4KLSAgICAgKi8KLSAgICBpZiAoY2lwaGVyICE9IE1CRURUTFNfQ0lQSEVSX0lEX0FFUykgewotICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfQ0lQSEVSX0ZFQVRVUkVfVU5BVkFJTEFCTEU7Ci0gICAgfQotCi0gICAgbWJlZHRsc19jaXBoZXJfZnJlZSgmY3R4LT5jaXBoZXJfY3R4KTsKLQotICAgIGlmICgocmV0ID0gbWJlZHRsc19jaXBoZXJfc2V0dXAoJmN0eC0+Y2lwaGVyX2N0eCwgY2lwaGVyX2luZm8pKSAhPSAwKSB7Ci0gICAgICAgIHJldHVybiByZXQ7Ci0gICAgfQotCi0gICAgaWYgKChyZXQgPSBtYmVkdGxzX2NpcGhlcl9zZXRrZXkoJmN0eC0+Y2lwaGVyX2N0eCwga2V5LCBrZXliaXRzLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzX3dyYXAgPyBNQkVEVExTX0VOQ1JZUFQgOgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1CRURUTFNfREVDUllQVCkKLSAgICAgICAgICkgIT0gMCkgewotICAgICAgICByZXR1cm4gcmV0OwotICAgIH0KLQotICAgIHJldHVybiAwOwotfQotCi0vKgotICogRnJlZSBjb250ZXh0Ci0gKi8KLXZvaWQgbWJlZHRsc19uaXN0X2t3X2ZyZWUobWJlZHRsc19uaXN0X2t3X2NvbnRleHQgKmN0eCkKLXsKLSAgICBtYmVkdGxzX2NpcGhlcl9mcmVlKCZjdHgtPmNpcGhlcl9jdHgpOwotICAgIG1iZWR0bHNfcGxhdGZvcm1femVyb2l6ZShjdHgsIHNpemVvZihtYmVkdGxzX25pc3Rfa3dfY29udGV4dCkpOwotfQotCi0vKgotICogSGVscGVyIGZ1bmN0aW9uIGZvciBYb3JpbmcgdGhlIHVpbnQ2NF90ICJ0IiB3aXRoIHRoZSBlbmNyeXB0ZWQgQS4KLSAqIERlZmluZWQgaW4gTklTVCBTUCA4MDAtMzhGIHNlY3Rpb24gNi4xCi0gKi8KLXN0YXRpYyB2b2lkIGNhbGNfYV94b3JfdCh1bnNpZ25lZCBjaGFyIEFbS1dfU0VNSUJMT0NLX0xFTkdUSF0sIHVpbnQ2NF90IHQpCi17Ci0gICAgc2l6ZV90IGkgPSAwOwotICAgIGZvciAoaSA9IDA7IGkgPCBzaXplb2YodCk7IGkrKykgewotICAgICAgICBBW2ldIF49ICh0ID4+ICgoc2l6ZW9mKHQpIC0gMSAtIGkpICogOCkpICYgMHhmZjsKLSAgICB9Ci19Ci0KLS8qCi0gKiBLVy1BRSBhcyBkZWZpbmVkIGluIFNQIDgwMC0zOEYgc2VjdGlvbiA2LjIKLSAqIEtXUC1BRSBhcyBkZWZpbmVkIGluIFNQIDgwMC0zOEYgc2VjdGlvbiA2LjMKLSAqLwotaW50IG1iZWR0bHNfbmlzdF9rd193cmFwKG1iZWR0bHNfbmlzdF9rd19jb250ZXh0ICpjdHgsCi0gICAgICAgICAgICAgICAgICAgICAgICAgbWJlZHRsc19uaXN0X2t3X21vZGVfdCBtb2RlLAotICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgKmlucHV0LCBzaXplX3QgaW5fbGVuLAotICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGNoYXIgKm91dHB1dCwgc2l6ZV90ICpvdXRfbGVuLCBzaXplX3Qgb3V0X3NpemUpCi17Ci0gICAgaW50IHJldCA9IDA7Ci0gICAgc2l6ZV90IHNlbWlibG9ja3MgPSAwOwotICAgIHNpemVfdCBzOwotICAgIHNpemVfdCBvbGVuLCBwYWRsZW4gPSAwOwotICAgIHVpbnQ2NF90IHQgPSAwOwotICAgIHVuc2lnbmVkIGNoYXIgb3V0YnVmZltLV19TRU1JQkxPQ0tfTEVOR1RIICogMl07Ci0gICAgdW5zaWduZWQgY2hhciBpbmJ1ZmZbS1dfU0VNSUJMT0NLX0xFTkdUSCAqIDJdOwotCi0gICAgKm91dF9sZW4gPSAwOwotICAgIC8qCi0gICAgICogR2VuZXJhdGUgdGhlIFN0cmluZyB0byB3b3JrIG9uCi0gICAgICovCi0gICAgaWYgKG1vZGUgPT0gTUJFRFRMU19LV19NT0RFX0tXKSB7Ci0gICAgICAgIGlmIChvdXRfc2l6ZSA8IGluX2xlbiArIEtXX1NFTUlCTE9DS19MRU5HVEgpIHsKLSAgICAgICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9DSVBIRVJfQkFEX0lOUFVUX0RBVEE7Ci0gICAgICAgIH0KLQotICAgICAgICAvKgotICAgICAgICAgKiBBY2NvcmRpbmcgdG8gU1AgODAwLTM4RiBUYWJsZSAxLCB0aGUgcGxhaW50ZXh0IGxlbmd0aCBmb3IgS1cKLSAgICAgICAgICogbXVzdCBiZSBiZXR3ZWVuIDIgdG8gMl41NC0xIHNlbWlibG9ja3MgaW5jbHVzaXZlLgotICAgICAgICAgKi8KLSAgICAgICAgaWYgKGluX2xlbiA8IDE2IHx8Ci0jaWYgU0laRV9NQVggPiAweDFGRkZGRkZGRkZGRkZGOAotICAgICAgICAgICAgaW5fbGVuID4gMHgxRkZGRkZGRkZGRkZGRjggfHwKLSNlbmRpZgotICAgICAgICAgICAgaW5fbGVuICUgS1dfU0VNSUJMT0NLX0xFTkdUSCAhPSAwKSB7Ci0gICAgICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfQ0lQSEVSX0JBRF9JTlBVVF9EQVRBOwotICAgICAgICB9Ci0KLSAgICAgICAgbWVtY3B5KG91dHB1dCwgTklTVF9LV19JQ1YxLCBLV19TRU1JQkxPQ0tfTEVOR1RIKTsKLSAgICAgICAgbWVtbW92ZShvdXRwdXQgKyBLV19TRU1JQkxPQ0tfTEVOR1RILCBpbnB1dCwgaW5fbGVuKTsKLSAgICB9IGVsc2UgewotICAgICAgICBpZiAoaW5fbGVuICUgOCAhPSAwKSB7Ci0gICAgICAgICAgICBwYWRsZW4gPSAoOCAtIChpbl9sZW4gJSA4KSk7Ci0gICAgICAgIH0KLQotICAgICAgICBpZiAob3V0X3NpemUgPCBpbl9sZW4gKyBLV19TRU1JQkxPQ0tfTEVOR1RIICsgcGFkbGVuKSB7Ci0gICAgICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfQ0lQSEVSX0JBRF9JTlBVVF9EQVRBOwotICAgICAgICB9Ci0KLSAgICAgICAgLyoKLSAgICAgICAgICogQWNjb3JkaW5nIHRvIFNQIDgwMC0zOEYgVGFibGUgMSwgdGhlIHBsYWludGV4dCBsZW5ndGggZm9yIEtXUAotICAgICAgICAgKiBtdXN0IGJlIGJldHdlZW4gMSBhbmQgMl4zMi0xIG9jdGV0cyBpbmNsdXNpdmUuCi0gICAgICAgICAqLwotICAgICAgICBpZiAoaW5fbGVuIDwgMQotI2lmIFNJWkVfTUFYID4gMHhGRkZGRkZGRgotICAgICAgICAgICAgfHwgaW5fbGVuID4gMHhGRkZGRkZGRgotI2VuZGlmCi0gICAgICAgICAgICApIHsKLSAgICAgICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9DSVBIRVJfQkFEX0lOUFVUX0RBVEE7Ci0gICAgICAgIH0KLQotICAgICAgICBtZW1jcHkob3V0cHV0LCBOSVNUX0tXX0lDVjIsIEtXX1NFTUlCTE9DS19MRU5HVEggLyAyKTsKLSAgICAgICAgTUJFRFRMU19QVVRfVUlOVDMyX0JFKChpbl9sZW4gJiAweGZmZmZmZmZmKSwgb3V0cHV0LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgS1dfU0VNSUJMT0NLX0xFTkdUSCAvIDIpOwotCi0gICAgICAgIG1lbWNweShvdXRwdXQgKyBLV19TRU1JQkxPQ0tfTEVOR1RILCBpbnB1dCwgaW5fbGVuKTsKLSAgICAgICAgbWVtc2V0KG91dHB1dCArIEtXX1NFTUlCTE9DS19MRU5HVEggKyBpbl9sZW4sIDAsIHBhZGxlbik7Ci0gICAgfQotICAgIHNlbWlibG9ja3MgPSAoKGluX2xlbiArIHBhZGxlbikgLyBLV19TRU1JQkxPQ0tfTEVOR1RIKSArIDE7Ci0KLSAgICBzID0gNiAqIChzZW1pYmxvY2tzIC0gMSk7Ci0KLSAgICBpZiAobW9kZSA9PSBNQkVEVExTX0tXX01PREVfS1dQCi0gICAgICAgICYmIGluX2xlbiA8PSBLV19TRU1JQkxPQ0tfTEVOR1RIKSB7Ci0gICAgICAgIG1lbWNweShpbmJ1ZmYsIG91dHB1dCwgMTYpOwotICAgICAgICByZXQgPSBtYmVkdGxzX2NpcGhlcl91cGRhdGUoJmN0eC0+Y2lwaGVyX2N0eCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluYnVmZiwgMTYsIG91dHB1dCwgJm9sZW4pOwotICAgICAgICBpZiAocmV0ICE9IDApIHsKLSAgICAgICAgICAgIGdvdG8gY2xlYW51cDsKLSAgICAgICAgfQotICAgIH0gZWxzZSB7Ci0gICAgICAgIHVuc2lnbmVkIGNoYXIgKlIyID0gb3V0cHV0ICsgS1dfU0VNSUJMT0NLX0xFTkdUSDsKLSAgICAgICAgdW5zaWduZWQgY2hhciAqQSA9IG91dHB1dDsKLQotICAgICAgICAvKgotICAgICAgICAgKiBEbyB0aGUgd3JhcHBpbmcgZnVuY3Rpb24gVywgYXMgZGVmaW5lZCBpbiBSRkMgMzM5NCBzZWN0aW9uIDIuMi4xCi0gICAgICAgICAqLwotICAgICAgICBpZiAoc2VtaWJsb2NrcyA8IE1JTl9TRU1JQkxPQ0tTX0NPVU5UKSB7Ci0gICAgICAgICAgICByZXQgPSBNQkVEVExTX0VSUl9DSVBIRVJfQkFEX0lOUFVUX0RBVEE7Ci0gICAgICAgICAgICBnb3RvIGNsZWFudXA7Ci0gICAgICAgIH0KLQotICAgICAgICAvKiBDYWxjdWxhdGUgaW50ZXJtZWRpYXRlIHZhbHVlcyAqLwotICAgICAgICBmb3IgKHQgPSAxOyB0IDw9IHM7IHQrKykgewotICAgICAgICAgICAgbWVtY3B5KGluYnVmZiwgQSwgS1dfU0VNSUJMT0NLX0xFTkdUSCk7Ci0gICAgICAgICAgICBtZW1jcHkoaW5idWZmICsgS1dfU0VNSUJMT0NLX0xFTkdUSCwgUjIsIEtXX1NFTUlCTE9DS19MRU5HVEgpOwotCi0gICAgICAgICAgICByZXQgPSBtYmVkdGxzX2NpcGhlcl91cGRhdGUoJmN0eC0+Y2lwaGVyX2N0eCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbmJ1ZmYsIDE2LCBvdXRidWZmLCAmb2xlbik7Ci0gICAgICAgICAgICBpZiAocmV0ICE9IDApIHsKLSAgICAgICAgICAgICAgICBnb3RvIGNsZWFudXA7Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIG1lbWNweShBLCBvdXRidWZmLCBLV19TRU1JQkxPQ0tfTEVOR1RIKTsKLSAgICAgICAgICAgIGNhbGNfYV94b3JfdChBLCB0KTsKLQotICAgICAgICAgICAgbWVtY3B5KFIyLCBvdXRidWZmICsgS1dfU0VNSUJMT0NLX0xFTkdUSCwgS1dfU0VNSUJMT0NLX0xFTkdUSCk7Ci0gICAgICAgICAgICBSMiArPSBLV19TRU1JQkxPQ0tfTEVOR1RIOwotICAgICAgICAgICAgaWYgKFIyID49IG91dHB1dCArIChzZW1pYmxvY2tzICogS1dfU0VNSUJMT0NLX0xFTkdUSCkpIHsKLSAgICAgICAgICAgICAgICBSMiA9IG91dHB1dCArIEtXX1NFTUlCTE9DS19MRU5HVEg7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICAqb3V0X2xlbiA9IHNlbWlibG9ja3MgKiBLV19TRU1JQkxPQ0tfTEVOR1RIOwotCi1jbGVhbnVwOgotCi0gICAgaWYgKHJldCAhPSAwKSB7Ci0gICAgICAgIG1lbXNldChvdXRwdXQsIDAsIHNlbWlibG9ja3MgKiBLV19TRU1JQkxPQ0tfTEVOR1RIKTsKLSAgICB9Ci0gICAgbWJlZHRsc19wbGF0Zm9ybV96ZXJvaXplKGluYnVmZiwgS1dfU0VNSUJMT0NLX0xFTkdUSCAqIDIpOwotICAgIG1iZWR0bHNfcGxhdGZvcm1femVyb2l6ZShvdXRidWZmLCBLV19TRU1JQkxPQ0tfTEVOR1RIICogMik7Ci0KLSAgICByZXR1cm4gcmV0OwotfQotCi0vKgotICogVy0xIGZ1bmN0aW9uIGFzIGRlZmluZWQgaW4gUkZDIDMzOTQgc2VjdGlvbiAyLjIuMgotICogVGhpcyBmdW5jdGlvbiBhc3N1bWVzIHRoZSBmb2xsb3dpbmc6Ci0gKiAxLiBPdXRwdXQgYnVmZmVyIGlzIGF0IGxlYXN0IG9mIHNpemUgKCBzZW1pYmxvY2tzIC0gMSApICogS1dfU0VNSUJMT0NLX0xFTkdUSC4KLSAqIDIuIFRoZSBpbnB1dCBidWZmZXIgaXMgb2Ygc2l6ZSBzZW1pYmxvY2tzICogS1dfU0VNSUJMT0NLX0xFTkdUSC4KLSAqIDMuIE1pbmltYWwgbnVtYmVyIG9mIHNlbWlibG9ja3MgaXMgMy4KLSAqIDQuIEEgaXMgYSBidWZmZXIgdG8gaG9sZCB0aGUgZmlyc3Qgc2VtaWJsb2NrIG9mIHRoZSBpbnB1dCBidWZmZXIuCi0gKi8KLXN0YXRpYyBpbnQgdW53cmFwKG1iZWR0bHNfbmlzdF9rd19jb250ZXh0ICpjdHgsCi0gICAgICAgICAgICAgICAgICBjb25zdCB1bnNpZ25lZCBjaGFyICppbnB1dCwgc2l6ZV90IHNlbWlibG9ja3MsCi0gICAgICAgICAgICAgICAgICB1bnNpZ25lZCBjaGFyIEFbS1dfU0VNSUJMT0NLX0xFTkdUSF0sCi0gICAgICAgICAgICAgICAgICB1bnNpZ25lZCBjaGFyICpvdXRwdXQsIHNpemVfdCAqb3V0X2xlbikKLXsKLSAgICBpbnQgcmV0ID0gMDsKLSAgICBjb25zdCBzaXplX3QgcyA9IDYgKiAoc2VtaWJsb2NrcyAtIDEpOwotICAgIHNpemVfdCBvbGVuOwotICAgIHVpbnQ2NF90IHQgPSAwOwotICAgIHVuc2lnbmVkIGNoYXIgb3V0YnVmZltLV19TRU1JQkxPQ0tfTEVOR1RIICogMl07Ci0gICAgdW5zaWduZWQgY2hhciBpbmJ1ZmZbS1dfU0VNSUJMT0NLX0xFTkdUSCAqIDJdOwotICAgIHVuc2lnbmVkIGNoYXIgKlIgPSBOVUxMOwotICAgICpvdXRfbGVuID0gMDsKLQotICAgIGlmIChzZW1pYmxvY2tzIDwgTUlOX1NFTUlCTE9DS1NfQ09VTlQpIHsKLSAgICAgICAgcmV0dXJuIE1CRURUTFNfRVJSX0NJUEhFUl9CQURfSU5QVVRfREFUQTsKLSAgICB9Ci0KLSAgICBtZW1jcHkoQSwgaW5wdXQsIEtXX1NFTUlCTE9DS19MRU5HVEgpOwotICAgIG1lbW1vdmUob3V0cHV0LCBpbnB1dCArIEtXX1NFTUlCTE9DS19MRU5HVEgsIChzZW1pYmxvY2tzIC0gMSkgKiBLV19TRU1JQkxPQ0tfTEVOR1RIKTsKLSAgICBSID0gb3V0cHV0ICsgKHNlbWlibG9ja3MgLSAyKSAqIEtXX1NFTUlCTE9DS19MRU5HVEg7Ci0KLSAgICAvKiBDYWxjdWxhdGUgaW50ZXJtZWRpYXRlIHZhbHVlcyAqLwotICAgIGZvciAodCA9IHM7IHQgPj0gMTsgdC0tKSB7Ci0gICAgICAgIGNhbGNfYV94b3JfdChBLCB0KTsKLQotICAgICAgICBtZW1jcHkoaW5idWZmLCBBLCBLV19TRU1JQkxPQ0tfTEVOR1RIKTsKLSAgICAgICAgbWVtY3B5KGluYnVmZiArIEtXX1NFTUlCTE9DS19MRU5HVEgsIFIsIEtXX1NFTUlCTE9DS19MRU5HVEgpOwotCi0gICAgICAgIHJldCA9IG1iZWR0bHNfY2lwaGVyX3VwZGF0ZSgmY3R4LT5jaXBoZXJfY3R4LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5idWZmLCAxNiwgb3V0YnVmZiwgJm9sZW4pOwotICAgICAgICBpZiAocmV0ICE9IDApIHsKLSAgICAgICAgICAgIGdvdG8gY2xlYW51cDsKLSAgICAgICAgfQotCi0gICAgICAgIG1lbWNweShBLCBvdXRidWZmLCBLV19TRU1JQkxPQ0tfTEVOR1RIKTsKLQotICAgICAgICAvKiBTZXQgUiBhcyBMU0I2NCBvZiBvdXRidWZmICovCi0gICAgICAgIG1lbWNweShSLCBvdXRidWZmICsgS1dfU0VNSUJMT0NLX0xFTkdUSCwgS1dfU0VNSUJMT0NLX0xFTkdUSCk7Ci0KLSAgICAgICAgaWYgKFIgPT0gb3V0cHV0KSB7Ci0gICAgICAgICAgICBSID0gb3V0cHV0ICsgKHNlbWlibG9ja3MgLSAyKSAqIEtXX1NFTUlCTE9DS19MRU5HVEg7Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBSIC09IEtXX1NFTUlCTE9DS19MRU5HVEg7Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICAqb3V0X2xlbiA9IChzZW1pYmxvY2tzIC0gMSkgKiBLV19TRU1JQkxPQ0tfTEVOR1RIOwotCi1jbGVhbnVwOgotICAgIGlmIChyZXQgIT0gMCkgewotICAgICAgICBtZW1zZXQob3V0cHV0LCAwLCAoc2VtaWJsb2NrcyAtIDEpICogS1dfU0VNSUJMT0NLX0xFTkdUSCk7Ci0gICAgfQotICAgIG1iZWR0bHNfcGxhdGZvcm1femVyb2l6ZShpbmJ1ZmYsIHNpemVvZihpbmJ1ZmYpKTsKLSAgICBtYmVkdGxzX3BsYXRmb3JtX3plcm9pemUob3V0YnVmZiwgc2l6ZW9mKG91dGJ1ZmYpKTsKLQotICAgIHJldHVybiByZXQ7Ci19Ci0KLS8qCi0gKiBLVy1BRCBhcyBkZWZpbmVkIGluIFNQIDgwMC0zOEYgc2VjdGlvbiA2LjIKLSAqIEtXUC1BRCBhcyBkZWZpbmVkIGluIFNQIDgwMC0zOEYgc2VjdGlvbiA2LjMKLSAqLwotaW50IG1iZWR0bHNfbmlzdF9rd191bndyYXAobWJlZHRsc19uaXN0X2t3X2NvbnRleHQgKmN0eCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIG1iZWR0bHNfbmlzdF9rd19tb2RlX3QgbW9kZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgKmlucHV0LCBzaXplX3QgaW5fbGVuLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgY2hhciAqb3V0cHV0LCBzaXplX3QgKm91dF9sZW4sIHNpemVfdCBvdXRfc2l6ZSkKLXsKLSAgICBpbnQgcmV0ID0gMDsKLSAgICBzaXplX3Qgb2xlbjsKLSAgICB1bnNpZ25lZCBjaGFyIEFbS1dfU0VNSUJMT0NLX0xFTkdUSF07Ci0gICAgaW50IGRpZmY7Ci0KLSAgICAqb3V0X2xlbiA9IDA7Ci0gICAgaWYgKG91dF9zaXplIDwgaW5fbGVuIC0gS1dfU0VNSUJMT0NLX0xFTkdUSCkgewotICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfQ0lQSEVSX0JBRF9JTlBVVF9EQVRBOwotICAgIH0KLQotICAgIGlmIChtb2RlID09IE1CRURUTFNfS1dfTU9ERV9LVykgewotICAgICAgICAvKgotICAgICAgICAgKiBBY2NvcmRpbmcgdG8gU1AgODAwLTM4RiBUYWJsZSAxLCB0aGUgY2lwaGVydGV4dCBsZW5ndGggZm9yIEtXCi0gICAgICAgICAqIG11c3QgYmUgYmV0d2VlbiAzIHRvIDJeNTQgc2VtaWJsb2NrcyBpbmNsdXNpdmUuCi0gICAgICAgICAqLwotICAgICAgICBpZiAoaW5fbGVuIDwgMjQgfHwKLSNpZiBTSVpFX01BWCA+IDB4MjAwMDAwMDAwMDAwMDAwCi0gICAgICAgICAgICBpbl9sZW4gPiAweDIwMDAwMDAwMDAwMDAwMCB8fAotI2VuZGlmCi0gICAgICAgICAgICBpbl9sZW4gJSBLV19TRU1JQkxPQ0tfTEVOR1RIICE9IDApIHsKLSAgICAgICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9DSVBIRVJfQkFEX0lOUFVUX0RBVEE7Ci0gICAgICAgIH0KLQotICAgICAgICByZXQgPSB1bndyYXAoY3R4LCBpbnB1dCwgaW5fbGVuIC8gS1dfU0VNSUJMT0NLX0xFTkdUSCwKLSAgICAgICAgICAgICAgICAgICAgIEEsIG91dHB1dCwgb3V0X2xlbik7Ci0gICAgICAgIGlmIChyZXQgIT0gMCkgewotICAgICAgICAgICAgZ290byBjbGVhbnVwOwotICAgICAgICB9Ci0KLSAgICAgICAgLyogQ2hlY2sgSUNWIGluICJjb25zdGFudC10aW1lIiAqLwotICAgICAgICBkaWZmID0gbWJlZHRsc19jdF9tZW1jbXAoTklTVF9LV19JQ1YxLCBBLCBLV19TRU1JQkxPQ0tfTEVOR1RIKTsKLQotICAgICAgICBpZiAoZGlmZiAhPSAwKSB7Ci0gICAgICAgICAgICByZXQgPSBNQkVEVExTX0VSUl9DSVBIRVJfQVVUSF9GQUlMRUQ7Ci0gICAgICAgICAgICBnb3RvIGNsZWFudXA7Ci0gICAgICAgIH0KLQotICAgIH0gZWxzZSBpZiAobW9kZSA9PSBNQkVEVExTX0tXX01PREVfS1dQKSB7Ci0gICAgICAgIHNpemVfdCBwYWRsZW4gPSAwOwotICAgICAgICB1aW50MzJfdCBQbGVuOwotICAgICAgICAvKgotICAgICAgICAgKiBBY2NvcmRpbmcgdG8gU1AgODAwLTM4RiBUYWJsZSAxLCB0aGUgY2lwaGVydGV4dCBsZW5ndGggZm9yIEtXUAotICAgICAgICAgKiBtdXN0IGJlIGJldHdlZW4gMiB0byAyXjI5IHNlbWlibG9ja3MgaW5jbHVzaXZlLgotICAgICAgICAgKi8KLSAgICAgICAgaWYgKGluX2xlbiA8IEtXX1NFTUlCTE9DS19MRU5HVEggKiAyIHx8Ci0jaWYgU0laRV9NQVggPiAweDEwMDAwMDAwMAotICAgICAgICAgICAgaW5fbGVuID4gMHgxMDAwMDAwMDAgfHwKLSNlbmRpZgotICAgICAgICAgICAgaW5fbGVuICUgS1dfU0VNSUJMT0NLX0xFTkdUSCAhPSAwKSB7Ci0gICAgICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfQ0lQSEVSX0JBRF9JTlBVVF9EQVRBOwotICAgICAgICB9Ci0KLSAgICAgICAgaWYgKGluX2xlbiA9PSBLV19TRU1JQkxPQ0tfTEVOR1RIICogMikgewotICAgICAgICAgICAgdW5zaWduZWQgY2hhciBvdXRidWZmW0tXX1NFTUlCTE9DS19MRU5HVEggKiAyXTsKLSAgICAgICAgICAgIHJldCA9IG1iZWR0bHNfY2lwaGVyX3VwZGF0ZSgmY3R4LT5jaXBoZXJfY3R4LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlucHV0LCAxNiwgb3V0YnVmZiwgJm9sZW4pOwotICAgICAgICAgICAgaWYgKHJldCAhPSAwKSB7Ci0gICAgICAgICAgICAgICAgZ290byBjbGVhbnVwOwotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICBtZW1jcHkoQSwgb3V0YnVmZiwgS1dfU0VNSUJMT0NLX0xFTkdUSCk7Ci0gICAgICAgICAgICBtZW1jcHkob3V0cHV0LCBvdXRidWZmICsgS1dfU0VNSUJMT0NLX0xFTkdUSCwgS1dfU0VNSUJMT0NLX0xFTkdUSCk7Ci0gICAgICAgICAgICBtYmVkdGxzX3BsYXRmb3JtX3plcm9pemUob3V0YnVmZiwgc2l6ZW9mKG91dGJ1ZmYpKTsKLSAgICAgICAgICAgICpvdXRfbGVuID0gS1dfU0VNSUJMT0NLX0xFTkdUSDsKLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIC8qIGluX2xlbiA+PSAgS1dfU0VNSUJMT0NLX0xFTkdUSCAqIDMgKi8KLSAgICAgICAgICAgIHJldCA9IHVud3JhcChjdHgsIGlucHV0LCBpbl9sZW4gLyBLV19TRU1JQkxPQ0tfTEVOR1RILAotICAgICAgICAgICAgICAgICAgICAgICAgIEEsIG91dHB1dCwgb3V0X2xlbik7Ci0gICAgICAgICAgICBpZiAocmV0ICE9IDApIHsKLSAgICAgICAgICAgICAgICBnb3RvIGNsZWFudXA7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLQotICAgICAgICAvKiBDaGVjayBJQ1YgaW4gImNvbnN0YW50LXRpbWUiICovCi0gICAgICAgIGRpZmYgPSBtYmVkdGxzX2N0X21lbWNtcChOSVNUX0tXX0lDVjIsIEEsIEtXX1NFTUlCTE9DS19MRU5HVEggLyAyKTsKLQotICAgICAgICBpZiAoZGlmZiAhPSAwKSB7Ci0gICAgICAgICAgICByZXQgPSBNQkVEVExTX0VSUl9DSVBIRVJfQVVUSF9GQUlMRUQ7Ci0gICAgICAgIH0KLQotICAgICAgICBQbGVuID0gTUJFRFRMU19HRVRfVUlOVDMyX0JFKEEsIEtXX1NFTUlCTE9DS19MRU5HVEggLyAyKTsKLQotICAgICAgICAvKgotICAgICAgICAgKiBQbGVuIGlzIHRoZSBsZW5ndGggb2YgdGhlIHBsYWludGV4dCwgd2hlbiB0aGUgaW5wdXQgaXMgdmFsaWQuCi0gICAgICAgICAqIElmIFBsZW4gaXMgbGFyZ2VyIHRoYW4gdGhlIHBsYWludGV4dCBhbmQgcGFkZGluZywgcGFkbGVuIHdpbGwgYmUKLSAgICAgICAgICogbGFyZ2VyIHRoYW4gOCwgYmVjYXVzZSBvZiB0aGUgdHlwZSB3cmFwIGFyb3VuZC4KLSAgICAgICAgICovCi0gICAgICAgIHBhZGxlbiA9IGluX2xlbiAtIEtXX1NFTUlCTE9DS19MRU5HVEggLSBQbGVuOwotICAgICAgICByZXQgPSBtYmVkdGxzX2N0X2Vycm9yX2lmKG1iZWR0bHNfY3RfdWludF9ndChwYWRsZW4sIDcpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1CRURUTFNfRVJSX0NJUEhFUl9BVVRIX0ZBSUxFRCwgcmV0KTsKLSAgICAgICAgcGFkbGVuICY9IDc7Ci0KLSAgICAgICAgLyogQ2hlY2sgcGFkZGluZyBpbiAiY29uc3RhbnQtdGltZSIgKi8KLSAgICAgICAgY29uc3QgdWludDhfdCB6ZXJvW0tXX1NFTUlCTE9DS19MRU5HVEhdID0geyAwIH07Ci0gICAgICAgIGRpZmYgPSBtYmVkdGxzX2N0X21lbWNtcF9wYXJ0aWFsKAotICAgICAgICAgICAgJm91dHB1dFsqb3V0X2xlbiAtIEtXX1NFTUlCTE9DS19MRU5HVEhdLCB6ZXJvLAotICAgICAgICAgICAgS1dfU0VNSUJMT0NLX0xFTkdUSCwgS1dfU0VNSUJMT0NLX0xFTkdUSCAtIHBhZGxlbiwgMCk7Ci0KLSAgICAgICAgaWYgKGRpZmYgIT0gMCkgewotICAgICAgICAgICAgcmV0ID0gTUJFRFRMU19FUlJfQ0lQSEVSX0FVVEhfRkFJTEVEOwotICAgICAgICB9Ci0KLSAgICAgICAgaWYgKHJldCAhPSAwKSB7Ci0gICAgICAgICAgICBnb3RvIGNsZWFudXA7Ci0gICAgICAgIH0KLSAgICAgICAgbWVtc2V0KG91dHB1dCArIFBsZW4sIDAsIHBhZGxlbik7Ci0gICAgICAgICpvdXRfbGVuID0gUGxlbjsKLSAgICB9IGVsc2UgewotICAgICAgICByZXQgPSBNQkVEVExTX0VSUl9DSVBIRVJfRkVBVFVSRV9VTkFWQUlMQUJMRTsKLSAgICAgICAgZ290byBjbGVhbnVwOwotICAgIH0KLQotY2xlYW51cDoKLSAgICBpZiAocmV0ICE9IDApIHsKLSAgICAgICAgbWVtc2V0KG91dHB1dCwgMCwgKm91dF9sZW4pOwotICAgICAgICAqb3V0X2xlbiA9IDA7Ci0gICAgfQotCi0gICAgbWJlZHRsc19wbGF0Zm9ybV96ZXJvaXplKCZkaWZmLCBzaXplb2YoZGlmZikpOwotICAgIG1iZWR0bHNfcGxhdGZvcm1femVyb2l6ZShBLCBzaXplb2YoQSkpOwotCi0gICAgcmV0dXJuIHJldDsKLX0KLQotI2VuZGlmIC8qICFNQkVEVExTX05JU1RfS1dfQUxUICovCi0KLSNpZiBkZWZpbmVkKE1CRURUTFNfU0VMRl9URVNUKSAmJiBkZWZpbmVkKE1CRURUTFNfQUVTX0MpCi0KLS8qCi0gKiBUZXN0IHZlY3RvcnMgdGFrZW4gZnJvbSBOSVNUCi0gKiBodHRwczovL2NzcmMubmlzdC5nb3YvUHJvamVjdHMvQ3J5cHRvZ3JhcGhpYy1BbGdvcml0aG0tVmFsaWRhdGlvbi1Qcm9ncmFtL0NBVlAtVEVTVElORy1CTE9DSy1DSVBIRVItTU9ERVMjS1cKLSAqLwotc3RhdGljIGNvbnN0IHVuc2lnbmVkIGludCBrZXlfbGVuW10gPSB7Ci0gICAgMTYsCi0jaWYgIWRlZmluZWQoTUJFRFRMU19BRVNfT05MWV8xMjhfQklUX0tFWV9MRU5HVEgpCi0gICAgMjQsCi0gICAgMzIKLSNlbmRpZgotfTsKLQotc3RhdGljIGNvbnN0IHVuc2lnbmVkIGNoYXIga3dfa2V5W11bMzJdID0gewotICAgIHsgMHg3NSwgMHg3NSwgMHhkYSwgMHgzYSwgMHg5MywgMHg2MCwgMHg3YywgMHhjMiwKLSAgICAgIDB4YmYsIDB4ZDgsIDB4Y2UsIDB4YzcsIDB4YWEsIDB4ZGYsIDB4ZDksIDB4YTYgfSwKLSNpZiAhZGVmaW5lZChNQkVEVExTX0FFU19PTkxZXzEyOF9CSVRfS0VZX0xFTkdUSCkKLSAgICB7IDB4MmQsIDB4ODUsIDB4MjYsIDB4MDgsIDB4MWQsIDB4MDIsIDB4ZmIsIDB4NWIsCi0gICAgICAweDg1LCAweGY2LCAweDlhLCAweGMyLCAweDg2LCAweGVjLCAweGQ1LCAweDdkLAotICAgICAgMHg0MCwgMHhkZiwgMHg1ZCwgMHhmMywgMHg0OSwgMHg0NywgMHg0NCwgMHhkMyB9LAotICAgIHsgMHgxMSwgMHgyYSwgMHhkNCwgMHgxYiwgMHg0OCwgMHg1NiwgMHhjNywgMHgyNSwKLSAgICAgIDB4NGEsIDB4OTgsIDB4NDgsIDB4ZDMsIDB4MGYsIDB4ZGQsIDB4NzgsIDB4MzMsCi0gICAgICAweDViLCAweDAzLCAweDlhLCAweDQ4LCAweGE4LCAweDk2LCAweDJjLCAweDRkLAotICAgICAgMHgxYywgMHhiNywgMHg4ZSwgMHhhYiwgMHhkNSwgMHhkYSwgMHhkNywgMHg4OCB9Ci0jZW5kaWYKLX07Ci0KLXN0YXRpYyBjb25zdCB1bnNpZ25lZCBjaGFyIGt3X21zZ1tdWzQwXSA9IHsKLSAgICB7IDB4NDIsIDB4MTMsIDB4NmQsIDB4M2MsIDB4MzgsIDB4NGEsIDB4M2UsIDB4ZWEsCi0gICAgICAweGM5LCAweDVhLCAweDA2LCAweDZmLCAweGQyLCAweDhmLCAweGVkLCAweDNmIH0sCi0jaWYgIWRlZmluZWQoTUJFRFRMU19BRVNfT05MWV8xMjhfQklUX0tFWV9MRU5HVEgpCi0gICAgeyAweDk1LCAweGMxLCAweDFiLCAweGY1LCAweDM1LCAweDNhLCAweGZlLCAweGRiLAotICAgICAgMHg5OCwgMHhmZCwgMHhkNiwgMHhjOCwgMHhjYSwgMHg2ZiwgMHhkYiwgMHg2ZCwKLSAgICAgIDB4YTUsIDB4NGIsIDB4NzQsIDB4YjQsIDB4OTksIDB4MGYsIDB4ZGMsIDB4NDUsCi0gICAgICAweGMwLCAweDlkLCAweDE1LCAweDhmLCAweDUxLCAweGNlLCAweDYyLCAweDlkLAotICAgICAgMHhlMiwgMHhhZiwgMHgyNiwgMHhlMywgMHgyNSwgMHgwZSwgMHg2YiwgMHg0YyB9LAotICAgIHsgMHgxYiwgMHgyMCwgMHhiZiwgMHgxOSwgMHg5MCwgMHhiMCwgMHg2NSwgMHhkNywKLSAgICAgIDB4OTgsIDB4ZTEsIDB4YjMsIDB4MjIsIDB4NjQsIDB4YWQsIDB4NTAsIDB4YTgsCi0gICAgICAweDc0LCAweDc0LCAweDkyLCAweGJhLCAweDA5LCAweGEwLCAweDRkLCAweGQxIH0KLSNlbmRpZgotfTsKLQotc3RhdGljIGNvbnN0IHNpemVfdCBrd19tc2dfbGVuW10gPSB7Ci0gICAgMTYsCi0jaWYgIWRlZmluZWQoTUJFRFRMU19BRVNfT05MWV8xMjhfQklUX0tFWV9MRU5HVEgpCi0gICAgNDAsCi0gICAgMjQKLSNlbmRpZgotfTsKLXN0YXRpYyBjb25zdCBzaXplX3Qga3dfb3V0X2xlbltdID0gewotICAgIDI0LAotI2lmICFkZWZpbmVkKE1CRURUTFNfQUVTX09OTFlfMTI4X0JJVF9LRVlfTEVOR1RIKQotICAgIDQ4LAotICAgIDMyCi0jZW5kaWYKLX07Ci1zdGF0aWMgY29uc3QgdW5zaWduZWQgY2hhciBrd19yZXNbXVs0OF0gPSB7Ci0gICAgeyAweDAzLCAweDFmLCAweDZiLCAweGQ3LCAweGU2LCAweDFlLCAweDY0LCAweDNkLAotICAgICAgMHhmNiwgMHg4NSwgMHg5NCwgMHg4MSwgMHg2ZiwgMHg2NCwgMHhjYSwgMHhhMywKLSAgICAgIDB4ZjUsIDB4NmYsIDB4YWIsIDB4ZWEsIDB4MjUsIDB4NDgsIDB4ZjUsIDB4ZmIgfSwKLSNpZiAhZGVmaW5lZChNQkVEVExTX0FFU19PTkxZXzEyOF9CSVRfS0VZX0xFTkdUSCkKLSAgICB7IDB4NDQsIDB4M2MsIDB4NmYsIDB4MTUsIDB4MDksIDB4ODMsIDB4NzEsIDB4OTEsCi0gICAgICAweDNlLCAweDVjLCAweDgxLCAweDRjLCAweGExLCAweGEwLCAweDQyLCAweGVjLAotICAgICAgMHg2OCwgMHgyZiwgMHg3YiwgMHgxMywgMHg2ZCwgMHgyNCwgMHgzYSwgMHg0ZCwKLSAgICAgIDB4NmMsIDB4NDIsIDB4NmYsIDB4YzYsIDB4OTcsIDB4MTUsIDB4NjMsIDB4ZTgsCi0gICAgICAweGExLCAweDRhLCAweDU1LCAweDhlLCAweDA5LCAweDY0LCAweDE2LCAweDE5LAotICAgICAgMHhiZiwgMHgwMywgMHhmYywgMHhhZiwgMHg5MCwgMHhiMSwgMHhmYywgMHgyZCB9LAotICAgIHsgMHhiYSwgMHg4YSwgMHgyNSwgMHg5YSwgMHg0NywgMHgxYiwgMHg3OCwgMHg3ZCwKLSAgICAgIDB4ZDUsIDB4ZDUsIDB4NDAsIDB4ZWMsIDB4MjUsIDB4ZDQsIDB4M2QsIDB4ODcsCi0gICAgICAweDIwLCAweDBmLCAweGRhLCAweGRjLCAweDZkLCAweDFmLCAweDA1LCAweGQ5LAotICAgICAgMHgxNiwgMHg1OCwgMHg0ZiwgMHhhOSwgMHhmNiwgMHhjYiwgMHhmNSwgMHgxMiB9Ci0jZW5kaWYKLX07Ci0KLXN0YXRpYyBjb25zdCB1bnNpZ25lZCBjaGFyIGt3cF9rZXlbXVszMl0gPSB7Ci0gICAgeyAweDc4LCAweDY1LCAweGUyLCAweDBmLCAweDNjLCAweDIxLCAweDY1LCAweDlhLAotICAgICAgMHhiNCwgMHg2OSwgMHgwYiwgMHg2MiwgMHg5YywgMHhkZiwgMHgzYywgMHhjNCB9LAotI2lmICFkZWZpbmVkKE1CRURUTFNfQUVTX09OTFlfMTI4X0JJVF9LRVlfTEVOR1RIKQotICAgIHsgMHhmNSwgMHhmOCwgMHg5NiwgMHhhMywgMHhiZCwgMHgyZiwgMHg0YSwgMHg5OCwKLSAgICAgIDB4MjMsIDB4ZWYsIDB4MTYsIDB4MmIsIDB4MDAsIDB4YjgsIDB4MDUsIDB4ZDcsCi0gICAgICAweGRlLCAweDFlLCAweGE0LCAweDY2LCAweDI2LCAweDk2LCAweGEyLCAweDU4IH0sCi0gICAgeyAweDk1LCAweGRhLCAweDI3LCAweDAwLCAweGNhLCAweDZmLCAweGQ5LCAweGE1LAotICAgICAgMHgyNSwgMHg1NCwgMHhlZSwgMHgyYSwgMHg4ZCwgMHhmMSwgMHgzOCwgMHg2ZiwKLSAgICAgIDB4NWIsIDB4OTQsIDB4YTEsIDB4YTYsIDB4MGUsIDB4ZDgsIDB4YTQsIDB4YWUsCi0gICAgICAweGY2LCAweDBhLCAweDhkLCAweDYxLCAweGFiLCAweDVmLCAweDIyLCAweDVhIH0KLSNlbmRpZgotfTsKLQotc3RhdGljIGNvbnN0IHVuc2lnbmVkIGNoYXIga3dwX21zZ1tdWzMxXSA9IHsKLSAgICB7IDB4YmQsIDB4NjgsIDB4NDMsIDB4ZDQsIDB4MjAsIDB4MzcsIDB4OGQsIDB4YzgsCi0gICAgICAweDk2IH0sCi0jaWYgIWRlZmluZWQoTUJFRFRMU19BRVNfT05MWV8xMjhfQklUX0tFWV9MRU5HVEgpCi0gICAgeyAweDZjLCAweGNkLCAweGQ1LCAweDg1LCAweDE4LCAweDQwLCAweDk3LCAweGViLAotICAgICAgMHhkNSwgMHhjMywgMHhhZiwgMHgzZSwgMHg0NywgMHhkMCwgMHgyYywgMHgxOSwKLSAgICAgIDB4MTQsIDB4N2IsIDB4NGQsIDB4OTksIDB4NWYsIDB4OTYsIDB4NDMsIDB4NjYsCi0gICAgICAweDkxLCAweDU2LCAweDc1LCAweDhjLCAweDEzLCAweDE2LCAweDhmIH0sCi0gICAgeyAweGQxIH0KLSNlbmRpZgotfTsKLXN0YXRpYyBjb25zdCBzaXplX3Qga3dwX21zZ19sZW5bXSA9IHsKLSAgICA5LAotI2lmICFkZWZpbmVkKE1CRURUTFNfQUVTX09OTFlfMTI4X0JJVF9LRVlfTEVOR1RIKQotICAgIDMxLAotICAgIDEKLSNlbmRpZgotfTsKLQotc3RhdGljIGNvbnN0IHVuc2lnbmVkIGNoYXIga3dwX3Jlc1tdWzQ4XSA9IHsKLSAgICB7IDB4NDEsIDB4ZWMsIDB4YTksIDB4NTYsIDB4ZDQsIDB4YWEsIDB4MDQsIDB4N2UsCi0gICAgICAweGI1LCAweGNmLCAweDRlLCAweGZlLCAweDY1LCAweDk2LCAweDYxLCAweGU3LAotICAgICAgMHg0ZCwgMHhiNiwgMHhmOCwgMHhjNSwgMHg2NCwgMHhlMiwgMHgzNSwgMHgwMCB9LAotI2lmICFkZWZpbmVkKE1CRURUTFNfQUVTX09OTFlfMTI4X0JJVF9LRVlfTEVOR1RIKQotICAgIHsgMHg0ZSwgMHg5YiwgMHhjMiwgMHhiYywgMHhiYywgMHg2YywgMHgxZSwgMHgxMywKLSAgICAgIDB4ZDMsIDB4MzUsIDB4YmMsIDB4YzAsIDB4ZjcsIDB4NzMsIDB4NmEsIDB4ODgsCi0gICAgICAweGZhLCAweDg3LCAweDUzLCAweDY2LCAweDE1LCAweGJiLCAweDhlLCAweDYzLAotICAgICAgMHg4YiwgMHhjYywgMHg4MSwgMHg2NiwgMHg4NCwgMHg2OCwgMHgxNywgMHg5MCwKLSAgICAgIDB4NjcsIDB4Y2YsIDB4YTksIDB4OGEsIDB4OWQsIDB4MGUsIDB4MzMsIDB4MjYgfSwKLSAgICB7IDB4MDYsIDB4YmEsIDB4N2EsIDB4ZTYsIDB4ZjMsIDB4MjQsIDB4OGMsIDB4ZmQsCi0gICAgICAweGNmLCAweDI2LCAweDc1LCAweDA3LCAweGZhLCAweDAwLCAweDFiLCAweGM0ICB9Ci0jZW5kaWYKLX07Ci1zdGF0aWMgY29uc3Qgc2l6ZV90IGt3cF9vdXRfbGVuW10gPSB7Ci0gICAgMjQsCi0jaWYgIWRlZmluZWQoTUJFRFRMU19BRVNfT05MWV8xMjhfQklUX0tFWV9MRU5HVEgpCi0gICAgNDAsCi0gICAgMTYKLSNlbmRpZgotfTsKLQotaW50IG1iZWR0bHNfbmlzdF9rd19zZWxmX3Rlc3QoaW50IHZlcmJvc2UpCi17Ci0gICAgbWJlZHRsc19uaXN0X2t3X2NvbnRleHQgY3R4OwotICAgIHVuc2lnbmVkIGNoYXIgb3V0WzQ4XTsKLSAgICBzaXplX3Qgb2xlbjsKLSAgICBpbnQgaTsKLSAgICBpbnQgcmV0ID0gMDsKLSAgICBtYmVkdGxzX25pc3Rfa3dfaW5pdCgmY3R4KTsKLQotICAgIC8qCi0gICAgICogS1cgbW9kZQotICAgICAqLwotICAgIHsKLSAgICAgICAgc3RhdGljIGNvbnN0IGludCBudW1fdGVzdHMgPSBzaXplb2Yoa3dfa2V5KSAvIHNpemVvZigqa3dfa2V5KTsKLQotICAgICAgICBmb3IgKGkgPSAwOyBpIDwgbnVtX3Rlc3RzOyBpKyspIHsKLSAgICAgICAgICAgIGlmICh2ZXJib3NlICE9IDApIHsKLSAgICAgICAgICAgICAgICBtYmVkdGxzX3ByaW50ZigiICBLVy1BRVMtJXUgIiwgKHVuc2lnbmVkIGludCkga2V5X2xlbltpXSAqIDgpOwotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICByZXQgPSBtYmVkdGxzX25pc3Rfa3dfc2V0a2V5KCZjdHgsIE1CRURUTFNfQ0lQSEVSX0lEX0FFUywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga3dfa2V5W2ldLCBrZXlfbGVuW2ldICogOCwgMSk7Ci0gICAgICAgICAgICBpZiAocmV0ICE9IDApIHsKLSAgICAgICAgICAgICAgICBpZiAodmVyYm9zZSAhPSAwKSB7Ci0gICAgICAgICAgICAgICAgICAgIG1iZWR0bHNfcHJpbnRmKCIgIEtXOiBzZXR1cCBmYWlsZWQgIik7Ci0gICAgICAgICAgICAgICAgfQotCi0gICAgICAgICAgICAgICAgZ290byBlbmQ7Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIHJldCA9IG1iZWR0bHNfbmlzdF9rd193cmFwKCZjdHgsIE1CRURUTFNfS1dfTU9ERV9LVywga3dfbXNnW2ldLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga3dfbXNnX2xlbltpXSwgb3V0LCAmb2xlbiwgc2l6ZW9mKG91dCkpOwotICAgICAgICAgICAgaWYgKHJldCAhPSAwIHx8IGt3X291dF9sZW5baV0gIT0gb2xlbiB8fAotICAgICAgICAgICAgICAgIG1lbWNtcChvdXQsIGt3X3Jlc1tpXSwga3dfb3V0X2xlbltpXSkgIT0gMCkgewotICAgICAgICAgICAgICAgIGlmICh2ZXJib3NlICE9IDApIHsKLSAgICAgICAgICAgICAgICAgICAgbWJlZHRsc19wcmludGYoImZhaWxlZC4gIik7Ci0gICAgICAgICAgICAgICAgfQotCi0gICAgICAgICAgICAgICAgcmV0ID0gMTsKLSAgICAgICAgICAgICAgICBnb3RvIGVuZDsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgaWYgKChyZXQgPSBtYmVkdGxzX25pc3Rfa3dfc2V0a2V5KCZjdHgsIE1CRURUTFNfQ0lQSEVSX0lEX0FFUywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrd19rZXlbaV0sIGtleV9sZW5baV0gKiA4LCAwKSkKLSAgICAgICAgICAgICAgICAhPSAwKSB7Ci0gICAgICAgICAgICAgICAgaWYgKHZlcmJvc2UgIT0gMCkgewotICAgICAgICAgICAgICAgICAgICBtYmVkdGxzX3ByaW50ZigiICBLVzogc2V0dXAgZmFpbGVkICIpOwotICAgICAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgICAgIGdvdG8gZW5kOwotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICByZXQgPSBtYmVkdGxzX25pc3Rfa3dfdW53cmFwKCZjdHgsIE1CRURUTFNfS1dfTU9ERV9LVywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3V0LCBvbGVuLCBvdXQsICZvbGVuLCBzaXplb2Yob3V0KSk7Ci0KLSAgICAgICAgICAgIGlmIChyZXQgIT0gMCB8fCBvbGVuICE9IGt3X21zZ19sZW5baV0gfHwKLSAgICAgICAgICAgICAgICBtZW1jbXAob3V0LCBrd19tc2dbaV0sIGt3X21zZ19sZW5baV0pICE9IDApIHsKLSAgICAgICAgICAgICAgICBpZiAodmVyYm9zZSAhPSAwKSB7Ci0gICAgICAgICAgICAgICAgICAgIG1iZWR0bHNfcHJpbnRmKCJmYWlsZWRcbiIpOwotICAgICAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgICAgIHJldCA9IDE7Ci0gICAgICAgICAgICAgICAgZ290byBlbmQ7Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIGlmICh2ZXJib3NlICE9IDApIHsKLSAgICAgICAgICAgICAgICBtYmVkdGxzX3ByaW50ZigiIHBhc3NlZFxuIik7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICAvKgotICAgICAqIEtXUCBtb2RlCi0gICAgICovCi0gICAgewotICAgICAgICBzdGF0aWMgY29uc3QgaW50IG51bV90ZXN0cyA9IHNpemVvZihrd3Bfa2V5KSAvIHNpemVvZigqa3dwX2tleSk7Ci0KLSAgICAgICAgZm9yIChpID0gMDsgaSA8IG51bV90ZXN0czsgaSsrKSB7Ci0gICAgICAgICAgICBvbGVuID0gc2l6ZW9mKG91dCk7Ci0gICAgICAgICAgICBpZiAodmVyYm9zZSAhPSAwKSB7Ci0gICAgICAgICAgICAgICAgbWJlZHRsc19wcmludGYoIiAgS1dQLUFFUy0ldSAiLCAodW5zaWduZWQgaW50KSBrZXlfbGVuW2ldICogOCk7Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIHJldCA9IG1iZWR0bHNfbmlzdF9rd19zZXRrZXkoJmN0eCwgTUJFRFRMU19DSVBIRVJfSURfQUVTLCBrd3Bfa2V5W2ldLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXlfbGVuW2ldICogOCwgMSk7Ci0gICAgICAgICAgICBpZiAocmV0ICAhPSAwKSB7Ci0gICAgICAgICAgICAgICAgaWYgKHZlcmJvc2UgIT0gMCkgewotICAgICAgICAgICAgICAgICAgICBtYmVkdGxzX3ByaW50ZigiICBLV1A6IHNldHVwIGZhaWxlZCAiKTsKLSAgICAgICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgICAgICBnb3RvIGVuZDsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHJldCA9IG1iZWR0bHNfbmlzdF9rd193cmFwKCZjdHgsIE1CRURUTFNfS1dfTU9ERV9LV1AsIGt3cF9tc2dbaV0sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrd3BfbXNnX2xlbltpXSwgb3V0LCAmb2xlbiwgc2l6ZW9mKG91dCkpOwotCi0gICAgICAgICAgICBpZiAocmV0ICE9IDAgfHwga3dwX291dF9sZW5baV0gIT0gb2xlbiB8fAotICAgICAgICAgICAgICAgIG1lbWNtcChvdXQsIGt3cF9yZXNbaV0sIGt3cF9vdXRfbGVuW2ldKSAhPSAwKSB7Ci0gICAgICAgICAgICAgICAgaWYgKHZlcmJvc2UgIT0gMCkgewotICAgICAgICAgICAgICAgICAgICBtYmVkdGxzX3ByaW50ZigiZmFpbGVkLiAiKTsKLSAgICAgICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgICAgICByZXQgPSAxOwotICAgICAgICAgICAgICAgIGdvdG8gZW5kOwotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICBpZiAoKHJldCA9IG1iZWR0bHNfbmlzdF9rd19zZXRrZXkoJmN0eCwgTUJFRFRMU19DSVBIRVJfSURfQUVTLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGt3cF9rZXlbaV0sIGtleV9sZW5baV0gKiA4LCAwKSkKLSAgICAgICAgICAgICAgICAhPSAwKSB7Ci0gICAgICAgICAgICAgICAgaWYgKHZlcmJvc2UgIT0gMCkgewotICAgICAgICAgICAgICAgICAgICBtYmVkdGxzX3ByaW50ZigiICBLV1A6IHNldHVwIGZhaWxlZCAiKTsKLSAgICAgICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgICAgICBnb3RvIGVuZDsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgcmV0ID0gbWJlZHRsc19uaXN0X2t3X3Vud3JhcCgmY3R4LCBNQkVEVExTX0tXX01PREVfS1dQLCBvdXQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9sZW4sIG91dCwgJm9sZW4sIHNpemVvZihvdXQpKTsKLQotICAgICAgICAgICAgaWYgKHJldCAhPSAwIHx8IG9sZW4gIT0ga3dwX21zZ19sZW5baV0gfHwKLSAgICAgICAgICAgICAgICBtZW1jbXAob3V0LCBrd3BfbXNnW2ldLCBrd3BfbXNnX2xlbltpXSkgIT0gMCkgewotICAgICAgICAgICAgICAgIGlmICh2ZXJib3NlICE9IDApIHsKLSAgICAgICAgICAgICAgICAgICAgbWJlZHRsc19wcmludGYoImZhaWxlZC4gIik7Ci0gICAgICAgICAgICAgICAgfQotCi0gICAgICAgICAgICAgICAgcmV0ID0gMTsKLSAgICAgICAgICAgICAgICBnb3RvIGVuZDsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgaWYgKHZlcmJvc2UgIT0gMCkgewotICAgICAgICAgICAgICAgIG1iZWR0bHNfcHJpbnRmKCIgcGFzc2VkXG4iKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfQotICAgIH0KLWVuZDoKLSAgICBtYmVkdGxzX25pc3Rfa3dfZnJlZSgmY3R4KTsKLQotICAgIGlmICh2ZXJib3NlICE9IDApIHsKLSAgICAgICAgbWJlZHRsc19wcmludGYoIlxuIik7Ci0gICAgfQotCi0gICAgcmV0dXJuIHJldDsKLX0KLQotI2VuZGlmIC8qIE1CRURUTFNfU0VMRl9URVNUICYmIE1CRURUTFNfQUVTX0MgKi8KLQotI2VuZGlmIC8qIE1CRURUTFNfTklTVF9LV19DICovCmRpZmYgLS1naXQgYS9saWJyYXJ5L29pZC5jIGIvbGlicmFyeS9vaWQuYwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMWQ2YjFlYi4uMDAwMDAwMAotLS0gYS9saWJyYXJ5L29pZC5jCisrKyAvZGV2L251bGwKQEAgLTEsMTE2NiArMCwwIEBACi0vKioKLSAqIFxmaWxlIG9pZC5jCi0gKgotICogXGJyaWVmIE9iamVjdCBJZGVudGlmaWVyIChPSUQpIGRhdGFiYXNlCi0gKgotICogIENvcHlyaWdodCBUaGUgTWJlZCBUTFMgQ29udHJpYnV0b3JzCi0gKiAgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjAgT1IgR1BMLTIuMC1vci1sYXRlcgotICovCi0KLSNpbmNsdWRlICJjb21tb24uaCIKLQotI2lmIGRlZmluZWQoTUJFRFRMU19PSURfQykKLQotI2luY2x1ZGUgIm1iZWR0bHMvb2lkLmgiCi0jaW5jbHVkZSAibWJlZHRscy9yc2EuaCIKLSNpbmNsdWRlICJtYmVkdGxzL2Vycm9yLmgiCi0jaW5jbHVkZSAibWJlZHRscy9way5oIgotCi0jaW5jbHVkZSA8c3RkaW8uaD4KLSNpbmNsdWRlIDxzdHJpbmcuaD4KLQotI2luY2x1ZGUgIm1iZWR0bHMvcGxhdGZvcm0uaCIKLQotLyoKLSAqIE1hY3JvIHRvIGF1dG9tYXRpY2FsbHkgYWRkIHRoZSBzaXplIG9mICNkZWZpbmUnZCBPSURzCi0gKi8KLSNkZWZpbmUgQUREX0xFTihzKSAgICAgIHMsIE1CRURUTFNfT0lEX1NJWkUocykKLQotLyoKLSAqIE1hY3JvIHRvIGdlbmVyYXRlIG1iZWR0bHNfb2lkX2Rlc2NyaXB0b3JfdAotICovCi0jaWYgIWRlZmluZWQoTUJFRFRMU19YNTA5X1JFTU9WRV9JTkZPKQotI2RlZmluZSBPSURfREVTQ1JJUFRPUihzLCBuYW1lLCBkZXNjcmlwdGlvbikgIHsgQUREX0xFTihzKSwgbmFtZSwgZGVzY3JpcHRpb24gfQotI2RlZmluZSBOVUxMX09JRF9ERVNDUklQVE9SICAgICAgICAgICAgICAgICAgIHsgTlVMTCwgMCwgTlVMTCwgTlVMTCB9Ci0jZWxzZQotI2RlZmluZSBPSURfREVTQ1JJUFRPUihzLCBuYW1lLCBkZXNjcmlwdGlvbikgIHsgQUREX0xFTihzKSB9Ci0jZGVmaW5lIE5VTExfT0lEX0RFU0NSSVBUT1IgICAgICAgICAgICAgICAgICAgeyBOVUxMLCAwIH0KLSNlbmRpZgotCi0vKgotICogTWFjcm8gdG8gZ2VuZXJhdGUgYW4gaW50ZXJuYWwgZnVuY3Rpb24gZm9yIG9pZF9YWFhfZnJvbV9hc24xKCkgKHVzZWQgYnkKLSAqIHRoZSBvdGhlciBmdW5jdGlvbnMpCi0gKi8KLSNkZWZpbmUgRk5fT0lEX1RZUEVEX0ZST01fQVNOMShUWVBFX1QsIE5BTUUsIExJU1QpICAgICAgICAgICAgICAgICAgICBcCi0gICAgc3RhdGljIGNvbnN0IFRZUEVfVCAqb2lkXyAjIyBOQU1FICMjIF9mcm9tX2FzbjEoICAgICAgICAgICAgICAgICAgIFwKLSAgICAgICAgY29uc3QgbWJlZHRsc19hc24xX2J1ZiAqb2lkKSAgICAgXAotICAgIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgICAgICBjb25zdCBUWVBFX1QgKnAgPSAoTElTVCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgICAgICBjb25zdCBtYmVkdGxzX29pZF9kZXNjcmlwdG9yX3QgKmN1ciA9ICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgICAgICAgICAgKGNvbnN0IG1iZWR0bHNfb2lkX2Rlc2NyaXB0b3JfdCAqKSBwOyAgICAgICAgICAgICAgICAgICAgICAgXAotICAgICAgICBpZiAocCA9PSBOVUxMIHx8IG9pZCA9PSBOVUxMKSByZXR1cm4gTlVMTDsgICAgICAgICAgICAgICAgICBcCi0gICAgICAgIHdoaWxlIChjdXItPmFzbjEgIT0gTlVMTCkgeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICAgICAgICAgIGlmIChjdXItPmFzbjFfbGVuID09IG9pZC0+bGVuICYmICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICAgICAgICAgICAgICBtZW1jbXAoY3VyLT5hc24xLCBvaWQtPnAsIG9pZC0+bGVuKSA9PSAwKSB7ICAgICAgICAgIFwKLSAgICAgICAgICAgICAgICByZXR1cm4gcDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICAgICAgICAgIH0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICAgICAgICAgIHArKzsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICAgICAgICAgIGN1ciA9IChjb25zdCBtYmVkdGxzX29pZF9kZXNjcmlwdG9yX3QgKikgcDsgICAgICAgICAgICAgICAgIFwKLSAgICAgICAgfSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICAgICAgcmV0dXJuIE5VTEw7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICB9Ci0KLSNpZiAhZGVmaW5lZChNQkVEVExTX1g1MDlfUkVNT1ZFX0lORk8pCi0vKgotICogTWFjcm8gdG8gZ2VuZXJhdGUgYSBmdW5jdGlvbiBmb3IgcmV0cmlldmluZyBhIHNpbmdsZSBhdHRyaWJ1dGUgZnJvbSB0aGUKLSAqIGRlc2NyaXB0b3Igb2YgYW4gbWJlZHRsc19vaWRfZGVzY3JpcHRvcl90IHdyYXBwZXIuCi0gKi8KLSNkZWZpbmUgRk5fT0lEX0dFVF9ERVNDUklQVE9SX0FUVFIxKEZOX05BTUUsIFRZUEVfVCwgVFlQRV9OQU1FLCBBVFRSMV9UWVBFLCBBVFRSMSkgXAotICAgIGludCBGTl9OQU1FKGNvbnN0IG1iZWR0bHNfYXNuMV9idWYgKm9pZCwgQVRUUjFfVFlQRSAqIEFUVFIxKSAgICAgICAgICAgICAgICAgIFwKLSAgICB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgICAgIGNvbnN0IFRZUEVfVCAqZGF0YSA9IG9pZF8gIyMgVFlQRV9OQU1FICMjIF9mcm9tX2FzbjEob2lkKTsgICAgICAgIFwKLSAgICAgICAgaWYgKGRhdGEgPT0gTlVMTCkgcmV0dXJuIE1CRURUTFNfRVJSX09JRF9OT1RfRk9VTkQ7ICAgICAgICAgICAgXAotICAgICAgICAqQVRUUjEgPSBkYXRhLT5kZXNjcmlwdG9yLkFUVFIxOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICAgICAgcmV0dXJuIDA7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgfQotI2VuZGlmIC8qIE1CRURUTFNfWDUwOV9SRU1PVkVfSU5GTyAqLwotCi0vKgotICogTWFjcm8gdG8gZ2VuZXJhdGUgYSBmdW5jdGlvbiBmb3IgcmV0cmlldmluZyBhIHNpbmdsZSBhdHRyaWJ1dGUgZnJvbSBhbgotICogbWJlZHRsc19vaWRfZGVzY3JpcHRvcl90IHdyYXBwZXIuCi0gKi8KLSNkZWZpbmUgRk5fT0lEX0dFVF9BVFRSMShGTl9OQU1FLCBUWVBFX1QsIFRZUEVfTkFNRSwgQVRUUjFfVFlQRSwgQVRUUjEpIFwKLSAgICBpbnQgRk5fTkFNRShjb25zdCBtYmVkdGxzX2FzbjFfYnVmICpvaWQsIEFUVFIxX1RZUEUgKiBBVFRSMSkgICAgICAgICAgICAgICAgICBcCi0gICAgeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgICAgICBjb25zdCBUWVBFX1QgKmRhdGEgPSBvaWRfICMjIFRZUEVfTkFNRSAjIyBfZnJvbV9hc24xKG9pZCk7ICAgICAgICBcCi0gICAgICAgIGlmIChkYXRhID09IE5VTEwpIHJldHVybiBNQkVEVExTX0VSUl9PSURfTk9UX0ZPVU5EOyAgICAgICAgICAgIFwKLSAgICAgICAgKkFUVFIxID0gZGF0YS0+QVRUUjE7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgICAgIHJldHVybiAwOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIH0KLQotLyoKLSAqIE1hY3JvIHRvIGdlbmVyYXRlIGEgZnVuY3Rpb24gZm9yIHJldHJpZXZpbmcgdHdvIGF0dHJpYnV0ZXMgZnJvbSBhbgotICogbWJlZHRsc19vaWRfZGVzY3JpcHRvcl90IHdyYXBwZXIuCi0gKi8KLSNkZWZpbmUgRk5fT0lEX0dFVF9BVFRSMihGTl9OQU1FLCBUWVBFX1QsIFRZUEVfTkFNRSwgQVRUUjFfVFlQRSwgQVRUUjEsICAgICBcCi0gICAgICAgICAgICAgICAgICAgICAgICAgQVRUUjJfVFlQRSwgQVRUUjIpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIGludCBGTl9OQU1FKGNvbnN0IG1iZWR0bHNfYXNuMV9idWYgKm9pZCwgQVRUUjFfVFlQRSAqIEFUVFIxLCAgICAgICAgICAgICAgIFwKLSAgICAgICAgICAgICAgICBBVFRSMl9UWVBFICogQVRUUjIpICAgICAgICAgICAgICBcCi0gICAgeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICAgICAgY29uc3QgVFlQRV9UICpkYXRhID0gb2lkXyAjIyBUWVBFX05BTUUgIyMgX2Zyb21fYXNuMShvaWQpOyAgICAgICAgICAgIFwKLSAgICAgICAgaWYgKGRhdGEgPT0gTlVMTCkgcmV0dXJuIE1CRURUTFNfRVJSX09JRF9OT1RfRk9VTkQ7ICAgICAgICAgICAgICAgICBcCi0gICAgICAgICooQVRUUjEpID0gZGF0YS0+QVRUUjE7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICAgICAgKihBVFRSMikgPSBkYXRhLT5BVFRSMjsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgICAgICByZXR1cm4gMDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgfQotCi0vKgotICogTWFjcm8gdG8gZ2VuZXJhdGUgYSBmdW5jdGlvbiBmb3IgcmV0cmlldmluZyB0aGUgT0lEIGJhc2VkIG9uIGEgc2luZ2xlCi0gKiBhdHRyaWJ1dGUgZnJvbSBhIG1iZWR0bHNfb2lkX2Rlc2NyaXB0b3JfdCB3cmFwcGVyLgotICovCi0jZGVmaW5lIEZOX09JRF9HRVRfT0lEX0JZX0FUVFIxKEZOX05BTUUsIFRZUEVfVCwgTElTVCwgQVRUUjFfVFlQRSwgQVRUUjEpICAgXAotICAgIGludCBGTl9OQU1FKEFUVFIxX1RZUEUgQVRUUjEsIGNvbnN0IGNoYXIgKipvaWQsIHNpemVfdCAqb2xlbikgICAgICAgICAgICAgXAotICAgIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgICAgIGNvbnN0IFRZUEVfVCAqY3VyID0gKExJU1QpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICAgICAgd2hpbGUgKGN1ci0+ZGVzY3JpcHRvci5hc24xICE9IE5VTEwpIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgICAgICAgICBpZiAoY3VyLT5BVFRSMSA9PSAoQVRUUjEpKSB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgICAgICAgICAgICAgICpvaWQgPSBjdXItPmRlc2NyaXB0b3IuYXNuMTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgICAgICAgICAgICAgKm9sZW4gPSBjdXItPmRlc2NyaXB0b3IuYXNuMV9sZW47ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICAgICAgICAgICAgICByZXR1cm4gMDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgICAgICAgICAgfSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgICAgICAgICBjdXIrKzsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICAgICAgfSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfT0lEX05PVF9GT1VORDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgfQotCi0vKgotICogTWFjcm8gdG8gZ2VuZXJhdGUgYSBmdW5jdGlvbiBmb3IgcmV0cmlldmluZyB0aGUgT0lEIGJhc2VkIG9uIHR3bwotICogYXR0cmlidXRlcyBmcm9tIGEgbWJlZHRsc19vaWRfZGVzY3JpcHRvcl90IHdyYXBwZXIuCi0gKi8KLSNkZWZpbmUgRk5fT0lEX0dFVF9PSURfQllfQVRUUjIoRk5fTkFNRSwgVFlQRV9ULCBMSVNULCBBVFRSMV9UWVBFLCBBVFRSMSwgICBcCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFUVFIyX1RZUEUsIEFUVFIyKSAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIGludCBGTl9OQU1FKEFUVFIxX1RZUEUgQVRUUjEsIEFUVFIyX1RZUEUgQVRUUjIsIGNvbnN0IGNoYXIgKipvaWQsICAgICAgICAgXAotICAgICAgICAgICAgICAgIHNpemVfdCAqb2xlbikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgICAgIGNvbnN0IFRZUEVfVCAqY3VyID0gKExJU1QpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICAgICAgd2hpbGUgKGN1ci0+ZGVzY3JpcHRvci5hc24xICE9IE5VTEwpIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgICAgICAgICBpZiAoY3VyLT5BVFRSMSA9PSAoQVRUUjEpICYmIGN1ci0+QVRUUjIgPT0gKEFUVFIyKSkgeyAgICAgICAgICAgICAgXAotICAgICAgICAgICAgICAgICpvaWQgPSBjdXItPmRlc2NyaXB0b3IuYXNuMTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgICAgICAgICAgICAgKm9sZW4gPSBjdXItPmRlc2NyaXB0b3IuYXNuMV9sZW47ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICAgICAgICAgICAgICByZXR1cm4gMDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgICAgICAgICAgfSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgICAgICAgICBjdXIrKzsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICAgICAgfSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfT0lEX05PVF9GT1VORDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICB9Ci0KLS8qCi0gKiBGb3IgWDUyMCBhdHRyaWJ1dGUgdHlwZXMKLSAqLwotdHlwZWRlZiBzdHJ1Y3QgewotICAgIG1iZWR0bHNfb2lkX2Rlc2NyaXB0b3JfdCAgICBkZXNjcmlwdG9yOwotICAgIGNvbnN0IGNoYXIgICAgICAgICAgKnNob3J0X25hbWU7Ci19IG9pZF94NTIwX2F0dHJfdDsKLQotc3RhdGljIGNvbnN0IG9pZF94NTIwX2F0dHJfdCBvaWRfeDUyMF9hdHRyX3R5cGVbXSA9Ci17Ci0gICAgewotICAgICAgICBPSURfREVTQ1JJUFRPUihNQkVEVExTX09JRF9BVF9DTiwgICAgICAgICAgImlkLWF0LWNvbW1vbk5hbWUiLCAgICAgICAgICAgICAgICJDb21tb24gTmFtZSIpLAotICAgICAgICAiQ04iLAotICAgIH0sCi0gICAgewotICAgICAgICBPSURfREVTQ1JJUFRPUihNQkVEVExTX09JRF9BVF9DT1VOVFJZLCAgICAgImlkLWF0LWNvdW50cnlOYW1lIiwgICAgICAgICAgICAgICJDb3VudHJ5IiksCi0gICAgICAgICJDIiwKLSAgICB9LAotICAgIHsKLSAgICAgICAgT0lEX0RFU0NSSVBUT1IoTUJFRFRMU19PSURfQVRfTE9DQUxJVFksICAgICJpZC1hdC1sb2NhbGl0eSIsICAgICAgICAgICAgICAgICAiTG9jYWxpdHkiKSwKLSAgICAgICAgIkwiLAotICAgIH0sCi0gICAgewotICAgICAgICBPSURfREVTQ1JJUFRPUihNQkVEVExTX09JRF9BVF9TVEFURSwgICAgICAgImlkLWF0LXN0YXRlIiwgICAgICAgICAgICAgICAgICAgICJTdGF0ZSIpLAotICAgICAgICAiU1QiLAotICAgIH0sCi0gICAgewotICAgICAgICBPSURfREVTQ1JJUFRPUihNQkVEVExTX09JRF9BVF9PUkdBTklaQVRJT04sICJpZC1hdC1vcmdhbml6YXRpb25OYW1lIiwKLSAgICAgICAgICAgICAgICAgICAgICAgIk9yZ2FuaXphdGlvbiIpLAotICAgICAgICAiTyIsCi0gICAgfSwKLSAgICB7Ci0gICAgICAgIE9JRF9ERVNDUklQVE9SKE1CRURUTFNfT0lEX0FUX09SR19VTklULCAgICAiaWQtYXQtb3JnYW5pemF0aW9uYWxVbml0TmFtZSIsICAgIk9yZyBVbml0IiksCi0gICAgICAgICJPVSIsCi0gICAgfSwKLSAgICB7Ci0gICAgICAgIE9JRF9ERVNDUklQVE9SKE1CRURUTFNfT0lEX1BLQ1M5X0VNQUlMLAotICAgICAgICAgICAgICAgICAgICAgICAiZW1haWxBZGRyZXNzIiwKLSAgICAgICAgICAgICAgICAgICAgICAgIkUtbWFpbCBhZGRyZXNzIiksCi0gICAgICAgICJlbWFpbEFkZHJlc3MiLAotICAgIH0sCi0gICAgewotICAgICAgICBPSURfREVTQ1JJUFRPUihNQkVEVExTX09JRF9BVF9TRVJJQUxfTlVNQkVSLAotICAgICAgICAgICAgICAgICAgICAgICAiaWQtYXQtc2VyaWFsTnVtYmVyIiwKLSAgICAgICAgICAgICAgICAgICAgICAgIlNlcmlhbCBudW1iZXIiKSwKLSAgICAgICAgInNlcmlhbE51bWJlciIsCi0gICAgfSwKLSAgICB7Ci0gICAgICAgIE9JRF9ERVNDUklQVE9SKE1CRURUTFNfT0lEX0FUX1BPU1RBTF9BRERSRVNTLAotICAgICAgICAgICAgICAgICAgICAgICAiaWQtYXQtcG9zdGFsQWRkcmVzcyIsCi0gICAgICAgICAgICAgICAgICAgICAgICJQb3N0YWwgYWRkcmVzcyIpLAotICAgICAgICAicG9zdGFsQWRkcmVzcyIsCi0gICAgfSwKLSAgICB7Ci0gICAgICAgIE9JRF9ERVNDUklQVE9SKE1CRURUTFNfT0lEX0FUX1BPU1RBTF9DT0RFLCAiaWQtYXQtcG9zdGFsQ29kZSIsICAgICAgICAgICAgICAgIlBvc3RhbCBjb2RlIiksCi0gICAgICAgICJwb3N0YWxDb2RlIiwKLSAgICB9LAotICAgIHsKLSAgICAgICAgT0lEX0RFU0NSSVBUT1IoTUJFRFRMU19PSURfQVRfU1VSX05BTUUsICAgICJpZC1hdC1zdXJOYW1lIiwgICAgICAgICAgICAgICAgICAiU3VybmFtZSIpLAotICAgICAgICAiU04iLAotICAgIH0sCi0gICAgewotICAgICAgICBPSURfREVTQ1JJUFRPUihNQkVEVExTX09JRF9BVF9HSVZFTl9OQU1FLCAgImlkLWF0LWdpdmVuTmFtZSIsICAgICAgICAgICAgICAgICJHaXZlbiBuYW1lIiksCi0gICAgICAgICJHTiIsCi0gICAgfSwKLSAgICB7Ci0gICAgICAgIE9JRF9ERVNDUklQVE9SKE1CRURUTFNfT0lEX0FUX0lOSVRJQUxTLCAgICAiaWQtYXQtaW5pdGlhbHMiLCAgICAgICAgICAgICAgICAgIkluaXRpYWxzIiksCi0gICAgICAgICJpbml0aWFscyIsCi0gICAgfSwKLSAgICB7Ci0gICAgICAgIE9JRF9ERVNDUklQVE9SKE1CRURUTFNfT0lEX0FUX0dFTkVSQVRJT05fUVVBTElGSUVSLAotICAgICAgICAgICAgICAgICAgICAgICAiaWQtYXQtZ2VuZXJhdGlvblF1YWxpZmllciIsCi0gICAgICAgICAgICAgICAgICAgICAgICJHZW5lcmF0aW9uIHF1YWxpZmllciIpLAotICAgICAgICAiZ2VuZXJhdGlvblF1YWxpZmllciIsCi0gICAgfSwKLSAgICB7Ci0gICAgICAgIE9JRF9ERVNDUklQVE9SKE1CRURUTFNfT0lEX0FUX1RJVExFLCAgICAgICAiaWQtYXQtdGl0bGUiLCAgICAgICAgICAgICAgICAgICAgIlRpdGxlIiksCi0gICAgICAgICJ0aXRsZSIsCi0gICAgfSwKLSAgICB7Ci0gICAgICAgIE9JRF9ERVNDUklQVE9SKE1CRURUTFNfT0lEX0FUX0ROX1FVQUxJRklFUiwKLSAgICAgICAgICAgICAgICAgICAgICAgImlkLWF0LWRuUXVhbGlmaWVyIiwKLSAgICAgICAgICAgICAgICAgICAgICAgIkRpc3Rpbmd1aXNoZWQgTmFtZSBxdWFsaWZpZXIiKSwKLSAgICAgICAgImRuUXVhbGlmaWVyIiwKLSAgICB9LAotICAgIHsKLSAgICAgICAgT0lEX0RFU0NSSVBUT1IoTUJFRFRMU19PSURfQVRfUFNFVURPTllNLCAgICJpZC1hdC1wc2V1ZG9ueW0iLCAgICAgICAgICAgICAgICAiUHNldWRvbnltIiksCi0gICAgICAgICJwc2V1ZG9ueW0iLAotICAgIH0sCi0gICAgewotICAgICAgICBPSURfREVTQ1JJUFRPUihNQkVEVExTX09JRF9VSUQsICAgICAgICAgICAgImlkLXVpZCIsICAgICAgICAgICAgICAgICAgICAgICAgICJVc2VyIElkIiksCi0gICAgICAgICJ1aWQiLAotICAgIH0sCi0gICAgewotICAgICAgICBPSURfREVTQ1JJUFRPUihNQkVEVExTX09JRF9ET01BSU5fQ09NUE9ORU5ULAotICAgICAgICAgICAgICAgICAgICAgICAiaWQtZG9tYWluQ29tcG9uZW50IiwKLSAgICAgICAgICAgICAgICAgICAgICAgIkRvbWFpbiBjb21wb25lbnQiKSwKLSAgICAgICAgIkRDIiwKLSAgICB9LAotICAgIHsKLSAgICAgICAgT0lEX0RFU0NSSVBUT1IoTUJFRFRMU19PSURfQVRfVU5JUVVFX0lERU5USUZJRVIsCi0gICAgICAgICAgICAgICAgICAgICAgICJpZC1hdC11bmlxdWVJZGVudGlmaWVyIiwKLSAgICAgICAgICAgICAgICAgICAgICAgIlVuaXF1ZSBJZGVudGlmaWVyIiksCi0gICAgICAgICJ1bmlxdWVJZGVudGlmaWVyIiwKLSAgICB9LAotICAgIHsKLSAgICAgICAgTlVMTF9PSURfREVTQ1JJUFRPUiwKLSAgICAgICAgTlVMTCwKLSAgICB9Ci19OwotCi1GTl9PSURfVFlQRURfRlJPTV9BU04xKG9pZF94NTIwX2F0dHJfdCwgeDUyMF9hdHRyLCBvaWRfeDUyMF9hdHRyX3R5cGUpCi1GTl9PSURfR0VUX0FUVFIxKG1iZWR0bHNfb2lkX2dldF9hdHRyX3Nob3J0X25hbWUsCi0gICAgICAgICAgICAgICAgIG9pZF94NTIwX2F0dHJfdCwKLSAgICAgICAgICAgICAgICAgeDUyMF9hdHRyLAotICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICosCi0gICAgICAgICAgICAgICAgIHNob3J0X25hbWUpCi0KLS8qCi0gKiBGb3IgWDUwOSBleHRlbnNpb25zCi0gKi8KLXR5cGVkZWYgc3RydWN0IHsKLSAgICBtYmVkdGxzX29pZF9kZXNjcmlwdG9yX3QgICAgZGVzY3JpcHRvcjsKLSAgICBpbnQgICAgICAgICAgICAgICAgIGV4dF90eXBlOwotfSBvaWRfeDUwOV9leHRfdDsKLQotc3RhdGljIGNvbnN0IG9pZF94NTA5X2V4dF90IG9pZF94NTA5X2V4dFtdID0KLXsKLSAgICB7Ci0gICAgICAgIE9JRF9ERVNDUklQVE9SKE1CRURUTFNfT0lEX0JBU0lDX0NPTlNUUkFJTlRTLAotICAgICAgICAgICAgICAgICAgICAgICAiaWQtY2UtYmFzaWNDb25zdHJhaW50cyIsCi0gICAgICAgICAgICAgICAgICAgICAgICJCYXNpYyBDb25zdHJhaW50cyIpLAotICAgICAgICBNQkVEVExTX09JRF9YNTA5X0VYVF9CQVNJQ19DT05TVFJBSU5UUywKLSAgICB9LAotICAgIHsKLSAgICAgICAgT0lEX0RFU0NSSVBUT1IoTUJFRFRMU19PSURfS0VZX1VTQUdFLCAgICAgICAgICAgICJpZC1jZS1rZXlVc2FnZSIsICAgICAgICAgICAgIktleSBVc2FnZSIpLAotICAgICAgICBNQkVEVExTX09JRF9YNTA5X0VYVF9LRVlfVVNBR0UsCi0gICAgfSwKLSAgICB7Ci0gICAgICAgIE9JRF9ERVNDUklQVE9SKE1CRURUTFNfT0lEX0VYVEVOREVEX0tFWV9VU0FHRSwKLSAgICAgICAgICAgICAgICAgICAgICAgImlkLWNlLWV4dEtleVVzYWdlIiwKLSAgICAgICAgICAgICAgICAgICAgICAgIkV4dGVuZGVkIEtleSBVc2FnZSIpLAotICAgICAgICBNQkVEVExTX09JRF9YNTA5X0VYVF9FWFRFTkRFRF9LRVlfVVNBR0UsCi0gICAgfSwKLSAgICB7Ci0gICAgICAgIE9JRF9ERVNDUklQVE9SKE1CRURUTFNfT0lEX1NVQkpFQ1RfQUxUX05BTUUsCi0gICAgICAgICAgICAgICAgICAgICAgICJpZC1jZS1zdWJqZWN0QWx0TmFtZSIsCi0gICAgICAgICAgICAgICAgICAgICAgICJTdWJqZWN0IEFsdCBOYW1lIiksCi0gICAgICAgIE1CRURUTFNfT0lEX1g1MDlfRVhUX1NVQkpFQ1RfQUxUX05BTUUsCi0gICAgfSwKLSAgICB7Ci0gICAgICAgIE9JRF9ERVNDUklQVE9SKE1CRURUTFNfT0lEX05TX0NFUlRfVFlQRSwKLSAgICAgICAgICAgICAgICAgICAgICAgImlkLW5ldHNjYXBlLWNlcnR0eXBlIiwKLSAgICAgICAgICAgICAgICAgICAgICAgIk5ldHNjYXBlIENlcnRpZmljYXRlIFR5cGUiKSwKLSAgICAgICAgTUJFRFRMU19PSURfWDUwOV9FWFRfTlNfQ0VSVF9UWVBFLAotICAgIH0sCi0gICAgewotICAgICAgICBPSURfREVTQ1JJUFRPUihNQkVEVExTX09JRF9DRVJUSUZJQ0FURV9QT0xJQ0lFUywKLSAgICAgICAgICAgICAgICAgICAgICAgImlkLWNlLWNlcnRpZmljYXRlUG9saWNpZXMiLAotICAgICAgICAgICAgICAgICAgICAgICAiQ2VydGlmaWNhdGUgUG9saWNpZXMiKSwKLSAgICAgICAgTUJFRFRMU19PSURfWDUwOV9FWFRfQ0VSVElGSUNBVEVfUE9MSUNJRVMsCi0gICAgfSwKLSAgICB7Ci0gICAgICAgIE9JRF9ERVNDUklQVE9SKE1CRURUTFNfT0lEX1NVQkpFQ1RfS0VZX0lERU5USUZJRVIsCi0gICAgICAgICAgICAgICAgICAgICAgICJpZC1jZS1zdWJqZWN0S2V5SWRlbnRpZmllciIsCi0gICAgICAgICAgICAgICAgICAgICAgICJTdWJqZWN0IEtleSBJZGVudGlmaWVyIiksCi0gICAgICAgIE1CRURUTFNfT0lEX1g1MDlfRVhUX1NVQkpFQ1RfS0VZX0lERU5USUZJRVIsCi0gICAgfSwKLSAgICB7Ci0gICAgICAgIE9JRF9ERVNDUklQVE9SKE1CRURUTFNfT0lEX0FVVEhPUklUWV9LRVlfSURFTlRJRklFUiwKLSAgICAgICAgICAgICAgICAgICAgICAgImlkLWNlLWF1dGhvcml0eUtleUlkZW50aWZpZXIiLAotICAgICAgICAgICAgICAgICAgICAgICAiQXV0aG9yaXR5IEtleSBJZGVudGlmaWVyIiksCi0gICAgICAgIE1CRURUTFNfT0lEX1g1MDlfRVhUX0FVVEhPUklUWV9LRVlfSURFTlRJRklFUiwKLSAgICB9LAotICAgIHsKLSAgICAgICAgTlVMTF9PSURfREVTQ1JJUFRPUiwKLSAgICAgICAgMCwKLSAgICB9LAotfTsKLQotRk5fT0lEX1RZUEVEX0ZST01fQVNOMShvaWRfeDUwOV9leHRfdCwgeDUwOV9leHQsIG9pZF94NTA5X2V4dCkKLUZOX09JRF9HRVRfQVRUUjEobWJlZHRsc19vaWRfZ2V0X3g1MDlfZXh0X3R5cGUsIG9pZF94NTA5X2V4dF90LCB4NTA5X2V4dCwgaW50LCBleHRfdHlwZSkKLQotI2lmICFkZWZpbmVkKE1CRURUTFNfWDUwOV9SRU1PVkVfSU5GTykKLXN0YXRpYyBjb25zdCBtYmVkdGxzX29pZF9kZXNjcmlwdG9yX3Qgb2lkX2V4dF9rZXlfdXNhZ2VbXSA9Ci17Ci0gICAgT0lEX0RFU0NSSVBUT1IoTUJFRFRMU19PSURfU0VSVkVSX0FVVEgsCi0gICAgICAgICAgICAgICAgICAgImlkLWtwLXNlcnZlckF1dGgiLAotICAgICAgICAgICAgICAgICAgICJUTFMgV2ViIFNlcnZlciBBdXRoZW50aWNhdGlvbiIpLAotICAgIE9JRF9ERVNDUklQVE9SKE1CRURUTFNfT0lEX0NMSUVOVF9BVVRILAotICAgICAgICAgICAgICAgICAgICJpZC1rcC1jbGllbnRBdXRoIiwKLSAgICAgICAgICAgICAgICAgICAiVExTIFdlYiBDbGllbnQgQXV0aGVudGljYXRpb24iKSwKLSAgICBPSURfREVTQ1JJUFRPUihNQkVEVExTX09JRF9DT0RFX1NJR05JTkcsICAgICAiaWQta3AtY29kZVNpZ25pbmciLCAgICAgIkNvZGUgU2lnbmluZyIpLAotICAgIE9JRF9ERVNDUklQVE9SKE1CRURUTFNfT0lEX0VNQUlMX1BST1RFQ1RJT04sICJpZC1rcC1lbWFpbFByb3RlY3Rpb24iLCAiRS1tYWlsIFByb3RlY3Rpb24iKSwKLSAgICBPSURfREVTQ1JJUFRPUihNQkVEVExTX09JRF9USU1FX1NUQU1QSU5HLCAgICAiaWQta3AtdGltZVN0YW1waW5nIiwgICAgIlRpbWUgU3RhbXBpbmciKSwKLSAgICBPSURfREVTQ1JJUFRPUihNQkVEVExTX09JRF9PQ1NQX1NJR05JTkcsICAgICAiaWQta3AtT0NTUFNpZ25pbmciLCAgICAgIk9DU1AgU2lnbmluZyIpLAotICAgIE9JRF9ERVNDUklQVE9SKE1CRURUTFNfT0lEX1dJU1VOX0ZBTiwKLSAgICAgICAgICAgICAgICAgICAiaWQta3Atd2lzdW4tZmFuLWRldmljZSIsCi0gICAgICAgICAgICAgICAgICAgIldpLVNVTiBBbGxpYW5jZSBGaWVsZCBBcmVhIE5ldHdvcmsgKEZBTikiKSwKLSAgICBOVUxMX09JRF9ERVNDUklQVE9SLAotfTsKLQotRk5fT0lEX1RZUEVEX0ZST01fQVNOMShtYmVkdGxzX29pZF9kZXNjcmlwdG9yX3QsIGV4dF9rZXlfdXNhZ2UsIG9pZF9leHRfa2V5X3VzYWdlKQotRk5fT0lEX0dFVF9BVFRSMShtYmVkdGxzX29pZF9nZXRfZXh0ZW5kZWRfa2V5X3VzYWdlLAotICAgICAgICAgICAgICAgICBtYmVkdGxzX29pZF9kZXNjcmlwdG9yX3QsCi0gICAgICAgICAgICAgICAgIGV4dF9rZXlfdXNhZ2UsCi0gICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKiwKLSAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb24pCi0KLXN0YXRpYyBjb25zdCBtYmVkdGxzX29pZF9kZXNjcmlwdG9yX3Qgb2lkX2NlcnRpZmljYXRlX3BvbGljaWVzW10gPQotewotICAgIE9JRF9ERVNDUklQVE9SKE1CRURUTFNfT0lEX0FOWV9QT0xJQ1ksICAgICAgImFueVBvbGljeSIsICAgICAgICJBbnkgUG9saWN5IiksCi0gICAgTlVMTF9PSURfREVTQ1JJUFRPUiwKLX07Ci0KLUZOX09JRF9UWVBFRF9GUk9NX0FTTjEobWJlZHRsc19vaWRfZGVzY3JpcHRvcl90LCBjZXJ0aWZpY2F0ZV9wb2xpY2llcywgb2lkX2NlcnRpZmljYXRlX3BvbGljaWVzKQotRk5fT0lEX0dFVF9BVFRSMShtYmVkdGxzX29pZF9nZXRfY2VydGlmaWNhdGVfcG9saWNpZXMsCi0gICAgICAgICAgICAgICAgIG1iZWR0bHNfb2lkX2Rlc2NyaXB0b3JfdCwKLSAgICAgICAgICAgICAgICAgY2VydGlmaWNhdGVfcG9saWNpZXMsCi0gICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKiwKLSAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb24pCi0jZW5kaWYgLyogTUJFRFRMU19YNTA5X1JFTU9WRV9JTkZPICovCi0KLS8qCi0gKiBGb3IgU2lnbmF0dXJlQWxnb3JpdGhtSWRlbnRpZmllcgotICovCi10eXBlZGVmIHN0cnVjdCB7Ci0gICAgbWJlZHRsc19vaWRfZGVzY3JpcHRvcl90ICAgIGRlc2NyaXB0b3I7Ci0gICAgbWJlZHRsc19tZF90eXBlX3QgICAgICAgICAgIG1kX2FsZzsKLSAgICBtYmVkdGxzX3BrX3R5cGVfdCAgICAgICAgICAgcGtfYWxnOwotfSBvaWRfc2lnX2FsZ190OwotCi1zdGF0aWMgY29uc3Qgb2lkX3NpZ19hbGdfdCBvaWRfc2lnX2FsZ1tdID0KLXsKLSNpZiBkZWZpbmVkKE1CRURUTFNfUlNBX0MpCi0jaWYgZGVmaW5lZChNQkVEVExTX01EX0NBTl9NRDUpCi0gICAgewotICAgICAgICBPSURfREVTQ1JJUFRPUihNQkVEVExTX09JRF9QS0NTMV9NRDUsICAgICAgICAibWQ1V2l0aFJTQUVuY3J5cHRpb24iLCAgICAgIlJTQSB3aXRoIE1ENSIpLAotICAgICAgICBNQkVEVExTX01EX01ENSwgICAgICBNQkVEVExTX1BLX1JTQSwKLSAgICB9LAotI2VuZGlmIC8qIE1CRURUTFNfTURfQ0FOX01ENSAqLwotI2lmIGRlZmluZWQoTUJFRFRMU19NRF9DQU5fU0hBMSkKLSAgICB7Ci0gICAgICAgIE9JRF9ERVNDUklQVE9SKE1CRURUTFNfT0lEX1BLQ1MxX1NIQTEsICAgICAgICJzaGEtMVdpdGhSU0FFbmNyeXB0aW9uIiwgICAiUlNBIHdpdGggU0hBMSIpLAotICAgICAgICBNQkVEVExTX01EX1NIQTEsICAgICBNQkVEVExTX1BLX1JTQSwKLSAgICB9LAotI2VuZGlmIC8qIE1CRURUTFNfTURfQ0FOX1NIQTEgKi8KLSNpZiBkZWZpbmVkKE1CRURUTFNfTURfQ0FOX1NIQTIyNCkKLSAgICB7Ci0gICAgICAgIE9JRF9ERVNDUklQVE9SKE1CRURUTFNfT0lEX1BLQ1MxX1NIQTIyNCwgICAgICJzaGEyMjRXaXRoUlNBRW5jcnlwdGlvbiIsCi0gICAgICAgICAgICAgICAgICAgICAgICJSU0Egd2l0aCBTSEEtMjI0IiksCi0gICAgICAgIE1CRURUTFNfTURfU0hBMjI0LCAgIE1CRURUTFNfUEtfUlNBLAotICAgIH0sCi0jZW5kaWYgLyogTUJFRFRMU19NRF9DQU5fU0hBMjI0ICovCi0jaWYgZGVmaW5lZChNQkVEVExTX01EX0NBTl9TSEEyNTYpCi0gICAgewotICAgICAgICBPSURfREVTQ1JJUFRPUihNQkVEVExTX09JRF9QS0NTMV9TSEEyNTYsICAgICAic2hhMjU2V2l0aFJTQUVuY3J5cHRpb24iLAotICAgICAgICAgICAgICAgICAgICAgICAiUlNBIHdpdGggU0hBLTI1NiIpLAotICAgICAgICBNQkVEVExTX01EX1NIQTI1NiwgICBNQkVEVExTX1BLX1JTQSwKLSAgICB9LAotI2VuZGlmIC8qIE1CRURUTFNfTURfQ0FOX1NIQTI1NiAqLwotI2lmIGRlZmluZWQoTUJFRFRMU19NRF9DQU5fU0hBMzg0KQotICAgIHsKLSAgICAgICAgT0lEX0RFU0NSSVBUT1IoTUJFRFRMU19PSURfUEtDUzFfU0hBMzg0LCAgICAgInNoYTM4NFdpdGhSU0FFbmNyeXB0aW9uIiwKLSAgICAgICAgICAgICAgICAgICAgICAgIlJTQSB3aXRoIFNIQS0zODQiKSwKLSAgICAgICAgTUJFRFRMU19NRF9TSEEzODQsICAgTUJFRFRMU19QS19SU0EsCi0gICAgfSwKLSNlbmRpZiAvKiBNQkVEVExTX01EX0NBTl9TSEEzODQgKi8KLSNpZiBkZWZpbmVkKE1CRURUTFNfTURfQ0FOX1NIQTUxMikKLSAgICB7Ci0gICAgICAgIE9JRF9ERVNDUklQVE9SKE1CRURUTFNfT0lEX1BLQ1MxX1NIQTUxMiwgICAgICJzaGE1MTJXaXRoUlNBRW5jcnlwdGlvbiIsCi0gICAgICAgICAgICAgICAgICAgICAgICJSU0Egd2l0aCBTSEEtNTEyIiksCi0gICAgICAgIE1CRURUTFNfTURfU0hBNTEyLCAgIE1CRURUTFNfUEtfUlNBLAotICAgIH0sCi0jZW5kaWYgLyogTUJFRFRMU19NRF9DQU5fU0hBNTEyICovCi0jaWYgZGVmaW5lZChNQkVEVExTX01EX0NBTl9TSEExKQotICAgIHsKLSAgICAgICAgT0lEX0RFU0NSSVBUT1IoTUJFRFRMU19PSURfUlNBX1NIQV9PQlMsICAgICAgInNoYS0xV2l0aFJTQUVuY3J5cHRpb24iLCAgICJSU0Egd2l0aCBTSEExIiksCi0gICAgICAgIE1CRURUTFNfTURfU0hBMSwgICAgIE1CRURUTFNfUEtfUlNBLAotICAgIH0sCi0jZW5kaWYgLyogTUJFRFRMU19NRF9DQU5fU0hBMSAqLwotI2VuZGlmIC8qIE1CRURUTFNfUlNBX0MgKi8KLSNpZiBkZWZpbmVkKE1CRURUTFNfUEtfQ0FOX0VDRFNBX1NPTUUpCi0jaWYgZGVmaW5lZChNQkVEVExTX01EX0NBTl9TSEExKQotICAgIHsKLSAgICAgICAgT0lEX0RFU0NSSVBUT1IoTUJFRFRMU19PSURfRUNEU0FfU0hBMSwgICAgICAgImVjZHNhLXdpdGgtU0hBMSIsICAgICAgIkVDRFNBIHdpdGggU0hBMSIpLAotICAgICAgICBNQkVEVExTX01EX1NIQTEsICAgICBNQkVEVExTX1BLX0VDRFNBLAotICAgIH0sCi0jZW5kaWYgLyogTUJFRFRMU19NRF9DQU5fU0hBMSAqLwotI2lmIGRlZmluZWQoTUJFRFRMU19NRF9DQU5fU0hBMjI0KQotICAgIHsKLSAgICAgICAgT0lEX0RFU0NSSVBUT1IoTUJFRFRMU19PSURfRUNEU0FfU0hBMjI0LCAgICAgImVjZHNhLXdpdGgtU0hBMjI0IiwgICAgIkVDRFNBIHdpdGggU0hBMjI0IiksCi0gICAgICAgIE1CRURUTFNfTURfU0hBMjI0LCAgIE1CRURUTFNfUEtfRUNEU0EsCi0gICAgfSwKLSNlbmRpZgotI2lmIGRlZmluZWQoTUJFRFRMU19NRF9DQU5fU0hBMjU2KQotICAgIHsKLSAgICAgICAgT0lEX0RFU0NSSVBUT1IoTUJFRFRMU19PSURfRUNEU0FfU0hBMjU2LCAgICAgImVjZHNhLXdpdGgtU0hBMjU2IiwgICAgIkVDRFNBIHdpdGggU0hBMjU2IiksCi0gICAgICAgIE1CRURUTFNfTURfU0hBMjU2LCAgIE1CRURUTFNfUEtfRUNEU0EsCi0gICAgfSwKLSNlbmRpZiAvKiBNQkVEVExTX01EX0NBTl9TSEEyNTYgKi8KLSNpZiBkZWZpbmVkKE1CRURUTFNfTURfQ0FOX1NIQTM4NCkKLSAgICB7Ci0gICAgICAgIE9JRF9ERVNDUklQVE9SKE1CRURUTFNfT0lEX0VDRFNBX1NIQTM4NCwgICAgICJlY2RzYS13aXRoLVNIQTM4NCIsICAgICJFQ0RTQSB3aXRoIFNIQTM4NCIpLAotICAgICAgICBNQkVEVExTX01EX1NIQTM4NCwgICBNQkVEVExTX1BLX0VDRFNBLAotICAgIH0sCi0jZW5kaWYgLyogTUJFRFRMU19NRF9DQU5fU0hBMzg0ICovCi0jaWYgZGVmaW5lZChNQkVEVExTX01EX0NBTl9TSEE1MTIpCi0gICAgewotICAgICAgICBPSURfREVTQ1JJUFRPUihNQkVEVExTX09JRF9FQ0RTQV9TSEE1MTIsICAgICAiZWNkc2Etd2l0aC1TSEE1MTIiLCAgICAiRUNEU0Egd2l0aCBTSEE1MTIiKSwKLSAgICAgICAgTUJFRFRMU19NRF9TSEE1MTIsICAgTUJFRFRMU19QS19FQ0RTQSwKLSAgICB9LAotI2VuZGlmIC8qIE1CRURUTFNfTURfQ0FOX1NIQTUxMiAqLwotI2VuZGlmIC8qIE1CRURUTFNfUEtfQ0FOX0VDRFNBX1NPTUUgKi8KLSNpZiBkZWZpbmVkKE1CRURUTFNfUlNBX0MpCi0gICAgewotICAgICAgICBPSURfREVTQ1JJUFRPUihNQkVEVExTX09JRF9SU0FTU0FfUFNTLCAgICAgICAgIlJTQVNTQS1QU1MiLCAgICAgICAgICAgIlJTQVNTQS1QU1MiKSwKLSAgICAgICAgTUJFRFRMU19NRF9OT05FLCAgICAgTUJFRFRMU19QS19SU0FTU0FfUFNTLAotICAgIH0sCi0jZW5kaWYgLyogTUJFRFRMU19SU0FfQyAqLwotICAgIHsKLSAgICAgICAgTlVMTF9PSURfREVTQ1JJUFRPUiwKLSAgICAgICAgTUJFRFRMU19NRF9OT05FLCBNQkVEVExTX1BLX05PTkUsCi0gICAgfSwKLX07Ci0KLUZOX09JRF9UWVBFRF9GUk9NX0FTTjEob2lkX3NpZ19hbGdfdCwgc2lnX2FsZywgb2lkX3NpZ19hbGcpCi0KLSNpZiAhZGVmaW5lZChNQkVEVExTX1g1MDlfUkVNT1ZFX0lORk8pCi1GTl9PSURfR0VUX0RFU0NSSVBUT1JfQVRUUjEobWJlZHRsc19vaWRfZ2V0X3NpZ19hbGdfZGVzYywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBvaWRfc2lnX2FsZ190LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpZ19hbGcsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uKQotI2VuZGlmCi0KLUZOX09JRF9HRVRfQVRUUjIobWJlZHRsc19vaWRfZ2V0X3NpZ19hbGcsCi0gICAgICAgICAgICAgICAgIG9pZF9zaWdfYWxnX3QsCi0gICAgICAgICAgICAgICAgIHNpZ19hbGcsCi0gICAgICAgICAgICAgICAgIG1iZWR0bHNfbWRfdHlwZV90LAotICAgICAgICAgICAgICAgICBtZF9hbGcsCi0gICAgICAgICAgICAgICAgIG1iZWR0bHNfcGtfdHlwZV90LAotICAgICAgICAgICAgICAgICBwa19hbGcpCi1GTl9PSURfR0VUX09JRF9CWV9BVFRSMihtYmVkdGxzX29pZF9nZXRfb2lkX2J5X3NpZ19hbGcsCi0gICAgICAgICAgICAgICAgICAgICAgICBvaWRfc2lnX2FsZ190LAotICAgICAgICAgICAgICAgICAgICAgICAgb2lkX3NpZ19hbGcsCi0gICAgICAgICAgICAgICAgICAgICAgICBtYmVkdGxzX3BrX3R5cGVfdCwKLSAgICAgICAgICAgICAgICAgICAgICAgIHBrX2FsZywKLSAgICAgICAgICAgICAgICAgICAgICAgIG1iZWR0bHNfbWRfdHlwZV90LAotICAgICAgICAgICAgICAgICAgICAgICAgbWRfYWxnKQotCi0vKgotICogRm9yIFB1YmxpY0tleUluZm8gKFBLQ1MxLCBSRkMgNTQ4MCkKLSAqLwotdHlwZWRlZiBzdHJ1Y3QgewotICAgIG1iZWR0bHNfb2lkX2Rlc2NyaXB0b3JfdCAgICBkZXNjcmlwdG9yOwotICAgIG1iZWR0bHNfcGtfdHlwZV90ICAgICAgICAgICBwa19hbGc7Ci19IG9pZF9wa19hbGdfdDsKLQotc3RhdGljIGNvbnN0IG9pZF9wa19hbGdfdCBvaWRfcGtfYWxnW10gPQotewotICAgIHsKLSAgICAgICAgT0lEX0RFU0NSSVBUT1IoTUJFRFRMU19PSURfUEtDUzFfUlNBLCAgICAgICAgICAgInJzYUVuY3J5cHRpb24iLCAgICAiUlNBIiksCi0gICAgICAgIE1CRURUTFNfUEtfUlNBLAotICAgIH0sCi0gICAgewotICAgICAgICBPSURfREVTQ1JJUFRPUihNQkVEVExTX09JRF9FQ19BTEdfVU5SRVNUUklDVEVELCAiaWQtZWNQdWJsaWNLZXkiLCAgICJHZW5lcmljIEVDIGtleSIpLAotICAgICAgICBNQkVEVExTX1BLX0VDS0VZLAotICAgIH0sCi0gICAgewotICAgICAgICBPSURfREVTQ1JJUFRPUihNQkVEVExTX09JRF9FQ19BTEdfRUNESCwgICAgICAgICAiaWQtZWNESCIsICAgICAgICAgICJFQyBrZXkgZm9yIEVDREgiKSwKLSAgICAgICAgTUJFRFRMU19QS19FQ0tFWV9ESCwKLSAgICB9LAotICAgIHsKLSAgICAgICAgTlVMTF9PSURfREVTQ1JJUFRPUiwKLSAgICAgICAgTUJFRFRMU19QS19OT05FLAotICAgIH0sCi19OwotCi1GTl9PSURfVFlQRURfRlJPTV9BU04xKG9pZF9wa19hbGdfdCwgcGtfYWxnLCBvaWRfcGtfYWxnKQotRk5fT0lEX0dFVF9BVFRSMShtYmVkdGxzX29pZF9nZXRfcGtfYWxnLCBvaWRfcGtfYWxnX3QsIHBrX2FsZywgbWJlZHRsc19wa190eXBlX3QsIHBrX2FsZykKLUZOX09JRF9HRVRfT0lEX0JZX0FUVFIxKG1iZWR0bHNfb2lkX2dldF9vaWRfYnlfcGtfYWxnLAotICAgICAgICAgICAgICAgICAgICAgICAgb2lkX3BrX2FsZ190LAotICAgICAgICAgICAgICAgICAgICAgICAgb2lkX3BrX2FsZywKLSAgICAgICAgICAgICAgICAgICAgICAgIG1iZWR0bHNfcGtfdHlwZV90LAotICAgICAgICAgICAgICAgICAgICAgICAgcGtfYWxnKQotCi0jaWYgZGVmaW5lZChNQkVEVExTX1BLX0hBVkVfRUNDX0tFWVMpCi0vKgotICogRm9yIGVsbGlwdGljIGN1cnZlcyB0aGF0IHVzZSBuYW1lZEN1cnZlIGluc2lkZSBFQ1BhcmFtcyAoUkZDIDU0ODApCi0gKi8KLXR5cGVkZWYgc3RydWN0IHsKLSAgICBtYmVkdGxzX29pZF9kZXNjcmlwdG9yX3QgICAgZGVzY3JpcHRvcjsKLSAgICBtYmVkdGxzX2VjcF9ncm91cF9pZCAgICAgICAgZ3JwX2lkOwotfSBvaWRfZWNwX2dycF90OwotCi1zdGF0aWMgY29uc3Qgb2lkX2VjcF9ncnBfdCBvaWRfZWNwX2dycFtdID0KLXsKLSNpZiBkZWZpbmVkKE1CRURUTFNfRUNQX0hBVkVfU0VDUDE5MlIxKQotICAgIHsKLSAgICAgICAgT0lEX0RFU0NSSVBUT1IoTUJFRFRMU19PSURfRUNfR1JQX1NFQ1AxOTJSMSwgInNlY3AxOTJyMSIsICAgICJzZWNwMTkycjEiKSwKLSAgICAgICAgTUJFRFRMU19FQ1BfRFBfU0VDUDE5MlIxLAotICAgIH0sCi0jZW5kaWYgLyogTUJFRFRMU19FQ1BfSEFWRV9TRUNQMTkyUjEgKi8KLSNpZiBkZWZpbmVkKE1CRURUTFNfRUNQX0hBVkVfU0VDUDIyNFIxKQotICAgIHsKLSAgICAgICAgT0lEX0RFU0NSSVBUT1IoTUJFRFRMU19PSURfRUNfR1JQX1NFQ1AyMjRSMSwgInNlY3AyMjRyMSIsICAgICJzZWNwMjI0cjEiKSwKLSAgICAgICAgTUJFRFRMU19FQ1BfRFBfU0VDUDIyNFIxLAotICAgIH0sCi0jZW5kaWYgLyogTUJFRFRMU19FQ1BfSEFWRV9TRUNQMjI0UjEgKi8KLSNpZiBkZWZpbmVkKE1CRURUTFNfRUNQX0hBVkVfU0VDUDI1NlIxKQotICAgIHsKLSAgICAgICAgT0lEX0RFU0NSSVBUT1IoTUJFRFRMU19PSURfRUNfR1JQX1NFQ1AyNTZSMSwgInNlY3AyNTZyMSIsICAgICJzZWNwMjU2cjEiKSwKLSAgICAgICAgTUJFRFRMU19FQ1BfRFBfU0VDUDI1NlIxLAotICAgIH0sCi0jZW5kaWYgLyogTUJFRFRMU19FQ1BfSEFWRV9TRUNQMjU2UjEgKi8KLSNpZiBkZWZpbmVkKE1CRURUTFNfRUNQX0hBVkVfU0VDUDM4NFIxKQotICAgIHsKLSAgICAgICAgT0lEX0RFU0NSSVBUT1IoTUJFRFRMU19PSURfRUNfR1JQX1NFQ1AzODRSMSwgInNlY3AzODRyMSIsICAgICJzZWNwMzg0cjEiKSwKLSAgICAgICAgTUJFRFRMU19FQ1BfRFBfU0VDUDM4NFIxLAotICAgIH0sCi0jZW5kaWYgLyogTUJFRFRMU19FQ1BfSEFWRV9TRUNQMzg0UjEgKi8KLSNpZiBkZWZpbmVkKE1CRURUTFNfRUNQX0hBVkVfU0VDUDUyMVIxKQotICAgIHsKLSAgICAgICAgT0lEX0RFU0NSSVBUT1IoTUJFRFRMU19PSURfRUNfR1JQX1NFQ1A1MjFSMSwgInNlY3A1MjFyMSIsICAgICJzZWNwNTIxcjEiKSwKLSAgICAgICAgTUJFRFRMU19FQ1BfRFBfU0VDUDUyMVIxLAotICAgIH0sCi0jZW5kaWYgLyogTUJFRFRMU19FQ1BfSEFWRV9TRUNQNTIxUjEgKi8KLSNpZiBkZWZpbmVkKE1CRURUTFNfRUNQX0hBVkVfU0VDUDE5MksxKQotICAgIHsKLSAgICAgICAgT0lEX0RFU0NSSVBUT1IoTUJFRFRMU19PSURfRUNfR1JQX1NFQ1AxOTJLMSwgInNlY3AxOTJrMSIsICAgICJzZWNwMTkyazEiKSwKLSAgICAgICAgTUJFRFRMU19FQ1BfRFBfU0VDUDE5MksxLAotICAgIH0sCi0jZW5kaWYgLyogTUJFRFRMU19FQ1BfSEFWRV9TRUNQMTkySzEgKi8KLSNpZiBkZWZpbmVkKE1CRURUTFNfRUNQX0hBVkVfU0VDUDIyNEsxKQotICAgIHsKLSAgICAgICAgT0lEX0RFU0NSSVBUT1IoTUJFRFRMU19PSURfRUNfR1JQX1NFQ1AyMjRLMSwgInNlY3AyMjRrMSIsICAgICJzZWNwMjI0azEiKSwKLSAgICAgICAgTUJFRFRMU19FQ1BfRFBfU0VDUDIyNEsxLAotICAgIH0sCi0jZW5kaWYgLyogTUJFRFRMU19FQ1BfSEFWRV9TRUNQMjI0SzEgKi8KLSNpZiBkZWZpbmVkKE1CRURUTFNfRUNQX0hBVkVfU0VDUDI1NksxKQotICAgIHsKLSAgICAgICAgT0lEX0RFU0NSSVBUT1IoTUJFRFRMU19PSURfRUNfR1JQX1NFQ1AyNTZLMSwgInNlY3AyNTZrMSIsICAgICJzZWNwMjU2azEiKSwKLSAgICAgICAgTUJFRFRMU19FQ1BfRFBfU0VDUDI1NksxLAotICAgIH0sCi0jZW5kaWYgLyogTUJFRFRMU19FQ1BfSEFWRV9TRUNQMjU2SzEgKi8KLSNpZiBkZWZpbmVkKE1CRURUTFNfRUNQX0hBVkVfQlAyNTZSMSkKLSAgICB7Ci0gICAgICAgIE9JRF9ERVNDUklQVE9SKE1CRURUTFNfT0lEX0VDX0dSUF9CUDI1NlIxLCAgICJicmFpbnBvb2xQMjU2cjEiLCAiYnJhaW5wb29sMjU2cjEiKSwKLSAgICAgICAgTUJFRFRMU19FQ1BfRFBfQlAyNTZSMSwKLSAgICB9LAotI2VuZGlmIC8qIE1CRURUTFNfRUNQX0hBVkVfQlAyNTZSMSAqLwotI2lmIGRlZmluZWQoTUJFRFRMU19FQ1BfSEFWRV9CUDM4NFIxKQotICAgIHsKLSAgICAgICAgT0lEX0RFU0NSSVBUT1IoTUJFRFRMU19PSURfRUNfR1JQX0JQMzg0UjEsICAgImJyYWlucG9vbFAzODRyMSIsICJicmFpbnBvb2wzODRyMSIpLAotICAgICAgICBNQkVEVExTX0VDUF9EUF9CUDM4NFIxLAotICAgIH0sCi0jZW5kaWYgLyogTUJFRFRMU19FQ1BfSEFWRV9CUDM4NFIxICovCi0jaWYgZGVmaW5lZChNQkVEVExTX0VDUF9IQVZFX0JQNTEyUjEpCi0gICAgewotICAgICAgICBPSURfREVTQ1JJUFRPUihNQkVEVExTX09JRF9FQ19HUlBfQlA1MTJSMSwgICAiYnJhaW5wb29sUDUxMnIxIiwgImJyYWlucG9vbDUxMnIxIiksCi0gICAgICAgIE1CRURUTFNfRUNQX0RQX0JQNTEyUjEsCi0gICAgfSwKLSNlbmRpZiAvKiBNQkVEVExTX0VDUF9IQVZFX0JQNTEyUjEgKi8KLSAgICB7Ci0gICAgICAgIE5VTExfT0lEX0RFU0NSSVBUT1IsCi0gICAgICAgIE1CRURUTFNfRUNQX0RQX05PTkUsCi0gICAgfSwKLX07Ci0KLUZOX09JRF9UWVBFRF9GUk9NX0FTTjEob2lkX2VjcF9ncnBfdCwgZ3JwX2lkLCBvaWRfZWNwX2dycCkKLUZOX09JRF9HRVRfQVRUUjEobWJlZHRsc19vaWRfZ2V0X2VjX2dycCwgb2lkX2VjcF9ncnBfdCwgZ3JwX2lkLCBtYmVkdGxzX2VjcF9ncm91cF9pZCwgZ3JwX2lkKQotRk5fT0lEX0dFVF9PSURfQllfQVRUUjEobWJlZHRsc19vaWRfZ2V0X29pZF9ieV9lY19ncnAsCi0gICAgICAgICAgICAgICAgICAgICAgICBvaWRfZWNwX2dycF90LAotICAgICAgICAgICAgICAgICAgICAgICAgb2lkX2VjcF9ncnAsCi0gICAgICAgICAgICAgICAgICAgICAgICBtYmVkdGxzX2VjcF9ncm91cF9pZCwKLSAgICAgICAgICAgICAgICAgICAgICAgIGdycF9pZCkKLQotLyoKLSAqIEZvciBFbGxpcHRpYyBDdXJ2ZSBhbGdvcml0aG1zIHRoYXQgYXJlIGRpcmVjdGx5Ci0gKiBlbmNvZGVkIGluIHRoZSBBbGdvcml0aG1JZGVudGlmaWVyIChSRkMgODQxMCkKLSAqLwotdHlwZWRlZiBzdHJ1Y3QgewotICAgIG1iZWR0bHNfb2lkX2Rlc2NyaXB0b3JfdCAgICBkZXNjcmlwdG9yOwotICAgIG1iZWR0bHNfZWNwX2dyb3VwX2lkICAgICAgICBncnBfaWQ7Ci19IG9pZF9lY3BfZ3JwX2FsZ2lkX3Q7Ci0KLXN0YXRpYyBjb25zdCBvaWRfZWNwX2dycF9hbGdpZF90IG9pZF9lY3BfZ3JwX2FsZ2lkW10gPQotewotI2lmIGRlZmluZWQoTUJFRFRMU19FQ1BfSEFWRV9DVVJWRTI1NTE5KQotICAgIHsKLSAgICAgICAgT0lEX0RFU0NSSVBUT1IoTUJFRFRMU19PSURfWDI1NTE5LCAgICAgICAgICAgICAgICJYMjU1MTkiLCAgICAgICAiWDI1NTE5IiksCi0gICAgICAgIE1CRURUTFNfRUNQX0RQX0NVUlZFMjU1MTksCi0gICAgfSwKLSNlbmRpZiAvKiBNQkVEVExTX0VDUF9IQVZFX0NVUlZFMjU1MTkgKi8KLSNpZiBkZWZpbmVkKE1CRURUTFNfRUNQX0hBVkVfQ1VSVkU0NDgpCi0gICAgewotICAgICAgICBPSURfREVTQ1JJUFRPUihNQkVEVExTX09JRF9YNDQ4LCAgICAgICAgICAgICAgICAgIlg0NDgiLCAgICAgICAgICJYNDQ4IiksCi0gICAgICAgIE1CRURUTFNfRUNQX0RQX0NVUlZFNDQ4LAotICAgIH0sCi0jZW5kaWYgLyogTUJFRFRMU19FQ1BfSEFWRV9DVVJWRTQ0OCAqLwotICAgIHsKLSAgICAgICAgTlVMTF9PSURfREVTQ1JJUFRPUiwKLSAgICAgICAgTUJFRFRMU19FQ1BfRFBfTk9ORSwKLSAgICB9LAotfTsKLQotRk5fT0lEX1RZUEVEX0ZST01fQVNOMShvaWRfZWNwX2dycF9hbGdpZF90LCBncnBfaWRfYWxnaWQsIG9pZF9lY3BfZ3JwX2FsZ2lkKQotRk5fT0lEX0dFVF9BVFRSMShtYmVkdGxzX29pZF9nZXRfZWNfZ3JwX2FsZ2lkLAotICAgICAgICAgICAgICAgICBvaWRfZWNwX2dycF9hbGdpZF90LAotICAgICAgICAgICAgICAgICBncnBfaWRfYWxnaWQsCi0gICAgICAgICAgICAgICAgIG1iZWR0bHNfZWNwX2dyb3VwX2lkLAotICAgICAgICAgICAgICAgICBncnBfaWQpCi1GTl9PSURfR0VUX09JRF9CWV9BVFRSMShtYmVkdGxzX29pZF9nZXRfb2lkX2J5X2VjX2dycF9hbGdpZCwKLSAgICAgICAgICAgICAgICAgICAgICAgIG9pZF9lY3BfZ3JwX2FsZ2lkX3QsCi0gICAgICAgICAgICAgICAgICAgICAgICBvaWRfZWNwX2dycF9hbGdpZCwKLSAgICAgICAgICAgICAgICAgICAgICAgIG1iZWR0bHNfZWNwX2dyb3VwX2lkLAotICAgICAgICAgICAgICAgICAgICAgICAgZ3JwX2lkKQotI2VuZGlmIC8qIE1CRURUTFNfUEtfSEFWRV9FQ0NfS0VZUyAqLwotCi0jaWYgZGVmaW5lZChNQkVEVExTX0NJUEhFUl9DKQotLyoKLSAqIEZvciBQS0NTIzUgUEJFUzIgZW5jcnlwdGlvbiBhbGdvcml0aG0KLSAqLwotdHlwZWRlZiBzdHJ1Y3QgewotICAgIG1iZWR0bHNfb2lkX2Rlc2NyaXB0b3JfdCAgICBkZXNjcmlwdG9yOwotICAgIG1iZWR0bHNfY2lwaGVyX3R5cGVfdCAgICAgICBjaXBoZXJfYWxnOwotfSBvaWRfY2lwaGVyX2FsZ190OwotCi1zdGF0aWMgY29uc3Qgb2lkX2NpcGhlcl9hbGdfdCBvaWRfY2lwaGVyX2FsZ1tdID0KLXsKLSAgICB7Ci0gICAgICAgIE9JRF9ERVNDUklQVE9SKE1CRURUTFNfT0lEX0RFU19DQkMsICAgICAgICAgICAgICAiZGVzQ0JDIiwgICAgICAgIkRFUy1DQkMiKSwKLSAgICAgICAgTUJFRFRMU19DSVBIRVJfREVTX0NCQywKLSAgICB9LAotICAgIHsKLSAgICAgICAgT0lEX0RFU0NSSVBUT1IoTUJFRFRMU19PSURfREVTX0VERTNfQ0JDLCAgICAgICAgICJkZXMtZWRlMy1jYmMiLCAiREVTLUVERTMtQ0JDIiksCi0gICAgICAgIE1CRURUTFNfQ0lQSEVSX0RFU19FREUzX0NCQywKLSAgICB9LAotICAgIHsKLSAgICAgICAgT0lEX0RFU0NSSVBUT1IoTUJFRFRMU19PSURfQUVTXzEyOF9DQkMsICAgICAgICAgICJhZXMxMjgtY2JjIiwgIkFFUzEyOC1DQkMiKSwKLSAgICAgICAgTUJFRFRMU19DSVBIRVJfQUVTXzEyOF9DQkMsCi0gICAgfSwKLSAgICB7Ci0gICAgICAgIE9JRF9ERVNDUklQVE9SKE1CRURUTFNfT0lEX0FFU18xOTJfQ0JDLCAgICAgICAgICAiYWVzMTkyLWNiYyIsICJBRVMxOTItQ0JDIiksCi0gICAgICAgIE1CRURUTFNfQ0lQSEVSX0FFU18xOTJfQ0JDLAotICAgIH0sCi0gICAgewotICAgICAgICBPSURfREVTQ1JJUFRPUihNQkVEVExTX09JRF9BRVNfMjU2X0NCQywgICAgICAgICAgImFlczI1Ni1jYmMiLCAiQUVTMjU2LUNCQyIpLAotICAgICAgICBNQkVEVExTX0NJUEhFUl9BRVNfMjU2X0NCQywKLSAgICB9LAotICAgIHsKLSAgICAgICAgTlVMTF9PSURfREVTQ1JJUFRPUiwKLSAgICAgICAgTUJFRFRMU19DSVBIRVJfTk9ORSwKLSAgICB9LAotfTsKLQotRk5fT0lEX1RZUEVEX0ZST01fQVNOMShvaWRfY2lwaGVyX2FsZ190LCBjaXBoZXJfYWxnLCBvaWRfY2lwaGVyX2FsZykKLUZOX09JRF9HRVRfQVRUUjEobWJlZHRsc19vaWRfZ2V0X2NpcGhlcl9hbGcsCi0gICAgICAgICAgICAgICAgIG9pZF9jaXBoZXJfYWxnX3QsCi0gICAgICAgICAgICAgICAgIGNpcGhlcl9hbGcsCi0gICAgICAgICAgICAgICAgIG1iZWR0bHNfY2lwaGVyX3R5cGVfdCwKLSAgICAgICAgICAgICAgICAgY2lwaGVyX2FsZykKLSNlbmRpZiAvKiBNQkVEVExTX0NJUEhFUl9DICovCi0KLS8qCi0gKiBGb3IgZGlnZXN0QWxnb3JpdGhtCi0gKi8KLXR5cGVkZWYgc3RydWN0IHsKLSAgICBtYmVkdGxzX29pZF9kZXNjcmlwdG9yX3QgICAgZGVzY3JpcHRvcjsKLSAgICBtYmVkdGxzX21kX3R5cGVfdCAgICAgICAgICAgbWRfYWxnOwotfSBvaWRfbWRfYWxnX3Q7Ci0KLXN0YXRpYyBjb25zdCBvaWRfbWRfYWxnX3Qgb2lkX21kX2FsZ1tdID0KLXsKLSNpZiBkZWZpbmVkKE1CRURUTFNfTURfQ0FOX01ENSkKLSAgICB7Ci0gICAgICAgIE9JRF9ERVNDUklQVE9SKE1CRURUTFNfT0lEX0RJR0VTVF9BTEdfTUQ1LCAgICAgICAiaWQtbWQ1IiwgICAgICAgIk1ENSIpLAotICAgICAgICBNQkVEVExTX01EX01ENSwKLSAgICB9LAotI2VuZGlmCi0jaWYgZGVmaW5lZChNQkVEVExTX01EX0NBTl9TSEExKQotICAgIHsKLSAgICAgICAgT0lEX0RFU0NSSVBUT1IoTUJFRFRMU19PSURfRElHRVNUX0FMR19TSEExLCAgICAgICJpZC1zaGExIiwgICAgICAiU0hBLTEiKSwKLSAgICAgICAgTUJFRFRMU19NRF9TSEExLAotICAgIH0sCi0jZW5kaWYKLSNpZiBkZWZpbmVkKE1CRURUTFNfTURfQ0FOX1NIQTIyNCkKLSAgICB7Ci0gICAgICAgIE9JRF9ERVNDUklQVE9SKE1CRURUTFNfT0lEX0RJR0VTVF9BTEdfU0hBMjI0LCAgICAiaWQtc2hhMjI0IiwgICAgIlNIQS0yMjQiKSwKLSAgICAgICAgTUJFRFRMU19NRF9TSEEyMjQsCi0gICAgfSwKLSNlbmRpZgotI2lmIGRlZmluZWQoTUJFRFRMU19NRF9DQU5fU0hBMjU2KQotICAgIHsKLSAgICAgICAgT0lEX0RFU0NSSVBUT1IoTUJFRFRMU19PSURfRElHRVNUX0FMR19TSEEyNTYsICAgICJpZC1zaGEyNTYiLCAgICAiU0hBLTI1NiIpLAotICAgICAgICBNQkVEVExTX01EX1NIQTI1NiwKLSAgICB9LAotI2VuZGlmCi0jaWYgZGVmaW5lZChNQkVEVExTX01EX0NBTl9TSEEzODQpCi0gICAgewotICAgICAgICBPSURfREVTQ1JJUFRPUihNQkVEVExTX09JRF9ESUdFU1RfQUxHX1NIQTM4NCwgICAgImlkLXNoYTM4NCIsICAgICJTSEEtMzg0IiksCi0gICAgICAgIE1CRURUTFNfTURfU0hBMzg0LAotICAgIH0sCi0jZW5kaWYKLSNpZiBkZWZpbmVkKE1CRURUTFNfTURfQ0FOX1NIQTUxMikKLSAgICB7Ci0gICAgICAgIE9JRF9ERVNDUklQVE9SKE1CRURUTFNfT0lEX0RJR0VTVF9BTEdfU0hBNTEyLCAgICAiaWQtc2hhNTEyIiwgICAgIlNIQS01MTIiKSwKLSAgICAgICAgTUJFRFRMU19NRF9TSEE1MTIsCi0gICAgfSwKLSNlbmRpZgotI2lmIGRlZmluZWQoTUJFRFRMU19NRF9DQU5fUklQRU1EMTYwKQotICAgIHsKLSAgICAgICAgT0lEX0RFU0NSSVBUT1IoTUJFRFRMU19PSURfRElHRVNUX0FMR19SSVBFTUQxNjAsICJpZC1yaXBlbWQxNjAiLCAiUklQRU1ELTE2MCIpLAotICAgICAgICBNQkVEVExTX01EX1JJUEVNRDE2MCwKLSAgICB9LAotI2VuZGlmCi0jaWYgZGVmaW5lZChNQkVEVExTX01EX0NBTl9TSEEzXzIyNCkKLSAgICB7Ci0gICAgICAgIE9JRF9ERVNDUklQVE9SKE1CRURUTFNfT0lEX0RJR0VTVF9BTEdfU0hBM18yMjQsICAgICJpZC1zaGEzLTIyNCIsICAgICJTSEEtMy0yMjQiKSwKLSAgICAgICAgTUJFRFRMU19NRF9TSEEzXzIyNCwKLSAgICB9LAotI2VuZGlmCi0jaWYgZGVmaW5lZChNQkVEVExTX01EX0NBTl9TSEEzXzI1NikKLSAgICB7Ci0gICAgICAgIE9JRF9ERVNDUklQVE9SKE1CRURUTFNfT0lEX0RJR0VTVF9BTEdfU0hBM18yNTYsICAgICJpZC1zaGEzLTI1NiIsICAgICJTSEEtMy0yNTYiKSwKLSAgICAgICAgTUJFRFRMU19NRF9TSEEzXzI1NiwKLSAgICB9LAotI2VuZGlmCi0jaWYgZGVmaW5lZChNQkVEVExTX01EX0NBTl9TSEEzXzM4NCkKLSAgICB7Ci0gICAgICAgIE9JRF9ERVNDUklQVE9SKE1CRURUTFNfT0lEX0RJR0VTVF9BTEdfU0hBM18zODQsICAgICJpZC1zaGEzLTM4NCIsICAgICJTSEEtMy0zODQiKSwKLSAgICAgICAgTUJFRFRMU19NRF9TSEEzXzM4NCwKLSAgICB9LAotI2VuZGlmCi0jaWYgZGVmaW5lZChNQkVEVExTX01EX0NBTl9TSEEzXzUxMikKLSAgICB7Ci0gICAgICAgIE9JRF9ERVNDUklQVE9SKE1CRURUTFNfT0lEX0RJR0VTVF9BTEdfU0hBM181MTIsICAgICJpZC1zaGEzLTUxMiIsICAgICJTSEEtMy01MTIiKSwKLSAgICAgICAgTUJFRFRMU19NRF9TSEEzXzUxMiwKLSAgICB9LAotI2VuZGlmCi0gICAgewotICAgICAgICBOVUxMX09JRF9ERVNDUklQVE9SLAotICAgICAgICBNQkVEVExTX01EX05PTkUsCi0gICAgfSwKLX07Ci0KLUZOX09JRF9UWVBFRF9GUk9NX0FTTjEob2lkX21kX2FsZ190LCBtZF9hbGcsIG9pZF9tZF9hbGcpCi1GTl9PSURfR0VUX0FUVFIxKG1iZWR0bHNfb2lkX2dldF9tZF9hbGcsIG9pZF9tZF9hbGdfdCwgbWRfYWxnLCBtYmVkdGxzX21kX3R5cGVfdCwgbWRfYWxnKQotRk5fT0lEX0dFVF9PSURfQllfQVRUUjEobWJlZHRsc19vaWRfZ2V0X29pZF9ieV9tZCwKLSAgICAgICAgICAgICAgICAgICAgICAgIG9pZF9tZF9hbGdfdCwKLSAgICAgICAgICAgICAgICAgICAgICAgIG9pZF9tZF9hbGcsCi0gICAgICAgICAgICAgICAgICAgICAgICBtYmVkdGxzX21kX3R5cGVfdCwKLSAgICAgICAgICAgICAgICAgICAgICAgIG1kX2FsZykKLQotLyoKLSAqIEZvciBITUFDIGRpZ2VzdEFsZ29yaXRobQotICovCi10eXBlZGVmIHN0cnVjdCB7Ci0gICAgbWJlZHRsc19vaWRfZGVzY3JpcHRvcl90ICAgIGRlc2NyaXB0b3I7Ci0gICAgbWJlZHRsc19tZF90eXBlX3QgICAgICAgICAgIG1kX2htYWM7Ci19IG9pZF9tZF9obWFjX3Q7Ci0KLXN0YXRpYyBjb25zdCBvaWRfbWRfaG1hY190IG9pZF9tZF9obWFjW10gPQotewotI2lmIGRlZmluZWQoTUJFRFRMU19NRF9DQU5fU0hBMSkKLSAgICB7Ci0gICAgICAgIE9JRF9ERVNDUklQVE9SKE1CRURUTFNfT0lEX0hNQUNfU0hBMSwgICAgICAiaG1hY1NIQTEiLCAgICAgICJITUFDLVNIQS0xIiksCi0gICAgICAgIE1CRURUTFNfTURfU0hBMSwKLSAgICB9LAotI2VuZGlmIC8qIE1CRURUTFNfTURfQ0FOX1NIQTEgKi8KLSNpZiBkZWZpbmVkKE1CRURUTFNfTURfQ0FOX1NIQTIyNCkKLSAgICB7Ci0gICAgICAgIE9JRF9ERVNDUklQVE9SKE1CRURUTFNfT0lEX0hNQUNfU0hBMjI0LCAgICAiaG1hY1NIQTIyNCIsICAgICJITUFDLVNIQS0yMjQiKSwKLSAgICAgICAgTUJFRFRMU19NRF9TSEEyMjQsCi0gICAgfSwKLSNlbmRpZiAvKiBNQkVEVExTX01EX0NBTl9TSEEyMjQgKi8KLSNpZiBkZWZpbmVkKE1CRURUTFNfTURfQ0FOX1NIQTI1NikKLSAgICB7Ci0gICAgICAgIE9JRF9ERVNDUklQVE9SKE1CRURUTFNfT0lEX0hNQUNfU0hBMjU2LCAgICAiaG1hY1NIQTI1NiIsICAgICJITUFDLVNIQS0yNTYiKSwKLSAgICAgICAgTUJFRFRMU19NRF9TSEEyNTYsCi0gICAgfSwKLSNlbmRpZiAvKiBNQkVEVExTX01EX0NBTl9TSEEyNTYgKi8KLSNpZiBkZWZpbmVkKE1CRURUTFNfTURfQ0FOX1NIQTM4NCkKLSAgICB7Ci0gICAgICAgIE9JRF9ERVNDUklQVE9SKE1CRURUTFNfT0lEX0hNQUNfU0hBMzg0LCAgICAiaG1hY1NIQTM4NCIsICAgICJITUFDLVNIQS0zODQiKSwKLSAgICAgICAgTUJFRFRMU19NRF9TSEEzODQsCi0gICAgfSwKLSNlbmRpZiAvKiBNQkVEVExTX01EX0NBTl9TSEEzODQgKi8KLSNpZiBkZWZpbmVkKE1CRURUTFNfTURfQ0FOX1NIQTUxMikKLSAgICB7Ci0gICAgICAgIE9JRF9ERVNDUklQVE9SKE1CRURUTFNfT0lEX0hNQUNfU0hBNTEyLCAgICAiaG1hY1NIQTUxMiIsICAgICJITUFDLVNIQS01MTIiKSwKLSAgICAgICAgTUJFRFRMU19NRF9TSEE1MTIsCi0gICAgfSwKLSNlbmRpZiAvKiBNQkVEVExTX01EX0NBTl9TSEE1MTIgKi8KLSNpZiBkZWZpbmVkKE1CRURUTFNfTURfQ0FOX1NIQTNfMjI0KQotICAgIHsKLSAgICAgICAgT0lEX0RFU0NSSVBUT1IoTUJFRFRMU19PSURfSE1BQ19TSEEzXzIyNCwgICAgImhtYWNTSEEzLTIyNCIsICAgICJITUFDLVNIQTMtMjI0IiksCi0gICAgICAgIE1CRURUTFNfTURfU0hBM18yMjQsCi0gICAgfSwKLSNlbmRpZiAvKiBNQkVEVExTX01EX0NBTl9TSEEzXzIyNCAqLwotI2lmIGRlZmluZWQoTUJFRFRMU19NRF9DQU5fU0hBM18yNTYpCi0gICAgewotICAgICAgICBPSURfREVTQ1JJUFRPUihNQkVEVExTX09JRF9ITUFDX1NIQTNfMjU2LCAgICAiaG1hY1NIQTMtMjU2IiwgICAgIkhNQUMtU0hBMy0yNTYiKSwKLSAgICAgICAgTUJFRFRMU19NRF9TSEEzXzI1NiwKLSAgICB9LAotI2VuZGlmIC8qIE1CRURUTFNfTURfQ0FOX1NIQTNfMjU2ICovCi0jaWYgZGVmaW5lZChNQkVEVExTX01EX0NBTl9TSEEzXzM4NCkKLSAgICB7Ci0gICAgICAgIE9JRF9ERVNDUklQVE9SKE1CRURUTFNfT0lEX0hNQUNfU0hBM18zODQsICAgICJobWFjU0hBMy0zODQiLCAgICAiSE1BQy1TSEEzLTM4NCIpLAotICAgICAgICBNQkVEVExTX01EX1NIQTNfMzg0LAotICAgIH0sCi0jZW5kaWYgLyogTUJFRFRMU19NRF9DQU5fU0hBM18zODQgKi8KLSNpZiBkZWZpbmVkKE1CRURUTFNfTURfQ0FOX1NIQTNfNTEyKQotICAgIHsKLSAgICAgICAgT0lEX0RFU0NSSVBUT1IoTUJFRFRMU19PSURfSE1BQ19TSEEzXzUxMiwgICAgImhtYWNTSEEzLTUxMiIsICAgICJITUFDLVNIQTMtNTEyIiksCi0gICAgICAgIE1CRURUTFNfTURfU0hBM181MTIsCi0gICAgfSwKLSNlbmRpZiAvKiBNQkVEVExTX01EX0NBTl9TSEEzXzUxMiAqLwotI2lmIGRlZmluZWQoTUJFRFRMU19NRF9DQU5fUklQRU1EMTYwKQotICAgIHsKLSAgICAgICAgT0lEX0RFU0NSSVBUT1IoTUJFRFRMU19PSURfSE1BQ19SSVBFTUQxNjAsICAgICJobWFjUklQRU1EMTYwIiwgICAgIkhNQUMtUklQRU1EMTYwIiksCi0gICAgICAgIE1CRURUTFNfTURfUklQRU1EMTYwLAotICAgIH0sCi0jZW5kaWYgLyogTUJFRFRMU19NRF9DQU5fUklQRU1EMTYwICovCi0gICAgewotICAgICAgICBOVUxMX09JRF9ERVNDUklQVE9SLAotICAgICAgICBNQkVEVExTX01EX05PTkUsCi0gICAgfSwKLX07Ci0KLUZOX09JRF9UWVBFRF9GUk9NX0FTTjEob2lkX21kX2htYWNfdCwgbWRfaG1hYywgb2lkX21kX2htYWMpCi1GTl9PSURfR0VUX0FUVFIxKG1iZWR0bHNfb2lkX2dldF9tZF9obWFjLCBvaWRfbWRfaG1hY190LCBtZF9obWFjLCBtYmVkdGxzX21kX3R5cGVfdCwgbWRfaG1hYykKLQotI2lmIGRlZmluZWQoTUJFRFRMU19QS0NTMTJfQykgJiYgZGVmaW5lZChNQkVEVExTX0NJUEhFUl9DKQotLyoKLSAqIEZvciBQS0NTIzEyIFBCRXMKLSAqLwotdHlwZWRlZiBzdHJ1Y3QgewotICAgIG1iZWR0bHNfb2lkX2Rlc2NyaXB0b3JfdCAgICBkZXNjcmlwdG9yOwotICAgIG1iZWR0bHNfbWRfdHlwZV90ICAgICAgICAgICBtZF9hbGc7Ci0gICAgbWJlZHRsc19jaXBoZXJfdHlwZV90ICAgICAgIGNpcGhlcl9hbGc7Ci19IG9pZF9wa2NzMTJfcGJlX2FsZ190OwotCi1zdGF0aWMgY29uc3Qgb2lkX3BrY3MxMl9wYmVfYWxnX3Qgb2lkX3BrY3MxMl9wYmVfYWxnW10gPQotewotICAgIHsKLSAgICAgICAgT0lEX0RFU0NSSVBUT1IoTUJFRFRMU19PSURfUEtDUzEyX1BCRV9TSEExX0RFUzNfRURFX0NCQywKLSAgICAgICAgICAgICAgICAgICAgICAgInBiZVdpdGhTSEFBbmQzLUtleVRyaXBsZURFUy1DQkMiLAotICAgICAgICAgICAgICAgICAgICAgICAiUEJFIHdpdGggU0hBMSBhbmQgMy1LZXkgM0RFUyIpLAotICAgICAgICBNQkVEVExTX01EX1NIQTEsICAgICAgTUJFRFRMU19DSVBIRVJfREVTX0VERTNfQ0JDLAotICAgIH0sCi0gICAgewotICAgICAgICBPSURfREVTQ1JJUFRPUihNQkVEVExTX09JRF9QS0NTMTJfUEJFX1NIQTFfREVTMl9FREVfQ0JDLAotICAgICAgICAgICAgICAgICAgICAgICAicGJlV2l0aFNIQUFuZDItS2V5VHJpcGxlREVTLUNCQyIsCi0gICAgICAgICAgICAgICAgICAgICAgICJQQkUgd2l0aCBTSEExIGFuZCAyLUtleSAzREVTIiksCi0gICAgICAgIE1CRURUTFNfTURfU0hBMSwgICAgICBNQkVEVExTX0NJUEhFUl9ERVNfRURFX0NCQywKLSAgICB9LAotICAgIHsKLSAgICAgICAgTlVMTF9PSURfREVTQ1JJUFRPUiwKLSAgICAgICAgTUJFRFRMU19NRF9OT05FLCBNQkVEVExTX0NJUEhFUl9OT05FLAotICAgIH0sCi19OwotCi1GTl9PSURfVFlQRURfRlJPTV9BU04xKG9pZF9wa2NzMTJfcGJlX2FsZ190LCBwa2NzMTJfcGJlX2FsZywgb2lkX3BrY3MxMl9wYmVfYWxnKQotRk5fT0lEX0dFVF9BVFRSMihtYmVkdGxzX29pZF9nZXRfcGtjczEyX3BiZV9hbGcsCi0gICAgICAgICAgICAgICAgIG9pZF9wa2NzMTJfcGJlX2FsZ190LAotICAgICAgICAgICAgICAgICBwa2NzMTJfcGJlX2FsZywKLSAgICAgICAgICAgICAgICAgbWJlZHRsc19tZF90eXBlX3QsCi0gICAgICAgICAgICAgICAgIG1kX2FsZywKLSAgICAgICAgICAgICAgICAgbWJlZHRsc19jaXBoZXJfdHlwZV90LAotICAgICAgICAgICAgICAgICBjaXBoZXJfYWxnKQotI2VuZGlmIC8qIE1CRURUTFNfUEtDUzEyX0MgJiYgTUJFRFRMU19DSVBIRVJfQyAqLwotCi0vKiBSZXR1cm4gdGhlIHgueS56Li4uLiBzdHlsZSBudW1lcmljIHN0cmluZyBmb3IgdGhlIGdpdmVuIE9JRCAqLwotaW50IG1iZWR0bHNfb2lkX2dldF9udW1lcmljX3N0cmluZyhjaGFyICpidWYsIHNpemVfdCBzaXplLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBtYmVkdGxzX2FzbjFfYnVmICpvaWQpCi17Ci0gICAgaW50IHJldCA9IE1CRURUTFNfRVJSX0VSUk9SX0NPUlJVUFRJT05fREVURUNURUQ7Ci0gICAgY2hhciAqcCA9IGJ1ZjsKLSAgICBzaXplX3QgbiA9IHNpemU7Ci0gICAgdW5zaWduZWQgaW50IHZhbHVlID0gMDsKLQotICAgIGlmIChzaXplID4gSU5UX01BWCkgewotICAgICAgICAvKiBBdm9pZCBvdmVyZmxvdyBjb21wdXRpbmcgcmV0dXJuIHZhbHVlICovCi0gICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9BU04xX0lOVkFMSURfTEVOR1RIOwotICAgIH0KLQotICAgIGlmIChvaWQtPmxlbiA8PSAwKSB7Ci0gICAgICAgIC8qIE9JRCBtdXN0IG5vdCBiZSBlbXB0eSAqLwotICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfQVNOMV9PVVRfT0ZfREFUQTsKLSAgICB9Ci0KLSAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IG9pZC0+bGVuOyBpKyspIHsKLSAgICAgICAgLyogUHJldmVudCBvdmVyZmxvdyBpbiB2YWx1ZS4gKi8KLSAgICAgICAgaWYgKHZhbHVlID4gKFVJTlRfTUFYID4+IDcpKSB7Ci0gICAgICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfQVNOMV9JTlZBTElEX0RBVEE7Ci0gICAgICAgIH0KLSAgICAgICAgaWYgKCh2YWx1ZSA9PSAwKSAmJiAoKG9pZC0+cFtpXSkgPT0gMHg4MCkpIHsKLSAgICAgICAgICAgIC8qIE92ZXJsb25nIGVuY29kaW5nIGlzIG5vdCBhbGxvd2VkICovCi0gICAgICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfQVNOMV9JTlZBTElEX0RBVEE7Ci0gICAgICAgIH0KLQotICAgICAgICB2YWx1ZSA8PD0gNzsKLSAgICAgICAgdmFsdWUgfD0gb2lkLT5wW2ldICYgMHg3RjsKLQotICAgICAgICBpZiAoIShvaWQtPnBbaV0gJiAweDgwKSkgewotICAgICAgICAgICAgLyogTGFzdCBieXRlICovCi0gICAgICAgICAgICBpZiAobiA9PSBzaXplKSB7Ci0gICAgICAgICAgICAgICAgaW50IGNvbXBvbmVudDE7Ci0gICAgICAgICAgICAgICAgdW5zaWduZWQgaW50IGNvbXBvbmVudDI7Ci0gICAgICAgICAgICAgICAgLyogRmlyc3Qgc3ViaWRlbnRpZmllciBjb250YWlucyBmaXJzdCB0d28gT0lEIGNvbXBvbmVudHMgKi8KLSAgICAgICAgICAgICAgICBpZiAodmFsdWUgPj0gODApIHsKLSAgICAgICAgICAgICAgICAgICAgY29tcG9uZW50MSA9ICcyJzsKLSAgICAgICAgICAgICAgICAgICAgY29tcG9uZW50MiA9IHZhbHVlIC0gODA7Ci0gICAgICAgICAgICAgICAgfSBlbHNlIGlmICh2YWx1ZSA+PSA0MCkgewotICAgICAgICAgICAgICAgICAgICBjb21wb25lbnQxID0gJzEnOwotICAgICAgICAgICAgICAgICAgICBjb21wb25lbnQyID0gdmFsdWUgLSA0MDsKLSAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICBjb21wb25lbnQxID0gJzAnOwotICAgICAgICAgICAgICAgICAgICBjb21wb25lbnQyID0gdmFsdWU7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIHJldCA9IG1iZWR0bHNfc25wcmludGYocCwgbiwgIiVjLiV1IiwgY29tcG9uZW50MSwgY29tcG9uZW50Mik7Ci0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgIHJldCA9IG1iZWR0bHNfc25wcmludGYocCwgbiwgIi4ldSIsIHZhbHVlKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmIChyZXQgPCAyIHx8IChzaXplX3QpIHJldCA+PSBuKSB7Ci0gICAgICAgICAgICAgICAgcmV0dXJuIE1CRURUTFNfRVJSX09JRF9CVUZfVE9PX1NNQUxMOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgbiAtPSAoc2l6ZV90KSByZXQ7Ci0gICAgICAgICAgICBwICs9IHJldDsKLSAgICAgICAgICAgIHZhbHVlID0gMDsKLSAgICAgICAgfQotICAgIH0KLQotICAgIGlmICh2YWx1ZSAhPSAwKSB7Ci0gICAgICAgIC8qIFVudGVybWluYXRlZCBzdWJpZGVudGlmaWVyICovCi0gICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9BU04xX09VVF9PRl9EQVRBOwotICAgIH0KLQotICAgIHJldHVybiAoaW50KSAoc2l6ZSAtIG4pOwotfQotCi1zdGF0aWMgaW50IG9pZF9wYXJzZV9udW1iZXIodW5zaWduZWQgaW50ICpudW0sIGNvbnN0IGNoYXIgKipwLCBjb25zdCBjaGFyICpib3VuZCkKLXsKLSAgICBpbnQgcmV0ID0gTUJFRFRMU19FUlJfQVNOMV9JTlZBTElEX0RBVEE7Ci0KLSAgICAqbnVtID0gMDsKLQotICAgIHdoaWxlICgqcCA8IGJvdW5kICYmICoqcCA+PSAnMCcgJiYgKipwIDw9ICc5JykgewotICAgICAgICByZXQgPSAwOwotICAgICAgICBpZiAoKm51bSA+IChVSU5UX01BWCAvIDEwKSkgewotICAgICAgICAgICAgcmV0dXJuIE1CRURUTFNfRVJSX0FTTjFfSU5WQUxJRF9EQVRBOwotICAgICAgICB9Ci0gICAgICAgICpudW0gKj0gMTA7Ci0gICAgICAgICpudW0gKz0gKipwIC0gJzAnOwotICAgICAgICAoKnApKys7Ci0gICAgfQotICAgIHJldHVybiByZXQ7Ci19Ci0KLXN0YXRpYyBzaXplX3Qgb2lkX3N1YmlkZW50aWZpZXJfbnVtX2J5dGVzKHVuc2lnbmVkIGludCB2YWx1ZSkKLXsKLSAgICBzaXplX3QgbnVtX2J5dGVzID0gMDsKLQotICAgIGRvIHsKLSAgICAgICAgdmFsdWUgPj49IDc7Ci0gICAgICAgIG51bV9ieXRlcysrOwotICAgIH0gd2hpbGUgKHZhbHVlICE9IDApOwotCi0gICAgcmV0dXJuIG51bV9ieXRlczsKLX0KLQotc3RhdGljIGludCBvaWRfc3ViaWRlbnRpZmllcl9lbmNvZGVfaW50byh1bnNpZ25lZCBjaGFyICoqcCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgY2hhciAqYm91bmQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCB2YWx1ZSkKLXsKLSAgICBzaXplX3QgbnVtX2J5dGVzID0gb2lkX3N1YmlkZW50aWZpZXJfbnVtX2J5dGVzKHZhbHVlKTsKLQotICAgIGlmICgoc2l6ZV90KSAoYm91bmQgLSAqcCkgPCBudW1fYnl0ZXMpIHsKLSAgICAgICAgcmV0dXJuIE1CRURUTFNfRVJSX09JRF9CVUZfVE9PX1NNQUxMOwotICAgIH0KLSAgICAoKnApW251bV9ieXRlcyAtIDFdID0gKHVuc2lnbmVkIGNoYXIpICh2YWx1ZSAmIDB4N2YpOwotICAgIHZhbHVlID4+PSA3OwotCi0gICAgZm9yIChzaXplX3QgaSA9IDI7IGkgPD0gbnVtX2J5dGVzOyBpKyspIHsKLSAgICAgICAgKCpwKVtudW1fYnl0ZXMgLSBpXSA9IDB4ODAgfCAodW5zaWduZWQgY2hhcikgKHZhbHVlICYgMHg3Zik7Ci0gICAgICAgIHZhbHVlID4+PSA3OwotICAgIH0KLSAgICAqcCArPSBudW1fYnl0ZXM7Ci0KLSAgICByZXR1cm4gMDsKLX0KLQotLyogUmV0dXJuIHRoZSBPSUQgZm9yIHRoZSBnaXZlbiB4Lnkuei4uLi4gc3R5bGUgbnVtZXJpYyBzdHJpbmcgICovCi1pbnQgbWJlZHRsc19vaWRfZnJvbV9udW1lcmljX3N0cmluZyhtYmVkdGxzX2FzbjFfYnVmICpvaWQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICpvaWRfc3RyLCBzaXplX3Qgc2l6ZSkKLXsKLSAgICBpbnQgcmV0ID0gTUJFRFRMU19FUlJfQVNOMV9JTlZBTElEX0RBVEE7Ci0gICAgY29uc3QgY2hhciAqc3RyX3B0ciA9IG9pZF9zdHI7Ci0gICAgY29uc3QgY2hhciAqc3RyX2JvdW5kID0gb2lkX3N0ciArIHNpemU7Ci0gICAgdW5zaWduZWQgaW50IHZhbCA9IDA7Ci0gICAgdW5zaWduZWQgaW50IGNvbXBvbmVudDEsIGNvbXBvbmVudDI7Ci0gICAgc2l6ZV90IGVuY29kZWRfbGVuOwotICAgIHVuc2lnbmVkIGNoYXIgKnJlc2l6ZWRfbWVtOwotCi0gICAgLyogQ291bnQgdGhlIG51bWJlciBvZiBkb3RzIHRvIGdldCBhIHdvcnN0LWNhc2UgYWxsb2NhdGlvbiBzaXplLiAqLwotICAgIHNpemVfdCBudW1fZG90cyA9IDA7Ci0gICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBzaXplOyBpKyspIHsKLSAgICAgICAgaWYgKG9pZF9zdHJbaV0gPT0gJy4nKSB7Ci0gICAgICAgICAgICBudW1fZG90cysrOwotICAgICAgICB9Ci0gICAgfQotICAgIC8qIEFsbG9jYXRlIG1heGltdW0gcG9zc2libGUgcmVxdWlyZWQgbWVtb3J5OgotICAgICAqIFRoZXJlIGFyZSAobnVtX2RvdHMgKyAxKSBpbnRlZ2VyIGNvbXBvbmVudHMsIGJ1dCB0aGUgZmlyc3QgMiBzaGFyZSB0aGUKLSAgICAgKiBzYW1lIHN1YmlkZW50aWZpZXIsIHNvIHdlIG9ubHkgbmVlZCBudW1fZG90cyBzdWJpZGVudGlmaWVycyBtYXhpbXVtLiAqLwotICAgIGlmIChudW1fZG90cyA9PSAwIHx8IChudW1fZG90cyA+IE1CRURUTFNfT0lEX01BWF9DT01QT05FTlRTIC0gMSkpIHsKLSAgICAgICAgcmV0dXJuIE1CRURUTFNfRVJSX0FTTjFfSU5WQUxJRF9EQVRBOwotICAgIH0KLSAgICAvKiBFYWNoIGJ5dGUgY2FuIHN0b3JlIDcgYml0cywgY2FsY3VsYXRlIG51bWJlciBvZiBieXRlcyBmb3IgYQotICAgICAqIHN1YmlkZW50aWZpZXI6Ci0gICAgICoKLSAgICAgKiBieXRlcyA9IGNlaWwoc3ViaWRlbnRpZmVyX3NpemUgKiA4IC8gNykKLSAgICAgKi8KLSAgICBzaXplX3QgYnl0ZXNfcGVyX3N1YmlkZW50aWZpZXIgPSAoKChzaXplb2YodW5zaWduZWQgaW50KSAqIDgpIC0gMSkgLyA3KQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgMTsKLSAgICBzaXplX3QgbWF4X3Bvc3NpYmxlX2J5dGVzID0gbnVtX2RvdHMgKiBieXRlc19wZXJfc3ViaWRlbnRpZmllcjsKLSAgICBvaWQtPnAgPSBtYmVkdGxzX2NhbGxvYyhtYXhfcG9zc2libGVfYnl0ZXMsIDEpOwotICAgIGlmIChvaWQtPnAgPT0gTlVMTCkgewotICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfQVNOMV9BTExPQ19GQUlMRUQ7Ci0gICAgfQotICAgIHVuc2lnbmVkIGNoYXIgKm91dF9wdHIgPSBvaWQtPnA7Ci0gICAgdW5zaWduZWQgY2hhciAqb3V0X2JvdW5kID0gb2lkLT5wICsgbWF4X3Bvc3NpYmxlX2J5dGVzOwotCi0gICAgcmV0ID0gb2lkX3BhcnNlX251bWJlcigmY29tcG9uZW50MSwgJnN0cl9wdHIsIHN0cl9ib3VuZCk7Ci0gICAgaWYgKHJldCAhPSAwKSB7Ci0gICAgICAgIGdvdG8gZXJyb3I7Ci0gICAgfQotICAgIGlmIChjb21wb25lbnQxID4gMikgewotICAgICAgICAvKiBGaXJzdCBjb21wb25lbnQgY2FuJ3QgYmUgPiAyICovCi0gICAgICAgIHJldCA9IE1CRURUTFNfRVJSX0FTTjFfSU5WQUxJRF9EQVRBOwotICAgICAgICBnb3RvIGVycm9yOwotICAgIH0KLSAgICBpZiAoc3RyX3B0ciA+PSBzdHJfYm91bmQgfHwgKnN0cl9wdHIgIT0gJy4nKSB7Ci0gICAgICAgIHJldCA9IE1CRURUTFNfRVJSX0FTTjFfSU5WQUxJRF9EQVRBOwotICAgICAgICBnb3RvIGVycm9yOwotICAgIH0KLSAgICBzdHJfcHRyKys7Ci0KLSAgICByZXQgPSBvaWRfcGFyc2VfbnVtYmVyKCZjb21wb25lbnQyLCAmc3RyX3B0ciwgc3RyX2JvdW5kKTsKLSAgICBpZiAocmV0ICE9IDApIHsKLSAgICAgICAgZ290byBlcnJvcjsKLSAgICB9Ci0gICAgaWYgKChjb21wb25lbnQxIDwgMikgJiYgKGNvbXBvbmVudDIgPiAzOSkpIHsKLSAgICAgICAgLyogUm9vdCBub2RlcyAwIGFuZCAxIG1heSBoYXZlIHVwIHRvIDQwIGNoaWxkcmVuLCBudW1iZXJlZCAwLTM5ICovCi0gICAgICAgIHJldCA9IE1CRURUTFNfRVJSX0FTTjFfSU5WQUxJRF9EQVRBOwotICAgICAgICBnb3RvIGVycm9yOwotICAgIH0KLSAgICBpZiAoc3RyX3B0ciA8IHN0cl9ib3VuZCkgewotICAgICAgICBpZiAoKnN0cl9wdHIgPT0gJy4nKSB7Ci0gICAgICAgICAgICBzdHJfcHRyKys7Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICByZXQgPSBNQkVEVExTX0VSUl9BU04xX0lOVkFMSURfREFUQTsKLSAgICAgICAgICAgIGdvdG8gZXJyb3I7Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICBpZiAoY29tcG9uZW50MiA+IChVSU5UX01BWCAtIChjb21wb25lbnQxICogNDApKSkgewotICAgICAgICByZXQgPSBNQkVEVExTX0VSUl9BU04xX0lOVkFMSURfREFUQTsKLSAgICAgICAgZ290byBlcnJvcjsKLSAgICB9Ci0gICAgcmV0ID0gb2lkX3N1YmlkZW50aWZpZXJfZW5jb2RlX2ludG8oJm91dF9wdHIsIG91dF9ib3VuZCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY29tcG9uZW50MSAqIDQwKSArIGNvbXBvbmVudDIpOwotICAgIGlmIChyZXQgIT0gMCkgewotICAgICAgICBnb3RvIGVycm9yOwotICAgIH0KLQotICAgIHdoaWxlIChzdHJfcHRyIDwgc3RyX2JvdW5kKSB7Ci0gICAgICAgIHJldCA9IG9pZF9wYXJzZV9udW1iZXIoJnZhbCwgJnN0cl9wdHIsIHN0cl9ib3VuZCk7Ci0gICAgICAgIGlmIChyZXQgIT0gMCkgewotICAgICAgICAgICAgZ290byBlcnJvcjsKLSAgICAgICAgfQotICAgICAgICBpZiAoc3RyX3B0ciA8IHN0cl9ib3VuZCkgewotICAgICAgICAgICAgaWYgKCpzdHJfcHRyID09ICcuJykgewotICAgICAgICAgICAgICAgIHN0cl9wdHIrKzsKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgcmV0ID0gTUJFRFRMU19FUlJfQVNOMV9JTlZBTElEX0RBVEE7Ci0gICAgICAgICAgICAgICAgZ290byBlcnJvcjsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfQotCi0gICAgICAgIHJldCA9IG9pZF9zdWJpZGVudGlmaWVyX2VuY29kZV9pbnRvKCZvdXRfcHRyLCBvdXRfYm91bmQsIHZhbCk7Ci0gICAgICAgIGlmIChyZXQgIT0gMCkgewotICAgICAgICAgICAgZ290byBlcnJvcjsKLSAgICAgICAgfQotICAgIH0KLQotICAgIGVuY29kZWRfbGVuID0gKHNpemVfdCkgKG91dF9wdHIgLSBvaWQtPnApOwotICAgIHJlc2l6ZWRfbWVtID0gbWJlZHRsc19jYWxsb2MoZW5jb2RlZF9sZW4sIDEpOwotICAgIGlmIChyZXNpemVkX21lbSA9PSBOVUxMKSB7Ci0gICAgICAgIHJldCA9IE1CRURUTFNfRVJSX0FTTjFfQUxMT0NfRkFJTEVEOwotICAgICAgICBnb3RvIGVycm9yOwotICAgIH0KLSAgICBtZW1jcHkocmVzaXplZF9tZW0sIG9pZC0+cCwgZW5jb2RlZF9sZW4pOwotICAgIG1iZWR0bHNfZnJlZShvaWQtPnApOwotICAgIG9pZC0+cCA9IHJlc2l6ZWRfbWVtOwotICAgIG9pZC0+bGVuID0gZW5jb2RlZF9sZW47Ci0KLSAgICBvaWQtPnRhZyA9IE1CRURUTFNfQVNOMV9PSUQ7Ci0KLSAgICByZXR1cm4gMDsKLQotZXJyb3I6Ci0gICAgbWJlZHRsc19mcmVlKG9pZC0+cCk7Ci0gICAgb2lkLT5wID0gTlVMTDsKLSAgICBvaWQtPmxlbiA9IDA7Ci0gICAgcmV0dXJuIHJldDsKLX0KLQotI2VuZGlmIC8qIE1CRURUTFNfT0lEX0MgKi8KZGlmZiAtLWdpdCBhL2xpYnJhcnkvcGFkbG9jay5jIGIvbGlicmFyeS9wYWRsb2NrLmMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDFmMDA2OTEuLjAwMDAwMDAKLS0tIGEvbGlicmFyeS9wYWRsb2NrLmMKKysrIC9kZXYvbnVsbApAQCAtMSwxNTcgKzAsMCBAQAotLyoKLSAqICBWSUEgUGFkTG9jayBzdXBwb3J0IGZ1bmN0aW9ucwotICoKLSAqICBDb3B5cmlnaHQgVGhlIE1iZWQgVExTIENvbnRyaWJ1dG9ycwotICogIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wIE9SIEdQTC0yLjAtb3ItbGF0ZXIKLSAqLwotLyoKLSAqICBUaGlzIGltcGxlbWVudGF0aW9uIGlzIGJhc2VkIG9uIHRoZSBWSUEgUGFkTG9jayBQcm9ncmFtbWluZyBHdWlkZToKLSAqCi0gKiAgaHR0cDovL3d3dy52aWEuY29tLnR3L2VuL2Rvd25sb2Fkcy93aGl0ZXBhcGVycy9pbml0aWF0aXZlcy9wYWRsb2NrLwotICogIHByb2dyYW1taW5nX2d1aWRlLnBkZgotICovCi0KLSNpbmNsdWRlICJjb21tb24uaCIKLQotI2lmIGRlZmluZWQoTUJFRFRMU19QQURMT0NLX0MpCi0KLSNpbmNsdWRlICJwYWRsb2NrLmgiCi0KLSNpbmNsdWRlIDxzdHJpbmcuaD4KLQotI2lmIGRlZmluZWQoTUJFRFRMU19WSUFfUEFETE9DS19IQVZFX0NPREUpCi0KLS8qCi0gKiBQYWRMb2NrIGRldGVjdGlvbiByb3V0aW5lCi0gKi8KLWludCBtYmVkdGxzX3BhZGxvY2tfaGFzX3N1cHBvcnQoaW50IGZlYXR1cmUpCi17Ci0gICAgc3RhdGljIGludCBmbGFncyA9IC0xOwotICAgIGludCBlYnggPSAwLCBlZHggPSAwOwotCi0gICAgaWYgKGZsYWdzID09IC0xKSB7Ci0gICAgICAgIGFzbSAoIm1vdmwgICUlZWJ4LCAlMCAgICAgICAgICAgXG5cdCIKLSAgICAgICAgICAgICAibW92bCAgJDB4QzAwMDAwMDAsICUlZWF4ICBcblx0IgotICAgICAgICAgICAgICJjcHVpZCAgICAgICAgICAgICAgICAgICAgIFxuXHQiCi0gICAgICAgICAgICAgImNtcGwgICQweEMwMDAwMDAxLCAlJWVheCAgXG5cdCIKLSAgICAgICAgICAgICAibW92bCAgJDAsICUlZWR4ICAgICAgICAgICBcblx0IgotICAgICAgICAgICAgICJqYiAgICAxZiAgICAgICAgICAgICAgICAgIFxuXHQiCi0gICAgICAgICAgICAgIm1vdmwgICQweEMwMDAwMDAxLCAlJWVheCAgXG5cdCIKLSAgICAgICAgICAgICAiY3B1aWQgICAgICAgICAgICAgICAgICAgICBcblx0IgotICAgICAgICAgICAgICIxOiAgICAgICAgICAgICAgICAgICAgICAgIFxuXHQiCi0gICAgICAgICAgICAgIm1vdmwgICUlZWR4LCAlMSAgICAgICAgICAgXG5cdCIKLSAgICAgICAgICAgICAibW92bCAgJTIsICUlZWJ4ICAgICAgICAgICBcblx0IgotICAgICAgICAgICAgIDogIj1tIiAoZWJ4KSwgIj1tIiAoZWR4KQotICAgICAgICAgICAgIDogICJtIiAoZWJ4KQotICAgICAgICAgICAgIDogImVheCIsICJlY3giLCAiZWR4Iik7Ci0KLSAgICAgICAgZmxhZ3MgPSBlZHg7Ci0gICAgfQotCi0gICAgcmV0dXJuIGZsYWdzICYgZmVhdHVyZTsKLX0KLQotLyoKLSAqIFBhZExvY2sgQUVTLUVDQiBibG9jayBlbihkZSljcnlwdGlvbgotICovCi1pbnQgbWJlZHRsc19wYWRsb2NrX3hjcnlwdGVjYihtYmVkdGxzX2Flc19jb250ZXh0ICpjdHgsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgbW9kZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgaW5wdXRbMTZdLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgY2hhciBvdXRwdXRbMTZdKQotewotICAgIGludCBlYnggPSAwOwotICAgIHVpbnQzMl90ICpyazsKLSAgICB1aW50MzJfdCAqYmxrOwotICAgIHVpbnQzMl90ICpjdHJsOwotICAgIHVuc2lnbmVkIGNoYXIgYnVmWzI1Nl07Ci0KLSAgICByayA9IGN0eC0+YnVmICsgY3R4LT5ya19vZmZzZXQ7Ci0KLSAgICBpZiAoKChsb25nKSByayAmIDE1KSAhPSAwKSB7Ci0gICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9QQURMT0NLX0RBVEFfTUlTQUxJR05FRDsKLSAgICB9Ci0KLSAgICBibGsgPSBNQkVEVExTX1BBRExPQ0tfQUxJR04xNihidWYpOwotICAgIG1lbWNweShibGssIGlucHV0LCAxNik7Ci0KLSAgICBjdHJsID0gYmxrICsgNDsKLSAgICAqY3RybCA9IDB4ODAgfCBjdHgtPm5yIHwgKChjdHgtPm5yICsgKG1vZGVeMSkgLSAxMCkgPDwgOSk7Ci0KLSAgICBhc20gKCJwdXNoZmwgICAgICAgICAgICAgICAgICAgICAgICBcblx0IgotICAgICAgICAgInBvcGZsICAgICAgICAgICAgICAgICAgICAgICAgIFxuXHQiCi0gICAgICAgICAibW92bCAgICAlJWVieCwgJTAgICAgICAgICAgICAgXG5cdCIKLSAgICAgICAgICJtb3ZsICAgICQxLCAlJWVjeCAgICAgICAgICAgICBcblx0IgotICAgICAgICAgIm1vdmwgICAgJTIsICUlZWR4ICAgICAgICAgICAgIFxuXHQiCi0gICAgICAgICAibW92bCAgICAlMywgJSVlYnggICAgICAgICAgICAgXG5cdCIKLSAgICAgICAgICJtb3ZsICAgICU0LCAlJWVzaSAgICAgICAgICAgICBcblx0IgotICAgICAgICAgIm1vdmwgICAgJTQsICUlZWRpICAgICAgICAgICAgIFxuXHQiCi0gICAgICAgICAiLmJ5dGUgIDB4ZjMsMHgwZiwweGE3LDB4YzggICAgXG5cdCIKLSAgICAgICAgICJtb3ZsICAgICUxLCAlJWVieCAgICAgICAgICAgICBcblx0IgotICAgICAgICAgOiAiPW0iIChlYngpCi0gICAgICAgICA6ICAibSIgKGVieCksICJtIiAoY3RybCksICJtIiAocmspLCAibSIgKGJsaykKLSAgICAgICAgIDogIm1lbW9yeSIsICJlY3giLCAiZWR4IiwgImVzaSIsICJlZGkiKTsKLQotICAgIG1lbWNweShvdXRwdXQsIGJsaywgMTYpOwotCi0gICAgcmV0dXJuIDA7Ci19Ci0KLSNpZiBkZWZpbmVkKE1CRURUTFNfQ0lQSEVSX01PREVfQ0JDKQotLyoKLSAqIFBhZExvY2sgQUVTLUNCQyBidWZmZXIgZW4oZGUpY3J5cHRpb24KLSAqLwotaW50IG1iZWR0bHNfcGFkbG9ja194Y3J5cHRjYmMobWJlZHRsc19hZXNfY29udGV4dCAqY3R4LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IG1vZGUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgbGVuZ3RoLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgY2hhciBpdlsxNl0sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1bnNpZ25lZCBjaGFyICppbnB1dCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGNoYXIgKm91dHB1dCkKLXsKLSAgICBpbnQgZWJ4ID0gMDsKLSAgICBzaXplX3QgY291bnQ7Ci0gICAgdWludDMyX3QgKnJrOwotICAgIHVpbnQzMl90ICppdzsKLSAgICB1aW50MzJfdCAqY3RybDsKLSAgICB1bnNpZ25lZCBjaGFyIGJ1ZlsyNTZdOwotCi0gICAgcmsgPSBjdHgtPmJ1ZiArIGN0eC0+cmtfb2Zmc2V0OwotCi0gICAgaWYgKCgobG9uZykgaW5wdXQgICYgMTUpICE9IDAgfHwKLSAgICAgICAgKChsb25nKSBvdXRwdXQgJiAxNSkgIT0gMCB8fAotICAgICAgICAoKGxvbmcpIHJrICYgMTUpICE9IDApIHsKLSAgICAgICAgcmV0dXJuIE1CRURUTFNfRVJSX1BBRExPQ0tfREFUQV9NSVNBTElHTkVEOwotICAgIH0KLQotICAgIGl3ID0gTUJFRFRMU19QQURMT0NLX0FMSUdOMTYoYnVmKTsKLSAgICBtZW1jcHkoaXcsIGl2LCAxNik7Ci0KLSAgICBjdHJsID0gaXcgKyA0OwotICAgICpjdHJsID0gMHg4MCB8IGN0eC0+bnIgfCAoKGN0eC0+bnIgKyAobW9kZSBeIDEpIC0gMTApIDw8IDkpOwotCi0gICAgY291bnQgPSAobGVuZ3RoICsgMTUpID4+IDQ7Ci0KLSAgICBhc20gKCJwdXNoZmwgICAgICAgICAgICAgICAgICAgICAgICBcblx0IgotICAgICAgICAgInBvcGZsICAgICAgICAgICAgICAgICAgICAgICAgIFxuXHQiCi0gICAgICAgICAibW92bCAgICAlJWVieCwgJTAgICAgICAgICAgICAgXG5cdCIKLSAgICAgICAgICJtb3ZsICAgICUyLCAlJWVjeCAgICAgICAgICAgICBcblx0IgotICAgICAgICAgIm1vdmwgICAgJTMsICUlZWR4ICAgICAgICAgICAgIFxuXHQiCi0gICAgICAgICAibW92bCAgICAlNCwgJSVlYnggICAgICAgICAgICAgXG5cdCIKLSAgICAgICAgICJtb3ZsICAgICU1LCAlJWVzaSAgICAgICAgICAgICBcblx0IgotICAgICAgICAgIm1vdmwgICAgJTYsICUlZWRpICAgICAgICAgICAgIFxuXHQiCi0gICAgICAgICAibW92bCAgICAlNywgJSVlYXggICAgICAgICAgICAgXG5cdCIKLSAgICAgICAgICIuYnl0ZSAgMHhmMywweDBmLDB4YTcsMHhkMCAgICBcblx0IgotICAgICAgICAgIm1vdmwgICAgJTEsICUlZWJ4ICAgICAgICAgICAgIFxuXHQiCi0gICAgICAgICA6ICI9bSIgKGVieCkKLSAgICAgICAgIDogICJtIiAoZWJ4KSwgIm0iIChjb3VudCksICJtIiAoY3RybCksCi0gICAgICAgICAibSIgIChyayksICJtIiAoaW5wdXQpLCAibSIgKG91dHB1dCksICJtIiAoaXcpCi0gICAgICAgICA6ICJtZW1vcnkiLCAiZWF4IiwgImVjeCIsICJlZHgiLCAiZXNpIiwgImVkaSIpOwotCi0gICAgbWVtY3B5KGl2LCBpdywgMTYpOwotCi0gICAgcmV0dXJuIDA7Ci19Ci0jZW5kaWYgLyogTUJFRFRMU19DSVBIRVJfTU9ERV9DQkMgKi8KLQotI2VuZGlmIC8qIE1CRURUTFNfVklBX1BBRExPQ0tfSEFWRV9DT0RFICovCi0KLSNlbmRpZiAvKiBNQkVEVExTX1BBRExPQ0tfQyAqLwpkaWZmIC0tZ2l0IGEvbGlicmFyeS9wYWRsb2NrLmggYi9saWJyYXJ5L3BhZGxvY2suaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOTJkNzJhZi4uMDAwMDAwMAotLS0gYS9saWJyYXJ5L3BhZGxvY2suaAorKysgL2Rldi9udWxsCkBAIC0xLDExMSArMCwwIEBACi0vKioKLSAqIFxmaWxlIHBhZGxvY2suaAotICoKLSAqIFxicmllZiBWSUEgUGFkTG9jayBBQ0UgZm9yIEhXIGVuY3J5cHRpb24vZGVjcnlwdGlvbiBzdXBwb3J0ZWQgYnkgc29tZQotICogICAgICAgIHByb2Nlc3NvcnMKLSAqCi0gKiBcd2FybmluZyBUaGVzZSBmdW5jdGlvbnMgYXJlIG9ubHkgZm9yIGludGVybmFsIHVzZSBieSBvdGhlciBsaWJyYXJ5Ci0gKiAgICAgICAgICBmdW5jdGlvbnM7IHlvdSBtdXN0IG5vdCBjYWxsIHRoZW0gZGlyZWN0bHkuCi0gKi8KLS8qCi0gKiAgQ29weXJpZ2h0IFRoZSBNYmVkIFRMUyBDb250cmlidXRvcnMKLSAqICBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMCBPUiBHUEwtMi4wLW9yLWxhdGVyCi0gKi8KLSNpZm5kZWYgTUJFRFRMU19QQURMT0NLX0gKLSNkZWZpbmUgTUJFRFRMU19QQURMT0NLX0gKLQotI2luY2x1ZGUgIm1iZWR0bHMvYnVpbGRfaW5mby5oIgotCi0jaW5jbHVkZSAibWJlZHRscy9hZXMuaCIKLQotI2RlZmluZSBNQkVEVExTX0VSUl9QQURMT0NLX0RBVEFfTUlTQUxJR05FRCAgICAgICAgICAgICAgIC0weDAwMzAgIC8qKjwgSW5wdXQgZGF0YSBzaG91bGQgYmUgYWxpZ25lZC4gKi8KLQotI2lmIGRlZmluZWQoX19oYXNfZmVhdHVyZSkKLSNpZiBfX2hhc19mZWF0dXJlKGFkZHJlc3Nfc2FuaXRpemVyKQotI2RlZmluZSBNQkVEVExTX0hBVkVfQVNBTgotI2VuZGlmCi0jZW5kaWYKLQotLyoKLSAqIC0gYHBhZGxvY2tgIGlzIGltcGxlbWVudHMgd2l0aCBHTlVDIGFzc2VtYmx5IGZvciB4ODYgdGFyZ2V0LgotICogLSBTb21lIHZlcnNpb25zIG9mIEFTYW4gcmVzdWx0IGluIGVycm9ycyBhYm91dCBub3QgZW5vdWdoIHJlZ2lzdGVycy4KLSAqLwotI2lmIGRlZmluZWQoTUJFRFRMU19QQURMT0NLX0MpICYmIFwKLSAgICBkZWZpbmVkKF9fR05VQ19fKSAmJiBkZWZpbmVkKE1CRURUTFNfQVJDSF9JU19YODYpICYmIFwKLSAgICBkZWZpbmVkKE1CRURUTFNfSEFWRV9BU00pICYmIFwKLSAgICAhZGVmaW5lZChNQkVEVExTX0hBVkVfQVNBTikKLQotI2RlZmluZSBNQkVEVExTX1ZJQV9QQURMT0NLX0hBVkVfQ09ERQotCi0jaW5jbHVkZSA8c3RkaW50Lmg+Ci0KLSNkZWZpbmUgTUJFRFRMU19QQURMT0NLX1JORyAweDAwMEMKLSNkZWZpbmUgTUJFRFRMU19QQURMT0NLX0FDRSAweDAwQzAKLSNkZWZpbmUgTUJFRFRMU19QQURMT0NLX1BIRSAweDBDMDAKLSNkZWZpbmUgTUJFRFRMU19QQURMT0NLX1BNTSAweDMwMDAKLQotI2RlZmluZSBNQkVEVExTX1BBRExPQ0tfQUxJR04xNih4KSAodWludDMyX3QgKikgKDE2ICsgKChpbnQzMl90KSAoeCkgJiB+MTUpKQotCi0jaWZkZWYgX19jcGx1c3BsdXMKLWV4dGVybiAiQyIgewotI2VuZGlmCi0KLS8qKgotICogXGJyaWVmICAgICAgICAgIEludGVybmFsIFBhZExvY2sgZGV0ZWN0aW9uIHJvdXRpbmUKLSAqCi0gKiBcbm90ZSAgICAgICAgICAgVGhpcyBmdW5jdGlvbiBpcyBvbmx5IGZvciBpbnRlcm5hbCB1c2UgYnkgb3RoZXIgbGlicmFyeQotICogICAgICAgICAgICAgICAgIGZ1bmN0aW9uczsgeW91IG11c3Qgbm90IGNhbGwgaXQgZGlyZWN0bHkuCi0gKgotICogXHBhcmFtIGZlYXR1cmUgIFRoZSBmZWF0dXJlIHRvIGRldGVjdAotICoKLSAqIFxyZXR1cm4gICAgICAgICBub24temVybyBpZiBDUFUgaGFzIHN1cHBvcnQgZm9yIHRoZSBmZWF0dXJlLCAwIG90aGVyd2lzZQotICovCi1pbnQgbWJlZHRsc19wYWRsb2NrX2hhc19zdXBwb3J0KGludCBmZWF0dXJlKTsKLQotLyoqCi0gKiBcYnJpZWYgICAgICAgICAgSW50ZXJuYWwgUGFkTG9jayBBRVMtRUNCIGJsb2NrIGVuKGRlKWNyeXB0aW9uCi0gKgotICogXG5vdGUgICAgICAgICAgIFRoaXMgZnVuY3Rpb24gaXMgb25seSBmb3IgaW50ZXJuYWwgdXNlIGJ5IG90aGVyIGxpYnJhcnkKLSAqICAgICAgICAgICAgICAgICBmdW5jdGlvbnM7IHlvdSBtdXN0IG5vdCBjYWxsIGl0IGRpcmVjdGx5LgotICoKLSAqIFxwYXJhbSBjdHggICAgICBBRVMgY29udGV4dAotICogXHBhcmFtIG1vZGUgICAgIE1CRURUTFNfQUVTX0VOQ1JZUFQgb3IgTUJFRFRMU19BRVNfREVDUllQVAotICogXHBhcmFtIGlucHV0ICAgIDE2LWJ5dGUgaW5wdXQgYmxvY2sKLSAqIFxwYXJhbSBvdXRwdXQgICAxNi1ieXRlIG91dHB1dCBibG9jawotICoKLSAqIFxyZXR1cm4gICAgICAgICAwIGlmIHN1Y2Nlc3MsIDEgaWYgb3BlcmF0aW9uIGZhaWxlZAotICovCi1pbnQgbWJlZHRsc19wYWRsb2NrX3hjcnlwdGVjYihtYmVkdGxzX2Flc19jb250ZXh0ICpjdHgsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgbW9kZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgaW5wdXRbMTZdLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgY2hhciBvdXRwdXRbMTZdKTsKLQotLyoqCi0gKiBcYnJpZWYgICAgICAgICAgSW50ZXJuYWwgUGFkTG9jayBBRVMtQ0JDIGJ1ZmZlciBlbihkZSljcnlwdGlvbgotICoKLSAqIFxub3RlICAgICAgICAgICBUaGlzIGZ1bmN0aW9uIGlzIG9ubHkgZm9yIGludGVybmFsIHVzZSBieSBvdGhlciBsaWJyYXJ5Ci0gKiAgICAgICAgICAgICAgICAgZnVuY3Rpb25zOyB5b3UgbXVzdCBub3QgY2FsbCBpdCBkaXJlY3RseS4KLSAqCi0gKiBccGFyYW0gY3R4ICAgICAgQUVTIGNvbnRleHQKLSAqIFxwYXJhbSBtb2RlICAgICBNQkVEVExTX0FFU19FTkNSWVBUIG9yIE1CRURUTFNfQUVTX0RFQ1JZUFQKLSAqIFxwYXJhbSBsZW5ndGggICBsZW5ndGggb2YgdGhlIGlucHV0IGRhdGEKLSAqIFxwYXJhbSBpdiAgICAgICBpbml0aWFsaXphdGlvbiB2ZWN0b3IgKHVwZGF0ZWQgYWZ0ZXIgdXNlKQotICogXHBhcmFtIGlucHV0ICAgIGJ1ZmZlciBob2xkaW5nIHRoZSBpbnB1dCBkYXRhCi0gKiBccGFyYW0gb3V0cHV0ICAgYnVmZmVyIGhvbGRpbmcgdGhlIG91dHB1dCBkYXRhCi0gKgotICogXHJldHVybiAgICAgICAgIDAgaWYgc3VjY2VzcywgMSBpZiBvcGVyYXRpb24gZmFpbGVkCi0gKi8KLWludCBtYmVkdGxzX3BhZGxvY2tfeGNyeXB0Y2JjKG1iZWR0bHNfYWVzX2NvbnRleHQgKmN0eCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBtb2RlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IGxlbmd0aCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGNoYXIgaXZbMTZdLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdW5zaWduZWQgY2hhciAqaW5wdXQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBjaGFyICpvdXRwdXQpOwotCi0jaWZkZWYgX19jcGx1c3BsdXMKLX0KLSNlbmRpZgotCi0jZW5kaWYgLyogSEFWRV9YODYgICovCi0KLSNlbmRpZiAvKiBwYWRsb2NrLmggKi8KZGlmZiAtLWdpdCBhL2xpYnJhcnkvcGVtLmMgYi9saWJyYXJ5L3BlbS5jCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwZmVlNWRmLi4wMDAwMDAwCi0tLSBhL2xpYnJhcnkvcGVtLmMKKysrIC9kZXYvbnVsbApAQCAtMSw1NDcgKzAsMCBAQAotLyoKLSAqICBQcml2YWN5IEVuaGFuY2VkIE1haWwgKFBFTSkgZGVjb2RpbmcKLSAqCi0gKiAgQ29weXJpZ2h0IFRoZSBNYmVkIFRMUyBDb250cmlidXRvcnMKLSAqICBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMCBPUiBHUEwtMi4wLW9yLWxhdGVyCi0gKi8KLQotI2luY2x1ZGUgImNvbW1vbi5oIgotCi0jaWYgZGVmaW5lZChNQkVEVExTX1BFTV9QQVJTRV9DKSB8fCBkZWZpbmVkKE1CRURUTFNfUEVNX1dSSVRFX0MpCi0KLSNpbmNsdWRlICJtYmVkdGxzL3BlbS5oIgotI2luY2x1ZGUgIm1iZWR0bHMvYmFzZTY0LmgiCi0jaW5jbHVkZSAibWJlZHRscy9kZXMuaCIKLSNpbmNsdWRlICJtYmVkdGxzL2Flcy5oIgotI2luY2x1ZGUgIm1iZWR0bHMvbWQuaCIKLSNpbmNsdWRlICJtYmVkdGxzL2NpcGhlci5oIgotI2luY2x1ZGUgIm1iZWR0bHMvcGxhdGZvcm1fdXRpbC5oIgotI2luY2x1ZGUgIm1iZWR0bHMvZXJyb3IuaCIKLQotI2luY2x1ZGUgPHN0cmluZy5oPgotCi0jaW5jbHVkZSAibWJlZHRscy9wbGF0Zm9ybS5oIgotCi0jaWYgZGVmaW5lZChNQkVEVExTX1VTRV9QU0FfQ1JZUFRPKQotI2luY2x1ZGUgInBzYS9jcnlwdG8uaCIKLSNlbmRpZgotCi0jaWYgZGVmaW5lZChNQkVEVExTX01EX0NBTl9NRDUpICYmICBcCi0gICAgZGVmaW5lZChNQkVEVExTX0NJUEhFUl9NT0RFX0NCQykgJiYgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICAoZGVmaW5lZChNQkVEVExTX0RFU19DKSB8fCBkZWZpbmVkKE1CRURUTFNfQUVTX0MpKQotI2RlZmluZSBQRU1fUkZDMTQyMQotI2VuZGlmIC8qIE1CRURUTFNfTURfQ0FOX01ENSAmJgotICAgICAgICAgIE1CRURUTFNfQ0lQSEVSX01PREVfQ0JDICYmCi0gICAgICAgICAgKCBNQkVEVExTX0FFU19DIHx8IE1CRURUTFNfREVTX0MgKSAqLwotCi0jaWYgZGVmaW5lZChNQkVEVExTX1BFTV9QQVJTRV9DKQotdm9pZCBtYmVkdGxzX3BlbV9pbml0KG1iZWR0bHNfcGVtX2NvbnRleHQgKmN0eCkKLXsKLSAgICBtZW1zZXQoY3R4LCAwLCBzaXplb2YobWJlZHRsc19wZW1fY29udGV4dCkpOwotfQotCi0jaWYgZGVmaW5lZChQRU1fUkZDMTQyMSkKLS8qCi0gKiBSZWFkIGEgMTYtYnl0ZSBoZXggc3RyaW5nIGFuZCBjb252ZXJ0IGl0IHRvIGJpbmFyeQotICovCi1zdGF0aWMgaW50IHBlbV9nZXRfaXYoY29uc3QgdW5zaWduZWQgY2hhciAqcywgdW5zaWduZWQgY2hhciAqaXYsCi0gICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IGl2X2xlbikKLXsKLSAgICBzaXplX3QgaSwgaiwgazsKLQotICAgIG1lbXNldChpdiwgMCwgaXZfbGVuKTsKLQotICAgIGZvciAoaSA9IDA7IGkgPCBpdl9sZW4gKiAyOyBpKyssIHMrKykgewotICAgICAgICBpZiAoKnMgPj0gJzAnICYmICpzIDw9ICc5JykgewotICAgICAgICAgICAgaiA9ICpzIC0gJzAnOwotICAgICAgICB9IGVsc2UKLSAgICAgICAgaWYgKCpzID49ICdBJyAmJiAqcyA8PSAnRicpIHsKLSAgICAgICAgICAgIGogPSAqcyAtICc3JzsKLSAgICAgICAgfSBlbHNlCi0gICAgICAgIGlmICgqcyA+PSAnYScgJiYgKnMgPD0gJ2YnKSB7Ci0gICAgICAgICAgICBqID0gKnMgLSAnVyc7Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfUEVNX0lOVkFMSURfRU5DX0lWOwotICAgICAgICB9Ci0KLSAgICAgICAgayA9ICgoaSAmIDEpICE9IDApID8gaiA6IGogPDwgNDsKLQotICAgICAgICBpdltpID4+IDFdID0gKHVuc2lnbmVkIGNoYXIpIChpdltpID4+IDFdIHwgayk7Ci0gICAgfQotCi0gICAgcmV0dXJuIDA7Ci19Ci0KLXN0YXRpYyBpbnQgcGVtX3Bia2RmMSh1bnNpZ25lZCBjaGFyICprZXksIHNpemVfdCBrZXlsZW4sCi0gICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgY2hhciAqaXYsCi0gICAgICAgICAgICAgICAgICAgICAgY29uc3QgdW5zaWduZWQgY2hhciAqcHdkLCBzaXplX3QgcHdkbGVuKQotewotICAgIG1iZWR0bHNfbWRfY29udGV4dF90IG1kNV9jdHg7Ci0gICAgY29uc3QgbWJlZHRsc19tZF9pbmZvX3QgKm1kNV9pbmZvOwotICAgIHVuc2lnbmVkIGNoYXIgbWQ1c3VtWzE2XTsKLSAgICBzaXplX3QgdXNlX2xlbjsKLSAgICBpbnQgcmV0ID0gTUJFRFRMU19FUlJfRVJST1JfQ09SUlVQVElPTl9ERVRFQ1RFRDsKLQotICAgIG1iZWR0bHNfbWRfaW5pdCgmbWQ1X2N0eCk7Ci0KLSAgICAvKiBQcmVwYXJlIHRoZSBjb250ZXh0LiAoc2V0dXAoKSBlcnJvcnMgZ3JhY2VmdWxseSBvbiBOVUxMIGluZm8uKSAqLwotICAgIG1kNV9pbmZvID0gbWJlZHRsc19tZF9pbmZvX2Zyb21fdHlwZShNQkVEVExTX01EX01ENSk7Ci0gICAgaWYgKChyZXQgPSBtYmVkdGxzX21kX3NldHVwKCZtZDVfY3R4LCBtZDVfaW5mbywgMCkpICE9IDApIHsKLSAgICAgICAgZ290byBleGl0OwotICAgIH0KLQotICAgIC8qCi0gICAgICoga2V5WyAwLi4xNV0gPSBNRDUocHdkIHx8IElWKQotICAgICAqLwotICAgIGlmICgocmV0ID0gbWJlZHRsc19tZF9zdGFydHMoJm1kNV9jdHgpKSAhPSAwKSB7Ci0gICAgICAgIGdvdG8gZXhpdDsKLSAgICB9Ci0gICAgaWYgKChyZXQgPSBtYmVkdGxzX21kX3VwZGF0ZSgmbWQ1X2N0eCwgcHdkLCBwd2RsZW4pKSAhPSAwKSB7Ci0gICAgICAgIGdvdG8gZXhpdDsKLSAgICB9Ci0gICAgaWYgKChyZXQgPSBtYmVkdGxzX21kX3VwZGF0ZSgmbWQ1X2N0eCwgaXYsICA4KSkgIT0gMCkgewotICAgICAgICBnb3RvIGV4aXQ7Ci0gICAgfQotICAgIGlmICgocmV0ID0gbWJlZHRsc19tZF9maW5pc2goJm1kNV9jdHgsIG1kNXN1bSkpICE9IDApIHsKLSAgICAgICAgZ290byBleGl0OwotICAgIH0KLQotICAgIGlmIChrZXlsZW4gPD0gMTYpIHsKLSAgICAgICAgbWVtY3B5KGtleSwgbWQ1c3VtLCBrZXlsZW4pOwotICAgICAgICBnb3RvIGV4aXQ7Ci0gICAgfQotCi0gICAgbWVtY3B5KGtleSwgbWQ1c3VtLCAxNik7Ci0KLSAgICAvKgotICAgICAqIGtleVsxNi4uMjNdID0gTUQ1KGtleVsgMC4uMTVdIHx8IHB3ZCB8fCBJVl0pCi0gICAgICovCi0gICAgaWYgKChyZXQgPSBtYmVkdGxzX21kX3N0YXJ0cygmbWQ1X2N0eCkpICE9IDApIHsKLSAgICAgICAgZ290byBleGl0OwotICAgIH0KLSAgICBpZiAoKHJldCA9IG1iZWR0bHNfbWRfdXBkYXRlKCZtZDVfY3R4LCBtZDVzdW0sIDE2KSkgIT0gMCkgewotICAgICAgICBnb3RvIGV4aXQ7Ci0gICAgfQotICAgIGlmICgocmV0ID0gbWJlZHRsc19tZF91cGRhdGUoJm1kNV9jdHgsIHB3ZCwgcHdkbGVuKSkgIT0gMCkgewotICAgICAgICBnb3RvIGV4aXQ7Ci0gICAgfQotICAgIGlmICgocmV0ID0gbWJlZHRsc19tZF91cGRhdGUoJm1kNV9jdHgsIGl2LCA4KSkgIT0gMCkgewotICAgICAgICBnb3RvIGV4aXQ7Ci0gICAgfQotICAgIGlmICgocmV0ID0gbWJlZHRsc19tZF9maW5pc2goJm1kNV9jdHgsIG1kNXN1bSkpICE9IDApIHsKLSAgICAgICAgZ290byBleGl0OwotICAgIH0KLQotICAgIHVzZV9sZW4gPSAxNjsKLSAgICBpZiAoa2V5bGVuIDwgMzIpIHsKLSAgICAgICAgdXNlX2xlbiA9IGtleWxlbiAtIDE2OwotICAgIH0KLQotICAgIG1lbWNweShrZXkgKyAxNiwgbWQ1c3VtLCB1c2VfbGVuKTsKLQotZXhpdDoKLSAgICBtYmVkdGxzX21kX2ZyZWUoJm1kNV9jdHgpOwotICAgIG1iZWR0bHNfcGxhdGZvcm1femVyb2l6ZShtZDVzdW0sIDE2KTsKLQotICAgIHJldHVybiByZXQ7Ci19Ci0KLSNpZiBkZWZpbmVkKE1CRURUTFNfREVTX0MpCi0vKgotICogRGVjcnlwdCB3aXRoIERFUy1DQkMsIHVzaW5nIFBCS0RGMSBmb3Iga2V5IGRlcml2YXRpb24KLSAqLwotc3RhdGljIGludCBwZW1fZGVzX2RlY3J5cHQodW5zaWduZWQgY2hhciBkZXNfaXZbOF0sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBjaGFyICpidWYsIHNpemVfdCBidWZsZW4sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1bnNpZ25lZCBjaGFyICpwd2QsIHNpemVfdCBwd2RsZW4pCi17Ci0gICAgbWJlZHRsc19kZXNfY29udGV4dCBkZXNfY3R4OwotICAgIHVuc2lnbmVkIGNoYXIgZGVzX2tleVs4XTsKLSAgICBpbnQgcmV0ID0gTUJFRFRMU19FUlJfRVJST1JfQ09SUlVQVElPTl9ERVRFQ1RFRDsKLQotICAgIG1iZWR0bHNfZGVzX2luaXQoJmRlc19jdHgpOwotCi0gICAgaWYgKChyZXQgPSBwZW1fcGJrZGYxKGRlc19rZXksIDgsIGRlc19pdiwgcHdkLCBwd2RsZW4pKSAhPSAwKSB7Ci0gICAgICAgIGdvdG8gZXhpdDsKLSAgICB9Ci0KLSAgICBpZiAoKHJldCA9IG1iZWR0bHNfZGVzX3NldGtleV9kZWMoJmRlc19jdHgsIGRlc19rZXkpKSAhPSAwKSB7Ci0gICAgICAgIGdvdG8gZXhpdDsKLSAgICB9Ci0gICAgcmV0ID0gbWJlZHRsc19kZXNfY3J5cHRfY2JjKCZkZXNfY3R4LCBNQkVEVExTX0RFU19ERUNSWVBULCBidWZsZW4sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlc19pdiwgYnVmLCBidWYpOwotCi1leGl0OgotICAgIG1iZWR0bHNfZGVzX2ZyZWUoJmRlc19jdHgpOwotICAgIG1iZWR0bHNfcGxhdGZvcm1femVyb2l6ZShkZXNfa2V5LCA4KTsKLQotICAgIHJldHVybiByZXQ7Ci19Ci0KLS8qCi0gKiBEZWNyeXB0IHdpdGggM0RFUy1DQkMsIHVzaW5nIFBCS0RGMSBmb3Iga2V5IGRlcml2YXRpb24KLSAqLwotc3RhdGljIGludCBwZW1fZGVzM19kZWNyeXB0KHVuc2lnbmVkIGNoYXIgZGVzM19pdls4XSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBjaGFyICpidWYsIHNpemVfdCBidWZsZW4sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdW5zaWduZWQgY2hhciAqcHdkLCBzaXplX3QgcHdkbGVuKQotewotICAgIG1iZWR0bHNfZGVzM19jb250ZXh0IGRlczNfY3R4OwotICAgIHVuc2lnbmVkIGNoYXIgZGVzM19rZXlbMjRdOwotICAgIGludCByZXQgPSBNQkVEVExTX0VSUl9FUlJPUl9DT1JSVVBUSU9OX0RFVEVDVEVEOwotCi0gICAgbWJlZHRsc19kZXMzX2luaXQoJmRlczNfY3R4KTsKLQotICAgIGlmICgocmV0ID0gcGVtX3Bia2RmMShkZXMzX2tleSwgMjQsIGRlczNfaXYsIHB3ZCwgcHdkbGVuKSkgIT0gMCkgewotICAgICAgICBnb3RvIGV4aXQ7Ci0gICAgfQotCi0gICAgaWYgKChyZXQgPSBtYmVkdGxzX2RlczNfc2V0M2tleV9kZWMoJmRlczNfY3R4LCBkZXMzX2tleSkpICE9IDApIHsKLSAgICAgICAgZ290byBleGl0OwotICAgIH0KLSAgICByZXQgPSBtYmVkdGxzX2RlczNfY3J5cHRfY2JjKCZkZXMzX2N0eCwgTUJFRFRMU19ERVNfREVDUllQVCwgYnVmbGVuLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVzM19pdiwgYnVmLCBidWYpOwotCi1leGl0OgotICAgIG1iZWR0bHNfZGVzM19mcmVlKCZkZXMzX2N0eCk7Ci0gICAgbWJlZHRsc19wbGF0Zm9ybV96ZXJvaXplKGRlczNfa2V5LCAyNCk7Ci0KLSAgICByZXR1cm4gcmV0OwotfQotI2VuZGlmIC8qIE1CRURUTFNfREVTX0MgKi8KLQotI2lmIGRlZmluZWQoTUJFRFRMU19BRVNfQykKLS8qCi0gKiBEZWNyeXB0IHdpdGggQUVTLVhYWC1DQkMsIHVzaW5nIFBCS0RGMSBmb3Iga2V5IGRlcml2YXRpb24KLSAqLwotc3RhdGljIGludCBwZW1fYWVzX2RlY3J5cHQodW5zaWduZWQgY2hhciBhZXNfaXZbMTZdLCB1bnNpZ25lZCBpbnQga2V5bGVuLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgY2hhciAqYnVmLCBzaXplX3QgYnVmbGVuLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdW5zaWduZWQgY2hhciAqcHdkLCBzaXplX3QgcHdkbGVuKQotewotICAgIG1iZWR0bHNfYWVzX2NvbnRleHQgYWVzX2N0eDsKLSAgICB1bnNpZ25lZCBjaGFyIGFlc19rZXlbMzJdOwotICAgIGludCByZXQgPSBNQkVEVExTX0VSUl9FUlJPUl9DT1JSVVBUSU9OX0RFVEVDVEVEOwotCi0gICAgbWJlZHRsc19hZXNfaW5pdCgmYWVzX2N0eCk7Ci0KLSAgICBpZiAoKHJldCA9IHBlbV9wYmtkZjEoYWVzX2tleSwga2V5bGVuLCBhZXNfaXYsIHB3ZCwgcHdkbGVuKSkgIT0gMCkgewotICAgICAgICBnb3RvIGV4aXQ7Ci0gICAgfQotCi0gICAgaWYgKChyZXQgPSBtYmVkdGxzX2Flc19zZXRrZXlfZGVjKCZhZXNfY3R4LCBhZXNfa2V5LCBrZXlsZW4gKiA4KSkgIT0gMCkgewotICAgICAgICBnb3RvIGV4aXQ7Ci0gICAgfQotICAgIHJldCA9IG1iZWR0bHNfYWVzX2NyeXB0X2NiYygmYWVzX2N0eCwgTUJFRFRMU19BRVNfREVDUllQVCwgYnVmbGVuLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhZXNfaXYsIGJ1ZiwgYnVmKTsKLQotZXhpdDoKLSAgICBtYmVkdGxzX2Flc19mcmVlKCZhZXNfY3R4KTsKLSAgICBtYmVkdGxzX3BsYXRmb3JtX3plcm9pemUoYWVzX2tleSwga2V5bGVuKTsKLQotICAgIHJldHVybiByZXQ7Ci19Ci0jZW5kaWYgLyogTUJFRFRMU19BRVNfQyAqLwotCi0jaWYgZGVmaW5lZChNQkVEVExTX0RFU19DKSB8fCBkZWZpbmVkKE1CRURUTFNfQUVTX0MpCi1zdGF0aWMgaW50IHBlbV9jaGVja19wa2NzX3BhZGRpbmcodW5zaWduZWQgY2hhciAqaW5wdXQsIHNpemVfdCBpbnB1dF9sZW4sIHNpemVfdCAqZGF0YV9sZW4pCi17Ci0gICAgLyogaW5wdXRfbGVuID4gMCBpcyBndWFyYW50ZWVkIGJ5IG1iZWR0bHNfcGVtX3JlYWRfYnVmZmVyKCkuICovCi0gICAgc2l6ZV90IHBhZF9sZW4gPSBpbnB1dFtpbnB1dF9sZW4gLSAxXTsKLSAgICBzaXplX3QgaTsKLQotICAgIGlmIChwYWRfbGVuID4gaW5wdXRfbGVuKSB7Ci0gICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9QRU1fUEFTU1dPUkRfTUlTTUFUQ0g7Ci0gICAgfQotCi0gICAgKmRhdGFfbGVuID0gaW5wdXRfbGVuIC0gcGFkX2xlbjsKLQotICAgIGZvciAoaSA9ICpkYXRhX2xlbjsgaSA8IGlucHV0X2xlbjsgaSsrKSB7Ci0gICAgICAgIGlmIChpbnB1dFtpXSAhPSBwYWRfbGVuKSB7Ci0gICAgICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfUEVNX1BBU1NXT1JEX01JU01BVENIOwotICAgICAgICB9Ci0gICAgfQotCi0gICAgcmV0dXJuIDA7Ci19Ci0jZW5kaWYgLyogTUJFRFRMU19ERVNfQyB8fCBNQkVEVExTX0FFU19DICovCi0KLSNlbmRpZiAvKiBQRU1fUkZDMTQyMSAqLwotCi1pbnQgbWJlZHRsc19wZW1fcmVhZF9idWZmZXIobWJlZHRsc19wZW1fY29udGV4dCAqY3R4LCBjb25zdCBjaGFyICpoZWFkZXIsIGNvbnN0IGNoYXIgKmZvb3RlciwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1bnNpZ25lZCBjaGFyICpkYXRhLCBjb25zdCB1bnNpZ25lZCBjaGFyICpwd2QsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IHB3ZGxlbiwgc2l6ZV90ICp1c2VfbGVuKQotewotICAgIGludCByZXQsIGVuYzsKLSAgICBzaXplX3QgbGVuOwotICAgIHVuc2lnbmVkIGNoYXIgKmJ1ZjsKLSAgICBjb25zdCB1bnNpZ25lZCBjaGFyICpzMSwgKnMyLCAqZW5kOwotI2lmIGRlZmluZWQoUEVNX1JGQzE0MjEpCi0gICAgdW5zaWduZWQgY2hhciBwZW1faXZbMTZdOwotICAgIG1iZWR0bHNfY2lwaGVyX3R5cGVfdCBlbmNfYWxnID0gTUJFRFRMU19DSVBIRVJfTk9ORTsKLSNlbHNlCi0gICAgKCh2b2lkKSBwd2QpOwotICAgICgodm9pZCkgcHdkbGVuKTsKLSNlbmRpZiAvKiBQRU1fUkZDMTQyMSAqLwotCi0gICAgaWYgKGN0eCA9PSBOVUxMKSB7Ci0gICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9QRU1fQkFEX0lOUFVUX0RBVEE7Ci0gICAgfQotCi0gICAgczEgPSAodW5zaWduZWQgY2hhciAqKSBzdHJzdHIoKGNvbnN0IGNoYXIgKikgZGF0YSwgaGVhZGVyKTsKLQotICAgIGlmIChzMSA9PSBOVUxMKSB7Ci0gICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9QRU1fTk9fSEVBREVSX0ZPT1RFUl9QUkVTRU5UOwotICAgIH0KLQotICAgIHMyID0gKHVuc2lnbmVkIGNoYXIgKikgc3Ryc3RyKChjb25zdCBjaGFyICopIGRhdGEsIGZvb3Rlcik7Ci0KLSAgICBpZiAoczIgPT0gTlVMTCB8fCBzMiA8PSBzMSkgewotICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfUEVNX05PX0hFQURFUl9GT09URVJfUFJFU0VOVDsKLSAgICB9Ci0KLSAgICBzMSArPSBzdHJsZW4oaGVhZGVyKTsKLSAgICBpZiAoKnMxID09ICcgJykgewotICAgICAgICBzMSsrOwotICAgIH0KLSAgICBpZiAoKnMxID09ICdccicpIHsKLSAgICAgICAgczErKzsKLSAgICB9Ci0gICAgaWYgKCpzMSA9PSAnXG4nKSB7Ci0gICAgICAgIHMxKys7Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgcmV0dXJuIE1CRURUTFNfRVJSX1BFTV9OT19IRUFERVJfRk9PVEVSX1BSRVNFTlQ7Ci0gICAgfQotCi0gICAgZW5kID0gczI7Ci0gICAgZW5kICs9IHN0cmxlbihmb290ZXIpOwotICAgIGlmICgqZW5kID09ICcgJykgewotICAgICAgICBlbmQrKzsKLSAgICB9Ci0gICAgaWYgKCplbmQgPT0gJ1xyJykgewotICAgICAgICBlbmQrKzsKLSAgICB9Ci0gICAgaWYgKCplbmQgPT0gJ1xuJykgewotICAgICAgICBlbmQrKzsKLSAgICB9Ci0gICAgKnVzZV9sZW4gPSAoc2l6ZV90KSAoZW5kIC0gZGF0YSk7Ci0KLSAgICBlbmMgPSAwOwotCi0gICAgaWYgKHMyIC0gczEgPj0gMjIgJiYgbWVtY21wKHMxLCAiUHJvYy1UeXBlOiA0LEVOQ1JZUFRFRCIsIDIyKSA9PSAwKSB7Ci0jaWYgZGVmaW5lZChQRU1fUkZDMTQyMSkKLSAgICAgICAgZW5jKys7Ci0KLSAgICAgICAgczEgKz0gMjI7Ci0gICAgICAgIGlmICgqczEgPT0gJ1xyJykgewotICAgICAgICAgICAgczErKzsKLSAgICAgICAgfQotICAgICAgICBpZiAoKnMxID09ICdcbicpIHsKLSAgICAgICAgICAgIHMxKys7Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfUEVNX0lOVkFMSURfREFUQTsKLSAgICAgICAgfQotCi0KLSNpZiBkZWZpbmVkKE1CRURUTFNfREVTX0MpCi0gICAgICAgIGlmIChzMiAtIHMxID49IDIzICYmIG1lbWNtcChzMSwgIkRFSy1JbmZvOiBERVMtRURFMy1DQkMsIiwgMjMpID09IDApIHsKLSAgICAgICAgICAgIGVuY19hbGcgPSBNQkVEVExTX0NJUEhFUl9ERVNfRURFM19DQkM7Ci0KLSAgICAgICAgICAgIHMxICs9IDIzOwotICAgICAgICAgICAgaWYgKHMyIC0gczEgPCAxNiB8fCBwZW1fZ2V0X2l2KHMxLCBwZW1faXYsIDgpICE9IDApIHsKLSAgICAgICAgICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfUEVNX0lOVkFMSURfRU5DX0lWOwotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICBzMSArPSAxNjsKLSAgICAgICAgfSBlbHNlIGlmIChzMiAtIHMxID49IDE4ICYmIG1lbWNtcChzMSwgIkRFSy1JbmZvOiBERVMtQ0JDLCIsIDE4KSA9PSAwKSB7Ci0gICAgICAgICAgICBlbmNfYWxnID0gTUJFRFRMU19DSVBIRVJfREVTX0NCQzsKLQotICAgICAgICAgICAgczEgKz0gMTg7Ci0gICAgICAgICAgICBpZiAoczIgLSBzMSA8IDE2IHx8IHBlbV9nZXRfaXYoczEsIHBlbV9pdiwgOCkgIT0gMCkgewotICAgICAgICAgICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9QRU1fSU5WQUxJRF9FTkNfSVY7Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIHMxICs9IDE2OwotICAgICAgICB9Ci0jZW5kaWYgLyogTUJFRFRMU19ERVNfQyAqLwotCi0jaWYgZGVmaW5lZChNQkVEVExTX0FFU19DKQotICAgICAgICBpZiAoczIgLSBzMSA+PSAxNCAmJiBtZW1jbXAoczEsICJERUstSW5mbzogQUVTLSIsIDE0KSA9PSAwKSB7Ci0gICAgICAgICAgICBpZiAoczIgLSBzMSA8IDIyKSB7Ci0gICAgICAgICAgICAgICAgcmV0dXJuIE1CRURUTFNfRVJSX1BFTV9VTktOT1dOX0VOQ19BTEc7Ci0gICAgICAgICAgICB9IGVsc2UgaWYgKG1lbWNtcChzMSwgIkRFSy1JbmZvOiBBRVMtMTI4LUNCQywiLCAyMikgPT0gMCkgewotICAgICAgICAgICAgICAgIGVuY19hbGcgPSBNQkVEVExTX0NJUEhFUl9BRVNfMTI4X0NCQzsKLSAgICAgICAgICAgIH0gZWxzZSBpZiAobWVtY21wKHMxLCAiREVLLUluZm86IEFFUy0xOTItQ0JDLCIsIDIyKSA9PSAwKSB7Ci0gICAgICAgICAgICAgICAgZW5jX2FsZyA9IE1CRURUTFNfQ0lQSEVSX0FFU18xOTJfQ0JDOwotICAgICAgICAgICAgfSBlbHNlIGlmIChtZW1jbXAoczEsICJERUstSW5mbzogQUVTLTI1Ni1DQkMsIiwgMjIpID09IDApIHsKLSAgICAgICAgICAgICAgICBlbmNfYWxnID0gTUJFRFRMU19DSVBIRVJfQUVTXzI1Nl9DQkM7Ci0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9QRU1fVU5LTk9XTl9FTkNfQUxHOwotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICBzMSArPSAyMjsKLSAgICAgICAgICAgIGlmIChzMiAtIHMxIDwgMzIgfHwgcGVtX2dldF9pdihzMSwgcGVtX2l2LCAxNikgIT0gMCkgewotICAgICAgICAgICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9QRU1fSU5WQUxJRF9FTkNfSVY7Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIHMxICs9IDMyOwotICAgICAgICB9Ci0jZW5kaWYgLyogTUJFRFRMU19BRVNfQyAqLwotCi0gICAgICAgIGlmIChlbmNfYWxnID09IE1CRURUTFNfQ0lQSEVSX05PTkUpIHsKLSAgICAgICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9QRU1fVU5LTk9XTl9FTkNfQUxHOwotICAgICAgICB9Ci0KLSAgICAgICAgaWYgKCpzMSA9PSAnXHInKSB7Ci0gICAgICAgICAgICBzMSsrOwotICAgICAgICB9Ci0gICAgICAgIGlmICgqczEgPT0gJ1xuJykgewotICAgICAgICAgICAgczErKzsKLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9QRU1fSU5WQUxJRF9EQVRBOwotICAgICAgICB9Ci0jZWxzZQotICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfUEVNX0ZFQVRVUkVfVU5BVkFJTEFCTEU7Ci0jZW5kaWYgLyogUEVNX1JGQzE0MjEgKi8KLSAgICB9Ci0KLSAgICBpZiAoczEgPj0gczIpIHsKLSAgICAgICAgcmV0dXJuIE1CRURUTFNfRVJSX1BFTV9JTlZBTElEX0RBVEE7Ci0gICAgfQotCi0gICAgcmV0ID0gbWJlZHRsc19iYXNlNjRfZGVjb2RlKE5VTEwsIDAsICZsZW4sIHMxLCAoc2l6ZV90KSAoczIgLSBzMSkpOwotCi0gICAgaWYgKHJldCA9PSBNQkVEVExTX0VSUl9CQVNFNjRfSU5WQUxJRF9DSEFSQUNURVIpIHsKLSAgICAgICAgcmV0dXJuIE1CRURUTFNfRVJST1JfQUREKE1CRURUTFNfRVJSX1BFTV9JTlZBTElEX0RBVEEsIHJldCk7Ci0gICAgfQotCi0gICAgaWYgKGxlbiA9PSAwKSB7Ci0gICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9QRU1fQkFEX0lOUFVUX0RBVEE7Ci0gICAgfQotCi0gICAgaWYgKChidWYgPSBtYmVkdGxzX2NhbGxvYygxLCBsZW4pKSA9PSBOVUxMKSB7Ci0gICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9QRU1fQUxMT0NfRkFJTEVEOwotICAgIH0KLQotICAgIGlmICgocmV0ID0gbWJlZHRsc19iYXNlNjRfZGVjb2RlKGJ1ZiwgbGVuLCAmbGVuLCBzMSwgKHNpemVfdCkgKHMyIC0gczEpKSkgIT0gMCkgewotICAgICAgICBtYmVkdGxzX3plcm9pemVfYW5kX2ZyZWUoYnVmLCBsZW4pOwotICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJPUl9BREQoTUJFRFRMU19FUlJfUEVNX0lOVkFMSURfREFUQSwgcmV0KTsKLSAgICB9Ci0KLSAgICBpZiAoZW5jICE9IDApIHsKLSNpZiBkZWZpbmVkKFBFTV9SRkMxNDIxKQotICAgICAgICBpZiAocHdkID09IE5VTEwpIHsKLSAgICAgICAgICAgIG1iZWR0bHNfemVyb2l6ZV9hbmRfZnJlZShidWYsIGxlbik7Ci0gICAgICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfUEVNX1BBU1NXT1JEX1JFUVVJUkVEOwotICAgICAgICB9Ci0KLSAgICAgICAgcmV0ID0gMDsKLQotI2lmIGRlZmluZWQoTUJFRFRMU19ERVNfQykKLSAgICAgICAgaWYgKGVuY19hbGcgPT0gTUJFRFRMU19DSVBIRVJfREVTX0VERTNfQ0JDKSB7Ci0gICAgICAgICAgICByZXQgPSBwZW1fZGVzM19kZWNyeXB0KHBlbV9pdiwgYnVmLCBsZW4sIHB3ZCwgcHdkbGVuKTsKLSAgICAgICAgfSBlbHNlIGlmIChlbmNfYWxnID09IE1CRURUTFNfQ0lQSEVSX0RFU19DQkMpIHsKLSAgICAgICAgICAgIHJldCA9IHBlbV9kZXNfZGVjcnlwdChwZW1faXYsIGJ1ZiwgbGVuLCBwd2QsIHB3ZGxlbik7Ci0gICAgICAgIH0KLSNlbmRpZiAvKiBNQkVEVExTX0RFU19DICovCi0KLSNpZiBkZWZpbmVkKE1CRURUTFNfQUVTX0MpCi0gICAgICAgIGlmIChlbmNfYWxnID09IE1CRURUTFNfQ0lQSEVSX0FFU18xMjhfQ0JDKSB7Ci0gICAgICAgICAgICByZXQgPSBwZW1fYWVzX2RlY3J5cHQocGVtX2l2LCAxNiwgYnVmLCBsZW4sIHB3ZCwgcHdkbGVuKTsKLSAgICAgICAgfSBlbHNlIGlmIChlbmNfYWxnID09IE1CRURUTFNfQ0lQSEVSX0FFU18xOTJfQ0JDKSB7Ci0gICAgICAgICAgICByZXQgPSBwZW1fYWVzX2RlY3J5cHQocGVtX2l2LCAyNCwgYnVmLCBsZW4sIHB3ZCwgcHdkbGVuKTsKLSAgICAgICAgfSBlbHNlIGlmIChlbmNfYWxnID09IE1CRURUTFNfQ0lQSEVSX0FFU18yNTZfQ0JDKSB7Ci0gICAgICAgICAgICByZXQgPSBwZW1fYWVzX2RlY3J5cHQocGVtX2l2LCAzMiwgYnVmLCBsZW4sIHB3ZCwgcHdkbGVuKTsKLSAgICAgICAgfQotI2VuZGlmIC8qIE1CRURUTFNfQUVTX0MgKi8KLQotICAgICAgICBpZiAocmV0ICE9IDApIHsKLSAgICAgICAgICAgIG1iZWR0bHNfemVyb2l6ZV9hbmRfZnJlZShidWYsIGxlbik7Ci0gICAgICAgICAgICByZXR1cm4gcmV0OwotICAgICAgICB9Ci0KLSAgICAgICAgLyogQ2hlY2sgUEtDUyBwYWRkaW5nIGFuZCB1cGRhdGUgZGF0YSBsZW5ndGggYmFzZWQgb24gcGFkZGluZyBpbmZvLgotICAgICAgICAgKiBUaGlzIGNhbiBiZSB1c2VkIHRvIGRldGVjdCBpbnZhbGlkIHBhZGRpbmcgZGF0YSBhbmQgcGFzc3dvcmQKLSAgICAgICAgICogbWlzbWF0Y2hlcy4gKi8KLSAgICAgICAgc2l6ZV90IHVucGFkZGVkX2xlbjsKLSAgICAgICAgcmV0ID0gcGVtX2NoZWNrX3BrY3NfcGFkZGluZyhidWYsIGxlbiwgJnVucGFkZGVkX2xlbik7Ci0gICAgICAgIGlmIChyZXQgIT0gMCkgewotICAgICAgICAgICAgbWJlZHRsc196ZXJvaXplX2FuZF9mcmVlKGJ1ZiwgbGVuKTsKLSAgICAgICAgICAgIHJldHVybiByZXQ7Ci0gICAgICAgIH0KLSAgICAgICAgbGVuID0gdW5wYWRkZWRfbGVuOwotI2Vsc2UKLSAgICAgICAgbWJlZHRsc196ZXJvaXplX2FuZF9mcmVlKGJ1ZiwgbGVuKTsKLSAgICAgICAgcmV0dXJuIE1CRURUTFNfRVJSX1BFTV9GRUFUVVJFX1VOQVZBSUxBQkxFOwotI2VuZGlmIC8qIFBFTV9SRkMxNDIxICovCi0gICAgfQotCi0gICAgY3R4LT5idWYgPSBidWY7Ci0gICAgY3R4LT5idWZsZW4gPSBsZW47Ci0KLSAgICByZXR1cm4gMDsKLX0KLQotdm9pZCBtYmVkdGxzX3BlbV9mcmVlKG1iZWR0bHNfcGVtX2NvbnRleHQgKmN0eCkKLXsKLSAgICBpZiAoY3R4LT5idWYgIT0gTlVMTCkgewotICAgICAgICBtYmVkdGxzX3plcm9pemVfYW5kX2ZyZWUoY3R4LT5idWYsIGN0eC0+YnVmbGVuKTsKLSAgICB9Ci0gICAgbWJlZHRsc19mcmVlKGN0eC0+aW5mbyk7Ci0KLSAgICBtYmVkdGxzX3BsYXRmb3JtX3plcm9pemUoY3R4LCBzaXplb2YobWJlZHRsc19wZW1fY29udGV4dCkpOwotfQotI2VuZGlmIC8qIE1CRURUTFNfUEVNX1BBUlNFX0MgKi8KLQotI2lmIGRlZmluZWQoTUJFRFRMU19QRU1fV1JJVEVfQykKLWludCBtYmVkdGxzX3BlbV93cml0ZV9idWZmZXIoY29uc3QgY2hhciAqaGVhZGVyLCBjb25zdCBjaGFyICpmb290ZXIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgKmRlcl9kYXRhLCBzaXplX3QgZGVyX2xlbiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgY2hhciAqYnVmLCBzaXplX3QgYnVmX2xlbiwgc2l6ZV90ICpvbGVuKQotewotICAgIGludCByZXQgPSBNQkVEVExTX0VSUl9FUlJPUl9DT1JSVVBUSU9OX0RFVEVDVEVEOwotICAgIHVuc2lnbmVkIGNoYXIgKmVuY29kZV9idWYgPSBOVUxMLCAqYywgKnAgPSBidWY7Ci0gICAgc2l6ZV90IGxlbiA9IDAsIHVzZV9sZW4sIGFkZF9sZW4gPSAwOwotCi0gICAgbWJlZHRsc19iYXNlNjRfZW5jb2RlKE5VTEwsIDAsICZ1c2VfbGVuLCBkZXJfZGF0YSwgZGVyX2xlbik7Ci0gICAgYWRkX2xlbiA9IHN0cmxlbihoZWFkZXIpICsgc3RybGVuKGZvb3RlcikgKyAoKCh1c2VfbGVuID4gMikgPyAodXNlX2xlbiAtIDIpIDogMCkgLyA2NCkgKyAxOwotCi0gICAgaWYgKHVzZV9sZW4gKyBhZGRfbGVuID4gYnVmX2xlbikgewotICAgICAgICAqb2xlbiA9IHVzZV9sZW4gKyBhZGRfbGVuOwotICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfQkFTRTY0X0JVRkZFUl9UT09fU01BTEw7Ci0gICAgfQotCi0gICAgaWYgKHVzZV9sZW4gIT0gMCAmJgotICAgICAgICAoKGVuY29kZV9idWYgPSBtYmVkdGxzX2NhbGxvYygxLCB1c2VfbGVuKSkgPT0gTlVMTCkpIHsKLSAgICAgICAgcmV0dXJuIE1CRURUTFNfRVJSX1BFTV9BTExPQ19GQUlMRUQ7Ci0gICAgfQotCi0gICAgaWYgKChyZXQgPSBtYmVkdGxzX2Jhc2U2NF9lbmNvZGUoZW5jb2RlX2J1ZiwgdXNlX2xlbiwgJnVzZV9sZW4sIGRlcl9kYXRhLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlcl9sZW4pKSAhPSAwKSB7Ci0gICAgICAgIG1iZWR0bHNfZnJlZShlbmNvZGVfYnVmKTsKLSAgICAgICAgcmV0dXJuIHJldDsKLSAgICB9Ci0KLSAgICBtZW1jcHkocCwgaGVhZGVyLCBzdHJsZW4oaGVhZGVyKSk7Ci0gICAgcCArPSBzdHJsZW4oaGVhZGVyKTsKLSAgICBjID0gZW5jb2RlX2J1ZjsKLQotICAgIHdoaWxlICh1c2VfbGVuKSB7Ci0gICAgICAgIGxlbiA9ICh1c2VfbGVuID4gNjQpID8gNjQgOiB1c2VfbGVuOwotICAgICAgICBtZW1jcHkocCwgYywgbGVuKTsKLSAgICAgICAgdXNlX2xlbiAtPSBsZW47Ci0gICAgICAgIHAgKz0gbGVuOwotICAgICAgICBjICs9IGxlbjsKLSAgICAgICAgKnArKyA9ICdcbic7Ci0gICAgfQotCi0gICAgbWVtY3B5KHAsIGZvb3Rlciwgc3RybGVuKGZvb3RlcikpOwotICAgIHAgKz0gc3RybGVuKGZvb3Rlcik7Ci0KLSAgICAqcCsrID0gJ1wwJzsKLSAgICAqb2xlbiA9IChzaXplX3QpIChwIC0gYnVmKTsKLQotICAgIC8qIENsZWFuIGFueSByZW1haW5pbmcgZGF0YSBwcmV2aW91c2x5IHdyaXR0ZW4gdG8gdGhlIGJ1ZmZlciAqLwotICAgIG1lbXNldChidWYgKyAqb2xlbiwgMCwgYnVmX2xlbiAtICpvbGVuKTsKLQotICAgIG1iZWR0bHNfZnJlZShlbmNvZGVfYnVmKTsKLSAgICByZXR1cm4gMDsKLX0KLSNlbmRpZiAvKiBNQkVEVExTX1BFTV9XUklURV9DICovCi0jZW5kaWYgLyogTUJFRFRMU19QRU1fUEFSU0VfQyB8fCBNQkVEVExTX1BFTV9XUklURV9DICovCmRpZmYgLS1naXQgYS9saWJyYXJ5L3BrX3dyYXAuYyBiL2xpYnJhcnkvcGtfd3JhcC5jCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxOTE5NmI1Li4wMDAwMDAwCi0tLSBhL2xpYnJhcnkvcGtfd3JhcC5jCisrKyAvZGV2L251bGwKQEAgLTEsMTU4NCArMCwwIEBACi0vKgotICogIFB1YmxpYyBLZXkgYWJzdHJhY3Rpb24gbGF5ZXI6IHdyYXBwZXIgZnVuY3Rpb25zCi0gKgotICogIENvcHlyaWdodCBUaGUgTWJlZCBUTFMgQ29udHJpYnV0b3JzCi0gKiAgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjAgT1IgR1BMLTIuMC1vci1sYXRlcgotICovCi0KLSNpbmNsdWRlICJjb21tb24uaCIKLQotI2luY2x1ZGUgIm1iZWR0bHMvcGxhdGZvcm1fdXRpbC5oIgotCi0jaWYgZGVmaW5lZChNQkVEVExTX1BLX0MpCi0jaW5jbHVkZSAicGtfd3JhcC5oIgotI2luY2x1ZGUgInBrX2ludGVybmFsLmgiCi0jaW5jbHVkZSAibWJlZHRscy9lcnJvci5oIgotI2luY2x1ZGUgIm1iZWR0bHMvcHNhX3V0aWwuaCIKLQotLyogRXZlbiBpZiBSU0Egbm90IGFjdGl2YXRlZCwgZm9yIHRoZSBzYWtlIG9mIFJTQS1hbHQgKi8KLSNpbmNsdWRlICJtYmVkdGxzL3JzYS5oIgotCi0jaWYgZGVmaW5lZChNQkVEVExTX0VDUF9DKQotI2luY2x1ZGUgIm1iZWR0bHMvZWNwLmgiCi0jZW5kaWYKLQotI2lmIGRlZmluZWQoTUJFRFRMU19FQ0RTQV9DKQotI2luY2x1ZGUgIm1iZWR0bHMvZWNkc2EuaCIKLSNlbmRpZgotCi0jaWYgZGVmaW5lZChNQkVEVExTX1VTRV9QU0FfQ1JZUFRPKQotI2luY2x1ZGUgInBzYV91dGlsX2ludGVybmFsLmgiCi0jaW5jbHVkZSAicHNhL2NyeXB0by5oIgotI2luY2x1ZGUgIm1iZWR0bHMvcHNhX3V0aWwuaCIKLQotI2lmIGRlZmluZWQoTUJFRFRMU19SU0FfQykKLSNpbmNsdWRlICJwa3dyaXRlLmgiCi0jaW5jbHVkZSAicnNhX2ludGVybmFsLmgiCi0jZW5kaWYKLQotI2lmIGRlZmluZWQoTUJFRFRMU19QS19DQU5fRUNEU0FfU09NRSkKLSNpbmNsdWRlICJtYmVkdGxzL2FzbjF3cml0ZS5oIgotI2luY2x1ZGUgIm1iZWR0bHMvYXNuMS5oIgotI2VuZGlmCi0jZW5kaWYgIC8qIE1CRURUTFNfVVNFX1BTQV9DUllQVE8gKi8KLQotI2luY2x1ZGUgIm1iZWR0bHMvcGxhdGZvcm0uaCIKLQotI2luY2x1ZGUgPGxpbWl0cy5oPgotI2luY2x1ZGUgPHN0ZGludC5oPgotI2luY2x1ZGUgPHN0cmluZy5oPgotCi0jaWYgZGVmaW5lZChNQkVEVExTX1JTQV9DKQotc3RhdGljIGludCByc2FfY2FuX2RvKG1iZWR0bHNfcGtfdHlwZV90IHR5cGUpCi17Ci0gICAgcmV0dXJuIHR5cGUgPT0gTUJFRFRMU19QS19SU0EgfHwKLSAgICAgICAgICAgdHlwZSA9PSBNQkVEVExTX1BLX1JTQVNTQV9QU1M7Ci19Ci0KLXN0YXRpYyBzaXplX3QgcnNhX2dldF9iaXRsZW4obWJlZHRsc19wa19jb250ZXh0ICpwaykKLXsKLSAgICBjb25zdCBtYmVkdGxzX3JzYV9jb250ZXh0ICpyc2EgPSAoY29uc3QgbWJlZHRsc19yc2FfY29udGV4dCAqKSBway0+cGtfY3R4OwotICAgIHJldHVybiBtYmVkdGxzX3JzYV9nZXRfYml0bGVuKHJzYSk7Ci19Ci0KLSNpZiBkZWZpbmVkKE1CRURUTFNfVVNFX1BTQV9DUllQVE8pCi1zdGF0aWMgaW50IHJzYV92ZXJpZnlfd3JhcChtYmVkdGxzX3BrX2NvbnRleHQgKnBrLCBtYmVkdGxzX21kX3R5cGVfdCBtZF9hbGcsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1bnNpZ25lZCBjaGFyICpoYXNoLCBzaXplX3QgaGFzaF9sZW4sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1bnNpZ25lZCBjaGFyICpzaWcsIHNpemVfdCBzaWdfbGVuKQotewotICAgIG1iZWR0bHNfcnNhX2NvbnRleHQgKnJzYSA9IChtYmVkdGxzX3JzYV9jb250ZXh0ICopIHBrLT5wa19jdHg7Ci0gICAgaW50IHJldCA9IE1CRURUTFNfRVJSX0VSUk9SX0NPUlJVUFRJT05fREVURUNURUQ7Ci0gICAgcHNhX2tleV9hdHRyaWJ1dGVzX3QgYXR0cmlidXRlcyA9IFBTQV9LRVlfQVRUUklCVVRFU19JTklUOwotICAgIG1iZWR0bHNfc3ZjX2tleV9pZF90IGtleV9pZCA9IE1CRURUTFNfU1ZDX0tFWV9JRF9JTklUOwotICAgIHBzYV9zdGF0dXNfdCBzdGF0dXM7Ci0gICAgaW50IGtleV9sZW47Ci0gICAgdW5zaWduZWQgY2hhciBidWZbTUJFRFRMU19QS19SU0FfUFVCX0RFUl9NQVhfQllURVNdOwotICAgIHVuc2lnbmVkIGNoYXIgKnAgPSBidWYgKyBzaXplb2YoYnVmKTsKLSAgICBwc2FfYWxnb3JpdGhtX3QgcHNhX2FsZ19tZDsKLSAgICBzaXplX3QgcnNhX2xlbiA9IG1iZWR0bHNfcnNhX2dldF9sZW4ocnNhKTsKLQotI2lmIFNJWkVfTUFYID4gVUlOVF9NQVgKLSAgICBpZiAobWRfYWxnID09IE1CRURUTFNfTURfTk9ORSAmJiBVSU5UX01BWCA8IGhhc2hfbGVuKSB7Ci0gICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9QS19CQURfSU5QVVRfREFUQTsKLSAgICB9Ci0jZW5kaWYKLQotICAgIGlmIChtYmVkdGxzX3JzYV9nZXRfcGFkZGluZ19tb2RlKHJzYSkgPT0gTUJFRFRMU19SU0FfUEtDU19WMjEpIHsKLSAgICAgICAgcHNhX2FsZ19tZCA9IFBTQV9BTEdfUlNBX1BTUyhtYmVkdGxzX21kX3BzYV9hbGdfZnJvbV90eXBlKG1kX2FsZykpOwotICAgIH0gZWxzZSB7Ci0gICAgICAgIHBzYV9hbGdfbWQgPSBQU0FfQUxHX1JTQV9QS0NTMVYxNV9TSUdOKG1iZWR0bHNfbWRfcHNhX2FsZ19mcm9tX3R5cGUobWRfYWxnKSk7Ci0gICAgfQotCi0gICAgaWYgKHNpZ19sZW4gPCByc2FfbGVuKSB7Ci0gICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9SU0FfVkVSSUZZX0ZBSUxFRDsKLSAgICB9Ci0KLSAgICBrZXlfbGVuID0gbWJlZHRsc19yc2Ffd3JpdGVfcHVia2V5KHJzYSwgYnVmLCAmcCk7Ci0gICAgaWYgKGtleV9sZW4gPD0gMCkgewotICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfUEtfQkFEX0lOUFVUX0RBVEE7Ci0gICAgfQotCi0gICAgcHNhX3NldF9rZXlfdXNhZ2VfZmxhZ3MoJmF0dHJpYnV0ZXMsIFBTQV9LRVlfVVNBR0VfVkVSSUZZX0hBU0gpOwotICAgIHBzYV9zZXRfa2V5X2FsZ29yaXRobSgmYXR0cmlidXRlcywgcHNhX2FsZ19tZCk7Ci0gICAgcHNhX3NldF9rZXlfdHlwZSgmYXR0cmlidXRlcywgUFNBX0tFWV9UWVBFX1JTQV9QVUJMSUNfS0VZKTsKLQotICAgIHN0YXR1cyA9IHBzYV9pbXBvcnRfa2V5KCZhdHRyaWJ1dGVzLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ1ZiArIHNpemVvZihidWYpIC0ga2V5X2xlbiwga2V5X2xlbiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAma2V5X2lkKTsKLSAgICBpZiAoc3RhdHVzICE9IFBTQV9TVUNDRVNTKSB7Ci0gICAgICAgIHJldCA9IFBTQV9QS19UT19NQkVEVExTX0VSUihzdGF0dXMpOwotICAgICAgICBnb3RvIGNsZWFudXA7Ci0gICAgfQotCi0gICAgc3RhdHVzID0gcHNhX3ZlcmlmeV9oYXNoKGtleV9pZCwgcHNhX2FsZ19tZCwgaGFzaCwgaGFzaF9sZW4sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpZywgc2lnX2xlbik7Ci0gICAgaWYgKHN0YXR1cyAhPSBQU0FfU1VDQ0VTUykgewotICAgICAgICByZXQgPSBQU0FfUEtfUlNBX1RPX01CRURUTFNfRVJSKHN0YXR1cyk7Ci0gICAgICAgIGdvdG8gY2xlYW51cDsKLSAgICB9Ci0gICAgcmV0ID0gMDsKLQotY2xlYW51cDoKLSAgICBzdGF0dXMgPSBwc2FfZGVzdHJveV9rZXkoa2V5X2lkKTsKLSAgICBpZiAocmV0ID09IDAgJiYgc3RhdHVzICE9IFBTQV9TVUNDRVNTKSB7Ci0gICAgICAgIHJldCA9IFBTQV9QS19UT19NQkVEVExTX0VSUihzdGF0dXMpOwotICAgIH0KLQotICAgIHJldHVybiByZXQ7Ci19Ci0jZWxzZSAvKiBNQkVEVExTX1VTRV9QU0FfQ1JZUFRPICovCi1zdGF0aWMgaW50IHJzYV92ZXJpZnlfd3JhcChtYmVkdGxzX3BrX2NvbnRleHQgKnBrLCBtYmVkdGxzX21kX3R5cGVfdCBtZF9hbGcsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1bnNpZ25lZCBjaGFyICpoYXNoLCBzaXplX3QgaGFzaF9sZW4sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1bnNpZ25lZCBjaGFyICpzaWcsIHNpemVfdCBzaWdfbGVuKQotewotICAgIGludCByZXQgPSBNQkVEVExTX0VSUl9FUlJPUl9DT1JSVVBUSU9OX0RFVEVDVEVEOwotICAgIG1iZWR0bHNfcnNhX2NvbnRleHQgKnJzYSA9IChtYmVkdGxzX3JzYV9jb250ZXh0ICopIHBrLT5wa19jdHg7Ci0gICAgc2l6ZV90IHJzYV9sZW4gPSBtYmVkdGxzX3JzYV9nZXRfbGVuKHJzYSk7Ci0KLSNpZiBTSVpFX01BWCA+IFVJTlRfTUFYCi0gICAgaWYgKG1kX2FsZyA9PSBNQkVEVExTX01EX05PTkUgJiYgVUlOVF9NQVggPCBoYXNoX2xlbikgewotICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfUEtfQkFEX0lOUFVUX0RBVEE7Ci0gICAgfQotI2VuZGlmCi0KLSAgICBpZiAoc2lnX2xlbiA8IHJzYV9sZW4pIHsKLSAgICAgICAgcmV0dXJuIE1CRURUTFNfRVJSX1JTQV9WRVJJRllfRkFJTEVEOwotICAgIH0KLQotICAgIGlmICgocmV0ID0gbWJlZHRsc19yc2FfcGtjczFfdmVyaWZ5KHJzYSwgbWRfYWxnLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh1bnNpZ25lZCBpbnQpIGhhc2hfbGVuLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhc2gsIHNpZykpICE9IDApIHsKLSAgICAgICAgcmV0dXJuIHJldDsKLSAgICB9Ci0KLSAgICAvKiBUaGUgYnVmZmVyIGNvbnRhaW5zIGEgdmFsaWQgc2lnbmF0dXJlIGZvbGxvd2VkIGJ5IGV4dHJhIGRhdGEuCi0gICAgICogV2UgaGF2ZSBhIHNwZWNpYWwgZXJyb3IgY29kZSBmb3IgdGhhdCBzbyB0aGF0IHNvIHRoYXQgY2FsbGVycyBjYW4KLSAgICAgKiB1c2UgbWJlZHRsc19wa192ZXJpZnkoKSB0byBjaGVjayAiRG9lcyB0aGUgYnVmZmVyIHN0YXJ0IHdpdGggYQotICAgICAqIHZhbGlkIHNpZ25hdHVyZT8iIGFuZCBub3QganVzdCAiRG9lcyB0aGUgYnVmZmVyIGNvbnRhaW4gYSB2YWxpZAotICAgICAqIHNpZ25hdHVyZT8iLiAqLwotICAgIGlmIChzaWdfbGVuID4gcnNhX2xlbikgewotICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfUEtfU0lHX0xFTl9NSVNNQVRDSDsKLSAgICB9Ci0KLSAgICByZXR1cm4gMDsKLX0KLSNlbmRpZiAvKiBNQkVEVExTX1VTRV9QU0FfQ1JZUFRPICovCi0KLSNpZiBkZWZpbmVkKE1CRURUTFNfVVNFX1BTQV9DUllQVE8pCi1pbnQgIG1iZWR0bHNfcGtfcHNhX3JzYV9zaWduX2V4dChwc2FfYWxnb3JpdGhtX3QgYWxnLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWJlZHRsc19yc2FfY29udGV4dCAqcnNhX2N0eCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgKmhhc2gsIHNpemVfdCBoYXNoX2xlbiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGNoYXIgKnNpZywgc2l6ZV90IHNpZ19zaXplLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90ICpzaWdfbGVuKQotewotICAgIGludCByZXQgPSBNQkVEVExTX0VSUl9FUlJPUl9DT1JSVVBUSU9OX0RFVEVDVEVEOwotICAgIHBzYV9rZXlfYXR0cmlidXRlc190IGF0dHJpYnV0ZXMgPSBQU0FfS0VZX0FUVFJJQlVURVNfSU5JVDsKLSAgICBtYmVkdGxzX3N2Y19rZXlfaWRfdCBrZXlfaWQgPSBNQkVEVExTX1NWQ19LRVlfSURfSU5JVDsKLSAgICBwc2Ffc3RhdHVzX3Qgc3RhdHVzOwotICAgIGludCBrZXlfbGVuOwotICAgIHVuc2lnbmVkIGNoYXIgKmJ1ZiA9IE5VTEw7Ci0gICAgdW5zaWduZWQgY2hhciAqcDsKLQotICAgIGJ1ZiA9IG1iZWR0bHNfY2FsbG9jKDEsIE1CRURUTFNfUEtfUlNBX1BSVl9ERVJfTUFYX0JZVEVTKTsKLSAgICBpZiAoYnVmID09IE5VTEwpIHsKLSAgICAgICAgcmV0dXJuIE1CRURUTFNfRVJSX1BLX0FMTE9DX0ZBSUxFRDsKLSAgICB9Ci0gICAgcCA9IGJ1ZiArIE1CRURUTFNfUEtfUlNBX1BSVl9ERVJfTUFYX0JZVEVTOwotCi0gICAgKnNpZ19sZW4gPSBtYmVkdGxzX3JzYV9nZXRfbGVuKHJzYV9jdHgpOwotICAgIGlmIChzaWdfc2l6ZSA8ICpzaWdfbGVuKSB7Ci0gICAgICAgIG1iZWR0bHNfZnJlZShidWYpOwotICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfUEtfQlVGRkVSX1RPT19TTUFMTDsKLSAgICB9Ci0KLSAgICBrZXlfbGVuID0gbWJlZHRsc19yc2Ffd3JpdGVfa2V5KHJzYV9jdHgsIGJ1ZiwgJnApOwotICAgIGlmIChrZXlfbGVuIDw9IDApIHsKLSAgICAgICAgbWJlZHRsc19mcmVlKGJ1Zik7Ci0gICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9QS19CQURfSU5QVVRfREFUQTsKLSAgICB9Ci0gICAgcHNhX3NldF9rZXlfdXNhZ2VfZmxhZ3MoJmF0dHJpYnV0ZXMsIFBTQV9LRVlfVVNBR0VfU0lHTl9IQVNIKTsKLSAgICBwc2Ffc2V0X2tleV9hbGdvcml0aG0oJmF0dHJpYnV0ZXMsIGFsZyk7Ci0gICAgcHNhX3NldF9rZXlfdHlwZSgmYXR0cmlidXRlcywgUFNBX0tFWV9UWVBFX1JTQV9LRVlfUEFJUik7Ci0KLSAgICBzdGF0dXMgPSBwc2FfaW1wb3J0X2tleSgmYXR0cmlidXRlcywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBidWYgKyBNQkVEVExTX1BLX1JTQV9QUlZfREVSX01BWF9CWVRFUyAtIGtleV9sZW4sIGtleV9sZW4sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgJmtleV9pZCk7Ci0gICAgaWYgKHN0YXR1cyAhPSBQU0FfU1VDQ0VTUykgewotICAgICAgICByZXQgPSBQU0FfUEtfVE9fTUJFRFRMU19FUlIoc3RhdHVzKTsKLSAgICAgICAgZ290byBjbGVhbnVwOwotICAgIH0KLSAgICBzdGF0dXMgPSBwc2Ffc2lnbl9oYXNoKGtleV9pZCwgYWxnLCBoYXNoLCBoYXNoX2xlbiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpZywgc2lnX3NpemUsIHNpZ19sZW4pOwotICAgIGlmIChzdGF0dXMgIT0gUFNBX1NVQ0NFU1MpIHsKLSAgICAgICAgcmV0ID0gUFNBX1BLX1JTQV9UT19NQkVEVExTX0VSUihzdGF0dXMpOwotICAgICAgICBnb3RvIGNsZWFudXA7Ci0gICAgfQotCi0gICAgcmV0ID0gMDsKLQotY2xlYW51cDoKLSAgICBtYmVkdGxzX2ZyZWUoYnVmKTsKLSAgICBzdGF0dXMgPSBwc2FfZGVzdHJveV9rZXkoa2V5X2lkKTsKLSAgICBpZiAocmV0ID09IDAgJiYgc3RhdHVzICE9IFBTQV9TVUNDRVNTKSB7Ci0gICAgICAgIHJldCA9IFBTQV9QS19UT19NQkVEVExTX0VSUihzdGF0dXMpOwotICAgIH0KLSAgICByZXR1cm4gcmV0OwotfQotI2VuZGlmIC8qIE1CRURUTFNfVVNFX1BTQV9DUllQVE8gKi8KLQotI2lmIGRlZmluZWQoTUJFRFRMU19VU0VfUFNBX0NSWVBUTykKLXN0YXRpYyBpbnQgcnNhX3NpZ25fd3JhcChtYmVkdGxzX3BrX2NvbnRleHQgKnBrLCBtYmVkdGxzX21kX3R5cGVfdCBtZF9hbGcsCi0gICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdW5zaWduZWQgY2hhciAqaGFzaCwgc2l6ZV90IGhhc2hfbGVuLAotICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGNoYXIgKnNpZywgc2l6ZV90IHNpZ19zaXplLCBzaXplX3QgKnNpZ19sZW4sCi0gICAgICAgICAgICAgICAgICAgICAgICAgaW50ICgqZl9ybmcpKHZvaWQgKiwgdW5zaWduZWQgY2hhciAqLCBzaXplX3QpLCB2b2lkICpwX3JuZykKLXsKLSAgICAoKHZvaWQpIGZfcm5nKTsKLSAgICAoKHZvaWQpIHBfcm5nKTsKLQotICAgIHBzYV9hbGdvcml0aG1fdCBwc2FfbWRfYWxnOwotICAgIHBzYV9tZF9hbGcgPSBtYmVkdGxzX21kX3BzYV9hbGdfZnJvbV90eXBlKG1kX2FsZyk7Ci0gICAgaWYgKHBzYV9tZF9hbGcgPT0gMCkgewotICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfUEtfQkFEX0lOUFVUX0RBVEE7Ci0gICAgfQotICAgIHBzYV9hbGdvcml0aG1fdCBwc2FfYWxnOwotICAgIGlmIChtYmVkdGxzX3JzYV9nZXRfcGFkZGluZ19tb2RlKG1iZWR0bHNfcGtfcnNhKCpwaykpID09IE1CRURUTFNfUlNBX1BLQ1NfVjIxKSB7Ci0gICAgICAgIHBzYV9hbGcgPSBQU0FfQUxHX1JTQV9QU1MocHNhX21kX2FsZyk7Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgcHNhX2FsZyA9IFBTQV9BTEdfUlNBX1BLQ1MxVjE1X1NJR04ocHNhX21kX2FsZyk7Ci0gICAgfQotCi0gICAgcmV0dXJuIG1iZWR0bHNfcGtfcHNhX3JzYV9zaWduX2V4dChwc2FfYWxnLCBway0+cGtfY3R4LCBoYXNoLCBoYXNoX2xlbiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpZywgc2lnX3NpemUsIHNpZ19sZW4pOwotfQotI2Vsc2UgLyogTUJFRFRMU19VU0VfUFNBX0NSWVBUTyAqLwotc3RhdGljIGludCByc2Ffc2lnbl93cmFwKG1iZWR0bHNfcGtfY29udGV4dCAqcGssIG1iZWR0bHNfbWRfdHlwZV90IG1kX2FsZywKLSAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1bnNpZ25lZCBjaGFyICpoYXNoLCBzaXplX3QgaGFzaF9sZW4sCi0gICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgY2hhciAqc2lnLCBzaXplX3Qgc2lnX3NpemUsIHNpemVfdCAqc2lnX2xlbiwKLSAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgKCpmX3JuZykodm9pZCAqLCB1bnNpZ25lZCBjaGFyICosIHNpemVfdCksIHZvaWQgKnBfcm5nKQotewotICAgIG1iZWR0bHNfcnNhX2NvbnRleHQgKnJzYSA9IChtYmVkdGxzX3JzYV9jb250ZXh0ICopIHBrLT5wa19jdHg7Ci0KLSNpZiBTSVpFX01BWCA+IFVJTlRfTUFYCi0gICAgaWYgKG1kX2FsZyA9PSBNQkVEVExTX01EX05PTkUgJiYgVUlOVF9NQVggPCBoYXNoX2xlbikgewotICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfUEtfQkFEX0lOUFVUX0RBVEE7Ci0gICAgfQotI2VuZGlmCi0KLSAgICAqc2lnX2xlbiA9IG1iZWR0bHNfcnNhX2dldF9sZW4ocnNhKTsKLSAgICBpZiAoc2lnX3NpemUgPCAqc2lnX2xlbikgewotICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfUEtfQlVGRkVSX1RPT19TTUFMTDsKLSAgICB9Ci0KLSAgICByZXR1cm4gbWJlZHRsc19yc2FfcGtjczFfc2lnbihyc2EsIGZfcm5nLCBwX3JuZywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZF9hbGcsICh1bnNpZ25lZCBpbnQpIGhhc2hfbGVuLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhc2gsIHNpZyk7Ci19Ci0jZW5kaWYgLyogTUJFRFRMU19VU0VfUFNBX0NSWVBUTyAqLwotCi0jaWYgZGVmaW5lZChNQkVEVExTX1VTRV9QU0FfQ1JZUFRPKQotc3RhdGljIGludCByc2FfZGVjcnlwdF93cmFwKG1iZWR0bHNfcGtfY29udGV4dCAqcGssCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdW5zaWduZWQgY2hhciAqaW5wdXQsIHNpemVfdCBpbGVuLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGNoYXIgKm91dHB1dCwgc2l6ZV90ICpvbGVuLCBzaXplX3Qgb3NpemUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50ICgqZl9ybmcpKHZvaWQgKiwgdW5zaWduZWQgY2hhciAqLCBzaXplX3QpLCB2b2lkICpwX3JuZykKLXsKLSAgICBtYmVkdGxzX3JzYV9jb250ZXh0ICpyc2EgPSAobWJlZHRsc19yc2FfY29udGV4dCAqKSBway0+cGtfY3R4OwotICAgIGludCByZXQgPSBNQkVEVExTX0VSUl9FUlJPUl9DT1JSVVBUSU9OX0RFVEVDVEVEOwotICAgIHBzYV9rZXlfYXR0cmlidXRlc190IGF0dHJpYnV0ZXMgPSBQU0FfS0VZX0FUVFJJQlVURVNfSU5JVDsKLSAgICBtYmVkdGxzX3N2Y19rZXlfaWRfdCBrZXlfaWQgPSBNQkVEVExTX1NWQ19LRVlfSURfSU5JVDsKLSAgICBwc2FfYWxnb3JpdGhtX3QgcHNhX21kX2FsZywgZGVjcnlwdF9hbGc7Ci0gICAgcHNhX3N0YXR1c190IHN0YXR1czsKLSAgICBpbnQga2V5X2xlbjsKLSAgICB1bnNpZ25lZCBjaGFyIGJ1ZltNQkVEVExTX1BLX1JTQV9QUlZfREVSX01BWF9CWVRFU107Ci0gICAgdW5zaWduZWQgY2hhciAqcCA9IGJ1ZiArIHNpemVvZihidWYpOwotCi0gICAgKCh2b2lkKSBmX3JuZyk7Ci0gICAgKCh2b2lkKSBwX3JuZyk7Ci0KLSAgICBpZiAoaWxlbiAhPSBtYmVkdGxzX3JzYV9nZXRfbGVuKHJzYSkpIHsKLSAgICAgICAgcmV0dXJuIE1CRURUTFNfRVJSX1JTQV9CQURfSU5QVVRfREFUQTsKLSAgICB9Ci0KLSAgICBrZXlfbGVuID0gbWJlZHRsc19yc2Ffd3JpdGVfa2V5KHJzYSwgYnVmLCAmcCk7Ci0gICAgaWYgKGtleV9sZW4gPD0gMCkgewotICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfUEtfQkFEX0lOUFVUX0RBVEE7Ci0gICAgfQotCi0gICAgcHNhX3NldF9rZXlfdHlwZSgmYXR0cmlidXRlcywgUFNBX0tFWV9UWVBFX1JTQV9LRVlfUEFJUik7Ci0gICAgcHNhX3NldF9rZXlfdXNhZ2VfZmxhZ3MoJmF0dHJpYnV0ZXMsIFBTQV9LRVlfVVNBR0VfREVDUllQVCk7Ci0gICAgaWYgKG1iZWR0bHNfcnNhX2dldF9wYWRkaW5nX21vZGUocnNhKSA9PSBNQkVEVExTX1JTQV9QS0NTX1YyMSkgewotICAgICAgICBwc2FfbWRfYWxnID0gbWJlZHRsc19tZF9wc2FfYWxnX2Zyb21fdHlwZSgobWJlZHRsc19tZF90eXBlX3QpIG1iZWR0bHNfcnNhX2dldF9tZF9hbGcocnNhKSk7Ci0gICAgICAgIGRlY3J5cHRfYWxnID0gUFNBX0FMR19SU0FfT0FFUChwc2FfbWRfYWxnKTsKLSAgICB9IGVsc2UgewotICAgICAgICBkZWNyeXB0X2FsZyA9IFBTQV9BTEdfUlNBX1BLQ1MxVjE1X0NSWVBUOwotICAgIH0KLSAgICBwc2Ffc2V0X2tleV9hbGdvcml0aG0oJmF0dHJpYnV0ZXMsIGRlY3J5cHRfYWxnKTsKLQotICAgIHN0YXR1cyA9IHBzYV9pbXBvcnRfa2V5KCZhdHRyaWJ1dGVzLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ1ZiArIHNpemVvZihidWYpIC0ga2V5X2xlbiwga2V5X2xlbiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAma2V5X2lkKTsKLSAgICBpZiAoc3RhdHVzICE9IFBTQV9TVUNDRVNTKSB7Ci0gICAgICAgIHJldCA9IFBTQV9QS19UT19NQkVEVExTX0VSUihzdGF0dXMpOwotICAgICAgICBnb3RvIGNsZWFudXA7Ci0gICAgfQotCi0gICAgc3RhdHVzID0gcHNhX2FzeW1tZXRyaWNfZGVjcnlwdChrZXlfaWQsIGRlY3J5cHRfYWxnLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5wdXQsIGlsZW4sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOVUxMLCAwLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3V0cHV0LCBvc2l6ZSwgb2xlbik7Ci0gICAgaWYgKHN0YXR1cyAhPSBQU0FfU1VDQ0VTUykgewotICAgICAgICByZXQgPSBQU0FfUEtfUlNBX1RPX01CRURUTFNfRVJSKHN0YXR1cyk7Ci0gICAgICAgIGdvdG8gY2xlYW51cDsKLSAgICB9Ci0KLSAgICByZXQgPSAwOwotCi1jbGVhbnVwOgotICAgIG1iZWR0bHNfcGxhdGZvcm1femVyb2l6ZShidWYsIHNpemVvZihidWYpKTsKLSAgICBzdGF0dXMgPSBwc2FfZGVzdHJveV9rZXkoa2V5X2lkKTsKLSAgICBpZiAocmV0ID09IDAgJiYgc3RhdHVzICE9IFBTQV9TVUNDRVNTKSB7Ci0gICAgICAgIHJldCA9IFBTQV9QS19UT19NQkVEVExTX0VSUihzdGF0dXMpOwotICAgIH0KLQotICAgIHJldHVybiByZXQ7Ci19Ci0jZWxzZSAvKiBNQkVEVExTX1VTRV9QU0FfQ1JZUFRPICovCi1zdGF0aWMgaW50IHJzYV9kZWNyeXB0X3dyYXAobWJlZHRsc19wa19jb250ZXh0ICpwaywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1bnNpZ25lZCBjaGFyICppbnB1dCwgc2l6ZV90IGlsZW4sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgY2hhciAqb3V0cHV0LCBzaXplX3QgKm9sZW4sIHNpemVfdCBvc2l6ZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgKCpmX3JuZykodm9pZCAqLCB1bnNpZ25lZCBjaGFyICosIHNpemVfdCksIHZvaWQgKnBfcm5nKQotewotICAgIG1iZWR0bHNfcnNhX2NvbnRleHQgKnJzYSA9IChtYmVkdGxzX3JzYV9jb250ZXh0ICopIHBrLT5wa19jdHg7Ci0KLSAgICBpZiAoaWxlbiAhPSBtYmVkdGxzX3JzYV9nZXRfbGVuKHJzYSkpIHsKLSAgICAgICAgcmV0dXJuIE1CRURUTFNfRVJSX1JTQV9CQURfSU5QVVRfREFUQTsKLSAgICB9Ci0KLSAgICByZXR1cm4gbWJlZHRsc19yc2FfcGtjczFfZGVjcnlwdChyc2EsIGZfcm5nLCBwX3JuZywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbGVuLCBpbnB1dCwgb3V0cHV0LCBvc2l6ZSk7Ci19Ci0jZW5kaWYgLyogTUJFRFRMU19VU0VfUFNBX0NSWVBUTyAqLwotCi0jaWYgZGVmaW5lZChNQkVEVExTX1VTRV9QU0FfQ1JZUFRPKQotc3RhdGljIGludCByc2FfZW5jcnlwdF93cmFwKG1iZWR0bHNfcGtfY29udGV4dCAqcGssCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdW5zaWduZWQgY2hhciAqaW5wdXQsIHNpemVfdCBpbGVuLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGNoYXIgKm91dHB1dCwgc2l6ZV90ICpvbGVuLCBzaXplX3Qgb3NpemUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50ICgqZl9ybmcpKHZvaWQgKiwgdW5zaWduZWQgY2hhciAqLCBzaXplX3QpLCB2b2lkICpwX3JuZykKLXsKLSAgICBtYmVkdGxzX3JzYV9jb250ZXh0ICpyc2EgPSAobWJlZHRsc19yc2FfY29udGV4dCAqKSBway0+cGtfY3R4OwotICAgIGludCByZXQgPSBNQkVEVExTX0VSUl9FUlJPUl9DT1JSVVBUSU9OX0RFVEVDVEVEOwotICAgIHBzYV9rZXlfYXR0cmlidXRlc190IGF0dHJpYnV0ZXMgPSBQU0FfS0VZX0FUVFJJQlVURVNfSU5JVDsKLSAgICBtYmVkdGxzX3N2Y19rZXlfaWRfdCBrZXlfaWQgPSBNQkVEVExTX1NWQ19LRVlfSURfSU5JVDsKLSAgICBwc2FfYWxnb3JpdGhtX3QgcHNhX21kX2FsZywgcHNhX2VuY3J5cHRfYWxnOwotICAgIHBzYV9zdGF0dXNfdCBzdGF0dXM7Ci0gICAgaW50IGtleV9sZW47Ci0gICAgdW5zaWduZWQgY2hhciBidWZbTUJFRFRMU19QS19SU0FfUFVCX0RFUl9NQVhfQllURVNdOwotICAgIHVuc2lnbmVkIGNoYXIgKnAgPSBidWYgKyBzaXplb2YoYnVmKTsKLQotICAgICgodm9pZCkgZl9ybmcpOwotICAgICgodm9pZCkgcF9ybmcpOwotCi0gICAgaWYgKG1iZWR0bHNfcnNhX2dldF9sZW4ocnNhKSA+IG9zaXplKSB7Ci0gICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9SU0FfT1VUUFVUX1RPT19MQVJHRTsKLSAgICB9Ci0KLSAgICBrZXlfbGVuID0gbWJlZHRsc19yc2Ffd3JpdGVfcHVia2V5KHJzYSwgYnVmLCAmcCk7Ci0gICAgaWYgKGtleV9sZW4gPD0gMCkgewotICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfUEtfQkFEX0lOUFVUX0RBVEE7Ci0gICAgfQotCi0gICAgcHNhX3NldF9rZXlfdXNhZ2VfZmxhZ3MoJmF0dHJpYnV0ZXMsIFBTQV9LRVlfVVNBR0VfRU5DUllQVCk7Ci0gICAgaWYgKG1iZWR0bHNfcnNhX2dldF9wYWRkaW5nX21vZGUocnNhKSA9PSBNQkVEVExTX1JTQV9QS0NTX1YyMSkgewotICAgICAgICBwc2FfbWRfYWxnID0gbWJlZHRsc19tZF9wc2FfYWxnX2Zyb21fdHlwZSgobWJlZHRsc19tZF90eXBlX3QpIG1iZWR0bHNfcnNhX2dldF9tZF9hbGcocnNhKSk7Ci0gICAgICAgIHBzYV9lbmNyeXB0X2FsZyA9IFBTQV9BTEdfUlNBX09BRVAocHNhX21kX2FsZyk7Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgcHNhX2VuY3J5cHRfYWxnID0gUFNBX0FMR19SU0FfUEtDUzFWMTVfQ1JZUFQ7Ci0gICAgfQotICAgIHBzYV9zZXRfa2V5X2FsZ29yaXRobSgmYXR0cmlidXRlcywgcHNhX2VuY3J5cHRfYWxnKTsKLSAgICBwc2Ffc2V0X2tleV90eXBlKCZhdHRyaWJ1dGVzLCBQU0FfS0VZX1RZUEVfUlNBX1BVQkxJQ19LRVkpOwotCi0gICAgc3RhdHVzID0gcHNhX2ltcG9ydF9rZXkoJmF0dHJpYnV0ZXMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgYnVmICsgc2l6ZW9mKGJ1ZikgLSBrZXlfbGVuLCBrZXlfbGVuLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICZrZXlfaWQpOwotICAgIGlmIChzdGF0dXMgIT0gUFNBX1NVQ0NFU1MpIHsKLSAgICAgICAgcmV0ID0gUFNBX1BLX1RPX01CRURUTFNfRVJSKHN0YXR1cyk7Ci0gICAgICAgIGdvdG8gY2xlYW51cDsKLSAgICB9Ci0KLSAgICBzdGF0dXMgPSBwc2FfYXN5bW1ldHJpY19lbmNyeXB0KGtleV9pZCwgcHNhX2VuY3J5cHRfYWxnLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5wdXQsIGlsZW4sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOVUxMLCAwLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3V0cHV0LCBvc2l6ZSwgb2xlbik7Ci0gICAgaWYgKHN0YXR1cyAhPSBQU0FfU1VDQ0VTUykgewotICAgICAgICByZXQgPSBQU0FfUEtfUlNBX1RPX01CRURUTFNfRVJSKHN0YXR1cyk7Ci0gICAgICAgIGdvdG8gY2xlYW51cDsKLSAgICB9Ci0KLSAgICByZXQgPSAwOwotCi1jbGVhbnVwOgotICAgIHN0YXR1cyA9IHBzYV9kZXN0cm95X2tleShrZXlfaWQpOwotICAgIGlmIChyZXQgPT0gMCAmJiBzdGF0dXMgIT0gUFNBX1NVQ0NFU1MpIHsKLSAgICAgICAgcmV0ID0gUFNBX1BLX1RPX01CRURUTFNfRVJSKHN0YXR1cyk7Ci0gICAgfQotCi0gICAgcmV0dXJuIHJldDsKLX0KLSNlbHNlIC8qIE1CRURUTFNfVVNFX1BTQV9DUllQVE8gKi8KLXN0YXRpYyBpbnQgcnNhX2VuY3J5cHRfd3JhcChtYmVkdGxzX3BrX2NvbnRleHQgKnBrLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgKmlucHV0LCBzaXplX3QgaWxlbiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBjaGFyICpvdXRwdXQsIHNpemVfdCAqb2xlbiwgc2l6ZV90IG9zaXplLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCAoKmZfcm5nKSh2b2lkICosIHVuc2lnbmVkIGNoYXIgKiwgc2l6ZV90KSwgdm9pZCAqcF9ybmcpCi17Ci0gICAgbWJlZHRsc19yc2FfY29udGV4dCAqcnNhID0gKG1iZWR0bHNfcnNhX2NvbnRleHQgKikgcGstPnBrX2N0eDsKLSAgICAqb2xlbiA9IG1iZWR0bHNfcnNhX2dldF9sZW4ocnNhKTsKLQotICAgIGlmICgqb2xlbiA+IG9zaXplKSB7Ci0gICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9SU0FfT1VUUFVUX1RPT19MQVJHRTsKLSAgICB9Ci0KLSAgICByZXR1cm4gbWJlZHRsc19yc2FfcGtjczFfZW5jcnlwdChyc2EsIGZfcm5nLCBwX3JuZywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbGVuLCBpbnB1dCwgb3V0cHV0KTsKLX0KLSNlbmRpZiAvKiBNQkVEVExTX1VTRV9QU0FfQ1JZUFRPICovCi0KLXN0YXRpYyBpbnQgcnNhX2NoZWNrX3BhaXJfd3JhcChtYmVkdGxzX3BrX2NvbnRleHQgKnB1YiwgbWJlZHRsc19wa19jb250ZXh0ICpwcnYsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50ICgqZl9ybmcpKHZvaWQgKiwgdW5zaWduZWQgY2hhciAqLCBzaXplX3QpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZvaWQgKnBfcm5nKQotewotICAgICh2b2lkKSBmX3JuZzsKLSAgICAodm9pZCkgcF9ybmc7Ci0gICAgcmV0dXJuIG1iZWR0bHNfcnNhX2NoZWNrX3B1Yl9wcml2KChjb25zdCBtYmVkdGxzX3JzYV9jb250ZXh0ICopIHB1Yi0+cGtfY3R4LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY29uc3QgbWJlZHRsc19yc2FfY29udGV4dCAqKSBwcnYtPnBrX2N0eCk7Ci19Ci0KLXN0YXRpYyB2b2lkICpyc2FfYWxsb2Nfd3JhcCh2b2lkKQotewotICAgIHZvaWQgKmN0eCA9IG1iZWR0bHNfY2FsbG9jKDEsIHNpemVvZihtYmVkdGxzX3JzYV9jb250ZXh0KSk7Ci0KLSAgICBpZiAoY3R4ICE9IE5VTEwpIHsKLSAgICAgICAgbWJlZHRsc19yc2FfaW5pdCgobWJlZHRsc19yc2FfY29udGV4dCAqKSBjdHgpOwotICAgIH0KLQotICAgIHJldHVybiBjdHg7Ci19Ci0KLXN0YXRpYyB2b2lkIHJzYV9mcmVlX3dyYXAodm9pZCAqY3R4KQotewotICAgIG1iZWR0bHNfcnNhX2ZyZWUoKG1iZWR0bHNfcnNhX2NvbnRleHQgKikgY3R4KTsKLSAgICBtYmVkdGxzX2ZyZWUoY3R4KTsKLX0KLQotc3RhdGljIHZvaWQgcnNhX2RlYnVnKG1iZWR0bHNfcGtfY29udGV4dCAqcGssIG1iZWR0bHNfcGtfZGVidWdfaXRlbSAqaXRlbXMpCi17Ci0jaWYgZGVmaW5lZChNQkVEVExTX1JTQV9BTFQpCi0gICAgLyogTm90IHN1cHBvcnRlZCAqLwotICAgICh2b2lkKSBwazsKLSAgICAodm9pZCkgaXRlbXM7Ci0jZWxzZQotICAgIG1iZWR0bHNfcnNhX2NvbnRleHQgKnJzYSA9IChtYmVkdGxzX3JzYV9jb250ZXh0ICopIHBrLT5wa19jdHg7Ci0KLSAgICBpdGVtcy0+dHlwZSA9IE1CRURUTFNfUEtfREVCVUdfTVBJOwotICAgIGl0ZW1zLT5uYW1lID0gInJzYS5OIjsKLSAgICBpdGVtcy0+dmFsdWUgPSAmKHJzYS0+Tik7Ci0KLSAgICBpdGVtcysrOwotCi0gICAgaXRlbXMtPnR5cGUgPSBNQkVEVExTX1BLX0RFQlVHX01QSTsKLSAgICBpdGVtcy0+bmFtZSA9ICJyc2EuRSI7Ci0gICAgaXRlbXMtPnZhbHVlID0gJihyc2EtPkUpOwotI2VuZGlmCi19Ci0KLWNvbnN0IG1iZWR0bHNfcGtfaW5mb190IG1iZWR0bHNfcnNhX2luZm8gPSB7Ci0gICAgLnR5cGUgPSBNQkVEVExTX1BLX1JTQSwKLSAgICAubmFtZSA9ICJSU0EiLAotICAgIC5nZXRfYml0bGVuID0gcnNhX2dldF9iaXRsZW4sCi0gICAgLmNhbl9kbyA9IHJzYV9jYW5fZG8sCi0gICAgLnZlcmlmeV9mdW5jID0gcnNhX3ZlcmlmeV93cmFwLAotICAgIC5zaWduX2Z1bmMgPSByc2Ffc2lnbl93cmFwLAotI2lmIGRlZmluZWQoTUJFRFRMU19FQ0RTQV9DKSAmJiBkZWZpbmVkKE1CRURUTFNfRUNQX1JFU1RBUlRBQkxFKQotICAgIC52ZXJpZnlfcnNfZnVuYyA9IE5VTEwsCi0gICAgLnNpZ25fcnNfZnVuYyA9IE5VTEwsCi0gICAgLnJzX2FsbG9jX2Z1bmMgPSBOVUxMLAotICAgIC5yc19mcmVlX2Z1bmMgPSBOVUxMLAotI2VuZGlmIC8qIE1CRURUTFNfRUNEU0FfQyAmJiBNQkVEVExTX0VDUF9SRVNUQVJUQUJMRSAqLwotICAgIC5kZWNyeXB0X2Z1bmMgPSByc2FfZGVjcnlwdF93cmFwLAotICAgIC5lbmNyeXB0X2Z1bmMgPSByc2FfZW5jcnlwdF93cmFwLAotICAgIC5jaGVja19wYWlyX2Z1bmMgPSByc2FfY2hlY2tfcGFpcl93cmFwLAotICAgIC5jdHhfYWxsb2NfZnVuYyA9IHJzYV9hbGxvY193cmFwLAotICAgIC5jdHhfZnJlZV9mdW5jID0gcnNhX2ZyZWVfd3JhcCwKLSAgICAuZGVidWdfZnVuYyA9IHJzYV9kZWJ1ZywKLX07Ci0jZW5kaWYgLyogTUJFRFRMU19SU0FfQyAqLwotCi0jaWYgZGVmaW5lZChNQkVEVExTX1BLX0hBVkVfRUNDX0tFWVMpCi0vKgotICogR2VuZXJpYyBFQyBrZXkKLSAqLwotc3RhdGljIGludCBlY2tleV9jYW5fZG8obWJlZHRsc19wa190eXBlX3QgdHlwZSkKLXsKLSAgICByZXR1cm4gdHlwZSA9PSBNQkVEVExTX1BLX0VDS0VZIHx8Ci0gICAgICAgICAgIHR5cGUgPT0gTUJFRFRMU19QS19FQ0tFWV9ESCB8fAotICAgICAgICAgICB0eXBlID09IE1CRURUTFNfUEtfRUNEU0E7Ci19Ci0KLXN0YXRpYyBzaXplX3QgZWNrZXlfZ2V0X2JpdGxlbihtYmVkdGxzX3BrX2NvbnRleHQgKnBrKQotewotI2lmIGRlZmluZWQoTUJFRFRMU19QS19VU0VfUFNBX0VDX0RBVEEpCi0gICAgcmV0dXJuIHBrLT5lY19iaXRzOwotI2Vsc2UgLyogTUJFRFRMU19QS19VU0VfUFNBX0VDX0RBVEEgKi8KLSAgICBtYmVkdGxzX2VjcF9rZXlwYWlyICplY3AgPSAobWJlZHRsc19lY3Bfa2V5cGFpciAqKSBway0+cGtfY3R4OwotICAgIHJldHVybiBlY3AtPmdycC5wYml0czsKLSNlbmRpZiAvKiBNQkVEVExTX1BLX1VTRV9QU0FfRUNfREFUQSAqLwotfQotCi0jaWYgZGVmaW5lZChNQkVEVExTX1BLX0NBTl9FQ0RTQV9WRVJJRlkpCi0jaWYgZGVmaW5lZChNQkVEVExTX1VTRV9QU0FfQ1JZUFRPKQotLyogQ29tbW9uIGhlbHBlciBmb3IgRUNEU0EgdmVyaWZ5IHVzaW5nIFBTQSBmdW5jdGlvbnMuICovCi1zdGF0aWMgaW50IGVjZHNhX3ZlcmlmeV9wc2EodW5zaWduZWQgY2hhciAqa2V5LCBzaXplX3Qga2V5X2xlbiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBwc2FfZWNjX2ZhbWlseV90IGN1cnZlLCBzaXplX3QgY3VydmVfYml0cywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1bnNpZ25lZCBjaGFyICpoYXNoLCBzaXplX3QgaGFzaF9sZW4sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdW5zaWduZWQgY2hhciAqc2lnLCBzaXplX3Qgc2lnX2xlbikKLXsKLSAgICBpbnQgcmV0ID0gTUJFRFRMU19FUlJfRVJST1JfQ09SUlVQVElPTl9ERVRFQ1RFRDsKLSAgICBwc2Ffa2V5X2F0dHJpYnV0ZXNfdCBhdHRyaWJ1dGVzID0gUFNBX0tFWV9BVFRSSUJVVEVTX0lOSVQ7Ci0gICAgbWJlZHRsc19zdmNfa2V5X2lkX3Qga2V5X2lkID0gTUJFRFRMU19TVkNfS0VZX0lEX0lOSVQ7Ci0gICAgcHNhX2FsZ29yaXRobV90IHBzYV9zaWdfbWQgPSBQU0FfQUxHX0VDRFNBX0FOWTsKLSAgICBzaXplX3Qgc2lnbmF0dXJlX2xlbiA9IFBTQV9FQ0RTQV9TSUdOQVRVUkVfU0laRShjdXJ2ZV9iaXRzKTsKLSAgICBzaXplX3QgY29udmVydGVkX3NpZ19sZW47Ci0gICAgdW5zaWduZWQgY2hhciBleHRyYWN0ZWRfc2lnW1BTQV9WRU5ET1JfRUNEU0FfU0lHTkFUVVJFX01BWF9TSVpFXTsKLSAgICB1bnNpZ25lZCBjaGFyICpwOwotICAgIHBzYV9zdGF0dXNfdCBzdGF0dXM7Ci0KLSAgICBpZiAoY3VydmUgPT0gMCkgewotICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfUEtfQkFEX0lOUFVUX0RBVEE7Ci0gICAgfQotCi0gICAgcHNhX3NldF9rZXlfdHlwZSgmYXR0cmlidXRlcywgUFNBX0tFWV9UWVBFX0VDQ19QVUJMSUNfS0VZKGN1cnZlKSk7Ci0gICAgcHNhX3NldF9rZXlfdXNhZ2VfZmxhZ3MoJmF0dHJpYnV0ZXMsIFBTQV9LRVlfVVNBR0VfVkVSSUZZX0hBU0gpOwotICAgIHBzYV9zZXRfa2V5X2FsZ29yaXRobSgmYXR0cmlidXRlcywgcHNhX3NpZ19tZCk7Ci0KLSAgICBzdGF0dXMgPSBwc2FfaW1wb3J0X2tleSgmYXR0cmlidXRlcywga2V5LCBrZXlfbGVuLCAma2V5X2lkKTsKLSAgICBpZiAoc3RhdHVzICE9IFBTQV9TVUNDRVNTKSB7Ci0gICAgICAgIHJldCA9IFBTQV9QS19UT19NQkVEVExTX0VSUihzdGF0dXMpOwotICAgICAgICBnb3RvIGNsZWFudXA7Ci0gICAgfQotCi0gICAgaWYgKHNpZ25hdHVyZV9sZW4gPiBzaXplb2YoZXh0cmFjdGVkX3NpZykpIHsKLSAgICAgICAgcmV0ID0gTUJFRFRMU19FUlJfUEtfQkFEX0lOUFVUX0RBVEE7Ci0gICAgICAgIGdvdG8gY2xlYW51cDsKLSAgICB9Ci0KLSAgICBwID0gKHVuc2lnbmVkIGNoYXIgKikgc2lnOwotICAgIHJldCA9IG1iZWR0bHNfZWNkc2FfZGVyX3RvX3JhdyhjdXJ2ZV9iaXRzLCBwLCBzaWdfbGVuLCBleHRyYWN0ZWRfc2lnLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplb2YoZXh0cmFjdGVkX3NpZyksICZjb252ZXJ0ZWRfc2lnX2xlbik7Ci0gICAgaWYgKHJldCAhPSAwKSB7Ci0gICAgICAgIGdvdG8gY2xlYW51cDsKLSAgICB9Ci0KLSAgICBpZiAoY29udmVydGVkX3NpZ19sZW4gIT0gc2lnbmF0dXJlX2xlbikgewotICAgICAgICByZXQgPSBNQkVEVExTX0VSUl9QS19CQURfSU5QVVRfREFUQTsKLSAgICAgICAgZ290byBjbGVhbnVwOwotICAgIH0KLQotICAgIHN0YXR1cyA9IHBzYV92ZXJpZnlfaGFzaChrZXlfaWQsIHBzYV9zaWdfbWQsIGhhc2gsIGhhc2hfbGVuLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICBleHRyYWN0ZWRfc2lnLCBzaWduYXR1cmVfbGVuKTsKLSAgICBpZiAoc3RhdHVzICE9IFBTQV9TVUNDRVNTKSB7Ci0gICAgICAgIHJldCA9IFBTQV9QS19FQ0RTQV9UT19NQkVEVExTX0VSUihzdGF0dXMpOwotICAgICAgICBnb3RvIGNsZWFudXA7Ci0gICAgfQotCi0gICAgcmV0ID0gMDsKLQotY2xlYW51cDoKLSAgICBzdGF0dXMgPSBwc2FfZGVzdHJveV9rZXkoa2V5X2lkKTsKLSAgICBpZiAocmV0ID09IDAgJiYgc3RhdHVzICE9IFBTQV9TVUNDRVNTKSB7Ci0gICAgICAgIHJldCA9IFBTQV9QS19UT19NQkVEVExTX0VSUihzdGF0dXMpOwotICAgIH0KLQotICAgIHJldHVybiByZXQ7Ci19Ci0KLXN0YXRpYyBpbnQgZWNkc2Ffb3BhcXVlX3ZlcmlmeV93cmFwKG1iZWR0bHNfcGtfY29udGV4dCAqcGssCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYmVkdGxzX21kX3R5cGVfdCBtZF9hbGcsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1bnNpZ25lZCBjaGFyICpoYXNoLCBzaXplX3QgaGFzaF9sZW4sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1bnNpZ25lZCBjaGFyICpzaWcsIHNpemVfdCBzaWdfbGVuKQotewotICAgICh2b2lkKSBtZF9hbGc7Ci0gICAgdW5zaWduZWQgY2hhciBrZXlbTUJFRFRMU19QS19NQVhfRUNfUFVCS0VZX1JBV19MRU5dOwotICAgIHNpemVfdCBrZXlfbGVuOwotICAgIHBzYV9rZXlfYXR0cmlidXRlc190IGtleV9hdHRyID0gUFNBX0tFWV9BVFRSSUJVVEVTX0lOSVQ7Ci0gICAgcHNhX2VjY19mYW1pbHlfdCBjdXJ2ZTsKLSAgICBzaXplX3QgY3VydmVfYml0czsKLSAgICBwc2Ffc3RhdHVzX3Qgc3RhdHVzOwotCi0gICAgc3RhdHVzID0gcHNhX2dldF9rZXlfYXR0cmlidXRlcyhway0+cHJpdl9pZCwgJmtleV9hdHRyKTsKLSAgICBpZiAoc3RhdHVzICE9IFBTQV9TVUNDRVNTKSB7Ci0gICAgICAgIHJldHVybiBQU0FfUEtfRUNEU0FfVE9fTUJFRFRMU19FUlIoc3RhdHVzKTsKLSAgICB9Ci0gICAgY3VydmUgPSBQU0FfS0VZX1RZUEVfRUNDX0dFVF9GQU1JTFkocHNhX2dldF9rZXlfdHlwZSgma2V5X2F0dHIpKTsKLSAgICBjdXJ2ZV9iaXRzID0gcHNhX2dldF9rZXlfYml0cygma2V5X2F0dHIpOwotICAgIHBzYV9yZXNldF9rZXlfYXR0cmlidXRlcygma2V5X2F0dHIpOwotCi0gICAgc3RhdHVzID0gcHNhX2V4cG9ydF9wdWJsaWNfa2V5KHBrLT5wcml2X2lkLCBrZXksIHNpemVvZihrZXkpLCAma2V5X2xlbik7Ci0gICAgaWYgKHN0YXR1cyAhPSBQU0FfU1VDQ0VTUykgewotICAgICAgICByZXR1cm4gUFNBX1BLX0VDRFNBX1RPX01CRURUTFNfRVJSKHN0YXR1cyk7Ci0gICAgfQotCi0gICAgcmV0dXJuIGVjZHNhX3ZlcmlmeV9wc2Eoa2V5LCBrZXlfbGVuLCBjdXJ2ZSwgY3VydmVfYml0cywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYXNoLCBoYXNoX2xlbiwgc2lnLCBzaWdfbGVuKTsKLX0KLQotI2lmIGRlZmluZWQoTUJFRFRMU19QS19VU0VfUFNBX0VDX0RBVEEpCi1zdGF0aWMgaW50IGVjZHNhX3ZlcmlmeV93cmFwKG1iZWR0bHNfcGtfY29udGV4dCAqcGssCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1iZWR0bHNfbWRfdHlwZV90IG1kX2FsZywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdW5zaWduZWQgY2hhciAqaGFzaCwgc2l6ZV90IGhhc2hfbGVuLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1bnNpZ25lZCBjaGFyICpzaWcsIHNpemVfdCBzaWdfbGVuKQotewotICAgICh2b2lkKSBtZF9hbGc7Ci0gICAgcHNhX2VjY19mYW1pbHlfdCBjdXJ2ZSA9IHBrLT5lY19mYW1pbHk7Ci0gICAgc2l6ZV90IGN1cnZlX2JpdHMgPSBway0+ZWNfYml0czsKLQotICAgIHJldHVybiBlY2RzYV92ZXJpZnlfcHNhKHBrLT5wdWJfcmF3LCBway0+cHViX3Jhd19sZW4sIGN1cnZlLCBjdXJ2ZV9iaXRzLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhc2gsIGhhc2hfbGVuLCBzaWcsIHNpZ19sZW4pOwotfQotI2Vsc2UgLyogTUJFRFRMU19QS19VU0VfUFNBX0VDX0RBVEEgKi8KLXN0YXRpYyBpbnQgZWNkc2FfdmVyaWZ5X3dyYXAobWJlZHRsc19wa19jb250ZXh0ICpwaywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWJlZHRsc19tZF90eXBlX3QgbWRfYWxnLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1bnNpZ25lZCBjaGFyICpoYXNoLCBzaXplX3QgaGFzaF9sZW4sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgKnNpZywgc2l6ZV90IHNpZ19sZW4pCi17Ci0gICAgKHZvaWQpIG1kX2FsZzsKLSAgICBpbnQgcmV0ID0gTUJFRFRMU19FUlJfRVJST1JfQ09SUlVQVElPTl9ERVRFQ1RFRDsKLSAgICBtYmVkdGxzX2VjcF9rZXlwYWlyICpjdHggPSBway0+cGtfY3R4OwotICAgIHVuc2lnbmVkIGNoYXIga2V5W01CRURUTFNfUFNBX01BWF9FQ19QVUJLRVlfTEVOR1RIXTsKLSAgICBzaXplX3Qga2V5X2xlbjsKLSAgICBzaXplX3QgY3VydmVfYml0czsKLSAgICBwc2FfZWNjX2ZhbWlseV90IGN1cnZlID0gbWJlZHRsc19lY2NfZ3JvdXBfdG9fcHNhKGN0eC0+Z3JwLmlkLCAmY3VydmVfYml0cyk7Ci0KLSAgICByZXQgPSBtYmVkdGxzX2VjcF9wb2ludF93cml0ZV9iaW5hcnkoJmN0eC0+Z3JwLCAmY3R4LT5RLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNQkVEVExTX0VDUF9QRl9VTkNPTVBSRVNTRUQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZrZXlfbGVuLCBrZXksIHNpemVvZihrZXkpKTsKLSAgICBpZiAocmV0ICE9IDApIHsKLSAgICAgICAgcmV0dXJuIHJldDsKLSAgICB9Ci0KLSAgICByZXR1cm4gZWNkc2FfdmVyaWZ5X3BzYShrZXksIGtleV9sZW4sIGN1cnZlLCBjdXJ2ZV9iaXRzLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhc2gsIGhhc2hfbGVuLCBzaWcsIHNpZ19sZW4pOwotfQotI2VuZGlmIC8qIE1CRURUTFNfUEtfVVNFX1BTQV9FQ19EQVRBICovCi0jZWxzZSAvKiBNQkVEVExTX1VTRV9QU0FfQ1JZUFRPICovCi1zdGF0aWMgaW50IGVjZHNhX3ZlcmlmeV93cmFwKG1iZWR0bHNfcGtfY29udGV4dCAqcGssIG1iZWR0bHNfbWRfdHlwZV90IG1kX2FsZywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdW5zaWduZWQgY2hhciAqaGFzaCwgc2l6ZV90IGhhc2hfbGVuLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1bnNpZ25lZCBjaGFyICpzaWcsIHNpemVfdCBzaWdfbGVuKQotewotICAgIGludCByZXQgPSBNQkVEVExTX0VSUl9FUlJPUl9DT1JSVVBUSU9OX0RFVEVDVEVEOwotICAgICgodm9pZCkgbWRfYWxnKTsKLQotICAgIHJldCA9IG1iZWR0bHNfZWNkc2FfcmVhZF9zaWduYXR1cmUoKG1iZWR0bHNfZWNkc2FfY29udGV4dCAqKSBway0+cGtfY3R4LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFzaCwgaGFzaF9sZW4sIHNpZywgc2lnX2xlbik7Ci0KLSAgICBpZiAocmV0ID09IE1CRURUTFNfRVJSX0VDUF9TSUdfTEVOX01JU01BVENIKSB7Ci0gICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9QS19TSUdfTEVOX01JU01BVENIOwotICAgIH0KLQotICAgIHJldHVybiByZXQ7Ci19Ci0jZW5kaWYgLyogTUJFRFRMU19VU0VfUFNBX0NSWVBUTyAqLwotI2VuZGlmIC8qIE1CRURUTFNfUEtfQ0FOX0VDRFNBX1ZFUklGWSAqLwotCi0jaWYgZGVmaW5lZChNQkVEVExTX1BLX0NBTl9FQ0RTQV9TSUdOKQotI2lmIGRlZmluZWQoTUJFRFRMU19VU0VfUFNBX0NSWVBUTykKLS8qIENvbW1vbiBoZWxwZXIgZm9yIEVDRFNBIHNpZ24gdXNpbmcgUFNBIGZ1bmN0aW9ucy4KLSAqIEluc3RlYWQgb2YgZXh0cmFjdGluZyBrZXkncyBwcm9wZXJ0aWVzIGluIG9yZGVyIHRvIGNoZWNrIHdoaWNoIGtpbmQgb2YgRUNEU0EKLSAqIHNpZ25hdHVyZSBpdCBzdXBwb3J0cywgd2UgdHJ5IGJvdGggZGV0ZXJtaW5pc3RpYyBhbmQgbm9uLWRldGVybWluaXN0aWMuCi0gKi8KLXN0YXRpYyBpbnQgZWNkc2Ffc2lnbl9wc2EobWJlZHRsc19zdmNfa2V5X2lkX3Qga2V5X2lkLCBtYmVkdGxzX21kX3R5cGVfdCBtZF9hbGcsCi0gICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgKmhhc2gsIHNpemVfdCBoYXNoX2xlbiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgY2hhciAqc2lnLCBzaXplX3Qgc2lnX3NpemUsIHNpemVfdCAqc2lnX2xlbikKLXsKLSAgICBpbnQgcmV0ID0gTUJFRFRMU19FUlJfRVJST1JfQ09SUlVQVElPTl9ERVRFQ1RFRDsKLSAgICBwc2Ffc3RhdHVzX3Qgc3RhdHVzOwotICAgIHBzYV9rZXlfYXR0cmlidXRlc190IGtleV9hdHRyID0gUFNBX0tFWV9BVFRSSUJVVEVTX0lOSVQ7Ci0gICAgc2l6ZV90IGtleV9iaXRzID0gMDsKLQotICAgIHN0YXR1cyA9IHBzYV9nZXRfa2V5X2F0dHJpYnV0ZXMoa2V5X2lkLCAma2V5X2F0dHIpOwotICAgIGlmIChzdGF0dXMgIT0gUFNBX1NVQ0NFU1MpIHsKLSAgICAgICAgcmV0dXJuIFBTQV9QS19FQ0RTQV9UT19NQkVEVExTX0VSUihzdGF0dXMpOwotICAgIH0KLSAgICBrZXlfYml0cyA9IHBzYV9nZXRfa2V5X2JpdHMoJmtleV9hdHRyKTsKLSAgICBwc2FfcmVzZXRfa2V5X2F0dHJpYnV0ZXMoJmtleV9hdHRyKTsKLQotICAgIHN0YXR1cyA9IHBzYV9zaWduX2hhc2goa2V5X2lkLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgUFNBX0FMR19ERVRFUk1JTklTVElDX0VDRFNBKG1iZWR0bHNfbWRfcHNhX2FsZ19mcm9tX3R5cGUobWRfYWxnKSksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICBoYXNoLCBoYXNoX2xlbiwgc2lnLCBzaWdfc2l6ZSwgc2lnX2xlbik7Ci0gICAgaWYgKHN0YXR1cyA9PSBQU0FfU1VDQ0VTUykgewotICAgICAgICBnb3RvIGRvbmU7Ci0gICAgfSBlbHNlIGlmIChzdGF0dXMgIT0gUFNBX0VSUk9SX05PVF9QRVJNSVRURUQpIHsKLSAgICAgICAgcmV0dXJuIFBTQV9QS19FQ0RTQV9UT19NQkVEVExTX0VSUihzdGF0dXMpOwotICAgIH0KLQotICAgIHN0YXR1cyA9IHBzYV9zaWduX2hhc2goa2V5X2lkLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgUFNBX0FMR19FQ0RTQShtYmVkdGxzX21kX3BzYV9hbGdfZnJvbV90eXBlKG1kX2FsZykpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFzaCwgaGFzaF9sZW4sIHNpZywgc2lnX3NpemUsIHNpZ19sZW4pOwotICAgIGlmIChzdGF0dXMgIT0gUFNBX1NVQ0NFU1MpIHsKLSAgICAgICAgcmV0dXJuIFBTQV9QS19FQ0RTQV9UT19NQkVEVExTX0VSUihzdGF0dXMpOwotICAgIH0KLQotZG9uZToKLSAgICByZXQgPSBtYmVkdGxzX2VjZHNhX3Jhd190b19kZXIoa2V5X2JpdHMsIHNpZywgKnNpZ19sZW4sIHNpZywgc2lnX3NpemUsIHNpZ19sZW4pOwotCi0gICAgcmV0dXJuIHJldDsKLX0KLQotc3RhdGljIGludCBlY2RzYV9vcGFxdWVfc2lnbl93cmFwKG1iZWR0bHNfcGtfY29udGV4dCAqcGssCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWJlZHRsc19tZF90eXBlX3QgbWRfYWxnLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgKmhhc2gsIHNpemVfdCBoYXNoX2xlbiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBjaGFyICpzaWcsIHNpemVfdCBzaWdfc2l6ZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgKnNpZ19sZW4sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50ICgqZl9ybmcpKHZvaWQgKiwgdW5zaWduZWQgY2hhciAqLCBzaXplX3QpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZvaWQgKnBfcm5nKQotewotICAgICgodm9pZCkgZl9ybmcpOwotICAgICgodm9pZCkgcF9ybmcpOwotCi0gICAgcmV0dXJuIGVjZHNhX3NpZ25fcHNhKHBrLT5wcml2X2lkLCBtZF9hbGcsIGhhc2gsIGhhc2hfbGVuLCBzaWcsIHNpZ19zaXplLAotICAgICAgICAgICAgICAgICAgICAgICAgICBzaWdfbGVuKTsKLX0KLQotI2lmIGRlZmluZWQoTUJFRFRMU19QS19VU0VfUFNBX0VDX0RBVEEpCi0vKiBXaGVuIFBLX1VTRV9QU0FfRUNfREFUQSBpcyBkZWZpbmVkIG9wYXF1ZSBhbmQgbm9uLW9wYXF1ZSBrZXlzIGVuZCB1cAotICogdXNpbmcgdGhlIHNhbWUgZnVuY3Rpb24uICovCi0jZGVmaW5lIGVjZHNhX3NpZ25fd3JhcCAgICAgZWNkc2Ffb3BhcXVlX3NpZ25fd3JhcAotI2Vsc2UgLyogTUJFRFRMU19QS19VU0VfUFNBX0VDX0RBVEEgKi8KLXN0YXRpYyBpbnQgZWNkc2Ffc2lnbl93cmFwKG1iZWR0bHNfcGtfY29udGV4dCAqcGssIG1iZWR0bHNfbWRfdHlwZV90IG1kX2FsZywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgKmhhc2gsIHNpemVfdCBoYXNoX2xlbiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGNoYXIgKnNpZywgc2l6ZV90IHNpZ19zaXplLCBzaXplX3QgKnNpZ19sZW4sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgKCpmX3JuZykodm9pZCAqLCB1bnNpZ25lZCBjaGFyICosIHNpemVfdCksIHZvaWQgKnBfcm5nKQotewotICAgIGludCByZXQgPSBNQkVEVExTX0VSUl9FUlJPUl9DT1JSVVBUSU9OX0RFVEVDVEVEOwotICAgIG1iZWR0bHNfc3ZjX2tleV9pZF90IGtleV9pZCA9IE1CRURUTFNfU1ZDX0tFWV9JRF9JTklUOwotICAgIHBzYV9zdGF0dXNfdCBzdGF0dXM7Ci0gICAgbWJlZHRsc19lY3Bfa2V5cGFpciAqY3R4ID0gcGstPnBrX2N0eDsKLSAgICBwc2Ffa2V5X2F0dHJpYnV0ZXNfdCBhdHRyaWJ1dGVzID0gUFNBX0tFWV9BVFRSSUJVVEVTX0lOSVQ7Ci0gICAgdW5zaWduZWQgY2hhciBidWZbTUJFRFRMU19QU0FfTUFYX0VDX0tFWV9QQUlSX0xFTkdUSF07Ci0gICAgc2l6ZV90IGN1cnZlX2JpdHM7Ci0gICAgcHNhX2VjY19mYW1pbHlfdCBjdXJ2ZSA9Ci0gICAgICAgIG1iZWR0bHNfZWNjX2dyb3VwX3RvX3BzYShjdHgtPmdycC5pZCwgJmN1cnZlX2JpdHMpOwotICAgIHNpemVfdCBrZXlfbGVuID0gUFNBX0JJVFNfVE9fQllURVMoY3VydmVfYml0cyk7Ci0gICAgcHNhX2FsZ29yaXRobV90IHBzYV9oYXNoID0gbWJlZHRsc19tZF9wc2FfYWxnX2Zyb21fdHlwZShtZF9hbGcpOwotICAgIHBzYV9hbGdvcml0aG1fdCBwc2Ffc2lnX21kID0gTUJFRFRMU19QS19QU0FfQUxHX0VDRFNBX01BWUJFX0RFVChwc2FfaGFzaCk7Ci0gICAgKCh2b2lkKSBmX3JuZyk7Ci0gICAgKCh2b2lkKSBwX3JuZyk7Ci0KLSAgICBpZiAoY3VydmUgPT0gMCkgewotICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfUEtfQkFEX0lOUFVUX0RBVEE7Ci0gICAgfQotCi0gICAgaWYgKGtleV9sZW4gPiBzaXplb2YoYnVmKSkgewotICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfRVJST1JfQ09SUlVQVElPTl9ERVRFQ1RFRDsKLSAgICB9Ci0gICAgcmV0ID0gbWJlZHRsc19tcGlfd3JpdGVfYmluYXJ5KCZjdHgtPmQsIGJ1Ziwga2V5X2xlbik7Ci0gICAgaWYgKHJldCAhPSAwKSB7Ci0gICAgICAgIGdvdG8gY2xlYW51cDsKLSAgICB9Ci0KLSAgICBwc2Ffc2V0X2tleV90eXBlKCZhdHRyaWJ1dGVzLCBQU0FfS0VZX1RZUEVfRUNDX0tFWV9QQUlSKGN1cnZlKSk7Ci0gICAgcHNhX3NldF9rZXlfdXNhZ2VfZmxhZ3MoJmF0dHJpYnV0ZXMsIFBTQV9LRVlfVVNBR0VfU0lHTl9IQVNIKTsKLSAgICBwc2Ffc2V0X2tleV9hbGdvcml0aG0oJmF0dHJpYnV0ZXMsIHBzYV9zaWdfbWQpOwotCi0gICAgc3RhdHVzID0gcHNhX2ltcG9ydF9rZXkoJmF0dHJpYnV0ZXMsIGJ1Ziwga2V5X2xlbiwgJmtleV9pZCk7Ci0gICAgaWYgKHN0YXR1cyAhPSBQU0FfU1VDQ0VTUykgewotICAgICAgICByZXQgPSBQU0FfUEtfVE9fTUJFRFRMU19FUlIoc3RhdHVzKTsKLSAgICAgICAgZ290byBjbGVhbnVwOwotICAgIH0KLQotICAgIHJldCA9IGVjZHNhX3NpZ25fcHNhKGtleV9pZCwgbWRfYWxnLCBoYXNoLCBoYXNoX2xlbiwgc2lnLCBzaWdfc2l6ZSwgc2lnX2xlbik7Ci0KLWNsZWFudXA6Ci0gICAgbWJlZHRsc19wbGF0Zm9ybV96ZXJvaXplKGJ1Ziwgc2l6ZW9mKGJ1ZikpOwotICAgIHN0YXR1cyA9IHBzYV9kZXN0cm95X2tleShrZXlfaWQpOwotICAgIGlmIChyZXQgPT0gMCAmJiBzdGF0dXMgIT0gUFNBX1NVQ0NFU1MpIHsKLSAgICAgICAgcmV0ID0gUFNBX1BLX1RPX01CRURUTFNfRVJSKHN0YXR1cyk7Ci0gICAgfQotCi0gICAgcmV0dXJuIHJldDsKLX0KLSNlbmRpZiAvKiBNQkVEVExTX1BLX1VTRV9QU0FfRUNfREFUQSAqLwotI2Vsc2UgLyogTUJFRFRMU19VU0VfUFNBX0NSWVBUTyAqLwotc3RhdGljIGludCBlY2RzYV9zaWduX3dyYXAobWJlZHRsc19wa19jb250ZXh0ICpwaywgbWJlZHRsc19tZF90eXBlX3QgbWRfYWxnLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdW5zaWduZWQgY2hhciAqaGFzaCwgc2l6ZV90IGhhc2hfbGVuLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgY2hhciAqc2lnLCBzaXplX3Qgc2lnX3NpemUsIHNpemVfdCAqc2lnX2xlbiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCAoKmZfcm5nKSh2b2lkICosIHVuc2lnbmVkIGNoYXIgKiwgc2l6ZV90KSwgdm9pZCAqcF9ybmcpCi17Ci0gICAgcmV0dXJuIG1iZWR0bHNfZWNkc2Ffd3JpdGVfc2lnbmF0dXJlKChtYmVkdGxzX2VjZHNhX2NvbnRleHQgKikgcGstPnBrX2N0eCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWRfYWxnLCBoYXNoLCBoYXNoX2xlbiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2lnLCBzaWdfc2l6ZSwgc2lnX2xlbiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZl9ybmcsIHBfcm5nKTsKLX0KLSNlbmRpZiAvKiBNQkVEVExTX1VTRV9QU0FfQ1JZUFRPICovCi0jZW5kaWYgLyogTUJFRFRMU19QS19DQU5fRUNEU0FfU0lHTiAqLwotCi0jaWYgZGVmaW5lZChNQkVEVExTX0VDRFNBX0MpICYmIGRlZmluZWQoTUJFRFRMU19FQ1BfUkVTVEFSVEFCTEUpCi0vKiBGb3J3YXJkIGRlY2xhcmF0aW9ucyAqLwotc3RhdGljIGludCBlY2RzYV92ZXJpZnlfcnNfd3JhcChtYmVkdGxzX3BrX2NvbnRleHQgKmN0eCwgbWJlZHRsc19tZF90eXBlX3QgbWRfYWxnLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1bnNpZ25lZCBjaGFyICpoYXNoLCBzaXplX3QgaGFzaF9sZW4sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgKnNpZywgc2l6ZV90IHNpZ19sZW4sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZvaWQgKnJzX2N0eCk7Ci0KLXN0YXRpYyBpbnQgZWNkc2Ffc2lnbl9yc193cmFwKG1iZWR0bHNfcGtfY29udGV4dCAqY3R4LCBtYmVkdGxzX21kX3R5cGVfdCBtZF9hbGcsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1bnNpZ25lZCBjaGFyICpoYXNoLCBzaXplX3QgaGFzaF9sZW4sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBjaGFyICpzaWcsIHNpemVfdCBzaWdfc2l6ZSwgc2l6ZV90ICpzaWdfbGVuLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50ICgqZl9ybmcpKHZvaWQgKiwgdW5zaWduZWQgY2hhciAqLCBzaXplX3QpLCB2b2lkICpwX3JuZywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZvaWQgKnJzX2N0eCk7Ci0KLS8qCi0gKiBSZXN0YXJ0IGNvbnRleHQgZm9yIEVDRFNBIG9wZXJhdGlvbnMgd2l0aCBFQ0tFWSBjb250ZXh0Ci0gKgotICogV2UgbmVlZCB0byBzdG9yZSBhbiBhY3R1YWwgRUNEU0EgY29udGV4dCwgYXMgd2UgbmVlZCB0byBwYXNzIHRoZSBzYW1lIHRvCi0gKiB0aGUgdW5kZXJseWluZyBlY2RzYSBmdW5jdGlvbiwgc28gd2UgY2FuJ3QgY3JlYXRlIGl0IG9uIHRoZSBmbHkgZXZlcnkgdGltZS4KLSAqLwotdHlwZWRlZiBzdHJ1Y3QgewotICAgIG1iZWR0bHNfZWNkc2FfcmVzdGFydF9jdHggZWNkc2FfcnM7Ci0gICAgbWJlZHRsc19lY2RzYV9jb250ZXh0IGVjZHNhX2N0eDsKLX0gZWNrZXlfcmVzdGFydF9jdHg7Ci0KLXN0YXRpYyB2b2lkICplY2tleV9yc19hbGxvYyh2b2lkKQotewotICAgIGVja2V5X3Jlc3RhcnRfY3R4ICpyc19jdHg7Ci0KLSAgICB2b2lkICpjdHggPSBtYmVkdGxzX2NhbGxvYygxLCBzaXplb2YoZWNrZXlfcmVzdGFydF9jdHgpKTsKLQotICAgIGlmIChjdHggIT0gTlVMTCkgewotICAgICAgICByc19jdHggPSBjdHg7Ci0gICAgICAgIG1iZWR0bHNfZWNkc2FfcmVzdGFydF9pbml0KCZyc19jdHgtPmVjZHNhX3JzKTsKLSAgICAgICAgbWJlZHRsc19lY2RzYV9pbml0KCZyc19jdHgtPmVjZHNhX2N0eCk7Ci0gICAgfQotCi0gICAgcmV0dXJuIGN0eDsKLX0KLQotc3RhdGljIHZvaWQgZWNrZXlfcnNfZnJlZSh2b2lkICpjdHgpCi17Ci0gICAgZWNrZXlfcmVzdGFydF9jdHggKnJzX2N0eDsKLQotICAgIGlmIChjdHggPT0gTlVMTCkgewotICAgICAgICByZXR1cm47Ci0gICAgfQotCi0gICAgcnNfY3R4ID0gY3R4OwotICAgIG1iZWR0bHNfZWNkc2FfcmVzdGFydF9mcmVlKCZyc19jdHgtPmVjZHNhX3JzKTsKLSAgICBtYmVkdGxzX2VjZHNhX2ZyZWUoJnJzX2N0eC0+ZWNkc2FfY3R4KTsKLQotICAgIG1iZWR0bHNfZnJlZShjdHgpOwotfQotCi1zdGF0aWMgaW50IGVja2V5X3ZlcmlmeV9yc193cmFwKG1iZWR0bHNfcGtfY29udGV4dCAqcGssIG1iZWR0bHNfbWRfdHlwZV90IG1kX2FsZywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdW5zaWduZWQgY2hhciAqaGFzaCwgc2l6ZV90IGhhc2hfbGVuLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1bnNpZ25lZCBjaGFyICpzaWcsIHNpemVfdCBzaWdfbGVuLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2b2lkICpyc19jdHgpCi17Ci0gICAgaW50IHJldCA9IE1CRURUTFNfRVJSX0VSUk9SX0NPUlJVUFRJT05fREVURUNURUQ7Ci0gICAgZWNrZXlfcmVzdGFydF9jdHggKnJzID0gcnNfY3R4OwotCi0gICAgLyogU2hvdWxkIG5ldmVyIGhhcHBlbiAqLwotICAgIGlmIChycyA9PSBOVUxMKSB7Ci0gICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9QS19CQURfSU5QVVRfREFUQTsKLSAgICB9Ci0KLSAgICAvKiBzZXQgdXAgb3VyIG93biBzdWItY29udGV4dCBpZiBuZWVkZWQgKHRoYXQgaXMsIG9uIGZpcnN0IHJ1bikgKi8KLSAgICBpZiAocnMtPmVjZHNhX2N0eC5ncnAucGJpdHMgPT0gMCkgewotICAgICAgICBNQkVEVExTX01QSV9DSEsobWJlZHRsc19lY2RzYV9mcm9tX2tleXBhaXIoJnJzLT5lY2RzYV9jdHgsIHBrLT5wa19jdHgpKTsKLSAgICB9Ci0KLSAgICBNQkVEVExTX01QSV9DSEsoZWNkc2FfdmVyaWZ5X3JzX3dyYXAocGssCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1kX2FsZywgaGFzaCwgaGFzaF9sZW4sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpZywgc2lnX2xlbiwgJnJzLT5lY2RzYV9ycykpOwotCi1jbGVhbnVwOgotICAgIHJldHVybiByZXQ7Ci19Ci0KLXN0YXRpYyBpbnQgZWNrZXlfc2lnbl9yc193cmFwKG1iZWR0bHNfcGtfY29udGV4dCAqcGssIG1iZWR0bHNfbWRfdHlwZV90IG1kX2FsZywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgKmhhc2gsIHNpemVfdCBoYXNoX2xlbiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGNoYXIgKnNpZywgc2l6ZV90IHNpZ19zaXplLCBzaXplX3QgKnNpZ19sZW4sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgKCpmX3JuZykodm9pZCAqLCB1bnNpZ25lZCBjaGFyICosIHNpemVfdCksIHZvaWQgKnBfcm5nLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdm9pZCAqcnNfY3R4KQotewotICAgIGludCByZXQgPSBNQkVEVExTX0VSUl9FUlJPUl9DT1JSVVBUSU9OX0RFVEVDVEVEOwotICAgIGVja2V5X3Jlc3RhcnRfY3R4ICpycyA9IHJzX2N0eDsKLQotICAgIC8qIFNob3VsZCBuZXZlciBoYXBwZW4gKi8KLSAgICBpZiAocnMgPT0gTlVMTCkgewotICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfUEtfQkFEX0lOUFVUX0RBVEE7Ci0gICAgfQotCi0gICAgLyogc2V0IHVwIG91ciBvd24gc3ViLWNvbnRleHQgaWYgbmVlZGVkICh0aGF0IGlzLCBvbiBmaXJzdCBydW4pICovCi0gICAgaWYgKHJzLT5lY2RzYV9jdHguZ3JwLnBiaXRzID09IDApIHsKLSAgICAgICAgTUJFRFRMU19NUElfQ0hLKG1iZWR0bHNfZWNkc2FfZnJvbV9rZXlwYWlyKCZycy0+ZWNkc2FfY3R4LCBway0+cGtfY3R4KSk7Ci0gICAgfQotCi0gICAgTUJFRFRMU19NUElfQ0hLKGVjZHNhX3NpZ25fcnNfd3JhcChwaywgbWRfYWxnLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFzaCwgaGFzaF9sZW4sIHNpZywgc2lnX3NpemUsIHNpZ19sZW4sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmX3JuZywgcF9ybmcsICZycy0+ZWNkc2FfcnMpKTsKLQotY2xlYW51cDoKLSAgICByZXR1cm4gcmV0OwotfQotI2VuZGlmIC8qIE1CRURUTFNfRUNEU0FfQyAmJiBNQkVEVExTX0VDUF9SRVNUQVJUQUJMRSAqLwotCi0jaWYgZGVmaW5lZChNQkVEVExTX1VTRV9QU0FfQ1JZUFRPKQotI2lmIGRlZmluZWQoTUJFRFRMU19QS19VU0VfUFNBX0VDX0RBVEEpCi1zdGF0aWMgaW50IGVja2V5X2NoZWNrX3BhaXJfcHNhKG1iZWR0bHNfcGtfY29udGV4dCAqcHViLCBtYmVkdGxzX3BrX2NvbnRleHQgKnBydikKLXsKLSAgICBwc2Ffc3RhdHVzX3Qgc3RhdHVzOwotICAgIGludCByZXQgPSBNQkVEVExTX0VSUl9FUlJPUl9DT1JSVVBUSU9OX0RFVEVDVEVEOwotICAgIHVpbnQ4X3QgcHJ2X2tleV9idWZbTUJFRFRMU19QU0FfTUFYX0VDX1BVQktFWV9MRU5HVEhdOwotICAgIHNpemVfdCBwcnZfa2V5X2xlbjsKLSAgICBtYmVkdGxzX3N2Y19rZXlfaWRfdCBrZXlfaWQgPSBwcnYtPnByaXZfaWQ7Ci0KLSAgICBzdGF0dXMgPSBwc2FfZXhwb3J0X3B1YmxpY19rZXkoa2V5X2lkLCBwcnZfa2V5X2J1Ziwgc2l6ZW9mKHBydl9rZXlfYnVmKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJnBydl9rZXlfbGVuKTsKLSAgICByZXQgPSBQU0FfUEtfVE9fTUJFRFRMU19FUlIoc3RhdHVzKTsKLSAgICBpZiAocmV0ICE9IDApIHsKLSAgICAgICAgcmV0dXJuIHJldDsKLSAgICB9Ci0KLSAgICBpZiAobWVtY21wKHBydl9rZXlfYnVmLCBwdWItPnB1Yl9yYXcsIHB1Yi0+cHViX3Jhd19sZW4pICE9IDApIHsKLSAgICAgICAgcmV0dXJuIE1CRURUTFNfRVJSX1BLX0JBRF9JTlBVVF9EQVRBOwotICAgIH0KLQotICAgIHJldHVybiAwOwotfQotI2Vsc2UgLyogTUJFRFRMU19QS19VU0VfUFNBX0VDX0RBVEEgKi8KLXN0YXRpYyBpbnQgZWNrZXlfY2hlY2tfcGFpcl9wc2EobWJlZHRsc19wa19jb250ZXh0ICpwdWIsIG1iZWR0bHNfcGtfY29udGV4dCAqcHJ2KQotewotICAgIHBzYV9zdGF0dXNfdCBzdGF0dXM7Ci0gICAgaW50IHJldCA9IE1CRURUTFNfRVJSX0VSUk9SX0NPUlJVUFRJT05fREVURUNURUQ7Ci0gICAgdWludDhfdCBwcnZfa2V5X2J1ZltNQkVEVExTX1BTQV9NQVhfRUNfUFVCS0VZX0xFTkdUSF07Ci0gICAgc2l6ZV90IHBydl9rZXlfbGVuOwotICAgIHBzYV9zdGF0dXNfdCBkZXN0cnVjdGlvbl9zdGF0dXM7Ci0gICAgbWJlZHRsc19zdmNfa2V5X2lkX3Qga2V5X2lkID0gTUJFRFRMU19TVkNfS0VZX0lEX0lOSVQ7Ci0gICAgcHNhX2tleV9hdHRyaWJ1dGVzX3Qga2V5X2F0dHIgPSBQU0FfS0VZX0FUVFJJQlVURVNfSU5JVDsKLSAgICB1aW50OF90IHB1Yl9rZXlfYnVmW01CRURUTFNfUFNBX01BWF9FQ19QVUJLRVlfTEVOR1RIXTsKLSAgICBzaXplX3QgcHViX2tleV9sZW47Ci0gICAgc2l6ZV90IGN1cnZlX2JpdHM7Ci0gICAgY29uc3QgcHNhX2VjY19mYW1pbHlfdCBjdXJ2ZSA9Ci0gICAgICAgIG1iZWR0bHNfZWNjX2dyb3VwX3RvX3BzYShtYmVkdGxzX3BrX2VjX3JvKCpwcnYpLT5ncnAuaWQsICZjdXJ2ZV9iaXRzKTsKLSAgICBjb25zdCBzaXplX3QgY3VydmVfYnl0ZXMgPSBQU0FfQklUU19UT19CWVRFUyhjdXJ2ZV9iaXRzKTsKLQotICAgIGlmIChjdXJ2ZSA9PSAwKSB7Ci0gICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9QS19CQURfSU5QVVRfREFUQTsKLSAgICB9Ci0KLSAgICBwc2Ffc2V0X2tleV90eXBlKCZrZXlfYXR0ciwgUFNBX0tFWV9UWVBFX0VDQ19LRVlfUEFJUihjdXJ2ZSkpOwotICAgIHBzYV9zZXRfa2V5X3VzYWdlX2ZsYWdzKCZrZXlfYXR0ciwgUFNBX0tFWV9VU0FHRV9FWFBPUlQpOwotCi0gICAgcmV0ID0gbWJlZHRsc19tcGlfd3JpdGVfYmluYXJ5KCZtYmVkdGxzX3BrX2VjX3JvKCpwcnYpLT5kLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcnZfa2V5X2J1ZiwgY3VydmVfYnl0ZXMpOwotICAgIGlmIChyZXQgIT0gMCkgewotICAgICAgICBtYmVkdGxzX3BsYXRmb3JtX3plcm9pemUocHJ2X2tleV9idWYsIHNpemVvZihwcnZfa2V5X2J1ZikpOwotICAgICAgICByZXR1cm4gcmV0OwotICAgIH0KLQotICAgIHN0YXR1cyA9IHBzYV9pbXBvcnRfa2V5KCZrZXlfYXR0ciwgcHJ2X2tleV9idWYsIGN1cnZlX2J5dGVzLCAma2V5X2lkKTsKLSAgICBtYmVkdGxzX3BsYXRmb3JtX3plcm9pemUocHJ2X2tleV9idWYsIHNpemVvZihwcnZfa2V5X2J1ZikpOwotICAgIHJldCA9IFBTQV9QS19UT19NQkVEVExTX0VSUihzdGF0dXMpOwotICAgIGlmIChyZXQgIT0gMCkgewotICAgICAgICByZXR1cm4gcmV0OwotICAgIH0KLQotICAgIC8vIEZyb20gbm93IG9uIHBydl9rZXlfYnVmIGlzIHVzZWQgdG8gc3RvcmUgdGhlIHB1YmxpYyBrZXkgb2YgcHJ2LgotICAgIHN0YXR1cyA9IHBzYV9leHBvcnRfcHVibGljX2tleShrZXlfaWQsIHBydl9rZXlfYnVmLCBzaXplb2YocHJ2X2tleV9idWYpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmcHJ2X2tleV9sZW4pOwotICAgIHJldCA9IFBTQV9QS19UT19NQkVEVExTX0VSUihzdGF0dXMpOwotICAgIGRlc3RydWN0aW9uX3N0YXR1cyA9IHBzYV9kZXN0cm95X2tleShrZXlfaWQpOwotICAgIGlmIChyZXQgIT0gMCkgewotICAgICAgICByZXR1cm4gcmV0OwotICAgIH0gZWxzZSBpZiAoZGVzdHJ1Y3Rpb25fc3RhdHVzICE9IFBTQV9TVUNDRVNTKSB7Ci0gICAgICAgIHJldHVybiBQU0FfUEtfVE9fTUJFRFRMU19FUlIoZGVzdHJ1Y3Rpb25fc3RhdHVzKTsKLSAgICB9Ci0KLSAgICByZXQgPSBtYmVkdGxzX2VjcF9wb2ludF93cml0ZV9iaW5hcnkoJm1iZWR0bHNfcGtfZWNfcncoKnB1YiktPmdycCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJm1iZWR0bHNfcGtfZWNfcncoKnB1YiktPlEsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1CRURUTFNfRUNQX1BGX1VOQ09NUFJFU1NFRCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJnB1Yl9rZXlfbGVuLCBwdWJfa2V5X2J1ZiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZW9mKHB1Yl9rZXlfYnVmKSk7Ci0gICAgaWYgKHJldCAhPSAwKSB7Ci0gICAgICAgIHJldHVybiByZXQ7Ci0gICAgfQotCi0gICAgaWYgKG1lbWNtcChwcnZfa2V5X2J1ZiwgcHViX2tleV9idWYsIGN1cnZlX2J5dGVzKSAhPSAwKSB7Ci0gICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9QS19CQURfSU5QVVRfREFUQTsKLSAgICB9Ci0KLSAgICByZXR1cm4gMDsKLX0KLSNlbmRpZiAvKiBNQkVEVExTX1BLX1VTRV9QU0FfRUNfREFUQSAqLwotCi1zdGF0aWMgaW50IGVja2V5X2NoZWNrX3BhaXJfd3JhcChtYmVkdGxzX3BrX2NvbnRleHQgKnB1YiwgbWJlZHRsc19wa19jb250ZXh0ICpwcnYsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgKCpmX3JuZykodm9pZCAqLCB1bnNpZ25lZCBjaGFyICosIHNpemVfdCksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2b2lkICpwX3JuZykKLXsKLSAgICAodm9pZCkgZl9ybmc7Ci0gICAgKHZvaWQpIHBfcm5nOwotICAgIHJldHVybiBlY2tleV9jaGVja19wYWlyX3BzYShwdWIsIHBydik7Ci19Ci0jZWxzZSAvKiBNQkVEVExTX1VTRV9QU0FfQ1JZUFRPICovCi1zdGF0aWMgaW50IGVja2V5X2NoZWNrX3BhaXJfd3JhcChtYmVkdGxzX3BrX2NvbnRleHQgKnB1YiwgbWJlZHRsc19wa19jb250ZXh0ICpwcnYsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgKCpmX3JuZykodm9pZCAqLCB1bnNpZ25lZCBjaGFyICosIHNpemVfdCksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2b2lkICpwX3JuZykKLXsKLSAgICByZXR1cm4gbWJlZHRsc19lY3BfY2hlY2tfcHViX3ByaXYoKGNvbnN0IG1iZWR0bHNfZWNwX2tleXBhaXIgKikgcHViLT5wa19jdHgsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjb25zdCBtYmVkdGxzX2VjcF9rZXlwYWlyICopIHBydi0+cGtfY3R4LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmX3JuZywgcF9ybmcpOwotfQotI2VuZGlmIC8qIE1CRURUTFNfVVNFX1BTQV9DUllQVE8gKi8KLQotI2lmIGRlZmluZWQoTUJFRFRMU19VU0VfUFNBX0NSWVBUTykKLSNpZiBkZWZpbmVkKE1CRURUTFNfUEtfVVNFX1BTQV9FQ19EQVRBKQotLyogV2hlbiBQS19VU0VfUFNBX0VDX0RBVEEgaXMgZGVmaW5lZCBvcGFxdWUgYW5kIG5vbi1vcGFxdWUga2V5cyBlbmQgdXAKLSAqIHVzaW5nIHRoZSBzYW1lIGZ1bmN0aW9uLiAqLwotI2RlZmluZSBlY2RzYV9vcGFxdWVfY2hlY2tfcGFpcl93cmFwICAgIGVja2V5X2NoZWNrX3BhaXJfd3JhcAotI2Vsc2UgLyogTUJFRFRMU19QS19VU0VfUFNBX0VDX0RBVEEgKi8KLXN0YXRpYyBpbnQgZWNkc2Ffb3BhcXVlX2NoZWNrX3BhaXJfd3JhcChtYmVkdGxzX3BrX2NvbnRleHQgKnB1YiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYmVkdGxzX3BrX2NvbnRleHQgKnBydiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgKCpmX3JuZykodm9pZCAqLCB1bnNpZ25lZCBjaGFyICosIHNpemVfdCksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdm9pZCAqcF9ybmcpCi17Ci0gICAgcHNhX3N0YXR1c190IHN0YXR1czsKLSAgICB1aW50OF90IGV4cF9wdWJfa2V5W01CRURUTFNfUEtfTUFYX0VDX1BVQktFWV9SQVdfTEVOXTsKLSAgICBzaXplX3QgZXhwX3B1Yl9rZXlfbGVuID0gMDsKLSAgICB1aW50OF90IHB1Yl9rZXlbTUJFRFRMU19QS19NQVhfRUNfUFVCS0VZX1JBV19MRU5dOwotICAgIHNpemVfdCBwdWJfa2V5X2xlbiA9IDA7Ci0gICAgaW50IHJldDsKLSAgICAodm9pZCkgZl9ybmc7Ci0gICAgKHZvaWQpIHBfcm5nOwotCi0gICAgc3RhdHVzID0gcHNhX2V4cG9ydF9wdWJsaWNfa2V5KHBydi0+cHJpdl9pZCwgZXhwX3B1Yl9rZXksIHNpemVvZihleHBfcHViX2tleSksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZleHBfcHViX2tleV9sZW4pOwotICAgIGlmIChzdGF0dXMgIT0gUFNBX1NVQ0NFU1MpIHsKLSAgICAgICAgcmV0ID0gcHNhX3BrX3N0YXR1c190b19tYmVkdGxzKHN0YXR1cyk7Ci0gICAgICAgIHJldHVybiByZXQ7Ci0gICAgfQotICAgIHJldCA9IG1iZWR0bHNfZWNwX3BvaW50X3dyaXRlX2JpbmFyeSgmKG1iZWR0bHNfcGtfZWNfcm8oKnB1YiktPmdycCksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICYobWJlZHRsc19wa19lY19ybygqcHViKS0+USksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1CRURUTFNfRUNQX1BGX1VOQ09NUFJFU1NFRCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJnB1Yl9rZXlfbGVuLCBwdWJfa2V5LCBzaXplb2YocHViX2tleSkpOwotICAgIGlmIChyZXQgIT0gMCkgewotICAgICAgICByZXR1cm4gcmV0OwotICAgIH0KLSAgICBpZiAoKGV4cF9wdWJfa2V5X2xlbiAhPSBwdWJfa2V5X2xlbikgfHwKLSAgICAgICAgbWVtY21wKGV4cF9wdWJfa2V5LCBwdWJfa2V5LCBleHBfcHViX2tleV9sZW4pKSB7Ci0gICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9QS19CQURfSU5QVVRfREFUQTsKLSAgICB9Ci0gICAgcmV0dXJuIDA7Ci19Ci0jZW5kaWYgLyogTUJFRFRMU19QS19VU0VfUFNBX0VDX0RBVEEgKi8KLSNlbmRpZiAvKiBNQkVEVExTX1VTRV9QU0FfQ1JZUFRPICovCi0KLSNpZiAhZGVmaW5lZChNQkVEVExTX1BLX1VTRV9QU0FfRUNfREFUQSkKLXN0YXRpYyB2b2lkICplY2tleV9hbGxvY193cmFwKHZvaWQpCi17Ci0gICAgdm9pZCAqY3R4ID0gbWJlZHRsc19jYWxsb2MoMSwgc2l6ZW9mKG1iZWR0bHNfZWNwX2tleXBhaXIpKTsKLQotICAgIGlmIChjdHggIT0gTlVMTCkgewotICAgICAgICBtYmVkdGxzX2VjcF9rZXlwYWlyX2luaXQoY3R4KTsKLSAgICB9Ci0KLSAgICByZXR1cm4gY3R4OwotfQotCi1zdGF0aWMgdm9pZCBlY2tleV9mcmVlX3dyYXAodm9pZCAqY3R4KQotewotICAgIG1iZWR0bHNfZWNwX2tleXBhaXJfZnJlZSgobWJlZHRsc19lY3Bfa2V5cGFpciAqKSBjdHgpOwotICAgIG1iZWR0bHNfZnJlZShjdHgpOwotfQotI2VuZGlmIC8qIE1CRURUTFNfUEtfVVNFX1BTQV9FQ19EQVRBICovCi0KLXN0YXRpYyB2b2lkIGVja2V5X2RlYnVnKG1iZWR0bHNfcGtfY29udGV4dCAqcGssIG1iZWR0bHNfcGtfZGVidWdfaXRlbSAqaXRlbXMpCi17Ci0jaWYgZGVmaW5lZChNQkVEVExTX1BLX1VTRV9QU0FfRUNfREFUQSkKLSAgICBpdGVtcy0+dHlwZSA9IE1CRURUTFNfUEtfREVCVUdfUFNBX0VDOwotICAgIGl0ZW1zLT5uYW1lID0gImVja2V5LlEiOwotICAgIGl0ZW1zLT52YWx1ZSA9IHBrOwotI2Vsc2UgLyogTUJFRFRMU19QS19VU0VfUFNBX0VDX0RBVEEgKi8KLSAgICBtYmVkdGxzX2VjcF9rZXlwYWlyICplY3AgPSAobWJlZHRsc19lY3Bfa2V5cGFpciAqKSBway0+cGtfY3R4OwotICAgIGl0ZW1zLT50eXBlID0gTUJFRFRMU19QS19ERUJVR19FQ1A7Ci0gICAgaXRlbXMtPm5hbWUgPSAiZWNrZXkuUSI7Ci0gICAgaXRlbXMtPnZhbHVlID0gJihlY3AtPlEpOwotI2VuZGlmIC8qIE1CRURUTFNfUEtfVVNFX1BTQV9FQ19EQVRBICovCi19Ci0KLWNvbnN0IG1iZWR0bHNfcGtfaW5mb190IG1iZWR0bHNfZWNrZXlfaW5mbyA9IHsKLSAgICAudHlwZSA9IE1CRURUTFNfUEtfRUNLRVksCi0gICAgLm5hbWUgPSAiRUMiLAotICAgIC5nZXRfYml0bGVuID0gZWNrZXlfZ2V0X2JpdGxlbiwKLSAgICAuY2FuX2RvID0gZWNrZXlfY2FuX2RvLAotI2lmIGRlZmluZWQoTUJFRFRMU19QS19DQU5fRUNEU0FfVkVSSUZZKQotICAgIC52ZXJpZnlfZnVuYyA9IGVjZHNhX3ZlcmlmeV93cmFwLCAgIC8qIENvbXBhdGlibGUga2V5IHN0cnVjdHVyZXMgKi8KLSNlbHNlIC8qIE1CRURUTFNfUEtfQ0FOX0VDRFNBX1ZFUklGWSAqLwotICAgIC52ZXJpZnlfZnVuYyA9IE5VTEwsCi0jZW5kaWYgLyogTUJFRFRMU19QS19DQU5fRUNEU0FfVkVSSUZZICovCi0jaWYgZGVmaW5lZChNQkVEVExTX1BLX0NBTl9FQ0RTQV9TSUdOKQotICAgIC5zaWduX2Z1bmMgPSBlY2RzYV9zaWduX3dyYXAsICAgLyogQ29tcGF0aWJsZSBrZXkgc3RydWN0dXJlcyAqLwotI2Vsc2UgLyogTUJFRFRMU19QS19DQU5fRUNEU0FfVkVSSUZZICovCi0gICAgLnNpZ25fZnVuYyA9IE5VTEwsCi0jZW5kaWYgLyogTUJFRFRMU19QS19DQU5fRUNEU0FfVkVSSUZZICovCi0jaWYgZGVmaW5lZChNQkVEVExTX0VDRFNBX0MpICYmIGRlZmluZWQoTUJFRFRMU19FQ1BfUkVTVEFSVEFCTEUpCi0gICAgLnZlcmlmeV9yc19mdW5jID0gZWNrZXlfdmVyaWZ5X3JzX3dyYXAsCi0gICAgLnNpZ25fcnNfZnVuYyA9IGVja2V5X3NpZ25fcnNfd3JhcCwKLSAgICAucnNfYWxsb2NfZnVuYyA9IGVja2V5X3JzX2FsbG9jLAotICAgIC5yc19mcmVlX2Z1bmMgPSBlY2tleV9yc19mcmVlLAotI2VuZGlmIC8qIE1CRURUTFNfRUNEU0FfQyAmJiBNQkVEVExTX0VDUF9SRVNUQVJUQUJMRSAqLwotICAgIC5kZWNyeXB0X2Z1bmMgPSBOVUxMLAotICAgIC5lbmNyeXB0X2Z1bmMgPSBOVUxMLAotICAgIC5jaGVja19wYWlyX2Z1bmMgPSBlY2tleV9jaGVja19wYWlyX3dyYXAsCi0jaWYgZGVmaW5lZChNQkVEVExTX1BLX1VTRV9QU0FfRUNfREFUQSkKLSAgICAuY3R4X2FsbG9jX2Z1bmMgPSBOVUxMLAotICAgIC5jdHhfZnJlZV9mdW5jID0gTlVMTCwKLSNlbHNlIC8qIE1CRURUTFNfUEtfVVNFX1BTQV9FQ19EQVRBICovCi0gICAgLmN0eF9hbGxvY19mdW5jID0gZWNrZXlfYWxsb2Nfd3JhcCwKLSAgICAuY3R4X2ZyZWVfZnVuYyA9IGVja2V5X2ZyZWVfd3JhcCwKLSNlbmRpZiAvKiBNQkVEVExTX1BLX1VTRV9QU0FfRUNfREFUQSAqLwotICAgIC5kZWJ1Z19mdW5jID0gZWNrZXlfZGVidWcsCi19OwotCi0vKgotICogRUMga2V5IHJlc3RyaWN0ZWQgdG8gRUNESAotICovCi1zdGF0aWMgaW50IGVja2V5ZGhfY2FuX2RvKG1iZWR0bHNfcGtfdHlwZV90IHR5cGUpCi17Ci0gICAgcmV0dXJuIHR5cGUgPT0gTUJFRFRMU19QS19FQ0tFWSB8fAotICAgICAgICAgICB0eXBlID09IE1CRURUTFNfUEtfRUNLRVlfREg7Ci19Ci0KLWNvbnN0IG1iZWR0bHNfcGtfaW5mb190IG1iZWR0bHNfZWNrZXlkaF9pbmZvID0gewotICAgIC50eXBlID0gTUJFRFRMU19QS19FQ0tFWV9ESCwKLSAgICAubmFtZSA9ICJFQ19ESCIsCi0gICAgLmdldF9iaXRsZW4gPSBlY2tleV9nZXRfYml0bGVuLCAgICAgICAgIC8qIFNhbWUgdW5kZXJseWluZyBrZXkgc3RydWN0dXJlICovCi0gICAgLmNhbl9kbyA9IGVja2V5ZGhfY2FuX2RvLAotICAgIC52ZXJpZnlfZnVuYyA9IE5VTEwsCi0gICAgLnNpZ25fZnVuYyA9IE5VTEwsCi0jaWYgZGVmaW5lZChNQkVEVExTX0VDRFNBX0MpICYmIGRlZmluZWQoTUJFRFRMU19FQ1BfUkVTVEFSVEFCTEUpCi0gICAgLnZlcmlmeV9yc19mdW5jID0gTlVMTCwKLSAgICAuc2lnbl9yc19mdW5jID0gTlVMTCwKLSNlbmRpZiAvKiBNQkVEVExTX0VDRFNBX0MgJiYgTUJFRFRMU19FQ1BfUkVTVEFSVEFCTEUgKi8KLSAgICAuZGVjcnlwdF9mdW5jID0gTlVMTCwKLSAgICAuZW5jcnlwdF9mdW5jID0gTlVMTCwKLSAgICAuY2hlY2tfcGFpcl9mdW5jID0gZWNrZXlfY2hlY2tfcGFpcl93cmFwLAotI2lmIGRlZmluZWQoTUJFRFRMU19QS19VU0VfUFNBX0VDX0RBVEEpCi0gICAgLmN0eF9hbGxvY19mdW5jID0gTlVMTCwKLSAgICAuY3R4X2ZyZWVfZnVuYyA9IE5VTEwsCi0jZWxzZSAvKiBNQkVEVExTX1BLX1VTRV9QU0FfRUNfREFUQSAqLwotICAgIC5jdHhfYWxsb2NfZnVuYyA9IGVja2V5X2FsbG9jX3dyYXAsICAgLyogU2FtZSB1bmRlcmx5aW5nIGtleSBzdHJ1Y3R1cmUgKi8KLSAgICAuY3R4X2ZyZWVfZnVuYyA9IGVja2V5X2ZyZWVfd3JhcCwgICAgLyogU2FtZSB1bmRlcmx5aW5nIGtleSBzdHJ1Y3R1cmUgKi8KLSNlbmRpZiAvKiBNQkVEVExTX1BLX1VTRV9QU0FfRUNfREFUQSAqLwotICAgIC5kZWJ1Z19mdW5jID0gZWNrZXlfZGVidWcsICAgICAgICAgICAgLyogU2FtZSB1bmRlcmx5aW5nIGtleSBzdHJ1Y3R1cmUgKi8KLX07Ci0KLSNpZiBkZWZpbmVkKE1CRURUTFNfUEtfQ0FOX0VDRFNBX1NPTUUpCi1zdGF0aWMgaW50IGVjZHNhX2Nhbl9kbyhtYmVkdGxzX3BrX3R5cGVfdCB0eXBlKQotewotICAgIHJldHVybiB0eXBlID09IE1CRURUTFNfUEtfRUNEU0E7Ci19Ci0KLSNpZiBkZWZpbmVkKE1CRURUTFNfRUNEU0FfQykgJiYgZGVmaW5lZChNQkVEVExTX0VDUF9SRVNUQVJUQUJMRSkKLXN0YXRpYyBpbnQgZWNkc2FfdmVyaWZ5X3JzX3dyYXAobWJlZHRsc19wa19jb250ZXh0ICpwaywgbWJlZHRsc19tZF90eXBlX3QgbWRfYWxnLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1bnNpZ25lZCBjaGFyICpoYXNoLCBzaXplX3QgaGFzaF9sZW4sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgKnNpZywgc2l6ZV90IHNpZ19sZW4sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZvaWQgKnJzX2N0eCkKLXsKLSAgICBpbnQgcmV0ID0gTUJFRFRMU19FUlJfRVJST1JfQ09SUlVQVElPTl9ERVRFQ1RFRDsKLSAgICAoKHZvaWQpIG1kX2FsZyk7Ci0KLSAgICByZXQgPSBtYmVkdGxzX2VjZHNhX3JlYWRfc2lnbmF0dXJlX3Jlc3RhcnRhYmxlKAotICAgICAgICAobWJlZHRsc19lY2RzYV9jb250ZXh0ICopIHBrLT5wa19jdHgsCi0gICAgICAgIGhhc2gsIGhhc2hfbGVuLCBzaWcsIHNpZ19sZW4sCi0gICAgICAgIChtYmVkdGxzX2VjZHNhX3Jlc3RhcnRfY3R4ICopIHJzX2N0eCk7Ci0KLSAgICBpZiAocmV0ID09IE1CRURUTFNfRVJSX0VDUF9TSUdfTEVOX01JU01BVENIKSB7Ci0gICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9QS19TSUdfTEVOX01JU01BVENIOwotICAgIH0KLQotICAgIHJldHVybiByZXQ7Ci19Ci0KLXN0YXRpYyBpbnQgZWNkc2Ffc2lnbl9yc193cmFwKG1iZWR0bHNfcGtfY29udGV4dCAqcGssIG1iZWR0bHNfbWRfdHlwZV90IG1kX2FsZywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgKmhhc2gsIHNpemVfdCBoYXNoX2xlbiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGNoYXIgKnNpZywgc2l6ZV90IHNpZ19zaXplLCBzaXplX3QgKnNpZ19sZW4sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgKCpmX3JuZykodm9pZCAqLCB1bnNpZ25lZCBjaGFyICosIHNpemVfdCksIHZvaWQgKnBfcm5nLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdm9pZCAqcnNfY3R4KQotewotICAgIHJldHVybiBtYmVkdGxzX2VjZHNhX3dyaXRlX3NpZ25hdHVyZV9yZXN0YXJ0YWJsZSgKLSAgICAgICAgKG1iZWR0bHNfZWNkc2FfY29udGV4dCAqKSBway0+cGtfY3R4LAotICAgICAgICBtZF9hbGcsIGhhc2gsIGhhc2hfbGVuLCBzaWcsIHNpZ19zaXplLCBzaWdfbGVuLCBmX3JuZywgcF9ybmcsCi0gICAgICAgIChtYmVkdGxzX2VjZHNhX3Jlc3RhcnRfY3R4ICopIHJzX2N0eCk7Ci0KLX0KLQotc3RhdGljIHZvaWQgKmVjZHNhX3JzX2FsbG9jKHZvaWQpCi17Ci0gICAgdm9pZCAqY3R4ID0gbWJlZHRsc19jYWxsb2MoMSwgc2l6ZW9mKG1iZWR0bHNfZWNkc2FfcmVzdGFydF9jdHgpKTsKLQotICAgIGlmIChjdHggIT0gTlVMTCkgewotICAgICAgICBtYmVkdGxzX2VjZHNhX3Jlc3RhcnRfaW5pdChjdHgpOwotICAgIH0KLQotICAgIHJldHVybiBjdHg7Ci19Ci0KLXN0YXRpYyB2b2lkIGVjZHNhX3JzX2ZyZWUodm9pZCAqY3R4KQotewotICAgIG1iZWR0bHNfZWNkc2FfcmVzdGFydF9mcmVlKGN0eCk7Ci0gICAgbWJlZHRsc19mcmVlKGN0eCk7Ci19Ci0jZW5kaWYgLyogTUJFRFRMU19FQ0RTQV9DICYmIE1CRURUTFNfRUNQX1JFU1RBUlRBQkxFICovCi0KLWNvbnN0IG1iZWR0bHNfcGtfaW5mb190IG1iZWR0bHNfZWNkc2FfaW5mbyA9IHsKLSAgICAudHlwZSA9IE1CRURUTFNfUEtfRUNEU0EsCi0gICAgLm5hbWUgPSAiRUNEU0EiLAotICAgIC5nZXRfYml0bGVuID0gZWNrZXlfZ2V0X2JpdGxlbiwgICAgIC8qIENvbXBhdGlibGUga2V5IHN0cnVjdHVyZXMgKi8KLSAgICAuY2FuX2RvID0gZWNkc2FfY2FuX2RvLAotI2lmIGRlZmluZWQoTUJFRFRMU19QS19DQU5fRUNEU0FfVkVSSUZZKQotICAgIC52ZXJpZnlfZnVuYyA9IGVjZHNhX3ZlcmlmeV93cmFwLCAgIC8qIENvbXBhdGlibGUga2V5IHN0cnVjdHVyZXMgKi8KLSNlbHNlIC8qIE1CRURUTFNfUEtfQ0FOX0VDRFNBX1ZFUklGWSAqLwotICAgIC52ZXJpZnlfZnVuYyA9IE5VTEwsCi0jZW5kaWYgLyogTUJFRFRMU19QS19DQU5fRUNEU0FfVkVSSUZZICovCi0jaWYgZGVmaW5lZChNQkVEVExTX1BLX0NBTl9FQ0RTQV9TSUdOKQotICAgIC5zaWduX2Z1bmMgPSBlY2RzYV9zaWduX3dyYXAsICAgLyogQ29tcGF0aWJsZSBrZXkgc3RydWN0dXJlcyAqLwotI2Vsc2UgLyogTUJFRFRMU19QS19DQU5fRUNEU0FfU0lHTiAqLwotICAgIC5zaWduX2Z1bmMgPSBOVUxMLAotI2VuZGlmIC8qIE1CRURUTFNfUEtfQ0FOX0VDRFNBX1NJR04gKi8KLSNpZiBkZWZpbmVkKE1CRURUTFNfRUNEU0FfQykgJiYgZGVmaW5lZChNQkVEVExTX0VDUF9SRVNUQVJUQUJMRSkKLSAgICAudmVyaWZ5X3JzX2Z1bmMgPSBlY2RzYV92ZXJpZnlfcnNfd3JhcCwKLSAgICAuc2lnbl9yc19mdW5jID0gZWNkc2Ffc2lnbl9yc193cmFwLAotICAgIC5yc19hbGxvY19mdW5jID0gZWNkc2FfcnNfYWxsb2MsCi0gICAgLnJzX2ZyZWVfZnVuYyA9IGVjZHNhX3JzX2ZyZWUsCi0jZW5kaWYgLyogTUJFRFRMU19FQ0RTQV9DICYmIE1CRURUTFNfRUNQX1JFU1RBUlRBQkxFICovCi0gICAgLmRlY3J5cHRfZnVuYyA9IE5VTEwsCi0gICAgLmVuY3J5cHRfZnVuYyA9IE5VTEwsCi0gICAgLmNoZWNrX3BhaXJfZnVuYyA9IGVja2V5X2NoZWNrX3BhaXJfd3JhcCwgICAvKiBDb21wYXRpYmxlIGtleSBzdHJ1Y3R1cmVzICovCi0jaWYgZGVmaW5lZChNQkVEVExTX1BLX1VTRV9QU0FfRUNfREFUQSkKLSAgICAuY3R4X2FsbG9jX2Z1bmMgPSBOVUxMLAotICAgIC5jdHhfZnJlZV9mdW5jID0gTlVMTCwKLSNlbHNlIC8qIE1CRURUTFNfUEtfVVNFX1BTQV9FQ19EQVRBICovCi0gICAgLmN0eF9hbGxvY19mdW5jID0gZWNrZXlfYWxsb2Nfd3JhcCwgICAvKiBDb21wYXRpYmxlIGtleSBzdHJ1Y3R1cmVzICovCi0gICAgLmN0eF9mcmVlX2Z1bmMgPSBlY2tleV9mcmVlX3dyYXAsICAgLyogQ29tcGF0aWJsZSBrZXkgc3RydWN0dXJlcyAqLwotI2VuZGlmIC8qIE1CRURUTFNfUEtfVVNFX1BTQV9FQ19EQVRBICovCi0gICAgLmRlYnVnX2Z1bmMgPSBlY2tleV9kZWJ1ZywgICAgICAgIC8qIENvbXBhdGlibGUga2V5IHN0cnVjdHVyZXMgKi8KLX07Ci0jZW5kaWYgLyogTUJFRFRMU19QS19DQU5fRUNEU0FfU09NRSAqLwotI2VuZGlmIC8qIE1CRURUTFNfUEtfSEFWRV9FQ0NfS0VZUyAqLwotCi0jaWYgZGVmaW5lZChNQkVEVExTX1BLX1JTQV9BTFRfU1VQUE9SVCkKLS8qCi0gKiBTdXBwb3J0IGZvciBhbHRlcm5hdGl2ZSBSU0EtcHJpdmF0ZSBpbXBsZW1lbnRhdGlvbnMKLSAqLwotCi1zdGF0aWMgaW50IHJzYV9hbHRfY2FuX2RvKG1iZWR0bHNfcGtfdHlwZV90IHR5cGUpCi17Ci0gICAgcmV0dXJuIHR5cGUgPT0gTUJFRFRMU19QS19SU0E7Ci19Ci0KLXN0YXRpYyBzaXplX3QgcnNhX2FsdF9nZXRfYml0bGVuKG1iZWR0bHNfcGtfY29udGV4dCAqcGspCi17Ci0gICAgY29uc3QgbWJlZHRsc19yc2FfYWx0X2NvbnRleHQgKnJzYV9hbHQgPSBway0+cGtfY3R4OwotCi0gICAgcmV0dXJuIDggKiByc2FfYWx0LT5rZXlfbGVuX2Z1bmMocnNhX2FsdC0+a2V5KTsKLX0KLQotc3RhdGljIGludCByc2FfYWx0X3NpZ25fd3JhcChtYmVkdGxzX3BrX2NvbnRleHQgKnBrLCBtYmVkdGxzX21kX3R5cGVfdCBtZF9hbGcsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgKmhhc2gsIHNpemVfdCBoYXNoX2xlbiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgY2hhciAqc2lnLCBzaXplX3Qgc2lnX3NpemUsIHNpemVfdCAqc2lnX2xlbiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50ICgqZl9ybmcpKHZvaWQgKiwgdW5zaWduZWQgY2hhciAqLCBzaXplX3QpLCB2b2lkICpwX3JuZykKLXsKLSAgICBtYmVkdGxzX3JzYV9hbHRfY29udGV4dCAqcnNhX2FsdCA9IHBrLT5wa19jdHg7Ci0KLSNpZiBTSVpFX01BWCA+IFVJTlRfTUFYCi0gICAgaWYgKFVJTlRfTUFYIDwgaGFzaF9sZW4pIHsKLSAgICAgICAgcmV0dXJuIE1CRURUTFNfRVJSX1BLX0JBRF9JTlBVVF9EQVRBOwotICAgIH0KLSNlbmRpZgotCi0gICAgKnNpZ19sZW4gPSByc2FfYWx0LT5rZXlfbGVuX2Z1bmMocnNhX2FsdC0+a2V5KTsKLSAgICBpZiAoKnNpZ19sZW4gPiBNQkVEVExTX1BLX1NJR05BVFVSRV9NQVhfU0laRSkgewotICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfUEtfQkFEX0lOUFVUX0RBVEE7Ci0gICAgfQotICAgIGlmICgqc2lnX2xlbiA+IHNpZ19zaXplKSB7Ci0gICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9QS19CVUZGRVJfVE9PX1NNQUxMOwotICAgIH0KLQotICAgIHJldHVybiByc2FfYWx0LT5zaWduX2Z1bmMocnNhX2FsdC0+a2V5LCBmX3JuZywgcF9ybmcsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZF9hbGcsICh1bnNpZ25lZCBpbnQpIGhhc2hfbGVuLCBoYXNoLCBzaWcpOwotfQotCi1zdGF0aWMgaW50IHJzYV9hbHRfZGVjcnlwdF93cmFwKG1iZWR0bHNfcGtfY29udGV4dCAqcGssCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgKmlucHV0LCBzaXplX3QgaWxlbiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgY2hhciAqb3V0cHV0LCBzaXplX3QgKm9sZW4sIHNpemVfdCBvc2l6ZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50ICgqZl9ybmcpKHZvaWQgKiwgdW5zaWduZWQgY2hhciAqLCBzaXplX3QpLCB2b2lkICpwX3JuZykKLXsKLSAgICBtYmVkdGxzX3JzYV9hbHRfY29udGV4dCAqcnNhX2FsdCA9IHBrLT5wa19jdHg7Ci0KLSAgICAoKHZvaWQpIGZfcm5nKTsKLSAgICAoKHZvaWQpIHBfcm5nKTsKLQotICAgIGlmIChpbGVuICE9IHJzYV9hbHQtPmtleV9sZW5fZnVuYyhyc2FfYWx0LT5rZXkpKSB7Ci0gICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9SU0FfQkFEX0lOUFVUX0RBVEE7Ci0gICAgfQotCi0gICAgcmV0dXJuIHJzYV9hbHQtPmRlY3J5cHRfZnVuYyhyc2FfYWx0LT5rZXksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbGVuLCBpbnB1dCwgb3V0cHV0LCBvc2l6ZSk7Ci19Ci0KLSNpZiBkZWZpbmVkKE1CRURUTFNfUlNBX0MpCi1zdGF0aWMgaW50IHJzYV9hbHRfY2hlY2tfcGFpcihtYmVkdGxzX3BrX2NvbnRleHQgKnB1YiwgbWJlZHRsc19wa19jb250ZXh0ICpwcnYsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgKCpmX3JuZykodm9pZCAqLCB1bnNpZ25lZCBjaGFyICosIHNpemVfdCksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2b2lkICpwX3JuZykKLXsKLSAgICB1bnNpZ25lZCBjaGFyIHNpZ1tNQkVEVExTX01QSV9NQVhfU0laRV07Ci0gICAgdW5zaWduZWQgY2hhciBoYXNoWzMyXTsKLSAgICBzaXplX3Qgc2lnX2xlbiA9IDA7Ci0gICAgaW50IHJldCA9IE1CRURUTFNfRVJSX0VSUk9SX0NPUlJVUFRJT05fREVURUNURUQ7Ci0KLSAgICBpZiAocnNhX2FsdF9nZXRfYml0bGVuKHBydikgIT0gcnNhX2dldF9iaXRsZW4ocHViKSkgewotICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfUlNBX0tFWV9DSEVDS19GQUlMRUQ7Ci0gICAgfQotCi0gICAgbWVtc2V0KGhhc2gsIDB4MmEsIHNpemVvZihoYXNoKSk7Ci0KLSAgICBpZiAoKHJldCA9IHJzYV9hbHRfc2lnbl93cmFwKHBydiwgTUJFRFRMU19NRF9OT05FLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFzaCwgc2l6ZW9mKGhhc2gpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2lnLCBzaXplb2Yoc2lnKSwgJnNpZ19sZW4sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmX3JuZywgcF9ybmcpKSAhPSAwKSB7Ci0gICAgICAgIHJldHVybiByZXQ7Ci0gICAgfQotCi0gICAgaWYgKHJzYV92ZXJpZnlfd3JhcChwdWIsIE1CRURUTFNfTURfTk9ORSwKLSAgICAgICAgICAgICAgICAgICAgICAgIGhhc2gsIHNpemVvZihoYXNoKSwgc2lnLCBzaWdfbGVuKSAhPSAwKSB7Ci0gICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9SU0FfS0VZX0NIRUNLX0ZBSUxFRDsKLSAgICB9Ci0KLSAgICByZXR1cm4gMDsKLX0KLSNlbmRpZiAvKiBNQkVEVExTX1JTQV9DICovCi0KLXN0YXRpYyB2b2lkICpyc2FfYWx0X2FsbG9jX3dyYXAodm9pZCkKLXsKLSAgICB2b2lkICpjdHggPSBtYmVkdGxzX2NhbGxvYygxLCBzaXplb2YobWJlZHRsc19yc2FfYWx0X2NvbnRleHQpKTsKLQotICAgIGlmIChjdHggIT0gTlVMTCkgewotICAgICAgICBtZW1zZXQoY3R4LCAwLCBzaXplb2YobWJlZHRsc19yc2FfYWx0X2NvbnRleHQpKTsKLSAgICB9Ci0KLSAgICByZXR1cm4gY3R4OwotfQotCi1zdGF0aWMgdm9pZCByc2FfYWx0X2ZyZWVfd3JhcCh2b2lkICpjdHgpCi17Ci0gICAgbWJlZHRsc196ZXJvaXplX2FuZF9mcmVlKGN0eCwgc2l6ZW9mKG1iZWR0bHNfcnNhX2FsdF9jb250ZXh0KSk7Ci19Ci0KLWNvbnN0IG1iZWR0bHNfcGtfaW5mb190IG1iZWR0bHNfcnNhX2FsdF9pbmZvID0gewotICAgIC50eXBlID0gTUJFRFRMU19QS19SU0FfQUxULAotICAgIC5uYW1lID0gIlJTQS1hbHQiLAotICAgIC5nZXRfYml0bGVuID0gcnNhX2FsdF9nZXRfYml0bGVuLAotICAgIC5jYW5fZG8gPSByc2FfYWx0X2Nhbl9kbywKLSAgICAudmVyaWZ5X2Z1bmMgPSBOVUxMLAotICAgIC5zaWduX2Z1bmMgPSByc2FfYWx0X3NpZ25fd3JhcCwKLSNpZiBkZWZpbmVkKE1CRURUTFNfRUNEU0FfQykgJiYgZGVmaW5lZChNQkVEVExTX0VDUF9SRVNUQVJUQUJMRSkKLSAgICAudmVyaWZ5X3JzX2Z1bmMgPSBOVUxMLAotICAgIC5zaWduX3JzX2Z1bmMgPSBOVUxMLAotICAgIC5yc19hbGxvY19mdW5jID0gTlVMTCwKLSAgICAucnNfZnJlZV9mdW5jID0gTlVMTCwKLSNlbmRpZiAvKiBNQkVEVExTX0VDRFNBX0MgJiYgTUJFRFRMU19FQ1BfUkVTVEFSVEFCTEUgKi8KLSAgICAuZGVjcnlwdF9mdW5jID0gcnNhX2FsdF9kZWNyeXB0X3dyYXAsCi0gICAgLmVuY3J5cHRfZnVuYyA9IE5VTEwsCi0jaWYgZGVmaW5lZChNQkVEVExTX1JTQV9DKQotICAgIC5jaGVja19wYWlyX2Z1bmMgPSByc2FfYWx0X2NoZWNrX3BhaXIsCi0jZWxzZQotICAgIC5jaGVja19wYWlyX2Z1bmMgPSBOVUxMLAotI2VuZGlmCi0gICAgLmN0eF9hbGxvY19mdW5jID0gcnNhX2FsdF9hbGxvY193cmFwLAotICAgIC5jdHhfZnJlZV9mdW5jID0gcnNhX2FsdF9mcmVlX3dyYXAsCi0gICAgLmRlYnVnX2Z1bmMgPSBOVUxMLAotfTsKLSNlbmRpZiAvKiBNQkVEVExTX1BLX1JTQV9BTFRfU1VQUE9SVCAqLwotCi0jaWYgZGVmaW5lZChNQkVEVExTX1VTRV9QU0FfQ1JZUFRPKQotc3RhdGljIHNpemVfdCBvcGFxdWVfZ2V0X2JpdGxlbihtYmVkdGxzX3BrX2NvbnRleHQgKnBrKQotewotICAgIHNpemVfdCBiaXRzOwotICAgIHBzYV9rZXlfYXR0cmlidXRlc190IGF0dHJpYnV0ZXMgPSBQU0FfS0VZX0FUVFJJQlVURVNfSU5JVDsKLQotICAgIGlmIChQU0FfU1VDQ0VTUyAhPSBwc2FfZ2V0X2tleV9hdHRyaWJ1dGVzKHBrLT5wcml2X2lkLCAmYXR0cmlidXRlcykpIHsKLSAgICAgICAgcmV0dXJuIDA7Ci0gICAgfQotCi0gICAgYml0cyA9IHBzYV9nZXRfa2V5X2JpdHMoJmF0dHJpYnV0ZXMpOwotICAgIHBzYV9yZXNldF9rZXlfYXR0cmlidXRlcygmYXR0cmlidXRlcyk7Ci0gICAgcmV0dXJuIGJpdHM7Ci19Ci0KLSNpZiBkZWZpbmVkKE1CRURUTFNfUEtfSEFWRV9FQ0NfS0VZUykKLXN0YXRpYyBpbnQgZWNkc2Ffb3BhcXVlX2Nhbl9kbyhtYmVkdGxzX3BrX3R5cGVfdCB0eXBlKQotewotICAgIHJldHVybiB0eXBlID09IE1CRURUTFNfUEtfRUNLRVkgfHwKLSAgICAgICAgICAgdHlwZSA9PSBNQkVEVExTX1BLX0VDRFNBOwotfQotCi1jb25zdCBtYmVkdGxzX3BrX2luZm9fdCBtYmVkdGxzX2VjZHNhX29wYXF1ZV9pbmZvID0gewotICAgIC50eXBlID0gTUJFRFRMU19QS19PUEFRVUUsCi0gICAgLm5hbWUgPSAiT3BhcXVlIiwKLSAgICAuZ2V0X2JpdGxlbiA9IG9wYXF1ZV9nZXRfYml0bGVuLAotICAgIC5jYW5fZG8gPSBlY2RzYV9vcGFxdWVfY2FuX2RvLAotI2lmIGRlZmluZWQoTUJFRFRMU19QS19DQU5fRUNEU0FfVkVSSUZZKQotICAgIC52ZXJpZnlfZnVuYyA9IGVjZHNhX29wYXF1ZV92ZXJpZnlfd3JhcCwKLSNlbHNlIC8qIE1CRURUTFNfUEtfQ0FOX0VDRFNBX1ZFUklGWSAqLwotICAgIC52ZXJpZnlfZnVuYyA9IE5VTEwsCi0jZW5kaWYgLyogTUJFRFRMU19QS19DQU5fRUNEU0FfVkVSSUZZICovCi0jaWYgZGVmaW5lZChNQkVEVExTX1BLX0NBTl9FQ0RTQV9TSUdOKQotICAgIC5zaWduX2Z1bmMgPSBlY2RzYV9vcGFxdWVfc2lnbl93cmFwLAotI2Vsc2UgLyogTUJFRFRMU19QS19DQU5fRUNEU0FfU0lHTiAqLwotICAgIC5zaWduX2Z1bmMgPSBOVUxMLAotI2VuZGlmIC8qIE1CRURUTFNfUEtfQ0FOX0VDRFNBX1NJR04gKi8KLSNpZiBkZWZpbmVkKE1CRURUTFNfRUNEU0FfQykgJiYgZGVmaW5lZChNQkVEVExTX0VDUF9SRVNUQVJUQUJMRSkKLSAgICAudmVyaWZ5X3JzX2Z1bmMgPSBOVUxMLAotICAgIC5zaWduX3JzX2Z1bmMgPSBOVUxMLAotICAgIC5yc19hbGxvY19mdW5jID0gTlVMTCwKLSAgICAucnNfZnJlZV9mdW5jID0gTlVMTCwKLSNlbmRpZiAvKiBNQkVEVExTX0VDRFNBX0MgJiYgTUJFRFRMU19FQ1BfUkVTVEFSVEFCTEUgKi8KLSAgICAuZGVjcnlwdF9mdW5jID0gTlVMTCwKLSAgICAuZW5jcnlwdF9mdW5jID0gTlVMTCwKLSAgICAuY2hlY2tfcGFpcl9mdW5jID0gZWNkc2Ffb3BhcXVlX2NoZWNrX3BhaXJfd3JhcCwKLSAgICAuY3R4X2FsbG9jX2Z1bmMgPSBOVUxMLAotICAgIC5jdHhfZnJlZV9mdW5jID0gTlVMTCwKLSAgICAuZGVidWdfZnVuYyA9IE5VTEwsCi19OwotI2VuZGlmIC8qIE1CRURUTFNfUEtfSEFWRV9FQ0NfS0VZUyAqLwotCi1zdGF0aWMgaW50IHJzYV9vcGFxdWVfY2FuX2RvKG1iZWR0bHNfcGtfdHlwZV90IHR5cGUpCi17Ci0gICAgcmV0dXJuIHR5cGUgPT0gTUJFRFRMU19QS19SU0EgfHwKLSAgICAgICAgICAgdHlwZSA9PSBNQkVEVExTX1BLX1JTQVNTQV9QU1M7Ci19Ci0KLSNpZiBkZWZpbmVkKFBTQV9XQU5UX0tFWV9UWVBFX1JTQV9LRVlfUEFJUl9CQVNJQykKLXN0YXRpYyBpbnQgcnNhX29wYXF1ZV9kZWNyeXB0KG1iZWR0bHNfcGtfY29udGV4dCAqcGssCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1bnNpZ25lZCBjaGFyICppbnB1dCwgc2l6ZV90IGlsZW4sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBjaGFyICpvdXRwdXQsIHNpemVfdCAqb2xlbiwgc2l6ZV90IG9zaXplLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50ICgqZl9ybmcpKHZvaWQgKiwgdW5zaWduZWQgY2hhciAqLCBzaXplX3QpLCB2b2lkICpwX3JuZykKLXsKLSAgICBwc2Ffa2V5X2F0dHJpYnV0ZXNfdCBhdHRyaWJ1dGVzID0gUFNBX0tFWV9BVFRSSUJVVEVTX0lOSVQ7Ci0gICAgcHNhX2FsZ29yaXRobV90IGFsZzsKLSAgICBwc2Ffa2V5X3R5cGVfdCB0eXBlOwotICAgIHBzYV9zdGF0dXNfdCBzdGF0dXM7Ci0KLSAgICAvKiBQU0EgaGFzIGl0cyBvd24gUk5HICovCi0gICAgKHZvaWQpIGZfcm5nOwotICAgICh2b2lkKSBwX3JuZzsKLQotICAgIHN0YXR1cyA9IHBzYV9nZXRfa2V5X2F0dHJpYnV0ZXMocGstPnByaXZfaWQsICZhdHRyaWJ1dGVzKTsKLSAgICBpZiAoc3RhdHVzICE9IFBTQV9TVUNDRVNTKSB7Ci0gICAgICAgIHJldHVybiBQU0FfUEtfVE9fTUJFRFRMU19FUlIoc3RhdHVzKTsKLSAgICB9Ci0KLSAgICB0eXBlID0gcHNhX2dldF9rZXlfdHlwZSgmYXR0cmlidXRlcyk7Ci0gICAgYWxnID0gcHNhX2dldF9rZXlfYWxnb3JpdGhtKCZhdHRyaWJ1dGVzKTsKLSAgICBwc2FfcmVzZXRfa2V5X2F0dHJpYnV0ZXMoJmF0dHJpYnV0ZXMpOwotCi0gICAgaWYgKCFQU0FfS0VZX1RZUEVfSVNfUlNBKHR5cGUpKSB7Ci0gICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9QS19GRUFUVVJFX1VOQVZBSUxBQkxFOwotICAgIH0KLQotICAgIHN0YXR1cyA9IHBzYV9hc3ltbWV0cmljX2RlY3J5cHQocGstPnByaXZfaWQsIGFsZywgaW5wdXQsIGlsZW4sIE5VTEwsIDAsIG91dHB1dCwgb3NpemUsIG9sZW4pOwotICAgIGlmIChzdGF0dXMgIT0gUFNBX1NVQ0NFU1MpIHsKLSAgICAgICAgcmV0dXJuIFBTQV9QS19SU0FfVE9fTUJFRFRMU19FUlIoc3RhdHVzKTsKLSAgICB9Ci0KLSAgICByZXR1cm4gMDsKLX0KLSNlbmRpZiAvKiBQU0FfV0FOVF9LRVlfVFlQRV9SU0FfS0VZX1BBSVJfQkFTSUMgKi8KLQotc3RhdGljIGludCByc2Ffb3BhcXVlX3NpZ25fd3JhcChtYmVkdGxzX3BrX2NvbnRleHQgKnBrLCBtYmVkdGxzX21kX3R5cGVfdCBtZF9hbGcsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgKmhhc2gsIHNpemVfdCBoYXNoX2xlbiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgY2hhciAqc2lnLCBzaXplX3Qgc2lnX3NpemUsIHNpemVfdCAqc2lnX2xlbiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50ICgqZl9ybmcpKHZvaWQgKiwgdW5zaWduZWQgY2hhciAqLCBzaXplX3QpLCB2b2lkICpwX3JuZykKLXsKLSNpZiBkZWZpbmVkKE1CRURUTFNfUlNBX0MpCi0gICAgcHNhX2tleV9hdHRyaWJ1dGVzX3QgYXR0cmlidXRlcyA9IFBTQV9LRVlfQVRUUklCVVRFU19JTklUOwotICAgIHBzYV9hbGdvcml0aG1fdCBhbGc7Ci0gICAgcHNhX2tleV90eXBlX3QgdHlwZTsKLSAgICBwc2Ffc3RhdHVzX3Qgc3RhdHVzOwotCi0gICAgLyogUFNBIGhhcyBpdHMgb3duIFJORyAqLwotICAgICh2b2lkKSBmX3JuZzsKLSAgICAodm9pZCkgcF9ybmc7Ci0KLSAgICBzdGF0dXMgPSBwc2FfZ2V0X2tleV9hdHRyaWJ1dGVzKHBrLT5wcml2X2lkLCAmYXR0cmlidXRlcyk7Ci0gICAgaWYgKHN0YXR1cyAhPSBQU0FfU1VDQ0VTUykgewotICAgICAgICByZXR1cm4gUFNBX1BLX1RPX01CRURUTFNfRVJSKHN0YXR1cyk7Ci0gICAgfQotCi0gICAgdHlwZSA9IHBzYV9nZXRfa2V5X3R5cGUoJmF0dHJpYnV0ZXMpOwotICAgIGFsZyA9IHBzYV9nZXRfa2V5X2FsZ29yaXRobSgmYXR0cmlidXRlcyk7Ci0gICAgcHNhX3Jlc2V0X2tleV9hdHRyaWJ1dGVzKCZhdHRyaWJ1dGVzKTsKLQotICAgIGlmIChQU0FfS0VZX1RZUEVfSVNfUlNBKHR5cGUpKSB7Ci0gICAgICAgIGFsZyA9IChhbGcgJiB+UFNBX0FMR19IQVNIX01BU0spIHwgbWJlZHRsc19tZF9wc2FfYWxnX2Zyb21fdHlwZShtZF9hbGcpOwotICAgIH0gZWxzZSB7Ci0gICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9QS19GRUFUVVJFX1VOQVZBSUxBQkxFOwotICAgIH0KLQotICAgIHN0YXR1cyA9IHBzYV9zaWduX2hhc2gocGstPnByaXZfaWQsIGFsZywgaGFzaCwgaGFzaF9sZW4sIHNpZywgc2lnX3NpemUsIHNpZ19sZW4pOwotICAgIGlmIChzdGF0dXMgIT0gUFNBX1NVQ0NFU1MpIHsKLSAgICAgICAgaWYgKFBTQV9LRVlfVFlQRV9JU19SU0EodHlwZSkpIHsKLSAgICAgICAgICAgIHJldHVybiBQU0FfUEtfUlNBX1RPX01CRURUTFNfRVJSKHN0YXR1cyk7Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICByZXR1cm4gUFNBX1BLX1RPX01CRURUTFNfRVJSKHN0YXR1cyk7Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICByZXR1cm4gMDsKLSNlbHNlIC8qICFNQkVEVExTX1JTQV9DICovCi0gICAgKCh2b2lkKSBwayk7Ci0gICAgKCh2b2lkKSBtZF9hbGcpOwotICAgICgodm9pZCkgaGFzaCk7Ci0gICAgKCh2b2lkKSBoYXNoX2xlbik7Ci0gICAgKCh2b2lkKSBzaWcpOwotICAgICgodm9pZCkgc2lnX3NpemUpOwotICAgICgodm9pZCkgc2lnX2xlbik7Ci0gICAgKCh2b2lkKSBmX3JuZyk7Ci0gICAgKCh2b2lkKSBwX3JuZyk7Ci0gICAgcmV0dXJuIE1CRURUTFNfRVJSX1BLX0ZFQVRVUkVfVU5BVkFJTEFCTEU7Ci0jZW5kaWYgLyogIU1CRURUTFNfUlNBX0MgKi8KLX0KLQotY29uc3QgbWJlZHRsc19wa19pbmZvX3QgbWJlZHRsc19yc2Ffb3BhcXVlX2luZm8gPSB7Ci0gICAgLnR5cGUgPSBNQkVEVExTX1BLX09QQVFVRSwKLSAgICAubmFtZSA9ICJPcGFxdWUiLAotICAgIC5nZXRfYml0bGVuID0gb3BhcXVlX2dldF9iaXRsZW4sCi0gICAgLmNhbl9kbyA9IHJzYV9vcGFxdWVfY2FuX2RvLAotICAgIC52ZXJpZnlfZnVuYyA9IE5VTEwsCi0gICAgLnNpZ25fZnVuYyA9IHJzYV9vcGFxdWVfc2lnbl93cmFwLAotI2lmIGRlZmluZWQoTUJFRFRMU19FQ0RTQV9DKSAmJiBkZWZpbmVkKE1CRURUTFNfRUNQX1JFU1RBUlRBQkxFKQotICAgIC52ZXJpZnlfcnNfZnVuYyA9IE5VTEwsCi0gICAgLnNpZ25fcnNfZnVuYyA9IE5VTEwsCi0gICAgLnJzX2FsbG9jX2Z1bmMgPSBOVUxMLAotICAgIC5yc19mcmVlX2Z1bmMgPSBOVUxMLAotI2VuZGlmIC8qIE1CRURUTFNfRUNEU0FfQyAmJiBNQkVEVExTX0VDUF9SRVNUQVJUQUJMRSAqLwotI2lmIGRlZmluZWQoUFNBX1dBTlRfS0VZX1RZUEVfUlNBX0tFWV9QQUlSX0JBU0lDKQotICAgIC5kZWNyeXB0X2Z1bmMgPSByc2Ffb3BhcXVlX2RlY3J5cHQsCi0jZWxzZSAvKiBQU0FfV0FOVF9LRVlfVFlQRV9SU0FfS0VZX1BBSVJfQkFTSUMgKi8KLSAgICAuZGVjcnlwdF9mdW5jID0gTlVMTCwKLSNlbmRpZiAvKiBQU0FfV0FOVF9LRVlfVFlQRV9SU0FfS0VZX1BBSVJfQkFTSUMgKi8KLSAgICAuZW5jcnlwdF9mdW5jID0gTlVMTCwKLSAgICAuY2hlY2tfcGFpcl9mdW5jID0gTlVMTCwKLSAgICAuY3R4X2FsbG9jX2Z1bmMgPSBOVUxMLAotICAgIC5jdHhfZnJlZV9mdW5jID0gTlVMTCwKLSAgICAuZGVidWdfZnVuYyA9IE5VTEwsCi19OwotCi0jZW5kaWYgLyogTUJFRFRMU19VU0VfUFNBX0NSWVBUTyAqLwotCi0jZW5kaWYgLyogTUJFRFRMU19QS19DICovCmRpZmYgLS1naXQgYS9saWJyYXJ5L3BsYXRmb3JtX3V0aWwuYyBiL2xpYnJhcnkvcGxhdGZvcm1fdXRpbC5jCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwNzQxYmY1Li4wMDAwMDAwCi0tLSBhL2xpYnJhcnkvcGxhdGZvcm1fdXRpbC5jCisrKyAvZGV2L251bGwKQEAgLTEsMjYzICswLDAgQEAKLS8qCi0gKiBDb21tb24gYW5kIHNoYXJlZCBmdW5jdGlvbnMgdXNlZCBieSBtdWx0aXBsZSBtb2R1bGVzIGluIHRoZSBNYmVkIFRMUwotICogbGlicmFyeS4KLSAqCi0gKiAgQ29weXJpZ2h0IFRoZSBNYmVkIFRMUyBDb250cmlidXRvcnMKLSAqICBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMCBPUiBHUEwtMi4wLW9yLWxhdGVyCi0gKi8KLQotLyoKLSAqIEVuc3VyZSBnbXRpbWVfciBpcyBhdmFpbGFibGUgZXZlbiB3aXRoIC1zdGQ9Yzk5OyBtdXN0IGJlIGRlZmluZWQgYmVmb3JlCi0gKiBtYmVkdGxzX2NvbmZpZy5oLCB3aGljaCBwdWxscyBpbiBnbGliYydzIGZlYXR1cmVzLmguIEhhcm1sZXNzIG9uIG90aGVyIHBsYXRmb3JtcwotICogZXhjZXB0IE9wZW5CU0QsIHdoZXJlIGl0IHN0b3BzIHVzIGFjY2Vzc2luZyBleHBsaWNpdF9iemVyby4KLSAqLwotI2lmICFkZWZpbmVkKF9QT1NJWF9DX1NPVVJDRSkgJiYgIWRlZmluZWQoX19PcGVuQlNEX18pCi0jZGVmaW5lIF9QT1NJWF9DX1NPVVJDRSAyMDAxMTJMCi0jZW5kaWYKLQotI2lmICFkZWZpbmVkKF9HTlVfU09VUkNFKQotLyogQ2xhbmcgcmVxdWlyZXMgdGhpcyB0byBnZXQgc3VwcG9ydCBmb3IgZXhwbGljaXRfYnplcm8gKi8KLSNkZWZpbmUgX0dOVV9TT1VSQ0UKLSNlbmRpZgotCi0jaW5jbHVkZSAiY29tbW9uLmgiCi0KLSNpbmNsdWRlICJtYmVkdGxzL3BsYXRmb3JtX3V0aWwuaCIKLSNpbmNsdWRlICJtYmVkdGxzL3BsYXRmb3JtLmgiCi0jaW5jbHVkZSAibWJlZHRscy90aHJlYWRpbmcuaCIKLQotI2luY2x1ZGUgPHN0ZGRlZi5oPgotCi0jaWZuZGVmIF9fU1REQ19XQU5UX0xJQl9FWFQxX18KLSNkZWZpbmUgX19TVERDX1dBTlRfTElCX0VYVDFfXyAxIC8qIEFzayBmb3IgdGhlIEMxMSBnbXRpbWVfcygpIGFuZCBtZW1zZXRfcygpIGlmIGF2YWlsYWJsZSAqLwotI2VuZGlmCi0jaW5jbHVkZSA8c3RyaW5nLmg+Ci0KLSNpZiBkZWZpbmVkKF9XSU4zMikKLSNpbmNsdWRlIDx3aW5kb3dzLmg+Ci0jZW5kaWYKLQotLy8gRGV0ZWN0IHBsYXRmb3JtcyBrbm93biB0byBzdXBwb3J0IGV4cGxpY2l0X2J6ZXJvKCkKLSNpZiBkZWZpbmVkKF9fR0xJQkNfXykgJiYgKF9fR0xJQkNfXyA+PSAyKSAmJiAoX19HTElCQ19NSU5PUl9fID49IDI1KQotI2RlZmluZSBNQkVEVExTX1BMQVRGT1JNX0hBU19FWFBMSUNJVF9CWkVSTyAxCi0jZWxpZiAoZGVmaW5lZChfX0ZyZWVCU0RfXykgJiYgKF9fRnJlZUJTRF92ZXJzaW9uID49IDExMDAwMzcpKSB8fCBkZWZpbmVkKF9fT3BlbkJTRF9fKQotI2RlZmluZSBNQkVEVExTX1BMQVRGT1JNX0hBU19FWFBMSUNJVF9CWkVSTyAxCi0jZW5kaWYKLQotI2lmICFkZWZpbmVkKE1CRURUTFNfUExBVEZPUk1fWkVST0laRV9BTFQpCi0KLSN1bmRlZiBIQVZFX01FTU9SWV9TQU5JVElaRVIKLSNpZiBkZWZpbmVkKF9faGFzX2ZlYXR1cmUpCi0jaWYgX19oYXNfZmVhdHVyZShtZW1vcnlfc2FuaXRpemVyKQotI2luY2x1ZGUgPHNhbml0aXplci9tc2FuX2ludGVyZmFjZS5oPgotI2RlZmluZSBIQVZFX01FTU9SWV9TQU5JVElaRVIKLSNlbmRpZgotI2VuZGlmCi0KLS8qCi0gKiBXaGVyZSBwb3NzaWJsZSwgd2UgdHJ5IHRvIGRldGVjdCB0aGUgcHJlc2VuY2Ugb2YgYSBwbGF0Zm9ybS1wcm92aWRlZAotICogc2VjdXJlIG1lbXNldCwgc3VjaCBhcyBleHBsaWNpdF9iemVybygpLCB0aGF0IGlzIHNhZmUgYWdhaW5zdCBiZWluZyBvcHRpbWl6ZWQKLSAqIG91dCwgYW5kIHVzZSB0aGF0LgotICoKLSAqIEZvciBvdGhlciBwbGF0Zm9ybXMsIHdlIHByb3ZpZGUgYW4gaW1wbGVtZW50YXRpb24gdGhhdCBhaW1zIG5vdCB0byBiZQotICogb3B0aW1pemVkIG91dCBieSB0aGUgY29tcGlsZXIuCi0gKgotICogVGhpcyBpbXBsZW1lbnRhdGlvbiBmb3IgbWJlZHRsc19wbGF0Zm9ybV96ZXJvaXplKCkgd2FzIGluc3BpcmVkIGZyb20gQ29saW4KLSAqIFBlcmNpdmFsJ3MgYmxvZyBhcnRpY2xlIGF0OgotICoKLSAqIGh0dHA6Ly93d3cuZGFlbW9ub2xvZ3kubmV0L2Jsb2cvMjAxNC0wOS0wNC1ob3ctdG8temVyby1hLWJ1ZmZlci5odG1sCi0gKgotICogSXQgdXNlcyBhIHZvbGF0aWxlIGZ1bmN0aW9uIHBvaW50ZXIgdG8gdGhlIHN0YW5kYXJkIG1lbXNldCgpLiBCZWNhdXNlIHRoZQotICogcG9pbnRlciBpcyB2b2xhdGlsZSB0aGUgY29tcGlsZXIgZXhwZWN0cyBpdCB0byBjaGFuZ2UgYXQKLSAqIGFueSB0aW1lIGFuZCB3aWxsIG5vdCBvcHRpbWl6ZSBvdXQgdGhlIGNhbGwgdGhhdCBjb3VsZCBwb3RlbnRpYWxseSBwZXJmb3JtCi0gKiBvdGhlciBvcGVyYXRpb25zIG9uIHRoZSBpbnB1dCBidWZmZXIgaW5zdGVhZCBvZiBqdXN0IHNldHRpbmcgaXQgdG8gMC4KLSAqIE5ldmVydGhlbGVzcywgYXMgcG9pbnRlZCBvdXQgYnkgZGF2aWR0Z29sZGJsYXR0IG9uIEhhY2tlciBOZXdzCi0gKiAocmVmZXIgdG8gaHR0cDovL3d3dy5kYWVtb25vbG9neS5uZXQvYmxvZy8yMDE0LTA5LTA1LWVycmF0dW0uaHRtbCBmb3IKLSAqIGRldGFpbHMpLCBvcHRpbWl6YXRpb25zIG9mIHRoZSBmb2xsb3dpbmcgZm9ybSBhcmUgc3RpbGwgcG9zc2libGU6Ci0gKgotICogaWYgKG1lbXNldF9mdW5jICE9IG1lbXNldCkKLSAqICAgICBtZW1zZXRfZnVuYyhidWYsIDAsIGxlbik7Ci0gKgotICogTm90ZSB0aGF0IGl0IGlzIGV4dHJlbWVseSBkaWZmaWN1bHQgdG8gZ3VhcmFudGVlIHRoYXQKLSAqIHRoZSBtZW1zZXQoKSBjYWxsIHdpbGwgbm90IGJlIG9wdGltaXplZCBvdXQgYnkgYWdncmVzc2l2ZSBjb21waWxlcnMKLSAqIGluIGEgcG9ydGFibGUgd2F5LiBGb3IgdGhpcyByZWFzb24sIE1iZWQgVExTIGFsc28gcHJvdmlkZXMgdGhlIGNvbmZpZ3VyYXRpb24KLSAqIG9wdGlvbiBNQkVEVExTX1BMQVRGT1JNX1pFUk9JWkVfQUxULCB3aGljaCBhbGxvd3MgdXNlcnMgdG8gY29uZmlndXJlCi0gKiBtYmVkdGxzX3BsYXRmb3JtX3plcm9pemUoKSB0byB1c2UgYSBzdWl0YWJsZSBpbXBsZW1lbnRhdGlvbiBmb3IgdGhlaXIKLSAqIHBsYXRmb3JtIGFuZCBuZWVkcy4KLSAqLwotI2lmICFkZWZpbmVkKE1CRURUTFNfUExBVEZPUk1fSEFTX0VYUExJQ0lUX0JaRVJPKSAmJiAhKGRlZmluZWQoX19TVERDX0xJQl9FWFQxX18pICYmIFwKLSAgICAhZGVmaW5lZChfX0lBUl9TWVNURU1TX0lDQ19fKSkgXAotICAgICYmICFkZWZpbmVkKF9XSU4zMikKLXN0YXRpYyB2b2lkICooKmNvbnN0IHZvbGF0aWxlIG1lbXNldF9mdW5jKSh2b2lkICosIGludCwgc2l6ZV90KSA9IG1lbXNldDsKLSNlbmRpZgotCi12b2lkIG1iZWR0bHNfcGxhdGZvcm1femVyb2l6ZSh2b2lkICpidWYsIHNpemVfdCBsZW4pCi17Ci0gICAgaWYgKGxlbiA+IDApIHsKLSNpZiBkZWZpbmVkKE1CRURUTFNfUExBVEZPUk1fSEFTX0VYUExJQ0lUX0JaRVJPKQotICAgICAgICBleHBsaWNpdF9iemVybyhidWYsIGxlbik7Ci0jaWYgZGVmaW5lZChIQVZFX01FTU9SWV9TQU5JVElaRVIpCi0gICAgICAgIC8qIFlvdSdkIHRoaW5rIHRoYXQgTXNhbiB3b3VsZCByZWNvZ25pemUgZXhwbGljaXRfYnplcm8oKSBhcwotICAgICAgICAgKiBlcXVpdmFsZW50IHRvIGJ6ZXJvKCksIGJ1dCBpdCBhY3R1YWxseSBkb2Vzbid0IG9uIHNldmVyYWwKLSAgICAgICAgICogcGxhdGZvcm1zLCBpbmNsdWRpbmcgTGludXggKFVidW50dSAyMC4wNCkuCi0gICAgICAgICAqIGh0dHBzOi8vZ2l0aHViLmNvbS9nb29nbGUvc2FuaXRpemVycy9pc3N1ZXMvMTUwNwotICAgICAgICAgKiBodHRwczovL2dpdGh1Yi5jb20vb3BlbnNzaC9vcGVuc3NoLXBvcnRhYmxlL2NvbW1pdC83NDQzM2ExOWJiNmY0Y2VmNjA3NjgwZmE0ZDFkN2Q4MWNhMzgyNmFhCi0gICAgICAgICAqLwotICAgICAgICBfX21zYW5fdW5wb2lzb24oYnVmLCBsZW4pOwotI2VuZGlmCi0jZWxpZiBkZWZpbmVkKF9fU1REQ19MSUJfRVhUMV9fKSAmJiAhZGVmaW5lZChfX0lBUl9TWVNURU1TX0lDQ19fKQotICAgICAgICBtZW1zZXRfcyhidWYsIGxlbiwgMCwgbGVuKTsKLSNlbGlmIGRlZmluZWQoX1dJTjMyKQotICAgICAgICBTZWN1cmVaZXJvTWVtb3J5KGJ1ZiwgbGVuKTsKLSNlbHNlCi0gICAgICAgIG1lbXNldF9mdW5jKGJ1ZiwgMCwgbGVuKTsKLSNlbmRpZgotCi0jaWYgZGVmaW5lZChfX0dOVUNfXykKLSAgICAgICAgLyogRm9yIGNsYW5nIGFuZCByZWNlbnQgZ2NjLCBwcmV0ZW5kIHRoYXQgd2UgaGF2ZSBzb21lIGFzc2VtYmx5IHRoYXQgcmVhZHMgdGhlCi0gICAgICAgICAqIHplcm8nZCBtZW1vcnkgYXMgYW4gYWRkaXRpb25hbCBwcm90ZWN0aW9uIGFnYWluc3QgYmVpbmcgb3B0aW1pc2VkIGF3YXkuICovCi0jaWYgZGVmaW5lZChfX2NsYW5nX18pIHx8IChfX0dOVUNfXyA+PSAxMCkKLSNpZiBkZWZpbmVkKF9fY2xhbmdfXykKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVd2bGEiCi0jZWxpZiBkZWZpbmVkKE1CRURUTFNfQ09NUElMRVJfSVNfR0NDKQotI3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIEdDQyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XdmxhIgotI2VuZGlmCi0gICAgICAgIGFzbSB2b2xhdGlsZSAoIiIgOiA6ICJtIiAoKihjaGFyICgqKVtsZW5dKSBidWYpIDopOwotI2lmIGRlZmluZWQoX19jbGFuZ19fKQotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAotI2VsaWYgZGVmaW5lZChNQkVEVExTX0NPTVBJTEVSX0lTX0dDQykKLSNwcmFnbWEgR0NDIGRpYWdub3N0aWMgcG9wCi0jZW5kaWYKLSNlbmRpZgotI2VuZGlmCi0gICAgfQotfQotI2VuZGlmIC8qIE1CRURUTFNfUExBVEZPUk1fWkVST0laRV9BTFQgKi8KLQotdm9pZCBtYmVkdGxzX3plcm9pemVfYW5kX2ZyZWUodm9pZCAqYnVmLCBzaXplX3QgbGVuKQotewotICAgIGlmIChidWYgIT0gTlVMTCkgewotICAgICAgICBtYmVkdGxzX3BsYXRmb3JtX3plcm9pemUoYnVmLCBsZW4pOwotICAgIH0KLQotICAgIG1iZWR0bHNfZnJlZShidWYpOwotfQotCi0jaWYgZGVmaW5lZChNQkVEVExTX0hBVkVfVElNRV9EQVRFKSAmJiAhZGVmaW5lZChNQkVEVExTX1BMQVRGT1JNX0dNVElNRV9SX0FMVCkKLSNpbmNsdWRlIDx0aW1lLmg+Ci0jaWYgIWRlZmluZWQoX1dJTjMyKSAmJiAoZGVmaW5lZCh1bml4KSB8fCBcCi0gICAgZGVmaW5lZChfX3VuaXgpIHx8IGRlZmluZWQoX191bml4X18pIHx8IChkZWZpbmVkKF9fQVBQTEVfXykgJiYgXAotICAgIGRlZmluZWQoX19NQUNIX18pKSB8fCBkZWZpbmVkX19taWRpcGl4X18pCi0jaW5jbHVkZSA8dW5pc3RkLmg+Ci0jZW5kaWYgLyogIV9XSU4zMiAmJiAodW5peCB8fCBfX3VuaXggfHwgX191bml4X18gfHwKLSAgICAgICAgKiAoX19BUFBMRV9fICYmIF9fTUFDSF9fKSB8fCBfX21pZGlwaXhfXykgKi8KLQotI2lmICEoKGRlZmluZWQoX1BPU0lYX1ZFUlNJT04pICYmIF9QT1NJWF9WRVJTSU9OID49IDIwMDgwOUwpIHx8ICAgICBcCi0gICAgKGRlZmluZWQoX1BPU0lYX1RIUkVBRF9TQUZFX0ZVTkNUSU9OUykgJiYgICAgICAgICAgICAgICAgICAgICBcCi0gICAgX1BPU0lYX1RIUkVBRF9TQUZFX0ZVTkNUSU9OUyA+PSAyMDAxMTJMKSkKLS8qCi0gKiBUaGlzIGlzIGEgY29udmVuaWVuY2Ugc2hvcnRoYW5kIG1hY3JvIHRvIGF2b2lkIGNoZWNraW5nIHRoZSBsb25nCi0gKiBwcmVwcm9jZXNzb3IgY29uZGl0aW9ucyBhYm92ZS4gSWRlYWxseSwgd2UgY291bGQgZXhwb3NlIHRoaXMgbWFjcm8gaW4KLSAqIHBsYXRmb3JtX3V0aWwuaCBhbmQgc2ltcGx5IHVzZSBpdCBpbiBwbGF0Zm9ybV91dGlsLmMsIHRocmVhZGluZy5jIGFuZAotICogdGhyZWFkaW5nLmguIEhvd2V2ZXIsIHRoaXMgbWFjcm8gaXMgbm90IHBhcnQgb2YgdGhlIE1iZWQgVExTIHB1YmxpYyBBUEksIHNvCi0gKiB3ZSBrZWVwIGl0IHByaXZhdGUgYnkgb25seSBkZWZpbmluZyBpdCBpbiB0aGlzIGZpbGUKLSAqLwotI2lmICEoZGVmaW5lZChfV0lOMzIpICYmICFkZWZpbmVkKEVGSVg2NCkgJiYgIWRlZmluZWQoRUZJMzIpKSB8fCBcCi0gICAgKGRlZmluZWQoX19NSU5HVzMyX18pICYmICFkZWZpbmVkKF9fTUlOR1c2NF9WRVJTSU9OX01BSk9SKSkKLSNkZWZpbmUgUExBVEZPUk1fVVRJTF9VU0VfR01USU1FCi0jZW5kaWYKLQotI2VuZGlmIC8qICEoICggZGVmaW5lZChfUE9TSVhfVkVSU0lPTikgJiYgX1BPU0lYX1ZFUlNJT04gPj0gMjAwODA5TCApIHx8IFwKLSAgICAgICAgICAgICAoIGRlZmluZWQoX1BPU0lYX1RIUkVBRF9TQUZFX0ZVTkNUSU9OUyApICYmIFwKLSAgICAgICAgICAgICAgICBfUE9TSVhfVEhSRUFEX1NBRkVfRlVOQ1RJT05TID49IDIwMDExMkwgKSApICovCi0KLXN0cnVjdCB0bSAqbWJlZHRsc19wbGF0Zm9ybV9nbXRpbWVfcihjb25zdCBtYmVkdGxzX3RpbWVfdCAqdHQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IHRtICp0bV9idWYpCi17Ci0jaWYgZGVmaW5lZChfV0lOMzIpICYmICFkZWZpbmVkKFBMQVRGT1JNX1VUSUxfVVNFX0dNVElNRSkKLSNpZiBkZWZpbmVkKF9fU1REQ19MSUJfRVhUMV9fKQotICAgIHJldHVybiAoZ210aW1lX3ModHQsIHRtX2J1ZikgPT0gMCkgPyBOVUxMIDogdG1fYnVmOwotI2Vsc2UKLSAgICAvKiBNU1ZDIGFuZCBtaW5ndzY0IGFyZ3VtZW50IG9yZGVyIGFuZCByZXR1cm4gdmFsdWUgYXJlIGluY29uc2lzdGVudCB3aXRoIHRoZSBDMTEgc3RhbmRhcmQgKi8KLSAgICByZXR1cm4gKGdtdGltZV9zKHRtX2J1ZiwgdHQpID09IDApID8gdG1fYnVmIDogTlVMTDsKLSNlbmRpZgotI2VsaWYgIWRlZmluZWQoUExBVEZPUk1fVVRJTF9VU0VfR01USU1FKQotICAgIHJldHVybiBnbXRpbWVfcih0dCwgdG1fYnVmKTsKLSNlbHNlCi0gICAgc3RydWN0IHRtICpsdDsKLQotI2lmIGRlZmluZWQoTUJFRFRMU19USFJFQURJTkdfQykKLSAgICBpZiAobWJlZHRsc19tdXRleF9sb2NrKCZtYmVkdGxzX3RocmVhZGluZ19nbXRpbWVfbXV0ZXgpICE9IDApIHsKLSAgICAgICAgcmV0dXJuIE5VTEw7Ci0gICAgfQotI2VuZGlmIC8qIE1CRURUTFNfVEhSRUFESU5HX0MgKi8KLQotICAgIGx0ID0gZ210aW1lKHR0KTsKLQotICAgIGlmIChsdCAhPSBOVUxMKSB7Ci0gICAgICAgIG1lbWNweSh0bV9idWYsIGx0LCBzaXplb2Yoc3RydWN0IHRtKSk7Ci0gICAgfQotCi0jaWYgZGVmaW5lZChNQkVEVExTX1RIUkVBRElOR19DKQotICAgIGlmIChtYmVkdGxzX211dGV4X3VubG9jaygmbWJlZHRsc190aHJlYWRpbmdfZ210aW1lX211dGV4KSAhPSAwKSB7Ci0gICAgICAgIHJldHVybiBOVUxMOwotICAgIH0KLSNlbmRpZiAvKiBNQkVEVExTX1RIUkVBRElOR19DICovCi0KLSAgICByZXR1cm4gKGx0ID09IE5VTEwpID8gTlVMTCA6IHRtX2J1ZjsKLSNlbmRpZiAvKiBfV0lOMzIgJiYgIUVGSVg2NCAmJiAhRUZJMzIgKi8KLX0KLSNlbmRpZiAvKiBNQkVEVExTX0hBVkVfVElNRV9EQVRFICYmIE1CRURUTFNfUExBVEZPUk1fR01USU1FX1JfQUxUICovCi0KLSNpZiBkZWZpbmVkKE1CRURUTFNfVEVTVF9IT09LUykKLXZvaWQgKCptYmVkdGxzX3Rlc3RfaG9va190ZXN0X2ZhaWwpKGNvbnN0IGNoYXIgKiwgaW50LCBjb25zdCBjaGFyICopOwotI2VuZGlmIC8qIE1CRURUTFNfVEVTVF9IT09LUyAqLwotCi0jaWYgZGVmaW5lZChNQkVEVExTX0hBVkVfVElNRSkgJiYgIWRlZmluZWQoTUJFRFRMU19QTEFURk9STV9NU19USU1FX0FMVCkKLQotI2luY2x1ZGUgPHRpbWUuaD4KLSNpZiAhZGVmaW5lZChfV0lOMzIpICYmIFwKLSAgICAoZGVmaW5lZCh1bml4KSB8fCBkZWZpbmVkKF9fdW5peCkgfHwgZGVmaW5lZChfX3VuaXhfXykgfHwgXAotICAgIChkZWZpbmVkKF9fQVBQTEVfXykgJiYgZGVmaW5lZChfX01BQ0hfXykpIHx8IGRlZmluZWQoX19IQUlLVV9fKSB8fCBkZWZpbmVkKF9fbWlkaXBpeF9fKSkKLSNpbmNsdWRlIDx1bmlzdGQuaD4KLSNlbmRpZiBcCi0gICAgLyogIV9XSU4zMiAmJiAodW5peCB8fCBfX3VuaXggfHwgX191bml4X18gfHwgKF9fQVBQTEVfXyAmJiBfX01BQ0hfXykgfHwgX19IQUlLVV9fIHx8IF9fbWlkaXBpeF9fKSAqLwotI2lmIChkZWZpbmVkKF9QT1NJWF9WRVJTSU9OKSAmJiBfUE9TSVhfVkVSU0lPTiA+PSAxOTkzMDlMKSB8fCBkZWZpbmVkKF9fSEFJS1VfXykKLW1iZWR0bHNfbXNfdGltZV90IG1iZWR0bHNfbXNfdGltZSh2b2lkKQotewotICAgIGludCByZXQ7Ci0gICAgc3RydWN0IHRpbWVzcGVjIHR2OwotICAgIG1iZWR0bHNfbXNfdGltZV90IGN1cnJlbnRfbXM7Ci0KLSNpZiBkZWZpbmVkKF9fbGludXhfXykgJiYgZGVmaW5lZChDTE9DS19CT09UVElNRSkgfHwgZGVmaW5lZChfX21pZGlwaXhfXykKLSAgICByZXQgPSBjbG9ja19nZXR0aW1lKENMT0NLX0JPT1RUSU1FLCAmdHYpOwotI2Vsc2UKLSAgICByZXQgPSBjbG9ja19nZXR0aW1lKENMT0NLX01PTk9UT05JQywgJnR2KTsKLSNlbmRpZgotICAgIGlmIChyZXQpIHsKLSAgICAgICAgcmV0dXJuIHRpbWUoTlVMTCkgKiAxMDAwOwotICAgIH0KLQotICAgIGN1cnJlbnRfbXMgPSB0di50dl9zZWM7Ci0KLSAgICByZXR1cm4gY3VycmVudF9tcyoxMDAwICsgdHYudHZfbnNlYyAvIDEwMDAwMDA7Ci19Ci0jZWxpZiBkZWZpbmVkKF9XSU4zMikgfHwgZGVmaW5lZChXSU4zMikgfHwgZGVmaW5lZChfX0NZR1dJTl9fKSB8fCBcCi0gICAgZGVmaW5lZChfX01JTkdXMzJfXykgfHwgZGVmaW5lZChfV0lONjQpCi0jaW5jbHVkZSA8d2luZG93cy5oPgotbWJlZHRsc19tc190aW1lX3QgbWJlZHRsc19tc190aW1lKHZvaWQpCi17Ci0gICAgRklMRVRJTUUgY3Q7Ci0gICAgbWJlZHRsc19tc190aW1lX3QgY3VycmVudF9tczsKLQotICAgIEdldFN5c3RlbVRpbWVBc0ZpbGVUaW1lKCZjdCk7Ci0gICAgY3VycmVudF9tcyA9ICgobWJlZHRsc19tc190aW1lX3QpIGN0LmR3TG93RGF0ZVRpbWUgKwotICAgICAgICAgICAgICAgICAgKChtYmVkdGxzX21zX3RpbWVfdCkgKGN0LmR3SGlnaERhdGVUaW1lKSA8PCAzMkxMKSkvMTAwMDA7Ci0gICAgcmV0dXJuIGN1cnJlbnRfbXM7Ci19Ci0jZWxzZQotI2Vycm9yICJObyBtYmVkdGxzX21zX3RpbWUgYXZhaWxhYmxlIgotI2VuZGlmCi0jZW5kaWYgLyogTUJFRFRMU19IQVZFX1RJTUUgJiYgIU1CRURUTFNfUExBVEZPUk1fTVNfVElNRV9BTFQgKi8KZGlmZiAtLWdpdCBhL2xpYnJhcnkvcG9seTEzMDUuYyBiL2xpYnJhcnkvcG9seTEzMDUuYwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYzllYmU5ZS4uMDAwMDAwMAotLS0gYS9saWJyYXJ5L3BvbHkxMzA1LmMKKysrIC9kZXYvbnVsbApAQCAtMSw0OTIgKzAsMCBAQAotLyoqCi0gKiBcZmlsZSBwb2x5MTMwNS5jCi0gKgotICogXGJyaWVmIFBvbHkxMzA1IGF1dGhlbnRpY2F0aW9uIGFsZ29yaXRobS4KLSAqCi0gKiAgQ29weXJpZ2h0IFRoZSBNYmVkIFRMUyBDb250cmlidXRvcnMKLSAqICBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMCBPUiBHUEwtMi4wLW9yLWxhdGVyCi0gKi8KLSNpbmNsdWRlICJjb21tb24uaCIKLQotI2lmIGRlZmluZWQoTUJFRFRMU19QT0xZMTMwNV9DKQotCi0jaW5jbHVkZSAibWJlZHRscy9wb2x5MTMwNS5oIgotI2luY2x1ZGUgIm1iZWR0bHMvcGxhdGZvcm1fdXRpbC5oIgotI2luY2x1ZGUgIm1iZWR0bHMvZXJyb3IuaCIKLQotI2luY2x1ZGUgPHN0cmluZy5oPgotCi0jaW5jbHVkZSAibWJlZHRscy9wbGF0Zm9ybS5oIgotCi0jaWYgIWRlZmluZWQoTUJFRFRMU19QT0xZMTMwNV9BTFQpCi0KLSNkZWZpbmUgUE9MWTEzMDVfQkxPQ0tfU0laRV9CWVRFUyAoMTZVKQotCi0vKgotICogT3VyIGltcGxlbWVudGF0aW9uIGlzIHR1bmVkIGZvciAzMi1iaXQgcGxhdGZvcm1zIHdpdGggYSA2NC1iaXQgbXVsdGlwbGllci4KLSAqIEhvd2V2ZXIgd2UgcHJvdmlkZWQgYW4gYWx0ZXJuYXRpdmUgZm9yIHBsYXRmb3JtcyB3aXRob3V0IHN1Y2ggYSBtdWx0aXBsaWVyLgotICovCi0jaWYgZGVmaW5lZChNQkVEVExTX05PXzY0QklUX01VTFRJUExJQ0FUSU9OKQotc3RhdGljIHVpbnQ2NF90IG11bDY0KHVpbnQzMl90IGEsIHVpbnQzMl90IGIpCi17Ci0gICAgLyogYSA9IGFsICsgMioqMTYgYWgsIGIgPSBibCArIDIqKjE2IGJoICovCi0gICAgY29uc3QgdWludDE2X3QgYWwgPSAodWludDE2X3QpIGE7Ci0gICAgY29uc3QgdWludDE2X3QgYmwgPSAodWludDE2X3QpIGI7Ci0gICAgY29uc3QgdWludDE2X3QgYWggPSBhID4+IDE2OwotICAgIGNvbnN0IHVpbnQxNl90IGJoID0gYiA+PiAxNjsKLQotICAgIC8qIGFiID0gYWwqYmwgKyAyKioxNiAoYWgqYmwgKyBibCpiaCkgKyAyKiozMiBhaCpiaCAqLwotICAgIGNvbnN0IHVpbnQzMl90IGxvID0gKHVpbnQzMl90KSBhbCAqIGJsOwotICAgIGNvbnN0IHVpbnQ2NF90IG1lID0gKHVpbnQ2NF90KSAoKHVpbnQzMl90KSBhaCAqIGJsKSArICh1aW50MzJfdCkgYWwgKiBiaDsKLSAgICBjb25zdCB1aW50MzJfdCBoaSA9ICh1aW50MzJfdCkgYWggKiBiaDsKLQotICAgIHJldHVybiBsbyArIChtZSA8PCAxNikgKyAoKHVpbnQ2NF90KSBoaSA8PCAzMik7Ci19Ci0jZWxzZQotc3RhdGljIGlubGluZSB1aW50NjRfdCBtdWw2NCh1aW50MzJfdCBhLCB1aW50MzJfdCBiKQotewotICAgIHJldHVybiAodWludDY0X3QpIGEgKiBiOwotfQotI2VuZGlmCi0KLQotLyoqCi0gKiBcYnJpZWYgICAgICAgICAgICAgICAgICAgUHJvY2VzcyBibG9ja3Mgd2l0aCBQb2x5MTMwNS4KLSAqCi0gKiBccGFyYW0gY3R4ICAgICAgICAgICAgICAgVGhlIFBvbHkxMzA1IGNvbnRleHQuCi0gKiBccGFyYW0gbmJsb2NrcyAgICAgICAgICAgTnVtYmVyIG9mIGJsb2NrcyB0byBwcm9jZXNzLiBOb3RlIHRoYXQgdGhpcwotICogICAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmN0aW9uIG9ubHkgcHJvY2Vzc2VzIGZ1bGwgYmxvY2tzLgotICogXHBhcmFtIGlucHV0ICAgICAgICAgICAgIEJ1ZmZlciBjb250YWluaW5nIHRoZSBpbnB1dCBibG9jayhzKS4KLSAqIFxwYXJhbSBuZWVkc19wYWRkaW5nICAgICBTZXQgdG8gMCBpZiB0aGUgcGFkZGluZyBiaXQgaGFzIGFscmVhZHkgYmVlbgotICogICAgICAgICAgICAgICAgICAgICAgICAgIGFwcGxpZWQgdG8gdGhlIGlucHV0IGRhdGEgYmVmb3JlIGNhbGxpbmcgdGhpcwotICogICAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmN0aW9uLiAgT3RoZXJ3aXNlLCBzZXQgdGhpcyBwYXJhbWV0ZXIgdG8gMS4KLSAqLwotc3RhdGljIHZvaWQgcG9seTEzMDVfcHJvY2VzcyhtYmVkdGxzX3BvbHkxMzA1X2NvbnRleHQgKmN0eCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IG5ibG9ja3MsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgKmlucHV0LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCBuZWVkc19wYWRkaW5nKQotewotICAgIHVpbnQ2NF90IGQwLCBkMSwgZDIsIGQzOwotICAgIHVpbnQzMl90IGFjYzAsIGFjYzEsIGFjYzIsIGFjYzMsIGFjYzQ7Ci0gICAgdWludDMyX3QgcjAsIHIxLCByMiwgcjM7Ci0gICAgdWludDMyX3QgcnMxLCByczIsIHJzMzsKLSAgICBzaXplX3Qgb2Zmc2V0ICA9IDBVOwotICAgIHNpemVfdCBpOwotCi0gICAgcjAgPSBjdHgtPnJbMF07Ci0gICAgcjEgPSBjdHgtPnJbMV07Ci0gICAgcjIgPSBjdHgtPnJbMl07Ci0gICAgcjMgPSBjdHgtPnJbM107Ci0KLSAgICByczEgPSByMSArIChyMSA+PiAyVSk7Ci0gICAgcnMyID0gcjIgKyAocjIgPj4gMlUpOwotICAgIHJzMyA9IHIzICsgKHIzID4+IDJVKTsKLQotICAgIGFjYzAgPSBjdHgtPmFjY1swXTsKLSAgICBhY2MxID0gY3R4LT5hY2NbMV07Ci0gICAgYWNjMiA9IGN0eC0+YWNjWzJdOwotICAgIGFjYzMgPSBjdHgtPmFjY1szXTsKLSAgICBhY2M0ID0gY3R4LT5hY2NbNF07Ci0KLSAgICAvKiBQcm9jZXNzIGZ1bGwgYmxvY2tzICovCi0gICAgZm9yIChpID0gMFU7IGkgPCBuYmxvY2tzOyBpKyspIHsKLSAgICAgICAgLyogVGhlIGlucHV0IGJsb2NrIGlzIHRyZWF0ZWQgYXMgYSAxMjgtYml0IGxpdHRsZS1lbmRpYW4gaW50ZWdlciAqLwotICAgICAgICBkMCAgID0gTUJFRFRMU19HRVRfVUlOVDMyX0xFKGlucHV0LCBvZmZzZXQgKyAwKTsKLSAgICAgICAgZDEgICA9IE1CRURUTFNfR0VUX1VJTlQzMl9MRShpbnB1dCwgb2Zmc2V0ICsgNCk7Ci0gICAgICAgIGQyICAgPSBNQkVEVExTX0dFVF9VSU5UMzJfTEUoaW5wdXQsIG9mZnNldCArIDgpOwotICAgICAgICBkMyAgID0gTUJFRFRMU19HRVRfVUlOVDMyX0xFKGlucHV0LCBvZmZzZXQgKyAxMik7Ci0KLSAgICAgICAgLyogQ29tcHV0ZTogYWNjICs9IChwYWRkZWQpIGJsb2NrIGFzIGEgMTMwLWJpdCBpbnRlZ2VyICovCi0gICAgICAgIGQwICArPSAodWludDY0X3QpIGFjYzA7Ci0gICAgICAgIGQxICArPSAodWludDY0X3QpIGFjYzEgKyAoZDAgPj4gMzJVKTsKLSAgICAgICAgZDIgICs9ICh1aW50NjRfdCkgYWNjMiArIChkMSA+PiAzMlUpOwotICAgICAgICBkMyAgKz0gKHVpbnQ2NF90KSBhY2MzICsgKGQyID4+IDMyVSk7Ci0gICAgICAgIGFjYzAgPSAodWludDMyX3QpIGQwOwotICAgICAgICBhY2MxID0gKHVpbnQzMl90KSBkMTsKLSAgICAgICAgYWNjMiA9ICh1aW50MzJfdCkgZDI7Ci0gICAgICAgIGFjYzMgPSAodWludDMyX3QpIGQzOwotICAgICAgICBhY2M0ICs9ICh1aW50MzJfdCkgKGQzID4+IDMyVSkgKyBuZWVkc19wYWRkaW5nOwotCi0gICAgICAgIC8qIENvbXB1dGU6IGFjYyAqPSByICovCi0gICAgICAgIGQwID0gbXVsNjQoYWNjMCwgcjApICsKLSAgICAgICAgICAgICBtdWw2NChhY2MxLCByczMpICsKLSAgICAgICAgICAgICBtdWw2NChhY2MyLCByczIpICsKLSAgICAgICAgICAgICBtdWw2NChhY2MzLCByczEpOwotICAgICAgICBkMSA9IG11bDY0KGFjYzAsIHIxKSArCi0gICAgICAgICAgICAgbXVsNjQoYWNjMSwgcjApICsKLSAgICAgICAgICAgICBtdWw2NChhY2MyLCByczMpICsKLSAgICAgICAgICAgICBtdWw2NChhY2MzLCByczIpICsKLSAgICAgICAgICAgICBtdWw2NChhY2M0LCByczEpOwotICAgICAgICBkMiA9IG11bDY0KGFjYzAsIHIyKSArCi0gICAgICAgICAgICAgbXVsNjQoYWNjMSwgcjEpICsKLSAgICAgICAgICAgICBtdWw2NChhY2MyLCByMCkgKwotICAgICAgICAgICAgIG11bDY0KGFjYzMsIHJzMykgKwotICAgICAgICAgICAgIG11bDY0KGFjYzQsIHJzMik7Ci0gICAgICAgIGQzID0gbXVsNjQoYWNjMCwgcjMpICsKLSAgICAgICAgICAgICBtdWw2NChhY2MxLCByMikgKwotICAgICAgICAgICAgIG11bDY0KGFjYzIsIHIxKSArCi0gICAgICAgICAgICAgbXVsNjQoYWNjMywgcjApICsKLSAgICAgICAgICAgICBtdWw2NChhY2M0LCByczMpOwotICAgICAgICBhY2M0ICo9IHIwOwotCi0gICAgICAgIC8qIENvbXB1dGU6IGFjYyAlPSAoMl4xMzAgLSA1KSAocGFydGlhbCByZW1haW5kZXIpICovCi0gICAgICAgIGQxICs9IChkMCA+PiAzMik7Ci0gICAgICAgIGQyICs9IChkMSA+PiAzMik7Ci0gICAgICAgIGQzICs9IChkMiA+PiAzMik7Ci0gICAgICAgIGFjYzAgPSAodWludDMyX3QpIGQwOwotICAgICAgICBhY2MxID0gKHVpbnQzMl90KSBkMTsKLSAgICAgICAgYWNjMiA9ICh1aW50MzJfdCkgZDI7Ci0gICAgICAgIGFjYzMgPSAodWludDMyX3QpIGQzOwotICAgICAgICBhY2M0ID0gKHVpbnQzMl90KSAoZDMgPj4gMzIpICsgYWNjNDsKLQotICAgICAgICBkMCA9ICh1aW50NjRfdCkgYWNjMCArIChhY2M0ID4+IDIpICsgKGFjYzQgJiAweEZGRkZGRkZDVSk7Ci0gICAgICAgIGFjYzQgJj0gM1U7Ci0gICAgICAgIGFjYzAgPSAodWludDMyX3QpIGQwOwotICAgICAgICBkMCA9ICh1aW50NjRfdCkgYWNjMSArIChkMCA+PiAzMlUpOwotICAgICAgICBhY2MxID0gKHVpbnQzMl90KSBkMDsKLSAgICAgICAgZDAgPSAodWludDY0X3QpIGFjYzIgKyAoZDAgPj4gMzJVKTsKLSAgICAgICAgYWNjMiA9ICh1aW50MzJfdCkgZDA7Ci0gICAgICAgIGQwID0gKHVpbnQ2NF90KSBhY2MzICsgKGQwID4+IDMyVSk7Ci0gICAgICAgIGFjYzMgPSAodWludDMyX3QpIGQwOwotICAgICAgICBkMCA9ICh1aW50NjRfdCkgYWNjNCArIChkMCA+PiAzMlUpOwotICAgICAgICBhY2M0ID0gKHVpbnQzMl90KSBkMDsKLQotICAgICAgICBvZmZzZXQgICAgKz0gUE9MWTEzMDVfQkxPQ0tfU0laRV9CWVRFUzsKLSAgICB9Ci0KLSAgICBjdHgtPmFjY1swXSA9IGFjYzA7Ci0gICAgY3R4LT5hY2NbMV0gPSBhY2MxOwotICAgIGN0eC0+YWNjWzJdID0gYWNjMjsKLSAgICBjdHgtPmFjY1szXSA9IGFjYzM7Ci0gICAgY3R4LT5hY2NbNF0gPSBhY2M0OwotfQotCi0vKioKLSAqIFxicmllZiAgICAgICAgICAgICAgICAgICBDb21wdXRlIHRoZSBQb2x5MTMwNSBNQUMKLSAqCi0gKiBccGFyYW0gY3R4ICAgICAgICAgICAgICAgVGhlIFBvbHkxMzA1IGNvbnRleHQuCi0gKiBccGFyYW0gbWFjICAgICAgICAgICAgICAgVGhlIGJ1ZmZlciB0byB3aGVyZSB0aGUgTUFDIGlzIHdyaXR0ZW4uIE11c3QgYmUKLSAqICAgICAgICAgICAgICAgICAgICAgICAgICBiaWcgZW5vdWdoIHRvIGNvbnRhaW4gdGhlIDE2LWJ5dGUgTUFDLgotICovCi1zdGF0aWMgdm9pZCBwb2x5MTMwNV9jb21wdXRlX21hYyhjb25zdCBtYmVkdGxzX3BvbHkxMzA1X2NvbnRleHQgKmN0eCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGNoYXIgbWFjWzE2XSkKLXsKLSAgICB1aW50NjRfdCBkOwotICAgIHVpbnQzMl90IGcwLCBnMSwgZzIsIGczLCBnNDsKLSAgICB1aW50MzJfdCBhY2MwLCBhY2MxLCBhY2MyLCBhY2MzLCBhY2M0OwotICAgIHVpbnQzMl90IG1hc2s7Ci0gICAgdWludDMyX3QgbWFza19pbnY7Ci0KLSAgICBhY2MwID0gY3R4LT5hY2NbMF07Ci0gICAgYWNjMSA9IGN0eC0+YWNjWzFdOwotICAgIGFjYzIgPSBjdHgtPmFjY1syXTsKLSAgICBhY2MzID0gY3R4LT5hY2NbM107Ci0gICAgYWNjNCA9IGN0eC0+YWNjWzRdOwotCi0gICAgLyogQmVmb3JlIGFkZGluZyAncycgd2UgZW5zdXJlIHRoYXQgdGhlIGFjY3VtdWxhdG9yIGlzIG1vZCAyXjEzMCAtIDUuCi0gICAgICogV2UgZG8gdGhpcyBieSBjYWxjdWxhdGluZyBhY2MgLSAoMl4xMzAgLSA1KSwgdGhlbiBjaGVja2luZyBpZgotICAgICAqIHRoZSAxMzFzdCBiaXQgaXMgc2V0LiBJZiBpdCBpcywgdGhlbiByZWR1Y2U6IGFjYyAtPSAoMl4xMzAgLSA1KQotICAgICAqLwotCi0gICAgLyogQ2FsY3VsYXRlIGFjYyArIC0oMl4xMzAgLSA1KSAqLwotICAgIGQgID0gKCh1aW50NjRfdCkgYWNjMCArIDVVKTsKLSAgICBnMCA9ICh1aW50MzJfdCkgZDsKLSAgICBkICA9ICgodWludDY0X3QpIGFjYzEgKyAoZCA+PiAzMikpOwotICAgIGcxID0gKHVpbnQzMl90KSBkOwotICAgIGQgID0gKCh1aW50NjRfdCkgYWNjMiArIChkID4+IDMyKSk7Ci0gICAgZzIgPSAodWludDMyX3QpIGQ7Ci0gICAgZCAgPSAoKHVpbnQ2NF90KSBhY2MzICsgKGQgPj4gMzIpKTsKLSAgICBnMyA9ICh1aW50MzJfdCkgZDsKLSAgICBnNCA9IGFjYzQgKyAodWludDMyX3QpIChkID4+IDMyVSk7Ci0KLSAgICAvKiBtYXNrID09IDB4RkZGRkZGRkYgaWYgMTMxc3QgYml0IGlzIHNldCwgb3RoZXJ3aXNlIG1hc2sgPT0gMCAqLwotICAgIG1hc2sgPSAodWludDMyX3QpIDBVIC0gKGc0ID4+IDJVKTsKLSAgICBtYXNrX2ludiA9IH5tYXNrOwotCi0gICAgLyogSWYgMTMxc3QgYml0IGlzIHNldCB0aGVuIGFjYz1nLCBvdGhlcndpc2UsIGFjYyBpcyB1bm1vZGlmaWVkICovCi0gICAgYWNjMCA9IChhY2MwICYgbWFza19pbnYpIHwgKGcwICYgbWFzayk7Ci0gICAgYWNjMSA9IChhY2MxICYgbWFza19pbnYpIHwgKGcxICYgbWFzayk7Ci0gICAgYWNjMiA9IChhY2MyICYgbWFza19pbnYpIHwgKGcyICYgbWFzayk7Ci0gICAgYWNjMyA9IChhY2MzICYgbWFza19pbnYpIHwgKGczICYgbWFzayk7Ci0KLSAgICAvKiBBZGQgJ3MnICovCi0gICAgZCA9ICh1aW50NjRfdCkgYWNjMCArIGN0eC0+c1swXTsKLSAgICBhY2MwID0gKHVpbnQzMl90KSBkOwotICAgIGQgPSAodWludDY0X3QpIGFjYzEgKyBjdHgtPnNbMV0gKyAoZCA+PiAzMlUpOwotICAgIGFjYzEgPSAodWludDMyX3QpIGQ7Ci0gICAgZCA9ICh1aW50NjRfdCkgYWNjMiArIGN0eC0+c1syXSArIChkID4+IDMyVSk7Ci0gICAgYWNjMiA9ICh1aW50MzJfdCkgZDsKLSAgICBhY2MzICs9IGN0eC0+c1szXSArICh1aW50MzJfdCkgKGQgPj4gMzJVKTsKLQotICAgIC8qIENvbXB1dGUgTUFDICgxMjggbGVhc3Qgc2lnbmlmaWNhbnQgYml0cyBvZiB0aGUgYWNjdW11bGF0b3IpICovCi0gICAgTUJFRFRMU19QVVRfVUlOVDMyX0xFKGFjYzAsIG1hYywgIDApOwotICAgIE1CRURUTFNfUFVUX1VJTlQzMl9MRShhY2MxLCBtYWMsICA0KTsKLSAgICBNQkVEVExTX1BVVF9VSU5UMzJfTEUoYWNjMiwgbWFjLCAgOCk7Ci0gICAgTUJFRFRMU19QVVRfVUlOVDMyX0xFKGFjYzMsIG1hYywgMTIpOwotfQotCi12b2lkIG1iZWR0bHNfcG9seTEzMDVfaW5pdChtYmVkdGxzX3BvbHkxMzA1X2NvbnRleHQgKmN0eCkKLXsKLSAgICBtYmVkdGxzX3BsYXRmb3JtX3plcm9pemUoY3R4LCBzaXplb2YobWJlZHRsc19wb2x5MTMwNV9jb250ZXh0KSk7Ci19Ci0KLXZvaWQgbWJlZHRsc19wb2x5MTMwNV9mcmVlKG1iZWR0bHNfcG9seTEzMDVfY29udGV4dCAqY3R4KQotewotICAgIGlmIChjdHggPT0gTlVMTCkgewotICAgICAgICByZXR1cm47Ci0gICAgfQotCi0gICAgbWJlZHRsc19wbGF0Zm9ybV96ZXJvaXplKGN0eCwgc2l6ZW9mKG1iZWR0bHNfcG9seTEzMDVfY29udGV4dCkpOwotfQotCi1pbnQgbWJlZHRsc19wb2x5MTMwNV9zdGFydHMobWJlZHRsc19wb2x5MTMwNV9jb250ZXh0ICpjdHgsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdW5zaWduZWQgY2hhciBrZXlbMzJdKQotewotICAgIC8qIHIgJj0gMHgwZmZmZmZmYzBmZmZmZmZjMGZmZmZmZmMwZmZmZmZmZiAqLwotICAgIGN0eC0+clswXSA9IE1CRURUTFNfR0VUX1VJTlQzMl9MRShrZXksIDApICAmIDB4MEZGRkZGRkZVOwotICAgIGN0eC0+clsxXSA9IE1CRURUTFNfR0VUX1VJTlQzMl9MRShrZXksIDQpICAmIDB4MEZGRkZGRkNVOwotICAgIGN0eC0+clsyXSA9IE1CRURUTFNfR0VUX1VJTlQzMl9MRShrZXksIDgpICAmIDB4MEZGRkZGRkNVOwotICAgIGN0eC0+clszXSA9IE1CRURUTFNfR0VUX1VJTlQzMl9MRShrZXksIDEyKSAmIDB4MEZGRkZGRkNVOwotCi0gICAgY3R4LT5zWzBdID0gTUJFRFRMU19HRVRfVUlOVDMyX0xFKGtleSwgMTYpOwotICAgIGN0eC0+c1sxXSA9IE1CRURUTFNfR0VUX1VJTlQzMl9MRShrZXksIDIwKTsKLSAgICBjdHgtPnNbMl0gPSBNQkVEVExTX0dFVF9VSU5UMzJfTEUoa2V5LCAyNCk7Ci0gICAgY3R4LT5zWzNdID0gTUJFRFRMU19HRVRfVUlOVDMyX0xFKGtleSwgMjgpOwotCi0gICAgLyogSW5pdGlhbCBhY2N1bXVsYXRvciBzdGF0ZSAqLwotICAgIGN0eC0+YWNjWzBdID0gMFU7Ci0gICAgY3R4LT5hY2NbMV0gPSAwVTsKLSAgICBjdHgtPmFjY1syXSA9IDBVOwotICAgIGN0eC0+YWNjWzNdID0gMFU7Ci0gICAgY3R4LT5hY2NbNF0gPSAwVTsKLQotICAgIC8qIFF1ZXVlIGluaXRpYWxseSBlbXB0eSAqLwotICAgIG1iZWR0bHNfcGxhdGZvcm1femVyb2l6ZShjdHgtPnF1ZXVlLCBzaXplb2YoY3R4LT5xdWV1ZSkpOwotICAgIGN0eC0+cXVldWVfbGVuID0gMFU7Ci0KLSAgICByZXR1cm4gMDsKLX0KLQotaW50IG1iZWR0bHNfcG9seTEzMDVfdXBkYXRlKG1iZWR0bHNfcG9seTEzMDVfY29udGV4dCAqY3R4LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgKmlucHV0LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBpbGVuKQotewotICAgIHNpemVfdCBvZmZzZXQgICAgPSAwVTsKLSAgICBzaXplX3QgcmVtYWluaW5nID0gaWxlbjsKLSAgICBzaXplX3QgcXVldWVfZnJlZV9sZW47Ci0gICAgc2l6ZV90IG5ibG9ja3M7Ci0KLSAgICBpZiAoKHJlbWFpbmluZyA+IDBVKSAmJiAoY3R4LT5xdWV1ZV9sZW4gPiAwVSkpIHsKLSAgICAgICAgcXVldWVfZnJlZV9sZW4gPSAoUE9MWTEzMDVfQkxPQ0tfU0laRV9CWVRFUyAtIGN0eC0+cXVldWVfbGVuKTsKLQotICAgICAgICBpZiAoaWxlbiA8IHF1ZXVlX2ZyZWVfbGVuKSB7Ci0gICAgICAgICAgICAvKiBOb3QgZW5vdWdoIGRhdGEgdG8gY29tcGxldGUgdGhlIGJsb2NrLgotICAgICAgICAgICAgICogU3RvcmUgdGhpcyBkYXRhIHdpdGggdGhlIG90aGVyIGxlZnRvdmVycy4KLSAgICAgICAgICAgICAqLwotICAgICAgICAgICAgbWVtY3B5KCZjdHgtPnF1ZXVlW2N0eC0+cXVldWVfbGVuXSwKLSAgICAgICAgICAgICAgICAgICBpbnB1dCwKLSAgICAgICAgICAgICAgICAgICBpbGVuKTsKLQotICAgICAgICAgICAgY3R4LT5xdWV1ZV9sZW4gKz0gaWxlbjsKLQotICAgICAgICAgICAgcmVtYWluaW5nID0gMFU7Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAvKiBFbm91Z2ggZGF0YSB0byBwcm9kdWNlIGEgY29tcGxldGUgYmxvY2sgKi8KLSAgICAgICAgICAgIG1lbWNweSgmY3R4LT5xdWV1ZVtjdHgtPnF1ZXVlX2xlbl0sCi0gICAgICAgICAgICAgICAgICAgaW5wdXQsCi0gICAgICAgICAgICAgICAgICAgcXVldWVfZnJlZV9sZW4pOwotCi0gICAgICAgICAgICBjdHgtPnF1ZXVlX2xlbiA9IDBVOwotCi0gICAgICAgICAgICBwb2x5MTMwNV9wcm9jZXNzKGN0eCwgMVUsIGN0eC0+cXVldWUsIDFVKTsgICAvKiBhZGQgcGFkZGluZyBiaXQgKi8KLQotICAgICAgICAgICAgb2Zmc2V0ICAgICs9IHF1ZXVlX2ZyZWVfbGVuOwotICAgICAgICAgICAgcmVtYWluaW5nIC09IHF1ZXVlX2ZyZWVfbGVuOwotICAgICAgICB9Ci0gICAgfQotCi0gICAgaWYgKHJlbWFpbmluZyA+PSBQT0xZMTMwNV9CTE9DS19TSVpFX0JZVEVTKSB7Ci0gICAgICAgIG5ibG9ja3MgPSByZW1haW5pbmcgLyBQT0xZMTMwNV9CTE9DS19TSVpFX0JZVEVTOwotCi0gICAgICAgIHBvbHkxMzA1X3Byb2Nlc3MoY3R4LCBuYmxvY2tzLCAmaW5wdXRbb2Zmc2V0XSwgMVUpOwotCi0gICAgICAgIG9mZnNldCArPSBuYmxvY2tzICogUE9MWTEzMDVfQkxPQ0tfU0laRV9CWVRFUzsKLSAgICAgICAgcmVtYWluaW5nICU9IFBPTFkxMzA1X0JMT0NLX1NJWkVfQllURVM7Ci0gICAgfQotCi0gICAgaWYgKHJlbWFpbmluZyA+IDBVKSB7Ci0gICAgICAgIC8qIFN0b3JlIHBhcnRpYWwgYmxvY2sgKi8KLSAgICAgICAgY3R4LT5xdWV1ZV9sZW4gPSByZW1haW5pbmc7Ci0gICAgICAgIG1lbWNweShjdHgtPnF1ZXVlLCAmaW5wdXRbb2Zmc2V0XSwgcmVtYWluaW5nKTsKLSAgICB9Ci0KLSAgICByZXR1cm4gMDsKLX0KLQotaW50IG1iZWR0bHNfcG9seTEzMDVfZmluaXNoKG1iZWR0bHNfcG9seTEzMDVfY29udGV4dCAqY3R4LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGNoYXIgbWFjWzE2XSkKLXsKLSAgICAvKiBQcm9jZXNzIGFueSBsZWZ0b3ZlciBkYXRhICovCi0gICAgaWYgKGN0eC0+cXVldWVfbGVuID4gMFUpIHsKLSAgICAgICAgLyogQWRkIHBhZGRpbmcgYml0ICovCi0gICAgICAgIGN0eC0+cXVldWVbY3R4LT5xdWV1ZV9sZW5dID0gMVU7Ci0gICAgICAgIGN0eC0+cXVldWVfbGVuKys7Ci0KLSAgICAgICAgLyogUGFkIHdpdGggemVyb2VzICovCi0gICAgICAgIG1lbXNldCgmY3R4LT5xdWV1ZVtjdHgtPnF1ZXVlX2xlbl0sCi0gICAgICAgICAgICAgICAwLAotICAgICAgICAgICAgICAgUE9MWTEzMDVfQkxPQ0tfU0laRV9CWVRFUyAtIGN0eC0+cXVldWVfbGVuKTsKLQotICAgICAgICBwb2x5MTMwNV9wcm9jZXNzKGN0eCwgMVUsICAgICAgICAgICAvKiBQcm9jZXNzIDEgYmxvY2sgKi8KLSAgICAgICAgICAgICAgICAgICAgICAgICBjdHgtPnF1ZXVlLCAwVSk7ICAgLyogQWxyZWFkeSBwYWRkZWQgYWJvdmUgKi8KLSAgICB9Ci0KLSAgICBwb2x5MTMwNV9jb21wdXRlX21hYyhjdHgsIG1hYyk7Ci0KLSAgICByZXR1cm4gMDsKLX0KLQotaW50IG1iZWR0bHNfcG9seTEzMDVfbWFjKGNvbnN0IHVuc2lnbmVkIGNoYXIga2V5WzMyXSwKLSAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1bnNpZ25lZCBjaGFyICppbnB1dCwKLSAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgaWxlbiwKLSAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBjaGFyIG1hY1sxNl0pCi17Ci0gICAgbWJlZHRsc19wb2x5MTMwNV9jb250ZXh0IGN0eDsKLSAgICBpbnQgcmV0ID0gTUJFRFRMU19FUlJfRVJST1JfQ09SUlVQVElPTl9ERVRFQ1RFRDsKLQotICAgIG1iZWR0bHNfcG9seTEzMDVfaW5pdCgmY3R4KTsKLQotICAgIHJldCA9IG1iZWR0bHNfcG9seTEzMDVfc3RhcnRzKCZjdHgsIGtleSk7Ci0gICAgaWYgKHJldCAhPSAwKSB7Ci0gICAgICAgIGdvdG8gY2xlYW51cDsKLSAgICB9Ci0KLSAgICByZXQgPSBtYmVkdGxzX3BvbHkxMzA1X3VwZGF0ZSgmY3R4LCBpbnB1dCwgaWxlbik7Ci0gICAgaWYgKHJldCAhPSAwKSB7Ci0gICAgICAgIGdvdG8gY2xlYW51cDsKLSAgICB9Ci0KLSAgICByZXQgPSBtYmVkdGxzX3BvbHkxMzA1X2ZpbmlzaCgmY3R4LCBtYWMpOwotCi1jbGVhbnVwOgotICAgIG1iZWR0bHNfcG9seTEzMDVfZnJlZSgmY3R4KTsKLSAgICByZXR1cm4gcmV0OwotfQotCi0jZW5kaWYgLyogTUJFRFRMU19QT0xZMTMwNV9BTFQgKi8KLQotI2lmIGRlZmluZWQoTUJFRFRMU19TRUxGX1RFU1QpCi0KLXN0YXRpYyBjb25zdCB1bnNpZ25lZCBjaGFyIHRlc3Rfa2V5c1syXVszMl0gPQotewotICAgIHsKLSAgICAgICAgMHg4NSwgMHhkNiwgMHhiZSwgMHg3OCwgMHg1NywgMHg1NSwgMHg2ZCwgMHgzMywKLSAgICAgICAgMHg3ZiwgMHg0NCwgMHg1MiwgMHhmZSwgMHg0MiwgMHhkNSwgMHgwNiwgMHhhOCwKLSAgICAgICAgMHgwMSwgMHgwMywgMHg4MCwgMHg4YSwgMHhmYiwgMHgwZCwgMHhiMiwgMHhmZCwKLSAgICAgICAgMHg0YSwgMHhiZiwgMHhmNiwgMHhhZiwgMHg0MSwgMHg0OSwgMHhmNSwgMHgxYgotICAgIH0sCi0gICAgewotICAgICAgICAweDFjLCAweDkyLCAweDQwLCAweGE1LCAweGViLCAweDU1LCAweGQzLCAweDhhLAotICAgICAgICAweGYzLCAweDMzLCAweDg4LCAweDg2LCAweDA0LCAweGY2LCAweGI1LCAweGYwLAotICAgICAgICAweDQ3LCAweDM5LCAweDE3LCAweGMxLCAweDQwLCAweDJiLCAweDgwLCAweDA5LAotICAgICAgICAweDlkLCAweGNhLCAweDVjLCAweGJjLCAweDIwLCAweDcwLCAweDc1LCAweGMwCi0gICAgfQotfTsKLQotc3RhdGljIGNvbnN0IHVuc2lnbmVkIGNoYXIgdGVzdF9kYXRhWzJdWzEyN10gPQotewotICAgIHsKLSAgICAgICAgMHg0MywgMHg3MiwgMHg3OSwgMHg3MCwgMHg3NCwgMHg2ZiwgMHg2NywgMHg3MiwKLSAgICAgICAgMHg2MSwgMHg3MCwgMHg2OCwgMHg2OSwgMHg2MywgMHgyMCwgMHg0NiwgMHg2ZiwKLSAgICAgICAgMHg3MiwgMHg3NSwgMHg2ZCwgMHgyMCwgMHg1MiwgMHg2NSwgMHg3MywgMHg2NSwKLSAgICAgICAgMHg2MSwgMHg3MiwgMHg2MywgMHg2OCwgMHgyMCwgMHg0NywgMHg3MiwgMHg2ZiwKLSAgICAgICAgMHg3NSwgMHg3MAotICAgIH0sCi0gICAgewotICAgICAgICAweDI3LCAweDU0LCAweDc3LCAweDYxLCAweDczLCAweDIwLCAweDYyLCAweDcyLAotICAgICAgICAweDY5LCAweDZjLCAweDZjLCAweDY5LCAweDY3LCAweDJjLCAweDIwLCAweDYxLAotICAgICAgICAweDZlLCAweDY0LCAweDIwLCAweDc0LCAweDY4LCAweDY1LCAweDIwLCAweDczLAotICAgICAgICAweDZjLCAweDY5LCAweDc0LCAweDY4LCAweDc5LCAweDIwLCAweDc0LCAweDZmLAotICAgICAgICAweDc2LCAweDY1LCAweDczLCAweDBhLCAweDQ0LCAweDY5LCAweDY0LCAweDIwLAotICAgICAgICAweDY3LCAweDc5LCAweDcyLCAweDY1LCAweDIwLCAweDYxLCAweDZlLCAweDY0LAotICAgICAgICAweDIwLCAweDY3LCAweDY5LCAweDZkLCAweDYyLCAweDZjLCAweDY1LCAweDIwLAotICAgICAgICAweDY5LCAweDZlLCAweDIwLCAweDc0LCAweDY4LCAweDY1LCAweDIwLCAweDc3LAotICAgICAgICAweDYxLCAweDYyLCAweDY1LCAweDNhLCAweDBhLCAweDQxLCAweDZjLCAweDZjLAotICAgICAgICAweDIwLCAweDZkLCAweDY5LCAweDZkLCAweDczLCAweDc5LCAweDIwLCAweDc3LAotICAgICAgICAweDY1LCAweDcyLCAweDY1LCAweDIwLCAweDc0LCAweDY4LCAweDY1LCAweDIwLAotICAgICAgICAweDYyLCAweDZmLCAweDcyLCAweDZmLCAweDY3LCAweDZmLCAweDc2LCAweDY1LAotICAgICAgICAweDczLCAweDJjLCAweDBhLCAweDQxLCAweDZlLCAweDY0LCAweDIwLCAweDc0LAotICAgICAgICAweDY4LCAweDY1LCAweDIwLCAweDZkLCAweDZmLCAweDZkLCAweDY1LCAweDIwLAotICAgICAgICAweDcyLCAweDYxLCAweDc0LCAweDY4LCAweDczLCAweDIwLCAweDZmLCAweDc1LAotICAgICAgICAweDc0LCAweDY3LCAweDcyLCAweDYxLCAweDYyLCAweDY1LCAweDJlCi0gICAgfQotfTsKLQotc3RhdGljIGNvbnN0IHNpemVfdCB0ZXN0X2RhdGFfbGVuWzJdID0KLXsKLSAgICAzNFUsCi0gICAgMTI3VQotfTsKLQotc3RhdGljIGNvbnN0IHVuc2lnbmVkIGNoYXIgdGVzdF9tYWNbMl1bMTZdID0KLXsKLSAgICB7Ci0gICAgICAgIDB4YTgsIDB4MDYsIDB4MWQsIDB4YzEsIDB4MzAsIDB4NTEsIDB4MzYsIDB4YzYsCi0gICAgICAgIDB4YzIsIDB4MmIsIDB4OGIsIDB4YWYsIDB4MGMsIDB4MDEsIDB4MjcsIDB4YTkKLSAgICB9LAotICAgIHsKLSAgICAgICAgMHg0NSwgMHg0MSwgMHg2NiwgMHg5YSwgMHg3ZSwgMHhhYSwgMHhlZSwgMHg2MSwKLSAgICAgICAgMHhlNywgMHgwOCwgMHhkYywgMHg3YywgMHhiYywgMHhjNSwgMHhlYiwgMHg2MgotICAgIH0KLX07Ci0KLS8qIE1ha2Ugc3VyZSBubyBvdGhlciBkZWZpbml0aW9uIGlzIGFscmVhZHkgcHJlc2VudC4gKi8KLSN1bmRlZiBBU1NFUlQKLQotI2RlZmluZSBBU1NFUlQoY29uZCwgYXJncykgICAgICAgICAgICBcCi0gICAgZG8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICAgICAgaWYgKCEoY29uZCkpICAgICAgICAgICAgICAgIFwKLSAgICAgICAgeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgICAgICAgICBpZiAodmVyYm9zZSAhPSAwKSAgICAgICAgICBcCi0gICAgICAgICAgICBtYmVkdGxzX3ByaW50ZiBhcmdzOyAgICBcCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgICAgICAgICAgcmV0dXJuIC0xOyAgICAgICAgICAgICAgIFwKLSAgICAgICAgfSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgfSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIHdoaWxlICgwKQotCi1pbnQgbWJlZHRsc19wb2x5MTMwNV9zZWxmX3Rlc3QoaW50IHZlcmJvc2UpCi17Ci0gICAgdW5zaWduZWQgY2hhciBtYWNbMTZdOwotICAgIHVuc2lnbmVkIGk7Ci0gICAgaW50IHJldCA9IE1CRURUTFNfRVJSX0VSUk9SX0NPUlJVUFRJT05fREVURUNURUQ7Ci0KLSAgICBmb3IgKGkgPSAwVTsgaSA8IDJVOyBpKyspIHsKLSAgICAgICAgaWYgKHZlcmJvc2UgIT0gMCkgewotICAgICAgICAgICAgbWJlZHRsc19wcmludGYoIiAgUG9seTEzMDUgdGVzdCAldSAiLCBpKTsKLSAgICAgICAgfQotCi0gICAgICAgIHJldCA9IG1iZWR0bHNfcG9seTEzMDVfbWFjKHRlc3Rfa2V5c1tpXSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGVzdF9kYXRhW2ldLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0X2RhdGFfbGVuW2ldLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYWMpOwotICAgICAgICBBU1NFUlQoMCA9PSByZXQsICgiZXJyb3IgY29kZTogJWlcbiIsIHJldCkpOwotCi0gICAgICAgIEFTU0VSVCgwID09IG1lbWNtcChtYWMsIHRlc3RfbWFjW2ldLCAxNlUpLCAoImZhaWxlZCAobWFjKVxuIikpOwotCi0gICAgICAgIGlmICh2ZXJib3NlICE9IDApIHsKLSAgICAgICAgICAgIG1iZWR0bHNfcHJpbnRmKCJwYXNzZWRcbiIpOwotICAgICAgICB9Ci0gICAgfQotCi0gICAgaWYgKHZlcmJvc2UgIT0gMCkgewotICAgICAgICBtYmVkdGxzX3ByaW50ZigiXG4iKTsKLSAgICB9Ci0KLSAgICByZXR1cm4gMDsKLX0KLQotI2VuZGlmIC8qIE1CRURUTFNfU0VMRl9URVNUICovCi0KLSNlbmRpZiAvKiBNQkVEVExTX1BPTFkxMzA1X0MgKi8KZGlmZiAtLWdpdCBhL2xpYnJhcnkvcHNhX2NyeXB0by5jIGIvbGlicmFyeS9wc2FfY3J5cHRvLmMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAyNTU0ZDEuLjAwMDAwMDAKLS0tIGEvbGlicmFyeS9wc2FfY3J5cHRvLmMKKysrIC9kZXYvbnVsbApAQCAtMSw5MTc1ICswLDAgQEAKLS8qCi0gKiAgUFNBIGNyeXB0byBsYXllciBvbiB0b3Agb2YgTWJlZCBUTFMgY3J5cHRvCi0gKi8KLS8qCi0gKiAgQ29weXJpZ2h0IFRoZSBNYmVkIFRMUyBDb250cmlidXRvcnMKLSAqICBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMCBPUiBHUEwtMi4wLW9yLWxhdGVyCi0gKi8KLQotI2luY2x1ZGUgImNvbW1vbi5oIgotI2luY2x1ZGUgInBzYV9jcnlwdG9fY29yZV9jb21tb24uaCIKLQotI2lmIGRlZmluZWQoTUJFRFRMU19QU0FfQ1JZUFRPX0MpCi0KLSNpZiBkZWZpbmVkKE1CRURUTFNfUFNBX0NSWVBUT19DT05GSUcpCi0jaW5jbHVkZSAiY2hlY2tfY3J5cHRvX2NvbmZpZy5oIgotI2VuZGlmCi0KLSNpbmNsdWRlICJwc2EvY3J5cHRvLmgiCi0jaW5jbHVkZSAicHNhL2NyeXB0b192YWx1ZXMuaCIKLQotI2luY2x1ZGUgInBzYV9jcnlwdG9fY2lwaGVyLmgiCi0jaW5jbHVkZSAicHNhX2NyeXB0b19jb3JlLmgiCi0jaW5jbHVkZSAicHNhX2NyeXB0b19pbnZhc2l2ZS5oIgotI2luY2x1ZGUgInBzYV9jcnlwdG9fZHJpdmVyX3dyYXBwZXJzLmgiCi0jaW5jbHVkZSAicHNhX2NyeXB0b19kcml2ZXJfd3JhcHBlcnNfbm9fc3RhdGljLmgiCi0jaW5jbHVkZSAicHNhX2NyeXB0b19lY3AuaCIKLSNpbmNsdWRlICJwc2FfY3J5cHRvX2ZmZGguaCIKLSNpbmNsdWRlICJwc2FfY3J5cHRvX2hhc2guaCIKLSNpbmNsdWRlICJwc2FfY3J5cHRvX21hYy5oIgotI2luY2x1ZGUgInBzYV9jcnlwdG9fcnNhLmgiCi0jaW5jbHVkZSAicHNhX2NyeXB0b19lY3AuaCIKLSNpZiBkZWZpbmVkKE1CRURUTFNfUFNBX0NSWVBUT19TRV9DKQotI2luY2x1ZGUgInBzYV9jcnlwdG9fc2UuaCIKLSNlbmRpZgotI2luY2x1ZGUgInBzYV9jcnlwdG9fc2xvdF9tYW5hZ2VtZW50LmgiCi0vKiBJbmNsdWRlIGludGVybmFsIGRlY2xhcmF0aW9ucyB0aGF0IGFyZSB1c2VmdWwgZm9yIGltcGxlbWVudGluZyBwZXJzaXN0ZW50bHkKLSAqIHN0b3JlZCBrZXlzLiAqLwotI2luY2x1ZGUgInBzYV9jcnlwdG9fc3RvcmFnZS5oIgotCi0jaW5jbHVkZSAicHNhX2NyeXB0b19yYW5kb21faW1wbC5oIgotCi0jaW5jbHVkZSA8c3RkbGliLmg+Ci0jaW5jbHVkZSA8c3RyaW5nLmg+Ci0jaW5jbHVkZSAibWJlZHRscy9wbGF0Zm9ybS5oIgotCi0jaW5jbHVkZSAibWJlZHRscy9hZXMuaCIKLSNpbmNsdWRlICJtYmVkdGxzL2FzbjEuaCIKLSNpbmNsdWRlICJtYmVkdGxzL2FzbjF3cml0ZS5oIgotI2luY2x1ZGUgIm1iZWR0bHMvYmlnbnVtLmgiCi0jaW5jbHVkZSAibWJlZHRscy9jYW1lbGxpYS5oIgotI2luY2x1ZGUgIm1iZWR0bHMvY2hhY2hhMjAuaCIKLSNpbmNsdWRlICJtYmVkdGxzL2NoYWNoYXBvbHkuaCIKLSNpbmNsdWRlICJtYmVkdGxzL2NpcGhlci5oIgotI2luY2x1ZGUgIm1iZWR0bHMvY2NtLmgiCi0jaW5jbHVkZSAibWJlZHRscy9jbWFjLmgiCi0jaW5jbHVkZSAibWJlZHRscy9jb25zdGFudF90aW1lLmgiCi0jaW5jbHVkZSAibWJlZHRscy9kZXMuaCIKLSNpbmNsdWRlICJtYmVkdGxzL2VjZGguaCIKLSNpbmNsdWRlICJtYmVkdGxzL2VjcC5oIgotI2luY2x1ZGUgIm1iZWR0bHMvZW50cm9weS5oIgotI2luY2x1ZGUgIm1iZWR0bHMvZXJyb3IuaCIKLSNpbmNsdWRlICJtYmVkdGxzL2djbS5oIgotI2luY2x1ZGUgIm1iZWR0bHMvbWQ1LmgiCi0jaW5jbHVkZSAibWJlZHRscy9way5oIgotI2luY2x1ZGUgInBrX3dyYXAuaCIKLSNpbmNsdWRlICJtYmVkdGxzL3BsYXRmb3JtX3V0aWwuaCIKLSNpbmNsdWRlICJtYmVkdGxzL2Vycm9yLmgiCi0jaW5jbHVkZSAibWJlZHRscy9yaXBlbWQxNjAuaCIKLSNpbmNsdWRlICJtYmVkdGxzL3JzYS5oIgotI2luY2x1ZGUgIm1iZWR0bHMvc2hhMS5oIgotI2luY2x1ZGUgIm1iZWR0bHMvc2hhMjU2LmgiCi0jaW5jbHVkZSAibWJlZHRscy9zaGE1MTIuaCIKLSNpbmNsdWRlICJtYmVkdGxzL3BzYV91dGlsLmgiCi0jaW5jbHVkZSAibWJlZHRscy90aHJlYWRpbmcuaCIKLQotI2lmIGRlZmluZWQoTUJFRFRMU19QU0FfQlVJTFRJTl9BTEdfSEtERikgfHwgICAgICAgICAgXAotICAgIGRlZmluZWQoTUJFRFRMU19QU0FfQlVJTFRJTl9BTEdfSEtERl9FWFRSQUNUKSB8fCAgXAotICAgIGRlZmluZWQoTUJFRFRMU19QU0FfQlVJTFRJTl9BTEdfSEtERl9FWFBBTkQpCi0jZGVmaW5lIEJVSUxUSU5fQUxHX0FOWV9IS0RGIDEKLSNlbmRpZgotCi0vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KLS8qIEdsb2JhbCBkYXRhLCBzdXBwb3J0IGZ1bmN0aW9ucyBhbmQgbGlicmFyeSBtYW5hZ2VtZW50ICovCi0vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KLQotc3RhdGljIGludCBrZXlfdHlwZV9pc19yYXdfYnl0ZXMocHNhX2tleV90eXBlX3QgdHlwZSkKLXsKLSAgICByZXR1cm4gUFNBX0tFWV9UWVBFX0lTX1VOU1RSVUNUVVJFRCh0eXBlKTsKLX0KLQotLyogVmFsdWVzIGZvciBwc2FfZ2xvYmFsX2RhdGFfdDo6cm5nX3N0YXRlICovCi0jZGVmaW5lIFJOR19OT1RfSU5JVElBTElaRUQgMAotI2RlZmluZSBSTkdfSU5JVElBTElaRUQgMQotI2RlZmluZSBSTkdfU0VFREVEIDIKLQotLyogSURzIGZvciBQU0EgY3J5cHRvIHN1YnN5c3RlbXMuIFN0YXJ0cyBhdCAxIHRvIGNhdGNoIHBvdGVudGlhbCB1bmluaXRpYWxpemVkCi0gKiB2YXJpYWJsZXMgYXMgYXJndW1lbnRzLiAqLwotdHlwZWRlZiBlbnVtIHsKLSAgICBQU0FfQ1JZUFRPX1NVQlNZU1RFTV9EUklWRVJfV1JBUFBFUlMgPSAxLAotICAgIFBTQV9DUllQVE9fU1VCU1lTVEVNX0tFWV9TTE9UUywKLSAgICBQU0FfQ1JZUFRPX1NVQlNZU1RFTV9STkcsCi0gICAgUFNBX0NSWVBUT19TVUJTWVNURU1fVFJBTlNBQ1RJT04sCi19IG1iZWR0bHNfcHNhX2NyeXB0b19zdWJzeXN0ZW07Ci0KLS8qIEluaXRpYWxpemF0aW9uIGZsYWdzIGZvciBnbG9iYWxfZGF0YTo6aW5pdGlhbGl6ZWQgKi8KLSNkZWZpbmUgUFNBX0NSWVBUT19TVUJTWVNURU1fRFJJVkVSX1dSQVBQRVJTX0lOSVRJQUxJWkVEICAgIDB4MDEKLSNkZWZpbmUgUFNBX0NSWVBUT19TVUJTWVNURU1fS0VZX1NMT1RTX0lOSVRJQUxJWkVEICAgICAgICAgIDB4MDIKLSNkZWZpbmUgUFNBX0NSWVBUT19TVUJTWVNURU1fVFJBTlNBQ1RJT05fSU5JVElBTElaRUQgICAgICAgIDB4MDQKLQotI2RlZmluZSBQU0FfQ1JZUFRPX1NVQlNZU1RFTV9BTExfSU5JVElBTElTRUQgICAgICAgICAgICAgICAgKCBcCi0gICAgICAgIFBTQV9DUllQVE9fU1VCU1lTVEVNX0RSSVZFUl9XUkFQUEVSU19JTklUSUFMSVpFRCB8IFwKLSAgICAgICAgUFNBX0NSWVBUT19TVUJTWVNURU1fS0VZX1NMT1RTX0lOSVRJQUxJWkVEIHwgXAotICAgICAgICBQU0FfQ1JZUFRPX1NVQlNZU1RFTV9UUkFOU0FDVElPTl9JTklUSUFMSVpFRCkKLQotdHlwZWRlZiBzdHJ1Y3QgewotICAgIHVpbnQ4X3QgaW5pdGlhbGl6ZWQ7Ci0gICAgdWludDhfdCBybmdfc3RhdGU7Ci0gICAgbWJlZHRsc19wc2FfcmFuZG9tX2NvbnRleHRfdCBybmc7Ci19IHBzYV9nbG9iYWxfZGF0YV90OwotCi1zdGF0aWMgcHNhX2dsb2JhbF9kYXRhX3QgZ2xvYmFsX2RhdGE7Ci0KLXN0YXRpYyB1aW50OF90IHBzYV9nZXRfaW5pdGlhbGl6ZWQodm9pZCkKLXsKLSAgICB1aW50OF90IGluaXRpYWxpemVkOwotCi0jaWYgZGVmaW5lZChNQkVEVExTX1RIUkVBRElOR19DKQotICAgIG1iZWR0bHNfbXV0ZXhfbG9jaygmbWJlZHRsc190aHJlYWRpbmdfcHNhX3JuZ2RhdGFfbXV0ZXgpOwotI2VuZGlmIC8qIGRlZmluZWQoTUJFRFRMU19USFJFQURJTkdfQykgKi8KLQotICAgIGluaXRpYWxpemVkID0gZ2xvYmFsX2RhdGEucm5nX3N0YXRlID09IFJOR19TRUVERUQ7Ci0KLSNpZiBkZWZpbmVkKE1CRURUTFNfVEhSRUFESU5HX0MpCi0gICAgbWJlZHRsc19tdXRleF91bmxvY2soJm1iZWR0bHNfdGhyZWFkaW5nX3BzYV9ybmdkYXRhX211dGV4KTsKLSNlbmRpZiAvKiBkZWZpbmVkKE1CRURUTFNfVEhSRUFESU5HX0MpICovCi0KLSNpZiBkZWZpbmVkKE1CRURUTFNfVEhSRUFESU5HX0MpCi0gICAgbWJlZHRsc19tdXRleF9sb2NrKCZtYmVkdGxzX3RocmVhZGluZ19wc2FfZ2xvYmFsZGF0YV9tdXRleCk7Ci0jZW5kaWYgLyogZGVmaW5lZChNQkVEVExTX1RIUkVBRElOR19DKSAqLwotCi0gICAgaW5pdGlhbGl6ZWQgPQotICAgICAgICAoaW5pdGlhbGl6ZWQgJiYgKGdsb2JhbF9kYXRhLmluaXRpYWxpemVkID09IFBTQV9DUllQVE9fU1VCU1lTVEVNX0FMTF9JTklUSUFMSVNFRCkpOwotCi0jaWYgZGVmaW5lZChNQkVEVExTX1RIUkVBRElOR19DKQotICAgIG1iZWR0bHNfbXV0ZXhfdW5sb2NrKCZtYmVkdGxzX3RocmVhZGluZ19wc2FfZ2xvYmFsZGF0YV9tdXRleCk7Ci0jZW5kaWYgLyogZGVmaW5lZChNQkVEVExTX1RIUkVBRElOR19DKSAqLwotCi0gICAgcmV0dXJuIGluaXRpYWxpemVkOwotfQotCi1zdGF0aWMgdWludDhfdCBwc2FfZ2V0X2RyaXZlcnNfaW5pdGlhbGl6ZWQodm9pZCkKLXsKLSAgICB1aW50OF90IGluaXRpYWxpemVkOwotCi0jaWYgZGVmaW5lZChNQkVEVExTX1RIUkVBRElOR19DKQotICAgIG1iZWR0bHNfbXV0ZXhfbG9jaygmbWJlZHRsc190aHJlYWRpbmdfcHNhX2dsb2JhbGRhdGFfbXV0ZXgpOwotI2VuZGlmIC8qIGRlZmluZWQoTUJFRFRMU19USFJFQURJTkdfQykgKi8KLQotICAgIGluaXRpYWxpemVkID0gKGdsb2JhbF9kYXRhLmluaXRpYWxpemVkICYgUFNBX0NSWVBUT19TVUJTWVNURU1fRFJJVkVSX1dSQVBQRVJTX0lOSVRJQUxJWkVEKSAhPSAwOwotCi0jaWYgZGVmaW5lZChNQkVEVExTX1RIUkVBRElOR19DKQotICAgIG1iZWR0bHNfbXV0ZXhfdW5sb2NrKCZtYmVkdGxzX3RocmVhZGluZ19wc2FfZ2xvYmFsZGF0YV9tdXRleCk7Ci0jZW5kaWYgLyogZGVmaW5lZChNQkVEVExTX1RIUkVBRElOR19DKSAqLwotCi0gICAgcmV0dXJuIGluaXRpYWxpemVkOwotfQotCi0jZGVmaW5lIEdVQVJEX01PRFVMRV9JTklUSUFMSVpFRCAgICAgICAgXAotICAgIGlmIChwc2FfZ2V0X2luaXRpYWxpemVkKCkgPT0gMCkgICAgIFwKLSAgICByZXR1cm4gUFNBX0VSUk9SX0JBRF9TVEFURTsKLQotI2lmICFkZWZpbmVkKE1CRURUTFNfUFNBX0FTU1VNRV9FWENMVVNJVkVfQlVGRkVSUykKLQotLyogRGVjbGFyZSBhIGxvY2FsIGNvcHkgb2YgYW4gaW5wdXQgYnVmZmVyIGFuZCBhIHZhcmlhYmxlIHRoYXQgd2lsbCBiZSB1c2VkCi0gKiB0byBzdG9yZSBhIHBvaW50ZXIgdG8gdGhlIHN0YXJ0IG9mIHRoZSBidWZmZXIuCi0gKgotICogTm90ZTogVGhpcyBtYWNybyBtdXN0IGJlIGNhbGxlZCBiZWZvcmUgYW55IG9wZXJhdGlvbnMgd2hpY2ggbWF5IGp1bXAgdG8KLSAqIHRoZSBleGl0IGxhYmVsLCBzbyB0aGF0IHRoZSBsb2NhbCBpbnB1dCBjb3B5IG9iamVjdCBpcyBzYWZlIHRvIGJlIGZyZWVkLgotICoKLSAqIEFzc3VtcHRpb25zOgotICogLSBpbnB1dCBpcyB0aGUgbmFtZSBvZiBhIHBvaW50ZXIgdG8gdGhlIGJ1ZmZlciB0byBiZSBjb3BpZWQKLSAqIC0gVGhlIG5hbWUgTE9DQUxfSU5QVVRfQ09QWV9PRl9pbnB1dCBpcyB1bnVzZWQgaW4gdGhlIGN1cnJlbnQgc2NvcGUKLSAqIC0gaW5wdXRfY29weV9uYW1lIGlzIGEgbmFtZSB0aGF0IGlzIHVudXNlZCBpbiB0aGUgY3VycmVudCBzY29wZQotICovCi0jZGVmaW5lIExPQ0FMX0lOUFVUX0RFQ0xBUkUoaW5wdXQsIGlucHV0X2NvcHlfbmFtZSkgXAotICAgIHBzYV9jcnlwdG9fbG9jYWxfaW5wdXRfdCBMT0NBTF9JTlBVVF9DT1BZX09GXyMjaW5wdXQgPSBQU0FfQ1JZUFRPX0xPQ0FMX0lOUFVUX0lOSVQ7IFwKLSAgICBjb25zdCB1aW50OF90ICppbnB1dF9jb3B5X25hbWUgPSBOVUxMOwotCi0vKiBBbGxvY2F0ZSBhIGNvcHkgb2YgdGhlIGJ1ZmZlciBpbnB1dCBhbmQgc2V0IHRoZSBwb2ludGVyIGlucHV0X2NvcHkgdG8KLSAqIHBvaW50IHRvIHRoZSBzdGFydCBvZiB0aGUgY29weS4KLSAqCi0gKiBBc3N1bXB0aW9uczoKLSAqIC0gcHNhX3N0YXR1c190IHN0YXR1cyBleGlzdHMKLSAqIC0gQW4gZXhpdCBsYWJlbCBpcyBkZWNsYXJlZAotICogLSBpbnB1dCBpcyB0aGUgbmFtZSBvZiBhIHBvaW50ZXIgdG8gdGhlIGJ1ZmZlciB0byBiZSBjb3BpZWQKLSAqIC0gTE9DQUxfSU5QVVRfREVDTEFSRShpbnB1dCwgaW5wdXRfY29weSkgaGFzIHByZXZpb3VzbHkgYmVlbiBjYWxsZWQKLSAqLwotI2RlZmluZSBMT0NBTF9JTlBVVF9BTExPQyhpbnB1dCwgbGVuZ3RoLCBpbnB1dF9jb3B5KSBcCi0gICAgc3RhdHVzID0gcHNhX2NyeXB0b19sb2NhbF9pbnB1dF9hbGxvYyhpbnB1dCwgbGVuZ3RoLCBcCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmTE9DQUxfSU5QVVRfQ09QWV9PRl8jI2lucHV0KTsgXAotICAgIGlmIChzdGF0dXMgIT0gUFNBX1NVQ0NFU1MpIHsgXAotICAgICAgICBnb3RvIGV4aXQ7IFwKLSAgICB9IFwKLSAgICBpbnB1dF9jb3B5ID0gTE9DQUxfSU5QVVRfQ09QWV9PRl8jI2lucHV0LmJ1ZmZlcjsKLQotLyogRnJlZSB0aGUgbG9jYWwgaW5wdXQgY29weSBhbGxvY2F0ZWQgcHJldmlvdXNseSBieSBMT0NBTF9JTlBVVF9BTExPQygpCi0gKgotICogQXNzdW1wdGlvbnM6Ci0gKiAtIGlucHV0X2NvcHkgaXMgdGhlIG5hbWUgb2YgdGhlIGlucHV0IGNvcHkgcG9pbnRlciBzZXQgYnkgTE9DQUxfSU5QVVRfQUxMT0MoKQotICogLSBpbnB1dCBpcyB0aGUgbmFtZSBvZiB0aGUgb3JpZ2luYWwgYnVmZmVyIHRoYXQgd2FzIGNvcGllZAotICovCi0jZGVmaW5lIExPQ0FMX0lOUFVUX0ZSRUUoaW5wdXQsIGlucHV0X2NvcHkpIFwKLSAgICBpbnB1dF9jb3B5ID0gTlVMTDsgXAotICAgIHBzYV9jcnlwdG9fbG9jYWxfaW5wdXRfZnJlZSgmTE9DQUxfSU5QVVRfQ09QWV9PRl8jI2lucHV0KTsKLQotLyogRGVjbGFyZSBhIGxvY2FsIGNvcHkgb2YgYW4gb3V0cHV0IGJ1ZmZlciBhbmQgYSB2YXJpYWJsZSB0aGF0IHdpbGwgYmUgdXNlZAotICogdG8gc3RvcmUgYSBwb2ludGVyIHRvIHRoZSBzdGFydCBvZiB0aGUgYnVmZmVyLgotICoKLSAqIE5vdGU6IFRoaXMgbWFjcm8gbXVzdCBiZSBjYWxsZWQgYmVmb3JlIGFueSBvcGVyYXRpb25zIHdoaWNoIG1heSBqdW1wIHRvCi0gKiB0aGUgZXhpdCBsYWJlbCwgc28gdGhhdCB0aGUgbG9jYWwgb3V0cHV0IGNvcHkgb2JqZWN0IGlzIHNhZmUgdG8gYmUgZnJlZWQuCi0gKgotICogQXNzdW1wdGlvbnM6Ci0gKiAtIG91dHB1dCBpcyB0aGUgbmFtZSBvZiBhIHBvaW50ZXIgdG8gdGhlIGJ1ZmZlciB0byBiZSBjb3BpZWQKLSAqIC0gVGhlIG5hbWUgTE9DQUxfT1VUUFVUX0NPUFlfT0Zfb3V0cHV0IGlzIHVudXNlZCBpbiB0aGUgY3VycmVudCBzY29wZQotICogLSBvdXRwdXRfY29weV9uYW1lIGlzIGEgbmFtZSB0aGF0IGlzIHVudXNlZCBpbiB0aGUgY3VycmVudCBzY29wZQotICovCi0jZGVmaW5lIExPQ0FMX09VVFBVVF9ERUNMQVJFKG91dHB1dCwgb3V0cHV0X2NvcHlfbmFtZSkgXAotICAgIHBzYV9jcnlwdG9fbG9jYWxfb3V0cHV0X3QgTE9DQUxfT1VUUFVUX0NPUFlfT0ZfIyNvdXRwdXQgPSBQU0FfQ1JZUFRPX0xPQ0FMX09VVFBVVF9JTklUOyBcCi0gICAgdWludDhfdCAqb3V0cHV0X2NvcHlfbmFtZSA9IE5VTEw7Ci0KLS8qIEFsbG9jYXRlIGEgY29weSBvZiB0aGUgYnVmZmVyIG91dHB1dCBhbmQgc2V0IHRoZSBwb2ludGVyIG91dHB1dF9jb3B5IHRvCi0gKiBwb2ludCB0byB0aGUgc3RhcnQgb2YgdGhlIGNvcHkuCi0gKgotICogQXNzdW1wdGlvbnM6Ci0gKiAtIHBzYV9zdGF0dXNfdCBzdGF0dXMgZXhpc3RzCi0gKiAtIEFuIGV4aXQgbGFiZWwgaXMgZGVjbGFyZWQKLSAqIC0gb3V0cHV0IGlzIHRoZSBuYW1lIG9mIGEgcG9pbnRlciB0byB0aGUgYnVmZmVyIHRvIGJlIGNvcGllZAotICogLSBMT0NBTF9PVVRQVVRfREVDTEFSRShvdXRwdXQsIG91dHB1dF9jb3B5KSBoYXMgcHJldmlvdXNseSBiZWVuIGNhbGxlZAotICovCi0jZGVmaW5lIExPQ0FMX09VVFBVVF9BTExPQyhvdXRwdXQsIGxlbmd0aCwgb3V0cHV0X2NvcHkpIFwKLSAgICBzdGF0dXMgPSBwc2FfY3J5cHRvX2xvY2FsX291dHB1dF9hbGxvYyhvdXRwdXQsIGxlbmd0aCwgXAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZMT0NBTF9PVVRQVVRfQ09QWV9PRl8jI291dHB1dCk7IFwKLSAgICBpZiAoc3RhdHVzICE9IFBTQV9TVUNDRVNTKSB7IFwKLSAgICAgICAgZ290byBleGl0OyBcCi0gICAgfSBcCi0gICAgb3V0cHV0X2NvcHkgPSBMT0NBTF9PVVRQVVRfQ09QWV9PRl8jI291dHB1dC5idWZmZXI7Ci0KLS8qIEZyZWUgdGhlIGxvY2FsIG91dHB1dCBjb3B5IGFsbG9jYXRlZCBwcmV2aW91c2x5IGJ5IExPQ0FMX09VVFBVVF9BTExPQygpCi0gKiBhZnRlciBmaXJzdCBjb3B5aW5nIGJhY2sgaXRzIGNvbnRlbnRzIHRvIHRoZSBvcmlnaW5hbCBidWZmZXIuCi0gKgotICogQXNzdW1wdGlvbnM6Ci0gKiAtIHBzYV9zdGF0dXNfdCBzdGF0dXMgZXhpc3RzCi0gKiAtIG91dHB1dF9jb3B5IGlzIHRoZSBuYW1lIG9mIHRoZSBvdXRwdXQgY29weSBwb2ludGVyIHNldCBieSBMT0NBTF9PVVRQVVRfQUxMT0MoKQotICogLSBvdXRwdXQgaXMgdGhlIG5hbWUgb2YgdGhlIG9yaWdpbmFsIGJ1ZmZlciB0aGF0IHdhcyBjb3BpZWQKLSAqLwotI2RlZmluZSBMT0NBTF9PVVRQVVRfRlJFRShvdXRwdXQsIG91dHB1dF9jb3B5KSBcCi0gICAgb3V0cHV0X2NvcHkgPSBOVUxMOyBcCi0gICAgZG8geyBcCi0gICAgICAgIHBzYV9zdGF0dXNfdCBsb2NhbF9vdXRwdXRfc3RhdHVzOyBcCi0gICAgICAgIGxvY2FsX291dHB1dF9zdGF0dXMgPSBwc2FfY3J5cHRvX2xvY2FsX291dHB1dF9mcmVlKCZMT0NBTF9PVVRQVVRfQ09QWV9PRl8jI291dHB1dCk7IFwKLSAgICAgICAgaWYgKGxvY2FsX291dHB1dF9zdGF0dXMgIT0gUFNBX1NVQ0NFU1MpIHsgXAotICAgICAgICAgICAgLyogU2luY2UgdGhpcyBlcnJvciBjYXNlIGlzIGFuIGludGVybmFsIGVycm9yLCBpdCdzIG1vcmUgc2VyaW91cyB0aGFuIFwKLSAgICAgICAgICAgICAqIGFueSBleGlzdGluZyBlcnJvciBjb2RlIGFuZCBzbyBpdCdzIGZpbmUgdG8gb3ZlcndyaXRlIHRoZSBleGlzdGluZyBcCi0gICAgICAgICAgICAgKiBzdGF0dXMuICovIFwKLSAgICAgICAgICAgIHN0YXR1cyA9IGxvY2FsX291dHB1dF9zdGF0dXM7IFwKLSAgICAgICAgfSBcCi0gICAgfSB3aGlsZSAoMCkKLSNlbHNlIC8qICFNQkVEVExTX1BTQV9BU1NVTUVfRVhDTFVTSVZFX0JVRkZFUlMgKi8KLSNkZWZpbmUgTE9DQUxfSU5QVVRfREVDTEFSRShpbnB1dCwgaW5wdXRfY29weV9uYW1lKSBcCi0gICAgY29uc3QgdWludDhfdCAqaW5wdXRfY29weV9uYW1lID0gTlVMTDsKLSNkZWZpbmUgTE9DQUxfSU5QVVRfQUxMT0MoaW5wdXQsIGxlbmd0aCwgaW5wdXRfY29weSkgXAotICAgIGlucHV0X2NvcHkgPSBpbnB1dDsKLSNkZWZpbmUgTE9DQUxfSU5QVVRfRlJFRShpbnB1dCwgaW5wdXRfY29weSkgXAotICAgIGlucHV0X2NvcHkgPSBOVUxMOwotI2RlZmluZSBMT0NBTF9PVVRQVVRfREVDTEFSRShvdXRwdXQsIG91dHB1dF9jb3B5X25hbWUpIFwKLSAgICB1aW50OF90ICpvdXRwdXRfY29weV9uYW1lID0gTlVMTDsKLSNkZWZpbmUgTE9DQUxfT1VUUFVUX0FMTE9DKG91dHB1dCwgbGVuZ3RoLCBvdXRwdXRfY29weSkgXAotICAgIG91dHB1dF9jb3B5ID0gb3V0cHV0OwotI2RlZmluZSBMT0NBTF9PVVRQVVRfRlJFRShvdXRwdXQsIG91dHB1dF9jb3B5KSBcCi0gICAgb3V0cHV0X2NvcHkgPSBOVUxMOwotI2VuZGlmIC8qICFNQkVEVExTX1BTQV9BU1NVTUVfRVhDTFVTSVZFX0JVRkZFUlMgKi8KLQotCi1pbnQgcHNhX2Nhbl9kb19oYXNoKHBzYV9hbGdvcml0aG1fdCBoYXNoX2FsZykKLXsKLSAgICAodm9pZCkgaGFzaF9hbGc7Ci0gICAgcmV0dXJuIHBzYV9nZXRfZHJpdmVyc19pbml0aWFsaXplZCgpOwotfQotCi1pbnQgcHNhX2Nhbl9kb19jaXBoZXIocHNhX2tleV90eXBlX3Qga2V5X3R5cGUsIHBzYV9hbGdvcml0aG1fdCBjaXBoZXJfYWxnKQotewotICAgICh2b2lkKSBrZXlfdHlwZTsKLSAgICAodm9pZCkgY2lwaGVyX2FsZzsKLSAgICByZXR1cm4gcHNhX2dldF9kcml2ZXJzX2luaXRpYWxpemVkKCk7Ci19Ci0KLQotI2lmIGRlZmluZWQoTUJFRFRMU19QU0FfQlVJTFRJTl9LRVlfVFlQRV9ESF9LRVlfUEFJUl9JTVBPUlQpIHx8ICAgICAgIFwKLSAgICBkZWZpbmVkKE1CRURUTFNfUFNBX0JVSUxUSU5fS0VZX1RZUEVfREhfUFVCTElDX0tFWSkgfHwgICAgIFwKLSAgICBkZWZpbmVkKFBTQV9XQU5UX0tFWV9UWVBFX0RIX0tFWV9QQUlSX0dFTkVSQVRFKQotc3RhdGljIGludCBwc2FfaXNfZGhfa2V5X3NpemVfdmFsaWQoc2l6ZV90IGJpdHMpCi17Ci0gICAgc3dpdGNoIChiaXRzKSB7Ci0jaWYgZGVmaW5lZChQU0FfV0FOVF9ESF9SRkM3OTE5XzIwNDgpCi0gICAgICAgIGNhc2UgMjA0ODoKLSAgICAgICAgICAgIHJldHVybiAxOwotI2VuZGlmIC8qIFBTQV9XQU5UX0RIX1JGQzc5MTlfMjA0OCAqLwotI2lmIGRlZmluZWQoUFNBX1dBTlRfREhfUkZDNzkxOV8zMDcyKQotICAgICAgICBjYXNlIDMwNzI6Ci0gICAgICAgICAgICByZXR1cm4gMTsKLSNlbmRpZiAvKiBQU0FfV0FOVF9ESF9SRkM3OTE5XzMwNzIgKi8KLSNpZiBkZWZpbmVkKFBTQV9XQU5UX0RIX1JGQzc5MTlfNDA5NikKLSAgICAgICAgY2FzZSA0MDk2OgotICAgICAgICAgICAgcmV0dXJuIDE7Ci0jZW5kaWYgLyogUFNBX1dBTlRfREhfUkZDNzkxOV80MDk2ICovCi0jaWYgZGVmaW5lZChQU0FfV0FOVF9ESF9SRkM3OTE5XzYxNDQpCi0gICAgICAgIGNhc2UgNjE0NDoKLSAgICAgICAgICAgIHJldHVybiAxOwotI2VuZGlmIC8qIFBTQV9XQU5UX0RIX1JGQzc5MTlfNjE0NCAqLwotI2lmIGRlZmluZWQoUFNBX1dBTlRfREhfUkZDNzkxOV84MTkyKQotICAgICAgICBjYXNlIDgxOTI6Ci0gICAgICAgICAgICByZXR1cm4gMTsKLSNlbmRpZiAvKiBQU0FfV0FOVF9ESF9SRkM3OTE5XzgxOTIgKi8KLSAgICAgICAgZGVmYXVsdDoKLSAgICAgICAgICAgIHJldHVybiAwOwotICAgIH0KLX0KLSNlbmRpZiAvKiBNQkVEVExTX1BTQV9CVUlMVElOX0tFWV9UWVBFX0RIX0tFWV9QQUlSX0lNUE9SVCB8fAotICAgICAgICAgIE1CRURUTFNfUFNBX0JVSUxUSU5fS0VZX1RZUEVfREhfUFVCTElDX0tFWSB8fAotICAgICAgICAgIFBTQV9XQU5UX0tFWV9UWVBFX0RIX0tFWV9QQUlSX0dFTkVSQVRFICovCi0KLXBzYV9zdGF0dXNfdCBtYmVkdGxzX3RvX3BzYV9lcnJvcihpbnQgcmV0KQotewotICAgIC8qIE1iZWQgVExTIGVycm9yIGNvZGVzIGNhbiBjb21iaW5lIGEgaGlnaC1sZXZlbCBlcnJvciBjb2RlIGFuZCBhCi0gICAgICogbG93LWxldmVsIGVycm9yIGNvZGUuIFRoZSBsb3ctbGV2ZWwgZXJyb3IgdXN1YWxseSByZWZsZWN0cyB0aGUKLSAgICAgKiByb290IGNhdXNlIGJldHRlciwgc28gZGlzcGF0Y2ggb24gdGhhdCBwcmVmZXJhYmx5LiAqLwotICAgIGludCBsb3dfbGV2ZWxfcmV0ID0gLSgtcmV0ICYgMHgwMDdmKTsKLSAgICBzd2l0Y2ggKGxvd19sZXZlbF9yZXQgIT0gMCA/IGxvd19sZXZlbF9yZXQgOiByZXQpIHsKLSAgICAgICAgY2FzZSAwOgotICAgICAgICAgICAgcmV0dXJuIFBTQV9TVUNDRVNTOwotCi0jaWYgZGVmaW5lZChNQkVEVExTX0FFU19DKQotICAgICAgICBjYXNlIE1CRURUTFNfRVJSX0FFU19JTlZBTElEX0tFWV9MRU5HVEg6Ci0gICAgICAgIGNhc2UgTUJFRFRMU19FUlJfQUVTX0lOVkFMSURfSU5QVVRfTEVOR1RIOgotICAgICAgICAgICAgcmV0dXJuIFBTQV9FUlJPUl9OT1RfU1VQUE9SVEVEOwotICAgICAgICBjYXNlIE1CRURUTFNfRVJSX0FFU19CQURfSU5QVVRfREFUQToKLSAgICAgICAgICAgIHJldHVybiBQU0FfRVJST1JfSU5WQUxJRF9BUkdVTUVOVDsKLSNlbmRpZgotCi0jaWYgZGVmaW5lZChNQkVEVExTX0FTTjFfUEFSU0VfQykgfHwgZGVmaW5lZChNQkVEVExTX0FTTjFfV1JJVEVfQykKLSAgICAgICAgY2FzZSBNQkVEVExTX0VSUl9BU04xX09VVF9PRl9EQVRBOgotICAgICAgICBjYXNlIE1CRURUTFNfRVJSX0FTTjFfVU5FWFBFQ1RFRF9UQUc6Ci0gICAgICAgIGNhc2UgTUJFRFRMU19FUlJfQVNOMV9JTlZBTElEX0xFTkdUSDoKLSAgICAgICAgY2FzZSBNQkVEVExTX0VSUl9BU04xX0xFTkdUSF9NSVNNQVRDSDoKLSAgICAgICAgY2FzZSBNQkVEVExTX0VSUl9BU04xX0lOVkFMSURfREFUQToKLSAgICAgICAgICAgIHJldHVybiBQU0FfRVJST1JfSU5WQUxJRF9BUkdVTUVOVDsKLSAgICAgICAgY2FzZSBNQkVEVExTX0VSUl9BU04xX0FMTE9DX0ZBSUxFRDoKLSAgICAgICAgICAgIHJldHVybiBQU0FfRVJST1JfSU5TVUZGSUNJRU5UX01FTU9SWTsKLSAgICAgICAgY2FzZSBNQkVEVExTX0VSUl9BU04xX0JVRl9UT09fU01BTEw6Ci0gICAgICAgICAgICByZXR1cm4gUFNBX0VSUk9SX0JVRkZFUl9UT09fU01BTEw7Ci0jZW5kaWYKLQotI2lmIGRlZmluZWQoTUJFRFRMU19DQU1FTExJQV9DKQotICAgICAgICBjYXNlIE1CRURUTFNfRVJSX0NBTUVMTElBX0JBRF9JTlBVVF9EQVRBOgotICAgICAgICBjYXNlIE1CRURUTFNfRVJSX0NBTUVMTElBX0lOVkFMSURfSU5QVVRfTEVOR1RIOgotICAgICAgICAgICAgcmV0dXJuIFBTQV9FUlJPUl9OT1RfU1VQUE9SVEVEOwotI2VuZGlmCi0KLSNpZiBkZWZpbmVkKE1CRURUTFNfQ0NNX0MpCi0gICAgICAgIGNhc2UgTUJFRFRMU19FUlJfQ0NNX0JBRF9JTlBVVDoKLSAgICAgICAgICAgIHJldHVybiBQU0FfRVJST1JfSU5WQUxJRF9BUkdVTUVOVDsKLSAgICAgICAgY2FzZSBNQkVEVExTX0VSUl9DQ01fQVVUSF9GQUlMRUQ6Ci0gICAgICAgICAgICByZXR1cm4gUFNBX0VSUk9SX0lOVkFMSURfU0lHTkFUVVJFOwotI2VuZGlmCi0KLSNpZiBkZWZpbmVkKE1CRURUTFNfQ0hBQ0hBMjBfQykKLSAgICAgICAgY2FzZSBNQkVEVExTX0VSUl9DSEFDSEEyMF9CQURfSU5QVVRfREFUQToKLSAgICAgICAgICAgIHJldHVybiBQU0FfRVJST1JfSU5WQUxJRF9BUkdVTUVOVDsKLSNlbmRpZgotCi0jaWYgZGVmaW5lZChNQkVEVExTX0NIQUNIQVBPTFlfQykKLSAgICAgICAgY2FzZSBNQkVEVExTX0VSUl9DSEFDSEFQT0xZX0JBRF9TVEFURToKLSAgICAgICAgICAgIHJldHVybiBQU0FfRVJST1JfQkFEX1NUQVRFOwotICAgICAgICBjYXNlIE1CRURUTFNfRVJSX0NIQUNIQVBPTFlfQVVUSF9GQUlMRUQ6Ci0gICAgICAgICAgICByZXR1cm4gUFNBX0VSUk9SX0lOVkFMSURfU0lHTkFUVVJFOwotI2VuZGlmCi0KLSNpZiBkZWZpbmVkKE1CRURUTFNfQ0lQSEVSX0MpCi0gICAgICAgIGNhc2UgTUJFRFRMU19FUlJfQ0lQSEVSX0ZFQVRVUkVfVU5BVkFJTEFCTEU6Ci0gICAgICAgICAgICByZXR1cm4gUFNBX0VSUk9SX05PVF9TVVBQT1JURUQ7Ci0gICAgICAgIGNhc2UgTUJFRFRMU19FUlJfQ0lQSEVSX0JBRF9JTlBVVF9EQVRBOgotICAgICAgICAgICAgcmV0dXJuIFBTQV9FUlJPUl9JTlZBTElEX0FSR1VNRU5UOwotICAgICAgICBjYXNlIE1CRURUTFNfRVJSX0NJUEhFUl9BTExPQ19GQUlMRUQ6Ci0gICAgICAgICAgICByZXR1cm4gUFNBX0VSUk9SX0lOU1VGRklDSUVOVF9NRU1PUlk7Ci0gICAgICAgIGNhc2UgTUJFRFRMU19FUlJfQ0lQSEVSX0lOVkFMSURfUEFERElORzoKLSAgICAgICAgICAgIHJldHVybiBQU0FfRVJST1JfSU5WQUxJRF9QQURESU5HOwotICAgICAgICBjYXNlIE1CRURUTFNfRVJSX0NJUEhFUl9GVUxMX0JMT0NLX0VYUEVDVEVEOgotICAgICAgICAgICAgcmV0dXJuIFBTQV9FUlJPUl9JTlZBTElEX0FSR1VNRU5UOwotICAgICAgICBjYXNlIE1CRURUTFNfRVJSX0NJUEhFUl9BVVRIX0ZBSUxFRDoKLSAgICAgICAgICAgIHJldHVybiBQU0FfRVJST1JfSU5WQUxJRF9TSUdOQVRVUkU7Ci0gICAgICAgIGNhc2UgTUJFRFRMU19FUlJfQ0lQSEVSX0lOVkFMSURfQ09OVEVYVDoKLSAgICAgICAgICAgIHJldHVybiBQU0FfRVJST1JfQ09SUlVQVElPTl9ERVRFQ1RFRDsKLSNlbmRpZgotCi0jaWYgIShkZWZpbmVkKE1CRURUTFNfUFNBX0NSWVBUT19FWFRFUk5BTF9STkcpIHx8ICAgICAgXAotICAgICAgICAgICAgZGVmaW5lZChNQkVEVExTX1BTQV9ITUFDX0RSQkdfTURfVFlQRSkpCi0gICAgICAgIC8qIE9ubHkgY2hlY2sgQ1RSX0RSQkcgZXJyb3IgY29kZXMgaWYgdW5kZXJseWluZyBtYmVkdGxzX3h4eAotICAgICAgICAgKiBmdW5jdGlvbnMgYXJlIHBhc3NlZCBhIENUUl9EUkJHIGluc3RhbmNlLiAqLwotICAgICAgICBjYXNlIE1CRURUTFNfRVJSX0NUUl9EUkJHX0VOVFJPUFlfU09VUkNFX0ZBSUxFRDoKLSAgICAgICAgICAgIHJldHVybiBQU0FfRVJST1JfSU5TVUZGSUNJRU5UX0VOVFJPUFk7Ci0gICAgICAgIGNhc2UgTUJFRFRMU19FUlJfQ1RSX0RSQkdfUkVRVUVTVF9UT09fQklHOgotICAgICAgICBjYXNlIE1CRURUTFNfRVJSX0NUUl9EUkJHX0lOUFVUX1RPT19CSUc6Ci0gICAgICAgICAgICByZXR1cm4gUFNBX0VSUk9SX05PVF9TVVBQT1JURUQ7Ci0gICAgICAgIGNhc2UgTUJFRFRMU19FUlJfQ1RSX0RSQkdfRklMRV9JT19FUlJPUjoKLSAgICAgICAgICAgIHJldHVybiBQU0FfRVJST1JfSU5TVUZGSUNJRU5UX0VOVFJPUFk7Ci0jZW5kaWYKLQotI2lmIGRlZmluZWQoTUJFRFRMU19ERVNfQykKLSAgICAgICAgY2FzZSBNQkVEVExTX0VSUl9ERVNfSU5WQUxJRF9JTlBVVF9MRU5HVEg6Ci0gICAgICAgICAgICByZXR1cm4gUFNBX0VSUk9SX05PVF9TVVBQT1JURUQ7Ci0jZW5kaWYKLQotICAgICAgICBjYXNlIE1CRURUTFNfRVJSX0VOVFJPUFlfTk9fU09VUkNFU19ERUZJTkVEOgotICAgICAgICBjYXNlIE1CRURUTFNfRVJSX0VOVFJPUFlfTk9fU1RST05HX1NPVVJDRToKLSAgICAgICAgY2FzZSBNQkVEVExTX0VSUl9FTlRST1BZX1NPVVJDRV9GQUlMRUQ6Ci0gICAgICAgICAgICByZXR1cm4gUFNBX0VSUk9SX0lOU1VGRklDSUVOVF9FTlRST1BZOwotCi0jaWYgZGVmaW5lZChNQkVEVExTX0dDTV9DKQotICAgICAgICBjYXNlIE1CRURUTFNfRVJSX0dDTV9BVVRIX0ZBSUxFRDoKLSAgICAgICAgICAgIHJldHVybiBQU0FfRVJST1JfSU5WQUxJRF9TSUdOQVRVUkU7Ci0gICAgICAgIGNhc2UgTUJFRFRMU19FUlJfR0NNX0JVRkZFUl9UT09fU01BTEw6Ci0gICAgICAgICAgICByZXR1cm4gUFNBX0VSUk9SX0JVRkZFUl9UT09fU01BTEw7Ci0gICAgICAgIGNhc2UgTUJFRFRMU19FUlJfR0NNX0JBRF9JTlBVVDoKLSAgICAgICAgICAgIHJldHVybiBQU0FfRVJST1JfSU5WQUxJRF9BUkdVTUVOVDsKLSNlbmRpZgotCi0jaWYgIWRlZmluZWQoTUJFRFRMU19QU0FfQ1JZUFRPX0VYVEVSTkFMX1JORykgJiYgICAgICAgIFwKLSAgICAgICAgICAgIGRlZmluZWQoTUJFRFRMU19QU0FfSE1BQ19EUkJHX01EX1RZUEUpCi0gICAgICAgIC8qIE9ubHkgY2hlY2sgSE1BQ19EUkJHIGVycm9yIGNvZGVzIGlmIHVuZGVybHlpbmcgbWJlZHRsc194eHgKLSAgICAgICAgICogZnVuY3Rpb25zIGFyZSBwYXNzZWQgYSBITUFDX0RSQkcgaW5zdGFuY2UuICovCi0gICAgICAgIGNhc2UgTUJFRFRMU19FUlJfSE1BQ19EUkJHX0VOVFJPUFlfU09VUkNFX0ZBSUxFRDoKLSAgICAgICAgICAgIHJldHVybiBQU0FfRVJST1JfSU5TVUZGSUNJRU5UX0VOVFJPUFk7Ci0gICAgICAgIGNhc2UgTUJFRFRMU19FUlJfSE1BQ19EUkJHX1JFUVVFU1RfVE9PX0JJRzoKLSAgICAgICAgY2FzZSBNQkVEVExTX0VSUl9ITUFDX0RSQkdfSU5QVVRfVE9PX0JJRzoKLSAgICAgICAgICAgIHJldHVybiBQU0FfRVJST1JfTk9UX1NVUFBPUlRFRDsKLSAgICAgICAgY2FzZSBNQkVEVExTX0VSUl9ITUFDX0RSQkdfRklMRV9JT19FUlJPUjoKLSAgICAgICAgICAgIHJldHVybiBQU0FfRVJST1JfSU5TVUZGSUNJRU5UX0VOVFJPUFk7Ci0jZW5kaWYKLQotI2lmIGRlZmluZWQoTUJFRFRMU19NRF9MSUdIVCkKLSAgICAgICAgY2FzZSBNQkVEVExTX0VSUl9NRF9GRUFUVVJFX1VOQVZBSUxBQkxFOgotICAgICAgICAgICAgcmV0dXJuIFBTQV9FUlJPUl9OT1RfU1VQUE9SVEVEOwotICAgICAgICBjYXNlIE1CRURUTFNfRVJSX01EX0JBRF9JTlBVVF9EQVRBOgotICAgICAgICAgICAgcmV0dXJuIFBTQV9FUlJPUl9JTlZBTElEX0FSR1VNRU5UOwotICAgICAgICBjYXNlIE1CRURUTFNfRVJSX01EX0FMTE9DX0ZBSUxFRDoKLSAgICAgICAgICAgIHJldHVybiBQU0FfRVJST1JfSU5TVUZGSUNJRU5UX01FTU9SWTsKLSNpZiBkZWZpbmVkKE1CRURUTFNfRlNfSU8pCi0gICAgICAgIGNhc2UgTUJFRFRMU19FUlJfTURfRklMRV9JT19FUlJPUjoKLSAgICAgICAgICAgIHJldHVybiBQU0FfRVJST1JfU1RPUkFHRV9GQUlMVVJFOwotI2VuZGlmCi0jZW5kaWYKLQotI2lmIGRlZmluZWQoTUJFRFRMU19CSUdOVU1fQykKLSNpZiBkZWZpbmVkKE1CRURUTFNfRlNfSU8pCi0gICAgICAgIGNhc2UgTUJFRFRMU19FUlJfTVBJX0ZJTEVfSU9fRVJST1I6Ci0gICAgICAgICAgICByZXR1cm4gUFNBX0VSUk9SX1NUT1JBR0VfRkFJTFVSRTsKLSNlbmRpZgotICAgICAgICBjYXNlIE1CRURUTFNfRVJSX01QSV9CQURfSU5QVVRfREFUQToKLSAgICAgICAgICAgIHJldHVybiBQU0FfRVJST1JfSU5WQUxJRF9BUkdVTUVOVDsKLSAgICAgICAgY2FzZSBNQkVEVExTX0VSUl9NUElfSU5WQUxJRF9DSEFSQUNURVI6Ci0gICAgICAgICAgICByZXR1cm4gUFNBX0VSUk9SX0lOVkFMSURfQVJHVU1FTlQ7Ci0gICAgICAgIGNhc2UgTUJFRFRMU19FUlJfTVBJX0JVRkZFUl9UT09fU01BTEw6Ci0gICAgICAgICAgICByZXR1cm4gUFNBX0VSUk9SX0JVRkZFUl9UT09fU01BTEw7Ci0gICAgICAgIGNhc2UgTUJFRFRMU19FUlJfTVBJX05FR0FUSVZFX1ZBTFVFOgotICAgICAgICAgICAgcmV0dXJuIFBTQV9FUlJPUl9JTlZBTElEX0FSR1VNRU5UOwotICAgICAgICBjYXNlIE1CRURUTFNfRVJSX01QSV9ESVZJU0lPTl9CWV9aRVJPOgotICAgICAgICAgICAgcmV0dXJuIFBTQV9FUlJPUl9JTlZBTElEX0FSR1VNRU5UOwotICAgICAgICBjYXNlIE1CRURUTFNfRVJSX01QSV9OT1RfQUNDRVBUQUJMRToKLSAgICAgICAgICAgIHJldHVybiBQU0FfRVJST1JfSU5WQUxJRF9BUkdVTUVOVDsKLSAgICAgICAgY2FzZSBNQkVEVExTX0VSUl9NUElfQUxMT0NfRkFJTEVEOgotICAgICAgICAgICAgcmV0dXJuIFBTQV9FUlJPUl9JTlNVRkZJQ0lFTlRfTUVNT1JZOwotI2VuZGlmCi0KLSNpZiBkZWZpbmVkKE1CRURUTFNfUEtfQykKLSAgICAgICAgY2FzZSBNQkVEVExTX0VSUl9QS19BTExPQ19GQUlMRUQ6Ci0gICAgICAgICAgICByZXR1cm4gUFNBX0VSUk9SX0lOU1VGRklDSUVOVF9NRU1PUlk7Ci0gICAgICAgIGNhc2UgTUJFRFRMU19FUlJfUEtfVFlQRV9NSVNNQVRDSDoKLSAgICAgICAgY2FzZSBNQkVEVExTX0VSUl9QS19CQURfSU5QVVRfREFUQToKLSAgICAgICAgICAgIHJldHVybiBQU0FfRVJST1JfSU5WQUxJRF9BUkdVTUVOVDsKLSNpZiBkZWZpbmVkKE1CRURUTFNfUFNBX0NSWVBUT19TVE9SQUdFX0MpIHx8IGRlZmluZWQoTUJFRFRMU19GU19JTykgfHwgXAotICAgICAgICAgICAgZGVmaW5lZChNQkVEVExTX1BTQV9JVFNfRklMRV9DKQotICAgICAgICBjYXNlIE1CRURUTFNfRVJSX1BLX0ZJTEVfSU9fRVJST1I6Ci0gICAgICAgICAgICByZXR1cm4gUFNBX0VSUk9SX1NUT1JBR0VfRkFJTFVSRTsKLSNlbmRpZgotICAgICAgICBjYXNlIE1CRURUTFNfRVJSX1BLX0tFWV9JTlZBTElEX1ZFUlNJT046Ci0gICAgICAgIGNhc2UgTUJFRFRMU19FUlJfUEtfS0VZX0lOVkFMSURfRk9STUFUOgotICAgICAgICAgICAgcmV0dXJuIFBTQV9FUlJPUl9JTlZBTElEX0FSR1VNRU5UOwotICAgICAgICBjYXNlIE1CRURUTFNfRVJSX1BLX1VOS05PV05fUEtfQUxHOgotICAgICAgICAgICAgcmV0dXJuIFBTQV9FUlJPUl9OT1RfU1VQUE9SVEVEOwotICAgICAgICBjYXNlIE1CRURUTFNfRVJSX1BLX1BBU1NXT1JEX1JFUVVJUkVEOgotICAgICAgICBjYXNlIE1CRURUTFNfRVJSX1BLX1BBU1NXT1JEX01JU01BVENIOgotICAgICAgICAgICAgcmV0dXJuIFBTQV9FUlJPUl9OT1RfUEVSTUlUVEVEOwotICAgICAgICBjYXNlIE1CRURUTFNfRVJSX1BLX0lOVkFMSURfUFVCS0VZOgotICAgICAgICAgICAgcmV0dXJuIFBTQV9FUlJPUl9JTlZBTElEX0FSR1VNRU5UOwotICAgICAgICBjYXNlIE1CRURUTFNfRVJSX1BLX0lOVkFMSURfQUxHOgotICAgICAgICBjYXNlIE1CRURUTFNfRVJSX1BLX1VOS05PV05fTkFNRURfQ1VSVkU6Ci0gICAgICAgIGNhc2UgTUJFRFRMU19FUlJfUEtfRkVBVFVSRV9VTkFWQUlMQUJMRToKLSAgICAgICAgICAgIHJldHVybiBQU0FfRVJST1JfTk9UX1NVUFBPUlRFRDsKLSAgICAgICAgY2FzZSBNQkVEVExTX0VSUl9QS19TSUdfTEVOX01JU01BVENIOgotICAgICAgICAgICAgcmV0dXJuIFBTQV9FUlJPUl9JTlZBTElEX1NJR05BVFVSRTsKLSAgICAgICAgY2FzZSBNQkVEVExTX0VSUl9QS19CVUZGRVJfVE9PX1NNQUxMOgotICAgICAgICAgICAgcmV0dXJuIFBTQV9FUlJPUl9CVUZGRVJfVE9PX1NNQUxMOwotI2VuZGlmCi0KLSAgICAgICAgY2FzZSBNQkVEVExTX0VSUl9QTEFURk9STV9IV19BQ0NFTF9GQUlMRUQ6Ci0gICAgICAgICAgICByZXR1cm4gUFNBX0VSUk9SX0hBUkRXQVJFX0ZBSUxVUkU7Ci0gICAgICAgIGNhc2UgTUJFRFRMU19FUlJfUExBVEZPUk1fRkVBVFVSRV9VTlNVUFBPUlRFRDoKLSAgICAgICAgICAgIHJldHVybiBQU0FfRVJST1JfTk9UX1NVUFBPUlRFRDsKLQotI2lmIGRlZmluZWQoTUJFRFRMU19SU0FfQykKLSAgICAgICAgY2FzZSBNQkVEVExTX0VSUl9SU0FfQkFEX0lOUFVUX0RBVEE6Ci0gICAgICAgICAgICByZXR1cm4gUFNBX0VSUk9SX0lOVkFMSURfQVJHVU1FTlQ7Ci0gICAgICAgIGNhc2UgTUJFRFRMU19FUlJfUlNBX0lOVkFMSURfUEFERElORzoKLSAgICAgICAgICAgIHJldHVybiBQU0FfRVJST1JfSU5WQUxJRF9QQURESU5HOwotICAgICAgICBjYXNlIE1CRURUTFNfRVJSX1JTQV9LRVlfR0VOX0ZBSUxFRDoKLSAgICAgICAgICAgIHJldHVybiBQU0FfRVJST1JfSEFSRFdBUkVfRkFJTFVSRTsKLSAgICAgICAgY2FzZSBNQkVEVExTX0VSUl9SU0FfS0VZX0NIRUNLX0ZBSUxFRDoKLSAgICAgICAgICAgIHJldHVybiBQU0FfRVJST1JfSU5WQUxJRF9BUkdVTUVOVDsKLSAgICAgICAgY2FzZSBNQkVEVExTX0VSUl9SU0FfUFVCTElDX0ZBSUxFRDoKLSAgICAgICAgY2FzZSBNQkVEVExTX0VSUl9SU0FfUFJJVkFURV9GQUlMRUQ6Ci0gICAgICAgICAgICByZXR1cm4gUFNBX0VSUk9SX0NPUlJVUFRJT05fREVURUNURUQ7Ci0gICAgICAgIGNhc2UgTUJFRFRMU19FUlJfUlNBX1ZFUklGWV9GQUlMRUQ6Ci0gICAgICAgICAgICByZXR1cm4gUFNBX0VSUk9SX0lOVkFMSURfU0lHTkFUVVJFOwotICAgICAgICBjYXNlIE1CRURUTFNfRVJSX1JTQV9PVVRQVVRfVE9PX0xBUkdFOgotICAgICAgICAgICAgcmV0dXJuIFBTQV9FUlJPUl9CVUZGRVJfVE9PX1NNQUxMOwotICAgICAgICBjYXNlIE1CRURUTFNfRVJSX1JTQV9STkdfRkFJTEVEOgotICAgICAgICAgICAgcmV0dXJuIFBTQV9FUlJPUl9JTlNVRkZJQ0lFTlRfRU5UUk9QWTsKLSNlbmRpZgotCi0jaWYgZGVmaW5lZChNQkVEVExTX0VDUF9MSUdIVCkKLSAgICAgICAgY2FzZSBNQkVEVExTX0VSUl9FQ1BfQkFEX0lOUFVUX0RBVEE6Ci0gICAgICAgIGNhc2UgTUJFRFRMU19FUlJfRUNQX0lOVkFMSURfS0VZOgotICAgICAgICAgICAgcmV0dXJuIFBTQV9FUlJPUl9JTlZBTElEX0FSR1VNRU5UOwotICAgICAgICBjYXNlIE1CRURUTFNfRVJSX0VDUF9CVUZGRVJfVE9PX1NNQUxMOgotICAgICAgICAgICAgcmV0dXJuIFBTQV9FUlJPUl9CVUZGRVJfVE9PX1NNQUxMOwotICAgICAgICBjYXNlIE1CRURUTFNfRVJSX0VDUF9GRUFUVVJFX1VOQVZBSUxBQkxFOgotICAgICAgICAgICAgcmV0dXJuIFBTQV9FUlJPUl9OT1RfU1VQUE9SVEVEOwotICAgICAgICBjYXNlIE1CRURUTFNfRVJSX0VDUF9TSUdfTEVOX01JU01BVENIOgotICAgICAgICBjYXNlIE1CRURUTFNfRVJSX0VDUF9WRVJJRllfRkFJTEVEOgotICAgICAgICAgICAgcmV0dXJuIFBTQV9FUlJPUl9JTlZBTElEX1NJR05BVFVSRTsKLSAgICAgICAgY2FzZSBNQkVEVExTX0VSUl9FQ1BfQUxMT0NfRkFJTEVEOgotICAgICAgICAgICAgcmV0dXJuIFBTQV9FUlJPUl9JTlNVRkZJQ0lFTlRfTUVNT1JZOwotICAgICAgICBjYXNlIE1CRURUTFNfRVJSX0VDUF9SQU5ET01fRkFJTEVEOgotICAgICAgICAgICAgcmV0dXJuIFBTQV9FUlJPUl9JTlNVRkZJQ0lFTlRfRU5UUk9QWTsKLQotI2lmIGRlZmluZWQoTUJFRFRMU19FQ1BfUkVTVEFSVEFCTEUpCi0gICAgICAgIGNhc2UgTUJFRFRMU19FUlJfRUNQX0lOX1BST0dSRVNTOgotICAgICAgICAgICAgcmV0dXJuIFBTQV9PUEVSQVRJT05fSU5DT01QTEVURTsKLSNlbmRpZgotI2VuZGlmCi0KLSAgICAgICAgY2FzZSBNQkVEVExTX0VSUl9FUlJPUl9DT1JSVVBUSU9OX0RFVEVDVEVEOgotICAgICAgICAgICAgcmV0dXJuIFBTQV9FUlJPUl9DT1JSVVBUSU9OX0RFVEVDVEVEOwotCi0gICAgICAgIGRlZmF1bHQ6Ci0gICAgICAgICAgICByZXR1cm4gUFNBX0VSUk9SX0dFTkVSSUNfRVJST1I7Ci0gICAgfQotfQotCi0vKioKLSAqIFxicmllZiAgICAgICAgICAgICAgICAgICAgICAgRm9yIG91dHB1dCBidWZmZXJzIHdoaWNoIGNvbnRhaW4gInRhZ3MiCi0gKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvdXRwdXRzIHRoYXQgbWF5IGJlIGNoZWNrZWQgZm9yIHZhbGlkaXR5IGxpa2UKLSAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFzaGVzLCBNQUNzIGFuZCBzaWduYXR1cmVzKSwgZmlsbCB0aGUgdW51c2VkCi0gKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhcnQgb2YgdGhlIG91dHB1dCBidWZmZXIgKHRoZSB3aG9sZSBidWZmZXIgb24KLSAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3IsIHRoZSB0cmFpbGluZyBwYXJ0IG9uIHN1Y2Nlc3MpIHdpdGgKLSAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc29tZXRoaW5nIHRoYXQgaXNuJ3QgYSB2YWxpZCB0YWcgKGJhcnJpbmcgYW4KLSAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXR0YWNrIG9uIHRoZSB0YWcgYW5kIGRlbGliZXJhdGVseS1jcmFmdGVkCi0gKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlucHV0KSwgaW4gY2FzZSB0aGUgY2FsbGVyIGRvZXNuJ3QgY2hlY2sgdGhlCi0gKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBzdGF0dXMgcHJvcGVybHkuCi0gKgotICogXHBhcmFtIG91dHB1dF9idWZmZXIgICAgICAgICBQb2ludGVyIHRvIGJ1ZmZlciB0byB3aXBlLiBNYXkgbm90IGJlIE5VTEwKLSAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5sZXNzIFxwIG91dHB1dF9idWZmZXJfc2l6ZSBpcyB6ZXJvLgotICogXHBhcmFtIHN0YXR1cyAgICAgICAgICAgICAgICBTdGF0dXMgb2YgZnVuY3Rpb24gY2FsbGVkIHRvIGdlbmVyYXRlCi0gKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG91dHB1dF9idWZmZXIgb3JpZ2luYWxseQotICogXHBhcmFtIG91dHB1dF9idWZmZXJfc2l6ZSAgICBTaXplIG9mIG91dHB1dCBidWZmZXIuIElmIHplcm8sIFxwIG91dHB1dF9idWZmZXIKLSAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY291bGQgYmUgTlVMTC4KLSAqIFxwYXJhbSBvdXRwdXRfYnVmZmVyX2xlbmd0aCAgTGVuZ3RoIG9mIGRhdGEgd3JpdHRlbiB0byBvdXRwdXRfYnVmZmVyLCBtdXN0IGJlCi0gKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxlc3MgdGhhbiBccCBvdXRwdXRfYnVmZmVyX3NpemUKLSAqLwotc3RhdGljIHZvaWQgcHNhX3dpcGVfdGFnX291dHB1dF9idWZmZXIodWludDhfdCAqb3V0cHV0X2J1ZmZlciwgcHNhX3N0YXR1c190IHN0YXR1cywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBvdXRwdXRfYnVmZmVyX3NpemUsIHNpemVfdCBvdXRwdXRfYnVmZmVyX2xlbmd0aCkKLXsKLSAgICBzaXplX3Qgb2Zmc2V0ID0gMDsKLQotICAgIGlmIChvdXRwdXRfYnVmZmVyX3NpemUgPT0gMCkgewotICAgICAgICAvKiBJZiBvdXRwdXRfYnVmZmVyX3NpemUgaXMgMCB0aGVuIHdlIGhhdmUgbm90aGluZyB0byBkby4gV2UgbXVzdCBub3QKLSAgICAgICAgICAgY2FsbCBtZW1zZXQgYmVjYXVzZSBvdXRwdXRfYnVmZmVyIG1heSBiZSBOVUxMIGluIHRoaXMgY2FzZSAqLwotICAgICAgICByZXR1cm47Ci0gICAgfQotCi0gICAgaWYgKHN0YXR1cyA9PSBQU0FfU1VDQ0VTUykgewotICAgICAgICBvZmZzZXQgPSBvdXRwdXRfYnVmZmVyX2xlbmd0aDsKLSAgICB9Ci0KLSAgICBtZW1zZXQob3V0cHV0X2J1ZmZlciArIG9mZnNldCwgJyEnLCBvdXRwdXRfYnVmZmVyX3NpemUgLSBvZmZzZXQpOwotfQotCi0KLXBzYV9zdGF0dXNfdCBwc2FfdmFsaWRhdGVfdW5zdHJ1Y3R1cmVkX2tleV9iaXRfc2l6ZShwc2Ffa2V5X3R5cGVfdCB0eXBlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBiaXRzKQotewotICAgIC8qIENoZWNrIHRoYXQgdGhlIGJpdCBzaXplIGlzIGFjY2VwdGFibGUgZm9yIHRoZSBrZXkgdHlwZSAqLwotICAgIHN3aXRjaCAodHlwZSkgewotICAgICAgICBjYXNlIFBTQV9LRVlfVFlQRV9SQVdfREFUQToKLSAgICAgICAgY2FzZSBQU0FfS0VZX1RZUEVfSE1BQzoKLSAgICAgICAgY2FzZSBQU0FfS0VZX1RZUEVfREVSSVZFOgotICAgICAgICBjYXNlIFBTQV9LRVlfVFlQRV9QQVNTV09SRDoKLSAgICAgICAgY2FzZSBQU0FfS0VZX1RZUEVfUEFTU1dPUkRfSEFTSDoKLSAgICAgICAgICAgIGJyZWFrOwotI2lmIGRlZmluZWQoUFNBX1dBTlRfS0VZX1RZUEVfQUVTKQotICAgICAgICBjYXNlIFBTQV9LRVlfVFlQRV9BRVM6Ci0gICAgICAgICAgICBpZiAoYml0cyAhPSAxMjggJiYgYml0cyAhPSAxOTIgJiYgYml0cyAhPSAyNTYpIHsKLSAgICAgICAgICAgICAgICByZXR1cm4gUFNBX0VSUk9SX0lOVkFMSURfQVJHVU1FTlQ7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBicmVhazsKLSNlbmRpZgotI2lmIGRlZmluZWQoUFNBX1dBTlRfS0VZX1RZUEVfQVJJQSkKLSAgICAgICAgY2FzZSBQU0FfS0VZX1RZUEVfQVJJQToKLSAgICAgICAgICAgIGlmIChiaXRzICE9IDEyOCAmJiBiaXRzICE9IDE5MiAmJiBiaXRzICE9IDI1NikgewotICAgICAgICAgICAgICAgIHJldHVybiBQU0FfRVJST1JfSU5WQUxJRF9BUkdVTUVOVDsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGJyZWFrOwotI2VuZGlmCi0jaWYgZGVmaW5lZChQU0FfV0FOVF9LRVlfVFlQRV9DQU1FTExJQSkKLSAgICAgICAgY2FzZSBQU0FfS0VZX1RZUEVfQ0FNRUxMSUE6Ci0gICAgICAgICAgICBpZiAoYml0cyAhPSAxMjggJiYgYml0cyAhPSAxOTIgJiYgYml0cyAhPSAyNTYpIHsKLSAgICAgICAgICAgICAgICByZXR1cm4gUFNBX0VSUk9SX0lOVkFMSURfQVJHVU1FTlQ7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBicmVhazsKLSNlbmRpZgotI2lmIGRlZmluZWQoUFNBX1dBTlRfS0VZX1RZUEVfREVTKQotICAgICAgICBjYXNlIFBTQV9LRVlfVFlQRV9ERVM6Ci0gICAgICAgICAgICBpZiAoYml0cyAhPSA2NCAmJiBiaXRzICE9IDEyOCAmJiBiaXRzICE9IDE5MikgewotICAgICAgICAgICAgICAgIHJldHVybiBQU0FfRVJST1JfSU5WQUxJRF9BUkdVTUVOVDsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGJyZWFrOwotI2VuZGlmCi0jaWYgZGVmaW5lZChQU0FfV0FOVF9LRVlfVFlQRV9DSEFDSEEyMCkKLSAgICAgICAgY2FzZSBQU0FfS0VZX1RZUEVfQ0hBQ0hBMjA6Ci0gICAgICAgICAgICBpZiAoYml0cyAhPSAyNTYpIHsKLSAgICAgICAgICAgICAgICByZXR1cm4gUFNBX0VSUk9SX0lOVkFMSURfQVJHVU1FTlQ7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBicmVhazsKLSNlbmRpZgotICAgICAgICBkZWZhdWx0OgotICAgICAgICAgICAgcmV0dXJuIFBTQV9FUlJPUl9OT1RfU1VQUE9SVEVEOwotICAgIH0KLSAgICBpZiAoYml0cyAlIDggIT0gMCkgewotICAgICAgICByZXR1cm4gUFNBX0VSUk9SX0lOVkFMSURfQVJHVU1FTlQ7Ci0gICAgfQotCi0gICAgcmV0dXJuIFBTQV9TVUNDRVNTOwotfQotCi0vKiogQ2hlY2sgd2hldGhlciBhIGdpdmVuIGtleSB0eXBlIGlzIHZhbGlkIGZvciB1c2Ugd2l0aCBhIGdpdmVuIE1BQyBhbGdvcml0aG0KLSAqCi0gKiBVcG9uIHN1Y2Nlc3NmdWwgcmV0dXJuIG9mIHRoaXMgZnVuY3Rpb24sIHRoZSBiZWhhdmlvciBvZiAjUFNBX01BQ19MRU5HVEgKLSAqIHdoZW4gY2FsbGVkIHdpdGggdGhlIHZhbGlkYXRlZCBccCBhbGdvcml0aG0gYW5kIFxwIGtleV90eXBlIGlzIHdlbGwtZGVmaW5lZC4KLSAqCi0gKiBccGFyYW1baW5dIGFsZ29yaXRobSAgICAgVGhlIHNwZWNpZmljIE1BQyBhbGdvcml0aG0gKGNhbiBiZSB3aWxkY2FyZCkuCi0gKiBccGFyYW1baW5dIGtleV90eXBlICAgICAgVGhlIGtleSB0eXBlIG9mIHRoZSBrZXkgdG8gYmUgdXNlZCB3aXRoIHRoZQotICogICAgICAgICAgICAgICAgICAgICAgICAgIFxwIGFsZ29yaXRobS4KLSAqCi0gKiBccmV0dmFsICNQU0FfU1VDQ0VTUwotICogICAgICAgICBUaGUgXHAga2V5X3R5cGUgaXMgdmFsaWQgZm9yIHVzZSB3aXRoIHRoZSBccCBhbGdvcml0aG0KLSAqIFxyZXR2YWwgI1BTQV9FUlJPUl9JTlZBTElEX0FSR1VNRU5UCi0gKiAgICAgICAgIFRoZSBccCBrZXlfdHlwZSBpcyBub3QgdmFsaWQgZm9yIHVzZSB3aXRoIHRoZSBccCBhbGdvcml0aG0KLSAqLwotTUJFRFRMU19TVEFUSUNfVEVTVEFCTEUgcHNhX3N0YXR1c190IHBzYV9tYWNfa2V5X2Nhbl9kbygKLSAgICBwc2FfYWxnb3JpdGhtX3QgYWxnb3JpdGhtLAotICAgIHBzYV9rZXlfdHlwZV90IGtleV90eXBlKQotewotICAgIGlmIChQU0FfQUxHX0lTX0hNQUMoYWxnb3JpdGhtKSkgewotICAgICAgICBpZiAoa2V5X3R5cGUgPT0gUFNBX0tFWV9UWVBFX0hNQUMpIHsKLSAgICAgICAgICAgIHJldHVybiBQU0FfU1VDQ0VTUzsKLSAgICAgICAgfQotICAgIH0KLQotICAgIGlmIChQU0FfQUxHX0lTX0JMT0NLX0NJUEhFUl9NQUMoYWxnb3JpdGhtKSkgewotICAgICAgICAvKiBDaGVjayB0aGF0IHdlJ3JlIGNhbGxpbmcgUFNBX0JMT0NLX0NJUEhFUl9CTE9DS19MRU5HVEggd2l0aCBhIGNpcGhlcgotICAgICAgICAgKiBrZXkuICovCi0gICAgICAgIGlmICgoa2V5X3R5cGUgJiBQU0FfS0VZX1RZUEVfQ0FURUdPUllfTUFTSykgPT0KLSAgICAgICAgICAgIFBTQV9LRVlfVFlQRV9DQVRFR09SWV9TWU1NRVRSSUMpIHsKLSAgICAgICAgICAgIC8qIFBTQV9CTE9DS19DSVBIRVJfQkxPQ0tfTEVOR1RIIHJldHVybnMgMSBmb3Igc3RyZWFtIGNpcGhlcnMgYW5kCi0gICAgICAgICAgICAgKiB0aGUgYmxvY2sgbGVuZ3RoIChsYXJnZXIgdGhhbiAxKSBmb3IgYmxvY2sgY2lwaGVycy4gKi8KLSAgICAgICAgICAgIGlmIChQU0FfQkxPQ0tfQ0lQSEVSX0JMT0NLX0xFTkdUSChrZXlfdHlwZSkgPiAxKSB7Ci0gICAgICAgICAgICAgICAgcmV0dXJuIFBTQV9TVUNDRVNTOwotICAgICAgICAgICAgfQotICAgICAgICB9Ci0gICAgfQotCi0gICAgcmV0dXJuIFBTQV9FUlJPUl9JTlZBTElEX0FSR1VNRU5UOwotfQotCi1wc2Ffc3RhdHVzX3QgcHNhX2FsbG9jYXRlX2J1ZmZlcl90b19zbG90KHBzYV9rZXlfc2xvdF90ICpzbG90LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgYnVmZmVyX2xlbmd0aCkKLXsKLSAgICBpZiAoc2xvdC0+a2V5LmRhdGEgIT0gTlVMTCkgewotICAgICAgICByZXR1cm4gUFNBX0VSUk9SX0FMUkVBRFlfRVhJU1RTOwotICAgIH0KLQotICAgIHNsb3QtPmtleS5kYXRhID0gbWJlZHRsc19jYWxsb2MoMSwgYnVmZmVyX2xlbmd0aCk7Ci0gICAgaWYgKHNsb3QtPmtleS5kYXRhID09IE5VTEwpIHsKLSAgICAgICAgcmV0dXJuIFBTQV9FUlJPUl9JTlNVRkZJQ0lFTlRfTUVNT1JZOwotICAgIH0KLQotICAgIHNsb3QtPmtleS5ieXRlcyA9IGJ1ZmZlcl9sZW5ndGg7Ci0gICAgcmV0dXJuIFBTQV9TVUNDRVNTOwotfQotCi1wc2Ffc3RhdHVzX3QgcHNhX2NvcHlfa2V5X21hdGVyaWFsX2ludG9fc2xvdChwc2Ffa2V5X3Nsb3RfdCAqc2xvdCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVpbnQ4X3QgKmRhdGEsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgZGF0YV9sZW5ndGgpCi17Ci0gICAgcHNhX3N0YXR1c190IHN0YXR1cyA9IHBzYV9hbGxvY2F0ZV9idWZmZXJfdG9fc2xvdChzbG90LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YV9sZW5ndGgpOwotICAgIGlmIChzdGF0dXMgIT0gUFNBX1NVQ0NFU1MpIHsKLSAgICAgICAgcmV0dXJuIHN0YXR1czsKLSAgICB9Ci0KLSAgICBtZW1jcHkoc2xvdC0+a2V5LmRhdGEsIGRhdGEsIGRhdGFfbGVuZ3RoKTsKLSAgICByZXR1cm4gUFNBX1NVQ0NFU1M7Ci19Ci0KLXBzYV9zdGF0dXNfdCBwc2FfaW1wb3J0X2tleV9pbnRvX3Nsb3QoCi0gICAgY29uc3QgcHNhX2tleV9hdHRyaWJ1dGVzX3QgKmF0dHJpYnV0ZXMsCi0gICAgY29uc3QgdWludDhfdCAqZGF0YSwgc2l6ZV90IGRhdGFfbGVuZ3RoLAotICAgIHVpbnQ4X3QgKmtleV9idWZmZXIsIHNpemVfdCBrZXlfYnVmZmVyX3NpemUsCi0gICAgc2l6ZV90ICprZXlfYnVmZmVyX2xlbmd0aCwgc2l6ZV90ICpiaXRzKQotewotICAgIHBzYV9zdGF0dXNfdCBzdGF0dXMgPSBQU0FfRVJST1JfQ09SUlVQVElPTl9ERVRFQ1RFRDsKLSAgICBwc2Ffa2V5X3R5cGVfdCB0eXBlID0gYXR0cmlidXRlcy0+dHlwZTsKLQotICAgIC8qIHplcm8tbGVuZ3RoIGtleXMgYXJlIG5ldmVyIHN1cHBvcnRlZC4gKi8KLSAgICBpZiAoZGF0YV9sZW5ndGggPT0gMCkgewotICAgICAgICByZXR1cm4gUFNBX0VSUk9SX05PVF9TVVBQT1JURUQ7Ci0gICAgfQotCi0gICAgaWYgKGtleV90eXBlX2lzX3Jhd19ieXRlcyh0eXBlKSkgewotICAgICAgICAqYml0cyA9IFBTQV9CWVRFU19UT19CSVRTKGRhdGFfbGVuZ3RoKTsKLQotICAgICAgICBzdGF0dXMgPSBwc2FfdmFsaWRhdGVfdW5zdHJ1Y3R1cmVkX2tleV9iaXRfc2l6ZShhdHRyaWJ1dGVzLT50eXBlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqYml0cyk7Ci0gICAgICAgIGlmIChzdGF0dXMgIT0gUFNBX1NVQ0NFU1MpIHsKLSAgICAgICAgICAgIHJldHVybiBzdGF0dXM7Ci0gICAgICAgIH0KLQotICAgICAgICAvKiBDb3B5IHRoZSBrZXkgbWF0ZXJpYWwuICovCi0gICAgICAgIG1lbWNweShrZXlfYnVmZmVyLCBkYXRhLCBkYXRhX2xlbmd0aCk7Ci0gICAgICAgICprZXlfYnVmZmVyX2xlbmd0aCA9IGRhdGFfbGVuZ3RoOwotICAgICAgICAodm9pZCkga2V5X2J1ZmZlcl9zaXplOwotCi0gICAgICAgIHJldHVybiBQU0FfU1VDQ0VTUzsKLSAgICB9IGVsc2UgaWYgKFBTQV9LRVlfVFlQRV9JU19BU1lNTUVUUklDKHR5cGUpKSB7Ci0jaWYgZGVmaW5lZChNQkVEVExTX1BTQV9CVUlMVElOX0tFWV9UWVBFX0RIX0tFWV9QQUlSX0lNUE9SVCkgfHwgXAotICAgICAgICBkZWZpbmVkKE1CRURUTFNfUFNBX0JVSUxUSU5fS0VZX1RZUEVfREhfUFVCTElDX0tFWSkKLSAgICAgICAgaWYgKFBTQV9LRVlfVFlQRV9JU19ESCh0eXBlKSkgewotICAgICAgICAgICAgaWYgKHBzYV9pc19kaF9rZXlfc2l6ZV92YWxpZChQU0FfQllURVNfVE9fQklUUyhkYXRhX2xlbmd0aCkpID09IDApIHsKLSAgICAgICAgICAgICAgICByZXR1cm4gUFNBX0VSUk9SX05PVF9TVVBQT1JURUQ7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICByZXR1cm4gbWJlZHRsc19wc2FfZmZkaF9pbXBvcnRfa2V5KGF0dHJpYnV0ZXMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEsIGRhdGFfbGVuZ3RoLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXlfYnVmZmVyLCBrZXlfYnVmZmVyX3NpemUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtleV9idWZmZXJfbGVuZ3RoLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiaXRzKTsKLSAgICAgICAgfQotI2VuZGlmIC8qIGRlZmluZWQoTUJFRFRMU19QU0FfQlVJTFRJTl9LRVlfVFlQRV9ESF9LRVlfUEFJUl9JTVBPUlQpIHx8Ci0gICAgICAgICogZGVmaW5lZChNQkVEVExTX1BTQV9CVUlMVElOX0tFWV9UWVBFX0RIX1BVQkxJQ19LRVkpICovCi0jaWYgZGVmaW5lZChNQkVEVExTX1BTQV9CVUlMVElOX0tFWV9UWVBFX0VDQ19LRVlfUEFJUl9JTVBPUlQpIHx8IFwKLSAgICAgICAgZGVmaW5lZChNQkVEVExTX1BTQV9CVUlMVElOX0tFWV9UWVBFX0VDQ19QVUJMSUNfS0VZKQotICAgICAgICBpZiAoUFNBX0tFWV9UWVBFX0lTX0VDQyh0eXBlKSkgewotICAgICAgICAgICAgcmV0dXJuIG1iZWR0bHNfcHNhX2VjcF9pbXBvcnRfa2V5KGF0dHJpYnV0ZXMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YSwgZGF0YV9sZW5ndGgsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga2V5X2J1ZmZlciwga2V5X2J1ZmZlcl9zaXplLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtleV9idWZmZXJfbGVuZ3RoLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJpdHMpOwotICAgICAgICB9Ci0jZW5kaWYgLyogZGVmaW5lZChNQkVEVExTX1BTQV9CVUlMVElOX0tFWV9UWVBFX0VDQ19LRVlfUEFJUl9JTVBPUlQpIHx8Ci0gICAgICAgICogZGVmaW5lZChNQkVEVExTX1BTQV9CVUlMVElOX0tFWV9UWVBFX0VDQ19QVUJMSUNfS0VZKSAqLwotI2lmIChkZWZpbmVkKE1CRURUTFNfUFNBX0JVSUxUSU5fS0VZX1RZUEVfUlNBX0tFWV9QQUlSX0lNUE9SVCkgJiYgXAotICAgICAgICBkZWZpbmVkKE1CRURUTFNfUFNBX0JVSUxUSU5fS0VZX1RZUEVfUlNBX0tFWV9QQUlSX0VYUE9SVCkpIHx8IFwKLSAgICAgICAgZGVmaW5lZChNQkVEVExTX1BTQV9CVUlMVElOX0tFWV9UWVBFX1JTQV9QVUJMSUNfS0VZKQotICAgICAgICBpZiAoUFNBX0tFWV9UWVBFX0lTX1JTQSh0eXBlKSkgewotICAgICAgICAgICAgcmV0dXJuIG1iZWR0bHNfcHNhX3JzYV9pbXBvcnRfa2V5KGF0dHJpYnV0ZXMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YSwgZGF0YV9sZW5ndGgsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga2V5X2J1ZmZlciwga2V5X2J1ZmZlcl9zaXplLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtleV9idWZmZXJfbGVuZ3RoLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJpdHMpOwotICAgICAgICB9Ci0jZW5kaWYgLyogKGRlZmluZWQoTUJFRFRMU19QU0FfQlVJTFRJTl9LRVlfVFlQRV9SU0FfS0VZX1BBSVJfSU1QT1JUKSAmJgotICAgICAgICAgICBkZWZpbmVkKE1CRURUTFNfUFNBX0JVSUxUSU5fS0VZX1RZUEVfUlNBX0tFWV9QQUlSX0VYUE9SVCkpIHx8Ci0gICAgICAgICogZGVmaW5lZChNQkVEVExTX1BTQV9CVUlMVElOX0tFWV9UWVBFX1JTQV9QVUJMSUNfS0VZKSAqLwotICAgIH0KLQotICAgIHJldHVybiBQU0FfRVJST1JfTk9UX1NVUFBPUlRFRDsKLX0KLQotLyoqIENhbGN1bGF0ZSB0aGUgaW50ZXJzZWN0aW9uIG9mIHR3byBhbGdvcml0aG0gdXNhZ2UgcG9saWNpZXMuCi0gKgotICogUmV0dXJuIDAgKHdoaWNoIGFsbG93cyBubyBvcGVyYXRpb24pIG9uIGluY29tcGF0aWJpbGl0eS4KLSAqLwotc3RhdGljIHBzYV9hbGdvcml0aG1fdCBwc2Ffa2V5X3BvbGljeV9hbGdvcml0aG1faW50ZXJzZWN0aW9uKAotICAgIHBzYV9rZXlfdHlwZV90IGtleV90eXBlLAotICAgIHBzYV9hbGdvcml0aG1fdCBhbGcxLAotICAgIHBzYV9hbGdvcml0aG1fdCBhbGcyKQotewotICAgIC8qIENvbW1vbiBjYXNlOiBib3RoIHNpZGVzIGFjdHVhbGx5IHNwZWNpZnkgdGhlIHNhbWUgcG9saWN5LiAqLwotICAgIGlmIChhbGcxID09IGFsZzIpIHsKLSAgICAgICAgcmV0dXJuIGFsZzE7Ci0gICAgfQotICAgIC8qIElmIHRoZSBwb2xpY2llcyBhcmUgZnJvbSB0aGUgc2FtZSBoYXNoLWFuZC1zaWduIGZhbWlseSwgY2hlY2sKLSAgICAgKiBpZiBvbmUgaXMgYSB3aWxkY2FyZC4gSWYgc28gdGhlIG90aGVyIGhhcyB0aGUgc3BlY2lmaWMgYWxnb3JpdGhtLiAqLwotICAgIGlmIChQU0FfQUxHX0lTX1NJR05fSEFTSChhbGcxKSAmJgotICAgICAgICBQU0FfQUxHX0lTX1NJR05fSEFTSChhbGcyKSAmJgotICAgICAgICAoYWxnMSAmIH5QU0FfQUxHX0hBU0hfTUFTSykgPT0gKGFsZzIgJiB+UFNBX0FMR19IQVNIX01BU0spKSB7Ci0gICAgICAgIGlmIChQU0FfQUxHX1NJR05fR0VUX0hBU0goYWxnMSkgPT0gUFNBX0FMR19BTllfSEFTSCkgewotICAgICAgICAgICAgcmV0dXJuIGFsZzI7Ci0gICAgICAgIH0KLSAgICAgICAgaWYgKFBTQV9BTEdfU0lHTl9HRVRfSEFTSChhbGcyKSA9PSBQU0FfQUxHX0FOWV9IQVNIKSB7Ci0gICAgICAgICAgICByZXR1cm4gYWxnMTsKLSAgICAgICAgfQotICAgIH0KLSAgICAvKiBJZiB0aGUgcG9saWNpZXMgYXJlIGZyb20gdGhlIHNhbWUgQUVBRCBmYW1pbHksIGNoZWNrIHdoZXRoZXIKLSAgICAgKiBvbmUgb2YgdGhlbSBpcyBhIG1pbmltdW0tdGFnLWxlbmd0aCB3aWxkY2FyZC4gQ2FsY3VsYXRlIHRoZSBtb3N0Ci0gICAgICogcmVzdHJpY3RpdmUgdGFnIGxlbmd0aC4gKi8KLSAgICBpZiAoUFNBX0FMR19JU19BRUFEKGFsZzEpICYmIFBTQV9BTEdfSVNfQUVBRChhbGcyKSAmJgotICAgICAgICAoUFNBX0FMR19BRUFEX1dJVEhfU0hPUlRFTkVEX1RBRyhhbGcxLCAwKSA9PQotICAgICAgICAgUFNBX0FMR19BRUFEX1dJVEhfU0hPUlRFTkVEX1RBRyhhbGcyLCAwKSkpIHsKLSAgICAgICAgc2l6ZV90IGFsZzFfbGVuID0gUFNBX0FMR19BRUFEX0dFVF9UQUdfTEVOR1RIKGFsZzEpOwotICAgICAgICBzaXplX3QgYWxnMl9sZW4gPSBQU0FfQUxHX0FFQURfR0VUX1RBR19MRU5HVEgoYWxnMik7Ci0gICAgICAgIHNpemVfdCByZXN0cmljdGVkX2xlbiA9IGFsZzFfbGVuID4gYWxnMl9sZW4gPyBhbGcxX2xlbiA6IGFsZzJfbGVuOwotCi0gICAgICAgIC8qIElmIGJvdGggYXJlIHdpbGRjYXJkcywgcmV0dXJuIG1vc3QgcmVzdHJpY3RpdmUgd2lsZGNhcmQgKi8KLSAgICAgICAgaWYgKCgoYWxnMSAmIFBTQV9BTEdfQUVBRF9BVF9MRUFTVF9USElTX0xFTkdUSF9GTEFHKSAhPSAwKSAmJgotICAgICAgICAgICAgKChhbGcyICYgUFNBX0FMR19BRUFEX0FUX0xFQVNUX1RISVNfTEVOR1RIX0ZMQUcpICE9IDApKSB7Ci0gICAgICAgICAgICByZXR1cm4gUFNBX0FMR19BRUFEX1dJVEhfQVRfTEVBU1RfVEhJU19MRU5HVEhfVEFHKAotICAgICAgICAgICAgICAgIGFsZzEsIHJlc3RyaWN0ZWRfbGVuKTsKLSAgICAgICAgfQotICAgICAgICAvKiBJZiBvbmx5IG9uZSBpcyBhIHdpbGRjYXJkLCByZXR1cm4gc3BlY2lmaWMgYWxnb3JpdGhtIGlmIGNvbXBhdGlibGUuICovCi0gICAgICAgIGlmICgoKGFsZzEgJiBQU0FfQUxHX0FFQURfQVRfTEVBU1RfVEhJU19MRU5HVEhfRkxBRykgIT0gMCkgJiYKLSAgICAgICAgICAgIChhbGcxX2xlbiA8PSBhbGcyX2xlbikpIHsKLSAgICAgICAgICAgIHJldHVybiBhbGcyOwotICAgICAgICB9Ci0gICAgICAgIGlmICgoKGFsZzIgJiBQU0FfQUxHX0FFQURfQVRfTEVBU1RfVEhJU19MRU5HVEhfRkxBRykgIT0gMCkgJiYKLSAgICAgICAgICAgIChhbGcyX2xlbiA8PSBhbGcxX2xlbikpIHsKLSAgICAgICAgICAgIHJldHVybiBhbGcxOwotICAgICAgICB9Ci0gICAgfQotICAgIC8qIElmIHRoZSBwb2xpY2llcyBhcmUgZnJvbSB0aGUgc2FtZSBNQUMgZmFtaWx5LCBjaGVjayB3aGV0aGVyIG9uZQotICAgICAqIG9mIHRoZW0gaXMgYSBtaW5pbXVtLU1BQy1sZW5ndGggcG9saWN5LiBDYWxjdWxhdGUgdGhlIG1vc3QKLSAgICAgKiByZXN0cmljdGl2ZSB0YWcgbGVuZ3RoLiAqLwotICAgIGlmIChQU0FfQUxHX0lTX01BQyhhbGcxKSAmJiBQU0FfQUxHX0lTX01BQyhhbGcyKSAmJgotICAgICAgICAoUFNBX0FMR19GVUxMX0xFTkdUSF9NQUMoYWxnMSkgPT0KLSAgICAgICAgIFBTQV9BTEdfRlVMTF9MRU5HVEhfTUFDKGFsZzIpKSkgewotICAgICAgICAvKiBWYWxpZGF0ZSB0aGUgY29tYmluYXRpb24gb2Yga2V5IHR5cGUgYW5kIGFsZ29yaXRobS4gU2luY2UgdGhlIGJhc2UKLSAgICAgICAgICogYWxnb3JpdGhtIG9mIGFsZzEgYW5kIGFsZzIgYXJlIHRoZSBzYW1lLCB3ZSBvbmx5IG5lZWQgdGhpcyBvbmNlLiAqLwotICAgICAgICBpZiAoUFNBX1NVQ0NFU1MgIT0gcHNhX21hY19rZXlfY2FuX2RvKGFsZzEsIGtleV90eXBlKSkgewotICAgICAgICAgICAgcmV0dXJuIDA7Ci0gICAgICAgIH0KLQotICAgICAgICAvKiBHZXQgdGhlIChleGFjdCBvciBhdC1sZWFzdCkgb3V0cHV0IGxlbmd0aHMgZm9yIGJvdGggc2lkZXMgb2YgdGhlCi0gICAgICAgICAqIHJlcXVlc3RlZCBpbnRlcnNlY3Rpb24uIE5vbmUgb2YgdGhlIGN1cnJlbnRseSBzdXBwb3J0ZWQgYWxnb3JpdGhtcwotICAgICAgICAgKiBoYXZlIGFuIG91dHB1dCBsZW5ndGggZGVwZW5kZW50IG9uIHRoZSBhY3R1YWwga2V5IHNpemUsIHNvIHNldHRpbmcgaXQKLSAgICAgICAgICogdG8gYSBib2d1cyB2YWx1ZSBvZiAwIGlzIGN1cnJlbnRseSBPSy4KLSAgICAgICAgICoKLSAgICAgICAgICogTm90ZSB0aGF0IGZvciBhdC1sZWFzdC10aGlzLWxlbmd0aCB3aWxkY2FyZCBhbGdvcml0aG1zLCB0aGUgb3V0cHV0Ci0gICAgICAgICAqIGxlbmd0aCBpcyBzZXQgdG8gdGhlIHNob3J0ZXN0IGFsbG93ZWQgbGVuZ3RoLCB3aGljaCBhbGxvd3MgdXMgdG8KLSAgICAgICAgICogY2FsY3VsYXRlIHRoZSBtb3N0IHJlc3RyaWN0aXZlIHRhZyBsZW5ndGggZm9yIHRoZSBpbnRlcnNlY3Rpb24uICovCi0gICAgICAgIHNpemVfdCBhbGcxX2xlbiA9IFBTQV9NQUNfTEVOR1RIKGtleV90eXBlLCAwLCBhbGcxKTsKLSAgICAgICAgc2l6ZV90IGFsZzJfbGVuID0gUFNBX01BQ19MRU5HVEgoa2V5X3R5cGUsIDAsIGFsZzIpOwotICAgICAgICBzaXplX3QgcmVzdHJpY3RlZF9sZW4gPSBhbGcxX2xlbiA+IGFsZzJfbGVuID8gYWxnMV9sZW4gOiBhbGcyX2xlbjsKLQotICAgICAgICAvKiBJZiBib3RoIGFyZSB3aWxkY2FyZHMsIHJldHVybiBtb3N0IHJlc3RyaWN0aXZlIHdpbGRjYXJkICovCi0gICAgICAgIGlmICgoKGFsZzEgJiBQU0FfQUxHX01BQ19BVF9MRUFTVF9USElTX0xFTkdUSF9GTEFHKSAhPSAwKSAmJgotICAgICAgICAgICAgKChhbGcyICYgUFNBX0FMR19NQUNfQVRfTEVBU1RfVEhJU19MRU5HVEhfRkxBRykgIT0gMCkpIHsKLSAgICAgICAgICAgIHJldHVybiBQU0FfQUxHX0FUX0xFQVNUX1RISVNfTEVOR1RIX01BQyhhbGcxLCByZXN0cmljdGVkX2xlbik7Ci0gICAgICAgIH0KLQotICAgICAgICAvKiBJZiBvbmx5IG9uZSBpcyBhbiBhdC1sZWFzdC10aGlzLWxlbmd0aCBwb2xpY3ksIHRoZSBpbnRlcnNlY3Rpb24gd291bGQKLSAgICAgICAgICogYmUgdGhlIG90aGVyIChmaXhlZC1sZW5ndGgpIHBvbGljeSBhcyBsb25nIGFzIHNhaWQgZml4ZWQgbGVuZ3RoIGlzCi0gICAgICAgICAqIGVxdWFsIHRvIG9yIGxhcmdlciB0aGFuIHRoZSBzaG9ydGVzdCBhbGxvd2VkIGxlbmd0aC4gKi8KLSAgICAgICAgaWYgKChhbGcxICYgUFNBX0FMR19NQUNfQVRfTEVBU1RfVEhJU19MRU5HVEhfRkxBRykgIT0gMCkgewotICAgICAgICAgICAgcmV0dXJuIChhbGcxX2xlbiA8PSBhbGcyX2xlbikgPyBhbGcyIDogMDsKLSAgICAgICAgfQotICAgICAgICBpZiAoKGFsZzIgJiBQU0FfQUxHX01BQ19BVF9MRUFTVF9USElTX0xFTkdUSF9GTEFHKSAhPSAwKSB7Ci0gICAgICAgICAgICByZXR1cm4gKGFsZzJfbGVuIDw9IGFsZzFfbGVuKSA/IGFsZzEgOiAwOwotICAgICAgICB9Ci0KLSAgICAgICAgLyogSWYgbm9uZSBvZiB0aGVtIGFyZSB3aWxkY2FyZHMsIGNoZWNrIHdoZXRoZXIgdGhleSBkZWZpbmUgdGhlIHNhbWUgdGFnCi0gICAgICAgICAqIGxlbmd0aC4gVGhpcyBpcyBzdGlsbCBwb3NzaWJsZSBoZXJlIHdoZW4gb25lIGlzIGRlZmF1bHQtbGVuZ3RoIGFuZAotICAgICAgICAgKiB0aGUgb3RoZXIgc3BlY2lmaWMtbGVuZ3RoLiBFbnN1cmUgdG8gYWx3YXlzIHJldHVybiB0aGUKLSAgICAgICAgICogc3BlY2lmaWMtbGVuZ3RoIHZlcnNpb24gZm9yIHRoZSBpbnRlcnNlY3Rpb24uICovCi0gICAgICAgIGlmIChhbGcxX2xlbiA9PSBhbGcyX2xlbikgewotICAgICAgICAgICAgcmV0dXJuIFBTQV9BTEdfVFJVTkNBVEVEX01BQyhhbGcxLCBhbGcxX2xlbik7Ci0gICAgICAgIH0KLSAgICB9Ci0gICAgLyogSWYgdGhlIHBvbGljaWVzIGFyZSBpbmNvbXBhdGlibGUsIGFsbG93IG5vdGhpbmcuICovCi0gICAgcmV0dXJuIDA7Ci19Ci0KLXN0YXRpYyBpbnQgcHNhX2tleV9hbGdvcml0aG1fcGVybWl0cyhwc2Ffa2V5X3R5cGVfdCBrZXlfdHlwZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwc2FfYWxnb3JpdGhtX3QgcG9saWN5X2FsZywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwc2FfYWxnb3JpdGhtX3QgcmVxdWVzdGVkX2FsZykKLXsKLSAgICAvKiBDb21tb24gY2FzZTogdGhlIHBvbGljeSBvbmx5IGFsbG93cyByZXF1ZXN0ZWRfYWxnLiAqLwotICAgIGlmIChyZXF1ZXN0ZWRfYWxnID09IHBvbGljeV9hbGcpIHsKLSAgICAgICAgcmV0dXJuIDE7Ci0gICAgfQotICAgIC8qIElmIHBvbGljeV9hbGcgaXMgYSBoYXNoLWFuZC1zaWduIHdpdGggYSB3aWxkY2FyZCBmb3IgdGhlIGhhc2gsCi0gICAgICogYW5kIHJlcXVlc3RlZF9hbGcgaXMgdGhlIHNhbWUgaGFzaC1hbmQtc2lnbiBmYW1pbHkgd2l0aCBhbnkgaGFzaCwKLSAgICAgKiB0aGVuIHJlcXVlc3RlZF9hbGcgaXMgY29tcGxpYW50IHdpdGggcG9saWN5X2FsZy4gKi8KLSAgICBpZiAoUFNBX0FMR19JU19TSUdOX0hBU0gocmVxdWVzdGVkX2FsZykgJiYKLSAgICAgICAgUFNBX0FMR19TSUdOX0dFVF9IQVNIKHBvbGljeV9hbGcpID09IFBTQV9BTEdfQU5ZX0hBU0gpIHsKLSAgICAgICAgcmV0dXJuIChwb2xpY3lfYWxnICYgflBTQV9BTEdfSEFTSF9NQVNLKSA9PQotICAgICAgICAgICAgICAgKHJlcXVlc3RlZF9hbGcgJiB+UFNBX0FMR19IQVNIX01BU0spOwotICAgIH0KLSAgICAvKiBJZiBwb2xpY3lfYWxnIGlzIGEgd2lsZGNhcmQgQUVBRCBhbGdvcml0aG0gb2YgdGhlIHNhbWUgYmFzZSBhcwotICAgICAqIHRoZSByZXF1ZXN0ZWQgYWxnb3JpdGhtLCBjaGVjayB0aGUgcmVxdWVzdGVkIHRhZyBsZW5ndGggdG8gYmUKLSAgICAgKiBlcXVhbC1sZW5ndGggb3IgbG9uZ2VyIHRoYW4gdGhlIHdpbGRjYXJkLXNwZWNpZmllZCBsZW5ndGguICovCi0gICAgaWYgKFBTQV9BTEdfSVNfQUVBRChwb2xpY3lfYWxnKSAmJgotICAgICAgICBQU0FfQUxHX0lTX0FFQUQocmVxdWVzdGVkX2FsZykgJiYKLSAgICAgICAgKFBTQV9BTEdfQUVBRF9XSVRIX1NIT1JURU5FRF9UQUcocG9saWN5X2FsZywgMCkgPT0KLSAgICAgICAgIFBTQV9BTEdfQUVBRF9XSVRIX1NIT1JURU5FRF9UQUcocmVxdWVzdGVkX2FsZywgMCkpICYmCi0gICAgICAgICgocG9saWN5X2FsZyAmIFBTQV9BTEdfQUVBRF9BVF9MRUFTVF9USElTX0xFTkdUSF9GTEFHKSAhPSAwKSkgewotICAgICAgICByZXR1cm4gUFNBX0FMR19BRUFEX0dFVF9UQUdfTEVOR1RIKHBvbGljeV9hbGcpIDw9Ci0gICAgICAgICAgICAgICBQU0FfQUxHX0FFQURfR0VUX1RBR19MRU5HVEgocmVxdWVzdGVkX2FsZyk7Ci0gICAgfQotICAgIC8qIElmIHBvbGljeV9hbGcgaXMgYSBNQUMgYWxnb3JpdGhtIG9mIHRoZSBzYW1lIGJhc2UgYXMgdGhlIHJlcXVlc3RlZAotICAgICAqIGFsZ29yaXRobSwgY2hlY2sgd2hldGhlciB0aGVpciBNQUMgbGVuZ3RocyBhcmUgY29tcGF0aWJsZS4gKi8KLSAgICBpZiAoUFNBX0FMR19JU19NQUMocG9saWN5X2FsZykgJiYKLSAgICAgICAgUFNBX0FMR19JU19NQUMocmVxdWVzdGVkX2FsZykgJiYKLSAgICAgICAgKFBTQV9BTEdfRlVMTF9MRU5HVEhfTUFDKHBvbGljeV9hbGcpID09Ci0gICAgICAgICBQU0FfQUxHX0ZVTExfTEVOR1RIX01BQyhyZXF1ZXN0ZWRfYWxnKSkpIHsKLSAgICAgICAgLyogVmFsaWRhdGUgdGhlIGNvbWJpbmF0aW9uIG9mIGtleSB0eXBlIGFuZCBhbGdvcml0aG0uIFNpbmNlIHRoZSBwb2xpY3kKLSAgICAgICAgICogYW5kIHJlcXVlc3RlZCBhbGdvcml0aG1zIGFyZSB0aGUgc2FtZSwgd2Ugb25seSBuZWVkIHRoaXMgb25jZS4gKi8KLSAgICAgICAgaWYgKFBTQV9TVUNDRVNTICE9IHBzYV9tYWNfa2V5X2Nhbl9kbyhwb2xpY3lfYWxnLCBrZXlfdHlwZSkpIHsKLSAgICAgICAgICAgIHJldHVybiAwOwotICAgICAgICB9Ci0KLSAgICAgICAgLyogR2V0IGJvdGggdGhlIHJlcXVlc3RlZCBvdXRwdXQgbGVuZ3RoIGZvciB0aGUgYWxnb3JpdGhtIHdoaWNoIGlzIHRvIGJlCi0gICAgICAgICAqIHZlcmlmaWVkLCBhbmQgdGhlIGRlZmF1bHQgb3V0cHV0IGxlbmd0aCBmb3IgdGhlIGJhc2UgYWxnb3JpdGhtLgotICAgICAgICAgKiBOb3RlIHRoYXQgbm9uZSBvZiB0aGUgY3VycmVudGx5IHN1cHBvcnRlZCBhbGdvcml0aG1zIGhhdmUgYW4gb3V0cHV0Ci0gICAgICAgICAqIGxlbmd0aCBkZXBlbmRlbnQgb24gYWN0dWFsIGtleSBzaXplLCBzbyBzZXR0aW5nIGl0IHRvIGEgYm9ndXMgdmFsdWUKLSAgICAgICAgICogb2YgMCBpcyBjdXJyZW50bHkgT0suICovCi0gICAgICAgIHNpemVfdCByZXF1ZXN0ZWRfb3V0cHV0X2xlbmd0aCA9IFBTQV9NQUNfTEVOR1RIKAotICAgICAgICAgICAga2V5X3R5cGUsIDAsIHJlcXVlc3RlZF9hbGcpOwotICAgICAgICBzaXplX3QgZGVmYXVsdF9vdXRwdXRfbGVuZ3RoID0gUFNBX01BQ19MRU5HVEgoCi0gICAgICAgICAgICBrZXlfdHlwZSwgMCwKLSAgICAgICAgICAgIFBTQV9BTEdfRlVMTF9MRU5HVEhfTUFDKHJlcXVlc3RlZF9hbGcpKTsKLQotICAgICAgICAvKiBJZiB0aGUgcG9saWN5IGlzIGRlZmF1bHQtbGVuZ3RoLCBvbmx5IGFsbG93IGFuIGFsZ29yaXRobSB3aXRoCi0gICAgICAgICAqIGEgZGVjbGFyZWQgZXhhY3QtbGVuZ3RoIG1hdGNoaW5nIHRoZSBkZWZhdWx0LiAqLwotICAgICAgICBpZiAoUFNBX01BQ19UUlVOQ0FURURfTEVOR1RIKHBvbGljeV9hbGcpID09IDApIHsKLSAgICAgICAgICAgIHJldHVybiByZXF1ZXN0ZWRfb3V0cHV0X2xlbmd0aCA9PSBkZWZhdWx0X291dHB1dF9sZW5ndGg7Ci0gICAgICAgIH0KLQotICAgICAgICAvKiBJZiB0aGUgcmVxdWVzdGVkIGFsZ29yaXRobSBpcyBkZWZhdWx0LWxlbmd0aCwgYWxsb3cgaXQgaWYgdGhlIHBvbGljeQotICAgICAgICAgKiBsZW5ndGggZXhhY3RseSBtYXRjaGVzIHRoZSBkZWZhdWx0IGxlbmd0aC4gKi8KLSAgICAgICAgaWYgKFBTQV9NQUNfVFJVTkNBVEVEX0xFTkdUSChyZXF1ZXN0ZWRfYWxnKSA9PSAwICYmCi0gICAgICAgICAgICBQU0FfTUFDX1RSVU5DQVRFRF9MRU5HVEgocG9saWN5X2FsZykgPT0gZGVmYXVsdF9vdXRwdXRfbGVuZ3RoKSB7Ci0gICAgICAgICAgICByZXR1cm4gMTsKLSAgICAgICAgfQotCi0gICAgICAgIC8qIElmIHBvbGljeV9hbGcgaXMgYW4gYXQtbGVhc3QtdGhpcy1sZW5ndGggd2lsZGNhcmQgTUFDIGFsZ29yaXRobSwKLSAgICAgICAgICogY2hlY2sgZm9yIHRoZSByZXF1ZXN0ZWQgTUFDIGxlbmd0aCB0byBiZSBlcXVhbCB0byBvciBsb25nZXIgdGhhbiB0aGUKLSAgICAgICAgICogbWluaW11bSBhbGxvd2VkIGxlbmd0aC4gKi8KLSAgICAgICAgaWYgKChwb2xpY3lfYWxnICYgUFNBX0FMR19NQUNfQVRfTEVBU1RfVEhJU19MRU5HVEhfRkxBRykgIT0gMCkgewotICAgICAgICAgICAgcmV0dXJuIFBTQV9NQUNfVFJVTkNBVEVEX0xFTkdUSChwb2xpY3lfYWxnKSA8PQotICAgICAgICAgICAgICAgICAgIHJlcXVlc3RlZF9vdXRwdXRfbGVuZ3RoOwotICAgICAgICB9Ci0gICAgfQotICAgIC8qIElmIHBvbGljeV9hbGcgaXMgYSBnZW5lcmljIGtleSBhZ3JlZW1lbnQgb3BlcmF0aW9uLCB0aGVuIHVzaW5nIGl0IGZvcgotICAgICAqIGEga2V5IGRlcml2YXRpb24gd2l0aCB0aGF0IGtleSBhZ3JlZW1lbnQgc2hvdWxkIGFsc28gYmUgYWxsb3dlZC4gVGhpcwotICAgICAqIGJlaGF2aW91ciBpcyBleHBlY3RlZCB0byBiZSBkZWZpbmVkIGluIGEgZnV0dXJlIHNwZWNpZmljYXRpb24gdmVyc2lvbi4gKi8KLSAgICBpZiAoUFNBX0FMR19JU19SQVdfS0VZX0FHUkVFTUVOVChwb2xpY3lfYWxnKSAmJgotICAgICAgICBQU0FfQUxHX0lTX0tFWV9BR1JFRU1FTlQocmVxdWVzdGVkX2FsZykpIHsKLSAgICAgICAgcmV0dXJuIFBTQV9BTEdfS0VZX0FHUkVFTUVOVF9HRVRfQkFTRShyZXF1ZXN0ZWRfYWxnKSA9PQotICAgICAgICAgICAgICAgcG9saWN5X2FsZzsKLSAgICB9Ci0gICAgLyogSWYgaXQgaXNuJ3QgZXhwbGljaXRseSBwZXJtaXR0ZWQsIGl0J3MgZm9yYmlkZGVuLiAqLwotICAgIHJldHVybiAwOwotfQotCi0vKiogVGVzdCB3aGV0aGVyIGEgcG9saWN5IHBlcm1pdHMgYW4gYWxnb3JpdGhtLgotICoKLSAqIFRoZSBjYWxsZXIgbXVzdCB0ZXN0IHVzYWdlIGZsYWdzIHNlcGFyYXRlbHkuCi0gKgotICogXG5vdGUgVGhpcyBmdW5jdGlvbiByZXF1aXJlcyBwcm92aWRpbmcgdGhlIGtleSB0eXBlIGZvciB3aGljaCB0aGUgcG9saWN5IGlzCi0gKiAgICAgICBiZWluZyB2YWxpZGF0ZWQsIHNpbmNlIHNvbWUgYWxnb3JpdGhtIHBvbGljeSBkZWZpbml0aW9ucyAoZS5nLiBNQUMpCi0gKiAgICAgICBoYXZlIGRpZmZlcmVudCBwcm9wZXJ0aWVzIGRlcGVuZGluZyBvbiB3aGF0IGtpbmQgb2YgY2lwaGVyIGl0IGlzCi0gKiAgICAgICBjb21iaW5lZCB3aXRoLgotICoKLSAqIFxyZXR2YWwgUFNBX1NVQ0NFU1MgICAgICAgICAgICAgICAgICBXaGVuIFxwIGFsZyBpcyBhIHNwZWNpZmljIGFsZ29yaXRobQotICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFsbG93ZWQgYnkgdGhlIFxwIHBvbGljeS4KLSAqIFxyZXR2YWwgUFNBX0VSUk9SX0lOVkFMSURfQVJHVU1FTlQgICBXaGVuIFxwIGFsZyBpcyBub3QgYSBzcGVjaWZpYyBhbGdvcml0aG0KLSAqIFxyZXR2YWwgUFNBX0VSUk9SX05PVF9QRVJNSVRURUQgICAgICBXaGVuIFxwIGFsZyBpcyBhIHNwZWNpZmljIGFsZ29yaXRobSwgYnV0Ci0gKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlIFxwIHBvbGljeSBkb2VzIG5vdCBhbGxvdyBpdC4KLSAqLwotc3RhdGljIHBzYV9zdGF0dXNfdCBwc2Ffa2V5X3BvbGljeV9wZXJtaXRzKGNvbnN0IHBzYV9rZXlfcG9saWN5X3QgKnBvbGljeSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwc2Ffa2V5X3R5cGVfdCBrZXlfdHlwZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwc2FfYWxnb3JpdGhtX3QgYWxnKQotewotICAgIC8qICcwJyBpcyBub3QgYSB2YWxpZCBhbGdvcml0aG0gKi8KLSAgICBpZiAoYWxnID09IDApIHsKLSAgICAgICAgcmV0dXJuIFBTQV9FUlJPUl9JTlZBTElEX0FSR1VNRU5UOwotICAgIH0KLQotICAgIC8qIEEgcmVxdWVzdGVkIGFsZ29yaXRobSBjYW5ub3QgYmUgYSB3aWxkY2FyZC4gKi8KLSAgICBpZiAoUFNBX0FMR19JU19XSUxEQ0FSRChhbGcpKSB7Ci0gICAgICAgIHJldHVybiBQU0FfRVJST1JfSU5WQUxJRF9BUkdVTUVOVDsKLSAgICB9Ci0KLSAgICBpZiAocHNhX2tleV9hbGdvcml0aG1fcGVybWl0cyhrZXlfdHlwZSwgcG9saWN5LT5hbGcsIGFsZykgfHwKLSAgICAgICAgcHNhX2tleV9hbGdvcml0aG1fcGVybWl0cyhrZXlfdHlwZSwgcG9saWN5LT5hbGcyLCBhbGcpKSB7Ci0gICAgICAgIHJldHVybiBQU0FfU1VDQ0VTUzsKLSAgICB9IGVsc2UgewotICAgICAgICByZXR1cm4gUFNBX0VSUk9SX05PVF9QRVJNSVRURUQ7Ci0gICAgfQotfQotCi0vKiogUmVzdHJpY3QgYSBrZXkgcG9saWN5IGJhc2VkIG9uIGEgY29uc3RyYWludC4KLSAqCi0gKiBcbm90ZSBUaGlzIGZ1bmN0aW9uIHJlcXVpcmVzIHByb3ZpZGluZyB0aGUga2V5IHR5cGUgZm9yIHdoaWNoIHRoZSBwb2xpY3kgaXMKLSAqICAgICAgIGJlaW5nIHJlc3RyaWN0ZWQsIHNpbmNlIHNvbWUgYWxnb3JpdGhtIHBvbGljeSBkZWZpbml0aW9ucyAoZS5nLiBNQUMpCi0gKiAgICAgICBoYXZlIGRpZmZlcmVudCBwcm9wZXJ0aWVzIGRlcGVuZGluZyBvbiB3aGF0IGtpbmQgb2YgY2lwaGVyIGl0IGlzCi0gKiAgICAgICBjb21iaW5lZCB3aXRoLgotICoKLSAqIFxwYXJhbVtpbl0ga2V5X3R5cGUgICAgICBUaGUga2V5IHR5cGUgZm9yIHdoaWNoIHRvIHJlc3RyaWN0IHRoZSBwb2xpY3kKLSAqIFxwYXJhbVtpbixvdXRdIHBvbGljeSAgICBUaGUgcG9saWN5IHRvIHJlc3RyaWN0LgotICogXHBhcmFtW2luXSBjb25zdHJhaW50ICAgIFRoZSBwb2xpY3kgY29uc3RyYWludCB0byBhcHBseS4KLSAqCi0gKiBccmV0dmFsICNQU0FfU1VDQ0VTUwotICogICAgICAgICBcYyAqcG9saWN5IGNvbnRhaW5zIHRoZSBpbnRlcnNlY3Rpb24gb2YgdGhlIG9yaWdpbmFsIHZhbHVlIG9mCi0gKiAgICAgICAgIFxjICpwb2xpY3kgYW5kIFxjICpjb25zdHJhaW50LgotICogXHJldHZhbCAjUFNBX0VSUk9SX0lOVkFMSURfQVJHVU1FTlQKLSAqICAgICAgICAgXGMga2V5X3R5cGUsIFxjICpwb2xpY3kgYW5kIFxjICpjb25zdHJhaW50IGFyZSBpbmNvbXBhdGlibGUuCi0gKiAgICAgICAgIFxjICpwb2xpY3kgaXMgdW5jaGFuZ2VkLgotICovCi1zdGF0aWMgcHNhX3N0YXR1c190IHBzYV9yZXN0cmljdF9rZXlfcG9saWN5KAotICAgIHBzYV9rZXlfdHlwZV90IGtleV90eXBlLAotICAgIHBzYV9rZXlfcG9saWN5X3QgKnBvbGljeSwKLSAgICBjb25zdCBwc2Ffa2V5X3BvbGljeV90ICpjb25zdHJhaW50KQotewotICAgIHBzYV9hbGdvcml0aG1fdCBpbnRlcnNlY3Rpb25fYWxnID0KLSAgICAgICAgcHNhX2tleV9wb2xpY3lfYWxnb3JpdGhtX2ludGVyc2VjdGlvbihrZXlfdHlwZSwgcG9saWN5LT5hbGcsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3RyYWludC0+YWxnKTsKLSAgICBwc2FfYWxnb3JpdGhtX3QgaW50ZXJzZWN0aW9uX2FsZzIgPQotICAgICAgICBwc2Ffa2V5X3BvbGljeV9hbGdvcml0aG1faW50ZXJzZWN0aW9uKGtleV90eXBlLCBwb2xpY3ktPmFsZzIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3RyYWludC0+YWxnMik7Ci0gICAgaWYgKGludGVyc2VjdGlvbl9hbGcgPT0gMCAmJiBwb2xpY3ktPmFsZyAhPSAwICYmIGNvbnN0cmFpbnQtPmFsZyAhPSAwKSB7Ci0gICAgICAgIHJldHVybiBQU0FfRVJST1JfSU5WQUxJRF9BUkdVTUVOVDsKLSAgICB9Ci0gICAgaWYgKGludGVyc2VjdGlvbl9hbGcyID09IDAgJiYgcG9saWN5LT5hbGcyICE9IDAgJiYgY29uc3RyYWludC0+YWxnMiAhPSAwKSB7Ci0gICAgICAgIHJldHVybiBQU0FfRVJST1JfSU5WQUxJRF9BUkdVTUVOVDsKLSAgICB9Ci0gICAgcG9saWN5LT51c2FnZSAmPSBjb25zdHJhaW50LT51c2FnZTsKLSAgICBwb2xpY3ktPmFsZyA9IGludGVyc2VjdGlvbl9hbGc7Ci0gICAgcG9saWN5LT5hbGcyID0gaW50ZXJzZWN0aW9uX2FsZzI7Ci0gICAgcmV0dXJuIFBTQV9TVUNDRVNTOwotfQotCi0vKiogR2V0IHRoZSBkZXNjcmlwdGlvbiBvZiBhIGtleSBnaXZlbiBpdHMgaWRlbnRpZmllciBhbmQgcG9saWN5IGNvbnN0cmFpbnRzCi0gKiAgYW5kIGxvY2sgaXQuCi0gKgotICogVGhlIGtleSBtdXN0IGhhdmUgYWxsb3cgYWxsIHRoZSB1c2FnZSBmbGFncyBzZXQgaW4gXHAgdXNhZ2UuIElmIFxwIGFsZyBpcwotICogbm9uemVybywgdGhlIGtleSBtdXN0IGFsbG93IG9wZXJhdGlvbnMgd2l0aCB0aGlzIGFsZ29yaXRobS4gSWYgXHAgYWxnIGlzCi0gKiB6ZXJvLCB0aGUgYWxnb3JpdGhtIGlzIG5vdCBjaGVja2VkLgotICoKLSAqIEluIGNhc2Ugb2YgYSBwZXJzaXN0ZW50IGtleSwgdGhlIGZ1bmN0aW9uIGxvYWRzIHRoZSBkZXNjcmlwdGlvbiBvZiB0aGUga2V5Ci0gKiBpbnRvIGEga2V5IHNsb3QgaWYgbm90IGFscmVhZHkgZG9uZS4KLSAqCi0gKiBPbiBzdWNjZXNzLCB0aGUgcmV0dXJuZWQga2V5IHNsb3QgaGFzIGJlZW4gcmVnaXN0ZXJlZCBmb3IgcmVhZGluZy4KLSAqIEl0IGlzIHRoZSByZXNwb25zaWJpbGl0eSBvZiB0aGUgY2FsbGVyIHRvIHRoZW4gdW5yZWdpc3RlcgotICogb25jZSB0aGV5IGhhdmUgZmluaXNoZWQgcmVhZGluZyB0aGUgY29udGVudHMgb2YgdGhlIHNsb3QuCi0gKiBUaGUgY2FsbGVyIHVucmVnaXN0ZXJzIGJ5IGNhbGxpbmcgcHNhX3VucmVnaXN0ZXJfcmVhZCgpIG9yCi0gKiBwc2FfdW5yZWdpc3Rlcl9yZWFkX3VuZGVyX211dGV4KCkuIHBzYV91bnJlZ2lzdGVyX3JlYWQoKSBtdXN0IGJlIGNhbGxlZAotICogaWYgYW5kIG9ubHkgaWYgdGhlIGNhbGxlciBhbHJlYWR5IGhvbGRzIHRoZSBnbG9iYWwga2V5IHNsb3QgbXV0ZXgKLSAqICh3aGVuIG11dGV4ZXMgYXJlIGVuYWJsZWQpLiBwc2FfdW5yZWdpc3Rlcl9yZWFkX3VuZGVyX211dGV4KCkgZW5jYXBzdWxhdGVzCi0gKiB0aGUgdW5yZWdpc3RlciB3aXRoIG11dGV4IGxvY2sgYW5kIHVubG9jayBvcGVyYXRpb25zLgotICovCi1zdGF0aWMgcHNhX3N0YXR1c190IHBzYV9nZXRfYW5kX2xvY2tfa2V5X3Nsb3Rfd2l0aF9wb2xpY3koCi0gICAgbWJlZHRsc19zdmNfa2V5X2lkX3Qga2V5LAotICAgIHBzYV9rZXlfc2xvdF90ICoqcF9zbG90LAotICAgIHBzYV9rZXlfdXNhZ2VfdCB1c2FnZSwKLSAgICBwc2FfYWxnb3JpdGhtX3QgYWxnKQotewotICAgIHBzYV9zdGF0dXNfdCBzdGF0dXMgPSBQU0FfRVJST1JfQ09SUlVQVElPTl9ERVRFQ1RFRDsKLSAgICBwc2Ffa2V5X3Nsb3RfdCAqc2xvdCA9IE5VTEw7Ci0KLSAgICBzdGF0dXMgPSBwc2FfZ2V0X2FuZF9sb2NrX2tleV9zbG90KGtleSwgcF9zbG90KTsKLSAgICBpZiAoc3RhdHVzICE9IFBTQV9TVUNDRVNTKSB7Ci0gICAgICAgIHJldHVybiBzdGF0dXM7Ci0gICAgfQotICAgIHNsb3QgPSAqcF9zbG90OwotCi0gICAgLyogRW5mb3JjZSB0aGF0IHVzYWdlIHBvbGljeSBmb3IgdGhlIGtleSBzbG90IGNvbnRhaW5zIGFsbCB0aGUgZmxhZ3MKLSAgICAgKiByZXF1aXJlZCBieSB0aGUgdXNhZ2UgcGFyYW1ldGVyLiBUaGVyZSBpcyBvbmUgZXhjZXB0aW9uOiBwdWJsaWMKLSAgICAgKiBrZXlzIGNhbiBhbHdheXMgYmUgZXhwb3J0ZWQsIHNvIHdlIHRyZWF0IHB1YmxpYyBrZXkgb2JqZWN0cyBhcwotICAgICAqIGlmIHRoZXkgaGFkIHRoZSBleHBvcnQgZmxhZy4gKi8KLSAgICBpZiAoUFNBX0tFWV9UWVBFX0lTX1BVQkxJQ19LRVkoc2xvdC0+YXR0ci50eXBlKSkgewotICAgICAgICB1c2FnZSAmPSB+UFNBX0tFWV9VU0FHRV9FWFBPUlQ7Ci0gICAgfQotCi0gICAgaWYgKChzbG90LT5hdHRyLnBvbGljeS51c2FnZSAmIHVzYWdlKSAhPSB1c2FnZSkgewotICAgICAgICBzdGF0dXMgPSBQU0FfRVJST1JfTk9UX1BFUk1JVFRFRDsKLSAgICAgICAgZ290byBlcnJvcjsKLSAgICB9Ci0KLSAgICAvKiBFbmZvcmNlIHRoYXQgdGhlIHVzYWdlIHBvbGljeSBwZXJtaXRzIHRoZSByZXF1ZXN0ZWQgYWxnb3JpdGhtLiAqLwotICAgIGlmIChhbGcgIT0gMCkgewotICAgICAgICBzdGF0dXMgPSBwc2Ffa2V5X3BvbGljeV9wZXJtaXRzKCZzbG90LT5hdHRyLnBvbGljeSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzbG90LT5hdHRyLnR5cGUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWxnKTsKLSAgICAgICAgaWYgKHN0YXR1cyAhPSBQU0FfU1VDQ0VTUykgewotICAgICAgICAgICAgZ290byBlcnJvcjsKLSAgICAgICAgfQotICAgIH0KLQotICAgIHJldHVybiBQU0FfU1VDQ0VTUzsKLQotZXJyb3I6Ci0gICAgKnBfc2xvdCA9IE5VTEw7Ci0gICAgcHNhX3VucmVnaXN0ZXJfcmVhZF91bmRlcl9tdXRleChzbG90KTsKLQotICAgIHJldHVybiBzdGF0dXM7Ci19Ci0KLS8qKiBHZXQgYSBrZXkgc2xvdCBjb250YWluaW5nIGEgdHJhbnNwYXJlbnQga2V5IGFuZCBsb2NrIGl0LgotICoKLSAqIEEgdHJhbnNwYXJlbnQga2V5IGlzIGEga2V5IGZvciB3aGljaCB0aGUga2V5IG1hdGVyaWFsIGlzIGRpcmVjdGx5Ci0gKiBhdmFpbGFibGUsIGFzIG9wcG9zZWQgdG8gYSBrZXkgaW4gYSBzZWN1cmUgZWxlbWVudCBhbmQvb3IgdG8gYmUgdXNlZAotICogYnkgYSBzZWN1cmUgZWxlbWVudC4KLSAqCi0gKiBUaGlzIGlzIGEgdGVtcG9yYXJ5IGZ1bmN0aW9uIHRoYXQgbWF5IGJlIHVzZWQgaW5zdGVhZCBvZgotICogcHNhX2dldF9hbmRfbG9ja19rZXlfc2xvdF93aXRoX3BvbGljeSgpIHdoZW4gdGhlcmUgaXMgbm8gb3BhcXVlIGtleSBzdXBwb3J0Ci0gKiBmb3IgYSBjcnlwdG9ncmFwaGljIG9wZXJhdGlvbi4KLSAqCi0gKiBPbiBzdWNjZXNzLCB0aGUgcmV0dXJuZWQga2V5IHNsb3QgaGFzIGJlZW4gcmVnaXN0ZXJlZCBmb3IgcmVhZGluZy4KLSAqIEl0IGlzIHRoZSByZXNwb25zaWJpbGl0eSBvZiB0aGUgY2FsbGVyIHRvIHRoZW4gdW5yZWdpc3RlcgotICogb25jZSB0aGV5IGhhdmUgZmluaXNoZWQgcmVhZGluZyB0aGUgY29udGVudHMgb2YgdGhlIHNsb3QuCi0gKiBUaGUgY2FsbGVyIHVucmVnaXN0ZXJzIGJ5IGNhbGxpbmcgcHNhX3VucmVnaXN0ZXJfcmVhZCgpIG9yCi0gKiBwc2FfdW5yZWdpc3Rlcl9yZWFkX3VuZGVyX211dGV4KCkuIHBzYV91bnJlZ2lzdGVyX3JlYWQoKSBtdXN0IGJlIGNhbGxlZAotICogaWYgYW5kIG9ubHkgaWYgdGhlIGNhbGxlciBhbHJlYWR5IGhvbGRzIHRoZSBnbG9iYWwga2V5IHNsb3QgbXV0ZXgKLSAqICh3aGVuIG11dGV4ZXMgYXJlIGVuYWJsZWQpLiBwc2FfdW5yZWdpc3Rlcl9yZWFkX3VuZGVyX211dGV4KCkgZW5jYXBzdWxhdGVzCi0gKiBwc2FfdW5yZWdpc3Rlcl9yZWFkKCkgd2l0aCBtdXRleCBsb2NrIGFuZCB1bmxvY2sgb3BlcmF0aW9ucy4KLSAqLwotc3RhdGljIHBzYV9zdGF0dXNfdCBwc2FfZ2V0X2FuZF9sb2NrX3RyYW5zcGFyZW50X2tleV9zbG90X3dpdGhfcG9saWN5KAotICAgIG1iZWR0bHNfc3ZjX2tleV9pZF90IGtleSwKLSAgICBwc2Ffa2V5X3Nsb3RfdCAqKnBfc2xvdCwKLSAgICBwc2Ffa2V5X3VzYWdlX3QgdXNhZ2UsCi0gICAgcHNhX2FsZ29yaXRobV90IGFsZykKLXsKLSAgICBwc2Ffc3RhdHVzX3Qgc3RhdHVzID0gcHNhX2dldF9hbmRfbG9ja19rZXlfc2xvdF93aXRoX3BvbGljeShrZXksIHBfc2xvdCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1c2FnZSwgYWxnKTsKLSAgICBpZiAoc3RhdHVzICE9IFBTQV9TVUNDRVNTKSB7Ci0gICAgICAgIHJldHVybiBzdGF0dXM7Ci0gICAgfQotCi0gICAgaWYgKHBzYV9rZXlfbGlmZXRpbWVfaXNfZXh0ZXJuYWwoKCpwX3Nsb3QpLT5hdHRyLmxpZmV0aW1lKSkgewotICAgICAgICBwc2FfdW5yZWdpc3Rlcl9yZWFkX3VuZGVyX211dGV4KCpwX3Nsb3QpOwotICAgICAgICAqcF9zbG90ID0gTlVMTDsKLSAgICAgICAgcmV0dXJuIFBTQV9FUlJPUl9OT1RfU1VQUE9SVEVEOwotICAgIH0KLQotICAgIHJldHVybiBQU0FfU1VDQ0VTUzsKLX0KLQotcHNhX3N0YXR1c190IHBzYV9yZW1vdmVfa2V5X2RhdGFfZnJvbV9tZW1vcnkocHNhX2tleV9zbG90X3QgKnNsb3QpCi17Ci0gICAgaWYgKHNsb3QtPmtleS5kYXRhICE9IE5VTEwpIHsKLSAgICAgICAgbWJlZHRsc196ZXJvaXplX2FuZF9mcmVlKHNsb3QtPmtleS5kYXRhLCBzbG90LT5rZXkuYnl0ZXMpOwotICAgIH0KLQotICAgIHNsb3QtPmtleS5kYXRhID0gTlVMTDsKLSAgICBzbG90LT5rZXkuYnl0ZXMgPSAwOwotCi0gICAgcmV0dXJuIFBTQV9TVUNDRVNTOwotfQotCi0vKiogQ29tcGxldGVseSB3aXBlIGEgc2xvdCBpbiBtZW1vcnksIGluY2x1ZGluZyBpdHMgcG9saWN5LgotICogUGVyc2lzdGVudCBzdG9yYWdlIGlzIG5vdCBhZmZlY3RlZC4gKi8KLXBzYV9zdGF0dXNfdCBwc2Ffd2lwZV9rZXlfc2xvdChwc2Ffa2V5X3Nsb3RfdCAqc2xvdCkKLXsKLSAgICBwc2Ffc3RhdHVzX3Qgc3RhdHVzID0gcHNhX3JlbW92ZV9rZXlfZGF0YV9mcm9tX21lbW9yeShzbG90KTsKLQotICAgIC8qCi0gICAgICogQXMgdGhlIHJldHVybiBlcnJvciBjb2RlIG1heSBub3QgYmUgaGFuZGxlZCBpbiBjYXNlIG9mIG11bHRpcGxlIGVycm9ycywKLSAgICAgKiBkbyBvdXIgYmVzdCB0byByZXBvcnQgYW4gdW5leHBlY3RlZCBhbW91bnQgb2YgcmVnaXN0ZXJlZCByZWFkZXJzIG9yCi0gICAgICogYW4gdW5leHBlY3RlZCBzdGF0ZS4KLSAgICAgKiBBc3NlcnQgd2l0aCBNQkVEVExTX1RFU1RfSE9PS19URVNUX0FTU0VSVCB0aGF0IHRoZSBzbG90IGlzIHZhbGlkIGZvcgotICAgICAqIHdpcGluZy4KLSAgICAgKiBpZiB0aGUgTUJFRFRMU19URVNUX0hPT0tTIGNvbmZpZ3VyYXRpb24gb3B0aW9uIGlzIGVuYWJsZWQgYW5kIHRoZQotICAgICAqIGZ1bmN0aW9uIGlzIGNhbGxlZCBhcyBwYXJ0IG9mIHRoZSBleGVjdXRpb24gb2YgYSB0ZXN0IHN1aXRlLCB0aGUKLSAgICAgKiBleGVjdXRpb24gb2YgdGhlIHRlc3Qgc3VpdGUgaXMgc3RvcHBlZCBpbiBlcnJvciBpZiB0aGUgYXNzZXJ0aW9uIGZhaWxzLgotICAgICAqLwotICAgIHN3aXRjaCAoc2xvdC0+c3RhdGUpIHsKLSAgICAgICAgY2FzZSBQU0FfU0xPVF9GVUxMOgotICAgICAgICAvKiBJbiB0aGlzIHN0YXRlIHBzYV93aXBlX2tleV9zbG90KCkgbXVzdCBvbmx5IGJlIGNhbGxlZCBpZiB0aGUKLSAgICAgICAgICogY2FsbGVyIGlzIHRoZSBsYXN0IHJlYWRlci4gKi8KLSAgICAgICAgY2FzZSBQU0FfU0xPVF9QRU5ESU5HX0RFTEVUSU9OOgotICAgICAgICAgICAgLyogSW4gdGhpcyBzdGF0ZSBwc2Ffd2lwZV9rZXlfc2xvdCgpIG11c3Qgb25seSBiZSBjYWxsZWQgaWYgdGhlCi0gICAgICAgICAgICAgKiBjYWxsZXIgaXMgdGhlIGxhc3QgcmVhZGVyLiAqLwotICAgICAgICAgICAgaWYgKHNsb3QtPnJlZ2lzdGVyZWRfcmVhZGVycyAhPSAxKSB7Ci0gICAgICAgICAgICAgICAgTUJFRFRMU19URVNUX0hPT0tfVEVTVF9BU1NFUlQoc2xvdC0+cmVnaXN0ZXJlZF9yZWFkZXJzID09IDEpOwotICAgICAgICAgICAgICAgIHN0YXR1cyA9IFBTQV9FUlJPUl9DT1JSVVBUSU9OX0RFVEVDVEVEOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgUFNBX1NMT1RfRklMTElORzoKLSAgICAgICAgICAgIC8qIEluIHRoaXMgc3RhdGUgcmVnaXN0ZXJlZF9yZWFkZXJzIG11c3QgYmUgMC4gKi8KLSAgICAgICAgICAgIGlmIChzbG90LT5yZWdpc3RlcmVkX3JlYWRlcnMgIT0gMCkgewotICAgICAgICAgICAgICAgIE1CRURUTFNfVEVTVF9IT09LX1RFU1RfQVNTRVJUKHNsb3QtPnJlZ2lzdGVyZWRfcmVhZGVycyA9PSAwKTsKLSAgICAgICAgICAgICAgICBzdGF0dXMgPSBQU0FfRVJST1JfQ09SUlVQVElPTl9ERVRFQ1RFRDsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIFBTQV9TTE9UX0VNUFRZOgotICAgICAgICAgICAgLyogVGhlIHNsb3QgaXMgYWxyZWFkeSBlbXB0eSwgaXQgY2Fubm90IGJlIHdpcGVkLiAqLwotICAgICAgICAgICAgTUJFRFRMU19URVNUX0hPT0tfVEVTVF9BU1NFUlQoc2xvdC0+c3RhdGUgIT0gUFNBX1NMT1RfRU1QVFkpOwotICAgICAgICAgICAgc3RhdHVzID0gUFNBX0VSUk9SX0NPUlJVUFRJT05fREVURUNURUQ7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgZGVmYXVsdDoKLSAgICAgICAgICAgIC8qIFRoZSBzbG90J3Mgc3RhdGUgaXMgaW52YWxpZC4gKi8KLSAgICAgICAgICAgIHN0YXR1cyA9IFBTQV9FUlJPUl9DT1JSVVBUSU9OX0RFVEVDVEVEOwotICAgIH0KLQotICAgIC8qIE11bHRpcGFydCBvcGVyYXRpb25zIG1heSBzdGlsbCBiZSB1c2luZyB0aGUga2V5LiBUaGlzIGlzIHNhZmUKLSAgICAgKiBiZWNhdXNlIGFsbCBtdWx0aXBhcnQgb3BlcmF0aW9uIG9iamVjdHMgYXJlIGluZGVwZW5kZW50IGZyb20KLSAgICAgKiB0aGUga2V5IHNsb3Q6IGlmIHRoZXkgbmVlZCB0byBhY2Nlc3MgdGhlIGtleSBhZnRlciB0aGUgc2V0dXAKLSAgICAgKiBwaGFzZSwgdGhleSBoYXZlIGEgY29weSBvZiB0aGUga2V5LiBOb3RlIHRoYXQgdGhpcyBtZWFucyB0aGF0Ci0gICAgICoga2V5IG1hdGVyaWFsIGNhbiBsaW5nZXIgdW50aWwgYWxsIG9wZXJhdGlvbnMgYXJlIGNvbXBsZXRlZC4gKi8KLSAgICAvKiBBdCB0aGlzIHBvaW50LCBrZXkgbWF0ZXJpYWwgYW5kIG90aGVyIHR5cGUtc3BlY2lmaWMgY29udGVudCBoYXMKLSAgICAgKiBiZWVuIHdpcGVkLiBDbGVhciByZW1haW5pbmcgbWV0YWRhdGEuIFdlIGNhbiBjYWxsIG1lbXNldCBhbmQgbm90Ci0gICAgICogemVyb2l6ZSBiZWNhdXNlIHRoZSBtZXRhZGF0YSBpcyBub3QgcGFydGljdWxhcmx5IHNlbnNpdGl2ZS4KLSAgICAgKiBUaGlzIG1lbXNldCBhbHNvIHNldHMgdGhlIHNsb3QncyBzdGF0ZSB0byBQU0FfU0xPVF9FTVBUWS4gKi8KLSAgICBtZW1zZXQoc2xvdCwgMCwgc2l6ZW9mKCpzbG90KSk7Ci0gICAgcmV0dXJuIHN0YXR1czsKLX0KLQotcHNhX3N0YXR1c190IHBzYV9kZXN0cm95X2tleShtYmVkdGxzX3N2Y19rZXlfaWRfdCBrZXkpCi17Ci0gICAgcHNhX2tleV9zbG90X3QgKnNsb3Q7Ci0gICAgcHNhX3N0YXR1c190IHN0YXR1czsgLyogc3RhdHVzIG9mIHRoZSBsYXN0IG9wZXJhdGlvbiAqLwotICAgIHBzYV9zdGF0dXNfdCBvdmVyYWxsX3N0YXR1cyA9IFBTQV9TVUNDRVNTOwotI2lmIGRlZmluZWQoTUJFRFRMU19QU0FfQ1JZUFRPX1NFX0MpCi0gICAgcHNhX3NlX2Rydl90YWJsZV9lbnRyeV90ICpkcml2ZXI7Ci0jZW5kaWYgLyogTUJFRFRMU19QU0FfQ1JZUFRPX1NFX0MgKi8KLQotICAgIGlmIChtYmVkdGxzX3N2Y19rZXlfaWRfaXNfbnVsbChrZXkpKSB7Ci0gICAgICAgIHJldHVybiBQU0FfU1VDQ0VTUzsKLSAgICB9Ci0KLSAgICAvKgotICAgICAqIEdldCB0aGUgZGVzY3JpcHRpb24gb2YgdGhlIGtleSBpbiBhIGtleSBzbG90LCBhbmQgcmVnaXN0ZXIgdG8gcmVhZCBpdC4KLSAgICAgKiBJbiB0aGUgY2FzZSBvZiBhIHBlcnNpc3RlbnQga2V5LCB0aGlzIHdpbGwgbG9hZCB0aGUga2V5IGRlc2NyaXB0aW9uCi0gICAgICogZnJvbSBwZXJzaXN0ZW50IG1lbW9yeSBpZiBub3QgZG9uZSB5ZXQuCi0gICAgICogV2UgY2Fubm90IGF2b2lkIHRoaXMgbG9hZGluZyBhcyB3aXRob3V0IGl0IHdlIGRvbid0IGtub3cgaWYKLSAgICAgKiB0aGUga2V5IGlzIG9wZXJhdGVkIGJ5IGFuIFNFIG9yIG5vdCBhbmQgdGhpcyBpbmZvcm1hdGlvbiBpcyBuZWVkZWQgYnkKLSAgICAgKiB0aGUgY3VycmVudCBpbXBsZW1lbnRhdGlvbi4gKi8KLSAgICBzdGF0dXMgPSBwc2FfZ2V0X2FuZF9sb2NrX2tleV9zbG90KGtleSwgJnNsb3QpOwotICAgIGlmIChzdGF0dXMgIT0gUFNBX1NVQ0NFU1MpIHsKLSAgICAgICAgcmV0dXJuIHN0YXR1czsKLSAgICB9Ci0KLSNpZiBkZWZpbmVkKE1CRURUTFNfVEhSRUFESU5HX0MpCi0gICAgLyogV2UgY2Fubm90IHVubG9jayBiZXR3ZWVuIHNldHRpbmcgdGhlIHN0YXRlIHRvIFBFTkRJTkdfREVMRVRJT04KLSAgICAgKiBhbmQgZGVzdHJveWluZyB0aGUga2V5IGluIHN0b3JhZ2UsIGFzIG90aGVyd2lzZSBhbm90aGVyIHRocmVhZAotICAgICAqIGNvdWxkIGxvYWQgdGhlIGtleSBpbnRvIGEgbmV3IHNsb3QgYW5kIHRoZSBrZXkgd2lsbCBub3QgYmUKLSAgICAgKiBmdWxseSBkZXN0cm95ZWQuICovCi0gICAgUFNBX1RIUkVBRElOR19DSEtfR09UT19FWElUKG1iZWR0bHNfbXV0ZXhfbG9jaygKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZtYmVkdGxzX3RocmVhZGluZ19rZXlfc2xvdF9tdXRleCkpOwotCi0gICAgaWYgKHNsb3QtPnN0YXRlID09IFBTQV9TTE9UX1BFTkRJTkdfREVMRVRJT04pIHsKLSAgICAgICAgLyogQW5vdGhlciB0aHJlYWQgaGFzIGRlc3Ryb3llZCB0aGUga2V5IGJldHdlZW4gdXMgbG9ja2luZyB0aGUgc2xvdAotICAgICAgICAgKiBhbmQgdXMgZ2FpbmluZyB0aGUgbXV0ZXguIFVucmVnaXN0ZXIgZnJvbSB0aGUgc2xvdCwKLSAgICAgICAgICogYW5kIHJlcG9ydCB0aGF0IHRoZSBrZXkgZG9lcyBub3QgZXhpc3QuICovCi0gICAgICAgIHN0YXR1cyA9IHBzYV91bnJlZ2lzdGVyX3JlYWQoc2xvdCk7Ci0KLSAgICAgICAgUFNBX1RIUkVBRElOR19DSEtfUkVUKG1iZWR0bHNfbXV0ZXhfdW5sb2NrKAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZtYmVkdGxzX3RocmVhZGluZ19rZXlfc2xvdF9tdXRleCkpOwotICAgICAgICByZXR1cm4gKHN0YXR1cyA9PSBQU0FfU1VDQ0VTUykgPyBQU0FfRVJST1JfSU5WQUxJRF9IQU5ETEUgOiBzdGF0dXM7Ci0gICAgfQotI2VuZGlmCi0gICAgLyogU2V0IHRoZSBrZXkgc2xvdCBjb250YWluaW5nIHRoZSBrZXkgZGVzY3JpcHRpb24ncyBzdGF0ZSB0bwotICAgICAqIFBFTkRJTkdfREVMRVRJT04uIFRoaXMgc3RvcHMgbmV3IG9wZXJhdGlvbnMgZnJvbSByZWdpc3RlcmluZwotICAgICAqIHRvIHJlYWQgdGhlIHNsb3QuIEN1cnJlbnQgcmVhZGVycyBjYW4gc2FmZWx5IGNvbnRpbnVlIHRvIGFjY2VzcwotICAgICAqIHRoZSBrZXkgd2l0aGluIHRoZSBzbG90OyB0aGUgbGFzdCByZWdpc3RlcmVkIHJlYWRlciB3aWxsCi0gICAgICogYXV0b21hdGljYWxseSB3aXBlIHRoZSBzbG90IHdoZW4gdGhleSBjYWxsIHBzYV91bnJlZ2lzdGVyX3JlYWQoKS4KLSAgICAgKiBJZiB0aGUga2V5IGlzIHBlcnNpc3RlbnQsIHdlIGNhbiBub3cgZGVsZXRlIHRoZSBjb3B5IG9mIHRoZSBrZXkKLSAgICAgKiBmcm9tIG1lbW9yeS4gSWYgdGhlIGtleSBpcyBvcGFxdWUsIHdlIHJlcXVpcmUgdGhlIGRyaXZlciB0bwotICAgICAqIGRlYWwgd2l0aCB0aGUgZGVsZXRpb24uICovCi0gICAgb3ZlcmFsbF9zdGF0dXMgPSBwc2Ffa2V5X3Nsb3Rfc3RhdGVfdHJhbnNpdGlvbihzbG90LCBQU0FfU0xPVF9GVUxMLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUFNBX1NMT1RfUEVORElOR19ERUxFVElPTik7Ci0KLSAgICBpZiAob3ZlcmFsbF9zdGF0dXMgIT0gUFNBX1NVQ0NFU1MpIHsKLSAgICAgICAgZ290byBleGl0OwotICAgIH0KLQotICAgIGlmIChQU0FfS0VZX0xJRkVUSU1FX0lTX1JFQURfT05MWShzbG90LT5hdHRyLmxpZmV0aW1lKSkgewotICAgICAgICAvKiBSZWZ1c2UgdGhlIGRlc3RydWN0aW9uIG9mIGEgcmVhZC1vbmx5IGtleSAod2hpY2ggbWF5IG9yIG1heSBub3Qgd29yawotICAgICAgICAgKiBpZiB3ZSBhdHRlbXB0IGl0LCBkZXBlbmRpbmcgb24gd2hldGhlciB0aGUga2V5IGlzIG1lcmVseSByZWFkLW9ubHkKLSAgICAgICAgICogYnkgcG9saWN5IG9yIGFjdHVhbGx5IHBoeXNpY2FsbHkgcmVhZC1vbmx5KS4KLSAgICAgICAgICogSnVzdCBkbyB0aGUgYmVzdCB3ZSBjYW4sIHdoaWNoIGlzIHRvIHdpcGUgdGhlIGNvcHkgaW4gbWVtb3J5Ci0gICAgICAgICAqIChkb25lIGluIHRoaXMgZnVuY3Rpb24ncyBjbGVhbnVwIGNvZGUpLiAqLwotICAgICAgICBvdmVyYWxsX3N0YXR1cyA9IFBTQV9FUlJPUl9OT1RfUEVSTUlUVEVEOwotICAgICAgICBnb3RvIGV4aXQ7Ci0gICAgfQotCi0jaWYgZGVmaW5lZChNQkVEVExTX1BTQV9DUllQVE9fU0VfQykKLSAgICBkcml2ZXIgPSBwc2FfZ2V0X3NlX2RyaXZlcl9lbnRyeShzbG90LT5hdHRyLmxpZmV0aW1lKTsKLSAgICBpZiAoZHJpdmVyICE9IE5VTEwpIHsKLSAgICAgICAgLyogRm9yIGEga2V5IGluIGEgc2VjdXJlIGVsZW1lbnQsIHdlIG5lZWQgdG8gZG8gdGhyZWUgdGhpbmdzOgotICAgICAgICAgKiByZW1vdmUgdGhlIGtleSBmaWxlIGluIGludGVybmFsIHN0b3JhZ2UsIGRlc3Ryb3kgdGhlCi0gICAgICAgICAqIGtleSBpbnNpZGUgdGhlIHNlY3VyZSBlbGVtZW50LCBhbmQgdXBkYXRlIHRoZSBkcml2ZXIncwotICAgICAgICAgKiBwZXJzaXN0ZW50IGRhdGEuIFN0YXJ0IGEgdHJhbnNhY3Rpb24gdGhhdCB3aWxsIGVuY29tcGFzcyB0aGVzZQotICAgICAgICAgKiB0aHJlZSBhY3Rpb25zLiAqLwotICAgICAgICBwc2FfY3J5cHRvX3ByZXBhcmVfdHJhbnNhY3Rpb24oUFNBX0NSWVBUT19UUkFOU0FDVElPTl9ERVNUUk9ZX0tFWSk7Ci0gICAgICAgIHBzYV9jcnlwdG9fdHJhbnNhY3Rpb24ua2V5LmxpZmV0aW1lID0gc2xvdC0+YXR0ci5saWZldGltZTsKLSAgICAgICAgcHNhX2NyeXB0b190cmFuc2FjdGlvbi5rZXkuc2xvdCA9IHBzYV9rZXlfc2xvdF9nZXRfc2xvdF9udW1iZXIoc2xvdCk7Ci0gICAgICAgIHBzYV9jcnlwdG9fdHJhbnNhY3Rpb24ua2V5LmlkID0gc2xvdC0+YXR0ci5pZDsKLSAgICAgICAgc3RhdHVzID0gcHNhX2NyeXB0b19zYXZlX3RyYW5zYWN0aW9uKCk7Ci0gICAgICAgIGlmIChzdGF0dXMgIT0gUFNBX1NVQ0NFU1MpIHsKLSAgICAgICAgICAgICh2b2lkKSBwc2FfY3J5cHRvX3N0b3BfdHJhbnNhY3Rpb24oKTsKLSAgICAgICAgICAgIC8qIFdlIHNob3VsZCBzdGlsbCB0cnkgdG8gZGVzdHJveSB0aGUga2V5IGluIHRoZSBzZWN1cmUKLSAgICAgICAgICAgICAqIGVsZW1lbnQgYW5kIHRoZSBrZXkgbWV0YWRhdGEgaW4gc3RvcmFnZS4gVGhpcyBpcyBlc3BlY2lhbGx5Ci0gICAgICAgICAgICAgKiBpbXBvcnRhbnQgaWYgdGhlIGVycm9yIGlzIHRoYXQgdGhlIHN0b3JhZ2UgaXMgZnVsbC4KLSAgICAgICAgICAgICAqIEJ1dCBob3cgdG8gZG8gaXQgZXhhY3RseSB3aXRob3V0IHJpc2tpbmcgYW4gaW5jb25zaXN0ZW50Ci0gICAgICAgICAgICAgKiBzdGF0ZSBhZnRlciBhIHJlc2V0PwotICAgICAgICAgICAgICogaHR0cHM6Ly9naXRodWIuY29tL0FSTW1iZWQvbWJlZC1jcnlwdG8vaXNzdWVzLzIxNQotICAgICAgICAgICAgICovCi0gICAgICAgICAgICBvdmVyYWxsX3N0YXR1cyA9IHN0YXR1czsKLSAgICAgICAgICAgIGdvdG8gZXhpdDsKLSAgICAgICAgfQotCi0gICAgICAgIHN0YXR1cyA9IHBzYV9kZXN0cm95X3NlX2tleShkcml2ZXIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwc2Ffa2V5X3Nsb3RfZ2V0X3Nsb3RfbnVtYmVyKHNsb3QpKTsKLSAgICAgICAgaWYgKG92ZXJhbGxfc3RhdHVzID09IFBTQV9TVUNDRVNTKSB7Ci0gICAgICAgICAgICBvdmVyYWxsX3N0YXR1cyA9IHN0YXR1czsKLSAgICAgICAgfQotICAgIH0KLSNlbmRpZiAvKiBNQkVEVExTX1BTQV9DUllQVE9fU0VfQyAqLwotCi0jaWYgZGVmaW5lZChNQkVEVExTX1BTQV9DUllQVE9fU1RPUkFHRV9DKQotICAgIGlmICghUFNBX0tFWV9MSUZFVElNRV9JU19WT0xBVElMRShzbG90LT5hdHRyLmxpZmV0aW1lKSkgewotICAgICAgICAvKiBEZXN0cm95IHRoZSBjb3B5IG9mIHRoZSBwZXJzaXN0ZW50IGtleSBmcm9tIHN0b3JhZ2UuCi0gICAgICAgICAqIFRoZSBzbG90IHdpbGwgc3RpbGwgaG9sZCBhIGNvcHkgb2YgdGhlIGtleSB1bnRpbCB0aGUgbGFzdCByZWFkZXIKLSAgICAgICAgICogdW5yZWdpc3RlcnMuICovCi0gICAgICAgIHN0YXR1cyA9IHBzYV9kZXN0cm95X3BlcnNpc3RlbnRfa2V5KHNsb3QtPmF0dHIuaWQpOwotICAgICAgICBpZiAob3ZlcmFsbF9zdGF0dXMgPT0gUFNBX1NVQ0NFU1MpIHsKLSAgICAgICAgICAgIG92ZXJhbGxfc3RhdHVzID0gc3RhdHVzOwotICAgICAgICB9Ci0gICAgfQotI2VuZGlmIC8qIGRlZmluZWQoTUJFRFRMU19QU0FfQ1JZUFRPX1NUT1JBR0VfQykgKi8KLQotI2lmIGRlZmluZWQoTUJFRFRMU19QU0FfQ1JZUFRPX1NFX0MpCi0gICAgaWYgKGRyaXZlciAhPSBOVUxMKSB7Ci0gICAgICAgIHN0YXR1cyA9IHBzYV9zYXZlX3NlX3BlcnNpc3RlbnRfZGF0YShkcml2ZXIpOwotICAgICAgICBpZiAob3ZlcmFsbF9zdGF0dXMgPT0gUFNBX1NVQ0NFU1MpIHsKLSAgICAgICAgICAgIG92ZXJhbGxfc3RhdHVzID0gc3RhdHVzOwotICAgICAgICB9Ci0gICAgICAgIHN0YXR1cyA9IHBzYV9jcnlwdG9fc3RvcF90cmFuc2FjdGlvbigpOwotICAgICAgICBpZiAob3ZlcmFsbF9zdGF0dXMgPT0gUFNBX1NVQ0NFU1MpIHsKLSAgICAgICAgICAgIG92ZXJhbGxfc3RhdHVzID0gc3RhdHVzOwotICAgICAgICB9Ci0gICAgfQotI2VuZGlmIC8qIE1CRURUTFNfUFNBX0NSWVBUT19TRV9DICovCi0KLWV4aXQ6Ci0gICAgLyogVW5yZWdpc3RlciBmcm9tIHJlYWRpbmcgdGhlIHNsb3QuIElmIHdlIGFyZSB0aGUgbGFzdCBhY3RpdmUgcmVhZGVyCi0gICAgICogdGhlbiB0aGlzIHdpbGwgd2lwZSB0aGUgc2xvdC4gKi8KLSAgICBzdGF0dXMgPSBwc2FfdW5yZWdpc3Rlcl9yZWFkKHNsb3QpOwotICAgIC8qIFByaW9yaXRpemUgQ09SUlVQVElPTl9ERVRFQ1RFRCBmcm9tIHVucmVnaXN0ZXJpbmcgb3ZlcgotICAgICAqIGEgc3RvcmFnZSBlcnJvci4gKi8KLSAgICBpZiAoc3RhdHVzICE9IFBTQV9TVUNDRVNTKSB7Ci0gICAgICAgIG92ZXJhbGxfc3RhdHVzID0gc3RhdHVzOwotICAgIH0KLQotI2lmIGRlZmluZWQoTUJFRFRMU19USFJFQURJTkdfQykKLSAgICAvKiBEb24ndCBvdmVyd3JpdGUgZXhpc3RpbmcgZXJyb3JzIGlmIHRoZSB1bmxvY2sgZmFpbHMuICovCi0gICAgc3RhdHVzID0gb3ZlcmFsbF9zdGF0dXM7Ci0gICAgUFNBX1RIUkVBRElOR19DSEtfUkVUKG1iZWR0bHNfbXV0ZXhfdW5sb2NrKAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJm1iZWR0bHNfdGhyZWFkaW5nX2tleV9zbG90X211dGV4KSk7Ci0jZW5kaWYKLQotICAgIHJldHVybiBvdmVyYWxsX3N0YXR1czsKLX0KLQotLyoqIFJldHJpZXZlIGFsbCB0aGUgcHVibGljbHktYWNjZXNzaWJsZSBhdHRyaWJ1dGVzIG9mIGEga2V5LgotICovCi1wc2Ffc3RhdHVzX3QgcHNhX2dldF9rZXlfYXR0cmlidXRlcyhtYmVkdGxzX3N2Y19rZXlfaWRfdCBrZXksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwc2Ffa2V5X2F0dHJpYnV0ZXNfdCAqYXR0cmlidXRlcykKLXsKLSAgICBwc2Ffc3RhdHVzX3Qgc3RhdHVzID0gUFNBX0VSUk9SX0NPUlJVUFRJT05fREVURUNURUQ7Ci0gICAgcHNhX2tleV9zbG90X3QgKnNsb3Q7Ci0KLSAgICBwc2FfcmVzZXRfa2V5X2F0dHJpYnV0ZXMoYXR0cmlidXRlcyk7Ci0KLSAgICBzdGF0dXMgPSBwc2FfZ2V0X2FuZF9sb2NrX2tleV9zbG90X3dpdGhfcG9saWN5KGtleSwgJnNsb3QsIDAsIDApOwotICAgIGlmIChzdGF0dXMgIT0gUFNBX1NVQ0NFU1MpIHsKLSAgICAgICAgcmV0dXJuIHN0YXR1czsKLSAgICB9Ci0KLSAgICAqYXR0cmlidXRlcyA9IHNsb3QtPmF0dHI7Ci0KLSNpZiBkZWZpbmVkKE1CRURUTFNfUFNBX0NSWVBUT19TRV9DKQotICAgIGlmIChwc2FfZ2V0X3NlX2RyaXZlcl9lbnRyeShzbG90LT5hdHRyLmxpZmV0aW1lKSAhPSBOVUxMKSB7Ci0gICAgICAgIHBzYV9zZXRfa2V5X3Nsb3RfbnVtYmVyKGF0dHJpYnV0ZXMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBzYV9rZXlfc2xvdF9nZXRfc2xvdF9udW1iZXIoc2xvdCkpOwotICAgIH0KLSNlbmRpZiAvKiBNQkVEVExTX1BTQV9DUllQVE9fU0VfQyAqLwotCi0gICAgcmV0dXJuIHBzYV91bnJlZ2lzdGVyX3JlYWRfdW5kZXJfbXV0ZXgoc2xvdCk7Ci19Ci0KLSNpZiBkZWZpbmVkKE1CRURUTFNfUFNBX0NSWVBUT19TRV9DKQotcHNhX3N0YXR1c190IHBzYV9nZXRfa2V5X3Nsb3RfbnVtYmVyKAotICAgIGNvbnN0IHBzYV9rZXlfYXR0cmlidXRlc190ICphdHRyaWJ1dGVzLAotICAgIHBzYV9rZXlfc2xvdF9udW1iZXJfdCAqc2xvdF9udW1iZXIpCi17Ci0gICAgaWYgKGF0dHJpYnV0ZXMtPmhhc19zbG90X251bWJlcikgewotICAgICAgICAqc2xvdF9udW1iZXIgPSBhdHRyaWJ1dGVzLT5zbG90X251bWJlcjsKLSAgICAgICAgcmV0dXJuIFBTQV9TVUNDRVNTOwotICAgIH0gZWxzZSB7Ci0gICAgICAgIHJldHVybiBQU0FfRVJST1JfSU5WQUxJRF9BUkdVTUVOVDsKLSAgICB9Ci19Ci0jZW5kaWYgLyogTUJFRFRMU19QU0FfQ1JZUFRPX1NFX0MgKi8KLQotc3RhdGljIHBzYV9zdGF0dXNfdCBwc2FfZXhwb3J0X2tleV9idWZmZXJfaW50ZXJuYWwoY29uc3QgdWludDhfdCAqa2V5X2J1ZmZlciwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBrZXlfYnVmZmVyX3NpemUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50OF90ICpkYXRhLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IGRhdGFfc2l6ZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCAqZGF0YV9sZW5ndGgpCi17Ci0gICAgaWYgKGtleV9idWZmZXJfc2l6ZSA+IGRhdGFfc2l6ZSkgewotICAgICAgICByZXR1cm4gUFNBX0VSUk9SX0JVRkZFUl9UT09fU01BTEw7Ci0gICAgfQotICAgIG1lbWNweShkYXRhLCBrZXlfYnVmZmVyLCBrZXlfYnVmZmVyX3NpemUpOwotICAgIG1lbXNldChkYXRhICsga2V5X2J1ZmZlcl9zaXplLCAwLAotICAgICAgICAgICBkYXRhX3NpemUgLSBrZXlfYnVmZmVyX3NpemUpOwotICAgICpkYXRhX2xlbmd0aCA9IGtleV9idWZmZXJfc2l6ZTsKLSAgICByZXR1cm4gUFNBX1NVQ0NFU1M7Ci19Ci0KLXBzYV9zdGF0dXNfdCBwc2FfZXhwb3J0X2tleV9pbnRlcm5hbCgKLSAgICBjb25zdCBwc2Ffa2V5X2F0dHJpYnV0ZXNfdCAqYXR0cmlidXRlcywKLSAgICBjb25zdCB1aW50OF90ICprZXlfYnVmZmVyLCBzaXplX3Qga2V5X2J1ZmZlcl9zaXplLAotICAgIHVpbnQ4X3QgKmRhdGEsIHNpemVfdCBkYXRhX3NpemUsIHNpemVfdCAqZGF0YV9sZW5ndGgpCi17Ci0gICAgcHNhX2tleV90eXBlX3QgdHlwZSA9IGF0dHJpYnV0ZXMtPnR5cGU7Ci0KLSAgICBpZiAoa2V5X3R5cGVfaXNfcmF3X2J5dGVzKHR5cGUpIHx8Ci0gICAgICAgIFBTQV9LRVlfVFlQRV9JU19SU0EodHlwZSkgICB8fAotICAgICAgICBQU0FfS0VZX1RZUEVfSVNfRUNDKHR5cGUpICAgfHwKLSAgICAgICAgUFNBX0tFWV9UWVBFX0lTX0RIKHR5cGUpKSB7Ci0gICAgICAgIHJldHVybiBwc2FfZXhwb3J0X2tleV9idWZmZXJfaW50ZXJuYWwoCi0gICAgICAgICAgICBrZXlfYnVmZmVyLCBrZXlfYnVmZmVyX3NpemUsCi0gICAgICAgICAgICBkYXRhLCBkYXRhX3NpemUsIGRhdGFfbGVuZ3RoKTsKLSAgICB9IGVsc2UgewotICAgICAgICAvKiBUaGlzIHNob3VsZG4ndCBoYXBwZW4gaW4gdGhlIHJlZmVyZW5jZSBpbXBsZW1lbnRhdGlvbiwgYnV0Ci0gICAgICAgICAgIGl0IGlzIHZhbGlkIGZvciBhIHNwZWNpYWwtcHVycG9zZSBpbXBsZW1lbnRhdGlvbiB0byBvbWl0Ci0gICAgICAgICAgIHN1cHBvcnQgZm9yIGV4cG9ydGluZyBjZXJ0YWluIGtleSB0eXBlcy4gKi8KLSAgICAgICAgcmV0dXJuIFBTQV9FUlJPUl9OT1RfU1VQUE9SVEVEOwotICAgIH0KLX0KLQotcHNhX3N0YXR1c190IHBzYV9leHBvcnRfa2V5KG1iZWR0bHNfc3ZjX2tleV9pZF90IGtleSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50OF90ICpkYXRhX2V4dGVybmFsLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBkYXRhX3NpemUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90ICpkYXRhX2xlbmd0aCkKLXsKLSAgICBwc2Ffc3RhdHVzX3Qgc3RhdHVzID0gUFNBX0VSUk9SX0NPUlJVUFRJT05fREVURUNURUQ7Ci0gICAgcHNhX3N0YXR1c190IHVubG9ja19zdGF0dXMgPSBQU0FfRVJST1JfQ09SUlVQVElPTl9ERVRFQ1RFRDsKLSAgICBwc2Ffa2V5X3Nsb3RfdCAqc2xvdDsKLSAgICBMT0NBTF9PVVRQVVRfREVDTEFSRShkYXRhX2V4dGVybmFsLCBkYXRhKTsKLQotICAgIC8qIFJlamVjdCBhIHplcm8tbGVuZ3RoIG91dHB1dCBidWZmZXIgbm93LCBzaW5jZSB0aGlzIGNhbiBuZXZlciBiZSBhCi0gICAgICogdmFsaWQga2V5IHJlcHJlc2VudGF0aW9uLiBUaGlzIHdheSB3ZSBrbm93IHRoYXQgZGF0YSBtdXN0IGJlIGEgdmFsaWQKLSAgICAgKiBwb2ludGVyIGFuZCB3ZSBjYW4gZG8gdGhpbmdzIGxpa2UgbWVtc2V0KGRhdGEsIC4uLiwgZGF0YV9zaXplKS4gKi8KLSAgICBpZiAoZGF0YV9zaXplID09IDApIHsKLSAgICAgICAgcmV0dXJuIFBTQV9FUlJPUl9CVUZGRVJfVE9PX1NNQUxMOwotICAgIH0KLQotICAgIC8qIFNldCB0aGUga2V5IHRvIGVtcHR5IG5vdywgc28gdGhhdCBldmVuIHdoZW4gdGhlcmUgYXJlIGVycm9ycywgd2UgYWx3YXlzCi0gICAgICogc2V0IGRhdGFfbGVuZ3RoIHRvIGEgdmFsdWUgYmV0d2VlbiAwIGFuZCBkYXRhX3NpemUuIE9uIGVycm9yLCBzZXR0aW5nCi0gICAgICogdGhlIGtleSB0byBlbXB0eSBpcyBhIGdvb2QgY2hvaWNlIGJlY2F1c2UgYW4gZW1wdHkga2V5IHJlcHJlc2VudGF0aW9uIGlzCi0gICAgICogdW5saWtlbHkgdG8gYmUgYWNjZXB0ZWQgYW55d2hlcmUuICovCi0gICAgKmRhdGFfbGVuZ3RoID0gMDsKLQotICAgIC8qIEV4cG9ydCByZXF1aXJlcyB0aGUgRVhQT1JUIGZsYWcuIFRoZXJlIGlzIGFuIGV4Y2VwdGlvbiBmb3IgcHVibGljIGtleXMsCi0gICAgICogd2hpY2ggZG9uJ3QgcmVxdWlyZSBhbnkgZmxhZywgYnV0Ci0gICAgICogcHNhX2dldF9hbmRfbG9ja19rZXlfc2xvdF93aXRoX3BvbGljeSgpIHRha2VzIGNhcmUgb2YgdGhpcy4KLSAgICAgKi8KLSAgICBzdGF0dXMgPSBwc2FfZ2V0X2FuZF9sb2NrX2tleV9zbG90X3dpdGhfcG9saWN5KGtleSwgJnNsb3QsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQU0FfS0VZX1VTQUdFX0VYUE9SVCwgMCk7Ci0gICAgaWYgKHN0YXR1cyAhPSBQU0FfU1VDQ0VTUykgewotICAgICAgICByZXR1cm4gc3RhdHVzOwotICAgIH0KLQotICAgIExPQ0FMX09VVFBVVF9BTExPQyhkYXRhX2V4dGVybmFsLCBkYXRhX3NpemUsIGRhdGEpOwotCi0gICAgc3RhdHVzID0gcHNhX2RyaXZlcl93cmFwcGVyX2V4cG9ydF9rZXkoJnNsb3QtPmF0dHIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2xvdC0+a2V5LmRhdGEsIHNsb3QtPmtleS5ieXRlcywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhLCBkYXRhX3NpemUsIGRhdGFfbGVuZ3RoKTsKLQotI2lmICFkZWZpbmVkKE1CRURUTFNfUFNBX0FTU1VNRV9FWENMVVNJVkVfQlVGRkVSUykKLWV4aXQ6Ci0jZW5kaWYKLSAgICB1bmxvY2tfc3RhdHVzID0gcHNhX3VucmVnaXN0ZXJfcmVhZF91bmRlcl9tdXRleChzbG90KTsKLQotICAgIExPQ0FMX09VVFBVVF9GUkVFKGRhdGFfZXh0ZXJuYWwsIGRhdGEpOwotICAgIHJldHVybiAoc3RhdHVzID09IFBTQV9TVUNDRVNTKSA/IHVubG9ja19zdGF0dXMgOiBzdGF0dXM7Ci19Ci0KLXBzYV9zdGF0dXNfdCBwc2FfZXhwb3J0X3B1YmxpY19rZXlfaW50ZXJuYWwoCi0gICAgY29uc3QgcHNhX2tleV9hdHRyaWJ1dGVzX3QgKmF0dHJpYnV0ZXMsCi0gICAgY29uc3QgdWludDhfdCAqa2V5X2J1ZmZlciwKLSAgICBzaXplX3Qga2V5X2J1ZmZlcl9zaXplLAotICAgIHVpbnQ4X3QgKmRhdGEsCi0gICAgc2l6ZV90IGRhdGFfc2l6ZSwKLSAgICBzaXplX3QgKmRhdGFfbGVuZ3RoKQotewotICAgIHBzYV9rZXlfdHlwZV90IHR5cGUgPSBhdHRyaWJ1dGVzLT50eXBlOwotCi0gICAgaWYgKFBTQV9LRVlfVFlQRV9JU19QVUJMSUNfS0VZKHR5cGUpICYmCi0gICAgICAgIChQU0FfS0VZX1RZUEVfSVNfUlNBKHR5cGUpIHx8IFBTQV9LRVlfVFlQRV9JU19FQ0ModHlwZSkgfHwKLSAgICAgICAgIFBTQV9LRVlfVFlQRV9JU19ESCh0eXBlKSkpIHsKLSAgICAgICAgLyogRXhwb3J0aW5nIHB1YmxpYyAtPiBwdWJsaWMgKi8KLSAgICAgICAgcmV0dXJuIHBzYV9leHBvcnRfa2V5X2J1ZmZlcl9pbnRlcm5hbCgKLSAgICAgICAgICAgIGtleV9idWZmZXIsIGtleV9idWZmZXJfc2l6ZSwKLSAgICAgICAgICAgIGRhdGEsIGRhdGFfc2l6ZSwgZGF0YV9sZW5ndGgpOwotICAgIH0gZWxzZSBpZiAoUFNBX0tFWV9UWVBFX0lTX1JTQSh0eXBlKSkgewotI2lmIGRlZmluZWQoTUJFRFRMU19QU0FfQlVJTFRJTl9LRVlfVFlQRV9SU0FfS0VZX1BBSVJfRVhQT1JUKSB8fCBcCi0gICAgICAgIGRlZmluZWQoTUJFRFRMU19QU0FfQlVJTFRJTl9LRVlfVFlQRV9SU0FfUFVCTElDX0tFWSkKLSAgICAgICAgcmV0dXJuIG1iZWR0bHNfcHNhX3JzYV9leHBvcnRfcHVibGljX2tleShhdHRyaWJ1dGVzLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtleV9idWZmZXIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga2V5X2J1ZmZlcl9zaXplLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YV9zaXplLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGFfbGVuZ3RoKTsKLSNlbHNlCi0gICAgICAgIC8qIFdlIGRvbid0IGtub3cgaG93IHRvIGNvbnZlcnQgYSBwcml2YXRlIFJTQSBrZXkgdG8gcHVibGljLiAqLwotICAgICAgICByZXR1cm4gUFNBX0VSUk9SX05PVF9TVVBQT1JURUQ7Ci0jZW5kaWYgLyogZGVmaW5lZChNQkVEVExTX1BTQV9CVUlMVElOX0tFWV9UWVBFX1JTQV9LRVlfUEFJUl9FWFBPUlQpIHx8Ci0gICAgICAgICogZGVmaW5lZChNQkVEVExTX1BTQV9CVUlMVElOX0tFWV9UWVBFX1JTQV9QVUJMSUNfS0VZKSAqLwotICAgIH0gZWxzZSBpZiAoUFNBX0tFWV9UWVBFX0lTX0VDQyh0eXBlKSkgewotI2lmIGRlZmluZWQoTUJFRFRMU19QU0FfQlVJTFRJTl9LRVlfVFlQRV9FQ0NfS0VZX1BBSVJfRVhQT1JUKSB8fCBcCi0gICAgICAgIGRlZmluZWQoTUJFRFRMU19QU0FfQlVJTFRJTl9LRVlfVFlQRV9FQ0NfUFVCTElDX0tFWSkKLSAgICAgICAgcmV0dXJuIG1iZWR0bHNfcHNhX2VjcF9leHBvcnRfcHVibGljX2tleShhdHRyaWJ1dGVzLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtleV9idWZmZXIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga2V5X2J1ZmZlcl9zaXplLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YV9zaXplLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGFfbGVuZ3RoKTsKLSNlbHNlCi0gICAgICAgIC8qIFdlIGRvbid0IGtub3cgaG93IHRvIGNvbnZlcnQgYSBwcml2YXRlIEVDQyBrZXkgdG8gcHVibGljICovCi0gICAgICAgIHJldHVybiBQU0FfRVJST1JfTk9UX1NVUFBPUlRFRDsKLSNlbmRpZiAvKiBkZWZpbmVkKE1CRURUTFNfUFNBX0JVSUxUSU5fS0VZX1RZUEVfRUNDX0tFWV9QQUlSX0VYUE9SVCkgfHwKLSAgICAgICAgKiBkZWZpbmVkKE1CRURUTFNfUFNBX0JVSUxUSU5fS0VZX1RZUEVfRUNDX1BVQkxJQ19LRVkpICovCi0gICAgfSBlbHNlIGlmIChQU0FfS0VZX1RZUEVfSVNfREgodHlwZSkpIHsKLSNpZiBkZWZpbmVkKE1CRURUTFNfUFNBX0JVSUxUSU5fS0VZX1RZUEVfREhfS0VZX1BBSVJfRVhQT1JUKSB8fCBcCi0gICAgICAgIGRlZmluZWQoTUJFRFRMU19QU0FfQlVJTFRJTl9LRVlfVFlQRV9ESF9QVUJMSUNfS0VZKQotICAgICAgICByZXR1cm4gbWJlZHRsc19wc2FfZmZkaF9leHBvcnRfcHVibGljX2tleShhdHRyaWJ1dGVzLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXlfYnVmZmVyLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXlfYnVmZmVyX3NpemUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEsIGRhdGFfc2l6ZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YV9sZW5ndGgpOwotI2Vsc2UKLSAgICAgICAgcmV0dXJuIFBTQV9FUlJPUl9OT1RfU1VQUE9SVEVEOwotI2VuZGlmIC8qIGRlZmluZWQoTUJFRFRMU19QU0FfQlVJTFRJTl9LRVlfVFlQRV9ESF9LRVlfUEFJUl9FWFBPUlQpIHx8Ci0gICAgICAgICogZGVmaW5lZChNQkVEVExTX1BTQV9CVUlMVElOX0tFWV9UWVBFX0RIX1BVQkxJQ19LRVkpICovCi0gICAgfSBlbHNlIHsKLSAgICAgICAgKHZvaWQpIGtleV9idWZmZXI7Ci0gICAgICAgICh2b2lkKSBrZXlfYnVmZmVyX3NpemU7Ci0gICAgICAgICh2b2lkKSBkYXRhOwotICAgICAgICAodm9pZCkgZGF0YV9zaXplOwotICAgICAgICAodm9pZCkgZGF0YV9sZW5ndGg7Ci0gICAgICAgIHJldHVybiBQU0FfRVJST1JfTk9UX1NVUFBPUlRFRDsKLSAgICB9Ci19Ci0KLXBzYV9zdGF0dXNfdCBwc2FfZXhwb3J0X3B1YmxpY19rZXkobWJlZHRsc19zdmNfa2V5X2lkX3Qga2V5LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50OF90ICpkYXRhX2V4dGVybmFsLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgZGF0YV9zaXplLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgKmRhdGFfbGVuZ3RoKQotewotICAgIHBzYV9zdGF0dXNfdCBzdGF0dXMgPSBQU0FfRVJST1JfQ09SUlVQVElPTl9ERVRFQ1RFRDsKLSAgICBwc2Ffc3RhdHVzX3QgdW5sb2NrX3N0YXR1cyA9IFBTQV9FUlJPUl9DT1JSVVBUSU9OX0RFVEVDVEVEOwotICAgIHBzYV9rZXlfc2xvdF90ICpzbG90OwotCi0gICAgTE9DQUxfT1VUUFVUX0RFQ0xBUkUoZGF0YV9leHRlcm5hbCwgZGF0YSk7Ci0KLSAgICAvKiBSZWplY3QgYSB6ZXJvLWxlbmd0aCBvdXRwdXQgYnVmZmVyIG5vdywgc2luY2UgdGhpcyBjYW4gbmV2ZXIgYmUgYQotICAgICAqIHZhbGlkIGtleSByZXByZXNlbnRhdGlvbi4gVGhpcyB3YXkgd2Uga25vdyB0aGF0IGRhdGEgbXVzdCBiZSBhIHZhbGlkCi0gICAgICogcG9pbnRlciBhbmQgd2UgY2FuIGRvIHRoaW5ncyBsaWtlIG1lbXNldChkYXRhLCAuLi4sIGRhdGFfc2l6ZSkuICovCi0gICAgaWYgKGRhdGFfc2l6ZSA9PSAwKSB7Ci0gICAgICAgIHJldHVybiBQU0FfRVJST1JfQlVGRkVSX1RPT19TTUFMTDsKLSAgICB9Ci0KLSAgICAvKiBTZXQgdGhlIGtleSB0byBlbXB0eSBub3csIHNvIHRoYXQgZXZlbiB3aGVuIHRoZXJlIGFyZSBlcnJvcnMsIHdlIGFsd2F5cwotICAgICAqIHNldCBkYXRhX2xlbmd0aCB0byBhIHZhbHVlIGJldHdlZW4gMCBhbmQgZGF0YV9zaXplLiBPbiBlcnJvciwgc2V0dGluZwotICAgICAqIHRoZSBrZXkgdG8gZW1wdHkgaXMgYSBnb29kIGNob2ljZSBiZWNhdXNlIGFuIGVtcHR5IGtleSByZXByZXNlbnRhdGlvbiBpcwotICAgICAqIHVubGlrZWx5IHRvIGJlIGFjY2VwdGVkIGFueXdoZXJlLiAqLwotICAgICpkYXRhX2xlbmd0aCA9IDA7Ci0KLSAgICAvKiBFeHBvcnRpbmcgYSBwdWJsaWMga2V5IGRvZXNuJ3QgcmVxdWlyZSBhIHVzYWdlIGZsYWcuICovCi0gICAgc3RhdHVzID0gcHNhX2dldF9hbmRfbG9ja19rZXlfc2xvdF93aXRoX3BvbGljeShrZXksICZzbG90LCAwLCAwKTsKLSAgICBpZiAoc3RhdHVzICE9IFBTQV9TVUNDRVNTKSB7Ci0gICAgICAgIHJldHVybiBzdGF0dXM7Ci0gICAgfQotCi0gICAgTE9DQUxfT1VUUFVUX0FMTE9DKGRhdGFfZXh0ZXJuYWwsIGRhdGFfc2l6ZSwgZGF0YSk7Ci0KLSAgICBpZiAoIVBTQV9LRVlfVFlQRV9JU19BU1lNTUVUUklDKHNsb3QtPmF0dHIudHlwZSkpIHsKLSAgICAgICAgc3RhdHVzID0gUFNBX0VSUk9SX0lOVkFMSURfQVJHVU1FTlQ7Ci0gICAgICAgIGdvdG8gZXhpdDsKLSAgICB9Ci0KLSAgICBzdGF0dXMgPSBwc2FfZHJpdmVyX3dyYXBwZXJfZXhwb3J0X3B1YmxpY19rZXkoCi0gICAgICAgICZzbG90LT5hdHRyLCBzbG90LT5rZXkuZGF0YSwgc2xvdC0+a2V5LmJ5dGVzLAotICAgICAgICBkYXRhLCBkYXRhX3NpemUsIGRhdGFfbGVuZ3RoKTsKLQotZXhpdDoKLSAgICB1bmxvY2tfc3RhdHVzID0gcHNhX3VucmVnaXN0ZXJfcmVhZF91bmRlcl9tdXRleChzbG90KTsKLQotICAgIExPQ0FMX09VVFBVVF9GUkVFKGRhdGFfZXh0ZXJuYWwsIGRhdGEpOwotICAgIHJldHVybiAoc3RhdHVzID09IFBTQV9TVUNDRVNTKSA/IHVubG9ja19zdGF0dXMgOiBzdGF0dXM7Ci19Ci0KLS8qKiBWYWxpZGF0ZSB0aGF0IGEga2V5IHBvbGljeSBpcyBpbnRlcm5hbGx5IHdlbGwtZm9ybWVkLgotICoKLSAqIFRoaXMgZnVuY3Rpb24gb25seSByZWplY3RzIGludmFsaWQgcG9saWNpZXMuIEl0IGRvZXMgbm90IHZhbGlkYXRlIHRoZQotICogY29uc2lzdGVuY3kgb2YgdGhlIHBvbGljeSB3aXRoIHJlc3BlY3QgdG8gb3RoZXIgYXR0cmlidXRlcyBvZiB0aGUga2V5Ci0gKiBzdWNoIGFzIHRoZSBrZXkgdHlwZS4KLSAqLwotc3RhdGljIHBzYV9zdGF0dXNfdCBwc2FfdmFsaWRhdGVfa2V5X3BvbGljeShjb25zdCBwc2Ffa2V5X3BvbGljeV90ICpwb2xpY3kpCi17Ci0gICAgaWYgKChwb2xpY3ktPnVzYWdlICYgfihQU0FfS0VZX1VTQUdFX0VYUE9SVCB8Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICBQU0FfS0VZX1VTQUdFX0NPUFkgfAotICAgICAgICAgICAgICAgICAgICAgICAgICAgUFNBX0tFWV9VU0FHRV9FTkNSWVBUIHwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIFBTQV9LRVlfVVNBR0VfREVDUllQVCB8Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICBQU0FfS0VZX1VTQUdFX1NJR05fTUVTU0FHRSB8Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICBQU0FfS0VZX1VTQUdFX1ZFUklGWV9NRVNTQUdFIHwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIFBTQV9LRVlfVVNBR0VfU0lHTl9IQVNIIHwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIFBTQV9LRVlfVVNBR0VfVkVSSUZZX0hBU0ggfAotICAgICAgICAgICAgICAgICAgICAgICAgICAgUFNBX0tFWV9VU0FHRV9WRVJJRllfREVSSVZBVElPTiB8Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICBQU0FfS0VZX1VTQUdFX0RFUklWRSkpICE9IDApIHsKLSAgICAgICAgcmV0dXJuIFBTQV9FUlJPUl9JTlZBTElEX0FSR1VNRU5UOwotICAgIH0KLQotICAgIHJldHVybiBQU0FfU1VDQ0VTUzsKLX0KLQotLyoqIFZhbGlkYXRlIHRoZSBpbnRlcm5hbCBjb25zaXN0ZW5jeSBvZiBrZXkgYXR0cmlidXRlcy4KLSAqCi0gKiBUaGlzIGZ1bmN0aW9uIG9ubHkgcmVqZWN0cyBpbnZhbGlkIGF0dHJpYnV0ZSB2YWx1ZXMuIElmIGRvZXMgbm90Ci0gKiB2YWxpZGF0ZSB0aGUgY29uc2lzdGVuY3kgb2YgdGhlIGF0dHJpYnV0ZXMgd2l0aCBhbnkga2V5IGRhdGEgdGhhdCBtYXkKLSAqIGJlIGludm9sdmVkIGluIHRoZSBjcmVhdGlvbiBvZiB0aGUga2V5LgotICoKLSAqIENhbGwgdGhpcyBmdW5jdGlvbiBlYXJseSBpbiB0aGUga2V5IGNyZWF0aW9uIHByb2Nlc3MuCi0gKgotICogXHBhcmFtW2luXSBhdHRyaWJ1dGVzICAgIEtleSBhdHRyaWJ1dGVzIGZvciB0aGUgbmV3IGtleS4KLSAqIFxwYXJhbVtvdXRdIHBfZHJ2ICAgICAgICBPbiBhbnkgcmV0dXJuLCB0aGUgZHJpdmVyIGZvciB0aGUga2V5LCBpZiBhbnkuCi0gKiAgICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCBmb3IgYSB0cmFuc3BhcmVudCBrZXkuCi0gKgotICovCi1zdGF0aWMgcHNhX3N0YXR1c190IHBzYV92YWxpZGF0ZV9rZXlfYXR0cmlidXRlcygKLSAgICBjb25zdCBwc2Ffa2V5X2F0dHJpYnV0ZXNfdCAqYXR0cmlidXRlcywKLSAgICBwc2Ffc2VfZHJ2X3RhYmxlX2VudHJ5X3QgKipwX2RydikKLXsKLSAgICBwc2Ffc3RhdHVzX3Qgc3RhdHVzID0gUFNBX0VSUk9SX0lOVkFMSURfQVJHVU1FTlQ7Ci0gICAgcHNhX2tleV9saWZldGltZV90IGxpZmV0aW1lID0gcHNhX2dldF9rZXlfbGlmZXRpbWUoYXR0cmlidXRlcyk7Ci0gICAgbWJlZHRsc19zdmNfa2V5X2lkX3Qga2V5ID0gcHNhX2dldF9rZXlfaWQoYXR0cmlidXRlcyk7Ci0KLSAgICBzdGF0dXMgPSBwc2FfdmFsaWRhdGVfa2V5X2xvY2F0aW9uKGxpZmV0aW1lLCBwX2Rydik7Ci0gICAgaWYgKHN0YXR1cyAhPSBQU0FfU1VDQ0VTUykgewotICAgICAgICByZXR1cm4gc3RhdHVzOwotICAgIH0KLQotICAgIHN0YXR1cyA9IHBzYV92YWxpZGF0ZV9rZXlfcGVyc2lzdGVuY2UobGlmZXRpbWUpOwotICAgIGlmIChzdGF0dXMgIT0gUFNBX1NVQ0NFU1MpIHsKLSAgICAgICAgcmV0dXJuIHN0YXR1czsKLSAgICB9Ci0KLSAgICBpZiAoUFNBX0tFWV9MSUZFVElNRV9JU19WT0xBVElMRShsaWZldGltZSkpIHsKLSAgICAgICAgaWYgKE1CRURUTFNfU1ZDX0tFWV9JRF9HRVRfS0VZX0lEKGtleSkgIT0gMCkgewotICAgICAgICAgICAgcmV0dXJuIFBTQV9FUlJPUl9JTlZBTElEX0FSR1VNRU5UOwotICAgICAgICB9Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgaWYgKCFwc2FfaXNfdmFsaWRfa2V5X2lkKHBzYV9nZXRfa2V5X2lkKGF0dHJpYnV0ZXMpLCAwKSkgewotICAgICAgICAgICAgcmV0dXJuIFBTQV9FUlJPUl9JTlZBTElEX0FSR1VNRU5UOwotICAgICAgICB9Ci0gICAgfQotCi0gICAgc3RhdHVzID0gcHNhX3ZhbGlkYXRlX2tleV9wb2xpY3koJmF0dHJpYnV0ZXMtPnBvbGljeSk7Ci0gICAgaWYgKHN0YXR1cyAhPSBQU0FfU1VDQ0VTUykgewotICAgICAgICByZXR1cm4gc3RhdHVzOwotICAgIH0KLQotICAgIC8qIFJlZnVzZSB0byBjcmVhdGUgb3Zlcmx5IGxhcmdlIGtleXMuCi0gICAgICogTm90ZSB0aGF0IHRoaXMgZG9lc24ndCB0cmlnZ2VyIG9uIGltcG9ydCBpZiB0aGUgYXR0cmlidXRlcyBkb24ndAotICAgICAqIGV4cGxpY2l0bHkgc3BlY2lmeSBhIHNpemUgKHNvIHBzYV9nZXRfa2V5X2JpdHMgcmV0dXJucyAwKSwgc28KLSAgICAgKiBwc2FfaW1wb3J0X2tleSgpIG5lZWRzIGl0cyBvd24gY2hlY2tzLiAqLwotICAgIGlmIChwc2FfZ2V0X2tleV9iaXRzKGF0dHJpYnV0ZXMpID4gUFNBX01BWF9LRVlfQklUUykgewotICAgICAgICByZXR1cm4gUFNBX0VSUk9SX05PVF9TVVBQT1JURUQ7Ci0gICAgfQotCi0gICAgcmV0dXJuIFBTQV9TVUNDRVNTOwotfQotCi0vKiogUHJlcGFyZSBhIGtleSBzbG90IHRvIHJlY2VpdmUga2V5IG1hdGVyaWFsLgotICoKLSAqIFRoaXMgZnVuY3Rpb24gYWxsb2NhdGVzIGEga2V5IHNsb3QgYW5kIHNldHMgaXRzIG1ldGFkYXRhLgotICoKLSAqIElmIHRoaXMgZnVuY3Rpb24gZmFpbHMsIGNhbGwgcHNhX2ZhaWxfa2V5X2NyZWF0aW9uKCkuCi0gKgotICogVGhpcyBmdW5jdGlvbiBpcyBpbnRlbmRlZCB0byBiZSB1c2VkIGFzIGZvbGxvd3M6Ci0gKiAtIyBDYWxsIHBzYV9zdGFydF9rZXlfY3JlYXRpb24oKSB0byBhbGxvY2F0ZSBhIGtleSBzbG90LCBwcmVwYXJlCi0gKiAgICBpdCB3aXRoIHRoZSBzcGVjaWZpZWQgYXR0cmlidXRlcywgYW5kIGluIGNhc2Ugb2YgYSB2b2xhdGlsZSBrZXkgYXNzaWduIGl0Ci0gKiAgICBhIHZvbGF0aWxlIGtleSBpZGVudGlmaWVyLgotICogLSMgUG9wdWxhdGUgdGhlIHNsb3Qgd2l0aCB0aGUga2V5IG1hdGVyaWFsLgotICogLSMgQ2FsbCBwc2FfZmluaXNoX2tleV9jcmVhdGlvbigpIHRvIGZpbmFsaXplIHRoZSBjcmVhdGlvbiBvZiB0aGUgc2xvdC4KLSAqIEluIGNhc2Ugb2YgZmFpbHVyZSBhdCBhbnkgc3RlcCwgc3RvcCB0aGUgc2VxdWVuY2UgYW5kIGNhbGwKLSAqIHBzYV9mYWlsX2tleV9jcmVhdGlvbigpLgotICoKLSAqIE9uIHN1Y2Nlc3MsIHRoZSBrZXkgc2xvdCdzIHN0YXRlIGlzIFBTQV9TTE9UX0ZJTExJTkcuCi0gKiBJdCBpcyB0aGUgcmVzcG9uc2liaWxpdHkgb2YgdGhlIGNhbGxlciB0byBjaGFuZ2UgdGhlIHNsb3QncyBzdGF0ZSB0bwotICogUFNBX1NMT1RfRU1QVFkvRlVMTCBvbmNlIGtleSBjcmVhdGlvbiBoYXMgZmluaXNoZWQuCi0gKgotICogXHBhcmFtIG1ldGhvZCAgICAgICAgICAgIEFuIGlkZW50aWZpY2F0aW9uIG9mIHRoZSBjYWxsaW5nIGZ1bmN0aW9uLgotICogXHBhcmFtW2luXSBhdHRyaWJ1dGVzICAgIEtleSBhdHRyaWJ1dGVzIGZvciB0aGUgbmV3IGtleS4KLSAqIFxwYXJhbVtvdXRdIHBfc2xvdCAgICAgICBPbiBzdWNjZXNzLCBhIHBvaW50ZXIgdG8gdGhlIHByZXBhcmVkIHNsb3QuCi0gKiBccGFyYW1bb3V0XSBwX2RydiAgICAgICAgT24gYW55IHJldHVybiwgdGhlIGRyaXZlciBmb3IgdGhlIGtleSwgaWYgYW55LgotICogICAgICAgICAgICAgICAgICAgICAgICAgIE5VTEwgZm9yIGEgdHJhbnNwYXJlbnQga2V5LgotICoKLSAqIFxyZXR2YWwgI1BTQV9TVUNDRVNTCi0gKiAgICAgICAgIFRoZSBrZXkgc2xvdCBpcyByZWFkeSB0byByZWNlaXZlIGtleSBtYXRlcmlhbC4KLSAqIFxyZXR1cm4gSWYgdGhpcyBmdW5jdGlvbiBmYWlscywgdGhlIGtleSBzbG90IGlzIGFuIGludmFsaWQgc3RhdGUuCi0gKiAgICAgICAgIFlvdSBtdXN0IGNhbGwgcHNhX2ZhaWxfa2V5X2NyZWF0aW9uKCkgdG8gd2lwZSBhbmQgZnJlZSB0aGUgc2xvdC4KLSAqLwotc3RhdGljIHBzYV9zdGF0dXNfdCBwc2Ffc3RhcnRfa2V5X2NyZWF0aW9uKAotICAgIHBzYV9rZXlfY3JlYXRpb25fbWV0aG9kX3QgbWV0aG9kLAotICAgIGNvbnN0IHBzYV9rZXlfYXR0cmlidXRlc190ICphdHRyaWJ1dGVzLAotICAgIHBzYV9rZXlfc2xvdF90ICoqcF9zbG90LAotICAgIHBzYV9zZV9kcnZfdGFibGVfZW50cnlfdCAqKnBfZHJ2KQotewotICAgIHBzYV9zdGF0dXNfdCBzdGF0dXM7Ci0gICAgcHNhX2tleV9pZF90IHZvbGF0aWxlX2tleV9pZDsKLSAgICBwc2Ffa2V5X3Nsb3RfdCAqc2xvdDsKLQotICAgICh2b2lkKSBtZXRob2Q7Ci0gICAgKnBfZHJ2ID0gTlVMTDsKLQotICAgIHN0YXR1cyA9IHBzYV92YWxpZGF0ZV9rZXlfYXR0cmlidXRlcyhhdHRyaWJ1dGVzLCBwX2Rydik7Ci0gICAgaWYgKHN0YXR1cyAhPSBQU0FfU1VDQ0VTUykgewotICAgICAgICByZXR1cm4gc3RhdHVzOwotICAgIH0KLQotI2lmIGRlZmluZWQoTUJFRFRMU19USFJFQURJTkdfQykKLSAgICBQU0FfVEhSRUFESU5HX0NIS19SRVQobWJlZHRsc19tdXRleF9sb2NrKAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJm1iZWR0bHNfdGhyZWFkaW5nX2tleV9zbG90X211dGV4KSk7Ci0jZW5kaWYKLSAgICBzdGF0dXMgPSBwc2FfcmVzZXJ2ZV9mcmVlX2tleV9zbG90KCZ2b2xhdGlsZV9rZXlfaWQsIHBfc2xvdCk7Ci0jaWYgZGVmaW5lZChNQkVEVExTX1RIUkVBRElOR19DKQotICAgIFBTQV9USFJFQURJTkdfQ0hLX1JFVChtYmVkdGxzX211dGV4X3VubG9jaygKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZtYmVkdGxzX3RocmVhZGluZ19rZXlfc2xvdF9tdXRleCkpOwotI2VuZGlmCi0gICAgaWYgKHN0YXR1cyAhPSBQU0FfU1VDQ0VTUykgewotICAgICAgICByZXR1cm4gc3RhdHVzOwotICAgIH0KLSAgICBzbG90ID0gKnBfc2xvdDsKLQotICAgIC8qIFdlJ3JlIHN0b3JpbmcgdGhlIGRlY2xhcmVkIGJpdC1zaXplIG9mIHRoZSBrZXkuIEl0J3MgdXAgdG8gZWFjaAotICAgICAqIGNyZWF0aW9uIG1lY2hhbmlzbSB0byB2ZXJpZnkgdGhhdCB0aGlzIGluZm9ybWF0aW9uIGlzIGNvcnJlY3QuCi0gICAgICogSXQncyBhdXRvbWF0aWNhbGx5IGNvcnJlY3QgZm9yIG1lY2hhbmlzbXMgdGhhdCB1c2UgdGhlIGJpdC1zaXplIGFzCi0gICAgICogYW4gaW5wdXQgKGdlbmVyYXRlLCBkZXZpY2UpIGJ1dCBub3QgZm9yIHRob3NlIHdoZXJlIHRoZSBiaXQtc2l6ZQotICAgICAqIGlzIG9wdGlvbmFsIChpbXBvcnQsIGNvcHkpLiBJbiBjYXNlIG9mIGEgdm9sYXRpbGUga2V5LCBhc3NpZ24gaXQgdGhlCi0gICAgICogdm9sYXRpbGUga2V5IGlkZW50aWZpZXIgYXNzb2NpYXRlZCB0byB0aGUgc2xvdCByZXR1cm5lZCB0byBjb250YWluIGl0cwotICAgICAqIGRlZmluaXRpb24uICovCi0KLSAgICBzbG90LT5hdHRyID0gKmF0dHJpYnV0ZXM7Ci0gICAgaWYgKFBTQV9LRVlfTElGRVRJTUVfSVNfVk9MQVRJTEUoc2xvdC0+YXR0ci5saWZldGltZSkpIHsKLSNpZiAhZGVmaW5lZChNQkVEVExTX1BTQV9DUllQVE9fS0VZX0lEX0VOQ09ERVNfT1dORVIpCi0gICAgICAgIHNsb3QtPmF0dHIuaWQgPSB2b2xhdGlsZV9rZXlfaWQ7Ci0jZWxzZQotICAgICAgICBzbG90LT5hdHRyLmlkLmtleV9pZCA9IHZvbGF0aWxlX2tleV9pZDsKLSNlbmRpZgotICAgIH0KLQotI2lmIGRlZmluZWQoTUJFRFRMU19QU0FfQ1JZUFRPX1NFX0MpCi0gICAgLyogRm9yIGEga2V5IGluIGEgc2VjdXJlIGVsZW1lbnQsIHdlIG5lZWQgdG8gZG8gdGhyZWUgdGhpbmdzCi0gICAgICogd2hlbiBjcmVhdGluZyBvciByZWdpc3RlcmluZyBhIHBlcnNpc3RlbnQga2V5OgotICAgICAqIGNyZWF0ZSB0aGUga2V5IGZpbGUgaW4gaW50ZXJuYWwgc3RvcmFnZSwgY3JlYXRlIHRoZQotICAgICAqIGtleSBpbnNpZGUgdGhlIHNlY3VyZSBlbGVtZW50LCBhbmQgdXBkYXRlIHRoZSBkcml2ZXIncwotICAgICAqIHBlcnNpc3RlbnQgZGF0YS4gVGhpcyBpcyBkb25lIGJ5IHN0YXJ0aW5nIGEgdHJhbnNhY3Rpb24gdGhhdCB3aWxsCi0gICAgICogZW5jb21wYXNzIHRoZXNlIHRocmVlIGFjdGlvbnMuCi0gICAgICogRm9yIHJlZ2lzdGVyaW5nIGEgdm9sYXRpbGUga2V5LCB3ZSBqdXN0IG5lZWQgdG8gZmluZCBhbiBhcHByb3ByaWF0ZQotICAgICAqIHNsb3QgbnVtYmVyIGluc2lkZSB0aGUgU0UuIFNpbmNlIHRoZSBrZXkgaXMgZGVzaWduYXRlZCB2b2xhdGlsZSwgY3JlYXRpbmcKLSAgICAgKiBhIHRyYW5zYWN0aW9uIGlzIG5vdCByZXF1aXJlZC4gKi8KLSAgICAvKiBUaGUgZmlyc3QgdGhpbmcgdG8gZG8gaXMgdG8gZmluZCBhIHNsb3QgbnVtYmVyIGZvciB0aGUgbmV3IGtleS4KLSAgICAgKiBXZSBzYXZlIHRoZSBzbG90IG51bWJlciBpbiBwZXJzaXN0ZW50IHN0b3JhZ2UgYXMgcGFydCBvZiB0aGUKLSAgICAgKiB0cmFuc2FjdGlvbiBkYXRhLiBJdCB3aWxsIGJlIG5lZWRlZCB0byByZWNvdmVyIGlmIHRoZSBwb3dlcgotICAgICAqIGZhaWxzIGR1cmluZyB0aGUga2V5IGNyZWF0aW9uIHByb2Nlc3MsIHRvIGNsZWFuIHVwIG9uIHRoZSBzZWN1cmUKLSAgICAgKiBlbGVtZW50IHNpZGUgYWZ0ZXIgcmVzdGFydGluZy4gT2J0YWluaW5nIGEgc2xvdCBudW1iZXIgZnJvbSB0aGUKLSAgICAgKiBzZWN1cmUgZWxlbWVudCBkcml2ZXIgdXBkYXRlcyBpdHMgcGVyc2lzdGVudCBzdGF0ZSwgYnV0IHdlIGRvIG5vdCB5ZXQKLSAgICAgKiBzYXZlIHRoZSBkcml2ZXIncyBwZXJzaXN0ZW50IHN0YXRlLCBzbyB0aGF0IGlmIHRoZSBwb3dlciBmYWlscywKLSAgICAgKiB3ZSBjYW4gcm9sbCBiYWNrIHRvIGEgc3RhdGUgd2hlcmUgdGhlIGtleSBkb2Vzbid0IGV4aXN0LiAqLwotICAgIGlmICgqcF9kcnYgIT0gTlVMTCkgewotICAgICAgICBwc2Ffa2V5X3Nsb3RfbnVtYmVyX3Qgc2xvdF9udW1iZXI7Ci0gICAgICAgIHN0YXR1cyA9IHBzYV9maW5kX3NlX3Nsb3RfZm9yX2tleShhdHRyaWJ1dGVzLCBtZXRob2QsICpwX2RydiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZzbG90X251bWJlcik7Ci0gICAgICAgIGlmIChzdGF0dXMgIT0gUFNBX1NVQ0NFU1MpIHsKLSAgICAgICAgICAgIHJldHVybiBzdGF0dXM7Ci0gICAgICAgIH0KLQotICAgICAgICBpZiAoIVBTQV9LRVlfTElGRVRJTUVfSVNfVk9MQVRJTEUoYXR0cmlidXRlcy0+bGlmZXRpbWUpKSB7Ci0gICAgICAgICAgICBwc2FfY3J5cHRvX3ByZXBhcmVfdHJhbnNhY3Rpb24oUFNBX0NSWVBUT19UUkFOU0FDVElPTl9DUkVBVEVfS0VZKTsKLSAgICAgICAgICAgIHBzYV9jcnlwdG9fdHJhbnNhY3Rpb24ua2V5LmxpZmV0aW1lID0gc2xvdC0+YXR0ci5saWZldGltZTsKLSAgICAgICAgICAgIHBzYV9jcnlwdG9fdHJhbnNhY3Rpb24ua2V5LnNsb3QgPSBzbG90X251bWJlcjsKLSAgICAgICAgICAgIHBzYV9jcnlwdG9fdHJhbnNhY3Rpb24ua2V5LmlkID0gc2xvdC0+YXR0ci5pZDsKLSAgICAgICAgICAgIHN0YXR1cyA9IHBzYV9jcnlwdG9fc2F2ZV90cmFuc2FjdGlvbigpOwotICAgICAgICAgICAgaWYgKHN0YXR1cyAhPSBQU0FfU1VDQ0VTUykgewotICAgICAgICAgICAgICAgICh2b2lkKSBwc2FfY3J5cHRvX3N0b3BfdHJhbnNhY3Rpb24oKTsKLSAgICAgICAgICAgICAgICByZXR1cm4gc3RhdHVzOwotICAgICAgICAgICAgfQotICAgICAgICB9Ci0KLSAgICAgICAgc3RhdHVzID0gcHNhX2NvcHlfa2V5X21hdGVyaWFsX2ludG9fc2xvdCgKLSAgICAgICAgICAgIHNsb3QsICh1aW50OF90ICopICgmc2xvdF9udW1iZXIpLCBzaXplb2Yoc2xvdF9udW1iZXIpKTsKLSAgICAgICAgaWYgKHN0YXR1cyAhPSBQU0FfU1VDQ0VTUykgewotICAgICAgICAgICAgcmV0dXJuIHN0YXR1czsKLSAgICAgICAgfQotICAgIH0KLQotICAgIGlmICgqcF9kcnYgPT0gTlVMTCAmJiBtZXRob2QgPT0gUFNBX0tFWV9DUkVBVElPTl9SRUdJU1RFUikgewotICAgICAgICAvKiBLZXkgcmVnaXN0cmF0aW9uIG9ubHkgbWFrZXMgc2Vuc2Ugd2l0aCBhIHNlY3VyZSBlbGVtZW50LiAqLwotICAgICAgICByZXR1cm4gUFNBX0VSUk9SX0lOVkFMSURfQVJHVU1FTlQ7Ci0gICAgfQotI2VuZGlmIC8qIE1CRURUTFNfUFNBX0NSWVBUT19TRV9DICovCi0KLSAgICByZXR1cm4gUFNBX1NVQ0NFU1M7Ci19Ci0KLS8qKiBGaW5hbGl6ZSB0aGUgY3JlYXRpb24gb2YgYSBrZXkgb25jZSBpdHMga2V5IG1hdGVyaWFsIGhhcyBiZWVuIHNldC4KLSAqCi0gKiBUaGlzIGVudGFpbHMgd3JpdGluZyB0aGUga2V5IHRvIHBlcnNpc3RlbnQgc3RvcmFnZS4KLSAqCi0gKiBJZiB0aGlzIGZ1bmN0aW9uIGZhaWxzLCBjYWxsIHBzYV9mYWlsX2tleV9jcmVhdGlvbigpLgotICogU2VlIHRoZSBkb2N1bWVudGF0aW9uIG9mIHBzYV9zdGFydF9rZXlfY3JlYXRpb24oKSBmb3IgdGhlIGludGVuZGVkIHVzZQotICogb2YgdGhpcyBmdW5jdGlvbi4KLSAqCi0gKiBJZiB0aGUgZmluYWxpemF0aW9uIHN1Y2NlZWRzLCB0aGUgZnVuY3Rpb24gc2V0cyB0aGUga2V5IHNsb3QncyBzdGF0ZSB0bwotICogUFNBX1NMT1RfRlVMTCwgYW5kIHRoZSBrZXkgc2xvdCBjYW4gbm8gbG9uZ2VyIGJlIGFjY2Vzc2VkIGFzIHBhcnQgb2YgdGhlCi0gKiBrZXkgY3JlYXRpb24gcHJvY2Vzcy4KLSAqCi0gKiBccGFyYW1baW4sb3V0XSBzbG90ICBQb2ludGVyIHRvIHRoZSBzbG90IHdpdGgga2V5IG1hdGVyaWFsLgotICogXHBhcmFtW2luXSBkcml2ZXIgICAgVGhlIHNlY3VyZSBlbGVtZW50IGRyaXZlciBmb3IgdGhlIGtleSwKLSAqICAgICAgICAgICAgICAgICAgICAgIG9yIE5VTEwgZm9yIGEgdHJhbnNwYXJlbnQga2V5LgotICogXHBhcmFtW291dF0ga2V5ICAgICAgT24gc3VjY2VzcywgaWRlbnRpZmllciBvZiB0aGUga2V5LiBOb3RlIHRoYXQgdGhlCi0gKiAgICAgICAgICAgICAgICAgICAgICBrZXkgaWRlbnRpZmllciBpcyBhbHNvIHN0b3JlZCBpbiB0aGUga2V5IHNsb3QuCi0gKgotICogXHJldHZhbCAjUFNBX1NVQ0NFU1MKLSAqICAgICAgICAgVGhlIGtleSB3YXMgc3VjY2Vzc2Z1bGx5IGNyZWF0ZWQuCi0gKiBccmV0dmFsICNQU0FfRVJST1JfSU5TVUZGSUNJRU5UX01FTU9SWSBcZW1wdHlkZXNjcmlwdGlvbgotICogXHJldHZhbCAjUFNBX0VSUk9SX0lOU1VGRklDSUVOVF9TVE9SQUdFIFxlbXB0eWRlc2NyaXB0aW9uCi0gKiBccmV0dmFsICNQU0FfRVJST1JfQUxSRUFEWV9FWElTVFMgXGVtcHR5ZGVzY3JpcHRpb24KLSAqIFxyZXR2YWwgI1BTQV9FUlJPUl9EQVRBX0lOVkFMSUQgXGVtcHR5ZGVzY3JpcHRpb24KLSAqIFxyZXR2YWwgI1BTQV9FUlJPUl9EQVRBX0NPUlJVUFQgXGVtcHR5ZGVzY3JpcHRpb24KLSAqIFxyZXR2YWwgI1BTQV9FUlJPUl9TVE9SQUdFX0ZBSUxVUkUgXGVtcHR5ZGVzY3JpcHRpb24KLSAqCi0gKiBccmV0dXJuIElmIHRoaXMgZnVuY3Rpb24gZmFpbHMsIHRoZSBrZXkgc2xvdCBpcyBhbiBpbnZhbGlkIHN0YXRlLgotICogICAgICAgICBZb3UgbXVzdCBjYWxsIHBzYV9mYWlsX2tleV9jcmVhdGlvbigpIHRvIHdpcGUgYW5kIGZyZWUgdGhlIHNsb3QuCi0gKi8KLXN0YXRpYyBwc2Ffc3RhdHVzX3QgcHNhX2ZpbmlzaF9rZXlfY3JlYXRpb24oCi0gICAgcHNhX2tleV9zbG90X3QgKnNsb3QsCi0gICAgcHNhX3NlX2Rydl90YWJsZV9lbnRyeV90ICpkcml2ZXIsCi0gICAgbWJlZHRsc19zdmNfa2V5X2lkX3QgKmtleSkKLXsKLSAgICBwc2Ffc3RhdHVzX3Qgc3RhdHVzID0gUFNBX1NVQ0NFU1M7Ci0gICAgKHZvaWQpIHNsb3Q7Ci0gICAgKHZvaWQpIGRyaXZlcjsKLQotI2lmIGRlZmluZWQoTUJFRFRMU19USFJFQURJTkdfQykKLSAgICBQU0FfVEhSRUFESU5HX0NIS19SRVQobWJlZHRsc19tdXRleF9sb2NrKAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJm1iZWR0bHNfdGhyZWFkaW5nX2tleV9zbG90X211dGV4KSk7Ci0jZW5kaWYKLQotI2lmIGRlZmluZWQoTUJFRFRMU19QU0FfQ1JZUFRPX1NUT1JBR0VfQykKLSAgICBpZiAoIVBTQV9LRVlfTElGRVRJTUVfSVNfVk9MQVRJTEUoc2xvdC0+YXR0ci5saWZldGltZSkpIHsKLSNpZiBkZWZpbmVkKE1CRURUTFNfUFNBX0NSWVBUT19TRV9DKQotICAgICAgICBpZiAoZHJpdmVyICE9IE5VTEwpIHsKLSAgICAgICAgICAgIHBzYV9zZV9rZXlfZGF0YV9zdG9yYWdlX3QgZGF0YTsKLSAgICAgICAgICAgIHBzYV9rZXlfc2xvdF9udW1iZXJfdCBzbG90X251bWJlciA9Ci0gICAgICAgICAgICAgICAgcHNhX2tleV9zbG90X2dldF9zbG90X251bWJlcihzbG90KTsKLQotICAgICAgICAgICAgTUJFRFRMU19TVEFUSUNfQVNTRVJUKHNpemVvZihzbG90X251bWJlcikgPT0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplb2YoZGF0YS5zbG90X251bWJlciksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlNsb3QgbnVtYmVyIHNpemUgZG9lcyBub3QgbWF0Y2ggcHNhX3NlX2tleV9kYXRhX3N0b3JhZ2VfdCIpOwotCi0gICAgICAgICAgICBtZW1jcHkoJmRhdGEuc2xvdF9udW1iZXIsICZzbG90X251bWJlciwgc2l6ZW9mKHNsb3RfbnVtYmVyKSk7Ci0gICAgICAgICAgICBzdGF0dXMgPSBwc2Ffc2F2ZV9wZXJzaXN0ZW50X2tleSgmc2xvdC0+YXR0ciwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh1aW50OF90ICopICZkYXRhLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZW9mKGRhdGEpKTsKLSAgICAgICAgfSBlbHNlCi0jZW5kaWYgLyogTUJFRFRMU19QU0FfQ1JZUFRPX1NFX0MgKi8KLSAgICAgICAgewotICAgICAgICAgICAgLyogS2V5IG1hdGVyaWFsIGlzIHNhdmVkIGluIGV4cG9ydCByZXByZXNlbnRhdGlvbiBpbiB0aGUgc2xvdCwgc28KLSAgICAgICAgICAgICAqIGp1c3QgcGFzcyB0aGUgc2xvdCBidWZmZXIgZm9yIHN0b3JhZ2UuICovCi0gICAgICAgICAgICBzdGF0dXMgPSBwc2Ffc2F2ZV9wZXJzaXN0ZW50X2tleSgmc2xvdC0+YXR0ciwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNsb3QtPmtleS5kYXRhLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2xvdC0+a2V5LmJ5dGVzKTsKLSAgICAgICAgfQotICAgIH0KLSNlbmRpZiAvKiBkZWZpbmVkKE1CRURUTFNfUFNBX0NSWVBUT19TVE9SQUdFX0MpICovCi0KLSNpZiBkZWZpbmVkKE1CRURUTFNfUFNBX0NSWVBUT19TRV9DKQotICAgIC8qIEZpbmlzaCB0aGUgdHJhbnNhY3Rpb24gZm9yIGEga2V5IGNyZWF0aW9uLiBUaGlzIGRvZXMgbm90Ci0gICAgICogaGFwcGVuIHdoZW4gcmVnaXN0ZXJpbmcgYW4gZXhpc3Rpbmcga2V5LiBEZXRlY3QgdGhpcyBjYXNlCi0gICAgICogYnkgY2hlY2tpbmcgd2hldGhlciBhIHRyYW5zYWN0aW9uIGlzIGluIHByb2dyZXNzIChhY3R1YWwKLSAgICAgKiBjcmVhdGlvbiBvZiBhIHBlcnNpc3RlbnQga2V5IGluIGEgc2VjdXJlIGVsZW1lbnQgcmVxdWlyZXMgYSB0cmFuc2FjdGlvbiwKLSAgICAgKiBidXQgcmVnaXN0cmF0aW9uIG9yIHZvbGF0aWxlIGtleSBjcmVhdGlvbiBkb2Vzbid0IHVzZSBvbmUpLiAqLwotICAgIGlmIChkcml2ZXIgIT0gTlVMTCAmJgotICAgICAgICBwc2FfY3J5cHRvX3RyYW5zYWN0aW9uLnVua25vd24udHlwZSA9PSBQU0FfQ1JZUFRPX1RSQU5TQUNUSU9OX0NSRUFURV9LRVkpIHsKLSAgICAgICAgc3RhdHVzID0gcHNhX3NhdmVfc2VfcGVyc2lzdGVudF9kYXRhKGRyaXZlcik7Ci0gICAgICAgIGlmIChzdGF0dXMgIT0gUFNBX1NVQ0NFU1MpIHsKLSAgICAgICAgICAgIHBzYV9kZXN0cm95X3BlcnNpc3RlbnRfa2V5KHNsb3QtPmF0dHIuaWQpOwotCi0jaWYgZGVmaW5lZChNQkVEVExTX1RIUkVBRElOR19DKQotICAgICAgICAgICAgUFNBX1RIUkVBRElOR19DSEtfUkVUKG1iZWR0bHNfbXV0ZXhfdW5sb2NrKAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmbWJlZHRsc190aHJlYWRpbmdfa2V5X3Nsb3RfbXV0ZXgpKTsKLSNlbmRpZgotICAgICAgICAgICAgcmV0dXJuIHN0YXR1czsKLSAgICAgICAgfQotICAgICAgICBzdGF0dXMgPSBwc2FfY3J5cHRvX3N0b3BfdHJhbnNhY3Rpb24oKTsKLSAgICB9Ci0jZW5kaWYgLyogTUJFRFRMU19QU0FfQ1JZUFRPX1NFX0MgKi8KLQotICAgIGlmIChzdGF0dXMgPT0gUFNBX1NVQ0NFU1MpIHsKLSAgICAgICAgKmtleSA9IHNsb3QtPmF0dHIuaWQ7Ci0gICAgICAgIHN0YXR1cyA9IHBzYV9rZXlfc2xvdF9zdGF0ZV90cmFuc2l0aW9uKHNsb3QsIFBTQV9TTE9UX0ZJTExJTkcsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBTQV9TTE9UX0ZVTEwpOwotICAgICAgICBpZiAoc3RhdHVzICE9IFBTQV9TVUNDRVNTKSB7Ci0gICAgICAgICAgICAqa2V5ID0gTUJFRFRMU19TVkNfS0VZX0lEX0lOSVQ7Ci0gICAgICAgIH0KLSAgICB9Ci0KLSNpZiBkZWZpbmVkKE1CRURUTFNfVEhSRUFESU5HX0MpCi0gICAgUFNBX1RIUkVBRElOR19DSEtfUkVUKG1iZWR0bHNfbXV0ZXhfdW5sb2NrKAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJm1iZWR0bHNfdGhyZWFkaW5nX2tleV9zbG90X211dGV4KSk7Ci0jZW5kaWYKLSAgICByZXR1cm4gc3RhdHVzOwotfQotCi0vKiogQWJvcnQgdGhlIGNyZWF0aW9uIG9mIGEga2V5LgotICoKLSAqIFlvdSBtYXkgY2FsbCB0aGlzIGZ1bmN0aW9uIGFmdGVyIGNhbGxpbmcgcHNhX3N0YXJ0X2tleV9jcmVhdGlvbigpLAotICogb3IgYWZ0ZXIgcHNhX2ZpbmlzaF9rZXlfY3JlYXRpb24oKSBmYWlscy4gSW4gb3RoZXIgY2lyY3Vtc3RhbmNlcywgdGhpcwotICogZnVuY3Rpb24gbWF5IG5vdCBjbGVhbiB1cCBwZXJzaXN0ZW50IHN0b3JhZ2UuCi0gKiBTZWUgdGhlIGRvY3VtZW50YXRpb24gb2YgcHNhX3N0YXJ0X2tleV9jcmVhdGlvbigpIGZvciB0aGUgaW50ZW5kZWQgdXNlCi0gKiBvZiB0aGlzIGZ1bmN0aW9uLiBTZXRzIHRoZSBzbG90J3Mgc3RhdGUgdG8gUFNBX1NMT1RfRU1QVFkuCi0gKgotICogXHBhcmFtW2luLG91dF0gc2xvdCAgUG9pbnRlciB0byB0aGUgc2xvdCB3aXRoIGtleSBtYXRlcmlhbC4KLSAqIFxwYXJhbVtpbl0gZHJpdmVyICAgIFRoZSBzZWN1cmUgZWxlbWVudCBkcml2ZXIgZm9yIHRoZSBrZXksCi0gKiAgICAgICAgICAgICAgICAgICAgICBvciBOVUxMIGZvciBhIHRyYW5zcGFyZW50IGtleS4KLSAqLwotc3RhdGljIHZvaWQgcHNhX2ZhaWxfa2V5X2NyZWF0aW9uKHBzYV9rZXlfc2xvdF90ICpzbG90LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBzYV9zZV9kcnZfdGFibGVfZW50cnlfdCAqZHJpdmVyKQotewotICAgICh2b2lkKSBkcml2ZXI7Ci0KLSAgICBpZiAoc2xvdCA9PSBOVUxMKSB7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSNpZiBkZWZpbmVkKE1CRURUTFNfVEhSRUFESU5HX0MpCi0gICAgLyogSWYgdGhlIGxvY2sgb3BlcmF0aW9uIGZhaWxzIHdlIHN0aWxsIHdpcGUgdGhlIHNsb3QuCi0gICAgICogT3BlcmF0aW9ucyB3aWxsIG5vIGxvbmdlciB3b3JrIGFmdGVyIGEgZmFpbGVkIGxvY2ssCi0gICAgICogYnV0IHdlIHN0aWxsIG5lZWQgdG8gd2lwZSB0aGUgc2xvdCBvZiBjb25maWRlbnRpYWwgZGF0YS4gKi8KLSAgICBtYmVkdGxzX211dGV4X2xvY2soJm1iZWR0bHNfdGhyZWFkaW5nX2tleV9zbG90X211dGV4KTsKLSNlbmRpZgotCi0jaWYgZGVmaW5lZChNQkVEVExTX1BTQV9DUllQVE9fU0VfQykKLSAgICAvKiBUT0RPOiBJZiB0aGUga2V5IGhhcyBhbHJlYWR5IGJlZW4gY3JlYXRlZCBpbiB0aGUgc2VjdXJlCi0gICAgICogZWxlbWVudCwgYW5kIHRoZSBmYWlsdXJlIGhhcHBlbmVkIGxhdGVyICh3aGVuIHNhdmluZyBtZXRhZGF0YQotICAgICAqIHRvIGludGVybmFsIHN0b3JhZ2UpLCB3ZSBuZWVkIHRvIGRlc3Ryb3kgdGhlIGtleSBpbiB0aGUgc2VjdXJlCi0gICAgICogZWxlbWVudC4KLSAgICAgKiBodHRwczovL2dpdGh1Yi5jb20vQVJNbWJlZC9tYmVkLWNyeXB0by9pc3N1ZXMvMjE3Ci0gICAgICovCi0KLSAgICAvKiBBYm9ydCB0aGUgb25nb2luZyB0cmFuc2FjdGlvbiBpZiBhbnkgKHRoZXJlIG1heSBub3QgYmUgb25lIGlmCi0gICAgICogdGhlIGNyZWF0aW9uIHByb2Nlc3MgZmFpbGVkIGJlZm9yZSBzdGFydGluZyBvbmUsIG9yIGlmIHRoZQotICAgICAqIGtleSBjcmVhdGlvbiBpcyBhIHJlZ2lzdHJhdGlvbiBvZiBhIGtleSBpbiBhIHNlY3VyZSBlbGVtZW50KS4KLSAgICAgKiBFYXJsaWVyIGZ1bmN0aW9ucyBtdXN0IGFscmVhZHkgaGF2ZSBkb25lIHdoYXQgaXQgdGFrZXMgdG8gdW5kbyBhbnkKLSAgICAgKiBwYXJ0aWFsIGNyZWF0aW9uLiBBbGwgdGhhdCdzIGxlZnQgaXMgdG8gdXBkYXRlIHRoZSB0cmFuc2FjdGlvbiBkYXRhCi0gICAgICogaXRzZWxmLiAqLwotICAgICh2b2lkKSBwc2FfY3J5cHRvX3N0b3BfdHJhbnNhY3Rpb24oKTsKLSNlbmRpZiAvKiBNQkVEVExTX1BTQV9DUllQVE9fU0VfQyAqLwotCi0gICAgcHNhX3dpcGVfa2V5X3Nsb3Qoc2xvdCk7Ci0KLSNpZiBkZWZpbmVkKE1CRURUTFNfVEhSRUFESU5HX0MpCi0gICAgbWJlZHRsc19tdXRleF91bmxvY2soJm1iZWR0bHNfdGhyZWFkaW5nX2tleV9zbG90X211dGV4KTsKLSNlbmRpZgotfQotCi0vKiogVmFsaWRhdGUgb3B0aW9uYWwgYXR0cmlidXRlcyBkdXJpbmcga2V5IGNyZWF0aW9uLgotICoKLSAqIFNvbWUga2V5IGF0dHJpYnV0ZXMgYXJlIG9wdGlvbmFsIGR1cmluZyBrZXkgY3JlYXRpb24uIElmIHRoZXkgYXJlCi0gKiBzcGVjaWZpZWQgaW4gdGhlIGF0dHJpYnV0ZXMgc3RydWN0dXJlLCBjaGVjayB0aGF0IHRoZXkgYXJlIGNvbnNpc3RlbnQKLSAqIHdpdGggdGhlIGRhdGEgaW4gdGhlIHNsb3QuCi0gKgotICogVGhpcyBmdW5jdGlvbiBzaG91bGQgYmUgY2FsbGVkIG5lYXIgdGhlIGVuZCBvZiBrZXkgY3JlYXRpb24sIGFmdGVyCi0gKiB0aGUgc2xvdCBpbiBtZW1vcnkgaXMgZnVsbHkgcG9wdWxhdGVkIGJ1dCBiZWZvcmUgc2F2aW5nIHBlcnNpc3RlbnQgZGF0YS4KLSAqLwotc3RhdGljIHBzYV9zdGF0dXNfdCBwc2FfdmFsaWRhdGVfb3B0aW9uYWxfYXR0cmlidXRlcygKLSAgICBjb25zdCBwc2Ffa2V5X3Nsb3RfdCAqc2xvdCwKLSAgICBjb25zdCBwc2Ffa2V5X2F0dHJpYnV0ZXNfdCAqYXR0cmlidXRlcykKLXsKLSAgICBpZiAoYXR0cmlidXRlcy0+dHlwZSAhPSAwKSB7Ci0gICAgICAgIGlmIChhdHRyaWJ1dGVzLT50eXBlICE9IHNsb3QtPmF0dHIudHlwZSkgewotICAgICAgICAgICAgcmV0dXJuIFBTQV9FUlJPUl9JTlZBTElEX0FSR1VNRU5UOwotICAgICAgICB9Ci0gICAgfQotCi0gICAgaWYgKGF0dHJpYnV0ZXMtPmJpdHMgIT0gMCkgewotICAgICAgICBpZiAoYXR0cmlidXRlcy0+Yml0cyAhPSBzbG90LT5hdHRyLmJpdHMpIHsKLSAgICAgICAgICAgIHJldHVybiBQU0FfRVJST1JfSU5WQUxJRF9BUkdVTUVOVDsKLSAgICAgICAgfQotICAgIH0KLQotICAgIHJldHVybiBQU0FfU1VDQ0VTUzsKLX0KLQotcHNhX3N0YXR1c190IHBzYV9pbXBvcnRfa2V5KGNvbnN0IHBzYV9rZXlfYXR0cmlidXRlc190ICphdHRyaWJ1dGVzLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVpbnQ4X3QgKmRhdGFfZXh0ZXJuYWwsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IGRhdGFfbGVuZ3RoLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1iZWR0bHNfc3ZjX2tleV9pZF90ICprZXkpCi17Ci0gICAgcHNhX3N0YXR1c190IHN0YXR1czsKLSAgICBMT0NBTF9JTlBVVF9ERUNMQVJFKGRhdGFfZXh0ZXJuYWwsIGRhdGEpOwotICAgIHBzYV9rZXlfc2xvdF90ICpzbG90ID0gTlVMTDsKLSAgICBwc2Ffc2VfZHJ2X3RhYmxlX2VudHJ5X3QgKmRyaXZlciA9IE5VTEw7Ci0gICAgc2l6ZV90IGJpdHM7Ci0gICAgc2l6ZV90IHN0b3JhZ2Vfc2l6ZSA9IGRhdGFfbGVuZ3RoOwotCi0gICAgKmtleSA9IE1CRURUTFNfU1ZDX0tFWV9JRF9JTklUOwotCi0gICAgLyogUmVqZWN0IHplcm8tbGVuZ3RoIHN5bW1ldHJpYyBrZXlzIChpbmNsdWRpbmcgcmF3IGRhdGEga2V5IG9iamVjdHMpLgotICAgICAqIFRoaXMgYWxzbyByZWplY3RzIGFueSBrZXkgd2hpY2ggbWlnaHQgYmUgZW5jb2RlZCBhcyBhbiBlbXB0eSBzdHJpbmcsCi0gICAgICogd2hpY2ggaXMgbmV2ZXIgdmFsaWQuICovCi0gICAgaWYgKGRhdGFfbGVuZ3RoID09IDApIHsKLSAgICAgICAgcmV0dXJuIFBTQV9FUlJPUl9JTlZBTElEX0FSR1VNRU5UOwotICAgIH0KLQotICAgIC8qIEVuc3VyZSB0aGF0IHRoZSBieXRlcy10by1iaXRzIGNvbnZlcnNpb24gY2Fubm90IG92ZXJmbG93LiAqLwotICAgIGlmIChkYXRhX2xlbmd0aCA+IFNJWkVfTUFYIC8gOCkgewotICAgICAgICByZXR1cm4gUFNBX0VSUk9SX05PVF9TVVBQT1JURUQ7Ci0gICAgfQotCi0gICAgTE9DQUxfSU5QVVRfQUxMT0MoZGF0YV9leHRlcm5hbCwgZGF0YV9sZW5ndGgsIGRhdGEpOwotCi0gICAgc3RhdHVzID0gcHNhX3N0YXJ0X2tleV9jcmVhdGlvbihQU0FfS0VZX0NSRUFUSU9OX0lNUE9SVCwgYXR0cmlidXRlcywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZzbG90LCAmZHJpdmVyKTsKLSAgICBpZiAoc3RhdHVzICE9IFBTQV9TVUNDRVNTKSB7Ci0gICAgICAgIGdvdG8gZXhpdDsKLSAgICB9Ci0KLSAgICAvKiBJbiB0aGUgY2FzZSBvZiBhIHRyYW5zcGFyZW50IGtleSBvciBhbiBvcGFxdWUga2V5IHN0b3JlZCBpbiBsb2NhbAotICAgICAqIHN0b3JhZ2UgKCB0aHVzIG5vdCBpbiB0aGUgY2FzZSBvZiBpbXBvcnRpbmcgYSBrZXkgaW4gYSBzZWN1cmUgZWxlbWVudAotICAgICAqIHdpdGggc3RvcmFnZSAoIE1CRURUTFNfUFNBX0NSWVBUT19TRV9DICkgKSx3ZSBoYXZlIHRvIGFsbG9jYXRlIGEKLSAgICAgKiBidWZmZXIgdG8gaG9sZCB0aGUgaW1wb3J0ZWQga2V5IG1hdGVyaWFsLiAqLwotICAgIGlmIChzbG90LT5rZXkuZGF0YSA9PSBOVUxMKSB7Ci0gICAgICAgIGlmIChwc2Ffa2V5X2xpZmV0aW1lX2lzX2V4dGVybmFsKGF0dHJpYnV0ZXMtPmxpZmV0aW1lKSkgewotICAgICAgICAgICAgc3RhdHVzID0gcHNhX2RyaXZlcl93cmFwcGVyX2dldF9rZXlfYnVmZmVyX3NpemVfZnJvbV9rZXlfZGF0YSgKLSAgICAgICAgICAgICAgICBhdHRyaWJ1dGVzLCBkYXRhLCBkYXRhX2xlbmd0aCwgJnN0b3JhZ2Vfc2l6ZSk7Ci0gICAgICAgICAgICBpZiAoc3RhdHVzICE9IFBTQV9TVUNDRVNTKSB7Ci0gICAgICAgICAgICAgICAgZ290byBleGl0OwotICAgICAgICAgICAgfQotICAgICAgICB9Ci0gICAgICAgIHN0YXR1cyA9IHBzYV9hbGxvY2F0ZV9idWZmZXJfdG9fc2xvdChzbG90LCBzdG9yYWdlX3NpemUpOwotICAgICAgICBpZiAoc3RhdHVzICE9IFBTQV9TVUNDRVNTKSB7Ci0gICAgICAgICAgICBnb3RvIGV4aXQ7Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICBiaXRzID0gc2xvdC0+YXR0ci5iaXRzOwotICAgIHN0YXR1cyA9IHBzYV9kcml2ZXJfd3JhcHBlcl9pbXBvcnRfa2V5KGF0dHJpYnV0ZXMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YSwgZGF0YV9sZW5ndGgsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2xvdC0+a2V5LmRhdGEsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2xvdC0+a2V5LmJ5dGVzLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZzbG90LT5rZXkuYnl0ZXMsICZiaXRzKTsKLSAgICBpZiAoc3RhdHVzICE9IFBTQV9TVUNDRVNTKSB7Ci0gICAgICAgIGdvdG8gZXhpdDsKLSAgICB9Ci0KLSAgICBpZiAoc2xvdC0+YXR0ci5iaXRzID09IDApIHsKLSAgICAgICAgc2xvdC0+YXR0ci5iaXRzID0gKHBzYV9rZXlfYml0c190KSBiaXRzOwotICAgIH0gZWxzZSBpZiAoYml0cyAhPSBzbG90LT5hdHRyLmJpdHMpIHsKLSAgICAgICAgc3RhdHVzID0gUFNBX0VSUk9SX0lOVkFMSURfQVJHVU1FTlQ7Ci0gICAgICAgIGdvdG8gZXhpdDsKLSAgICB9Ci0KLSAgICAvKiBFbmZvcmNlIGEgc2l6ZSBsaW1pdCwgYW5kIGluIHBhcnRpY3VsYXIgZW5zdXJlIHRoYXQgdGhlIGJpdAotICAgICAqIHNpemUgZml0cyBpbiBpdHMgcmVwcmVzZW50YXRpb24gdHlwZS4qLwotICAgIGlmIChiaXRzID4gUFNBX01BWF9LRVlfQklUUykgewotICAgICAgICBzdGF0dXMgPSBQU0FfRVJST1JfTk9UX1NVUFBPUlRFRDsKLSAgICAgICAgZ290byBleGl0OwotICAgIH0KLSAgICBzdGF0dXMgPSBwc2FfdmFsaWRhdGVfb3B0aW9uYWxfYXR0cmlidXRlcyhzbG90LCBhdHRyaWJ1dGVzKTsKLSAgICBpZiAoc3RhdHVzICE9IFBTQV9TVUNDRVNTKSB7Ci0gICAgICAgIGdvdG8gZXhpdDsKLSAgICB9Ci0KLSAgICBzdGF0dXMgPSBwc2FfZmluaXNoX2tleV9jcmVhdGlvbihzbG90LCBkcml2ZXIsIGtleSk7Ci1leGl0OgotICAgIExPQ0FMX0lOUFVUX0ZSRUUoZGF0YV9leHRlcm5hbCwgZGF0YSk7Ci0gICAgaWYgKHN0YXR1cyAhPSBQU0FfU1VDQ0VTUykgewotICAgICAgICBwc2FfZmFpbF9rZXlfY3JlYXRpb24oc2xvdCwgZHJpdmVyKTsKLSAgICB9Ci0KLSAgICByZXR1cm4gc3RhdHVzOwotfQotCi0jaWYgZGVmaW5lZChNQkVEVExTX1BTQV9DUllQVE9fU0VfQykKLXBzYV9zdGF0dXNfdCBtYmVkdGxzX3BzYV9yZWdpc3Rlcl9zZV9rZXkoCi0gICAgY29uc3QgcHNhX2tleV9hdHRyaWJ1dGVzX3QgKmF0dHJpYnV0ZXMpCi17Ci0gICAgcHNhX3N0YXR1c190IHN0YXR1czsKLSAgICBwc2Ffa2V5X3Nsb3RfdCAqc2xvdCA9IE5VTEw7Ci0gICAgcHNhX3NlX2Rydl90YWJsZV9lbnRyeV90ICpkcml2ZXIgPSBOVUxMOwotICAgIG1iZWR0bHNfc3ZjX2tleV9pZF90IGtleSA9IE1CRURUTFNfU1ZDX0tFWV9JRF9JTklUOwotCi0gICAgLyogTGVhdmluZyBhdHRyaWJ1dGVzIHVuc3BlY2lmaWVkIGlzIG5vdCBjdXJyZW50bHkgc3VwcG9ydGVkLgotICAgICAqIEl0IGNvdWxkIG1ha2Ugc2Vuc2UgdG8gcXVlcnkgdGhlIGtleSB0eXBlIGFuZCBzaXplIGZyb20gdGhlCi0gICAgICogc2VjdXJlIGVsZW1lbnQsIGJ1dCBub3QgYWxsIHNlY3VyZSBlbGVtZW50cyBzdXBwb3J0IHRoaXMKLSAgICAgKiBhbmQgdGhlIGRyaXZlciBIQUwgZG9lc24ndCBjdXJyZW50bHkgc3VwcG9ydCBpdC4gKi8KLSAgICBpZiAocHNhX2dldF9rZXlfdHlwZShhdHRyaWJ1dGVzKSA9PSBQU0FfS0VZX1RZUEVfTk9ORSkgewotICAgICAgICByZXR1cm4gUFNBX0VSUk9SX05PVF9TVVBQT1JURUQ7Ci0gICAgfQotICAgIGlmIChwc2FfZ2V0X2tleV9iaXRzKGF0dHJpYnV0ZXMpID09IDApIHsKLSAgICAgICAgcmV0dXJuIFBTQV9FUlJPUl9OT1RfU1VQUE9SVEVEOwotICAgIH0KLQotICAgIHN0YXR1cyA9IHBzYV9zdGFydF9rZXlfY3JlYXRpb24oUFNBX0tFWV9DUkVBVElPTl9SRUdJU1RFUiwgYXR0cmlidXRlcywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZzbG90LCAmZHJpdmVyKTsKLSAgICBpZiAoc3RhdHVzICE9IFBTQV9TVUNDRVNTKSB7Ci0gICAgICAgIGdvdG8gZXhpdDsKLSAgICB9Ci0KLSAgICBzdGF0dXMgPSBwc2FfZmluaXNoX2tleV9jcmVhdGlvbihzbG90LCBkcml2ZXIsICZrZXkpOwotCi1leGl0OgotICAgIGlmIChzdGF0dXMgIT0gUFNBX1NVQ0NFU1MpIHsKLSAgICAgICAgcHNhX2ZhaWxfa2V5X2NyZWF0aW9uKHNsb3QsIGRyaXZlcik7Ci0gICAgfQotCi0gICAgLyogUmVnaXN0cmF0aW9uIGRvZXNuJ3Qga2VlcCB0aGUga2V5IGluIFJBTS4gKi8KLSAgICBwc2FfY2xvc2Vfa2V5KGtleSk7Ci0gICAgcmV0dXJuIHN0YXR1czsKLX0KLSNlbmRpZiAvKiBNQkVEVExTX1BTQV9DUllQVE9fU0VfQyAqLwotCi1wc2Ffc3RhdHVzX3QgcHNhX2NvcHlfa2V5KG1iZWR0bHNfc3ZjX2tleV9pZF90IHNvdXJjZV9rZXksCi0gICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHBzYV9rZXlfYXR0cmlidXRlc190ICpzcGVjaWZpZWRfYXR0cmlidXRlcywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgbWJlZHRsc19zdmNfa2V5X2lkX3QgKnRhcmdldF9rZXkpCi17Ci0gICAgcHNhX3N0YXR1c190IHN0YXR1cyA9IFBTQV9FUlJPUl9DT1JSVVBUSU9OX0RFVEVDVEVEOwotICAgIHBzYV9zdGF0dXNfdCB1bmxvY2tfc3RhdHVzID0gUFNBX0VSUk9SX0NPUlJVUFRJT05fREVURUNURUQ7Ci0gICAgcHNhX2tleV9zbG90X3QgKnNvdXJjZV9zbG90ID0gTlVMTDsKLSAgICBwc2Ffa2V5X3Nsb3RfdCAqdGFyZ2V0X3Nsb3QgPSBOVUxMOwotICAgIHBzYV9rZXlfYXR0cmlidXRlc190IGFjdHVhbF9hdHRyaWJ1dGVzID0gKnNwZWNpZmllZF9hdHRyaWJ1dGVzOwotICAgIHBzYV9zZV9kcnZfdGFibGVfZW50cnlfdCAqZHJpdmVyID0gTlVMTDsKLSAgICBzaXplX3Qgc3RvcmFnZV9zaXplID0gMDsKLQotICAgICp0YXJnZXRfa2V5ID0gTUJFRFRMU19TVkNfS0VZX0lEX0lOSVQ7Ci0KLSAgICBzdGF0dXMgPSBwc2FfZ2V0X2FuZF9sb2NrX2tleV9zbG90X3dpdGhfcG9saWN5KAotICAgICAgICBzb3VyY2Vfa2V5LCAmc291cmNlX3Nsb3QsIFBTQV9LRVlfVVNBR0VfQ09QWSwgMCk7Ci0gICAgaWYgKHN0YXR1cyAhPSBQU0FfU1VDQ0VTUykgewotICAgICAgICBnb3RvIGV4aXQ7Ci0gICAgfQotCi0gICAgc3RhdHVzID0gcHNhX3ZhbGlkYXRlX29wdGlvbmFsX2F0dHJpYnV0ZXMoc291cmNlX3Nsb3QsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3BlY2lmaWVkX2F0dHJpYnV0ZXMpOwotICAgIGlmIChzdGF0dXMgIT0gUFNBX1NVQ0NFU1MpIHsKLSAgICAgICAgZ290byBleGl0OwotICAgIH0KLQotICAgIC8qIFRoZSB0YXJnZXQga2V5IHR5cGUgYW5kIG51bWJlciBvZiBiaXRzIGhhdmUgYmVlbiB2YWxpZGF0ZWQgYnkKLSAgICAgKiBwc2FfdmFsaWRhdGVfb3B0aW9uYWxfYXR0cmlidXRlcygpIHRvIGJlIGVpdGhlciBlcXVhbCB0byB6ZXJvIG9yCi0gICAgICogZXF1YWwgdG8gdGhlIG9uZXMgb2YgdGhlIHNvdXJjZSBrZXkuIFNvIGl0IGlzIHNhZmUgdG8gaW5oZXJpdAotICAgICAqIHRoZW0gZnJvbSB0aGUgc291cmNlIGtleSBub3cuIgotICAgICAqICovCi0gICAgYWN0dWFsX2F0dHJpYnV0ZXMuYml0cyA9IHNvdXJjZV9zbG90LT5hdHRyLmJpdHM7Ci0gICAgYWN0dWFsX2F0dHJpYnV0ZXMudHlwZSA9IHNvdXJjZV9zbG90LT5hdHRyLnR5cGU7Ci0KLQotICAgIHN0YXR1cyA9IHBzYV9yZXN0cmljdF9rZXlfcG9saWN5KHNvdXJjZV9zbG90LT5hdHRyLnR5cGUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJmFjdHVhbF9hdHRyaWJ1dGVzLnBvbGljeSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmc291cmNlX3Nsb3QtPmF0dHIucG9saWN5KTsKLSAgICBpZiAoc3RhdHVzICE9IFBTQV9TVUNDRVNTKSB7Ci0gICAgICAgIGdvdG8gZXhpdDsKLSAgICB9Ci0KLSAgICBzdGF0dXMgPSBwc2Ffc3RhcnRfa2V5X2NyZWF0aW9uKFBTQV9LRVlfQ1JFQVRJT05fQ09QWSwgJmFjdHVhbF9hdHRyaWJ1dGVzLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJnRhcmdldF9zbG90LCAmZHJpdmVyKTsKLSAgICBpZiAoc3RhdHVzICE9IFBTQV9TVUNDRVNTKSB7Ci0gICAgICAgIGdvdG8gZXhpdDsKLSAgICB9Ci0gICAgaWYgKFBTQV9LRVlfTElGRVRJTUVfR0VUX0xPQ0FUSU9OKHRhcmdldF9zbG90LT5hdHRyLmxpZmV0aW1lKSAhPQotICAgICAgICBQU0FfS0VZX0xJRkVUSU1FX0dFVF9MT0NBVElPTihzb3VyY2Vfc2xvdC0+YXR0ci5saWZldGltZSkpIHsKLSAgICAgICAgLyoKLSAgICAgICAgICogSWYgdGhlIHNvdXJjZSBhbmQgdGFyZ2V0IGtleXMgYXJlIHN0b3JlZCBpbiBkaWZmZXJlbnQgbG9jYXRpb25zLAotICAgICAgICAgKiB0aGUgc291cmNlIGtleSB3b3VsZCBuZWVkIHRvIGJlIGV4cG9ydGVkIGFzIHBsYWludGV4dCBhbmQgcmUtaW1wb3J0ZWQKLSAgICAgICAgICogaW4gdGhlIG90aGVyIGxvY2F0aW9uLiBUaGlzIGhhcyBzZWN1cml0eSBpbXBsaWNhdGlvbnMgd2hpY2ggaGF2ZSBub3QKLSAgICAgICAgICogYmVlbiBmdWxseSBtYXBwZWQuIEZvciBub3csIHRoaXMgY2FuIGJlIGFjaGlldmVkIHRocm91Z2gKLSAgICAgICAgICogYXBwcm9wcmlhdGUgQVBJIGludm9jYXRpb25zIGZyb20gdGhlIGFwcGxpY2F0aW9uLCBpZiBuZWVkZWQuCi0gICAgICAgICAqICovCi0gICAgICAgIHN0YXR1cyA9IFBTQV9FUlJPUl9OT1RfU1VQUE9SVEVEOwotICAgICAgICBnb3RvIGV4aXQ7Ci0gICAgfQotICAgIC8qCi0gICAgICogV2hlbiB0aGUgc291cmNlIGFuZCB0YXJnZXQga2V5cyBhcmUgd2l0aGluIHRoZSBzYW1lIGxvY2F0aW9uLAotICAgICAqIC0gRm9yIHRyYW5zcGFyZW50IGtleXMgaXQgaXMgYSBibGluZCBjb3B5IHdpdGhvdXQgYW55IGRyaXZlciBpbnZvY2F0aW9uLAotICAgICAqIC0gRm9yIG9wYXF1ZSBrZXlzIHRoaXMgdHJhbnNsYXRlcyB0byBhbiBpbnZvY2F0aW9uIG9mIHRoZSBkcml2ZXJzJwotICAgICAqICAgY29weV9rZXkgZW50cnkgcG9pbnQgdGhyb3VnaCB0aGUgZGlzcGF0Y2ggbGF5ZXIuCi0gICAgICogKi8KLSAgICBpZiAocHNhX2tleV9saWZldGltZV9pc19leHRlcm5hbChhY3R1YWxfYXR0cmlidXRlcy5saWZldGltZSkpIHsKLSAgICAgICAgc3RhdHVzID0gcHNhX2RyaXZlcl93cmFwcGVyX2dldF9rZXlfYnVmZmVyX3NpemUoJmFjdHVhbF9hdHRyaWJ1dGVzLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmc3RvcmFnZV9zaXplKTsKLSAgICAgICAgaWYgKHN0YXR1cyAhPSBQU0FfU1VDQ0VTUykgewotICAgICAgICAgICAgZ290byBleGl0OwotICAgICAgICB9Ci0KLSAgICAgICAgc3RhdHVzID0gcHNhX2FsbG9jYXRlX2J1ZmZlcl90b19zbG90KHRhcmdldF9zbG90LCBzdG9yYWdlX3NpemUpOwotICAgICAgICBpZiAoc3RhdHVzICE9IFBTQV9TVUNDRVNTKSB7Ci0gICAgICAgICAgICBnb3RvIGV4aXQ7Ci0gICAgICAgIH0KLQotICAgICAgICBzdGF0dXMgPSBwc2FfZHJpdmVyX3dyYXBwZXJfY29weV9rZXkoJmFjdHVhbF9hdHRyaWJ1dGVzLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc291cmNlX3Nsb3QtPmtleS5kYXRhLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc291cmNlX3Nsb3QtPmtleS5ieXRlcywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhcmdldF9zbG90LT5rZXkuZGF0YSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhcmdldF9zbG90LT5rZXkuYnl0ZXMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmdGFyZ2V0X3Nsb3QtPmtleS5ieXRlcyk7Ci0gICAgICAgIGlmIChzdGF0dXMgIT0gUFNBX1NVQ0NFU1MpIHsKLSAgICAgICAgICAgIGdvdG8gZXhpdDsKLSAgICAgICAgfQotICAgIH0gZWxzZSB7Ci0gICAgICAgIHN0YXR1cyA9IHBzYV9jb3B5X2tleV9tYXRlcmlhbF9pbnRvX3Nsb3QodGFyZ2V0X3Nsb3QsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc291cmNlX3Nsb3QtPmtleS5kYXRhLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNvdXJjZV9zbG90LT5rZXkuYnl0ZXMpOwotICAgICAgICBpZiAoc3RhdHVzICE9IFBTQV9TVUNDRVNTKSB7Ci0gICAgICAgICAgICBnb3RvIGV4aXQ7Ci0gICAgICAgIH0KLSAgICB9Ci0gICAgc3RhdHVzID0gcHNhX2ZpbmlzaF9rZXlfY3JlYXRpb24odGFyZ2V0X3Nsb3QsIGRyaXZlciwgdGFyZ2V0X2tleSk7Ci1leGl0OgotICAgIGlmIChzdGF0dXMgIT0gUFNBX1NVQ0NFU1MpIHsKLSAgICAgICAgcHNhX2ZhaWxfa2V5X2NyZWF0aW9uKHRhcmdldF9zbG90LCBkcml2ZXIpOwotICAgIH0KLQotICAgIHVubG9ja19zdGF0dXMgPSBwc2FfdW5yZWdpc3Rlcl9yZWFkX3VuZGVyX211dGV4KHNvdXJjZV9zbG90KTsKLQotICAgIHJldHVybiAoc3RhdHVzID09IFBTQV9TVUNDRVNTKSA/IHVubG9ja19zdGF0dXMgOiBzdGF0dXM7Ci19Ci0KLQotCi0vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KLS8qIE1lc3NhZ2UgZGlnZXN0cyAqLwotLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCi0KLXBzYV9zdGF0dXNfdCBwc2FfaGFzaF9hYm9ydChwc2FfaGFzaF9vcGVyYXRpb25fdCAqb3BlcmF0aW9uKQotewotICAgIC8qIEFib3J0aW5nIGEgbm9uLWFjdGl2ZSBvcGVyYXRpb24gaXMgYWxsb3dlZCAqLwotICAgIGlmIChvcGVyYXRpb24tPmlkID09IDApIHsKLSAgICAgICAgcmV0dXJuIFBTQV9TVUNDRVNTOwotICAgIH0KLQotICAgIHBzYV9zdGF0dXNfdCBzdGF0dXMgPSBwc2FfZHJpdmVyX3dyYXBwZXJfaGFzaF9hYm9ydChvcGVyYXRpb24pOwotICAgIG9wZXJhdGlvbi0+aWQgPSAwOwotCi0gICAgcmV0dXJuIHN0YXR1czsKLX0KLQotcHNhX3N0YXR1c190IHBzYV9oYXNoX3NldHVwKHBzYV9oYXNoX29wZXJhdGlvbl90ICpvcGVyYXRpb24sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgcHNhX2FsZ29yaXRobV90IGFsZykKLXsKLSAgICBwc2Ffc3RhdHVzX3Qgc3RhdHVzID0gUFNBX0VSUk9SX0NPUlJVUFRJT05fREVURUNURUQ7Ci0KLSAgICAvKiBBIGNvbnRleHQgbXVzdCBiZSBmcmVzaGx5IGluaXRpYWxpemVkIGJlZm9yZSBpdCBjYW4gYmUgc2V0IHVwLiAqLwotICAgIGlmIChvcGVyYXRpb24tPmlkICE9IDApIHsKLSAgICAgICAgc3RhdHVzID0gUFNBX0VSUk9SX0JBRF9TVEFURTsKLSAgICAgICAgZ290byBleGl0OwotICAgIH0KLQotICAgIGlmICghUFNBX0FMR19JU19IQVNIKGFsZykpIHsKLSAgICAgICAgc3RhdHVzID0gUFNBX0VSUk9SX0lOVkFMSURfQVJHVU1FTlQ7Ci0gICAgICAgIGdvdG8gZXhpdDsKLSAgICB9Ci0KLSAgICAvKiBFbnN1cmUgYWxsIG9mIHRoZSBjb250ZXh0IGlzIHplcm9pemVkLCBzaW5jZSBQU0FfSEFTSF9PUEVSQVRJT05fSU5JVCBvbmx5Ci0gICAgICogZGlyZWN0bHkgemVyb2VzIHRoZSBpbnQtc2l6ZWQgZHVtbXkgbWVtYmVyIG9mIHRoZSBjb250ZXh0IHVuaW9uLiAqLwotICAgIG1lbXNldCgmb3BlcmF0aW9uLT5jdHgsIDAsIHNpemVvZihvcGVyYXRpb24tPmN0eCkpOwotCi0gICAgc3RhdHVzID0gcHNhX2RyaXZlcl93cmFwcGVyX2hhc2hfc2V0dXAob3BlcmF0aW9uLCBhbGcpOwotCi1leGl0OgotICAgIGlmIChzdGF0dXMgIT0gUFNBX1NVQ0NFU1MpIHsKLSAgICAgICAgcHNhX2hhc2hfYWJvcnQob3BlcmF0aW9uKTsKLSAgICB9Ci0KLSAgICByZXR1cm4gc3RhdHVzOwotfQotCi1wc2Ffc3RhdHVzX3QgcHNhX2hhc2hfdXBkYXRlKHBzYV9oYXNoX29wZXJhdGlvbl90ICpvcGVyYXRpb24sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVpbnQ4X3QgKmlucHV0X2V4dGVybmFsLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgaW5wdXRfbGVuZ3RoKQotewotICAgIHBzYV9zdGF0dXNfdCBzdGF0dXMgPSBQU0FfRVJST1JfQ09SUlVQVElPTl9ERVRFQ1RFRDsKLSAgICBMT0NBTF9JTlBVVF9ERUNMQVJFKGlucHV0X2V4dGVybmFsLCBpbnB1dCk7Ci0KLSAgICBpZiAob3BlcmF0aW9uLT5pZCA9PSAwKSB7Ci0gICAgICAgIHN0YXR1cyA9IFBTQV9FUlJPUl9CQURfU1RBVEU7Ci0gICAgICAgIGdvdG8gZXhpdDsKLSAgICB9Ci0KLSAgICAvKiBEb24ndCByZXF1aXJlIGhhc2ggaW1wbGVtZW50YXRpb25zIHRvIGJlaGF2ZSBjb3JyZWN0bHkgb24gYQotICAgICAqIHplcm8tbGVuZ3RoIGlucHV0LCB3aGljaCBtYXkgaGF2ZSBhbiBpbnZhbGlkIHBvaW50ZXIuICovCi0gICAgaWYgKGlucHV0X2xlbmd0aCA9PSAwKSB7Ci0gICAgICAgIHJldHVybiBQU0FfU1VDQ0VTUzsKLSAgICB9Ci0KLSAgICBMT0NBTF9JTlBVVF9BTExPQyhpbnB1dF9leHRlcm5hbCwgaW5wdXRfbGVuZ3RoLCBpbnB1dCk7Ci0gICAgc3RhdHVzID0gcHNhX2RyaXZlcl93cmFwcGVyX2hhc2hfdXBkYXRlKG9wZXJhdGlvbiwgaW5wdXQsIGlucHV0X2xlbmd0aCk7Ci0KLWV4aXQ6Ci0gICAgaWYgKHN0YXR1cyAhPSBQU0FfU1VDQ0VTUykgewotICAgICAgICBwc2FfaGFzaF9hYm9ydChvcGVyYXRpb24pOwotICAgIH0KLQotICAgIExPQ0FMX0lOUFVUX0ZSRUUoaW5wdXRfZXh0ZXJuYWwsIGlucHV0KTsKLSAgICByZXR1cm4gc3RhdHVzOwotfQotCi1zdGF0aWMgcHNhX3N0YXR1c190IHBzYV9oYXNoX2ZpbmlzaF9pbnRlcm5hbChwc2FfaGFzaF9vcGVyYXRpb25fdCAqb3BlcmF0aW9uLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDhfdCAqaGFzaCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBoYXNoX3NpemUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgKmhhc2hfbGVuZ3RoKQotewotICAgIHBzYV9zdGF0dXNfdCBzdGF0dXMgPSBQU0FfRVJST1JfQ09SUlVQVElPTl9ERVRFQ1RFRDsKLQotICAgICpoYXNoX2xlbmd0aCA9IDA7Ci0gICAgaWYgKG9wZXJhdGlvbi0+aWQgPT0gMCkgewotICAgICAgICByZXR1cm4gUFNBX0VSUk9SX0JBRF9TVEFURTsKLSAgICB9Ci0KLSAgICBzdGF0dXMgPSBwc2FfZHJpdmVyX3dyYXBwZXJfaGFzaF9maW5pc2goCi0gICAgICAgIG9wZXJhdGlvbiwgaGFzaCwgaGFzaF9zaXplLCBoYXNoX2xlbmd0aCk7Ci0gICAgcHNhX2hhc2hfYWJvcnQob3BlcmF0aW9uKTsKLQotICAgIHJldHVybiBzdGF0dXM7Ci19Ci0KLXBzYV9zdGF0dXNfdCBwc2FfaGFzaF9maW5pc2gocHNhX2hhc2hfb3BlcmF0aW9uX3QgKm9wZXJhdGlvbiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDhfdCAqaGFzaF9leHRlcm5hbCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IGhhc2hfc2l6ZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90ICpoYXNoX2xlbmd0aCkKLXsKLSAgICBwc2Ffc3RhdHVzX3Qgc3RhdHVzID0gUFNBX0VSUk9SX0NPUlJVUFRJT05fREVURUNURUQ7Ci0gICAgTE9DQUxfT1VUUFVUX0RFQ0xBUkUoaGFzaF9leHRlcm5hbCwgaGFzaCk7Ci0KLSAgICBMT0NBTF9PVVRQVVRfQUxMT0MoaGFzaF9leHRlcm5hbCwgaGFzaF9zaXplLCBoYXNoKTsKLSAgICBzdGF0dXMgPSBwc2FfaGFzaF9maW5pc2hfaW50ZXJuYWwob3BlcmF0aW9uLCBoYXNoLCBoYXNoX3NpemUsIGhhc2hfbGVuZ3RoKTsKLQotI2lmICFkZWZpbmVkKE1CRURUTFNfUFNBX0FTU1VNRV9FWENMVVNJVkVfQlVGRkVSUykKLWV4aXQ6Ci0jZW5kaWYKLSAgICBMT0NBTF9PVVRQVVRfRlJFRShoYXNoX2V4dGVybmFsLCBoYXNoKTsKLSAgICByZXR1cm4gc3RhdHVzOwotfQotCi1wc2Ffc3RhdHVzX3QgcHNhX2hhc2hfdmVyaWZ5KHBzYV9oYXNoX29wZXJhdGlvbl90ICpvcGVyYXRpb24sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVpbnQ4X3QgKmhhc2hfZXh0ZXJuYWwsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBoYXNoX2xlbmd0aCkKLXsKLSAgICB1aW50OF90IGFjdHVhbF9oYXNoW1BTQV9IQVNIX01BWF9TSVpFXTsKLSAgICBzaXplX3QgYWN0dWFsX2hhc2hfbGVuZ3RoOwotICAgIHBzYV9zdGF0dXNfdCBzdGF0dXMgPSBQU0FfRVJST1JfQ09SUlVQVElPTl9ERVRFQ1RFRDsKLSAgICBMT0NBTF9JTlBVVF9ERUNMQVJFKGhhc2hfZXh0ZXJuYWwsIGhhc2gpOwotCi0gICAgc3RhdHVzID0gcHNhX2hhc2hfZmluaXNoX2ludGVybmFsKAotICAgICAgICBvcGVyYXRpb24sCi0gICAgICAgIGFjdHVhbF9oYXNoLCBzaXplb2YoYWN0dWFsX2hhc2gpLAotICAgICAgICAmYWN0dWFsX2hhc2hfbGVuZ3RoKTsKLQotICAgIGlmIChzdGF0dXMgIT0gUFNBX1NVQ0NFU1MpIHsKLSAgICAgICAgZ290byBleGl0OwotICAgIH0KLQotICAgIGlmIChhY3R1YWxfaGFzaF9sZW5ndGggIT0gaGFzaF9sZW5ndGgpIHsKLSAgICAgICAgc3RhdHVzID0gUFNBX0VSUk9SX0lOVkFMSURfU0lHTkFUVVJFOwotICAgICAgICBnb3RvIGV4aXQ7Ci0gICAgfQotCi0gICAgTE9DQUxfSU5QVVRfQUxMT0MoaGFzaF9leHRlcm5hbCwgaGFzaF9sZW5ndGgsIGhhc2gpOwotICAgIGlmIChtYmVkdGxzX2N0X21lbWNtcChoYXNoLCBhY3R1YWxfaGFzaCwgYWN0dWFsX2hhc2hfbGVuZ3RoKSAhPSAwKSB7Ci0gICAgICAgIHN0YXR1cyA9IFBTQV9FUlJPUl9JTlZBTElEX1NJR05BVFVSRTsKLSAgICB9Ci0KLWV4aXQ6Ci0gICAgbWJlZHRsc19wbGF0Zm9ybV96ZXJvaXplKGFjdHVhbF9oYXNoLCBzaXplb2YoYWN0dWFsX2hhc2gpKTsKLSAgICBpZiAoc3RhdHVzICE9IFBTQV9TVUNDRVNTKSB7Ci0gICAgICAgIHBzYV9oYXNoX2Fib3J0KG9wZXJhdGlvbik7Ci0gICAgfQotICAgIExPQ0FMX0lOUFVUX0ZSRUUoaGFzaF9leHRlcm5hbCwgaGFzaCk7Ci0gICAgcmV0dXJuIHN0YXR1czsKLX0KLQotcHNhX3N0YXR1c190IHBzYV9oYXNoX2NvbXB1dGUocHNhX2FsZ29yaXRobV90IGFsZywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVpbnQ4X3QgKmlucHV0X2V4dGVybmFsLCBzaXplX3QgaW5wdXRfbGVuZ3RoLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDhfdCAqaGFzaF9leHRlcm5hbCwgc2l6ZV90IGhhc2hfc2l6ZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCAqaGFzaF9sZW5ndGgpCi17Ci0gICAgcHNhX3N0YXR1c190IHN0YXR1cyA9IFBTQV9FUlJPUl9DT1JSVVBUSU9OX0RFVEVDVEVEOwotICAgIExPQ0FMX0lOUFVUX0RFQ0xBUkUoaW5wdXRfZXh0ZXJuYWwsIGlucHV0KTsKLSAgICBMT0NBTF9PVVRQVVRfREVDTEFSRShoYXNoX2V4dGVybmFsLCBoYXNoKTsKLQotICAgICpoYXNoX2xlbmd0aCA9IDA7Ci0gICAgaWYgKCFQU0FfQUxHX0lTX0hBU0goYWxnKSkgewotICAgICAgICByZXR1cm4gUFNBX0VSUk9SX0lOVkFMSURfQVJHVU1FTlQ7Ci0gICAgfQotCi0gICAgTE9DQUxfSU5QVVRfQUxMT0MoaW5wdXRfZXh0ZXJuYWwsIGlucHV0X2xlbmd0aCwgaW5wdXQpOwotICAgIExPQ0FMX09VVFBVVF9BTExPQyhoYXNoX2V4dGVybmFsLCBoYXNoX3NpemUsIGhhc2gpOwotICAgIHN0YXR1cyA9IHBzYV9kcml2ZXJfd3JhcHBlcl9oYXNoX2NvbXB1dGUoYWxnLCBpbnB1dCwgaW5wdXRfbGVuZ3RoLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFzaCwgaGFzaF9zaXplLCBoYXNoX2xlbmd0aCk7Ci0KLSNpZiAhZGVmaW5lZChNQkVEVExTX1BTQV9BU1NVTUVfRVhDTFVTSVZFX0JVRkZFUlMpCi1leGl0OgotI2VuZGlmCi0gICAgTE9DQUxfSU5QVVRfRlJFRShpbnB1dF9leHRlcm5hbCwgaW5wdXQpOwotICAgIExPQ0FMX09VVFBVVF9GUkVFKGhhc2hfZXh0ZXJuYWwsIGhhc2gpOwotICAgIHJldHVybiBzdGF0dXM7Ci19Ci0KLXBzYV9zdGF0dXNfdCBwc2FfaGFzaF9jb21wYXJlKHBzYV9hbGdvcml0aG1fdCBhbGcsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1aW50OF90ICppbnB1dF9leHRlcm5hbCwgc2l6ZV90IGlucHV0X2xlbmd0aCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVpbnQ4X3QgKmhhc2hfZXh0ZXJuYWwsIHNpemVfdCBoYXNoX2xlbmd0aCkKLXsKLSAgICB1aW50OF90IGFjdHVhbF9oYXNoW1BTQV9IQVNIX01BWF9TSVpFXTsKLSAgICBzaXplX3QgYWN0dWFsX2hhc2hfbGVuZ3RoOwotICAgIHBzYV9zdGF0dXNfdCBzdGF0dXMgPSBQU0FfRVJST1JfQ09SUlVQVElPTl9ERVRFQ1RFRDsKLQotICAgIExPQ0FMX0lOUFVUX0RFQ0xBUkUoaW5wdXRfZXh0ZXJuYWwsIGlucHV0KTsKLSAgICBMT0NBTF9JTlBVVF9ERUNMQVJFKGhhc2hfZXh0ZXJuYWwsIGhhc2gpOwotCi0gICAgaWYgKCFQU0FfQUxHX0lTX0hBU0goYWxnKSkgewotICAgICAgICBzdGF0dXMgPSBQU0FfRVJST1JfSU5WQUxJRF9BUkdVTUVOVDsKLSAgICAgICAgcmV0dXJuIHN0YXR1czsKLSAgICB9Ci0KLSAgICBMT0NBTF9JTlBVVF9BTExPQyhpbnB1dF9leHRlcm5hbCwgaW5wdXRfbGVuZ3RoLCBpbnB1dCk7Ci0gICAgc3RhdHVzID0gcHNhX2RyaXZlcl93cmFwcGVyX2hhc2hfY29tcHV0ZSgKLSAgICAgICAgYWxnLCBpbnB1dCwgaW5wdXRfbGVuZ3RoLAotICAgICAgICBhY3R1YWxfaGFzaCwgc2l6ZW9mKGFjdHVhbF9oYXNoKSwKLSAgICAgICAgJmFjdHVhbF9oYXNoX2xlbmd0aCk7Ci0gICAgaWYgKHN0YXR1cyAhPSBQU0FfU1VDQ0VTUykgewotICAgICAgICBnb3RvIGV4aXQ7Ci0gICAgfQotICAgIGlmIChhY3R1YWxfaGFzaF9sZW5ndGggIT0gaGFzaF9sZW5ndGgpIHsKLSAgICAgICAgc3RhdHVzID0gUFNBX0VSUk9SX0lOVkFMSURfU0lHTkFUVVJFOwotICAgICAgICBnb3RvIGV4aXQ7Ci0gICAgfQotCi0gICAgTE9DQUxfSU5QVVRfQUxMT0MoaGFzaF9leHRlcm5hbCwgaGFzaF9sZW5ndGgsIGhhc2gpOwotICAgIGlmIChtYmVkdGxzX2N0X21lbWNtcChoYXNoLCBhY3R1YWxfaGFzaCwgYWN0dWFsX2hhc2hfbGVuZ3RoKSAhPSAwKSB7Ci0gICAgICAgIHN0YXR1cyA9IFBTQV9FUlJPUl9JTlZBTElEX1NJR05BVFVSRTsKLSAgICB9Ci0KLWV4aXQ6Ci0gICAgbWJlZHRsc19wbGF0Zm9ybV96ZXJvaXplKGFjdHVhbF9oYXNoLCBzaXplb2YoYWN0dWFsX2hhc2gpKTsKLQotICAgIExPQ0FMX0lOUFVUX0ZSRUUoaW5wdXRfZXh0ZXJuYWwsIGlucHV0KTsKLSAgICBMT0NBTF9JTlBVVF9GUkVFKGhhc2hfZXh0ZXJuYWwsIGhhc2gpOwotCi0gICAgcmV0dXJuIHN0YXR1czsKLX0KLQotcHNhX3N0YXR1c190IHBzYV9oYXNoX2Nsb25lKGNvbnN0IHBzYV9oYXNoX29wZXJhdGlvbl90ICpzb3VyY2Vfb3BlcmF0aW9uLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBzYV9oYXNoX29wZXJhdGlvbl90ICp0YXJnZXRfb3BlcmF0aW9uKQotewotICAgIGlmIChzb3VyY2Vfb3BlcmF0aW9uLT5pZCA9PSAwIHx8Ci0gICAgICAgIHRhcmdldF9vcGVyYXRpb24tPmlkICE9IDApIHsKLSAgICAgICAgcmV0dXJuIFBTQV9FUlJPUl9CQURfU1RBVEU7Ci0gICAgfQotCi0gICAgcHNhX3N0YXR1c190IHN0YXR1cyA9IHBzYV9kcml2ZXJfd3JhcHBlcl9oYXNoX2Nsb25lKHNvdXJjZV9vcGVyYXRpb24sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhcmdldF9vcGVyYXRpb24pOwotICAgIGlmIChzdGF0dXMgIT0gUFNBX1NVQ0NFU1MpIHsKLSAgICAgICAgcHNhX2hhc2hfYWJvcnQodGFyZ2V0X29wZXJhdGlvbik7Ci0gICAgfQotCi0gICAgcmV0dXJuIHN0YXR1czsKLX0KLQotCi0vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KLS8qIE1BQyAqLwotLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCi0KLXBzYV9zdGF0dXNfdCBwc2FfbWFjX2Fib3J0KHBzYV9tYWNfb3BlcmF0aW9uX3QgKm9wZXJhdGlvbikKLXsKLSAgICAvKiBBYm9ydGluZyBhIG5vbi1hY3RpdmUgb3BlcmF0aW9uIGlzIGFsbG93ZWQgKi8KLSAgICBpZiAob3BlcmF0aW9uLT5pZCA9PSAwKSB7Ci0gICAgICAgIHJldHVybiBQU0FfU1VDQ0VTUzsKLSAgICB9Ci0KLSAgICBwc2Ffc3RhdHVzX3Qgc3RhdHVzID0gcHNhX2RyaXZlcl93cmFwcGVyX21hY19hYm9ydChvcGVyYXRpb24pOwotICAgIG9wZXJhdGlvbi0+bWFjX3NpemUgPSAwOwotICAgIG9wZXJhdGlvbi0+aXNfc2lnbiA9IDA7Ci0gICAgb3BlcmF0aW9uLT5pZCA9IDA7Ci0KLSAgICByZXR1cm4gc3RhdHVzOwotfQotCi1zdGF0aWMgcHNhX3N0YXR1c190IHBzYV9tYWNfZmluYWxpemVfYWxnX2FuZF9rZXlfdmFsaWRhdGlvbigKLSAgICBwc2FfYWxnb3JpdGhtX3QgYWxnLAotICAgIGNvbnN0IHBzYV9rZXlfYXR0cmlidXRlc190ICphdHRyaWJ1dGVzLAotICAgIHVpbnQ4X3QgKm1hY19zaXplKQotewotICAgIHBzYV9zdGF0dXNfdCBzdGF0dXMgPSBQU0FfRVJST1JfQ09SUlVQVElPTl9ERVRFQ1RFRDsKLSAgICBwc2Ffa2V5X3R5cGVfdCBrZXlfdHlwZSA9IHBzYV9nZXRfa2V5X3R5cGUoYXR0cmlidXRlcyk7Ci0gICAgc2l6ZV90IGtleV9iaXRzID0gcHNhX2dldF9rZXlfYml0cyhhdHRyaWJ1dGVzKTsKLQotICAgIGlmICghUFNBX0FMR19JU19NQUMoYWxnKSkgewotICAgICAgICByZXR1cm4gUFNBX0VSUk9SX0lOVkFMSURfQVJHVU1FTlQ7Ci0gICAgfQotCi0gICAgLyogVmFsaWRhdGUgdGhlIGNvbWJpbmF0aW9uIG9mIGtleSB0eXBlIGFuZCBhbGdvcml0aG0gKi8KLSAgICBzdGF0dXMgPSBwc2FfbWFjX2tleV9jYW5fZG8oYWxnLCBrZXlfdHlwZSk7Ci0gICAgaWYgKHN0YXR1cyAhPSBQU0FfU1VDQ0VTUykgewotICAgICAgICByZXR1cm4gc3RhdHVzOwotICAgIH0KLQotICAgIC8qIEdldCB0aGUgb3V0cHV0IGxlbmd0aCBmb3IgdGhlIGFsZ29yaXRobSBhbmQga2V5IGNvbWJpbmF0aW9uICovCi0gICAgKm1hY19zaXplID0gUFNBX01BQ19MRU5HVEgoa2V5X3R5cGUsIGtleV9iaXRzLCBhbGcpOwotCi0gICAgaWYgKCptYWNfc2l6ZSA8IDQpIHsKLSAgICAgICAgLyogQSB2ZXJ5IHNob3J0IE1BQyBpcyB0b28gc2hvcnQgZm9yIHNlY3VyaXR5IHNpbmNlIGl0IGNhbiBiZQotICAgICAgICAgKiBicnV0ZS1mb3JjZWQuIEFuY2llbnQgcHJvdG9jb2xzIHdpdGggMzItYml0IE1BQ3MgZG8gZXhpc3QsCi0gICAgICAgICAqIHNvIHdlIG1ha2UgdGhpcyBvdXIgbWluaW11bSwgZXZlbiB0aG91Z2ggMzIgYml0cyBpcyBzdGlsbAotICAgICAgICAgKiB0b28gc21hbGwgZm9yIHNlY3VyaXR5LiAqLwotICAgICAgICByZXR1cm4gUFNBX0VSUk9SX05PVF9TVVBQT1JURUQ7Ci0gICAgfQotCi0gICAgaWYgKCptYWNfc2l6ZSA+IFBTQV9NQUNfTEVOR1RIKGtleV90eXBlLCBrZXlfYml0cywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUFNBX0FMR19GVUxMX0xFTkdUSF9NQUMoYWxnKSkpIHsKLSAgICAgICAgLyogSXQncyBpbXBvc3NpYmxlIHRvICJ0cnVuY2F0ZSIgdG8gYSBsYXJnZXIgbGVuZ3RoIHRoYW4gdGhlIGZ1bGwgbGVuZ3RoCi0gICAgICAgICAqIG9mIHRoZSBhbGdvcml0aG0uICovCi0gICAgICAgIHJldHVybiBQU0FfRVJST1JfSU5WQUxJRF9BUkdVTUVOVDsKLSAgICB9Ci0KLSAgICBpZiAoKm1hY19zaXplID4gUFNBX01BQ19NQVhfU0laRSkgewotICAgICAgICAvKiBQU0FfTUFDX0xFTkdUSCByZXR1cm5zIHRoZSBjb3JyZWN0IGxlbmd0aCBldmVuIGZvciBhIE1BQyBhbGdvcml0aG0KLSAgICAgICAgICogdGhhdCBpcyBkaXNhYmxlZCBpbiB0aGUgY29tcGlsZS10aW1lIGNvbmZpZ3VyYXRpb24uIFRoZSByZXN1bHQgY2FuCi0gICAgICAgICAqIHRoZXJlZm9yZSBiZSBsYXJnZXIgdGhhbiBQU0FfTUFDX01BWF9TSVpFLCB3aGljaCBkb2VzIHRha2UgdGhlCi0gICAgICAgICAqIGNvbmZpZ3VyYXRpb24gaW50byBhY2NvdW50LiBJbiB0aGlzIGNhc2UsIGZvcmNlIGEgcmV0dXJuIG9mCi0gICAgICAgICAqIFBTQV9FUlJPUl9OT1RfU1VQUE9SVEVEIGhlcmUuIE90aGVyd2lzZSBwc2FfbWFjX3ZlcmlmeSgpLCBvcgotICAgICAgICAgKiBwc2FfbWFjX2NvbXB1dGUobWFjX3NpemU9UFNBX01BQ19NQVhfU0laRSksIHdvdWxkIHJldHVybgotICAgICAgICAgKiBQU0FfRVJST1JfQlVGRkVSX1RPT19TTUFMTCBmb3IgYW4gdW5zdXBwb3J0ZWQgYWxnb3JpdGhtIHdob3NlIE1BQyBzaXplCi0gICAgICAgICAqIGlzIGxhcmdlciB0aGFuIFBTQV9NQUNfTUFYX1NJWkUsIHdoaWNoIGlzIG1pc2xlYWRpbmcgYW5kIHdoaWNoIGJyZWFrcwotICAgICAgICAgKiBzeXN0ZW1hdGljYWxseSBnZW5lcmF0ZWQgdGVzdHMuICovCi0gICAgICAgIHJldHVybiBQU0FfRVJST1JfTk9UX1NVUFBPUlRFRDsKLSAgICB9Ci0KLSAgICByZXR1cm4gUFNBX1NVQ0NFU1M7Ci19Ci0KLXN0YXRpYyBwc2Ffc3RhdHVzX3QgcHNhX21hY19zZXR1cChwc2FfbWFjX29wZXJhdGlvbl90ICpvcGVyYXRpb24sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWJlZHRsc19zdmNfa2V5X2lkX3Qga2V5LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBzYV9hbGdvcml0aG1fdCBhbGcsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGlzX3NpZ24pCi17Ci0gICAgcHNhX3N0YXR1c190IHN0YXR1cyA9IFBTQV9FUlJPUl9DT1JSVVBUSU9OX0RFVEVDVEVEOwotICAgIHBzYV9zdGF0dXNfdCB1bmxvY2tfc3RhdHVzID0gUFNBX0VSUk9SX0NPUlJVUFRJT05fREVURUNURUQ7Ci0gICAgcHNhX2tleV9zbG90X3QgKnNsb3QgPSBOVUxMOwotCi0gICAgLyogQSBjb250ZXh0IG11c3QgYmUgZnJlc2hseSBpbml0aWFsaXplZCBiZWZvcmUgaXQgY2FuIGJlIHNldCB1cC4gKi8KLSAgICBpZiAob3BlcmF0aW9uLT5pZCAhPSAwKSB7Ci0gICAgICAgIHN0YXR1cyA9IFBTQV9FUlJPUl9CQURfU1RBVEU7Ci0gICAgICAgIGdvdG8gZXhpdDsKLSAgICB9Ci0KLSAgICBzdGF0dXMgPSBwc2FfZ2V0X2FuZF9sb2NrX2tleV9zbG90X3dpdGhfcG9saWN5KAotICAgICAgICBrZXksCi0gICAgICAgICZzbG90LAotICAgICAgICBpc19zaWduID8gUFNBX0tFWV9VU0FHRV9TSUdOX01FU1NBR0UgOiBQU0FfS0VZX1VTQUdFX1ZFUklGWV9NRVNTQUdFLAotICAgICAgICBhbGcpOwotICAgIGlmIChzdGF0dXMgIT0gUFNBX1NVQ0NFU1MpIHsKLSAgICAgICAgZ290byBleGl0OwotICAgIH0KLQotICAgIHN0YXR1cyA9IHBzYV9tYWNfZmluYWxpemVfYWxnX2FuZF9rZXlfdmFsaWRhdGlvbihhbGcsICZzbG90LT5hdHRyLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmb3BlcmF0aW9uLT5tYWNfc2l6ZSk7Ci0gICAgaWYgKHN0YXR1cyAhPSBQU0FfU1VDQ0VTUykgewotICAgICAgICBnb3RvIGV4aXQ7Ci0gICAgfQotCi0gICAgb3BlcmF0aW9uLT5pc19zaWduID0gaXNfc2lnbjsKLSAgICAvKiBEaXNwYXRjaCB0aGUgTUFDIHNldHVwIGNhbGwgd2l0aCB2YWxpZGF0ZWQgaW5wdXQgKi8KLSAgICBpZiAoaXNfc2lnbikgewotICAgICAgICBzdGF0dXMgPSBwc2FfZHJpdmVyX3dyYXBwZXJfbWFjX3NpZ25fc2V0dXAob3BlcmF0aW9uLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJnNsb3QtPmF0dHIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzbG90LT5rZXkuZGF0YSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNsb3QtPmtleS5ieXRlcywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFsZyk7Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgc3RhdHVzID0gcHNhX2RyaXZlcl93cmFwcGVyX21hY192ZXJpZnlfc2V0dXAob3BlcmF0aW9uLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmc2xvdC0+YXR0ciwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2xvdC0+a2V5LmRhdGEsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNsb3QtPmtleS5ieXRlcywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWxnKTsKLSAgICB9Ci0KLWV4aXQ6Ci0gICAgaWYgKHN0YXR1cyAhPSBQU0FfU1VDQ0VTUykgewotICAgICAgICBwc2FfbWFjX2Fib3J0KG9wZXJhdGlvbik7Ci0gICAgfQotCi0gICAgdW5sb2NrX3N0YXR1cyA9IHBzYV91bnJlZ2lzdGVyX3JlYWRfdW5kZXJfbXV0ZXgoc2xvdCk7Ci0KLSAgICByZXR1cm4gKHN0YXR1cyA9PSBQU0FfU1VDQ0VTUykgPyB1bmxvY2tfc3RhdHVzIDogc3RhdHVzOwotfQotCi1wc2Ffc3RhdHVzX3QgcHNhX21hY19zaWduX3NldHVwKHBzYV9tYWNfb3BlcmF0aW9uX3QgKm9wZXJhdGlvbiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWJlZHRsc19zdmNfa2V5X2lkX3Qga2V5LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwc2FfYWxnb3JpdGhtX3QgYWxnKQotewotICAgIHJldHVybiBwc2FfbWFjX3NldHVwKG9wZXJhdGlvbiwga2V5LCBhbGcsIDEpOwotfQotCi1wc2Ffc3RhdHVzX3QgcHNhX21hY192ZXJpZnlfc2V0dXAocHNhX21hY19vcGVyYXRpb25fdCAqb3BlcmF0aW9uLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1iZWR0bHNfc3ZjX2tleV9pZF90IGtleSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwc2FfYWxnb3JpdGhtX3QgYWxnKQotewotICAgIHJldHVybiBwc2FfbWFjX3NldHVwKG9wZXJhdGlvbiwga2V5LCBhbGcsIDApOwotfQotCi1wc2Ffc3RhdHVzX3QgcHNhX21hY191cGRhdGUocHNhX21hY19vcGVyYXRpb25fdCAqb3BlcmF0aW9uLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVpbnQ4X3QgKmlucHV0X2V4dGVybmFsLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBpbnB1dF9sZW5ndGgpCi17Ci0gICAgcHNhX3N0YXR1c190IHN0YXR1cyA9IFBTQV9FUlJPUl9DT1JSVVBUSU9OX0RFVEVDVEVEOwotICAgIExPQ0FMX0lOUFVUX0RFQ0xBUkUoaW5wdXRfZXh0ZXJuYWwsIGlucHV0KTsKLQotICAgIGlmIChvcGVyYXRpb24tPmlkID09IDApIHsKLSAgICAgICAgc3RhdHVzID0gUFNBX0VSUk9SX0JBRF9TVEFURTsKLSAgICAgICAgcmV0dXJuIHN0YXR1czsKLSAgICB9Ci0KLSAgICAvKiBEb24ndCByZXF1aXJlIGhhc2ggaW1wbGVtZW50YXRpb25zIHRvIGJlaGF2ZSBjb3JyZWN0bHkgb24gYQotICAgICAqIHplcm8tbGVuZ3RoIGlucHV0LCB3aGljaCBtYXkgaGF2ZSBhbiBpbnZhbGlkIHBvaW50ZXIuICovCi0gICAgaWYgKGlucHV0X2xlbmd0aCA9PSAwKSB7Ci0gICAgICAgIHN0YXR1cyA9IFBTQV9TVUNDRVNTOwotICAgICAgICByZXR1cm4gc3RhdHVzOwotICAgIH0KLQotICAgIExPQ0FMX0lOUFVUX0FMTE9DKGlucHV0X2V4dGVybmFsLCBpbnB1dF9sZW5ndGgsIGlucHV0KTsKLSAgICBzdGF0dXMgPSBwc2FfZHJpdmVyX3dyYXBwZXJfbWFjX3VwZGF0ZShvcGVyYXRpb24sIGlucHV0LCBpbnB1dF9sZW5ndGgpOwotCi0gICAgaWYgKHN0YXR1cyAhPSBQU0FfU1VDQ0VTUykgewotICAgICAgICBwc2FfbWFjX2Fib3J0KG9wZXJhdGlvbik7Ci0gICAgfQotCi0jaWYgIWRlZmluZWQoTUJFRFRMU19QU0FfQVNTVU1FX0VYQ0xVU0lWRV9CVUZGRVJTKQotZXhpdDoKLSNlbmRpZgotICAgIExPQ0FMX0lOUFVUX0ZSRUUoaW5wdXRfZXh0ZXJuYWwsIGlucHV0KTsKLQotICAgIHJldHVybiBzdGF0dXM7Ci19Ci0KLXBzYV9zdGF0dXNfdCBwc2FfbWFjX3NpZ25fZmluaXNoKHBzYV9tYWNfb3BlcmF0aW9uX3QgKm9wZXJhdGlvbiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQ4X3QgKm1hY19leHRlcm5hbCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBtYWNfc2l6ZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCAqbWFjX2xlbmd0aCkKLXsKLSAgICBwc2Ffc3RhdHVzX3Qgc3RhdHVzID0gUFNBX0VSUk9SX0NPUlJVUFRJT05fREVURUNURUQ7Ci0gICAgcHNhX3N0YXR1c190IGFib3J0X3N0YXR1cyA9IFBTQV9FUlJPUl9DT1JSVVBUSU9OX0RFVEVDVEVEOwotICAgIExPQ0FMX09VVFBVVF9ERUNMQVJFKG1hY19leHRlcm5hbCwgbWFjKTsKLSAgICBMT0NBTF9PVVRQVVRfQUxMT0MobWFjX2V4dGVybmFsLCBtYWNfc2l6ZSwgbWFjKTsKLQotICAgIGlmIChvcGVyYXRpb24tPmlkID09IDApIHsKLSAgICAgICAgc3RhdHVzID0gUFNBX0VSUk9SX0JBRF9TVEFURTsKLSAgICAgICAgZ290byBleGl0OwotICAgIH0KLQotICAgIGlmICghb3BlcmF0aW9uLT5pc19zaWduKSB7Ci0gICAgICAgIHN0YXR1cyA9IFBTQV9FUlJPUl9CQURfU1RBVEU7Ci0gICAgICAgIGdvdG8gZXhpdDsKLSAgICB9Ci0KLSAgICAvKiBTYW5pdHkgY2hlY2suIFRoaXMgd2lsbCBndWFyYW50ZWUgdGhhdCBtYWNfc2l6ZSAhPSAwIChhbmQgc28gbWFjICE9IE5VTEwpCi0gICAgICogb25jZSBhbGwgdGhlIGVycm9yIGNoZWNrcyBhcmUgZG9uZS4gKi8KLSAgICBpZiAob3BlcmF0aW9uLT5tYWNfc2l6ZSA9PSAwKSB7Ci0gICAgICAgIHN0YXR1cyA9IFBTQV9FUlJPUl9CQURfU1RBVEU7Ci0gICAgICAgIGdvdG8gZXhpdDsKLSAgICB9Ci0KLSAgICBpZiAobWFjX3NpemUgPCBvcGVyYXRpb24tPm1hY19zaXplKSB7Ci0gICAgICAgIHN0YXR1cyA9IFBTQV9FUlJPUl9CVUZGRVJfVE9PX1NNQUxMOwotICAgICAgICBnb3RvIGV4aXQ7Ci0gICAgfQotCi0KLSAgICBzdGF0dXMgPSBwc2FfZHJpdmVyX3dyYXBwZXJfbWFjX3NpZ25fZmluaXNoKG9wZXJhdGlvbiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hYywgb3BlcmF0aW9uLT5tYWNfc2l6ZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hY19sZW5ndGgpOwotCi1leGl0OgotICAgIC8qIEluIGNhc2Ugb2Ygc3VjY2Vzcywgc2V0IHRoZSBwb3RlbnRpYWwgZXhjZXNzIHJvb20gaW4gdGhlIG91dHB1dCBidWZmZXIKLSAgICAgKiB0byBhbiBpbnZhbGlkIHZhbHVlLCB0byBhdm9pZCBwb3RlbnRpYWxseSBsZWFraW5nIGEgbG9uZ2VyIE1BQy4KLSAgICAgKiBJbiBjYXNlIG9mIGVycm9yLCBzZXQgdGhlIG91dHB1dCBsZW5ndGggYW5kIGNvbnRlbnQgdG8gYSBzYWZlIGRlZmF1bHQsCi0gICAgICogc3VjaCB0aGF0IGluIGNhc2UgdGhlIGNhbGxlciBtaXNzZXMgYW4gZXJyb3IgY2hlY2ssIHRoZSBvdXRwdXQgd291bGQgYmUKLSAgICAgKiBhbiB1bmFjaGlldmFibGUgTUFDLgotICAgICAqLwotICAgIGlmIChzdGF0dXMgIT0gUFNBX1NVQ0NFU1MpIHsKLSAgICAgICAgKm1hY19sZW5ndGggPSBtYWNfc2l6ZTsKLSAgICAgICAgb3BlcmF0aW9uLT5tYWNfc2l6ZSA9IDA7Ci0gICAgfQotCi0gICAgaWYgKG1hYyAhPSBOVUxMKSB7Ci0gICAgICAgIHBzYV93aXBlX3RhZ19vdXRwdXRfYnVmZmVyKG1hYywgc3RhdHVzLCBtYWNfc2l6ZSwgKm1hY19sZW5ndGgpOwotICAgIH0KLQotICAgIGFib3J0X3N0YXR1cyA9IHBzYV9tYWNfYWJvcnQob3BlcmF0aW9uKTsKLSAgICBMT0NBTF9PVVRQVVRfRlJFRShtYWNfZXh0ZXJuYWwsIG1hYyk7Ci0KLSAgICByZXR1cm4gc3RhdHVzID09IFBTQV9TVUNDRVNTID8gYWJvcnRfc3RhdHVzIDogc3RhdHVzOwotfQotCi1wc2Ffc3RhdHVzX3QgcHNhX21hY192ZXJpZnlfZmluaXNoKHBzYV9tYWNfb3BlcmF0aW9uX3QgKm9wZXJhdGlvbiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdWludDhfdCAqbWFjX2V4dGVybmFsLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgbWFjX2xlbmd0aCkKLXsKLSAgICBwc2Ffc3RhdHVzX3Qgc3RhdHVzID0gUFNBX0VSUk9SX0NPUlJVUFRJT05fREVURUNURUQ7Ci0gICAgcHNhX3N0YXR1c190IGFib3J0X3N0YXR1cyA9IFBTQV9FUlJPUl9DT1JSVVBUSU9OX0RFVEVDVEVEOwotICAgIExPQ0FMX0lOUFVUX0RFQ0xBUkUobWFjX2V4dGVybmFsLCBtYWMpOwotCi0gICAgaWYgKG9wZXJhdGlvbi0+aWQgPT0gMCkgewotICAgICAgICBzdGF0dXMgPSBQU0FfRVJST1JfQkFEX1NUQVRFOwotICAgICAgICBnb3RvIGV4aXQ7Ci0gICAgfQotCi0gICAgaWYgKG9wZXJhdGlvbi0+aXNfc2lnbikgewotICAgICAgICBzdGF0dXMgPSBQU0FfRVJST1JfQkFEX1NUQVRFOwotICAgICAgICBnb3RvIGV4aXQ7Ci0gICAgfQotCi0gICAgaWYgKG9wZXJhdGlvbi0+bWFjX3NpemUgIT0gbWFjX2xlbmd0aCkgewotICAgICAgICBzdGF0dXMgPSBQU0FfRVJST1JfSU5WQUxJRF9TSUdOQVRVUkU7Ci0gICAgICAgIGdvdG8gZXhpdDsKLSAgICB9Ci0KLSAgICBMT0NBTF9JTlBVVF9BTExPQyhtYWNfZXh0ZXJuYWwsIG1hY19sZW5ndGgsIG1hYyk7Ci0gICAgc3RhdHVzID0gcHNhX2RyaXZlcl93cmFwcGVyX21hY192ZXJpZnlfZmluaXNoKG9wZXJhdGlvbiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFjLCBtYWNfbGVuZ3RoKTsKLQotZXhpdDoKLSAgICBhYm9ydF9zdGF0dXMgPSBwc2FfbWFjX2Fib3J0KG9wZXJhdGlvbik7Ci0gICAgTE9DQUxfSU5QVVRfRlJFRShtYWNfZXh0ZXJuYWwsIG1hYyk7Ci0KLSAgICByZXR1cm4gc3RhdHVzID09IFBTQV9TVUNDRVNTID8gYWJvcnRfc3RhdHVzIDogc3RhdHVzOwotfQotCi1zdGF0aWMgcHNhX3N0YXR1c190IHBzYV9tYWNfY29tcHV0ZV9pbnRlcm5hbChtYmVkdGxzX3N2Y19rZXlfaWRfdCBrZXksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwc2FfYWxnb3JpdGhtX3QgYWxnLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdWludDhfdCAqaW5wdXQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgaW5wdXRfbGVuZ3RoLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDhfdCAqbWFjLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IG1hY19zaXplLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90ICptYWNfbGVuZ3RoLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGlzX3NpZ24pCi17Ci0gICAgcHNhX3N0YXR1c190IHN0YXR1cyA9IFBTQV9FUlJPUl9DT1JSVVBUSU9OX0RFVEVDVEVEOwotICAgIHBzYV9zdGF0dXNfdCB1bmxvY2tfc3RhdHVzID0gUFNBX0VSUk9SX0NPUlJVUFRJT05fREVURUNURUQ7Ci0gICAgcHNhX2tleV9zbG90X3QgKnNsb3Q7Ci0gICAgdWludDhfdCBvcGVyYXRpb25fbWFjX3NpemUgPSAwOwotCi0gICAgc3RhdHVzID0gcHNhX2dldF9hbmRfbG9ja19rZXlfc2xvdF93aXRoX3BvbGljeSgKLSAgICAgICAga2V5LAotICAgICAgICAmc2xvdCwKLSAgICAgICAgaXNfc2lnbiA/IFBTQV9LRVlfVVNBR0VfU0lHTl9NRVNTQUdFIDogUFNBX0tFWV9VU0FHRV9WRVJJRllfTUVTU0FHRSwKLSAgICAgICAgYWxnKTsKLSAgICBpZiAoc3RhdHVzICE9IFBTQV9TVUNDRVNTKSB7Ci0gICAgICAgIGdvdG8gZXhpdDsKLSAgICB9Ci0KLSAgICBzdGF0dXMgPSBwc2FfbWFjX2ZpbmFsaXplX2FsZ19hbmRfa2V5X3ZhbGlkYXRpb24oYWxnLCAmc2xvdC0+YXR0ciwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJm9wZXJhdGlvbl9tYWNfc2l6ZSk7Ci0gICAgaWYgKHN0YXR1cyAhPSBQU0FfU1VDQ0VTUykgewotICAgICAgICBnb3RvIGV4aXQ7Ci0gICAgfQotCi0gICAgaWYgKG1hY19zaXplIDwgb3BlcmF0aW9uX21hY19zaXplKSB7Ci0gICAgICAgIHN0YXR1cyA9IFBTQV9FUlJPUl9CVUZGRVJfVE9PX1NNQUxMOwotICAgICAgICBnb3RvIGV4aXQ7Ci0gICAgfQotCi0gICAgc3RhdHVzID0gcHNhX2RyaXZlcl93cmFwcGVyX21hY19jb21wdXRlKAotICAgICAgICAmc2xvdC0+YXR0ciwKLSAgICAgICAgc2xvdC0+a2V5LmRhdGEsIHNsb3QtPmtleS5ieXRlcywKLSAgICAgICAgYWxnLAotICAgICAgICBpbnB1dCwgaW5wdXRfbGVuZ3RoLAotICAgICAgICBtYWMsIG9wZXJhdGlvbl9tYWNfc2l6ZSwgbWFjX2xlbmd0aCk7Ci0KLWV4aXQ6Ci0gICAgLyogSW4gY2FzZSBvZiBzdWNjZXNzLCBzZXQgdGhlIHBvdGVudGlhbCBleGNlc3Mgcm9vbSBpbiB0aGUgb3V0cHV0IGJ1ZmZlcgotICAgICAqIHRvIGFuIGludmFsaWQgdmFsdWUsIHRvIGF2b2lkIHBvdGVudGlhbGx5IGxlYWtpbmcgYSBsb25nZXIgTUFDLgotICAgICAqIEluIGNhc2Ugb2YgZXJyb3IsIHNldCB0aGUgb3V0cHV0IGxlbmd0aCBhbmQgY29udGVudCB0byBhIHNhZmUgZGVmYXVsdCwKLSAgICAgKiBzdWNoIHRoYXQgaW4gY2FzZSB0aGUgY2FsbGVyIG1pc3NlcyBhbiBlcnJvciBjaGVjaywgdGhlIG91dHB1dCB3b3VsZCBiZQotICAgICAqIGFuIHVuYWNoaWV2YWJsZSBNQUMuCi0gICAgICovCi0gICAgaWYgKHN0YXR1cyAhPSBQU0FfU1VDQ0VTUykgewotICAgICAgICAqbWFjX2xlbmd0aCA9IG1hY19zaXplOwotICAgICAgICBvcGVyYXRpb25fbWFjX3NpemUgPSAwOwotICAgIH0KLQotICAgIHBzYV93aXBlX3RhZ19vdXRwdXRfYnVmZmVyKG1hYywgc3RhdHVzLCBtYWNfc2l6ZSwgKm1hY19sZW5ndGgpOwotCi0gICAgdW5sb2NrX3N0YXR1cyA9IHBzYV91bnJlZ2lzdGVyX3JlYWRfdW5kZXJfbXV0ZXgoc2xvdCk7Ci0KLSAgICByZXR1cm4gKHN0YXR1cyA9PSBQU0FfU1VDQ0VTUykgPyB1bmxvY2tfc3RhdHVzIDogc3RhdHVzOwotfQotCi1wc2Ffc3RhdHVzX3QgcHNhX21hY19jb21wdXRlKG1iZWR0bHNfc3ZjX2tleV9pZF90IGtleSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHNhX2FsZ29yaXRobV90IGFsZywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdWludDhfdCAqaW5wdXRfZXh0ZXJuYWwsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBpbnB1dF9sZW5ndGgsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQ4X3QgKm1hY19leHRlcm5hbCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IG1hY19zaXplLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgKm1hY19sZW5ndGgpCi17Ci0gICAgcHNhX3N0YXR1c190IHN0YXR1cyA9IFBTQV9FUlJPUl9DT1JSVVBUSU9OX0RFVEVDVEVEOwotICAgIExPQ0FMX0lOUFVUX0RFQ0xBUkUoaW5wdXRfZXh0ZXJuYWwsIGlucHV0KTsKLSAgICBMT0NBTF9PVVRQVVRfREVDTEFSRShtYWNfZXh0ZXJuYWwsIG1hYyk7Ci0KLSAgICBMT0NBTF9JTlBVVF9BTExPQyhpbnB1dF9leHRlcm5hbCwgaW5wdXRfbGVuZ3RoLCBpbnB1dCk7Ci0gICAgTE9DQUxfT1VUUFVUX0FMTE9DKG1hY19leHRlcm5hbCwgbWFjX3NpemUsIG1hYyk7Ci0gICAgc3RhdHVzID0gcHNhX21hY19jb21wdXRlX2ludGVybmFsKGtleSwgYWxnLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnB1dCwgaW5wdXRfbGVuZ3RoLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYWMsIG1hY19zaXplLCBtYWNfbGVuZ3RoLCAxKTsKLQotI2lmICFkZWZpbmVkKE1CRURUTFNfUFNBX0FTU1VNRV9FWENMVVNJVkVfQlVGRkVSUykKLWV4aXQ6Ci0jZW5kaWYKLSAgICBMT0NBTF9JTlBVVF9GUkVFKGlucHV0X2V4dGVybmFsLCBpbnB1dCk7Ci0gICAgTE9DQUxfT1VUUFVUX0ZSRUUobWFjX2V4dGVybmFsLCBtYWMpOwotCi0gICAgcmV0dXJuIHN0YXR1czsKLX0KLQotcHNhX3N0YXR1c190IHBzYV9tYWNfdmVyaWZ5KG1iZWR0bHNfc3ZjX2tleV9pZF90IGtleSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBwc2FfYWxnb3JpdGhtX3QgYWxnLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVpbnQ4X3QgKmlucHV0X2V4dGVybmFsLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBpbnB1dF9sZW5ndGgsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdWludDhfdCAqbWFjX2V4dGVybmFsLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBtYWNfbGVuZ3RoKQotewotICAgIHBzYV9zdGF0dXNfdCBzdGF0dXMgPSBQU0FfRVJST1JfQ09SUlVQVElPTl9ERVRFQ1RFRDsKLSAgICB1aW50OF90IGFjdHVhbF9tYWNbUFNBX01BQ19NQVhfU0laRV07Ci0gICAgc2l6ZV90IGFjdHVhbF9tYWNfbGVuZ3RoOwotICAgIExPQ0FMX0lOUFVUX0RFQ0xBUkUoaW5wdXRfZXh0ZXJuYWwsIGlucHV0KTsKLSAgICBMT0NBTF9JTlBVVF9ERUNMQVJFKG1hY19leHRlcm5hbCwgbWFjKTsKLQotICAgIExPQ0FMX0lOUFVUX0FMTE9DKGlucHV0X2V4dGVybmFsLCBpbnB1dF9sZW5ndGgsIGlucHV0KTsKLSAgICBzdGF0dXMgPSBwc2FfbWFjX2NvbXB1dGVfaW50ZXJuYWwoa2V5LCBhbGcsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlucHV0LCBpbnB1dF9sZW5ndGgsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFjdHVhbF9tYWMsIHNpemVvZihhY3R1YWxfbWFjKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJmFjdHVhbF9tYWNfbGVuZ3RoLCAwKTsKLSAgICBpZiAoc3RhdHVzICE9IFBTQV9TVUNDRVNTKSB7Ci0gICAgICAgIGdvdG8gZXhpdDsKLSAgICB9Ci0KLSAgICBpZiAobWFjX2xlbmd0aCAhPSBhY3R1YWxfbWFjX2xlbmd0aCkgewotICAgICAgICBzdGF0dXMgPSBQU0FfRVJST1JfSU5WQUxJRF9TSUdOQVRVUkU7Ci0gICAgICAgIGdvdG8gZXhpdDsKLSAgICB9Ci0KLSAgICBMT0NBTF9JTlBVVF9BTExPQyhtYWNfZXh0ZXJuYWwsIG1hY19sZW5ndGgsIG1hYyk7Ci0gICAgaWYgKG1iZWR0bHNfY3RfbWVtY21wKG1hYywgYWN0dWFsX21hYywgYWN0dWFsX21hY19sZW5ndGgpICE9IDApIHsKLSAgICAgICAgc3RhdHVzID0gUFNBX0VSUk9SX0lOVkFMSURfU0lHTkFUVVJFOwotICAgICAgICBnb3RvIGV4aXQ7Ci0gICAgfQotCi1leGl0OgotICAgIG1iZWR0bHNfcGxhdGZvcm1femVyb2l6ZShhY3R1YWxfbWFjLCBzaXplb2YoYWN0dWFsX21hYykpOwotICAgIExPQ0FMX0lOUFVUX0ZSRUUoaW5wdXRfZXh0ZXJuYWwsIGlucHV0KTsKLSAgICBMT0NBTF9JTlBVVF9GUkVFKG1hY19leHRlcm5hbCwgbWFjKTsKLQotICAgIHJldHVybiBzdGF0dXM7Ci19Ci0KLS8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwotLyogQXN5bW1ldHJpYyBjcnlwdG9ncmFwaHkgKi8KLS8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwotCi1zdGF0aWMgcHNhX3N0YXR1c190IHBzYV9zaWduX3ZlcmlmeV9jaGVja19hbGcoaW50IGlucHV0X2lzX21lc3NhZ2UsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHNhX2FsZ29yaXRobV90IGFsZykKLXsKLSAgICBpZiAoaW5wdXRfaXNfbWVzc2FnZSkgewotICAgICAgICBpZiAoIVBTQV9BTEdfSVNfU0lHTl9NRVNTQUdFKGFsZykpIHsKLSAgICAgICAgICAgIHJldHVybiBQU0FfRVJST1JfSU5WQUxJRF9BUkdVTUVOVDsKLSAgICAgICAgfQotCi0gICAgICAgIGlmIChQU0FfQUxHX0lTX1NJR05fSEFTSChhbGcpKSB7Ci0gICAgICAgICAgICBpZiAoIVBTQV9BTEdfSVNfSEFTSChQU0FfQUxHX1NJR05fR0VUX0hBU0goYWxnKSkpIHsKLSAgICAgICAgICAgICAgICByZXR1cm4gUFNBX0VSUk9SX0lOVkFMSURfQVJHVU1FTlQ7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLSAgICB9IGVsc2UgewotICAgICAgICBpZiAoIVBTQV9BTEdfSVNfU0lHTl9IQVNIKGFsZykpIHsKLSAgICAgICAgICAgIHJldHVybiBQU0FfRVJST1JfSU5WQUxJRF9BUkdVTUVOVDsKLSAgICAgICAgfQotICAgIH0KLQotICAgIHJldHVybiBQU0FfU1VDQ0VTUzsKLX0KLQotc3RhdGljIHBzYV9zdGF0dXNfdCBwc2Ffc2lnbl9pbnRlcm5hbChtYmVkdGxzX3N2Y19rZXlfaWRfdCBrZXksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBpbnB1dF9pc19tZXNzYWdlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwc2FfYWxnb3JpdGhtX3QgYWxnLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1aW50OF90ICppbnB1dCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IGlucHV0X2xlbmd0aCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDhfdCAqc2lnbmF0dXJlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3Qgc2lnbmF0dXJlX3NpemUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCAqc2lnbmF0dXJlX2xlbmd0aCkKLXsKLSAgICBwc2Ffc3RhdHVzX3Qgc3RhdHVzID0gUFNBX0VSUk9SX0NPUlJVUFRJT05fREVURUNURUQ7Ci0gICAgcHNhX3N0YXR1c190IHVubG9ja19zdGF0dXMgPSBQU0FfRVJST1JfQ09SUlVQVElPTl9ERVRFQ1RFRDsKLSAgICBwc2Ffa2V5X3Nsb3RfdCAqc2xvdDsKLQotICAgICpzaWduYXR1cmVfbGVuZ3RoID0gMDsKLQotICAgIHN0YXR1cyA9IHBzYV9zaWduX3ZlcmlmeV9jaGVja19hbGcoaW5wdXRfaXNfbWVzc2FnZSwgYWxnKTsKLSAgICBpZiAoc3RhdHVzICE9IFBTQV9TVUNDRVNTKSB7Ci0gICAgICAgIHJldHVybiBzdGF0dXM7Ci0gICAgfQotCi0gICAgLyogSW1tZWRpYXRlbHkgcmVqZWN0IGEgemVyby1sZW5ndGggc2lnbmF0dXJlIGJ1ZmZlci4gVGhpcyBndWFyYW50ZWVzCi0gICAgICogdGhhdCBzaWduYXR1cmUgbXVzdCBiZSBhIHZhbGlkIHBvaW50ZXIuIChPbiB0aGUgb3RoZXIgaGFuZCwgdGhlIGlucHV0Ci0gICAgICogYnVmZmVyIGNhbiBpbiBwcmluY2lwbGUgYmUgZW1wdHkgc2luY2UgaXQgZG9lc24ndCBhY3R1YWxseSBoYXZlCi0gICAgICogdG8gYmUgYSBoYXNoLikgKi8KLSAgICBpZiAoc2lnbmF0dXJlX3NpemUgPT0gMCkgewotICAgICAgICByZXR1cm4gUFNBX0VSUk9SX0JVRkZFUl9UT09fU01BTEw7Ci0gICAgfQotCi0gICAgc3RhdHVzID0gcHNhX2dldF9hbmRfbG9ja19rZXlfc2xvdF93aXRoX3BvbGljeSgKLSAgICAgICAga2V5LCAmc2xvdCwKLSAgICAgICAgaW5wdXRfaXNfbWVzc2FnZSA/IFBTQV9LRVlfVVNBR0VfU0lHTl9NRVNTQUdFIDoKLSAgICAgICAgUFNBX0tFWV9VU0FHRV9TSUdOX0hBU0gsCi0gICAgICAgIGFsZyk7Ci0KLSAgICBpZiAoc3RhdHVzICE9IFBTQV9TVUNDRVNTKSB7Ci0gICAgICAgIGdvdG8gZXhpdDsKLSAgICB9Ci0KLSAgICBpZiAoIVBTQV9LRVlfVFlQRV9JU19LRVlfUEFJUihzbG90LT5hdHRyLnR5cGUpKSB7Ci0gICAgICAgIHN0YXR1cyA9IFBTQV9FUlJPUl9JTlZBTElEX0FSR1VNRU5UOwotICAgICAgICBnb3RvIGV4aXQ7Ci0gICAgfQotCi0gICAgaWYgKGlucHV0X2lzX21lc3NhZ2UpIHsKLSAgICAgICAgc3RhdHVzID0gcHNhX2RyaXZlcl93cmFwcGVyX3NpZ25fbWVzc2FnZSgKLSAgICAgICAgICAgICZzbG90LT5hdHRyLCBzbG90LT5rZXkuZGF0YSwgc2xvdC0+a2V5LmJ5dGVzLAotICAgICAgICAgICAgYWxnLCBpbnB1dCwgaW5wdXRfbGVuZ3RoLAotICAgICAgICAgICAgc2lnbmF0dXJlLCBzaWduYXR1cmVfc2l6ZSwgc2lnbmF0dXJlX2xlbmd0aCk7Ci0gICAgfSBlbHNlIHsKLQotICAgICAgICBzdGF0dXMgPSBwc2FfZHJpdmVyX3dyYXBwZXJfc2lnbl9oYXNoKAotICAgICAgICAgICAgJnNsb3QtPmF0dHIsIHNsb3QtPmtleS5kYXRhLCBzbG90LT5rZXkuYnl0ZXMsCi0gICAgICAgICAgICBhbGcsIGlucHV0LCBpbnB1dF9sZW5ndGgsCi0gICAgICAgICAgICBzaWduYXR1cmUsIHNpZ25hdHVyZV9zaXplLCBzaWduYXR1cmVfbGVuZ3RoKTsKLSAgICB9Ci0KLQotZXhpdDoKLSAgICBwc2Ffd2lwZV90YWdfb3V0cHV0X2J1ZmZlcihzaWduYXR1cmUsIHN0YXR1cywgc2lnbmF0dXJlX3NpemUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKnNpZ25hdHVyZV9sZW5ndGgpOwotCi0gICAgdW5sb2NrX3N0YXR1cyA9IHBzYV91bnJlZ2lzdGVyX3JlYWRfdW5kZXJfbXV0ZXgoc2xvdCk7Ci0KLSAgICByZXR1cm4gKHN0YXR1cyA9PSBQU0FfU1VDQ0VTUykgPyB1bmxvY2tfc3RhdHVzIDogc3RhdHVzOwotfQotCi1zdGF0aWMgcHNhX3N0YXR1c190IHBzYV92ZXJpZnlfaW50ZXJuYWwobWJlZHRsc19zdmNfa2V5X2lkX3Qga2V5LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBpbnB1dF9pc19tZXNzYWdlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBzYV9hbGdvcml0aG1fdCBhbGcsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdWludDhfdCAqaW5wdXQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IGlucHV0X2xlbmd0aCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1aW50OF90ICpzaWduYXR1cmUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IHNpZ25hdHVyZV9sZW5ndGgpCi17Ci0gICAgcHNhX3N0YXR1c190IHN0YXR1cyA9IFBTQV9FUlJPUl9DT1JSVVBUSU9OX0RFVEVDVEVEOwotICAgIHBzYV9zdGF0dXNfdCB1bmxvY2tfc3RhdHVzID0gUFNBX0VSUk9SX0NPUlJVUFRJT05fREVURUNURUQ7Ci0gICAgcHNhX2tleV9zbG90X3QgKnNsb3Q7Ci0KLSAgICBzdGF0dXMgPSBwc2Ffc2lnbl92ZXJpZnlfY2hlY2tfYWxnKGlucHV0X2lzX21lc3NhZ2UsIGFsZyk7Ci0gICAgaWYgKHN0YXR1cyAhPSBQU0FfU1VDQ0VTUykgewotICAgICAgICByZXR1cm4gc3RhdHVzOwotICAgIH0KLQotICAgIHN0YXR1cyA9IHBzYV9nZXRfYW5kX2xvY2tfa2V5X3Nsb3Rfd2l0aF9wb2xpY3koCi0gICAgICAgIGtleSwgJnNsb3QsCi0gICAgICAgIGlucHV0X2lzX21lc3NhZ2UgPyBQU0FfS0VZX1VTQUdFX1ZFUklGWV9NRVNTQUdFIDoKLSAgICAgICAgUFNBX0tFWV9VU0FHRV9WRVJJRllfSEFTSCwKLSAgICAgICAgYWxnKTsKLQotICAgIGlmIChzdGF0dXMgIT0gUFNBX1NVQ0NFU1MpIHsKLSAgICAgICAgcmV0dXJuIHN0YXR1czsKLSAgICB9Ci0KLSAgICBpZiAoaW5wdXRfaXNfbWVzc2FnZSkgewotICAgICAgICBzdGF0dXMgPSBwc2FfZHJpdmVyX3dyYXBwZXJfdmVyaWZ5X21lc3NhZ2UoCi0gICAgICAgICAgICAmc2xvdC0+YXR0ciwgc2xvdC0+a2V5LmRhdGEsIHNsb3QtPmtleS5ieXRlcywKLSAgICAgICAgICAgIGFsZywgaW5wdXQsIGlucHV0X2xlbmd0aCwKLSAgICAgICAgICAgIHNpZ25hdHVyZSwgc2lnbmF0dXJlX2xlbmd0aCk7Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgc3RhdHVzID0gcHNhX2RyaXZlcl93cmFwcGVyX3ZlcmlmeV9oYXNoKAotICAgICAgICAgICAgJnNsb3QtPmF0dHIsIHNsb3QtPmtleS5kYXRhLCBzbG90LT5rZXkuYnl0ZXMsCi0gICAgICAgICAgICBhbGcsIGlucHV0LCBpbnB1dF9sZW5ndGgsCi0gICAgICAgICAgICBzaWduYXR1cmUsIHNpZ25hdHVyZV9sZW5ndGgpOwotICAgIH0KLQotICAgIHVubG9ja19zdGF0dXMgPSBwc2FfdW5yZWdpc3Rlcl9yZWFkX3VuZGVyX211dGV4KHNsb3QpOwotCi0gICAgcmV0dXJuIChzdGF0dXMgPT0gUFNBX1NVQ0NFU1MpID8gdW5sb2NrX3N0YXR1cyA6IHN0YXR1czsKLQotfQotCi1wc2Ffc3RhdHVzX3QgcHNhX3NpZ25fbWVzc2FnZV9idWlsdGluKAotICAgIGNvbnN0IHBzYV9rZXlfYXR0cmlidXRlc190ICphdHRyaWJ1dGVzLAotICAgIGNvbnN0IHVpbnQ4X3QgKmtleV9idWZmZXIsCi0gICAgc2l6ZV90IGtleV9idWZmZXJfc2l6ZSwKLSAgICBwc2FfYWxnb3JpdGhtX3QgYWxnLAotICAgIGNvbnN0IHVpbnQ4X3QgKmlucHV0LAotICAgIHNpemVfdCBpbnB1dF9sZW5ndGgsCi0gICAgdWludDhfdCAqc2lnbmF0dXJlLAotICAgIHNpemVfdCBzaWduYXR1cmVfc2l6ZSwKLSAgICBzaXplX3QgKnNpZ25hdHVyZV9sZW5ndGgpCi17Ci0gICAgcHNhX3N0YXR1c190IHN0YXR1cyA9IFBTQV9FUlJPUl9DT1JSVVBUSU9OX0RFVEVDVEVEOwotCi0gICAgaWYgKFBTQV9BTEdfSVNfU0lHTl9IQVNIKGFsZykpIHsKLSAgICAgICAgc2l6ZV90IGhhc2hfbGVuZ3RoOwotICAgICAgICB1aW50OF90IGhhc2hbUFNBX0hBU0hfTUFYX1NJWkVdOwotCi0gICAgICAgIHN0YXR1cyA9IHBzYV9kcml2ZXJfd3JhcHBlcl9oYXNoX2NvbXB1dGUoCi0gICAgICAgICAgICBQU0FfQUxHX1NJR05fR0VUX0hBU0goYWxnKSwKLSAgICAgICAgICAgIGlucHV0LCBpbnB1dF9sZW5ndGgsCi0gICAgICAgICAgICBoYXNoLCBzaXplb2YoaGFzaCksICZoYXNoX2xlbmd0aCk7Ci0KLSAgICAgICAgaWYgKHN0YXR1cyAhPSBQU0FfU1VDQ0VTUykgewotICAgICAgICAgICAgcmV0dXJuIHN0YXR1czsKLSAgICAgICAgfQotCi0gICAgICAgIHJldHVybiBwc2FfZHJpdmVyX3dyYXBwZXJfc2lnbl9oYXNoKAotICAgICAgICAgICAgYXR0cmlidXRlcywga2V5X2J1ZmZlciwga2V5X2J1ZmZlcl9zaXplLAotICAgICAgICAgICAgYWxnLCBoYXNoLCBoYXNoX2xlbmd0aCwKLSAgICAgICAgICAgIHNpZ25hdHVyZSwgc2lnbmF0dXJlX3NpemUsIHNpZ25hdHVyZV9sZW5ndGgpOwotICAgIH0KLQotICAgIHJldHVybiBQU0FfRVJST1JfTk9UX1NVUFBPUlRFRDsKLX0KLQotcHNhX3N0YXR1c190IHBzYV9zaWduX21lc3NhZ2UobWJlZHRsc19zdmNfa2V5X2lkX3Qga2V5LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHNhX2FsZ29yaXRobV90IGFsZywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVpbnQ4X3QgKmlucHV0X2V4dGVybmFsLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IGlucHV0X2xlbmd0aCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQ4X3QgKnNpZ25hdHVyZV9leHRlcm5hbCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBzaWduYXR1cmVfc2l6ZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCAqc2lnbmF0dXJlX2xlbmd0aCkKLXsKLSAgICBwc2Ffc3RhdHVzX3Qgc3RhdHVzID0gUFNBX0VSUk9SX0NPUlJVUFRJT05fREVURUNURUQ7Ci0gICAgTE9DQUxfSU5QVVRfREVDTEFSRShpbnB1dF9leHRlcm5hbCwgaW5wdXQpOwotICAgIExPQ0FMX09VVFBVVF9ERUNMQVJFKHNpZ25hdHVyZV9leHRlcm5hbCwgc2lnbmF0dXJlKTsKLQotICAgIExPQ0FMX0lOUFVUX0FMTE9DKGlucHV0X2V4dGVybmFsLCBpbnB1dF9sZW5ndGgsIGlucHV0KTsKLSAgICBMT0NBTF9PVVRQVVRfQUxMT0Moc2lnbmF0dXJlX2V4dGVybmFsLCBzaWduYXR1cmVfc2l6ZSwgc2lnbmF0dXJlKTsKLSAgICBzdGF0dXMgPSBwc2Ffc2lnbl9pbnRlcm5hbChrZXksIDEsIGFsZywgaW5wdXQsIGlucHV0X2xlbmd0aCwgc2lnbmF0dXJlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpZ25hdHVyZV9zaXplLCBzaWduYXR1cmVfbGVuZ3RoKTsKLQotI2lmICFkZWZpbmVkKE1CRURUTFNfUFNBX0FTU1VNRV9FWENMVVNJVkVfQlVGRkVSUykKLWV4aXQ6Ci0jZW5kaWYKLSAgICBMT0NBTF9JTlBVVF9GUkVFKGlucHV0X2V4dGVybmFsLCBpbnB1dCk7Ci0gICAgTE9DQUxfT1VUUFVUX0ZSRUUoc2lnbmF0dXJlX2V4dGVybmFsLCBzaWduYXR1cmUpOwotICAgIHJldHVybiBzdGF0dXM7Ci19Ci0KLXBzYV9zdGF0dXNfdCBwc2FfdmVyaWZ5X21lc3NhZ2VfYnVpbHRpbigKLSAgICBjb25zdCBwc2Ffa2V5X2F0dHJpYnV0ZXNfdCAqYXR0cmlidXRlcywKLSAgICBjb25zdCB1aW50OF90ICprZXlfYnVmZmVyLAotICAgIHNpemVfdCBrZXlfYnVmZmVyX3NpemUsCi0gICAgcHNhX2FsZ29yaXRobV90IGFsZywKLSAgICBjb25zdCB1aW50OF90ICppbnB1dCwKLSAgICBzaXplX3QgaW5wdXRfbGVuZ3RoLAotICAgIGNvbnN0IHVpbnQ4X3QgKnNpZ25hdHVyZSwKLSAgICBzaXplX3Qgc2lnbmF0dXJlX2xlbmd0aCkKLXsKLSAgICBwc2Ffc3RhdHVzX3Qgc3RhdHVzID0gUFNBX0VSUk9SX0NPUlJVUFRJT05fREVURUNURUQ7Ci0KLSAgICBpZiAoUFNBX0FMR19JU19TSUdOX0hBU0goYWxnKSkgewotICAgICAgICBzaXplX3QgaGFzaF9sZW5ndGg7Ci0gICAgICAgIHVpbnQ4X3QgaGFzaFtQU0FfSEFTSF9NQVhfU0laRV07Ci0KLSAgICAgICAgc3RhdHVzID0gcHNhX2RyaXZlcl93cmFwcGVyX2hhc2hfY29tcHV0ZSgKLSAgICAgICAgICAgIFBTQV9BTEdfU0lHTl9HRVRfSEFTSChhbGcpLAotICAgICAgICAgICAgaW5wdXQsIGlucHV0X2xlbmd0aCwKLSAgICAgICAgICAgIGhhc2gsIHNpemVvZihoYXNoKSwgJmhhc2hfbGVuZ3RoKTsKLQotICAgICAgICBpZiAoc3RhdHVzICE9IFBTQV9TVUNDRVNTKSB7Ci0gICAgICAgICAgICByZXR1cm4gc3RhdHVzOwotICAgICAgICB9Ci0KLSAgICAgICAgcmV0dXJuIHBzYV9kcml2ZXJfd3JhcHBlcl92ZXJpZnlfaGFzaCgKLSAgICAgICAgICAgIGF0dHJpYnV0ZXMsIGtleV9idWZmZXIsIGtleV9idWZmZXJfc2l6ZSwKLSAgICAgICAgICAgIGFsZywgaGFzaCwgaGFzaF9sZW5ndGgsCi0gICAgICAgICAgICBzaWduYXR1cmUsIHNpZ25hdHVyZV9sZW5ndGgpOwotICAgIH0KLQotICAgIHJldHVybiBQU0FfRVJST1JfTk9UX1NVUFBPUlRFRDsKLX0KLQotcHNhX3N0YXR1c190IHBzYV92ZXJpZnlfbWVzc2FnZShtYmVkdGxzX3N2Y19rZXlfaWRfdCBrZXksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBzYV9hbGdvcml0aG1fdCBhbGcsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVpbnQ4X3QgKmlucHV0X2V4dGVybmFsLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgaW5wdXRfbGVuZ3RoLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1aW50OF90ICpzaWduYXR1cmVfZXh0ZXJuYWwsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBzaWduYXR1cmVfbGVuZ3RoKQotewotICAgIHBzYV9zdGF0dXNfdCBzdGF0dXMgPSBQU0FfRVJST1JfQ09SUlVQVElPTl9ERVRFQ1RFRDsKLSAgICBMT0NBTF9JTlBVVF9ERUNMQVJFKGlucHV0X2V4dGVybmFsLCBpbnB1dCk7Ci0gICAgTE9DQUxfSU5QVVRfREVDTEFSRShzaWduYXR1cmVfZXh0ZXJuYWwsIHNpZ25hdHVyZSk7Ci0KLSAgICBMT0NBTF9JTlBVVF9BTExPQyhpbnB1dF9leHRlcm5hbCwgaW5wdXRfbGVuZ3RoLCBpbnB1dCk7Ci0gICAgTE9DQUxfSU5QVVRfQUxMT0Moc2lnbmF0dXJlX2V4dGVybmFsLCBzaWduYXR1cmVfbGVuZ3RoLCBzaWduYXR1cmUpOwotICAgIHN0YXR1cyA9IHBzYV92ZXJpZnlfaW50ZXJuYWwoa2V5LCAxLCBhbGcsIGlucHV0LCBpbnB1dF9sZW5ndGgsIHNpZ25hdHVyZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpZ25hdHVyZV9sZW5ndGgpOwotCi0jaWYgIWRlZmluZWQoTUJFRFRMU19QU0FfQVNTVU1FX0VYQ0xVU0lWRV9CVUZGRVJTKQotZXhpdDoKLSNlbmRpZgotICAgIExPQ0FMX0lOUFVUX0ZSRUUoaW5wdXRfZXh0ZXJuYWwsIGlucHV0KTsKLSAgICBMT0NBTF9JTlBVVF9GUkVFKHNpZ25hdHVyZV9leHRlcm5hbCwgc2lnbmF0dXJlKTsKLQotICAgIHJldHVybiBzdGF0dXM7Ci19Ci0KLXBzYV9zdGF0dXNfdCBwc2Ffc2lnbl9oYXNoX2J1aWx0aW4oCi0gICAgY29uc3QgcHNhX2tleV9hdHRyaWJ1dGVzX3QgKmF0dHJpYnV0ZXMsCi0gICAgY29uc3QgdWludDhfdCAqa2V5X2J1ZmZlciwgc2l6ZV90IGtleV9idWZmZXJfc2l6ZSwKLSAgICBwc2FfYWxnb3JpdGhtX3QgYWxnLCBjb25zdCB1aW50OF90ICpoYXNoLCBzaXplX3QgaGFzaF9sZW5ndGgsCi0gICAgdWludDhfdCAqc2lnbmF0dXJlLCBzaXplX3Qgc2lnbmF0dXJlX3NpemUsIHNpemVfdCAqc2lnbmF0dXJlX2xlbmd0aCkKLXsKLSAgICBpZiAoYXR0cmlidXRlcy0+dHlwZSA9PSBQU0FfS0VZX1RZUEVfUlNBX0tFWV9QQUlSKSB7Ci0gICAgICAgIGlmIChQU0FfQUxHX0lTX1JTQV9QS0NTMVYxNV9TSUdOKGFsZykgfHwKLSAgICAgICAgICAgIFBTQV9BTEdfSVNfUlNBX1BTUyhhbGcpKSB7Ci0jaWYgZGVmaW5lZChNQkVEVExTX1BTQV9CVUlMVElOX0FMR19SU0FfUEtDUzFWMTVfU0lHTikgfHwgXAotICAgICAgICAgICAgZGVmaW5lZChNQkVEVExTX1BTQV9CVUlMVElOX0FMR19SU0FfUFNTKQotICAgICAgICAgICAgcmV0dXJuIG1iZWR0bHNfcHNhX3JzYV9zaWduX2hhc2goCi0gICAgICAgICAgICAgICAgYXR0cmlidXRlcywKLSAgICAgICAgICAgICAgICBrZXlfYnVmZmVyLCBrZXlfYnVmZmVyX3NpemUsCi0gICAgICAgICAgICAgICAgYWxnLCBoYXNoLCBoYXNoX2xlbmd0aCwKLSAgICAgICAgICAgICAgICBzaWduYXR1cmUsIHNpZ25hdHVyZV9zaXplLCBzaWduYXR1cmVfbGVuZ3RoKTsKLSNlbmRpZiAvKiBkZWZpbmVkKE1CRURUTFNfUFNBX0JVSUxUSU5fQUxHX1JTQV9QS0NTMVYxNV9TSUdOKSB8fAotICAgICAgICAqIGRlZmluZWQoTUJFRFRMU19QU0FfQlVJTFRJTl9BTEdfUlNBX1BTUykgKi8KLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIHJldHVybiBQU0FfRVJST1JfSU5WQUxJRF9BUkdVTUVOVDsKLSAgICAgICAgfQotICAgIH0gZWxzZSBpZiAoUFNBX0tFWV9UWVBFX0lTX0VDQyhhdHRyaWJ1dGVzLT50eXBlKSkgewotICAgICAgICBpZiAoUFNBX0FMR19JU19FQ0RTQShhbGcpKSB7Ci0jaWYgZGVmaW5lZChNQkVEVExTX1BTQV9CVUlMVElOX0FMR19FQ0RTQSkgfHwgXAotICAgICAgICAgICAgZGVmaW5lZChNQkVEVExTX1BTQV9CVUlMVElOX0FMR19ERVRFUk1JTklTVElDX0VDRFNBKQotICAgICAgICAgICAgcmV0dXJuIG1iZWR0bHNfcHNhX2VjZHNhX3NpZ25faGFzaCgKLSAgICAgICAgICAgICAgICBhdHRyaWJ1dGVzLAotICAgICAgICAgICAgICAgIGtleV9idWZmZXIsIGtleV9idWZmZXJfc2l6ZSwKLSAgICAgICAgICAgICAgICBhbGcsIGhhc2gsIGhhc2hfbGVuZ3RoLAotICAgICAgICAgICAgICAgIHNpZ25hdHVyZSwgc2lnbmF0dXJlX3NpemUsIHNpZ25hdHVyZV9sZW5ndGgpOwotI2VuZGlmIC8qIGRlZmluZWQoTUJFRFRMU19QU0FfQlVJTFRJTl9BTEdfRUNEU0EpIHx8Ci0gICAgICAgICogZGVmaW5lZChNQkVEVExTX1BTQV9CVUlMVElOX0FMR19ERVRFUk1JTklTVElDX0VDRFNBKSAqLwotICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgcmV0dXJuIFBTQV9FUlJPUl9JTlZBTElEX0FSR1VNRU5UOwotICAgICAgICB9Ci0gICAgfQotCi0gICAgKHZvaWQpIGtleV9idWZmZXI7Ci0gICAgKHZvaWQpIGtleV9idWZmZXJfc2l6ZTsKLSAgICAodm9pZCkgaGFzaDsKLSAgICAodm9pZCkgaGFzaF9sZW5ndGg7Ci0gICAgKHZvaWQpIHNpZ25hdHVyZTsKLSAgICAodm9pZCkgc2lnbmF0dXJlX3NpemU7Ci0gICAgKHZvaWQpIHNpZ25hdHVyZV9sZW5ndGg7Ci0KLSAgICByZXR1cm4gUFNBX0VSUk9SX05PVF9TVVBQT1JURUQ7Ci19Ci0KLXBzYV9zdGF0dXNfdCBwc2Ffc2lnbl9oYXNoKG1iZWR0bHNfc3ZjX2tleV9pZF90IGtleSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIHBzYV9hbGdvcml0aG1fdCBhbGcsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1aW50OF90ICpoYXNoX2V4dGVybmFsLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IGhhc2hfbGVuZ3RoLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDhfdCAqc2lnbmF0dXJlX2V4dGVybmFsLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IHNpZ25hdHVyZV9zaXplLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90ICpzaWduYXR1cmVfbGVuZ3RoKQotewotICAgIHBzYV9zdGF0dXNfdCBzdGF0dXMgPSBQU0FfRVJST1JfQ09SUlVQVElPTl9ERVRFQ1RFRDsKLSAgICBMT0NBTF9JTlBVVF9ERUNMQVJFKGhhc2hfZXh0ZXJuYWwsIGhhc2gpOwotICAgIExPQ0FMX09VVFBVVF9ERUNMQVJFKHNpZ25hdHVyZV9leHRlcm5hbCwgc2lnbmF0dXJlKTsKLQotICAgIExPQ0FMX0lOUFVUX0FMTE9DKGhhc2hfZXh0ZXJuYWwsIGhhc2hfbGVuZ3RoLCBoYXNoKTsKLSAgICBMT0NBTF9PVVRQVVRfQUxMT0Moc2lnbmF0dXJlX2V4dGVybmFsLCBzaWduYXR1cmVfc2l6ZSwgc2lnbmF0dXJlKTsKLSAgICBzdGF0dXMgPSBwc2Ffc2lnbl9pbnRlcm5hbChrZXksIDAsIGFsZywgaGFzaCwgaGFzaF9sZW5ndGgsIHNpZ25hdHVyZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaWduYXR1cmVfc2l6ZSwgc2lnbmF0dXJlX2xlbmd0aCk7Ci0KLSNpZiAhZGVmaW5lZChNQkVEVExTX1BTQV9BU1NVTUVfRVhDTFVTSVZFX0JVRkZFUlMpCi1leGl0OgotI2VuZGlmCi0gICAgTE9DQUxfSU5QVVRfRlJFRShoYXNoX2V4dGVybmFsLCBoYXNoKTsKLSAgICBMT0NBTF9PVVRQVVRfRlJFRShzaWduYXR1cmVfZXh0ZXJuYWwsIHNpZ25hdHVyZSk7Ci0KLSAgICByZXR1cm4gc3RhdHVzOwotfQotCi1wc2Ffc3RhdHVzX3QgcHNhX3ZlcmlmeV9oYXNoX2J1aWx0aW4oCi0gICAgY29uc3QgcHNhX2tleV9hdHRyaWJ1dGVzX3QgKmF0dHJpYnV0ZXMsCi0gICAgY29uc3QgdWludDhfdCAqa2V5X2J1ZmZlciwgc2l6ZV90IGtleV9idWZmZXJfc2l6ZSwKLSAgICBwc2FfYWxnb3JpdGhtX3QgYWxnLCBjb25zdCB1aW50OF90ICpoYXNoLCBzaXplX3QgaGFzaF9sZW5ndGgsCi0gICAgY29uc3QgdWludDhfdCAqc2lnbmF0dXJlLCBzaXplX3Qgc2lnbmF0dXJlX2xlbmd0aCkKLXsKLSAgICBpZiAoUFNBX0tFWV9UWVBFX0lTX1JTQShhdHRyaWJ1dGVzLT50eXBlKSkgewotICAgICAgICBpZiAoUFNBX0FMR19JU19SU0FfUEtDUzFWMTVfU0lHTihhbGcpIHx8Ci0gICAgICAgICAgICBQU0FfQUxHX0lTX1JTQV9QU1MoYWxnKSkgewotI2lmIGRlZmluZWQoTUJFRFRMU19QU0FfQlVJTFRJTl9BTEdfUlNBX1BLQ1MxVjE1X1NJR04pIHx8IFwKLSAgICAgICAgICAgIGRlZmluZWQoTUJFRFRMU19QU0FfQlVJTFRJTl9BTEdfUlNBX1BTUykKLSAgICAgICAgICAgIHJldHVybiBtYmVkdGxzX3BzYV9yc2FfdmVyaWZ5X2hhc2goCi0gICAgICAgICAgICAgICAgYXR0cmlidXRlcywKLSAgICAgICAgICAgICAgICBrZXlfYnVmZmVyLCBrZXlfYnVmZmVyX3NpemUsCi0gICAgICAgICAgICAgICAgYWxnLCBoYXNoLCBoYXNoX2xlbmd0aCwKLSAgICAgICAgICAgICAgICBzaWduYXR1cmUsIHNpZ25hdHVyZV9sZW5ndGgpOwotI2VuZGlmIC8qIGRlZmluZWQoTUJFRFRMU19QU0FfQlVJTFRJTl9BTEdfUlNBX1BLQ1MxVjE1X1NJR04pIHx8Ci0gICAgICAgICogZGVmaW5lZChNQkVEVExTX1BTQV9CVUlMVElOX0FMR19SU0FfUFNTKSAqLwotICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgcmV0dXJuIFBTQV9FUlJPUl9JTlZBTElEX0FSR1VNRU5UOwotICAgICAgICB9Ci0gICAgfSBlbHNlIGlmIChQU0FfS0VZX1RZUEVfSVNfRUNDKGF0dHJpYnV0ZXMtPnR5cGUpKSB7Ci0gICAgICAgIGlmIChQU0FfQUxHX0lTX0VDRFNBKGFsZykpIHsKLSNpZiBkZWZpbmVkKE1CRURUTFNfUFNBX0JVSUxUSU5fQUxHX0VDRFNBKSB8fCBcCi0gICAgICAgICAgICBkZWZpbmVkKE1CRURUTFNfUFNBX0JVSUxUSU5fQUxHX0RFVEVSTUlOSVNUSUNfRUNEU0EpCi0gICAgICAgICAgICByZXR1cm4gbWJlZHRsc19wc2FfZWNkc2FfdmVyaWZ5X2hhc2goCi0gICAgICAgICAgICAgICAgYXR0cmlidXRlcywKLSAgICAgICAgICAgICAgICBrZXlfYnVmZmVyLCBrZXlfYnVmZmVyX3NpemUsCi0gICAgICAgICAgICAgICAgYWxnLCBoYXNoLCBoYXNoX2xlbmd0aCwKLSAgICAgICAgICAgICAgICBzaWduYXR1cmUsIHNpZ25hdHVyZV9sZW5ndGgpOwotI2VuZGlmIC8qIGRlZmluZWQoTUJFRFRMU19QU0FfQlVJTFRJTl9BTEdfRUNEU0EpIHx8Ci0gICAgICAgICogZGVmaW5lZChNQkVEVExTX1BTQV9CVUlMVElOX0FMR19ERVRFUk1JTklTVElDX0VDRFNBKSAqLwotICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgcmV0dXJuIFBTQV9FUlJPUl9JTlZBTElEX0FSR1VNRU5UOwotICAgICAgICB9Ci0gICAgfQotCi0gICAgKHZvaWQpIGtleV9idWZmZXI7Ci0gICAgKHZvaWQpIGtleV9idWZmZXJfc2l6ZTsKLSAgICAodm9pZCkgaGFzaDsKLSAgICAodm9pZCkgaGFzaF9sZW5ndGg7Ci0gICAgKHZvaWQpIHNpZ25hdHVyZTsKLSAgICAodm9pZCkgc2lnbmF0dXJlX2xlbmd0aDsKLQotICAgIHJldHVybiBQU0FfRVJST1JfTk9UX1NVUFBPUlRFRDsKLX0KLQotcHNhX3N0YXR1c190IHBzYV92ZXJpZnlfaGFzaChtYmVkdGxzX3N2Y19rZXlfaWRfdCBrZXksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBzYV9hbGdvcml0aG1fdCBhbGcsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVpbnQ4X3QgKmhhc2hfZXh0ZXJuYWwsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBoYXNoX2xlbmd0aCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdWludDhfdCAqc2lnbmF0dXJlX2V4dGVybmFsLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3Qgc2lnbmF0dXJlX2xlbmd0aCkKLXsKLSAgICBwc2Ffc3RhdHVzX3Qgc3RhdHVzID0gUFNBX0VSUk9SX0NPUlJVUFRJT05fREVURUNURUQ7Ci0gICAgTE9DQUxfSU5QVVRfREVDTEFSRShoYXNoX2V4dGVybmFsLCBoYXNoKTsKLSAgICBMT0NBTF9JTlBVVF9ERUNMQVJFKHNpZ25hdHVyZV9leHRlcm5hbCwgc2lnbmF0dXJlKTsKLQotICAgIExPQ0FMX0lOUFVUX0FMTE9DKGhhc2hfZXh0ZXJuYWwsIGhhc2hfbGVuZ3RoLCBoYXNoKTsKLSAgICBMT0NBTF9JTlBVVF9BTExPQyhzaWduYXR1cmVfZXh0ZXJuYWwsIHNpZ25hdHVyZV9sZW5ndGgsIHNpZ25hdHVyZSk7Ci0gICAgc3RhdHVzID0gcHNhX3ZlcmlmeV9pbnRlcm5hbChrZXksIDAsIGFsZywgaGFzaCwgaGFzaF9sZW5ndGgsIHNpZ25hdHVyZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpZ25hdHVyZV9sZW5ndGgpOwotCi0jaWYgIWRlZmluZWQoTUJFRFRMU19QU0FfQVNTVU1FX0VYQ0xVU0lWRV9CVUZGRVJTKQotZXhpdDoKLSNlbmRpZgotICAgIExPQ0FMX0lOUFVUX0ZSRUUoaGFzaF9leHRlcm5hbCwgaGFzaCk7Ci0gICAgTE9DQUxfSU5QVVRfRlJFRShzaWduYXR1cmVfZXh0ZXJuYWwsIHNpZ25hdHVyZSk7Ci0KLSAgICByZXR1cm4gc3RhdHVzOwotfQotCi1wc2Ffc3RhdHVzX3QgcHNhX2FzeW1tZXRyaWNfZW5jcnlwdChtYmVkdGxzX3N2Y19rZXlfaWRfdCBrZXksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwc2FfYWxnb3JpdGhtX3QgYWxnLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdWludDhfdCAqaW5wdXRfZXh0ZXJuYWwsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgaW5wdXRfbGVuZ3RoLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdWludDhfdCAqc2FsdF9leHRlcm5hbCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBzYWx0X2xlbmd0aCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQ4X3QgKm91dHB1dF9leHRlcm5hbCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBvdXRwdXRfc2l6ZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCAqb3V0cHV0X2xlbmd0aCkKLXsKLSAgICBwc2Ffc3RhdHVzX3Qgc3RhdHVzID0gUFNBX0VSUk9SX0NPUlJVUFRJT05fREVURUNURUQ7Ci0gICAgcHNhX3N0YXR1c190IHVubG9ja19zdGF0dXMgPSBQU0FfRVJST1JfQ09SUlVQVElPTl9ERVRFQ1RFRDsKLSAgICBwc2Ffa2V5X3Nsb3RfdCAqc2xvdDsKLQotICAgIExPQ0FMX0lOUFVUX0RFQ0xBUkUoaW5wdXRfZXh0ZXJuYWwsIGlucHV0KTsKLSAgICBMT0NBTF9JTlBVVF9ERUNMQVJFKHNhbHRfZXh0ZXJuYWwsIHNhbHQpOwotICAgIExPQ0FMX09VVFBVVF9ERUNMQVJFKG91dHB1dF9leHRlcm5hbCwgb3V0cHV0KTsKLQotICAgICh2b2lkKSBpbnB1dDsKLSAgICAodm9pZCkgaW5wdXRfbGVuZ3RoOwotICAgICh2b2lkKSBzYWx0OwotICAgICh2b2lkKSBvdXRwdXQ7Ci0gICAgKHZvaWQpIG91dHB1dF9zaXplOwotCi0gICAgKm91dHB1dF9sZW5ndGggPSAwOwotCi0gICAgaWYgKCFQU0FfQUxHX0lTX1JTQV9PQUVQKGFsZykgJiYgc2FsdF9sZW5ndGggIT0gMCkgewotICAgICAgICByZXR1cm4gUFNBX0VSUk9SX0lOVkFMSURfQVJHVU1FTlQ7Ci0gICAgfQotCi0gICAgc3RhdHVzID0gcHNhX2dldF9hbmRfbG9ja19rZXlfc2xvdF93aXRoX3BvbGljeSgKLSAgICAgICAga2V5LCAmc2xvdCwgUFNBX0tFWV9VU0FHRV9FTkNSWVBULCBhbGcpOwotICAgIGlmIChzdGF0dXMgIT0gUFNBX1NVQ0NFU1MpIHsKLSAgICAgICAgcmV0dXJuIHN0YXR1czsKLSAgICB9Ci0gICAgaWYgKCEoUFNBX0tFWV9UWVBFX0lTX1BVQkxJQ19LRVkoc2xvdC0+YXR0ci50eXBlKSB8fAotICAgICAgICAgIFBTQV9LRVlfVFlQRV9JU19LRVlfUEFJUihzbG90LT5hdHRyLnR5cGUpKSkgewotICAgICAgICBzdGF0dXMgPSBQU0FfRVJST1JfSU5WQUxJRF9BUkdVTUVOVDsKLSAgICAgICAgZ290byBleGl0OwotICAgIH0KLQotICAgIExPQ0FMX0lOUFVUX0FMTE9DKGlucHV0X2V4dGVybmFsLCBpbnB1dF9sZW5ndGgsIGlucHV0KTsKLSAgICBMT0NBTF9JTlBVVF9BTExPQyhzYWx0X2V4dGVybmFsLCBzYWx0X2xlbmd0aCwgc2FsdCk7Ci0gICAgTE9DQUxfT1VUUFVUX0FMTE9DKG91dHB1dF9leHRlcm5hbCwgb3V0cHV0X3NpemUsIG91dHB1dCk7Ci0KLSAgICBzdGF0dXMgPSBwc2FfZHJpdmVyX3dyYXBwZXJfYXN5bW1ldHJpY19lbmNyeXB0KAotICAgICAgICAmc2xvdC0+YXR0ciwgc2xvdC0+a2V5LmRhdGEsIHNsb3QtPmtleS5ieXRlcywKLSAgICAgICAgYWxnLCBpbnB1dCwgaW5wdXRfbGVuZ3RoLCBzYWx0LCBzYWx0X2xlbmd0aCwKLSAgICAgICAgb3V0cHV0LCBvdXRwdXRfc2l6ZSwgb3V0cHV0X2xlbmd0aCk7Ci1leGl0OgotICAgIHVubG9ja19zdGF0dXMgPSBwc2FfdW5yZWdpc3Rlcl9yZWFkX3VuZGVyX211dGV4KHNsb3QpOwotCi0gICAgTE9DQUxfSU5QVVRfRlJFRShpbnB1dF9leHRlcm5hbCwgaW5wdXQpOwotICAgIExPQ0FMX0lOUFVUX0ZSRUUoc2FsdF9leHRlcm5hbCwgc2FsdCk7Ci0gICAgTE9DQUxfT1VUUFVUX0ZSRUUob3V0cHV0X2V4dGVybmFsLCBvdXRwdXQpOwotCi0gICAgcmV0dXJuIChzdGF0dXMgPT0gUFNBX1NVQ0NFU1MpID8gdW5sb2NrX3N0YXR1cyA6IHN0YXR1czsKLX0KLQotcHNhX3N0YXR1c190IHBzYV9hc3ltbWV0cmljX2RlY3J5cHQobWJlZHRsc19zdmNfa2V5X2lkX3Qga2V5LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHNhX2FsZ29yaXRobV90IGFsZywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVpbnQ4X3QgKmlucHV0X2V4dGVybmFsLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IGlucHV0X2xlbmd0aCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVpbnQ4X3QgKnNhbHRfZXh0ZXJuYWwsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3Qgc2FsdF9sZW5ndGgsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50OF90ICpvdXRwdXRfZXh0ZXJuYWwsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3Qgb3V0cHV0X3NpemUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgKm91dHB1dF9sZW5ndGgpCi17Ci0gICAgcHNhX3N0YXR1c190IHN0YXR1cyA9IFBTQV9FUlJPUl9DT1JSVVBUSU9OX0RFVEVDVEVEOwotICAgIHBzYV9zdGF0dXNfdCB1bmxvY2tfc3RhdHVzID0gUFNBX0VSUk9SX0NPUlJVUFRJT05fREVURUNURUQ7Ci0gICAgcHNhX2tleV9zbG90X3QgKnNsb3Q7Ci0KLSAgICBMT0NBTF9JTlBVVF9ERUNMQVJFKGlucHV0X2V4dGVybmFsLCBpbnB1dCk7Ci0gICAgTE9DQUxfSU5QVVRfREVDTEFSRShzYWx0X2V4dGVybmFsLCBzYWx0KTsKLSAgICBMT0NBTF9PVVRQVVRfREVDTEFSRShvdXRwdXRfZXh0ZXJuYWwsIG91dHB1dCk7Ci0KLSAgICAodm9pZCkgaW5wdXQ7Ci0gICAgKHZvaWQpIGlucHV0X2xlbmd0aDsKLSAgICAodm9pZCkgc2FsdDsKLSAgICAodm9pZCkgb3V0cHV0OwotICAgICh2b2lkKSBvdXRwdXRfc2l6ZTsKLQotICAgICpvdXRwdXRfbGVuZ3RoID0gMDsKLQotICAgIGlmICghUFNBX0FMR19JU19SU0FfT0FFUChhbGcpICYmIHNhbHRfbGVuZ3RoICE9IDApIHsKLSAgICAgICAgcmV0dXJuIFBTQV9FUlJPUl9JTlZBTElEX0FSR1VNRU5UOwotICAgIH0KLQotICAgIHN0YXR1cyA9IHBzYV9nZXRfYW5kX2xvY2tfa2V5X3Nsb3Rfd2l0aF9wb2xpY3koCi0gICAgICAgIGtleSwgJnNsb3QsIFBTQV9LRVlfVVNBR0VfREVDUllQVCwgYWxnKTsKLSAgICBpZiAoc3RhdHVzICE9IFBTQV9TVUNDRVNTKSB7Ci0gICAgICAgIHJldHVybiBzdGF0dXM7Ci0gICAgfQotICAgIGlmICghUFNBX0tFWV9UWVBFX0lTX0tFWV9QQUlSKHNsb3QtPmF0dHIudHlwZSkpIHsKLSAgICAgICAgc3RhdHVzID0gUFNBX0VSUk9SX0lOVkFMSURfQVJHVU1FTlQ7Ci0gICAgICAgIGdvdG8gZXhpdDsKLSAgICB9Ci0KLSAgICBMT0NBTF9JTlBVVF9BTExPQyhpbnB1dF9leHRlcm5hbCwgaW5wdXRfbGVuZ3RoLCBpbnB1dCk7Ci0gICAgTE9DQUxfSU5QVVRfQUxMT0Moc2FsdF9leHRlcm5hbCwgc2FsdF9sZW5ndGgsIHNhbHQpOwotICAgIExPQ0FMX09VVFBVVF9BTExPQyhvdXRwdXRfZXh0ZXJuYWwsIG91dHB1dF9zaXplLCBvdXRwdXQpOwotCi0gICAgc3RhdHVzID0gcHNhX2RyaXZlcl93cmFwcGVyX2FzeW1tZXRyaWNfZGVjcnlwdCgKLSAgICAgICAgJnNsb3QtPmF0dHIsIHNsb3QtPmtleS5kYXRhLCBzbG90LT5rZXkuYnl0ZXMsCi0gICAgICAgIGFsZywgaW5wdXQsIGlucHV0X2xlbmd0aCwgc2FsdCwgc2FsdF9sZW5ndGgsCi0gICAgICAgIG91dHB1dCwgb3V0cHV0X3NpemUsIG91dHB1dF9sZW5ndGgpOwotCi1leGl0OgotICAgIHVubG9ja19zdGF0dXMgPSBwc2FfdW5yZWdpc3Rlcl9yZWFkX3VuZGVyX211dGV4KHNsb3QpOwotCi0gICAgTE9DQUxfSU5QVVRfRlJFRShpbnB1dF9leHRlcm5hbCwgaW5wdXQpOwotICAgIExPQ0FMX0lOUFVUX0ZSRUUoc2FsdF9leHRlcm5hbCwgc2FsdCk7Ci0gICAgTE9DQUxfT1VUUFVUX0ZSRUUob3V0cHV0X2V4dGVybmFsLCBvdXRwdXQpOwotCi0gICAgcmV0dXJuIChzdGF0dXMgPT0gUFNBX1NVQ0NFU1MpID8gdW5sb2NrX3N0YXR1cyA6IHN0YXR1czsKLX0KLQotLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCi0vKiBBc3ltbWV0cmljIGludGVycnVwdGlibGUgY3J5cHRvZ3JhcGh5ICAgICAgICAgICAgICAgICAgICAgICAgKi8KLS8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwotCi1zdGF0aWMgdWludDMyX3QgcHNhX2ludGVycnVwdGlibGVfbWF4X29wcyA9IFBTQV9JTlRFUlJVUFRJQkxFX01BWF9PUFNfVU5MSU1JVEVEOwotCi12b2lkIHBzYV9pbnRlcnJ1cHRpYmxlX3NldF9tYXhfb3BzKHVpbnQzMl90IG1heF9vcHMpCi17Ci0gICAgcHNhX2ludGVycnVwdGlibGVfbWF4X29wcyA9IG1heF9vcHM7Ci19Ci0KLXVpbnQzMl90IHBzYV9pbnRlcnJ1cHRpYmxlX2dldF9tYXhfb3BzKHZvaWQpCi17Ci0gICAgcmV0dXJuIHBzYV9pbnRlcnJ1cHRpYmxlX21heF9vcHM7Ci19Ci0KLXVpbnQzMl90IHBzYV9zaWduX2hhc2hfZ2V0X251bV9vcHMoCi0gICAgY29uc3QgcHNhX3NpZ25faGFzaF9pbnRlcnJ1cHRpYmxlX29wZXJhdGlvbl90ICpvcGVyYXRpb24pCi17Ci0gICAgcmV0dXJuIG9wZXJhdGlvbi0+bnVtX29wczsKLX0KLQotdWludDMyX3QgcHNhX3ZlcmlmeV9oYXNoX2dldF9udW1fb3BzKAotICAgIGNvbnN0IHBzYV92ZXJpZnlfaGFzaF9pbnRlcnJ1cHRpYmxlX29wZXJhdGlvbl90ICpvcGVyYXRpb24pCi17Ci0gICAgcmV0dXJuIG9wZXJhdGlvbi0+bnVtX29wczsKLX0KLQotc3RhdGljIHBzYV9zdGF0dXNfdCBwc2Ffc2lnbl9oYXNoX2Fib3J0X2ludGVybmFsKAotICAgIHBzYV9zaWduX2hhc2hfaW50ZXJydXB0aWJsZV9vcGVyYXRpb25fdCAqb3BlcmF0aW9uKQotewotICAgIGlmIChvcGVyYXRpb24tPmlkID09IDApIHsKLSAgICAgICAgLyogVGhlIG9iamVjdCBoYXMgKGFwcGFyZW50bHkpIGJlZW4gaW5pdGlhbGl6ZWQgYnV0IGl0IGlzIG5vdCAoeWV0KQotICAgICAgICAgKiBpbiB1c2UuIEl0J3Mgb2sgdG8gY2FsbCBhYm9ydCBvbiBzdWNoIGFuIG9iamVjdCwgYW5kIHRoZXJlJ3MKLSAgICAgICAgICogbm90aGluZyB0byBkby4gKi8KLSAgICAgICAgcmV0dXJuIFBTQV9TVUNDRVNTOwotICAgIH0KLQotICAgIHBzYV9zdGF0dXNfdCBzdGF0dXMgPSBQU0FfRVJST1JfQ09SUlVQVElPTl9ERVRFQ1RFRDsKLQotICAgIHN0YXR1cyA9IHBzYV9kcml2ZXJfd3JhcHBlcl9zaWduX2hhc2hfYWJvcnQob3BlcmF0aW9uKTsKLQotICAgIG9wZXJhdGlvbi0+aWQgPSAwOwotCi0gICAgLyogRG8gbm90IGNsZWFyIGVpdGhlciB0aGUgZXJyb3Jfb2NjdXJyZWQgb3IgbnVtX29wcyBlbGVtZW50cyBoZXJlIGFzIHRoZXkKLSAgICAgKiBvbmx5IHdhbnQgdG8gYmUgY2xlYXJlZCBieSB0aGUgYXBwbGljYXRpb24gY2FsbGluZyBhYm9ydCwgbm90IGJ5IGFib3J0Ci0gICAgICogYmVpbmcgY2FsbGVkIGF0IGNvbXBsZXRpb24gb2YgYW4gb3BlcmF0aW9uLiAqLwotCi0gICAgcmV0dXJuIHN0YXR1czsKLX0KLQotcHNhX3N0YXR1c190IHBzYV9zaWduX2hhc2hfc3RhcnQoCi0gICAgcHNhX3NpZ25faGFzaF9pbnRlcnJ1cHRpYmxlX29wZXJhdGlvbl90ICpvcGVyYXRpb24sCi0gICAgbWJlZHRsc19zdmNfa2V5X2lkX3Qga2V5LCBwc2FfYWxnb3JpdGhtX3QgYWxnLAotICAgIGNvbnN0IHVpbnQ4X3QgKmhhc2hfZXh0ZXJuYWwsIHNpemVfdCBoYXNoX2xlbmd0aCkKLXsKLSAgICBwc2Ffc3RhdHVzX3Qgc3RhdHVzID0gUFNBX0VSUk9SX0NPUlJVUFRJT05fREVURUNURUQ7Ci0gICAgcHNhX3N0YXR1c190IHVubG9ja19zdGF0dXMgPSBQU0FfRVJST1JfQ09SUlVQVElPTl9ERVRFQ1RFRDsKLSAgICBwc2Ffa2V5X3Nsb3RfdCAqc2xvdDsKLQotICAgIExPQ0FMX0lOUFVUX0RFQ0xBUkUoaGFzaF9leHRlcm5hbCwgaGFzaCk7Ci0KLSAgICAvKiBDaGVjayB0aGF0IHN0YXJ0IGhhcyBub3QgYmVlbiBwcmV2aW91c2x5IGNhbGxlZCwgb3Igb3BlcmF0aW9uIGhhcyBub3QKLSAgICAgKiBwcmV2aW91c2x5IGVycm9yZWQuICovCi0gICAgaWYgKG9wZXJhdGlvbi0+aWQgIT0gMCB8fCBvcGVyYXRpb24tPmVycm9yX29jY3VycmVkKSB7Ci0gICAgICAgIHJldHVybiBQU0FfRVJST1JfQkFEX1NUQVRFOwotICAgIH0KLQotICAgIHN0YXR1cyA9IHBzYV9zaWduX3ZlcmlmeV9jaGVja19hbGcoMCwgYWxnKTsKLSAgICBpZiAoc3RhdHVzICE9IFBTQV9TVUNDRVNTKSB7Ci0gICAgICAgIG9wZXJhdGlvbi0+ZXJyb3Jfb2NjdXJyZWQgPSAxOwotICAgICAgICByZXR1cm4gc3RhdHVzOwotICAgIH0KLQotICAgIHN0YXR1cyA9IHBzYV9nZXRfYW5kX2xvY2tfa2V5X3Nsb3Rfd2l0aF9wb2xpY3koa2V5LCAmc2xvdCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBTQV9LRVlfVVNBR0VfU0lHTl9IQVNILAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWxnKTsKLQotICAgIGlmIChzdGF0dXMgIT0gUFNBX1NVQ0NFU1MpIHsKLSAgICAgICAgZ290byBleGl0OwotICAgIH0KLQotICAgIGlmICghUFNBX0tFWV9UWVBFX0lTX0tFWV9QQUlSKHNsb3QtPmF0dHIudHlwZSkpIHsKLSAgICAgICAgc3RhdHVzID0gUFNBX0VSUk9SX0lOVkFMSURfQVJHVU1FTlQ7Ci0gICAgICAgIGdvdG8gZXhpdDsKLSAgICB9Ci0KLSAgICBMT0NBTF9JTlBVVF9BTExPQyhoYXNoX2V4dGVybmFsLCBoYXNoX2xlbmd0aCwgaGFzaCk7Ci0KLSAgICAvKiBFbnN1cmUgb3BzIGNvdW50IGdldHMgcmVzZXQsIGluIGNhc2Ugb2Ygb3BlcmF0aW9uIHJlLXVzZS4gKi8KLSAgICBvcGVyYXRpb24tPm51bV9vcHMgPSAwOwotCi0gICAgc3RhdHVzID0gcHNhX2RyaXZlcl93cmFwcGVyX3NpZ25faGFzaF9zdGFydChvcGVyYXRpb24sICZzbG90LT5hdHRyLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2xvdC0+a2V5LmRhdGEsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzbG90LT5rZXkuYnl0ZXMsIGFsZywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhc2gsIGhhc2hfbGVuZ3RoKTsKLWV4aXQ6Ci0KLSAgICBpZiAoc3RhdHVzICE9IFBTQV9TVUNDRVNTKSB7Ci0gICAgICAgIG9wZXJhdGlvbi0+ZXJyb3Jfb2NjdXJyZWQgPSAxOwotICAgICAgICBwc2Ffc2lnbl9oYXNoX2Fib3J0X2ludGVybmFsKG9wZXJhdGlvbik7Ci0gICAgfQotCi0gICAgdW5sb2NrX3N0YXR1cyA9IHBzYV91bnJlZ2lzdGVyX3JlYWRfdW5kZXJfbXV0ZXgoc2xvdCk7Ci0KLSAgICBpZiAodW5sb2NrX3N0YXR1cyAhPSBQU0FfU1VDQ0VTUykgewotICAgICAgICBvcGVyYXRpb24tPmVycm9yX29jY3VycmVkID0gMTsKLSAgICB9Ci0KLSAgICBMT0NBTF9JTlBVVF9GUkVFKGhhc2hfZXh0ZXJuYWwsIGhhc2gpOwotCi0gICAgcmV0dXJuIChzdGF0dXMgPT0gUFNBX1NVQ0NFU1MpID8gdW5sb2NrX3N0YXR1cyA6IHN0YXR1czsKLX0KLQotCi1wc2Ffc3RhdHVzX3QgcHNhX3NpZ25faGFzaF9jb21wbGV0ZSgKLSAgICBwc2Ffc2lnbl9oYXNoX2ludGVycnVwdGlibGVfb3BlcmF0aW9uX3QgKm9wZXJhdGlvbiwKLSAgICB1aW50OF90ICpzaWduYXR1cmVfZXh0ZXJuYWwsIHNpemVfdCBzaWduYXR1cmVfc2l6ZSwKLSAgICBzaXplX3QgKnNpZ25hdHVyZV9sZW5ndGgpCi17Ci0gICAgcHNhX3N0YXR1c190IHN0YXR1cyA9IFBTQV9FUlJPUl9DT1JSVVBUSU9OX0RFVEVDVEVEOwotCi0gICAgTE9DQUxfT1VUUFVUX0RFQ0xBUkUoc2lnbmF0dXJlX2V4dGVybmFsLCBzaWduYXR1cmUpOwotCi0gICAgKnNpZ25hdHVyZV9sZW5ndGggPSAwOwotCi0gICAgLyogQ2hlY2sgdGhhdCBzdGFydCBoYXMgYmVlbiBjYWxsZWQgZmlyc3QsIGFuZCB0aGF0IG9wZXJhdGlvbiBoYXMgbm90Ci0gICAgICogcHJldmlvdXNseSBlcnJvcmVkLiAqLwotICAgIGlmIChvcGVyYXRpb24tPmlkID09IDAgfHwgb3BlcmF0aW9uLT5lcnJvcl9vY2N1cnJlZCkgewotICAgICAgICBzdGF0dXMgPSBQU0FfRVJST1JfQkFEX1NUQVRFOwotICAgICAgICBnb3RvIGV4aXQ7Ci0gICAgfQotCi0gICAgLyogSW1tZWRpYXRlbHkgcmVqZWN0IGEgemVyby1sZW5ndGggc2lnbmF0dXJlIGJ1ZmZlci4gVGhpcyBndWFyYW50ZWVzIHRoYXQKLSAgICAgKiBzaWduYXR1cmUgbXVzdCBiZSBhIHZhbGlkIHBvaW50ZXIuICovCi0gICAgaWYgKHNpZ25hdHVyZV9zaXplID09IDApIHsKLSAgICAgICAgc3RhdHVzID0gUFNBX0VSUk9SX0JVRkZFUl9UT09fU01BTEw7Ci0gICAgICAgIGdvdG8gZXhpdDsKLSAgICB9Ci0KLSAgICBMT0NBTF9PVVRQVVRfQUxMT0Moc2lnbmF0dXJlX2V4dGVybmFsLCBzaWduYXR1cmVfc2l6ZSwgc2lnbmF0dXJlKTsKLQotICAgIHN0YXR1cyA9IHBzYV9kcml2ZXJfd3JhcHBlcl9zaWduX2hhc2hfY29tcGxldGUob3BlcmF0aW9uLCBzaWduYXR1cmUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaWduYXR1cmVfc2l6ZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpZ25hdHVyZV9sZW5ndGgpOwotCi0gICAgLyogVXBkYXRlIG9wcyBjb3VudCB3aXRoIHdvcmsgZG9uZS4gKi8KLSAgICBvcGVyYXRpb24tPm51bV9vcHMgPSBwc2FfZHJpdmVyX3dyYXBwZXJfc2lnbl9oYXNoX2dldF9udW1fb3BzKG9wZXJhdGlvbik7Ci0KLWV4aXQ6Ci0KLSAgICBpZiAoc2lnbmF0dXJlICE9IE5VTEwpIHsKLSAgICAgICAgcHNhX3dpcGVfdGFnX291dHB1dF9idWZmZXIoc2lnbmF0dXJlLCBzdGF0dXMsIHNpZ25hdHVyZV9zaXplLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqc2lnbmF0dXJlX2xlbmd0aCk7Ci0gICAgfQotCi0gICAgaWYgKHN0YXR1cyAhPSBQU0FfT1BFUkFUSU9OX0lOQ09NUExFVEUpIHsKLSAgICAgICAgaWYgKHN0YXR1cyAhPSBQU0FfU1VDQ0VTUykgewotICAgICAgICAgICAgb3BlcmF0aW9uLT5lcnJvcl9vY2N1cnJlZCA9IDE7Ci0gICAgICAgIH0KLQotICAgICAgICBwc2Ffc2lnbl9oYXNoX2Fib3J0X2ludGVybmFsKG9wZXJhdGlvbik7Ci0gICAgfQotCi0gICAgTE9DQUxfT1VUUFVUX0ZSRUUoc2lnbmF0dXJlX2V4dGVybmFsLCBzaWduYXR1cmUpOwotCi0gICAgcmV0dXJuIHN0YXR1czsKLX0KLQotcHNhX3N0YXR1c190IHBzYV9zaWduX2hhc2hfYWJvcnQoCi0gICAgcHNhX3NpZ25faGFzaF9pbnRlcnJ1cHRpYmxlX29wZXJhdGlvbl90ICpvcGVyYXRpb24pCi17Ci0gICAgcHNhX3N0YXR1c190IHN0YXR1cyA9IFBTQV9FUlJPUl9DT1JSVVBUSU9OX0RFVEVDVEVEOwotCi0gICAgc3RhdHVzID0gcHNhX3NpZ25faGFzaF9hYm9ydF9pbnRlcm5hbChvcGVyYXRpb24pOwotCi0gICAgLyogV2UgY2xlYXIgdGhlIG51bWJlciBvZiBvcHMgZG9uZSBoZXJlLCBzbyB0aGF0IGl0IGlzIG5vdCBjbGVhcmVkIHdoZW4KLSAgICAgKiB0aGUgb3BlcmF0aW9uIGZhaWxzIG9yIHN1Y2NlZWRzLCBvbmx5IG9uIG1hbnVhbCBhYm9ydC4gKi8KLSAgICBvcGVyYXRpb24tPm51bV9vcHMgPSAwOwotCi0gICAgLyogTGlrZXdpc2UsIGZhaWx1cmUgc3RhdGUuICovCi0gICAgb3BlcmF0aW9uLT5lcnJvcl9vY2N1cnJlZCA9IDA7Ci0KLSAgICByZXR1cm4gc3RhdHVzOwotfQotCi1zdGF0aWMgcHNhX3N0YXR1c190IHBzYV92ZXJpZnlfaGFzaF9hYm9ydF9pbnRlcm5hbCgKLSAgICBwc2FfdmVyaWZ5X2hhc2hfaW50ZXJydXB0aWJsZV9vcGVyYXRpb25fdCAqb3BlcmF0aW9uKQotewotICAgIGlmIChvcGVyYXRpb24tPmlkID09IDApIHsKLSAgICAgICAgLyogVGhlIG9iamVjdCBoYXMgKGFwcGFyZW50bHkpIGJlZW4gaW5pdGlhbGl6ZWQgYnV0IGl0IGlzIG5vdCAoeWV0KQotICAgICAgICAgKiBpbiB1c2UuIEl0J3Mgb2sgdG8gY2FsbCBhYm9ydCBvbiBzdWNoIGFuIG9iamVjdCwgYW5kIHRoZXJlJ3MKLSAgICAgICAgICogbm90aGluZyB0byBkby4gKi8KLSAgICAgICAgcmV0dXJuIFBTQV9TVUNDRVNTOwotICAgIH0KLQotICAgIHBzYV9zdGF0dXNfdCBzdGF0dXMgPSBQU0FfRVJST1JfQ09SUlVQVElPTl9ERVRFQ1RFRDsKLQotICAgIHN0YXR1cyA9IHBzYV9kcml2ZXJfd3JhcHBlcl92ZXJpZnlfaGFzaF9hYm9ydChvcGVyYXRpb24pOwotCi0gICAgb3BlcmF0aW9uLT5pZCA9IDA7Ci0KLSAgICAvKiBEbyBub3QgY2xlYXIgZWl0aGVyIHRoZSBlcnJvcl9vY2N1cnJlZCBvciBudW1fb3BzIGVsZW1lbnRzIGhlcmUgYXMgdGhleQotICAgICAqIG9ubHkgd2FudCB0byBiZSBjbGVhcmVkIGJ5IHRoZSBhcHBsaWNhdGlvbiBjYWxsaW5nIGFib3J0LCBub3QgYnkgYWJvcnQKLSAgICAgKiBiZWluZyBjYWxsZWQgYXQgY29tcGxldGlvbiBvZiBhbiBvcGVyYXRpb24uICovCi0KLSAgICByZXR1cm4gc3RhdHVzOwotfQotCi1wc2Ffc3RhdHVzX3QgcHNhX3ZlcmlmeV9oYXNoX3N0YXJ0KAotICAgIHBzYV92ZXJpZnlfaGFzaF9pbnRlcnJ1cHRpYmxlX29wZXJhdGlvbl90ICpvcGVyYXRpb24sCi0gICAgbWJlZHRsc19zdmNfa2V5X2lkX3Qga2V5LCBwc2FfYWxnb3JpdGhtX3QgYWxnLAotICAgIGNvbnN0IHVpbnQ4X3QgKmhhc2hfZXh0ZXJuYWwsIHNpemVfdCBoYXNoX2xlbmd0aCwKLSAgICBjb25zdCB1aW50OF90ICpzaWduYXR1cmVfZXh0ZXJuYWwsIHNpemVfdCBzaWduYXR1cmVfbGVuZ3RoKQotewotICAgIHBzYV9zdGF0dXNfdCBzdGF0dXMgPSBQU0FfRVJST1JfQ09SUlVQVElPTl9ERVRFQ1RFRDsKLSAgICBwc2Ffc3RhdHVzX3QgdW5sb2NrX3N0YXR1cyA9IFBTQV9FUlJPUl9DT1JSVVBUSU9OX0RFVEVDVEVEOwotICAgIHBzYV9rZXlfc2xvdF90ICpzbG90OwotCi0gICAgTE9DQUxfSU5QVVRfREVDTEFSRShoYXNoX2V4dGVybmFsLCBoYXNoKTsKLSAgICBMT0NBTF9JTlBVVF9ERUNMQVJFKHNpZ25hdHVyZV9leHRlcm5hbCwgc2lnbmF0dXJlKTsKLQotICAgIC8qIENoZWNrIHRoYXQgc3RhcnQgaGFzIG5vdCBiZWVuIHByZXZpb3VzbHkgY2FsbGVkLCBvciBvcGVyYXRpb24gaGFzIG5vdAotICAgICAqIHByZXZpb3VzbHkgZXJyb3JlZC4gKi8KLSAgICBpZiAob3BlcmF0aW9uLT5pZCAhPSAwIHx8IG9wZXJhdGlvbi0+ZXJyb3Jfb2NjdXJyZWQpIHsKLSAgICAgICAgcmV0dXJuIFBTQV9FUlJPUl9CQURfU1RBVEU7Ci0gICAgfQotCi0gICAgc3RhdHVzID0gcHNhX3NpZ25fdmVyaWZ5X2NoZWNrX2FsZygwLCBhbGcpOwotICAgIGlmIChzdGF0dXMgIT0gUFNBX1NVQ0NFU1MpIHsKLSAgICAgICAgb3BlcmF0aW9uLT5lcnJvcl9vY2N1cnJlZCA9IDE7Ci0gICAgICAgIHJldHVybiBzdGF0dXM7Ci0gICAgfQotCi0gICAgc3RhdHVzID0gcHNhX2dldF9hbmRfbG9ja19rZXlfc2xvdF93aXRoX3BvbGljeShrZXksICZzbG90LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUFNBX0tFWV9VU0FHRV9WRVJJRllfSEFTSCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFsZyk7Ci0KLSAgICBpZiAoc3RhdHVzICE9IFBTQV9TVUNDRVNTKSB7Ci0gICAgICAgIG9wZXJhdGlvbi0+ZXJyb3Jfb2NjdXJyZWQgPSAxOwotICAgICAgICByZXR1cm4gc3RhdHVzOwotICAgIH0KLQotICAgIExPQ0FMX0lOUFVUX0FMTE9DKGhhc2hfZXh0ZXJuYWwsIGhhc2hfbGVuZ3RoLCBoYXNoKTsKLSAgICBMT0NBTF9JTlBVVF9BTExPQyhzaWduYXR1cmVfZXh0ZXJuYWwsIHNpZ25hdHVyZV9sZW5ndGgsIHNpZ25hdHVyZSk7Ci0KLSAgICAvKiBFbnN1cmUgb3BzIGNvdW50IGdldHMgcmVzZXQsIGluIGNhc2Ugb2Ygb3BlcmF0aW9uIHJlLXVzZS4gKi8KLSAgICBvcGVyYXRpb24tPm51bV9vcHMgPSAwOwotCi0gICAgc3RhdHVzID0gcHNhX2RyaXZlcl93cmFwcGVyX3ZlcmlmeV9oYXNoX3N0YXJ0KG9wZXJhdGlvbiwgJnNsb3QtPmF0dHIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNsb3QtPmtleS5kYXRhLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzbG90LT5rZXkuYnl0ZXMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFsZywgaGFzaCwgaGFzaF9sZW5ndGgsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpZ25hdHVyZSwgc2lnbmF0dXJlX2xlbmd0aCk7Ci0jaWYgIWRlZmluZWQoTUJFRFRMU19QU0FfQVNTVU1FX0VYQ0xVU0lWRV9CVUZGRVJTKQotZXhpdDoKLSNlbmRpZgotCi0gICAgaWYgKHN0YXR1cyAhPSBQU0FfU1VDQ0VTUykgewotICAgICAgICBvcGVyYXRpb24tPmVycm9yX29jY3VycmVkID0gMTsKLSAgICAgICAgcHNhX3ZlcmlmeV9oYXNoX2Fib3J0X2ludGVybmFsKG9wZXJhdGlvbik7Ci0gICAgfQotCi0gICAgdW5sb2NrX3N0YXR1cyA9IHBzYV91bnJlZ2lzdGVyX3JlYWRfdW5kZXJfbXV0ZXgoc2xvdCk7Ci0KLSAgICBpZiAodW5sb2NrX3N0YXR1cyAhPSBQU0FfU1VDQ0VTUykgewotICAgICAgICBvcGVyYXRpb24tPmVycm9yX29jY3VycmVkID0gMTsKLSAgICB9Ci0KLSAgICBMT0NBTF9JTlBVVF9GUkVFKGhhc2hfZXh0ZXJuYWwsIGhhc2gpOwotICAgIExPQ0FMX0lOUFVUX0ZSRUUoc2lnbmF0dXJlX2V4dGVybmFsLCBzaWduYXR1cmUpOwotCi0gICAgcmV0dXJuIChzdGF0dXMgPT0gUFNBX1NVQ0NFU1MpID8gdW5sb2NrX3N0YXR1cyA6IHN0YXR1czsKLX0KLQotcHNhX3N0YXR1c190IHBzYV92ZXJpZnlfaGFzaF9jb21wbGV0ZSgKLSAgICBwc2FfdmVyaWZ5X2hhc2hfaW50ZXJydXB0aWJsZV9vcGVyYXRpb25fdCAqb3BlcmF0aW9uKQotewotICAgIHBzYV9zdGF0dXNfdCBzdGF0dXMgPSBQU0FfRVJST1JfQ09SUlVQVElPTl9ERVRFQ1RFRDsKLQotICAgIC8qIENoZWNrIHRoYXQgc3RhcnQgaGFzIGJlZW4gY2FsbGVkIGZpcnN0LCBhbmQgdGhhdCBvcGVyYXRpb24gaGFzIG5vdAotICAgICAqIHByZXZpb3VzbHkgZXJyb3JlZC4gKi8KLSAgICBpZiAob3BlcmF0aW9uLT5pZCA9PSAwIHx8IG9wZXJhdGlvbi0+ZXJyb3Jfb2NjdXJyZWQpIHsKLSAgICAgICAgc3RhdHVzID0gUFNBX0VSUk9SX0JBRF9TVEFURTsKLSAgICAgICAgZ290byBleGl0OwotICAgIH0KLQotICAgIHN0YXR1cyA9IHBzYV9kcml2ZXJfd3JhcHBlcl92ZXJpZnlfaGFzaF9jb21wbGV0ZShvcGVyYXRpb24pOwotCi0gICAgLyogVXBkYXRlIG9wcyBjb3VudCB3aXRoIHdvcmsgZG9uZS4gKi8KLSAgICBvcGVyYXRpb24tPm51bV9vcHMgPSBwc2FfZHJpdmVyX3dyYXBwZXJfdmVyaWZ5X2hhc2hfZ2V0X251bV9vcHMoCi0gICAgICAgIG9wZXJhdGlvbik7Ci0KLWV4aXQ6Ci0KLSAgICBpZiAoc3RhdHVzICE9IFBTQV9PUEVSQVRJT05fSU5DT01QTEVURSkgewotICAgICAgICBpZiAoc3RhdHVzICE9IFBTQV9TVUNDRVNTKSB7Ci0gICAgICAgICAgICBvcGVyYXRpb24tPmVycm9yX29jY3VycmVkID0gMTsKLSAgICAgICAgfQotCi0gICAgICAgIHBzYV92ZXJpZnlfaGFzaF9hYm9ydF9pbnRlcm5hbChvcGVyYXRpb24pOwotICAgIH0KLQotICAgIHJldHVybiBzdGF0dXM7Ci19Ci0KLXBzYV9zdGF0dXNfdCBwc2FfdmVyaWZ5X2hhc2hfYWJvcnQoCi0gICAgcHNhX3ZlcmlmeV9oYXNoX2ludGVycnVwdGlibGVfb3BlcmF0aW9uX3QgKm9wZXJhdGlvbikKLXsKLSAgICBwc2Ffc3RhdHVzX3Qgc3RhdHVzID0gUFNBX0VSUk9SX0NPUlJVUFRJT05fREVURUNURUQ7Ci0KLSAgICBzdGF0dXMgPSBwc2FfdmVyaWZ5X2hhc2hfYWJvcnRfaW50ZXJuYWwob3BlcmF0aW9uKTsKLQotICAgIC8qIFdlIGNsZWFyIHRoZSBudW1iZXIgb2Ygb3BzIGRvbmUgaGVyZSwgc28gdGhhdCBpdCBpcyBub3QgY2xlYXJlZCB3aGVuCi0gICAgICogdGhlIG9wZXJhdGlvbiBmYWlscyBvciBzdWNjZWVkcywgb25seSBvbiBtYW51YWwgYWJvcnQuICovCi0gICAgb3BlcmF0aW9uLT5udW1fb3BzID0gMDsKLQotICAgIC8qIExpa2V3aXNlLCBmYWlsdXJlIHN0YXRlLiAqLwotICAgIG9wZXJhdGlvbi0+ZXJyb3Jfb2NjdXJyZWQgPSAwOwotCi0gICAgcmV0dXJuIHN0YXR1czsKLX0KLQotLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCi0vKiBBc3ltbWV0cmljIGludGVycnVwdGlibGUgY3J5cHRvZ3JhcGh5IGludGVybmFsICAgICAgICAgICAgICAgKi8KLS8qIGltcGxlbWVudGF0aW9ucyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLwotLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCi0KLXZvaWQgbWJlZHRsc19wc2FfaW50ZXJydXB0aWJsZV9zZXRfbWF4X29wcyh1aW50MzJfdCBtYXhfb3BzKQotewotCi0jaWYgKGRlZmluZWQoTUJFRFRMU19QU0FfQlVJTFRJTl9BTEdfRUNEU0EpIHx8IFwKLSAgICBkZWZpbmVkKE1CRURUTFNfUFNBX0JVSUxUSU5fQUxHX0RFVEVSTUlOSVNUSUNfRUNEU0EpKSAmJiBcCi0gICAgZGVmaW5lZChNQkVEVExTX0VDUF9SRVNUQVJUQUJMRSkKLQotICAgIC8qIEludGVybmFsIGltcGxlbWVudGF0aW9uIHVzZXMgemVybyB0byBpbmRpY2F0ZSBpbmZpbml0ZSBudW1iZXIgbWF4IG9wcywKLSAgICAgKiB0aGVyZWZvcmUgYXZvaWQgdGhpcyB2YWx1ZSwgYW5kIHNldCB0byBtaW5pbXVtIHBvc3NpYmxlLiAqLwotICAgIGlmIChtYXhfb3BzID09IDApIHsKLSAgICAgICAgbWF4X29wcyA9IDE7Ci0gICAgfQotCi0gICAgbWJlZHRsc19lY3Bfc2V0X21heF9vcHMobWF4X29wcyk7Ci0jZWxzZQotICAgICh2b2lkKSBtYXhfb3BzOwotI2VuZGlmIC8qIGRlZmluZWQoTUJFRFRMU19QU0FfQlVJTFRJTl9BTEdfRUNEU0EpIHx8Ci0gICAgICAgICogZGVmaW5lZChNQkVEVExTX1BTQV9CVUlMVElOX0FMR19ERVRFUk1JTklTVElDX0VDRFNBKSAmJgotICAgICAgICAqIGRlZmluZWQoIE1CRURUTFNfRUNQX1JFU1RBUlRBQkxFICkgKi8KLX0KLQotdWludDMyX3QgbWJlZHRsc19wc2Ffc2lnbl9oYXNoX2dldF9udW1fb3BzKAotICAgIGNvbnN0IG1iZWR0bHNfcHNhX3NpZ25faGFzaF9pbnRlcnJ1cHRpYmxlX29wZXJhdGlvbl90ICpvcGVyYXRpb24pCi17Ci0jaWYgKGRlZmluZWQoTUJFRFRMU19QU0FfQlVJTFRJTl9BTEdfRUNEU0EpIHx8IFwKLSAgICBkZWZpbmVkKE1CRURUTFNfUFNBX0JVSUxUSU5fQUxHX0RFVEVSTUlOSVNUSUNfRUNEU0EpKSAmJiBcCi0gICAgZGVmaW5lZChNQkVEVExTX0VDUF9SRVNUQVJUQUJMRSkKLQotICAgIHJldHVybiBvcGVyYXRpb24tPm51bV9vcHM7Ci0jZWxzZQotICAgICh2b2lkKSBvcGVyYXRpb247Ci0gICAgcmV0dXJuIDA7Ci0jZW5kaWYgLyogZGVmaW5lZChNQkVEVExTX1BTQV9CVUlMVElOX0FMR19FQ0RTQSkgfHwKLSAgICAgICAgKiBkZWZpbmVkKE1CRURUTFNfUFNBX0JVSUxUSU5fQUxHX0RFVEVSTUlOSVNUSUNfRUNEU0EpICYmCi0gICAgICAgICogZGVmaW5lZCggTUJFRFRMU19FQ1BfUkVTVEFSVEFCTEUgKSAqLwotfQotCi11aW50MzJfdCBtYmVkdGxzX3BzYV92ZXJpZnlfaGFzaF9nZXRfbnVtX29wcygKLSAgICBjb25zdCBtYmVkdGxzX3BzYV92ZXJpZnlfaGFzaF9pbnRlcnJ1cHRpYmxlX29wZXJhdGlvbl90ICpvcGVyYXRpb24pCi17Ci0gICAgI2lmIChkZWZpbmVkKE1CRURUTFNfUFNBX0JVSUxUSU5fQUxHX0VDRFNBKSB8fCBcCi0gICAgZGVmaW5lZChNQkVEVExTX1BTQV9CVUlMVElOX0FMR19ERVRFUk1JTklTVElDX0VDRFNBKSkgJiYgXAotICAgIGRlZmluZWQoTUJFRFRMU19FQ1BfUkVTVEFSVEFCTEUpCi0KLSAgICByZXR1cm4gb3BlcmF0aW9uLT5udW1fb3BzOwotI2Vsc2UKLSAgICAodm9pZCkgb3BlcmF0aW9uOwotICAgIHJldHVybiAwOwotI2VuZGlmIC8qIGRlZmluZWQoTUJFRFRMU19QU0FfQlVJTFRJTl9BTEdfRUNEU0EpIHx8Ci0gICAgICAgICogZGVmaW5lZChNQkVEVExTX1BTQV9CVUlMVElOX0FMR19ERVRFUk1JTklTVElDX0VDRFNBKSAmJgotICAgICAgICAqIGRlZmluZWQoIE1CRURUTFNfRUNQX1JFU1RBUlRBQkxFICkgKi8KLX0KLQotcHNhX3N0YXR1c190IG1iZWR0bHNfcHNhX3NpZ25faGFzaF9zdGFydCgKLSAgICBtYmVkdGxzX3BzYV9zaWduX2hhc2hfaW50ZXJydXB0aWJsZV9vcGVyYXRpb25fdCAqb3BlcmF0aW9uLAotICAgIGNvbnN0IHBzYV9rZXlfYXR0cmlidXRlc190ICphdHRyaWJ1dGVzLCBjb25zdCB1aW50OF90ICprZXlfYnVmZmVyLAotICAgIHNpemVfdCBrZXlfYnVmZmVyX3NpemUsIHBzYV9hbGdvcml0aG1fdCBhbGcsCi0gICAgY29uc3QgdWludDhfdCAqaGFzaCwgc2l6ZV90IGhhc2hfbGVuZ3RoKQotewotICAgIHBzYV9zdGF0dXNfdCBzdGF0dXMgPSBQU0FfRVJST1JfQ09SUlVQVElPTl9ERVRFQ1RFRDsKLSAgICBzaXplX3QgcmVxdWlyZWRfaGFzaF9sZW5ndGg7Ci0KLSAgICBpZiAoIVBTQV9LRVlfVFlQRV9JU19FQ0MoYXR0cmlidXRlcy0+dHlwZSkpIHsKLSAgICAgICAgcmV0dXJuIFBTQV9FUlJPUl9OT1RfU1VQUE9SVEVEOwotICAgIH0KLQotICAgIGlmICghUFNBX0FMR19JU19FQ0RTQShhbGcpKSB7Ci0gICAgICAgIHJldHVybiBQU0FfRVJST1JfTk9UX1NVUFBPUlRFRDsKLSAgICB9Ci0KLSNpZiAoZGVmaW5lZChNQkVEVExTX1BTQV9CVUlMVElOX0FMR19FQ0RTQSkgfHwgXAotICAgIGRlZmluZWQoTUJFRFRMU19QU0FfQlVJTFRJTl9BTEdfREVURVJNSU5JU1RJQ19FQ0RTQSkpICYmIFwKLSAgICBkZWZpbmVkKE1CRURUTFNfRUNQX1JFU1RBUlRBQkxFKQotCi0gICAgbWJlZHRsc19lY2RzYV9yZXN0YXJ0X2luaXQoJm9wZXJhdGlvbi0+cmVzdGFydF9jdHgpOwotCi0gICAgLyogRW5zdXJlIG51bV9vcHMgaXMgemVybydlZCBpbiBjYXNlIG9mIGNvbnRleHQgcmUtdXNlLiAqLwotICAgIG9wZXJhdGlvbi0+bnVtX29wcyA9IDA7Ci0KLSAgICBzdGF0dXMgPSBtYmVkdGxzX3BzYV9lY3BfbG9hZF9yZXByZXNlbnRhdGlvbihhdHRyaWJ1dGVzLT50eXBlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZXMtPmJpdHMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga2V5X2J1ZmZlciwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXlfYnVmZmVyX3NpemUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJm9wZXJhdGlvbi0+Y3R4KTsKLQotICAgIGlmIChzdGF0dXMgIT0gUFNBX1NVQ0NFU1MpIHsKLSAgICAgICAgcmV0dXJuIHN0YXR1czsKLSAgICB9Ci0KLSAgICBvcGVyYXRpb24tPmNvb3JkaW5hdGVfYnl0ZXMgPSBQU0FfQklUU19UT19CWVRFUygKLSAgICAgICAgb3BlcmF0aW9uLT5jdHgtPmdycC5uYml0cyk7Ci0KLSAgICBwc2FfYWxnb3JpdGhtX3QgaGFzaF9hbGcgPSBQU0FfQUxHX1NJR05fR0VUX0hBU0goYWxnKTsKLSAgICBvcGVyYXRpb24tPm1kX2FsZyA9IG1iZWR0bHNfbWRfdHlwZV9mcm9tX3BzYV9hbGcoaGFzaF9hbGcpOwotICAgIG9wZXJhdGlvbi0+YWxnID0gYWxnOwotCi0gICAgLyogV2Ugb25seSBuZWVkIHRvIHN0b3JlIHRoZSBzYW1lIGxlbmd0aCBvZiBoYXNoIGFzIHRoZSBwcml2YXRlIGtleSBzaXplCi0gICAgICogaGVyZSwgaXQgd291bGQgYmUgdHJ1bmNhdGVkIGJ5IHRoZSBpbnRlcm5hbCBpbXBsZW1lbnRhdGlvbiBhbnl3YXkuICovCi0gICAgcmVxdWlyZWRfaGFzaF9sZW5ndGggPSAoaGFzaF9sZW5ndGggPCBvcGVyYXRpb24tPmNvb3JkaW5hdGVfYnl0ZXMgPwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhc2hfbGVuZ3RoIDogb3BlcmF0aW9uLT5jb29yZGluYXRlX2J5dGVzKTsKLQotICAgIGlmIChyZXF1aXJlZF9oYXNoX2xlbmd0aCA+IHNpemVvZihvcGVyYXRpb24tPmhhc2gpKSB7Ci0gICAgICAgIC8qIFNob3VsZG4ndCBoYXBwZW4sIGJ1dCBiZXR0ZXIgc2FmZSB0aGFuIHNvcnJ5LiAqLwotICAgICAgICByZXR1cm4gUFNBX0VSUk9SX0NPUlJVUFRJT05fREVURUNURUQ7Ci0gICAgfQotCi0gICAgbWVtY3B5KG9wZXJhdGlvbi0+aGFzaCwgaGFzaCwgcmVxdWlyZWRfaGFzaF9sZW5ndGgpOwotICAgIG9wZXJhdGlvbi0+aGFzaF9sZW5ndGggPSByZXF1aXJlZF9oYXNoX2xlbmd0aDsKLQotICAgIHJldHVybiBQU0FfU1VDQ0VTUzsKLQotI2Vsc2UKLSAgICAodm9pZCkgb3BlcmF0aW9uOwotICAgICh2b2lkKSBrZXlfYnVmZmVyOwotICAgICh2b2lkKSBrZXlfYnVmZmVyX3NpemU7Ci0gICAgKHZvaWQpIGFsZzsKLSAgICAodm9pZCkgaGFzaDsKLSAgICAodm9pZCkgaGFzaF9sZW5ndGg7Ci0gICAgKHZvaWQpIHN0YXR1czsKLSAgICAodm9pZCkgcmVxdWlyZWRfaGFzaF9sZW5ndGg7Ci0KLSAgICByZXR1cm4gUFNBX0VSUk9SX05PVF9TVVBQT1JURUQ7Ci0jZW5kaWYgLyogZGVmaW5lZChNQkVEVExTX1BTQV9CVUlMVElOX0FMR19FQ0RTQSkgfHwKLSAgICAgICAgKiBkZWZpbmVkKE1CRURUTFNfUFNBX0JVSUxUSU5fQUxHX0RFVEVSTUlOSVNUSUNfRUNEU0EpICYmCi0gICAgICAgICogZGVmaW5lZCggTUJFRFRMU19FQ1BfUkVTVEFSVEFCTEUgKSAqLwotfQotCi1wc2Ffc3RhdHVzX3QgbWJlZHRsc19wc2Ffc2lnbl9oYXNoX2NvbXBsZXRlKAotICAgIG1iZWR0bHNfcHNhX3NpZ25faGFzaF9pbnRlcnJ1cHRpYmxlX29wZXJhdGlvbl90ICpvcGVyYXRpb24sCi0gICAgdWludDhfdCAqc2lnbmF0dXJlLCBzaXplX3Qgc2lnbmF0dXJlX3NpemUsCi0gICAgc2l6ZV90ICpzaWduYXR1cmVfbGVuZ3RoKQotewotI2lmIChkZWZpbmVkKE1CRURUTFNfUFNBX0JVSUxUSU5fQUxHX0VDRFNBKSB8fCBcCi0gICAgZGVmaW5lZChNQkVEVExTX1BTQV9CVUlMVElOX0FMR19ERVRFUk1JTklTVElDX0VDRFNBKSkgJiYgXAotICAgIGRlZmluZWQoTUJFRFRMU19FQ1BfUkVTVEFSVEFCTEUpCi0KLSAgICBwc2Ffc3RhdHVzX3Qgc3RhdHVzID0gUFNBX0VSUk9SX0NPUlJVUFRJT05fREVURUNURUQ7Ci0gICAgbWJlZHRsc19tcGkgcjsKLSAgICBtYmVkdGxzX21waSBzOwotCi0gICAgbWJlZHRsc19tcGlfaW5pdCgmcik7Ci0gICAgbWJlZHRsc19tcGlfaW5pdCgmcyk7Ci0KLSAgICAvKiBFbnN1cmUgbWF4X29wcyBpcyBzZXQgdG8gdGhlIGN1cnJlbnQgdmFsdWUgKG9yIGRlZmF1bHQpLiAqLwotICAgIG1iZWR0bHNfcHNhX2ludGVycnVwdGlibGVfc2V0X21heF9vcHMocHNhX2ludGVycnVwdGlibGVfZ2V0X21heF9vcHMoKSk7Ci0KLSAgICBpZiAoc2lnbmF0dXJlX3NpemUgPCAyICogb3BlcmF0aW9uLT5jb29yZGluYXRlX2J5dGVzKSB7Ci0gICAgICAgIHN0YXR1cyA9IFBTQV9FUlJPUl9CVUZGRVJfVE9PX1NNQUxMOwotICAgICAgICBnb3RvIGV4aXQ7Ci0gICAgfQotCi0gICAgaWYgKFBTQV9BTEdfRUNEU0FfSVNfREVURVJNSU5JU1RJQyhvcGVyYXRpb24tPmFsZykpIHsKLQotI2lmIGRlZmluZWQoTUJFRFRMU19QU0FfQlVJTFRJTl9BTEdfREVURVJNSU5JU1RJQ19FQ0RTQSkKLSAgICAgICAgc3RhdHVzID0gbWJlZHRsc190b19wc2FfZXJyb3IoCi0gICAgICAgICAgICBtYmVkdGxzX2VjZHNhX3NpZ25fZGV0X3Jlc3RhcnRhYmxlKCZvcGVyYXRpb24tPmN0eC0+Z3JwLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmciwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJnMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZvcGVyYXRpb24tPmN0eC0+ZCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3BlcmF0aW9uLT5oYXNoLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcGVyYXRpb24tPmhhc2hfbGVuZ3RoLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcGVyYXRpb24tPm1kX2FsZywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWJlZHRsc19wc2FfZ2V0X3JhbmRvbSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTUJFRFRMU19QU0FfUkFORE9NX1NUQVRFLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmb3BlcmF0aW9uLT5yZXN0YXJ0X2N0eCkpOwotI2Vsc2UgLyogZGVmaW5lZChNQkVEVExTX1BTQV9CVUlMVElOX0FMR19ERVRFUk1JTklTVElDX0VDRFNBKSAqLwotICAgICAgICBzdGF0dXMgPSBQU0FfRVJST1JfTk9UX1NVUFBPUlRFRDsKLSAgICAgICAgZ290byBleGl0OwotI2VuZGlmIC8qIGRlZmluZWQoTUJFRFRMU19QU0FfQlVJTFRJTl9BTEdfREVURVJNSU5JU1RJQ19FQ0RTQSkgKi8KLSAgICB9IGVsc2UgewotICAgICAgICBzdGF0dXMgPSBtYmVkdGxzX3RvX3BzYV9lcnJvcigKLSAgICAgICAgICAgIG1iZWR0bHNfZWNkc2Ffc2lnbl9yZXN0YXJ0YWJsZSgmb3BlcmF0aW9uLT5jdHgtPmdycCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmciwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmcywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmb3BlcmF0aW9uLT5jdHgtPmQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3BlcmF0aW9uLT5oYXNoLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wZXJhdGlvbi0+aGFzaF9sZW5ndGgsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWJlZHRsc19wc2FfZ2V0X3JhbmRvbSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNQkVEVExTX1BTQV9SQU5ET01fU1RBVEUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWJlZHRsc19wc2FfZ2V0X3JhbmRvbSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNQkVEVExTX1BTQV9SQU5ET01fU1RBVEUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJm9wZXJhdGlvbi0+cmVzdGFydF9jdHgpKTsKLSAgICB9Ci0KLSAgICAvKiBIaWRlIHRoZSBmYWN0IHRoYXQgdGhlIHJlc3RhcnQgY29udGV4dCBvbmx5IGhvbGRzIGEgZGVsdGEgb2YgbnVtYmVyIG9mCi0gICAgICogb3BzIGRvbmUgZHVyaW5nIHRoZSBsYXN0IG9wZXJhdGlvbiwgbm90IGFuIGFic29sdXRlIHZhbHVlLiAqLwotICAgIG9wZXJhdGlvbi0+bnVtX29wcyArPSBvcGVyYXRpb24tPnJlc3RhcnRfY3R4LmVjcC5vcHNfZG9uZTsKLQotICAgIGlmIChzdGF0dXMgPT0gUFNBX1NVQ0NFU1MpIHsKLSAgICAgICAgc3RhdHVzID0gIG1iZWR0bHNfdG9fcHNhX2Vycm9yKAotICAgICAgICAgICAgbWJlZHRsc19tcGlfd3JpdGVfYmluYXJ5KCZyLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpZ25hdHVyZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcGVyYXRpb24tPmNvb3JkaW5hdGVfYnl0ZXMpCi0gICAgICAgICAgICApOwotCi0gICAgICAgIGlmIChzdGF0dXMgIT0gUFNBX1NVQ0NFU1MpIHsKLSAgICAgICAgICAgIGdvdG8gZXhpdDsKLSAgICAgICAgfQotCi0gICAgICAgIHN0YXR1cyA9ICBtYmVkdGxzX3RvX3BzYV9lcnJvcigKLSAgICAgICAgICAgIG1iZWR0bHNfbXBpX3dyaXRlX2JpbmFyeSgmcywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaWduYXR1cmUgKwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wZXJhdGlvbi0+Y29vcmRpbmF0ZV9ieXRlcywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcGVyYXRpb24tPmNvb3JkaW5hdGVfYnl0ZXMpCi0gICAgICAgICAgICApOwotCi0gICAgICAgIGlmIChzdGF0dXMgIT0gUFNBX1NVQ0NFU1MpIHsKLSAgICAgICAgICAgIGdvdG8gZXhpdDsKLSAgICAgICAgfQotCi0gICAgICAgICpzaWduYXR1cmVfbGVuZ3RoID0gb3BlcmF0aW9uLT5jb29yZGluYXRlX2J5dGVzICogMjsKLQotICAgICAgICBzdGF0dXMgPSBQU0FfU1VDQ0VTUzsKLSAgICB9Ci0KLWV4aXQ6Ci0KLSAgICBtYmVkdGxzX21waV9mcmVlKCZyKTsKLSAgICBtYmVkdGxzX21waV9mcmVlKCZzKTsKLSAgICByZXR1cm4gc3RhdHVzOwotCi0gI2Vsc2UKLQotICAgICh2b2lkKSBvcGVyYXRpb247Ci0gICAgKHZvaWQpIHNpZ25hdHVyZTsKLSAgICAodm9pZCkgc2lnbmF0dXJlX3NpemU7Ci0gICAgKHZvaWQpIHNpZ25hdHVyZV9sZW5ndGg7Ci0KLSAgICByZXR1cm4gUFNBX0VSUk9SX05PVF9TVVBQT1JURUQ7Ci0KLSNlbmRpZiAvKiBkZWZpbmVkKE1CRURUTFNfUFNBX0JVSUxUSU5fQUxHX0VDRFNBKSB8fAotICAgICAgICAqIGRlZmluZWQoTUJFRFRMU19QU0FfQlVJTFRJTl9BTEdfREVURVJNSU5JU1RJQ19FQ0RTQSkgJiYKLSAgICAgICAgKiBkZWZpbmVkKCBNQkVEVExTX0VDUF9SRVNUQVJUQUJMRSApICovCi19Ci0KLXBzYV9zdGF0dXNfdCBtYmVkdGxzX3BzYV9zaWduX2hhc2hfYWJvcnQoCi0gICAgbWJlZHRsc19wc2Ffc2lnbl9oYXNoX2ludGVycnVwdGlibGVfb3BlcmF0aW9uX3QgKm9wZXJhdGlvbikKLXsKLQotI2lmIChkZWZpbmVkKE1CRURUTFNfUFNBX0JVSUxUSU5fQUxHX0VDRFNBKSB8fCBcCi0gICAgZGVmaW5lZChNQkVEVExTX1BTQV9CVUlMVElOX0FMR19ERVRFUk1JTklTVElDX0VDRFNBKSkgJiYgXAotICAgIGRlZmluZWQoTUJFRFRMU19FQ1BfUkVTVEFSVEFCTEUpCi0KLSAgICBpZiAob3BlcmF0aW9uLT5jdHgpIHsKLSAgICAgICAgbWJlZHRsc19lY2RzYV9mcmVlKG9wZXJhdGlvbi0+Y3R4KTsKLSAgICAgICAgbWJlZHRsc19mcmVlKG9wZXJhdGlvbi0+Y3R4KTsKLSAgICAgICAgb3BlcmF0aW9uLT5jdHggPSBOVUxMOwotICAgIH0KLQotICAgIG1iZWR0bHNfZWNkc2FfcmVzdGFydF9mcmVlKCZvcGVyYXRpb24tPnJlc3RhcnRfY3R4KTsKLQotICAgIG9wZXJhdGlvbi0+bnVtX29wcyA9IDA7Ci0KLSAgICByZXR1cm4gUFNBX1NVQ0NFU1M7Ci0KLSNlbHNlCi0KLSAgICAodm9pZCkgb3BlcmF0aW9uOwotCi0gICAgcmV0dXJuIFBTQV9FUlJPUl9OT1RfU1VQUE9SVEVEOwotCi0jZW5kaWYgLyogZGVmaW5lZChNQkVEVExTX1BTQV9CVUlMVElOX0FMR19FQ0RTQSkgfHwKLSAgICAgICAgKiBkZWZpbmVkKE1CRURUTFNfUFNBX0JVSUxUSU5fQUxHX0RFVEVSTUlOSVNUSUNfRUNEU0EpICYmCi0gICAgICAgICogZGVmaW5lZCggTUJFRFRMU19FQ1BfUkVTVEFSVEFCTEUgKSAqLwotfQotCi1wc2Ffc3RhdHVzX3QgbWJlZHRsc19wc2FfdmVyaWZ5X2hhc2hfc3RhcnQoCi0gICAgbWJlZHRsc19wc2FfdmVyaWZ5X2hhc2hfaW50ZXJydXB0aWJsZV9vcGVyYXRpb25fdCAqb3BlcmF0aW9uLAotICAgIGNvbnN0IHBzYV9rZXlfYXR0cmlidXRlc190ICphdHRyaWJ1dGVzLAotICAgIGNvbnN0IHVpbnQ4X3QgKmtleV9idWZmZXIsIHNpemVfdCBrZXlfYnVmZmVyX3NpemUsCi0gICAgcHNhX2FsZ29yaXRobV90IGFsZywKLSAgICBjb25zdCB1aW50OF90ICpoYXNoLCBzaXplX3QgaGFzaF9sZW5ndGgsCi0gICAgY29uc3QgdWludDhfdCAqc2lnbmF0dXJlLCBzaXplX3Qgc2lnbmF0dXJlX2xlbmd0aCkKLXsKLSAgICBwc2Ffc3RhdHVzX3Qgc3RhdHVzID0gUFNBX0VSUk9SX0NPUlJVUFRJT05fREVURUNURUQ7Ci0gICAgc2l6ZV90IGNvb3JkaW5hdGVfYnl0ZXMgPSAwOwotICAgIHNpemVfdCByZXF1aXJlZF9oYXNoX2xlbmd0aCA9IDA7Ci0KLSAgICBpZiAoIVBTQV9LRVlfVFlQRV9JU19FQ0MoYXR0cmlidXRlcy0+dHlwZSkpIHsKLSAgICAgICAgcmV0dXJuIFBTQV9FUlJPUl9OT1RfU1VQUE9SVEVEOwotICAgIH0KLQotICAgIGlmICghUFNBX0FMR19JU19FQ0RTQShhbGcpKSB7Ci0gICAgICAgIHJldHVybiBQU0FfRVJST1JfTk9UX1NVUFBPUlRFRDsKLSAgICB9Ci0KLSNpZiAoZGVmaW5lZChNQkVEVExTX1BTQV9CVUlMVElOX0FMR19FQ0RTQSkgfHwgXAotICAgIGRlZmluZWQoTUJFRFRMU19QU0FfQlVJTFRJTl9BTEdfREVURVJNSU5JU1RJQ19FQ0RTQSkpICYmIFwKLSAgICBkZWZpbmVkKE1CRURUTFNfRUNQX1JFU1RBUlRBQkxFKQotCi0gICAgbWJlZHRsc19lY2RzYV9yZXN0YXJ0X2luaXQoJm9wZXJhdGlvbi0+cmVzdGFydF9jdHgpOwotICAgIG1iZWR0bHNfbXBpX2luaXQoJm9wZXJhdGlvbi0+cik7Ci0gICAgbWJlZHRsc19tcGlfaW5pdCgmb3BlcmF0aW9uLT5zKTsKLQotICAgIC8qIEVuc3VyZSBudW1fb3BzIGlzIHplcm8nZWQgaW4gY2FzZSBvZiBjb250ZXh0IHJlLXVzZS4gKi8KLSAgICBvcGVyYXRpb24tPm51bV9vcHMgPSAwOwotCi0gICAgc3RhdHVzID0gbWJlZHRsc19wc2FfZWNwX2xvYWRfcmVwcmVzZW50YXRpb24oYXR0cmlidXRlcy0+dHlwZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdHRyaWJ1dGVzLT5iaXRzLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtleV9idWZmZXIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga2V5X2J1ZmZlcl9zaXplLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZvcGVyYXRpb24tPmN0eCk7Ci0KLSAgICBpZiAoc3RhdHVzICE9IFBTQV9TVUNDRVNTKSB7Ci0gICAgICAgIHJldHVybiBzdGF0dXM7Ci0gICAgfQotCi0gICAgY29vcmRpbmF0ZV9ieXRlcyA9IFBTQV9CSVRTX1RPX0JZVEVTKG9wZXJhdGlvbi0+Y3R4LT5ncnAubmJpdHMpOwotCi0gICAgaWYgKHNpZ25hdHVyZV9sZW5ndGggIT0gMiAqIGNvb3JkaW5hdGVfYnl0ZXMpIHsKLSAgICAgICAgcmV0dXJuIFBTQV9FUlJPUl9JTlZBTElEX1NJR05BVFVSRTsKLSAgICB9Ci0KLSAgICBzdGF0dXMgPSBtYmVkdGxzX3RvX3BzYV9lcnJvcigKLSAgICAgICAgbWJlZHRsc19tcGlfcmVhZF9iaW5hcnkoJm9wZXJhdGlvbi0+ciwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2lnbmF0dXJlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb29yZGluYXRlX2J5dGVzKSk7Ci0KLSAgICBpZiAoc3RhdHVzICE9IFBTQV9TVUNDRVNTKSB7Ci0gICAgICAgIHJldHVybiBzdGF0dXM7Ci0gICAgfQotCi0gICAgc3RhdHVzID0gbWJlZHRsc190b19wc2FfZXJyb3IoCi0gICAgICAgIG1iZWR0bHNfbXBpX3JlYWRfYmluYXJ5KCZvcGVyYXRpb24tPnMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpZ25hdHVyZSArCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvb3JkaW5hdGVfYnl0ZXMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvb3JkaW5hdGVfYnl0ZXMpKTsKLQotICAgIGlmIChzdGF0dXMgIT0gUFNBX1NVQ0NFU1MpIHsKLSAgICAgICAgcmV0dXJuIHN0YXR1czsKLSAgICB9Ci0KLSAgICBzdGF0dXMgPSBtYmVkdGxzX3BzYV9lY3BfbG9hZF9wdWJsaWNfcGFydChvcGVyYXRpb24tPmN0eCk7Ci0KLSAgICBpZiAoc3RhdHVzICE9IFBTQV9TVUNDRVNTKSB7Ci0gICAgICAgIHJldHVybiBzdGF0dXM7Ci0gICAgfQotCi0gICAgLyogV2Ugb25seSBuZWVkIHRvIHN0b3JlIHRoZSBzYW1lIGxlbmd0aCBvZiBoYXNoIGFzIHRoZSBwcml2YXRlIGtleSBzaXplCi0gICAgICogaGVyZSwgaXQgd291bGQgYmUgdHJ1bmNhdGVkIGJ5IHRoZSBpbnRlcm5hbCBpbXBsZW1lbnRhdGlvbiBhbnl3YXkuICovCi0gICAgcmVxdWlyZWRfaGFzaF9sZW5ndGggPSAoaGFzaF9sZW5ndGggPCBjb29yZGluYXRlX2J5dGVzID8gaGFzaF9sZW5ndGggOgotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvb3JkaW5hdGVfYnl0ZXMpOwotCi0gICAgaWYgKHJlcXVpcmVkX2hhc2hfbGVuZ3RoID4gc2l6ZW9mKG9wZXJhdGlvbi0+aGFzaCkpIHsKLSAgICAgICAgLyogU2hvdWxkbid0IGhhcHBlbiwgYnV0IGJldHRlciBzYWZlIHRoYW4gc29ycnkuICovCi0gICAgICAgIHJldHVybiBQU0FfRVJST1JfQ09SUlVQVElPTl9ERVRFQ1RFRDsKLSAgICB9Ci0KLSAgICBtZW1jcHkob3BlcmF0aW9uLT5oYXNoLCBoYXNoLCByZXF1aXJlZF9oYXNoX2xlbmd0aCk7Ci0gICAgb3BlcmF0aW9uLT5oYXNoX2xlbmd0aCA9IHJlcXVpcmVkX2hhc2hfbGVuZ3RoOwotCi0gICAgcmV0dXJuIFBTQV9TVUNDRVNTOwotI2Vsc2UKLSAgICAodm9pZCkgb3BlcmF0aW9uOwotICAgICh2b2lkKSBrZXlfYnVmZmVyOwotICAgICh2b2lkKSBrZXlfYnVmZmVyX3NpemU7Ci0gICAgKHZvaWQpIGFsZzsKLSAgICAodm9pZCkgaGFzaDsKLSAgICAodm9pZCkgaGFzaF9sZW5ndGg7Ci0gICAgKHZvaWQpIHNpZ25hdHVyZTsKLSAgICAodm9pZCkgc2lnbmF0dXJlX2xlbmd0aDsKLSAgICAodm9pZCkgc3RhdHVzOwotICAgICh2b2lkKSBjb29yZGluYXRlX2J5dGVzOwotICAgICh2b2lkKSByZXF1aXJlZF9oYXNoX2xlbmd0aDsKLQotICAgIHJldHVybiBQU0FfRVJST1JfTk9UX1NVUFBPUlRFRDsKLSNlbmRpZiAvKiBkZWZpbmVkKE1CRURUTFNfUFNBX0JVSUxUSU5fQUxHX0VDRFNBKSB8fAotICAgICAgICAqIGRlZmluZWQoTUJFRFRMU19QU0FfQlVJTFRJTl9BTEdfREVURVJNSU5JU1RJQ19FQ0RTQSkgJiYKLSAgICAgICAgKiBkZWZpbmVkKCBNQkVEVExTX0VDUF9SRVNUQVJUQUJMRSApICovCi19Ci0KLXBzYV9zdGF0dXNfdCBtYmVkdGxzX3BzYV92ZXJpZnlfaGFzaF9jb21wbGV0ZSgKLSAgICBtYmVkdGxzX3BzYV92ZXJpZnlfaGFzaF9pbnRlcnJ1cHRpYmxlX29wZXJhdGlvbl90ICpvcGVyYXRpb24pCi17Ci0KLSNpZiAoZGVmaW5lZChNQkVEVExTX1BTQV9CVUlMVElOX0FMR19FQ0RTQSkgfHwgXAotICAgIGRlZmluZWQoTUJFRFRMU19QU0FfQlVJTFRJTl9BTEdfREVURVJNSU5JU1RJQ19FQ0RTQSkpICYmIFwKLSAgICBkZWZpbmVkKE1CRURUTFNfRUNQX1JFU1RBUlRBQkxFKQotCi0gICAgcHNhX3N0YXR1c190IHN0YXR1cyA9IFBTQV9FUlJPUl9DT1JSVVBUSU9OX0RFVEVDVEVEOwotCi0gICAgLyogRW5zdXJlIG1heF9vcHMgaXMgc2V0IHRvIHRoZSBjdXJyZW50IHZhbHVlIChvciBkZWZhdWx0KS4gKi8KLSAgICBtYmVkdGxzX3BzYV9pbnRlcnJ1cHRpYmxlX3NldF9tYXhfb3BzKHBzYV9pbnRlcnJ1cHRpYmxlX2dldF9tYXhfb3BzKCkpOwotCi0gICAgc3RhdHVzID0gbWJlZHRsc190b19wc2FfZXJyb3IoCi0gICAgICAgIG1iZWR0bHNfZWNkc2FfdmVyaWZ5X3Jlc3RhcnRhYmxlKCZvcGVyYXRpb24tPmN0eC0+Z3JwLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcGVyYXRpb24tPmhhc2gsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wZXJhdGlvbi0+aGFzaF9sZW5ndGgsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZvcGVyYXRpb24tPmN0eC0+USwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJm9wZXJhdGlvbi0+ciwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJm9wZXJhdGlvbi0+cywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJm9wZXJhdGlvbi0+cmVzdGFydF9jdHgpKTsKLQotICAgIC8qIEhpZGUgdGhlIGZhY3QgdGhhdCB0aGUgcmVzdGFydCBjb250ZXh0IG9ubHkgaG9sZHMgYSBkZWx0YSBvZiBudW1iZXIgb2YKLSAgICAgKiBvcHMgZG9uZSBkdXJpbmcgdGhlIGxhc3Qgb3BlcmF0aW9uLCBub3QgYW4gYWJzb2x1dGUgdmFsdWUuICovCi0gICAgb3BlcmF0aW9uLT5udW1fb3BzICs9IG9wZXJhdGlvbi0+cmVzdGFydF9jdHguZWNwLm9wc19kb25lOwotCi0gICAgcmV0dXJuIHN0YXR1czsKLSNlbHNlCi0gICAgKHZvaWQpIG9wZXJhdGlvbjsKLQotICAgIHJldHVybiBQU0FfRVJST1JfTk9UX1NVUFBPUlRFRDsKLQotI2VuZGlmIC8qIGRlZmluZWQoTUJFRFRMU19QU0FfQlVJTFRJTl9BTEdfRUNEU0EpIHx8Ci0gICAgICAgICogZGVmaW5lZChNQkVEVExTX1BTQV9CVUlMVElOX0FMR19ERVRFUk1JTklTVElDX0VDRFNBKSAmJgotICAgICAgICAqIGRlZmluZWQoIE1CRURUTFNfRUNQX1JFU1RBUlRBQkxFICkgKi8KLX0KLQotcHNhX3N0YXR1c190IG1iZWR0bHNfcHNhX3ZlcmlmeV9oYXNoX2Fib3J0KAotICAgIG1iZWR0bHNfcHNhX3ZlcmlmeV9oYXNoX2ludGVycnVwdGlibGVfb3BlcmF0aW9uX3QgKm9wZXJhdGlvbikKLXsKLQotI2lmIChkZWZpbmVkKE1CRURUTFNfUFNBX0JVSUxUSU5fQUxHX0VDRFNBKSB8fCBcCi0gICAgZGVmaW5lZChNQkVEVExTX1BTQV9CVUlMVElOX0FMR19ERVRFUk1JTklTVElDX0VDRFNBKSkgJiYgXAotICAgIGRlZmluZWQoTUJFRFRMU19FQ1BfUkVTVEFSVEFCTEUpCi0KLSAgICBpZiAob3BlcmF0aW9uLT5jdHgpIHsKLSAgICAgICAgbWJlZHRsc19lY2RzYV9mcmVlKG9wZXJhdGlvbi0+Y3R4KTsKLSAgICAgICAgbWJlZHRsc19mcmVlKG9wZXJhdGlvbi0+Y3R4KTsKLSAgICAgICAgb3BlcmF0aW9uLT5jdHggPSBOVUxMOwotICAgIH0KLQotICAgIG1iZWR0bHNfZWNkc2FfcmVzdGFydF9mcmVlKCZvcGVyYXRpb24tPnJlc3RhcnRfY3R4KTsKLQotICAgIG9wZXJhdGlvbi0+bnVtX29wcyA9IDA7Ci0KLSAgICBtYmVkdGxzX21waV9mcmVlKCZvcGVyYXRpb24tPnIpOwotICAgIG1iZWR0bHNfbXBpX2ZyZWUoJm9wZXJhdGlvbi0+cyk7Ci0KLSAgICByZXR1cm4gUFNBX1NVQ0NFU1M7Ci0KLSNlbHNlCi0gICAgKHZvaWQpIG9wZXJhdGlvbjsKLQotICAgIHJldHVybiBQU0FfRVJST1JfTk9UX1NVUFBPUlRFRDsKLQotI2VuZGlmIC8qIGRlZmluZWQoTUJFRFRMU19QU0FfQlVJTFRJTl9BTEdfRUNEU0EpIHx8Ci0gICAgICAgICogZGVmaW5lZChNQkVEVExTX1BTQV9CVUlMVElOX0FMR19ERVRFUk1JTklTVElDX0VDRFNBKSAmJgotICAgICAgICAqIGRlZmluZWQoIE1CRURUTFNfRUNQX1JFU1RBUlRBQkxFICkgKi8KLX0KLQotc3RhdGljIHBzYV9zdGF0dXNfdCBwc2FfZ2VuZXJhdGVfcmFuZG9tX2ludGVybmFsKHVpbnQ4X3QgKm91dHB1dCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3Qgb3V0cHV0X3NpemUpCi17Ci0gICAgR1VBUkRfTU9EVUxFX0lOSVRJQUxJWkVEOwotCi0jaWYgZGVmaW5lZChNQkVEVExTX1BTQV9DUllQVE9fRVhURVJOQUxfUk5HKQotCi0gICAgcHNhX3N0YXR1c190IHN0YXR1czsKLSAgICBzaXplX3Qgb3V0cHV0X2xlbmd0aCA9IDA7Ci0gICAgc3RhdHVzID0gbWJlZHRsc19wc2FfZXh0ZXJuYWxfZ2V0X3JhbmRvbSgmZ2xvYmFsX2RhdGEucm5nLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3V0cHV0LCBvdXRwdXRfc2l6ZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZvdXRwdXRfbGVuZ3RoKTsKLSAgICBpZiAoc3RhdHVzICE9IFBTQV9TVUNDRVNTKSB7Ci0gICAgICAgIHJldHVybiBzdGF0dXM7Ci0gICAgfQotICAgIC8qIEJyZWFraW5nIHVwIGEgcmVxdWVzdCBpbnRvIHNtYWxsZXIgY2h1bmtzIGlzIGN1cnJlbnRseSBub3Qgc3VwcG9ydGVkCi0gICAgICogZm9yIHRoZSBleHRlcm5hbCBSTkcgaW50ZXJmYWNlLiAqLwotICAgIGlmIChvdXRwdXRfbGVuZ3RoICE9IG91dHB1dF9zaXplKSB7Ci0gICAgICAgIHJldHVybiBQU0FfRVJST1JfSU5TVUZGSUNJRU5UX0VOVFJPUFk7Ci0gICAgfQotICAgIHJldHVybiBQU0FfU1VDQ0VTUzsKLQotI2Vsc2UgLyogTUJFRFRMU19QU0FfQ1JZUFRPX0VYVEVSTkFMX1JORyAqLwotCi0gICAgd2hpbGUgKG91dHB1dF9zaXplID4gMCkgewotICAgICAgICBpbnQgcmV0ID0gTUJFRFRMU19FUlJfUExBVEZPUk1fRkVBVFVSRV9VTlNVUFBPUlRFRDsKLSAgICAgICAgc2l6ZV90IHJlcXVlc3Rfc2l6ZSA9Ci0gICAgICAgICAgICAob3V0cHV0X3NpemUgPiBNQkVEVExTX1BTQV9SQU5ET01fTUFYX1JFUVVFU1QgPwotICAgICAgICAgICAgIE1CRURUTFNfUFNBX1JBTkRPTV9NQVhfUkVRVUVTVCA6Ci0gICAgICAgICAgICAgb3V0cHV0X3NpemUpOwotI2lmIGRlZmluZWQoTUJFRFRMU19DVFJfRFJCR19DKQotICAgICAgICByZXQgPSBtYmVkdGxzX2N0cl9kcmJnX3JhbmRvbSgmZ2xvYmFsX2RhdGEucm5nLmRyYmcsIG91dHB1dCwgcmVxdWVzdF9zaXplKTsKLSNlbGlmIGRlZmluZWQoTUJFRFRMU19ITUFDX0RSQkdfQykKLSAgICAgICAgcmV0ID0gbWJlZHRsc19obWFjX2RyYmdfcmFuZG9tKCZnbG9iYWxfZGF0YS5ybmcuZHJiZywgb3V0cHV0LCByZXF1ZXN0X3NpemUpOwotI2VuZGlmIC8qICFNQkVEVExTX0NUUl9EUkJHX0MgJiYgIU1CRURUTFNfSE1BQ19EUkJHX0MgKi8KLSAgICAgICAgaWYgKHJldCAhPSAwKSB7Ci0gICAgICAgICAgICByZXR1cm4gbWJlZHRsc190b19wc2FfZXJyb3IocmV0KTsKLSAgICAgICAgfQotICAgICAgICBvdXRwdXRfc2l6ZSAtPSByZXF1ZXN0X3NpemU7Ci0gICAgICAgIG91dHB1dCArPSByZXF1ZXN0X3NpemU7Ci0gICAgfQotICAgIHJldHVybiBQU0FfU1VDQ0VTUzsKLSNlbmRpZiAvKiBNQkVEVExTX1BTQV9DUllQVE9fRVhURVJOQUxfUk5HICovCi19Ci0KLQotLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCi0vKiBTeW1tZXRyaWMgY3J5cHRvZ3JhcGh5ICovCi0vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KLQotc3RhdGljIHBzYV9zdGF0dXNfdCBwc2FfY2lwaGVyX3NldHVwKHBzYV9jaXBoZXJfb3BlcmF0aW9uX3QgKm9wZXJhdGlvbiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYmVkdGxzX3N2Y19rZXlfaWRfdCBrZXksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHNhX2FsZ29yaXRobV90IGFsZywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYmVkdGxzX29wZXJhdGlvbl90IGNpcGhlcl9vcGVyYXRpb24pCi17Ci0gICAgcHNhX3N0YXR1c190IHN0YXR1cyA9IFBTQV9FUlJPUl9DT1JSVVBUSU9OX0RFVEVDVEVEOwotICAgIHBzYV9zdGF0dXNfdCB1bmxvY2tfc3RhdHVzID0gUFNBX0VSUk9SX0NPUlJVUFRJT05fREVURUNURUQ7Ci0gICAgcHNhX2tleV9zbG90X3QgKnNsb3QgPSBOVUxMOwotICAgIHBzYV9rZXlfdXNhZ2VfdCB1c2FnZSA9IChjaXBoZXJfb3BlcmF0aW9uID09IE1CRURUTFNfRU5DUllQVCA/Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBTQV9LRVlfVVNBR0VfRU5DUllQVCA6Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBTQV9LRVlfVVNBR0VfREVDUllQVCk7Ci0KLSAgICAvKiBBIGNvbnRleHQgbXVzdCBiZSBmcmVzaGx5IGluaXRpYWxpemVkIGJlZm9yZSBpdCBjYW4gYmUgc2V0IHVwLiAqLwotICAgIGlmIChvcGVyYXRpb24tPmlkICE9IDApIHsKLSAgICAgICAgc3RhdHVzID0gUFNBX0VSUk9SX0JBRF9TVEFURTsKLSAgICAgICAgZ290byBleGl0OwotICAgIH0KLQotICAgIGlmICghUFNBX0FMR19JU19DSVBIRVIoYWxnKSkgewotICAgICAgICBzdGF0dXMgPSBQU0FfRVJST1JfSU5WQUxJRF9BUkdVTUVOVDsKLSAgICAgICAgZ290byBleGl0OwotICAgIH0KLQotICAgIHN0YXR1cyA9IHBzYV9nZXRfYW5kX2xvY2tfa2V5X3Nsb3Rfd2l0aF9wb2xpY3koa2V5LCAmc2xvdCwgdXNhZ2UsIGFsZyk7Ci0gICAgaWYgKHN0YXR1cyAhPSBQU0FfU1VDQ0VTUykgewotICAgICAgICBnb3RvIGV4aXQ7Ci0gICAgfQotCi0gICAgLyogSW5pdGlhbGl6ZSB0aGUgb3BlcmF0aW9uIHN0cnVjdCBtZW1iZXJzLCBleGNlcHQgZm9yIGlkLiBUaGUgaWQgbWVtYmVyCi0gICAgICogaXMgdXNlZCB0byBpbmRpY2F0ZSB0byBwc2FfY2lwaGVyX2Fib3J0IHRoYXQgdGhlcmUgYXJlIHJlc291cmNlcyB0byBmcmVlLAotICAgICAqIHNvIHdlIG9ubHkgc2V0IGl0IChpbiB0aGUgZHJpdmVyIHdyYXBwZXIpIGFmdGVyIHJlc291cmNlcyBoYXZlIGJlZW4KLSAgICAgKiBhbGxvY2F0ZWQvaW5pdGlhbGl6ZWQuICovCi0gICAgb3BlcmF0aW9uLT5pdl9zZXQgPSAwOwotICAgIGlmIChhbGcgPT0gUFNBX0FMR19FQ0JfTk9fUEFERElORykgewotICAgICAgICBvcGVyYXRpb24tPml2X3JlcXVpcmVkID0gMDsKLSAgICB9IGVsc2UgewotICAgICAgICBvcGVyYXRpb24tPml2X3JlcXVpcmVkID0gMTsKLSAgICB9Ci0gICAgb3BlcmF0aW9uLT5kZWZhdWx0X2l2X2xlbmd0aCA9IFBTQV9DSVBIRVJfSVZfTEVOR1RIKHNsb3QtPmF0dHIudHlwZSwgYWxnKTsKLQotICAgIC8qIFRyeSBkb2luZyB0aGUgb3BlcmF0aW9uIHRocm91Z2ggYSBkcml2ZXIgYmVmb3JlIHVzaW5nIHNvZnR3YXJlIGZhbGxiYWNrLiAqLwotICAgIGlmIChjaXBoZXJfb3BlcmF0aW9uID09IE1CRURUTFNfRU5DUllQVCkgewotICAgICAgICBzdGF0dXMgPSBwc2FfZHJpdmVyX3dyYXBwZXJfY2lwaGVyX2VuY3J5cHRfc2V0dXAob3BlcmF0aW9uLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJnNsb3QtPmF0dHIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzbG90LT5rZXkuZGF0YSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNsb3QtPmtleS5ieXRlcywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFsZyk7Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgc3RhdHVzID0gcHNhX2RyaXZlcl93cmFwcGVyX2NpcGhlcl9kZWNyeXB0X3NldHVwKG9wZXJhdGlvbiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZzbG90LT5hdHRyLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2xvdC0+a2V5LmRhdGEsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzbG90LT5rZXkuYnl0ZXMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbGcpOwotICAgIH0KLQotZXhpdDoKLSAgICBpZiAoc3RhdHVzICE9IFBTQV9TVUNDRVNTKSB7Ci0gICAgICAgIHBzYV9jaXBoZXJfYWJvcnQob3BlcmF0aW9uKTsKLSAgICB9Ci0KLSAgICB1bmxvY2tfc3RhdHVzID0gcHNhX3VucmVnaXN0ZXJfcmVhZF91bmRlcl9tdXRleChzbG90KTsKLQotICAgIHJldHVybiAoc3RhdHVzID09IFBTQV9TVUNDRVNTKSA/IHVubG9ja19zdGF0dXMgOiBzdGF0dXM7Ci19Ci0KLXBzYV9zdGF0dXNfdCBwc2FfY2lwaGVyX2VuY3J5cHRfc2V0dXAocHNhX2NpcGhlcl9vcGVyYXRpb25fdCAqb3BlcmF0aW9uLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYmVkdGxzX3N2Y19rZXlfaWRfdCBrZXksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBzYV9hbGdvcml0aG1fdCBhbGcpCi17Ci0gICAgcmV0dXJuIHBzYV9jaXBoZXJfc2V0dXAob3BlcmF0aW9uLCBrZXksIGFsZywgTUJFRFRMU19FTkNSWVBUKTsKLX0KLQotcHNhX3N0YXR1c190IHBzYV9jaXBoZXJfZGVjcnlwdF9zZXR1cChwc2FfY2lwaGVyX29wZXJhdGlvbl90ICpvcGVyYXRpb24sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1iZWR0bHNfc3ZjX2tleV9pZF90IGtleSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHNhX2FsZ29yaXRobV90IGFsZykKLXsKLSAgICByZXR1cm4gcHNhX2NpcGhlcl9zZXR1cChvcGVyYXRpb24sIGtleSwgYWxnLCBNQkVEVExTX0RFQ1JZUFQpOwotfQotCi1wc2Ffc3RhdHVzX3QgcHNhX2NpcGhlcl9nZW5lcmF0ZV9pdihwc2FfY2lwaGVyX29wZXJhdGlvbl90ICpvcGVyYXRpb24sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50OF90ICppdl9leHRlcm5hbCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBpdl9zaXplLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90ICppdl9sZW5ndGgpCi17Ci0gICAgcHNhX3N0YXR1c190IHN0YXR1cyA9IFBTQV9FUlJPUl9DT1JSVVBUSU9OX0RFVEVDVEVEOwotICAgIHNpemVfdCBkZWZhdWx0X2l2X2xlbmd0aCA9IDA7Ci0KLSAgICBMT0NBTF9PVVRQVVRfREVDTEFSRShpdl9leHRlcm5hbCwgaXYpOwotCi0gICAgaWYgKG9wZXJhdGlvbi0+aWQgPT0gMCkgewotICAgICAgICBzdGF0dXMgPSBQU0FfRVJST1JfQkFEX1NUQVRFOwotICAgICAgICBnb3RvIGV4aXQ7Ci0gICAgfQotCi0gICAgaWYgKG9wZXJhdGlvbi0+aXZfc2V0IHx8ICFvcGVyYXRpb24tPml2X3JlcXVpcmVkKSB7Ci0gICAgICAgIHN0YXR1cyA9IFBTQV9FUlJPUl9CQURfU1RBVEU7Ci0gICAgICAgIGdvdG8gZXhpdDsKLSAgICB9Ci0KLSAgICBkZWZhdWx0X2l2X2xlbmd0aCA9IG9wZXJhdGlvbi0+ZGVmYXVsdF9pdl9sZW5ndGg7Ci0gICAgaWYgKGl2X3NpemUgPCBkZWZhdWx0X2l2X2xlbmd0aCkgewotICAgICAgICBzdGF0dXMgPSBQU0FfRVJST1JfQlVGRkVSX1RPT19TTUFMTDsKLSAgICAgICAgZ290byBleGl0OwotICAgIH0KLQotICAgIGlmIChkZWZhdWx0X2l2X2xlbmd0aCA+IFBTQV9DSVBIRVJfSVZfTUFYX1NJWkUpIHsKLSAgICAgICAgc3RhdHVzID0gUFNBX0VSUk9SX0dFTkVSSUNfRVJST1I7Ci0gICAgICAgIGdvdG8gZXhpdDsKLSAgICB9Ci0KLSAgICBMT0NBTF9PVVRQVVRfQUxMT0MoaXZfZXh0ZXJuYWwsIGRlZmF1bHRfaXZfbGVuZ3RoLCBpdik7Ci0KLSAgICBzdGF0dXMgPSBwc2FfZ2VuZXJhdGVfcmFuZG9tX2ludGVybmFsKGl2LCBkZWZhdWx0X2l2X2xlbmd0aCk7Ci0gICAgaWYgKHN0YXR1cyAhPSBQU0FfU1VDQ0VTUykgewotICAgICAgICBnb3RvIGV4aXQ7Ci0gICAgfQotCi0gICAgc3RhdHVzID0gcHNhX2RyaXZlcl93cmFwcGVyX2NpcGhlcl9zZXRfaXYob3BlcmF0aW9uLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGl2LCBkZWZhdWx0X2l2X2xlbmd0aCk7Ci0KLWV4aXQ6Ci0gICAgaWYgKHN0YXR1cyA9PSBQU0FfU1VDQ0VTUykgewotICAgICAgICAqaXZfbGVuZ3RoID0gZGVmYXVsdF9pdl9sZW5ndGg7Ci0gICAgICAgIG9wZXJhdGlvbi0+aXZfc2V0ID0gMTsKLSAgICB9IGVsc2UgewotICAgICAgICAqaXZfbGVuZ3RoID0gMDsKLSAgICAgICAgcHNhX2NpcGhlcl9hYm9ydChvcGVyYXRpb24pOwotICAgICAgICBpZiAoaXYgIT0gTlVMTCkgewotICAgICAgICAgICAgbWJlZHRsc19wbGF0Zm9ybV96ZXJvaXplKGl2LCBkZWZhdWx0X2l2X2xlbmd0aCk7Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICBMT0NBTF9PVVRQVVRfRlJFRShpdl9leHRlcm5hbCwgaXYpOwotICAgIHJldHVybiBzdGF0dXM7Ci19Ci0KLXBzYV9zdGF0dXNfdCBwc2FfY2lwaGVyX3NldF9pdihwc2FfY2lwaGVyX29wZXJhdGlvbl90ICpvcGVyYXRpb24sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdWludDhfdCAqaXZfZXh0ZXJuYWwsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IGl2X2xlbmd0aCkKLXsKLSAgICBwc2Ffc3RhdHVzX3Qgc3RhdHVzID0gUFNBX0VSUk9SX0NPUlJVUFRJT05fREVURUNURUQ7Ci0KLSAgICBMT0NBTF9JTlBVVF9ERUNMQVJFKGl2X2V4dGVybmFsLCBpdik7Ci0KLSAgICBpZiAob3BlcmF0aW9uLT5pZCA9PSAwKSB7Ci0gICAgICAgIHN0YXR1cyA9IFBTQV9FUlJPUl9CQURfU1RBVEU7Ci0gICAgICAgIGdvdG8gZXhpdDsKLSAgICB9Ci0KLSAgICBpZiAob3BlcmF0aW9uLT5pdl9zZXQgfHwgIW9wZXJhdGlvbi0+aXZfcmVxdWlyZWQpIHsKLSAgICAgICAgc3RhdHVzID0gUFNBX0VSUk9SX0JBRF9TVEFURTsKLSAgICAgICAgZ290byBleGl0OwotICAgIH0KLQotICAgIGlmIChpdl9sZW5ndGggPiBQU0FfQ0lQSEVSX0lWX01BWF9TSVpFKSB7Ci0gICAgICAgIHN0YXR1cyA9IFBTQV9FUlJPUl9JTlZBTElEX0FSR1VNRU5UOwotICAgICAgICBnb3RvIGV4aXQ7Ci0gICAgfQotCi0gICAgTE9DQUxfSU5QVVRfQUxMT0MoaXZfZXh0ZXJuYWwsIGl2X2xlbmd0aCwgaXYpOwotCi0gICAgc3RhdHVzID0gcHNhX2RyaXZlcl93cmFwcGVyX2NpcGhlcl9zZXRfaXYob3BlcmF0aW9uLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGl2LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGl2X2xlbmd0aCk7Ci0KLWV4aXQ6Ci0gICAgaWYgKHN0YXR1cyA9PSBQU0FfU1VDQ0VTUykgewotICAgICAgICBvcGVyYXRpb24tPml2X3NldCA9IDE7Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgcHNhX2NpcGhlcl9hYm9ydChvcGVyYXRpb24pOwotICAgIH0KLQotICAgIExPQ0FMX0lOUFVUX0ZSRUUoaXZfZXh0ZXJuYWwsIGl2KTsKLQotICAgIHJldHVybiBzdGF0dXM7Ci19Ci0KLXBzYV9zdGF0dXNfdCBwc2FfY2lwaGVyX3VwZGF0ZShwc2FfY2lwaGVyX29wZXJhdGlvbl90ICpvcGVyYXRpb24sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdWludDhfdCAqaW5wdXRfZXh0ZXJuYWwsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IGlucHV0X2xlbmd0aCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50OF90ICpvdXRwdXRfZXh0ZXJuYWwsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IG91dHB1dF9zaXplLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCAqb3V0cHV0X2xlbmd0aCkKLXsKLSAgICBwc2Ffc3RhdHVzX3Qgc3RhdHVzID0gUFNBX0VSUk9SX0NPUlJVUFRJT05fREVURUNURUQ7Ci0KLSAgICBMT0NBTF9JTlBVVF9ERUNMQVJFKGlucHV0X2V4dGVybmFsLCBpbnB1dCk7Ci0gICAgTE9DQUxfT1VUUFVUX0RFQ0xBUkUob3V0cHV0X2V4dGVybmFsLCBvdXRwdXQpOwotCi0gICAgaWYgKG9wZXJhdGlvbi0+aWQgPT0gMCkgewotICAgICAgICBzdGF0dXMgPSBQU0FfRVJST1JfQkFEX1NUQVRFOwotICAgICAgICBnb3RvIGV4aXQ7Ci0gICAgfQotCi0gICAgaWYgKG9wZXJhdGlvbi0+aXZfcmVxdWlyZWQgJiYgIW9wZXJhdGlvbi0+aXZfc2V0KSB7Ci0gICAgICAgIHN0YXR1cyA9IFBTQV9FUlJPUl9CQURfU1RBVEU7Ci0gICAgICAgIGdvdG8gZXhpdDsKLSAgICB9Ci0KLSAgICBMT0NBTF9JTlBVVF9BTExPQyhpbnB1dF9leHRlcm5hbCwgaW5wdXRfbGVuZ3RoLCBpbnB1dCk7Ci0gICAgTE9DQUxfT1VUUFVUX0FMTE9DKG91dHB1dF9leHRlcm5hbCwgb3V0cHV0X3NpemUsIG91dHB1dCk7Ci0KLSAgICBzdGF0dXMgPSBwc2FfZHJpdmVyX3dyYXBwZXJfY2lwaGVyX3VwZGF0ZShvcGVyYXRpb24sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5wdXQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5wdXRfbGVuZ3RoLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG91dHB1dCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvdXRwdXRfc2l6ZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvdXRwdXRfbGVuZ3RoKTsKLQotZXhpdDoKLSAgICBpZiAoc3RhdHVzICE9IFBTQV9TVUNDRVNTKSB7Ci0gICAgICAgIHBzYV9jaXBoZXJfYWJvcnQob3BlcmF0aW9uKTsKLSAgICB9Ci0KLSAgICBMT0NBTF9JTlBVVF9GUkVFKGlucHV0X2V4dGVybmFsLCBpbnB1dCk7Ci0gICAgTE9DQUxfT1VUUFVUX0ZSRUUob3V0cHV0X2V4dGVybmFsLCBvdXRwdXQpOwotCi0gICAgcmV0dXJuIHN0YXR1czsKLX0KLQotcHNhX3N0YXR1c190IHBzYV9jaXBoZXJfZmluaXNoKHBzYV9jaXBoZXJfb3BlcmF0aW9uX3QgKm9wZXJhdGlvbiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50OF90ICpvdXRwdXRfZXh0ZXJuYWwsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IG91dHB1dF9zaXplLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCAqb3V0cHV0X2xlbmd0aCkKLXsKLSAgICBwc2Ffc3RhdHVzX3Qgc3RhdHVzID0gUFNBX0VSUk9SX0dFTkVSSUNfRVJST1I7Ci0KLSAgICBMT0NBTF9PVVRQVVRfREVDTEFSRShvdXRwdXRfZXh0ZXJuYWwsIG91dHB1dCk7Ci0KLSAgICBpZiAob3BlcmF0aW9uLT5pZCA9PSAwKSB7Ci0gICAgICAgIHN0YXR1cyA9IFBTQV9FUlJPUl9CQURfU1RBVEU7Ci0gICAgICAgIGdvdG8gZXhpdDsKLSAgICB9Ci0KLSAgICBpZiAob3BlcmF0aW9uLT5pdl9yZXF1aXJlZCAmJiAhb3BlcmF0aW9uLT5pdl9zZXQpIHsKLSAgICAgICAgc3RhdHVzID0gUFNBX0VSUk9SX0JBRF9TVEFURTsKLSAgICAgICAgZ290byBleGl0OwotICAgIH0KLQotICAgIExPQ0FMX09VVFBVVF9BTExPQyhvdXRwdXRfZXh0ZXJuYWwsIG91dHB1dF9zaXplLCBvdXRwdXQpOwotCi0gICAgc3RhdHVzID0gcHNhX2RyaXZlcl93cmFwcGVyX2NpcGhlcl9maW5pc2gob3BlcmF0aW9uLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG91dHB1dCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvdXRwdXRfc2l6ZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvdXRwdXRfbGVuZ3RoKTsKLQotZXhpdDoKLSAgICBpZiAoc3RhdHVzID09IFBTQV9TVUNDRVNTKSB7Ci0gICAgICAgIHN0YXR1cyA9IHBzYV9jaXBoZXJfYWJvcnQob3BlcmF0aW9uKTsKLSAgICB9IGVsc2UgewotICAgICAgICAqb3V0cHV0X2xlbmd0aCA9IDA7Ci0gICAgICAgICh2b2lkKSBwc2FfY2lwaGVyX2Fib3J0KG9wZXJhdGlvbik7Ci0gICAgfQotCi0gICAgTE9DQUxfT1VUUFVUX0ZSRUUob3V0cHV0X2V4dGVybmFsLCBvdXRwdXQpOwotCi0gICAgcmV0dXJuIHN0YXR1czsKLX0KLQotcHNhX3N0YXR1c190IHBzYV9jaXBoZXJfYWJvcnQocHNhX2NpcGhlcl9vcGVyYXRpb25fdCAqb3BlcmF0aW9uKQotewotICAgIGlmIChvcGVyYXRpb24tPmlkID09IDApIHsKLSAgICAgICAgLyogVGhlIG9iamVjdCBoYXMgKGFwcGFyZW50bHkpIGJlZW4gaW5pdGlhbGl6ZWQgYnV0IGl0IGlzIG5vdCAoeWV0KQotICAgICAgICAgKiBpbiB1c2UuIEl0J3Mgb2sgdG8gY2FsbCBhYm9ydCBvbiBzdWNoIGFuIG9iamVjdCwgYW5kIHRoZXJlJ3MKLSAgICAgICAgICogbm90aGluZyB0byBkby4gKi8KLSAgICAgICAgcmV0dXJuIFBTQV9TVUNDRVNTOwotICAgIH0KLQotICAgIHBzYV9kcml2ZXJfd3JhcHBlcl9jaXBoZXJfYWJvcnQob3BlcmF0aW9uKTsKLQotICAgIG9wZXJhdGlvbi0+aWQgPSAwOwotICAgIG9wZXJhdGlvbi0+aXZfc2V0ID0gMDsKLSAgICBvcGVyYXRpb24tPml2X3JlcXVpcmVkID0gMDsKLQotICAgIHJldHVybiBQU0FfU1VDQ0VTUzsKLX0KLQotcHNhX3N0YXR1c190IHBzYV9jaXBoZXJfZW5jcnlwdChtYmVkdGxzX3N2Y19rZXlfaWRfdCBrZXksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBzYV9hbGdvcml0aG1fdCBhbGcsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVpbnQ4X3QgKmlucHV0X2V4dGVybmFsLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgaW5wdXRfbGVuZ3RoLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50OF90ICpvdXRwdXRfZXh0ZXJuYWwsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBvdXRwdXRfc2l6ZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90ICpvdXRwdXRfbGVuZ3RoKQotewotICAgIHBzYV9zdGF0dXNfdCBzdGF0dXMgPSBQU0FfRVJST1JfQ09SUlVQVElPTl9ERVRFQ1RFRDsKLSAgICBwc2Ffc3RhdHVzX3QgdW5sb2NrX3N0YXR1cyA9IFBTQV9FUlJPUl9DT1JSVVBUSU9OX0RFVEVDVEVEOwotICAgIHBzYV9rZXlfc2xvdF90ICpzbG90ID0gTlVMTDsKLSAgICB1aW50OF90IGxvY2FsX2l2W1BTQV9DSVBIRVJfSVZfTUFYX1NJWkVdOwotICAgIHNpemVfdCBkZWZhdWx0X2l2X2xlbmd0aCA9IDA7Ci0KLSAgICBMT0NBTF9JTlBVVF9ERUNMQVJFKGlucHV0X2V4dGVybmFsLCBpbnB1dCk7Ci0gICAgTE9DQUxfT1VUUFVUX0RFQ0xBUkUob3V0cHV0X2V4dGVybmFsLCBvdXRwdXQpOwotCi0gICAgaWYgKCFQU0FfQUxHX0lTX0NJUEhFUihhbGcpKSB7Ci0gICAgICAgIHN0YXR1cyA9IFBTQV9FUlJPUl9JTlZBTElEX0FSR1VNRU5UOwotICAgICAgICBnb3RvIGV4aXQ7Ci0gICAgfQotCi0gICAgc3RhdHVzID0gcHNhX2dldF9hbmRfbG9ja19rZXlfc2xvdF93aXRoX3BvbGljeShrZXksICZzbG90LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUFNBX0tFWV9VU0FHRV9FTkNSWVBULAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWxnKTsKLSAgICBpZiAoc3RhdHVzICE9IFBTQV9TVUNDRVNTKSB7Ci0gICAgICAgIGdvdG8gZXhpdDsKLSAgICB9Ci0KLSAgICBkZWZhdWx0X2l2X2xlbmd0aCA9IFBTQV9DSVBIRVJfSVZfTEVOR1RIKHNsb3QtPmF0dHIudHlwZSwgYWxnKTsKLSAgICBpZiAoZGVmYXVsdF9pdl9sZW5ndGggPiBQU0FfQ0lQSEVSX0lWX01BWF9TSVpFKSB7Ci0gICAgICAgIHN0YXR1cyA9IFBTQV9FUlJPUl9HRU5FUklDX0VSUk9SOwotICAgICAgICBnb3RvIGV4aXQ7Ci0gICAgfQotCi0gICAgaWYgKGRlZmF1bHRfaXZfbGVuZ3RoID4gMCkgewotICAgICAgICBpZiAob3V0cHV0X3NpemUgPCBkZWZhdWx0X2l2X2xlbmd0aCkgewotICAgICAgICAgICAgc3RhdHVzID0gUFNBX0VSUk9SX0JVRkZFUl9UT09fU01BTEw7Ci0gICAgICAgICAgICBnb3RvIGV4aXQ7Ci0gICAgICAgIH0KLQotICAgICAgICBzdGF0dXMgPSBwc2FfZ2VuZXJhdGVfcmFuZG9tX2ludGVybmFsKGxvY2FsX2l2LCBkZWZhdWx0X2l2X2xlbmd0aCk7Ci0gICAgICAgIGlmIChzdGF0dXMgIT0gUFNBX1NVQ0NFU1MpIHsKLSAgICAgICAgICAgIGdvdG8gZXhpdDsKLSAgICAgICAgfQotICAgIH0KLQotICAgIExPQ0FMX0lOUFVUX0FMTE9DKGlucHV0X2V4dGVybmFsLCBpbnB1dF9sZW5ndGgsIGlucHV0KTsKLSAgICBMT0NBTF9PVVRQVVRfQUxMT0Mob3V0cHV0X2V4dGVybmFsLCBvdXRwdXRfc2l6ZSwgb3V0cHV0KTsKLQotICAgIHN0YXR1cyA9IHBzYV9kcml2ZXJfd3JhcHBlcl9jaXBoZXJfZW5jcnlwdCgKLSAgICAgICAgJnNsb3QtPmF0dHIsIHNsb3QtPmtleS5kYXRhLCBzbG90LT5rZXkuYnl0ZXMsCi0gICAgICAgIGFsZywgbG9jYWxfaXYsIGRlZmF1bHRfaXZfbGVuZ3RoLCBpbnB1dCwgaW5wdXRfbGVuZ3RoLAotICAgICAgICBwc2FfY3J5cHRvX2J1ZmZlcl9vZmZzZXQob3V0cHV0LCBkZWZhdWx0X2l2X2xlbmd0aCksCi0gICAgICAgIG91dHB1dF9zaXplIC0gZGVmYXVsdF9pdl9sZW5ndGgsIG91dHB1dF9sZW5ndGgpOwotCi1leGl0OgotICAgIHVubG9ja19zdGF0dXMgPSBwc2FfdW5yZWdpc3Rlcl9yZWFkX3VuZGVyX211dGV4KHNsb3QpOwotICAgIGlmIChzdGF0dXMgPT0gUFNBX1NVQ0NFU1MpIHsKLSAgICAgICAgc3RhdHVzID0gdW5sb2NrX3N0YXR1czsKLSAgICB9Ci0KLSAgICBpZiAoc3RhdHVzID09IFBTQV9TVUNDRVNTKSB7Ci0gICAgICAgIGlmIChkZWZhdWx0X2l2X2xlbmd0aCA+IDApIHsKLSAgICAgICAgICAgIG1lbWNweShvdXRwdXQsIGxvY2FsX2l2LCBkZWZhdWx0X2l2X2xlbmd0aCk7Ci0gICAgICAgIH0KLSAgICAgICAgKm91dHB1dF9sZW5ndGggKz0gZGVmYXVsdF9pdl9sZW5ndGg7Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgKm91dHB1dF9sZW5ndGggPSAwOwotICAgIH0KLQotICAgIExPQ0FMX0lOUFVUX0ZSRUUoaW5wdXRfZXh0ZXJuYWwsIGlucHV0KTsKLSAgICBMT0NBTF9PVVRQVVRfRlJFRShvdXRwdXRfZXh0ZXJuYWwsIG91dHB1dCk7Ci0KLSAgICByZXR1cm4gc3RhdHVzOwotfQotCi1wc2Ffc3RhdHVzX3QgcHNhX2NpcGhlcl9kZWNyeXB0KG1iZWR0bHNfc3ZjX2tleV9pZF90IGtleSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHNhX2FsZ29yaXRobV90IGFsZywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdWludDhfdCAqaW5wdXRfZXh0ZXJuYWwsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBpbnB1dF9sZW5ndGgsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQ4X3QgKm91dHB1dF9leHRlcm5hbCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IG91dHB1dF9zaXplLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgKm91dHB1dF9sZW5ndGgpCi17Ci0gICAgcHNhX3N0YXR1c190IHN0YXR1cyA9IFBTQV9FUlJPUl9DT1JSVVBUSU9OX0RFVEVDVEVEOwotICAgIHBzYV9zdGF0dXNfdCB1bmxvY2tfc3RhdHVzID0gUFNBX0VSUk9SX0NPUlJVUFRJT05fREVURUNURUQ7Ci0gICAgcHNhX2tleV9zbG90X3QgKnNsb3QgPSBOVUxMOwotCi0gICAgTE9DQUxfSU5QVVRfREVDTEFSRShpbnB1dF9leHRlcm5hbCwgaW5wdXQpOwotICAgIExPQ0FMX09VVFBVVF9ERUNMQVJFKG91dHB1dF9leHRlcm5hbCwgb3V0cHV0KTsKLQotICAgIGlmICghUFNBX0FMR19JU19DSVBIRVIoYWxnKSkgewotICAgICAgICBzdGF0dXMgPSBQU0FfRVJST1JfSU5WQUxJRF9BUkdVTUVOVDsKLSAgICAgICAgZ290byBleGl0OwotICAgIH0KLQotICAgIHN0YXR1cyA9IHBzYV9nZXRfYW5kX2xvY2tfa2V5X3Nsb3Rfd2l0aF9wb2xpY3koa2V5LCAmc2xvdCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBTQV9LRVlfVVNBR0VfREVDUllQVCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFsZyk7Ci0gICAgaWYgKHN0YXR1cyAhPSBQU0FfU1VDQ0VTUykgewotICAgICAgICBnb3RvIGV4aXQ7Ci0gICAgfQotCi0gICAgaWYgKGFsZyA9PSBQU0FfQUxHX0NDTV9TVEFSX05PX1RBRyAmJgotICAgICAgICBpbnB1dF9sZW5ndGggPCBQU0FfQkxPQ0tfQ0lQSEVSX0JMT0NLX0xFTkdUSChzbG90LT5hdHRyLnR5cGUpKSB7Ci0gICAgICAgIHN0YXR1cyA9IFBTQV9FUlJPUl9JTlZBTElEX0FSR1VNRU5UOwotICAgICAgICBnb3RvIGV4aXQ7Ci0gICAgfSBlbHNlIGlmIChpbnB1dF9sZW5ndGggPCBQU0FfQ0lQSEVSX0lWX0xFTkdUSChzbG90LT5hdHRyLnR5cGUsIGFsZykpIHsKLSAgICAgICAgc3RhdHVzID0gUFNBX0VSUk9SX0lOVkFMSURfQVJHVU1FTlQ7Ci0gICAgICAgIGdvdG8gZXhpdDsKLSAgICB9Ci0KLSAgICBMT0NBTF9JTlBVVF9BTExPQyhpbnB1dF9leHRlcm5hbCwgaW5wdXRfbGVuZ3RoLCBpbnB1dCk7Ci0gICAgTE9DQUxfT1VUUFVUX0FMTE9DKG91dHB1dF9leHRlcm5hbCwgb3V0cHV0X3NpemUsIG91dHB1dCk7Ci0KLSAgICBzdGF0dXMgPSBwc2FfZHJpdmVyX3dyYXBwZXJfY2lwaGVyX2RlY3J5cHQoCi0gICAgICAgICZzbG90LT5hdHRyLCBzbG90LT5rZXkuZGF0YSwgc2xvdC0+a2V5LmJ5dGVzLAotICAgICAgICBhbGcsIGlucHV0LCBpbnB1dF9sZW5ndGgsCi0gICAgICAgIG91dHB1dCwgb3V0cHV0X3NpemUsIG91dHB1dF9sZW5ndGgpOwotCi1leGl0OgotICAgIHVubG9ja19zdGF0dXMgPSBwc2FfdW5yZWdpc3Rlcl9yZWFkX3VuZGVyX211dGV4KHNsb3QpOwotICAgIGlmIChzdGF0dXMgPT0gUFNBX1NVQ0NFU1MpIHsKLSAgICAgICAgc3RhdHVzID0gdW5sb2NrX3N0YXR1czsKLSAgICB9Ci0KLSAgICBpZiAoc3RhdHVzICE9IFBTQV9TVUNDRVNTKSB7Ci0gICAgICAgICpvdXRwdXRfbGVuZ3RoID0gMDsKLSAgICB9Ci0KLSAgICBMT0NBTF9JTlBVVF9GUkVFKGlucHV0X2V4dGVybmFsLCBpbnB1dCk7Ci0gICAgTE9DQUxfT1VUUFVUX0ZSRUUob3V0cHV0X2V4dGVybmFsLCBvdXRwdXQpOwotCi0gICAgcmV0dXJuIHN0YXR1czsKLX0KLQotCi0vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KLS8qIEFFQUQgKi8KLS8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwotCi0vKiBIZWxwZXIgZnVuY3Rpb24gdG8gZ2V0IHRoZSBiYXNlIGFsZ29yaXRobSBmcm9tIGl0cyB2YXJpYW50cy4gKi8KLXN0YXRpYyBwc2FfYWxnb3JpdGhtX3QgcHNhX2FlYWRfZ2V0X2Jhc2VfYWxnb3JpdGhtKHBzYV9hbGdvcml0aG1fdCBhbGcpCi17Ci0gICAgcmV0dXJuIFBTQV9BTEdfQUVBRF9XSVRIX0RFRkFVTFRfTEVOR1RIX1RBRyhhbGcpOwotfQotCi0vKiBIZWxwZXIgZnVuY3Rpb24gdG8gcGVyZm9ybSBjb21tb24gbm9uY2UgbGVuZ3RoIGNoZWNrcy4gKi8KLXN0YXRpYyBwc2Ffc3RhdHVzX3QgcHNhX2FlYWRfY2hlY2tfbm9uY2VfbGVuZ3RoKHBzYV9hbGdvcml0aG1fdCBhbGcsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3Qgbm9uY2VfbGVuZ3RoKQotewotICAgIHBzYV9hbGdvcml0aG1fdCBiYXNlX2FsZyA9IHBzYV9hZWFkX2dldF9iYXNlX2FsZ29yaXRobShhbGcpOwotCi0gICAgc3dpdGNoIChiYXNlX2FsZykgewotI2lmIGRlZmluZWQoUFNBX1dBTlRfQUxHX0dDTSkKLSAgICAgICAgY2FzZSBQU0FfQUxHX0dDTToKLSAgICAgICAgICAgIC8qIE5vdCBjaGVja2luZyBtYXggbm9uY2Ugc2l6ZSBoZXJlIGFzIEdDTSBzcGVjIGFsbG93cyBhbG1vc3QKLSAgICAgICAgICAgICAqIGFyYml0cmFyaWx5IGxhcmdlIG5vbmNlcy4gUGxlYXNlIG5vdGUgdGhhdCB3ZSBkbyBub3QgZ2VuZXJhbGx5Ci0gICAgICAgICAgICAgKiByZWNvbW1lbmQgdGhlIHVzYWdlIG9mIG5vbmNlcyBvZiBncmVhdGVyIGxlbmd0aCB0aGFuCi0gICAgICAgICAgICAgKiBQU0FfQUVBRF9OT05DRV9NQVhfU0laRSwgYXMgbGFyZ2Ugbm9uY2VzIGFyZSBoYXNoZWQgdG8gYSBzaG9ydGVyCi0gICAgICAgICAgICAgKiBzaXplLCB3aGljaCBjYW4gdGhlbiBsZWFkIHRvIGNvbGxpc2lvbnMgaWYgeW91IGVuY3J5cHQgYSB2ZXJ5Ci0gICAgICAgICAgICAgKiBsYXJnZSBudW1iZXIgb2YgbWVzc2FnZXMuKi8KLSAgICAgICAgICAgIGlmIChub25jZV9sZW5ndGggIT0gMCkgewotICAgICAgICAgICAgICAgIHJldHVybiBQU0FfU1VDQ0VTUzsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGJyZWFrOwotI2VuZGlmIC8qIFBTQV9XQU5UX0FMR19HQ00gKi8KLSNpZiBkZWZpbmVkKFBTQV9XQU5UX0FMR19DQ00pCi0gICAgICAgIGNhc2UgUFNBX0FMR19DQ006Ci0gICAgICAgICAgICBpZiAobm9uY2VfbGVuZ3RoID49IDcgJiYgbm9uY2VfbGVuZ3RoIDw9IDEzKSB7Ci0gICAgICAgICAgICAgICAgcmV0dXJuIFBTQV9TVUNDRVNTOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgYnJlYWs7Ci0jZW5kaWYgLyogUFNBX1dBTlRfQUxHX0NDTSAqLwotI2lmIGRlZmluZWQoUFNBX1dBTlRfQUxHX0NIQUNIQTIwX1BPTFkxMzA1KQotICAgICAgICBjYXNlIFBTQV9BTEdfQ0hBQ0hBMjBfUE9MWTEzMDU6Ci0gICAgICAgICAgICBpZiAobm9uY2VfbGVuZ3RoID09IDEyKSB7Ci0gICAgICAgICAgICAgICAgcmV0dXJuIFBTQV9TVUNDRVNTOwotICAgICAgICAgICAgfSBlbHNlIGlmIChub25jZV9sZW5ndGggPT0gOCkgewotICAgICAgICAgICAgICAgIHJldHVybiBQU0FfRVJST1JfTk9UX1NVUFBPUlRFRDsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGJyZWFrOwotI2VuZGlmIC8qIFBTQV9XQU5UX0FMR19DSEFDSEEyMF9QT0xZMTMwNSAqLwotICAgICAgICBkZWZhdWx0OgotICAgICAgICAgICAgKHZvaWQpIG5vbmNlX2xlbmd0aDsKLSAgICAgICAgICAgIHJldHVybiBQU0FfRVJST1JfTk9UX1NVUFBPUlRFRDsKLSAgICB9Ci0KLSAgICByZXR1cm4gUFNBX0VSUk9SX0lOVkFMSURfQVJHVU1FTlQ7Ci19Ci0KLXN0YXRpYyBwc2Ffc3RhdHVzX3QgcHNhX2FlYWRfY2hlY2tfYWxnb3JpdGhtKHBzYV9hbGdvcml0aG1fdCBhbGcpCi17Ci0gICAgaWYgKCFQU0FfQUxHX0lTX0FFQUQoYWxnKSB8fCBQU0FfQUxHX0lTX1dJTERDQVJEKGFsZykpIHsKLSAgICAgICAgcmV0dXJuIFBTQV9FUlJPUl9JTlZBTElEX0FSR1VNRU5UOwotICAgIH0KLQotICAgIHJldHVybiBQU0FfU1VDQ0VTUzsKLX0KLQotcHNhX3N0YXR1c190IHBzYV9hZWFkX2VuY3J5cHQobWJlZHRsc19zdmNfa2V5X2lkX3Qga2V5LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHNhX2FsZ29yaXRobV90IGFsZywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVpbnQ4X3QgKm5vbmNlX2V4dGVybmFsLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IG5vbmNlX2xlbmd0aCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVpbnQ4X3QgKmFkZGl0aW9uYWxfZGF0YV9leHRlcm5hbCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBhZGRpdGlvbmFsX2RhdGFfbGVuZ3RoLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdWludDhfdCAqcGxhaW50ZXh0X2V4dGVybmFsLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IHBsYWludGV4dF9sZW5ndGgsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50OF90ICpjaXBoZXJ0ZXh0X2V4dGVybmFsLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IGNpcGhlcnRleHRfc2l6ZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCAqY2lwaGVydGV4dF9sZW5ndGgpCi17Ci0gICAgcHNhX3N0YXR1c190IHN0YXR1cyA9IFBTQV9FUlJPUl9DT1JSVVBUSU9OX0RFVEVDVEVEOwotICAgIHBzYV9rZXlfc2xvdF90ICpzbG90OwotCi0gICAgTE9DQUxfSU5QVVRfREVDTEFSRShub25jZV9leHRlcm5hbCwgbm9uY2UpOwotICAgIExPQ0FMX0lOUFVUX0RFQ0xBUkUoYWRkaXRpb25hbF9kYXRhX2V4dGVybmFsLCBhZGRpdGlvbmFsX2RhdGEpOwotICAgIExPQ0FMX0lOUFVUX0RFQ0xBUkUocGxhaW50ZXh0X2V4dGVybmFsLCBwbGFpbnRleHQpOwotICAgIExPQ0FMX09VVFBVVF9ERUNMQVJFKGNpcGhlcnRleHRfZXh0ZXJuYWwsIGNpcGhlcnRleHQpOwotCi0gICAgKmNpcGhlcnRleHRfbGVuZ3RoID0gMDsKLQotICAgIHN0YXR1cyA9IHBzYV9hZWFkX2NoZWNrX2FsZ29yaXRobShhbGcpOwotICAgIGlmIChzdGF0dXMgIT0gUFNBX1NVQ0NFU1MpIHsKLSAgICAgICAgcmV0dXJuIHN0YXR1czsKLSAgICB9Ci0KLSAgICBzdGF0dXMgPSBwc2FfZ2V0X2FuZF9sb2NrX2tleV9zbG90X3dpdGhfcG9saWN5KAotICAgICAgICBrZXksICZzbG90LCBQU0FfS0VZX1VTQUdFX0VOQ1JZUFQsIGFsZyk7Ci0gICAgaWYgKHN0YXR1cyAhPSBQU0FfU1VDQ0VTUykgewotICAgICAgICByZXR1cm4gc3RhdHVzOwotICAgIH0KLQotICAgIExPQ0FMX0lOUFVUX0FMTE9DKG5vbmNlX2V4dGVybmFsLCBub25jZV9sZW5ndGgsIG5vbmNlKTsKLSAgICBMT0NBTF9JTlBVVF9BTExPQyhhZGRpdGlvbmFsX2RhdGFfZXh0ZXJuYWwsIGFkZGl0aW9uYWxfZGF0YV9sZW5ndGgsIGFkZGl0aW9uYWxfZGF0YSk7Ci0gICAgTE9DQUxfSU5QVVRfQUxMT0MocGxhaW50ZXh0X2V4dGVybmFsLCBwbGFpbnRleHRfbGVuZ3RoLCBwbGFpbnRleHQpOwotICAgIExPQ0FMX09VVFBVVF9BTExPQyhjaXBoZXJ0ZXh0X2V4dGVybmFsLCBjaXBoZXJ0ZXh0X3NpemUsIGNpcGhlcnRleHQpOwotCi0gICAgc3RhdHVzID0gcHNhX2FlYWRfY2hlY2tfbm9uY2VfbGVuZ3RoKGFsZywgbm9uY2VfbGVuZ3RoKTsKLSAgICBpZiAoc3RhdHVzICE9IFBTQV9TVUNDRVNTKSB7Ci0gICAgICAgIGdvdG8gZXhpdDsKLSAgICB9Ci0KLSAgICBzdGF0dXMgPSBwc2FfZHJpdmVyX3dyYXBwZXJfYWVhZF9lbmNyeXB0KAotICAgICAgICAmc2xvdC0+YXR0ciwgc2xvdC0+a2V5LmRhdGEsIHNsb3QtPmtleS5ieXRlcywKLSAgICAgICAgYWxnLAotICAgICAgICBub25jZSwgbm9uY2VfbGVuZ3RoLAotICAgICAgICBhZGRpdGlvbmFsX2RhdGEsIGFkZGl0aW9uYWxfZGF0YV9sZW5ndGgsCi0gICAgICAgIHBsYWludGV4dCwgcGxhaW50ZXh0X2xlbmd0aCwKLSAgICAgICAgY2lwaGVydGV4dCwgY2lwaGVydGV4dF9zaXplLCBjaXBoZXJ0ZXh0X2xlbmd0aCk7Ci0KLSAgICBpZiAoc3RhdHVzICE9IFBTQV9TVUNDRVNTICYmIGNpcGhlcnRleHRfc2l6ZSAhPSAwKSB7Ci0gICAgICAgIG1lbXNldChjaXBoZXJ0ZXh0LCAwLCBjaXBoZXJ0ZXh0X3NpemUpOwotICAgIH0KLQotZXhpdDoKLSAgICBMT0NBTF9JTlBVVF9GUkVFKG5vbmNlX2V4dGVybmFsLCBub25jZSk7Ci0gICAgTE9DQUxfSU5QVVRfRlJFRShhZGRpdGlvbmFsX2RhdGFfZXh0ZXJuYWwsIGFkZGl0aW9uYWxfZGF0YSk7Ci0gICAgTE9DQUxfSU5QVVRfRlJFRShwbGFpbnRleHRfZXh0ZXJuYWwsIHBsYWludGV4dCk7Ci0gICAgTE9DQUxfT1VUUFVUX0ZSRUUoY2lwaGVydGV4dF9leHRlcm5hbCwgY2lwaGVydGV4dCk7Ci0KLSAgICBwc2FfdW5yZWdpc3Rlcl9yZWFkX3VuZGVyX211dGV4KHNsb3QpOwotCi0gICAgcmV0dXJuIHN0YXR1czsKLX0KLQotcHNhX3N0YXR1c190IHBzYV9hZWFkX2RlY3J5cHQobWJlZHRsc19zdmNfa2V5X2lkX3Qga2V5LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHNhX2FsZ29yaXRobV90IGFsZywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVpbnQ4X3QgKm5vbmNlX2V4dGVybmFsLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IG5vbmNlX2xlbmd0aCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVpbnQ4X3QgKmFkZGl0aW9uYWxfZGF0YV9leHRlcm5hbCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBhZGRpdGlvbmFsX2RhdGFfbGVuZ3RoLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdWludDhfdCAqY2lwaGVydGV4dF9leHRlcm5hbCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBjaXBoZXJ0ZXh0X2xlbmd0aCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQ4X3QgKnBsYWludGV4dF9leHRlcm5hbCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBwbGFpbnRleHRfc2l6ZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCAqcGxhaW50ZXh0X2xlbmd0aCkKLXsKLSAgICBwc2Ffc3RhdHVzX3Qgc3RhdHVzID0gUFNBX0VSUk9SX0NPUlJVUFRJT05fREVURUNURUQ7Ci0gICAgcHNhX2tleV9zbG90X3QgKnNsb3Q7Ci0KLSAgICBMT0NBTF9JTlBVVF9ERUNMQVJFKG5vbmNlX2V4dGVybmFsLCBub25jZSk7Ci0gICAgTE9DQUxfSU5QVVRfREVDTEFSRShhZGRpdGlvbmFsX2RhdGFfZXh0ZXJuYWwsIGFkZGl0aW9uYWxfZGF0YSk7Ci0gICAgTE9DQUxfSU5QVVRfREVDTEFSRShjaXBoZXJ0ZXh0X2V4dGVybmFsLCBjaXBoZXJ0ZXh0KTsKLSAgICBMT0NBTF9PVVRQVVRfREVDTEFSRShwbGFpbnRleHRfZXh0ZXJuYWwsIHBsYWludGV4dCk7Ci0KLSAgICAqcGxhaW50ZXh0X2xlbmd0aCA9IDA7Ci0KLSAgICBzdGF0dXMgPSBwc2FfYWVhZF9jaGVja19hbGdvcml0aG0oYWxnKTsKLSAgICBpZiAoc3RhdHVzICE9IFBTQV9TVUNDRVNTKSB7Ci0gICAgICAgIHJldHVybiBzdGF0dXM7Ci0gICAgfQotCi0gICAgc3RhdHVzID0gcHNhX2dldF9hbmRfbG9ja19rZXlfc2xvdF93aXRoX3BvbGljeSgKLSAgICAgICAga2V5LCAmc2xvdCwgUFNBX0tFWV9VU0FHRV9ERUNSWVBULCBhbGcpOwotICAgIGlmIChzdGF0dXMgIT0gUFNBX1NVQ0NFU1MpIHsKLSAgICAgICAgcmV0dXJuIHN0YXR1czsKLSAgICB9Ci0KLSAgICBMT0NBTF9JTlBVVF9BTExPQyhub25jZV9leHRlcm5hbCwgbm9uY2VfbGVuZ3RoLCBub25jZSk7Ci0gICAgTE9DQUxfSU5QVVRfQUxMT0MoYWRkaXRpb25hbF9kYXRhX2V4dGVybmFsLCBhZGRpdGlvbmFsX2RhdGFfbGVuZ3RoLAotICAgICAgICAgICAgICAgICAgICAgIGFkZGl0aW9uYWxfZGF0YSk7Ci0gICAgTE9DQUxfSU5QVVRfQUxMT0MoY2lwaGVydGV4dF9leHRlcm5hbCwgY2lwaGVydGV4dF9sZW5ndGgsIGNpcGhlcnRleHQpOwotICAgIExPQ0FMX09VVFBVVF9BTExPQyhwbGFpbnRleHRfZXh0ZXJuYWwsIHBsYWludGV4dF9zaXplLCBwbGFpbnRleHQpOwotCi0gICAgc3RhdHVzID0gcHNhX2FlYWRfY2hlY2tfbm9uY2VfbGVuZ3RoKGFsZywgbm9uY2VfbGVuZ3RoKTsKLSAgICBpZiAoc3RhdHVzICE9IFBTQV9TVUNDRVNTKSB7Ci0gICAgICAgIGdvdG8gZXhpdDsKLSAgICB9Ci0KLSAgICBzdGF0dXMgPSBwc2FfZHJpdmVyX3dyYXBwZXJfYWVhZF9kZWNyeXB0KAotICAgICAgICAmc2xvdC0+YXR0ciwgc2xvdC0+a2V5LmRhdGEsIHNsb3QtPmtleS5ieXRlcywKLSAgICAgICAgYWxnLAotICAgICAgICBub25jZSwgbm9uY2VfbGVuZ3RoLAotICAgICAgICBhZGRpdGlvbmFsX2RhdGEsIGFkZGl0aW9uYWxfZGF0YV9sZW5ndGgsCi0gICAgICAgIGNpcGhlcnRleHQsIGNpcGhlcnRleHRfbGVuZ3RoLAotICAgICAgICBwbGFpbnRleHQsIHBsYWludGV4dF9zaXplLCBwbGFpbnRleHRfbGVuZ3RoKTsKLQotICAgIGlmIChzdGF0dXMgIT0gUFNBX1NVQ0NFU1MgJiYgcGxhaW50ZXh0X3NpemUgIT0gMCkgewotICAgICAgICBtZW1zZXQocGxhaW50ZXh0LCAwLCBwbGFpbnRleHRfc2l6ZSk7Ci0gICAgfQotCi1leGl0OgotICAgIExPQ0FMX0lOUFVUX0ZSRUUobm9uY2VfZXh0ZXJuYWwsIG5vbmNlKTsKLSAgICBMT0NBTF9JTlBVVF9GUkVFKGFkZGl0aW9uYWxfZGF0YV9leHRlcm5hbCwgYWRkaXRpb25hbF9kYXRhKTsKLSAgICBMT0NBTF9JTlBVVF9GUkVFKGNpcGhlcnRleHRfZXh0ZXJuYWwsIGNpcGhlcnRleHQpOwotICAgIExPQ0FMX09VVFBVVF9GUkVFKHBsYWludGV4dF9leHRlcm5hbCwgcGxhaW50ZXh0KTsKLQotICAgIHBzYV91bnJlZ2lzdGVyX3JlYWRfdW5kZXJfbXV0ZXgoc2xvdCk7Ci0KLSAgICByZXR1cm4gc3RhdHVzOwotfQotCi1zdGF0aWMgcHNhX3N0YXR1c190IHBzYV92YWxpZGF0ZV90YWdfbGVuZ3RoKHBzYV9hbGdvcml0aG1fdCBhbGcpCi17Ci0gICAgY29uc3QgdWludDhfdCB0YWdfbGVuID0gUFNBX0FMR19BRUFEX0dFVF9UQUdfTEVOR1RIKGFsZyk7Ci0KLSAgICBzd2l0Y2ggKFBTQV9BTEdfQUVBRF9XSVRIX1NIT1JURU5FRF9UQUcoYWxnLCAwKSkgewotI2lmIGRlZmluZWQoUFNBX1dBTlRfQUxHX0NDTSkKLSAgICAgICAgY2FzZSBQU0FfQUxHX0FFQURfV0lUSF9TSE9SVEVORURfVEFHKFBTQV9BTEdfQ0NNLCAwKToKLSAgICAgICAgICAgIC8qIENDTSBhbGxvd3MgdGhlIGZvbGxvd2luZyB0YWcgbGVuZ3RoczogNCwgNiwgOCwgMTAsIDEyLCAxNCwgMTYuKi8KLSAgICAgICAgICAgIGlmICh0YWdfbGVuIDwgNCB8fCB0YWdfbGVuID4gMTYgfHwgdGFnX2xlbiAlIDIpIHsKLSAgICAgICAgICAgICAgICByZXR1cm4gUFNBX0VSUk9SX0lOVkFMSURfQVJHVU1FTlQ7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBicmVhazsKLSNlbmRpZiAvKiBQU0FfV0FOVF9BTEdfQ0NNICovCi0KLSNpZiBkZWZpbmVkKFBTQV9XQU5UX0FMR19HQ00pCi0gICAgICAgIGNhc2UgUFNBX0FMR19BRUFEX1dJVEhfU0hPUlRFTkVEX1RBRyhQU0FfQUxHX0dDTSwgMCk6Ci0gICAgICAgICAgICAvKiBHQ00gYWxsb3dzIHRoZSBmb2xsb3dpbmcgdGFnIGxlbmd0aHM6IDQsIDgsIDEyLCAxMywgMTQsIDE1LCAxNi4gKi8KLSAgICAgICAgICAgIGlmICh0YWdfbGVuICE9IDQgJiYgdGFnX2xlbiAhPSA4ICYmICh0YWdfbGVuIDwgMTIgfHwgdGFnX2xlbiA+IDE2KSkgewotICAgICAgICAgICAgICAgIHJldHVybiBQU0FfRVJST1JfSU5WQUxJRF9BUkdVTUVOVDsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGJyZWFrOwotI2VuZGlmIC8qIFBTQV9XQU5UX0FMR19HQ00gKi8KLQotI2lmIGRlZmluZWQoUFNBX1dBTlRfQUxHX0NIQUNIQTIwX1BPTFkxMzA1KQotICAgICAgICBjYXNlIFBTQV9BTEdfQUVBRF9XSVRIX1NIT1JURU5FRF9UQUcoUFNBX0FMR19DSEFDSEEyMF9QT0xZMTMwNSwgMCk6Ci0gICAgICAgICAgICAvKiBXZSBvbmx5IHN1cHBvcnQgdGhlIGRlZmF1bHQgdGFnIGxlbmd0aC4gKi8KLSAgICAgICAgICAgIGlmICh0YWdfbGVuICE9IDE2KSB7Ci0gICAgICAgICAgICAgICAgcmV0dXJuIFBTQV9FUlJPUl9JTlZBTElEX0FSR1VNRU5UOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgYnJlYWs7Ci0jZW5kaWYgLyogUFNBX1dBTlRfQUxHX0NIQUNIQTIwX1BPTFkxMzA1ICovCi0KLSAgICAgICAgZGVmYXVsdDoKLSAgICAgICAgICAgICh2b2lkKSB0YWdfbGVuOwotICAgICAgICAgICAgcmV0dXJuIFBTQV9FUlJPUl9OT1RfU1VQUE9SVEVEOwotICAgIH0KLSAgICByZXR1cm4gUFNBX1NVQ0NFU1M7Ci19Ci0KLS8qIFNldCB0aGUga2V5IGZvciBhIG11bHRpcGFydCBhdXRoZW50aWNhdGVkIG9wZXJhdGlvbi4gKi8KLXN0YXRpYyBwc2Ffc3RhdHVzX3QgcHNhX2FlYWRfc2V0dXAocHNhX2FlYWRfb3BlcmF0aW9uX3QgKm9wZXJhdGlvbiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGlzX2VuY3J5cHQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1iZWR0bHNfc3ZjX2tleV9pZF90IGtleSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHNhX2FsZ29yaXRobV90IGFsZykKLXsKLSAgICBwc2Ffc3RhdHVzX3Qgc3RhdHVzID0gUFNBX0VSUk9SX0NPUlJVUFRJT05fREVURUNURUQ7Ci0gICAgcHNhX3N0YXR1c190IHVubG9ja19zdGF0dXMgPSBQU0FfRVJST1JfQ09SUlVQVElPTl9ERVRFQ1RFRDsKLSAgICBwc2Ffa2V5X3Nsb3RfdCAqc2xvdCA9IE5VTEw7Ci0gICAgcHNhX2tleV91c2FnZV90IGtleV91c2FnZSA9IDA7Ci0KLSAgICBzdGF0dXMgPSBwc2FfYWVhZF9jaGVja19hbGdvcml0aG0oYWxnKTsKLSAgICBpZiAoc3RhdHVzICE9IFBTQV9TVUNDRVNTKSB7Ci0gICAgICAgIGdvdG8gZXhpdDsKLSAgICB9Ci0KLSAgICBpZiAob3BlcmF0aW9uLT5pZCAhPSAwKSB7Ci0gICAgICAgIHN0YXR1cyA9IFBTQV9FUlJPUl9CQURfU1RBVEU7Ci0gICAgICAgIGdvdG8gZXhpdDsKLSAgICB9Ci0KLSAgICBpZiAob3BlcmF0aW9uLT5ub25jZV9zZXQgfHwgb3BlcmF0aW9uLT5sZW5ndGhzX3NldCB8fAotICAgICAgICBvcGVyYXRpb24tPmFkX3N0YXJ0ZWQgfHwgb3BlcmF0aW9uLT5ib2R5X3N0YXJ0ZWQpIHsKLSAgICAgICAgc3RhdHVzID0gUFNBX0VSUk9SX0JBRF9TVEFURTsKLSAgICAgICAgZ290byBleGl0OwotICAgIH0KLQotICAgIGlmIChpc19lbmNyeXB0KSB7Ci0gICAgICAgIGtleV91c2FnZSA9IFBTQV9LRVlfVVNBR0VfRU5DUllQVDsKLSAgICB9IGVsc2UgewotICAgICAgICBrZXlfdXNhZ2UgPSBQU0FfS0VZX1VTQUdFX0RFQ1JZUFQ7Ci0gICAgfQotCi0gICAgc3RhdHVzID0gcHNhX2dldF9hbmRfbG9ja19rZXlfc2xvdF93aXRoX3BvbGljeShrZXksICZzbG90LCBrZXlfdXNhZ2UsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbGcpOwotICAgIGlmIChzdGF0dXMgIT0gUFNBX1NVQ0NFU1MpIHsKLSAgICAgICAgZ290byBleGl0OwotICAgIH0KLQotICAgIGlmICgoc3RhdHVzID0gcHNhX3ZhbGlkYXRlX3RhZ19sZW5ndGgoYWxnKSkgIT0gUFNBX1NVQ0NFU1MpIHsKLSAgICAgICAgZ290byBleGl0OwotICAgIH0KLQotICAgIGlmIChpc19lbmNyeXB0KSB7Ci0gICAgICAgIHN0YXR1cyA9IHBzYV9kcml2ZXJfd3JhcHBlcl9hZWFkX2VuY3J5cHRfc2V0dXAob3BlcmF0aW9uLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZzbG90LT5hdHRyLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNsb3QtPmtleS5kYXRhLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNsb3QtPmtleS5ieXRlcywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbGcpOwotICAgIH0gZWxzZSB7Ci0gICAgICAgIHN0YXR1cyA9IHBzYV9kcml2ZXJfd3JhcHBlcl9hZWFkX2RlY3J5cHRfc2V0dXAob3BlcmF0aW9uLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZzbG90LT5hdHRyLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNsb3QtPmtleS5kYXRhLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNsb3QtPmtleS5ieXRlcywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbGcpOwotICAgIH0KLSAgICBpZiAoc3RhdHVzICE9IFBTQV9TVUNDRVNTKSB7Ci0gICAgICAgIGdvdG8gZXhpdDsKLSAgICB9Ci0KLSAgICBvcGVyYXRpb24tPmtleV90eXBlID0gcHNhX2dldF9rZXlfdHlwZSgmc2xvdC0+YXR0cik7Ci0KLWV4aXQ6Ci0gICAgdW5sb2NrX3N0YXR1cyA9IHBzYV91bnJlZ2lzdGVyX3JlYWRfdW5kZXJfbXV0ZXgoc2xvdCk7Ci0KLSAgICBpZiAoc3RhdHVzID09IFBTQV9TVUNDRVNTKSB7Ci0gICAgICAgIHN0YXR1cyA9IHVubG9ja19zdGF0dXM7Ci0gICAgICAgIG9wZXJhdGlvbi0+YWxnID0gcHNhX2FlYWRfZ2V0X2Jhc2VfYWxnb3JpdGhtKGFsZyk7Ci0gICAgICAgIG9wZXJhdGlvbi0+aXNfZW5jcnlwdCA9IGlzX2VuY3J5cHQ7Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgcHNhX2FlYWRfYWJvcnQob3BlcmF0aW9uKTsKLSAgICB9Ci0KLSAgICByZXR1cm4gc3RhdHVzOwotfQotCi0vKiBTZXQgdGhlIGtleSBmb3IgYSBtdWx0aXBhcnQgYXV0aGVudGljYXRlZCBlbmNyeXB0aW9uIG9wZXJhdGlvbi4gKi8KLXBzYV9zdGF0dXNfdCBwc2FfYWVhZF9lbmNyeXB0X3NldHVwKHBzYV9hZWFkX29wZXJhdGlvbl90ICpvcGVyYXRpb24sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYmVkdGxzX3N2Y19rZXlfaWRfdCBrZXksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwc2FfYWxnb3JpdGhtX3QgYWxnKQotewotICAgIHJldHVybiBwc2FfYWVhZF9zZXR1cChvcGVyYXRpb24sIDEsIGtleSwgYWxnKTsKLX0KLQotLyogU2V0IHRoZSBrZXkgZm9yIGEgbXVsdGlwYXJ0IGF1dGhlbnRpY2F0ZWQgZGVjcnlwdGlvbiBvcGVyYXRpb24uICovCi1wc2Ffc3RhdHVzX3QgcHNhX2FlYWRfZGVjcnlwdF9zZXR1cChwc2FfYWVhZF9vcGVyYXRpb25fdCAqb3BlcmF0aW9uLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWJlZHRsc19zdmNfa2V5X2lkX3Qga2V5LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHNhX2FsZ29yaXRobV90IGFsZykKLXsKLSAgICByZXR1cm4gcHNhX2FlYWRfc2V0dXAob3BlcmF0aW9uLCAwLCBrZXksIGFsZyk7Ci19Ci0KLXN0YXRpYyBwc2Ffc3RhdHVzX3QgcHNhX2FlYWRfc2V0X25vbmNlX2ludGVybmFsKHBzYV9hZWFkX29wZXJhdGlvbl90ICpvcGVyYXRpb24sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1aW50OF90ICpub25jZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBub25jZV9sZW5ndGgpCi17Ci0gICAgcHNhX3N0YXR1c190IHN0YXR1cyA9IFBTQV9FUlJPUl9DT1JSVVBUSU9OX0RFVEVDVEVEOwotCi0gICAgaWYgKG9wZXJhdGlvbi0+aWQgPT0gMCkgewotICAgICAgICBzdGF0dXMgPSBQU0FfRVJST1JfQkFEX1NUQVRFOwotICAgICAgICBnb3RvIGV4aXQ7Ci0gICAgfQotCi0gICAgaWYgKG9wZXJhdGlvbi0+bm9uY2Vfc2V0KSB7Ci0gICAgICAgIHN0YXR1cyA9IFBTQV9FUlJPUl9CQURfU1RBVEU7Ci0gICAgICAgIGdvdG8gZXhpdDsKLSAgICB9Ci0KLSAgICBzdGF0dXMgPSBwc2FfYWVhZF9jaGVja19ub25jZV9sZW5ndGgob3BlcmF0aW9uLT5hbGcsIG5vbmNlX2xlbmd0aCk7Ci0gICAgaWYgKHN0YXR1cyAhPSBQU0FfU1VDQ0VTUykgewotICAgICAgICBzdGF0dXMgPSBQU0FfRVJST1JfSU5WQUxJRF9BUkdVTUVOVDsKLSAgICAgICAgZ290byBleGl0OwotICAgIH0KLQotICAgIHN0YXR1cyA9IHBzYV9kcml2ZXJfd3JhcHBlcl9hZWFkX3NldF9ub25jZShvcGVyYXRpb24sIG5vbmNlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub25jZV9sZW5ndGgpOwotCi1leGl0OgotICAgIGlmIChzdGF0dXMgPT0gUFNBX1NVQ0NFU1MpIHsKLSAgICAgICAgb3BlcmF0aW9uLT5ub25jZV9zZXQgPSAxOwotICAgIH0gZWxzZSB7Ci0gICAgICAgIHBzYV9hZWFkX2Fib3J0KG9wZXJhdGlvbik7Ci0gICAgfQotCi0gICAgcmV0dXJuIHN0YXR1czsKLX0KLQotLyogR2VuZXJhdGUgYSByYW5kb20gbm9uY2UgLyBJViBmb3IgbXVsdGlwYXJ0IEFFQUQgb3BlcmF0aW9uICovCi1wc2Ffc3RhdHVzX3QgcHNhX2FlYWRfZ2VuZXJhdGVfbm9uY2UocHNhX2FlYWRfb3BlcmF0aW9uX3QgKm9wZXJhdGlvbiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50OF90ICpub25jZV9leHRlcm5hbCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3Qgbm9uY2Vfc2l6ZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgKm5vbmNlX2xlbmd0aCkKLXsKLSAgICBwc2Ffc3RhdHVzX3Qgc3RhdHVzID0gUFNBX0VSUk9SX0NPUlJVUFRJT05fREVURUNURUQ7Ci0gICAgdWludDhfdCBsb2NhbF9ub25jZVtQU0FfQUVBRF9OT05DRV9NQVhfU0laRV07Ci0gICAgc2l6ZV90IHJlcXVpcmVkX25vbmNlX3NpemUgPSAwOwotCi0gICAgTE9DQUxfT1VUUFVUX0RFQ0xBUkUobm9uY2VfZXh0ZXJuYWwsIG5vbmNlKTsKLSAgICBMT0NBTF9PVVRQVVRfQUxMT0Mobm9uY2VfZXh0ZXJuYWwsIG5vbmNlX3NpemUsIG5vbmNlKTsKLQotICAgICpub25jZV9sZW5ndGggPSAwOwotCi0gICAgaWYgKG9wZXJhdGlvbi0+aWQgPT0gMCkgewotICAgICAgICBzdGF0dXMgPSBQU0FfRVJST1JfQkFEX1NUQVRFOwotICAgICAgICBnb3RvIGV4aXQ7Ci0gICAgfQotCi0gICAgaWYgKG9wZXJhdGlvbi0+bm9uY2Vfc2V0IHx8ICFvcGVyYXRpb24tPmlzX2VuY3J5cHQpIHsKLSAgICAgICAgc3RhdHVzID0gUFNBX0VSUk9SX0JBRF9TVEFURTsKLSAgICAgICAgZ290byBleGl0OwotICAgIH0KLQotICAgIC8qIEZvciBDQ00sIHRoaXMgc2l6ZSBtYXkgbm90IGJlIGNvcnJlY3QgYWNjb3JkaW5nIHRvIHRoZSBQU0EKLSAgICAgKiBzcGVjaWZpY2F0aW9uLiBUaGUgUFNBIENyeXB0byAxLjAuMSBzcGVjaWZpY2F0aW9uIHN0YXRlczoKLSAgICAgKgotICAgICAqIENDTSBlbmNvZGVzIHRoZSBwbGFpbnRleHQgbGVuZ3RoIHBMZW4gaW4gTCBvY3RldHMsIHdpdGggTCB0aGUgc21hbGxlc3QKLSAgICAgKiBpbnRlZ2VyID49IDIgd2hlcmUgcExlbiA8IDJeKDhMKS4gVGhlIG5vbmNlIGxlbmd0aCBpcyB0aGVuIDE1IC0gTCBieXRlcy4KLSAgICAgKgotICAgICAqIEhvd2V2ZXIgdGhpcyByZXN0cmljdGlvbiB0aGF0IEwgaGFzIHRvIGJlIHRoZSBzbWFsbGVzdCBpbnRlZ2VyIGlzIG5vdAotICAgICAqIGFwcGxpZWQgaW4gcHJhY3RpY2UsIGFuZCBpdCBpcyBub3QgaW1wbGVtZW50YWJsZSBoZXJlIHNpbmNlIHRoZQotICAgICAqIHBsYWludGV4dCBsZW5ndGggbWF5IG9yIG1heSBub3QgYmUga25vd24gYXQgdGhpcyB0aW1lLiAqLwotICAgIHJlcXVpcmVkX25vbmNlX3NpemUgPSBQU0FfQUVBRF9OT05DRV9MRU5HVEgob3BlcmF0aW9uLT5rZXlfdHlwZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wZXJhdGlvbi0+YWxnKTsKLSAgICBpZiAobm9uY2Vfc2l6ZSA8IHJlcXVpcmVkX25vbmNlX3NpemUpIHsKLSAgICAgICAgc3RhdHVzID0gUFNBX0VSUk9SX0JVRkZFUl9UT09fU01BTEw7Ci0gICAgICAgIGdvdG8gZXhpdDsKLSAgICB9Ci0KLSAgICBzdGF0dXMgPSBwc2FfZ2VuZXJhdGVfcmFuZG9tX2ludGVybmFsKGxvY2FsX25vbmNlLCByZXF1aXJlZF9ub25jZV9zaXplKTsKLSAgICBpZiAoc3RhdHVzICE9IFBTQV9TVUNDRVNTKSB7Ci0gICAgICAgIGdvdG8gZXhpdDsKLSAgICB9Ci0KLSAgICBzdGF0dXMgPSBwc2FfYWVhZF9zZXRfbm9uY2VfaW50ZXJuYWwob3BlcmF0aW9uLCBsb2NhbF9ub25jZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWlyZWRfbm9uY2Vfc2l6ZSk7Ci0KLWV4aXQ6Ci0gICAgaWYgKHN0YXR1cyA9PSBQU0FfU1VDQ0VTUykgewotICAgICAgICBtZW1jcHkobm9uY2UsIGxvY2FsX25vbmNlLCByZXF1aXJlZF9ub25jZV9zaXplKTsKLSAgICAgICAgKm5vbmNlX2xlbmd0aCA9IHJlcXVpcmVkX25vbmNlX3NpemU7Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgcHNhX2FlYWRfYWJvcnQob3BlcmF0aW9uKTsKLSAgICB9Ci0KLSAgICBMT0NBTF9PVVRQVVRfRlJFRShub25jZV9leHRlcm5hbCwgbm9uY2UpOwotCi0gICAgcmV0dXJuIHN0YXR1czsKLX0KLQotLyogU2V0IHRoZSBub25jZSBmb3IgYSBtdWx0aXBhcnQgYXV0aGVudGljYXRlZCBlbmNyeXB0aW9uIG9yIGRlY3J5cHRpb24KLSAgIG9wZXJhdGlvbi4qLwotcHNhX3N0YXR1c190IHBzYV9hZWFkX3NldF9ub25jZShwc2FfYWVhZF9vcGVyYXRpb25fdCAqb3BlcmF0aW9uLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1aW50OF90ICpub25jZV9leHRlcm5hbCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IG5vbmNlX2xlbmd0aCkKLXsKLSAgICBwc2Ffc3RhdHVzX3Qgc3RhdHVzOwotCi0gICAgTE9DQUxfSU5QVVRfREVDTEFSRShub25jZV9leHRlcm5hbCwgbm9uY2UpOwotICAgIExPQ0FMX0lOUFVUX0FMTE9DKG5vbmNlX2V4dGVybmFsLCBub25jZV9sZW5ndGgsIG5vbmNlKTsKLQotICAgIHN0YXR1cyA9IHBzYV9hZWFkX3NldF9ub25jZV9pbnRlcm5hbChvcGVyYXRpb24sIG5vbmNlLCBub25jZV9sZW5ndGgpOwotCi0vKiBFeGl0IGxhYmVsIGlzIG9ubHkgbmVlZGVkIGZvciBidWZmZXIgY29weWluZywgcHJldmVudCB1bnVzZWQgd2FybmluZ3MuICovCi0jaWYgIWRlZmluZWQoTUJFRFRMU19QU0FfQVNTVU1FX0VYQ0xVU0lWRV9CVUZGRVJTKQotZXhpdDoKLSNlbmRpZgotCi0gICAgTE9DQUxfSU5QVVRfRlJFRShub25jZV9leHRlcm5hbCwgbm9uY2UpOwotCi0gICAgcmV0dXJuIHN0YXR1czsKLX0KLQotLyogRGVjbGFyZSB0aGUgbGVuZ3RocyBvZiB0aGUgbWVzc2FnZSBhbmQgYWRkaXRpb25hbCBkYXRhIGZvciBtdWx0aXBhcnQgQUVBRC4gKi8KLXBzYV9zdGF0dXNfdCBwc2FfYWVhZF9zZXRfbGVuZ3Rocyhwc2FfYWVhZF9vcGVyYXRpb25fdCAqb3BlcmF0aW9uLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBhZF9sZW5ndGgsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IHBsYWludGV4dF9sZW5ndGgpCi17Ci0gICAgcHNhX3N0YXR1c190IHN0YXR1cyA9IFBTQV9FUlJPUl9DT1JSVVBUSU9OX0RFVEVDVEVEOwotCi0gICAgaWYgKG9wZXJhdGlvbi0+aWQgPT0gMCkgewotICAgICAgICBzdGF0dXMgPSBQU0FfRVJST1JfQkFEX1NUQVRFOwotICAgICAgICBnb3RvIGV4aXQ7Ci0gICAgfQotCi0gICAgaWYgKG9wZXJhdGlvbi0+bGVuZ3Roc19zZXQgfHwgb3BlcmF0aW9uLT5hZF9zdGFydGVkIHx8Ci0gICAgICAgIG9wZXJhdGlvbi0+Ym9keV9zdGFydGVkKSB7Ci0gICAgICAgIHN0YXR1cyA9IFBTQV9FUlJPUl9CQURfU1RBVEU7Ci0gICAgICAgIGdvdG8gZXhpdDsKLSAgICB9Ci0KLSAgICBzd2l0Y2ggKG9wZXJhdGlvbi0+YWxnKSB7Ci0jaWYgZGVmaW5lZChQU0FfV0FOVF9BTEdfR0NNKQotICAgICAgICBjYXNlIFBTQV9BTEdfR0NNOgotICAgICAgICAgICAgLyogTGVuZ3RocyBjYW4gb25seSBiZSB0b28gbGFyZ2UgZm9yIEdDTSBpZiBzaXplX3QgaXMgYmlnZ2VyIHRoYW4gMzIKLSAgICAgICAgICAgICAqIGJpdHMuIFdpdGhvdXQgdGhlIGd1YXJkIHRoaXMgY29kZSB3aWxsIGdlbmVyYXRlIHdhcm5pbmdzIG9uIDMyYml0Ci0gICAgICAgICAgICAgKiBidWlsZHMuICovCi0jaWYgU0laRV9NQVggPiBVSU5UMzJfTUFYCi0gICAgICAgICAgICBpZiAoKCh1aW50NjRfdCkgYWRfbGVuZ3RoKSA+PiA2MSAhPSAwIHx8Ci0gICAgICAgICAgICAgICAgKCh1aW50NjRfdCkgcGxhaW50ZXh0X2xlbmd0aCkgPiAweEZGRkZGRkZFMHVsbCkgewotICAgICAgICAgICAgICAgIHN0YXR1cyA9IFBTQV9FUlJPUl9JTlZBTElEX0FSR1VNRU5UOwotICAgICAgICAgICAgICAgIGdvdG8gZXhpdDsKLSAgICAgICAgICAgIH0KLSNlbmRpZgotICAgICAgICAgICAgYnJlYWs7Ci0jZW5kaWYgLyogUFNBX1dBTlRfQUxHX0dDTSAqLwotI2lmIGRlZmluZWQoUFNBX1dBTlRfQUxHX0NDTSkKLSAgICAgICAgY2FzZSBQU0FfQUxHX0NDTToKLSAgICAgICAgICAgIGlmIChhZF9sZW5ndGggPiAweEZGMDApIHsKLSAgICAgICAgICAgICAgICBzdGF0dXMgPSBQU0FfRVJST1JfSU5WQUxJRF9BUkdVTUVOVDsKLSAgICAgICAgICAgICAgICBnb3RvIGV4aXQ7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBicmVhazsKLSNlbmRpZiAvKiBQU0FfV0FOVF9BTEdfQ0NNICovCi0jaWYgZGVmaW5lZChQU0FfV0FOVF9BTEdfQ0hBQ0hBMjBfUE9MWTEzMDUpCi0gICAgICAgIGNhc2UgUFNBX0FMR19DSEFDSEEyMF9QT0xZMTMwNToKLSAgICAgICAgICAgIC8qIE5vIGxlbmd0aCByZXN0cmljdGlvbnMgZm9yIENoYUNoYVBvbHkuICovCi0gICAgICAgICAgICBicmVhazsKLSNlbmRpZiAvKiBQU0FfV0FOVF9BTEdfQ0hBQ0hBMjBfUE9MWTEzMDUgKi8KLSAgICAgICAgZGVmYXVsdDoKLSAgICAgICAgICAgIGJyZWFrOwotICAgIH0KLQotICAgIHN0YXR1cyA9IHBzYV9kcml2ZXJfd3JhcHBlcl9hZWFkX3NldF9sZW5ndGhzKG9wZXJhdGlvbiwgYWRfbGVuZ3RoLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBsYWludGV4dF9sZW5ndGgpOwotCi1leGl0OgotICAgIGlmIChzdGF0dXMgPT0gUFNBX1NVQ0NFU1MpIHsKLSAgICAgICAgb3BlcmF0aW9uLT5hZF9yZW1haW5pbmcgPSBhZF9sZW5ndGg7Ci0gICAgICAgIG9wZXJhdGlvbi0+Ym9keV9yZW1haW5pbmcgPSBwbGFpbnRleHRfbGVuZ3RoOwotICAgICAgICBvcGVyYXRpb24tPmxlbmd0aHNfc2V0ID0gMTsKLSAgICB9IGVsc2UgewotICAgICAgICBwc2FfYWVhZF9hYm9ydChvcGVyYXRpb24pOwotICAgIH0KLQotICAgIHJldHVybiBzdGF0dXM7Ci19Ci0KLS8qIFBhc3MgYWRkaXRpb25hbCBkYXRhIHRvIGFuIGFjdGl2ZSBtdWx0aXBhcnQgQUVBRCBvcGVyYXRpb24uICovCi1wc2Ffc3RhdHVzX3QgcHNhX2FlYWRfdXBkYXRlX2FkKHBzYV9hZWFkX29wZXJhdGlvbl90ICpvcGVyYXRpb24sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVpbnQ4X3QgKmlucHV0X2V4dGVybmFsLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgaW5wdXRfbGVuZ3RoKQotewotICAgIHBzYV9zdGF0dXNfdCBzdGF0dXMgPSBQU0FfRVJST1JfQ09SUlVQVElPTl9ERVRFQ1RFRDsKLQotICAgIExPQ0FMX0lOUFVUX0RFQ0xBUkUoaW5wdXRfZXh0ZXJuYWwsIGlucHV0KTsKLSAgICBMT0NBTF9JTlBVVF9BTExPQyhpbnB1dF9leHRlcm5hbCwgaW5wdXRfbGVuZ3RoLCBpbnB1dCk7Ci0KLSAgICBpZiAob3BlcmF0aW9uLT5pZCA9PSAwKSB7Ci0gICAgICAgIHN0YXR1cyA9IFBTQV9FUlJPUl9CQURfU1RBVEU7Ci0gICAgICAgIGdvdG8gZXhpdDsKLSAgICB9Ci0KLSAgICBpZiAoIW9wZXJhdGlvbi0+bm9uY2Vfc2V0IHx8IG9wZXJhdGlvbi0+Ym9keV9zdGFydGVkKSB7Ci0gICAgICAgIHN0YXR1cyA9IFBTQV9FUlJPUl9CQURfU1RBVEU7Ci0gICAgICAgIGdvdG8gZXhpdDsKLSAgICB9Ci0KLSAgICAvKiBObyBpbnB1dCB0byBhZGQgKHplcm8gbGVuZ3RoKSwgbm90aGluZyB0byBkby4gKi8KLSAgICBpZiAoaW5wdXRfbGVuZ3RoID09IDApIHsKLSAgICAgICAgc3RhdHVzID0gUFNBX1NVQ0NFU1M7Ci0gICAgICAgIGdvdG8gZXhpdDsKLSAgICB9Ci0KLSAgICBpZiAob3BlcmF0aW9uLT5sZW5ndGhzX3NldCkgewotICAgICAgICBpZiAob3BlcmF0aW9uLT5hZF9yZW1haW5pbmcgPCBpbnB1dF9sZW5ndGgpIHsKLSAgICAgICAgICAgIHN0YXR1cyA9IFBTQV9FUlJPUl9JTlZBTElEX0FSR1VNRU5UOwotICAgICAgICAgICAgZ290byBleGl0OwotICAgICAgICB9Ci0KLSAgICAgICAgb3BlcmF0aW9uLT5hZF9yZW1haW5pbmcgLT0gaW5wdXRfbGVuZ3RoOwotICAgIH0KLSNpZiBkZWZpbmVkKFBTQV9XQU5UX0FMR19DQ00pCi0gICAgZWxzZSBpZiAob3BlcmF0aW9uLT5hbGcgPT0gUFNBX0FMR19DQ00pIHsKLSAgICAgICAgc3RhdHVzID0gUFNBX0VSUk9SX0JBRF9TVEFURTsKLSAgICAgICAgZ290byBleGl0OwotICAgIH0KLSNlbmRpZiAvKiBQU0FfV0FOVF9BTEdfQ0NNICovCi0KLSAgICBzdGF0dXMgPSBwc2FfZHJpdmVyX3dyYXBwZXJfYWVhZF91cGRhdGVfYWQob3BlcmF0aW9uLCBpbnB1dCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5wdXRfbGVuZ3RoKTsKLQotZXhpdDoKLSAgICBpZiAoc3RhdHVzID09IFBTQV9TVUNDRVNTKSB7Ci0gICAgICAgIG9wZXJhdGlvbi0+YWRfc3RhcnRlZCA9IDE7Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgcHNhX2FlYWRfYWJvcnQob3BlcmF0aW9uKTsKLSAgICB9Ci0KLSAgICBMT0NBTF9JTlBVVF9GUkVFKGlucHV0X2V4dGVybmFsLCBpbnB1dCk7Ci0KLSAgICByZXR1cm4gc3RhdHVzOwotfQotCi0vKiBFbmNyeXB0IG9yIGRlY3J5cHQgYSBtZXNzYWdlIGZyYWdtZW50IGluIGFuIGFjdGl2ZSBtdWx0aXBhcnQgQUVBRAotICAgb3BlcmF0aW9uLiovCi1wc2Ffc3RhdHVzX3QgcHNhX2FlYWRfdXBkYXRlKHBzYV9hZWFkX29wZXJhdGlvbl90ICpvcGVyYXRpb24sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVpbnQ4X3QgKmlucHV0X2V4dGVybmFsLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgaW5wdXRfbGVuZ3RoLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50OF90ICpvdXRwdXRfZXh0ZXJuYWwsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBvdXRwdXRfc2l6ZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90ICpvdXRwdXRfbGVuZ3RoKQotewotICAgIHBzYV9zdGF0dXNfdCBzdGF0dXMgPSBQU0FfRVJST1JfQ09SUlVQVElPTl9ERVRFQ1RFRDsKLQotCi0gICAgTE9DQUxfSU5QVVRfREVDTEFSRShpbnB1dF9leHRlcm5hbCwgaW5wdXQpOwotICAgIExPQ0FMX09VVFBVVF9ERUNMQVJFKG91dHB1dF9leHRlcm5hbCwgb3V0cHV0KTsKLQotICAgIExPQ0FMX0lOUFVUX0FMTE9DKGlucHV0X2V4dGVybmFsLCBpbnB1dF9sZW5ndGgsIGlucHV0KTsKLSAgICBMT0NBTF9PVVRQVVRfQUxMT0Mob3V0cHV0X2V4dGVybmFsLCBvdXRwdXRfc2l6ZSwgb3V0cHV0KTsKLQotICAgICpvdXRwdXRfbGVuZ3RoID0gMDsKLQotICAgIGlmIChvcGVyYXRpb24tPmlkID09IDApIHsKLSAgICAgICAgc3RhdHVzID0gUFNBX0VSUk9SX0JBRF9TVEFURTsKLSAgICAgICAgZ290byBleGl0OwotICAgIH0KLQotICAgIGlmICghb3BlcmF0aW9uLT5ub25jZV9zZXQpIHsKLSAgICAgICAgc3RhdHVzID0gUFNBX0VSUk9SX0JBRF9TVEFURTsKLSAgICAgICAgZ290byBleGl0OwotICAgIH0KLQotICAgIGlmIChvcGVyYXRpb24tPmxlbmd0aHNfc2V0KSB7Ci0gICAgICAgIC8qIEFkZGl0aW9uYWwgZGF0YSBsZW5ndGggd2FzIHN1cHBsaWVkLCBidXQgbm90IGFsbCB0aGUgYWRkaXRpb25hbAotICAgICAgICAgICBkYXRhIHdhcyBzdXBwbGllZC4qLwotICAgICAgICBpZiAob3BlcmF0aW9uLT5hZF9yZW1haW5pbmcgIT0gMCkgewotICAgICAgICAgICAgc3RhdHVzID0gUFNBX0VSUk9SX0lOVkFMSURfQVJHVU1FTlQ7Ci0gICAgICAgICAgICBnb3RvIGV4aXQ7Ci0gICAgICAgIH0KLQotICAgICAgICAvKiBUb28gbXVjaCBkYXRhIHByb3ZpZGVkLiAqLwotICAgICAgICBpZiAob3BlcmF0aW9uLT5ib2R5X3JlbWFpbmluZyA8IGlucHV0X2xlbmd0aCkgewotICAgICAgICAgICAgc3RhdHVzID0gUFNBX0VSUk9SX0lOVkFMSURfQVJHVU1FTlQ7Ci0gICAgICAgICAgICBnb3RvIGV4aXQ7Ci0gICAgICAgIH0KLQotICAgICAgICBvcGVyYXRpb24tPmJvZHlfcmVtYWluaW5nIC09IGlucHV0X2xlbmd0aDsKLSAgICB9Ci0jaWYgZGVmaW5lZChQU0FfV0FOVF9BTEdfQ0NNKQotICAgIGVsc2UgaWYgKG9wZXJhdGlvbi0+YWxnID09IFBTQV9BTEdfQ0NNKSB7Ci0gICAgICAgIHN0YXR1cyA9IFBTQV9FUlJPUl9CQURfU1RBVEU7Ci0gICAgICAgIGdvdG8gZXhpdDsKLSAgICB9Ci0jZW5kaWYgLyogUFNBX1dBTlRfQUxHX0NDTSAqLwotCi0gICAgc3RhdHVzID0gcHNhX2RyaXZlcl93cmFwcGVyX2FlYWRfdXBkYXRlKG9wZXJhdGlvbiwgaW5wdXQsIGlucHV0X2xlbmd0aCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3V0cHV0LCBvdXRwdXRfc2l6ZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3V0cHV0X2xlbmd0aCk7Ci0KLWV4aXQ6Ci0gICAgaWYgKHN0YXR1cyA9PSBQU0FfU1VDQ0VTUykgewotICAgICAgICBvcGVyYXRpb24tPmJvZHlfc3RhcnRlZCA9IDE7Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgcHNhX2FlYWRfYWJvcnQob3BlcmF0aW9uKTsKLSAgICB9Ci0KLSAgICBMT0NBTF9JTlBVVF9GUkVFKGlucHV0X2V4dGVybmFsLCBpbnB1dCk7Ci0gICAgTE9DQUxfT1VUUFVUX0ZSRUUob3V0cHV0X2V4dGVybmFsLCBvdXRwdXQpOwotCi0gICAgcmV0dXJuIHN0YXR1czsKLX0KLQotc3RhdGljIHBzYV9zdGF0dXNfdCBwc2FfYWVhZF9maW5hbF9jaGVja3MoY29uc3QgcHNhX2FlYWRfb3BlcmF0aW9uX3QgKm9wZXJhdGlvbikKLXsKLSAgICBpZiAob3BlcmF0aW9uLT5pZCA9PSAwIHx8ICFvcGVyYXRpb24tPm5vbmNlX3NldCkgewotICAgICAgICByZXR1cm4gUFNBX0VSUk9SX0JBRF9TVEFURTsKLSAgICB9Ci0KLSAgICBpZiAob3BlcmF0aW9uLT5sZW5ndGhzX3NldCAmJiAob3BlcmF0aW9uLT5hZF9yZW1haW5pbmcgIT0gMCB8fAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcGVyYXRpb24tPmJvZHlfcmVtYWluaW5nICE9IDApKSB7Ci0gICAgICAgIHJldHVybiBQU0FfRVJST1JfSU5WQUxJRF9BUkdVTUVOVDsKLSAgICB9Ci0KLSAgICByZXR1cm4gUFNBX1NVQ0NFU1M7Ci19Ci0KLS8qIEZpbmlzaCBlbmNyeXB0aW5nIGEgbWVzc2FnZSBpbiBhIG11bHRpcGFydCBBRUFEIG9wZXJhdGlvbi4gKi8KLXBzYV9zdGF0dXNfdCBwc2FfYWVhZF9maW5pc2gocHNhX2FlYWRfb3BlcmF0aW9uX3QgKm9wZXJhdGlvbiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDhfdCAqY2lwaGVydGV4dF9leHRlcm5hbCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IGNpcGhlcnRleHRfc2l6ZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90ICpjaXBoZXJ0ZXh0X2xlbmd0aCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDhfdCAqdGFnX2V4dGVybmFsLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgdGFnX3NpemUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCAqdGFnX2xlbmd0aCkKLXsKLSAgICBwc2Ffc3RhdHVzX3Qgc3RhdHVzID0gUFNBX0VSUk9SX0NPUlJVUFRJT05fREVURUNURUQ7Ci0KLSAgICBMT0NBTF9PVVRQVVRfREVDTEFSRShjaXBoZXJ0ZXh0X2V4dGVybmFsLCBjaXBoZXJ0ZXh0KTsKLSAgICBMT0NBTF9PVVRQVVRfREVDTEFSRSh0YWdfZXh0ZXJuYWwsIHRhZyk7Ci0KLSAgICBMT0NBTF9PVVRQVVRfQUxMT0MoY2lwaGVydGV4dF9leHRlcm5hbCwgY2lwaGVydGV4dF9zaXplLCBjaXBoZXJ0ZXh0KTsKLSAgICBMT0NBTF9PVVRQVVRfQUxMT0ModGFnX2V4dGVybmFsLCB0YWdfc2l6ZSwgdGFnKTsKLQotICAgICpjaXBoZXJ0ZXh0X2xlbmd0aCA9IDA7Ci0gICAgKnRhZ19sZW5ndGggPSB0YWdfc2l6ZTsKLQotICAgIHN0YXR1cyA9IHBzYV9hZWFkX2ZpbmFsX2NoZWNrcyhvcGVyYXRpb24pOwotICAgIGlmIChzdGF0dXMgIT0gUFNBX1NVQ0NFU1MpIHsKLSAgICAgICAgZ290byBleGl0OwotICAgIH0KLQotICAgIGlmICghb3BlcmF0aW9uLT5pc19lbmNyeXB0KSB7Ci0gICAgICAgIHN0YXR1cyA9IFBTQV9FUlJPUl9CQURfU1RBVEU7Ci0gICAgICAgIGdvdG8gZXhpdDsKLSAgICB9Ci0KLSAgICBzdGF0dXMgPSBwc2FfZHJpdmVyX3dyYXBwZXJfYWVhZF9maW5pc2gob3BlcmF0aW9uLCBjaXBoZXJ0ZXh0LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaXBoZXJ0ZXh0X3NpemUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNpcGhlcnRleHRfbGVuZ3RoLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YWcsIHRhZ19zaXplLCB0YWdfbGVuZ3RoKTsKLQotZXhpdDoKLQotCi0gICAgLyogSW4gY2FzZSB0aGUgb3BlcmF0aW9uIGZhaWxzIGFuZCB0aGUgdXNlciBmYWlscyB0byBjaGVjayBmb3IgZmFpbHVyZSBvcgotICAgICAqIHRoZSB6ZXJvIHRhZyBzaXplLCBtYWtlIHN1cmUgdGhlIHRhZyBpcyBzZXQgdG8gc29tZXRoaW5nIGltcGxhdXNpYmxlLgotICAgICAqIEV2ZW4gaWYgdGhlIG9wZXJhdGlvbiBzdWNjZWVkcywgbWFrZSBzdXJlIHdlIGNsZWFyIHRoZSByZXN0IG9mIHRoZQotICAgICAqIGJ1ZmZlciB0byBwcmV2ZW50IHBvdGVudGlhbCBsZWFrYWdlIG9mIGFueXRoaW5nIHByZXZpb3VzbHkgcGxhY2VkIGluCi0gICAgICogdGhlIHNhbWUgYnVmZmVyLiovCi0gICAgcHNhX3dpcGVfdGFnX291dHB1dF9idWZmZXIodGFnLCBzdGF0dXMsIHRhZ19zaXplLCAqdGFnX2xlbmd0aCk7Ci0KLSAgICBwc2FfYWVhZF9hYm9ydChvcGVyYXRpb24pOwotCi0gICAgTE9DQUxfT1VUUFVUX0ZSRUUoY2lwaGVydGV4dF9leHRlcm5hbCwgY2lwaGVydGV4dCk7Ci0gICAgTE9DQUxfT1VUUFVUX0ZSRUUodGFnX2V4dGVybmFsLCB0YWcpOwotCi0gICAgcmV0dXJuIHN0YXR1czsKLX0KLQotLyogRmluaXNoIGF1dGhlbnRpY2F0aW5nIGFuZCBkZWNyeXB0aW5nIGEgbWVzc2FnZSBpbiBhIG11bHRpcGFydCBBRUFECi0gICBvcGVyYXRpb24uKi8KLXBzYV9zdGF0dXNfdCBwc2FfYWVhZF92ZXJpZnkocHNhX2FlYWRfb3BlcmF0aW9uX3QgKm9wZXJhdGlvbiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDhfdCAqcGxhaW50ZXh0X2V4dGVybmFsLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgcGxhaW50ZXh0X3NpemUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCAqcGxhaW50ZXh0X2xlbmd0aCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdWludDhfdCAqdGFnX2V4dGVybmFsLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgdGFnX2xlbmd0aCkKLXsKLSAgICBwc2Ffc3RhdHVzX3Qgc3RhdHVzID0gUFNBX0VSUk9SX0NPUlJVUFRJT05fREVURUNURUQ7Ci0KLSAgICBMT0NBTF9PVVRQVVRfREVDTEFSRShwbGFpbnRleHRfZXh0ZXJuYWwsIHBsYWludGV4dCk7Ci0gICAgTE9DQUxfSU5QVVRfREVDTEFSRSh0YWdfZXh0ZXJuYWwsIHRhZyk7Ci0KLSAgICBMT0NBTF9PVVRQVVRfQUxMT0MocGxhaW50ZXh0X2V4dGVybmFsLCBwbGFpbnRleHRfc2l6ZSwgcGxhaW50ZXh0KTsKLSAgICBMT0NBTF9JTlBVVF9BTExPQyh0YWdfZXh0ZXJuYWwsIHRhZ19sZW5ndGgsIHRhZyk7Ci0KLSAgICAqcGxhaW50ZXh0X2xlbmd0aCA9IDA7Ci0KLSAgICBzdGF0dXMgPSBwc2FfYWVhZF9maW5hbF9jaGVja3Mob3BlcmF0aW9uKTsKLSAgICBpZiAoc3RhdHVzICE9IFBTQV9TVUNDRVNTKSB7Ci0gICAgICAgIGdvdG8gZXhpdDsKLSAgICB9Ci0KLSAgICBpZiAob3BlcmF0aW9uLT5pc19lbmNyeXB0KSB7Ci0gICAgICAgIHN0YXR1cyA9IFBTQV9FUlJPUl9CQURfU1RBVEU7Ci0gICAgICAgIGdvdG8gZXhpdDsKLSAgICB9Ci0KLSAgICBzdGF0dXMgPSBwc2FfZHJpdmVyX3dyYXBwZXJfYWVhZF92ZXJpZnkob3BlcmF0aW9uLCBwbGFpbnRleHQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBsYWludGV4dF9zaXplLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwbGFpbnRleHRfbGVuZ3RoLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YWcsIHRhZ19sZW5ndGgpOwotCi1leGl0OgotICAgIHBzYV9hZWFkX2Fib3J0KG9wZXJhdGlvbik7Ci0KLSAgICBMT0NBTF9PVVRQVVRfRlJFRShwbGFpbnRleHRfZXh0ZXJuYWwsIHBsYWludGV4dCk7Ci0gICAgTE9DQUxfSU5QVVRfRlJFRSh0YWdfZXh0ZXJuYWwsIHRhZyk7Ci0KLSAgICByZXR1cm4gc3RhdHVzOwotfQotCi0vKiBBYm9ydCBhbiBBRUFEIG9wZXJhdGlvbi4gKi8KLXBzYV9zdGF0dXNfdCBwc2FfYWVhZF9hYm9ydChwc2FfYWVhZF9vcGVyYXRpb25fdCAqb3BlcmF0aW9uKQotewotICAgIHBzYV9zdGF0dXNfdCBzdGF0dXMgPSBQU0FfRVJST1JfQ09SUlVQVElPTl9ERVRFQ1RFRDsKLQotICAgIGlmIChvcGVyYXRpb24tPmlkID09IDApIHsKLSAgICAgICAgLyogVGhlIG9iamVjdCBoYXMgKGFwcGFyZW50bHkpIGJlZW4gaW5pdGlhbGl6ZWQgYnV0IGl0IGlzIG5vdCAoeWV0KQotICAgICAgICAgKiBpbiB1c2UuIEl0J3Mgb2sgdG8gY2FsbCBhYm9ydCBvbiBzdWNoIGFuIG9iamVjdCwgYW5kIHRoZXJlJ3MKLSAgICAgICAgICogbm90aGluZyB0byBkby4gKi8KLSAgICAgICAgcmV0dXJuIFBTQV9TVUNDRVNTOwotICAgIH0KLQotICAgIHN0YXR1cyA9IHBzYV9kcml2ZXJfd3JhcHBlcl9hZWFkX2Fib3J0KG9wZXJhdGlvbik7Ci0KLSAgICBtZW1zZXQob3BlcmF0aW9uLCAwLCBzaXplb2YoKm9wZXJhdGlvbikpOwotCi0gICAgcmV0dXJuIHN0YXR1czsKLX0KLQotLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCi0vKiBHZW5lcmF0b3JzICovCi0vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KLQotI2lmIGRlZmluZWQoQlVJTFRJTl9BTEdfQU5ZX0hLREYpIHx8IFwKLSAgICBkZWZpbmVkKE1CRURUTFNfUFNBX0JVSUxUSU5fQUxHX1RMUzEyX1BSRikgfHwgXAotICAgIGRlZmluZWQoTUJFRFRMU19QU0FfQlVJTFRJTl9BTEdfVExTMTJfUFNLX1RPX01TKSB8fCBcCi0gICAgZGVmaW5lZChNQkVEVExTX1BTQV9CVUlMVElOX0FMR19UTFMxMl9FQ0pQQUtFX1RPX1BNUykgfHwgXAotICAgIGRlZmluZWQoUFNBX0hBVkVfU09GVF9QQktERjIpCi0jZGVmaW5lIEFUX0xFQVNUX09ORV9CVUlMVElOX0tERgotI2VuZGlmIC8qIEF0IGxlYXN0IG9uZSBidWlsdGluIEtERiAqLwotCi0jaWYgZGVmaW5lZChCVUlMVElOX0FMR19BTllfSEtERikgfHwgXAotICAgIGRlZmluZWQoTUJFRFRMU19QU0FfQlVJTFRJTl9BTEdfVExTMTJfUFJGKSB8fCBcCi0gICAgZGVmaW5lZChNQkVEVExTX1BTQV9CVUlMVElOX0FMR19UTFMxMl9QU0tfVE9fTVMpCi1zdGF0aWMgcHNhX3N0YXR1c190IHBzYV9rZXlfZGVyaXZhdGlvbl9zdGFydF9obWFjKAotICAgIHBzYV9tYWNfb3BlcmF0aW9uX3QgKm9wZXJhdGlvbiwKLSAgICBwc2FfYWxnb3JpdGhtX3QgaGFzaF9hbGcsCi0gICAgY29uc3QgdWludDhfdCAqaG1hY19rZXksCi0gICAgc2l6ZV90IGhtYWNfa2V5X2xlbmd0aCkKLXsKLSAgICBwc2Ffc3RhdHVzX3Qgc3RhdHVzID0gUFNBX0VSUk9SX0NPUlJVUFRJT05fREVURUNURUQ7Ci0gICAgcHNhX2tleV9hdHRyaWJ1dGVzX3QgYXR0cmlidXRlcyA9IFBTQV9LRVlfQVRUUklCVVRFU19JTklUOwotICAgIHBzYV9zZXRfa2V5X3R5cGUoJmF0dHJpYnV0ZXMsIFBTQV9LRVlfVFlQRV9ITUFDKTsKLSAgICBwc2Ffc2V0X2tleV9iaXRzKCZhdHRyaWJ1dGVzLCBQU0FfQllURVNfVE9fQklUUyhobWFjX2tleV9sZW5ndGgpKTsKLSAgICBwc2Ffc2V0X2tleV91c2FnZV9mbGFncygmYXR0cmlidXRlcywgUFNBX0tFWV9VU0FHRV9TSUdOX0hBU0gpOwotCi0gICAgb3BlcmF0aW9uLT5pc19zaWduID0gMTsKLSAgICBvcGVyYXRpb24tPm1hY19zaXplID0gUFNBX0hBU0hfTEVOR1RIKGhhc2hfYWxnKTsKLQotICAgIHN0YXR1cyA9IHBzYV9kcml2ZXJfd3JhcHBlcl9tYWNfc2lnbl9zZXR1cChvcGVyYXRpb24sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZhdHRyaWJ1dGVzLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBobWFjX2tleSwgaG1hY19rZXlfbGVuZ3RoLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQU0FfQUxHX0hNQUMoaGFzaF9hbGcpKTsKLQotICAgIHBzYV9yZXNldF9rZXlfYXR0cmlidXRlcygmYXR0cmlidXRlcyk7Ci0gICAgcmV0dXJuIHN0YXR1czsKLX0KLSNlbmRpZiAvKiBLREYgYWxnb3JpdGhtcyByZWxpYW50IG9uIEhNQUMgKi8KLQotI2RlZmluZSBIS0RGX1NUQVRFX0lOSVQgMCAvKiBubyBpbnB1dCB5ZXQgKi8KLSNkZWZpbmUgSEtERl9TVEFURV9TVEFSVEVEIDEgLyogZ290IHNhbHQgKi8KLSNkZWZpbmUgSEtERl9TVEFURV9LRVlFRCAyIC8qIGdvdCBrZXkgKi8KLSNkZWZpbmUgSEtERl9TVEFURV9PVVRQVVQgMyAvKiBvdXRwdXQgc3RhcnRlZCAqLwotCi1zdGF0aWMgcHNhX2FsZ29yaXRobV90IHBzYV9rZXlfZGVyaXZhdGlvbl9nZXRfa2RmX2FsZygKLSAgICBjb25zdCBwc2Ffa2V5X2Rlcml2YXRpb25fb3BlcmF0aW9uX3QgKm9wZXJhdGlvbikKLXsKLSAgICBpZiAoUFNBX0FMR19JU19LRVlfQUdSRUVNRU5UKG9wZXJhdGlvbi0+YWxnKSkgewotICAgICAgICByZXR1cm4gUFNBX0FMR19LRVlfQUdSRUVNRU5UX0dFVF9LREYob3BlcmF0aW9uLT5hbGcpOwotICAgIH0gZWxzZSB7Ci0gICAgICAgIHJldHVybiBvcGVyYXRpb24tPmFsZzsKLSAgICB9Ci19Ci0KLXBzYV9zdGF0dXNfdCBwc2Ffa2V5X2Rlcml2YXRpb25fYWJvcnQocHNhX2tleV9kZXJpdmF0aW9uX29wZXJhdGlvbl90ICpvcGVyYXRpb24pCi17Ci0gICAgcHNhX3N0YXR1c190IHN0YXR1cyA9IFBTQV9TVUNDRVNTOwotICAgIHBzYV9hbGdvcml0aG1fdCBrZGZfYWxnID0gcHNhX2tleV9kZXJpdmF0aW9uX2dldF9rZGZfYWxnKG9wZXJhdGlvbik7Ci0gICAgaWYgKGtkZl9hbGcgPT0gMCkgewotICAgICAgICAvKiBUaGUgb2JqZWN0IGhhcyAoYXBwYXJlbnRseSkgYmVlbiBpbml0aWFsaXplZCBidXQgaXQgaXMgbm90Ci0gICAgICAgICAqIGluIHVzZS4gSXQncyBvayB0byBjYWxsIGFib3J0IG9uIHN1Y2ggYW4gb2JqZWN0LCBhbmQgdGhlcmUncwotICAgICAgICAgKiBub3RoaW5nIHRvIGRvLiAqLwotICAgIH0gZWxzZQotI2lmIGRlZmluZWQoQlVJTFRJTl9BTEdfQU5ZX0hLREYpCi0gICAgaWYgKFBTQV9BTEdfSVNfQU5ZX0hLREYoa2RmX2FsZykpIHsKLSAgICAgICAgbWJlZHRsc19mcmVlKG9wZXJhdGlvbi0+Y3R4LmhrZGYuaW5mbyk7Ci0gICAgICAgIHN0YXR1cyA9IHBzYV9tYWNfYWJvcnQoJm9wZXJhdGlvbi0+Y3R4LmhrZGYuaG1hYyk7Ci0gICAgfSBlbHNlCi0jZW5kaWYgLyogQlVJTFRJTl9BTEdfQU5ZX0hLREYgKi8KLSNpZiBkZWZpbmVkKE1CRURUTFNfUFNBX0JVSUxUSU5fQUxHX1RMUzEyX1BSRikgfHwgXAotICAgIGRlZmluZWQoTUJFRFRMU19QU0FfQlVJTFRJTl9BTEdfVExTMTJfUFNLX1RPX01TKQotICAgIGlmIChQU0FfQUxHX0lTX1RMUzEyX1BSRihrZGZfYWxnKSB8fAotICAgICAgICAvKiBUTFMtMS4yIFBTSy10by1NUyBLREYgdXNlcyB0aGUgc2FtZSBjb3JlIGFzIFRMUy0xLjIgUFJGICovCi0gICAgICAgIFBTQV9BTEdfSVNfVExTMTJfUFNLX1RPX01TKGtkZl9hbGcpKSB7Ci0gICAgICAgIGlmIChvcGVyYXRpb24tPmN0eC50bHMxMl9wcmYuc2VjcmV0ICE9IE5VTEwpIHsKLSAgICAgICAgICAgIG1iZWR0bHNfemVyb2l6ZV9hbmRfZnJlZShvcGVyYXRpb24tPmN0eC50bHMxMl9wcmYuc2VjcmV0LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wZXJhdGlvbi0+Y3R4LnRsczEyX3ByZi5zZWNyZXRfbGVuZ3RoKTsKLSAgICAgICAgfQotCi0gICAgICAgIGlmIChvcGVyYXRpb24tPmN0eC50bHMxMl9wcmYuc2VlZCAhPSBOVUxMKSB7Ci0gICAgICAgICAgICBtYmVkdGxzX3plcm9pemVfYW5kX2ZyZWUob3BlcmF0aW9uLT5jdHgudGxzMTJfcHJmLnNlZWQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3BlcmF0aW9uLT5jdHgudGxzMTJfcHJmLnNlZWRfbGVuZ3RoKTsKLSAgICAgICAgfQotCi0gICAgICAgIGlmIChvcGVyYXRpb24tPmN0eC50bHMxMl9wcmYubGFiZWwgIT0gTlVMTCkgewotICAgICAgICAgICAgbWJlZHRsc196ZXJvaXplX2FuZF9mcmVlKG9wZXJhdGlvbi0+Y3R4LnRsczEyX3ByZi5sYWJlbCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcGVyYXRpb24tPmN0eC50bHMxMl9wcmYubGFiZWxfbGVuZ3RoKTsKLSAgICAgICAgfQotI2lmIGRlZmluZWQoTUJFRFRMU19QU0FfQlVJTFRJTl9BTEdfVExTMTJfUFNLX1RPX01TKQotICAgICAgICBpZiAob3BlcmF0aW9uLT5jdHgudGxzMTJfcHJmLm90aGVyX3NlY3JldCAhPSBOVUxMKSB7Ci0gICAgICAgICAgICBtYmVkdGxzX3plcm9pemVfYW5kX2ZyZWUob3BlcmF0aW9uLT5jdHgudGxzMTJfcHJmLm90aGVyX3NlY3JldCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcGVyYXRpb24tPmN0eC50bHMxMl9wcmYub3RoZXJfc2VjcmV0X2xlbmd0aCk7Ci0gICAgICAgIH0KLSNlbmRpZiAvKiBNQkVEVExTX1BTQV9CVUlMVElOX0FMR19UTFMxMl9QU0tfVE9fTVMgKi8KLSAgICAgICAgc3RhdHVzID0gUFNBX1NVQ0NFU1M7Ci0KLSAgICAgICAgLyogV2UgbGVhdmUgdGhlIGZpZWxkcyBBaSBhbmQgb3V0cHV0X2Jsb2NrIHRvIGJlIGVyYXNlZCBzYWZlbHkgYnkgdGhlCi0gICAgICAgICAqIG1iZWR0bHNfcGxhdGZvcm1femVyb2l6ZSgpIGluIHRoZSBlbmQgb2YgdGhpcyBmdW5jdGlvbi4gKi8KLSAgICB9IGVsc2UKLSNlbmRpZiAvKiBkZWZpbmVkKE1CRURUTFNfUFNBX0JVSUxUSU5fQUxHX1RMUzEyX1BSRikgfHwKLSAgICAgICAgKiBkZWZpbmVkKE1CRURUTFNfUFNBX0JVSUxUSU5fQUxHX1RMUzEyX1BTS19UT19NUykgKi8KLSNpZiBkZWZpbmVkKE1CRURUTFNfUFNBX0JVSUxUSU5fQUxHX1RMUzEyX0VDSlBBS0VfVE9fUE1TKQotICAgIGlmIChrZGZfYWxnID09IFBTQV9BTEdfVExTMTJfRUNKUEFLRV9UT19QTVMpIHsKLSAgICAgICAgbWJlZHRsc19wbGF0Zm9ybV96ZXJvaXplKG9wZXJhdGlvbi0+Y3R4LnRsczEyX2VjanBha2VfdG9fcG1zLmRhdGEsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplb2Yob3BlcmF0aW9uLT5jdHgudGxzMTJfZWNqcGFrZV90b19wbXMuZGF0YSkpOwotICAgIH0gZWxzZQotI2VuZGlmIC8qIGRlZmluZWQoTUJFRFRMU19QU0FfQlVJTFRJTl9BTEdfVExTMTJfRUNKUEFLRV9UT19QTVMpICovCi0jaWYgZGVmaW5lZChQU0FfSEFWRV9TT0ZUX1BCS0RGMikKLSAgICBpZiAoUFNBX0FMR19JU19QQktERjIoa2RmX2FsZykpIHsKLSAgICAgICAgaWYgKG9wZXJhdGlvbi0+Y3R4LnBia2RmMi5zYWx0ICE9IE5VTEwpIHsKLSAgICAgICAgICAgIG1iZWR0bHNfemVyb2l6ZV9hbmRfZnJlZShvcGVyYXRpb24tPmN0eC5wYmtkZjIuc2FsdCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcGVyYXRpb24tPmN0eC5wYmtkZjIuc2FsdF9sZW5ndGgpOwotICAgICAgICB9Ci0KLSAgICAgICAgc3RhdHVzID0gUFNBX1NVQ0NFU1M7Ci0gICAgfSBlbHNlCi0jZW5kaWYgLyogZGVmaW5lZChQU0FfSEFWRV9TT0ZUX1BCS0RGMikgKi8KLSAgICB7Ci0gICAgICAgIHN0YXR1cyA9IFBTQV9FUlJPUl9CQURfU1RBVEU7Ci0gICAgfQotICAgIG1iZWR0bHNfcGxhdGZvcm1femVyb2l6ZShvcGVyYXRpb24sIHNpemVvZigqb3BlcmF0aW9uKSk7Ci0gICAgcmV0dXJuIHN0YXR1czsKLX0KLQotcHNhX3N0YXR1c190IHBzYV9rZXlfZGVyaXZhdGlvbl9nZXRfY2FwYWNpdHkoY29uc3QgcHNhX2tleV9kZXJpdmF0aW9uX29wZXJhdGlvbl90ICpvcGVyYXRpb24sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgKmNhcGFjaXR5KQotewotICAgIGlmIChvcGVyYXRpb24tPmFsZyA9PSAwKSB7Ci0gICAgICAgIC8qIFRoaXMgaXMgYSBibGFuayBrZXkgZGVyaXZhdGlvbiBvcGVyYXRpb24uICovCi0gICAgICAgIHJldHVybiBQU0FfRVJST1JfQkFEX1NUQVRFOwotICAgIH0KLQotICAgICpjYXBhY2l0eSA9IG9wZXJhdGlvbi0+Y2FwYWNpdHk7Ci0gICAgcmV0dXJuIFBTQV9TVUNDRVNTOwotfQotCi1wc2Ffc3RhdHVzX3QgcHNhX2tleV9kZXJpdmF0aW9uX3NldF9jYXBhY2l0eShwc2Ffa2V5X2Rlcml2YXRpb25fb3BlcmF0aW9uX3QgKm9wZXJhdGlvbiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBjYXBhY2l0eSkKLXsKLSAgICBpZiAob3BlcmF0aW9uLT5hbGcgPT0gMCkgewotICAgICAgICByZXR1cm4gUFNBX0VSUk9SX0JBRF9TVEFURTsKLSAgICB9Ci0gICAgaWYgKGNhcGFjaXR5ID4gb3BlcmF0aW9uLT5jYXBhY2l0eSkgewotICAgICAgICByZXR1cm4gUFNBX0VSUk9SX0lOVkFMSURfQVJHVU1FTlQ7Ci0gICAgfQotICAgIG9wZXJhdGlvbi0+Y2FwYWNpdHkgPSBjYXBhY2l0eTsKLSAgICByZXR1cm4gUFNBX1NVQ0NFU1M7Ci19Ci0KLSNpZiBkZWZpbmVkKEJVSUxUSU5fQUxHX0FOWV9IS0RGKQotLyogUmVhZCBzb21lIGJ5dGVzIGZyb20gYW4gSEtERi1iYXNlZCBvcGVyYXRpb24uICovCi1zdGF0aWMgcHNhX3N0YXR1c190IHBzYV9rZXlfZGVyaXZhdGlvbl9oa2RmX3JlYWQocHNhX2hrZGZfa2V5X2Rlcml2YXRpb25fdCAqaGtkZiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwc2FfYWxnb3JpdGhtX3Qga2RmX2FsZywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50OF90ICpvdXRwdXQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IG91dHB1dF9sZW5ndGgpCi17Ci0gICAgcHNhX2FsZ29yaXRobV90IGhhc2hfYWxnID0gUFNBX0FMR19IS0RGX0dFVF9IQVNIKGtkZl9hbGcpOwotICAgIHVpbnQ4X3QgaGFzaF9sZW5ndGggPSBQU0FfSEFTSF9MRU5HVEgoaGFzaF9hbGcpOwotICAgIHNpemVfdCBobWFjX291dHB1dF9sZW5ndGg7Ci0gICAgcHNhX3N0YXR1c190IHN0YXR1czsKLSNpZiBkZWZpbmVkKE1CRURUTFNfUFNBX0JVSUxUSU5fQUxHX0hLREZfRVhUUkFDVCkKLSAgICBjb25zdCB1aW50OF90IGxhc3RfYmxvY2sgPSBQU0FfQUxHX0lTX0hLREZfRVhUUkFDVChrZGZfYWxnKSA/IDAgOiAweGZmOwotI2Vsc2UKLSAgICBjb25zdCB1aW50OF90IGxhc3RfYmxvY2sgPSAweGZmOwotI2VuZGlmIC8qIE1CRURUTFNfUFNBX0JVSUxUSU5fQUxHX0hLREZfRVhUUkFDVCAqLwotCi0gICAgaWYgKGhrZGYtPnN0YXRlIDwgSEtERl9TVEFURV9LRVlFRCB8fAotICAgICAgICAoIWhrZGYtPmluZm9fc2V0Ci0jaWYgZGVmaW5lZChNQkVEVExTX1BTQV9CVUlMVElOX0FMR19IS0RGX0VYVFJBQ1QpCi0gICAgICAgICAmJiAhUFNBX0FMR19JU19IS0RGX0VYVFJBQ1Qoa2RmX2FsZykKLSNlbmRpZiAvKiBNQkVEVExTX1BTQV9CVUlMVElOX0FMR19IS0RGX0VYVFJBQ1QgKi8KLSAgICAgICAgKSkgewotICAgICAgICByZXR1cm4gUFNBX0VSUk9SX0JBRF9TVEFURTsKLSAgICB9Ci0gICAgaGtkZi0+c3RhdGUgPSBIS0RGX1NUQVRFX09VVFBVVDsKLQotICAgIHdoaWxlIChvdXRwdXRfbGVuZ3RoICE9IDApIHsKLSAgICAgICAgLyogQ29weSB3aGF0IHJlbWFpbnMgb2YgdGhlIGN1cnJlbnQgYmxvY2sgKi8KLSAgICAgICAgdWludDhfdCBuID0gaGFzaF9sZW5ndGggLSBoa2RmLT5vZmZzZXRfaW5fYmxvY2s7Ci0gICAgICAgIGlmIChuID4gb3V0cHV0X2xlbmd0aCkgewotICAgICAgICAgICAgbiA9ICh1aW50OF90KSBvdXRwdXRfbGVuZ3RoOwotICAgICAgICB9Ci0gICAgICAgIG1lbWNweShvdXRwdXQsIGhrZGYtPm91dHB1dF9ibG9jayArIGhrZGYtPm9mZnNldF9pbl9ibG9jaywgbik7Ci0gICAgICAgIG91dHB1dCArPSBuOwotICAgICAgICBvdXRwdXRfbGVuZ3RoIC09IG47Ci0gICAgICAgIGhrZGYtPm9mZnNldF9pbl9ibG9jayArPSBuOwotICAgICAgICBpZiAob3V0cHV0X2xlbmd0aCA9PSAwKSB7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgfQotICAgICAgICAvKiBXZSBjYW4ndCBiZSB3YW50aW5nIG1vcmUgb3V0cHV0IGFmdGVyIHRoZSBsYXN0IGJsb2NrLCBvdGhlcndpc2UKLSAgICAgICAgICogdGhlIGNhcGFjaXR5IGNoZWNrIGluIHBzYV9rZXlfZGVyaXZhdGlvbl9vdXRwdXRfYnl0ZXMoKSB3b3VsZCBoYXZlCi0gICAgICAgICAqIHByZXZlbnRlZCB0aGlzIGNhbGwuIEl0IGNvdWxkIGhhcHBlbiBvbmx5IGlmIHRoZSBvcGVyYXRpb24KLSAgICAgICAgICogb2JqZWN0IHdhcyBjb3JydXB0ZWQgb3IgaWYgdGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQgZGlyZWN0bHkKLSAgICAgICAgICogaW5zaWRlIHRoZSBsaWJyYXJ5LiAqLwotICAgICAgICBpZiAoaGtkZi0+YmxvY2tfbnVtYmVyID09IGxhc3RfYmxvY2spIHsKLSAgICAgICAgICAgIHJldHVybiBQU0FfRVJST1JfQkFEX1NUQVRFOwotICAgICAgICB9Ci0KLSAgICAgICAgLyogV2UgbmVlZCBhIG5ldyBibG9jayAqLwotICAgICAgICArK2hrZGYtPmJsb2NrX251bWJlcjsKLSAgICAgICAgaGtkZi0+b2Zmc2V0X2luX2Jsb2NrID0gMDsKLQotICAgICAgICBzdGF0dXMgPSBwc2Ffa2V5X2Rlcml2YXRpb25fc3RhcnRfaG1hYygmaGtkZi0+aG1hYywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFzaF9hbGcsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhrZGYtPnByaywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFzaF9sZW5ndGgpOwotICAgICAgICBpZiAoc3RhdHVzICE9IFBTQV9TVUNDRVNTKSB7Ci0gICAgICAgICAgICByZXR1cm4gc3RhdHVzOwotICAgICAgICB9Ci0KLSAgICAgICAgaWYgKGhrZGYtPmJsb2NrX251bWJlciAhPSAxKSB7Ci0gICAgICAgICAgICBzdGF0dXMgPSBwc2FfbWFjX3VwZGF0ZSgmaGtkZi0+aG1hYywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhrZGYtPm91dHB1dF9ibG9jaywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhc2hfbGVuZ3RoKTsKLSAgICAgICAgICAgIGlmIChzdGF0dXMgIT0gUFNBX1NVQ0NFU1MpIHsKLSAgICAgICAgICAgICAgICByZXR1cm4gc3RhdHVzOwotICAgICAgICAgICAgfQotICAgICAgICB9Ci0gICAgICAgIHN0YXR1cyA9IHBzYV9tYWNfdXBkYXRlKCZoa2RmLT5obWFjLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoa2RmLT5pbmZvLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoa2RmLT5pbmZvX2xlbmd0aCk7Ci0gICAgICAgIGlmIChzdGF0dXMgIT0gUFNBX1NVQ0NFU1MpIHsKLSAgICAgICAgICAgIHJldHVybiBzdGF0dXM7Ci0gICAgICAgIH0KLSAgICAgICAgc3RhdHVzID0gcHNhX21hY191cGRhdGUoJmhrZGYtPmhtYWMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZoa2RmLT5ibG9ja19udW1iZXIsIDEpOwotICAgICAgICBpZiAoc3RhdHVzICE9IFBTQV9TVUNDRVNTKSB7Ci0gICAgICAgICAgICByZXR1cm4gc3RhdHVzOwotICAgICAgICB9Ci0gICAgICAgIHN0YXR1cyA9IHBzYV9tYWNfc2lnbl9maW5pc2goJmhrZGYtPmhtYWMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGtkZi0+b3V0cHV0X2Jsb2NrLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVvZihoa2RmLT5vdXRwdXRfYmxvY2spLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZobWFjX291dHB1dF9sZW5ndGgpOwotICAgICAgICBpZiAoc3RhdHVzICE9IFBTQV9TVUNDRVNTKSB7Ci0gICAgICAgICAgICByZXR1cm4gc3RhdHVzOwotICAgICAgICB9Ci0gICAgfQotCi0gICAgcmV0dXJuIFBTQV9TVUNDRVNTOwotfQotI2VuZGlmIC8qIEJVSUxUSU5fQUxHX0FOWV9IS0RGICovCi0KLSNpZiBkZWZpbmVkKE1CRURUTFNfUFNBX0JVSUxUSU5fQUxHX1RMUzEyX1BSRikgfHwgXAotICAgIGRlZmluZWQoTUJFRFRMU19QU0FfQlVJTFRJTl9BTEdfVExTMTJfUFNLX1RPX01TKQotc3RhdGljIHBzYV9zdGF0dXNfdCBwc2Ffa2V5X2Rlcml2YXRpb25fdGxzMTJfcHJmX2dlbmVyYXRlX25leHRfYmxvY2soCi0gICAgcHNhX3RsczEyX3ByZl9rZXlfZGVyaXZhdGlvbl90ICp0bHMxMl9wcmYsCi0gICAgcHNhX2FsZ29yaXRobV90IGFsZykKLXsKLSAgICBwc2FfYWxnb3JpdGhtX3QgaGFzaF9hbGcgPSBQU0FfQUxHX0hLREZfR0VUX0hBU0goYWxnKTsKLSAgICB1aW50OF90IGhhc2hfbGVuZ3RoID0gUFNBX0hBU0hfTEVOR1RIKGhhc2hfYWxnKTsKLSAgICBwc2FfbWFjX29wZXJhdGlvbl90IGhtYWMgPSBQU0FfTUFDX09QRVJBVElPTl9JTklUOwotICAgIHNpemVfdCBobWFjX291dHB1dF9sZW5ndGg7Ci0gICAgcHNhX3N0YXR1c190IHN0YXR1cywgY2xlYW51cF9zdGF0dXM7Ci0KLSAgICAvKiBXZSBjYW4ndCBiZSB3YW50aW5nIG1vcmUgb3V0cHV0IGFmdGVyIGJsb2NrIDB4ZmYsIG90aGVyd2lzZQotICAgICAqIHRoZSBjYXBhY2l0eSBjaGVjayBpbiBwc2Ffa2V5X2Rlcml2YXRpb25fb3V0cHV0X2J5dGVzKCkgd291bGQgaGF2ZQotICAgICAqIHByZXZlbnRlZCB0aGlzIGNhbGwuIEl0IGNvdWxkIGhhcHBlbiBvbmx5IGlmIHRoZSBvcGVyYXRpb24KLSAgICAgKiBvYmplY3Qgd2FzIGNvcnJ1cHRlZCBvciBpZiB0aGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCBkaXJlY3RseQotICAgICAqIGluc2lkZSB0aGUgbGlicmFyeS4gKi8KLSAgICBpZiAodGxzMTJfcHJmLT5ibG9ja19udW1iZXIgPT0gMHhmZikgewotICAgICAgICByZXR1cm4gUFNBX0VSUk9SX0NPUlJVUFRJT05fREVURUNURUQ7Ci0gICAgfQotCi0gICAgLyogV2UgbmVlZCBhIG5ldyBibG9jayAqLwotICAgICsrdGxzMTJfcHJmLT5ibG9ja19udW1iZXI7Ci0gICAgdGxzMTJfcHJmLT5sZWZ0X2luX2Jsb2NrID0gaGFzaF9sZW5ndGg7Ci0KLSAgICAvKiBSZWNhbGwgdGhlIGRlZmluaXRpb24gb2YgdGhlIFRMUy0xLjItUFJGIGZyb20gUkZDIDUyNDY6Ci0gICAgICoKLSAgICAgKiBQUkYoc2VjcmV0LCBsYWJlbCwgc2VlZCkgPSBQXzxoYXNoPihzZWNyZXQsIGxhYmVsICsgc2VlZCkKLSAgICAgKgotICAgICAqIFBfaGFzaChzZWNyZXQsIHNlZWQpID0gSE1BQ19oYXNoKHNlY3JldCwgQSgxKSArIHNlZWQpICsKLSAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgIEhNQUNfaGFzaChzZWNyZXQsIEEoMikgKyBzZWVkKSArCi0gICAgICogICAgICAgICAgICAgICAgICAgICAgICBITUFDX2hhc2goc2VjcmV0LCBBKDMpICsgc2VlZCkgKyAuLi4KLSAgICAgKgotICAgICAqIEEoMCkgPSBzZWVkCi0gICAgICogQShpKSA9IEhNQUNfaGFzaChzZWNyZXQsIEEoaS0xKSkKLSAgICAgKgotICAgICAqIFRoZSBgcHNhX3RsczEyX3ByZl9rZXlfZGVyaXZhdGlvbmAgc3RydWN0dXJlIHNhdmVzIHRoZSBibG9jawotICAgICAqIGBITUFDX2hhc2goc2VjcmV0LCBBKGkpICsgc2VlZClgIGZyb20gd2hpY2ggdGhlIG91dHB1dAotICAgICAqIGlzIGN1cnJlbnRseSBleHRyYWN0ZWQgYXMgYG91dHB1dF9ibG9ja2AgYW5kIHdoZXJlIGkgaXMKLSAgICAgKiBgYmxvY2tfbnVtYmVyYC4KLSAgICAgKi8KLQotICAgIHN0YXR1cyA9IHBzYV9rZXlfZGVyaXZhdGlvbl9zdGFydF9obWFjKCZobWFjLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhc2hfYWxnLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRsczEyX3ByZi0+c2VjcmV0LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRsczEyX3ByZi0+c2VjcmV0X2xlbmd0aCk7Ci0gICAgaWYgKHN0YXR1cyAhPSBQU0FfU1VDQ0VTUykgewotICAgICAgICBnb3RvIGNsZWFudXA7Ci0gICAgfQotCi0gICAgLyogQ2FsY3VsYXRlIEEoaSkgd2hlcmUgaSA9IHRsczEyX3ByZi0+YmxvY2tfbnVtYmVyLiAqLwotICAgIGlmICh0bHMxMl9wcmYtPmJsb2NrX251bWJlciA9PSAxKSB7Ci0gICAgICAgIC8qIEEoMSkgPSBITUFDX2hhc2goc2VjcmV0LCBBKDApKSwgd2hlcmUgQSgwKSA9IHNlZWQuIChUaGUgUkZDIG92ZXJsb2FkcwotICAgICAgICAgKiB0aGUgdmFyaWFibGUgc2VlZCBhbmQgaW4gdGhpcyBpbnN0YW5jZSBtZWFucyBpdCBpbiB0aGUgY29udGV4dCBvZiB0aGUKLSAgICAgICAgICogUF9oYXNoIGZ1bmN0aW9uLCB3aGVyZSBzZWVkID0gbGFiZWwgKyBzZWVkLikgKi8KLSAgICAgICAgc3RhdHVzID0gcHNhX21hY191cGRhdGUoJmhtYWMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRsczEyX3ByZi0+bGFiZWwsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRsczEyX3ByZi0+bGFiZWxfbGVuZ3RoKTsKLSAgICAgICAgaWYgKHN0YXR1cyAhPSBQU0FfU1VDQ0VTUykgewotICAgICAgICAgICAgZ290byBjbGVhbnVwOwotICAgICAgICB9Ci0gICAgICAgIHN0YXR1cyA9IHBzYV9tYWNfdXBkYXRlKCZobWFjLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0bHMxMl9wcmYtPnNlZWQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRsczEyX3ByZi0+c2VlZF9sZW5ndGgpOwotICAgICAgICBpZiAoc3RhdHVzICE9IFBTQV9TVUNDRVNTKSB7Ci0gICAgICAgICAgICBnb3RvIGNsZWFudXA7Ci0gICAgICAgIH0KLSAgICB9IGVsc2UgewotICAgICAgICAvKiBBKGkpID0gSE1BQ19oYXNoKHNlY3JldCwgQShpLTEpKSAqLwotICAgICAgICBzdGF0dXMgPSBwc2FfbWFjX3VwZGF0ZSgmaG1hYywgdGxzMTJfcHJmLT5BaSwgaGFzaF9sZW5ndGgpOwotICAgICAgICBpZiAoc3RhdHVzICE9IFBTQV9TVUNDRVNTKSB7Ci0gICAgICAgICAgICBnb3RvIGNsZWFudXA7Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICBzdGF0dXMgPSBwc2FfbWFjX3NpZ25fZmluaXNoKCZobWFjLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGxzMTJfcHJmLT5BaSwgaGFzaF9sZW5ndGgsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmaG1hY19vdXRwdXRfbGVuZ3RoKTsKLSAgICBpZiAoaG1hY19vdXRwdXRfbGVuZ3RoICE9IGhhc2hfbGVuZ3RoKSB7Ci0gICAgICAgIHN0YXR1cyA9IFBTQV9FUlJPUl9DT1JSVVBUSU9OX0RFVEVDVEVEOwotICAgIH0KLSAgICBpZiAoc3RhdHVzICE9IFBTQV9TVUNDRVNTKSB7Ci0gICAgICAgIGdvdG8gY2xlYW51cDsKLSAgICB9Ci0KLSAgICAvKiBDYWxjdWxhdGUgSE1BQ19oYXNoKHNlY3JldCwgQShpKSArIGxhYmVsICsgc2VlZCkuICovCi0gICAgc3RhdHVzID0gcHNhX2tleV9kZXJpdmF0aW9uX3N0YXJ0X2htYWMoJmhtYWMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFzaF9hbGcsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGxzMTJfcHJmLT5zZWNyZXQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGxzMTJfcHJmLT5zZWNyZXRfbGVuZ3RoKTsKLSAgICBpZiAoc3RhdHVzICE9IFBTQV9TVUNDRVNTKSB7Ci0gICAgICAgIGdvdG8gY2xlYW51cDsKLSAgICB9Ci0gICAgc3RhdHVzID0gcHNhX21hY191cGRhdGUoJmhtYWMsIHRsczEyX3ByZi0+QWksIGhhc2hfbGVuZ3RoKTsKLSAgICBpZiAoc3RhdHVzICE9IFBTQV9TVUNDRVNTKSB7Ci0gICAgICAgIGdvdG8gY2xlYW51cDsKLSAgICB9Ci0gICAgc3RhdHVzID0gcHNhX21hY191cGRhdGUoJmhtYWMsIHRsczEyX3ByZi0+bGFiZWwsIHRsczEyX3ByZi0+bGFiZWxfbGVuZ3RoKTsKLSAgICBpZiAoc3RhdHVzICE9IFBTQV9TVUNDRVNTKSB7Ci0gICAgICAgIGdvdG8gY2xlYW51cDsKLSAgICB9Ci0gICAgc3RhdHVzID0gcHNhX21hY191cGRhdGUoJmhtYWMsIHRsczEyX3ByZi0+c2VlZCwgdGxzMTJfcHJmLT5zZWVkX2xlbmd0aCk7Ci0gICAgaWYgKHN0YXR1cyAhPSBQU0FfU1VDQ0VTUykgewotICAgICAgICBnb3RvIGNsZWFudXA7Ci0gICAgfQotICAgIHN0YXR1cyA9IHBzYV9tYWNfc2lnbl9maW5pc2goJmhtYWMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0bHMxMl9wcmYtPm91dHB1dF9ibG9jaywgaGFzaF9sZW5ndGgsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmaG1hY19vdXRwdXRfbGVuZ3RoKTsKLSAgICBpZiAoc3RhdHVzICE9IFBTQV9TVUNDRVNTKSB7Ci0gICAgICAgIGdvdG8gY2xlYW51cDsKLSAgICB9Ci0KLQotY2xlYW51cDoKLSAgICBjbGVhbnVwX3N0YXR1cyA9IHBzYV9tYWNfYWJvcnQoJmhtYWMpOwotICAgIGlmIChzdGF0dXMgPT0gUFNBX1NVQ0NFU1MgJiYgY2xlYW51cF9zdGF0dXMgIT0gUFNBX1NVQ0NFU1MpIHsKLSAgICAgICAgc3RhdHVzID0gY2xlYW51cF9zdGF0dXM7Ci0gICAgfQotCi0gICAgcmV0dXJuIHN0YXR1czsKLX0KLQotc3RhdGljIHBzYV9zdGF0dXNfdCBwc2Ffa2V5X2Rlcml2YXRpb25fdGxzMTJfcHJmX3JlYWQoCi0gICAgcHNhX3RsczEyX3ByZl9rZXlfZGVyaXZhdGlvbl90ICp0bHMxMl9wcmYsCi0gICAgcHNhX2FsZ29yaXRobV90IGFsZywKLSAgICB1aW50OF90ICpvdXRwdXQsCi0gICAgc2l6ZV90IG91dHB1dF9sZW5ndGgpCi17Ci0gICAgcHNhX2FsZ29yaXRobV90IGhhc2hfYWxnID0gUFNBX0FMR19UTFMxMl9QUkZfR0VUX0hBU0goYWxnKTsKLSAgICB1aW50OF90IGhhc2hfbGVuZ3RoID0gUFNBX0hBU0hfTEVOR1RIKGhhc2hfYWxnKTsKLSAgICBwc2Ffc3RhdHVzX3Qgc3RhdHVzOwotICAgIHVpbnQ4X3Qgb2Zmc2V0LCBsZW5ndGg7Ci0KLSAgICBzd2l0Y2ggKHRsczEyX3ByZi0+c3RhdGUpIHsKLSAgICAgICAgY2FzZSBQU0FfVExTMTJfUFJGX1NUQVRFX0xBQkVMX1NFVDoKLSAgICAgICAgICAgIHRsczEyX3ByZi0+c3RhdGUgPSBQU0FfVExTMTJfUFJGX1NUQVRFX09VVFBVVDsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIFBTQV9UTFMxMl9QUkZfU1RBVEVfT1VUUFVUOgotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGRlZmF1bHQ6Ci0gICAgICAgICAgICByZXR1cm4gUFNBX0VSUk9SX0JBRF9TVEFURTsKLSAgICB9Ci0KLSAgICB3aGlsZSAob3V0cHV0X2xlbmd0aCAhPSAwKSB7Ci0gICAgICAgIC8qIENoZWNrIGlmIHdlIGhhdmUgZnVsbHkgcHJvY2Vzc2VkIHRoZSBjdXJyZW50IGJsb2NrLiAqLwotICAgICAgICBpZiAodGxzMTJfcHJmLT5sZWZ0X2luX2Jsb2NrID09IDApIHsKLSAgICAgICAgICAgIHN0YXR1cyA9IHBzYV9rZXlfZGVyaXZhdGlvbl90bHMxMl9wcmZfZ2VuZXJhdGVfbmV4dF9ibG9jayh0bHMxMl9wcmYsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWxnKTsKLSAgICAgICAgICAgIGlmIChzdGF0dXMgIT0gUFNBX1NVQ0NFU1MpIHsKLSAgICAgICAgICAgICAgICByZXR1cm4gc3RhdHVzOwotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgfQotCi0gICAgICAgIGlmICh0bHMxMl9wcmYtPmxlZnRfaW5fYmxvY2sgPiBvdXRwdXRfbGVuZ3RoKSB7Ci0gICAgICAgICAgICBsZW5ndGggPSAodWludDhfdCkgb3V0cHV0X2xlbmd0aDsKLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIGxlbmd0aCA9IHRsczEyX3ByZi0+bGVmdF9pbl9ibG9jazsKLSAgICAgICAgfQotCi0gICAgICAgIG9mZnNldCA9IGhhc2hfbGVuZ3RoIC0gdGxzMTJfcHJmLT5sZWZ0X2luX2Jsb2NrOwotICAgICAgICBtZW1jcHkob3V0cHV0LCB0bHMxMl9wcmYtPm91dHB1dF9ibG9jayArIG9mZnNldCwgbGVuZ3RoKTsKLSAgICAgICAgb3V0cHV0ICs9IGxlbmd0aDsKLSAgICAgICAgb3V0cHV0X2xlbmd0aCAtPSBsZW5ndGg7Ci0gICAgICAgIHRsczEyX3ByZi0+bGVmdF9pbl9ibG9jayAtPSBsZW5ndGg7Ci0gICAgfQotCi0gICAgcmV0dXJuIFBTQV9TVUNDRVNTOwotfQotI2VuZGlmIC8qIE1CRURUTFNfUFNBX0JVSUxUSU5fQUxHX1RMUzEyX1BSRiB8fAotICAgICAgICAqIE1CRURUTFNfUFNBX0JVSUxUSU5fQUxHX1RMUzEyX1BTS19UT19NUyAqLwotCi0jaWYgZGVmaW5lZChNQkVEVExTX1BTQV9CVUlMVElOX0FMR19UTFMxMl9FQ0pQQUtFX1RPX1BNUykKLXN0YXRpYyBwc2Ffc3RhdHVzX3QgcHNhX2tleV9kZXJpdmF0aW9uX3RsczEyX2VjanBha2VfdG9fcG1zX3JlYWQoCi0gICAgcHNhX3RsczEyX2VjanBha2VfdG9fcG1zX3QgKmVjanBha2UsCi0gICAgdWludDhfdCAqb3V0cHV0LAotICAgIHNpemVfdCBvdXRwdXRfbGVuZ3RoKQotewotICAgIHBzYV9zdGF0dXNfdCBzdGF0dXMgPSBQU0FfRVJST1JfQ09SUlVQVElPTl9ERVRFQ1RFRDsKLSAgICBzaXplX3Qgb3V0cHV0X3NpemUgPSAwOwotCi0gICAgaWYgKG91dHB1dF9sZW5ndGggIT0gMzIpIHsKLSAgICAgICAgcmV0dXJuIFBTQV9FUlJPUl9JTlZBTElEX0FSR1VNRU5UOwotICAgIH0KLQotICAgIHN0YXR1cyA9IHBzYV9oYXNoX2NvbXB1dGUoUFNBX0FMR19TSEFfMjU2LCBlY2pwYWtlLT5kYXRhLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUFNBX1RMUzEyX0VDSlBBS0VfVE9fUE1TX0RBVEFfU0laRSwgb3V0cHV0LCBvdXRwdXRfbGVuZ3RoLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJm91dHB1dF9zaXplKTsKLSAgICBpZiAoc3RhdHVzICE9IFBTQV9TVUNDRVNTKSB7Ci0gICAgICAgIHJldHVybiBzdGF0dXM7Ci0gICAgfQotCi0gICAgaWYgKG91dHB1dF9zaXplICE9IG91dHB1dF9sZW5ndGgpIHsKLSAgICAgICAgcmV0dXJuIFBTQV9FUlJPUl9HRU5FUklDX0VSUk9SOwotICAgIH0KLQotICAgIHJldHVybiBQU0FfU1VDQ0VTUzsKLX0KLSNlbmRpZgotCi0jaWYgZGVmaW5lZChQU0FfSEFWRV9TT0ZUX1BCS0RGMikKLXN0YXRpYyBwc2Ffc3RhdHVzX3QgcHNhX2tleV9kZXJpdmF0aW9uX3Bia2RmMl9nZW5lcmF0ZV9ibG9jaygKLSAgICBwc2FfcGJrZGYyX2tleV9kZXJpdmF0aW9uX3QgKnBia2RmMiwKLSAgICBwc2FfYWxnb3JpdGhtX3QgcHJmX2FsZywKLSAgICB1aW50OF90IHByZl9vdXRwdXRfbGVuZ3RoLAotICAgIHBzYV9rZXlfYXR0cmlidXRlc190ICphdHRyaWJ1dGVzKQotewotICAgIHBzYV9zdGF0dXNfdCBzdGF0dXM7Ci0gICAgcHNhX21hY19vcGVyYXRpb25fdCBtYWNfb3BlcmF0aW9uID0gUFNBX01BQ19PUEVSQVRJT05fSU5JVDsKLSAgICBzaXplX3QgbWFjX291dHB1dF9sZW5ndGg7Ci0gICAgdWludDhfdCBVX2lbUFNBX01BQ19NQVhfU0laRV07Ci0gICAgdWludDhfdCAqVV9hY2N1bXVsYXRvciA9IHBia2RmMi0+b3V0cHV0X2Jsb2NrOwotICAgIHVpbnQ2NF90IGk7Ci0gICAgdWludDhfdCBibG9ja19jb3VudGVyWzRdOwotCi0gICAgbWFjX29wZXJhdGlvbi5pc19zaWduID0gMTsKLSAgICBtYWNfb3BlcmF0aW9uLm1hY19zaXplID0gcHJmX291dHB1dF9sZW5ndGg7Ci0gICAgTUJFRFRMU19QVVRfVUlOVDMyX0JFKHBia2RmMi0+YmxvY2tfbnVtYmVyLCBibG9ja19jb3VudGVyLCAwKTsKLQotICAgIHN0YXR1cyA9IHBzYV9kcml2ZXJfd3JhcHBlcl9tYWNfc2lnbl9zZXR1cCgmbWFjX29wZXJhdGlvbiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXR0cmlidXRlcywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGJrZGYyLT5wYXNzd29yZCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGJrZGYyLT5wYXNzd29yZF9sZW5ndGgsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByZl9hbGcpOwotICAgIGlmIChzdGF0dXMgIT0gUFNBX1NVQ0NFU1MpIHsKLSAgICAgICAgZ290byBjbGVhbnVwOwotICAgIH0KLSAgICBzdGF0dXMgPSBwc2FfbWFjX3VwZGF0ZSgmbWFjX29wZXJhdGlvbiwgcGJrZGYyLT5zYWx0LCBwYmtkZjItPnNhbHRfbGVuZ3RoKTsKLSAgICBpZiAoc3RhdHVzICE9IFBTQV9TVUNDRVNTKSB7Ci0gICAgICAgIGdvdG8gY2xlYW51cDsKLSAgICB9Ci0gICAgc3RhdHVzID0gcHNhX21hY191cGRhdGUoJm1hY19vcGVyYXRpb24sIGJsb2NrX2NvdW50ZXIsIHNpemVvZihibG9ja19jb3VudGVyKSk7Ci0gICAgaWYgKHN0YXR1cyAhPSBQU0FfU1VDQ0VTUykgewotICAgICAgICBnb3RvIGNsZWFudXA7Ci0gICAgfQotICAgIHN0YXR1cyA9IHBzYV9tYWNfc2lnbl9maW5pc2goJm1hY19vcGVyYXRpb24sIFVfaSwgc2l6ZW9mKFVfaSksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmbWFjX291dHB1dF9sZW5ndGgpOwotICAgIGlmIChzdGF0dXMgIT0gUFNBX1NVQ0NFU1MpIHsKLSAgICAgICAgZ290byBjbGVhbnVwOwotICAgIH0KLQotICAgIGlmIChtYWNfb3V0cHV0X2xlbmd0aCAhPSBwcmZfb3V0cHV0X2xlbmd0aCkgewotICAgICAgICBzdGF0dXMgPSBQU0FfRVJST1JfQ09SUlVQVElPTl9ERVRFQ1RFRDsKLSAgICAgICAgZ290byBjbGVhbnVwOwotICAgIH0KLQotICAgIG1lbWNweShVX2FjY3VtdWxhdG9yLCBVX2ksIHByZl9vdXRwdXRfbGVuZ3RoKTsKLQotICAgIGZvciAoaSA9IDE7IGkgPCBwYmtkZjItPmlucHV0X2Nvc3Q7IGkrKykgewotICAgICAgICAvKiBXZSBhcmUgcGFzc2luZyBwcmZfb3V0cHV0X2xlbmd0aCBhcyBtYWNfc2l6ZSBiZWNhdXNlIHRoZSBkcml2ZXIKLSAgICAgICAgICogZnVuY3Rpb24gZGlyZWN0bHkgc2V0cyBtYWNfb3V0cHV0X2xlbmd0aCBhcyBtYWNfc2l6ZSB1cG9uIHN1Y2Nlc3MuCi0gICAgICAgICAqIFNlZSBodHRwczovL2dpdGh1Yi5jb20vTWJlZC1UTFMvbWJlZHRscy9pc3N1ZXMvNzgwMSAqLwotICAgICAgICBzdGF0dXMgPSBwc2FfZHJpdmVyX3dyYXBwZXJfbWFjX2NvbXB1dGUoYXR0cmlidXRlcywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBia2RmMi0+cGFzc3dvcmQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYmtkZjItPnBhc3N3b3JkX2xlbmd0aCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByZl9hbGcsIFVfaSwgcHJmX291dHB1dF9sZW5ndGgsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVX2ksIHByZl9vdXRwdXRfbGVuZ3RoLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJm1hY19vdXRwdXRfbGVuZ3RoKTsKLSAgICAgICAgaWYgKHN0YXR1cyAhPSBQU0FfU1VDQ0VTUykgewotICAgICAgICAgICAgZ290byBjbGVhbnVwOwotICAgICAgICB9Ci0KLSAgICAgICAgbWJlZHRsc194b3IoVV9hY2N1bXVsYXRvciwgVV9hY2N1bXVsYXRvciwgVV9pLCBwcmZfb3V0cHV0X2xlbmd0aCk7Ci0gICAgfQotCi1jbGVhbnVwOgotICAgIC8qIFplcm9pc2UgYnVmZmVycyB0byBjbGVhciBzZW5zaXRpdmUgZGF0YSBmcm9tIG1lbW9yeS4gKi8KLSAgICBtYmVkdGxzX3BsYXRmb3JtX3plcm9pemUoVV9pLCBQU0FfTUFDX01BWF9TSVpFKTsKLSAgICByZXR1cm4gc3RhdHVzOwotfQotCi1zdGF0aWMgcHNhX3N0YXR1c190IHBzYV9rZXlfZGVyaXZhdGlvbl9wYmtkZjJfcmVhZCgKLSAgICBwc2FfcGJrZGYyX2tleV9kZXJpdmF0aW9uX3QgKnBia2RmMiwKLSAgICBwc2FfYWxnb3JpdGhtX3Qga2RmX2FsZywKLSAgICB1aW50OF90ICpvdXRwdXQsCi0gICAgc2l6ZV90IG91dHB1dF9sZW5ndGgpCi17Ci0gICAgcHNhX3N0YXR1c190IHN0YXR1czsKLSAgICBwc2FfYWxnb3JpdGhtX3QgcHJmX2FsZzsKLSAgICB1aW50OF90IHByZl9vdXRwdXRfbGVuZ3RoOwotICAgIHBzYV9rZXlfYXR0cmlidXRlc190IGF0dHJpYnV0ZXMgPSBQU0FfS0VZX0FUVFJJQlVURVNfSU5JVDsKLSAgICBwc2Ffc2V0X2tleV9iaXRzKCZhdHRyaWJ1dGVzLCBQU0FfQllURVNfVE9fQklUUyhwYmtkZjItPnBhc3N3b3JkX2xlbmd0aCkpOwotICAgIHBzYV9zZXRfa2V5X3VzYWdlX2ZsYWdzKCZhdHRyaWJ1dGVzLCBQU0FfS0VZX1VTQUdFX1NJR05fTUVTU0FHRSk7Ci0KLSAgICBpZiAoUFNBX0FMR19JU19QQktERjJfSE1BQyhrZGZfYWxnKSkgewotICAgICAgICBwcmZfYWxnID0gUFNBX0FMR19ITUFDKFBTQV9BTEdfUEJLREYyX0hNQUNfR0VUX0hBU0goa2RmX2FsZykpOwotICAgICAgICBwcmZfb3V0cHV0X2xlbmd0aCA9IFBTQV9IQVNIX0xFTkdUSChwcmZfYWxnKTsKLSAgICAgICAgcHNhX3NldF9rZXlfdHlwZSgmYXR0cmlidXRlcywgUFNBX0tFWV9UWVBFX0hNQUMpOwotICAgIH0gZWxzZSBpZiAoa2RmX2FsZyA9PSBQU0FfQUxHX1BCS0RGMl9BRVNfQ01BQ19QUkZfMTI4KSB7Ci0gICAgICAgIHByZl9hbGcgPSBQU0FfQUxHX0NNQUM7Ci0gICAgICAgIHByZl9vdXRwdXRfbGVuZ3RoID0gUFNBX01BQ19MRU5HVEgoUFNBX0tFWV9UWVBFX0FFUywgMTI4VSwgUFNBX0FMR19DTUFDKTsKLSAgICAgICAgcHNhX3NldF9rZXlfdHlwZSgmYXR0cmlidXRlcywgUFNBX0tFWV9UWVBFX0FFUyk7Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgcmV0dXJuIFBTQV9FUlJPUl9JTlZBTElEX0FSR1VNRU5UOwotICAgIH0KLQotICAgIHN3aXRjaCAocGJrZGYyLT5zdGF0ZSkgewotICAgICAgICBjYXNlIFBTQV9QQktERjJfU1RBVEVfUEFTU1dPUkRfU0VUOgotICAgICAgICAgICAgLyogSW5pdGlhbGx5IHdlIG5lZWQgYSBuZXcgYmxvY2sgc28gYnl0ZXNfdXNlZCBpcyBlcXVhbCB0byBibG9jayBzaXplKi8KLSAgICAgICAgICAgIHBia2RmMi0+Ynl0ZXNfdXNlZCA9IHByZl9vdXRwdXRfbGVuZ3RoOwotICAgICAgICAgICAgcGJrZGYyLT5zdGF0ZSA9IFBTQV9QQktERjJfU1RBVEVfT1VUUFVUOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgUFNBX1BCS0RGMl9TVEFURV9PVVRQVVQ6Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgZGVmYXVsdDoKLSAgICAgICAgICAgIHJldHVybiBQU0FfRVJST1JfQkFEX1NUQVRFOwotICAgIH0KLQotICAgIHdoaWxlIChvdXRwdXRfbGVuZ3RoICE9IDApIHsKLSAgICAgICAgdWludDhfdCBuID0gcHJmX291dHB1dF9sZW5ndGggLSBwYmtkZjItPmJ5dGVzX3VzZWQ7Ci0gICAgICAgIGlmIChuID4gb3V0cHV0X2xlbmd0aCkgewotICAgICAgICAgICAgbiA9ICh1aW50OF90KSBvdXRwdXRfbGVuZ3RoOwotICAgICAgICB9Ci0gICAgICAgIG1lbWNweShvdXRwdXQsIHBia2RmMi0+b3V0cHV0X2Jsb2NrICsgcGJrZGYyLT5ieXRlc191c2VkLCBuKTsKLSAgICAgICAgb3V0cHV0ICs9IG47Ci0gICAgICAgIG91dHB1dF9sZW5ndGggLT0gbjsKLSAgICAgICAgcGJrZGYyLT5ieXRlc191c2VkICs9IG47Ci0KLSAgICAgICAgaWYgKG91dHB1dF9sZW5ndGggPT0gMCkgewotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIH0KLQotICAgICAgICAvKiBXZSBuZWVkIGEgbmV3IGJsb2NrICovCi0gICAgICAgIHBia2RmMi0+Ynl0ZXNfdXNlZCA9IDA7Ci0gICAgICAgIHBia2RmMi0+YmxvY2tfbnVtYmVyKys7Ci0KLSAgICAgICAgc3RhdHVzID0gcHNhX2tleV9kZXJpdmF0aW9uX3Bia2RmMl9nZW5lcmF0ZV9ibG9jayhwYmtkZjIsIHByZl9hbGcsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJmX291dHB1dF9sZW5ndGgsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJmF0dHJpYnV0ZXMpOwotICAgICAgICBpZiAoc3RhdHVzICE9IFBTQV9TVUNDRVNTKSB7Ci0gICAgICAgICAgICByZXR1cm4gc3RhdHVzOwotICAgICAgICB9Ci0gICAgfQotCi0gICAgcmV0dXJuIFBTQV9TVUNDRVNTOwotfQotI2VuZGlmIC8qIFBTQV9IQVZFX1NPRlRfUEJLREYyICovCi0KLXBzYV9zdGF0dXNfdCBwc2Ffa2V5X2Rlcml2YXRpb25fb3V0cHV0X2J5dGVzKAotICAgIHBzYV9rZXlfZGVyaXZhdGlvbl9vcGVyYXRpb25fdCAqb3BlcmF0aW9uLAotICAgIHVpbnQ4X3QgKm91dHB1dF9leHRlcm5hbCwKLSAgICBzaXplX3Qgb3V0cHV0X2xlbmd0aCkKLXsKLSAgICBwc2Ffc3RhdHVzX3Qgc3RhdHVzOwotICAgIExPQ0FMX09VVFBVVF9ERUNMQVJFKG91dHB1dF9leHRlcm5hbCwgb3V0cHV0KTsKLQotICAgIHBzYV9hbGdvcml0aG1fdCBrZGZfYWxnID0gcHNhX2tleV9kZXJpdmF0aW9uX2dldF9rZGZfYWxnKG9wZXJhdGlvbik7Ci0KLSAgICBpZiAob3BlcmF0aW9uLT5hbGcgPT0gMCkgewotICAgICAgICAvKiBUaGlzIGlzIGEgYmxhbmsgb3BlcmF0aW9uLiAqLwotICAgICAgICByZXR1cm4gUFNBX0VSUk9SX0JBRF9TVEFURTsKLSAgICB9Ci0KLSAgICBpZiAob3V0cHV0X2xlbmd0aCA9PSAwICYmIG9wZXJhdGlvbi0+Y2FwYWNpdHkgPT0gMCkgewotICAgICAgICAvKiBFZGdlIGNhc2U6IHRoaXMgaXMgYSBmaW5pc2hlZCBvcGVyYXRpb24sIGFuZCAwIGJ5dGVzCi0gICAgICAgICAqIHdlcmUgcmVxdWVzdGVkLiBUaGUgcmlnaHQgZXJyb3IgaW4gdGhpcyBjYXNlIGNvdWxkCi0gICAgICAgICAqIGJlIGVpdGhlciBJTlNVRkZJQ0lFTlRfQ0FQQUNJVFkgb3IgQkFEX1NUQVRFLiBSZXR1cm4KLSAgICAgICAgICogSU5TVUZGSUNJRU5UX0NBUEFDSVRZLCB3aGljaCBpcyByaWdodCBmb3IgYSBmaW5pc2hlZAotICAgICAgICAgKiBvcGVyYXRpb24sIGZvciBjb25zaXN0ZW5jeSB3aXRoIHRoZSBjYXNlIHdoZW4KLSAgICAgICAgICogb3V0cHV0X2xlbmd0aCA+IDAuICovCi0gICAgICAgIHJldHVybiBQU0FfRVJST1JfSU5TVUZGSUNJRU5UX0RBVEE7Ci0gICAgfQotCi0gICAgTE9DQUxfT1VUUFVUX0FMTE9DKG91dHB1dF9leHRlcm5hbCwgb3V0cHV0X2xlbmd0aCwgb3V0cHV0KTsKLSAgICBpZiAob3V0cHV0X2xlbmd0aCA+IG9wZXJhdGlvbi0+Y2FwYWNpdHkpIHsKLSAgICAgICAgb3BlcmF0aW9uLT5jYXBhY2l0eSA9IDA7Ci0gICAgICAgIC8qIEdvIHRocm91Z2ggdGhlIGVycm9yIHBhdGggdG8gd2lwZSBhbGwgY29uZmlkZW50aWFsIGRhdGEgbm93Ci0gICAgICAgICAqIHRoYXQgdGhlIG9wZXJhdGlvbiBvYmplY3QgaXMgdXNlbGVzcy4gKi8KLSAgICAgICAgc3RhdHVzID0gUFNBX0VSUk9SX0lOU1VGRklDSUVOVF9EQVRBOwotICAgICAgICBnb3RvIGV4aXQ7Ci0gICAgfQotCi0gICAgb3BlcmF0aW9uLT5jYXBhY2l0eSAtPSBvdXRwdXRfbGVuZ3RoOwotCi0jaWYgZGVmaW5lZChCVUlMVElOX0FMR19BTllfSEtERikKLSAgICBpZiAoUFNBX0FMR19JU19BTllfSEtERihrZGZfYWxnKSkgewotICAgICAgICBzdGF0dXMgPSBwc2Ffa2V5X2Rlcml2YXRpb25faGtkZl9yZWFkKCZvcGVyYXRpb24tPmN0eC5oa2RmLCBrZGZfYWxnLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG91dHB1dCwgb3V0cHV0X2xlbmd0aCk7Ci0gICAgfSBlbHNlCi0jZW5kaWYgLyogQlVJTFRJTl9BTEdfQU5ZX0hLREYgKi8KLSNpZiBkZWZpbmVkKE1CRURUTFNfUFNBX0JVSUxUSU5fQUxHX1RMUzEyX1BSRikgfHwgXAotICAgIGRlZmluZWQoTUJFRFRMU19QU0FfQlVJTFRJTl9BTEdfVExTMTJfUFNLX1RPX01TKQotICAgIGlmIChQU0FfQUxHX0lTX1RMUzEyX1BSRihrZGZfYWxnKSB8fAotICAgICAgICBQU0FfQUxHX0lTX1RMUzEyX1BTS19UT19NUyhrZGZfYWxnKSkgewotICAgICAgICBzdGF0dXMgPSBwc2Ffa2V5X2Rlcml2YXRpb25fdGxzMTJfcHJmX3JlYWQoJm9wZXJhdGlvbi0+Y3R4LnRsczEyX3ByZiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtkZl9hbGcsIG91dHB1dCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG91dHB1dF9sZW5ndGgpOwotICAgIH0gZWxzZQotI2VuZGlmIC8qIE1CRURUTFNfUFNBX0JVSUxUSU5fQUxHX1RMUzEyX1BSRiB8fAotICAgICAgICAqIE1CRURUTFNfUFNBX0JVSUxUSU5fQUxHX1RMUzEyX1BTS19UT19NUyAqLwotI2lmIGRlZmluZWQoTUJFRFRMU19QU0FfQlVJTFRJTl9BTEdfVExTMTJfRUNKUEFLRV9UT19QTVMpCi0gICAgaWYgKGtkZl9hbGcgPT0gUFNBX0FMR19UTFMxMl9FQ0pQQUtFX1RPX1BNUykgewotICAgICAgICBzdGF0dXMgPSBwc2Ffa2V5X2Rlcml2YXRpb25fdGxzMTJfZWNqcGFrZV90b19wbXNfcmVhZCgKLSAgICAgICAgICAgICZvcGVyYXRpb24tPmN0eC50bHMxMl9lY2pwYWtlX3RvX3Btcywgb3V0cHV0LCBvdXRwdXRfbGVuZ3RoKTsKLSAgICB9IGVsc2UKLSNlbmRpZiAvKiBNQkVEVExTX1BTQV9CVUlMVElOX0FMR19UTFMxMl9FQ0pQQUtFX1RPX1BNUyAqLwotI2lmIGRlZmluZWQoUFNBX0hBVkVfU09GVF9QQktERjIpCi0gICAgaWYgKFBTQV9BTEdfSVNfUEJLREYyKGtkZl9hbGcpKSB7Ci0gICAgICAgIHN0YXR1cyA9IHBzYV9rZXlfZGVyaXZhdGlvbl9wYmtkZjJfcmVhZCgmb3BlcmF0aW9uLT5jdHgucGJrZGYyLCBrZGZfYWxnLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3V0cHV0LCBvdXRwdXRfbGVuZ3RoKTsKLSAgICB9IGVsc2UKLSNlbmRpZiAvKiBQU0FfSEFWRV9TT0ZUX1BCS0RGMiAqLwotCi0gICAgewotICAgICAgICAodm9pZCkga2RmX2FsZzsKLSAgICAgICAgc3RhdHVzID0gUFNBX0VSUk9SX0JBRF9TVEFURTsKLSAgICAgICAgTE9DQUxfT1VUUFVUX0ZSRUUob3V0cHV0X2V4dGVybmFsLCBvdXRwdXQpOwotCi0gICAgICAgIHJldHVybiBzdGF0dXM7Ci0gICAgfQotCi1leGl0OgotICAgIGlmIChzdGF0dXMgIT0gUFNBX1NVQ0NFU1MpIHsKLSAgICAgICAgLyogUHJlc2VydmUgdGhlIGFsZ29yaXRobSB1cG9uIGVycm9ycywgYnV0IGNsZWFyIGFsbCBzZW5zaXRpdmUgc3RhdGUuCi0gICAgICAgICAqIFRoaXMgYWxsb3dzIHVzIHRvIGRpZmZlcmVudGlhdGUgYmV0d2VlbiBleGhhdXN0ZWQgb3BlcmF0aW9ucyBhbmQKLSAgICAgICAgICogYmxhbmsgb3BlcmF0aW9ucywgc28gd2UgY2FuIHJldHVybiBQU0FfRVJST1JfQkFEX1NUQVRFIG9uIGJsYW5rCi0gICAgICAgICAqIG9wZXJhdGlvbnMuICovCi0gICAgICAgIHBzYV9hbGdvcml0aG1fdCBhbGcgPSBvcGVyYXRpb24tPmFsZzsKLSAgICAgICAgcHNhX2tleV9kZXJpdmF0aW9uX2Fib3J0KG9wZXJhdGlvbik7Ci0gICAgICAgIG9wZXJhdGlvbi0+YWxnID0gYWxnOwotICAgICAgICBpZiAob3V0cHV0ICE9IE5VTEwpIHsKLSAgICAgICAgICAgIG1lbXNldChvdXRwdXQsICchJywgb3V0cHV0X2xlbmd0aCk7Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICBMT0NBTF9PVVRQVVRfRlJFRShvdXRwdXRfZXh0ZXJuYWwsIG91dHB1dCk7Ci0gICAgcmV0dXJuIHN0YXR1czsKLX0KLQotI2lmIGRlZmluZWQoTUJFRFRMU19QU0FfQlVJTFRJTl9LRVlfVFlQRV9ERVMpCi1zdGF0aWMgdm9pZCBwc2FfZGVzX3NldF9rZXlfcGFyaXR5KHVpbnQ4X3QgKmRhdGEsIHNpemVfdCBkYXRhX3NpemUpCi17Ci0gICAgaWYgKGRhdGFfc2l6ZSA+PSA4KSB7Ci0gICAgICAgIG1iZWR0bHNfZGVzX2tleV9zZXRfcGFyaXR5KGRhdGEpOwotICAgIH0KLSAgICBpZiAoZGF0YV9zaXplID49IDE2KSB7Ci0gICAgICAgIG1iZWR0bHNfZGVzX2tleV9zZXRfcGFyaXR5KGRhdGEgKyA4KTsKLSAgICB9Ci0gICAgaWYgKGRhdGFfc2l6ZSA+PSAyNCkgewotICAgICAgICBtYmVkdGxzX2Rlc19rZXlfc2V0X3Bhcml0eShkYXRhICsgMTYpOwotICAgIH0KLX0KLSNlbmRpZiAvKiBNQkVEVExTX1BTQV9CVUlMVElOX0tFWV9UWVBFX0RFUyAqLwotCi0vKgotICogRUNDIGtleXMgb24gYSBXZWllcnN0cmFzcyBlbGxpcHRpYyBjdXJ2ZSByZXF1aXJlIHRoZSBnZW5lcmF0aW9uCi0gKiBvZiBhIHByaXZhdGUga2V5IHdoaWNoIGlzIGFuIGludGVnZXIKLSAqIGluIHRoZSByYW5nZSBbMSwgTiAtIDFdLCB3aGVyZSBOIGlzIHRoZSBib3VuZGFyeSBvZiB0aGUgcHJpdmF0ZSBrZXkgZG9tYWluOgotICogTiBpcyB0aGUgcHJpbWUgcCBmb3IgRGlmZmllLUhlbGxtYW4sIG9yIHRoZSBvcmRlciBvZiB0aGUKLSAqIGN1cnZl4oCZcyBiYXNlIHBvaW50IGZvciBFQ0MuCi0gKgotICogTGV0IG0gYmUgdGhlIGJpdCBzaXplIG9mIE4sIHN1Y2ggdGhhdCAyXm0gPiBOID49IDJeKG0tMSkuCi0gKiBUaGlzIGZ1bmN0aW9uIGdlbmVyYXRlcyB0aGUgcHJpdmF0ZSBrZXkgdXNpbmcgdGhlIGZvbGxvd2luZyBwcm9jZXNzOgotICoKLSAqIDEuIERyYXcgYSBieXRlIHN0cmluZyBvZiBsZW5ndGggY2VpbGluZyhtLzgpIGJ5dGVzLgotICogMi4gSWYgbSBpcyBub3QgYSBtdWx0aXBsZSBvZiA4LCBzZXQgdGhlIG1vc3Qgc2lnbmlmaWNhbnQKLSAqICAgICg4ICogY2VpbGluZyhtLzgpIC0gbSkgYml0cyBvZiB0aGUgZmlyc3QgYnl0ZSBpbiB0aGUgc3RyaW5nIHRvIHplcm8uCi0gKiAzLiBDb252ZXJ0IHRoZSBzdHJpbmcgdG8gaW50ZWdlciBrIGJ5IGRlY29kaW5nIGl0IGFzIGEgYmlnLWVuZGlhbiBieXRlIHN0cmluZy4KLSAqIDQuIElmIGsgPiBOIC0gMiwgZGlzY2FyZCB0aGUgcmVzdWx0IGFuZCByZXR1cm4gdG8gc3RlcCAxLgotICogNS4gT3V0cHV0IGsgKyAxIGFzIHRoZSBwcml2YXRlIGtleS4KLSAqCi0gKiBUaGlzIG1ldGhvZCBhbGxvd3MgY29tcGxpYW5jZSB0byBOSVNUIHN0YW5kYXJkcywgc3BlY2lmaWNhbGx5IHRoZSBtZXRob2RzIHRpdGxlZAotICogS2V5LVBhaXIgR2VuZXJhdGlvbiBieSBUZXN0aW5nIENhbmRpZGF0ZXMgaW4gdGhlIGZvbGxvd2luZyBwdWJsaWNhdGlvbnM6Ci0gKiAtIE5JU1QgU3BlY2lhbCBQdWJsaWNhdGlvbiA4MDAtNTZBOiBSZWNvbW1lbmRhdGlvbiBmb3IgUGFpci1XaXNlIEtleS1Fc3RhYmxpc2htZW50Ci0gKiAgIFNjaGVtZXMgVXNpbmcgRGlzY3JldGUgTG9nYXJpdGhtIENyeXB0b2dyYXBoeSBbU1A4MDAtNTZBXSDCpzUuNi4xLjEuNCBmb3IKLSAqICAgRGlmZmllLUhlbGxtYW4ga2V5cy4KLSAqCi0gKiAtIFtTUDgwMC01NkFdIMKnNS42LjEuMi4yIG9yIEZJUFMgUHVibGljYXRpb24gMTg2LTQ6IERpZ2l0YWwgU2lnbmF0dXJlCi0gKiAgIFN0YW5kYXJkIChEU1MpIFtGSVBTMTg2LTRdIMKnQi40LjIgZm9yIGVsbGlwdGljIGN1cnZlIGtleXMuCi0gKgotICogTm90ZTogRnVuY3Rpb24gYWxsb2NhdGVzIG1lbW9yeSBmb3IgKmRhdGEgYnVmZmVyLCBzbyBnaXZlbiAqZGF0YSBzaG91bGQgYmUKLSAqICAgICAgIGFsd2F5cyBOVUxMLgotICovCi0jaWYgZGVmaW5lZChQU0FfV0FOVF9LRVlfVFlQRV9FQ0NfS0VZX1BBSVJfREVSSVZFKQotI2lmIGRlZmluZWQoTUJFRFRMU19QU0FfQlVJTFRJTl9LRVlfVFlQRV9FQ0NfS0VZX1BBSVJfREVSSVZFKQotc3RhdGljIHBzYV9zdGF0dXNfdCBwc2FfZ2VuZXJhdGVfZGVyaXZlZF9lY2Nfa2V5X3dlaWVyc3RyYXNzX2hlbHBlcigKLSAgICBwc2Ffa2V5X3Nsb3RfdCAqc2xvdCwKLSAgICBzaXplX3QgYml0cywKLSAgICBwc2Ffa2V5X2Rlcml2YXRpb25fb3BlcmF0aW9uX3QgKm9wZXJhdGlvbiwKLSAgICB1aW50OF90ICoqZGF0YQotICAgICkKLXsKLSAgICB1bnNpZ25lZCBrZXlfb3V0X29mX3JhbmdlID0gMTsKLSAgICBtYmVkdGxzX21waSBrOwotICAgIG1iZWR0bHNfbXBpIGRpZmZfTl8yOwotICAgIGludCByZXQgPSBNQkVEVExTX0VSUl9FUlJPUl9DT1JSVVBUSU9OX0RFVEVDVEVEOwotICAgIHBzYV9zdGF0dXNfdCBzdGF0dXMgPSBQU0FfRVJST1JfQ09SUlVQVElPTl9ERVRFQ1RFRDsKLSAgICBzaXplX3QgbTsKLSAgICBzaXplX3QgbV9ieXRlczsKLQotICAgIG1iZWR0bHNfbXBpX2luaXQoJmspOwotICAgIG1iZWR0bHNfbXBpX2luaXQoJmRpZmZfTl8yKTsKLQotICAgIHBzYV9lY2NfZmFtaWx5X3QgY3VydmUgPSBQU0FfS0VZX1RZUEVfRUNDX0dFVF9GQU1JTFkoCi0gICAgICAgIHNsb3QtPmF0dHIudHlwZSk7Ci0gICAgbWJlZHRsc19lY3BfZ3JvdXBfaWQgZ3JwX2lkID0KLSAgICAgICAgbWJlZHRsc19lY2NfZ3JvdXBfZnJvbV9wc2EoY3VydmUsIGJpdHMpOwotCi0gICAgaWYgKGdycF9pZCA9PSBNQkVEVExTX0VDUF9EUF9OT05FKSB7Ci0gICAgICAgIHJldCA9IE1CRURUTFNfRVJSX0FTTjFfSU5WQUxJRF9EQVRBOwotICAgICAgICBnb3RvIGNsZWFudXA7Ci0gICAgfQotCi0gICAgbWJlZHRsc19lY3BfZ3JvdXAgZWNwX2dyb3VwOwotICAgIG1iZWR0bHNfZWNwX2dyb3VwX2luaXQoJmVjcF9ncm91cCk7Ci0KLSAgICBNQkVEVExTX01QSV9DSEsobWJlZHRsc19lY3BfZ3JvdXBfbG9hZCgmZWNwX2dyb3VwLCBncnBfaWQpKTsKLQotICAgIC8qIE4gaXMgdGhlIGJvdW5kYXJ5IG9mIHRoZSBwcml2YXRlIGtleSBkb21haW4gKGVjcF9ncm91cC5OKS4gKi8KLSAgICAvKiBMZXQgbSBiZSB0aGUgYml0IHNpemUgb2YgTi4gKi8KLSAgICBtID0gZWNwX2dyb3VwLm5iaXRzOwotCi0gICAgbV9ieXRlcyA9IFBTQV9CSVRTX1RPX0JZVEVTKG0pOwotCi0gICAgLyogQ2FsY3VsYXRlIE4gLSAyIC0gaXQgd2lsbCBiZSBuZWVkZWQgbGF0ZXIuICovCi0gICAgTUJFRFRMU19NUElfQ0hLKG1iZWR0bHNfbXBpX3N1Yl9pbnQoJmRpZmZfTl8yLCAmZWNwX2dyb3VwLk4sIDIpKTsKLQotICAgIC8qIE5vdGU6IFRoaXMgZnVuY3Rpb24gaXMgYWx3YXlzIGNhbGxlZCB3aXRoICpkYXRhID09IE5VTEwgYW5kIGl0Ci0gICAgICogYWxsb2NhdGVzIG1lbW9yeSBmb3IgdGhlIGRhdGEgYnVmZmVyLiAqLwotICAgICpkYXRhID0gbWJlZHRsc19jYWxsb2MoMSwgbV9ieXRlcyk7Ci0gICAgaWYgKCpkYXRhID09IE5VTEwpIHsKLSAgICAgICAgcmV0ID0gTUJFRFRMU19FUlJfQVNOMV9BTExPQ19GQUlMRUQ7Ci0gICAgICAgIGdvdG8gY2xlYW51cDsKLSAgICB9Ci0KLSAgICB3aGlsZSAoa2V5X291dF9vZl9yYW5nZSkgewotICAgICAgICAvKiAxLiBEcmF3IGEgYnl0ZSBzdHJpbmcgb2YgbGVuZ3RoIGNlaWxpbmcobS84KSBieXRlcy4gKi8KLSAgICAgICAgaWYgKChzdGF0dXMgPSBwc2Ffa2V5X2Rlcml2YXRpb25fb3V0cHV0X2J5dGVzKG9wZXJhdGlvbiwgKmRhdGEsIG1fYnl0ZXMpKSAhPSAwKSB7Ci0gICAgICAgICAgICBnb3RvIGNsZWFudXA7Ci0gICAgICAgIH0KLQotICAgICAgICAvKiAyLiBJZiBtIGlzIG5vdCBhIG11bHRpcGxlIG9mIDggKi8KLSAgICAgICAgaWYgKG0gJSA4ICE9IDApIHsKLSAgICAgICAgICAgIC8qIFNldCB0aGUgbW9zdCBzaWduaWZpY2FudAotICAgICAgICAgICAgICogKDggKiBjZWlsaW5nKG0vOCkgLSBtKSBiaXRzIG9mIHRoZSBmaXJzdCBieXRlIGluCi0gICAgICAgICAgICAgKiB0aGUgc3RyaW5nIHRvIHplcm8uCi0gICAgICAgICAgICAgKi8KLSAgICAgICAgICAgIHVpbnQ4X3QgY2xlYXJfYml0X21hc2sgPSAoMSA8PCAobSAlIDgpKSAtIDE7Ci0gICAgICAgICAgICAoKmRhdGEpWzBdICY9IGNsZWFyX2JpdF9tYXNrOwotICAgICAgICB9Ci0KLSAgICAgICAgLyogMy4gQ29udmVydCB0aGUgc3RyaW5nIHRvIGludGVnZXIgayBieSBkZWNvZGluZyBpdCBhcyBhCi0gICAgICAgICAqICAgIGJpZy1lbmRpYW4gYnl0ZSBzdHJpbmcuCi0gICAgICAgICAqLwotICAgICAgICBNQkVEVExTX01QSV9DSEsobWJlZHRsc19tcGlfcmVhZF9iaW5hcnkoJmssICpkYXRhLCBtX2J5dGVzKSk7Ci0KLSAgICAgICAgLyogNC4gSWYgayA+IE4gLSAyLCBkaXNjYXJkIHRoZSByZXN1bHQgYW5kIHJldHVybiB0byBzdGVwIDEuCi0gICAgICAgICAqICAgIFJlc3VsdCBvZiBjb21wYXJpc29uIGlzIHJldHVybmVkLiBXaGVuIGl0IGluZGljYXRlcyBlcnJvcgotICAgICAgICAgKiAgICB0aGVuIHRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIGFnYWluLgotICAgICAgICAgKi8KLSAgICAgICAgTUJFRFRMU19NUElfQ0hLKG1iZWR0bHNfbXBpX2x0X21waV9jdCgmZGlmZl9OXzIsICZrLCAma2V5X291dF9vZl9yYW5nZSkpOwotICAgIH0KLQotICAgIC8qIDUuIE91dHB1dCBrICsgMSBhcyB0aGUgcHJpdmF0ZSBrZXkuICovCi0gICAgTUJFRFRMU19NUElfQ0hLKG1iZWR0bHNfbXBpX2FkZF9pbnQoJmssICZrLCAxKSk7Ci0gICAgTUJFRFRMU19NUElfQ0hLKG1iZWR0bHNfbXBpX3dyaXRlX2JpbmFyeSgmaywgKmRhdGEsIG1fYnl0ZXMpKTsKLWNsZWFudXA6Ci0gICAgaWYgKHJldCAhPSAwKSB7Ci0gICAgICAgIHN0YXR1cyA9IG1iZWR0bHNfdG9fcHNhX2Vycm9yKHJldCk7Ci0gICAgfQotICAgIGlmIChzdGF0dXMgIT0gUFNBX1NVQ0NFU1MpIHsKLSAgICAgICAgbWJlZHRsc19mcmVlKCpkYXRhKTsKLSAgICAgICAgKmRhdGEgPSBOVUxMOwotICAgIH0KLSAgICBtYmVkdGxzX21waV9mcmVlKCZrKTsKLSAgICBtYmVkdGxzX21waV9mcmVlKCZkaWZmX05fMik7Ci0gICAgcmV0dXJuIHN0YXR1czsKLX0KLQotLyogRUNDIGtleXMgb24gYSBNb250Z29tZXJ5IGVsbGlwdGljIGN1cnZlIGRyYXdzIGEgYnl0ZSBzdHJpbmcgd2hvc2UgbGVuZ3RoCi0gKiBpcyBkZXRlcm1pbmVkIGJ5IHRoZSBjdXJ2ZSwgYW5kIHNldHMgdGhlIG1hbmRhdG9yeSBiaXRzIGFjY29yZGluZ2x5LiBUaGF0IGlzOgotICoKLSAqIC0gQ3VydmUyNTUxOSAoUFNBX0VDQ19GQU1JTFlfTU9OVEdPTUVSWSwgMjU1IGJpdHMpOgotICogICBkcmF3IGEgMzItYnl0ZSBzdHJpbmcgYW5kIHByb2Nlc3MgaXQgYXMgc3BlY2lmaWVkIGluCi0gKiAgIEVsbGlwdGljIEN1cnZlcyBmb3IgU2VjdXJpdHkgW1JGQzc3NDhdIMKnNS4KLSAqCi0gKiAtIEN1cnZlNDQ4IChQU0FfRUNDX0ZBTUlMWV9NT05UR09NRVJZLCA0NDggYml0cyk6Ci0gKiAgIGRyYXcgYSA1Ni1ieXRlIHN0cmluZyBhbmQgcHJvY2VzcyBpdCBhcyBzcGVjaWZpZWQgaW4gW1JGQzc3NDhdIMKnNS4KLSAqCi0gKiBOb3RlOiBGdW5jdGlvbiBhbGxvY2F0ZXMgbWVtb3J5IGZvciAqZGF0YSBidWZmZXIsIHNvIGdpdmVuICpkYXRhIHNob3VsZCBiZQotICogICAgICAgYWx3YXlzIE5VTEwuCi0gKi8KLQotc3RhdGljIHBzYV9zdGF0dXNfdCBwc2FfZ2VuZXJhdGVfZGVyaXZlZF9lY2Nfa2V5X21vbnRnb21lcnlfaGVscGVyKAotICAgIHNpemVfdCBiaXRzLAotICAgIHBzYV9rZXlfZGVyaXZhdGlvbl9vcGVyYXRpb25fdCAqb3BlcmF0aW9uLAotICAgIHVpbnQ4X3QgKipkYXRhCi0gICAgKQotewotICAgIHNpemVfdCBvdXRwdXRfbGVuZ3RoOwotICAgIHBzYV9zdGF0dXNfdCBzdGF0dXMgPSBQU0FfRVJST1JfQ09SUlVQVElPTl9ERVRFQ1RFRDsKLQotICAgIHN3aXRjaCAoYml0cykgewotICAgICAgICBjYXNlIDI1NToKLSAgICAgICAgICAgIG91dHB1dF9sZW5ndGggPSAzMjsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIDQ0ODoKLSAgICAgICAgICAgIG91dHB1dF9sZW5ndGggPSA1NjsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBkZWZhdWx0OgotICAgICAgICAgICAgcmV0dXJuIFBTQV9FUlJPUl9JTlZBTElEX0FSR1VNRU5UOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgfQotCi0gICAgKmRhdGEgPSBtYmVkdGxzX2NhbGxvYygxLCBvdXRwdXRfbGVuZ3RoKTsKLQotICAgIGlmICgqZGF0YSA9PSBOVUxMKSB7Ci0gICAgICAgIHJldHVybiBQU0FfRVJST1JfSU5TVUZGSUNJRU5UX01FTU9SWTsKLSAgICB9Ci0KLSAgICBzdGF0dXMgPSBwc2Ffa2V5X2Rlcml2YXRpb25fb3V0cHV0X2J5dGVzKG9wZXJhdGlvbiwgKmRhdGEsIG91dHB1dF9sZW5ndGgpOwotCi0gICAgaWYgKHN0YXR1cyAhPSBQU0FfU1VDQ0VTUykgewotICAgICAgICByZXR1cm4gc3RhdHVzOwotICAgIH0KLQotICAgIHN3aXRjaCAoYml0cykgewotICAgICAgICBjYXNlIDI1NToKLSAgICAgICAgICAgICgqZGF0YSlbMF0gJj0gMjQ4OwotICAgICAgICAgICAgKCpkYXRhKVszMV0gJj0gMTI3OwotICAgICAgICAgICAgKCpkYXRhKVszMV0gfD0gNjQ7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSA0NDg6Ci0gICAgICAgICAgICAoKmRhdGEpWzBdICY9IDI1MjsKLSAgICAgICAgICAgICgqZGF0YSlbNTVdIHw9IDEyODsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBkZWZhdWx0OgotICAgICAgICAgICAgcmV0dXJuIFBTQV9FUlJPUl9DT1JSVVBUSU9OX0RFVEVDVEVEOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgfQotCi0gICAgcmV0dXJuIHN0YXR1czsKLX0KLSNlbHNlIC8qIE1CRURUTFNfUFNBX0JVSUxUSU5fS0VZX1RZUEVfRUNDX0tFWV9QQUlSX0RFUklWRSAqLwotc3RhdGljIHBzYV9zdGF0dXNfdCBwc2FfZ2VuZXJhdGVfZGVyaXZlZF9lY2Nfa2V5X3dlaWVyc3RyYXNzX2hlbHBlcigKLSAgICBwc2Ffa2V5X3Nsb3RfdCAqc2xvdCwgc2l6ZV90IGJpdHMsCi0gICAgcHNhX2tleV9kZXJpdmF0aW9uX29wZXJhdGlvbl90ICpvcGVyYXRpb24sIHVpbnQ4X3QgKipkYXRhKQotewotICAgICh2b2lkKSBzbG90OwotICAgICh2b2lkKSBiaXRzOwotICAgICh2b2lkKSBvcGVyYXRpb247Ci0gICAgKHZvaWQpIGRhdGE7Ci0gICAgcmV0dXJuIFBTQV9FUlJPUl9OT1RfU1VQUE9SVEVEOwotfQotCi1zdGF0aWMgcHNhX3N0YXR1c190IHBzYV9nZW5lcmF0ZV9kZXJpdmVkX2VjY19rZXlfbW9udGdvbWVyeV9oZWxwZXIoCi0gICAgc2l6ZV90IGJpdHMsIHBzYV9rZXlfZGVyaXZhdGlvbl9vcGVyYXRpb25fdCAqb3BlcmF0aW9uLCB1aW50OF90ICoqZGF0YSkKLXsKLSAgICAodm9pZCkgYml0czsKLSAgICAodm9pZCkgb3BlcmF0aW9uOwotICAgICh2b2lkKSBkYXRhOwotICAgIHJldHVybiBQU0FfRVJST1JfTk9UX1NVUFBPUlRFRDsKLX0KLSNlbmRpZiAvKiBNQkVEVExTX1BTQV9CVUlMVElOX0tFWV9UWVBFX0VDQ19LRVlfUEFJUl9ERVJJVkUgKi8KLSNlbmRpZiAvKiBQU0FfV0FOVF9LRVlfVFlQRV9FQ0NfS0VZX1BBSVJfREVSSVZFICovCi0KLXN0YXRpYyBwc2Ffc3RhdHVzX3QgcHNhX2dlbmVyYXRlX2Rlcml2ZWRfa2V5X2ludGVybmFsKAotICAgIHBzYV9rZXlfc2xvdF90ICpzbG90LAotICAgIHNpemVfdCBiaXRzLAotICAgIHBzYV9rZXlfZGVyaXZhdGlvbl9vcGVyYXRpb25fdCAqb3BlcmF0aW9uKQotewotICAgIHVpbnQ4X3QgKmRhdGEgPSBOVUxMOwotICAgIHNpemVfdCBieXRlcyA9IFBTQV9CSVRTX1RPX0JZVEVTKGJpdHMpOwotICAgIHNpemVfdCBzdG9yYWdlX3NpemUgPSBieXRlczsKLSAgICBwc2Ffc3RhdHVzX3Qgc3RhdHVzID0gUFNBX0VSUk9SX0NPUlJVUFRJT05fREVURUNURUQ7Ci0KLSAgICBpZiAoUFNBX0tFWV9UWVBFX0lTX1BVQkxJQ19LRVkoc2xvdC0+YXR0ci50eXBlKSkgewotICAgICAgICByZXR1cm4gUFNBX0VSUk9SX0lOVkFMSURfQVJHVU1FTlQ7Ci0gICAgfQotCi0jaWYgZGVmaW5lZChQU0FfV0FOVF9LRVlfVFlQRV9FQ0NfS0VZX1BBSVJfREVSSVZFKSB8fCBcCi0gICAgZGVmaW5lZChNQkVEVExTX1BTQV9CVUlMVElOX0tFWV9UWVBFX0VDQ19LRVlfUEFJUl9ERVJJVkUpCi0gICAgaWYgKFBTQV9LRVlfVFlQRV9JU19FQ0Moc2xvdC0+YXR0ci50eXBlKSkgewotICAgICAgICBwc2FfZWNjX2ZhbWlseV90IGN1cnZlID0gUFNBX0tFWV9UWVBFX0VDQ19HRVRfRkFNSUxZKHNsb3QtPmF0dHIudHlwZSk7Ci0gICAgICAgIGlmIChQU0FfRUNDX0ZBTUlMWV9JU19XRUlFUlNUUkFTUyhjdXJ2ZSkpIHsKLSAgICAgICAgICAgIC8qIFdlaWVyc3RyYXNzIGVsbGlwdGljIGN1cnZlICovCi0gICAgICAgICAgICBzdGF0dXMgPSBwc2FfZ2VuZXJhdGVfZGVyaXZlZF9lY2Nfa2V5X3dlaWVyc3RyYXNzX2hlbHBlcihzbG90LCBiaXRzLCBvcGVyYXRpb24sICZkYXRhKTsKLSAgICAgICAgICAgIGlmIChzdGF0dXMgIT0gUFNBX1NVQ0NFU1MpIHsKLSAgICAgICAgICAgICAgICBnb3RvIGV4aXQ7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAvKiBNb250Z29tZXJ5IGVsbGlwdGljIGN1cnZlICovCi0gICAgICAgICAgICBzdGF0dXMgPSBwc2FfZ2VuZXJhdGVfZGVyaXZlZF9lY2Nfa2V5X21vbnRnb21lcnlfaGVscGVyKGJpdHMsIG9wZXJhdGlvbiwgJmRhdGEpOwotICAgICAgICAgICAgaWYgKHN0YXR1cyAhPSBQU0FfU1VDQ0VTUykgewotICAgICAgICAgICAgICAgIGdvdG8gZXhpdDsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfQotICAgIH0gZWxzZQotI2VuZGlmIC8qIGRlZmluZWQoUFNBX1dBTlRfS0VZX1RZUEVfRUNDX0tFWV9QQUlSX0RFUklWRSkgfHwKLSAgICAgICAgICBkZWZpbmVkKE1CRURUTFNfUFNBX0JVSUxUSU5fS0VZX1RZUEVfRUNDX0tFWV9QQUlSX0RFUklWRSkgKi8KLSAgICBpZiAoa2V5X3R5cGVfaXNfcmF3X2J5dGVzKHNsb3QtPmF0dHIudHlwZSkpIHsKLSAgICAgICAgaWYgKGJpdHMgJSA4ICE9IDApIHsKLSAgICAgICAgICAgIHJldHVybiBQU0FfRVJST1JfSU5WQUxJRF9BUkdVTUVOVDsKLSAgICAgICAgfQotICAgICAgICBkYXRhID0gbWJlZHRsc19jYWxsb2MoMSwgYnl0ZXMpOwotICAgICAgICBpZiAoZGF0YSA9PSBOVUxMKSB7Ci0gICAgICAgICAgICByZXR1cm4gUFNBX0VSUk9SX0lOU1VGRklDSUVOVF9NRU1PUlk7Ci0gICAgICAgIH0KLQotICAgICAgICBzdGF0dXMgPSBwc2Ffa2V5X2Rlcml2YXRpb25fb3V0cHV0X2J5dGVzKG9wZXJhdGlvbiwgZGF0YSwgYnl0ZXMpOwotICAgICAgICBpZiAoc3RhdHVzICE9IFBTQV9TVUNDRVNTKSB7Ci0gICAgICAgICAgICBnb3RvIGV4aXQ7Ci0gICAgICAgIH0KLSNpZiBkZWZpbmVkKE1CRURUTFNfUFNBX0JVSUxUSU5fS0VZX1RZUEVfREVTKQotICAgICAgICBpZiAoc2xvdC0+YXR0ci50eXBlID09IFBTQV9LRVlfVFlQRV9ERVMpIHsKLSAgICAgICAgICAgIHBzYV9kZXNfc2V0X2tleV9wYXJpdHkoZGF0YSwgYnl0ZXMpOwotICAgICAgICB9Ci0jZW5kaWYgLyogZGVmaW5lZChNQkVEVExTX1BTQV9CVUlMVElOX0tFWV9UWVBFX0RFUykgKi8KLSAgICB9IGVsc2UgewotICAgICAgICByZXR1cm4gUFNBX0VSUk9SX05PVF9TVVBQT1JURUQ7Ci0gICAgfQotCi0gICAgc2xvdC0+YXR0ci5iaXRzID0gKHBzYV9rZXlfYml0c190KSBiaXRzOwotCi0gICAgaWYgKHBzYV9rZXlfbGlmZXRpbWVfaXNfZXh0ZXJuYWwoc2xvdC0+YXR0ci5saWZldGltZSkpIHsKLSAgICAgICAgc3RhdHVzID0gcHNhX2RyaXZlcl93cmFwcGVyX2dldF9rZXlfYnVmZmVyX3NpemUoJnNsb3QtPmF0dHIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZzdG9yYWdlX3NpemUpOwotICAgICAgICBpZiAoc3RhdHVzICE9IFBTQV9TVUNDRVNTKSB7Ci0gICAgICAgICAgICBnb3RvIGV4aXQ7Ci0gICAgICAgIH0KLSAgICB9Ci0gICAgc3RhdHVzID0gcHNhX2FsbG9jYXRlX2J1ZmZlcl90b19zbG90KHNsb3QsIHN0b3JhZ2Vfc2l6ZSk7Ci0gICAgaWYgKHN0YXR1cyAhPSBQU0FfU1VDQ0VTUykgewotICAgICAgICBnb3RvIGV4aXQ7Ci0gICAgfQotCi0gICAgc3RhdHVzID0gcHNhX2RyaXZlcl93cmFwcGVyX2ltcG9ydF9rZXkoJnNsb3QtPmF0dHIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YSwgYnl0ZXMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2xvdC0+a2V5LmRhdGEsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2xvdC0+a2V5LmJ5dGVzLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZzbG90LT5rZXkuYnl0ZXMsICZiaXRzKTsKLSAgICBpZiAoYml0cyAhPSBzbG90LT5hdHRyLmJpdHMpIHsKLSAgICAgICAgc3RhdHVzID0gUFNBX0VSUk9SX0lOVkFMSURfQVJHVU1FTlQ7Ci0gICAgfQotCi1leGl0OgotICAgIG1iZWR0bHNfZnJlZShkYXRhKTsKLSAgICByZXR1cm4gc3RhdHVzOwotfQotCi1zdGF0aWMgY29uc3QgcHNhX2tleV9wcm9kdWN0aW9uX3BhcmFtZXRlcnNfdCBkZWZhdWx0X3Byb2R1Y3Rpb25fcGFyYW1ldGVycyA9Ci0gICAgUFNBX0tFWV9QUk9EVUNUSU9OX1BBUkFNRVRFUlNfSU5JVDsKLQotaW50IHBzYV9rZXlfcHJvZHVjdGlvbl9wYXJhbWV0ZXJzX2FyZV9kZWZhdWx0KAotICAgIGNvbnN0IHBzYV9rZXlfcHJvZHVjdGlvbl9wYXJhbWV0ZXJzX3QgKnBhcmFtcywKLSAgICBzaXplX3QgcGFyYW1zX2RhdGFfbGVuZ3RoKQotewotICAgIGlmIChwYXJhbXMtPmZsYWdzICE9IDApIHsKLSAgICAgICAgcmV0dXJuIDA7Ci0gICAgfQotICAgIGlmIChwYXJhbXNfZGF0YV9sZW5ndGggIT0gMCkgewotICAgICAgICByZXR1cm4gMDsKLSAgICB9Ci0gICAgcmV0dXJuIDE7Ci19Ci0KLXBzYV9zdGF0dXNfdCBwc2Ffa2V5X2Rlcml2YXRpb25fb3V0cHV0X2tleV9leHQoCi0gICAgY29uc3QgcHNhX2tleV9hdHRyaWJ1dGVzX3QgKmF0dHJpYnV0ZXMsCi0gICAgcHNhX2tleV9kZXJpdmF0aW9uX29wZXJhdGlvbl90ICpvcGVyYXRpb24sCi0gICAgY29uc3QgcHNhX2tleV9wcm9kdWN0aW9uX3BhcmFtZXRlcnNfdCAqcGFyYW1zLAotICAgIHNpemVfdCBwYXJhbXNfZGF0YV9sZW5ndGgsCi0gICAgbWJlZHRsc19zdmNfa2V5X2lkX3QgKmtleSkKLXsKLSAgICBwc2Ffc3RhdHVzX3Qgc3RhdHVzOwotICAgIHBzYV9rZXlfc2xvdF90ICpzbG90ID0gTlVMTDsKLSAgICBwc2Ffc2VfZHJ2X3RhYmxlX2VudHJ5X3QgKmRyaXZlciA9IE5VTEw7Ci0KLSAgICAqa2V5ID0gTUJFRFRMU19TVkNfS0VZX0lEX0lOSVQ7Ci0KLSAgICAvKiBSZWplY3QgYW55IGF0dGVtcHQgdG8gY3JlYXRlIGEgemVyby1sZW5ndGgga2V5IHNvIHRoYXQgd2UgZG9uJ3QKLSAgICAgKiByaXNrIHRyaXBwaW5nIHVwIGxhdGVyLCBlLmcuIG9uIGEgbWFsbG9jKDApIHRoYXQgcmV0dXJucyBOVUxMLiAqLwotICAgIGlmIChwc2FfZ2V0X2tleV9iaXRzKGF0dHJpYnV0ZXMpID09IDApIHsKLSAgICAgICAgcmV0dXJuIFBTQV9FUlJPUl9JTlZBTElEX0FSR1VNRU5UOwotICAgIH0KLQotICAgIGlmICghcHNhX2tleV9wcm9kdWN0aW9uX3BhcmFtZXRlcnNfYXJlX2RlZmF1bHQocGFyYW1zLCBwYXJhbXNfZGF0YV9sZW5ndGgpKSB7Ci0gICAgICAgIHJldHVybiBQU0FfRVJST1JfSU5WQUxJRF9BUkdVTUVOVDsKLSAgICB9Ci0KLSAgICBpZiAob3BlcmF0aW9uLT5hbGcgPT0gUFNBX0FMR19OT05FKSB7Ci0gICAgICAgIHJldHVybiBQU0FfRVJST1JfQkFEX1NUQVRFOwotICAgIH0KLQotICAgIGlmICghb3BlcmF0aW9uLT5jYW5fb3V0cHV0X2tleSkgewotICAgICAgICByZXR1cm4gUFNBX0VSUk9SX05PVF9QRVJNSVRURUQ7Ci0gICAgfQotCi0gICAgc3RhdHVzID0gcHNhX3N0YXJ0X2tleV9jcmVhdGlvbihQU0FfS0VZX0NSRUFUSU9OX0RFUklWRSwgYXR0cmlidXRlcywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZzbG90LCAmZHJpdmVyKTsKLSNpZiBkZWZpbmVkKE1CRURUTFNfUFNBX0NSWVBUT19TRV9DKQotICAgIGlmIChkcml2ZXIgIT0gTlVMTCkgewotICAgICAgICAvKiBEZXJpdmluZyBhIGtleSBpbiBhIHNlY3VyZSBlbGVtZW50IGlzIG5vdCBpbXBsZW1lbnRlZCB5ZXQuICovCi0gICAgICAgIHN0YXR1cyA9IFBTQV9FUlJPUl9OT1RfU1VQUE9SVEVEOwotICAgIH0KLSNlbmRpZiAvKiBNQkVEVExTX1BTQV9DUllQVE9fU0VfQyAqLwotICAgIGlmIChzdGF0dXMgPT0gUFNBX1NVQ0NFU1MpIHsKLSAgICAgICAgc3RhdHVzID0gcHNhX2dlbmVyYXRlX2Rlcml2ZWRfa2V5X2ludGVybmFsKHNsb3QsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdHRyaWJ1dGVzLT5iaXRzLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3BlcmF0aW9uKTsKLSAgICB9Ci0gICAgaWYgKHN0YXR1cyA9PSBQU0FfU1VDQ0VTUykgewotICAgICAgICBzdGF0dXMgPSBwc2FfZmluaXNoX2tleV9jcmVhdGlvbihzbG90LCBkcml2ZXIsIGtleSk7Ci0gICAgfQotICAgIGlmIChzdGF0dXMgIT0gUFNBX1NVQ0NFU1MpIHsKLSAgICAgICAgcHNhX2ZhaWxfa2V5X2NyZWF0aW9uKHNsb3QsIGRyaXZlcik7Ci0gICAgfQotCi0gICAgcmV0dXJuIHN0YXR1czsKLX0KLQotcHNhX3N0YXR1c190IHBzYV9rZXlfZGVyaXZhdGlvbl9vdXRwdXRfa2V5KAotICAgIGNvbnN0IHBzYV9rZXlfYXR0cmlidXRlc190ICphdHRyaWJ1dGVzLAotICAgIHBzYV9rZXlfZGVyaXZhdGlvbl9vcGVyYXRpb25fdCAqb3BlcmF0aW9uLAotICAgIG1iZWR0bHNfc3ZjX2tleV9pZF90ICprZXkpCi17Ci0gICAgcmV0dXJuIHBzYV9rZXlfZGVyaXZhdGlvbl9vdXRwdXRfa2V5X2V4dChhdHRyaWJ1dGVzLCBvcGVyYXRpb24sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmZGVmYXVsdF9wcm9kdWN0aW9uX3BhcmFtZXRlcnMsIDAsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXkpOwotfQotCi0KLS8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwotLyogS2V5IGRlcml2YXRpb24gKi8KLS8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwotCi0jaWYgZGVmaW5lZChBVF9MRUFTVF9PTkVfQlVJTFRJTl9LREYpCi1zdGF0aWMgaW50IGlzX2tkZl9hbGdfc3VwcG9ydGVkKHBzYV9hbGdvcml0aG1fdCBrZGZfYWxnKQotewotI2lmIGRlZmluZWQoTUJFRFRMU19QU0FfQlVJTFRJTl9BTEdfSEtERikKLSAgICBpZiAoUFNBX0FMR19JU19IS0RGKGtkZl9hbGcpKSB7Ci0gICAgICAgIHJldHVybiAxOwotICAgIH0KLSNlbmRpZgotI2lmIGRlZmluZWQoTUJFRFRMU19QU0FfQlVJTFRJTl9BTEdfSEtERl9FWFRSQUNUKQotICAgIGlmIChQU0FfQUxHX0lTX0hLREZfRVhUUkFDVChrZGZfYWxnKSkgewotICAgICAgICByZXR1cm4gMTsKLSAgICB9Ci0jZW5kaWYKLSNpZiBkZWZpbmVkKE1CRURUTFNfUFNBX0JVSUxUSU5fQUxHX0hLREZfRVhQQU5EKQotICAgIGlmIChQU0FfQUxHX0lTX0hLREZfRVhQQU5EKGtkZl9hbGcpKSB7Ci0gICAgICAgIHJldHVybiAxOwotICAgIH0KLSNlbmRpZgotI2lmIGRlZmluZWQoTUJFRFRMU19QU0FfQlVJTFRJTl9BTEdfVExTMTJfUFJGKQotICAgIGlmIChQU0FfQUxHX0lTX1RMUzEyX1BSRihrZGZfYWxnKSkgewotICAgICAgICByZXR1cm4gMTsKLSAgICB9Ci0jZW5kaWYKLSNpZiBkZWZpbmVkKE1CRURUTFNfUFNBX0JVSUxUSU5fQUxHX1RMUzEyX1BTS19UT19NUykKLSAgICBpZiAoUFNBX0FMR19JU19UTFMxMl9QU0tfVE9fTVMoa2RmX2FsZykpIHsKLSAgICAgICAgcmV0dXJuIDE7Ci0gICAgfQotI2VuZGlmCi0jaWYgZGVmaW5lZChNQkVEVExTX1BTQV9CVUlMVElOX0FMR19UTFMxMl9FQ0pQQUtFX1RPX1BNUykKLSAgICBpZiAoa2RmX2FsZyA9PSBQU0FfQUxHX1RMUzEyX0VDSlBBS0VfVE9fUE1TKSB7Ci0gICAgICAgIHJldHVybiAxOwotICAgIH0KLSNlbmRpZgotI2lmIGRlZmluZWQoTUJFRFRMU19QU0FfQlVJTFRJTl9BTEdfUEJLREYyX0hNQUMpCi0gICAgaWYgKFBTQV9BTEdfSVNfUEJLREYyX0hNQUMoa2RmX2FsZykpIHsKLSAgICAgICAgcmV0dXJuIDE7Ci0gICAgfQotI2VuZGlmCi0jaWYgZGVmaW5lZChNQkVEVExTX1BTQV9CVUlMVElOX0FMR19QQktERjJfQUVTX0NNQUNfUFJGXzEyOCkKLSAgICBpZiAoa2RmX2FsZyA9PSBQU0FfQUxHX1BCS0RGMl9BRVNfQ01BQ19QUkZfMTI4KSB7Ci0gICAgICAgIHJldHVybiAxOwotICAgIH0KLSNlbmRpZgotICAgIHJldHVybiAwOwotfQotCi1zdGF0aWMgcHNhX3N0YXR1c190IHBzYV9oYXNoX3RyeV9zdXBwb3J0KHBzYV9hbGdvcml0aG1fdCBhbGcpCi17Ci0gICAgcHNhX2hhc2hfb3BlcmF0aW9uX3Qgb3BlcmF0aW9uID0gUFNBX0hBU0hfT1BFUkFUSU9OX0lOSVQ7Ci0gICAgcHNhX3N0YXR1c190IHN0YXR1cyA9IHBzYV9oYXNoX3NldHVwKCZvcGVyYXRpb24sIGFsZyk7Ci0gICAgcHNhX2hhc2hfYWJvcnQoJm9wZXJhdGlvbik7Ci0gICAgcmV0dXJuIHN0YXR1czsKLX0KLQotc3RhdGljIHBzYV9zdGF0dXNfdCBwc2Ffa2V5X2Rlcml2YXRpb25fc2V0X21heGltdW1fY2FwYWNpdHkoCi0gICAgcHNhX2tleV9kZXJpdmF0aW9uX29wZXJhdGlvbl90ICpvcGVyYXRpb24sCi0gICAgcHNhX2FsZ29yaXRobV90IGtkZl9hbGcpCi17Ci0jaWYgZGVmaW5lZChQU0FfV0FOVF9BTEdfVExTMTJfRUNKUEFLRV9UT19QTVMpCi0gICAgaWYgKGtkZl9hbGcgPT0gUFNBX0FMR19UTFMxMl9FQ0pQQUtFX1RPX1BNUykgewotICAgICAgICBvcGVyYXRpb24tPmNhcGFjaXR5ID0gUFNBX0hBU0hfTEVOR1RIKFBTQV9BTEdfU0hBXzI1Nik7Ci0gICAgICAgIHJldHVybiBQU0FfU1VDQ0VTUzsKLSAgICB9Ci0jZW5kaWYKLSNpZiBkZWZpbmVkKFBTQV9XQU5UX0FMR19QQktERjJfQUVTX0NNQUNfUFJGXzEyOCkKLSAgICBpZiAoa2RmX2FsZyA9PSBQU0FfQUxHX1BCS0RGMl9BRVNfQ01BQ19QUkZfMTI4KSB7Ci0jaWYgKFNJWkVfTUFYID4gVUlOVDMyX01BWCkKLSAgICAgICAgb3BlcmF0aW9uLT5jYXBhY2l0eSA9IFVJTlQzMl9NQVggKiAoc2l6ZV90KSBQU0FfTUFDX0xFTkdUSCgKLSAgICAgICAgICAgIFBTQV9LRVlfVFlQRV9BRVMsCi0gICAgICAgICAgICAxMjhVLAotICAgICAgICAgICAgUFNBX0FMR19DTUFDKTsKLSNlbHNlCi0gICAgICAgIG9wZXJhdGlvbi0+Y2FwYWNpdHkgPSBTSVpFX01BWDsKLSNlbmRpZgotICAgICAgICByZXR1cm4gUFNBX1NVQ0NFU1M7Ci0gICAgfQotI2VuZGlmIC8qIFBTQV9XQU5UX0FMR19QQktERjJfQUVTX0NNQUNfUFJGXzEyOCAqLwotCi0gICAgLyogQWZ0ZXIgdGhpcyBwb2ludCwgaWYga2RmX2FsZyBpcyBub3QgdmFsaWQgdGhlbiB2YWx1ZSBvZiBoYXNoX2FsZyBtYXkgYmUKLSAgICAgKiBpbnZhbGlkIG9yIG1lYW5pbmdsZXNzIGJ1dCBpdCBkb2VzIG5vdCBhZmZlY3QgdGhpcyBmdW5jdGlvbiAqLwotICAgIHBzYV9hbGdvcml0aG1fdCBoYXNoX2FsZyA9IFBTQV9BTEdfR0VUX0hBU0goa2RmX2FsZyk7Ci0gICAgc2l6ZV90IGhhc2hfc2l6ZSA9IFBTQV9IQVNIX0xFTkdUSChoYXNoX2FsZyk7Ci0gICAgaWYgKGhhc2hfc2l6ZSA9PSAwKSB7Ci0gICAgICAgIHJldHVybiBQU0FfRVJST1JfTk9UX1NVUFBPUlRFRDsKLSAgICB9Ci0KLSAgICAvKiBNYWtlIHN1cmUgdGhhdCBoYXNoX2FsZyBpcyBhIHN1cHBvcnRlZCBoYXNoIGFsZ29yaXRobS4gT3RoZXJ3aXNlCi0gICAgICogd2UgbWlnaHQgZmFpbCBsYXRlciwgd2hpY2ggaXMgc29tZXdoYXQgdW5mcmllbmRseSBhbmQgcG90ZW50aWFsbHkKLSAgICAgKiByaXNrLXByb25lLiAqLwotICAgIHBzYV9zdGF0dXNfdCBzdGF0dXMgPSBwc2FfaGFzaF90cnlfc3VwcG9ydChoYXNoX2FsZyk7Ci0gICAgaWYgKHN0YXR1cyAhPSBQU0FfU1VDQ0VTUykgewotICAgICAgICByZXR1cm4gc3RhdHVzOwotICAgIH0KLQotI2lmIGRlZmluZWQoUFNBX1dBTlRfQUxHX0hLREYpCi0gICAgaWYgKFBTQV9BTEdfSVNfSEtERihrZGZfYWxnKSkgewotICAgICAgICBvcGVyYXRpb24tPmNhcGFjaXR5ID0gMjU1ICogaGFzaF9zaXplOwotICAgIH0gZWxzZQotI2VuZGlmCi0jaWYgZGVmaW5lZChQU0FfV0FOVF9BTEdfSEtERl9FWFRSQUNUKQotICAgIGlmIChQU0FfQUxHX0lTX0hLREZfRVhUUkFDVChrZGZfYWxnKSkgewotICAgICAgICBvcGVyYXRpb24tPmNhcGFjaXR5ID0gaGFzaF9zaXplOwotICAgIH0gZWxzZQotI2VuZGlmCi0jaWYgZGVmaW5lZChQU0FfV0FOVF9BTEdfSEtERl9FWFBBTkQpCi0gICAgaWYgKFBTQV9BTEdfSVNfSEtERl9FWFBBTkQoa2RmX2FsZykpIHsKLSAgICAgICAgb3BlcmF0aW9uLT5jYXBhY2l0eSA9IDI1NSAqIGhhc2hfc2l6ZTsKLSAgICB9IGVsc2UKLSNlbmRpZgotI2lmIGRlZmluZWQoUFNBX1dBTlRfQUxHX1RMUzEyX1BSRikKLSAgICBpZiAoUFNBX0FMR19JU19UTFMxMl9QUkYoa2RmX2FsZykgJiYKLSAgICAgICAgKGhhc2hfYWxnID09IFBTQV9BTEdfU0hBXzI1NiB8fCBoYXNoX2FsZyA9PSBQU0FfQUxHX1NIQV8zODQpKSB7Ci0gICAgICAgIG9wZXJhdGlvbi0+Y2FwYWNpdHkgPSBTSVpFX01BWDsKLSAgICB9IGVsc2UKLSNlbmRpZgotI2lmIGRlZmluZWQoUFNBX1dBTlRfQUxHX1RMUzEyX1BTS19UT19NUykKLSAgICBpZiAoUFNBX0FMR19JU19UTFMxMl9QU0tfVE9fTVMoa2RmX2FsZykgJiYKLSAgICAgICAgKGhhc2hfYWxnID09IFBTQV9BTEdfU0hBXzI1NiB8fCBoYXNoX2FsZyA9PSBQU0FfQUxHX1NIQV8zODQpKSB7Ci0gICAgICAgIC8qIE1hc3RlciBTZWNyZXQgaXMgYWx3YXlzIDQ4IGJ5dGVzCi0gICAgICAgICAqIGh0dHBzOi8vZGF0YXRyYWNrZXIuaWV0Zi5vcmcvZG9jL2h0bWwvcmZjNTI0Ni5odG1sI3NlY3Rpb24tOC4xICovCi0gICAgICAgIG9wZXJhdGlvbi0+Y2FwYWNpdHkgPSA0OFU7Ci0gICAgfSBlbHNlCi0jZW5kaWYKLSNpZiBkZWZpbmVkKFBTQV9XQU5UX0FMR19QQktERjJfSE1BQykKLSAgICBpZiAoUFNBX0FMR19JU19QQktERjJfSE1BQyhrZGZfYWxnKSkgewotI2lmIChTSVpFX01BWCA+IFVJTlQzMl9NQVgpCi0gICAgICAgIG9wZXJhdGlvbi0+Y2FwYWNpdHkgPSBVSU5UMzJfTUFYICogaGFzaF9zaXplOwotI2Vsc2UKLSAgICAgICAgb3BlcmF0aW9uLT5jYXBhY2l0eSA9IFNJWkVfTUFYOwotI2VuZGlmCi0gICAgfSBlbHNlCi0jZW5kaWYgLyogUFNBX1dBTlRfQUxHX1BCS0RGMl9ITUFDICovCi0gICAgewotICAgICAgICAodm9pZCkgaGFzaF9zaXplOwotICAgICAgICBzdGF0dXMgPSBQU0FfRVJST1JfTk9UX1NVUFBPUlRFRDsKLSAgICB9Ci0gICAgcmV0dXJuIHN0YXR1czsKLX0KLQotc3RhdGljIHBzYV9zdGF0dXNfdCBwc2Ffa2V5X2Rlcml2YXRpb25fc2V0dXBfa2RmKAotICAgIHBzYV9rZXlfZGVyaXZhdGlvbl9vcGVyYXRpb25fdCAqb3BlcmF0aW9uLAotICAgIHBzYV9hbGdvcml0aG1fdCBrZGZfYWxnKQotewotICAgIC8qIE1ha2Ugc3VyZSB0aGF0IG9wZXJhdGlvbi0+Y3R4IGlzIHByb3Blcmx5IHplcm8taW5pdGlhbGlzZWQuIChNYWNybwotICAgICAqIGluaXRpYWxpc2VycyBmb3IgdGhpcyB1bmlvbiBsZWF2ZSBzb21lIGJ5dGVzIHVuc3BlY2lmaWVkLikgKi8KLSAgICBtZW1zZXQoJm9wZXJhdGlvbi0+Y3R4LCAwLCBzaXplb2Yob3BlcmF0aW9uLT5jdHgpKTsKLQotICAgIC8qIE1ha2Ugc3VyZSB0aGF0IGtkZl9hbGcgaXMgYSBzdXBwb3J0ZWQga2V5IGRlcml2YXRpb24gYWxnb3JpdGhtLiAqLwotICAgIGlmICghaXNfa2RmX2FsZ19zdXBwb3J0ZWQoa2RmX2FsZykpIHsKLSAgICAgICAgcmV0dXJuIFBTQV9FUlJPUl9OT1RfU1VQUE9SVEVEOwotICAgIH0KLQotICAgIHBzYV9zdGF0dXNfdCBzdGF0dXMgPSBwc2Ffa2V5X2Rlcml2YXRpb25fc2V0X21heGltdW1fY2FwYWNpdHkob3BlcmF0aW9uLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga2RmX2FsZyk7Ci0gICAgcmV0dXJuIHN0YXR1czsKLX0KLQotc3RhdGljIHBzYV9zdGF0dXNfdCBwc2Ffa2V5X2FncmVlbWVudF90cnlfc3VwcG9ydChwc2FfYWxnb3JpdGhtX3QgYWxnKQotewotI2lmIGRlZmluZWQoUFNBX1dBTlRfQUxHX0VDREgpCi0gICAgaWYgKGFsZyA9PSBQU0FfQUxHX0VDREgpIHsKLSAgICAgICAgcmV0dXJuIFBTQV9TVUNDRVNTOwotICAgIH0KLSNlbmRpZgotI2lmIGRlZmluZWQoUFNBX1dBTlRfQUxHX0ZGREgpCi0gICAgaWYgKGFsZyA9PSBQU0FfQUxHX0ZGREgpIHsKLSAgICAgICAgcmV0dXJuIFBTQV9TVUNDRVNTOwotICAgIH0KLSNlbmRpZgotICAgICh2b2lkKSBhbGc7Ci0gICAgcmV0dXJuIFBTQV9FUlJPUl9OT1RfU1VQUE9SVEVEOwotfQotCi1zdGF0aWMgaW50IHBzYV9rZXlfZGVyaXZhdGlvbl9hbGxvd3NfZnJlZV9mb3JtX3NlY3JldF9pbnB1dCgKLSAgICBwc2FfYWxnb3JpdGhtX3Qga2RmX2FsZykKLXsKLSNpZiBkZWZpbmVkKFBTQV9XQU5UX0FMR19UTFMxMl9FQ0pQQUtFX1RPX1BNUykKLSAgICBpZiAoa2RmX2FsZyA9PSBQU0FfQUxHX1RMUzEyX0VDSlBBS0VfVE9fUE1TKSB7Ci0gICAgICAgIHJldHVybiAwOwotICAgIH0KLSNlbmRpZgotICAgICh2b2lkKSBrZGZfYWxnOwotICAgIHJldHVybiAxOwotfQotI2VuZGlmIC8qIEFUX0xFQVNUX09ORV9CVUlMVElOX0tERiAqLwotCi1wc2Ffc3RhdHVzX3QgcHNhX2tleV9kZXJpdmF0aW9uX3NldHVwKHBzYV9rZXlfZGVyaXZhdGlvbl9vcGVyYXRpb25fdCAqb3BlcmF0aW9uLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwc2FfYWxnb3JpdGhtX3QgYWxnKQotewotICAgIHBzYV9zdGF0dXNfdCBzdGF0dXM7Ci0KLSAgICBpZiAob3BlcmF0aW9uLT5hbGcgIT0gMCkgewotICAgICAgICByZXR1cm4gUFNBX0VSUk9SX0JBRF9TVEFURTsKLSAgICB9Ci0KLSAgICBpZiAoUFNBX0FMR19JU19SQVdfS0VZX0FHUkVFTUVOVChhbGcpKSB7Ci0gICAgICAgIHJldHVybiBQU0FfRVJST1JfSU5WQUxJRF9BUkdVTUVOVDsKLSAgICB9IGVsc2UgaWYgKFBTQV9BTEdfSVNfS0VZX0FHUkVFTUVOVChhbGcpKSB7Ci0jaWYgZGVmaW5lZChBVF9MRUFTVF9PTkVfQlVJTFRJTl9LREYpCi0gICAgICAgIHBzYV9hbGdvcml0aG1fdCBrZGZfYWxnID0gUFNBX0FMR19LRVlfQUdSRUVNRU5UX0dFVF9LREYoYWxnKTsKLSAgICAgICAgcHNhX2FsZ29yaXRobV90IGthX2FsZyA9IFBTQV9BTEdfS0VZX0FHUkVFTUVOVF9HRVRfQkFTRShhbGcpOwotICAgICAgICBzdGF0dXMgPSBwc2Ffa2V5X2FncmVlbWVudF90cnlfc3VwcG9ydChrYV9hbGcpOwotICAgICAgICBpZiAoc3RhdHVzICE9IFBTQV9TVUNDRVNTKSB7Ci0gICAgICAgICAgICByZXR1cm4gc3RhdHVzOwotICAgICAgICB9Ci0gICAgICAgIGlmICghcHNhX2tleV9kZXJpdmF0aW9uX2FsbG93c19mcmVlX2Zvcm1fc2VjcmV0X2lucHV0KGtkZl9hbGcpKSB7Ci0gICAgICAgICAgICByZXR1cm4gUFNBX0VSUk9SX0lOVkFMSURfQVJHVU1FTlQ7Ci0gICAgICAgIH0KLSAgICAgICAgc3RhdHVzID0gcHNhX2tleV9kZXJpdmF0aW9uX3NldHVwX2tkZihvcGVyYXRpb24sIGtkZl9hbGcpOwotI2Vsc2UKLSAgICAgICAgcmV0dXJuIFBTQV9FUlJPUl9OT1RfU1VQUE9SVEVEOwotI2VuZGlmIC8qIEFUX0xFQVNUX09ORV9CVUlMVElOX0tERiAqLwotICAgIH0gZWxzZSBpZiAoUFNBX0FMR19JU19LRVlfREVSSVZBVElPTihhbGcpKSB7Ci0jaWYgZGVmaW5lZChBVF9MRUFTVF9PTkVfQlVJTFRJTl9LREYpCi0gICAgICAgIHN0YXR1cyA9IHBzYV9rZXlfZGVyaXZhdGlvbl9zZXR1cF9rZGYob3BlcmF0aW9uLCBhbGcpOwotI2Vsc2UKLSAgICAgICAgcmV0dXJuIFBTQV9FUlJPUl9OT1RfU1VQUE9SVEVEOwotI2VuZGlmIC8qIEFUX0xFQVNUX09ORV9CVUlMVElOX0tERiAqLwotICAgIH0gZWxzZSB7Ci0gICAgICAgIHJldHVybiBQU0FfRVJST1JfSU5WQUxJRF9BUkdVTUVOVDsKLSAgICB9Ci0KLSAgICBpZiAoc3RhdHVzID09IFBTQV9TVUNDRVNTKSB7Ci0gICAgICAgIG9wZXJhdGlvbi0+YWxnID0gYWxnOwotICAgIH0KLSAgICByZXR1cm4gc3RhdHVzOwotfQotCi0jaWYgZGVmaW5lZChCVUlMVElOX0FMR19BTllfSEtERikKLXN0YXRpYyBwc2Ffc3RhdHVzX3QgcHNhX2hrZGZfaW5wdXQocHNhX2hrZGZfa2V5X2Rlcml2YXRpb25fdCAqaGtkZiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHNhX2FsZ29yaXRobV90IGtkZl9hbGcsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBzYV9rZXlfZGVyaXZhdGlvbl9zdGVwX3Qgc3RlcCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdWludDhfdCAqZGF0YSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IGRhdGFfbGVuZ3RoKQotewotICAgIHBzYV9hbGdvcml0aG1fdCBoYXNoX2FsZyA9IFBTQV9BTEdfSEtERl9HRVRfSEFTSChrZGZfYWxnKTsKLSAgICBwc2Ffc3RhdHVzX3Qgc3RhdHVzOwotICAgIHN3aXRjaCAoc3RlcCkgewotICAgICAgICBjYXNlIFBTQV9LRVlfREVSSVZBVElPTl9JTlBVVF9TQUxUOgotI2lmIGRlZmluZWQoTUJFRFRMU19QU0FfQlVJTFRJTl9BTEdfSEtERl9FWFBBTkQpCi0gICAgICAgICAgICBpZiAoUFNBX0FMR19JU19IS0RGX0VYUEFORChrZGZfYWxnKSkgewotICAgICAgICAgICAgICAgIHJldHVybiBQU0FfRVJST1JfSU5WQUxJRF9BUkdVTUVOVDsKLSAgICAgICAgICAgIH0KLSNlbmRpZiAvKiBNQkVEVExTX1BTQV9CVUlMVElOX0FMR19IS0RGX0VYUEFORCAqLwotICAgICAgICAgICAgaWYgKGhrZGYtPnN0YXRlICE9IEhLREZfU1RBVEVfSU5JVCkgewotICAgICAgICAgICAgICAgIHJldHVybiBQU0FfRVJST1JfQkFEX1NUQVRFOwotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICBzdGF0dXMgPSBwc2Ffa2V5X2Rlcml2YXRpb25fc3RhcnRfaG1hYygmaGtkZi0+aG1hYywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYXNoX2FsZywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhLCBkYXRhX2xlbmd0aCk7Ci0gICAgICAgICAgICAgICAgaWYgKHN0YXR1cyAhPSBQU0FfU1VDQ0VTUykgewotICAgICAgICAgICAgICAgICAgICByZXR1cm4gc3RhdHVzOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICBoa2RmLT5zdGF0ZSA9IEhLREZfU1RBVEVfU1RBUlRFRDsKLSAgICAgICAgICAgICAgICByZXR1cm4gUFNBX1NVQ0NFU1M7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIGNhc2UgUFNBX0tFWV9ERVJJVkFUSU9OX0lOUFVUX1NFQ1JFVDoKLSNpZiBkZWZpbmVkKE1CRURUTFNfUFNBX0JVSUxUSU5fQUxHX0hLREZfRVhQQU5EKQotICAgICAgICAgICAgaWYgKFBTQV9BTEdfSVNfSEtERl9FWFBBTkQoa2RmX2FsZykpIHsKLSAgICAgICAgICAgICAgICAvKiBXZSBzaG91bGRuJ3QgYmUgaW4gZGlmZmVyZW50IHN0YXRlIGFzIEhLREZfRVhQQU5EIG9ubHkgYWxsb3dzCi0gICAgICAgICAgICAgICAgICogdHdvIGlucHV0czogU0VDUkVUICh0aGlzIGNhc2UpIGFuZCBJTkZPIHdoaWNoIGRvZXMgbm90IG1vZGlmeQotICAgICAgICAgICAgICAgICAqIHRoZSBzdGF0ZS4gSXQgY291bGQgaGFwcGVuIG9ubHkgaWYgdGhlIGhrZGYKLSAgICAgICAgICAgICAgICAgKiBvYmplY3Qgd2FzIGNvcnJ1cHRlZC4gKi8KLSAgICAgICAgICAgICAgICBpZiAoaGtkZi0+c3RhdGUgIT0gSEtERl9TVEFURV9JTklUKSB7Ci0gICAgICAgICAgICAgICAgICAgIHJldHVybiBQU0FfRVJST1JfQkFEX1NUQVRFOwotICAgICAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgICAgIC8qIEFsbG93IG9ubHkgaW5wdXQgdGhhdCBmaXRzIGV4cGVjdGVkIHByayBzaXplICovCi0gICAgICAgICAgICAgICAgaWYgKGRhdGFfbGVuZ3RoICE9IFBTQV9IQVNIX0xFTkdUSChoYXNoX2FsZykpIHsKLSAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFBTQV9FUlJPUl9JTlZBTElEX0FSR1VNRU5UOwotICAgICAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgICAgIG1lbWNweShoa2RmLT5wcmssIGRhdGEsIGRhdGFfbGVuZ3RoKTsKLSAgICAgICAgICAgIH0gZWxzZQotI2VuZGlmIC8qIE1CRURUTFNfUFNBX0JVSUxUSU5fQUxHX0hLREZfRVhQQU5EICovCi0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgLyogSEtERjogSWYgbm8gc2FsdCB3YXMgcHJvdmlkZWQsIHVzZSBhbiBlbXB0eSBzYWx0LgotICAgICAgICAgICAgICAgICAqIEhLREYtRVhUUkFDVDogc2FsdCBpcyBtYW5kYXRvcnkuICovCi0gICAgICAgICAgICAgICAgaWYgKGhrZGYtPnN0YXRlID09IEhLREZfU1RBVEVfSU5JVCkgewotI2lmIGRlZmluZWQoTUJFRFRMU19QU0FfQlVJTFRJTl9BTEdfSEtERl9FWFRSQUNUKQotICAgICAgICAgICAgICAgICAgICBpZiAoUFNBX0FMR19JU19IS0RGX0VYVFJBQ1Qoa2RmX2FsZykpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBQU0FfRVJST1JfQkFEX1NUQVRFOwotICAgICAgICAgICAgICAgICAgICB9Ci0jZW5kaWYgLyogTUJFRFRMU19QU0FfQlVJTFRJTl9BTEdfSEtERl9FWFRSQUNUICovCi0gICAgICAgICAgICAgICAgICAgIHN0YXR1cyA9IHBzYV9rZXlfZGVyaXZhdGlvbl9zdGFydF9obWFjKCZoa2RmLT5obWFjLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYXNoX2FsZywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCwgMCk7Ci0gICAgICAgICAgICAgICAgICAgIGlmIChzdGF0dXMgIT0gUFNBX1NVQ0NFU1MpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBzdGF0dXM7Ci0gICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgaGtkZi0+c3RhdGUgPSBIS0RGX1NUQVRFX1NUQVJURUQ7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIGlmIChoa2RmLT5zdGF0ZSAhPSBIS0RGX1NUQVRFX1NUQVJURUQpIHsKLSAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFBTQV9FUlJPUl9CQURfU1RBVEU7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIHN0YXR1cyA9IHBzYV9tYWNfdXBkYXRlKCZoa2RmLT5obWFjLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEsIGRhdGFfbGVuZ3RoKTsKLSAgICAgICAgICAgICAgICBpZiAoc3RhdHVzICE9IFBTQV9TVUNDRVNTKSB7Ci0gICAgICAgICAgICAgICAgICAgIHJldHVybiBzdGF0dXM7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIHN0YXR1cyA9IHBzYV9tYWNfc2lnbl9maW5pc2goJmhrZGYtPmhtYWMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoa2RmLT5wcmssCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplb2YoaGtkZi0+cHJrKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZkYXRhX2xlbmd0aCk7Ci0gICAgICAgICAgICAgICAgaWYgKHN0YXR1cyAhPSBQU0FfU1VDQ0VTUykgewotICAgICAgICAgICAgICAgICAgICByZXR1cm4gc3RhdHVzOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgaGtkZi0+c3RhdGUgPSBIS0RGX1NUQVRFX0tFWUVEOwotICAgICAgICAgICAgaGtkZi0+YmxvY2tfbnVtYmVyID0gMDsKLSNpZiBkZWZpbmVkKE1CRURUTFNfUFNBX0JVSUxUSU5fQUxHX0hLREZfRVhUUkFDVCkKLSAgICAgICAgICAgIGlmIChQU0FfQUxHX0lTX0hLREZfRVhUUkFDVChrZGZfYWxnKSkgewotICAgICAgICAgICAgICAgIC8qIFRoZSBvbmx5IGJsb2NrIG9mIG91dHB1dCBpcyB0aGUgUFJLLiAqLwotICAgICAgICAgICAgICAgIG1lbWNweShoa2RmLT5vdXRwdXRfYmxvY2ssIGhrZGYtPnByaywgUFNBX0hBU0hfTEVOR1RIKGhhc2hfYWxnKSk7Ci0gICAgICAgICAgICAgICAgaGtkZi0+b2Zmc2V0X2luX2Jsb2NrID0gMDsKLSAgICAgICAgICAgIH0gZWxzZQotI2VuZGlmIC8qIE1CRURUTFNfUFNBX0JVSUxUSU5fQUxHX0hLREZfRVhUUkFDVCAqLwotICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIC8qIEJsb2NrIDAgaXMgZW1wdHksIGFuZCB0aGUgbmV4dCBibG9jayB3aWxsIGJlCi0gICAgICAgICAgICAgICAgICogZ2VuZXJhdGVkIGJ5IHBzYV9rZXlfZGVyaXZhdGlvbl9oa2RmX3JlYWQoKS4gKi8KLSAgICAgICAgICAgICAgICBoa2RmLT5vZmZzZXRfaW5fYmxvY2sgPSBQU0FfSEFTSF9MRU5HVEgoaGFzaF9hbGcpOwotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICByZXR1cm4gUFNBX1NVQ0NFU1M7Ci0gICAgICAgIGNhc2UgUFNBX0tFWV9ERVJJVkFUSU9OX0lOUFVUX0lORk86Ci0jaWYgZGVmaW5lZChNQkVEVExTX1BTQV9CVUlMVElOX0FMR19IS0RGX0VYVFJBQ1QpCi0gICAgICAgICAgICBpZiAoUFNBX0FMR19JU19IS0RGX0VYVFJBQ1Qoa2RmX2FsZykpIHsKLSAgICAgICAgICAgICAgICByZXR1cm4gUFNBX0VSUk9SX0lOVkFMSURfQVJHVU1FTlQ7Ci0gICAgICAgICAgICB9Ci0jZW5kaWYgLyogTUJFRFRMU19QU0FfQlVJTFRJTl9BTEdfSEtERl9FWFRSQUNUICovCi0jaWYgZGVmaW5lZChNQkVEVExTX1BTQV9CVUlMVElOX0FMR19IS0RGX0VYUEFORCkKLSAgICAgICAgICAgIGlmIChQU0FfQUxHX0lTX0hLREZfRVhQQU5EKGtkZl9hbGcpICYmCi0gICAgICAgICAgICAgICAgaGtkZi0+c3RhdGUgPT0gSEtERl9TVEFURV9JTklUKSB7Ci0gICAgICAgICAgICAgICAgcmV0dXJuIFBTQV9FUlJPUl9CQURfU1RBVEU7Ci0gICAgICAgICAgICB9Ci0jZW5kaWYgLyogTUJFRFRMU19QU0FfQlVJTFRJTl9BTEdfSEtERl9FWFRSQUNUICovCi0gICAgICAgICAgICBpZiAoaGtkZi0+c3RhdGUgPT0gSEtERl9TVEFURV9PVVRQVVQpIHsKLSAgICAgICAgICAgICAgICByZXR1cm4gUFNBX0VSUk9SX0JBRF9TVEFURTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmIChoa2RmLT5pbmZvX3NldCkgewotICAgICAgICAgICAgICAgIHJldHVybiBQU0FfRVJST1JfQkFEX1NUQVRFOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgaGtkZi0+aW5mb19sZW5ndGggPSBkYXRhX2xlbmd0aDsKLSAgICAgICAgICAgIGlmIChkYXRhX2xlbmd0aCAhPSAwKSB7Ci0gICAgICAgICAgICAgICAgaGtkZi0+aW5mbyA9IG1iZWR0bHNfY2FsbG9jKDEsIGRhdGFfbGVuZ3RoKTsKLSAgICAgICAgICAgICAgICBpZiAoaGtkZi0+aW5mbyA9PSBOVUxMKSB7Ci0gICAgICAgICAgICAgICAgICAgIHJldHVybiBQU0FfRVJST1JfSU5TVUZGSUNJRU5UX01FTU9SWTsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgbWVtY3B5KGhrZGYtPmluZm8sIGRhdGEsIGRhdGFfbGVuZ3RoKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGhrZGYtPmluZm9fc2V0ID0gMTsKLSAgICAgICAgICAgIHJldHVybiBQU0FfU1VDQ0VTUzsKLSAgICAgICAgZGVmYXVsdDoKLSAgICAgICAgICAgIHJldHVybiBQU0FfRVJST1JfSU5WQUxJRF9BUkdVTUVOVDsKLSAgICB9Ci19Ci0jZW5kaWYgLyogQlVJTFRJTl9BTEdfQU5ZX0hLREYgKi8KLQotI2lmIGRlZmluZWQoTUJFRFRMU19QU0FfQlVJTFRJTl9BTEdfVExTMTJfUFJGKSB8fCBcCi0gICAgZGVmaW5lZChNQkVEVExTX1BTQV9CVUlMVElOX0FMR19UTFMxMl9QU0tfVE9fTVMpCi1zdGF0aWMgcHNhX3N0YXR1c190IHBzYV90bHMxMl9wcmZfc2V0X3NlZWQocHNhX3RsczEyX3ByZl9rZXlfZGVyaXZhdGlvbl90ICpwcmYsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdWludDhfdCAqZGF0YSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgZGF0YV9sZW5ndGgpCi17Ci0gICAgaWYgKHByZi0+c3RhdGUgIT0gUFNBX1RMUzEyX1BSRl9TVEFURV9JTklUKSB7Ci0gICAgICAgIHJldHVybiBQU0FfRVJST1JfQkFEX1NUQVRFOwotICAgIH0KLQotICAgIGlmIChkYXRhX2xlbmd0aCAhPSAwKSB7Ci0gICAgICAgIHByZi0+c2VlZCA9IG1iZWR0bHNfY2FsbG9jKDEsIGRhdGFfbGVuZ3RoKTsKLSAgICAgICAgaWYgKHByZi0+c2VlZCA9PSBOVUxMKSB7Ci0gICAgICAgICAgICByZXR1cm4gUFNBX0VSUk9SX0lOU1VGRklDSUVOVF9NRU1PUlk7Ci0gICAgICAgIH0KLQotICAgICAgICBtZW1jcHkocHJmLT5zZWVkLCBkYXRhLCBkYXRhX2xlbmd0aCk7Ci0gICAgICAgIHByZi0+c2VlZF9sZW5ndGggPSBkYXRhX2xlbmd0aDsKLSAgICB9Ci0KLSAgICBwcmYtPnN0YXRlID0gUFNBX1RMUzEyX1BSRl9TVEFURV9TRUVEX1NFVDsKLQotICAgIHJldHVybiBQU0FfU1VDQ0VTUzsKLX0KLQotc3RhdGljIHBzYV9zdGF0dXNfdCBwc2FfdGxzMTJfcHJmX3NldF9rZXkocHNhX3RsczEyX3ByZl9rZXlfZGVyaXZhdGlvbl90ICpwcmYsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1aW50OF90ICpkYXRhLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IGRhdGFfbGVuZ3RoKQotewotICAgIGlmIChwcmYtPnN0YXRlICE9IFBTQV9UTFMxMl9QUkZfU1RBVEVfU0VFRF9TRVQgJiYKLSAgICAgICAgcHJmLT5zdGF0ZSAhPSBQU0FfVExTMTJfUFJGX1NUQVRFX09USEVSX0tFWV9TRVQpIHsKLSAgICAgICAgcmV0dXJuIFBTQV9FUlJPUl9CQURfU1RBVEU7Ci0gICAgfQotCi0gICAgaWYgKGRhdGFfbGVuZ3RoICE9IDApIHsKLSAgICAgICAgcHJmLT5zZWNyZXQgPSBtYmVkdGxzX2NhbGxvYygxLCBkYXRhX2xlbmd0aCk7Ci0gICAgICAgIGlmIChwcmYtPnNlY3JldCA9PSBOVUxMKSB7Ci0gICAgICAgICAgICByZXR1cm4gUFNBX0VSUk9SX0lOU1VGRklDSUVOVF9NRU1PUlk7Ci0gICAgICAgIH0KLQotICAgICAgICBtZW1jcHkocHJmLT5zZWNyZXQsIGRhdGEsIGRhdGFfbGVuZ3RoKTsKLSAgICAgICAgcHJmLT5zZWNyZXRfbGVuZ3RoID0gZGF0YV9sZW5ndGg7Ci0gICAgfQotCi0gICAgcHJmLT5zdGF0ZSA9IFBTQV9UTFMxMl9QUkZfU1RBVEVfS0VZX1NFVDsKLQotICAgIHJldHVybiBQU0FfU1VDQ0VTUzsKLX0KLQotc3RhdGljIHBzYV9zdGF0dXNfdCBwc2FfdGxzMTJfcHJmX3NldF9sYWJlbChwc2FfdGxzMTJfcHJmX2tleV9kZXJpdmF0aW9uX3QgKnByZiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdWludDhfdCAqZGF0YSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IGRhdGFfbGVuZ3RoKQotewotICAgIGlmIChwcmYtPnN0YXRlICE9IFBTQV9UTFMxMl9QUkZfU1RBVEVfS0VZX1NFVCkgewotICAgICAgICByZXR1cm4gUFNBX0VSUk9SX0JBRF9TVEFURTsKLSAgICB9Ci0KLSAgICBpZiAoZGF0YV9sZW5ndGggIT0gMCkgewotICAgICAgICBwcmYtPmxhYmVsID0gbWJlZHRsc19jYWxsb2MoMSwgZGF0YV9sZW5ndGgpOwotICAgICAgICBpZiAocHJmLT5sYWJlbCA9PSBOVUxMKSB7Ci0gICAgICAgICAgICByZXR1cm4gUFNBX0VSUk9SX0lOU1VGRklDSUVOVF9NRU1PUlk7Ci0gICAgICAgIH0KLQotICAgICAgICBtZW1jcHkocHJmLT5sYWJlbCwgZGF0YSwgZGF0YV9sZW5ndGgpOwotICAgICAgICBwcmYtPmxhYmVsX2xlbmd0aCA9IGRhdGFfbGVuZ3RoOwotICAgIH0KLQotICAgIHByZi0+c3RhdGUgPSBQU0FfVExTMTJfUFJGX1NUQVRFX0xBQkVMX1NFVDsKLQotICAgIHJldHVybiBQU0FfU1VDQ0VTUzsKLX0KLQotc3RhdGljIHBzYV9zdGF0dXNfdCBwc2FfdGxzMTJfcHJmX2lucHV0KHBzYV90bHMxMl9wcmZfa2V5X2Rlcml2YXRpb25fdCAqcHJmLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBzYV9rZXlfZGVyaXZhdGlvbl9zdGVwX3Qgc3RlcCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1aW50OF90ICpkYXRhLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBkYXRhX2xlbmd0aCkKLXsKLSAgICBzd2l0Y2ggKHN0ZXApIHsKLSAgICAgICAgY2FzZSBQU0FfS0VZX0RFUklWQVRJT05fSU5QVVRfU0VFRDoKLSAgICAgICAgICAgIHJldHVybiBwc2FfdGxzMTJfcHJmX3NldF9zZWVkKHByZiwgZGF0YSwgZGF0YV9sZW5ndGgpOwotICAgICAgICBjYXNlIFBTQV9LRVlfREVSSVZBVElPTl9JTlBVVF9TRUNSRVQ6Ci0gICAgICAgICAgICByZXR1cm4gcHNhX3RsczEyX3ByZl9zZXRfa2V5KHByZiwgZGF0YSwgZGF0YV9sZW5ndGgpOwotICAgICAgICBjYXNlIFBTQV9LRVlfREVSSVZBVElPTl9JTlBVVF9MQUJFTDoKLSAgICAgICAgICAgIHJldHVybiBwc2FfdGxzMTJfcHJmX3NldF9sYWJlbChwcmYsIGRhdGEsIGRhdGFfbGVuZ3RoKTsKLSAgICAgICAgZGVmYXVsdDoKLSAgICAgICAgICAgIHJldHVybiBQU0FfRVJST1JfSU5WQUxJRF9BUkdVTUVOVDsKLSAgICB9Ci19Ci0jZW5kaWYgLyogTUJFRFRMU19QU0FfQlVJTFRJTl9BTEdfVExTMTJfUFJGKSB8fAotICAgICAgICAqIE1CRURUTFNfUFNBX0JVSUxUSU5fQUxHX1RMUzEyX1BTS19UT19NUyAqLwotCi0jaWYgZGVmaW5lZChNQkVEVExTX1BTQV9CVUlMVElOX0FMR19UTFMxMl9QU0tfVE9fTVMpCi1zdGF0aWMgcHNhX3N0YXR1c190IHBzYV90bHMxMl9wcmZfcHNrX3RvX21zX3NldF9rZXkoCi0gICAgcHNhX3RsczEyX3ByZl9rZXlfZGVyaXZhdGlvbl90ICpwcmYsCi0gICAgY29uc3QgdWludDhfdCAqZGF0YSwKLSAgICBzaXplX3QgZGF0YV9sZW5ndGgpCi17Ci0gICAgcHNhX3N0YXR1c190IHN0YXR1czsKLSAgICBjb25zdCBzaXplX3QgcG1zX2xlbiA9IChwcmYtPnN0YXRlID09IFBTQV9UTFMxMl9QUkZfU1RBVEVfT1RIRVJfS0VZX1NFVCA/Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgNCArIGRhdGFfbGVuZ3RoICsgcHJmLT5vdGhlcl9zZWNyZXRfbGVuZ3RoIDoKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICA0ICsgMiAqIGRhdGFfbGVuZ3RoKTsKLQotICAgIGlmIChkYXRhX2xlbmd0aCA+IFBTQV9UTFMxMl9QU0tfVE9fTVNfUFNLX01BWF9TSVpFKSB7Ci0gICAgICAgIHJldHVybiBQU0FfRVJST1JfSU5WQUxJRF9BUkdVTUVOVDsKLSAgICB9Ci0KLSAgICB1aW50OF90ICpwbXMgPSBtYmVkdGxzX2NhbGxvYygxLCBwbXNfbGVuKTsKLSAgICBpZiAocG1zID09IE5VTEwpIHsKLSAgICAgICAgcmV0dXJuIFBTQV9FUlJPUl9JTlNVRkZJQ0lFTlRfTUVNT1JZOwotICAgIH0KLSAgICB1aW50OF90ICpjdXIgPSBwbXM7Ci0KLSAgICAvKiBwdXJlLVBTSzoKLSAgICAgKiBRdW90aW5nIFJGQyA0Mjc5LCBTZWN0aW9uIDI6Ci0gICAgICoKLSAgICAgKiBUaGUgcHJlbWFzdGVyIHNlY3JldCBpcyBmb3JtZWQgYXMgZm9sbG93czogaWYgdGhlIFBTSyBpcyBOIG9jdGV0cwotICAgICAqIGxvbmcsIGNvbmNhdGVuYXRlIGEgdWludDE2IHdpdGggdGhlIHZhbHVlIE4sIE4gemVybyBvY3RldHMsIGEgc2Vjb25kCi0gICAgICogdWludDE2IHdpdGggdGhlIHZhbHVlIE4sIGFuZCB0aGUgUFNLIGl0c2VsZi4KLSAgICAgKgotICAgICAqIG1peGVkLVBTSzoKLSAgICAgKiBJbiBhIERIRS1QU0ssIFJTQS1QU0ssIEVDREhFLVBTSyB0aGUgcHJlbWFzdGVyIHNlY3JldCBpcyBmb3JtZWQgYXMKLSAgICAgKiBmb2xsb3dzOiBjb25jYXRlbmF0ZSBhIHVpbnQxNiB3aXRoIHRoZSBsZW5ndGggb2YgdGhlIG90aGVyIHNlY3JldCwKLSAgICAgKiB0aGUgb3RoZXIgc2VjcmV0IGl0c2VsZiwgdWludDE2IHdpdGggdGhlIGxlbmd0aCBvZiBQU0ssIGFuZCB0aGUKLSAgICAgKiBQU0sgaXRzZWxmLgotICAgICAqIEZvciBkZXRhaWxzIHBsZWFzZSBjaGVjazoKLSAgICAgKiAtIFJGQyA0Mjc5LCBTZWN0aW9uIDQgZm9yIHRoZSBkZWZpbml0aW9uIG9mIFJTQS1QU0ssCi0gICAgICogLSBSRkMgNDI3OSwgU2VjdGlvbiAzIGZvciB0aGUgZGVmaW5pdGlvbiBvZiBESEUtUFNLLAotICAgICAqIC0gUkZDIDU0ODkgZm9yIHRoZSBkZWZpbml0aW9uIG9mIEVDREhFLVBTSy4KLSAgICAgKi8KLQotICAgIGlmIChwcmYtPnN0YXRlID09IFBTQV9UTFMxMl9QUkZfU1RBVEVfT1RIRVJfS0VZX1NFVCkgewotICAgICAgICAqY3VyKysgPSBNQkVEVExTX0JZVEVfMShwcmYtPm90aGVyX3NlY3JldF9sZW5ndGgpOwotICAgICAgICAqY3VyKysgPSBNQkVEVExTX0JZVEVfMChwcmYtPm90aGVyX3NlY3JldF9sZW5ndGgpOwotICAgICAgICBpZiAocHJmLT5vdGhlcl9zZWNyZXRfbGVuZ3RoICE9IDApIHsKLSAgICAgICAgICAgIG1lbWNweShjdXIsIHByZi0+b3RoZXJfc2VjcmV0LCBwcmYtPm90aGVyX3NlY3JldF9sZW5ndGgpOwotICAgICAgICAgICAgbWJlZHRsc19wbGF0Zm9ybV96ZXJvaXplKHByZi0+b3RoZXJfc2VjcmV0LCBwcmYtPm90aGVyX3NlY3JldF9sZW5ndGgpOwotICAgICAgICAgICAgY3VyICs9IHByZi0+b3RoZXJfc2VjcmV0X2xlbmd0aDsKLSAgICAgICAgfQotICAgIH0gZWxzZSB7Ci0gICAgICAgICpjdXIrKyA9IE1CRURUTFNfQllURV8xKGRhdGFfbGVuZ3RoKTsKLSAgICAgICAgKmN1cisrID0gTUJFRFRMU19CWVRFXzAoZGF0YV9sZW5ndGgpOwotICAgICAgICBtZW1zZXQoY3VyLCAwLCBkYXRhX2xlbmd0aCk7Ci0gICAgICAgIGN1ciArPSBkYXRhX2xlbmd0aDsKLSAgICB9Ci0KLSAgICAqY3VyKysgPSBNQkVEVExTX0JZVEVfMShkYXRhX2xlbmd0aCk7Ci0gICAgKmN1cisrID0gTUJFRFRMU19CWVRFXzAoZGF0YV9sZW5ndGgpOwotICAgIG1lbWNweShjdXIsIGRhdGEsIGRhdGFfbGVuZ3RoKTsKLSAgICBjdXIgKz0gZGF0YV9sZW5ndGg7Ci0KLSAgICBzdGF0dXMgPSBwc2FfdGxzMTJfcHJmX3NldF9rZXkocHJmLCBwbXMsIChzaXplX3QpIChjdXIgLSBwbXMpKTsKLQotICAgIG1iZWR0bHNfemVyb2l6ZV9hbmRfZnJlZShwbXMsIHBtc19sZW4pOwotICAgIHJldHVybiBzdGF0dXM7Ci19Ci0KLXN0YXRpYyBwc2Ffc3RhdHVzX3QgcHNhX3RsczEyX3ByZl9wc2tfdG9fbXNfc2V0X290aGVyX2tleSgKLSAgICBwc2FfdGxzMTJfcHJmX2tleV9kZXJpdmF0aW9uX3QgKnByZiwKLSAgICBjb25zdCB1aW50OF90ICpkYXRhLAotICAgIHNpemVfdCBkYXRhX2xlbmd0aCkKLXsKLSAgICBpZiAocHJmLT5zdGF0ZSAhPSBQU0FfVExTMTJfUFJGX1NUQVRFX1NFRURfU0VUKSB7Ci0gICAgICAgIHJldHVybiBQU0FfRVJST1JfQkFEX1NUQVRFOwotICAgIH0KLQotICAgIGlmIChkYXRhX2xlbmd0aCAhPSAwKSB7Ci0gICAgICAgIHByZi0+b3RoZXJfc2VjcmV0ID0gbWJlZHRsc19jYWxsb2MoMSwgZGF0YV9sZW5ndGgpOwotICAgICAgICBpZiAocHJmLT5vdGhlcl9zZWNyZXQgPT0gTlVMTCkgewotICAgICAgICAgICAgcmV0dXJuIFBTQV9FUlJPUl9JTlNVRkZJQ0lFTlRfTUVNT1JZOwotICAgICAgICB9Ci0KLSAgICAgICAgbWVtY3B5KHByZi0+b3RoZXJfc2VjcmV0LCBkYXRhLCBkYXRhX2xlbmd0aCk7Ci0gICAgICAgIHByZi0+b3RoZXJfc2VjcmV0X2xlbmd0aCA9IGRhdGFfbGVuZ3RoOwotICAgIH0gZWxzZSB7Ci0gICAgICAgIHByZi0+b3RoZXJfc2VjcmV0X2xlbmd0aCA9IDA7Ci0gICAgfQotCi0gICAgcHJmLT5zdGF0ZSA9IFBTQV9UTFMxMl9QUkZfU1RBVEVfT1RIRVJfS0VZX1NFVDsKLQotICAgIHJldHVybiBQU0FfU1VDQ0VTUzsKLX0KLQotc3RhdGljIHBzYV9zdGF0dXNfdCBwc2FfdGxzMTJfcHJmX3Bza190b19tc19pbnB1dCgKLSAgICBwc2FfdGxzMTJfcHJmX2tleV9kZXJpdmF0aW9uX3QgKnByZiwKLSAgICBwc2Ffa2V5X2Rlcml2YXRpb25fc3RlcF90IHN0ZXAsCi0gICAgY29uc3QgdWludDhfdCAqZGF0YSwKLSAgICBzaXplX3QgZGF0YV9sZW5ndGgpCi17Ci0gICAgc3dpdGNoIChzdGVwKSB7Ci0gICAgICAgIGNhc2UgUFNBX0tFWV9ERVJJVkFUSU9OX0lOUFVUX1NFQ1JFVDoKLSAgICAgICAgICAgIHJldHVybiBwc2FfdGxzMTJfcHJmX3Bza190b19tc19zZXRfa2V5KHByZiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEsIGRhdGFfbGVuZ3RoKTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIFBTQV9LRVlfREVSSVZBVElPTl9JTlBVVF9PVEhFUl9TRUNSRVQ6Ci0gICAgICAgICAgICByZXR1cm4gcHNhX3RsczEyX3ByZl9wc2tfdG9fbXNfc2V0X290aGVyX2tleShwcmYsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YV9sZW5ndGgpOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGRlZmF1bHQ6Ci0gICAgICAgICAgICByZXR1cm4gcHNhX3RsczEyX3ByZl9pbnB1dChwcmYsIHN0ZXAsIGRhdGEsIGRhdGFfbGVuZ3RoKTsKLSAgICAgICAgICAgIGJyZWFrOwotCi0gICAgfQotfQotI2VuZGlmIC8qIE1CRURUTFNfUFNBX0JVSUxUSU5fQUxHX1RMUzEyX1BTS19UT19NUyAqLwotCi0jaWYgZGVmaW5lZChNQkVEVExTX1BTQV9CVUlMVElOX0FMR19UTFMxMl9FQ0pQQUtFX1RPX1BNUykKLXN0YXRpYyBwc2Ffc3RhdHVzX3QgcHNhX3RsczEyX2VjanBha2VfdG9fcG1zX2lucHV0KAotICAgIHBzYV90bHMxMl9lY2pwYWtlX3RvX3Btc190ICplY2pwYWtlLAotICAgIHBzYV9rZXlfZGVyaXZhdGlvbl9zdGVwX3Qgc3RlcCwKLSAgICBjb25zdCB1aW50OF90ICpkYXRhLAotICAgIHNpemVfdCBkYXRhX2xlbmd0aCkKLXsKLSAgICBpZiAoZGF0YV9sZW5ndGggIT0gUFNBX1RMUzEyX0VDSlBBS0VfVE9fUE1TX0lOUFVUX1NJWkUgfHwKLSAgICAgICAgc3RlcCAhPSBQU0FfS0VZX0RFUklWQVRJT05fSU5QVVRfU0VDUkVUKSB7Ci0gICAgICAgIHJldHVybiBQU0FfRVJST1JfSU5WQUxJRF9BUkdVTUVOVDsKLSAgICB9Ci0KLSAgICAvKiBDaGVjayBpZiB0aGUgcGFzc2VkIHBvaW50IGlzIGluIGFuIHVuY29tcHJlc3NlZCBmb3JtICovCi0gICAgaWYgKGRhdGFbMF0gIT0gMHgwNCkgewotICAgICAgICByZXR1cm4gUFNBX0VSUk9SX0lOVkFMSURfQVJHVU1FTlQ7Ci0gICAgfQotCi0gICAgLyogT25seSBLLlggaGFzIHRvIGJlIGV4dHJhY3RlZCAtIGJ5dGVzIDEgdG8gMzIgaW5jbHVzaXZlLiAqLwotICAgIG1lbWNweShlY2pwYWtlLT5kYXRhLCBkYXRhICsgMSwgUFNBX1RMUzEyX0VDSlBBS0VfVE9fUE1TX0RBVEFfU0laRSk7Ci0KLSAgICByZXR1cm4gUFNBX1NVQ0NFU1M7Ci19Ci0jZW5kaWYgLyogTUJFRFRMU19QU0FfQlVJTFRJTl9BTEdfVExTMTJfRUNKUEFLRV9UT19QTVMgKi8KLQotI2lmIGRlZmluZWQoUFNBX0hBVkVfU09GVF9QQktERjIpCi1zdGF0aWMgcHNhX3N0YXR1c190IHBzYV9wYmtkZjJfc2V0X2lucHV0X2Nvc3QoCi0gICAgcHNhX3Bia2RmMl9rZXlfZGVyaXZhdGlvbl90ICpwYmtkZjIsCi0gICAgcHNhX2tleV9kZXJpdmF0aW9uX3N0ZXBfdCBzdGVwLAotICAgIHVpbnQ2NF90IGRhdGEpCi17Ci0gICAgaWYgKHN0ZXAgIT0gUFNBX0tFWV9ERVJJVkFUSU9OX0lOUFVUX0NPU1QpIHsKLSAgICAgICAgcmV0dXJuIFBTQV9FUlJPUl9JTlZBTElEX0FSR1VNRU5UOwotICAgIH0KLQotICAgIGlmIChwYmtkZjItPnN0YXRlICE9IFBTQV9QQktERjJfU1RBVEVfSU5JVCkgewotICAgICAgICByZXR1cm4gUFNBX0VSUk9SX0JBRF9TVEFURTsKLSAgICB9Ci0KLSAgICBpZiAoZGF0YSA+IFBTQV9WRU5ET1JfUEJLREYyX01BWF9JVEVSQVRJT05TKSB7Ci0gICAgICAgIHJldHVybiBQU0FfRVJST1JfTk9UX1NVUFBPUlRFRDsKLSAgICB9Ci0KLSAgICBpZiAoZGF0YSA9PSAwKSB7Ci0gICAgICAgIHJldHVybiBQU0FfRVJST1JfSU5WQUxJRF9BUkdVTUVOVDsKLSAgICB9Ci0KLSAgICBwYmtkZjItPmlucHV0X2Nvc3QgPSBkYXRhOwotICAgIHBia2RmMi0+c3RhdGUgPSBQU0FfUEJLREYyX1NUQVRFX0lOUFVUX0NPU1RfU0VUOwotCi0gICAgcmV0dXJuIFBTQV9TVUNDRVNTOwotfQotCi1zdGF0aWMgcHNhX3N0YXR1c190IHBzYV9wYmtkZjJfc2V0X3NhbHQocHNhX3Bia2RmMl9rZXlfZGVyaXZhdGlvbl90ICpwYmtkZjIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdWludDhfdCAqZGF0YSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgZGF0YV9sZW5ndGgpCi17Ci0gICAgaWYgKHBia2RmMi0+c3RhdGUgPT0gUFNBX1BCS0RGMl9TVEFURV9JTlBVVF9DT1NUX1NFVCkgewotICAgICAgICBwYmtkZjItPnN0YXRlID0gUFNBX1BCS0RGMl9TVEFURV9TQUxUX1NFVDsKLSAgICB9IGVsc2UgaWYgKHBia2RmMi0+c3RhdGUgPT0gUFNBX1BCS0RGMl9TVEFURV9TQUxUX1NFVCkgewotICAgICAgICAvKiBBcHBlbmRpbmcgdG8gZXhpc3Rpbmcgc2FsdC4gTm8gc3RhdGUgY2hhbmdlLiAqLwotICAgIH0gZWxzZSB7Ci0gICAgICAgIHJldHVybiBQU0FfRVJST1JfQkFEX1NUQVRFOwotICAgIH0KLQotICAgIGlmIChkYXRhX2xlbmd0aCA9PSAwKSB7Ci0gICAgICAgIC8qIEFwcGVuZGluZyBhbiBlbXB0eSBzdHJpbmcsIG5vdGhpbmcgdG8gZG8uICovCi0gICAgfSBlbHNlIHsKLSAgICAgICAgdWludDhfdCAqbmV4dF9zYWx0OwotCi0gICAgICAgIG5leHRfc2FsdCA9IG1iZWR0bHNfY2FsbG9jKDEsIGRhdGFfbGVuZ3RoICsgcGJrZGYyLT5zYWx0X2xlbmd0aCk7Ci0gICAgICAgIGlmIChuZXh0X3NhbHQgPT0gTlVMTCkgewotICAgICAgICAgICAgcmV0dXJuIFBTQV9FUlJPUl9JTlNVRkZJQ0lFTlRfTUVNT1JZOwotICAgICAgICB9Ci0KLSAgICAgICAgaWYgKHBia2RmMi0+c2FsdF9sZW5ndGggIT0gMCkgewotICAgICAgICAgICAgbWVtY3B5KG5leHRfc2FsdCwgcGJrZGYyLT5zYWx0LCBwYmtkZjItPnNhbHRfbGVuZ3RoKTsKLSAgICAgICAgfQotICAgICAgICBtZW1jcHkobmV4dF9zYWx0ICsgcGJrZGYyLT5zYWx0X2xlbmd0aCwgZGF0YSwgZGF0YV9sZW5ndGgpOwotICAgICAgICBwYmtkZjItPnNhbHRfbGVuZ3RoICs9IGRhdGFfbGVuZ3RoOwotICAgICAgICBtYmVkdGxzX2ZyZWUocGJrZGYyLT5zYWx0KTsKLSAgICAgICAgcGJrZGYyLT5zYWx0ID0gbmV4dF9zYWx0OwotICAgIH0KLSAgICByZXR1cm4gUFNBX1NVQ0NFU1M7Ci19Ci0KLSNpZiBkZWZpbmVkKE1CRURUTFNfUFNBX0JVSUxUSU5fQUxHX1BCS0RGMl9ITUFDKQotc3RhdGljIHBzYV9zdGF0dXNfdCBwc2FfcGJrZGYyX2htYWNfc2V0X3Bhc3N3b3JkKHBzYV9hbGdvcml0aG1fdCBoYXNoX2FsZywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1aW50OF90ICppbnB1dCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgaW5wdXRfbGVuLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQ4X3QgKm91dHB1dCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgKm91dHB1dF9sZW4pCi17Ci0gICAgcHNhX3N0YXR1c190IHN0YXR1cyA9IFBTQV9TVUNDRVNTOwotICAgIGlmIChpbnB1dF9sZW4gPiBQU0FfSEFTSF9CTE9DS19MRU5HVEgoaGFzaF9hbGcpKSB7Ci0gICAgICAgIHJldHVybiBwc2FfaGFzaF9jb21wdXRlKGhhc2hfYWxnLCBpbnB1dCwgaW5wdXRfbGVuLCBvdXRwdXQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBTQV9ITUFDX01BWF9IQVNIX0JMT0NLX1NJWkUsIG91dHB1dF9sZW4pOwotICAgIH0gZWxzZSBpZiAoaW5wdXRfbGVuID4gMCkgewotICAgICAgICBtZW1jcHkob3V0cHV0LCBpbnB1dCwgaW5wdXRfbGVuKTsKLSAgICB9Ci0gICAgKm91dHB1dF9sZW4gPSBQU0FfSEFTSF9CTE9DS19MRU5HVEgoaGFzaF9hbGcpOwotICAgIHJldHVybiBzdGF0dXM7Ci19Ci0jZW5kaWYgLyogTUJFRFRMU19QU0FfQlVJTFRJTl9BTEdfUEJLREYyX0hNQUMgKi8KLQotI2lmIGRlZmluZWQoTUJFRFRMU19QU0FfQlVJTFRJTl9BTEdfUEJLREYyX0FFU19DTUFDX1BSRl8xMjgpCi1zdGF0aWMgcHNhX3N0YXR1c190IHBzYV9wYmtkZjJfY21hY19zZXRfcGFzc3dvcmQoY29uc3QgdWludDhfdCAqaW5wdXQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IGlucHV0X2xlbiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50OF90ICpvdXRwdXQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90ICpvdXRwdXRfbGVuKQotewotICAgIHBzYV9zdGF0dXNfdCBzdGF0dXMgPSBQU0FfU1VDQ0VTUzsKLSAgICBpZiAoaW5wdXRfbGVuICE9IFBTQV9NQUNfTEVOR1RIKFBTQV9LRVlfVFlQRV9BRVMsIDEyOFUsIFBTQV9BTEdfQ01BQykpIHsKLSAgICAgICAgcHNhX2tleV9hdHRyaWJ1dGVzX3QgYXR0cmlidXRlcyA9IFBTQV9LRVlfQVRUUklCVVRFU19JTklUOwotICAgICAgICB1aW50OF90IHplcm9zWzE2XSA9IHsgMCB9OwotICAgICAgICBwc2Ffc2V0X2tleV90eXBlKCZhdHRyaWJ1dGVzLCBQU0FfS0VZX1RZUEVfQUVTKTsKLSAgICAgICAgcHNhX3NldF9rZXlfYml0cygmYXR0cmlidXRlcywgUFNBX0JZVEVTX1RPX0JJVFMoc2l6ZW9mKHplcm9zKSkpOwotICAgICAgICBwc2Ffc2V0X2tleV91c2FnZV9mbGFncygmYXR0cmlidXRlcywgUFNBX0tFWV9VU0FHRV9TSUdOX01FU1NBR0UpOwotICAgICAgICAvKiBQYXNzaW5nIFBTQV9NQUNfTEVOR1RIKFBTQV9LRVlfVFlQRV9BRVMsIDEyOFUsIFBTQV9BTEdfQ01BQykgYXMKLSAgICAgICAgICogbWFjX3NpemUgYXMgdGhlIGRyaXZlciBmdW5jdGlvbiBzZXRzIG1hY19vdXRwdXRfbGVuZ3RoID0gbWFjX3NpemUKLSAgICAgICAgICogb24gc3VjY2Vzcy4gU2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9NYmVkLVRMUy9tYmVkdGxzL2lzc3Vlcy83ODAxICovCi0gICAgICAgIHN0YXR1cyA9IHBzYV9kcml2ZXJfd3JhcHBlcl9tYWNfY29tcHV0ZSgmYXR0cmlidXRlcywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHplcm9zLCBzaXplb2YoemVyb3MpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUFNBX0FMR19DTUFDLCBpbnB1dCwgaW5wdXRfbGVuLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3V0cHV0LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUFNBX01BQ19MRU5HVEgoUFNBX0tFWV9UWVBFX0FFUywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEyOFUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQU0FfQUxHX0NNQUMpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3V0cHV0X2xlbik7Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgbWVtY3B5KG91dHB1dCwgaW5wdXQsIGlucHV0X2xlbik7Ci0gICAgICAgICpvdXRwdXRfbGVuID0gUFNBX01BQ19MRU5HVEgoUFNBX0tFWV9UWVBFX0FFUywgMTI4VSwgUFNBX0FMR19DTUFDKTsKLSAgICB9Ci0gICAgcmV0dXJuIHN0YXR1czsKLX0KLSNlbmRpZiAvKiBNQkVEVExTX1BTQV9CVUlMVElOX0FMR19QQktERjJfQUVTX0NNQUNfUFJGXzEyOCAqLwotCi1zdGF0aWMgcHNhX3N0YXR1c190IHBzYV9wYmtkZjJfc2V0X3Bhc3N3b3JkKHBzYV9wYmtkZjJfa2V5X2Rlcml2YXRpb25fdCAqcGJrZGYyLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwc2FfYWxnb3JpdGhtX3Qga2RmX2FsZywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdWludDhfdCAqZGF0YSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IGRhdGFfbGVuZ3RoKQotewotICAgIHBzYV9zdGF0dXNfdCBzdGF0dXMgPSBQU0FfU1VDQ0VTUzsKLSAgICBpZiAocGJrZGYyLT5zdGF0ZSAhPSBQU0FfUEJLREYyX1NUQVRFX1NBTFRfU0VUKSB7Ci0gICAgICAgIHJldHVybiBQU0FfRVJST1JfQkFEX1NUQVRFOwotICAgIH0KLQotI2lmIGRlZmluZWQoTUJFRFRMU19QU0FfQlVJTFRJTl9BTEdfUEJLREYyX0hNQUMpCi0gICAgaWYgKFBTQV9BTEdfSVNfUEJLREYyX0hNQUMoa2RmX2FsZykpIHsKLSAgICAgICAgcHNhX2FsZ29yaXRobV90IGhhc2hfYWxnID0gUFNBX0FMR19QQktERjJfSE1BQ19HRVRfSEFTSChrZGZfYWxnKTsKLSAgICAgICAgc3RhdHVzID0gcHNhX3Bia2RmMl9obWFjX3NldF9wYXNzd29yZChoYXNoX2FsZywgZGF0YSwgZGF0YV9sZW5ndGgsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGJrZGYyLT5wYXNzd29yZCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmcGJrZGYyLT5wYXNzd29yZF9sZW5ndGgpOwotICAgIH0gZWxzZQotI2VuZGlmIC8qIE1CRURUTFNfUFNBX0JVSUxUSU5fQUxHX1BCS0RGMl9ITUFDICovCi0jaWYgZGVmaW5lZChNQkVEVExTX1BTQV9CVUlMVElOX0FMR19QQktERjJfQUVTX0NNQUNfUFJGXzEyOCkKLSAgICBpZiAoa2RmX2FsZyA9PSBQU0FfQUxHX1BCS0RGMl9BRVNfQ01BQ19QUkZfMTI4KSB7Ci0gICAgICAgIHN0YXR1cyA9IHBzYV9wYmtkZjJfY21hY19zZXRfcGFzc3dvcmQoZGF0YSwgZGF0YV9sZW5ndGgsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGJrZGYyLT5wYXNzd29yZCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmcGJrZGYyLT5wYXNzd29yZF9sZW5ndGgpOwotICAgIH0gZWxzZQotI2VuZGlmIC8qIE1CRURUTFNfUFNBX0JVSUxUSU5fQUxHX1BCS0RGMl9BRVNfQ01BQ19QUkZfMTI4ICovCi0gICAgewotICAgICAgICByZXR1cm4gUFNBX0VSUk9SX0lOVkFMSURfQVJHVU1FTlQ7Ci0gICAgfQotCi0gICAgcGJrZGYyLT5zdGF0ZSA9IFBTQV9QQktERjJfU1RBVEVfUEFTU1dPUkRfU0VUOwotCi0gICAgcmV0dXJuIHN0YXR1czsKLX0KLQotc3RhdGljIHBzYV9zdGF0dXNfdCBwc2FfcGJrZGYyX2lucHV0KHBzYV9wYmtkZjJfa2V5X2Rlcml2YXRpb25fdCAqcGJrZGYyLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBzYV9hbGdvcml0aG1fdCBrZGZfYWxnLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBzYV9rZXlfZGVyaXZhdGlvbl9zdGVwX3Qgc3RlcCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1aW50OF90ICpkYXRhLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBkYXRhX2xlbmd0aCkKLXsKLSAgICBzd2l0Y2ggKHN0ZXApIHsKLSAgICAgICAgY2FzZSBQU0FfS0VZX0RFUklWQVRJT05fSU5QVVRfU0FMVDoKLSAgICAgICAgICAgIHJldHVybiBwc2FfcGJrZGYyX3NldF9zYWx0KHBia2RmMiwgZGF0YSwgZGF0YV9sZW5ndGgpOwotICAgICAgICBjYXNlIFBTQV9LRVlfREVSSVZBVElPTl9JTlBVVF9QQVNTV09SRDoKLSAgICAgICAgICAgIHJldHVybiBwc2FfcGJrZGYyX3NldF9wYXNzd29yZChwYmtkZjIsIGtkZl9hbGcsIGRhdGEsIGRhdGFfbGVuZ3RoKTsKLSAgICAgICAgZGVmYXVsdDoKLSAgICAgICAgICAgIHJldHVybiBQU0FfRVJST1JfSU5WQUxJRF9BUkdVTUVOVDsKLSAgICB9Ci19Ci0jZW5kaWYgLyogUFNBX0hBVkVfU09GVF9QQktERjIgKi8KLQotLyoqIENoZWNrIHdoZXRoZXIgdGhlIGdpdmVuIGtleSB0eXBlIGlzIGFjY2VwdGFibGUgZm9yIHRoZSBnaXZlbgotICogaW5wdXQgc3RlcCBvZiBhIGtleSBkZXJpdmF0aW9uLgotICoKLSAqIFNlY3JldCBpbnB1dHMgbXVzdCBoYXZlIHRoZSB0eXBlICNQU0FfS0VZX1RZUEVfREVSSVZFLgotICogTm9uLXNlY3JldCBpbnB1dHMgbXVzdCBoYXZlIHRoZSB0eXBlICNQU0FfS0VZX1RZUEVfUkFXX0RBVEEuCi0gKiBCb3RoIHNlY3JldCBhbmQgbm9uLXNlY3JldCBpbnB1dHMgY2FuIGFsdGVybmF0aXZlbHkgaGF2ZSB0aGUgdHlwZQotICogI1BTQV9LRVlfVFlQRV9OT05FLCB3aGljaCBpcyBuZXZlciB0aGUgdHlwZSBvZiBhIGtleSBvYmplY3QsIG1lYW5pbmcKLSAqIHRoYXQgdGhlIGlucHV0IHdhcyBwYXNzZWQgYXMgYSBidWZmZXIgcmF0aGVyIHRoYW4gdmlhIGEga2V5IG9iamVjdC4KLSAqLwotc3RhdGljIGludCBwc2Ffa2V5X2Rlcml2YXRpb25fY2hlY2tfaW5wdXRfdHlwZSgKLSAgICBwc2Ffa2V5X2Rlcml2YXRpb25fc3RlcF90IHN0ZXAsCi0gICAgcHNhX2tleV90eXBlX3Qga2V5X3R5cGUpCi17Ci0gICAgc3dpdGNoIChzdGVwKSB7Ci0gICAgICAgIGNhc2UgUFNBX0tFWV9ERVJJVkFUSU9OX0lOUFVUX1NFQ1JFVDoKLSAgICAgICAgICAgIGlmIChrZXlfdHlwZSA9PSBQU0FfS0VZX1RZUEVfREVSSVZFKSB7Ci0gICAgICAgICAgICAgICAgcmV0dXJuIFBTQV9TVUNDRVNTOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYgKGtleV90eXBlID09IFBTQV9LRVlfVFlQRV9OT05FKSB7Ci0gICAgICAgICAgICAgICAgcmV0dXJuIFBTQV9TVUNDRVNTOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgUFNBX0tFWV9ERVJJVkFUSU9OX0lOUFVUX09USEVSX1NFQ1JFVDoKLSAgICAgICAgICAgIGlmIChrZXlfdHlwZSA9PSBQU0FfS0VZX1RZUEVfREVSSVZFKSB7Ci0gICAgICAgICAgICAgICAgcmV0dXJuIFBTQV9TVUNDRVNTOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYgKGtleV90eXBlID09IFBTQV9LRVlfVFlQRV9OT05FKSB7Ci0gICAgICAgICAgICAgICAgcmV0dXJuIFBTQV9TVUNDRVNTOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgUFNBX0tFWV9ERVJJVkFUSU9OX0lOUFVUX0xBQkVMOgotICAgICAgICBjYXNlIFBTQV9LRVlfREVSSVZBVElPTl9JTlBVVF9TQUxUOgotICAgICAgICBjYXNlIFBTQV9LRVlfREVSSVZBVElPTl9JTlBVVF9JTkZPOgotICAgICAgICBjYXNlIFBTQV9LRVlfREVSSVZBVElPTl9JTlBVVF9TRUVEOgotICAgICAgICAgICAgaWYgKGtleV90eXBlID09IFBTQV9LRVlfVFlQRV9SQVdfREFUQSkgewotICAgICAgICAgICAgICAgIHJldHVybiBQU0FfU1VDQ0VTUzsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmIChrZXlfdHlwZSA9PSBQU0FfS0VZX1RZUEVfTk9ORSkgewotICAgICAgICAgICAgICAgIHJldHVybiBQU0FfU1VDQ0VTUzsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIFBTQV9LRVlfREVSSVZBVElPTl9JTlBVVF9QQVNTV09SRDoKLSAgICAgICAgICAgIGlmIChrZXlfdHlwZSA9PSBQU0FfS0VZX1RZUEVfUEFTU1dPUkQpIHsKLSAgICAgICAgICAgICAgICByZXR1cm4gUFNBX1NVQ0NFU1M7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBpZiAoa2V5X3R5cGUgPT0gUFNBX0tFWV9UWVBFX0RFUklWRSkgewotICAgICAgICAgICAgICAgIHJldHVybiBQU0FfU1VDQ0VTUzsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmIChrZXlfdHlwZSA9PSBQU0FfS0VZX1RZUEVfTk9ORSkgewotICAgICAgICAgICAgICAgIHJldHVybiBQU0FfU1VDQ0VTUzsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGJyZWFrOwotICAgIH0KLSAgICByZXR1cm4gUFNBX0VSUk9SX0lOVkFMSURfQVJHVU1FTlQ7Ci19Ci0KLXN0YXRpYyBwc2Ffc3RhdHVzX3QgcHNhX2tleV9kZXJpdmF0aW9uX2lucHV0X2ludGVybmFsKAotICAgIHBzYV9rZXlfZGVyaXZhdGlvbl9vcGVyYXRpb25fdCAqb3BlcmF0aW9uLAotICAgIHBzYV9rZXlfZGVyaXZhdGlvbl9zdGVwX3Qgc3RlcCwKLSAgICBwc2Ffa2V5X3R5cGVfdCBrZXlfdHlwZSwKLSAgICBjb25zdCB1aW50OF90ICpkYXRhLAotICAgIHNpemVfdCBkYXRhX2xlbmd0aCkKLXsKLSAgICBwc2Ffc3RhdHVzX3Qgc3RhdHVzOwotICAgIHBzYV9hbGdvcml0aG1fdCBrZGZfYWxnID0gcHNhX2tleV9kZXJpdmF0aW9uX2dldF9rZGZfYWxnKG9wZXJhdGlvbik7Ci0KLSAgICBzdGF0dXMgPSBwc2Ffa2V5X2Rlcml2YXRpb25fY2hlY2tfaW5wdXRfdHlwZShzdGVwLCBrZXlfdHlwZSk7Ci0gICAgaWYgKHN0YXR1cyAhPSBQU0FfU1VDQ0VTUykgewotICAgICAgICBnb3RvIGV4aXQ7Ci0gICAgfQotCi0jaWYgZGVmaW5lZChCVUlMVElOX0FMR19BTllfSEtERikKLSAgICBpZiAoUFNBX0FMR19JU19BTllfSEtERihrZGZfYWxnKSkgewotICAgICAgICBzdGF0dXMgPSBwc2FfaGtkZl9pbnB1dCgmb3BlcmF0aW9uLT5jdHguaGtkZiwga2RmX2FsZywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RlcCwgZGF0YSwgZGF0YV9sZW5ndGgpOwotICAgIH0gZWxzZQotI2VuZGlmIC8qIEJVSUxUSU5fQUxHX0FOWV9IS0RGICovCi0jaWYgZGVmaW5lZChNQkVEVExTX1BTQV9CVUlMVElOX0FMR19UTFMxMl9QUkYpCi0gICAgaWYgKFBTQV9BTEdfSVNfVExTMTJfUFJGKGtkZl9hbGcpKSB7Ci0gICAgICAgIHN0YXR1cyA9IHBzYV90bHMxMl9wcmZfaW5wdXQoJm9wZXJhdGlvbi0+Y3R4LnRsczEyX3ByZiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGVwLCBkYXRhLCBkYXRhX2xlbmd0aCk7Ci0gICAgfSBlbHNlCi0jZW5kaWYgLyogTUJFRFRMU19QU0FfQlVJTFRJTl9BTEdfVExTMTJfUFJGICovCi0jaWYgZGVmaW5lZChNQkVEVExTX1BTQV9CVUlMVElOX0FMR19UTFMxMl9QU0tfVE9fTVMpCi0gICAgaWYgKFBTQV9BTEdfSVNfVExTMTJfUFNLX1RPX01TKGtkZl9hbGcpKSB7Ci0gICAgICAgIHN0YXR1cyA9IHBzYV90bHMxMl9wcmZfcHNrX3RvX21zX2lucHV0KCZvcGVyYXRpb24tPmN0eC50bHMxMl9wcmYsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0ZXAsIGRhdGEsIGRhdGFfbGVuZ3RoKTsKLSAgICB9IGVsc2UKLSNlbmRpZiAvKiBNQkVEVExTX1BTQV9CVUlMVElOX0FMR19UTFMxMl9QU0tfVE9fTVMgKi8KLSNpZiBkZWZpbmVkKE1CRURUTFNfUFNBX0JVSUxUSU5fQUxHX1RMUzEyX0VDSlBBS0VfVE9fUE1TKQotICAgIGlmIChrZGZfYWxnID09IFBTQV9BTEdfVExTMTJfRUNKUEFLRV9UT19QTVMpIHsKLSAgICAgICAgc3RhdHVzID0gcHNhX3RsczEyX2VjanBha2VfdG9fcG1zX2lucHV0KAotICAgICAgICAgICAgJm9wZXJhdGlvbi0+Y3R4LnRsczEyX2VjanBha2VfdG9fcG1zLCBzdGVwLCBkYXRhLCBkYXRhX2xlbmd0aCk7Ci0gICAgfSBlbHNlCi0jZW5kaWYgLyogTUJFRFRMU19QU0FfQlVJTFRJTl9BTEdfVExTMTJfRUNKUEFLRV9UT19QTVMgKi8KLSNpZiBkZWZpbmVkKFBTQV9IQVZFX1NPRlRfUEJLREYyKQotICAgIGlmIChQU0FfQUxHX0lTX1BCS0RGMihrZGZfYWxnKSkgewotICAgICAgICBzdGF0dXMgPSBwc2FfcGJrZGYyX2lucHV0KCZvcGVyYXRpb24tPmN0eC5wYmtkZjIsIGtkZl9hbGcsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RlcCwgZGF0YSwgZGF0YV9sZW5ndGgpOwotICAgIH0gZWxzZQotI2VuZGlmIC8qIFBTQV9IQVZFX1NPRlRfUEJLREYyICovCi0gICAgewotICAgICAgICAvKiBUaGlzIGNhbid0IGhhcHBlbiB1bmxlc3MgdGhlIG9wZXJhdGlvbiBvYmplY3Qgd2FzIG5vdCBpbml0aWFsaXplZCAqLwotICAgICAgICAodm9pZCkgZGF0YTsKLSAgICAgICAgKHZvaWQpIGRhdGFfbGVuZ3RoOwotICAgICAgICAodm9pZCkga2RmX2FsZzsKLSAgICAgICAgcmV0dXJuIFBTQV9FUlJPUl9CQURfU1RBVEU7Ci0gICAgfQotCi1leGl0OgotICAgIGlmIChzdGF0dXMgIT0gUFNBX1NVQ0NFU1MpIHsKLSAgICAgICAgcHNhX2tleV9kZXJpdmF0aW9uX2Fib3J0KG9wZXJhdGlvbik7Ci0gICAgfQotICAgIHJldHVybiBzdGF0dXM7Ci19Ci0KLXN0YXRpYyBwc2Ffc3RhdHVzX3QgcHNhX2tleV9kZXJpdmF0aW9uX2lucHV0X2ludGVnZXJfaW50ZXJuYWwoCi0gICAgcHNhX2tleV9kZXJpdmF0aW9uX29wZXJhdGlvbl90ICpvcGVyYXRpb24sCi0gICAgcHNhX2tleV9kZXJpdmF0aW9uX3N0ZXBfdCBzdGVwLAotICAgIHVpbnQ2NF90IHZhbHVlKQotewotICAgIHBzYV9zdGF0dXNfdCBzdGF0dXM7Ci0gICAgcHNhX2FsZ29yaXRobV90IGtkZl9hbGcgPSBwc2Ffa2V5X2Rlcml2YXRpb25fZ2V0X2tkZl9hbGcob3BlcmF0aW9uKTsKLQotI2lmIGRlZmluZWQoUFNBX0hBVkVfU09GVF9QQktERjIpCi0gICAgaWYgKFBTQV9BTEdfSVNfUEJLREYyKGtkZl9hbGcpKSB7Ci0gICAgICAgIHN0YXR1cyA9IHBzYV9wYmtkZjJfc2V0X2lucHV0X2Nvc3QoCi0gICAgICAgICAgICAmb3BlcmF0aW9uLT5jdHgucGJrZGYyLCBzdGVwLCB2YWx1ZSk7Ci0gICAgfSBlbHNlCi0jZW5kaWYgLyogUFNBX0hBVkVfU09GVF9QQktERjIgKi8KLSAgICB7Ci0gICAgICAgICh2b2lkKSBzdGVwOwotICAgICAgICAodm9pZCkgdmFsdWU7Ci0gICAgICAgICh2b2lkKSBrZGZfYWxnOwotICAgICAgICBzdGF0dXMgPSBQU0FfRVJST1JfSU5WQUxJRF9BUkdVTUVOVDsKLSAgICB9Ci0KLSAgICBpZiAoc3RhdHVzICE9IFBTQV9TVUNDRVNTKSB7Ci0gICAgICAgIHBzYV9rZXlfZGVyaXZhdGlvbl9hYm9ydChvcGVyYXRpb24pOwotICAgIH0KLSAgICByZXR1cm4gc3RhdHVzOwotfQotCi1wc2Ffc3RhdHVzX3QgcHNhX2tleV9kZXJpdmF0aW9uX2lucHV0X2J5dGVzKAotICAgIHBzYV9rZXlfZGVyaXZhdGlvbl9vcGVyYXRpb25fdCAqb3BlcmF0aW9uLAotICAgIHBzYV9rZXlfZGVyaXZhdGlvbl9zdGVwX3Qgc3RlcCwKLSAgICBjb25zdCB1aW50OF90ICpkYXRhX2V4dGVybmFsLAotICAgIHNpemVfdCBkYXRhX2xlbmd0aCkKLXsKLSAgICBwc2Ffc3RhdHVzX3Qgc3RhdHVzID0gUFNBX0VSUk9SX0NPUlJVUFRJT05fREVURUNURUQ7Ci0gICAgTE9DQUxfSU5QVVRfREVDTEFSRShkYXRhX2V4dGVybmFsLCBkYXRhKTsKLQotICAgIExPQ0FMX0lOUFVUX0FMTE9DKGRhdGFfZXh0ZXJuYWwsIGRhdGFfbGVuZ3RoLCBkYXRhKTsKLQotICAgIHN0YXR1cyA9IHBzYV9rZXlfZGVyaXZhdGlvbl9pbnB1dF9pbnRlcm5hbChvcGVyYXRpb24sIHN0ZXAsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBTQV9LRVlfVFlQRV9OT05FLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhLCBkYXRhX2xlbmd0aCk7Ci0jaWYgIWRlZmluZWQoTUJFRFRMU19QU0FfQVNTVU1FX0VYQ0xVU0lWRV9CVUZGRVJTKQotZXhpdDoKLSNlbmRpZgotICAgIExPQ0FMX0lOUFVUX0ZSRUUoZGF0YV9leHRlcm5hbCwgZGF0YSk7Ci0gICAgcmV0dXJuIHN0YXR1czsKLX0KLQotcHNhX3N0YXR1c190IHBzYV9rZXlfZGVyaXZhdGlvbl9pbnB1dF9pbnRlZ2VyKAotICAgIHBzYV9rZXlfZGVyaXZhdGlvbl9vcGVyYXRpb25fdCAqb3BlcmF0aW9uLAotICAgIHBzYV9rZXlfZGVyaXZhdGlvbl9zdGVwX3Qgc3RlcCwKLSAgICB1aW50NjRfdCB2YWx1ZSkKLXsKLSAgICByZXR1cm4gcHNhX2tleV9kZXJpdmF0aW9uX2lucHV0X2ludGVnZXJfaW50ZXJuYWwob3BlcmF0aW9uLCBzdGVwLCB2YWx1ZSk7Ci19Ci0KLXBzYV9zdGF0dXNfdCBwc2Ffa2V5X2Rlcml2YXRpb25faW5wdXRfa2V5KAotICAgIHBzYV9rZXlfZGVyaXZhdGlvbl9vcGVyYXRpb25fdCAqb3BlcmF0aW9uLAotICAgIHBzYV9rZXlfZGVyaXZhdGlvbl9zdGVwX3Qgc3RlcCwKLSAgICBtYmVkdGxzX3N2Y19rZXlfaWRfdCBrZXkpCi17Ci0gICAgcHNhX3N0YXR1c190IHN0YXR1cyA9IFBTQV9FUlJPUl9DT1JSVVBUSU9OX0RFVEVDVEVEOwotICAgIHBzYV9zdGF0dXNfdCB1bmxvY2tfc3RhdHVzID0gUFNBX0VSUk9SX0NPUlJVUFRJT05fREVURUNURUQ7Ci0gICAgcHNhX2tleV9zbG90X3QgKnNsb3Q7Ci0KLSAgICBzdGF0dXMgPSBwc2FfZ2V0X2FuZF9sb2NrX3RyYW5zcGFyZW50X2tleV9zbG90X3dpdGhfcG9saWN5KAotICAgICAgICBrZXksICZzbG90LCBQU0FfS0VZX1VTQUdFX0RFUklWRSwgb3BlcmF0aW9uLT5hbGcpOwotICAgIGlmIChzdGF0dXMgIT0gUFNBX1NVQ0NFU1MpIHsKLSAgICAgICAgcHNhX2tleV9kZXJpdmF0aW9uX2Fib3J0KG9wZXJhdGlvbik7Ci0gICAgICAgIHJldHVybiBzdGF0dXM7Ci0gICAgfQotCi0gICAgLyogUGFzc2luZyBhIGtleSBvYmplY3QgYXMgYSBTRUNSRVQgb3IgUEFTU1dPUkQgaW5wdXQgdW5sb2NrcyB0aGUKLSAgICAgKiBwZXJtaXNzaW9uIHRvIG91dHB1dCB0byBhIGtleSBvYmplY3QuICovCi0gICAgaWYgKHN0ZXAgPT0gUFNBX0tFWV9ERVJJVkFUSU9OX0lOUFVUX1NFQ1JFVCB8fAotICAgICAgICBzdGVwID09IFBTQV9LRVlfREVSSVZBVElPTl9JTlBVVF9QQVNTV09SRCkgewotICAgICAgICBvcGVyYXRpb24tPmNhbl9vdXRwdXRfa2V5ID0gMTsKLSAgICB9Ci0KLSAgICBzdGF0dXMgPSBwc2Ffa2V5X2Rlcml2YXRpb25faW5wdXRfaW50ZXJuYWwob3BlcmF0aW9uLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGVwLCBzbG90LT5hdHRyLnR5cGUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNsb3QtPmtleS5kYXRhLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzbG90LT5rZXkuYnl0ZXMpOwotCi0gICAgdW5sb2NrX3N0YXR1cyA9IHBzYV91bnJlZ2lzdGVyX3JlYWRfdW5kZXJfbXV0ZXgoc2xvdCk7Ci0KLSAgICByZXR1cm4gKHN0YXR1cyA9PSBQU0FfU1VDQ0VTUykgPyB1bmxvY2tfc3RhdHVzIDogc3RhdHVzOwotfQotCi0KLQotLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCi0vKiBLZXkgYWdyZWVtZW50ICovCi0vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KLQotcHNhX3N0YXR1c190IHBzYV9rZXlfYWdyZWVtZW50X3Jhd19idWlsdGluKGNvbnN0IHBzYV9rZXlfYXR0cmlidXRlc190ICphdHRyaWJ1dGVzLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVpbnQ4X3QgKmtleV9idWZmZXIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IGtleV9idWZmZXJfc2l6ZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwc2FfYWxnb3JpdGhtX3QgYWxnLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVpbnQ4X3QgKnBlZXJfa2V5LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBwZWVyX2tleV9sZW5ndGgsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDhfdCAqc2hhcmVkX3NlY3JldCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3Qgc2hhcmVkX3NlY3JldF9zaXplLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCAqc2hhcmVkX3NlY3JldF9sZW5ndGgpCi17Ci0gICAgc3dpdGNoIChhbGcpIHsKLSNpZiBkZWZpbmVkKE1CRURUTFNfUFNBX0JVSUxUSU5fQUxHX0VDREgpCi0gICAgICAgIGNhc2UgUFNBX0FMR19FQ0RIOgotICAgICAgICAgICAgcmV0dXJuIG1iZWR0bHNfcHNhX2tleV9hZ3JlZW1lbnRfZWNkaChhdHRyaWJ1dGVzLCBrZXlfYnVmZmVyLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXlfYnVmZmVyX3NpemUsIGFsZywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGVlcl9rZXksIHBlZXJfa2V5X2xlbmd0aCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2hhcmVkX3NlY3JldCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2hhcmVkX3NlY3JldF9zaXplLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaGFyZWRfc2VjcmV0X2xlbmd0aCk7Ci0jZW5kaWYgLyogTUJFRFRMU19QU0FfQlVJTFRJTl9BTEdfRUNESCAqLwotCi0jaWYgZGVmaW5lZChNQkVEVExTX1BTQV9CVUlMVElOX0FMR19GRkRIKQotICAgICAgICBjYXNlIFBTQV9BTEdfRkZESDoKLSAgICAgICAgICAgIHJldHVybiBtYmVkdGxzX3BzYV9mZmRoX2tleV9hZ3JlZW1lbnQoYXR0cmlidXRlcywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGVlcl9rZXksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBlZXJfa2V5X2xlbmd0aCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga2V5X2J1ZmZlciwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga2V5X2J1ZmZlcl9zaXplLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaGFyZWRfc2VjcmV0LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaGFyZWRfc2VjcmV0X3NpemUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNoYXJlZF9zZWNyZXRfbGVuZ3RoKTsKLSNlbmRpZiAvKiBNQkVEVExTX1BTQV9CVUlMVElOX0FMR19GRkRIICovCi0KLSAgICAgICAgZGVmYXVsdDoKLSAgICAgICAgICAgICh2b2lkKSBhdHRyaWJ1dGVzOwotICAgICAgICAgICAgKHZvaWQpIGtleV9idWZmZXI7Ci0gICAgICAgICAgICAodm9pZCkga2V5X2J1ZmZlcl9zaXplOwotICAgICAgICAgICAgKHZvaWQpIHBlZXJfa2V5OwotICAgICAgICAgICAgKHZvaWQpIHBlZXJfa2V5X2xlbmd0aDsKLSAgICAgICAgICAgICh2b2lkKSBzaGFyZWRfc2VjcmV0OwotICAgICAgICAgICAgKHZvaWQpIHNoYXJlZF9zZWNyZXRfc2l6ZTsKLSAgICAgICAgICAgICh2b2lkKSBzaGFyZWRfc2VjcmV0X2xlbmd0aDsKLSAgICAgICAgICAgIHJldHVybiBQU0FfRVJST1JfTk9UX1NVUFBPUlRFRDsKLSAgICB9Ci19Ci0KLS8qKiBJbnRlcm5hbCBmdW5jdGlvbiBmb3IgcmF3IGtleSBhZ3JlZW1lbnQKLSAqICBDYWxscyB0aGUgZHJpdmVyIHdyYXBwZXIgd2hpY2ggd2lsbCBoYW5kIG9mZiBrZXkgYWdyZWVtZW50IHRhc2sKLSAqICB0byB0aGUgZHJpdmVyJ3MgaW1wbGVtZW50YXRpb24gaWYgYSBkcml2ZXIgaXMgcHJlc2VudC4KLSAqICBGYWxsYmFjayBzcGVjaWZpZWQgaW4gdGhlIGRyaXZlciB3cmFwcGVyIGlzIGJ1aWx0LWluIHJhdyBrZXkgYWdyZWVtZW50Ci0gKiAgKHBzYV9rZXlfYWdyZWVtZW50X3Jhd19idWlsdGluKS4KLSAqLwotc3RhdGljIHBzYV9zdGF0dXNfdCBwc2Ffa2V5X2FncmVlbWVudF9yYXdfaW50ZXJuYWwocHNhX2FsZ29yaXRobV90IGFsZywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBzYV9rZXlfc2xvdF90ICpwcml2YXRlX2tleSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVpbnQ4X3QgKnBlZXJfa2V5LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IHBlZXJfa2V5X2xlbmd0aCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQ4X3QgKnNoYXJlZF9zZWNyZXQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3Qgc2hhcmVkX3NlY3JldF9zaXplLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90ICpzaGFyZWRfc2VjcmV0X2xlbmd0aCkKLXsKLSAgICBpZiAoIVBTQV9BTEdfSVNfUkFXX0tFWV9BR1JFRU1FTlQoYWxnKSkgewotICAgICAgICByZXR1cm4gUFNBX0VSUk9SX05PVF9TVVBQT1JURUQ7Ci0gICAgfQotCi0gICAgcmV0dXJuIHBzYV9kcml2ZXJfd3JhcHBlcl9rZXlfYWdyZWVtZW50KCZwcml2YXRlX2tleS0+YXR0ciwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJpdmF0ZV9rZXktPmtleS5kYXRhLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcml2YXRlX2tleS0+a2V5LmJ5dGVzLCBhbGcsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBlZXJfa2V5LCBwZWVyX2tleV9sZW5ndGgsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNoYXJlZF9zZWNyZXQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNoYXJlZF9zZWNyZXRfc2l6ZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2hhcmVkX3NlY3JldF9sZW5ndGgpOwotfQotCi0vKiBOb3RlIHRoYXQgaWYgdGhpcyBmdW5jdGlvbiBmYWlscywgeW91IG11c3QgY2FsbCBwc2Ffa2V5X2Rlcml2YXRpb25fYWJvcnQoKQotICogdG8gcG90ZW50aWFsbHkgZnJlZSBlbWJlZGRlZCBkYXRhIHN0cnVjdHVyZXMgYW5kIHdpcGUgY29uZmlkZW50aWFsIGRhdGEuCi0gKi8KLXN0YXRpYyBwc2Ffc3RhdHVzX3QgcHNhX2tleV9hZ3JlZW1lbnRfaW50ZXJuYWwocHNhX2tleV9kZXJpdmF0aW9uX29wZXJhdGlvbl90ICpvcGVyYXRpb24sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBzYV9rZXlfZGVyaXZhdGlvbl9zdGVwX3Qgc3RlcCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHNhX2tleV9zbG90X3QgKnByaXZhdGVfa2V5LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1aW50OF90ICpwZWVyX2tleSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IHBlZXJfa2V5X2xlbmd0aCkKLXsKLSAgICBwc2Ffc3RhdHVzX3Qgc3RhdHVzOwotICAgIHVpbnQ4X3Qgc2hhcmVkX3NlY3JldFtQU0FfUkFXX0tFWV9BR1JFRU1FTlRfT1VUUFVUX01BWF9TSVpFXSA9IHsgMCB9OwotICAgIHNpemVfdCBzaGFyZWRfc2VjcmV0X2xlbmd0aCA9IDA7Ci0gICAgcHNhX2FsZ29yaXRobV90IGthX2FsZyA9IFBTQV9BTEdfS0VZX0FHUkVFTUVOVF9HRVRfQkFTRShvcGVyYXRpb24tPmFsZyk7Ci0KLSAgICAvKiBTdGVwIDE6IHJ1biB0aGUgc2VjcmV0IGFncmVlbWVudCBhbGdvcml0aG0gdG8gZ2VuZXJhdGUgdGhlIHNoYXJlZAotICAgICAqIHNlY3JldC4gKi8KLSAgICBzdGF0dXMgPSBwc2Ffa2V5X2FncmVlbWVudF9yYXdfaW50ZXJuYWwoa2FfYWxnLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcml2YXRlX2tleSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGVlcl9rZXksIHBlZXJfa2V5X2xlbmd0aCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2hhcmVkX3NlY3JldCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZW9mKHNoYXJlZF9zZWNyZXQpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmc2hhcmVkX3NlY3JldF9sZW5ndGgpOwotICAgIGlmIChzdGF0dXMgIT0gUFNBX1NVQ0NFU1MpIHsKLSAgICAgICAgZ290byBleGl0OwotICAgIH0KLQotICAgIC8qIFN0ZXAgMjogc2V0IHVwIHRoZSBrZXkgZGVyaXZhdGlvbiB0byBnZW5lcmF0ZSBrZXkgbWF0ZXJpYWwgZnJvbQotICAgICAqIHRoZSBzaGFyZWQgc2VjcmV0LiBBIHNoYXJlZCBzZWNyZXQgaXMgcGVybWl0dGVkIHdoZXJldmVyIGEga2V5Ci0gICAgICogb2YgdHlwZSBERVJJVkUgaXMgcGVybWl0dGVkLiAqLwotICAgIHN0YXR1cyA9IHBzYV9rZXlfZGVyaXZhdGlvbl9pbnB1dF9pbnRlcm5hbChvcGVyYXRpb24sIHN0ZXAsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBTQV9LRVlfVFlQRV9ERVJJVkUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNoYXJlZF9zZWNyZXQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNoYXJlZF9zZWNyZXRfbGVuZ3RoKTsKLWV4aXQ6Ci0gICAgbWJlZHRsc19wbGF0Zm9ybV96ZXJvaXplKHNoYXJlZF9zZWNyZXQsIHNoYXJlZF9zZWNyZXRfbGVuZ3RoKTsKLSAgICByZXR1cm4gc3RhdHVzOwotfQotCi1wc2Ffc3RhdHVzX3QgcHNhX2tleV9kZXJpdmF0aW9uX2tleV9hZ3JlZW1lbnQocHNhX2tleV9kZXJpdmF0aW9uX29wZXJhdGlvbl90ICpvcGVyYXRpb24sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHNhX2tleV9kZXJpdmF0aW9uX3N0ZXBfdCBzdGVwLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1iZWR0bHNfc3ZjX2tleV9pZF90IHByaXZhdGVfa2V5LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVpbnQ4X3QgKnBlZXJfa2V5X2V4dGVybmFsLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBwZWVyX2tleV9sZW5ndGgpCi17Ci0gICAgcHNhX3N0YXR1c190IHN0YXR1cyA9IFBTQV9FUlJPUl9DT1JSVVBUSU9OX0RFVEVDVEVEOwotICAgIHBzYV9zdGF0dXNfdCB1bmxvY2tfc3RhdHVzID0gUFNBX0VSUk9SX0NPUlJVUFRJT05fREVURUNURUQ7Ci0gICAgcHNhX2tleV9zbG90X3QgKnNsb3Q7Ci0gICAgTE9DQUxfSU5QVVRfREVDTEFSRShwZWVyX2tleV9leHRlcm5hbCwgcGVlcl9rZXkpOwotCi0gICAgaWYgKCFQU0FfQUxHX0lTX0tFWV9BR1JFRU1FTlQob3BlcmF0aW9uLT5hbGcpKSB7Ci0gICAgICAgIHJldHVybiBQU0FfRVJST1JfSU5WQUxJRF9BUkdVTUVOVDsKLSAgICB9Ci0gICAgc3RhdHVzID0gcHNhX2dldF9hbmRfbG9ja190cmFuc3BhcmVudF9rZXlfc2xvdF93aXRoX3BvbGljeSgKLSAgICAgICAgcHJpdmF0ZV9rZXksICZzbG90LCBQU0FfS0VZX1VTQUdFX0RFUklWRSwgb3BlcmF0aW9uLT5hbGcpOwotICAgIGlmIChzdGF0dXMgIT0gUFNBX1NVQ0NFU1MpIHsKLSAgICAgICAgcmV0dXJuIHN0YXR1czsKLSAgICB9Ci0KLSAgICBMT0NBTF9JTlBVVF9BTExPQyhwZWVyX2tleV9leHRlcm5hbCwgcGVlcl9rZXlfbGVuZ3RoLCBwZWVyX2tleSk7Ci0gICAgc3RhdHVzID0gcHNhX2tleV9hZ3JlZW1lbnRfaW50ZXJuYWwob3BlcmF0aW9uLCBzdGVwLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNsb3QsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGVlcl9rZXksIHBlZXJfa2V5X2xlbmd0aCk7Ci0KLSNpZiAhZGVmaW5lZChNQkVEVExTX1BTQV9BU1NVTUVfRVhDTFVTSVZFX0JVRkZFUlMpCi1leGl0OgotI2VuZGlmCi0gICAgaWYgKHN0YXR1cyAhPSBQU0FfU1VDQ0VTUykgewotICAgICAgICBwc2Ffa2V5X2Rlcml2YXRpb25fYWJvcnQob3BlcmF0aW9uKTsKLSAgICB9IGVsc2UgewotICAgICAgICAvKiBJZiBhIHByaXZhdGUga2V5IGhhcyBiZWVuIGFkZGVkIGFzIFNFQ1JFVCwgd2UgYWxsb3cgdGhlIGRlcml2ZWQKLSAgICAgICAgICoga2V5IG1hdGVyaWFsIHRvIGJlIHVzZWQgYXMgYSBrZXkgaW4gUFNBIENyeXB0by4gKi8KLSAgICAgICAgaWYgKHN0ZXAgPT0gUFNBX0tFWV9ERVJJVkFUSU9OX0lOUFVUX1NFQ1JFVCkgewotICAgICAgICAgICAgb3BlcmF0aW9uLT5jYW5fb3V0cHV0X2tleSA9IDE7Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICB1bmxvY2tfc3RhdHVzID0gcHNhX3VucmVnaXN0ZXJfcmVhZF91bmRlcl9tdXRleChzbG90KTsKLSAgICBMT0NBTF9JTlBVVF9GUkVFKHBlZXJfa2V5X2V4dGVybmFsLCBwZWVyX2tleSk7Ci0KLSAgICByZXR1cm4gKHN0YXR1cyA9PSBQU0FfU1VDQ0VTUykgPyB1bmxvY2tfc3RhdHVzIDogc3RhdHVzOwotfQotCi1wc2Ffc3RhdHVzX3QgcHNhX3Jhd19rZXlfYWdyZWVtZW50KHBzYV9hbGdvcml0aG1fdCBhbGcsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1iZWR0bHNfc3ZjX2tleV9pZF90IHByaXZhdGVfa2V5LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1aW50OF90ICpwZWVyX2tleV9leHRlcm5hbCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IHBlZXJfa2V5X2xlbmd0aCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDhfdCAqb3V0cHV0X2V4dGVybmFsLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3Qgb3V0cHV0X3NpemUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCAqb3V0cHV0X2xlbmd0aCkKLXsKLSAgICBwc2Ffc3RhdHVzX3Qgc3RhdHVzID0gUFNBX0VSUk9SX0NPUlJVUFRJT05fREVURUNURUQ7Ci0gICAgcHNhX3N0YXR1c190IHVubG9ja19zdGF0dXMgPSBQU0FfRVJST1JfQ09SUlVQVElPTl9ERVRFQ1RFRDsKLSAgICBwc2Ffa2V5X3Nsb3RfdCAqc2xvdCA9IE5VTEw7Ci0gICAgc2l6ZV90IGV4cGVjdGVkX2xlbmd0aDsKLSAgICBMT0NBTF9JTlBVVF9ERUNMQVJFKHBlZXJfa2V5X2V4dGVybmFsLCBwZWVyX2tleSk7Ci0gICAgTE9DQUxfT1VUUFVUX0RFQ0xBUkUob3V0cHV0X2V4dGVybmFsLCBvdXRwdXQpOwotICAgIExPQ0FMX09VVFBVVF9BTExPQyhvdXRwdXRfZXh0ZXJuYWwsIG91dHB1dF9zaXplLCBvdXRwdXQpOwotCi0gICAgaWYgKCFQU0FfQUxHX0lTX0tFWV9BR1JFRU1FTlQoYWxnKSkgewotICAgICAgICBzdGF0dXMgPSBQU0FfRVJST1JfSU5WQUxJRF9BUkdVTUVOVDsKLSAgICAgICAgZ290byBleGl0OwotICAgIH0KLSAgICBzdGF0dXMgPSBwc2FfZ2V0X2FuZF9sb2NrX3RyYW5zcGFyZW50X2tleV9zbG90X3dpdGhfcG9saWN5KAotICAgICAgICBwcml2YXRlX2tleSwgJnNsb3QsIFBTQV9LRVlfVVNBR0VfREVSSVZFLCBhbGcpOwotICAgIGlmIChzdGF0dXMgIT0gUFNBX1NVQ0NFU1MpIHsKLSAgICAgICAgZ290byBleGl0OwotICAgIH0KLQotICAgIC8qIFBTQV9SQVdfS0VZX0FHUkVFTUVOVF9PVVRQVVRfU0laRSgpIGlzIGluIGdlbmVyYWwgYW4gdXBwZXIgYm91bmQKLSAgICAgKiBmb3IgdGhlIG91dHB1dCBzaXplLiBUaGUgUFNBIHNwZWNpZmljYXRpb24gb25seSBndWFyYW50ZWVzIHRoYXQgdGhpcwotICAgICAqIGZ1bmN0aW9uIHdvcmtzIGlmIG91dHB1dF9zaXplID49IFBTQV9SQVdfS0VZX0FHUkVFTUVOVF9PVVRQVVRfU0laRSguLi4pLAotICAgICAqIGJ1dCBpdCBtaWdodCBiZSBuaWNlIHRvIGFsbG93IHNtYWxsZXIgYnVmZmVycyBpZiB0aGUgb3V0cHV0IGZpdHMuCi0gICAgICogQXQgdGhlIHRpbWUgb2Ygd3JpdGluZyB0aGlzIGNvbW1lbnQsIHdpdGggb25seSBFQ0RIIGltcGxlbWVudGVkLAotICAgICAqIFBTQV9SQVdfS0VZX0FHUkVFTUVOVF9PVVRQVVRfU0laRSgpIGlzIGV4YWN0IHNvIHRoZSBwb2ludCBpcyBtb290LgotICAgICAqIElmIEZGREggaXMgaW1wbGVtZW50ZWQsIFBTQV9SQVdfS0VZX0FHUkVFTUVOVF9PVVRQVVRfU0laRSgpIGNhbiBlYXNpbHkKLSAgICAgKiBiZSBleGFjdCBmb3IgaXQgYXMgd2VsbC4gKi8KLSAgICBleHBlY3RlZF9sZW5ndGggPQotICAgICAgICBQU0FfUkFXX0tFWV9BR1JFRU1FTlRfT1VUUFVUX1NJWkUoc2xvdC0+YXR0ci50eXBlLCBzbG90LT5hdHRyLmJpdHMpOwotICAgIGlmIChvdXRwdXRfc2l6ZSA8IGV4cGVjdGVkX2xlbmd0aCkgewotICAgICAgICBzdGF0dXMgPSBQU0FfRVJST1JfQlVGRkVSX1RPT19TTUFMTDsKLSAgICAgICAgZ290byBleGl0OwotICAgIH0KLQotICAgIExPQ0FMX0lOUFVUX0FMTE9DKHBlZXJfa2V5X2V4dGVybmFsLCBwZWVyX2tleV9sZW5ndGgsIHBlZXJfa2V5KTsKLSAgICBzdGF0dXMgPSBwc2Ffa2V5X2FncmVlbWVudF9yYXdfaW50ZXJuYWwoYWxnLCBzbG90LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwZWVyX2tleSwgcGVlcl9rZXlfbGVuZ3RoLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvdXRwdXQsIG91dHB1dF9zaXplLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvdXRwdXRfbGVuZ3RoKTsKLQotZXhpdDoKLSAgICAvKiBDaGVjayBmb3Igc3VjY2Vzc2Z1bCBhbGxvY2F0aW9uIG9mIG91dHB1dCwKLSAgICAgKiB3aXRoIGFuIHVuc3VjY2Vzc2Z1bCBzdGF0dXMuICovCi0gICAgaWYgKG91dHB1dCAhPSBOVUxMICYmIHN0YXR1cyAhPSBQU0FfU1VDQ0VTUykgewotICAgICAgICAvKiBJZiBhbiBlcnJvciBoYXBwZW5zIGFuZCBpcyBub3QgaGFuZGxlZCBwcm9wZXJseSwgdGhlIG91dHB1dAotICAgICAgICAgKiBtYXkgYmUgdXNlZCBhcyBhIGtleSB0byBwcm90ZWN0IHNlbnNpdGl2ZSBkYXRhLiBBcnJhbmdlIGZvciBzdWNoCi0gICAgICAgICAqIGEga2V5IHRvIGJlIHJhbmRvbSwgd2hpY2ggaXMgbGlrZWx5IHRvIHJlc3VsdCBpbiBkZWNyeXB0aW9uIG9yCi0gICAgICAgICAqIHZlcmlmaWNhdGlvbiBlcnJvcnMuIFRoaXMgaXMgYmV0dGVyIHRoYW4gZmlsbGluZyB0aGUgYnVmZmVyIHdpdGgKLSAgICAgICAgICogc29tZSBjb25zdGFudCBkYXRhIHN1Y2ggYXMgemVyb3MsIHdoaWNoIHdvdWxkIHJlc3VsdCBpbiB0aGUgZGF0YQotICAgICAgICAgKiBiZWluZyBwcm90ZWN0ZWQgd2l0aCBhIHJlcHJvZHVjaWJsZSwgZWFzaWx5IGtub3dhYmxlIGtleS4KLSAgICAgICAgICovCi0gICAgICAgIHBzYV9nZW5lcmF0ZV9yYW5kb21faW50ZXJuYWwob3V0cHV0LCBvdXRwdXRfc2l6ZSk7Ci0gICAgICAgICpvdXRwdXRfbGVuZ3RoID0gb3V0cHV0X3NpemU7Ci0gICAgfQotCi0gICAgaWYgKG91dHB1dCA9PSBOVUxMKSB7Ci0gICAgICAgIC8qIG91dHB1dCBhbGxvY2F0aW9uIGZhaWxlZC4gKi8KLSAgICAgICAgKm91dHB1dF9sZW5ndGggPSAwOwotICAgIH0KLQotICAgIHVubG9ja19zdGF0dXMgPSBwc2FfdW5yZWdpc3Rlcl9yZWFkX3VuZGVyX211dGV4KHNsb3QpOwotCi0gICAgTE9DQUxfSU5QVVRfRlJFRShwZWVyX2tleV9leHRlcm5hbCwgcGVlcl9rZXkpOwotICAgIExPQ0FMX09VVFBVVF9GUkVFKG91dHB1dF9leHRlcm5hbCwgb3V0cHV0KTsKLSAgICByZXR1cm4gKHN0YXR1cyA9PSBQU0FfU1VDQ0VTUykgPyB1bmxvY2tfc3RhdHVzIDogc3RhdHVzOwotfQotCi0KLS8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwotLyogUmFuZG9tIGdlbmVyYXRpb24gKi8KLS8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwotCi0jaWYgZGVmaW5lZChNQkVEVExTX1BTQV9JTkpFQ1RfRU5UUk9QWSkKLSNpbmNsdWRlICJlbnRyb3B5X3BvbGwuaCIKLSNlbmRpZgotCi0vKiogSW5pdGlhbGl6ZSB0aGUgUFNBIHJhbmRvbSBnZW5lcmF0b3IuCi0gKgotICogIE5vdGU6IHRoZSBtYmVkdGxzX3RocmVhZGluZ19wc2Ffcm5nZGF0YV9tdXRleCBzaG91bGQgYmUgaGVsZCB3aGVuIGNhbGxpbmcKLSAqICB0aGlzIGZ1bmN0aW9uIGlmIG11dGV4ZXMgYXJlIGVuYWJsZWQuCi0gKi8KLXN0YXRpYyB2b2lkIG1iZWR0bHNfcHNhX3JhbmRvbV9pbml0KG1iZWR0bHNfcHNhX3JhbmRvbV9jb250ZXh0X3QgKnJuZykKLXsKLSNpZiBkZWZpbmVkKE1CRURUTFNfUFNBX0NSWVBUT19FWFRFUk5BTF9STkcpCi0gICAgbWVtc2V0KHJuZywgMCwgc2l6ZW9mKCpybmcpKTsKLSNlbHNlIC8qIE1CRURUTFNfUFNBX0NSWVBUT19FWFRFUk5BTF9STkcgKi8KLQotICAgIC8qIFNldCBkZWZhdWx0IGNvbmZpZ3VyYXRpb24gaWYKLSAgICAgKiBtYmVkdGxzX3BzYV9jcnlwdG9fY29uZmlndXJlX2VudHJvcHlfc291cmNlcygpIGhhc24ndCBiZWVuIGNhbGxlZC4gKi8KLSAgICBpZiAocm5nLT5lbnRyb3B5X2luaXQgPT0gTlVMTCkgewotICAgICAgICBybmctPmVudHJvcHlfaW5pdCA9IG1iZWR0bHNfZW50cm9weV9pbml0OwotICAgIH0KLSAgICBpZiAocm5nLT5lbnRyb3B5X2ZyZWUgPT0gTlVMTCkgewotICAgICAgICBybmctPmVudHJvcHlfZnJlZSA9IG1iZWR0bHNfZW50cm9weV9mcmVlOwotICAgIH0KLQotICAgIHJuZy0+ZW50cm9weV9pbml0KCZybmctPmVudHJvcHkpOwotI2lmIGRlZmluZWQoTUJFRFRMU19QU0FfSU5KRUNUX0VOVFJPUFkpICYmIFwKLSAgICBkZWZpbmVkKE1CRURUTFNfTk9fREVGQVVMVF9FTlRST1BZX1NPVVJDRVMpCi0gICAgLyogVGhlIFBTQSBlbnRyb3B5IGluamVjdGlvbiBmZWF0dXJlIGRlcGVuZHMgb24gdXNpbmcgTlYgc2VlZCBhcyBhbiBlbnRyb3B5Ci0gICAgICogc291cmNlLiBBZGQgTlYgc2VlZCBhcyBhbiBlbnRyb3B5IHNvdXJjZSBmb3IgUFNBIGVudHJvcHkgaW5qZWN0aW9uLiAqLwotICAgIG1iZWR0bHNfZW50cm9weV9hZGRfc291cmNlKCZybmctPmVudHJvcHksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWJlZHRsc19udl9zZWVkX3BvbGwsIE5VTEwsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTUJFRFRMU19FTlRST1BZX0JMT0NLX1NJWkUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTUJFRFRMU19FTlRST1BZX1NPVVJDRV9TVFJPTkcpOwotI2VuZGlmCi0KLSAgICBtYmVkdGxzX3BzYV9kcmJnX2luaXQoJnJuZy0+ZHJiZyk7Ci0jZW5kaWYgLyogTUJFRFRMU19QU0FfQ1JZUFRPX0VYVEVSTkFMX1JORyAqLwotfQotCi0vKiogRGVpbml0aWFsaXplIHRoZSBQU0EgcmFuZG9tIGdlbmVyYXRvci4KLSAqCi0gKiAgTm90ZTogdGhlIG1iZWR0bHNfdGhyZWFkaW5nX3BzYV9ybmdkYXRhX211dGV4IHNob3VsZCBiZSBoZWxkIHdoZW4gY2FsbGluZwotICogIHRoaXMgZnVuY3Rpb24gaWYgbXV0ZXhlcyBhcmUgZW5hYmxlZC4KLSAqLwotc3RhdGljIHZvaWQgbWJlZHRsc19wc2FfcmFuZG9tX2ZyZWUobWJlZHRsc19wc2FfcmFuZG9tX2NvbnRleHRfdCAqcm5nKQotewotI2lmIGRlZmluZWQoTUJFRFRMU19QU0FfQ1JZUFRPX0VYVEVSTkFMX1JORykKLSAgICBtZW1zZXQocm5nLCAwLCBzaXplb2YoKnJuZykpOwotI2Vsc2UgLyogTUJFRFRMU19QU0FfQ1JZUFRPX0VYVEVSTkFMX1JORyAqLwotICAgIG1iZWR0bHNfcHNhX2RyYmdfZnJlZSgmcm5nLT5kcmJnKTsKLSAgICBybmctPmVudHJvcHlfZnJlZSgmcm5nLT5lbnRyb3B5KTsKLSNlbmRpZiAvKiBNQkVEVExTX1BTQV9DUllQVE9fRVhURVJOQUxfUk5HICovCi19Ci0KLS8qKiBTZWVkIHRoZSBQU0EgcmFuZG9tIGdlbmVyYXRvci4KLSAqLwotc3RhdGljIHBzYV9zdGF0dXNfdCBtYmVkdGxzX3BzYV9yYW5kb21fc2VlZChtYmVkdGxzX3BzYV9yYW5kb21fY29udGV4dF90ICpybmcpCi17Ci0jaWYgZGVmaW5lZChNQkVEVExTX1BTQV9DUllQVE9fRVhURVJOQUxfUk5HKQotICAgIC8qIERvIG5vdGhpbmc6IHRoZSBleHRlcm5hbCBSTkcgc2VlZHMgaXRzZWxmLiAqLwotICAgICh2b2lkKSBybmc7Ci0gICAgcmV0dXJuIFBTQV9TVUNDRVNTOwotI2Vsc2UgLyogTUJFRFRMU19QU0FfQ1JZUFRPX0VYVEVSTkFMX1JORyAqLwotICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgZHJiZ19zZWVkW10gPSAiUFNBIjsKLSAgICBpbnQgcmV0ID0gbWJlZHRsc19wc2FfZHJiZ19zZWVkKCZybmctPmRyYmcsICZybmctPmVudHJvcHksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkcmJnX3NlZWQsIHNpemVvZihkcmJnX3NlZWQpIC0gMSk7Ci0gICAgcmV0dXJuIG1iZWR0bHNfdG9fcHNhX2Vycm9yKHJldCk7Ci0jZW5kaWYgLyogTUJFRFRMU19QU0FfQ1JZUFRPX0VYVEVSTkFMX1JORyAqLwotfQotCi1wc2Ffc3RhdHVzX3QgcHNhX2dlbmVyYXRlX3JhbmRvbSh1aW50OF90ICpvdXRwdXRfZXh0ZXJuYWwsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3Qgb3V0cHV0X3NpemUpCi17Ci0gICAgcHNhX3N0YXR1c190IHN0YXR1czsKLQotICAgIExPQ0FMX09VVFBVVF9ERUNMQVJFKG91dHB1dF9leHRlcm5hbCwgb3V0cHV0KTsKLSAgICBMT0NBTF9PVVRQVVRfQUxMT0Mob3V0cHV0X2V4dGVybmFsLCBvdXRwdXRfc2l6ZSwgb3V0cHV0KTsKLQotICAgIHN0YXR1cyA9IHBzYV9nZW5lcmF0ZV9yYW5kb21faW50ZXJuYWwob3V0cHV0LCBvdXRwdXRfc2l6ZSk7Ci0KLSNpZiAhZGVmaW5lZChNQkVEVExTX1BTQV9BU1NVTUVfRVhDTFVTSVZFX0JVRkZFUlMpCi1leGl0OgotI2VuZGlmCi0gICAgTE9DQUxfT1VUUFVUX0ZSRUUob3V0cHV0X2V4dGVybmFsLCBvdXRwdXQpOwotICAgIHJldHVybiBzdGF0dXM7Ci19Ci0KLSNpZiBkZWZpbmVkKE1CRURUTFNfUFNBX0lOSkVDVF9FTlRST1BZKQotcHNhX3N0YXR1c190IG1iZWR0bHNfcHNhX2luamVjdF9lbnRyb3B5KGNvbnN0IHVpbnQ4X3QgKnNlZWQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IHNlZWRfc2l6ZSkKLXsKLSAgICBpZiAocHNhX2dldF9pbml0aWFsaXplZCgpKSB7Ci0gICAgICAgIHJldHVybiBQU0FfRVJST1JfTk9UX1BFUk1JVFRFRDsKLSAgICB9Ci0KLSAgICBpZiAoKChzZWVkX3NpemUgPCBNQkVEVExTX0VOVFJPUFlfTUlOX1BMQVRGT1JNKSB8fAotICAgICAgICAgKHNlZWRfc2l6ZSA8IE1CRURUTFNfRU5UUk9QWV9CTE9DS19TSVpFKSkgfHwKLSAgICAgICAgKHNlZWRfc2l6ZSA+IE1CRURUTFNfRU5UUk9QWV9NQVhfU0VFRF9TSVpFKSkgewotICAgICAgICByZXR1cm4gUFNBX0VSUk9SX0lOVkFMSURfQVJHVU1FTlQ7Ci0gICAgfQotCi0gICAgcmV0dXJuIG1iZWR0bHNfcHNhX3N0b3JhZ2VfaW5qZWN0X2VudHJvcHkoc2VlZCwgc2VlZF9zaXplKTsKLX0KLSNlbmRpZiAvKiBNQkVEVExTX1BTQV9JTkpFQ1RfRU5UUk9QWSAqLwotCi0vKiogVmFsaWRhdGUgdGhlIGtleSB0eXBlIGFuZCBzaXplIGZvciBrZXkgZ2VuZXJhdGlvbgotICoKLSAqIFxwYXJhbSAgdHlwZSAgVGhlIGtleSB0eXBlCi0gKiBccGFyYW0gIGJpdHMgIFRoZSBudW1iZXIgb2YgYml0cyBvZiB0aGUga2V5Ci0gKgotICogXHJldHZhbCAjUFNBX1NVQ0NFU1MKLSAqICAgICAgICAgVGhlIGtleSB0eXBlIGFuZCBzaXplIGFyZSB2YWxpZC4KLSAqIFxyZXR2YWwgI1BTQV9FUlJPUl9JTlZBTElEX0FSR1VNRU5UCi0gKiAgICAgICAgIFRoZSBzaXplIGluIGJpdHMgb2YgdGhlIGtleSBpcyBub3QgdmFsaWQuCi0gKiBccmV0dmFsICNQU0FfRVJST1JfTk9UX1NVUFBPUlRFRAotICogICAgICAgICBUaGUgdHlwZSBhbmQvb3IgdGhlIHNpemUgaW4gYml0cyBvZiB0aGUga2V5IG9yIHRoZSBjb21iaW5hdGlvbiBvZgotICogICAgICAgICB0aGUgdHdvIGlzIG5vdCBzdXBwb3J0ZWQuCi0gKi8KLXN0YXRpYyBwc2Ffc3RhdHVzX3QgcHNhX3ZhbGlkYXRlX2tleV90eXBlX2FuZF9zaXplX2Zvcl9rZXlfZ2VuZXJhdGlvbigKLSAgICBwc2Ffa2V5X3R5cGVfdCB0eXBlLCBzaXplX3QgYml0cykKLXsKLSAgICBwc2Ffc3RhdHVzX3Qgc3RhdHVzID0gUFNBX0VSUk9SX0NPUlJVUFRJT05fREVURUNURUQ7Ci0KLSAgICBpZiAoa2V5X3R5cGVfaXNfcmF3X2J5dGVzKHR5cGUpKSB7Ci0gICAgICAgIHN0YXR1cyA9IHBzYV92YWxpZGF0ZV91bnN0cnVjdHVyZWRfa2V5X2JpdF9zaXplKHR5cGUsIGJpdHMpOwotICAgICAgICBpZiAoc3RhdHVzICE9IFBTQV9TVUNDRVNTKSB7Ci0gICAgICAgICAgICByZXR1cm4gc3RhdHVzOwotICAgICAgICB9Ci0gICAgfSBlbHNlCi0jaWYgZGVmaW5lZChQU0FfV0FOVF9LRVlfVFlQRV9SU0FfS0VZX1BBSVJfR0VORVJBVEUpCi0gICAgaWYgKFBTQV9LRVlfVFlQRV9JU19SU0EodHlwZSkgJiYgUFNBX0tFWV9UWVBFX0lTX0tFWV9QQUlSKHR5cGUpKSB7Ci0gICAgICAgIGlmIChiaXRzID4gUFNBX1ZFTkRPUl9SU0FfTUFYX0tFWV9CSVRTKSB7Ci0gICAgICAgICAgICByZXR1cm4gUFNBX0VSUk9SX05PVF9TVVBQT1JURUQ7Ci0gICAgICAgIH0KLSAgICAgICAgaWYgKGJpdHMgPCBQU0FfVkVORE9SX1JTQV9HRU5FUkFURV9NSU5fS0VZX0JJVFMpIHsKLSAgICAgICAgICAgIHJldHVybiBQU0FfRVJST1JfTk9UX1NVUFBPUlRFRDsKLSAgICAgICAgfQotCi0gICAgICAgIC8qIEFjY2VwdCBvbmx5IGJ5dGUtYWxpZ25lZCBrZXlzLCBmb3IgdGhlIHNhbWUgcmVhc29ucyBhcwotICAgICAgICAgKiBpbiBwc2FfaW1wb3J0X3JzYV9rZXkoKS4gKi8KLSAgICAgICAgaWYgKGJpdHMgJSA4ICE9IDApIHsKLSAgICAgICAgICAgIHJldHVybiBQU0FfRVJST1JfTk9UX1NVUFBPUlRFRDsKLSAgICAgICAgfQotICAgIH0gZWxzZQotI2VuZGlmIC8qIGRlZmluZWQoUFNBX1dBTlRfS0VZX1RZUEVfUlNBX0tFWV9QQUlSX0dFTkVSQVRFKSAqLwotCi0jaWYgZGVmaW5lZChQU0FfV0FOVF9LRVlfVFlQRV9FQ0NfS0VZX1BBSVJfR0VORVJBVEUpCi0gICAgaWYgKFBTQV9LRVlfVFlQRV9JU19FQ0ModHlwZSkgJiYgUFNBX0tFWV9UWVBFX0lTX0tFWV9QQUlSKHR5cGUpKSB7Ci0gICAgICAgIC8qIFRvIGF2b2lkIGVtcHR5IGJsb2NrLCByZXR1cm4gc3VjY2Vzc2Z1bGx5IGhlcmUuICovCi0gICAgICAgIHJldHVybiBQU0FfU1VDQ0VTUzsKLSAgICB9IGVsc2UKLSNlbmRpZiAvKiBkZWZpbmVkKFBTQV9XQU5UX0tFWV9UWVBFX0VDQ19LRVlfUEFJUl9HRU5FUkFURSkgKi8KLQotI2lmIGRlZmluZWQoUFNBX1dBTlRfS0VZX1RZUEVfREhfS0VZX1BBSVJfR0VORVJBVEUpCi0gICAgaWYgKFBTQV9LRVlfVFlQRV9JU19ESCh0eXBlKSAmJiBQU0FfS0VZX1RZUEVfSVNfS0VZX1BBSVIodHlwZSkpIHsKLSAgICAgICAgaWYgKHBzYV9pc19kaF9rZXlfc2l6ZV92YWxpZChiaXRzKSA9PSAwKSB7Ci0gICAgICAgICAgICByZXR1cm4gUFNBX0VSUk9SX05PVF9TVVBQT1JURUQ7Ci0gICAgICAgIH0KLSAgICB9IGVsc2UKLSNlbmRpZiAvKiBkZWZpbmVkKFBTQV9XQU5UX0tFWV9UWVBFX0RIX0tFWV9QQUlSX0dFTkVSQVRFKSAqLwotICAgIHsKLSAgICAgICAgcmV0dXJuIFBTQV9FUlJPUl9OT1RfU1VQUE9SVEVEOwotICAgIH0KLQotICAgIHJldHVybiBQU0FfU1VDQ0VTUzsKLX0KLQotcHNhX3N0YXR1c190IHBzYV9nZW5lcmF0ZV9rZXlfaW50ZXJuYWwoCi0gICAgY29uc3QgcHNhX2tleV9hdHRyaWJ1dGVzX3QgKmF0dHJpYnV0ZXMsCi0gICAgY29uc3QgcHNhX2tleV9wcm9kdWN0aW9uX3BhcmFtZXRlcnNfdCAqcGFyYW1zLCBzaXplX3QgcGFyYW1zX2RhdGFfbGVuZ3RoLAotICAgIHVpbnQ4X3QgKmtleV9idWZmZXIsIHNpemVfdCBrZXlfYnVmZmVyX3NpemUsIHNpemVfdCAqa2V5X2J1ZmZlcl9sZW5ndGgpCi17Ci0gICAgcHNhX3N0YXR1c190IHN0YXR1cyA9IFBTQV9FUlJPUl9DT1JSVVBUSU9OX0RFVEVDVEVEOwotICAgIHBzYV9rZXlfdHlwZV90IHR5cGUgPSBhdHRyaWJ1dGVzLT50eXBlOwotCi0gICAgLyogT25seSB1c2VkIGZvciBSU0EgKi8KLSAgICAodm9pZCkgcGFyYW1zOwotICAgICh2b2lkKSBwYXJhbXNfZGF0YV9sZW5ndGg7Ci0KLSAgICBpZiAoa2V5X3R5cGVfaXNfcmF3X2J5dGVzKHR5cGUpKSB7Ci0gICAgICAgIHN0YXR1cyA9IHBzYV9nZW5lcmF0ZV9yYW5kb21faW50ZXJuYWwoa2V5X2J1ZmZlciwga2V5X2J1ZmZlcl9zaXplKTsKLSAgICAgICAgaWYgKHN0YXR1cyAhPSBQU0FfU1VDQ0VTUykgewotICAgICAgICAgICAgcmV0dXJuIHN0YXR1czsKLSAgICAgICAgfQotCi0jaWYgZGVmaW5lZChNQkVEVExTX1BTQV9CVUlMVElOX0tFWV9UWVBFX0RFUykKLSAgICAgICAgaWYgKHR5cGUgPT0gUFNBX0tFWV9UWVBFX0RFUykgewotICAgICAgICAgICAgcHNhX2Rlc19zZXRfa2V5X3Bhcml0eShrZXlfYnVmZmVyLCBrZXlfYnVmZmVyX3NpemUpOwotICAgICAgICB9Ci0jZW5kaWYgLyogTUJFRFRMU19QU0FfQlVJTFRJTl9LRVlfVFlQRV9ERVMgKi8KLSAgICB9IGVsc2UKLQotI2lmIGRlZmluZWQoTUJFRFRMU19QU0FfQlVJTFRJTl9LRVlfVFlQRV9SU0FfS0VZX1BBSVJfR0VORVJBVEUpCi0gICAgaWYgKHR5cGUgPT0gUFNBX0tFWV9UWVBFX1JTQV9LRVlfUEFJUikgewotICAgICAgICByZXR1cm4gbWJlZHRsc19wc2FfcnNhX2dlbmVyYXRlX2tleShhdHRyaWJ1dGVzLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXJhbXMsIHBhcmFtc19kYXRhX2xlbmd0aCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga2V5X2J1ZmZlciwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga2V5X2J1ZmZlcl9zaXplLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXlfYnVmZmVyX2xlbmd0aCk7Ci0gICAgfSBlbHNlCi0jZW5kaWYgLyogZGVmaW5lZChNQkVEVExTX1BTQV9CVUlMVElOX0tFWV9UWVBFX1JTQV9LRVlfUEFJUl9HRU5FUkFURSkgKi8KLQotI2lmIGRlZmluZWQoTUJFRFRMU19QU0FfQlVJTFRJTl9LRVlfVFlQRV9FQ0NfS0VZX1BBSVJfR0VORVJBVEUpCi0gICAgaWYgKFBTQV9LRVlfVFlQRV9JU19FQ0ModHlwZSkgJiYgUFNBX0tFWV9UWVBFX0lTX0tFWV9QQUlSKHR5cGUpKSB7Ci0gICAgICAgIHJldHVybiBtYmVkdGxzX3BzYV9lY3BfZ2VuZXJhdGVfa2V5KGF0dHJpYnV0ZXMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtleV9idWZmZXIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtleV9idWZmZXJfc2l6ZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga2V5X2J1ZmZlcl9sZW5ndGgpOwotICAgIH0gZWxzZQotI2VuZGlmIC8qIGRlZmluZWQoTUJFRFRMU19QU0FfQlVJTFRJTl9LRVlfVFlQRV9FQ0NfS0VZX1BBSVJfR0VORVJBVEUpICovCi0KLSNpZiBkZWZpbmVkKE1CRURUTFNfUFNBX0JVSUxUSU5fS0VZX1RZUEVfREhfS0VZX1BBSVJfR0VORVJBVEUpCi0gICAgaWYgKFBTQV9LRVlfVFlQRV9JU19ESCh0eXBlKSAmJiBQU0FfS0VZX1RZUEVfSVNfS0VZX1BBSVIodHlwZSkpIHsKLSAgICAgICAgcmV0dXJuIG1iZWR0bHNfcHNhX2ZmZGhfZ2VuZXJhdGVfa2V5KGF0dHJpYnV0ZXMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXlfYnVmZmVyLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga2V5X2J1ZmZlcl9zaXplLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga2V5X2J1ZmZlcl9sZW5ndGgpOwotICAgIH0gZWxzZQotI2VuZGlmIC8qIGRlZmluZWQoTUJFRFRMU19QU0FfQlVJTFRJTl9LRVlfVFlQRV9ESF9LRVlfUEFJUl9HRU5FUkFURSkgKi8KLSAgICB7Ci0gICAgICAgICh2b2lkKSBrZXlfYnVmZmVyX2xlbmd0aDsKLSAgICAgICAgcmV0dXJuIFBTQV9FUlJPUl9OT1RfU1VQUE9SVEVEOwotICAgIH0KLQotICAgIHJldHVybiBQU0FfU1VDQ0VTUzsKLX0KLQotcHNhX3N0YXR1c190IHBzYV9nZW5lcmF0ZV9rZXlfZXh0KGNvbnN0IHBzYV9rZXlfYXR0cmlidXRlc190ICphdHRyaWJ1dGVzLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHBzYV9rZXlfcHJvZHVjdGlvbl9wYXJhbWV0ZXJzX3QgKnBhcmFtcywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgcGFyYW1zX2RhdGFfbGVuZ3RoLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1iZWR0bHNfc3ZjX2tleV9pZF90ICprZXkpCi17Ci0gICAgcHNhX3N0YXR1c190IHN0YXR1czsKLSAgICBwc2Ffa2V5X3Nsb3RfdCAqc2xvdCA9IE5VTEw7Ci0gICAgcHNhX3NlX2Rydl90YWJsZV9lbnRyeV90ICpkcml2ZXIgPSBOVUxMOwotICAgIHNpemVfdCBrZXlfYnVmZmVyX3NpemU7Ci0KLSAgICAqa2V5ID0gTUJFRFRMU19TVkNfS0VZX0lEX0lOSVQ7Ci0KLSAgICAvKiBSZWplY3QgYW55IGF0dGVtcHQgdG8gY3JlYXRlIGEgemVyby1sZW5ndGgga2V5IHNvIHRoYXQgd2UgZG9uJ3QKLSAgICAgKiByaXNrIHRyaXBwaW5nIHVwIGxhdGVyLCBlLmcuIG9uIGEgbWFsbG9jKDApIHRoYXQgcmV0dXJucyBOVUxMLiAqLwotICAgIGlmIChwc2FfZ2V0X2tleV9iaXRzKGF0dHJpYnV0ZXMpID09IDApIHsKLSAgICAgICAgcmV0dXJuIFBTQV9FUlJPUl9JTlZBTElEX0FSR1VNRU5UOwotICAgIH0KLQotICAgIC8qIFJlamVjdCBhbnkgYXR0ZW1wdCB0byBjcmVhdGUgYSBwdWJsaWMga2V5LiAqLwotICAgIGlmIChQU0FfS0VZX1RZUEVfSVNfUFVCTElDX0tFWShhdHRyaWJ1dGVzLT50eXBlKSkgewotICAgICAgICByZXR1cm4gUFNBX0VSUk9SX0lOVkFMSURfQVJHVU1FTlQ7Ci0gICAgfQotCi0jaWYgZGVmaW5lZChQU0FfV0FOVF9LRVlfVFlQRV9SU0FfS0VZX1BBSVJfR0VORVJBVEUpCi0gICAgaWYgKGF0dHJpYnV0ZXMtPnR5cGUgPT0gUFNBX0tFWV9UWVBFX1JTQV9LRVlfUEFJUikgewotICAgICAgICBpZiAocGFyYW1zLT5mbGFncyAhPSAwKSB7Ci0gICAgICAgICAgICByZXR1cm4gUFNBX0VSUk9SX0lOVkFMSURfQVJHVU1FTlQ7Ci0gICAgICAgIH0KLSAgICB9IGVsc2UKLSNlbmRpZgotICAgIGlmICghcHNhX2tleV9wcm9kdWN0aW9uX3BhcmFtZXRlcnNfYXJlX2RlZmF1bHQocGFyYW1zLCBwYXJhbXNfZGF0YV9sZW5ndGgpKSB7Ci0gICAgICAgIHJldHVybiBQU0FfRVJST1JfSU5WQUxJRF9BUkdVTUVOVDsKLSAgICB9Ci0KLSAgICBzdGF0dXMgPSBwc2Ffc3RhcnRfa2V5X2NyZWF0aW9uKFBTQV9LRVlfQ1JFQVRJT05fR0VORVJBVEUsIGF0dHJpYnV0ZXMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmc2xvdCwgJmRyaXZlcik7Ci0gICAgaWYgKHN0YXR1cyAhPSBQU0FfU1VDQ0VTUykgewotICAgICAgICBnb3RvIGV4aXQ7Ci0gICAgfQotCi0gICAgLyogSW4gdGhlIGNhc2Ugb2YgYSB0cmFuc3BhcmVudCBrZXkgb3IgYW4gb3BhcXVlIGtleSBzdG9yZWQgaW4gbG9jYWwKLSAgICAgKiBzdG9yYWdlICggdGh1cyBub3QgaW4gdGhlIGNhc2Ugb2YgZ2VuZXJhdGluZyBhIGtleSBpbiBhIHNlY3VyZSBlbGVtZW50Ci0gICAgICogd2l0aCBzdG9yYWdlICggTUJFRFRMU19QU0FfQ1JZUFRPX1NFX0MgKSApLHdlIGhhdmUgdG8gYWxsb2NhdGUgYQotICAgICAqIGJ1ZmZlciB0byBob2xkIHRoZSBnZW5lcmF0ZWQga2V5IG1hdGVyaWFsLiAqLwotICAgIGlmIChzbG90LT5rZXkuZGF0YSA9PSBOVUxMKSB7Ci0gICAgICAgIGlmIChQU0FfS0VZX0xJRkVUSU1FX0dFVF9MT0NBVElPTihhdHRyaWJ1dGVzLT5saWZldGltZSkgPT0KLSAgICAgICAgICAgIFBTQV9LRVlfTE9DQVRJT05fTE9DQUxfU1RPUkFHRSkgewotICAgICAgICAgICAgc3RhdHVzID0gcHNhX3ZhbGlkYXRlX2tleV90eXBlX2FuZF9zaXplX2Zvcl9rZXlfZ2VuZXJhdGlvbigKLSAgICAgICAgICAgICAgICBhdHRyaWJ1dGVzLT50eXBlLCBhdHRyaWJ1dGVzLT5iaXRzKTsKLSAgICAgICAgICAgIGlmIChzdGF0dXMgIT0gUFNBX1NVQ0NFU1MpIHsKLSAgICAgICAgICAgICAgICBnb3RvIGV4aXQ7Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIGtleV9idWZmZXJfc2l6ZSA9IFBTQV9FWFBPUlRfS0VZX09VVFBVVF9TSVpFKAotICAgICAgICAgICAgICAgIGF0dHJpYnV0ZXMtPnR5cGUsCi0gICAgICAgICAgICAgICAgYXR0cmlidXRlcy0+Yml0cyk7Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBzdGF0dXMgPSBwc2FfZHJpdmVyX3dyYXBwZXJfZ2V0X2tleV9idWZmZXJfc2l6ZSgKLSAgICAgICAgICAgICAgICBhdHRyaWJ1dGVzLCAma2V5X2J1ZmZlcl9zaXplKTsKLSAgICAgICAgICAgIGlmIChzdGF0dXMgIT0gUFNBX1NVQ0NFU1MpIHsKLSAgICAgICAgICAgICAgICBnb3RvIGV4aXQ7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLQotICAgICAgICBzdGF0dXMgPSBwc2FfYWxsb2NhdGVfYnVmZmVyX3RvX3Nsb3Qoc2xvdCwga2V5X2J1ZmZlcl9zaXplKTsKLSAgICAgICAgaWYgKHN0YXR1cyAhPSBQU0FfU1VDQ0VTUykgewotICAgICAgICAgICAgZ290byBleGl0OwotICAgICAgICB9Ci0gICAgfQotCi0gICAgc3RhdHVzID0gcHNhX2RyaXZlcl93cmFwcGVyX2dlbmVyYXRlX2tleShhdHRyaWJ1dGVzLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFyYW1zLCBwYXJhbXNfZGF0YV9sZW5ndGgsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzbG90LT5rZXkuZGF0YSwgc2xvdC0+a2V5LmJ5dGVzLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJnNsb3QtPmtleS5ieXRlcyk7Ci0gICAgaWYgKHN0YXR1cyAhPSBQU0FfU1VDQ0VTUykgewotICAgICAgICBwc2FfcmVtb3ZlX2tleV9kYXRhX2Zyb21fbWVtb3J5KHNsb3QpOwotICAgIH0KLQotZXhpdDoKLSAgICBpZiAoc3RhdHVzID09IFBTQV9TVUNDRVNTKSB7Ci0gICAgICAgIHN0YXR1cyA9IHBzYV9maW5pc2hfa2V5X2NyZWF0aW9uKHNsb3QsIGRyaXZlciwga2V5KTsKLSAgICB9Ci0gICAgaWYgKHN0YXR1cyAhPSBQU0FfU1VDQ0VTUykgewotICAgICAgICBwc2FfZmFpbF9rZXlfY3JlYXRpb24oc2xvdCwgZHJpdmVyKTsKLSAgICB9Ci0KLSAgICByZXR1cm4gc3RhdHVzOwotfQotCi1wc2Ffc3RhdHVzX3QgcHNhX2dlbmVyYXRlX2tleShjb25zdCBwc2Ffa2V5X2F0dHJpYnV0ZXNfdCAqYXR0cmlidXRlcywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1iZWR0bHNfc3ZjX2tleV9pZF90ICprZXkpCi17Ci0gICAgcmV0dXJuIHBzYV9nZW5lcmF0ZV9rZXlfZXh0KGF0dHJpYnV0ZXMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZkZWZhdWx0X3Byb2R1Y3Rpb25fcGFyYW1ldGVycywgMCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga2V5KTsKLX0KLQotLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCi0vKiBNb2R1bGUgc2V0dXAgKi8KLS8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwotCi0jaWYgIWRlZmluZWQoTUJFRFRMU19QU0FfQ1JZUFRPX0VYVEVSTkFMX1JORykKLXBzYV9zdGF0dXNfdCBtYmVkdGxzX3BzYV9jcnlwdG9fY29uZmlndXJlX2VudHJvcHlfc291cmNlcygKLSAgICB2b2lkICgqIGVudHJvcHlfaW5pdCkobWJlZHRsc19lbnRyb3B5X2NvbnRleHQgKmN0eCksCi0gICAgdm9pZCAoKiBlbnRyb3B5X2ZyZWUpKG1iZWR0bHNfZW50cm9weV9jb250ZXh0ICpjdHgpKQotewotICAgIHBzYV9zdGF0dXNfdCBzdGF0dXMgPSBQU0FfRVJST1JfQ09SUlVQVElPTl9ERVRFQ1RFRDsKLQotI2lmIGRlZmluZWQoTUJFRFRMU19USFJFQURJTkdfQykKLSAgICBtYmVkdGxzX211dGV4X2xvY2soJm1iZWR0bHNfdGhyZWFkaW5nX3BzYV9ybmdkYXRhX211dGV4KTsKLSNlbmRpZiAvKiBkZWZpbmVkKE1CRURUTFNfVEhSRUFESU5HX0MpICovCi0KLSAgICBpZiAoZ2xvYmFsX2RhdGEucm5nX3N0YXRlICE9IFJOR19OT1RfSU5JVElBTElaRUQpIHsKLSAgICAgICAgc3RhdHVzID0gUFNBX0VSUk9SX0JBRF9TVEFURTsKLSAgICB9IGVsc2UgewotICAgICAgICBnbG9iYWxfZGF0YS5ybmcuZW50cm9weV9pbml0ID0gZW50cm9weV9pbml0OwotICAgICAgICBnbG9iYWxfZGF0YS5ybmcuZW50cm9weV9mcmVlID0gZW50cm9weV9mcmVlOwotICAgICAgICBzdGF0dXMgPSBQU0FfU1VDQ0VTUzsKLSAgICB9Ci0KLSNpZiBkZWZpbmVkKE1CRURUTFNfVEhSRUFESU5HX0MpCi0gICAgbWJlZHRsc19tdXRleF91bmxvY2soJm1iZWR0bHNfdGhyZWFkaW5nX3BzYV9ybmdkYXRhX211dGV4KTsKLSNlbmRpZiAvKiBkZWZpbmVkKE1CRURUTFNfVEhSRUFESU5HX0MpICovCi0KLSAgICByZXR1cm4gc3RhdHVzOwotfQotI2VuZGlmIC8qICFkZWZpbmVkKE1CRURUTFNfUFNBX0NSWVBUT19FWFRFUk5BTF9STkcpICovCi0KLXZvaWQgbWJlZHRsc19wc2FfY3J5cHRvX2ZyZWUodm9pZCkKLXsKLQotI2lmIGRlZmluZWQoTUJFRFRMU19USFJFQURJTkdfQykKLSAgICBtYmVkdGxzX211dGV4X2xvY2soJm1iZWR0bHNfdGhyZWFkaW5nX3BzYV9nbG9iYWxkYXRhX211dGV4KTsKLSNlbmRpZiAvKiBkZWZpbmVkKE1CRURUTFNfVEhSRUFESU5HX0MpICovCi0KLSAgICAvKiBOb3RoaW5nIHRvIGRvIHRvIGZyZWUgdHJhbnNhY3Rpb24uICovCi0gICAgaWYgKGdsb2JhbF9kYXRhLmluaXRpYWxpemVkICYgUFNBX0NSWVBUT19TVUJTWVNURU1fVFJBTlNBQ1RJT05fSU5JVElBTElaRUQpIHsKLSAgICAgICAgZ2xvYmFsX2RhdGEuaW5pdGlhbGl6ZWQgJj0gflBTQV9DUllQVE9fU1VCU1lTVEVNX1RSQU5TQUNUSU9OX0lOSVRJQUxJWkVEOwotICAgIH0KLQotICAgIGlmIChnbG9iYWxfZGF0YS5pbml0aWFsaXplZCAmIFBTQV9DUllQVE9fU1VCU1lTVEVNX0tFWV9TTE9UU19JTklUSUFMSVpFRCkgewotICAgICAgICBwc2Ffd2lwZV9hbGxfa2V5X3Nsb3RzKCk7Ci0gICAgICAgIGdsb2JhbF9kYXRhLmluaXRpYWxpemVkICY9IH5QU0FfQ1JZUFRPX1NVQlNZU1RFTV9LRVlfU0xPVFNfSU5JVElBTElaRUQ7Ci0gICAgfQotCi0jaWYgZGVmaW5lZChNQkVEVExTX1RIUkVBRElOR19DKQotICAgIG1iZWR0bHNfbXV0ZXhfdW5sb2NrKCZtYmVkdGxzX3RocmVhZGluZ19wc2FfZ2xvYmFsZGF0YV9tdXRleCk7Ci0jZW5kaWYgLyogZGVmaW5lZChNQkVEVExTX1RIUkVBRElOR19DKSAqLwotCi0jaWYgZGVmaW5lZChNQkVEVExTX1RIUkVBRElOR19DKQotICAgIG1iZWR0bHNfbXV0ZXhfbG9jaygmbWJlZHRsc190aHJlYWRpbmdfcHNhX3JuZ2RhdGFfbXV0ZXgpOwotI2VuZGlmIC8qIGRlZmluZWQoTUJFRFRMU19USFJFQURJTkdfQykgKi8KLQotICAgIGlmIChnbG9iYWxfZGF0YS5ybmdfc3RhdGUgIT0gUk5HX05PVF9JTklUSUFMSVpFRCkgewotICAgICAgICBtYmVkdGxzX3BzYV9yYW5kb21fZnJlZSgmZ2xvYmFsX2RhdGEucm5nKTsKLSAgICB9Ci0gICAgZ2xvYmFsX2RhdGEucm5nX3N0YXRlID0gUk5HX05PVF9JTklUSUFMSVpFRDsKLSAgICBtYmVkdGxzX3BsYXRmb3JtX3plcm9pemUoJmdsb2JhbF9kYXRhLnJuZywgc2l6ZW9mKGdsb2JhbF9kYXRhLnJuZykpOwotCi0jaWYgZGVmaW5lZChNQkVEVExTX1RIUkVBRElOR19DKQotICAgIG1iZWR0bHNfbXV0ZXhfdW5sb2NrKCZtYmVkdGxzX3RocmVhZGluZ19wc2Ffcm5nZGF0YV9tdXRleCk7Ci0jZW5kaWYgLyogZGVmaW5lZChNQkVEVExTX1RIUkVBRElOR19DKSAqLwotCi0jaWYgZGVmaW5lZChNQkVEVExTX1RIUkVBRElOR19DKQotICAgIG1iZWR0bHNfbXV0ZXhfbG9jaygmbWJlZHRsc190aHJlYWRpbmdfcHNhX2dsb2JhbGRhdGFfbXV0ZXgpOwotI2VuZGlmIC8qIGRlZmluZWQoTUJFRFRMU19USFJFQURJTkdfQykgKi8KLQotICAgIC8qIFRlcm1pbmF0ZSBkcml2ZXJzICovCi0gICAgaWYgKGdsb2JhbF9kYXRhLmluaXRpYWxpemVkICYgUFNBX0NSWVBUT19TVUJTWVNURU1fRFJJVkVSX1dSQVBQRVJTX0lOSVRJQUxJWkVEKSB7Ci0gICAgICAgIHBzYV9kcml2ZXJfd3JhcHBlcl9mcmVlKCk7Ci0gICAgICAgIGdsb2JhbF9kYXRhLmluaXRpYWxpemVkICY9IH5QU0FfQ1JZUFRPX1NVQlNZU1RFTV9EUklWRVJfV1JBUFBFUlNfSU5JVElBTElaRUQ7Ci0gICAgfQotCi0jaWYgZGVmaW5lZChNQkVEVExTX1RIUkVBRElOR19DKQotICAgIG1iZWR0bHNfbXV0ZXhfdW5sb2NrKCZtYmVkdGxzX3RocmVhZGluZ19wc2FfZ2xvYmFsZGF0YV9tdXRleCk7Ci0jZW5kaWYgLyogZGVmaW5lZChNQkVEVExTX1RIUkVBRElOR19DKSAqLwotCi19Ci0KLSNpZiBkZWZpbmVkKFBTQV9DUllQVE9fU1RPUkFHRV9IQVNfVFJBTlNBQ1RJT05TKQotLyoqIFJlY292ZXIgYSB0cmFuc2FjdGlvbiB0aGF0IHdhcyBpbnRlcnJ1cHRlZCBieSBhIHBvd2VyIGZhaWx1cmUuCi0gKgotICogVGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQgZHVyaW5nIGluaXRpYWxpemF0aW9uLCBiZWZvcmUgcHNhX2NyeXB0b19pbml0KCkKLSAqIHJldHVybnMuIElmIHRoaXMgZnVuY3Rpb24gcmV0dXJucyBhIGZhaWx1cmUgc3RhdHVzLCB0aGUgaW5pdGlhbGl6YXRpb24KLSAqIGZhaWxzLgotICovCi1zdGF0aWMgcHNhX3N0YXR1c190IHBzYV9jcnlwdG9fcmVjb3Zlcl90cmFuc2FjdGlvbigKLSAgICBjb25zdCBwc2FfY3J5cHRvX3RyYW5zYWN0aW9uX3QgKnRyYW5zYWN0aW9uKQotewotICAgIHN3aXRjaCAodHJhbnNhY3Rpb24tPnVua25vd24udHlwZSkgewotICAgICAgICBjYXNlIFBTQV9DUllQVE9fVFJBTlNBQ1RJT05fQ1JFQVRFX0tFWToKLSAgICAgICAgY2FzZSBQU0FfQ1JZUFRPX1RSQU5TQUNUSU9OX0RFU1RST1lfS0VZOgotICAgICAgICAvKiBUT0RPIC0gZmFsbCB0aHJvdWdoIHRvIHRoZSBmYWlsdXJlIGNhc2UgdW50aWwgdGhpcwotICAgICAgICAgKiBpcyBpbXBsZW1lbnRlZC4KLSAgICAgICAgICogaHR0cHM6Ly9naXRodWIuY29tL0FSTW1iZWQvbWJlZC1jcnlwdG8vaXNzdWVzLzIxOAotICAgICAgICAgKi8KLSAgICAgICAgZGVmYXVsdDoKLSAgICAgICAgICAgIC8qIFdlIGZvdW5kIGFuIHVuc3VwcG9ydGVkIHRyYW5zYWN0aW9uIGluIHRoZSBzdG9yYWdlLgotICAgICAgICAgICAgICogV2UgZG9uJ3Qga25vdyB3aGF0IHN0YXRlIHRoZSBzdG9yYWdlIGlzIGluLiBHaXZlIHVwLiAqLwotICAgICAgICAgICAgcmV0dXJuIFBTQV9FUlJPUl9EQVRBX0lOVkFMSUQ7Ci0gICAgfQotfQotI2VuZGlmIC8qIFBTQV9DUllQVE9fU1RPUkFHRV9IQVNfVFJBTlNBQ1RJT05TICovCi0KLXN0YXRpYyBwc2Ffc3RhdHVzX3QgbWJlZHRsc19wc2FfY3J5cHRvX2luaXRfc3Vic3lzdGVtKG1iZWR0bHNfcHNhX2NyeXB0b19zdWJzeXN0ZW0gc3Vic3lzdGVtKQotewotICAgIHBzYV9zdGF0dXNfdCBzdGF0dXMgPSBQU0FfU1VDQ0VTUzsKLSAgICB1aW50OF90IGRyaXZlcl93cmFwcGVyc19pbml0aWFsaXplZCA9IDA7Ci0KLSAgICBzd2l0Y2ggKHN1YnN5c3RlbSkgewotICAgICAgICBjYXNlIFBTQV9DUllQVE9fU1VCU1lTVEVNX0RSSVZFUl9XUkFQUEVSUzoKLQotI2lmIGRlZmluZWQoTUJFRFRMU19USFJFQURJTkdfQykKLSAgICAgICAgICAgIFBTQV9USFJFQURJTkdfQ0hLX0dPVE9fRVhJVChtYmVkdGxzX211dGV4X2xvY2soJm1iZWR0bHNfdGhyZWFkaW5nX3BzYV9nbG9iYWxkYXRhX211dGV4KSk7Ci0jZW5kaWYgLyogZGVmaW5lZChNQkVEVExTX1RIUkVBRElOR19DKSAqLwotCi0gICAgICAgICAgICBpZiAoIShnbG9iYWxfZGF0YS5pbml0aWFsaXplZCAmIFBTQV9DUllQVE9fU1VCU1lTVEVNX0RSSVZFUl9XUkFQUEVSU19JTklUSUFMSVpFRCkpIHsKLSAgICAgICAgICAgICAgICAvKiBJbml0IGRyaXZlcnMgKi8KLSAgICAgICAgICAgICAgICBzdGF0dXMgPSBwc2FfZHJpdmVyX3dyYXBwZXJfaW5pdCgpOwotCi0gICAgICAgICAgICAgICAgLyogRHJpdmVycyBuZWVkIHNodXRkb3duIHJlZ2FyZGxlc3Mgb2Ygc3RhcnR1cCBlcnJvcnMuICovCi0gICAgICAgICAgICAgICAgZ2xvYmFsX2RhdGEuaW5pdGlhbGl6ZWQgfD0gUFNBX0NSWVBUT19TVUJTWVNURU1fRFJJVkVSX1dSQVBQRVJTX0lOSVRJQUxJWkVEOwotCi0KLSAgICAgICAgICAgIH0KLSNpZiBkZWZpbmVkKE1CRURUTFNfVEhSRUFESU5HX0MpCi0gICAgICAgICAgICBQU0FfVEhSRUFESU5HX0NIS19HT1RPX0VYSVQobWJlZHRsc19tdXRleF91bmxvY2soCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZtYmVkdGxzX3RocmVhZGluZ19wc2FfZ2xvYmFsZGF0YV9tdXRleCkpOwotI2VuZGlmIC8qIGRlZmluZWQoTUJFRFRMU19USFJFQURJTkdfQykgKi8KLQotICAgICAgICAgICAgYnJlYWs7Ci0KLSAgICAgICAgY2FzZSBQU0FfQ1JZUFRPX1NVQlNZU1RFTV9LRVlfU0xPVFM6Ci0KLSNpZiBkZWZpbmVkKE1CRURUTFNfVEhSRUFESU5HX0MpCi0gICAgICAgICAgICBQU0FfVEhSRUFESU5HX0NIS19HT1RPX0VYSVQobWJlZHRsc19tdXRleF9sb2NrKCZtYmVkdGxzX3RocmVhZGluZ19wc2FfZ2xvYmFsZGF0YV9tdXRleCkpOwotI2VuZGlmIC8qIGRlZmluZWQoTUJFRFRMU19USFJFQURJTkdfQykgKi8KLQotICAgICAgICAgICAgaWYgKCEoZ2xvYmFsX2RhdGEuaW5pdGlhbGl6ZWQgJiBQU0FfQ1JZUFRPX1NVQlNZU1RFTV9LRVlfU0xPVFNfSU5JVElBTElaRUQpKSB7Ci0gICAgICAgICAgICAgICAgc3RhdHVzID0gcHNhX2luaXRpYWxpemVfa2V5X3Nsb3RzKCk7Ci0KLSAgICAgICAgICAgICAgICAvKiBOZWVkIHRvIHdpcGUga2V5cyBldmVuIGlmIGluaXRpYWxpemF0aW9uIGZhaWxzLiAqLwotICAgICAgICAgICAgICAgIGdsb2JhbF9kYXRhLmluaXRpYWxpemVkIHw9IFBTQV9DUllQVE9fU1VCU1lTVEVNX0tFWV9TTE9UU19JTklUSUFMSVpFRDsKLQotICAgICAgICAgICAgfQotI2lmIGRlZmluZWQoTUJFRFRMU19USFJFQURJTkdfQykKLSAgICAgICAgICAgIFBTQV9USFJFQURJTkdfQ0hLX0dPVE9fRVhJVChtYmVkdGxzX211dGV4X3VubG9jaygKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJm1iZWR0bHNfdGhyZWFkaW5nX3BzYV9nbG9iYWxkYXRhX211dGV4KSk7Ci0jZW5kaWYgLyogZGVmaW5lZChNQkVEVExTX1RIUkVBRElOR19DKSAqLwotCi0gICAgICAgICAgICBicmVhazsKLQotICAgICAgICBjYXNlIFBTQV9DUllQVE9fU1VCU1lTVEVNX1JORzoKLQotI2lmIGRlZmluZWQoTUJFRFRMU19USFJFQURJTkdfQykKLSAgICAgICAgICAgIFBTQV9USFJFQURJTkdfQ0hLX0dPVE9fRVhJVChtYmVkdGxzX211dGV4X2xvY2soJm1iZWR0bHNfdGhyZWFkaW5nX3BzYV9nbG9iYWxkYXRhX211dGV4KSk7Ci0jZW5kaWYgLyogZGVmaW5lZChNQkVEVExTX1RIUkVBRElOR19DKSAqLwotCi0gICAgICAgICAgICBkcml2ZXJfd3JhcHBlcnNfaW5pdGlhbGl6ZWQgPQotICAgICAgICAgICAgICAgIChnbG9iYWxfZGF0YS5pbml0aWFsaXplZCAmIFBTQV9DUllQVE9fU1VCU1lTVEVNX0RSSVZFUl9XUkFQUEVSU19JTklUSUFMSVpFRCk7Ci0KLSNpZiBkZWZpbmVkKE1CRURUTFNfVEhSRUFESU5HX0MpCi0gICAgICAgICAgICBQU0FfVEhSRUFESU5HX0NIS19HT1RPX0VYSVQobWJlZHRsc19tdXRleF91bmxvY2soCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZtYmVkdGxzX3RocmVhZGluZ19wc2FfZ2xvYmFsZGF0YV9tdXRleCkpOwotI2VuZGlmIC8qIGRlZmluZWQoTUJFRFRMU19USFJFQURJTkdfQykgKi8KLQotICAgICAgICAgICAgLyogTmVlZCB0byB1c2Ugc2VwYXJhdGUgbXV0ZXggaGVyZSwgYXMgaW5pdGlhbGlzYXRpb24gY2FuIHJlcXVpcmUKLSAgICAgICAgICAgICAqIHRlc3Rpbmcgb2YgaW5pdCBmbGFncywgd2hpY2ggcmVxdWlyZXMgbG9ja2luZyB0aGUgZ2xvYmFsIGRhdGEKLSAgICAgICAgICAgICAqIG11dGV4LiAqLwotI2lmIGRlZmluZWQoTUJFRFRMU19USFJFQURJTkdfQykKLSAgICAgICAgICAgIFBTQV9USFJFQURJTkdfQ0hLX0dPVE9fRVhJVChtYmVkdGxzX211dGV4X2xvY2soJm1iZWR0bHNfdGhyZWFkaW5nX3BzYV9ybmdkYXRhX211dGV4KSk7Ci0jZW5kaWYgLyogZGVmaW5lZChNQkVEVExTX1RIUkVBRElOR19DKSAqLwotCi0gICAgICAgICAgICAvKiBJbml0aWFsaXplIGFuZCBzZWVkIHRoZSByYW5kb20gZ2VuZXJhdG9yLiAqLwotICAgICAgICAgICAgaWYgKGdsb2JhbF9kYXRhLnJuZ19zdGF0ZSA9PSBSTkdfTk9UX0lOSVRJQUxJWkVEICYmIGRyaXZlcl93cmFwcGVyc19pbml0aWFsaXplZCkgewotICAgICAgICAgICAgICAgIG1iZWR0bHNfcHNhX3JhbmRvbV9pbml0KCZnbG9iYWxfZGF0YS5ybmcpOwotICAgICAgICAgICAgICAgIGdsb2JhbF9kYXRhLnJuZ19zdGF0ZSA9IFJOR19JTklUSUFMSVpFRDsKLQotICAgICAgICAgICAgICAgIHN0YXR1cyA9IG1iZWR0bHNfcHNhX3JhbmRvbV9zZWVkKCZnbG9iYWxfZGF0YS5ybmcpOwotICAgICAgICAgICAgICAgIGlmIChzdGF0dXMgPT0gUFNBX1NVQ0NFU1MpIHsKLSAgICAgICAgICAgICAgICAgICAgZ2xvYmFsX2RhdGEucm5nX3N0YXRlID0gUk5HX1NFRURFRDsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0KLSNpZiBkZWZpbmVkKE1CRURUTFNfVEhSRUFESU5HX0MpCi0gICAgICAgICAgICBQU0FfVEhSRUFESU5HX0NIS19HT1RPX0VYSVQobWJlZHRsc19tdXRleF91bmxvY2soCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZtYmVkdGxzX3RocmVhZGluZ19wc2Ffcm5nZGF0YV9tdXRleCkpOwotI2VuZGlmIC8qIGRlZmluZWQoTUJFRFRMU19USFJFQURJTkdfQykgKi8KLQotICAgICAgICAgICAgYnJlYWs7Ci0KLSAgICAgICAgY2FzZSBQU0FfQ1JZUFRPX1NVQlNZU1RFTV9UUkFOU0FDVElPTjoKLQotI2lmIGRlZmluZWQoTUJFRFRMU19USFJFQURJTkdfQykKLSAgICAgICAgICAgIFBTQV9USFJFQURJTkdfQ0hLX0dPVE9fRVhJVChtYmVkdGxzX211dGV4X2xvY2soJm1iZWR0bHNfdGhyZWFkaW5nX3BzYV9nbG9iYWxkYXRhX211dGV4KSk7Ci0jZW5kaWYgLyogZGVmaW5lZChNQkVEVExTX1RIUkVBRElOR19DKSAqLwotCi0gICAgICAgICAgICBpZiAoIShnbG9iYWxfZGF0YS5pbml0aWFsaXplZCAmIFBTQV9DUllQVE9fU1VCU1lTVEVNX1RSQU5TQUNUSU9OX0lOSVRJQUxJWkVEKSkgewotI2lmIGRlZmluZWQoUFNBX0NSWVBUT19TVE9SQUdFX0hBU19UUkFOU0FDVElPTlMpCi0gICAgICAgICAgICAgICAgc3RhdHVzID0gcHNhX2NyeXB0b19sb2FkX3RyYW5zYWN0aW9uKCk7Ci0gICAgICAgICAgICAgICAgaWYgKHN0YXR1cyA9PSBQU0FfU1VDQ0VTUykgewotICAgICAgICAgICAgICAgICAgICBzdGF0dXMgPSBwc2FfY3J5cHRvX3JlY292ZXJfdHJhbnNhY3Rpb24oJnBzYV9jcnlwdG9fdHJhbnNhY3Rpb24pOwotICAgICAgICAgICAgICAgICAgICBpZiAoc3RhdHVzID09IFBTQV9TVUNDRVNTKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBnbG9iYWxfZGF0YS5pbml0aWFsaXplZCB8PSBQU0FfQ1JZUFRPX1NVQlNZU1RFTV9UUkFOU0FDVElPTl9JTklUSUFMSVpFRDsKLSAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICBzdGF0dXMgPSBwc2FfY3J5cHRvX3N0b3BfdHJhbnNhY3Rpb24oKTsKLSAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHN0YXR1cyA9PSBQU0FfRVJST1JfRE9FU19OT1RfRVhJU1QpIHsKLSAgICAgICAgICAgICAgICAgICAgLyogVGhlcmUncyBubyB0cmFuc2FjdGlvbiB0byBjb21wbGV0ZS4gSXQncyBhbGwgZ29vZC4gKi8KLSAgICAgICAgICAgICAgICAgICAgZ2xvYmFsX2RhdGEuaW5pdGlhbGl6ZWQgfD0gUFNBX0NSWVBUT19TVUJTWVNURU1fVFJBTlNBQ1RJT05fSU5JVElBTElaRUQ7Ci0gICAgICAgICAgICAgICAgICAgIHN0YXR1cyA9IFBTQV9TVUNDRVNTOwotICAgICAgICAgICAgICAgIH0KLSNlbHNlIC8qIGRlZmluZWQoUFNBX0NSWVBUT19TVE9SQUdFX0hBU19UUkFOU0FDVElPTlMpICovCi0gICAgICAgICAgICAgICAgZ2xvYmFsX2RhdGEuaW5pdGlhbGl6ZWQgfD0gUFNBX0NSWVBUT19TVUJTWVNURU1fVFJBTlNBQ1RJT05fSU5JVElBTElaRUQ7Ci0gICAgICAgICAgICAgICAgc3RhdHVzID0gUFNBX1NVQ0NFU1M7Ci0jZW5kaWYgLyogZGVmaW5lZChQU0FfQ1JZUFRPX1NUT1JBR0VfSEFTX1RSQU5TQUNUSU9OUykgKi8KLSAgICAgICAgICAgIH0KLQotI2lmIGRlZmluZWQoTUJFRFRMU19USFJFQURJTkdfQykKLSAgICAgICAgICAgIFBTQV9USFJFQURJTkdfQ0hLX0dPVE9fRVhJVChtYmVkdGxzX211dGV4X3VubG9jaygKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJm1iZWR0bHNfdGhyZWFkaW5nX3BzYV9nbG9iYWxkYXRhX211dGV4KSk7Ci0jZW5kaWYgLyogZGVmaW5lZChNQkVEVExTX1RIUkVBRElOR19DKSAqLwotCi0gICAgICAgICAgICBicmVhazsKLQotICAgICAgICBkZWZhdWx0OgotICAgICAgICAgICAgc3RhdHVzID0gUFNBX0VSUk9SX0NPUlJVUFRJT05fREVURUNURUQ7Ci0gICAgfQotCi0gICAgLyogRXhpdCBsYWJlbCBvbmx5IHJlcXVpcmVkIHdoZW4gdXNpbmcgdGhyZWFkaW5nIG1hY3Jvcy4gKi8KLSNpZiBkZWZpbmVkKE1CRURUTFNfVEhSRUFESU5HX0MpCi1leGl0OgotI2VuZGlmIC8qIGRlZmluZWQoTUJFRFRMU19USFJFQURJTkdfQykgKi8KLQotICAgIHJldHVybiBzdGF0dXM7Ci19Ci0KLXBzYV9zdGF0dXNfdCBwc2FfY3J5cHRvX2luaXQodm9pZCkKLXsKLSAgICBwc2Ffc3RhdHVzX3Qgc3RhdHVzOwotCi0gICAgLyogRG91YmxlIGluaXRpYWxpemF0aW9uIGlzIGV4cGxpY2l0bHkgYWxsb3dlZC4gRWFybHkgb3V0IGlmIGV2ZXJ5dGhpbmcgaXMKLSAgICAgKiBkb25lLiAqLwotICAgIGlmIChwc2FfZ2V0X2luaXRpYWxpemVkKCkpIHsKLSAgICAgICAgcmV0dXJuIFBTQV9TVUNDRVNTOwotICAgIH0KLQotICAgIHN0YXR1cyA9IG1iZWR0bHNfcHNhX2NyeXB0b19pbml0X3N1YnN5c3RlbShQU0FfQ1JZUFRPX1NVQlNZU1RFTV9EUklWRVJfV1JBUFBFUlMpOwotICAgIGlmIChzdGF0dXMgIT0gUFNBX1NVQ0NFU1MpIHsKLSAgICAgICAgZ290byBleGl0OwotICAgIH0KLQotICAgIHN0YXR1cyA9IG1iZWR0bHNfcHNhX2NyeXB0b19pbml0X3N1YnN5c3RlbShQU0FfQ1JZUFRPX1NVQlNZU1RFTV9LRVlfU0xPVFMpOwotICAgIGlmIChzdGF0dXMgIT0gUFNBX1NVQ0NFU1MpIHsKLSAgICAgICAgZ290byBleGl0OwotICAgIH0KLQotICAgIHN0YXR1cyA9IG1iZWR0bHNfcHNhX2NyeXB0b19pbml0X3N1YnN5c3RlbShQU0FfQ1JZUFRPX1NVQlNZU1RFTV9STkcpOwotICAgIGlmIChzdGF0dXMgIT0gUFNBX1NVQ0NFU1MpIHsKLSAgICAgICAgZ290byBleGl0OwotICAgIH0KLQotICAgIHN0YXR1cyA9IG1iZWR0bHNfcHNhX2NyeXB0b19pbml0X3N1YnN5c3RlbShQU0FfQ1JZUFRPX1NVQlNZU1RFTV9UUkFOU0FDVElPTik7Ci0KLWV4aXQ6Ci0KLSAgICBpZiAoc3RhdHVzICE9IFBTQV9TVUNDRVNTKSB7Ci0gICAgICAgIG1iZWR0bHNfcHNhX2NyeXB0b19mcmVlKCk7Ci0gICAgfQotCi0gICAgcmV0dXJuIHN0YXR1czsKLX0KLQotI2lmIGRlZmluZWQoUFNBX1dBTlRfQUxHX1NPTUVfUEFLRSkKLXBzYV9zdGF0dXNfdCBwc2FfY3J5cHRvX2RyaXZlcl9wYWtlX2dldF9wYXNzd29yZF9sZW4oCi0gICAgY29uc3QgcHNhX2NyeXB0b19kcml2ZXJfcGFrZV9pbnB1dHNfdCAqaW5wdXRzLAotICAgIHNpemVfdCAqcGFzc3dvcmRfbGVuKQotewotICAgIGlmIChpbnB1dHMtPnBhc3N3b3JkX2xlbiA9PSAwKSB7Ci0gICAgICAgIHJldHVybiBQU0FfRVJST1JfQkFEX1NUQVRFOwotICAgIH0KLQotICAgICpwYXNzd29yZF9sZW4gPSBpbnB1dHMtPnBhc3N3b3JkX2xlbjsKLQotICAgIHJldHVybiBQU0FfU1VDQ0VTUzsKLX0KLQotcHNhX3N0YXR1c190IHBzYV9jcnlwdG9fZHJpdmVyX3Bha2VfZ2V0X3Bhc3N3b3JkKAotICAgIGNvbnN0IHBzYV9jcnlwdG9fZHJpdmVyX3Bha2VfaW5wdXRzX3QgKmlucHV0cywKLSAgICB1aW50OF90ICpidWZmZXIsIHNpemVfdCBidWZmZXJfc2l6ZSwgc2l6ZV90ICpidWZmZXJfbGVuZ3RoKQotewotICAgIGlmIChpbnB1dHMtPnBhc3N3b3JkX2xlbiA9PSAwKSB7Ci0gICAgICAgIHJldHVybiBQU0FfRVJST1JfQkFEX1NUQVRFOwotICAgIH0KLQotICAgIGlmIChidWZmZXJfc2l6ZSA8IGlucHV0cy0+cGFzc3dvcmRfbGVuKSB7Ci0gICAgICAgIHJldHVybiBQU0FfRVJST1JfQlVGRkVSX1RPT19TTUFMTDsKLSAgICB9Ci0KLSAgICBtZW1jcHkoYnVmZmVyLCBpbnB1dHMtPnBhc3N3b3JkLCBpbnB1dHMtPnBhc3N3b3JkX2xlbik7Ci0gICAgKmJ1ZmZlcl9sZW5ndGggPSBpbnB1dHMtPnBhc3N3b3JkX2xlbjsKLQotICAgIHJldHVybiBQU0FfU1VDQ0VTUzsKLX0KLQotcHNhX3N0YXR1c190IHBzYV9jcnlwdG9fZHJpdmVyX3Bha2VfZ2V0X3VzZXJfbGVuKAotICAgIGNvbnN0IHBzYV9jcnlwdG9fZHJpdmVyX3Bha2VfaW5wdXRzX3QgKmlucHV0cywKLSAgICBzaXplX3QgKnVzZXJfbGVuKQotewotICAgIGlmIChpbnB1dHMtPnVzZXJfbGVuID09IDApIHsKLSAgICAgICAgcmV0dXJuIFBTQV9FUlJPUl9CQURfU1RBVEU7Ci0gICAgfQotCi0gICAgKnVzZXJfbGVuID0gaW5wdXRzLT51c2VyX2xlbjsKLQotICAgIHJldHVybiBQU0FfU1VDQ0VTUzsKLX0KLQotcHNhX3N0YXR1c190IHBzYV9jcnlwdG9fZHJpdmVyX3Bha2VfZ2V0X3VzZXIoCi0gICAgY29uc3QgcHNhX2NyeXB0b19kcml2ZXJfcGFrZV9pbnB1dHNfdCAqaW5wdXRzLAotICAgIHVpbnQ4X3QgKnVzZXJfaWQsIHNpemVfdCB1c2VyX2lkX3NpemUsIHNpemVfdCAqdXNlcl9pZF9sZW4pCi17Ci0gICAgaWYgKGlucHV0cy0+dXNlcl9sZW4gPT0gMCkgewotICAgICAgICByZXR1cm4gUFNBX0VSUk9SX0JBRF9TVEFURTsKLSAgICB9Ci0KLSAgICBpZiAodXNlcl9pZF9zaXplIDwgaW5wdXRzLT51c2VyX2xlbikgewotICAgICAgICByZXR1cm4gUFNBX0VSUk9SX0JVRkZFUl9UT09fU01BTEw7Ci0gICAgfQotCi0gICAgbWVtY3B5KHVzZXJfaWQsIGlucHV0cy0+dXNlciwgaW5wdXRzLT51c2VyX2xlbik7Ci0gICAgKnVzZXJfaWRfbGVuID0gaW5wdXRzLT51c2VyX2xlbjsKLQotICAgIHJldHVybiBQU0FfU1VDQ0VTUzsKLX0KLQotcHNhX3N0YXR1c190IHBzYV9jcnlwdG9fZHJpdmVyX3Bha2VfZ2V0X3BlZXJfbGVuKAotICAgIGNvbnN0IHBzYV9jcnlwdG9fZHJpdmVyX3Bha2VfaW5wdXRzX3QgKmlucHV0cywKLSAgICBzaXplX3QgKnBlZXJfbGVuKQotewotICAgIGlmIChpbnB1dHMtPnBlZXJfbGVuID09IDApIHsKLSAgICAgICAgcmV0dXJuIFBTQV9FUlJPUl9CQURfU1RBVEU7Ci0gICAgfQotCi0gICAgKnBlZXJfbGVuID0gaW5wdXRzLT5wZWVyX2xlbjsKLQotICAgIHJldHVybiBQU0FfU1VDQ0VTUzsKLX0KLQotcHNhX3N0YXR1c190IHBzYV9jcnlwdG9fZHJpdmVyX3Bha2VfZ2V0X3BlZXIoCi0gICAgY29uc3QgcHNhX2NyeXB0b19kcml2ZXJfcGFrZV9pbnB1dHNfdCAqaW5wdXRzLAotICAgIHVpbnQ4X3QgKnBlZXJfaWQsIHNpemVfdCBwZWVyX2lkX3NpemUsIHNpemVfdCAqcGVlcl9pZF9sZW5ndGgpCi17Ci0gICAgaWYgKGlucHV0cy0+cGVlcl9sZW4gPT0gMCkgewotICAgICAgICByZXR1cm4gUFNBX0VSUk9SX0JBRF9TVEFURTsKLSAgICB9Ci0KLSAgICBpZiAocGVlcl9pZF9zaXplIDwgaW5wdXRzLT5wZWVyX2xlbikgewotICAgICAgICByZXR1cm4gUFNBX0VSUk9SX0JVRkZFUl9UT09fU01BTEw7Ci0gICAgfQotCi0gICAgbWVtY3B5KHBlZXJfaWQsIGlucHV0cy0+cGVlciwgaW5wdXRzLT5wZWVyX2xlbik7Ci0gICAgKnBlZXJfaWRfbGVuZ3RoID0gaW5wdXRzLT5wZWVyX2xlbjsKLQotICAgIHJldHVybiBQU0FfU1VDQ0VTUzsKLX0KLQotcHNhX3N0YXR1c190IHBzYV9jcnlwdG9fZHJpdmVyX3Bha2VfZ2V0X2NpcGhlcl9zdWl0ZSgKLSAgICBjb25zdCBwc2FfY3J5cHRvX2RyaXZlcl9wYWtlX2lucHV0c190ICppbnB1dHMsCi0gICAgcHNhX3Bha2VfY2lwaGVyX3N1aXRlX3QgKmNpcGhlcl9zdWl0ZSkKLXsKLSAgICBpZiAoaW5wdXRzLT5jaXBoZXJfc3VpdGUuYWxnb3JpdGhtID09IFBTQV9BTEdfTk9ORSkgewotICAgICAgICByZXR1cm4gUFNBX0VSUk9SX0JBRF9TVEFURTsKLSAgICB9Ci0KLSAgICAqY2lwaGVyX3N1aXRlID0gaW5wdXRzLT5jaXBoZXJfc3VpdGU7Ci0KLSAgICByZXR1cm4gUFNBX1NVQ0NFU1M7Ci19Ci0KLXBzYV9zdGF0dXNfdCBwc2FfcGFrZV9zZXR1cCgKLSAgICBwc2FfcGFrZV9vcGVyYXRpb25fdCAqb3BlcmF0aW9uLAotICAgIGNvbnN0IHBzYV9wYWtlX2NpcGhlcl9zdWl0ZV90ICpjaXBoZXJfc3VpdGUpCi17Ci0gICAgcHNhX3N0YXR1c190IHN0YXR1cyA9IFBTQV9FUlJPUl9DT1JSVVBUSU9OX0RFVEVDVEVEOwotCi0gICAgaWYgKG9wZXJhdGlvbi0+c3RhZ2UgIT0gUFNBX1BBS0VfT1BFUkFUSU9OX1NUQUdFX1NFVFVQKSB7Ci0gICAgICAgIHN0YXR1cyA9IFBTQV9FUlJPUl9CQURfU1RBVEU7Ci0gICAgICAgIGdvdG8gZXhpdDsKLSAgICB9Ci0KLSAgICBpZiAoUFNBX0FMR19JU19QQUtFKGNpcGhlcl9zdWl0ZS0+YWxnb3JpdGhtKSA9PSAwIHx8Ci0gICAgICAgIFBTQV9BTEdfSVNfSEFTSChjaXBoZXJfc3VpdGUtPmhhc2gpID09IDApIHsKLSAgICAgICAgc3RhdHVzID0gUFNBX0VSUk9SX0lOVkFMSURfQVJHVU1FTlQ7Ci0gICAgICAgIGdvdG8gZXhpdDsKLSAgICB9Ci0KLSAgICBtZW1zZXQoJm9wZXJhdGlvbi0+ZGF0YS5pbnB1dHMsIDAsIHNpemVvZihvcGVyYXRpb24tPmRhdGEuaW5wdXRzKSk7Ci0KLSAgICBvcGVyYXRpb24tPmFsZyA9IGNpcGhlcl9zdWl0ZS0+YWxnb3JpdGhtOwotICAgIG9wZXJhdGlvbi0+cHJpbWl0aXZlID0gUFNBX1BBS0VfUFJJTUlUSVZFKGNpcGhlcl9zdWl0ZS0+dHlwZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaXBoZXJfc3VpdGUtPmZhbWlseSwgY2lwaGVyX3N1aXRlLT5iaXRzKTsKLSAgICBvcGVyYXRpb24tPmRhdGEuaW5wdXRzLmNpcGhlcl9zdWl0ZSA9ICpjaXBoZXJfc3VpdGU7Ci0KLSNpZiBkZWZpbmVkKFBTQV9XQU5UX0FMR19KUEFLRSkKLSAgICBpZiAob3BlcmF0aW9uLT5hbGcgPT0gUFNBX0FMR19KUEFLRSkgewotICAgICAgICBwc2FfanBha2VfY29tcHV0YXRpb25fc3RhZ2VfdCAqY29tcHV0YXRpb25fc3RhZ2UgPQotICAgICAgICAgICAgJm9wZXJhdGlvbi0+Y29tcHV0YXRpb25fc3RhZ2UuanBha2U7Ci0KLSAgICAgICAgbWVtc2V0KGNvbXB1dGF0aW9uX3N0YWdlLCAwLCBzaXplb2YoKmNvbXB1dGF0aW9uX3N0YWdlKSk7Ci0gICAgICAgIGNvbXB1dGF0aW9uX3N0YWdlLT5zdGVwID0gUFNBX1BBS0VfU1RFUF9LRVlfU0hBUkU7Ci0gICAgfSBlbHNlCi0jZW5kaWYgLyogUFNBX1dBTlRfQUxHX0pQQUtFICovCi0gICAgewotICAgICAgICBzdGF0dXMgPSBQU0FfRVJST1JfTk9UX1NVUFBPUlRFRDsKLSAgICAgICAgZ290byBleGl0OwotICAgIH0KLQotICAgIG9wZXJhdGlvbi0+c3RhZ2UgPSBQU0FfUEFLRV9PUEVSQVRJT05fU1RBR0VfQ09MTEVDVF9JTlBVVFM7Ci0KLSAgICByZXR1cm4gUFNBX1NVQ0NFU1M7Ci1leGl0OgotICAgIHBzYV9wYWtlX2Fib3J0KG9wZXJhdGlvbik7Ci0gICAgcmV0dXJuIHN0YXR1czsKLX0KLQotcHNhX3N0YXR1c190IHBzYV9wYWtlX3NldF9wYXNzd29yZF9rZXkoCi0gICAgcHNhX3Bha2Vfb3BlcmF0aW9uX3QgKm9wZXJhdGlvbiwKLSAgICBtYmVkdGxzX3N2Y19rZXlfaWRfdCBwYXNzd29yZCkKLXsKLSAgICBwc2Ffc3RhdHVzX3Qgc3RhdHVzID0gUFNBX0VSUk9SX0NPUlJVUFRJT05fREVURUNURUQ7Ci0gICAgcHNhX3N0YXR1c190IHVubG9ja19zdGF0dXMgPSBQU0FfRVJST1JfQ09SUlVQVElPTl9ERVRFQ1RFRDsKLSAgICBwc2Ffa2V5X3Nsb3RfdCAqc2xvdCA9IE5VTEw7Ci0gICAgcHNhX2tleV90eXBlX3QgdHlwZTsKLQotICAgIGlmIChvcGVyYXRpb24tPnN0YWdlICE9IFBTQV9QQUtFX09QRVJBVElPTl9TVEFHRV9DT0xMRUNUX0lOUFVUUykgewotICAgICAgICBzdGF0dXMgPSBQU0FfRVJST1JfQkFEX1NUQVRFOwotICAgICAgICBnb3RvIGV4aXQ7Ci0gICAgfQotCi0gICAgc3RhdHVzID0gcHNhX2dldF9hbmRfbG9ja19rZXlfc2xvdF93aXRoX3BvbGljeShwYXNzd29yZCwgJnNsb3QsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQU0FfS0VZX1VTQUdFX0RFUklWRSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wZXJhdGlvbi0+YWxnKTsKLSAgICBpZiAoc3RhdHVzICE9IFBTQV9TVUNDRVNTKSB7Ci0gICAgICAgIGdvdG8gZXhpdDsKLSAgICB9Ci0KLSAgICB0eXBlID0gcHNhX2dldF9rZXlfdHlwZSgmc2xvdC0+YXR0cik7Ci0KLSAgICBpZiAodHlwZSAhPSBQU0FfS0VZX1RZUEVfUEFTU1dPUkQgJiYKLSAgICAgICAgdHlwZSAhPSBQU0FfS0VZX1RZUEVfUEFTU1dPUkRfSEFTSCkgewotICAgICAgICBzdGF0dXMgPSBQU0FfRVJST1JfSU5WQUxJRF9BUkdVTUVOVDsKLSAgICAgICAgZ290byBleGl0OwotICAgIH0KLQotICAgIG9wZXJhdGlvbi0+ZGF0YS5pbnB1dHMucGFzc3dvcmQgPSBtYmVkdGxzX2NhbGxvYygxLCBzbG90LT5rZXkuYnl0ZXMpOwotICAgIGlmIChvcGVyYXRpb24tPmRhdGEuaW5wdXRzLnBhc3N3b3JkID09IE5VTEwpIHsKLSAgICAgICAgc3RhdHVzID0gUFNBX0VSUk9SX0lOU1VGRklDSUVOVF9NRU1PUlk7Ci0gICAgICAgIGdvdG8gZXhpdDsKLSAgICB9Ci0KLSAgICBtZW1jcHkob3BlcmF0aW9uLT5kYXRhLmlucHV0cy5wYXNzd29yZCwgc2xvdC0+a2V5LmRhdGEsIHNsb3QtPmtleS5ieXRlcyk7Ci0gICAgb3BlcmF0aW9uLT5kYXRhLmlucHV0cy5wYXNzd29yZF9sZW4gPSBzbG90LT5rZXkuYnl0ZXM7Ci0gICAgb3BlcmF0aW9uLT5kYXRhLmlucHV0cy5hdHRyaWJ1dGVzID0gc2xvdC0+YXR0cjsKLQotZXhpdDoKLSAgICBpZiAoc3RhdHVzICE9IFBTQV9TVUNDRVNTKSB7Ci0gICAgICAgIHBzYV9wYWtlX2Fib3J0KG9wZXJhdGlvbik7Ci0gICAgfQotICAgIHVubG9ja19zdGF0dXMgPSBwc2FfdW5yZWdpc3Rlcl9yZWFkX3VuZGVyX211dGV4KHNsb3QpOwotICAgIHJldHVybiAoc3RhdHVzID09IFBTQV9TVUNDRVNTKSA/IHVubG9ja19zdGF0dXMgOiBzdGF0dXM7Ci19Ci0KLXBzYV9zdGF0dXNfdCBwc2FfcGFrZV9zZXRfdXNlcigKLSAgICBwc2FfcGFrZV9vcGVyYXRpb25fdCAqb3BlcmF0aW9uLAotICAgIGNvbnN0IHVpbnQ4X3QgKnVzZXJfaWRfZXh0ZXJuYWwsCi0gICAgc2l6ZV90IHVzZXJfaWRfbGVuKQotewotICAgIHBzYV9zdGF0dXNfdCBzdGF0dXMgPSBQU0FfRVJST1JfQ09SUlVQVElPTl9ERVRFQ1RFRDsKLSAgICBMT0NBTF9JTlBVVF9ERUNMQVJFKHVzZXJfaWRfZXh0ZXJuYWwsIHVzZXJfaWQpOwotCi0gICAgaWYgKG9wZXJhdGlvbi0+c3RhZ2UgIT0gUFNBX1BBS0VfT1BFUkFUSU9OX1NUQUdFX0NPTExFQ1RfSU5QVVRTKSB7Ci0gICAgICAgIHN0YXR1cyA9IFBTQV9FUlJPUl9CQURfU1RBVEU7Ci0gICAgICAgIGdvdG8gZXhpdDsKLSAgICB9Ci0KLSAgICBpZiAodXNlcl9pZF9sZW4gPT0gMCkgewotICAgICAgICBzdGF0dXMgPSBQU0FfRVJST1JfSU5WQUxJRF9BUkdVTUVOVDsKLSAgICAgICAgZ290byBleGl0OwotICAgIH0KLQotICAgIGlmIChvcGVyYXRpb24tPmRhdGEuaW5wdXRzLnVzZXJfbGVuICE9IDApIHsKLSAgICAgICAgc3RhdHVzID0gUFNBX0VSUk9SX0JBRF9TVEFURTsKLSAgICAgICAgZ290byBleGl0OwotICAgIH0KLQotICAgIG9wZXJhdGlvbi0+ZGF0YS5pbnB1dHMudXNlciA9IG1iZWR0bHNfY2FsbG9jKDEsIHVzZXJfaWRfbGVuKTsKLSAgICBpZiAob3BlcmF0aW9uLT5kYXRhLmlucHV0cy51c2VyID09IE5VTEwpIHsKLSAgICAgICAgc3RhdHVzID0gUFNBX0VSUk9SX0lOU1VGRklDSUVOVF9NRU1PUlk7Ci0gICAgICAgIGdvdG8gZXhpdDsKLSAgICB9Ci0KLSAgICBMT0NBTF9JTlBVVF9BTExPQyh1c2VyX2lkX2V4dGVybmFsLCB1c2VyX2lkX2xlbiwgdXNlcl9pZCk7Ci0KLSAgICBtZW1jcHkob3BlcmF0aW9uLT5kYXRhLmlucHV0cy51c2VyLCB1c2VyX2lkLCB1c2VyX2lkX2xlbik7Ci0gICAgb3BlcmF0aW9uLT5kYXRhLmlucHV0cy51c2VyX2xlbiA9IHVzZXJfaWRfbGVuOwotCi0gICAgc3RhdHVzID0gUFNBX1NVQ0NFU1M7Ci0KLWV4aXQ6Ci0gICAgTE9DQUxfSU5QVVRfRlJFRSh1c2VyX2lkX2V4dGVybmFsLCB1c2VyX2lkKTsKLSAgICBpZiAoc3RhdHVzICE9IFBTQV9TVUNDRVNTKSB7Ci0gICAgICAgIHBzYV9wYWtlX2Fib3J0KG9wZXJhdGlvbik7Ci0gICAgfQotICAgIHJldHVybiBzdGF0dXM7Ci19Ci0KLXBzYV9zdGF0dXNfdCBwc2FfcGFrZV9zZXRfcGVlcigKLSAgICBwc2FfcGFrZV9vcGVyYXRpb25fdCAqb3BlcmF0aW9uLAotICAgIGNvbnN0IHVpbnQ4X3QgKnBlZXJfaWRfZXh0ZXJuYWwsCi0gICAgc2l6ZV90IHBlZXJfaWRfbGVuKQotewotICAgIHBzYV9zdGF0dXNfdCBzdGF0dXMgPSBQU0FfRVJST1JfQ09SUlVQVElPTl9ERVRFQ1RFRDsKLSAgICBMT0NBTF9JTlBVVF9ERUNMQVJFKHBlZXJfaWRfZXh0ZXJuYWwsIHBlZXJfaWQpOwotCi0gICAgaWYgKG9wZXJhdGlvbi0+c3RhZ2UgIT0gUFNBX1BBS0VfT1BFUkFUSU9OX1NUQUdFX0NPTExFQ1RfSU5QVVRTKSB7Ci0gICAgICAgIHN0YXR1cyA9IFBTQV9FUlJPUl9CQURfU1RBVEU7Ci0gICAgICAgIGdvdG8gZXhpdDsKLSAgICB9Ci0KLSAgICBpZiAocGVlcl9pZF9sZW4gPT0gMCkgewotICAgICAgICBzdGF0dXMgPSBQU0FfRVJST1JfSU5WQUxJRF9BUkdVTUVOVDsKLSAgICAgICAgZ290byBleGl0OwotICAgIH0KLQotICAgIGlmIChvcGVyYXRpb24tPmRhdGEuaW5wdXRzLnBlZXJfbGVuICE9IDApIHsKLSAgICAgICAgc3RhdHVzID0gUFNBX0VSUk9SX0JBRF9TVEFURTsKLSAgICAgICAgZ290byBleGl0OwotICAgIH0KLQotICAgIG9wZXJhdGlvbi0+ZGF0YS5pbnB1dHMucGVlciA9IG1iZWR0bHNfY2FsbG9jKDEsIHBlZXJfaWRfbGVuKTsKLSAgICBpZiAob3BlcmF0aW9uLT5kYXRhLmlucHV0cy5wZWVyID09IE5VTEwpIHsKLSAgICAgICAgc3RhdHVzID0gUFNBX0VSUk9SX0lOU1VGRklDSUVOVF9NRU1PUlk7Ci0gICAgICAgIGdvdG8gZXhpdDsKLSAgICB9Ci0KLSAgICBMT0NBTF9JTlBVVF9BTExPQyhwZWVyX2lkX2V4dGVybmFsLCBwZWVyX2lkX2xlbiwgcGVlcl9pZCk7Ci0KLSAgICBtZW1jcHkob3BlcmF0aW9uLT5kYXRhLmlucHV0cy5wZWVyLCBwZWVyX2lkLCBwZWVyX2lkX2xlbik7Ci0gICAgb3BlcmF0aW9uLT5kYXRhLmlucHV0cy5wZWVyX2xlbiA9IHBlZXJfaWRfbGVuOwotCi0gICAgc3RhdHVzID0gUFNBX1NVQ0NFU1M7Ci0KLWV4aXQ6Ci0gICAgTE9DQUxfSU5QVVRfRlJFRShwZWVyX2lkX2V4dGVybmFsLCBwZWVyX2lkKTsKLSAgICBpZiAoc3RhdHVzICE9IFBTQV9TVUNDRVNTKSB7Ci0gICAgICAgIHBzYV9wYWtlX2Fib3J0KG9wZXJhdGlvbik7Ci0gICAgfQotICAgIHJldHVybiBzdGF0dXM7Ci19Ci0KLXBzYV9zdGF0dXNfdCBwc2FfcGFrZV9zZXRfcm9sZSgKLSAgICBwc2FfcGFrZV9vcGVyYXRpb25fdCAqb3BlcmF0aW9uLAotICAgIHBzYV9wYWtlX3JvbGVfdCByb2xlKQotewotICAgIHBzYV9zdGF0dXNfdCBzdGF0dXMgPSBQU0FfRVJST1JfQ09SUlVQVElPTl9ERVRFQ1RFRDsKLQotICAgIGlmIChvcGVyYXRpb24tPnN0YWdlICE9IFBTQV9QQUtFX09QRVJBVElPTl9TVEFHRV9DT0xMRUNUX0lOUFVUUykgewotICAgICAgICBzdGF0dXMgPSBQU0FfRVJST1JfQkFEX1NUQVRFOwotICAgICAgICBnb3RvIGV4aXQ7Ci0gICAgfQotCi0gICAgc3dpdGNoIChvcGVyYXRpb24tPmFsZykgewotI2lmIGRlZmluZWQoUFNBX1dBTlRfQUxHX0pQQUtFKQotICAgICAgICBjYXNlIFBTQV9BTEdfSlBBS0U6Ci0gICAgICAgICAgICBpZiAocm9sZSA9PSBQU0FfUEFLRV9ST0xFX05PTkUpIHsKLSAgICAgICAgICAgICAgICByZXR1cm4gUFNBX1NVQ0NFU1M7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBzdGF0dXMgPSBQU0FfRVJST1JfSU5WQUxJRF9BUkdVTUVOVDsKLSAgICAgICAgICAgIGJyZWFrOwotI2VuZGlmCi0gICAgICAgIGRlZmF1bHQ6Ci0gICAgICAgICAgICAodm9pZCkgcm9sZTsKLSAgICAgICAgICAgIHN0YXR1cyA9IFBTQV9FUlJPUl9OT1RfU1VQUE9SVEVEOwotICAgICAgICAgICAgZ290byBleGl0OwotICAgIH0KLWV4aXQ6Ci0gICAgcHNhX3Bha2VfYWJvcnQob3BlcmF0aW9uKTsKLSAgICByZXR1cm4gc3RhdHVzOwotfQotCi0vKiBBdXhpbGlhcnkgZnVuY3Rpb24gdG8gY29udmVydCBjb3JlIGNvbXB1dGF0aW9uIHN0YWdlIHRvIHNpbmdsZSBkcml2ZXIgc3RlcC4gKi8KLSNpZiBkZWZpbmVkKFBTQV9XQU5UX0FMR19KUEFLRSkKLXN0YXRpYyBwc2FfY3J5cHRvX2RyaXZlcl9wYWtlX3N0ZXBfdCBjb252ZXJ0X2pwYWtlX2NvbXB1dGF0aW9uX3N0YWdlX3RvX2RyaXZlcl9zdGVwKAotICAgIHBzYV9qcGFrZV9jb21wdXRhdGlvbl9zdGFnZV90ICpzdGFnZSkKLXsKLSAgICBwc2FfY3J5cHRvX2RyaXZlcl9wYWtlX3N0ZXBfdCBrZXlfc2hhcmVfc3RlcDsKLSAgICBpZiAoc3RhZ2UtPnJvdW5kID09IFBTQV9KUEFLRV9GSVJTVCkgewotICAgICAgICBpbnQgaXNfeDE7Ci0KLSAgICAgICAgaWYgKHN0YWdlLT5pb19tb2RlID09IFBTQV9KUEFLRV9PVVRQVVQpIHsKLSAgICAgICAgICAgIGlzX3gxID0gKHN0YWdlLT5vdXRwdXRzIDwgMSk7Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBpc194MSA9IChzdGFnZS0+aW5wdXRzIDwgMSk7Ci0gICAgICAgIH0KLQotICAgICAgICBrZXlfc2hhcmVfc3RlcCA9IGlzX3gxID8KLSAgICAgICAgICAgICAgICAgICAgICAgICBQU0FfSlBBS0VfWDFfU1RFUF9LRVlfU0hBUkUgOgotICAgICAgICAgICAgICAgICAgICAgICAgIFBTQV9KUEFLRV9YMl9TVEVQX0tFWV9TSEFSRTsKLSAgICB9IGVsc2UgaWYgKHN0YWdlLT5yb3VuZCA9PSBQU0FfSlBBS0VfU0VDT05EKSB7Ci0gICAgICAgIGtleV9zaGFyZV9zdGVwID0gKHN0YWdlLT5pb19tb2RlID09IFBTQV9KUEFLRV9PVVRQVVQpID8KLSAgICAgICAgICAgICAgICAgICAgICAgICBQU0FfSlBBS0VfWDJTX1NURVBfS0VZX1NIQVJFIDoKLSAgICAgICAgICAgICAgICAgICAgICAgICBQU0FfSlBBS0VfWDRTX1NURVBfS0VZX1NIQVJFOwotICAgIH0gZWxzZSB7Ci0gICAgICAgIHJldHVybiBQU0FfSlBBS0VfU1RFUF9JTlZBTElEOwotICAgIH0KLSAgICByZXR1cm4gKHBzYV9jcnlwdG9fZHJpdmVyX3Bha2Vfc3RlcF90KSAoa2V5X3NoYXJlX3N0ZXAgKyBzdGFnZS0+c3RlcCAtIFBTQV9QQUtFX1NURVBfS0VZX1NIQVJFKTsKLX0KLSNlbmRpZiAvKiBQU0FfV0FOVF9BTEdfSlBBS0UgKi8KLQotc3RhdGljIHBzYV9zdGF0dXNfdCBwc2FfcGFrZV9jb21wbGV0ZV9pbnB1dHMoCi0gICAgcHNhX3Bha2Vfb3BlcmF0aW9uX3QgKm9wZXJhdGlvbikKLXsKLSAgICBwc2Ffc3RhdHVzX3Qgc3RhdHVzID0gUFNBX0VSUk9SX0NPUlJVUFRJT05fREVURUNURUQ7Ci0gICAgLyogQ3JlYXRlIGNvcHkgb2YgdGhlIGlucHV0cyBvbiBzdGFjayBhcyBpbnB1dHMgc2hhcmUgbWVtb3J5Ci0gICAgICAgd2l0aCB0aGUgZHJpdmVyIGNvbnRleHQgd2hpY2ggd2lsbCBiZSBzZXR1cCBieSB0aGUgZHJpdmVyLiAqLwotICAgIHBzYV9jcnlwdG9fZHJpdmVyX3Bha2VfaW5wdXRzX3QgaW5wdXRzID0gb3BlcmF0aW9uLT5kYXRhLmlucHV0czsKLQotICAgIGlmIChpbnB1dHMucGFzc3dvcmRfbGVuID09IDApIHsKLSAgICAgICAgcmV0dXJuIFBTQV9FUlJPUl9CQURfU1RBVEU7Ci0gICAgfQotCi0gICAgaWYgKG9wZXJhdGlvbi0+YWxnID09IFBTQV9BTEdfSlBBS0UpIHsKLSAgICAgICAgaWYgKGlucHV0cy51c2VyX2xlbiA9PSAwIHx8IGlucHV0cy5wZWVyX2xlbiA9PSAwKSB7Ci0gICAgICAgICAgICByZXR1cm4gUFNBX0VSUk9SX0JBRF9TVEFURTsKLSAgICAgICAgfQotICAgIH0KLQotICAgIC8qIENsZWFyIGRyaXZlciBjb250ZXh0ICovCi0gICAgbWJlZHRsc19wbGF0Zm9ybV96ZXJvaXplKCZvcGVyYXRpb24tPmRhdGEsIHNpemVvZihvcGVyYXRpb24tPmRhdGEpKTsKLQotICAgIHN0YXR1cyA9IHBzYV9kcml2ZXJfd3JhcHBlcl9wYWtlX3NldHVwKG9wZXJhdGlvbiwgJmlucHV0cyk7Ci0KLSAgICAvKiBEcml2ZXIgaXMgcmVzcG9uc2libGUgZm9yIGNyZWF0aW5nIGl0cyBvd24gY29weSBvZiB0aGUgcGFzc3dvcmQuICovCi0gICAgbWJlZHRsc196ZXJvaXplX2FuZF9mcmVlKGlucHV0cy5wYXNzd29yZCwgaW5wdXRzLnBhc3N3b3JkX2xlbik7Ci0KLSAgICAvKiBVc2VyIGFuZCBwZWVyIGFyZSB0cmFuc2xhdGVkIHRvIHJvbGUuICovCi0gICAgbWJlZHRsc19mcmVlKGlucHV0cy51c2VyKTsKLSAgICBtYmVkdGxzX2ZyZWUoaW5wdXRzLnBlZXIpOwotCi0gICAgaWYgKHN0YXR1cyA9PSBQU0FfU1VDQ0VTUykgewotI2lmIGRlZmluZWQoUFNBX1dBTlRfQUxHX0pQQUtFKQotICAgICAgICBpZiAob3BlcmF0aW9uLT5hbGcgPT0gUFNBX0FMR19KUEFLRSkgewotICAgICAgICAgICAgb3BlcmF0aW9uLT5zdGFnZSA9IFBTQV9QQUtFX09QRVJBVElPTl9TVEFHRV9DT01QVVRBVElPTjsKLSAgICAgICAgfSBlbHNlCi0jZW5kaWYgLyogUFNBX1dBTlRfQUxHX0pQQUtFICovCi0gICAgICAgIHsKLSAgICAgICAgICAgIHN0YXR1cyA9IFBTQV9FUlJPUl9OT1RfU1VQUE9SVEVEOwotICAgICAgICB9Ci0gICAgfQotICAgIHJldHVybiBzdGF0dXM7Ci19Ci0KLSNpZiBkZWZpbmVkKFBTQV9XQU5UX0FMR19KUEFLRSkKLXN0YXRpYyBwc2Ffc3RhdHVzX3QgcHNhX2pwYWtlX3Byb2xvZ3VlKAotICAgIHBzYV9wYWtlX29wZXJhdGlvbl90ICpvcGVyYXRpb24sCi0gICAgcHNhX3Bha2Vfc3RlcF90IHN0ZXAsCi0gICAgcHNhX2pwYWtlX2lvX21vZGVfdCBpb19tb2RlKQotewotICAgIGlmIChzdGVwICE9IFBTQV9QQUtFX1NURVBfS0VZX1NIQVJFICYmCi0gICAgICAgIHN0ZXAgIT0gUFNBX1BBS0VfU1RFUF9aS19QVUJMSUMgJiYKLSAgICAgICAgc3RlcCAhPSBQU0FfUEFLRV9TVEVQX1pLX1BST09GKSB7Ci0gICAgICAgIHJldHVybiBQU0FfRVJST1JfSU5WQUxJRF9BUkdVTUVOVDsKLSAgICB9Ci0KLSAgICBwc2FfanBha2VfY29tcHV0YXRpb25fc3RhZ2VfdCAqY29tcHV0YXRpb25fc3RhZ2UgPQotICAgICAgICAmb3BlcmF0aW9uLT5jb21wdXRhdGlvbl9zdGFnZS5qcGFrZTsKLQotICAgIGlmIChjb21wdXRhdGlvbl9zdGFnZS0+cm91bmQgIT0gUFNBX0pQQUtFX0ZJUlNUICYmCi0gICAgICAgIGNvbXB1dGF0aW9uX3N0YWdlLT5yb3VuZCAhPSBQU0FfSlBBS0VfU0VDT05EKSB7Ci0gICAgICAgIHJldHVybiBQU0FfRVJST1JfQkFEX1NUQVRFOwotICAgIH0KLQotICAgIC8qIENoZWNrIHRoYXQgdGhlIHN0ZXAgd2UgYXJlIGdpdmVuIGlzIHRoZSBvbmUgd2Ugd2VyZSBleHBlY3RpbmcgKi8KLSAgICBpZiAoc3RlcCAhPSBjb21wdXRhdGlvbl9zdGFnZS0+c3RlcCkgewotICAgICAgICByZXR1cm4gUFNBX0VSUk9SX0JBRF9TVEFURTsKLSAgICB9Ci0KLSAgICBpZiAoc3RlcCA9PSBQU0FfUEFLRV9TVEVQX0tFWV9TSEFSRSAmJgotICAgICAgICBjb21wdXRhdGlvbl9zdGFnZS0+aW5wdXRzID09IDAgJiYKLSAgICAgICAgY29tcHV0YXRpb25fc3RhZ2UtPm91dHB1dHMgPT0gMCkgewotICAgICAgICAvKiBTdGFydCBvZiB0aGUgcm91bmQsIHNvIGZ1bmN0aW9uIGRlY2lkZXMgd2hldGhlciB3ZSBhcmUgaW5wdXR0aW5nCi0gICAgICAgICAqIG9yIG91dHB1dHRpbmcgKi8KLSAgICAgICAgY29tcHV0YXRpb25fc3RhZ2UtPmlvX21vZGUgPSBpb19tb2RlOwotICAgIH0gZWxzZSBpZiAoY29tcHV0YXRpb25fc3RhZ2UtPmlvX21vZGUgIT0gaW9fbW9kZSkgewotICAgICAgICAvKiBNaWRkbGUgb2YgdGhlIHJvdW5kIHNvIHRoZSBtb2RlIHdlIGFyZSBpbiBtdXN0IG1hdGNoIHRoZSBmdW5jdGlvbgotICAgICAgICAgKiBjYWxsZWQgYnkgdGhlIHVzZXIgKi8KLSAgICAgICAgcmV0dXJuIFBTQV9FUlJPUl9CQURfU1RBVEU7Ci0gICAgfQotCi0gICAgcmV0dXJuIFBTQV9TVUNDRVNTOwotfQotCi1zdGF0aWMgcHNhX3N0YXR1c190IHBzYV9qcGFrZV9lcGlsb2d1ZSgKLSAgICBwc2FfcGFrZV9vcGVyYXRpb25fdCAqb3BlcmF0aW9uLAotICAgIHBzYV9qcGFrZV9pb19tb2RlX3QgaW9fbW9kZSkKLXsKLSAgICBwc2FfanBha2VfY29tcHV0YXRpb25fc3RhZ2VfdCAqc3RhZ2UgPQotICAgICAgICAmb3BlcmF0aW9uLT5jb21wdXRhdGlvbl9zdGFnZS5qcGFrZTsKLQotICAgIGlmIChzdGFnZS0+c3RlcCA9PSBQU0FfUEFLRV9TVEVQX1pLX1BST09GKSB7Ci0gICAgICAgIC8qIEVuZCBvZiBhbiBpbnB1dC9vdXRwdXQgKi8KLSAgICAgICAgaWYgKGlvX21vZGUgPT0gUFNBX0pQQUtFX0lOUFVUKSB7Ci0gICAgICAgICAgICBzdGFnZS0+aW5wdXRzKys7Ci0gICAgICAgICAgICBpZiAoc3RhZ2UtPmlucHV0cyA9PSBQU0FfSlBBS0VfRVhQRUNURURfSU5QVVRTKHN0YWdlLT5yb3VuZCkpIHsKLSAgICAgICAgICAgICAgICBzdGFnZS0+aW9fbW9kZSA9IFBTQV9KUEFLRV9PVVRQVVQ7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLSAgICAgICAgaWYgKGlvX21vZGUgPT0gUFNBX0pQQUtFX09VVFBVVCkgewotICAgICAgICAgICAgc3RhZ2UtPm91dHB1dHMrKzsKLSAgICAgICAgICAgIGlmIChzdGFnZS0+b3V0cHV0cyA9PSBQU0FfSlBBS0VfRVhQRUNURURfT1VUUFVUUyhzdGFnZS0+cm91bmQpKSB7Ci0gICAgICAgICAgICAgICAgc3RhZ2UtPmlvX21vZGUgPSBQU0FfSlBBS0VfSU5QVVQ7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLSAgICAgICAgaWYgKHN0YWdlLT5pbnB1dHMgPT0gUFNBX0pQQUtFX0VYUEVDVEVEX0lOUFVUUyhzdGFnZS0+cm91bmQpICYmCi0gICAgICAgICAgICBzdGFnZS0+b3V0cHV0cyA9PSBQU0FfSlBBS0VfRVhQRUNURURfT1VUUFVUUyhzdGFnZS0+cm91bmQpKSB7Ci0gICAgICAgICAgICAvKiBFbmQgb2YgYSByb3VuZCwgbW92ZSB0byB0aGUgbmV4dCByb3VuZCAqLwotICAgICAgICAgICAgc3RhZ2UtPmlucHV0cyA9IDA7Ci0gICAgICAgICAgICBzdGFnZS0+b3V0cHV0cyA9IDA7Ci0gICAgICAgICAgICBzdGFnZS0+cm91bmQrKzsKLSAgICAgICAgfQotICAgICAgICBzdGFnZS0+c3RlcCA9IFBTQV9QQUtFX1NURVBfS0VZX1NIQVJFOwotICAgIH0gZWxzZSB7Ci0gICAgICAgIHN0YWdlLT5zdGVwKys7Ci0gICAgfQotICAgIHJldHVybiBQU0FfU1VDQ0VTUzsKLX0KLQotI2VuZGlmIC8qIFBTQV9XQU5UX0FMR19KUEFLRSAqLwotCi1wc2Ffc3RhdHVzX3QgcHNhX3Bha2Vfb3V0cHV0KAotICAgIHBzYV9wYWtlX29wZXJhdGlvbl90ICpvcGVyYXRpb24sCi0gICAgcHNhX3Bha2Vfc3RlcF90IHN0ZXAsCi0gICAgdWludDhfdCAqb3V0cHV0X2V4dGVybmFsLAotICAgIHNpemVfdCBvdXRwdXRfc2l6ZSwKLSAgICBzaXplX3QgKm91dHB1dF9sZW5ndGgpCi17Ci0gICAgcHNhX3N0YXR1c190IHN0YXR1cyA9IFBTQV9FUlJPUl9DT1JSVVBUSU9OX0RFVEVDVEVEOwotICAgIHBzYV9jcnlwdG9fZHJpdmVyX3Bha2Vfc3RlcF90IGRyaXZlcl9zdGVwID0gUFNBX0pQQUtFX1NURVBfSU5WQUxJRDsKLSAgICBMT0NBTF9PVVRQVVRfREVDTEFSRShvdXRwdXRfZXh0ZXJuYWwsIG91dHB1dCk7Ci0gICAgKm91dHB1dF9sZW5ndGggPSAwOwotCi0gICAgaWYgKG9wZXJhdGlvbi0+c3RhZ2UgPT0gUFNBX1BBS0VfT1BFUkFUSU9OX1NUQUdFX0NPTExFQ1RfSU5QVVRTKSB7Ci0gICAgICAgIHN0YXR1cyA9IHBzYV9wYWtlX2NvbXBsZXRlX2lucHV0cyhvcGVyYXRpb24pOwotICAgICAgICBpZiAoc3RhdHVzICE9IFBTQV9TVUNDRVNTKSB7Ci0gICAgICAgICAgICBnb3RvIGV4aXQ7Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICBpZiAob3BlcmF0aW9uLT5zdGFnZSAhPSBQU0FfUEFLRV9PUEVSQVRJT05fU1RBR0VfQ09NUFVUQVRJT04pIHsKLSAgICAgICAgc3RhdHVzID0gUFNBX0VSUk9SX0JBRF9TVEFURTsKLSAgICAgICAgZ290byBleGl0OwotICAgIH0KLQotICAgIGlmIChvdXRwdXRfc2l6ZSA9PSAwKSB7Ci0gICAgICAgIHN0YXR1cyA9IFBTQV9FUlJPUl9JTlZBTElEX0FSR1VNRU5UOwotICAgICAgICBnb3RvIGV4aXQ7Ci0gICAgfQotCi0gICAgc3dpdGNoIChvcGVyYXRpb24tPmFsZykgewotI2lmIGRlZmluZWQoUFNBX1dBTlRfQUxHX0pQQUtFKQotICAgICAgICBjYXNlIFBTQV9BTEdfSlBBS0U6Ci0gICAgICAgICAgICBzdGF0dXMgPSBwc2FfanBha2VfcHJvbG9ndWUob3BlcmF0aW9uLCBzdGVwLCBQU0FfSlBBS0VfT1VUUFVUKTsKLSAgICAgICAgICAgIGlmIChzdGF0dXMgIT0gUFNBX1NVQ0NFU1MpIHsKLSAgICAgICAgICAgICAgICBnb3RvIGV4aXQ7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBkcml2ZXJfc3RlcCA9IGNvbnZlcnRfanBha2VfY29tcHV0YXRpb25fc3RhZ2VfdG9fZHJpdmVyX3N0ZXAoCi0gICAgICAgICAgICAgICAgJm9wZXJhdGlvbi0+Y29tcHV0YXRpb25fc3RhZ2UuanBha2UpOwotICAgICAgICAgICAgYnJlYWs7Ci0jZW5kaWYgLyogUFNBX1dBTlRfQUxHX0pQQUtFICovCi0gICAgICAgIGRlZmF1bHQ6Ci0gICAgICAgICAgICAodm9pZCkgc3RlcDsKLSAgICAgICAgICAgIHN0YXR1cyA9IFBTQV9FUlJPUl9OT1RfU1VQUE9SVEVEOwotICAgICAgICAgICAgZ290byBleGl0OwotICAgIH0KLQotICAgIExPQ0FMX09VVFBVVF9BTExPQyhvdXRwdXRfZXh0ZXJuYWwsIG91dHB1dF9zaXplLCBvdXRwdXQpOwotCi0gICAgc3RhdHVzID0gcHNhX2RyaXZlcl93cmFwcGVyX3Bha2Vfb3V0cHV0KG9wZXJhdGlvbiwgZHJpdmVyX3N0ZXAsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG91dHB1dCwgb3V0cHV0X3NpemUsIG91dHB1dF9sZW5ndGgpOwotCi0gICAgaWYgKHN0YXR1cyAhPSBQU0FfU1VDQ0VTUykgewotICAgICAgICBnb3RvIGV4aXQ7Ci0gICAgfQotCi0gICAgc3dpdGNoIChvcGVyYXRpb24tPmFsZykgewotI2lmIGRlZmluZWQoUFNBX1dBTlRfQUxHX0pQQUtFKQotICAgICAgICBjYXNlIFBTQV9BTEdfSlBBS0U6Ci0gICAgICAgICAgICBzdGF0dXMgPSBwc2FfanBha2VfZXBpbG9ndWUob3BlcmF0aW9uLCBQU0FfSlBBS0VfT1VUUFVUKTsKLSAgICAgICAgICAgIGlmIChzdGF0dXMgIT0gUFNBX1NVQ0NFU1MpIHsKLSAgICAgICAgICAgICAgICBnb3RvIGV4aXQ7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBicmVhazsKLSNlbmRpZiAvKiBQU0FfV0FOVF9BTEdfSlBBS0UgKi8KLSAgICAgICAgZGVmYXVsdDoKLSAgICAgICAgICAgIHN0YXR1cyA9IFBTQV9FUlJPUl9OT1RfU1VQUE9SVEVEOwotICAgICAgICAgICAgZ290byBleGl0OwotICAgIH0KLQotZXhpdDoKLSAgICBMT0NBTF9PVVRQVVRfRlJFRShvdXRwdXRfZXh0ZXJuYWwsIG91dHB1dCk7Ci0gICAgaWYgKHN0YXR1cyAhPSBQU0FfU1VDQ0VTUykgewotICAgICAgICBwc2FfcGFrZV9hYm9ydChvcGVyYXRpb24pOwotICAgIH0KLSAgICByZXR1cm4gc3RhdHVzOwotfQotCi1wc2Ffc3RhdHVzX3QgcHNhX3Bha2VfaW5wdXQoCi0gICAgcHNhX3Bha2Vfb3BlcmF0aW9uX3QgKm9wZXJhdGlvbiwKLSAgICBwc2FfcGFrZV9zdGVwX3Qgc3RlcCwKLSAgICBjb25zdCB1aW50OF90ICppbnB1dF9leHRlcm5hbCwKLSAgICBzaXplX3QgaW5wdXRfbGVuZ3RoKQotewotICAgIHBzYV9zdGF0dXNfdCBzdGF0dXMgPSBQU0FfRVJST1JfQ09SUlVQVElPTl9ERVRFQ1RFRDsKLSAgICBwc2FfY3J5cHRvX2RyaXZlcl9wYWtlX3N0ZXBfdCBkcml2ZXJfc3RlcCA9IFBTQV9KUEFLRV9TVEVQX0lOVkFMSUQ7Ci0gICAgY29uc3Qgc2l6ZV90IG1heF9pbnB1dF9sZW5ndGggPSAoc2l6ZV90KSBQU0FfUEFLRV9JTlBVVF9TSVpFKG9wZXJhdGlvbi0+YWxnLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcGVyYXRpb24tPnByaW1pdGl2ZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RlcCk7Ci0gICAgTE9DQUxfSU5QVVRfREVDTEFSRShpbnB1dF9leHRlcm5hbCwgaW5wdXQpOwotCi0gICAgaWYgKG9wZXJhdGlvbi0+c3RhZ2UgPT0gUFNBX1BBS0VfT1BFUkFUSU9OX1NUQUdFX0NPTExFQ1RfSU5QVVRTKSB7Ci0gICAgICAgIHN0YXR1cyA9IHBzYV9wYWtlX2NvbXBsZXRlX2lucHV0cyhvcGVyYXRpb24pOwotICAgICAgICBpZiAoc3RhdHVzICE9IFBTQV9TVUNDRVNTKSB7Ci0gICAgICAgICAgICBnb3RvIGV4aXQ7Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICBpZiAob3BlcmF0aW9uLT5zdGFnZSAhPSBQU0FfUEFLRV9PUEVSQVRJT05fU1RBR0VfQ09NUFVUQVRJT04pIHsKLSAgICAgICAgc3RhdHVzID0gIFBTQV9FUlJPUl9CQURfU1RBVEU7Ci0gICAgICAgIGdvdG8gZXhpdDsKLSAgICB9Ci0KLSAgICBpZiAoaW5wdXRfbGVuZ3RoID09IDAgfHwgaW5wdXRfbGVuZ3RoID4gbWF4X2lucHV0X2xlbmd0aCkgewotICAgICAgICBzdGF0dXMgPSBQU0FfRVJST1JfSU5WQUxJRF9BUkdVTUVOVDsKLSAgICAgICAgZ290byBleGl0OwotICAgIH0KLQotICAgIHN3aXRjaCAob3BlcmF0aW9uLT5hbGcpIHsKLSNpZiBkZWZpbmVkKFBTQV9XQU5UX0FMR19KUEFLRSkKLSAgICAgICAgY2FzZSBQU0FfQUxHX0pQQUtFOgotICAgICAgICAgICAgc3RhdHVzID0gcHNhX2pwYWtlX3Byb2xvZ3VlKG9wZXJhdGlvbiwgc3RlcCwgUFNBX0pQQUtFX0lOUFVUKTsKLSAgICAgICAgICAgIGlmIChzdGF0dXMgIT0gUFNBX1NVQ0NFU1MpIHsKLSAgICAgICAgICAgICAgICBnb3RvIGV4aXQ7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBkcml2ZXJfc3RlcCA9IGNvbnZlcnRfanBha2VfY29tcHV0YXRpb25fc3RhZ2VfdG9fZHJpdmVyX3N0ZXAoCi0gICAgICAgICAgICAgICAgJm9wZXJhdGlvbi0+Y29tcHV0YXRpb25fc3RhZ2UuanBha2UpOwotICAgICAgICAgICAgYnJlYWs7Ci0jZW5kaWYgLyogUFNBX1dBTlRfQUxHX0pQQUtFICovCi0gICAgICAgIGRlZmF1bHQ6Ci0gICAgICAgICAgICAodm9pZCkgc3RlcDsKLSAgICAgICAgICAgIHN0YXR1cyA9IFBTQV9FUlJPUl9OT1RfU1VQUE9SVEVEOwotICAgICAgICAgICAgZ290byBleGl0OwotICAgIH0KLQotICAgIExPQ0FMX0lOUFVUX0FMTE9DKGlucHV0X2V4dGVybmFsLCBpbnB1dF9sZW5ndGgsIGlucHV0KTsKLSAgICBzdGF0dXMgPSBwc2FfZHJpdmVyX3dyYXBwZXJfcGFrZV9pbnB1dChvcGVyYXRpb24sIGRyaXZlcl9zdGVwLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlucHV0LCBpbnB1dF9sZW5ndGgpOwotCi0gICAgaWYgKHN0YXR1cyAhPSBQU0FfU1VDQ0VTUykgewotICAgICAgICBnb3RvIGV4aXQ7Ci0gICAgfQotCi0gICAgc3dpdGNoIChvcGVyYXRpb24tPmFsZykgewotI2lmIGRlZmluZWQoUFNBX1dBTlRfQUxHX0pQQUtFKQotICAgICAgICBjYXNlIFBTQV9BTEdfSlBBS0U6Ci0gICAgICAgICAgICBzdGF0dXMgPSBwc2FfanBha2VfZXBpbG9ndWUob3BlcmF0aW9uLCBQU0FfSlBBS0VfSU5QVVQpOwotICAgICAgICAgICAgaWYgKHN0YXR1cyAhPSBQU0FfU1VDQ0VTUykgewotICAgICAgICAgICAgICAgIGdvdG8gZXhpdDsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGJyZWFrOwotI2VuZGlmIC8qIFBTQV9XQU5UX0FMR19KUEFLRSAqLwotICAgICAgICBkZWZhdWx0OgotICAgICAgICAgICAgc3RhdHVzID0gUFNBX0VSUk9SX05PVF9TVVBQT1JURUQ7Ci0gICAgICAgICAgICBnb3RvIGV4aXQ7Ci0gICAgfQotCi1leGl0OgotICAgIExPQ0FMX0lOUFVUX0ZSRUUoaW5wdXRfZXh0ZXJuYWwsIGlucHV0KTsKLSAgICBpZiAoc3RhdHVzICE9IFBTQV9TVUNDRVNTKSB7Ci0gICAgICAgIHBzYV9wYWtlX2Fib3J0KG9wZXJhdGlvbik7Ci0gICAgfQotICAgIHJldHVybiBzdGF0dXM7Ci19Ci0KLXBzYV9zdGF0dXNfdCBwc2FfcGFrZV9nZXRfaW1wbGljaXRfa2V5KAotICAgIHBzYV9wYWtlX29wZXJhdGlvbl90ICpvcGVyYXRpb24sCi0gICAgcHNhX2tleV9kZXJpdmF0aW9uX29wZXJhdGlvbl90ICpvdXRwdXQpCi17Ci0gICAgcHNhX3N0YXR1c190IHN0YXR1cyA9IFBTQV9FUlJPUl9DT1JSVVBUSU9OX0RFVEVDVEVEOwotICAgIHBzYV9zdGF0dXNfdCBhYm9ydF9zdGF0dXMgPSBQU0FfRVJST1JfQ09SUlVQVElPTl9ERVRFQ1RFRDsKLSAgICB1aW50OF90IHNoYXJlZF9rZXlbTUJFRFRMU19QU0FfSlBBS0VfQlVGRkVSX1NJWkVdOwotICAgIHNpemVfdCBzaGFyZWRfa2V5X2xlbiA9IDA7Ci0KLSAgICBpZiAob3BlcmF0aW9uLT5zdGFnZSAhPSBQU0FfUEFLRV9PUEVSQVRJT05fU1RBR0VfQ09NUFVUQVRJT04pIHsKLSAgICAgICAgc3RhdHVzID0gUFNBX0VSUk9SX0JBRF9TVEFURTsKLSAgICAgICAgZ290byBleGl0OwotICAgIH0KLQotI2lmIGRlZmluZWQoUFNBX1dBTlRfQUxHX0pQQUtFKQotICAgIGlmIChvcGVyYXRpb24tPmFsZyA9PSBQU0FfQUxHX0pQQUtFKSB7Ci0gICAgICAgIHBzYV9qcGFrZV9jb21wdXRhdGlvbl9zdGFnZV90ICpjb21wdXRhdGlvbl9zdGFnZSA9Ci0gICAgICAgICAgICAmb3BlcmF0aW9uLT5jb21wdXRhdGlvbl9zdGFnZS5qcGFrZTsKLSAgICAgICAgaWYgKGNvbXB1dGF0aW9uX3N0YWdlLT5yb3VuZCAhPSBQU0FfSlBBS0VfRklOSVNIRUQpIHsKLSAgICAgICAgICAgIHN0YXR1cyA9IFBTQV9FUlJPUl9CQURfU1RBVEU7Ci0gICAgICAgICAgICBnb3RvIGV4aXQ7Ci0gICAgICAgIH0KLSAgICB9IGVsc2UKLSNlbmRpZiAvKiBQU0FfV0FOVF9BTEdfSlBBS0UgKi8KLSAgICB7Ci0gICAgICAgIHN0YXR1cyA9IFBTQV9FUlJPUl9OT1RfU1VQUE9SVEVEOwotICAgICAgICBnb3RvIGV4aXQ7Ci0gICAgfQotCi0gICAgc3RhdHVzID0gcHNhX2RyaXZlcl93cmFwcGVyX3Bha2VfZ2V0X2ltcGxpY2l0X2tleShvcGVyYXRpb24sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaGFyZWRfa2V5LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZW9mKHNoYXJlZF9rZXkpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJnNoYXJlZF9rZXlfbGVuKTsKLQotICAgIGlmIChzdGF0dXMgIT0gUFNBX1NVQ0NFU1MpIHsKLSAgICAgICAgZ290byBleGl0OwotICAgIH0KLQotICAgIHN0YXR1cyA9IHBzYV9rZXlfZGVyaXZhdGlvbl9pbnB1dF9ieXRlcyhvdXRwdXQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBTQV9LRVlfREVSSVZBVElPTl9JTlBVVF9TRUNSRVQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNoYXJlZF9rZXksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNoYXJlZF9rZXlfbGVuKTsKLQotICAgIG1iZWR0bHNfcGxhdGZvcm1femVyb2l6ZShzaGFyZWRfa2V5LCBzaXplb2Yoc2hhcmVkX2tleSkpOwotZXhpdDoKLSAgICBhYm9ydF9zdGF0dXMgPSBwc2FfcGFrZV9hYm9ydChvcGVyYXRpb24pOwotICAgIHJldHVybiBzdGF0dXMgPT0gUFNBX1NVQ0NFU1MgPyBhYm9ydF9zdGF0dXMgOiBzdGF0dXM7Ci19Ci0KLXBzYV9zdGF0dXNfdCBwc2FfcGFrZV9hYm9ydCgKLSAgICBwc2FfcGFrZV9vcGVyYXRpb25fdCAqb3BlcmF0aW9uKQotewotICAgIHBzYV9zdGF0dXNfdCBzdGF0dXMgPSBQU0FfU1VDQ0VTUzsKLQotICAgIGlmIChvcGVyYXRpb24tPnN0YWdlID09IFBTQV9QQUtFX09QRVJBVElPTl9TVEFHRV9DT01QVVRBVElPTikgewotICAgICAgICBzdGF0dXMgPSBwc2FfZHJpdmVyX3dyYXBwZXJfcGFrZV9hYm9ydChvcGVyYXRpb24pOwotICAgIH0KLQotICAgIGlmIChvcGVyYXRpb24tPnN0YWdlID09IFBTQV9QQUtFX09QRVJBVElPTl9TVEFHRV9DT0xMRUNUX0lOUFVUUykgewotICAgICAgICBpZiAob3BlcmF0aW9uLT5kYXRhLmlucHV0cy5wYXNzd29yZCAhPSBOVUxMKSB7Ci0gICAgICAgICAgICBtYmVkdGxzX3plcm9pemVfYW5kX2ZyZWUob3BlcmF0aW9uLT5kYXRhLmlucHV0cy5wYXNzd29yZCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcGVyYXRpb24tPmRhdGEuaW5wdXRzLnBhc3N3b3JkX2xlbik7Ci0gICAgICAgIH0KLSAgICAgICAgaWYgKG9wZXJhdGlvbi0+ZGF0YS5pbnB1dHMudXNlciAhPSBOVUxMKSB7Ci0gICAgICAgICAgICBtYmVkdGxzX2ZyZWUob3BlcmF0aW9uLT5kYXRhLmlucHV0cy51c2VyKTsKLSAgICAgICAgfQotICAgICAgICBpZiAob3BlcmF0aW9uLT5kYXRhLmlucHV0cy5wZWVyICE9IE5VTEwpIHsKLSAgICAgICAgICAgIG1iZWR0bHNfZnJlZShvcGVyYXRpb24tPmRhdGEuaW5wdXRzLnBlZXIpOwotICAgICAgICB9Ci0gICAgfQotICAgIG1lbXNldChvcGVyYXRpb24sIDAsIHNpemVvZihwc2FfcGFrZV9vcGVyYXRpb25fdCkpOwotCi0gICAgcmV0dXJuIHN0YXR1czsKLX0KLSNlbmRpZiAvKiBQU0FfV0FOVF9BTEdfU09NRV9QQUtFICovCi0KLS8qIE1lbW9yeSBjb3B5aW5nIHRlc3QgaG9va3MuIFRoZXNlIGFyZSBjYWxsZWQgYmVmb3JlIGlucHV0IGNvcHksIGFmdGVyIGlucHV0Ci0gKiBjb3B5LCBiZWZvcmUgb3V0cHV0IGNvcHkgYW5kIGFmdGVyIG91dHB1dCBjb3B5LCByZXNwZWN0aXZlbHkuCi0gKiBUaGV5IGFyZSB1c2VkIGJ5IG1lbW9yeS1wb2lzb25pbmcgdGVzdHMgdG8gdGVtcG9yYXJpbHkgdW5wb2lzb24gYnVmZmVycwotICogd2hpbGUgdGhleSBhcmUgY29waWVkLiAqLwotI2lmIGRlZmluZWQoTUJFRFRMU19URVNUX0hPT0tTKQotdm9pZCAoKnBzYV9pbnB1dF9wcmVfY29weV9ob29rKShjb25zdCB1aW50OF90ICppbnB1dCwgc2l6ZV90IGlucHV0X2xlbikgPSBOVUxMOwotdm9pZCAoKnBzYV9pbnB1dF9wb3N0X2NvcHlfaG9vaykoY29uc3QgdWludDhfdCAqaW5wdXQsIHNpemVfdCBpbnB1dF9sZW4pID0gTlVMTDsKLXZvaWQgKCpwc2Ffb3V0cHV0X3ByZV9jb3B5X2hvb2spKGNvbnN0IHVpbnQ4X3QgKm91dHB1dCwgc2l6ZV90IG91dHB1dF9sZW4pID0gTlVMTDsKLXZvaWQgKCpwc2Ffb3V0cHV0X3Bvc3RfY29weV9ob29rKShjb25zdCB1aW50OF90ICpvdXRwdXQsIHNpemVfdCBvdXRwdXRfbGVuKSA9IE5VTEw7Ci0jZW5kaWYKLQotLyoqIENvcHkgZnJvbSBhbiBpbnB1dCBidWZmZXIgdG8gYSBsb2NhbCBjb3B5LgotICoKLSAqIFxwYXJhbVtpbl0gaW5wdXQgICAgICAgICAgICAgUG9pbnRlciB0byBpbnB1dCBidWZmZXIuCi0gKiBccGFyYW1baW5dIGlucHV0X2xlbiAgICAgICAgIExlbmd0aCBvZiB0aGUgaW5wdXQgYnVmZmVyLgotICogXHBhcmFtW291dF0gaW5wdXRfY29weSAgICAgICBQb2ludGVyIHRvIGEgbG9jYWwgY29weSBpbiB3aGljaCB0byBzdG9yZSB0aGUgaW5wdXQgZGF0YS4KLSAqIFxwYXJhbVtvdXRdIGlucHV0X2NvcHlfbGVuICAgTGVuZ3RoIG9mIHRoZSBsb2NhbCBjb3B5IGJ1ZmZlci4KLSAqIFxyZXR1cm4gICAgICAgICAgICAgICAgICAgICAgI1BTQV9TVUNDRVNTLCBpZiB0aGUgYnVmZmVyIHdhcyBzdWNjZXNzZnVsbHkKLSAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29waWVkLgotICogXHJldHVybiAgICAgICAgICAgICAgICAgICAgICAjUFNBX0VSUk9SX0NPUlJVUFRJT05fREVURUNURUQsIGlmIHRoZSBsb2NhbAotICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb3B5IGlzIHRvbyBzbWFsbCB0byBob2xkIGNvbnRlbnRzIG9mIHRoZQotICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnB1dCBidWZmZXIuCi0gKi8KLU1CRURUTFNfU1RBVElDX1RFU1RBQkxFCi1wc2Ffc3RhdHVzX3QgcHNhX2NyeXB0b19jb3B5X2lucHV0KGNvbnN0IHVpbnQ4X3QgKmlucHV0LCBzaXplX3QgaW5wdXRfbGVuLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50OF90ICppbnB1dF9jb3B5LCBzaXplX3QgaW5wdXRfY29weV9sZW4pCi17Ci0gICAgaWYgKGlucHV0X2xlbiA+IGlucHV0X2NvcHlfbGVuKSB7Ci0gICAgICAgIHJldHVybiBQU0FfRVJST1JfQ09SUlVQVElPTl9ERVRFQ1RFRDsKLSAgICB9Ci0KLSNpZiBkZWZpbmVkKE1CRURUTFNfVEVTVF9IT09LUykKLSAgICBpZiAocHNhX2lucHV0X3ByZV9jb3B5X2hvb2sgIT0gTlVMTCkgewotICAgICAgICBwc2FfaW5wdXRfcHJlX2NvcHlfaG9vayhpbnB1dCwgaW5wdXRfbGVuKTsKLSAgICB9Ci0jZW5kaWYKLQotICAgIGlmIChpbnB1dF9sZW4gPiAwKSB7Ci0gICAgICAgIG1lbWNweShpbnB1dF9jb3B5LCBpbnB1dCwgaW5wdXRfbGVuKTsKLSAgICB9Ci0KLSNpZiBkZWZpbmVkKE1CRURUTFNfVEVTVF9IT09LUykKLSAgICBpZiAocHNhX2lucHV0X3Bvc3RfY29weV9ob29rICE9IE5VTEwpIHsKLSAgICAgICAgcHNhX2lucHV0X3Bvc3RfY29weV9ob29rKGlucHV0LCBpbnB1dF9sZW4pOwotICAgIH0KLSNlbmRpZgotCi0gICAgcmV0dXJuIFBTQV9TVUNDRVNTOwotfQotCi0vKiogQ29weSBmcm9tIGEgbG9jYWwgb3V0cHV0IGJ1ZmZlciBpbnRvIGEgdXNlci1zdXBwbGllZCBvbmUuCi0gKgotICogXHBhcmFtW2luXSBvdXRwdXRfY29weSAgICAgICBQb2ludGVyIHRvIGEgbG9jYWwgYnVmZmVyIGNvbnRhaW5pbmcgdGhlIG91dHB1dC4KLSAqIFxwYXJhbVtpbl0gb3V0cHV0X2NvcHlfbGVuICAgTGVuZ3RoIG9mIHRoZSBsb2NhbCBidWZmZXIuCi0gKiBccGFyYW1bb3V0XSBvdXRwdXQgICAgICAgICAgIFBvaW50ZXIgdG8gdXNlci1zdXBwbGllZCBvdXRwdXQgYnVmZmVyLgotICogXHBhcmFtW291dF0gb3V0cHV0X2xlbiAgICAgICBMZW5ndGggb2YgdGhlIHVzZXItc3VwcGxpZWQgb3V0cHV0IGJ1ZmZlci4KLSAqIFxyZXR1cm4gICAgICAgICAgICAgICAgICAgICAgI1BTQV9TVUNDRVNTLCBpZiB0aGUgYnVmZmVyIHdhcyBzdWNjZXNzZnVsbHkKLSAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29waWVkLgotICogXHJldHVybiAgICAgICAgICAgICAgICAgICAgICAjUFNBX0VSUk9SX0JVRkZFUl9UT09fU01BTEwsIGlmIHRoZQotICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1c2VyLXN1cHBsaWVkIG91dHB1dCBidWZmZXIgaXMgdG9vIHNtYWxsIHRvCi0gKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhvbGQgdGhlIGNvbnRlbnRzIG9mIHRoZSBsb2NhbCBidWZmZXIuCi0gKi8KLU1CRURUTFNfU1RBVElDX1RFU1RBQkxFCi1wc2Ffc3RhdHVzX3QgcHNhX2NyeXB0b19jb3B5X291dHB1dChjb25zdCB1aW50OF90ICpvdXRwdXRfY29weSwgc2l6ZV90IG91dHB1dF9jb3B5X2xlbiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQ4X3QgKm91dHB1dCwgc2l6ZV90IG91dHB1dF9sZW4pCi17Ci0gICAgaWYgKG91dHB1dF9sZW4gPCBvdXRwdXRfY29weV9sZW4pIHsKLSAgICAgICAgcmV0dXJuIFBTQV9FUlJPUl9CVUZGRVJfVE9PX1NNQUxMOwotICAgIH0KLQotI2lmIGRlZmluZWQoTUJFRFRMU19URVNUX0hPT0tTKQotICAgIGlmIChwc2Ffb3V0cHV0X3ByZV9jb3B5X2hvb2sgIT0gTlVMTCkgewotICAgICAgICBwc2Ffb3V0cHV0X3ByZV9jb3B5X2hvb2sob3V0cHV0LCBvdXRwdXRfbGVuKTsKLSAgICB9Ci0jZW5kaWYKLQotICAgIGlmIChvdXRwdXRfY29weV9sZW4gPiAwKSB7Ci0gICAgICAgIG1lbWNweShvdXRwdXQsIG91dHB1dF9jb3B5LCBvdXRwdXRfY29weV9sZW4pOwotICAgIH0KLQotI2lmIGRlZmluZWQoTUJFRFRMU19URVNUX0hPT0tTKQotICAgIGlmIChwc2Ffb3V0cHV0X3Bvc3RfY29weV9ob29rICE9IE5VTEwpIHsKLSAgICAgICAgcHNhX291dHB1dF9wb3N0X2NvcHlfaG9vayhvdXRwdXQsIG91dHB1dF9sZW4pOwotICAgIH0KLSNlbmRpZgotCi0gICAgcmV0dXJuIFBTQV9TVUNDRVNTOwotfQotCi1wc2Ffc3RhdHVzX3QgcHNhX2NyeXB0b19sb2NhbF9pbnB1dF9hbGxvYyhjb25zdCB1aW50OF90ICppbnB1dCwgc2l6ZV90IGlucHV0X2xlbiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBzYV9jcnlwdG9fbG9jYWxfaW5wdXRfdCAqbG9jYWxfaW5wdXQpCi17Ci0gICAgcHNhX3N0YXR1c190IHN0YXR1czsKLQotICAgICpsb2NhbF9pbnB1dCA9IFBTQV9DUllQVE9fTE9DQUxfSU5QVVRfSU5JVDsKLQotICAgIGlmIChpbnB1dF9sZW4gPT0gMCkgewotICAgICAgICByZXR1cm4gUFNBX1NVQ0NFU1M7Ci0gICAgfQotCi0gICAgbG9jYWxfaW5wdXQtPmJ1ZmZlciA9IG1iZWR0bHNfY2FsbG9jKGlucHV0X2xlbiwgMSk7Ci0gICAgaWYgKGxvY2FsX2lucHV0LT5idWZmZXIgPT0gTlVMTCkgewotICAgICAgICAvKiBTaW5jZSB3ZSBkZWFsdCB3aXRoIHRoZSB6ZXJvLWxlbmd0aCBjYXNlIGFib3ZlLCB3ZSBrbm93IHRoYXQKLSAgICAgICAgICogYSBOVUxMIHJldHVybiB2YWx1ZSBtZWFucyBhIGZhaWx1cmUgb2YgYWxsb2NhdGlvbi4gKi8KLSAgICAgICAgcmV0dXJuIFBTQV9FUlJPUl9JTlNVRkZJQ0lFTlRfTUVNT1JZOwotICAgIH0KLSAgICAvKiBGcm9tIG5vdyBvbiwgd2UgbXVzdCBmcmVlIGxvY2FsX2lucHV0LT5idWZmZXIgb24gZXJyb3IuICovCi0KLSAgICBsb2NhbF9pbnB1dC0+bGVuZ3RoID0gaW5wdXRfbGVuOwotCi0gICAgc3RhdHVzID0gcHNhX2NyeXB0b19jb3B5X2lucHV0KGlucHV0LCBpbnB1dF9sZW4sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvY2FsX2lucHV0LT5idWZmZXIsIGxvY2FsX2lucHV0LT5sZW5ndGgpOwotICAgIGlmIChzdGF0dXMgIT0gUFNBX1NVQ0NFU1MpIHsKLSAgICAgICAgZ290byBlcnJvcjsKLSAgICB9Ci0KLSAgICByZXR1cm4gUFNBX1NVQ0NFU1M7Ci0KLWVycm9yOgotICAgIG1iZWR0bHNfZnJlZShsb2NhbF9pbnB1dC0+YnVmZmVyKTsKLSAgICBsb2NhbF9pbnB1dC0+YnVmZmVyID0gTlVMTDsKLSAgICBsb2NhbF9pbnB1dC0+bGVuZ3RoID0gMDsKLSAgICByZXR1cm4gc3RhdHVzOwotfQotCi12b2lkIHBzYV9jcnlwdG9fbG9jYWxfaW5wdXRfZnJlZShwc2FfY3J5cHRvX2xvY2FsX2lucHV0X3QgKmxvY2FsX2lucHV0KQotewotICAgIG1iZWR0bHNfZnJlZShsb2NhbF9pbnB1dC0+YnVmZmVyKTsKLSAgICBsb2NhbF9pbnB1dC0+YnVmZmVyID0gTlVMTDsKLSAgICBsb2NhbF9pbnB1dC0+bGVuZ3RoID0gMDsKLX0KLQotcHNhX3N0YXR1c190IHBzYV9jcnlwdG9fbG9jYWxfb3V0cHV0X2FsbG9jKHVpbnQ4X3QgKm91dHB1dCwgc2l6ZV90IG91dHB1dF9sZW4sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHNhX2NyeXB0b19sb2NhbF9vdXRwdXRfdCAqbG9jYWxfb3V0cHV0KQotewotICAgICpsb2NhbF9vdXRwdXQgPSBQU0FfQ1JZUFRPX0xPQ0FMX09VVFBVVF9JTklUOwotCi0gICAgaWYgKG91dHB1dF9sZW4gPT0gMCkgewotICAgICAgICByZXR1cm4gUFNBX1NVQ0NFU1M7Ci0gICAgfQotICAgIGxvY2FsX291dHB1dC0+YnVmZmVyID0gbWJlZHRsc19jYWxsb2Mob3V0cHV0X2xlbiwgMSk7Ci0gICAgaWYgKGxvY2FsX291dHB1dC0+YnVmZmVyID09IE5VTEwpIHsKLSAgICAgICAgLyogU2luY2Ugd2UgZGVhbHQgd2l0aCB0aGUgemVyby1sZW5ndGggY2FzZSBhYm92ZSwgd2Uga25vdyB0aGF0Ci0gICAgICAgICAqIGEgTlVMTCByZXR1cm4gdmFsdWUgbWVhbnMgYSBmYWlsdXJlIG9mIGFsbG9jYXRpb24uICovCi0gICAgICAgIHJldHVybiBQU0FfRVJST1JfSU5TVUZGSUNJRU5UX01FTU9SWTsKLSAgICB9Ci0gICAgbG9jYWxfb3V0cHV0LT5sZW5ndGggPSBvdXRwdXRfbGVuOwotICAgIGxvY2FsX291dHB1dC0+b3JpZ2luYWwgPSBvdXRwdXQ7Ci0KLSAgICByZXR1cm4gUFNBX1NVQ0NFU1M7Ci19Ci0KLXBzYV9zdGF0dXNfdCBwc2FfY3J5cHRvX2xvY2FsX291dHB1dF9mcmVlKHBzYV9jcnlwdG9fbG9jYWxfb3V0cHV0X3QgKmxvY2FsX291dHB1dCkKLXsKLSAgICBwc2Ffc3RhdHVzX3Qgc3RhdHVzOwotCi0gICAgaWYgKGxvY2FsX291dHB1dC0+YnVmZmVyID09IE5VTEwpIHsKLSAgICAgICAgbG9jYWxfb3V0cHV0LT5sZW5ndGggPSAwOwotICAgICAgICByZXR1cm4gUFNBX1NVQ0NFU1M7Ci0gICAgfQotICAgIGlmIChsb2NhbF9vdXRwdXQtPm9yaWdpbmFsID09IE5VTEwpIHsKLSAgICAgICAgLyogV2UgaGF2ZSBhbiBpbnRlcm5hbCBjb3B5IGJ1dCBub3RoaW5nIHRvIGNvcHkgYmFjayB0by4gKi8KLSAgICAgICAgcmV0dXJuIFBTQV9FUlJPUl9DT1JSVVBUSU9OX0RFVEVDVEVEOwotICAgIH0KLQotICAgIHN0YXR1cyA9IHBzYV9jcnlwdG9fY29weV9vdXRwdXQobG9jYWxfb3V0cHV0LT5idWZmZXIsIGxvY2FsX291dHB1dC0+bGVuZ3RoLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9jYWxfb3V0cHV0LT5vcmlnaW5hbCwgbG9jYWxfb3V0cHV0LT5sZW5ndGgpOwotICAgIGlmIChzdGF0dXMgIT0gUFNBX1NVQ0NFU1MpIHsKLSAgICAgICAgcmV0dXJuIHN0YXR1czsKLSAgICB9Ci0KLSAgICBtYmVkdGxzX2ZyZWUobG9jYWxfb3V0cHV0LT5idWZmZXIpOwotICAgIGxvY2FsX291dHB1dC0+YnVmZmVyID0gTlVMTDsKLSAgICBsb2NhbF9vdXRwdXQtPmxlbmd0aCA9IDA7Ci0KLSAgICByZXR1cm4gUFNBX1NVQ0NFU1M7Ci19Ci0KLSNlbmRpZiAvKiBNQkVEVExTX1BTQV9DUllQVE9fQyAqLwpkaWZmIC0tZ2l0IGEvbGlicmFyeS9wc2FfY3J5cHRvX2NpcGhlci5jIGIvbGlicmFyeS9wc2FfY3J5cHRvX2NpcGhlci5jCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4ODFkNjczLi4wMDAwMDAwCi0tLSBhL2xpYnJhcnkvcHNhX2NyeXB0b19jaXBoZXIuYworKysgL2Rldi9udWxsCkBAIC0xLDcyNCArMCwwIEBACi0vKgotICogIFBTQSBjaXBoZXIgZHJpdmVyIGVudHJ5IHBvaW50cwotICovCi0vKgotICogIENvcHlyaWdodCBUaGUgTWJlZCBUTFMgQ29udHJpYnV0b3JzCi0gKiAgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjAgT1IgR1BMLTIuMC1vci1sYXRlcgotICovCi0KLSNpbmNsdWRlICJjb21tb24uaCIKLQotI2lmIGRlZmluZWQoTUJFRFRMU19QU0FfQ1JZUFRPX0MpCi0KLSNpbmNsdWRlICJwc2FfY3J5cHRvX2NpcGhlci5oIgotI2luY2x1ZGUgInBzYV9jcnlwdG9fY29yZS5oIgotI2luY2x1ZGUgInBzYV9jcnlwdG9fcmFuZG9tX2ltcGwuaCIKLQotI2luY2x1ZGUgIm1iZWR0bHMvY2lwaGVyLmgiCi0jaW5jbHVkZSAibWJlZHRscy9lcnJvci5oIgotCi0jaW5jbHVkZSA8c3RyaW5nLmg+Ci0KLS8qIG1iZWR0bHNfY2lwaGVyX3ZhbHVlc19mcm9tX3BzYSgpIGJlbG93IG9ubHkgY2hlY2tzIGlmIHRoZSBwcm9wZXIgYnVpbGQgc3ltYm9scwotICogYXJlIGVuYWJsZWQsIGJ1dCBpdCBkb2VzIG5vdCBwcm92aWRlIGFueSBjb21wYXRpYmlsaXR5IGNoZWNrIGJldHdlZW4gdGhlbQotICogKGkuZS4gaWYgdGhlIHNwZWNpZmllZCBrZXkgd29ya3Mgd2l0aCB0aGUgc3BlY2lmaWVkIGFsZ29yaXRobSkuIFRoaXMgaGVscGVyCi0gKiBmdW5jdGlvbiBpcyBtZWFudCB0byBwcm92aWRlIHRoaXMgc3VwcG9ydC4KLSAqIG1iZWR0bHNfY2lwaGVyX2luZm9fZnJvbV9wc2EoKSBtaWdodCBiZSB1c2VkIGZvciB0aGUgc2FtZSBwdXJwb3NlLCBidXQgaXQKLSAqIHJlcXVpcmVzIENJUEhFUl9DIHRvIGJlIGVuYWJsZWQuCi0gKi8KLXN0YXRpYyBwc2Ffc3RhdHVzX3QgbWJlZHRsc19jaXBoZXJfdmFsaWRhdGVfdmFsdWVzKAotICAgIHBzYV9hbGdvcml0aG1fdCBhbGcsCi0gICAgcHNhX2tleV90eXBlX3Qga2V5X3R5cGUpCi17Ci0gICAgLyogUmVkdWNlIGNvZGUgc2l6ZSAtIGhpbnRpbmcgdG8gdGhlIGNvbXBpbGVyIGFib3V0IHdoYXQgaXQgY2FuIGFzc3VtZSBhbGxvd3MgdGhlIGNvbXBpbGVyIHRvCi0gICAgICAgZWxpbWluYXRlIGJpdHMgb2YgdGhlIGxvZ2ljIGJlbG93LiAqLwotI2lmICFkZWZpbmVkKFBTQV9XQU5UX0tFWV9UWVBFX0FFUykKLSAgICBNQkVEVExTX0FTU1VNRShrZXlfdHlwZSAhPSBQU0FfS0VZX1RZUEVfQUVTKTsKLSNlbmRpZgotI2lmICFkZWZpbmVkKFBTQV9XQU5UX0tFWV9UWVBFX0FSSUEpCi0gICAgTUJFRFRMU19BU1NVTUUoa2V5X3R5cGUgIT0gUFNBX0tFWV9UWVBFX0FSSUEpOwotI2VuZGlmCi0jaWYgIWRlZmluZWQoUFNBX1dBTlRfS0VZX1RZUEVfQ0FNRUxMSUEpCi0gICAgTUJFRFRMU19BU1NVTUUoa2V5X3R5cGUgIT0gUFNBX0tFWV9UWVBFX0NBTUVMTElBKTsKLSNlbmRpZgotI2lmICFkZWZpbmVkKFBTQV9XQU5UX0tFWV9UWVBFX0NIQUNIQTIwKQotICAgIE1CRURUTFNfQVNTVU1FKGtleV90eXBlICE9IFBTQV9LRVlfVFlQRV9DSEFDSEEyMCk7Ci0jZW5kaWYKLSNpZiAhZGVmaW5lZChQU0FfV0FOVF9LRVlfVFlQRV9ERVMpCi0gICAgTUJFRFRMU19BU1NVTUUoa2V5X3R5cGUgIT0gUFNBX0tFWV9UWVBFX0RFUyk7Ci0jZW5kaWYKLSNpZiAhZGVmaW5lZChQU0FfV0FOVF9BTEdfQ0NNKQotICAgIE1CRURUTFNfQVNTVU1FKGFsZyAhPSBQU0FfQUxHX0FFQURfV0lUSF9TSE9SVEVORURfVEFHKFBTQV9BTEdfQ0NNLCAwKSk7Ci0jZW5kaWYKLSNpZiAhZGVmaW5lZChQU0FfV0FOVF9BTEdfR0NNKQotICAgIE1CRURUTFNfQVNTVU1FKGFsZyAhPSBQU0FfQUxHX0FFQURfV0lUSF9TSE9SVEVORURfVEFHKFBTQV9BTEdfR0NNLCAwKSk7Ci0jZW5kaWYKLSNpZiAhZGVmaW5lZChQU0FfV0FOVF9BTEdfU1RSRUFNX0NJUEhFUikKLSAgICBNQkVEVExTX0FTU1VNRShhbGcgIT0gUFNBX0FMR19TVFJFQU1fQ0lQSEVSKTsKLSNlbmRpZgotI2lmICFkZWZpbmVkKFBTQV9XQU5UX0FMR19DSEFDSEEyMF9QT0xZMTMwNSkKLSAgICBNQkVEVExTX0FTU1VNRShhbGcgIT0gUFNBX0FMR19BRUFEX1dJVEhfU0hPUlRFTkVEX1RBRyhQU0FfQUxHX0NIQUNIQTIwX1BPTFkxMzA1LCAwKSk7Ci0jZW5kaWYKLSNpZiAhZGVmaW5lZChQU0FfV0FOVF9BTEdfQ0NNX1NUQVJfTk9fVEFHKQotICAgIE1CRURUTFNfQVNTVU1FKGFsZyAhPSBQU0FfQUxHX0NDTV9TVEFSX05PX1RBRyk7Ci0jZW5kaWYKLSNpZiAhZGVmaW5lZChQU0FfV0FOVF9BTEdfQ1RSKQotICAgIE1CRURUTFNfQVNTVU1FKGFsZyAhPSBQU0FfQUxHX0NUUik7Ci0jZW5kaWYKLSNpZiAhZGVmaW5lZChQU0FfV0FOVF9BTEdfQ0ZCKQotICAgIE1CRURUTFNfQVNTVU1FKGFsZyAhPSBQU0FfQUxHX0NGQik7Ci0jZW5kaWYKLSNpZiAhZGVmaW5lZChQU0FfV0FOVF9BTEdfT0ZCKQotICAgIE1CRURUTFNfQVNTVU1FKGFsZyAhPSBQU0FfQUxHX09GQik7Ci0jZW5kaWYKLSNpZiAhZGVmaW5lZChQU0FfV0FOVF9BTEdfWFRTKQotICAgIE1CRURUTFNfQVNTVU1FKGFsZyAhPSBQU0FfQUxHX1hUUyk7Ci0jZW5kaWYKLSNpZiAhZGVmaW5lZChQU0FfV0FOVF9BTEdfRUNCX05PX1BBRERJTkcpCi0gICAgTUJFRFRMU19BU1NVTUUoYWxnICE9IFBTQV9BTEdfRUNCX05PX1BBRERJTkcpOwotI2VuZGlmCi0jaWYgIWRlZmluZWQoUFNBX1dBTlRfQUxHX0NCQ19OT19QQURESU5HKQotICAgIE1CRURUTFNfQVNTVU1FKGFsZyAhPSBQU0FfQUxHX0NCQ19OT19QQURESU5HKTsKLSNlbmRpZgotI2lmICFkZWZpbmVkKFBTQV9XQU5UX0FMR19DQkNfUEtDUzcpCi0gICAgTUJFRFRMU19BU1NVTUUoYWxnICE9IFBTQV9BTEdfQ0JDX1BLQ1M3KTsKLSNlbmRpZgotI2lmICFkZWZpbmVkKFBTQV9XQU5UX0FMR19DTUFDKQotICAgIE1CRURUTFNfQVNTVU1FKGFsZyAhPSBQU0FfQUxHX0NNQUMpOwotI2VuZGlmCi0KLSAgICBpZiAoYWxnID09IFBTQV9BTEdfU1RSRUFNX0NJUEhFUiB8fAotICAgICAgICBhbGcgPT0gUFNBX0FMR19BRUFEX1dJVEhfU0hPUlRFTkVEX1RBRyhQU0FfQUxHX0NIQUNIQTIwX1BPTFkxMzA1LCAwKSkgewotICAgICAgICBpZiAoa2V5X3R5cGUgPT0gUFNBX0tFWV9UWVBFX0NIQUNIQTIwKSB7Ci0gICAgICAgICAgICByZXR1cm4gUFNBX1NVQ0NFU1M7Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICBpZiAoYWxnID09IFBTQV9BTEdfQUVBRF9XSVRIX1NIT1JURU5FRF9UQUcoUFNBX0FMR19DQ00sIDApIHx8Ci0gICAgICAgIGFsZyA9PSBQU0FfQUxHX0FFQURfV0lUSF9TSE9SVEVORURfVEFHKFBTQV9BTEdfR0NNLCAwKSB8fAotICAgICAgICBhbGcgPT0gUFNBX0FMR19DQ01fU1RBUl9OT19UQUcpIHsKLSAgICAgICAgaWYgKGtleV90eXBlID09IFBTQV9LRVlfVFlQRV9BRVMgfHwKLSAgICAgICAgICAgIGtleV90eXBlID09IFBTQV9LRVlfVFlQRV9BUklBIHx8Ci0gICAgICAgICAgICBrZXlfdHlwZSA9PSBQU0FfS0VZX1RZUEVfQ0FNRUxMSUEpIHsKLSAgICAgICAgICAgIHJldHVybiBQU0FfU1VDQ0VTUzsKLSAgICAgICAgfQotICAgIH0KLQotICAgIGlmIChhbGcgPT0gUFNBX0FMR19DVFIgfHwKLSAgICAgICAgYWxnID09IFBTQV9BTEdfQ0ZCIHx8Ci0gICAgICAgIGFsZyA9PSBQU0FfQUxHX09GQiB8fAotICAgICAgICBhbGcgPT0gUFNBX0FMR19YVFMgfHwKLSAgICAgICAgYWxnID09IFBTQV9BTEdfRUNCX05PX1BBRERJTkcgfHwKLSAgICAgICAgYWxnID09IFBTQV9BTEdfQ0JDX05PX1BBRERJTkcgfHwKLSAgICAgICAgYWxnID09IFBTQV9BTEdfQ0JDX1BLQ1M3IHx8Ci0gICAgICAgIGFsZyA9PSBQU0FfQUxHX0NNQUMpIHsKLSAgICAgICAgaWYgKGtleV90eXBlID09IFBTQV9LRVlfVFlQRV9BRVMgfHwKLSAgICAgICAgICAgIGtleV90eXBlID09IFBTQV9LRVlfVFlQRV9BUklBIHx8Ci0gICAgICAgICAgICBrZXlfdHlwZSA9PSBQU0FfS0VZX1RZUEVfREVTIHx8Ci0gICAgICAgICAgICBrZXlfdHlwZSA9PSBQU0FfS0VZX1RZUEVfQ0FNRUxMSUEpIHsKLSAgICAgICAgICAgIHJldHVybiBQU0FfU1VDQ0VTUzsKLSAgICAgICAgfQotICAgIH0KLQotICAgIHJldHVybiBQU0FfRVJST1JfTk9UX1NVUFBPUlRFRDsKLX0KLQotcHNhX3N0YXR1c190IG1iZWR0bHNfY2lwaGVyX3ZhbHVlc19mcm9tX3BzYSgKLSAgICBwc2FfYWxnb3JpdGhtX3QgYWxnLAotICAgIHBzYV9rZXlfdHlwZV90IGtleV90eXBlLAotICAgIHNpemVfdCAqa2V5X2JpdHMsCi0gICAgbWJlZHRsc19jaXBoZXJfbW9kZV90ICptb2RlLAotICAgIG1iZWR0bHNfY2lwaGVyX2lkX3QgKmNpcGhlcl9pZCkKLXsKLSAgICBtYmVkdGxzX2NpcGhlcl9pZF90IGNpcGhlcl9pZF90bXA7Ci0gICAgLyogT25seSBERVMgbW9kaWZpZXMga2V5X2JpdHMgKi8KLSNpZiAhZGVmaW5lZChNQkVEVExTX1BTQV9CVUlMVElOX0tFWV9UWVBFX0RFUykKLSAgICAodm9pZCkga2V5X2JpdHM7Ci0jZW5kaWYKLQotICAgIGlmIChQU0FfQUxHX0lTX0FFQUQoYWxnKSkgewotICAgICAgICBhbGcgPSBQU0FfQUxHX0FFQURfV0lUSF9TSE9SVEVORURfVEFHKGFsZywgMCk7Ci0gICAgfQotCi0gICAgaWYgKFBTQV9BTEdfSVNfQ0lQSEVSKGFsZykgfHwgUFNBX0FMR19JU19BRUFEKGFsZykpIHsKLSAgICAgICAgc3dpdGNoIChhbGcpIHsKLSNpZiBkZWZpbmVkKE1CRURUTFNfUFNBX0JVSUxUSU5fQUxHX1NUUkVBTV9DSVBIRVIpCi0gICAgICAgICAgICBjYXNlIFBTQV9BTEdfU1RSRUFNX0NJUEhFUjoKLSAgICAgICAgICAgICAgICAqbW9kZSA9IE1CRURUTFNfTU9ERV9TVFJFQU07Ci0gICAgICAgICAgICAgICAgYnJlYWs7Ci0jZW5kaWYKLSNpZiBkZWZpbmVkKE1CRURUTFNfUFNBX0JVSUxUSU5fQUxHX0NUUikKLSAgICAgICAgICAgIGNhc2UgUFNBX0FMR19DVFI6Ci0gICAgICAgICAgICAgICAgKm1vZGUgPSBNQkVEVExTX01PREVfQ1RSOwotICAgICAgICAgICAgICAgIGJyZWFrOwotI2VuZGlmCi0jaWYgZGVmaW5lZChNQkVEVExTX1BTQV9CVUlMVElOX0FMR19DRkIpCi0gICAgICAgICAgICBjYXNlIFBTQV9BTEdfQ0ZCOgotICAgICAgICAgICAgICAgICptb2RlID0gTUJFRFRMU19NT0RFX0NGQjsKLSAgICAgICAgICAgICAgICBicmVhazsKLSNlbmRpZgotI2lmIGRlZmluZWQoTUJFRFRMU19QU0FfQlVJTFRJTl9BTEdfT0ZCKQotICAgICAgICAgICAgY2FzZSBQU0FfQUxHX09GQjoKLSAgICAgICAgICAgICAgICAqbW9kZSA9IE1CRURUTFNfTU9ERV9PRkI7Ci0gICAgICAgICAgICAgICAgYnJlYWs7Ci0jZW5kaWYKLSNpZiBkZWZpbmVkKE1CRURUTFNfUFNBX0JVSUxUSU5fQUxHX0VDQl9OT19QQURESU5HKQotICAgICAgICAgICAgY2FzZSBQU0FfQUxHX0VDQl9OT19QQURESU5HOgotICAgICAgICAgICAgICAgICptb2RlID0gTUJFRFRMU19NT0RFX0VDQjsKLSAgICAgICAgICAgICAgICBicmVhazsKLSNlbmRpZgotI2lmIGRlZmluZWQoTUJFRFRMU19QU0FfQlVJTFRJTl9BTEdfQ0JDX05PX1BBRERJTkcpCi0gICAgICAgICAgICBjYXNlIFBTQV9BTEdfQ0JDX05PX1BBRERJTkc6Ci0gICAgICAgICAgICAgICAgKm1vZGUgPSBNQkVEVExTX01PREVfQ0JDOwotICAgICAgICAgICAgICAgIGJyZWFrOwotI2VuZGlmCi0jaWYgZGVmaW5lZChNQkVEVExTX1BTQV9CVUlMVElOX0FMR19DQkNfUEtDUzcpCi0gICAgICAgICAgICBjYXNlIFBTQV9BTEdfQ0JDX1BLQ1M3OgotICAgICAgICAgICAgICAgICptb2RlID0gTUJFRFRMU19NT0RFX0NCQzsKLSAgICAgICAgICAgICAgICBicmVhazsKLSNlbmRpZgotI2lmIGRlZmluZWQoTUJFRFRMU19QU0FfQlVJTFRJTl9BTEdfQ0NNX1NUQVJfTk9fVEFHKQotICAgICAgICAgICAgY2FzZSBQU0FfQUxHX0NDTV9TVEFSX05PX1RBRzoKLSAgICAgICAgICAgICAgICAqbW9kZSA9IE1CRURUTFNfTU9ERV9DQ01fU1RBUl9OT19UQUc7Ci0gICAgICAgICAgICAgICAgYnJlYWs7Ci0jZW5kaWYKLSNpZiBkZWZpbmVkKE1CRURUTFNfUFNBX0JVSUxUSU5fQUxHX0NDTSkKLSAgICAgICAgICAgIGNhc2UgUFNBX0FMR19BRUFEX1dJVEhfU0hPUlRFTkVEX1RBRyhQU0FfQUxHX0NDTSwgMCk6Ci0gICAgICAgICAgICAgICAgKm1vZGUgPSBNQkVEVExTX01PREVfQ0NNOwotICAgICAgICAgICAgICAgIGJyZWFrOwotI2VuZGlmCi0jaWYgZGVmaW5lZChNQkVEVExTX1BTQV9CVUlMVElOX0FMR19HQ00pCi0gICAgICAgICAgICBjYXNlIFBTQV9BTEdfQUVBRF9XSVRIX1NIT1JURU5FRF9UQUcoUFNBX0FMR19HQ00sIDApOgotICAgICAgICAgICAgICAgICptb2RlID0gTUJFRFRMU19NT0RFX0dDTTsKLSAgICAgICAgICAgICAgICBicmVhazsKLSNlbmRpZgotI2lmIGRlZmluZWQoTUJFRFRMU19QU0FfQlVJTFRJTl9BTEdfQ0hBQ0hBMjBfUE9MWTEzMDUpCi0gICAgICAgICAgICBjYXNlIFBTQV9BTEdfQUVBRF9XSVRIX1NIT1JURU5FRF9UQUcoUFNBX0FMR19DSEFDSEEyMF9QT0xZMTMwNSwgMCk6Ci0gICAgICAgICAgICAgICAgKm1vZGUgPSBNQkVEVExTX01PREVfQ0hBQ0hBUE9MWTsKLSAgICAgICAgICAgICAgICBicmVhazsKLSNlbmRpZgotICAgICAgICAgICAgZGVmYXVsdDoKLSAgICAgICAgICAgICAgICByZXR1cm4gUFNBX0VSUk9SX05PVF9TVVBQT1JURUQ7Ci0gICAgICAgIH0KLSAgICB9IGVsc2UgaWYgKGFsZyA9PSBQU0FfQUxHX0NNQUMpIHsKLSAgICAgICAgKm1vZGUgPSBNQkVEVExTX01PREVfRUNCOwotICAgIH0gZWxzZSB7Ci0gICAgICAgIHJldHVybiBQU0FfRVJST1JfTk9UX1NVUFBPUlRFRDsKLSAgICB9Ci0KLSAgICBzd2l0Y2ggKGtleV90eXBlKSB7Ci0jaWYgZGVmaW5lZChNQkVEVExTX1BTQV9CVUlMVElOX0tFWV9UWVBFX0FFUykKLSAgICAgICAgY2FzZSBQU0FfS0VZX1RZUEVfQUVTOgotICAgICAgICAgICAgY2lwaGVyX2lkX3RtcCA9IE1CRURUTFNfQ0lQSEVSX0lEX0FFUzsKLSAgICAgICAgICAgIGJyZWFrOwotI2VuZGlmCi0jaWYgZGVmaW5lZChNQkVEVExTX1BTQV9CVUlMVElOX0tFWV9UWVBFX0FSSUEpCi0gICAgICAgIGNhc2UgUFNBX0tFWV9UWVBFX0FSSUE6Ci0gICAgICAgICAgICBjaXBoZXJfaWRfdG1wID0gTUJFRFRMU19DSVBIRVJfSURfQVJJQTsKLSAgICAgICAgICAgIGJyZWFrOwotI2VuZGlmCi0jaWYgZGVmaW5lZChNQkVEVExTX1BTQV9CVUlMVElOX0tFWV9UWVBFX0RFUykKLSAgICAgICAgY2FzZSBQU0FfS0VZX1RZUEVfREVTOgotICAgICAgICAgICAgLyoga2V5X2JpdHMgaXMgNjQgZm9yIFNpbmdsZS1ERVMsIDEyOCBmb3IgdHdvLWtleSBUcmlwbGUtREVTLAotICAgICAgICAgICAgICogYW5kIDE5MiBmb3IgdGhyZWUta2V5IFRyaXBsZS1ERVMuICovCi0gICAgICAgICAgICBpZiAoKmtleV9iaXRzID09IDY0KSB7Ci0gICAgICAgICAgICAgICAgY2lwaGVyX2lkX3RtcCA9IE1CRURUTFNfQ0lQSEVSX0lEX0RFUzsKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgY2lwaGVyX2lkX3RtcCA9IE1CRURUTFNfQ0lQSEVSX0lEXzNERVM7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICAvKiBtYmVkdGxzIGRvZXNuJ3QgcmVjb2duaXplIHR3by1rZXkgVHJpcGxlLURFUyBhcyBhbiBhbGdvcml0aG0sCi0gICAgICAgICAgICAgKiBidXQgdHdvLWtleSBUcmlwbGUtREVTIGlzIGZ1bmN0aW9uYWxseSB0aHJlZS1rZXkgVHJpcGxlLURFUwotICAgICAgICAgICAgICogd2l0aCBLMT1LMywgc28gdGhhdCdzIGhvdyB3ZSBwcmVzZW50IGl0IHRvIG1iZWR0bHMuICovCi0gICAgICAgICAgICBpZiAoKmtleV9iaXRzID09IDEyOCkgewotICAgICAgICAgICAgICAgICprZXlfYml0cyA9IDE5MjsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGJyZWFrOwotI2VuZGlmCi0jaWYgZGVmaW5lZChNQkVEVExTX1BTQV9CVUlMVElOX0tFWV9UWVBFX0NBTUVMTElBKQotICAgICAgICBjYXNlIFBTQV9LRVlfVFlQRV9DQU1FTExJQToKLSAgICAgICAgICAgIGNpcGhlcl9pZF90bXAgPSBNQkVEVExTX0NJUEhFUl9JRF9DQU1FTExJQTsKLSAgICAgICAgICAgIGJyZWFrOwotI2VuZGlmCi0jaWYgZGVmaW5lZChNQkVEVExTX1BTQV9CVUlMVElOX0tFWV9UWVBFX0NIQUNIQTIwKQotICAgICAgICBjYXNlIFBTQV9LRVlfVFlQRV9DSEFDSEEyMDoKLSAgICAgICAgICAgIGNpcGhlcl9pZF90bXAgPSBNQkVEVExTX0NJUEhFUl9JRF9DSEFDSEEyMDsKLSAgICAgICAgICAgIGJyZWFrOwotI2VuZGlmCi0gICAgICAgIGRlZmF1bHQ6Ci0gICAgICAgICAgICByZXR1cm4gUFNBX0VSUk9SX05PVF9TVVBQT1JURUQ7Ci0gICAgfQotICAgIGlmIChjaXBoZXJfaWQgIT0gTlVMTCkgewotICAgICAgICAqY2lwaGVyX2lkID0gY2lwaGVyX2lkX3RtcDsKLSAgICB9Ci0KLSAgICByZXR1cm4gbWJlZHRsc19jaXBoZXJfdmFsaWRhdGVfdmFsdWVzKGFsZywga2V5X3R5cGUpOwotfQotCi0jaWYgZGVmaW5lZChNQkVEVExTX0NJUEhFUl9DKQotY29uc3QgbWJlZHRsc19jaXBoZXJfaW5mb190ICptYmVkdGxzX2NpcGhlcl9pbmZvX2Zyb21fcHNhKAotICAgIHBzYV9hbGdvcml0aG1fdCBhbGcsCi0gICAgcHNhX2tleV90eXBlX3Qga2V5X3R5cGUsCi0gICAgc2l6ZV90IGtleV9iaXRzLAotICAgIG1iZWR0bHNfY2lwaGVyX2lkX3QgKmNpcGhlcl9pZCkKLXsKLSAgICBtYmVkdGxzX2NpcGhlcl9tb2RlX3QgbW9kZTsKLSAgICBwc2Ffc3RhdHVzX3Qgc3RhdHVzOwotICAgIG1iZWR0bHNfY2lwaGVyX2lkX3QgY2lwaGVyX2lkX3RtcDsKLQotICAgIHN0YXR1cyA9IG1iZWR0bHNfY2lwaGVyX3ZhbHVlc19mcm9tX3BzYShhbGcsIGtleV90eXBlLCAma2V5X2JpdHMsICZtb2RlLCAmY2lwaGVyX2lkX3RtcCk7Ci0gICAgaWYgKHN0YXR1cyAhPSBQU0FfU1VDQ0VTUykgewotICAgICAgICByZXR1cm4gTlVMTDsKLSAgICB9Ci0gICAgaWYgKGNpcGhlcl9pZCAhPSBOVUxMKSB7Ci0gICAgICAgICpjaXBoZXJfaWQgPSBjaXBoZXJfaWRfdG1wOwotICAgIH0KLQotICAgIHJldHVybiBtYmVkdGxzX2NpcGhlcl9pbmZvX2Zyb21fdmFsdWVzKGNpcGhlcl9pZF90bXAsIChpbnQpIGtleV9iaXRzLCBtb2RlKTsKLX0KLSNlbmRpZiAvKiBNQkVEVExTX0NJUEhFUl9DICovCi0KLSNpZiBkZWZpbmVkKE1CRURUTFNfUFNBX0JVSUxUSU5fQ0lQSEVSKQotCi1zdGF0aWMgcHNhX3N0YXR1c190IHBzYV9jaXBoZXJfc2V0dXAoCi0gICAgbWJlZHRsc19wc2FfY2lwaGVyX29wZXJhdGlvbl90ICpvcGVyYXRpb24sCi0gICAgY29uc3QgcHNhX2tleV9hdHRyaWJ1dGVzX3QgKmF0dHJpYnV0ZXMsCi0gICAgY29uc3QgdWludDhfdCAqa2V5X2J1ZmZlciwgc2l6ZV90IGtleV9idWZmZXJfc2l6ZSwKLSAgICBwc2FfYWxnb3JpdGhtX3QgYWxnLAotICAgIG1iZWR0bHNfb3BlcmF0aW9uX3QgY2lwaGVyX29wZXJhdGlvbikKLXsKLSAgICBpbnQgcmV0ID0gMDsKLSAgICBzaXplX3Qga2V5X2JpdHM7Ci0gICAgY29uc3QgbWJlZHRsc19jaXBoZXJfaW5mb190ICpjaXBoZXJfaW5mbyA9IE5VTEw7Ci0gICAgcHNhX2tleV90eXBlX3Qga2V5X3R5cGUgPSBhdHRyaWJ1dGVzLT50eXBlOwotCi0gICAgKHZvaWQpIGtleV9idWZmZXJfc2l6ZTsKLQotICAgIG1iZWR0bHNfY2lwaGVyX2luaXQoJm9wZXJhdGlvbi0+Y3R4LmNpcGhlcik7Ci0KLSAgICBvcGVyYXRpb24tPmFsZyA9IGFsZzsKLSAgICBrZXlfYml0cyA9IGF0dHJpYnV0ZXMtPmJpdHM7Ci0gICAgY2lwaGVyX2luZm8gPSBtYmVkdGxzX2NpcGhlcl9pbmZvX2Zyb21fcHNhKGFsZywga2V5X3R5cGUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtleV9iaXRzLCBOVUxMKTsKLSAgICBpZiAoY2lwaGVyX2luZm8gPT0gTlVMTCkgewotICAgICAgICByZXR1cm4gUFNBX0VSUk9SX05PVF9TVVBQT1JURUQ7Ci0gICAgfQotCi0gICAgcmV0ID0gbWJlZHRsc19jaXBoZXJfc2V0dXAoJm9wZXJhdGlvbi0+Y3R4LmNpcGhlciwgY2lwaGVyX2luZm8pOwotICAgIGlmIChyZXQgIT0gMCkgewotICAgICAgICBnb3RvIGV4aXQ7Ci0gICAgfQotCi0jaWYgZGVmaW5lZChNQkVEVExTX1BTQV9CVUlMVElOX0tFWV9UWVBFX0RFUykKLSAgICBpZiAoa2V5X3R5cGUgPT0gUFNBX0tFWV9UWVBFX0RFUyAmJiBrZXlfYml0cyA9PSAxMjgpIHsKLSAgICAgICAgLyogVHdvLWtleSBUcmlwbGUtREVTIGlzIDMta2V5IFRyaXBsZS1ERVMgd2l0aCBLMT1LMyAqLwotICAgICAgICB1aW50OF90IGtleXNbMjRdOwotICAgICAgICBtZW1jcHkoa2V5cywga2V5X2J1ZmZlciwgMTYpOwotICAgICAgICBtZW1jcHkoa2V5cyArIDE2LCBrZXlfYnVmZmVyLCA4KTsKLSAgICAgICAgcmV0ID0gbWJlZHRsc19jaXBoZXJfc2V0a2V5KCZvcGVyYXRpb24tPmN0eC5jaXBoZXIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXlzLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMTkyLCBjaXBoZXJfb3BlcmF0aW9uKTsKLSAgICB9IGVsc2UKLSNlbmRpZgotICAgIHsKLSAgICAgICAgcmV0ID0gbWJlZHRsc19jaXBoZXJfc2V0a2V5KCZvcGVyYXRpb24tPmN0eC5jaXBoZXIsIGtleV9idWZmZXIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50KSBrZXlfYml0cywgY2lwaGVyX29wZXJhdGlvbik7Ci0gICAgfQotICAgIGlmIChyZXQgIT0gMCkgewotICAgICAgICBnb3RvIGV4aXQ7Ci0gICAgfQotCi0jaWYgZGVmaW5lZChNQkVEVExTX1BTQV9CVUlMVElOX0FMR19DQkNfTk9fUEFERElORykgfHwgXAotICAgIGRlZmluZWQoTUJFRFRMU19QU0FfQlVJTFRJTl9BTEdfQ0JDX1BLQ1M3KQotICAgIHN3aXRjaCAoYWxnKSB7Ci0gICAgICAgIGNhc2UgUFNBX0FMR19DQkNfTk9fUEFERElORzoKLSAgICAgICAgICAgIHJldCA9IG1iZWR0bHNfY2lwaGVyX3NldF9wYWRkaW5nX21vZGUoJm9wZXJhdGlvbi0+Y3R4LmNpcGhlciwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTUJFRFRMU19QQURESU5HX05PTkUpOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgUFNBX0FMR19DQkNfUEtDUzc6Ci0gICAgICAgICAgICByZXQgPSBtYmVkdGxzX2NpcGhlcl9zZXRfcGFkZGluZ19tb2RlKCZvcGVyYXRpb24tPmN0eC5jaXBoZXIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1CRURUTFNfUEFERElOR19QS0NTNyk7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgZGVmYXVsdDoKLSAgICAgICAgICAgIC8qIFRoZSBhbGdvcml0aG0gZG9lc24ndCBpbnZvbHZlIHBhZGRpbmcuICovCi0gICAgICAgICAgICByZXQgPSAwOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgfQotICAgIGlmIChyZXQgIT0gMCkgewotICAgICAgICBnb3RvIGV4aXQ7Ci0gICAgfQotI2VuZGlmIC8qIE1CRURUTFNfUFNBX0JVSUxUSU5fQUxHX0NCQ19OT19QQURESU5HIHx8Ci0gICAgICAgICAgTUJFRFRMU19QU0FfQlVJTFRJTl9BTEdfQ0JDX1BLQ1M3ICovCi0KLSAgICBvcGVyYXRpb24tPmJsb2NrX2xlbmd0aCA9IChQU0FfQUxHX0lTX1NUUkVBTV9DSVBIRVIoYWxnKSA/IDEgOgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBTQV9CTE9DS19DSVBIRVJfQkxPQ0tfTEVOR1RIKGtleV90eXBlKSk7Ci0gICAgb3BlcmF0aW9uLT5pdl9sZW5ndGggPSBQU0FfQ0lQSEVSX0lWX0xFTkdUSChrZXlfdHlwZSwgYWxnKTsKLQotZXhpdDoKLSAgICByZXR1cm4gbWJlZHRsc190b19wc2FfZXJyb3IocmV0KTsKLX0KLQotcHNhX3N0YXR1c190IG1iZWR0bHNfcHNhX2NpcGhlcl9lbmNyeXB0X3NldHVwKAotICAgIG1iZWR0bHNfcHNhX2NpcGhlcl9vcGVyYXRpb25fdCAqb3BlcmF0aW9uLAotICAgIGNvbnN0IHBzYV9rZXlfYXR0cmlidXRlc190ICphdHRyaWJ1dGVzLAotICAgIGNvbnN0IHVpbnQ4X3QgKmtleV9idWZmZXIsIHNpemVfdCBrZXlfYnVmZmVyX3NpemUsCi0gICAgcHNhX2FsZ29yaXRobV90IGFsZykKLXsKLSAgICByZXR1cm4gcHNhX2NpcGhlcl9zZXR1cChvcGVyYXRpb24sIGF0dHJpYnV0ZXMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAga2V5X2J1ZmZlciwga2V5X2J1ZmZlcl9zaXplLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFsZywgTUJFRFRMU19FTkNSWVBUKTsKLX0KLQotcHNhX3N0YXR1c190IG1iZWR0bHNfcHNhX2NpcGhlcl9kZWNyeXB0X3NldHVwKAotICAgIG1iZWR0bHNfcHNhX2NpcGhlcl9vcGVyYXRpb25fdCAqb3BlcmF0aW9uLAotICAgIGNvbnN0IHBzYV9rZXlfYXR0cmlidXRlc190ICphdHRyaWJ1dGVzLAotICAgIGNvbnN0IHVpbnQ4X3QgKmtleV9idWZmZXIsIHNpemVfdCBrZXlfYnVmZmVyX3NpemUsCi0gICAgcHNhX2FsZ29yaXRobV90IGFsZykKLXsKLSAgICByZXR1cm4gcHNhX2NpcGhlcl9zZXR1cChvcGVyYXRpb24sIGF0dHJpYnV0ZXMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAga2V5X2J1ZmZlciwga2V5X2J1ZmZlcl9zaXplLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFsZywgTUJFRFRMU19ERUNSWVBUKTsKLX0KLQotcHNhX3N0YXR1c190IG1iZWR0bHNfcHNhX2NpcGhlcl9zZXRfaXYoCi0gICAgbWJlZHRsc19wc2FfY2lwaGVyX29wZXJhdGlvbl90ICpvcGVyYXRpb24sCi0gICAgY29uc3QgdWludDhfdCAqaXYsIHNpemVfdCBpdl9sZW5ndGgpCi17Ci0gICAgaWYgKGl2X2xlbmd0aCAhPSBvcGVyYXRpb24tPml2X2xlbmd0aCkgewotICAgICAgICByZXR1cm4gUFNBX0VSUk9SX0lOVkFMSURfQVJHVU1FTlQ7Ci0gICAgfQotCi0gICAgcmV0dXJuIG1iZWR0bHNfdG9fcHNhX2Vycm9yKAotICAgICAgICBtYmVkdGxzX2NpcGhlcl9zZXRfaXYoJm9wZXJhdGlvbi0+Y3R4LmNpcGhlciwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGl2LCBpdl9sZW5ndGgpKTsKLX0KLQotI2lmIGRlZmluZWQoTUJFRFRMU19QU0FfQlVJTFRJTl9BTEdfRUNCX05PX1BBRERJTkcpCi0vKiogUHJvY2VzcyBpbnB1dCBmb3Igd2hpY2ggdGhlIGFsZ29yaXRobSBpcyBzZXQgdG8gRUNCIG1vZGUuCi0gKgotICogVGhpcyByZXF1aXJlcyBtYW51YWwgcHJvY2Vzc2luZywgc2luY2UgdGhlIFBTQSBBUEkgaXMgZGVmaW5lZCBhcyBiZWluZwotICogYWJsZSB0byBwcm9jZXNzIGFyYml0cmFyeS1sZW5ndGggY2FsbHMgdG8gcHNhX2NpcGhlcl91cGRhdGUoKSB3aXRoIEVDQiBtb2RlLAotICogYnV0IHRoZSB1bmRlcmx5aW5nIG1iZWR0bHNfY2lwaGVyX3VwZGF0ZSBvbmx5IHRha2VzIGZ1bGwgYmxvY2tzLgotICoKLSAqIFxwYXJhbSBjdHggICAgICAgICAgIFRoZSBtYmVkdGxzIGNpcGhlciBjb250ZXh0IHRvIHVzZS4gSXQgbXVzdCBoYXZlIGJlZW4KLSAqICAgICAgICAgICAgICAgICAgICAgIHNldCB1cCBmb3IgRUNCLgotICogXHBhcmFtW2luXSBpbnB1dCAgICAgVGhlIGlucHV0IHBsYWludGV4dCBvciBjaXBoZXJ0ZXh0IHRvIHByb2Nlc3MuCi0gKiBccGFyYW0gaW5wdXRfbGVuZ3RoICBUaGUgbnVtYmVyIG9mIGJ5dGVzIHRvIHByb2Nlc3MgZnJvbSBccCBpbnB1dC4KLSAqICAgICAgICAgICAgICAgICAgICAgIFRoaXMgZG9lcyBub3QgbmVlZCB0byBiZSBhbGlnbmVkIHRvIGEgYmxvY2sgYm91bmRhcnkuCi0gKiAgICAgICAgICAgICAgICAgICAgICBJZiB0aGVyZSBpcyBhIHBhcnRpYWwgYmxvY2sgYXQgdGhlIGVuZCBvZiB0aGUgaW5wdXQsCi0gKiAgICAgICAgICAgICAgICAgICAgICBpdCBpcyBzdG9yZWQgaW4gXHAgY3R4IGZvciBmdXR1cmUgcHJvY2Vzc2luZy4KLSAqIFxwYXJhbSBvdXRwdXQgICAgICAgIFRoZSBidWZmZXIgd2hlcmUgdGhlIG91dHB1dCBpcyB3cml0dGVuLiBJdCBtdXN0IGJlCi0gKiAgICAgICAgICAgICAgICAgICAgICBhdCBsZWFzdCBgQlMgKiBmbG9vcigocCArIGlucHV0X2xlbmd0aCkgLyBCUylgIGJ5dGVzCi0gKiAgICAgICAgICAgICAgICAgICAgICBsb25nLCB3aGVyZSBgcGAgaXMgdGhlIG51bWJlciBvZiBieXRlcyBpbiB0aGUKLSAqICAgICAgICAgICAgICAgICAgICAgIHVucHJvY2Vzc2VkIHBhcnRpYWwgYmxvY2sgaW4gXHAgY3R4ICh3aXRoCi0gKiAgICAgICAgICAgICAgICAgICAgICBgMCA8PSBwIDw9IEJTIC0gMWApIGFuZCBgQlNgIGlzIHRoZSBibG9jayBzaXplLgotICogXHBhcmFtIG91dHB1dF9sZW5ndGggT24gc3VjY2VzcywgdGhlIG51bWJlciBvZiBieXRlcyB3cml0dGVuIHRvIFxwIG91dHB1dC4KLSAqICAgICAgICAgICAgICAgICAgICAgIFxjIDAgb24gZXJyb3IuCi0gKgotICogXHJldHVybiAjUFNBX1NVQ0NFU1Mgb3IgYW4gZXJyb3IgZnJvbSBhIGhhcmR3YXJlIGFjY2VsZXJhdG9yCi0gKi8KLXN0YXRpYyBwc2Ffc3RhdHVzX3QgcHNhX2NpcGhlcl91cGRhdGVfZWNiKAotICAgIG1iZWR0bHNfY2lwaGVyX2NvbnRleHRfdCAqY3R4LAotICAgIGNvbnN0IHVpbnQ4X3QgKmlucHV0LAotICAgIHNpemVfdCBpbnB1dF9sZW5ndGgsCi0gICAgdWludDhfdCAqb3V0cHV0LAotICAgIHNpemVfdCAqb3V0cHV0X2xlbmd0aCkKLXsKLSAgICBwc2Ffc3RhdHVzX3Qgc3RhdHVzID0gUFNBX0VSUk9SX0NPUlJVUFRJT05fREVURUNURUQ7Ci0gICAgc2l6ZV90IGJsb2NrX3NpemUgPSBtYmVkdGxzX2NpcGhlcl9pbmZvX2dldF9ibG9ja19zaXplKGN0eC0+Y2lwaGVyX2luZm8pOwotICAgIHNpemVfdCBpbnRlcm5hbF9vdXRwdXRfbGVuZ3RoID0gMDsKLSAgICAqb3V0cHV0X2xlbmd0aCA9IDA7Ci0KLSAgICBpZiAoaW5wdXRfbGVuZ3RoID09IDApIHsKLSAgICAgICAgc3RhdHVzID0gUFNBX1NVQ0NFU1M7Ci0gICAgICAgIGdvdG8gZXhpdDsKLSAgICB9Ci0KLSAgICBpZiAoY3R4LT51bnByb2Nlc3NlZF9sZW4gPiAwKSB7Ci0gICAgICAgIC8qIEZpbGwgdXAgdG8gYmxvY2sgc2l6ZSwgYW5kIHJ1biB0aGUgYmxvY2sgaWYgdGhlcmUncyBhIGZ1bGwgb25lLiAqLwotICAgICAgICBzaXplX3QgYnl0ZXNfdG9fY29weSA9IGJsb2NrX3NpemUgLSBjdHgtPnVucHJvY2Vzc2VkX2xlbjsKLQotICAgICAgICBpZiAoaW5wdXRfbGVuZ3RoIDwgYnl0ZXNfdG9fY29weSkgewotICAgICAgICAgICAgYnl0ZXNfdG9fY29weSA9IGlucHV0X2xlbmd0aDsKLSAgICAgICAgfQotCi0gICAgICAgIG1lbWNweSgmKGN0eC0+dW5wcm9jZXNzZWRfZGF0YVtjdHgtPnVucHJvY2Vzc2VkX2xlbl0pLAotICAgICAgICAgICAgICAgaW5wdXQsIGJ5dGVzX3RvX2NvcHkpOwotICAgICAgICBpbnB1dF9sZW5ndGggLT0gYnl0ZXNfdG9fY29weTsKLSAgICAgICAgaW5wdXQgKz0gYnl0ZXNfdG9fY29weTsKLSAgICAgICAgY3R4LT51bnByb2Nlc3NlZF9sZW4gKz0gYnl0ZXNfdG9fY29weTsKLQotICAgICAgICBpZiAoY3R4LT51bnByb2Nlc3NlZF9sZW4gPT0gYmxvY2tfc2l6ZSkgewotICAgICAgICAgICAgc3RhdHVzID0gbWJlZHRsc190b19wc2FfZXJyb3IoCi0gICAgICAgICAgICAgICAgbWJlZHRsc19jaXBoZXJfdXBkYXRlKGN0eCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3R4LT51bnByb2Nlc3NlZF9kYXRhLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBibG9ja19zaXplLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvdXRwdXQsICZpbnRlcm5hbF9vdXRwdXRfbGVuZ3RoKSk7Ci0KLSAgICAgICAgICAgIGlmIChzdGF0dXMgIT0gUFNBX1NVQ0NFU1MpIHsKLSAgICAgICAgICAgICAgICBnb3RvIGV4aXQ7Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIG91dHB1dCArPSBpbnRlcm5hbF9vdXRwdXRfbGVuZ3RoOwotICAgICAgICAgICAgKm91dHB1dF9sZW5ndGggKz0gaW50ZXJuYWxfb3V0cHV0X2xlbmd0aDsKLSAgICAgICAgICAgIGN0eC0+dW5wcm9jZXNzZWRfbGVuID0gMDsKLSAgICAgICAgfQotICAgIH0KLQotICAgIHdoaWxlIChpbnB1dF9sZW5ndGggPj0gYmxvY2tfc2l6ZSkgewotICAgICAgICAvKiBSdW4gYWxsIGZ1bGwgYmxvY2tzIHdlIGhhdmUsIG9uZSBieSBvbmUgKi8KLSAgICAgICAgc3RhdHVzID0gbWJlZHRsc190b19wc2FfZXJyb3IoCi0gICAgICAgICAgICBtYmVkdGxzX2NpcGhlcl91cGRhdGUoY3R4LCBpbnB1dCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBibG9ja19zaXplLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG91dHB1dCwgJmludGVybmFsX291dHB1dF9sZW5ndGgpKTsKLQotICAgICAgICBpZiAoc3RhdHVzICE9IFBTQV9TVUNDRVNTKSB7Ci0gICAgICAgICAgICBnb3RvIGV4aXQ7Ci0gICAgICAgIH0KLQotICAgICAgICBpbnB1dF9sZW5ndGggLT0gYmxvY2tfc2l6ZTsKLSAgICAgICAgaW5wdXQgKz0gYmxvY2tfc2l6ZTsKLQotICAgICAgICBvdXRwdXQgKz0gaW50ZXJuYWxfb3V0cHV0X2xlbmd0aDsKLSAgICAgICAgKm91dHB1dF9sZW5ndGggKz0gaW50ZXJuYWxfb3V0cHV0X2xlbmd0aDsKLSAgICB9Ci0KLSAgICBpZiAoaW5wdXRfbGVuZ3RoID4gMCkgewotICAgICAgICAvKiBTYXZlIHVucHJvY2Vzc2VkIGJ5dGVzIGZvciBsYXRlciBwcm9jZXNzaW5nICovCi0gICAgICAgIG1lbWNweSgmKGN0eC0+dW5wcm9jZXNzZWRfZGF0YVtjdHgtPnVucHJvY2Vzc2VkX2xlbl0pLAotICAgICAgICAgICAgICAgaW5wdXQsIGlucHV0X2xlbmd0aCk7Ci0gICAgICAgIGN0eC0+dW5wcm9jZXNzZWRfbGVuICs9IGlucHV0X2xlbmd0aDsKLSAgICB9Ci0KLSAgICBzdGF0dXMgPSBQU0FfU1VDQ0VTUzsKLQotZXhpdDoKLSAgICByZXR1cm4gc3RhdHVzOwotfQotI2VuZGlmIC8qIE1CRURUTFNfUFNBX0JVSUxUSU5fQUxHX0VDQl9OT19QQURESU5HICovCi0KLXBzYV9zdGF0dXNfdCBtYmVkdGxzX3BzYV9jaXBoZXJfdXBkYXRlKAotICAgIG1iZWR0bHNfcHNhX2NpcGhlcl9vcGVyYXRpb25fdCAqb3BlcmF0aW9uLAotICAgIGNvbnN0IHVpbnQ4X3QgKmlucHV0LCBzaXplX3QgaW5wdXRfbGVuZ3RoLAotICAgIHVpbnQ4X3QgKm91dHB1dCwgc2l6ZV90IG91dHB1dF9zaXplLCBzaXplX3QgKm91dHB1dF9sZW5ndGgpCi17Ci0gICAgcHNhX3N0YXR1c190IHN0YXR1cyA9IFBTQV9FUlJPUl9DT1JSVVBUSU9OX0RFVEVDVEVEOwotICAgIHNpemVfdCBleHBlY3RlZF9vdXRwdXRfc2l6ZTsKLQotICAgIGlmICghUFNBX0FMR19JU19TVFJFQU1fQ0lQSEVSKG9wZXJhdGlvbi0+YWxnKSkgewotICAgICAgICAvKiBUYWtlIHRoZSB1bnByb2Nlc3NlZCBwYXJ0aWFsIGJsb2NrIGxlZnQgb3ZlciBmcm9tIHByZXZpb3VzCi0gICAgICAgICAqIHVwZGF0ZSBjYWxscywgaWYgYW55LCBwbHVzIHRoZSBpbnB1dCB0byB0aGlzIGNhbGwuIFJlbW92ZQotICAgICAgICAgKiB0aGUgbGFzdCBwYXJ0aWFsIGJsb2NrLCBpZiBhbnkuIFlvdSBnZXQgdGhlIGRhdGEgdGhhdCB3aWxsIGJlCi0gICAgICAgICAqIG91dHB1dCBpbiB0aGlzIGNhbGwuICovCi0gICAgICAgIGV4cGVjdGVkX291dHB1dF9zaXplID0KLSAgICAgICAgICAgIChvcGVyYXRpb24tPmN0eC5jaXBoZXIudW5wcm9jZXNzZWRfbGVuICsgaW5wdXRfbGVuZ3RoKQotICAgICAgICAgICAgLyBvcGVyYXRpb24tPmJsb2NrX2xlbmd0aCAqIG9wZXJhdGlvbi0+YmxvY2tfbGVuZ3RoOwotICAgIH0gZWxzZSB7Ci0gICAgICAgIGV4cGVjdGVkX291dHB1dF9zaXplID0gaW5wdXRfbGVuZ3RoOwotICAgIH0KLQotICAgIGlmIChvdXRwdXRfc2l6ZSA8IGV4cGVjdGVkX291dHB1dF9zaXplKSB7Ci0gICAgICAgIHJldHVybiBQU0FfRVJST1JfQlVGRkVSX1RPT19TTUFMTDsKLSAgICB9Ci0KLSNpZiBkZWZpbmVkKE1CRURUTFNfUFNBX0JVSUxUSU5fQUxHX0VDQl9OT19QQURESU5HKQotICAgIGlmIChvcGVyYXRpb24tPmFsZyA9PSBQU0FfQUxHX0VDQl9OT19QQURESU5HKSB7Ci0gICAgICAgIC8qIG1iZWR0bHNfY2lwaGVyX3VwZGF0ZSBoYXMgYW4gQVBJIGluY29uc2lzdGVuY3k6IGl0IHdpbGwgb25seQotICAgICAgICAgKiBwcm9jZXNzIGEgc2luZ2xlIGJsb2NrIGF0IGEgdGltZSBpbiBFQ0IgbW9kZS4gQWJzdHJhY3QgYXdheSB0aGF0Ci0gICAgICAgICAqIGluY29uc2lzdGVuY3kgaGVyZSB0byBtYXRjaCB0aGUgUFNBIEFQSSBiZWhhdmlvdXIuICovCi0gICAgICAgIHN0YXR1cyA9IHBzYV9jaXBoZXJfdXBkYXRlX2VjYigmb3BlcmF0aW9uLT5jdHguY2lwaGVyLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5wdXQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnB1dF9sZW5ndGgsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvdXRwdXQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvdXRwdXRfbGVuZ3RoKTsKLSAgICB9IGVsc2UKLSNlbmRpZiAvKiBNQkVEVExTX1BTQV9CVUlMVElOX0FMR19FQ0JfTk9fUEFERElORyAqLwotICAgIGlmIChpbnB1dF9sZW5ndGggPT0gMCkgewotICAgICAgICAvKiBUaGVyZSBpcyBubyBpbnB1dCwgbm90aGluZyB0byBiZSBkb25lICovCi0gICAgICAgICpvdXRwdXRfbGVuZ3RoID0gMDsKLSAgICAgICAgc3RhdHVzID0gUFNBX1NVQ0NFU1M7Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgc3RhdHVzID0gbWJlZHRsc190b19wc2FfZXJyb3IoCi0gICAgICAgICAgICBtYmVkdGxzX2NpcGhlcl91cGRhdGUoJm9wZXJhdGlvbi0+Y3R4LmNpcGhlciwgaW5wdXQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5wdXRfbGVuZ3RoLCBvdXRwdXQsIG91dHB1dF9sZW5ndGgpKTsKLQotICAgICAgICBpZiAoKm91dHB1dF9sZW5ndGggPiBvdXRwdXRfc2l6ZSkgewotICAgICAgICAgICAgcmV0dXJuIFBTQV9FUlJPUl9DT1JSVVBUSU9OX0RFVEVDVEVEOwotICAgICAgICB9Ci0gICAgfQotCi0gICAgcmV0dXJuIHN0YXR1czsKLX0KLQotcHNhX3N0YXR1c190IG1iZWR0bHNfcHNhX2NpcGhlcl9maW5pc2goCi0gICAgbWJlZHRsc19wc2FfY2lwaGVyX29wZXJhdGlvbl90ICpvcGVyYXRpb24sCi0gICAgdWludDhfdCAqb3V0cHV0LCBzaXplX3Qgb3V0cHV0X3NpemUsIHNpemVfdCAqb3V0cHV0X2xlbmd0aCkKLXsKLSAgICBwc2Ffc3RhdHVzX3Qgc3RhdHVzID0gUFNBX0VSUk9SX0dFTkVSSUNfRVJST1I7Ci0gICAgdWludDhfdCB0ZW1wX291dHB1dF9idWZmZXJbTUJFRFRMU19NQVhfQkxPQ0tfTEVOR1RIXTsKLQotICAgIGlmIChvcGVyYXRpb24tPmN0eC5jaXBoZXIudW5wcm9jZXNzZWRfbGVuICE9IDApIHsKLSAgICAgICAgaWYgKG9wZXJhdGlvbi0+YWxnID09IFBTQV9BTEdfRUNCX05PX1BBRERJTkcgfHwKLSAgICAgICAgICAgIG9wZXJhdGlvbi0+YWxnID09IFBTQV9BTEdfQ0JDX05PX1BBRERJTkcpIHsKLSAgICAgICAgICAgIHN0YXR1cyA9IFBTQV9FUlJPUl9JTlZBTElEX0FSR1VNRU5UOwotICAgICAgICAgICAgZ290byBleGl0OwotICAgICAgICB9Ci0gICAgfQotCi0gICAgc3RhdHVzID0gbWJlZHRsc190b19wc2FfZXJyb3IoCi0gICAgICAgIG1iZWR0bHNfY2lwaGVyX2ZpbmlzaCgmb3BlcmF0aW9uLT5jdHguY2lwaGVyLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGVtcF9vdXRwdXRfYnVmZmVyLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3V0cHV0X2xlbmd0aCkpOwotICAgIGlmIChzdGF0dXMgIT0gUFNBX1NVQ0NFU1MpIHsKLSAgICAgICAgZ290byBleGl0OwotICAgIH0KLQotICAgIGlmICgqb3V0cHV0X2xlbmd0aCA9PSAwKSB7Ci0gICAgICAgIDsgLyogTm90aGluZyB0byBjb3B5LiBOb3RlIHRoYXQgb3V0cHV0IG1heSBiZSBOVUxMIGluIHRoaXMgY2FzZS4gKi8KLSAgICB9IGVsc2UgaWYgKG91dHB1dF9zaXplID49ICpvdXRwdXRfbGVuZ3RoKSB7Ci0gICAgICAgIG1lbWNweShvdXRwdXQsIHRlbXBfb3V0cHV0X2J1ZmZlciwgKm91dHB1dF9sZW5ndGgpOwotICAgIH0gZWxzZSB7Ci0gICAgICAgIHN0YXR1cyA9IFBTQV9FUlJPUl9CVUZGRVJfVE9PX1NNQUxMOwotICAgIH0KLQotZXhpdDoKLSAgICBtYmVkdGxzX3BsYXRmb3JtX3plcm9pemUodGVtcF9vdXRwdXRfYnVmZmVyLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplb2YodGVtcF9vdXRwdXRfYnVmZmVyKSk7Ci0KLSAgICByZXR1cm4gc3RhdHVzOwotfQotCi1wc2Ffc3RhdHVzX3QgbWJlZHRsc19wc2FfY2lwaGVyX2Fib3J0KAotICAgIG1iZWR0bHNfcHNhX2NpcGhlcl9vcGVyYXRpb25fdCAqb3BlcmF0aW9uKQotewotICAgIC8qIFNhbml0eSBjaGVjayAoc2hvdWxkbid0IGhhcHBlbjogb3BlcmF0aW9uLT5hbGcgc2hvdWxkCi0gICAgICogYWx3YXlzIGhhdmUgYmVlbiBpbml0aWFsaXplZCB0byBhIHZhbGlkIHZhbHVlKS4gKi8KLSAgICBpZiAoIVBTQV9BTEdfSVNfQ0lQSEVSKG9wZXJhdGlvbi0+YWxnKSkgewotICAgICAgICByZXR1cm4gUFNBX0VSUk9SX0JBRF9TVEFURTsKLSAgICB9Ci0KLSAgICBtYmVkdGxzX2NpcGhlcl9mcmVlKCZvcGVyYXRpb24tPmN0eC5jaXBoZXIpOwotCi0gICAgcmV0dXJuIFBTQV9TVUNDRVNTOwotfQotCi1wc2Ffc3RhdHVzX3QgbWJlZHRsc19wc2FfY2lwaGVyX2VuY3J5cHQoCi0gICAgY29uc3QgcHNhX2tleV9hdHRyaWJ1dGVzX3QgKmF0dHJpYnV0ZXMsCi0gICAgY29uc3QgdWludDhfdCAqa2V5X2J1ZmZlciwKLSAgICBzaXplX3Qga2V5X2J1ZmZlcl9zaXplLAotICAgIHBzYV9hbGdvcml0aG1fdCBhbGcsCi0gICAgY29uc3QgdWludDhfdCAqaXYsCi0gICAgc2l6ZV90IGl2X2xlbmd0aCwKLSAgICBjb25zdCB1aW50OF90ICppbnB1dCwKLSAgICBzaXplX3QgaW5wdXRfbGVuZ3RoLAotICAgIHVpbnQ4X3QgKm91dHB1dCwKLSAgICBzaXplX3Qgb3V0cHV0X3NpemUsCi0gICAgc2l6ZV90ICpvdXRwdXRfbGVuZ3RoKQotewotICAgIHBzYV9zdGF0dXNfdCBzdGF0dXMgPSBQU0FfRVJST1JfQ09SUlVQVElPTl9ERVRFQ1RFRDsKLSAgICBtYmVkdGxzX3BzYV9jaXBoZXJfb3BlcmF0aW9uX3Qgb3BlcmF0aW9uID0gTUJFRFRMU19QU0FfQ0lQSEVSX09QRVJBVElPTl9JTklUOwotICAgIHNpemVfdCB1cGRhdGVfb3V0cHV0X2xlbmd0aCwgZmluaXNoX291dHB1dF9sZW5ndGg7Ci0KLSAgICBzdGF0dXMgPSBtYmVkdGxzX3BzYV9jaXBoZXJfZW5jcnlwdF9zZXR1cCgmb3BlcmF0aW9uLCBhdHRyaWJ1dGVzLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtleV9idWZmZXIsIGtleV9idWZmZXJfc2l6ZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbGcpOwotICAgIGlmIChzdGF0dXMgIT0gUFNBX1NVQ0NFU1MpIHsKLSAgICAgICAgZ290byBleGl0OwotICAgIH0KLQotICAgIGlmIChpdl9sZW5ndGggPiAwKSB7Ci0gICAgICAgIHN0YXR1cyA9IG1iZWR0bHNfcHNhX2NpcGhlcl9zZXRfaXYoJm9wZXJhdGlvbiwgaXYsIGl2X2xlbmd0aCk7Ci0gICAgICAgIGlmIChzdGF0dXMgIT0gUFNBX1NVQ0NFU1MpIHsKLSAgICAgICAgICAgIGdvdG8gZXhpdDsKLSAgICAgICAgfQotICAgIH0KLQotICAgIHN0YXR1cyA9IG1iZWR0bHNfcHNhX2NpcGhlcl91cGRhdGUoJm9wZXJhdGlvbiwgaW5wdXQsIGlucHV0X2xlbmd0aCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG91dHB1dCwgb3V0cHV0X3NpemUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmdXBkYXRlX291dHB1dF9sZW5ndGgpOwotICAgIGlmIChzdGF0dXMgIT0gUFNBX1NVQ0NFU1MpIHsKLSAgICAgICAgZ290byBleGl0OwotICAgIH0KLQotICAgIHN0YXR1cyA9IG1iZWR0bHNfcHNhX2NpcGhlcl9maW5pc2goCi0gICAgICAgICZvcGVyYXRpb24sCi0gICAgICAgIG1iZWR0bHNfYnVmZmVyX29mZnNldChvdXRwdXQsIHVwZGF0ZV9vdXRwdXRfbGVuZ3RoKSwKLSAgICAgICAgb3V0cHV0X3NpemUgLSB1cGRhdGVfb3V0cHV0X2xlbmd0aCwgJmZpbmlzaF9vdXRwdXRfbGVuZ3RoKTsKLSAgICBpZiAoc3RhdHVzICE9IFBTQV9TVUNDRVNTKSB7Ci0gICAgICAgIGdvdG8gZXhpdDsKLSAgICB9Ci0KLSAgICAqb3V0cHV0X2xlbmd0aCA9IHVwZGF0ZV9vdXRwdXRfbGVuZ3RoICsgZmluaXNoX291dHB1dF9sZW5ndGg7Ci0KLWV4aXQ6Ci0gICAgaWYgKHN0YXR1cyA9PSBQU0FfU1VDQ0VTUykgewotICAgICAgICBzdGF0dXMgPSBtYmVkdGxzX3BzYV9jaXBoZXJfYWJvcnQoJm9wZXJhdGlvbik7Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgbWJlZHRsc19wc2FfY2lwaGVyX2Fib3J0KCZvcGVyYXRpb24pOwotICAgIH0KLQotICAgIHJldHVybiBzdGF0dXM7Ci19Ci0KLXBzYV9zdGF0dXNfdCBtYmVkdGxzX3BzYV9jaXBoZXJfZGVjcnlwdCgKLSAgICBjb25zdCBwc2Ffa2V5X2F0dHJpYnV0ZXNfdCAqYXR0cmlidXRlcywKLSAgICBjb25zdCB1aW50OF90ICprZXlfYnVmZmVyLAotICAgIHNpemVfdCBrZXlfYnVmZmVyX3NpemUsCi0gICAgcHNhX2FsZ29yaXRobV90IGFsZywKLSAgICBjb25zdCB1aW50OF90ICppbnB1dCwKLSAgICBzaXplX3QgaW5wdXRfbGVuZ3RoLAotICAgIHVpbnQ4X3QgKm91dHB1dCwKLSAgICBzaXplX3Qgb3V0cHV0X3NpemUsCi0gICAgc2l6ZV90ICpvdXRwdXRfbGVuZ3RoKQotewotICAgIHBzYV9zdGF0dXNfdCBzdGF0dXMgPSBQU0FfRVJST1JfQ09SUlVQVElPTl9ERVRFQ1RFRDsKLSAgICBtYmVkdGxzX3BzYV9jaXBoZXJfb3BlcmF0aW9uX3Qgb3BlcmF0aW9uID0gTUJFRFRMU19QU0FfQ0lQSEVSX09QRVJBVElPTl9JTklUOwotICAgIHNpemVfdCBvbGVuZ3RoLCBhY2N1bXVsYXRlZF9sZW5ndGg7Ci0KLSAgICBzdGF0dXMgPSBtYmVkdGxzX3BzYV9jaXBoZXJfZGVjcnlwdF9zZXR1cCgmb3BlcmF0aW9uLCBhdHRyaWJ1dGVzLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtleV9idWZmZXIsIGtleV9idWZmZXJfc2l6ZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbGcpOwotICAgIGlmIChzdGF0dXMgIT0gUFNBX1NVQ0NFU1MpIHsKLSAgICAgICAgZ290byBleGl0OwotICAgIH0KLQotICAgIGlmIChvcGVyYXRpb24uaXZfbGVuZ3RoID4gMCkgewotICAgICAgICBzdGF0dXMgPSBtYmVkdGxzX3BzYV9jaXBoZXJfc2V0X2l2KCZvcGVyYXRpb24sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5wdXQsIG9wZXJhdGlvbi5pdl9sZW5ndGgpOwotICAgICAgICBpZiAoc3RhdHVzICE9IFBTQV9TVUNDRVNTKSB7Ci0gICAgICAgICAgICBnb3RvIGV4aXQ7Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICBzdGF0dXMgPSBtYmVkdGxzX3BzYV9jaXBoZXJfdXBkYXRlKAotICAgICAgICAmb3BlcmF0aW9uLAotICAgICAgICBtYmVkdGxzX2J1ZmZlcl9vZmZzZXRfY29uc3QoaW5wdXQsIG9wZXJhdGlvbi5pdl9sZW5ndGgpLAotICAgICAgICBpbnB1dF9sZW5ndGggLSBvcGVyYXRpb24uaXZfbGVuZ3RoLAotICAgICAgICBvdXRwdXQsIG91dHB1dF9zaXplLCAmb2xlbmd0aCk7Ci0gICAgaWYgKHN0YXR1cyAhPSBQU0FfU1VDQ0VTUykgewotICAgICAgICBnb3RvIGV4aXQ7Ci0gICAgfQotCi0gICAgYWNjdW11bGF0ZWRfbGVuZ3RoID0gb2xlbmd0aDsKLQotICAgIHN0YXR1cyA9IG1iZWR0bHNfcHNhX2NpcGhlcl9maW5pc2goCi0gICAgICAgICZvcGVyYXRpb24sCi0gICAgICAgIG1iZWR0bHNfYnVmZmVyX29mZnNldChvdXRwdXQsIGFjY3VtdWxhdGVkX2xlbmd0aCksCi0gICAgICAgIG91dHB1dF9zaXplIC0gYWNjdW11bGF0ZWRfbGVuZ3RoLCAmb2xlbmd0aCk7Ci0gICAgaWYgKHN0YXR1cyAhPSBQU0FfU1VDQ0VTUykgewotICAgICAgICBnb3RvIGV4aXQ7Ci0gICAgfQotCi0gICAgKm91dHB1dF9sZW5ndGggPSBhY2N1bXVsYXRlZF9sZW5ndGggKyBvbGVuZ3RoOwotCi1leGl0OgotICAgIGlmIChzdGF0dXMgPT0gUFNBX1NVQ0NFU1MpIHsKLSAgICAgICAgc3RhdHVzID0gbWJlZHRsc19wc2FfY2lwaGVyX2Fib3J0KCZvcGVyYXRpb24pOwotICAgIH0gZWxzZSB7Ci0gICAgICAgIG1iZWR0bHNfcHNhX2NpcGhlcl9hYm9ydCgmb3BlcmF0aW9uKTsKLSAgICB9Ci0KLSAgICByZXR1cm4gc3RhdHVzOwotfQotI2VuZGlmIC8qIE1CRURUTFNfUFNBX0JVSUxUSU5fQ0lQSEVSICovCi0KLSNlbmRpZiAvKiBNQkVEVExTX1BTQV9DUllQVE9fQyAqLwpkaWZmIC0tZ2l0IGEvbGlicmFyeS9wc2FfY3J5cHRvX3JhbmRvbV9pbXBsLmggYi9saWJyYXJ5L3BzYV9jcnlwdG9fcmFuZG9tX2ltcGwuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNTMzZmIyZS4uMDAwMDAwMAotLS0gYS9saWJyYXJ5L3BzYV9jcnlwdG9fcmFuZG9tX2ltcGwuaAorKysgL2Rldi9udWxsCkBAIC0xLDEzNSArMCwwIEBACi0vKiogXGZpbGUgcHNhX2NyeXB0b19yYW5kb21faW1wbC5oCi0gKgotICogXGJyaWVmIFBTQSBjcnlwdG8gcmFuZG9tIGdlbmVyYXRvciBpbXBsZW1lbnRhdGlvbiBhYnN0cmFjdGlvbi4KLSAqLwotLyoKLSAqICBDb3B5cmlnaHQgVGhlIE1iZWQgVExTIENvbnRyaWJ1dG9ycwotICogIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wIE9SIEdQTC0yLjAtb3ItbGF0ZXIKLSAqLwotCi0jaWZuZGVmIFBTQV9DUllQVE9fUkFORE9NX0lNUExfSAotI2RlZmluZSBQU0FfQ1JZUFRPX1JBTkRPTV9JTVBMX0gKLQotI2luY2x1ZGUgInBzYV91dGlsX2ludGVybmFsLmgiCi0KLSNpZiBkZWZpbmVkKE1CRURUTFNfUFNBX0NSWVBUT19FWFRFUk5BTF9STkcpCi0KLXR5cGVkZWYgbWJlZHRsc19wc2FfZXh0ZXJuYWxfcmFuZG9tX2NvbnRleHRfdCBtYmVkdGxzX3BzYV9yYW5kb21fY29udGV4dF90OwotCi0jZWxzZSAvKiBNQkVEVExTX1BTQV9DUllQVE9fRVhURVJOQUxfUk5HICovCi0KLSNpbmNsdWRlICJtYmVkdGxzL2VudHJvcHkuaCIKLQotLyogQ2hvb3NlIGEgRFJCRyBiYXNlZCBvbiBjb25maWd1cmF0aW9uIGFuZCBhdmFpbGFiaWxpdHkgKi8KLSNpZiBkZWZpbmVkKE1CRURUTFNfUFNBX0hNQUNfRFJCR19NRF9UWVBFKQotCi0jaW5jbHVkZSAibWJlZHRscy9obWFjX2RyYmcuaCIKLQotI2VsaWYgZGVmaW5lZChNQkVEVExTX0NUUl9EUkJHX0MpCi0KLSNpbmNsdWRlICJtYmVkdGxzL2N0cl9kcmJnLmgiCi0KLSNlbGlmIGRlZmluZWQoTUJFRFRMU19ITUFDX0RSQkdfQykKLQotI2luY2x1ZGUgIm1iZWR0bHMvaG1hY19kcmJnLmgiCi0jaWYgZGVmaW5lZChNQkVEVExTX01EX0NBTl9TSEE1MTIpICYmIGRlZmluZWQoTUJFRFRMU19NRF9DQU5fU0hBMjU2KQotI2luY2x1ZGUgPGxpbWl0cy5oPgotI2lmIFNJWkVfTUFYID4gMHhmZmZmZmZmZgotLyogTG9va3MgbGlrZSBhIDY0LWJpdCBzeXN0ZW0sIHNvIHByZWZlciBTSEEtNTEyLiAqLwotI2RlZmluZSBNQkVEVExTX1BTQV9ITUFDX0RSQkdfTURfVFlQRSBNQkVEVExTX01EX1NIQTUxMgotI2Vsc2UKLS8qIExvb2tzIGxpa2UgYSAzMi1iaXQgc3lzdGVtLCBzbyBwcmVmZXIgU0hBLTI1Ni4gKi8KLSNkZWZpbmUgTUJFRFRMU19QU0FfSE1BQ19EUkJHX01EX1RZUEUgTUJFRFRMU19NRF9TSEEyNTYKLSNlbmRpZgotI2VsaWYgZGVmaW5lZChNQkVEVExTX01EX0NBTl9TSEE1MTIpCi0jZGVmaW5lIE1CRURUTFNfUFNBX0hNQUNfRFJCR19NRF9UWVBFIE1CRURUTFNfTURfU0hBNTEyCi0jZWxpZiBkZWZpbmVkKE1CRURUTFNfTURfQ0FOX1NIQTI1NikKLSNkZWZpbmUgTUJFRFRMU19QU0FfSE1BQ19EUkJHX01EX1RZUEUgTUJFRFRMU19NRF9TSEEyNTYKLSNlbHNlCi0jZXJyb3IgIk5vIGhhc2ggYWxnb3JpdGhtIGF2YWlsYWJsZSBmb3IgSE1BQ19EQlJHLiIKLSNlbmRpZgotCi0jZWxzZSAvKiAhTUJFRFRMU19QU0FfSE1BQ19EUkJHX01EX1RZUEUgJiYgIU1CRURUTFNfQ1RSX0RSQkdfQyAmJiAhTUJFRFRMU19ITUFDX0RSQkdfQyovCi0KLSNlcnJvciAiTm8gRFJCRyBtb2R1bGUgYXZhaWxhYmxlIGZvciB0aGUgcHNhX2NyeXB0byBtb2R1bGUuIgotCi0jZW5kaWYgLyogIU1CRURUTFNfUFNBX0hNQUNfRFJCR19NRF9UWVBFICYmICFNQkVEVExTX0NUUl9EUkJHX0MgJiYgIU1CRURUTFNfSE1BQ19EUkJHX0MqLwotCi0jaWYgZGVmaW5lZChNQkVEVExTX0NUUl9EUkJHX0MpCi0jaW5jbHVkZSAibWJlZHRscy9jdHJfZHJiZy5oIgotI2VsaWYgZGVmaW5lZChNQkVEVExTX0hNQUNfRFJCR19DKQotI2luY2x1ZGUgIm1iZWR0bHMvaG1hY19kcmJnLmgiCi0jZW5kaWYgLyogIU1CRURUTFNfQ1RSX0RSQkdfQyAmJiAhTUJFRFRMU19ITUFDX0RSQkdfQyAqLwotCi0vKiBUaGUgbWF4aW11bSBudW1iZXIgb2YgYnl0ZXMgdGhhdCBtYmVkdGxzX3BzYV9nZXRfcmFuZG9tKCkgaXMgZXhwZWN0ZWQgdG8gcmV0dXJuLiAqLwotI2lmIGRlZmluZWQoTUJFRFRMU19DVFJfRFJCR19DKQotI2RlZmluZSBNQkVEVExTX1BTQV9SQU5ET01fTUFYX1JFUVVFU1QgTUJFRFRMU19DVFJfRFJCR19NQVhfUkVRVUVTVAotI2VsaWYgZGVmaW5lZChNQkVEVExTX0hNQUNfRFJCR19DKQotI2RlZmluZSBNQkVEVExTX1BTQV9SQU5ET01fTUFYX1JFUVVFU1QgTUJFRFRMU19ITUFDX0RSQkdfTUFYX1JFUVVFU1QKLSNlbmRpZgotCi0jaWYgZGVmaW5lZChNQkVEVExTX0NUUl9EUkJHX0MpCi10eXBlZGVmIG1iZWR0bHNfY3RyX2RyYmdfY29udGV4dCAgICAgICAgICAgIG1iZWR0bHNfcHNhX2RyYmdfY29udGV4dF90OwotI2VsaWYgZGVmaW5lZChNQkVEVExTX0hNQUNfRFJCR19DKQotdHlwZWRlZiBtYmVkdGxzX2htYWNfZHJiZ19jb250ZXh0ICAgICAgICAgICBtYmVkdGxzX3BzYV9kcmJnX2NvbnRleHRfdDsKLSNlbmRpZiAvKiAhTUJFRFRMU19DVFJfRFJCR19DICYmICFNQkVEVExTX0hNQUNfRFJCR19DICovCi0KLXR5cGVkZWYgc3RydWN0IHsKLSAgICB2b2lkICgqIGVudHJvcHlfaW5pdCkobWJlZHRsc19lbnRyb3B5X2NvbnRleHQgKmN0eCk7Ci0gICAgdm9pZCAoKiBlbnRyb3B5X2ZyZWUpKG1iZWR0bHNfZW50cm9weV9jb250ZXh0ICpjdHgpOwotICAgIG1iZWR0bHNfZW50cm9weV9jb250ZXh0IGVudHJvcHk7Ci0gICAgbWJlZHRsc19wc2FfZHJiZ19jb250ZXh0X3QgZHJiZzsKLX0gbWJlZHRsc19wc2FfcmFuZG9tX2NvbnRleHRfdDsKLQotLyoqIEluaXRpYWxpemUgdGhlIFBTQSBEUkJHLgotICoKLSAqIFxwYXJhbSBwX3JuZyAgICAgICAgUG9pbnRlciB0byB0aGUgTWJlZCBUTFMgRFJCRyBzdGF0ZS4KLSAqLwotc3RhdGljIGlubGluZSB2b2lkIG1iZWR0bHNfcHNhX2RyYmdfaW5pdChtYmVkdGxzX3BzYV9kcmJnX2NvbnRleHRfdCAqcF9ybmcpCi17Ci0jaWYgZGVmaW5lZChNQkVEVExTX0NUUl9EUkJHX0MpCi0gICAgbWJlZHRsc19jdHJfZHJiZ19pbml0KHBfcm5nKTsKLSNlbGlmIGRlZmluZWQoTUJFRFRMU19ITUFDX0RSQkdfQykKLSAgICBtYmVkdGxzX2htYWNfZHJiZ19pbml0KHBfcm5nKTsKLSNlbmRpZgotfQotCi0vKiogRGVpbml0aWFsaXplIHRoZSBQU0EgRFJCRy4KLSAqCi0gKiBccGFyYW0gcF9ybmcgICAgICAgIFBvaW50ZXIgdG8gdGhlIE1iZWQgVExTIERSQkcgc3RhdGUuCi0gKi8KLXN0YXRpYyBpbmxpbmUgdm9pZCBtYmVkdGxzX3BzYV9kcmJnX2ZyZWUobWJlZHRsc19wc2FfZHJiZ19jb250ZXh0X3QgKnBfcm5nKQotewotI2lmIGRlZmluZWQoTUJFRFRMU19DVFJfRFJCR19DKQotICAgIG1iZWR0bHNfY3RyX2RyYmdfZnJlZShwX3JuZyk7Ci0jZWxpZiBkZWZpbmVkKE1CRURUTFNfSE1BQ19EUkJHX0MpCi0gICAgbWJlZHRsc19obWFjX2RyYmdfZnJlZShwX3JuZyk7Ci0jZW5kaWYKLX0KLQotLyoqIFNlZWQgdGhlIFBTQSBEUkJHLgotICoKLSAqIFxwYXJhbSBlbnRyb3B5ICAgICAgIEFuIGVudHJvcHkgY29udGV4dCB0byByZWFkIHRoZSBzZWVkIGZyb20uCi0gKiBccGFyYW0gY3VzdG9tICAgICAgICBUaGUgcGVyc29uYWxpemF0aW9uIHN0cmluZy4KLSAqICAgICAgICAgICAgICAgICAgICAgIFRoaXMgY2FuIGJlIFxjIE5VTEwsIGluIHdoaWNoIGNhc2UgdGhlIHBlcnNvbmFsaXphdGlvbgotICogICAgICAgICAgICAgICAgICAgICAgc3RyaW5nIGlzIGVtcHR5IHJlZ2FyZGxlc3Mgb2YgdGhlIHZhbHVlIG9mIFxwIGxlbi4KLSAqIFxwYXJhbSBsZW4gICAgICAgICAgIFRoZSBsZW5ndGggb2YgdGhlIHBlcnNvbmFsaXphdGlvbiBzdHJpbmcuCi0gKgotICogXHJldHVybiAgICAgICAgICAgICAgXGMgMCBvbiBzdWNjZXNzLgotICogXHJldHVybiAgICAgICAgICAgICAgQW4gTWJlZCBUTFMgZXJyb3IgY29kZSAoXGMgTUJFRFRMU19FUlJfeHh4KSBvbiBmYWlsdXJlLgotICovCi1zdGF0aWMgaW5saW5lIGludCBtYmVkdGxzX3BzYV9kcmJnX3NlZWQobWJlZHRsc19wc2FfZHJiZ19jb250ZXh0X3QgKmRyYmdfY3R4LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1iZWR0bHNfZW50cm9weV9jb250ZXh0ICplbnRyb3B5LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgKmN1c3RvbSwgc2l6ZV90IGxlbikKLXsKLSNpZiBkZWZpbmVkKE1CRURUTFNfQ1RSX0RSQkdfQykKLSAgICByZXR1cm4gbWJlZHRsc19jdHJfZHJiZ19zZWVkKGRyYmdfY3R4LCBtYmVkdGxzX2VudHJvcHlfZnVuYywgZW50cm9weSwgY3VzdG9tLCBsZW4pOwotI2VsaWYgZGVmaW5lZChNQkVEVExTX0hNQUNfRFJCR19DKQotICAgIGNvbnN0IG1iZWR0bHNfbWRfaW5mb190ICptZF9pbmZvID0gbWJlZHRsc19tZF9pbmZvX2Zyb21fdHlwZShNQkVEVExTX1BTQV9ITUFDX0RSQkdfTURfVFlQRSk7Ci0gICAgcmV0dXJuIG1iZWR0bHNfaG1hY19kcmJnX3NlZWQoZHJiZ19jdHgsIG1kX2luZm8sIG1iZWR0bHNfZW50cm9weV9mdW5jLCBlbnRyb3B5LCBjdXN0b20sIGxlbik7Ci0jZW5kaWYKLX0KLQotI2VuZGlmIC8qIE1CRURUTFNfUFNBX0NSWVBUT19FWFRFUk5BTF9STkcgKi8KLQotI2VuZGlmIC8qIFBTQV9DUllQVE9fUkFORE9NX0lNUExfSCAqLwpkaWZmIC0tZ2l0IGEvbGlicmFyeS9wc2FfdXRpbC5jIGIvbGlicmFyeS9wc2FfdXRpbC5jCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0Y2NjNWIwLi4wMDAwMDAwCi0tLSBhL2xpYnJhcnkvcHNhX3V0aWwuYworKysgL2Rldi9udWxsCkBAIC0xLDYwMiArMCwwIEBACi0vKgotICogIFBTQSBoYXNoaW5nIGxheWVyIG9uIHRvcCBvZiBNYmVkIFRMUyBzb2Z0d2FyZSBjcnlwdG8KLSAqLwotLyoKLSAqICBDb3B5cmlnaHQgVGhlIE1iZWQgVExTIENvbnRyaWJ1dG9ycwotICogIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wIE9SIEdQTC0yLjAtb3ItbGF0ZXIKLSAqLwotCi0jaW5jbHVkZSAiY29tbW9uLmgiCi0KLS8qIFRoaXMgaXMgbmVlZGVkIGZvciBNQkVEVExTX0VSUl9YWFggbWFjcm9zICovCi0jaW5jbHVkZSA8bWJlZHRscy9lcnJvci5oPgotCi0jaWYgZGVmaW5lZChNQkVEVExTX0FTTjFfV1JJVEVfQykKLSNpbmNsdWRlIDxtYmVkdGxzL2FzbjF3cml0ZS5oPgotI2luY2x1ZGUgPHBzYS9jcnlwdG9fc2l6ZXMuaD4KLSNlbmRpZgotCi0jaW5jbHVkZSAicHNhX3V0aWxfaW50ZXJuYWwuaCIKLQotI2lmIGRlZmluZWQoTUJFRFRMU19QU0FfQ1JZUFRPX0NMSUVOVCkKLQotI2luY2x1ZGUgPHBzYS9jcnlwdG8uaD4KLQotI2lmIGRlZmluZWQoTUJFRFRMU19NRF9MSUdIVCkKLSNpbmNsdWRlIDxtYmVkdGxzL21kLmg+Ci0jZW5kaWYKLSNpZiBkZWZpbmVkKE1CRURUTFNfTE1TX0MpCi0jaW5jbHVkZSA8bWJlZHRscy9sbXMuaD4KLSNlbmRpZgotI2lmIGRlZmluZWQoTUJFRFRMU19TU0xfVExTX0MpICYmIFwKLSAgICAoZGVmaW5lZChNQkVEVExTX1VTRV9QU0FfQ1JZUFRPKSB8fCBkZWZpbmVkKE1CRURUTFNfU1NMX1BST1RPX1RMUzFfMykpCi0jaW5jbHVkZSA8bWJlZHRscy9zc2wuaD4KLSNlbmRpZgotI2lmIGRlZmluZWQoUFNBX1dBTlRfS0VZX1RZUEVfUlNBX1BVQkxJQ19LRVkpIHx8ICAgIFwKLSAgICBkZWZpbmVkKFBTQV9XQU5UX0tFWV9UWVBFX1JTQV9LRVlfUEFJUl9CQVNJQykKLSNpbmNsdWRlIDxtYmVkdGxzL3JzYS5oPgotI2VuZGlmCi0jaWYgZGVmaW5lZChNQkVEVExTX1VTRV9QU0FfQ1JZUFRPKSAmJiBcCi0gICAgZGVmaW5lZChQU0FfV0FOVF9LRVlfVFlQRV9FQ0NfUFVCTElDX0tFWSkKLSNpbmNsdWRlIDxtYmVkdGxzL2VjcC5oPgotI2VuZGlmCi0jaWYgZGVmaW5lZChNQkVEVExTX1BLX0MpCi0jaW5jbHVkZSA8bWJlZHRscy9way5oPgotI2VuZGlmCi0jaWYgZGVmaW5lZChNQkVEVExTX0JMT0NLX0NJUEhFUl9TT01FX1BTQSkKLSNpbmNsdWRlIDxtYmVkdGxzL2NpcGhlci5oPgotI2VuZGlmCi0jaW5jbHVkZSA8bWJlZHRscy9lbnRyb3B5Lmg+Ci0KLS8qIFBTQV9TVUNDRVNTIGlzIGtlcHQgYXQgdGhlIHRvcCBvZiBlYWNoIGVycm9yIHRhYmxlIHNpbmNlCi0gKiBpdCdzIHRoZSBtb3N0IGNvbW1vbiBzdGF0dXMgd2hlbiBldmVyeXRoaW5nIGZ1bmN0aW9ucyBwcm9wZXJseS4gKi8KLSNpZiBkZWZpbmVkKE1CRURUTFNfTURfTElHSFQpCi1jb25zdCBtYmVkdGxzX2Vycm9yX3BhaXJfdCBwc2FfdG9fbWRfZXJyb3JzW10gPQotewotICAgIHsgUFNBX1NVQ0NFU1MsICAgICAgICAgICAgICAgICAgICAgMCB9LAotICAgIHsgUFNBX0VSUk9SX05PVF9TVVBQT1JURUQsICAgICAgICAgTUJFRFRMU19FUlJfTURfRkVBVFVSRV9VTkFWQUlMQUJMRSB9LAotICAgIHsgUFNBX0VSUk9SX0lOVkFMSURfQVJHVU1FTlQsICAgICAgTUJFRFRMU19FUlJfTURfQkFEX0lOUFVUX0RBVEEgfSwKLSAgICB7IFBTQV9FUlJPUl9JTlNVRkZJQ0lFTlRfTUVNT1JZLCAgIE1CRURUTFNfRVJSX01EX0FMTE9DX0ZBSUxFRCB9Ci19OwotI2VuZGlmCi0KLSNpZiBkZWZpbmVkKE1CRURUTFNfQkxPQ0tfQ0lQSEVSX1NPTUVfUFNBKQotY29uc3QgbWJlZHRsc19lcnJvcl9wYWlyX3QgcHNhX3RvX2NpcGhlcl9lcnJvcnNbXSA9Ci17Ci0gICAgeyBQU0FfU1VDQ0VTUywgICAgICAgICAgICAgICAgICAgICAwIH0sCi0gICAgeyBQU0FfRVJST1JfTk9UX1NVUFBPUlRFRCwgICAgICAgICBNQkVEVExTX0VSUl9DSVBIRVJfRkVBVFVSRV9VTkFWQUlMQUJMRSB9LAotICAgIHsgUFNBX0VSUk9SX0lOVkFMSURfQVJHVU1FTlQsICAgICAgTUJFRFRMU19FUlJfQ0lQSEVSX0JBRF9JTlBVVF9EQVRBIH0sCi0gICAgeyBQU0FfRVJST1JfSU5TVUZGSUNJRU5UX01FTU9SWSwgICBNQkVEVExTX0VSUl9DSVBIRVJfQUxMT0NfRkFJTEVEIH0KLX07Ci0jZW5kaWYKLQotI2lmIGRlZmluZWQoTUJFRFRMU19MTVNfQykKLWNvbnN0IG1iZWR0bHNfZXJyb3JfcGFpcl90IHBzYV90b19sbXNfZXJyb3JzW10gPQotewotICAgIHsgUFNBX1NVQ0NFU1MsICAgICAgICAgICAgICAgICAgICAgMCB9LAotICAgIHsgUFNBX0VSUk9SX0JVRkZFUl9UT09fU01BTEwsICAgICAgTUJFRFRMU19FUlJfTE1TX0JVRkZFUl9UT09fU01BTEwgfSwKLSAgICB7IFBTQV9FUlJPUl9JTlZBTElEX0FSR1VNRU5ULCAgICAgIE1CRURUTFNfRVJSX0xNU19CQURfSU5QVVRfREFUQSB9Ci19OwotI2VuZGlmCi0KLSNpZiBkZWZpbmVkKE1CRURUTFNfU1NMX1RMU19DKSAmJiBcCi0gICAgKGRlZmluZWQoTUJFRFRMU19VU0VfUFNBX0NSWVBUTykgfHwgZGVmaW5lZChNQkVEVExTX1NTTF9QUk9UT19UTFMxXzMpKQotY29uc3QgbWJlZHRsc19lcnJvcl9wYWlyX3QgcHNhX3RvX3NzbF9lcnJvcnNbXSA9Ci17Ci0gICAgeyBQU0FfU1VDQ0VTUywgICAgICAgICAgICAgICAgICAgICAwIH0sCi0gICAgeyBQU0FfRVJST1JfSU5TVUZGSUNJRU5UX01FTU9SWSwgICBNQkVEVExTX0VSUl9TU0xfQUxMT0NfRkFJTEVEIH0sCi0gICAgeyBQU0FfRVJST1JfTk9UX1NVUFBPUlRFRCwgICAgICAgICBNQkVEVExTX0VSUl9TU0xfRkVBVFVSRV9VTkFWQUlMQUJMRSB9LAotICAgIHsgUFNBX0VSUk9SX0lOVkFMSURfU0lHTkFUVVJFLCAgICAgTUJFRFRMU19FUlJfU1NMX0lOVkFMSURfTUFDIH0sCi0gICAgeyBQU0FfRVJST1JfSU5WQUxJRF9BUkdVTUVOVCwgICAgICBNQkVEVExTX0VSUl9TU0xfQkFEX0lOUFVUX0RBVEEgfSwKLSAgICB7IFBTQV9FUlJPUl9CQURfU1RBVEUsICAgICAgICAgICAgIE1CRURUTFNfRVJSX1NTTF9JTlRFUk5BTF9FUlJPUiB9LAotICAgIHsgUFNBX0VSUk9SX0JVRkZFUl9UT09fU01BTEwsICAgICAgTUJFRFRMU19FUlJfU1NMX0JVRkZFUl9UT09fU01BTEwgfQotfTsKLSNlbmRpZgotCi0jaWYgZGVmaW5lZChQU0FfV0FOVF9LRVlfVFlQRV9SU0FfUFVCTElDX0tFWSkgfHwgICAgXAotICAgIGRlZmluZWQoUFNBX1dBTlRfS0VZX1RZUEVfUlNBX0tFWV9QQUlSX0JBU0lDKQotY29uc3QgbWJlZHRsc19lcnJvcl9wYWlyX3QgcHNhX3RvX3BrX3JzYV9lcnJvcnNbXSA9Ci17Ci0gICAgeyBQU0FfU1VDQ0VTUywgICAgICAgICAgICAgICAgICAgICAwIH0sCi0gICAgeyBQU0FfRVJST1JfTk9UX1BFUk1JVFRFRCwgICAgICAgICBNQkVEVExTX0VSUl9SU0FfQkFEX0lOUFVUX0RBVEEgfSwKLSAgICB7IFBTQV9FUlJPUl9JTlZBTElEX0FSR1VNRU5ULCAgICAgIE1CRURUTFNfRVJSX1JTQV9CQURfSU5QVVRfREFUQSB9LAotICAgIHsgUFNBX0VSUk9SX0lOVkFMSURfSEFORExFLCAgICAgICAgTUJFRFRMU19FUlJfUlNBX0JBRF9JTlBVVF9EQVRBIH0sCi0gICAgeyBQU0FfRVJST1JfQlVGRkVSX1RPT19TTUFMTCwgICAgICBNQkVEVExTX0VSUl9SU0FfT1VUUFVUX1RPT19MQVJHRSB9LAotICAgIHsgUFNBX0VSUk9SX0lOU1VGRklDSUVOVF9FTlRST1BZLCAgTUJFRFRMU19FUlJfUlNBX1JOR19GQUlMRUQgfSwKLSAgICB7IFBTQV9FUlJPUl9JTlZBTElEX1NJR05BVFVSRSwgICAgIE1CRURUTFNfRVJSX1JTQV9WRVJJRllfRkFJTEVEIH0sCi0gICAgeyBQU0FfRVJST1JfSU5WQUxJRF9QQURESU5HLCAgICAgICBNQkVEVExTX0VSUl9SU0FfSU5WQUxJRF9QQURESU5HIH0KLX07Ci0jZW5kaWYKLQotI2lmIGRlZmluZWQoTUJFRFRMU19VU0VfUFNBX0NSWVBUTykgJiYgXAotICAgIGRlZmluZWQoUFNBX1dBTlRfS0VZX1RZUEVfRUNDX1BVQkxJQ19LRVkpCi1jb25zdCBtYmVkdGxzX2Vycm9yX3BhaXJfdCBwc2FfdG9fcGtfZWNkc2FfZXJyb3JzW10gPQotewotICAgIHsgUFNBX1NVQ0NFU1MsICAgICAgICAgICAgICAgICAgICAgMCB9LAotICAgIHsgUFNBX0VSUk9SX05PVF9QRVJNSVRURUQsICAgICAgICAgTUJFRFRMU19FUlJfRUNQX0JBRF9JTlBVVF9EQVRBIH0sCi0gICAgeyBQU0FfRVJST1JfSU5WQUxJRF9BUkdVTUVOVCwgICAgICBNQkVEVExTX0VSUl9FQ1BfQkFEX0lOUFVUX0RBVEEgfSwKLSAgICB7IFBTQV9FUlJPUl9JTlZBTElEX0hBTkRMRSwgICAgICAgIE1CRURUTFNfRVJSX0VDUF9GRUFUVVJFX1VOQVZBSUxBQkxFIH0sCi0gICAgeyBQU0FfRVJST1JfQlVGRkVSX1RPT19TTUFMTCwgICAgICBNQkVEVExTX0VSUl9FQ1BfQlVGRkVSX1RPT19TTUFMTCB9LAotICAgIHsgUFNBX0VSUk9SX0lOU1VGRklDSUVOVF9FTlRST1BZLCAgTUJFRFRMU19FUlJfRUNQX1JBTkRPTV9GQUlMRUQgfSwKLSAgICB7IFBTQV9FUlJPUl9JTlZBTElEX1NJR05BVFVSRSwgICAgIE1CRURUTFNfRVJSX0VDUF9WRVJJRllfRkFJTEVEIH0KLX07Ci0jZW5kaWYKLQotaW50IHBzYV9nZW5lcmljX3N0YXR1c190b19tYmVkdGxzKHBzYV9zdGF0dXNfdCBzdGF0dXMpCi17Ci0gICAgc3dpdGNoIChzdGF0dXMpIHsKLSAgICAgICAgY2FzZSBQU0FfU1VDQ0VTUzoKLSAgICAgICAgICAgIHJldHVybiAwOwotICAgICAgICBjYXNlIFBTQV9FUlJPUl9OT1RfU1VQUE9SVEVEOgotICAgICAgICAgICAgcmV0dXJuIE1CRURUTFNfRVJSX1BMQVRGT1JNX0ZFQVRVUkVfVU5TVVBQT1JURUQ7Ci0gICAgICAgIGNhc2UgUFNBX0VSUk9SX0NPUlJVUFRJT05fREVURUNURUQ6Ci0gICAgICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfRVJST1JfQ09SUlVQVElPTl9ERVRFQ1RFRDsKLSAgICAgICAgY2FzZSBQU0FfRVJST1JfQ09NTVVOSUNBVElPTl9GQUlMVVJFOgotICAgICAgICBjYXNlIFBTQV9FUlJPUl9IQVJEV0FSRV9GQUlMVVJFOgotICAgICAgICAgICAgcmV0dXJuIE1CRURUTFNfRVJSX1BMQVRGT1JNX0hXX0FDQ0VMX0ZBSUxFRDsKLSAgICAgICAgY2FzZSBQU0FfRVJST1JfTk9UX1BFUk1JVFRFRDoKLSAgICAgICAgZGVmYXVsdDoKLSAgICAgICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9FUlJPUl9HRU5FUklDX0VSUk9SOwotICAgIH0KLX0KLQotaW50IHBzYV9zdGF0dXNfdG9fbWJlZHRscyhwc2Ffc3RhdHVzX3Qgc3RhdHVzLAotICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBtYmVkdGxzX2Vycm9yX3BhaXJfdCAqbG9jYWxfdHJhbnNsYXRpb25zLAotICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgbG9jYWxfZXJyb3JzX251bSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgaW50ICgqZmFsbGJhY2tfZikocHNhX3N0YXR1c190KSkKLXsKLSAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGxvY2FsX2Vycm9yc19udW07IGkrKykgewotICAgICAgICBpZiAoc3RhdHVzID09IGxvY2FsX3RyYW5zbGF0aW9uc1tpXS5wc2Ffc3RhdHVzKSB7Ci0gICAgICAgICAgICByZXR1cm4gbG9jYWxfdHJhbnNsYXRpb25zW2ldLm1iZWR0bHNfZXJyb3I7Ci0gICAgICAgIH0KLSAgICB9Ci0gICAgcmV0dXJuIGZhbGxiYWNrX2Yoc3RhdHVzKTsKLX0KLQotI2lmIGRlZmluZWQoTUJFRFRMU19QS19DKQotaW50IHBzYV9wa19zdGF0dXNfdG9fbWJlZHRscyhwc2Ffc3RhdHVzX3Qgc3RhdHVzKQotewotICAgIHN3aXRjaCAoc3RhdHVzKSB7Ci0gICAgICAgIGNhc2UgUFNBX0VSUk9SX0lOVkFMSURfSEFORExFOgotICAgICAgICAgICAgcmV0dXJuIE1CRURUTFNfRVJSX1BLX0tFWV9JTlZBTElEX0ZPUk1BVDsKLSAgICAgICAgY2FzZSBQU0FfRVJST1JfQlVGRkVSX1RPT19TTUFMTDoKLSAgICAgICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9QS19CVUZGRVJfVE9PX1NNQUxMOwotICAgICAgICBjYXNlIFBTQV9FUlJPUl9OT1RfU1VQUE9SVEVEOgotICAgICAgICAgICAgcmV0dXJuIE1CRURUTFNfRVJSX1BLX0ZFQVRVUkVfVU5BVkFJTEFCTEU7Ci0gICAgICAgIGNhc2UgUFNBX0VSUk9SX0lOVkFMSURfQVJHVU1FTlQ6Ci0gICAgICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfUEtfSU5WQUxJRF9BTEc7Ci0gICAgICAgIGNhc2UgUFNBX0VSUk9SX05PVF9QRVJNSVRURUQ6Ci0gICAgICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfUEtfVFlQRV9NSVNNQVRDSDsKLSAgICAgICAgY2FzZSBQU0FfRVJST1JfSU5TVUZGSUNJRU5UX01FTU9SWToKLSAgICAgICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9QS19BTExPQ19GQUlMRUQ7Ci0gICAgICAgIGNhc2UgUFNBX0VSUk9SX0JBRF9TVEFURToKLSAgICAgICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9QS19CQURfSU5QVVRfREFUQTsKLSAgICAgICAgY2FzZSBQU0FfRVJST1JfREFUQV9DT1JSVVBUOgotICAgICAgICBjYXNlIFBTQV9FUlJPUl9EQVRBX0lOVkFMSUQ6Ci0gICAgICAgIGNhc2UgUFNBX0VSUk9SX1NUT1JBR0VfRkFJTFVSRToKLSAgICAgICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9QS19GSUxFX0lPX0VSUk9SOwotICAgICAgICBkZWZhdWx0OgotICAgICAgICAgICAgcmV0dXJuIHBzYV9nZW5lcmljX3N0YXR1c190b19tYmVkdGxzKHN0YXR1cyk7Ci0gICAgfQotfQotI2VuZGlmIC8qIE1CRURUTFNfUEtfQyAqLwotCi0vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KLS8qIEtleSBtYW5hZ2VtZW50ICovCi0vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KLQotI2lmIGRlZmluZWQoUFNBX1dBTlRfS0VZX1RZUEVfRUNDX1BVQkxJQ19LRVkpCi1wc2FfZWNjX2ZhbWlseV90IG1iZWR0bHNfZWNjX2dyb3VwX3RvX3BzYShtYmVkdGxzX2VjcF9ncm91cF9pZCBncnBpZCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCAqYml0cykKLXsKLSAgICBzd2l0Y2ggKGdycGlkKSB7Ci0jaWYgZGVmaW5lZChNQkVEVExTX0VDUF9IQVZFX1NFQ1AxOTJSMSkKLSAgICAgICAgY2FzZSBNQkVEVExTX0VDUF9EUF9TRUNQMTkyUjE6Ci0gICAgICAgICAgICAqYml0cyA9IDE5MjsKLSAgICAgICAgICAgIHJldHVybiBQU0FfRUNDX0ZBTUlMWV9TRUNQX1IxOwotI2VuZGlmCi0jaWYgZGVmaW5lZChNQkVEVExTX0VDUF9IQVZFX1NFQ1AyMjRSMSkKLSAgICAgICAgY2FzZSBNQkVEVExTX0VDUF9EUF9TRUNQMjI0UjE6Ci0gICAgICAgICAgICAqYml0cyA9IDIyNDsKLSAgICAgICAgICAgIHJldHVybiBQU0FfRUNDX0ZBTUlMWV9TRUNQX1IxOwotI2VuZGlmCi0jaWYgZGVmaW5lZChNQkVEVExTX0VDUF9IQVZFX1NFQ1AyNTZSMSkKLSAgICAgICAgY2FzZSBNQkVEVExTX0VDUF9EUF9TRUNQMjU2UjE6Ci0gICAgICAgICAgICAqYml0cyA9IDI1NjsKLSAgICAgICAgICAgIHJldHVybiBQU0FfRUNDX0ZBTUlMWV9TRUNQX1IxOwotI2VuZGlmCi0jaWYgZGVmaW5lZChNQkVEVExTX0VDUF9IQVZFX1NFQ1AzODRSMSkKLSAgICAgICAgY2FzZSBNQkVEVExTX0VDUF9EUF9TRUNQMzg0UjE6Ci0gICAgICAgICAgICAqYml0cyA9IDM4NDsKLSAgICAgICAgICAgIHJldHVybiBQU0FfRUNDX0ZBTUlMWV9TRUNQX1IxOwotI2VuZGlmCi0jaWYgZGVmaW5lZChNQkVEVExTX0VDUF9IQVZFX1NFQ1A1MjFSMSkKLSAgICAgICAgY2FzZSBNQkVEVExTX0VDUF9EUF9TRUNQNTIxUjE6Ci0gICAgICAgICAgICAqYml0cyA9IDUyMTsKLSAgICAgICAgICAgIHJldHVybiBQU0FfRUNDX0ZBTUlMWV9TRUNQX1IxOwotI2VuZGlmCi0jaWYgZGVmaW5lZChNQkVEVExTX0VDUF9IQVZFX0JQMjU2UjEpCi0gICAgICAgIGNhc2UgTUJFRFRMU19FQ1BfRFBfQlAyNTZSMToKLSAgICAgICAgICAgICpiaXRzID0gMjU2OwotICAgICAgICAgICAgcmV0dXJuIFBTQV9FQ0NfRkFNSUxZX0JSQUlOUE9PTF9QX1IxOwotI2VuZGlmCi0jaWYgZGVmaW5lZChNQkVEVExTX0VDUF9IQVZFX0JQMzg0UjEpCi0gICAgICAgIGNhc2UgTUJFRFRMU19FQ1BfRFBfQlAzODRSMToKLSAgICAgICAgICAgICpiaXRzID0gMzg0OwotICAgICAgICAgICAgcmV0dXJuIFBTQV9FQ0NfRkFNSUxZX0JSQUlOUE9PTF9QX1IxOwotI2VuZGlmCi0jaWYgZGVmaW5lZChNQkVEVExTX0VDUF9IQVZFX0JQNTEyUjEpCi0gICAgICAgIGNhc2UgTUJFRFRMU19FQ1BfRFBfQlA1MTJSMToKLSAgICAgICAgICAgICpiaXRzID0gNTEyOwotICAgICAgICAgICAgcmV0dXJuIFBTQV9FQ0NfRkFNSUxZX0JSQUlOUE9PTF9QX1IxOwotI2VuZGlmCi0jaWYgZGVmaW5lZChNQkVEVExTX0VDUF9IQVZFX0NVUlZFMjU1MTkpCi0gICAgICAgIGNhc2UgTUJFRFRMU19FQ1BfRFBfQ1VSVkUyNTUxOToKLSAgICAgICAgICAgICpiaXRzID0gMjU1OwotICAgICAgICAgICAgcmV0dXJuIFBTQV9FQ0NfRkFNSUxZX01PTlRHT01FUlk7Ci0jZW5kaWYKLSNpZiBkZWZpbmVkKE1CRURUTFNfRUNQX0hBVkVfU0VDUDE5MksxKQotICAgICAgICBjYXNlIE1CRURUTFNfRUNQX0RQX1NFQ1AxOTJLMToKLSAgICAgICAgICAgICpiaXRzID0gMTkyOwotICAgICAgICAgICAgcmV0dXJuIFBTQV9FQ0NfRkFNSUxZX1NFQ1BfSzE7Ci0jZW5kaWYKLSNpZiBkZWZpbmVkKE1CRURUTFNfRUNQX0hBVkVfU0VDUDIyNEsxKQotICAgIC8qIHNlY3AyMjRrMSBpcyBub3QgYW5kIHdpbGwgbm90IGJlIHN1cHBvcnRlZCBpbiBQU0EgKCMzNTQxKS4gKi8KLSNlbmRpZgotI2lmIGRlZmluZWQoTUJFRFRMU19FQ1BfSEFWRV9TRUNQMjU2SzEpCi0gICAgICAgIGNhc2UgTUJFRFRMU19FQ1BfRFBfU0VDUDI1NksxOgotICAgICAgICAgICAgKmJpdHMgPSAyNTY7Ci0gICAgICAgICAgICByZXR1cm4gUFNBX0VDQ19GQU1JTFlfU0VDUF9LMTsKLSNlbmRpZgotI2lmIGRlZmluZWQoTUJFRFRMU19FQ1BfSEFWRV9DVVJWRTQ0OCkKLSAgICAgICAgY2FzZSBNQkVEVExTX0VDUF9EUF9DVVJWRTQ0ODoKLSAgICAgICAgICAgICpiaXRzID0gNDQ4OwotICAgICAgICAgICAgcmV0dXJuIFBTQV9FQ0NfRkFNSUxZX01PTlRHT01FUlk7Ci0jZW5kaWYKLSAgICAgICAgZGVmYXVsdDoKLSAgICAgICAgICAgICpiaXRzID0gMDsKLSAgICAgICAgICAgIHJldHVybiAwOwotICAgIH0KLX0KLQotbWJlZHRsc19lY3BfZ3JvdXBfaWQgbWJlZHRsc19lY2NfZ3JvdXBfZnJvbV9wc2EocHNhX2VjY19mYW1pbHlfdCBmYW1pbHksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgYml0cykKLXsKLSAgICBzd2l0Y2ggKGZhbWlseSkgewotICAgICAgICBjYXNlIFBTQV9FQ0NfRkFNSUxZX1NFQ1BfUjE6Ci0gICAgICAgICAgICBzd2l0Y2ggKGJpdHMpIHsKLSNpZiBkZWZpbmVkKFBTQV9XQU5UX0VDQ19TRUNQX1IxXzE5MikKLSAgICAgICAgICAgICAgICBjYXNlIDE5MjoKLSAgICAgICAgICAgICAgICAgICAgcmV0dXJuIE1CRURUTFNfRUNQX0RQX1NFQ1AxOTJSMTsKLSNlbmRpZgotI2lmIGRlZmluZWQoUFNBX1dBTlRfRUNDX1NFQ1BfUjFfMjI0KQotICAgICAgICAgICAgICAgIGNhc2UgMjI0OgotICAgICAgICAgICAgICAgICAgICByZXR1cm4gTUJFRFRMU19FQ1BfRFBfU0VDUDIyNFIxOwotI2VuZGlmCi0jaWYgZGVmaW5lZChQU0FfV0FOVF9FQ0NfU0VDUF9SMV8yNTYpCi0gICAgICAgICAgICAgICAgY2FzZSAyNTY6Ci0gICAgICAgICAgICAgICAgICAgIHJldHVybiBNQkVEVExTX0VDUF9EUF9TRUNQMjU2UjE7Ci0jZW5kaWYKLSNpZiBkZWZpbmVkKFBTQV9XQU5UX0VDQ19TRUNQX1IxXzM4NCkKLSAgICAgICAgICAgICAgICBjYXNlIDM4NDoKLSAgICAgICAgICAgICAgICAgICAgcmV0dXJuIE1CRURUTFNfRUNQX0RQX1NFQ1AzODRSMTsKLSNlbmRpZgotI2lmIGRlZmluZWQoUFNBX1dBTlRfRUNDX1NFQ1BfUjFfNTIxKQotICAgICAgICAgICAgICAgIGNhc2UgNTIxOgotICAgICAgICAgICAgICAgICAgICByZXR1cm4gTUJFRFRMU19FQ1BfRFBfU0VDUDUyMVIxOwotI2VuZGlmCi0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBicmVhazsKLQotICAgICAgICBjYXNlIFBTQV9FQ0NfRkFNSUxZX0JSQUlOUE9PTF9QX1IxOgotICAgICAgICAgICAgc3dpdGNoIChiaXRzKSB7Ci0jaWYgZGVmaW5lZChQU0FfV0FOVF9FQ0NfQlJBSU5QT09MX1BfUjFfMjU2KQotICAgICAgICAgICAgICAgIGNhc2UgMjU2OgotICAgICAgICAgICAgICAgICAgICByZXR1cm4gTUJFRFRMU19FQ1BfRFBfQlAyNTZSMTsKLSNlbmRpZgotI2lmIGRlZmluZWQoUFNBX1dBTlRfRUNDX0JSQUlOUE9PTF9QX1IxXzM4NCkKLSAgICAgICAgICAgICAgICBjYXNlIDM4NDoKLSAgICAgICAgICAgICAgICAgICAgcmV0dXJuIE1CRURUTFNfRUNQX0RQX0JQMzg0UjE7Ci0jZW5kaWYKLSNpZiBkZWZpbmVkKFBTQV9XQU5UX0VDQ19CUkFJTlBPT0xfUF9SMV81MTIpCi0gICAgICAgICAgICAgICAgY2FzZSA1MTI6Ci0gICAgICAgICAgICAgICAgICAgIHJldHVybiBNQkVEVExTX0VDUF9EUF9CUDUxMlIxOwotI2VuZGlmCi0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBicmVhazsKLQotICAgICAgICBjYXNlIFBTQV9FQ0NfRkFNSUxZX01PTlRHT01FUlk6Ci0gICAgICAgICAgICBzd2l0Y2ggKGJpdHMpIHsKLSNpZiBkZWZpbmVkKFBTQV9XQU5UX0VDQ19NT05UR09NRVJZXzI1NSkKLSAgICAgICAgICAgICAgICBjYXNlIDI1NToKLSAgICAgICAgICAgICAgICAgICAgcmV0dXJuIE1CRURUTFNfRUNQX0RQX0NVUlZFMjU1MTk7Ci0jZW5kaWYKLSNpZiBkZWZpbmVkKFBTQV9XQU5UX0VDQ19NT05UR09NRVJZXzQ0OCkKLSAgICAgICAgICAgICAgICBjYXNlIDQ0ODoKLSAgICAgICAgICAgICAgICAgICAgcmV0dXJuIE1CRURUTFNfRUNQX0RQX0NVUlZFNDQ4OwotI2VuZGlmCi0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBicmVhazsKLQotICAgICAgICBjYXNlIFBTQV9FQ0NfRkFNSUxZX1NFQ1BfSzE6Ci0gICAgICAgICAgICBzd2l0Y2ggKGJpdHMpIHsKLSNpZiBkZWZpbmVkKFBTQV9XQU5UX0VDQ19TRUNQX0sxXzE5MikKLSAgICAgICAgICAgICAgICBjYXNlIDE5MjoKLSAgICAgICAgICAgICAgICAgICAgcmV0dXJuIE1CRURUTFNfRUNQX0RQX1NFQ1AxOTJLMTsKLSNlbmRpZgotI2lmIGRlZmluZWQoUFNBX1dBTlRfRUNDX1NFQ1BfSzFfMjI0KQotICAgICAgICAgICAgLyogc2VjcDIyNGsxIGlzIG5vdCBhbmQgd2lsbCBub3QgYmUgc3VwcG9ydGVkIGluIFBTQSAoIzM1NDEpLiAqLwotI2VuZGlmCi0jaWYgZGVmaW5lZChQU0FfV0FOVF9FQ0NfU0VDUF9LMV8yNTYpCi0gICAgICAgICAgICAgICAgY2FzZSAyNTY6Ci0gICAgICAgICAgICAgICAgICAgIHJldHVybiBNQkVEVExTX0VDUF9EUF9TRUNQMjU2SzE7Ci0jZW5kaWYKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGJyZWFrOwotICAgIH0KLQotICAgIHJldHVybiBNQkVEVExTX0VDUF9EUF9OT05FOwotfQotI2VuZGlmIC8qIFBTQV9XQU5UX0tFWV9UWVBFX0VDQ19QVUJMSUNfS0VZICovCi0KLS8qIFdyYXBwZXIgZnVuY3Rpb24gYWxsb3dpbmcgdGhlIGNsYXNzaWMgQVBJIHRvIHVzZSB0aGUgUFNBIFJORy4KLSAqCi0gKiBgbWJlZHRsc19wc2FfZ2V0X3JhbmRvbShNQkVEVExTX1BTQV9SQU5ET01fU1RBVEUsIC4uLilgIGNhbGxzCi0gKiBgcHNhX2dlbmVyYXRlX3JhbmRvbSguLi4pYC4gVGhlIHN0YXRlIHBhcmFtZXRlciBpcyBpZ25vcmVkIHNpbmNlIHRoZQotICogUFNBIEFQSSBkb2Vzbid0IHN1cHBvcnQgcGFzc2luZyBhbiBleHBsaWNpdCBzdGF0ZS4KLSAqLwotaW50IG1iZWR0bHNfcHNhX2dldF9yYW5kb20odm9pZCAqcF9ybmcsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBjaGFyICpvdXRwdXQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3Qgb3V0cHV0X3NpemUpCi17Ci0gICAgLyogVGhpcyBmdW5jdGlvbiB0YWtlcyBhIHBvaW50ZXIgdG8gdGhlIFJORyBzdGF0ZSBiZWNhdXNlIHRoYXQncyB3aGF0Ci0gICAgICogY2xhc3NpYyBtYmVkdGxzIGZ1bmN0aW9ucyB1c2luZyBhbiBSTkcgZXhwZWN0LiBUaGUgUFNBIFJORyBtYW5hZ2VzCi0gICAgICogaXRzIG93biBzdGF0ZSBpbnRlcm5hbGx5IGFuZCBkb2Vzbid0IGxldCB0aGUgY2FsbGVyIGFjY2VzcyB0aGF0IHN0YXRlLgotICAgICAqIFNvIHdlIGp1c3QgaWdub3JlIHRoZSBzdGF0ZSBwYXJhbWV0ZXIsIGFuZCBpbiBwcmFjdGljZSB3ZSdsbCBwYXNzCi0gICAgICogTlVMTC4gKi8KLSAgICAodm9pZCkgcF9ybmc7Ci0gICAgcHNhX3N0YXR1c190IHN0YXR1cyA9IHBzYV9nZW5lcmF0ZV9yYW5kb20ob3V0cHV0LCBvdXRwdXRfc2l6ZSk7Ci0gICAgaWYgKHN0YXR1cyA9PSBQU0FfU1VDQ0VTUykgewotICAgICAgICByZXR1cm4gMDsKLSAgICB9IGVsc2UgewotICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfRU5UUk9QWV9TT1VSQ0VfRkFJTEVEOwotICAgIH0KLX0KLQotI2VuZGlmIC8qIE1CRURUTFNfUFNBX0NSWVBUT19DTElFTlQgKi8KLQotI2lmIGRlZmluZWQoTUJFRFRMU19QU0FfVVRJTF9IQVZFX0VDRFNBKQotCi0vKioKLSAqIFxicmllZiAgQ29udmVydCBhIHNpbmdsZSByYXcgY29vcmRpbmF0ZSB0byBERVIgQVNOLjEgZm9ybWF0LiBUaGUgb3V0cHV0IGRlcgotICogICAgICAgICBidWZmZXIgaXMgZmlsbGVkIGJhY2t3YXJkIChpLmUuIHN0YXJ0aW5nIGZyb20gaXRzIGVuZCkuCi0gKgotICogXHBhcmFtIHJhd19idWYgICAgICAgICAgIEJ1ZmZlciBjb250YWluaW5nIHRoZSByYXcgY29vcmRpbmF0ZSB0byBiZQotICogICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnZlcnRlZC4KLSAqIFxwYXJhbSByYXdfbGVuICAgICAgICAgICBMZW5ndGggb2YgcmF3X2J1ZiBpbiBieXRlcy4gVGhpcyBtdXN0IGJlID4gMC4KLSAqIFxwYXJhbSBkZXJfYnVmX3N0YXJ0ICAgICBQb2ludGVyIHRvIHRoZSBiZWdpbm5pbmcgb2YgdGhlIGJ1ZmZlciB3aGljaAotICogICAgICAgICAgICAgICAgICAgICAgICAgIHdpbGwgYmUgZmlsbGVkIHdpdGggdGhlIERFUiBjb252ZXJ0ZWQgZGF0YS4KLSAqIFxwYXJhbSBkZXJfYnVmX2VuZCAgICAgICBFbmQgb2YgdGhlIGJ1ZmZlciB1c2VkIHRvIHN0b3JlIHRoZSBERVIgb3V0cHV0LgotICoKLSAqIFxyZXR1cm4gICAgICAgICAgICAgICAgICBPbiBzdWNjZXNzLCB0aGUgYW1vdW50IG9mIGRhdGEgKGluIGJ5dGVzKSB3cml0dGVuIHRvCi0gKiAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlIERFUiBidWZmZXIuCi0gKiBccmV0dXJuICAgICAgICAgICAgICAgICAgTUJFRFRMU19FUlJfQVNOMV9CVUZfVE9PX1NNQUxMIGlmIHRoZSBwcm92aWRlZCBkZXIKLSAqICAgICAgICAgICAgICAgICAgICAgICAgICBidWZmZXIgaXMgdG9vIHNtYWxsIHRvIGNvbnRhaW4gYWxsIHRoZSBjb252ZXJ0ZWQgZGF0YS4KLSAqIFxyZXR1cm4gICAgICAgICAgICAgICAgICBNQkVEVExTX0VSUl9BU04xX0lOVkFMSURfREFUQSBpZiB0aGUgaW5wdXQgcmF3Ci0gKiAgICAgICAgICAgICAgICAgICAgICAgICAgY29vcmRpbmF0ZSBpcyBudWxsIChpLmUuIGFsbCB6ZXJvcykuCi0gKgotICogXHdhcm5pbmcgICAgICAgICAgICAgICAgIFJhdyBhbmQgZGVyIGJ1ZmZlciBtdXN0IG5vdCBiZSBvdmVybGFwcGluZy4KLSAqLwotc3RhdGljIGludCBjb252ZXJ0X3Jhd190b19kZXJfc2luZ2xlX2ludChjb25zdCB1bnNpZ25lZCBjaGFyICpyYXdfYnVmLCBzaXplX3QgcmF3X2xlbiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgY2hhciAqZGVyX2J1Zl9zdGFydCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgY2hhciAqZGVyX2J1Zl9lbmQpCi17Ci0gICAgdW5zaWduZWQgY2hhciAqcCA9IGRlcl9idWZfZW5kOwotICAgIGludCBsZW47Ci0gICAgaW50IHJldCA9IE1CRURUTFNfRVJSX0VSUk9SX0NPUlJVUFRJT05fREVURUNURUQ7Ci0KLSAgICAvKiBBU04uMSBERVIgZW5jb2RpbmcgcmVxdWlyZXMgbWluaW1hbCBsZW5ndGgsIHNvIHNraXAgbGVhZGluZyAwcy4KLSAgICAgKiBQcm92aWRlZCBpbnB1dCBNUElzIHNob3VsZCBub3QgYmUgMCwgYnV0IGFzIGEgZmFpbHNhZmUgbWVhc3VyZSwgc3RpbGwKLSAgICAgKiBkZXRlY3QgdGhhdCBhbmQgcmV0dXJuIGVycm9yIGluIGNhc2UuICovCi0gICAgd2hpbGUgKCpyYXdfYnVmID09IDB4MDApIHsKLSAgICAgICAgKytyYXdfYnVmOwotICAgICAgICAtLXJhd19sZW47Ci0gICAgICAgIGlmIChyYXdfbGVuID09IDApIHsKLSAgICAgICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9BU04xX0lOVkFMSURfREFUQTsKLSAgICAgICAgfQotICAgIH0KLSAgICBsZW4gPSAoaW50KSByYXdfbGVuOwotCi0gICAgLyogQ29weSB0aGUgcmF3IGNvb3JkaW5hdGUgdG8gdGhlIGVuZCBvZiBkZXJfYnVmLiAqLwotICAgIGlmICgocCAtIGRlcl9idWZfc3RhcnQpIDwgbGVuKSB7Ci0gICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9BU04xX0JVRl9UT09fU01BTEw7Ci0gICAgfQotICAgIHAgLT0gbGVuOwotICAgIG1lbWNweShwLCByYXdfYnVmLCBsZW4pOwotCi0gICAgLyogSWYgTVNiIGlzIDEsIEFTTi4xIHJlcXVpcmVzIHRoYXQgd2UgcHJlcGVuZCBhIDAuICovCi0gICAgaWYgKCpwICYgMHg4MCkgewotICAgICAgICBpZiAoKHAgLSBkZXJfYnVmX3N0YXJ0KSA8IDEpIHsKLSAgICAgICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9BU04xX0JVRl9UT09fU01BTEw7Ci0gICAgICAgIH0KLSAgICAgICAgLS1wOwotICAgICAgICAqcCA9IDB4MDA7Ci0gICAgICAgICsrbGVuOwotICAgIH0KLQotICAgIE1CRURUTFNfQVNOMV9DSEtfQUREKGxlbiwgbWJlZHRsc19hc24xX3dyaXRlX2xlbigmcCwgZGVyX2J1Zl9zdGFydCwgbGVuKSk7Ci0gICAgTUJFRFRMU19BU04xX0NIS19BREQobGVuLCBtYmVkdGxzX2FzbjFfd3JpdGVfdGFnKCZwLCBkZXJfYnVmX3N0YXJ0LCBNQkVEVExTX0FTTjFfSU5URUdFUikpOwotCi0gICAgcmV0dXJuIGxlbjsKLX0KLQotaW50IG1iZWR0bHNfZWNkc2FfcmF3X3RvX2RlcihzaXplX3QgYml0cywgY29uc3QgdW5zaWduZWQgY2hhciAqcmF3LCBzaXplX3QgcmF3X2xlbiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgY2hhciAqZGVyLCBzaXplX3QgZGVyX3NpemUsIHNpemVfdCAqZGVyX2xlbikKLXsKLSAgICB1bnNpZ25lZCBjaGFyIHJbUFNBX0JJVFNfVE9fQllURVMoUFNBX1ZFTkRPUl9FQ0NfTUFYX0NVUlZFX0JJVFMpXTsKLSAgICB1bnNpZ25lZCBjaGFyIHNbUFNBX0JJVFNfVE9fQllURVMoUFNBX1ZFTkRPUl9FQ0NfTUFYX0NVUlZFX0JJVFMpXTsKLSAgICBjb25zdCBzaXplX3QgY29vcmRpbmF0ZV9sZW4gPSBQU0FfQklUU19UT19CWVRFUyhiaXRzKTsKLSAgICBzaXplX3QgbGVuID0gMDsKLSAgICB1bnNpZ25lZCBjaGFyICpwID0gZGVyICsgZGVyX3NpemU7Ci0gICAgaW50IHJldCA9IE1CRURUTFNfRVJSX0VSUk9SX0NPUlJVUFRJT05fREVURUNURUQ7Ci0KLSAgICBpZiAocmF3X2xlbiAhPSAoMiAqIGNvb3JkaW5hdGVfbGVuKSkgewotICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfQVNOMV9JTlZBTElEX0RBVEE7Ci0gICAgfQotCi0gICAgLyogU2luY2UgcmF3IGFuZCBkZXIgYnVmZmVycyBtaWdodCBvdmVybGFwLCBkdW1wIHIgYW5kIHMgYmVmb3JlIHN0YXJ0aW5nCi0gICAgICogdGhlIGNvbnZlcnNpb24uICovCi0gICAgbWVtY3B5KHIsIHJhdywgY29vcmRpbmF0ZV9sZW4pOwotICAgIG1lbWNweShzLCByYXcgKyBjb29yZGluYXRlX2xlbiwgY29vcmRpbmF0ZV9sZW4pOwotCi0gICAgLyogZGVyIGJ1ZmZlciB3aWxsIGluaXRpYWxseSBiZSB3cml0dGVuIHN0YXJ0aW5nIGZyb20gaXRzIGVuZCBzbyB3ZSBwaWNrIHMKLSAgICAgKiBmaXJzdCBhbmQgdGhlbiByLiAqLwotICAgIHJldCA9IGNvbnZlcnRfcmF3X3RvX2Rlcl9zaW5nbGVfaW50KHMsIGNvb3JkaW5hdGVfbGVuLCBkZXIsIHApOwotICAgIGlmIChyZXQgPCAwKSB7Ci0gICAgICAgIHJldHVybiByZXQ7Ci0gICAgfQotICAgIHAgLT0gcmV0OwotICAgIGxlbiArPSByZXQ7Ci0KLSAgICByZXQgPSBjb252ZXJ0X3Jhd190b19kZXJfc2luZ2xlX2ludChyLCBjb29yZGluYXRlX2xlbiwgZGVyLCBwKTsKLSAgICBpZiAocmV0IDwgMCkgewotICAgICAgICByZXR1cm4gcmV0OwotICAgIH0KLSAgICBwIC09IHJldDsKLSAgICBsZW4gKz0gcmV0OwotCi0gICAgLyogQWRkIEFTTi4xIGhlYWRlciAobGVuICsgdGFnKS4gKi8KLSAgICBNQkVEVExTX0FTTjFfQ0hLX0FERChsZW4sIG1iZWR0bHNfYXNuMV93cml0ZV9sZW4oJnAsIGRlciwgbGVuKSk7Ci0gICAgTUJFRFRMU19BU04xX0NIS19BREQobGVuLCBtYmVkdGxzX2FzbjFfd3JpdGVfdGFnKCZwLCBkZXIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1CRURUTFNfQVNOMV9DT05TVFJVQ1RFRCB8Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1CRURUTFNfQVNOMV9TRVFVRU5DRSkpOwotCi0gICAgLyogbWVtbW92ZSB0aGUgY29udGVudCBvZiBkZXIgYnVmZmVyIHRvIGl0cyBiZWdpbm5pZy4gKi8KLSAgICBtZW1tb3ZlKGRlciwgcCwgbGVuKTsKLSAgICAqZGVyX2xlbiA9IGxlbjsKLQotICAgIHJldHVybiAwOwotfQotCi0vKioKLSAqIFxicmllZiBDb252ZXJ0IGEgc2luZ2xlIGludGVnZXIgZnJvbSBBU04uMSBERVIgZm9ybWF0IHRvIHJhdy4KLSAqCi0gKiBccGFyYW0gZGVyICAgICAgICAgICAgICAgQnVmZmVyIGNvbnRhaW5pbmcgdGhlIERFUiBpbnRlZ2VyIHZhbHVlIHRvIGJlCi0gKiAgICAgICAgICAgICAgICAgICAgICAgICAgY29udmVydGVkLgotICogXHBhcmFtIGRlcl9sZW4gICAgICAgICAgIExlbmd0aCBvZiB0aGUgZGVyIGJ1ZmZlciBpbiBieXRlcy4KLSAqIFxwYXJhbSByYXcgICAgICAgICAgICAgICBPdXRwdXQgYnVmZmVyIHRoYXQgd2lsbCBiZSBmaWxsZWQgd2l0aCB0aGUKLSAqICAgICAgICAgICAgICAgICAgICAgICAgICBjb252ZXJ0ZWQgZGF0YS4gVGhpcyBzaG91bGQgYmUgYXQgbGVhc3QKLSAqICAgICAgICAgICAgICAgICAgICAgICAgICBjb29yZGluYXRlX3NpemUgYnl0ZXMgYW5kIGl0IG11c3QgYmUgemVyb2VkIGJlZm9yZQotICogICAgICAgICAgICAgICAgICAgICAgICAgIGNhbGxpbmcgdGhpcyBmdW5jdGlvbi4KLSAqIFxwYXJhbSBjb29yZGluYXRlX3NpemUgICBTaXplIChpbiBieXRlcykgb2YgYSBzaW5nbGUgY29vcmRpbmF0ZSBpbiByYXcKLSAqICAgICAgICAgICAgICAgICAgICAgICAgICBmb3JtYXQuCi0gKgotICogXHJldHVybiAgICAgICAgICAgICAgICAgIE9uIHN1Y2Nlc3MsIHRoZSBhbW91bnQgb2YgREVSIGRhdGEgcGFyc2VkIGZyb20gdGhlCi0gKiAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvdmlkZWQgZGVyIGJ1ZmZlci4KLSAqIFxyZXR1cm4gICAgICAgICAgICAgICAgICBNQkVEVExTX0VSUl9BU04xX1VORVhQRUNURURfVEFHIGlmIHRoZSBpbnRlZ2VyIHRhZwotICogICAgICAgICAgICAgICAgICAgICAgICAgIGlzIG1pc3NpbmcgaW4gdGhlIGRlciBidWZmZXIuCi0gKiBccmV0dXJuICAgICAgICAgICAgICAgICAgTUJFRFRMU19FUlJfQVNOMV9MRU5HVEhfTUlTTUFUQ0ggaWYgdGhlIGludGVnZXIKLSAqICAgICAgICAgICAgICAgICAgICAgICAgICBpcyBudWxsIChpLmUuIGFsbCB6ZXJvcykgb3IgaWYgdGhlIG91dHB1dCByYXcgYnVmZmVyCi0gKiAgICAgICAgICAgICAgICAgICAgICAgICAgaXMgdG9vIHNtYWxsIHRvIGNvbnRhaW4gdGhlIGNvbnZlcnRlZCByYXcgdmFsdWUuCi0gKgotICogXHdhcm5pbmcgICAgICAgICAgICAgICAgIERlciBhbmQgcmF3IGJ1ZmZlcnMgbXVzdCBub3QgYmUgb3ZlcmxhcHBpbmcuCi0gKi8KLXN0YXRpYyBpbnQgY29udmVydF9kZXJfdG9fcmF3X3NpbmdsZV9pbnQodW5zaWduZWQgY2hhciAqZGVyLCBzaXplX3QgZGVyX2xlbiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgY2hhciAqcmF3LCBzaXplX3QgY29vcmRpbmF0ZV9zaXplKQotewotICAgIHVuc2lnbmVkIGNoYXIgKnAgPSBkZXI7Ci0gICAgaW50IHJldCA9IE1CRURUTFNfRVJSX0VSUk9SX0NPUlJVUFRJT05fREVURUNURUQ7Ci0gICAgc2l6ZV90IHVucGFkZGVkX2xlbiwgcGFkZGluZ19sZW4gPSAwOwotCi0gICAgLyogR2V0IHRoZSBsZW5ndGggb2YgQVNOLjEgZWxlbWVudCAoaS5lLiB0aGUgaW50ZWdlciB3ZSBuZWVkIHRvIHBhcnNlKS4gKi8KLSAgICByZXQgPSBtYmVkdGxzX2FzbjFfZ2V0X3RhZygmcCwgcCArIGRlcl9sZW4sICZ1bnBhZGRlZF9sZW4sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTUJFRFRMU19BU04xX0lOVEVHRVIpOwotICAgIGlmIChyZXQgIT0gMCkgewotICAgICAgICByZXR1cm4gcmV0OwotICAgIH0KLQotICAgIC8qIEl0J3MgaW52YWxpZCB0byBoYXZlOgotICAgICAqIC0gdW5wYWRkZWRfbGVuID09IDAuCi0gICAgICogLSBNU2Igc2V0IHdpdGhvdXQgYSBsZWFkaW5nIDB4MDAgKGxlYWRpbmcgMHgwMCBpcyBjaGVja2VkIGJlbG93KS4gKi8KLSAgICBpZiAoKCh1bnBhZGRlZF9sZW4gPT0gMCkgfHwgKCpwICYgMHg4MCkgIT0gMCkpIHsKLSAgICAgICAgcmV0dXJuIE1CRURUTFNfRVJSX0FTTjFfSU5WQUxJRF9EQVRBOwotICAgIH0KLQotICAgIC8qIFNraXAgcG9zc2libGUgbGVhZGluZyB6ZXJvICovCi0gICAgaWYgKCpwID09IDB4MDApIHsKLSAgICAgICAgcCsrOwotICAgICAgICB1bnBhZGRlZF9sZW4tLTsKLSAgICAgICAgLyogSXQgaXMgbm90IGFsbG93ZWQgdG8gaGF2ZSBtb3JlIHRoYW4gMSBsZWFkaW5nIHplcm8uCi0gICAgICAgICAqIElnbm9yZSB0aGUgY2FzZSBpbiB3aGljaCB1bnBhZGRlZF9sZW4gPSAwIGJlY2F1c2UgdGhhdCdzIGEgMCBlbmNvZGVkCi0gICAgICAgICAqIGluIEFTTi4xIGZvcm1hdCAoaS5lLiAwMjAxMDApLiAqLwotICAgICAgICBpZiAoKHVucGFkZGVkX2xlbiA+IDApICYmICgqcCA9PSAweDAwKSkgewotICAgICAgICAgICAgcmV0dXJuIE1CRURUTFNfRVJSX0FTTjFfSU5WQUxJRF9EQVRBOwotICAgICAgICB9Ci0gICAgfQotCi0gICAgaWYgKHVucGFkZGVkX2xlbiA+IGNvb3JkaW5hdGVfc2l6ZSkgewotICAgICAgICAvKiBQYXJzZWQgbnVtYmVyIGlzIGxvbmdlciB0aGFuIHRoZSBtYXhpbXVtIGV4cGVjdGVkIHZhbHVlLiAqLwotICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfQVNOMV9JTlZBTElEX0RBVEE7Ci0gICAgfQotICAgIHBhZGRpbmdfbGVuID0gY29vcmRpbmF0ZV9zaXplIC0gdW5wYWRkZWRfbGVuOwotICAgIC8qIHJhdyBidWZmZXIgd2FzIGFscmVhZHkgemVyb2VkIGJ5IHRoZSBjYWxsaW5nIGZ1bmN0aW9uIHNvIHplcm8tcGFkZGluZwotICAgICAqIG9wZXJhdGlvbiBpcyBza2lwcGVkIGhlcmUuICovCi0gICAgbWVtY3B5KHJhdyArIHBhZGRpbmdfbGVuLCBwLCB1bnBhZGRlZF9sZW4pOwotICAgIHAgKz0gdW5wYWRkZWRfbGVuOwotCi0gICAgcmV0dXJuIChpbnQpIChwIC0gZGVyKTsKLX0KLQotaW50IG1iZWR0bHNfZWNkc2FfZGVyX3RvX3JhdyhzaXplX3QgYml0cywgY29uc3QgdW5zaWduZWQgY2hhciAqZGVyLCBzaXplX3QgZGVyX2xlbiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgY2hhciAqcmF3LCBzaXplX3QgcmF3X3NpemUsIHNpemVfdCAqcmF3X2xlbikKLXsKLSAgICB1bnNpZ25lZCBjaGFyIHJhd190bXBbUFNBX1ZFTkRPUl9FQ0RTQV9TSUdOQVRVUkVfTUFYX1NJWkVdOwotICAgIHVuc2lnbmVkIGNoYXIgKnAgPSAodW5zaWduZWQgY2hhciAqKSBkZXI7Ci0gICAgc2l6ZV90IGRhdGFfbGVuOwotICAgIHNpemVfdCBjb29yZGluYXRlX3NpemUgPSBQU0FfQklUU19UT19CWVRFUyhiaXRzKTsKLSAgICBpbnQgcmV0OwotCi0gICAgLyogVGhlIG91dHB1dCByYXcgYnVmZmVyIHNob3VsZCBiZSBhdCBsZWFzdCB0d2ljZSB0aGUgc2l6ZSBvZiBhIHJhdwotICAgICAqIGNvb3JkaW5hdGUgaW4gb3JkZXIgdG8gc3RvcmUgciBhbmQgcy4gKi8KLSAgICBpZiAocmF3X3NpemUgPCBjb29yZGluYXRlX3NpemUgKiAyKSB7Ci0gICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9BU04xX0JVRl9UT09fU01BTEw7Ci0gICAgfQotCi0gICAgLyogQ2hlY2sgdGhhdCB0aGUgcHJvdmlkZWQgaW5wdXQgREVSIGJ1ZmZlciBoYXMgdGhlIHJpZ2h0IGhlYWRlci4gKi8KLSAgICByZXQgPSBtYmVkdGxzX2FzbjFfZ2V0X3RhZygmcCwgZGVyICsgZGVyX2xlbiwgJmRhdGFfbGVuLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1CRURUTFNfQVNOMV9DT05TVFJVQ1RFRCB8IE1CRURUTFNfQVNOMV9TRVFVRU5DRSk7Ci0gICAgaWYgKHJldCAhPSAwKSB7Ci0gICAgICAgIHJldHVybiByZXQ7Ci0gICAgfQotCi0gICAgbWVtc2V0KHJhd190bXAsIDAsIDIgKiBjb29yZGluYXRlX3NpemUpOwotCi0gICAgLyogRXh0cmFjdCByICovCi0gICAgcmV0ID0gY29udmVydF9kZXJfdG9fcmF3X3NpbmdsZV9pbnQocCwgZGF0YV9sZW4sIHJhd190bXAsIGNvb3JkaW5hdGVfc2l6ZSk7Ci0gICAgaWYgKHJldCA8IDApIHsKLSAgICAgICAgcmV0dXJuIHJldDsKLSAgICB9Ci0gICAgcCArPSByZXQ7Ci0gICAgZGF0YV9sZW4gLT0gcmV0OwotCi0gICAgLyogRXh0cmFjdCBzICovCi0gICAgcmV0ID0gY29udmVydF9kZXJfdG9fcmF3X3NpbmdsZV9pbnQocCwgZGF0YV9sZW4sIHJhd190bXAgKyBjb29yZGluYXRlX3NpemUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29vcmRpbmF0ZV9zaXplKTsKLSAgICBpZiAocmV0IDwgMCkgewotICAgICAgICByZXR1cm4gcmV0OwotICAgIH0KLSAgICBwICs9IHJldDsKLSAgICBkYXRhX2xlbiAtPSByZXQ7Ci0KLSAgICAvKiBDaGVjayB0aGF0IHdlIGNvbnN1bWVkIGFsbCB0aGUgaW5wdXQgZGVyIGRhdGEuICovCi0gICAgaWYgKChzaXplX3QpIChwIC0gZGVyKSAhPSBkZXJfbGVuKSB7Ci0gICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9BU04xX0xFTkdUSF9NSVNNQVRDSDsKLSAgICB9Ci0KLSAgICBtZW1jcHkocmF3LCByYXdfdG1wLCAyICogY29vcmRpbmF0ZV9zaXplKTsKLSAgICAqcmF3X2xlbiA9IDIgKiBjb29yZGluYXRlX3NpemU7Ci0KLSAgICByZXR1cm4gMDsKLX0KLQotI2VuZGlmIC8qIE1CRURUTFNfUFNBX1VUSUxfSEFWRV9FQ0RTQSAqLwpkaWZmIC0tZ2l0IGEvbGlicmFyeS9yaXBlbWQxNjAuYyBiL2xpYnJhcnkvcmlwZW1kMTYwLmMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGI0ZmMzY2QuLjAwMDAwMDAKLS0tIGEvbGlicmFyeS9yaXBlbWQxNjAuYworKysgL2Rldi9udWxsCkBAIC0xLDQ5MCArMCwwIEBACi0vKgotICogIFJJUEUgTUQtMTYwIGltcGxlbWVudGF0aW9uCi0gKgotICogIENvcHlyaWdodCBUaGUgTWJlZCBUTFMgQ29udHJpYnV0b3JzCi0gKiAgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjAgT1IgR1BMLTIuMC1vci1sYXRlcgotICovCi0KLS8qCi0gKiAgVGhlIFJJUEVNRC0xNjAgYWxnb3JpdGhtIHdhcyBkZXNpZ25lZCBieSBSSVBFIGluIDE5OTYKLSAqICBodHRwOi8vaG9tZXMuZXNhdC5rdWxldXZlbi5iZS9+Ym9zc2VsYWUvbWJlZHRsc19yaXBlbWQxNjAuaHRtbAotICogIGh0dHA6Ly9laGFzaC5pYWlrLnR1Z3Jhei5hdC93aWtpL1JJUEVNRC0xNjAKLSAqLwotCi0jaW5jbHVkZSAiY29tbW9uLmgiCi0KLSNpZiBkZWZpbmVkKE1CRURUTFNfUklQRU1EMTYwX0MpCi0KLSNpbmNsdWRlICJtYmVkdGxzL3JpcGVtZDE2MC5oIgotI2luY2x1ZGUgIm1iZWR0bHMvcGxhdGZvcm1fdXRpbC5oIgotI2luY2x1ZGUgIm1iZWR0bHMvZXJyb3IuaCIKLQotI2luY2x1ZGUgPHN0cmluZy5oPgotCi0jaW5jbHVkZSAibWJlZHRscy9wbGF0Zm9ybS5oIgotCi0jaWYgIWRlZmluZWQoTUJFRFRMU19SSVBFTUQxNjBfQUxUKQotCi12b2lkIG1iZWR0bHNfcmlwZW1kMTYwX2luaXQobWJlZHRsc19yaXBlbWQxNjBfY29udGV4dCAqY3R4KQotewotICAgIG1lbXNldChjdHgsIDAsIHNpemVvZihtYmVkdGxzX3JpcGVtZDE2MF9jb250ZXh0KSk7Ci19Ci0KLXZvaWQgbWJlZHRsc19yaXBlbWQxNjBfZnJlZShtYmVkdGxzX3JpcGVtZDE2MF9jb250ZXh0ICpjdHgpCi17Ci0gICAgaWYgKGN0eCA9PSBOVUxMKSB7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICBtYmVkdGxzX3BsYXRmb3JtX3plcm9pemUoY3R4LCBzaXplb2YobWJlZHRsc19yaXBlbWQxNjBfY29udGV4dCkpOwotfQotCi12b2lkIG1iZWR0bHNfcmlwZW1kMTYwX2Nsb25lKG1iZWR0bHNfcmlwZW1kMTYwX2NvbnRleHQgKmRzdCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbWJlZHRsc19yaXBlbWQxNjBfY29udGV4dCAqc3JjKQotewotICAgICpkc3QgPSAqc3JjOwotfQotCi0vKgotICogUklQRU1ELTE2MCBjb250ZXh0IHNldHVwCi0gKi8KLWludCBtYmVkdGxzX3JpcGVtZDE2MF9zdGFydHMobWJlZHRsc19yaXBlbWQxNjBfY29udGV4dCAqY3R4KQotewotICAgIGN0eC0+dG90YWxbMF0gPSAwOwotICAgIGN0eC0+dG90YWxbMV0gPSAwOwotCi0gICAgY3R4LT5zdGF0ZVswXSA9IDB4Njc0NTIzMDE7Ci0gICAgY3R4LT5zdGF0ZVsxXSA9IDB4RUZDREFCODk7Ci0gICAgY3R4LT5zdGF0ZVsyXSA9IDB4OThCQURDRkU7Ci0gICAgY3R4LT5zdGF0ZVszXSA9IDB4MTAzMjU0NzY7Ci0gICAgY3R4LT5zdGF0ZVs0XSA9IDB4QzNEMkUxRjA7Ci0KLSAgICByZXR1cm4gMDsKLX0KLQotI2lmICFkZWZpbmVkKE1CRURUTFNfUklQRU1EMTYwX1BST0NFU1NfQUxUKQotLyoKLSAqIFByb2Nlc3Mgb25lIGJsb2NrCi0gKi8KLWludCBtYmVkdGxzX2ludGVybmFsX3JpcGVtZDE2MF9wcm9jZXNzKG1iZWR0bHNfcmlwZW1kMTYwX2NvbnRleHQgKmN0eCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgZGF0YVs2NF0pCi17Ci0gICAgc3RydWN0IHsKLSAgICAgICAgdWludDMyX3QgQSwgQiwgQywgRCwgRSwgQXAsIEJwLCBDcCwgRHAsIEVwLCBYWzE2XTsKLSAgICB9IGxvY2FsOwotCi0gICAgbG9jYWwuWFswXSA9IE1CRURUTFNfR0VUX1VJTlQzMl9MRShkYXRhLCAgMCk7Ci0gICAgbG9jYWwuWFsxXSA9IE1CRURUTFNfR0VUX1VJTlQzMl9MRShkYXRhLCAgNCk7Ci0gICAgbG9jYWwuWFsyXSA9IE1CRURUTFNfR0VUX1VJTlQzMl9MRShkYXRhLCAgOCk7Ci0gICAgbG9jYWwuWFszXSA9IE1CRURUTFNfR0VUX1VJTlQzMl9MRShkYXRhLCAxMik7Ci0gICAgbG9jYWwuWFs0XSA9IE1CRURUTFNfR0VUX1VJTlQzMl9MRShkYXRhLCAxNik7Ci0gICAgbG9jYWwuWFs1XSA9IE1CRURUTFNfR0VUX1VJTlQzMl9MRShkYXRhLCAyMCk7Ci0gICAgbG9jYWwuWFs2XSA9IE1CRURUTFNfR0VUX1VJTlQzMl9MRShkYXRhLCAyNCk7Ci0gICAgbG9jYWwuWFs3XSA9IE1CRURUTFNfR0VUX1VJTlQzMl9MRShkYXRhLCAyOCk7Ci0gICAgbG9jYWwuWFs4XSA9IE1CRURUTFNfR0VUX1VJTlQzMl9MRShkYXRhLCAzMik7Ci0gICAgbG9jYWwuWFs5XSA9IE1CRURUTFNfR0VUX1VJTlQzMl9MRShkYXRhLCAzNik7Ci0gICAgbG9jYWwuWFsxMF0gPSBNQkVEVExTX0dFVF9VSU5UMzJfTEUoZGF0YSwgNDApOwotICAgIGxvY2FsLlhbMTFdID0gTUJFRFRMU19HRVRfVUlOVDMyX0xFKGRhdGEsIDQ0KTsKLSAgICBsb2NhbC5YWzEyXSA9IE1CRURUTFNfR0VUX1VJTlQzMl9MRShkYXRhLCA0OCk7Ci0gICAgbG9jYWwuWFsxM10gPSBNQkVEVExTX0dFVF9VSU5UMzJfTEUoZGF0YSwgNTIpOwotICAgIGxvY2FsLlhbMTRdID0gTUJFRFRMU19HRVRfVUlOVDMyX0xFKGRhdGEsIDU2KTsKLSAgICBsb2NhbC5YWzE1XSA9IE1CRURUTFNfR0VUX1VJTlQzMl9MRShkYXRhLCA2MCk7Ci0KLSAgICBsb2NhbC5BID0gbG9jYWwuQXAgPSBjdHgtPnN0YXRlWzBdOwotICAgIGxvY2FsLkIgPSBsb2NhbC5CcCA9IGN0eC0+c3RhdGVbMV07Ci0gICAgbG9jYWwuQyA9IGxvY2FsLkNwID0gY3R4LT5zdGF0ZVsyXTsKLSAgICBsb2NhbC5EID0gbG9jYWwuRHAgPSBjdHgtPnN0YXRlWzNdOwotICAgIGxvY2FsLkUgPSBsb2NhbC5FcCA9IGN0eC0+c3RhdGVbNF07Ci0KLSNkZWZpbmUgRjEoeCwgeSwgeikgICAoKHgpIF4gKHkpIF4gKHopKQotI2RlZmluZSBGMih4LCB5LCB6KSAgICgoKHgpICYgKHkpKSB8ICh+KHgpICYgKHopKSkKLSNkZWZpbmUgRjMoeCwgeSwgeikgICAoKCh4KSB8IH4oeSkpIF4gKHopKQotI2RlZmluZSBGNCh4LCB5LCB6KSAgICgoKHgpICYgKHopKSB8ICgoeSkgJiB+KHopKSkKLSNkZWZpbmUgRjUoeCwgeSwgeikgICAoKHgpIF4gKCh5KSB8IH4oeikpKQotCi0jZGVmaW5lIFMoeCwgbikgKCgoeCkgPDwgKG4pKSB8ICgoeCkgPj4gKDMyIC0gKG4pKSkpCi0KLSNkZWZpbmUgUChhLCBiLCBjLCBkLCBlLCByLCBzLCBmLCBrKSAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgZG8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgICAgIChhKSArPSBmKChiKSwgKGMpLCAoZCkpICsgbG9jYWwuWFtyXSArIChrKTsgICAgICAgXAotICAgICAgICAoYSkgPSBTKChhKSwgKHMpKSArIChlKTsgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICAgICAgKGMpID0gUygoYyksIDEwKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgfSB3aGlsZSAoMCkKLQotI2RlZmluZSBQMihhLCBiLCBjLCBkLCBlLCByLCBzLCBycCwgc3ApICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICBkbyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICAgICAgUCgoYSksIChiKSwgKGMpLCAoZCksIChlKSwgKHIpLCAocyksIEYsIEspOyAgICAgICAgICAgICAgICAgICBcCi0gICAgICAgIFAoYSAjIyBwLCBiICMjIHAsIGMgIyMgcCwgZCAjIyBwLCBlICMjIHAsICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICAgICAgICAocnApLCAoc3ApLCBGcCwgS3ApOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgfSB3aGlsZSAoMCkKLQotI2RlZmluZSBGICAgRjEKLSNkZWZpbmUgSyAgIDB4MDAwMDAwMDAKLSNkZWZpbmUgRnAgIEY1Ci0jZGVmaW5lIEtwICAweDUwQTI4QkU2Ci0gICAgUDIobG9jYWwuQSwgbG9jYWwuQiwgbG9jYWwuQywgbG9jYWwuRCwgbG9jYWwuRSwgIDAsIDExLCAgNSwgIDgpOwotICAgIFAyKGxvY2FsLkUsIGxvY2FsLkEsIGxvY2FsLkIsIGxvY2FsLkMsIGxvY2FsLkQsICAxLCAxNCwgMTQsICA5KTsKLSAgICBQMihsb2NhbC5ELCBsb2NhbC5FLCBsb2NhbC5BLCBsb2NhbC5CLCBsb2NhbC5DLCAgMiwgMTUsICA3LCAgOSk7Ci0gICAgUDIobG9jYWwuQywgbG9jYWwuRCwgbG9jYWwuRSwgbG9jYWwuQSwgbG9jYWwuQiwgIDMsIDEyLCAgMCwgMTEpOwotICAgIFAyKGxvY2FsLkIsIGxvY2FsLkMsIGxvY2FsLkQsIGxvY2FsLkUsIGxvY2FsLkEsICA0LCAgNSwgIDksIDEzKTsKLSAgICBQMihsb2NhbC5BLCBsb2NhbC5CLCBsb2NhbC5DLCBsb2NhbC5ELCBsb2NhbC5FLCAgNSwgIDgsICAyLCAxNSk7Ci0gICAgUDIobG9jYWwuRSwgbG9jYWwuQSwgbG9jYWwuQiwgbG9jYWwuQywgbG9jYWwuRCwgIDYsICA3LCAxMSwgMTUpOwotICAgIFAyKGxvY2FsLkQsIGxvY2FsLkUsIGxvY2FsLkEsIGxvY2FsLkIsIGxvY2FsLkMsICA3LCAgOSwgIDQsICA1KTsKLSAgICBQMihsb2NhbC5DLCBsb2NhbC5ELCBsb2NhbC5FLCBsb2NhbC5BLCBsb2NhbC5CLCAgOCwgMTEsIDEzLCAgNyk7Ci0gICAgUDIobG9jYWwuQiwgbG9jYWwuQywgbG9jYWwuRCwgbG9jYWwuRSwgbG9jYWwuQSwgIDksIDEzLCAgNiwgIDcpOwotICAgIFAyKGxvY2FsLkEsIGxvY2FsLkIsIGxvY2FsLkMsIGxvY2FsLkQsIGxvY2FsLkUsIDEwLCAxNCwgMTUsICA4KTsKLSAgICBQMihsb2NhbC5FLCBsb2NhbC5BLCBsb2NhbC5CLCBsb2NhbC5DLCBsb2NhbC5ELCAxMSwgMTUsICA4LCAxMSk7Ci0gICAgUDIobG9jYWwuRCwgbG9jYWwuRSwgbG9jYWwuQSwgbG9jYWwuQiwgbG9jYWwuQywgMTIsICA2LCAgMSwgMTQpOwotICAgIFAyKGxvY2FsLkMsIGxvY2FsLkQsIGxvY2FsLkUsIGxvY2FsLkEsIGxvY2FsLkIsIDEzLCAgNywgMTAsIDE0KTsKLSAgICBQMihsb2NhbC5CLCBsb2NhbC5DLCBsb2NhbC5ELCBsb2NhbC5FLCBsb2NhbC5BLCAxNCwgIDksICAzLCAxMik7Ci0gICAgUDIobG9jYWwuQSwgbG9jYWwuQiwgbG9jYWwuQywgbG9jYWwuRCwgbG9jYWwuRSwgMTUsICA4LCAxMiwgIDYpOwotI3VuZGVmIEYKLSN1bmRlZiBLCi0jdW5kZWYgRnAKLSN1bmRlZiBLcAotCi0jZGVmaW5lIEYgICBGMgotI2RlZmluZSBLICAgMHg1QTgyNzk5OQotI2RlZmluZSBGcCAgRjQKLSNkZWZpbmUgS3AgIDB4NUM0REQxMjQKLSAgICBQMihsb2NhbC5FLCBsb2NhbC5BLCBsb2NhbC5CLCBsb2NhbC5DLCBsb2NhbC5ELCAgNywgIDcsICA2LCAgOSk7Ci0gICAgUDIobG9jYWwuRCwgbG9jYWwuRSwgbG9jYWwuQSwgbG9jYWwuQiwgbG9jYWwuQywgIDQsICA2LCAxMSwgMTMpOwotICAgIFAyKGxvY2FsLkMsIGxvY2FsLkQsIGxvY2FsLkUsIGxvY2FsLkEsIGxvY2FsLkIsIDEzLCAgOCwgIDMsIDE1KTsKLSAgICBQMihsb2NhbC5CLCBsb2NhbC5DLCBsb2NhbC5ELCBsb2NhbC5FLCBsb2NhbC5BLCAgMSwgMTMsICA3LCAgNyk7Ci0gICAgUDIobG9jYWwuQSwgbG9jYWwuQiwgbG9jYWwuQywgbG9jYWwuRCwgbG9jYWwuRSwgMTAsIDExLCAgMCwgMTIpOwotICAgIFAyKGxvY2FsLkUsIGxvY2FsLkEsIGxvY2FsLkIsIGxvY2FsLkMsIGxvY2FsLkQsICA2LCAgOSwgMTMsICA4KTsKLSAgICBQMihsb2NhbC5ELCBsb2NhbC5FLCBsb2NhbC5BLCBsb2NhbC5CLCBsb2NhbC5DLCAxNSwgIDcsICA1LCAgOSk7Ci0gICAgUDIobG9jYWwuQywgbG9jYWwuRCwgbG9jYWwuRSwgbG9jYWwuQSwgbG9jYWwuQiwgIDMsIDE1LCAxMCwgMTEpOwotICAgIFAyKGxvY2FsLkIsIGxvY2FsLkMsIGxvY2FsLkQsIGxvY2FsLkUsIGxvY2FsLkEsIDEyLCAgNywgMTQsICA3KTsKLSAgICBQMihsb2NhbC5BLCBsb2NhbC5CLCBsb2NhbC5DLCBsb2NhbC5ELCBsb2NhbC5FLCAgMCwgMTIsIDE1LCAgNyk7Ci0gICAgUDIobG9jYWwuRSwgbG9jYWwuQSwgbG9jYWwuQiwgbG9jYWwuQywgbG9jYWwuRCwgIDksIDE1LCAgOCwgMTIpOwotICAgIFAyKGxvY2FsLkQsIGxvY2FsLkUsIGxvY2FsLkEsIGxvY2FsLkIsIGxvY2FsLkMsICA1LCAgOSwgMTIsICA3KTsKLSAgICBQMihsb2NhbC5DLCBsb2NhbC5ELCBsb2NhbC5FLCBsb2NhbC5BLCBsb2NhbC5CLCAgMiwgMTEsICA0LCAgNik7Ci0gICAgUDIobG9jYWwuQiwgbG9jYWwuQywgbG9jYWwuRCwgbG9jYWwuRSwgbG9jYWwuQSwgMTQsICA3LCAgOSwgMTUpOwotICAgIFAyKGxvY2FsLkEsIGxvY2FsLkIsIGxvY2FsLkMsIGxvY2FsLkQsIGxvY2FsLkUsIDExLCAxMywgIDEsIDEzKTsKLSAgICBQMihsb2NhbC5FLCBsb2NhbC5BLCBsb2NhbC5CLCBsb2NhbC5DLCBsb2NhbC5ELCAgOCwgMTIsICAyLCAxMSk7Ci0jdW5kZWYgRgotI3VuZGVmIEsKLSN1bmRlZiBGcAotI3VuZGVmIEtwCi0KLSNkZWZpbmUgRiAgIEYzCi0jZGVmaW5lIEsgICAweDZFRDlFQkExCi0jZGVmaW5lIEZwICBGMwotI2RlZmluZSBLcCAgMHg2RDcwM0VGMwotICAgIFAyKGxvY2FsLkQsIGxvY2FsLkUsIGxvY2FsLkEsIGxvY2FsLkIsIGxvY2FsLkMsICAzLCAxMSwgMTUsICA5KTsKLSAgICBQMihsb2NhbC5DLCBsb2NhbC5ELCBsb2NhbC5FLCBsb2NhbC5BLCBsb2NhbC5CLCAxMCwgMTMsICA1LCAgNyk7Ci0gICAgUDIobG9jYWwuQiwgbG9jYWwuQywgbG9jYWwuRCwgbG9jYWwuRSwgbG9jYWwuQSwgMTQsICA2LCAgMSwgMTUpOwotICAgIFAyKGxvY2FsLkEsIGxvY2FsLkIsIGxvY2FsLkMsIGxvY2FsLkQsIGxvY2FsLkUsICA0LCAgNywgIDMsIDExKTsKLSAgICBQMihsb2NhbC5FLCBsb2NhbC5BLCBsb2NhbC5CLCBsb2NhbC5DLCBsb2NhbC5ELCAgOSwgMTQsICA3LCAgOCk7Ci0gICAgUDIobG9jYWwuRCwgbG9jYWwuRSwgbG9jYWwuQSwgbG9jYWwuQiwgbG9jYWwuQywgMTUsICA5LCAxNCwgIDYpOwotICAgIFAyKGxvY2FsLkMsIGxvY2FsLkQsIGxvY2FsLkUsIGxvY2FsLkEsIGxvY2FsLkIsICA4LCAxMywgIDYsICA2KTsKLSAgICBQMihsb2NhbC5CLCBsb2NhbC5DLCBsb2NhbC5ELCBsb2NhbC5FLCBsb2NhbC5BLCAgMSwgMTUsICA5LCAxNCk7Ci0gICAgUDIobG9jYWwuQSwgbG9jYWwuQiwgbG9jYWwuQywgbG9jYWwuRCwgbG9jYWwuRSwgIDIsIDE0LCAxMSwgMTIpOwotICAgIFAyKGxvY2FsLkUsIGxvY2FsLkEsIGxvY2FsLkIsIGxvY2FsLkMsIGxvY2FsLkQsICA3LCAgOCwgIDgsIDEzKTsKLSAgICBQMihsb2NhbC5ELCBsb2NhbC5FLCBsb2NhbC5BLCBsb2NhbC5CLCBsb2NhbC5DLCAgMCwgMTMsIDEyLCAgNSk7Ci0gICAgUDIobG9jYWwuQywgbG9jYWwuRCwgbG9jYWwuRSwgbG9jYWwuQSwgbG9jYWwuQiwgIDYsICA2LCAgMiwgMTQpOwotICAgIFAyKGxvY2FsLkIsIGxvY2FsLkMsIGxvY2FsLkQsIGxvY2FsLkUsIGxvY2FsLkEsIDEzLCAgNSwgMTAsIDEzKTsKLSAgICBQMihsb2NhbC5BLCBsb2NhbC5CLCBsb2NhbC5DLCBsb2NhbC5ELCBsb2NhbC5FLCAxMSwgMTIsICAwLCAxMyk7Ci0gICAgUDIobG9jYWwuRSwgbG9jYWwuQSwgbG9jYWwuQiwgbG9jYWwuQywgbG9jYWwuRCwgIDUsICA3LCAgNCwgIDcpOwotICAgIFAyKGxvY2FsLkQsIGxvY2FsLkUsIGxvY2FsLkEsIGxvY2FsLkIsIGxvY2FsLkMsIDEyLCAgNSwgMTMsICA1KTsKLSN1bmRlZiBGCi0jdW5kZWYgSwotI3VuZGVmIEZwCi0jdW5kZWYgS3AKLQotI2RlZmluZSBGICAgRjQKLSNkZWZpbmUgSyAgIDB4OEYxQkJDREMKLSNkZWZpbmUgRnAgIEYyCi0jZGVmaW5lIEtwICAweDdBNkQ3NkU5Ci0gICAgUDIobG9jYWwuQywgbG9jYWwuRCwgbG9jYWwuRSwgbG9jYWwuQSwgbG9jYWwuQiwgIDEsIDExLCAgOCwgMTUpOwotICAgIFAyKGxvY2FsLkIsIGxvY2FsLkMsIGxvY2FsLkQsIGxvY2FsLkUsIGxvY2FsLkEsICA5LCAxMiwgIDYsICA1KTsKLSAgICBQMihsb2NhbC5BLCBsb2NhbC5CLCBsb2NhbC5DLCBsb2NhbC5ELCBsb2NhbC5FLCAxMSwgMTQsICA0LCAgOCk7Ci0gICAgUDIobG9jYWwuRSwgbG9jYWwuQSwgbG9jYWwuQiwgbG9jYWwuQywgbG9jYWwuRCwgMTAsIDE1LCAgMSwgMTEpOwotICAgIFAyKGxvY2FsLkQsIGxvY2FsLkUsIGxvY2FsLkEsIGxvY2FsLkIsIGxvY2FsLkMsICAwLCAxNCwgIDMsIDE0KTsKLSAgICBQMihsb2NhbC5DLCBsb2NhbC5ELCBsb2NhbC5FLCBsb2NhbC5BLCBsb2NhbC5CLCAgOCwgMTUsIDExLCAxNCk7Ci0gICAgUDIobG9jYWwuQiwgbG9jYWwuQywgbG9jYWwuRCwgbG9jYWwuRSwgbG9jYWwuQSwgMTIsICA5LCAxNSwgIDYpOwotICAgIFAyKGxvY2FsLkEsIGxvY2FsLkIsIGxvY2FsLkMsIGxvY2FsLkQsIGxvY2FsLkUsICA0LCAgOCwgIDAsIDE0KTsKLSAgICBQMihsb2NhbC5FLCBsb2NhbC5BLCBsb2NhbC5CLCBsb2NhbC5DLCBsb2NhbC5ELCAxMywgIDksICA1LCAgNik7Ci0gICAgUDIobG9jYWwuRCwgbG9jYWwuRSwgbG9jYWwuQSwgbG9jYWwuQiwgbG9jYWwuQywgIDMsIDE0LCAxMiwgIDkpOwotICAgIFAyKGxvY2FsLkMsIGxvY2FsLkQsIGxvY2FsLkUsIGxvY2FsLkEsIGxvY2FsLkIsICA3LCAgNSwgIDIsIDEyKTsKLSAgICBQMihsb2NhbC5CLCBsb2NhbC5DLCBsb2NhbC5ELCBsb2NhbC5FLCBsb2NhbC5BLCAxNSwgIDYsIDEzLCAgOSk7Ci0gICAgUDIobG9jYWwuQSwgbG9jYWwuQiwgbG9jYWwuQywgbG9jYWwuRCwgbG9jYWwuRSwgMTQsICA4LCAgOSwgMTIpOwotICAgIFAyKGxvY2FsLkUsIGxvY2FsLkEsIGxvY2FsLkIsIGxvY2FsLkMsIGxvY2FsLkQsICA1LCAgNiwgIDcsICA1KTsKLSAgICBQMihsb2NhbC5ELCBsb2NhbC5FLCBsb2NhbC5BLCBsb2NhbC5CLCBsb2NhbC5DLCAgNiwgIDUsIDEwLCAxNSk7Ci0gICAgUDIobG9jYWwuQywgbG9jYWwuRCwgbG9jYWwuRSwgbG9jYWwuQSwgbG9jYWwuQiwgIDIsIDEyLCAxNCwgIDgpOwotI3VuZGVmIEYKLSN1bmRlZiBLCi0jdW5kZWYgRnAKLSN1bmRlZiBLcAotCi0jZGVmaW5lIEYgICBGNQotI2RlZmluZSBLICAgMHhBOTUzRkQ0RQotI2RlZmluZSBGcCAgRjEKLSNkZWZpbmUgS3AgIDB4MDAwMDAwMDAKLSAgICBQMihsb2NhbC5CLCBsb2NhbC5DLCBsb2NhbC5ELCBsb2NhbC5FLCBsb2NhbC5BLCAgNCwgIDksIDEyLCAgOCk7Ci0gICAgUDIobG9jYWwuQSwgbG9jYWwuQiwgbG9jYWwuQywgbG9jYWwuRCwgbG9jYWwuRSwgIDAsIDE1LCAxNSwgIDUpOwotICAgIFAyKGxvY2FsLkUsIGxvY2FsLkEsIGxvY2FsLkIsIGxvY2FsLkMsIGxvY2FsLkQsICA1LCAgNSwgMTAsIDEyKTsKLSAgICBQMihsb2NhbC5ELCBsb2NhbC5FLCBsb2NhbC5BLCBsb2NhbC5CLCBsb2NhbC5DLCAgOSwgMTEsICA0LCAgOSk7Ci0gICAgUDIobG9jYWwuQywgbG9jYWwuRCwgbG9jYWwuRSwgbG9jYWwuQSwgbG9jYWwuQiwgIDcsICA2LCAgMSwgMTIpOwotICAgIFAyKGxvY2FsLkIsIGxvY2FsLkMsIGxvY2FsLkQsIGxvY2FsLkUsIGxvY2FsLkEsIDEyLCAgOCwgIDUsICA1KTsKLSAgICBQMihsb2NhbC5BLCBsb2NhbC5CLCBsb2NhbC5DLCBsb2NhbC5ELCBsb2NhbC5FLCAgMiwgMTMsICA4LCAxNCk7Ci0gICAgUDIobG9jYWwuRSwgbG9jYWwuQSwgbG9jYWwuQiwgbG9jYWwuQywgbG9jYWwuRCwgMTAsIDEyLCAgNywgIDYpOwotICAgIFAyKGxvY2FsLkQsIGxvY2FsLkUsIGxvY2FsLkEsIGxvY2FsLkIsIGxvY2FsLkMsIDE0LCAgNSwgIDYsICA4KTsKLSAgICBQMihsb2NhbC5DLCBsb2NhbC5ELCBsb2NhbC5FLCBsb2NhbC5BLCBsb2NhbC5CLCAgMSwgMTIsICAyLCAxMyk7Ci0gICAgUDIobG9jYWwuQiwgbG9jYWwuQywgbG9jYWwuRCwgbG9jYWwuRSwgbG9jYWwuQSwgIDMsIDEzLCAxMywgIDYpOwotICAgIFAyKGxvY2FsLkEsIGxvY2FsLkIsIGxvY2FsLkMsIGxvY2FsLkQsIGxvY2FsLkUsICA4LCAxNCwgMTQsICA1KTsKLSAgICBQMihsb2NhbC5FLCBsb2NhbC5BLCBsb2NhbC5CLCBsb2NhbC5DLCBsb2NhbC5ELCAxMSwgMTEsICAwLCAxNSk7Ci0gICAgUDIobG9jYWwuRCwgbG9jYWwuRSwgbG9jYWwuQSwgbG9jYWwuQiwgbG9jYWwuQywgIDYsICA4LCAgMywgMTMpOwotICAgIFAyKGxvY2FsLkMsIGxvY2FsLkQsIGxvY2FsLkUsIGxvY2FsLkEsIGxvY2FsLkIsIDE1LCAgNSwgIDksIDExKTsKLSAgICBQMihsb2NhbC5CLCBsb2NhbC5DLCBsb2NhbC5ELCBsb2NhbC5FLCBsb2NhbC5BLCAxMywgIDYsIDExLCAxMSk7Ci0jdW5kZWYgRgotI3VuZGVmIEsKLSN1bmRlZiBGcAotI3VuZGVmIEtwCi0KLSAgICBsb2NhbC5DICAgICAgID0gY3R4LT5zdGF0ZVsxXSArIGxvY2FsLkMgKyBsb2NhbC5EcDsKLSAgICBjdHgtPnN0YXRlWzFdID0gY3R4LT5zdGF0ZVsyXSArIGxvY2FsLkQgKyBsb2NhbC5FcDsKLSAgICBjdHgtPnN0YXRlWzJdID0gY3R4LT5zdGF0ZVszXSArIGxvY2FsLkUgKyBsb2NhbC5BcDsKLSAgICBjdHgtPnN0YXRlWzNdID0gY3R4LT5zdGF0ZVs0XSArIGxvY2FsLkEgKyBsb2NhbC5CcDsKLSAgICBjdHgtPnN0YXRlWzRdID0gY3R4LT5zdGF0ZVswXSArIGxvY2FsLkIgKyBsb2NhbC5DcDsKLSAgICBjdHgtPnN0YXRlWzBdID0gbG9jYWwuQzsKLQotICAgIC8qIFplcm9pc2UgdmFyaWFibGVzIHRvIGNsZWFyIHNlbnNpdGl2ZSBkYXRhIGZyb20gbWVtb3J5LiAqLwotICAgIG1iZWR0bHNfcGxhdGZvcm1femVyb2l6ZSgmbG9jYWwsIHNpemVvZihsb2NhbCkpOwotCi0gICAgcmV0dXJuIDA7Ci19Ci0KLSNlbmRpZiAvKiAhTUJFRFRMU19SSVBFTUQxNjBfUFJPQ0VTU19BTFQgKi8KLQotLyoKLSAqIFJJUEVNRC0xNjAgcHJvY2VzcyBidWZmZXIKLSAqLwotaW50IG1iZWR0bHNfcmlwZW1kMTYwX3VwZGF0ZShtYmVkdGxzX3JpcGVtZDE2MF9jb250ZXh0ICpjdHgsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgKmlucHV0LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgaWxlbikKLXsKLSAgICBpbnQgcmV0ID0gTUJFRFRMU19FUlJfRVJST1JfQ09SUlVQVElPTl9ERVRFQ1RFRDsKLSAgICBzaXplX3QgZmlsbDsKLSAgICB1aW50MzJfdCBsZWZ0OwotCi0gICAgaWYgKGlsZW4gPT0gMCkgewotICAgICAgICByZXR1cm4gMDsKLSAgICB9Ci0KLSAgICBsZWZ0ID0gY3R4LT50b3RhbFswXSAmIDB4M0Y7Ci0gICAgZmlsbCA9IDY0IC0gbGVmdDsKLQotICAgIGN0eC0+dG90YWxbMF0gKz0gKHVpbnQzMl90KSBpbGVuOwotICAgIGN0eC0+dG90YWxbMF0gJj0gMHhGRkZGRkZGRjsKLQotICAgIGlmIChjdHgtPnRvdGFsWzBdIDwgKHVpbnQzMl90KSBpbGVuKSB7Ci0gICAgICAgIGN0eC0+dG90YWxbMV0rKzsKLSAgICB9Ci0KLSAgICBpZiAobGVmdCAmJiBpbGVuID49IGZpbGwpIHsKLSAgICAgICAgbWVtY3B5KCh2b2lkICopIChjdHgtPmJ1ZmZlciArIGxlZnQpLCBpbnB1dCwgZmlsbCk7Ci0KLSAgICAgICAgaWYgKChyZXQgPSBtYmVkdGxzX2ludGVybmFsX3JpcGVtZDE2MF9wcm9jZXNzKGN0eCwgY3R4LT5idWZmZXIpKSAhPSAwKSB7Ci0gICAgICAgICAgICByZXR1cm4gcmV0OwotICAgICAgICB9Ci0KLSAgICAgICAgaW5wdXQgKz0gZmlsbDsKLSAgICAgICAgaWxlbiAgLT0gZmlsbDsKLSAgICAgICAgbGVmdCA9IDA7Ci0gICAgfQotCi0gICAgd2hpbGUgKGlsZW4gPj0gNjQpIHsKLSAgICAgICAgaWYgKChyZXQgPSBtYmVkdGxzX2ludGVybmFsX3JpcGVtZDE2MF9wcm9jZXNzKGN0eCwgaW5wdXQpKSAhPSAwKSB7Ci0gICAgICAgICAgICByZXR1cm4gcmV0OwotICAgICAgICB9Ci0KLSAgICAgICAgaW5wdXQgKz0gNjQ7Ci0gICAgICAgIGlsZW4gIC09IDY0OwotICAgIH0KLQotICAgIGlmIChpbGVuID4gMCkgewotICAgICAgICBtZW1jcHkoKHZvaWQgKikgKGN0eC0+YnVmZmVyICsgbGVmdCksIGlucHV0LCBpbGVuKTsKLSAgICB9Ci0KLSAgICByZXR1cm4gMDsKLX0KLQotc3RhdGljIGNvbnN0IHVuc2lnbmVkIGNoYXIgcmlwZW1kMTYwX3BhZGRpbmdbNjRdID0KLXsKLSAgICAweDgwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLAotICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsCi0gICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwKLSAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwCi19OwotCi0vKgotICogUklQRU1ELTE2MCBmaW5hbCBkaWdlc3QKLSAqLwotaW50IG1iZWR0bHNfcmlwZW1kMTYwX2ZpbmlzaChtYmVkdGxzX3JpcGVtZDE2MF9jb250ZXh0ICpjdHgsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGNoYXIgb3V0cHV0WzIwXSkKLXsKLSAgICBpbnQgcmV0ID0gTUJFRFRMU19FUlJfRVJST1JfQ09SUlVQVElPTl9ERVRFQ1RFRDsKLSAgICB1aW50MzJfdCBsYXN0LCBwYWRuOwotICAgIHVpbnQzMl90IGhpZ2gsIGxvdzsKLSAgICB1bnNpZ25lZCBjaGFyIG1zZ2xlbls4XTsKLQotICAgIGhpZ2ggPSAoY3R4LT50b3RhbFswXSA+PiAyOSkKLSAgICAgICAgICAgfCAoY3R4LT50b3RhbFsxXSA8PCAgMyk7Ci0gICAgbG93ICA9IChjdHgtPnRvdGFsWzBdIDw8ICAzKTsKLQotICAgIE1CRURUTFNfUFVUX1VJTlQzMl9MRShsb3csICBtc2dsZW4sIDApOwotICAgIE1CRURUTFNfUFVUX1VJTlQzMl9MRShoaWdoLCBtc2dsZW4sIDQpOwotCi0gICAgbGFzdCA9IGN0eC0+dG90YWxbMF0gJiAweDNGOwotICAgIHBhZG4gPSAobGFzdCA8IDU2KSA/ICg1NiAtIGxhc3QpIDogKDEyMCAtIGxhc3QpOwotCi0gICAgcmV0ID0gbWJlZHRsc19yaXBlbWQxNjBfdXBkYXRlKGN0eCwgcmlwZW1kMTYwX3BhZGRpbmcsIHBhZG4pOwotICAgIGlmIChyZXQgIT0gMCkgewotICAgICAgICBnb3RvIGV4aXQ7Ci0gICAgfQotCi0gICAgcmV0ID0gbWJlZHRsc19yaXBlbWQxNjBfdXBkYXRlKGN0eCwgbXNnbGVuLCA4KTsKLSAgICBpZiAocmV0ICE9IDApIHsKLSAgICAgICAgZ290byBleGl0OwotICAgIH0KLQotICAgIE1CRURUTFNfUFVUX1VJTlQzMl9MRShjdHgtPnN0YXRlWzBdLCBvdXRwdXQsICAwKTsKLSAgICBNQkVEVExTX1BVVF9VSU5UMzJfTEUoY3R4LT5zdGF0ZVsxXSwgb3V0cHV0LCAgNCk7Ci0gICAgTUJFRFRMU19QVVRfVUlOVDMyX0xFKGN0eC0+c3RhdGVbMl0sIG91dHB1dCwgIDgpOwotICAgIE1CRURUTFNfUFVUX1VJTlQzMl9MRShjdHgtPnN0YXRlWzNdLCBvdXRwdXQsIDEyKTsKLSAgICBNQkVEVExTX1BVVF9VSU5UMzJfTEUoY3R4LT5zdGF0ZVs0XSwgb3V0cHV0LCAxNik7Ci0KLSAgICByZXQgPSAwOwotCi1leGl0OgotICAgIG1iZWR0bHNfcmlwZW1kMTYwX2ZyZWUoY3R4KTsKLSAgICByZXR1cm4gcmV0OwotfQotCi0jZW5kaWYgLyogISBNQkVEVExTX1JJUEVNRDE2MF9BTFQgKi8KLQotLyoKLSAqIG91dHB1dCA9IFJJUEVNRC0xNjAoIGlucHV0IGJ1ZmZlciApCi0gKi8KLWludCBtYmVkdGxzX3JpcGVtZDE2MChjb25zdCB1bnNpZ25lZCBjaGFyICppbnB1dCwKLSAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgaWxlbiwKLSAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBjaGFyIG91dHB1dFsyMF0pCi17Ci0gICAgaW50IHJldCA9IE1CRURUTFNfRVJSX0VSUk9SX0NPUlJVUFRJT05fREVURUNURUQ7Ci0gICAgbWJlZHRsc19yaXBlbWQxNjBfY29udGV4dCBjdHg7Ci0KLSAgICBtYmVkdGxzX3JpcGVtZDE2MF9pbml0KCZjdHgpOwotCi0gICAgaWYgKChyZXQgPSBtYmVkdGxzX3JpcGVtZDE2MF9zdGFydHMoJmN0eCkpICE9IDApIHsKLSAgICAgICAgZ290byBleGl0OwotICAgIH0KLQotICAgIGlmICgocmV0ID0gbWJlZHRsc19yaXBlbWQxNjBfdXBkYXRlKCZjdHgsIGlucHV0LCBpbGVuKSkgIT0gMCkgewotICAgICAgICBnb3RvIGV4aXQ7Ci0gICAgfQotCi0gICAgaWYgKChyZXQgPSBtYmVkdGxzX3JpcGVtZDE2MF9maW5pc2goJmN0eCwgb3V0cHV0KSkgIT0gMCkgewotICAgICAgICBnb3RvIGV4aXQ7Ci0gICAgfQotCi1leGl0OgotICAgIG1iZWR0bHNfcmlwZW1kMTYwX2ZyZWUoJmN0eCk7Ci0KLSAgICByZXR1cm4gcmV0OwotfQotCi0jaWYgZGVmaW5lZChNQkVEVExTX1NFTEZfVEVTVCkKLS8qCi0gKiBUZXN0IHZlY3RvcnMgZnJvbSB0aGUgUklQRU1ELTE2MCBwYXBlciBhbmQKLSAqIGh0dHA6Ly9ob21lcy5lc2F0Lmt1bGV1dmVuLmJlL35ib3NzZWxhZS9tYmVkdGxzX3JpcGVtZDE2MC5odG1sI0hNQUMKLSAqLwotI2RlZmluZSBURVNUUyAgIDgKLXN0YXRpYyBjb25zdCB1bnNpZ25lZCBjaGFyIHJpcGVtZDE2MF90ZXN0X3N0cltURVNUU11bODFdID0KLXsKLSAgICB7ICIiIH0sCi0gICAgeyAiYSIgfSwKLSAgICB7ICJhYmMiIH0sCi0gICAgeyAibWVzc2FnZSBkaWdlc3QiIH0sCi0gICAgeyAiYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiIH0sCi0gICAgeyAiYWJjZGJjZGVjZGVmZGVmZ2VmZ2hmZ2hpZ2hpamhpamtpamtsamtsbWtsbW5sbW5vbW5vcG5vcHEiIH0sCi0gICAgeyAiQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVphYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ejAxMjM0NTY3ODkiIH0sCi0gICAgeyAiMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAiIH0sCi19OwotCi1zdGF0aWMgY29uc3Qgc2l6ZV90IHJpcGVtZDE2MF90ZXN0X3N0cmxlbltURVNUU10gPQotewotICAgIDAsIDEsIDMsIDE0LCAyNiwgNTYsIDYyLCA4MAotfTsKLQotc3RhdGljIGNvbnN0IHVuc2lnbmVkIGNoYXIgcmlwZW1kMTYwX3Rlc3RfbWRbVEVTVFNdWzIwXSA9Ci17Ci0gICAgeyAweDljLCAweDExLCAweDg1LCAweGE1LCAweGM1LCAweGU5LCAweGZjLCAweDU0LCAweDYxLCAweDI4LAotICAgICAgMHgwOCwgMHg5NywgMHg3ZSwgMHhlOCwgMHhmNSwgMHg0OCwgMHhiMiwgMHgyNSwgMHg4ZCwgMHgzMSB9LAotICAgIHsgMHgwYiwgMHhkYywgMHg5ZCwgMHgyZCwgMHgyNSwgMHg2YiwgMHgzZSwgMHhlOSwgMHhkYSwgMHhhZSwKLSAgICAgIDB4MzQsIDB4N2IsIDB4ZTYsIDB4ZjQsIDB4ZGMsIDB4ODMsIDB4NWEsIDB4NDYsIDB4N2YsIDB4ZmUgfSwKLSAgICB7IDB4OGUsIDB4YjIsIDB4MDgsIDB4ZjcsIDB4ZTAsIDB4NWQsIDB4OTgsIDB4N2EsIDB4OWIsIDB4MDQsCi0gICAgICAweDRhLCAweDhlLCAweDk4LCAweGM2LCAweGIwLCAweDg3LCAweGYxLCAweDVhLCAweDBiLCAweGZjIH0sCi0gICAgeyAweDVkLCAweDA2LCAweDg5LCAweGVmLCAweDQ5LCAweGQyLCAweGZhLCAweGU1LCAweDcyLCAweGI4LAotICAgICAgMHg4MSwgMHhiMSwgMHgyMywgMHhhOCwgMHg1ZiwgMHhmYSwgMHgyMSwgMHg1OSwgMHg1ZiwgMHgzNiB9LAotICAgIHsgMHhmNywgMHgxYywgMHgyNywgMHgxMCwgMHg5YywgMHg2OSwgMHgyYywgMHgxYiwgMHg1NiwgMHhiYiwKLSAgICAgIDB4ZGMsIDB4ZWIsIDB4NWIsIDB4OWQsIDB4MjgsIDB4NjUsIDB4YjMsIDB4NzAsIDB4OGQsIDB4YmMgfSwKLSAgICB7IDB4MTIsIDB4YTAsIDB4NTMsIDB4MzgsIDB4NGEsIDB4OWMsIDB4MGMsIDB4ODgsIDB4ZTQsIDB4MDUsCi0gICAgICAweGEwLCAweDZjLCAweDI3LCAweGRjLCAweGY0LCAweDlhLCAweGRhLCAweDYyLCAweGViLCAweDJiIH0sCi0gICAgeyAweGIwLCAweGUyLCAweDBiLCAweDZlLCAweDMxLCAweDE2LCAweDY0LCAweDAyLCAweDg2LCAweGVkLAotICAgICAgMHgzYSwgMHg4NywgMHhhNSwgMHg3MSwgMHgzMCwgMHg3OSwgMHhiMiwgMHgxZiwgMHg1MSwgMHg4OSB9LAotICAgIHsgMHg5YiwgMHg3NSwgMHgyZSwgMHg0NSwgMHg1NywgMHgzZCwgMHg0YiwgMHgzOSwgMHhmNCwgMHhkYiwKLSAgICAgIDB4ZDMsIDB4MzIsIDB4M2MsIDB4YWIsIDB4ODIsIDB4YmYsIDB4NjMsIDB4MzIsIDB4NmIsIDB4ZmIgfSwKLX07Ci0KLS8qCi0gKiBDaGVja3VwIHJvdXRpbmUKLSAqLwotaW50IG1iZWR0bHNfcmlwZW1kMTYwX3NlbGZfdGVzdChpbnQgdmVyYm9zZSkKLXsKLSAgICBpbnQgaSwgcmV0ID0gMDsKLSAgICB1bnNpZ25lZCBjaGFyIG91dHB1dFsyMF07Ci0KLSAgICBtZW1zZXQob3V0cHV0LCAwLCBzaXplb2Yob3V0cHV0KSk7Ci0KLSAgICBmb3IgKGkgPSAwOyBpIDwgVEVTVFM7IGkrKykgewotICAgICAgICBpZiAodmVyYm9zZSAhPSAwKSB7Ci0gICAgICAgICAgICBtYmVkdGxzX3ByaW50ZigiICBSSVBFTUQtMTYwIHRlc3QgIyVkOiAiLCBpICsgMSk7Ci0gICAgICAgIH0KLQotICAgICAgICByZXQgPSBtYmVkdGxzX3JpcGVtZDE2MChyaXBlbWQxNjBfdGVzdF9zdHJbaV0sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJpcGVtZDE2MF90ZXN0X3N0cmxlbltpXSwgb3V0cHV0KTsKLSAgICAgICAgaWYgKHJldCAhPSAwKSB7Ci0gICAgICAgICAgICBnb3RvIGZhaWw7Ci0gICAgICAgIH0KLQotICAgICAgICBpZiAobWVtY21wKG91dHB1dCwgcmlwZW1kMTYwX3Rlc3RfbWRbaV0sIDIwKSAhPSAwKSB7Ci0gICAgICAgICAgICByZXQgPSAxOwotICAgICAgICAgICAgZ290byBmYWlsOwotICAgICAgICB9Ci0KLSAgICAgICAgaWYgKHZlcmJvc2UgIT0gMCkgewotICAgICAgICAgICAgbWJlZHRsc19wcmludGYoInBhc3NlZFxuIik7Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICBpZiAodmVyYm9zZSAhPSAwKSB7Ci0gICAgICAgIG1iZWR0bHNfcHJpbnRmKCJcbiIpOwotICAgIH0KLQotICAgIHJldHVybiAwOwotCi1mYWlsOgotICAgIGlmICh2ZXJib3NlICE9IDApIHsKLSAgICAgICAgbWJlZHRsc19wcmludGYoImZhaWxlZFxuIik7Ci0gICAgfQotCi0gICAgcmV0dXJuIHJldDsKLX0KLQotI2VuZGlmIC8qIE1CRURUTFNfU0VMRl9URVNUICovCi0KLSNlbmRpZiAvKiBNQkVEVExTX1JJUEVNRDE2MF9DICovCmRpZmYgLS1naXQgYS9saWJyYXJ5L3JzYS5jIGIvbGlicmFyeS9yc2EuYwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggN2ViNGEyNS4uMDAwMDAwMAotLS0gYS9saWJyYXJ5L3JzYS5jCisrKyAvZGV2L251bGwKQEAgLTEsMzA2NSArMCwwIEBACi0vKgotICogIFRoZSBSU0EgcHVibGljLWtleSBjcnlwdG9zeXN0ZW0KLSAqCi0gKiAgQ29weXJpZ2h0IFRoZSBNYmVkIFRMUyBDb250cmlidXRvcnMKLSAqICBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMCBPUiBHUEwtMi4wLW9yLWxhdGVyCi0gKi8KLQotLyoKLSAqICBUaGUgZm9sbG93aW5nIHNvdXJjZXMgd2VyZSByZWZlcmVuY2VkIGluIHRoZSBkZXNpZ24gb2YgdGhpcyBpbXBsZW1lbnRhdGlvbgotICogIG9mIHRoZSBSU0EgYWxnb3JpdGhtOgotICoKLSAqICBbMV0gQSBtZXRob2QgZm9yIG9idGFpbmluZyBkaWdpdGFsIHNpZ25hdHVyZXMgYW5kIHB1YmxpYy1rZXkgY3J5cHRvc3lzdGVtcwotICogICAgICBSIFJpdmVzdCwgQSBTaGFtaXIsIGFuZCBMIEFkbGVtYW4KLSAqICAgICAgaHR0cDovL3Blb3BsZS5jc2FpbC5taXQuZWR1L3JpdmVzdC9wdWJzLmh0bWwjUlNBNzgKLSAqCi0gKiAgWzJdIEhhbmRib29rIG9mIEFwcGxpZWQgQ3J5cHRvZ3JhcGh5IC0gMTk5NywgQ2hhcHRlciA4Ci0gKiAgICAgIE1lbmV6ZXMsIHZhbiBPb3JzY2hvdCBhbmQgVmFuc3RvbmUKLSAqCi0gKiAgWzNdIE1hbHdhcmUgR3VhcmQgRXh0ZW5zaW9uOiBVc2luZyBTR1ggdG8gQ29uY2VhbCBDYWNoZSBBdHRhY2tzCi0gKiAgICAgIE1pY2hhZWwgU2Nod2FyeiwgU2FtdWVsIFdlaXNlciwgRGFuaWVsIEdydXNzLCBDbMOpbWVudGluZSBNYXVyaWNlIGFuZAotICogICAgICBTdGVmYW4gTWFuZ2FyZAotICogICAgICBodHRwczovL2FyeGl2Lm9yZy9hYnMvMTcwMi4wODcxOXYyCi0gKgotICovCi0KLSNpbmNsdWRlICJjb21tb24uaCIKLQotI2lmIGRlZmluZWQoTUJFRFRMU19SU0FfQykKLQotI2luY2x1ZGUgIm1iZWR0bHMvcnNhLmgiCi0jaW5jbHVkZSAiYmlnbnVtX2NvcmUuaCIKLSNpbmNsdWRlICJyc2FfYWx0X2hlbHBlcnMuaCIKLSNpbmNsdWRlICJyc2FfaW50ZXJuYWwuaCIKLSNpbmNsdWRlICJtYmVkdGxzL29pZC5oIgotI2luY2x1ZGUgIm1iZWR0bHMvYXNuMXdyaXRlLmgiCi0jaW5jbHVkZSAibWJlZHRscy9wbGF0Zm9ybV91dGlsLmgiCi0jaW5jbHVkZSAibWJlZHRscy9lcnJvci5oIgotI2luY2x1ZGUgImNvbnN0YW50X3RpbWVfaW50ZXJuYWwuaCIKLSNpbmNsdWRlICJtYmVkdGxzL2NvbnN0YW50X3RpbWUuaCIKLSNpbmNsdWRlICJtZF9wc2EuaCIKLQotI2luY2x1ZGUgPHN0cmluZy5oPgotCi0jaWYgZGVmaW5lZChNQkVEVExTX1BLQ1MxX1YxNSkgJiYgIWRlZmluZWQoX19PcGVuQlNEX18pICYmICFkZWZpbmVkKF9fTmV0QlNEX18pCi0jaW5jbHVkZSA8c3RkbGliLmg+Ci0jZW5kaWYKLQotI2luY2x1ZGUgIm1iZWR0bHMvcGxhdGZvcm0uaCIKLQotLyoKLSAqIFdyYXBwZXIgYXJvdW5kIG1iZWR0bHNfYXNuMV9nZXRfbXBpKCkgdGhhdCByZWplY3RzIHplcm8uCi0gKgotICogVGhlIHZhbHVlIHplcm8gaXM6Ci0gKiAtIG5ldmVyIGEgdmFsaWQgdmFsdWUgZm9yIGFuIFJTQSBwYXJhbWV0ZXIKLSAqIC0gaW50ZXJwcmV0ZWQgYXMgIm9taXR0ZWQsIHBsZWFzZSByZWNvbnN0cnVjdCIgYnkgbWJlZHRsc19yc2FfY29tcGxldGUoKS4KLSAqCi0gKiBTaW5jZSB2YWx1ZXMgY2FuJ3QgYmUgb21pdHRlZCBpbiBQS0NTIzEsIHBhc3NpbmcgYSB6ZXJvIHZhbHVlIHRvCi0gKiByc2FfY29tcGxldGUoKSB3b3VsZCBiZSBpbmNvcnJlY3QsIHNvIHJlamVjdCB6ZXJvIHZhbHVlcyBlYXJseS4KLSAqLwotc3RhdGljIGludCBhc24xX2dldF9ub256ZXJvX21waSh1bnNpZ25lZCBjaGFyICoqcCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdW5zaWduZWQgY2hhciAqZW5kLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYmVkdGxzX21waSAqWCkKLXsKLSAgICBpbnQgcmV0OwotCi0gICAgcmV0ID0gbWJlZHRsc19hc24xX2dldF9tcGkocCwgZW5kLCBYKTsKLSAgICBpZiAocmV0ICE9IDApIHsKLSAgICAgICAgcmV0dXJuIHJldDsKLSAgICB9Ci0KLSAgICBpZiAobWJlZHRsc19tcGlfY21wX2ludChYLCAwKSA9PSAwKSB7Ci0gICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9SU0FfQkFEX0lOUFVUX0RBVEE7Ci0gICAgfQotCi0gICAgcmV0dXJuIDA7Ci19Ci0KLWludCBtYmVkdGxzX3JzYV9wYXJzZV9rZXkobWJlZHRsc19yc2FfY29udGV4dCAqcnNhLCBjb25zdCB1bnNpZ25lZCBjaGFyICprZXksIHNpemVfdCBrZXlsZW4pCi17Ci0gICAgaW50IHJldCwgdmVyc2lvbjsKLSAgICBzaXplX3QgbGVuOwotICAgIHVuc2lnbmVkIGNoYXIgKnAsICplbmQ7Ci0KLSAgICBtYmVkdGxzX21waSBUOwotICAgIG1iZWR0bHNfbXBpX2luaXQoJlQpOwotCi0gICAgcCA9ICh1bnNpZ25lZCBjaGFyICopIGtleTsKLSAgICBlbmQgPSBwICsga2V5bGVuOwotCi0gICAgLyoKLSAgICAgKiBUaGlzIGZ1bmN0aW9uIHBhcnNlcyB0aGUgUlNBUHJpdmF0ZUtleSAoUEtDUyMxKQotICAgICAqCi0gICAgICogIFJTQVByaXZhdGVLZXkgOjo9IFNFUVVFTkNFIHsKLSAgICAgKiAgICAgIHZlcnNpb24gICAgICAgICAgIFZlcnNpb24sCi0gICAgICogICAgICBtb2R1bHVzICAgICAgICAgICBJTlRFR0VSLCAgLS0gbgotICAgICAqICAgICAgcHVibGljRXhwb25lbnQgICAgSU5URUdFUiwgIC0tIGUKLSAgICAgKiAgICAgIHByaXZhdGVFeHBvbmVudCAgIElOVEVHRVIsICAtLSBkCi0gICAgICogICAgICBwcmltZTEgICAgICAgICAgICBJTlRFR0VSLCAgLS0gcAotICAgICAqICAgICAgcHJpbWUyICAgICAgICAgICAgSU5URUdFUiwgIC0tIHEKLSAgICAgKiAgICAgIGV4cG9uZW50MSAgICAgICAgIElOVEVHRVIsICAtLSBkIG1vZCAocC0xKQotICAgICAqICAgICAgZXhwb25lbnQyICAgICAgICAgSU5URUdFUiwgIC0tIGQgbW9kIChxLTEpCi0gICAgICogICAgICBjb2VmZmljaWVudCAgICAgICBJTlRFR0VSLCAgLS0gKGludmVyc2Ugb2YgcSkgbW9kIHAKLSAgICAgKiAgICAgIG90aGVyUHJpbWVJbmZvcyAgIE90aGVyUHJpbWVJbmZvcyBPUFRJT05BTAotICAgICAqICB9Ci0gICAgICovCi0gICAgaWYgKChyZXQgPSBtYmVkdGxzX2FzbjFfZ2V0X3RhZygmcCwgZW5kLCAmbGVuLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTUJFRFRMU19BU04xX0NPTlNUUlVDVEVEIHwgTUJFRFRMU19BU04xX1NFUVVFTkNFKSkgIT0gMCkgewotICAgICAgICByZXR1cm4gcmV0OwotICAgIH0KLQotICAgIGlmIChlbmQgIT0gcCArIGxlbikgewotICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfUlNBX0JBRF9JTlBVVF9EQVRBOwotICAgIH0KLQotICAgIGlmICgocmV0ID0gbWJlZHRsc19hc24xX2dldF9pbnQoJnAsIGVuZCwgJnZlcnNpb24pKSAhPSAwKSB7Ci0gICAgICAgIHJldHVybiByZXQ7Ci0gICAgfQotCi0gICAgaWYgKHZlcnNpb24gIT0gMCkgewotICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfUlNBX0JBRF9JTlBVVF9EQVRBOwotICAgIH0KLQotICAgIC8qIEltcG9ydCBOICovCi0gICAgaWYgKChyZXQgPSBhc24xX2dldF9ub256ZXJvX21waSgmcCwgZW5kLCAmVCkpICE9IDAgfHwKLSAgICAgICAgKHJldCA9IG1iZWR0bHNfcnNhX2ltcG9ydChyc2EsICZULCBOVUxMLCBOVUxMLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5VTEwsIE5VTEwpKSAhPSAwKSB7Ci0gICAgICAgIGdvdG8gY2xlYW51cDsKLSAgICB9Ci0KLSAgICAvKiBJbXBvcnQgRSAqLwotICAgIGlmICgocmV0ID0gYXNuMV9nZXRfbm9uemVyb19tcGkoJnAsIGVuZCwgJlQpKSAhPSAwIHx8Ci0gICAgICAgIChyZXQgPSBtYmVkdGxzX3JzYV9pbXBvcnQocnNhLCBOVUxMLCBOVUxMLCBOVUxMLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5VTEwsICZUKSkgIT0gMCkgewotICAgICAgICBnb3RvIGNsZWFudXA7Ci0gICAgfQotCi0gICAgLyogSW1wb3J0IEQgKi8KLSAgICBpZiAoKHJldCA9IGFzbjFfZ2V0X25vbnplcm9fbXBpKCZwLCBlbmQsICZUKSkgIT0gMCB8fAotICAgICAgICAocmV0ID0gbWJlZHRsc19yc2FfaW1wb3J0KHJzYSwgTlVMTCwgTlVMTCwgTlVMTCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmVCwgTlVMTCkpICE9IDApIHsKLSAgICAgICAgZ290byBjbGVhbnVwOwotICAgIH0KLQotICAgIC8qIEltcG9ydCBQICovCi0gICAgaWYgKChyZXQgPSBhc24xX2dldF9ub256ZXJvX21waSgmcCwgZW5kLCAmVCkpICE9IDAgfHwKLSAgICAgICAgKHJldCA9IG1iZWR0bHNfcnNhX2ltcG9ydChyc2EsIE5VTEwsICZULCBOVUxMLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5VTEwsIE5VTEwpKSAhPSAwKSB7Ci0gICAgICAgIGdvdG8gY2xlYW51cDsKLSAgICB9Ci0KLSAgICAvKiBJbXBvcnQgUSAqLwotICAgIGlmICgocmV0ID0gYXNuMV9nZXRfbm9uemVyb19tcGkoJnAsIGVuZCwgJlQpKSAhPSAwIHx8Ci0gICAgICAgIChyZXQgPSBtYmVkdGxzX3JzYV9pbXBvcnQocnNhLCBOVUxMLCBOVUxMLCAmVCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOVUxMLCBOVUxMKSkgIT0gMCkgewotICAgICAgICBnb3RvIGNsZWFudXA7Ci0gICAgfQotCi0jaWYgIWRlZmluZWQoTUJFRFRMU19SU0FfTk9fQ1JUKSAmJiAhZGVmaW5lZChNQkVEVExTX1JTQV9BTFQpCi0gICAgLyoKLSAgICAgKiBUaGUgUlNBIENSVCBwYXJhbWV0ZXJzIERQLCBEUSBhbmQgUVAgYXJlIG5vbWluYWxseSByZWR1bmRhbnQsIGluCi0gICAgICogdGhhdCB0aGV5IGNhbiBiZSBlYXNpbHkgcmVjb21wdXRlZCBmcm9tIEQsIFAgYW5kIFEuIEhvd2V2ZXIgYnkKLSAgICAgKiBwYXJzaW5nIHRoZW0gZnJvbSB0aGUgUEtDUzEgc3RydWN0dXJlIGl0IGlzIHBvc3NpYmxlIHRvIGF2b2lkCi0gICAgICogcmVjYWxjdWxhdGluZyB0aGVtIHdoaWNoIGJvdGggcmVkdWNlcyB0aGUgb3ZlcmhlYWQgb2YgbG9hZGluZwotICAgICAqIFJTQSBwcml2YXRlIGtleXMgaW50byBtZW1vcnkgYW5kIGFsc28gYXZvaWRzIHNpZGUgY2hhbm5lbHMgd2hpY2gKLSAgICAgKiBjYW4gYXJpc2Ugd2hlbiBjb21wdXRpbmcgdGhvc2UgdmFsdWVzLCBzaW5jZSBhbGwgb2YgRCwgUCwgYW5kIFEKLSAgICAgKiBhcmUgc2VjcmV0LiBTZWUgaHR0cHM6Ly9lcHJpbnQuaWFjci5vcmcvMjAyMC8wNTUgZm9yIGEKLSAgICAgKiBkZXNjcmlwdGlvbiBvZiBvbmUgc3VjaCBhdHRhY2suCi0gICAgICovCi0KLSAgICAvKiBJbXBvcnQgRFAgKi8KLSAgICBpZiAoKHJldCA9IGFzbjFfZ2V0X25vbnplcm9fbXBpKCZwLCBlbmQsICZUKSkgIT0gMCB8fAotICAgICAgICAocmV0ID0gbWJlZHRsc19tcGlfY29weSgmcnNhLT5EUCwgJlQpKSAhPSAwKSB7Ci0gICAgICAgIGdvdG8gY2xlYW51cDsKLSAgICB9Ci0KLSAgICAvKiBJbXBvcnQgRFEgKi8KLSAgICBpZiAoKHJldCA9IGFzbjFfZ2V0X25vbnplcm9fbXBpKCZwLCBlbmQsICZUKSkgIT0gMCB8fAotICAgICAgICAocmV0ID0gbWJlZHRsc19tcGlfY29weSgmcnNhLT5EUSwgJlQpKSAhPSAwKSB7Ci0gICAgICAgIGdvdG8gY2xlYW51cDsKLSAgICB9Ci0KLSAgICAvKiBJbXBvcnQgUVAgKi8KLSAgICBpZiAoKHJldCA9IGFzbjFfZ2V0X25vbnplcm9fbXBpKCZwLCBlbmQsICZUKSkgIT0gMCB8fAotICAgICAgICAocmV0ID0gbWJlZHRsc19tcGlfY29weSgmcnNhLT5RUCwgJlQpKSAhPSAwKSB7Ci0gICAgICAgIGdvdG8gY2xlYW51cDsKLSAgICB9Ci0KLSNlbHNlCi0gICAgLyogVmVyaWZ5IGV4aXN0ZW5jZSBvZiB0aGUgQ1JUIHBhcmFtcyAqLwotICAgIGlmICgocmV0ID0gYXNuMV9nZXRfbm9uemVyb19tcGkoJnAsIGVuZCwgJlQpKSAhPSAwIHx8Ci0gICAgICAgIChyZXQgPSBhc24xX2dldF9ub256ZXJvX21waSgmcCwgZW5kLCAmVCkpICE9IDAgfHwKLSAgICAgICAgKHJldCA9IGFzbjFfZ2V0X25vbnplcm9fbXBpKCZwLCBlbmQsICZUKSkgIT0gMCkgewotICAgICAgICBnb3RvIGNsZWFudXA7Ci0gICAgfQotI2VuZGlmCi0KLSAgICAvKiByc2FfY29tcGxldGUoKSBkb2Vzbid0IGNvbXBsZXRlIGFueXRoaW5nIHdpdGggdGhlIGRlZmF1bHQKLSAgICAgKiBpbXBsZW1lbnRhdGlvbiBidXQgaXMgc3RpbGwgY2FsbGVkOgotICAgICAqIC0gZm9yIHRoZSBiZW5lZml0IG9mIGFsdGVybmF0aXZlIGltcGxlbWVudGF0aW9uIHRoYXQgbWF5IHdhbnQgdG8KLSAgICAgKiAgIHByZS1jb21wdXRlIHN0dWZmIGJleW9uZCB3aGF0J3MgcHJvdmlkZWQgKGVnIE1vbnRnb21lcnkgZmFjdG9ycykKLSAgICAgKiAtIGFzIGlzIGFsc28gc2FuaXR5LWNoZWNrcyB0aGUga2V5Ci0gICAgICoKLSAgICAgKiBGdXJ0aGVybW9yZSwgd2UgYWxzbyBjaGVjayB0aGUgcHVibGljIHBhcnQgZm9yIGNvbnNpc3RlbmN5IHdpdGgKLSAgICAgKiBtYmVkdGxzX3BrX3BhcnNlX3B1YmtleSgpLCBhcyBpdCBpbmNsdWRlcyBzaXplIG1pbmltYSBmb3IgZXhhbXBsZS4KLSAgICAgKi8KLSAgICBpZiAoKHJldCA9IG1iZWR0bHNfcnNhX2NvbXBsZXRlKHJzYSkpICE9IDAgfHwKLSAgICAgICAgKHJldCA9IG1iZWR0bHNfcnNhX2NoZWNrX3B1YmtleShyc2EpKSAhPSAwKSB7Ci0gICAgICAgIGdvdG8gY2xlYW51cDsKLSAgICB9Ci0KLSAgICBpZiAocCAhPSBlbmQpIHsKLSAgICAgICAgcmV0ID0gTUJFRFRMU19FUlJfQVNOMV9MRU5HVEhfTUlTTUFUQ0g7Ci0gICAgfQotCi1jbGVhbnVwOgotCi0gICAgbWJlZHRsc19tcGlfZnJlZSgmVCk7Ci0KLSAgICBpZiAocmV0ICE9IDApIHsKLSAgICAgICAgbWJlZHRsc19yc2FfZnJlZShyc2EpOwotICAgIH0KLQotICAgIHJldHVybiByZXQ7Ci19Ci0KLWludCBtYmVkdGxzX3JzYV9wYXJzZV9wdWJrZXkobWJlZHRsc19yc2FfY29udGV4dCAqcnNhLCBjb25zdCB1bnNpZ25lZCBjaGFyICprZXksIHNpemVfdCBrZXlsZW4pCi17Ci0gICAgdW5zaWduZWQgY2hhciAqcCA9ICh1bnNpZ25lZCBjaGFyICopIGtleTsKLSAgICB1bnNpZ25lZCBjaGFyICplbmQgPSAodW5zaWduZWQgY2hhciAqKSAoa2V5ICsga2V5bGVuKTsKLSAgICBpbnQgcmV0ID0gTUJFRFRMU19FUlJfRVJST1JfQ09SUlVQVElPTl9ERVRFQ1RFRDsKLSAgICBzaXplX3QgbGVuOwotCi0gICAgLyoKLSAgICAgKiAgUlNBUHVibGljS2V5IDo6PSBTRVFVRU5DRSB7Ci0gICAgICogICAgICBtb2R1bHVzICAgICAgICAgICBJTlRFR0VSLCAgLS0gbgotICAgICAqICAgICAgcHVibGljRXhwb25lbnQgICAgSU5URUdFUiAgIC0tIGUKLSAgICAgKiAgfQotICAgICAqLwotCi0gICAgaWYgKChyZXQgPSBtYmVkdGxzX2FzbjFfZ2V0X3RhZygmcCwgZW5kLCAmbGVuLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTUJFRFRMU19BU04xX0NPTlNUUlVDVEVEIHwgTUJFRFRMU19BU04xX1NFUVVFTkNFKSkgIT0gMCkgewotICAgICAgICByZXR1cm4gcmV0OwotICAgIH0KLQotICAgIGlmIChlbmQgIT0gcCArIGxlbikgewotICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfUlNBX0JBRF9JTlBVVF9EQVRBOwotICAgIH0KLQotICAgIC8qIEltcG9ydCBOICovCi0gICAgaWYgKChyZXQgPSBtYmVkdGxzX2FzbjFfZ2V0X3RhZygmcCwgZW5kLCAmbGVuLCBNQkVEVExTX0FTTjFfSU5URUdFUikpICE9IDApIHsKLSAgICAgICAgcmV0dXJuIHJldDsKLSAgICB9Ci0KLSAgICBpZiAoKHJldCA9IG1iZWR0bHNfcnNhX2ltcG9ydF9yYXcocnNhLCBwLCBsZW4sIE5VTEwsIDAsIE5VTEwsIDAsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5VTEwsIDAsIE5VTEwsIDApKSAhPSAwKSB7Ci0gICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9SU0FfQkFEX0lOUFVUX0RBVEE7Ci0gICAgfQotCi0gICAgcCArPSBsZW47Ci0KLSAgICAvKiBJbXBvcnQgRSAqLwotICAgIGlmICgocmV0ID0gbWJlZHRsc19hc24xX2dldF90YWcoJnAsIGVuZCwgJmxlbiwgTUJFRFRMU19BU04xX0lOVEVHRVIpKSAhPSAwKSB7Ci0gICAgICAgIHJldHVybiByZXQ7Ci0gICAgfQotCi0gICAgaWYgKChyZXQgPSBtYmVkdGxzX3JzYV9pbXBvcnRfcmF3KHJzYSwgTlVMTCwgMCwgTlVMTCwgMCwgTlVMTCwgMCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCwgMCwgcCwgbGVuKSkgIT0gMCkgewotICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfUlNBX0JBRF9JTlBVVF9EQVRBOwotICAgIH0KLQotICAgIHAgKz0gbGVuOwotCi0gICAgaWYgKG1iZWR0bHNfcnNhX2NvbXBsZXRlKHJzYSkgIT0gMCB8fAotICAgICAgICBtYmVkdGxzX3JzYV9jaGVja19wdWJrZXkocnNhKSAhPSAwKSB7Ci0gICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9SU0FfQkFEX0lOUFVUX0RBVEE7Ci0gICAgfQotCi0gICAgaWYgKHAgIT0gZW5kKSB7Ci0gICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9BU04xX0xFTkdUSF9NSVNNQVRDSDsKLSAgICB9Ci0KLSAgICByZXR1cm4gMDsKLX0KLQotaW50IG1iZWR0bHNfcnNhX3dyaXRlX2tleShjb25zdCBtYmVkdGxzX3JzYV9jb250ZXh0ICpyc2EsIHVuc2lnbmVkIGNoYXIgKnN0YXJ0LAotICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBjaGFyICoqcCkKLXsKLSAgICBzaXplX3QgbGVuID0gMDsKLSAgICBpbnQgcmV0OwotCi0gICAgbWJlZHRsc19tcGkgVDsgLyogVGVtcG9yYXJ5IGhvbGRpbmcgdGhlIGV4cG9ydGVkIHBhcmFtZXRlcnMgKi8KLQotICAgIC8qCi0gICAgICogRXhwb3J0IHRoZSBwYXJhbWV0ZXJzIG9uZSBhZnRlciBhbm90aGVyIHRvIGF2b2lkIHNpbXVsdGFuZW91cyBjb3BpZXMuCi0gICAgICovCi0KLSAgICBtYmVkdGxzX21waV9pbml0KCZUKTsKLQotICAgIC8qIEV4cG9ydCBRUCAqLwotICAgIGlmICgocmV0ID0gbWJlZHRsc19yc2FfZXhwb3J0X2NydChyc2EsIE5VTEwsIE5VTEwsICZUKSkgIT0gMCB8fAotICAgICAgICAocmV0ID0gbWJlZHRsc19hc24xX3dyaXRlX21waShwLCBzdGFydCwgJlQpKSA8IDApIHsKLSAgICAgICAgZ290byBlbmRfb2ZfZXhwb3J0OwotICAgIH0KLSAgICBsZW4gKz0gcmV0OwotCi0gICAgLyogRXhwb3J0IERRICovCi0gICAgaWYgKChyZXQgPSBtYmVkdGxzX3JzYV9leHBvcnRfY3J0KHJzYSwgTlVMTCwgJlQsIE5VTEwpKSAhPSAwIHx8Ci0gICAgICAgIChyZXQgPSBtYmVkdGxzX2FzbjFfd3JpdGVfbXBpKHAsIHN0YXJ0LCAmVCkpIDwgMCkgewotICAgICAgICBnb3RvIGVuZF9vZl9leHBvcnQ7Ci0gICAgfQotICAgIGxlbiArPSByZXQ7Ci0KLSAgICAvKiBFeHBvcnQgRFAgKi8KLSAgICBpZiAoKHJldCA9IG1iZWR0bHNfcnNhX2V4cG9ydF9jcnQocnNhLCAmVCwgTlVMTCwgTlVMTCkpICE9IDAgfHwKLSAgICAgICAgKHJldCA9IG1iZWR0bHNfYXNuMV93cml0ZV9tcGkocCwgc3RhcnQsICZUKSkgPCAwKSB7Ci0gICAgICAgIGdvdG8gZW5kX29mX2V4cG9ydDsKLSAgICB9Ci0gICAgbGVuICs9IHJldDsKLQotICAgIC8qIEV4cG9ydCBRICovCi0gICAgaWYgKChyZXQgPSBtYmVkdGxzX3JzYV9leHBvcnQocnNhLCBOVUxMLCBOVUxMLCAmVCwgTlVMTCwgTlVMTCkpICE9IDAgfHwKLSAgICAgICAgKHJldCA9IG1iZWR0bHNfYXNuMV93cml0ZV9tcGkocCwgc3RhcnQsICZUKSkgPCAwKSB7Ci0gICAgICAgIGdvdG8gZW5kX29mX2V4cG9ydDsKLSAgICB9Ci0gICAgbGVuICs9IHJldDsKLQotICAgIC8qIEV4cG9ydCBQICovCi0gICAgaWYgKChyZXQgPSBtYmVkdGxzX3JzYV9leHBvcnQocnNhLCBOVUxMLCAmVCwgTlVMTCwgTlVMTCwgTlVMTCkpICE9IDAgfHwKLSAgICAgICAgKHJldCA9IG1iZWR0bHNfYXNuMV93cml0ZV9tcGkocCwgc3RhcnQsICZUKSkgPCAwKSB7Ci0gICAgICAgIGdvdG8gZW5kX29mX2V4cG9ydDsKLSAgICB9Ci0gICAgbGVuICs9IHJldDsKLQotICAgIC8qIEV4cG9ydCBEICovCi0gICAgaWYgKChyZXQgPSBtYmVkdGxzX3JzYV9leHBvcnQocnNhLCBOVUxMLCBOVUxMLCBOVUxMLCAmVCwgTlVMTCkpICE9IDAgfHwKLSAgICAgICAgKHJldCA9IG1iZWR0bHNfYXNuMV93cml0ZV9tcGkocCwgc3RhcnQsICZUKSkgPCAwKSB7Ci0gICAgICAgIGdvdG8gZW5kX29mX2V4cG9ydDsKLSAgICB9Ci0gICAgbGVuICs9IHJldDsKLQotICAgIC8qIEV4cG9ydCBFICovCi0gICAgaWYgKChyZXQgPSBtYmVkdGxzX3JzYV9leHBvcnQocnNhLCBOVUxMLCBOVUxMLCBOVUxMLCBOVUxMLCAmVCkpICE9IDAgfHwKLSAgICAgICAgKHJldCA9IG1iZWR0bHNfYXNuMV93cml0ZV9tcGkocCwgc3RhcnQsICZUKSkgPCAwKSB7Ci0gICAgICAgIGdvdG8gZW5kX29mX2V4cG9ydDsKLSAgICB9Ci0gICAgbGVuICs9IHJldDsKLQotICAgIC8qIEV4cG9ydCBOICovCi0gICAgaWYgKChyZXQgPSBtYmVkdGxzX3JzYV9leHBvcnQocnNhLCAmVCwgTlVMTCwgTlVMTCwgTlVMTCwgTlVMTCkpICE9IDAgfHwKLSAgICAgICAgKHJldCA9IG1iZWR0bHNfYXNuMV93cml0ZV9tcGkocCwgc3RhcnQsICZUKSkgPCAwKSB7Ci0gICAgICAgIGdvdG8gZW5kX29mX2V4cG9ydDsKLSAgICB9Ci0gICAgbGVuICs9IHJldDsKLQotZW5kX29mX2V4cG9ydDoKLQotICAgIG1iZWR0bHNfbXBpX2ZyZWUoJlQpOwotICAgIGlmIChyZXQgPCAwKSB7Ci0gICAgICAgIHJldHVybiByZXQ7Ci0gICAgfQotCi0gICAgTUJFRFRMU19BU04xX0NIS19BREQobGVuLCBtYmVkdGxzX2FzbjFfd3JpdGVfaW50KHAsIHN0YXJ0LCAwKSk7Ci0gICAgTUJFRFRMU19BU04xX0NIS19BREQobGVuLCBtYmVkdGxzX2FzbjFfd3JpdGVfbGVuKHAsIHN0YXJ0LCBsZW4pKTsKLSAgICBNQkVEVExTX0FTTjFfQ0hLX0FERChsZW4sIG1iZWR0bHNfYXNuMV93cml0ZV90YWcocCwgc3RhcnQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1CRURUTFNfQVNOMV9DT05TVFJVQ1RFRCB8Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1CRURUTFNfQVNOMV9TRVFVRU5DRSkpOwotCi0gICAgcmV0dXJuIChpbnQpIGxlbjsKLX0KLQotLyoKLSAqICBSU0FQdWJsaWNLZXkgOjo9IFNFUVVFTkNFIHsKLSAqICAgICAgbW9kdWx1cyAgICAgICAgICAgSU5URUdFUiwgIC0tIG4KLSAqICAgICAgcHVibGljRXhwb25lbnQgICAgSU5URUdFUiAgIC0tIGUKLSAqICB9Ci0gKi8KLWludCBtYmVkdGxzX3JzYV93cml0ZV9wdWJrZXkoY29uc3QgbWJlZHRsc19yc2FfY29udGV4dCAqcnNhLCB1bnNpZ25lZCBjaGFyICpzdGFydCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgY2hhciAqKnApCi17Ci0gICAgaW50IHJldCA9IE1CRURUTFNfRVJSX0VSUk9SX0NPUlJVUFRJT05fREVURUNURUQ7Ci0gICAgc2l6ZV90IGxlbiA9IDA7Ci0gICAgbWJlZHRsc19tcGkgVDsKLQotICAgIG1iZWR0bHNfbXBpX2luaXQoJlQpOwotCi0gICAgLyogRXhwb3J0IEUgKi8KLSAgICBpZiAoKHJldCA9IG1iZWR0bHNfcnNhX2V4cG9ydChyc2EsIE5VTEwsIE5VTEwsIE5VTEwsIE5VTEwsICZUKSkgIT0gMCB8fAotICAgICAgICAocmV0ID0gbWJlZHRsc19hc24xX3dyaXRlX21waShwLCBzdGFydCwgJlQpKSA8IDApIHsKLSAgICAgICAgZ290byBlbmRfb2ZfZXhwb3J0OwotICAgIH0KLSAgICBsZW4gKz0gcmV0OwotCi0gICAgLyogRXhwb3J0IE4gKi8KLSAgICBpZiAoKHJldCA9IG1iZWR0bHNfcnNhX2V4cG9ydChyc2EsICZULCBOVUxMLCBOVUxMLCBOVUxMLCBOVUxMKSkgIT0gMCB8fAotICAgICAgICAocmV0ID0gbWJlZHRsc19hc24xX3dyaXRlX21waShwLCBzdGFydCwgJlQpKSA8IDApIHsKLSAgICAgICAgZ290byBlbmRfb2ZfZXhwb3J0OwotICAgIH0KLSAgICBsZW4gKz0gcmV0OwotCi1lbmRfb2ZfZXhwb3J0OgotCi0gICAgbWJlZHRsc19tcGlfZnJlZSgmVCk7Ci0gICAgaWYgKHJldCA8IDApIHsKLSAgICAgICAgcmV0dXJuIHJldDsKLSAgICB9Ci0KLSAgICBNQkVEVExTX0FTTjFfQ0hLX0FERChsZW4sIG1iZWR0bHNfYXNuMV93cml0ZV9sZW4ocCwgc3RhcnQsIGxlbikpOwotICAgIE1CRURUTFNfQVNOMV9DSEtfQUREKGxlbiwgbWJlZHRsc19hc24xX3dyaXRlX3RhZyhwLCBzdGFydCwgTUJFRFRMU19BU04xX0NPTlNUUlVDVEVEIHwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTUJFRFRMU19BU04xX1NFUVVFTkNFKSk7Ci0KLSAgICByZXR1cm4gKGludCkgbGVuOwotfQotCi0jaWYgZGVmaW5lZChNQkVEVExTX1BLQ1MxX1YxNSkgJiYgZGVmaW5lZChNQkVEVExTX1JTQV9DKSAmJiAhZGVmaW5lZChNQkVEVExTX1JTQV9BTFQpCi0KLS8qKiBUaGlzIGZ1bmN0aW9uIHBlcmZvcm1zIHRoZSB1bnBhZGRpbmcgcGFydCBvZiBhIFBLQ1MjMSB2MS41IGRlY3J5cHRpb24KLSAqICBvcGVyYXRpb24gKEVNRS1QS0NTMS12MV81IGRlY29kaW5nKS4KLSAqCi0gKiBcbm90ZSBUaGUgcmV0dXJuIHZhbHVlIGZyb20gdGhpcyBmdW5jdGlvbiBpcyBhIHNlbnNpdGl2ZSB2YWx1ZQotICogICAgICAgKHRoaXMgaXMgdW51c3VhbCkuICNNQkVEVExTX0VSUl9SU0FfT1VUUFVUX1RPT19MQVJHRSBzaG91bGRuJ3QgaGFwcGVuCi0gKiAgICAgICBpbiBhIHdlbGwtd3JpdHRlbiBhcHBsaWNhdGlvbiwgYnV0IDAgdnMgI01CRURUTFNfRVJSX1JTQV9JTlZBTElEX1BBRERJTkcKLSAqICAgICAgIGlzIG9mdGVuIGEgc2l0dWF0aW9uIHRoYXQgYW4gYXR0YWNrZXIgY2FuIHByb3Zva2UgYW5kIGxlYWtpbmcgd2hpY2gKLSAqICAgICAgIG9uZSBpcyB0aGUgcmVzdWx0IGlzIHByZWNpc2VseSB0aGUgaW5mb3JtYXRpb24gdGhlIGF0dGFja2VyIHdhbnRzLgotICoKLSAqIFxwYXJhbSBpbnB1dCAgICAgICAgICBUaGUgaW5wdXQgYnVmZmVyIHdoaWNoIGlzIHRoZSBwYXlsb2FkIGluc2lkZSBQS0NTIzF2MS41Ci0gKiAgICAgICAgICAgICAgICAgICAgICAgZW5jcnlwdGlvbiBwYWRkaW5nLCBjYWxsZWQgdGhlICJlbmNvZGVkIG1lc3NhZ2UgRU0iCi0gKiAgICAgICAgICAgICAgICAgICAgICAgYnkgdGhlIHRlcm1pbm9sb2d5LgotICogXHBhcmFtIGlsZW4gICAgICAgICAgIFRoZSBsZW5ndGggb2YgdGhlIHBheWxvYWQgaW4gdGhlIFxwIGlucHV0IGJ1ZmZlci4KLSAqIFxwYXJhbSBvdXRwdXQgICAgICAgICBUaGUgYnVmZmVyIGZvciB0aGUgcGF5bG9hZCwgY2FsbGVkICJtZXNzYWdlIE0iIGJ5IHRoZQotICogICAgICAgICAgICAgICAgICAgICAgIFBLQ1MjMSB0ZXJtaW5vbG9neS4gVGhpcyBtdXN0IGJlIGEgd3JpdGFibGUgYnVmZmVyIG9mCi0gKiAgICAgICAgICAgICAgICAgICAgICAgbGVuZ3RoIFxwIG91dHB1dF9tYXhfbGVuIGJ5dGVzLgotICogXHBhcmFtIG9sZW4gICAgICAgICAgIFRoZSBhZGRyZXNzIGF0IHdoaWNoIHRvIHN0b3JlIHRoZSBsZW5ndGggb2YKLSAqICAgICAgICAgICAgICAgICAgICAgICB0aGUgcGF5bG9hZC4gVGhpcyBtdXN0IG5vdCBiZSBcYyBOVUxMLgotICogXHBhcmFtIG91dHB1dF9tYXhfbGVuIFRoZSBsZW5ndGggaW4gYnl0ZXMgb2YgdGhlIG91dHB1dCBidWZmZXIgXHAgb3V0cHV0LgotICoKLSAqIFxyZXR1cm4gICAgICBcYyAwIG9uIHN1Y2Nlc3MuCi0gKiBccmV0dXJuICAgICAgI01CRURUTFNfRVJSX1JTQV9PVVRQVVRfVE9PX0xBUkdFCi0gKiAgICAgICAgICAgICAgVGhlIG91dHB1dCBidWZmZXIgaXMgdG9vIHNtYWxsIGZvciB0aGUgdW5wYWRkZWQgcGF5bG9hZC4KLSAqIFxyZXR1cm4gICAgICAjTUJFRFRMU19FUlJfUlNBX0lOVkFMSURfUEFERElORwotICogICAgICAgICAgICAgIFRoZSBpbnB1dCBkb2Vzbid0IGNvbnRhaW4gcHJvcGVybHkgZm9ybWF0dGVkIHBhZGRpbmcuCi0gKi8KLXN0YXRpYyBpbnQgbWJlZHRsc19jdF9yc2Flc19wa2NzMV92MTVfdW5wYWRkaW5nKHVuc2lnbmVkIGNoYXIgKmlucHV0LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IGlsZW4sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBjaGFyICpvdXRwdXQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3Qgb3V0cHV0X21heF9sZW4sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgKm9sZW4pCi17Ci0gICAgaW50IHJldCA9IE1CRURUTFNfRVJSX0VSUk9SX0NPUlJVUFRJT05fREVURUNURUQ7Ci0gICAgc2l6ZV90IGksIHBsYWludGV4dF9tYXhfc2l6ZTsKLQotICAgIC8qIFRoZSBmb2xsb3dpbmcgdmFyaWFibGVzIHRha2Ugc2Vuc2l0aXZlIHZhbHVlczogdGhlaXIgdmFsdWUgbXVzdAotICAgICAqIG5vdCBsZWFrIGludG8gdGhlIG9ic2VydmFibGUgYmVoYXZpb3Igb2YgdGhlIGZ1bmN0aW9uIG90aGVyIHRoYW4KLSAgICAgKiB0aGUgZGVzaWduYXRlZCBvdXRwdXRzIChvdXRwdXQsIG9sZW4sIHJldHVybiB2YWx1ZSkuIE90aGVyd2lzZQotICAgICAqIHRoaXMgd291bGQgb3BlbiB0aGUgZXhlY3V0aW9uIG9mIHRoZSBmdW5jdGlvbiB0bwotICAgICAqIHNpZGUtY2hhbm5lbC1iYXNlZCB2YXJpYW50cyBvZiB0aGUgQmxlaWNoZW5iYWNoZXIgcGFkZGluZyBvcmFjbGUKLSAgICAgKiBhdHRhY2suIFBvdGVudGlhbCBzaWRlIGNoYW5uZWxzIGluY2x1ZGUgb3ZlcmFsbCB0aW1pbmcsIG1lbW9yeQotICAgICAqIGFjY2VzcyBwYXR0ZXJucyAoZXNwZWNpYWxseSB2aXNpYmxlIHRvIGFuIGFkdmVyc2FyeSB3aG8gaGFzIGFjY2VzcwotICAgICAqIHRvIGEgc2hhcmVkIG1lbW9yeSBjYWNoZSksIGFuZCBicmFuY2hlcyAoZXNwZWNpYWxseSB2aXNpYmxlIHRvCi0gICAgICogYW4gYWR2ZXJzYXJ5IHdobyBoYXMgYWNjZXNzIHRvIGEgc2hhcmVkIGNvZGUgY2FjaGUgb3IgdG8gYSBzaGFyZWQKLSAgICAgKiBicmFuY2ggcHJlZGljdG9yKS4gKi8KLSAgICBzaXplX3QgcGFkX2NvdW50ID0gMDsKLSAgICBtYmVkdGxzX2N0X2NvbmRpdGlvbl90IGJhZDsKLSAgICBtYmVkdGxzX2N0X2NvbmRpdGlvbl90IHBhZF9kb25lOwotICAgIHNpemVfdCBwbGFpbnRleHRfc2l6ZSA9IDA7Ci0gICAgbWJlZHRsc19jdF9jb25kaXRpb25fdCBvdXRwdXRfdG9vX2xhcmdlOwotCi0gICAgcGxhaW50ZXh0X21heF9zaXplID0gKG91dHB1dF9tYXhfbGVuID4gaWxlbiAtIDExKSA/IGlsZW4gLSAxMQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IG91dHB1dF9tYXhfbGVuOwotCi0gICAgLyogQ2hlY2sgYW5kIGdldCBwYWRkaW5nIGxlbmd0aCBpbiBjb25zdGFudCB0aW1lIGFuZCBjb25zdGFudAotICAgICAqIG1lbW9yeSB0cmFjZS4gVGhlIGZpcnN0IGJ5dGUgbXVzdCBiZSAwLiAqLwotICAgIGJhZCA9IG1iZWR0bHNfY3RfYm9vbChpbnB1dFswXSk7Ci0KLQotICAgIC8qIERlY29kZSBFTUUtUEtDUzEtdjFfNSBwYWRkaW5nOiAweDAwIHx8IDB4MDIgfHwgUFMgfHwgMHgwMAotICAgICAqIHdoZXJlIFBTIG11c3QgYmUgYXQgbGVhc3QgOCBub256ZXJvIGJ5dGVzLiAqLwotICAgIGJhZCA9IG1iZWR0bHNfY3RfYm9vbF9vcihiYWQsIG1iZWR0bHNfY3RfdWludF9uZShpbnB1dFsxXSwgTUJFRFRMU19SU0FfQ1JZUFQpKTsKLQotICAgIC8qIFJlYWQgdGhlIHdob2xlIGJ1ZmZlci4gU2V0IHBhZF9kb25lIHRvIG5vbnplcm8gaWYgd2UgZmluZAotICAgICAqIHRoZSAweDAwIGJ5dGUgYW5kIHJlbWVtYmVyIHRoZSBwYWRkaW5nIGxlbmd0aCBpbiBwYWRfY291bnQuICovCi0gICAgcGFkX2RvbmUgPSBNQkVEVExTX0NUX0ZBTFNFOwotICAgIGZvciAoaSA9IDI7IGkgPCBpbGVuOyBpKyspIHsKLSAgICAgICAgbWJlZHRsc19jdF9jb25kaXRpb25fdCBmb3VuZCA9IG1iZWR0bHNfY3RfdWludF9lcShpbnB1dFtpXSwgMCk7Ci0gICAgICAgIHBhZF9kb25lICAgPSBtYmVkdGxzX2N0X2Jvb2xfb3IocGFkX2RvbmUsIGZvdW5kKTsKLSAgICAgICAgcGFkX2NvdW50ICs9IG1iZWR0bHNfY3RfdWludF9pZl9lbHNlXzAobWJlZHRsc19jdF9ib29sX25vdChwYWRfZG9uZSksIDEpOwotICAgIH0KLQotICAgIC8qIElmIHBhZF9kb25lIGlzIHN0aWxsIHplcm8sIHRoZXJlJ3Mgbm8gZGF0YSwgb25seSB1bmZpbmlzaGVkIHBhZGRpbmcuICovCi0gICAgYmFkID0gbWJlZHRsc19jdF9ib29sX29yKGJhZCwgbWJlZHRsc19jdF9ib29sX25vdChwYWRfZG9uZSkpOwotCi0gICAgLyogVGhlcmUgbXVzdCBiZSBhdCBsZWFzdCA4IGJ5dGVzIG9mIHBhZGRpbmcuICovCi0gICAgYmFkID0gbWJlZHRsc19jdF9ib29sX29yKGJhZCwgbWJlZHRsc19jdF91aW50X2d0KDgsIHBhZF9jb3VudCkpOwotCi0gICAgLyogSWYgdGhlIHBhZGRpbmcgaXMgdmFsaWQsIHNldCBwbGFpbnRleHRfc2l6ZSB0byB0aGUgbnVtYmVyIG9mCi0gICAgICogcmVtYWluaW5nIGJ5dGVzIGFmdGVyIHN0cmlwcGluZyB0aGUgcGFkZGluZy4gSWYgdGhlIHBhZGRpbmcKLSAgICAgKiBpcyBpbnZhbGlkLCBhdm9pZCBsZWFraW5nIHRoaXMgZmFjdCB0aHJvdWdoIHRoZSBzaXplIG9mIHRoZQotICAgICAqIG91dHB1dDogdXNlIHRoZSBtYXhpbXVtIG1lc3NhZ2Ugc2l6ZSB0aGF0IGZpdHMgaW4gdGhlIG91dHB1dAotICAgICAqIGJ1ZmZlci4gRG8gaXQgd2l0aG91dCBicmFuY2hlcyB0byBhdm9pZCBsZWFraW5nIHRoZSBwYWRkaW5nCi0gICAgICogdmFsaWRpdHkgdGhyb3VnaCB0aW1pbmcuIFJTQSBrZXlzIGFyZSBzbWFsbCBlbm91Z2ggdGhhdCBhbGwgdGhlCi0gICAgICogc2l6ZV90IHZhbHVlcyBpbnZvbHZlZCBmaXQgaW4gdW5zaWduZWQgaW50LiAqLwotICAgIHBsYWludGV4dF9zaXplID0gbWJlZHRsc19jdF91aW50X2lmKAotICAgICAgICBiYWQsICh1bnNpZ25lZCkgcGxhaW50ZXh0X21heF9zaXplLAotICAgICAgICAodW5zaWduZWQpIChpbGVuIC0gcGFkX2NvdW50IC0gMykpOwotCi0gICAgLyogU2V0IG91dHB1dF90b29fbGFyZ2UgdG8gMCBpZiB0aGUgcGxhaW50ZXh0IGZpdHMgaW4gdGhlIG91dHB1dAotICAgICAqIGJ1ZmZlciBhbmQgdG8gMSBvdGhlcndpc2UuICovCi0gICAgb3V0cHV0X3Rvb19sYXJnZSA9IG1iZWR0bHNfY3RfdWludF9ndChwbGFpbnRleHRfc2l6ZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBsYWludGV4dF9tYXhfc2l6ZSk7Ci0KLSAgICAvKiBTZXQgcmV0IHdpdGhvdXQgYnJhbmNoZXMgdG8gYXZvaWQgdGltaW5nIGF0dGFja3MuIFJldHVybjoKLSAgICAgKiAtIElOVkFMSURfUEFERElORyBpZiB0aGUgcGFkZGluZyBpcyBiYWQgKGJhZCAhPSAwKS4KLSAgICAgKiAtIE9VVFBVVF9UT09fTEFSR0UgaWYgdGhlIHBhZGRpbmcgaXMgZ29vZCBidXQgdGhlIGRlY3J5cHRlZAotICAgICAqICAgcGxhaW50ZXh0IGRvZXMgbm90IGZpdCBpbiB0aGUgb3V0cHV0IGJ1ZmZlci4KLSAgICAgKiAtIDAgaWYgdGhlIHBhZGRpbmcgaXMgY29ycmVjdC4gKi8KLSAgICByZXQgPSBtYmVkdGxzX2N0X2Vycm9yX2lmKAotICAgICAgICBiYWQsCi0gICAgICAgIE1CRURUTFNfRVJSX1JTQV9JTlZBTElEX1BBRERJTkcsCi0gICAgICAgIG1iZWR0bHNfY3RfZXJyb3JfaWZfZWxzZV8wKG91dHB1dF90b29fbGFyZ2UsIE1CRURUTFNfRVJSX1JTQV9PVVRQVVRfVE9PX0xBUkdFKQotICAgICAgICApOwotCi0gICAgLyogSWYgdGhlIHBhZGRpbmcgaXMgYmFkIG9yIHRoZSBwbGFpbnRleHQgaXMgdG9vIGxhcmdlLCB6ZXJvIHRoZQotICAgICAqIGRhdGEgdGhhdCB3ZSdyZSBhYm91dCB0byBjb3B5IHRvIHRoZSBvdXRwdXQgYnVmZmVyLgotICAgICAqIFdlIG5lZWQgdG8gY29weSB0aGUgc2FtZSBhbW91bnQgb2YgZGF0YQotICAgICAqIGZyb20gdGhlIHNhbWUgYnVmZmVyIHdoZXRoZXIgdGhlIHBhZGRpbmcgaXMgZ29vZCBvciBub3QgdG8KLSAgICAgKiBhdm9pZCBsZWFraW5nIHRoZSBwYWRkaW5nIHZhbGlkaXR5IHRocm91Z2ggb3ZlcmFsbCB0aW1pbmcgb3IKLSAgICAgKiB0aHJvdWdoIG1lbW9yeSBvciBjYWNoZSBhY2Nlc3MgcGF0dGVybnMuICovCi0gICAgbWJlZHRsc19jdF96ZXJvaXplX2lmKG1iZWR0bHNfY3RfYm9vbF9vcihiYWQsIG91dHB1dF90b29fbGFyZ2UpLCBpbnB1dCArIDExLCBpbGVuIC0gMTEpOwotCi0gICAgLyogSWYgdGhlIHBsYWludGV4dCBpcyB0b28gbGFyZ2UsIHRydW5jYXRlIGl0IHRvIHRoZSBidWZmZXIgc2l6ZS4KLSAgICAgKiBDb3B5IGFueXdheSB0byBhdm9pZCByZXZlYWxpbmcgdGhlIGxlbmd0aCB0aHJvdWdoIHRpbWluZywgYmVjYXVzZQotICAgICAqIHJldmVhbGluZyB0aGUgbGVuZ3RoIGlzIGFzIGJhZCBhcyByZXZlYWxpbmcgdGhlIHBhZGRpbmcgdmFsaWRpdHkKLSAgICAgKiBmb3IgYSBCbGVpY2hlbmJhY2hlciBhdHRhY2suICovCi0gICAgcGxhaW50ZXh0X3NpemUgPSBtYmVkdGxzX2N0X3VpbnRfaWYob3V0cHV0X3Rvb19sYXJnZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodW5zaWduZWQpIHBsYWludGV4dF9tYXhfc2l6ZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodW5zaWduZWQpIHBsYWludGV4dF9zaXplKTsKLQotICAgIC8qIE1vdmUgdGhlIHBsYWludGV4dCB0byB0aGUgbGVmdG1vc3QgcG9zaXRpb24gd2hlcmUgaXQgY2FuIHN0YXJ0IGluCi0gICAgICogdGhlIHdvcmtpbmcgYnVmZmVyLCBpLmUuIG1ha2UgaXQgc3RhcnQgcGxhaW50ZXh0X21heF9zaXplIGZyb20KLSAgICAgKiB0aGUgZW5kIG9mIHRoZSBidWZmZXIuIERvIHRoaXMgd2l0aCBhIG1lbW9yeSBhY2Nlc3MgdHJhY2UgdGhhdAotICAgICAqIGRvZXMgbm90IGRlcGVuZCBvbiB0aGUgcGxhaW50ZXh0IHNpemUuIEFmdGVyIHRoaXMgbW92ZSwgdGhlCi0gICAgICogc3RhcnRpbmcgbG9jYXRpb24gb2YgdGhlIHBsYWludGV4dCBpcyBubyBsb25nZXIgc2Vuc2l0aXZlCi0gICAgICogaW5mb3JtYXRpb24uICovCi0gICAgbWJlZHRsc19jdF9tZW1tb3ZlX2xlZnQoaW5wdXQgKyBpbGVuIC0gcGxhaW50ZXh0X21heF9zaXplLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBsYWludGV4dF9tYXhfc2l6ZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBwbGFpbnRleHRfbWF4X3NpemUgLSBwbGFpbnRleHRfc2l6ZSk7Ci0KLSAgICAvKiBGaW5hbGx5IGNvcHkgdGhlIGRlY3J5cHRlZCBwbGFpbnRleHQgcGx1cyB0cmFpbGluZyB6ZXJvcyBpbnRvIHRoZSBvdXRwdXQKLSAgICAgKiBidWZmZXIuIElmIG91dHB1dF9tYXhfbGVuIGlzIDAsIHRoZW4gb3V0cHV0IG1heSBiZSBhbiBpbnZhbGlkIHBvaW50ZXIKLSAgICAgKiBhbmQgdGhlIHJlc3VsdCBvZiBtZW1jcHkoKSB3b3VsZCBiZSB1bmRlZmluZWQ7IHByZXZlbnQgdW5kZWZpbmVkCi0gICAgICogYmVoYXZpb3IgbWFraW5nIHN1cmUgdG8gZGVwZW5kIG9ubHkgb24gb3V0cHV0X21heF9sZW4gKHRoZSBzaXplIG9mIHRoZQotICAgICAqIHVzZXItcHJvdmlkZWQgb3V0cHV0IGJ1ZmZlciksIHdoaWNoIGlzIGluZGVwZW5kZW50IGZyb20gcGxhaW50ZXh0Ci0gICAgICogbGVuZ3RoLCB2YWxpZGl0eSBvZiBwYWRkaW5nLCBzdWNjZXNzIG9mIHRoZSBkZWNyeXB0aW9uLCBhbmQgb3RoZXIKLSAgICAgKiBzZWNyZXRzLiAqLwotICAgIGlmIChvdXRwdXRfbWF4X2xlbiAhPSAwKSB7Ci0gICAgICAgIG1lbWNweShvdXRwdXQsIGlucHV0ICsgaWxlbiAtIHBsYWludGV4dF9tYXhfc2l6ZSwgcGxhaW50ZXh0X21heF9zaXplKTsKLSAgICB9Ci0KLSAgICAvKiBSZXBvcnQgdGhlIGFtb3VudCBvZiBkYXRhIHdlIGNvcGllZCB0byB0aGUgb3V0cHV0IGJ1ZmZlci4gSW4gY2FzZQotICAgICAqIG9mIGVycm9ycyAoYmFkIHBhZGRpbmcgb3Igb3V0cHV0IHRvbyBsYXJnZSksIHRoZSB2YWx1ZSBvZiAqb2xlbgotICAgICAqIHdoZW4gdGhpcyBmdW5jdGlvbiByZXR1cm5zIGlzIG5vdCBzcGVjaWZpZWQuIE1ha2luZyBpdCBlcXVpdmFsZW50Ci0gICAgICogdG8gdGhlIGdvb2QgY2FzZSBsaW1pdHMgdGhlIHJpc2tzIG9mIGxlYWtpbmcgdGhlIHBhZGRpbmcgdmFsaWRpdHkuICovCi0gICAgKm9sZW4gPSBwbGFpbnRleHRfc2l6ZTsKLQotICAgIHJldHVybiByZXQ7Ci19Ci0KLSNlbmRpZiAvKiBNQkVEVExTX1BLQ1MxX1YxNSAmJiBNQkVEVExTX1JTQV9DICYmICEgTUJFRFRMU19SU0FfQUxUICovCi0KLSNpZiAhZGVmaW5lZChNQkVEVExTX1JTQV9BTFQpCi0KLWludCBtYmVkdGxzX3JzYV9pbXBvcnQobWJlZHRsc19yc2FfY29udGV4dCAqY3R4LAotICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBtYmVkdGxzX21waSAqTiwKLSAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbWJlZHRsc19tcGkgKlAsIGNvbnN0IG1iZWR0bHNfbXBpICpRLAotICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBtYmVkdGxzX21waSAqRCwgY29uc3QgbWJlZHRsc19tcGkgKkUpCi17Ci0gICAgaW50IHJldCA9IE1CRURUTFNfRVJSX0VSUk9SX0NPUlJVUFRJT05fREVURUNURUQ7Ci0KLSAgICBpZiAoKE4gIT0gTlVMTCAmJiAocmV0ID0gbWJlZHRsc19tcGlfY29weSgmY3R4LT5OLCBOKSkgIT0gMCkgfHwKLSAgICAgICAgKFAgIT0gTlVMTCAmJiAocmV0ID0gbWJlZHRsc19tcGlfY29weSgmY3R4LT5QLCBQKSkgIT0gMCkgfHwKLSAgICAgICAgKFEgIT0gTlVMTCAmJiAocmV0ID0gbWJlZHRsc19tcGlfY29weSgmY3R4LT5RLCBRKSkgIT0gMCkgfHwKLSAgICAgICAgKEQgIT0gTlVMTCAmJiAocmV0ID0gbWJlZHRsc19tcGlfY29weSgmY3R4LT5ELCBEKSkgIT0gMCkgfHwKLSAgICAgICAgKEUgIT0gTlVMTCAmJiAocmV0ID0gbWJlZHRsc19tcGlfY29weSgmY3R4LT5FLCBFKSkgIT0gMCkpIHsKLSAgICAgICAgcmV0dXJuIE1CRURUTFNfRVJST1JfQUREKE1CRURUTFNfRVJSX1JTQV9CQURfSU5QVVRfREFUQSwgcmV0KTsKLSAgICB9Ci0KLSAgICBpZiAoTiAhPSBOVUxMKSB7Ci0gICAgICAgIGN0eC0+bGVuID0gbWJlZHRsc19tcGlfc2l6ZSgmY3R4LT5OKTsKLSAgICB9Ci0KLSAgICByZXR1cm4gMDsKLX0KLQotaW50IG1iZWR0bHNfcnNhX2ltcG9ydF9yYXcobWJlZHRsc19yc2FfY29udGV4dCAqY3R4LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgY2hhciBjb25zdCAqTiwgc2l6ZV90IE5fbGVuLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgY2hhciBjb25zdCAqUCwgc2l6ZV90IFBfbGVuLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgY2hhciBjb25zdCAqUSwgc2l6ZV90IFFfbGVuLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgY2hhciBjb25zdCAqRCwgc2l6ZV90IERfbGVuLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgY2hhciBjb25zdCAqRSwgc2l6ZV90IEVfbGVuKQotewotICAgIGludCByZXQgPSAwOwotCi0gICAgaWYgKE4gIT0gTlVMTCkgewotICAgICAgICBNQkVEVExTX01QSV9DSEsobWJlZHRsc19tcGlfcmVhZF9iaW5hcnkoJmN0eC0+TiwgTiwgTl9sZW4pKTsKLSAgICAgICAgY3R4LT5sZW4gPSBtYmVkdGxzX21waV9zaXplKCZjdHgtPk4pOwotICAgIH0KLQotICAgIGlmIChQICE9IE5VTEwpIHsKLSAgICAgICAgTUJFRFRMU19NUElfQ0hLKG1iZWR0bHNfbXBpX3JlYWRfYmluYXJ5KCZjdHgtPlAsIFAsIFBfbGVuKSk7Ci0gICAgfQotCi0gICAgaWYgKFEgIT0gTlVMTCkgewotICAgICAgICBNQkVEVExTX01QSV9DSEsobWJlZHRsc19tcGlfcmVhZF9iaW5hcnkoJmN0eC0+USwgUSwgUV9sZW4pKTsKLSAgICB9Ci0KLSAgICBpZiAoRCAhPSBOVUxMKSB7Ci0gICAgICAgIE1CRURUTFNfTVBJX0NISyhtYmVkdGxzX21waV9yZWFkX2JpbmFyeSgmY3R4LT5ELCBELCBEX2xlbikpOwotICAgIH0KLQotICAgIGlmIChFICE9IE5VTEwpIHsKLSAgICAgICAgTUJFRFRMU19NUElfQ0hLKG1iZWR0bHNfbXBpX3JlYWRfYmluYXJ5KCZjdHgtPkUsIEUsIEVfbGVuKSk7Ci0gICAgfQotCi1jbGVhbnVwOgotCi0gICAgaWYgKHJldCAhPSAwKSB7Ci0gICAgICAgIHJldHVybiBNQkVEVExTX0VSUk9SX0FERChNQkVEVExTX0VSUl9SU0FfQkFEX0lOUFVUX0RBVEEsIHJldCk7Ci0gICAgfQotCi0gICAgcmV0dXJuIDA7Ci19Ci0KLS8qCi0gKiBDaGVja3Mgd2hldGhlciB0aGUgY29udGV4dCBmaWVsZHMgYXJlIHNldCBpbiBzdWNoIGEgd2F5Ci0gKiB0aGF0IHRoZSBSU0EgcHJpbWl0aXZlcyB3aWxsIGJlIGFibGUgdG8gZXhlY3V0ZSB3aXRob3V0IGVycm9yLgotICogSXQgZG9lcyAqbm90KiBtYWtlIGd1YXJhbnRlZXMgZm9yIGNvbnNpc3RlbmN5IG9mIHRoZSBwYXJhbWV0ZXJzLgotICovCi1zdGF0aWMgaW50IHJzYV9jaGVja19jb250ZXh0KG1iZWR0bHNfcnNhX2NvbnRleHQgY29uc3QgKmN0eCwgaW50IGlzX3ByaXYsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBibGluZGluZ19uZWVkZWQpCi17Ci0jaWYgIWRlZmluZWQoTUJFRFRMU19SU0FfTk9fQ1JUKQotICAgIC8qIGJsaW5kaW5nX25lZWRlZCBpcyBvbmx5IHVzZWQgZm9yIE5PX0NSVCB0byBkZWNpZGUgd2hldGhlcgotICAgICAqIFAsUSBuZWVkIHRvIGJlIHByZXNlbnQgb3Igbm90LiAqLwotICAgICgodm9pZCkgYmxpbmRpbmdfbmVlZGVkKTsKLSNlbmRpZgotCi0gICAgaWYgKGN0eC0+bGVuICE9IG1iZWR0bHNfbXBpX3NpemUoJmN0eC0+TikgfHwKLSAgICAgICAgY3R4LT5sZW4gPiBNQkVEVExTX01QSV9NQVhfU0laRSkgewotICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfUlNBX0JBRF9JTlBVVF9EQVRBOwotICAgIH0KLQotICAgIC8qCi0gICAgICogMS4gTW9kdWxhciBleHBvbmVudGlhdGlvbiBuZWVkcyBwb3NpdGl2ZSwgb2RkIG1vZHVsaS4KLSAgICAgKi8KLQotICAgIC8qIE1vZHVsYXIgZXhwb25lbnRpYXRpb24gd3J0LiBOIGlzIGFsd2F5cyB1c2VkIGZvcgotICAgICAqIFJTQSBwdWJsaWMga2V5IG9wZXJhdGlvbnMuICovCi0gICAgaWYgKG1iZWR0bHNfbXBpX2NtcF9pbnQoJmN0eC0+TiwgMCkgPD0gMCB8fAotICAgICAgICBtYmVkdGxzX21waV9nZXRfYml0KCZjdHgtPk4sIDApID09IDApIHsKLSAgICAgICAgcmV0dXJuIE1CRURUTFNfRVJSX1JTQV9CQURfSU5QVVRfREFUQTsKLSAgICB9Ci0KLSNpZiAhZGVmaW5lZChNQkVEVExTX1JTQV9OT19DUlQpCi0gICAgLyogTW9kdWxhciBleHBvbmVudGlhdGlvbiBmb3IgUCBhbmQgUSBpcyBvbmx5Ci0gICAgICogdXNlZCBmb3IgcHJpdmF0ZSBrZXkgb3BlcmF0aW9ucyBhbmQgaWYgQ1JUCi0gICAgICogaXMgdXNlZC4gKi8KLSAgICBpZiAoaXNfcHJpdiAmJgotICAgICAgICAobWJlZHRsc19tcGlfY21wX2ludCgmY3R4LT5QLCAwKSA8PSAwIHx8Ci0gICAgICAgICBtYmVkdGxzX21waV9nZXRfYml0KCZjdHgtPlAsIDApID09IDAgfHwKLSAgICAgICAgIG1iZWR0bHNfbXBpX2NtcF9pbnQoJmN0eC0+USwgMCkgPD0gMCB8fAotICAgICAgICAgbWJlZHRsc19tcGlfZ2V0X2JpdCgmY3R4LT5RLCAwKSA9PSAwKSkgewotICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfUlNBX0JBRF9JTlBVVF9EQVRBOwotICAgIH0KLSNlbmRpZiAvKiAhTUJFRFRMU19SU0FfTk9fQ1JUICovCi0KLSAgICAvKgotICAgICAqIDIuIEV4cG9uZW50cyBtdXN0IGJlIHBvc2l0aXZlCi0gICAgICovCi0KLSAgICAvKiBBbHdheXMgbmVlZCBFIGZvciBwdWJsaWMga2V5IG9wZXJhdGlvbnMgKi8KLSAgICBpZiAobWJlZHRsc19tcGlfY21wX2ludCgmY3R4LT5FLCAwKSA8PSAwKSB7Ci0gICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9SU0FfQkFEX0lOUFVUX0RBVEE7Ci0gICAgfQotCi0jaWYgZGVmaW5lZChNQkVEVExTX1JTQV9OT19DUlQpCi0gICAgLyogRm9yIHByaXZhdGUga2V5IG9wZXJhdGlvbnMsIHVzZSBEIG9yIERQICYgRFEKLSAgICAgKiBhcyAodW5ibGluZGVkKSBleHBvbmVudHMuICovCi0gICAgaWYgKGlzX3ByaXYgJiYgbWJlZHRsc19tcGlfY21wX2ludCgmY3R4LT5ELCAwKSA8PSAwKSB7Ci0gICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9SU0FfQkFEX0lOUFVUX0RBVEE7Ci0gICAgfQotI2Vsc2UKLSAgICBpZiAoaXNfcHJpdiAmJgotICAgICAgICAobWJlZHRsc19tcGlfY21wX2ludCgmY3R4LT5EUCwgMCkgPD0gMCB8fAotICAgICAgICAgbWJlZHRsc19tcGlfY21wX2ludCgmY3R4LT5EUSwgMCkgPD0gMCkpIHsKLSAgICAgICAgcmV0dXJuIE1CRURUTFNfRVJSX1JTQV9CQURfSU5QVVRfREFUQTsKLSAgICB9Ci0jZW5kaWYgLyogTUJFRFRMU19SU0FfTk9fQ1JUICovCi0KLSAgICAvKiBCbGluZGluZyBzaG91bGRuJ3QgbWFrZSBleHBvbmVudHMgbmVnYXRpdmUgZWl0aGVyLAotICAgICAqIHNvIGNoZWNrIHRoYXQgUCwgUSA+PSAxIGlmIHRoYXQgaGFzbid0IHlldCBiZWVuCi0gICAgICogZG9uZSBhcyBwYXJ0IG9mIDEuICovCi0jaWYgZGVmaW5lZChNQkVEVExTX1JTQV9OT19DUlQpCi0gICAgaWYgKGlzX3ByaXYgJiYgYmxpbmRpbmdfbmVlZGVkICYmCi0gICAgICAgIChtYmVkdGxzX21waV9jbXBfaW50KCZjdHgtPlAsIDApIDw9IDAgfHwKLSAgICAgICAgIG1iZWR0bHNfbXBpX2NtcF9pbnQoJmN0eC0+USwgMCkgPD0gMCkpIHsKLSAgICAgICAgcmV0dXJuIE1CRURUTFNfRVJSX1JTQV9CQURfSU5QVVRfREFUQTsKLSAgICB9Ci0jZW5kaWYKLQotICAgIC8qIEl0IHdvdWxkbid0IGxlYWQgdG8gYW4gZXJyb3IgaWYgaXQgd2Fzbid0IHNhdGlzZmllZCwKLSAgICAgKiBidXQgY2hlY2sgZm9yIFFQID49IDEgbm9uZXRoZWxlc3MuICovCi0jaWYgIWRlZmluZWQoTUJFRFRMU19SU0FfTk9fQ1JUKQotICAgIGlmIChpc19wcml2ICYmCi0gICAgICAgIG1iZWR0bHNfbXBpX2NtcF9pbnQoJmN0eC0+UVAsIDApIDw9IDApIHsKLSAgICAgICAgcmV0dXJuIE1CRURUTFNfRVJSX1JTQV9CQURfSU5QVVRfREFUQTsKLSAgICB9Ci0jZW5kaWYKLQotICAgIHJldHVybiAwOwotfQotCi1pbnQgbWJlZHRsc19yc2FfY29tcGxldGUobWJlZHRsc19yc2FfY29udGV4dCAqY3R4KQotewotICAgIGludCByZXQgPSAwOwotICAgIGludCBoYXZlX04sIGhhdmVfUCwgaGF2ZV9RLCBoYXZlX0QsIGhhdmVfRTsKLSNpZiAhZGVmaW5lZChNQkVEVExTX1JTQV9OT19DUlQpCi0gICAgaW50IGhhdmVfRFAsIGhhdmVfRFEsIGhhdmVfUVA7Ci0jZW5kaWYKLSAgICBpbnQgbl9taXNzaW5nLCBwcV9taXNzaW5nLCBkX21pc3NpbmcsIGlzX3B1YiwgaXNfcHJpdjsKLQotICAgIGhhdmVfTiA9IChtYmVkdGxzX21waV9jbXBfaW50KCZjdHgtPk4sIDApICE9IDApOwotICAgIGhhdmVfUCA9IChtYmVkdGxzX21waV9jbXBfaW50KCZjdHgtPlAsIDApICE9IDApOwotICAgIGhhdmVfUSA9IChtYmVkdGxzX21waV9jbXBfaW50KCZjdHgtPlEsIDApICE9IDApOwotICAgIGhhdmVfRCA9IChtYmVkdGxzX21waV9jbXBfaW50KCZjdHgtPkQsIDApICE9IDApOwotICAgIGhhdmVfRSA9IChtYmVkdGxzX21waV9jbXBfaW50KCZjdHgtPkUsIDApICE9IDApOwotCi0jaWYgIWRlZmluZWQoTUJFRFRMU19SU0FfTk9fQ1JUKQotICAgIGhhdmVfRFAgPSAobWJlZHRsc19tcGlfY21wX2ludCgmY3R4LT5EUCwgMCkgIT0gMCk7Ci0gICAgaGF2ZV9EUSA9IChtYmVkdGxzX21waV9jbXBfaW50KCZjdHgtPkRRLCAwKSAhPSAwKTsKLSAgICBoYXZlX1FQID0gKG1iZWR0bHNfbXBpX2NtcF9pbnQoJmN0eC0+UVAsIDApICE9IDApOwotI2VuZGlmCi0KLSAgICAvKgotICAgICAqIENoZWNrIHdoZXRoZXIgcHJvdmlkZWQgcGFyYW1ldGVycyBhcmUgZW5vdWdoCi0gICAgICogdG8gZGVkdWNlIGFsbCBvdGhlcnMuIFRoZSBmb2xsb3dpbmcgaW5jb21wbGV0ZQotICAgICAqIHBhcmFtZXRlciBzZXRzIGZvciBwcml2YXRlIGtleXMgYXJlIHN1cHBvcnRlZDoKLSAgICAgKgotICAgICAqICgxKSBQLCBRIG1pc3NpbmcuCi0gICAgICogKDIpIEQgYW5kIHBvdGVudGlhbGx5IE4gbWlzc2luZy4KLSAgICAgKgotICAgICAqLwotCi0gICAgbl9taXNzaW5nICA9ICAgICAgICAgICAgICBoYXZlX1AgJiYgIGhhdmVfUSAmJiAgaGF2ZV9EICYmIGhhdmVfRTsKLSAgICBwcV9taXNzaW5nID0gICBoYXZlX04gJiYgIWhhdmVfUCAmJiAhaGF2ZV9RICYmICBoYXZlX0QgJiYgaGF2ZV9FOwotICAgIGRfbWlzc2luZyAgPSAgICAgICAgICAgICAgaGF2ZV9QICYmICBoYXZlX1EgJiYgIWhhdmVfRCAmJiBoYXZlX0U7Ci0gICAgaXNfcHViICAgICA9ICAgaGF2ZV9OICYmICFoYXZlX1AgJiYgIWhhdmVfUSAmJiAhaGF2ZV9EICYmIGhhdmVfRTsKLQotICAgIC8qIFRoZXNlIHRocmVlIGFsdGVybmF0aXZlcyBhcmUgbXV0dWFsbHkgZXhjbHVzaXZlICovCi0gICAgaXNfcHJpdiA9IG5fbWlzc2luZyB8fCBwcV9taXNzaW5nIHx8IGRfbWlzc2luZzsKLQotICAgIGlmICghaXNfcHJpdiAmJiAhaXNfcHViKSB7Ci0gICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9SU0FfQkFEX0lOUFVUX0RBVEE7Ci0gICAgfQotCi0gICAgLyoKLSAgICAgKiBTdGVwIDE6IERlZHVjZSBOIGlmIFAsIFEgYXJlIHByb3ZpZGVkLgotICAgICAqLwotCi0gICAgaWYgKCFoYXZlX04gJiYgaGF2ZV9QICYmIGhhdmVfUSkgewotICAgICAgICBpZiAoKHJldCA9IG1iZWR0bHNfbXBpX211bF9tcGkoJmN0eC0+TiwgJmN0eC0+UCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZjdHgtPlEpKSAhPSAwKSB7Ci0gICAgICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJPUl9BREQoTUJFRFRMU19FUlJfUlNBX0JBRF9JTlBVVF9EQVRBLCByZXQpOwotICAgICAgICB9Ci0KLSAgICAgICAgY3R4LT5sZW4gPSBtYmVkdGxzX21waV9zaXplKCZjdHgtPk4pOwotICAgIH0KLQotICAgIC8qCi0gICAgICogU3RlcCAyOiBEZWR1Y2UgYW5kIHZlcmlmeSBhbGwgcmVtYWluaW5nIGNvcmUgcGFyYW1ldGVycy4KLSAgICAgKi8KLQotICAgIGlmIChwcV9taXNzaW5nKSB7Ci0gICAgICAgIHJldCA9IG1iZWR0bHNfcnNhX2RlZHVjZV9wcmltZXMoJmN0eC0+TiwgJmN0eC0+RSwgJmN0eC0+RCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmY3R4LT5QLCAmY3R4LT5RKTsKLSAgICAgICAgaWYgKHJldCAhPSAwKSB7Ci0gICAgICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJPUl9BREQoTUJFRFRMU19FUlJfUlNBX0JBRF9JTlBVVF9EQVRBLCByZXQpOwotICAgICAgICB9Ci0KLSAgICB9IGVsc2UgaWYgKGRfbWlzc2luZykgewotICAgICAgICBpZiAoKHJldCA9IG1iZWR0bHNfcnNhX2RlZHVjZV9wcml2YXRlX2V4cG9uZW50KCZjdHgtPlAsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJmN0eC0+USwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmY3R4LT5FLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZjdHgtPkQpKSAhPSAwKSB7Ci0gICAgICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJPUl9BREQoTUJFRFRMU19FUlJfUlNBX0JBRF9JTlBVVF9EQVRBLCByZXQpOwotICAgICAgICB9Ci0gICAgfQotCi0gICAgLyoKLSAgICAgKiBTdGVwIDM6IERlZHVjZSBhbGwgYWRkaXRpb25hbCBwYXJhbWV0ZXJzIHNwZWNpZmljCi0gICAgICogICAgICAgICB0byBvdXIgY3VycmVudCBSU0EgaW1wbGVtZW50YXRpb24uCi0gICAgICovCi0KLSNpZiAhZGVmaW5lZChNQkVEVExTX1JTQV9OT19DUlQpCi0gICAgaWYgKGlzX3ByaXYgJiYgIShoYXZlX0RQICYmIGhhdmVfRFEgJiYgaGF2ZV9RUCkpIHsKLSAgICAgICAgcmV0ID0gbWJlZHRsc19yc2FfZGVkdWNlX2NydCgmY3R4LT5QLCAgJmN0eC0+USwgICZjdHgtPkQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJmN0eC0+RFAsICZjdHgtPkRRLCAmY3R4LT5RUCk7Ci0gICAgICAgIGlmIChyZXQgIT0gMCkgewotICAgICAgICAgICAgcmV0dXJuIE1CRURUTFNfRVJST1JfQUREKE1CRURUTFNfRVJSX1JTQV9CQURfSU5QVVRfREFUQSwgcmV0KTsKLSAgICAgICAgfQotICAgIH0KLSNlbmRpZiAvKiBNQkVEVExTX1JTQV9OT19DUlQgKi8KLQotICAgIC8qCi0gICAgICogU3RlcCAzOiBCYXNpYyBzYW5pdHkgY2hlY2tzCi0gICAgICovCi0KLSAgICByZXR1cm4gcnNhX2NoZWNrX2NvbnRleHQoY3R4LCBpc19wcml2LCAxKTsKLX0KLQotaW50IG1iZWR0bHNfcnNhX2V4cG9ydF9yYXcoY29uc3QgbWJlZHRsc19yc2FfY29udGV4dCAqY3R4LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgY2hhciAqTiwgc2l6ZV90IE5fbGVuLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgY2hhciAqUCwgc2l6ZV90IFBfbGVuLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgY2hhciAqUSwgc2l6ZV90IFFfbGVuLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgY2hhciAqRCwgc2l6ZV90IERfbGVuLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgY2hhciAqRSwgc2l6ZV90IEVfbGVuKQotewotICAgIGludCByZXQgPSAwOwotICAgIGludCBpc19wcml2OwotCi0gICAgLyogQ2hlY2sgaWYga2V5IGlzIHByaXZhdGUgb3IgcHVibGljICovCi0gICAgaXNfcHJpdiA9Ci0gICAgICAgIG1iZWR0bHNfbXBpX2NtcF9pbnQoJmN0eC0+TiwgMCkgIT0gMCAmJgotICAgICAgICBtYmVkdGxzX21waV9jbXBfaW50KCZjdHgtPlAsIDApICE9IDAgJiYKLSAgICAgICAgbWJlZHRsc19tcGlfY21wX2ludCgmY3R4LT5RLCAwKSAhPSAwICYmCi0gICAgICAgIG1iZWR0bHNfbXBpX2NtcF9pbnQoJmN0eC0+RCwgMCkgIT0gMCAmJgotICAgICAgICBtYmVkdGxzX21waV9jbXBfaW50KCZjdHgtPkUsIDApICE9IDA7Ci0KLSAgICBpZiAoIWlzX3ByaXYpIHsKLSAgICAgICAgLyogSWYgd2UncmUgdHJ5aW5nIHRvIGV4cG9ydCBwcml2YXRlIHBhcmFtZXRlcnMgZm9yIGEgcHVibGljIGtleSwKLSAgICAgICAgICogc29tZXRoaW5nIG11c3QgYmUgd3JvbmcuICovCi0gICAgICAgIGlmIChQICE9IE5VTEwgfHwgUSAhPSBOVUxMIHx8IEQgIT0gTlVMTCkgewotICAgICAgICAgICAgcmV0dXJuIE1CRURUTFNfRVJSX1JTQV9CQURfSU5QVVRfREFUQTsKLSAgICAgICAgfQotCi0gICAgfQotCi0gICAgaWYgKE4gIT0gTlVMTCkgewotICAgICAgICBNQkVEVExTX01QSV9DSEsobWJlZHRsc19tcGlfd3JpdGVfYmluYXJ5KCZjdHgtPk4sIE4sIE5fbGVuKSk7Ci0gICAgfQotCi0gICAgaWYgKFAgIT0gTlVMTCkgewotICAgICAgICBNQkVEVExTX01QSV9DSEsobWJlZHRsc19tcGlfd3JpdGVfYmluYXJ5KCZjdHgtPlAsIFAsIFBfbGVuKSk7Ci0gICAgfQotCi0gICAgaWYgKFEgIT0gTlVMTCkgewotICAgICAgICBNQkVEVExTX01QSV9DSEsobWJlZHRsc19tcGlfd3JpdGVfYmluYXJ5KCZjdHgtPlEsIFEsIFFfbGVuKSk7Ci0gICAgfQotCi0gICAgaWYgKEQgIT0gTlVMTCkgewotICAgICAgICBNQkVEVExTX01QSV9DSEsobWJlZHRsc19tcGlfd3JpdGVfYmluYXJ5KCZjdHgtPkQsIEQsIERfbGVuKSk7Ci0gICAgfQotCi0gICAgaWYgKEUgIT0gTlVMTCkgewotICAgICAgICBNQkVEVExTX01QSV9DSEsobWJlZHRsc19tcGlfd3JpdGVfYmluYXJ5KCZjdHgtPkUsIEUsIEVfbGVuKSk7Ci0gICAgfQotCi1jbGVhbnVwOgotCi0gICAgcmV0dXJuIHJldDsKLX0KLQotaW50IG1iZWR0bHNfcnNhX2V4cG9ydChjb25zdCBtYmVkdGxzX3JzYV9jb250ZXh0ICpjdHgsCi0gICAgICAgICAgICAgICAgICAgICAgIG1iZWR0bHNfbXBpICpOLCBtYmVkdGxzX21waSAqUCwgbWJlZHRsc19tcGkgKlEsCi0gICAgICAgICAgICAgICAgICAgICAgIG1iZWR0bHNfbXBpICpELCBtYmVkdGxzX21waSAqRSkKLXsKLSAgICBpbnQgcmV0ID0gTUJFRFRMU19FUlJfRVJST1JfQ09SUlVQVElPTl9ERVRFQ1RFRDsKLSAgICBpbnQgaXNfcHJpdjsKLQotICAgIC8qIENoZWNrIGlmIGtleSBpcyBwcml2YXRlIG9yIHB1YmxpYyAqLwotICAgIGlzX3ByaXYgPQotICAgICAgICBtYmVkdGxzX21waV9jbXBfaW50KCZjdHgtPk4sIDApICE9IDAgJiYKLSAgICAgICAgbWJlZHRsc19tcGlfY21wX2ludCgmY3R4LT5QLCAwKSAhPSAwICYmCi0gICAgICAgIG1iZWR0bHNfbXBpX2NtcF9pbnQoJmN0eC0+USwgMCkgIT0gMCAmJgotICAgICAgICBtYmVkdGxzX21waV9jbXBfaW50KCZjdHgtPkQsIDApICE9IDAgJiYKLSAgICAgICAgbWJlZHRsc19tcGlfY21wX2ludCgmY3R4LT5FLCAwKSAhPSAwOwotCi0gICAgaWYgKCFpc19wcml2KSB7Ci0gICAgICAgIC8qIElmIHdlJ3JlIHRyeWluZyB0byBleHBvcnQgcHJpdmF0ZSBwYXJhbWV0ZXJzIGZvciBhIHB1YmxpYyBrZXksCi0gICAgICAgICAqIHNvbWV0aGluZyBtdXN0IGJlIHdyb25nLiAqLwotICAgICAgICBpZiAoUCAhPSBOVUxMIHx8IFEgIT0gTlVMTCB8fCBEICE9IE5VTEwpIHsKLSAgICAgICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9SU0FfQkFEX0lOUFVUX0RBVEE7Ci0gICAgICAgIH0KLQotICAgIH0KLQotICAgIC8qIEV4cG9ydCBhbGwgcmVxdWVzdGVkIGNvcmUgcGFyYW1ldGVycy4gKi8KLQotICAgIGlmICgoTiAhPSBOVUxMICYmIChyZXQgPSBtYmVkdGxzX21waV9jb3B5KE4sICZjdHgtPk4pKSAhPSAwKSB8fAotICAgICAgICAoUCAhPSBOVUxMICYmIChyZXQgPSBtYmVkdGxzX21waV9jb3B5KFAsICZjdHgtPlApKSAhPSAwKSB8fAotICAgICAgICAoUSAhPSBOVUxMICYmIChyZXQgPSBtYmVkdGxzX21waV9jb3B5KFEsICZjdHgtPlEpKSAhPSAwKSB8fAotICAgICAgICAoRCAhPSBOVUxMICYmIChyZXQgPSBtYmVkdGxzX21waV9jb3B5KEQsICZjdHgtPkQpKSAhPSAwKSB8fAotICAgICAgICAoRSAhPSBOVUxMICYmIChyZXQgPSBtYmVkdGxzX21waV9jb3B5KEUsICZjdHgtPkUpKSAhPSAwKSkgewotICAgICAgICByZXR1cm4gcmV0OwotICAgIH0KLQotICAgIHJldHVybiAwOwotfQotCi0vKgotICogRXhwb3J0IENSVCBwYXJhbWV0ZXJzCi0gKiBUaGlzIG11c3QgYWxzbyBiZSBpbXBsZW1lbnRlZCBpZiBDUlQgaXMgbm90IHVzZWQsIGZvciBiZWluZyBhYmxlIHRvCi0gKiB3cml0ZSBERVIgZW5jb2RlZCBSU0Ega2V5cy4gVGhlIGhlbHBlciBmdW5jdGlvbiBtYmVkdGxzX3JzYV9kZWR1Y2VfY3J0Ci0gKiBjYW4gYmUgdXNlZCBpbiB0aGlzIGNhc2UuCi0gKi8KLWludCBtYmVkdGxzX3JzYV9leHBvcnRfY3J0KGNvbnN0IG1iZWR0bHNfcnNhX2NvbnRleHQgKmN0eCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIG1iZWR0bHNfbXBpICpEUCwgbWJlZHRsc19tcGkgKkRRLCBtYmVkdGxzX21waSAqUVApCi17Ci0gICAgaW50IHJldCA9IE1CRURUTFNfRVJSX0VSUk9SX0NPUlJVUFRJT05fREVURUNURUQ7Ci0gICAgaW50IGlzX3ByaXY7Ci0KLSAgICAvKiBDaGVjayBpZiBrZXkgaXMgcHJpdmF0ZSBvciBwdWJsaWMgKi8KLSAgICBpc19wcml2ID0KLSAgICAgICAgbWJlZHRsc19tcGlfY21wX2ludCgmY3R4LT5OLCAwKSAhPSAwICYmCi0gICAgICAgIG1iZWR0bHNfbXBpX2NtcF9pbnQoJmN0eC0+UCwgMCkgIT0gMCAmJgotICAgICAgICBtYmVkdGxzX21waV9jbXBfaW50KCZjdHgtPlEsIDApICE9IDAgJiYKLSAgICAgICAgbWJlZHRsc19tcGlfY21wX2ludCgmY3R4LT5ELCAwKSAhPSAwICYmCi0gICAgICAgIG1iZWR0bHNfbXBpX2NtcF9pbnQoJmN0eC0+RSwgMCkgIT0gMDsKLQotICAgIGlmICghaXNfcHJpdikgewotICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfUlNBX0JBRF9JTlBVVF9EQVRBOwotICAgIH0KLQotI2lmICFkZWZpbmVkKE1CRURUTFNfUlNBX05PX0NSVCkKLSAgICAvKiBFeHBvcnQgYWxsIHJlcXVlc3RlZCBibGluZGluZyBwYXJhbWV0ZXJzLiAqLwotICAgIGlmICgoRFAgIT0gTlVMTCAmJiAocmV0ID0gbWJlZHRsc19tcGlfY29weShEUCwgJmN0eC0+RFApKSAhPSAwKSB8fAotICAgICAgICAoRFEgIT0gTlVMTCAmJiAocmV0ID0gbWJlZHRsc19tcGlfY29weShEUSwgJmN0eC0+RFEpKSAhPSAwKSB8fAotICAgICAgICAoUVAgIT0gTlVMTCAmJiAocmV0ID0gbWJlZHRsc19tcGlfY29weShRUCwgJmN0eC0+UVApKSAhPSAwKSkgewotICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJPUl9BREQoTUJFRFRMU19FUlJfUlNBX0JBRF9JTlBVVF9EQVRBLCByZXQpOwotICAgIH0KLSNlbHNlCi0gICAgaWYgKChyZXQgPSBtYmVkdGxzX3JzYV9kZWR1Y2VfY3J0KCZjdHgtPlAsICZjdHgtPlEsICZjdHgtPkQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIERQLCBEUSwgUVApKSAhPSAwKSB7Ci0gICAgICAgIHJldHVybiBNQkVEVExTX0VSUk9SX0FERChNQkVEVExTX0VSUl9SU0FfQkFEX0lOUFVUX0RBVEEsIHJldCk7Ci0gICAgfQotI2VuZGlmCi0KLSAgICByZXR1cm4gMDsKLX0KLQotLyoKLSAqIEluaXRpYWxpemUgYW4gUlNBIGNvbnRleHQKLSAqLwotdm9pZCBtYmVkdGxzX3JzYV9pbml0KG1iZWR0bHNfcnNhX2NvbnRleHQgKmN0eCkKLXsKLSAgICBtZW1zZXQoY3R4LCAwLCBzaXplb2YobWJlZHRsc19yc2FfY29udGV4dCkpOwotCi0gICAgY3R4LT5wYWRkaW5nID0gTUJFRFRMU19SU0FfUEtDU19WMTU7Ci0gICAgY3R4LT5oYXNoX2lkID0gTUJFRFRMU19NRF9OT05FOwotCi0jaWYgZGVmaW5lZChNQkVEVExTX1RIUkVBRElOR19DKQotICAgIC8qIFNldCBjdHgtPnZlciB0byBub256ZXJvIHRvIGluZGljYXRlIHRoYXQgdGhlIG11dGV4IGhhcyBiZWVuCi0gICAgICogaW5pdGlhbGl6ZWQgYW5kIHdpbGwgbmVlZCB0byBiZSBmcmVlZC4gKi8KLSAgICBjdHgtPnZlciA9IDE7Ci0gICAgbWJlZHRsc19tdXRleF9pbml0KCZjdHgtPm11dGV4KTsKLSNlbmRpZgotfQotCi0vKgotICogU2V0IHBhZGRpbmcgZm9yIGFuIGV4aXN0aW5nIFJTQSBjb250ZXh0Ci0gKi8KLWludCBtYmVkdGxzX3JzYV9zZXRfcGFkZGluZyhtYmVkdGxzX3JzYV9jb250ZXh0ICpjdHgsIGludCBwYWRkaW5nLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1iZWR0bHNfbWRfdHlwZV90IGhhc2hfaWQpCi17Ci0gICAgc3dpdGNoIChwYWRkaW5nKSB7Ci0jaWYgZGVmaW5lZChNQkVEVExTX1BLQ1MxX1YxNSkKLSAgICAgICAgY2FzZSBNQkVEVExTX1JTQV9QS0NTX1YxNToKLSAgICAgICAgICAgIGJyZWFrOwotI2VuZGlmCi0KLSNpZiBkZWZpbmVkKE1CRURUTFNfUEtDUzFfVjIxKQotICAgICAgICBjYXNlIE1CRURUTFNfUlNBX1BLQ1NfVjIxOgotICAgICAgICAgICAgYnJlYWs7Ci0jZW5kaWYKLSAgICAgICAgZGVmYXVsdDoKLSAgICAgICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9SU0FfSU5WQUxJRF9QQURESU5HOwotICAgIH0KLQotI2lmIGRlZmluZWQoTUJFRFRMU19QS0NTMV9WMjEpCi0gICAgaWYgKChwYWRkaW5nID09IE1CRURUTFNfUlNBX1BLQ1NfVjIxKSAmJgotICAgICAgICAoaGFzaF9pZCAhPSBNQkVEVExTX01EX05PTkUpKSB7Ci0gICAgICAgIC8qIEp1c3QgbWFrZSBzdXJlIHRoaXMgaGFzaCBpcyBzdXBwb3J0ZWQgaW4gdGhpcyBidWlsZC4gKi8KLSAgICAgICAgaWYgKG1iZWR0bHNfbWRfaW5mb19mcm9tX3R5cGUoaGFzaF9pZCkgPT0gTlVMTCkgewotICAgICAgICAgICAgcmV0dXJuIE1CRURUTFNfRVJSX1JTQV9JTlZBTElEX1BBRERJTkc7Ci0gICAgICAgIH0KLSAgICB9Ci0jZW5kaWYgLyogTUJFRFRMU19QS0NTMV9WMjEgKi8KLQotICAgIGN0eC0+cGFkZGluZyA9IHBhZGRpbmc7Ci0gICAgY3R4LT5oYXNoX2lkID0gaGFzaF9pZDsKLQotICAgIHJldHVybiAwOwotfQotCi0vKgotICogR2V0IHBhZGRpbmcgbW9kZSBvZiBpbml0aWFsaXplZCBSU0EgY29udGV4dAotICovCi1pbnQgbWJlZHRsc19yc2FfZ2V0X3BhZGRpbmdfbW9kZShjb25zdCBtYmVkdGxzX3JzYV9jb250ZXh0ICpjdHgpCi17Ci0gICAgcmV0dXJuIGN0eC0+cGFkZGluZzsKLX0KLQotLyoKLSAqIEdldCBoYXNoIGlkZW50aWZpZXIgb2YgbWJlZHRsc19tZF90eXBlX3QgdHlwZQotICovCi1pbnQgbWJlZHRsc19yc2FfZ2V0X21kX2FsZyhjb25zdCBtYmVkdGxzX3JzYV9jb250ZXh0ICpjdHgpCi17Ci0gICAgcmV0dXJuIGN0eC0+aGFzaF9pZDsKLX0KLQotLyoKLSAqIEdldCBsZW5ndGggaW4gYml0cyBvZiBSU0EgbW9kdWx1cwotICovCi1zaXplX3QgbWJlZHRsc19yc2FfZ2V0X2JpdGxlbihjb25zdCBtYmVkdGxzX3JzYV9jb250ZXh0ICpjdHgpCi17Ci0gICAgcmV0dXJuIG1iZWR0bHNfbXBpX2JpdGxlbigmY3R4LT5OKTsKLX0KLQotLyoKLSAqIEdldCBsZW5ndGggaW4gYnl0ZXMgb2YgUlNBIG1vZHVsdXMKLSAqLwotc2l6ZV90IG1iZWR0bHNfcnNhX2dldF9sZW4oY29uc3QgbWJlZHRsc19yc2FfY29udGV4dCAqY3R4KQotewotICAgIHJldHVybiBjdHgtPmxlbjsKLX0KLQotI2lmIGRlZmluZWQoTUJFRFRMU19HRU5QUklNRSkKLQotLyoKLSAqIEdlbmVyYXRlIGFuIFJTQSBrZXlwYWlyCi0gKgotICogVGhpcyBnZW5lcmF0aW9uIG1ldGhvZCBmb2xsb3dzIHRoZSBSU0Ega2V5IHBhaXIgZ2VuZXJhdGlvbiBwcm9jZWR1cmUgb2YKLSAqIEZJUFMgMTg2LTQgaWYgMl4xNiA8IGV4cG9uZW50IDwgMl4yNTYgYW5kIG5iaXRzID0gMjA0OCBvciBuYml0cyA9IDMwNzIuCi0gKi8KLWludCBtYmVkdGxzX3JzYV9nZW5fa2V5KG1iZWR0bHNfcnNhX2NvbnRleHQgKmN0eCwKLSAgICAgICAgICAgICAgICAgICAgICAgIGludCAoKmZfcm5nKSh2b2lkICosIHVuc2lnbmVkIGNoYXIgKiwgc2l6ZV90KSwKLSAgICAgICAgICAgICAgICAgICAgICAgIHZvaWQgKnBfcm5nLAotICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50IG5iaXRzLCBpbnQgZXhwb25lbnQpCi17Ci0gICAgaW50IHJldCA9IE1CRURUTFNfRVJSX0VSUk9SX0NPUlJVUFRJT05fREVURUNURUQ7Ci0gICAgbWJlZHRsc19tcGkgSCwgRywgTDsKLSAgICBpbnQgcHJpbWVfcXVhbGl0eSA9IDA7Ci0KLSAgICAvKgotICAgICAqIElmIHRoZSBtb2R1bHVzIGlzIDEwMjQgYml0IGxvbmcgb3Igc2hvcnRlciwgdGhlbiB0aGUgc2VjdXJpdHkgc3RyZW5ndGggb2YKLSAgICAgKiB0aGUgUlNBIGFsZ29yaXRobSBpcyBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gODAgYml0cyBhbmQgdGhlcmVmb3JlIGFuIGVycm9yCi0gICAgICogcmF0ZSBvZiAyXi04MCBpcyBzdWZmaWNpZW50LgotICAgICAqLwotICAgIGlmIChuYml0cyA+IDEwMjQpIHsKLSAgICAgICAgcHJpbWVfcXVhbGl0eSA9IE1CRURUTFNfTVBJX0dFTl9QUklNRV9GTEFHX0xPV19FUlI7Ci0gICAgfQotCi0gICAgbWJlZHRsc19tcGlfaW5pdCgmSCk7Ci0gICAgbWJlZHRsc19tcGlfaW5pdCgmRyk7Ci0gICAgbWJlZHRsc19tcGlfaW5pdCgmTCk7Ci0KLSAgICBpZiAoZXhwb25lbnQgPCAzIHx8IG5iaXRzICUgMiAhPSAwKSB7Ci0gICAgICAgIHJldCA9IE1CRURUTFNfRVJSX1JTQV9CQURfSU5QVVRfREFUQTsKLSAgICAgICAgZ290byBjbGVhbnVwOwotICAgIH0KLQotICAgIGlmIChuYml0cyA8IE1CRURUTFNfUlNBX0dFTl9LRVlfTUlOX0JJVFMpIHsKLSAgICAgICAgcmV0ID0gTUJFRFRMU19FUlJfUlNBX0JBRF9JTlBVVF9EQVRBOwotICAgICAgICBnb3RvIGNsZWFudXA7Ci0gICAgfQotCi0gICAgLyoKLSAgICAgKiBmaW5kIHByaW1lcyBQIGFuZCBRIHdpdGggUSA8IFAgc28gdGhhdDoKLSAgICAgKiAxLiAgfFAtUXwgPiAyXiggbmJpdHMgLyAyIC0gMTAwICkKLSAgICAgKiAyLiAgR0NEKCBFLCAoUC0xKSooUS0xKSApID09IDEKLSAgICAgKiAzLiAgRV4tMSBtb2QgTENNKFAtMSwgUS0xKSA+IDJeKCBuYml0cyAvIDIgKQotICAgICAqLwotICAgIE1CRURUTFNfTVBJX0NISyhtYmVkdGxzX21waV9sc2V0KCZjdHgtPkUsIGV4cG9uZW50KSk7Ci0KLSAgICBkbyB7Ci0gICAgICAgIE1CRURUTFNfTVBJX0NISyhtYmVkdGxzX21waV9nZW5fcHJpbWUoJmN0eC0+UCwgbmJpdHMgPj4gMSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmltZV9xdWFsaXR5LCBmX3JuZywgcF9ybmcpKTsKLQotICAgICAgICBNQkVEVExTX01QSV9DSEsobWJlZHRsc19tcGlfZ2VuX3ByaW1lKCZjdHgtPlEsIG5iaXRzID4+IDEsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJpbWVfcXVhbGl0eSwgZl9ybmcsIHBfcm5nKSk7Ci0KLSAgICAgICAgLyogbWFrZSBzdXJlIHRoZSBkaWZmZXJlbmNlIGJldHdlZW4gcCBhbmQgcSBpcyBub3QgdG9vIHNtYWxsIChGSVBTIDE4Ni00IMKnQi4zLjMgc3RlcCA1LjQpICovCi0gICAgICAgIE1CRURUTFNfTVBJX0NISyhtYmVkdGxzX21waV9zdWJfbXBpKCZILCAmY3R4LT5QLCAmY3R4LT5RKSk7Ci0gICAgICAgIGlmIChtYmVkdGxzX21waV9iaXRsZW4oJkgpIDw9ICgobmJpdHMgPj0gMjAwKSA/ICgobmJpdHMgPj4gMSkgLSA5OSkgOiAwKSkgewotICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgIH0KLQotICAgICAgICAvKiBub3QgcmVxdWlyZWQgYnkgYW55IHN0YW5kYXJkcywgYnV0IHNvbWUgdXNlcnMgcmVseSBvbiB0aGUgZmFjdCB0aGF0IFAgPiBRICovCi0gICAgICAgIGlmIChILnMgPCAwKSB7Ci0gICAgICAgICAgICBtYmVkdGxzX21waV9zd2FwKCZjdHgtPlAsICZjdHgtPlEpOwotICAgICAgICB9Ci0KLSAgICAgICAgLyogVGVtcG9yYXJpbHkgcmVwbGFjZSBQLFEgYnkgUC0xLCBRLTEgKi8KLSAgICAgICAgTUJFRFRMU19NUElfQ0hLKG1iZWR0bHNfbXBpX3N1Yl9pbnQoJmN0eC0+UCwgJmN0eC0+UCwgMSkpOwotICAgICAgICBNQkVEVExTX01QSV9DSEsobWJlZHRsc19tcGlfc3ViX2ludCgmY3R4LT5RLCAmY3R4LT5RLCAxKSk7Ci0gICAgICAgIE1CRURUTFNfTVBJX0NISyhtYmVkdGxzX21waV9tdWxfbXBpKCZILCAmY3R4LT5QLCAmY3R4LT5RKSk7Ci0KLSAgICAgICAgLyogY2hlY2sgR0NEKCBFLCAoUC0xKSooUS0xKSApID09IDEgKEZJUFMgMTg2LTQgwqdCLjMuMSBjcml0ZXJpb24gMihhKSkgKi8KLSAgICAgICAgTUJFRFRMU19NUElfQ0hLKG1iZWR0bHNfbXBpX2djZCgmRywgJmN0eC0+RSwgJkgpKTsKLSAgICAgICAgaWYgKG1iZWR0bHNfbXBpX2NtcF9pbnQoJkcsIDEpICE9IDApIHsKLSAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICB9Ci0KLSAgICAgICAgLyogY29tcHV0ZSBzbWFsbGVzdCBwb3NzaWJsZSBEID0gRV4tMSBtb2QgTENNKFAtMSwgUS0xKSAoRklQUyAxODYtNCDCp0IuMy4xIGNyaXRlcmlvbiAzKGIpKSAqLwotICAgICAgICBNQkVEVExTX01QSV9DSEsobWJlZHRsc19tcGlfZ2NkKCZHLCAmY3R4LT5QLCAmY3R4LT5RKSk7Ci0gICAgICAgIE1CRURUTFNfTVBJX0NISyhtYmVkdGxzX21waV9kaXZfbXBpKCZMLCBOVUxMLCAmSCwgJkcpKTsKLSAgICAgICAgTUJFRFRMU19NUElfQ0hLKG1iZWR0bHNfbXBpX2ludl9tb2QoJmN0eC0+RCwgJmN0eC0+RSwgJkwpKTsKLQotICAgICAgICBpZiAobWJlZHRsc19tcGlfYml0bGVuKCZjdHgtPkQpIDw9ICgobmJpdHMgKyAxKSAvIDIpKSB7ICAgICAgLy8gKEZJUFMgMTg2LTQgwqdCLjMuMSBjcml0ZXJpb24gMyhhKSkKLSAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICB9Ci0KLSAgICAgICAgYnJlYWs7Ci0gICAgfSB3aGlsZSAoMSk7Ci0KLSAgICAvKiBSZXN0b3JlIFAsUSAqLwotICAgIE1CRURUTFNfTVBJX0NISyhtYmVkdGxzX21waV9hZGRfaW50KCZjdHgtPlAsICAmY3R4LT5QLCAxKSk7Ci0gICAgTUJFRFRMU19NUElfQ0hLKG1iZWR0bHNfbXBpX2FkZF9pbnQoJmN0eC0+USwgICZjdHgtPlEsIDEpKTsKLQotICAgIE1CRURUTFNfTVBJX0NISyhtYmVkdGxzX21waV9tdWxfbXBpKCZjdHgtPk4sICZjdHgtPlAsICZjdHgtPlEpKTsKLQotICAgIGN0eC0+bGVuID0gbWJlZHRsc19tcGlfc2l6ZSgmY3R4LT5OKTsKLQotI2lmICFkZWZpbmVkKE1CRURUTFNfUlNBX05PX0NSVCkKLSAgICAvKgotICAgICAqIERQID0gRCBtb2QgKFAgLSAxKQotICAgICAqIERRID0gRCBtb2QgKFEgLSAxKQotICAgICAqIFFQID0gUV4tMSBtb2QgUAotICAgICAqLwotICAgIE1CRURUTFNfTVBJX0NISyhtYmVkdGxzX3JzYV9kZWR1Y2VfY3J0KCZjdHgtPlAsICZjdHgtPlEsICZjdHgtPkQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJmN0eC0+RFAsICZjdHgtPkRRLCAmY3R4LT5RUCkpOwotI2VuZGlmIC8qIE1CRURUTFNfUlNBX05PX0NSVCAqLwotCi0gICAgLyogRG91YmxlLWNoZWNrICovCi0gICAgTUJFRFRMU19NUElfQ0hLKG1iZWR0bHNfcnNhX2NoZWNrX3ByaXZrZXkoY3R4KSk7Ci0KLWNsZWFudXA6Ci0KLSAgICBtYmVkdGxzX21waV9mcmVlKCZIKTsKLSAgICBtYmVkdGxzX21waV9mcmVlKCZHKTsKLSAgICBtYmVkdGxzX21waV9mcmVlKCZMKTsKLQotICAgIGlmIChyZXQgIT0gMCkgewotICAgICAgICBtYmVkdGxzX3JzYV9mcmVlKGN0eCk7Ci0KLSAgICAgICAgaWYgKCgtcmV0ICYgfjB4N2YpID09IDApIHsKLSAgICAgICAgICAgIHJldCA9IE1CRURUTFNfRVJST1JfQUREKE1CRURUTFNfRVJSX1JTQV9LRVlfR0VOX0ZBSUxFRCwgcmV0KTsKLSAgICAgICAgfQotICAgICAgICByZXR1cm4gcmV0OwotICAgIH0KLQotICAgIHJldHVybiAwOwotfQotCi0jZW5kaWYgLyogTUJFRFRMU19HRU5QUklNRSAqLwotCi0vKgotICogQ2hlY2sgYSBwdWJsaWMgUlNBIGtleQotICovCi1pbnQgbWJlZHRsc19yc2FfY2hlY2tfcHVia2V5KGNvbnN0IG1iZWR0bHNfcnNhX2NvbnRleHQgKmN0eCkKLXsKLSAgICBpZiAocnNhX2NoZWNrX2NvbnRleHQoY3R4LCAwIC8qIHB1YmxpYyAqLywgMCAvKiBubyBibGluZGluZyAqLykgIT0gMCkgewotICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfUlNBX0tFWV9DSEVDS19GQUlMRUQ7Ci0gICAgfQotCi0gICAgaWYgKG1iZWR0bHNfbXBpX2JpdGxlbigmY3R4LT5OKSA8IDEyOCkgewotICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfUlNBX0tFWV9DSEVDS19GQUlMRUQ7Ci0gICAgfQotCi0gICAgaWYgKG1iZWR0bHNfbXBpX2dldF9iaXQoJmN0eC0+RSwgMCkgPT0gMCB8fAotICAgICAgICBtYmVkdGxzX21waV9iaXRsZW4oJmN0eC0+RSkgICAgIDwgMiAgfHwKLSAgICAgICAgbWJlZHRsc19tcGlfY21wX21waSgmY3R4LT5FLCAmY3R4LT5OKSA+PSAwKSB7Ci0gICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9SU0FfS0VZX0NIRUNLX0ZBSUxFRDsKLSAgICB9Ci0KLSAgICByZXR1cm4gMDsKLX0KLQotLyoKLSAqIENoZWNrIGZvciB0aGUgY29uc2lzdGVuY3kgb2YgYWxsIGZpZWxkcyBpbiBhbiBSU0EgcHJpdmF0ZSBrZXkgY29udGV4dAotICovCi1pbnQgbWJlZHRsc19yc2FfY2hlY2tfcHJpdmtleShjb25zdCBtYmVkdGxzX3JzYV9jb250ZXh0ICpjdHgpCi17Ci0gICAgaWYgKG1iZWR0bHNfcnNhX2NoZWNrX3B1YmtleShjdHgpICE9IDAgfHwKLSAgICAgICAgcnNhX2NoZWNrX2NvbnRleHQoY3R4LCAxIC8qIHByaXZhdGUgKi8sIDEgLyogYmxpbmRpbmcgKi8pICE9IDApIHsKLSAgICAgICAgcmV0dXJuIE1CRURUTFNfRVJSX1JTQV9LRVlfQ0hFQ0tfRkFJTEVEOwotICAgIH0KLQotICAgIGlmIChtYmVkdGxzX3JzYV92YWxpZGF0ZV9wYXJhbXMoJmN0eC0+TiwgJmN0eC0+UCwgJmN0eC0+USwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZjdHgtPkQsICZjdHgtPkUsIE5VTEwsIE5VTEwpICE9IDApIHsKLSAgICAgICAgcmV0dXJuIE1CRURUTFNfRVJSX1JTQV9LRVlfQ0hFQ0tfRkFJTEVEOwotICAgIH0KLQotI2lmICFkZWZpbmVkKE1CRURUTFNfUlNBX05PX0NSVCkKLSAgICBlbHNlIGlmIChtYmVkdGxzX3JzYV92YWxpZGF0ZV9jcnQoJmN0eC0+UCwgJmN0eC0+USwgJmN0eC0+RCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJmN0eC0+RFAsICZjdHgtPkRRLCAmY3R4LT5RUCkgIT0gMCkgewotICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfUlNBX0tFWV9DSEVDS19GQUlMRUQ7Ci0gICAgfQotI2VuZGlmCi0KLSAgICByZXR1cm4gMDsKLX0KLQotLyoKLSAqIENoZWNrIGlmIGNvbnRleHRzIGhvbGRpbmcgYSBwdWJsaWMgYW5kIHByaXZhdGUga2V5IG1hdGNoCi0gKi8KLWludCBtYmVkdGxzX3JzYV9jaGVja19wdWJfcHJpdihjb25zdCBtYmVkdGxzX3JzYV9jb250ZXh0ICpwdWIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbWJlZHRsc19yc2FfY29udGV4dCAqcHJ2KQotewotICAgIGlmIChtYmVkdGxzX3JzYV9jaGVja19wdWJrZXkocHViKSAgIT0gMCB8fAotICAgICAgICBtYmVkdGxzX3JzYV9jaGVja19wcml2a2V5KHBydikgIT0gMCkgewotICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfUlNBX0tFWV9DSEVDS19GQUlMRUQ7Ci0gICAgfQotCi0gICAgaWYgKG1iZWR0bHNfbXBpX2NtcF9tcGkoJnB1Yi0+TiwgJnBydi0+TikgIT0gMCB8fAotICAgICAgICBtYmVkdGxzX21waV9jbXBfbXBpKCZwdWItPkUsICZwcnYtPkUpICE9IDApIHsKLSAgICAgICAgcmV0dXJuIE1CRURUTFNfRVJSX1JTQV9LRVlfQ0hFQ0tfRkFJTEVEOwotICAgIH0KLQotICAgIHJldHVybiAwOwotfQotCi0vKgotICogRG8gYW4gUlNBIHB1YmxpYyBrZXkgb3BlcmF0aW9uCi0gKi8KLWludCBtYmVkdGxzX3JzYV9wdWJsaWMobWJlZHRsc19yc2FfY29udGV4dCAqY3R4LAotICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1bnNpZ25lZCBjaGFyICppbnB1dCwKLSAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgY2hhciAqb3V0cHV0KQotewotICAgIGludCByZXQgPSBNQkVEVExTX0VSUl9FUlJPUl9DT1JSVVBUSU9OX0RFVEVDVEVEOwotICAgIHNpemVfdCBvbGVuOwotICAgIG1iZWR0bHNfbXBpIFQ7Ci0KLSAgICBpZiAocnNhX2NoZWNrX2NvbnRleHQoY3R4LCAwIC8qIHB1YmxpYyAqLywgMCAvKiBubyBibGluZGluZyAqLykpIHsKLSAgICAgICAgcmV0dXJuIE1CRURUTFNfRVJSX1JTQV9CQURfSU5QVVRfREFUQTsKLSAgICB9Ci0KLSAgICBtYmVkdGxzX21waV9pbml0KCZUKTsKLQotI2lmIGRlZmluZWQoTUJFRFRMU19USFJFQURJTkdfQykKLSAgICBpZiAoKHJldCA9IG1iZWR0bHNfbXV0ZXhfbG9jaygmY3R4LT5tdXRleCkpICE9IDApIHsKLSAgICAgICAgcmV0dXJuIHJldDsKLSAgICB9Ci0jZW5kaWYKLQotICAgIE1CRURUTFNfTVBJX0NISyhtYmVkdGxzX21waV9yZWFkX2JpbmFyeSgmVCwgaW5wdXQsIGN0eC0+bGVuKSk7Ci0KLSAgICBpZiAobWJlZHRsc19tcGlfY21wX21waSgmVCwgJmN0eC0+TikgPj0gMCkgewotICAgICAgICByZXQgPSBNQkVEVExTX0VSUl9NUElfQkFEX0lOUFVUX0RBVEE7Ci0gICAgICAgIGdvdG8gY2xlYW51cDsKLSAgICB9Ci0KLSAgICBvbGVuID0gY3R4LT5sZW47Ci0gICAgTUJFRFRMU19NUElfQ0hLKG1iZWR0bHNfbXBpX2V4cF9tb2QoJlQsICZULCAmY3R4LT5FLCAmY3R4LT5OLCAmY3R4LT5STikpOwotICAgIE1CRURUTFNfTVBJX0NISyhtYmVkdGxzX21waV93cml0ZV9iaW5hcnkoJlQsIG91dHB1dCwgb2xlbikpOwotCi1jbGVhbnVwOgotI2lmIGRlZmluZWQoTUJFRFRMU19USFJFQURJTkdfQykKLSAgICBpZiAobWJlZHRsc19tdXRleF91bmxvY2soJmN0eC0+bXV0ZXgpICE9IDApIHsKLSAgICAgICAgcmV0dXJuIE1CRURUTFNfRVJSX1RIUkVBRElOR19NVVRFWF9FUlJPUjsKLSAgICB9Ci0jZW5kaWYKLQotICAgIG1iZWR0bHNfbXBpX2ZyZWUoJlQpOwotCi0gICAgaWYgKHJldCAhPSAwKSB7Ci0gICAgICAgIHJldHVybiBNQkVEVExTX0VSUk9SX0FERChNQkVEVExTX0VSUl9SU0FfUFVCTElDX0ZBSUxFRCwgcmV0KTsKLSAgICB9Ci0KLSAgICByZXR1cm4gMDsKLX0KLQotLyoKLSAqIEdlbmVyYXRlIG9yIHVwZGF0ZSBibGluZGluZyB2YWx1ZXMsIHNlZSBzZWN0aW9uIDEwIG9mOgotICogIEtPQ0hFUiwgUGF1bCBDLiBUaW1pbmcgYXR0YWNrcyBvbiBpbXBsZW1lbnRhdGlvbnMgb2YgRGlmZmllLUhlbGxtYW4sIFJTQSwKLSAqICBEU1MsIGFuZCBvdGhlciBzeXN0ZW1zLiBJbiA6IEFkdmFuY2VzIGluIENyeXB0b2xvZ3ktQ1JZUFRPJzk2LiBTcHJpbmdlcgotICogIEJlcmxpbiBIZWlkZWxiZXJnLCAxOTk2LiBwLiAxMDQtMTEzLgotICovCi1zdGF0aWMgaW50IHJzYV9wcmVwYXJlX2JsaW5kaW5nKG1iZWR0bHNfcnNhX2NvbnRleHQgKmN0eCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50ICgqZl9ybmcpKHZvaWQgKiwgdW5zaWduZWQgY2hhciAqLCBzaXplX3QpLCB2b2lkICpwX3JuZykKLXsKLSAgICBpbnQgcmV0LCBjb3VudCA9IDA7Ci0gICAgbWJlZHRsc19tcGkgUjsKLQotICAgIG1iZWR0bHNfbXBpX2luaXQoJlIpOwotCi0gICAgaWYgKGN0eC0+VmYucCAhPSBOVUxMKSB7Ci0gICAgICAgIC8qIFdlIGFscmVhZHkgaGF2ZSBibGluZGluZyB2YWx1ZXMsIGp1c3QgdXBkYXRlIHRoZW0gYnkgc3F1YXJpbmcgKi8KLSAgICAgICAgTUJFRFRMU19NUElfQ0hLKG1iZWR0bHNfbXBpX211bF9tcGkoJmN0eC0+VmksICZjdHgtPlZpLCAmY3R4LT5WaSkpOwotICAgICAgICBNQkVEVExTX01QSV9DSEsobWJlZHRsc19tcGlfbW9kX21waSgmY3R4LT5WaSwgJmN0eC0+VmksICZjdHgtPk4pKTsKLSAgICAgICAgTUJFRFRMU19NUElfQ0hLKG1iZWR0bHNfbXBpX211bF9tcGkoJmN0eC0+VmYsICZjdHgtPlZmLCAmY3R4LT5WZikpOwotICAgICAgICBNQkVEVExTX01QSV9DSEsobWJlZHRsc19tcGlfbW9kX21waSgmY3R4LT5WZiwgJmN0eC0+VmYsICZjdHgtPk4pKTsKLQotICAgICAgICBnb3RvIGNsZWFudXA7Ci0gICAgfQotCi0gICAgLyogVW5ibGluZGluZyB2YWx1ZTogVmYgPSByYW5kb20gbnVtYmVyLCBpbnZlcnRpYmxlIG1vZCBOICovCi0gICAgZG8gewotICAgICAgICBpZiAoY291bnQrKyA+IDEwKSB7Ci0gICAgICAgICAgICByZXQgPSBNQkVEVExTX0VSUl9SU0FfUk5HX0ZBSUxFRDsKLSAgICAgICAgICAgIGdvdG8gY2xlYW51cDsKLSAgICAgICAgfQotCi0gICAgICAgIE1CRURUTFNfTVBJX0NISyhtYmVkdGxzX21waV9maWxsX3JhbmRvbSgmY3R4LT5WZiwgY3R4LT5sZW4gLSAxLCBmX3JuZywgcF9ybmcpKTsKLQotICAgICAgICAvKiBDb21wdXRlIFZmXi0xIGFzIFIgKiAoUiBWZileLTEgdG8gYXZvaWQgbGVha3MgZnJvbSBpbnZfbW9kLiAqLwotICAgICAgICBNQkVEVExTX01QSV9DSEsobWJlZHRsc19tcGlfZmlsbF9yYW5kb20oJlIsIGN0eC0+bGVuIC0gMSwgZl9ybmcsIHBfcm5nKSk7Ci0gICAgICAgIE1CRURUTFNfTVBJX0NISyhtYmVkdGxzX21waV9tdWxfbXBpKCZjdHgtPlZpLCAmY3R4LT5WZiwgJlIpKTsKLSAgICAgICAgTUJFRFRMU19NUElfQ0hLKG1iZWR0bHNfbXBpX21vZF9tcGkoJmN0eC0+VmksICZjdHgtPlZpLCAmY3R4LT5OKSk7Ci0KLSAgICAgICAgLyogQXQgdGhpcyBwb2ludCwgVmkgaXMgaW52ZXJ0aWJsZSBtb2QgTiBpZiBhbmQgb25seSBpZiBib3RoIFZmIGFuZCBSCi0gICAgICAgICAqIGFyZSBpbnZlcnRpYmxlIG1vZCBOLiBJZiBvbmUgb2YgdGhlbSBpc24ndCwgd2UgZG9uJ3QgbmVlZCB0byBrbm93Ci0gICAgICAgICAqIHdoaWNoIG9uZSwgd2UganVzdCBsb29wIGFuZCBjaG9vc2UgbmV3IHZhbHVlcyBmb3IgYm90aCBvZiB0aGVtLgotICAgICAgICAgKiAoRWFjaCBpdGVyYXRpb24gc3VjY2VlZHMgd2l0aCBvdmVyd2hlbG1pbmcgcHJvYmFiaWxpdHkuKSAqLwotICAgICAgICByZXQgPSBtYmVkdGxzX21waV9pbnZfbW9kKCZjdHgtPlZpLCAmY3R4LT5WaSwgJmN0eC0+Tik7Ci0gICAgICAgIGlmIChyZXQgIT0gMCAmJiByZXQgIT0gTUJFRFRMU19FUlJfTVBJX05PVF9BQ0NFUFRBQkxFKSB7Ci0gICAgICAgICAgICBnb3RvIGNsZWFudXA7Ci0gICAgICAgIH0KLQotICAgIH0gd2hpbGUgKHJldCA9PSBNQkVEVExTX0VSUl9NUElfTk9UX0FDQ0VQVEFCTEUpOwotCi0gICAgLyogRmluaXNoIHRoZSBjb21wdXRhdGlvbiBvZiBWZl4tMSA9IFIgKiAoUiBWZileLTEgKi8KLSAgICBNQkVEVExTX01QSV9DSEsobWJlZHRsc19tcGlfbXVsX21waSgmY3R4LT5WaSwgJmN0eC0+VmksICZSKSk7Ci0gICAgTUJFRFRMU19NUElfQ0hLKG1iZWR0bHNfbXBpX21vZF9tcGkoJmN0eC0+VmksICZjdHgtPlZpLCAmY3R4LT5OKSk7Ci0KLSAgICAvKiBCbGluZGluZyB2YWx1ZTogVmkgPSBWZl4oLWUpIG1vZCBOCi0gICAgICogKFZpIGFscmVhZHkgY29udGFpbnMgVmZeLTEgYXQgdGhpcyBwb2ludCkgKi8KLSAgICBNQkVEVExTX01QSV9DSEsobWJlZHRsc19tcGlfZXhwX21vZCgmY3R4LT5WaSwgJmN0eC0+VmksICZjdHgtPkUsICZjdHgtPk4sICZjdHgtPlJOKSk7Ci0KLQotY2xlYW51cDoKLSAgICBtYmVkdGxzX21waV9mcmVlKCZSKTsKLQotICAgIHJldHVybiByZXQ7Ci19Ci0KLS8qCi0gKiBVbmJsaW5kCi0gKiBUID0gVCAqIFZmIG1vZCBOCi0gKi8KLXN0YXRpYyBpbnQgcnNhX3VuYmxpbmQobWJlZHRsc19tcGkgKlQsIG1iZWR0bHNfbXBpICpWZiwgY29uc3QgbWJlZHRsc19tcGkgKk4pCi17Ci0gICAgaW50IHJldCA9IE1CRURUTFNfRVJSX0VSUk9SX0NPUlJVUFRJT05fREVURUNURUQ7Ci0gICAgY29uc3QgbWJlZHRsc19tcGlfdWludCBtbSA9IG1iZWR0bHNfbXBpX2NvcmVfbW9udG11bF9pbml0KE4tPnApOwotICAgIGNvbnN0IHNpemVfdCBubGltYnMgPSBOLT5uOwotICAgIGNvbnN0IHNpemVfdCB0bGltYnMgPSBtYmVkdGxzX21waV9jb3JlX21vbnRtdWxfd29ya2luZ19saW1icyhubGltYnMpOwotICAgIG1iZWR0bHNfbXBpIFJSLCBNX1Q7Ci0KLSAgICBtYmVkdGxzX21waV9pbml0KCZSUik7Ci0gICAgbWJlZHRsc19tcGlfaW5pdCgmTV9UKTsKLQotICAgIE1CRURUTFNfTVBJX0NISyhtYmVkdGxzX21waV9jb3JlX2dldF9tb250X3IyX3Vuc2FmZSgmUlIsIE4pKTsKLSAgICBNQkVEVExTX01QSV9DSEsobWJlZHRsc19tcGlfZ3JvdygmTV9ULCB0bGltYnMpKTsKLQotICAgIE1CRURUTFNfTVBJX0NISyhtYmVkdGxzX21waV9ncm93KFQsIG5saW1icykpOwotICAgIE1CRURUTFNfTVBJX0NISyhtYmVkdGxzX21waV9ncm93KFZmLCBubGltYnMpKTsKLQotICAgIC8qIFQgPSBUICogVmYgbW9kIE4KLSAgICAgKiBSZW1pbmRlcjogbW9udG11bChBLCBCLCBOKSA9IEEgKiBCICogUl4tMSBtb2QgTgotICAgICAqIFVzdWFsbHkgYm90aCBvcGVyYW5kcyBhcmUgbXVsdGlwbGllZCBieSBSIG1vZCBOIGJlZm9yZWhhbmQgKGJ5IGNhbGxpbmcKLSAgICAgKiBgdG9fbW9udF9yZXAoKWAgb24gdGhlbSksIHlpZWxkaW5nIGEgcmVzdWx0IHRoYXQncyBhbHNvICogUiBtb2QgTiAoYWthCi0gICAgICogImluIHRoZSBNb250Z29tZXJ5IGRvbWFpbiIpLiBIZXJlIHdlIG9ubHkgbXVsdGlwbHkgb25lIG9wZXJhbmQgYnkgUiBtb2QKLSAgICAgKiBOLCBzbyB0aGUgcmVzdWx0IGlzIGRpcmVjdGx5IHdoYXQgd2Ugd2FudCAtIG5vIG5lZWQgdG8gY2FsbAotICAgICAqIGBmcm9tX21vbnRfcmVwKClgIG9uIGl0LiAqLwotICAgIG1iZWR0bHNfbXBpX2NvcmVfdG9fbW9udF9yZXAoVC0+cCwgVC0+cCwgTi0+cCwgbmxpbWJzLCBtbSwgUlIucCwgTV9ULnApOwotICAgIG1iZWR0bHNfbXBpX2NvcmVfbW9udG11bChULT5wLCBULT5wLCBWZi0+cCwgbmxpbWJzLCBOLT5wLCBubGltYnMsIG1tLCBNX1QucCk7Ci0KLWNsZWFudXA6Ci0KLSAgICBtYmVkdGxzX21waV9mcmVlKCZSUik7Ci0gICAgbWJlZHRsc19tcGlfZnJlZSgmTV9UKTsKLQotICAgIHJldHVybiByZXQ7Ci19Ci0KLS8qCi0gKiBFeHBvbmVudCBibGluZGluZyBzdXBwb3NlZCB0byBwcmV2ZW50IHNpZGUtY2hhbm5lbCBhdHRhY2tzIHVzaW5nIG11bHRpcGxlCi0gKiB0cmFjZXMgb2YgbWVhc3VyZW1lbnRzIHRvIHJlY292ZXIgdGhlIFJTQSBrZXkuIFRoZSBtb3JlIGNvbGxpc2lvbnMgYXJlIHRoZXJlLAotICogdGhlIG1vcmUgYml0cyBvZiB0aGUga2V5IGNhbiBiZSByZWNvdmVyZWQuIFNlZSBbM10uCi0gKgotICogQ29sbGVjdGluZyBuIGNvbGxpc2lvbnMgd2l0aCBtIGJpdCBsb25nIGJsaW5kaW5nIHZhbHVlIHJlcXVpcmVzIDJeKG0tbS9uKQotICogb2JzZXJ2YXRpb25zIG9uIGF2ZXJhZ2UuCi0gKgotICogRm9yIGV4YW1wbGUgd2l0aCAyOCBieXRlIGJsaW5kaW5nIHRvIGFjaGlldmUgMiBjb2xsaXNpb25zIHRoZSBhZHZlcnNhcnkgaGFzCi0gKiB0byBtYWtlIDJeMTEyIG9ic2VydmF0aW9ucyBvbiBhdmVyYWdlLgotICoKLSAqIChXaXRoIHRoZSBjdXJyZW50bHkgKGFzIG9mIDIwMTcgQXByaWwpIGtub3duIGJlc3QgYWxnb3JpdGhtcyBicmVha2luZyAyMDQ4Ci0gKiBiaXQgUlNBIHJlcXVpcmVzIGFwcHJveGltYXRlbHkgYXMgbXVjaCB0aW1lIGFzIHRyeWluZyBvdXQgMl4xMTIgcmFuZG9tIGtleXMuCi0gKiBUaHVzIGluIHRoaXMgc2Vuc2Ugd2l0aCAyOCBieXRlIGJsaW5kaW5nIHRoZSBzZWN1cml0eSBpcyBub3QgcmVkdWNlZCBieQotICogc2lkZS1jaGFubmVsIGF0dGFja3MgbGlrZSB0aGUgb25lIGluIFszXSkKLSAqCi0gKiBUaGlzIGNvdW50ZXJtZWFzdXJlIGRvZXMgbm90IGhlbHAgaWYgdGhlIGtleSByZWNvdmVyeSBpcyBwb3NzaWJsZSB3aXRoIGEKLSAqIHNpbmdsZSB0cmFjZS4KLSAqLwotI2RlZmluZSBSU0FfRVhQT05FTlRfQkxJTkRJTkcgMjgKLQotLyoKLSAqIERvIGFuIFJTQSBwcml2YXRlIGtleSBvcGVyYXRpb24KLSAqLwotaW50IG1iZWR0bHNfcnNhX3ByaXZhdGUobWJlZHRsc19yc2FfY29udGV4dCAqY3R4LAotICAgICAgICAgICAgICAgICAgICAgICAgaW50ICgqZl9ybmcpKHZvaWQgKiwgdW5zaWduZWQgY2hhciAqLCBzaXplX3QpLAotICAgICAgICAgICAgICAgICAgICAgICAgdm9pZCAqcF9ybmcsCi0gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1bnNpZ25lZCBjaGFyICppbnB1dCwKLSAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGNoYXIgKm91dHB1dCkKLXsKLSAgICBpbnQgcmV0ID0gTUJFRFRMU19FUlJfRVJST1JfQ09SUlVQVElPTl9ERVRFQ1RFRDsKLSAgICBzaXplX3Qgb2xlbjsKLQotICAgIC8qIFRlbXBvcmFyeSBob2xkaW5nIHRoZSByZXN1bHQgKi8KLSAgICBtYmVkdGxzX21waSBUOwotCi0gICAgLyogVGVtcG9yYXJpZXMgaG9sZGluZyBQLTEsIFEtMSBhbmQgdGhlCi0gICAgICogZXhwb25lbnQgYmxpbmRpbmcgZmFjdG9yLCByZXNwZWN0aXZlbHkuICovCi0gICAgbWJlZHRsc19tcGkgUDEsIFExLCBSOwotCi0jaWYgIWRlZmluZWQoTUJFRFRMU19SU0FfTk9fQ1JUKQotICAgIC8qIFRlbXBvcmFyaWVzIGhvbGRpbmcgdGhlIHJlc3VsdHMgbW9kIHAgcmVzcC4gbW9kIHEuICovCi0gICAgbWJlZHRsc19tcGkgVFAsIFRROwotCi0gICAgLyogVGVtcG9yYXJpZXMgaG9sZGluZyB0aGUgYmxpbmRlZCBleHBvbmVudHMgZm9yCi0gICAgICogdGhlIG1vZCBwIHJlc3AuIG1vZCBxIGNvbXB1dGF0aW9uIChpZiB1c2VkKS4gKi8KLSAgICBtYmVkdGxzX21waSBEUF9ibGluZCwgRFFfYmxpbmQ7Ci0jZWxzZQotICAgIC8qIFRlbXBvcmFyeSBob2xkaW5nIHRoZSBibGluZGVkIGV4cG9uZW50IChpZiB1c2VkKS4gKi8KLSAgICBtYmVkdGxzX21waSBEX2JsaW5kOwotI2VuZGlmIC8qIE1CRURUTFNfUlNBX05PX0NSVCAqLwotCi0gICAgLyogVGVtcG9yYXJpZXMgaG9sZGluZyB0aGUgaW5pdGlhbCBpbnB1dCBhbmQgdGhlIGRvdWJsZQotICAgICAqIGNoZWNrZWQgcmVzdWx0OyBzaG91bGQgYmUgdGhlIHNhbWUgaW4gdGhlIGVuZC4gKi8KLSAgICBtYmVkdGxzX21waSBpbnB1dF9ibGluZGVkLCBjaGVja19yZXN1bHRfYmxpbmRlZDsKLQotICAgIGlmIChmX3JuZyA9PSBOVUxMKSB7Ci0gICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9SU0FfQkFEX0lOUFVUX0RBVEE7Ci0gICAgfQotCi0gICAgaWYgKHJzYV9jaGVja19jb250ZXh0KGN0eCwgMSAvKiBwcml2YXRlIGtleSBjaGVja3MgKi8sCi0gICAgICAgICAgICAgICAgICAgICAgICAgIDEgLyogYmxpbmRpbmcgb24gICAgICAgICovKSAhPSAwKSB7Ci0gICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9SU0FfQkFEX0lOUFVUX0RBVEE7Ci0gICAgfQotCi0jaWYgZGVmaW5lZChNQkVEVExTX1RIUkVBRElOR19DKQotICAgIGlmICgocmV0ID0gbWJlZHRsc19tdXRleF9sb2NrKCZjdHgtPm11dGV4KSkgIT0gMCkgewotICAgICAgICByZXR1cm4gcmV0OwotICAgIH0KLSNlbmRpZgotCi0gICAgLyogTVBJIEluaXRpYWxpemF0aW9uICovCi0gICAgbWJlZHRsc19tcGlfaW5pdCgmVCk7Ci0KLSAgICBtYmVkdGxzX21waV9pbml0KCZQMSk7Ci0gICAgbWJlZHRsc19tcGlfaW5pdCgmUTEpOwotICAgIG1iZWR0bHNfbXBpX2luaXQoJlIpOwotCi0jaWYgZGVmaW5lZChNQkVEVExTX1JTQV9OT19DUlQpCi0gICAgbWJlZHRsc19tcGlfaW5pdCgmRF9ibGluZCk7Ci0jZWxzZQotICAgIG1iZWR0bHNfbXBpX2luaXQoJkRQX2JsaW5kKTsKLSAgICBtYmVkdGxzX21waV9pbml0KCZEUV9ibGluZCk7Ci0jZW5kaWYKLQotI2lmICFkZWZpbmVkKE1CRURUTFNfUlNBX05PX0NSVCkKLSAgICBtYmVkdGxzX21waV9pbml0KCZUUCk7IG1iZWR0bHNfbXBpX2luaXQoJlRRKTsKLSNlbmRpZgotCi0gICAgbWJlZHRsc19tcGlfaW5pdCgmaW5wdXRfYmxpbmRlZCk7Ci0gICAgbWJlZHRsc19tcGlfaW5pdCgmY2hlY2tfcmVzdWx0X2JsaW5kZWQpOwotCi0gICAgLyogRW5kIG9mIE1QSSBpbml0aWFsaXphdGlvbiAqLwotCi0gICAgTUJFRFRMU19NUElfQ0hLKG1iZWR0bHNfbXBpX3JlYWRfYmluYXJ5KCZULCBpbnB1dCwgY3R4LT5sZW4pKTsKLSAgICBpZiAobWJlZHRsc19tcGlfY21wX21waSgmVCwgJmN0eC0+TikgPj0gMCkgewotICAgICAgICByZXQgPSBNQkVEVExTX0VSUl9NUElfQkFEX0lOUFVUX0RBVEE7Ci0gICAgICAgIGdvdG8gY2xlYW51cDsKLSAgICB9Ci0KLSAgICAvKgotICAgICAqIEJsaW5kaW5nCi0gICAgICogVCA9IFQgKiBWaSBtb2QgTgotICAgICAqLwotICAgIE1CRURUTFNfTVBJX0NISyhyc2FfcHJlcGFyZV9ibGluZGluZyhjdHgsIGZfcm5nLCBwX3JuZykpOwotICAgIE1CRURUTFNfTVBJX0NISyhtYmVkdGxzX21waV9tdWxfbXBpKCZULCAmVCwgJmN0eC0+VmkpKTsKLSAgICBNQkVEVExTX01QSV9DSEsobWJlZHRsc19tcGlfbW9kX21waSgmVCwgJlQsICZjdHgtPk4pKTsKLQotICAgIE1CRURUTFNfTVBJX0NISyhtYmVkdGxzX21waV9jb3B5KCZpbnB1dF9ibGluZGVkLCAmVCkpOwotCi0gICAgLyoKLSAgICAgKiBFeHBvbmVudCBibGluZGluZwotICAgICAqLwotICAgIE1CRURUTFNfTVBJX0NISyhtYmVkdGxzX21waV9zdWJfaW50KCZQMSwgJmN0eC0+UCwgMSkpOwotICAgIE1CRURUTFNfTVBJX0NISyhtYmVkdGxzX21waV9zdWJfaW50KCZRMSwgJmN0eC0+USwgMSkpOwotCi0jaWYgZGVmaW5lZChNQkVEVExTX1JTQV9OT19DUlQpCi0gICAgLyoKLSAgICAgKiBEX2JsaW5kID0gKCBQIC0gMSApICogKCBRIC0gMSApICogUiArIEQKLSAgICAgKi8KLSAgICBNQkVEVExTX01QSV9DSEsobWJlZHRsc19tcGlfZmlsbF9yYW5kb20oJlIsIFJTQV9FWFBPTkVOVF9CTElORElORywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZl9ybmcsIHBfcm5nKSk7Ci0gICAgTUJFRFRMU19NUElfQ0hLKG1iZWR0bHNfbXBpX211bF9tcGkoJkRfYmxpbmQsICZQMSwgJlExKSk7Ci0gICAgTUJFRFRMU19NUElfQ0hLKG1iZWR0bHNfbXBpX211bF9tcGkoJkRfYmxpbmQsICZEX2JsaW5kLCAmUikpOwotICAgIE1CRURUTFNfTVBJX0NISyhtYmVkdGxzX21waV9hZGRfbXBpKCZEX2JsaW5kLCAmRF9ibGluZCwgJmN0eC0+RCkpOwotI2Vsc2UKLSAgICAvKgotICAgICAqIERQX2JsaW5kID0gKCBQIC0gMSApICogUiArIERQCi0gICAgICovCi0gICAgTUJFRFRMU19NUElfQ0hLKG1iZWR0bHNfbXBpX2ZpbGxfcmFuZG9tKCZSLCBSU0FfRVhQT05FTlRfQkxJTkRJTkcsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZfcm5nLCBwX3JuZykpOwotICAgIE1CRURUTFNfTVBJX0NISyhtYmVkdGxzX21waV9tdWxfbXBpKCZEUF9ibGluZCwgJlAxLCAmUikpOwotICAgIE1CRURUTFNfTVBJX0NISyhtYmVkdGxzX21waV9hZGRfbXBpKCZEUF9ibGluZCwgJkRQX2JsaW5kLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZjdHgtPkRQKSk7Ci0KLSAgICAvKgotICAgICAqIERRX2JsaW5kID0gKCBRIC0gMSApICogUiArIERRCi0gICAgICovCi0gICAgTUJFRFRMU19NUElfQ0hLKG1iZWR0bHNfbXBpX2ZpbGxfcmFuZG9tKCZSLCBSU0FfRVhQT05FTlRfQkxJTkRJTkcsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZfcm5nLCBwX3JuZykpOwotICAgIE1CRURUTFNfTVBJX0NISyhtYmVkdGxzX21waV9tdWxfbXBpKCZEUV9ibGluZCwgJlExLCAmUikpOwotICAgIE1CRURUTFNfTVBJX0NISyhtYmVkdGxzX21waV9hZGRfbXBpKCZEUV9ibGluZCwgJkRRX2JsaW5kLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZjdHgtPkRRKSk7Ci0jZW5kaWYgLyogTUJFRFRMU19SU0FfTk9fQ1JUICovCi0KLSNpZiBkZWZpbmVkKE1CRURUTFNfUlNBX05PX0NSVCkKLSAgICBNQkVEVExTX01QSV9DSEsobWJlZHRsc19tcGlfZXhwX21vZCgmVCwgJlQsICZEX2JsaW5kLCAmY3R4LT5OLCAmY3R4LT5STikpOwotI2Vsc2UKLSAgICAvKgotICAgICAqIEZhc3RlciBkZWNyeXB0aW9uIHVzaW5nIHRoZSBDUlQKLSAgICAgKgotICAgICAqIFRQID0gaW5wdXQgXiBkUCBtb2QgUAotICAgICAqIFRRID0gaW5wdXQgXiBkUSBtb2QgUQotICAgICAqLwotCi0gICAgTUJFRFRMU19NUElfQ0hLKG1iZWR0bHNfbXBpX2V4cF9tb2QoJlRQLCAmVCwgJkRQX2JsaW5kLCAmY3R4LT5QLCAmY3R4LT5SUCkpOwotICAgIE1CRURUTFNfTVBJX0NISyhtYmVkdGxzX21waV9leHBfbW9kKCZUUSwgJlQsICZEUV9ibGluZCwgJmN0eC0+USwgJmN0eC0+UlEpKTsKLQotICAgIC8qCi0gICAgICogVCA9IChUUCAtIFRRKSAqIChRXi0xIG1vZCBQKSBtb2QgUAotICAgICAqLwotICAgIE1CRURUTFNfTVBJX0NISyhtYmVkdGxzX21waV9zdWJfbXBpKCZULCAmVFAsICZUUSkpOwotICAgIE1CRURUTFNfTVBJX0NISyhtYmVkdGxzX21waV9tdWxfbXBpKCZUUCwgJlQsICZjdHgtPlFQKSk7Ci0gICAgTUJFRFRMU19NUElfQ0hLKG1iZWR0bHNfbXBpX21vZF9tcGkoJlQsICZUUCwgJmN0eC0+UCkpOwotCi0gICAgLyoKLSAgICAgKiBUID0gVFEgKyBUICogUQotICAgICAqLwotICAgIE1CRURUTFNfTVBJX0NISyhtYmVkdGxzX21waV9tdWxfbXBpKCZUUCwgJlQsICZjdHgtPlEpKTsKLSAgICBNQkVEVExTX01QSV9DSEsobWJlZHRsc19tcGlfYWRkX21waSgmVCwgJlRRLCAmVFApKTsKLSNlbmRpZiAvKiBNQkVEVExTX1JTQV9OT19DUlQgKi8KLQotICAgIC8qIFZlcmlmeSB0aGUgcmVzdWx0IHRvIHByZXZlbnQgZ2xpdGNoaW5nIGF0dGFja3MuICovCi0gICAgTUJFRFRMU19NUElfQ0hLKG1iZWR0bHNfbXBpX2V4cF9tb2QoJmNoZWNrX3Jlc3VsdF9ibGluZGVkLCAmVCwgJmN0eC0+RSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmY3R4LT5OLCAmY3R4LT5STikpOwotICAgIGlmIChtYmVkdGxzX21waV9jbXBfbXBpKCZjaGVja19yZXN1bHRfYmxpbmRlZCwgJmlucHV0X2JsaW5kZWQpICE9IDApIHsKLSAgICAgICAgcmV0ID0gTUJFRFRMU19FUlJfUlNBX1ZFUklGWV9GQUlMRUQ7Ci0gICAgICAgIGdvdG8gY2xlYW51cDsKLSAgICB9Ci0KLSAgICAvKgotICAgICAqIFVuYmxpbmQKLSAgICAgKiBUID0gVCAqIFZmIG1vZCBOCi0gICAgICovCi0gICAgTUJFRFRMU19NUElfQ0hLKHJzYV91bmJsaW5kKCZULCAmY3R4LT5WZiwgJmN0eC0+TikpOwotCi0gICAgb2xlbiA9IGN0eC0+bGVuOwotICAgIE1CRURUTFNfTVBJX0NISyhtYmVkdGxzX21waV93cml0ZV9iaW5hcnkoJlQsIG91dHB1dCwgb2xlbikpOwotCi1jbGVhbnVwOgotI2lmIGRlZmluZWQoTUJFRFRMU19USFJFQURJTkdfQykKLSAgICBpZiAobWJlZHRsc19tdXRleF91bmxvY2soJmN0eC0+bXV0ZXgpICE9IDApIHsKLSAgICAgICAgcmV0dXJuIE1CRURUTFNfRVJSX1RIUkVBRElOR19NVVRFWF9FUlJPUjsKLSAgICB9Ci0jZW5kaWYKLQotICAgIG1iZWR0bHNfbXBpX2ZyZWUoJlAxKTsKLSAgICBtYmVkdGxzX21waV9mcmVlKCZRMSk7Ci0gICAgbWJlZHRsc19tcGlfZnJlZSgmUik7Ci0KLSNpZiBkZWZpbmVkKE1CRURUTFNfUlNBX05PX0NSVCkKLSAgICBtYmVkdGxzX21waV9mcmVlKCZEX2JsaW5kKTsKLSNlbHNlCi0gICAgbWJlZHRsc19tcGlfZnJlZSgmRFBfYmxpbmQpOwotICAgIG1iZWR0bHNfbXBpX2ZyZWUoJkRRX2JsaW5kKTsKLSNlbmRpZgotCi0gICAgbWJlZHRsc19tcGlfZnJlZSgmVCk7Ci0KLSNpZiAhZGVmaW5lZChNQkVEVExTX1JTQV9OT19DUlQpCi0gICAgbWJlZHRsc19tcGlfZnJlZSgmVFApOyBtYmVkdGxzX21waV9mcmVlKCZUUSk7Ci0jZW5kaWYKLQotICAgIG1iZWR0bHNfbXBpX2ZyZWUoJmNoZWNrX3Jlc3VsdF9ibGluZGVkKTsKLSAgICBtYmVkdGxzX21waV9mcmVlKCZpbnB1dF9ibGluZGVkKTsKLQotICAgIGlmIChyZXQgIT0gMCAmJiByZXQgPj0gLTB4MDA3ZikgewotICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJPUl9BREQoTUJFRFRMU19FUlJfUlNBX1BSSVZBVEVfRkFJTEVELCByZXQpOwotICAgIH0KLQotICAgIHJldHVybiByZXQ7Ci19Ci0KLSNpZiBkZWZpbmVkKE1CRURUTFNfUEtDUzFfVjIxKQotLyoqCi0gKiBHZW5lcmF0ZSBhbmQgYXBwbHkgdGhlIE1HRjEgb3BlcmF0aW9uIChmcm9tIFBLQ1MjMSB2Mi4xKSB0byBhIGJ1ZmZlci4KLSAqCi0gKiBccGFyYW0gZHN0ICAgICAgIGJ1ZmZlciB0byBtYXNrCi0gKiBccGFyYW0gZGxlbiAgICAgIGxlbmd0aCBvZiBkZXN0aW5hdGlvbiBidWZmZXIKLSAqIFxwYXJhbSBzcmMgICAgICAgc291cmNlIG9mIHRoZSBtYXNrIGdlbmVyYXRpb24KLSAqIFxwYXJhbSBzbGVuICAgICAgbGVuZ3RoIG9mIHRoZSBzb3VyY2UgYnVmZmVyCi0gKiBccGFyYW0gbWRfYWxnICAgIG1lc3NhZ2UgZGlnZXN0IHRvIHVzZQotICovCi1zdGF0aWMgaW50IG1nZl9tYXNrKHVuc2lnbmVkIGNoYXIgKmRzdCwgc2l6ZV90IGRsZW4sIHVuc2lnbmVkIGNoYXIgKnNyYywKLSAgICAgICAgICAgICAgICAgICAgc2l6ZV90IHNsZW4sIG1iZWR0bHNfbWRfdHlwZV90IG1kX2FsZykKLXsKLSAgICB1bnNpZ25lZCBjaGFyIGNvdW50ZXJbNF07Ci0gICAgdW5zaWduZWQgY2hhciAqcDsKLSAgICB1bnNpZ25lZCBpbnQgaGxlbjsKLSAgICBzaXplX3QgaSwgdXNlX2xlbjsKLSAgICB1bnNpZ25lZCBjaGFyIG1hc2tbTUJFRFRMU19NRF9NQVhfU0laRV07Ci0gICAgaW50IHJldCA9IDA7Ci0gICAgY29uc3QgbWJlZHRsc19tZF9pbmZvX3QgKm1kX2luZm87Ci0gICAgbWJlZHRsc19tZF9jb250ZXh0X3QgbWRfY3R4OwotCi0gICAgbWJlZHRsc19tZF9pbml0KCZtZF9jdHgpOwotICAgIG1kX2luZm8gPSBtYmVkdGxzX21kX2luZm9fZnJvbV90eXBlKG1kX2FsZyk7Ci0gICAgaWYgKG1kX2luZm8gPT0gTlVMTCkgewotICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfUlNBX0JBRF9JTlBVVF9EQVRBOwotICAgIH0KLQotICAgIG1iZWR0bHNfbWRfaW5pdCgmbWRfY3R4KTsKLSAgICBpZiAoKHJldCA9IG1iZWR0bHNfbWRfc2V0dXAoJm1kX2N0eCwgbWRfaW5mbywgMCkpICE9IDApIHsKLSAgICAgICAgZ290byBleGl0OwotICAgIH0KLQotICAgIGhsZW4gPSBtYmVkdGxzX21kX2dldF9zaXplKG1kX2luZm8pOwotCi0gICAgbWVtc2V0KG1hc2ssIDAsIHNpemVvZihtYXNrKSk7Ci0gICAgbWVtc2V0KGNvdW50ZXIsIDAsIDQpOwotCi0gICAgLyogR2VuZXJhdGUgYW5kIGFwcGx5IGRiTWFzayAqLwotICAgIHAgPSBkc3Q7Ci0KLSAgICB3aGlsZSAoZGxlbiA+IDApIHsKLSAgICAgICAgdXNlX2xlbiA9IGhsZW47Ci0gICAgICAgIGlmIChkbGVuIDwgaGxlbikgewotICAgICAgICAgICAgdXNlX2xlbiA9IGRsZW47Ci0gICAgICAgIH0KLQotICAgICAgICBpZiAoKHJldCA9IG1iZWR0bHNfbWRfc3RhcnRzKCZtZF9jdHgpKSAhPSAwKSB7Ci0gICAgICAgICAgICBnb3RvIGV4aXQ7Ci0gICAgICAgIH0KLSAgICAgICAgaWYgKChyZXQgPSBtYmVkdGxzX21kX3VwZGF0ZSgmbWRfY3R4LCBzcmMsIHNsZW4pKSAhPSAwKSB7Ci0gICAgICAgICAgICBnb3RvIGV4aXQ7Ci0gICAgICAgIH0KLSAgICAgICAgaWYgKChyZXQgPSBtYmVkdGxzX21kX3VwZGF0ZSgmbWRfY3R4LCBjb3VudGVyLCA0KSkgIT0gMCkgewotICAgICAgICAgICAgZ290byBleGl0OwotICAgICAgICB9Ci0gICAgICAgIGlmICgocmV0ID0gbWJlZHRsc19tZF9maW5pc2goJm1kX2N0eCwgbWFzaykpICE9IDApIHsKLSAgICAgICAgICAgIGdvdG8gZXhpdDsKLSAgICAgICAgfQotCi0gICAgICAgIGZvciAoaSA9IDA7IGkgPCB1c2VfbGVuOyArK2kpIHsKLSAgICAgICAgICAgICpwKysgXj0gbWFza1tpXTsKLSAgICAgICAgfQotCi0gICAgICAgIGNvdW50ZXJbM10rKzsKLQotICAgICAgICBkbGVuIC09IHVzZV9sZW47Ci0gICAgfQotCi1leGl0OgotICAgIG1iZWR0bHNfcGxhdGZvcm1femVyb2l6ZShtYXNrLCBzaXplb2YobWFzaykpOwotICAgIG1iZWR0bHNfbWRfZnJlZSgmbWRfY3R4KTsKLQotICAgIHJldHVybiByZXQ7Ci19Ci0KLS8qKgotICogR2VuZXJhdGUgSGFzaChNJykgYXMgaW4gUkZDIDgwMTcgcGFnZSA0MyBwb2ludHMgNSBhbmQgNi4KLSAqCi0gKiBccGFyYW0gaGFzaCAgICAgIHRoZSBpbnB1dCBoYXNoCi0gKiBccGFyYW0gaGxlbiAgICAgIGxlbmd0aCBvZiB0aGUgaW5wdXQgaGFzaAotICogXHBhcmFtIHNhbHQgICAgICB0aGUgaW5wdXQgc2FsdAotICogXHBhcmFtIHNsZW4gICAgICBsZW5ndGggb2YgdGhlIGlucHV0IHNhbHQKLSAqIFxwYXJhbSBvdXQgICAgICAgdGhlIG91dHB1dCBidWZmZXIgLSBtdXN0IGJlIGxhcmdlIGVub3VnaCBmb3IgXHAgbWRfYWxnCi0gKiBccGFyYW0gbWRfYWxnICAgIG1lc3NhZ2UgZGlnZXN0IHRvIHVzZQotICovCi1zdGF0aWMgaW50IGhhc2hfbXByaW1lKGNvbnN0IHVuc2lnbmVkIGNoYXIgKmhhc2gsIHNpemVfdCBobGVuLAotICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1bnNpZ25lZCBjaGFyICpzYWx0LCBzaXplX3Qgc2xlbiwKLSAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgY2hhciAqb3V0LCBtYmVkdGxzX21kX3R5cGVfdCBtZF9hbGcpCi17Ci0gICAgY29uc3QgdW5zaWduZWQgY2hhciB6ZXJvc1s4XSA9IHsgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCB9OwotCi0gICAgbWJlZHRsc19tZF9jb250ZXh0X3QgbWRfY3R4OwotICAgIGludCByZXQgPSBNQkVEVExTX0VSUl9FUlJPUl9DT1JSVVBUSU9OX0RFVEVDVEVEOwotCi0gICAgY29uc3QgbWJlZHRsc19tZF9pbmZvX3QgKm1kX2luZm8gPSBtYmVkdGxzX21kX2luZm9fZnJvbV90eXBlKG1kX2FsZyk7Ci0gICAgaWYgKG1kX2luZm8gPT0gTlVMTCkgewotICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfUlNBX0JBRF9JTlBVVF9EQVRBOwotICAgIH0KLQotICAgIG1iZWR0bHNfbWRfaW5pdCgmbWRfY3R4KTsKLSAgICBpZiAoKHJldCA9IG1iZWR0bHNfbWRfc2V0dXAoJm1kX2N0eCwgbWRfaW5mbywgMCkpICE9IDApIHsKLSAgICAgICAgZ290byBleGl0OwotICAgIH0KLSAgICBpZiAoKHJldCA9IG1iZWR0bHNfbWRfc3RhcnRzKCZtZF9jdHgpKSAhPSAwKSB7Ci0gICAgICAgIGdvdG8gZXhpdDsKLSAgICB9Ci0gICAgaWYgKChyZXQgPSBtYmVkdGxzX21kX3VwZGF0ZSgmbWRfY3R4LCB6ZXJvcywgc2l6ZW9mKHplcm9zKSkpICE9IDApIHsKLSAgICAgICAgZ290byBleGl0OwotICAgIH0KLSAgICBpZiAoKHJldCA9IG1iZWR0bHNfbWRfdXBkYXRlKCZtZF9jdHgsIGhhc2gsIGhsZW4pKSAhPSAwKSB7Ci0gICAgICAgIGdvdG8gZXhpdDsKLSAgICB9Ci0gICAgaWYgKChyZXQgPSBtYmVkdGxzX21kX3VwZGF0ZSgmbWRfY3R4LCBzYWx0LCBzbGVuKSkgIT0gMCkgewotICAgICAgICBnb3RvIGV4aXQ7Ci0gICAgfQotICAgIGlmICgocmV0ID0gbWJlZHRsc19tZF9maW5pc2goJm1kX2N0eCwgb3V0KSkgIT0gMCkgewotICAgICAgICBnb3RvIGV4aXQ7Ci0gICAgfQotCi1leGl0OgotICAgIG1iZWR0bHNfbWRfZnJlZSgmbWRfY3R4KTsKLQotICAgIHJldHVybiByZXQ7Ci19Ci0KLS8qKgotICogQ29tcHV0ZSBhIGhhc2guCi0gKgotICogXHBhcmFtIG1kX2FsZyAgICBhbGdvcml0aG0gdG8gdXNlCi0gKiBccGFyYW0gaW5wdXQgICAgIGlucHV0IG1lc3NhZ2UgdG8gaGFzaAotICogXHBhcmFtIGlsZW4gICAgICBpbnB1dCBsZW5ndGgKLSAqIFxwYXJhbSBvdXRwdXQgICAgdGhlIG91dHB1dCBidWZmZXIgLSBtdXN0IGJlIGxhcmdlIGVub3VnaCBmb3IgXHAgbWRfYWxnCi0gKi8KLXN0YXRpYyBpbnQgY29tcHV0ZV9oYXNoKG1iZWR0bHNfbWRfdHlwZV90IG1kX2FsZywKLSAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgKmlucHV0LCBzaXplX3QgaWxlbiwKLSAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGNoYXIgKm91dHB1dCkKLXsKLSAgICBjb25zdCBtYmVkdGxzX21kX2luZm9fdCAqbWRfaW5mbzsKLQotICAgIG1kX2luZm8gPSBtYmVkdGxzX21kX2luZm9fZnJvbV90eXBlKG1kX2FsZyk7Ci0gICAgaWYgKG1kX2luZm8gPT0gTlVMTCkgewotICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfUlNBX0JBRF9JTlBVVF9EQVRBOwotICAgIH0KLQotICAgIHJldHVybiBtYmVkdGxzX21kKG1kX2luZm8sIGlucHV0LCBpbGVuLCBvdXRwdXQpOwotfQotI2VuZGlmIC8qIE1CRURUTFNfUEtDUzFfVjIxICovCi0KLSNpZiBkZWZpbmVkKE1CRURUTFNfUEtDUzFfVjIxKQotLyoKLSAqIEltcGxlbWVudGF0aW9uIG9mIHRoZSBQS0NTIzEgdjIuMSBSU0FFUy1PQUVQLUVOQ1JZUFQgZnVuY3Rpb24KLSAqLwotaW50IG1iZWR0bHNfcnNhX3JzYWVzX29hZXBfZW5jcnlwdChtYmVkdGxzX3JzYV9jb250ZXh0ICpjdHgsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCAoKmZfcm5nKSh2b2lkICosIHVuc2lnbmVkIGNoYXIgKiwgc2l6ZV90KSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdm9pZCAqcF9ybmcsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgKmxhYmVsLCBzaXplX3QgbGFiZWxfbGVuLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgaWxlbiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdW5zaWduZWQgY2hhciAqaW5wdXQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGNoYXIgKm91dHB1dCkKLXsKLSAgICBzaXplX3Qgb2xlbjsKLSAgICBpbnQgcmV0ID0gTUJFRFRMU19FUlJfRVJST1JfQ09SUlVQVElPTl9ERVRFQ1RFRDsKLSAgICB1bnNpZ25lZCBjaGFyICpwID0gb3V0cHV0OwotICAgIHVuc2lnbmVkIGludCBobGVuOwotCi0gICAgaWYgKGZfcm5nID09IE5VTEwpIHsKLSAgICAgICAgcmV0dXJuIE1CRURUTFNfRVJSX1JTQV9CQURfSU5QVVRfREFUQTsKLSAgICB9Ci0KLSAgICBobGVuID0gbWJlZHRsc19tZF9nZXRfc2l6ZV9mcm9tX3R5cGUoKG1iZWR0bHNfbWRfdHlwZV90KSBjdHgtPmhhc2hfaWQpOwotICAgIGlmIChobGVuID09IDApIHsKLSAgICAgICAgcmV0dXJuIE1CRURUTFNfRVJSX1JTQV9CQURfSU5QVVRfREFUQTsKLSAgICB9Ci0KLSAgICBvbGVuID0gY3R4LT5sZW47Ci0KLSAgICAvKiBmaXJzdCBjb21wYXJpc29uIGNoZWNrcyBmb3Igb3ZlcmZsb3cgKi8KLSAgICBpZiAoaWxlbiArIDIgKiBobGVuICsgMiA8IGlsZW4gfHwgb2xlbiA8IGlsZW4gKyAyICogaGxlbiArIDIpIHsKLSAgICAgICAgcmV0dXJuIE1CRURUTFNfRVJSX1JTQV9CQURfSU5QVVRfREFUQTsKLSAgICB9Ci0KLSAgICBtZW1zZXQob3V0cHV0LCAwLCBvbGVuKTsKLQotICAgICpwKysgPSAwOwotCi0gICAgLyogR2VuZXJhdGUgYSByYW5kb20gb2N0ZXQgc3RyaW5nIHNlZWQgKi8KLSAgICBpZiAoKHJldCA9IGZfcm5nKHBfcm5nLCBwLCBobGVuKSkgIT0gMCkgewotICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJPUl9BREQoTUJFRFRMU19FUlJfUlNBX1JOR19GQUlMRUQsIHJldCk7Ci0gICAgfQotCi0gICAgcCArPSBobGVuOwotCi0gICAgLyogQ29uc3RydWN0IERCICovCi0gICAgcmV0ID0gY29tcHV0ZV9oYXNoKChtYmVkdGxzX21kX3R5cGVfdCkgY3R4LT5oYXNoX2lkLCBsYWJlbCwgbGFiZWxfbGVuLCBwKTsKLSAgICBpZiAocmV0ICE9IDApIHsKLSAgICAgICAgcmV0dXJuIHJldDsKLSAgICB9Ci0gICAgcCArPSBobGVuOwotICAgIHAgKz0gb2xlbiAtIDIgKiBobGVuIC0gMiAtIGlsZW47Ci0gICAgKnArKyA9IDE7Ci0gICAgaWYgKGlsZW4gIT0gMCkgewotICAgICAgICBtZW1jcHkocCwgaW5wdXQsIGlsZW4pOwotICAgIH0KLQotICAgIC8qIG1hc2tlZERCOiBBcHBseSBkYk1hc2sgdG8gREIgKi8KLSAgICBpZiAoKHJldCA9IG1nZl9tYXNrKG91dHB1dCArIGhsZW4gKyAxLCBvbGVuIC0gaGxlbiAtIDEsIG91dHB1dCArIDEsIGhsZW4sCi0gICAgICAgICAgICAgICAgICAgICAgICAobWJlZHRsc19tZF90eXBlX3QpIGN0eC0+aGFzaF9pZCkpICE9IDApIHsKLSAgICAgICAgcmV0dXJuIHJldDsKLSAgICB9Ci0KLSAgICAvKiBtYXNrZWRTZWVkOiBBcHBseSBzZWVkTWFzayB0byBzZWVkICovCi0gICAgaWYgKChyZXQgPSBtZ2ZfbWFzayhvdXRwdXQgKyAxLCBobGVuLCBvdXRwdXQgKyBobGVuICsgMSwgb2xlbiAtIGhsZW4gLSAxLAotICAgICAgICAgICAgICAgICAgICAgICAgKG1iZWR0bHNfbWRfdHlwZV90KSBjdHgtPmhhc2hfaWQpKSAhPSAwKSB7Ci0gICAgICAgIHJldHVybiByZXQ7Ci0gICAgfQotCi0gICAgcmV0dXJuIG1iZWR0bHNfcnNhX3B1YmxpYyhjdHgsIG91dHB1dCwgb3V0cHV0KTsKLX0KLSNlbmRpZiAvKiBNQkVEVExTX1BLQ1MxX1YyMSAqLwotCi0jaWYgZGVmaW5lZChNQkVEVExTX1BLQ1MxX1YxNSkKLS8qCi0gKiBJbXBsZW1lbnRhdGlvbiBvZiB0aGUgUEtDUyMxIHYyLjEgUlNBRVMtUEtDUzEtVjFfNS1FTkNSWVBUIGZ1bmN0aW9uCi0gKi8KLWludCBtYmVkdGxzX3JzYV9yc2Flc19wa2NzMV92MTVfZW5jcnlwdChtYmVkdGxzX3JzYV9jb250ZXh0ICpjdHgsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50ICgqZl9ybmcpKHZvaWQgKiwgdW5zaWduZWQgY2hhciAqLCBzaXplX3QpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZvaWQgKnBfcm5nLCBzaXplX3QgaWxlbiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1bnNpZ25lZCBjaGFyICppbnB1dCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBjaGFyICpvdXRwdXQpCi17Ci0gICAgc2l6ZV90IG5iX3BhZCwgb2xlbjsKLSAgICBpbnQgcmV0ID0gTUJFRFRMU19FUlJfRVJST1JfQ09SUlVQVElPTl9ERVRFQ1RFRDsKLSAgICB1bnNpZ25lZCBjaGFyICpwID0gb3V0cHV0OwotCi0gICAgb2xlbiA9IGN0eC0+bGVuOwotCi0gICAgLyogZmlyc3QgY29tcGFyaXNvbiBjaGVja3MgZm9yIG92ZXJmbG93ICovCi0gICAgaWYgKGlsZW4gKyAxMSA8IGlsZW4gfHwgb2xlbiA8IGlsZW4gKyAxMSkgewotICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfUlNBX0JBRF9JTlBVVF9EQVRBOwotICAgIH0KLQotICAgIG5iX3BhZCA9IG9sZW4gLSAzIC0gaWxlbjsKLQotICAgICpwKysgPSAwOwotCi0gICAgaWYgKGZfcm5nID09IE5VTEwpIHsKLSAgICAgICAgcmV0dXJuIE1CRURUTFNfRVJSX1JTQV9CQURfSU5QVVRfREFUQTsKLSAgICB9Ci0KLSAgICAqcCsrID0gTUJFRFRMU19SU0FfQ1JZUFQ7Ci0KLSAgICB3aGlsZSAobmJfcGFkLS0gPiAwKSB7Ci0gICAgICAgIGludCBybmdfZGwgPSAxMDA7Ci0KLSAgICAgICAgZG8gewotICAgICAgICAgICAgcmV0ID0gZl9ybmcocF9ybmcsIHAsIDEpOwotICAgICAgICB9IHdoaWxlICgqcCA9PSAwICYmIC0tcm5nX2RsICYmIHJldCA9PSAwKTsKLQotICAgICAgICAvKiBDaGVjayBpZiBSTkcgZmFpbGVkIHRvIGdlbmVyYXRlIGRhdGEgKi8KLSAgICAgICAgaWYgKHJuZ19kbCA9PSAwIHx8IHJldCAhPSAwKSB7Ci0gICAgICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJPUl9BREQoTUJFRFRMU19FUlJfUlNBX1JOR19GQUlMRUQsIHJldCk7Ci0gICAgICAgIH0KLQotICAgICAgICBwKys7Ci0gICAgfQotCi0gICAgKnArKyA9IDA7Ci0gICAgaWYgKGlsZW4gIT0gMCkgewotICAgICAgICBtZW1jcHkocCwgaW5wdXQsIGlsZW4pOwotICAgIH0KLQotICAgIHJldHVybiBtYmVkdGxzX3JzYV9wdWJsaWMoY3R4LCBvdXRwdXQsIG91dHB1dCk7Ci19Ci0jZW5kaWYgLyogTUJFRFRMU19QS0NTMV9WMTUgKi8KLQotLyoKLSAqIEFkZCB0aGUgbWVzc2FnZSBwYWRkaW5nLCB0aGVuIGRvIGFuIFJTQSBvcGVyYXRpb24KLSAqLwotaW50IG1iZWR0bHNfcnNhX3BrY3MxX2VuY3J5cHQobWJlZHRsc19yc2FfY29udGV4dCAqY3R4LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50ICgqZl9ybmcpKHZvaWQgKiwgdW5zaWduZWQgY2hhciAqLCBzaXplX3QpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdm9pZCAqcF9ybmcsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgaWxlbiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgKmlucHV0LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgY2hhciAqb3V0cHV0KQotewotICAgIHN3aXRjaCAoY3R4LT5wYWRkaW5nKSB7Ci0jaWYgZGVmaW5lZChNQkVEVExTX1BLQ1MxX1YxNSkKLSAgICAgICAgY2FzZSBNQkVEVExTX1JTQV9QS0NTX1YxNToKLSAgICAgICAgICAgIHJldHVybiBtYmVkdGxzX3JzYV9yc2Flc19wa2NzMV92MTVfZW5jcnlwdChjdHgsIGZfcm5nLCBwX3JuZywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbGVuLCBpbnB1dCwgb3V0cHV0KTsKLSNlbmRpZgotCi0jaWYgZGVmaW5lZChNQkVEVExTX1BLQ1MxX1YyMSkKLSAgICAgICAgY2FzZSBNQkVEVExTX1JTQV9QS0NTX1YyMToKLSAgICAgICAgICAgIHJldHVybiBtYmVkdGxzX3JzYV9yc2Flc19vYWVwX2VuY3J5cHQoY3R4LCBmX3JuZywgcF9ybmcsIE5VTEwsIDAsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlsZW4sIGlucHV0LCBvdXRwdXQpOwotI2VuZGlmCi0KLSAgICAgICAgZGVmYXVsdDoKLSAgICAgICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9SU0FfSU5WQUxJRF9QQURESU5HOwotICAgIH0KLX0KLQotI2lmIGRlZmluZWQoTUJFRFRMU19QS0NTMV9WMjEpCi0vKgotICogSW1wbGVtZW50YXRpb24gb2YgdGhlIFBLQ1MjMSB2Mi4xIFJTQUVTLU9BRVAtREVDUllQVCBmdW5jdGlvbgotICovCi1pbnQgbWJlZHRsc19yc2FfcnNhZXNfb2FlcF9kZWNyeXB0KG1iZWR0bHNfcnNhX2NvbnRleHQgKmN0eCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50ICgqZl9ybmcpKHZvaWQgKiwgdW5zaWduZWQgY2hhciAqLCBzaXplX3QpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2b2lkICpwX3JuZywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdW5zaWduZWQgY2hhciAqbGFiZWwsIHNpemVfdCBsYWJlbF9sZW4sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCAqb2xlbiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdW5zaWduZWQgY2hhciAqaW5wdXQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGNoYXIgKm91dHB1dCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IG91dHB1dF9tYXhfbGVuKQotewotICAgIGludCByZXQgPSBNQkVEVExTX0VSUl9FUlJPUl9DT1JSVVBUSU9OX0RFVEVDVEVEOwotICAgIHNpemVfdCBpbGVuLCBpLCBwYWRfbGVuOwotICAgIHVuc2lnbmVkIGNoYXIgKnA7Ci0gICAgbWJlZHRsc19jdF9jb25kaXRpb25fdCBiYWQsIGluX3BhZGRpbmc7Ci0gICAgdW5zaWduZWQgY2hhciBidWZbTUJFRFRMU19NUElfTUFYX1NJWkVdOwotICAgIHVuc2lnbmVkIGNoYXIgbGhhc2hbTUJFRFRMU19NRF9NQVhfU0laRV07Ci0gICAgdW5zaWduZWQgaW50IGhsZW47Ci0KLSAgICAvKgotICAgICAqIFBhcmFtZXRlcnMgc2FuaXR5IGNoZWNrcwotICAgICAqLwotICAgIGlmIChjdHgtPnBhZGRpbmcgIT0gTUJFRFRMU19SU0FfUEtDU19WMjEpIHsKLSAgICAgICAgcmV0dXJuIE1CRURUTFNfRVJSX1JTQV9CQURfSU5QVVRfREFUQTsKLSAgICB9Ci0KLSAgICBpbGVuID0gY3R4LT5sZW47Ci0KLSAgICBpZiAoaWxlbiA8IDE2IHx8IGlsZW4gPiBzaXplb2YoYnVmKSkgewotICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfUlNBX0JBRF9JTlBVVF9EQVRBOwotICAgIH0KLQotICAgIGhsZW4gPSBtYmVkdGxzX21kX2dldF9zaXplX2Zyb21fdHlwZSgobWJlZHRsc19tZF90eXBlX3QpIGN0eC0+aGFzaF9pZCk7Ci0gICAgaWYgKGhsZW4gPT0gMCkgewotICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfUlNBX0JBRF9JTlBVVF9EQVRBOwotICAgIH0KLQotICAgIC8vIGNoZWNraW5nIGZvciBpbnRlZ2VyIHVuZGVyZmxvdwotICAgIGlmICgyICogaGxlbiArIDIgPiBpbGVuKSB7Ci0gICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9SU0FfQkFEX0lOUFVUX0RBVEE7Ci0gICAgfQotCi0gICAgLyoKLSAgICAgKiBSU0Egb3BlcmF0aW9uCi0gICAgICovCi0gICAgcmV0ID0gbWJlZHRsc19yc2FfcHJpdmF0ZShjdHgsIGZfcm5nLCBwX3JuZywgaW5wdXQsIGJ1Zik7Ci0KLSAgICBpZiAocmV0ICE9IDApIHsKLSAgICAgICAgZ290byBjbGVhbnVwOwotICAgIH0KLQotICAgIC8qCi0gICAgICogVW5tYXNrIGRhdGEgYW5kIGdlbmVyYXRlIGxIYXNoCi0gICAgICovCi0gICAgLyogc2VlZDogQXBwbHkgc2VlZE1hc2sgdG8gbWFza2VkU2VlZCAqLwotICAgIGlmICgocmV0ID0gbWdmX21hc2soYnVmICsgMSwgaGxlbiwgYnVmICsgaGxlbiArIDEsIGlsZW4gLSBobGVuIC0gMSwKLSAgICAgICAgICAgICAgICAgICAgICAgIChtYmVkdGxzX21kX3R5cGVfdCkgY3R4LT5oYXNoX2lkKSkgIT0gMCB8fAotICAgICAgICAvKiBEQjogQXBwbHkgZGJNYXNrIHRvIG1hc2tlZERCICovCi0gICAgICAgIChyZXQgPSBtZ2ZfbWFzayhidWYgKyBobGVuICsgMSwgaWxlbiAtIGhsZW4gLSAxLCBidWYgKyAxLCBobGVuLAotICAgICAgICAgICAgICAgICAgICAgICAgKG1iZWR0bHNfbWRfdHlwZV90KSBjdHgtPmhhc2hfaWQpKSAhPSAwKSB7Ci0gICAgICAgIGdvdG8gY2xlYW51cDsKLSAgICB9Ci0KLSAgICAvKiBHZW5lcmF0ZSBsSGFzaCAqLwotICAgIHJldCA9IGNvbXB1dGVfaGFzaCgobWJlZHRsc19tZF90eXBlX3QpIGN0eC0+aGFzaF9pZCwKLSAgICAgICAgICAgICAgICAgICAgICAgbGFiZWwsIGxhYmVsX2xlbiwgbGhhc2gpOwotICAgIGlmIChyZXQgIT0gMCkgewotICAgICAgICBnb3RvIGNsZWFudXA7Ci0gICAgfQotCi0gICAgLyoKLSAgICAgKiBDaGVjayBjb250ZW50cywgaW4gImNvbnN0YW50LXRpbWUiCi0gICAgICovCi0gICAgcCA9IGJ1ZjsKLQotICAgIGJhZCA9IG1iZWR0bHNfY3RfYm9vbCgqcCsrKTsgLyogRmlyc3QgYnl0ZSBtdXN0IGJlIDAgKi8KLQotICAgIHAgKz0gaGxlbjsgLyogU2tpcCBzZWVkICovCi0KLSAgICAvKiBDaGVjayBsSGFzaCAqLwotICAgIGJhZCA9IG1iZWR0bHNfY3RfYm9vbF9vcihiYWQsIG1iZWR0bHNfY3RfYm9vbChtYmVkdGxzX2N0X21lbWNtcChsaGFzaCwgcCwgaGxlbikpKTsKLSAgICBwICs9IGhsZW47Ci0KLSAgICAvKiBHZXQgemVyby1wYWRkaW5nIGxlbiwgYnV0IGFsd2F5cyByZWFkIHRpbGwgZW5kIG9mIGJ1ZmZlcgotICAgICAqIChtaW51cyBvbmUsIGZvciB0aGUgMDEgYnl0ZSkgKi8KLSAgICBwYWRfbGVuID0gMDsKLSAgICBpbl9wYWRkaW5nID0gTUJFRFRMU19DVF9UUlVFOwotICAgIGZvciAoaSA9IDA7IGkgPCBpbGVuIC0gMiAqIGhsZW4gLSAyOyBpKyspIHsKLSAgICAgICAgaW5fcGFkZGluZyA9IG1iZWR0bHNfY3RfYm9vbF9hbmQoaW5fcGFkZGluZywgbWJlZHRsc19jdF91aW50X2VxKHBbaV0sIDApKTsKLSAgICAgICAgcGFkX2xlbiArPSBtYmVkdGxzX2N0X3VpbnRfaWZfZWxzZV8wKGluX3BhZGRpbmcsIDEpOwotICAgIH0KLQotICAgIHAgKz0gcGFkX2xlbjsKLSAgICBiYWQgPSBtYmVkdGxzX2N0X2Jvb2xfb3IoYmFkLCBtYmVkdGxzX2N0X3VpbnRfbmUoKnArKywgMHgwMSkpOwotCi0gICAgLyoKLSAgICAgKiBUaGUgb25seSBpbmZvcm1hdGlvbiAibGVha2VkIiBpcyB3aGV0aGVyIHRoZSBwYWRkaW5nIHdhcyBjb3JyZWN0IG9yIG5vdAotICAgICAqIChlZywgbm8gZGF0YSBpcyBjb3BpZWQgaWYgaXQgd2FzIG5vdCBjb3JyZWN0KS4gVGhpcyBtZWV0cyB0aGUKLSAgICAgKiByZWNvbW1lbmRhdGlvbnMgaW4gUEtDUyMxIHYyLjI6IGFuIG9wcG9uZW50IGNhbm5vdCBkaXN0aW5ndWlzaCBiZXR3ZWVuCi0gICAgICogdGhlIGRpZmZlcmVudCBlcnJvciBjb25kaXRpb25zLgotICAgICAqLwotICAgIGlmIChiYWQgIT0gTUJFRFRMU19DVF9GQUxTRSkgewotICAgICAgICByZXQgPSBNQkVEVExTX0VSUl9SU0FfSU5WQUxJRF9QQURESU5HOwotICAgICAgICBnb3RvIGNsZWFudXA7Ci0gICAgfQotCi0gICAgaWYgKGlsZW4gLSAoKHNpemVfdCkgKHAgLSBidWYpKSA+IG91dHB1dF9tYXhfbGVuKSB7Ci0gICAgICAgIHJldCA9IE1CRURUTFNfRVJSX1JTQV9PVVRQVVRfVE9PX0xBUkdFOwotICAgICAgICBnb3RvIGNsZWFudXA7Ci0gICAgfQotCi0gICAgKm9sZW4gPSBpbGVuIC0gKChzaXplX3QpIChwIC0gYnVmKSk7Ci0gICAgaWYgKCpvbGVuICE9IDApIHsKLSAgICAgICAgbWVtY3B5KG91dHB1dCwgcCwgKm9sZW4pOwotICAgIH0KLSAgICByZXQgPSAwOwotCi1jbGVhbnVwOgotICAgIG1iZWR0bHNfcGxhdGZvcm1femVyb2l6ZShidWYsIHNpemVvZihidWYpKTsKLSAgICBtYmVkdGxzX3BsYXRmb3JtX3plcm9pemUobGhhc2gsIHNpemVvZihsaGFzaCkpOwotCi0gICAgcmV0dXJuIHJldDsKLX0KLSNlbmRpZiAvKiBNQkVEVExTX1BLQ1MxX1YyMSAqLwotCi0jaWYgZGVmaW5lZChNQkVEVExTX1BLQ1MxX1YxNSkKLS8qCi0gKiBJbXBsZW1lbnRhdGlvbiBvZiB0aGUgUEtDUyMxIHYyLjEgUlNBRVMtUEtDUzEtVjFfNS1ERUNSWVBUIGZ1bmN0aW9uCi0gKi8KLWludCBtYmVkdGxzX3JzYV9yc2Flc19wa2NzMV92MTVfZGVjcnlwdChtYmVkdGxzX3JzYV9jb250ZXh0ICpjdHgsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50ICgqZl9ybmcpKHZvaWQgKiwgdW5zaWduZWQgY2hhciAqLCBzaXplX3QpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZvaWQgKnBfcm5nLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCAqb2xlbiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1bnNpZ25lZCBjaGFyICppbnB1dCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBjaGFyICpvdXRwdXQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IG91dHB1dF9tYXhfbGVuKQotewotICAgIGludCByZXQgPSBNQkVEVExTX0VSUl9FUlJPUl9DT1JSVVBUSU9OX0RFVEVDVEVEOwotICAgIHNpemVfdCBpbGVuOwotICAgIHVuc2lnbmVkIGNoYXIgYnVmW01CRURUTFNfTVBJX01BWF9TSVpFXTsKLQotICAgIGlsZW4gPSBjdHgtPmxlbjsKLQotICAgIGlmIChjdHgtPnBhZGRpbmcgIT0gTUJFRFRMU19SU0FfUEtDU19WMTUpIHsKLSAgICAgICAgcmV0dXJuIE1CRURUTFNfRVJSX1JTQV9CQURfSU5QVVRfREFUQTsKLSAgICB9Ci0KLSAgICBpZiAoaWxlbiA8IDE2IHx8IGlsZW4gPiBzaXplb2YoYnVmKSkgewotICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfUlNBX0JBRF9JTlBVVF9EQVRBOwotICAgIH0KLQotICAgIHJldCA9IG1iZWR0bHNfcnNhX3ByaXZhdGUoY3R4LCBmX3JuZywgcF9ybmcsIGlucHV0LCBidWYpOwotCi0gICAgaWYgKHJldCAhPSAwKSB7Ci0gICAgICAgIGdvdG8gY2xlYW51cDsKLSAgICB9Ci0KLSAgICByZXQgPSBtYmVkdGxzX2N0X3JzYWVzX3BrY3MxX3YxNV91bnBhZGRpbmcoYnVmLCBpbGVuLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvdXRwdXQsIG91dHB1dF9tYXhfbGVuLCBvbGVuKTsKLQotY2xlYW51cDoKLSAgICBtYmVkdGxzX3BsYXRmb3JtX3plcm9pemUoYnVmLCBzaXplb2YoYnVmKSk7Ci0KLSAgICByZXR1cm4gcmV0OwotfQotI2VuZGlmIC8qIE1CRURUTFNfUEtDUzFfVjE1ICovCi0KLS8qCi0gKiBEbyBhbiBSU0Egb3BlcmF0aW9uLCB0aGVuIHJlbW92ZSB0aGUgbWVzc2FnZSBwYWRkaW5nCi0gKi8KLWludCBtYmVkdGxzX3JzYV9wa2NzMV9kZWNyeXB0KG1iZWR0bHNfcnNhX2NvbnRleHQgKmN0eCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCAoKmZfcm5nKSh2b2lkICosIHVuc2lnbmVkIGNoYXIgKiwgc2l6ZV90KSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZvaWQgKnBfcm5nLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90ICpvbGVuLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdW5zaWduZWQgY2hhciAqaW5wdXQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBjaGFyICpvdXRwdXQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3Qgb3V0cHV0X21heF9sZW4pCi17Ci0gICAgc3dpdGNoIChjdHgtPnBhZGRpbmcpIHsKLSNpZiBkZWZpbmVkKE1CRURUTFNfUEtDUzFfVjE1KQotICAgICAgICBjYXNlIE1CRURUTFNfUlNBX1BLQ1NfVjE1OgotICAgICAgICAgICAgcmV0dXJuIG1iZWR0bHNfcnNhX3JzYWVzX3BrY3MxX3YxNV9kZWNyeXB0KGN0eCwgZl9ybmcsIHBfcm5nLCBvbGVuLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlucHV0LCBvdXRwdXQsIG91dHB1dF9tYXhfbGVuKTsKLSNlbmRpZgotCi0jaWYgZGVmaW5lZChNQkVEVExTX1BLQ1MxX1YyMSkKLSAgICAgICAgY2FzZSBNQkVEVExTX1JTQV9QS0NTX1YyMToKLSAgICAgICAgICAgIHJldHVybiBtYmVkdGxzX3JzYV9yc2Flc19vYWVwX2RlY3J5cHQoY3R4LCBmX3JuZywgcF9ybmcsIE5VTEwsIDAsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9sZW4sIGlucHV0LCBvdXRwdXQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG91dHB1dF9tYXhfbGVuKTsKLSNlbmRpZgotCi0gICAgICAgIGRlZmF1bHQ6Ci0gICAgICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfUlNBX0lOVkFMSURfUEFERElORzsKLSAgICB9Ci19Ci0KLSNpZiBkZWZpbmVkKE1CRURUTFNfUEtDUzFfVjIxKQotc3RhdGljIGludCByc2FfcnNhc3NhX3Bzc19zaWduX25vX21vZGVfY2hlY2sobWJlZHRsc19yc2FfY29udGV4dCAqY3R4LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50ICgqZl9ybmcpKHZvaWQgKiwgdW5zaWduZWQgY2hhciAqLCBzaXplX3QpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdm9pZCAqcF9ybmcsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYmVkdGxzX21kX3R5cGVfdCBtZF9hbGcsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgaGFzaGxlbiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgKmhhc2gsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgc2FsdGxlbiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGNoYXIgKnNpZykKLXsKLSAgICBzaXplX3Qgb2xlbjsKLSAgICB1bnNpZ25lZCBjaGFyICpwID0gc2lnOwotICAgIHVuc2lnbmVkIGNoYXIgKnNhbHQgPSBOVUxMOwotICAgIHNpemVfdCBzbGVuLCBtaW5fc2xlbiwgaGxlbiwgb2Zmc2V0ID0gMDsKLSAgICBpbnQgcmV0ID0gTUJFRFRMU19FUlJfRVJST1JfQ09SUlVQVElPTl9ERVRFQ1RFRDsKLSAgICBzaXplX3QgbXNiOwotICAgIG1iZWR0bHNfbWRfdHlwZV90IGhhc2hfaWQ7Ci0KLSAgICBpZiAoKG1kX2FsZyAhPSBNQkVEVExTX01EX05PTkUgfHwgaGFzaGxlbiAhPSAwKSAmJiBoYXNoID09IE5VTEwpIHsKLSAgICAgICAgcmV0dXJuIE1CRURUTFNfRVJSX1JTQV9CQURfSU5QVVRfREFUQTsKLSAgICB9Ci0KLSAgICBpZiAoZl9ybmcgPT0gTlVMTCkgewotICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfUlNBX0JBRF9JTlBVVF9EQVRBOwotICAgIH0KLQotICAgIG9sZW4gPSBjdHgtPmxlbjsKLQotICAgIGlmIChtZF9hbGcgIT0gTUJFRFRMU19NRF9OT05FKSB7Ci0gICAgICAgIC8qIEdhdGhlciBsZW5ndGggb2YgaGFzaCB0byBzaWduICovCi0gICAgICAgIHNpemVfdCBleHBfaGFzaGxlbiA9IG1iZWR0bHNfbWRfZ2V0X3NpemVfZnJvbV90eXBlKG1kX2FsZyk7Ci0gICAgICAgIGlmIChleHBfaGFzaGxlbiA9PSAwKSB7Ci0gICAgICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfUlNBX0JBRF9JTlBVVF9EQVRBOwotICAgICAgICB9Ci0KLSAgICAgICAgaWYgKGhhc2hsZW4gIT0gZXhwX2hhc2hsZW4pIHsKLSAgICAgICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9SU0FfQkFEX0lOUFVUX0RBVEE7Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICBoYXNoX2lkID0gKG1iZWR0bHNfbWRfdHlwZV90KSBjdHgtPmhhc2hfaWQ7Ci0gICAgaWYgKGhhc2hfaWQgPT0gTUJFRFRMU19NRF9OT05FKSB7Ci0gICAgICAgIGhhc2hfaWQgPSBtZF9hbGc7Ci0gICAgfQotICAgIGhsZW4gPSBtYmVkdGxzX21kX2dldF9zaXplX2Zyb21fdHlwZShoYXNoX2lkKTsKLSAgICBpZiAoaGxlbiA9PSAwKSB7Ci0gICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9SU0FfQkFEX0lOUFVUX0RBVEE7Ci0gICAgfQotCi0gICAgaWYgKHNhbHRsZW4gPT0gTUJFRFRMU19SU0FfU0FMVF9MRU5fQU5ZKSB7Ci0gICAgICAgIC8qIENhbGN1bGF0ZSB0aGUgbGFyZ2VzdCBwb3NzaWJsZSBzYWx0IGxlbmd0aCwgdXAgdG8gdGhlIGhhc2ggc2l6ZS4KLSAgICAgICAgICogTm9ybWFsbHkgdGhpcyBpcyB0aGUgaGFzaCBsZW5ndGgsIHdoaWNoIGlzIHRoZSBtYXhpbXVtIHNhbHQgbGVuZ3RoCi0gICAgICAgICAqIGFjY29yZGluZyB0byBGSVBTIDE4NS00IMKnNS41IChlKSBhbmQgY29tbW9uIHByYWN0aWNlLiBJZiB0aGVyZSBpcyBub3QKLSAgICAgICAgICogZW5vdWdoIHJvb20sIHVzZSB0aGUgbWF4aW11bSBzYWx0IGxlbmd0aCB0aGF0IGZpdHMuIFRoZSBjb25zdHJhaW50IGlzCi0gICAgICAgICAqIHRoYXQgdGhlIGhhc2ggbGVuZ3RoIHBsdXMgdGhlIHNhbHQgbGVuZ3RoIHBsdXMgMiBieXRlcyBtdXN0IGJlIGF0IG1vc3QKLSAgICAgICAgICogdGhlIGtleSBsZW5ndGguIFRoaXMgY29tcGxpZXMgd2l0aCBGSVBTIDE4Ni00IMKnNS41IChlKSBhbmQgUkZDIDgwMTcKLSAgICAgICAgICogKFBLQ1MjMSB2Mi4yKSDCpzkuMS4xIHN0ZXAgMy4gKi8KLSAgICAgICAgbWluX3NsZW4gPSBobGVuIC0gMjsKLSAgICAgICAgaWYgKG9sZW4gPCBobGVuICsgbWluX3NsZW4gKyAyKSB7Ci0gICAgICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfUlNBX0JBRF9JTlBVVF9EQVRBOwotICAgICAgICB9IGVsc2UgaWYgKG9sZW4gPj0gaGxlbiArIGhsZW4gKyAyKSB7Ci0gICAgICAgICAgICBzbGVuID0gaGxlbjsKLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIHNsZW4gPSBvbGVuIC0gaGxlbiAtIDI7Ci0gICAgICAgIH0KLSAgICB9IGVsc2UgaWYgKChzYWx0bGVuIDwgMCkgfHwgKHNhbHRsZW4gKyBobGVuICsgMiA+IG9sZW4pKSB7Ci0gICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9SU0FfQkFEX0lOUFVUX0RBVEE7Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgc2xlbiA9IChzaXplX3QpIHNhbHRsZW47Ci0gICAgfQotCi0gICAgbWVtc2V0KHNpZywgMCwgb2xlbik7Ci0KLSAgICAvKiBOb3RlOiBFTVNBLVBTUyBlbmNvZGluZyBpcyBvdmVyIHRoZSBsZW5ndGggb2YgTiAtIDEgYml0cyAqLwotICAgIG1zYiA9IG1iZWR0bHNfbXBpX2JpdGxlbigmY3R4LT5OKSAtIDE7Ci0gICAgcCArPSBvbGVuIC0gaGxlbiAtIHNsZW4gLSAyOwotICAgICpwKysgPSAweDAxOwotCi0gICAgLyogR2VuZXJhdGUgc2FsdCBvZiBsZW5ndGggc2xlbiBpbiBwbGFjZSBpbiB0aGUgZW5jb2RlZCBtZXNzYWdlICovCi0gICAgc2FsdCA9IHA7Ci0gICAgaWYgKChyZXQgPSBmX3JuZyhwX3JuZywgc2FsdCwgc2xlbikpICE9IDApIHsKLSAgICAgICAgcmV0dXJuIE1CRURUTFNfRVJST1JfQUREKE1CRURUTFNfRVJSX1JTQV9STkdfRkFJTEVELCByZXQpOwotICAgIH0KLQotICAgIHAgKz0gc2xlbjsKLQotICAgIC8qIEdlbmVyYXRlIEggPSBIYXNoKCBNJyApICovCi0gICAgcmV0ID0gaGFzaF9tcHJpbWUoaGFzaCwgaGFzaGxlbiwgc2FsdCwgc2xlbiwgcCwgaGFzaF9pZCk7Ci0gICAgaWYgKHJldCAhPSAwKSB7Ci0gICAgICAgIHJldHVybiByZXQ7Ci0gICAgfQotCi0gICAgLyogQ29tcGVuc2F0ZSBmb3IgYm91bmRhcnkgY29uZGl0aW9uIHdoZW4gYXBwbHlpbmcgbWFzayAqLwotICAgIGlmIChtc2IgJSA4ID09IDApIHsKLSAgICAgICAgb2Zmc2V0ID0gMTsKLSAgICB9Ci0KLSAgICAvKiBtYXNrZWREQjogQXBwbHkgZGJNYXNrIHRvIERCICovCi0gICAgcmV0ID0gbWdmX21hc2soc2lnICsgb2Zmc2V0LCBvbGVuIC0gaGxlbiAtIDEgLSBvZmZzZXQsIHAsIGhsZW4sIGhhc2hfaWQpOwotICAgIGlmIChyZXQgIT0gMCkgewotICAgICAgICByZXR1cm4gcmV0OwotICAgIH0KLQotICAgIG1zYiA9IG1iZWR0bHNfbXBpX2JpdGxlbigmY3R4LT5OKSAtIDE7Ci0gICAgc2lnWzBdICY9IDB4RkYgPj4gKG9sZW4gKiA4IC0gbXNiKTsKLQotICAgIHAgKz0gaGxlbjsKLSAgICAqcCsrID0gMHhCQzsKLQotICAgIHJldHVybiBtYmVkdGxzX3JzYV9wcml2YXRlKGN0eCwgZl9ybmcsIHBfcm5nLCBzaWcsIHNpZyk7Ci19Ci0KLXN0YXRpYyBpbnQgcnNhX3JzYXNzYV9wc3Nfc2lnbihtYmVkdGxzX3JzYV9jb250ZXh0ICpjdHgsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50ICgqZl9ybmcpKHZvaWQgKiwgdW5zaWduZWQgY2hhciAqLCBzaXplX3QpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZvaWQgKnBfcm5nLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1iZWR0bHNfbWRfdHlwZV90IG1kX2FsZywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgaGFzaGxlbiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1bnNpZ25lZCBjaGFyICpoYXNoLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBzYWx0bGVuLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGNoYXIgKnNpZykKLXsKLSAgICBpZiAoY3R4LT5wYWRkaW5nICE9IE1CRURUTFNfUlNBX1BLQ1NfVjIxKSB7Ci0gICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9SU0FfQkFEX0lOUFVUX0RBVEE7Ci0gICAgfQotICAgIGlmICgoY3R4LT5oYXNoX2lkID09IE1CRURUTFNfTURfTk9ORSkgJiYgKG1kX2FsZyA9PSBNQkVEVExTX01EX05PTkUpKSB7Ci0gICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9SU0FfQkFEX0lOUFVUX0RBVEE7Ci0gICAgfQotICAgIHJldHVybiByc2FfcnNhc3NhX3Bzc19zaWduX25vX21vZGVfY2hlY2soY3R4LCBmX3JuZywgcF9ybmcsIG1kX2FsZywgaGFzaGxlbiwgaGFzaCwgc2FsdGxlbiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpZyk7Ci19Ci0KLWludCBtYmVkdGxzX3JzYV9yc2Fzc2FfcHNzX3NpZ25fbm9fbW9kZV9jaGVjayhtYmVkdGxzX3JzYV9jb250ZXh0ICpjdHgsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50ICgqZl9ybmcpKHZvaWQgKiwgdW5zaWduZWQgY2hhciAqLCBzaXplX3QpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZvaWQgKnBfcm5nLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1iZWR0bHNfbWRfdHlwZV90IG1kX2FsZywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgaGFzaGxlbiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1bnNpZ25lZCBjaGFyICpoYXNoLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGNoYXIgKnNpZykKLXsKLSAgICByZXR1cm4gcnNhX3JzYXNzYV9wc3Nfc2lnbl9ub19tb2RlX2NoZWNrKGN0eCwgZl9ybmcsIHBfcm5nLCBtZF9hbGcsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYXNobGVuLCBoYXNoLCBNQkVEVExTX1JTQV9TQUxUX0xFTl9BTlksIHNpZyk7Ci19Ci0KLS8qCi0gKiBJbXBsZW1lbnRhdGlvbiBvZiB0aGUgUEtDUyMxIHYyLjEgUlNBU1NBLVBTUy1TSUdOIGZ1bmN0aW9uIHdpdGgKLSAqIHRoZSBvcHRpb24gdG8gcGFzcyBpbiB0aGUgc2FsdCBsZW5ndGguCi0gKi8KLWludCBtYmVkdGxzX3JzYV9yc2Fzc2FfcHNzX3NpZ25fZXh0KG1iZWR0bHNfcnNhX2NvbnRleHQgKmN0eCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCAoKmZfcm5nKSh2b2lkICosIHVuc2lnbmVkIGNoYXIgKiwgc2l6ZV90KSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZvaWQgKnBfcm5nLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWJlZHRsc19tZF90eXBlX3QgbWRfYWxnLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50IGhhc2hsZW4sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1bnNpZ25lZCBjaGFyICpoYXNoLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IHNhbHRsZW4sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBjaGFyICpzaWcpCi17Ci0gICAgcmV0dXJuIHJzYV9yc2Fzc2FfcHNzX3NpZ24oY3R4LCBmX3JuZywgcF9ybmcsIG1kX2FsZywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYXNobGVuLCBoYXNoLCBzYWx0bGVuLCBzaWcpOwotfQotCi0vKgotICogSW1wbGVtZW50YXRpb24gb2YgdGhlIFBLQ1MjMSB2Mi4xIFJTQVNTQS1QU1MtU0lHTiBmdW5jdGlvbgotICovCi1pbnQgbWJlZHRsc19yc2FfcnNhc3NhX3Bzc19zaWduKG1iZWR0bHNfcnNhX2NvbnRleHQgKmN0eCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50ICgqZl9ybmcpKHZvaWQgKiwgdW5zaWduZWQgY2hhciAqLCBzaXplX3QpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2b2lkICpwX3JuZywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWJlZHRsc19tZF90eXBlX3QgbWRfYWxnLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgaGFzaGxlbiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdW5zaWduZWQgY2hhciAqaGFzaCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgY2hhciAqc2lnKQotewotICAgIHJldHVybiByc2FfcnNhc3NhX3Bzc19zaWduKGN0eCwgZl9ybmcsIHBfcm5nLCBtZF9hbGcsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFzaGxlbiwgaGFzaCwgTUJFRFRMU19SU0FfU0FMVF9MRU5fQU5ZLCBzaWcpOwotfQotI2VuZGlmIC8qIE1CRURUTFNfUEtDUzFfVjIxICovCi0KLSNpZiBkZWZpbmVkKE1CRURUTFNfUEtDUzFfVjE1KQotLyoKLSAqIEltcGxlbWVudGF0aW9uIG9mIHRoZSBQS0NTIzEgdjIuMSBSU0FTU0EtUEtDUzEtVjFfNS1TSUdOIGZ1bmN0aW9uCi0gKi8KLQotLyogQ29uc3RydWN0IGEgUEtDUyB2MS41IGVuY29kaW5nIG9mIGEgaGFzaGVkIG1lc3NhZ2UKLSAqCi0gKiBUaGlzIGlzIHVzZWQgYm90aCBmb3Igc2lnbmF0dXJlIGdlbmVyYXRpb24gYW5kIHZlcmlmaWNhdGlvbi4KLSAqCi0gKiBQYXJhbWV0ZXJzOgotICogLSBtZF9hbGc6ICBJZGVudGlmaWVzIHRoZSBoYXNoIGFsZ29yaXRobSB1c2VkIHRvIGdlbmVyYXRlIHRoZSBnaXZlbiBoYXNoOwotICogICAgICAgICAgICBNQkVEVExTX01EX05PTkUgaWYgcmF3IGRhdGEgaXMgc2lnbmVkLgotICogLSBoYXNobGVuOiBMZW5ndGggb2YgaGFzaC4gTXVzdCBtYXRjaCBtZF9hbGcgaWYgdGhhdCdzIG5vdCBOT05FLgotICogLSBoYXNoOiAgICBCdWZmZXIgY29udGFpbmluZyB0aGUgaGFzaGVkIG1lc3NhZ2Ugb3IgdGhlIHJhdyBkYXRhLgotICogLSBkc3RfbGVuOiBMZW5ndGggb2YgdGhlIGVuY29kZWQgbWVzc2FnZS4KLSAqIC0gZHN0OiAgICAgQnVmZmVyIHRvIGhvbGQgdGhlIGVuY29kZWQgbWVzc2FnZS4KLSAqCi0gKiBBc3N1bXB0aW9uczoKLSAqIC0gaGFzaCBoYXMgc2l6ZSBoYXNobGVuLgotICogLSBkc3QgcG9pbnRzIHRvIGEgYnVmZmVyIG9mIHNpemUgYXQgbGVhc3QgZHN0X2xlbi4KLSAqCi0gKi8KLXN0YXRpYyBpbnQgcnNhX3JzYXNzYV9wa2NzMV92MTVfZW5jb2RlKG1iZWR0bHNfbWRfdHlwZV90IG1kX2FsZywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCBoYXNobGVuLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdW5zaWduZWQgY2hhciAqaGFzaCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBkc3RfbGVuLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgY2hhciAqZHN0KQotewotICAgIHNpemVfdCBvaWRfc2l6ZSAgPSAwOwotICAgIHNpemVfdCBuYl9wYWQgICAgPSBkc3RfbGVuOwotICAgIHVuc2lnbmVkIGNoYXIgKnAgPSBkc3Q7Ci0gICAgY29uc3QgY2hhciAqb2lkICA9IE5VTEw7Ci0KLSAgICAvKiBBcmUgd2Ugc2lnbmluZyBoYXNoZWQgb3IgcmF3IGRhdGE/ICovCi0gICAgaWYgKG1kX2FsZyAhPSBNQkVEVExTX01EX05PTkUpIHsKLSAgICAgICAgdW5zaWduZWQgY2hhciBtZF9zaXplID0gbWJlZHRsc19tZF9nZXRfc2l6ZV9mcm9tX3R5cGUobWRfYWxnKTsKLSAgICAgICAgaWYgKG1kX3NpemUgPT0gMCkgewotICAgICAgICAgICAgcmV0dXJuIE1CRURUTFNfRVJSX1JTQV9CQURfSU5QVVRfREFUQTsKLSAgICAgICAgfQotCi0gICAgICAgIGlmIChtYmVkdGxzX29pZF9nZXRfb2lkX2J5X21kKG1kX2FsZywgJm9pZCwgJm9pZF9zaXplKSAhPSAwKSB7Ci0gICAgICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfUlNBX0JBRF9JTlBVVF9EQVRBOwotICAgICAgICB9Ci0KLSAgICAgICAgaWYgKGhhc2hsZW4gIT0gbWRfc2l6ZSkgewotICAgICAgICAgICAgcmV0dXJuIE1CRURUTFNfRVJSX1JTQV9CQURfSU5QVVRfREFUQTsKLSAgICAgICAgfQotCi0gICAgICAgIC8qIERvdWJsZS1jaGVjayB0aGF0IDggKyBoYXNobGVuICsgb2lkX3NpemUgY2FuIGJlIHVzZWQgYXMgYQotICAgICAgICAgKiAxLWJ5dGUgQVNOLjEgbGVuZ3RoIGVuY29kaW5nIGFuZCB0aGF0IHRoZXJlJ3Mgbm8gb3ZlcmZsb3cuICovCi0gICAgICAgIGlmICg4ICsgaGFzaGxlbiArIG9pZF9zaXplICA+PSAweDgwICAgICAgICAgfHwKLSAgICAgICAgICAgIDEwICsgaGFzaGxlbiAgICAgICAgICAgIDwgIGhhc2hsZW4gICAgICB8fAotICAgICAgICAgICAgMTAgKyBoYXNobGVuICsgb2lkX3NpemUgPCAgMTAgKyBoYXNobGVuKSB7Ci0gICAgICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfUlNBX0JBRF9JTlBVVF9EQVRBOwotICAgICAgICB9Ci0KLSAgICAgICAgLyoKLSAgICAgICAgICogU3RhdGljIGJvdW5kcyBjaGVjazoKLSAgICAgICAgICogLSBOZWVkIDEwIGJ5dGVzIGZvciBmaXZlIHRhZy1sZW5ndGggcGFpcnMuCi0gICAgICAgICAqICAgKEluc2lzdCBvbiAxLWJ5dGUgbGVuZ3RoIGVuY29kaW5ncyB0byBwcm90ZWN0IGFnYWluc3QgdmFyaWFudHMgb2YKLSAgICAgICAgICogICAgQmxlaWNoZW5iYWNoZXIncyBmb3JnZXJ5IGF0dGFjayBhZ2FpbnN0IGxheCBQS0NTIzF2MS41IHZlcmlmaWNhdGlvbikKLSAgICAgICAgICogLSBOZWVkIGhhc2hsZW4gYnl0ZXMgZm9yIGhhc2gKLSAgICAgICAgICogLSBOZWVkIG9pZF9zaXplIGJ5dGVzIGZvciBoYXNoIGFsZyBPSUQuCi0gICAgICAgICAqLwotICAgICAgICBpZiAobmJfcGFkIDwgMTAgKyBoYXNobGVuICsgb2lkX3NpemUpIHsKLSAgICAgICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9SU0FfQkFEX0lOUFVUX0RBVEE7Ci0gICAgICAgIH0KLSAgICAgICAgbmJfcGFkIC09IDEwICsgaGFzaGxlbiArIG9pZF9zaXplOwotICAgIH0gZWxzZSB7Ci0gICAgICAgIGlmIChuYl9wYWQgPCBoYXNobGVuKSB7Ci0gICAgICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfUlNBX0JBRF9JTlBVVF9EQVRBOwotICAgICAgICB9Ci0KLSAgICAgICAgbmJfcGFkIC09IGhhc2hsZW47Ci0gICAgfQotCi0gICAgLyogTmVlZCBzcGFjZSBmb3Igc2lnbmF0dXJlIGhlYWRlciBhbmQgcGFkZGluZyBkZWxpbWl0ZXIgKDMgYnl0ZXMpLAotICAgICAqIGFuZCA4IGJ5dGVzIGZvciB0aGUgbWluaW1hbCBwYWRkaW5nICovCi0gICAgaWYgKG5iX3BhZCA8IDMgKyA4KSB7Ci0gICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9SU0FfQkFEX0lOUFVUX0RBVEE7Ci0gICAgfQotICAgIG5iX3BhZCAtPSAzOwotCi0gICAgLyogTm93IG5iX3BhZCBpcyB0aGUgYW1vdW50IG9mIG1lbW9yeSB0byBiZSBmaWxsZWQKLSAgICAgKiB3aXRoIHBhZGRpbmcsIGFuZCBhdCBsZWFzdCA4IGJ5dGVzIGxvbmcuICovCi0KLSAgICAvKiBXcml0ZSBzaWduYXR1cmUgaGVhZGVyIGFuZCBwYWRkaW5nICovCi0gICAgKnArKyA9IDA7Ci0gICAgKnArKyA9IE1CRURUTFNfUlNBX1NJR047Ci0gICAgbWVtc2V0KHAsIDB4RkYsIG5iX3BhZCk7Ci0gICAgcCArPSBuYl9wYWQ7Ci0gICAgKnArKyA9IDA7Ci0KLSAgICAvKiBBcmUgd2Ugc2lnbmluZyByYXcgZGF0YT8gKi8KLSAgICBpZiAobWRfYWxnID09IE1CRURUTFNfTURfTk9ORSkgewotICAgICAgICBtZW1jcHkocCwgaGFzaCwgaGFzaGxlbik7Ci0gICAgICAgIHJldHVybiAwOwotICAgIH0KLQotICAgIC8qIFNpZ25pbmcgaGFzaGVkIGRhdGEsIGFkZCBjb3JyZXNwb25kaW5nIEFTTi4xIHN0cnVjdHVyZQotICAgICAqCi0gICAgICogRGlnZXN0SW5mbyA6Oj0gU0VRVUVOQ0UgewotICAgICAqICAgZGlnZXN0QWxnb3JpdGhtIERpZ2VzdEFsZ29yaXRobUlkZW50aWZpZXIsCi0gICAgICogICBkaWdlc3QgRGlnZXN0IH0KLSAgICAgKiBEaWdlc3RBbGdvcml0aG1JZGVudGlmaWVyIDo6PSBBbGdvcml0aG1JZGVudGlmaWVyCi0gICAgICogRGlnZXN0IDo6PSBPQ1RFVCBTVFJJTkcKLSAgICAgKgotICAgICAqIFNjaGVtYXRpYzoKLSAgICAgKiBUQUctU0VRICsgTEVOIFsgVEFHLVNFUSArIExFTiBbIFRBRy1PSUQgICsgTEVOIFsgT0lEICBdCi0gICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUQUctTlVMTCArIExFTiBbIE5VTEwgXSBdCi0gICAgICogICAgICAgICAgICAgICAgIFRBRy1PQ1RFVCArIExFTiBbIEhBU0ggXSBdCi0gICAgICovCi0gICAgKnArKyA9IE1CRURUTFNfQVNOMV9TRVFVRU5DRSB8IE1CRURUTFNfQVNOMV9DT05TVFJVQ1RFRDsKLSAgICAqcCsrID0gKHVuc2lnbmVkIGNoYXIpICgweDA4ICsgb2lkX3NpemUgKyBoYXNobGVuKTsKLSAgICAqcCsrID0gTUJFRFRMU19BU04xX1NFUVVFTkNFIHwgTUJFRFRMU19BU04xX0NPTlNUUlVDVEVEOwotICAgICpwKysgPSAodW5zaWduZWQgY2hhcikgKDB4MDQgKyBvaWRfc2l6ZSk7Ci0gICAgKnArKyA9IE1CRURUTFNfQVNOMV9PSUQ7Ci0gICAgKnArKyA9ICh1bnNpZ25lZCBjaGFyKSBvaWRfc2l6ZTsKLSAgICBtZW1jcHkocCwgb2lkLCBvaWRfc2l6ZSk7Ci0gICAgcCArPSBvaWRfc2l6ZTsKLSAgICAqcCsrID0gTUJFRFRMU19BU04xX05VTEw7Ci0gICAgKnArKyA9IDB4MDA7Ci0gICAgKnArKyA9IE1CRURUTFNfQVNOMV9PQ1RFVF9TVFJJTkc7Ci0gICAgKnArKyA9ICh1bnNpZ25lZCBjaGFyKSBoYXNobGVuOwotICAgIG1lbWNweShwLCBoYXNoLCBoYXNobGVuKTsKLSAgICBwICs9IGhhc2hsZW47Ci0KLSAgICAvKiBKdXN0IGEgc2FuaXR5LWNoZWNrLCBzaG91bGQgYmUgYXV0b21hdGljCi0gICAgICogYWZ0ZXIgdGhlIGluaXRpYWwgYm91bmRzIGNoZWNrLiAqLwotICAgIGlmIChwICE9IGRzdCArIGRzdF9sZW4pIHsKLSAgICAgICAgbWJlZHRsc19wbGF0Zm9ybV96ZXJvaXplKGRzdCwgZHN0X2xlbik7Ci0gICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9SU0FfQkFEX0lOUFVUX0RBVEE7Ci0gICAgfQotCi0gICAgcmV0dXJuIDA7Ci19Ci0KLS8qCi0gKiBEbyBhbiBSU0Egb3BlcmF0aW9uIHRvIHNpZ24gdGhlIG1lc3NhZ2UgZGlnZXN0Ci0gKi8KLWludCBtYmVkdGxzX3JzYV9yc2Fzc2FfcGtjczFfdjE1X3NpZ24obWJlZHRsc19yc2FfY29udGV4dCAqY3R4LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgKCpmX3JuZykodm9pZCAqLCB1bnNpZ25lZCBjaGFyICosIHNpemVfdCksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZvaWQgKnBfcm5nLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYmVkdGxzX21kX3R5cGVfdCBtZF9hbGcsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCBoYXNobGVuLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1bnNpZ25lZCBjaGFyICpoYXNoLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBjaGFyICpzaWcpCi17Ci0gICAgaW50IHJldCA9IE1CRURUTFNfRVJSX0VSUk9SX0NPUlJVUFRJT05fREVURUNURUQ7Ci0gICAgdW5zaWduZWQgY2hhciAqc2lnX3RyeSA9IE5VTEwsICp2ZXJpZiA9IE5VTEw7Ci0KLSAgICBpZiAoKG1kX2FsZyAhPSBNQkVEVExTX01EX05PTkUgfHwgaGFzaGxlbiAhPSAwKSAmJiBoYXNoID09IE5VTEwpIHsKLSAgICAgICAgcmV0dXJuIE1CRURUTFNfRVJSX1JTQV9CQURfSU5QVVRfREFUQTsKLSAgICB9Ci0KLSAgICBpZiAoY3R4LT5wYWRkaW5nICE9IE1CRURUTFNfUlNBX1BLQ1NfVjE1KSB7Ci0gICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9SU0FfQkFEX0lOUFVUX0RBVEE7Ci0gICAgfQotCi0gICAgLyoKLSAgICAgKiBQcmVwYXJlIFBLQ1MxLXYxLjUgZW5jb2RpbmcgKHBhZGRpbmcgYW5kIGhhc2ggaWRlbnRpZmllcikKLSAgICAgKi8KLQotICAgIGlmICgocmV0ID0gcnNhX3JzYXNzYV9wa2NzMV92MTVfZW5jb2RlKG1kX2FsZywgaGFzaGxlbiwgaGFzaCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdHgtPmxlbiwgc2lnKSkgIT0gMCkgewotICAgICAgICByZXR1cm4gcmV0OwotICAgIH0KLQotICAgIC8qIFByaXZhdGUga2V5IG9wZXJhdGlvbgotICAgICAqCi0gICAgICogSW4gb3JkZXIgdG8gcHJldmVudCBMZW5zdHJhJ3MgYXR0YWNrLCBtYWtlIHRoZSBzaWduYXR1cmUgaW4gYQotICAgICAqIHRlbXBvcmFyeSBidWZmZXIgYW5kIGNoZWNrIGl0IGJlZm9yZSByZXR1cm5pbmcgaXQuCi0gICAgICovCi0KLSAgICBzaWdfdHJ5ID0gbWJlZHRsc19jYWxsb2MoMSwgY3R4LT5sZW4pOwotICAgIGlmIChzaWdfdHJ5ID09IE5VTEwpIHsKLSAgICAgICAgcmV0dXJuIE1CRURUTFNfRVJSX01QSV9BTExPQ19GQUlMRUQ7Ci0gICAgfQotCi0gICAgdmVyaWYgPSBtYmVkdGxzX2NhbGxvYygxLCBjdHgtPmxlbik7Ci0gICAgaWYgKHZlcmlmID09IE5VTEwpIHsKLSAgICAgICAgbWJlZHRsc19mcmVlKHNpZ190cnkpOwotICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfTVBJX0FMTE9DX0ZBSUxFRDsKLSAgICB9Ci0KLSAgICBNQkVEVExTX01QSV9DSEsobWJlZHRsc19yc2FfcHJpdmF0ZShjdHgsIGZfcm5nLCBwX3JuZywgc2lnLCBzaWdfdHJ5KSk7Ci0gICAgTUJFRFRMU19NUElfQ0hLKG1iZWR0bHNfcnNhX3B1YmxpYyhjdHgsIHNpZ190cnksIHZlcmlmKSk7Ci0KLSAgICBpZiAobWJlZHRsc19jdF9tZW1jbXAodmVyaWYsIHNpZywgY3R4LT5sZW4pICE9IDApIHsKLSAgICAgICAgcmV0ID0gTUJFRFRMU19FUlJfUlNBX1BSSVZBVEVfRkFJTEVEOwotICAgICAgICBnb3RvIGNsZWFudXA7Ci0gICAgfQotCi0gICAgbWVtY3B5KHNpZywgc2lnX3RyeSwgY3R4LT5sZW4pOwotCi1jbGVhbnVwOgotICAgIG1iZWR0bHNfemVyb2l6ZV9hbmRfZnJlZShzaWdfdHJ5LCBjdHgtPmxlbik7Ci0gICAgbWJlZHRsc196ZXJvaXplX2FuZF9mcmVlKHZlcmlmLCBjdHgtPmxlbik7Ci0KLSAgICBpZiAocmV0ICE9IDApIHsKLSAgICAgICAgbWVtc2V0KHNpZywgJyEnLCBjdHgtPmxlbik7Ci0gICAgfQotICAgIHJldHVybiByZXQ7Ci19Ci0jZW5kaWYgLyogTUJFRFRMU19QS0NTMV9WMTUgKi8KLQotLyoKLSAqIERvIGFuIFJTQSBvcGVyYXRpb24gdG8gc2lnbiB0aGUgbWVzc2FnZSBkaWdlc3QKLSAqLwotaW50IG1iZWR0bHNfcnNhX3BrY3MxX3NpZ24obWJlZHRsc19yc2FfY29udGV4dCAqY3R4LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50ICgqZl9ybmcpKHZvaWQgKiwgdW5zaWduZWQgY2hhciAqLCBzaXplX3QpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgdm9pZCAqcF9ybmcsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICBtYmVkdGxzX21kX3R5cGVfdCBtZF9hbGcsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgaGFzaGxlbiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgKmhhc2gsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBjaGFyICpzaWcpCi17Ci0gICAgaWYgKChtZF9hbGcgIT0gTUJFRFRMU19NRF9OT05FIHx8IGhhc2hsZW4gIT0gMCkgJiYgaGFzaCA9PSBOVUxMKSB7Ci0gICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9SU0FfQkFEX0lOUFVUX0RBVEE7Ci0gICAgfQotCi0gICAgc3dpdGNoIChjdHgtPnBhZGRpbmcpIHsKLSNpZiBkZWZpbmVkKE1CRURUTFNfUEtDUzFfVjE1KQotICAgICAgICBjYXNlIE1CRURUTFNfUlNBX1BLQ1NfVjE1OgotICAgICAgICAgICAgcmV0dXJuIG1iZWR0bHNfcnNhX3JzYXNzYV9wa2NzMV92MTVfc2lnbihjdHgsIGZfcm5nLCBwX3JuZywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWRfYWxnLCBoYXNobGVuLCBoYXNoLCBzaWcpOwotI2VuZGlmCi0KLSNpZiBkZWZpbmVkKE1CRURUTFNfUEtDUzFfVjIxKQotICAgICAgICBjYXNlIE1CRURUTFNfUlNBX1BLQ1NfVjIxOgotICAgICAgICAgICAgcmV0dXJuIG1iZWR0bHNfcnNhX3JzYXNzYV9wc3Nfc2lnbihjdHgsIGZfcm5nLCBwX3JuZywgbWRfYWxnLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYXNobGVuLCBoYXNoLCBzaWcpOwotI2VuZGlmCi0KLSAgICAgICAgZGVmYXVsdDoKLSAgICAgICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9SU0FfSU5WQUxJRF9QQURESU5HOwotICAgIH0KLX0KLQotI2lmIGRlZmluZWQoTUJFRFRMU19QS0NTMV9WMjEpCi0vKgotICogSW1wbGVtZW50YXRpb24gb2YgdGhlIFBLQ1MjMSB2Mi4xIFJTQVNTQS1QU1MtVkVSSUZZIGZ1bmN0aW9uCi0gKi8KLWludCBtYmVkdGxzX3JzYV9yc2Fzc2FfcHNzX3ZlcmlmeV9leHQobWJlZHRsc19yc2FfY29udGV4dCAqY3R4LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYmVkdGxzX21kX3R5cGVfdCBtZF9hbGcsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCBoYXNobGVuLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1bnNpZ25lZCBjaGFyICpoYXNoLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYmVkdGxzX21kX3R5cGVfdCBtZ2YxX2hhc2hfaWQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBleHBlY3RlZF9zYWx0X2xlbiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdW5zaWduZWQgY2hhciAqc2lnKQotewotICAgIGludCByZXQgPSBNQkVEVExTX0VSUl9FUlJPUl9DT1JSVVBUSU9OX0RFVEVDVEVEOwotICAgIHNpemVfdCBzaWdsZW47Ci0gICAgdW5zaWduZWQgY2hhciAqcDsKLSAgICB1bnNpZ25lZCBjaGFyICpoYXNoX3N0YXJ0OwotICAgIHVuc2lnbmVkIGNoYXIgcmVzdWx0W01CRURUTFNfTURfTUFYX1NJWkVdOwotICAgIHVuc2lnbmVkIGludCBobGVuOwotICAgIHNpemVfdCBvYnNlcnZlZF9zYWx0X2xlbiwgbXNiOwotICAgIHVuc2lnbmVkIGNoYXIgYnVmW01CRURUTFNfTVBJX01BWF9TSVpFXSA9IHsgMCB9OwotCi0gICAgaWYgKChtZF9hbGcgIT0gTUJFRFRMU19NRF9OT05FIHx8IGhhc2hsZW4gIT0gMCkgJiYgaGFzaCA9PSBOVUxMKSB7Ci0gICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9SU0FfQkFEX0lOUFVUX0RBVEE7Ci0gICAgfQotCi0gICAgc2lnbGVuID0gY3R4LT5sZW47Ci0KLSAgICBpZiAoc2lnbGVuIDwgMTYgfHwgc2lnbGVuID4gc2l6ZW9mKGJ1ZikpIHsKLSAgICAgICAgcmV0dXJuIE1CRURUTFNfRVJSX1JTQV9CQURfSU5QVVRfREFUQTsKLSAgICB9Ci0KLSAgICByZXQgPSBtYmVkdGxzX3JzYV9wdWJsaWMoY3R4LCBzaWcsIGJ1Zik7Ci0KLSAgICBpZiAocmV0ICE9IDApIHsKLSAgICAgICAgcmV0dXJuIHJldDsKLSAgICB9Ci0KLSAgICBwID0gYnVmOwotCi0gICAgaWYgKGJ1ZltzaWdsZW4gLSAxXSAhPSAweEJDKSB7Ci0gICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9SU0FfSU5WQUxJRF9QQURESU5HOwotICAgIH0KLQotICAgIGlmIChtZF9hbGcgIT0gTUJFRFRMU19NRF9OT05FKSB7Ci0gICAgICAgIC8qIEdhdGhlciBsZW5ndGggb2YgaGFzaCB0byBzaWduICovCi0gICAgICAgIHNpemVfdCBleHBfaGFzaGxlbiA9IG1iZWR0bHNfbWRfZ2V0X3NpemVfZnJvbV90eXBlKG1kX2FsZyk7Ci0gICAgICAgIGlmIChleHBfaGFzaGxlbiA9PSAwKSB7Ci0gICAgICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfUlNBX0JBRF9JTlBVVF9EQVRBOwotICAgICAgICB9Ci0KLSAgICAgICAgaWYgKGhhc2hsZW4gIT0gZXhwX2hhc2hsZW4pIHsKLSAgICAgICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9SU0FfQkFEX0lOUFVUX0RBVEE7Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICBobGVuID0gbWJlZHRsc19tZF9nZXRfc2l6ZV9mcm9tX3R5cGUobWdmMV9oYXNoX2lkKTsKLSAgICBpZiAoaGxlbiA9PSAwKSB7Ci0gICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9SU0FfQkFEX0lOUFVUX0RBVEE7Ci0gICAgfQotCi0gICAgLyoKLSAgICAgKiBOb3RlOiBFTVNBLVBTUyB2ZXJpZmljYXRpb24gaXMgb3ZlciB0aGUgbGVuZ3RoIG9mIE4gLSAxIGJpdHMKLSAgICAgKi8KLSAgICBtc2IgPSBtYmVkdGxzX21waV9iaXRsZW4oJmN0eC0+TikgLSAxOwotCi0gICAgaWYgKGJ1ZlswXSA+PiAoOCAtIHNpZ2xlbiAqIDggKyBtc2IpKSB7Ci0gICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9SU0FfQkFEX0lOUFVUX0RBVEE7Ci0gICAgfQotCi0gICAgLyogQ29tcGVuc2F0ZSBmb3IgYm91bmRhcnkgY29uZGl0aW9uIHdoZW4gYXBwbHlpbmcgbWFzayAqLwotICAgIGlmIChtc2IgJSA4ID09IDApIHsKLSAgICAgICAgcCsrOwotICAgICAgICBzaWdsZW4gLT0gMTsKLSAgICB9Ci0KLSAgICBpZiAoc2lnbGVuIDwgaGxlbiArIDIpIHsKLSAgICAgICAgcmV0dXJuIE1CRURUTFNfRVJSX1JTQV9CQURfSU5QVVRfREFUQTsKLSAgICB9Ci0gICAgaGFzaF9zdGFydCA9IHAgKyBzaWdsZW4gLSBobGVuIC0gMTsKLQotICAgIHJldCA9IG1nZl9tYXNrKHAsIHNpZ2xlbiAtIGhsZW4gLSAxLCBoYXNoX3N0YXJ0LCBobGVuLCBtZ2YxX2hhc2hfaWQpOwotICAgIGlmIChyZXQgIT0gMCkgewotICAgICAgICByZXR1cm4gcmV0OwotICAgIH0KLQotICAgIGJ1ZlswXSAmPSAweEZGID4+IChzaWdsZW4gKiA4IC0gbXNiKTsKLQotICAgIHdoaWxlIChwIDwgaGFzaF9zdGFydCAtIDEgJiYgKnAgPT0gMCkgewotICAgICAgICBwKys7Ci0gICAgfQotCi0gICAgaWYgKCpwKysgIT0gMHgwMSkgewotICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfUlNBX0lOVkFMSURfUEFERElORzsKLSAgICB9Ci0KLSAgICBvYnNlcnZlZF9zYWx0X2xlbiA9IChzaXplX3QpIChoYXNoX3N0YXJ0IC0gcCk7Ci0KLSAgICBpZiAoZXhwZWN0ZWRfc2FsdF9sZW4gIT0gTUJFRFRMU19SU0FfU0FMVF9MRU5fQU5ZICYmCi0gICAgICAgIG9ic2VydmVkX3NhbHRfbGVuICE9IChzaXplX3QpIGV4cGVjdGVkX3NhbHRfbGVuKSB7Ci0gICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9SU0FfSU5WQUxJRF9QQURESU5HOwotICAgIH0KLQotICAgIC8qCi0gICAgICogR2VuZXJhdGUgSCA9IEhhc2goIE0nICkKLSAgICAgKi8KLSAgICByZXQgPSBoYXNoX21wcmltZShoYXNoLCBoYXNobGVuLCBwLCBvYnNlcnZlZF9zYWx0X2xlbiwKLSAgICAgICAgICAgICAgICAgICAgICByZXN1bHQsIG1nZjFfaGFzaF9pZCk7Ci0gICAgaWYgKHJldCAhPSAwKSB7Ci0gICAgICAgIHJldHVybiByZXQ7Ci0gICAgfQotCi0gICAgaWYgKG1lbWNtcChoYXNoX3N0YXJ0LCByZXN1bHQsIGhsZW4pICE9IDApIHsKLSAgICAgICAgcmV0dXJuIE1CRURUTFNfRVJSX1JTQV9WRVJJRllfRkFJTEVEOwotICAgIH0KLQotICAgIHJldHVybiAwOwotfQotCi0vKgotICogU2ltcGxpZmllZCBQS0NTIzEgdjIuMSBSU0FTU0EtUFNTLVZFUklGWSBmdW5jdGlvbgotICovCi1pbnQgbWJlZHRsc19yc2FfcnNhc3NhX3Bzc192ZXJpZnkobWJlZHRsc19yc2FfY29udGV4dCAqY3R4LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1iZWR0bHNfbWRfdHlwZV90IG1kX2FsZywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgaGFzaGxlbiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1bnNpZ25lZCBjaGFyICpoYXNoLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgKnNpZykKLXsKLSAgICBtYmVkdGxzX21kX3R5cGVfdCBtZ2YxX2hhc2hfaWQ7Ci0gICAgaWYgKChtZF9hbGcgIT0gTUJFRFRMU19NRF9OT05FIHx8IGhhc2hsZW4gIT0gMCkgJiYgaGFzaCA9PSBOVUxMKSB7Ci0gICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9SU0FfQkFEX0lOUFVUX0RBVEE7Ci0gICAgfQotCi0gICAgbWdmMV9oYXNoX2lkID0gKGN0eC0+aGFzaF9pZCAhPSBNQkVEVExTX01EX05PTkUpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gKG1iZWR0bHNfbWRfdHlwZV90KSBjdHgtPmhhc2hfaWQKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBtZF9hbGc7Ci0KLSAgICByZXR1cm4gbWJlZHRsc19yc2FfcnNhc3NhX3Bzc192ZXJpZnlfZXh0KGN0eCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1kX2FsZywgaGFzaGxlbiwgaGFzaCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1nZjFfaGFzaF9pZCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1CRURUTFNfUlNBX1NBTFRfTEVOX0FOWSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpZyk7Ci0KLX0KLSNlbmRpZiAvKiBNQkVEVExTX1BLQ1MxX1YyMSAqLwotCi0jaWYgZGVmaW5lZChNQkVEVExTX1BLQ1MxX1YxNSkKLS8qCi0gKiBJbXBsZW1lbnRhdGlvbiBvZiB0aGUgUEtDUyMxIHYyLjEgUlNBU1NBLVBLQ1MxLXYxXzUtVkVSSUZZIGZ1bmN0aW9uCi0gKi8KLWludCBtYmVkdGxzX3JzYV9yc2Fzc2FfcGtjczFfdjE1X3ZlcmlmeShtYmVkdGxzX3JzYV9jb250ZXh0ICpjdHgsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWJlZHRsc19tZF90eXBlX3QgbWRfYWxnLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCBoYXNobGVuLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgKmhhc2gsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdW5zaWduZWQgY2hhciAqc2lnKQotewotICAgIGludCByZXQgPSAwOwotICAgIHNpemVfdCBzaWdfbGVuOwotICAgIHVuc2lnbmVkIGNoYXIgKmVuY29kZWQgPSBOVUxMLCAqZW5jb2RlZF9leHBlY3RlZCA9IE5VTEw7Ci0KLSAgICBpZiAoKG1kX2FsZyAhPSBNQkVEVExTX01EX05PTkUgfHwgaGFzaGxlbiAhPSAwKSAmJiBoYXNoID09IE5VTEwpIHsKLSAgICAgICAgcmV0dXJuIE1CRURUTFNfRVJSX1JTQV9CQURfSU5QVVRfREFUQTsKLSAgICB9Ci0KLSAgICBzaWdfbGVuID0gY3R4LT5sZW47Ci0KLSAgICAvKgotICAgICAqIFByZXBhcmUgZXhwZWN0ZWQgUEtDUzEgdjEuNSBlbmNvZGluZyBvZiBoYXNoLgotICAgICAqLwotCi0gICAgaWYgKChlbmNvZGVkICAgICAgICAgID0gbWJlZHRsc19jYWxsb2MoMSwgc2lnX2xlbikpID09IE5VTEwgfHwKLSAgICAgICAgKGVuY29kZWRfZXhwZWN0ZWQgPSBtYmVkdGxzX2NhbGxvYygxLCBzaWdfbGVuKSkgPT0gTlVMTCkgewotICAgICAgICByZXQgPSBNQkVEVExTX0VSUl9NUElfQUxMT0NfRkFJTEVEOwotICAgICAgICBnb3RvIGNsZWFudXA7Ci0gICAgfQotCi0gICAgaWYgKChyZXQgPSByc2FfcnNhc3NhX3BrY3MxX3YxNV9lbmNvZGUobWRfYWxnLCBoYXNobGVuLCBoYXNoLCBzaWdfbGVuLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuY29kZWRfZXhwZWN0ZWQpKSAhPSAwKSB7Ci0gICAgICAgIGdvdG8gY2xlYW51cDsKLSAgICB9Ci0KLSAgICAvKgotICAgICAqIEFwcGx5IFJTQSBwcmltaXRpdmUgdG8gZ2V0IHdoYXQgc2hvdWxkIGJlIFBLQ1MxIGVuY29kZWQgaGFzaC4KLSAgICAgKi8KLQotICAgIHJldCA9IG1iZWR0bHNfcnNhX3B1YmxpYyhjdHgsIHNpZywgZW5jb2RlZCk7Ci0gICAgaWYgKHJldCAhPSAwKSB7Ci0gICAgICAgIGdvdG8gY2xlYW51cDsKLSAgICB9Ci0KLSAgICAvKgotICAgICAqIENvbXBhcmUKLSAgICAgKi8KLQotICAgIGlmICgocmV0ID0gbWJlZHRsc19jdF9tZW1jbXAoZW5jb2RlZCwgZW5jb2RlZF9leHBlY3RlZCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpZ19sZW4pKSAhPSAwKSB7Ci0gICAgICAgIHJldCA9IE1CRURUTFNfRVJSX1JTQV9WRVJJRllfRkFJTEVEOwotICAgICAgICBnb3RvIGNsZWFudXA7Ci0gICAgfQotCi1jbGVhbnVwOgotCi0gICAgaWYgKGVuY29kZWQgIT0gTlVMTCkgewotICAgICAgICBtYmVkdGxzX3plcm9pemVfYW5kX2ZyZWUoZW5jb2RlZCwgc2lnX2xlbik7Ci0gICAgfQotCi0gICAgaWYgKGVuY29kZWRfZXhwZWN0ZWQgIT0gTlVMTCkgewotICAgICAgICBtYmVkdGxzX3plcm9pemVfYW5kX2ZyZWUoZW5jb2RlZF9leHBlY3RlZCwgc2lnX2xlbik7Ci0gICAgfQotCi0gICAgcmV0dXJuIHJldDsKLX0KLSNlbmRpZiAvKiBNQkVEVExTX1BLQ1MxX1YxNSAqLwotCi0vKgotICogRG8gYW4gUlNBIG9wZXJhdGlvbiBhbmQgY2hlY2sgdGhlIG1lc3NhZ2UgZGlnZXN0Ci0gKi8KLWludCBtYmVkdGxzX3JzYV9wa2NzMV92ZXJpZnkobWJlZHRsc19yc2FfY29udGV4dCAqY3R4LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYmVkdGxzX21kX3R5cGVfdCBtZF9hbGcsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCBoYXNobGVuLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1bnNpZ25lZCBjaGFyICpoYXNoLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1bnNpZ25lZCBjaGFyICpzaWcpCi17Ci0gICAgaWYgKChtZF9hbGcgIT0gTUJFRFRMU19NRF9OT05FIHx8IGhhc2hsZW4gIT0gMCkgJiYgaGFzaCA9PSBOVUxMKSB7Ci0gICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9SU0FfQkFEX0lOUFVUX0RBVEE7Ci0gICAgfQotCi0gICAgc3dpdGNoIChjdHgtPnBhZGRpbmcpIHsKLSNpZiBkZWZpbmVkKE1CRURUTFNfUEtDUzFfVjE1KQotICAgICAgICBjYXNlIE1CRURUTFNfUlNBX1BLQ1NfVjE1OgotICAgICAgICAgICAgcmV0dXJuIG1iZWR0bHNfcnNhX3JzYXNzYV9wa2NzMV92MTVfdmVyaWZ5KGN0eCwgbWRfYWxnLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhc2hsZW4sIGhhc2gsIHNpZyk7Ci0jZW5kaWYKLQotI2lmIGRlZmluZWQoTUJFRFRMU19QS0NTMV9WMjEpCi0gICAgICAgIGNhc2UgTUJFRFRMU19SU0FfUEtDU19WMjE6Ci0gICAgICAgICAgICByZXR1cm4gbWJlZHRsc19yc2FfcnNhc3NhX3Bzc192ZXJpZnkoY3R4LCBtZF9hbGcsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFzaGxlbiwgaGFzaCwgc2lnKTsKLSNlbmRpZgotCi0gICAgICAgIGRlZmF1bHQ6Ci0gICAgICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfUlNBX0lOVkFMSURfUEFERElORzsKLSAgICB9Ci19Ci0KLS8qCi0gKiBDb3B5IHRoZSBjb21wb25lbnRzIG9mIGFuIFJTQSBrZXkKLSAqLwotaW50IG1iZWR0bHNfcnNhX2NvcHkobWJlZHRsc19yc2FfY29udGV4dCAqZHN0LCBjb25zdCBtYmVkdGxzX3JzYV9jb250ZXh0ICpzcmMpCi17Ci0gICAgaW50IHJldCA9IE1CRURUTFNfRVJSX0VSUk9SX0NPUlJVUFRJT05fREVURUNURUQ7Ci0KLSAgICBkc3QtPmxlbiA9IHNyYy0+bGVuOwotCi0gICAgTUJFRFRMU19NUElfQ0hLKG1iZWR0bHNfbXBpX2NvcHkoJmRzdC0+TiwgJnNyYy0+TikpOwotICAgIE1CRURUTFNfTVBJX0NISyhtYmVkdGxzX21waV9jb3B5KCZkc3QtPkUsICZzcmMtPkUpKTsKLQotICAgIE1CRURUTFNfTVBJX0NISyhtYmVkdGxzX21waV9jb3B5KCZkc3QtPkQsICZzcmMtPkQpKTsKLSAgICBNQkVEVExTX01QSV9DSEsobWJlZHRsc19tcGlfY29weSgmZHN0LT5QLCAmc3JjLT5QKSk7Ci0gICAgTUJFRFRMU19NUElfQ0hLKG1iZWR0bHNfbXBpX2NvcHkoJmRzdC0+USwgJnNyYy0+USkpOwotCi0jaWYgIWRlZmluZWQoTUJFRFRMU19SU0FfTk9fQ1JUKQotICAgIE1CRURUTFNfTVBJX0NISyhtYmVkdGxzX21waV9jb3B5KCZkc3QtPkRQLCAmc3JjLT5EUCkpOwotICAgIE1CRURUTFNfTVBJX0NISyhtYmVkdGxzX21waV9jb3B5KCZkc3QtPkRRLCAmc3JjLT5EUSkpOwotICAgIE1CRURUTFNfTVBJX0NISyhtYmVkdGxzX21waV9jb3B5KCZkc3QtPlFQLCAmc3JjLT5RUCkpOwotICAgIE1CRURUTFNfTVBJX0NISyhtYmVkdGxzX21waV9jb3B5KCZkc3QtPlJQLCAmc3JjLT5SUCkpOwotICAgIE1CRURUTFNfTVBJX0NISyhtYmVkdGxzX21waV9jb3B5KCZkc3QtPlJRLCAmc3JjLT5SUSkpOwotI2VuZGlmCi0KLSAgICBNQkVEVExTX01QSV9DSEsobWJlZHRsc19tcGlfY29weSgmZHN0LT5STiwgJnNyYy0+Uk4pKTsKLQotICAgIE1CRURUTFNfTVBJX0NISyhtYmVkdGxzX21waV9jb3B5KCZkc3QtPlZpLCAmc3JjLT5WaSkpOwotICAgIE1CRURUTFNfTVBJX0NISyhtYmVkdGxzX21waV9jb3B5KCZkc3QtPlZmLCAmc3JjLT5WZikpOwotCi0gICAgZHN0LT5wYWRkaW5nID0gc3JjLT5wYWRkaW5nOwotICAgIGRzdC0+aGFzaF9pZCA9IHNyYy0+aGFzaF9pZDsKLQotY2xlYW51cDoKLSAgICBpZiAocmV0ICE9IDApIHsKLSAgICAgICAgbWJlZHRsc19yc2FfZnJlZShkc3QpOwotICAgIH0KLQotICAgIHJldHVybiByZXQ7Ci19Ci0KLS8qCi0gKiBGcmVlIHRoZSBjb21wb25lbnRzIG9mIGFuIFJTQSBrZXkKLSAqLwotdm9pZCBtYmVkdGxzX3JzYV9mcmVlKG1iZWR0bHNfcnNhX2NvbnRleHQgKmN0eCkKLXsKLSAgICBpZiAoY3R4ID09IE5VTEwpIHsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLQotICAgIG1iZWR0bHNfbXBpX2ZyZWUoJmN0eC0+VmkpOwotICAgIG1iZWR0bHNfbXBpX2ZyZWUoJmN0eC0+VmYpOwotICAgIG1iZWR0bHNfbXBpX2ZyZWUoJmN0eC0+Uk4pOwotICAgIG1iZWR0bHNfbXBpX2ZyZWUoJmN0eC0+RCk7Ci0gICAgbWJlZHRsc19tcGlfZnJlZSgmY3R4LT5RKTsKLSAgICBtYmVkdGxzX21waV9mcmVlKCZjdHgtPlApOwotICAgIG1iZWR0bHNfbXBpX2ZyZWUoJmN0eC0+RSk7Ci0gICAgbWJlZHRsc19tcGlfZnJlZSgmY3R4LT5OKTsKLQotI2lmICFkZWZpbmVkKE1CRURUTFNfUlNBX05PX0NSVCkKLSAgICBtYmVkdGxzX21waV9mcmVlKCZjdHgtPlJRKTsKLSAgICBtYmVkdGxzX21waV9mcmVlKCZjdHgtPlJQKTsKLSAgICBtYmVkdGxzX21waV9mcmVlKCZjdHgtPlFQKTsKLSAgICBtYmVkdGxzX21waV9mcmVlKCZjdHgtPkRRKTsKLSAgICBtYmVkdGxzX21waV9mcmVlKCZjdHgtPkRQKTsKLSNlbmRpZiAvKiBNQkVEVExTX1JTQV9OT19DUlQgKi8KLQotI2lmIGRlZmluZWQoTUJFRFRMU19USFJFQURJTkdfQykKLSAgICAvKiBGcmVlIHRoZSBtdXRleCwgYnV0IG9ubHkgaWYgaXQgaGFzbid0IGJlZW4gZnJlZWQgYWxyZWFkeS4gKi8KLSAgICBpZiAoY3R4LT52ZXIgIT0gMCkgewotICAgICAgICBtYmVkdGxzX211dGV4X2ZyZWUoJmN0eC0+bXV0ZXgpOwotICAgICAgICBjdHgtPnZlciA9IDA7Ci0gICAgfQotI2VuZGlmCi19Ci0KLSNlbmRpZiAvKiAhTUJFRFRMU19SU0FfQUxUICovCi0KLSNpZiBkZWZpbmVkKE1CRURUTFNfU0VMRl9URVNUKQotCi0KLS8qCi0gKiBFeGFtcGxlIFJTQS0xMDI0IGtleXBhaXIsIGZvciB0ZXN0IHB1cnBvc2VzCi0gKi8KLSNkZWZpbmUgS0VZX0xFTiAxMjgKLQotI2RlZmluZSBSU0FfTiAgICI5MjkyNzU4NDUzMDYzRDgwM0RENjAzRDVFNzc3RDc4OCIgXAotICAgICAgICAgICAgICAgICI4RUQxRDVCRjM1Nzg2MTkwRkEyRjIzRUJDMDg0OEFFQSIgXAotICAgICAgICAgICAgICAgICJEREE5MkNBNkMzRDgwQjMyQzREMTA5QkUwRjM2RDZBRSIgXAotICAgICAgICAgICAgICAgICI3MTMwQjlDRUQ3QUNERjU0Q0ZDNzU1NUFDMTRFRUJBQiIgXAotICAgICAgICAgICAgICAgICI5M0E4OTgxM0ZCRjNDNEY4MDY2RDJEODAwRjdDMzhBOCIgXAotICAgICAgICAgICAgICAgICIxQUUzMTk0MjkxNzQwM0ZGNDk0NkIwQTgzRDNEM0UwNSIgXAotICAgICAgICAgICAgICAgICJFRTU3QzZGNUY1NjA2RkI1RDRCQzZDRDM0RUUwODAxQSIgXAotICAgICAgICAgICAgICAgICI1RTk0QkI3N0IwNzUwNzIzM0EwQkM3QkFDOEY5MEY3OSIKLQotI2RlZmluZSBSU0FfRSAgICIxMDAwMSIKLQotI2RlZmluZSBSU0FfRCAgICIyNEJGNjE4NTQ2ODc4NkZERDMwMzA4M0QyNUU2NEVGQyIgXAotICAgICAgICAgICAgICAgICI2NkNBNDcyQkM0NEQyNTMxMDJGOEI0QTlEM0JGQTc1MCIgXAotICAgICAgICAgICAgICAgICI5MTM4NkMwMDc3OTM3RkUzM0ZBMzI1MkQyODg1NTgzNyIgXAotICAgICAgICAgICAgICAgICJBRTFCNDg0QThBOUE0NUY3RUU4QzBDNjM0Rjk5RThDRCIgXAotICAgICAgICAgICAgICAgICJERjc5QzVDRTA3RUU3MkM3RjEyMzE0MjE5ODE2NDIzNCIgXAotICAgICAgICAgICAgICAgICJDQUJCNzI0Q0Y3OEI4MTczQjlGODgwRkM4NjMyMjQwNyIgXAotICAgICAgICAgICAgICAgICJBRjFGRURGRERFMkJFQjY3NENBMTVGM0U4MUExNTIxRSIgXAotICAgICAgICAgICAgICAgICIwNzE1MTNBMUU4NUI1REZBMDMxRjIxRUNBRTkxQTM0RCIKLQotI2RlZmluZSBSU0FfUCAgICJDMzZEMEVCN0ZDRDI4NTIyM0NGQjVBQUJBNUJEQTNEOCIgXAotICAgICAgICAgICAgICAgICIyQzAxQ0FEMTlFQTQ4NEE4N0VBNDM3NzYzN0U3NTUwMCIgXAotICAgICAgICAgICAgICAgICJGQ0IyMDA1QzVDN0RENkVDNEFDMDIzQ0RBMjg1RDc5NiIgXAotICAgICAgICAgICAgICAgICJDM0Q5RTc1RTFFRkM0MjQ4OEJCNEYxRDEzQUMzMEE1NyIKLQotI2RlZmluZSBSU0FfUSAgICJDMDAwREY1MUE3Qzc3QUU4RDdDNzM3MEMxRkY1NUI2OSIgXAotICAgICAgICAgICAgICAgICJFMjExQzJCOUU1REIxRUQwQkY2MUQwRDk4OTk2MjBGNCIgXAotICAgICAgICAgICAgICAgICI5MTBFNDE2ODM4N0UzQzMwQUExRTAwQzMzOUE3OTUwOCIgXAotICAgICAgICAgICAgICAgICI4NDUyREQ5NkE5QTVFQTVEOURDQTY4REE2MzYwMzJBRiIKLQotI2RlZmluZSBQVF9MRU4gIDI0Ci0jZGVmaW5lIFJTQV9QVCAgIlx4QUFceEJCXHhDQ1x4MDNceDAyXHgwMVx4MDBceEZGXHhGRlx4RkZceEZGXHhGRiIgXAotICAgICAgICAgICAgICAgICJceDExXHgyMlx4MzNceDBBXHgwQlx4MENceENDXHhERFx4RERceEREXHhERFx4REQiCi0KLSNpZiBkZWZpbmVkKE1CRURUTFNfUEtDUzFfVjE1KQotc3RhdGljIGludCBteXJhbmQodm9pZCAqcm5nX3N0YXRlLCB1bnNpZ25lZCBjaGFyICpvdXRwdXQsIHNpemVfdCBsZW4pCi17Ci0jaWYgIWRlZmluZWQoX19PcGVuQlNEX18pICYmICFkZWZpbmVkKF9fTmV0QlNEX18pCi0gICAgc2l6ZV90IGk7Ci0KLSAgICBpZiAocm5nX3N0YXRlICE9IE5VTEwpIHsKLSAgICAgICAgcm5nX3N0YXRlICA9IE5VTEw7Ci0gICAgfQotCi0gICAgZm9yIChpID0gMDsgaSA8IGxlbjsgKytpKSB7Ci0gICAgICAgIG91dHB1dFtpXSA9IHJhbmQoKTsKLSAgICB9Ci0jZWxzZQotICAgIGlmIChybmdfc3RhdGUgIT0gTlVMTCkgewotICAgICAgICBybmdfc3RhdGUgPSBOVUxMOwotICAgIH0KLQotICAgIGFyYzRyYW5kb21fYnVmKG91dHB1dCwgbGVuKTsKLSNlbmRpZiAvKiAhT3BlbkJTRCAmJiAhTmV0QlNEICovCi0KLSAgICByZXR1cm4gMDsKLX0KLSNlbmRpZiAvKiBNQkVEVExTX1BLQ1MxX1YxNSAqLwotCi0vKgotICogQ2hlY2t1cCByb3V0aW5lCi0gKi8KLWludCBtYmVkdGxzX3JzYV9zZWxmX3Rlc3QoaW50IHZlcmJvc2UpCi17Ci0gICAgaW50IHJldCA9IDA7Ci0jaWYgZGVmaW5lZChNQkVEVExTX1BLQ1MxX1YxNSkKLSAgICBzaXplX3QgbGVuOwotICAgIG1iZWR0bHNfcnNhX2NvbnRleHQgcnNhOwotICAgIHVuc2lnbmVkIGNoYXIgcnNhX3BsYWludGV4dFtQVF9MRU5dOwotICAgIHVuc2lnbmVkIGNoYXIgcnNhX2RlY3J5cHRlZFtQVF9MRU5dOwotICAgIHVuc2lnbmVkIGNoYXIgcnNhX2NpcGhlcnRleHRbS0VZX0xFTl07Ci0jaWYgZGVmaW5lZChNQkVEVExTX01EX0NBTl9TSEExKQotICAgIHVuc2lnbmVkIGNoYXIgc2hhMXN1bVsyMF07Ci0jZW5kaWYKLQotICAgIG1iZWR0bHNfbXBpIEs7Ci0KLSAgICBtYmVkdGxzX21waV9pbml0KCZLKTsKLSAgICBtYmVkdGxzX3JzYV9pbml0KCZyc2EpOwotCi0gICAgTUJFRFRMU19NUElfQ0hLKG1iZWR0bHNfbXBpX3JlYWRfc3RyaW5nKCZLLCAxNiwgUlNBX04pKTsKLSAgICBNQkVEVExTX01QSV9DSEsobWJlZHRsc19yc2FfaW1wb3J0KCZyc2EsICZLLCBOVUxMLCBOVUxMLCBOVUxMLCBOVUxMKSk7Ci0gICAgTUJFRFRMU19NUElfQ0hLKG1iZWR0bHNfbXBpX3JlYWRfc3RyaW5nKCZLLCAxNiwgUlNBX1ApKTsKLSAgICBNQkVEVExTX01QSV9DSEsobWJlZHRsc19yc2FfaW1wb3J0KCZyc2EsIE5VTEwsICZLLCBOVUxMLCBOVUxMLCBOVUxMKSk7Ci0gICAgTUJFRFRMU19NUElfQ0hLKG1iZWR0bHNfbXBpX3JlYWRfc3RyaW5nKCZLLCAxNiwgUlNBX1EpKTsKLSAgICBNQkVEVExTX01QSV9DSEsobWJlZHRsc19yc2FfaW1wb3J0KCZyc2EsIE5VTEwsIE5VTEwsICZLLCBOVUxMLCBOVUxMKSk7Ci0gICAgTUJFRFRMU19NUElfQ0hLKG1iZWR0bHNfbXBpX3JlYWRfc3RyaW5nKCZLLCAxNiwgUlNBX0QpKTsKLSAgICBNQkVEVExTX01QSV9DSEsobWJlZHRsc19yc2FfaW1wb3J0KCZyc2EsIE5VTEwsIE5VTEwsIE5VTEwsICZLLCBOVUxMKSk7Ci0gICAgTUJFRFRMU19NUElfQ0hLKG1iZWR0bHNfbXBpX3JlYWRfc3RyaW5nKCZLLCAxNiwgUlNBX0UpKTsKLSAgICBNQkVEVExTX01QSV9DSEsobWJlZHRsc19yc2FfaW1wb3J0KCZyc2EsIE5VTEwsIE5VTEwsIE5VTEwsIE5VTEwsICZLKSk7Ci0KLSAgICBNQkVEVExTX01QSV9DSEsobWJlZHRsc19yc2FfY29tcGxldGUoJnJzYSkpOwotCi0gICAgaWYgKHZlcmJvc2UgIT0gMCkgewotICAgICAgICBtYmVkdGxzX3ByaW50ZigiICBSU0Ega2V5IHZhbGlkYXRpb246ICIpOwotICAgIH0KLQotICAgIGlmIChtYmVkdGxzX3JzYV9jaGVja19wdWJrZXkoJnJzYSkgIT0gMCB8fAotICAgICAgICBtYmVkdGxzX3JzYV9jaGVja19wcml2a2V5KCZyc2EpICE9IDApIHsKLSAgICAgICAgaWYgKHZlcmJvc2UgIT0gMCkgewotICAgICAgICAgICAgbWJlZHRsc19wcmludGYoImZhaWxlZFxuIik7Ci0gICAgICAgIH0KLQotICAgICAgICByZXQgPSAxOwotICAgICAgICBnb3RvIGNsZWFudXA7Ci0gICAgfQotCi0gICAgaWYgKHZlcmJvc2UgIT0gMCkgewotICAgICAgICBtYmVkdGxzX3ByaW50ZigicGFzc2VkXG4gIFBLQ1MjMSBlbmNyeXB0aW9uIDogIik7Ci0gICAgfQotCi0gICAgbWVtY3B5KHJzYV9wbGFpbnRleHQsIFJTQV9QVCwgUFRfTEVOKTsKLQotICAgIGlmIChtYmVkdGxzX3JzYV9wa2NzMV9lbmNyeXB0KCZyc2EsIG15cmFuZCwgTlVMTCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQVF9MRU4sIHJzYV9wbGFpbnRleHQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcnNhX2NpcGhlcnRleHQpICE9IDApIHsKLSAgICAgICAgaWYgKHZlcmJvc2UgIT0gMCkgewotICAgICAgICAgICAgbWJlZHRsc19wcmludGYoImZhaWxlZFxuIik7Ci0gICAgICAgIH0KLQotICAgICAgICByZXQgPSAxOwotICAgICAgICBnb3RvIGNsZWFudXA7Ci0gICAgfQotCi0gICAgaWYgKHZlcmJvc2UgIT0gMCkgewotICAgICAgICBtYmVkdGxzX3ByaW50ZigicGFzc2VkXG4gIFBLQ1MjMSBkZWNyeXB0aW9uIDogIik7Ci0gICAgfQotCi0gICAgaWYgKG1iZWR0bHNfcnNhX3BrY3MxX2RlY3J5cHQoJnJzYSwgbXlyYW5kLCBOVUxMLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZsZW4sIHJzYV9jaXBoZXJ0ZXh0LCByc2FfZGVjcnlwdGVkLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVvZihyc2FfZGVjcnlwdGVkKSkgIT0gMCkgewotICAgICAgICBpZiAodmVyYm9zZSAhPSAwKSB7Ci0gICAgICAgICAgICBtYmVkdGxzX3ByaW50ZigiZmFpbGVkXG4iKTsKLSAgICAgICAgfQotCi0gICAgICAgIHJldCA9IDE7Ci0gICAgICAgIGdvdG8gY2xlYW51cDsKLSAgICB9Ci0KLSAgICBpZiAobWVtY21wKHJzYV9kZWNyeXB0ZWQsIHJzYV9wbGFpbnRleHQsIGxlbikgIT0gMCkgewotICAgICAgICBpZiAodmVyYm9zZSAhPSAwKSB7Ci0gICAgICAgICAgICBtYmVkdGxzX3ByaW50ZigiZmFpbGVkXG4iKTsKLSAgICAgICAgfQotCi0gICAgICAgIHJldCA9IDE7Ci0gICAgICAgIGdvdG8gY2xlYW51cDsKLSAgICB9Ci0KLSAgICBpZiAodmVyYm9zZSAhPSAwKSB7Ci0gICAgICAgIG1iZWR0bHNfcHJpbnRmKCJwYXNzZWRcbiIpOwotICAgIH0KLQotI2lmIGRlZmluZWQoTUJFRFRMU19NRF9DQU5fU0hBMSkKLSAgICBpZiAodmVyYm9zZSAhPSAwKSB7Ci0gICAgICAgIG1iZWR0bHNfcHJpbnRmKCIgIFBLQ1MjMSBkYXRhIHNpZ24gIDogIik7Ci0gICAgfQotCi0gICAgaWYgKG1iZWR0bHNfbWQobWJlZHRsc19tZF9pbmZvX2Zyb21fdHlwZShNQkVEVExTX01EX1NIQTEpLAotICAgICAgICAgICAgICAgICAgIHJzYV9wbGFpbnRleHQsIFBUX0xFTiwgc2hhMXN1bSkgIT0gMCkgewotICAgICAgICBpZiAodmVyYm9zZSAhPSAwKSB7Ci0gICAgICAgICAgICBtYmVkdGxzX3ByaW50ZigiZmFpbGVkXG4iKTsKLSAgICAgICAgfQotCi0gICAgICAgIHJldHVybiAxOwotICAgIH0KLQotICAgIGlmIChtYmVkdGxzX3JzYV9wa2NzMV9zaWduKCZyc2EsIG15cmFuZCwgTlVMTCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNQkVEVExTX01EX1NIQTEsIDIwLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNoYTFzdW0sIHJzYV9jaXBoZXJ0ZXh0KSAhPSAwKSB7Ci0gICAgICAgIGlmICh2ZXJib3NlICE9IDApIHsKLSAgICAgICAgICAgIG1iZWR0bHNfcHJpbnRmKCJmYWlsZWRcbiIpOwotICAgICAgICB9Ci0KLSAgICAgICAgcmV0ID0gMTsKLSAgICAgICAgZ290byBjbGVhbnVwOwotICAgIH0KLQotICAgIGlmICh2ZXJib3NlICE9IDApIHsKLSAgICAgICAgbWJlZHRsc19wcmludGYoInBhc3NlZFxuICBQS0NTIzEgc2lnLiB2ZXJpZnk6ICIpOwotICAgIH0KLQotICAgIGlmIChtYmVkdGxzX3JzYV9wa2NzMV92ZXJpZnkoJnJzYSwgTUJFRFRMU19NRF9TSEExLCAyMCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNoYTFzdW0sIHJzYV9jaXBoZXJ0ZXh0KSAhPSAwKSB7Ci0gICAgICAgIGlmICh2ZXJib3NlICE9IDApIHsKLSAgICAgICAgICAgIG1iZWR0bHNfcHJpbnRmKCJmYWlsZWRcbiIpOwotICAgICAgICB9Ci0KLSAgICAgICAgcmV0ID0gMTsKLSAgICAgICAgZ290byBjbGVhbnVwOwotICAgIH0KLQotICAgIGlmICh2ZXJib3NlICE9IDApIHsKLSAgICAgICAgbWJlZHRsc19wcmludGYoInBhc3NlZFxuIik7Ci0gICAgfQotI2VuZGlmIC8qIE1CRURUTFNfTURfQ0FOX1NIQTEgKi8KLQotICAgIGlmICh2ZXJib3NlICE9IDApIHsKLSAgICAgICAgbWJlZHRsc19wcmludGYoIlxuIik7Ci0gICAgfQotCi1jbGVhbnVwOgotICAgIG1iZWR0bHNfbXBpX2ZyZWUoJkspOwotICAgIG1iZWR0bHNfcnNhX2ZyZWUoJnJzYSk7Ci0jZWxzZSAvKiBNQkVEVExTX1BLQ1MxX1YxNSAqLwotICAgICgodm9pZCkgdmVyYm9zZSk7Ci0jZW5kaWYgLyogTUJFRFRMU19QS0NTMV9WMTUgKi8KLSAgICByZXR1cm4gcmV0OwotfQotCi0jZW5kaWYgLyogTUJFRFRMU19TRUxGX1RFU1QgKi8KLQotI2VuZGlmIC8qIE1CRURUTFNfUlNBX0MgKi8KZGlmZiAtLWdpdCBhL2xpYnJhcnkvcnNhX2FsdF9oZWxwZXJzLmggYi9saWJyYXJ5L3JzYV9hbHRfaGVscGVycy5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwNTJiMDI0Li4wMDAwMDAwCi0tLSBhL2xpYnJhcnkvcnNhX2FsdF9oZWxwZXJzLmgKKysrIC9kZXYvbnVsbApAQCAtMSwyMDYgKzAsMCBAQAotLyoqCi0gKiBcZmlsZSByc2FfYWx0X2hlbHBlcnMuaAotICoKLSAqIFxicmllZiBDb250ZXh0LWluZGVwZW5kZW50IFJTQSBoZWxwZXIgZnVuY3Rpb25zCi0gKgotICogIFRoaXMgbW9kdWxlIGRlY2xhcmVzIHNvbWUgUlNBLXJlbGF0ZWQgaGVscGVyIGZ1bmN0aW9ucyB1c2VmdWwgd2hlbgotICogIGltcGxlbWVudGluZyB0aGUgUlNBIGludGVyZmFjZS4gVGhlc2UgZnVuY3Rpb25zIGFyZSBwcm92aWRlZCBpbiBhIHNlcGFyYXRlCi0gKiAgY29tcGlsYXRpb24gdW5pdCBpbiBvcmRlciB0byBtYWtlIGl0IGVhc3kgZm9yIGRlc2lnbmVycyBvZiBhbHRlcm5hdGl2ZSBSU0EKLSAqICBpbXBsZW1lbnRhdGlvbnMgdG8gdXNlIHRoZW0gaW4gdGhlaXIgb3duIGNvZGUsIGFzIGl0IGlzIGNvbmNlaXZlZCB0aGF0IHRoZQotICogIGZ1bmN0aW9uYWxpdHkgdGhleSBwcm92aWRlIHdpbGwgYmUgbmVjZXNzYXJ5IGZvciBtb3N0IGNvbXBsZXRlCi0gKiAgaW1wbGVtZW50YXRpb25zLgotICoKLSAqICBFbmQtdXNlcnMgb2YgTWJlZCBUTFMgd2hvIGFyZSBub3QgcHJvdmlkaW5nIHRoZWlyIG93biBhbHRlcm5hdGl2ZSBSU0EKLSAqICBpbXBsZW1lbnRhdGlvbnMgc2hvdWxkIG5vdCB1c2UgdGhlc2UgZnVuY3Rpb25zIGRpcmVjdGx5LCBhbmQgc2hvdWxkIGluc3RlYWQKLSAqICB1c2Ugb25seSB0aGUgZnVuY3Rpb25zIGRlY2xhcmVkIGluIHJzYS5oLgotICoKLSAqICBUaGUgaW50ZXJmYWNlIHByb3ZpZGVkIGJ5IHRoaXMgbW9kdWxlIHdpbGwgYmUgbWFpbnRhaW5lZCB0aHJvdWdoIExUUyAoTG9uZwotICogIFRlcm0gU3VwcG9ydCkgYnJhbmNoZXMgb2YgTWJlZCBUTFMsIGJ1dCBtYXkgb3RoZXJ3aXNlIGJlIHN1YmplY3QgdG8gY2hhbmdlLAotICogIGFuZCBtdXN0IGJlIGNvbnNpZGVyZWQgYW4gaW50ZXJuYWwgaW50ZXJmYWNlIG9mIHRoZSBsaWJyYXJ5LgotICoKLSAqICBUaGVyZSBhcmUgdHdvIGNsYXNzZXMgb2YgaGVscGVyIGZ1bmN0aW9uczoKLSAqCi0gKiAgKDEpIFBhcmFtZXRlci1nZW5lcmF0aW5nIGhlbHBlcnMuIFRoZXNlIGFyZToKLSAqICAgICAgLSBtYmVkdGxzX3JzYV9kZWR1Y2VfcHJpbWVzCi0gKiAgICAgIC0gbWJlZHRsc19yc2FfZGVkdWNlX3ByaXZhdGVfZXhwb25lbnQKLSAqICAgICAgLSBtYmVkdGxzX3JzYV9kZWR1Y2VfY3J0Ci0gKiAgICAgICBFYWNoIG9mIHRoZXNlIGZ1bmN0aW9ucyB0YWtlcyBhIHNldCBvZiBjb3JlIFJTQSBwYXJhbWV0ZXJzIGFuZAotICogICAgICAgZ2VuZXJhdGVzIHNvbWUgb3RoZXIsIG9yIENSVCByZWxhdGVkIHBhcmFtZXRlcnMuCi0gKgotICogICgyKSBQYXJhbWV0ZXItY2hlY2tpbmcgaGVscGVycy4gVGhlc2UgYXJlOgotICogICAgICAtIG1iZWR0bHNfcnNhX3ZhbGlkYXRlX3BhcmFtcwotICogICAgICAtIG1iZWR0bHNfcnNhX3ZhbGlkYXRlX2NydAotICogICAgICBUaGV5IHRha2UgYSBzZXQgb2YgY29yZSBvciBDUlQgcmVsYXRlZCBSU0EgcGFyYW1ldGVycyBhbmQgY2hlY2sgdGhlaXIKLSAqICAgICAgdmFsaWRpdHkuCi0gKgotICovCi0vKgotICogIENvcHlyaWdodCBUaGUgTWJlZCBUTFMgQ29udHJpYnV0b3JzCi0gKiAgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjAgT1IgR1BMLTIuMC1vci1sYXRlcgotICovCi0jaWZuZGVmIE1CRURUTFNfUlNBX0FMVF9IRUxQRVJTX0gKLSNkZWZpbmUgTUJFRFRMU19SU0FfQUxUX0hFTFBFUlNfSAotCi0jaW5jbHVkZSAibWJlZHRscy9idWlsZF9pbmZvLmgiCi0KLSNpbmNsdWRlICJtYmVkdGxzL2JpZ251bS5oIgotCi0jaWZkZWYgX19jcGx1c3BsdXMKLWV4dGVybiAiQyIgewotI2VuZGlmCi0KLQotLyoqCi0gKiBcYnJpZWYgICAgICAgICAgQ29tcHV0ZSBSU0EgcHJpbWUgbW9kdWxpIFAsIFEgZnJvbSBwdWJsaWMgbW9kdWx1cyBOPVBRCi0gKiAgICAgICAgICAgICAgICAgYW5kIGEgcGFpciBvZiBwcml2YXRlIGFuZCBwdWJsaWMga2V5LgotICoKLSAqIFxub3RlICAgICAgICAgICBUaGlzIGlzIGEgJ3N0YXRpYycgaGVscGVyIGZ1bmN0aW9uIG5vdCBvcGVyYXRpbmcgb24KLSAqICAgICAgICAgICAgICAgICBhbiBSU0EgY29udGV4dC4gQWx0ZXJuYXRpdmUgaW1wbGVtZW50YXRpb25zIG5lZWQgbm90Ci0gKiAgICAgICAgICAgICAgICAgb3ZlcndyaXRlIGl0LgotICoKLSAqIFxwYXJhbSBOICAgICAgICBSU0EgbW9kdWx1cyBOID0gUFEsIHdpdGggUCwgUSB0byBiZSBmb3VuZAotICogXHBhcmFtIEUgICAgICAgIFJTQSBwdWJsaWMgZXhwb25lbnQKLSAqIFxwYXJhbSBEICAgICAgICBSU0EgcHJpdmF0ZSBleHBvbmVudAotICogXHBhcmFtIFAgICAgICAgIFBvaW50ZXIgdG8gTVBJIGhvbGRpbmcgZmlyc3QgcHJpbWUgZmFjdG9yIG9mIE4gb24gc3VjY2VzcwotICogXHBhcmFtIFEgICAgICAgIFBvaW50ZXIgdG8gTVBJIGhvbGRpbmcgc2Vjb25kIHByaW1lIGZhY3RvciBvZiBOIG9uIHN1Y2Nlc3MKLSAqCi0gKiBccmV0dXJuCi0gKiAgICAgICAgICAgICAgICAgLSAwIGlmIHN1Y2Nlc3NmdWwuIEluIHRoaXMgY2FzZSwgUCBhbmQgUSBjb25zdGl0dXRlIGEKLSAqICAgICAgICAgICAgICAgICAgIGZhY3Rvcml6YXRpb24gb2YgTi4KLSAqICAgICAgICAgICAgICAgICAtIEEgbm9uLXplcm8gZXJyb3IgY29kZSBvdGhlcndpc2UuCi0gKgotICogXG5vdGUgICAgICAgICAgIEl0IGlzIG5laXRoZXIgY2hlY2tlZCB0aGF0IFAsIFEgYXJlIHByaW1lIG5vciB0aGF0Ci0gKiAgICAgICAgICAgICAgICAgRCwgRSBhcmUgbW9kdWxhciBpbnZlcnNlcyB3cnQuIFAtMSBhbmQgUS0xLiBGb3IgdGhhdCwKLSAqICAgICAgICAgICAgICAgICB1c2UgdGhlIGhlbHBlciBmdW5jdGlvbiBcYyBtYmVkdGxzX3JzYV92YWxpZGF0ZV9wYXJhbXMuCi0gKgotICovCi1pbnQgbWJlZHRsc19yc2FfZGVkdWNlX3ByaW1lcyhtYmVkdGxzX21waSBjb25zdCAqTiwgbWJlZHRsc19tcGkgY29uc3QgKkUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYmVkdGxzX21waSBjb25zdCAqRCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1iZWR0bHNfbXBpICpQLCBtYmVkdGxzX21waSAqUSk7Ci0KLS8qKgotICogXGJyaWVmICAgICAgICAgIENvbXB1dGUgUlNBIHByaXZhdGUgZXhwb25lbnQgZnJvbQotICogICAgICAgICAgICAgICAgIHByaW1lIG1vZHVsaSBhbmQgcHVibGljIGtleS4KLSAqCi0gKiBcbm90ZSAgICAgICAgICAgVGhpcyBpcyBhICdzdGF0aWMnIGhlbHBlciBmdW5jdGlvbiBub3Qgb3BlcmF0aW5nIG9uCi0gKiAgICAgICAgICAgICAgICAgYW4gUlNBIGNvbnRleHQuIEFsdGVybmF0aXZlIGltcGxlbWVudGF0aW9ucyBuZWVkIG5vdAotICogICAgICAgICAgICAgICAgIG92ZXJ3cml0ZSBpdC4KLSAqCi0gKiBccGFyYW0gUCAgICAgICAgRmlyc3QgcHJpbWUgZmFjdG9yIG9mIFJTQSBtb2R1bHVzCi0gKiBccGFyYW0gUSAgICAgICAgU2Vjb25kIHByaW1lIGZhY3RvciBvZiBSU0EgbW9kdWx1cwotICogXHBhcmFtIEUgICAgICAgIFJTQSBwdWJsaWMgZXhwb25lbnQKLSAqIFxwYXJhbSBEICAgICAgICBQb2ludGVyIHRvIE1QSSBob2xkaW5nIHRoZSBwcml2YXRlIGV4cG9uZW50IG9uIHN1Y2Nlc3MuCi0gKgotICogXHJldHVybgotICogICAgICAgICAgICAgICAgIC0gMCBpZiBzdWNjZXNzZnVsLiBJbiB0aGlzIGNhc2UsIEQgaXMgc2V0IHRvIGEgc2ltdWx0YW5lb3VzCi0gKiAgICAgICAgICAgICAgICAgICBtb2R1bGFyIGludmVyc2Ugb2YgRSBtb2R1bG8gYm90aCBQLTEgYW5kIFEtMS4KLSAqICAgICAgICAgICAgICAgICAtIEEgbm9uLXplcm8gZXJyb3IgY29kZSBvdGhlcndpc2UuCi0gKgotICogXG5vdGUgICAgICAgICAgIFRoaXMgZnVuY3Rpb24gZG9lcyBub3QgY2hlY2sgd2hldGhlciBQIGFuZCBRIGFyZSBwcmltZXMuCi0gKgotICovCi1pbnQgbWJlZHRsc19yc2FfZGVkdWNlX3ByaXZhdGVfZXhwb25lbnQobWJlZHRsc19tcGkgY29uc3QgKlAsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWJlZHRsc19tcGkgY29uc3QgKlEsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWJlZHRsc19tcGkgY29uc3QgKkUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWJlZHRsc19tcGkgKkQpOwotCi0KLS8qKgotICogXGJyaWVmICAgICAgICAgIEdlbmVyYXRlIFJTQS1DUlQgcGFyYW1ldGVycwotICoKLSAqIFxub3RlICAgICAgICAgICBUaGlzIGlzIGEgJ3N0YXRpYycgaGVscGVyIGZ1bmN0aW9uIG5vdCBvcGVyYXRpbmcgb24KLSAqICAgICAgICAgICAgICAgICBhbiBSU0EgY29udGV4dC4gQWx0ZXJuYXRpdmUgaW1wbGVtZW50YXRpb25zIG5lZWQgbm90Ci0gKiAgICAgICAgICAgICAgICAgb3ZlcndyaXRlIGl0LgotICoKLSAqIFxwYXJhbSBQICAgICAgICBGaXJzdCBwcmltZSBmYWN0b3Igb2YgTgotICogXHBhcmFtIFEgICAgICAgIFNlY29uZCBwcmltZSBmYWN0b3Igb2YgTgotICogXHBhcmFtIEQgICAgICAgIFJTQSBwcml2YXRlIGV4cG9uZW50Ci0gKiBccGFyYW0gRFAgICAgICAgT3V0cHV0IHZhcmlhYmxlIGZvciBEIG1vZHVsbyBQLTEKLSAqIFxwYXJhbSBEUSAgICAgICBPdXRwdXQgdmFyaWFibGUgZm9yIEQgbW9kdWxvIFEtMQotICogXHBhcmFtIFFQICAgICAgIE91dHB1dCB2YXJpYWJsZSBmb3IgdGhlIG1vZHVsYXIgaW52ZXJzZSBvZiBRIG1vZHVsbyBQLgotICoKLSAqIFxyZXR1cm4gICAgICAgICAwIG9uIHN1Y2Nlc3MsIG5vbi16ZXJvIGVycm9yIGNvZGUgb3RoZXJ3aXNlLgotICoKLSAqIFxub3RlICAgICAgICAgICBUaGlzIGZ1bmN0aW9uIGRvZXMgbm90IGNoZWNrIHdoZXRoZXIgUCwgUSBhcmUKLSAqICAgICAgICAgICAgICAgICBwcmltZSBhbmQgd2hldGhlciBEIGlzIGEgdmFsaWQgcHJpdmF0ZSBleHBvbmVudC4KLSAqCi0gKi8KLWludCBtYmVkdGxzX3JzYV9kZWR1Y2VfY3J0KGNvbnN0IG1iZWR0bHNfbXBpICpQLCBjb25zdCBtYmVkdGxzX21waSAqUSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IG1iZWR0bHNfbXBpICpELCBtYmVkdGxzX21waSAqRFAsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICBtYmVkdGxzX21waSAqRFEsIG1iZWR0bHNfbXBpICpRUCk7Ci0KLQotLyoqCi0gKiBcYnJpZWYgICAgICAgICAgQ2hlY2sgdmFsaWRpdHkgb2YgY29yZSBSU0EgcGFyYW1ldGVycwotICoKLSAqIFxub3RlICAgICAgICAgICBUaGlzIGlzIGEgJ3N0YXRpYycgaGVscGVyIGZ1bmN0aW9uIG5vdCBvcGVyYXRpbmcgb24KLSAqICAgICAgICAgICAgICAgICBhbiBSU0EgY29udGV4dC4gQWx0ZXJuYXRpdmUgaW1wbGVtZW50YXRpb25zIG5lZWQgbm90Ci0gKiAgICAgICAgICAgICAgICAgb3ZlcndyaXRlIGl0LgotICoKLSAqIFxwYXJhbSBOICAgICAgICBSU0EgbW9kdWx1cyBOID0gUFEKLSAqIFxwYXJhbSBQICAgICAgICBGaXJzdCBwcmltZSBmYWN0b3Igb2YgTgotICogXHBhcmFtIFEgICAgICAgIFNlY29uZCBwcmltZSBmYWN0b3Igb2YgTgotICogXHBhcmFtIEQgICAgICAgIFJTQSBwcml2YXRlIGV4cG9uZW50Ci0gKiBccGFyYW0gRSAgICAgICAgUlNBIHB1YmxpYyBleHBvbmVudAotICogXHBhcmFtIGZfcm5nICAgIFBSTkcgdG8gYmUgdXNlZCBmb3IgcHJpbWFsaXR5IGNoZWNrLCBvciBOVUxMCi0gKiBccGFyYW0gcF9ybmcgICAgUFJORyBjb250ZXh0IGZvciBmX3JuZywgb3IgTlVMTAotICoKLSAqIFxyZXR1cm4KLSAqICAgICAgICAgICAgICAgICAtIDAgaWYgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZSBzYXRpc2ZpZWQKLSAqICAgICAgICAgICAgICAgICAgIGlmIGFsbCByZWxldmFudCBwYXJhbWV0ZXJzIGFyZSBwcm92aWRlZDoKLSAqICAgICAgICAgICAgICAgICAgICAtIFAgcHJpbWUgaWYgZl9ybmcgIT0gTlVMTCAoJSkKLSAqICAgICAgICAgICAgICAgICAgICAtIFEgcHJpbWUgaWYgZl9ybmcgIT0gTlVMTCAoJSkKLSAqICAgICAgICAgICAgICAgICAgICAtIDEgPCBOID0gUCAqIFEKLSAqICAgICAgICAgICAgICAgICAgICAtIDEgPCBELCBFIDwgTgotICogICAgICAgICAgICAgICAgICAgIC0gRCBhbmQgRSBhcmUgbW9kdWxhciBpbnZlcnNlcyBtb2R1bG8gUC0xIGFuZCBRLTEKLSAqICAgICAgICAgICAgICAgICAgICglKSBUaGlzIGlzIG9ubHkgZG9uZSBpZiBNQkVEVExTX0dFTlBSSU1FIGlzIGRlZmluZWQuCi0gKiAgICAgICAgICAgICAgICAgLSBBIG5vbi16ZXJvIGVycm9yIGNvZGUgb3RoZXJ3aXNlLgotICoKLSAqIFxub3RlICAgICAgICAgICBUaGUgZnVuY3Rpb24gY2FuIGJlIHVzZWQgd2l0aCBhIHJlc3RyaWN0ZWQgc2V0IG9mIGFyZ3VtZW50cwotICogICAgICAgICAgICAgICAgIHRvIHBlcmZvcm0gc3BlY2lmaWMgY2hlY2tzIG9ubHkuIEUuZy4sIGNhbGxpbmcgaXQgd2l0aAotICogICAgICAgICAgICAgICAgICgtLFAsLSwtLC0pIGFuZCBhIFBSTkcgYW1vdW50cyB0byBhIHByaW1hbGl0eSBjaGVjayBmb3IgUC4KLSAqLwotaW50IG1iZWR0bHNfcnNhX3ZhbGlkYXRlX3BhcmFtcyhjb25zdCBtYmVkdGxzX21waSAqTiwgY29uc3QgbWJlZHRsc19tcGkgKlAsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IG1iZWR0bHNfbXBpICpRLCBjb25zdCBtYmVkdGxzX21waSAqRCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbWJlZHRsc19tcGkgKkUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCAoKmZfcm5nKSh2b2lkICosIHVuc2lnbmVkIGNoYXIgKiwgc2l6ZV90KSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdm9pZCAqcF9ybmcpOwotCi0vKioKLSAqIFxicmllZiAgICAgICAgICBDaGVjayB2YWxpZGl0eSBvZiBSU0EgQ1JUIHBhcmFtZXRlcnMKLSAqCi0gKiBcbm90ZSAgICAgICAgICAgVGhpcyBpcyBhICdzdGF0aWMnIGhlbHBlciBmdW5jdGlvbiBub3Qgb3BlcmF0aW5nIG9uCi0gKiAgICAgICAgICAgICAgICAgYW4gUlNBIGNvbnRleHQuIEFsdGVybmF0aXZlIGltcGxlbWVudGF0aW9ucyBuZWVkIG5vdAotICogICAgICAgICAgICAgICAgIG92ZXJ3cml0ZSBpdC4KLSAqCi0gKiBccGFyYW0gUCAgICAgICAgRmlyc3QgcHJpbWUgZmFjdG9yIG9mIFJTQSBtb2R1bHVzCi0gKiBccGFyYW0gUSAgICAgICAgU2Vjb25kIHByaW1lIGZhY3RvciBvZiBSU0EgbW9kdWx1cwotICogXHBhcmFtIEQgICAgICAgIFJTQSBwcml2YXRlIGV4cG9uZW50Ci0gKiBccGFyYW0gRFAgICAgICAgTVBJIHRvIGNoZWNrIGZvciBEIG1vZHVsbyBQLTEKLSAqIFxwYXJhbSBEUSAgICAgICBNUEkgdG8gY2hlY2sgZm9yIEQgbW9kdWxvIFAtMQotICogXHBhcmFtIFFQICAgICAgIE1QSSB0byBjaGVjayBmb3IgdGhlIG1vZHVsYXIgaW52ZXJzZSBvZiBRIG1vZHVsbyBQLgotICoKLSAqIFxyZXR1cm4KLSAqICAgICAgICAgICAgICAgICAtIDAgaWYgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZSBzYXRpc2ZpZWQ6Ci0gKiAgICAgICAgICAgICAgICAgICAgLSBEID0gRFAgbW9kIFAtMSBpZiBQLCBELCBEUCAhPSBOVUxMCi0gKiAgICAgICAgICAgICAgICAgICAgLSBRID0gRFEgbW9kIFAtMSBpZiBQLCBELCBEUSAhPSBOVUxMCi0gKiAgICAgICAgICAgICAgICAgICAgLSBRUCA9IFFeLTEgbW9kIFAgaWYgUCwgUSwgUVAgIT0gTlVMTAotICogICAgICAgICAgICAgICAgIC0gXGMgTUJFRFRMU19FUlJfUlNBX0tFWV9DSEVDS19GQUlMRUQgaWYgY2hlY2sgZmFpbGVkLAotICogICAgICAgICAgICAgICAgICAgcG90ZW50aWFsbHkgaW5jbHVkaW5nIFxjIE1CRURUTFNfRVJSX01QSV9YWFggaWYgc29tZQotICogICAgICAgICAgICAgICAgICAgTVBJIGNhbGN1bGF0aW9ucyBmYWlsZWQuCi0gKiAgICAgICAgICAgICAgICAgLSBcYyBNQkVEVExTX0VSUl9SU0FfQkFEX0lOUFVUX0RBVEEgaWYgaW5zdWZmaWNpZW50Ci0gKiAgICAgICAgICAgICAgICAgICBkYXRhIHdhcyBwcm92aWRlZCB0byBjaGVjayBEUCwgRFEgb3IgUVAuCi0gKgotICogXG5vdGUgICAgICAgICAgIFRoZSBmdW5jdGlvbiBjYW4gYmUgdXNlZCB3aXRoIGEgcmVzdHJpY3RlZCBzZXQgb2YgYXJndW1lbnRzCi0gKiAgICAgICAgICAgICAgICAgdG8gcGVyZm9ybSBzcGVjaWZpYyBjaGVja3Mgb25seS4gRS5nLiwgY2FsbGluZyBpdCB3aXRoIHRoZQotICogICAgICAgICAgICAgICAgIHBhcmFtZXRlcnMgKFAsIC0sIEQsIERQLCAtLCAtKSB3aWxsIGNoZWNrIERQID0gRCBtb2QgUC0xLgotICovCi1pbnQgbWJlZHRsc19yc2FfdmFsaWRhdGVfY3J0KGNvbnN0IG1iZWR0bHNfbXBpICpQLCAgY29uc3QgbWJlZHRsc19tcGkgKlEsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IG1iZWR0bHNfbXBpICpELCAgY29uc3QgbWJlZHRsc19tcGkgKkRQLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBtYmVkdGxzX21waSAqRFEsIGNvbnN0IG1iZWR0bHNfbXBpICpRUCk7Ci0KLSNpZmRlZiBfX2NwbHVzcGx1cwotfQotI2VuZGlmCi0KLSNlbmRpZiAvKiByc2FfYWx0X2hlbHBlcnMuaCAqLwpkaWZmIC0tZ2l0IGEvbGlicmFyeS9zaGExLmMgYi9saWJyYXJ5L3NoYTEuYwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZGZiZTQ4MS4uMDAwMDAwMAotLS0gYS9saWJyYXJ5L3NoYTEuYworKysgL2Rldi9udWxsCkBAIC0xLDQ4MCArMCwwIEBACi0vKgotICogIEZJUFMtMTgwLTEgY29tcGxpYW50IFNIQS0xIGltcGxlbWVudGF0aW9uCi0gKgotICogIENvcHlyaWdodCBUaGUgTWJlZCBUTFMgQ29udHJpYnV0b3JzCi0gKiAgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjAgT1IgR1BMLTIuMC1vci1sYXRlcgotICovCi0vKgotICogIFRoZSBTSEEtMSBzdGFuZGFyZCB3YXMgcHVibGlzaGVkIGJ5IE5JU1QgaW4gMTk5My4KLSAqCi0gKiAgaHR0cDovL3d3dy5pdGwubmlzdC5nb3YvZmlwc3B1YnMvZmlwMTgwLTEuaHRtCi0gKi8KLQotI2luY2x1ZGUgImNvbW1vbi5oIgotCi0jaWYgZGVmaW5lZChNQkVEVExTX1NIQTFfQykKLQotI2luY2x1ZGUgIm1iZWR0bHMvc2hhMS5oIgotI2luY2x1ZGUgIm1iZWR0bHMvcGxhdGZvcm1fdXRpbC5oIgotI2luY2x1ZGUgIm1iZWR0bHMvZXJyb3IuaCIKLQotI2luY2x1ZGUgPHN0cmluZy5oPgotCi0jaW5jbHVkZSAibWJlZHRscy9wbGF0Zm9ybS5oIgotCi0jaWYgIWRlZmluZWQoTUJFRFRMU19TSEExX0FMVCkKLQotdm9pZCBtYmVkdGxzX3NoYTFfaW5pdChtYmVkdGxzX3NoYTFfY29udGV4dCAqY3R4KQotewotICAgIG1lbXNldChjdHgsIDAsIHNpemVvZihtYmVkdGxzX3NoYTFfY29udGV4dCkpOwotfQotCi12b2lkIG1iZWR0bHNfc2hhMV9mcmVlKG1iZWR0bHNfc2hhMV9jb250ZXh0ICpjdHgpCi17Ci0gICAgaWYgKGN0eCA9PSBOVUxMKSB7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICBtYmVkdGxzX3BsYXRmb3JtX3plcm9pemUoY3R4LCBzaXplb2YobWJlZHRsc19zaGExX2NvbnRleHQpKTsKLX0KLQotdm9pZCBtYmVkdGxzX3NoYTFfY2xvbmUobWJlZHRsc19zaGExX2NvbnRleHQgKmRzdCwKLSAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IG1iZWR0bHNfc2hhMV9jb250ZXh0ICpzcmMpCi17Ci0gICAgKmRzdCA9ICpzcmM7Ci19Ci0KLS8qCi0gKiBTSEEtMSBjb250ZXh0IHNldHVwCi0gKi8KLWludCBtYmVkdGxzX3NoYTFfc3RhcnRzKG1iZWR0bHNfc2hhMV9jb250ZXh0ICpjdHgpCi17Ci0gICAgY3R4LT50b3RhbFswXSA9IDA7Ci0gICAgY3R4LT50b3RhbFsxXSA9IDA7Ci0KLSAgICBjdHgtPnN0YXRlWzBdID0gMHg2NzQ1MjMwMTsKLSAgICBjdHgtPnN0YXRlWzFdID0gMHhFRkNEQUI4OTsKLSAgICBjdHgtPnN0YXRlWzJdID0gMHg5OEJBRENGRTsKLSAgICBjdHgtPnN0YXRlWzNdID0gMHgxMDMyNTQ3NjsKLSAgICBjdHgtPnN0YXRlWzRdID0gMHhDM0QyRTFGMDsKLQotICAgIHJldHVybiAwOwotfQotCi0jaWYgIWRlZmluZWQoTUJFRFRMU19TSEExX1BST0NFU1NfQUxUKQotaW50IG1iZWR0bHNfaW50ZXJuYWxfc2hhMV9wcm9jZXNzKG1iZWR0bHNfc2hhMV9jb250ZXh0ICpjdHgsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdW5zaWduZWQgY2hhciBkYXRhWzY0XSkKLXsKLSAgICBzdHJ1Y3QgewotICAgICAgICB1aW50MzJfdCB0ZW1wLCBXWzE2XSwgQSwgQiwgQywgRCwgRTsKLSAgICB9IGxvY2FsOwotCi0gICAgbG9jYWwuV1swXSA9IE1CRURUTFNfR0VUX1VJTlQzMl9CRShkYXRhLCAgMCk7Ci0gICAgbG9jYWwuV1sxXSA9IE1CRURUTFNfR0VUX1VJTlQzMl9CRShkYXRhLCAgNCk7Ci0gICAgbG9jYWwuV1syXSA9IE1CRURUTFNfR0VUX1VJTlQzMl9CRShkYXRhLCAgOCk7Ci0gICAgbG9jYWwuV1szXSA9IE1CRURUTFNfR0VUX1VJTlQzMl9CRShkYXRhLCAxMik7Ci0gICAgbG9jYWwuV1s0XSA9IE1CRURUTFNfR0VUX1VJTlQzMl9CRShkYXRhLCAxNik7Ci0gICAgbG9jYWwuV1s1XSA9IE1CRURUTFNfR0VUX1VJTlQzMl9CRShkYXRhLCAyMCk7Ci0gICAgbG9jYWwuV1s2XSA9IE1CRURUTFNfR0VUX1VJTlQzMl9CRShkYXRhLCAyNCk7Ci0gICAgbG9jYWwuV1s3XSA9IE1CRURUTFNfR0VUX1VJTlQzMl9CRShkYXRhLCAyOCk7Ci0gICAgbG9jYWwuV1s4XSA9IE1CRURUTFNfR0VUX1VJTlQzMl9CRShkYXRhLCAzMik7Ci0gICAgbG9jYWwuV1s5XSA9IE1CRURUTFNfR0VUX1VJTlQzMl9CRShkYXRhLCAzNik7Ci0gICAgbG9jYWwuV1sxMF0gPSBNQkVEVExTX0dFVF9VSU5UMzJfQkUoZGF0YSwgNDApOwotICAgIGxvY2FsLldbMTFdID0gTUJFRFRMU19HRVRfVUlOVDMyX0JFKGRhdGEsIDQ0KTsKLSAgICBsb2NhbC5XWzEyXSA9IE1CRURUTFNfR0VUX1VJTlQzMl9CRShkYXRhLCA0OCk7Ci0gICAgbG9jYWwuV1sxM10gPSBNQkVEVExTX0dFVF9VSU5UMzJfQkUoZGF0YSwgNTIpOwotICAgIGxvY2FsLldbMTRdID0gTUJFRFRMU19HRVRfVUlOVDMyX0JFKGRhdGEsIDU2KTsKLSAgICBsb2NhbC5XWzE1XSA9IE1CRURUTFNfR0VUX1VJTlQzMl9CRShkYXRhLCA2MCk7Ci0KLSNkZWZpbmUgUyh4LCBuKSAoKCh4KSA8PCAobikpIHwgKCgoeCkgJiAweEZGRkZGRkZGKSA+PiAoMzIgLSAobikpKSkKLQotI2RlZmluZSBSKHQpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICAoICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgICAgIGxvY2FsLnRlbXAgPSBsb2NhbC5XWygodCkgLSAgMykgJiAweDBGXSBeICAgICAgICAgICAgIFwKLSAgICAgICAgICAgICAgICAgICAgIGxvY2FsLldbKCh0KSAtICA4KSAmIDB4MEZdIF4gICAgICAgICAgICAgXAotICAgICAgICAgICAgICAgICAgICAgbG9jYWwuV1soKHQpIC0gMTQpICYgMHgwRl0gXiAgICAgICAgICAgICBcCi0gICAgICAgICAgICAgICAgICAgICBsb2NhbC5XWyh0KSAgICAgICAgJiAweDBGXSwgICAgICAgICAgICAgIFwKLSAgICAgICAgKGxvY2FsLldbKHQpICYgMHgwRl0gPSBTKGxvY2FsLnRlbXAsIDEpKSAgICAgICAgICAgICAgIFwKLSAgICApCi0KLSNkZWZpbmUgUChhLCBiLCBjLCBkLCBlLCB4KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICBkbyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgICAgICAoZSkgKz0gUygoYSksIDUpICsgRigoYiksIChjKSwgKGQpKSArIEsgKyAoeCk7ICAgICAgICAgICAgIFwKLSAgICAgICAgKGIpID0gUygoYiksIDMwKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIH0gd2hpbGUgKDApCi0KLSAgICBsb2NhbC5BID0gY3R4LT5zdGF0ZVswXTsKLSAgICBsb2NhbC5CID0gY3R4LT5zdGF0ZVsxXTsKLSAgICBsb2NhbC5DID0gY3R4LT5zdGF0ZVsyXTsKLSAgICBsb2NhbC5EID0gY3R4LT5zdGF0ZVszXTsKLSAgICBsb2NhbC5FID0gY3R4LT5zdGF0ZVs0XTsKLQotI2RlZmluZSBGKHgsIHksIHopICgoeikgXiAoKHgpICYgKCh5KSBeICh6KSkpKQotI2RlZmluZSBLIDB4NUE4Mjc5OTkKLQotICAgIFAobG9jYWwuQSwgbG9jYWwuQiwgbG9jYWwuQywgbG9jYWwuRCwgbG9jYWwuRSwgbG9jYWwuV1swXSk7Ci0gICAgUChsb2NhbC5FLCBsb2NhbC5BLCBsb2NhbC5CLCBsb2NhbC5DLCBsb2NhbC5ELCBsb2NhbC5XWzFdKTsKLSAgICBQKGxvY2FsLkQsIGxvY2FsLkUsIGxvY2FsLkEsIGxvY2FsLkIsIGxvY2FsLkMsIGxvY2FsLldbMl0pOwotICAgIFAobG9jYWwuQywgbG9jYWwuRCwgbG9jYWwuRSwgbG9jYWwuQSwgbG9jYWwuQiwgbG9jYWwuV1szXSk7Ci0gICAgUChsb2NhbC5CLCBsb2NhbC5DLCBsb2NhbC5ELCBsb2NhbC5FLCBsb2NhbC5BLCBsb2NhbC5XWzRdKTsKLSAgICBQKGxvY2FsLkEsIGxvY2FsLkIsIGxvY2FsLkMsIGxvY2FsLkQsIGxvY2FsLkUsIGxvY2FsLldbNV0pOwotICAgIFAobG9jYWwuRSwgbG9jYWwuQSwgbG9jYWwuQiwgbG9jYWwuQywgbG9jYWwuRCwgbG9jYWwuV1s2XSk7Ci0gICAgUChsb2NhbC5ELCBsb2NhbC5FLCBsb2NhbC5BLCBsb2NhbC5CLCBsb2NhbC5DLCBsb2NhbC5XWzddKTsKLSAgICBQKGxvY2FsLkMsIGxvY2FsLkQsIGxvY2FsLkUsIGxvY2FsLkEsIGxvY2FsLkIsIGxvY2FsLldbOF0pOwotICAgIFAobG9jYWwuQiwgbG9jYWwuQywgbG9jYWwuRCwgbG9jYWwuRSwgbG9jYWwuQSwgbG9jYWwuV1s5XSk7Ci0gICAgUChsb2NhbC5BLCBsb2NhbC5CLCBsb2NhbC5DLCBsb2NhbC5ELCBsb2NhbC5FLCBsb2NhbC5XWzEwXSk7Ci0gICAgUChsb2NhbC5FLCBsb2NhbC5BLCBsb2NhbC5CLCBsb2NhbC5DLCBsb2NhbC5ELCBsb2NhbC5XWzExXSk7Ci0gICAgUChsb2NhbC5ELCBsb2NhbC5FLCBsb2NhbC5BLCBsb2NhbC5CLCBsb2NhbC5DLCBsb2NhbC5XWzEyXSk7Ci0gICAgUChsb2NhbC5DLCBsb2NhbC5ELCBsb2NhbC5FLCBsb2NhbC5BLCBsb2NhbC5CLCBsb2NhbC5XWzEzXSk7Ci0gICAgUChsb2NhbC5CLCBsb2NhbC5DLCBsb2NhbC5ELCBsb2NhbC5FLCBsb2NhbC5BLCBsb2NhbC5XWzE0XSk7Ci0gICAgUChsb2NhbC5BLCBsb2NhbC5CLCBsb2NhbC5DLCBsb2NhbC5ELCBsb2NhbC5FLCBsb2NhbC5XWzE1XSk7Ci0gICAgUChsb2NhbC5FLCBsb2NhbC5BLCBsb2NhbC5CLCBsb2NhbC5DLCBsb2NhbC5ELCBSKDE2KSk7Ci0gICAgUChsb2NhbC5ELCBsb2NhbC5FLCBsb2NhbC5BLCBsb2NhbC5CLCBsb2NhbC5DLCBSKDE3KSk7Ci0gICAgUChsb2NhbC5DLCBsb2NhbC5ELCBsb2NhbC5FLCBsb2NhbC5BLCBsb2NhbC5CLCBSKDE4KSk7Ci0gICAgUChsb2NhbC5CLCBsb2NhbC5DLCBsb2NhbC5ELCBsb2NhbC5FLCBsb2NhbC5BLCBSKDE5KSk7Ci0KLSN1bmRlZiBLCi0jdW5kZWYgRgotCi0jZGVmaW5lIEYoeCwgeSwgeikgKCh4KSBeICh5KSBeICh6KSkKLSNkZWZpbmUgSyAweDZFRDlFQkExCi0KLSAgICBQKGxvY2FsLkEsIGxvY2FsLkIsIGxvY2FsLkMsIGxvY2FsLkQsIGxvY2FsLkUsIFIoMjApKTsKLSAgICBQKGxvY2FsLkUsIGxvY2FsLkEsIGxvY2FsLkIsIGxvY2FsLkMsIGxvY2FsLkQsIFIoMjEpKTsKLSAgICBQKGxvY2FsLkQsIGxvY2FsLkUsIGxvY2FsLkEsIGxvY2FsLkIsIGxvY2FsLkMsIFIoMjIpKTsKLSAgICBQKGxvY2FsLkMsIGxvY2FsLkQsIGxvY2FsLkUsIGxvY2FsLkEsIGxvY2FsLkIsIFIoMjMpKTsKLSAgICBQKGxvY2FsLkIsIGxvY2FsLkMsIGxvY2FsLkQsIGxvY2FsLkUsIGxvY2FsLkEsIFIoMjQpKTsKLSAgICBQKGxvY2FsLkEsIGxvY2FsLkIsIGxvY2FsLkMsIGxvY2FsLkQsIGxvY2FsLkUsIFIoMjUpKTsKLSAgICBQKGxvY2FsLkUsIGxvY2FsLkEsIGxvY2FsLkIsIGxvY2FsLkMsIGxvY2FsLkQsIFIoMjYpKTsKLSAgICBQKGxvY2FsLkQsIGxvY2FsLkUsIGxvY2FsLkEsIGxvY2FsLkIsIGxvY2FsLkMsIFIoMjcpKTsKLSAgICBQKGxvY2FsLkMsIGxvY2FsLkQsIGxvY2FsLkUsIGxvY2FsLkEsIGxvY2FsLkIsIFIoMjgpKTsKLSAgICBQKGxvY2FsLkIsIGxvY2FsLkMsIGxvY2FsLkQsIGxvY2FsLkUsIGxvY2FsLkEsIFIoMjkpKTsKLSAgICBQKGxvY2FsLkEsIGxvY2FsLkIsIGxvY2FsLkMsIGxvY2FsLkQsIGxvY2FsLkUsIFIoMzApKTsKLSAgICBQKGxvY2FsLkUsIGxvY2FsLkEsIGxvY2FsLkIsIGxvY2FsLkMsIGxvY2FsLkQsIFIoMzEpKTsKLSAgICBQKGxvY2FsLkQsIGxvY2FsLkUsIGxvY2FsLkEsIGxvY2FsLkIsIGxvY2FsLkMsIFIoMzIpKTsKLSAgICBQKGxvY2FsLkMsIGxvY2FsLkQsIGxvY2FsLkUsIGxvY2FsLkEsIGxvY2FsLkIsIFIoMzMpKTsKLSAgICBQKGxvY2FsLkIsIGxvY2FsLkMsIGxvY2FsLkQsIGxvY2FsLkUsIGxvY2FsLkEsIFIoMzQpKTsKLSAgICBQKGxvY2FsLkEsIGxvY2FsLkIsIGxvY2FsLkMsIGxvY2FsLkQsIGxvY2FsLkUsIFIoMzUpKTsKLSAgICBQKGxvY2FsLkUsIGxvY2FsLkEsIGxvY2FsLkIsIGxvY2FsLkMsIGxvY2FsLkQsIFIoMzYpKTsKLSAgICBQKGxvY2FsLkQsIGxvY2FsLkUsIGxvY2FsLkEsIGxvY2FsLkIsIGxvY2FsLkMsIFIoMzcpKTsKLSAgICBQKGxvY2FsLkMsIGxvY2FsLkQsIGxvY2FsLkUsIGxvY2FsLkEsIGxvY2FsLkIsIFIoMzgpKTsKLSAgICBQKGxvY2FsLkIsIGxvY2FsLkMsIGxvY2FsLkQsIGxvY2FsLkUsIGxvY2FsLkEsIFIoMzkpKTsKLQotI3VuZGVmIEsKLSN1bmRlZiBGCi0KLSNkZWZpbmUgRih4LCB5LCB6KSAoKCh4KSAmICh5KSkgfCAoKHopICYgKCh4KSB8ICh5KSkpKQotI2RlZmluZSBLIDB4OEYxQkJDREMKLQotICAgIFAobG9jYWwuQSwgbG9jYWwuQiwgbG9jYWwuQywgbG9jYWwuRCwgbG9jYWwuRSwgUig0MCkpOwotICAgIFAobG9jYWwuRSwgbG9jYWwuQSwgbG9jYWwuQiwgbG9jYWwuQywgbG9jYWwuRCwgUig0MSkpOwotICAgIFAobG9jYWwuRCwgbG9jYWwuRSwgbG9jYWwuQSwgbG9jYWwuQiwgbG9jYWwuQywgUig0MikpOwotICAgIFAobG9jYWwuQywgbG9jYWwuRCwgbG9jYWwuRSwgbG9jYWwuQSwgbG9jYWwuQiwgUig0MykpOwotICAgIFAobG9jYWwuQiwgbG9jYWwuQywgbG9jYWwuRCwgbG9jYWwuRSwgbG9jYWwuQSwgUig0NCkpOwotICAgIFAobG9jYWwuQSwgbG9jYWwuQiwgbG9jYWwuQywgbG9jYWwuRCwgbG9jYWwuRSwgUig0NSkpOwotICAgIFAobG9jYWwuRSwgbG9jYWwuQSwgbG9jYWwuQiwgbG9jYWwuQywgbG9jYWwuRCwgUig0NikpOwotICAgIFAobG9jYWwuRCwgbG9jYWwuRSwgbG9jYWwuQSwgbG9jYWwuQiwgbG9jYWwuQywgUig0NykpOwotICAgIFAobG9jYWwuQywgbG9jYWwuRCwgbG9jYWwuRSwgbG9jYWwuQSwgbG9jYWwuQiwgUig0OCkpOwotICAgIFAobG9jYWwuQiwgbG9jYWwuQywgbG9jYWwuRCwgbG9jYWwuRSwgbG9jYWwuQSwgUig0OSkpOwotICAgIFAobG9jYWwuQSwgbG9jYWwuQiwgbG9jYWwuQywgbG9jYWwuRCwgbG9jYWwuRSwgUig1MCkpOwotICAgIFAobG9jYWwuRSwgbG9jYWwuQSwgbG9jYWwuQiwgbG9jYWwuQywgbG9jYWwuRCwgUig1MSkpOwotICAgIFAobG9jYWwuRCwgbG9jYWwuRSwgbG9jYWwuQSwgbG9jYWwuQiwgbG9jYWwuQywgUig1MikpOwotICAgIFAobG9jYWwuQywgbG9jYWwuRCwgbG9jYWwuRSwgbG9jYWwuQSwgbG9jYWwuQiwgUig1MykpOwotICAgIFAobG9jYWwuQiwgbG9jYWwuQywgbG9jYWwuRCwgbG9jYWwuRSwgbG9jYWwuQSwgUig1NCkpOwotICAgIFAobG9jYWwuQSwgbG9jYWwuQiwgbG9jYWwuQywgbG9jYWwuRCwgbG9jYWwuRSwgUig1NSkpOwotICAgIFAobG9jYWwuRSwgbG9jYWwuQSwgbG9jYWwuQiwgbG9jYWwuQywgbG9jYWwuRCwgUig1NikpOwotICAgIFAobG9jYWwuRCwgbG9jYWwuRSwgbG9jYWwuQSwgbG9jYWwuQiwgbG9jYWwuQywgUig1NykpOwotICAgIFAobG9jYWwuQywgbG9jYWwuRCwgbG9jYWwuRSwgbG9jYWwuQSwgbG9jYWwuQiwgUig1OCkpOwotICAgIFAobG9jYWwuQiwgbG9jYWwuQywgbG9jYWwuRCwgbG9jYWwuRSwgbG9jYWwuQSwgUig1OSkpOwotCi0jdW5kZWYgSwotI3VuZGVmIEYKLQotI2RlZmluZSBGKHgsIHksIHopICgoeCkgXiAoeSkgXiAoeikpCi0jZGVmaW5lIEsgMHhDQTYyQzFENgotCi0gICAgUChsb2NhbC5BLCBsb2NhbC5CLCBsb2NhbC5DLCBsb2NhbC5ELCBsb2NhbC5FLCBSKDYwKSk7Ci0gICAgUChsb2NhbC5FLCBsb2NhbC5BLCBsb2NhbC5CLCBsb2NhbC5DLCBsb2NhbC5ELCBSKDYxKSk7Ci0gICAgUChsb2NhbC5ELCBsb2NhbC5FLCBsb2NhbC5BLCBsb2NhbC5CLCBsb2NhbC5DLCBSKDYyKSk7Ci0gICAgUChsb2NhbC5DLCBsb2NhbC5ELCBsb2NhbC5FLCBsb2NhbC5BLCBsb2NhbC5CLCBSKDYzKSk7Ci0gICAgUChsb2NhbC5CLCBsb2NhbC5DLCBsb2NhbC5ELCBsb2NhbC5FLCBsb2NhbC5BLCBSKDY0KSk7Ci0gICAgUChsb2NhbC5BLCBsb2NhbC5CLCBsb2NhbC5DLCBsb2NhbC5ELCBsb2NhbC5FLCBSKDY1KSk7Ci0gICAgUChsb2NhbC5FLCBsb2NhbC5BLCBsb2NhbC5CLCBsb2NhbC5DLCBsb2NhbC5ELCBSKDY2KSk7Ci0gICAgUChsb2NhbC5ELCBsb2NhbC5FLCBsb2NhbC5BLCBsb2NhbC5CLCBsb2NhbC5DLCBSKDY3KSk7Ci0gICAgUChsb2NhbC5DLCBsb2NhbC5ELCBsb2NhbC5FLCBsb2NhbC5BLCBsb2NhbC5CLCBSKDY4KSk7Ci0gICAgUChsb2NhbC5CLCBsb2NhbC5DLCBsb2NhbC5ELCBsb2NhbC5FLCBsb2NhbC5BLCBSKDY5KSk7Ci0gICAgUChsb2NhbC5BLCBsb2NhbC5CLCBsb2NhbC5DLCBsb2NhbC5ELCBsb2NhbC5FLCBSKDcwKSk7Ci0gICAgUChsb2NhbC5FLCBsb2NhbC5BLCBsb2NhbC5CLCBsb2NhbC5DLCBsb2NhbC5ELCBSKDcxKSk7Ci0gICAgUChsb2NhbC5ELCBsb2NhbC5FLCBsb2NhbC5BLCBsb2NhbC5CLCBsb2NhbC5DLCBSKDcyKSk7Ci0gICAgUChsb2NhbC5DLCBsb2NhbC5ELCBsb2NhbC5FLCBsb2NhbC5BLCBsb2NhbC5CLCBSKDczKSk7Ci0gICAgUChsb2NhbC5CLCBsb2NhbC5DLCBsb2NhbC5ELCBsb2NhbC5FLCBsb2NhbC5BLCBSKDc0KSk7Ci0gICAgUChsb2NhbC5BLCBsb2NhbC5CLCBsb2NhbC5DLCBsb2NhbC5ELCBsb2NhbC5FLCBSKDc1KSk7Ci0gICAgUChsb2NhbC5FLCBsb2NhbC5BLCBsb2NhbC5CLCBsb2NhbC5DLCBsb2NhbC5ELCBSKDc2KSk7Ci0gICAgUChsb2NhbC5ELCBsb2NhbC5FLCBsb2NhbC5BLCBsb2NhbC5CLCBsb2NhbC5DLCBSKDc3KSk7Ci0gICAgUChsb2NhbC5DLCBsb2NhbC5ELCBsb2NhbC5FLCBsb2NhbC5BLCBsb2NhbC5CLCBSKDc4KSk7Ci0gICAgUChsb2NhbC5CLCBsb2NhbC5DLCBsb2NhbC5ELCBsb2NhbC5FLCBsb2NhbC5BLCBSKDc5KSk7Ci0KLSN1bmRlZiBLCi0jdW5kZWYgRgotCi0gICAgY3R4LT5zdGF0ZVswXSArPSBsb2NhbC5BOwotICAgIGN0eC0+c3RhdGVbMV0gKz0gbG9jYWwuQjsKLSAgICBjdHgtPnN0YXRlWzJdICs9IGxvY2FsLkM7Ci0gICAgY3R4LT5zdGF0ZVszXSArPSBsb2NhbC5EOwotICAgIGN0eC0+c3RhdGVbNF0gKz0gbG9jYWwuRTsKLQotICAgIC8qIFplcm9pc2UgYnVmZmVycyBhbmQgdmFyaWFibGVzIHRvIGNsZWFyIHNlbnNpdGl2ZSBkYXRhIGZyb20gbWVtb3J5LiAqLwotICAgIG1iZWR0bHNfcGxhdGZvcm1femVyb2l6ZSgmbG9jYWwsIHNpemVvZihsb2NhbCkpOwotCi0gICAgcmV0dXJuIDA7Ci19Ci0KLSNlbmRpZiAvKiAhTUJFRFRMU19TSEExX1BST0NFU1NfQUxUICovCi0KLS8qCi0gKiBTSEEtMSBwcm9jZXNzIGJ1ZmZlcgotICovCi1pbnQgbWJlZHRsc19zaGExX3VwZGF0ZShtYmVkdGxzX3NoYTFfY29udGV4dCAqY3R4LAotICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdW5zaWduZWQgY2hhciAqaW5wdXQsCi0gICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgaWxlbikKLXsKLSAgICBpbnQgcmV0ID0gTUJFRFRMU19FUlJfRVJST1JfQ09SUlVQVElPTl9ERVRFQ1RFRDsKLSAgICBzaXplX3QgZmlsbDsKLSAgICB1aW50MzJfdCBsZWZ0OwotCi0gICAgaWYgKGlsZW4gPT0gMCkgewotICAgICAgICByZXR1cm4gMDsKLSAgICB9Ci0KLSAgICBsZWZ0ID0gY3R4LT50b3RhbFswXSAmIDB4M0Y7Ci0gICAgZmlsbCA9IDY0IC0gbGVmdDsKLQotICAgIGN0eC0+dG90YWxbMF0gKz0gKHVpbnQzMl90KSBpbGVuOwotICAgIGN0eC0+dG90YWxbMF0gJj0gMHhGRkZGRkZGRjsKLQotICAgIGlmIChjdHgtPnRvdGFsWzBdIDwgKHVpbnQzMl90KSBpbGVuKSB7Ci0gICAgICAgIGN0eC0+dG90YWxbMV0rKzsKLSAgICB9Ci0KLSAgICBpZiAobGVmdCAmJiBpbGVuID49IGZpbGwpIHsKLSAgICAgICAgbWVtY3B5KCh2b2lkICopIChjdHgtPmJ1ZmZlciArIGxlZnQpLCBpbnB1dCwgZmlsbCk7Ci0KLSAgICAgICAgaWYgKChyZXQgPSBtYmVkdGxzX2ludGVybmFsX3NoYTFfcHJvY2VzcyhjdHgsIGN0eC0+YnVmZmVyKSkgIT0gMCkgewotICAgICAgICAgICAgcmV0dXJuIHJldDsKLSAgICAgICAgfQotCi0gICAgICAgIGlucHV0ICs9IGZpbGw7Ci0gICAgICAgIGlsZW4gIC09IGZpbGw7Ci0gICAgICAgIGxlZnQgPSAwOwotICAgIH0KLQotICAgIHdoaWxlIChpbGVuID49IDY0KSB7Ci0gICAgICAgIGlmICgocmV0ID0gbWJlZHRsc19pbnRlcm5hbF9zaGExX3Byb2Nlc3MoY3R4LCBpbnB1dCkpICE9IDApIHsKLSAgICAgICAgICAgIHJldHVybiByZXQ7Ci0gICAgICAgIH0KLQotICAgICAgICBpbnB1dCArPSA2NDsKLSAgICAgICAgaWxlbiAgLT0gNjQ7Ci0gICAgfQotCi0gICAgaWYgKGlsZW4gPiAwKSB7Ci0gICAgICAgIG1lbWNweSgodm9pZCAqKSAoY3R4LT5idWZmZXIgKyBsZWZ0KSwgaW5wdXQsIGlsZW4pOwotICAgIH0KLQotICAgIHJldHVybiAwOwotfQotCi0vKgotICogU0hBLTEgZmluYWwgZGlnZXN0Ci0gKi8KLWludCBtYmVkdGxzX3NoYTFfZmluaXNoKG1iZWR0bHNfc2hhMV9jb250ZXh0ICpjdHgsCi0gICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBjaGFyIG91dHB1dFsyMF0pCi17Ci0gICAgaW50IHJldCA9IE1CRURUTFNfRVJSX0VSUk9SX0NPUlJVUFRJT05fREVURUNURUQ7Ci0gICAgdWludDMyX3QgdXNlZDsKLSAgICB1aW50MzJfdCBoaWdoLCBsb3c7Ci0KLSAgICAvKgotICAgICAqIEFkZCBwYWRkaW5nOiAweDgwIHRoZW4gMHgwMCB1bnRpbCA4IGJ5dGVzIHJlbWFpbiBmb3IgdGhlIGxlbmd0aAotICAgICAqLwotICAgIHVzZWQgPSBjdHgtPnRvdGFsWzBdICYgMHgzRjsKLQotICAgIGN0eC0+YnVmZmVyW3VzZWQrK10gPSAweDgwOwotCi0gICAgaWYgKHVzZWQgPD0gNTYpIHsKLSAgICAgICAgLyogRW5vdWdoIHJvb20gZm9yIHBhZGRpbmcgKyBsZW5ndGggaW4gY3VycmVudCBibG9jayAqLwotICAgICAgICBtZW1zZXQoY3R4LT5idWZmZXIgKyB1c2VkLCAwLCA1NiAtIHVzZWQpOwotICAgIH0gZWxzZSB7Ci0gICAgICAgIC8qIFdlJ2xsIG5lZWQgYW4gZXh0cmEgYmxvY2sgKi8KLSAgICAgICAgbWVtc2V0KGN0eC0+YnVmZmVyICsgdXNlZCwgMCwgNjQgLSB1c2VkKTsKLQotICAgICAgICBpZiAoKHJldCA9IG1iZWR0bHNfaW50ZXJuYWxfc2hhMV9wcm9jZXNzKGN0eCwgY3R4LT5idWZmZXIpKSAhPSAwKSB7Ci0gICAgICAgICAgICBnb3RvIGV4aXQ7Ci0gICAgICAgIH0KLQotICAgICAgICBtZW1zZXQoY3R4LT5idWZmZXIsIDAsIDU2KTsKLSAgICB9Ci0KLSAgICAvKgotICAgICAqIEFkZCBtZXNzYWdlIGxlbmd0aAotICAgICAqLwotICAgIGhpZ2ggPSAoY3R4LT50b3RhbFswXSA+PiAyOSkKLSAgICAgICAgICAgfCAoY3R4LT50b3RhbFsxXSA8PCAgMyk7Ci0gICAgbG93ICA9IChjdHgtPnRvdGFsWzBdIDw8ICAzKTsKLQotICAgIE1CRURUTFNfUFVUX1VJTlQzMl9CRShoaWdoLCBjdHgtPmJ1ZmZlciwgNTYpOwotICAgIE1CRURUTFNfUFVUX1VJTlQzMl9CRShsb3csICBjdHgtPmJ1ZmZlciwgNjApOwotCi0gICAgaWYgKChyZXQgPSBtYmVkdGxzX2ludGVybmFsX3NoYTFfcHJvY2VzcyhjdHgsIGN0eC0+YnVmZmVyKSkgIT0gMCkgewotICAgICAgICBnb3RvIGV4aXQ7Ci0gICAgfQotCi0gICAgLyoKLSAgICAgKiBPdXRwdXQgZmluYWwgc3RhdGUKLSAgICAgKi8KLSAgICBNQkVEVExTX1BVVF9VSU5UMzJfQkUoY3R4LT5zdGF0ZVswXSwgb3V0cHV0LCAgMCk7Ci0gICAgTUJFRFRMU19QVVRfVUlOVDMyX0JFKGN0eC0+c3RhdGVbMV0sIG91dHB1dCwgIDQpOwotICAgIE1CRURUTFNfUFVUX1VJTlQzMl9CRShjdHgtPnN0YXRlWzJdLCBvdXRwdXQsICA4KTsKLSAgICBNQkVEVExTX1BVVF9VSU5UMzJfQkUoY3R4LT5zdGF0ZVszXSwgb3V0cHV0LCAxMik7Ci0gICAgTUJFRFRMU19QVVRfVUlOVDMyX0JFKGN0eC0+c3RhdGVbNF0sIG91dHB1dCwgMTYpOwotCi0gICAgcmV0ID0gMDsKLQotZXhpdDoKLSAgICBtYmVkdGxzX3NoYTFfZnJlZShjdHgpOwotICAgIHJldHVybiByZXQ7Ci19Ci0KLSNlbmRpZiAvKiAhTUJFRFRMU19TSEExX0FMVCAqLwotCi0vKgotICogb3V0cHV0ID0gU0hBLTEoIGlucHV0IGJ1ZmZlciApCi0gKi8KLWludCBtYmVkdGxzX3NoYTEoY29uc3QgdW5zaWduZWQgY2hhciAqaW5wdXQsCi0gICAgICAgICAgICAgICAgIHNpemVfdCBpbGVuLAotICAgICAgICAgICAgICAgICB1bnNpZ25lZCBjaGFyIG91dHB1dFsyMF0pCi17Ci0gICAgaW50IHJldCA9IE1CRURUTFNfRVJSX0VSUk9SX0NPUlJVUFRJT05fREVURUNURUQ7Ci0gICAgbWJlZHRsc19zaGExX2NvbnRleHQgY3R4OwotCi0gICAgbWJlZHRsc19zaGExX2luaXQoJmN0eCk7Ci0KLSAgICBpZiAoKHJldCA9IG1iZWR0bHNfc2hhMV9zdGFydHMoJmN0eCkpICE9IDApIHsKLSAgICAgICAgZ290byBleGl0OwotICAgIH0KLQotICAgIGlmICgocmV0ID0gbWJlZHRsc19zaGExX3VwZGF0ZSgmY3R4LCBpbnB1dCwgaWxlbikpICE9IDApIHsKLSAgICAgICAgZ290byBleGl0OwotICAgIH0KLQotICAgIGlmICgocmV0ID0gbWJlZHRsc19zaGExX2ZpbmlzaCgmY3R4LCBvdXRwdXQpKSAhPSAwKSB7Ci0gICAgICAgIGdvdG8gZXhpdDsKLSAgICB9Ci0KLWV4aXQ6Ci0gICAgbWJlZHRsc19zaGExX2ZyZWUoJmN0eCk7Ci0gICAgcmV0dXJuIHJldDsKLX0KLQotI2lmIGRlZmluZWQoTUJFRFRMU19TRUxGX1RFU1QpCi0vKgotICogRklQUy0xODAtMSB0ZXN0IHZlY3RvcnMKLSAqLwotc3RhdGljIGNvbnN0IHVuc2lnbmVkIGNoYXIgc2hhMV90ZXN0X2J1ZlszXVs1N10gPQotewotICAgIHsgImFiYyIgfSwKLSAgICB7ICJhYmNkYmNkZWNkZWZkZWZnZWZnaGZnaGlnaGlqaGlqa2lqa2xqa2xta2xtbmxtbm9tbm9wbm9wcSIgfSwKLSAgICB7ICIiIH0KLX07Ci0KLXN0YXRpYyBjb25zdCBzaXplX3Qgc2hhMV90ZXN0X2J1ZmxlblszXSA9Ci17Ci0gICAgMywgNTYsIDEwMDAKLX07Ci0KLXN0YXRpYyBjb25zdCB1bnNpZ25lZCBjaGFyIHNoYTFfdGVzdF9zdW1bM11bMjBdID0KLXsKLSAgICB7IDB4QTksIDB4OTksIDB4M0UsIDB4MzYsIDB4NDcsIDB4MDYsIDB4ODEsIDB4NkEsIDB4QkEsIDB4M0UsCi0gICAgICAweDI1LCAweDcxLCAweDc4LCAweDUwLCAweEMyLCAweDZDLCAweDlDLCAweEQwLCAweEQ4LCAweDlEIH0sCi0gICAgeyAweDg0LCAweDk4LCAweDNFLCAweDQ0LCAweDFDLCAweDNCLCAweEQyLCAweDZFLCAweEJBLCAweEFFLAotICAgICAgMHg0QSwgMHhBMSwgMHhGOSwgMHg1MSwgMHgyOSwgMHhFNSwgMHhFNSwgMHg0NiwgMHg3MCwgMHhGMSB9LAotICAgIHsgMHgzNCwgMHhBQSwgMHg5NywgMHgzQywgMHhENCwgMHhDNCwgMHhEQSwgMHhBNCwgMHhGNiwgMHgxRSwKLSAgICAgIDB4RUIsIDB4MkIsIDB4REIsIDB4QUQsIDB4MjcsIDB4MzEsIDB4NjUsIDB4MzQsIDB4MDEsIDB4NkYgfQotfTsKLQotLyoKLSAqIENoZWNrdXAgcm91dGluZQotICovCi1pbnQgbWJlZHRsc19zaGExX3NlbGZfdGVzdChpbnQgdmVyYm9zZSkKLXsKLSAgICBpbnQgaSwgaiwgYnVmbGVuLCByZXQgPSAwOwotICAgIHVuc2lnbmVkIGNoYXIgYnVmWzEwMjRdOwotICAgIHVuc2lnbmVkIGNoYXIgc2hhMXN1bVsyMF07Ci0gICAgbWJlZHRsc19zaGExX2NvbnRleHQgY3R4OwotCi0gICAgbWJlZHRsc19zaGExX2luaXQoJmN0eCk7Ci0KLSAgICAvKgotICAgICAqIFNIQS0xCi0gICAgICovCi0gICAgZm9yIChpID0gMDsgaSA8IDM7IGkrKykgewotICAgICAgICBpZiAodmVyYm9zZSAhPSAwKSB7Ci0gICAgICAgICAgICBtYmVkdGxzX3ByaW50ZigiICBTSEEtMSB0ZXN0ICMlZDogIiwgaSArIDEpOwotICAgICAgICB9Ci0KLSAgICAgICAgaWYgKChyZXQgPSBtYmVkdGxzX3NoYTFfc3RhcnRzKCZjdHgpKSAhPSAwKSB7Ci0gICAgICAgICAgICBnb3RvIGZhaWw7Ci0gICAgICAgIH0KLQotICAgICAgICBpZiAoaSA9PSAyKSB7Ci0gICAgICAgICAgICBtZW1zZXQoYnVmLCAnYScsIGJ1ZmxlbiA9IDEwMDApOwotCi0gICAgICAgICAgICBmb3IgKGogPSAwOyBqIDwgMTAwMDsgaisrKSB7Ci0gICAgICAgICAgICAgICAgcmV0ID0gbWJlZHRsc19zaGExX3VwZGF0ZSgmY3R4LCBidWYsIGJ1Zmxlbik7Ci0gICAgICAgICAgICAgICAgaWYgKHJldCAhPSAwKSB7Ci0gICAgICAgICAgICAgICAgICAgIGdvdG8gZmFpbDsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICByZXQgPSBtYmVkdGxzX3NoYTFfdXBkYXRlKCZjdHgsIHNoYTFfdGVzdF9idWZbaV0sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNoYTFfdGVzdF9idWZsZW5baV0pOwotICAgICAgICAgICAgaWYgKHJldCAhPSAwKSB7Ci0gICAgICAgICAgICAgICAgZ290byBmYWlsOwotICAgICAgICAgICAgfQotICAgICAgICB9Ci0KLSAgICAgICAgaWYgKChyZXQgPSBtYmVkdGxzX3NoYTFfZmluaXNoKCZjdHgsIHNoYTFzdW0pKSAhPSAwKSB7Ci0gICAgICAgICAgICBnb3RvIGZhaWw7Ci0gICAgICAgIH0KLQotICAgICAgICBpZiAobWVtY21wKHNoYTFzdW0sIHNoYTFfdGVzdF9zdW1baV0sIDIwKSAhPSAwKSB7Ci0gICAgICAgICAgICByZXQgPSAxOwotICAgICAgICAgICAgZ290byBmYWlsOwotICAgICAgICB9Ci0KLSAgICAgICAgaWYgKHZlcmJvc2UgIT0gMCkgewotICAgICAgICAgICAgbWJlZHRsc19wcmludGYoInBhc3NlZFxuIik7Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICBpZiAodmVyYm9zZSAhPSAwKSB7Ci0gICAgICAgIG1iZWR0bHNfcHJpbnRmKCJcbiIpOwotICAgIH0KLQotICAgIGdvdG8gZXhpdDsKLQotZmFpbDoKLSAgICBpZiAodmVyYm9zZSAhPSAwKSB7Ci0gICAgICAgIG1iZWR0bHNfcHJpbnRmKCJmYWlsZWRcbiIpOwotICAgIH0KLQotZXhpdDoKLSAgICBtYmVkdGxzX3NoYTFfZnJlZSgmY3R4KTsKLQotICAgIHJldHVybiByZXQ7Ci19Ci0KLSNlbmRpZiAvKiBNQkVEVExTX1NFTEZfVEVTVCAqLwotCi0jZW5kaWYgLyogTUJFRFRMU19TSEExX0MgKi8KZGlmZiAtLWdpdCBhL2xpYnJhcnkvc2hhMjU2LmMgYi9saWJyYXJ5L3NoYTI1Ni5jCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4YjJjMzQ1Li4wMDAwMDAwCi0tLSBhL2xpYnJhcnkvc2hhMjU2LmMKKysrIC9kZXYvbnVsbApAQCAtMSw5NzggKzAsMCBAQAotLyoKLSAqICBGSVBTLTE4MC0yIGNvbXBsaWFudCBTSEEtMjU2IGltcGxlbWVudGF0aW9uCi0gKgotICogIENvcHlyaWdodCBUaGUgTWJlZCBUTFMgQ29udHJpYnV0b3JzCi0gKiAgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjAgT1IgR1BMLTIuMC1vci1sYXRlcgotICovCi0vKgotICogIFRoZSBTSEEtMjU2IFNlY3VyZSBIYXNoIFN0YW5kYXJkIHdhcyBwdWJsaXNoZWQgYnkgTklTVCBpbiAyMDAyLgotICoKLSAqICBodHRwOi8vY3NyYy5uaXN0Lmdvdi9wdWJsaWNhdGlvbnMvZmlwcy9maXBzMTgwLTIvZmlwczE4MC0yLnBkZgotICovCi0KLSNpZiBkZWZpbmVkKF9fY2xhbmdfXykgJiYgIChfX2NsYW5nX21ham9yX18gPj0gNCkKLQotLyogSWRlYWxseSwgd2Ugd291bGQgc2ltcGx5IHVzZSBNQkVEVExTX0FSQ0hfSVNfQVJNVjhfQSBpbiB0aGUgZm9sbG93aW5nICNpZiwKLSAqIGJ1dCB0aGF0IGlzIGRlZmluZWQgYnkgYnVpbGRfaW5mby5oLCBhbmQgd2UgbmVlZCB0aGlzIGJsb2NrIHRvIGhhcHBlbiBmaXJzdC4gKi8KLSNpZiBkZWZpbmVkKF9fQVJNX0FSQ0gpICYmIChfX0FSTV9BUkNIX1BST0ZJTEUgPT0gJ0EnKQotI2lmIF9fQVJNX0FSQ0ggPj0gOAotI2RlZmluZSBNQkVEVExTX1NIQTI1Nl9BUkNIX0lTX0FSTVY4X0EKLSNlbmRpZgotI2VuZGlmCi0KLSNpZiBkZWZpbmVkKE1CRURUTFNfU0hBMjU2X0FSQ0hfSVNfQVJNVjhfQSkgJiYgIWRlZmluZWQoX19BUk1fRkVBVFVSRV9DUllQVE8pCi0vKiBUT0RPOiBSZS1jb25zaWRlciBhYm92ZSBhZnRlciBodHRwczovL3Jldmlld3MubGx2bS5vcmcvRDEzMTA2NCBtZXJnZWQuCi0gKgotICogVGhlIGludHJpbnNpYyBkZWNsYXJhdGlvbiBhcmUgZ3VhcmRlZCBieSBwcmVkZWZpbmVkIEFDTEUgbWFjcm9zIGluIGNsYW5nOgotICogdGhlc2UgYXJlIG5vcm1hbGx5IG9ubHkgZW5hYmxlZCBieSB0aGUgLW1hcmNoIG9wdGlvbiBvbiB0aGUgY29tbWFuZCBsaW5lLgotICogQnkgZGVmaW5pbmcgdGhlIG1hY3JvcyBvdXJzZWx2ZXMgd2UgZ2FpbiBhY2Nlc3MgdG8gdGhvc2UgZGVjbGFyYXRpb25zIHdpdGhvdXQKLSAqIHJlcXVpcmluZyAtbWFyY2ggb24gdGhlIGNvbW1hbmQgbGluZS4KLSAqCi0gKiBgYXJtX25lb24uaGAgaXMgaW5jbHVkZWQgYnkgY29tbW9uLmgsIHNvIHdlIHB1dCB0aGVzZSBkZWZpbmVzCi0gKiBhdCB0aGUgdG9wIG9mIHRoaXMgZmlsZSwgYmVmb3JlIGFueSBpbmNsdWRlcy4KLSAqLwotI2RlZmluZSBfX0FSTV9GRUFUVVJFX0NSWVBUTyAxCi0vKiBTZWU6IGh0dHBzOi8vYXJtLXNvZnR3YXJlLmdpdGh1Yi5pby9hY2xlL21haW4vYWNsZS5odG1sI2NyeXB0b2dyYXBoaWMtZXh0ZW5zaW9ucwotICoKLSAqIGBfX0FSTV9GRUFUVVJFX0NSWVBUT2AgaXMgZGVwcmVjYXRlZCwgYnV0IHdlIG5lZWQgdG8gY29udGludWUgdG8gc3BlY2lmeSBpdAotICogZm9yIG9sZGVyIGNvbXBpbGVycy4KLSAqLwotI2RlZmluZSBfX0FSTV9GRUFUVVJFX1NIQTIgICAxCi0jZGVmaW5lIE1CRURUTFNfRU5BQkxFX0FSTV9DUllQVE9fRVhURU5TSU9OU19DT01QSUxFUl9GTEFHCi0jZW5kaWYKLQotI2VuZGlmIC8qIGRlZmluZWQoX19jbGFuZ19fKSAmJiAgKF9fY2xhbmdfbWFqb3JfXyA+PSA0KSAqLwotCi0vKiBFbnN1cmUgdGhhdCBTSUdfU0VUTUFTSyBpcyBkZWZpbmVkIHdoZW4gLXN0ZD1jOTkgaXMgdXNlZC4gKi8KLSNpZiAhZGVmaW5lZChfR05VX1NPVVJDRSkKLSNkZWZpbmUgX0dOVV9TT1VSQ0UKLSNlbmRpZgotCi0jaW5jbHVkZSAiY29tbW9uLmgiCi0KLSNpZiBkZWZpbmVkKE1CRURUTFNfU0hBMjU2X0MpIHx8IGRlZmluZWQoTUJFRFRMU19TSEEyMjRfQykKLQotI2luY2x1ZGUgIm1iZWR0bHMvc2hhMjU2LmgiCi0jaW5jbHVkZSAibWJlZHRscy9wbGF0Zm9ybV91dGlsLmgiCi0jaW5jbHVkZSAibWJlZHRscy9lcnJvci5oIgotCi0jaW5jbHVkZSA8c3RyaW5nLmg+Ci0KLSNpbmNsdWRlICJtYmVkdGxzL3BsYXRmb3JtLmgiCi0KLSNpZiBkZWZpbmVkKE1CRURUTFNfQVJDSF9JU19BUk1WOF9BKQotCi0jICBpZiBkZWZpbmVkKE1CRURUTFNfU0hBMjU2X1VTRV9BUk1WOF9BX0NSWVBUT19JRl9QUkVTRU5UKSB8fCBcCi0gICAgZGVmaW5lZChNQkVEVExTX1NIQTI1Nl9VU0VfQVJNVjhfQV9DUllQVE9fT05MWSkKLSMgICAgICAgaWYgIWRlZmluZWQoTUJFRFRMU19IQVZFX05FT05fSU5UUklOU0lDUykKLSMgICAgICAgICAgIGlmIGRlZmluZWQoTUJFRFRMU19TSEEyNTZfVVNFX0FSTVY4X0FfQ1JZUFRPX0lGX1BSRVNFTlQpCi0jICAgICAgICAgICAgICAgd2FybmluZyAiVGFyZ2V0IGRvZXMgbm90IHN1cHBvcnQgTkVPTiBpbnN0cnVjdGlvbnMiCi0jICAgICAgICAgICAgICAgdW5kZWYgTUJFRFRMU19TSEEyNTZfVVNFX0FSTVY4X0FfQ1JZUFRPX0lGX1BSRVNFTlQKLSMgICAgICAgICAgIGVsc2UKLSMgICAgICAgICAgICAgICBlcnJvciAiVGFyZ2V0IGRvZXMgbm90IHN1cHBvcnQgTkVPTiBpbnN0cnVjdGlvbnMiCi0jICAgICAgICAgICBlbmRpZgotIyAgICAgICBlbmRpZgotIyAgIGVuZGlmCi0KLSMgIGlmIGRlZmluZWQoTUJFRFRMU19TSEEyNTZfVVNFX0FSTVY4X0FfQ1JZUFRPX0lGX1BSRVNFTlQpIHx8IFwKLSAgICBkZWZpbmVkKE1CRURUTFNfU0hBMjU2X1VTRV9BUk1WOF9BX0NSWVBUT19PTkxZKQotLyogKklOREVOVC1PRkYqICovCi0KLSMgICBpZiAhZGVmaW5lZChfX0FSTV9GRUFUVVJFX0NSWVBUTykgfHwgZGVmaW5lZChNQkVEVExTX0VOQUJMRV9BUk1fQ1JZUFRPX0VYVEVOU0lPTlNfQ09NUElMRVJfRkxBRykKLSMgICAgICBpZiBkZWZpbmVkKF9fQVJNQ09NUElMRVJfVkVSU0lPTikKLSMgICAgICAgIGlmIF9fQVJNQ09NUElMRVJfVkVSU0lPTiA8PSA2MDkwMDAwCi0jICAgICAgICAgIGVycm9yICJNdXN0IHVzZSBtaW5pbXVtIC1tYXJjaD1hcm12OC1hK2NyeXB0byBmb3IgTUJFRFRMU19TSEEyNTZfVVNFX0FSTVY4X0FfQ1JZUFRPXyoiCi0jICAgICAgICBlbmRpZgotIyAgICAgICAgICBwcmFnbWEgY2xhbmcgYXR0cmlidXRlIHB1c2ggKF9fYXR0cmlidXRlX18oKHRhcmdldCgic2hhMiIpKSksIGFwcGx5X3RvPWZ1bmN0aW9uKQotIyAgICAgICAgICBkZWZpbmUgTUJFRFRMU19QT1BfVEFSR0VUX1BSQUdNQQotIyAgICAgIGVsaWYgZGVmaW5lZChfX2NsYW5nX18pCi0jICAgICAgICBpZiBfX2NsYW5nX21ham9yX18gPCA0Ci0jICAgICAgICAgIGVycm9yICJBIG1vcmUgcmVjZW50IENsYW5nIGlzIHJlcXVpcmVkIGZvciBNQkVEVExTX1NIQTI1Nl9VU0VfQVJNVjhfQV9DUllQVE9fKiIKLSMgICAgICAgIGVuZGlmCi0jICAgICAgICBwcmFnbWEgY2xhbmcgYXR0cmlidXRlIHB1c2ggKF9fYXR0cmlidXRlX18oKHRhcmdldCgiY3J5cHRvIikpKSwgYXBwbHlfdG89ZnVuY3Rpb24pCi0jICAgICAgICBkZWZpbmUgTUJFRFRMU19QT1BfVEFSR0VUX1BSQUdNQQotIyAgICAgIGVsaWYgZGVmaW5lZChfX0dOVUNfXykKLSAgICAgICAgIC8qIEZJWE1FOiBHQ0MgNSBjbGFpbXMgdG8gc3VwcG9ydCBBcm12OCBDcnlwdG8gRXh0ZW5zaW9ucywgYnV0IHNvbWUKLSAgICAgICAgICAqICAgICAgICBpbnRyaW5zaWNzIGFyZSBtaXNzaW5nLiBNaXNzaW5nIGludHJpbnNpY3MgY291bGQgYmUgd29ya2VkIGFyb3VuZC4KLSAgICAgICAgICAqLwotIyAgICAgICAgaWYgX19HTlVDX18gPCA2Ci0jICAgICAgICAgIGVycm9yICJBIG1vcmUgcmVjZW50IEdDQyBpcyByZXF1aXJlZCBmb3IgTUJFRFRMU19TSEEyNTZfVVNFX0FSTVY4X0FfQ1JZUFRPXyoiCi0jICAgICAgICBlbHNlCi0jICAgICAgICAgIHByYWdtYSBHQ0MgcHVzaF9vcHRpb25zCi0jICAgICAgICAgIHByYWdtYSBHQ0MgdGFyZ2V0ICgiYXJjaD1hcm12OC1hK2NyeXB0byIpCi0jICAgICAgICAgIGRlZmluZSBNQkVEVExTX1BPUF9UQVJHRVRfUFJBR01BCi0jICAgICAgICBlbmRpZgotIyAgICAgIGVsc2UKLSMgICAgICAgIGVycm9yICJPbmx5IEdDQyBhbmQgQ2xhbmcgc3VwcG9ydGVkIGZvciBNQkVEVExTX1NIQTI1Nl9VU0VfQVJNVjhfQV9DUllQVE9fKiIKLSMgICAgICBlbmRpZgotIyAgICBlbmRpZgotLyogKklOREVOVC1PTiogKi8KLQotIyAgZW5kaWYKLSMgIGlmIGRlZmluZWQoTUJFRFRMU19TSEEyNTZfVVNFX0FSTVY4X0FfQ1JZUFRPX0lGX1BSRVNFTlQpCi0jICAgIGlmIGRlZmluZWQoX191bml4X18pCi0jICAgICAgaWYgZGVmaW5lZChfX2xpbnV4X18pCi0vKiBPdXIgcHJlZmVycmVkIG1ldGhvZCBvZiBkZXRlY3Rpb24gaXMgZ2V0YXV4dmFsKCkgKi8KLSMgICAgICAgIGluY2x1ZGUgPHN5cy9hdXh2Lmg+Ci0vKiBUaGVzZSBhcmUgbm90IGFsd2F5cyBkZWZpbmVkIHZpYSBzeXMvYXV4di5oICovCi0jICAgICAgICBpZiAhZGVmaW5lZChIV0NBUF9TSEEyKQotIyAgICAgICAgICBkZWZpbmUgSFdDQVBfU0hBMiAgKDEgPDwgNikKLSMgICAgICAgIGVuZGlmCi0jICAgICAgICBpZiAhZGVmaW5lZChIV0NBUDJfU0hBMikKLSMgICAgICAgICAgZGVmaW5lIEhXQ0FQMl9TSEEyICgxIDw8IDMpCi0jICAgICAgICBlbmRpZgotIyAgICAgIGVuZGlmCi0vKiBVc2UgU0lHSUxMIG9uIFVuaXgsIGFuZCBmYWxsIGJhY2sgdG8gaXQgb24gTGludXggKi8KLSMgICAgICBpbmNsdWRlIDxzaWduYWwuaD4KLSMgICAgZW5kaWYKLSMgIGVuZGlmCi0jZWxpZiAhZGVmaW5lZChNQkVEVExTX1BMQVRGT1JNX0lTX1dJTkRPV1NfT05fQVJNNjQpCi0jICB1bmRlZiBNQkVEVExTX1NIQTI1Nl9VU0VfQVJNVjhfQV9DUllQVE9fT05MWQotIyAgdW5kZWYgTUJFRFRMU19TSEEyNTZfVVNFX0FSTVY4X0FfQ1JZUFRPX0lGX1BSRVNFTlQKLSNlbmRpZgotCi0jaWYgZGVmaW5lZChNQkVEVExTX1NIQTI1Nl9VU0VfQVJNVjhfQV9DUllQVE9fSUZfUFJFU0VOVCkKLS8qCi0gKiBDYXBhYmlsaXR5IGRldGVjdGlvbiBjb2RlIGNvbWVzIGVhcmx5LCBzbyB3ZSBjYW4gZGlzYWJsZQotICogTUJFRFRMU19TSEEyNTZfVVNFX0FSTVY4X0FfQ1JZUFRPX0lGX1BSRVNFTlQgaWYgbm8gZGV0ZWN0aW9uIG1lY2hhbmlzbSBmb3VuZAotICovCi0jaWYgZGVmaW5lZChNQkVEVExTX0FSQ0hfSVNfQVJNNjQpICYmIGRlZmluZWQoSFdDQVBfU0hBMikKLXN0YXRpYyBpbnQgbWJlZHRsc19hNjRfY3J5cHRvX3NoYTI1Nl9kZXRlcm1pbmVfc3VwcG9ydCh2b2lkKQotewotICAgIHJldHVybiAoZ2V0YXV4dmFsKEFUX0hXQ0FQKSAmIEhXQ0FQX1NIQTIpID8gMSA6IDA7Ci19Ci0jZWxpZiBkZWZpbmVkKE1CRURUTFNfQVJDSF9JU19BUk0zMikgJiYgZGVmaW5lZChIV0NBUDJfU0hBMikKLXN0YXRpYyBpbnQgbWJlZHRsc19hNjRfY3J5cHRvX3NoYTI1Nl9kZXRlcm1pbmVfc3VwcG9ydCh2b2lkKQotewotICAgIHJldHVybiAoZ2V0YXV4dmFsKEFUX0hXQ0FQMikgJiBIV0NBUDJfU0hBMikgPyAxIDogMDsKLX0KLSNlbGlmIGRlZmluZWQoX19BUFBMRV9fKQotc3RhdGljIGludCBtYmVkdGxzX2E2NF9jcnlwdG9fc2hhMjU2X2RldGVybWluZV9zdXBwb3J0KHZvaWQpCi17Ci0gICAgcmV0dXJuIDE7Ci19Ci0jZWxpZiBkZWZpbmVkKE1CRURUTFNfUExBVEZPUk1fSVNfV0lORE9XU19PTl9BUk02NCkKLSNkZWZpbmUgV0lOMzJfTEVBTl9BTkRfTUVBTgotI2luY2x1ZGUgPFdpbmRvd3MuaD4KLSNpbmNsdWRlIDxwcm9jZXNzdGhyZWFkc2FwaS5oPgotCi1zdGF0aWMgaW50IG1iZWR0bHNfYTY0X2NyeXB0b19zaGEyNTZfZGV0ZXJtaW5lX3N1cHBvcnQodm9pZCkKLXsKLSAgICByZXR1cm4gSXNQcm9jZXNzb3JGZWF0dXJlUHJlc2VudChQRl9BUk1fVjhfQ1JZUFRPX0lOU1RSVUNUSU9OU19BVkFJTEFCTEUpID8KLSAgICAgICAgICAgMSA6IDA7Ci19Ci0jZWxpZiBkZWZpbmVkKF9fdW5peF9fKSAmJiBkZWZpbmVkKFNJR19TRVRNQVNLKQotLyogRGV0ZWN0aW9uIHdpdGggU0lHSUxMLCBzZXRqbXAoKSBhbmQgbG9uZ2ptcCgpICovCi0jaW5jbHVkZSA8c2lnbmFsLmg+Ci0jaW5jbHVkZSA8c2V0am1wLmg+Ci0KLXN0YXRpYyBqbXBfYnVmIHJldHVybl9mcm9tX3NpZ2lsbDsKLQotLyoKLSAqIEFybXY4LUEgU0hBMjU2IHN1cHBvcnQgZGV0ZWN0aW9uIHZpYSBTSUdJTEwKLSAqLwotc3RhdGljIHZvaWQgc2lnaWxsX2hhbmRsZXIoaW50IHNpZ25hbCkKLXsKLSAgICAodm9pZCkgc2lnbmFsOwotICAgIGxvbmdqbXAocmV0dXJuX2Zyb21fc2lnaWxsLCAxKTsKLX0KLQotc3RhdGljIGludCBtYmVkdGxzX2E2NF9jcnlwdG9fc2hhMjU2X2RldGVybWluZV9zdXBwb3J0KHZvaWQpCi17Ci0gICAgc3RydWN0IHNpZ2FjdGlvbiBvbGRfYWN0aW9uLCBuZXdfYWN0aW9uOwotCi0gICAgc2lnc2V0X3Qgb2xkX21hc2s7Ci0gICAgaWYgKHNpZ3Byb2NtYXNrKDAsIE5VTEwsICZvbGRfbWFzaykpIHsKLSAgICAgICAgcmV0dXJuIDA7Ci0gICAgfQotCi0gICAgc2lnZW1wdHlzZXQoJm5ld19hY3Rpb24uc2FfbWFzayk7Ci0gICAgbmV3X2FjdGlvbi5zYV9mbGFncyA9IDA7Ci0gICAgbmV3X2FjdGlvbi5zYV9oYW5kbGVyID0gc2lnaWxsX2hhbmRsZXI7Ci0KLSAgICBzaWdhY3Rpb24oU0lHSUxMLCAmbmV3X2FjdGlvbiwgJm9sZF9hY3Rpb24pOwotCi0gICAgc3RhdGljIGludCByZXQgPSAwOwotCi0gICAgaWYgKHNldGptcChyZXR1cm5fZnJvbV9zaWdpbGwpID09IDApIHsgICAgICAgICAvKiBGaXJzdCByZXR1cm4gb25seSAqLwotICAgICAgICAvKiBJZiB0aGlzIHRyYXBzLCB3ZSB3aWxsIHJldHVybiBhIHNlY29uZCB0aW1lIGZyb20gc2V0am1wKCkgd2l0aCAxICovCi0jaWYgZGVmaW5lZChNQkVEVExTX0FSQ0hfSVNfQVJNNjQpCi0gICAgICAgIGFzbSB2b2xhdGlsZSAoInNoYTI1NmggcTAsIHEwLCB2MC40cyIgOiA6IDogInYwIik7Ci0jZWxzZQotICAgICAgICBhc20gdm9sYXRpbGUgKCJzaGEyNTZoLjMyIHEwLCBxMCwgcTAiIDogOiA6ICJxMCIpOwotI2VuZGlmCi0gICAgICAgIHJldCA9IDE7Ci0gICAgfQotCi0gICAgc2lnYWN0aW9uKFNJR0lMTCwgJm9sZF9hY3Rpb24sIE5VTEwpOwotICAgIHNpZ3Byb2NtYXNrKFNJR19TRVRNQVNLLCAmb2xkX21hc2ssIE5VTEwpOwotCi0gICAgcmV0dXJuIHJldDsKLX0KLSNlbHNlCi0jd2FybmluZyAiTm8gbWVjaGFuaXNtIHRvIGRldGVjdCBBUk1WOF9DUllQVE8gZm91bmQsIHVzaW5nIEMgY29kZSBvbmx5IgotI3VuZGVmIE1CRURUTFNfU0hBMjU2X1VTRV9BUk1WOF9BX0NSWVBUT19JRl9QUkVTRU5UCi0jZW5kaWYgIC8qIEhXQ0FQX1NIQTIsIF9fQVBQTEVfXywgX191bml4X18gJiYgU0lHX1NFVE1BU0sgKi8KLQotI2VuZGlmICAvKiBNQkVEVExTX1NIQTI1Nl9VU0VfQVJNVjhfQV9DUllQVE9fSUZfUFJFU0VOVCAqLwotCi0jaWYgIWRlZmluZWQoTUJFRFRMU19TSEEyNTZfQUxUKQotCi0jZGVmaW5lIFNIQTI1Nl9CTE9DS19TSVpFIDY0Ci0KLXZvaWQgbWJlZHRsc19zaGEyNTZfaW5pdChtYmVkdGxzX3NoYTI1Nl9jb250ZXh0ICpjdHgpCi17Ci0gICAgbWVtc2V0KGN0eCwgMCwgc2l6ZW9mKG1iZWR0bHNfc2hhMjU2X2NvbnRleHQpKTsKLX0KLQotdm9pZCBtYmVkdGxzX3NoYTI1Nl9mcmVlKG1iZWR0bHNfc2hhMjU2X2NvbnRleHQgKmN0eCkKLXsKLSAgICBpZiAoY3R4ID09IE5VTEwpIHsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLQotICAgIG1iZWR0bHNfcGxhdGZvcm1femVyb2l6ZShjdHgsIHNpemVvZihtYmVkdGxzX3NoYTI1Nl9jb250ZXh0KSk7Ci19Ci0KLXZvaWQgbWJlZHRsc19zaGEyNTZfY2xvbmUobWJlZHRsc19zaGEyNTZfY29udGV4dCAqZHN0LAotICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBtYmVkdGxzX3NoYTI1Nl9jb250ZXh0ICpzcmMpCi17Ci0gICAgKmRzdCA9ICpzcmM7Ci19Ci0KLS8qCi0gKiBTSEEtMjU2IGNvbnRleHQgc2V0dXAKLSAqLwotaW50IG1iZWR0bHNfc2hhMjU2X3N0YXJ0cyhtYmVkdGxzX3NoYTI1Nl9jb250ZXh0ICpjdHgsIGludCBpczIyNCkKLXsKLSNpZiBkZWZpbmVkKE1CRURUTFNfU0hBMjI0X0MpICYmIGRlZmluZWQoTUJFRFRMU19TSEEyNTZfQykKLSAgICBpZiAoaXMyMjQgIT0gMCAmJiBpczIyNCAhPSAxKSB7Ci0gICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9TSEEyNTZfQkFEX0lOUFVUX0RBVEE7Ci0gICAgfQotI2VsaWYgZGVmaW5lZChNQkVEVExTX1NIQTI1Nl9DKQotICAgIGlmIChpczIyNCAhPSAwKSB7Ci0gICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9TSEEyNTZfQkFEX0lOUFVUX0RBVEE7Ci0gICAgfQotI2Vsc2UgLyogZGVmaW5lZCBNQkVEVExTX1NIQTIyNF9DIG9ubHkgKi8KLSAgICBpZiAoaXMyMjQgPT0gMCkgewotICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfU0hBMjU2X0JBRF9JTlBVVF9EQVRBOwotICAgIH0KLSNlbmRpZgotCi0gICAgY3R4LT50b3RhbFswXSA9IDA7Ci0gICAgY3R4LT50b3RhbFsxXSA9IDA7Ci0KLSAgICBpZiAoaXMyMjQgPT0gMCkgewotI2lmIGRlZmluZWQoTUJFRFRMU19TSEEyNTZfQykKLSAgICAgICAgY3R4LT5zdGF0ZVswXSA9IDB4NkEwOUU2Njc7Ci0gICAgICAgIGN0eC0+c3RhdGVbMV0gPSAweEJCNjdBRTg1OwotICAgICAgICBjdHgtPnN0YXRlWzJdID0gMHgzQzZFRjM3MjsKLSAgICAgICAgY3R4LT5zdGF0ZVszXSA9IDB4QTU0RkY1M0E7Ci0gICAgICAgIGN0eC0+c3RhdGVbNF0gPSAweDUxMEU1MjdGOwotICAgICAgICBjdHgtPnN0YXRlWzVdID0gMHg5QjA1Njg4QzsKLSAgICAgICAgY3R4LT5zdGF0ZVs2XSA9IDB4MUY4M0Q5QUI7Ci0gICAgICAgIGN0eC0+c3RhdGVbN10gPSAweDVCRTBDRDE5OwotI2VuZGlmCi0gICAgfSBlbHNlIHsKLSNpZiBkZWZpbmVkKE1CRURUTFNfU0hBMjI0X0MpCi0gICAgICAgIGN0eC0+c3RhdGVbMF0gPSAweEMxMDU5RUQ4OwotICAgICAgICBjdHgtPnN0YXRlWzFdID0gMHgzNjdDRDUwNzsKLSAgICAgICAgY3R4LT5zdGF0ZVsyXSA9IDB4MzA3MEREMTc7Ci0gICAgICAgIGN0eC0+c3RhdGVbM10gPSAweEY3MEU1OTM5OwotICAgICAgICBjdHgtPnN0YXRlWzRdID0gMHhGRkMwMEIzMTsKLSAgICAgICAgY3R4LT5zdGF0ZVs1XSA9IDB4Njg1ODE1MTE7Ci0gICAgICAgIGN0eC0+c3RhdGVbNl0gPSAweDY0Rjk4RkE3OwotICAgICAgICBjdHgtPnN0YXRlWzddID0gMHhCRUZBNEZBNDsKLSNlbmRpZgotICAgIH0KLQotI2lmIGRlZmluZWQoTUJFRFRMU19TSEEyMjRfQykKLSAgICBjdHgtPmlzMjI0ID0gaXMyMjQ7Ci0jZW5kaWYKLQotICAgIHJldHVybiAwOwotfQotCi0jaWYgIWRlZmluZWQoTUJFRFRMU19TSEEyNTZfUFJPQ0VTU19BTFQpCi1zdGF0aWMgY29uc3QgdWludDMyX3QgS1tdID0KLXsKLSAgICAweDQyOEEyRjk4LCAweDcxMzc0NDkxLCAweEI1QzBGQkNGLCAweEU5QjVEQkE1LAotICAgIDB4Mzk1NkMyNUIsIDB4NTlGMTExRjEsIDB4OTIzRjgyQTQsIDB4QUIxQzVFRDUsCi0gICAgMHhEODA3QUE5OCwgMHgxMjgzNUIwMSwgMHgyNDMxODVCRSwgMHg1NTBDN0RDMywKLSAgICAweDcyQkU1RDc0LCAweDgwREVCMUZFLCAweDlCREMwNkE3LCAweEMxOUJGMTc0LAotICAgIDB4RTQ5QjY5QzEsIDB4RUZCRTQ3ODYsIDB4MEZDMTlEQzYsIDB4MjQwQ0ExQ0MsCi0gICAgMHgyREU5MkM2RiwgMHg0QTc0ODRBQSwgMHg1Q0IwQTlEQywgMHg3NkY5ODhEQSwKLSAgICAweDk4M0U1MTUyLCAweEE4MzFDNjZELCAweEIwMDMyN0M4LCAweEJGNTk3RkM3LAotICAgIDB4QzZFMDBCRjMsIDB4RDVBNzkxNDcsIDB4MDZDQTYzNTEsIDB4MTQyOTI5NjcsCi0gICAgMHgyN0I3MEE4NSwgMHgyRTFCMjEzOCwgMHg0RDJDNkRGQywgMHg1MzM4MEQxMywKLSAgICAweDY1MEE3MzU0LCAweDc2NkEwQUJCLCAweDgxQzJDOTJFLCAweDkyNzIyQzg1LAotICAgIDB4QTJCRkU4QTEsIDB4QTgxQTY2NEIsIDB4QzI0QjhCNzAsIDB4Qzc2QzUxQTMsCi0gICAgMHhEMTkyRTgxOSwgMHhENjk5MDYyNCwgMHhGNDBFMzU4NSwgMHgxMDZBQTA3MCwKLSAgICAweDE5QTRDMTE2LCAweDFFMzc2QzA4LCAweDI3NDg3NzRDLCAweDM0QjBCQ0I1LAotICAgIDB4MzkxQzBDQjMsIDB4NEVEOEFBNEEsIDB4NUI5Q0NBNEYsIDB4NjgyRTZGRjMsCi0gICAgMHg3NDhGODJFRSwgMHg3OEE1NjM2RiwgMHg4NEM4NzgxNCwgMHg4Q0M3MDIwOCwKLSAgICAweDkwQkVGRkZBLCAweEE0NTA2Q0VCLCAweEJFRjlBM0Y3LCAweEM2NzE3OEYyLAotfTsKLQotI2VuZGlmCi0KLSNpZiBkZWZpbmVkKE1CRURUTFNfU0hBMjU2X1VTRV9BUk1WOF9BX0NSWVBUT19JRl9QUkVTRU5UKSB8fCBcCi0gICAgZGVmaW5lZChNQkVEVExTX1NIQTI1Nl9VU0VfQVJNVjhfQV9DUllQVE9fT05MWSkKLQotI2lmIGRlZmluZWQoTUJFRFRMU19TSEEyNTZfVVNFX0FSTVY4X0FfQ1JZUFRPX09OTFkpCi0jICBkZWZpbmUgbWJlZHRsc19pbnRlcm5hbF9zaGEyNTZfcHJvY2Vzc19tYW55X2E2NF9jcnlwdG8gbWJlZHRsc19pbnRlcm5hbF9zaGEyNTZfcHJvY2Vzc19tYW55Ci0jICBkZWZpbmUgbWJlZHRsc19pbnRlcm5hbF9zaGEyNTZfcHJvY2Vzc19hNjRfY3J5cHRvICAgICAgbWJlZHRsc19pbnRlcm5hbF9zaGEyNTZfcHJvY2VzcwotI2VuZGlmCi0KLXN0YXRpYyBzaXplX3QgbWJlZHRsc19pbnRlcm5hbF9zaGEyNTZfcHJvY2Vzc19tYW55X2E2NF9jcnlwdG8oCi0gICAgbWJlZHRsc19zaGEyNTZfY29udGV4dCAqY3R4LCBjb25zdCB1aW50OF90ICptc2csIHNpemVfdCBsZW4pCi17Ci0gICAgdWludDMyeDRfdCBhYmNkID0gdmxkMXFfdTMyKCZjdHgtPnN0YXRlWzBdKTsKLSAgICB1aW50MzJ4NF90IGVmZ2ggPSB2bGQxcV91MzIoJmN0eC0+c3RhdGVbNF0pOwotCi0gICAgc2l6ZV90IHByb2Nlc3NlZCA9IDA7Ci0KLSAgICBmb3IgKDsKLSAgICAgICAgIGxlbiA+PSBTSEEyNTZfQkxPQ0tfU0laRTsKLSAgICAgICAgIHByb2Nlc3NlZCArPSBTSEEyNTZfQkxPQ0tfU0laRSwKLSAgICAgICAgIG1zZyArPSBTSEEyNTZfQkxPQ0tfU0laRSwKLSAgICAgICAgIGxlbiAtPSBTSEEyNTZfQkxPQ0tfU0laRSkgewotICAgICAgICB1aW50MzJ4NF90IHRtcCwgYWJjZF9wcmV2OwotCi0gICAgICAgIHVpbnQzMng0X3QgYWJjZF9vcmlnID0gYWJjZDsKLSAgICAgICAgdWludDMyeDRfdCBlZmdoX29yaWcgPSBlZmdoOwotCi0gICAgICAgIHVpbnQzMng0X3Qgc2NoZWQwID0gdnJlaW50ZXJwcmV0cV91MzJfdTgodmxkMXFfdTgobXNnICsgMTYgKiAwKSk7Ci0gICAgICAgIHVpbnQzMng0X3Qgc2NoZWQxID0gdnJlaW50ZXJwcmV0cV91MzJfdTgodmxkMXFfdTgobXNnICsgMTYgKiAxKSk7Ci0gICAgICAgIHVpbnQzMng0X3Qgc2NoZWQyID0gdnJlaW50ZXJwcmV0cV91MzJfdTgodmxkMXFfdTgobXNnICsgMTYgKiAyKSk7Ci0gICAgICAgIHVpbnQzMng0X3Qgc2NoZWQzID0gdnJlaW50ZXJwcmV0cV91MzJfdTgodmxkMXFfdTgobXNnICsgMTYgKiAzKSk7Ci0KLSNpZiBfX0JZVEVfT1JERVJfXyA9PSBfX09SREVSX0xJVFRMRV9FTkRJQU5fXyAgLyogV2lsbCBiZSB0cnVlIGlmIG5vdCBkZWZpbmVkICovCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFVudGVzdGVkIG9uIEJFICovCi0gICAgICAgIHNjaGVkMCA9IHZyZWludGVycHJldHFfdTMyX3U4KHZyZXYzMnFfdTgodnJlaW50ZXJwcmV0cV91OF91MzIoc2NoZWQwKSkpOwotICAgICAgICBzY2hlZDEgPSB2cmVpbnRlcnByZXRxX3UzMl91OCh2cmV2MzJxX3U4KHZyZWludGVycHJldHFfdThfdTMyKHNjaGVkMSkpKTsKLSAgICAgICAgc2NoZWQyID0gdnJlaW50ZXJwcmV0cV91MzJfdTgodnJldjMycV91OCh2cmVpbnRlcnByZXRxX3U4X3UzMihzY2hlZDIpKSk7Ci0gICAgICAgIHNjaGVkMyA9IHZyZWludGVycHJldHFfdTMyX3U4KHZyZXYzMnFfdTgodnJlaW50ZXJwcmV0cV91OF91MzIoc2NoZWQzKSkpOwotI2VuZGlmCi0KLSAgICAgICAgLyogUm91bmRzIDAgdG8gMyAqLwotICAgICAgICB0bXAgPSB2YWRkcV91MzIoc2NoZWQwLCB2bGQxcV91MzIoJktbMF0pKTsKLSAgICAgICAgYWJjZF9wcmV2ID0gYWJjZDsKLSAgICAgICAgYWJjZCA9IHZzaGEyNTZocV91MzIoYWJjZF9wcmV2LCBlZmdoLCB0bXApOwotICAgICAgICBlZmdoID0gdnNoYTI1NmgycV91MzIoZWZnaCwgYWJjZF9wcmV2LCB0bXApOwotCi0gICAgICAgIC8qIFJvdW5kcyA0IHRvIDcgKi8KLSAgICAgICAgdG1wID0gdmFkZHFfdTMyKHNjaGVkMSwgdmxkMXFfdTMyKCZLWzRdKSk7Ci0gICAgICAgIGFiY2RfcHJldiA9IGFiY2Q7Ci0gICAgICAgIGFiY2QgPSB2c2hhMjU2aHFfdTMyKGFiY2RfcHJldiwgZWZnaCwgdG1wKTsKLSAgICAgICAgZWZnaCA9IHZzaGEyNTZoMnFfdTMyKGVmZ2gsIGFiY2RfcHJldiwgdG1wKTsKLQotICAgICAgICAvKiBSb3VuZHMgOCB0byAxMSAqLwotICAgICAgICB0bXAgPSB2YWRkcV91MzIoc2NoZWQyLCB2bGQxcV91MzIoJktbOF0pKTsKLSAgICAgICAgYWJjZF9wcmV2ID0gYWJjZDsKLSAgICAgICAgYWJjZCA9IHZzaGEyNTZocV91MzIoYWJjZF9wcmV2LCBlZmdoLCB0bXApOwotICAgICAgICBlZmdoID0gdnNoYTI1NmgycV91MzIoZWZnaCwgYWJjZF9wcmV2LCB0bXApOwotCi0gICAgICAgIC8qIFJvdW5kcyAxMiB0byAxNSAqLwotICAgICAgICB0bXAgPSB2YWRkcV91MzIoc2NoZWQzLCB2bGQxcV91MzIoJktbMTJdKSk7Ci0gICAgICAgIGFiY2RfcHJldiA9IGFiY2Q7Ci0gICAgICAgIGFiY2QgPSB2c2hhMjU2aHFfdTMyKGFiY2RfcHJldiwgZWZnaCwgdG1wKTsKLSAgICAgICAgZWZnaCA9IHZzaGEyNTZoMnFfdTMyKGVmZ2gsIGFiY2RfcHJldiwgdG1wKTsKLQotICAgICAgICBmb3IgKGludCB0ID0gMTY7IHQgPCA2NDsgdCArPSAxNikgewotICAgICAgICAgICAgLyogUm91bmRzIHQgdG8gdCArIDMgKi8KLSAgICAgICAgICAgIHNjaGVkMCA9IHZzaGEyNTZzdTFxX3UzMih2c2hhMjU2c3UwcV91MzIoc2NoZWQwLCBzY2hlZDEpLCBzY2hlZDIsIHNjaGVkMyk7Ci0gICAgICAgICAgICB0bXAgPSB2YWRkcV91MzIoc2NoZWQwLCB2bGQxcV91MzIoJktbdF0pKTsKLSAgICAgICAgICAgIGFiY2RfcHJldiA9IGFiY2Q7Ci0gICAgICAgICAgICBhYmNkID0gdnNoYTI1NmhxX3UzMihhYmNkX3ByZXYsIGVmZ2gsIHRtcCk7Ci0gICAgICAgICAgICBlZmdoID0gdnNoYTI1NmgycV91MzIoZWZnaCwgYWJjZF9wcmV2LCB0bXApOwotCi0gICAgICAgICAgICAvKiBSb3VuZHMgdCArIDQgdG8gdCArIDcgKi8KLSAgICAgICAgICAgIHNjaGVkMSA9IHZzaGEyNTZzdTFxX3UzMih2c2hhMjU2c3UwcV91MzIoc2NoZWQxLCBzY2hlZDIpLCBzY2hlZDMsIHNjaGVkMCk7Ci0gICAgICAgICAgICB0bXAgPSB2YWRkcV91MzIoc2NoZWQxLCB2bGQxcV91MzIoJktbdCArIDRdKSk7Ci0gICAgICAgICAgICBhYmNkX3ByZXYgPSBhYmNkOwotICAgICAgICAgICAgYWJjZCA9IHZzaGEyNTZocV91MzIoYWJjZF9wcmV2LCBlZmdoLCB0bXApOwotICAgICAgICAgICAgZWZnaCA9IHZzaGEyNTZoMnFfdTMyKGVmZ2gsIGFiY2RfcHJldiwgdG1wKTsKLQotICAgICAgICAgICAgLyogUm91bmRzIHQgKyA4IHRvIHQgKyAxMSAqLwotICAgICAgICAgICAgc2NoZWQyID0gdnNoYTI1NnN1MXFfdTMyKHZzaGEyNTZzdTBxX3UzMihzY2hlZDIsIHNjaGVkMyksIHNjaGVkMCwgc2NoZWQxKTsKLSAgICAgICAgICAgIHRtcCA9IHZhZGRxX3UzMihzY2hlZDIsIHZsZDFxX3UzMigmS1t0ICsgOF0pKTsKLSAgICAgICAgICAgIGFiY2RfcHJldiA9IGFiY2Q7Ci0gICAgICAgICAgICBhYmNkID0gdnNoYTI1NmhxX3UzMihhYmNkX3ByZXYsIGVmZ2gsIHRtcCk7Ci0gICAgICAgICAgICBlZmdoID0gdnNoYTI1NmgycV91MzIoZWZnaCwgYWJjZF9wcmV2LCB0bXApOwotCi0gICAgICAgICAgICAvKiBSb3VuZHMgdCArIDEyIHRvIHQgKyAxNSAqLwotICAgICAgICAgICAgc2NoZWQzID0gdnNoYTI1NnN1MXFfdTMyKHZzaGEyNTZzdTBxX3UzMihzY2hlZDMsIHNjaGVkMCksIHNjaGVkMSwgc2NoZWQyKTsKLSAgICAgICAgICAgIHRtcCA9IHZhZGRxX3UzMihzY2hlZDMsIHZsZDFxX3UzMigmS1t0ICsgMTJdKSk7Ci0gICAgICAgICAgICBhYmNkX3ByZXYgPSBhYmNkOwotICAgICAgICAgICAgYWJjZCA9IHZzaGEyNTZocV91MzIoYWJjZF9wcmV2LCBlZmdoLCB0bXApOwotICAgICAgICAgICAgZWZnaCA9IHZzaGEyNTZoMnFfdTMyKGVmZ2gsIGFiY2RfcHJldiwgdG1wKTsKLSAgICAgICAgfQotCi0gICAgICAgIGFiY2QgPSB2YWRkcV91MzIoYWJjZCwgYWJjZF9vcmlnKTsKLSAgICAgICAgZWZnaCA9IHZhZGRxX3UzMihlZmdoLCBlZmdoX29yaWcpOwotICAgIH0KLQotICAgIHZzdDFxX3UzMigmY3R4LT5zdGF0ZVswXSwgYWJjZCk7Ci0gICAgdnN0MXFfdTMyKCZjdHgtPnN0YXRlWzRdLCBlZmdoKTsKLQotICAgIHJldHVybiBwcm9jZXNzZWQ7Ci19Ci0KLSNpZiBkZWZpbmVkKE1CRURUTFNfU0hBMjU2X1VTRV9BUk1WOF9BX0NSWVBUT19JRl9QUkVTRU5UKQotLyoKLSAqIFRoaXMgZnVuY3Rpb24gaXMgZm9yIGludGVybmFsIHVzZSBvbmx5IGlmIHdlIGFyZSBidWlsZGluZyBib3RoIEMgYW5kIEFybXY4LUEKLSAqIHZlcnNpb25zLCBvdGhlcndpc2UgaXQgaXMgcmVuYW1lZCB0byBiZSB0aGUgcHVibGljIG1iZWR0bHNfaW50ZXJuYWxfc2hhMjU2X3Byb2Nlc3MoKQotICovCi1zdGF0aWMKLSNlbmRpZgotaW50IG1iZWR0bHNfaW50ZXJuYWxfc2hhMjU2X3Byb2Nlc3NfYTY0X2NyeXB0byhtYmVkdGxzX3NoYTI1Nl9jb250ZXh0ICpjdHgsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgZGF0YVtTSEEyNTZfQkxPQ0tfU0laRV0pCi17Ci0gICAgcmV0dXJuIChtYmVkdGxzX2ludGVybmFsX3NoYTI1Nl9wcm9jZXNzX21hbnlfYTY0X2NyeXB0byhjdHgsIGRhdGEsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTSEEyNTZfQkxPQ0tfU0laRSkgPT0KLSAgICAgICAgICAgIFNIQTI1Nl9CTE9DS19TSVpFKSA/IDAgOiAtMTsKLX0KLQotI2VuZGlmIC8qIE1CRURUTFNfU0hBMjU2X1VTRV9BUk1WOF9BX0NSWVBUT19JRl9QUkVTRU5UIHx8IE1CRURUTFNfU0hBMjU2X1VTRV9BUk1WOF9BX0NSWVBUT19PTkxZICovCi0KLSNpZiBkZWZpbmVkKE1CRURUTFNfUE9QX1RBUkdFVF9QUkFHTUEpCi0jaWYgZGVmaW5lZChfX2NsYW5nX18pCi0jcHJhZ21hIGNsYW5nIGF0dHJpYnV0ZSBwb3AKLSNlbGlmIGRlZmluZWQoX19HTlVDX18pCi0jcHJhZ21hIEdDQyBwb3Bfb3B0aW9ucwotI2VuZGlmCi0jdW5kZWYgTUJFRFRMU19QT1BfVEFSR0VUX1BSQUdNQQotI2VuZGlmCi0KLSNpZiAhZGVmaW5lZChNQkVEVExTX1NIQTI1Nl9VU0VfQVJNVjhfQV9DUllQVE9fSUZfUFJFU0VOVCkKLSNkZWZpbmUgbWJlZHRsc19pbnRlcm5hbF9zaGEyNTZfcHJvY2Vzc19tYW55X2MgbWJlZHRsc19pbnRlcm5hbF9zaGEyNTZfcHJvY2Vzc19tYW55Ci0jZGVmaW5lIG1iZWR0bHNfaW50ZXJuYWxfc2hhMjU2X3Byb2Nlc3NfYyAgICAgIG1iZWR0bHNfaW50ZXJuYWxfc2hhMjU2X3Byb2Nlc3MKLSNlbmRpZgotCi0KLSNpZiAhZGVmaW5lZChNQkVEVExTX1NIQTI1Nl9QUk9DRVNTX0FMVCkgJiYgXAotICAgICFkZWZpbmVkKE1CRURUTFNfU0hBMjU2X1VTRV9BUk1WOF9BX0NSWVBUT19PTkxZKQotCi0jZGVmaW5lICBTSFIoeCwgbikgKCgoeCkgJiAweEZGRkZGRkZGKSA+PiAobikpCi0jZGVmaW5lIFJPVFIoeCwgbikgKFNIUih4LCBuKSB8ICgoeCkgPDwgKDMyIC0gKG4pKSkpCi0KLSNkZWZpbmUgUzAoeCkgKFJPVFIoeCwgNykgXiBST1RSKHgsIDE4KSBeICBTSFIoeCwgMykpCi0jZGVmaW5lIFMxKHgpIChST1RSKHgsIDE3KSBeIFJPVFIoeCwgMTkpIF4gIFNIUih4LCAxMCkpCi0KLSNkZWZpbmUgUzIoeCkgKFJPVFIoeCwgMikgXiBST1RSKHgsIDEzKSBeIFJPVFIoeCwgMjIpKQotI2RlZmluZSBTMyh4KSAoUk9UUih4LCA2KSBeIFJPVFIoeCwgMTEpIF4gUk9UUih4LCAyNSkpCi0KLSNkZWZpbmUgRjAoeCwgeSwgeikgKCgoeCkgJiAoeSkpIHwgKCh6KSAmICgoeCkgfCAoeSkpKSkKLSNkZWZpbmUgRjEoeCwgeSwgeikgKCh6KSBeICgoeCkgJiAoKHkpIF4gKHopKSkpCi0KLSNkZWZpbmUgUih0KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgICggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgICAgIGxvY2FsLldbdF0gPSBTMShsb2NhbC5XWyh0KSAtICAyXSkgKyBsb2NhbC5XWyh0KSAtICA3XSArICAgIFwKLSAgICAgICAgICAgICAgICAgICAgIFMwKGxvY2FsLldbKHQpIC0gMTVdKSArIGxvY2FsLldbKHQpIC0gMTZdICAgICAgXAotICAgICkKLQotI2RlZmluZSBQKGEsIGIsIGMsIGQsIGUsIGYsIGcsIGgsIHgsIEspICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgZG8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgICAgICBsb2NhbC50ZW1wMSA9IChoKSArIFMzKGUpICsgRjEoKGUpLCAoZiksIChnKSkgKyAoSykgKyAoeCk7ICAgIFwKLSAgICAgICAgbG9jYWwudGVtcDIgPSBTMihhKSArIEYwKChhKSwgKGIpLCAoYykpOyAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgICAgIChkKSArPSBsb2NhbC50ZW1wMTsgKGgpID0gbG9jYWwudGVtcDEgKyBsb2NhbC50ZW1wMjsgICAgICAgIFwKLSAgICB9IHdoaWxlICgwKQotCi0jaWYgZGVmaW5lZChNQkVEVExTX1NIQTI1Nl9VU0VfQVJNVjhfQV9DUllQVE9fSUZfUFJFU0VOVCkKLS8qCi0gKiBUaGlzIGZ1bmN0aW9uIGlzIGZvciBpbnRlcm5hbCB1c2Ugb25seSBpZiB3ZSBhcmUgYnVpbGRpbmcgYm90aCBDIGFuZCBBcm12OAotICogdmVyc2lvbnMsIG90aGVyd2lzZSBpdCBpcyByZW5hbWVkIHRvIGJlIHRoZSBwdWJsaWMgbWJlZHRsc19pbnRlcm5hbF9zaGEyNTZfcHJvY2VzcygpCi0gKi8KLXN0YXRpYwotI2VuZGlmCi1pbnQgbWJlZHRsc19pbnRlcm5hbF9zaGEyNTZfcHJvY2Vzc19jKG1iZWR0bHNfc2hhMjU2X2NvbnRleHQgKmN0eCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdW5zaWduZWQgY2hhciBkYXRhW1NIQTI1Nl9CTE9DS19TSVpFXSkKLXsKLSAgICBzdHJ1Y3QgewotICAgICAgICB1aW50MzJfdCB0ZW1wMSwgdGVtcDIsIFdbNjRdOwotICAgICAgICB1aW50MzJfdCBBWzhdOwotICAgIH0gbG9jYWw7Ci0KLSAgICB1bnNpZ25lZCBpbnQgaTsKLQotICAgIGZvciAoaSA9IDA7IGkgPCA4OyBpKyspIHsKLSAgICAgICAgbG9jYWwuQVtpXSA9IGN0eC0+c3RhdGVbaV07Ci0gICAgfQotCi0jaWYgZGVmaW5lZChNQkVEVExTX1NIQTI1Nl9TTUFMTEVSKQotICAgIGZvciAoaSA9IDA7IGkgPCA2NDsgaSsrKSB7Ci0gICAgICAgIGlmIChpIDwgMTYpIHsKLSAgICAgICAgICAgIGxvY2FsLldbaV0gPSBNQkVEVExTX0dFVF9VSU5UMzJfQkUoZGF0YSwgNCAqIGkpOwotICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgUihpKTsKLSAgICAgICAgfQotCi0gICAgICAgIFAobG9jYWwuQVswXSwgbG9jYWwuQVsxXSwgbG9jYWwuQVsyXSwgbG9jYWwuQVszXSwgbG9jYWwuQVs0XSwKLSAgICAgICAgICBsb2NhbC5BWzVdLCBsb2NhbC5BWzZdLCBsb2NhbC5BWzddLCBsb2NhbC5XW2ldLCBLW2ldKTsKLQotICAgICAgICBsb2NhbC50ZW1wMSA9IGxvY2FsLkFbN107IGxvY2FsLkFbN10gPSBsb2NhbC5BWzZdOwotICAgICAgICBsb2NhbC5BWzZdID0gbG9jYWwuQVs1XTsgbG9jYWwuQVs1XSA9IGxvY2FsLkFbNF07Ci0gICAgICAgIGxvY2FsLkFbNF0gPSBsb2NhbC5BWzNdOyBsb2NhbC5BWzNdID0gbG9jYWwuQVsyXTsKLSAgICAgICAgbG9jYWwuQVsyXSA9IGxvY2FsLkFbMV07IGxvY2FsLkFbMV0gPSBsb2NhbC5BWzBdOwotICAgICAgICBsb2NhbC5BWzBdID0gbG9jYWwudGVtcDE7Ci0gICAgfQotI2Vsc2UgLyogTUJFRFRMU19TSEEyNTZfU01BTExFUiAqLwotICAgIGZvciAoaSA9IDA7IGkgPCAxNjsgaSsrKSB7Ci0gICAgICAgIGxvY2FsLldbaV0gPSBNQkVEVExTX0dFVF9VSU5UMzJfQkUoZGF0YSwgNCAqIGkpOwotICAgIH0KLQotICAgIGZvciAoaSA9IDA7IGkgPCAxNjsgaSArPSA4KSB7Ci0gICAgICAgIFAobG9jYWwuQVswXSwgbG9jYWwuQVsxXSwgbG9jYWwuQVsyXSwgbG9jYWwuQVszXSwgbG9jYWwuQVs0XSwKLSAgICAgICAgICBsb2NhbC5BWzVdLCBsb2NhbC5BWzZdLCBsb2NhbC5BWzddLCBsb2NhbC5XW2krMF0sIEtbaSswXSk7Ci0gICAgICAgIFAobG9jYWwuQVs3XSwgbG9jYWwuQVswXSwgbG9jYWwuQVsxXSwgbG9jYWwuQVsyXSwgbG9jYWwuQVszXSwKLSAgICAgICAgICBsb2NhbC5BWzRdLCBsb2NhbC5BWzVdLCBsb2NhbC5BWzZdLCBsb2NhbC5XW2krMV0sIEtbaSsxXSk7Ci0gICAgICAgIFAobG9jYWwuQVs2XSwgbG9jYWwuQVs3XSwgbG9jYWwuQVswXSwgbG9jYWwuQVsxXSwgbG9jYWwuQVsyXSwKLSAgICAgICAgICBsb2NhbC5BWzNdLCBsb2NhbC5BWzRdLCBsb2NhbC5BWzVdLCBsb2NhbC5XW2krMl0sIEtbaSsyXSk7Ci0gICAgICAgIFAobG9jYWwuQVs1XSwgbG9jYWwuQVs2XSwgbG9jYWwuQVs3XSwgbG9jYWwuQVswXSwgbG9jYWwuQVsxXSwKLSAgICAgICAgICBsb2NhbC5BWzJdLCBsb2NhbC5BWzNdLCBsb2NhbC5BWzRdLCBsb2NhbC5XW2krM10sIEtbaSszXSk7Ci0gICAgICAgIFAobG9jYWwuQVs0XSwgbG9jYWwuQVs1XSwgbG9jYWwuQVs2XSwgbG9jYWwuQVs3XSwgbG9jYWwuQVswXSwKLSAgICAgICAgICBsb2NhbC5BWzFdLCBsb2NhbC5BWzJdLCBsb2NhbC5BWzNdLCBsb2NhbC5XW2krNF0sIEtbaSs0XSk7Ci0gICAgICAgIFAobG9jYWwuQVszXSwgbG9jYWwuQVs0XSwgbG9jYWwuQVs1XSwgbG9jYWwuQVs2XSwgbG9jYWwuQVs3XSwKLSAgICAgICAgICBsb2NhbC5BWzBdLCBsb2NhbC5BWzFdLCBsb2NhbC5BWzJdLCBsb2NhbC5XW2krNV0sIEtbaSs1XSk7Ci0gICAgICAgIFAobG9jYWwuQVsyXSwgbG9jYWwuQVszXSwgbG9jYWwuQVs0XSwgbG9jYWwuQVs1XSwgbG9jYWwuQVs2XSwKLSAgICAgICAgICBsb2NhbC5BWzddLCBsb2NhbC5BWzBdLCBsb2NhbC5BWzFdLCBsb2NhbC5XW2krNl0sIEtbaSs2XSk7Ci0gICAgICAgIFAobG9jYWwuQVsxXSwgbG9jYWwuQVsyXSwgbG9jYWwuQVszXSwgbG9jYWwuQVs0XSwgbG9jYWwuQVs1XSwKLSAgICAgICAgICBsb2NhbC5BWzZdLCBsb2NhbC5BWzddLCBsb2NhbC5BWzBdLCBsb2NhbC5XW2krN10sIEtbaSs3XSk7Ci0gICAgfQotCi0gICAgZm9yIChpID0gMTY7IGkgPCA2NDsgaSArPSA4KSB7Ci0gICAgICAgIFAobG9jYWwuQVswXSwgbG9jYWwuQVsxXSwgbG9jYWwuQVsyXSwgbG9jYWwuQVszXSwgbG9jYWwuQVs0XSwKLSAgICAgICAgICBsb2NhbC5BWzVdLCBsb2NhbC5BWzZdLCBsb2NhbC5BWzddLCBSKGkrMCksIEtbaSswXSk7Ci0gICAgICAgIFAobG9jYWwuQVs3XSwgbG9jYWwuQVswXSwgbG9jYWwuQVsxXSwgbG9jYWwuQVsyXSwgbG9jYWwuQVszXSwKLSAgICAgICAgICBsb2NhbC5BWzRdLCBsb2NhbC5BWzVdLCBsb2NhbC5BWzZdLCBSKGkrMSksIEtbaSsxXSk7Ci0gICAgICAgIFAobG9jYWwuQVs2XSwgbG9jYWwuQVs3XSwgbG9jYWwuQVswXSwgbG9jYWwuQVsxXSwgbG9jYWwuQVsyXSwKLSAgICAgICAgICBsb2NhbC5BWzNdLCBsb2NhbC5BWzRdLCBsb2NhbC5BWzVdLCBSKGkrMiksIEtbaSsyXSk7Ci0gICAgICAgIFAobG9jYWwuQVs1XSwgbG9jYWwuQVs2XSwgbG9jYWwuQVs3XSwgbG9jYWwuQVswXSwgbG9jYWwuQVsxXSwKLSAgICAgICAgICBsb2NhbC5BWzJdLCBsb2NhbC5BWzNdLCBsb2NhbC5BWzRdLCBSKGkrMyksIEtbaSszXSk7Ci0gICAgICAgIFAobG9jYWwuQVs0XSwgbG9jYWwuQVs1XSwgbG9jYWwuQVs2XSwgbG9jYWwuQVs3XSwgbG9jYWwuQVswXSwKLSAgICAgICAgICBsb2NhbC5BWzFdLCBsb2NhbC5BWzJdLCBsb2NhbC5BWzNdLCBSKGkrNCksIEtbaSs0XSk7Ci0gICAgICAgIFAobG9jYWwuQVszXSwgbG9jYWwuQVs0XSwgbG9jYWwuQVs1XSwgbG9jYWwuQVs2XSwgbG9jYWwuQVs3XSwKLSAgICAgICAgICBsb2NhbC5BWzBdLCBsb2NhbC5BWzFdLCBsb2NhbC5BWzJdLCBSKGkrNSksIEtbaSs1XSk7Ci0gICAgICAgIFAobG9jYWwuQVsyXSwgbG9jYWwuQVszXSwgbG9jYWwuQVs0XSwgbG9jYWwuQVs1XSwgbG9jYWwuQVs2XSwKLSAgICAgICAgICBsb2NhbC5BWzddLCBsb2NhbC5BWzBdLCBsb2NhbC5BWzFdLCBSKGkrNiksIEtbaSs2XSk7Ci0gICAgICAgIFAobG9jYWwuQVsxXSwgbG9jYWwuQVsyXSwgbG9jYWwuQVszXSwgbG9jYWwuQVs0XSwgbG9jYWwuQVs1XSwKLSAgICAgICAgICBsb2NhbC5BWzZdLCBsb2NhbC5BWzddLCBsb2NhbC5BWzBdLCBSKGkrNyksIEtbaSs3XSk7Ci0gICAgfQotI2VuZGlmIC8qIE1CRURUTFNfU0hBMjU2X1NNQUxMRVIgKi8KLQotICAgIGZvciAoaSA9IDA7IGkgPCA4OyBpKyspIHsKLSAgICAgICAgY3R4LT5zdGF0ZVtpXSArPSBsb2NhbC5BW2ldOwotICAgIH0KLQotICAgIC8qIFplcm9pc2UgYnVmZmVycyBhbmQgdmFyaWFibGVzIHRvIGNsZWFyIHNlbnNpdGl2ZSBkYXRhIGZyb20gbWVtb3J5LiAqLwotICAgIG1iZWR0bHNfcGxhdGZvcm1femVyb2l6ZSgmbG9jYWwsIHNpemVvZihsb2NhbCkpOwotCi0gICAgcmV0dXJuIDA7Ci19Ci0KLSNlbmRpZiAvKiAhTUJFRFRMU19TSEEyNTZfUFJPQ0VTU19BTFQgJiYgIU1CRURUTFNfU0hBMjU2X1VTRV9BUk1WOF9BX0NSWVBUT19PTkxZICovCi0KLQotI2lmICFkZWZpbmVkKE1CRURUTFNfU0hBMjU2X1VTRV9BUk1WOF9BX0NSWVBUT19PTkxZKQotCi1zdGF0aWMgc2l6ZV90IG1iZWR0bHNfaW50ZXJuYWxfc2hhMjU2X3Byb2Nlc3NfbWFueV9jKAotICAgIG1iZWR0bHNfc2hhMjU2X2NvbnRleHQgKmN0eCwgY29uc3QgdWludDhfdCAqZGF0YSwgc2l6ZV90IGxlbikKLXsKLSAgICBzaXplX3QgcHJvY2Vzc2VkID0gMDsKLQotICAgIHdoaWxlIChsZW4gPj0gU0hBMjU2X0JMT0NLX1NJWkUpIHsKLSAgICAgICAgaWYgKG1iZWR0bHNfaW50ZXJuYWxfc2hhMjU2X3Byb2Nlc3NfYyhjdHgsIGRhdGEpICE9IDApIHsKLSAgICAgICAgICAgIHJldHVybiAwOwotICAgICAgICB9Ci0KLSAgICAgICAgZGF0YSArPSBTSEEyNTZfQkxPQ0tfU0laRTsKLSAgICAgICAgbGVuICAtPSBTSEEyNTZfQkxPQ0tfU0laRTsKLQotICAgICAgICBwcm9jZXNzZWQgKz0gU0hBMjU2X0JMT0NLX1NJWkU7Ci0gICAgfQotCi0gICAgcmV0dXJuIHByb2Nlc3NlZDsKLX0KLQotI2VuZGlmIC8qICFNQkVEVExTX1NIQTI1Nl9VU0VfQVJNVjhfQV9DUllQVE9fT05MWSAqLwotCi0KLSNpZiBkZWZpbmVkKE1CRURUTFNfU0hBMjU2X1VTRV9BUk1WOF9BX0NSWVBUT19JRl9QUkVTRU5UKQotCi1zdGF0aWMgaW50IG1iZWR0bHNfYTY0X2NyeXB0b19zaGEyNTZfaGFzX3N1cHBvcnQodm9pZCkKLXsKLSAgICBzdGF0aWMgaW50IGRvbmUgPSAwOwotICAgIHN0YXRpYyBpbnQgc3VwcG9ydGVkID0gMDsKLQotICAgIGlmICghZG9uZSkgewotICAgICAgICBzdXBwb3J0ZWQgPSBtYmVkdGxzX2E2NF9jcnlwdG9fc2hhMjU2X2RldGVybWluZV9zdXBwb3J0KCk7Ci0gICAgICAgIGRvbmUgPSAxOwotICAgIH0KLQotICAgIHJldHVybiBzdXBwb3J0ZWQ7Ci19Ci0KLXN0YXRpYyBzaXplX3QgbWJlZHRsc19pbnRlcm5hbF9zaGEyNTZfcHJvY2Vzc19tYW55KG1iZWR0bHNfc2hhMjU2X2NvbnRleHQgKmN0eCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVpbnQ4X3QgKm1zZywgc2l6ZV90IGxlbikKLXsKLSAgICBpZiAobWJlZHRsc19hNjRfY3J5cHRvX3NoYTI1Nl9oYXNfc3VwcG9ydCgpKSB7Ci0gICAgICAgIHJldHVybiBtYmVkdGxzX2ludGVybmFsX3NoYTI1Nl9wcm9jZXNzX21hbnlfYTY0X2NyeXB0byhjdHgsIG1zZywgbGVuKTsKLSAgICB9IGVsc2UgewotICAgICAgICByZXR1cm4gbWJlZHRsc19pbnRlcm5hbF9zaGEyNTZfcHJvY2Vzc19tYW55X2MoY3R4LCBtc2csIGxlbik7Ci0gICAgfQotfQotCi1pbnQgbWJlZHRsc19pbnRlcm5hbF9zaGEyNTZfcHJvY2VzcyhtYmVkdGxzX3NoYTI1Nl9jb250ZXh0ICpjdHgsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1bnNpZ25lZCBjaGFyIGRhdGFbU0hBMjU2X0JMT0NLX1NJWkVdKQotewotICAgIGlmIChtYmVkdGxzX2E2NF9jcnlwdG9fc2hhMjU2X2hhc19zdXBwb3J0KCkpIHsKLSAgICAgICAgcmV0dXJuIG1iZWR0bHNfaW50ZXJuYWxfc2hhMjU2X3Byb2Nlc3NfYTY0X2NyeXB0byhjdHgsIGRhdGEpOwotICAgIH0gZWxzZSB7Ci0gICAgICAgIHJldHVybiBtYmVkdGxzX2ludGVybmFsX3NoYTI1Nl9wcm9jZXNzX2MoY3R4LCBkYXRhKTsKLSAgICB9Ci19Ci0KLSNlbmRpZiAvKiBNQkVEVExTX1NIQTI1Nl9VU0VfQVJNVjhfQV9DUllQVE9fSUZfUFJFU0VOVCAqLwotCi0KLS8qCi0gKiBTSEEtMjU2IHByb2Nlc3MgYnVmZmVyCi0gKi8KLWludCBtYmVkdGxzX3NoYTI1Nl91cGRhdGUobWJlZHRsc19zaGEyNTZfY29udGV4dCAqY3R4LAotICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1bnNpZ25lZCBjaGFyICppbnB1dCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IGlsZW4pCi17Ci0gICAgaW50IHJldCA9IE1CRURUTFNfRVJSX0VSUk9SX0NPUlJVUFRJT05fREVURUNURUQ7Ci0gICAgc2l6ZV90IGZpbGw7Ci0gICAgdWludDMyX3QgbGVmdDsKLQotICAgIGlmIChpbGVuID09IDApIHsKLSAgICAgICAgcmV0dXJuIDA7Ci0gICAgfQotCi0gICAgbGVmdCA9IGN0eC0+dG90YWxbMF0gJiAweDNGOwotICAgIGZpbGwgPSBTSEEyNTZfQkxPQ0tfU0laRSAtIGxlZnQ7Ci0KLSAgICBjdHgtPnRvdGFsWzBdICs9ICh1aW50MzJfdCkgaWxlbjsKLSAgICBjdHgtPnRvdGFsWzBdICY9IDB4RkZGRkZGRkY7Ci0KLSAgICBpZiAoY3R4LT50b3RhbFswXSA8ICh1aW50MzJfdCkgaWxlbikgewotICAgICAgICBjdHgtPnRvdGFsWzFdKys7Ci0gICAgfQotCi0gICAgaWYgKGxlZnQgJiYgaWxlbiA+PSBmaWxsKSB7Ci0gICAgICAgIG1lbWNweSgodm9pZCAqKSAoY3R4LT5idWZmZXIgKyBsZWZ0KSwgaW5wdXQsIGZpbGwpOwotCi0gICAgICAgIGlmICgocmV0ID0gbWJlZHRsc19pbnRlcm5hbF9zaGEyNTZfcHJvY2VzcyhjdHgsIGN0eC0+YnVmZmVyKSkgIT0gMCkgewotICAgICAgICAgICAgcmV0dXJuIHJldDsKLSAgICAgICAgfQotCi0gICAgICAgIGlucHV0ICs9IGZpbGw7Ci0gICAgICAgIGlsZW4gIC09IGZpbGw7Ci0gICAgICAgIGxlZnQgPSAwOwotICAgIH0KLQotICAgIHdoaWxlIChpbGVuID49IFNIQTI1Nl9CTE9DS19TSVpFKSB7Ci0gICAgICAgIHNpemVfdCBwcm9jZXNzZWQgPQotICAgICAgICAgICAgbWJlZHRsc19pbnRlcm5hbF9zaGEyNTZfcHJvY2Vzc19tYW55KGN0eCwgaW5wdXQsIGlsZW4pOwotICAgICAgICBpZiAocHJvY2Vzc2VkIDwgU0hBMjU2X0JMT0NLX1NJWkUpIHsKLSAgICAgICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9FUlJPUl9HRU5FUklDX0VSUk9SOwotICAgICAgICB9Ci0KLSAgICAgICAgaW5wdXQgKz0gcHJvY2Vzc2VkOwotICAgICAgICBpbGVuICAtPSBwcm9jZXNzZWQ7Ci0gICAgfQotCi0gICAgaWYgKGlsZW4gPiAwKSB7Ci0gICAgICAgIG1lbWNweSgodm9pZCAqKSAoY3R4LT5idWZmZXIgKyBsZWZ0KSwgaW5wdXQsIGlsZW4pOwotICAgIH0KLQotICAgIHJldHVybiAwOwotfQotCi0vKgotICogU0hBLTI1NiBmaW5hbCBkaWdlc3QKLSAqLwotaW50IG1iZWR0bHNfc2hhMjU2X2ZpbmlzaChtYmVkdGxzX3NoYTI1Nl9jb250ZXh0ICpjdHgsCi0gICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGNoYXIgKm91dHB1dCkKLXsKLSAgICBpbnQgcmV0ID0gTUJFRFRMU19FUlJfRVJST1JfQ09SUlVQVElPTl9ERVRFQ1RFRDsKLSAgICB1aW50MzJfdCB1c2VkOwotICAgIHVpbnQzMl90IGhpZ2gsIGxvdzsKLSAgICBpbnQgdHJ1bmNhdGVkID0gMDsKLQotICAgIC8qCi0gICAgICogQWRkIHBhZGRpbmc6IDB4ODAgdGhlbiAweDAwIHVudGlsIDggYnl0ZXMgcmVtYWluIGZvciB0aGUgbGVuZ3RoCi0gICAgICovCi0gICAgdXNlZCA9IGN0eC0+dG90YWxbMF0gJiAweDNGOwotCi0gICAgY3R4LT5idWZmZXJbdXNlZCsrXSA9IDB4ODA7Ci0KLSAgICBpZiAodXNlZCA8PSA1NikgewotICAgICAgICAvKiBFbm91Z2ggcm9vbSBmb3IgcGFkZGluZyArIGxlbmd0aCBpbiBjdXJyZW50IGJsb2NrICovCi0gICAgICAgIG1lbXNldChjdHgtPmJ1ZmZlciArIHVzZWQsIDAsIDU2IC0gdXNlZCk7Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgLyogV2UnbGwgbmVlZCBhbiBleHRyYSBibG9jayAqLwotICAgICAgICBtZW1zZXQoY3R4LT5idWZmZXIgKyB1c2VkLCAwLCBTSEEyNTZfQkxPQ0tfU0laRSAtIHVzZWQpOwotCi0gICAgICAgIGlmICgocmV0ID0gbWJlZHRsc19pbnRlcm5hbF9zaGEyNTZfcHJvY2VzcyhjdHgsIGN0eC0+YnVmZmVyKSkgIT0gMCkgewotICAgICAgICAgICAgZ290byBleGl0OwotICAgICAgICB9Ci0KLSAgICAgICAgbWVtc2V0KGN0eC0+YnVmZmVyLCAwLCA1Nik7Ci0gICAgfQotCi0gICAgLyoKLSAgICAgKiBBZGQgbWVzc2FnZSBsZW5ndGgKLSAgICAgKi8KLSAgICBoaWdoID0gKGN0eC0+dG90YWxbMF0gPj4gMjkpCi0gICAgICAgICAgIHwgKGN0eC0+dG90YWxbMV0gPDwgIDMpOwotICAgIGxvdyAgPSAoY3R4LT50b3RhbFswXSA8PCAgMyk7Ci0KLSAgICBNQkVEVExTX1BVVF9VSU5UMzJfQkUoaGlnaCwgY3R4LT5idWZmZXIsIDU2KTsKLSAgICBNQkVEVExTX1BVVF9VSU5UMzJfQkUobG93LCAgY3R4LT5idWZmZXIsIDYwKTsKLQotICAgIGlmICgocmV0ID0gbWJlZHRsc19pbnRlcm5hbF9zaGEyNTZfcHJvY2VzcyhjdHgsIGN0eC0+YnVmZmVyKSkgIT0gMCkgewotICAgICAgICBnb3RvIGV4aXQ7Ci0gICAgfQotCi0gICAgLyoKLSAgICAgKiBPdXRwdXQgZmluYWwgc3RhdGUKLSAgICAgKi8KLSAgICBNQkVEVExTX1BVVF9VSU5UMzJfQkUoY3R4LT5zdGF0ZVswXSwgb3V0cHV0LCAgMCk7Ci0gICAgTUJFRFRMU19QVVRfVUlOVDMyX0JFKGN0eC0+c3RhdGVbMV0sIG91dHB1dCwgIDQpOwotICAgIE1CRURUTFNfUFVUX1VJTlQzMl9CRShjdHgtPnN0YXRlWzJdLCBvdXRwdXQsICA4KTsKLSAgICBNQkVEVExTX1BVVF9VSU5UMzJfQkUoY3R4LT5zdGF0ZVszXSwgb3V0cHV0LCAxMik7Ci0gICAgTUJFRFRMU19QVVRfVUlOVDMyX0JFKGN0eC0+c3RhdGVbNF0sIG91dHB1dCwgMTYpOwotICAgIE1CRURUTFNfUFVUX1VJTlQzMl9CRShjdHgtPnN0YXRlWzVdLCBvdXRwdXQsIDIwKTsKLSAgICBNQkVEVExTX1BVVF9VSU5UMzJfQkUoY3R4LT5zdGF0ZVs2XSwgb3V0cHV0LCAyNCk7Ci0KLSNpZiBkZWZpbmVkKE1CRURUTFNfU0hBMjI0X0MpCi0gICAgdHJ1bmNhdGVkID0gY3R4LT5pczIyNDsKLSNlbmRpZgotICAgIGlmICghdHJ1bmNhdGVkKSB7Ci0gICAgICAgIE1CRURUTFNfUFVUX1VJTlQzMl9CRShjdHgtPnN0YXRlWzddLCBvdXRwdXQsIDI4KTsKLSAgICB9Ci0KLSAgICByZXQgPSAwOwotCi1leGl0OgotICAgIG1iZWR0bHNfc2hhMjU2X2ZyZWUoY3R4KTsKLSAgICByZXR1cm4gcmV0OwotfQotCi0jZW5kaWYgLyogIU1CRURUTFNfU0hBMjU2X0FMVCAqLwotCi0vKgotICogb3V0cHV0ID0gU0hBLTI1NiggaW5wdXQgYnVmZmVyICkKLSAqLwotaW50IG1iZWR0bHNfc2hhMjU2KGNvbnN0IHVuc2lnbmVkIGNoYXIgKmlucHV0LAotICAgICAgICAgICAgICAgICAgIHNpemVfdCBpbGVuLAotICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGNoYXIgKm91dHB1dCwKLSAgICAgICAgICAgICAgICAgICBpbnQgaXMyMjQpCi17Ci0gICAgaW50IHJldCA9IE1CRURUTFNfRVJSX0VSUk9SX0NPUlJVUFRJT05fREVURUNURUQ7Ci0gICAgbWJlZHRsc19zaGEyNTZfY29udGV4dCBjdHg7Ci0KLSNpZiBkZWZpbmVkKE1CRURUTFNfU0hBMjI0X0MpICYmIGRlZmluZWQoTUJFRFRMU19TSEEyNTZfQykKLSAgICBpZiAoaXMyMjQgIT0gMCAmJiBpczIyNCAhPSAxKSB7Ci0gICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9TSEEyNTZfQkFEX0lOUFVUX0RBVEE7Ci0gICAgfQotI2VsaWYgZGVmaW5lZChNQkVEVExTX1NIQTI1Nl9DKQotICAgIGlmIChpczIyNCAhPSAwKSB7Ci0gICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9TSEEyNTZfQkFEX0lOUFVUX0RBVEE7Ci0gICAgfQotI2Vsc2UgLyogZGVmaW5lZCBNQkVEVExTX1NIQTIyNF9DIG9ubHkgKi8KLSAgICBpZiAoaXMyMjQgPT0gMCkgewotICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfU0hBMjU2X0JBRF9JTlBVVF9EQVRBOwotICAgIH0KLSNlbmRpZgotCi0gICAgbWJlZHRsc19zaGEyNTZfaW5pdCgmY3R4KTsKLQotICAgIGlmICgocmV0ID0gbWJlZHRsc19zaGEyNTZfc3RhcnRzKCZjdHgsIGlzMjI0KSkgIT0gMCkgewotICAgICAgICBnb3RvIGV4aXQ7Ci0gICAgfQotCi0gICAgaWYgKChyZXQgPSBtYmVkdGxzX3NoYTI1Nl91cGRhdGUoJmN0eCwgaW5wdXQsIGlsZW4pKSAhPSAwKSB7Ci0gICAgICAgIGdvdG8gZXhpdDsKLSAgICB9Ci0KLSAgICBpZiAoKHJldCA9IG1iZWR0bHNfc2hhMjU2X2ZpbmlzaCgmY3R4LCBvdXRwdXQpKSAhPSAwKSB7Ci0gICAgICAgIGdvdG8gZXhpdDsKLSAgICB9Ci0KLWV4aXQ6Ci0gICAgbWJlZHRsc19zaGEyNTZfZnJlZSgmY3R4KTsKLQotICAgIHJldHVybiByZXQ7Ci19Ci0KLSNpZiBkZWZpbmVkKE1CRURUTFNfU0VMRl9URVNUKQotLyoKLSAqIEZJUFMtMTgwLTIgdGVzdCB2ZWN0b3JzCi0gKi8KLXN0YXRpYyBjb25zdCB1bnNpZ25lZCBjaGFyIHNoYV90ZXN0X2J1ZlszXVs1N10gPQotewotICAgIHsgImFiYyIgfSwKLSAgICB7ICJhYmNkYmNkZWNkZWZkZWZnZWZnaGZnaGlnaGlqaGlqa2lqa2xqa2xta2xtbmxtbm9tbm9wbm9wcSIgfSwKLSAgICB7ICIiIH0KLX07Ci0KLXN0YXRpYyBjb25zdCBzaXplX3Qgc2hhX3Rlc3RfYnVmbGVuWzNdID0KLXsKLSAgICAzLCA1NiwgMTAwMAotfTsKLQotdHlwZWRlZiBjb25zdCB1bnNpZ25lZCBjaGFyIChzaGFfdGVzdF9zdW1fdClbMzJdOwotCi0vKgotICogU0hBLTIyNCB0ZXN0IHZlY3RvcnMKLSAqLwotI2lmIGRlZmluZWQoTUJFRFRMU19TSEEyMjRfQykKLXN0YXRpYyBzaGFfdGVzdF9zdW1fdCBzaGEyMjRfdGVzdF9zdW1bXSA9Ci17Ci0gICAgeyAweDIzLCAweDA5LCAweDdELCAweDIyLCAweDM0LCAweDA1LCAweEQ4LCAweDIyLAotICAgICAgMHg4NiwgMHg0MiwgMHhBNCwgMHg3NywgMHhCRCwgMHhBMiwgMHg1NSwgMHhCMywKLSAgICAgIDB4MkEsIDB4QUQsIDB4QkMsIDB4RTQsIDB4QkQsIDB4QTAsIDB4QjMsIDB4RjcsCi0gICAgICAweEUzLCAweDZDLCAweDlELCAweEE3IH0sCi0gICAgeyAweDc1LCAweDM4LCAweDhCLCAweDE2LCAweDUxLCAweDI3LCAweDc2LCAweENDLAotICAgICAgMHg1RCwgMHhCQSwgMHg1RCwgMHhBMSwgMHhGRCwgMHg4OSwgMHgwMSwgMHg1MCwKLSAgICAgIDB4QjAsIDB4QzYsIDB4NDUsIDB4NUMsIDB4QjQsIDB4RjUsIDB4OEIsIDB4MTksCi0gICAgICAweDUyLCAweDUyLCAweDI1LCAweDI1IH0sCi0gICAgeyAweDIwLCAweDc5LCAweDQ2LCAweDU1LCAweDk4LCAweDBDLCAweDkxLCAweEQ4LAotICAgICAgMHhCQiwgMHhCNCwgMHhDMSwgMHhFQSwgMHg5NywgMHg2MSwgMHg4QSwgMHg0QiwKLSAgICAgIDB4RjAsIDB4M0YsIDB4NDIsIDB4NTgsIDB4MTksIDB4NDgsIDB4QjIsIDB4RUUsCi0gICAgICAweDRFLCAweEU3LCAweEFELCAweDY3IH0KLX07Ci0jZW5kaWYKLQotLyoKLSAqIFNIQS0yNTYgdGVzdCB2ZWN0b3JzCi0gKi8KLSNpZiBkZWZpbmVkKE1CRURUTFNfU0hBMjU2X0MpCi1zdGF0aWMgc2hhX3Rlc3Rfc3VtX3Qgc2hhMjU2X3Rlc3Rfc3VtW10gPQotewotICAgIHsgMHhCQSwgMHg3OCwgMHgxNiwgMHhCRiwgMHg4RiwgMHgwMSwgMHhDRiwgMHhFQSwKLSAgICAgIDB4NDEsIDB4NDEsIDB4NDAsIDB4REUsIDB4NUQsIDB4QUUsIDB4MjIsIDB4MjMsCi0gICAgICAweEIwLCAweDAzLCAweDYxLCAweEEzLCAweDk2LCAweDE3LCAweDdBLCAweDlDLAotICAgICAgMHhCNCwgMHgxMCwgMHhGRiwgMHg2MSwgMHhGMiwgMHgwMCwgMHgxNSwgMHhBRCB9LAotICAgIHsgMHgyNCwgMHg4RCwgMHg2QSwgMHg2MSwgMHhEMiwgMHgwNiwgMHgzOCwgMHhCOCwKLSAgICAgIDB4RTUsIDB4QzAsIDB4MjYsIDB4OTMsIDB4MEMsIDB4M0UsIDB4NjAsIDB4MzksCi0gICAgICAweEEzLCAweDNDLCAweEU0LCAweDU5LCAweDY0LCAweEZGLCAweDIxLCAweDY3LAotICAgICAgMHhGNiwgMHhFQywgMHhFRCwgMHhENCwgMHgxOSwgMHhEQiwgMHgwNiwgMHhDMSB9LAotICAgIHsgMHhDRCwgMHhDNywgMHg2RSwgMHg1QywgMHg5OSwgMHgxNCwgMHhGQiwgMHg5MiwKLSAgICAgIDB4ODEsIDB4QTEsIDB4QzcsIDB4RTIsIDB4ODQsIDB4RDcsIDB4M0UsIDB4NjcsCi0gICAgICAweEYxLCAweDgwLCAweDlBLCAweDQ4LCAweEE0LCAweDk3LCAweDIwLCAweDBFLAotICAgICAgMHgwNCwgMHg2RCwgMHgzOSwgMHhDQywgMHhDNywgMHgxMSwgMHgyQywgMHhEMCB9Ci19OwotI2VuZGlmCi0KLS8qCi0gKiBDaGVja3VwIHJvdXRpbmUKLSAqLwotc3RhdGljIGludCBtYmVkdGxzX3NoYTI1Nl9jb21tb25fc2VsZl90ZXN0KGludCB2ZXJib3NlLCBpbnQgaXMyMjQpCi17Ci0gICAgaW50IGksIGJ1ZmxlbiwgcmV0ID0gMDsKLSAgICB1bnNpZ25lZCBjaGFyICpidWY7Ci0gICAgdW5zaWduZWQgY2hhciBzaGEyNTZzdW1bMzJdOwotICAgIG1iZWR0bHNfc2hhMjU2X2NvbnRleHQgY3R4OwotCi0jaWYgZGVmaW5lZChNQkVEVExTX1NIQTIyNF9DKSAmJiBkZWZpbmVkKE1CRURUTFNfU0hBMjU2X0MpCi0gICAgc2hhX3Rlc3Rfc3VtX3QgKnNoYV90ZXN0X3N1bSA9IChpczIyNCkgPyBzaGEyMjRfdGVzdF9zdW0gOiBzaGEyNTZfdGVzdF9zdW07Ci0jZWxpZiBkZWZpbmVkKE1CRURUTFNfU0hBMjU2X0MpCi0gICAgc2hhX3Rlc3Rfc3VtX3QgKnNoYV90ZXN0X3N1bSA9IHNoYTI1Nl90ZXN0X3N1bTsKLSNlbHNlCi0gICAgc2hhX3Rlc3Rfc3VtX3QgKnNoYV90ZXN0X3N1bSA9IHNoYTIyNF90ZXN0X3N1bTsKLSNlbmRpZgotCi0gICAgYnVmID0gbWJlZHRsc19jYWxsb2MoMTAyNCwgc2l6ZW9mKHVuc2lnbmVkIGNoYXIpKTsKLSAgICBpZiAoTlVMTCA9PSBidWYpIHsKLSAgICAgICAgaWYgKHZlcmJvc2UgIT0gMCkgewotICAgICAgICAgICAgbWJlZHRsc19wcmludGYoIkJ1ZmZlciBhbGxvY2F0aW9uIGZhaWxlZFxuIik7Ci0gICAgICAgIH0KLQotICAgICAgICByZXR1cm4gMTsKLSAgICB9Ci0KLSAgICBtYmVkdGxzX3NoYTI1Nl9pbml0KCZjdHgpOwotCi0gICAgZm9yIChpID0gMDsgaSA8IDM7IGkrKykgewotICAgICAgICBpZiAodmVyYm9zZSAhPSAwKSB7Ci0gICAgICAgICAgICBtYmVkdGxzX3ByaW50ZigiICBTSEEtJWQgdGVzdCAjJWQ6ICIsIDI1NiAtIGlzMjI0ICogMzIsIGkgKyAxKTsKLSAgICAgICAgfQotCi0gICAgICAgIGlmICgocmV0ID0gbWJlZHRsc19zaGEyNTZfc3RhcnRzKCZjdHgsIGlzMjI0KSkgIT0gMCkgewotICAgICAgICAgICAgZ290byBmYWlsOwotICAgICAgICB9Ci0KLSAgICAgICAgaWYgKGkgPT0gMikgewotICAgICAgICAgICAgbWVtc2V0KGJ1ZiwgJ2EnLCBidWZsZW4gPSAxMDAwKTsKLQotICAgICAgICAgICAgZm9yIChpbnQgaiA9IDA7IGogPCAxMDAwOyBqKyspIHsKLSAgICAgICAgICAgICAgICByZXQgPSBtYmVkdGxzX3NoYTI1Nl91cGRhdGUoJmN0eCwgYnVmLCBidWZsZW4pOwotICAgICAgICAgICAgICAgIGlmIChyZXQgIT0gMCkgewotICAgICAgICAgICAgICAgICAgICBnb3RvIGZhaWw7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotCi0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICByZXQgPSBtYmVkdGxzX3NoYTI1Nl91cGRhdGUoJmN0eCwgc2hhX3Rlc3RfYnVmW2ldLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNoYV90ZXN0X2J1ZmxlbltpXSk7Ci0gICAgICAgICAgICBpZiAocmV0ICE9IDApIHsKLSAgICAgICAgICAgICAgICBnb3RvIGZhaWw7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLQotICAgICAgICBpZiAoKHJldCA9IG1iZWR0bHNfc2hhMjU2X2ZpbmlzaCgmY3R4LCBzaGEyNTZzdW0pKSAhPSAwKSB7Ci0gICAgICAgICAgICBnb3RvIGZhaWw7Ci0gICAgICAgIH0KLQotCi0gICAgICAgIGlmIChtZW1jbXAoc2hhMjU2c3VtLCBzaGFfdGVzdF9zdW1baV0sIDMyIC0gaXMyMjQgKiA0KSAhPSAwKSB7Ci0gICAgICAgICAgICByZXQgPSAxOwotICAgICAgICAgICAgZ290byBmYWlsOwotICAgICAgICB9Ci0KLSAgICAgICAgaWYgKHZlcmJvc2UgIT0gMCkgewotICAgICAgICAgICAgbWJlZHRsc19wcmludGYoInBhc3NlZFxuIik7Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICBpZiAodmVyYm9zZSAhPSAwKSB7Ci0gICAgICAgIG1iZWR0bHNfcHJpbnRmKCJcbiIpOwotICAgIH0KLQotICAgIGdvdG8gZXhpdDsKLQotZmFpbDoKLSAgICBpZiAodmVyYm9zZSAhPSAwKSB7Ci0gICAgICAgIG1iZWR0bHNfcHJpbnRmKCJmYWlsZWRcbiIpOwotICAgIH0KLQotZXhpdDoKLSAgICBtYmVkdGxzX3NoYTI1Nl9mcmVlKCZjdHgpOwotICAgIG1iZWR0bHNfZnJlZShidWYpOwotCi0gICAgcmV0dXJuIHJldDsKLX0KLQotI2lmIGRlZmluZWQoTUJFRFRMU19TSEEyNTZfQykKLWludCBtYmVkdGxzX3NoYTI1Nl9zZWxmX3Rlc3QoaW50IHZlcmJvc2UpCi17Ci0gICAgcmV0dXJuIG1iZWR0bHNfc2hhMjU2X2NvbW1vbl9zZWxmX3Rlc3QodmVyYm9zZSwgMCk7Ci19Ci0jZW5kaWYgLyogTUJFRFRMU19TSEEyNTZfQyAqLwotCi0jaWYgZGVmaW5lZChNQkVEVExTX1NIQTIyNF9DKQotaW50IG1iZWR0bHNfc2hhMjI0X3NlbGZfdGVzdChpbnQgdmVyYm9zZSkKLXsKLSAgICByZXR1cm4gbWJlZHRsc19zaGEyNTZfY29tbW9uX3NlbGZfdGVzdCh2ZXJib3NlLCAxKTsKLX0KLSNlbmRpZiAvKiBNQkVEVExTX1NIQTIyNF9DICovCi0KLSNlbmRpZiAvKiBNQkVEVExTX1NFTEZfVEVTVCAqLwotCi0jZW5kaWYgLyogTUJFRFRMU19TSEEyNTZfQyB8fCBNQkVEVExTX1NIQTIyNF9DICovCmRpZmYgLS1naXQgYS9saWJyYXJ5L3NoYTUxMi5jIGIvbGlicmFyeS9zaGE1MTIuYwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNmRjZWE4ZC4uMDAwMDAwMAotLS0gYS9saWJyYXJ5L3NoYTUxMi5jCisrKyAvZGV2L251bGwKQEAgLTEsMTExMiArMCwwIEBACi0vKgotICogIEZJUFMtMTgwLTIgY29tcGxpYW50IFNIQS0zODQvNTEyIGltcGxlbWVudGF0aW9uCi0gKgotICogIENvcHlyaWdodCBUaGUgTWJlZCBUTFMgQ29udHJpYnV0b3JzCi0gKiAgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjAgT1IgR1BMLTIuMC1vci1sYXRlcgotICovCi0vKgotICogIFRoZSBTSEEtNTEyIFNlY3VyZSBIYXNoIFN0YW5kYXJkIHdhcyBwdWJsaXNoZWQgYnkgTklTVCBpbiAyMDAyLgotICoKLSAqICBodHRwOi8vY3NyYy5uaXN0Lmdvdi9wdWJsaWNhdGlvbnMvZmlwcy9maXBzMTgwLTIvZmlwczE4MC0yLnBkZgotICovCi0KLSNpZiBkZWZpbmVkKF9fYWFyY2g2NF9fKSAmJiAhZGVmaW5lZChfX0FSTV9GRUFUVVJFX1NIQTUxMikgJiYgXAotICAgIGRlZmluZWQoX19jbGFuZ19fKSAmJiBfX2NsYW5nX21ham9yX18gPj0gNwotLyogVE9ETzogUmUtY29uc2lkZXIgYWJvdmUgYWZ0ZXIgaHR0cHM6Ly9yZXZpZXdzLmxsdm0ub3JnL0QxMzEwNjQgbWVyZ2VkLgotICoKLSAqIFRoZSBpbnRyaW5zaWMgZGVjbGFyYXRpb24gYXJlIGd1YXJkZWQgYnkgcHJlZGVmaW5lZCBBQ0xFIG1hY3JvcyBpbiBjbGFuZzoKLSAqIHRoZXNlIGFyZSBub3JtYWxseSBvbmx5IGVuYWJsZWQgYnkgdGhlIC1tYXJjaCBvcHRpb24gb24gdGhlIGNvbW1hbmQgbGluZS4KLSAqIEJ5IGRlZmluaW5nIHRoZSBtYWNyb3Mgb3Vyc2VsdmVzIHdlIGdhaW4gYWNjZXNzIHRvIHRob3NlIGRlY2xhcmF0aW9ucyB3aXRob3V0Ci0gKiByZXF1aXJpbmcgLW1hcmNoIG9uIHRoZSBjb21tYW5kIGxpbmUuCi0gKgotICogYGFybV9uZW9uLmhgIGlzIGluY2x1ZGVkIGJ5IGNvbW1vbi5oLCBzbyB3ZSBwdXQgdGhlc2UgZGVmaW5lcwotICogYXQgdGhlIHRvcCBvZiB0aGlzIGZpbGUsIGJlZm9yZSBhbnkgaW5jbHVkZXMuCi0gKi8KLSNkZWZpbmUgX19BUk1fRkVBVFVSRV9TSEE1MTIgMQotI2RlZmluZSBNQkVEVExTX0VOQUJMRV9BUk1fU0hBM19FWFRFTlNJT05TX0NPTVBJTEVSX0ZMQUcKLSNlbmRpZgotCi0jaW5jbHVkZSAiY29tbW9uLmgiCi0KLSNpZiBkZWZpbmVkKE1CRURUTFNfU0hBNTEyX0MpIHx8IGRlZmluZWQoTUJFRFRMU19TSEEzODRfQykKLQotI2luY2x1ZGUgIm1iZWR0bHMvc2hhNTEyLmgiCi0jaW5jbHVkZSAibWJlZHRscy9wbGF0Zm9ybV91dGlsLmgiCi0jaW5jbHVkZSAibWJlZHRscy9lcnJvci5oIgotCi0jaWYgZGVmaW5lZChfTVNDX1ZFUikgfHwgZGVmaW5lZChfX1dBVENPTUNfXykKLSAgI2RlZmluZSBVTDY0KHgpIHgjI3VpNjQKLSNlbHNlCi0gICNkZWZpbmUgVUw2NCh4KSB4IyNVTEwKLSNlbmRpZgotCi0jaW5jbHVkZSA8c3RyaW5nLmg+Ci0KLSNpbmNsdWRlICJtYmVkdGxzL3BsYXRmb3JtLmgiCi0KLSNpZiBkZWZpbmVkKF9fYWFyY2g2NF9fKQotIyAgaWYgZGVmaW5lZChNQkVEVExTX1NIQTUxMl9VU0VfQTY0X0NSWVBUT19JRl9QUkVTRU5UKSB8fCBcCi0gICAgZGVmaW5lZChNQkVEVExTX1NIQTUxMl9VU0VfQTY0X0NSWVBUT19PTkxZKQotLyogKklOREVOVC1PRkYqICovCi0jICAgaWYgIWRlZmluZWQoTUJFRFRMU19IQVZFX05FT05fSU5UUklOU0lDUykKLSMgICAgICAgZXJyb3IgIlRhcmdldCBkb2VzIG5vdCBzdXBwb3J0IE5FT04gaW5zdHJ1Y3Rpb25zIgotIyAgIGVuZGlmCi0vKgotICogQmVzdCBwZXJmb3JtYW5jZSBjb21lcyBmcm9tIG1vc3QgcmVjZW50IGNvbXBpbGVycywgd2l0aCBpbnRyaW5zaWNzIGFuZCAtTzMuCi0gKiBNdXN0IGNvbXBpbGUgd2l0aCAtbWFyY2g9YXJtdjguMi1hK3NoYTMsIGJ1dCB3ZSBjYW4ndCBkZXRlY3QgYXJtdjguMi1hLCBhbmQKLSAqIGNhbid0IGFsd2F5cyBkZXRlY3QgX19BUk1fRkVBVFVSRV9TSEE1MTIgKG5vdGFibHkgY2xhbmcgNy0xMikuCi0gKgotICogR0NDIDwgOCB3b24ndCB3b3JrIGF0IGFsbCAobGFja3MgdGhlIHNoYTUxMiBpbnN0cnVjdGlvbnMpCi0gKiBHQ0MgPj0gOCB1c2VzIGludHJpbnNpY3MsIHNldHMgX19BUk1fRkVBVFVSRV9TSEE1MTIKLSAqCi0gKiBDbGFuZyA8IDcgd29uJ3Qgd29yayBhdCBhbGwgKGxhY2tzIHRoZSBzaGE1MTIgaW5zdHJ1Y3Rpb25zKQotICogQ2xhbmcgNy0xMiBkb24ndCBoYXZlIGludHJpbnNpY3MgKGJ1dCB3ZSB3b3JrIGFyb3VuZCB0aGF0IHdpdGggaW5saW5lCi0gKiAgICAgICAgICAgIGFzc2VtYmxlcikgb3IgX19BUk1fRkVBVFVSRV9TSEE1MTIKLSAqIENsYW5nID09IDEzLjAuMCBzYW1lIGFzIGNsYW5nIDEyIChvbmx5IHNlZW4gb24gbWFjT1MpCi0gKiBDbGFuZyA+PSAxMy4wLjEgaGFzIF9fQVJNX0ZFQVRVUkVfU0hBNTEyIGFuZCBpbnRyaW5zaWNzCi0gKi8KLSMgICAgaWYgIWRlZmluZWQoX19BUk1fRkVBVFVSRV9TSEE1MTIpIHx8IGRlZmluZWQoTUJFRFRMU19FTkFCTEVfQVJNX1NIQTNfRVhURU5TSU9OU19DT01QSUxFUl9GTEFHKQotICAgICAgIC8qIFRlc3QgQ2xhbmcgZmlyc3QsIGFzIGl0IGRlZmluZXMgX19HTlVDX18gKi8KLSMgICAgICBpZiBkZWZpbmVkKF9fQVJNQ09NUElMRVJfVkVSU0lPTikKLSMgICAgICAgIGlmIF9fQVJNQ09NUElMRVJfVkVSU0lPTiA8IDYwOTAwMDAKLSMgICAgICAgICAgZXJyb3IgIkEgbW9yZSByZWNlbnQgYXJtY2xhbmcgaXMgcmVxdWlyZWQgZm9yIE1CRURUTFNfU0hBNTEyX1VTRV9BNjRfQ1JZUFRPXyoiCi0jICAgICAgICBlbGlmIF9fQVJNQ09NUElMRVJfVkVSU0lPTiA9PSA2MDkwMDAwCi0jICAgICAgICAgIGVycm9yICJNdXN0IHVzZSBtaW5pbXVtIC1tYXJjaD1hcm12OC4yLWErc2hhMyBmb3IgTUJFRFRMU19TSEE1MTJfVVNFX0E2NF9DUllQVE9fKiIKLSMgICAgICAgIGVsc2UKLSMgICAgICAgICAgcHJhZ21hIGNsYW5nIGF0dHJpYnV0ZSBwdXNoIChfX2F0dHJpYnV0ZV9fKCh0YXJnZXQoInNoYTMiKSkpLCBhcHBseV90bz1mdW5jdGlvbikKLSMgICAgICAgICAgZGVmaW5lIE1CRURUTFNfUE9QX1RBUkdFVF9QUkFHTUEKLSMgICAgICAgIGVuZGlmCi0jICAgICAgZWxpZiBkZWZpbmVkKF9fY2xhbmdfXykKLSMgICAgICAgIGlmIF9fY2xhbmdfbWFqb3JfXyA8IDcKLSMgICAgICAgICAgZXJyb3IgIkEgbW9yZSByZWNlbnQgQ2xhbmcgaXMgcmVxdWlyZWQgZm9yIE1CRURUTFNfU0hBNTEyX1VTRV9BNjRfQ1JZUFRPXyoiCi0jICAgICAgICBlbHNlCi0jICAgICAgICAgIHByYWdtYSBjbGFuZyBhdHRyaWJ1dGUgcHVzaCAoX19hdHRyaWJ1dGVfXygodGFyZ2V0KCJzaGEzIikpKSwgYXBwbHlfdG89ZnVuY3Rpb24pCi0jICAgICAgICAgIGRlZmluZSBNQkVEVExTX1BPUF9UQVJHRVRfUFJBR01BCi0jICAgICAgICBlbmRpZgotIyAgICAgIGVsaWYgZGVmaW5lZChfX0dOVUNfXykKLSMgICAgICAgIGlmIF9fR05VQ19fIDwgOAotIyAgICAgICAgICBlcnJvciAiQSBtb3JlIHJlY2VudCBHQ0MgaXMgcmVxdWlyZWQgZm9yIE1CRURUTFNfU0hBNTEyX1VTRV9BNjRfQ1JZUFRPXyoiCi0jICAgICAgICBlbHNlCi0jICAgICAgICAgIHByYWdtYSBHQ0MgcHVzaF9vcHRpb25zCi0jICAgICAgICAgIHByYWdtYSBHQ0MgdGFyZ2V0ICgiYXJjaD1hcm12OC4yLWErc2hhMyIpCi0jICAgICAgICAgIGRlZmluZSBNQkVEVExTX1BPUF9UQVJHRVRfUFJBR01BCi0jICAgICAgICBlbmRpZgotIyAgICAgIGVsc2UKLSMgICAgICAgIGVycm9yICJPbmx5IEdDQyBhbmQgQ2xhbmcgc3VwcG9ydGVkIGZvciBNQkVEVExTX1NIQTUxMl9VU0VfQTY0X0NSWVBUT18qIgotIyAgICAgIGVuZGlmCi0jICAgIGVuZGlmCi0vKiAqSU5ERU5ULU9OKiAqLwotIyAgZW5kaWYKLSMgIGlmIGRlZmluZWQoTUJFRFRMU19TSEE1MTJfVVNFX0E2NF9DUllQVE9fSUZfUFJFU0VOVCkKLSMgICAgaWYgZGVmaW5lZChfX3VuaXhfXykKLSMgICAgICBpZiBkZWZpbmVkKF9fbGludXhfXykKLS8qIE91ciBwcmVmZXJyZWQgbWV0aG9kIG9mIGRldGVjdGlvbiBpcyBnZXRhdXh2YWwoKSAqLwotIyAgICAgICAgaW5jbHVkZSA8c3lzL2F1eHYuaD4KLSMgICAgICAgIGlmICFkZWZpbmVkKEhXQ0FQX1NIQTUxMikKLS8qIFRoZSBzYW1lIGhlYWRlciB0aGF0IGRlY2xhcmVzIGdldGF1eHZhbCgpIHNob3VsZCBwcm92aWRlIHRoZSBIV0NBUF94eHgKLSAqIGNvbnN0YW50cyB0byBhbmFseXplIGl0cyByZXR1cm4gdmFsdWUuIEhvd2V2ZXIsIHRoZSBsaWJjIG1heSBiZSB0b28KLSAqIG9sZCB0byBoYXZlIHRoZSBjb25zdGFudCB0aGF0IHdlIG5lZWQuIFNvIGlmIGl0J3MgbWlzc2luZywgYXNzdW1lIHRoYXQKLSAqIHRoZSB2YWx1ZSBpcyB0aGUgc2FtZSBvbmUgdXNlZCBieSB0aGUgTGludXgga2VybmVsIEFCSS4KLSAqLwotIyAgICAgICAgICBkZWZpbmUgSFdDQVBfU0hBNTEyICgxIDw8IDIxKQotIyAgICAgICAgZW5kaWYKLSMgICAgICBlbmRpZgotLyogVXNlIFNJR0lMTCBvbiBVbml4LCBhbmQgZmFsbCBiYWNrIHRvIGl0IG9uIExpbnV4ICovCi0jICAgICAgaW5jbHVkZSA8c2lnbmFsLmg+Ci0jICAgIGVuZGlmCi0jICBlbmRpZgotI2VsaWYgIWRlZmluZWQoTUJFRFRMU19QTEFURk9STV9JU19XSU5ET1dTX09OX0FSTTY0KQotIyAgdW5kZWYgTUJFRFRMU19TSEE1MTJfVVNFX0E2NF9DUllQVE9fT05MWQotIyAgdW5kZWYgTUJFRFRMU19TSEE1MTJfVVNFX0E2NF9DUllQVE9fSUZfUFJFU0VOVAotI2VuZGlmCi0KLSNpZiBkZWZpbmVkKE1CRURUTFNfU0hBNTEyX1VTRV9BNjRfQ1JZUFRPX0lGX1BSRVNFTlQpCi0vKgotICogQ2FwYWJpbGl0eSBkZXRlY3Rpb24gY29kZSBjb21lcyBlYXJseSwgc28gd2UgY2FuIGRpc2FibGUKLSAqIE1CRURUTFNfU0hBNTEyX1VTRV9BNjRfQ1JZUFRPX0lGX1BSRVNFTlQgaWYgbm8gZGV0ZWN0aW9uIG1lY2hhbmlzbSBmb3VuZAotICovCi0jaWYgZGVmaW5lZChIV0NBUF9TSEE1MTIpCi1zdGF0aWMgaW50IG1iZWR0bHNfYTY0X2NyeXB0b19zaGE1MTJfZGV0ZXJtaW5lX3N1cHBvcnQodm9pZCkKLXsKLSAgICByZXR1cm4gKGdldGF1eHZhbChBVF9IV0NBUCkgJiBIV0NBUF9TSEE1MTIpID8gMSA6IDA7Ci19Ci0jZWxpZiBkZWZpbmVkKF9fQVBQTEVfXykKLSNpbmNsdWRlIDxzeXMvdHlwZXMuaD4KLSNpbmNsdWRlIDxzeXMvc3lzY3RsLmg+Ci0KLXN0YXRpYyBpbnQgbWJlZHRsc19hNjRfY3J5cHRvX3NoYTUxMl9kZXRlcm1pbmVfc3VwcG9ydCh2b2lkKQotewotICAgIGludCB2YWx1ZSA9IDA7Ci0gICAgc2l6ZV90IHZhbHVlX2xlbiA9IHNpemVvZih2YWx1ZSk7Ci0KLSAgICBpbnQgcmV0ID0gc3lzY3RsYnluYW1lKCJody5vcHRpb25hbC5hcm12OF8yX3NoYTUxMiIsICZ2YWx1ZSwgJnZhbHVlX2xlbiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIE5VTEwsIDApOwotICAgIHJldHVybiByZXQgPT0gMCAmJiB2YWx1ZSAhPSAwOwotfQotI2VsaWYgZGVmaW5lZChNQkVEVExTX1BMQVRGT1JNX0lTX1dJTkRPV1NfT05fQVJNNjQpCi0vKgotICogQXMgb2YgTWFyY2ggMjAyMiwgdGhlcmUgZG9uJ3QgYXBwZWFyIHRvIGJlIGFueSBQRl9BUk1fVjhfKiBmbGFncwotICogYXZhaWxhYmxlIHRvIHBhc3MgdG8gSXNQcm9jZXNzb3JGZWF0dXJlUHJlc2VudCgpIHRvIGNoZWNrIGZvcgotICogU0hBLTUxMiBzdXBwb3J0LiBTbyB3ZSBmYWxsIGJhY2sgdG8gdGhlIEMgY29kZSBvbmx5LgotICovCi0jaWYgZGVmaW5lZChfTVNDX1ZFUikKLSNwcmFnbWEgbWVzc2FnZSAiTm8gbWVjaGFuaXNtIHRvIGRldGVjdCBBNjRfQ1JZUFRPIGZvdW5kLCB1c2luZyBDIGNvZGUgb25seSIKLSNlbHNlCi0jd2FybmluZyAiTm8gbWVjaGFuaXNtIHRvIGRldGVjdCBBNjRfQ1JZUFRPIGZvdW5kLCB1c2luZyBDIGNvZGUgb25seSIKLSNlbmRpZgotI2VsaWYgZGVmaW5lZChfX3VuaXhfXykgJiYgZGVmaW5lZChTSUdfU0VUTUFTSykKLS8qIERldGVjdGlvbiB3aXRoIFNJR0lMTCwgc2V0am1wKCkgYW5kIGxvbmdqbXAoKSAqLwotI2luY2x1ZGUgPHNpZ25hbC5oPgotI2luY2x1ZGUgPHNldGptcC5oPgotCi1zdGF0aWMgam1wX2J1ZiByZXR1cm5fZnJvbV9zaWdpbGw7Ci0KLS8qCi0gKiBBNjQgU0hBNTEyIHN1cHBvcnQgZGV0ZWN0aW9uIHZpYSBTSUdJTEwKLSAqLwotc3RhdGljIHZvaWQgc2lnaWxsX2hhbmRsZXIoaW50IHNpZ25hbCkKLXsKLSAgICAodm9pZCkgc2lnbmFsOwotICAgIGxvbmdqbXAocmV0dXJuX2Zyb21fc2lnaWxsLCAxKTsKLX0KLQotc3RhdGljIGludCBtYmVkdGxzX2E2NF9jcnlwdG9fc2hhNTEyX2RldGVybWluZV9zdXBwb3J0KHZvaWQpCi17Ci0gICAgc3RydWN0IHNpZ2FjdGlvbiBvbGRfYWN0aW9uLCBuZXdfYWN0aW9uOwotCi0gICAgc2lnc2V0X3Qgb2xkX21hc2s7Ci0gICAgaWYgKHNpZ3Byb2NtYXNrKDAsIE5VTEwsICZvbGRfbWFzaykpIHsKLSAgICAgICAgcmV0dXJuIDA7Ci0gICAgfQotCi0gICAgc2lnZW1wdHlzZXQoJm5ld19hY3Rpb24uc2FfbWFzayk7Ci0gICAgbmV3X2FjdGlvbi5zYV9mbGFncyA9IDA7Ci0gICAgbmV3X2FjdGlvbi5zYV9oYW5kbGVyID0gc2lnaWxsX2hhbmRsZXI7Ci0KLSAgICBzaWdhY3Rpb24oU0lHSUxMLCAmbmV3X2FjdGlvbiwgJm9sZF9hY3Rpb24pOwotCi0gICAgc3RhdGljIGludCByZXQgPSAwOwotCi0gICAgaWYgKHNldGptcChyZXR1cm5fZnJvbV9zaWdpbGwpID09IDApIHsgICAgICAgICAvKiBGaXJzdCByZXR1cm4gb25seSAqLwotICAgICAgICAvKiBJZiB0aGlzIHRyYXBzLCB3ZSB3aWxsIHJldHVybiBhIHNlY29uZCB0aW1lIGZyb20gc2V0am1wKCkgd2l0aCAxICovCi0gICAgICAgIGFzbSAoInNoYTUxMmggcTAsIHEwLCB2MC4yZCIgOiA6IDogInYwIik7Ci0gICAgICAgIHJldCA9IDE7Ci0gICAgfQotCi0gICAgc2lnYWN0aW9uKFNJR0lMTCwgJm9sZF9hY3Rpb24sIE5VTEwpOwotICAgIHNpZ3Byb2NtYXNrKFNJR19TRVRNQVNLLCAmb2xkX21hc2ssIE5VTEwpOwotCi0gICAgcmV0dXJuIHJldDsKLX0KLSNlbHNlCi0jd2FybmluZyAiTm8gbWVjaGFuaXNtIHRvIGRldGVjdCBBNjRfQ1JZUFRPIGZvdW5kLCB1c2luZyBDIGNvZGUgb25seSIKLSN1bmRlZiBNQkVEVExTX1NIQTUxMl9VU0VfQTY0X0NSWVBUT19JRl9QUkVTRU5UCi0jZW5kaWYgIC8qIEhXQ0FQX1NIQTUxMiwgX19BUFBMRV9fLCBfX3VuaXhfXyAmJiBTSUdfU0VUTUFTSyAqLwotCi0jZW5kaWYgIC8qIE1CRURUTFNfU0hBNTEyX1VTRV9BNjRfQ1JZUFRPX0lGX1BSRVNFTlQgKi8KLQotI2lmICFkZWZpbmVkKE1CRURUTFNfU0hBNTEyX0FMVCkKLQotI2RlZmluZSBTSEE1MTJfQkxPQ0tfU0laRSAxMjgKLQotI2lmIGRlZmluZWQoTUJFRFRMU19TSEE1MTJfU01BTExFUikKLXN0YXRpYyB2b2lkIHNoYTUxMl9wdXRfdWludDY0X2JlKHVpbnQ2NF90IG4sIHVuc2lnbmVkIGNoYXIgKmIsIHVpbnQ4X3QgaSkKLXsKLSAgICBNQkVEVExTX1BVVF9VSU5UNjRfQkUobiwgYiwgaSk7Ci19Ci0jZWxzZQotI2RlZmluZSBzaGE1MTJfcHV0X3VpbnQ2NF9iZSAgICBNQkVEVExTX1BVVF9VSU5UNjRfQkUKLSNlbmRpZiAvKiBNQkVEVExTX1NIQTUxMl9TTUFMTEVSICovCi0KLXZvaWQgbWJlZHRsc19zaGE1MTJfaW5pdChtYmVkdGxzX3NoYTUxMl9jb250ZXh0ICpjdHgpCi17Ci0gICAgbWVtc2V0KGN0eCwgMCwgc2l6ZW9mKG1iZWR0bHNfc2hhNTEyX2NvbnRleHQpKTsKLX0KLQotdm9pZCBtYmVkdGxzX3NoYTUxMl9mcmVlKG1iZWR0bHNfc2hhNTEyX2NvbnRleHQgKmN0eCkKLXsKLSAgICBpZiAoY3R4ID09IE5VTEwpIHsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLQotICAgIG1iZWR0bHNfcGxhdGZvcm1femVyb2l6ZShjdHgsIHNpemVvZihtYmVkdGxzX3NoYTUxMl9jb250ZXh0KSk7Ci19Ci0KLXZvaWQgbWJlZHRsc19zaGE1MTJfY2xvbmUobWJlZHRsc19zaGE1MTJfY29udGV4dCAqZHN0LAotICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBtYmVkdGxzX3NoYTUxMl9jb250ZXh0ICpzcmMpCi17Ci0gICAgKmRzdCA9ICpzcmM7Ci19Ci0KLS8qCi0gKiBTSEEtNTEyIGNvbnRleHQgc2V0dXAKLSAqLwotaW50IG1iZWR0bHNfc2hhNTEyX3N0YXJ0cyhtYmVkdGxzX3NoYTUxMl9jb250ZXh0ICpjdHgsIGludCBpczM4NCkKLXsKLSNpZiBkZWZpbmVkKE1CRURUTFNfU0hBMzg0X0MpICYmIGRlZmluZWQoTUJFRFRMU19TSEE1MTJfQykKLSAgICBpZiAoaXMzODQgIT0gMCAmJiBpczM4NCAhPSAxKSB7Ci0gICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9TSEE1MTJfQkFEX0lOUFVUX0RBVEE7Ci0gICAgfQotI2VsaWYgZGVmaW5lZChNQkVEVExTX1NIQTUxMl9DKQotICAgIGlmIChpczM4NCAhPSAwKSB7Ci0gICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9TSEE1MTJfQkFEX0lOUFVUX0RBVEE7Ci0gICAgfQotI2Vsc2UgLyogZGVmaW5lZCBNQkVEVExTX1NIQTM4NF9DIG9ubHkgKi8KLSAgICBpZiAoaXMzODQgPT0gMCkgewotICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfU0hBNTEyX0JBRF9JTlBVVF9EQVRBOwotICAgIH0KLSNlbmRpZgotCi0gICAgY3R4LT50b3RhbFswXSA9IDA7Ci0gICAgY3R4LT50b3RhbFsxXSA9IDA7Ci0KLSAgICBpZiAoaXMzODQgPT0gMCkgewotI2lmIGRlZmluZWQoTUJFRFRMU19TSEE1MTJfQykKLSAgICAgICAgY3R4LT5zdGF0ZVswXSA9IFVMNjQoMHg2QTA5RTY2N0YzQkNDOTA4KTsKLSAgICAgICAgY3R4LT5zdGF0ZVsxXSA9IFVMNjQoMHhCQjY3QUU4NTg0Q0FBNzNCKTsKLSAgICAgICAgY3R4LT5zdGF0ZVsyXSA9IFVMNjQoMHgzQzZFRjM3MkZFOTRGODJCKTsKLSAgICAgICAgY3R4LT5zdGF0ZVszXSA9IFVMNjQoMHhBNTRGRjUzQTVGMUQzNkYxKTsKLSAgICAgICAgY3R4LT5zdGF0ZVs0XSA9IFVMNjQoMHg1MTBFNTI3RkFERTY4MkQxKTsKLSAgICAgICAgY3R4LT5zdGF0ZVs1XSA9IFVMNjQoMHg5QjA1Njg4QzJCM0U2QzFGKTsKLSAgICAgICAgY3R4LT5zdGF0ZVs2XSA9IFVMNjQoMHgxRjgzRDlBQkZCNDFCRDZCKTsKLSAgICAgICAgY3R4LT5zdGF0ZVs3XSA9IFVMNjQoMHg1QkUwQ0QxOTEzN0UyMTc5KTsKLSNlbmRpZiAvKiBNQkVEVExTX1NIQTUxMl9DICovCi0gICAgfSBlbHNlIHsKLSNpZiBkZWZpbmVkKE1CRURUTFNfU0hBMzg0X0MpCi0gICAgICAgIGN0eC0+c3RhdGVbMF0gPSBVTDY0KDB4Q0JCQjlENURDMTA1OUVEOCk7Ci0gICAgICAgIGN0eC0+c3RhdGVbMV0gPSBVTDY0KDB4NjI5QTI5MkEzNjdDRDUwNyk7Ci0gICAgICAgIGN0eC0+c3RhdGVbMl0gPSBVTDY0KDB4OTE1OTAxNUEzMDcwREQxNyk7Ci0gICAgICAgIGN0eC0+c3RhdGVbM10gPSBVTDY0KDB4MTUyRkVDRDhGNzBFNTkzOSk7Ci0gICAgICAgIGN0eC0+c3RhdGVbNF0gPSBVTDY0KDB4NjczMzI2NjdGRkMwMEIzMSk7Ci0gICAgICAgIGN0eC0+c3RhdGVbNV0gPSBVTDY0KDB4OEVCNDRBODc2ODU4MTUxMSk7Ci0gICAgICAgIGN0eC0+c3RhdGVbNl0gPSBVTDY0KDB4REIwQzJFMEQ2NEY5OEZBNyk7Ci0gICAgICAgIGN0eC0+c3RhdGVbN10gPSBVTDY0KDB4NDdCNTQ4MURCRUZBNEZBNCk7Ci0jZW5kaWYgLyogTUJFRFRMU19TSEEzODRfQyAqLwotICAgIH0KLQotI2lmIGRlZmluZWQoTUJFRFRMU19TSEEzODRfQykKLSAgICBjdHgtPmlzMzg0ID0gaXMzODQ7Ci0jZW5kaWYKLQotICAgIHJldHVybiAwOwotfQotCi0jaWYgIWRlZmluZWQoTUJFRFRMU19TSEE1MTJfUFJPQ0VTU19BTFQpCi0KLS8qCi0gKiBSb3VuZCBjb25zdGFudHMKLSAqLwotc3RhdGljIGNvbnN0IHVpbnQ2NF90IEtbODBdID0KLXsKLSAgICBVTDY0KDB4NDI4QTJGOThENzI4QUUyMiksICBVTDY0KDB4NzEzNzQ0OTEyM0VGNjVDRCksCi0gICAgVUw2NCgweEI1QzBGQkNGRUM0RDNCMkYpLCAgVUw2NCgweEU5QjVEQkE1ODE4OURCQkMpLAotICAgIFVMNjQoMHgzOTU2QzI1QkYzNDhCNTM4KSwgIFVMNjQoMHg1OUYxMTFGMUI2MDVEMDE5KSwKLSAgICBVTDY0KDB4OTIzRjgyQTRBRjE5NEY5QiksICBVTDY0KDB4QUIxQzVFRDVEQTZEODExOCksCi0gICAgVUw2NCgweEQ4MDdBQTk4QTMwMzAyNDIpLCAgVUw2NCgweDEyODM1QjAxNDU3MDZGQkUpLAotICAgIFVMNjQoMHgyNDMxODVCRTRFRTRCMjhDKSwgIFVMNjQoMHg1NTBDN0RDM0Q1RkZCNEUyKSwKLSAgICBVTDY0KDB4NzJCRTVENzRGMjdCODk2RiksICBVTDY0KDB4ODBERUIxRkUzQjE2OTZCMSksCi0gICAgVUw2NCgweDlCREMwNkE3MjVDNzEyMzUpLCAgVUw2NCgweEMxOUJGMTc0Q0Y2OTI2OTQpLAotICAgIFVMNjQoMHhFNDlCNjlDMTlFRjE0QUQyKSwgIFVMNjQoMHhFRkJFNDc4NjM4NEYyNUUzKSwKLSAgICBVTDY0KDB4MEZDMTlEQzY4QjhDRDVCNSksICBVTDY0KDB4MjQwQ0ExQ0M3N0FDOUM2NSksCi0gICAgVUw2NCgweDJERTkyQzZGNTkyQjAyNzUpLCAgVUw2NCgweDRBNzQ4NEFBNkVBNkU0ODMpLAotICAgIFVMNjQoMHg1Q0IwQTlEQ0JENDFGQkQ0KSwgIFVMNjQoMHg3NkY5ODhEQTgzMTE1M0I1KSwKLSAgICBVTDY0KDB4OTgzRTUxNTJFRTY2REZBQiksICBVTDY0KDB4QTgzMUM2NkQyREI0MzIxMCksCi0gICAgVUw2NCgweEIwMDMyN0M4OThGQjIxM0YpLCAgVUw2NCgweEJGNTk3RkM3QkVFRjBFRTQpLAotICAgIFVMNjQoMHhDNkUwMEJGMzNEQTg4RkMyKSwgIFVMNjQoMHhENUE3OTE0NzkzMEFBNzI1KSwKLSAgICBVTDY0KDB4MDZDQTYzNTFFMDAzODI2RiksICBVTDY0KDB4MTQyOTI5NjcwQTBFNkU3MCksCi0gICAgVUw2NCgweDI3QjcwQTg1NDZEMjJGRkMpLCAgVUw2NCgweDJFMUIyMTM4NUMyNkM5MjYpLAotICAgIFVMNjQoMHg0RDJDNkRGQzVBQzQyQUVEKSwgIFVMNjQoMHg1MzM4MEQxMzlEOTVCM0RGKSwKLSAgICBVTDY0KDB4NjUwQTczNTQ4QkFGNjNERSksICBVTDY0KDB4NzY2QTBBQkIzQzc3QjJBOCksCi0gICAgVUw2NCgweDgxQzJDOTJFNDdFREFFRTYpLCAgVUw2NCgweDkyNzIyQzg1MTQ4MjM1M0IpLAotICAgIFVMNjQoMHhBMkJGRThBMTRDRjEwMzY0KSwgIFVMNjQoMHhBODFBNjY0QkJDNDIzMDAxKSwKLSAgICBVTDY0KDB4QzI0QjhCNzBEMEY4OTc5MSksICBVTDY0KDB4Qzc2QzUxQTMwNjU0QkUzMCksCi0gICAgVUw2NCgweEQxOTJFODE5RDZFRjUyMTgpLCAgVUw2NCgweEQ2OTkwNjI0NTU2NUE5MTApLAotICAgIFVMNjQoMHhGNDBFMzU4NTU3NzEyMDJBKSwgIFVMNjQoMHgxMDZBQTA3MDMyQkJEMUI4KSwKLSAgICBVTDY0KDB4MTlBNEMxMTZCOEQyRDBDOCksICBVTDY0KDB4MUUzNzZDMDg1MTQxQUI1MyksCi0gICAgVUw2NCgweDI3NDg3NzRDREY4RUVCOTkpLCAgVUw2NCgweDM0QjBCQ0I1RTE5QjQ4QTgpLAotICAgIFVMNjQoMHgzOTFDMENCM0M1Qzk1QTYzKSwgIFVMNjQoMHg0RUQ4QUE0QUUzNDE4QUNCKSwKLSAgICBVTDY0KDB4NUI5Q0NBNEY3NzYzRTM3MyksICBVTDY0KDB4NjgyRTZGRjNENkIyQjhBMyksCi0gICAgVUw2NCgweDc0OEY4MkVFNURFRkIyRkMpLCAgVUw2NCgweDc4QTU2MzZGNDMxNzJGNjApLAotICAgIFVMNjQoMHg4NEM4NzgxNEExRjBBQjcyKSwgIFVMNjQoMHg4Q0M3MDIwODFBNjQzOUVDKSwKLSAgICBVTDY0KDB4OTBCRUZGRkEyMzYzMUUyOCksICBVTDY0KDB4QTQ1MDZDRUJERTgyQkRFOSksCi0gICAgVUw2NCgweEJFRjlBM0Y3QjJDNjc5MTUpLCAgVUw2NCgweEM2NzE3OEYyRTM3MjUzMkIpLAotICAgIFVMNjQoMHhDQTI3M0VDRUVBMjY2MTlDKSwgIFVMNjQoMHhEMTg2QjhDNzIxQzBDMjA3KSwKLSAgICBVTDY0KDB4RUFEQTdERDZDREUwRUIxRSksICBVTDY0KDB4RjU3RDRGN0ZFRTZFRDE3OCksCi0gICAgVUw2NCgweDA2RjA2N0FBNzIxNzZGQkEpLCAgVUw2NCgweDBBNjM3REM1QTJDODk4QTYpLAotICAgIFVMNjQoMHgxMTNGOTgwNEJFRjkwREFFKSwgIFVMNjQoMHgxQjcxMEIzNTEzMUM0NzFCKSwKLSAgICBVTDY0KDB4MjhEQjc3RjUyMzA0N0Q4NCksICBVTDY0KDB4MzJDQUFCN0I0MEM3MjQ5MyksCi0gICAgVUw2NCgweDNDOUVCRTBBMTVDOUJFQkMpLCAgVUw2NCgweDQzMUQ2N0M0OUMxMDBENEMpLAotICAgIFVMNjQoMHg0Q0M1RDRCRUNCM0U0MkI2KSwgIFVMNjQoMHg1OTdGMjk5Q0ZDNjU3RTJBKSwKLSAgICBVTDY0KDB4NUZDQjZGQUIzQUQ2RkFFQyksICBVTDY0KDB4NkM0NDE5OEM0QTQ3NTgxNykKLX07Ci0jZW5kaWYKLQotI2lmIGRlZmluZWQoTUJFRFRMU19TSEE1MTJfVVNFX0E2NF9DUllQVE9fSUZfUFJFU0VOVCkgfHwgXAotICAgIGRlZmluZWQoTUJFRFRMU19TSEE1MTJfVVNFX0E2NF9DUllQVE9fT05MWSkKLQotI2lmIGRlZmluZWQoTUJFRFRMU19TSEE1MTJfVVNFX0E2NF9DUllQVE9fT05MWSkKLSMgIGRlZmluZSBtYmVkdGxzX2ludGVybmFsX3NoYTUxMl9wcm9jZXNzX21hbnlfYTY0X2NyeXB0byBtYmVkdGxzX2ludGVybmFsX3NoYTUxMl9wcm9jZXNzX21hbnkKLSMgIGRlZmluZSBtYmVkdGxzX2ludGVybmFsX3NoYTUxMl9wcm9jZXNzX2E2NF9jcnlwdG8gICAgICBtYmVkdGxzX2ludGVybmFsX3NoYTUxMl9wcm9jZXNzCi0jZW5kaWYKLQotLyogQWNjZWxlcmF0ZWQgU0hBLTUxMiBpbXBsZW1lbnRhdGlvbiBvcmlnaW5hbGx5IHdyaXR0ZW4gYnkgU2ltb24gVGF0aGFtIGZvciBQdVRUWSwKLSAqIHVuZGVyIHRoZSBNSVQgbGljZW5jZTsgZHVhbC1saWNlbnNlZCBhcyBBcGFjaGUgMiB3aXRoIGhpcyBraW5kIHBlcm1pc3Npb24uCi0gKi8KLQotI2lmIGRlZmluZWQoX19jbGFuZ19fKSAmJiBcCi0gICAgKF9fY2xhbmdfbWFqb3JfXyA8IDEzIHx8IFwKLSAgICAgKF9fY2xhbmdfbWFqb3JfXyA9PSAxMyAmJiBfX2NsYW5nX21pbm9yX18gPT0gMCAmJiBfX2NsYW5nX3BhdGNobGV2ZWxfXyA9PSAwKSkKLXN0YXRpYyBpbmxpbmUgdWludDY0eDJfdCB2c2hhNTEyc3UwcV91NjQodWludDY0eDJfdCB4LCB1aW50NjR4Ml90IHkpCi17Ci0gICAgYXNtICgic2hhNTEyc3UwICUwLjJELCUxLjJEIiA6ICIrdyIgKHgpIDogInciICh5KSk7Ci0gICAgcmV0dXJuIHg7Ci19Ci1zdGF0aWMgaW5saW5lIHVpbnQ2NHgyX3QgdnNoYTUxMnN1MXFfdTY0KHVpbnQ2NHgyX3QgeCwgdWludDY0eDJfdCB5LCB1aW50NjR4Ml90IHopCi17Ci0gICAgYXNtICgic2hhNTEyc3UxICUwLjJELCUxLjJELCUyLjJEIiA6ICIrdyIgKHgpIDogInciICh5KSwgInciICh6KSk7Ci0gICAgcmV0dXJuIHg7Ci19Ci1zdGF0aWMgaW5saW5lIHVpbnQ2NHgyX3QgdnNoYTUxMmhxX3U2NCh1aW50NjR4Ml90IHgsIHVpbnQ2NHgyX3QgeSwgdWludDY0eDJfdCB6KQotewotICAgIGFzbSAoInNoYTUxMmggJTAsJTEsJTIuMkQiIDogIit3IiAoeCkgOiAidyIgKHkpLCAidyIgKHopKTsKLSAgICByZXR1cm4geDsKLX0KLXN0YXRpYyBpbmxpbmUgdWludDY0eDJfdCB2c2hhNTEyaDJxX3U2NCh1aW50NjR4Ml90IHgsIHVpbnQ2NHgyX3QgeSwgdWludDY0eDJfdCB6KQotewotICAgIGFzbSAoInNoYTUxMmgyICUwLCUxLCUyLjJEIiA6ICIrdyIgKHgpIDogInciICh5KSwgInciICh6KSk7Ci0gICAgcmV0dXJuIHg7Ci19Ci0jZW5kaWYgIC8qIF9fY2xhbmdfXyBldGMgKi8KLQotc3RhdGljIHNpemVfdCBtYmVkdGxzX2ludGVybmFsX3NoYTUxMl9wcm9jZXNzX21hbnlfYTY0X2NyeXB0bygKLSAgICBtYmVkdGxzX3NoYTUxMl9jb250ZXh0ICpjdHgsIGNvbnN0IHVpbnQ4X3QgKm1zZywgc2l6ZV90IGxlbikKLXsKLSAgICB1aW50NjR4Ml90IGFiID0gdmxkMXFfdTY0KCZjdHgtPnN0YXRlWzBdKTsKLSAgICB1aW50NjR4Ml90IGNkID0gdmxkMXFfdTY0KCZjdHgtPnN0YXRlWzJdKTsKLSAgICB1aW50NjR4Ml90IGVmID0gdmxkMXFfdTY0KCZjdHgtPnN0YXRlWzRdKTsKLSAgICB1aW50NjR4Ml90IGdoID0gdmxkMXFfdTY0KCZjdHgtPnN0YXRlWzZdKTsKLQotICAgIHNpemVfdCBwcm9jZXNzZWQgPSAwOwotCi0gICAgZm9yICg7Ci0gICAgICAgICBsZW4gPj0gU0hBNTEyX0JMT0NLX1NJWkU7Ci0gICAgICAgICBwcm9jZXNzZWQgKz0gU0hBNTEyX0JMT0NLX1NJWkUsCi0gICAgICAgICBtc2cgKz0gU0hBNTEyX0JMT0NLX1NJWkUsCi0gICAgICAgICBsZW4gLT0gU0hBNTEyX0JMT0NLX1NJWkUpIHsKLSAgICAgICAgdWludDY0eDJfdCBpbml0aWFsX3N1bSwgc3VtLCBpbnRlcm1lZDsKLQotICAgICAgICB1aW50NjR4Ml90IGFiX29yaWcgPSBhYjsKLSAgICAgICAgdWludDY0eDJfdCBjZF9vcmlnID0gY2Q7Ci0gICAgICAgIHVpbnQ2NHgyX3QgZWZfb3JpZyA9IGVmOwotICAgICAgICB1aW50NjR4Ml90IGdoX29yaWcgPSBnaDsKLQotICAgICAgICB1aW50NjR4Ml90IHMwID0gKHVpbnQ2NHgyX3QpIHZsZDFxX3U4KG1zZyArIDE2ICogMCk7Ci0gICAgICAgIHVpbnQ2NHgyX3QgczEgPSAodWludDY0eDJfdCkgdmxkMXFfdTgobXNnICsgMTYgKiAxKTsKLSAgICAgICAgdWludDY0eDJfdCBzMiA9ICh1aW50NjR4Ml90KSB2bGQxcV91OChtc2cgKyAxNiAqIDIpOwotICAgICAgICB1aW50NjR4Ml90IHMzID0gKHVpbnQ2NHgyX3QpIHZsZDFxX3U4KG1zZyArIDE2ICogMyk7Ci0gICAgICAgIHVpbnQ2NHgyX3QgczQgPSAodWludDY0eDJfdCkgdmxkMXFfdTgobXNnICsgMTYgKiA0KTsKLSAgICAgICAgdWludDY0eDJfdCBzNSA9ICh1aW50NjR4Ml90KSB2bGQxcV91OChtc2cgKyAxNiAqIDUpOwotICAgICAgICB1aW50NjR4Ml90IHM2ID0gKHVpbnQ2NHgyX3QpIHZsZDFxX3U4KG1zZyArIDE2ICogNik7Ci0gICAgICAgIHVpbnQ2NHgyX3QgczcgPSAodWludDY0eDJfdCkgdmxkMXFfdTgobXNnICsgMTYgKiA3KTsKLQotI2lmIF9fQllURV9PUkRFUl9fID09IF9fT1JERVJfTElUVExFX0VORElBTl9fICAvKiBhc3N1bWUgTEUgaWYgdGhlc2Ugbm90IGRlZmluZWQ7IHVudGVzdGVkIG9uIEJFICovCi0gICAgICAgIHMwID0gdnJlaW50ZXJwcmV0cV91NjRfdTgodnJldjY0cV91OCh2cmVpbnRlcnByZXRxX3U4X3U2NChzMCkpKTsKLSAgICAgICAgczEgPSB2cmVpbnRlcnByZXRxX3U2NF91OCh2cmV2NjRxX3U4KHZyZWludGVycHJldHFfdThfdTY0KHMxKSkpOwotICAgICAgICBzMiA9IHZyZWludGVycHJldHFfdTY0X3U4KHZyZXY2NHFfdTgodnJlaW50ZXJwcmV0cV91OF91NjQoczIpKSk7Ci0gICAgICAgIHMzID0gdnJlaW50ZXJwcmV0cV91NjRfdTgodnJldjY0cV91OCh2cmVpbnRlcnByZXRxX3U4X3U2NChzMykpKTsKLSAgICAgICAgczQgPSB2cmVpbnRlcnByZXRxX3U2NF91OCh2cmV2NjRxX3U4KHZyZWludGVycHJldHFfdThfdTY0KHM0KSkpOwotICAgICAgICBzNSA9IHZyZWludGVycHJldHFfdTY0X3U4KHZyZXY2NHFfdTgodnJlaW50ZXJwcmV0cV91OF91NjQoczUpKSk7Ci0gICAgICAgIHM2ID0gdnJlaW50ZXJwcmV0cV91NjRfdTgodnJldjY0cV91OCh2cmVpbnRlcnByZXRxX3U4X3U2NChzNikpKTsKLSAgICAgICAgczcgPSB2cmVpbnRlcnByZXRxX3U2NF91OCh2cmV2NjRxX3U4KHZyZWludGVycHJldHFfdThfdTY0KHM3KSkpOwotI2VuZGlmCi0KLSAgICAgICAgLyogUm91bmRzIDAgYW5kIDEgKi8KLSAgICAgICAgaW5pdGlhbF9zdW0gPSB2YWRkcV91NjQoczAsIHZsZDFxX3U2NCgmS1swXSkpOwotICAgICAgICBzdW0gPSB2YWRkcV91NjQodmV4dHFfdTY0KGluaXRpYWxfc3VtLCBpbml0aWFsX3N1bSwgMSksIGdoKTsKLSAgICAgICAgaW50ZXJtZWQgPSB2c2hhNTEyaHFfdTY0KHN1bSwgdmV4dHFfdTY0KGVmLCBnaCwgMSksIHZleHRxX3U2NChjZCwgZWYsIDEpKTsKLSAgICAgICAgZ2ggPSB2c2hhNTEyaDJxX3U2NChpbnRlcm1lZCwgY2QsIGFiKTsKLSAgICAgICAgY2QgPSB2YWRkcV91NjQoY2QsIGludGVybWVkKTsKLQotICAgICAgICAvKiBSb3VuZHMgMiBhbmQgMyAqLwotICAgICAgICBpbml0aWFsX3N1bSA9IHZhZGRxX3U2NChzMSwgdmxkMXFfdTY0KCZLWzJdKSk7Ci0gICAgICAgIHN1bSA9IHZhZGRxX3U2NCh2ZXh0cV91NjQoaW5pdGlhbF9zdW0sIGluaXRpYWxfc3VtLCAxKSwgZWYpOwotICAgICAgICBpbnRlcm1lZCA9IHZzaGE1MTJocV91NjQoc3VtLCB2ZXh0cV91NjQoY2QsIGVmLCAxKSwgdmV4dHFfdTY0KGFiLCBjZCwgMSkpOwotICAgICAgICBlZiA9IHZzaGE1MTJoMnFfdTY0KGludGVybWVkLCBhYiwgZ2gpOwotICAgICAgICBhYiA9IHZhZGRxX3U2NChhYiwgaW50ZXJtZWQpOwotCi0gICAgICAgIC8qIFJvdW5kcyA0IGFuZCA1ICovCi0gICAgICAgIGluaXRpYWxfc3VtID0gdmFkZHFfdTY0KHMyLCB2bGQxcV91NjQoJktbNF0pKTsKLSAgICAgICAgc3VtID0gdmFkZHFfdTY0KHZleHRxX3U2NChpbml0aWFsX3N1bSwgaW5pdGlhbF9zdW0sIDEpLCBjZCk7Ci0gICAgICAgIGludGVybWVkID0gdnNoYTUxMmhxX3U2NChzdW0sIHZleHRxX3U2NChhYiwgY2QsIDEpLCB2ZXh0cV91NjQoZ2gsIGFiLCAxKSk7Ci0gICAgICAgIGNkID0gdnNoYTUxMmgycV91NjQoaW50ZXJtZWQsIGdoLCBlZik7Ci0gICAgICAgIGdoID0gdmFkZHFfdTY0KGdoLCBpbnRlcm1lZCk7Ci0KLSAgICAgICAgLyogUm91bmRzIDYgYW5kIDcgKi8KLSAgICAgICAgaW5pdGlhbF9zdW0gPSB2YWRkcV91NjQoczMsIHZsZDFxX3U2NCgmS1s2XSkpOwotICAgICAgICBzdW0gPSB2YWRkcV91NjQodmV4dHFfdTY0KGluaXRpYWxfc3VtLCBpbml0aWFsX3N1bSwgMSksIGFiKTsKLSAgICAgICAgaW50ZXJtZWQgPSB2c2hhNTEyaHFfdTY0KHN1bSwgdmV4dHFfdTY0KGdoLCBhYiwgMSksIHZleHRxX3U2NChlZiwgZ2gsIDEpKTsKLSAgICAgICAgYWIgPSB2c2hhNTEyaDJxX3U2NChpbnRlcm1lZCwgZWYsIGNkKTsKLSAgICAgICAgZWYgPSB2YWRkcV91NjQoZWYsIGludGVybWVkKTsKLQotICAgICAgICAvKiBSb3VuZHMgOCBhbmQgOSAqLwotICAgICAgICBpbml0aWFsX3N1bSA9IHZhZGRxX3U2NChzNCwgdmxkMXFfdTY0KCZLWzhdKSk7Ci0gICAgICAgIHN1bSA9IHZhZGRxX3U2NCh2ZXh0cV91NjQoaW5pdGlhbF9zdW0sIGluaXRpYWxfc3VtLCAxKSwgZ2gpOwotICAgICAgICBpbnRlcm1lZCA9IHZzaGE1MTJocV91NjQoc3VtLCB2ZXh0cV91NjQoZWYsIGdoLCAxKSwgdmV4dHFfdTY0KGNkLCBlZiwgMSkpOwotICAgICAgICBnaCA9IHZzaGE1MTJoMnFfdTY0KGludGVybWVkLCBjZCwgYWIpOwotICAgICAgICBjZCA9IHZhZGRxX3U2NChjZCwgaW50ZXJtZWQpOwotCi0gICAgICAgIC8qIFJvdW5kcyAxMCBhbmQgMTEgKi8KLSAgICAgICAgaW5pdGlhbF9zdW0gPSB2YWRkcV91NjQoczUsIHZsZDFxX3U2NCgmS1sxMF0pKTsKLSAgICAgICAgc3VtID0gdmFkZHFfdTY0KHZleHRxX3U2NChpbml0aWFsX3N1bSwgaW5pdGlhbF9zdW0sIDEpLCBlZik7Ci0gICAgICAgIGludGVybWVkID0gdnNoYTUxMmhxX3U2NChzdW0sIHZleHRxX3U2NChjZCwgZWYsIDEpLCB2ZXh0cV91NjQoYWIsIGNkLCAxKSk7Ci0gICAgICAgIGVmID0gdnNoYTUxMmgycV91NjQoaW50ZXJtZWQsIGFiLCBnaCk7Ci0gICAgICAgIGFiID0gdmFkZHFfdTY0KGFiLCBpbnRlcm1lZCk7Ci0KLSAgICAgICAgLyogUm91bmRzIDEyIGFuZCAxMyAqLwotICAgICAgICBpbml0aWFsX3N1bSA9IHZhZGRxX3U2NChzNiwgdmxkMXFfdTY0KCZLWzEyXSkpOwotICAgICAgICBzdW0gPSB2YWRkcV91NjQodmV4dHFfdTY0KGluaXRpYWxfc3VtLCBpbml0aWFsX3N1bSwgMSksIGNkKTsKLSAgICAgICAgaW50ZXJtZWQgPSB2c2hhNTEyaHFfdTY0KHN1bSwgdmV4dHFfdTY0KGFiLCBjZCwgMSksIHZleHRxX3U2NChnaCwgYWIsIDEpKTsKLSAgICAgICAgY2QgPSB2c2hhNTEyaDJxX3U2NChpbnRlcm1lZCwgZ2gsIGVmKTsKLSAgICAgICAgZ2ggPSB2YWRkcV91NjQoZ2gsIGludGVybWVkKTsKLQotICAgICAgICAvKiBSb3VuZHMgMTQgYW5kIDE1ICovCi0gICAgICAgIGluaXRpYWxfc3VtID0gdmFkZHFfdTY0KHM3LCB2bGQxcV91NjQoJktbMTRdKSk7Ci0gICAgICAgIHN1bSA9IHZhZGRxX3U2NCh2ZXh0cV91NjQoaW5pdGlhbF9zdW0sIGluaXRpYWxfc3VtLCAxKSwgYWIpOwotICAgICAgICBpbnRlcm1lZCA9IHZzaGE1MTJocV91NjQoc3VtLCB2ZXh0cV91NjQoZ2gsIGFiLCAxKSwgdmV4dHFfdTY0KGVmLCBnaCwgMSkpOwotICAgICAgICBhYiA9IHZzaGE1MTJoMnFfdTY0KGludGVybWVkLCBlZiwgY2QpOwotICAgICAgICBlZiA9IHZhZGRxX3U2NChlZiwgaW50ZXJtZWQpOwotCi0gICAgICAgIGZvciAodW5zaWduZWQgaW50IHQgPSAxNjsgdCA8IDgwOyB0ICs9IDE2KSB7Ci0gICAgICAgICAgICAvKiBSb3VuZHMgdCBhbmQgdCArIDEgKi8KLSAgICAgICAgICAgIHMwID0gdnNoYTUxMnN1MXFfdTY0KHZzaGE1MTJzdTBxX3U2NChzMCwgczEpLCBzNywgdmV4dHFfdTY0KHM0LCBzNSwgMSkpOwotICAgICAgICAgICAgaW5pdGlhbF9zdW0gPSB2YWRkcV91NjQoczAsIHZsZDFxX3U2NCgmS1t0XSkpOwotICAgICAgICAgICAgc3VtID0gdmFkZHFfdTY0KHZleHRxX3U2NChpbml0aWFsX3N1bSwgaW5pdGlhbF9zdW0sIDEpLCBnaCk7Ci0gICAgICAgICAgICBpbnRlcm1lZCA9IHZzaGE1MTJocV91NjQoc3VtLCB2ZXh0cV91NjQoZWYsIGdoLCAxKSwgdmV4dHFfdTY0KGNkLCBlZiwgMSkpOwotICAgICAgICAgICAgZ2ggPSB2c2hhNTEyaDJxX3U2NChpbnRlcm1lZCwgY2QsIGFiKTsKLSAgICAgICAgICAgIGNkID0gdmFkZHFfdTY0KGNkLCBpbnRlcm1lZCk7Ci0KLSAgICAgICAgICAgIC8qIFJvdW5kcyB0ICsgMiBhbmQgdCArIDMgKi8KLSAgICAgICAgICAgIHMxID0gdnNoYTUxMnN1MXFfdTY0KHZzaGE1MTJzdTBxX3U2NChzMSwgczIpLCBzMCwgdmV4dHFfdTY0KHM1LCBzNiwgMSkpOwotICAgICAgICAgICAgaW5pdGlhbF9zdW0gPSB2YWRkcV91NjQoczEsIHZsZDFxX3U2NCgmS1t0ICsgMl0pKTsKLSAgICAgICAgICAgIHN1bSA9IHZhZGRxX3U2NCh2ZXh0cV91NjQoaW5pdGlhbF9zdW0sIGluaXRpYWxfc3VtLCAxKSwgZWYpOwotICAgICAgICAgICAgaW50ZXJtZWQgPSB2c2hhNTEyaHFfdTY0KHN1bSwgdmV4dHFfdTY0KGNkLCBlZiwgMSksIHZleHRxX3U2NChhYiwgY2QsIDEpKTsKLSAgICAgICAgICAgIGVmID0gdnNoYTUxMmgycV91NjQoaW50ZXJtZWQsIGFiLCBnaCk7Ci0gICAgICAgICAgICBhYiA9IHZhZGRxX3U2NChhYiwgaW50ZXJtZWQpOwotCi0gICAgICAgICAgICAvKiBSb3VuZHMgdCArIDQgYW5kIHQgKyA1ICovCi0gICAgICAgICAgICBzMiA9IHZzaGE1MTJzdTFxX3U2NCh2c2hhNTEyc3UwcV91NjQoczIsIHMzKSwgczEsIHZleHRxX3U2NChzNiwgczcsIDEpKTsKLSAgICAgICAgICAgIGluaXRpYWxfc3VtID0gdmFkZHFfdTY0KHMyLCB2bGQxcV91NjQoJktbdCArIDRdKSk7Ci0gICAgICAgICAgICBzdW0gPSB2YWRkcV91NjQodmV4dHFfdTY0KGluaXRpYWxfc3VtLCBpbml0aWFsX3N1bSwgMSksIGNkKTsKLSAgICAgICAgICAgIGludGVybWVkID0gdnNoYTUxMmhxX3U2NChzdW0sIHZleHRxX3U2NChhYiwgY2QsIDEpLCB2ZXh0cV91NjQoZ2gsIGFiLCAxKSk7Ci0gICAgICAgICAgICBjZCA9IHZzaGE1MTJoMnFfdTY0KGludGVybWVkLCBnaCwgZWYpOwotICAgICAgICAgICAgZ2ggPSB2YWRkcV91NjQoZ2gsIGludGVybWVkKTsKLQotICAgICAgICAgICAgLyogUm91bmRzIHQgKyA2IGFuZCB0ICsgNyAqLwotICAgICAgICAgICAgczMgPSB2c2hhNTEyc3UxcV91NjQodnNoYTUxMnN1MHFfdTY0KHMzLCBzNCksIHMyLCB2ZXh0cV91NjQoczcsIHMwLCAxKSk7Ci0gICAgICAgICAgICBpbml0aWFsX3N1bSA9IHZhZGRxX3U2NChzMywgdmxkMXFfdTY0KCZLW3QgKyA2XSkpOwotICAgICAgICAgICAgc3VtID0gdmFkZHFfdTY0KHZleHRxX3U2NChpbml0aWFsX3N1bSwgaW5pdGlhbF9zdW0sIDEpLCBhYik7Ci0gICAgICAgICAgICBpbnRlcm1lZCA9IHZzaGE1MTJocV91NjQoc3VtLCB2ZXh0cV91NjQoZ2gsIGFiLCAxKSwgdmV4dHFfdTY0KGVmLCBnaCwgMSkpOwotICAgICAgICAgICAgYWIgPSB2c2hhNTEyaDJxX3U2NChpbnRlcm1lZCwgZWYsIGNkKTsKLSAgICAgICAgICAgIGVmID0gdmFkZHFfdTY0KGVmLCBpbnRlcm1lZCk7Ci0KLSAgICAgICAgICAgIC8qIFJvdW5kcyB0ICsgOCBhbmQgdCArIDkgKi8KLSAgICAgICAgICAgIHM0ID0gdnNoYTUxMnN1MXFfdTY0KHZzaGE1MTJzdTBxX3U2NChzNCwgczUpLCBzMywgdmV4dHFfdTY0KHMwLCBzMSwgMSkpOwotICAgICAgICAgICAgaW5pdGlhbF9zdW0gPSB2YWRkcV91NjQoczQsIHZsZDFxX3U2NCgmS1t0ICsgOF0pKTsKLSAgICAgICAgICAgIHN1bSA9IHZhZGRxX3U2NCh2ZXh0cV91NjQoaW5pdGlhbF9zdW0sIGluaXRpYWxfc3VtLCAxKSwgZ2gpOwotICAgICAgICAgICAgaW50ZXJtZWQgPSB2c2hhNTEyaHFfdTY0KHN1bSwgdmV4dHFfdTY0KGVmLCBnaCwgMSksIHZleHRxX3U2NChjZCwgZWYsIDEpKTsKLSAgICAgICAgICAgIGdoID0gdnNoYTUxMmgycV91NjQoaW50ZXJtZWQsIGNkLCBhYik7Ci0gICAgICAgICAgICBjZCA9IHZhZGRxX3U2NChjZCwgaW50ZXJtZWQpOwotCi0gICAgICAgICAgICAvKiBSb3VuZHMgdCArIDEwIGFuZCB0ICsgMTEgKi8KLSAgICAgICAgICAgIHM1ID0gdnNoYTUxMnN1MXFfdTY0KHZzaGE1MTJzdTBxX3U2NChzNSwgczYpLCBzNCwgdmV4dHFfdTY0KHMxLCBzMiwgMSkpOwotICAgICAgICAgICAgaW5pdGlhbF9zdW0gPSB2YWRkcV91NjQoczUsIHZsZDFxX3U2NCgmS1t0ICsgMTBdKSk7Ci0gICAgICAgICAgICBzdW0gPSB2YWRkcV91NjQodmV4dHFfdTY0KGluaXRpYWxfc3VtLCBpbml0aWFsX3N1bSwgMSksIGVmKTsKLSAgICAgICAgICAgIGludGVybWVkID0gdnNoYTUxMmhxX3U2NChzdW0sIHZleHRxX3U2NChjZCwgZWYsIDEpLCB2ZXh0cV91NjQoYWIsIGNkLCAxKSk7Ci0gICAgICAgICAgICBlZiA9IHZzaGE1MTJoMnFfdTY0KGludGVybWVkLCBhYiwgZ2gpOwotICAgICAgICAgICAgYWIgPSB2YWRkcV91NjQoYWIsIGludGVybWVkKTsKLQotICAgICAgICAgICAgLyogUm91bmRzIHQgKyAxMiBhbmQgdCArIDEzICovCi0gICAgICAgICAgICBzNiA9IHZzaGE1MTJzdTFxX3U2NCh2c2hhNTEyc3UwcV91NjQoczYsIHM3KSwgczUsIHZleHRxX3U2NChzMiwgczMsIDEpKTsKLSAgICAgICAgICAgIGluaXRpYWxfc3VtID0gdmFkZHFfdTY0KHM2LCB2bGQxcV91NjQoJktbdCArIDEyXSkpOwotICAgICAgICAgICAgc3VtID0gdmFkZHFfdTY0KHZleHRxX3U2NChpbml0aWFsX3N1bSwgaW5pdGlhbF9zdW0sIDEpLCBjZCk7Ci0gICAgICAgICAgICBpbnRlcm1lZCA9IHZzaGE1MTJocV91NjQoc3VtLCB2ZXh0cV91NjQoYWIsIGNkLCAxKSwgdmV4dHFfdTY0KGdoLCBhYiwgMSkpOwotICAgICAgICAgICAgY2QgPSB2c2hhNTEyaDJxX3U2NChpbnRlcm1lZCwgZ2gsIGVmKTsKLSAgICAgICAgICAgIGdoID0gdmFkZHFfdTY0KGdoLCBpbnRlcm1lZCk7Ci0KLSAgICAgICAgICAgIC8qIFJvdW5kcyB0ICsgMTQgYW5kIHQgKyAxNSAqLwotICAgICAgICAgICAgczcgPSB2c2hhNTEyc3UxcV91NjQodnNoYTUxMnN1MHFfdTY0KHM3LCBzMCksIHM2LCB2ZXh0cV91NjQoczMsIHM0LCAxKSk7Ci0gICAgICAgICAgICBpbml0aWFsX3N1bSA9IHZhZGRxX3U2NChzNywgdmxkMXFfdTY0KCZLW3QgKyAxNF0pKTsKLSAgICAgICAgICAgIHN1bSA9IHZhZGRxX3U2NCh2ZXh0cV91NjQoaW5pdGlhbF9zdW0sIGluaXRpYWxfc3VtLCAxKSwgYWIpOwotICAgICAgICAgICAgaW50ZXJtZWQgPSB2c2hhNTEyaHFfdTY0KHN1bSwgdmV4dHFfdTY0KGdoLCBhYiwgMSksIHZleHRxX3U2NChlZiwgZ2gsIDEpKTsKLSAgICAgICAgICAgIGFiID0gdnNoYTUxMmgycV91NjQoaW50ZXJtZWQsIGVmLCBjZCk7Ci0gICAgICAgICAgICBlZiA9IHZhZGRxX3U2NChlZiwgaW50ZXJtZWQpOwotICAgICAgICB9Ci0KLSAgICAgICAgYWIgPSB2YWRkcV91NjQoYWIsIGFiX29yaWcpOwotICAgICAgICBjZCA9IHZhZGRxX3U2NChjZCwgY2Rfb3JpZyk7Ci0gICAgICAgIGVmID0gdmFkZHFfdTY0KGVmLCBlZl9vcmlnKTsKLSAgICAgICAgZ2ggPSB2YWRkcV91NjQoZ2gsIGdoX29yaWcpOwotICAgIH0KLQotICAgIHZzdDFxX3U2NCgmY3R4LT5zdGF0ZVswXSwgYWIpOwotICAgIHZzdDFxX3U2NCgmY3R4LT5zdGF0ZVsyXSwgY2QpOwotICAgIHZzdDFxX3U2NCgmY3R4LT5zdGF0ZVs0XSwgZWYpOwotICAgIHZzdDFxX3U2NCgmY3R4LT5zdGF0ZVs2XSwgZ2gpOwotCi0gICAgcmV0dXJuIHByb2Nlc3NlZDsKLX0KLQotI2lmIGRlZmluZWQoTUJFRFRMU19TSEE1MTJfVVNFX0E2NF9DUllQVE9fSUZfUFJFU0VOVCkKLS8qCi0gKiBUaGlzIGZ1bmN0aW9uIGlzIGZvciBpbnRlcm5hbCB1c2Ugb25seSBpZiB3ZSBhcmUgYnVpbGRpbmcgYm90aCBDIGFuZCBBNjQKLSAqIHZlcnNpb25zLCBvdGhlcndpc2UgaXQgaXMgcmVuYW1lZCB0byBiZSB0aGUgcHVibGljIG1iZWR0bHNfaW50ZXJuYWxfc2hhNTEyX3Byb2Nlc3MoKQotICovCi1zdGF0aWMKLSNlbmRpZgotaW50IG1iZWR0bHNfaW50ZXJuYWxfc2hhNTEyX3Byb2Nlc3NfYTY0X2NyeXB0byhtYmVkdGxzX3NoYTUxMl9jb250ZXh0ICpjdHgsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgZGF0YVtTSEE1MTJfQkxPQ0tfU0laRV0pCi17Ci0gICAgcmV0dXJuIChtYmVkdGxzX2ludGVybmFsX3NoYTUxMl9wcm9jZXNzX21hbnlfYTY0X2NyeXB0byhjdHgsIGRhdGEsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTSEE1MTJfQkxPQ0tfU0laRSkgPT0KLSAgICAgICAgICAgIFNIQTUxMl9CTE9DS19TSVpFKSA/IDAgOiAtMTsKLX0KLQotI2VuZGlmIC8qIE1CRURUTFNfU0hBNTEyX1VTRV9BNjRfQ1JZUFRPX0lGX1BSRVNFTlQgfHwgTUJFRFRMU19TSEE1MTJfVVNFX0E2NF9DUllQVE9fT05MWSAqLwotCi0jaWYgZGVmaW5lZChNQkVEVExTX1BPUF9UQVJHRVRfUFJBR01BKQotI2lmIGRlZmluZWQoX19jbGFuZ19fKQotI3ByYWdtYSBjbGFuZyBhdHRyaWJ1dGUgcG9wCi0jZWxpZiBkZWZpbmVkKF9fR05VQ19fKQotI3ByYWdtYSBHQ0MgcG9wX29wdGlvbnMKLSNlbmRpZgotI3VuZGVmIE1CRURUTFNfUE9QX1RBUkdFVF9QUkFHTUEKLSNlbmRpZgotCi0KLSNpZiAhZGVmaW5lZChNQkVEVExTX1NIQTUxMl9VU0VfQTY0X0NSWVBUT19JRl9QUkVTRU5UKQotI2RlZmluZSBtYmVkdGxzX2ludGVybmFsX3NoYTUxMl9wcm9jZXNzX21hbnlfYyBtYmVkdGxzX2ludGVybmFsX3NoYTUxMl9wcm9jZXNzX21hbnkKLSNkZWZpbmUgbWJlZHRsc19pbnRlcm5hbF9zaGE1MTJfcHJvY2Vzc19jICAgICAgbWJlZHRsc19pbnRlcm5hbF9zaGE1MTJfcHJvY2VzcwotI2VuZGlmCi0KLQotI2lmICFkZWZpbmVkKE1CRURUTFNfU0hBNTEyX1BST0NFU1NfQUxUKSAmJiAhZGVmaW5lZChNQkVEVExTX1NIQTUxMl9VU0VfQTY0X0NSWVBUT19PTkxZKQotCi0jaWYgZGVmaW5lZChNQkVEVExTX1NIQTUxMl9VU0VfQTY0X0NSWVBUT19JRl9QUkVTRU5UKQotLyoKLSAqIFRoaXMgZnVuY3Rpb24gaXMgZm9yIGludGVybmFsIHVzZSBvbmx5IGlmIHdlIGFyZSBidWlsZGluZyBib3RoIEMgYW5kIEE2NAotICogdmVyc2lvbnMsIG90aGVyd2lzZSBpdCBpcyByZW5hbWVkIHRvIGJlIHRoZSBwdWJsaWMgbWJlZHRsc19pbnRlcm5hbF9zaGE1MTJfcHJvY2VzcygpCi0gKi8KLXN0YXRpYwotI2VuZGlmCi1pbnQgbWJlZHRsc19pbnRlcm5hbF9zaGE1MTJfcHJvY2Vzc19jKG1iZWR0bHNfc2hhNTEyX2NvbnRleHQgKmN0eCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdW5zaWduZWQgY2hhciBkYXRhW1NIQTUxMl9CTE9DS19TSVpFXSkKLXsKLSAgICBpbnQgaTsKLSAgICBzdHJ1Y3QgewotICAgICAgICB1aW50NjRfdCB0ZW1wMSwgdGVtcDIsIFdbODBdOwotICAgICAgICB1aW50NjRfdCBBWzhdOwotICAgIH0gbG9jYWw7Ci0KLSNkZWZpbmUgIFNIUih4LCBuKSAoKHgpID4+IChuKSkKLSNkZWZpbmUgUk9UUih4LCBuKSAoU0hSKCh4KSwgKG4pKSB8ICgoeCkgPDwgKDY0IC0gKG4pKSkpCi0KLSNkZWZpbmUgUzAoeCkgKFJPVFIoeCwgMSkgXiBST1RSKHgsIDgpIF4gIFNIUih4LCA3KSkKLSNkZWZpbmUgUzEoeCkgKFJPVFIoeCwgMTkpIF4gUk9UUih4LCA2MSkgXiAgU0hSKHgsIDYpKQotCi0jZGVmaW5lIFMyKHgpIChST1RSKHgsIDI4KSBeIFJPVFIoeCwgMzQpIF4gUk9UUih4LCAzOSkpCi0jZGVmaW5lIFMzKHgpIChST1RSKHgsIDE0KSBeIFJPVFIoeCwgMTgpIF4gUk9UUih4LCA0MSkpCi0KLSNkZWZpbmUgRjAoeCwgeSwgeikgKCgoeCkgJiAoeSkpIHwgKCh6KSAmICgoeCkgfCAoeSkpKSkKLSNkZWZpbmUgRjEoeCwgeSwgeikgKCh6KSBeICgoeCkgJiAoKHkpIF4gKHopKSkpCi0KLSNkZWZpbmUgUChhLCBiLCBjLCBkLCBlLCBmLCBnLCBoLCB4LCBLKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIGRvICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICAgICAgbG9jYWwudGVtcDEgPSAoaCkgKyBTMyhlKSArIEYxKChlKSwgKGYpLCAoZykpICsgKEspICsgKHgpOyAgICBcCi0gICAgICAgIGxvY2FsLnRlbXAyID0gUzIoYSkgKyBGMCgoYSksIChiKSwgKGMpKTsgICAgICAgICAgICAgICAgICAgICAgXAotICAgICAgICAoZCkgKz0gbG9jYWwudGVtcDE7IChoKSA9IGxvY2FsLnRlbXAxICsgbG9jYWwudGVtcDI7ICAgICAgICBcCi0gICAgfSB3aGlsZSAoMCkKLQotICAgIGZvciAoaSA9IDA7IGkgPCA4OyBpKyspIHsKLSAgICAgICAgbG9jYWwuQVtpXSA9IGN0eC0+c3RhdGVbaV07Ci0gICAgfQotCi0jaWYgZGVmaW5lZChNQkVEVExTX1NIQTUxMl9TTUFMTEVSKQotICAgIGZvciAoaSA9IDA7IGkgPCA4MDsgaSsrKSB7Ci0gICAgICAgIGlmIChpIDwgMTYpIHsKLSAgICAgICAgICAgIGxvY2FsLldbaV0gPSBNQkVEVExTX0dFVF9VSU5UNjRfQkUoZGF0YSwgaSA8PCAzKTsKLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIGxvY2FsLldbaV0gPSBTMShsb2NhbC5XW2kgLSAgMl0pICsgbG9jYWwuV1tpIC0gIDddICsKLSAgICAgICAgICAgICAgICAgICAgICAgICBTMChsb2NhbC5XW2kgLSAxNV0pICsgbG9jYWwuV1tpIC0gMTZdOwotICAgICAgICB9Ci0KLSAgICAgICAgUChsb2NhbC5BWzBdLCBsb2NhbC5BWzFdLCBsb2NhbC5BWzJdLCBsb2NhbC5BWzNdLCBsb2NhbC5BWzRdLAotICAgICAgICAgIGxvY2FsLkFbNV0sIGxvY2FsLkFbNl0sIGxvY2FsLkFbN10sIGxvY2FsLldbaV0sIEtbaV0pOwotCi0gICAgICAgIGxvY2FsLnRlbXAxID0gbG9jYWwuQVs3XTsgbG9jYWwuQVs3XSA9IGxvY2FsLkFbNl07Ci0gICAgICAgIGxvY2FsLkFbNl0gPSBsb2NhbC5BWzVdOyBsb2NhbC5BWzVdID0gbG9jYWwuQVs0XTsKLSAgICAgICAgbG9jYWwuQVs0XSA9IGxvY2FsLkFbM107IGxvY2FsLkFbM10gPSBsb2NhbC5BWzJdOwotICAgICAgICBsb2NhbC5BWzJdID0gbG9jYWwuQVsxXTsgbG9jYWwuQVsxXSA9IGxvY2FsLkFbMF07Ci0gICAgICAgIGxvY2FsLkFbMF0gPSBsb2NhbC50ZW1wMTsKLSAgICB9Ci0jZWxzZSAvKiBNQkVEVExTX1NIQTUxMl9TTUFMTEVSICovCi0gICAgZm9yIChpID0gMDsgaSA8IDE2OyBpKyspIHsKLSAgICAgICAgbG9jYWwuV1tpXSA9IE1CRURUTFNfR0VUX1VJTlQ2NF9CRShkYXRhLCBpIDw8IDMpOwotICAgIH0KLQotICAgIGZvciAoOyBpIDwgODA7IGkrKykgewotICAgICAgICBsb2NhbC5XW2ldID0gUzEobG9jYWwuV1tpIC0gIDJdKSArIGxvY2FsLldbaSAtICA3XSArCi0gICAgICAgICAgICAgICAgICAgICBTMChsb2NhbC5XW2kgLSAxNV0pICsgbG9jYWwuV1tpIC0gMTZdOwotICAgIH0KLQotICAgIGkgPSAwOwotICAgIGRvIHsKLSAgICAgICAgUChsb2NhbC5BWzBdLCBsb2NhbC5BWzFdLCBsb2NhbC5BWzJdLCBsb2NhbC5BWzNdLCBsb2NhbC5BWzRdLAotICAgICAgICAgIGxvY2FsLkFbNV0sIGxvY2FsLkFbNl0sIGxvY2FsLkFbN10sIGxvY2FsLldbaV0sIEtbaV0pOyBpKys7Ci0gICAgICAgIFAobG9jYWwuQVs3XSwgbG9jYWwuQVswXSwgbG9jYWwuQVsxXSwgbG9jYWwuQVsyXSwgbG9jYWwuQVszXSwKLSAgICAgICAgICBsb2NhbC5BWzRdLCBsb2NhbC5BWzVdLCBsb2NhbC5BWzZdLCBsb2NhbC5XW2ldLCBLW2ldKTsgaSsrOwotICAgICAgICBQKGxvY2FsLkFbNl0sIGxvY2FsLkFbN10sIGxvY2FsLkFbMF0sIGxvY2FsLkFbMV0sIGxvY2FsLkFbMl0sCi0gICAgICAgICAgbG9jYWwuQVszXSwgbG9jYWwuQVs0XSwgbG9jYWwuQVs1XSwgbG9jYWwuV1tpXSwgS1tpXSk7IGkrKzsKLSAgICAgICAgUChsb2NhbC5BWzVdLCBsb2NhbC5BWzZdLCBsb2NhbC5BWzddLCBsb2NhbC5BWzBdLCBsb2NhbC5BWzFdLAotICAgICAgICAgIGxvY2FsLkFbMl0sIGxvY2FsLkFbM10sIGxvY2FsLkFbNF0sIGxvY2FsLldbaV0sIEtbaV0pOyBpKys7Ci0gICAgICAgIFAobG9jYWwuQVs0XSwgbG9jYWwuQVs1XSwgbG9jYWwuQVs2XSwgbG9jYWwuQVs3XSwgbG9jYWwuQVswXSwKLSAgICAgICAgICBsb2NhbC5BWzFdLCBsb2NhbC5BWzJdLCBsb2NhbC5BWzNdLCBsb2NhbC5XW2ldLCBLW2ldKTsgaSsrOwotICAgICAgICBQKGxvY2FsLkFbM10sIGxvY2FsLkFbNF0sIGxvY2FsLkFbNV0sIGxvY2FsLkFbNl0sIGxvY2FsLkFbN10sCi0gICAgICAgICAgbG9jYWwuQVswXSwgbG9jYWwuQVsxXSwgbG9jYWwuQVsyXSwgbG9jYWwuV1tpXSwgS1tpXSk7IGkrKzsKLSAgICAgICAgUChsb2NhbC5BWzJdLCBsb2NhbC5BWzNdLCBsb2NhbC5BWzRdLCBsb2NhbC5BWzVdLCBsb2NhbC5BWzZdLAotICAgICAgICAgIGxvY2FsLkFbN10sIGxvY2FsLkFbMF0sIGxvY2FsLkFbMV0sIGxvY2FsLldbaV0sIEtbaV0pOyBpKys7Ci0gICAgICAgIFAobG9jYWwuQVsxXSwgbG9jYWwuQVsyXSwgbG9jYWwuQVszXSwgbG9jYWwuQVs0XSwgbG9jYWwuQVs1XSwKLSAgICAgICAgICBsb2NhbC5BWzZdLCBsb2NhbC5BWzddLCBsb2NhbC5BWzBdLCBsb2NhbC5XW2ldLCBLW2ldKTsgaSsrOwotICAgIH0gd2hpbGUgKGkgPCA4MCk7Ci0jZW5kaWYgLyogTUJFRFRMU19TSEE1MTJfU01BTExFUiAqLwotCi0gICAgZm9yIChpID0gMDsgaSA8IDg7IGkrKykgewotICAgICAgICBjdHgtPnN0YXRlW2ldICs9IGxvY2FsLkFbaV07Ci0gICAgfQotCi0gICAgLyogWmVyb2lzZSBidWZmZXJzIGFuZCB2YXJpYWJsZXMgdG8gY2xlYXIgc2Vuc2l0aXZlIGRhdGEgZnJvbSBtZW1vcnkuICovCi0gICAgbWJlZHRsc19wbGF0Zm9ybV96ZXJvaXplKCZsb2NhbCwgc2l6ZW9mKGxvY2FsKSk7Ci0KLSAgICByZXR1cm4gMDsKLX0KLQotI2VuZGlmIC8qICFNQkVEVExTX1NIQTUxMl9QUk9DRVNTX0FMVCAmJiAhTUJFRFRMU19TSEE1MTJfVVNFX0E2NF9DUllQVE9fT05MWSAqLwotCi0KLSNpZiAhZGVmaW5lZChNQkVEVExTX1NIQTUxMl9VU0VfQTY0X0NSWVBUT19PTkxZKQotCi1zdGF0aWMgc2l6ZV90IG1iZWR0bHNfaW50ZXJuYWxfc2hhNTEyX3Byb2Nlc3NfbWFueV9jKAotICAgIG1iZWR0bHNfc2hhNTEyX2NvbnRleHQgKmN0eCwgY29uc3QgdWludDhfdCAqZGF0YSwgc2l6ZV90IGxlbikKLXsKLSAgICBzaXplX3QgcHJvY2Vzc2VkID0gMDsKLQotICAgIHdoaWxlIChsZW4gPj0gU0hBNTEyX0JMT0NLX1NJWkUpIHsKLSAgICAgICAgaWYgKG1iZWR0bHNfaW50ZXJuYWxfc2hhNTEyX3Byb2Nlc3NfYyhjdHgsIGRhdGEpICE9IDApIHsKLSAgICAgICAgICAgIHJldHVybiAwOwotICAgICAgICB9Ci0KLSAgICAgICAgZGF0YSArPSBTSEE1MTJfQkxPQ0tfU0laRTsKLSAgICAgICAgbGVuICAtPSBTSEE1MTJfQkxPQ0tfU0laRTsKLQotICAgICAgICBwcm9jZXNzZWQgKz0gU0hBNTEyX0JMT0NLX1NJWkU7Ci0gICAgfQotCi0gICAgcmV0dXJuIHByb2Nlc3NlZDsKLX0KLQotI2VuZGlmIC8qICFNQkVEVExTX1NIQTUxMl9VU0VfQTY0X0NSWVBUT19PTkxZICovCi0KLQotI2lmIGRlZmluZWQoTUJFRFRMU19TSEE1MTJfVVNFX0E2NF9DUllQVE9fSUZfUFJFU0VOVCkKLQotc3RhdGljIGludCBtYmVkdGxzX2E2NF9jcnlwdG9fc2hhNTEyX2hhc19zdXBwb3J0KHZvaWQpCi17Ci0gICAgc3RhdGljIGludCBkb25lID0gMDsKLSAgICBzdGF0aWMgaW50IHN1cHBvcnRlZCA9IDA7Ci0KLSAgICBpZiAoIWRvbmUpIHsKLSAgICAgICAgc3VwcG9ydGVkID0gbWJlZHRsc19hNjRfY3J5cHRvX3NoYTUxMl9kZXRlcm1pbmVfc3VwcG9ydCgpOwotICAgICAgICBkb25lID0gMTsKLSAgICB9Ci0KLSAgICByZXR1cm4gc3VwcG9ydGVkOwotfQotCi1zdGF0aWMgc2l6ZV90IG1iZWR0bHNfaW50ZXJuYWxfc2hhNTEyX3Byb2Nlc3NfbWFueShtYmVkdGxzX3NoYTUxMl9jb250ZXh0ICpjdHgsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1aW50OF90ICptc2csIHNpemVfdCBsZW4pCi17Ci0gICAgaWYgKG1iZWR0bHNfYTY0X2NyeXB0b19zaGE1MTJfaGFzX3N1cHBvcnQoKSkgewotICAgICAgICByZXR1cm4gbWJlZHRsc19pbnRlcm5hbF9zaGE1MTJfcHJvY2Vzc19tYW55X2E2NF9jcnlwdG8oY3R4LCBtc2csIGxlbik7Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgcmV0dXJuIG1iZWR0bHNfaW50ZXJuYWxfc2hhNTEyX3Byb2Nlc3NfbWFueV9jKGN0eCwgbXNnLCBsZW4pOwotICAgIH0KLX0KLQotaW50IG1iZWR0bHNfaW50ZXJuYWxfc2hhNTEyX3Byb2Nlc3MobWJlZHRsc19zaGE1MTJfY29udGV4dCAqY3R4LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdW5zaWduZWQgY2hhciBkYXRhW1NIQTUxMl9CTE9DS19TSVpFXSkKLXsKLSAgICBpZiAobWJlZHRsc19hNjRfY3J5cHRvX3NoYTUxMl9oYXNfc3VwcG9ydCgpKSB7Ci0gICAgICAgIHJldHVybiBtYmVkdGxzX2ludGVybmFsX3NoYTUxMl9wcm9jZXNzX2E2NF9jcnlwdG8oY3R4LCBkYXRhKTsKLSAgICB9IGVsc2UgewotICAgICAgICByZXR1cm4gbWJlZHRsc19pbnRlcm5hbF9zaGE1MTJfcHJvY2Vzc19jKGN0eCwgZGF0YSk7Ci0gICAgfQotfQotCi0jZW5kaWYgLyogTUJFRFRMU19TSEE1MTJfVVNFX0E2NF9DUllQVE9fSUZfUFJFU0VOVCAqLwotCi0vKgotICogU0hBLTUxMiBwcm9jZXNzIGJ1ZmZlcgotICovCi1pbnQgbWJlZHRsc19zaGE1MTJfdXBkYXRlKG1iZWR0bHNfc2hhNTEyX2NvbnRleHQgKmN0eCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdW5zaWduZWQgY2hhciAqaW5wdXQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBpbGVuKQotewotICAgIGludCByZXQgPSBNQkVEVExTX0VSUl9FUlJPUl9DT1JSVVBUSU9OX0RFVEVDVEVEOwotICAgIHNpemVfdCBmaWxsOwotICAgIHVuc2lnbmVkIGludCBsZWZ0OwotCi0gICAgaWYgKGlsZW4gPT0gMCkgewotICAgICAgICByZXR1cm4gMDsKLSAgICB9Ci0KLSAgICBsZWZ0ID0gKHVuc2lnbmVkIGludCkgKGN0eC0+dG90YWxbMF0gJiAweDdGKTsKLSAgICBmaWxsID0gU0hBNTEyX0JMT0NLX1NJWkUgLSBsZWZ0OwotCi0gICAgY3R4LT50b3RhbFswXSArPSAodWludDY0X3QpIGlsZW47Ci0KLSAgICBpZiAoY3R4LT50b3RhbFswXSA8ICh1aW50NjRfdCkgaWxlbikgewotICAgICAgICBjdHgtPnRvdGFsWzFdKys7Ci0gICAgfQotCi0gICAgaWYgKGxlZnQgJiYgaWxlbiA+PSBmaWxsKSB7Ci0gICAgICAgIG1lbWNweSgodm9pZCAqKSAoY3R4LT5idWZmZXIgKyBsZWZ0KSwgaW5wdXQsIGZpbGwpOwotCi0gICAgICAgIGlmICgocmV0ID0gbWJlZHRsc19pbnRlcm5hbF9zaGE1MTJfcHJvY2VzcyhjdHgsIGN0eC0+YnVmZmVyKSkgIT0gMCkgewotICAgICAgICAgICAgcmV0dXJuIHJldDsKLSAgICAgICAgfQotCi0gICAgICAgIGlucHV0ICs9IGZpbGw7Ci0gICAgICAgIGlsZW4gIC09IGZpbGw7Ci0gICAgICAgIGxlZnQgPSAwOwotICAgIH0KLQotICAgIHdoaWxlIChpbGVuID49IFNIQTUxMl9CTE9DS19TSVpFKSB7Ci0gICAgICAgIHNpemVfdCBwcm9jZXNzZWQgPQotICAgICAgICAgICAgbWJlZHRsc19pbnRlcm5hbF9zaGE1MTJfcHJvY2Vzc19tYW55KGN0eCwgaW5wdXQsIGlsZW4pOwotICAgICAgICBpZiAocHJvY2Vzc2VkIDwgU0hBNTEyX0JMT0NLX1NJWkUpIHsKLSAgICAgICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9FUlJPUl9HRU5FUklDX0VSUk9SOwotICAgICAgICB9Ci0KLSAgICAgICAgaW5wdXQgKz0gcHJvY2Vzc2VkOwotICAgICAgICBpbGVuICAtPSBwcm9jZXNzZWQ7Ci0gICAgfQotCi0gICAgaWYgKGlsZW4gPiAwKSB7Ci0gICAgICAgIG1lbWNweSgodm9pZCAqKSAoY3R4LT5idWZmZXIgKyBsZWZ0KSwgaW5wdXQsIGlsZW4pOwotICAgIH0KLQotICAgIHJldHVybiAwOwotfQotCi0vKgotICogU0hBLTUxMiBmaW5hbCBkaWdlc3QKLSAqLwotaW50IG1iZWR0bHNfc2hhNTEyX2ZpbmlzaChtYmVkdGxzX3NoYTUxMl9jb250ZXh0ICpjdHgsCi0gICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGNoYXIgKm91dHB1dCkKLXsKLSAgICBpbnQgcmV0ID0gTUJFRFRMU19FUlJfRVJST1JfQ09SUlVQVElPTl9ERVRFQ1RFRDsKLSAgICB1bnNpZ25lZCB1c2VkOwotICAgIHVpbnQ2NF90IGhpZ2gsIGxvdzsKLSAgICBpbnQgdHJ1bmNhdGVkID0gMDsKLQotICAgIC8qCi0gICAgICogQWRkIHBhZGRpbmc6IDB4ODAgdGhlbiAweDAwIHVudGlsIDE2IGJ5dGVzIHJlbWFpbiBmb3IgdGhlIGxlbmd0aAotICAgICAqLwotICAgIHVzZWQgPSBjdHgtPnRvdGFsWzBdICYgMHg3RjsKLQotICAgIGN0eC0+YnVmZmVyW3VzZWQrK10gPSAweDgwOwotCi0gICAgaWYgKHVzZWQgPD0gMTEyKSB7Ci0gICAgICAgIC8qIEVub3VnaCByb29tIGZvciBwYWRkaW5nICsgbGVuZ3RoIGluIGN1cnJlbnQgYmxvY2sgKi8KLSAgICAgICAgbWVtc2V0KGN0eC0+YnVmZmVyICsgdXNlZCwgMCwgMTEyIC0gdXNlZCk7Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgLyogV2UnbGwgbmVlZCBhbiBleHRyYSBibG9jayAqLwotICAgICAgICBtZW1zZXQoY3R4LT5idWZmZXIgKyB1c2VkLCAwLCBTSEE1MTJfQkxPQ0tfU0laRSAtIHVzZWQpOwotCi0gICAgICAgIGlmICgocmV0ID0gbWJlZHRsc19pbnRlcm5hbF9zaGE1MTJfcHJvY2VzcyhjdHgsIGN0eC0+YnVmZmVyKSkgIT0gMCkgewotICAgICAgICAgICAgZ290byBleGl0OwotICAgICAgICB9Ci0KLSAgICAgICAgbWVtc2V0KGN0eC0+YnVmZmVyLCAwLCAxMTIpOwotICAgIH0KLQotICAgIC8qCi0gICAgICogQWRkIG1lc3NhZ2UgbGVuZ3RoCi0gICAgICovCi0gICAgaGlnaCA9IChjdHgtPnRvdGFsWzBdID4+IDYxKQotICAgICAgICAgICB8IChjdHgtPnRvdGFsWzFdIDw8ICAzKTsKLSAgICBsb3cgID0gKGN0eC0+dG90YWxbMF0gPDwgIDMpOwotCi0gICAgc2hhNTEyX3B1dF91aW50NjRfYmUoaGlnaCwgY3R4LT5idWZmZXIsIDExMik7Ci0gICAgc2hhNTEyX3B1dF91aW50NjRfYmUobG93LCAgY3R4LT5idWZmZXIsIDEyMCk7Ci0KLSAgICBpZiAoKHJldCA9IG1iZWR0bHNfaW50ZXJuYWxfc2hhNTEyX3Byb2Nlc3MoY3R4LCBjdHgtPmJ1ZmZlcikpICE9IDApIHsKLSAgICAgICAgZ290byBleGl0OwotICAgIH0KLQotICAgIC8qCi0gICAgICogT3V0cHV0IGZpbmFsIHN0YXRlCi0gICAgICovCi0gICAgc2hhNTEyX3B1dF91aW50NjRfYmUoY3R4LT5zdGF0ZVswXSwgb3V0cHV0LCAgMCk7Ci0gICAgc2hhNTEyX3B1dF91aW50NjRfYmUoY3R4LT5zdGF0ZVsxXSwgb3V0cHV0LCAgOCk7Ci0gICAgc2hhNTEyX3B1dF91aW50NjRfYmUoY3R4LT5zdGF0ZVsyXSwgb3V0cHV0LCAxNik7Ci0gICAgc2hhNTEyX3B1dF91aW50NjRfYmUoY3R4LT5zdGF0ZVszXSwgb3V0cHV0LCAyNCk7Ci0gICAgc2hhNTEyX3B1dF91aW50NjRfYmUoY3R4LT5zdGF0ZVs0XSwgb3V0cHV0LCAzMik7Ci0gICAgc2hhNTEyX3B1dF91aW50NjRfYmUoY3R4LT5zdGF0ZVs1XSwgb3V0cHV0LCA0MCk7Ci0KLSNpZiBkZWZpbmVkKE1CRURUTFNfU0hBMzg0X0MpCi0gICAgdHJ1bmNhdGVkID0gY3R4LT5pczM4NDsKLSNlbmRpZgotICAgIGlmICghdHJ1bmNhdGVkKSB7Ci0gICAgICAgIHNoYTUxMl9wdXRfdWludDY0X2JlKGN0eC0+c3RhdGVbNl0sIG91dHB1dCwgNDgpOwotICAgICAgICBzaGE1MTJfcHV0X3VpbnQ2NF9iZShjdHgtPnN0YXRlWzddLCBvdXRwdXQsIDU2KTsKLSAgICB9Ci0KLSAgICByZXQgPSAwOwotCi1leGl0OgotICAgIG1iZWR0bHNfc2hhNTEyX2ZyZWUoY3R4KTsKLSAgICByZXR1cm4gcmV0OwotfQotCi0jZW5kaWYgLyogIU1CRURUTFNfU0hBNTEyX0FMVCAqLwotCi0vKgotICogb3V0cHV0ID0gU0hBLTUxMiggaW5wdXQgYnVmZmVyICkKLSAqLwotaW50IG1iZWR0bHNfc2hhNTEyKGNvbnN0IHVuc2lnbmVkIGNoYXIgKmlucHV0LAotICAgICAgICAgICAgICAgICAgIHNpemVfdCBpbGVuLAotICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGNoYXIgKm91dHB1dCwKLSAgICAgICAgICAgICAgICAgICBpbnQgaXMzODQpCi17Ci0gICAgaW50IHJldCA9IE1CRURUTFNfRVJSX0VSUk9SX0NPUlJVUFRJT05fREVURUNURUQ7Ci0gICAgbWJlZHRsc19zaGE1MTJfY29udGV4dCBjdHg7Ci0KLSNpZiBkZWZpbmVkKE1CRURUTFNfU0hBMzg0X0MpICYmIGRlZmluZWQoTUJFRFRMU19TSEE1MTJfQykKLSAgICBpZiAoaXMzODQgIT0gMCAmJiBpczM4NCAhPSAxKSB7Ci0gICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9TSEE1MTJfQkFEX0lOUFVUX0RBVEE7Ci0gICAgfQotI2VsaWYgZGVmaW5lZChNQkVEVExTX1NIQTUxMl9DKQotICAgIGlmIChpczM4NCAhPSAwKSB7Ci0gICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9TSEE1MTJfQkFEX0lOUFVUX0RBVEE7Ci0gICAgfQotI2Vsc2UgLyogZGVmaW5lZCBNQkVEVExTX1NIQTM4NF9DIG9ubHkgKi8KLSAgICBpZiAoaXMzODQgPT0gMCkgewotICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfU0hBNTEyX0JBRF9JTlBVVF9EQVRBOwotICAgIH0KLSNlbmRpZgotCi0gICAgbWJlZHRsc19zaGE1MTJfaW5pdCgmY3R4KTsKLQotICAgIGlmICgocmV0ID0gbWJlZHRsc19zaGE1MTJfc3RhcnRzKCZjdHgsIGlzMzg0KSkgIT0gMCkgewotICAgICAgICBnb3RvIGV4aXQ7Ci0gICAgfQotCi0gICAgaWYgKChyZXQgPSBtYmVkdGxzX3NoYTUxMl91cGRhdGUoJmN0eCwgaW5wdXQsIGlsZW4pKSAhPSAwKSB7Ci0gICAgICAgIGdvdG8gZXhpdDsKLSAgICB9Ci0KLSAgICBpZiAoKHJldCA9IG1iZWR0bHNfc2hhNTEyX2ZpbmlzaCgmY3R4LCBvdXRwdXQpKSAhPSAwKSB7Ci0gICAgICAgIGdvdG8gZXhpdDsKLSAgICB9Ci0KLWV4aXQ6Ci0gICAgbWJlZHRsc19zaGE1MTJfZnJlZSgmY3R4KTsKLQotICAgIHJldHVybiByZXQ7Ci19Ci0KLSNpZiBkZWZpbmVkKE1CRURUTFNfU0VMRl9URVNUKQotCi0vKgotICogRklQUy0xODAtMiB0ZXN0IHZlY3RvcnMKLSAqLwotc3RhdGljIGNvbnN0IHVuc2lnbmVkIGNoYXIgc2hhX3Rlc3RfYnVmWzNdWzExM10gPQotewotICAgIHsgImFiYyIgfSwKLSAgICB7Ci0gICAgICAgICJhYmNkZWZnaGJjZGVmZ2hpY2RlZmdoaWpkZWZnaGlqa2VmZ2hpamtsZmdoaWprbG1naGlqa2xtbmhpamtsbW5vaWprbG1ub3Bqa2xtbm9wcWtsbW5vcHFybG1ub3BxcnNtbm9wcXJzdG5vcHFyc3R1IgotICAgIH0sCi0gICAgeyAiIiB9Ci19OwotCi1zdGF0aWMgY29uc3Qgc2l6ZV90IHNoYV90ZXN0X2J1ZmxlblszXSA9Ci17Ci0gICAgMywgMTEyLCAxMDAwCi19OwotCi10eXBlZGVmIGNvbnN0IHVuc2lnbmVkIGNoYXIgKHNoYV90ZXN0X3N1bV90KVs2NF07Ci0KLS8qCi0gKiBTSEEtMzg0IHRlc3QgdmVjdG9ycwotICovCi0jaWYgZGVmaW5lZChNQkVEVExTX1NIQTM4NF9DKQotc3RhdGljIHNoYV90ZXN0X3N1bV90IHNoYTM4NF90ZXN0X3N1bVtdID0KLXsKLSAgICB7IDB4Q0IsIDB4MDAsIDB4NzUsIDB4M0YsIDB4NDUsIDB4QTMsIDB4NUUsIDB4OEIsCi0gICAgICAweEI1LCAweEEwLCAweDNELCAweDY5LCAweDlBLCAweEM2LCAweDUwLCAweDA3LAotICAgICAgMHgyNywgMHgyQywgMHgzMiwgMHhBQiwgMHgwRSwgMHhERSwgMHhEMSwgMHg2MywKLSAgICAgIDB4MUEsIDB4OEIsIDB4NjAsIDB4NUEsIDB4NDMsIDB4RkYsIDB4NUIsIDB4RUQsCi0gICAgICAweDgwLCAweDg2LCAweDA3LCAweDJCLCAweEExLCAweEU3LCAweENDLCAweDIzLAotICAgICAgMHg1OCwgMHhCQSwgMHhFQywgMHhBMSwgMHgzNCwgMHhDOCwgMHgyNSwgMHhBNyB9LAotICAgIHsgMHgwOSwgMHgzMywgMHgwQywgMHgzMywgMHhGNywgMHgxMSwgMHg0NywgMHhFOCwKLSAgICAgIDB4M0QsIDB4MTksIDB4MkYsIDB4QzcsIDB4ODIsIDB4Q0QsIDB4MUIsIDB4NDcsCi0gICAgICAweDUzLCAweDExLCAweDFCLCAweDE3LCAweDNCLCAweDNCLCAweDA1LCAweEQyLAotICAgICAgMHgyRiwgMHhBMCwgMHg4MCwgMHg4NiwgMHhFMywgMHhCMCwgMHhGNywgMHgxMiwKLSAgICAgIDB4RkMsIDB4QzcsIDB4QzcsIDB4MUEsIDB4NTUsIDB4N0UsIDB4MkQsIDB4QjksCi0gICAgICAweDY2LCAweEMzLCAweEU5LCAweEZBLCAweDkxLCAweDc0LCAweDYwLCAweDM5IH0sCi0gICAgeyAweDlELCAweDBFLCAweDE4LCAweDA5LCAweDcxLCAweDY0LCAweDc0LCAweENCLAotICAgICAgMHgwOCwgMHg2RSwgMHg4MywgMHg0RSwgMHgzMSwgMHgwQSwgMHg0QSwgMHgxQywKLSAgICAgIDB4RUQsIDB4MTQsIDB4OUUsIDB4OUMsIDB4MDAsIDB4RjIsIDB4NDgsIDB4NTIsCi0gICAgICAweDc5LCAweDcyLCAweENFLCAweEM1LCAweDcwLCAweDRDLCAweDJBLCAweDVCLAotICAgICAgMHgwNywgMHhCOCwgMHhCMywgMHhEQywgMHgzOCwgMHhFQywgMHhDNCwgMHhFQiwKLSAgICAgIDB4QUUsIDB4OTcsIDB4REQsIDB4RDgsIDB4N0YsIDB4M0QsIDB4ODksIDB4ODUgfQotfTsKLSNlbmRpZiAvKiBNQkVEVExTX1NIQTM4NF9DICovCi0KLS8qCi0gKiBTSEEtNTEyIHRlc3QgdmVjdG9ycwotICovCi0jaWYgZGVmaW5lZChNQkVEVExTX1NIQTUxMl9DKQotc3RhdGljIHNoYV90ZXN0X3N1bV90IHNoYTUxMl90ZXN0X3N1bVtdID0KLXsKLSAgICB7IDB4REQsIDB4QUYsIDB4MzUsIDB4QTEsIDB4OTMsIDB4NjEsIDB4N0EsIDB4QkEsCi0gICAgICAweENDLCAweDQxLCAweDczLCAweDQ5LCAweEFFLCAweDIwLCAweDQxLCAweDMxLAotICAgICAgMHgxMiwgMHhFNiwgMHhGQSwgMHg0RSwgMHg4OSwgMHhBOSwgMHg3RSwgMHhBMiwKLSAgICAgIDB4MEEsIDB4OUUsIDB4RUUsIDB4RTYsIDB4NEIsIDB4NTUsIDB4RDMsIDB4OUEsCi0gICAgICAweDIxLCAweDkyLCAweDk5LCAweDJBLCAweDI3LCAweDRGLCAweEMxLCAweEE4LAotICAgICAgMHgzNiwgMHhCQSwgMHgzQywgMHgyMywgMHhBMywgMHhGRSwgMHhFQiwgMHhCRCwKLSAgICAgIDB4NDUsIDB4NEQsIDB4NDQsIDB4MjMsIDB4NjQsIDB4M0MsIDB4RTgsIDB4MEUsCi0gICAgICAweDJBLCAweDlBLCAweEM5LCAweDRGLCAweEE1LCAweDRDLCAweEE0LCAweDlGIH0sCi0gICAgeyAweDhFLCAweDk1LCAweDlCLCAweDc1LCAweERBLCAweEUzLCAweDEzLCAweERBLAotICAgICAgMHg4QywgMHhGNCwgMHhGNywgMHgyOCwgMHgxNCwgMHhGQywgMHgxNCwgMHgzRiwKLSAgICAgIDB4OEYsIDB4NzcsIDB4NzksIDB4QzYsIDB4RUIsIDB4OUYsIDB4N0YsIDB4QTEsCi0gICAgICAweDcyLCAweDk5LCAweEFFLCAweEFELCAweEI2LCAweDg4LCAweDkwLCAweDE4LAotICAgICAgMHg1MCwgMHgxRCwgMHgyOCwgMHg5RSwgMHg0OSwgMHgwMCwgMHhGNywgMHhFNCwKLSAgICAgIDB4MzMsIDB4MUIsIDB4OTksIDB4REUsIDB4QzQsIDB4QjUsIDB4NDMsIDB4M0EsCi0gICAgICAweEM3LCAweEQzLCAweDI5LCAweEVFLCAweEI2LCAweERELCAweDI2LCAweDU0LAotICAgICAgMHg1RSwgMHg5NiwgMHhFNSwgMHg1QiwgMHg4NywgMHg0QiwgMHhFOSwgMHgwOSB9LAotICAgIHsgMHhFNywgMHgxOCwgMHg0OCwgMHgzRCwgMHgwQywgMHhFNywgMHg2OSwgMHg2NCwKLSAgICAgIDB4NEUsIDB4MkUsIDB4NDIsIDB4QzcsIDB4QkMsIDB4MTUsIDB4QjQsIDB4NjMsCi0gICAgICAweDhFLCAweDFGLCAweDk4LCAweEIxLCAweDNCLCAweDIwLCAweDQ0LCAweDI4LAotICAgICAgMHg1NiwgMHgzMiwgMHhBOCwgMHgwMywgMHhBRiwgMHhBOSwgMHg3MywgMHhFQiwKLSAgICAgIDB4REUsIDB4MEYsIDB4RjIsIDB4NDQsIDB4ODcsIDB4N0UsIDB4QTYsIDB4MEEsCi0gICAgICAweDRDLCAweEIwLCAweDQzLCAweDJDLCAweEU1LCAweDc3LCAweEMzLCAweDFCLAotICAgICAgMHhFQiwgMHgwMCwgMHg5QywgMHg1QywgMHgyQywgMHg0OSwgMHhBQSwgMHgyRSwKLSAgICAgIDB4NEUsIDB4QUQsIDB4QjIsIDB4MTcsIDB4QUQsIDB4OEMsIDB4QzAsIDB4OUIgfQotfTsKLSNlbmRpZiAvKiBNQkVEVExTX1NIQTUxMl9DICovCi0KLXN0YXRpYyBpbnQgbWJlZHRsc19zaGE1MTJfY29tbW9uX3NlbGZfdGVzdChpbnQgdmVyYm9zZSwgaW50IGlzMzg0KQotewotICAgIGludCBpLCBidWZsZW4sIHJldCA9IDA7Ci0gICAgdW5zaWduZWQgY2hhciAqYnVmOwotICAgIHVuc2lnbmVkIGNoYXIgc2hhNTEyc3VtWzY0XTsKLSAgICBtYmVkdGxzX3NoYTUxMl9jb250ZXh0IGN0eDsKLQotI2lmIGRlZmluZWQoTUJFRFRMU19TSEEzODRfQykgJiYgZGVmaW5lZChNQkVEVExTX1NIQTUxMl9DKQotICAgIHNoYV90ZXN0X3N1bV90ICpzaGFfdGVzdF9zdW0gPSAoaXMzODQpID8gc2hhMzg0X3Rlc3Rfc3VtIDogc2hhNTEyX3Rlc3Rfc3VtOwotI2VsaWYgZGVmaW5lZChNQkVEVExTX1NIQTUxMl9DKQotICAgIHNoYV90ZXN0X3N1bV90ICpzaGFfdGVzdF9zdW0gPSBzaGE1MTJfdGVzdF9zdW07Ci0jZWxzZQotICAgIHNoYV90ZXN0X3N1bV90ICpzaGFfdGVzdF9zdW0gPSBzaGEzODRfdGVzdF9zdW07Ci0jZW5kaWYKLQotICAgIGJ1ZiA9IG1iZWR0bHNfY2FsbG9jKDEwMjQsIHNpemVvZih1bnNpZ25lZCBjaGFyKSk7Ci0gICAgaWYgKE5VTEwgPT0gYnVmKSB7Ci0gICAgICAgIGlmICh2ZXJib3NlICE9IDApIHsKLSAgICAgICAgICAgIG1iZWR0bHNfcHJpbnRmKCJCdWZmZXIgYWxsb2NhdGlvbiBmYWlsZWRcbiIpOwotICAgICAgICB9Ci0KLSAgICAgICAgcmV0dXJuIDE7Ci0gICAgfQotCi0gICAgbWJlZHRsc19zaGE1MTJfaW5pdCgmY3R4KTsKLQotICAgIGZvciAoaSA9IDA7IGkgPCAzOyBpKyspIHsKLSAgICAgICAgaWYgKHZlcmJvc2UgIT0gMCkgewotICAgICAgICAgICAgbWJlZHRsc19wcmludGYoIiAgU0hBLSVkIHRlc3QgIyVkOiAiLCA1MTIgLSBpczM4NCAqIDEyOCwgaSArIDEpOwotICAgICAgICB9Ci0KLSAgICAgICAgaWYgKChyZXQgPSBtYmVkdGxzX3NoYTUxMl9zdGFydHMoJmN0eCwgaXMzODQpKSAhPSAwKSB7Ci0gICAgICAgICAgICBnb3RvIGZhaWw7Ci0gICAgICAgIH0KLQotICAgICAgICBpZiAoaSA9PSAyKSB7Ci0gICAgICAgICAgICBtZW1zZXQoYnVmLCAnYScsIGJ1ZmxlbiA9IDEwMDApOwotCi0gICAgICAgICAgICBmb3IgKGludCBqID0gMDsgaiA8IDEwMDA7IGorKykgewotICAgICAgICAgICAgICAgIHJldCA9IG1iZWR0bHNfc2hhNTEyX3VwZGF0ZSgmY3R4LCBidWYsIGJ1Zmxlbik7Ci0gICAgICAgICAgICAgICAgaWYgKHJldCAhPSAwKSB7Ci0gICAgICAgICAgICAgICAgICAgIGdvdG8gZmFpbDsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICByZXQgPSBtYmVkdGxzX3NoYTUxMl91cGRhdGUoJmN0eCwgc2hhX3Rlc3RfYnVmW2ldLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNoYV90ZXN0X2J1ZmxlbltpXSk7Ci0gICAgICAgICAgICBpZiAocmV0ICE9IDApIHsKLSAgICAgICAgICAgICAgICBnb3RvIGZhaWw7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLQotICAgICAgICBpZiAoKHJldCA9IG1iZWR0bHNfc2hhNTEyX2ZpbmlzaCgmY3R4LCBzaGE1MTJzdW0pKSAhPSAwKSB7Ci0gICAgICAgICAgICBnb3RvIGZhaWw7Ci0gICAgICAgIH0KLQotICAgICAgICBpZiAobWVtY21wKHNoYTUxMnN1bSwgc2hhX3Rlc3Rfc3VtW2ldLCA2NCAtIGlzMzg0ICogMTYpICE9IDApIHsKLSAgICAgICAgICAgIHJldCA9IDE7Ci0gICAgICAgICAgICBnb3RvIGZhaWw7Ci0gICAgICAgIH0KLQotICAgICAgICBpZiAodmVyYm9zZSAhPSAwKSB7Ci0gICAgICAgICAgICBtYmVkdGxzX3ByaW50ZigicGFzc2VkXG4iKTsKLSAgICAgICAgfQotICAgIH0KLQotICAgIGlmICh2ZXJib3NlICE9IDApIHsKLSAgICAgICAgbWJlZHRsc19wcmludGYoIlxuIik7Ci0gICAgfQotCi0gICAgZ290byBleGl0OwotCi1mYWlsOgotICAgIGlmICh2ZXJib3NlICE9IDApIHsKLSAgICAgICAgbWJlZHRsc19wcmludGYoImZhaWxlZFxuIik7Ci0gICAgfQotCi1leGl0OgotICAgIG1iZWR0bHNfc2hhNTEyX2ZyZWUoJmN0eCk7Ci0gICAgbWJlZHRsc19mcmVlKGJ1Zik7Ci0KLSAgICByZXR1cm4gcmV0OwotfQotCi0jaWYgZGVmaW5lZChNQkVEVExTX1NIQTUxMl9DKQotaW50IG1iZWR0bHNfc2hhNTEyX3NlbGZfdGVzdChpbnQgdmVyYm9zZSkKLXsKLSAgICByZXR1cm4gbWJlZHRsc19zaGE1MTJfY29tbW9uX3NlbGZfdGVzdCh2ZXJib3NlLCAwKTsKLX0KLSNlbmRpZiAvKiBNQkVEVExTX1NIQTUxMl9DICovCi0KLSNpZiBkZWZpbmVkKE1CRURUTFNfU0hBMzg0X0MpCi1pbnQgbWJlZHRsc19zaGEzODRfc2VsZl90ZXN0KGludCB2ZXJib3NlKQotewotICAgIHJldHVybiBtYmVkdGxzX3NoYTUxMl9jb21tb25fc2VsZl90ZXN0KHZlcmJvc2UsIDEpOwotfQotI2VuZGlmIC8qIE1CRURUTFNfU0hBMzg0X0MgKi8KLQotI3VuZGVmIEFSUkFZX0xFTkdUSAotCi0jZW5kaWYgLyogTUJFRFRMU19TRUxGX1RFU1QgKi8KLQotI2VuZGlmIC8qIE1CRURUTFNfU0hBNTEyX0MgfHwgTUJFRFRMU19TSEEzODRfQyAqLwpkaWZmIC0tZ2l0IGEvbGlicmFyeS9zc2xfY2lwaGVyc3VpdGVzLmMgYi9saWJyYXJ5L3NzbF9jaXBoZXJzdWl0ZXMuYwppbmRleCAyMzYxOWEyLi44ZThkZDZjIDEwMDY0NAotLS0gYS9saWJyYXJ5L3NzbF9jaXBoZXJzdWl0ZXMuYworKysgYi9saWJyYXJ5L3NzbF9jaXBoZXJzdWl0ZXMuYwpAQCAtMjgyLDIyICsyODIsMjIgQEAKICNpZiBkZWZpbmVkKE1CRURUTFNfU1NMX1BST1RPX1RMUzFfMykKICNpZiBkZWZpbmVkKE1CRURUTFNfU1NMX0hBVkVfQUVTKQogI2lmIGRlZmluZWQoTUJFRFRMU19TU0xfSEFWRV9HQ00pCi0jaWYgZGVmaW5lZChNQkVEVExTX01EX0NBTl9TSEEzODQpCisjaWYgZGVmaW5lZChQU0FfV0FOVF9BTEdfU0hBXzM4NCkKICAgICB7IE1CRURUTFNfVExTMV8zX0FFU18yNTZfR0NNX1NIQTM4NCwgIlRMUzEtMy1BRVMtMjU2LUdDTS1TSEEzODQiLAogICAgICAgTUJFRFRMU19DSVBIRVJfQUVTXzI1Nl9HQ00sIE1CRURUTFNfTURfU0hBMzg0LAogICAgICAgTUJFRFRMU19LRVlfRVhDSEFOR0VfTk9ORSwgLyogS2V5IGV4Y2hhbmdlIG5vdCBwYXJ0IG9mIGNpcGhlcnN1aXRlIGluIFRMUyAxLjMgKi8KICAgICAgIDAsCiAgICAgICBNQkVEVExTX1NTTF9WRVJTSU9OX1RMUzFfMywgTUJFRFRMU19TU0xfVkVSU0lPTl9UTFMxXzMgfSwKLSNlbmRpZiAvKiBNQkVEVExTX01EX0NBTl9TSEEzODQgKi8KLSNpZiBkZWZpbmVkKE1CRURUTFNfTURfQ0FOX1NIQTI1NikKKyNlbmRpZiAvKiBQU0FfV0FOVF9BTEdfU0hBXzM4NCAqLworI2lmIGRlZmluZWQoUFNBX1dBTlRfQUxHX1NIQV8yNTYpCiAgICAgeyBNQkVEVExTX1RMUzFfM19BRVNfMTI4X0dDTV9TSEEyNTYsICJUTFMxLTMtQUVTLTEyOC1HQ00tU0hBMjU2IiwKICAgICAgIE1CRURUTFNfQ0lQSEVSX0FFU18xMjhfR0NNLCBNQkVEVExTX01EX1NIQTI1NiwKICAgICAgIE1CRURUTFNfS0VZX0VYQ0hBTkdFX05PTkUsIC8qIEtleSBleGNoYW5nZSBub3QgcGFydCBvZiBjaXBoZXJzdWl0ZSBpbiBUTFMgMS4zICovCiAgICAgICAwLAogICAgICAgTUJFRFRMU19TU0xfVkVSU0lPTl9UTFMxXzMsIE1CRURUTFNfU1NMX1ZFUlNJT05fVExTMV8zIH0sCi0jZW5kaWYgLyogTUJFRFRMU19NRF9DQU5fU0hBMjU2ICovCisjZW5kaWYgLyogUFNBX1dBTlRfQUxHX1NIQV8yNTYgKi8KICNlbmRpZiAvKiBNQkVEVExTX1NTTF9IQVZFX0dDTSAqLwotI2lmIGRlZmluZWQoTUJFRFRMU19TU0xfSEFWRV9DQ00pICYmIGRlZmluZWQoTUJFRFRMU19NRF9DQU5fU0hBMjU2KQorI2lmIGRlZmluZWQoTUJFRFRMU19TU0xfSEFWRV9DQ00pICYmIGRlZmluZWQoUFNBX1dBTlRfQUxHX1NIQV8yNTYpCiAgICAgeyBNQkVEVExTX1RMUzFfM19BRVNfMTI4X0NDTV9TSEEyNTYsICJUTFMxLTMtQUVTLTEyOC1DQ00tU0hBMjU2IiwKICAgICAgIE1CRURUTFNfQ0lQSEVSX0FFU18xMjhfQ0NNLCBNQkVEVExTX01EX1NIQTI1NiwKICAgICAgIE1CRURUTFNfS0VZX0VYQ0hBTkdFX05PTkUsIC8qIEtleSBleGNoYW5nZSBub3QgcGFydCBvZiBjaXBoZXJzdWl0ZSBpbiBUTFMgMS4zICovCkBAIC0zMDgsMjAgKzMwOCwyMCBAQAogICAgICAgTUJFRFRMU19LRVlfRVhDSEFOR0VfTk9ORSwgLyogS2V5IGV4Y2hhbmdlIG5vdCBwYXJ0IG9mIGNpcGhlcnN1aXRlIGluIFRMUyAxLjMgKi8KICAgICAgIE1CRURUTFNfQ0lQSEVSU1VJVEVfU0hPUlRfVEFHLAogICAgICAgTUJFRFRMU19TU0xfVkVSU0lPTl9UTFMxXzMsIE1CRURUTFNfU1NMX1ZFUlNJT05fVExTMV8zIH0sCi0jZW5kaWYgLyogTUJFRFRMU19NRF9DQU5fU0hBMjU2ICYmIE1CRURUTFNfU1NMX0hBVkVfQ0NNICovCisjZW5kaWYgLyogUFNBX1dBTlRfQUxHX1NIQV8yNTYgJiYgTUJFRFRMU19TU0xfSEFWRV9DQ00gKi8KICNlbmRpZiAvKiBNQkVEVExTX1NTTF9IQVZFX0FFUyAqLwotI2lmIGRlZmluZWQoTUJFRFRMU19TU0xfSEFWRV9DSEFDSEFQT0xZKSAmJiBkZWZpbmVkKE1CRURUTFNfTURfQ0FOX1NIQTI1NikKKyNpZiBkZWZpbmVkKE1CRURUTFNfU1NMX0hBVkVfQ0hBQ0hBUE9MWSkgJiYgZGVmaW5lZChQU0FfV0FOVF9BTEdfU0hBXzI1NikKICAgICB7IE1CRURUTFNfVExTMV8zX0NIQUNIQTIwX1BPTFkxMzA1X1NIQTI1NiwKICAgICAgICJUTFMxLTMtQ0hBQ0hBMjAtUE9MWTEzMDUtU0hBMjU2IiwKICAgICAgIE1CRURUTFNfQ0lQSEVSX0NIQUNIQTIwX1BPTFkxMzA1LCBNQkVEVExTX01EX1NIQTI1NiwKICAgICAgIE1CRURUTFNfS0VZX0VYQ0hBTkdFX05PTkUsIC8qIEtleSBleGNoYW5nZSBub3QgcGFydCBvZiBjaXBoZXJzdWl0ZSBpbiBUTFMgMS4zICovCiAgICAgICAwLAogICAgICAgTUJFRFRMU19TU0xfVkVSU0lPTl9UTFMxXzMsIE1CRURUTFNfU1NMX1ZFUlNJT05fVExTMV8zIH0sCi0jZW5kaWYgLyogTUJFRFRMU19TU0xfSEFWRV9DSEFDSEFQT0xZICYmIE1CRURUTFNfTURfQ0FOX1NIQTI1NiAqLworI2VuZGlmIC8qIE1CRURUTFNfU1NMX0hBVkVfQ0hBQ0hBUE9MWSAmJiBQU0FfV0FOVF9BTEdfU0hBXzI1NiAqLwogI2VuZGlmIC8qIE1CRURUTFNfU1NMX1BST1RPX1RMUzFfMyAqLwogCiAjaWYgZGVmaW5lZChNQkVEVExTX1NTTF9IQVZFX0NIQUNIQVBPTFkpICYmIFwKLSAgICBkZWZpbmVkKE1CRURUTFNfTURfQ0FOX1NIQTI1NikgJiYgXAorICAgIGRlZmluZWQoUFNBX1dBTlRfQUxHX1NIQV8yNTYpICYmIFwKICAgICBkZWZpbmVkKE1CRURUTFNfU1NMX1BST1RPX1RMUzFfMikKICNpZiBkZWZpbmVkKE1CRURUTFNfS0VZX0VYQ0hBTkdFX0VDREhFX1JTQV9FTkFCTEVEKQogICAgIHsgTUJFRFRMU19UTFNfRUNESEVfUlNBX1dJVEhfQ0hBQ0hBMjBfUE9MWTEzMDVfU0hBMjU2LApAQCAtMzgwLDcgKzM4MCw3IEBACiAgICAgICBNQkVEVExTX1NTTF9WRVJTSU9OX1RMUzFfMiwgTUJFRFRMU19TU0xfVkVSU0lPTl9UTFMxXzIgfSwKICNlbmRpZgogI2VuZGlmIC8qIE1CRURUTFNfU1NMX0hBVkVfQ0hBQ0hBUE9MWSAmJgotICAgICAgICAgIE1CRURUTFNfTURfQ0FOX1NIQTI1NiAmJgorICAgICAgICAgIFBTQV9XQU5UX0FMR19TSEFfMjU2ICYmCiAgICAgICAgICAgTUJFRFRMU19TU0xfUFJPVE9fVExTMV8yICovCiAjaWYgZGVmaW5lZChNQkVEVExTX0tFWV9FWENIQU5HRV9FQ0RIRV9FQ0RTQV9FTkFCTEVEKQogI2lmIGRlZmluZWQoTUJFRFRMU19TU0xfSEFWRV9BRVMpCkBAIC0zOTYsNyArMzk2LDcgQEAKICAgICAgIE1CRURUTFNfU1NMX1ZFUlNJT05fVExTMV8yLCBNQkVEVExTX1NTTF9WRVJTSU9OX1RMUzFfMiB9LAogI2VuZGlmIC8qIE1CRURUTFNfU1NMX0hBVkVfQ0JDICovCiAjZW5kaWYgLyogTUJFRFRMU19NRF9DQU5fU0hBMSAqLwotI2lmIGRlZmluZWQoTUJFRFRMU19NRF9DQU5fU0hBMjU2KQorI2lmIGRlZmluZWQoUFNBX1dBTlRfQUxHX1NIQV8yNTYpCiAjaWYgZGVmaW5lZChNQkVEVExTX1NTTF9IQVZFX0NCQykKICAgICB7IE1CRURUTFNfVExTX0VDREhFX0VDRFNBX1dJVEhfQUVTXzEyOF9DQkNfU0hBMjU2LCAiVExTLUVDREhFLUVDRFNBLVdJVEgtQUVTLTEyOC1DQkMtU0hBMjU2IiwKICAgICAgIE1CRURUTFNfQ0lQSEVSX0FFU18xMjhfQ0JDLCBNQkVEVExTX01EX1NIQTI1NiwgTUJFRFRMU19LRVlfRVhDSEFOR0VfRUNESEVfRUNEU0EsCkBAIC00MDksOCArNDA5LDggQEAKICAgICAgIDAsCiAgICAgICBNQkVEVExTX1NTTF9WRVJTSU9OX1RMUzFfMiwgTUJFRFRMU19TU0xfVkVSU0lPTl9UTFMxXzIgfSwKICNlbmRpZiAvKiBNQkVEVExTX1NTTF9IQVZFX0dDTSAqLwotI2VuZGlmIC8qIE1CRURUTFNfTURfQ0FOX1NIQTI1NiAqLwotI2lmIGRlZmluZWQoTUJFRFRMU19NRF9DQU5fU0hBMzg0KQorI2VuZGlmIC8qIFBTQV9XQU5UX0FMR19TSEFfMjU2ICovCisjaWYgZGVmaW5lZChQU0FfV0FOVF9BTEdfU0hBXzM4NCkKICNpZiBkZWZpbmVkKE1CRURUTFNfU1NMX0hBVkVfQ0JDKQogICAgIHsgTUJFRFRMU19UTFNfRUNESEVfRUNEU0FfV0lUSF9BRVNfMjU2X0NCQ19TSEEzODQsICJUTFMtRUNESEUtRUNEU0EtV0lUSC1BRVMtMjU2LUNCQy1TSEEzODQiLAogICAgICAgTUJFRFRMU19DSVBIRVJfQUVTXzI1Nl9DQkMsIE1CRURUTFNfTURfU0hBMzg0LCBNQkVEVExTX0tFWV9FWENIQU5HRV9FQ0RIRV9FQ0RTQSwKQEAgLTQyMyw3ICs0MjMsNyBAQAogICAgICAgMCwKICAgICAgIE1CRURUTFNfU1NMX1ZFUlNJT05fVExTMV8yLCBNQkVEVExTX1NTTF9WRVJTSU9OX1RMUzFfMiB9LAogI2VuZGlmIC8qIE1CRURUTFNfU1NMX0hBVkVfR0NNICovCi0jZW5kaWYgLyogTUJFRFRMU19NRF9DQU5fU0hBMzg0ICovCisjZW5kaWYgLyogUFNBX1dBTlRfQUxHX1NIQV8zODQgKi8KICNpZiBkZWZpbmVkKE1CRURUTFNfU1NMX0hBVkVfQ0NNKQogICAgIHsgTUJFRFRMU19UTFNfRUNESEVfRUNEU0FfV0lUSF9BRVNfMjU2X0NDTSwgIlRMUy1FQ0RIRS1FQ0RTQS1XSVRILUFFUy0yNTYtQ0NNIiwKICAgICAgIE1CRURUTFNfQ0lQSEVSX0FFU18yNTZfQ0NNLCBNQkVEVExTX01EX1NIQTI1NiwgTUJFRFRMU19LRVlfRVhDSEFOR0VfRUNESEVfRUNEU0EsCkBAIC00NDYsMzcgKzQ0NiwzNyBAQAogCiAjaWYgZGVmaW5lZChNQkVEVExTX1NTTF9IQVZFX0NBTUVMTElBKQogI2lmIGRlZmluZWQoTUJFRFRMU19TU0xfSEFWRV9DQkMpCi0jaWYgZGVmaW5lZChNQkVEVExTX01EX0NBTl9TSEEyNTYpCisjaWYgZGVmaW5lZChQU0FfV0FOVF9BTEdfU0hBXzI1NikKICAgICB7IE1CRURUTFNfVExTX0VDREhFX0VDRFNBX1dJVEhfQ0FNRUxMSUFfMTI4X0NCQ19TSEEyNTYsCiAgICAgICAiVExTLUVDREhFLUVDRFNBLVdJVEgtQ0FNRUxMSUEtMTI4LUNCQy1TSEEyNTYiLAogICAgICAgTUJFRFRMU19DSVBIRVJfQ0FNRUxMSUFfMTI4X0NCQywgTUJFRFRMU19NRF9TSEEyNTYsIE1CRURUTFNfS0VZX0VYQ0hBTkdFX0VDREhFX0VDRFNBLAogICAgICAgMCwKICAgICAgIE1CRURUTFNfU1NMX1ZFUlNJT05fVExTMV8yLCBNQkVEVExTX1NTTF9WRVJTSU9OX1RMUzFfMiB9LAotI2VuZGlmIC8qIE1CRURUTFNfTURfQ0FOX1NIQTI1NiAqLwotI2lmIGRlZmluZWQoTUJFRFRMU19NRF9DQU5fU0hBMzg0KQorI2VuZGlmIC8qIFBTQV9XQU5UX0FMR19TSEFfMjU2ICovCisjaWYgZGVmaW5lZChQU0FfV0FOVF9BTEdfU0hBXzM4NCkKICAgICB7IE1CRURUTFNfVExTX0VDREhFX0VDRFNBX1dJVEhfQ0FNRUxMSUFfMjU2X0NCQ19TSEEzODQsCiAgICAgICAiVExTLUVDREhFLUVDRFNBLVdJVEgtQ0FNRUxMSUEtMjU2LUNCQy1TSEEzODQiLAogICAgICAgTUJFRFRMU19DSVBIRVJfQ0FNRUxMSUFfMjU2X0NCQywgTUJFRFRMU19NRF9TSEEzODQsIE1CRURUTFNfS0VZX0VYQ0hBTkdFX0VDREhFX0VDRFNBLAogICAgICAgMCwKICAgICAgIE1CRURUTFNfU1NMX1ZFUlNJT05fVExTMV8yLCBNQkVEVExTX1NTTF9WRVJTSU9OX1RMUzFfMiB9LAotI2VuZGlmIC8qIE1CRURUTFNfTURfQ0FOX1NIQTM4NCAqLworI2VuZGlmIC8qIFBTQV9XQU5UX0FMR19TSEFfMzg0ICovCiAjZW5kaWYgLyogTUJFRFRMU19TU0xfSEFWRV9DQkMgKi8KIAogI2lmIGRlZmluZWQoTUJFRFRMU19TU0xfSEFWRV9HQ00pCi0jaWYgZGVmaW5lZChNQkVEVExTX01EX0NBTl9TSEEyNTYpCisjaWYgZGVmaW5lZChQU0FfV0FOVF9BTEdfU0hBXzI1NikKICAgICB7IE1CRURUTFNfVExTX0VDREhFX0VDRFNBX1dJVEhfQ0FNRUxMSUFfMTI4X0dDTV9TSEEyNTYsCiAgICAgICAiVExTLUVDREhFLUVDRFNBLVdJVEgtQ0FNRUxMSUEtMTI4LUdDTS1TSEEyNTYiLAogICAgICAgTUJFRFRMU19DSVBIRVJfQ0FNRUxMSUFfMTI4X0dDTSwgTUJFRFRMU19NRF9TSEEyNTYsIE1CRURUTFNfS0VZX0VYQ0hBTkdFX0VDREhFX0VDRFNBLAogICAgICAgMCwKICAgICAgIE1CRURUTFNfU1NMX1ZFUlNJT05fVExTMV8yLCBNQkVEVExTX1NTTF9WRVJTSU9OX1RMUzFfMiB9LAotI2VuZGlmIC8qIE1CRURUTFNfTURfQ0FOX1NIQTI1NiAqLwotI2lmIGRlZmluZWQoTUJFRFRMU19NRF9DQU5fU0hBMzg0KQorI2VuZGlmIC8qIFBTQV9XQU5UX0FMR19TSEFfMjU2ICovCisjaWYgZGVmaW5lZChQU0FfV0FOVF9BTEdfU0hBXzM4NCkKICAgICB7IE1CRURUTFNfVExTX0VDREhFX0VDRFNBX1dJVEhfQ0FNRUxMSUFfMjU2X0dDTV9TSEEzODQsCiAgICAgICAiVExTLUVDREhFLUVDRFNBLVdJVEgtQ0FNRUxMSUEtMjU2LUdDTS1TSEEzODQiLAogICAgICAgTUJFRFRMU19DSVBIRVJfQ0FNRUxMSUFfMjU2X0dDTSwgTUJFRFRMU19NRF9TSEEzODQsIE1CRURUTFNfS0VZX0VYQ0hBTkdFX0VDREhFX0VDRFNBLAogICAgICAgMCwKICAgICAgIE1CRURUTFNfU1NMX1ZFUlNJT05fVExTMV8yLCBNQkVEVExTX1NTTF9WRVJTSU9OX1RMUzFfMiB9LAotI2VuZGlmIC8qIE1CRURUTFNfTURfQ0FOX1NIQTM4NCAqLworI2VuZGlmIC8qIFBTQV9XQU5UX0FMR19TSEFfMzg0ICovCiAjZW5kaWYgLyogTUJFRFRMU19TU0xfSEFWRV9HQ00gKi8KICNlbmRpZiAvKiBNQkVEVExTX1NTTF9IQVZFX0NBTUVMTElBICovCiAKQEAgLTUwNCw3ICs1MDQsNyBAQAogICAgICAgTUJFRFRMU19TU0xfVkVSU0lPTl9UTFMxXzIsIE1CRURUTFNfU1NMX1ZFUlNJT05fVExTMV8yIH0sCiAjZW5kaWYgLyogTUJFRFRMU19TU0xfSEFWRV9DQkMgKi8KICNlbmRpZiAvKiBNQkVEVExTX01EX0NBTl9TSEExICovCi0jaWYgZGVmaW5lZChNQkVEVExTX01EX0NBTl9TSEEyNTYpCisjaWYgZGVmaW5lZChQU0FfV0FOVF9BTEdfU0hBXzI1NikKICNpZiBkZWZpbmVkKE1CRURUTFNfU1NMX0hBVkVfQ0JDKQogICAgIHsgTUJFRFRMU19UTFNfRUNESEVfUlNBX1dJVEhfQUVTXzEyOF9DQkNfU0hBMjU2LCAiVExTLUVDREhFLVJTQS1XSVRILUFFUy0xMjgtQ0JDLVNIQTI1NiIsCiAgICAgICBNQkVEVExTX0NJUEhFUl9BRVNfMTI4X0NCQywgTUJFRFRMU19NRF9TSEEyNTYsIE1CRURUTFNfS0VZX0VYQ0hBTkdFX0VDREhFX1JTQSwKQEAgLTUxNyw4ICs1MTcsOCBAQAogICAgICAgMCwKICAgICAgIE1CRURUTFNfU1NMX1ZFUlNJT05fVExTMV8yLCBNQkVEVExTX1NTTF9WRVJTSU9OX1RMUzFfMiB9LAogI2VuZGlmIC8qIE1CRURUTFNfU1NMX0hBVkVfR0NNICovCi0jZW5kaWYgLyogTUJFRFRMU19NRF9DQU5fU0hBMjU2ICovCi0jaWYgZGVmaW5lZChNQkVEVExTX01EX0NBTl9TSEEzODQpCisjZW5kaWYgLyogUFNBX1dBTlRfQUxHX1NIQV8yNTYgKi8KKyNpZiBkZWZpbmVkKFBTQV9XQU5UX0FMR19TSEFfMzg0KQogI2lmIGRlZmluZWQoTUJFRFRMU19TU0xfSEFWRV9DQkMpCiAgICAgeyBNQkVEVExTX1RMU19FQ0RIRV9SU0FfV0lUSF9BRVNfMjU2X0NCQ19TSEEzODQsICJUTFMtRUNESEUtUlNBLVdJVEgtQUVTLTI1Ni1DQkMtU0hBMzg0IiwKICAgICAgIE1CRURUTFNfQ0lQSEVSX0FFU18yNTZfQ0JDLCBNQkVEVExTX01EX1NIQTM4NCwgTUJFRFRMU19LRVlfRVhDSEFOR0VfRUNESEVfUlNBLApAQCAtNTMxLDQyICs1MzEsNDIgQEAKICAgICAgIDAsCiAgICAgICBNQkVEVExTX1NTTF9WRVJTSU9OX1RMUzFfMiwgTUJFRFRMU19TU0xfVkVSU0lPTl9UTFMxXzIgfSwKICNlbmRpZiAvKiBNQkVEVExTX1NTTF9IQVZFX0dDTSAqLwotI2VuZGlmIC8qIE1CRURUTFNfTURfQ0FOX1NIQTM4NCAqLworI2VuZGlmIC8qIFBTQV9XQU5UX0FMR19TSEFfMzg0ICovCiAjZW5kaWYgLyogTUJFRFRMU19TU0xfSEFWRV9BRVMgKi8KIAogI2lmIGRlZmluZWQoTUJFRFRMU19TU0xfSEFWRV9DQU1FTExJQSkKICNpZiBkZWZpbmVkKE1CRURUTFNfU1NMX0hBVkVfQ0JDKQotI2lmIGRlZmluZWQoTUJFRFRMU19NRF9DQU5fU0hBMjU2KQorI2lmIGRlZmluZWQoUFNBX1dBTlRfQUxHX1NIQV8yNTYpCiAgICAgeyBNQkVEVExTX1RMU19FQ0RIRV9SU0FfV0lUSF9DQU1FTExJQV8xMjhfQ0JDX1NIQTI1NiwKICAgICAgICJUTFMtRUNESEUtUlNBLVdJVEgtQ0FNRUxMSUEtMTI4LUNCQy1TSEEyNTYiLAogICAgICAgTUJFRFRMU19DSVBIRVJfQ0FNRUxMSUFfMTI4X0NCQywgTUJFRFRMU19NRF9TSEEyNTYsIE1CRURUTFNfS0VZX0VYQ0hBTkdFX0VDREhFX1JTQSwKICAgICAgIDAsCiAgICAgICBNQkVEVExTX1NTTF9WRVJTSU9OX1RMUzFfMiwgTUJFRFRMU19TU0xfVkVSU0lPTl9UTFMxXzIgfSwKLSNlbmRpZiAvKiBNQkVEVExTX01EX0NBTl9TSEEyNTYgKi8KLSNpZiBkZWZpbmVkKE1CRURUTFNfTURfQ0FOX1NIQTM4NCkKKyNlbmRpZiAvKiBQU0FfV0FOVF9BTEdfU0hBXzI1NiAqLworI2lmIGRlZmluZWQoUFNBX1dBTlRfQUxHX1NIQV8zODQpCiAgICAgeyBNQkVEVExTX1RMU19FQ0RIRV9SU0FfV0lUSF9DQU1FTExJQV8yNTZfQ0JDX1NIQTM4NCwKICAgICAgICJUTFMtRUNESEUtUlNBLVdJVEgtQ0FNRUxMSUEtMjU2LUNCQy1TSEEzODQiLAogICAgICAgTUJFRFRMU19DSVBIRVJfQ0FNRUxMSUFfMjU2X0NCQywgTUJFRFRMU19NRF9TSEEzODQsIE1CRURUTFNfS0VZX0VYQ0hBTkdFX0VDREhFX1JTQSwKICAgICAgIDAsCiAgICAgICBNQkVEVExTX1NTTF9WRVJTSU9OX1RMUzFfMiwgTUJFRFRMU19TU0xfVkVSU0lPTl9UTFMxXzIgfSwKLSNlbmRpZiAvKiBNQkVEVExTX01EX0NBTl9TSEEzODQgKi8KKyNlbmRpZiAvKiBQU0FfV0FOVF9BTEdfU0hBXzM4NCAqLwogI2VuZGlmIC8qIE1CRURUTFNfU1NMX0hBVkVfQ0JDICovCiAKICNpZiBkZWZpbmVkKE1CRURUTFNfU1NMX0hBVkVfR0NNKQotI2lmIGRlZmluZWQoTUJFRFRMU19NRF9DQU5fU0hBMjU2KQorI2lmIGRlZmluZWQoUFNBX1dBTlRfQUxHX1NIQV8yNTYpCiAgICAgeyBNQkVEVExTX1RMU19FQ0RIRV9SU0FfV0lUSF9DQU1FTExJQV8xMjhfR0NNX1NIQTI1NiwKICAgICAgICJUTFMtRUNESEUtUlNBLVdJVEgtQ0FNRUxMSUEtMTI4LUdDTS1TSEEyNTYiLAogICAgICAgTUJFRFRMU19DSVBIRVJfQ0FNRUxMSUFfMTI4X0dDTSwgTUJFRFRMU19NRF9TSEEyNTYsIE1CRURUTFNfS0VZX0VYQ0hBTkdFX0VDREhFX1JTQSwKICAgICAgIDAsCiAgICAgICBNQkVEVExTX1NTTF9WRVJTSU9OX1RMUzFfMiwgTUJFRFRMU19TU0xfVkVSU0lPTl9UTFMxXzIgfSwKLSNlbmRpZiAvKiBNQkVEVExTX01EX0NBTl9TSEEyNTYgKi8KLSNpZiBkZWZpbmVkKE1CRURUTFNfTURfQ0FOX1NIQTM4NCkKKyNlbmRpZiAvKiBQU0FfV0FOVF9BTEdfU0hBXzI1NiAqLworI2lmIGRlZmluZWQoUFNBX1dBTlRfQUxHX1NIQV8zODQpCiAgICAgeyBNQkVEVExTX1RMU19FQ0RIRV9SU0FfV0lUSF9DQU1FTExJQV8yNTZfR0NNX1NIQTM4NCwKICAgICAgICJUTFMtRUNESEUtUlNBLVdJVEgtQ0FNRUxMSUEtMjU2LUdDTS1TSEEzODQiLAogICAgICAgTUJFRFRMU19DSVBIRVJfQ0FNRUxMSUFfMjU2X0dDTSwgTUJFRFRMU19NRF9TSEEzODQsIE1CRURUTFNfS0VZX0VYQ0hBTkdFX0VDREhFX1JTQSwKICAgICAgIDAsCiAgICAgICBNQkVEVExTX1NTTF9WRVJTSU9OX1RMUzFfMiwgTUJFRFRMU19TU0xfVkVSU0lPTl9UTFMxXzIgfSwKLSNlbmRpZiAvKiBNQkVEVExTX01EX0NBTl9TSEEzODQgKi8KKyNlbmRpZiAvKiBQU0FfV0FOVF9BTEdfU0hBXzM4NCAqLwogI2VuZGlmIC8qIE1CRURUTFNfU1NMX0hBVkVfR0NNICovCiAjZW5kaWYgLyogTUJFRFRMU19TU0xfSEFWRV9DQU1FTExJQSAqLwogCkBAIC01ODIsMTUgKzU4MiwxNSBAQAogCiAjaWYgZGVmaW5lZChNQkVEVExTX0tFWV9FWENIQU5HRV9ESEVfUlNBX0VOQUJMRUQpCiAjaWYgZGVmaW5lZChNQkVEVExTX1NTTF9IQVZFX0FFUykKLSNpZiBkZWZpbmVkKE1CRURUTFNfTURfQ0FOX1NIQTM4NCkgJiYgXAorI2lmIGRlZmluZWQoUFNBX1dBTlRfQUxHX1NIQV8zODQpICYmIFwKICAgICBkZWZpbmVkKE1CRURUTFNfU1NMX0hBVkVfR0NNKQogICAgIHsgTUJFRFRMU19UTFNfREhFX1JTQV9XSVRIX0FFU18yNTZfR0NNX1NIQTM4NCwgIlRMUy1ESEUtUlNBLVdJVEgtQUVTLTI1Ni1HQ00tU0hBMzg0IiwKICAgICAgIE1CRURUTFNfQ0lQSEVSX0FFU18yNTZfR0NNLCBNQkVEVExTX01EX1NIQTM4NCwgTUJFRFRMU19LRVlfRVhDSEFOR0VfREhFX1JTQSwKICAgICAgIDAsCiAgICAgICBNQkVEVExTX1NTTF9WRVJTSU9OX1RMUzFfMiwgTUJFRFRMU19TU0xfVkVSU0lPTl9UTFMxXzIgfSwKLSNlbmRpZiAvKiBNQkVEVExTX01EX0NBTl9TSEEzODQgJiYgTUJFRFRMU19TU0xfSEFWRV9HQ00gKi8KKyNlbmRpZiAvKiBQU0FfV0FOVF9BTEdfU0hBXzM4NCAmJiBNQkVEVExTX1NTTF9IQVZFX0dDTSAqLwogCi0jaWYgZGVmaW5lZChNQkVEVExTX01EX0NBTl9TSEEyNTYpCisjaWYgZGVmaW5lZChQU0FfV0FOVF9BTEdfU0hBXzI1NikKICNpZiBkZWZpbmVkKE1CRURUTFNfU1NMX0hBVkVfR0NNKQogICAgIHsgTUJFRFRMU19UTFNfREhFX1JTQV9XSVRIX0FFU18xMjhfR0NNX1NIQTI1NiwgIlRMUy1ESEUtUlNBLVdJVEgtQUVTLTEyOC1HQ00tU0hBMjU2IiwKICAgICAgIE1CRURUTFNfQ0lQSEVSX0FFU18xMjhfR0NNLCBNQkVEVExTX01EX1NIQTI1NiwgTUJFRFRMU19LRVlfRVhDSEFOR0VfREhFX1JTQSwKQEAgLTYwOSw3ICs2MDksNyBAQAogICAgICAgMCwKICAgICAgIE1CRURUTFNfU1NMX1ZFUlNJT05fVExTMV8yLCBNQkVEVExTX1NTTF9WRVJTSU9OX1RMUzFfMiB9LAogI2VuZGlmIC8qIE1CRURUTFNfU1NMX0hBVkVfQ0JDICovCi0jZW5kaWYgLyogTUJFRFRMU19NRF9DQU5fU0hBMjU2ICovCisjZW5kaWYgLyogUFNBX1dBTlRfQUxHX1NIQV8yNTYgKi8KIAogI2lmIGRlZmluZWQoTUJFRFRMU19TU0xfSEFWRV9DQkMpCiAjaWYgZGVmaW5lZChNQkVEVExTX01EX0NBTl9TSEExKQpAQCAtNjQ2LDcgKzY0Niw3IEBACiAKICNpZiBkZWZpbmVkKE1CRURUTFNfU1NMX0hBVkVfQ0FNRUxMSUEpCiAjaWYgZGVmaW5lZChNQkVEVExTX1NTTF9IQVZFX0NCQykKLSNpZiBkZWZpbmVkKE1CRURUTFNfTURfQ0FOX1NIQTI1NikKKyNpZiBkZWZpbmVkKFBTQV9XQU5UX0FMR19TSEFfMjU2KQogICAgIHsgTUJFRFRMU19UTFNfREhFX1JTQV9XSVRIX0NBTUVMTElBXzEyOF9DQkNfU0hBMjU2LCAiVExTLURIRS1SU0EtV0lUSC1DQU1FTExJQS0xMjgtQ0JDLVNIQTI1NiIsCiAgICAgICBNQkVEVExTX0NJUEhFUl9DQU1FTExJQV8xMjhfQ0JDLCBNQkVEVExTX01EX1NIQTI1NiwgTUJFRFRMU19LRVlfRVhDSEFOR0VfREhFX1JTQSwKICAgICAgIDAsCkBAIC02NTYsNyArNjU2LDcgQEAKICAgICAgIE1CRURUTFNfQ0lQSEVSX0NBTUVMTElBXzI1Nl9DQkMsIE1CRURUTFNfTURfU0hBMjU2LCBNQkVEVExTX0tFWV9FWENIQU5HRV9ESEVfUlNBLAogICAgICAgMCwKICAgICAgIE1CRURUTFNfU1NMX1ZFUlNJT05fVExTMV8yLCBNQkVEVExTX1NTTF9WRVJTSU9OX1RMUzFfMiB9LAotI2VuZGlmIC8qIE1CRURUTFNfTURfQ0FOX1NIQTI1NiAqLworI2VuZGlmIC8qIFBTQV9XQU5UX0FMR19TSEFfMjU2ICovCiAKICNpZiBkZWZpbmVkKE1CRURUTFNfTURfQ0FOX1NIQTEpCiAgICAgeyBNQkVEVExTX1RMU19ESEVfUlNBX1dJVEhfQ0FNRUxMSUFfMTI4X0NCQ19TSEEsICJUTFMtREhFLVJTQS1XSVRILUNBTUVMTElBLTEyOC1DQkMtU0hBIiwKQEAgLTY3MSwxOSArNjcxLDE5IEBACiAjZW5kaWYgLyogTUJFRFRMU19NRF9DQU5fU0hBMSAqLwogI2VuZGlmIC8qIE1CRURUTFNfU1NMX0hBVkVfQ0JDICovCiAjaWYgZGVmaW5lZChNQkVEVExTX1NTTF9IQVZFX0dDTSkKLSNpZiBkZWZpbmVkKE1CRURUTFNfTURfQ0FOX1NIQTI1NikKKyNpZiBkZWZpbmVkKFBTQV9XQU5UX0FMR19TSEFfMjU2KQogICAgIHsgTUJFRFRMU19UTFNfREhFX1JTQV9XSVRIX0NBTUVMTElBXzEyOF9HQ01fU0hBMjU2LCAiVExTLURIRS1SU0EtV0lUSC1DQU1FTExJQS0xMjgtR0NNLVNIQTI1NiIsCiAgICAgICBNQkVEVExTX0NJUEhFUl9DQU1FTExJQV8xMjhfR0NNLCBNQkVEVExTX01EX1NIQTI1NiwgTUJFRFRMU19LRVlfRVhDSEFOR0VfREhFX1JTQSwKICAgICAgIDAsCiAgICAgICBNQkVEVExTX1NTTF9WRVJTSU9OX1RMUzFfMiwgTUJFRFRMU19TU0xfVkVSU0lPTl9UTFMxXzIgfSwKLSNlbmRpZiAvKiBNQkVEVExTX01EX0NBTl9TSEEyNTYgKi8KKyNlbmRpZiAvKiBQU0FfV0FOVF9BTEdfU0hBXzI1NiAqLwogCi0jaWYgZGVmaW5lZChNQkVEVExTX01EX0NBTl9TSEEzODQpCisjaWYgZGVmaW5lZChQU0FfV0FOVF9BTEdfU0hBXzM4NCkKICAgICB7IE1CRURUTFNfVExTX0RIRV9SU0FfV0lUSF9DQU1FTExJQV8yNTZfR0NNX1NIQTM4NCwgIlRMUy1ESEUtUlNBLVdJVEgtQ0FNRUxMSUEtMjU2LUdDTS1TSEEzODQiLAogICAgICAgTUJFRFRMU19DSVBIRVJfQ0FNRUxMSUFfMjU2X0dDTSwgTUJFRFRMU19NRF9TSEEzODQsIE1CRURUTFNfS0VZX0VYQ0hBTkdFX0RIRV9SU0EsCiAgICAgICAwLAogICAgICAgTUJFRFRMU19TU0xfVkVSU0lPTl9UTFMxXzIsIE1CRURUTFNfU1NMX1ZFUlNJT05fVExTMV8yIH0sCi0jZW5kaWYgLyogTUJFRFRMU19NRF9DQU5fU0hBMzg0ICovCisjZW5kaWYgLyogUFNBX1dBTlRfQUxHX1NIQV8zODQgKi8KICNlbmRpZiAvKiBNQkVEVExTX1NTTF9IQVZFX0dDTSAqLwogI2VuZGlmIC8qIE1CRURUTFNfU1NMX0hBVkVfQ0FNRUxMSUEgKi8KIApAQCAtNjkxLDE1ICs2OTEsMTUgQEAKIAogI2lmIGRlZmluZWQoTUJFRFRMU19LRVlfRVhDSEFOR0VfUlNBX0VOQUJMRUQpCiAjaWYgZGVmaW5lZChNQkVEVExTX1NTTF9IQVZFX0FFUykKLSNpZiBkZWZpbmVkKE1CRURUTFNfTURfQ0FOX1NIQTM4NCkgJiYgXAorI2lmIGRlZmluZWQoUFNBX1dBTlRfQUxHX1NIQV8zODQpICYmIFwKICAgICBkZWZpbmVkKE1CRURUTFNfU1NMX0hBVkVfR0NNKQogICAgIHsgTUJFRFRMU19UTFNfUlNBX1dJVEhfQUVTXzI1Nl9HQ01fU0hBMzg0LCAiVExTLVJTQS1XSVRILUFFUy0yNTYtR0NNLVNIQTM4NCIsCiAgICAgICBNQkVEVExTX0NJUEhFUl9BRVNfMjU2X0dDTSwgTUJFRFRMU19NRF9TSEEzODQsIE1CRURUTFNfS0VZX0VYQ0hBTkdFX1JTQSwKICAgICAgIDAsCiAgICAgICBNQkVEVExTX1NTTF9WRVJTSU9OX1RMUzFfMiwgTUJFRFRMU19TU0xfVkVSU0lPTl9UTFMxXzIgfSwKLSNlbmRpZiAvKiBNQkVEVExTX01EX0NBTl9TSEEzODQgJiYgTUJFRFRMU19TU0xfSEFWRV9HQ00gKi8KKyNlbmRpZiAvKiBQU0FfV0FOVF9BTEdfU0hBXzM4NCAmJiBNQkVEVExTX1NTTF9IQVZFX0dDTSAqLwogCi0jaWYgZGVmaW5lZChNQkVEVExTX01EX0NBTl9TSEEyNTYpCisjaWYgZGVmaW5lZChQU0FfV0FOVF9BTEdfU0hBXzI1NikKICNpZiBkZWZpbmVkKE1CRURUTFNfU1NMX0hBVkVfR0NNKQogICAgIHsgTUJFRFRMU19UTFNfUlNBX1dJVEhfQUVTXzEyOF9HQ01fU0hBMjU2LCAiVExTLVJTQS1XSVRILUFFUy0xMjgtR0NNLVNIQTI1NiIsCiAgICAgICBNQkVEVExTX0NJUEhFUl9BRVNfMTI4X0dDTSwgTUJFRFRMU19NRF9TSEEyNTYsIE1CRURUTFNfS0VZX0VYQ0hBTkdFX1JTQSwKQEAgLTcxOCw3ICs3MTgsNyBAQAogICAgICAgMCwKICAgICAgIE1CRURUTFNfU1NMX1ZFUlNJT05fVExTMV8yLCBNQkVEVExTX1NTTF9WRVJTSU9OX1RMUzFfMiB9LAogI2VuZGlmIC8qIE1CRURUTFNfU1NMX0hBVkVfQ0JDICovCi0jZW5kaWYgLyogTUJFRFRMU19NRF9DQU5fU0hBMjU2ICovCisjZW5kaWYgLyogUFNBX1dBTlRfQUxHX1NIQV8yNTYgKi8KIAogI2lmIGRlZmluZWQoTUJFRFRMU19NRF9DQU5fU0hBMSkKICNpZiBkZWZpbmVkKE1CRURUTFNfU1NMX0hBVkVfQ0JDKQpAQCAtNzU1LDcgKzc1NSw3IEBACiAKICNpZiBkZWZpbmVkKE1CRURUTFNfU1NMX0hBVkVfQ0FNRUxMSUEpCiAjaWYgZGVmaW5lZChNQkVEVExTX1NTTF9IQVZFX0NCQykKLSNpZiBkZWZpbmVkKE1CRURUTFNfTURfQ0FOX1NIQTI1NikKKyNpZiBkZWZpbmVkKFBTQV9XQU5UX0FMR19TSEFfMjU2KQogICAgIHsgTUJFRFRMU19UTFNfUlNBX1dJVEhfQ0FNRUxMSUFfMTI4X0NCQ19TSEEyNTYsICJUTFMtUlNBLVdJVEgtQ0FNRUxMSUEtMTI4LUNCQy1TSEEyNTYiLAogICAgICAgTUJFRFRMU19DSVBIRVJfQ0FNRUxMSUFfMTI4X0NCQywgTUJFRFRMU19NRF9TSEEyNTYsIE1CRURUTFNfS0VZX0VYQ0hBTkdFX1JTQSwKICAgICAgIDAsCkBAIC03NjUsNyArNzY1LDcgQEAKICAgICAgIE1CRURUTFNfQ0lQSEVSX0NBTUVMTElBXzI1Nl9DQkMsIE1CRURUTFNfTURfU0hBMjU2LCBNQkVEVExTX0tFWV9FWENIQU5HRV9SU0EsCiAgICAgICAwLAogICAgICAgTUJFRFRMU19TU0xfVkVSU0lPTl9UTFMxXzIsIE1CRURUTFNfU1NMX1ZFUlNJT05fVExTMV8yIH0sCi0jZW5kaWYgLyogTUJFRFRMU19NRF9DQU5fU0hBMjU2ICovCisjZW5kaWYgLyogUFNBX1dBTlRfQUxHX1NIQV8yNTYgKi8KIAogI2lmIGRlZmluZWQoTUJFRFRMU19NRF9DQU5fU0hBMSkKICAgICB7IE1CRURUTFNfVExTX1JTQV9XSVRIX0NBTUVMTElBXzEyOF9DQkNfU0hBLCAiVExTLVJTQS1XSVRILUNBTUVMTElBLTEyOC1DQkMtU0hBIiwKQEAgLTc4MSwxOSArNzgxLDE5IEBACiAjZW5kaWYgLyogTUJFRFRMU19TU0xfSEFWRV9DQkMgKi8KIAogI2lmIGRlZmluZWQoTUJFRFRMU19TU0xfSEFWRV9HQ00pCi0jaWYgZGVmaW5lZChNQkVEVExTX01EX0NBTl9TSEEyNTYpCisjaWYgZGVmaW5lZChQU0FfV0FOVF9BTEdfU0hBXzI1NikKICAgICB7IE1CRURUTFNfVExTX1JTQV9XSVRIX0NBTUVMTElBXzEyOF9HQ01fU0hBMjU2LCAiVExTLVJTQS1XSVRILUNBTUVMTElBLTEyOC1HQ00tU0hBMjU2IiwKICAgICAgIE1CRURUTFNfQ0lQSEVSX0NBTUVMTElBXzEyOF9HQ00sIE1CRURUTFNfTURfU0hBMjU2LCBNQkVEVExTX0tFWV9FWENIQU5HRV9SU0EsCiAgICAgICAwLAogICAgICAgTUJFRFRMU19TU0xfVkVSU0lPTl9UTFMxXzIsIE1CRURUTFNfU1NMX1ZFUlNJT05fVExTMV8yIH0sCi0jZW5kaWYgLyogTUJFRFRMU19NRF9DQU5fU0hBMjU2ICovCisjZW5kaWYgLyogUFNBX1dBTlRfQUxHX1NIQV8yNTYgKi8KIAotI2lmIGRlZmluZWQoTUJFRFRMU19NRF9DQU5fU0hBMzg0KQorI2lmIGRlZmluZWQoUFNBX1dBTlRfQUxHX1NIQV8zODQpCiAgICAgeyBNQkVEVExTX1RMU19SU0FfV0lUSF9DQU1FTExJQV8yNTZfR0NNX1NIQTM4NCwgIlRMUy1SU0EtV0lUSC1DQU1FTExJQS0yNTYtR0NNLVNIQTM4NCIsCiAgICAgICBNQkVEVExTX0NJUEhFUl9DQU1FTExJQV8yNTZfR0NNLCBNQkVEVExTX01EX1NIQTM4NCwgTUJFRFRMU19LRVlfRVhDSEFOR0VfUlNBLAogICAgICAgMCwKICAgICAgIE1CRURUTFNfU1NMX1ZFUlNJT05fVExTMV8yLCBNQkVEVExTX1NTTF9WRVJTSU9OX1RMUzFfMiB9LAotI2VuZGlmIC8qIE1CRURUTFNfTURfQ0FOX1NIQTM4NCAqLworI2VuZGlmIC8qIFBTQV9XQU5UX0FMR19TSEFfMzg0ICovCiAjZW5kaWYgLyogTUJFRFRMU19TU0xfSEFWRV9HQ00gKi8KICNlbmRpZiAvKiBNQkVEVExTX1NTTF9IQVZFX0NBTUVMTElBICovCiAKQEAgLTgxMyw3ICs4MTMsNyBAQAogICAgICAgTUJFRFRMU19TU0xfVkVSU0lPTl9UTFMxXzIsIE1CRURUTFNfU1NMX1ZFUlNJT05fVExTMV8yIH0sCiAjZW5kaWYgLyogTUJFRFRMU19TU0xfSEFWRV9DQkMgKi8KICNlbmRpZiAvKiBNQkVEVExTX01EX0NBTl9TSEExICovCi0jaWYgZGVmaW5lZChNQkVEVExTX01EX0NBTl9TSEEyNTYpCisjaWYgZGVmaW5lZChQU0FfV0FOVF9BTEdfU0hBXzI1NikKICNpZiBkZWZpbmVkKE1CRURUTFNfU1NMX0hBVkVfQ0JDKQogICAgIHsgTUJFRFRMU19UTFNfRUNESF9SU0FfV0lUSF9BRVNfMTI4X0NCQ19TSEEyNTYsICJUTFMtRUNESC1SU0EtV0lUSC1BRVMtMTI4LUNCQy1TSEEyNTYiLAogICAgICAgTUJFRFRMU19DSVBIRVJfQUVTXzEyOF9DQkMsIE1CRURUTFNfTURfU0hBMjU2LCBNQkVEVExTX0tFWV9FWENIQU5HRV9FQ0RIX1JTQSwKQEAgLTgyNiw4ICs4MjYsOCBAQAogICAgICAgMCwKICAgICAgIE1CRURUTFNfU1NMX1ZFUlNJT05fVExTMV8yLCBNQkVEVExTX1NTTF9WRVJTSU9OX1RMUzFfMiB9LAogI2VuZGlmIC8qIE1CRURUTFNfU1NMX0hBVkVfR0NNICovCi0jZW5kaWYgLyogTUJFRFRMU19NRF9DQU5fU0hBMjU2ICovCi0jaWYgZGVmaW5lZChNQkVEVExTX01EX0NBTl9TSEEzODQpCisjZW5kaWYgLyogUFNBX1dBTlRfQUxHX1NIQV8yNTYgKi8KKyNpZiBkZWZpbmVkKFBTQV9XQU5UX0FMR19TSEFfMzg0KQogI2lmIGRlZmluZWQoTUJFRFRMU19TU0xfSEFWRV9DQkMpCiAgICAgeyBNQkVEVExTX1RMU19FQ0RIX1JTQV9XSVRIX0FFU18yNTZfQ0JDX1NIQTM4NCwgIlRMUy1FQ0RILVJTQS1XSVRILUFFUy0yNTYtQ0JDLVNIQTM4NCIsCiAgICAgICBNQkVEVExTX0NJUEhFUl9BRVNfMjU2X0NCQywgTUJFRFRMU19NRF9TSEEzODQsIE1CRURUTFNfS0VZX0VYQ0hBTkdFX0VDREhfUlNBLApAQCAtODQwLDQyICs4NDAsNDIgQEAKICAgICAgIDAsCiAgICAgICBNQkVEVExTX1NTTF9WRVJTSU9OX1RMUzFfMiwgTUJFRFRMU19TU0xfVkVSU0lPTl9UTFMxXzIgfSwKICNlbmRpZiAvKiBNQkVEVExTX1NTTF9IQVZFX0dDTSAqLwotI2VuZGlmIC8qIE1CRURUTFNfTURfQ0FOX1NIQTM4NCAqLworI2VuZGlmIC8qIFBTQV9XQU5UX0FMR19TSEFfMzg0ICovCiAjZW5kaWYgLyogTUJFRFRMU19TU0xfSEFWRV9BRVMgKi8KIAogI2lmIGRlZmluZWQoTUJFRFRMU19TU0xfSEFWRV9DQU1FTExJQSkKICNpZiBkZWZpbmVkKE1CRURUTFNfU1NMX0hBVkVfQ0JDKQotI2lmIGRlZmluZWQoTUJFRFRMU19NRF9DQU5fU0hBMjU2KQorI2lmIGRlZmluZWQoUFNBX1dBTlRfQUxHX1NIQV8yNTYpCiAgICAgeyBNQkVEVExTX1RMU19FQ0RIX1JTQV9XSVRIX0NBTUVMTElBXzEyOF9DQkNfU0hBMjU2LAogICAgICAgIlRMUy1FQ0RILVJTQS1XSVRILUNBTUVMTElBLTEyOC1DQkMtU0hBMjU2IiwKICAgICAgIE1CRURUTFNfQ0lQSEVSX0NBTUVMTElBXzEyOF9DQkMsIE1CRURUTFNfTURfU0hBMjU2LCBNQkVEVExTX0tFWV9FWENIQU5HRV9FQ0RIX1JTQSwKICAgICAgIDAsCiAgICAgICBNQkVEVExTX1NTTF9WRVJTSU9OX1RMUzFfMiwgTUJFRFRMU19TU0xfVkVSU0lPTl9UTFMxXzIgfSwKLSNlbmRpZiAvKiBNQkVEVExTX01EX0NBTl9TSEEyNTYgKi8KLSNpZiBkZWZpbmVkKE1CRURUTFNfTURfQ0FOX1NIQTM4NCkKKyNlbmRpZiAvKiBQU0FfV0FOVF9BTEdfU0hBXzI1NiAqLworI2lmIGRlZmluZWQoUFNBX1dBTlRfQUxHX1NIQV8zODQpCiAgICAgeyBNQkVEVExTX1RMU19FQ0RIX1JTQV9XSVRIX0NBTUVMTElBXzI1Nl9DQkNfU0hBMzg0LAogICAgICAgIlRMUy1FQ0RILVJTQS1XSVRILUNBTUVMTElBLTI1Ni1DQkMtU0hBMzg0IiwKICAgICAgIE1CRURUTFNfQ0lQSEVSX0NBTUVMTElBXzI1Nl9DQkMsIE1CRURUTFNfTURfU0hBMzg0LCBNQkVEVExTX0tFWV9FWENIQU5HRV9FQ0RIX1JTQSwKICAgICAgIDAsCiAgICAgICBNQkVEVExTX1NTTF9WRVJTSU9OX1RMUzFfMiwgTUJFRFRMU19TU0xfVkVSU0lPTl9UTFMxXzIgfSwKLSNlbmRpZiAvKiBNQkVEVExTX01EX0NBTl9TSEEzODQgKi8KKyNlbmRpZiAvKiBQU0FfV0FOVF9BTEdfU0hBXzM4NCAqLwogI2VuZGlmIC8qIE1CRURUTFNfU1NMX0hBVkVfQ0JDICovCiAKICNpZiBkZWZpbmVkKE1CRURUTFNfU1NMX0hBVkVfR0NNKQotI2lmIGRlZmluZWQoTUJFRFRMU19NRF9DQU5fU0hBMjU2KQorI2lmIGRlZmluZWQoUFNBX1dBTlRfQUxHX1NIQV8yNTYpCiAgICAgeyBNQkVEVExTX1RMU19FQ0RIX1JTQV9XSVRIX0NBTUVMTElBXzEyOF9HQ01fU0hBMjU2LAogICAgICAgIlRMUy1FQ0RILVJTQS1XSVRILUNBTUVMTElBLTEyOC1HQ00tU0hBMjU2IiwKICAgICAgIE1CRURUTFNfQ0lQSEVSX0NBTUVMTElBXzEyOF9HQ00sIE1CRURUTFNfTURfU0hBMjU2LCBNQkVEVExTX0tFWV9FWENIQU5HRV9FQ0RIX1JTQSwKICAgICAgIDAsCiAgICAgICBNQkVEVExTX1NTTF9WRVJTSU9OX1RMUzFfMiwgTUJFRFRMU19TU0xfVkVSU0lPTl9UTFMxXzIgfSwKLSNlbmRpZiAvKiBNQkVEVExTX01EX0NBTl9TSEEyNTYgKi8KLSNpZiBkZWZpbmVkKE1CRURUTFNfTURfQ0FOX1NIQTM4NCkKKyNlbmRpZiAvKiBQU0FfV0FOVF9BTEdfU0hBXzI1NiAqLworI2lmIGRlZmluZWQoUFNBX1dBTlRfQUxHX1NIQV8zODQpCiAgICAgeyBNQkVEVExTX1RMU19FQ0RIX1JTQV9XSVRIX0NBTUVMTElBXzI1Nl9HQ01fU0hBMzg0LAogICAgICAgIlRMUy1FQ0RILVJTQS1XSVRILUNBTUVMTElBLTI1Ni1HQ00tU0hBMzg0IiwKICAgICAgIE1CRURUTFNfQ0lQSEVSX0NBTUVMTElBXzI1Nl9HQ00sIE1CRURUTFNfTURfU0hBMzg0LCBNQkVEVExTX0tFWV9FWENIQU5HRV9FQ0RIX1JTQSwKICAgICAgIDAsCiAgICAgICBNQkVEVExTX1NTTF9WRVJTSU9OX1RMUzFfMiwgTUJFRFRMU19TU0xfVkVSU0lPTl9UTFMxXzIgfSwKLSNlbmRpZiAvKiBNQkVEVExTX01EX0NBTl9TSEEzODQgKi8KKyNlbmRpZiAvKiBQU0FfV0FOVF9BTEdfU0hBXzM4NCAqLwogI2VuZGlmIC8qIE1CRURUTFNfU1NMX0hBVkVfR0NNICovCiAjZW5kaWYgLyogTUJFRFRMU19TU0xfSEFWRV9DQU1FTExJQSAqLwogCkBAIC05MDMsNyArOTAzLDcgQEAKICAgICAgIE1CRURUTFNfU1NMX1ZFUlNJT05fVExTMV8yLCBNQkVEVExTX1NTTF9WRVJTSU9OX1RMUzFfMiB9LAogI2VuZGlmIC8qIE1CRURUTFNfU1NMX0hBVkVfQ0JDICovCiAjZW5kaWYgLyogTUJFRFRMU19NRF9DQU5fU0hBMSAqLwotI2lmIGRlZmluZWQoTUJFRFRMU19NRF9DQU5fU0hBMjU2KQorI2lmIGRlZmluZWQoUFNBX1dBTlRfQUxHX1NIQV8yNTYpCiAjaWYgZGVmaW5lZChNQkVEVExTX1NTTF9IQVZFX0NCQykKICAgICB7IE1CRURUTFNfVExTX0VDREhfRUNEU0FfV0lUSF9BRVNfMTI4X0NCQ19TSEEyNTYsICJUTFMtRUNESC1FQ0RTQS1XSVRILUFFUy0xMjgtQ0JDLVNIQTI1NiIsCiAgICAgICBNQkVEVExTX0NJUEhFUl9BRVNfMTI4X0NCQywgTUJFRFRMU19NRF9TSEEyNTYsIE1CRURUTFNfS0VZX0VYQ0hBTkdFX0VDREhfRUNEU0EsCkBAIC05MTYsOCArOTE2LDggQEAKICAgICAgIDAsCiAgICAgICBNQkVEVExTX1NTTF9WRVJTSU9OX1RMUzFfMiwgTUJFRFRMU19TU0xfVkVSU0lPTl9UTFMxXzIgfSwKICNlbmRpZiAvKiBNQkVEVExTX1NTTF9IQVZFX0dDTSAqLwotI2VuZGlmIC8qIE1CRURUTFNfTURfQ0FOX1NIQTI1NiAqLwotI2lmIGRlZmluZWQoTUJFRFRMU19NRF9DQU5fU0hBMzg0KQorI2VuZGlmIC8qIFBTQV9XQU5UX0FMR19TSEFfMjU2ICovCisjaWYgZGVmaW5lZChQU0FfV0FOVF9BTEdfU0hBXzM4NCkKICNpZiBkZWZpbmVkKE1CRURUTFNfU1NMX0hBVkVfQ0JDKQogICAgIHsgTUJFRFRMU19UTFNfRUNESF9FQ0RTQV9XSVRIX0FFU18yNTZfQ0JDX1NIQTM4NCwgIlRMUy1FQ0RILUVDRFNBLVdJVEgtQUVTLTI1Ni1DQkMtU0hBMzg0IiwKICAgICAgIE1CRURUTFNfQ0lQSEVSX0FFU18yNTZfQ0JDLCBNQkVEVExTX01EX1NIQTM4NCwgTUJFRFRMU19LRVlfRVhDSEFOR0VfRUNESF9FQ0RTQSwKQEAgLTkzMCw0MiArOTMwLDQyIEBACiAgICAgICAwLAogICAgICAgTUJFRFRMU19TU0xfVkVSU0lPTl9UTFMxXzIsIE1CRURUTFNfU1NMX1ZFUlNJT05fVExTMV8yIH0sCiAjZW5kaWYgLyogTUJFRFRMU19TU0xfSEFWRV9HQ00gKi8KLSNlbmRpZiAvKiBNQkVEVExTX01EX0NBTl9TSEEzODQgKi8KKyNlbmRpZiAvKiBQU0FfV0FOVF9BTEdfU0hBXzM4NCAqLwogI2VuZGlmIC8qIE1CRURUTFNfU1NMX0hBVkVfQUVTICovCiAKICNpZiBkZWZpbmVkKE1CRURUTFNfU1NMX0hBVkVfQ0FNRUxMSUEpCiAjaWYgZGVmaW5lZChNQkVEVExTX1NTTF9IQVZFX0NCQykKLSNpZiBkZWZpbmVkKE1CRURUTFNfTURfQ0FOX1NIQTI1NikKKyNpZiBkZWZpbmVkKFBTQV9XQU5UX0FMR19TSEFfMjU2KQogICAgIHsgTUJFRFRMU19UTFNfRUNESF9FQ0RTQV9XSVRIX0NBTUVMTElBXzEyOF9DQkNfU0hBMjU2LAogICAgICAgIlRMUy1FQ0RILUVDRFNBLVdJVEgtQ0FNRUxMSUEtMTI4LUNCQy1TSEEyNTYiLAogICAgICAgTUJFRFRMU19DSVBIRVJfQ0FNRUxMSUFfMTI4X0NCQywgTUJFRFRMU19NRF9TSEEyNTYsIE1CRURUTFNfS0VZX0VYQ0hBTkdFX0VDREhfRUNEU0EsCiAgICAgICAwLAogICAgICAgTUJFRFRMU19TU0xfVkVSU0lPTl9UTFMxXzIsIE1CRURUTFNfU1NMX1ZFUlNJT05fVExTMV8yIH0sCi0jZW5kaWYgLyogTUJFRFRMU19NRF9DQU5fU0hBMjU2ICovCi0jaWYgZGVmaW5lZChNQkVEVExTX01EX0NBTl9TSEEzODQpCisjZW5kaWYgLyogUFNBX1dBTlRfQUxHX1NIQV8yNTYgKi8KKyNpZiBkZWZpbmVkKFBTQV9XQU5UX0FMR19TSEFfMzg0KQogICAgIHsgTUJFRFRMU19UTFNfRUNESF9FQ0RTQV9XSVRIX0NBTUVMTElBXzI1Nl9DQkNfU0hBMzg0LAogICAgICAgIlRMUy1FQ0RILUVDRFNBLVdJVEgtQ0FNRUxMSUEtMjU2LUNCQy1TSEEzODQiLAogICAgICAgTUJFRFRMU19DSVBIRVJfQ0FNRUxMSUFfMjU2X0NCQywgTUJFRFRMU19NRF9TSEEzODQsIE1CRURUTFNfS0VZX0VYQ0hBTkdFX0VDREhfRUNEU0EsCiAgICAgICAwLAogICAgICAgTUJFRFRMU19TU0xfVkVSU0lPTl9UTFMxXzIsIE1CRURUTFNfU1NMX1ZFUlNJT05fVExTMV8yIH0sCi0jZW5kaWYgLyogTUJFRFRMU19NRF9DQU5fU0hBMzg0ICovCisjZW5kaWYgLyogUFNBX1dBTlRfQUxHX1NIQV8zODQgKi8KICNlbmRpZiAvKiBNQkVEVExTX1NTTF9IQVZFX0NCQyAqLwogCiAjaWYgZGVmaW5lZChNQkVEVExTX1NTTF9IQVZFX0dDTSkKLSNpZiBkZWZpbmVkKE1CRURUTFNfTURfQ0FOX1NIQTI1NikKKyNpZiBkZWZpbmVkKFBTQV9XQU5UX0FMR19TSEFfMjU2KQogICAgIHsgTUJFRFRMU19UTFNfRUNESF9FQ0RTQV9XSVRIX0NBTUVMTElBXzEyOF9HQ01fU0hBMjU2LAogICAgICAgIlRMUy1FQ0RILUVDRFNBLVdJVEgtQ0FNRUxMSUEtMTI4LUdDTS1TSEEyNTYiLAogICAgICAgTUJFRFRMU19DSVBIRVJfQ0FNRUxMSUFfMTI4X0dDTSwgTUJFRFRMU19NRF9TSEEyNTYsIE1CRURUTFNfS0VZX0VYQ0hBTkdFX0VDREhfRUNEU0EsCiAgICAgICAwLAogICAgICAgTUJFRFRMU19TU0xfVkVSU0lPTl9UTFMxXzIsIE1CRURUTFNfU1NMX1ZFUlNJT05fVExTMV8yIH0sCi0jZW5kaWYgLyogTUJFRFRMU19NRF9DQU5fU0hBMjU2ICovCi0jaWYgZGVmaW5lZChNQkVEVExTX01EX0NBTl9TSEEzODQpCisjZW5kaWYgLyogUFNBX1dBTlRfQUxHX1NIQV8yNTYgKi8KKyNpZiBkZWZpbmVkKFBTQV9XQU5UX0FMR19TSEFfMzg0KQogICAgIHsgTUJFRFRMU19UTFNfRUNESF9FQ0RTQV9XSVRIX0NBTUVMTElBXzI1Nl9HQ01fU0hBMzg0LAogICAgICAgIlRMUy1FQ0RILUVDRFNBLVdJVEgtQ0FNRUxMSUEtMjU2LUdDTS1TSEEzODQiLAogICAgICAgTUJFRFRMU19DSVBIRVJfQ0FNRUxMSUFfMjU2X0dDTSwgTUJFRFRMU19NRF9TSEEzODQsIE1CRURUTFNfS0VZX0VYQ0hBTkdFX0VDREhfRUNEU0EsCiAgICAgICAwLAogICAgICAgTUJFRFRMU19TU0xfVkVSU0lPTl9UTFMxXzIsIE1CRURUTFNfU1NMX1ZFUlNJT05fVExTMV8yIH0sCi0jZW5kaWYgLyogTUJFRFRMU19NRF9DQU5fU0hBMzg0ICovCisjZW5kaWYgLyogUFNBX1dBTlRfQUxHX1NIQV8zODQgKi8KICNlbmRpZiAvKiBNQkVEVExTX1NTTF9IQVZFX0dDTSAqLwogI2VuZGlmIC8qIE1CRURUTFNfU1NMX0hBVkVfQ0FNRUxMSUEgKi8KIApAQCAtOTgyLDM1ICs5ODIsMzUgQEAKICNpZiBkZWZpbmVkKE1CRURUTFNfS0VZX0VYQ0hBTkdFX1BTS19FTkFCTEVEKQogI2lmIGRlZmluZWQoTUJFRFRMU19TU0xfSEFWRV9BRVMpCiAjaWYgZGVmaW5lZChNQkVEVExTX1NTTF9IQVZFX0dDTSkKLSNpZiBkZWZpbmVkKE1CRURUTFNfTURfQ0FOX1NIQTI1NikKKyNpZiBkZWZpbmVkKFBTQV9XQU5UX0FMR19TSEFfMjU2KQogICAgIHsgTUJFRFRMU19UTFNfUFNLX1dJVEhfQUVTXzEyOF9HQ01fU0hBMjU2LCAiVExTLVBTSy1XSVRILUFFUy0xMjgtR0NNLVNIQTI1NiIsCiAgICAgICBNQkVEVExTX0NJUEhFUl9BRVNfMTI4X0dDTSwgTUJFRFRMU19NRF9TSEEyNTYsIE1CRURUTFNfS0VZX0VYQ0hBTkdFX1BTSywKICAgICAgIDAsCiAgICAgICBNQkVEVExTX1NTTF9WRVJTSU9OX1RMUzFfMiwgTUJFRFRMU19TU0xfVkVSU0lPTl9UTFMxXzIgfSwKLSNlbmRpZiAvKiBNQkVEVExTX01EX0NBTl9TSEEyNTYgKi8KKyNlbmRpZiAvKiBQU0FfV0FOVF9BTEdfU0hBXzI1NiAqLwogCi0jaWYgZGVmaW5lZChNQkVEVExTX01EX0NBTl9TSEEzODQpCisjaWYgZGVmaW5lZChQU0FfV0FOVF9BTEdfU0hBXzM4NCkKICAgICB7IE1CRURUTFNfVExTX1BTS19XSVRIX0FFU18yNTZfR0NNX1NIQTM4NCwgIlRMUy1QU0stV0lUSC1BRVMtMjU2LUdDTS1TSEEzODQiLAogICAgICAgTUJFRFRMU19DSVBIRVJfQUVTXzI1Nl9HQ00sIE1CRURUTFNfTURfU0hBMzg0LCBNQkVEVExTX0tFWV9FWENIQU5HRV9QU0ssCiAgICAgICAwLAogICAgICAgTUJFRFRMU19TU0xfVkVSU0lPTl9UTFMxXzIsIE1CRURUTFNfU1NMX1ZFUlNJT05fVExTMV8yIH0sCi0jZW5kaWYgLyogTUJFRFRMU19NRF9DQU5fU0hBMzg0ICovCisjZW5kaWYgLyogUFNBX1dBTlRfQUxHX1NIQV8zODQgKi8KICNlbmRpZiAvKiBNQkVEVExTX1NTTF9IQVZFX0dDTSAqLwogCiAjaWYgZGVmaW5lZChNQkVEVExTX1NTTF9IQVZFX0NCQykKLSNpZiBkZWZpbmVkKE1CRURUTFNfTURfQ0FOX1NIQTI1NikKKyNpZiBkZWZpbmVkKFBTQV9XQU5UX0FMR19TSEFfMjU2KQogICAgIHsgTUJFRFRMU19UTFNfUFNLX1dJVEhfQUVTXzEyOF9DQkNfU0hBMjU2LCAiVExTLVBTSy1XSVRILUFFUy0xMjgtQ0JDLVNIQTI1NiIsCiAgICAgICBNQkVEVExTX0NJUEhFUl9BRVNfMTI4X0NCQywgTUJFRFRMU19NRF9TSEEyNTYsIE1CRURUTFNfS0VZX0VYQ0hBTkdFX1BTSywKICAgICAgIDAsCiAgICAgICBNQkVEVExTX1NTTF9WRVJTSU9OX1RMUzFfMiwgTUJFRFRMU19TU0xfVkVSU0lPTl9UTFMxXzIgfSwKLSNlbmRpZiAvKiBNQkVEVExTX01EX0NBTl9TSEEyNTYgKi8KKyNlbmRpZiAvKiBQU0FfV0FOVF9BTEdfU0hBXzI1NiAqLwogCi0jaWYgZGVmaW5lZChNQkVEVExTX01EX0NBTl9TSEEzODQpCisjaWYgZGVmaW5lZChQU0FfV0FOVF9BTEdfU0hBXzM4NCkKICAgICB7IE1CRURUTFNfVExTX1BTS19XSVRIX0FFU18yNTZfQ0JDX1NIQTM4NCwgIlRMUy1QU0stV0lUSC1BRVMtMjU2LUNCQy1TSEEzODQiLAogICAgICAgTUJFRFRMU19DSVBIRVJfQUVTXzI1Nl9DQkMsIE1CRURUTFNfTURfU0hBMzg0LCBNQkVEVExTX0tFWV9FWENIQU5HRV9QU0ssCiAgICAgICAwLAogICAgICAgTUJFRFRMU19TU0xfVkVSU0lPTl9UTFMxXzIsIE1CRURUTFNfU1NMX1ZFUlNJT05fVExTMV8yIH0sCi0jZW5kaWYgLyogTUJFRFRMU19NRF9DQU5fU0hBMzg0ICovCisjZW5kaWYgLyogUFNBX1dBTlRfQUxHX1NIQV8zODQgKi8KIAogI2lmIGRlZmluZWQoTUJFRFRMU19NRF9DQU5fU0hBMSkKICAgICB7IE1CRURUTFNfVExTX1BTS19XSVRIX0FFU18xMjhfQ0JDX1NIQSwgIlRMUy1QU0stV0lUSC1BRVMtMTI4LUNCQy1TSEEiLApAQCAtMTA0NiwzNSArMTA0NiwzNSBAQAogCiAjaWYgZGVmaW5lZChNQkVEVExTX1NTTF9IQVZFX0NBTUVMTElBKQogI2lmIGRlZmluZWQoTUJFRFRMU19TU0xfSEFWRV9DQkMpCi0jaWYgZGVmaW5lZChNQkVEVExTX01EX0NBTl9TSEEyNTYpCisjaWYgZGVmaW5lZChQU0FfV0FOVF9BTEdfU0hBXzI1NikKICAgICB7IE1CRURUTFNfVExTX1BTS19XSVRIX0NBTUVMTElBXzEyOF9DQkNfU0hBMjU2LCAiVExTLVBTSy1XSVRILUNBTUVMTElBLTEyOC1DQkMtU0hBMjU2IiwKICAgICAgIE1CRURUTFNfQ0lQSEVSX0NBTUVMTElBXzEyOF9DQkMsIE1CRURUTFNfTURfU0hBMjU2LCBNQkVEVExTX0tFWV9FWENIQU5HRV9QU0ssCiAgICAgICAwLAogICAgICAgTUJFRFRMU19TU0xfVkVSU0lPTl9UTFMxXzIsIE1CRURUTFNfU1NMX1ZFUlNJT05fVExTMV8yIH0sCi0jZW5kaWYgLyogTUJFRFRMU19NRF9DQU5fU0hBMjU2ICovCisjZW5kaWYgLyogUFNBX1dBTlRfQUxHX1NIQV8yNTYgKi8KIAotI2lmIGRlZmluZWQoTUJFRFRMU19NRF9DQU5fU0hBMzg0KQorI2lmIGRlZmluZWQoUFNBX1dBTlRfQUxHX1NIQV8zODQpCiAgICAgeyBNQkVEVExTX1RMU19QU0tfV0lUSF9DQU1FTExJQV8yNTZfQ0JDX1NIQTM4NCwgIlRMUy1QU0stV0lUSC1DQU1FTExJQS0yNTYtQ0JDLVNIQTM4NCIsCiAgICAgICBNQkVEVExTX0NJUEhFUl9DQU1FTExJQV8yNTZfQ0JDLCBNQkVEVExTX01EX1NIQTM4NCwgTUJFRFRMU19LRVlfRVhDSEFOR0VfUFNLLAogICAgICAgMCwKICAgICAgIE1CRURUTFNfU1NMX1ZFUlNJT05fVExTMV8yLCBNQkVEVExTX1NTTF9WRVJTSU9OX1RMUzFfMiB9LAotI2VuZGlmIC8qIE1CRURUTFNfTURfQ0FOX1NIQTM4NCAqLworI2VuZGlmIC8qIFBTQV9XQU5UX0FMR19TSEFfMzg0ICovCiAjZW5kaWYgLyogTUJFRFRMU19TU0xfSEFWRV9DQkMgKi8KIAogI2lmIGRlZmluZWQoTUJFRFRMU19TU0xfSEFWRV9HQ00pCi0jaWYgZGVmaW5lZChNQkVEVExTX01EX0NBTl9TSEEyNTYpCisjaWYgZGVmaW5lZChQU0FfV0FOVF9BTEdfU0hBXzI1NikKICAgICB7IE1CRURUTFNfVExTX1BTS19XSVRIX0NBTUVMTElBXzEyOF9HQ01fU0hBMjU2LCAiVExTLVBTSy1XSVRILUNBTUVMTElBLTEyOC1HQ00tU0hBMjU2IiwKICAgICAgIE1CRURUTFNfQ0lQSEVSX0NBTUVMTElBXzEyOF9HQ00sIE1CRURUTFNfTURfU0hBMjU2LCBNQkVEVExTX0tFWV9FWENIQU5HRV9QU0ssCiAgICAgICAwLAogICAgICAgTUJFRFRMU19TU0xfVkVSU0lPTl9UTFMxXzIsIE1CRURUTFNfU1NMX1ZFUlNJT05fVExTMV8yIH0sCi0jZW5kaWYgLyogTUJFRFRMU19NRF9DQU5fU0hBMjU2ICovCisjZW5kaWYgLyogUFNBX1dBTlRfQUxHX1NIQV8yNTYgKi8KIAotI2lmIGRlZmluZWQoTUJFRFRMU19NRF9DQU5fU0hBMzg0KQorI2lmIGRlZmluZWQoUFNBX1dBTlRfQUxHX1NIQV8zODQpCiAgICAgeyBNQkVEVExTX1RMU19QU0tfV0lUSF9DQU1FTExJQV8yNTZfR0NNX1NIQTM4NCwgIlRMUy1QU0stV0lUSC1DQU1FTExJQS0yNTYtR0NNLVNIQTM4NCIsCiAgICAgICBNQkVEVExTX0NJUEhFUl9DQU1FTExJQV8yNTZfR0NNLCBNQkVEVExTX01EX1NIQTM4NCwgTUJFRFRMU19LRVlfRVhDSEFOR0VfUFNLLAogICAgICAgMCwKICAgICAgIE1CRURUTFNfU1NMX1ZFUlNJT05fVExTMV8yLCBNQkVEVExTX1NTTF9WRVJTSU9OX1RMUzFfMiB9LAotI2VuZGlmIC8qIE1CRURUTFNfTURfQ0FOX1NIQTM4NCAqLworI2VuZGlmIC8qIFBTQV9XQU5UX0FMR19TSEFfMzg0ICovCiAjZW5kaWYgLyogTUJFRFRMU19TU0xfSEFWRV9HQ00gKi8KICNlbmRpZiAvKiBNQkVEVExTX1NTTF9IQVZFX0NBTUVMTElBICovCiAKQEAgLTEwODMsMzUgKzEwODMsMzUgQEAKICNpZiBkZWZpbmVkKE1CRURUTFNfS0VZX0VYQ0hBTkdFX0RIRV9QU0tfRU5BQkxFRCkKICNpZiBkZWZpbmVkKE1CRURUTFNfU1NMX0hBVkVfQUVTKQogI2lmIGRlZmluZWQoTUJFRFRMU19TU0xfSEFWRV9HQ00pCi0jaWYgZGVmaW5lZChNQkVEVExTX01EX0NBTl9TSEEyNTYpCisjaWYgZGVmaW5lZChQU0FfV0FOVF9BTEdfU0hBXzI1NikKICAgICB7IE1CRURUTFNfVExTX0RIRV9QU0tfV0lUSF9BRVNfMTI4X0dDTV9TSEEyNTYsICJUTFMtREhFLVBTSy1XSVRILUFFUy0xMjgtR0NNLVNIQTI1NiIsCiAgICAgICBNQkVEVExTX0NJUEhFUl9BRVNfMTI4X0dDTSwgTUJFRFRMU19NRF9TSEEyNTYsIE1CRURUTFNfS0VZX0VYQ0hBTkdFX0RIRV9QU0ssCiAgICAgICAwLAogICAgICAgTUJFRFRMU19TU0xfVkVSU0lPTl9UTFMxXzIsIE1CRURUTFNfU1NMX1ZFUlNJT05fVExTMV8yIH0sCi0jZW5kaWYgLyogTUJFRFRMU19NRF9DQU5fU0hBMjU2ICovCisjZW5kaWYgLyogUFNBX1dBTlRfQUxHX1NIQV8yNTYgKi8KIAotI2lmIGRlZmluZWQoTUJFRFRMU19NRF9DQU5fU0hBMzg0KQorI2lmIGRlZmluZWQoUFNBX1dBTlRfQUxHX1NIQV8zODQpCiAgICAgeyBNQkVEVExTX1RMU19ESEVfUFNLX1dJVEhfQUVTXzI1Nl9HQ01fU0hBMzg0LCAiVExTLURIRS1QU0stV0lUSC1BRVMtMjU2LUdDTS1TSEEzODQiLAogICAgICAgTUJFRFRMU19DSVBIRVJfQUVTXzI1Nl9HQ00sIE1CRURUTFNfTURfU0hBMzg0LCBNQkVEVExTX0tFWV9FWENIQU5HRV9ESEVfUFNLLAogICAgICAgMCwKICAgICAgIE1CRURUTFNfU1NMX1ZFUlNJT05fVExTMV8yLCBNQkVEVExTX1NTTF9WRVJTSU9OX1RMUzFfMiB9LAotI2VuZGlmIC8qIE1CRURUTFNfTURfQ0FOX1NIQTM4NCAqLworI2VuZGlmIC8qIFBTQV9XQU5UX0FMR19TSEFfMzg0ICovCiAjZW5kaWYgLyogTUJFRFRMU19TU0xfSEFWRV9HQ00gKi8KIAogI2lmIGRlZmluZWQoTUJFRFRMU19TU0xfSEFWRV9DQkMpCi0jaWYgZGVmaW5lZChNQkVEVExTX01EX0NBTl9TSEEyNTYpCisjaWYgZGVmaW5lZChQU0FfV0FOVF9BTEdfU0hBXzI1NikKICAgICB7IE1CRURUTFNfVExTX0RIRV9QU0tfV0lUSF9BRVNfMTI4X0NCQ19TSEEyNTYsICJUTFMtREhFLVBTSy1XSVRILUFFUy0xMjgtQ0JDLVNIQTI1NiIsCiAgICAgICBNQkVEVExTX0NJUEhFUl9BRVNfMTI4X0NCQywgTUJFRFRMU19NRF9TSEEyNTYsIE1CRURUTFNfS0VZX0VYQ0hBTkdFX0RIRV9QU0ssCiAgICAgICAwLAogICAgICAgTUJFRFRMU19TU0xfVkVSU0lPTl9UTFMxXzIsIE1CRURUTFNfU1NMX1ZFUlNJT05fVExTMV8yIH0sCi0jZW5kaWYgLyogTUJFRFRMU19NRF9DQU5fU0hBMjU2ICovCisjZW5kaWYgLyogUFNBX1dBTlRfQUxHX1NIQV8yNTYgKi8KIAotI2lmIGRlZmluZWQoTUJFRFRMU19NRF9DQU5fU0hBMzg0KQorI2lmIGRlZmluZWQoUFNBX1dBTlRfQUxHX1NIQV8zODQpCiAgICAgeyBNQkVEVExTX1RMU19ESEVfUFNLX1dJVEhfQUVTXzI1Nl9DQkNfU0hBMzg0LCAiVExTLURIRS1QU0stV0lUSC1BRVMtMjU2LUNCQy1TSEEzODQiLAogICAgICAgTUJFRFRMU19DSVBIRVJfQUVTXzI1Nl9DQkMsIE1CRURUTFNfTURfU0hBMzg0LCBNQkVEVExTX0tFWV9FWENIQU5HRV9ESEVfUFNLLAogICAgICAgMCwKICAgICAgIE1CRURUTFNfU1NMX1ZFUlNJT05fVExTMV8yLCBNQkVEVExTX1NTTF9WRVJTSU9OX1RMUzFfMiB9LAotI2VuZGlmIC8qIE1CRURUTFNfTURfQ0FOX1NIQTM4NCAqLworI2VuZGlmIC8qIFBTQV9XQU5UX0FMR19TSEFfMzg0ICovCiAKICNpZiBkZWZpbmVkKE1CRURUTFNfTURfQ0FOX1NIQTEpCiAgICAgeyBNQkVEVExTX1RMU19ESEVfUFNLX1dJVEhfQUVTXzEyOF9DQkNfU0hBLCAiVExTLURIRS1QU0stV0lUSC1BRVMtMTI4LUNCQy1TSEEiLApAQCAtMTE0NywzNSArMTE0NywzNSBAQAogCiAjaWYgZGVmaW5lZChNQkVEVExTX1NTTF9IQVZFX0NBTUVMTElBKQogI2lmIGRlZmluZWQoTUJFRFRMU19TU0xfSEFWRV9DQkMpCi0jaWYgZGVmaW5lZChNQkVEVExTX01EX0NBTl9TSEEyNTYpCisjaWYgZGVmaW5lZChQU0FfV0FOVF9BTEdfU0hBXzI1NikKICAgICB7IE1CRURUTFNfVExTX0RIRV9QU0tfV0lUSF9DQU1FTExJQV8xMjhfQ0JDX1NIQTI1NiwgIlRMUy1ESEUtUFNLLVdJVEgtQ0FNRUxMSUEtMTI4LUNCQy1TSEEyNTYiLAogICAgICAgTUJFRFRMU19DSVBIRVJfQ0FNRUxMSUFfMTI4X0NCQywgTUJFRFRMU19NRF9TSEEyNTYsIE1CRURUTFNfS0VZX0VYQ0hBTkdFX0RIRV9QU0ssCiAgICAgICAwLAogICAgICAgTUJFRFRMU19TU0xfVkVSU0lPTl9UTFMxXzIsIE1CRURUTFNfU1NMX1ZFUlNJT05fVExTMV8yIH0sCi0jZW5kaWYgLyogTUJFRFRMU19NRF9DQU5fU0hBMjU2ICovCisjZW5kaWYgLyogUFNBX1dBTlRfQUxHX1NIQV8yNTYgKi8KIAotI2lmIGRlZmluZWQoTUJFRFRMU19NRF9DQU5fU0hBMzg0KQorI2lmIGRlZmluZWQoUFNBX1dBTlRfQUxHX1NIQV8zODQpCiAgICAgeyBNQkVEVExTX1RMU19ESEVfUFNLX1dJVEhfQ0FNRUxMSUFfMjU2X0NCQ19TSEEzODQsICJUTFMtREhFLVBTSy1XSVRILUNBTUVMTElBLTI1Ni1DQkMtU0hBMzg0IiwKICAgICAgIE1CRURUTFNfQ0lQSEVSX0NBTUVMTElBXzI1Nl9DQkMsIE1CRURUTFNfTURfU0hBMzg0LCBNQkVEVExTX0tFWV9FWENIQU5HRV9ESEVfUFNLLAogICAgICAgMCwKICAgICAgIE1CRURUTFNfU1NMX1ZFUlNJT05fVExTMV8yLCBNQkVEVExTX1NTTF9WRVJTSU9OX1RMUzFfMiB9LAotI2VuZGlmIC8qIE1CRURUTFNfTURfQ0FOX1NIQTM4NCAqLworI2VuZGlmIC8qIFBTQV9XQU5UX0FMR19TSEFfMzg0ICovCiAjZW5kaWYgLyogTUJFRFRMU19TU0xfSEFWRV9DQkMgKi8KIAogI2lmIGRlZmluZWQoTUJFRFRMU19TU0xfSEFWRV9HQ00pCi0jaWYgZGVmaW5lZChNQkVEVExTX01EX0NBTl9TSEEyNTYpCisjaWYgZGVmaW5lZChQU0FfV0FOVF9BTEdfU0hBXzI1NikKICAgICB7IE1CRURUTFNfVExTX0RIRV9QU0tfV0lUSF9DQU1FTExJQV8xMjhfR0NNX1NIQTI1NiwgIlRMUy1ESEUtUFNLLVdJVEgtQ0FNRUxMSUEtMTI4LUdDTS1TSEEyNTYiLAogICAgICAgTUJFRFRMU19DSVBIRVJfQ0FNRUxMSUFfMTI4X0dDTSwgTUJFRFRMU19NRF9TSEEyNTYsIE1CRURUTFNfS0VZX0VYQ0hBTkdFX0RIRV9QU0ssCiAgICAgICAwLAogICAgICAgTUJFRFRMU19TU0xfVkVSU0lPTl9UTFMxXzIsIE1CRURUTFNfU1NMX1ZFUlNJT05fVExTMV8yIH0sCi0jZW5kaWYgLyogTUJFRFRMU19NRF9DQU5fU0hBMjU2ICovCisjZW5kaWYgLyogUFNBX1dBTlRfQUxHX1NIQV8yNTYgKi8KIAotI2lmIGRlZmluZWQoTUJFRFRMU19NRF9DQU5fU0hBMzg0KQorI2lmIGRlZmluZWQoUFNBX1dBTlRfQUxHX1NIQV8zODQpCiAgICAgeyBNQkVEVExTX1RMU19ESEVfUFNLX1dJVEhfQ0FNRUxMSUFfMjU2X0dDTV9TSEEzODQsICJUTFMtREhFLVBTSy1XSVRILUNBTUVMTElBLTI1Ni1HQ00tU0hBMzg0IiwKICAgICAgIE1CRURUTFNfQ0lQSEVSX0NBTUVMTElBXzI1Nl9HQ00sIE1CRURUTFNfTURfU0hBMzg0LCBNQkVEVExTX0tFWV9FWENIQU5HRV9ESEVfUFNLLAogICAgICAgMCwKICAgICAgIE1CRURUTFNfU1NMX1ZFUlNJT05fVExTMV8yLCBNQkVEVExTX1NTTF9WRVJTSU9OX1RMUzFfMiB9LAotI2VuZGlmIC8qIE1CRURUTFNfTURfQ0FOX1NIQTM4NCAqLworI2VuZGlmIC8qIFBTQV9XQU5UX0FMR19TSEFfMzg0ICovCiAjZW5kaWYgLyogTUJFRFRMU19TU0xfSEFWRV9HQ00gKi8KICNlbmRpZiAvKiBNQkVEVExTX1NTTF9IQVZFX0NBTUVMTElBICovCiAKQEAgLTExODUsMTkgKzExODUsMTkgQEAKICNpZiBkZWZpbmVkKE1CRURUTFNfU1NMX0hBVkVfQUVTKQogCiAjaWYgZGVmaW5lZChNQkVEVExTX1NTTF9IQVZFX0NCQykKLSNpZiBkZWZpbmVkKE1CRURUTFNfTURfQ0FOX1NIQTI1NikKKyNpZiBkZWZpbmVkKFBTQV9XQU5UX0FMR19TSEFfMjU2KQogICAgIHsgTUJFRFRMU19UTFNfRUNESEVfUFNLX1dJVEhfQUVTXzEyOF9DQkNfU0hBMjU2LCAiVExTLUVDREhFLVBTSy1XSVRILUFFUy0xMjgtQ0JDLVNIQTI1NiIsCiAgICAgICBNQkVEVExTX0NJUEhFUl9BRVNfMTI4X0NCQywgTUJFRFRMU19NRF9TSEEyNTYsIE1CRURUTFNfS0VZX0VYQ0hBTkdFX0VDREhFX1BTSywKICAgICAgIDAsCiAgICAgICBNQkVEVExTX1NTTF9WRVJTSU9OX1RMUzFfMiwgTUJFRFRMU19TU0xfVkVSU0lPTl9UTFMxXzIgfSwKLSNlbmRpZiAvKiBNQkVEVExTX01EX0NBTl9TSEEyNTYgKi8KKyNlbmRpZiAvKiBQU0FfV0FOVF9BTEdfU0hBXzI1NiAqLwogCi0jaWYgZGVmaW5lZChNQkVEVExTX01EX0NBTl9TSEEzODQpCisjaWYgZGVmaW5lZChQU0FfV0FOVF9BTEdfU0hBXzM4NCkKICAgICB7IE1CRURUTFNfVExTX0VDREhFX1BTS19XSVRIX0FFU18yNTZfQ0JDX1NIQTM4NCwgIlRMUy1FQ0RIRS1QU0stV0lUSC1BRVMtMjU2LUNCQy1TSEEzODQiLAogICAgICAgTUJFRFRMU19DSVBIRVJfQUVTXzI1Nl9DQkMsIE1CRURUTFNfTURfU0hBMzg0LCBNQkVEVExTX0tFWV9FWENIQU5HRV9FQ0RIRV9QU0ssCiAgICAgICAwLAogICAgICAgTUJFRFRMU19TU0xfVkVSU0lPTl9UTFMxXzIsIE1CRURUTFNfU1NMX1ZFUlNJT05fVExTMV8yIH0sCi0jZW5kaWYgLyogTUJFRFRMU19NRF9DQU5fU0hBMzg0ICovCisjZW5kaWYgLyogUFNBX1dBTlRfQUxHX1NIQV8zODQgKi8KIAogI2lmIGRlZmluZWQoTUJFRFRMU19NRF9DQU5fU0hBMSkKICAgICB7IE1CRURUTFNfVExTX0VDREhFX1BTS19XSVRIX0FFU18xMjhfQ0JDX1NIQSwgIlRMUy1FQ0RIRS1QU0stV0lUSC1BRVMtMTI4LUNCQy1TSEEiLApAQCAtMTIxNSwyMSArMTIxNSwyMSBAQAogCiAjaWYgZGVmaW5lZChNQkVEVExTX1NTTF9IQVZFX0NBTUVMTElBKQogI2lmIGRlZmluZWQoTUJFRFRMU19TU0xfSEFWRV9DQkMpCi0jaWYgZGVmaW5lZChNQkVEVExTX01EX0NBTl9TSEEyNTYpCisjaWYgZGVmaW5lZChQU0FfV0FOVF9BTEdfU0hBXzI1NikKICAgICB7IE1CRURUTFNfVExTX0VDREhFX1BTS19XSVRIX0NBTUVMTElBXzEyOF9DQkNfU0hBMjU2LAogICAgICAgIlRMUy1FQ0RIRS1QU0stV0lUSC1DQU1FTExJQS0xMjgtQ0JDLVNIQTI1NiIsCiAgICAgICBNQkVEVExTX0NJUEhFUl9DQU1FTExJQV8xMjhfQ0JDLCBNQkVEVExTX01EX1NIQTI1NiwgTUJFRFRMU19LRVlfRVhDSEFOR0VfRUNESEVfUFNLLAogICAgICAgMCwKICAgICAgIE1CRURUTFNfU1NMX1ZFUlNJT05fVExTMV8yLCBNQkVEVExTX1NTTF9WRVJTSU9OX1RMUzFfMiB9LAotI2VuZGlmIC8qIE1CRURUTFNfTURfQ0FOX1NIQTI1NiAqLworI2VuZGlmIC8qIFBTQV9XQU5UX0FMR19TSEFfMjU2ICovCiAKLSNpZiBkZWZpbmVkKE1CRURUTFNfTURfQ0FOX1NIQTM4NCkKKyNpZiBkZWZpbmVkKFBTQV9XQU5UX0FMR19TSEFfMzg0KQogICAgIHsgTUJFRFRMU19UTFNfRUNESEVfUFNLX1dJVEhfQ0FNRUxMSUFfMjU2X0NCQ19TSEEzODQsCiAgICAgICAiVExTLUVDREhFLVBTSy1XSVRILUNBTUVMTElBLTI1Ni1DQkMtU0hBMzg0IiwKICAgICAgIE1CRURUTFNfQ0lQSEVSX0NBTUVMTElBXzI1Nl9DQkMsIE1CRURUTFNfTURfU0hBMzg0LCBNQkVEVExTX0tFWV9FWENIQU5HRV9FQ0RIRV9QU0ssCiAgICAgICAwLAogICAgICAgTUJFRFRMU19TU0xfVkVSU0lPTl9UTFMxXzIsIE1CRURUTFNfU1NMX1ZFUlNJT05fVExTMV8yIH0sCi0jZW5kaWYgLyogTUJFRFRMU19NRF9DQU5fU0hBMzg0ICovCisjZW5kaWYgLyogUFNBX1dBTlRfQUxHX1NIQV8zODQgKi8KICNlbmRpZiAvKiBNQkVEVExTX1NTTF9IQVZFX0NCQyAqLwogI2VuZGlmIC8qIE1CRURUTFNfU1NMX0hBVkVfQ0FNRUxMSUEgKi8KIApAQCAtMTIzOCwzNSArMTIzOCwzNSBAQAogI2lmIGRlZmluZWQoTUJFRFRMU19LRVlfRVhDSEFOR0VfUlNBX1BTS19FTkFCTEVEKQogI2lmIGRlZmluZWQoTUJFRFRMU19TU0xfSEFWRV9BRVMpCiAjaWYgZGVmaW5lZChNQkVEVExTX1NTTF9IQVZFX0dDTSkKLSNpZiBkZWZpbmVkKE1CRURUTFNfTURfQ0FOX1NIQTI1NikKKyNpZiBkZWZpbmVkKFBTQV9XQU5UX0FMR19TSEFfMjU2KQogICAgIHsgTUJFRFRMU19UTFNfUlNBX1BTS19XSVRIX0FFU18xMjhfR0NNX1NIQTI1NiwgIlRMUy1SU0EtUFNLLVdJVEgtQUVTLTEyOC1HQ00tU0hBMjU2IiwKICAgICAgIE1CRURUTFNfQ0lQSEVSX0FFU18xMjhfR0NNLCBNQkVEVExTX01EX1NIQTI1NiwgTUJFRFRMU19LRVlfRVhDSEFOR0VfUlNBX1BTSywKICAgICAgIDAsCiAgICAgICBNQkVEVExTX1NTTF9WRVJTSU9OX1RMUzFfMiwgTUJFRFRMU19TU0xfVkVSU0lPTl9UTFMxXzIgfSwKLSNlbmRpZiAvKiBNQkVEVExTX01EX0NBTl9TSEEyNTYgKi8KKyNlbmRpZiAvKiBQU0FfV0FOVF9BTEdfU0hBXzI1NiAqLwogCi0jaWYgZGVmaW5lZChNQkVEVExTX01EX0NBTl9TSEEzODQpCisjaWYgZGVmaW5lZChQU0FfV0FOVF9BTEdfU0hBXzM4NCkKICAgICB7IE1CRURUTFNfVExTX1JTQV9QU0tfV0lUSF9BRVNfMjU2X0dDTV9TSEEzODQsICJUTFMtUlNBLVBTSy1XSVRILUFFUy0yNTYtR0NNLVNIQTM4NCIsCiAgICAgICBNQkVEVExTX0NJUEhFUl9BRVNfMjU2X0dDTSwgTUJFRFRMU19NRF9TSEEzODQsIE1CRURUTFNfS0VZX0VYQ0hBTkdFX1JTQV9QU0ssCiAgICAgICAwLAogICAgICAgTUJFRFRMU19TU0xfVkVSU0lPTl9UTFMxXzIsIE1CRURUTFNfU1NMX1ZFUlNJT05fVExTMV8yIH0sCi0jZW5kaWYgLyogTUJFRFRMU19NRF9DQU5fU0hBMzg0ICovCisjZW5kaWYgLyogUFNBX1dBTlRfQUxHX1NIQV8zODQgKi8KICNlbmRpZiAvKiBNQkVEVExTX1NTTF9IQVZFX0dDTSAqLwogCiAjaWYgZGVmaW5lZChNQkVEVExTX1NTTF9IQVZFX0NCQykKLSNpZiBkZWZpbmVkKE1CRURUTFNfTURfQ0FOX1NIQTI1NikKKyNpZiBkZWZpbmVkKFBTQV9XQU5UX0FMR19TSEFfMjU2KQogICAgIHsgTUJFRFRMU19UTFNfUlNBX1BTS19XSVRIX0FFU18xMjhfQ0JDX1NIQTI1NiwgIlRMUy1SU0EtUFNLLVdJVEgtQUVTLTEyOC1DQkMtU0hBMjU2IiwKICAgICAgIE1CRURUTFNfQ0lQSEVSX0FFU18xMjhfQ0JDLCBNQkVEVExTX01EX1NIQTI1NiwgTUJFRFRMU19LRVlfRVhDSEFOR0VfUlNBX1BTSywKICAgICAgIDAsCiAgICAgICBNQkVEVExTX1NTTF9WRVJTSU9OX1RMUzFfMiwgTUJFRFRMU19TU0xfVkVSU0lPTl9UTFMxXzIgfSwKLSNlbmRpZiAvKiBNQkVEVExTX01EX0NBTl9TSEEyNTYgKi8KKyNlbmRpZiAvKiBQU0FfV0FOVF9BTEdfU0hBXzI1NiAqLwogCi0jaWYgZGVmaW5lZChNQkVEVExTX01EX0NBTl9TSEEzODQpCisjaWYgZGVmaW5lZChQU0FfV0FOVF9BTEdfU0hBXzM4NCkKICAgICB7IE1CRURUTFNfVExTX1JTQV9QU0tfV0lUSF9BRVNfMjU2X0NCQ19TSEEzODQsICJUTFMtUlNBLVBTSy1XSVRILUFFUy0yNTYtQ0JDLVNIQTM4NCIsCiAgICAgICBNQkVEVExTX0NJUEhFUl9BRVNfMjU2X0NCQywgTUJFRFRMU19NRF9TSEEzODQsIE1CRURUTFNfS0VZX0VYQ0hBTkdFX1JTQV9QU0ssCiAgICAgICAwLAogICAgICAgTUJFRFRMU19TU0xfVkVSU0lPTl9UTFMxXzIsIE1CRURUTFNfU1NMX1ZFUlNJT05fVExTMV8yIH0sCi0jZW5kaWYgLyogTUJFRFRMU19NRF9DQU5fU0hBMzg0ICovCisjZW5kaWYgLyogUFNBX1dBTlRfQUxHX1NIQV8zODQgKi8KIAogI2lmIGRlZmluZWQoTUJFRFRMU19NRF9DQU5fU0hBMSkKICAgICB7IE1CRURUTFNfVExTX1JTQV9QU0tfV0lUSF9BRVNfMTI4X0NCQ19TSEEsICJUTFMtUlNBLVBTSy1XSVRILUFFUy0xMjgtQ0JDLVNIQSIsCkBAIC0xMjg0LDM1ICsxMjg0LDM1IEBACiAKICNpZiBkZWZpbmVkKE1CRURUTFNfU1NMX0hBVkVfQ0FNRUxMSUEpCiAjaWYgZGVmaW5lZChNQkVEVExTX1NTTF9IQVZFX0NCQykKLSNpZiBkZWZpbmVkKE1CRURUTFNfTURfQ0FOX1NIQTI1NikKKyNpZiBkZWZpbmVkKFBTQV9XQU5UX0FMR19TSEFfMjU2KQogICAgIHsgTUJFRFRMU19UTFNfUlNBX1BTS19XSVRIX0NBTUVMTElBXzEyOF9DQkNfU0hBMjU2LCAiVExTLVJTQS1QU0stV0lUSC1DQU1FTExJQS0xMjgtQ0JDLVNIQTI1NiIsCiAgICAgICBNQkVEVExTX0NJUEhFUl9DQU1FTExJQV8xMjhfQ0JDLCBNQkVEVExTX01EX1NIQTI1NiwgTUJFRFRMU19LRVlfRVhDSEFOR0VfUlNBX1BTSywKICAgICAgIDAsCiAgICAgICBNQkVEVExTX1NTTF9WRVJTSU9OX1RMUzFfMiwgTUJFRFRMU19TU0xfVkVSU0lPTl9UTFMxXzIgfSwKLSNlbmRpZiAvKiBNQkVEVExTX01EX0NBTl9TSEEyNTYgKi8KKyNlbmRpZiAvKiBQU0FfV0FOVF9BTEdfU0hBXzI1NiAqLwogCi0jaWYgZGVmaW5lZChNQkVEVExTX01EX0NBTl9TSEEzODQpCisjaWYgZGVmaW5lZChQU0FfV0FOVF9BTEdfU0hBXzM4NCkKICAgICB7IE1CRURUTFNfVExTX1JTQV9QU0tfV0lUSF9DQU1FTExJQV8yNTZfQ0JDX1NIQTM4NCwgIlRMUy1SU0EtUFNLLVdJVEgtQ0FNRUxMSUEtMjU2LUNCQy1TSEEzODQiLAogICAgICAgTUJFRFRMU19DSVBIRVJfQ0FNRUxMSUFfMjU2X0NCQywgTUJFRFRMU19NRF9TSEEzODQsIE1CRURUTFNfS0VZX0VYQ0hBTkdFX1JTQV9QU0ssCiAgICAgICAwLAogICAgICAgTUJFRFRMU19TU0xfVkVSU0lPTl9UTFMxXzIsIE1CRURUTFNfU1NMX1ZFUlNJT05fVExTMV8yIH0sCi0jZW5kaWYgLyogTUJFRFRMU19NRF9DQU5fU0hBMzg0ICovCisjZW5kaWYgLyogUFNBX1dBTlRfQUxHX1NIQV8zODQgKi8KICNlbmRpZiAvKiBNQkVEVExTX1NTTF9IQVZFX0NCQyAqLwogCiAjaWYgZGVmaW5lZChNQkVEVExTX1NTTF9IQVZFX0dDTSkKLSNpZiBkZWZpbmVkKE1CRURUTFNfTURfQ0FOX1NIQTI1NikKKyNpZiBkZWZpbmVkKFBTQV9XQU5UX0FMR19TSEFfMjU2KQogICAgIHsgTUJFRFRMU19UTFNfUlNBX1BTS19XSVRIX0NBTUVMTElBXzEyOF9HQ01fU0hBMjU2LCAiVExTLVJTQS1QU0stV0lUSC1DQU1FTExJQS0xMjgtR0NNLVNIQTI1NiIsCiAgICAgICBNQkVEVExTX0NJUEhFUl9DQU1FTExJQV8xMjhfR0NNLCBNQkVEVExTX01EX1NIQTI1NiwgTUJFRFRMU19LRVlfRVhDSEFOR0VfUlNBX1BTSywKICAgICAgIDAsCiAgICAgICBNQkVEVExTX1NTTF9WRVJTSU9OX1RMUzFfMiwgTUJFRFRMU19TU0xfVkVSU0lPTl9UTFMxXzIgfSwKLSNlbmRpZiAvKiBNQkVEVExTX01EX0NBTl9TSEEyNTYgKi8KKyNlbmRpZiAvKiBQU0FfV0FOVF9BTEdfU0hBXzI1NiAqLwogCi0jaWYgZGVmaW5lZChNQkVEVExTX01EX0NBTl9TSEEzODQpCisjaWYgZGVmaW5lZChQU0FfV0FOVF9BTEdfU0hBXzM4NCkKICAgICB7IE1CRURUTFNfVExTX1JTQV9QU0tfV0lUSF9DQU1FTExJQV8yNTZfR0NNX1NIQTM4NCwgIlRMUy1SU0EtUFNLLVdJVEgtQ0FNRUxMSUEtMjU2LUdDTS1TSEEzODQiLAogICAgICAgTUJFRFRMU19DSVBIRVJfQ0FNRUxMSUFfMjU2X0dDTSwgTUJFRFRMU19NRF9TSEEzODQsIE1CRURUTFNfS0VZX0VYQ0hBTkdFX1JTQV9QU0ssCiAgICAgICAwLAogICAgICAgTUJFRFRMU19TU0xfVkVSU0lPTl9UTFMxXzIsIE1CRURUTFNfU1NMX1ZFUlNJT05fVExTMV8yIH0sCi0jZW5kaWYgLyogTUJFRFRMU19NRF9DQU5fU0hBMzg0ICovCisjZW5kaWYgLyogUFNBX1dBTlRfQUxHX1NIQV8zODQgKi8KICNlbmRpZiAvKiBNQkVEVExTX1NTTF9IQVZFX0dDTSAqLwogI2VuZGlmIC8qIE1CRURUTFNfU1NMX0hBVkVfQ0FNRUxMSUEgKi8KIApAQCAtMTM0NSw3ICsxMzQ1LDcgQEAKICAgICAgIE1CRURUTFNfU1NMX1ZFUlNJT05fVExTMV8yLCBNQkVEVExTX1NTTF9WRVJTSU9OX1RMUzFfMiB9LAogI2VuZGlmCiAKLSNpZiBkZWZpbmVkKE1CRURUTFNfTURfQ0FOX1NIQTI1NikKKyNpZiBkZWZpbmVkKFBTQV9XQU5UX0FMR19TSEFfMjU2KQogICAgIHsgTUJFRFRMU19UTFNfUlNBX1dJVEhfTlVMTF9TSEEyNTYsICJUTFMtUlNBLVdJVEgtTlVMTC1TSEEyNTYiLAogICAgICAgTUJFRFRMU19DSVBIRVJfTlVMTCwgTUJFRFRMU19NRF9TSEEyNTYsIE1CRURUTFNfS0VZX0VYQ0hBTkdFX1JTQSwKICAgICAgIE1CRURUTFNfQ0lQSEVSU1VJVEVfV0VBSywKQEAgLTEzNjEsMTkgKzEzNjEsMTkgQEAKICAgICAgIE1CRURUTFNfU1NMX1ZFUlNJT05fVExTMV8yLCBNQkVEVExTX1NTTF9WRVJTSU9OX1RMUzFfMiB9LAogI2VuZGlmIC8qIE1CRURUTFNfTURfQ0FOX1NIQTEgKi8KIAotI2lmIGRlZmluZWQoTUJFRFRMU19NRF9DQU5fU0hBMjU2KQorI2lmIGRlZmluZWQoUFNBX1dBTlRfQUxHX1NIQV8yNTYpCiAgICAgeyBNQkVEVExTX1RMU19QU0tfV0lUSF9OVUxMX1NIQTI1NiwgIlRMUy1QU0stV0lUSC1OVUxMLVNIQTI1NiIsCiAgICAgICBNQkVEVExTX0NJUEhFUl9OVUxMLCBNQkVEVExTX01EX1NIQTI1NiwgTUJFRFRMU19LRVlfRVhDSEFOR0VfUFNLLAogICAgICAgTUJFRFRMU19DSVBIRVJTVUlURV9XRUFLLAogICAgICAgTUJFRFRMU19TU0xfVkVSU0lPTl9UTFMxXzIsIE1CRURUTFNfU1NMX1ZFUlNJT05fVExTMV8yIH0sCiAjZW5kaWYKIAotI2lmIGRlZmluZWQoTUJFRFRMU19NRF9DQU5fU0hBMzg0KQorI2lmIGRlZmluZWQoUFNBX1dBTlRfQUxHX1NIQV8zODQpCiAgICAgeyBNQkVEVExTX1RMU19QU0tfV0lUSF9OVUxMX1NIQTM4NCwgIlRMUy1QU0stV0lUSC1OVUxMLVNIQTM4NCIsCiAgICAgICBNQkVEVExTX0NJUEhFUl9OVUxMLCBNQkVEVExTX01EX1NIQTM4NCwgTUJFRFRMU19LRVlfRVhDSEFOR0VfUFNLLAogICAgICAgTUJFRFRMU19DSVBIRVJTVUlURV9XRUFLLAogICAgICAgTUJFRFRMU19TU0xfVkVSU0lPTl9UTFMxXzIsIE1CRURUTFNfU1NMX1ZFUlNJT05fVExTMV8yIH0sCi0jZW5kaWYgLyogTUJFRFRMU19NRF9DQU5fU0hBMzg0ICovCisjZW5kaWYgLyogUFNBX1dBTlRfQUxHX1NIQV8zODQgKi8KICNlbmRpZiAvKiBNQkVEVExTX0tFWV9FWENIQU5HRV9QU0tfRU5BQkxFRCAqLwogCiAjaWYgZGVmaW5lZChNQkVEVExTX0tFWV9FWENIQU5HRV9ESEVfUFNLX0VOQUJMRUQpCkBAIC0xMzg0LDE5ICsxMzg0LDE5IEBACiAgICAgICBNQkVEVExTX1NTTF9WRVJTSU9OX1RMUzFfMiwgTUJFRFRMU19TU0xfVkVSU0lPTl9UTFMxXzIgfSwKICNlbmRpZiAvKiBNQkVEVExTX01EX0NBTl9TSEExICovCiAKLSNpZiBkZWZpbmVkKE1CRURUTFNfTURfQ0FOX1NIQTI1NikKKyNpZiBkZWZpbmVkKFBTQV9XQU5UX0FMR19TSEFfMjU2KQogICAgIHsgTUJFRFRMU19UTFNfREhFX1BTS19XSVRIX05VTExfU0hBMjU2LCAiVExTLURIRS1QU0stV0lUSC1OVUxMLVNIQTI1NiIsCiAgICAgICBNQkVEVExTX0NJUEhFUl9OVUxMLCBNQkVEVExTX01EX1NIQTI1NiwgTUJFRFRMU19LRVlfRVhDSEFOR0VfREhFX1BTSywKICAgICAgIE1CRURUTFNfQ0lQSEVSU1VJVEVfV0VBSywKICAgICAgIE1CRURUTFNfU1NMX1ZFUlNJT05fVExTMV8yLCBNQkVEVExTX1NTTF9WRVJTSU9OX1RMUzFfMiB9LAogI2VuZGlmCiAKLSNpZiBkZWZpbmVkKE1CRURUTFNfTURfQ0FOX1NIQTM4NCkKKyNpZiBkZWZpbmVkKFBTQV9XQU5UX0FMR19TSEFfMzg0KQogICAgIHsgTUJFRFRMU19UTFNfREhFX1BTS19XSVRIX05VTExfU0hBMzg0LCAiVExTLURIRS1QU0stV0lUSC1OVUxMLVNIQTM4NCIsCiAgICAgICBNQkVEVExTX0NJUEhFUl9OVUxMLCBNQkVEVExTX01EX1NIQTM4NCwgTUJFRFRMU19LRVlfRVhDSEFOR0VfREhFX1BTSywKICAgICAgIE1CRURUTFNfQ0lQSEVSU1VJVEVfV0VBSywKICAgICAgIE1CRURUTFNfU1NMX1ZFUlNJT05fVExTMV8yLCBNQkVEVExTX1NTTF9WRVJTSU9OX1RMUzFfMiB9LAotI2VuZGlmIC8qIE1CRURUTFNfTURfQ0FOX1NIQTM4NCAqLworI2VuZGlmIC8qIFBTQV9XQU5UX0FMR19TSEFfMzg0ICovCiAjZW5kaWYgLyogTUJFRFRMU19LRVlfRVhDSEFOR0VfREhFX1BTS19FTkFCTEVEICovCiAKICNpZiBkZWZpbmVkKE1CRURUTFNfS0VZX0VYQ0hBTkdFX0VDREhFX1BTS19FTkFCTEVEKQpAQCAtMTQwNywxOSArMTQwNywxOSBAQAogICAgICAgTUJFRFRMU19TU0xfVkVSU0lPTl9UTFMxXzIsIE1CRURUTFNfU1NMX1ZFUlNJT05fVExTMV8yIH0sCiAjZW5kaWYgLyogTUJFRFRMU19NRF9DQU5fU0hBMSAqLwogCi0jaWYgZGVmaW5lZChNQkVEVExTX01EX0NBTl9TSEEyNTYpCisjaWYgZGVmaW5lZChQU0FfV0FOVF9BTEdfU0hBXzI1NikKICAgICB7IE1CRURUTFNfVExTX0VDREhFX1BTS19XSVRIX05VTExfU0hBMjU2LCAiVExTLUVDREhFLVBTSy1XSVRILU5VTEwtU0hBMjU2IiwKICAgICAgIE1CRURUTFNfQ0lQSEVSX05VTEwsIE1CRURUTFNfTURfU0hBMjU2LCBNQkVEVExTX0tFWV9FWENIQU5HRV9FQ0RIRV9QU0ssCiAgICAgICBNQkVEVExTX0NJUEhFUlNVSVRFX1dFQUssCiAgICAgICBNQkVEVExTX1NTTF9WRVJTSU9OX1RMUzFfMiwgTUJFRFRMU19TU0xfVkVSU0lPTl9UTFMxXzIgfSwKICNlbmRpZgogCi0jaWYgZGVmaW5lZChNQkVEVExTX01EX0NBTl9TSEEzODQpCisjaWYgZGVmaW5lZChQU0FfV0FOVF9BTEdfU0hBXzM4NCkKICAgICB7IE1CRURUTFNfVExTX0VDREhFX1BTS19XSVRIX05VTExfU0hBMzg0LCAiVExTLUVDREhFLVBTSy1XSVRILU5VTEwtU0hBMzg0IiwKICAgICAgIE1CRURUTFNfQ0lQSEVSX05VTEwsIE1CRURUTFNfTURfU0hBMzg0LCBNQkVEVExTX0tFWV9FWENIQU5HRV9FQ0RIRV9QU0ssCiAgICAgICBNQkVEVExTX0NJUEhFUlNVSVRFX1dFQUssCiAgICAgICBNQkVEVExTX1NTTF9WRVJTSU9OX1RMUzFfMiwgTUJFRFRMU19TU0xfVkVSU0lPTl9UTFMxXzIgfSwKLSNlbmRpZiAvKiBNQkVEVExTX01EX0NBTl9TSEEzODQgKi8KKyNlbmRpZiAvKiBQU0FfV0FOVF9BTEdfU0hBXzM4NCAqLwogI2VuZGlmIC8qIE1CRURUTFNfS0VZX0VYQ0hBTkdFX0VDREhFX1BTS19FTkFCTEVEICovCiAKICNpZiBkZWZpbmVkKE1CRURUTFNfS0VZX0VYQ0hBTkdFX1JTQV9QU0tfRU5BQkxFRCkKQEAgLTE0MzAsMTkgKzE0MzAsMTkgQEAKICAgICAgIE1CRURUTFNfU1NMX1ZFUlNJT05fVExTMV8yLCBNQkVEVExTX1NTTF9WRVJTSU9OX1RMUzFfMiB9LAogI2VuZGlmIC8qIE1CRURUTFNfTURfQ0FOX1NIQTEgKi8KIAotI2lmIGRlZmluZWQoTUJFRFRMU19NRF9DQU5fU0hBMjU2KQorI2lmIGRlZmluZWQoUFNBX1dBTlRfQUxHX1NIQV8yNTYpCiAgICAgeyBNQkVEVExTX1RMU19SU0FfUFNLX1dJVEhfTlVMTF9TSEEyNTYsICJUTFMtUlNBLVBTSy1XSVRILU5VTEwtU0hBMjU2IiwKICAgICAgIE1CRURUTFNfQ0lQSEVSX05VTEwsIE1CRURUTFNfTURfU0hBMjU2LCBNQkVEVExTX0tFWV9FWENIQU5HRV9SU0FfUFNLLAogICAgICAgTUJFRFRMU19DSVBIRVJTVUlURV9XRUFLLAogICAgICAgTUJFRFRMU19TU0xfVkVSU0lPTl9UTFMxXzIsIE1CRURUTFNfU1NMX1ZFUlNJT05fVExTMV8yIH0sCiAjZW5kaWYKIAotI2lmIGRlZmluZWQoTUJFRFRMU19NRF9DQU5fU0hBMzg0KQorI2lmIGRlZmluZWQoUFNBX1dBTlRfQUxHX1NIQV8zODQpCiAgICAgeyBNQkVEVExTX1RMU19SU0FfUFNLX1dJVEhfTlVMTF9TSEEzODQsICJUTFMtUlNBLVBTSy1XSVRILU5VTEwtU0hBMzg0IiwKICAgICAgIE1CRURUTFNfQ0lQSEVSX05VTEwsIE1CRURUTFNfTURfU0hBMzg0LCBNQkVEVExTX0tFWV9FWENIQU5HRV9SU0FfUFNLLAogICAgICAgTUJFRFRMU19DSVBIRVJTVUlURV9XRUFLLAogICAgICAgTUJFRFRMU19TU0xfVkVSU0lPTl9UTFMxXzIsIE1CRURUTFNfU1NMX1ZFUlNJT05fVExTMV8yIH0sCi0jZW5kaWYgLyogTUJFRFRMU19NRF9DQU5fU0hBMzg0ICovCisjZW5kaWYgLyogUFNBX1dBTlRfQUxHX1NIQV8zODQgKi8KICNlbmRpZiAvKiBNQkVEVExTX0tFWV9FWENIQU5HRV9SU0FfUFNLX0VOQUJMRUQgKi8KICNlbmRpZiAvKiBNQkVEVExTX0NJUEhFUl9OVUxMX0NJUEhFUiAqLwogCkBAIC0xNDUwLDcgKzE0NTAsNyBAQAogCiAjaWYgZGVmaW5lZChNQkVEVExTX0tFWV9FWENIQU5HRV9SU0FfRU5BQkxFRCkKIAotI2lmIChkZWZpbmVkKE1CRURUTFNfU1NMX0hBVkVfR0NNKSAmJiBkZWZpbmVkKE1CRURUTFNfTURfQ0FOX1NIQTM4NCkpCisjaWYgKGRlZmluZWQoTUJFRFRMU19TU0xfSEFWRV9HQ00pICYmIGRlZmluZWQoUFNBX1dBTlRfQUxHX1NIQV8zODQpKQogICAgIHsgTUJFRFRMU19UTFNfUlNBX1dJVEhfQVJJQV8yNTZfR0NNX1NIQTM4NCwKICAgICAgICJUTFMtUlNBLVdJVEgtQVJJQS0yNTYtR0NNLVNIQTM4NCIsCiAgICAgICBNQkVEVExTX0NJUEhFUl9BUklBXzI1Nl9HQ00sIE1CRURUTFNfTURfU0hBMzg0LCBNQkVEVExTX0tFWV9FWENIQU5HRV9SU0EsCkBAIC0xNDU4LDE0ICsxNDU4LDE0IEBACiAgICAgICBNQkVEVExTX1NTTF9WRVJTSU9OX1RMUzFfMiwgTUJFRFRMU19TU0xfVkVSU0lPTl9UTFMxXzIgfSwKICNlbmRpZgogI2lmIChkZWZpbmVkKE1CRURUTFNfU1NMX0hBVkVfQ0JDKSAmJiBcCi0gICAgZGVmaW5lZChNQkVEVExTX01EX0NBTl9TSEEzODQpKQorICAgIGRlZmluZWQoUFNBX1dBTlRfQUxHX1NIQV8zODQpKQogICAgIHsgTUJFRFRMU19UTFNfUlNBX1dJVEhfQVJJQV8yNTZfQ0JDX1NIQTM4NCwKICAgICAgICJUTFMtUlNBLVdJVEgtQVJJQS0yNTYtQ0JDLVNIQTM4NCIsCiAgICAgICBNQkVEVExTX0NJUEhFUl9BUklBXzI1Nl9DQkMsIE1CRURUTFNfTURfU0hBMzg0LCBNQkVEVExTX0tFWV9FWENIQU5HRV9SU0EsCiAgICAgICAwLAogICAgICAgTUJFRFRMU19TU0xfVkVSU0lPTl9UTFMxXzIsIE1CRURUTFNfU1NMX1ZFUlNJT05fVExTMV8yIH0sCiAjZW5kaWYKLSNpZiAoZGVmaW5lZChNQkVEVExTX1NTTF9IQVZFX0dDTSkgJiYgZGVmaW5lZChNQkVEVExTX01EX0NBTl9TSEEyNTYpKQorI2lmIChkZWZpbmVkKE1CRURUTFNfU1NMX0hBVkVfR0NNKSAmJiBkZWZpbmVkKFBTQV9XQU5UX0FMR19TSEFfMjU2KSkKICAgICB7IE1CRURUTFNfVExTX1JTQV9XSVRIX0FSSUFfMTI4X0dDTV9TSEEyNTYsCiAgICAgICAiVExTLVJTQS1XSVRILUFSSUEtMTI4LUdDTS1TSEEyNTYiLAogICAgICAgTUJFRFRMU19DSVBIRVJfQVJJQV8xMjhfR0NNLCBNQkVEVExTX01EX1NIQTI1NiwgTUJFRFRMU19LRVlfRVhDSEFOR0VfUlNBLApAQCAtMTQ3Myw3ICsxNDczLDcgQEAKICAgICAgIE1CRURUTFNfU1NMX1ZFUlNJT05fVExTMV8yLCBNQkVEVExTX1NTTF9WRVJTSU9OX1RMUzFfMiB9LAogI2VuZGlmCiAjaWYgKGRlZmluZWQoTUJFRFRMU19TU0xfSEFWRV9DQkMpICYmIFwKLSAgICBkZWZpbmVkKE1CRURUTFNfTURfQ0FOX1NIQTI1NikpCisgICAgZGVmaW5lZChQU0FfV0FOVF9BTEdfU0hBXzI1NikpCiAgICAgeyBNQkVEVExTX1RMU19SU0FfV0lUSF9BUklBXzEyOF9DQkNfU0hBMjU2LAogICAgICAgIlRMUy1SU0EtV0lUSC1BUklBLTEyOC1DQkMtU0hBMjU2IiwKICAgICAgIE1CRURUTFNfQ0lQSEVSX0FSSUFfMTI4X0NCQywgTUJFRFRMU19NRF9TSEEyNTYsIE1CRURUTFNfS0VZX0VYQ0hBTkdFX1JTQSwKQEAgLTE0ODUsNyArMTQ4NSw3IEBACiAKICNpZiBkZWZpbmVkKE1CRURUTFNfS0VZX0VYQ0hBTkdFX1JTQV9QU0tfRU5BQkxFRCkKIAotI2lmIChkZWZpbmVkKE1CRURUTFNfU1NMX0hBVkVfR0NNKSAmJiBkZWZpbmVkKE1CRURUTFNfTURfQ0FOX1NIQTM4NCkpCisjaWYgKGRlZmluZWQoTUJFRFRMU19TU0xfSEFWRV9HQ00pICYmIGRlZmluZWQoUFNBX1dBTlRfQUxHX1NIQV8zODQpKQogICAgIHsgTUJFRFRMU19UTFNfUlNBX1BTS19XSVRIX0FSSUFfMjU2X0dDTV9TSEEzODQsCiAgICAgICAiVExTLVJTQS1QU0stV0lUSC1BUklBLTI1Ni1HQ00tU0hBMzg0IiwKICAgICAgIE1CRURUTFNfQ0lQSEVSX0FSSUFfMjU2X0dDTSwgTUJFRFRMU19NRF9TSEEzODQsIE1CRURUTFNfS0VZX0VYQ0hBTkdFX1JTQV9QU0ssCkBAIC0xNDkzLDE0ICsxNDkzLDE0IEBACiAgICAgICBNQkVEVExTX1NTTF9WRVJTSU9OX1RMUzFfMiwgTUJFRFRMU19TU0xfVkVSU0lPTl9UTFMxXzIgfSwKICNlbmRpZgogI2lmIChkZWZpbmVkKE1CRURUTFNfU1NMX0hBVkVfQ0JDKSAmJiBcCi0gICAgZGVmaW5lZChNQkVEVExTX01EX0NBTl9TSEEzODQpKQorICAgIGRlZmluZWQoUFNBX1dBTlRfQUxHX1NIQV8zODQpKQogICAgIHsgTUJFRFRMU19UTFNfUlNBX1BTS19XSVRIX0FSSUFfMjU2X0NCQ19TSEEzODQsCiAgICAgICAiVExTLVJTQS1QU0stV0lUSC1BUklBLTI1Ni1DQkMtU0hBMzg0IiwKICAgICAgIE1CRURUTFNfQ0lQSEVSX0FSSUFfMjU2X0NCQywgTUJFRFRMU19NRF9TSEEzODQsIE1CRURUTFNfS0VZX0VYQ0hBTkdFX1JTQV9QU0ssCiAgICAgICAwLAogICAgICAgTUJFRFRMU19TU0xfVkVSU0lPTl9UTFMxXzIsIE1CRURUTFNfU1NMX1ZFUlNJT05fVExTMV8yIH0sCiAjZW5kaWYKLSNpZiAoZGVmaW5lZChNQkVEVExTX1NTTF9IQVZFX0dDTSkgJiYgZGVmaW5lZChNQkVEVExTX01EX0NBTl9TSEEyNTYpKQorI2lmIChkZWZpbmVkKE1CRURUTFNfU1NMX0hBVkVfR0NNKSAmJiBkZWZpbmVkKFBTQV9XQU5UX0FMR19TSEFfMjU2KSkKICAgICB7IE1CRURUTFNfVExTX1JTQV9QU0tfV0lUSF9BUklBXzEyOF9HQ01fU0hBMjU2LAogICAgICAgIlRMUy1SU0EtUFNLLVdJVEgtQVJJQS0xMjgtR0NNLVNIQTI1NiIsCiAgICAgICBNQkVEVExTX0NJUEhFUl9BUklBXzEyOF9HQ00sIE1CRURUTFNfTURfU0hBMjU2LCBNQkVEVExTX0tFWV9FWENIQU5HRV9SU0FfUFNLLApAQCAtMTUwOCw3ICsxNTA4LDcgQEAKICAgICAgIE1CRURUTFNfU1NMX1ZFUlNJT05fVExTMV8yLCBNQkVEVExTX1NTTF9WRVJTSU9OX1RMUzFfMiB9LAogI2VuZGlmCiAjaWYgKGRlZmluZWQoTUJFRFRMU19TU0xfSEFWRV9DQkMpICYmIFwKLSAgICBkZWZpbmVkKE1CRURUTFNfTURfQ0FOX1NIQTI1NikpCisgICAgZGVmaW5lZChQU0FfV0FOVF9BTEdfU0hBXzI1NikpCiAgICAgeyBNQkVEVExTX1RMU19SU0FfUFNLX1dJVEhfQVJJQV8xMjhfQ0JDX1NIQTI1NiwKICAgICAgICJUTFMtUlNBLVBTSy1XSVRILUFSSUEtMTI4LUNCQy1TSEEyNTYiLAogICAgICAgTUJFRFRMU19DSVBIRVJfQVJJQV8xMjhfQ0JDLCBNQkVEVExTX01EX1NIQTI1NiwgTUJFRFRMU19LRVlfRVhDSEFOR0VfUlNBX1BTSywKQEAgLTE1MjAsNyArMTUyMCw3IEBACiAKICNpZiBkZWZpbmVkKE1CRURUTFNfS0VZX0VYQ0hBTkdFX1BTS19FTkFCTEVEKQogCi0jaWYgKGRlZmluZWQoTUJFRFRMU19TU0xfSEFWRV9HQ00pICYmIGRlZmluZWQoTUJFRFRMU19NRF9DQU5fU0hBMzg0KSkKKyNpZiAoZGVmaW5lZChNQkVEVExTX1NTTF9IQVZFX0dDTSkgJiYgZGVmaW5lZChQU0FfV0FOVF9BTEdfU0hBXzM4NCkpCiAgICAgeyBNQkVEVExTX1RMU19QU0tfV0lUSF9BUklBXzI1Nl9HQ01fU0hBMzg0LAogICAgICAgIlRMUy1QU0stV0lUSC1BUklBLTI1Ni1HQ00tU0hBMzg0IiwKICAgICAgIE1CRURUTFNfQ0lQSEVSX0FSSUFfMjU2X0dDTSwgTUJFRFRMU19NRF9TSEEzODQsIE1CRURUTFNfS0VZX0VYQ0hBTkdFX1BTSywKQEAgLTE1MjgsMTQgKzE1MjgsMTQgQEAKICAgICAgIE1CRURUTFNfU1NMX1ZFUlNJT05fVExTMV8yLCBNQkVEVExTX1NTTF9WRVJTSU9OX1RMUzFfMiB9LAogI2VuZGlmCiAjaWYgKGRlZmluZWQoTUJFRFRMU19TU0xfSEFWRV9DQkMpICYmIFwKLSAgICBkZWZpbmVkKE1CRURUTFNfTURfQ0FOX1NIQTM4NCkpCisgICAgZGVmaW5lZChQU0FfV0FOVF9BTEdfU0hBXzM4NCkpCiAgICAgeyBNQkVEVExTX1RMU19QU0tfV0lUSF9BUklBXzI1Nl9DQkNfU0hBMzg0LAogICAgICAgIlRMUy1QU0stV0lUSC1BUklBLTI1Ni1DQkMtU0hBMzg0IiwKICAgICAgIE1CRURUTFNfQ0lQSEVSX0FSSUFfMjU2X0NCQywgTUJFRFRMU19NRF9TSEEzODQsIE1CRURUTFNfS0VZX0VYQ0hBTkdFX1BTSywKICAgICAgIDAsCiAgICAgICBNQkVEVExTX1NTTF9WRVJTSU9OX1RMUzFfMiwgTUJFRFRMU19TU0xfVkVSU0lPTl9UTFMxXzIgfSwKICNlbmRpZgotI2lmIChkZWZpbmVkKE1CRURUTFNfU1NMX0hBVkVfR0NNKSAmJiBkZWZpbmVkKE1CRURUTFNfTURfQ0FOX1NIQTI1NikpCisjaWYgKGRlZmluZWQoTUJFRFRMU19TU0xfSEFWRV9HQ00pICYmIGRlZmluZWQoUFNBX1dBTlRfQUxHX1NIQV8yNTYpKQogICAgIHsgTUJFRFRMU19UTFNfUFNLX1dJVEhfQVJJQV8xMjhfR0NNX1NIQTI1NiwKICAgICAgICJUTFMtUFNLLVdJVEgtQVJJQS0xMjgtR0NNLVNIQTI1NiIsCiAgICAgICBNQkVEVExTX0NJUEhFUl9BUklBXzEyOF9HQ00sIE1CRURUTFNfTURfU0hBMjU2LCBNQkVEVExTX0tFWV9FWENIQU5HRV9QU0ssCkBAIC0xNTQzLDcgKzE1NDMsNyBAQAogICAgICAgTUJFRFRMU19TU0xfVkVSU0lPTl9UTFMxXzIsIE1CRURUTFNfU1NMX1ZFUlNJT05fVExTMV8yIH0sCiAjZW5kaWYKICNpZiAoZGVmaW5lZChNQkVEVExTX1NTTF9IQVZFX0NCQykgJiYgXAotICAgIGRlZmluZWQoTUJFRFRMU19NRF9DQU5fU0hBMjU2KSkKKyAgICBkZWZpbmVkKFBTQV9XQU5UX0FMR19TSEFfMjU2KSkKICAgICB7IE1CRURUTFNfVExTX1BTS19XSVRIX0FSSUFfMTI4X0NCQ19TSEEyNTYsCiAgICAgICAiVExTLVBTSy1XSVRILUFSSUEtMTI4LUNCQy1TSEEyNTYiLAogICAgICAgTUJFRFRMU19DSVBIRVJfQVJJQV8xMjhfQ0JDLCBNQkVEVExTX01EX1NIQTI1NiwgTUJFRFRMU19LRVlfRVhDSEFOR0VfUFNLLApAQCAtMTU1NSw3ICsxNTU1LDcgQEAKIAogI2lmIGRlZmluZWQoTUJFRFRMU19LRVlfRVhDSEFOR0VfRUNESF9SU0FfRU5BQkxFRCkKIAotI2lmIChkZWZpbmVkKE1CRURUTFNfU1NMX0hBVkVfR0NNKSAmJiBkZWZpbmVkKE1CRURUTFNfTURfQ0FOX1NIQTM4NCkpCisjaWYgKGRlZmluZWQoTUJFRFRMU19TU0xfSEFWRV9HQ00pICYmIGRlZmluZWQoUFNBX1dBTlRfQUxHX1NIQV8zODQpKQogICAgIHsgTUJFRFRMU19UTFNfRUNESF9SU0FfV0lUSF9BUklBXzI1Nl9HQ01fU0hBMzg0LAogICAgICAgIlRMUy1FQ0RILVJTQS1XSVRILUFSSUEtMjU2LUdDTS1TSEEzODQiLAogICAgICAgTUJFRFRMU19DSVBIRVJfQVJJQV8yNTZfR0NNLCBNQkVEVExTX01EX1NIQTM4NCwgTUJFRFRMU19LRVlfRVhDSEFOR0VfRUNESF9SU0EsCkBAIC0xNTYzLDE0ICsxNTYzLDE0IEBACiAgICAgICBNQkVEVExTX1NTTF9WRVJTSU9OX1RMUzFfMiwgTUJFRFRMU19TU0xfVkVSU0lPTl9UTFMxXzIgfSwKICNlbmRpZgogI2lmIChkZWZpbmVkKE1CRURUTFNfU1NMX0hBVkVfQ0JDKSAmJiBcCi0gICAgZGVmaW5lZChNQkVEVExTX01EX0NBTl9TSEEzODQpKQorICAgIGRlZmluZWQoUFNBX1dBTlRfQUxHX1NIQV8zODQpKQogICAgIHsgTUJFRFRMU19UTFNfRUNESF9SU0FfV0lUSF9BUklBXzI1Nl9DQkNfU0hBMzg0LAogICAgICAgIlRMUy1FQ0RILVJTQS1XSVRILUFSSUEtMjU2LUNCQy1TSEEzODQiLAogICAgICAgTUJFRFRMU19DSVBIRVJfQVJJQV8yNTZfQ0JDLCBNQkVEVExTX01EX1NIQTM4NCwgTUJFRFRMU19LRVlfRVhDSEFOR0VfRUNESF9SU0EsCiAgICAgICAwLAogICAgICAgTUJFRFRMU19TU0xfVkVSU0lPTl9UTFMxXzIsIE1CRURUTFNfU1NMX1ZFUlNJT05fVExTMV8yIH0sCiAjZW5kaWYKLSNpZiAoZGVmaW5lZChNQkVEVExTX1NTTF9IQVZFX0dDTSkgJiYgZGVmaW5lZChNQkVEVExTX01EX0NBTl9TSEEyNTYpKQorI2lmIChkZWZpbmVkKE1CRURUTFNfU1NMX0hBVkVfR0NNKSAmJiBkZWZpbmVkKFBTQV9XQU5UX0FMR19TSEFfMjU2KSkKICAgICB7IE1CRURUTFNfVExTX0VDREhfUlNBX1dJVEhfQVJJQV8xMjhfR0NNX1NIQTI1NiwKICAgICAgICJUTFMtRUNESC1SU0EtV0lUSC1BUklBLTEyOC1HQ00tU0hBMjU2IiwKICAgICAgIE1CRURUTFNfQ0lQSEVSX0FSSUFfMTI4X0dDTSwgTUJFRFRMU19NRF9TSEEyNTYsIE1CRURUTFNfS0VZX0VYQ0hBTkdFX0VDREhfUlNBLApAQCAtMTU3OCw3ICsxNTc4LDcgQEAKICAgICAgIE1CRURUTFNfU1NMX1ZFUlNJT05fVExTMV8yLCBNQkVEVExTX1NTTF9WRVJTSU9OX1RMUzFfMiB9LAogI2VuZGlmCiAjaWYgKGRlZmluZWQoTUJFRFRMU19TU0xfSEFWRV9DQkMpICYmIFwKLSAgICBkZWZpbmVkKE1CRURUTFNfTURfQ0FOX1NIQTI1NikpCisgICAgZGVmaW5lZChQU0FfV0FOVF9BTEdfU0hBXzI1NikpCiAgICAgeyBNQkVEVExTX1RMU19FQ0RIX1JTQV9XSVRIX0FSSUFfMTI4X0NCQ19TSEEyNTYsCiAgICAgICAiVExTLUVDREgtUlNBLVdJVEgtQVJJQS0xMjgtQ0JDLVNIQTI1NiIsCiAgICAgICBNQkVEVExTX0NJUEhFUl9BUklBXzEyOF9DQkMsIE1CRURUTFNfTURfU0hBMjU2LCBNQkVEVExTX0tFWV9FWENIQU5HRV9FQ0RIX1JTQSwKQEAgLTE1OTAsNyArMTU5MCw3IEBACiAKICNpZiBkZWZpbmVkKE1CRURUTFNfS0VZX0VYQ0hBTkdFX0VDREhFX1JTQV9FTkFCTEVEKQogCi0jaWYgKGRlZmluZWQoTUJFRFRMU19TU0xfSEFWRV9HQ00pICYmIGRlZmluZWQoTUJFRFRMU19NRF9DQU5fU0hBMzg0KSkKKyNpZiAoZGVmaW5lZChNQkVEVExTX1NTTF9IQVZFX0dDTSkgJiYgZGVmaW5lZChQU0FfV0FOVF9BTEdfU0hBXzM4NCkpCiAgICAgeyBNQkVEVExTX1RMU19FQ0RIRV9SU0FfV0lUSF9BUklBXzI1Nl9HQ01fU0hBMzg0LAogICAgICAgIlRMUy1FQ0RIRS1SU0EtV0lUSC1BUklBLTI1Ni1HQ00tU0hBMzg0IiwKICAgICAgIE1CRURUTFNfQ0lQSEVSX0FSSUFfMjU2X0dDTSwgTUJFRFRMU19NRF9TSEEzODQsIE1CRURUTFNfS0VZX0VYQ0hBTkdFX0VDREhFX1JTQSwKQEAgLTE1OTgsMTQgKzE1OTgsMTQgQEAKICAgICAgIE1CRURUTFNfU1NMX1ZFUlNJT05fVExTMV8yLCBNQkVEVExTX1NTTF9WRVJTSU9OX1RMUzFfMiB9LAogI2VuZGlmCiAjaWYgKGRlZmluZWQoTUJFRFRMU19TU0xfSEFWRV9DQkMpICYmIFwKLSAgICBkZWZpbmVkKE1CRURUTFNfTURfQ0FOX1NIQTM4NCkpCisgICAgZGVmaW5lZChQU0FfV0FOVF9BTEdfU0hBXzM4NCkpCiAgICAgeyBNQkVEVExTX1RMU19FQ0RIRV9SU0FfV0lUSF9BUklBXzI1Nl9DQkNfU0hBMzg0LAogICAgICAgIlRMUy1FQ0RIRS1SU0EtV0lUSC1BUklBLTI1Ni1DQkMtU0hBMzg0IiwKICAgICAgIE1CRURUTFNfQ0lQSEVSX0FSSUFfMjU2X0NCQywgTUJFRFRMU19NRF9TSEEzODQsIE1CRURUTFNfS0VZX0VYQ0hBTkdFX0VDREhFX1JTQSwKICAgICAgIDAsCiAgICAgICBNQkVEVExTX1NTTF9WRVJTSU9OX1RMUzFfMiwgTUJFRFRMU19TU0xfVkVSU0lPTl9UTFMxXzIgfSwKICNlbmRpZgotI2lmIChkZWZpbmVkKE1CRURUTFNfU1NMX0hBVkVfR0NNKSAmJiBkZWZpbmVkKE1CRURUTFNfTURfQ0FOX1NIQTI1NikpCisjaWYgKGRlZmluZWQoTUJFRFRMU19TU0xfSEFWRV9HQ00pICYmIGRlZmluZWQoUFNBX1dBTlRfQUxHX1NIQV8yNTYpKQogICAgIHsgTUJFRFRMU19UTFNfRUNESEVfUlNBX1dJVEhfQVJJQV8xMjhfR0NNX1NIQTI1NiwKICAgICAgICJUTFMtRUNESEUtUlNBLVdJVEgtQVJJQS0xMjgtR0NNLVNIQTI1NiIsCiAgICAgICBNQkVEVExTX0NJUEhFUl9BUklBXzEyOF9HQ00sIE1CRURUTFNfTURfU0hBMjU2LCBNQkVEVExTX0tFWV9FWENIQU5HRV9FQ0RIRV9SU0EsCkBAIC0xNjEzLDcgKzE2MTMsNyBAQAogICAgICAgTUJFRFRMU19TU0xfVkVSU0lPTl9UTFMxXzIsIE1CRURUTFNfU1NMX1ZFUlNJT05fVExTMV8yIH0sCiAjZW5kaWYKICNpZiAoZGVmaW5lZChNQkVEVExTX1NTTF9IQVZFX0NCQykgJiYgXAotICAgIGRlZmluZWQoTUJFRFRMU19NRF9DQU5fU0hBMjU2KSkKKyAgICBkZWZpbmVkKFBTQV9XQU5UX0FMR19TSEFfMjU2KSkKICAgICB7IE1CRURUTFNfVExTX0VDREhFX1JTQV9XSVRIX0FSSUFfMTI4X0NCQ19TSEEyNTYsCiAgICAgICAiVExTLUVDREhFLVJTQS1XSVRILUFSSUEtMTI4LUNCQy1TSEEyNTYiLAogICAgICAgTUJFRFRMU19DSVBIRVJfQVJJQV8xMjhfQ0JDLCBNQkVEVExTX01EX1NIQTI1NiwgTUJFRFRMU19LRVlfRVhDSEFOR0VfRUNESEVfUlNBLApAQCAtMTYyNiw3ICsxNjI2LDcgQEAKICNpZiBkZWZpbmVkKE1CRURUTFNfS0VZX0VYQ0hBTkdFX0VDREhFX1BTS19FTkFCTEVEKQogCiAjaWYgKGRlZmluZWQoTUJFRFRMU19TU0xfSEFWRV9DQkMpICYmIFwKLSAgICBkZWZpbmVkKE1CRURUTFNfTURfQ0FOX1NIQTM4NCkpCisgICAgZGVmaW5lZChQU0FfV0FOVF9BTEdfU0hBXzM4NCkpCiAgICAgeyBNQkVEVExTX1RMU19FQ0RIRV9QU0tfV0lUSF9BUklBXzI1Nl9DQkNfU0hBMzg0LAogICAgICAgIlRMUy1FQ0RIRS1QU0stV0lUSC1BUklBLTI1Ni1DQkMtU0hBMzg0IiwKICAgICAgIE1CRURUTFNfQ0lQSEVSX0FSSUFfMjU2X0NCQywgTUJFRFRMU19NRF9TSEEzODQsIE1CRURUTFNfS0VZX0VYQ0hBTkdFX0VDREhFX1BTSywKQEAgLTE2MzQsNyArMTYzNCw3IEBACiAgICAgICBNQkVEVExTX1NTTF9WRVJTSU9OX1RMUzFfMiwgTUJFRFRMU19TU0xfVkVSU0lPTl9UTFMxXzIgfSwKICNlbmRpZgogI2lmIChkZWZpbmVkKE1CRURUTFNfU1NMX0hBVkVfQ0JDKSAmJiBcCi0gICAgZGVmaW5lZChNQkVEVExTX01EX0NBTl9TSEEyNTYpKQorICAgIGRlZmluZWQoUFNBX1dBTlRfQUxHX1NIQV8yNTYpKQogICAgIHsgTUJFRFRMU19UTFNfRUNESEVfUFNLX1dJVEhfQVJJQV8xMjhfQ0JDX1NIQTI1NiwKICAgICAgICJUTFMtRUNESEUtUFNLLVdJVEgtQVJJQS0xMjgtQ0JDLVNIQTI1NiIsCiAgICAgICBNQkVEVExTX0NJUEhFUl9BUklBXzEyOF9DQkMsIE1CRURUTFNfTURfU0hBMjU2LCBNQkVEVExTX0tFWV9FWENIQU5HRV9FQ0RIRV9QU0ssCkBAIC0xNjQ2LDcgKzE2NDYsNyBAQAogCiAjaWYgZGVmaW5lZChNQkVEVExTX0tFWV9FWENIQU5HRV9FQ0RIRV9FQ0RTQV9FTkFCTEVEKQogCi0jaWYgKGRlZmluZWQoTUJFRFRMU19TU0xfSEFWRV9HQ00pICYmIGRlZmluZWQoTUJFRFRMU19NRF9DQU5fU0hBMzg0KSkKKyNpZiAoZGVmaW5lZChNQkVEVExTX1NTTF9IQVZFX0dDTSkgJiYgZGVmaW5lZChQU0FfV0FOVF9BTEdfU0hBXzM4NCkpCiAgICAgeyBNQkVEVExTX1RMU19FQ0RIRV9FQ0RTQV9XSVRIX0FSSUFfMjU2X0dDTV9TSEEzODQsCiAgICAgICAiVExTLUVDREhFLUVDRFNBLVdJVEgtQVJJQS0yNTYtR0NNLVNIQTM4NCIsCiAgICAgICBNQkVEVExTX0NJUEhFUl9BUklBXzI1Nl9HQ00sIE1CRURUTFNfTURfU0hBMzg0LCBNQkVEVExTX0tFWV9FWENIQU5HRV9FQ0RIRV9FQ0RTQSwKQEAgLTE2NTQsMTQgKzE2NTQsMTQgQEAKICAgICAgIE1CRURUTFNfU1NMX1ZFUlNJT05fVExTMV8yLCBNQkVEVExTX1NTTF9WRVJTSU9OX1RMUzFfMiB9LAogI2VuZGlmCiAjaWYgKGRlZmluZWQoTUJFRFRMU19TU0xfSEFWRV9DQkMpICYmIFwKLSAgICBkZWZpbmVkKE1CRURUTFNfTURfQ0FOX1NIQTM4NCkpCisgICAgZGVmaW5lZChQU0FfV0FOVF9BTEdfU0hBXzM4NCkpCiAgICAgeyBNQkVEVExTX1RMU19FQ0RIRV9FQ0RTQV9XSVRIX0FSSUFfMjU2X0NCQ19TSEEzODQsCiAgICAgICAiVExTLUVDREhFLUVDRFNBLVdJVEgtQVJJQS0yNTYtQ0JDLVNIQTM4NCIsCiAgICAgICBNQkVEVExTX0NJUEhFUl9BUklBXzI1Nl9DQkMsIE1CRURUTFNfTURfU0hBMzg0LCBNQkVEVExTX0tFWV9FWENIQU5HRV9FQ0RIRV9FQ0RTQSwKICAgICAgIDAsCiAgICAgICBNQkVEVExTX1NTTF9WRVJTSU9OX1RMUzFfMiwgTUJFRFRMU19TU0xfVkVSU0lPTl9UTFMxXzIgfSwKICNlbmRpZgotI2lmIChkZWZpbmVkKE1CRURUTFNfU1NMX0hBVkVfR0NNKSAmJiBkZWZpbmVkKE1CRURUTFNfTURfQ0FOX1NIQTI1NikpCisjaWYgKGRlZmluZWQoTUJFRFRMU19TU0xfSEFWRV9HQ00pICYmIGRlZmluZWQoUFNBX1dBTlRfQUxHX1NIQV8yNTYpKQogICAgIHsgTUJFRFRMU19UTFNfRUNESEVfRUNEU0FfV0lUSF9BUklBXzEyOF9HQ01fU0hBMjU2LAogICAgICAgIlRMUy1FQ0RIRS1FQ0RTQS1XSVRILUFSSUEtMTI4LUdDTS1TSEEyNTYiLAogICAgICAgTUJFRFRMU19DSVBIRVJfQVJJQV8xMjhfR0NNLCBNQkVEVExTX01EX1NIQTI1NiwgTUJFRFRMU19LRVlfRVhDSEFOR0VfRUNESEVfRUNEU0EsCkBAIC0xNjY5LDcgKzE2NjksNyBAQAogICAgICAgTUJFRFRMU19TU0xfVkVSU0lPTl9UTFMxXzIsIE1CRURUTFNfU1NMX1ZFUlNJT05fVExTMV8yIH0sCiAjZW5kaWYKICNpZiAoZGVmaW5lZChNQkVEVExTX1NTTF9IQVZFX0NCQykgJiYgXAotICAgIGRlZmluZWQoTUJFRFRMU19NRF9DQU5fU0hBMjU2KSkKKyAgICBkZWZpbmVkKFBTQV9XQU5UX0FMR19TSEFfMjU2KSkKICAgICB7IE1CRURUTFNfVExTX0VDREhFX0VDRFNBX1dJVEhfQVJJQV8xMjhfQ0JDX1NIQTI1NiwKICAgICAgICJUTFMtRUNESEUtRUNEU0EtV0lUSC1BUklBLTEyOC1DQkMtU0hBMjU2IiwKICAgICAgIE1CRURUTFNfQ0lQSEVSX0FSSUFfMTI4X0NCQywgTUJFRFRMU19NRF9TSEEyNTYsIE1CRURUTFNfS0VZX0VYQ0hBTkdFX0VDREhFX0VDRFNBLApAQCAtMTY4MSw3ICsxNjgxLDcgQEAKIAogI2lmIGRlZmluZWQoTUJFRFRMU19LRVlfRVhDSEFOR0VfRUNESF9FQ0RTQV9FTkFCTEVEKQogCi0jaWYgKGRlZmluZWQoTUJFRFRMU19TU0xfSEFWRV9HQ00pICYmIGRlZmluZWQoTUJFRFRMU19NRF9DQU5fU0hBMzg0KSkKKyNpZiAoZGVmaW5lZChNQkVEVExTX1NTTF9IQVZFX0dDTSkgJiYgZGVmaW5lZChQU0FfV0FOVF9BTEdfU0hBXzM4NCkpCiAgICAgeyBNQkVEVExTX1RMU19FQ0RIX0VDRFNBX1dJVEhfQVJJQV8yNTZfR0NNX1NIQTM4NCwKICAgICAgICJUTFMtRUNESC1FQ0RTQS1XSVRILUFSSUEtMjU2LUdDTS1TSEEzODQiLAogICAgICAgTUJFRFRMU19DSVBIRVJfQVJJQV8yNTZfR0NNLCBNQkVEVExTX01EX1NIQTM4NCwgTUJFRFRMU19LRVlfRVhDSEFOR0VfRUNESF9FQ0RTQSwKQEAgLTE2ODksMTQgKzE2ODksMTQgQEAKICAgICAgIE1CRURUTFNfU1NMX1ZFUlNJT05fVExTMV8yLCBNQkVEVExTX1NTTF9WRVJTSU9OX1RMUzFfMiB9LAogI2VuZGlmCiAjaWYgKGRlZmluZWQoTUJFRFRMU19TU0xfSEFWRV9DQkMpICYmIFwKLSAgICBkZWZpbmVkKE1CRURUTFNfTURfQ0FOX1NIQTM4NCkpCisgICAgZGVmaW5lZChQU0FfV0FOVF9BTEdfU0hBXzM4NCkpCiAgICAgeyBNQkVEVExTX1RMU19FQ0RIX0VDRFNBX1dJVEhfQVJJQV8yNTZfQ0JDX1NIQTM4NCwKICAgICAgICJUTFMtRUNESC1FQ0RTQS1XSVRILUFSSUEtMjU2LUNCQy1TSEEzODQiLAogICAgICAgTUJFRFRMU19DSVBIRVJfQVJJQV8yNTZfQ0JDLCBNQkVEVExTX01EX1NIQTM4NCwgTUJFRFRMU19LRVlfRVhDSEFOR0VfRUNESF9FQ0RTQSwKICAgICAgIDAsCiAgICAgICBNQkVEVExTX1NTTF9WRVJTSU9OX1RMUzFfMiwgTUJFRFRMU19TU0xfVkVSU0lPTl9UTFMxXzIgfSwKICNlbmRpZgotI2lmIChkZWZpbmVkKE1CRURUTFNfU1NMX0hBVkVfR0NNKSAmJiBkZWZpbmVkKE1CRURUTFNfTURfQ0FOX1NIQTI1NikpCisjaWYgKGRlZmluZWQoTUJFRFRMU19TU0xfSEFWRV9HQ00pICYmIGRlZmluZWQoUFNBX1dBTlRfQUxHX1NIQV8yNTYpKQogICAgIHsgTUJFRFRMU19UTFNfRUNESF9FQ0RTQV9XSVRIX0FSSUFfMTI4X0dDTV9TSEEyNTYsCiAgICAgICAiVExTLUVDREgtRUNEU0EtV0lUSC1BUklBLTEyOC1HQ00tU0hBMjU2IiwKICAgICAgIE1CRURUTFNfQ0lQSEVSX0FSSUFfMTI4X0dDTSwgTUJFRFRMU19NRF9TSEEyNTYsIE1CRURUTFNfS0VZX0VYQ0hBTkdFX0VDREhfRUNEU0EsCkBAIC0xNzA0LDcgKzE3MDQsNyBAQAogICAgICAgTUJFRFRMU19TU0xfVkVSU0lPTl9UTFMxXzIsIE1CRURUTFNfU1NMX1ZFUlNJT05fVExTMV8yIH0sCiAjZW5kaWYKICNpZiAoZGVmaW5lZChNQkVEVExTX1NTTF9IQVZFX0NCQykgJiYgXAotICAgIGRlZmluZWQoTUJFRFRMU19NRF9DQU5fU0hBMjU2KSkKKyAgICBkZWZpbmVkKFBTQV9XQU5UX0FMR19TSEFfMjU2KSkKICAgICB7IE1CRURUTFNfVExTX0VDREhfRUNEU0FfV0lUSF9BUklBXzEyOF9DQkNfU0hBMjU2LAogICAgICAgIlRMUy1FQ0RILUVDRFNBLVdJVEgtQVJJQS0xMjgtQ0JDLVNIQTI1NiIsCiAgICAgICBNQkVEVExTX0NJUEhFUl9BUklBXzEyOF9DQkMsIE1CRURUTFNfTURfU0hBMjU2LCBNQkVEVExTX0tFWV9FWENIQU5HRV9FQ0RIX0VDRFNBLApAQCAtMTcxNiw3ICsxNzE2LDcgQEAKIAogI2lmIGRlZmluZWQoTUJFRFRMU19LRVlfRVhDSEFOR0VfREhFX1JTQV9FTkFCTEVEKQogCi0jaWYgKGRlZmluZWQoTUJFRFRMU19TU0xfSEFWRV9HQ00pICYmIGRlZmluZWQoTUJFRFRMU19NRF9DQU5fU0hBMzg0KSkKKyNpZiAoZGVmaW5lZChNQkVEVExTX1NTTF9IQVZFX0dDTSkgJiYgZGVmaW5lZChQU0FfV0FOVF9BTEdfU0hBXzM4NCkpCiAgICAgeyBNQkVEVExTX1RMU19ESEVfUlNBX1dJVEhfQVJJQV8yNTZfR0NNX1NIQTM4NCwKICAgICAgICJUTFMtREhFLVJTQS1XSVRILUFSSUEtMjU2LUdDTS1TSEEzODQiLAogICAgICAgTUJFRFRMU19DSVBIRVJfQVJJQV8yNTZfR0NNLCBNQkVEVExTX01EX1NIQTM4NCwgTUJFRFRMU19LRVlfRVhDSEFOR0VfREhFX1JTQSwKQEAgLTE3MjQsMTQgKzE3MjQsMTQgQEAKICAgICAgIE1CRURUTFNfU1NMX1ZFUlNJT05fVExTMV8yLCBNQkVEVExTX1NTTF9WRVJTSU9OX1RMUzFfMiB9LAogI2VuZGlmCiAjaWYgKGRlZmluZWQoTUJFRFRMU19TU0xfSEFWRV9DQkMpICYmIFwKLSAgICBkZWZpbmVkKE1CRURUTFNfTURfQ0FOX1NIQTM4NCkpCisgICAgZGVmaW5lZChQU0FfV0FOVF9BTEdfU0hBXzM4NCkpCiAgICAgeyBNQkVEVExTX1RMU19ESEVfUlNBX1dJVEhfQVJJQV8yNTZfQ0JDX1NIQTM4NCwKICAgICAgICJUTFMtREhFLVJTQS1XSVRILUFSSUEtMjU2LUNCQy1TSEEzODQiLAogICAgICAgTUJFRFRMU19DSVBIRVJfQVJJQV8yNTZfQ0JDLCBNQkVEVExTX01EX1NIQTM4NCwgTUJFRFRMU19LRVlfRVhDSEFOR0VfREhFX1JTQSwKICAgICAgIDAsCiAgICAgICBNQkVEVExTX1NTTF9WRVJTSU9OX1RMUzFfMiwgTUJFRFRMU19TU0xfVkVSU0lPTl9UTFMxXzIgfSwKICNlbmRpZgotI2lmIChkZWZpbmVkKE1CRURUTFNfU1NMX0hBVkVfR0NNKSAmJiBkZWZpbmVkKE1CRURUTFNfTURfQ0FOX1NIQTI1NikpCisjaWYgKGRlZmluZWQoTUJFRFRMU19TU0xfSEFWRV9HQ00pICYmIGRlZmluZWQoUFNBX1dBTlRfQUxHX1NIQV8yNTYpKQogICAgIHsgTUJFRFRMU19UTFNfREhFX1JTQV9XSVRIX0FSSUFfMTI4X0dDTV9TSEEyNTYsCiAgICAgICAiVExTLURIRS1SU0EtV0lUSC1BUklBLTEyOC1HQ00tU0hBMjU2IiwKICAgICAgIE1CRURUTFNfQ0lQSEVSX0FSSUFfMTI4X0dDTSwgTUJFRFRMU19NRF9TSEEyNTYsIE1CRURUTFNfS0VZX0VYQ0hBTkdFX0RIRV9SU0EsCkBAIC0xNzM5LDcgKzE3MzksNyBAQAogICAgICAgTUJFRFRMU19TU0xfVkVSU0lPTl9UTFMxXzIsIE1CRURUTFNfU1NMX1ZFUlNJT05fVExTMV8yIH0sCiAjZW5kaWYKICNpZiAoZGVmaW5lZChNQkVEVExTX1NTTF9IQVZFX0NCQykgJiYgXAotICAgIGRlZmluZWQoTUJFRFRMU19NRF9DQU5fU0hBMjU2KSkKKyAgICBkZWZpbmVkKFBTQV9XQU5UX0FMR19TSEFfMjU2KSkKICAgICB7IE1CRURUTFNfVExTX0RIRV9SU0FfV0lUSF9BUklBXzEyOF9DQkNfU0hBMjU2LAogICAgICAgIlRMUy1ESEUtUlNBLVdJVEgtQVJJQS0xMjgtQ0JDLVNIQTI1NiIsCiAgICAgICBNQkVEVExTX0NJUEhFUl9BUklBXzEyOF9DQkMsIE1CRURUTFNfTURfU0hBMjU2LCBNQkVEVExTX0tFWV9FWENIQU5HRV9ESEVfUlNBLApAQCAtMTc1MSw3ICsxNzUxLDcgQEAKIAogI2lmIGRlZmluZWQoTUJFRFRMU19LRVlfRVhDSEFOR0VfREhFX1BTS19FTkFCTEVEKQogCi0jaWYgKGRlZmluZWQoTUJFRFRMU19TU0xfSEFWRV9HQ00pICYmIGRlZmluZWQoTUJFRFRMU19NRF9DQU5fU0hBMzg0KSkKKyNpZiAoZGVmaW5lZChNQkVEVExTX1NTTF9IQVZFX0dDTSkgJiYgZGVmaW5lZChQU0FfV0FOVF9BTEdfU0hBXzM4NCkpCiAgICAgeyBNQkVEVExTX1RMU19ESEVfUFNLX1dJVEhfQVJJQV8yNTZfR0NNX1NIQTM4NCwKICAgICAgICJUTFMtREhFLVBTSy1XSVRILUFSSUEtMjU2LUdDTS1TSEEzODQiLAogICAgICAgTUJFRFRMU19DSVBIRVJfQVJJQV8yNTZfR0NNLCBNQkVEVExTX01EX1NIQTM4NCwgTUJFRFRMU19LRVlfRVhDSEFOR0VfREhFX1BTSywKQEAgLTE3NTksMTQgKzE3NTksMTQgQEAKICAgICAgIE1CRURUTFNfU1NMX1ZFUlNJT05fVExTMV8yLCBNQkVEVExTX1NTTF9WRVJTSU9OX1RMUzFfMiB9LAogI2VuZGlmCiAjaWYgKGRlZmluZWQoTUJFRFRMU19TU0xfSEFWRV9DQkMpICYmIFwKLSAgICBkZWZpbmVkKE1CRURUTFNfTURfQ0FOX1NIQTM4NCkpCisgICAgZGVmaW5lZChQU0FfV0FOVF9BTEdfU0hBXzM4NCkpCiAgICAgeyBNQkVEVExTX1RMU19ESEVfUFNLX1dJVEhfQVJJQV8yNTZfQ0JDX1NIQTM4NCwKICAgICAgICJUTFMtREhFLVBTSy1XSVRILUFSSUEtMjU2LUNCQy1TSEEzODQiLAogICAgICAgTUJFRFRMU19DSVBIRVJfQVJJQV8yNTZfQ0JDLCBNQkVEVExTX01EX1NIQTM4NCwgTUJFRFRMU19LRVlfRVhDSEFOR0VfREhFX1BTSywKICAgICAgIDAsCiAgICAgICBNQkVEVExTX1NTTF9WRVJTSU9OX1RMUzFfMiwgTUJFRFRMU19TU0xfVkVSU0lPTl9UTFMxXzIgfSwKICNlbmRpZgotI2lmIChkZWZpbmVkKE1CRURUTFNfU1NMX0hBVkVfR0NNKSAmJiBkZWZpbmVkKE1CRURUTFNfTURfQ0FOX1NIQTI1NikpCisjaWYgKGRlZmluZWQoTUJFRFRMU19TU0xfSEFWRV9HQ00pICYmIGRlZmluZWQoUFNBX1dBTlRfQUxHX1NIQV8yNTYpKQogICAgIHsgTUJFRFRMU19UTFNfREhFX1BTS19XSVRIX0FSSUFfMTI4X0dDTV9TSEEyNTYsCiAgICAgICAiVExTLURIRS1QU0stV0lUSC1BUklBLTEyOC1HQ00tU0hBMjU2IiwKICAgICAgIE1CRURUTFNfQ0lQSEVSX0FSSUFfMTI4X0dDTSwgTUJFRFRMU19NRF9TSEEyNTYsIE1CRURUTFNfS0VZX0VYQ0hBTkdFX0RIRV9QU0ssCkBAIC0xNzc0LDcgKzE3NzQsNyBAQAogICAgICAgTUJFRFRMU19TU0xfVkVSU0lPTl9UTFMxXzIsIE1CRURUTFNfU1NMX1ZFUlNJT05fVExTMV8yIH0sCiAjZW5kaWYKICNpZiAoZGVmaW5lZChNQkVEVExTX1NTTF9IQVZFX0NCQykgJiYgXAotICAgIGRlZmluZWQoTUJFRFRMU19NRF9DQU5fU0hBMjU2KSkKKyAgICBkZWZpbmVkKFBTQV9XQU5UX0FMR19TSEFfMjU2KSkKICAgICB7IE1CRURUTFNfVExTX0RIRV9QU0tfV0lUSF9BUklBXzEyOF9DQkNfU0hBMjU2LAogICAgICAgIlRMUy1ESEUtUFNLLVdJVEgtQVJJQS0xMjgtQ0JDLVNIQTI1NiIsCiAgICAgICBNQkVEVExTX0NJUEhFUl9BUklBXzEyOF9DQkMsIE1CRURUTFNfTURfU0hBMjU2LCBNQkVEVExTX0tFWV9FWENIQU5HRV9ESEVfUFNLLApkaWZmIC0tZ2l0IGEvbGlicmFyeS9zc2xfY29va2llLmMgYi9saWJyYXJ5L3NzbF9jb29raWUuYwppbmRleCAyNzcyY2FjLi5jYmE1MTNkIDEwMDY0NAotLS0gYS9saWJyYXJ5L3NzbF9jb29raWUuYworKysgYi9saWJyYXJ5L3NzbF9jb29raWUuYwpAQCAtNDAsMTEgKzQwLDExIEBACiAgKiBJZiBEVExTIGlzIGluIHVzZSwgdGhlbiBhdCBsZWFzdCBvbmUgb2YgU0hBLTI1NiBvciBTSEEtMzg0IGlzCiAgKiBhdmFpbGFibGUuIFRyeSBTSEEtMjU2IGZpcnN0IGFzIDM4NCB3YXN0ZXMgcmVzb3VyY2VzCiAgKi8KLSNpZiBkZWZpbmVkKE1CRURUTFNfTURfQ0FOX1NIQTI1NikKKyNpZiBkZWZpbmVkKFBTQV9XQU5UX0FMR19TSEFfMjU2KQogI2RlZmluZSBDT09LSUVfTUQgICAgICAgICAgIE1CRURUTFNfTURfU0hBMjU2CiAjZGVmaW5lIENPT0tJRV9NRF9PVVRMRU4gICAgMzIKICNkZWZpbmUgQ09PS0lFX0hNQUNfTEVOICAgICAyOAotI2VsaWYgZGVmaW5lZChNQkVEVExTX01EX0NBTl9TSEEzODQpCisjZWxpZiBkZWZpbmVkKFBTQV9XQU5UX0FMR19TSEFfMzg0KQogI2RlZmluZSBDT09LSUVfTUQgICAgICAgICAgIE1CRURUTFNfTURfU0hBMzg0CiAjZGVmaW5lIENPT0tJRV9NRF9PVVRMRU4gICAgNDgKICNkZWZpbmUgQ09PS0lFX0hNQUNfTEVOICAgICAyOApAQCAtODQsNiArODQsMTAgQEAKIAogdm9pZCBtYmVkdGxzX3NzbF9jb29raWVfZnJlZShtYmVkdGxzX3NzbF9jb29raWVfY3R4ICpjdHgpCiB7CisgICAgaWYgKGN0eCA9PSBOVUxMKSB7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKICNpZiBkZWZpbmVkKE1CRURUTFNfVVNFX1BTQV9DUllQVE8pCiAgICAgcHNhX2Rlc3Ryb3lfa2V5KGN0eC0+cHNhX2htYWNfa2V5KTsKICNlbHNlCmRpZmYgLS1naXQgYS9saWJyYXJ5L3NzbF9taXNjLmggYi9saWJyYXJ5L3NzbF9taXNjLmgKaW5kZXggYTg4MDdmNi4uM2YyOTczZSAxMDA2NDQKLS0tIGEvbGlicmFyeS9zc2xfbWlzYy5oCisrKyBiL2xpYnJhcnkvc3NsX21pc2MuaApAQCAtMzAsNyArMzAsNyBAQAogI2luY2x1ZGUgIm1iZWR0bHMvc2hhMS5oIgogI2VuZGlmCiAKLSNpZiBkZWZpbmVkKE1CRURUTFNfTURfQ0FOX1NIQTI1NikKKyNpZiBkZWZpbmVkKFBTQV9XQU5UX0FMR19TSEFfMjU2KQogI2luY2x1ZGUgIm1iZWR0bHMvc2hhMjU2LmgiCiAjZW5kaWYKIApAQCAtMjg4LDkgKzI4OCw5IEBACiAKICNpZiBkZWZpbmVkKE1CRURUTFNfU1NMX1NPTUVfU1VJVEVTX1VTRV9NQUMpCiAvKiBDaXBoZXJzdWl0ZXMgdXNpbmcgSE1BQyAqLwotI2lmIGRlZmluZWQoTUJFRFRMU19NRF9DQU5fU0hBMzg0KQorI2lmIGRlZmluZWQoUFNBX1dBTlRfQUxHX1NIQV8zODQpCiAjZGVmaW5lIE1CRURUTFNfU1NMX01BQ19BREQgICAgICAgICAgICAgICAgIDQ4ICAvKiBTSEEtMzg0IHVzZWQgZm9yIEhNQUMgKi8KLSNlbGlmIGRlZmluZWQoTUJFRFRMU19NRF9DQU5fU0hBMjU2KQorI2VsaWYgZGVmaW5lZChQU0FfV0FOVF9BTEdfU0hBXzI1NikKICNkZWZpbmUgTUJFRFRMU19TU0xfTUFDX0FERCAgICAgICAgICAgICAgICAgMzIgIC8qIFNIQS0yNTYgdXNlZCBmb3IgSE1BQyAqLwogI2Vsc2UKICNkZWZpbmUgTUJFRFRMU19TU0xfTUFDX0FERCAgICAgICAgICAgICAgICAgMjAgIC8qIFNIQS0xICAgdXNlZCBmb3IgSE1BQyAqLwpAQCAtOTIyLDE0ICs5MjIsMTQgQEAKICAgICAvKgogICAgICAqIENoZWNrc3VtIGNvbnRleHRzCiAgICAgICovCi0jaWYgZGVmaW5lZChNQkVEVExTX01EX0NBTl9TSEEyNTYpCisjaWYgZGVmaW5lZChQU0FfV0FOVF9BTEdfU0hBXzI1NikKICNpZiBkZWZpbmVkKE1CRURUTFNfVVNFX1BTQV9DUllQVE8pCiAgICAgcHNhX2hhc2hfb3BlcmF0aW9uX3QgZmluX3NoYTI1Nl9wc2E7CiAjZWxzZQogICAgIG1iZWR0bHNfbWRfY29udGV4dF90IGZpbl9zaGEyNTY7CiAjZW5kaWYKICNlbmRpZgotI2lmIGRlZmluZWQoTUJFRFRMU19NRF9DQU5fU0hBMzg0KQorI2lmIGRlZmluZWQoUFNBX1dBTlRfQUxHX1NIQV8zODQpCiAjaWYgZGVmaW5lZChNQkVEVExTX1VTRV9QU0FfQ1JZUFRPKQogICAgIHBzYV9oYXNoX29wZXJhdGlvbl90IGZpbl9zaGEzODRfcHNhOwogI2Vsc2UKQEAgLTI0MjksMTQgKzI0MjksMTQgQEAKIHsKICAgICBzd2l0Y2ggKHNpZ19hbGcpIHsKICNpZiBkZWZpbmVkKE1CRURUTFNfUEtDUzFfVjE1KQotI2lmIGRlZmluZWQoTUJFRFRMU19NRF9DQU5fU0hBMjU2KQorI2lmIGRlZmluZWQoUFNBX1dBTlRfQUxHX1NIQV8yNTYpCiAgICAgICAgIGNhc2UgTUJFRFRMU19UTFMxXzNfU0lHX1JTQV9QS0NTMV9TSEEyNTY6CiAgICAgICAgICAgICBicmVhazsKLSNlbmRpZiAvKiBNQkVEVExTX01EX0NBTl9TSEEyNTYgKi8KLSNpZiBkZWZpbmVkKE1CRURUTFNfTURfQ0FOX1NIQTM4NCkKKyNlbmRpZiAvKiBQU0FfV0FOVF9BTEdfU0hBXzI1NiAqLworI2lmIGRlZmluZWQoUFNBX1dBTlRfQUxHX1NIQV8zODQpCiAgICAgICAgIGNhc2UgTUJFRFRMU19UTFMxXzNfU0lHX1JTQV9QS0NTMV9TSEEzODQ6CiAgICAgICAgICAgICBicmVhazsKLSNlbmRpZiAvKiBNQkVEVExTX01EX0NBTl9TSEEzODQgKi8KKyNlbmRpZiAvKiBQU0FfV0FOVF9BTEdfU0hBXzM4NCAqLwogI2lmIGRlZmluZWQoTUJFRFRMU19NRF9DQU5fU0hBNTEyKQogICAgICAgICBjYXNlIE1CRURUTFNfVExTMV8zX1NJR19SU0FfUEtDUzFfU0hBNTEyOgogICAgICAgICAgICAgYnJlYWs7CkBAIC0yNDgzLDE4ICsyNDgzLDE4IEBACiAKICAgICBzd2l0Y2ggKHNpZ19hbGcpIHsKICNpZiBkZWZpbmVkKE1CRURUTFNfUEtDUzFfVjIxKQotI2lmIGRlZmluZWQoTUJFRFRMU19NRF9DQU5fU0hBMjU2KQorI2lmIGRlZmluZWQoUFNBX1dBTlRfQUxHX1NIQV8yNTYpCiAgICAgICAgIGNhc2UgTUJFRFRMU19UTFMxXzNfU0lHX1JTQV9QU1NfUlNBRV9TSEEyNTY6CiAgICAgICAgICAgICAqbWRfYWxnID0gTUJFRFRMU19NRF9TSEEyNTY7CiAgICAgICAgICAgICAqcGtfdHlwZSA9IE1CRURUTFNfUEtfUlNBU1NBX1BTUzsKICAgICAgICAgICAgIGJyZWFrOwotI2VuZGlmIC8qIE1CRURUTFNfTURfQ0FOX1NIQTI1NiAgKi8KLSNpZiBkZWZpbmVkKE1CRURUTFNfTURfQ0FOX1NIQTM4NCkKKyNlbmRpZiAvKiBQU0FfV0FOVF9BTEdfU0hBXzI1NiAgKi8KKyNpZiBkZWZpbmVkKFBTQV9XQU5UX0FMR19TSEFfMzg0KQogICAgICAgICBjYXNlIE1CRURUTFNfVExTMV8zX1NJR19SU0FfUFNTX1JTQUVfU0hBMzg0OgogICAgICAgICAgICAgKm1kX2FsZyA9IE1CRURUTFNfTURfU0hBMzg0OwogICAgICAgICAgICAgKnBrX3R5cGUgPSBNQkVEVExTX1BLX1JTQVNTQV9QU1M7CiAgICAgICAgICAgICBicmVhazsKLSNlbmRpZiAvKiBNQkVEVExTX01EX0NBTl9TSEEzODQgKi8KKyNlbmRpZiAvKiBQU0FfV0FOVF9BTEdfU0hBXzM4NCAqLwogI2lmIGRlZmluZWQoTUJFRFRMU19NRF9DQU5fU0hBNTEyKQogICAgICAgICBjYXNlIE1CRURUTFNfVExTMV8zX1NJR19SU0FfUFNTX1JTQUVfU0hBNTEyOgogICAgICAgICAgICAgKm1kX2FsZyA9IE1CRURUTFNfTURfU0hBNTEyOwpAQCAtMjUyNywxNyArMjUyNywxNyBAQAogICAgICAgICAgICAgYnJlYWs7CiAjZW5kaWYKIAotI2lmIGRlZmluZWQoTUJFRFRMU19NRF9DQU5fU0hBMjI0KQorI2lmIGRlZmluZWQoUFNBX1dBTlRfQUxHX1NIQV8yMjQpCiAgICAgICAgIGNhc2UgTUJFRFRMU19TU0xfSEFTSF9TSEEyMjQ6CiAgICAgICAgICAgICBicmVhazsKICNlbmRpZgogCi0jaWYgZGVmaW5lZChNQkVEVExTX01EX0NBTl9TSEEyNTYpCisjaWYgZGVmaW5lZChQU0FfV0FOVF9BTEdfU0hBXzI1NikKICAgICAgICAgY2FzZSBNQkVEVExTX1NTTF9IQVNIX1NIQTI1NjoKICAgICAgICAgICAgIGJyZWFrOwogI2VuZGlmCiAKLSNpZiBkZWZpbmVkKE1CRURUTFNfTURfQ0FOX1NIQTM4NCkKKyNpZiBkZWZpbmVkKFBTQV9XQU5UX0FMR19TSEFfMzg0KQogICAgICAgICBjYXNlIE1CRURUTFNfU1NMX0hBU0hfU0hBMzg0OgogICAgICAgICAgICAgYnJlYWs7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL2xpYnJhcnkvc3NsX3RpY2tldC5jIGIvbGlicmFyeS9zc2xfdGlja2V0LmMKaW5kZXggNmEzMWIwYi4uYmZiNjU2YyAxMDA2NDQKLS0tIGEvbGlicmFyeS9zc2xfdGlja2V0LmMKKysrIGIvbGlicmFyeS9zc2xfdGlja2V0LmMKQEAgLTUzNCw2ICs1MzQsMTAgQEAKICAqLwogdm9pZCBtYmVkdGxzX3NzbF90aWNrZXRfZnJlZShtYmVkdGxzX3NzbF90aWNrZXRfY29udGV4dCAqY3R4KQogeworICAgIGlmIChjdHggPT0gTlVMTCkgeworICAgICAgICByZXR1cm47CisgICAgfQorCiAjaWYgZGVmaW5lZChNQkVEVExTX1VTRV9QU0FfQ1JZUFRPKQogICAgIHBzYV9kZXN0cm95X2tleShjdHgtPmtleXNbMF0ua2V5KTsKICAgICBwc2FfZGVzdHJveV9rZXkoY3R4LT5rZXlzWzFdLmtleSk7CmRpZmYgLS1naXQgYS9saWJyYXJ5L3NzbF90bHMuYyBiL2xpYnJhcnkvc3NsX3Rscy5jCmluZGV4IDRjMzFhYTIuLmYwYWRiYzkgMTAwNjQ0Ci0tLSBhL2xpYnJhcnkvc3NsX3Rscy5jCisrKyBiL2xpYnJhcnkvc3NsX3Rscy5jCkBAIC00MjUsNyArNDI1LDcgQEAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBlbmRwb2ludCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBtYmVkdGxzX3NzbF9jb250ZXh0ICpzc2wpOwogCi0jaWYgZGVmaW5lZChNQkVEVExTX01EX0NBTl9TSEEyNTYpCisjaWYgZGVmaW5lZChQU0FfV0FOVF9BTEdfU0hBXzI1NikKIE1CRURUTFNfQ0hFQ0tfUkVUVVJOX0NSSVRJQ0FMCiBzdGF0aWMgaW50IHRsc19wcmZfc2hhMjU2KGNvbnN0IHVuc2lnbmVkIGNoYXIgKnNlY3JldCwgc2l6ZV90IHNsZW4sCiAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKmxhYmVsLApAQCAtNDM0LDkgKzQzNCw5IEBACiBzdGF0aWMgaW50IHNzbF9jYWxjX3ZlcmlmeV90bHNfc2hhMjU2KGNvbnN0IG1iZWR0bHNfc3NsX2NvbnRleHQgKiwgdW5zaWduZWQgY2hhciAqLCBzaXplX3QgKik7CiBzdGF0aWMgaW50IHNzbF9jYWxjX2ZpbmlzaGVkX3Rsc19zaGEyNTYobWJlZHRsc19zc2xfY29udGV4dCAqLCB1bnNpZ25lZCBjaGFyICosIGludCk7CiAKLSNlbmRpZiAvKiBNQkVEVExTX01EX0NBTl9TSEEyNTYqLworI2VuZGlmIC8qIFBTQV9XQU5UX0FMR19TSEFfMjU2Ki8KIAotI2lmIGRlZmluZWQoTUJFRFRMU19NRF9DQU5fU0hBMzg0KQorI2lmIGRlZmluZWQoUFNBX1dBTlRfQUxHX1NIQV8zODQpCiBNQkVEVExTX0NIRUNLX1JFVFVSTl9DUklUSUNBTAogc3RhdGljIGludCB0bHNfcHJmX3NoYTM4NChjb25zdCB1bnNpZ25lZCBjaGFyICpzZWNyZXQsIHNpemVfdCBzbGVuLAogICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICpsYWJlbCwKQEAgLTQ0NSw3ICs0NDUsNyBAQAogCiBzdGF0aWMgaW50IHNzbF9jYWxjX3ZlcmlmeV90bHNfc2hhMzg0KGNvbnN0IG1iZWR0bHNfc3NsX2NvbnRleHQgKiwgdW5zaWduZWQgY2hhciAqLCBzaXplX3QgKik7CiBzdGF0aWMgaW50IHNzbF9jYWxjX2ZpbmlzaGVkX3Rsc19zaGEzODQobWJlZHRsc19zc2xfY29udGV4dCAqLCB1bnNpZ25lZCBjaGFyICosIGludCk7Ci0jZW5kaWYgLyogTUJFRFRMU19NRF9DQU5fU0hBMzg0Ki8KKyNlbmRpZiAvKiBQU0FfV0FOVF9BTEdfU0hBXzM4NCovCiAKIE1CRURUTFNfQ0hFQ0tfUkVUVVJOX0NSSVRJQ0FMCiBzdGF0aWMgaW50IHNzbF90bHMxMl9zZXNzaW9uX2xvYWQobWJlZHRsc19zc2xfc2Vzc2lvbiAqc2Vzc2lvbiwKQEAgLTQ1NSwxMyArNDU1LDEzIEBACiAKIHN0YXRpYyBpbnQgc3NsX3VwZGF0ZV9jaGVja3N1bV9zdGFydChtYmVkdGxzX3NzbF9jb250ZXh0ICosIGNvbnN0IHVuc2lnbmVkIGNoYXIgKiwgc2l6ZV90KTsKIAotI2lmIGRlZmluZWQoTUJFRFRMU19NRF9DQU5fU0hBMjU2KQorI2lmIGRlZmluZWQoUFNBX1dBTlRfQUxHX1NIQV8yNTYpCiBzdGF0aWMgaW50IHNzbF91cGRhdGVfY2hlY2tzdW1fc2hhMjU2KG1iZWR0bHNfc3NsX2NvbnRleHQgKiwgY29uc3QgdW5zaWduZWQgY2hhciAqLCBzaXplX3QpOwotI2VuZGlmIC8qIE1CRURUTFNfTURfQ0FOX1NIQTI1NiovCisjZW5kaWYgLyogUFNBX1dBTlRfQUxHX1NIQV8yNTYqLwogCi0jaWYgZGVmaW5lZChNQkVEVExTX01EX0NBTl9TSEEzODQpCisjaWYgZGVmaW5lZChQU0FfV0FOVF9BTEdfU0hBXzM4NCkKIHN0YXRpYyBpbnQgc3NsX3VwZGF0ZV9jaGVja3N1bV9zaGEzODQobWJlZHRsc19zc2xfY29udGV4dCAqLCBjb25zdCB1bnNpZ25lZCBjaGFyICosIHNpemVfdCk7Ci0jZW5kaWYgLyogTUJFRFRMU19NRF9DQU5fU0hBMzg0Ki8KKyNlbmRpZiAvKiBQU0FfV0FOVF9BTEdfU0hBXzM4NCovCiAKIGludCAgbWJlZHRsc19zc2xfdGxzX3ByZihjb25zdCBtYmVkdGxzX3Rsc19wcmZfdHlwZXMgcHJmLAogICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgKnNlY3JldCwgc2l6ZV90IHNsZW4sCkBAIC00NzMsMTYgKzQ3MywxNiBAQAogCiAgICAgc3dpdGNoIChwcmYpIHsKICNpZiBkZWZpbmVkKE1CRURUTFNfU1NMX1BST1RPX1RMUzFfMikKLSNpZiBkZWZpbmVkKE1CRURUTFNfTURfQ0FOX1NIQTM4NCkKKyNpZiBkZWZpbmVkKFBTQV9XQU5UX0FMR19TSEFfMzg0KQogICAgICAgICBjYXNlIE1CRURUTFNfU1NMX1RMU19QUkZfU0hBMzg0OgogICAgICAgICAgICAgdGxzX3ByZiA9IHRsc19wcmZfc2hhMzg0OwogICAgICAgICAgICAgYnJlYWs7Ci0jZW5kaWYgLyogTUJFRFRMU19NRF9DQU5fU0hBMzg0Ki8KLSNpZiBkZWZpbmVkKE1CRURUTFNfTURfQ0FOX1NIQTI1NikKKyNlbmRpZiAvKiBQU0FfV0FOVF9BTEdfU0hBXzM4NCovCisjaWYgZGVmaW5lZChQU0FfV0FOVF9BTEdfU0hBXzI1NikKICAgICAgICAgY2FzZSBNQkVEVExTX1NTTF9UTFNfUFJGX1NIQTI1NjoKICAgICAgICAgICAgIHRsc19wcmYgPSB0bHNfcHJmX3NoYTI1NjsKICAgICAgICAgICAgIGJyZWFrOwotI2VuZGlmIC8qIE1CRURUTFNfTURfQ0FOX1NIQTI1NiovCisjZW5kaWYgLyogUFNBX1dBTlRfQUxHX1NIQV8yNTYqLwogI2VuZGlmIC8qIE1CRURUTFNfU1NMX1BST1RPX1RMUzFfMiAqLwogICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgcmV0dXJuIE1CRURUTFNfRVJSX1NTTF9GRUFUVVJFX1VOQVZBSUxBQkxFOwpAQCAtNzg0LDEyICs3ODQsMTIgQEAKIHsKICAgICAoKHZvaWQpIGNpcGhlcnN1aXRlX2luZm8pOwogCi0jaWYgZGVmaW5lZChNQkVEVExTX01EX0NBTl9TSEEzODQpCisjaWYgZGVmaW5lZChQU0FfV0FOVF9BTEdfU0hBXzM4NCkKICAgICBpZiAoY2lwaGVyc3VpdGVfaW5mby0+bWFjID09IE1CRURUTFNfTURfU0hBMzg0KSB7CiAgICAgICAgIHNzbC0+aGFuZHNoYWtlLT51cGRhdGVfY2hlY2tzdW0gPSBzc2xfdXBkYXRlX2NoZWNrc3VtX3NoYTM4NDsKICAgICB9IGVsc2UKICNlbmRpZgotI2lmIGRlZmluZWQoTUJFRFRMU19NRF9DQU5fU0hBMjU2KQorI2lmIGRlZmluZWQoUFNBX1dBTlRfQUxHX1NIQV8yNTYpCiAgICAgaWYgKGNpcGhlcnN1aXRlX2luZm8tPm1hYyAhPSBNQkVEVExTX01EX1NIQTM4NCkgewogICAgICAgICBzc2wtPmhhbmRzaGFrZS0+dXBkYXRlX2NoZWNrc3VtID0gc3NsX3VwZGF0ZV9jaGVja3N1bV9zaGEyNTY7CiAgICAgfSBlbHNlCkBAIC04MzAsOCArODMwLDggQEAKIAogaW50IG1iZWR0bHNfc3NsX3Jlc2V0X2NoZWNrc3VtKG1iZWR0bHNfc3NsX2NvbnRleHQgKnNzbCkKIHsKLSNpZiBkZWZpbmVkKE1CRURUTFNfTURfQ0FOX1NIQTI1NikgfHwgXAotICAgIGRlZmluZWQoTUJFRFRMU19NRF9DQU5fU0hBMzg0KQorI2lmIGRlZmluZWQoUFNBX1dBTlRfQUxHX1NIQV8yNTYpIHx8IFwKKyAgICBkZWZpbmVkKFBTQV9XQU5UX0FMR19TSEFfMzg0KQogI2lmIGRlZmluZWQoTUJFRFRMU19VU0VfUFNBX0NSWVBUTykKICAgICBwc2Ffc3RhdHVzX3Qgc3RhdHVzOwogI2Vsc2UKQEAgLTg0MCw3ICs4NDAsNyBAQAogI2Vsc2UgLyogU0hBLTI1NiBvciBTSEEtMzg0ICovCiAgICAgKCh2b2lkKSBzc2wpOwogI2VuZGlmIC8qIFNIQS0yNTYgb3IgU0hBLTM4NCAqLwotI2lmIGRlZmluZWQoTUJFRFRMU19NRF9DQU5fU0hBMjU2KQorI2lmIGRlZmluZWQoUFNBX1dBTlRfQUxHX1NIQV8yNTYpCiAjaWYgZGVmaW5lZChNQkVEVExTX1VTRV9QU0FfQ1JZUFRPKQogICAgIHN0YXR1cyA9IHBzYV9oYXNoX2Fib3J0KCZzc2wtPmhhbmRzaGFrZS0+ZmluX3NoYTI1Nl9wc2EpOwogICAgIGlmIChzdGF0dXMgIT0gUFNBX1NVQ0NFU1MpIHsKQEAgLTg2NSw3ICs4NjUsNyBAQAogICAgIH0KICNlbmRpZgogI2VuZGlmCi0jaWYgZGVmaW5lZChNQkVEVExTX01EX0NBTl9TSEEzODQpCisjaWYgZGVmaW5lZChQU0FfV0FOVF9BTEdfU0hBXzM4NCkKICNpZiBkZWZpbmVkKE1CRURUTFNfVVNFX1BTQV9DUllQVE8pCiAgICAgc3RhdHVzID0gcHNhX2hhc2hfYWJvcnQoJnNzbC0+aGFuZHNoYWtlLT5maW5fc2hhMzg0X3BzYSk7CiAgICAgaWYgKHN0YXR1cyAhPSBQU0FfU1VDQ0VTUykgewpAQCAtODk1LDggKzg5NSw4IEBACiBzdGF0aWMgaW50IHNzbF91cGRhdGVfY2hlY2tzdW1fc3RhcnQobWJlZHRsc19zc2xfY29udGV4dCAqc3NsLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgKmJ1Ziwgc2l6ZV90IGxlbikKIHsKLSNpZiBkZWZpbmVkKE1CRURUTFNfTURfQ0FOX1NIQTI1NikgfHwgXAotICAgIGRlZmluZWQoTUJFRFRMU19NRF9DQU5fU0hBMzg0KQorI2lmIGRlZmluZWQoUFNBX1dBTlRfQUxHX1NIQV8yNTYpIHx8IFwKKyAgICBkZWZpbmVkKFBTQV9XQU5UX0FMR19TSEFfMzg0KQogI2lmIGRlZmluZWQoTUJFRFRMU19VU0VfUFNBX0NSWVBUTykKICAgICBwc2Ffc3RhdHVzX3Qgc3RhdHVzOwogI2Vsc2UKQEAgLTkwNyw3ICs5MDcsNyBAQAogICAgICh2b2lkKSBidWY7CiAgICAgKHZvaWQpIGxlbjsKICNlbmRpZiAvKiBTSEEtMjU2IG9yIFNIQS0zODQgKi8KLSNpZiBkZWZpbmVkKE1CRURUTFNfTURfQ0FOX1NIQTI1NikKKyNpZiBkZWZpbmVkKFBTQV9XQU5UX0FMR19TSEFfMjU2KQogI2lmIGRlZmluZWQoTUJFRFRMU19VU0VfUFNBX0NSWVBUTykKICAgICBzdGF0dXMgPSBwc2FfaGFzaF91cGRhdGUoJnNzbC0+aGFuZHNoYWtlLT5maW5fc2hhMjU2X3BzYSwgYnVmLCBsZW4pOwogICAgIGlmIChzdGF0dXMgIT0gUFNBX1NVQ0NFU1MpIHsKQEAgLTkyMCw3ICs5MjAsNyBAQAogICAgIH0KICNlbmRpZgogI2VuZGlmCi0jaWYgZGVmaW5lZChNQkVEVExTX01EX0NBTl9TSEEzODQpCisjaWYgZGVmaW5lZChQU0FfV0FOVF9BTEdfU0hBXzM4NCkKICNpZiBkZWZpbmVkKE1CRURUTFNfVVNFX1BTQV9DUllQVE8pCiAgICAgc3RhdHVzID0gcHNhX2hhc2hfdXBkYXRlKCZzc2wtPmhhbmRzaGFrZS0+ZmluX3NoYTM4NF9wc2EsIGJ1ZiwgbGVuKTsKICAgICBpZiAoc3RhdHVzICE9IFBTQV9TVUNDRVNTKSB7CkBAIC05MzYsNyArOTM2LDcgQEAKICAgICByZXR1cm4gMDsKIH0KIAotI2lmIGRlZmluZWQoTUJFRFRMU19NRF9DQU5fU0hBMjU2KQorI2lmIGRlZmluZWQoUFNBX1dBTlRfQUxHX1NIQV8yNTYpCiBzdGF0aWMgaW50IHNzbF91cGRhdGVfY2hlY2tzdW1fc2hhMjU2KG1iZWR0bHNfc3NsX2NvbnRleHQgKnNzbCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdW5zaWduZWQgY2hhciAqYnVmLCBzaXplX3QgbGVuKQogewpAQCAtOTQ5LDcgKzk0OSw3IEBACiB9CiAjZW5kaWYKIAotI2lmIGRlZmluZWQoTUJFRFRMU19NRF9DQU5fU0hBMzg0KQorI2lmIGRlZmluZWQoUFNBX1dBTlRfQUxHX1NIQV8zODQpCiBzdGF0aWMgaW50IHNzbF91cGRhdGVfY2hlY2tzdW1fc2hhMzg0KG1iZWR0bHNfc3NsX2NvbnRleHQgKnNzbCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdW5zaWduZWQgY2hhciAqYnVmLCBzaXplX3QgbGVuKQogewpAQCAtOTY2LDE0ICs5NjYsMTQgQEAKIHsKICAgICBtZW1zZXQoaGFuZHNoYWtlLCAwLCBzaXplb2YobWJlZHRsc19zc2xfaGFuZHNoYWtlX3BhcmFtcykpOwogCi0jaWYgZGVmaW5lZChNQkVEVExTX01EX0NBTl9TSEEyNTYpCisjaWYgZGVmaW5lZChQU0FfV0FOVF9BTEdfU0hBXzI1NikKICNpZiBkZWZpbmVkKE1CRURUTFNfVVNFX1BTQV9DUllQVE8pCiAgICAgaGFuZHNoYWtlLT5maW5fc2hhMjU2X3BzYSA9IHBzYV9oYXNoX29wZXJhdGlvbl9pbml0KCk7CiAjZWxzZQogICAgIG1iZWR0bHNfbWRfaW5pdCgmaGFuZHNoYWtlLT5maW5fc2hhMjU2KTsKICNlbmRpZgogI2VuZGlmCi0jaWYgZGVmaW5lZChNQkVEVExTX01EX0NBTl9TSEEzODQpCisjaWYgZGVmaW5lZChQU0FfV0FOVF9BTEdfU0hBXzM4NCkKICNpZiBkZWZpbmVkKE1CRURUTFNfVVNFX1BTQV9DUllQVE8pCiAgICAgaGFuZHNoYWtlLT5maW5fc2hhMzg0X3BzYSA9IHBzYV9oYXNoX29wZXJhdGlvbl9pbml0KCk7CiAjZWxzZQpAQCAtNDc5NSwxNCArNDc5NSwxNCBAQAogICAgIH0KICNlbmRpZiAvKiBNQkVEVExTX1NTTF9BU1lOQ19QUklWQVRFICovCiAKLSNpZiBkZWZpbmVkKE1CRURUTFNfTURfQ0FOX1NIQTI1NikKKyNpZiBkZWZpbmVkKFBTQV9XQU5UX0FMR19TSEFfMjU2KQogI2lmIGRlZmluZWQoTUJFRFRMU19VU0VfUFNBX0NSWVBUTykKICAgICBwc2FfaGFzaF9hYm9ydCgmaGFuZHNoYWtlLT5maW5fc2hhMjU2X3BzYSk7CiAjZWxzZQogICAgIG1iZWR0bHNfbWRfZnJlZSgmaGFuZHNoYWtlLT5maW5fc2hhMjU2KTsKICNlbmRpZgogI2VuZGlmCi0jaWYgZGVmaW5lZChNQkVEVExTX01EX0NBTl9TSEEzODQpCisjaWYgZGVmaW5lZChQU0FfV0FOVF9BTEdfU0hBXzM4NCkKICNpZiBkZWZpbmVkKE1CRURUTFNfVVNFX1BTQV9DUllQVE8pCiAgICAgcHNhX2hhc2hfYWJvcnQoJmhhbmRzaGFrZS0+ZmluX3NoYTM4NF9wc2EpOwogI2Vsc2UKQEAgLTU2MjYsMTMgKzU2MjYsMTMgQEAKICNpZiBkZWZpbmVkKE1CRURUTFNfRUNQX0hBVkVfU0VDUDUyMVIxKQogICAgIE1CRURUTFNfU1NMX0lBTkFfVExTX0dST1VQX1NFQ1A1MjFSMSwKICNlbmRpZgotI2lmIGRlZmluZWQoTUJFRFRMU19FQ1BfSEFWRV9CUDI1NlIxKQorI2lmIGRlZmluZWQoUFNBX1dBTlRfRUNDX0JSQUlOUE9PTF9QX1IxXzI1NikKICAgICBNQkVEVExTX1NTTF9JQU5BX1RMU19HUk9VUF9CUDI1NlIxLAogI2VuZGlmCi0jaWYgZGVmaW5lZChNQkVEVExTX0VDUF9IQVZFX0JQMzg0UjEpCisjaWYgZGVmaW5lZChQU0FfV0FOVF9FQ0NfQlJBSU5QT09MX1BfUjFfMzg0KQogICAgIE1CRURUTFNfU1NMX0lBTkFfVExTX0dST1VQX0JQMzg0UjEsCiAjZW5kaWYKLSNpZiBkZWZpbmVkKE1CRURUTFNfRUNQX0hBVkVfQlA1MTJSMSkKKyNpZiBkZWZpbmVkKFBTQV9XQU5UX0VDQ19CUkFJTlBPT0xfUF9SMV81MTIpCiAgICAgTUJFRFRMU19TU0xfSUFOQV9UTFNfR1JPVVBfQlA1MTJSMSwKICNlbmRpZgogI2lmIGRlZmluZWQoUFNBX1dBTlRfQUxHX0ZGREgpCkBAIC01NjY0LDE0ICs1NjY0LDE0IEBACiBzdGF0aWMgY29uc3QgdWludDE2X3Qgc3NsX3ByZXNldF9kZWZhdWx0X3NpZ19hbGdzW10gPSB7CiAKICNpZiBkZWZpbmVkKE1CRURUTFNfS0VZX0VYQ0hBTkdFX0VDRFNBX0NFUlRfUkVRX0FOWV9BTExPV0VEX0VOQUJMRUQpICYmIFwKLSAgICBkZWZpbmVkKE1CRURUTFNfTURfQ0FOX1NIQTI1NikgJiYgXAorICAgIGRlZmluZWQoUFNBX1dBTlRfQUxHX1NIQV8yNTYpICYmIFwKICAgICBkZWZpbmVkKFBTQV9XQU5UX0VDQ19TRUNQX1IxXzI1NikKICAgICBNQkVEVExTX1RMUzFfM19TSUdfRUNEU0FfU0VDUDI1NlIxX1NIQTI1NiwKICAgICAvLyA9PSBNQkVEVExTX1NTTF9UTFMxMl9TSUdfQU5EX0hBU0hfQUxHKE1CRURUTFNfU1NMX1NJR19FQ0RTQSwgTUJFRFRMU19TU0xfSEFTSF9TSEEyNTYpCiAjZW5kaWYKIAogI2lmIGRlZmluZWQoTUJFRFRMU19LRVlfRVhDSEFOR0VfRUNEU0FfQ0VSVF9SRVFfQU5ZX0FMTE9XRURfRU5BQkxFRCkgJiYgXAotICAgIGRlZmluZWQoTUJFRFRMU19NRF9DQU5fU0hBMzg0KSAmJiBcCisgICAgZGVmaW5lZChQU0FfV0FOVF9BTEdfU0hBXzM4NCkgJiYgXAogICAgIGRlZmluZWQoUFNBX1dBTlRfRUNDX1NFQ1BfUjFfMzg0KQogICAgIE1CRURUTFNfVExTMV8zX1NJR19FQ0RTQV9TRUNQMzg0UjFfU0hBMzg0LAogICAgIC8vID09IE1CRURUTFNfU1NMX1RMUzEyX1NJR19BTkRfSEFTSF9BTEcoTUJFRFRMU19TU0xfU0lHX0VDRFNBLCBNQkVEVExTX1NTTF9IQVNIX1NIQTM4NCkKQEAgLTU2ODgsMTEgKzU2ODgsMTEgQEAKICAgICBNQkVEVExTX1RMUzFfM19TSUdfUlNBX1BTU19SU0FFX1NIQTUxMiwKICNlbmRpZgogCi0jaWYgZGVmaW5lZChNQkVEVExTX1g1MDlfUlNBU1NBX1BTU19TVVBQT1JUKSAmJiBkZWZpbmVkKE1CRURUTFNfTURfQ0FOX1NIQTM4NCkKKyNpZiBkZWZpbmVkKE1CRURUTFNfWDUwOV9SU0FTU0FfUFNTX1NVUFBPUlQpICYmIGRlZmluZWQoUFNBX1dBTlRfQUxHX1NIQV8zODQpCiAgICAgTUJFRFRMU19UTFMxXzNfU0lHX1JTQV9QU1NfUlNBRV9TSEEzODQsCiAjZW5kaWYKIAotI2lmIGRlZmluZWQoTUJFRFRMU19YNTA5X1JTQVNTQV9QU1NfU1VQUE9SVCkgJiYgZGVmaW5lZChNQkVEVExTX01EX0NBTl9TSEEyNTYpCisjaWYgZGVmaW5lZChNQkVEVExTX1g1MDlfUlNBU1NBX1BTU19TVVBQT1JUKSAmJiBkZWZpbmVkKFBTQV9XQU5UX0FMR19TSEFfMjU2KQogICAgIE1CRURUTFNfVExTMV8zX1NJR19SU0FfUFNTX1JTQUVfU0hBMjU2LAogI2VuZGlmCiAKQEAgLTU3MDAsMTMgKzU3MDAsMTMgQEAKICAgICBNQkVEVExTX1RMUzFfM19TSUdfUlNBX1BLQ1MxX1NIQTUxMiwKICNlbmRpZiAvKiBNQkVEVExTX1JTQV9DICYmIE1CRURUTFNfTURfQ0FOX1NIQTUxMiAqLwogCi0jaWYgZGVmaW5lZChNQkVEVExTX1JTQV9DKSAmJiBkZWZpbmVkKE1CRURUTFNfTURfQ0FOX1NIQTM4NCkKKyNpZiBkZWZpbmVkKE1CRURUTFNfUlNBX0MpICYmIGRlZmluZWQoUFNBX1dBTlRfQUxHX1NIQV8zODQpCiAgICAgTUJFRFRMU19UTFMxXzNfU0lHX1JTQV9QS0NTMV9TSEEzODQsCi0jZW5kaWYgLyogTUJFRFRMU19SU0FfQyAmJiBNQkVEVExTX01EX0NBTl9TSEEzODQgKi8KKyNlbmRpZiAvKiBNQkVEVExTX1JTQV9DICYmIFBTQV9XQU5UX0FMR19TSEFfMzg0ICovCiAKLSNpZiBkZWZpbmVkKE1CRURUTFNfUlNBX0MpICYmIGRlZmluZWQoTUJFRFRMU19NRF9DQU5fU0hBMjU2KQorI2lmIGRlZmluZWQoTUJFRFRMU19SU0FfQykgJiYgZGVmaW5lZChQU0FfV0FOVF9BTEdfU0hBXzI1NikKICAgICBNQkVEVExTX1RMUzFfM19TSUdfUlNBX1BLQ1MxX1NIQTI1NiwKLSNlbmRpZiAvKiBNQkVEVExTX1JTQV9DICYmIE1CRURUTFNfTURfQ0FOX1NIQTI1NiAqLworI2VuZGlmIC8qIE1CRURUTFNfUlNBX0MgJiYgUFNBX1dBTlRfQUxHX1NIQV8yNTYgKi8KIAogICAgIE1CRURUTFNfVExTX1NJR19OT05FCiB9OwpAQCAtNTcyNyw3ICs1NzI3LDcgQEAKICNlbmRpZgogI2VuZGlmIC8qIE1CRURUTFNfTURfQ0FOX1NIQTUxMiAqLwogCi0jaWYgZGVmaW5lZChNQkVEVExTX01EX0NBTl9TSEEzODQpCisjaWYgZGVmaW5lZChQU0FfV0FOVF9BTEdfU0hBXzM4NCkKICNpZiBkZWZpbmVkKE1CRURUTFNfS0VZX0VYQ0hBTkdFX0VDRFNBX0NFUlRfUkVRX0FMTE9XRURfRU5BQkxFRCkKICAgICBNQkVEVExTX1NTTF9UTFMxMl9TSUdfQU5EX0hBU0hfQUxHKE1CRURUTFNfU1NMX1NJR19FQ0RTQSwgTUJFRFRMU19TU0xfSEFTSF9TSEEzODQpLAogI2VuZGlmCkBAIC01NzM3LDkgKzU3MzcsOSBAQAogI2lmIGRlZmluZWQoTUJFRFRMU19SU0FfQykKICAgICBNQkVEVExTX1NTTF9UTFMxMl9TSUdfQU5EX0hBU0hfQUxHKE1CRURUTFNfU1NMX1NJR19SU0EsIE1CRURUTFNfU1NMX0hBU0hfU0hBMzg0KSwKICNlbmRpZgotI2VuZGlmIC8qIE1CRURUTFNfTURfQ0FOX1NIQTM4NCAqLworI2VuZGlmIC8qIFBTQV9XQU5UX0FMR19TSEFfMzg0ICovCiAKLSNpZiBkZWZpbmVkKE1CRURUTFNfTURfQ0FOX1NIQTI1NikKKyNpZiBkZWZpbmVkKFBTQV9XQU5UX0FMR19TSEFfMjU2KQogI2lmIGRlZmluZWQoTUJFRFRMU19LRVlfRVhDSEFOR0VfRUNEU0FfQ0VSVF9SRVFfQUxMT1dFRF9FTkFCTEVEKQogICAgIE1CRURUTFNfU1NMX1RMUzEyX1NJR19BTkRfSEFTSF9BTEcoTUJFRFRMU19TU0xfU0lHX0VDRFNBLCBNQkVEVExTX1NTTF9IQVNIX1NIQTI1NiksCiAjZW5kaWYKQEAgLTU3NDksNyArNTc0OSw3IEBACiAjaWYgZGVmaW5lZChNQkVEVExTX1JTQV9DKQogICAgIE1CRURUTFNfU1NMX1RMUzEyX1NJR19BTkRfSEFTSF9BTEcoTUJFRFRMU19TU0xfU0lHX1JTQSwgTUJFRFRMU19TU0xfSEFTSF9TSEEyNTYpLAogI2VuZGlmCi0jZW5kaWYgLyogTUJFRFRMU19NRF9DQU5fU0hBMjU2ICovCisjZW5kaWYgLyogUFNBX1dBTlRfQUxHX1NIQV8yNTYgKi8KIAogICAgIE1CRURUTFNfVExTX1NJR19OT05FCiB9OwpAQCAtNTc1OSwxNCArNTc1OSwxNCBAQAogc3RhdGljIGNvbnN0IHVpbnQxNl90IHNzbF9wcmVzZXRfc3VpdGViX3NpZ19hbGdzW10gPSB7CiAKICNpZiBkZWZpbmVkKE1CRURUTFNfS0VZX0VYQ0hBTkdFX0VDRFNBX0NFUlRfUkVRX0FOWV9BTExPV0VEX0VOQUJMRUQpICYmIFwKLSAgICBkZWZpbmVkKE1CRURUTFNfTURfQ0FOX1NIQTI1NikgJiYgXAorICAgIGRlZmluZWQoUFNBX1dBTlRfQUxHX1NIQV8yNTYpICYmIFwKICAgICBkZWZpbmVkKE1CRURUTFNfRUNQX0hBVkVfU0VDUDI1NlIxKQogICAgIE1CRURUTFNfVExTMV8zX1NJR19FQ0RTQV9TRUNQMjU2UjFfU0hBMjU2LAogICAgIC8vID09IE1CRURUTFNfU1NMX1RMUzEyX1NJR19BTkRfSEFTSF9BTEcoTUJFRFRMU19TU0xfU0lHX0VDRFNBLCBNQkVEVExTX1NTTF9IQVNIX1NIQTI1NikKICNlbmRpZgogCiAjaWYgZGVmaW5lZChNQkVEVExTX0tFWV9FWENIQU5HRV9FQ0RTQV9DRVJUX1JFUV9BTllfQUxMT1dFRF9FTkFCTEVEKSAmJiBcCi0gICAgZGVmaW5lZChNQkVEVExTX01EX0NBTl9TSEEzODQpICYmIFwKKyAgICBkZWZpbmVkKFBTQV9XQU5UX0FMR19TSEFfMzg0KSAmJiBcCiAgICAgZGVmaW5lZChNQkVEVExTX0VDUF9IQVZFX1NFQ1AzODRSMSkKICAgICBNQkVEVExTX1RMUzFfM19TSUdfRUNEU0FfU0VDUDM4NFIxX1NIQTM4NCwKICAgICAvLyA9PSBNQkVEVExTX1NTTF9UTFMxMl9TSUdfQU5EX0hBU0hfQUxHKE1CRURUTFNfU1NMX1NJR19FQ0RTQSwgTUJFRFRMU19TU0xfSEFTSF9TSEEzODQpCkBAIC01Nzc5LDE3ICs1Nzc5LDE3IEBACiAjaWYgZGVmaW5lZChNQkVEVExTX1NTTF9QUk9UT19UTFMxXzIpCiBzdGF0aWMgdWludDE2X3Qgc3NsX3RsczEyX3ByZXNldF9zdWl0ZWJfc2lnX2FsZ3NbXSA9IHsKIAotI2lmIGRlZmluZWQoTUJFRFRMU19NRF9DQU5fU0hBMjU2KQorI2lmIGRlZmluZWQoUFNBX1dBTlRfQUxHX1NIQV8yNTYpCiAjaWYgZGVmaW5lZChNQkVEVExTX0tFWV9FWENIQU5HRV9FQ0RTQV9DRVJUX1JFUV9BTExPV0VEX0VOQUJMRUQpCiAgICAgTUJFRFRMU19TU0xfVExTMTJfU0lHX0FORF9IQVNIX0FMRyhNQkVEVExTX1NTTF9TSUdfRUNEU0EsIE1CRURUTFNfU1NMX0hBU0hfU0hBMjU2KSwKICNlbmRpZgotI2VuZGlmIC8qIE1CRURUTFNfTURfQ0FOX1NIQTI1NiAqLworI2VuZGlmIC8qIFBTQV9XQU5UX0FMR19TSEFfMjU2ICovCiAKLSNpZiBkZWZpbmVkKE1CRURUTFNfTURfQ0FOX1NIQTM4NCkKKyNpZiBkZWZpbmVkKFBTQV9XQU5UX0FMR19TSEFfMzg0KQogI2lmIGRlZmluZWQoTUJFRFRMU19LRVlfRVhDSEFOR0VfRUNEU0FfQ0VSVF9SRVFfQUxMT1dFRF9FTkFCTEVEKQogICAgIE1CRURUTFNfU1NMX1RMUzEyX1NJR19BTkRfSEFTSF9BTEcoTUJFRFRMU19TU0xfU0lHX0VDRFNBLCBNQkVEVExTX1NTTF9IQVNIX1NIQTM4NCksCiAjZW5kaWYKLSNlbmRpZiAvKiBNQkVEVExTX01EX0NBTl9TSEEzODQgKi8KKyNlbmRpZiAvKiBQU0FfV0FOVF9BTEdfU0hBXzM4NCAqLwogCiAgICAgTUJFRFRMU19UTFNfU0lHX05PTkUKIH07CkBAIC02MDQwLDYgKzYwNDAsMTAgQEAKICAqLwogdm9pZCBtYmVkdGxzX3NzbF9jb25maWdfZnJlZShtYmVkdGxzX3NzbF9jb25maWcgKmNvbmYpCiB7CisgICAgaWYgKGNvbmYgPT0gTlVMTCkgeworICAgICAgICByZXR1cm47CisgICAgfQorCiAjaWYgZGVmaW5lZChNQkVEVExTX0RITV9DKQogICAgIG1iZWR0bHNfbXBpX2ZyZWUoJmNvbmYtPmRobV9QKTsKICAgICBtYmVkdGxzX21waV9mcmVlKCZjb25mLT5kaG1fRyk7CkBAIC02MTM2LDE1ICs2MTQwLDE1IEBACiAgICAgICAgIGNhc2UgTUJFRFRMU19TU0xfSEFTSF9TSEExOgogICAgICAgICAgICAgcmV0dXJuIE1CRURUTFNfTURfU0hBMTsKICNlbmRpZgotI2lmIGRlZmluZWQoTUJFRFRMU19NRF9DQU5fU0hBMjI0KQorI2lmIGRlZmluZWQoUFNBX1dBTlRfQUxHX1NIQV8yMjQpCiAgICAgICAgIGNhc2UgTUJFRFRMU19TU0xfSEFTSF9TSEEyMjQ6CiAgICAgICAgICAgICByZXR1cm4gTUJFRFRMU19NRF9TSEEyMjQ7CiAjZW5kaWYKLSNpZiBkZWZpbmVkKE1CRURUTFNfTURfQ0FOX1NIQTI1NikKKyNpZiBkZWZpbmVkKFBTQV9XQU5UX0FMR19TSEFfMjU2KQogICAgICAgICBjYXNlIE1CRURUTFNfU1NMX0hBU0hfU0hBMjU2OgogICAgICAgICAgICAgcmV0dXJuIE1CRURUTFNfTURfU0hBMjU2OwogI2VuZGlmCi0jaWYgZGVmaW5lZChNQkVEVExTX01EX0NBTl9TSEEzODQpCisjaWYgZGVmaW5lZChQU0FfV0FOVF9BTEdfU0hBXzM4NCkKICAgICAgICAgY2FzZSBNQkVEVExTX1NTTF9IQVNIX1NIQTM4NDoKICAgICAgICAgICAgIHJldHVybiBNQkVEVExTX01EX1NIQTM4NDsKICNlbmRpZgpAQCAtNjE3MSwxNSArNjE3NSwxNSBAQAogICAgICAgICBjYXNlIE1CRURUTFNfTURfU0hBMToKICAgICAgICAgICAgIHJldHVybiBNQkVEVExTX1NTTF9IQVNIX1NIQTE7CiAjZW5kaWYKLSNpZiBkZWZpbmVkKE1CRURUTFNfTURfQ0FOX1NIQTIyNCkKKyNpZiBkZWZpbmVkKFBTQV9XQU5UX0FMR19TSEFfMjI0KQogICAgICAgICBjYXNlIE1CRURUTFNfTURfU0hBMjI0OgogICAgICAgICAgICAgcmV0dXJuIE1CRURUTFNfU1NMX0hBU0hfU0hBMjI0OwogI2VuZGlmCi0jaWYgZGVmaW5lZChNQkVEVExTX01EX0NBTl9TSEEyNTYpCisjaWYgZGVmaW5lZChQU0FfV0FOVF9BTEdfU0hBXzI1NikKICAgICAgICAgY2FzZSBNQkVEVExTX01EX1NIQTI1NjoKICAgICAgICAgICAgIHJldHVybiBNQkVEVExTX1NTTF9IQVNIX1NIQTI1NjsKICNlbmRpZgotI2lmIGRlZmluZWQoTUJFRFRMU19NRF9DQU5fU0hBMzg0KQorI2lmIGRlZmluZWQoUFNBX1dBTlRfQUxHX1NIQV8zODQpCiAgICAgICAgIGNhc2UgTUJFRFRMU19NRF9TSEEzODQ6CiAgICAgICAgICAgICByZXR1cm4gTUJFRFRMU19TU0xfSEFTSF9TSEEzODQ7CiAjZW5kaWYKQEAgLTYyMzksMzQgKzYyNDMsMzQgQEAKICNpZiBkZWZpbmVkKE1CRURUTFNfRUNQX0hBVkVfU0VDUDUyMVIxKQogICAgIHsgMjUsIE1CRURUTFNfRUNQX0RQX1NFQ1A1MjFSMSwgUFNBX0VDQ19GQU1JTFlfU0VDUF9SMSwgNTIxIH0sCiAjZW5kaWYKLSNpZiBkZWZpbmVkKE1CRURUTFNfRUNQX0hBVkVfQlA1MTJSMSkKKyNpZiBkZWZpbmVkKFBTQV9XQU5UX0VDQ19CUkFJTlBPT0xfUF9SMV81MTIpCiAgICAgeyAyOCwgTUJFRFRMU19FQ1BfRFBfQlA1MTJSMSwgUFNBX0VDQ19GQU1JTFlfQlJBSU5QT09MX1BfUjEsIDUxMiB9LAogI2VuZGlmCiAjaWYgZGVmaW5lZChNQkVEVExTX0VDUF9IQVZFX1NFQ1AzODRSMSkKICAgICB7IDI0LCBNQkVEVExTX0VDUF9EUF9TRUNQMzg0UjEsIFBTQV9FQ0NfRkFNSUxZX1NFQ1BfUjEsIDM4NCB9LAogI2VuZGlmCi0jaWYgZGVmaW5lZChNQkVEVExTX0VDUF9IQVZFX0JQMzg0UjEpCisjaWYgZGVmaW5lZChQU0FfV0FOVF9FQ0NfQlJBSU5QT09MX1BfUjFfMzg0KQogICAgIHsgMjcsIE1CRURUTFNfRUNQX0RQX0JQMzg0UjEsIFBTQV9FQ0NfRkFNSUxZX0JSQUlOUE9PTF9QX1IxLCAzODQgfSwKICNlbmRpZgogI2lmIGRlZmluZWQoTUJFRFRMU19FQ1BfSEFWRV9TRUNQMjU2UjEpCiAgICAgeyAyMywgTUJFRFRMU19FQ1BfRFBfU0VDUDI1NlIxLCBQU0FfRUNDX0ZBTUlMWV9TRUNQX1IxLCAyNTYgfSwKICNlbmRpZgotI2lmIGRlZmluZWQoTUJFRFRMU19FQ1BfSEFWRV9TRUNQMjU2SzEpCisjaWYgZGVmaW5lZChQU0FfV0FOVF9FQ0NfU0VDUF9LMV8yNTYpCiAgICAgeyAyMiwgTUJFRFRMU19FQ1BfRFBfU0VDUDI1NksxLCBQU0FfRUNDX0ZBTUlMWV9TRUNQX0sxLCAyNTYgfSwKICNlbmRpZgotI2lmIGRlZmluZWQoTUJFRFRMU19FQ1BfSEFWRV9CUDI1NlIxKQorI2lmIGRlZmluZWQoUFNBX1dBTlRfRUNDX0JSQUlOUE9PTF9QX1IxXzI1NikKICAgICB7IDI2LCBNQkVEVExTX0VDUF9EUF9CUDI1NlIxLCBQU0FfRUNDX0ZBTUlMWV9CUkFJTlBPT0xfUF9SMSwgMjU2IH0sCiAjZW5kaWYKLSNpZiBkZWZpbmVkKE1CRURUTFNfRUNQX0hBVkVfU0VDUDIyNFIxKQorI2lmIGRlZmluZWQoUFNBX1dBTlRfRUNDX1NFQ1BfUjFfMjI0KQogICAgIHsgMjEsIE1CRURUTFNfRUNQX0RQX1NFQ1AyMjRSMSwgUFNBX0VDQ19GQU1JTFlfU0VDUF9SMSwgMjI0IH0sCiAjZW5kaWYKICNpZiBkZWZpbmVkKE1CRURUTFNfRUNQX0hBVkVfU0VDUDIyNEsxKQogICAgIHsgMjAsIE1CRURUTFNfRUNQX0RQX1NFQ1AyMjRLMSwgUFNBX0VDQ19GQU1JTFlfU0VDUF9LMSwgMjI0IH0sCiAjZW5kaWYKLSNpZiBkZWZpbmVkKE1CRURUTFNfRUNQX0hBVkVfU0VDUDE5MlIxKQorI2lmIGRlZmluZWQoUFNBX1dBTlRfRUNDX1NFQ1BfUjFfMTkyKQogICAgIHsgMTksIE1CRURUTFNfRUNQX0RQX1NFQ1AxOTJSMSwgUFNBX0VDQ19GQU1JTFlfU0VDUF9SMSwgMTkyIH0sCiAjZW5kaWYKLSNpZiBkZWZpbmVkKE1CRURUTFNfRUNQX0hBVkVfU0VDUDE5MksxKQorI2lmIGRlZmluZWQoUFNBX1dBTlRfRUNDX1NFQ1BfSzFfMTkyKQogICAgIHsgMTgsIE1CRURUTFNfRUNQX0RQX1NFQ1AxOTJLMSwgUFNBX0VDQ19GQU1JTFlfU0VDUF9LMSwgMTkyIH0sCiAjZW5kaWYKICNpZiBkZWZpbmVkKE1CRURUTFNfRUNQX0hBVkVfQ1VSVkUyNTUxOSkKQEAgLTY0MzMsMTMgKzY0MzcsMTMgQEAKICAgICAqb2xlbiA9IDA7CiAKICAgICBzd2l0Y2ggKG1kKSB7Ci0jaWYgZGVmaW5lZChNQkVEVExTX01EX0NBTl9TSEEzODQpCisjaWYgZGVmaW5lZChQU0FfV0FOVF9BTEdfU0hBXzM4NCkKICAgICAgICAgY2FzZSBNQkVEVExTX01EX1NIQTM4NDoKICAgICAgICAgICAgIGhhc2hfb3BlcmF0aW9uX3RvX2Nsb25lID0gJnNzbC0+aGFuZHNoYWtlLT5maW5fc2hhMzg0X3BzYTsKICAgICAgICAgICAgIGJyZWFrOwogI2VuZGlmCiAKLSNpZiBkZWZpbmVkKE1CRURUTFNfTURfQ0FOX1NIQTI1NikKKyNpZiBkZWZpbmVkKFBTQV9XQU5UX0FMR19TSEFfMjU2KQogICAgICAgICBjYXNlIE1CRURUTFNfTURfU0hBMjU2OgogICAgICAgICAgICAgaGFzaF9vcGVyYXRpb25fdG9fY2xvbmUgPSAmc3NsLT5oYW5kc2hha2UtPmZpbl9zaGEyNTZfcHNhOwogICAgICAgICAgICAgYnJlYWs7CkBAIC02NDYwLDE1ICs2NDY0LDE1IEBACiAgICAgfQogCiBleGl0OgotI2lmICFkZWZpbmVkKE1CRURUTFNfTURfQ0FOX1NIQTM4NCkgJiYgXAotICAgICFkZWZpbmVkKE1CRURUTFNfTURfQ0FOX1NIQTI1NikKKyNpZiAhZGVmaW5lZChQU0FfV0FOVF9BTEdfU0hBXzM4NCkgJiYgXAorICAgICFkZWZpbmVkKFBTQV9XQU5UX0FMR19TSEFfMjU2KQogICAgICh2b2lkKSBzc2w7CiAjZW5kaWYKICAgICByZXR1cm4gUFNBX1RPX01CRURUTFNfRVJSKHN0YXR1cyk7CiB9CiAjZWxzZSAvKiBNQkVEVExTX1VTRV9QU0FfQ1JZUFRPICovCiAKLSNpZiBkZWZpbmVkKE1CRURUTFNfTURfQ0FOX1NIQTM4NCkKKyNpZiBkZWZpbmVkKFBTQV9XQU5UX0FMR19TSEFfMzg0KQogTUJFRFRMU19DSEVDS19SRVRVUk5fQ1JJVElDQUwKIHN0YXRpYyBpbnQgc3NsX2dldF9oYW5kc2hha2VfdHJhbnNjcmlwdF9zaGEzODQobWJlZHRsc19zc2xfY29udGV4dCAqc3NsLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBjaGFyICpkc3QsCkBAIC02NTA0LDkgKzY1MDgsOSBAQAogICAgIG1iZWR0bHNfbWRfZnJlZSgmc2hhMzg0KTsKICAgICByZXR1cm4gcmV0OwogfQotI2VuZGlmIC8qIE1CRURUTFNfTURfQ0FOX1NIQTM4NCAqLworI2VuZGlmIC8qIFBTQV9XQU5UX0FMR19TSEFfMzg0ICovCiAKLSNpZiBkZWZpbmVkKE1CRURUTFNfTURfQ0FOX1NIQTI1NikKKyNpZiBkZWZpbmVkKFBTQV9XQU5UX0FMR19TSEFfMjU2KQogTUJFRFRMU19DSEVDS19SRVRVUk5fQ1JJVElDQUwKIHN0YXRpYyBpbnQgc3NsX2dldF9oYW5kc2hha2VfdHJhbnNjcmlwdF9zaGEyNTYobWJlZHRsc19zc2xfY29udGV4dCAqc3NsLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBjaGFyICpkc3QsCkBAIC02NTQyLDcgKzY1NDYsNyBAQAogICAgIG1iZWR0bHNfbWRfZnJlZSgmc2hhMjU2KTsKICAgICByZXR1cm4gcmV0OwogfQotI2VuZGlmIC8qIE1CRURUTFNfTURfQ0FOX1NIQTI1NiAqLworI2VuZGlmIC8qIFBTQV9XQU5UX0FMR19TSEFfMjU2ICovCiAKIGludCBtYmVkdGxzX3NzbF9nZXRfaGFuZHNoYWtlX3RyYW5zY3JpcHQobWJlZHRsc19zc2xfY29udGV4dCAqc3NsLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBtYmVkdGxzX21kX3R5cGVfdCBtZCwKQEAgLTY1NTIsMTkgKzY1NTYsMTkgQEAKIHsKICAgICBzd2l0Y2ggKG1kKSB7CiAKLSNpZiBkZWZpbmVkKE1CRURUTFNfTURfQ0FOX1NIQTM4NCkKKyNpZiBkZWZpbmVkKFBTQV9XQU5UX0FMR19TSEFfMzg0KQogICAgICAgICBjYXNlIE1CRURUTFNfTURfU0hBMzg0OgogICAgICAgICAgICAgcmV0dXJuIHNzbF9nZXRfaGFuZHNoYWtlX3RyYW5zY3JpcHRfc2hhMzg0KHNzbCwgZHN0LCBkc3RfbGVuLCBvbGVuKTsKLSNlbmRpZiAvKiBNQkVEVExTX01EX0NBTl9TSEEzODQqLworI2VuZGlmIC8qIFBTQV9XQU5UX0FMR19TSEFfMzg0Ki8KIAotI2lmIGRlZmluZWQoTUJFRFRMU19NRF9DQU5fU0hBMjU2KQorI2lmIGRlZmluZWQoUFNBX1dBTlRfQUxHX1NIQV8yNTYpCiAgICAgICAgIGNhc2UgTUJFRFRMU19NRF9TSEEyNTY6CiAgICAgICAgICAgICByZXR1cm4gc3NsX2dldF9oYW5kc2hha2VfdHJhbnNjcmlwdF9zaGEyNTYoc3NsLCBkc3QsIGRzdF9sZW4sIG9sZW4pOwotI2VuZGlmIC8qIE1CRURUTFNfTURfQ0FOX1NIQTI1NiovCisjZW5kaWYgLyogUFNBX1dBTlRfQUxHX1NIQV8yNTYqLwogCiAgICAgICAgIGRlZmF1bHQ6Ci0jaWYgIWRlZmluZWQoTUJFRFRMU19NRF9DQU5fU0hBMzg0KSAmJiBcCi0gICAgICAgICAgICAhZGVmaW5lZChNQkVEVExTX01EX0NBTl9TSEEyNTYpCisjaWYgIWRlZmluZWQoUFNBX1dBTlRfQUxHX1NIQV8zODQpICYmIFwKKyAgICAgICAgICAgICFkZWZpbmVkKFBTQV9XQU5UX0FMR19TSEFfMjU2KQogICAgICAgICAgICAgKHZvaWQpIHNzbDsKICAgICAgICAgICAgICh2b2lkKSBkc3Q7CiAgICAgICAgICAgICAodm9pZCkgZHN0X2xlbjsKQEAgLTY4MzAsOCArNjgzNCw4IEBACiAjZWxzZSAvKiBNQkVEVExTX1VTRV9QU0FfQ1JZUFRPICovCiAKICNpZiBkZWZpbmVkKE1CRURUTFNfTURfQykgJiYgICAgICAgXAotICAgIChkZWZpbmVkKE1CRURUTFNfTURfQ0FOX1NIQTI1NikgfHwgXAotICAgIGRlZmluZWQoTUJFRFRMU19NRF9DQU5fU0hBMzg0KSkKKyAgICAoZGVmaW5lZChQU0FfV0FOVF9BTEdfU0hBXzI1NikgfHwgXAorICAgIGRlZmluZWQoUFNBX1dBTlRfQUxHX1NIQV8zODQpKQogTUJFRFRMU19DSEVDS19SRVRVUk5fQ1JJVElDQUwKIHN0YXRpYyBpbnQgdGxzX3ByZl9nZW5lcmljKG1iZWR0bHNfbWRfdHlwZV90IG1kX3R5cGUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1bnNpZ25lZCBjaGFyICpzZWNyZXQsIHNpemVfdCBzbGVuLApAQCAtNjkzNSwxMCArNjkzOSwxMCBAQAogCiAgICAgcmV0dXJuIHJldDsKIH0KLSNlbmRpZiAvKiBNQkVEVExTX01EX0MgJiYgKCBNQkVEVExTX01EX0NBTl9TSEEyNTYgfHwgTUJFRFRMU19NRF9DQU5fU0hBMzg0ICkgKi8KKyNlbmRpZiAvKiBNQkVEVExTX01EX0MgJiYgKCBQU0FfV0FOVF9BTEdfU0hBXzI1NiB8fCBQU0FfV0FOVF9BTEdfU0hBXzM4NCApICovCiAjZW5kaWYgLyogTUJFRFRMU19VU0VfUFNBX0NSWVBUTyAqLwogCi0jaWYgZGVmaW5lZChNQkVEVExTX01EX0NBTl9TSEEyNTYpCisjaWYgZGVmaW5lZChQU0FfV0FOVF9BTEdfU0hBXzI1NikKIE1CRURUTFNfQ0hFQ0tfUkVUVVJOX0NSSVRJQ0FMCiBzdGF0aWMgaW50IHRsc19wcmZfc2hhMjU2KGNvbnN0IHVuc2lnbmVkIGNoYXIgKnNlY3JldCwgc2l6ZV90IHNsZW4sCiAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKmxhYmVsLApAQCAtNjk0OCw5ICs2OTUyLDkgQEAKICAgICByZXR1cm4gdGxzX3ByZl9nZW5lcmljKE1CRURUTFNfTURfU0hBMjU2LCBzZWNyZXQsIHNsZW4sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYWJlbCwgcmFuZG9tLCBybGVuLCBkc3RidWYsIGRsZW4pOwogfQotI2VuZGlmIC8qIE1CRURUTFNfTURfQ0FOX1NIQTI1NiovCisjZW5kaWYgLyogUFNBX1dBTlRfQUxHX1NIQV8yNTYqLwogCi0jaWYgZGVmaW5lZChNQkVEVExTX01EX0NBTl9TSEEzODQpCisjaWYgZGVmaW5lZChQU0FfV0FOVF9BTEdfU0hBXzM4NCkKIE1CRURUTFNfQ0hFQ0tfUkVUVVJOX0NSSVRJQ0FMCiBzdGF0aWMgaW50IHRsc19wcmZfc2hhMzg0KGNvbnN0IHVuc2lnbmVkIGNoYXIgKnNlY3JldCwgc2l6ZV90IHNsZW4sCiAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKmxhYmVsLApAQCAtNjk2MCw3ICs2OTY0LDcgQEAKICAgICByZXR1cm4gdGxzX3ByZl9nZW5lcmljKE1CRURUTFNfTURfU0hBMzg0LCBzZWNyZXQsIHNsZW4sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYWJlbCwgcmFuZG9tLCBybGVuLCBkc3RidWYsIGRsZW4pOwogfQotI2VuZGlmIC8qIE1CRURUTFNfTURfQ0FOX1NIQTM4NCovCisjZW5kaWYgLyogUFNBX1dBTlRfQUxHX1NIQV8zODQqLwogCiAvKgogICogU2V0IGFwcHJvcHJpYXRlIFBSRiBmdW5jdGlvbiBhbmQgb3RoZXIgU1NMIC8gVExTMS4yIGZ1bmN0aW9ucwpAQCAtNjk3NSwxNCArNjk3OSwxNCBAQAogc3RhdGljIGludCBzc2xfc2V0X2hhbmRzaGFrZV9wcmZzKG1iZWR0bHNfc3NsX2hhbmRzaGFrZV9wYXJhbXMgKmhhbmRzaGFrZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYmVkdGxzX21kX3R5cGVfdCBoYXNoKQogewotI2lmIGRlZmluZWQoTUJFRFRMU19NRF9DQU5fU0hBMzg0KQorI2lmIGRlZmluZWQoUFNBX1dBTlRfQUxHX1NIQV8zODQpCiAgICAgaWYgKGhhc2ggPT0gTUJFRFRMU19NRF9TSEEzODQpIHsKICAgICAgICAgaGFuZHNoYWtlLT50bHNfcHJmID0gdGxzX3ByZl9zaGEzODQ7CiAgICAgICAgIGhhbmRzaGFrZS0+Y2FsY192ZXJpZnkgPSBzc2xfY2FsY192ZXJpZnlfdGxzX3NoYTM4NDsKICAgICAgICAgaGFuZHNoYWtlLT5jYWxjX2ZpbmlzaGVkID0gc3NsX2NhbGNfZmluaXNoZWRfdGxzX3NoYTM4NDsKICAgICB9IGVsc2UKICNlbmRpZgotI2lmIGRlZmluZWQoTUJFRFRMU19NRF9DQU5fU0hBMjU2KQorI2lmIGRlZmluZWQoUFNBX1dBTlRfQUxHX1NIQV8yNTYpCiAgICAgewogICAgICAgICAodm9pZCkgaGFzaDsKICAgICAgICAgaGFuZHNoYWtlLT50bHNfcHJmID0gdGxzX3ByZl9zaGEyNTY7CkBAIC03MjcyLDEyICs3Mjc2LDEyIEBACiBpbnQgbWJlZHRsc19zc2xfc2V0X2NhbGNfdmVyaWZ5X21kKG1iZWR0bHNfc3NsX2NvbnRleHQgKnNzbCwgaW50IG1kKQogewogICAgIHN3aXRjaCAobWQpIHsKLSNpZiBkZWZpbmVkKE1CRURUTFNfTURfQ0FOX1NIQTM4NCkKKyNpZiBkZWZpbmVkKFBTQV9XQU5UX0FMR19TSEFfMzg0KQogICAgICAgICBjYXNlIE1CRURUTFNfU1NMX0hBU0hfU0hBMzg0OgogICAgICAgICAgICAgc3NsLT5oYW5kc2hha2UtPmNhbGNfdmVyaWZ5ID0gc3NsX2NhbGNfdmVyaWZ5X3Rsc19zaGEzODQ7CiAgICAgICAgICAgICBicmVhazsKICNlbmRpZgotI2lmIGRlZmluZWQoTUJFRFRMU19NRF9DQU5fU0hBMjU2KQorI2lmIGRlZmluZWQoUFNBX1dBTlRfQUxHX1NIQV8yNTYpCiAgICAgICAgIGNhc2UgTUJFRFRMU19TU0xfSEFTSF9TSEEyNTY6CiAgICAgICAgICAgICBzc2wtPmhhbmRzaGFrZS0+Y2FsY192ZXJpZnkgPSBzc2xfY2FsY192ZXJpZnlfdGxzX3NoYTI1NjsKICAgICAgICAgICAgIGJyZWFrOwpAQCAtNzI4NSw4ICs3Mjg5LDggQEAKICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgIHJldHVybiAtMTsKICAgICB9Ci0jaWYgIWRlZmluZWQoTUJFRFRMU19NRF9DQU5fU0hBMzg0KSAmJiBcCi0gICAgIWRlZmluZWQoTUJFRFRMU19NRF9DQU5fU0hBMjU2KQorI2lmICFkZWZpbmVkKFBTQV9XQU5UX0FMR19TSEFfMzg0KSAmJiBcCisgICAgIWRlZmluZWQoUFNBX1dBTlRfQUxHX1NIQV8yNTYpCiAgICAgKHZvaWQpIHNzbDsKICNlbmRpZgogICAgIHJldHVybiAwOwpAQCAtNzM2NCw3ICs3MzY4LDcgQEAKIH0KICNlbmRpZiAvKiBNQkVEVExTX1VTRV9QU0FfQ1JZUFRPICovCiAKLSNpZiBkZWZpbmVkKE1CRURUTFNfTURfQ0FOX1NIQTI1NikKKyNpZiBkZWZpbmVkKFBTQV9XQU5UX0FMR19TSEFfMjU2KQogaW50IHNzbF9jYWxjX3ZlcmlmeV90bHNfc2hhMjU2KGNvbnN0IG1iZWR0bHNfc3NsX2NvbnRleHQgKnNzbCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBjaGFyICpoYXNoLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCAqaGxlbikKQEAgLTczNzcsOSArNzM4MSw5IEBACiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhc2gsIGhsZW4pOwogI2VuZGlmIC8qIE1CRURUTFNfVVNFX1BTQV9DUllQVE8gKi8KIH0KLSNlbmRpZiAvKiBNQkVEVExTX01EX0NBTl9TSEEyNTYgKi8KKyNlbmRpZiAvKiBQU0FfV0FOVF9BTEdfU0hBXzI1NiAqLwogCi0jaWYgZGVmaW5lZChNQkVEVExTX01EX0NBTl9TSEEzODQpCisjaWYgZGVmaW5lZChQU0FfV0FOVF9BTEdfU0hBXzM4NCkKIGludCBzc2xfY2FsY192ZXJpZnlfdGxzX3NoYTM4NChjb25zdCBtYmVkdGxzX3NzbF9jb250ZXh0ICpzc2wsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgY2hhciAqaGFzaCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgKmhsZW4pCkBAIC03MzkyLDcgKzczOTYsNyBAQAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYXNoLCBobGVuKTsKICNlbmRpZiAvKiBNQkVEVExTX1VTRV9QU0FfQ1JZUFRPICovCiB9Ci0jZW5kaWYgLyogTUJFRFRMU19NRF9DQU5fU0hBMzg0ICovCisjZW5kaWYgLyogUFNBX1dBTlRfQUxHX1NIQV8zODQgKi8KIAogI2lmICFkZWZpbmVkKE1CRURUTFNfVVNFX1BTQV9DUllQVE8pICYmICAgICAgICAgICAgICAgICAgICAgIFwKICAgICBkZWZpbmVkKE1CRURUTFNfS0VZX0VYQ0hBTkdFX1NPTUVfUFNLX0VOQUJMRUQpCkBAIC04NDE0LDcgKzg0MTgsNyBAQAogI2VuZGlmIC8qIE1CRURUTFNfVVNFX1BTQV9DUllQVE8gKi8KIH0KIAotI2lmIGRlZmluZWQoTUJFRFRMU19NRF9DQU5fU0hBMjU2KQorI2lmIGRlZmluZWQoUFNBX1dBTlRfQUxHX1NIQV8yNTYpCiBzdGF0aWMgaW50IHNzbF9jYWxjX2ZpbmlzaGVkX3Rsc19zaGEyNTYoCiAgICAgbWJlZHRsc19zc2xfY29udGV4dCAqc3NsLCB1bnNpZ25lZCBjaGFyICpidWYsIGludCBmcm9tKQogewpAQCAtODQyOCwxMCArODQzMiwxMCBAQAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYWRidWYsIHNpemVvZihwYWRidWYpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBidWYsIGZyb20pOwogfQotI2VuZGlmIC8qIE1CRURUTFNfTURfQ0FOX1NIQTI1NiovCisjZW5kaWYgLyogUFNBX1dBTlRfQUxHX1NIQV8yNTYqLwogCiAKLSNpZiBkZWZpbmVkKE1CRURUTFNfTURfQ0FOX1NIQTM4NCkKKyNpZiBkZWZpbmVkKFBTQV9XQU5UX0FMR19TSEFfMzg0KQogc3RhdGljIGludCBzc2xfY2FsY19maW5pc2hlZF90bHNfc2hhMzg0KAogICAgIG1iZWR0bHNfc3NsX2NvbnRleHQgKnNzbCwgdW5zaWduZWQgY2hhciAqYnVmLCBpbnQgZnJvbSkKIHsKQEAgLTg0NDUsNyArODQ0OSw3IEBACiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhZGJ1Ziwgc2l6ZW9mKHBhZGJ1ZiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ1ZiwgZnJvbSk7CiB9Ci0jZW5kaWYgLyogTUJFRFRMU19NRF9DQU5fU0hBMzg0Ki8KKyNlbmRpZiAvKiBQU0FfV0FOVF9BTEdfU0hBXzM4NCovCiAKIHZvaWQgbWJlZHRsc19zc2xfaGFuZHNoYWtlX3dyYXB1cF9mcmVlX2hzX3RyYW5zZm9ybShtYmVkdGxzX3NzbF9jb250ZXh0ICpzc2wpCiB7CkBAIC04NzM4LDIwICs4NzQyLDIwIEBACiB7CiAgICAgY29uc3QgbWJlZHRsc19zc2xfY2lwaGVyc3VpdGVfdCAqIGNvbnN0IGNpcGhlcnN1aXRlX2luZm8gPQogICAgICAgICBtYmVkdGxzX3NzbF9jaXBoZXJzdWl0ZV9mcm9tX2lkKGNpcGhlcnN1aXRlX2lkKTsKLSNpZiBkZWZpbmVkKE1CRURUTFNfTURfQ0FOX1NIQTM4NCkKKyNpZiBkZWZpbmVkKFBTQV9XQU5UX0FMR19TSEFfMzg0KQogICAgIGlmIChjaXBoZXJzdWl0ZV9pbmZvICE9IE5VTEwgJiYgY2lwaGVyc3VpdGVfaW5mby0+bWFjID09IE1CRURUTFNfTURfU0hBMzg0KSB7CiAgICAgICAgIHJldHVybiB0bHNfcHJmX3NoYTM4NDsKICAgICB9IGVsc2UKICNlbmRpZgotI2lmIGRlZmluZWQoTUJFRFRMU19NRF9DQU5fU0hBMjU2KQorI2lmIGRlZmluZWQoUFNBX1dBTlRfQUxHX1NIQV8yNTYpCiAgICAgewogICAgICAgICBpZiAoY2lwaGVyc3VpdGVfaW5mbyAhPSBOVUxMICYmIGNpcGhlcnN1aXRlX2luZm8tPm1hYyA9PSBNQkVEVExTX01EX1NIQTI1NikgewogICAgICAgICAgICAgcmV0dXJuIHRsc19wcmZfc2hhMjU2OwogICAgICAgICB9CiAgICAgfQogI2VuZGlmCi0jaWYgIWRlZmluZWQoTUJFRFRMU19NRF9DQU5fU0hBMzg0KSAmJiBcCi0gICAgIWRlZmluZWQoTUJFRFRMU19NRF9DQU5fU0hBMjU2KQorI2lmICFkZWZpbmVkKFBTQV9XQU5UX0FMR19TSEFfMzg0KSAmJiBcCisgICAgIWRlZmluZWQoUFNBX1dBTlRfQUxHX1NIQV8yNTYpCiAgICAgKHZvaWQpIGNpcGhlcnN1aXRlX2luZm87CiAjZW5kaWYKIApAQCAtODc2MiwxMiArODc2NiwxMiBAQAogc3RhdGljIG1iZWR0bHNfdGxzX3ByZl90eXBlcyB0bHNfcHJmX2dldF90eXBlKG1iZWR0bHNfc3NsX3Rsc19wcmZfY2IgKnRsc19wcmYpCiB7CiAgICAgKCh2b2lkKSB0bHNfcHJmKTsKLSNpZiBkZWZpbmVkKE1CRURUTFNfTURfQ0FOX1NIQTM4NCkKKyNpZiBkZWZpbmVkKFBTQV9XQU5UX0FMR19TSEFfMzg0KQogICAgIGlmICh0bHNfcHJmID09IHRsc19wcmZfc2hhMzg0KSB7CiAgICAgICAgIHJldHVybiBNQkVEVExTX1NTTF9UTFNfUFJGX1NIQTM4NDsKICAgICB9IGVsc2UKICNlbmRpZgotI2lmIGRlZmluZWQoTUJFRFRMU19NRF9DQU5fU0hBMjU2KQorI2lmIGRlZmluZWQoUFNBX1dBTlRfQUxHX1NIQV8yNTYpCiAgICAgaWYgKHRsc19wcmYgPT0gdGxzX3ByZl9zaGEyNTYpIHsKICAgICAgICAgcmV0dXJuIE1CRURUTFNfU1NMX1RMU19QUkZfU0hBMjU2OwogICAgIH0gZWxzZQpkaWZmIC0tZ2l0IGEvbGlicmFyeS94NTA5LmMgYi9saWJyYXJ5L3g1MDkuYwppbmRleCBmOTdmYjQ0Li4xOTljNGZiIDEwMDY0NAotLS0gYS9saWJyYXJ5L3g1MDkuYworKysgYi9saWJyYXJ5L3g1MDkuYwpAQCAtMTM3LDE1ICsxMzcsMTUgQEAKICAgICAgICAgY2FzZSBNQkVEVExTX01EX1NIQTE6CiAgICAgICAgICAgICByZXR1cm4gIlNIQTEiOwogI2VuZGlmCi0jaWYgZGVmaW5lZChNQkVEVExTX01EX0NBTl9TSEEyMjQpCisjaWYgZGVmaW5lZChQU0FfV0FOVF9BTEdfU0hBXzIyNCkKICAgICAgICAgY2FzZSBNQkVEVExTX01EX1NIQTIyNDoKICAgICAgICAgICAgIHJldHVybiAiU0hBMjI0IjsKICNlbmRpZgotI2lmIGRlZmluZWQoTUJFRFRMU19NRF9DQU5fU0hBMjU2KQorI2lmIGRlZmluZWQoUFNBX1dBTlRfQUxHX1NIQV8yNTYpCiAgICAgICAgIGNhc2UgTUJFRFRMU19NRF9TSEEyNTY6CiAgICAgICAgICAgICByZXR1cm4gIlNIQTI1NiI7CiAjZW5kaWYKLSNpZiBkZWZpbmVkKE1CRURUTFNfTURfQ0FOX1NIQTM4NCkKKyNpZiBkZWZpbmVkKFBTQV9XQU5UX0FMR19TSEFfMzg0KQogICAgICAgICBjYXNlIE1CRURUTFNfTURfU0hBMzg0OgogICAgICAgICAgICAgcmV0dXJuICJTSEEzODQiOwogI2VuZGlmCkBAIC0xNTMsNyArMTUzLDcgQEAKICAgICAgICAgY2FzZSBNQkVEVExTX01EX1NIQTUxMjoKICAgICAgICAgICAgIHJldHVybiAiU0hBNTEyIjsKICNlbmRpZgotI2lmIGRlZmluZWQoTUJFRFRMU19NRF9DQU5fUklQRU1EMTYwKQorI2lmIGRlZmluZWQoUFNBX1dBTlRfQUxHX1JJUEVNRDE2MCkKICAgICAgICAgY2FzZSBNQkVEVExTX01EX1JJUEVNRDE2MDoKICAgICAgICAgICAgIHJldHVybiAiUklQRU1EMTYwIjsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvbGlicmFyeS94NTA5d3JpdGVfY3J0LmMgYi9saWJyYXJ5L3g1MDl3cml0ZV9jcnQuYwppbmRleCA3MmY1YTEwLi41NmYyM2M5IDEwMDY0NAotLS0gYS9saWJyYXJ5L3g1MDl3cml0ZV9jcnQuYworKysgYi9saWJyYXJ5L3g1MDl3cml0ZV9jcnQuYwpAQCAtNDYsNiArNDYsMTAgQEAKIAogdm9pZCBtYmVkdGxzX3g1MDl3cml0ZV9jcnRfZnJlZShtYmVkdGxzX3g1MDl3cml0ZV9jZXJ0ICpjdHgpCiB7CisgICAgaWYgKGN0eCA9PSBOVUxMKSB7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKICAgICBtYmVkdGxzX2FzbjFfZnJlZV9uYW1lZF9kYXRhX2xpc3QoJmN0eC0+c3ViamVjdCk7CiAgICAgbWJlZHRsc19hc24xX2ZyZWVfbmFtZWRfZGF0YV9saXN0KCZjdHgtPmlzc3Vlcik7CiAgICAgbWJlZHRsc19hc24xX2ZyZWVfbmFtZWRfZGF0YV9saXN0KCZjdHgtPmV4dGVuc2lvbnMpOwpkaWZmIC0tZ2l0IGEvbGlicmFyeS94NTA5d3JpdGVfY3NyLmMgYi9saWJyYXJ5L3g1MDl3cml0ZV9jc3IuYwppbmRleCBkM2RkYmNjLi4wZDZmNmJiIDEwMDY0NAotLS0gYS9saWJyYXJ5L3g1MDl3cml0ZV9jc3IuYworKysgYi9saWJyYXJ5L3g1MDl3cml0ZV9jc3IuYwpAQCAtNDMsNiArNDMsMTAgQEAKIAogdm9pZCBtYmVkdGxzX3g1MDl3cml0ZV9jc3JfZnJlZShtYmVkdGxzX3g1MDl3cml0ZV9jc3IgKmN0eCkKIHsKKyAgICBpZiAoY3R4ID09IE5VTEwpIHsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKwogICAgIG1iZWR0bHNfYXNuMV9mcmVlX25hbWVkX2RhdGFfbGlzdCgmY3R4LT5zdWJqZWN0KTsKICAgICBtYmVkdGxzX2FzbjFfZnJlZV9uYW1lZF9kYXRhX2xpc3QoJmN0eC0+ZXh0ZW5zaW9ucyk7CiAKZGlmZiAtLWdpdCBhL3Byb2dyYW1zL01ha2VmaWxlIGIvcHJvZ3JhbXMvTWFrZWZpbGUKaW5kZXggOWI0OGNjMC4uMWYyZDcxOSAxMDA2NDQKLS0tIGEvcHJvZ3JhbXMvTWFrZWZpbGUKKysrIGIvcHJvZ3JhbXMvTWFrZWZpbGUKQEAgLTM1Niw3ICszNTYsNyBAQAogCiB0ZXN0L21ldGF0ZXN0JChFWEVYVCk6IHRlc3QvbWV0YXRlc3QuYyAkKERFUCkKIAllY2hvICIgIENDICAgIHRlc3QvbWV0YXRlc3QuYyIKLQkkKENDKSAkKExPQ0FMX0NGTEFHUykgJChDRkxBR1MpIC1JIC4uL2xpYnJhcnkgdGVzdC9tZXRhdGVzdC5jICAgICQoTE9DQUxfTERGTEFHUykgJChMREZMQUdTKSAtbyAkQAorCSQoQ0MpICQoTE9DQUxfQ0ZMQUdTKSAkKENGTEFHUykgLUkuLi9saWJyYXJ5IC1JLi4vdGYtcHNhLWNyeXB0by9jb3JlIHRlc3QvbWV0YXRlc3QuYyAgICAkKExPQ0FMX0xERkxBR1MpICQoTERGTEFHUykgLW8gJEAKIAogdGVzdC9xdWVyeV9jb25maWcubzogdGVzdC9xdWVyeV9jb25maWcuYyB0ZXN0L3F1ZXJ5X2NvbmZpZy5oICQoREVQKQogCWVjaG8gIiAgQ0MgICAgdGVzdC9xdWVyeV9jb25maWcuYyIKZGlmZiAtLWdpdCBhL3Byb2dyYW1zL2Z1enovZnV6el9kdGxzc2VydmVyLmMgYi9wcm9ncmFtcy9mdXp6L2Z1enpfZHRsc3NlcnZlci5jCmluZGV4IGZkM2UwYWEuLmMyZGJlZjggMTAwNjQ0Ci0tLSBhL3Byb2dyYW1zL2Z1enovZnV6el9kdGxzc2VydmVyLmMKKysrIGIvcHJvZ3JhbXMvZnV6ei9mdXp6X2R0bHNzZXJ2ZXIuYwpAQCAtMTQsOCArMTQsOCBAQAogICAgIGRlZmluZWQoTUJFRFRMU19FTlRST1BZX0MpICYmIFwKICAgICBkZWZpbmVkKE1CRURUTFNfQ1RSX0RSQkdfQykgJiYgXAogICAgIGRlZmluZWQoTUJFRFRMU19USU1JTkdfQykgJiYgXAotICAgIChkZWZpbmVkKE1CRURUTFNfTURfQ0FOX1NIQTM4NCkgfHwgXAotICAgIGRlZmluZWQoTUJFRFRMU19NRF9DQU5fU0hBMjU2KSkKKyAgICAoZGVmaW5lZChQU0FfV0FOVF9BTEdfU0hBXzM4NCkgfHwgXAorICAgIGRlZmluZWQoUFNBX1dBTlRfQUxHX1NIQV8yNTYpKQogY29uc3QgY2hhciAqcGVycyA9ICJmdXp6X2R0bHNzZXJ2ZXIiOwogY29uc3QgdW5zaWduZWQgY2hhciBjbGllbnRfaXBbNF0gPSB7IDB4N0YsIDAsIDAsIDEgfTsKIHN0YXRpYyBpbnQgaW5pdGlhbGl6ZWQgPSAwOwpAQCAtMzMsOCArMzMsOCBAQAogICAgIGRlZmluZWQoTUJFRFRMU19FTlRST1BZX0MpICYmIFwKICAgICBkZWZpbmVkKE1CRURUTFNfQ1RSX0RSQkdfQykgJiYgXAogICAgIGRlZmluZWQoTUJFRFRMU19USU1JTkdfQykgJiYgXAotICAgIChkZWZpbmVkKE1CRURUTFNfTURfQ0FOX1NIQTM4NCkgfHwgXAotICAgIGRlZmluZWQoTUJFRFRMU19NRF9DQU5fU0hBMjU2KSkKKyAgICAoZGVmaW5lZChQU0FfV0FOVF9BTEdfU0hBXzM4NCkgfHwgXAorICAgIGRlZmluZWQoUFNBX1dBTlRfQUxHX1NIQV8yNTYpKQogICAgIGludCByZXQ7CiAgICAgc2l6ZV90IGxlbjsKICAgICBtYmVkdGxzX3NzbF9jb250ZXh0IHNzbDsKZGlmZiAtLWdpdCBhL3Byb2dyYW1zL3BrZXkvZGhfY2xpZW50LmMgYi9wcm9ncmFtcy9wa2V5L2RoX2NsaWVudC5jCmluZGV4IDE2NWNlZTIuLmEzYmM0OWQgMTAwNjQ0Ci0tLSBhL3Byb2dyYW1zL3BrZXkvZGhfY2xpZW50LmMKKysrIGIvcHJvZ3JhbXMvcGtleS9kaF9jbGllbnQuYwpAQCAtMzgsNyArMzgsNyBAQAogewogICAgIG1iZWR0bHNfcHJpbnRmKCJNQkVEVExTX0FFU19DIGFuZC9vciBNQkVEVExTX0RITV9DIGFuZC9vciBNQkVEVExTX0VOVFJPUFlfQyAiCiAgICAgICAgICAgICAgICAgICAgImFuZC9vciBNQkVEVExTX05FVF9DIGFuZC9vciBNQkVEVExTX1JTQV9DIGFuZC9vciAiCi0gICAgICAgICAgICAgICAgICAgIk1CRURUTFNfTURfQ0FOX1NIQTI1NiBhbmQvb3IgTUJFRFRMU19GU19JTyBhbmQvb3IgIgorICAgICAgICAgICAgICAgICAgICJQU0FfV0FOVF9BTEdfU0hBXzI1NiBhbmQvb3IgTUJFRFRMU19GU19JTyBhbmQvb3IgIgogICAgICAgICAgICAgICAgICAgICJNQkVEVExTX0NUUl9EUkJHX0MgYW5kL29yIE1CRURUTFNfU0hBMV9DIG5vdCBkZWZpbmVkLlxuIik7CiAgICAgbWJlZHRsc19leGl0KDApOwogfQpAQCAtMjg0LDUgKzI4NCw1IEBACiAgICAgbWJlZHRsc19leGl0KGV4aXRfY29kZSk7CiB9CiAjZW5kaWYgLyogTUJFRFRMU19BRVNfQyAmJiBNQkVEVExTX0RITV9DICYmIE1CRURUTFNfRU5UUk9QWV9DICYmCi0gICAgICAgICAgTUJFRFRMU19ORVRfQyAmJiBNQkVEVExTX1JTQV9DICYmIE1CRURUTFNfTURfQ0FOX1NIQTI1NiAmJgorICAgICAgICAgIE1CRURUTFNfTkVUX0MgJiYgTUJFRFRMU19SU0FfQyAmJiBQU0FfV0FOVF9BTEdfU0hBXzI1NiAmJgogICAgICAgICAgIE1CRURUTFNfRlNfSU8gJiYgTUJFRFRMU19DVFJfRFJCR19DICovCmRpZmYgLS1naXQgYS9wcm9ncmFtcy9wa2V5L2RoX3NlcnZlci5jIGIvcHJvZ3JhbXMvcGtleS9kaF9zZXJ2ZXIuYwppbmRleCAxYWU1NjUxLi4yNmI0OGUzIDEwMDY0NAotLS0gYS9wcm9ncmFtcy9wa2V5L2RoX3NlcnZlci5jCisrKyBiL3Byb2dyYW1zL3BrZXkvZGhfc2VydmVyLmMKQEAgLTM4LDcgKzM4LDcgQEAKIHsKICAgICBtYmVkdGxzX3ByaW50ZigiTUJFRFRMU19BRVNfQyBhbmQvb3IgTUJFRFRMU19ESE1fQyBhbmQvb3IgTUJFRFRMU19FTlRST1BZX0MgIgogICAgICAgICAgICAgICAgICAgICJhbmQvb3IgTUJFRFRMU19ORVRfQyBhbmQvb3IgTUJFRFRMU19SU0FfQyBhbmQvb3IgIgotICAgICAgICAgICAgICAgICAgICJNQkVEVExTX01EX0NBTl9TSEEyNTYgYW5kL29yIE1CRURUTFNfRlNfSU8gYW5kL29yICIKKyAgICAgICAgICAgICAgICAgICAiUFNBX1dBTlRfQUxHX1NIQV8yNTYgYW5kL29yIE1CRURUTFNfRlNfSU8gYW5kL29yICIKICAgICAgICAgICAgICAgICAgICAiTUJFRFRMU19DVFJfRFJCR19DIGFuZC9vciBNQkVEVExTX1NIQTFfQyBub3QgZGVmaW5lZC5cbiIpOwogICAgIG1iZWR0bHNfZXhpdCgwKTsKIH0KQEAgLTMwMiw1ICszMDIsNSBAQAogICAgIG1iZWR0bHNfZXhpdChleGl0X2NvZGUpOwogfQogI2VuZGlmIC8qIE1CRURUTFNfQUVTX0MgJiYgTUJFRFRMU19ESE1fQyAmJiBNQkVEVExTX0VOVFJPUFlfQyAmJgotICAgICAgICAgIE1CRURUTFNfTkVUX0MgJiYgTUJFRFRMU19SU0FfQyAmJiBNQkVEVExTX01EX0NBTl9TSEEyNTYgJiYKKyAgICAgICAgICBNQkVEVExTX05FVF9DICYmIE1CRURUTFNfUlNBX0MgJiYgUFNBX1dBTlRfQUxHX1NIQV8yNTYgJiYKICAgICAgICAgICBNQkVEVExTX0ZTX0lPICYmIE1CRURUTFNfQ1RSX0RSQkdfQyAqLwpkaWZmIC0tZ2l0IGEvcHJvZ3JhbXMvcGtleS9wa19zaWduLmMgYi9wcm9ncmFtcy9wa2V5L3BrX3NpZ24uYwppbmRleCA1OTM0N2FkLi5kNDg5MTFjIDEwMDY0NAotLS0gYS9wcm9ncmFtcy9wa2V5L3BrX3NpZ24uYworKysgYi9wcm9ncmFtcy9wa2V5L3BrX3NpZ24uYwpAQCAtMTIsMTMgKzEyLDEzIEBACiAjaW5jbHVkZSAibWJlZHRscy9tZC5oIgogCiAjaWYgIWRlZmluZWQoTUJFRFRMU19CSUdOVU1fQykgfHwgIWRlZmluZWQoTUJFRFRMU19FTlRST1BZX0MpIHx8ICBcCi0gICAgIWRlZmluZWQoTUJFRFRMU19NRF9DQU5fU0hBMjU2KSB8fCAhZGVmaW5lZChNQkVEVExTX01EX0MpIHx8IFwKKyAgICAhZGVmaW5lZChQU0FfV0FOVF9BTEdfU0hBXzI1NikgfHwgIWRlZmluZWQoTUJFRFRMU19NRF9DKSB8fCBcCiAgICAgIWRlZmluZWQoTUJFRFRMU19QS19QQVJTRV9DKSB8fCAhZGVmaW5lZChNQkVEVExTX0ZTX0lPKSB8fCAgICBcCiAgICAgIWRlZmluZWQoTUJFRFRMU19DVFJfRFJCR19DKQogaW50IG1haW4odm9pZCkKIHsKICAgICBtYmVkdGxzX3ByaW50ZigiTUJFRFRMU19CSUdOVU1fQyBhbmQvb3IgTUJFRFRMU19FTlRST1BZX0MgYW5kL29yICIKLSAgICAgICAgICAgICAgICAgICAiTUJFRFRMU19NRF9DQU5fU0hBMjU2IGFuZC9vciBNQkVEVExTX01EX0MgYW5kL29yICIKKyAgICAgICAgICAgICAgICAgICAiUFNBX1dBTlRfQUxHX1NIQV8yNTYgYW5kL29yIE1CRURUTFNfTURfQyBhbmQvb3IgIgogICAgICAgICAgICAgICAgICAgICJNQkVEVExTX1BLX1BBUlNFX0MgYW5kL29yIE1CRURUTFNfRlNfSU8gYW5kL29yICIKICAgICAgICAgICAgICAgICAgICAiTUJFRFRMU19DVFJfRFJCR19DIG5vdCBkZWZpbmVkLlxuIik7CiAgICAgbWJlZHRsc19leGl0KDApOwpAQCAtMTUxLDUgKzE1MSw1IEBACiAgICAgbWJlZHRsc19leGl0KGV4aXRfY29kZSk7CiB9CiAjZW5kaWYgLyogTUJFRFRMU19CSUdOVU1fQyAmJiBNQkVEVExTX0VOVFJPUFlfQyAmJgotICAgICAgICAgIE1CRURUTFNfTURfQ0FOX1NIQTI1NiAmJiBNQkVEVExTX1BLX1BBUlNFX0MgJiYgTUJFRFRMU19GU19JTyAmJgorICAgICAgICAgIFBTQV9XQU5UX0FMR19TSEFfMjU2ICYmIE1CRURUTFNfUEtfUEFSU0VfQyAmJiBNQkVEVExTX0ZTX0lPICYmCiAgICAgICAgICAgTUJFRFRMU19DVFJfRFJCR19DICovCmRpZmYgLS1naXQgYS9wcm9ncmFtcy9wa2V5L3BrX3ZlcmlmeS5jIGIvcHJvZ3JhbXMvcGtleS9wa192ZXJpZnkuYwppbmRleCAzMTI3ZGY1Li5iNGU4NGMzIDEwMDY0NAotLS0gYS9wcm9ncmFtcy9wa2V5L3BrX3ZlcmlmeS5jCisrKyBiL3Byb2dyYW1zL3BrZXkvcGtfdmVyaWZ5LmMKQEAgLTEyLDEyICsxMiwxMiBAQAogI2luY2x1ZGUgIm1iZWR0bHMvbWQuaCIKIAogI2lmICFkZWZpbmVkKE1CRURUTFNfQklHTlVNX0MpIHx8ICFkZWZpbmVkKE1CRURUTFNfTURfQykgfHwgXAotICAgICFkZWZpbmVkKE1CRURUTFNfTURfQ0FOX1NIQTI1NikgfHwgIWRlZmluZWQoTUJFRFRMU19QS19QQVJTRV9DKSB8fCAgIFwKKyAgICAhZGVmaW5lZChQU0FfV0FOVF9BTEdfU0hBXzI1NikgfHwgIWRlZmluZWQoTUJFRFRMU19QS19QQVJTRV9DKSB8fCAgIFwKICAgICAhZGVmaW5lZChNQkVEVExTX0ZTX0lPKQogaW50IG1haW4odm9pZCkKIHsKICAgICBtYmVkdGxzX3ByaW50ZigiTUJFRFRMU19CSUdOVU1fQyBhbmQvb3IgTUJFRFRMU19NRF9DIGFuZC9vciAiCi0gICAgICAgICAgICAgICAgICAgIk1CRURUTFNfTURfQ0FOX1NIQTI1NiBhbmQvb3IgTUJFRFRMU19QS19QQVJTRV9DIGFuZC9vciAiCisgICAgICAgICAgICAgICAgICAgIlBTQV9XQU5UX0FMR19TSEFfMjU2IGFuZC9vciBNQkVEVExTX1BLX1BBUlNFX0MgYW5kL29yICIKICAgICAgICAgICAgICAgICAgICAiTUJFRFRMU19GU19JTyBub3QgZGVmaW5lZC5cbiIpOwogICAgIG1iZWR0bHNfZXhpdCgwKTsKIH0KQEAgLTEyNCw1ICsxMjQsNSBAQAogCiAgICAgbWJlZHRsc19leGl0KGV4aXRfY29kZSk7CiB9Ci0jZW5kaWYgLyogTUJFRFRMU19CSUdOVU1fQyAmJiBNQkVEVExTX01EX0NBTl9TSEEyNTYgJiYKKyNlbmRpZiAvKiBNQkVEVExTX0JJR05VTV9DICYmIFBTQV9XQU5UX0FMR19TSEFfMjU2ICYmCiAgICAgICAgICAgTUJFRFRMU19QS19QQVJTRV9DICYmIE1CRURUTFNfRlNfSU8gKi8KZGlmZiAtLWdpdCBhL3Byb2dyYW1zL3BrZXkvcnNhX3NpZ24uYyBiL3Byb2dyYW1zL3BrZXkvcnNhX3NpZ24uYwppbmRleCBlMTQ5NTNiLi4wZTMyZTEzIDEwMDY0NAotLS0gYS9wcm9ncmFtcy9wa2V5L3JzYV9zaWduLmMKKysrIGIvcHJvZ3JhbXMvcGtleS9yc2Ffc2lnbi5jCkBAIC0xMiwxMyArMTIsMTMgQEAKICNpbmNsdWRlICJtYmVkdGxzL21kLmgiCiAKICNpZiAhZGVmaW5lZChNQkVEVExTX0JJR05VTV9DKSB8fCAhZGVmaW5lZChNQkVEVExTX1JTQV9DKSB8fCAgXAotICAgICFkZWZpbmVkKE1CRURUTFNfTURfQ0FOX1NIQTI1NikgfHwgIWRlZmluZWQoTUJFRFRMU19NRF9DKSB8fCBcCisgICAgIWRlZmluZWQoUFNBX1dBTlRfQUxHX1NIQV8yNTYpIHx8ICFkZWZpbmVkKE1CRURUTFNfTURfQykgfHwgXAogICAgICFkZWZpbmVkKE1CRURUTFNfRlNfSU8pCiBpbnQgbWFpbih2b2lkKQogewogICAgIG1iZWR0bHNfcHJpbnRmKCJNQkVEVExTX0JJR05VTV9DIGFuZC9vciBNQkVEVExTX1JTQV9DIGFuZC9vciAiCiAgICAgICAgICAgICAgICAgICAgIk1CRURUTFNfTURfQyBhbmQvb3IgIgotICAgICAgICAgICAgICAgICAgICJNQkVEVExTX01EX0NBTl9TSEEyNTYgYW5kL29yIE1CRURUTFNfRlNfSU8gbm90IGRlZmluZWQuXG4iKTsKKyAgICAgICAgICAgICAgICAgICAiUFNBX1dBTlRfQUxHX1NIQV8yNTYgYW5kL29yIE1CRURUTFNfRlNfSU8gbm90IGRlZmluZWQuXG4iKTsKICAgICBtYmVkdGxzX2V4aXQoMCk7CiB9CiAjZWxzZQpAQCAtMTUxLDUgKzE1MSw1IEBACiAKICAgICBtYmVkdGxzX2V4aXQoZXhpdF9jb2RlKTsKIH0KLSNlbmRpZiAvKiBNQkVEVExTX0JJR05VTV9DICYmIE1CRURUTFNfUlNBX0MgJiYgTUJFRFRMU19NRF9DQU5fU0hBMjU2ICYmCisjZW5kaWYgLyogTUJFRFRMU19CSUdOVU1fQyAmJiBNQkVEVExTX1JTQV9DICYmIFBTQV9XQU5UX0FMR19TSEFfMjU2ICYmCiAgICAgICAgICAgTUJFRFRMU19GU19JTyAqLwpkaWZmIC0tZ2l0IGEvcHJvZ3JhbXMvcGtleS9yc2Ffc2lnbl9wc3MuYyBiL3Byb2dyYW1zL3BrZXkvcnNhX3NpZ25fcHNzLmMKaW5kZXggM2ExZjc0Ny4uNDMwNTM2YSAxMDA2NDQKLS0tIGEvcHJvZ3JhbXMvcGtleS9yc2Ffc2lnbl9wc3MuYworKysgYi9wcm9ncmFtcy9wa2V5L3JzYV9zaWduX3Bzcy5jCkBAIC0xMiwxMyArMTIsMTMgQEAKICNpbmNsdWRlICJtYmVkdGxzL21kLmgiCiAKICNpZiAhZGVmaW5lZChNQkVEVExTX01EX0MpIHx8ICFkZWZpbmVkKE1CRURUTFNfRU5UUk9QWV9DKSB8fCAgXAotICAgICFkZWZpbmVkKE1CRURUTFNfUlNBX0MpIHx8ICFkZWZpbmVkKE1CRURUTFNfTURfQ0FOX1NIQTI1NikgfHwgICAgICAgIFwKKyAgICAhZGVmaW5lZChNQkVEVExTX1JTQV9DKSB8fCAhZGVmaW5lZChQU0FfV0FOVF9BTEdfU0hBXzI1NikgfHwgICAgICAgIFwKICAgICAhZGVmaW5lZChNQkVEVExTX1BLX1BBUlNFX0MpIHx8ICFkZWZpbmVkKE1CRURUTFNfRlNfSU8pIHx8ICAgIFwKICAgICAhZGVmaW5lZChNQkVEVExTX0NUUl9EUkJHX0MpCiBpbnQgbWFpbih2b2lkKQogewogICAgIG1iZWR0bHNfcHJpbnRmKCJNQkVEVExTX01EX0MgYW5kL29yIE1CRURUTFNfRU5UUk9QWV9DIGFuZC9vciAiCi0gICAgICAgICAgICAgICAgICAgIk1CRURUTFNfUlNBX0MgYW5kL29yIE1CRURUTFNfTURfQ0FOX1NIQTI1NiBhbmQvb3IgIgorICAgICAgICAgICAgICAgICAgICJNQkVEVExTX1JTQV9DIGFuZC9vciBQU0FfV0FOVF9BTEdfU0hBXzI1NiBhbmQvb3IgIgogICAgICAgICAgICAgICAgICAgICJNQkVEVExTX1BLX1BBUlNFX0MgYW5kL29yIE1CRURUTFNfRlNfSU8gYW5kL29yICIKICAgICAgICAgICAgICAgICAgICAiTUJFRFRMU19DVFJfRFJCR19DIG5vdCBkZWZpbmVkLlxuIik7CiAgICAgbWJlZHRsc19leGl0KDApOwpAQCAtMTU3LDUgKzE1Nyw1IEBACiAgICAgbWJlZHRsc19leGl0KGV4aXRfY29kZSk7CiB9CiAjZW5kaWYgLyogTUJFRFRMU19CSUdOVU1fQyAmJiBNQkVEVExTX0VOVFJPUFlfQyAmJiBNQkVEVExTX1JTQV9DICYmCi0gICAgICAgICAgTUJFRFRMU19NRF9DQU5fU0hBMjU2ICYmIE1CRURUTFNfUEtfUEFSU0VfQyAmJiBNQkVEVExTX0ZTX0lPICYmCisgICAgICAgICAgUFNBX1dBTlRfQUxHX1NIQV8yNTYgJiYgTUJFRFRMU19QS19QQVJTRV9DICYmIE1CRURUTFNfRlNfSU8gJiYKICAgICAgICAgICBNQkVEVExTX0NUUl9EUkJHX0MgKi8KZGlmZiAtLWdpdCBhL3Byb2dyYW1zL3BrZXkvcnNhX3ZlcmlmeS5jIGIvcHJvZ3JhbXMvcGtleS9yc2FfdmVyaWZ5LmMKaW5kZXggNGE5YWY3Ny4uZTNmMzJiYiAxMDA2NDQKLS0tIGEvcHJvZ3JhbXMvcGtleS9yc2FfdmVyaWZ5LmMKKysrIGIvcHJvZ3JhbXMvcGtleS9yc2FfdmVyaWZ5LmMKQEAgLTEyLDEzICsxMiwxMyBAQAogI2luY2x1ZGUgIm1iZWR0bHMvbWQuaCIKIAogI2lmICFkZWZpbmVkKE1CRURUTFNfQklHTlVNX0MpIHx8ICFkZWZpbmVkKE1CRURUTFNfUlNBX0MpIHx8ICBcCi0gICAgIWRlZmluZWQoTUJFRFRMU19NRF9DQU5fU0hBMjU2KSB8fCAhZGVmaW5lZChNQkVEVExTX01EX0MpIHx8IFwKKyAgICAhZGVmaW5lZChQU0FfV0FOVF9BTEdfU0hBXzI1NikgfHwgIWRlZmluZWQoTUJFRFRMU19NRF9DKSB8fCBcCiAgICAgIWRlZmluZWQoTUJFRFRMU19GU19JTykKIGludCBtYWluKHZvaWQpCiB7CiAgICAgbWJlZHRsc19wcmludGYoIk1CRURUTFNfQklHTlVNX0MgYW5kL29yIE1CRURUTFNfUlNBX0MgYW5kL29yICIKICAgICAgICAgICAgICAgICAgICAiTUJFRFRMU19NRF9DIGFuZC9vciAiCi0gICAgICAgICAgICAgICAgICAgIk1CRURUTFNfTURfQ0FOX1NIQTI1NiBhbmQvb3IgTUJFRFRMU19GU19JTyBub3QgZGVmaW5lZC5cbiIpOworICAgICAgICAgICAgICAgICAgICJQU0FfV0FOVF9BTEdfU0hBXzI1NiBhbmQvb3IgTUJFRFRMU19GU19JTyBub3QgZGVmaW5lZC5cbiIpOwogICAgIG1iZWR0bHNfZXhpdCgwKTsKIH0KICNlbHNlCkBAIC0xMzAsNSArMTMwLDUgQEAKIAogICAgIG1iZWR0bHNfZXhpdChleGl0X2NvZGUpOwogfQotI2VuZGlmIC8qIE1CRURUTFNfQklHTlVNX0MgJiYgTUJFRFRMU19SU0FfQyAmJiBNQkVEVExTX01EX0NBTl9TSEEyNTYgJiYKKyNlbmRpZiAvKiBNQkVEVExTX0JJR05VTV9DICYmIE1CRURUTFNfUlNBX0MgJiYgUFNBX1dBTlRfQUxHX1NIQV8yNTYgJiYKICAgICAgICAgICBNQkVEVExTX0ZTX0lPICovCmRpZmYgLS1naXQgYS9wcm9ncmFtcy9wa2V5L3JzYV92ZXJpZnlfcHNzLmMgYi9wcm9ncmFtcy9wa2V5L3JzYV92ZXJpZnlfcHNzLmMKaW5kZXggYWZiYmZhOS4uNGI1MzM2ZCAxMDA2NDQKLS0tIGEvcHJvZ3JhbXMvcGtleS9yc2FfdmVyaWZ5X3Bzcy5jCisrKyBiL3Byb2dyYW1zL3BrZXkvcnNhX3ZlcmlmeV9wc3MuYwpAQCAtMTIsMTMgKzEyLDEzIEBACiAjaW5jbHVkZSAibWJlZHRscy9tZC5oIgogCiAjaWYgIWRlZmluZWQoTUJFRFRMU19NRF9DKSB8fCAhZGVmaW5lZChNQkVEVExTX0VOVFJPUFlfQykgfHwgIFwKLSAgICAhZGVmaW5lZChNQkVEVExTX1JTQV9DKSB8fCAhZGVmaW5lZChNQkVEVExTX01EX0NBTl9TSEEyNTYpIHx8ICAgICAgICBcCisgICAgIWRlZmluZWQoTUJFRFRMU19SU0FfQykgfHwgIWRlZmluZWQoUFNBX1dBTlRfQUxHX1NIQV8yNTYpIHx8ICAgICAgICBcCiAgICAgIWRlZmluZWQoTUJFRFRMU19QS19QQVJTRV9DKSB8fCAhZGVmaW5lZChNQkVEVExTX0ZTX0lPKSB8fCAgICBcCiAgICAgIWRlZmluZWQoTUJFRFRMU19DVFJfRFJCR19DKQogaW50IG1haW4odm9pZCkKIHsKICAgICBtYmVkdGxzX3ByaW50ZigiTUJFRFRMU19NRF9DIGFuZC9vciBNQkVEVExTX0VOVFJPUFlfQyBhbmQvb3IgIgotICAgICAgICAgICAgICAgICAgICJNQkVEVExTX1JTQV9DIGFuZC9vciBNQkVEVExTX01EX0NBTl9TSEEyNTYgYW5kL29yICIKKyAgICAgICAgICAgICAgICAgICAiTUJFRFRMU19SU0FfQyBhbmQvb3IgUFNBX1dBTlRfQUxHX1NIQV8yNTYgYW5kL29yICIKICAgICAgICAgICAgICAgICAgICAiTUJFRFRMU19QS19QQVJTRV9DIGFuZC9vciBNQkVEVExTX0ZTX0lPIGFuZC9vciAiCiAgICAgICAgICAgICAgICAgICAgIk1CRURUTFNfQ1RSX0RSQkdfQyBub3QgZGVmaW5lZC5cbiIpOwogICAgIG1iZWR0bHNfZXhpdCgwKTsKQEAgLTEzMiw1ICsxMzIsNSBAQAogCiAgICAgbWJlZHRsc19leGl0KGV4aXRfY29kZSk7CiB9Ci0jZW5kaWYgLyogTUJFRFRMU19CSUdOVU1fQyAmJiBNQkVEVExTX1JTQV9DICYmIE1CRURUTFNfTURfQ0FOX1NIQTI1NiAmJgorI2VuZGlmIC8qIE1CRURUTFNfQklHTlVNX0MgJiYgTUJFRFRMU19SU0FfQyAmJiBQU0FfV0FOVF9BTEdfU0hBXzI1NiAmJgogICAgICAgICAgIE1CRURUTFNfUEtfUEFSU0VfQyAmJiBNQkVEVExTX0ZTX0lPICovCmRpZmYgLS1naXQgYS9wcm9ncmFtcy9zc2wvbWluaV9jbGllbnQuYyBiL3Byb2dyYW1zL3NzbC9taW5pX2NsaWVudC5jCmluZGV4IDZiZWYyMDguLmJhMDE5NWMgMTAwNjQ0Ci0tLSBhL3Byb2dyYW1zL3NzbC9taW5pX2NsaWVudC5jCisrKyBiL3Byb2dyYW1zL3NzbC9taW5pX2NsaWVudC5jCkBAIC03MCw3ICs3MCw3IEBACiAjZW5kaWYKIAogI2lmIGRlZmluZWQoTUJFRFRMU19YNTA5X0NSVF9QQVJTRV9DKQotLyogVGhpcyBpcyB0ZXN0cy9kYXRhX2ZpbGVzL3Rlc3QtY2EyLmNydCwgYSBDQSB1c2luZyBFQyBzZWNwMzg0cjEgKi8KKy8qIFRoaXMgaXMgZnJhbWV3b3JrL2RhdGFfZmlsZXMvdGVzdC1jYTIuY3J0LCBhIENBIHVzaW5nIEVDIHNlY3AzODRyMSAqLwogY29uc3QgdW5zaWduZWQgY2hhciBjYV9jZXJ0W10gPSB7CiAgICAgMHgzMCwgMHg4MiwgMHgwMiwgMHg1MiwgMHgzMCwgMHg4MiwgMHgwMSwgMHhkNywgMHhhMCwgMHgwMywgMHgwMiwgMHgwMSwKICAgICAweDAyLCAweDAyLCAweDA5LCAweDAwLCAweGMxLCAweDQzLCAweGUyLCAweDdlLCAweDYyLCAweDQzLCAweGNjLCAweGU4LApkaWZmIC0tZ2l0IGEvcHJvZ3JhbXMvc3NsL3NzbF9jbGllbnQyLmMgYi9wcm9ncmFtcy9zc2wvc3NsX2NsaWVudDIuYwppbmRleCA0MzEzM2Q5Li5mZWY1YzQ2IDEwMDY0NAotLS0gYS9wcm9ncmFtcy9zc2wvc3NsX2NsaWVudDIuYworKysgYi9wcm9ncmFtcy9zc2wvc3NsX2NsaWVudDIuYwpAQCAtMTUyNywxMSArMTUyNywxMSBAQAogI2lmIGRlZmluZWQoTUJFRFRMU19TU0xfSEFORFNIQUtFX1dJVEhfUFNLX0VOQUJMRUQpCiAgICAgICAgIGlmIChvcHQucHNrX29wYXF1ZSAhPSAwKSB7CiAgICAgICAgICAgICAvKiBEZXRlcm1pbmUgS0RGIGFsZ29yaXRobSB0aGUgb3BhcXVlIFBTSyB3aWxsIGJlIHVzZWQgaW4uICovCi0jaWYgZGVmaW5lZChNQkVEVExTX01EX0NBTl9TSEEzODQpCisjaWYgZGVmaW5lZChQU0FfV0FOVF9BTEdfU0hBXzM4NCkKICAgICAgICAgICAgIGlmIChjaXBoZXJzdWl0ZV9pbmZvLT5tYWMgPT0gTUJFRFRMU19NRF9TSEEzODQpIHsKICAgICAgICAgICAgICAgICBhbGcgPSBQU0FfQUxHX1RMUzEyX1BTS19UT19NUyhQU0FfQUxHX1NIQV8zODQpOwogICAgICAgICAgICAgfSBlbHNlCi0jZW5kaWYgLyogTUJFRFRMU19NRF9DQU5fU0hBMzg0ICovCisjZW5kaWYgLyogUFNBX1dBTlRfQUxHX1NIQV8zODQgKi8KICAgICAgICAgICAgIGFsZyA9IFBTQV9BTEdfVExTMTJfUFNLX1RPX01TKFBTQV9BTEdfU0hBXzI1Nik7CiAgICAgICAgIH0KICNlbmRpZiAvKiBNQkVEVExTX1NTTF9IQU5EU0hBS0VfV0lUSF9QU0tfRU5BQkxFRCAqLwpkaWZmIC0tZ2l0IGEvcHJvZ3JhbXMvc3NsL3NzbF9zZXJ2ZXIyLmMgYi9wcm9ncmFtcy9zc2wvc3NsX3NlcnZlcjIuYwppbmRleCBhNWQyZWQxLi44MWIxMjU2IDEwMDY0NAotLS0gYS9wcm9ncmFtcy9zc2wvc3NsX3NlcnZlcjIuYworKysgYi9wcm9ncmFtcy9zc2wvc3NsX3NlcnZlcjIuYwpAQCAtMjQwMywxMSArMjQwMywxMSBAQAogI2lmIGRlZmluZWQoTUJFRFRMU19TU0xfSEFORFNIQUtFX1dJVEhfUFNLX0VOQUJMRUQpCiAgICAgICAgIGlmIChvcHQucHNrX29wYXF1ZSAhPSAwIHx8IG9wdC5wc2tfbGlzdF9vcGFxdWUgIT0gMCkgewogICAgICAgICAgICAgLyogRGV0ZXJtaW5lIEtERiBhbGdvcml0aG0gdGhlIG9wYXF1ZSBQU0sgd2lsbCBiZSB1c2VkIGluLiAqLwotI2lmIGRlZmluZWQoTUJFRFRMU19NRF9DQU5fU0hBMzg0KQorI2lmIGRlZmluZWQoUFNBX1dBTlRfQUxHX1NIQV8zODQpCiAgICAgICAgICAgICBpZiAoY2lwaGVyc3VpdGVfaW5mby0+bWFjID09IE1CRURUTFNfTURfU0hBMzg0KSB7CiAgICAgICAgICAgICAgICAgYWxnID0gUFNBX0FMR19UTFMxMl9QU0tfVE9fTVMoUFNBX0FMR19TSEFfMzg0KTsKICAgICAgICAgICAgIH0gZWxzZQotI2VuZGlmIC8qIE1CRURUTFNfTURfQ0FOX1NIQTM4NCAqLworI2VuZGlmIC8qIFBTQV9XQU5UX0FMR19TSEFfMzg0ICovCiAgICAgICAgICAgICBhbGcgPSBQU0FfQUxHX1RMUzEyX1BTS19UT19NUyhQU0FfQUxHX1NIQV8yNTYpOwogICAgICAgICB9CiAjZW5kaWYgLyogTUJFRFRMU19TU0xfSEFORFNIQUtFX1dJVEhfUFNLX0VOQUJMRUQgKi8KZGlmZiAtLWdpdCBhL3Byb2dyYW1zL3NzbC9zc2xfdGVzdF9jb21tb25fc291cmNlLmMgYi9wcm9ncmFtcy9zc2wvc3NsX3Rlc3RfY29tbW9uX3NvdXJjZS5jCmluZGV4IDFmZjIwNzcuLjg3Mjc2YjQgMTAwNjQ0Ci0tLSBhL3Byb2dyYW1zL3NzbC9zc2xfdGVzdF9jb21tb25fc291cmNlLmMKKysrIGIvcHJvZ3JhbXMvc3NsL3NzbF90ZXN0X2NvbW1vbl9zb3VyY2UuYwpAQCAtMjk1LDE4ICsyOTUsMTggQEAKICNpZiBkZWZpbmVkKE1CRURUTFNfTURfQ0FOX1NIQTUxMikKICAgICBNQkVEVExTX1NTTF9TSUdfQUxHKE1CRURUTFNfU1NMX0hBU0hfU0hBNTEyKQogI2VuZGlmCi0jaWYgZGVmaW5lZChNQkVEVExTX01EX0NBTl9TSEEzODQpCisjaWYgZGVmaW5lZChQU0FfV0FOVF9BTEdfU0hBXzM4NCkKICAgICBNQkVEVExTX1NTTF9TSUdfQUxHKE1CRURUTFNfU1NMX0hBU0hfU0hBMzg0KQogI2VuZGlmCi0jaWYgZGVmaW5lZChNQkVEVExTX01EX0NBTl9TSEEyNTYpCisjaWYgZGVmaW5lZChQU0FfV0FOVF9BTEdfU0hBXzI1NikKICAgICBNQkVEVExTX1NTTF9TSUdfQUxHKE1CRURUTFNfU1NMX0hBU0hfU0hBMjU2KQogI2VuZGlmCi0jaWYgZGVmaW5lZChNQkVEVExTX01EX0NBTl9TSEEyMjQpCisjaWYgZGVmaW5lZChQU0FfV0FOVF9BTEdfU0hBXzIyNCkKICAgICBNQkVEVExTX1NTTF9TSUdfQUxHKE1CRURUTFNfU1NMX0hBU0hfU0hBMjI0KQogI2VuZGlmCi0jaWYgZGVmaW5lZChNQkVEVExTX1JTQV9DKSAmJiBkZWZpbmVkKE1CRURUTFNfTURfQ0FOX1NIQTI1NikKKyNpZiBkZWZpbmVkKE1CRURUTFNfUlNBX0MpICYmIGRlZmluZWQoUFNBX1dBTlRfQUxHX1NIQV8yNTYpCiAgICAgTUJFRFRMU19UTFMxXzNfU0lHX1JTQV9QU1NfUlNBRV9TSEEyNTYsCi0jZW5kaWYgLyogTUJFRFRMU19SU0FfQyAmJiBNQkVEVExTX01EX0NBTl9TSEEyNTYgKi8KKyNlbmRpZiAvKiBNQkVEVExTX1JTQV9DICYmIFBTQV9XQU5UX0FMR19TSEFfMjU2ICovCiAjaWYgZGVmaW5lZChNQkVEVExTX01EX0NBTl9TSEExKQogICAgIC8qIEFsbG93IFNIQS0xIGFzIHdlIHVzZSBpdCBleHRlbnNpdmVseSBpbiB0ZXN0cy4gKi8KICAgICBNQkVEVExTX1NTTF9TSUdfQUxHKE1CRURUTFNfU1NMX0hBU0hfU0hBMSkKZGlmZiAtLWdpdCBhL3Byb2dyYW1zL3NzbC9zc2xfdGVzdF9saWIuYyBiL3Byb2dyYW1zL3NzbC9zc2xfdGVzdF9saWIuYwppbmRleCAxN2QzNmI3Li4yNDE5YmJhIDEwMDY0NAotLS0gYS9wcm9ncmFtcy9zc2wvc3NsX3Rlc3RfbGliLmMKKysrIGIvcHJvZ3JhbXMvc3NsL3NzbF90ZXN0X2xpYi5jCkBAIC0xMTMsNyArMTEzLDcgQEAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjb25zdCB1bnNpZ25lZCBjaGFyICopIHBlcnMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJsZW4ocGVycykpOwogI2VsaWYgZGVmaW5lZChNQkVEVExTX0hNQUNfRFJCR19DKQotI2lmIGRlZmluZWQoTUJFRFRMU19NRF9DQU5fU0hBMjU2KQorI2lmIGRlZmluZWQoUFNBX1dBTlRfQUxHX1NIQV8yNTYpCiAgICAgY29uc3QgbWJlZHRsc19tZF90eXBlX3QgbWRfdHlwZSA9IE1CRURUTFNfTURfU0hBMjU2OwogI2VsaWYgZGVmaW5lZChNQkVEVExTX01EX0NBTl9TSEE1MTIpCiAgICAgY29uc3QgbWJlZHRsc19tZF90eXBlX3QgbWRfdHlwZSA9IE1CRURUTFNfTURfU0hBNTEyOwpkaWZmIC0tZ2l0IGEvcHJvZ3JhbXMvc3NsL3NzbF90ZXN0X2xpYi5oIGIvcHJvZ3JhbXMvc3NsL3NzbF90ZXN0X2xpYi5oCmluZGV4IDFkYTJkZmIuLjdlZWQ1NmMgMTAwNjQ0Ci0tLSBhL3Byb2dyYW1zL3NzbC9zc2xfdGVzdF9saWIuaAorKysgYi9wcm9ncmFtcy9zc2wvc3NsX3Rlc3RfbGliLmgKQEAgLTIxLDcgKzIxLDcgQEAKICNlbGlmIGRlZmluZWQoTUJFRFRMU19FTlRST1BZX0MpICYmIGRlZmluZWQoTUJFRFRMU19DVFJfRFJCR19DKQogI2RlZmluZSBIQVZFX1JORwogI2VsaWYgZGVmaW5lZChNQkVEVExTX0VOVFJPUFlfQykgJiYgZGVmaW5lZChNQkVEVExTX0hNQUNfRFJCR19DKSAmJiAgICAgXAotICAgIChkZWZpbmVkKE1CRURUTFNfTURfQ0FOX1NIQTI1NikgfHwgZGVmaW5lZChNQkVEVExTX01EX0NBTl9TSEE1MTIpKQorICAgIChkZWZpbmVkKFBTQV9XQU5UX0FMR19TSEFfMjU2KSB8fCBkZWZpbmVkKE1CRURUTFNfTURfQ0FOX1NIQTUxMikpCiAjZGVmaW5lIEhBVkVfUk5HCiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvcHJvZ3JhbXMvdGVzdC9DTWFrZUxpc3RzLnR4dCBiL3Byb2dyYW1zL3Rlc3QvQ01ha2VMaXN0cy50eHQKaW5kZXggMDhmYjMyMS4uMGM5YjExYSAxMDA2NDQKLS0tIGEvcHJvZ3JhbXMvdGVzdC9DTWFrZUxpc3RzLnR4dAorKysgYi9wcm9ncmFtcy90ZXN0L0NNYWtlTGlzdHMudHh0CkBAIC0yNyw3ICsyNyw4IEBACiAgICAgYWRkX2V4ZWN1dGFibGUoY3BwX2R1bW15X2J1aWxkICIke2NwcF9kdW1teV9idWlsZF9jcHB9IikKICAgICB0YXJnZXRfaW5jbHVkZV9kaXJlY3RvcmllcyhjcHBfZHVtbXlfYnVpbGQKICAgICAgICAgUFJJVkFURSAke0NNQUtFX0NVUlJFTlRfU09VUkNFX0RJUn0vLi4vLi4vaW5jbHVkZQotICAgICAgICBQUklWQVRFICR7Q01BS0VfQ1VSUkVOVF9TT1VSQ0VfRElSfS8uLi8uLi90Zi1wc2EtY3J5cHRvL2luY2x1ZGUpCisgICAgICAgIFBSSVZBVEUgJHtDTUFLRV9DVVJSRU5UX1NPVVJDRV9ESVJ9Ly4uLy4uL3RmLXBzYS1jcnlwdG8vaW5jbHVkZQorICAgICAgICBQUklWQVRFICR7Q01BS0VfQ1VSUkVOVF9TT1VSQ0VfRElSfS8uLi8uLi90Zi1wc2EtY3J5cHRvL2RyaXZlcnMvYnVpbHRpbi9pbmNsdWRlKQogICAgIHRhcmdldF9saW5rX2xpYnJhcmllcyhjcHBfZHVtbXlfYnVpbGQgJHttYmVkY3J5cHRvX3RhcmdldH0gJHtDTUFLRV9USFJFQURfTElCU19JTklUfSkKIGVuZGlmKCkKIApAQCAtMzYsNyArMzcsOCBAQAogICAgIGFkZF9leGVjdXRhYmxlKGRsb3BlbiAiZGxvcGVuLmMiKQogICAgIHRhcmdldF9pbmNsdWRlX2RpcmVjdG9yaWVzKGRsb3BlbgogICAgICAgICBQUklWQVRFICR7Q01BS0VfQ1VSUkVOVF9TT1VSQ0VfRElSfS8uLi8uLi9pbmNsdWRlCi0gICAgICAgIFBSSVZBVEUgJHtDTUFLRV9DVVJSRU5UX1NPVVJDRV9ESVJ9Ly4uLy4uL3RmLXBzYS1jcnlwdG8vaW5jbHVkZSkKKyAgICAgICAgUFJJVkFURSAke0NNQUtFX0NVUlJFTlRfU09VUkNFX0RJUn0vLi4vLi4vdGYtcHNhLWNyeXB0by9pbmNsdWRlCisgICAgICAgIFBSSVZBVEUgJHtDTUFLRV9DVVJSRU5UX1NPVVJDRV9ESVJ9Ly4uLy4uL3RmLXBzYS1jcnlwdG8vZHJpdmVycy9idWlsdGluL2luY2x1ZGUpCiAgICAgdGFyZ2V0X2xpbmtfbGlicmFyaWVzKGRsb3BlbiAke0NNQUtFX0RMX0xJQlN9KQogZW5kaWYoKQogCkBAIC03Niw4ICs3OCwxMSBAQAogICAgIGVuZGlmKCkKICAgICBhZGRfZXhlY3V0YWJsZSgke2V4ZX0gJHtleGV9LmMgJDxUQVJHRVRfT0JKRUNUUzptYmVkdGxzX3Rlc3Q+CiAgICAgICAgICR7ZXh0cmFfc291cmNlc30pCi0gICAgdGFyZ2V0X2luY2x1ZGVfZGlyZWN0b3JpZXMoJHtleGV9IFBSSVZBVEUgJHtDTUFLRV9DVVJSRU5UX1NPVVJDRV9ESVJ9Ly4uLy4uL3Rlc3RzL2luY2x1ZGUpCi0gICAgdGFyZ2V0X2luY2x1ZGVfZGlyZWN0b3JpZXMoJHtleGV9IFBSSVZBVEUgJHtDTUFLRV9DVVJSRU5UX1NPVVJDRV9ESVJ9Ly4uLy4uL2xpYnJhcnkpCisgICAgdGFyZ2V0X2luY2x1ZGVfZGlyZWN0b3JpZXMoJHtleGV9CisgICAgICAgIFBSSVZBVEUgJHtDTUFLRV9DVVJSRU5UX1NPVVJDRV9ESVJ9Ly4uLy4uL3Rlc3RzL2luY2x1ZGUpCisgICAgdGFyZ2V0X2luY2x1ZGVfZGlyZWN0b3JpZXMoJHtleGV9CisgICAgICAgIFBSSVZBVEUgJHtDTUFLRV9DVVJSRU5UX1NPVVJDRV9ESVJ9Ly4uLy4uL2xpYnJhcnkKKyAgICAgICAgICAgICAgICAke0NNQUtFX0NVUlJFTlRfU09VUkNFX0RJUn0vLi4vLi4vdGYtcHNhLWNyeXB0by9jb3JlKQogICAgIGlmKGV4ZSBTVFJFUVVBTCAicXVlcnlfY29tcGlsZV90aW1lX2NvbmZpZyIpCiAgICAgICAgIHRhcmdldF9pbmNsdWRlX2RpcmVjdG9yaWVzKCR7ZXhlfSBQUklWQVRFICR7Q01BS0VfQ1VSUkVOVF9TT1VSQ0VfRElSfSkKICAgICBlbmRpZigpCmRpZmYgLS1naXQgYS9wcm9ncmFtcy90ZXN0L2dlbmVyYXRlX2NwcF9kdW1teV9idWlsZC5zaCBiL3Byb2dyYW1zL3Rlc3QvZ2VuZXJhdGVfY3BwX2R1bW15X2J1aWxkLnNoCmluZGV4IGVmOTk5NmUuLmQyN2M3YWUgMTAwNzU1Ci0tLSBhL3Byb2dyYW1zL3Rlc3QvZ2VuZXJhdGVfY3BwX2R1bW15X2J1aWxkLnNoCisrKyBiL3Byb2dyYW1zL3Rlc3QvZ2VuZXJhdGVfY3BwX2R1bW15X2J1aWxkLnNoCkBAIC00NSw2ICs0NSwxMyBAQAogICAgICAgICBlc2FjCiAgICAgZG9uZQogCisgICAgZm9yIGhlYWRlciBpbiB0Zi1wc2EtY3J5cHRvL2RyaXZlcnMvYnVpbHRpbi9pbmNsdWRlL21iZWR0bHMvKi5oOyBkbworICAgICAgICBjYXNlICR7aGVhZGVyI3RmLXBzYS1jcnlwdG8vZHJpdmVycy9idWlsdGluL2luY2x1ZGUvfSBpbgorICAgICAgICAgICAgbWJlZHRscy9jb25maWdfKi5oKSA6OzsgIyBub3QgbWVhbnQgZm9yIGRpcmVjdCBpbmNsdXNpb24KKyAgICAgICAgICAgICopIGVjaG8gIiNpbmNsdWRlIFwiJHtoZWFkZXIjdGYtcHNhLWNyeXB0by9kcml2ZXJzL2J1aWx0aW4vaW5jbHVkZS99XCIiOzsKKyAgICAgICAgZXNhYworICAgIGRvbmUKKwogICAgIGZvciBoZWFkZXIgaW4gdGYtcHNhLWNyeXB0by9pbmNsdWRlL3BzYS8qLmg7IGRvCiAgICAgICAgIGNhc2UgJHtoZWFkZXIjdGYtcHNhLWNyeXB0by9pbmNsdWRlL30gaW4KICAgICAgICAgICAgIHBzYS9jcnlwdG9fY29uZmlnLmgpIDo7OyAjIG5vdCBtZWFudCBmb3IgZGlyZWN0IGluY2x1c2lvbgpkaWZmIC0tZ2l0IGEvcHJvZ3JhbXMvdGVzdC9tZXRhdGVzdC5jIGIvcHJvZ3JhbXMvdGVzdC9tZXRhdGVzdC5jCmluZGV4IGM1MmU1NzkuLjc1ODI5ZWMgMTAwNjQ0Ci0tLSBhL3Byb2dyYW1zL3Rlc3QvbWV0YXRlc3QuYworKysgYi9wcm9ncmFtcy90ZXN0L21ldGF0ZXN0LmMKQEAgLTM4MSw3ICszODEsNyBAQAogICAgIHZvaWQgKCplbnRyeV9wb2ludCkoY29uc3QgY2hhciAqbmFtZSk7CiB9IG1ldGF0ZXN0X3Q7CiAKLS8qIFRoZSBsaXN0IG9mIGF2YWlsYmxlIG1ldGEtdGVzdHMuIFJlbWVtYmVyIHRvIHJlZ2lzdGVyIG5ldyBmdW5jdGlvbnMgaGVyZSEKKy8qIFRoZSBsaXN0IG9mIGF2YWlsYWJsZSBtZXRhLXRlc3RzLiBSZW1lbWJlciB0byByZWdpc3RlciBuZXcgZnVuY3Rpb25zIGhlcmUhCiAgKgogICogTm90ZSB0aGF0IHdlIGFsd2F5cyBjb21waWxlIGFsbCB0aGUgZnVuY3Rpb25zLCBzbyB0aGF0IGBtZXRhdGVzdCAtLWxpc3RgCiAgKiB3aWxsIGFsd2F5cyBsaXN0IGFsbCB0aGUgYXZhaWxhYmxlIG1ldGEtdGVzdHMuCmRpZmYgLS1naXQgYS9wcm9ncmFtcy94NTA5L2NlcnRfcmVxLmMgYi9wcm9ncmFtcy94NTA5L2NlcnRfcmVxLmMKaW5kZXggZGNmZDE3Ni4uZDE0YjA3MSAxMDA2NDQKLS0tIGEvcHJvZ3JhbXMveDUwOS9jZXJ0X3JlcS5jCisrKyBiL3Byb2dyYW1zL3g1MDkvY2VydF9yZXEuYwpAQCAtMTIsMTQgKzEyLDE0IEBACiAjaW5jbHVkZSAibWJlZHRscy9tZC5oIgogCiAjaWYgIWRlZmluZWQoTUJFRFRMU19YNTA5X0NTUl9XUklURV9DKSB8fCAhZGVmaW5lZChNQkVEVExTX1g1MDlfQ1JUX1BBUlNFX0MpIHx8IFwKLSAgICAhZGVmaW5lZChNQkVEVExTX1BLX1BBUlNFX0MpIHx8ICFkZWZpbmVkKE1CRURUTFNfTURfQ0FOX1NIQTI1NikgfHwgXAorICAgICFkZWZpbmVkKE1CRURUTFNfUEtfUEFSU0VfQykgfHwgIWRlZmluZWQoUFNBX1dBTlRfQUxHX1NIQV8yNTYpIHx8IFwKICAgICAhZGVmaW5lZChNQkVEVExTX0VOVFJPUFlfQykgfHwgIWRlZmluZWQoTUJFRFRMU19DVFJfRFJCR19DKSB8fCBcCiAgICAgIWRlZmluZWQoTUJFRFRMU19QRU1fV1JJVEVfQykgfHwgIWRlZmluZWQoTUJFRFRMU19GU19JTykgfHwgXAogICAgICFkZWZpbmVkKE1CRURUTFNfTURfQykKIGludCBtYWluKHZvaWQpCiB7CiAgICAgbWJlZHRsc19wcmludGYoIk1CRURUTFNfWDUwOV9DU1JfV1JJVEVfQyBhbmQvb3IgTUJFRFRMU19GU19JTyBhbmQvb3IgIgotICAgICAgICAgICAgICAgICAgICJNQkVEVExTX1BLX1BBUlNFX0MgYW5kL29yIE1CRURUTFNfTURfQ0FOX1NIQTI1NiBhbmQvb3IgIgorICAgICAgICAgICAgICAgICAgICJNQkVEVExTX1BLX1BBUlNFX0MgYW5kL29yIFBTQV9XQU5UX0FMR19TSEFfMjU2IGFuZC9vciAiCiAgICAgICAgICAgICAgICAgICAgIk1CRURUTFNfRU5UUk9QWV9DIGFuZC9vciBNQkVEVExTX0NUUl9EUkJHX0MgIgogICAgICAgICAgICAgICAgICAgICJub3QgZGVmaW5lZC5cbiIpOwogICAgIG1iZWR0bHNfZXhpdCgwKTsKZGlmZiAtLWdpdCBhL3Byb2dyYW1zL3g1MDkvY2VydF93cml0ZS5jIGIvcHJvZ3JhbXMveDUwOS9jZXJ0X3dyaXRlLmMKaW5kZXggMGIyNTc1ZS4uOGMxMDQ5OCAxMDA2NDQKLS0tIGEvcHJvZ3JhbXMveDUwOS9jZXJ0X3dyaXRlLmMKKysrIGIvcHJvZ3JhbXMveDUwOS9jZXJ0X3dyaXRlLmMKQEAgLTE0LDEyICsxNCwxMiBAQAogI2lmICFkZWZpbmVkKE1CRURUTFNfWDUwOV9DUlRfV1JJVEVfQykgfHwgXAogICAgICFkZWZpbmVkKE1CRURUTFNfWDUwOV9DUlRfUEFSU0VfQykgfHwgIWRlZmluZWQoTUJFRFRMU19GU19JTykgfHwgXAogICAgICFkZWZpbmVkKE1CRURUTFNfRU5UUk9QWV9DKSB8fCAhZGVmaW5lZChNQkVEVExTX0NUUl9EUkJHX0MpIHx8IFwKLSAgICAhZGVmaW5lZChNQkVEVExTX0VSUk9SX0MpIHx8ICFkZWZpbmVkKE1CRURUTFNfTURfQ0FOX1NIQTI1NikgfHwgXAorICAgICFkZWZpbmVkKE1CRURUTFNfRVJST1JfQykgfHwgIWRlZmluZWQoUFNBX1dBTlRfQUxHX1NIQV8yNTYpIHx8IFwKICAgICAhZGVmaW5lZChNQkVEVExTX1BFTV9XUklURV9DKSB8fCAhZGVmaW5lZChNQkVEVExTX01EX0MpCiBpbnQgbWFpbih2b2lkKQogewogICAgIG1iZWR0bHNfcHJpbnRmKCJNQkVEVExTX1g1MDlfQ1JUX1dSSVRFX0MgYW5kL29yIE1CRURUTFNfWDUwOV9DUlRfUEFSU0VfQyBhbmQvb3IgIgotICAgICAgICAgICAgICAgICAgICJNQkVEVExTX0ZTX0lPIGFuZC9vciBNQkVEVExTX01EX0NBTl9TSEEyNTYgYW5kL29yICIKKyAgICAgICAgICAgICAgICAgICAiTUJFRFRMU19GU19JTyBhbmQvb3IgUFNBX1dBTlRfQUxHX1NIQV8yNTYgYW5kL29yICIKICAgICAgICAgICAgICAgICAgICAiTUJFRFRMU19FTlRST1BZX0MgYW5kL29yIE1CRURUTFNfQ1RSX0RSQkdfQyBhbmQvb3IgIgogICAgICAgICAgICAgICAgICAgICJNQkVEVExTX0VSUk9SX0Mgbm90IGRlZmluZWQuXG4iKTsKICAgICBtYmVkdGxzX2V4aXQoMCk7CmRpZmYgLS1naXQgYS9zY3JpcHRzL2NpLnJlcXVpcmVtZW50cy50eHQgYi9zY3JpcHRzL2NpLnJlcXVpcmVtZW50cy50eHQKaW5kZXggNjljMmRiMC4uZDIxYWEyNyAxMDA2NDQKLS0tIGEvc2NyaXB0cy9jaS5yZXF1aXJlbWVudHMudHh0CisrKyBiL3NjcmlwdHMvY2kucmVxdWlyZW1lbnRzLnR4dApAQCAtMTksNiArMTksNiBAQAogIyB0byBydW4gYXVkaXQtdmFsaWRpdHktZGF0ZXMucHkgb24gUHl0aG9uID49My42LgogY3J5cHRvZ3JhcGh5ICMgPj0gMzUuMC4wCiAKLSMgRm9yIGJ1aWxkaW5nIGB0ZXN0cy9kYXRhX2ZpbGVzL3NlcnZlcjktYmFkLXNhbHRsZW4uY3J0YCBhbmQgY2hlY2sgcHl0aG9uCisjIEZvciBidWlsZGluZyBgZnJhbWV3b3JrL2RhdGFfZmlsZXMvc2VydmVyOS1iYWQtc2FsdGxlbi5jcnRgIGFuZCBjaGVjayBweXRob24KICMgZmlsZXMuCiBhc24xY3J5cHRvCmRpZmYgLS1naXQgYS9zY3JpcHRzL2NvZGVfc3R5bGUucHkgYi9zY3JpcHRzL2NvZGVfc3R5bGUucHkKaW5kZXggZDNmODlkOS4uMjZkZTczMCAxMDA3NTUKLS0tIGEvc2NyaXB0cy9jb2RlX3N0eWxlLnB5CisrKyBiL3NjcmlwdHMvY29kZV9zdHlsZS5weQpAQCAtNjYsNyArNjYsNyBAQAogICAgIHRoYXQgaGF2ZSBjaGFuZ2VkIHNpbmNlIHRoYXQgY29tbWl0LiBXaXRob3V0IHRoaXMgYXJndW1lbnQsIGxpc3QgYWxsCiAgICAgZmlsZXMga25vd24gdG8gZ2l0LgogCi0gICAgT25seSBDIGZpbGVzIGFyZSBpbmNsdWRlZCwgYW5kIGNlcnRhaW4gZmlsZXMgKGdlbmVyYXRlZCwgb3IgM3JkcGFydHkpCisgICAgT25seSBDIGZpbGVzIGFyZSBpbmNsdWRlZCwgYW5kIGNlcnRhaW4gZmlsZXMgKGdlbmVyYXRlZCwgb3IgdGhpcmQgcGFydHkpCiAgICAgYXJlIGV4Y2x1ZGVkLgogICAgICIiIgogICAgIGZpbGVfcGF0dGVybnMgPSBbIiouW2hjXSIsCkBAIC0xMzAsNyArMTMwLDggQEAKICAgICAjIGNvbXBhbmlvbiBmaWxlcyBpbiB0aGUgc2FtZSBzdWJ0cmVlKSwgb3IgZm9yIGF1dG9tYXRpY2FsbHkKICAgICAjIGdlbmVyYXRlZCBmaWxlcyAod2UncmUgY29ycmVjdGluZyB0aGUgdGVtcGxhdGVzIGluc3RlYWQpLgogICAgIHNyY19maWxlcyA9IFtmaWxlbmFtZSBmb3IgZmlsZW5hbWUgaW4gc3JjX2ZpbGVzCi0gICAgICAgICAgICAgICAgIGlmIG5vdCAoZmlsZW5hbWUuc3RhcnRzd2l0aCgiM3JkcGFydHkvIikgb3IKKyAgICAgICAgICAgICAgICAgaWYgbm90IChmaWxlbmFtZS5zdGFydHN3aXRoKCJ0Zi1wc2EtY3J5cHRvL2RyaXZlcnMvZXZlcmVzdC8iKSBvcgorICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGVuYW1lLnN0YXJ0c3dpdGgoInRmLXBzYS1jcnlwdG8vZHJpdmVycy9wMjU2LW0vIikgb3IKICAgICAgICAgICAgICAgICAgICAgICAgICBmaWxlbmFtZSBpbiBnZW5lcmF0ZWRfZmlsZXMgb3IKICAgICAgICAgICAgICAgICAgICAgICAgICBpc19maWxlX2F1dG9nZW5lcmF0ZWQoZmlsZW5hbWUpKV0KICAgICByZXR1cm4gc3JjX2ZpbGVzCmRpZmYgLS1naXQgYS9zY3JpcHRzL2NvbW1vbi5tYWtlIGIvc2NyaXB0cy9jb21tb24ubWFrZQppbmRleCA3MDJlZjVjLi5kMTAyYTk3IDEwMDY0NAotLS0gYS9zY3JpcHRzL2NvbW1vbi5tYWtlCisrKyBiL3NjcmlwdHMvY29tbW9uLm1ha2UKQEAgLTQsNiArNCw4IEBACiBNQkVEVExTX1BBVEggOj0gLi4KIGVuZGlmCiAKK1BTQVNJTV9QQVRIPSQoTUJFRFRMU19QQVRIKS90ZXN0cy9wc2EtY2xpZW50LXNlcnZlci9wc2FzaW0KKwogaWZlcSAoLCQod2lsZGNhcmQgJChNQkVEVExTX1BBVEgpL2ZyYW1ld29yay9leHBvcnRlZC5tYWtlKSkKICAgICAjIFVzZSB0aGUgZGVmaW5lIGtleXdvcmQgdG8gZ2V0IGEgbXVsdGktbGluZSBtZXNzYWdlLgogICAgICMgR05VIG1ha2UgYXBwZW5kcyAiLiAgU3RvcC4iLCBzbyB0d2VhayB0aGUgZW5kaW5nIG9mIG91ciBtZXNzYWdlIGFjY29yZGluZ2x5LgpAQCAtMjEsMjEgKzIzLDQ1IEBACiBXQVJOSU5HX0NYWEZMQUdTID89IC1XYWxsIC1XZXh0cmEgLVdmb3JtYXQ9MiAtV25vLWZvcm1hdC1ub25saXRlcmFsCiBMREZMQUdTID89CiAKLUxPQ0FMX0NGTEFHUyA9ICQoV0FSTklOR19DRkxBR1MpIC1JJChNQkVEVExTX1RFU1RfUEFUSCkvaW5jbHVkZSAtSSQoTUJFRFRMU19QQVRIKS9pbmNsdWRlIC1JJChNQkVEVExTX1BBVEgpL3RmLXBzYS1jcnlwdG8vaW5jbHVkZSAtRF9GSUxFX09GRlNFVF9CSVRTPTY0CitMT0NBTF9DRkxBR1MgPSAkKFdBUk5JTkdfQ0ZMQUdTKSAtSSQoTUJFRFRMU19URVNUX1BBVEgpL2luY2x1ZGUgXAorICAgICAgICAgICAgICAgLUkkKE1CRURUTFNfUEFUSCkvaW5jbHVkZSAtSSQoTUJFRFRMU19QQVRIKS90Zi1wc2EtY3J5cHRvL2luY2x1ZGUgXAorICAgICAgICAgICAgICAgLUkkKE1CRURUTFNfUEFUSCkvdGYtcHNhLWNyeXB0by9kcml2ZXJzL2J1aWx0aW4vaW5jbHVkZSBcCisgICAgICAgICAgICAgICAtRF9GSUxFX09GRlNFVF9CSVRTPTY0CiBMT0NBTF9DWFhGTEFHUyA9ICQoV0FSTklOR19DWFhGTEFHUykgLUkkKE1CRURUTFNfUEFUSCkvaW5jbHVkZSAtSSQoTUJFRFRMU19QQVRIKS90ZXN0cy9pbmNsdWRlIC1EX0ZJTEVfT0ZGU0VUX0JJVFM9NjQKKworaWZkZWYgUFNBU0lNCitMT0NBTF9MREZMQUdTID0gJHtNQkVEVExTX1RFU1RfT0JKU30gCQlcCisJCS1MJChQU0FTSU1fUEFUSCkvY2xpZW50X2xpYnMJCQlcCisJCS1scHNhY2xpZW50IFwKKwkJLWxtYmVkdGxzJChTSEFSRURfU1VGRklYKQlcCisJCS1sbWJlZHg1MDkkKFNIQVJFRF9TVUZGSVgpCVwKKwkJLWxtYmVkY3J5cHRvJChTSEFSRURfU1VGRklYKQorZWxzZQogTE9DQUxfTERGTEFHUyA9ICR7TUJFRFRMU19URVNUX09CSlN9IAkJXAogCQktTCQoTUJFRFRMU19QQVRIKS9saWJyYXJ5CQkJXAogCQktbG1iZWR0bHMkKFNIQVJFRF9TVUZGSVgpCVwKIAkJLWxtYmVkeDUwOSQoU0hBUkVEX1NVRkZJWCkJXAogCQktbG1iZWRjcnlwdG8kKFNIQVJFRF9TVUZGSVgpCitlbmRpZgogCi1pbmNsdWRlICQoTUJFRFRMU19QQVRIKS8zcmRwYXJ0eS9NYWtlZmlsZS5pbmMKK1RISVJEUEFSVFlfRElSID0gJChNQkVEVExTX1BBVEgpL3RmLXBzYS1jcnlwdG8vZHJpdmVycworaW5jbHVkZSAkKFRISVJEUEFSVFlfRElSKS9ldmVyZXN0L01ha2VmaWxlLmluYworaW5jbHVkZSAkKFRISVJEUEFSVFlfRElSKS9wMjU2LW0vTWFrZWZpbGUuaW5jCiBMT0NBTF9DRkxBR1MrPSQoVEhJUkRQQVJUWV9JTkNMVURFUykKIAotaWZuZGVmIFNIQVJFRAotTUJFRExJQlM9JChNQkVEVExTX1BBVEgpL2xpYnJhcnkvbGlibWJlZGNyeXB0by5hICQoTUJFRFRMU19QQVRIKS9saWJyYXJ5L2xpYm1iZWR4NTA5LmEgJChNQkVEVExTX1BBVEgpL2xpYnJhcnkvbGlibWJlZHRscy5hCitpZmRlZiBQU0FTSU0KK01CRURMSUJTPSQoUFNBU0lNX1BBVEgpL2NsaWVudF9saWJzL2xpYm1iZWRjcnlwdG8uYSBcCisJCQkJJChQU0FTSU1fUEFUSCkvY2xpZW50X2xpYnMvbGlibWJlZHg1MDkuYSBcCisJCQkJJChQU0FTSU1fUEFUSCkvY2xpZW50X2xpYnMvbGlibWJlZHRscy5hIFwKKwkJCQkkKFBTQVNJTV9QQVRIKS9jbGllbnRfbGlicy9saWJwc2FjbGllbnQuYQorZWxzZSBpZm5kZWYgU0hBUkVECitNQkVETElCUz0kKE1CRURUTFNfUEFUSCkvbGlicmFyeS9saWJtYmVkY3J5cHRvLmEgXAorCQkJCSQoTUJFRFRMU19QQVRIKS9saWJyYXJ5L2xpYm1iZWR4NTA5LmEgXAorCQkJCSQoTUJFRFRMU19QQVRIKS9saWJyYXJ5L2xpYm1iZWR0bHMuYQogZWxzZQotTUJFRExJQlM9JChNQkVEVExTX1BBVEgpL2xpYnJhcnkvbGlibWJlZGNyeXB0by4kKERMRVhUKSAkKE1CRURUTFNfUEFUSCkvbGlicmFyeS9saWJtYmVkeDUwOS4kKERMRVhUKSAkKE1CRURUTFNfUEFUSCkvbGlicmFyeS9saWJtYmVkdGxzLiQoRExFWFQpCitNQkVETElCUz0kKE1CRURUTFNfUEFUSCkvbGlicmFyeS9saWJtYmVkY3J5cHRvLiQoRExFWFQpIFwKKwkJCQkkKE1CRURUTFNfUEFUSCkvbGlicmFyeS9saWJtYmVkeDUwOS4kKERMRVhUKSBcCisJCQkJJChNQkVEVExTX1BBVEgpL2xpYnJhcnkvbGlibWJlZHRscy4kKERMRVhUKQogZW5kaWYKIAogaWZkZWYgREVCVUcKQEAgLTEyMywxMCArMTQ5LDE3IEBACiBlbmRpZgogCiAjIEF1eGlsaWFyeSBtb2R1bGVzIHVzZWQgYnkgdGVzdHMgYW5kIHNvbWUgc2FtcGxlIHByb2dyYW1zCi1NQkVEVExTX0NPUkVfVEVTVF9PQkpTID0gJChwYXRzdWJzdCAlLmMsJS5vLCQod2lsZGNhcmQgXAorTUJFRFRMU19DT1JFX1RFU1RfT0JKUyA6PSAkKHBhdHN1YnN0ICUuYywlLm8sJCh3aWxkY2FyZCBcCiAgICAgJHtNQkVEVExTX1RFU1RfUEFUSH0vc3JjLyouYyBcCiAgICAgJHtNQkVEVExTX1RFU1RfUEFUSH0vc3JjL2RyaXZlcnMvKi5jIFwKICAgKSkKKyMgSWdub3JlIFBTQSBzdHVicyB3aGVuIGJ1aWxkaW5nIGZvciB0aGUgY2xpZW50IHNpZGUgb2YgUFNBU0lNIChpLmUuCisjIENSWVBUT19DTElFTlQgJiYgIUNSWVBUT19DKSBvdGhlcndpc2UgdGhlcmUgd2lsbCBiZSBmdW5jdGlvbnMgZHVwbGljYXRlcy4KK2lmZGVmIFBTQVNJTQorTUJFRFRMU19DT1JFX1RFU1RfT0JKUyA6PSAkKGZpbHRlci1vdXQgXAorICAgICR7TUJFRFRMU19URVNUX1BBVEh9L3NyYy9wc2FfY3J5cHRvX3N0dWJzLm8sICQoTUJFRFRMU19DT1JFX1RFU1RfT0JKUylcCisgICkKK2VuZGlmCiAjIEFkZGl0aW9uYWwgYXV4aWxpYXJ5IG1vZHVsZXMgZm9yIFRMUyB0ZXN0aW5nCiBNQkVEVExTX1RMU19URVNUX09CSlMgPSAkKHBhdHN1YnN0ICUuYywlLm8sJCh3aWxkY2FyZCBcCiAgICAgJHtNQkVEVExTX1RFU1RfUEFUSH0vc3JjL3Rlc3RfaGVscGVycy8qLmMgXApkaWZmIC0tZ2l0IGEvc2NyaXB0cy9jb25maWcucHkgYi9zY3JpcHRzL2NvbmZpZy5weQppbmRleCBjNTNmOWU3Li43YzMyZGIxIDEwMDc1NQotLS0gYS9zY3JpcHRzL2NvbmZpZy5weQorKysgYi9zY3JpcHRzL2NvbmZpZy5weQpAQCAtMTg1LDcgKzE4NSw2IEBACiAgICAgJ01CRURUTFNfREVQUkVDQVRFRF9SRU1PVkVEJywgIyBjb25mbGljdHMgd2l0aCBkZXByZWNhdGVkIG9wdGlvbnMKICAgICAnTUJFRFRMU19ERVBSRUNBVEVEX1dBUk5JTkcnLCAjIGNvbmZsaWN0cyB3aXRoIGRlcHJlY2F0ZWQgb3B0aW9ucwogICAgICdNQkVEVExTX0VDREhfVkFSSUFOVF9FVkVSRVNUX0VOQUJMRUQnLCAjIGluZmx1ZW5jZXMgdGhlIHVzZSBvZiBFQ0RIIGluIFRMUwotICAgICdNQkVEVExTX0VDUF9OT19GQUxMQkFDSycsICMgcmVtb3ZlcyBpbnRlcm5hbCBFQ1AgaW1wbGVtZW50YXRpb24KICAgICAnTUJFRFRMU19FQ1BfV0lUSF9NUElfVUlOVCcsICMgZGlzYWJsZXMgdGhlIGRlZmF1bHQgRUNQIGFuZCBpcyBleHBlcmltZW50YWwKICAgICAnTUJFRFRMU19FTlRST1BZX0ZPUkNFX1NIQTI1NicsICMgaW50ZXJhY3RzIHdpdGggQ1RSX0RSQkdfMTI4X0JJVF9LRVkKICAgICAnTUJFRFRMU19IQVZFX1NTRTInLCAjIGhhcmR3YXJlIGRlcGVuZGVuY3kKQEAgLTM5Niw2ICszOTUsNyBAQAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmRlZmF1bHRfcGF0aCkKICAgICAgICAgc3VwZXIoKS5fX2luaXRfXygpCiAgICAgICAgIHNlbGYuZmlsZW5hbWUgPSBmaWxlbmFtZQorICAgICAgICBzZWxmLmluY2x1c2lvbl9ndWFyZCA9IE5vbmUKICAgICAgICAgc2VsZi5jdXJyZW50X3NlY3Rpb24gPSAnaGVhZGVyJwogICAgICAgICB3aXRoIG9wZW4oZmlsZW5hbWUsICdyJywgZW5jb2Rpbmc9J3V0Zi04JykgYXMgZmlsZToKICAgICAgICAgICAgIHNlbGYudGVtcGxhdGVzID0gW3NlbGYuX3BhcnNlX2xpbmUobGluZSkgZm9yIGxpbmUgaW4gZmlsZV0KQEAgLTQxMyw5ICs0MTMsMTEgQEAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHInKD9QPGFyZ3VtZW50cz4oPzpcKCg/Olx3fFxzfCwpKlwpKT8pJyArCiAgICAgICAgICAgICAgICAgICAgICAgICAgICByJyg/UDxzZXBhcmF0b3I+XHMqKScgKwogICAgICAgICAgICAgICAgICAgICAgICAgICAgcicoP1A8dmFsdWU+LiopJykKKyAgICBfaWZuZGVmX2xpbmVfcmVnZXhwID0gcicjaWZuZGVmICg/UDxpbmNsdXNpb25fZ3VhcmQ+XHcrKScKICAgICBfc2VjdGlvbl9saW5lX3JlZ2V4cCA9IChyJ1xzKi8/XCorXHMqW1xcQF1uYW1lXHMrU0VDVElPTjpccyonICsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICByJyg/UDxzZWN0aW9uPi4qKVsgKi9dKicpCiAgICAgX2NvbmZpZ19saW5lX3JlZ2V4cCA9IHJlLmNvbXBpbGUocid8Jy5qb2luKFtfZGVmaW5lX2xpbmVfcmVnZXhwLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX2lmbmRlZl9saW5lX3JlZ2V4cCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9zZWN0aW9uX2xpbmVfcmVnZXhwXSkpCiAgICAgZGVmIF9wYXJzZV9saW5lKHNlbGYsIGxpbmUpOgogICAgICAgICAiIiJQYXJzZSBhIGxpbmUgaW4gbWJlZHRsc19jb25maWcuaCBhbmQgcmV0dXJuIHRoZSBjb3JyZXNwb25kaW5nIHRlbXBsYXRlLiIiIgpAQCAtNDI2LDEwICs0MjgsMTYgQEAKICAgICAgICAgZWxpZiBtLmdyb3VwKCdzZWN0aW9uJyk6CiAgICAgICAgICAgICBzZWxmLmN1cnJlbnRfc2VjdGlvbiA9IG0uZ3JvdXAoJ3NlY3Rpb24nKQogICAgICAgICAgICAgcmV0dXJuIGxpbmUKKyAgICAgICAgZWxpZiBtLmdyb3VwKCdpbmNsdXNpb25fZ3VhcmQnKSBhbmQgc2VsZi5pbmNsdXNpb25fZ3VhcmQgaXMgTm9uZToKKyAgICAgICAgICAgIHNlbGYuaW5jbHVzaW9uX2d1YXJkID0gbS5ncm91cCgnaW5jbHVzaW9uX2d1YXJkJykKKyAgICAgICAgICAgIHJldHVybiBsaW5lCiAgICAgICAgIGVsc2U6CiAgICAgICAgICAgICBhY3RpdmUgPSBub3QgbS5ncm91cCgnY29tbWVudGVkX291dCcpCiAgICAgICAgICAgICBuYW1lID0gbS5ncm91cCgnbmFtZScpCiAgICAgICAgICAgICB2YWx1ZSA9IG0uZ3JvdXAoJ3ZhbHVlJykKKyAgICAgICAgICAgIGlmIG5hbWUgPT0gc2VsZi5pbmNsdXNpb25fZ3VhcmQgYW5kIHZhbHVlID09ICcnOgorICAgICAgICAgICAgICAgICMgVGhlIGZpbGUgZG91YmxlLWluY2x1c2lvbiBndWFyZCBpcyBub3QgYW4gb3B0aW9uLgorICAgICAgICAgICAgICAgIHJldHVybiBsaW5lCiAgICAgICAgICAgICB0ZW1wbGF0ZSA9IChuYW1lLAogICAgICAgICAgICAgICAgICAgICAgICAgbS5ncm91cCgnaW5kZW50YXRpb24nKSwKICAgICAgICAgICAgICAgICAgICAgICAgIG0uZ3JvdXAoJ2RlZmluZScpICsgbmFtZSArCmRpZmYgLS1naXQgYS9zY3JpcHRzL2RhdGFfZmlsZXMvZHJpdmVyX2pzb25zL3AyNTZfdHJhbnNwYXJlbnRfZHJpdmVyLmpzb24gYi9zY3JpcHRzL2RhdGFfZmlsZXMvZHJpdmVyX2pzb25zL3AyNTZfdHJhbnNwYXJlbnRfZHJpdmVyLmpzb24KaW5kZXggN2QyYWFiZi4uNDc5NDA3NCAxMDA2NDQKLS0tIGEvc2NyaXB0cy9kYXRhX2ZpbGVzL2RyaXZlcl9qc29ucy9wMjU2X3RyYW5zcGFyZW50X2RyaXZlci5qc29uCisrKyBiL3NjcmlwdHMvZGF0YV9maWxlcy9kcml2ZXJfanNvbnMvcDI1Nl90cmFuc3BhcmVudF9kcml2ZXIuanNvbgpAQCAtMiw3ICsyLDcgQEAKICAgICAicHJlZml4IjogICAgICAgInAyNTYiLAogICAgICJ0eXBlIjogICAgICAgICAidHJhbnNwYXJlbnQiLAogICAgICJtYmVkdGxzL2hfY29uZGl0aW9uIjogICAiZGVmaW5lZChNQkVEVExTX1BTQV9QMjU2TV9EUklWRVJfRU5BQkxFRCkiLAotICAgICJoZWFkZXJzIjogICAgICBbIi4uLzNyZHBhcnR5L3AyNTYtbS9wMjU2LW1fZHJpdmVyX2VudHJ5cG9pbnRzLmgiXSwKKyAgICAiaGVhZGVycyI6ICAgICAgWyIuLi90Zi1wc2EtY3J5cHRvL2RyaXZlcnMvcDI1Ni1tL3AyNTYtbV9kcml2ZXJfZW50cnlwb2ludHMuaCJdLAogICAgICJjYXBhYmlsaXRpZXMiOiBbCiAgICAgICAgIHsKICAgICAgICAgICAgICJtYmVkdGxzL2NfY29uZGl0aW9uIjogImRlZmluZWQoTUJFRFRMU19QU0FfUDI1Nk1fRFJJVkVSX0VOQUJMRUQpIiwKZGlmZiAtLWdpdCBhL3NjcmlwdHMvZ2VuZXJhdGVfZHJpdmVyX3dyYXBwZXJzLnB5IGIvc2NyaXB0cy9nZW5lcmF0ZV9kcml2ZXJfd3JhcHBlcnMucHkKaW5kZXggMGYwYzhjNy4uOTU3OTc2NCAxMDA3NTUKLS0tIGEvc2NyaXB0cy9nZW5lcmF0ZV9kcml2ZXJfd3JhcHBlcnMucHkKKysrIGIvc2NyaXB0cy9nZW5lcmF0ZV9kcml2ZXJfd3JhcHBlcnMucHkKQEAgLTEsNiArMSw2IEBACiAjIS91c3IvYmluL2VudiBweXRob24zCi0iIiJHZW5lcmF0ZSBsaWJyYXJ5L3BzYV9jcnlwdG9fZHJpdmVyX3dyYXBwZXJzLmgKLSAgICAgICAgICAgIGxpYnJhcnkvcHNhX2NyeXB0b19kcml2ZXJfd3JhcHBlcnNfbm9fc3RhdGljLmMKKyIiIkdlbmVyYXRlIHBzYV9jcnlwdG9fZHJpdmVyX3dyYXBwZXJzLmgKKyAgICAgICAgICAgIHBzYV9jcnlwdG9fZHJpdmVyX3dyYXBwZXJzX25vX3N0YXRpYy5jCiAKICAgIFRoaXMgbW9kdWxlIGlzIGludm9rZWQgYnkgdGhlIGJ1aWxkIHNjcmlwdHMgdG8gYXV0byBnZW5lcmF0ZSB0aGUKICAgIHBzYV9jcnlwdG9fZHJpdmVyX3dyYXBwZXJzLmggYW5kIHBzYV9jcnlwdG9fZHJpdmVyX3dyYXBwZXJzX25vX3N0YXRpYwpkaWZmIC0tZ2l0IGEvc2NyaXB0cy9nZW5lcmF0ZV9lcnJvcnMucGwgYi9zY3JpcHRzL2dlbmVyYXRlX2Vycm9ycy5wbAppbmRleCAwMTM0Yzk0Li5kZjU0NmQ3IDEwMDc1NQotLS0gYS9zY3JpcHRzL2dlbmVyYXRlX2Vycm9ycy5wbAorKysgYi9zY3JpcHRzL2dlbmVyYXRlX2Vycm9ycy5wbApAQCAtMyw3ICszLDcgQEAKICMgR2VuZXJhdGUgZXJyb3IuYwogIwogIyBVc2FnZTogLi9nZW5lcmF0ZV9lcnJvcnMucGwgb3Igc2NyaXB0cy9nZW5lcmF0ZV9lcnJvcnMucGwgd2l0aG91dCBhcmd1bWVudHMsCi0jIG9yIGdlbmVyYXRlX2Vycm9ycy5wbCBpbmNsdWRlX2RpciBkYXRhX2RpciBlcnJvcl9maWxlCisjIG9yIGdlbmVyYXRlX2Vycm9ycy5wbCBjcnlwdG9faW5jbHVkZV9kaXIgdGxzX2luY2x1ZGVfZGlyIGRhdGFfZGlyIGVycm9yX2ZpbGUKICMKICMgQ29weXJpZ2h0IFRoZSBNYmVkIFRMUyBDb250cmlidXRvcnMKICMgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjAgT1IgR1BMLTIuMC1vci1sYXRlcgpAQCAtMTEsMjIgKzExLDI0IEBACiB1c2Ugc3RyaWN0OwogdXNlIHdhcm5pbmdzOwogCi1teSAoJGluY2x1ZGVfZGlyLCAkZGF0YV9kaXIsICRlcnJvcl9maWxlKTsKK215ICgkY3J5cHRvX2luY2x1ZGVfZGlyLCAkdGxzX2luY2x1ZGVfZGlyLCAkZGF0YV9kaXIsICRlcnJvcl9maWxlKTsKIAogaWYoIEBBUkdWICkgewotICAgIGRpZSAiSW52YWxpZCBudW1iZXIgb2YgYXJndW1lbnRzIiBpZiBzY2FsYXIgQEFSR1YgIT0gMzsKLSAgICAoJGluY2x1ZGVfZGlyLCAkZGF0YV9kaXIsICRlcnJvcl9maWxlKSA9IEBBUkdWOworICAgIGRpZSAiSW52YWxpZCBudW1iZXIgb2YgYXJndW1lbnRzIiBpZiBzY2FsYXIgQEFSR1YgIT0gNDsKKyAgICAoJGNyeXB0b19pbmNsdWRlX2RpciwgJHRsc19pbmNsdWRlX2RpciwgJGRhdGFfZGlyLCAkZXJyb3JfZmlsZSkgPSBAQVJHVjsKIAotICAgIC1kICRpbmNsdWRlX2RpciBvciBkaWUgIk5vIHN1Y2ggZGlyZWN0b3J5OiAkaW5jbHVkZV9kaXJcbiI7CisgICAgLWQgJGNyeXB0b19pbmNsdWRlX2RpciBvciBkaWUgIk5vIHN1Y2ggZGlyZWN0b3J5OiAkY3J5cHRvX2luY2x1ZGVfZGlyXG4iOworICAgIC1kICR0bHNfaW5jbHVkZV9kaXIgb3IgZGllICJObyBzdWNoIGRpcmVjdG9yeTogJHRsc19pbmNsdWRlX2RpclxuIjsKICAgICAtZCAkZGF0YV9kaXIgb3IgZGllICJObyBzdWNoIGRpcmVjdG9yeTogJGRhdGFfZGlyXG4iOwogfSBlbHNlIHsKLSAgICAkaW5jbHVkZV9kaXIgPSAnaW5jbHVkZS9tYmVkdGxzJzsKKyAgICAkY3J5cHRvX2luY2x1ZGVfZGlyID0gJ3RmLXBzYS1jcnlwdG8vZHJpdmVycy9idWlsdGluL2luY2x1ZGUvbWJlZHRscyc7CisgICAgJHRsc19pbmNsdWRlX2RpciA9ICdpbmNsdWRlL21iZWR0bHMnOwogICAgICRkYXRhX2RpciA9ICdzY3JpcHRzL2RhdGFfZmlsZXMnOwotICAgICRlcnJvcl9maWxlID0gJ2xpYnJhcnkvZXJyb3IuYyc7CisgICAgJGVycm9yX2ZpbGUgPSAndGYtcHNhLWNyeXB0by9kcml2ZXJzL2J1aWx0aW4vc3JjL2Vycm9yLmMnOwogCi0gICAgdW5sZXNzKCAtZCAkaW5jbHVkZV9kaXIgJiYgLWQgJGRhdGFfZGlyICkgeworICAgIHVubGVzcyggLWQgJGNyeXB0b19pbmNsdWRlX2RpciAmJiAtZCAkdGxzX2luY2x1ZGVfZGlyICYmIC1kICRkYXRhX2RpciApIHsKICAgICAgICAgY2hkaXIgJy4uJyBvciBkaWU7Ci0gICAgICAgIC1kICRpbmNsdWRlX2RpciAmJiAtZCAkZGF0YV9kaXIKKyAgICAgICAgLWQgJGNyeXB0b19pbmNsdWRlX2RpciAmJiAtZCAkdGxzX2luY2x1ZGVfZGlyICYmIC1kICRkYXRhX2RpcgogICAgICAgICAgICAgb3IgZGllICJXaXRob3V0IGFyZ3VtZW50cywgbXVzdCBiZSBydW4gZnJvbSByb290IG9yIHNjcmlwdHNcbiIKICAgICB9CiB9CkBAIC0zNiw3ICszOCw3IEBACiBteSBAbG93X2xldmVsX21vZHVsZXMgPSBxdyggQUVTIEFSSUEgQVNOMSBCQVNFNjQgQklHTlVNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ0FNRUxMSUEgQ0NNIENIQUNIQTIwIENIQUNIQVBPTFkgQ01BQyBDVFJfRFJCRyBERVMKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFTlRST1BZIEVSUk9SIEdDTSBIS0RGIEhNQUNfRFJCRyBMTVMgTUQ1Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgTkVUIE9JRCBQQURMT0NLIFBCS0RGMiBQTEFURk9STSBQT0xZMTMwNSBSSVBFTUQxNjAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBORVQgT0lEIFBCS0RGMiBQTEFURk9STSBQT0xZMTMwNSBSSVBFTUQxNjAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTSEExIFNIQTI1NiBTSEE1MTIgU0hBMyBUSFJFQURJTkcgKTsKIG15IEBoaWdoX2xldmVsX21vZHVsZXMgPSBxdyggQ0lQSEVSIERITSBFQ1AgTUQKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUEVNIFBLIFBLQ1MxMiBQS0NTNQpAQCAtNDgsNyArNTAsOCBAQAogbXkgJGVycm9yX2Zvcm1hdCA9IDxGT1JNQVRfRklMRT47CiBjbG9zZShGT1JNQVRfRklMRSk7CiAKLW15IEBmaWxlcyA9IGdsb2IgcXEoIiRpbmNsdWRlX2Rpci8qLmgiKTsKK215IEBmaWxlcyA9IGdsb2IgcXEoIiRjcnlwdG9faW5jbHVkZV9kaXIvKi5oIik7CitwdXNoKEBmaWxlcywgZ2xvYiBxcSgiJHRsc19pbmNsdWRlX2Rpci8qLmgiKSk7CiBteSBAbmVjZXNzYXJ5X2luY2x1ZGVfZmlsZXM7CiBteSBAbWF0Y2hlczsKIGZvcmVhY2ggbXkgJGZpbGUgKEBmaWxlcykgewpkaWZmIC0tZ2l0IGEvc2NyaXB0cy9nZW5lcmF0ZV9mZWF0dXJlcy5wbCBiL3NjcmlwdHMvZ2VuZXJhdGVfZmVhdHVyZXMucGwKaW5kZXggY2VhOGMxMS4uNjk3MjY4MiAxMDA3NTUKLS0tIGEvc2NyaXB0cy9nZW5lcmF0ZV9mZWF0dXJlcy5wbAorKysgYi9zY3JpcHRzL2dlbmVyYXRlX2ZlYXR1cmVzLnBsCkBAIC0xNiw3ICsxNiw3IEBACiB9IGVsc2UgewogICAgICRpbmNsdWRlX2RpciA9ICdpbmNsdWRlL21iZWR0bHMnOwogICAgICRkYXRhX2RpciA9ICdzY3JpcHRzL2RhdGFfZmlsZXMnOwotICAgICRmZWF0dXJlX2ZpbGUgPSAnbGlicmFyeS92ZXJzaW9uX2ZlYXR1cmVzLmMnOworICAgICRmZWF0dXJlX2ZpbGUgPSAndGYtcHNhLWNyeXB0by9kcml2ZXJzL2J1aWx0aW4vc3JjL3ZlcnNpb25fZmVhdHVyZXMuYyc7CiAKICAgICB1bmxlc3MoIC1kICRpbmNsdWRlX2RpciAmJiAtZCAkZGF0YV9kaXIgKSB7CiAgICAgICAgIGNoZGlyICcuLicgb3IgZGllOwpkaWZmIC0tZ2l0IGEvc2NyaXB0cy9nZW5lcmF0ZV92aXN1YWxjX2ZpbGVzLnBsIGIvc2NyaXB0cy9nZW5lcmF0ZV92aXN1YWxjX2ZpbGVzLnBsCmluZGV4IGI1NjYzNzIuLmQ0OGIyYjIgMTAwNzU1Ci0tLSBhL3NjcmlwdHMvZ2VuZXJhdGVfdmlzdWFsY19maWxlcy5wbAorKysgYi9zY3JpcHRzL2dlbmVyYXRlX3Zpc3VhbGNfZmlsZXMucGwKQEAgLTIzLDIwICsyMywyMyBAQAogCiBteSAkcHJvZ3JhbXNfZGlyID0gJ3Byb2dyYW1zJzsKIG15ICRtYmVkdGxzX2hlYWRlcl9kaXIgPSAnaW5jbHVkZS9tYmVkdGxzJzsKK215ICRkcml2ZXJzX2J1aWx0aW5faGVhZGVyX2RpciA9ICd0Zi1wc2EtY3J5cHRvL2RyaXZlcnMvYnVpbHRpbi9pbmNsdWRlL21iZWR0bHMnOwogbXkgJHBzYV9oZWFkZXJfZGlyID0gJ3RmLXBzYS1jcnlwdG8vaW5jbHVkZS9wc2EnOwotbXkgJHNvdXJjZV9kaXIgPSAnbGlicmFyeSc7CitteSAkdGxzX3NvdXJjZV9kaXIgPSAnbGlicmFyeSc7CitteSAkY3J5cHRvX2NvcmVfc291cmNlX2RpciA9ICd0Zi1wc2EtY3J5cHRvL2NvcmUnOworbXkgJGNyeXB0b19zb3VyY2VfZGlyID0gJ3RmLXBzYS1jcnlwdG8vZHJpdmVycy9idWlsdGluL3NyYyc7CiBteSAkdGVzdF9zb3VyY2VfZGlyID0gJ3Rlc3RzL3NyYyc7CiBteSAkdGVzdF9oZWFkZXJfZGlyID0gJ3Rlc3RzL2luY2x1ZGUvdGVzdCc7CiBteSAkdGVzdF9kcml2ZXJzX2hlYWRlcl9kaXIgPSAndGVzdHMvaW5jbHVkZS90ZXN0L2RyaXZlcnMnOwogbXkgJHRlc3RfZHJpdmVyc19zb3VyY2VfZGlyID0gJ3Rlc3RzL3NyYy9kcml2ZXJzJzsKIAogbXkgQHRoaXJkcGFydHlfaGVhZGVyX2RpcnMgPSBxdygKLSAgICAzcmRwYXJ0eS9ldmVyZXN0L2luY2x1ZGUvZXZlcmVzdAorICAgIHRmLXBzYS1jcnlwdG8vZHJpdmVycy9ldmVyZXN0L2luY2x1ZGUvZXZlcmVzdAogKTsKIG15IEB0aGlyZHBhcnR5X3NvdXJjZV9kaXJzID0gcXcoCi0gICAgM3JkcGFydHkvZXZlcmVzdC9saWJyYXJ5Ci0gICAgM3JkcGFydHkvZXZlcmVzdC9saWJyYXJ5L2tyZW1saWIKLSAgICAzcmRwYXJ0eS9ldmVyZXN0L2xpYnJhcnkvbGVnYWN5CisgICAgdGYtcHNhLWNyeXB0by9kcml2ZXJzL2V2ZXJlc3QvbGlicmFyeQorICAgIHRmLXBzYS1jcnlwdG8vZHJpdmVycy9ldmVyZXN0L2xpYnJhcnkva3JlbWxpYgorICAgIHRmLXBzYS1jcnlwdG8vZHJpdmVycy9ldmVyZXN0L2xpYnJhcnkvbGVnYWN5CiApOwogCiAjIERpcmVjdG9yaWVzIHRvIGFkZCB0byB0aGUgaW5jbHVkZSBwYXRoLgpAQCAtNDUsMjUgKzQ4LDI4IEBACiBteSBAaW5jbHVkZV9kaXJlY3RvcmllcyA9IHF3KAogICAgIGluY2x1ZGUKICAgICB0Zi1wc2EtY3J5cHRvL2luY2x1ZGUKLSAgICAzcmRwYXJ0eS9ldmVyZXN0L2luY2x1ZGUvCi0gICAgM3JkcGFydHkvZXZlcmVzdC9pbmNsdWRlL2V2ZXJlc3QKLSAgICAzcmRwYXJ0eS9ldmVyZXN0L2luY2x1ZGUvZXZlcmVzdC92czIwMTMKLSAgICAzcmRwYXJ0eS9ldmVyZXN0L2luY2x1ZGUvZXZlcmVzdC9rcmVtbGliCisgICAgdGYtcHNhLWNyeXB0by9kcml2ZXJzL2J1aWx0aW4vaW5jbHVkZQorICAgIHRmLXBzYS1jcnlwdG8vZHJpdmVycy9ldmVyZXN0L2luY2x1ZGUvCisgICAgdGYtcHNhLWNyeXB0by9kcml2ZXJzL2V2ZXJlc3QvaW5jbHVkZS9ldmVyZXN0CisgICAgdGYtcHNhLWNyeXB0by9kcml2ZXJzL2V2ZXJlc3QvaW5jbHVkZS9ldmVyZXN0L3ZzMjAxMworICAgIHRmLXBzYS1jcnlwdG8vZHJpdmVycy9ldmVyZXN0L2luY2x1ZGUvZXZlcmVzdC9rcmVtbGliCiAgICAgdGVzdHMvaW5jbHVkZQogKTsKIG15ICRpbmNsdWRlX2RpcmVjdG9yaWVzID0gam9pbignOycsIG1hcCB7Ii4uLy4uLyRfIn0gQGluY2x1ZGVfZGlyZWN0b3JpZXMpOwogCi0jIERpcmVjdG9yaWVzIHRvIGFkZCB0byB0aGUgaW5jbHVkZSBwYXRoIHdoZW4gYnVpbGRpbmcgdGhlIGxpYnJhcnksIGJ1dCBub3QKKyMgRGlyZWN0b3JpZXMgdG8gYWRkIHRvIHRoZSBpbmNsdWRlIHBhdGggd2hlbiBidWlsZGluZyB0aGUgbGlicmFyaWVzLCBidXQgbm90CiAjIHdoZW4gYnVpbGRpbmcgdGVzdHMgb3IgYXBwbGljYXRpb25zLgogbXkgQGxpYnJhcnlfaW5jbHVkZV9kaXJlY3RvcmllcyA9IHF3KAogICAgIGxpYnJhcnkKKyAgICB0Zi1wc2EtY3J5cHRvL2NvcmUKKyAgICB0Zi1wc2EtY3J5cHRvL2RyaXZlcnMvYnVpbHRpbi9zcmMKICk7CiBteSAkbGlicmFyeV9pbmNsdWRlX2RpcmVjdG9yaWVzID0KICAgam9pbignOycsIG1hcCB7Ii4uLy4uLyRfIn0gKEBsaWJyYXJ5X2luY2x1ZGVfZGlyZWN0b3JpZXMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZV9kaXJlY3RvcmllcykpOwogCiBteSBAZXhjbHVkZWRfZmlsZXMgPSBxdygKLSAgICAzcmRwYXJ0eS9ldmVyZXN0L2xpYnJhcnkvSGFjbF9DdXJ2ZTI1NTE5LmMKKyAgICB0Zi1wc2EtY3J5cHRvL2RyaXZlcnMvZXZlcmVzdC9saWJyYXJ5L0hhY2xfQ3VydmUyNTUxOS5jCiApOwogbXkgJWV4Y2x1ZGVkX2ZpbGVzID0gKCk7CiBmb3JlYWNoIChAZXhjbHVkZWRfZmlsZXMpIHsgJGV4Y2x1ZGVkX2ZpbGVzeyRffSA9IDEgfQpAQCAtMTAyLDggKzEwOCwxMSBAQAogICAgIH0KICAgICByZXR1cm4gLWQgJHZzeF9kaXIKICAgICAgICAgJiYgLWQgJG1iZWR0bHNfaGVhZGVyX2RpcgorICAgICAgICAmJiAtZCAkZHJpdmVyc19idWlsdGluX2hlYWRlcl9kaXIKICAgICAgICAgJiYgLWQgJHBzYV9oZWFkZXJfZGlyCi0gICAgICAgICYmIC1kICRzb3VyY2VfZGlyCisgICAgICAgICYmIC1kICR0bHNfc291cmNlX2RpcgorICAgICAgICAmJiAtZCAkY3J5cHRvX2NvcmVfc291cmNlX2RpcgorICAgICAgICAmJiAtZCAkY3J5cHRvX3NvdXJjZV9kaXIKICAgICAgICAgJiYgLWQgJHRlc3Rfc291cmNlX2RpcgogICAgICAgICAmJiAtZCAkdGVzdF9kcml2ZXJzX3NvdXJjZV9kaXIKICAgICAgICAgJiYgLWQgJHRlc3RfaGVhZGVyX2RpcgpAQCAtMjU4LDE1ICsyNjcsMjAgQEAKICAgICBteSBAYXBwX2xpc3QgPSBnZXRfYXBwX2xpc3QoKTsKICAgICBteSBAaGVhZGVyX2RpcnMgPSAoCiAgICAgICAgICAgICAgICAgICAgICAgICRtYmVkdGxzX2hlYWRlcl9kaXIsCisgICAgICAgICAgICAgICAgICAgICAgICRkcml2ZXJzX2J1aWx0aW5faGVhZGVyX2RpciwKICAgICAgICAgICAgICAgICAgICAgICAgJHBzYV9oZWFkZXJfZGlyLAogICAgICAgICAgICAgICAgICAgICAgICAkdGVzdF9oZWFkZXJfZGlyLAogICAgICAgICAgICAgICAgICAgICAgICAkdGVzdF9kcml2ZXJzX2hlYWRlcl9kaXIsCi0gICAgICAgICAgICAgICAgICAgICAgICRzb3VyY2VfZGlyLAorICAgICAgICAgICAgICAgICAgICAgICAkdGxzX3NvdXJjZV9kaXIsCisgICAgICAgICAgICAgICAgICAgICAgICRjcnlwdG9fY29yZV9zb3VyY2VfZGlyLAorICAgICAgICAgICAgICAgICAgICAgICAkY3J5cHRvX3NvdXJjZV9kaXIsCiAgICAgICAgICAgICAgICAgICAgICAgIEB0aGlyZHBhcnR5X2hlYWRlcl9kaXJzLAogICAgICAgICAgICAgICAgICAgICAgICk7CiAgICAgbXkgQGhlYWRlcnMgPSAobWFwIHsgPCRfLyouaD4gfSBAaGVhZGVyX2RpcnMpOwogICAgIG15IEBzb3VyY2VfZGlycyA9ICgKLSAgICAgICAgICAgICAgICAgICAgICAgJHNvdXJjZV9kaXIsCisgICAgICAgICAgICAgICAgICAgICAgICR0bHNfc291cmNlX2RpciwKKyAgICAgICAgICAgICAgICAgICAgICAgJGNyeXB0b19jb3JlX3NvdXJjZV9kaXIsCisgICAgICAgICAgICAgICAgICAgICAgICRjcnlwdG9fc291cmNlX2RpciwKICAgICAgICAgICAgICAgICAgICAgICAgJHRlc3Rfc291cmNlX2RpciwKICAgICAgICAgICAgICAgICAgICAgICAgJHRlc3RfZHJpdmVyc19zb3VyY2VfZGlyLAogICAgICAgICAgICAgICAgICAgICAgICBAdGhpcmRwYXJ0eV9zb3VyY2VfZGlycywKZGlmZiAtLWdpdCBhL3NjcmlwdHMvbWFrZV9nZW5lcmF0ZWRfZmlsZXMuYmF0IGIvc2NyaXB0cy9tYWtlX2dlbmVyYXRlZF9maWxlcy5iYXQKaW5kZXggZjA0ZjZiNy4uYjAzYmNlMiAxMDA2NDQKLS0tIGEvc2NyaXB0cy9tYWtlX2dlbmVyYXRlZF9maWxlcy5iYXQKKysrIGIvc2NyaXB0cy9tYWtlX2dlbmVyYXRlZF9maWxlcy5iYXQKQEAgLTExLDYgKzExLDcgQEAKIHBlcmwgc2NyaXB0c1xnZW5lcmF0ZV92aXN1YWxjX2ZpbGVzLnBsIHx8IGV4aXQgL2IgMQ0KIHB5dGhvbiBzY3JpcHRzXGdlbmVyYXRlX3BzYV9jb25zdGFudHMucHkgfHwgZXhpdCAvYiAxDQogcHl0aG9uIGZyYW1ld29ya1xzY3JpcHRzXGdlbmVyYXRlX2JpZ251bV90ZXN0cy5weSB8fCBleGl0IC9iIDENCitweXRob24gZnJhbWV3b3JrXHNjcmlwdHNcZ2VuZXJhdGVfY29uZmlnX3Rlc3RzLnB5IHx8IGV4aXQgL2IgMQ0KIHB5dGhvbiBmcmFtZXdvcmtcc2NyaXB0c1xnZW5lcmF0ZV9lY3BfdGVzdHMucHkgfHwgZXhpdCAvYiAxDQogcHl0aG9uIGZyYW1ld29ya1xzY3JpcHRzXGdlbmVyYXRlX3BzYV90ZXN0cy5weSB8fCBleGl0IC9iIDENCiBweXRob24gZnJhbWV3b3JrXHNjcmlwdHNcZ2VuZXJhdGVfdGVzdF9rZXlzLnB5IC0tb3V0cHV0IHRlc3RzXHNyY1x0ZXN0X2tleXMuaCB8fCBleGl0IC9iIDENCmRpZmYgLS1naXQgYS90ZXN0cy8uZ2l0aWdub3JlIGIvdGVzdHMvLmdpdGlnbm9yZQppbmRleCA4MzhlYTY5Li44NzBmYTc5IDEwMDY0NAotLS0gYS90ZXN0cy8uZ2l0aWdub3JlCisrKyBiL3Rlc3RzLy5naXRpZ25vcmUKQEAgLTMsMjIgKzMsMjQgQEAKIAogKi5sb2cKIC90ZXN0X3N1aXRlKgotZGF0YV9maWxlcy9tcGlfd3JpdGUKLWRhdGFfZmlsZXMvaG1hY19kcmJnX3NlZWQKLWRhdGFfZmlsZXMvY3RyX2RyYmdfc2VlZAotZGF0YV9maWxlcy9lbnRyb3B5X3NlZWQKKy9kYXRhX2ZpbGVzL21waV93cml0ZQorL2RhdGFfZmlsZXMvaG1hY19kcmJnX3NlZWQKKy9kYXRhX2ZpbGVzL2N0cl9kcmJnX3NlZWQKKy9kYXRhX2ZpbGVzL2VudHJvcHlfc2VlZAogCi1pbmNsdWRlL2FsdC1leHRyYS9wc2EvY3J5cHRvX3BsYXRmb3JtX2FsdC5oCi1pbmNsdWRlL2FsdC1leHRyYS9wc2EvY3J5cHRvX3N0cnVjdF9hbHQuaAotaW5jbHVkZS90ZXN0L2luc3RydW1lbnRfcmVjb3JkX3N0YXR1cy5oCisvaW5jbHVkZS9hbHQtZXh0cmEvcHNhL2NyeXB0b19wbGF0Zm9ybV9hbHQuaAorL2luY2x1ZGUvYWx0LWV4dHJhL3BzYS9jcnlwdG9fc3RydWN0X2FsdC5oCisvaW5jbHVkZS90ZXN0L2luc3RydW1lbnRfcmVjb3JkX3N0YXR1cy5oCiAKLXNyYy9saWJtYmVkKgorL3NyYy9saWJtYmVkKgogCi1saWJ0ZXN0ZHJpdmVyMS8qCisvbGlidGVzdGRyaXZlcjEvKgogCiAjIyNTVEFSVF9HRU5FUkFURURfRklMRVMjIyMKICMgR2VuZXJhdGVkIHNvdXJjZSBmaWxlcwogL3N1aXRlcy8qLmdlbmVyYXRlZC5kYXRhCisvc3VpdGVzL3Rlc3Rfc3VpdGVfY29uZmlnLm1iZWR0bHNfYm9vbGVhbi5kYXRhCisvc3VpdGVzL3Rlc3Rfc3VpdGVfY29uZmlnLnBzYV9ib29sZWFuLmRhdGEKIC9zdWl0ZXMvdGVzdF9zdWl0ZV9wc2FfY3J5cHRvX3N0b3JhZ2VfZm9ybWF0LnZbMC05XSouZGF0YQogL3N1aXRlcy90ZXN0X3N1aXRlX3BzYV9jcnlwdG9fc3RvcmFnZV9mb3JtYXQuY3VycmVudC5kYXRhCiAvc3JjL3Rlc3Rfa2V5cy5oCmRpZmYgLS1naXQgYS90ZXN0cy9DTWFrZUxpc3RzLnR4dCBiL3Rlc3RzL0NNYWtlTGlzdHMudHh0CmluZGV4IDYyYmUxNGUuLmZkMTVhNWYgMTAwNjQ0Ci0tLSBhL3Rlc3RzL0NNYWtlTGlzdHMudHh0CisrKyBiL3Rlc3RzL0NNYWtlTGlzdHMudHh0CkBAIC0zMyw2ICszMywxOCBAQAogZXhlY3V0ZV9wcm9jZXNzKAogICAgIENPTU1BTkQKICAgICAgICAgJHtNQkVEVExTX1BZVEhPTl9FWEVDVVRBQkxFfQorICAgICAgICAke0NNQUtFX0NVUlJFTlRfU09VUkNFX0RJUn0vLi4vZnJhbWV3b3JrL3NjcmlwdHMvZ2VuZXJhdGVfY29uZmlnX3Rlc3RzLnB5CisgICAgICAgIC0tbGlzdC1mb3ItY21ha2UKKyAgICBXT1JLSU5HX0RJUkVDVE9SWQorICAgICAgICAke0NNQUtFX0NVUlJFTlRfU09VUkNFX0RJUn0vLi4KKyAgICBPVVRQVVRfVkFSSUFCTEUKKyAgICAgICAgYmFzZV9jb25maWdfZ2VuZXJhdGVkX2RhdGFfZmlsZXMpCitzdHJpbmcoUkVHRVggUkVQTEFDRSAiW147XSovIiAiIgorICAgICAgIGJhc2VfY29uZmlnX2dlbmVyYXRlZF9kYXRhX2ZpbGVzICIke2Jhc2VfY29uZmlnX2dlbmVyYXRlZF9kYXRhX2ZpbGVzfSIpCisKK2V4ZWN1dGVfcHJvY2VzcygKKyAgICBDT01NQU5ECisgICAgICAgICR7TUJFRFRMU19QWVRIT05fRVhFQ1VUQUJMRX0KICAgICAgICAgJHtDTUFLRV9DVVJSRU5UX1NPVVJDRV9ESVJ9Ly4uL2ZyYW1ld29yay9zY3JpcHRzL2dlbmVyYXRlX2VjcF90ZXN0cy5weQogICAgICAgICAtLWxpc3QtZm9yLWNtYWtlCiAgICAgV09SS0lOR19ESVJFQ1RPUlkKQEAgLTYxLDExICs3MywxNSBAQAogc3RyaW5nKFJFR0VYIFJFUExBQ0UgIihbXjtdKykiICJzdWl0ZXMvXFwxIgogICAgICAgIGFsbF9nZW5lcmF0ZWRfZGF0YV9maWxlcyAiJHtiYXNlX2dlbmVyYXRlZF9kYXRhX2ZpbGVzfSIpCiBzZXQoYmlnbnVtX2dlbmVyYXRlZF9kYXRhX2ZpbGVzICIiKQorc2V0KGNvbmZpZ19nZW5lcmF0ZWRfZGF0YV9maWxlcyAiIikKIHNldChlY3BfZ2VuZXJhdGVkX2RhdGFfZmlsZXMgIiIpCiBzZXQocHNhX2dlbmVyYXRlZF9kYXRhX2ZpbGVzICIiKQogZm9yZWFjaChmaWxlICR7YmFzZV9iaWdudW1fZ2VuZXJhdGVkX2RhdGFfZmlsZXN9KQogICAgIGxpc3QoQVBQRU5EIGJpZ251bV9nZW5lcmF0ZWRfZGF0YV9maWxlcyAke0NNQUtFX0NVUlJFTlRfQklOQVJZX0RJUn0vc3VpdGVzLyR7ZmlsZX0pCiBlbmRmb3JlYWNoKCkKK2ZvcmVhY2goZmlsZSAke2Jhc2VfY29uZmlnX2dlbmVyYXRlZF9kYXRhX2ZpbGVzfSkKKyAgICBsaXN0KEFQUEVORCBjb25maWdfZ2VuZXJhdGVkX2RhdGFfZmlsZXMgJHtDTUFLRV9DVVJSRU5UX0JJTkFSWV9ESVJ9L3N1aXRlcy8ke2ZpbGV9KQorZW5kZm9yZWFjaCgpCiBmb3JlYWNoKGZpbGUgJHtiYXNlX2VjcF9nZW5lcmF0ZWRfZGF0YV9maWxlc30pCiAgICAgbGlzdChBUFBFTkQgZWNwX2dlbmVyYXRlZF9kYXRhX2ZpbGVzICR7Q01BS0VfQ1VSUkVOVF9CSU5BUllfRElSfS9zdWl0ZXMvJHtmaWxlfSkKIGVuZGZvcmVhY2goKQpAQCAtOTQsNiArMTEwLDIxIEBACiAgICAgKQogICAgIGFkZF9jdXN0b21fY29tbWFuZCgKICAgICAgICAgT1VUUFVUCisgICAgICAgICAgICAke2NvbmZpZ19nZW5lcmF0ZWRfZGF0YV9maWxlc30KKyAgICAgICAgV09SS0lOR19ESVJFQ1RPUlkKKyAgICAgICAgICAgICR7Q01BS0VfQ1VSUkVOVF9TT1VSQ0VfRElSfS8uLgorICAgICAgICBDT01NQU5ECisgICAgICAgICAgICAke01CRURUTFNfUFlUSE9OX0VYRUNVVEFCTEV9CisgICAgICAgICAgICAke0NNQUtFX0NVUlJFTlRfU09VUkNFX0RJUn0vLi4vZnJhbWV3b3JrL3NjcmlwdHMvZ2VuZXJhdGVfY29uZmlnX3Rlc3RzLnB5CisgICAgICAgICAgICAtLWRpcmVjdG9yeSAke0NNQUtFX0NVUlJFTlRfQklOQVJZX0RJUn0vc3VpdGVzCisgICAgICAgIERFUEVORFMKKyAgICAgICAgICAgICR7Q01BS0VfQ1VSUkVOVF9TT1VSQ0VfRElSfS8uLi9mcmFtZXdvcmsvc2NyaXB0cy9nZW5lcmF0ZV9jb25maWdfdGVzdHMucHkKKyAgICAgICAgICAgICMgRG8gbm90IGRlY2xhcmUgdGhlIGNvbmZpZ3VyYXRpb24gZmlsZXMgYXMgZGVwZW5kZW5jaWVzOiB0aGV5CisgICAgICAgICAgICAjIGNoYW5nZSB0b28gb2Z0ZW4gaW4gd2F5cyB0aGF0IGRvbid0IGFmZmVjdCB0aGUgcmVzdWx0CisgICAgICAgICAgICAjICgodW4pY29tbWVudGluZyBzb21lIG9wdGlvbnMpLgorICAgICkKKyAgICBhZGRfY3VzdG9tX2NvbW1hbmQoCisgICAgICAgIE9VVFBVVAogICAgICAgICAgICAgJHtlY3BfZ2VuZXJhdGVkX2RhdGFfZmlsZXN9CiAgICAgICAgIFdPUktJTkdfRElSRUNUT1JZCiAgICAgICAgICAgICAke0NNQUtFX0NVUlJFTlRfU09VUkNFX0RJUn0vLi4KQEAgLTE0Miw2ICsxNzMsNyBAQAogIyBXaXRoIHRoaXMgbGluZSwgb25seSA0IHN1Yi1tYWtlZmlsZXMgaW5jbHVkZSB0aGUgYWJvdmUgY29tbWFuZCwgdGhhdCByZWR1Y2VzCiAjIHRoZSByaXNrIG9mIGEgcmFjZS4KIGFkZF9jdXN0b21fdGFyZ2V0KHRlc3Rfc3VpdGVfYmlnbnVtX2dlbmVyYXRlZF9kYXRhIERFUEVORFMgJHtiaWdudW1fZ2VuZXJhdGVkX2RhdGFfZmlsZXN9KQorYWRkX2N1c3RvbV90YXJnZXQodGVzdF9zdWl0ZV9jb25maWdfZ2VuZXJhdGVkX2RhdGEgREVQRU5EUyAke2NvbmZpZ19nZW5lcmF0ZWRfZGF0YV9maWxlc30pCiBhZGRfY3VzdG9tX3RhcmdldCh0ZXN0X3N1aXRlX2VjcF9nZW5lcmF0ZWRfZGF0YSBERVBFTkRTICR7ZWNwX2dlbmVyYXRlZF9kYXRhX2ZpbGVzfSkKIGFkZF9jdXN0b21fdGFyZ2V0KHRlc3Rfc3VpdGVfcHNhX2dlbmVyYXRlZF9kYXRhIERFUEVORFMgJHtwc2FfZ2VuZXJhdGVkX2RhdGFfZmlsZXN9KQogIyBJZiBTS0lQX1RFU1RfU1VJVEVTIGlzIG5vdCBkZWZpbmVkIHdpdGggLUQsIGdldCBpdCBmcm9tIHRoZSBlbnZpcm9ubWVudC4KQEAgLTE5OSw2ICsyMzEsMTAgQEAKICAgICAgICAgc2V0KGRhdGFfZmlsZQogICAgICAgICAgICAgJHtDTUFLRV9DVVJSRU5UX0JJTkFSWV9ESVJ9L3N1aXRlcy90ZXN0X3N1aXRlXyR7ZGF0YV9uYW1lfS5kYXRhKQogICAgICAgICBzZXQoZGVwZW5kZW5jeSB0ZXN0X3N1aXRlX2JpZ251bV9nZW5lcmF0ZWRfZGF0YSkKKyAgICBlbHNlaWYoIjske2NvbmZpZ19nZW5lcmF0ZWRfZGF0YV9uYW1lc307IiBNQVRDSEVTICI7JHtkYXRhX25hbWV9OyIpCisgICAgICAgIHNldChkYXRhX2ZpbGUKKyAgICAgICAgICAgICR7Q01BS0VfQ1VSUkVOVF9CSU5BUllfRElSfS9zdWl0ZXMvdGVzdF9zdWl0ZV8ke2RhdGFfbmFtZX0uZGF0YSkKKyAgICAgICAgc2V0KGRlcGVuZGVuY3kgdGVzdF9zdWl0ZV9iaWdudW1fZ2VuZXJhdGVkX2RhdGEpCiAgICAgZWxzZWlmKCI7JHtlY3BfZ2VuZXJhdGVkX2RhdGFfbmFtZXN9OyIgTUFUQ0hFUyAiOyR7ZGF0YV9uYW1lfTsiKQogICAgICAgICBzZXQoZGF0YV9maWxlCiAgICAgICAgICAgICAke0NNQUtFX0NVUlJFTlRfQklOQVJZX0RJUn0vc3VpdGVzL3Rlc3Rfc3VpdGVfJHtkYXRhX25hbWV9LmRhdGEpCkBAIC0yMTAsNyArMjQ2LDExIEBACiAgICAgZWxzZSgpCiAgICAgICAgIHNldChkYXRhX2ZpbGUKICAgICAgICAgICAgICR7Q01BS0VfQ1VSUkVOVF9TT1VSQ0VfRElSfS9zdWl0ZXMvdGVzdF9zdWl0ZV8ke2RhdGFfbmFtZX0uZGF0YSkKLSAgICAgICAgc2V0KGRlcGVuZGVuY3kgdGVzdF9zdWl0ZV9iaWdudW1fZ2VuZXJhdGVkX2RhdGEgdGVzdF9zdWl0ZV9lY3BfZ2VuZXJhdGVkX2RhdGEgdGVzdF9zdWl0ZV9wc2FfZ2VuZXJhdGVkX2RhdGEpCisgICAgICAgIHNldChkZXBlbmRlbmN5CisgICAgICAgICAgICB0ZXN0X3N1aXRlX2JpZ251bV9nZW5lcmF0ZWRfZGF0YQorICAgICAgICAgICAgdGVzdF9zdWl0ZV9jb25maWdfZ2VuZXJhdGVkX2RhdGEKKyAgICAgICAgICAgIHRlc3Rfc3VpdGVfZWNwX2dlbmVyYXRlZF9kYXRhCisgICAgICAgICAgICB0ZXN0X3N1aXRlX3BzYV9nZW5lcmF0ZWRfZGF0YSkKICAgICBlbmRpZigpCiAKICAgICBhZGRfY3VzdG9tX2NvbW1hbmQoCkBAIC0yNTEsNyArMjkxLDkgQEAKICAgICAjIHRoZW0gYXMgUFVCTElDLgogICAgIHRhcmdldF9pbmNsdWRlX2RpcmVjdG9yaWVzKHRlc3Rfc3VpdGVfJHtkYXRhX25hbWV9CiAgICAgICAgIFBSSVZBVEUgJHtDTUFLRV9DVVJSRU5UX1NPVVJDRV9ESVJ9L2luY2x1ZGUKLSAgICAgICAgUFJJVkFURSAke0NNQUtFX0NVUlJFTlRfU09VUkNFX0RJUn0vLi4vbGlicmFyeSkKKyAgICAgICAgUFJJVkFURSAke0NNQUtFX0NVUlJFTlRfU09VUkNFX0RJUn0vLi4vbGlicmFyeQorICAgICAgICBQUklWQVRFICR7Q01BS0VfQ1VSUkVOVF9TT1VSQ0VfRElSfS8uLi90Zi1wc2EtY3J5cHRvL2NvcmUKKyAgICAgICAgUFJJVkFURSAke0NNQUtFX0NVUlJFTlRfU09VUkNFX0RJUn0vLi4vdGYtcHNhLWNyeXB0by9kcml2ZXJzL2J1aWx0aW4vc3JjKQogICAgICMgUmVxdWVzdCBDMTEsIHdoaWNoIGlzIG5lZWRlZCBmb3IgbWVtb3J5IHBvaXNvbmluZyB0ZXN0cwogICAgIHNldF90YXJnZXRfcHJvcGVydGllcyh0ZXN0X3N1aXRlXyR7ZGF0YV9uYW1lfSBQUk9QRVJUSUVTIENfU1RBTkRBUkQgMTEpCiAKQEAgLTMwMCw3ICszNDIsNyBAQAogICAgIGxpbmtfdG9fc291cmNlKERlc2NyaXB0aW9ucy50eHQpCiAgICAgbGlua190b19zb3VyY2UoY29tcGF0LnNoKQogICAgIGxpbmtfdG9fc291cmNlKGNvbnRleHQtaW5mby5zaCkKLSAgICBsaW5rX3RvX3NvdXJjZShkYXRhX2ZpbGVzKQorICAgIGxpbmtfdG9fc291cmNlKC4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzKQogICAgIGxpbmtfdG9fc291cmNlKHNjcmlwdHMpCiAgICAgbGlua190b19zb3VyY2Uoc3NsLW9wdC5zaCkKICAgICBsaW5rX3RvX3NvdXJjZShvcHQtdGVzdGNhc2VzKQpkaWZmIC0tZ2l0IGEvdGVzdHMvTWFrZWZpbGUgYi90ZXN0cy9NYWtlZmlsZQppbmRleCBkMWQ1ZWQ5Li45NWNkNDYxIDEwMDY0NAotLS0gYS90ZXN0cy9NYWtlZmlsZQorKysgYi90ZXN0cy9NYWtlZmlsZQpAQCAtNCw4ICs0LDggQEAKICMgU2V0IHRoaXMgdG8gLXYgdG8gc2VlIHRoZSBkZXRhaWxzIG9mIGZhaWxpbmcgdGVzdCBjYXNlcwogVEVTVF9GTEFHUyA/PSAkKGlmICQoZmlsdGVyLW91dCAwIE9GRiBPZmYgb2ZmIE5PIE5vIG5vIEZBTFNFIEZhbHNlIGZhbHNlIE4gbiwkKENURVNUX09VVFBVVF9PTl9GQUlMVVJFKSksLXYsKQogCi0jIEFsc28gaW5jbHVkZSBsaWJyYXJ5IGhlYWRlcnMsIGZvciB0aGUgc2FrZSBvZiBpbnZhc2l2ZSB0ZXN0cy4KLUxPQ0FMX0NGTEFHUyArPSAtSS4uL2xpYnJhcnkKKyMgQWxzbyBpbmNsdWRlIHByaXZhdGUgaGVhZGVycywgZm9yIHRoZSBzYWtlIG9mIGludmFzaXZlIHRlc3RzLgorTE9DQUxfQ0ZMQUdTICs9IC1JLi4vbGlicmFyeSAtSS4uL3RmLXBzYS1jcnlwdG8vY29yZSAtSS4uL3RmLXBzYS1jcnlwdG8vZHJpdmVycy9idWlsdGluL3NyYwogCiAKICMgRW5hYmxlIGRlZmluaXRpb24gb2YgdmFyaW91cyBmdW5jdGlvbnMgdXNlZCB0aHJvdWdob3V0IHRoZSB0ZXN0c3VpdGUKQEAgLTE3LDcgKzE3LDYgQEAKIExPQ0FMX0NGTEFHUyArPSAtV2Vycm9yIC1EUkVDT1JEX1BTQV9TVEFUVVNfQ09WRVJBR0VfTE9HCiBlbmRpZgogCi0uUEhPTlk6IGdlbmVyYXRlZF9maWxlcwogR0VORVJBVEVEX0JJR05VTV9EQVRBX0ZJTEVTIDo9ICQocGF0c3Vic3QgdGVzdHMvJSwlLCQoc2hlbGwgXAogCSQoUFlUSE9OKSAuLi9mcmFtZXdvcmsvc2NyaXB0cy9nZW5lcmF0ZV9iaWdudW1fdGVzdHMucHkgLS1saXN0IHx8IFwKIAllY2hvIEZBSUxFRCBcCkBAIC0yNSw2ICsyNCwxNyBAQAogaWZlcSAoJChHRU5FUkFURURfQklHTlVNX0RBVEFfRklMRVMpLEZBSUxFRCkKICQoZXJyb3IgIiQoUFlUSE9OKSAuLi9mcmFtZXdvcmsvc2NyaXB0cy9nZW5lcmF0ZV9iaWdudW1fdGVzdHMucHkgLS1saXN0IiBmYWlsZWQpCiBlbmRpZgorR0VORVJBVEVEX0RBVEFfRklMRVMgKz0gJChHRU5FUkFURURfQklHTlVNX0RBVEFfRklMRVMpCisKK0dFTkVSQVRFRF9DT05GSUdfREFUQV9GSUxFUyA6PSAkKHBhdHN1YnN0IHRlc3RzLyUsJSwkKHNoZWxsIFwKKwkkKFBZVEhPTikgLi4vZnJhbWV3b3JrL3NjcmlwdHMvZ2VuZXJhdGVfY29uZmlnX3Rlc3RzLnB5IC0tbGlzdCB8fCBcCisJZWNobyBGQUlMRUQgXAorKSkKK2lmZXEgKCQoR0VORVJBVEVEX0NPTkZJR19EQVRBX0ZJTEVTKSxGQUlMRUQpCiskKGVycm9yICIkKFBZVEhPTikgLi4vZnJhbWV3b3JrL3NjcmlwdHMvZ2VuZXJhdGVfY29uZmlnX3Rlc3RzLnB5IC0tbGlzdCIgZmFpbGVkKQorZW5kaWYKK0dFTkVSQVRFRF9EQVRBX0ZJTEVTICs9ICQoR0VORVJBVEVEX0NPTkZJR19EQVRBX0ZJTEVTKQorCiBHRU5FUkFURURfRUNQX0RBVEFfRklMRVMgOj0gJChwYXRzdWJzdCB0ZXN0cy8lLCUsJChzaGVsbCBcCiAJJChQWVRIT04pIC4uL2ZyYW1ld29yay9zY3JpcHRzL2dlbmVyYXRlX2VjcF90ZXN0cy5weSAtLWxpc3QgfHwgXAogCWVjaG8gRkFJTEVEIFwKQEAgLTMyLDYgKzQyLDggQEAKIGlmZXEgKCQoR0VORVJBVEVEX0VDUF9EQVRBX0ZJTEVTKSxGQUlMRUQpCiAkKGVycm9yICIkKFBZVEhPTikgLi4vZnJhbWV3b3JrL3NjcmlwdHMvZ2VuZXJhdGVfZWNwX3Rlc3RzLnB5IC0tbGlzdCIgZmFpbGVkKQogZW5kaWYKK0dFTkVSQVRFRF9EQVRBX0ZJTEVTICs9ICQoR0VORVJBVEVEX0VDUF9EQVRBX0ZJTEVTKQorCiBHRU5FUkFURURfUFNBX0RBVEFfRklMRVMgOj0gJChwYXRzdWJzdCB0ZXN0cy8lLCUsJChzaGVsbCBcCiAJJChQWVRIT04pIC4uL2ZyYW1ld29yay9zY3JpcHRzL2dlbmVyYXRlX3BzYV90ZXN0cy5weSAtLWxpc3QgfHwgXAogCWVjaG8gRkFJTEVEIFwKQEAgLTM5LDggKzUxLDEzIEBACiBpZmVxICgkKEdFTkVSQVRFRF9QU0FfREFUQV9GSUxFUyksRkFJTEVEKQogJChlcnJvciAiJChQWVRIT04pIC4uL2ZyYW1ld29yay9zY3JpcHRzL2dlbmVyYXRlX3BzYV90ZXN0cy5weSAtLWxpc3QiIGZhaWxlZCkKIGVuZGlmCi1HRU5FUkFURURfRklMRVMgOj0gJChHRU5FUkFURURfUFNBX0RBVEFfRklMRVMpICQoR0VORVJBVEVEX0VDUF9EQVRBX0ZJTEVTKSAkKEdFTkVSQVRFRF9CSUdOVU1fREFUQV9GSUxFUykKLWdlbmVyYXRlZF9maWxlczogJChHRU5FUkFURURfRklMRVMpIHNyYy90ZXN0X2tleXMuaCBzcmMvdGVzdF9jZXJ0cy5oCitHRU5FUkFURURfREFUQV9GSUxFUyArPSAkKEdFTkVSQVRFRF9QU0FfREFUQV9GSUxFUykKKworR0VORVJBVEVEX0ZJTEVTID0gJChHRU5FUkFURURfREFUQV9GSUxFUykKK0dFTkVSQVRFRF9GSUxFUyArPSBzcmMvdGVzdF9rZXlzLmggc3JjL3Rlc3RfY2VydHMuaAorCisuUEhPTlk6IGdlbmVyYXRlZF9maWxlcworZ2VuZXJhdGVkX2ZpbGVzOiAkKEdFTkVSQVRFRF9GSUxFUykKIAogIyBnZW5lcmF0ZV9iaWdudW1fdGVzdHMucHkgYW5kIGdlbmVyYXRlX3BzYV90ZXN0cy5weSBzcGVuZCBtb3JlIHRpbWUgYW5hbHl6aW5nCiAjIGlucHV0cyB0aGFuIGdlbmVyYXRpbmcgb3V0cHV0cy4gSXRzIGlucHV0cyBhcmUgdGhlIHNhbWUgbm8gbWF0dGVyIHdoaWNoIGZpbGVzCkBAIC00OCw3ICs2NSw2IEBACiAjIEl0J3MgcmFyZSBub3QgdG8gd2FudCBhbGwgdGhlIG91dHB1dHMuIFNvIGFsd2F5cyBnZW5lcmF0ZSBhbGwgb2YgaXRzIG91dHB1dHMuCiAjIFVzZSBhbiBpbnRlcm1lZGlhdGUgcGhvbnkgZGVwZW5kZW5jeSBzbyB0aGF0IHBhcmFsbGVsIGJ1aWxkcyBkb24ndCBydW4KICMgYSBzZXBhcmF0ZSBpbnN0YW5jZSBvZiB0aGUgcmVjaXBlIGZvciBlYWNoIG91dHB1dCBmaWxlLgotLlNFQ09OREFSWTogZ2VuZXJhdGVkX2JpZ251bV90ZXN0X2RhdGEgZ2VuZXJhdGVkX2VjcF90ZXN0X2RhdGEgZ2VuZXJhdGVkX3BzYV90ZXN0X2RhdGEKICQoR0VORVJBVEVEX0JJR05VTV9EQVRBX0ZJTEVTKTogJChnZW5fZmlsZV9kZXApIGdlbmVyYXRlZF9iaWdudW1fdGVzdF9kYXRhCiBnZW5lcmF0ZWRfYmlnbnVtX3Rlc3RfZGF0YTogLi4vZnJhbWV3b3JrL3NjcmlwdHMvZ2VuZXJhdGVfYmlnbnVtX3Rlc3RzLnB5CiBnZW5lcmF0ZWRfYmlnbnVtX3Rlc3RfZGF0YTogLi4vZnJhbWV3b3JrL3NjcmlwdHMvbWJlZHRsc19mcmFtZXdvcmsvYmlnbnVtX2NvbW1vbi5weQpAQCAtNjAsNiArNzYsMjMgQEAKIGdlbmVyYXRlZF9iaWdudW1fdGVzdF9kYXRhOgogCWVjaG8gIiAgR2VuICAgJChHRU5FUkFURURfQklHTlVNX0RBVEFfRklMRVMpIgogCSQoUFlUSE9OKSAuLi9mcmFtZXdvcmsvc2NyaXB0cy9nZW5lcmF0ZV9iaWdudW1fdGVzdHMucHkKKy5TRUNPTkRBUlk6IGdlbmVyYXRlZF9iaWdudW1fdGVzdF9kYXRhCisKKyMgV2UgZGVsaWJlcmF0ZWx5IG9taXQgdGhlIGNvbmZpZ3VyYXRpb24gZmlsZXMgKG1iZWR0bHNfY29uZmlnLmgsCisjIGNyeXB0b19jb25maWcuaCkgZnJvbSB0aGUgZGVwZW5lbmN5IGxpc3QgYmVjYXVzZSBkdXJpbmcgZGV2ZWxvcG1lbnQKKyMgYW5kIG9uIHRoZSBDSSwgd2Ugb2Z0ZW4gZWRpdCB0aG9zZSBpbiBhIHdheSB0aGF0IGRvZXNuJ3QgY2hhbmdlIHRoZQorIyBvdXRwdXQsIHRvIGNvbW1lbnQgb3V0IGNlcnRhaW4gb3B0aW9ucywgb3IgZXZlbiB0byByZW1vdmUgY2VydGFpbgorIyBsaW5lcyB3aGljaCBkbyBhZmZlY3QgdGhlIG91dHB1dCBuZWdhdGl2ZWx5IChpdCB3aWxsIG1pc3MgdGhlCisjIGNvcnJlc3BvbmRpbmcgdGVzdCBjYXNlcykuCiskKEdFTkVSQVRFRF9DT05GSUdfREFUQV9GSUxFUyk6ICQoZ2VuX2ZpbGVfZGVwKSBnZW5lcmF0ZWRfY29uZmlnX3Rlc3RfZGF0YQorZ2VuZXJhdGVkX2NvbmZpZ190ZXN0X2RhdGE6IC4uL2ZyYW1ld29yay9zY3JpcHRzL2dlbmVyYXRlX2NvbmZpZ190ZXN0cy5weQorZ2VuZXJhdGVkX2NvbmZpZ190ZXN0X2RhdGE6IC4uL3NjcmlwdHMvY29uZmlnLnB5CitnZW5lcmF0ZWRfY29uZmlnX3Rlc3RfZGF0YTogLi4vZnJhbWV3b3JrL3NjcmlwdHMvbWJlZHRsc19mcmFtZXdvcmsvdGVzdF9jYXNlLnB5CitnZW5lcmF0ZWRfY29uZmlnX3Rlc3RfZGF0YTogLi4vZnJhbWV3b3JrL3NjcmlwdHMvbWJlZHRsc19mcmFtZXdvcmsvdGVzdF9kYXRhX2dlbmVyYXRpb24ucHkKK2dlbmVyYXRlZF9jb25maWdfdGVzdF9kYXRhOgorCWVjaG8gIiAgR2VuICAgJChHRU5FUkFURURfQ09ORklHX0RBVEFfRklMRVMpIgorCSQoUFlUSE9OKSAuLi9mcmFtZXdvcmsvc2NyaXB0cy9nZW5lcmF0ZV9jb25maWdfdGVzdHMucHkKKy5TRUNPTkRBUlk6IGdlbmVyYXRlZF9jb25maWdfdGVzdF9kYXRhCiAKICQoR0VORVJBVEVEX0VDUF9EQVRBX0ZJTEVTKTogJChnZW5fZmlsZV9kZXApIGdlbmVyYXRlZF9lY3BfdGVzdF9kYXRhCiBnZW5lcmF0ZWRfZWNwX3Rlc3RfZGF0YTogLi4vZnJhbWV3b3JrL3NjcmlwdHMvZ2VuZXJhdGVfZWNwX3Rlc3RzLnB5CkBAIC03MCw2ICsxMDMsNyBAQAogZ2VuZXJhdGVkX2VjcF90ZXN0X2RhdGE6CiAJZWNobyAiICBHZW4gICAkKEdFTkVSQVRFRF9FQ1BfREFUQV9GSUxFUykiCiAJJChQWVRIT04pIC4uL2ZyYW1ld29yay9zY3JpcHRzL2dlbmVyYXRlX2VjcF90ZXN0cy5weQorLlNFQ09OREFSWTogZ2VuZXJhdGVkX2VjcF90ZXN0X2RhdGEKIAogJChHRU5FUkFURURfUFNBX0RBVEFfRklMRVMpOiAkKGdlbl9maWxlX2RlcCkgZ2VuZXJhdGVkX3BzYV90ZXN0X2RhdGEKIGdlbmVyYXRlZF9wc2FfdGVzdF9kYXRhOiAuLi9mcmFtZXdvcmsvc2NyaXB0cy9nZW5lcmF0ZV9wc2FfdGVzdHMucHkKQEAgLTkyLDYgKzEyNiw3IEBACiBnZW5lcmF0ZWRfcHNhX3Rlc3RfZGF0YToKIAllY2hvICIgIEdlbiAgICQoR0VORVJBVEVEX1BTQV9EQVRBX0ZJTEVTKSAuLi4iCiAJJChQWVRIT04pIC4uL2ZyYW1ld29yay9zY3JpcHRzL2dlbmVyYXRlX3BzYV90ZXN0cy5weQorLlNFQ09OREFSWTogZ2VuZXJhdGVkX3BzYV90ZXN0X2RhdGEKIAogIyBBIHRlc3QgYXBwbGljYXRpb24gaXMgYnVpbHQgZm9yIGVhY2ggc3VpdGVzL3Rlc3Rfc3VpdGVfKi5kYXRhIGZpbGUuCiAjIEFwcGxpY2F0aW9uIG5hbWUgaXMgc2FtZSBhcyAuZGF0YSBmaWxlJ3MgYmFzZSBuYW1lIGFuZCBjYW4gYmUKQEAgLTk5LDcgKzEzNCw3IEBACiBEQVRBX0ZJTEVTIDo9ICQod2lsZGNhcmQgc3VpdGVzL3Rlc3Rfc3VpdGVfKi5kYXRhKQogIyBNYWtlIHN1cmUgdGhhdCBnZW5lcmF0ZWQgZGF0YSBmaWxlcyBhcmUgaW5jbHVkZWQgZXZlbiBpZiB0aGV5IGRvbid0CiAjIGV4aXN0IHlldCB3aGVuIHRoZSBtYWtlZmlsZSBpcyBwYXJzZWQuCi1EQVRBX0ZJTEVTICs9ICQoZmlsdGVyLW91dCAkKERBVEFfRklMRVMpLCQoR0VORVJBVEVEX0ZJTEVTKSkKK0RBVEFfRklMRVMgKz0gJChmaWx0ZXItb3V0ICQoREFUQV9GSUxFUyksJChHRU5FUkFURURfREFUQV9GSUxFUykpCiBBUFBTID0gJChiYXNlbmFtZSAkKHN1YnN0IHN1aXRlcy8sLCQoREFUQV9GSUxFUykpKQogCiAjIENvbnN0cnVjdCBleGVjdXRhYmxlIG5hbWUgYnkgYWRkaW5nIE9TIHNwZWNpZmljIHN1ZmZpeCAkKEVYRVhUKS4KQEAgLTE3Nyw2ICsyMTIsNyBAQAogCiBjbGVhbjoKIGlmbmRlZiBXSU5ET1dTCisJJChNQUtFKSAtQyBwc2EtY2xpZW50LXNlcnZlci9wc2FzaW0gY2xlYW4KIAlybSAtcmYgJChCSU5BUklFUykgKi5jICouZGF0YXgKIAlybSAtZiBzcmMvKi5vIHNyYy9kcml2ZXJzLyoubyBzcmMvdGVzdF9oZWxwZXJzLyoubyBzcmMvbGlibWJlZCogc3JjL3Rlc3Rfa2V5cy5oIHNyYy90ZXN0X2NlcnRzLmgKIAlybSAtZiBzcmMvdGVzdF9rZXlzLmggc3JjL3Rlc3RfY2VydHMuaApAQCAtMjA5LDYgKzI0NSw4IEBACiAJcGVybCAtcCAtZSAncy9eKCMgKihkZWZpbmV8aWZuZGVmKSArXHcrXylIXGIvJCR7MX1BTFRfSC8nICQ8ID4kQAogaW5jbHVkZS9hbHQtZXh0cmEvJV9hbHQuaDogLi4vdGYtcHNhLWNyeXB0by9pbmNsdWRlLyUuaAogCXBlcmwgLXAgLWUgJ3MvXigjICooZGVmaW5lfGlmbmRlZikgK1x3K18pSFxiLyQkezF9QUxUX0gvJyAkPCA+JEAKK2luY2x1ZGUvYWx0LWV4dHJhLyVfYWx0Lmg6IC4uL3RmLXBzYS1jcnlwdG8vZHJpdmVycy9idWlsdGluL2luY2x1ZGUvJS5oCisJcGVybCAtcCAtZSAncy9eKCMgKihkZWZpbmV8aWZuZGVmKSArXHcrXylIXGIvJCR7MX1BTFRfSC8nICQ8ID4kQAogCiAjIEdlbmVyYXRlIHRlc3QgbGlicmFyeQogCkBAIC0yMTcsMjQgKzI1NSwzNSBAQAogIyBsaWJyYXJ5LiBBZGQgYSBMSUJURVNURFJJVkVSMV8vbGlidGVzdGRyaXZlcjFfIHRvIG1iZWR0bHNfeHh4IGFuZCBwc2FfeHh4CiAjIHN5bWJvbHMuCiBkZWZpbmUgbGlidGVzdGRyaXZlcjFfcmV3cml0ZSA6PQotCXMhXihccyojXHMqaW5jbHVkZVxzKltcIjxdKW1iZWR0bHMvISQkezF9bGlidGVzdGRyaXZlcjEvaW5jbHVkZS9tYmVkdGxzLyE7IFwKKwlzIV4oXHMqI1xzKmluY2x1ZGVccypbXCI8XSltYmVkdGxzL2J1aWxkX2luZm8uaCEkJHsxfWxpYnRlc3Rkcml2ZXIxL2luY2x1ZGUvbWJlZHRscy9idWlsZF9pbmZvLmghOyBcCisJcyFeKFxzKiNccyppbmNsdWRlXHMqW1wiPF0pbWJlZHRscy9tYmVkdGxzX2NvbmZpZy5oISQkezF9bGlidGVzdGRyaXZlcjEvaW5jbHVkZS9tYmVkdGxzL21iZWR0bHNfY29uZmlnLmghOyBcCisJcyFeKFxzKiNccyppbmNsdWRlXHMqW1wiPF0pbWJlZHRscy9jb25maWdfYWRqdXN0X2xlZ2FjeV9jcnlwdG8uaCEkJHsxfWxpYnRlc3Rkcml2ZXIxL2luY2x1ZGUvbWJlZHRscy9jb25maWdfYWRqdXN0X2xlZ2FjeV9jcnlwdG8uaCE7IFwKKwlzIV4oXHMqI1xzKmluY2x1ZGVccypbXCI8XSltYmVkdGxzL2NvbmZpZ19hZGp1c3RfeDUwOS5oISQkezF9bGlidGVzdGRyaXZlcjEvaW5jbHVkZS9tYmVkdGxzL2NvbmZpZ19hZGp1c3RfeDUwOS5oITsgXAorCXMhXihccyojXHMqaW5jbHVkZVxzKltcIjxdKW1iZWR0bHMvY29uZmlnX2FkanVzdF9zc2wuaCEkJHsxfWxpYnRlc3Rkcml2ZXIxL2luY2x1ZGUvbWJlZHRscy9jb25maWdfYWRqdXN0X3NzbC5oITsgXAorCXMhXihccyojXHMqaW5jbHVkZVxzKltcIjxdKW1iZWR0bHMvY2hlY2tfY29uZmlnLmghJCR7MX1saWJ0ZXN0ZHJpdmVyMS9pbmNsdWRlL21iZWR0bHMvY2hlY2tfY29uZmlnLmghOyBcCisJcyFeKFxzKiNccyppbmNsdWRlXHMqW1wiPF0pbWJlZHRscy8hJCR7MX1saWJ0ZXN0ZHJpdmVyMS90Zi1wc2EtY3J5cHRvL2RyaXZlcnMvYnVpbHRpbi9pbmNsdWRlL21iZWR0bHMvITsgXAogCXMhXihccyojXHMqaW5jbHVkZVxzKltcIjxdKXBzYS8hJCR7MX1saWJ0ZXN0ZHJpdmVyMS90Zi1wc2EtY3J5cHRvL2luY2x1ZGUvcHNhLyE7IFwKIAluZXh0IGlmIC9eXHMqI1xzKmluY2x1ZGUvOyBcCiAJcy9cYig/PU1CRURUTFNffFBTQV8pL0xJQlRFU1REUklWRVIxXy9nOyBcCiAJcy9cYig/PW1iZWR0bHNffHBzYV8pL2xpYnRlc3Rkcml2ZXIxXy9nOwogZW5kZWYKIAotbGlidGVzdGRyaXZlcjEuYTogZXhwb3J0IE1CRURUTFNfUEFUSCA6PSAkKHBhdHN1YnN0IC4uLy4uLy8lLC8lLC4uLy4uLyQoTUJFRFRMU19QQVRIKSkKIGxpYnRlc3Rkcml2ZXIxLmE6Ci0JIyBDb3B5IHRoZSBsaWJyYXJ5IGFuZCBmYWtlIGEgM3JkcGFydHkgTWFrZWZpbGUgaW5jbHVkZS4KIAlybSAtUmYgLi9saWJ0ZXN0ZHJpdmVyMQogCW1rZGlyIC4vbGlidGVzdGRyaXZlcjEKKwlta2RpciAuL2xpYnRlc3Rkcml2ZXIxL3RmLXBzYS1jcnlwdG8KKwlta2RpciAuL2xpYnRlc3Rkcml2ZXIxL3RmLXBzYS1jcnlwdG8vZHJpdmVycworCW1rZGlyIC4vbGlidGVzdGRyaXZlcjEvdGYtcHNhLWNyeXB0by9kcml2ZXJzL2V2ZXJlc3QKKwlta2RpciAuL2xpYnRlc3Rkcml2ZXIxL3RmLXBzYS1jcnlwdG8vZHJpdmVycy9wMjU2LW0KKwl0b3VjaCAuL2xpYnRlc3Rkcml2ZXIxL3RmLXBzYS1jcnlwdG8vZHJpdmVycy9ldmVyZXN0L01ha2VmaWxlLmluYworCXRvdWNoIC4vbGlidGVzdGRyaXZlcjEvdGYtcHNhLWNyeXB0by9kcml2ZXJzL3AyNTYtbS9NYWtlZmlsZS5pbmMKKwljcCAtUmYgLi4vZnJhbWV3b3JrIC4vbGlidGVzdGRyaXZlcjEKIAljcCAtUmYgLi4vbGlicmFyeSAuL2xpYnRlc3Rkcml2ZXIxCiAJY3AgLVJmIC4uL2luY2x1ZGUgLi9saWJ0ZXN0ZHJpdmVyMQotCWNwIC1SZiAuLi90Zi1wc2EtY3J5cHRvIC4vbGlidGVzdGRyaXZlcjEKKwljcCAtUmYgLi4vdGYtcHNhLWNyeXB0by9jb3JlIC4vbGlidGVzdGRyaXZlcjEvdGYtcHNhLWNyeXB0bworCWNwIC1SZiAuLi90Zi1wc2EtY3J5cHRvL2luY2x1ZGUgLi9saWJ0ZXN0ZHJpdmVyMS90Zi1wc2EtY3J5cHRvCisJY3AgLVJmIC4uL3RmLXBzYS1jcnlwdG8vZHJpdmVycy9idWlsdGluIC4vbGlidGVzdGRyaXZlcjEvdGYtcHNhLWNyeXB0by9kcml2ZXJzCiAJY3AgLVJmIC4uL3NjcmlwdHMgLi9saWJ0ZXN0ZHJpdmVyMQotCW1rZGlyIC4vbGlidGVzdGRyaXZlcjEvM3JkcGFydHkKLQl0b3VjaCAuL2xpYnRlc3Rkcml2ZXIxLzNyZHBhcnR5L01ha2VmaWxlLmluYwogCiAJIyBTZXQgdGhlIHRlc3QgZHJpdmVyIGJhc2UgKG1pbmltYWwpIGNvbmZpZ3VyYXRpb24uCiAJY3AgLi9pbmNsdWRlL3Rlc3QvZHJpdmVycy9jb25maWdfdGVzdF9kcml2ZXIuaCAuL2xpYnRlc3Rkcml2ZXIxL2luY2x1ZGUvbWJlZHRscy9tYmVkdGxzX2NvbmZpZy5oCkBAIC0yNTQsNyArMzAzLDEwIEBACiAJIyB3aGVuIHRoaXMgdGVzdCBkcml2ZXIgbGlicmFyeSBpcyBsaW5rZWQgd2l0aCB0aGUgTWJlZCBUTFMgbGlicmFyeS4KIAlwZXJsIC1waSAtZSAnJChsaWJ0ZXN0ZHJpdmVyMV9yZXdyaXRlKScgLi9saWJ0ZXN0ZHJpdmVyMS9saWJyYXJ5LyouW2NoXQogCXBlcmwgLXBpIC1lICckKGxpYnRlc3Rkcml2ZXIxX3Jld3JpdGUpJyAuL2xpYnRlc3Rkcml2ZXIxL2luY2x1ZGUvKi8qLmgKKwlwZXJsIC1waSAtZSAnJChsaWJ0ZXN0ZHJpdmVyMV9yZXdyaXRlKScgLi9saWJ0ZXN0ZHJpdmVyMS90Zi1wc2EtY3J5cHRvL2NvcmUvKi5bY2hdCiAJcGVybCAtcGkgLWUgJyQobGlidGVzdGRyaXZlcjFfcmV3cml0ZSknIC4vbGlidGVzdGRyaXZlcjEvdGYtcHNhLWNyeXB0by9pbmNsdWRlLyovKi5oCisJcGVybCAtcGkgLWUgJyQobGlidGVzdGRyaXZlcjFfcmV3cml0ZSknIC4vbGlidGVzdGRyaXZlcjEvdGYtcHNhLWNyeXB0by9kcml2ZXJzL2J1aWx0aW4vaW5jbHVkZS8qLyouaAorCXBlcmwgLXBpIC1lICckKGxpYnRlc3Rkcml2ZXIxX3Jld3JpdGUpJyAuL2xpYnRlc3Rkcml2ZXIxL3RmLXBzYS1jcnlwdG8vZHJpdmVycy9idWlsdGluL3NyYy8qLltjaF0KIAogCSQoTUFLRSkgLUMgLi9saWJ0ZXN0ZHJpdmVyMS9saWJyYXJ5IENGTEFHUz0iLUkuLi8uLi8gJChDRkxBR1MpIiBMREZMQUdTPSIkKExERkxBR1MpIiBsaWJtYmVkY3J5cHRvLmEKIAljcCAuL2xpYnRlc3Rkcml2ZXIxL2xpYnJhcnkvbGlibWJlZGNyeXB0by5hIC4uL2xpYnJhcnkvbGlidGVzdGRyaXZlcjEuYQpkaWZmIC0tZ2l0IGEvdGVzdHMvY29tcGF0LnNoIGIvdGVzdHMvY29tcGF0LnNoCmluZGV4IDA3MzI1OGUuLjUyZjc1ZTAgMTAwNzU1Ci0tLSBhL3Rlc3RzL2NvbXBhdC5zaAorKysgYi90ZXN0cy9jb21wYXQuc2gKQEAgLTYxMyw2ICs2MTMsOCBAQAogCiBzZXR1cF9hcmd1bWVudHMoKQogeworICAgIERBVEFfRklMRVNfUEFUSD0iLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMiCisKICAgICBPX01PREU9IiIKICAgICBHX01PREU9IiIKICAgICBjYXNlICIkTU9ERSIgaW4KQEAgLTY1MSw3ICs2NTMsNyBAQAogICAgICMgZm9yY2UgaXQgb3Igbm90IGZvciBpbnRlcm1lZGlhdGUgdmVyc2lvbnMuCiAgICAgY2FzZSAkKCRPUEVOU1NMIHZlcnNpb24pIGluCiAgICAgICAgICJPcGVuU1NMIDEuMCIqKQotICAgICAgICAgICAgT19TRVJWRVJfQVJHUz0iJE9fU0VSVkVSX0FSR1MgLWRocGFyYW0gZGF0YV9maWxlcy9kaHBhcmFtcy5wZW0iCisgICAgICAgICAgICBPX1NFUlZFUl9BUkdTPSIkT19TRVJWRVJfQVJHUyAtZGhwYXJhbSAkREFUQV9GSUxFU19QQVRIL2RocGFyYW1zLnBlbSIKICAgICAgICAgICAgIDs7CiAgICAgZXNhYwogCkBAIC03MDIsMTMgKzcwNCwxMyBAQAogCiAgICAgaWYgWyAiWCRWRVJJRlkiID0gIlhZRVMiIF07CiAgICAgdGhlbgotICAgICAgICBNX1NFUlZFUl9BUkdTPSIkTV9TRVJWRVJfQVJHUyBjYV9maWxlPWRhdGFfZmlsZXMvdGVzdC1jYV9jYXQxMi5jcnQgYXV0aF9tb2RlPXJlcXVpcmVkIgotICAgICAgICBPX1NFUlZFUl9BUkdTPSIkT19TRVJWRVJfQVJHUyAtQ0FmaWxlIGRhdGFfZmlsZXMvdGVzdC1jYV9jYXQxMi5jcnQgLVZlcmlmeSAxMCIKLSAgICAgICAgR19TRVJWRVJfQVJHUz0iJEdfU0VSVkVSX0FSR1MgLS14NTA5Y2FmaWxlIGRhdGFfZmlsZXMvdGVzdC1jYV9jYXQxMi5jcnQgLS1yZXF1aXJlLWNsaWVudC1jZXJ0IgorICAgICAgICBNX1NFUlZFUl9BUkdTPSIkTV9TRVJWRVJfQVJHUyBjYV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvdGVzdC1jYV9jYXQxMi5jcnQgYXV0aF9tb2RlPXJlcXVpcmVkIgorICAgICAgICBPX1NFUlZFUl9BUkdTPSIkT19TRVJWRVJfQVJHUyAtQ0FmaWxlICREQVRBX0ZJTEVTX1BBVEgvdGVzdC1jYV9jYXQxMi5jcnQgLVZlcmlmeSAxMCIKKyAgICAgICAgR19TRVJWRVJfQVJHUz0iJEdfU0VSVkVSX0FSR1MgLS14NTA5Y2FmaWxlICREQVRBX0ZJTEVTX1BBVEgvdGVzdC1jYV9jYXQxMi5jcnQgLS1yZXF1aXJlLWNsaWVudC1jZXJ0IgogCi0gICAgICAgIE1fQ0xJRU5UX0FSR1M9IiRNX0NMSUVOVF9BUkdTIGNhX2ZpbGU9ZGF0YV9maWxlcy90ZXN0LWNhX2NhdDEyLmNydCBhdXRoX21vZGU9cmVxdWlyZWQiCi0gICAgICAgIE9fQ0xJRU5UX0FSR1M9IiRPX0NMSUVOVF9BUkdTIC1DQWZpbGUgZGF0YV9maWxlcy90ZXN0LWNhX2NhdDEyLmNydCAtdmVyaWZ5IDEwIgotICAgICAgICBHX0NMSUVOVF9BUkdTPSIkR19DTElFTlRfQVJHUyAtLXg1MDljYWZpbGUgZGF0YV9maWxlcy90ZXN0LWNhX2NhdDEyLmNydCIKKyAgICAgICAgTV9DTElFTlRfQVJHUz0iJE1fQ0xJRU5UX0FSR1MgY2FfZmlsZT0kREFUQV9GSUxFU19QQVRIL3Rlc3QtY2FfY2F0MTIuY3J0IGF1dGhfbW9kZT1yZXF1aXJlZCIKKyAgICAgICAgT19DTElFTlRfQVJHUz0iJE9fQ0xJRU5UX0FSR1MgLUNBZmlsZSAkREFUQV9GSUxFU19QQVRIL3Rlc3QtY2FfY2F0MTIuY3J0IC12ZXJpZnkgMTAiCisgICAgICAgIEdfQ0xJRU5UX0FSR1M9IiRHX0NMSUVOVF9BUkdTIC0teDUwOWNhZmlsZSAkREFUQV9GSUxFU19QQVRIL3Rlc3QtY2FfY2F0MTIuY3J0IgogICAgIGVsc2UKICAgICAgICAgIyBkb24ndCByZXF1ZXN0IGEgY2xpZW50IGNlcnQgYXQgYWxsCiAgICAgICAgIE1fU0VSVkVSX0FSR1M9IiRNX1NFUlZFUl9BUkdTIGNhX2ZpbGU9bm9uZSBhdXRoX21vZGU9bm9uZSIKQEAgLTcyMSwyOCArNzIzLDI4IEBACiAKICAgICBjYXNlICRUWVBFIGluCiAgICAgICAgICJFQ0RTQSIpCi0gICAgICAgICAgICBNX1NFUlZFUl9BUkdTPSIkTV9TRVJWRVJfQVJHUyBjcnRfZmlsZT1kYXRhX2ZpbGVzL3NlcnZlcjUuY3J0IGtleV9maWxlPWRhdGFfZmlsZXMvc2VydmVyNS5rZXkiCi0gICAgICAgICAgICBPX1NFUlZFUl9BUkdTPSIkT19TRVJWRVJfQVJHUyAtY2VydCBkYXRhX2ZpbGVzL3NlcnZlcjUuY3J0IC1rZXkgZGF0YV9maWxlcy9zZXJ2ZXI1LmtleSIKLSAgICAgICAgICAgIEdfU0VSVkVSX0FSR1M9IiRHX1NFUlZFUl9BUkdTIC0teDUwOWNlcnRmaWxlIGRhdGFfZmlsZXMvc2VydmVyNS5jcnQgLS14NTA5a2V5ZmlsZSBkYXRhX2ZpbGVzL3NlcnZlcjUua2V5IgorICAgICAgICAgICAgTV9TRVJWRVJfQVJHUz0iJE1fU0VSVkVSX0FSR1MgY3J0X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9zZXJ2ZXI1LmNydCBrZXlfZmlsZT0kREFUQV9GSUxFU19QQVRIL3NlcnZlcjUua2V5IgorICAgICAgICAgICAgT19TRVJWRVJfQVJHUz0iJE9fU0VSVkVSX0FSR1MgLWNlcnQgJERBVEFfRklMRVNfUEFUSC9zZXJ2ZXI1LmNydCAta2V5ICREQVRBX0ZJTEVTX1BBVEgvc2VydmVyNS5rZXkiCisgICAgICAgICAgICBHX1NFUlZFUl9BUkdTPSIkR19TRVJWRVJfQVJHUyAtLXg1MDljZXJ0ZmlsZSAkREFUQV9GSUxFU19QQVRIL3NlcnZlcjUuY3J0IC0teDUwOWtleWZpbGUgJERBVEFfRklMRVNfUEFUSC9zZXJ2ZXI1LmtleSIKIAogICAgICAgICAgICAgaWYgWyAiWCRWRVJJRlkiID0gIlhZRVMiIF07IHRoZW4KLSAgICAgICAgICAgICAgICBNX0NMSUVOVF9BUkdTPSIkTV9DTElFTlRfQVJHUyBjcnRfZmlsZT1kYXRhX2ZpbGVzL3NlcnZlcjYuY3J0IGtleV9maWxlPWRhdGFfZmlsZXMvc2VydmVyNi5rZXkiCi0gICAgICAgICAgICAgICAgT19DTElFTlRfQVJHUz0iJE9fQ0xJRU5UX0FSR1MgLWNlcnQgZGF0YV9maWxlcy9zZXJ2ZXI2LmNydCAta2V5IGRhdGFfZmlsZXMvc2VydmVyNi5rZXkiCi0gICAgICAgICAgICAgICAgR19DTElFTlRfQVJHUz0iJEdfQ0xJRU5UX0FSR1MgLS14NTA5Y2VydGZpbGUgZGF0YV9maWxlcy9zZXJ2ZXI2LmNydCAtLXg1MDlrZXlmaWxlIGRhdGFfZmlsZXMvc2VydmVyNi5rZXkiCisgICAgICAgICAgICAgICAgTV9DTElFTlRfQVJHUz0iJE1fQ0xJRU5UX0FSR1MgY3J0X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9zZXJ2ZXI2LmNydCBrZXlfZmlsZT0kREFUQV9GSUxFU19QQVRIL3NlcnZlcjYua2V5IgorICAgICAgICAgICAgICAgIE9fQ0xJRU5UX0FSR1M9IiRPX0NMSUVOVF9BUkdTIC1jZXJ0ICREQVRBX0ZJTEVTX1BBVEgvc2VydmVyNi5jcnQgLWtleSAkREFUQV9GSUxFU19QQVRIL3NlcnZlcjYua2V5IgorICAgICAgICAgICAgICAgIEdfQ0xJRU5UX0FSR1M9IiRHX0NMSUVOVF9BUkdTIC0teDUwOWNlcnRmaWxlICREQVRBX0ZJTEVTX1BBVEgvc2VydmVyNi5jcnQgLS14NTA5a2V5ZmlsZSAkREFUQV9GSUxFU19QQVRIL3NlcnZlcjYua2V5IgogICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAgIE1fQ0xJRU5UX0FSR1M9IiRNX0NMSUVOVF9BUkdTIGNydF9maWxlPW5vbmUga2V5X2ZpbGU9bm9uZSIKICAgICAgICAgICAgIGZpCiAgICAgICAgICAgICA7OwogCiAgICAgICAgICJSU0EiKQotICAgICAgICAgICAgTV9TRVJWRVJfQVJHUz0iJE1fU0VSVkVSX0FSR1MgY3J0X2ZpbGU9ZGF0YV9maWxlcy9zZXJ2ZXIyLXNoYTI1Ni5jcnQga2V5X2ZpbGU9ZGF0YV9maWxlcy9zZXJ2ZXIyLmtleSIKLSAgICAgICAgICAgIE9fU0VSVkVSX0FSR1M9IiRPX1NFUlZFUl9BUkdTIC1jZXJ0IGRhdGFfZmlsZXMvc2VydmVyMi1zaGEyNTYuY3J0IC1rZXkgZGF0YV9maWxlcy9zZXJ2ZXIyLmtleSIKLSAgICAgICAgICAgIEdfU0VSVkVSX0FSR1M9IiRHX1NFUlZFUl9BUkdTIC0teDUwOWNlcnRmaWxlIGRhdGFfZmlsZXMvc2VydmVyMi1zaGEyNTYuY3J0IC0teDUwOWtleWZpbGUgZGF0YV9maWxlcy9zZXJ2ZXIyLmtleSIKKyAgICAgICAgICAgIE1fU0VSVkVSX0FSR1M9IiRNX1NFUlZFUl9BUkdTIGNydF9maWxlPSREQVRBX0ZJTEVTX1BBVEgvc2VydmVyMi1zaGEyNTYuY3J0IGtleV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvc2VydmVyMi5rZXkiCisgICAgICAgICAgICBPX1NFUlZFUl9BUkdTPSIkT19TRVJWRVJfQVJHUyAtY2VydCAkREFUQV9GSUxFU19QQVRIL3NlcnZlcjItc2hhMjU2LmNydCAta2V5ICREQVRBX0ZJTEVTX1BBVEgvc2VydmVyMi5rZXkiCisgICAgICAgICAgICBHX1NFUlZFUl9BUkdTPSIkR19TRVJWRVJfQVJHUyAtLXg1MDljZXJ0ZmlsZSAkREFUQV9GSUxFU19QQVRIL3NlcnZlcjItc2hhMjU2LmNydCAtLXg1MDlrZXlmaWxlICREQVRBX0ZJTEVTX1BBVEgvc2VydmVyMi5rZXkiCiAKICAgICAgICAgICAgIGlmIFsgIlgkVkVSSUZZIiA9ICJYWUVTIiBdOyB0aGVuCi0gICAgICAgICAgICAgICAgTV9DTElFTlRfQVJHUz0iJE1fQ0xJRU5UX0FSR1MgY3J0X2ZpbGU9ZGF0YV9maWxlcy9jZXJ0X3NoYTI1Ni5jcnQga2V5X2ZpbGU9ZGF0YV9maWxlcy9zZXJ2ZXIxLmtleSIKLSAgICAgICAgICAgICAgICBPX0NMSUVOVF9BUkdTPSIkT19DTElFTlRfQVJHUyAtY2VydCBkYXRhX2ZpbGVzL2NlcnRfc2hhMjU2LmNydCAta2V5IGRhdGFfZmlsZXMvc2VydmVyMS5rZXkiCi0gICAgICAgICAgICAgICAgR19DTElFTlRfQVJHUz0iJEdfQ0xJRU5UX0FSR1MgLS14NTA5Y2VydGZpbGUgZGF0YV9maWxlcy9jZXJ0X3NoYTI1Ni5jcnQgLS14NTA5a2V5ZmlsZSBkYXRhX2ZpbGVzL3NlcnZlcjEua2V5IgorICAgICAgICAgICAgICAgIE1fQ0xJRU5UX0FSR1M9IiRNX0NMSUVOVF9BUkdTIGNydF9maWxlPSREQVRBX0ZJTEVTX1BBVEgvY2VydF9zaGEyNTYuY3J0IGtleV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvc2VydmVyMS5rZXkiCisgICAgICAgICAgICAgICAgT19DTElFTlRfQVJHUz0iJE9fQ0xJRU5UX0FSR1MgLWNlcnQgJERBVEFfRklMRVNfUEFUSC9jZXJ0X3NoYTI1Ni5jcnQgLWtleSAkREFUQV9GSUxFU19QQVRIL3NlcnZlcjEua2V5IgorICAgICAgICAgICAgICAgIEdfQ0xJRU5UX0FSR1M9IiRHX0NMSUVOVF9BUkdTIC0teDUwOWNlcnRmaWxlICREQVRBX0ZJTEVTX1BBVEgvY2VydF9zaGEyNTYuY3J0IC0teDUwOWtleWZpbGUgJERBVEFfRklMRVNfUEFUSC9zZXJ2ZXIxLmtleSIKICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgICBNX0NMSUVOVF9BUkdTPSIkTV9DTElFTlRfQVJHUyBjcnRfZmlsZT1ub25lIGtleV9maWxlPW5vbmUiCiAgICAgICAgICAgICBmaQpAQCAtNzUxLDkgKzc1Myw5IEBACiAgICAgICAgICJQU0siKQogICAgICAgICAgICAgIyBnaXZlIFJTQS1QU0stY2FwYWJsZSBzZXJ2ZXIgYSBSU0EgY2VydAogICAgICAgICAgICAgIyAoc2hvdWxkIGJlIGEgc2VwYXJhdGUgdHlwZSwgYnV0IGhhcmRlciB0byBjbG9zZSB3aXRoIG9wZW5zc2wpCi0gICAgICAgICAgICBNX1NFUlZFUl9BUkdTPSIkTV9TRVJWRVJfQVJHUyBwc2s9NjE2MjYzNjQ2NTY2Njc2ODY5NmE2YjZjNmQ2ZTZmNzAgY2FfZmlsZT1ub25lIGNydF9maWxlPWRhdGFfZmlsZXMvc2VydmVyMi1zaGEyNTYuY3J0IGtleV9maWxlPWRhdGFfZmlsZXMvc2VydmVyMi5rZXkiCisgICAgICAgICAgICBNX1NFUlZFUl9BUkdTPSIkTV9TRVJWRVJfQVJHUyBwc2s9NjE2MjYzNjQ2NTY2Njc2ODY5NmE2YjZjNmQ2ZTZmNzAgY2FfZmlsZT1ub25lIGNydF9maWxlPSREQVRBX0ZJTEVTX1BBVEgvc2VydmVyMi1zaGEyNTYuY3J0IGtleV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvc2VydmVyMi5rZXkiCiAgICAgICAgICAgICBPX1NFUlZFUl9BUkdTPSIkT19TRVJWRVJfQVJHUyAtcHNrIDYxNjI2MzY0NjU2NjY3Njg2OTZhNmI2YzZkNmU2ZjcwIC1ub2NlcnQiCi0gICAgICAgICAgICBHX1NFUlZFUl9BUkdTPSIkR19TRVJWRVJfQVJHUyAtLXg1MDljZXJ0ZmlsZSBkYXRhX2ZpbGVzL3NlcnZlcjItc2hhMjU2LmNydCAtLXg1MDlrZXlmaWxlIGRhdGFfZmlsZXMvc2VydmVyMi5rZXkgLS1wc2twYXNzd2QgZGF0YV9maWxlcy9wYXNzd2QucHNrIgorICAgICAgICAgICAgR19TRVJWRVJfQVJHUz0iJEdfU0VSVkVSX0FSR1MgLS14NTA5Y2VydGZpbGUgJERBVEFfRklMRVNfUEFUSC9zZXJ2ZXIyLXNoYTI1Ni5jcnQgLS14NTA5a2V5ZmlsZSAkREFUQV9GSUxFU19QQVRIL3NlcnZlcjIua2V5IC0tcHNrcGFzc3dkICREQVRBX0ZJTEVTX1BBVEgvcGFzc3dkLnBzayIKIAogICAgICAgICAgICAgTV9DTElFTlRfQVJHUz0iJE1fQ0xJRU5UX0FSR1MgcHNrPTYxNjI2MzY0NjU2NjY3Njg2OTZhNmI2YzZkNmU2ZjcwIGNydF9maWxlPW5vbmUga2V5X2ZpbGU9bm9uZSIKICAgICAgICAgICAgIE9fQ0xJRU5UX0FSR1M9IiRPX0NMSUVOVF9BUkdTIC1wc2sgNjE2MjYzNjQ2NTY2Njc2ODY5NmE2YjZjNmQ2ZTZmNzAiCmRpZmYgLS1naXQgYS90ZXN0cy9jb250ZXh0LWluZm8uc2ggYi90ZXN0cy9jb250ZXh0LWluZm8uc2gKaW5kZXggNTVlMzIxOS4uNmMwOGI4NiAxMDA3NTUKLS0tIGEvdGVzdHMvY29udGV4dC1pbmZvLnNoCisrKyBiL3Rlc3RzL2NvbnRleHQtaW5mby5zaApAQCAtMTksNyArMTksNyBAQAogVEhJU19TQ1JJUFRfTkFNRT0kKGJhc2VuYW1lICIkMCIpCiBQUk9HX1BBVEg9Ii4uL3Byb2dyYW1zL3NzbC9zc2xfY29udGV4dF9pbmZvIgogT1VUX0ZJTEU9InNzbF9jb250ZXh0X2luZm8ubG9nIgotSU5fRElSPSJkYXRhX2ZpbGVzL2Jhc2U2NCIKK0lOX0RJUj0iLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvYmFzZTY0IgogCiBVU0VfVkFMR1JJTkQ9MAogCkBAIC00MDEsNyArNDAxLDcgQEAKICAgICAgICAgIC11ICJGaW5pc2hlZC4gTm8gdmFsaWQgYmFzZTY0IGNvZGUgZm91bmQiCiAKIHJ1bl90ZXN0ICJOb3QgZW1wdHkgZmlsZSB3aXRob3V0IGJhc2U2NCBjb2RlIiBcCi0gICAgICAgICAiLi4vLi4vY29udGV4dC1pbmZvLnNoIiBcCisgICAgICAgICAiLi4vLi4vLi4vdGVzdHMvY29udGV4dC1pbmZvLnNoIiBcCiAgICAgICAgICAtbiAiRGVzZXJpYWxpemluZyIKIAogcnVuX3Rlc3QgIkJpbmFyeSBmaWxlIGluc3RlYWQgb2YgdGV4dCBmaWxlIiBcCmRpZmYgLS1naXQgYS90ZXN0cy9kYXRhX2ZpbGVzLy5naXRpZ25vcmUgYi90ZXN0cy9kYXRhX2ZpbGVzLy5naXRpZ25vcmUKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGQxNmMwNGMuLjAwMDAwMDAKLS0tIGEvdGVzdHMvZGF0YV9maWxlcy8uZ2l0aWdub3JlCisrKyAvZGV2L251bGwKQEAgLTEsMyArMCwwIEBACi1jbGktcnNhLmNzcgotc2VydmVyMi1yc2EuY3NyCi10ZXN0LWNhLmNzcgpkaWZmIC0tZ2l0IGEvdGVzdHMvZGF0YV9maWxlcy9NYWtlZmlsZSBiL3Rlc3RzL2RhdGFfZmlsZXMvTWFrZWZpbGUKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDZkYWUzMWQuLjAwMDAwMDAKLS0tIGEvdGVzdHMvZGF0YV9maWxlcy9NYWtlZmlsZQorKysgL2Rldi9udWxsCkBAIC0xLDIxNjcgKzAsMCBAQAotIyMgVGhpcyBmaWxlIGNvbnRhaW5zIGEgcmVjb3JkIG9mIGhvdyBzb21lIG9mIHRoZSB0ZXN0IGRhdGEgd2FzCi0jIyBnZW5lcmF0ZWQuIFRoZSBmaW5hbCBidWlsZCBwcm9kdWN0cyBhcmUgY29tbWl0dGVkIHRvIHRoZSByZXBvc2l0b3J5Ci0jIyBhcyB3ZWxsIHRvIG1ha2Ugc3VyZSB0aGF0IHRoZSB0ZXN0IGRhdGEgaXMgaWRlbnRpY2FsLiBZb3UgZG8gbm90Ci0jIyBuZWVkIHRvIHVzZSB0aGlzIG1ha2VmaWxlIHVubGVzcyB5b3UncmUgZXh0ZW5kaW5nIE1iZWQgVExTJ3MgdGVzdHMuCi0KLSMjIE1hbnkgZGF0YSBmaWxlcyB3ZXJlIGdlbmVyYXRlZCBwcmlvciB0byB0aGUgZXhpc3RlbmNlIG9mIHRoaXMKLSMjIG1ha2VmaWxlLCBzbyB0aGUgbWV0aG9kIG9mIHRoZWlyIGdlbmVyYXRpb24gd2FzIG5vdCByZWNvcmRlZC4KLQotIyMgTm90ZSB0aGF0IGluIGFkZGl0aW9uIHRvIGRlcGVuZGluZyBvbiB0aGUgdmVyc2lvbiBvZiB0aGUgZGF0YQotIyMgZ2VuZXJhdGlvbiB0b29sLCBtYW55IG9mIHRoZSBidWlsZCBvdXRwdXRzIGFyZSByYW5kb21pemVkLCBzbwotIyMgcnVubmluZyB0aGlzIG1ha2VmaWxlIHR3aWNlIHdvdWxkIG5vdCBwcm9kdWNlIHRoZSBzYW1lIHJlc3VsdHMuCi0KLSMjIFRvb2xzCi1PUEVOU1NMID89IG9wZW5zc2wKLUZBS0VUSU1FID89IGZha2V0aW1lCi0KLVRPUF9ESVIgPSAuLi8uLgotTUJFRFRMU19DRVJUX1dSSVRFID89ICQoVE9QX0RJUikvcHJvZ3JhbXMveDUwOS9jZXJ0X3dyaXRlCi1NQkVEVExTX0NFUlRfUkVRID89ICQoVE9QX0RJUikvcHJvZ3JhbXMveDUwOS9jZXJ0X3JlcQotCi0KLSMjIEJ1aWxkIHRoZSBnZW5lcmF0ZWQgdGVzdCBkYXRhLiBOb3RlIHRoYXQgc2luY2UgdGhlIGZpbmFsIG91dHB1dHMKLSMjIGFyZSBjb21taXR0ZWQgdG8gdGhlIHJlcG9zaXRvcnksIHRoaXMgdGFyZ2V0IHNob3VsZCBkbyBub3RoaW5nIG9uIGEKLSMjIGZyZXNoIGNoZWNrb3V0LiBGdXJ0aGVybW9yZSwgc2luY2UgdGhlIGdlbmVyYXRpb24gaXMgcmFuZG9taXplZCwKLSMjIHJlLXJ1bm5pbmcgdGhlIHNhbWUgdGFyZ2V0cyBtYXkgcmVzdWx0IGluIGRpZmZlcmluZyBmaWxlcy4gVGhlIGdvYWwKLSMjIG9mIHRoaXMgbWFrZWZpbGUgaXMgcHJpbWFyaWx5IHRvIHNlcnZlIGFzIGEgcmVjb3JkIG9mIGhvdyB0aGUKLSMjIHRhcmdldHMgd2VyZSBnZW5lcmF0ZWQgaW4gdGhlIGZpcnN0IHBsYWNlLgotZGVmYXVsdDogYWxsX2ZpbmFsCi0KLWFsbF9pbnRlcm1lZGlhdGUgOj0gIyB0ZW1wb3JhcnkgZmlsZXMKLWFsbF9maW5hbCA6PSAjIGZpbGVzIHVzZWQgYnkgdGVzdHMKLQotCi0KLSMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSMjIyMgR2VuZXJhdGUgY2VydGlmaWNhdGVzIGZyb20gZXhpc3Rpbmcga2V5cwotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotCi10ZXN0X2NhX2NydCA9IHRlc3QtY2EuY3J0Ci10ZXN0X2NhX2tleV9maWxlX3JzYSA9IHRlc3QtY2Eua2V5Ci10ZXN0X2NhX2tleV9maWxlX3JzYV91bmVuYyA9IHRlc3QtY2FfdW5lbmMua2V5Ci10ZXN0X2NhX3B3ZF9yc2EgPSBQb2xhclNTTFRlc3QKLXRlc3RfY2FfY29uZmlnX2ZpbGUgPSB0ZXN0LWNhLm9wZW5zc2xjb25mCi0KLSQodGVzdF9jYV9rZXlfZmlsZV9yc2EpOgotCSQoT1BFTlNTTCkgZ2VucnNhIC1hZXMtMTI4LWNiYyAtcGFzc291dCBwYXNzOiQodGVzdF9jYV9wd2RfcnNhKSAtb3V0ICRAIDIwNDgKLSQodGVzdF9jYV9rZXlfZmlsZV9yc2FfdW5lbmMpOiAkKHRlc3RfY2Ffa2V5X2ZpbGVfcnNhKQotCSQoT1BFTlNTTCkgcnNhIC1wYXNzaW4gcGFzczokKHRlc3RfY2FfcHdkX3JzYSkgLWluICQ8IC1vdXQgJEAKLWFsbF9maW5hbCArPSAkKHRlc3RfY2Ffa2V5X2ZpbGVfcnNhKSAkKHRlc3RfY2Ffa2V5X2ZpbGVfcnNhX3VuZW5jKQotCi10ZXN0LWNhLnJlcS5zaGEyNTY6ICQodGVzdF9jYV9rZXlfZmlsZV9yc2EpCi0JJChNQkVEVExTX0NFUlRfUkVRKSBvdXRwdXRfZmlsZT0kQCBmaWxlbmFtZT0kKHRlc3RfY2Ffa2V5X2ZpbGVfcnNhKSBwYXNzd29yZD0kKHRlc3RfY2FfcHdkX3JzYSkgc3ViamVjdF9uYW1lPSJDPU5MLE89UG9sYXJTU0wsQ049UG9sYXJTU0wgVGVzdCBDQSIgbWQ9U0hBMjU2Ci1hbGxfaW50ZXJtZWRpYXRlICs9IHRlc3QtY2EucmVxLnNoYTI1NgotCi1wYXJzZV9pbnB1dC90ZXN0LWNhLmNydCB0ZXN0LWNhLmNydDogJCh0ZXN0X2NhX2tleV9maWxlX3JzYSkgdGVzdC1jYS5yZXEuc2hhMjU2Ci0JJChNQkVEVExTX0NFUlRfV1JJVEUpIGlzX2NhPTEgc2VyaWFsPTMgcmVxdWVzdF9maWxlPXRlc3QtY2EucmVxLnNoYTI1NiBzZWxmc2lnbj0xIGlzc3Vlcl9uYW1lPSJDPU5MLE89UG9sYXJTU0wsQ049UG9sYXJTU0wgVGVzdCBDQSIgaXNzdWVyX2tleT0kKHRlc3RfY2Ffa2V5X2ZpbGVfcnNhKSBpc3N1ZXJfcHdkPSQodGVzdF9jYV9wd2RfcnNhKSBub3RfYmVmb3JlPTIwMTkwMjEwMTQ0NDAwIG5vdF9hZnRlcj0yMDI5MDIxMDE0NDQwMCBtZD1TSEExIHZlcnNpb249MyBvdXRwdXRfZmlsZT0kQAotYWxsX2ZpbmFsICs9IHRlc3QtY2EuY3J0Ci0KLXBhcnNlX2lucHV0L3Rlc3QtY2EuY3J0LmRlcjogcGFyc2VfaW5wdXQvdGVzdC1jYS5jcnQKLQkkKE9QRU5TU0wpIHg1MDkgLWluZm9ybSBQRU0gLWluICQ8IC1vdXRmb3JtIERFUiAtb3V0ICRACi0KLXRlc3QtY2Eua2V5LmRlcjogJCh0ZXN0X2NhX2tleV9maWxlX3JzYSkKLQkkKE9QRU5TU0wpIHBrZXkgLWluICQ8IC1vdXQgJEAgLWluZm9ybSBQRU0gLW91dGZvcm0gREVSIC1wYXNzaW4gInBhc3M6JCh0ZXN0X2NhX3B3ZF9yc2EpIgotYWxsX2ZpbmFsICs9IHRlc3QtY2Eua2V5LmRlcgotCi0jIFRoaXMgaXMgb25seSB1c2VkIGZvciBnZW5lcmF0aW5nIGNlcnRfZXhhbXBsZV9tdWx0aV9ub2NuLmNydAotdGVzdC1jYV9ub2NuLmNydDogJCh0ZXN0X2NhX2tleV9maWxlX3JzYSkKLQkkKE1CRURUTFNfQ0VSVF9XUklURSkgaXNfY2E9MSBzZXJpYWw9MyBzZWxmc2lnbj0xIFwKLQkJc3ViamVjdF9rZXk9JCh0ZXN0X2NhX2tleV9maWxlX3JzYSkgc3ViamVjdF9wd2Q9JCh0ZXN0X2NhX3B3ZF9yc2EpICBzdWJqZWN0X25hbWU9IkM9TkwiIFwKLQkJaXNzdWVyX2tleT0kKHRlc3RfY2Ffa2V5X2ZpbGVfcnNhKSBpc3N1ZXJfcHdkPSQodGVzdF9jYV9wd2RfcnNhKSBpc3N1ZXJfbmFtZT0iQz1OTCIgXAotCQlub3RfYmVmb3JlPTIwMTkwMjEwMTQ0NDAwIG5vdF9hZnRlcj0yMDI5MDIxMDE0NDQwMCBtZD1TSEExIHZlcnNpb249MyBvdXRwdXRfZmlsZT0kQAotYWxsX2ludGVybWVkaWF0ZSArPSB0ZXN0LWNhX25vY24uY3J0Ci0KLXRlc3QtY2Etc2hhMS5jcnQ6ICQodGVzdF9jYV9rZXlfZmlsZV9yc2EpIHRlc3QtY2EucmVxLnNoYTI1NgotCSQoTUJFRFRMU19DRVJUX1dSSVRFKSBpc19jYT0xIHNlcmlhbD0zIHJlcXVlc3RfZmlsZT10ZXN0LWNhLnJlcS5zaGEyNTYgc2VsZnNpZ249MSBpc3N1ZXJfbmFtZT0iQz1OTCxPPVBvbGFyU1NMLENOPVBvbGFyU1NMIFRlc3QgQ0EiIGlzc3Vlcl9rZXk9JCh0ZXN0X2NhX2tleV9maWxlX3JzYSkgaXNzdWVyX3B3ZD0kKHRlc3RfY2FfcHdkX3JzYSkgbm90X2JlZm9yZT0yMDE5MDIxMDE0NDQwMCBub3RfYWZ0ZXI9MjAyOTAyMTAxNDQ0MDAgbWQ9U0hBMSB2ZXJzaW9uPTMgb3V0cHV0X2ZpbGU9JEAKLWFsbF9maW5hbCArPSB0ZXN0LWNhLXNoYTEuY3J0Ci0KLXRlc3QtY2Etc2hhMS5jcnQuZGVyOiB0ZXN0LWNhLXNoYTEuY3J0Ci0JJChPUEVOU1NMKSB4NTA5IC1pbiAkPCAtb3V0ICRAIC1pbmZvcm0gUEVNIC1vdXRmb3JtIERFUgotYWxsX2ZpbmFsICs9IHRlc3QtY2Etc2hhMS5jcnQuZGVyCi0KLXRlc3QtY2Etc2hhMjU2LmNydDogJCh0ZXN0X2NhX2tleV9maWxlX3JzYSkgdGVzdC1jYS5yZXEuc2hhMjU2Ci0JJChNQkVEVExTX0NFUlRfV1JJVEUpIGlzX2NhPTEgc2VyaWFsPTMgcmVxdWVzdF9maWxlPXRlc3QtY2EucmVxLnNoYTI1NiBzZWxmc2lnbj0xIGlzc3Vlcl9uYW1lPSJDPU5MLE89UG9sYXJTU0wsQ049UG9sYXJTU0wgVGVzdCBDQSIgaXNzdWVyX2tleT0kKHRlc3RfY2Ffa2V5X2ZpbGVfcnNhKSBpc3N1ZXJfcHdkPSQodGVzdF9jYV9wd2RfcnNhKSBub3RfYmVmb3JlPTIwMTkwMjEwMTQ0NDAwIG5vdF9hZnRlcj0yMDI5MDIxMDE0NDQwMCBtZD1TSEEyNTYgdmVyc2lvbj0zIG91dHB1dF9maWxlPSRACi1hbGxfZmluYWwgKz0gdGVzdC1jYS1zaGEyNTYuY3J0Ci0KLXRlc3QtY2Etc2hhMjU2LmNydC5kZXI6IHRlc3QtY2Etc2hhMjU2LmNydAotCSQoT1BFTlNTTCkgeDUwOSAtaW4gJDwgLW91dCAkQCAtaW5mb3JtIFBFTSAtb3V0Zm9ybSBERVIKLWFsbF9maW5hbCArPSB0ZXN0LWNhLXNoYTI1Ni5jcnQuZGVyCi0KLXRlc3QtY2FfdXRmOC5jcnQ6ICQodGVzdF9jYV9rZXlfZmlsZV9yc2EpCi0JJChPUEVOU1NMKSByZXEgLXg1MDkgLW5ldyAtbm9kZXMgLWtleSAkKHRlc3RfY2Ffa2V5X2ZpbGVfcnNhKSAtcGFzc2luICJwYXNzOiQodGVzdF9jYV9wd2RfcnNhKSIgLXNldF9zZXJpYWwgMyAtY29uZmlnICQodGVzdF9jYV9jb25maWdfZmlsZSkgLXNoYTEgLWRheXMgMzY1MyAtdXRmOCAtc3ViaiAiL0M9TkwvTz1Qb2xhclNTTC9DTj1Qb2xhclNTTCBUZXN0IENBIiAtb3V0ICRACi1hbGxfZmluYWwgKz0gdGVzdC1jYV91dGY4LmNydAotCi10ZXN0LWNhX3ByaW50YWJsZS5jcnQ6ICQodGVzdF9jYV9rZXlfZmlsZV9yc2EpCi0JJChPUEVOU1NMKSByZXEgLXg1MDkgLW5ldyAtbm9kZXMgLWtleSAkKHRlc3RfY2Ffa2V5X2ZpbGVfcnNhKSAtcGFzc2luICJwYXNzOiQodGVzdF9jYV9wd2RfcnNhKSIgLXNldF9zZXJpYWwgMyAtY29uZmlnICQodGVzdF9jYV9jb25maWdfZmlsZSkgLXNoYTEgLWRheXMgMzY1MyAtc3ViaiAiL0M9TkwvTz1Qb2xhclNTTC9DTj1Qb2xhclNTTCBUZXN0IENBIiAtb3V0ICRACi1hbGxfZmluYWwgKz0gdGVzdC1jYV9wcmludGFibGUuY3J0Ci0KLXRlc3QtY2FfdXBwZXJjYXNlLmNydDogJCh0ZXN0X2NhX2tleV9maWxlX3JzYSkKLQkkKE9QRU5TU0wpIHJlcSAteDUwOSAtbmV3IC1ub2RlcyAta2V5ICQodGVzdF9jYV9rZXlfZmlsZV9yc2EpIC1wYXNzaW4gInBhc3M6JCh0ZXN0X2NhX3B3ZF9yc2EpIiAtc2V0X3NlcmlhbCAzIC1jb25maWcgJCh0ZXN0X2NhX2NvbmZpZ19maWxlKSAtc2hhMSAtZGF5cyAzNjUzIC1zdWJqICIvQz1OTC9PPVBvbGFyU1NML0NOPVBvbGFyU1NMIFRlc3QgQ0EiIC1vdXQgJEAKLWFsbF9maW5hbCArPSB0ZXN0LWNhX3VwcGVyY2FzZS5jcnQKLQotdGVzdF9jYV9rZXlfZmlsZV9yc2FfYWx0ID0gdGVzdC1jYS1hbHQua2V5Ci0KLWNlcnRfZXhhbXBsZV9tdWx0aS5jc3I6IHJzYV9wa2NzMV8xMDI0X2NsZWFyLnBlbQotCSQoT1BFTlNTTCkgcmVxIC1uZXcgLXN1YmogIi9DPU5ML089UG9sYXJTU0wvQ049d3d3LmV4YW1wbGUuY29tIiAtc2V0X3NlcmlhbCAxNyAtY29uZmlnICQodGVzdF9jYV9jb25maWdfZmlsZSkgLWV4dGVuc2lvbnMgZG5zX2FsdF9uYW1lcyAtZGF5cyAzNjUwIC1rZXkgcnNhX3BrY3MxXzEwMjRfY2xlYXIucGVtIC1vdXQgJEAKLQotcGFyc2VfaW5wdXQvY2VydF9leGFtcGxlX211bHRpLmNydCBjZXJ0X2V4YW1wbGVfbXVsdGkuY3J0OiBjZXJ0X2V4YW1wbGVfbXVsdGkuY3NyCi0JJChPUEVOU1NMKSB4NTA5IC1yZXEgLUNBICQodGVzdF9jYV9jcnQpIC1DQWtleSAkKHRlc3RfY2Ffa2V5X2ZpbGVfcnNhKSBcCi0JCS1leHRmaWxlICQodGVzdF9jYV9jb25maWdfZmlsZSkgLWV4dGVuc2lvbnMgZG5zX2FsdF9uYW1lcyBcCi0JCS1wYXNzaW4gInBhc3M6JCh0ZXN0X2NhX3B3ZF9yc2EpIiAtc2V0X3NlcmlhbCAxNyAtZGF5cyAzNjUzIC1zaGEyNTYgXAotCQktaW4gJDwgPiAkQAotCi1jZXJ0X2V4YW1wbGVfbXVsdGlfbm9jbi5jc3I6IHJzYV9wa2NzMV8xMDI0X2NsZWFyLnBlbQotCSQoTUJFRFRMU19DRVJUX1JFUSkgZmlsZW5hbWU9JDwgb3V0cHV0X2ZpbGU9JEAgc3ViamVjdF9uYW1lPSdDPU5MJwotYWxsX2ludGVybWVkaWF0ZSArPSBjZXJ0X2V4YW1wbGVfbXVsdGlfbm9jbi5jc3IKLQotcGFyc2VfaW5wdXQvY2VydF9leGFtcGxlX211bHRpX25vY24uY3J0IGNlcnRfZXhhbXBsZV9tdWx0aV9ub2NuLmNydDogY2VydF9leGFtcGxlX211bHRpX25vY24uY3NyIHRlc3QtY2Ffbm9jbi5jcnQKLQkkKE9QRU5TU0wpIHg1MDkgLXJlcSAtQ0EgdGVzdC1jYV9ub2NuLmNydCAtQ0FrZXkgJCh0ZXN0X2NhX2tleV9maWxlX3JzYSkgXAotCQktZXh0ZmlsZSAkKHRlc3RfY2FfY29uZmlnX2ZpbGUpIC1leHRlbnNpb25zIGV4dF9tdWx0aV9ub2NuIC1wYXNzaW4gInBhc3M6JCh0ZXN0X2NhX3B3ZF9yc2EpIiBcCi0JCS1zZXRfc2VyaWFsICAweGY3YzY3ZmY4ZTlhOTYzZjkgLWRheXMgMzY1MyAtc2hhMSAtaW4gJDwgPiAkQAotYWxsX2ZpbmFsICs9IGNlcnRfZXhhbXBsZV9tdWx0aV9ub2NuLmNydAotCi1wYXJzZV9pbnB1dC90ZXN0X2Nzcl92M19rZXlVc2FnZS5jc3IuZGVyOiByc2FfcGtjczFfMTAyNF9jbGVhci5wZW0KLQkkKE9QRU5TU0wpIHJlcSAtbmV3IC1zdWJqICcvQ049ZXRjZCcgLWNvbmZpZyAkKHRlc3RfY2FfY29uZmlnX2ZpbGUpIC1rZXkgcnNhX3BrY3MxXzEwMjRfY2xlYXIucGVtIC1vdXRmb3JtIERFUiAtb3V0ICRAIC1yZXFleHRzIGNzcl9leHRfdjNfa2V5VXNhZ2UKLXBhcnNlX2lucHV0L3Rlc3RfY3NyX3YzX3N1YmplY3RBbHROYW1lLmNzci5kZXI6IHJzYV9wa2NzMV8xMDI0X2NsZWFyLnBlbQotCSQoT1BFTlNTTCkgcmVxIC1uZXcgLXN1YmogJy9DTj1ldGNkJyAtY29uZmlnICQodGVzdF9jYV9jb25maWdfZmlsZSkgLWtleSByc2FfcGtjczFfMTAyNF9jbGVhci5wZW0gLW91dGZvcm0gREVSIC1vdXQgJEAgLXJlcWV4dHMgY3NyX2V4dF92M19zdWJqZWN0QWx0TmFtZQotcGFyc2VfaW5wdXQvdGVzdF9jc3JfdjNfbnNDZXJ0VHlwZS5jc3IuZGVyOiByc2FfcGtjczFfMTAyNF9jbGVhci5wZW0KLQkkKE9QRU5TU0wpIHJlcSAtbmV3IC1zdWJqICcvQ049ZXRjZCcgLWNvbmZpZyAkKHRlc3RfY2FfY29uZmlnX2ZpbGUpIC1rZXkgcnNhX3BrY3MxXzEwMjRfY2xlYXIucGVtIC1vdXRmb3JtIERFUiAtb3V0ICRAIC1yZXFleHRzIGNzcl9leHRfdjNfbnNDZXJ0VHlwZQotcGFyc2VfaW5wdXQvdGVzdF9jc3JfdjNfYWxsLmNzci5kZXI6IHJzYV9wa2NzMV8xMDI0X2NsZWFyLnBlbQotCSQoT1BFTlNTTCkgcmVxIC1uZXcgLXN1YmogJy9DTj1ldGNkJyAtY29uZmlnICQodGVzdF9jYV9jb25maWdfZmlsZSkgLWtleSByc2FfcGtjczFfMTAyNF9jbGVhci5wZW0gLW91dGZvcm0gREVSIC1vdXQgJEAgLXJlcWV4dHMgY3NyX2V4dF92M19hbGwKLXBhcnNlX2lucHV0L3Rlc3RfY3NyX3YzX2FsbF9tYWxmb3JtZWRfZXh0ZW5zaW9uc19zZXF1ZW5jZV90YWcuY3NyLmRlcjogcGFyc2VfaW5wdXQvdGVzdF9jc3JfdjNfYWxsLmNzci5kZXIKLQkoaGV4ZHVtcCAtdmUgJzEvMSAiJS4yWCInICQ8IHwgc2VkICJzLzMwMEIwNjAzNTUxRDBGMDQwNDAzLzIwMEIwNjAzNTUxRDBGMDQwNDAzLyIgfCB4eGQgLXIgLXAgKSA+ICRACi1wYXJzZV9pbnB1dC90ZXN0X2Nzcl92M19hbGxfbWFsZm9ybWVkX2V4dGVuc2lvbl9pZF90YWcuY3NyLmRlcjogcGFyc2VfaW5wdXQvdGVzdF9jc3JfdjNfYWxsLmNzci5kZXIKLQkoaGV4ZHVtcCAtdmUgJzEvMSAiJS4yWCInICQ8IHwgc2VkICJzLzA2MDM1NTFEMEYwNDA0MDMwMjAxLzA3MDM1NTFEMEYwNDA0MDMwMjAxLyIgfCB4eGQgLXIgLXAgKSA+ICRACi1wYXJzZV9pbnB1dC90ZXN0X2Nzcl92M19hbGxfbWFsZm9ybWVkX2V4dGVuc2lvbl9kYXRhX3RhZy5jc3IuZGVyOiBwYXJzZV9pbnB1dC90ZXN0X2Nzcl92M19hbGwuY3NyLmRlcgotCShoZXhkdW1wIC12ZSAnMS8xICIlLjJYIicgJDwgfCBzZWQgInMvMDQwNDAzMDIwMTAyMzAyRjA2MDMvMDUwNDAzMDIwMTAyMzAyRjA2MDMvIiB8IHh4ZCAtciAtcCApID4gJEAKLXBhcnNlX2lucHV0L3Rlc3RfY3NyX3YzX2FsbF9tYWxmb3JtZWRfZXh0ZW5zaW9uX2RhdGFfbGVuMS5jc3IuZGVyOiBwYXJzZV9pbnB1dC90ZXN0X2Nzcl92M19hbGwuY3NyLmRlcgotCShoZXhkdW1wIC12ZSAnMS8xICIlLjJYIicgJDwgfCBzZWQgInMvMDQwNDAzMDIwMTAyMzAyRjA2MDMvMDQwNTAzMDIwMTAyMzAyRjA2MDMvIiB8IHh4ZCAtciAtcCApID4gJEAKLXBhcnNlX2lucHV0L3Rlc3RfY3NyX3YzX2FsbF9tYWxmb3JtZWRfZXh0ZW5zaW9uX2RhdGFfbGVuMi5jc3IuZGVyOiBwYXJzZV9pbnB1dC90ZXN0X2Nzcl92M19hbGwuY3NyLmRlcgotCShoZXhkdW1wIC12ZSAnMS8xICIlLjJYIicgJDwgfCBzZWQgInMvMDQwNDAzMDIwMTAyMzAyRjA2MDMvMDQwMzAzMDIwMTAyMzAyRjA2MDMvIiB8IHh4ZCAtciAtcCApID4gJEAKLXBhcnNlX2lucHV0L3Rlc3RfY3NyX3YzX2FsbF9tYWxmb3JtZWRfZXh0ZW5zaW9uX2tleV91c2FnZV9iaXRzdHJlYW1fdGFnLmNzci5kZXI6IHBhcnNlX2lucHV0L3Rlc3RfY3NyX3YzX2FsbC5jc3IuZGVyCi0JKGhleGR1bXAgLXZlICcxLzEgIiUuMlgiJyAkPCB8IHNlZCAicy8wMzAyMDEwMjMwMkYwNjAzNTUxRC8wNDAyMDEwMjMwMkYwNjAzNTUxRC8iIHwgeHhkIC1yIC1wICkgPiAkQAotcGFyc2VfaW5wdXQvdGVzdF9jc3JfdjNfYWxsX21hbGZvcm1lZF9leHRlbnNpb25fc3ViamVjdF9hbHRfbmFtZV9zZXF1ZW5jZV90YWcuY3NyLmRlcjogcGFyc2VfaW5wdXQvdGVzdF9jc3JfdjNfYWxsLmNzci5kZXIKLQkoaGV4ZHVtcCAtdmUgJzEvMSAiJS4yWCInICQ8IHwgc2VkICJzLzMwMjZBMDI0MDYwODJCMDYwMTA1LzQwMjZBMDI0MDYwODJCMDYwMTA1LyIgfCB4eGQgLXIgLXAgKSA+ICRACi1wYXJzZV9pbnB1dC90ZXN0X2Nzcl92M19hbGxfbWFsZm9ybWVkX2V4dGVuc2lvbl9uc19jZXJ0X2JpdHN0cmVhbV90YWcuY3NyLmRlcjogcGFyc2VfaW5wdXQvdGVzdF9jc3JfdjNfYWxsLmNzci5kZXIKLQkoaGV4ZHVtcCAtdmUgJzEvMSAiJS4yWCInICQ8IHwgc2VkICJzLzAzMDIwNzgwMzAwRDA2MDkyQTg2LzA0MDIwNzgwMzAwRDA2MDkyQTg2LyIgfCB4eGQgLXIgLXAgKSA+ICRACi1wYXJzZV9pbnB1dC90ZXN0X2Nzcl92M19hbGxfbWFsZm9ybWVkX2R1cGxpY2F0ZWRfZXh0ZW5zaW9uLmNzci5kZXI6IHBhcnNlX2lucHV0L3Rlc3RfY3NyX3YzX2FsbC5jc3IuZGVyCi0JKGhleGR1bXAgLXZlICcxLzEgIiUuMlgiJyAkPCB8IHNlZCAicy81NTFEMTEvNTUxRDBGLyIgfCB4eGQgLXIgLXAgKSA+ICRACi1wYXJzZV9pbnB1dC90ZXN0X2Nzcl92M19hbGxfbWFsZm9ybWVkX2V4dGVuc2lvbl90eXBlX29pZC5jc3IuZGVyOiBwYXJzZV9pbnB1dC90ZXN0X2Nzcl92M19hbGwuY3NyLmRlcgotCShoZXhkdW1wIC12ZSAnMS8xICIlLjJYIicgJDwgfCBzZWQgInMvNTUxRDExLzU1MURGRi8iIHwgeHhkIC1yIC1wICkgPiAkQAotcGFyc2VfaW5wdXQvdGVzdF9jc3JfdjNfYWxsX21hbGZvcm1lZF9hdHRyaWJ1dGVzX3NlcXVlbmNlX3RhZy5jc3IuZGVyOiBwYXJzZV9pbnB1dC90ZXN0X2Nzcl92M19hbGwuY3NyLmRlcgotCShoZXhkdW1wIC12ZSAnMS8xICIlLjJYIicgJDwgfCBzZWQgInMvMzA2MDA2MDkyQTg2NDg4NkY3MEQvNDA2MDA2MDkyQTg2NDg4NkY3MEQvIiB8IHh4ZCAtciAtcCApID4gJEAKLXBhcnNlX2lucHV0L3Rlc3RfY3NyX3YzX2FsbF9tYWxmb3JtZWRfYXR0cmlidXRlc19pZF90YWcuY3NyLmRlcjogcGFyc2VfaW5wdXQvdGVzdF9jc3JfdjNfYWxsLmNzci5kZXIKLQkoaGV4ZHVtcCAtdmUgJzEvMSAiJS4yWCInICQ8IHwgc2VkICJzLzA2MDkyQTg2NDg4NkY3MEQwMTA5LzA3MDkyQTg2NDg4NkY3MEQwMTA5LyIgfCB4eGQgLXIgLXAgKSA+ICRACi1wYXJzZV9pbnB1dC90ZXN0X2Nzcl92M19hbGxfbWFsZm9ybWVkX2F0dHJpYnV0ZXNfZXh0ZW5zaW9uX3JlcXVlc3QuY3NyLmRlcjogcGFyc2VfaW5wdXQvdGVzdF9jc3JfdjNfYWxsLmNzci5kZXIKLQkoaGV4ZHVtcCAtdmUgJzEvMSAiJS4yWCInICQ8IHwgc2VkICJzLzJBODY0ODg2RjcwRDAxMDkwRS8yQTg2NDg4NkY3MEQwMTA5MEYvIiB8IHh4ZCAtciAtcCApID4gJEAKLXBhcnNlX2lucHV0L3Rlc3RfY3NyX3YzX2FsbF9tYWxmb3JtZWRfYXR0cmlidXRlc19leHRlbnNpb25fcmVxdWVzdF9zZXRfdGFnLmNzci5kZXI6IHBhcnNlX2lucHV0L3Rlc3RfY3NyX3YzX2FsbC5jc3IuZGVyCi0JKGhleGR1bXAgLXZlICcxLzEgIiUuMlgiJyAkPCB8IHNlZCAicy8zMTUzMzA1MTMwMEIwNjAzNTUxRC8zMjUzMzA1MTMwMEIwNjAzNTUxRC8iIHwgeHhkIC1yIC1wICkgPiAkQAotcGFyc2VfaW5wdXQvdGVzdF9jc3JfdjNfYWxsX21hbGZvcm1lZF9hdHRyaWJ1dGVzX2V4dGVuc2lvbl9yZXF1ZXN0X3NlcXVlbmNlX3RhZy5jc3IuZGVyOiBwYXJzZV9pbnB1dC90ZXN0X2Nzcl92M19hbGwuY3NyLmRlcgotCShoZXhkdW1wIC12ZSAnMS8xICIlLjJYIicgJDwgfCBzZWQgInMvMzA1MTMwMEIwNjAzNTUxRDBGMDQvMzE1MTMwMEIwNjAzNTUxRDBGMDQvIiB8IHh4ZCAtciAtcCApID4gJEAKLXBhcnNlX2lucHV0L3Rlc3RfY3NyX3YzX2FsbF9tYWxmb3JtZWRfYXR0cmlidXRlc19sZW4xLmNzci5kZXI6IHBhcnNlX2lucHV0L3Rlc3RfY3NyX3YzX2FsbC5jc3IuZGVyCi0JKGhleGR1bXAgLXZlICcxLzEgIiUuMlgiJyAkPCB8IHNlZCAicy8zMDYwMDYwOTJBODY0ODg2RjcwRC8zMDYxMDYwOTJBODY0ODg2RjcwRC8iIHwgeHhkIC1yIC1wICkgPiAkQAotcGFyc2VfaW5wdXQvdGVzdF9jc3JfdjNfYWxsX21hbGZvcm1lZF9hdHRyaWJ1dGVzX2xlbjIuY3NyLmRlcjogcGFyc2VfaW5wdXQvdGVzdF9jc3JfdjNfYWxsLmNzci5kZXIKLQkoaGV4ZHVtcCAtdmUgJzEvMSAiJS4yWCInICQ8IHwgc2VkICJzLzMwNjAwNjA5MkE4NjQ4ODZGNzBELzMwNTkwNjA5MkE4NjQ4ODZGNzBELyIgfCB4eGQgLXIgLXAgKSA+ICRACi1wYXJzZV9pbnB1dC90ZXN0X2Nzcl92M19hbGxfbWFsZm9ybWVkX2F0dHJpYnV0ZXNfZXh0ZW5zaW9uX3JlcXVlc3Rfc2VxdWVuY2VfbGVuMS5jc3IuZGVyOiBwYXJzZV9pbnB1dC90ZXN0X2Nzcl92M19hbGwuY3NyLmRlcgotCShoZXhkdW1wIC12ZSAnMS8xICIlLjJYIicgJDwgfCBzZWQgInMvMzA1MTMwMEIwNjAzNTUxRDBGMDQvMzA1MjMwMEIwNjAzNTUxRDBGMDQvIiB8IHh4ZCAtciAtcCApID4gJEAKLXBhcnNlX2lucHV0L3Rlc3RfY3NyX3YzX2FsbF9tYWxmb3JtZWRfYXR0cmlidXRlc19leHRlbnNpb25fcmVxdWVzdF9zZXF1ZW5jZV9sZW4yLmNzci5kZXI6IHBhcnNlX2lucHV0L3Rlc3RfY3NyX3YzX2FsbC5jc3IuZGVyCi0JKGhleGR1bXAgLXZlICcxLzEgIiUuMlgiJyAkPCB8IHNlZCAicy8zMDUxMzAwQjA2MDM1NTFEMEYwNC8zMDUwMzAwQjA2MDM1NTFEMEYwNC8iIHwgeHhkIC1yIC1wICkgPiAkQAotCi1wYXJzZV9pbnB1dC90ZXN0X2NlcnRfcmZjODIybmFtZS5jcnQuZGVyOiBjZXJ0X2V4YW1wbGVfbXVsdGkuY3NyCi0JJChPUEVOU1NMKSB4NTA5IC1yZXEgLUNBICQodGVzdF9jYV9jcnQpIC1DQWtleSAkKHRlc3RfY2Ffa2V5X2ZpbGVfcnNhKSAtZXh0ZmlsZSAkKHRlc3RfY2FfY29uZmlnX2ZpbGUpIC1vdXRmb3JtIERFUiAtZXh0ZW5zaW9ucyByZmM4MjJuYW1lX25hbWVzIC1wYXNzaW4gInBhc3M6JCh0ZXN0X2NhX3B3ZF9yc2EpIiAtc2V0X3NlcmlhbCAxNyAtZGF5cyAzNjUzIC1zaGEyNTYgLWluICQ8ID4gJEAKLQotJCh0ZXN0X2NhX2tleV9maWxlX3JzYV9hbHQpOnRlc3QtY2Eub3BlbnNzbGNvbmYKLQkkKE9QRU5TU0wpIGdlbnJzYSAtb3V0ICRAIDIwNDgKLXRlc3QtY2EtYWx0LmNzcjogJCh0ZXN0X2NhX2tleV9maWxlX3JzYV9hbHQpICQodGVzdF9jYV9jb25maWdfZmlsZSkKLQkkKE9QRU5TU0wpIHJlcSAtbmV3IC1jb25maWcgJCh0ZXN0X2NhX2NvbmZpZ19maWxlKSAta2V5ICQodGVzdF9jYV9rZXlfZmlsZV9yc2FfYWx0KSAtc3ViaiAiL0M9TkwvTz1Qb2xhclNTTC9DTj1Qb2xhclNTTCBUZXN0IENBIiAtb3V0ICRACi1hbGxfaW50ZXJtZWRpYXRlICs9IHRlc3QtY2EtYWx0LmNzcgotdGVzdC1jYS1hbHQuY3J0OiAkKHRlc3RfY2Ffa2V5X2ZpbGVfcnNhX2FsdCkgJCh0ZXN0X2NhX2NvbmZpZ19maWxlKSB0ZXN0LWNhLWFsdC5jc3IKLQkkKE9QRU5TU0wpIHJlcSAteDUwOSAtY29uZmlnICQodGVzdF9jYV9jb25maWdfZmlsZSkgLWtleSAkKHRlc3RfY2Ffa2V5X2ZpbGVfcnNhX2FsdCkgLXNldF9zZXJpYWwgMCAtZGF5cyAzNjUzIC1zaGEyNTYgLWluIHRlc3QtY2EtYWx0LmNzciAtb3V0ICRACi1hbGxfZmluYWwgKz0gdGVzdC1jYS1hbHQuY3J0Ci10ZXN0LWNhLWFsdC1nb29kLmNydDogdGVzdC1jYS1hbHQuY3J0IHRlc3QtY2Etc2hhMjU2LmNydAotCWNhdCB0ZXN0LWNhLWFsdC5jcnQgdGVzdC1jYS1zaGEyNTYuY3J0ID4gJEAKLWFsbF9maW5hbCArPSB0ZXN0LWNhLWFsdC1nb29kLmNydAotdGVzdC1jYS1nb29kLWFsdC5jcnQ6IHRlc3QtY2EtYWx0LmNydCB0ZXN0LWNhLXNoYTI1Ni5jcnQKLQljYXQgdGVzdC1jYS1zaGEyNTYuY3J0IHRlc3QtY2EtYWx0LmNydCA+ICRACi1hbGxfZmluYWwgKz0gdGVzdC1jYS1nb29kLWFsdC5jcnQKLQotdGVzdF9jYV9jcnRfZmlsZV9lYyA9IHRlc3QtY2EyLmNydAotdGVzdF9jYV9rZXlfZmlsZV9lYyA9IHRlc3QtY2EyLmtleQotCi10ZXN0LWNhMi5yZXEuc2hhMjU2OiAkKHRlc3RfY2Ffa2V5X2ZpbGVfZWMpCi0JJChNQkVEVExTX0NFUlRfUkVRKSBvdXRwdXRfZmlsZT0kQCBmaWxlbmFtZT0kKHRlc3RfY2Ffa2V5X2ZpbGVfZWMpIFwKLQlzdWJqZWN0X25hbWU9IkM9TkwsTz1Qb2xhclNTTCxDTj1Qb2xhcnNzbCBUZXN0IEVDIENBIiBtZD1TSEEyNTYKLWFsbF9pbnRlcm1lZGlhdGUgKz0gdGVzdC1jYTIucmVxLnNoYTI1NgotCi10ZXN0LWNhMi5jcnQ6ICQodGVzdF9jYV9rZXlfZmlsZV9lYykgdGVzdC1jYTIucmVxLnNoYTI1NgotCSQoTUJFRFRMU19DRVJUX1dSSVRFKSBpc19jYT0xIHNlcmlhbD0xMzkyNjIyMzUwNTIwMjA3MjgwOCBzZWxmc2lnbj0xIFwKLQkJcmVxdWVzdF9maWxlPXRlc3QtY2EyLnJlcS5zaGEyNTYgXAotCQlpc3N1ZXJfbmFtZT0iQz1OTCxPPVBvbGFyU1NMLENOPVBvbGFyc3NsIFRlc3QgRUMgQ0EiIFwKLQkJaXNzdWVyX2tleT0kKHRlc3RfY2Ffa2V5X2ZpbGVfZWMpIFwKLQkJbm90X2JlZm9yZT0yMDE5MDIxMDE0NDQwMCBub3RfYWZ0ZXI9MjAyOTAyMTAxNDQ0MDAgXAotCQltZD1TSEEyNTYgdmVyc2lvbj0zIG91dHB1dF9maWxlPSRACi1hbGxfZmluYWwgKz0gdGVzdC1jYTIuY3J0Ci0KLXRlc3QtY2EyLmt1LSUuY3J0OiB0ZXN0LWNhMi5rdS0lLmNydC5vcGVuc3NsLnYzX2V4dCAkKHRlc3RfY2Ffa2V5X2ZpbGVfZWMpIHRlc3QtY2EyLnJlcS5zaGEyNTYKLQkkKE9QRU5TU0wpIHg1MDkgLXJlcSAtaW4gdGVzdC1jYTIucmVxLnNoYTI1NiAtZXh0ZmlsZSAkPCBcCi0JCS1zaWdua2V5ICQodGVzdF9jYV9rZXlfZmlsZV9lYykgLWRheXMgMzY1MyAtb3V0ICRACi0KLWFsbF9maW5hbCArPSB0ZXN0LWNhMi5rdS1jcmwuY3J0IHRlc3QtY2EyLmt1LWNydC5jcnQgdGVzdC1jYTIua3UtY3J0X2NybC5jcnQgXAotCSAgICAgdGVzdC1jYTIua3UtZHMuY3J0Ci0KLXRlc3QtY2EyLWZ1dHVyZS5jcnQ6ICQodGVzdF9jYV9rZXlfZmlsZV9lYykgdGVzdC1jYTIucmVxLnNoYTI1NgotCSQoTUJFRFRMU19DRVJUX1dSSVRFKSBpc19jYT0xIHNlcmlhbD0xMzkyNjIyMzUwNTIwMjA3MjgwOCByZXF1ZXN0X2ZpbGU9dGVzdC1jYTIucmVxLnNoYTI1NiBzZWxmc2lnbj0xIFwKLQkJaXNzdWVyX25hbWU9IkM9TkwsTz1Qb2xhclNTTCxDTj1Qb2xhcnNzbCBUZXN0IEVDIENBIiBpc3N1ZXJfa2V5PSQodGVzdF9jYV9rZXlfZmlsZV9lYykgXAotCQlub3RfYmVmb3JlPTIwMjkwMjEwMTQ0NDAwIG5vdF9hZnRlcj0yMDM5MDIxMDE0NDQwMCBtZD1TSEEyNTYgdmVyc2lvbj0zIG91dHB1dF9maWxlPSRACi1hbGxfaW50ZXJtZWRpYXRlICs9IHRlc3QtY2EyLWZ1dHVyZS5jcnQKLQotdGVzdF9jYV9lY19jYXQgOj0gIyBmaWxlcyB0aGF0IGNvbmNhdGVuYXRlIGRpZmZlcmVudCBjcnQKLXRlc3QtY2EyX2NhdC1mdXR1cmUtaW52YWxpZC5jcnQ6IHRlc3QtY2EyLWZ1dHVyZS5jcnQgc2VydmVyNi5jcnQKLXRlc3RfY2FfZWNfY2F0ICs9IHRlc3QtY2EyX2NhdC1mdXR1cmUtaW52YWxpZC5jcnQKLXRlc3QtY2EyX2NhdC1mdXR1cmUtcHJlc2VudC5jcnQ6IHRlc3QtY2EyLWZ1dHVyZS5jcnQgdGVzdC1jYTIuY3J0Ci10ZXN0X2NhX2VjX2NhdCArPSB0ZXN0LWNhMl9jYXQtZnV0dXJlLXByZXNlbnQuY3J0Ci10ZXN0LWNhMl9jYXQtcHJlc2VudC1mdXR1cmUuY3J0OiB0ZXN0LWNhMi5jcnQgdGVzdC1jYTItZnV0dXJlLmNydAotdGVzdF9jYV9lY19jYXQgKz0gdGVzdC1jYTJfY2F0LXByZXNlbnQtZnV0dXJlLmNydAotdGVzdC1jYTJfY2F0LXByZXNlbnQtcGFzdC5jcnQ6IHRlc3QtY2EyLmNydCB0ZXN0LWNhMi1leHBpcmVkLmNydAotdGVzdF9jYV9lY19jYXQgKz0gdGVzdC1jYTJfY2F0LXByZXNlbnQtcGFzdC5jcnQKLXRlc3QtY2EyX2NhdC1wYXN0LWludmFsaWQuY3J0OiB0ZXN0LWNhMi1leHBpcmVkLmNydCBzZXJ2ZXI2LmNydAotdGVzdF9jYV9lY19jYXQgKz0gdGVzdC1jYTJfY2F0LXBhc3QtaW52YWxpZC5jcnQKLXRlc3QtY2EyX2NhdC1wYXN0LXByZXNlbnQuY3J0OiB0ZXN0LWNhMi1leHBpcmVkLmNydCB0ZXN0LWNhMi5jcnQKLXRlc3RfY2FfZWNfY2F0ICs9IHRlc3QtY2EyX2NhdC1wYXN0LXByZXNlbnQuY3J0Ci0kKHRlc3RfY2FfZWNfY2F0KToKLQljYXQgJF4gPiAkQAotYWxsX2ZpbmFsICs9ICQodGVzdF9jYV9lY19jYXQpCi0KLXBhcnNlX2lucHV0L3Rlc3QtY2EtYW55X3BvbGljeS5jcnQ6ICQodGVzdF9jYV9rZXlfZmlsZV9yc2EpIHRlc3QtY2EucmVxLnNoYTI1NgotCSQoT1BFTlNTTCkgcmVxIC14NTA5IC1jb25maWcgJCh0ZXN0X2NhX2NvbmZpZ19maWxlKSAtZXh0ZW5zaW9ucyB2M19hbnlfcG9saWN5X2NhIFwKLQkJLWtleSAkKHRlc3RfY2Ffa2V5X2ZpbGVfcnNhKSAtcGFzc2luICJwYXNzOiQodGVzdF9jYV9wd2RfcnNhKSIgXAotCQktc2V0X3NlcmlhbCAwIC1kYXlzIDM2NTMgLXNoYTI1NiAtaW4gdGVzdC1jYS5yZXEuc2hhMjU2IC1vdXQgJEAKLQotcGFyc2VfaW5wdXQvdGVzdC1jYS1hbnlfcG9saWN5X2VjLmNydDogJCh0ZXN0X2NhX2tleV9maWxlX2VjKSB0ZXN0LWNhLnJlcV9lYy5zaGEyNTYKLQkkKE9QRU5TU0wpIHJlcSAteDUwOSAtY29uZmlnICQodGVzdF9jYV9jb25maWdfZmlsZSkgLWV4dGVuc2lvbnMgdjNfYW55X3BvbGljeV9jYSBcCi0JCS1rZXkgJCh0ZXN0X2NhX2tleV9maWxlX2VjKSAtc2V0X3NlcmlhbCAwIC1kYXlzIDM2NTMgLXNoYTI1NiBcCi0JCS1pbiB0ZXN0LWNhLnJlcV9lYy5zaGEyNTYgLW91dCAkQAotCi1wYXJzZV9pbnB1dC90ZXN0LWNhLWFueV9wb2xpY3lfd2l0aF9xdWFsaWZpZXIuY3J0OiAkKHRlc3RfY2Ffa2V5X2ZpbGVfcnNhKSB0ZXN0LWNhLnJlcS5zaGEyNTYKLQkkKE9QRU5TU0wpIHJlcSAteDUwOSAtY29uZmlnICQodGVzdF9jYV9jb25maWdfZmlsZSkgLWV4dGVuc2lvbnMgdjNfYW55X3BvbGljeV9xdWFsaWZpZXJfY2EgLWtleSAkKHRlc3RfY2Ffa2V5X2ZpbGVfcnNhKSAtcGFzc2luICJwYXNzOiQodGVzdF9jYV9wd2RfcnNhKSIgLXNldF9zZXJpYWwgMCAtZGF5cyAzNjUzIC1zaGEyNTYgLWluIHRlc3QtY2EucmVxLnNoYTI1NiAtb3V0ICRACi0KLXBhcnNlX2lucHV0L3Rlc3QtY2EtYW55X3BvbGljeV93aXRoX3F1YWxpZmllcl9lYy5jcnQ6ICQodGVzdF9jYV9rZXlfZmlsZV9lYykgdGVzdC1jYS5yZXFfZWMuc2hhMjU2Ci0JJChPUEVOU1NMKSByZXEgLXg1MDkgLWNvbmZpZyAkKHRlc3RfY2FfY29uZmlnX2ZpbGUpIC1leHRlbnNpb25zIHYzX2FueV9wb2xpY3lfcXVhbGlmaWVyX2NhIC1rZXkgJCh0ZXN0X2NhX2tleV9maWxlX2VjKSAtc2V0X3NlcmlhbCAwIC1kYXlzIDM2NTMgLXNoYTI1NiAtaW4gdGVzdC1jYS5yZXFfZWMuc2hhMjU2IC1vdXQgJEAKLQotcGFyc2VfaW5wdXQvdGVzdC1jYS1tdWx0aV9wb2xpY3kuY3J0OiAkKHRlc3RfY2Ffa2V5X2ZpbGVfcnNhKSB0ZXN0LWNhLnJlcS5zaGEyNTYKLQkkKE9QRU5TU0wpIHJlcSAteDUwOSAtY29uZmlnICQodGVzdF9jYV9jb25maWdfZmlsZSkgLWV4dGVuc2lvbnMgdjNfbXVsdGlfcG9saWN5X2NhIC1rZXkgJCh0ZXN0X2NhX2tleV9maWxlX3JzYSkgLXBhc3NpbiAicGFzczokKHRlc3RfY2FfcHdkX3JzYSkiIC1zZXRfc2VyaWFsIDAgLWRheXMgMzY1MyAtc2hhMjU2IC1pbiB0ZXN0LWNhLnJlcS5zaGEyNTYgLW91dCAkQAotCi1wYXJzZV9pbnB1dC90ZXN0LWNhLW11bHRpX3BvbGljeV9lYy5jcnQ6ICQodGVzdF9jYV9rZXlfZmlsZV9lYykgdGVzdC1jYS5yZXFfZWMuc2hhMjU2Ci0JJChPUEVOU1NMKSByZXEgLXg1MDkgLWNvbmZpZyAkKHRlc3RfY2FfY29uZmlnX2ZpbGUpIC1leHRlbnNpb25zIHYzX211bHRpX3BvbGljeV9jYSAta2V5ICQodGVzdF9jYV9rZXlfZmlsZV9lYykgLXNldF9zZXJpYWwgMCAtZGF5cyAzNjUzIC1zaGEyNTYgLWluIHRlc3QtY2EucmVxX2VjLnNoYTI1NiAtb3V0ICRACi0KLXBhcnNlX2lucHV0L3Rlc3QtY2EtdW5zdXBwb3J0ZWRfcG9saWN5LmNydDogJCh0ZXN0X2NhX2tleV9maWxlX3JzYSkgdGVzdC1jYS5yZXEuc2hhMjU2Ci0JJChPUEVOU1NMKSByZXEgLXg1MDkgLWNvbmZpZyAkKHRlc3RfY2FfY29uZmlnX2ZpbGUpIC1leHRlbnNpb25zIHYzX3Vuc3VwcG9ydGVkX3BvbGljeV9jYSAta2V5ICQodGVzdF9jYV9rZXlfZmlsZV9yc2EpIC1wYXNzaW4gInBhc3M6JCh0ZXN0X2NhX3B3ZF9yc2EpIiAtc2V0X3NlcmlhbCAwIC1kYXlzIDM2NTMgLXNoYTI1NiAtaW4gdGVzdC1jYS5yZXEuc2hhMjU2IC1vdXQgJEAKLQotcGFyc2VfaW5wdXQvdGVzdC1jYS11bnN1cHBvcnRlZF9wb2xpY3lfZWMuY3J0OiAkKHRlc3RfY2Ffa2V5X2ZpbGVfZWMpIHRlc3QtY2EucmVxX2VjLnNoYTI1NgotCSQoT1BFTlNTTCkgcmVxIC14NTA5IC1jb25maWcgJCh0ZXN0X2NhX2NvbmZpZ19maWxlKSAtZXh0ZW5zaW9ucyB2M191bnN1cHBvcnRlZF9wb2xpY3lfY2EgLWtleSAkKHRlc3RfY2Ffa2V5X2ZpbGVfZWMpIC1zZXRfc2VyaWFsIDAgLWRheXMgMzY1MyAtc2hhMjU2IC1pbiB0ZXN0LWNhLnJlcV9lYy5zaGEyNTYgLW91dCAkQAotCi10ZXN0LWNhLnJlcV9lYy5zaGEyNTY6ICQodGVzdF9jYV9rZXlfZmlsZV9lYykKLQkkKE1CRURUTFNfQ0VSVF9SRVEpIG91dHB1dF9maWxlPSRAIGZpbGVuYW1lPSQodGVzdF9jYV9rZXlfZmlsZV9lYykgc3ViamVjdF9uYW1lPSJDPU5MLCBPPVBvbGFyU1NMLCBDTj1Qb2xhcnNzbCBUZXN0IEVDIENBIiBtZD1TSEEyNTYKLWFsbF9pbnRlcm1lZGlhdGUgKz0gdGVzdC1jYS5yZXFfZWMuc2hhMjU2Ci0KLXRlc3QtY2EyLmNydC5kZXI6ICQodGVzdF9jYV9jcnRfZmlsZV9lYykKLQkkKE9QRU5TU0wpIHg1MDkgLWluICQodGVzdF9jYV9jcnRfZmlsZV9lYykgLW91dCAkQCAtaW5mb3JtIFBFTSAtb3V0Zm9ybSBERVIKLWFsbF9maW5hbCArPSB0ZXN0LWNhMi5jcnQuZGVyCi0KLXRlc3QtY2EyLmtleS5kZXI6ICQodGVzdF9jYV9rZXlfZmlsZV9lYykKLQkkKE9QRU5TU0wpIHBrZXkgLWluICQodGVzdF9jYV9rZXlfZmlsZV9lYykgLW91dCAkQCAtaW5mb3JtIFBFTSAtb3V0Zm9ybSBERVIKLWFsbF9maW5hbCArPSB0ZXN0LWNhMi5rZXkuZGVyCi0KLXRlc3RfY2FfY3J0X2NhdDEyID0gdGVzdC1jYV9jYXQxMi5jcnQKLSQodGVzdF9jYV9jcnRfY2F0MTIpOiAkKHRlc3RfY2FfY3J0KSAkKHRlc3RfY2FfY3J0X2ZpbGVfZWMpCi0JY2F0ICQodGVzdF9jYV9jcnQpICQodGVzdF9jYV9jcnRfZmlsZV9lYykgPiAkQAotYWxsX2ZpbmFsICs9ICQodGVzdF9jYV9jcnRfY2F0MTIpCi0KLXRlc3RfY2FfY3J0X2NhdDIxID0gdGVzdC1jYV9jYXQyMS5jcnQKLSQodGVzdF9jYV9jcnRfY2F0MjEpOiAkKHRlc3RfY2FfY3J0KSAkKHRlc3RfY2FfY3J0X2ZpbGVfZWMpCi0JY2F0ICQodGVzdF9jYV9jcnRfZmlsZV9lYykgJCh0ZXN0X2NhX2NydCkgPiAkQAotYWxsX2ZpbmFsICs9ICQodGVzdF9jYV9jcnRfY2F0MjEpCi0KLXRlc3QtaW50LWNhLmNzcjogdGVzdC1pbnQtY2Eua2V5ICQodGVzdF9jYV9jb25maWdfZmlsZSkKLQkkKE9QRU5TU0wpIHJlcSAtbmV3IC1jb25maWcgJCh0ZXN0X2NhX2NvbmZpZ19maWxlKSAta2V5IHRlc3QtaW50LWNhLmtleSAtc3ViaiAiL0M9TkwvTz1Qb2xhclNTTC9DTj1Qb2xhclNTTCBUZXN0IEludGVybWVkaWF0ZSBDQSIgLW91dCAkQAotCi10ZXN0LWludC1jYTIuY3NyOiB0ZXN0LWludC1jYTIua2V5ICQodGVzdF9jYV9jb25maWdfZmlsZSkKLQkkKE9QRU5TU0wpIHJlcSAtbmV3IC1jb25maWcgJCh0ZXN0X2NhX2NvbmZpZ19maWxlKSAta2V5IHRlc3QtaW50LWNhMi5rZXkgXAotCQktc3ViaiAiL0M9TkwvTz1Qb2xhclNTTC9DTj1Qb2xhclNTTCBUZXN0IEludGVybWVkaWF0ZSBFQyBDQSIgLW91dCAkQAotCi10ZXN0LWludC1jYTMuY3NyOiB0ZXN0LWludC1jYTMua2V5ICQodGVzdF9jYV9jb25maWdfZmlsZSkKLQkkKE9QRU5TU0wpIHJlcSAtbmV3IC1jb25maWcgJCh0ZXN0X2NhX2NvbmZpZ19maWxlKSAta2V5IHRlc3QtaW50LWNhMy5rZXkgXAotCQktc3ViaiAiL0M9VUsvTz1tYmVkIFRMUy9DTj1tYmVkIFRMUyBUZXN0IGludGVybWVkaWF0ZSBDQSAzIiAtb3V0ICRACi0KLWFsbF9pbnRlcm1lZGlhdGUgKz0gdGVzdC1pbnQtY2EuY3NyIHRlc3QtaW50LWNhMi5jc3IgdGVzdC1pbnQtY2EzLmNzcgotCi10ZXN0LWludC1jYS5jcnQ6ICQodGVzdF9jYV9jcnRfZmlsZV9lYykgJCh0ZXN0X2NhX2tleV9maWxlX2VjKSAkKHRlc3RfY2FfY29uZmlnX2ZpbGUpIHRlc3QtaW50LWNhLmNzcgotCSQoT1BFTlNTTCkgeDUwOSAtcmVxIC1leHRmaWxlICQodGVzdF9jYV9jb25maWdfZmlsZSkgLWV4dGVuc2lvbnMgdjNfY2EgXAotCQktQ0EgJCh0ZXN0X2NhX2NydF9maWxlX2VjKSAtQ0FrZXkgJCh0ZXN0X2NhX2tleV9maWxlX2VjKSBcCi0JCS1zZXRfc2VyaWFsIDE0IC1kYXlzIDM2NTMgLXNoYTI1NiAtaW4gdGVzdC1pbnQtY2EuY3NyIC1vdXQgJEAKLQotdGVzdC1pbnQtY2EyLmNydDogJCh0ZXN0X2NhX2tleV9maWxlX3JzYSkgJCh0ZXN0X2NhX2NydCkgJCh0ZXN0X2NhX2NvbmZpZ19maWxlKSB0ZXN0LWludC1jYTIuY3NyCi0JJChPUEVOU1NMKSB4NTA5IC1yZXEgLWV4dGZpbGUgJCh0ZXN0X2NhX2NvbmZpZ19maWxlKSAtZXh0ZW5zaW9ucyB2M19jYSAtQ0EgJCh0ZXN0X2NhX2NydCkgXAotCQktQ0FrZXkgJCh0ZXN0X2NhX2tleV9maWxlX3JzYSkgLXNldF9zZXJpYWwgMTUgLWRheXMgMzY1MyAtc2hhMjU2IC1pbiB0ZXN0LWludC1jYTIuY3NyIFwKLQkJLXBhc3NpbiAicGFzczokKHRlc3RfY2FfcHdkX3JzYSkiIC1vdXQgJEAKLQotIyBOb3RlOiBUaGlzIHJlcXVlc3RzIG9wZW5zc2wgdmVyc2lvbiA+PSAzLngueHgKLXRlc3QtaW50LWNhMy5jcnQ6IHRlc3QtaW50LWNhMi5jcnQgdGVzdC1pbnQtY2EyLmtleSAkKHRlc3RfY2FfY29uZmlnX2ZpbGUpIHRlc3QtaW50LWNhMy5jc3IKLQkkKE9QRU5TU0wpIHg1MDkgLXJlcSAtZXh0ZmlsZSAkKHRlc3RfY2FfY29uZmlnX2ZpbGUpIC1leHRlbnNpb25zIG5vX3N1YmpfYXV0aF9pZCBcCi0JCS1DQSB0ZXN0LWludC1jYTIuY3J0IC1DQWtleSB0ZXN0LWludC1jYTIua2V5IC1zZXRfc2VyaWFsIDc3IC1kYXlzIDM2NTMgXAotCQkJLXNoYTI1NiAtaW4gdGVzdC1pbnQtY2EzLmNzciAtb3V0ICRACi0KLXRlc3QtaW50LWNhLWV4cC5jcnQ6ICQodGVzdF9jYV9jcnRfZmlsZV9lYykgJCh0ZXN0X2NhX2tleV9maWxlX2VjKSAkKHRlc3RfY2FfY29uZmlnX2ZpbGUpIHRlc3QtaW50LWNhLmNzcgotCSQoRkFLRVRJTUUpIC1mIC0zNjUzZCAkKE9QRU5TU0wpIHg1MDkgLXJlcSAtZXh0ZmlsZSAkKHRlc3RfY2FfY29uZmlnX2ZpbGUpIC1leHRlbnNpb25zIHYzX2NhIC1DQSAkKHRlc3RfY2FfY3J0X2ZpbGVfZWMpIC1DQWtleSAkKHRlc3RfY2Ffa2V5X2ZpbGVfZWMpIC1zZXRfc2VyaWFsIDE0IC1kYXlzIDM2NTMgLXNoYTI1NiAtaW4gdGVzdC1pbnQtY2EuY3NyIC1vdXQgJEAKLQotYWxsX2ZpbmFsICs9IHRlc3QtaW50LWNhLWV4cC5jcnQgdGVzdC1pbnQtY2EuY3J0IHRlc3QtaW50LWNhMi5jcnQgdGVzdC1pbnQtY2EzLmNydAotCi1lbmNvLWNlcnQtdXRmOHN0ci5wZW06IHJzYV9wa2NzMV8xMDI0X2NsZWFyLnBlbQotCSQoTUJFRFRMU19DRVJUX1dSSVRFKSBzdWJqZWN0X2tleT1yc2FfcGtjczFfMTAyNF9jbGVhci5wZW0gc3ViamVjdF9uYW1lPSJDTj1kdy55b25hbi5uZXQiIGlzc3Vlcl9jcnQ9ZW5jby1jYS1wcnN0ci5wZW0gaXNzdWVyX2tleT1yc2FfcGtjczFfMTAyNF9jbGVhci5wZW0gbm90X2JlZm9yZT0yMDE5MDIxMDE0NDQwNiBub3RfYWZ0ZXI9MjAyOTAyMTAxNDQ0MDYgbWQ9U0hBMSB2ZXJzaW9uPTMgb3V0cHV0X2ZpbGU9JEAKLQotcGFyc2VfaW5wdXQvY3JsLWlkcC5wZW06ICQodGVzdF9jYV9jcnQpICQodGVzdF9jYV9rZXlfZmlsZV9yc2EpICQodGVzdF9jYV9jb25maWdfZmlsZSkKLQkkKE9QRU5TU0wpIGNhIC1nZW5jcmwgLWJhdGNoIC1jZXJ0ICQodGVzdF9jYV9jcnQpIC1rZXlmaWxlICQodGVzdF9jYV9rZXlfZmlsZV9yc2EpIC1rZXkgJCh0ZXN0X2NhX3B3ZF9yc2EpIC1jb25maWcgJCh0ZXN0X2NhX2NvbmZpZ19maWxlKSAtbmFtZSB0ZXN0X2NhIC1tZCBzaGEyNTYgLWNybGRheXMgMzY1MyAtY3JsZXh0cyBjcmxfZXh0X2lkcCAtb3V0ICRACi1wYXJzZV9pbnB1dC9jcmwtaWRwbmMucGVtOiAkKHRlc3RfY2FfY3J0KSAkKHRlc3RfY2Ffa2V5X2ZpbGVfcnNhKSAkKHRlc3RfY2FfY29uZmlnX2ZpbGUpCi0JJChPUEVOU1NMKSBjYSAtZ2VuY3JsIC1iYXRjaCAtY2VydCAkKHRlc3RfY2FfY3J0KSAta2V5ZmlsZSAkKHRlc3RfY2Ffa2V5X2ZpbGVfcnNhKSAta2V5ICQodGVzdF9jYV9wd2RfcnNhKSAtY29uZmlnICQodGVzdF9jYV9jb25maWdfZmlsZSkgLW5hbWUgdGVzdF9jYSAtbWQgc2hhMjU2IC1jcmxkYXlzIDM2NTMgLWNybGV4dHMgY3JsX2V4dF9pZHBfbmMgLW91dCAkQAotCi1jbGlfY3J0X2tleV9maWxlX3JzYSA9IGNsaS1yc2Eua2V5Ci1jbGlfY3J0X2V4dGVuc2lvbnNfZmlsZSA9IGNsaS5vcGVuc3NsY29uZgotCi1jbGktcnNhLmNzcjogJChjbGlfY3J0X2tleV9maWxlX3JzYSkKLQkkKE1CRURUTFNfQ0VSVF9SRVEpIG91dHB1dF9maWxlPSRAIGZpbGVuYW1lPSQ8IHN1YmplY3RfbmFtZT0iQz1OTCxPPVBvbGFyU1NMLENOPVBvbGFyU1NMIENsaWVudCAyIiBtZD1TSEExCi1hbGxfaW50ZXJtZWRpYXRlICs9IGNsaS1yc2EuY3NyCi0KLWNsaS1yc2Etc2hhMS5jcnQ6IGNsaS1yc2EuY3NyCi0JJChNQkVEVExTX0NFUlRfV1JJVEUpIHJlcXVlc3RfZmlsZT0kPCBzZXJpYWw9NCBpc3N1ZXJfY3J0PSQodGVzdF9jYV9jcnQpIGlzc3Vlcl9rZXk9JCh0ZXN0X2NhX2tleV9maWxlX3JzYSkgaXNzdWVyX3B3ZD0kKHRlc3RfY2FfcHdkX3JzYSkgbm90X2JlZm9yZT0yMDE5MDIxMDE0NDQwNiBub3RfYWZ0ZXI9MjAyOTAyMTAxNDQ0MDYgbWQ9U0hBMSB2ZXJzaW9uPTMgb3V0cHV0X2ZpbGU9JEAKLQotY2xpLXJzYS1zaGEyNTYuY3J0OiBjbGktcnNhLmNzcgotCSQoTUJFRFRMU19DRVJUX1dSSVRFKSByZXF1ZXN0X2ZpbGU9JDwgc2VyaWFsPTQgaXNzdWVyX2NydD0kKHRlc3RfY2FfY3J0KSBpc3N1ZXJfa2V5PSQodGVzdF9jYV9rZXlfZmlsZV9yc2EpIGlzc3Vlcl9wd2Q9JCh0ZXN0X2NhX3B3ZF9yc2EpIG5vdF9iZWZvcmU9MjAxOTAyMTAxNDQ0MDYgbm90X2FmdGVyPTIwMjkwMjEwMTQ0NDA2IG1kPVNIQTI1NiB2ZXJzaW9uPTMgb3V0cHV0X2ZpbGU9JEAKLWFsbF9maW5hbCArPSBjbGktcnNhLXNoYTI1Ni5jcnQKLQotY2xpLXJzYS1zaGEyNTYuY3J0LmRlcjogY2xpLXJzYS1zaGEyNTYuY3J0Ci0JJChPUEVOU1NMKSB4NTA5IC1pbiAkPCAtb3V0ICRAIC1pbmZvcm0gUEVNIC1vdXRmb3JtIERFUgotYWxsX2ZpbmFsICs9IGNsaS1yc2Etc2hhMjU2LmNydC5kZXIKLQotcGFyc2VfaW5wdXQvY2xpLXJzYS1zaGEyNTYtYmFkYWxnLmNydC5kZXI6IGNsaS1yc2Etc2hhMjU2LmNydC5kZXIKLQloZXhkdW1wIC12ZSAnMS8xICIlLjJYIicgJDwgfCBzZWQgInMvMDYwOTJBODY0ODg2RjcwRDAxMDEwQjA1MDAvMDYwOTJBODY0ODg2RjcwRDAxMDEwQjA5MDAvMiIgfCB4eGQgLXIgLXAgPiAkQAotCi1jbGktcnNhLmtleS5kZXI6ICQoY2xpX2NydF9rZXlfZmlsZV9yc2EpCi0JJChPUEVOU1NMKSBwa2V5IC1pbiAkPCAtb3V0ICRAIC1pbmZvcm0gUEVNIC1vdXRmb3JtIERFUgotYWxsX2ZpbmFsICs9IGNsaS1yc2Eua2V5LmRlcgotCi10ZXN0X2NhX2ludF9yc2ExID0gdGVzdC1pbnQtY2EuY3J0Ci10ZXN0X2NhX2ludF9lYyA9IHRlc3QtaW50LWNhMi5jcnQKLXRlc3RfY2FfaW50X2tleV9maWxlX2VjID0gdGVzdC1pbnQtY2EyLmtleQotCi0jIHNlcnZlcjcqCi0KLXNlcnZlcjcuY3NyOiBzZXJ2ZXI3LmtleQotCSQoT1BFTlNTTCkgcmVxIC1uZXcgLWtleSBzZXJ2ZXI3LmtleSAtc3ViaiAiL0M9TkwvTz1Qb2xhclNTTC9DTj1sb2NhbGhvc3QiIC1vdXQgJEAKLWFsbF9pbnRlcm1lZGlhdGUgKz0gc2VydmVyNy5jc3IKLQotc2VydmVyNy5jcnQ6IHNlcnZlcjcuY3NyICQodGVzdF9jYV9pbnRfcnNhMSkKLQkkKE9QRU5TU0wpIHg1MDkgLXJlcSAtZXh0ZmlsZSAkKGNsaV9jcnRfZXh0ZW5zaW9uc19maWxlKSAtZXh0ZW5zaW9ucyBjbGktcnNhIFwKLQkJLUNBICQodGVzdF9jYV9pbnRfcnNhMSkgLUNBa2V5IHRlc3QtaW50LWNhLmtleSBcCi0JCS1zZXRfc2VyaWFsIDE2IC1kYXlzIDM2NTMgLXNoYTI1NiAtaW4gc2VydmVyNy5jc3IgPiAkQAotYWxsX2ZpbmFsICs9IHNlcnZlcjcuY3J0Ci0KLXNlcnZlcjctZXhwaXJlZC5jcnQ6IHNlcnZlcjcuY3NyICQodGVzdF9jYV9pbnRfcnNhMSkKLQkkKEZBS0VUSU1FKSAtZiAtMzY1M2QgJChPUEVOU1NMKSB4NTA5IC1yZXEgLWV4dGZpbGUgJChjbGlfY3J0X2V4dGVuc2lvbnNfZmlsZSkgLWV4dGVuc2lvbnMgY2xpLXJzYSAtQ0EgJCh0ZXN0X2NhX2ludF9yc2ExKSAtQ0FrZXkgdGVzdC1pbnQtY2Eua2V5IC1zZXRfc2VyaWFsIDE2IC1kYXlzIDM2NTMgLXNoYTI1NiAtaW4gc2VydmVyNy5jc3IgfCBjYXQgLSAkKHRlc3RfY2FfaW50X3JzYTEpID4gJEAKLWFsbF9maW5hbCArPSBzZXJ2ZXI3LWV4cGlyZWQuY3J0Ci0KLXNlcnZlcjctZnV0dXJlLmNydDogc2VydmVyNy5jc3IgJCh0ZXN0X2NhX2ludF9yc2ExKQotCSQoRkFLRVRJTUUpIC1mICszNjUzZCAkKE9QRU5TU0wpIHg1MDkgLXJlcSAtZXh0ZmlsZSAkKGNsaV9jcnRfZXh0ZW5zaW9uc19maWxlKSAtZXh0ZW5zaW9ucyBjbGktcnNhIC1DQSAkKHRlc3RfY2FfaW50X3JzYTEpIC1DQWtleSB0ZXN0LWludC1jYS5rZXkgLXNldF9zZXJpYWwgMTYgLWRheXMgMzY1MyAtc2hhMjU2IC1pbiBzZXJ2ZXI3LmNzciB8IGNhdCAtICQodGVzdF9jYV9pbnRfcnNhMSkgPiAkQAotYWxsX2ZpbmFsICs9IHNlcnZlcjctZnV0dXJlLmNydAotCi1zZXJ2ZXI3LWJhZHNpZ24uY3J0OiBzZXJ2ZXI3LmNydCAkKHRlc3RfY2FfaW50X3JzYTEpCi0JeyBoZWFkIC1uLTIgJDw7IHRhaWwgLW4tMiAkPCB8IHNlZCAtZSAnMXMvMFwoPSpcKSQkL19cMS8nIC1lICcxcy9bXl89XVwoPSpcKSQkLzBcMS8nIC1lICcxcy9fLzEvJzsgY2F0ICQodGVzdF9jYV9pbnRfcnNhMSk7IH0gPiAkQAotYWxsX2ZpbmFsICs9IHNlcnZlcjctYmFkc2lnbi5jcnQKLQotcGFyc2VfaW5wdXQvc2VydmVyN19pbnQtY2EuY3J0IHNlcnZlcjdfaW50LWNhLmNydDogc2VydmVyNy5jcnQgJCh0ZXN0X2NhX2ludF9yc2ExKQotCWNhdCBzZXJ2ZXI3LmNydCAkKHRlc3RfY2FfaW50X3JzYTEpID4gJEAKLWFsbF9maW5hbCArPSBzZXJ2ZXI3X2ludC1jYS5jcnQKLQotcGFyc2VfaW5wdXQvc2VydmVyN19wZW1fc3BhY2UuY3J0OiBzZXJ2ZXI3LmNydCAkKHRlc3RfY2FfaW50X3JzYTEpCi0JY2F0IHNlcnZlcjcuY3J0ICQodGVzdF9jYV9pbnRfcnNhMSkgfCBzZWQgJzRzL1woLlwpJCQvIFwxLycgPiAkQAotCi1wYXJzZV9pbnB1dC9zZXJ2ZXI3X2FsbF9zcGFjZS5jcnQ6IHNlcnZlcjcuY3J0ICQodGVzdF9jYV9pbnRfcnNhMSkKLQl7IGNhdCBzZXJ2ZXI3LmNydCB8IHNlZCAnNHMvXCguXCkkJC8gXDEvJzsgY2F0IHRlc3QtaW50LWNhLmNydCB8IHNlZCAnNHMvXCguXCkkJC8gXDEvJzsgfSA+ICRACi0KLXBhcnNlX2lucHV0L3NlcnZlcjdfdHJhaWxpbmdfc3BhY2UuY3J0OiBzZXJ2ZXI3LmNydCAkKHRlc3RfY2FfaW50X3JzYTEpCi0JY2F0IHNlcnZlcjcuY3J0ICQodGVzdF9jYV9pbnRfcnNhMSkgfCBzZWQgJ3MvXCguXCkkJC9cMSAvJyA+ICRACi0KLXNlcnZlcjdfaW50LWNhX2NhMi5jcnQ6IHNlcnZlcjcuY3J0ICQodGVzdF9jYV9pbnRfcnNhMSkgJCh0ZXN0X2NhX2NydF9maWxlX2VjKQotCWNhdCBzZXJ2ZXI3LmNydCAkKHRlc3RfY2FfaW50X3JzYTEpICQodGVzdF9jYV9jcnRfZmlsZV9lYykgPiAkQAotYWxsX2ZpbmFsICs9IHNlcnZlcjdfaW50LWNhX2NhMi5jcnQKLQotc2VydmVyN19pbnQtY2EtZXhwLmNydDogc2VydmVyNy5jcnQgdGVzdC1pbnQtY2EtZXhwLmNydAotCWNhdCBzZXJ2ZXI3LmNydCB0ZXN0LWludC1jYS1leHAuY3J0ID4gJEAKLWFsbF9maW5hbCArPSBzZXJ2ZXI3X2ludC1jYS1leHAuY3J0Ci0KLXNlcnZlcjdfc3B1cmlvdXNfaW50LWNhLmNydDogc2VydmVyNy5jcnQgJCh0ZXN0X2NhX2ludF9lYykgJCh0ZXN0X2NhX2ludF9yc2ExKQotCWNhdCBzZXJ2ZXI3LmNydCAkKHRlc3RfY2FfaW50X2VjKSAkKHRlc3RfY2FfaW50X3JzYTEpID4gJEAKLWFsbF9maW5hbCArPSBzZXJ2ZXI3X3NwdXJpb3VzX2ludC1jYS5jcnQKLQotIyBzZXJ2ZXI4KgotCi1zZXJ2ZXI4LmNydDogc2VydmVyOC5rZXkKLQkkKE1CRURUTFNfQ0VSVF9XUklURSkgc3ViamVjdF9rZXk9JDwgc3ViamVjdF9uYW1lPSJDPU5MLCBPPVBvbGFyU1NMLCBDTj1sb2NhbGhvc3QiIHNlcmlhbD0xNyBcCi0JCWlzc3Vlcl9jcnQ9JCh0ZXN0X2NhX2ludF9lYykgaXNzdWVyX2tleT0kKHRlc3RfY2FfaW50X2tleV9maWxlX2VjKSBcCi0JCW5vdF9iZWZvcmU9MjAxOTAyMTAxNDQ0MDYgbm90X2FmdGVyPTIwMjkwMjEwMTQ0NDA2IFwKLQkJbWQ9U0hBMjU2IHZlcnNpb249MyBvdXRwdXRfZmlsZT0kQAotYWxsX2ZpbmFsICs9IHNlcnZlcjguY3J0Ci0KLXNlcnZlcjhfaW50LWNhMi5jcnQ6IHNlcnZlcjguY3J0ICQodGVzdF9jYV9pbnRfZWMpCi0JY2F0ICReID4gJEAKLWFsbF9maW5hbCArPSBzZXJ2ZXI4X2ludC1jYTIuY3J0Ci0KLWNsaTIucmVxLnNoYTI1NjogY2xpMi5rZXkKLQkkKE1CRURUTFNfQ0VSVF9SRVEpIG91dHB1dF9maWxlPSRAIGZpbGVuYW1lPSQ8IHN1YmplY3RfbmFtZT0iQz1OTCxPPVBvbGFyU1NMLENOPVBvbGFyU1NMIFRlc3QgQ2xpZW50IDIiIG1kPVNIQTI1NgotYWxsX2ludGVybWVkaWF0ZSArPSBjbGkyLnJlcS5zaGEyNTYKLQotYWxsX2ZpbmFsICs9IHNlcnZlcjEucmVxLnNoYTEKLWNsaTIuY3J0OiBjbGkyLnJlcS5zaGEyNTYKLQkkKE1CRURUTFNfQ0VSVF9XUklURSkgcmVxdWVzdF9maWxlPWNsaTIucmVxLnNoYTI1NiBzZXJpYWw9MTMgc2VsZnNpZ249MCBpc3N1ZXJfbmFtZT0iQz1OTCxPPVBvbGFyU1NMLENOPVBvbGFyU1NMIFRlc3QgRUMgQ0EiIGlzc3Vlcl9rZXk9JCh0ZXN0X2NhX2tleV9maWxlX2VjKSBpc3N1ZXJfcHdkPSQodGVzdF9jYV9wd2RfcnNhKSBub3RfYmVmb3JlPTIwMTkwMjEwMTQ0NDAwIG5vdF9hZnRlcj0yMDI5MDIxMDE0NDQwMCBtZD1TSEEyNTYgdmVyc2lvbj0zIG91dHB1dF9maWxlPSRACi1hbGxfZmluYWwgKz0gY2xpMi5jcnQKLQotY2xpMi5jcnQuZGVyOiBjbGkyLmNydAotCSQoT1BFTlNTTCkgeDUwOSAtaW4gJDwgLW91dCAkQCAtaW5mb3JtIFBFTSAtb3V0Zm9ybSBERVIKLWFsbF9maW5hbCArPSBjbGkyLmNydC5kZXIKLQotY2xpMi5rZXkuZGVyOiBjbGkyLmtleQotCSQoT1BFTlNTTCkgcGtleSAtaW4gJDwgLW91dCAkQCAtaW5mb3JtIFBFTSAtb3V0Zm9ybSBERVIKLWFsbF9maW5hbCArPSBjbGkyLmtleS5kZXIKLQotc2VydmVyNV9wd2RfZWMgPSBQb2xhclNTTFRlc3QKLQotc2VydmVyNS5jcnQuZGVyOiBzZXJ2ZXI1LmNydAotCSQoT1BFTlNTTCkgeDUwOSAtaW4gJDwgLW91dCAkQCAtaW5mb3JtIFBFTSAtb3V0Zm9ybSBERVIKLWFsbF9maW5hbCArPSBzZXJ2ZXI1LmNydC5kZXIKLQotc2VydmVyNS5rZXkuZGVyOiBzZXJ2ZXI1LmtleQotCSQoT1BFTlNTTCkgcGtleSAtaW4gJDwgLW91dCAkQCAtaW5mb3JtIFBFTSAtb3V0Zm9ybSBERVIKLWFsbF9maW5hbCArPSBzZXJ2ZXI1LmtleS5kZXIKLQotc2VydmVyNS5rZXkuZW5jOiBzZXJ2ZXI1LmtleQotCSQoT1BFTlNTTCkgZWMgLWFlczI1NiAtaW4gJDwgLW91dCAkQCAtcGFzc291dCAicGFzczokKHNlcnZlcjVfcHdkX2VjKSIKLWFsbF9maW5hbCArPSBzZXJ2ZXI1LmtleS5lbmMKLQotc2VydmVyNS1zcy1leHBpcmVkLmNydDogc2VydmVyNS5rZXkKLQkkKEZBS0VUSU1FKSAtZiAtMzY1M2QgJChPUEVOU1NMKSByZXEgLXg1MDkgLW5ldyAtc3ViaiAiL0M9VUsvTz1tYmVkIFRMUy9PVT10ZXN0c3VpdGUvQ049bG9jYWxob3N0IiAtZGF5cyAzNjUzIC1zaGEyNTYgLWtleSAkPCAtb3V0ICRACi1hbGxfZmluYWwgKz0gc2VydmVyNS1zcy1leHBpcmVkLmNydAotCi0jIHRyeSB0byBmb3JnZSBhIGNvcHkgb2YgdGVzdC1pbnQtY2EzIHdpdGggZGlmZmVyZW50IGtleQotc2VydmVyNS1zcy1mb3JnZWNhLmNydDogc2VydmVyNS5rZXkKLQkkKE9QRU5TU0wpIHJlcSAteDUwOSAtbmV3IC1zdWJqICIvQz1VSy9PPW1iZWQgVExTL0NOPW1iZWQgVExTIFRlc3QgaW50ZXJtZWRpYXRlIENBIDMiIFwKLQkJLXNldF9zZXJpYWwgNzcgLWNvbmZpZyAkKHRlc3RfY2FfY29uZmlnX2ZpbGUpIC1leHRlbnNpb25zIG5vZXh0X2NhIFwKLQkJLWRheXMgMzY1MCAtc2hhMjU2IC1rZXkgJDwgLW91dCAkQAotYWxsX2ZpbmFsICs9IHNlcnZlcjUtc3MtZm9yZ2VjYS5jcnQKLQotc2VydmVyNS1zZWxmc2lnbmVkLmNydDogc2VydmVyNS5rZXkKLQlvcGVuc3NsIHJlcSAteDUwOSAta2V5IHNlcnZlcjUua2V5IFwKLSAgICAgICAgLXNoYTI1NiAtZGF5cyAzNjUwIC1ub2RlcyBcCi0gICAgICAgIC1hZGRleHQgYmFzaWNDb25zdHJhaW50cz1jcml0aWNhbCxDQTpGQUxTRSBcCi0gICAgICAgIC1hZGRleHQga2V5VXNhZ2U9Y3JpdGljYWwsZGlnaXRhbFNpZ25hdHVyZSBcCi0gICAgICAgIC1hZGRleHQgc3ViamVjdEtleUlkZW50aWZpZXI9aGFzaCAgIFwKLSAgICAgICAgLWFkZGV4dCBhdXRob3JpdHlLZXlJZGVudGlmaWVyPW5vbmUgXAotICAgICAgICAtc2V0X3NlcmlhbCAweDUzYTJjYjRiMTI0ZWFkODM3ZGE4OTRiMiBcCi0gICAgICAgIC1zdWJqICIvQ049c2VsZnNpZ25lZC9PVT10ZXN0aW5nL089UG9sYXJTU0wvQz1OTCIgXAotICAgICAgICAtb3V0ICRACi1hbGxfZmluYWwgKz0gc2VydmVyNS1zZWxmc2lnbmVkLmNydAotCi1wYXJzZV9pbnB1dC9zZXJ2ZXI1LW90aGVybmFtZS5jcnQuZGVyOiBzZXJ2ZXI1LmtleQotCSQoT1BFTlNTTCkgcmVxIC14NTA5IC1uZXcgLXN1YmogIi9DPVVLL089TWJlZCBUTFMvQ049TWJlZCBUTFMgb3RoZXJuYW1lIFNBTiIgLXNldF9zZXJpYWwgNzcgLWNvbmZpZyAkKHRlc3RfY2FfY29uZmlnX2ZpbGUpIC1leHRlbnNpb25zIG90aGVybmFtZV9zYW4gLWRheXMgMzY1MCAtc2hhMjU2IC1rZXkgJDwgLW91dGZvcm0gZGVyIC1vdXQgJEAKLQotcGFyc2VfaW5wdXQvc2VydmVyNS1ub25wcmludGFibGVfb3RoZXJuYW1lLmNydC5kZXI6IHNlcnZlcjUua2V5Ci0JJChPUEVOU1NMKSByZXEgLXg1MDkgLW5ldyAtc3ViaiAiL0M9VUsvTz1NYmVkIFRMUy9DTj1NYmVkIFRMUyBub24tcHJpbnRhYmxlIG90aGVybmFtZSBTQU4iIC1zZXRfc2VyaWFsIDc3IC1jb25maWcgJCh0ZXN0X2NhX2NvbmZpZ19maWxlKSAtZXh0ZW5zaW9ucyBub25wcmludGFibGVfb3RoZXJuYW1lX3NhbiAtZGF5cyAzNjUwIC1zaGEyNTYgLWtleSAkPCAtb3V0Zm9ybSBkZXIgLW91dCAkQAotCi1wYXJzZV9pbnB1dC9zZXJ2ZXI1LXVuc3VwcG9ydGVkX290aGVybmFtZS5jcnQuZGVyOiBzZXJ2ZXI1LmtleQotCSQoT1BFTlNTTCkgcmVxIC14NTA5IC1uZXcgLXN1YmogIi9DPVVLL089TWJlZCBUTFMvQ049TWJlZCBUTFMgdW5zdXBwb3J0ZWQgb3RoZXJuYW1lIFNBTiIgLXNldF9zZXJpYWwgNzcgLWNvbmZpZyAkKHRlc3RfY2FfY29uZmlnX2ZpbGUpIC1leHRlbnNpb25zIHVuc3VwcG9ydGVkX290aGVybmFtZV9zYW4gLWRheXMgMzY1MCAtc2hhMjU2IC1rZXkgJDwgLW91dGZvcm0gZGVyIC1vdXQgJEAKLQotcGFyc2VfaW5wdXQvc2VydmVyNS1mYW4uY3J0LmRlcjogc2VydmVyNS5rZXkKLQkkKE9QRU5TU0wpIHJlcSAteDUwOSAtbmV3IC1zdWJqICIvQz1VSy9PPU1iZWQgVExTL0NOPU1iZWQgVExTIEZBTiIgLXNldF9zZXJpYWwgNzcgLWNvbmZpZyAkKHRlc3RfY2FfY29uZmlnX2ZpbGUpIC1leHRlbnNpb25zIGZhbl9jZXJ0IC1kYXlzIDM2NTAgLXNoYTI1NiAta2V5IHNlcnZlcjUua2V5IC1vdXRmb3JtIGRlciAtb3V0ICRACi0KLXNlcnZlcjUtdHJpY2t5LWlwLXNhbi5jcnQuZGVyOiBzZXJ2ZXI1LmtleQotCSQoT1BFTlNTTCkgcmVxIC14NTA5IC1uZXcgLXN1YmogIi9DPVVLL089TWJlZCBUTFMvQ049TWJlZCBUTFMgVHJpY2t5IElQIFNBTiIgLXNldF9zZXJpYWwgNzcgLWNvbmZpZyAkKHRlc3RfY2FfY29uZmlnX2ZpbGUpIC1leHRlbnNpb25zIHRyaWNreV9pcF9zYW4gLWRheXMgMzY1MCAtc2hhMjU2IC1rZXkgc2VydmVyNS5rZXkgLW91dGZvcm0gZGVyIC1vdXQgJEAKLQotYWxsX2ZpbmFsICs9IHNlcnZlcjUtdHJpY2t5LWlwLXNhbi5jcnQuZGVyCi0KLSMgbWFsZm9ybWVkIElQIGxlbmd0aAotc2VydmVyNS10cmlja3ktaXAtc2FuLW1hbGZvcm1lZC1sZW4uY3J0LmRlcjogc2VydmVyNS10cmlja3ktaXAtc2FuLmNydC5kZXIKLQloZXhkdW1wIC12ZSAnMS8xICIlLjJYIicgJDwgfCBzZWQgInMvODcwNDYxNjI2MzY0ODcxMDYxNjIvODcwNTYxNjI2MzY0ODcxMDYxNjIvIiB8IHh4ZCAtciAtcCA+ICRACi0KLXBhcnNlX2lucHV0L3NlcnZlcjUtZGlyZWN0b3J5bmFtZS5jcnQuZGVyOiBzZXJ2ZXI1LmtleQotCSQoT1BFTlNTTCkgcmVxIC14NTA5IC1vdXRmb3JtIGRlciAtbmV3IC1zdWJqICIvQz1VSy9PPU1iZWQgVExTL0NOPU1iZWQgVExTIGRpcmVjdG9yeU5hbWUgU0FOIiAtc2V0X3NlcmlhbCA3NyAtY29uZmlnICQodGVzdF9jYV9jb25maWdfZmlsZSkgLWV4dGVuc2lvbnMgZGlyZWN0b3J5X25hbWVfc2FuIC1kYXlzIDM2NTAgLXNoYTI1NiAta2V5IHNlcnZlcjUua2V5IC1vdXQgJEAKLQotcGFyc2VfaW5wdXQvc2VydmVyNS10d28tZGlyZWN0b3J5bmFtZXMuY3J0LmRlcjogc2VydmVyNS5rZXkKLQkkKE9QRU5TU0wpIHJlcSAteDUwOSAtb3V0Zm9ybSBkZXIgLW5ldyAtc3ViaiAiL0M9VUsvTz1NYmVkIFRMUy9DTj1NYmVkIFRMUyBkaXJlY3RvcnlOYW1lIFNBTiIgLXNldF9zZXJpYWwgNzcgLWNvbmZpZyAkKHRlc3RfY2FfY29uZmlnX2ZpbGUpIC1leHRlbnNpb25zIHR3b19kaXJlY3RvcnluYW1lcyAtZGF5cyAzNjUwIC1zaGEyNTYgLWtleSBzZXJ2ZXI1LmtleSAtb3V0ICRACi0KLXNlcnZlcjUtZGVyMC5jcnQ6IHNlcnZlcjUuY3J0LmRlcgotCWNwICQ8ICRACi1zZXJ2ZXI1LWRlcjFhLmNydDogc2VydmVyNS5jcnQuZGVyCi0JY3AgJDwgJEAKLQllY2hvICcwMCcgfCB4eGQgLXIgLXAgfCBkZCBvZj0kQCBicz0xIHNlZWs9JCQod2MgLWMgPCQ8KSBjb252PW5vdHJ1bmMKLXNlcnZlcjUtZGVyMWIuY3J0OiBzZXJ2ZXI1LmNydC5kZXIKLQljcCAkPCAkQAotCWVjaG8gJ2MxJyB8IHh4ZCAtciAtcCB8IGRkIG9mPSRAIGJzPTEgc2Vlaz0kJCh3YyAtYyA8JDwpIGNvbnY9bm90cnVuYwotc2VydmVyNS1kZXIyLmNydDogc2VydmVyNS5jcnQuZGVyCi0JY3AgJDwgJEAKLQllY2hvICdiOTBhJyB8IHh4ZCAtciAtcCB8IGRkIG9mPSRAIGJzPTEgc2Vlaz0kJCh3YyAtYyA8JDwpIGNvbnY9bm90cnVuYwotc2VydmVyNS1kZXI0LmNydDogc2VydmVyNS5jcnQuZGVyCi0JY3AgJDwgJEAKLQllY2hvICdhNzEwOTQ1ZicgfCB4eGQgLXIgLXAgfCBkZCBvZj0kQCBicz0xIHNlZWs9JCQod2MgLWMgPCQ8KSBjb252PW5vdHJ1bmMKLXNlcnZlcjUtZGVyOC5jcnQ6IHNlcnZlcjUuY3J0LmRlcgotCWNwICQ8ICRACi0JZWNobyAnYTRhN2ZmMjcyNjdhYWEwZicgfCB4eGQgLXIgLXAgfCBkZCBvZj0kQCBicz0xIHNlZWs9JCQod2MgLWMgPCQ8KSBjb252PW5vdHJ1bmMKLXNlcnZlcjUtZGVyOS5jcnQ6IHNlcnZlcjUuY3J0LmRlcgotCWNwICQ8ICRACi0JZWNobyAnY2ZmODMwMzM3NmZmYTQ3YTI5JyB8IHh4ZCAtciAtcCB8IGRkIG9mPSRAIGJzPTEgc2Vlaz0kJCh3YyAtYyA8JDwpIGNvbnY9bm90cnVuYwotYWxsX2ZpbmFsICs9IHNlcnZlcjUtZGVyMC5jcnQgc2VydmVyNS1kZXIxYi5jcnQgc2VydmVyNS1kZXI0LmNydCBcCi0JCQkgc2VydmVyNS1kZXI5LmNydCBzZXJ2ZXI1LWRlcjFhLmNydCBzZXJ2ZXI1LWRlcjIuY3J0IFwKLQkJCSBzZXJ2ZXI1LWRlcjguY3J0Ci0KLSMgZGlyZWN0b3J5bmFtZSBzZXF1ZW5jZSB0YWcgbWFsZm9ybWVkCi1wYXJzZV9pbnB1dC9zZXJ2ZXI1LWRpcmVjdG9yeW5hbWUtc2VxLW1hbGZvcm1lZC5jcnQuZGVyOiBwYXJzZV9pbnB1dC9zZXJ2ZXI1LXR3by1kaXJlY3RvcnluYW1lcy5jcnQuZGVyCi0JaGV4ZHVtcCAtdmUgJzEvMSAiJS4yWCInICQ8IHwgc2VkICJzLzYyQTQ0NzMwNDUzMTBCLzYyQTQ0NzMxNDUzMTBCLyIgfCB4eGQgLXIgLXAgPiAkQAotCi0jIFNlY29uZCBkaXJlY3RvcnluYW1lIE9JRCBsZW5ndGggbWFsZm9ybWVkIDAzIC0+IDE1Ci1wYXJzZV9pbnB1dC9zZXJ2ZXI1LXNlY29uZC1kaXJlY3RvcnluYW1lLW9pZC1tYWxmb3JtZWQuY3J0LmRlcjogcGFyc2VfaW5wdXQvc2VydmVyNS10d28tZGlyZWN0b3J5bmFtZXMuY3J0LmRlcgotCWhleGR1bXAgLXZlICcxLzEgIiUuMlgiJyAkPCB8IHNlZCAicy8wMzU1MDQwQTBDMEE0RDQxNEM0NjRGNTI0RDVGNEQ0NS8xNTU1MDQwQTBDMEE0RDQxNEM0NjRGNTI0RDVGNEQ0NS8iIHwgeHhkIC1yIC1wID4gJEAKLQotcGFyc2VfaW5wdXQvcnNhX3NpbmdsZV9zYW5fdXJpLmNydC5kZXIgcnNhX3NpbmdsZV9zYW5fdXJpLmNydC5kZXI6IHJzYV9zaW5nbGVfc2FuX3VyaS5rZXkKLQkkKE9QRU5TU0wpIHJlcSAteDUwOSAtb3V0Zm9ybSBkZXIgLW5vZGVzIC1kYXlzIDczMDAgLW5ld2tleSByc2E6MjA0OCAta2V5ICQ8IC1vdXQgJEAgLWFkZGV4dCAic3ViamVjdEFsdE5hbWUgPSBVUkk6dXJuOmV4YW1wbGUuY29tOjVmZjQwZjc4LTkyMTAtNDk0Zi04MjA2LWMyYzA4MmYwNjA5YyIgLWV4dGVuc2lvbnMgJ3YzX3JlcScgLXN1YmogIi9DPVVLL089TWJlZCBUTFMvQ049TWJlZCBUTFMgVVJJIFNBTiIKLQotcGFyc2VfaW5wdXQvcnNhX211bHRpcGxlX3Nhbl91cmkuY3J0LmRlcjogcnNhX211bHRpcGxlX3Nhbl91cmkua2V5Ci0JJChPUEVOU1NMKSByZXEgLXg1MDkgLW91dGZvcm0gZGVyIC1ub2RlcyAtZGF5cyA3MzAwIC1uZXdrZXkgcnNhOjIwNDggLWtleSAkPCAtb3V0ICRAIC1hZGRleHQgInN1YmplY3RBbHROYW1lID0gVVJJOnVybjpleGFtcGxlLmNvbTo1ZmY0MGY3OC05MjEwLTQ5NGYtODIwNi1jMmMwODJmMDYwOWMsIFVSSTp1cm46ZXhhbXBsZS5jb206NWZmNDBmNzgtOTIxMC00OTRmLTgyMDYtYWJjZGUxMjM0NTY3IiAtZXh0ZW5zaW9ucyAndjNfcmVxJyAtc3ViaiAiL0M9VUsvTz1NYmVkIFRMUy9DTj1NYmVkIFRMUyBVUkkgU0FOIgotCi10ZXN0LWludC1jYTMtYmFkc2lnbi5jcnQ6IHRlc3QtaW50LWNhMy5jcnQKLQl7IGhlYWQgLW4tMiAkPDsgdGFpbCAtbi0yICQ8IHwgc2VkIC1lICcxcy8wXCg9KlwpJCQvX1wxLycgLWUgJzFzL1teXz1dXCg9KlwpJCQvMFwxLycgLWUgJzFzL18vMS8nOyB9ID4gJEAKLWFsbF9maW5hbCArPSB0ZXN0LWludC1jYTMtYmFkc2lnbi5jcnQKLQotIyBzZXJ2ZXI5KgotCi1zZXJ2ZXI5LmNzcjogc2VydmVyOS5rZXkKLQkkKE9QRU5TU0wpIHJlcSAtbmV3IC1zdWJqICIvQz1OTC9PPVBvbGFyU1NML0NOPWxvY2FsaG9zdCIgXAotCQkJCQkta2V5ICQ8IC1vdXQgJEAKLXBhcnNlX2lucHV0L3NlcnZlcjkuY3J0IHNlcnZlcjkuY3J0OiBzZXJ2ZXI5LXNoYTEuY3J0Ci0JY3AgJDwgJEAKLWFsbF9maW5hbCArPSBzZXJ2ZXI5LmNydAotYWxsX2ludGVybWVkaWF0ZSArPSBzZXJ2ZXI5LmNzciBzZXJ2ZXI5LXNoYTEuY3J0Ci0KLXNlcnZlcjktJS5jcnQ6IHNlcnZlcjkuY3NyICQodGVzdF9jYV9jcnQpICQodGVzdF9jYV9rZXlfZmlsZV9yc2EpCi0JJChPUEVOU1NMKSB4NTA5IC1yZXEgLWV4dGZpbGUgJChjbGlfY3J0X2V4dGVuc2lvbnNfZmlsZSkgLWV4dGVuc2lvbnMgY2xpLXJzYSBcCi0JCS1wYXNzaW4gInBhc3M6JCh0ZXN0X2NhX3B3ZF9yc2EpIiAtQ0EgJCh0ZXN0X2NhX2NydCkgLUNBa2V5ICQodGVzdF9jYV9rZXlfZmlsZV9yc2EpIFwKLQkJLXNldF9zZXJpYWwgJChTRVJWRVI5X0NSVF9TRVJJQUwpIC1kYXlzIDM2NTMgXAotCQktc2lnb3B0IHJzYV9wYWRkaW5nX21vZGU6cHNzIC1zaWdvcHQgcnNhX3Bzc19zYWx0bGVuOm1heCBcCi0JCS1zaWdvcHQgcnNhX21nZjFfbWQ6JChARjpzZXJ2ZXI5LSUuY3J0PSUpIC0kKEBGOnNlcnZlcjktJS5jcnQ9JSkgXAotCQktaW4gJDwgLW91dCAkQAotc2VydmVyOS1zaGExLmNydDogU0VSVkVSOV9DUlRfU0VSSUFMPTIyCi1wYXJzZV9pbnB1dC9zZXJ2ZXI5LXNoYTIyNC5jcnQgc2VydmVyOS1zaGEyMjQuY3J0OiBTRVJWRVI5X0NSVF9TRVJJQUw9MjMKLXBhcnNlX2lucHV0L3NlcnZlcjktc2hhMjU2LmNydCBzZXJ2ZXI5LXNoYTI1Ni5jcnQ6IFNFUlZFUjlfQ1JUX1NFUklBTD0yNAotcGFyc2VfaW5wdXQvc2VydmVyOS1zaGEzODQuY3J0IHNlcnZlcjktc2hhMzg0LmNydDogU0VSVkVSOV9DUlRfU0VSSUFMPTI1Ci1wYXJzZV9pbnB1dC9zZXJ2ZXI5LXNoYTUxMi5jcnQgc2VydmVyOS1zaGE1MTIuY3J0OiBTRVJWRVI5X0NSVF9TRVJJQUw9MjYKLWFsbF9maW5hbCArPSBzZXJ2ZXI5LXNoYTIyNC5jcnQgc2VydmVyOS1zaGEyNTYuY3J0IHNlcnZlcjktc2hhMzg0LmNydCBzZXJ2ZXI5LXNoYTUxMi5jcnQKLQotc2VydmVyOS1kZWZhdWx0cy5jcnQ6IHNlcnZlcjkuY3NyICQodGVzdF9jYV9jcnQpICQodGVzdF9jYV9rZXlfZmlsZV9yc2EpCi0JJChPUEVOU1NMKSB4NTA5IC1yZXEgLWV4dGZpbGUgJChjbGlfY3J0X2V4dGVuc2lvbnNfZmlsZSkgLWV4dGVuc2lvbnMgY2xpLXJzYSBcCi0JCS1wYXNzaW4gInBhc3M6JCh0ZXN0X2NhX3B3ZF9yc2EpIiAtQ0EgJCh0ZXN0X2NhX2NydCkgLUNBa2V5ICQodGVzdF9jYV9rZXlfZmlsZV9yc2EpIFwKLQkJLXNldF9zZXJpYWwgNzIgLWRheXMgMzY1MyBcCi0JCS1zaWdvcHQgcnNhX3BhZGRpbmdfbW9kZTpwc3MgLXNpZ29wdCByc2FfcHNzX3NhbHRsZW46bWF4IC1zaGExIFwKLQkJLWluICQ8IC1vdXQgJEAKLWFsbF9maW5hbCArPSBzZXJ2ZXI5LWRlZmF1bHRzLmNydAotCi1zZXJ2ZXI5LWJhZHNpZ24uY3J0OiBzZXJ2ZXI5LmNydAotCXsgaGVhZCAtbi0yICQ8OyB0YWlsIC1uLTIgJDwgfCBzZWQgLWUgJzFzLzBcKD0qXCkkJC9fXDEvJyAtZSAnMXMvW15fPV1cKD0qXCkkJC8wXDEvJyAtZSAnMXMvXy8xLyc7IH0gPiAkQAotYWxsX2ZpbmFsICs9IHNlcnZlcjktYmFkc2lnbi5jcnQKLQotc2VydmVyOS13aXRoLWNhLmNydDogc2VydmVyOS5jcnQgJCh0ZXN0X2NhX2NydCkKLQljYXQgJF4gPiAkQAotYWxsX2ZpbmFsICs9IHNlcnZlcjktd2l0aC1jYS5jcnQKLQotc2VydmVyOS1iYWQtbWdmaGFzaC5jcnQ6IHNlcnZlcjkuY3NyICQodGVzdF9jYV9jcnQpICQodGVzdF9jYV9rZXlfZmlsZV9yc2EpCi0JJChPUEVOU1NMKSB4NTA5IC1yZXEgLWV4dGZpbGUgJChjbGlfY3J0X2V4dGVuc2lvbnNfZmlsZSkgLWV4dGVuc2lvbnMgY2xpLXJzYSBcCi0JCS1wYXNzaW4gInBhc3M6JCh0ZXN0X2NhX3B3ZF9yc2EpIiAtQ0EgJCh0ZXN0X2NhX2NydCkgLUNBa2V5ICQodGVzdF9jYV9rZXlfZmlsZV9yc2EpIFwKLQkJLXNldF9zZXJpYWwgMjQgLWRheXMgMzY1MyBcCi0JCS1zaWdvcHQgcnNhX3BhZGRpbmdfbW9kZTpwc3MgLXNpZ29wdCByc2FfcHNzX3NhbHRsZW46bWF4IFwKLQkJLXNpZ29wdCByc2FfbWdmMV9tZDpzaGEyMjQgLXNoYTI1NiBcCi0JCS1pbiAkPCAtb3V0ICRACi1hbGxfZmluYWwgKz0gc2VydmVyOS1iYWQtbWdmaGFzaC5jcnQKLQotc2VydmVyOS1iYWQtc2FsdGxlbi5jcnQ6IHNlcnZlcjkuY3NyICQodGVzdF9jYV9jcnQpICQodGVzdF9jYV9rZXlfZmlsZV9yc2EpIFwKLQkJCSBvcGVuc3NsY25mL3NlcnZlcjkuY3J0LnYzX2V4dCBcCi0JCQkgLi4vc2NyaXB0cy9nZW5lcmF0ZV9zZXJ2ZXI5X2JhZF9zYWx0bGVuLnB5Ci0JLi4vc2NyaXB0cy9nZW5lcmF0ZV9zZXJ2ZXI5X2JhZF9zYWx0bGVuLnB5IC0tY2EtbmFtZSB0ZXN0LWNhIFwKLQkJLS1jYS1wYXNzd29yZCAkKHRlc3RfY2FfcHdkX3JzYSkgLS1jc3Igc2VydmVyOS5jc3IgXAotCQktLW9wZW5zc2wtZXh0ZmlsZSBvcGVuc3NsY25mL3NlcnZlcjkuY3J0LnYzX2V4dCBcCi0JCS0tYW5vdW5jZV9zYWx0bGVuIDB4ZGUgLS1hY3R1YWxfc2FsdGxlbiAweDIwIFwKLQkJLS1vdXRwdXQgJEAKLWFsbF9maW5hbCArPSBzZXJ2ZXI5LWJhZC1zYWx0bGVuLmNydAotCi0jIHNlcnZlcjEwKgotCi1zZXJ2ZXIxMC5jcnQ6IHNlcnZlcjEwLmtleSB0ZXN0LWludC1jYTMuY3J0IHRlc3QtaW50LWNhMy5rZXkKLQkkKE1CRURUTFNfQ0VSVF9XUklURSkgc3ViamVjdF9rZXk9JDwgc3ViamVjdF9uYW1lPSJDTj1sb2NhbGhvc3QiIHNlcmlhbD03NSBcCi0JCWlzc3Vlcl9jcnQ9dGVzdC1pbnQtY2EzLmNydCBpc3N1ZXJfa2V5PXRlc3QtaW50LWNhMy5rZXkgXAotCQlzdWJqZWN0X2lkZW50aWZpZXI9MCBhdXRob3JpdHlfaWRlbnRpZmllcj0wIFwKLQkJbm90X2JlZm9yZT0yMDE5MDIxMDE0NDQwNiBub3RfYWZ0ZXI9MjAyOTAyMTAxNDQ0MDYgXAotCQltZD1TSEEyNTYgdmVyc2lvbj0zIG91dHB1dF9maWxlPSRACi1hbGxfZmluYWwgKz0gc2VydmVyMTAuY3J0Ci1zZXJ2ZXIxMC1iYWRzaWduLmNydDogc2VydmVyMTAuY3J0Ci0JeyBoZWFkIC1uLTIgJDw7IHRhaWwgLW4tMiAkPCB8IHNlZCAtZSAnMXMvMFwoPSpcKSQkL19cMS8nIC1lICcxcy9bXl89XVwoPSpcKSQkLzBcMS8nIC1lICcxcy9fLzEvJzsgfSA+ICRACi1hbGxfZmluYWwgKz0gc2VydmVyMTAtYmFkc2lnbi5jcnQKLXNlcnZlcjEwLWJzX2ludDMucGVtOiBzZXJ2ZXIxMC1iYWRzaWduLmNydCB0ZXN0LWludC1jYTMuY3J0Ci0JY2F0IHNlcnZlcjEwLWJhZHNpZ24uY3J0IHRlc3QtaW50LWNhMy5jcnQgPiAkQAotYWxsX2ZpbmFsICs9IHNlcnZlcjEwLWJzX2ludDMucGVtCi1zZXJ2ZXIxMF9pbnQzLWJzLnBlbTogc2VydmVyMTAuY3J0IHRlc3QtaW50LWNhMy1iYWRzaWduLmNydAotCWNhdCBzZXJ2ZXIxMC5jcnQgdGVzdC1pbnQtY2EzLWJhZHNpZ24uY3J0ID4gJEAKLWFsbF9maW5hbCArPSBzZXJ2ZXIxMF9pbnQzLWJzLnBlbQotc2VydmVyMTBfaW50M19pbnQtY2EyLmNydDogc2VydmVyMTAuY3J0IHRlc3QtaW50LWNhMy5jcnQgJCh0ZXN0X2NhX2ludF9lYykKLQljYXQgJF4gPiAkQAotYWxsX2ZpbmFsICs9IHNlcnZlcjEwX2ludDNfaW50LWNhMi5jcnQKLXNlcnZlcjEwX2ludDNfaW50LWNhMl9jYS5jcnQ6IHNlcnZlcjEwLmNydCB0ZXN0LWludC1jYTMuY3J0ICQodGVzdF9jYV9pbnRfZWMpICQodGVzdF9jYV9jcnQpCi0JY2F0ICReID4gJEAKLWFsbF9maW5hbCArPSBzZXJ2ZXIxMF9pbnQzX2ludC1jYTJfY2EuY3J0Ci1zZXJ2ZXIxMF9pbnQzX3NwdXJpb3VzX2ludC1jYTIuY3J0OiBzZXJ2ZXIxMC5jcnQgdGVzdC1pbnQtY2EzLmNydCAkKHRlc3RfY2FfaW50X3JzYTEpICQodGVzdF9jYV9pbnRfZWMpCi0JY2F0ICReID4gJEAKLWFsbF9maW5hbCArPSBzZXJ2ZXIxMF9pbnQzX3NwdXJpb3VzX2ludC1jYTIuY3J0Ci0KLXJzYV9wa2NzMV8yMDQ4X3B1YmxpYy5wZW06IHNlcnZlcjgua2V5Ci0JJChPUEVOU1NMKSAgcnNhIC1pbiAkPCAtb3V0Zm9ybSBQRU0gLVJTQVB1YmxpY0tleV9vdXQgLW91dCAkQAotYWxsX2ZpbmFsICs9IHJzYV9wa2NzMV8yMDQ4X3B1YmxpYy5wZW0KLQotcnNhX3BrY3MxXzIwNDhfcHVibGljLmRlcjogcnNhX3BrY3MxXzIwNDhfcHVibGljLnBlbQotCSQoT1BFTlNTTCkgcnNhIC1SU0FQdWJsaWNLZXlfaW4gLWluICQ8IC1vdXRmb3JtIERFUiAtUlNBUHVibGljS2V5X291dCAtb3V0ICRACi1hbGxfZmluYWwgKz0gcnNhX3BrY3MxXzIwNDhfcHVibGljLmRlcgotCi1yc2FfcGtjczhfMjA0OF9wdWJsaWMucGVtOiBzZXJ2ZXI4LmtleQotCSQoT1BFTlNTTCkgIHJzYSAtaW4gJDwgLW91dGZvcm0gUEVNIC1wdWJvdXQgLW91dCAkQAotYWxsX2ZpbmFsICs9IHJzYV9wa2NzOF8yMDQ4X3B1YmxpYy5wZW0KLQotcnNhX3BrY3M4XzIwNDhfcHVibGljLmRlcjogcnNhX3BrY3M4XzIwNDhfcHVibGljLnBlbQotCSQoT1BFTlNTTCkgcnNhIC1wdWJpbiAtaW4gJDwgLW91dGZvcm0gREVSIC1wdWJvdXQgLW91dCAkQAotYWxsX2ZpbmFsICs9IHJzYV9wa2NzOF8yMDQ4X3B1YmxpYy5kZXIKLQotIyBHZW5lcmF0ZSBjcmxfY2F0XyoucGVtCi0jIC0gY3J0X2NhdF8qLnBlbTogKDErMikgY29uY2F0ZW5hdGlvbnMgaW4gdmFyaW91cyBvcmRlcnM6Ci0jICAgICBlYyA9IGNybC1lYy1zaGEyNTYucGVtLCBlY2Z1dCA9IGNybC1mdXR1cmUucGVtCi0jICAgICByc2EgPSBjcmwucGVtLCByc2FiYWRwZW0gPSBzYW1lIHdpdGggcGVtIGVycm9yLCByc2FleHAgPSBjcmxfZXhwaXJlZC5wZW0KLQotY3JsX2NhdF9lYy1yc2EucGVtOmNybC1lYy1zaGEyNTYucGVtIGNybC5wZW0KLQljYXQgJF4gPiAkQAotCi1jcmxfY2F0X3JzYS1lYy5wZW06Y3JsLnBlbSBjcmwtZWMtc2hhMjU2LnBlbQotCWNhdCAkXiA+ICRACi0KLWFsbF9maW5hbCArPSBjcmxfY2F0X2VjLXJzYS5wZW0gY3JsX2NhdF9yc2EtZWMucGVtCi0KLWF1dGhvcml0eUtleUlkX3N1YmplY3RLZXlJZC5jcnQuZGVyOgotCSQoT1BFTlNTTCkgcmVxIC14NTA5IC1ub2RlcyAtZGF5cyA3MzAwIC1rZXkgc2VydmVyMi5rZXkgLW91dGZvcm0gREVSIC1vdXQgJEAgLWNvbmZpZyBhdXRob3JpdHlLZXlJZF9zdWJqZWN0S2V5SWQuY29uZiAtZXh0ZW5zaW9ucyAndjNfcmVxJyAtc2V0X3NlcmlhbCA1OTM4Mjg0OTQzMDM3OTI0NDkxMzQ4OTg3NDkyMDgxNjgxMDg0MDM5OTE5NTEwMzQKLQotYXV0aG9yaXR5S2V5SWRfbm9fa2V5aWQuY3J0LmRlcjoKLQkkKE9QRU5TU0wpIHJlcSAteDUwOSAtbm9kZXMgLWRheXMgNzMwMCAta2V5IHNlcnZlcjIua2V5IC1vdXRmb3JtIERFUiAtb3V0ICRAIC1jb25maWcgYXV0aG9yaXR5S2V5SWRfc3ViamVjdEtleUlkLmNvbmYgLWV4dGVuc2lvbnMgJ3YzX3JlcV9hdXRob3JpdHlLZXlJZF9ub19rZXlpZCcgLXNldF9zZXJpYWwgNTkzODI4NDk0MzAzNzkyNDQ5MTM0ODk4NzQ5MjA4MTY4MTA4NDAzOTkxOTUxMDM0Ci0KLWF1dGhvcml0eUtleUlkX25vX2lzc3Vlci5jcnQuZGVyOgotCSQoT1BFTlNTTCkgcmVxIC14NTA5IC1ub2RlcyAtZGF5cyA3MzAwIC1rZXkgc2VydmVyMi5rZXkgLW91dGZvcm0gREVSIC1vdXQgJEAgLWNvbmZpZyBhdXRob3JpdHlLZXlJZF9zdWJqZWN0S2V5SWQuY29uZiAtZXh0ZW5zaW9ucyAndjNfcmVxX2F1dGhvcml0eUtleUlkX25vX2lzc3VlcicKLQotYXV0aG9yaXR5S2V5SWRfbm9fYXV0aG9yaXR5S2V5SWQuY3J0LmRlcjoKLQkkKE9QRU5TU0wpIHJlcSAteDUwOSAtbm9kZXMgLWRheXMgNzMwMCAta2V5IHNlcnZlcjIua2V5IC1vdXRmb3JtIERFUiAtb3V0ICRAIC1jb25maWcgYXV0aG9yaXR5S2V5SWRfc3ViamVjdEtleUlkLmNvbmYgLWV4dGVuc2lvbnMgJ3YzX3JlcV9ub19hdXRob3JpdHlLZXlJZCcKLQotYXV0aG9yaXR5S2V5SWRfc3ViamVjdEtleUlkX3RhZ19tYWxmb3JtZWQuY3J0LmRlcjogYXV0aG9yaXR5S2V5SWRfc3ViamVjdEtleUlkLmNydC5kZXIKLQloZXhkdW1wIC12ZSAnMS8xICIlLjJYIicgJDwgfCBzZWQgInMvMDQxNEE1MDVFODY0QjhEQ0RGNjAwRjUwMTI0RDYwQTg2NEFGNEQ4QjQzOTMvMDExNEE1MDVFODY0QjhEQ0RGNjAwRjUwMTI0RDYwQTg2NEFGNEQ4QjQzOTMvIiB8IHh4ZCAtciAtcCA+ICRACi0KLWF1dGhvcml0eUtleUlkX3N1YmplY3RLZXlJZF90YWdfbGVuX21hbGZvcm1lZC5jcnQuZGVyOiBhdXRob3JpdHlLZXlJZF9zdWJqZWN0S2V5SWQuY3J0LmRlcgotCWhleGR1bXAgLXZlICcxLzEgIiUuMlgiJyAkPCB8IHNlZCAicy8wNDE0QTUwNUU4NjRCOERDREY2MDBGNTAxMjRENjBBODY0QUY0RDhCNDM5My8wNDEzQTUwNUU4NjRCOERDREY2MDBGNTAxMjRENjBBODY0QUY0RDhCNDM5My8iIHwgeHhkIC1yIC1wID4gJEAKLQotYXV0aG9yaXR5S2V5SWRfc3ViamVjdEtleUlkX2xlbmd0aF9tYWxmb3JtZWQuY3J0LmRlcjogYXV0aG9yaXR5S2V5SWRfc3ViamVjdEtleUlkLmNydC5kZXIKLQloZXhkdW1wIC12ZSAnMS8xICIlLjJYIicgJDwgfCBzZWQgInMvMzA2RDgwMTRBNTA1RTg2NEI4REMvMzA2QzgwMTRBNTA1RTg2NEI4REMvIiB8IHh4ZCAtciAtcCA+ICRACi0KLWF1dGhvcml0eUtleUlkX3N1YmplY3RLZXlJZF9zZXF1ZW5jZV90YWdfbWFsZm9ybWVkLmNydC5kZXI6IGF1dGhvcml0eUtleUlkX3N1YmplY3RLZXlJZC5jcnQuZGVyCi0JaGV4ZHVtcCAtdmUgJzEvMSAiJS4yWCInICQ8IHwgc2VkICJzLzZGMzA2RDgwMTRBNTA1RTg2NEI4LzZGMDA2RDgwMTRBNTA1RTg2NEI4LyIgfCB4eGQgLXIgLXAgPiAkQAotCi1hdXRob3JpdHlLZXlJZF9zdWJqZWN0S2V5SWRfa2V5aWRfdGFnX21hbGZvcm1lZC5jcnQuZGVyOiBhdXRob3JpdHlLZXlJZF9zdWJqZWN0S2V5SWQuY3J0LmRlcgotCWhleGR1bXAgLXZlICcxLzEgIiUuMlgiJyAkPCB8IHNlZCAicy8zMDZEODAxNEE1MDVFODY0QjhEQy8zMDZEMDAxNEE1MDVFODY0QjhEQy8iIHwgeHhkIC1yIC1wID4gJEAKLQotYXV0aG9yaXR5S2V5SWRfc3ViamVjdEtleUlkX2tleWlkX3RhZ19sZW5fbWFsZm9ybWVkLmNydC5kZXI6IGF1dGhvcml0eUtleUlkX3N1YmplY3RLZXlJZC5jcnQuZGVyCi0JaGV4ZHVtcCAtdmUgJzEvMSAiJS4yWCInICQ8IHwgc2VkICJzLzMwNkQ4MDE0QTUwNUU4NjRCOERDLzMwNkQ4MEZGQTUwNUU4NjRCOERDLyIgfCB4eGQgLXIgLXAgPiAkQAotCi1hdXRob3JpdHlLZXlJZF9zdWJqZWN0S2V5SWRfaXNzdWVyX3RhZzFfbWFsZm9ybWVkLmNydC5kZXI6IGF1dGhvcml0eUtleUlkX3N1YmplY3RLZXlJZC5jcnQuZGVyCi0JaGV4ZHVtcCAtdmUgJzEvMSAiJS4yWCInICQ8IHwgc2VkICJzL0ExM0ZBNDNEMzAzQjMxMEIzMDA5LzAwM0ZBNDNEMzAzQjMxMEIzMDA5LyIgfCB4eGQgLXIgLXAgPiAkQAotCi1hdXRob3JpdHlLZXlJZF9zdWJqZWN0S2V5SWRfaXNzdWVyX3RhZzJfbWFsZm9ybWVkLmNydC5kZXI6IGF1dGhvcml0eUtleUlkX3N1YmplY3RLZXlJZC5jcnQuZGVyCi0JaGV4ZHVtcCAtdmUgJzEvMSAiJS4yWCInICQ8IHwgc2VkICJzL0E0M0QzMDNCMzEwQjMwMDkwNjAzLzAwM0QzMDNCMzEwQjMwMDkwNjAzLyIgfCB4eGQgLXIgLXAgPiAkQAotCi1hdXRob3JpdHlLZXlJZF9zdWJqZWN0S2V5SWRfc25fdGFnX21hbGZvcm1lZC5jcnQuZGVyOiBhdXRob3JpdHlLZXlJZF9zdWJqZWN0S2V5SWQuY3J0LmRlcgotCWhleGR1bXAgLXZlICcxLzEgIiUuMlgiJyAkPCB8IHNlZCAicy84MjE0NjgwNDMwQ0QwNzRERTYzRi84MTE0NjgwNDMwQ0QwNzRERTYzRi8iIHwgeHhkIC1yIC1wID4gJEAKLQotYXV0aG9yaXR5S2V5SWRfc3ViamVjdEtleUlkX3NuX2xlbl9tYWxmb3JtZWQuY3J0LmRlcjogYXV0aG9yaXR5S2V5SWRfc3ViamVjdEtleUlkLmNydC5kZXIKLQloZXhkdW1wIC12ZSAnMS8xICIlLjJYIicgJDwgfCBzZWQgInMvODIxNDY4MDQzMENEMDc0REU2M0YvODIxMzY4MDQzMENEMDc0REU2M0YvIiB8IHh4ZCAtciAtcCA+ICRACi0KLSMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSMjIyMgR2VuZXJhdGUgdmFyaW91cyBSU0Ega2V5cwotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotCi0jIyMgUGFzc3dvcmQgdXNlZCBmb3IgUEtDUzEtZW5jb2RlZCBlbmNyeXB0ZWQgUlNBIGtleXMKLWtleXNfcnNhX2Jhc2ljX3B3ZCA9IHRlc3RrZXkKLQotIyMjIFBhc3N3b3JkIHVzZWQgZm9yIFBLQ1M4LWVuY29kZWQgZW5jcnlwdGVkIFJTQSBrZXlzCi1rZXlzX3JzYV9wa2NzOF9wd2QgPSBQb2xhclNTTFRlc3QKLQotIyMjIEJhc2ljIHVuZW5jcnlwdGVkIFJTQSBrZXlzIGZyb20gd2hpY2gKLSMjIyBhbGwgb3RoZXIgZW5jcnlwdGVkIFJTQSBrZXlzIGFyZSBkZXJpdmVkLgota2V5c19yc2FfYmFzZSA9Ci0jIyMgVE9ETzogdGhlIGNvbW1hbmRzIHJlcXVpcmUgT3BlblNTTCAxLnggdG8gd29yayBhcyBkZXNpcmVkLiBXaXRoCi0jIyMgT3BlblNTTCAzLngsIHRoZXkgcHJvZHVjZSBwa2NzOCBmaWxlcy4KLXJzYV9wa2NzMV83NjhfY2xlYXIucGVtOgotCSQoT1BFTlNTTCkgZ2VucnNhIC1vdXQgJEAgNzY4Ci1rZXlzX3JzYV9iYXNlICs9IHJzYV9wa2NzMV83NjhfY2xlYXIucGVtCi1yc2FfcGtjczFfNzY5X2NsZWFyLnBlbToKLQkkKE9QRU5TU0wpIGdlbnJzYSAtb3V0ICRAIDc2OQota2V5c19yc2FfYmFzZSArPSByc2FfcGtjczFfNzY5X2NsZWFyLnBlbQotcnNhX3BrY3MxXzc3MF9jbGVhci5wZW06Ci0JJChPUEVOU1NMKSBnZW5yc2EgLW91dCAkQCA3NzAKLWtleXNfcnNhX2Jhc2UgKz0gcnNhX3BrY3MxXzc3MF9jbGVhci5wZW0KLXJzYV9wa2NzMV83NzZfY2xlYXIucGVtOgotCSQoT1BFTlNTTCkgZ2VucnNhIC1vdXQgJEAgNzc2Ci1rZXlzX3JzYV9iYXNlICs9IHJzYV9wa2NzMV83NzZfY2xlYXIucGVtCi1yc2FfcGtjczFfNzg0X2NsZWFyLnBlbToKLQkkKE9QRU5TU0wpIGdlbnJzYSAtb3V0ICRAIDc4NAota2V5c19yc2FfYmFzZSArPSByc2FfcGtjczFfNzg0X2NsZWFyLnBlbQotcnNhX3BrY3MxXzEwMjRfY2xlYXIucGVtOgotCSQoT1BFTlNTTCkgZ2VucnNhIC1vdXQgJEAgMTAyNAota2V5c19yc2FfYmFzZSArPSByc2FfcGtjczFfMTAyNF9jbGVhci5wZW0KLXJzYV9wa2NzMV8yMDQ4X2NsZWFyLnBlbToKLQkkKE9QRU5TU0wpIGdlbnJzYSAtb3V0ICRAIDIwNDgKLWtleXNfcnNhX2Jhc2UgKz0gcnNhX3BrY3MxXzIwNDhfY2xlYXIucGVtCi1yc2FfcGtjczFfNDA5Nl9jbGVhci5wZW06Ci0JJChPUEVOU1NMKSBnZW5yc2EgLW91dCAkQCA0MDk2Ci1rZXlzX3JzYV9iYXNlICs9IHJzYV9wa2NzMV80MDk2X2NsZWFyLnBlbQotCi1hbGxfZmluYWwgKz0gJChrZXlzX3JzYV9iYXNlKQotCi0jIyMgUEtDUzEtZW5jb2RlZCwgcGxhaW50ZXh0IFJTQSBrZXlzIGluIGRlcml2ZWQgZm9ybXMKLQotcnNhX3BrY3MxXyUuZGVyOiByc2FfcGtjczFfJS5wZW0KLQkkKE9QRU5TU0wpIHBrZXkgLWluZm9ybSBQRU0gLWluICQ8IC1vdXRmb3JtIERFUiAtb3V0ICRACi1hbGxfZmluYWwgKz0gJChrZXlzX3JzYV9iYXNlOi5wZW09LmRlcikKLQotIyMjCi0jIyMgUEtDUzEtZW5jb2RlZCwgZW5jcnlwdGVkIFJTQSBrZXlzCi0jIyMKLQotIyMjIDEwMjQtYml0Ci1yc2FfcGtjczFfMTAyNF9kZXMucGVtOiByc2FfcGtjczFfMTAyNF9jbGVhci5wZW0KLQkkKE9QRU5TU0wpIHJzYSAtZGVzIC1pbiAkPCAtb3V0ICRAIC1wYXNzb3V0ICJwYXNzOiQoa2V5c19yc2FfYmFzaWNfcHdkKSIKLWFsbF9maW5hbCArPSByc2FfcGtjczFfMTAyNF9kZXMucGVtCi1yc2FfcGtjczFfMTAyNF8zZGVzLnBlbTogcnNhX3BrY3MxXzEwMjRfY2xlYXIucGVtCi0JJChPUEVOU1NMKSByc2EgLWRlczMgLWluICQ8IC1vdXQgJEAgLXBhc3NvdXQgInBhc3M6JChrZXlzX3JzYV9iYXNpY19wd2QpIgotYWxsX2ZpbmFsICs9IHJzYV9wa2NzMV8xMDI0XzNkZXMucGVtCi1yc2FfcGtjczFfMTAyNF9hZXMxMjgucGVtOiByc2FfcGtjczFfMTAyNF9jbGVhci5wZW0KLQkkKE9QRU5TU0wpIHJzYSAtYWVzMTI4IC1pbiAkPCAtb3V0ICRAIC1wYXNzb3V0ICJwYXNzOiQoa2V5c19yc2FfYmFzaWNfcHdkKSIKLWFsbF9maW5hbCArPSByc2FfcGtjczFfMTAyNF9hZXMxMjgucGVtCi1yc2FfcGtjczFfMTAyNF9hZXMxOTIucGVtOiByc2FfcGtjczFfMTAyNF9jbGVhci5wZW0KLQkkKE9QRU5TU0wpIHJzYSAtYWVzMTkyIC1pbiAkPCAtb3V0ICRAIC1wYXNzb3V0ICJwYXNzOiQoa2V5c19yc2FfYmFzaWNfcHdkKSIKLWFsbF9maW5hbCArPSByc2FfcGtjczFfMTAyNF9hZXMxOTIucGVtCi1yc2FfcGtjczFfMTAyNF9hZXMyNTYucGVtOiByc2FfcGtjczFfMTAyNF9jbGVhci5wZW0KLQkkKE9QRU5TU0wpIHJzYSAtYWVzMjU2IC1pbiAkPCAtb3V0ICRAIC1wYXNzb3V0ICJwYXNzOiQoa2V5c19yc2FfYmFzaWNfcHdkKSIKLWFsbF9maW5hbCArPSByc2FfcGtjczFfMTAyNF9hZXMyNTYucGVtCi1rZXlzX3JzYV9lbmNfYmFzaWNfMTAyNDogcnNhX3BrY3MxXzEwMjRfZGVzLnBlbSByc2FfcGtjczFfMTAyNF8zZGVzLnBlbSByc2FfcGtjczFfMTAyNF9hZXMxMjgucGVtIHJzYV9wa2NzMV8xMDI0X2FlczE5Mi5wZW0gcnNhX3BrY3MxXzEwMjRfYWVzMjU2LnBlbQotCi0jIDIwNDgtYml0Ci1yc2FfcGtjczFfMjA0OF9kZXMucGVtOiByc2FfcGtjczFfMjA0OF9jbGVhci5wZW0KLQkkKE9QRU5TU0wpIHJzYSAtZGVzIC1pbiAkPCAtb3V0ICRAIC1wYXNzb3V0ICJwYXNzOiQoa2V5c19yc2FfYmFzaWNfcHdkKSIKLWFsbF9maW5hbCArPSByc2FfcGtjczFfMjA0OF9kZXMucGVtCi1yc2FfcGtjczFfMjA0OF8zZGVzLnBlbTogcnNhX3BrY3MxXzIwNDhfY2xlYXIucGVtCi0JJChPUEVOU1NMKSByc2EgLWRlczMgLWluICQ8IC1vdXQgJEAgLXBhc3NvdXQgInBhc3M6JChrZXlzX3JzYV9iYXNpY19wd2QpIgotYWxsX2ZpbmFsICs9IHJzYV9wa2NzMV8yMDQ4XzNkZXMucGVtCi1yc2FfcGtjczFfMjA0OF9hZXMxMjgucGVtOiByc2FfcGtjczFfMjA0OF9jbGVhci5wZW0KLQkkKE9QRU5TU0wpIHJzYSAtYWVzMTI4IC1pbiAkPCAtb3V0ICRAIC1wYXNzb3V0ICJwYXNzOiQoa2V5c19yc2FfYmFzaWNfcHdkKSIKLWFsbF9maW5hbCArPSByc2FfcGtjczFfMjA0OF9hZXMxMjgucGVtCi1yc2FfcGtjczFfMjA0OF9hZXMxOTIucGVtOiByc2FfcGtjczFfMjA0OF9jbGVhci5wZW0KLQkkKE9QRU5TU0wpIHJzYSAtYWVzMTkyIC1pbiAkPCAtb3V0ICRAIC1wYXNzb3V0ICJwYXNzOiQoa2V5c19yc2FfYmFzaWNfcHdkKSIKLWFsbF9maW5hbCArPSByc2FfcGtjczFfMjA0OF9hZXMxOTIucGVtCi1yc2FfcGtjczFfMjA0OF9hZXMyNTYucGVtOiByc2FfcGtjczFfMjA0OF9jbGVhci5wZW0KLQkkKE9QRU5TU0wpIHJzYSAtYWVzMjU2IC1pbiAkPCAtb3V0ICRAIC1wYXNzb3V0ICJwYXNzOiQoa2V5c19yc2FfYmFzaWNfcHdkKSIKLWFsbF9maW5hbCArPSByc2FfcGtjczFfMjA0OF9hZXMyNTYucGVtCi1rZXlzX3JzYV9lbmNfYmFzaWNfMjA0ODogcnNhX3BrY3MxXzIwNDhfZGVzLnBlbSByc2FfcGtjczFfMjA0OF8zZGVzLnBlbSByc2FfcGtjczFfMjA0OF9hZXMxMjgucGVtIHJzYV9wa2NzMV8yMDQ4X2FlczE5Mi5wZW0gcnNhX3BrY3MxXzIwNDhfYWVzMjU2LnBlbQotCi0jIDQwOTYtYml0Ci1yc2FfcGtjczFfNDA5Nl9kZXMucGVtOiByc2FfcGtjczFfNDA5Nl9jbGVhci5wZW0KLQkkKE9QRU5TU0wpIHJzYSAtZGVzIC1pbiAkPCAtb3V0ICRAIC1wYXNzb3V0ICJwYXNzOiQoa2V5c19yc2FfYmFzaWNfcHdkKSIKLWFsbF9maW5hbCArPSByc2FfcGtjczFfNDA5Nl9kZXMucGVtCi1yc2FfcGtjczFfNDA5Nl8zZGVzLnBlbTogcnNhX3BrY3MxXzQwOTZfY2xlYXIucGVtCi0JJChPUEVOU1NMKSByc2EgLWRlczMgLWluICQ8IC1vdXQgJEAgLXBhc3NvdXQgInBhc3M6JChrZXlzX3JzYV9iYXNpY19wd2QpIgotYWxsX2ZpbmFsICs9IHJzYV9wa2NzMV80MDk2XzNkZXMucGVtCi1yc2FfcGtjczFfNDA5Nl9hZXMxMjgucGVtOiByc2FfcGtjczFfNDA5Nl9jbGVhci5wZW0KLQkkKE9QRU5TU0wpIHJzYSAtYWVzMTI4IC1pbiAkPCAtb3V0ICRAIC1wYXNzb3V0ICJwYXNzOiQoa2V5c19yc2FfYmFzaWNfcHdkKSIKLWFsbF9maW5hbCArPSByc2FfcGtjczFfNDA5Nl9hZXMxMjgucGVtCi1yc2FfcGtjczFfNDA5Nl9hZXMxOTIucGVtOiByc2FfcGtjczFfNDA5Nl9jbGVhci5wZW0KLQkkKE9QRU5TU0wpIHJzYSAtYWVzMTkyIC1pbiAkPCAtb3V0ICRAIC1wYXNzb3V0ICJwYXNzOiQoa2V5c19yc2FfYmFzaWNfcHdkKSIKLWFsbF9maW5hbCArPSByc2FfcGtjczFfNDA5Nl9hZXMxOTIucGVtCi1yc2FfcGtjczFfNDA5Nl9hZXMyNTYucGVtOiByc2FfcGtjczFfNDA5Nl9jbGVhci5wZW0KLQkkKE9QRU5TU0wpIHJzYSAtYWVzMjU2IC1pbiAkPCAtb3V0ICRAIC1wYXNzb3V0ICJwYXNzOiQoa2V5c19yc2FfYmFzaWNfcHdkKSIKLWFsbF9maW5hbCArPSByc2FfcGtjczFfNDA5Nl9hZXMyNTYucGVtCi1rZXlzX3JzYV9lbmNfYmFzaWNfNDA5NjogcnNhX3BrY3MxXzQwOTZfZGVzLnBlbSByc2FfcGtjczFfNDA5Nl8zZGVzLnBlbSByc2FfcGtjczFfNDA5Nl9hZXMxMjgucGVtIHJzYV9wa2NzMV80MDk2X2FlczE5Mi5wZW0gcnNhX3BrY3MxXzQwOTZfYWVzMjU2LnBlbQotCi0jIyMKLSMjIyBQS0NTOC12MSBlbmNvZGVkLCBlbmNyeXB0ZWQgUlNBIGtleXMKLSMjIwotCi0jIyMgMTAyNC1iaXQKLXJzYV9wa2NzOF9wYmVfc2hhMV8xMDI0XzNkZXMuZGVyOiByc2FfcGtjczFfMTAyNF9jbGVhci5wZW0KLQkkKE9QRU5TU0wpIHBrY3M4IC1pbmZvcm0gUEVNIC1pbiAkPCAtb3V0Zm9ybSBERVIgLW91dCAkQCAtcGFzc291dCAicGFzczokKGtleXNfcnNhX3BrY3M4X3B3ZCkiIC10b3BrOCAtdjEgUEJFLVNIQTEtM0RFUwotYWxsX2ZpbmFsICs9IHJzYV9wa2NzOF9wYmVfc2hhMV8xMDI0XzNkZXMuZGVyCi1yc2FfcGtjczhfcGJlX3NoYTFfMTAyNF8zZGVzLnBlbTogcnNhX3BrY3MxXzEwMjRfY2xlYXIucGVtCi0JJChPUEVOU1NMKSBwa2NzOCAtaW5mb3JtIFBFTSAtaW4gJDwgLW91dGZvcm0gUEVNIC1vdXQgJEAgLXBhc3NvdXQgInBhc3M6JChrZXlzX3JzYV9wa2NzOF9wd2QpIiAtdG9wazggLXYxIFBCRS1TSEExLTNERVMKLWFsbF9maW5hbCArPSByc2FfcGtjczhfcGJlX3NoYTFfMTAyNF8zZGVzLnBlbQota2V5c19yc2FfZW5jX3BrY3M4X3YxXzEwMjRfM2RlczogcnNhX3BrY3M4X3BiZV9zaGExXzEwMjRfM2Rlcy5wZW0gcnNhX3BrY3M4X3BiZV9zaGExXzEwMjRfM2Rlcy5kZXIKLQotcnNhX3BrY3M4X3BiZV9zaGExXzEwMjRfMmRlcy5kZXI6IHJzYV9wa2NzMV8xMDI0X2NsZWFyLnBlbQotCSQoT1BFTlNTTCkgcGtjczggLWluZm9ybSBQRU0gLWluICQ8IC1vdXRmb3JtIERFUiAtb3V0ICRAIC1wYXNzb3V0ICJwYXNzOiQoa2V5c19yc2FfcGtjczhfcHdkKSIgLXRvcGs4IC12MSBQQkUtU0hBMS0yREVTCi1hbGxfZmluYWwgKz0gcnNhX3BrY3M4X3BiZV9zaGExXzEwMjRfMmRlcy5kZXIKLXJzYV9wa2NzOF9wYmVfc2hhMV8xMDI0XzJkZXMucGVtOiByc2FfcGtjczFfMTAyNF9jbGVhci5wZW0KLQkkKE9QRU5TU0wpIHBrY3M4IC1pbmZvcm0gUEVNIC1pbiAkPCAtb3V0Zm9ybSBQRU0gLW91dCAkQCAtcGFzc291dCAicGFzczokKGtleXNfcnNhX3BrY3M4X3B3ZCkiIC10b3BrOCAtdjEgUEJFLVNIQTEtMkRFUwotYWxsX2ZpbmFsICs9IHJzYV9wa2NzOF9wYmVfc2hhMV8xMDI0XzJkZXMucGVtCi1rZXlzX3JzYV9lbmNfcGtjczhfdjFfMTAyNF8yZGVzOiByc2FfcGtjczhfcGJlX3NoYTFfMTAyNF8yZGVzLnBlbSByc2FfcGtjczhfcGJlX3NoYTFfMTAyNF8yZGVzLmRlcgotCi1rZXlzX3JzYV9lbmNfcGtjczhfdjFfMTAyNDoga2V5c19yc2FfZW5jX3BrY3M4X3YxXzEwMjRfM2RlcyBrZXlzX3JzYV9lbmNfcGtjczhfdjFfMTAyNF8yZGVzCi0KLSMjIyAyMDQ4LWJpdAotcnNhX3BrY3M4X3BiZV9zaGExXzIwNDhfM2Rlcy5kZXI6IHJzYV9wa2NzMV8yMDQ4X2NsZWFyLnBlbQotCSQoT1BFTlNTTCkgcGtjczggLWluZm9ybSBQRU0gLWluICQ8IC1vdXRmb3JtIERFUiAtb3V0ICRAIC1wYXNzb3V0ICJwYXNzOiQoa2V5c19yc2FfcGtjczhfcHdkKSIgLXRvcGs4IC12MSBQQkUtU0hBMS0zREVTCi1hbGxfZmluYWwgKz0gcnNhX3BrY3M4X3BiZV9zaGExXzIwNDhfM2Rlcy5kZXIKLXJzYV9wa2NzOF9wYmVfc2hhMV8yMDQ4XzNkZXMucGVtOiByc2FfcGtjczFfMjA0OF9jbGVhci5wZW0KLQkkKE9QRU5TU0wpIHBrY3M4IC1pbmZvcm0gUEVNIC1pbiAkPCAtb3V0Zm9ybSBQRU0gLW91dCAkQCAtcGFzc291dCAicGFzczokKGtleXNfcnNhX3BrY3M4X3B3ZCkiIC10b3BrOCAtdjEgUEJFLVNIQTEtM0RFUwotYWxsX2ZpbmFsICs9IHJzYV9wa2NzOF9wYmVfc2hhMV8yMDQ4XzNkZXMucGVtCi1rZXlzX3JzYV9lbmNfcGtjczhfdjFfMjA0OF8zZGVzOiByc2FfcGtjczhfcGJlX3NoYTFfMjA0OF8zZGVzLnBlbSByc2FfcGtjczhfcGJlX3NoYTFfMjA0OF8zZGVzLmRlcgotCi1yc2FfcGtjczhfcGJlX3NoYTFfMjA0OF8yZGVzLmRlcjogcnNhX3BrY3MxXzIwNDhfY2xlYXIucGVtCi0JJChPUEVOU1NMKSBwa2NzOCAtaW5mb3JtIFBFTSAtaW4gJDwgLW91dGZvcm0gREVSIC1vdXQgJEAgLXBhc3NvdXQgInBhc3M6JChrZXlzX3JzYV9wa2NzOF9wd2QpIiAtdG9wazggLXYxIFBCRS1TSEExLTJERVMKLWFsbF9maW5hbCArPSByc2FfcGtjczhfcGJlX3NoYTFfMjA0OF8yZGVzLmRlcgotcnNhX3BrY3M4X3BiZV9zaGExXzIwNDhfMmRlcy5wZW06IHJzYV9wa2NzMV8yMDQ4X2NsZWFyLnBlbQotCSQoT1BFTlNTTCkgcGtjczggLWluZm9ybSBQRU0gLWluICQ8IC1vdXRmb3JtIFBFTSAtb3V0ICRAIC1wYXNzb3V0ICJwYXNzOiQoa2V5c19yc2FfcGtjczhfcHdkKSIgLXRvcGs4IC12MSBQQkUtU0hBMS0yREVTCi1hbGxfZmluYWwgKz0gcnNhX3BrY3M4X3BiZV9zaGExXzIwNDhfMmRlcy5wZW0KLWtleXNfcnNhX2VuY19wa2NzOF92MV8yMDQ4XzJkZXM6IHJzYV9wa2NzOF9wYmVfc2hhMV8yMDQ4XzJkZXMucGVtIHJzYV9wa2NzOF9wYmVfc2hhMV8yMDQ4XzJkZXMuZGVyCi0KLWtleXNfcnNhX2VuY19wa2NzOF92MV8yMDQ4OiBrZXlzX3JzYV9lbmNfcGtjczhfdjFfMjA0OF8zZGVzIGtleXNfcnNhX2VuY19wa2NzOF92MV8yMDQ4XzJkZXMKLQotIyMjIDQwOTYtYml0Ci1yc2FfcGtjczhfcGJlX3NoYTFfNDA5Nl8zZGVzLmRlcjogcnNhX3BrY3MxXzQwOTZfY2xlYXIucGVtCi0JJChPUEVOU1NMKSBwa2NzOCAtaW5mb3JtIFBFTSAtaW4gJDwgLW91dGZvcm0gREVSIC1vdXQgJEAgLXBhc3NvdXQgInBhc3M6JChrZXlzX3JzYV9wa2NzOF9wd2QpIiAtdG9wazggLXYxIFBCRS1TSEExLTNERVMKLWFsbF9maW5hbCArPSByc2FfcGtjczhfcGJlX3NoYTFfNDA5Nl8zZGVzLmRlcgotcnNhX3BrY3M4X3BiZV9zaGExXzQwOTZfM2Rlcy5wZW06IHJzYV9wa2NzMV80MDk2X2NsZWFyLnBlbQotCSQoT1BFTlNTTCkgcGtjczggLWluZm9ybSBQRU0gLWluICQ8IC1vdXRmb3JtIFBFTSAtb3V0ICRAIC1wYXNzb3V0ICJwYXNzOiQoa2V5c19yc2FfcGtjczhfcHdkKSIgLXRvcGs4IC12MSBQQkUtU0hBMS0zREVTCi1hbGxfZmluYWwgKz0gcnNhX3BrY3M4X3BiZV9zaGExXzQwOTZfM2Rlcy5wZW0KLWtleXNfcnNhX2VuY19wa2NzOF92MV80MDk2XzNkZXM6IHJzYV9wa2NzOF9wYmVfc2hhMV80MDk2XzNkZXMucGVtIHJzYV9wa2NzOF9wYmVfc2hhMV80MDk2XzNkZXMuZGVyCi0KLXJzYV9wa2NzOF9wYmVfc2hhMV80MDk2XzJkZXMuZGVyOiByc2FfcGtjczFfNDA5Nl9jbGVhci5wZW0KLQkkKE9QRU5TU0wpIHBrY3M4IC1pbmZvcm0gUEVNIC1pbiAkPCAtb3V0Zm9ybSBERVIgLW91dCAkQCAtcGFzc291dCAicGFzczokKGtleXNfcnNhX3BrY3M4X3B3ZCkiIC10b3BrOCAtdjEgUEJFLVNIQTEtMkRFUwotYWxsX2ZpbmFsICs9IHJzYV9wa2NzOF9wYmVfc2hhMV80MDk2XzJkZXMuZGVyCi1yc2FfcGtjczhfcGJlX3NoYTFfNDA5Nl8yZGVzLnBlbTogcnNhX3BrY3MxXzQwOTZfY2xlYXIucGVtCi0JJChPUEVOU1NMKSBwa2NzOCAtaW5mb3JtIFBFTSAtaW4gJDwgLW91dGZvcm0gUEVNIC1vdXQgJEAgLXBhc3NvdXQgInBhc3M6JChrZXlzX3JzYV9wa2NzOF9wd2QpIiAtdG9wazggLXYxIFBCRS1TSEExLTJERVMKLWFsbF9maW5hbCArPSByc2FfcGtjczhfcGJlX3NoYTFfNDA5Nl8yZGVzLnBlbQota2V5c19yc2FfZW5jX3BrY3M4X3YxXzQwOTZfMmRlczogcnNhX3BrY3M4X3BiZV9zaGExXzQwOTZfMmRlcy5wZW0gcnNhX3BrY3M4X3BiZV9zaGExXzQwOTZfMmRlcy5kZXIKLQota2V5c19yc2FfZW5jX3BrY3M4X3YxXzQwOTY6IGtleXNfcnNhX2VuY19wa2NzOF92MV80MDk2XzNkZXMga2V5c19yc2FfZW5jX3BrY3M4X3YxXzQwOTZfMmRlcwotCi0jIyMKLSMjIyBQS0NTOC12MiBlbmNvZGVkLCBlbmNyeXB0ZWQgUlNBIGtleXMsIG5vIFBSRiBzcGVjaWZpZWQgKGRlZmF1bHQgZm9yIE9wZW5TU0wxLjA6IGhtYWNXaXRoU0hBMSkKLSMjIwotCi0jIyMgMTAyNC1iaXQKLXJzYV9wa2NzOF9wYmVzMl9wYmtkZjJfMTAyNF8zZGVzLmRlcjogcnNhX3BrY3MxXzEwMjRfY2xlYXIucGVtCi0JJChPUEVOU1NMKSBwa2NzOCAtdG9wazggLXYyIGRlczMgLWluZm9ybSBQRU0gLWluICQ8IC1vdXRmb3JtIERFUiAtb3V0ICRAIC1wYXNzb3V0ICJwYXNzOiQoa2V5c19yc2FfcGtjczhfcHdkKSIKLWFsbF9maW5hbCArPSByc2FfcGtjczhfcGJlczJfcGJrZGYyXzEwMjRfM2Rlcy5kZXIKLXJzYV9wa2NzOF9wYmVzMl9wYmtkZjJfMTAyNF8zZGVzLnBlbTogcnNhX3BrY3MxXzEwMjRfY2xlYXIucGVtCi0JJChPUEVOU1NMKSBwa2NzOCAgLXRvcGs4IC12MiBkZXMzIC1pbmZvcm0gUEVNIC1pbiAkPCAtb3V0Zm9ybSBQRU0gLW91dCAkQCAtcGFzc291dCAicGFzczokKGtleXNfcnNhX3BrY3M4X3B3ZCkiCi1hbGxfZmluYWwgKz0gcnNhX3BrY3M4X3BiZXMyX3Bia2RmMl8xMDI0XzNkZXMucGVtCi1rZXlzX3JzYV9lbmNfcGtjczhfdjJfMTAyNF8zZGVzOiByc2FfcGtjczhfcGJlczJfcGJrZGYyXzEwMjRfM2Rlcy5kZXIgcnNhX3BrY3M4X3BiZXMyX3Bia2RmMl8xMDI0XzNkZXMucGVtCi0KLXJzYV9wa2NzOF9wYmVzMl9wYmtkZjJfMTAyNF9kZXMuZGVyOiByc2FfcGtjczFfMTAyNF9jbGVhci5wZW0KLQkkKE9QRU5TU0wpIHBrY3M4IC10b3BrOCAtdjIgZGVzIC1pbmZvcm0gUEVNIC1pbiAkPCAtb3V0Zm9ybSBERVIgLW91dCAkQCAtcGFzc291dCAicGFzczokKGtleXNfcnNhX3BrY3M4X3B3ZCkiCi1hbGxfZmluYWwgKz0gcnNhX3BrY3M4X3BiZXMyX3Bia2RmMl8xMDI0X2Rlcy5kZXIKLXJzYV9wa2NzOF9wYmVzMl9wYmtkZjJfMTAyNF9kZXMucGVtOiByc2FfcGtjczFfMTAyNF9jbGVhci5wZW0KLQkkKE9QRU5TU0wpIHBrY3M4ICAtdG9wazggLXYyIGRlcyAtaW5mb3JtIFBFTSAtaW4gJDwgLW91dGZvcm0gUEVNIC1vdXQgJEAgLXBhc3NvdXQgInBhc3M6JChrZXlzX3JzYV9wa2NzOF9wd2QpIgotYWxsX2ZpbmFsICs9IHJzYV9wa2NzOF9wYmVzMl9wYmtkZjJfMTAyNF9kZXMucGVtCi1rZXlzX3JzYV9lbmNfcGtjczhfdjJfMTAyNF9kZXM6IHJzYV9wa2NzOF9wYmVzMl9wYmtkZjJfMTAyNF9kZXMuZGVyIHJzYV9wa2NzOF9wYmVzMl9wYmtkZjJfMTAyNF9kZXMucGVtCi0KLWtleXNfcnNhX2VuY19wa2NzOF92Ml8xMDI0OiBrZXlzX3JzYV9lbmNfcGtjczhfdjJfMTAyNF8zZGVzIGtleXNfcnNhX2VuY19wa2NzOF92Ml8xMDI0X2RlcwotCi0jIyMgMjA0OC1iaXQKLXJzYV9wa2NzOF9wYmVzMl9wYmtkZjJfMjA0OF8zZGVzLmRlcjogcnNhX3BrY3MxXzIwNDhfY2xlYXIucGVtCi0JJChPUEVOU1NMKSBwa2NzOCAtdG9wazggLXYyIGRlczMgLWluZm9ybSBQRU0gLWluICQ8IC1vdXRmb3JtIERFUiAtb3V0ICRAIC1wYXNzb3V0ICJwYXNzOiQoa2V5c19yc2FfcGtjczhfcHdkKSIKLWFsbF9maW5hbCArPSByc2FfcGtjczhfcGJlczJfcGJrZGYyXzIwNDhfM2Rlcy5kZXIKLXJzYV9wa2NzOF9wYmVzMl9wYmtkZjJfMjA0OF8zZGVzLnBlbTogcnNhX3BrY3MxXzIwNDhfY2xlYXIucGVtCi0JJChPUEVOU1NMKSBwa2NzOCAgLXRvcGs4IC12MiBkZXMzIC1pbmZvcm0gUEVNIC1pbiAkPCAtb3V0Zm9ybSBQRU0gLW91dCAkQCAtcGFzc291dCAicGFzczokKGtleXNfcnNhX3BrY3M4X3B3ZCkiCi1hbGxfZmluYWwgKz0gcnNhX3BrY3M4X3BiZXMyX3Bia2RmMl8yMDQ4XzNkZXMucGVtCi1rZXlzX3JzYV9lbmNfcGtjczhfdjJfMjA0OF8zZGVzOiByc2FfcGtjczhfcGJlczJfcGJrZGYyXzIwNDhfM2Rlcy5kZXIgcnNhX3BrY3M4X3BiZXMyX3Bia2RmMl8yMDQ4XzNkZXMucGVtCi0KLXJzYV9wa2NzOF9wYmVzMl9wYmtkZjJfMjA0OF9kZXMuZGVyOiByc2FfcGtjczFfMjA0OF9jbGVhci5wZW0KLQkkKE9QRU5TU0wpIHBrY3M4IC10b3BrOCAtdjIgZGVzIC1pbmZvcm0gUEVNIC1pbiAkPCAtb3V0Zm9ybSBERVIgLW91dCAkQCAtcGFzc291dCAicGFzczokKGtleXNfcnNhX3BrY3M4X3B3ZCkiCi1hbGxfZmluYWwgKz0gcnNhX3BrY3M4X3BiZXMyX3Bia2RmMl8yMDQ4X2Rlcy5kZXIKLXJzYV9wa2NzOF9wYmVzMl9wYmtkZjJfMjA0OF9kZXMucGVtOiByc2FfcGtjczFfMjA0OF9jbGVhci5wZW0KLQkkKE9QRU5TU0wpIHBrY3M4ICAtdG9wazggLXYyIGRlcyAtaW5mb3JtIFBFTSAtaW4gJDwgLW91dGZvcm0gUEVNIC1vdXQgJEAgLXBhc3NvdXQgInBhc3M6JChrZXlzX3JzYV9wa2NzOF9wd2QpIgotYWxsX2ZpbmFsICs9IHJzYV9wa2NzOF9wYmVzMl9wYmtkZjJfMjA0OF9kZXMucGVtCi1rZXlzX3JzYV9lbmNfcGtjczhfdjJfMjA0OF9kZXM6IHJzYV9wa2NzOF9wYmVzMl9wYmtkZjJfMjA0OF9kZXMuZGVyIHJzYV9wa2NzOF9wYmVzMl9wYmtkZjJfMjA0OF9kZXMucGVtCi0KLWtleXNfcnNhX2VuY19wa2NzOF92Ml8yMDQ4OiBrZXlzX3JzYV9lbmNfcGtjczhfdjJfMjA0OF8zZGVzIGtleXNfcnNhX2VuY19wa2NzOF92Ml8yMDQ4X2RlcwotCi0jIyMgNDA5Ni1iaXQKLXJzYV9wa2NzOF9wYmVzMl9wYmtkZjJfNDA5Nl8zZGVzLmRlcjogcnNhX3BrY3MxXzQwOTZfY2xlYXIucGVtCi0JJChPUEVOU1NMKSBwa2NzOCAtdG9wazggLXYyIGRlczMgLWluZm9ybSBQRU0gLWluICQ8IC1vdXRmb3JtIERFUiAtb3V0ICRAIC1wYXNzb3V0ICJwYXNzOiQoa2V5c19yc2FfcGtjczhfcHdkKSIKLWFsbF9maW5hbCArPSByc2FfcGtjczhfcGJlczJfcGJrZGYyXzQwOTZfM2Rlcy5kZXIKLXJzYV9wa2NzOF9wYmVzMl9wYmtkZjJfNDA5Nl8zZGVzLnBlbTogcnNhX3BrY3MxXzQwOTZfY2xlYXIucGVtCi0JJChPUEVOU1NMKSBwa2NzOCAgLXRvcGs4IC12MiBkZXMzIC1pbmZvcm0gUEVNIC1pbiAkPCAtb3V0Zm9ybSBQRU0gLW91dCAkQCAtcGFzc291dCAicGFzczokKGtleXNfcnNhX3BrY3M4X3B3ZCkiCi1hbGxfZmluYWwgKz0gcnNhX3BrY3M4X3BiZXMyX3Bia2RmMl80MDk2XzNkZXMucGVtCi1rZXlzX3JzYV9lbmNfcGtjczhfdjJfNDA5Nl8zZGVzOiByc2FfcGtjczhfcGJlczJfcGJrZGYyXzQwOTZfM2Rlcy5kZXIgcnNhX3BrY3M4X3BiZXMyX3Bia2RmMl80MDk2XzNkZXMucGVtCi0KLXJzYV9wa2NzOF9wYmVzMl9wYmtkZjJfNDA5Nl9kZXMuZGVyOiByc2FfcGtjczFfNDA5Nl9jbGVhci5wZW0KLQkkKE9QRU5TU0wpIHBrY3M4IC10b3BrOCAtdjIgZGVzIC1pbmZvcm0gUEVNIC1pbiAkPCAtb3V0Zm9ybSBERVIgLW91dCAkQCAtcGFzc291dCAicGFzczokKGtleXNfcnNhX3BrY3M4X3B3ZCkiCi1hbGxfZmluYWwgKz0gcnNhX3BrY3M4X3BiZXMyX3Bia2RmMl80MDk2X2Rlcy5kZXIKLXJzYV9wa2NzOF9wYmVzMl9wYmtkZjJfNDA5Nl9kZXMucGVtOiByc2FfcGtjczFfNDA5Nl9jbGVhci5wZW0KLQkkKE9QRU5TU0wpIHBrY3M4ICAtdG9wazggLXYyIGRlcyAtaW5mb3JtIFBFTSAtaW4gJDwgLW91dGZvcm0gUEVNIC1vdXQgJEAgLXBhc3NvdXQgInBhc3M6JChrZXlzX3JzYV9wa2NzOF9wd2QpIgotYWxsX2ZpbmFsICs9IHJzYV9wa2NzOF9wYmVzMl9wYmtkZjJfNDA5Nl9kZXMucGVtCi1rZXlzX3JzYV9lbmNfcGtjczhfdjJfNDA5Nl9kZXM6IHJzYV9wa2NzOF9wYmVzMl9wYmtkZjJfNDA5Nl9kZXMuZGVyIHJzYV9wa2NzOF9wYmVzMl9wYmtkZjJfNDA5Nl9kZXMucGVtCi0KLWtleXNfcnNhX2VuY19wa2NzOF92Ml80MDk2OiBrZXlzX3JzYV9lbmNfcGtjczhfdjJfNDA5Nl8zZGVzIGtleXNfcnNhX2VuY19wa2NzOF92Ml80MDk2X2RlcwotCi0jIyMKLSMjIyBQS0NTOC12MiBlbmNvZGVkLCBlbmNyeXB0ZWQgUlNBIGtleXMsIFBSRiBobWFjV2l0aFNIQTIyNAotIyMjCi0KLSMjIyAxMDI0LWJpdAotcnNhX3BrY3M4X3BiZXMyX3Bia2RmMl8xMDI0XzNkZXNfc2hhMjI0LmRlcjogcnNhX3BrY3MxXzEwMjRfY2xlYXIucGVtCi0JJChPUEVOU1NMKSBwa2NzOCAtdG9wazggLXYyIGRlczMgLXYycHJmIGhtYWNXaXRoU0hBMjI0IC1pbmZvcm0gUEVNIC1pbiAkPCAtb3V0Zm9ybSBERVIgLW91dCAkQCAtcGFzc291dCAicGFzczokKGtleXNfcnNhX3BrY3M4X3B3ZCkiCi1hbGxfZmluYWwgKz0gcnNhX3BrY3M4X3BiZXMyX3Bia2RmMl8xMDI0XzNkZXNfc2hhMjI0LmRlcgotcnNhX3BrY3M4X3BiZXMyX3Bia2RmMl8xMDI0XzNkZXNfc2hhMjI0LnBlbTogcnNhX3BrY3MxXzEwMjRfY2xlYXIucGVtCi0JJChPUEVOU1NMKSBwa2NzOCAgLXRvcGs4IC12MiBkZXMzIC12MnByZiBobWFjV2l0aFNIQTIyNCAtaW5mb3JtIFBFTSAtaW4gJDwgLW91dGZvcm0gUEVNIC1vdXQgJEAgLXBhc3NvdXQgInBhc3M6JChrZXlzX3JzYV9wa2NzOF9wd2QpIgotYWxsX2ZpbmFsICs9IHJzYV9wa2NzOF9wYmVzMl9wYmtkZjJfMTAyNF8zZGVzX3NoYTIyNC5wZW0KLWtleXNfcnNhX2VuY19wa2NzOF92Ml8xMDI0XzNkZXNfc2hhMjI0OiByc2FfcGtjczhfcGJlczJfcGJrZGYyXzEwMjRfM2Rlc19zaGEyMjQuZGVyIHJzYV9wa2NzOF9wYmVzMl9wYmtkZjJfMTAyNF8zZGVzX3NoYTIyNC5wZW0KLQotcnNhX3BrY3M4X3BiZXMyX3Bia2RmMl8xMDI0X2Rlc19zaGEyMjQuZGVyOiByc2FfcGtjczFfMTAyNF9jbGVhci5wZW0KLQkkKE9QRU5TU0wpIHBrY3M4IC10b3BrOCAtdjIgZGVzIC12MnByZiBobWFjV2l0aFNIQTIyNCAtaW5mb3JtIFBFTSAtaW4gJDwgLW91dGZvcm0gREVSIC1vdXQgJEAgLXBhc3NvdXQgInBhc3M6JChrZXlzX3JzYV9wa2NzOF9wd2QpIgotYWxsX2ZpbmFsICs9IHJzYV9wa2NzOF9wYmVzMl9wYmtkZjJfMTAyNF9kZXNfc2hhMjI0LmRlcgotcnNhX3BrY3M4X3BiZXMyX3Bia2RmMl8xMDI0X2Rlc19zaGEyMjQucGVtOiByc2FfcGtjczFfMTAyNF9jbGVhci5wZW0KLQkkKE9QRU5TU0wpIHBrY3M4ICAtdG9wazggLXYyIGRlcyAtdjJwcmYgaG1hY1dpdGhTSEEyMjQgLWluZm9ybSBQRU0gLWluICQ8IC1vdXRmb3JtIFBFTSAtb3V0ICRAIC1wYXNzb3V0ICJwYXNzOiQoa2V5c19yc2FfcGtjczhfcHdkKSIKLWFsbF9maW5hbCArPSByc2FfcGtjczhfcGJlczJfcGJrZGYyXzEwMjRfZGVzX3NoYTIyNC5wZW0KLWtleXNfcnNhX2VuY19wa2NzOF92Ml8xMDI0X2Rlc19zaGEyMjQ6IHJzYV9wa2NzOF9wYmVzMl9wYmtkZjJfMTAyNF9kZXNfc2hhMjI0LmRlciByc2FfcGtjczhfcGJlczJfcGJrZGYyXzEwMjRfZGVzX3NoYTIyNC5wZW0KLQota2V5c19yc2FfZW5jX3BrY3M4X3YyXzEwMjRfc2hhMjI0OiBrZXlzX3JzYV9lbmNfcGtjczhfdjJfMTAyNF8zZGVzX3NoYTIyNCBrZXlzX3JzYV9lbmNfcGtjczhfdjJfMTAyNF9kZXNfc2hhMjI0Ci0KLSMjIyAyMDQ4LWJpdAotcnNhX3BrY3M4X3BiZXMyX3Bia2RmMl8yMDQ4XzNkZXNfc2hhMjI0LmRlcjogcnNhX3BrY3MxXzIwNDhfY2xlYXIucGVtCi0JJChPUEVOU1NMKSBwa2NzOCAtdG9wazggLXYyIGRlczMgLXYycHJmIGhtYWNXaXRoU0hBMjI0IC1pbmZvcm0gUEVNIC1pbiAkPCAtb3V0Zm9ybSBERVIgLW91dCAkQCAtcGFzc291dCAicGFzczokKGtleXNfcnNhX3BrY3M4X3B3ZCkiCi1hbGxfZmluYWwgKz0gcnNhX3BrY3M4X3BiZXMyX3Bia2RmMl8yMDQ4XzNkZXNfc2hhMjI0LmRlcgotcnNhX3BrY3M4X3BiZXMyX3Bia2RmMl8yMDQ4XzNkZXNfc2hhMjI0LnBlbTogcnNhX3BrY3MxXzIwNDhfY2xlYXIucGVtCi0JJChPUEVOU1NMKSBwa2NzOCAgLXRvcGs4IC12MiBkZXMzIC12MnByZiBobWFjV2l0aFNIQTIyNCAtaW5mb3JtIFBFTSAtaW4gJDwgLW91dGZvcm0gUEVNIC1vdXQgJEAgLXBhc3NvdXQgInBhc3M6JChrZXlzX3JzYV9wa2NzOF9wd2QpIgotYWxsX2ZpbmFsICs9IHJzYV9wa2NzOF9wYmVzMl9wYmtkZjJfMjA0OF8zZGVzX3NoYTIyNC5wZW0KLWtleXNfcnNhX2VuY19wa2NzOF92Ml8yMDQ4XzNkZXNfc2hhMjI0OiByc2FfcGtjczhfcGJlczJfcGJrZGYyXzIwNDhfM2Rlc19zaGEyMjQuZGVyIHJzYV9wa2NzOF9wYmVzMl9wYmtkZjJfMjA0OF8zZGVzX3NoYTIyNC5wZW0KLQotcnNhX3BrY3M4X3BiZXMyX3Bia2RmMl8yMDQ4X2Rlc19zaGEyMjQuZGVyOiByc2FfcGtjczFfMjA0OF9jbGVhci5wZW0KLQkkKE9QRU5TU0wpIHBrY3M4IC10b3BrOCAtdjIgZGVzIC12MnByZiBobWFjV2l0aFNIQTIyNCAtaW5mb3JtIFBFTSAtaW4gJDwgLW91dGZvcm0gREVSIC1vdXQgJEAgLXBhc3NvdXQgInBhc3M6JChrZXlzX3JzYV9wa2NzOF9wd2QpIgotYWxsX2ZpbmFsICs9IHJzYV9wa2NzOF9wYmVzMl9wYmtkZjJfMjA0OF9kZXNfc2hhMjI0LmRlcgotcnNhX3BrY3M4X3BiZXMyX3Bia2RmMl8yMDQ4X2Rlc19zaGEyMjQucGVtOiByc2FfcGtjczFfMjA0OF9jbGVhci5wZW0KLQkkKE9QRU5TU0wpIHBrY3M4ICAtdG9wazggLXYyIGRlcyAtdjJwcmYgaG1hY1dpdGhTSEEyMjQgLWluZm9ybSBQRU0gLWluICQ8IC1vdXRmb3JtIFBFTSAtb3V0ICRAIC1wYXNzb3V0ICJwYXNzOiQoa2V5c19yc2FfcGtjczhfcHdkKSIKLWFsbF9maW5hbCArPSByc2FfcGtjczhfcGJlczJfcGJrZGYyXzIwNDhfZGVzX3NoYTIyNC5wZW0KLWtleXNfcnNhX2VuY19wa2NzOF92Ml8yMDQ4X2Rlc19zaGEyMjQ6IHJzYV9wa2NzOF9wYmVzMl9wYmtkZjJfMjA0OF9kZXNfc2hhMjI0LmRlciByc2FfcGtjczhfcGJlczJfcGJrZGYyXzIwNDhfZGVzX3NoYTIyNC5wZW0KLQota2V5c19yc2FfZW5jX3BrY3M4X3YyXzIwNDhfc2hhMjI0OiBrZXlzX3JzYV9lbmNfcGtjczhfdjJfMjA0OF8zZGVzX3NoYTIyNCBrZXlzX3JzYV9lbmNfcGtjczhfdjJfMjA0OF9kZXNfc2hhMjI0Ci0KLSMjIyA0MDk2LWJpdAotcnNhX3BrY3M4X3BiZXMyX3Bia2RmMl80MDk2XzNkZXNfc2hhMjI0LmRlcjogcnNhX3BrY3MxXzQwOTZfY2xlYXIucGVtCi0JJChPUEVOU1NMKSBwa2NzOCAtdG9wazggLXYyIGRlczMgLXYycHJmIGhtYWNXaXRoU0hBMjI0IC1pbmZvcm0gUEVNIC1pbiAkPCAtb3V0Zm9ybSBERVIgLW91dCAkQCAtcGFzc291dCAicGFzczokKGtleXNfcnNhX3BrY3M4X3B3ZCkiCi1hbGxfZmluYWwgKz0gcnNhX3BrY3M4X3BiZXMyX3Bia2RmMl80MDk2XzNkZXNfc2hhMjI0LmRlcgotcnNhX3BrY3M4X3BiZXMyX3Bia2RmMl80MDk2XzNkZXNfc2hhMjI0LnBlbTogcnNhX3BrY3MxXzQwOTZfY2xlYXIucGVtCi0JJChPUEVOU1NMKSBwa2NzOCAgLXRvcGs4IC12MiBkZXMzIC12MnByZiBobWFjV2l0aFNIQTIyNCAtaW5mb3JtIFBFTSAtaW4gJDwgLW91dGZvcm0gUEVNIC1vdXQgJEAgLXBhc3NvdXQgInBhc3M6JChrZXlzX3JzYV9wa2NzOF9wd2QpIgotYWxsX2ZpbmFsICs9IHJzYV9wa2NzOF9wYmVzMl9wYmtkZjJfNDA5Nl8zZGVzX3NoYTIyNC5wZW0KLWtleXNfcnNhX2VuY19wa2NzOF92Ml80MDk2XzNkZXNfc2hhMjI0OiByc2FfcGtjczhfcGJlczJfcGJrZGYyXzQwOTZfM2Rlc19zaGEyMjQuZGVyIHJzYV9wa2NzOF9wYmVzMl9wYmtkZjJfNDA5Nl8zZGVzX3NoYTIyNC5wZW0KLQotcnNhX3BrY3M4X3BiZXMyX3Bia2RmMl80MDk2X2Rlc19zaGEyMjQuZGVyOiByc2FfcGtjczFfNDA5Nl9jbGVhci5wZW0KLQkkKE9QRU5TU0wpIHBrY3M4IC10b3BrOCAtdjIgZGVzIC12MnByZiBobWFjV2l0aFNIQTIyNCAtaW5mb3JtIFBFTSAtaW4gJDwgLW91dGZvcm0gREVSIC1vdXQgJEAgLXBhc3NvdXQgInBhc3M6JChrZXlzX3JzYV9wa2NzOF9wd2QpIgotYWxsX2ZpbmFsICs9IHJzYV9wa2NzOF9wYmVzMl9wYmtkZjJfNDA5Nl9kZXNfc2hhMjI0LmRlcgotcnNhX3BrY3M4X3BiZXMyX3Bia2RmMl80MDk2X2Rlc19zaGEyMjQucGVtOiByc2FfcGtjczFfNDA5Nl9jbGVhci5wZW0KLQkkKE9QRU5TU0wpIHBrY3M4ICAtdG9wazggLXYyIGRlcyAtdjJwcmYgaG1hY1dpdGhTSEEyMjQgLWluZm9ybSBQRU0gLWluICQ8IC1vdXRmb3JtIFBFTSAtb3V0ICRAIC1wYXNzb3V0ICJwYXNzOiQoa2V5c19yc2FfcGtjczhfcHdkKSIKLWFsbF9maW5hbCArPSByc2FfcGtjczhfcGJlczJfcGJrZGYyXzQwOTZfZGVzX3NoYTIyNC5wZW0KLWtleXNfcnNhX2VuY19wa2NzOF92Ml80MDk2X2Rlc19zaGEyMjQ6IHJzYV9wa2NzOF9wYmVzMl9wYmtkZjJfNDA5Nl9kZXNfc2hhMjI0LmRlciByc2FfcGtjczhfcGJlczJfcGJrZGYyXzQwOTZfZGVzX3NoYTIyNC5wZW0KLQota2V5c19yc2FfZW5jX3BrY3M4X3YyXzQwOTZfc2hhMjI0OiBrZXlzX3JzYV9lbmNfcGtjczhfdjJfNDA5Nl8zZGVzX3NoYTIyNCBrZXlzX3JzYV9lbmNfcGtjczhfdjJfNDA5Nl9kZXNfc2hhMjI0Ci0KLSMjIwotIyMjIFBLQ1M4LXYyIGVuY29kZWQsIGVuY3J5cHRlZCBSU0Ega2V5cywgUFJGIGhtYWNXaXRoU0hBMjU2Ci0jIyMKLQotIyMjIDEwMjQtYml0Ci1yc2FfcGtjczhfcGJlczJfcGJrZGYyXzEwMjRfM2Rlc19zaGEyNTYuZGVyOiByc2FfcGtjczFfMTAyNF9jbGVhci5wZW0KLQkkKE9QRU5TU0wpIHBrY3M4IC10b3BrOCAtdjIgZGVzMyAtdjJwcmYgaG1hY1dpdGhTSEEyNTYgLWluZm9ybSBQRU0gLWluICQ8IC1vdXRmb3JtIERFUiAtb3V0ICRAIC1wYXNzb3V0ICJwYXNzOiQoa2V5c19yc2FfcGtjczhfcHdkKSIKLWFsbF9maW5hbCArPSByc2FfcGtjczhfcGJlczJfcGJrZGYyXzEwMjRfM2Rlc19zaGEyNTYuZGVyCi1yc2FfcGtjczhfcGJlczJfcGJrZGYyXzEwMjRfM2Rlc19zaGEyNTYucGVtOiByc2FfcGtjczFfMTAyNF9jbGVhci5wZW0KLQkkKE9QRU5TU0wpIHBrY3M4ICAtdG9wazggLXYyIGRlczMgLXYycHJmIGhtYWNXaXRoU0hBMjU2IC1pbmZvcm0gUEVNIC1pbiAkPCAtb3V0Zm9ybSBQRU0gLW91dCAkQCAtcGFzc291dCAicGFzczokKGtleXNfcnNhX3BrY3M4X3B3ZCkiCi1hbGxfZmluYWwgKz0gcnNhX3BrY3M4X3BiZXMyX3Bia2RmMl8xMDI0XzNkZXNfc2hhMjU2LnBlbQota2V5c19yc2FfZW5jX3BrY3M4X3YyXzEwMjRfM2Rlc19zaGEyNTY6IHJzYV9wa2NzOF9wYmVzMl9wYmtkZjJfMTAyNF8zZGVzX3NoYTI1Ni5kZXIgcnNhX3BrY3M4X3BiZXMyX3Bia2RmMl8xMDI0XzNkZXNfc2hhMjU2LnBlbQotCi1yc2FfcGtjczhfcGJlczJfcGJrZGYyXzEwMjRfZGVzX3NoYTI1Ni5kZXI6IHJzYV9wa2NzMV8xMDI0X2NsZWFyLnBlbQotCSQoT1BFTlNTTCkgcGtjczggLXRvcGs4IC12MiBkZXMgLXYycHJmIGhtYWNXaXRoU0hBMjU2IC1pbmZvcm0gUEVNIC1pbiAkPCAtb3V0Zm9ybSBERVIgLW91dCAkQCAtcGFzc291dCAicGFzczokKGtleXNfcnNhX3BrY3M4X3B3ZCkiCi1hbGxfZmluYWwgKz0gcnNhX3BrY3M4X3BiZXMyX3Bia2RmMl8xMDI0X2Rlc19zaGEyNTYuZGVyCi1yc2FfcGtjczhfcGJlczJfcGJrZGYyXzEwMjRfZGVzX3NoYTI1Ni5wZW06IHJzYV9wa2NzMV8xMDI0X2NsZWFyLnBlbQotCSQoT1BFTlNTTCkgcGtjczggIC10b3BrOCAtdjIgZGVzIC12MnByZiBobWFjV2l0aFNIQTI1NiAtaW5mb3JtIFBFTSAtaW4gJDwgLW91dGZvcm0gUEVNIC1vdXQgJEAgLXBhc3NvdXQgInBhc3M6JChrZXlzX3JzYV9wa2NzOF9wd2QpIgotYWxsX2ZpbmFsICs9IHJzYV9wa2NzOF9wYmVzMl9wYmtkZjJfMTAyNF9kZXNfc2hhMjU2LnBlbQota2V5c19yc2FfZW5jX3BrY3M4X3YyXzEwMjRfZGVzX3NoYTI1NjogcnNhX3BrY3M4X3BiZXMyX3Bia2RmMl8xMDI0X2Rlc19zaGEyNTYuZGVyIHJzYV9wa2NzOF9wYmVzMl9wYmtkZjJfMTAyNF9kZXNfc2hhMjU2LnBlbQotCi1rZXlzX3JzYV9lbmNfcGtjczhfdjJfMTAyNF9zaGEyNTY6IGtleXNfcnNhX2VuY19wa2NzOF92Ml8xMDI0XzNkZXNfc2hhMjU2IGtleXNfcnNhX2VuY19wa2NzOF92Ml8xMDI0X2Rlc19zaGEyNTYKLQotIyMjIDIwNDgtYml0Ci1yc2FfcGtjczhfcGJlczJfcGJrZGYyXzIwNDhfM2Rlc19zaGEyNTYuZGVyOiByc2FfcGtjczFfMjA0OF9jbGVhci5wZW0KLQkkKE9QRU5TU0wpIHBrY3M4IC10b3BrOCAtdjIgZGVzMyAtdjJwcmYgaG1hY1dpdGhTSEEyNTYgLWluZm9ybSBQRU0gLWluICQ8IC1vdXRmb3JtIERFUiAtb3V0ICRAIC1wYXNzb3V0ICJwYXNzOiQoa2V5c19yc2FfcGtjczhfcHdkKSIKLWFsbF9maW5hbCArPSByc2FfcGtjczhfcGJlczJfcGJrZGYyXzIwNDhfM2Rlc19zaGEyNTYuZGVyCi1yc2FfcGtjczhfcGJlczJfcGJrZGYyXzIwNDhfM2Rlc19zaGEyNTYucGVtOiByc2FfcGtjczFfMjA0OF9jbGVhci5wZW0KLQkkKE9QRU5TU0wpIHBrY3M4ICAtdG9wazggLXYyIGRlczMgLXYycHJmIGhtYWNXaXRoU0hBMjU2IC1pbmZvcm0gUEVNIC1pbiAkPCAtb3V0Zm9ybSBQRU0gLW91dCAkQCAtcGFzc291dCAicGFzczokKGtleXNfcnNhX3BrY3M4X3B3ZCkiCi1hbGxfZmluYWwgKz0gcnNhX3BrY3M4X3BiZXMyX3Bia2RmMl8yMDQ4XzNkZXNfc2hhMjU2LnBlbQota2V5c19yc2FfZW5jX3BrY3M4X3YyXzIwNDhfM2Rlc19zaGEyNTY6IHJzYV9wa2NzOF9wYmVzMl9wYmtkZjJfMjA0OF8zZGVzX3NoYTI1Ni5kZXIgcnNhX3BrY3M4X3BiZXMyX3Bia2RmMl8yMDQ4XzNkZXNfc2hhMjU2LnBlbQotCi1yc2FfcGtjczhfcGJlczJfcGJrZGYyXzIwNDhfZGVzX3NoYTI1Ni5kZXI6IHJzYV9wa2NzMV8yMDQ4X2NsZWFyLnBlbQotCSQoT1BFTlNTTCkgcGtjczggLXRvcGs4IC12MiBkZXMgLXYycHJmIGhtYWNXaXRoU0hBMjU2IC1pbmZvcm0gUEVNIC1pbiAkPCAtb3V0Zm9ybSBERVIgLW91dCAkQCAtcGFzc291dCAicGFzczokKGtleXNfcnNhX3BrY3M4X3B3ZCkiCi1hbGxfZmluYWwgKz0gcnNhX3BrY3M4X3BiZXMyX3Bia2RmMl8yMDQ4X2Rlc19zaGEyNTYuZGVyCi1yc2FfcGtjczhfcGJlczJfcGJrZGYyXzIwNDhfZGVzX3NoYTI1Ni5wZW06IHJzYV9wa2NzMV8yMDQ4X2NsZWFyLnBlbQotCSQoT1BFTlNTTCkgcGtjczggIC10b3BrOCAtdjIgZGVzIC12MnByZiBobWFjV2l0aFNIQTI1NiAtaW5mb3JtIFBFTSAtaW4gJDwgLW91dGZvcm0gUEVNIC1vdXQgJEAgLXBhc3NvdXQgInBhc3M6JChrZXlzX3JzYV9wa2NzOF9wd2QpIgotYWxsX2ZpbmFsICs9IHJzYV9wa2NzOF9wYmVzMl9wYmtkZjJfMjA0OF9kZXNfc2hhMjU2LnBlbQota2V5c19yc2FfZW5jX3BrY3M4X3YyXzIwNDhfZGVzX3NoYTI1NjogcnNhX3BrY3M4X3BiZXMyX3Bia2RmMl8yMDQ4X2Rlc19zaGEyNTYuZGVyIHJzYV9wa2NzOF9wYmVzMl9wYmtkZjJfMjA0OF9kZXNfc2hhMjU2LnBlbQotCi1rZXlzX3JzYV9lbmNfcGtjczhfdjJfMjA0OF9zaGEyNTY6IGtleXNfcnNhX2VuY19wa2NzOF92Ml8yMDQ4XzNkZXNfc2hhMjU2IGtleXNfcnNhX2VuY19wa2NzOF92Ml8yMDQ4X2Rlc19zaGEyNTYKLQotIyMjIDQwOTYtYml0Ci1yc2FfcGtjczhfcGJlczJfcGJrZGYyXzQwOTZfM2Rlc19zaGEyNTYuZGVyOiByc2FfcGtjczFfNDA5Nl9jbGVhci5wZW0KLQkkKE9QRU5TU0wpIHBrY3M4IC10b3BrOCAtdjIgZGVzMyAtdjJwcmYgaG1hY1dpdGhTSEEyNTYgLWluZm9ybSBQRU0gLWluICQ8IC1vdXRmb3JtIERFUiAtb3V0ICRAIC1wYXNzb3V0ICJwYXNzOiQoa2V5c19yc2FfcGtjczhfcHdkKSIKLWFsbF9maW5hbCArPSByc2FfcGtjczhfcGJlczJfcGJrZGYyXzQwOTZfM2Rlc19zaGEyNTYuZGVyCi1yc2FfcGtjczhfcGJlczJfcGJrZGYyXzQwOTZfM2Rlc19zaGEyNTYucGVtOiByc2FfcGtjczFfNDA5Nl9jbGVhci5wZW0KLQkkKE9QRU5TU0wpIHBrY3M4ICAtdG9wazggLXYyIGRlczMgLXYycHJmIGhtYWNXaXRoU0hBMjU2IC1pbmZvcm0gUEVNIC1pbiAkPCAtb3V0Zm9ybSBQRU0gLW91dCAkQCAtcGFzc291dCAicGFzczokKGtleXNfcnNhX3BrY3M4X3B3ZCkiCi1hbGxfZmluYWwgKz0gcnNhX3BrY3M4X3BiZXMyX3Bia2RmMl80MDk2XzNkZXNfc2hhMjU2LnBlbQota2V5c19yc2FfZW5jX3BrY3M4X3YyXzQwOTZfM2Rlc19zaGEyNTY6IHJzYV9wa2NzOF9wYmVzMl9wYmtkZjJfNDA5Nl8zZGVzX3NoYTI1Ni5kZXIgcnNhX3BrY3M4X3BiZXMyX3Bia2RmMl80MDk2XzNkZXNfc2hhMjU2LnBlbQotCi1yc2FfcGtjczhfcGJlczJfcGJrZGYyXzQwOTZfZGVzX3NoYTI1Ni5kZXI6IHJzYV9wa2NzMV80MDk2X2NsZWFyLnBlbQotCSQoT1BFTlNTTCkgcGtjczggLXRvcGs4IC12MiBkZXMgLXYycHJmIGhtYWNXaXRoU0hBMjU2IC1pbmZvcm0gUEVNIC1pbiAkPCAtb3V0Zm9ybSBERVIgLW91dCAkQCAtcGFzc291dCAicGFzczokKGtleXNfcnNhX3BrY3M4X3B3ZCkiCi1hbGxfZmluYWwgKz0gcnNhX3BrY3M4X3BiZXMyX3Bia2RmMl80MDk2X2Rlc19zaGEyNTYuZGVyCi1yc2FfcGtjczhfcGJlczJfcGJrZGYyXzQwOTZfZGVzX3NoYTI1Ni5wZW06IHJzYV9wa2NzMV80MDk2X2NsZWFyLnBlbQotCSQoT1BFTlNTTCkgcGtjczggIC10b3BrOCAtdjIgZGVzIC12MnByZiBobWFjV2l0aFNIQTI1NiAtaW5mb3JtIFBFTSAtaW4gJDwgLW91dGZvcm0gUEVNIC1vdXQgJEAgLXBhc3NvdXQgInBhc3M6JChrZXlzX3JzYV9wa2NzOF9wd2QpIgotYWxsX2ZpbmFsICs9IHJzYV9wa2NzOF9wYmVzMl9wYmtkZjJfNDA5Nl9kZXNfc2hhMjU2LnBlbQota2V5c19yc2FfZW5jX3BrY3M4X3YyXzQwOTZfZGVzX3NoYTI1NjogcnNhX3BrY3M4X3BiZXMyX3Bia2RmMl80MDk2X2Rlc19zaGEyNTYuZGVyIHJzYV9wa2NzOF9wYmVzMl9wYmtkZjJfNDA5Nl9kZXNfc2hhMjU2LnBlbQotCi1rZXlzX3JzYV9lbmNfcGtjczhfdjJfNDA5Nl9zaGEyNTY6IGtleXNfcnNhX2VuY19wa2NzOF92Ml80MDk2XzNkZXNfc2hhMjU2IGtleXNfcnNhX2VuY19wa2NzOF92Ml80MDk2X2Rlc19zaGEyNTYKLQotIyMjCi0jIyMgUEtDUzgtdjIgZW5jb2RlZCwgZW5jcnlwdGVkIFJTQSBrZXlzLCBQUkYgaG1hY1dpdGhTSEEzODQKLSMjIwotCi0jIyMgMTAyNC1iaXQKLXJzYV9wa2NzOF9wYmVzMl9wYmtkZjJfMTAyNF8zZGVzX3NoYTM4NC5kZXI6IHJzYV9wa2NzMV8xMDI0X2NsZWFyLnBlbQotCSQoT1BFTlNTTCkgcGtjczggLXRvcGs4IC12MiBkZXMzIC12MnByZiBobWFjV2l0aFNIQTM4NCAtaW5mb3JtIFBFTSAtaW4gJDwgLW91dGZvcm0gREVSIC1vdXQgJEAgLXBhc3NvdXQgInBhc3M6JChrZXlzX3JzYV9wa2NzOF9wd2QpIgotYWxsX2ZpbmFsICs9IHJzYV9wa2NzOF9wYmVzMl9wYmtkZjJfMTAyNF8zZGVzX3NoYTM4NC5kZXIKLXJzYV9wa2NzOF9wYmVzMl9wYmtkZjJfMTAyNF8zZGVzX3NoYTM4NC5wZW06IHJzYV9wa2NzMV8xMDI0X2NsZWFyLnBlbQotCSQoT1BFTlNTTCkgcGtjczggIC10b3BrOCAtdjIgZGVzMyAtdjJwcmYgaG1hY1dpdGhTSEEzODQgLWluZm9ybSBQRU0gLWluICQ8IC1vdXRmb3JtIFBFTSAtb3V0ICRAIC1wYXNzb3V0ICJwYXNzOiQoa2V5c19yc2FfcGtjczhfcHdkKSIKLWFsbF9maW5hbCArPSByc2FfcGtjczhfcGJlczJfcGJrZGYyXzEwMjRfM2Rlc19zaGEzODQucGVtCi1rZXlzX3JzYV9lbmNfcGtjczhfdjJfMTAyNF8zZGVzX3NoYTM4NDogcnNhX3BrY3M4X3BiZXMyX3Bia2RmMl8xMDI0XzNkZXNfc2hhMzg0LmRlciByc2FfcGtjczhfcGJlczJfcGJrZGYyXzEwMjRfM2Rlc19zaGEzODQucGVtCi0KLXJzYV9wa2NzOF9wYmVzMl9wYmtkZjJfMTAyNF9kZXNfc2hhMzg0LmRlcjogcnNhX3BrY3MxXzEwMjRfY2xlYXIucGVtCi0JJChPUEVOU1NMKSBwa2NzOCAtdG9wazggLXYyIGRlcyAtdjJwcmYgaG1hY1dpdGhTSEEzODQgLWluZm9ybSBQRU0gLWluICQ8IC1vdXRmb3JtIERFUiAtb3V0ICRAIC1wYXNzb3V0ICJwYXNzOiQoa2V5c19yc2FfcGtjczhfcHdkKSIKLWFsbF9maW5hbCArPSByc2FfcGtjczhfcGJlczJfcGJrZGYyXzEwMjRfZGVzX3NoYTM4NC5kZXIKLXJzYV9wa2NzOF9wYmVzMl9wYmtkZjJfMTAyNF9kZXNfc2hhMzg0LnBlbTogcnNhX3BrY3MxXzEwMjRfY2xlYXIucGVtCi0JJChPUEVOU1NMKSBwa2NzOCAgLXRvcGs4IC12MiBkZXMgLXYycHJmIGhtYWNXaXRoU0hBMzg0IC1pbmZvcm0gUEVNIC1pbiAkPCAtb3V0Zm9ybSBQRU0gLW91dCAkQCAtcGFzc291dCAicGFzczokKGtleXNfcnNhX3BrY3M4X3B3ZCkiCi1hbGxfZmluYWwgKz0gcnNhX3BrY3M4X3BiZXMyX3Bia2RmMl8xMDI0X2Rlc19zaGEzODQucGVtCi1rZXlzX3JzYV9lbmNfcGtjczhfdjJfMTAyNF9kZXNfc2hhMzg0OiByc2FfcGtjczhfcGJlczJfcGJrZGYyXzEwMjRfZGVzX3NoYTM4NC5kZXIgcnNhX3BrY3M4X3BiZXMyX3Bia2RmMl8xMDI0X2Rlc19zaGEzODQucGVtCi0KLWtleXNfcnNhX2VuY19wa2NzOF92Ml8xMDI0X3NoYTM4NDoga2V5c19yc2FfZW5jX3BrY3M4X3YyXzEwMjRfM2Rlc19zaGEzODQga2V5c19yc2FfZW5jX3BrY3M4X3YyXzEwMjRfZGVzX3NoYTM4NAotCi0jIyMgMjA0OC1iaXQKLXJzYV9wa2NzOF9wYmVzMl9wYmtkZjJfMjA0OF8zZGVzX3NoYTM4NC5kZXI6IHJzYV9wa2NzMV8yMDQ4X2NsZWFyLnBlbQotCSQoT1BFTlNTTCkgcGtjczggLXRvcGs4IC12MiBkZXMzIC12MnByZiBobWFjV2l0aFNIQTM4NCAtaW5mb3JtIFBFTSAtaW4gJDwgLW91dGZvcm0gREVSIC1vdXQgJEAgLXBhc3NvdXQgInBhc3M6JChrZXlzX3JzYV9wa2NzOF9wd2QpIgotYWxsX2ZpbmFsICs9IHJzYV9wa2NzOF9wYmVzMl9wYmtkZjJfMjA0OF8zZGVzX3NoYTM4NC5kZXIKLXJzYV9wa2NzOF9wYmVzMl9wYmtkZjJfMjA0OF8zZGVzX3NoYTM4NC5wZW06IHJzYV9wa2NzMV8yMDQ4X2NsZWFyLnBlbQotCSQoT1BFTlNTTCkgcGtjczggIC10b3BrOCAtdjIgZGVzMyAtdjJwcmYgaG1hY1dpdGhTSEEzODQgLWluZm9ybSBQRU0gLWluICQ8IC1vdXRmb3JtIFBFTSAtb3V0ICRAIC1wYXNzb3V0ICJwYXNzOiQoa2V5c19yc2FfcGtjczhfcHdkKSIKLWFsbF9maW5hbCArPSByc2FfcGtjczhfcGJlczJfcGJrZGYyXzIwNDhfM2Rlc19zaGEzODQucGVtCi1rZXlzX3JzYV9lbmNfcGtjczhfdjJfMjA0OF8zZGVzX3NoYTM4NDogcnNhX3BrY3M4X3BiZXMyX3Bia2RmMl8yMDQ4XzNkZXNfc2hhMzg0LmRlciByc2FfcGtjczhfcGJlczJfcGJrZGYyXzIwNDhfM2Rlc19zaGEzODQucGVtCi0KLXJzYV9wa2NzOF9wYmVzMl9wYmtkZjJfMjA0OF9hZXMxMjhjYmNfc2hhMzg0LmRlcjogcnNhX3BrY3MxXzIwNDhfY2xlYXIucGVtCi0JJChPUEVOU1NMKSBwa2NzOCAgLXRvcGs4IC12MiBhZXMtMTI4LWNiYyAtdjJwcmYgaG1hY1dpdGhTSEEzODQgLWluZm9ybSBQRU0gLWluICQ8IC1vdXRmb3JtIERFUiAtb3V0ICRAIC1wYXNzb3V0ICJwYXNzOiQoa2V5c19yc2FfcGtjczhfcHdkKSIKLWFsbF9maW5hbCArPSByc2FfcGtjczhfcGJlczJfcGJrZGYyXzIwNDhfYWVzMTI4Y2JjX3NoYTM4NC5kZXIKLXJzYV9wa2NzOF9wYmVzMl9wYmtkZjJfMjA0OF9hZXMxMjhjYmNfc2hhMzg0LnBlbTogcnNhX3BrY3MxXzIwNDhfY2xlYXIucGVtCi0JJChPUEVOU1NMKSBwa2NzOCAgLXRvcGs4IC12MiBhZXMtMTI4LWNiYyAtdjJwcmYgaG1hY1dpdGhTSEEzODQgLWluZm9ybSBQRU0gLWluICQ8IC1vdXRmb3JtIFBFTSAtb3V0ICRAIC1wYXNzb3V0ICJwYXNzOiQoa2V5c19yc2FfcGtjczhfcHdkKSIKLWFsbF9maW5hbCArPSByc2FfcGtjczhfcGJlczJfcGJrZGYyXzIwNDhfYWVzMTI4Y2JjX3NoYTM4NC5wZW0KLWtleXNfcnNhX2VuY19wa2NzOF92Ml8yMDQ4X2FlczEyOGNiY19zaGEzODQ6IHJzYV9wa2NzOF9wYmVzMl9wYmtkZjJfMjA0OF9hZXMxMjhjYmNfc2hhMzg0LmRlciByc2FfcGtjczhfcGJlczJfcGJrZGYyXzIwNDhfYWVzMTI4Y2JjX3NoYTM4NC5wZW0KLQotcnNhX3BrY3M4X3BiZXMyX3Bia2RmMl8yMDQ4X2FlczE5MmNiY19zaGEzODQuZGVyOiByc2FfcGtjczFfMjA0OF9jbGVhci5wZW0KLQkkKE9QRU5TU0wpIHBrY3M4ICAtdG9wazggLXYyIGFlcy0xOTItY2JjIC12MnByZiBobWFjV2l0aFNIQTM4NCAtaW5mb3JtIFBFTSAtaW4gJDwgLW91dGZvcm0gREVSIC1vdXQgJEAgLXBhc3NvdXQgInBhc3M6JChrZXlzX3JzYV9wa2NzOF9wd2QpIgotYWxsX2ZpbmFsICs9IHJzYV9wa2NzOF9wYmVzMl9wYmtkZjJfMjA0OF9hZXMxOTJjYmNfc2hhMzg0LmRlcgotcnNhX3BrY3M4X3BiZXMyX3Bia2RmMl8yMDQ4X2FlczE5MmNiY19zaGEzODQucGVtOiByc2FfcGtjczFfMjA0OF9jbGVhci5wZW0KLQkkKE9QRU5TU0wpIHBrY3M4ICAtdG9wazggLXYyIGFlcy0xOTItY2JjIC12MnByZiBobWFjV2l0aFNIQTM4NCAtaW5mb3JtIFBFTSAtaW4gJDwgLW91dGZvcm0gUEVNIC1vdXQgJEAgLXBhc3NvdXQgInBhc3M6JChrZXlzX3JzYV9wa2NzOF9wd2QpIgotYWxsX2ZpbmFsICs9IHJzYV9wa2NzOF9wYmVzMl9wYmtkZjJfMjA0OF9hZXMxOTJjYmNfc2hhMzg0LnBlbQota2V5c19yc2FfZW5jX3BrY3M4X3YyXzIwNDhfYWVzMTkyY2JjX3NoYTM4NDogcnNhX3BrY3M4X3BiZXMyX3Bia2RmMl8yMDQ4X2FlczE5MmNiY19zaGEzODQuZGVyIHJzYV9wa2NzOF9wYmVzMl9wYmtkZjJfMjA0OF9hZXMxOTJjYmNfc2hhMzg0LnBlbQotCi1yc2FfcGtjczhfcGJlczJfcGJrZGYyXzIwNDhfYWVzMjU2Y2JjX3NoYTM4NC5kZXI6IHJzYV9wa2NzMV8yMDQ4X2NsZWFyLnBlbQotCSQoT1BFTlNTTCkgcGtjczggIC10b3BrOCAtdjIgYWVzLTI1Ni1jYmMgLXYycHJmIGhtYWNXaXRoU0hBMzg0IC1pbmZvcm0gUEVNIC1pbiAkPCAtb3V0Zm9ybSBERVIgLW91dCAkQCAtcGFzc291dCAicGFzczokKGtleXNfcnNhX3BrY3M4X3B3ZCkiCi1hbGxfZmluYWwgKz0gcnNhX3BrY3M4X3BiZXMyX3Bia2RmMl8yMDQ4X2FlczI1NmNiY19zaGEzODQuZGVyCi1yc2FfcGtjczhfcGJlczJfcGJrZGYyXzIwNDhfYWVzMjU2Y2JjX3NoYTM4NC5wZW06IHJzYV9wa2NzMV8yMDQ4X2NsZWFyLnBlbQotCSQoT1BFTlNTTCkgcGtjczggIC10b3BrOCAtdjIgYWVzLTI1Ni1jYmMgLXYycHJmIGhtYWNXaXRoU0hBMzg0IC1pbmZvcm0gUEVNIC1pbiAkPCAtb3V0Zm9ybSBQRU0gLW91dCAkQCAtcGFzc291dCAicGFzczokKGtleXNfcnNhX3BrY3M4X3B3ZCkiCi1hbGxfZmluYWwgKz0gcnNhX3BrY3M4X3BiZXMyX3Bia2RmMl8yMDQ4X2FlczI1NmNiY19zaGEzODQucGVtCi1rZXlzX3JzYV9lbmNfcGtjczhfdjJfMjA0OF9hZXMyNTZjYmNfc2hhMzg0OiByc2FfcGtjczhfcGJlczJfcGJrZGYyXzIwNDhfYWVzMjU2Y2JjX3NoYTM4NC5kZXIgcnNhX3BrY3M4X3BiZXMyX3Bia2RmMl8yMDQ4X2FlczI1NmNiY19zaGEzODQucGVtCi0KLXJzYV9wa2NzOF9wYmVzMl9wYmtkZjJfMjA0OF9kZXNfc2hhMzg0LmRlcjogcnNhX3BrY3MxXzIwNDhfY2xlYXIucGVtCi0JJChPUEVOU1NMKSBwa2NzOCAtdG9wazggLXYyIGRlcyAtdjJwcmYgaG1hY1dpdGhTSEEzODQgLWluZm9ybSBQRU0gLWluICQ8IC1vdXRmb3JtIERFUiAtb3V0ICRAIC1wYXNzb3V0ICJwYXNzOiQoa2V5c19yc2FfcGtjczhfcHdkKSIKLWFsbF9maW5hbCArPSByc2FfcGtjczhfcGJlczJfcGJrZGYyXzIwNDhfZGVzX3NoYTM4NC5kZXIKLXJzYV9wa2NzOF9wYmVzMl9wYmtkZjJfMjA0OF9kZXNfc2hhMzg0LnBlbTogcnNhX3BrY3MxXzIwNDhfY2xlYXIucGVtCi0JJChPUEVOU1NMKSBwa2NzOCAgLXRvcGs4IC12MiBkZXMgLXYycHJmIGhtYWNXaXRoU0hBMzg0IC1pbmZvcm0gUEVNIC1pbiAkPCAtb3V0Zm9ybSBQRU0gLW91dCAkQCAtcGFzc291dCAicGFzczokKGtleXNfcnNhX3BrY3M4X3B3ZCkiCi1hbGxfZmluYWwgKz0gcnNhX3BrY3M4X3BiZXMyX3Bia2RmMl8yMDQ4X2Rlc19zaGEzODQucGVtCi1rZXlzX3JzYV9lbmNfcGtjczhfdjJfMjA0OF9kZXNfc2hhMzg0OiByc2FfcGtjczhfcGJlczJfcGJrZGYyXzIwNDhfZGVzX3NoYTM4NC5kZXIgcnNhX3BrY3M4X3BiZXMyX3Bia2RmMl8yMDQ4X2Rlc19zaGEzODQucGVtCi0KLWtleXNfcnNhX2VuY19wa2NzOF92Ml8yMDQ4X3NoYTM4NDoga2V5c19yc2FfZW5jX3BrY3M4X3YyXzIwNDhfM2Rlc19zaGEzODQga2V5c19yc2FfZW5jX3BrY3M4X3YyXzIwNDhfZGVzX3NoYTM4NAotCi0jIyMgNDA5Ni1iaXQKLXJzYV9wa2NzOF9wYmVzMl9wYmtkZjJfNDA5Nl8zZGVzX3NoYTM4NC5kZXI6IHJzYV9wa2NzMV80MDk2X2NsZWFyLnBlbQotCSQoT1BFTlNTTCkgcGtjczggLXRvcGs4IC12MiBkZXMzIC12MnByZiBobWFjV2l0aFNIQTM4NCAtaW5mb3JtIFBFTSAtaW4gJDwgLW91dGZvcm0gREVSIC1vdXQgJEAgLXBhc3NvdXQgInBhc3M6JChrZXlzX3JzYV9wa2NzOF9wd2QpIgotYWxsX2ZpbmFsICs9IHJzYV9wa2NzOF9wYmVzMl9wYmtkZjJfNDA5Nl8zZGVzX3NoYTM4NC5kZXIKLXJzYV9wa2NzOF9wYmVzMl9wYmtkZjJfNDA5Nl8zZGVzX3NoYTM4NC5wZW06IHJzYV9wa2NzMV80MDk2X2NsZWFyLnBlbQotCSQoT1BFTlNTTCkgcGtjczggIC10b3BrOCAtdjIgZGVzMyAtdjJwcmYgaG1hY1dpdGhTSEEzODQgLWluZm9ybSBQRU0gLWluICQ8IC1vdXRmb3JtIFBFTSAtb3V0ICRAIC1wYXNzb3V0ICJwYXNzOiQoa2V5c19yc2FfcGtjczhfcHdkKSIKLWFsbF9maW5hbCArPSByc2FfcGtjczhfcGJlczJfcGJrZGYyXzQwOTZfM2Rlc19zaGEzODQucGVtCi1rZXlzX3JzYV9lbmNfcGtjczhfdjJfNDA5Nl8zZGVzX3NoYTM4NDogcnNhX3BrY3M4X3BiZXMyX3Bia2RmMl80MDk2XzNkZXNfc2hhMzg0LmRlciByc2FfcGtjczhfcGJlczJfcGJrZGYyXzQwOTZfM2Rlc19zaGEzODQucGVtCi0KLXJzYV9wa2NzOF9wYmVzMl9wYmtkZjJfNDA5Nl9kZXNfc2hhMzg0LmRlcjogcnNhX3BrY3MxXzQwOTZfY2xlYXIucGVtCi0JJChPUEVOU1NMKSBwa2NzOCAtdG9wazggLXYyIGRlcyAtdjJwcmYgaG1hY1dpdGhTSEEzODQgLWluZm9ybSBQRU0gLWluICQ8IC1vdXRmb3JtIERFUiAtb3V0ICRAIC1wYXNzb3V0ICJwYXNzOiQoa2V5c19yc2FfcGtjczhfcHdkKSIKLWFsbF9maW5hbCArPSByc2FfcGtjczhfcGJlczJfcGJrZGYyXzQwOTZfZGVzX3NoYTM4NC5kZXIKLXJzYV9wa2NzOF9wYmVzMl9wYmtkZjJfNDA5Nl9kZXNfc2hhMzg0LnBlbTogcnNhX3BrY3MxXzQwOTZfY2xlYXIucGVtCi0JJChPUEVOU1NMKSBwa2NzOCAgLXRvcGs4IC12MiBkZXMgLXYycHJmIGhtYWNXaXRoU0hBMzg0IC1pbmZvcm0gUEVNIC1pbiAkPCAtb3V0Zm9ybSBQRU0gLW91dCAkQCAtcGFzc291dCAicGFzczokKGtleXNfcnNhX3BrY3M4X3B3ZCkiCi1hbGxfZmluYWwgKz0gcnNhX3BrY3M4X3BiZXMyX3Bia2RmMl80MDk2X2Rlc19zaGEzODQucGVtCi1rZXlzX3JzYV9lbmNfcGtjczhfdjJfNDA5Nl9kZXNfc2hhMzg0OiByc2FfcGtjczhfcGJlczJfcGJrZGYyXzQwOTZfZGVzX3NoYTM4NC5kZXIgcnNhX3BrY3M4X3BiZXMyX3Bia2RmMl80MDk2X2Rlc19zaGEzODQucGVtCi0KLWtleXNfcnNhX2VuY19wa2NzOF92Ml80MDk2X3NoYTM4NDoga2V5c19yc2FfZW5jX3BrY3M4X3YyXzQwOTZfM2Rlc19zaGEzODQga2V5c19yc2FfZW5jX3BrY3M4X3YyXzQwOTZfZGVzX3NoYTM4NAotCi0jIyMKLSMjIyBQS0NTOC12MiBlbmNvZGVkLCBlbmNyeXB0ZWQgUlNBIGtleXMsIFBSRiBobWFjV2l0aFNIQTUxMgotIyMjCi0KLSMjIyAxMDI0LWJpdAotcnNhX3BrY3M4X3BiZXMyX3Bia2RmMl8xMDI0XzNkZXNfc2hhNTEyLmRlcjogcnNhX3BrY3MxXzEwMjRfY2xlYXIucGVtCi0JJChPUEVOU1NMKSBwa2NzOCAtdG9wazggLXYyIGRlczMgLXYycHJmIGhtYWNXaXRoU0hBNTEyIC1pbmZvcm0gUEVNIC1pbiAkPCAtb3V0Zm9ybSBERVIgLW91dCAkQCAtcGFzc291dCAicGFzczokKGtleXNfcnNhX3BrY3M4X3B3ZCkiCi1hbGxfZmluYWwgKz0gcnNhX3BrY3M4X3BiZXMyX3Bia2RmMl8xMDI0XzNkZXNfc2hhNTEyLmRlcgotcnNhX3BrY3M4X3BiZXMyX3Bia2RmMl8xMDI0XzNkZXNfc2hhNTEyLnBlbTogcnNhX3BrY3MxXzEwMjRfY2xlYXIucGVtCi0JJChPUEVOU1NMKSBwa2NzOCAgLXRvcGs4IC12MiBkZXMzIC12MnByZiBobWFjV2l0aFNIQTUxMiAtaW5mb3JtIFBFTSAtaW4gJDwgLW91dGZvcm0gUEVNIC1vdXQgJEAgLXBhc3NvdXQgInBhc3M6JChrZXlzX3JzYV9wa2NzOF9wd2QpIgotYWxsX2ZpbmFsICs9IHJzYV9wa2NzOF9wYmVzMl9wYmtkZjJfMTAyNF8zZGVzX3NoYTUxMi5wZW0KLWtleXNfcnNhX2VuY19wa2NzOF92Ml8xMDI0XzNkZXNfc2hhNTEyOiByc2FfcGtjczhfcGJlczJfcGJrZGYyXzEwMjRfM2Rlc19zaGE1MTIuZGVyIHJzYV9wa2NzOF9wYmVzMl9wYmtkZjJfMTAyNF8zZGVzX3NoYTUxMi5wZW0KLQotcnNhX3BrY3M4X3BiZXMyX3Bia2RmMl8xMDI0X2Rlc19zaGE1MTIuZGVyOiByc2FfcGtjczFfMTAyNF9jbGVhci5wZW0KLQkkKE9QRU5TU0wpIHBrY3M4IC10b3BrOCAtdjIgZGVzIC12MnByZiBobWFjV2l0aFNIQTUxMiAtaW5mb3JtIFBFTSAtaW4gJDwgLW91dGZvcm0gREVSIC1vdXQgJEAgLXBhc3NvdXQgInBhc3M6JChrZXlzX3JzYV9wa2NzOF9wd2QpIgotYWxsX2ZpbmFsICs9IHJzYV9wa2NzOF9wYmVzMl9wYmtkZjJfMTAyNF9kZXNfc2hhNTEyLmRlcgotcnNhX3BrY3M4X3BiZXMyX3Bia2RmMl8xMDI0X2Rlc19zaGE1MTIucGVtOiByc2FfcGtjczFfMTAyNF9jbGVhci5wZW0KLQkkKE9QRU5TU0wpIHBrY3M4ICAtdG9wazggLXYyIGRlcyAtdjJwcmYgaG1hY1dpdGhTSEE1MTIgLWluZm9ybSBQRU0gLWluICQ8IC1vdXRmb3JtIFBFTSAtb3V0ICRAIC1wYXNzb3V0ICJwYXNzOiQoa2V5c19yc2FfcGtjczhfcHdkKSIKLWFsbF9maW5hbCArPSByc2FfcGtjczhfcGJlczJfcGJrZGYyXzEwMjRfZGVzX3NoYTUxMi5wZW0KLWtleXNfcnNhX2VuY19wa2NzOF92Ml8xMDI0X2Rlc19zaGE1MTI6IHJzYV9wa2NzOF9wYmVzMl9wYmtkZjJfMTAyNF9kZXNfc2hhNTEyLmRlciByc2FfcGtjczhfcGJlczJfcGJrZGYyXzEwMjRfZGVzX3NoYTUxMi5wZW0KLQota2V5c19yc2FfZW5jX3BrY3M4X3YyXzEwMjRfc2hhNTEyOiBrZXlzX3JzYV9lbmNfcGtjczhfdjJfMTAyNF8zZGVzX3NoYTUxMiBrZXlzX3JzYV9lbmNfcGtjczhfdjJfMTAyNF9kZXNfc2hhNTEyCi0KLSMjIyAyMDQ4LWJpdAotcnNhX3BrY3M4X3BiZXMyX3Bia2RmMl8yMDQ4XzNkZXNfc2hhNTEyLmRlcjogcnNhX3BrY3MxXzIwNDhfY2xlYXIucGVtCi0JJChPUEVOU1NMKSBwa2NzOCAtdG9wazggLXYyIGRlczMgLXYycHJmIGhtYWNXaXRoU0hBNTEyIC1pbmZvcm0gUEVNIC1pbiAkPCAtb3V0Zm9ybSBERVIgLW91dCAkQCAtcGFzc291dCAicGFzczokKGtleXNfcnNhX3BrY3M4X3B3ZCkiCi1hbGxfZmluYWwgKz0gcnNhX3BrY3M4X3BiZXMyX3Bia2RmMl8yMDQ4XzNkZXNfc2hhNTEyLmRlcgotcnNhX3BrY3M4X3BiZXMyX3Bia2RmMl8yMDQ4XzNkZXNfc2hhNTEyLnBlbTogcnNhX3BrY3MxXzIwNDhfY2xlYXIucGVtCi0JJChPUEVOU1NMKSBwa2NzOCAgLXRvcGs4IC12MiBkZXMzIC12MnByZiBobWFjV2l0aFNIQTUxMiAtaW5mb3JtIFBFTSAtaW4gJDwgLW91dGZvcm0gUEVNIC1vdXQgJEAgLXBhc3NvdXQgInBhc3M6JChrZXlzX3JzYV9wa2NzOF9wd2QpIgotYWxsX2ZpbmFsICs9IHJzYV9wa2NzOF9wYmVzMl9wYmtkZjJfMjA0OF8zZGVzX3NoYTUxMi5wZW0KLWtleXNfcnNhX2VuY19wa2NzOF92Ml8yMDQ4XzNkZXNfc2hhNTEyOiByc2FfcGtjczhfcGJlczJfcGJrZGYyXzIwNDhfM2Rlc19zaGE1MTIuZGVyIHJzYV9wa2NzOF9wYmVzMl9wYmtkZjJfMjA0OF8zZGVzX3NoYTUxMi5wZW0KLQotcnNhX3BrY3M4X3BiZXMyX3Bia2RmMl8yMDQ4X2Rlc19zaGE1MTIuZGVyOiByc2FfcGtjczFfMjA0OF9jbGVhci5wZW0KLQkkKE9QRU5TU0wpIHBrY3M4IC10b3BrOCAtdjIgZGVzIC12MnByZiBobWFjV2l0aFNIQTUxMiAtaW5mb3JtIFBFTSAtaW4gJDwgLW91dGZvcm0gREVSIC1vdXQgJEAgLXBhc3NvdXQgInBhc3M6JChrZXlzX3JzYV9wa2NzOF9wd2QpIgotYWxsX2ZpbmFsICs9IHJzYV9wa2NzOF9wYmVzMl9wYmtkZjJfMjA0OF9kZXNfc2hhNTEyLmRlcgotcnNhX3BrY3M4X3BiZXMyX3Bia2RmMl8yMDQ4X2Rlc19zaGE1MTIucGVtOiByc2FfcGtjczFfMjA0OF9jbGVhci5wZW0KLQkkKE9QRU5TU0wpIHBrY3M4ICAtdG9wazggLXYyIGRlcyAtdjJwcmYgaG1hY1dpdGhTSEE1MTIgLWluZm9ybSBQRU0gLWluICQ8IC1vdXRmb3JtIFBFTSAtb3V0ICRAIC1wYXNzb3V0ICJwYXNzOiQoa2V5c19yc2FfcGtjczhfcHdkKSIKLWFsbF9maW5hbCArPSByc2FfcGtjczhfcGJlczJfcGJrZGYyXzIwNDhfZGVzX3NoYTUxMi5wZW0KLWtleXNfcnNhX2VuY19wa2NzOF92Ml8yMDQ4X2Rlc19zaGE1MTI6IHJzYV9wa2NzOF9wYmVzMl9wYmtkZjJfMjA0OF9kZXNfc2hhNTEyLmRlciByc2FfcGtjczhfcGJlczJfcGJrZGYyXzIwNDhfZGVzX3NoYTUxMi5wZW0KLQota2V5c19yc2FfZW5jX3BrY3M4X3YyXzIwNDhfc2hhNTEyOiBrZXlzX3JzYV9lbmNfcGtjczhfdjJfMjA0OF8zZGVzX3NoYTUxMiBrZXlzX3JzYV9lbmNfcGtjczhfdjJfMjA0OF9kZXNfc2hhNTEyCi0KLSMjIyA0MDk2LWJpdAotcnNhX3BrY3M4X3BiZXMyX3Bia2RmMl80MDk2XzNkZXNfc2hhNTEyLmRlcjogcnNhX3BrY3MxXzQwOTZfY2xlYXIucGVtCi0JJChPUEVOU1NMKSBwa2NzOCAtdG9wazggLXYyIGRlczMgLXYycHJmIGhtYWNXaXRoU0hBNTEyIC1pbmZvcm0gUEVNIC1pbiAkPCAtb3V0Zm9ybSBERVIgLW91dCAkQCAtcGFzc291dCAicGFzczokKGtleXNfcnNhX3BrY3M4X3B3ZCkiCi1hbGxfZmluYWwgKz0gcnNhX3BrY3M4X3BiZXMyX3Bia2RmMl80MDk2XzNkZXNfc2hhNTEyLmRlcgotcnNhX3BrY3M4X3BiZXMyX3Bia2RmMl80MDk2XzNkZXNfc2hhNTEyLnBlbTogcnNhX3BrY3MxXzQwOTZfY2xlYXIucGVtCi0JJChPUEVOU1NMKSBwa2NzOCAgLXRvcGs4IC12MiBkZXMzIC12MnByZiBobWFjV2l0aFNIQTUxMiAtaW5mb3JtIFBFTSAtaW4gJDwgLW91dGZvcm0gUEVNIC1vdXQgJEAgLXBhc3NvdXQgInBhc3M6JChrZXlzX3JzYV9wa2NzOF9wd2QpIgotYWxsX2ZpbmFsICs9IHJzYV9wa2NzOF9wYmVzMl9wYmtkZjJfNDA5Nl8zZGVzX3NoYTUxMi5wZW0KLWtleXNfcnNhX2VuY19wa2NzOF92Ml80MDk2XzNkZXNfc2hhNTEyOiByc2FfcGtjczhfcGJlczJfcGJrZGYyXzQwOTZfM2Rlc19zaGE1MTIuZGVyIHJzYV9wa2NzOF9wYmVzMl9wYmtkZjJfNDA5Nl8zZGVzX3NoYTUxMi5wZW0KLQotcnNhX3BrY3M4X3BiZXMyX3Bia2RmMl80MDk2X2Rlc19zaGE1MTIuZGVyOiByc2FfcGtjczFfNDA5Nl9jbGVhci5wZW0KLQkkKE9QRU5TU0wpIHBrY3M4IC10b3BrOCAtdjIgZGVzIC12MnByZiBobWFjV2l0aFNIQTUxMiAtaW5mb3JtIFBFTSAtaW4gJDwgLW91dGZvcm0gREVSIC1vdXQgJEAgLXBhc3NvdXQgInBhc3M6JChrZXlzX3JzYV9wa2NzOF9wd2QpIgotYWxsX2ZpbmFsICs9IHJzYV9wa2NzOF9wYmVzMl9wYmtkZjJfNDA5Nl9kZXNfc2hhNTEyLmRlcgotcnNhX3BrY3M4X3BiZXMyX3Bia2RmMl80MDk2X2Rlc19zaGE1MTIucGVtOiByc2FfcGtjczFfNDA5Nl9jbGVhci5wZW0KLQkkKE9QRU5TU0wpIHBrY3M4ICAtdG9wazggLXYyIGRlcyAtdjJwcmYgaG1hY1dpdGhTSEE1MTIgLWluZm9ybSBQRU0gLWluICQ8IC1vdXRmb3JtIFBFTSAtb3V0ICRAIC1wYXNzb3V0ICJwYXNzOiQoa2V5c19yc2FfcGtjczhfcHdkKSIKLWFsbF9maW5hbCArPSByc2FfcGtjczhfcGJlczJfcGJrZGYyXzQwOTZfZGVzX3NoYTUxMi5wZW0KLWtleXNfcnNhX2VuY19wa2NzOF92Ml80MDk2X2Rlc19zaGE1MTI6IHJzYV9wa2NzOF9wYmVzMl9wYmtkZjJfNDA5Nl9kZXNfc2hhNTEyLmRlciByc2FfcGtjczhfcGJlczJfcGJrZGYyXzQwOTZfZGVzX3NoYTUxMi5wZW0KLQota2V5c19yc2FfZW5jX3BrY3M4X3YyXzQwOTZfc2hhNTEyOiBrZXlzX3JzYV9lbmNfcGtjczhfdjJfNDA5Nl8zZGVzX3NoYTUxMiBrZXlzX3JzYV9lbmNfcGtjczhfdjJfNDA5Nl9kZXNfc2hhNTEyCi0KLSMjIwotIyMjIFJ1bGVzIHRvIGdlbmVyYXRlIGFsbCBSU0Ega2V5cyBmcm9tIGEgcGFydGljdWxhciBjbGFzcwotIyMjCi0KLSMjIyBHZW5lcmF0ZSBjbGVhcnRleHQgUlNBIGtleXMgaW4gZGVyaXZlZCBmb3JtYXRzCi1rZXlzX3JzYV9jbGVhcnRleHQ6ICQoa2V5c19yc2FfYmFzZSkgJChrZXlzX3JzYV9iYXNlOi5wZW09LmRlcikKLQotIyMjIEdlbmVyYXRlIFBLQ1MxLWVuY29kZWQgZW5jcnlwdGVkIFJTQSBrZXlzCi1rZXlzX3JzYV9lbmNfYmFzaWM6IGtleXNfcnNhX2VuY19iYXNpY18xMDI0IGtleXNfcnNhX2VuY19iYXNpY18yMDQ4IGtleXNfcnNhX2VuY19iYXNpY180MDk2Ci0KLSMjIyBHZW5lcmF0ZSBQS0NTOC12MSBlbmNyeXB0ZWQgUlNBIGtleXMKLWtleXNfcnNhX2VuY19wa2NzOF92MToga2V5c19yc2FfZW5jX3BrY3M4X3YxXzEwMjQga2V5c19yc2FfZW5jX3BrY3M4X3YxXzIwNDgga2V5c19yc2FfZW5jX3BrY3M4X3YxXzQwOTYKLQotIyMjIEdlbmVyYXRlIFBLQ1M4LXYyIGVuY3J5cHRlZCBSU0Ega2V5cwota2V5c19yc2FfZW5jX3BrY3M4X3YyOiBrZXlzX3JzYV9lbmNfcGtjczhfdjJfMTAyNCBrZXlzX3JzYV9lbmNfcGtjczhfdjJfMjA0OCBrZXlzX3JzYV9lbmNfcGtjczhfdjJfNDA5NiBrZXlzX3JzYV9lbmNfcGtjczhfdjJfMTAyNF9zaGEyMjQga2V5c19yc2FfZW5jX3BrY3M4X3YyXzIwNDhfc2hhMjI0IGtleXNfcnNhX2VuY19wa2NzOF92Ml80MDk2X3NoYTIyNCBrZXlzX3JzYV9lbmNfcGtjczhfdjJfMTAyNF9zaGEyNTYga2V5c19yc2FfZW5jX3BrY3M4X3YyXzIwNDhfc2hhMjU2IGtleXNfcnNhX2VuY19wa2NzOF92Ml80MDk2X3NoYTI1NiBrZXlzX3JzYV9lbmNfcGtjczhfdjJfMTAyNF9zaGEzODQga2V5c19yc2FfZW5jX3BrY3M4X3YyXzIwNDhfc2hhMzg0IGtleXNfcnNhX2VuY19wa2NzOF92Ml80MDk2X3NoYTM4NCBrZXlzX3JzYV9lbmNfcGtjczhfdjJfMTAyNF9zaGE1MTIga2V5c19yc2FfZW5jX3BrY3M4X3YyXzIwNDhfc2hhNTEyIGtleXNfcnNhX2VuY19wa2NzOF92Ml80MDk2X3NoYTUxMgotCi0jIyMgR2VuZXJhdGUgYWxsIFJTQSBrZXlzCi1rZXlzX3JzYV9hbGw6IGtleXNfcnNhX2Jhc2Uga2V5c19yc2FfY2xlYXJ0ZXh0Ci1rZXlzX3JzYV9hbGw6IGtleXNfcnNhX2VuY19iYXNpYyBrZXlzX3JzYV9lbmNfcGtjczhfdjEga2V5c19yc2FfZW5jX3BrY3M4X3YyCi0KLSMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSMjIyMgR2VuZXJhdGUgdmFyaW91cyBFQyBrZXlzCi0jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0KLSMjIwotIyMjIFBLQ1M4IGVuY29kZWQKLSMjIwotCi1lY19wcnYucGs4LmRlcjoKLQkkKE9QRU5TU0wpIGdlbnBrZXkgLWFsZ29yaXRobSBFQyAtcGtleW9wdCBlY19wYXJhbWdlbl9jdXJ2ZTpwcmltZTE5MnYxIC1wa2V5b3B0IGVjX3BhcmFtX2VuYzpuYW1lZF9jdXJ2ZSAtb3V0ICRAIC1vdXRmb3JtIERFUgotYWxsX2ZpbmFsICs9IGVjX3Bydi5wazguZGVyCi0KLSMgIyMjIEluc3RydWN0aW9ucyBmb3IgY3JlYXRpbmcgYGVjX3Bydi5wazhub3B1Yi5kZXJgLAotIyAjIyMgYGVjX3Bydi5wazhub3B1YnBhcmFtLmRlcmAsIGFuZCBgZWNfcHJ2LnBrOHBhcmFtLmRlcmAgYnkgaGFuZCBmcm9tCi0jICMjIyBgZWNfcHJ2LnBrOC5kZXJgLgotIwotIyBUaGVzZSBpbnN0cnVjdGlvbnMgYXNzdW1lIHlvdSBhcmUgZmFtaWxpYXIgd2l0aCBBU04uMSBERVIgZW5jb2RpbmcgYW5kIGNhbgotIyB1c2UgYSBoZXggZWRpdG9yIHRvIG1hbmlwdWxhdGUgREVSLgotIwotIyBUaGUgcmVsZXZhbnQgQVNOLjEgZGVmaW5pdGlvbnMgZm9yIGEgUEtDUyM4IGVuY29kZWQgRWxsaXB0aWMgQ3VydmUga2V5IGFyZToKLSMKLSMgUHJpdmF0ZUtleUluZm8gOjo9IFNFUVVFTkNFIHsKLSMgICB2ZXJzaW9uICAgICAgICAgICAgICAgICAgIFZlcnNpb24sCi0jICAgcHJpdmF0ZUtleUFsZ29yaXRobSAgICAgICBQcml2YXRlS2V5QWxnb3JpdGhtSWRlbnRpZmllciwKLSMgICBwcml2YXRlS2V5ICAgICAgICAgICAgICAgIFByaXZhdGVLZXksCi0jICAgYXR0cmlidXRlcyAgICAgICAgICAgWzBdICBJTVBMSUNJVCBBdHRyaWJ1dGVzIE9QVElPTkFMCi0jIH0KLSMKLSMgQWxnb3JpdGhtSWRlbnRpZmllciAgOjo9ICBTRVFVRU5DRSAgewotIyAgIGFsZ29yaXRobSAgIE9CSkVDVCBJREVOVElGSUVSLAotIyAgIHBhcmFtZXRlcnMgIEFOWSBERUZJTkVEIEJZIGFsZ29yaXRobSBPUFRJT05BTAotIyB9Ci0jCi0jIEVDUGFyYW1ldGVycyA6Oj0gQ0hPSUNFIHsKLSMgICBuYW1lZEN1cnZlICAgICAgICAgT0JKRUNUIElERU5USUZJRVIKLSMgICAtLSBpbXBsaWNpdEN1cnZlICAgTlVMTAotIyAgIC0tIHNwZWNpZmllZEN1cnZlICBTcGVjaWZpZWRFQ0RvbWFpbgotIyB9Ci0jCi0jIEVDUHJpdmF0ZUtleSA6Oj0gU0VRVUVOQ0UgewotIyAgIHZlcnNpb24gICAgICAgIElOVEVHRVIgeyBlY1ByaXZrZXlWZXIxKDEpIH0gKGVjUHJpdmtleVZlcjEpLAotIyAgIHByaXZhdGVLZXkgICAgIE9DVEVUIFNUUklORywKLSMgICBwYXJhbWV0ZXJzIFswXSBFQ1BhcmFtZXRlcnMge3sgTmFtZWRDdXJ2ZSB9fSBPUFRJT05BTCwKLSMgICBwdWJsaWNLZXkgIFsxXSBCSVQgU1RSSU5HIE9QVElPTkFMCi0jIH0KLSMKLSMgYGVjX3Bydi5wazguZGVyYCBhcyBnZW5lcmF0ZGUgYWJvdmUgYnkgT3BlblNTTCBzaG91bGQgaGF2ZSB0aGUgZm9sbG93aW5nCi0jIGZpZWxkczoKLSMKLSMgKiBwcml2YXRlS2V5QWxnb3JpdGhtICAgICAgIG5hbWVkQ3VydmUKLSMgKiBwcml2YXRlS2V5LnBhcmFtZXRlcnMgICAgIE5PVCBQUkVTRU5UCi0jICogcHJpdmF0ZUtleS5wdWJsaWNLZXkgICAgICBQUkVTRU5UCi0jICogYXR0cmlidXRlcyAgICAgICAgICAgICAgICBOT1QgUFJFU0VOVAotIwotIyAjIGVjX3Bydi5wazhub3B1Yi5kZXIKLSMKLSMgVGFrZSBgZWNfcHJ2LnBrOC5kZXJgIGFuZCByZW1vdmUgYHByaXZhdGVLZXkucHVibGljS2V5YC4KLSMKLSMgIyBlY19wcnYucGs4bm9wdWJwYXJhbS5kZXIKLSMKLSMgVGFrZSBgZWNfcHJ2LnBrOG5vcHViLmRlcmAgYW5kIGFkZCBgcHJpdmF0ZUtleS5wYXJhbWV0ZXJzYCwgdGhlIHNhbWUgdmFsdWUgYXMKLSMgYHByaXZhdGVLZXlBbGdvcml0aG0ubmFtZWRDdXJ2ZWAuIERvbid0IGZvcmdldCB0byBhZGQgdGhlIGV4cGxpY2l0IHRhZy4KLSMKLSMgIyBlY19wcnYucGs4cGFyYW0uZGVyCi0jCi0jIFRha2UgYGVjX3Bydi5wazguZGVyYCBhbmQgYWRkIGBwcml2YXRlS2V5LnBhcmFtZXRlcnNgLCB0aGUgc2FtZSB2YWx1ZSBhcwotIyBgcHJpdmF0ZUtleUFsZ29yaXRobS5uYW1lZEN1cnZlYC4gRG9uJ3QgZm9yZ2V0IHRvIGFkZCB0aGUgZXhwbGljaXQgdGFnLgotCi1lY19wcnYucGs4LnBlbTogZWNfcHJ2LnBrOC5kZXIKLQkkKE9QRU5TU0wpIHBrZXkgLWluICQ8IC1pbmZvcm0gREVSIC1vdXQgJEAKLWFsbF9maW5hbCArPSBlY19wcnYucGs4LnBlbQotZWNfcHJ2LnBrOG5vcHViLnBlbTogZWNfcHJ2LnBrOG5vcHViLmRlcgotCSQoT1BFTlNTTCkgcGtleSAtaW4gJDwgLWluZm9ybSBERVIgLW91dCAkQAotYWxsX2ZpbmFsICs9IGVjX3Bydi5wazhub3B1Yi5wZW0KLWVjX3Bydi5wazhub3B1YnBhcmFtLnBlbTogZWNfcHJ2LnBrOG5vcHVicGFyYW0uZGVyCi0JJChPUEVOU1NMKSBwa2V5IC1pbiAkPCAtaW5mb3JtIERFUiAtb3V0ICRACi1hbGxfZmluYWwgKz0gZWNfcHJ2LnBrOG5vcHVicGFyYW0ucGVtCi1lY19wcnYucGs4cGFyYW0ucGVtOiBlY19wcnYucGs4cGFyYW0uZGVyCi0JJChPUEVOU1NMKSBwa2V5IC1pbiAkPCAtaW5mb3JtIERFUiAtb3V0ICRACi1hbGxfZmluYWwgKz0gZWNfcHJ2LnBrOHBhcmFtLnBlbQotCi1lY19wdWIucGVtOiBlY19wcnYuc2VjMS5kZXIKLQkkKE9QRU5TU0wpIHBrZXkgLWluICQ8IC1pbmZvcm0gREVSIC1vdXRmb3JtIFBFTSAtcHVib3V0IC1vdXQgJEAKLWFsbF9maW5hbCArPSBlY19wdWIucGVtCi0KLWVjX3Bydi5zZWMxLmNvbXAucGVtOiBlY19wcnYuc2VjMS5wZW0KLQkkKE9QRU5TU0wpIGVjIC1pbiAkPCAtb3V0ICRAIC1jb252X2Zvcm0gY29tcHJlc3NlZAotYWxsX2ZpbmFsICs9IGVjX3Bydi5zZWMxLmNvbXAucGVtCi0KLWVjXzIyNF9wcnYuY29tcC5wZW06IGVjXzIyNF9wcnYucGVtCi0JJChPUEVOU1NMKSBlYyAtaW4gJDwgLW91dCAkQCAtY29udl9mb3JtIGNvbXByZXNzZWQKLWFsbF9maW5hbCArPSBlY18yMjRfcHJ2LmNvbXAucGVtCi0KLWVjXzI1Nl9wcnYuY29tcC5wZW06IGVjXzI1Nl9wcnYucGVtCi0JJChPUEVOU1NMKSBlYyAtaW4gJDwgLW91dCAkQCAtY29udl9mb3JtIGNvbXByZXNzZWQKLWFsbF9maW5hbCArPSBlY18yNTZfcHJ2LmNvbXAucGVtCi0KLWVjXzM4NF9wcnYuY29tcC5wZW06IGVjXzM4NF9wcnYucGVtCi0JJChPUEVOU1NMKSBlYyAtaW4gJDwgLW91dCAkQCAtY29udl9mb3JtIGNvbXByZXNzZWQKLWFsbF9maW5hbCArPSBlY18zODRfcHJ2LmNvbXAucGVtCi0KLWVjXzUyMV9wcnYuY29tcC5wZW06IGVjXzUyMV9wcnYucGVtCi0JJChPUEVOU1NMKSBlYyAtaW4gJDwgLW91dCAkQCAtY29udl9mb3JtIGNvbXByZXNzZWQKLWFsbF9maW5hbCArPSBlY181MjFfcHJ2LmNvbXAucGVtCi0KLWVjX2JwMjU2X3Bydi5jb21wLnBlbTogZWNfYnAyNTZfcHJ2LnBlbQotCSQoT1BFTlNTTCkgZWMgLWluICQ8IC1vdXQgJEAgLWNvbnZfZm9ybSBjb21wcmVzc2VkCi1hbGxfZmluYWwgKz0gZWNfYnAyNTZfcHJ2LmNvbXAucGVtCi0KLWVjX2JwMzg0X3Bydi5jb21wLnBlbTogZWNfYnAzODRfcHJ2LnBlbQotCSQoT1BFTlNTTCkgZWMgLWluICQ8IC1vdXQgJEAgLWNvbnZfZm9ybSBjb21wcmVzc2VkCi1hbGxfZmluYWwgKz0gZWNfYnAzODRfcHJ2LmNvbXAucGVtCi0KLWVjX2JwNTEyX3Bydi5jb21wLnBlbTogZWNfYnA1MTJfcHJ2LnBlbQotCSQoT1BFTlNTTCkgZWMgLWluICQ8IC1vdXQgJEAgLWNvbnZfZm9ybSBjb21wcmVzc2VkCi1hbGxfZmluYWwgKz0gZWNfYnA1MTJfcHJ2LmNvbXAucGVtCi0KLWVjX3B1Yi5jb21wLnBlbTogZWNfcHViLnBlbQotCSQoT1BFTlNTTCkgZWMgLXB1YmluIC1pbiAkPCAtb3V0ICRAIC1jb252X2Zvcm0gY29tcHJlc3NlZAotYWxsX2ZpbmFsICs9IGVjX3B1Yi5jb21wLnBlbQotCi1lY18yMjRfcHViLmNvbXAucGVtOiBlY18yMjRfcHViLnBlbQotCSQoT1BFTlNTTCkgZWMgLXB1YmluIC1pbiAkPCAtb3V0ICRAIC1jb252X2Zvcm0gY29tcHJlc3NlZAotYWxsX2ZpbmFsICs9IGVjXzIyNF9wdWIuY29tcC5wZW0KLQotZWNfMjU2X3B1Yi5jb21wLnBlbTogZWNfMjU2X3B1Yi5wZW0KLQkkKE9QRU5TU0wpIGVjIC1wdWJpbiAtaW4gJDwgLW91dCAkQCAtY29udl9mb3JtIGNvbXByZXNzZWQKLWFsbF9maW5hbCArPSBlY18yNTZfcHViLmNvbXAucGVtCi0KLWVjXzM4NF9wdWIuY29tcC5wZW06IGVjXzM4NF9wdWIucGVtCi0JJChPUEVOU1NMKSBlYyAtcHViaW4gLWluICQ8IC1vdXQgJEAgLWNvbnZfZm9ybSBjb21wcmVzc2VkCi1hbGxfZmluYWwgKz0gZWNfMzg0X3B1Yi5jb21wLnBlbQotCi1lY181MjFfcHViLmNvbXAucGVtOiBlY181MjFfcHViLnBlbQotCSQoT1BFTlNTTCkgZWMgLXB1YmluIC1pbiAkPCAtb3V0ICRAIC1jb252X2Zvcm0gY29tcHJlc3NlZAotYWxsX2ZpbmFsICs9IGVjXzUyMV9wdWIuY29tcC5wZW0KLQotZWNfYnAyNTZfcHViLmNvbXAucGVtOiBlY19icDI1Nl9wdWIucGVtCi0JJChPUEVOU1NMKSBlYyAtcHViaW4gLWluICQ8IC1vdXQgJEAgLWNvbnZfZm9ybSBjb21wcmVzc2VkCi1hbGxfZmluYWwgKz0gZWNfYnAyNTZfcHViLmNvbXAucGVtCi0KLWVjX2JwMzg0X3B1Yi5jb21wLnBlbTogZWNfYnAzODRfcHViLnBlbQotCSQoT1BFTlNTTCkgZWMgLXB1YmluIC1pbiAkPCAtb3V0ICRAIC1jb252X2Zvcm0gY29tcHJlc3NlZAotYWxsX2ZpbmFsICs9IGVjX2JwMzg0X3B1Yi5jb21wLnBlbQotCi1lY19icDUxMl9wdWIuY29tcC5wZW06IGVjX2JwNTEyX3B1Yi5wZW0KLQkkKE9QRU5TU0wpIGVjIC1wdWJpbiAtaW4gJDwgLW91dCAkQCAtY29udl9mb3JtIGNvbXByZXNzZWQKLWFsbF9maW5hbCArPSBlY19icDUxMl9wdWIuY29tcC5wZW0KLQotZWNfeDI1NTE5X3Bydi5kZXI6Ci0JJChPUEVOU1NMKSBnZW5wa2V5IC1hbGdvcml0aG0gWDI1NTE5IC1vdXQgJEAgLW91dGZvcm0gREVSCi1hbGxfZmluYWwgKz0gZWNfeDI1NTE5X3Bydi5kZXIKLQotZWNfeDI1NTE5X3B1Yi5kZXI6IGVjX3gyNTUxOV9wcnYuZGVyCi0JJChPUEVOU1NMKSBwa2V5IC1pbiAkPCAtaW5mb3JtIERFUiAtb3V0ICRAIC1vdXRmb3JtIERFUiAtcHVib3V0Ci1hbGxfZmluYWwgKz0gZWNfeDI1NTE5X3B1Yi5kZXIKLQotZWNfeDI1NTE5X3Bydi5wZW06IGVjX3gyNTUxOV9wcnYuZGVyCi0JJChPUEVOU1NMKSBwa2V5IC1pbiAkPCAtaW5mb3JtIERFUiAtb3V0ICRACi1hbGxfZmluYWwgKz0gZWNfeDI1NTE5X3Bydi5wZW0KLQotZWNfeDI1NTE5X3B1Yi5wZW06IGVjX3gyNTUxOV9wcnYuZGVyCi0JJChPUEVOU1NMKSBwa2V5IC1pbiAkPCAtaW5mb3JtIERFUiAtb3V0ICRAIC1wdWJvdXQKLWFsbF9maW5hbCArPSBlY194MjU1MTlfcHViLnBlbQotCi1lY194NDQ4X3Bydi5kZXI6Ci0JJChPUEVOU1NMKSBnZW5wa2V5IC1hbGdvcml0aG0gWDQ0OCAtb3V0ICRAIC1vdXRmb3JtIERFUgotYWxsX2ZpbmFsICs9IGVjX3g0NDhfcHJ2LmRlcgotCi1lY194NDQ4X3B1Yi5kZXI6IGVjX3g0NDhfcHJ2LmRlcgotCSQoT1BFTlNTTCkgcGtleSAtaW4gJDwgLWluZm9ybSBERVIgLW91dCAkQCAtb3V0Zm9ybSBERVIgLXB1Ym91dAotYWxsX2ZpbmFsICs9IGVjX3g0NDhfcHViLmRlcgotCi1lY194NDQ4X3Bydi5wZW06IGVjX3g0NDhfcHJ2LmRlcgotCSQoT1BFTlNTTCkgcGtleSAtaW4gJDwgLWluZm9ybSBERVIgLW91dCAkQAotYWxsX2ZpbmFsICs9IGVjX3g0NDhfcHJ2LnBlbQotCi1lY194NDQ4X3B1Yi5wZW06IGVjX3g0NDhfcHJ2LmRlcgotCSQoT1BFTlNTTCkgcGtleSAtaW4gJDwgLWluZm9ybSBERVIgLW91dCAkQCAtcHVib3V0Ci1hbGxfZmluYWwgKz0gZWNfeDQ0OF9wdWIucGVtCi0KLSMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSMjIyMgQ29udmVydCBQRU0ga2V5cyB0byBERVIgZm9ybWF0Ci0jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi1zZXJ2ZXIxLnB1YmtleS5kZXI6IHNlcnZlcjEucHVia2V5Ci0JJChPUEVOU1NMKSBwa2V5IC1wdWJpbiAtaW4gJDwgLW91dCAkQCAtb3V0Zm9ybSBERVIKLWFsbF9maW5hbCArPSBzZXJ2ZXIxLnB1YmtleS5kZXIKLQotcnNhNDA5Nl9wdWIuZGVyOiByc2E0MDk2X3B1Yi5wZW0KLQkkKE9QRU5TU0wpIHBrZXkgLXB1YmluIC1pbiAkPCAtb3V0ICRAIC1vdXRmb3JtIERFUgotYWxsX2ZpbmFsICs9IHJzYTQwOTZfcHViLmRlcgotCi1lY19wdWIuZGVyOiBlY19wdWIucGVtCi0JJChPUEVOU1NMKSBwa2V5IC1wdWJpbiAtaW4gJDwgLW91dCAkQCAtb3V0Zm9ybSBERVIKLWFsbF9maW5hbCArPSBlY19wdWIuZGVyCi0KLWVjXzUyMV9wdWIuZGVyOiBlY181MjFfcHViLnBlbQotCSQoT1BFTlNTTCkgcGtleSAtcHViaW4gLWluICQ8IC1vdXQgJEAgLW91dGZvcm0gREVSCi1hbGxfZmluYWwgKz0gZWNfNTIxX3B1Yi5kZXIKLQotZWNfYnA1MTJfcHViLmRlcjogZWNfYnA1MTJfcHViLnBlbQotCSQoT1BFTlNTTCkgcGtleSAtcHViaW4gLWluICQ8IC1vdXQgJEAgLW91dGZvcm0gREVSCi1hbGxfZmluYWwgKz0gZWNfYnA1MTJfcHViLmRlcgotCi1zZXJ2ZXIxLmtleS5kZXI6IHNlcnZlcjEua2V5Ci0JJChPUEVOU1NMKSBwa2V5IC1pbiAkPCAtb3V0ICRAIC1vdXRmb3JtIERFUgotYWxsX2ZpbmFsICs9IHNlcnZlcjEua2V5LmRlcgotCi1yc2E0MDk2X3Bydi5kZXI6IHJzYTQwOTZfcHJ2LnBlbQotCSQoT1BFTlNTTCkgcGtleSAtaW4gJDwgLW91dCAkQCAtb3V0Zm9ybSBERVIKLWFsbF9maW5hbCArPSByc2E0MDk2X3Bydi5kZXIKLQotZWNfcHJ2LnNlYzEuZGVyOiBlY19wcnYuc2VjMS5wZW0KLQkkKE9QRU5TU0wpIHBrZXkgLWluICQ8IC1vdXQgJEAgLW91dGZvcm0gREVSCi1hbGxfZmluYWwgKz0gZWNfcHJ2LnNlYzEuZGVyCi0KLWVjXzI1Nl9sb25nX3Bydi5kZXI6IGVjXzI1Nl9sb25nX3Bydi5wZW0KLQkkKE9QRU5TU0wpIHBrZXkgLWluICQ8IC1vdXQgJEAgLW91dGZvcm0gREVSCi1hbGxfZmluYWwgKz0gZWNfMjU2X2xvbmdfcHJ2LmRlcgotCi1lY181MjFfcHJ2LmRlcjogZWNfNTIxX3Bydi5wZW0KLQkkKE9QRU5TU0wpIHBrZXkgLWluICQ8IC1vdXQgJEAgLW91dGZvcm0gREVSCi1hbGxfZmluYWwgKz0gZWNfNTIxX3Bydi5kZXIKLQotZWNfNTIxX3Nob3J0X3Bydi5kZXI6IGVjXzUyMV9zaG9ydF9wcnYucGVtCi0JJChPUEVOU1NMKSBwa2V5IC1pbiAkPCAtb3V0ICRAIC1vdXRmb3JtIERFUgotYWxsX2ZpbmFsICs9IGVjXzUyMV9zaG9ydF9wcnYuZGVyCi0KLWVjX2JwNTEyX3Bydi5kZXI6IGVjX2JwNTEyX3Bydi5wZW0KLQkkKE9QRU5TU0wpIHBrZXkgLWluICQ8IC1vdXQgJEAgLW91dGZvcm0gREVSCi1hbGxfZmluYWwgKz0gZWNfYnA1MTJfcHJ2LmRlcgotCi0jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0jIyMgR2VuZXJhdGUgQ1NScyBmb3IgWC41MDkgd3JpdGUgdGVzdCBzdWl0ZQotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotCi1wYXJzZV9pbnB1dC9zZXJ2ZXIxLnJlcS5zaGExIHNlcnZlcjEucmVxLnNoYTE6IHNlcnZlcjEua2V5Ci0JJChNQkVEVExTX0NFUlRfUkVRKSBvdXRwdXRfZmlsZT0kQCBmaWxlbmFtZT0kPCBzdWJqZWN0X25hbWU9IkM9TkwsTz1Qb2xhclNTTCxDTj1Qb2xhclNTTCBTZXJ2ZXIgMSIgbWQ9U0hBMQotYWxsX2ZpbmFsICs9IHNlcnZlcjEucmVxLnNoYTEKLQotcGFyc2VfaW5wdXQvc2VydmVyMS5yZXEubWQ1IHNlcnZlcjEucmVxLm1kNTogc2VydmVyMS5rZXkKLQkkKE1CRURUTFNfQ0VSVF9SRVEpIG91dHB1dF9maWxlPSRAIGZpbGVuYW1lPSQ8IHN1YmplY3RfbmFtZT0iQz1OTCxPPVBvbGFyU1NMLENOPVBvbGFyU1NMIFNlcnZlciAxIiBtZD1NRDUKLWFsbF9maW5hbCArPSBzZXJ2ZXIxLnJlcS5tZDUKLQotcGFyc2VfaW5wdXQvc2VydmVyMS5yZXEuc2hhMjI0IHNlcnZlcjEucmVxLnNoYTIyNDogc2VydmVyMS5rZXkKLQkkKE1CRURUTFNfQ0VSVF9SRVEpIG91dHB1dF9maWxlPSRAIGZpbGVuYW1lPSQ8IHN1YmplY3RfbmFtZT0iQz1OTCxPPVBvbGFyU1NMLENOPVBvbGFyU1NMIFNlcnZlciAxIiBtZD1TSEEyMjQKLWFsbF9maW5hbCArPSBzZXJ2ZXIxLnJlcS5zaGEyMjQKLQotcGFyc2VfaW5wdXQvc2VydmVyMS5yZXEuc2hhMjU2IHNlcnZlcjEucmVxLnNoYTI1Njogc2VydmVyMS5rZXkKLQkkKE1CRURUTFNfQ0VSVF9SRVEpIG91dHB1dF9maWxlPSRAIGZpbGVuYW1lPSQ8IHN1YmplY3RfbmFtZT0iQz1OTCxPPVBvbGFyU1NMLENOPVBvbGFyU1NMIFNlcnZlciAxIiBtZD1TSEEyNTYKLWFsbF9maW5hbCArPSBzZXJ2ZXIxLnJlcS5zaGEyNTYKLQotc2VydmVyMS5yZXEuc2hhMjU2LmV4dDogc2VydmVyMS5rZXkKLQkjIEdlbmVyYXRpbmcgdGhpcyB3aXRoIE9wZW5TU0wgYXMgYSBjb21wYXJpc29uIHBvaW50IHRvIHRlc3Qgd2UncmUgZ2V0dGluZyB0aGUgc2FtZSByZXN1bHQKLQlvcGVuc3NsIHJlcSAtbmV3IC1vdXQgJEAgLWtleSAkPCAtc3ViaiAnL0M9TkwvTz1Qb2xhclNTTC9DTj1Qb2xhclNTTCBTZXJ2ZXIgMScgLXNoYTI1NiAtY29uZmlnIHNlcnZlcjEucmVxLnNoYTI1Ni5jb25mCi0KLXBhcnNlX2lucHV0L3NlcnZlcjEucmVxLnNoYTM4NCBzZXJ2ZXIxLnJlcS5zaGEzODQ6IHNlcnZlcjEua2V5Ci0JJChNQkVEVExTX0NFUlRfUkVRKSBvdXRwdXRfZmlsZT0kQCBmaWxlbmFtZT0kPCBzdWJqZWN0X25hbWU9IkM9TkwsTz1Qb2xhclNTTCxDTj1Qb2xhclNTTCBTZXJ2ZXIgMSIgbWQ9U0hBMzg0Ci1hbGxfZmluYWwgKz0gc2VydmVyMS5yZXEuc2hhMzg0Ci0KLXBhcnNlX2lucHV0L3NlcnZlcjEucmVxLnNoYTUxMiBzZXJ2ZXIxLnJlcS5zaGE1MTI6IHNlcnZlcjEua2V5Ci0JJChNQkVEVExTX0NFUlRfUkVRKSBvdXRwdXRfZmlsZT0kQCBmaWxlbmFtZT0kPCBzdWJqZWN0X25hbWU9IkM9TkwsTz1Qb2xhclNTTCxDTj1Qb2xhclNTTCBTZXJ2ZXIgMSIgbWQ9U0hBNTEyCi1hbGxfZmluYWwgKz0gc2VydmVyMS5yZXEuc2hhNTEyCi0KLXNlcnZlcjEucmVxLmNlcnRfdHlwZTogc2VydmVyMS5rZXkKLQkkKE1CRURUTFNfQ0VSVF9SRVEpIG91dHB1dF9maWxlPSRAIGZpbGVuYW1lPSQ8IG5zX2NlcnRfdHlwZT1zc2xfc2VydmVyIHN1YmplY3RfbmFtZT0iQz1OTCxPPVBvbGFyU1NMLENOPVBvbGFyU1NMIFNlcnZlciAxIiBtZD1TSEExCi1hbGxfZmluYWwgKz0gc2VydmVyMS5yZXEuY2VydF90eXBlCi0KLXNlcnZlcjEucmVxLmtleV91c2FnZTogc2VydmVyMS5rZXkKLQkkKE1CRURUTFNfQ0VSVF9SRVEpIG91dHB1dF9maWxlPSRAIGZpbGVuYW1lPSQ8IGtleV91c2FnZT1kaWdpdGFsX3NpZ25hdHVyZSxub25fcmVwdWRpYXRpb24sa2V5X2VuY2lwaGVybWVudCBzdWJqZWN0X25hbWU9IkM9TkwsTz1Qb2xhclNTTCxDTj1Qb2xhclNTTCBTZXJ2ZXIgMSIgbWQ9U0hBMQotYWxsX2ZpbmFsICs9IHNlcnZlcjEucmVxLmtleV91c2FnZQotCi1zZXJ2ZXIxLnJlcS5rdS1jdDogc2VydmVyMS5rZXkKLQkkKE1CRURUTFNfQ0VSVF9SRVEpIG91dHB1dF9maWxlPSRAIGZpbGVuYW1lPSQ8IGtleV91c2FnZT1kaWdpdGFsX3NpZ25hdHVyZSxub25fcmVwdWRpYXRpb24sa2V5X2VuY2lwaGVybWVudCBuc19jZXJ0X3R5cGU9c3NsX3NlcnZlciBzdWJqZWN0X25hbWU9IkM9TkwsTz1Qb2xhclNTTCxDTj1Qb2xhclNTTCBTZXJ2ZXIgMSIgbWQ9U0hBMQotYWxsX2ZpbmFsICs9IHNlcnZlcjEucmVxLmt1LWN0Ci0KLXNlcnZlcjEucmVxLmtleV91c2FnZV9lbXB0eTogc2VydmVyMS5rZXkKLQkkKE1CRURUTFNfQ0VSVF9SRVEpIG91dHB1dF9maWxlPSRAIGZpbGVuYW1lPSQ8IHN1YmplY3RfbmFtZT0iQz1OTCxPPVBvbGFyU1NMLENOPVBvbGFyU1NMIFNlcnZlciAxIiBtZD1TSEExIGZvcmNlX2tleV91c2FnZT0xCi1hbGxfZmluYWwgKz0gc2VydmVyMS5yZXEua2V5X3VzYWdlX2VtcHR5Ci0KLXNlcnZlcjEucmVxLmNlcnRfdHlwZV9lbXB0eTogc2VydmVyMS5rZXkKLQkkKE1CRURUTFNfQ0VSVF9SRVEpIG91dHB1dF9maWxlPSRAIGZpbGVuYW1lPSQ8IHN1YmplY3RfbmFtZT0iQz1OTCxPPVBvbGFyU1NMLENOPVBvbGFyU1NMIFNlcnZlciAxIiBtZD1TSEExIGZvcmNlX25zX2NlcnRfdHlwZT0xCi1hbGxfZmluYWwgKz0gc2VydmVyMS5yZXEuY2VydF90eXBlX2VtcHR5Ci0KLXBhcnNlX2lucHV0L3NlcnZlcjEucmVxLmNvbW1hcy5zaGEyNTY6IHNlcnZlcjEua2V5Ci0JJChNQkVEVExTX0NFUlRfUkVRKSBvdXRwdXRfZmlsZT0kQCBmaWxlbmFtZT0kPCBzdWJqZWN0X25hbWU9IkM9TkwsTz1Qb2xhclNTTFwsIENvbW1hcyxDTj1Qb2xhclNTTCBTZXJ2ZXIgMSIgbWQ9U0hBMjU2Ci0KLXBhcnNlX2lucHV0L3NlcnZlcjEucmVxLmhhc2hzeW1ib2wuc2hhMjU2OiBzZXJ2ZXIxLmtleQotCSQoTUJFRFRMU19DRVJUX1JFUSkgb3V0cHV0X2ZpbGU9JEAgZmlsZW5hbWU9JDwgc3ViamVjdF9uYW1lPSJDPU5MLE89XCNQb2xhclNTTCxDTj1Qb2xhclNTTCBTZXJ2ZXIgMSIgbWQ9U0hBMjU2Ci0KLXBhcnNlX2lucHV0L3NlcnZlcjEucmVxLnNwYWNlcy5zaGEyNTY6IHNlcnZlcjEua2V5Ci0JJChNQkVEVExTX0NFUlRfUkVRKSBvdXRwdXRfZmlsZT0kQCBmaWxlbmFtZT0kPCBzdWJqZWN0X25hbWU9IkM9TkwsTz0gUG9sYXJTU0wgLENOPVBvbGFyU1NMIFNlcnZlciAxIiBtZD1TSEEyNTYKLQotcGFyc2VfaW5wdXQvc2VydmVyMS5yZXEuYXNjaWljaGFycy5zaGEyNTY6IHNlcnZlcjEua2V5Ci0JJChNQkVEVExTX0NFUlRfUkVRKSBvdXRwdXRfZmlsZT0kQCBmaWxlbmFtZT0kPCBzdWJqZWN0X25hbWU9IkM9TkwsTz3mnoHlnLBTU0wsQ049UG9sYXJTU0wgU2VydmVyIDEiIG1kPVNIQTI1NgotIyBzZXJ2ZXIyKgotCi1zZXJ2ZXIyX3B3ZF9lYyA9IFBvbGFyU1NMVGVzdAotCi1zZXJ2ZXIyLnJlcS5zaGEyNTY6IHNlcnZlcjIua2V5Ci0JJChNQkVEVExTX0NFUlRfUkVRKSBvdXRwdXRfZmlsZT0kQCBmaWxlbmFtZT0kPCBzdWJqZWN0X25hbWU9IkM9TkwsTz1Qb2xhclNTTCxDTj1sb2NhbGhvc3QiIG1kPVNIQTI1NgotYWxsX2ludGVybWVkaWF0ZSArPSBzZXJ2ZXIyLnJlcS5zaGEyNTYKLQotcGFyc2VfaW5wdXQvc2VydmVyMi5jcnQuZGVyOiBwYXJzZV9pbnB1dC9zZXJ2ZXIyLmNydAotc2VydmVyMi5jcnQuZGVyOiBzZXJ2ZXIyLmNydAotcGFyc2VfaW5wdXQvc2VydmVyMi5jcnQuZGVyIHNlcnZlcjIuY3J0LmRlcjoKLQkkKE9QRU5TU0wpIHg1MDkgLWluZm9ybSBQRU0gLWluICQ8IC1vdXRmb3JtIERFUiAtb3V0ICRACi1hbGxfZmluYWwgKz0gc2VydmVyMi5jcnQuZGVyCi0KLXNlcnZlcjItc2hhMjU2LmNydC5kZXI6IHNlcnZlcjItc2hhMjU2LmNydAotCSQoT1BFTlNTTCkgeDUwOSAtaW5mb3JtIFBFTSAtaW4gJDwgLW91dGZvcm0gREVSIC1vdXQgJEAKLWFsbF9maW5hbCArPSBzZXJ2ZXIyLXNoYTI1Ni5jcnQuZGVyCi0KLXNlcnZlcjIua2V5LmRlcjogc2VydmVyMi5rZXkKLQkkKE9QRU5TU0wpIHBrZXkgLWluICQ8IC1vdXQgJEAgLWluZm9ybSBQRU0gLW91dGZvcm0gREVSCi1hbGxfZmluYWwgKz0gc2VydmVyMi5rZXkuZGVyCi0KLXNlcnZlcjIua2V5LmVuYzogc2VydmVyMi5rZXkKLQkkKE9QRU5TU0wpIHJzYSAtYWVzMjU2IC1pbiAkPCAtb3V0ICRAIC1wYXNzb3V0ICJwYXNzOiQoc2VydmVyMl9wd2RfZWMpIgotYWxsX2ZpbmFsICs9IHNlcnZlcjIua2V5LmVuYwotCi0jIHNlcnZlcjUqCi0KLXNlcnZlcjUuY3NyOiBzZXJ2ZXI1LmtleQotCSQoT1BFTlNTTCkgcmVxIC1uZXcgLXN1YmogIi9DPU5ML089UG9sYXJTU0wvQ049bG9jYWxob3N0IiBcCi0JCQkJCS1rZXkgJDwgLW91dCAkQAotYWxsX2ludGVybWVkaWF0ZSArPSBzZXJ2ZXI1LmNzcgotcGFyc2VfaW5wdXQvc2VydmVyNS5jcnQgc2VydmVyNS5jcnQ6IHNlcnZlcjUtc2hhMjU2LmNydAotCWNwICQ8ICRACi1hbGxfaW50ZXJtZWRpYXRlICs9IHNlcnZlcjUtc2hhMjU2LmNydAotc2VydmVyNS1zaGElLmNydDogc2VydmVyNS5jc3IgJCh0ZXN0X2NhX2NydF9maWxlX2VjKSAkKHRlc3RfY2Ffa2V5X2ZpbGVfZWMpIHNlcnZlcjUuY3J0Lm9wZW5zc2wudjNfZXh0Ci0JJChPUEVOU1NMKSB4NTA5IC1yZXEgLUNBICQodGVzdF9jYV9jcnRfZmlsZV9lYykgLUNBa2V5ICQodGVzdF9jYV9rZXlfZmlsZV9lYykgXAotCQkJCS1leHRmaWxlIHNlcnZlcjUuY3J0Lm9wZW5zc2wudjNfZXh0IC1zZXRfc2VyaWFsIDkgLWRheXMgMzY1MCBcCi0JCQkJLXNoYSQoQEY6c2VydmVyNS1zaGElLmNydD0lKSAtaW4gJDwgLW91dCAkQAotYWxsX2ZpbmFsICs9IHNlcnZlcjUuY3J0IHNlcnZlcjUtc2hhMS5jcnQgc2VydmVyNS1zaGEyMjQuY3J0IHNlcnZlcjUtc2hhMzg0LmNydCBzZXJ2ZXI1LXNoYTUxMi5jcnQKLQotc2VydmVyNS1iYWRzaWduLmNydDogc2VydmVyNS5jcnQKLQl7IGhlYWQgLW4tMiAkPDsgdGFpbCAtbi0yICQ8IHwgc2VkIC1lICcxcy8wXCg9KlwpJCQvX1wxLycgLWUgJzFzL1teXz1dXCg9KlwpJCQvMFwxLycgLWUgJzFzL18vMS8nOyB9ID4gJEAKLWFsbF9maW5hbCArPSBzZXJ2ZXI1LWJhZHNpZ24uY3J0Ci0KLSMgVGhlIHVzZSBvZiAnU2VydmVyIDEnIGluIHRoZSBETiBpcyBpbnRlbnRpb25hbCBoZXJlLCBhcyB0aGUgRE4gaXMgaGFyZGNvZGVkIGluIHRoZSB4NTA5X3dyaXRlIHRlc3Qgc3VpdGUuJwotc2VydmVyNS5yZXEua3Uuc2hhMTogc2VydmVyNS5rZXkKLQkkKE9QRU5TU0wpIHJlcSAta2V5ICQ8IC1vdXQgJEAgLW5ldyAtbm9kZXMgLXN1YmogIi9DPU5ML089UG9sYXJTU0wvQ049UG9sYXJTU0wgU2VydmVyIDEiIC1zaGExIC1hZGRleHQga2V5VXNhZ2U9ZGlnaXRhbFNpZ25hdHVyZSxub25SZXB1ZGlhdGlvbgotYWxsX2ZpbmFsICs9IHNlcnZlcjUucmVxLmt1LnNoYTEKLQotc2VydmVyNS5rdS1kcy5jcnQ6IFNFUlZFUjVfQ1JUX1NFUklBTD00NQotc2VydmVyNS5rdS1kcy5jcnQ6IFNFUlZFUjVfS0VZX1VTQUdFPWRpZ2l0YWxfc2lnbmF0dXJlCi1zZXJ2ZXI1Lmt1LWthLmNydDogU0VSVkVSNV9DUlRfU0VSSUFMPTQ2Ci1zZXJ2ZXI1Lmt1LWthLmNydDogU0VSVkVSNV9LRVlfVVNBR0U9a2V5X2FncmVlbWVudAotc2VydmVyNS5rdS1rZS5jcnQ6IFNFUlZFUjVfQ1JUX1NFUklBTD00Nwotc2VydmVyNS5rdS1rZS5jcnQ6IFNFUlZFUjVfS0VZX1VTQUdFPWtleV9lbmNpcGhlcm1lbnQKLXNlcnZlcjUuZWt1LWNzLmNydDogU0VSVkVSNV9DUlRfU0VSSUFMPTU4Ci1zZXJ2ZXI1LmVrdS1jcy5jcnQ6IFNFUlZFUjVfRVhUX0tFWV9VU0FHRT1jb2RlU2lnbmluZwotc2VydmVyNS5la3UtY3NfYW55LmNydDogU0VSVkVSNV9DUlRfU0VSSUFMPTU5Ci1zZXJ2ZXI1LmVrdS1jc19hbnkuY3J0OiBTRVJWRVI1X0VYVF9LRVlfVVNBR0U9Y29kZVNpZ25pbmcsYW55Ci1zZXJ2ZXI1LmVrdS1jbGkuY3J0OiBTRVJWRVI1X0NSVF9TRVJJQUw9NjAKLXNlcnZlcjUuZWt1LWNsaS5jcnQ6IFNFUlZFUjVfRVhUX0tFWV9VU0FHRT1jbGllbnRBdXRoCi1zZXJ2ZXI1LmVrdS1zcnZfY2xpLmNydDogU0VSVkVSNV9DUlRfU0VSSUFMPTYxCi1zZXJ2ZXI1LmVrdS1zcnZfY2xpLmNydDogU0VSVkVSNV9FWFRfS0VZX1VTQUdFPXNlcnZlckF1dGgsY2xpZW50QXV0aAotc2VydmVyNS5la3Utc3J2LmNydDogU0VSVkVSNV9DUlRfU0VSSUFMPTYyCi1zZXJ2ZXI1LmVrdS1zcnYuY3J0OiBTRVJWRVI1X0VYVF9LRVlfVVNBR0U9c2VydmVyQXV0aAotc2VydmVyNS5rdS0lLmNydDogU0VSVkVSNV9FWFRfT1BUUz1rZXlfdXNhZ2U9JChTRVJWRVI1X0tFWV9VU0FHRSkKLXNlcnZlcjUuZWt1LSUuY3J0OiBTRVJWRVI1X0VYVF9PUFRTPWV4dF9rZXlfdXNhZ2U9JChTRVJWRVI1X0VYVF9LRVlfVVNBR0UpCi1zZXJ2ZXI1LiUuY3J0OiBzZXJ2ZXI1LmtleQotCSQoTUJFRFRMU19DRVJUX1dSSVRFKSBcCi0JCXN1YmplY3Rfa2V5PSQ8IHN1YmplY3RfbmFtZT0iQz1OTCxPPVBvbGFyU1NMLENOPWxvY2FsaG9zdCIgc2VyaWFsPSQoU0VSVkVSNV9DUlRfU0VSSUFMKSBcCi0JCWlzc3Vlcl9jcnQ9JCh0ZXN0X2NhX2NydF9maWxlX2VjKSBpc3N1ZXJfa2V5PSQodGVzdF9jYV9rZXlfZmlsZV9lYykgJChTRVJWRVI1X0VYVF9PUFRTKSBcCi0JCW5vdF9iZWZvcmU9MjAxOTAyMTAxNDQ0MDYgbm90X2FmdGVyPTIwMjkwMjEwMTQ0NDA2IG1kPVNIQTI1NiB2ZXJzaW9uPTMgb3V0cHV0X2ZpbGU9JEAKLWFsbF9maW5hbCArPSBzZXJ2ZXI1Lmt1LWthLmNydCBzZXJ2ZXI1Lmt1LWtlLmNydCBzZXJ2ZXI1Lmt1LWRzLmNydAotYWxsX2ZpbmFsICs9IHNlcnZlcjUuZWt1LWNzLmNydCBzZXJ2ZXI1LmVrdS1jc19hbnkuY3J0IHNlcnZlcjUuZWt1LWNsaS5jcnQgc2VydmVyNS5la3Utc3J2X2NsaS5jcnQgc2VydmVyNS5la3Utc3J2LmNydAotCi0jIHNlcnZlcjYqCi0KLXNlcnZlcjYuY3NyOiBzZXJ2ZXI2LmtleQotCSQoT1BFTlNTTCkgcmVxIC1uZXcgLXN1YmogIi9DPU5ML089UG9sYXJTU0wvQ049bG9jYWxob3N0IiBcCi0JCQkJCS1rZXkgJDwgLW91dCAkQAotYWxsX2ludGVybWVkaWF0ZSArPSBzZXJ2ZXI2LmNzcgotc2VydmVyNi5jcnQ6IHNlcnZlcjYuY3NyICQodGVzdF9jYV9jcnRfZmlsZV9lYykgJCh0ZXN0X2NhX2tleV9maWxlX2VjKQotCSQoT1BFTlNTTCkgeDUwOSAtcmVxIC1DQSAkKHRlc3RfY2FfY3J0X2ZpbGVfZWMpIC1DQWtleSAkKHRlc3RfY2Ffa2V5X2ZpbGVfZWMpIFwKLQkJCQktZXh0ZmlsZSBzZXJ2ZXI1LmNydC5vcGVuc3NsLnYzX2V4dCAtc2V0X3NlcmlhbCAxMCAtZGF5cyAzNjUwIC1zaGEyNTYgLWluICQ8IC1vdXQgJEAKLWFsbF9maW5hbCArPSBzZXJ2ZXI2LmNydAotCi1zZXJ2ZXI2LXNzLWNoaWxkLmNzciA6IHNlcnZlcjYua2V5Ci0JJChPUEVOU1NMKSByZXEgLW5ldyAtc3ViaiAiL0NOPXNlbGZzaWduZWQtY2hpbGQvT1U9dGVzdGluZy9PPVBvbGFyU1NML0M9TkwiIFwKLQkJLWtleSAkPCAtb3V0ICRACi1hbGxfaW50ZXJtZWRpYXRlICs9IHNlcnZlcjYtc3MtY2hpbGQuY3NyCi1zZXJ2ZXI2LXNzLWNoaWxkLmNydDogc2VydmVyNi1zcy1jaGlsZC5jc3Igc2VydmVyNS1zZWxmc2lnbmVkLmNydCBzZXJ2ZXI1LmtleSBzZXJ2ZXI2LXNzLWNoaWxkLmNydC5vcGVuc3NsLnYzX2V4dAotCSQoT1BFTlNTTCkgeDUwOSAtcmVxIC1DQSBzZXJ2ZXI1LXNlbGZzaWduZWQuY3J0IC1DQWtleSBzZXJ2ZXI1LmtleSBcCi0JCS1leHRmaWxlIHNlcnZlcjYtc3MtY2hpbGQuY3J0Lm9wZW5zc2wudjNfZXh0IFwKLQkJLXNldF9zZXJpYWwgMHg1M2EyY2I1ODIyMzk5NDc0YTdlYzc5ZWMgXAotCQktZGF5cyAzNjUwIC1zaGEyNTYgLWluICQ8IC1vdXQgJEAKLWFsbF9maW5hbCArPSBzZXJ2ZXI2LXNzLWNoaWxkLmNydAotCi0KLSMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSMjIyBHZW5lcmF0ZSBjZXJ0aWZpY2F0ZXMgZm9yIENSVCB3cml0ZSBjaGVjayB0ZXN0cwotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotCi0jIyMgVGhlIHRlc3QgZmlsZXMgdXNlIHRoZSBNYmVkIFRMUyBnZW5lcmF0ZWQgY2VydGlmaWNhdGVzIHNlcnZlcjEqLmNydCwKLSMjIyBidXQgZm9yIGNvbXBhcmlzb24gd2l0aCBPcGVuU1NMIGFsc28gcnVsZXMgZm9yIE9wZW5TU0wtZ2VuZXJhdGVkCi0jIyMgY2VydGlmaWNhdGVzIHNlcnZlcjEqLmNydC5vcGVuc3NsIGFyZSBvZmZlcmVkLgotIyMjCi0jIyMgS25vd24gZGlmZmVyZW5jZXM6Ci0jIyMgKiBPcGVuU1NMIGVuY29kZXMgdHJhaWxpbmcgemVyby1iaXRzIGluIGJpdC1zdHJpbmdzIG9jY3VycmluZyBpbiBYLjUwOSBleHRlbnNpb24KLSMjIyAgIGFzIHVudXNlZCBiaXRzLCB3aGlsZSBNYmVkIFRMUyBkb2Vzbid0LgotCi10ZXN0X2NhX3NlcnZlcjFfZGIgPSB0ZXN0LWNhLnNlcnZlcjEuZGIKLXRlc3RfY2Ffc2VydmVyMV9zZXJpYWwgPSB0ZXN0LWNhLnNlcnZlcjEuc2VyaWFsCi10ZXN0X2NhX3NlcnZlcjFfY29uZmlnX2ZpbGUgPSB0ZXN0LWNhLnNlcnZlcjEub3BlbnNzbGNvbmYKLQotIyBzZXJ2ZXIxKgotCi1wYXJzZV9pbnB1dC9zZXJ2ZXIxLmNydDogcGFyc2VfaW5wdXQvc2VydmVyMS5yZXEuc2hhMjU2Ci1zZXJ2ZXIxLmNydDogc2VydmVyMS5yZXEuc2hhMjU2Ci1wYXJzZV9pbnB1dC9zZXJ2ZXIxLmNydCBzZXJ2ZXIxLmNydDogJCh0ZXN0X2NhX2NydCkgJCh0ZXN0X2NhX2tleV9maWxlX3JzYSkKLXBhcnNlX2lucHV0L3NlcnZlcjEuY3J0IHNlcnZlcjEuY3J0OgotCSQoTUJFRFRMU19DRVJUX1dSSVRFKSByZXF1ZXN0X2ZpbGU9JChARCkvc2VydmVyMS5yZXEuc2hhMjU2IFwKLQkJaXNzdWVyX2NydD0kKHRlc3RfY2FfY3J0KSBpc3N1ZXJfa2V5PSQodGVzdF9jYV9rZXlfZmlsZV9yc2EpIFwKLQkJaXNzdWVyX3B3ZD0kKHRlc3RfY2FfcHdkX3JzYSkgdmVyc2lvbj0xIFwKLQkJbm90X2JlZm9yZT0yMDE5MDIxMDE0NDQwNiBub3RfYWZ0ZXI9MjAyOTAyMTAxNDQ0MDYgXAotCQltZD1TSEExIHZlcnNpb249MyBvdXRwdXRfZmlsZT0kQAotc2VydmVyMS5hbGxTdWJqZWN0QWx0TmFtZXMuY3J0OiBzZXJ2ZXIxLmtleSBzZXJ2ZXIxLnJlcS5zaGEyNTYgJCh0ZXN0X2NhX2NydCkgJCh0ZXN0X2NhX2tleV9maWxlX3JzYSkKLQkkKE1CRURUTFNfQ0VSVF9XUklURSkgcmVxdWVzdF9maWxlPXNlcnZlcjEucmVxLnNoYTI1NiBpc3N1ZXJfY3J0PSQodGVzdF9jYV9jcnQpIGlzc3Vlcl9rZXk9JCh0ZXN0X2NhX2tleV9maWxlX3JzYSkgaXNzdWVyX3B3ZD0kKHRlc3RfY2FfcHdkX3JzYSkgdmVyc2lvbj0xIG5vdF9iZWZvcmU9MjAxOTAyMTAxNDQ0MDYgbm90X2FmdGVyPTIwMjkwMjEwMTQ0NDA2IG1kPVNIQTEgdmVyc2lvbj0zIG91dHB1dF9maWxlPSRAIHNhbj1VUkk6aHR0cDovL3BraS5leGFtcGxlLmNvbVw7SVA6MS4yLjMuNFw7RE46Qz1VSyxPPSJNYmVkIFRMUyIsQ049IlN1YmplY3RBbHROYW1lIHRlc3QiXDtETlM6ZXhhbXBsZS5jb21cO1JGQzgyMjptYWlsQGV4YW1wbGUuY29tCi1zZXJ2ZXIxLmxvbmdfc2VyaWFsLmNydDogc2VydmVyMS5rZXkgc2VydmVyMS5yZXEuc2hhMjU2ICQodGVzdF9jYV9jcnQpICQodGVzdF9jYV9rZXlfZmlsZV9yc2EpCi0JZWNobyAiMTEyMjMzNDQ1NTY2Nzc4ODk5YWFiYmNjZGRlZWZmMDAxMTIyMzM0NCIgPiB0ZXN0LWNhLnNlcnZlcjEudG1wLnNlcmlhbAotCSQoT1BFTlNTTCkgY2EgLWluIHNlcnZlcjEucmVxLnNoYTI1NiAta2V5IFBvbGFyU1NMVGVzdCAtY29uZmlnIHRlc3QtY2Euc2VydmVyMS50ZXN0X3NlcmlhbC5vcGVuc3NsY29uZiAtbm90ZXh0IC1iYXRjaCAtb3V0ICRACi1zZXJ2ZXIxLjgwc2VyaWFsLmNydDogc2VydmVyMS5rZXkgc2VydmVyMS5yZXEuc2hhMjU2ICQodGVzdF9jYV9jcnQpICQodGVzdF9jYV9rZXlfZmlsZV9yc2EpCi0JZWNobyAiODAxMTIyMzM0NCIgPiB0ZXN0LWNhLnNlcnZlcjEudG1wLnNlcmlhbAotCSQoT1BFTlNTTCkgY2EgLWluIHNlcnZlcjEucmVxLnNoYTI1NiAta2V5IFBvbGFyU1NMVGVzdCAtY29uZmlnIHRlc3QtY2Euc2VydmVyMS50ZXN0X3NlcmlhbC5vcGVuc3NsY29uZiAtbm90ZXh0IC1iYXRjaCAtb3V0ICRACi1zZXJ2ZXIxLmxvbmdfc2VyaWFsX0ZGLmNydDogc2VydmVyMS5rZXkgc2VydmVyMS5yZXEuc2hhMjU2ICQodGVzdF9jYV9jcnQpICQodGVzdF9jYV9rZXlfZmlsZV9yc2EpCi0JZWNobyAiZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYiID4gdGVzdC1jYS5zZXJ2ZXIxLnRtcC5zZXJpYWwKLQkkKE9QRU5TU0wpIGNhIC1pbiBzZXJ2ZXIxLnJlcS5zaGEyNTYgLWtleSBQb2xhclNTTFRlc3QgLWNvbmZpZyB0ZXN0LWNhLnNlcnZlcjEudGVzdF9zZXJpYWwub3BlbnNzbGNvbmYgLW5vdGV4dCAtYmF0Y2ggLW91dCAkQAotc2VydmVyMS5ub2F1dGhpZC5jcnQ6IHNlcnZlcjEua2V5IHNlcnZlcjEucmVxLnNoYTI1NiAkKHRlc3RfY2FfY3J0KSAkKHRlc3RfY2Ffa2V5X2ZpbGVfcnNhKQotCSQoTUJFRFRMU19DRVJUX1dSSVRFKSByZXF1ZXN0X2ZpbGU9c2VydmVyMS5yZXEuc2hhMjU2IGlzc3Vlcl9jcnQ9JCh0ZXN0X2NhX2NydCkgaXNzdWVyX2tleT0kKHRlc3RfY2Ffa2V5X2ZpbGVfcnNhKSBpc3N1ZXJfcHdkPSQodGVzdF9jYV9wd2RfcnNhKSBub3RfYmVmb3JlPTIwMTkwMjEwMTQ0NDA2IG5vdF9hZnRlcj0yMDI5MDIxMDE0NDQwNiBtZD1TSEExIGF1dGhvcml0eV9pZGVudGlmaWVyPTAgdmVyc2lvbj0zIG91dHB1dF9maWxlPSRACi1wYXJzZV9pbnB1dC9zZXJ2ZXIxLmNydC5kZXI6IHBhcnNlX2lucHV0L3NlcnZlcjEuY3J0Ci0JJChNQkVEVExTX0NFUlRfV1JJVEUpIHJlcXVlc3RfZmlsZT1zZXJ2ZXIxLnJlcS5zaGEyNTYgXAotCQlpc3N1ZXJfY3J0PSQodGVzdF9jYV9jcnQpIGlzc3Vlcl9rZXk9JCh0ZXN0X2NhX2tleV9maWxlX3JzYSkgXAotCQlpc3N1ZXJfcHdkPSQodGVzdF9jYV9wd2RfcnNhKSBcCi0JCW5vdF9iZWZvcmU9MjAxOTAyMTAxNDQ0MDYgbm90X2FmdGVyPTIwMjkwMjEwMTQ0NDA2IFwKLQkJbWQ9U0hBMSBhdXRob3JpdHlfaWRlbnRpZmllcj0wIHZlcnNpb249MyBvdXRwdXRfZmlsZT0kQAotc2VydmVyMS5kZXI6IHNlcnZlcjEuY3J0Ci0JJChPUEVOU1NMKSB4NTA5IC1pbmZvcm0gUEVNIC1pbiAkPCAtb3V0Zm9ybSBERVIgLW91dCAkQAotc2VydmVyMS5jb21tYXMuY3J0OiBzZXJ2ZXIxLmtleSBwYXJzZV9pbnB1dC9zZXJ2ZXIxLnJlcS5jb21tYXMuc2hhMjU2ICQodGVzdF9jYV9jcnQpICQodGVzdF9jYV9rZXlfZmlsZV9yc2EpCi0JJChNQkVEVExTX0NFUlRfV1JJVEUpIHJlcXVlc3RfZmlsZT1wYXJzZV9pbnB1dC9zZXJ2ZXIxLnJlcS5jb21tYXMuc2hhMjU2IGlzc3Vlcl9jcnQ9JCh0ZXN0X2NhX2NydCkgaXNzdWVyX2tleT0kKHRlc3RfY2Ffa2V5X2ZpbGVfcnNhKSBpc3N1ZXJfcHdkPSQodGVzdF9jYV9wd2RfcnNhKSB2ZXJzaW9uPTEgbm90X2JlZm9yZT0yMDE5MDIxMDE0NDQwNiBub3RfYWZ0ZXI9MjAyOTAyMTAxNDQ0MDYgbWQ9U0hBMSB2ZXJzaW9uPTMgb3V0cHV0X2ZpbGU9JEAKLXNlcnZlcjEuaGFzaHN5bWJvbC5jcnQ6IHNlcnZlcjEua2V5IHBhcnNlX2lucHV0L3NlcnZlcjEucmVxLmhhc2hzeW1ib2wuc2hhMjU2ICQodGVzdF9jYV9jcnQpICQodGVzdF9jYV9rZXlfZmlsZV9yc2EpCi0JJChNQkVEVExTX0NFUlRfV1JJVEUpIHJlcXVlc3RfZmlsZT1wYXJzZV9pbnB1dC9zZXJ2ZXIxLnJlcS5oYXNoc3ltYm9sLnNoYTI1NiBpc3N1ZXJfY3J0PSQodGVzdF9jYV9jcnQpIGlzc3Vlcl9rZXk9JCh0ZXN0X2NhX2tleV9maWxlX3JzYSkgaXNzdWVyX3B3ZD0kKHRlc3RfY2FfcHdkX3JzYSkgdmVyc2lvbj0xIG5vdF9iZWZvcmU9MjAxOTAyMTAxNDQ0MDYgbm90X2FmdGVyPTIwMjkwMjEwMTQ0NDA2IG1kPVNIQTEgdmVyc2lvbj0zIG91dHB1dF9maWxlPSRACi1zZXJ2ZXIxLnNwYWNlcy5jcnQ6IHNlcnZlcjEua2V5IHBhcnNlX2lucHV0L3NlcnZlcjEucmVxLnNwYWNlcy5zaGEyNTYgJCh0ZXN0X2NhX2NydCkgJCh0ZXN0X2NhX2tleV9maWxlX3JzYSkKLQkkKE1CRURUTFNfQ0VSVF9XUklURSkgcmVxdWVzdF9maWxlPXBhcnNlX2lucHV0L3NlcnZlcjEucmVxLnNwYWNlcy5zaGEyNTYgaXNzdWVyX2NydD0kKHRlc3RfY2FfY3J0KSBpc3N1ZXJfa2V5PSQodGVzdF9jYV9rZXlfZmlsZV9yc2EpIGlzc3Vlcl9wd2Q9JCh0ZXN0X2NhX3B3ZF9yc2EpIHZlcnNpb249MSBub3RfYmVmb3JlPTIwMTkwMjEwMTQ0NDA2IG5vdF9hZnRlcj0yMDI5MDIxMDE0NDQwNiBtZD1TSEExIHZlcnNpb249MyBvdXRwdXRfZmlsZT0kQAotc2VydmVyMS5hc2NpaWNoYXJzLmNydDogc2VydmVyMS5rZXkgcGFyc2VfaW5wdXQvc2VydmVyMS5yZXEuYXNjaWljaGFycy5zaGEyNTYgJCh0ZXN0X2NhX2NydCkgJCh0ZXN0X2NhX2tleV9maWxlX3JzYSkKLQkkKE1CRURUTFNfQ0VSVF9XUklURSkgcmVxdWVzdF9maWxlPXBhcnNlX2lucHV0L3NlcnZlcjEucmVxLmFzY2lpY2hhcnMuc2hhMjU2IGlzc3Vlcl9jcnQ9JCh0ZXN0X2NhX2NydCkgaXNzdWVyX2tleT0kKHRlc3RfY2Ffa2V5X2ZpbGVfcnNhKSBpc3N1ZXJfcHdkPSQodGVzdF9jYV9wd2RfcnNhKSB2ZXJzaW9uPTEgbm90X2JlZm9yZT0yMDE5MDIxMDE0NDQwNiBub3RfYWZ0ZXI9MjAyOTAyMTAxNDQ0MDYgbWQ9U0hBMSB2ZXJzaW9uPTMgb3V0cHV0X2ZpbGU9JEAKLWFsbF9maW5hbCArPSBzZXJ2ZXIxLmNydCBzZXJ2ZXIxLm5vYXV0aGlkLmNydCBwYXJzZV9pbnB1dC9zZXJ2ZXIxLmNydC5kZXIgc2VydmVyMS5jb21tYXMuY3J0IHNlcnZlcjEuaGFzaHN5bWJvbC5jcnQgc2VydmVyMS5zcGFjZXMuY3J0IHNlcnZlcjEuYXNjaWljaGFycy5jcnQKLQotcGFyc2VfaW5wdXQvc2VydmVyMS5rZXlfdXNhZ2UuY3J0OiBwYXJzZV9pbnB1dC9zZXJ2ZXIxLnJlcS5zaGEyNTYKLXNlcnZlcjEua2V5X3VzYWdlLmNydDogc2VydmVyMS5yZXEuc2hhMjU2Ci1wYXJzZV9pbnB1dC9zZXJ2ZXIxLmtleV91c2FnZS5jcnQgc2VydmVyMS5rZXlfdXNhZ2UuY3J0OiAkKHRlc3RfY2FfY3J0KSAkKHRlc3RfY2Ffa2V5X2ZpbGVfcnNhKQotcGFyc2VfaW5wdXQvc2VydmVyMS5rZXlfdXNhZ2UuY3J0IHNlcnZlcjEua2V5X3VzYWdlLmNydDoKLQkkKE1CRURUTFNfQ0VSVF9XUklURSkgcmVxdWVzdF9maWxlPSQoQEQpL3NlcnZlcjEucmVxLnNoYTI1NiBpc3N1ZXJfY3J0PSQodGVzdF9jYV9jcnQpIGlzc3Vlcl9rZXk9JCh0ZXN0X2NhX2tleV9maWxlX3JzYSkgaXNzdWVyX3B3ZD0kKHRlc3RfY2FfcHdkX3JzYSkgdmVyc2lvbj0xIG5vdF9iZWZvcmU9MjAxOTAyMTAxNDQ0MDYgbm90X2FmdGVyPTIwMjkwMjEwMTQ0NDA2IG1kPVNIQTEga2V5X3VzYWdlPWRpZ2l0YWxfc2lnbmF0dXJlLG5vbl9yZXB1ZGlhdGlvbixrZXlfZW5jaXBoZXJtZW50IHZlcnNpb249MyBvdXRwdXRfZmlsZT0kQAotc2VydmVyMS5rZXlfdXNhZ2Vfbm9hdXRoaWQuY3J0OiBzZXJ2ZXIxLmtleSBzZXJ2ZXIxLnJlcS5zaGEyNTYgJCh0ZXN0X2NhX2NydCkgJCh0ZXN0X2NhX2tleV9maWxlX3JzYSkKLQkkKE1CRURUTFNfQ0VSVF9XUklURSkgcmVxdWVzdF9maWxlPXNlcnZlcjEucmVxLnNoYTI1NiBpc3N1ZXJfY3J0PSQodGVzdF9jYV9jcnQpIGlzc3Vlcl9rZXk9JCh0ZXN0X2NhX2tleV9maWxlX3JzYSkgaXNzdWVyX3B3ZD0kKHRlc3RfY2FfcHdkX3JzYSkgdmVyc2lvbj0xIG5vdF9iZWZvcmU9MjAxOTAyMTAxNDQ0MDYgbm90X2FmdGVyPTIwMjkwMjEwMTQ0NDA2IG1kPVNIQTEga2V5X3VzYWdlPWRpZ2l0YWxfc2lnbmF0dXJlLG5vbl9yZXB1ZGlhdGlvbixrZXlfZW5jaXBoZXJtZW50IGF1dGhvcml0eV9pZGVudGlmaWVyPTAgdmVyc2lvbj0zIG91dHB1dF9maWxlPSRACi1zZXJ2ZXIxLmtleV91c2FnZS5kZXI6IHNlcnZlcjEua2V5X3VzYWdlLmNydAotCSQoT1BFTlNTTCkgeDUwOSAtaW5mb3JtIFBFTSAtaW4gJDwgLW91dGZvcm0gREVSIC1vdXQgJEAKLWFsbF9maW5hbCArPSBzZXJ2ZXIxLmtleV91c2FnZS5jcnQgc2VydmVyMS5rZXlfdXNhZ2Vfbm9hdXRoaWQuY3J0IHNlcnZlcjEua2V5X3VzYWdlLmRlcgotCi1wYXJzZV9pbnB1dC9zZXJ2ZXIxLmNlcnRfdHlwZS5jcnQ6IHBhcnNlX2lucHV0L3NlcnZlcjEucmVxLnNoYTI1Ngotc2VydmVyMS5jZXJ0X3R5cGUuY3J0OiBzZXJ2ZXIxLnJlcS5zaGEyNTYKLXBhcnNlX2lucHV0L3NlcnZlcjEuY2VydF90eXBlLmNydCBzZXJ2ZXIxLmNlcnRfdHlwZS5jcnQ6ICQodGVzdF9jYV9jcnQpICQodGVzdF9jYV9rZXlfZmlsZV9yc2EpCi1wYXJzZV9pbnB1dC9zZXJ2ZXIxLmNlcnRfdHlwZS5jcnQgc2VydmVyMS5jZXJ0X3R5cGUuY3J0OgotCSQoTUJFRFRMU19DRVJUX1dSSVRFKSByZXF1ZXN0X2ZpbGU9JChARCkvc2VydmVyMS5yZXEuc2hhMjU2IGlzc3Vlcl9jcnQ9JCh0ZXN0X2NhX2NydCkgaXNzdWVyX2tleT0kKHRlc3RfY2Ffa2V5X2ZpbGVfcnNhKSBpc3N1ZXJfcHdkPSQodGVzdF9jYV9wd2RfcnNhKSB2ZXJzaW9uPTEgbm90X2JlZm9yZT0yMDE5MDIxMDE0NDQwNiBub3RfYWZ0ZXI9MjAyOTAyMTAxNDQ0MDYgbWQ9U0hBMSBuc19jZXJ0X3R5cGU9c3NsX3NlcnZlciB2ZXJzaW9uPTMgb3V0cHV0X2ZpbGU9JEAKLXNlcnZlcjEuY2VydF90eXBlX25vYXV0aGlkLmNydDogc2VydmVyMS5rZXkgc2VydmVyMS5yZXEuc2hhMjU2ICQodGVzdF9jYV9jcnQpICQodGVzdF9jYV9rZXlfZmlsZV9yc2EpCi0JJChNQkVEVExTX0NFUlRfV1JJVEUpIHJlcXVlc3RfZmlsZT1zZXJ2ZXIxLnJlcS5zaGEyNTYgaXNzdWVyX2NydD0kKHRlc3RfY2FfY3J0KSBpc3N1ZXJfa2V5PSQodGVzdF9jYV9rZXlfZmlsZV9yc2EpIGlzc3Vlcl9wd2Q9JCh0ZXN0X2NhX3B3ZF9yc2EpIHZlcnNpb249MSBub3RfYmVmb3JlPTIwMTkwMjEwMTQ0NDA2IG5vdF9hZnRlcj0yMDI5MDIxMDE0NDQwNiBtZD1TSEExIG5zX2NlcnRfdHlwZT1zc2xfc2VydmVyIGF1dGhvcml0eV9pZGVudGlmaWVyPTAgdmVyc2lvbj0zIG91dHB1dF9maWxlPSRACi1zZXJ2ZXIxLmNlcnRfdHlwZS5kZXI6IHNlcnZlcjEuY2VydF90eXBlLmNydAotCSQoT1BFTlNTTCkgeDUwOSAtaW5mb3JtIFBFTSAtaW4gJDwgLW91dGZvcm0gREVSIC1vdXQgJEAKLWFsbF9maW5hbCArPSBzZXJ2ZXIxLmNlcnRfdHlwZS5jcnQgc2VydmVyMS5jZXJ0X3R5cGVfbm9hdXRoaWQuY3J0IHNlcnZlcjEuY2VydF90eXBlLmRlcgotCi1zZXJ2ZXIxLnYxLmNydDogc2VydmVyMS5rZXkgc2VydmVyMS5yZXEuc2hhMjU2ICQodGVzdF9jYV9jcnQpICQodGVzdF9jYV9rZXlfZmlsZV9yc2EpCi0JJChNQkVEVExTX0NFUlRfV1JJVEUpIHJlcXVlc3RfZmlsZT1zZXJ2ZXIxLnJlcS5zaGEyNTYgaXNzdWVyX2NydD0kKHRlc3RfY2FfY3J0KSBpc3N1ZXJfa2V5PSQodGVzdF9jYV9rZXlfZmlsZV9yc2EpIGlzc3Vlcl9wd2Q9JCh0ZXN0X2NhX3B3ZF9yc2EpIHZlcnNpb249MSBub3RfYmVmb3JlPTIwMTkwMjEwMTQ0NDA2IG5vdF9hZnRlcj0yMDI5MDIxMDE0NDQwNiBtZD1TSEExIHZlcnNpb249MSBvdXRwdXRfZmlsZT0kQAotc2VydmVyMS52MS5kZXI6IHNlcnZlcjEudjEuY3J0Ci0JJChPUEVOU1NMKSB4NTA5IC1pbmZvcm0gUEVNIC1pbiAkPCAtb3V0Zm9ybSBERVIgLW91dCAkQAotYWxsX2ZpbmFsICs9IHNlcnZlcjEudjEuY3J0IHNlcnZlcjEudjEuZGVyCi0KLXNlcnZlcjEuY2EuY3J0OiBzZXJ2ZXIxLmtleSBzZXJ2ZXIxLnJlcS5zaGEyNTYgJCh0ZXN0X2NhX2NydCkgJCh0ZXN0X2NhX2tleV9maWxlX3JzYSkKLQkkKE1CRURUTFNfQ0VSVF9XUklURSkgcmVxdWVzdF9maWxlPXNlcnZlcjEucmVxLnNoYTI1NiBpc3N1ZXJfY3J0PSQodGVzdF9jYV9jcnQpIGlzc3Vlcl9rZXk9JCh0ZXN0X2NhX2tleV9maWxlX3JzYSkgaXNzdWVyX3B3ZD0kKHRlc3RfY2FfcHdkX3JzYSkgdmVyc2lvbj0xIG5vdF9iZWZvcmU9MjAxOTAyMTAxNDQ0MDYgbm90X2FmdGVyPTIwMjkwMjEwMTQ0NDA2IG1kPVNIQTEgaXNfY2E9MSB2ZXJzaW9uPTMgb3V0cHV0X2ZpbGU9JEAKLXNlcnZlcjEuY2Ffbm9hdXRoaWQuY3J0OiBzZXJ2ZXIxLmtleSBzZXJ2ZXIxLnJlcS5zaGEyNTYgJCh0ZXN0X2NhX2NydCkgJCh0ZXN0X2NhX2tleV9maWxlX3JzYSkKLQkkKE1CRURUTFNfQ0VSVF9XUklURSkgcmVxdWVzdF9maWxlPXNlcnZlcjEucmVxLnNoYTI1NiBpc3N1ZXJfY3J0PSQodGVzdF9jYV9jcnQpIGlzc3Vlcl9rZXk9JCh0ZXN0X2NhX2tleV9maWxlX3JzYSkgaXNzdWVyX3B3ZD0kKHRlc3RfY2FfcHdkX3JzYSkgbm90X2JlZm9yZT0yMDE5MDIxMDE0NDQwNiBub3RfYWZ0ZXI9MjAyOTAyMTAxNDQ0MDYgbWQ9U0hBMSBhdXRob3JpdHlfaWRlbnRpZmllcj0wIGlzX2NhPTEgdmVyc2lvbj0zIG91dHB1dF9maWxlPSRACi1zZXJ2ZXIxLmNhLmRlcjogc2VydmVyMS5jYS5jcnQKLQkkKE9QRU5TU0wpIHg1MDkgLWluZm9ybSBQRU0gLWluICQ8IC1vdXRmb3JtIERFUiAtb3V0ICRACi1hbGxfZmluYWwgKz0gc2VydmVyMS5jYS5jcnQgc2VydmVyMS5jYV9ub2F1dGhpZC5jcnQgc2VydmVyMS5jYS5kZXIKLQotc2VydmVyMS1ub3NwYWNlLmNydDogc2VydmVyMS5rZXkgdGVzdC1jYS5jcnQKLQkkKE1CRURUTFNfQ0VSVF9XUklURSkgc3ViamVjdF9rZXk9JDwgc2VyaWFsPTMxXAotCQlzdWJqZWN0X25hbWU9IkM9TkwsTz1Qb2xhclNTTCxDTj1wb2xhcnNzbC5leGFtcGxlIiAgXAotCQlpc3N1ZXJfY3J0PXRlc3QtY2EuY3J0IGlzc3Vlcl9rZXk9JCh0ZXN0X2NhX2tleV9maWxlX3JzYSkgXAotCQlpc3N1ZXJfcHdkPSQodGVzdF9jYV9wd2RfcnNhKSBcCi0JCW5vdF9iZWZvcmU9MjAxOTAyMTAxNDQ0MDYgbm90X2FmdGVyPTIwMjkwMjEwMTQ0NDA2IFwKLQkJbWQ9U0hBMjU2IHZlcnNpb249MyBhdXRob3JpdHlfaWRlbnRpZmllcj0xIFwKLQkJb3V0cHV0X2ZpbGU9JEAKLWFsbF9maW5hbCArPSBzZXJ2ZXIxLW5vc3BhY2UuY3J0Ci0KLXNlcnZlcjFfY2EuY3J0OiBzZXJ2ZXIxLmNydCAkKHRlc3RfY2FfY3J0KQotCWNhdCBzZXJ2ZXIxLmNydCAkKHRlc3RfY2FfY3J0KSA+ICRACi1hbGxfZmluYWwgKz0gc2VydmVyMV9jYS5jcnQKLQotcGFyc2VfaW5wdXQvY2VydF9zaGExLmNydCBjZXJ0X3NoYTEuY3J0OiBzZXJ2ZXIxLmtleQotCSQoTUJFRFRMU19DRVJUX1dSSVRFKSBzdWJqZWN0X2tleT1zZXJ2ZXIxLmtleSBzdWJqZWN0X25hbWU9IkM9TkwsIE89UG9sYXJTU0wsIENOPVBvbGFyU1NMIENlcnQgU0hBMSIgc2VyaWFsPTcgaXNzdWVyX2NydD0kKHRlc3RfY2FfY3J0KSBpc3N1ZXJfa2V5PSQodGVzdF9jYV9rZXlfZmlsZV9yc2EpIGlzc3Vlcl9wd2Q9JCh0ZXN0X2NhX3B3ZF9yc2EpIG5vdF9iZWZvcmU9MjAxOTAyMTAxNDQ0MDYgbm90X2FmdGVyPTIwMjkwMjEwMTQ0NDA2IG1kPVNIQTEgdmVyc2lvbj0zIG91dHB1dF9maWxlPSRACi1hbGxfZmluYWwgKz0gY2VydF9zaGExLmNydAotCi1wYXJzZV9pbnB1dC9jZXJ0X3NoYTIyNC5jcnQgY2VydF9zaGEyMjQuY3J0OiBzZXJ2ZXIxLmtleQotCSQoTUJFRFRMU19DRVJUX1dSSVRFKSBzdWJqZWN0X2tleT1zZXJ2ZXIxLmtleSBzdWJqZWN0X25hbWU9IkM9TkwsIE89UG9sYXJTU0wsIENOPVBvbGFyU1NMIENlcnQgU0hBMjI0IiBzZXJpYWw9OCBpc3N1ZXJfY3J0PSQodGVzdF9jYV9jcnQpIGlzc3Vlcl9rZXk9JCh0ZXN0X2NhX2tleV9maWxlX3JzYSkgaXNzdWVyX3B3ZD0kKHRlc3RfY2FfcHdkX3JzYSkgbm90X2JlZm9yZT0yMDE5MDIxMDE0NDQwNiBub3RfYWZ0ZXI9MjAyOTAyMTAxNDQ0MDYgbWQ9U0hBMjI0IHZlcnNpb249MyBvdXRwdXRfZmlsZT0kQAotYWxsX2ZpbmFsICs9IGNlcnRfc2hhMjI0LmNydAotCi1wYXJzZV9pbnB1dC9jZXJ0X3NoYTI1Ni5jcnQgY2VydF9zaGEyNTYuY3J0OiBzZXJ2ZXIxLmtleQotCSQoTUJFRFRMU19DRVJUX1dSSVRFKSBzdWJqZWN0X2tleT1zZXJ2ZXIxLmtleSBzdWJqZWN0X25hbWU9IkM9TkwsIE89UG9sYXJTU0wsIENOPVBvbGFyU1NMIENlcnQgU0hBMjU2IiBzZXJpYWw9OSBpc3N1ZXJfY3J0PSQodGVzdF9jYV9jcnQpIGlzc3Vlcl9rZXk9JCh0ZXN0X2NhX2tleV9maWxlX3JzYSkgaXNzdWVyX3B3ZD0kKHRlc3RfY2FfcHdkX3JzYSkgbm90X2JlZm9yZT0yMDE5MDIxMDE0NDQwNiBub3RfYWZ0ZXI9MjAyOTAyMTAxNDQ0MDYgbWQ9U0hBMjU2IHZlcnNpb249MyBvdXRwdXRfZmlsZT0kQAotYWxsX2ZpbmFsICs9IGNlcnRfc2hhMjU2LmNydAotCi1wYXJzZV9pbnB1dC9jZXJ0X3NoYTM4NC5jcnQgY2VydF9zaGEzODQuY3J0OiBzZXJ2ZXIxLmtleQotCSQoTUJFRFRMU19DRVJUX1dSSVRFKSBzdWJqZWN0X2tleT1zZXJ2ZXIxLmtleSBzdWJqZWN0X25hbWU9IkM9TkwsIE89UG9sYXJTU0wsIENOPVBvbGFyU1NMIENlcnQgU0hBMzg0IiBzZXJpYWw9MTAgaXNzdWVyX2NydD0kKHRlc3RfY2FfY3J0KSBpc3N1ZXJfa2V5PSQodGVzdF9jYV9rZXlfZmlsZV9yc2EpIGlzc3Vlcl9wd2Q9JCh0ZXN0X2NhX3B3ZF9yc2EpIG5vdF9iZWZvcmU9MjAxOTAyMTAxNDQ0MDYgbm90X2FmdGVyPTIwMjkwMjEwMTQ0NDA2IG1kPVNIQTM4NCB2ZXJzaW9uPTMgb3V0cHV0X2ZpbGU9JEAKLWFsbF9maW5hbCArPSBjZXJ0X3NoYTM4NC5jcnQKLQotcGFyc2VfaW5wdXQvY2VydF9zaGE1MTIuY3J0IGNlcnRfc2hhNTEyLmNydDogc2VydmVyMS5rZXkKLQkkKE1CRURUTFNfQ0VSVF9XUklURSkgc3ViamVjdF9rZXk9c2VydmVyMS5rZXkgc3ViamVjdF9uYW1lPSJDPU5MLCBPPVBvbGFyU1NMLCBDTj1Qb2xhclNTTCBDZXJ0IFNIQTUxMiIgc2VyaWFsPTExIGlzc3Vlcl9jcnQ9JCh0ZXN0X2NhX2NydCkgaXNzdWVyX2tleT0kKHRlc3RfY2Ffa2V5X2ZpbGVfcnNhKSBpc3N1ZXJfcHdkPSQodGVzdF9jYV9wd2RfcnNhKSBub3RfYmVmb3JlPTIwMTkwMjEwMTQ0NDA2IG5vdF9hZnRlcj0yMDI5MDIxMDE0NDQwNiBtZD1TSEE1MTIgdmVyc2lvbj0zIG91dHB1dF9maWxlPSRACi1hbGxfZmluYWwgKz0gY2VydF9zaGE1MTIuY3J0Ci0KLWNlcnRfZXhhbXBsZV93aWxkY2FyZC5jcnQ6IHNlcnZlcjEua2V5Ci0JJChNQkVEVExTX0NFUlRfV1JJVEUpIHN1YmplY3Rfa2V5PXNlcnZlcjEua2V5IHN1YmplY3RfbmFtZT0iQz1OTCwgTz1Qb2xhclNTTCwgQ049Ki5leGFtcGxlLmNvbSIgc2VyaWFsPTEyIGlzc3Vlcl9jcnQ9JCh0ZXN0X2NhX2NydCkgaXNzdWVyX2tleT0kKHRlc3RfY2Ffa2V5X2ZpbGVfcnNhKSBpc3N1ZXJfcHdkPSQodGVzdF9jYV9wd2RfcnNhKSBub3RfYmVmb3JlPTIwMTkwMjEwMTQ0NDA2IG5vdF9hZnRlcj0yMDI5MDIxMDE0NDQwNiBtZD1TSEExIHZlcnNpb249MyBvdXRwdXRfZmlsZT0kQAotYWxsX2ZpbmFsICs9IGNlcnRfZXhhbXBsZV93aWxkY2FyZC5jcnQKLQotIyBPcGVuU1NMLWdlbmVyYXRlZCBjZXJ0aWZpY2F0ZXMgZm9yIGNvbXBhcmlzb24KLSMgQWxzbyBwcm92aWRlIGNlcnRpZmljYXRlcyBpbiBERVIgZm9ybWF0IHRvIGFsbG93Ci0jIGRpcmVjdCBiaW5hcnkgY29tcGFyaXNvbiB1c2luZyBlLmcuIGR1bXBhc24xCi1zZXJ2ZXIxLmNydC5vcGVuc3NsIHNlcnZlcjEua2V5X3VzYWdlLmNydC5vcGVuc3NsIHNlcnZlcjEuY2VydF90eXBlLmNydC5vcGVuc3NsOiBzZXJ2ZXIxLmtleSBzZXJ2ZXIxLnJlcS5zaGEyNTYgJCh0ZXN0X2NhX2NydCkgJCh0ZXN0X2NhX2tleV9maWxlX3JzYSkgJCh0ZXN0X2NhX3NlcnZlcjFfY29uZmlnX2ZpbGUpCi0JZWNobyAiMDEiID4gJCh0ZXN0X2NhX3NlcnZlcjFfc2VyaWFsKQotCXJtIC1mICQodGVzdF9jYV9zZXJ2ZXIxX2RiKQotCXRvdWNoICQodGVzdF9jYV9zZXJ2ZXIxX2RiKQotCSQoT1BFTlNTTCkgY2EgLWJhdGNoIC1wYXNzaW4gInBhc3M6JCh0ZXN0X2NhX3B3ZF9yc2EpIiAtY29uZmlnICQodGVzdF9jYV9zZXJ2ZXIxX2NvbmZpZ19maWxlKSAtaW4gc2VydmVyMS5yZXEuc2hhMjU2IC1leHRlbnNpb25zIHYzX2V4dCAtZXh0ZmlsZSAkQC52M19leHQgLW91dCAkQAotc2VydmVyMS5kZXIub3BlbnNzbDogc2VydmVyMS5jcnQub3BlbnNzbAotCSQoT1BFTlNTTCkgeDUwOSAtaW5mb3JtIFBFTSAtaW4gJDwgLW91dGZvcm0gREVSIC1vdXQgJEAKLXNlcnZlcjEua2V5X3VzYWdlLmRlci5vcGVuc3NsOiBzZXJ2ZXIxLmtleV91c2FnZS5jcnQub3BlbnNzbAotCSQoT1BFTlNTTCkgeDUwOSAtaW5mb3JtIFBFTSAtaW4gJDwgLW91dGZvcm0gREVSIC1vdXQgJEAKLXNlcnZlcjEuY2VydF90eXBlLmRlci5vcGVuc3NsOiBzZXJ2ZXIxLmNlcnRfdHlwZS5jcnQub3BlbnNzbAotCSQoT1BFTlNTTCkgeDUwOSAtaW5mb3JtIFBFTSAtaW4gJDwgLW91dGZvcm0gREVSIC1vdXQgJEAKLQotc2VydmVyMS52MS5jcnQub3BlbnNzbDogc2VydmVyMS5rZXkgc2VydmVyMS5yZXEuc2hhMjU2ICQodGVzdF9jYV9jcnQpICQodGVzdF9jYV9rZXlfZmlsZV9yc2EpICQodGVzdF9jYV9zZXJ2ZXIxX2NvbmZpZ19maWxlKQotCWVjaG8gIjAxIiA+ICQodGVzdF9jYV9zZXJ2ZXIxX3NlcmlhbCkKLQlybSAtZiAkKHRlc3RfY2Ffc2VydmVyMV9kYikKLQl0b3VjaCAkKHRlc3RfY2Ffc2VydmVyMV9kYikKLQkkKE9QRU5TU0wpIGNhIC1iYXRjaCAtcGFzc2luICJwYXNzOiQodGVzdF9jYV9wd2RfcnNhKSIgLWNvbmZpZyAkKHRlc3RfY2Ffc2VydmVyMV9jb25maWdfZmlsZSkgLWluIHNlcnZlcjEucmVxLnNoYTI1NiAtb3V0ICRACi1zZXJ2ZXIxLnYxLmRlci5vcGVuc3NsOiBzZXJ2ZXIxLnYxLmNydC5vcGVuc3NsCi0JJChPUEVOU1NMKSB4NTA5IC1pbmZvcm0gUEVNIC1pbiAkPCAtb3V0Zm9ybSBERVIgLW91dCAkQAotCi0jIFRvIHJldm9rZSBjZXJ0aWZpY2F0ZSBpbiB0aGUgb3BlbnNzbCBkYXRhYmFzZToKLSMKLSMgJChPUEVOU1NMKSBjYSAtZ2VuY3JsIC1iYXRjaCAtY2VydCAkKHRlc3RfY2FfY3J0KSAta2V5ZmlsZSAkKHRlc3RfY2Ffa2V5X2ZpbGVfcnNhKSAta2V5ICQodGVzdF9jYV9wd2RfcnNhKSAtY29uZmlnICQodGVzdF9jYV9zZXJ2ZXIxX2NvbmZpZ19maWxlKSAtbWQgc2hhMjU2IC1jcmxkYXlzIDM2NSAtcmV2b2tlIHNlcnZlcjEuY3J0Ci0KLWNybC5wZW06ICQodGVzdF9jYV9jcnQpICQodGVzdF9jYV9rZXlfZmlsZV9yc2EpICQodGVzdF9jYV9jb25maWdfZmlsZSkKLQkkKE9QRU5TU0wpIGNhIC1nZW5jcmwgLWJhdGNoIC1jZXJ0ICQodGVzdF9jYV9jcnQpIC1rZXlmaWxlICQodGVzdF9jYV9rZXlfZmlsZV9yc2EpIC1rZXkgJCh0ZXN0X2NhX3B3ZF9yc2EpIC1jb25maWcgJCh0ZXN0X2NhX3NlcnZlcjFfY29uZmlnX2ZpbGUpIC1tZCBzaGExIC1jcmxkYXlzIDM2NTMgLW91dCAkQAotCi1jcmwtZnV0dXJlUmV2b2NhdGlvbkRhdGUucGVtOiAkKHRlc3RfY2FfY3J0KSAkKHRlc3RfY2Ffa2V5X2ZpbGVfcnNhKSBcCi0JCQkgICAgICAkKHRlc3RfY2FfY29uZmlnX2ZpbGUpIFwKLQkJCSAgICAgIHRlc3QtY2Euc2VydmVyMS5mdXR1cmUtY3JsLmRiIFwKLQkJCSAgICAgIHRlc3QtY2Euc2VydmVyMS5mdXR1cmUtY3JsLm9wZW5zc2xjb25mCi0JJChGQUtFVElNRSkgLWYgJysxMHknICQoT1BFTlNTTCkgY2EgLWdlbmNybCBcCi0JCS1jb25maWcgdGVzdC1jYS5zZXJ2ZXIxLmZ1dHVyZS1jcmwub3BlbnNzbGNvbmYgLWNybGRheXMgMzY1IFwKLQkJLXBhc3NpbiAicGFzczokKHRlc3RfY2FfcHdkX3JzYSkiIC1vdXQgJEAKLQotc2VydmVyMV9hbGw6IGNybC5wZW0gY3JsLWZ1dHVyZVJldm9jYXRpb25EYXRlLnBlbSBzZXJ2ZXIxLmNydCBzZXJ2ZXIxLm5vYXV0aGlkLmNydCBzZXJ2ZXIxLmNydC5vcGVuc3NsIHNlcnZlcjEudjEuY3J0IHNlcnZlcjEudjEuY3J0Lm9wZW5zc2wgc2VydmVyMS5rZXlfdXNhZ2UuY3J0IHNlcnZlcjEua2V5X3VzYWdlX25vYXV0aGlkLmNydCBzZXJ2ZXIxLmtleV91c2FnZS5jcnQub3BlbnNzbCBzZXJ2ZXIxLmNlcnRfdHlwZS5jcnQgc2VydmVyMS5jZXJ0X3R5cGVfbm9hdXRoaWQuY3J0IHNlcnZlcjEuY2VydF90eXBlLmNydC5vcGVuc3NsIHNlcnZlcjEuZGVyIHNlcnZlcjEuZGVyLm9wZW5zc2wgc2VydmVyMS52MS5kZXIgc2VydmVyMS52MS5kZXIub3BlbnNzbCBzZXJ2ZXIxLmtleV91c2FnZS5kZXIgc2VydmVyMS5rZXlfdXNhZ2UuZGVyLm9wZW5zc2wgc2VydmVyMS5jZXJ0X3R5cGUuZGVyIHNlcnZlcjEuY2VydF90eXBlLmRlci5vcGVuc3NsCi0KLSMgc2VydmVyMioKLQotcGFyc2VfaW5wdXQvc2VydmVyMi5jcnQgc2VydmVyMi5jcnQ6IHNlcnZlcjIucmVxLnNoYTI1NgotCSQoTUJFRFRMU19DRVJUX1dSSVRFKSByZXF1ZXN0X2ZpbGU9c2VydmVyMi5yZXEuc2hhMjU2IHNlcmlhbD0yIGlzc3Vlcl9jcnQ9JCh0ZXN0X2NhX2NydCkgaXNzdWVyX2tleT0kKHRlc3RfY2Ffa2V5X2ZpbGVfcnNhKSBpc3N1ZXJfcHdkPSQodGVzdF9jYV9wd2RfcnNhKSBub3RfYmVmb3JlPTIwMTkwMjEwMTQ0NDA2IG5vdF9hZnRlcj0yMDI5MDIxMDE0NDQwNiBtZD1TSEExIHZlcnNpb249MyBvdXRwdXRfZmlsZT0kQAotYWxsX2ZpbmFsICs9IHNlcnZlcjIuY3J0Ci0KLXNlcnZlcjIuZGVyOiBzZXJ2ZXIyLmNydAotCSQoT1BFTlNTTCkgeDUwOSAtaW5mb3JtIFBFTSAtaW4gJDwgLW91dGZvcm0gREVSIC1vdXQgJEAKLWFsbF9maW5hbCArPSBzZXJ2ZXIyLmNydCBzZXJ2ZXIyLmRlcgotCi1zZXJ2ZXIyLXNoYTI1Ni5jcnQ6IHNlcnZlcjIucmVxLnNoYTI1NgotCSQoTUJFRFRMU19DRVJUX1dSSVRFKSByZXF1ZXN0X2ZpbGU9c2VydmVyMi5yZXEuc2hhMjU2IHNlcmlhbD0yIGlzc3Vlcl9jcnQ9JCh0ZXN0X2NhX2NydCkgaXNzdWVyX2tleT0kKHRlc3RfY2Ffa2V5X2ZpbGVfcnNhKSBpc3N1ZXJfcHdkPSQodGVzdF9jYV9wd2RfcnNhKSBub3RfYmVmb3JlPTIwMTkwMjEwMTQ0NDA2IG5vdF9hZnRlcj0yMDI5MDIxMDE0NDQwNiBtZD1TSEEyNTYgdmVyc2lvbj0zIG91dHB1dF9maWxlPSRACi1hbGxfZmluYWwgKz0gc2VydmVyMi1zaGEyNTYuY3J0Ci0KLXNlcnZlcjItc2hhMjU2Lmt1LWthLmNydDogU0VSVkVSMl9DUlRfU0VSSUFMPTIyCi1zZXJ2ZXIyLXNoYTI1Ni5rdS1rYS5jcnQ6IFNFUlZFUjJfS0VZX1VTQUdFPWtleV9hZ3JlZW1lbnQKLXNlcnZlcjItc2hhMjU2Lmt1LWtlLmNydDogU0VSVkVSMl9DUlRfU0VSSUFMPTIzCi1zZXJ2ZXIyLXNoYTI1Ni5rdS1rZS5jcnQ6IFNFUlZFUjJfS0VZX1VTQUdFPWtleV9lbmNpcGhlcm1lbnQKLXNlcnZlcjItc2hhMjU2Lmt1LWRzLmNydDogU0VSVkVSMl9DUlRfU0VSSUFMPTI0Ci1zZXJ2ZXIyLXNoYTI1Ni5rdS1kcy5jcnQ6IFNFUlZFUjJfS0VZX1VTQUdFPWRpZ2l0YWxfc2lnbmF0dXJlCi1zZXJ2ZXIyLXNoYTI1Ni5rdS1kc19rZS5jcnQ6IFNFUlZFUjJfQ1JUX1NFUklBTD0yOAotc2VydmVyMi1zaGEyNTYua3UtZHNfa2UuY3J0OiBTRVJWRVIyX0tFWV9VU0FHRT1kaWdpdGFsX3NpZ25hdHVyZSxrZXlfZW5jaXBoZXJtZW50Ci1zZXJ2ZXIyLXNoYTI1Ni5rdS0lLmNydDogc2VydmVyMi5yZXEuc2hhMjU2Ci0JJChNQkVEVExTX0NFUlRfV1JJVEUpIHJlcXVlc3RfZmlsZT1zZXJ2ZXIyLnJlcS5zaGEyNTYgc2VyaWFsPSQoU0VSVkVSMl9DUlRfU0VSSUFMKSBcCi0JCWlzc3Vlcl9jcnQ9JCh0ZXN0X2NhX2NydCkgaXNzdWVyX2tleT0kKHRlc3RfY2Ffa2V5X2ZpbGVfcnNhKSBpc3N1ZXJfcHdkPSQodGVzdF9jYV9wd2RfcnNhKSBcCi0JCWtleV91c2FnZT0iJChTRVJWRVIyX0tFWV9VU0FHRSkiIFwKLQkJbm90X2JlZm9yZT0yMDE5MDIxMDE0NDQwNiBub3RfYWZ0ZXI9MjAyOTAyMTAxNDQ0MDYgbWQ9U0hBMjU2IHZlcnNpb249MyBvdXRwdXRfZmlsZT0kQAotYWxsX2ZpbmFsICs9IHNlcnZlcjItc2hhMjU2Lmt1LWthLmNydCBzZXJ2ZXIyLXNoYTI1Ni5rdS1rZS5jcnQgc2VydmVyMi1zaGEyNTYua3UtZHMuY3J0IHNlcnZlcjItc2hhMjU2Lmt1LWRzX2tlLmNydAotCi1hbGxfZmluYWwgKz0gc2VydmVyMi5rdS1rYS5jcnQgc2VydmVyMi5rdS1rZS5jcnQgc2VydmVyMi5rdS1kcy5jcnQgc2VydmVyMi5rdS1kc19rZS5jcnQKLXNlcnZlcjIua3Uta2EuY3J0OiBTRVJWRVIyX0NSVF9TRVJJQUw9NDIKLXNlcnZlcjIua3Uta2EuY3J0OiBTRVJWRVIyX0tFWV9VU0FHRT1rZXlfYWdyZWVtZW50Ci1zZXJ2ZXIyLmt1LWtlLmNydDogU0VSVkVSMl9DUlRfU0VSSUFMPTQzCi1zZXJ2ZXIyLmt1LWtlLmNydDogU0VSVkVSMl9LRVlfVVNBR0U9a2V5X2VuY2lwaGVybWVudAotc2VydmVyMi5rdS1kcy5jcnQ6IFNFUlZFUjJfQ1JUX1NFUklBTD00NAotc2VydmVyMi5rdS1kcy5jcnQ6IFNFUlZFUjJfS0VZX1VTQUdFPWRpZ2l0YWxfc2lnbmF0dXJlCi1zZXJ2ZXIyLmt1LWRzX2tlLmNydDogU0VSVkVSMl9DUlRfU0VSSUFMPTQ4Ci1zZXJ2ZXIyLmt1LWRzX2tlLmNydDogU0VSVkVSMl9LRVlfVVNBR0U9ZGlnaXRhbF9zaWduYXR1cmUsa2V5X2VuY2lwaGVybWVudAotc2VydmVyMi5rdS0lLmNydDogc2VydmVyMi5yZXEuc2hhMjU2Ci0JJChNQkVEVExTX0NFUlRfV1JJVEUpIHJlcXVlc3RfZmlsZT1zZXJ2ZXIyLnJlcS5zaGEyNTYgc2VyaWFsPSQoU0VSVkVSMl9DUlRfU0VSSUFMKSBcCi0JCWlzc3Vlcl9jcnQ9JCh0ZXN0X2NhX2NydCkgaXNzdWVyX2tleT0kKHRlc3RfY2Ffa2V5X2ZpbGVfcnNhKSBpc3N1ZXJfcHdkPSQodGVzdF9jYV9wd2RfcnNhKSBcCi0JCWtleV91c2FnZT0iJChTRVJWRVIyX0tFWV9VU0FHRSkiIFwKLQkJbm90X2JlZm9yZT0yMDE5MDIxMDE0NDQwNiBub3RfYWZ0ZXI9MjAyOTAyMTAxNDQ0MDYgbWQ9U0hBMSB2ZXJzaW9uPTMgb3V0cHV0X2ZpbGU9JEAKLWFsbF9maW5hbCArPSBzZXJ2ZXIyLmt1LWthLmNydCBzZXJ2ZXIyLmt1LWtlLmNydCBzZXJ2ZXIyLmt1LWRzLmNydCBzZXJ2ZXIyLmt1LWRzX2tlLmNydAotCi1zZXJ2ZXIyLWJhZHNpZ24uY3J0OiBzZXJ2ZXIyLmNydAotCXsgaGVhZCAtbi0yICQ8OyB0YWlsIC1uLTIgJDwgfCBzZWQgLWUgJzFzLzBcKD0qXCkkJC9fXDEvJyAtZSAnMXMvW15fPV1cKD0qXCkkJC8wXDEvJyAtZSAnMXMvXy8xLyc7IH0gPiAkQAotYWxsX2ZpbmFsICs9IHNlcnZlcjItYmFkc2lnbi5jcnQKLQotIyBzZXJ2ZXIzKgotCi1wYXJzZV9pbnB1dC9zZXJ2ZXIzLmNydCBzZXJ2ZXIzLmNydDogc2VydmVyMy5rZXkKLQkkKE1CRURUTFNfQ0VSVF9XUklURSkgc3ViamVjdF9rZXk9JDwgc3ViamVjdF9uYW1lPSJDPU5MLE89UG9sYXJTU0wsQ049bG9jYWxob3N0IiBzZXJpYWw9MTMgXAotCQlpc3N1ZXJfY3J0PSQodGVzdF9jYV9jcnQpIGlzc3Vlcl9rZXk9JCh0ZXN0X2NhX2tleV9maWxlX3JzYSkgaXNzdWVyX3B3ZD0kKHRlc3RfY2FfcHdkX3JzYSkgXAotCQlub3RfYmVmb3JlPTIwMTkwMjEwMTQ0NDA2IG5vdF9hZnRlcj0yMDI5MDIxMDE0NDQwNiBcCi0JCW1kPVNIQTEgdmVyc2lvbj0zIG91dHB1dF9maWxlPSRACi1hbGxfZmluYWwgKz0gc2VydmVyMy5jcnQKLQotIyBzZXJ2ZXI0KgotCi1wYXJzZV9pbnB1dC9zZXJ2ZXI0LmNydCBzZXJ2ZXI0LmNydDogc2VydmVyNC5rZXkKLQkkKE1CRURUTFNfQ0VSVF9XUklURSkgc3ViamVjdF9rZXk9JDwgc3ViamVjdF9uYW1lPSJDPU5MLE89UG9sYXJTU0wsQ049bG9jYWxob3N0IiBzZXJpYWw9OCBcCi0JCWlzc3Vlcl9jcnQ9JCh0ZXN0X2NhX2NydF9maWxlX2VjKSBpc3N1ZXJfa2V5PSQodGVzdF9jYV9rZXlfZmlsZV9lYykgXAotCQlub3RfYmVmb3JlPTIwMTkwMjEwMTQ0NDAwIG5vdF9hZnRlcj0yMDI5MDIxMDE0NDQwMCBcCi0JCW1kPVNIQTI1NiB2ZXJzaW9uPTMgb3V0cHV0X2ZpbGU9JEAKLWFsbF9maW5hbCArPSBzZXJ2ZXI0LmNydAotCi0jIE1ENSB0ZXN0IGNlcnRpZmljYXRlCi0KLWNlcnRfbWRfdGVzdF9rZXkgPSAkKGNsaV9jcnRfa2V5X2ZpbGVfcnNhKQotCi1jZXJ0X21kNS5jc3I6ICQoY2VydF9tZF90ZXN0X2tleSkKLQkkKE1CRURUTFNfQ0VSVF9SRVEpIG91dHB1dF9maWxlPSRAIGZpbGVuYW1lPSQ8IHN1YmplY3RfbmFtZT0iQz1OTCxPPVBvbGFyU1NMLENOPVBvbGFyU1NMIENlcnQgTUQ1IiBtZD1NRDUKLWFsbF9pbnRlcm1lZGlhdGUgKz0gY2VydF9tZDUuY3NyCi0KLXBhcnNlX2lucHV0L2NlcnRfbWQ1LmNydCBjZXJ0X21kNS5jcnQ6IGNlcnRfbWQ1LmNzcgotCSQoTUJFRFRMU19DRVJUX1dSSVRFKSByZXF1ZXN0X2ZpbGU9JDwgc2VyaWFsPTYgXAotCQlpc3N1ZXJfY3J0PSQodGVzdF9jYV9jcnQpIGlzc3Vlcl9rZXk9JCh0ZXN0X2NhX2tleV9maWxlX3JzYSkgXAotCQlpc3N1ZXJfcHdkPSQodGVzdF9jYV9wd2RfcnNhKSBcCi0JCW5vdF9iZWZvcmU9MjAwMDAxMDExMjEyMTIgbm90X2FmdGVyPTIwMzAwMTAxMTIxMjEyIFwKLQkJbWQ9TUQ1IHZlcnNpb249MyBvdXRwdXRfZmlsZT0kQAotYWxsX2ZpbmFsICs9IGNlcnRfbWQ1LmNydAotCi0jIFRMU3YxLjMgdGVzdCBjZXJ0aWZpY2F0ZXMKLWVjZHNhX3NlY3AyNTZyMS5rZXk6IGVjXzI1Nl9wcnYucGVtCi0JY3AgJDwgJEAKLQotZWNkc2Ffc2VjcDI1NnIxLmNzcjogZWNkc2Ffc2VjcDI1NnIxLmtleQotCSQoT1BFTlNTTCkgcmVxIC1uZXcgLXN1YmogIi9DPU5ML089UG9sYXJTU0wvQ049bG9jYWxob3N0IiBcCi0JCQkJCS1rZXkgJDwgLW91dCAkQAotYWxsX2ludGVybWVkaWF0ZSArPSBlY2RzYV9zZWNwMjU2cjEuY3NyCi1lY2RzYV9zZWNwMjU2cjEuY3J0OiBlY2RzYV9zZWNwMjU2cjEuY3NyCi0JJChPUEVOU1NMKSB4NTA5IC1yZXEgLUNBICQodGVzdF9jYV9jcnRfZmlsZV9lYykgLUNBa2V5ICQodGVzdF9jYV9rZXlfZmlsZV9lYykgXAotCQkJCS1zZXRfc2VyaWFsIDc3IC1kYXlzIDM2NTMgLXNoYTM4NCAtaW4gJDwgLW91dCAkQAotYWxsX2ZpbmFsICs9IGVjZHNhX3NlY3AyNTZyMS5jcnQgZWNkc2Ffc2VjcDI1NnIxLmtleQotdGxzMTNfY2VydHM6IGVjZHNhX3NlY3AyNTZyMS5jcnQgZWNkc2Ffc2VjcDI1NnIxLmtleQotCi1lY2RzYV9zZWNwMzg0cjEua2V5OiBlY18zODRfcHJ2LnBlbQotCWNwICQ8ICRACi1lY2RzYV9zZWNwMzg0cjEuY3NyOiBlY2RzYV9zZWNwMzg0cjEua2V5Ci0JJChPUEVOU1NMKSByZXEgLW5ldyAtc3ViaiAiL0M9TkwvTz1Qb2xhclNTTC9DTj1sb2NhbGhvc3QiIFwKLQkJCQkJLWtleSAkPCAtb3V0ICRACi1hbGxfaW50ZXJtZWRpYXRlICs9IGVjZHNhX3NlY3AzODRyMS5jc3IKLWVjZHNhX3NlY3AzODRyMS5jcnQ6IGVjZHNhX3NlY3AzODRyMS5jc3IKLQkkKE9QRU5TU0wpIHg1MDkgLXJlcSAtQ0EgJCh0ZXN0X2NhX2NydF9maWxlX2VjKSAtQ0FrZXkgJCh0ZXN0X2NhX2tleV9maWxlX2VjKSBcCi0JCQkJLXNldF9zZXJpYWwgNzcgLWRheXMgMzY1MyAtc2hhMzg0IC1pbiAkPCAtb3V0ICRACi1hbGxfZmluYWwgKz0gZWNkc2Ffc2VjcDM4NHIxLmNydCBlY2RzYV9zZWNwMzg0cjEua2V5Ci10bHMxM19jZXJ0czogZWNkc2Ffc2VjcDM4NHIxLmNydCBlY2RzYV9zZWNwMzg0cjEua2V5Ci0KLWVjZHNhX3NlY3A1MjFyMS5rZXk6IGVjXzUyMV9wcnYucGVtCi0JY3AgJDwgJEAKLWVjZHNhX3NlY3A1MjFyMS5jc3I6IGVjZHNhX3NlY3A1MjFyMS5rZXkKLQkkKE9QRU5TU0wpIHJlcSAtbmV3IC1zdWJqICIvQz1OTC9PPVBvbGFyU1NML0NOPWxvY2FsaG9zdCIgXAotCQkJCQkta2V5ICQ8IC1vdXQgJEAKLWFsbF9pbnRlcm1lZGlhdGUgKz0gZWNkc2Ffc2VjcDUyMXIxLmNzcgotZWNkc2Ffc2VjcDUyMXIxLmNydDogZWNkc2Ffc2VjcDUyMXIxLmNzcgotCSQoT1BFTlNTTCkgeDUwOSAtcmVxIC1DQSAkKHRlc3RfY2FfY3J0X2ZpbGVfZWMpIC1DQWtleSAkKHRlc3RfY2Ffa2V5X2ZpbGVfZWMpIFwKLQkJCQktc2V0X3NlcmlhbCA3NyAtZGF5cyAzNjUzIC1zaGEzODQgLWluICQ8IC1vdXQgJEAKLWFsbF9maW5hbCArPSBlY2RzYV9zZWNwNTIxcjEuY3J0IGVjZHNhX3NlY3A1MjFyMS5rZXkKLXRsczEzX2NlcnRzOiBlY2RzYV9zZWNwNTIxcjEuY3J0IGVjZHNhX3NlY3A1MjFyMS5rZXkKLQotIyBQS0NTNyB0ZXN0IGRhdGEKLXBrY3M3X3Rlc3RfY2VydF8xID0gcGtjczctcnNhLXNoYTI1Ni0xLmNydAotcGtjczdfdGVzdF9jZXJ0XzIgPSBwa2NzNy1yc2Etc2hhMjU2LTIuY3J0Ci1wa2NzN190ZXN0X2NlcnRfMyA9IHBrY3M3LXJzYS1zaGEyNTYtMy5jcnQKLXBrY3M3X3Rlc3RfZmlsZSA9IHBrY3M3X2RhdGEuYmluCi0KLSQocGtjczdfdGVzdF9maWxlKToKLQlwcmludGYgIkhlbGxvXDE1XG4iID4gJEAKLWFsbF9maW5hbCArPSAkKHBrY3M3X3Rlc3RfZmlsZSkKLQotcGtjczdfemVyb2xlbmRhdGEuYmluOgotCXByaW50ZiAnJyA+ICRACi1hbGxfZmluYWwgKz0gcGtjczdfemVyb2xlbmRhdGEuYmluCi0KLXBrY3M3X2RhdGFfMS5iaW46Ci0JcHJpbnRmICIyXDE1XG4iID4gJEAKLWFsbF9maW5hbCArPSBwa2NzN19kYXRhXzEuYmluCi0KLSMgR2VuZXJhdGUgc2lnbmluZyBjZXJ0Ci1wa2NzNy1yc2Etc2hhMjU2LTEuY3J0OgotCSQoT1BFTlNTTCkgcmVxIC14NTA5IC1zdWJqPSIvQz1OTC9PPVBLQ1M3L0NOPVBLQ1M3IENlcnQgMSIgLXNoYTI1NiAtbm9kZXMgLWRheXMgMzY1MyAgLW5ld2tleSByc2E6MjA0OCAta2V5b3V0IHBrY3M3LXJzYS1zaGEyNTYtMS5rZXkgLW91dCBwa2NzNy1yc2Etc2hhMjU2LTEuY3J0Ci0JY2F0IHBrY3M3LXJzYS1zaGEyNTYtMS5jcnQgcGtjczctcnNhLXNoYTI1Ni0xLmtleSA+IHBrY3M3LXJzYS1zaGEyNTYtMS5wZW0KLWFsbF9maW5hbCArPSBwa2NzNy1yc2Etc2hhMjU2LTEuY3J0Ci0KLXBrY3M3LXJzYS1zaGEyNTYtMi5jcnQ6Ci0JJChPUEVOU1NMKSByZXEgLXg1MDkgLXN1Ymo9Ii9DPU5ML089UEtDUzcvQ049UEtDUzcgQ2VydCAyIiAtc2hhMjU2IC1ub2RlcyAtZGF5cyAzNjUzICAtbmV3a2V5IHJzYToyMDQ4IC1rZXlvdXQgcGtjczctcnNhLXNoYTI1Ni0yLmtleSAtb3V0IHBrY3M3LXJzYS1zaGEyNTYtMi5jcnQKLQljYXQgcGtjczctcnNhLXNoYTI1Ni0yLmNydCBwa2NzNy1yc2Etc2hhMjU2LTIua2V5ID4gcGtjczctcnNhLXNoYTI1Ni0yLnBlbQotYWxsX2ZpbmFsICs9IHBrY3M3LXJzYS1zaGEyNTYtMi5jcnQKLQotcGtjczctcnNhLXNoYTI1Ni0zLmNydDoKLQkkKE9QRU5TU0wpIHJlcSAteDUwOSAtc3Viaj0iL0M9TkwvTz1QS0NTNy9DTj1QS0NTNyBDZXJ0IDMiIC1zaGEyNTYgLW5vZGVzIC1kYXlzIDM2NTMgIC1uZXdrZXkgcnNhOjIwNDggLWtleW91dCBwa2NzNy1yc2Etc2hhMjU2LTMua2V5IC1vdXQgcGtjczctcnNhLXNoYTI1Ni0zLmNydAotCWNhdCBwa2NzNy1yc2Etc2hhMjU2LTMuY3J0IHBrY3M3LXJzYS1zaGEyNTYtMy5rZXkgPiBwa2NzNy1yc2Etc2hhMjU2LTMucGVtCi1hbGxfZmluYWwgKz0gcGtjczctcnNhLXNoYTI1Ni0zLmNydAotCi1wa2NzNy1yc2EtZXhwaXJlZC5jcnQ6Ci0JJChGQUtFVElNRSkgLWYgLTM2NTBkICQoT1BFTlNTTCkgcmVxIC14NTA5IC1zdWJqPSIvQz1OTC9PPVBLQ1M3L0NOPVBLQ1M3IENlcnQgRXhwaXJlZCIgLXNoYTI1NiAtbm9kZXMgLWRheXMgMzY1ICAtbmV3a2V5IHJzYToyMDQ4IC1rZXlvdXQgcGtjczctcnNhLWV4cGlyZWQua2V5IC1vdXQgcGtjczctcnNhLWV4cGlyZWQuY3J0Ci1hbGxfZmluYWwgKz0gcGtjczctcnNhLWV4cGlyZWQuY3J0Ci0KLSMgRmlsZSB3aXRoIGFuIG90aGVyd2lzZSB2YWxpZCBzaWduYXR1cmUgc2lnbmVkIHdpdGggYW4gZXhwaXJlZCBjZXJ0Ci1wa2NzN19kYXRhX3JzYV9leHBpcmVkLmRlcjogcGtjczctcnNhLWV4cGlyZWQua2V5IHBrY3M3LXJzYS1leHBpcmVkLmNydCBwa2NzN19kYXRhLmJpbgotCSQoT1BFTlNTTCkgc21pbWUgLXNpZ24gLWJpbmFyeSAtaW4gcGtjczdfZGF0YS5iaW4gLW91dCAkQCAtbWQgc2hhMjU2IC1pbmtleSBwa2NzNy1yc2EtZXhwaXJlZC5rZXkgLXNpZ25lciBwa2NzNy1yc2EtZXhwaXJlZC5jcnQgLW5vYXR0ciAtb3V0Zm9ybSBERVIgLW91dCAkQAotYWxsX2ZpbmFsICs9IHBrY3M3X2RhdGFfcnNhX2V4cGlyZWQuZGVyCi0KLSMgQ29udmVydCBzaWduaW5nIGNlcnRzIHRvIERFUiBmb3IgdGVzdGluZyBQRU0tZnJlZSBidWlsZHMKLXBrY3M3LXJzYS1zaGEyNTYtMS5kZXI6ICQocGtjczdfdGVzdF9jZXJ0XzEpCi0JJChPUEVOU1NMKSB4NTA5IC1pbiBwa2NzNy1yc2Etc2hhMjU2LTEuY3J0IC1vdXQgJEAgLW91dGZvcm0gREVSCi1hbGxfZmluYWwgKz0gcGtjczctcnNhLXNoYTI1Ni0xLmRlcgotCi1wa2NzNy1yc2Etc2hhMjU2LTIuZGVyOiAkKHBrY3M3X3Rlc3RfY2VydF8yKQotCSQoT1BFTlNTTCkgeDUwOSAtaW4gcGtjczctcnNhLXNoYTI1Ni0yLmNydCAtb3V0ICRAIC1vdXRmb3JtIERFUgotYWxsX2ZpbmFsICs9IHBrY3M3LXJzYS1zaGEyNTYtMi5kZXIKLQotcGtjczctcnNhLWV4cGlyZWQuZGVyOiBwa2NzNy1yc2EtZXhwaXJlZC5jcnQKLQkkKE9QRU5TU0wpIHg1MDkgLWluIHBrY3M3LXJzYS1leHBpcmVkLmNydCAtb3V0ICRAIC1vdXRmb3JtIERFUgotYWxsX2ZpbmFsICs9IHBrY3M3LXJzYS1leHBpcmVkLmRlcgotCi0jIHBrY3M3IHNpZ25hdHVyZSBmaWxlIG92ZXIgemVyby1sZW4gZGF0YQotcGtjczdfemVyb2xlbmRhdGFfZGV0YWNoZWQuZGVyOiBwa2NzN196ZXJvbGVuZGF0YS5iaW4gcGtjczctcnNhLXNoYTI1Ni0xLmtleSBwa2NzNy1yc2Etc2hhMjU2LTEuY3J0Ci0JJChPUEVOU1NMKSBzbWltZSAtc2lnbiAtbWQgc2hhMjU2IC1ub2NlcnRzIC1ub2F0dHIgLWluIHBrY3M3X3plcm9sZW5kYXRhLmJpbiAtaW5rZXkgcGtjczctcnNhLXNoYTI1Ni0xLmtleSAtb3V0Zm9ybSBERVIgLWJpbmFyeSAtc2lnbmVyIHBrY3M3LXJzYS1zaGEyNTYtMS5jcnQgLW91dCBwa2NzN196ZXJvbGVuZGF0YV9kZXRhY2hlZC5kZXIKLWFsbF9maW5hbCArPSBwa2NzN196ZXJvbGVuZGF0YV9kZXRhY2hlZC5kZXIKLQotIyBwa2NzNyBzaWduYXR1cmUgZmlsZSB3aXRoIENFUlQKLXBrY3M3X2RhdGFfY2VydF9zaWduZWRfc2hhMjU2LmRlcjogJChwa2NzN190ZXN0X2ZpbGUpICQocGtjczdfdGVzdF9jZXJ0XzEpCi0JJChPUEVOU1NMKSBzbWltZSAtc2lnbiAtYmluYXJ5IC1pbiBwa2NzN19kYXRhLmJpbiAtb3V0ICRAIC1tZCBzaGEyNTYgLXNpZ25lciBwa2NzNy1yc2Etc2hhMjU2LTEucGVtIC1ub2F0dHIgLW91dGZvcm0gREVSIC1vdXQgJEAKLWFsbF9maW5hbCArPSBwa2NzN19kYXRhX2NlcnRfc2lnbmVkX3NoYTI1Ni5kZXIKLQotIyBwa2NzNyBzaWduYXR1cmUgZmlsZSB3aXRoIENFUlQgYW5kIHNoYTEKLXBrY3M3X2RhdGFfY2VydF9zaWduZWRfc2hhMS5kZXI6ICQocGtjczdfdGVzdF9maWxlKSAkKHBrY3M3X3Rlc3RfY2VydF8xKQotCSQoT1BFTlNTTCkgc21pbWUgLXNpZ24gLWJpbmFyeSAtaW4gcGtjczdfZGF0YS5iaW4gLW91dCAkQCAtbWQgc2hhMSAtc2lnbmVyIHBrY3M3LXJzYS1zaGEyNTYtMS5wZW0gLW5vYXR0ciAtb3V0Zm9ybSBERVIgLW91dCAkQAotYWxsX2ZpbmFsICs9IHBrY3M3X2RhdGFfY2VydF9zaWduZWRfc2hhMS5kZXIKLQotIyBwa2NzNyBzaWduYXR1cmUgZmlsZSB3aXRoIENFUlQgYW5kIHNoYTUxMgotcGtjczdfZGF0YV9jZXJ0X3NpZ25lZF9zaGE1MTIuZGVyOiAkKHBrY3M3X3Rlc3RfZmlsZSkgJChwa2NzN190ZXN0X2NlcnRfMSkKLQkkKE9QRU5TU0wpIHNtaW1lIC1zaWduIC1iaW5hcnkgLWluIHBrY3M3X2RhdGEuYmluIC1vdXQgJEAgLW1kIHNoYTUxMiAtc2lnbmVyIHBrY3M3LXJzYS1zaGEyNTYtMS5wZW0gLW5vYXR0ciAtb3V0Zm9ybSBERVIgLW91dCAkQAotYWxsX2ZpbmFsICs9IHBrY3M3X2RhdGFfY2VydF9zaWduZWRfc2hhNTEyLmRlcgotCi0jIHBrY3M3IHNpZ25hdHVyZSBmaWxlIHdpdGhvdXQgQ0VSVAotcGtjczdfZGF0YV93aXRob3V0X2NlcnRfc2lnbmVkLmRlcjogJChwa2NzN190ZXN0X2ZpbGUpICQocGtjczdfdGVzdF9jZXJ0XzEpCi0JJChPUEVOU1NMKSBzbWltZSAtc2lnbiAtYmluYXJ5IC1pbiBwa2NzN19kYXRhLmJpbiAtb3V0ICRAIC1tZCBzaGEyNTYgLXNpZ25lciBwa2NzNy1yc2Etc2hhMjU2LTEucGVtIC1ub2NlcnRzIC1ub2F0dHIgLW91dGZvcm0gREVSIC1vdXQgJEAKLWFsbF9maW5hbCArPSBwa2NzN19kYXRhX3dpdGhvdXRfY2VydF9zaWduZWQuZGVyCi0KLSMgcGtjczcgc2lnbmF0dXJlIGZpbGUgd2l0aCBzaWduYXR1cmUKLXBrY3M3X2RhdGFfd2l0aF9zaWduYXR1cmUuZGVyOiAkKHBrY3M3X3Rlc3RfZmlsZSkgJChwa2NzN190ZXN0X2NlcnRfMSkKLQkkKE9QRU5TU0wpIHNtaW1lIC1zaWduIC1iaW5hcnkgLWluIHBrY3M3X2RhdGEuYmluIC1vdXQgJEAgLW1kIHNoYTI1NiAtc2lnbmVyIHBrY3M3LXJzYS1zaGEyNTYtMS5wZW0gLW5vY2VydHMgLW5vYXR0ciAtbm9kZXRhY2ggLW91dGZvcm0gREVSIC1vdXQgJEAKLWFsbF9maW5hbCArPSBwa2NzN19kYXRhX3dpdGhfc2lnbmF0dXJlLmRlcgotCi0jIHBrY3M3IHNpZ25hdHVyZSBmaWxlIHdpdGggdHdvIHNpZ25lcnMKLXBrY3M3X2RhdGFfbXVsdGlwbGVfc2lnbmVkLmRlcjogJChwa2NzN190ZXN0X2ZpbGUpICQocGtjczdfdGVzdF9jZXJ0XzEpICQocGtjczdfdGVzdF9jZXJ0XzIpCi0JJChPUEVOU1NMKSBzbWltZSAtc2lnbiAtYmluYXJ5IC1pbiBwa2NzN19kYXRhLmJpbiAtb3V0ICRAIC1tZCBzaGEyNTYgLXNpZ25lciBwa2NzNy1yc2Etc2hhMjU2LTEucGVtIC1zaWduZXIgcGtjczctcnNhLXNoYTI1Ni0yLnBlbSAtbm9jZXJ0cyAtbm9hdHRyIC1vdXRmb3JtIERFUiAtb3V0ICRACi1hbGxfZmluYWwgKz0gcGtjczdfZGF0YV9tdWx0aXBsZV9zaWduZWQuZGVyCi0KLSMgcGtjczcgc2lnbmF0dXJlIGZpbGUgd2l0aCB0aHJlZSBzaWduZXJzCi1wa2NzN19kYXRhXzNfc2lnbmVkLmRlcjogJChwa2NzN190ZXN0X2ZpbGUpICQocGtjczdfdGVzdF9jZXJ0XzEpICQocGtjczdfdGVzdF9jZXJ0XzIpICQocGtjczdfdGVzdF9jZXJ0XzMpCi0JJChPUEVOU1NMKSBzbWltZSAtc2lnbiAtYmluYXJ5IC1pbiBwa2NzN19kYXRhLmJpbiAtb3V0ICRAIC1tZCBzaGEyNTYgLXNpZ25lciBwa2NzNy1yc2Etc2hhMjU2LTEucGVtIC1zaWduZXIgcGtjczctcnNhLXNoYTI1Ni0yLnBlbSAtc2lnbmVyIHBrY3M3LXJzYS1zaGEyNTYtMy5wZW0gLW5vY2VydHMgLW5vYXR0ciAtb3V0Zm9ybSBERVIgLW91dCAkQAotYWxsX2ZpbmFsICs9IHBrY3M3X2RhdGFfM19zaWduZWQuZGVyCi0KLSMgcGtjczcgc2lnbmF0dXJlIGZpbGUgd2l0aCBtdWx0aXBsZSBjZXJ0aWZpY2F0ZXMKLXBrY3M3X2RhdGFfbXVsdGlwbGVfY2VydHNfc2lnbmVkLmRlcjogJChwa2NzN190ZXN0X2ZpbGUpICQocGtjczdfdGVzdF9jZXJ0XzEpICQocGtjczdfdGVzdF9jZXJ0XzIpCi0JJChPUEVOU1NMKSBzbWltZSAtc2lnbiAtYmluYXJ5IC1pbiBwa2NzN19kYXRhLmJpbiAtb3V0ICRAIC1tZCBzaGEyNTYgLXNpZ25lciBwa2NzNy1yc2Etc2hhMjU2LTEucGVtIC1zaWduZXIgcGtjczctcnNhLXNoYTI1Ni0yLnBlbSAtbm9hdHRyIC1vdXRmb3JtIERFUiAtb3V0ICRACi1hbGxfZmluYWwgKz0gcGtjczdfZGF0YV9tdWx0aXBsZV9jZXJ0c19zaWduZWQuZGVyCi0KLSMgcGtjczcgc2lnbmF0dXJlIGZpbGUgd2l0aCBjb3JydXB0ZWQgQ0VSVAotcGtjczdfZGF0YV9zaWduZWRfYmFkY2VydC5kZXI6IHBrY3M3X2RhdGFfY2VydF9zaWduZWRfc2hhMjU2LmRlcgotCWNwIHBrY3M3X2RhdGFfY2VydF9zaWduZWRfc2hhMjU2LmRlciAkQAotCWVjaG8gJ2ExJyB8IHh4ZCAtciAtcCB8IGRkIG9mPSRAIGJzPTEgc2Vlaz01NDcgY29udj1ub3RydW5jCi1hbGxfZmluYWwgKz0gcGtjczdfZGF0YV9zaWduZWRfYmFkY2VydC5kZXIKLQotIyBwa2NzNyBzaWduYXR1cmUgZmlsZSB3aXRoIGNvcnJ1cHRlZCBzaWduZXIgaW5mbwotcGtjczdfZGF0YV9zaWduZWRfYmFkc2lnbmVyLmRlcjogcGtjczdfZGF0YV9jZXJ0X3NpZ25lZF9zaGEyNTYuZGVyCi0JY3AgcGtjczdfZGF0YV9jZXJ0X3NpZ25lZF9zaGEyNTYuZGVyICRACi0JZWNobyAnYTEnIHwgeHhkIC1yIC1wIHwgZGQgb2Y9JEAgYnM9MSBzZWVrPTkxOCBjb252PW5vdHJ1bmMKLWFsbF9maW5hbCArPSBwa2NzN19kYXRhX3NpZ25lZF9iYWRzaWduZXIuZGVyCi0KLSMgcGtjczcgc2lnbmF0dXJlIGZpbGUgd2l0aCBpbnZhbGlkIHRhZyBpbiBzaWduZXJJbmZvWzFdLnNlcmlhbCBhZnRlciBsb25nIGlzc3VlciBuYW1lCi1wa2NzN19zaWduZXJJbmZvXzFfc2VyaWFsX2ludmFsaWRfdGFnX2FmdGVyX2xvbmdfbmFtZS5kZXI6IHBrY3M3X2RhdGFfbXVsdGlwbGVfc2lnbmVkLmRlcgotCWNwICQ8ICRACi0JZWNobyAnYTEnIHwgeHhkIC1yIC1wIHwgZGQgb2Y9JEAgYnM9MSBzZWVrPTQ5OCBjb252PW5vdHJ1bmMKLWFsbF9maW5hbCArPSBwa2NzN19zaWduZXJJbmZvXzFfc2VyaWFsX2ludmFsaWRfdGFnX2FmdGVyX2xvbmdfbmFtZS5kZXIKLQotIyBwa2NzNyBzaWduYXR1cmUgZmlsZSB3aXRoIGludmFsaWQgdGFnIGluIHNpZ25lckluZm9bMl0KLXBrY3M3X3NpZ25lckluZm9fMl9pbnZhbGlkX3RhZy5kZXI6IHBrY3M3X2RhdGFfM19zaWduZWQuZGVyCi0JY3AgJDwgJEAKLQllY2hvICdhMScgfCB4eGQgLXIgLXAgfCBkZCBvZj0kQCBicz0xIHNlZWs9ODEwIGNvbnY9bm90cnVuYwotYWxsX2ZpbmFsICs9IHBrY3M3X3NpZ25lckluZm9fMl9pbnZhbGlkX3RhZy5kZXIKLQotIyBwa2NzNyBzaWduYXR1cmUgZmlsZSB3aXRoIGNvcnJ1cHRlZCBzaWduZXIgaW5mb1sxXQotcGtjczdfZGF0YV9zaWduZWRfYmFkc2lnbmVyMV9iYWRzaXplLmRlcjogcGtjczdfZGF0YV8zX3NpZ25lZC5kZXIKLQljcCBwa2NzN19kYXRhXzNfc2lnbmVkLmRlciAkQAotCWVjaG8gJzcyJyB8IHh4ZCAtcCAtciB8IGRkIG9mPSRAIGJzPTEgc2Vlaz00MzggY29udj1ub3RydW5jCi1hbGxfZmluYWwgKz0gcGtjczdfZGF0YV9zaWduZWRfYmFkc2lnbmVyMV9iYWRzaXplLmRlcgotCi1wa2NzN19kYXRhX3NpZ25lZF9iYWRzaWduZXIxX2JhZHRhZy5kZXI6IHBrY3M3X2RhdGFfM19zaWduZWQuZGVyCi0JY3AgcGtjczdfZGF0YV8zX3NpZ25lZC5kZXIgJEAKLQllY2hvICdhMScgfCB4eGQgLXAgLXIgfCBkZCBvZj0kQCBicz0xIHNlZWs9NDQyIGNvbnY9bm90cnVuYwotYWxsX2ZpbmFsICs9IHBrY3M3X2RhdGFfc2lnbmVkX2JhZHNpZ25lcjFfYmFkdGFnLmRlcgotCi1wa2NzN19kYXRhX3NpZ25lZF9iYWRzaWduZXIxX2Z1enpiYWQuZGVyOiBwa2NzN19kYXRhXzNfc2lnbmVkLmRlcgotCWNwIHBrY3M3X2RhdGFfM19zaWduZWQuZGVyICRACi0JZWNobyAnYTEnIHwgeHhkIC1wIC1yIHwgZGQgb2Y9JEAgYnM9MSBzZWVrPTU1MCBjb252PW5vdHJ1bmMKLWFsbF9maW5hbCArPSBwa2NzN19kYXRhX3NpZ25lZF9iYWRzaWduZXIxX2Z1enpiYWQuZGVyCi0KLSMgcGtjczcgc2lnbmF0dXJlIGZpbGUgd2l0aCBjb3JydXB0ZWQgc2lnbmVyIGluZm9bMl0KLXBrY3M3X2RhdGFfc2lnbmVkX2JhZHNpZ25lcjJfYmFkc2l6ZS5kZXI6IHBrY3M3X2RhdGFfM19zaWduZWQuZGVyCi0JY3AgcGtjczdfZGF0YV8zX3NpZ25lZC5kZXIgJEAKLQllY2hvICc3Mid8IHh4ZCAtcCAtciB8IGRkIG9mPSRAIGJzPTEgc2Vlaz04MTMgY29udj1ub3RydW5jCi1hbGxfZmluYWwgKz0gcGtjczdfZGF0YV9zaWduZWRfYmFkc2lnbmVyMl9iYWRzaXplLmRlcgotCi1wa2NzN19kYXRhX3NpZ25lZF9iYWRzaWduZXIyX2JhZHRhZy5kZXI6IHBrY3M3X2RhdGFfM19zaWduZWQuZGVyCi0JY3AgcGtjczdfZGF0YV8zX3NpZ25lZC5kZXIgJEAKLQllY2hvICdhMSd8IHh4ZCAtcCAtciB8IGRkIG9mPSRAIGJzPTEgc2Vlaz04MTcgY29udj1ub3RydW5jCi1hbGxfZmluYWwgKz0gcGtjczdfZGF0YV9zaWduZWRfYmFkc2lnbmVyMl9iYWR0YWcuZGVyCi0KLXBrY3M3X2RhdGFfc2lnbmVkX2JhZHNpZ25lcjJfZnV6emJhZC5kZXI6IHBrY3M3X2RhdGFfM19zaWduZWQuZGVyCi0JY3AgcGtjczdfZGF0YV8zX3NpZ25lZC5kZXIgJEAKLQllY2hvICdhMSd8IHh4ZCAtcCAtciB8IGRkIG9mPSRAIGJzPTEgc2Vlaz05MjUgY29udj1ub3RydW5jCi1hbGxfZmluYWwgKz0gcGtjczdfZGF0YV9zaWduZWRfYmFkc2lnbmVyMl9mdXp6YmFkLmRlcgotCi0jIHBrY3M3IGZpbGUgd2l0aCB2ZXJzaW9uIDIKLXBrY3M3X2RhdGFfY2VydF9zaWduZWRfdjIuZGVyOiBwa2NzN19kYXRhX2NlcnRfc2lnbmVkX3NoYTI1Ni5kZXIKLQljcCBwa2NzN19kYXRhX2NlcnRfc2lnbmVkX3NoYTI1Ni5kZXIgJEAKLQllY2hvICcwMicgfCB4eGQgLXIgLXAgfCBkZCBvZj0kQCBicz0xIHNlZWs9MjUgY29udj1ub3RydW5jCi1hbGxfZmluYWwgKz0gcGtjczdfZGF0YV9jZXJ0X3NpZ25lZF92Mi5kZXIKLQotcGtjczdfZGF0YV9jZXJ0X2VuY3J5cHRlZC5kZXI6ICQocGtjczdfdGVzdF9maWxlKSAkKHBrY3M3X3Rlc3RfY2VydF8xKQotCSQoT1BFTlNTTCkgc21pbWUgLWVuY3J5cHQgLWFlczI1NiAtaW4gcGtjczdfZGF0YS5iaW4gLWJpbmFyeSAtb3V0Zm9ybSBERVIgLW91dCAkQCBwa2NzNy1yc2Etc2hhMjU2LTEuY3J0Ci1hbGxfZmluYWwgKz0gcGtjczdfZGF0YV9jZXJ0X2VuY3J5cHRlZC5kZXIKLQotIyMgTmVnYXRpdmUgdGVzdHMKLSMgRm9yIHNvbWUgaW50ZXJlc3Rpbmcgc2l6ZXMsIHdoYXQgaGFwcGVucyBpZiB3ZSBtYWtlIHRoZW0gb2ZmLWJ5LW9uZT8KLXBrY3M3X3NpZ25lckluZm9faXNzdWVyX2ludmFsaWRfc2l6ZS5kZXI6IHBrY3M3X2RhdGFfY2VydF9zaWduZWRfc2hhMjU2LmRlcgotCWNwICQ8ICRACi0JZWNobyAnMzUnIHwgeHhkIC1yIC1wIHwgZGQgb2Y9JEAgc2Vlaz05MTkgYnM9MSBjb252PW5vdHJ1bmMKLWFsbF9maW5hbCArPSBwa2NzN19zaWduZXJJbmZvX2lzc3Vlcl9pbnZhbGlkX3NpemUuZGVyCi0KLXBrY3M3X3NpZ25lckluZm9fc2VyaWFsX2ludmFsaWRfc2l6ZS5kZXI6IHBrY3M3X2RhdGFfY2VydF9zaWduZWRfc2hhMjU2LmRlcgotCWNwICQ8ICRACi0JZWNobyAnMTUnIHwgeHhkIC1yIC1wIHwgZGQgb2Y9JEAgc2Vlaz05NzMgYnM9MSBjb252PW5vdHJ1bmMKLWFsbF9maW5hbCArPSBwa2NzN19zaWduZXJJbmZvX3NlcmlhbF9pbnZhbGlkX3NpemUuZGVyCi0KLSMgcGtjczcgc2lnbmF0dXJlIGZpbGUganVzdCB3aXRoIHNpZ25lZCBkYXRhCi1wa2NzN19kYXRhX2NlcnRfc2lnbmVkZGF0YV9zaGEyNTYuZGVyOiBwa2NzN19kYXRhX2NlcnRfc2lnbmVkX3NoYTI1Ni5kZXIKLQlkZCBpZj1wa2NzN19kYXRhX2NlcnRfc2lnbmVkX3NoYTI1Ni5kZXIgb2Y9JEAgc2tpcD0xOSBicz0xCi1hbGxfZmluYWwgKz0gcGtjczdfZGF0YV9jZXJ0X3NpZ25lZGRhdGFfc2hhMjU2LmRlcgotCi0jIC0gdGVzdC1jYS12MS5jcnQ6IHYxICJDQSIsIHNpZ25zCi0jICAgICBzZXJ2ZXIxLXYxLmNydDogdjEgImludGVybWVkaWF0ZSBDQSIsIHNpZ25zCi0jICAgICAgICAgc2VydmVyMi12MSouY3J0OiBFRSBjZXJ0ICh3aXRob3V0IG9mIHdpdGggY2hhaW4gaW4gc2FtZSBmaWxlKQotCi10ZXN0LWNhLXYxLmNydDogJCh0ZXN0X2NhX2tleV9maWxlX3JzYSkgdGVzdC1jYS5yZXEuc2hhMjU2Ci0JJChNQkVEVExTX0NFUlRfV1JJVEUpIGlzX2NhPTEgc2VyaWFsX2hleD01M2EyYjY4ZTA1NDAwZTU1NWM5Mzk1ZTUgXAotCQlyZXF1ZXN0X2ZpbGU9dGVzdC1jYS5yZXEuc2hhMjU2IFwKLQkJc2VsZnNpZ249MSBpc3N1ZXJfbmFtZT0iQ049UG9sYXJTU0wgVGVzdCBDQSB2MSxPVT10ZXN0aW5nLE89UG9sYXJTU0wsQz1OTCIgXAotCQlpc3N1ZXJfa2V5PSQodGVzdF9jYV9rZXlfZmlsZV9yc2EpIGlzc3Vlcl9wd2Q9JCh0ZXN0X2NhX3B3ZF9yc2EpIFwKLQkJbm90X2JlZm9yZT0yMDE5MDIxMDE0NDQwMCBub3RfYWZ0ZXI9MjAyOTAyMTAxNDQ0MDAgbWQ9U0hBMjU2IHZlcnNpb249MSBcCi0JCW91dHB1dF9maWxlPSRACi1hbGxfZmluYWwgKz0gdGVzdC1jYS12MS5jcnQKLQotc2VydmVyMS12MS5jcnQ6IHNlcnZlcjEua2V5IHRlc3QtY2EtdjEuY3J0Ci0JJChNQkVEVExTX0NFUlRfV1JJVEUpIHN1YmplY3Rfa2V5PSQ8IHNlcmlhbF9oZXg9NTNhMmI2YzcwNGNkNGQ4ZWJjODAwYmMxXAotCQlzdWJqZWN0X25hbWU9IkNOPXNlcnZlcjEvaW50LWNhLXYxLE9VPXRlc3RpbmcsTz1Qb2xhclNTTCxDPU5MIiAgXAotCQlpc3N1ZXJfY3J0PXRlc3QtY2EtdjEuY3J0IGlzc3Vlcl9rZXk9JCh0ZXN0X2NhX2tleV9maWxlX3JzYSkgXAotCQlpc3N1ZXJfcHdkPSQodGVzdF9jYV9wd2RfcnNhKSBcCi0JCW5vdF9iZWZvcmU9MjAxOTAyMTAxNDQ0MDYgbm90X2FmdGVyPTIwMjkwMjEwMTQ0NDA2IFwKLQkJbWQ9U0hBMjU2IHZlcnNpb249MSBcCi0JCW91dHB1dF9maWxlPSRACi1hbGxfZmluYWwgKz0gc2VydmVyMS12MS5jcnQKLQotc2VydmVyMi12MS5jcnQ6IHNlcnZlcjIua2V5IHNlcnZlcjEtdjEuY3J0Ci0JJChNQkVEVExTX0NFUlRfV1JJVEUpIHN1YmplY3Rfa2V5PSQ8IHNlcmlhbF9oZXg9NTNhMmI2ZDkyMzVkYmM0NTczZjliNzZjXAotCQlzdWJqZWN0X25hbWU9IkNOPXNlcnZlcjIsT1U9dGVzdGluZyxPPVBvbGFyU1NMLEM9TkwiICBcCi0JCWlzc3Vlcl9jcnQ9c2VydmVyMS12MS5jcnQgaXNzdWVyX2tleT1zZXJ2ZXIxLmtleSBcCi0JCW5vdF9iZWZvcmU9MjAxOTAyMTAxNDQ0MDYgbm90X2FmdGVyPTIwMjkwMjEwMTQ0NDA2IFwKLQkJbWQ9U0hBMjU2IHZlcnNpb249MSBcCi0JCW91dHB1dF9maWxlPSRACi1hbGxfZmluYWwgKz0gc2VydmVyMi12MS5jcnQKLQotc2VydmVyMi12MS1jaGFpbi5jcnQ6IHNlcnZlcjItdjEuY3J0IHNlcnZlcjEtdjEuY3J0Ci0JY2F0ICReID4gJEAKLQotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotIyMjIyBEaWZmaWUtSGVsbG1hbiBwYXJhbWV0ZXJzCi0jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0KLWRoLjk5OC5wZW06Ci0JJChPUEVOU1NMKSBkaHBhcmFtIC1vdXQgJEAgLXRleHQgOTk4Ci0KLWRoLjk5OS5wZW06Ci0JJChPUEVOU1NMKSBkaHBhcmFtIC1vdXQgJEAgLXRleHQgOTk5Ci0KLQotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotIyMjIyBNZXRhIHRhcmdldHMKLSMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLQotYWxsX2ZpbmFsOiAkKGFsbF9maW5hbCkKLWFsbDogJChhbGxfaW50ZXJtZWRpYXRlKSAkKGFsbF9maW5hbCkKLQotLlBIT05ZOiBkZWZhdWx0IGFsbF9maW5hbCBhbGwKLS5QSE9OWToga2V5c19yc2FfYWxsCi0uUEhPTlk6IGtleXNfcnNhX2VuY19iYXNpYwotLlBIT05ZOiBrZXlzX3JzYV9lbmNfcGtjczhfdjEga2V5c19yc2FfZW5jX3BrY3M4X3YyCi0uUEhPTlk6IGtleXNfcnNhX2VuY19iYXNpY18xMDI0IGtleXNfcnNhX2VuY19iYXNpY18yMDQ4IGtleXNfcnNhX2VuY19iYXNpY180MDk2Ci0uUEhPTlk6IGtleXNfcnNhX2VuY19wa2NzOF92MV8xMDI0IGtleXNfcnNhX2VuY19wa2NzOF92Ml8xMDI0Ci0uUEhPTlk6IGtleXNfcnNhX2VuY19wa2NzOF92MV8yMDQ4IGtleXNfcnNhX2VuY19wa2NzOF92Ml8yMDQ4Ci0uUEhPTlk6IGtleXNfcnNhX2VuY19wa2NzOF92MV80MDk2IGtleXNfcnNhX2VuY19wa2NzOF92Ml80MDk2Ci0uUEhPTlk6IHNlcnZlcjFfYWxsCi0KLSMgVGhlc2UgZmlsZXMgc2hvdWxkIG5vdCBiZSBjb21taXR0ZWQgdG8gdGhlIHJlcG9zaXRvcnkuCi1saXN0X2ludGVybWVkaWF0ZToKLQlAcHJpbnRmICclc1xuJyAkKGFsbF9pbnRlcm1lZGlhdGUpIHwgc29ydAotIyBUaGVzZSBmaWxlcyBzaG91bGQgYmUgY29tbWl0dGVkIHRvIHRoZSByZXBvc2l0b3J5IHNvIHRoYXQgdGhlIHRlc3QgZGF0YSBpcwotIyBhdmFpbGFibGUgdXBvbiBjaGVja291dCB3aXRob3V0IHJ1bm5pbmcgYSByYW5kb21pemVkIHByb2Nlc3MgZGVwZW5kaW5nIG9uCi0jIHRoaXJkLXBhcnR5IHRvb2xzLgotbGlzdF9maW5hbDoKLQlAcHJpbnRmICclc1xuJyAkKGFsbF9maW5hbCkgfCBzb3J0Ci0uUEhPTlk6IGxpc3RfaW50ZXJtZWRpYXRlIGxpc3RfZmluYWwKLQotIyMgUmVtb3ZlIGludGVybWVkaWF0ZSBmaWxlcwotY2xlYW46Ci0Jcm0gLWYgJChhbGxfaW50ZXJtZWRpYXRlKQotIyMgUmVtb3ZlIGFsbCBidWlsZCBwcm9kdWN0cywgZXZlbiB0aGUgb25lcyB0aGF0IGFyZSBjb21taXR0ZWQKLW5lYXQ6IGNsZWFuCi0Jcm0gLWYgJChhbGxfZmluYWwpCi0uUEhPTlk6IGNsZWFuIG5lYXQKLQotLlNFQ09OREFSWTogJChhbGxfaW50ZXJtZWRpYXRlKQpkaWZmIC0tZ2l0IGEvdGVzdHMvZGF0YV9maWxlcy9SZWFkbWUteDUwOS50eHQgYi90ZXN0cy9kYXRhX2ZpbGVzL1JlYWRtZS14NTA5LnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggODJmOTNkMi4uMDAwMDAwMAotLS0gYS90ZXN0cy9kYXRhX2ZpbGVzL1JlYWRtZS14NTA5LnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDEzNSArMCwwIEBACi1UaGlzIGRvY3VtZW50cyB0aGUgWC41MDkgQ0FzLCBjZXJ0aWZpY2F0ZXMsIGFuZCBDUkxTIHVzZWQgZm9yIHRlc3RpbmcuCi0KLUNlcnRpZmljYXRpb24gYXV0aG9yaXRpZXMKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLQotVGhlcmUgYXJlIHR3byBtYWluIENBcyBmb3IgdXNlIGFzIHRydXN0ZWQgcm9vdHM6Ci0tIHRlc3QtY2EuY3J0IGFrYSAiQz1OTCwgTz1Qb2xhclNTTCwgQ049UG9sYXJTU0wgVGVzdCBDQSIKLSAgdXNlcyBhIFJTQS0yMDQ4IGtleQotICB0ZXN0LWNhLXNoYTEuY3J0IGFuZCB0ZXN0LWNhLXNoYTI1Ni5jcnQgdXNlIHRoZSBzYW1lIGtleSwgc2lnbmVkIHdpdGgKLSAgZGlmZmVyZW50IGhhc2hlcy4KLS0gdGVzdC1jYTIqLmNydCBha2EgIkM9TkwsIE89UG9sYXJTU0wsIENOPVBvbGFyc3NsIFRlc3QgRUMgQ0EiCi0gIHVzZXMgYW4gRUMga2V5IHdpdGggTklTVCBQLTM4NCAoYWthIHNlY3AzODRyMSkKLSAgdmFyaWFudHMgdXNlZCB0byB0ZXN0IHRoZSBrZXlVc2FnZSBleHRlbnNpb24KLVRoZSBmaWxlcyB0ZXN0LWNhX2NhdDEyIGFuZCB0ZXN0LWNhX2NhdDIxIGNvbnRhaW4gdGhlbSBjb25jYXRlbmF0ZWQgYm90aCB3YXlzLgotCi1Ud28gaW50ZXJtZWRpYXRlIENBcyBhcmUgc2lnbmVkIGJ5IHRoZW06Ci0tIHRlc3QtaW50LWNhLmNydCAiQz1OTCwgTz1Qb2xhclNTTCwgQ049UG9sYXJTU0wgVGVzdCBJbnRlcm1lZGlhdGUgQ0EiCi0gIHVzZXMgUlNBLTQwOTYsIHNpZ25lZCBieSB0ZXN0LWNhMgotICAgIC0gdGVzdC1pbnQtY2EtZXhwLmNydCBpcyBhIGNvcHkgdGhhdCBpcyBleHBpcmVkCi0tIHRlc3QtaW50LWNhMi5jcnQgIkM9TkwsIE89UG9sYXJTU0wsIENOPVBvbGFyU1NMIFRlc3QgSW50ZXJtZWRpYXRlIEVDIENBIgotICB1c2VzIGFuIEVDIGtleSB3aXRoIE5JU1QgUC0zODQsIHNpZ25lZCBieSB0ZXN0LWNhCi0KLUEgdGhpcmQgaW50ZXJtZWRpYXRlIENBIGlzIHNpZ25lZCBieSB0ZXN0LWludC1jYTIuY3J0OgotLSB0ZXN0LWludC1jYTMuY3J0ICJDPVVLLCBPPW1iZWQgVExTLCBDTj1tYmVkIFRMUyBUZXN0IGludGVybWVkaWF0ZSBDQSAzIgotICB1c2VzIGFuIEVDIGtleSB3aXRoIE5JU1QgUC0yNTYsIHNpZ25lZCBieSB0ZXN0LWludC1jYTIKLQotRmluYWxseSwgb3RoZXIgQ0FzIGZvciBzcGVjaWZpYyBwdXJwb3NlczoKLS0gZW5jby1jYS1wcnN0ci5wZW06IGhhcyBpdHMgQ04gZW5jb2RlZCBhcyBhIHByaW50YWJsZSBzdHJpbmcsIGJ1dCBjaGlsZCBjZXJ0Ci0gIGVuY28tY2VydC11dGY4c3RyLnBlbSBoYXMgaXRzIGlzc3VlcidzIENOIGVuY29kZWQgYXMgYSBVVEYtOCBzdHJpbmcuCi0tIHRlc3QtY2EtdjEuY3J0OiB2MSAiQ0EiLCBzaWducwotICAgIHNlcnZlcjEtdjEuY3J0OiB2MSAiaW50ZXJtZWRpYXRlIENBIiwgc2lnbnMKLSAgICAgICAgc2VydmVyMi12MSouY3J0OiBFRSBjZXJ0ICh3aXRob3V0IG9mIHdpdGggY2hhaW4gaW4gc2FtZSBmaWxlKQotLSBrZXlVc2FnZS5kZWNpcGhlck9ubHkuY3J0OiBoYXMgdGhlIGRlY2lwaGVyT25seSBrZXlVc2FnZSBiaXQgc2V0Ci0KLUVuZC1lbnRpdHkgY2VydGlmaWNhdGVzCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotCi1TaG9ydCBpbmZvcm1hdGlvbiBmaWVsZHM6Ci0KLS0gbmFtZSBvciBwYXR0ZXJuCi0tIGlzc3VpbmcgQ0E6ICAgMSAgIC0+IHRlc3QtY2EuY3J0Ci0gICAgICAgICAgICAgICAgMiAgIC0+IHRlc3QtY2EyLmNydAotICAgICAgICAgICAgICAgIEkxICAtPiB0ZXN0LWludC1jYS5jcnQKLSAgICAgICAgICAgICAgICBJMiAgLT4gdGVzdC1pbnQtY2EyLmNydAotICAgICAgICAgICAgICAgIEkzICAtPiB0ZXN0LWludC1jYTMuY3J0Ci0gICAgICAgICAgICAgICAgTyAgIC0+IG90aGVyCi0tIGtleSB0eXBlOiBSIC0+IFJTQSwgRSAtPiBFQwotLSBDIC0+IHRoZXJlIGlzIGEgQ1JMIHJldm9raW5nIHRoaXMgY2VydCAoc2VlIGJlbG93KQotLSBMIC0+IENOPWxvY2FsaG9zdCAodXNlZnVsIGZvciBsb2NhbCB0ZXN0IHNlcnZlcnMpCi0tIFAxLCBQMiBpZiB0aGUgZmlsZSBpbmNsdWRlcyBwYXJlbnQgKHJlc3AuIHBhcmVudCArIGdyYW5kcGFyZW50KQotLSBmcmVlLWZvcm0gY29tbWVudHMKLQotTGlzdCBvZiBjZXJ0aWZpY2F0ZXM6Ci0KLS0gY2VydF9leGFtcGxlX211bHRpKi5jcnQ6IDEvTyBSOiBzdWJqZWN0QWx0TmFtZQotLSBjZXJ0X2V4YW1wbGVfd2lsZGNhcmQuY3J0OiAxIFI6IHdpbGRjYXJkIGluIHN1YmplY3QncyBDTgotLSBjZXJ0X21kKi5jcnQsIGNlcnRfc2hhKi5jcnQ6IDEgUjogc2lnbmF0dXJlIGhhc2gKLS0gY2VydF92MV93aXRoX2V4dC5jcnQ6IDEgUjogdjEgd2l0aCBleHRlbnNpb25zIChpbGxlZ2FsKQotLSBjbGkyLmNydDogMiBFOiBiYXNpYwotLSBjbGktcnNhLmtleSwgY2xpLXJzYS0qLmNydDogUlNBIGtleSB1c2VkIGZvciB0ZXN0IGNsaWVudHMsIHNpZ25lZCBieQotICB0aGUgUlNBIHRlc3QgQ0EuCi0tIGVuY28tY2VydC11dGY4c3RyLnBlbTogc2VlIGVuY28tY2EtcHJzdHIucGVtIGFib3ZlCi0tIHNlcnZlcjEqLmNydDogMSogUiBDKiBQMSo6IG1pc2MgKihzZXJ2ZXIxLXYxIHNlZSB0ZXN0LWNhLXYxLmNydCBhYm92ZSkKLSAgICAqQ1JMIGZvcjogLmNlcnRfdHlwZS5jcnQsIC5jcnQsIC5rZXlfdXNhZ2UuY3J0LCAudjEuY3J0Ci0gICAgUDEgb25seSBmb3IgX2NhLmNydAotLSBzZXJ2ZXIyLXYxKi5jcnQ6IE8gUjogc2VlIHRlc3QtY2EtdjEuY3J0IGFib3ZlCi0tIHNlcnZlcjIqLmNydDogMSBSIEw6IG1pc2MKLS0gc2VydmVyMy5jcnQ6IDEgRSBMOiBFQyBjZXJ0IHNpZ25lZCBieSBSU0EgQ0EKLS0gc2VydmVyNC5jcnQ6IDIgUiBMOiBSU0EgY2VydCBzaWduZWQgYnkgRUMgQ0EKLS0gc2VydmVyNSouY3J0OiAyKiBFIEw6IG1pc2MgKihleGNlcHQgLXNlbGZzaWduZWQgYW5kIC1zcy0qKQotICAgIC1zaGEqOiBoYXNoZXMKLSAgICAuZWt1KjogZXh0ZW5kZUtleVVzYWdlIChjbGkvc3J2ID0gd3d3IGNsaWVudC9zZXJ2ZXIsIGNzID0gY29kZXNpZ24sIGV0YykKLSAgICAua3UqOiBrZXlVc2FnZSAoZHMgPSBzaWduYXR1cmVzLCBrZS9rYSA9IGtleSBleGNoYW5nZS9hZ3JlZW1lbnQpCi0gICAgLnJlcSo6IENTUiwgbm90IGNlcnRpZmljYXRlCi0gICAgLWRlcio6IHRyYWlsaW5nIGJ5dGVzIGluIGRlciAoPykKLSAgICAtYmFkc2lnbi5jcnQ6IFM1IHdpdGggY29ycnVwdGVkIHNpZ25hdHVyZQotICAgIC1leHBpcmVkLmNydDogUzUgd2l0aCAibm90IGFmdGVyIiBkYXRlIGluIHRoZSBwYXN0Ci0gICAgLWZ1dHVyZS5jcnQ6IFM1IHdpdGggIm5vdCBiZWZvcmUiIGRhdGUgaW4gdGhlIGZ1dHVyZQotICAgIC1ub24tY29tcGxpYW50LmNydDogUzUsIFJGQyBub24tY29tcGxpYW50Ci0gICAgICAod2l0aCBmb3JiaWRkZW4gRUMgYWxnb3JpdGhtIGlkZW50aWZpZXIgTlVMTCBwYXJhbWV0ZXIpCi0gICAgICBnZW5lcmF0ZWQgYnkgKGJlZm9yZSBmaXgpOgotICAgICAgICBjZXJ0X3dyaXRlIHN1YmplY3Rfa2V5PXNlcnZlcjUua2V5IHN1YmplY3RfbmFtZT0iQ049VGVzdCBFQyBSRkMgbm9uLWNvbXBsaWFudCIgaXNzdWVyX2NydD10ZXN0LWNhMi5jcnQgaXNzdWVyX2tleT10ZXN0LWNhMi5rZXkKLSAgICAtc2VsZnNpZ25lZC5jcnQ6IFNlbGYtc2lnbmVkIGNlcnQgd2l0aCBTNSBrZXkKLSAgICAtc3MtZXhwaXJlZC5jcnQ6IFNlbGYtc2lnbmVkIGNlcnQgd2l0aCBTNSBrZXksIGV4cGlyZWQKLSAgICAtc3MtZm9yZ2VjYS5jcnQ6IENvcHkgb2YgdGVzdC1pbnQtY2EzIHNlbGYtc2lnbmVkIHdpdGggUzUga2V5Ci0tIHNlcnZlcjYtc3MtY2hpbGQuY3J0OiBPIEU6ICJjaGlsZCIgb2Ygbm9uLUNBIHNlcnZlcjUtc2VsZnNpZ25lZAotLSBzZXJ2ZXI2LmNydCwgc2VydmVyNi5wZW06IDIgRSBMIEM6IHJldm9rZWQKLS0gc2VydmVyNy5jcnQ6IEkxIEUgTCBQMSh1c3VhbGx5KTogRUMgc2lnbmVkIGJ5IFJTQSBzaWduZWQgYnkgRUMKLSAgICAtYmFkc2lnbi5jcnQ6IFM3IHdpdGggY29ycnVwdGVkIHNpZ25hdHVyZSArIEkxCi0gICAgLWV4cGlyZWQuY3J0OiBTNyB3aXRoICJub3QgYWZ0ZXIiIGRhdGUgaW4gdGhlIHBhc3QgKyBJMQotICAgIC1mdXR1cmUuY3J0OiBTNyB3aXRoICJub3QgYmVmb3JlIiBkYXRlIGluIHRoZSBmdXR1cmUgKyBJMQotICAgIF9pbnQtY2EtZXhwLmNydDogUzcgKyBleHBpcmVkIEkxCi0gICAgX2ludC1jYS5jcnQ6IFM3ICsgSTEKLSAgICBfaW50LWNhX2NhMi5jcnQ6IFM3ICsgSTEgKyAyCi0gICAgX2FsbF9zcGFjZS5jcnQ6IFM3ICsgSTEgYm90aCB3aXRoIG1pc3BsYWNlZCBzcGFjZXMgKGludmFsaWQgUEVNKQotICAgIF9wZW1fc3BhY2UuY3J0OiBTNyB3aXRoIG1pc3BsYWNlZCBzcGFjZSAoaW52YWxpZCBQRU0pICsgSTEKLSAgICBfdHJhaWxpbmdfc3BhY2UuY3J0OiBTNyArIEkxIGJvdGggd2l0aCB0cmFpbGluZyBzcGFjZSAodmFsaWQgUEVNKQotICAgIF9zcHVyaW91c19pbnQtY2EuY3J0OiBTNyArIEkyKHNwdXJpb3VzKSArIEkxCi0tIHNlcnZlcjgqLmNydDogSTIgUiBMOiBSU0Egc2lnbmVkIGJ5IEVDIHNpZ25lZCBieSBSU0EgKFAxIGZvciBfaW50LWNhMikKLS0gc2VydmVyOSouY3J0OiAxIFIgQyogTCBQMSo6IHNpZ25lZCB1c2luZyBSU0FTU0EtUFNTCi0gICAgKkNSTCBmb3I6IDkuY3J0LCAtYmFkc2lnbiwgLXdpdGgtY2EgKFAxKQotLSBzZXJ2ZXIxMC5jcnQ6IEkzIEUgTAotICAgIC1iYWRzaWduLmNydDogUzEwIHdpdGggY29ycnVwdGVkIHNpZ25hdHVyZQotICAgIC1ic19pbnQzLnBlbTogUzEwLWJhZHNpZ24gKyBJMwotICAgIF9pbnQzLWJzLnBlbTogUzEwICsgSTMtYmFkc2lnbgotICAgIF9pbnQzX2ludC1jYTIuY3J0OiBTMTAgKyBJMyArIEkyCi0gICAgX2ludDNfaW50LWNhMl9jYS5jcnQ6IFMxMCArIEkzICsgSTIgKyAxCi0gICAgX2ludDNfc3B1cmlvdXNfaW50LWNhMi5jcnQ6IFMxMCArIEkzICsgSTEoc3B1cmlvdXMpICsgSTIKLQotQ2VydGlmaWNhdGUgcmV2b2NhdGlvbiBsaXN0cwotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotCi1TaWduaW5nIENBIGluIHBhcmVudGhlc2VzIChzYW1lIG1lYW5pbmcgYXMgY2VydGlmaWNhdGVzKS4KLQotLSBjcmwtZWMtc2hhKi5wZW06ICgyKSBzZXJ2ZXI2LmNydAotLSBjcmwtZnV0dXJlLnBlbTogKDIpIHNlcnZlcjYuY3J0ICsgdW5rbm93bgotLSBjcmwtcnNhLXBzcy0qLnBlbTogKDEpIHNlcnZlcjl7LGJhZHNpZ24sd2l0aC1jYX0uY3J0ICsgY2VydF9zaGEzODQuY3J0ICsgdW5rbm93bgotLSBjcmwucGVtLCBjcmwtZnV0dXJlUmV2b2NhdGlvbkRhdGUucGVtLCBjcmxfZXhwaXJlZC5wZW06ICgxKSBzZXJ2ZXIxeywuY2VydF90eXBlLC5rZXlfdXNhZ2UsLnYxfS5jcnQgKyB1bmtub3duCi0tIGNybF9tZCoucGVtOiBjcmxfc2hhKi5wZW06ICgxKSBzYW1lIGFzIGNybC5wZW0KLS0gY3J0X2NhdF8qLnBlbTogKDErMikgY29uY2F0ZW5hdGlvbnMgaW4gdmFyaW91cyBvcmRlcnM6Ci0gICAgZWMgPSBjcmwtZWMtc2hhMjU2LnBlbSwgZWNmdXQgPSBjcmwtZnV0dXJlLnBlbQotICAgIHJzYSA9IGNybC5wZW0sIHJzYWJhZHBlbSA9IHNhbWUgd2l0aCBwZW0gZXJyb3IsIHJzYWV4cCA9IGNybF9leHBpcmVkLnBlbQotCi1Ob3RlOiBjcmxfZnV0dXJlIHdvdWxkIHJldm9rZSBzZXJ2ZXI5IGFuZCBjZXJ0X3NoYTM4NC5jcnQgaWYgc2lnbmVkIGJ5IENBIDEKLSAgICAgIGNybC1yc2EtcHNzKiB3b3VsZCByZXZva2Ugc2VydmVyNi5jcnQgaWYgc2lnbmVkIGJ5IENBIDIKLQotR2VuZXJhdGlvbgotLS0tLS0tLS0tLQotCi1OZXdlciB0ZXN0IGZpbGVzIGhhdmUgYmVlbiBnZW5lcmF0ZWQgdGhyb3VnaCBjb21tYW5kcyBpbiB0aGUgTWFrZWZpbGUuIFRoZQotcmVzdWx0aW5nIGZpbGVzIGFyZSBjb21taXR0ZWQgdG8gdGhlIHJlcG9zaXRvcnkgc28gdGhhdCB0aGUgdGVzdHMgY2FuCi1ydW4gd2l0aG91dCBoYXZpbmcgdG8gcmUtZG8gdGhlIGdlbmVyYXRpb24gYW5kIHNvIHRoYXQgdGhlIG91dHB1dCBpcyB0aGUKLXNhbWUgZm9yIGV2ZXJ5b25lICh0aGUgZ2VuZXJhdGlvbiBwcm9jZXNzIGlzIHJhbmRvbWl6ZWQpLgotCi1UaGUgb3JpZ2luIG9mIG9sZGVyIGNlcnRpZmljYXRlcyBoYXMgbm90IGJlZW4gcmVjb3JkZWQuCmRpZmYgLS1naXQgYS90ZXN0cy9kYXRhX2ZpbGVzL2F1dGhvcml0eUtleUlkX25vX2F1dGhvcml0eUtleUlkLmNydC5kZXIgYi90ZXN0cy9kYXRhX2ZpbGVzL2F1dGhvcml0eUtleUlkX25vX2F1dGhvcml0eUtleUlkLmNydC5kZXIKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDQ1MmQ5ZDEuLjAwMDAwMDAKLS0tIGEvdGVzdHMvZGF0YV9maWxlcy9hdXRob3JpdHlLZXlJZF9ub19hdXRob3JpdHlLZXlJZC5jcnQuZGVyCisrKyAvZGV2L251bGwKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvdGVzdHMvZGF0YV9maWxlcy9hdXRob3JpdHlLZXlJZF9ub19pc3N1ZXIuY3J0LmRlciBiL3Rlc3RzL2RhdGFfZmlsZXMvYXV0aG9yaXR5S2V5SWRfbm9faXNzdWVyLmNydC5kZXIKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDE3NWVlM2YuLjAwMDAwMDAKLS0tIGEvdGVzdHMvZGF0YV9maWxlcy9hdXRob3JpdHlLZXlJZF9ub19pc3N1ZXIuY3J0LmRlcgorKysgL2Rldi9udWxsCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3Rlc3RzL2RhdGFfZmlsZXMvYXV0aG9yaXR5S2V5SWRfbm9fa2V5aWQuY3J0LmRlciBiL3Rlc3RzL2RhdGFfZmlsZXMvYXV0aG9yaXR5S2V5SWRfbm9fa2V5aWQuY3J0LmRlcgpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNGFjNWYwMC4uMDAwMDAwMAotLS0gYS90ZXN0cy9kYXRhX2ZpbGVzL2F1dGhvcml0eUtleUlkX25vX2tleWlkLmNydC5kZXIKKysrIC9kZXYvbnVsbApCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS90ZXN0cy9kYXRhX2ZpbGVzL2F1dGhvcml0eUtleUlkX3N1YmplY3RLZXlJZC5jb25mIGIvdGVzdHMvZGF0YV9maWxlcy9hdXRob3JpdHlLZXlJZF9zdWJqZWN0S2V5SWQuY29uZgpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMjk2ZmFjOC4uMDAwMDAwMAotLS0gYS90ZXN0cy9kYXRhX2ZpbGVzL2F1dGhvcml0eUtleUlkX3N1YmplY3RLZXlJZC5jb25mCisrKyAvZGV2L251bGwKQEAgLTEsMTkgKzAsMCBAQAotW3JlcV0KLWRpc3Rpbmd1aXNoZWRfbmFtZSA9IHJlcV9kaXN0aW5ndWlzaGVkX25hbWUKLXg1MDlfZXh0ZW5zaW9ucyA9IHYzX3JlcQotcHJvbXB0ID0gbm8KLVtyZXFfZGlzdGluZ3Vpc2hlZF9uYW1lXQotY291bnRyeU5hbWUgPSBOTAotb3JnYW5pemF0aW9uYWxVbml0TmFtZSA9IFBvbGFyU1NMCi1jb21tb25OYW1lID0gUG9sYXJTU0wgVGVzdCBDQQotW3YzX3JlcV0KLXN1YmplY3RLZXlJZGVudGlmaWVyID0gaGFzaAotYXV0aG9yaXR5S2V5SWRlbnRpZmllciA9IGtleWlkOmFsd2F5cyxpc3N1ZXI6YWx3YXlzCi1bdjNfcmVxX2F1dGhvcml0eUtleUlkX25vX2tleWlkXQotc3ViamVjdEtleUlkZW50aWZpZXIgPSBoYXNoCi1hdXRob3JpdHlLZXlJZGVudGlmaWVyID0gaXNzdWVyOmFsd2F5cwotW3YzX3JlcV9hdXRob3JpdHlLZXlJZF9ub19pc3N1ZXJdCi1zdWJqZWN0S2V5SWRlbnRpZmllciA9IGhhc2gKLWF1dGhvcml0eUtleUlkZW50aWZpZXIgPSBrZXlpZDphbHdheXMKLVt2M19yZXFfbm9fYXV0aG9yaXR5S2V5SWRdCi1zdWJqZWN0S2V5SWRlbnRpZmllciA9IGhhc2gKZGlmZiAtLWdpdCBhL3Rlc3RzL2RhdGFfZmlsZXMvYXV0aG9yaXR5S2V5SWRfc3ViamVjdEtleUlkLmNydC5kZXIgYi90ZXN0cy9kYXRhX2ZpbGVzL2F1dGhvcml0eUtleUlkX3N1YmplY3RLZXlJZC5jcnQuZGVyCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhNmNhNDY5Li4wMDAwMDAwCi0tLSBhL3Rlc3RzL2RhdGFfZmlsZXMvYXV0aG9yaXR5S2V5SWRfc3ViamVjdEtleUlkLmNydC5kZXIKKysrIC9kZXYvbnVsbApCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS90ZXN0cy9kYXRhX2ZpbGVzL2F1dGhvcml0eUtleUlkX3N1YmplY3RLZXlJZF9pc3N1ZXJfdGFnMV9tYWxmb3JtZWQuY3J0LmRlciBiL3Rlc3RzL2RhdGFfZmlsZXMvYXV0aG9yaXR5S2V5SWRfc3ViamVjdEtleUlkX2lzc3Vlcl90YWcxX21hbGZvcm1lZC5jcnQuZGVyCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwZTNmNTc4Li4wMDAwMDAwCi0tLSBhL3Rlc3RzL2RhdGFfZmlsZXMvYXV0aG9yaXR5S2V5SWRfc3ViamVjdEtleUlkX2lzc3Vlcl90YWcxX21hbGZvcm1lZC5jcnQuZGVyCisrKyAvZGV2L251bGwKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvdGVzdHMvZGF0YV9maWxlcy9hdXRob3JpdHlLZXlJZF9zdWJqZWN0S2V5SWRfaXNzdWVyX3RhZzJfbWFsZm9ybWVkLmNydC5kZXIgYi90ZXN0cy9kYXRhX2ZpbGVzL2F1dGhvcml0eUtleUlkX3N1YmplY3RLZXlJZF9pc3N1ZXJfdGFnMl9tYWxmb3JtZWQuY3J0LmRlcgpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMWM4NTE5Yi4uMDAwMDAwMAotLS0gYS90ZXN0cy9kYXRhX2ZpbGVzL2F1dGhvcml0eUtleUlkX3N1YmplY3RLZXlJZF9pc3N1ZXJfdGFnMl9tYWxmb3JtZWQuY3J0LmRlcgorKysgL2Rldi9udWxsCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3Rlc3RzL2RhdGFfZmlsZXMvYXV0aG9yaXR5S2V5SWRfc3ViamVjdEtleUlkX2tleWlkX3RhZ19sZW5fbWFsZm9ybWVkLmNydC5kZXIgYi90ZXN0cy9kYXRhX2ZpbGVzL2F1dGhvcml0eUtleUlkX3N1YmplY3RLZXlJZF9rZXlpZF90YWdfbGVuX21hbGZvcm1lZC5jcnQuZGVyCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0Njk0OTNlLi4wMDAwMDAwCi0tLSBhL3Rlc3RzL2RhdGFfZmlsZXMvYXV0aG9yaXR5S2V5SWRfc3ViamVjdEtleUlkX2tleWlkX3RhZ19sZW5fbWFsZm9ybWVkLmNydC5kZXIKKysrIC9kZXYvbnVsbApCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS90ZXN0cy9kYXRhX2ZpbGVzL2F1dGhvcml0eUtleUlkX3N1YmplY3RLZXlJZF9rZXlpZF90YWdfbWFsZm9ybWVkLmNydC5kZXIgYi90ZXN0cy9kYXRhX2ZpbGVzL2F1dGhvcml0eUtleUlkX3N1YmplY3RLZXlJZF9rZXlpZF90YWdfbWFsZm9ybWVkLmNydC5kZXIKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDNlMzYwODYuLjAwMDAwMDAKLS0tIGEvdGVzdHMvZGF0YV9maWxlcy9hdXRob3JpdHlLZXlJZF9zdWJqZWN0S2V5SWRfa2V5aWRfdGFnX21hbGZvcm1lZC5jcnQuZGVyCisrKyAvZGV2L251bGwKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvdGVzdHMvZGF0YV9maWxlcy9hdXRob3JpdHlLZXlJZF9zdWJqZWN0S2V5SWRfbGVuZ3RoX21hbGZvcm1lZC5jcnQuZGVyIGIvdGVzdHMvZGF0YV9maWxlcy9hdXRob3JpdHlLZXlJZF9zdWJqZWN0S2V5SWRfbGVuZ3RoX21hbGZvcm1lZC5jcnQuZGVyCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1NWQ1ZGQwLi4wMDAwMDAwCi0tLSBhL3Rlc3RzL2RhdGFfZmlsZXMvYXV0aG9yaXR5S2V5SWRfc3ViamVjdEtleUlkX2xlbmd0aF9tYWxmb3JtZWQuY3J0LmRlcgorKysgL2Rldi9udWxsCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3Rlc3RzL2RhdGFfZmlsZXMvYXV0aG9yaXR5S2V5SWRfc3ViamVjdEtleUlkX3NlcXVlbmNlX3RhZ19tYWxmb3JtZWQuY3J0LmRlciBiL3Rlc3RzL2RhdGFfZmlsZXMvYXV0aG9yaXR5S2V5SWRfc3ViamVjdEtleUlkX3NlcXVlbmNlX3RhZ19tYWxmb3JtZWQuY3J0LmRlcgpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNDVhYzhmNC4uMDAwMDAwMAotLS0gYS90ZXN0cy9kYXRhX2ZpbGVzL2F1dGhvcml0eUtleUlkX3N1YmplY3RLZXlJZF9zZXF1ZW5jZV90YWdfbWFsZm9ybWVkLmNydC5kZXIKKysrIC9kZXYvbnVsbApCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS90ZXN0cy9kYXRhX2ZpbGVzL2F1dGhvcml0eUtleUlkX3N1YmplY3RLZXlJZF9zbl9sZW5fbWFsZm9ybWVkLmNydC5kZXIgYi90ZXN0cy9kYXRhX2ZpbGVzL2F1dGhvcml0eUtleUlkX3N1YmplY3RLZXlJZF9zbl9sZW5fbWFsZm9ybWVkLmNydC5kZXIKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwOWZjZjIuLjAwMDAwMDAKLS0tIGEvdGVzdHMvZGF0YV9maWxlcy9hdXRob3JpdHlLZXlJZF9zdWJqZWN0S2V5SWRfc25fbGVuX21hbGZvcm1lZC5jcnQuZGVyCisrKyAvZGV2L251bGwKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvdGVzdHMvZGF0YV9maWxlcy9hdXRob3JpdHlLZXlJZF9zdWJqZWN0S2V5SWRfc25fdGFnX21hbGZvcm1lZC5jcnQuZGVyIGIvdGVzdHMvZGF0YV9maWxlcy9hdXRob3JpdHlLZXlJZF9zdWJqZWN0S2V5SWRfc25fdGFnX21hbGZvcm1lZC5jcnQuZGVyCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5M2ZiMWUzLi4wMDAwMDAwCi0tLSBhL3Rlc3RzL2RhdGFfZmlsZXMvYXV0aG9yaXR5S2V5SWRfc3ViamVjdEtleUlkX3NuX3RhZ19tYWxmb3JtZWQuY3J0LmRlcgorKysgL2Rldi9udWxsCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3Rlc3RzL2RhdGFfZmlsZXMvYXV0aG9yaXR5S2V5SWRfc3ViamVjdEtleUlkX3RhZ19sZW5fbWFsZm9ybWVkLmNydC5kZXIgYi90ZXN0cy9kYXRhX2ZpbGVzL2F1dGhvcml0eUtleUlkX3N1YmplY3RLZXlJZF90YWdfbGVuX21hbGZvcm1lZC5jcnQuZGVyCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4OWUxZjRiLi4wMDAwMDAwCi0tLSBhL3Rlc3RzL2RhdGFfZmlsZXMvYXV0aG9yaXR5S2V5SWRfc3ViamVjdEtleUlkX3RhZ19sZW5fbWFsZm9ybWVkLmNydC5kZXIKKysrIC9kZXYvbnVsbApCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS90ZXN0cy9kYXRhX2ZpbGVzL2F1dGhvcml0eUtleUlkX3N1YmplY3RLZXlJZF90YWdfbWFsZm9ybWVkLmNydC5kZXIgYi90ZXN0cy9kYXRhX2ZpbGVzL2F1dGhvcml0eUtleUlkX3N1YmplY3RLZXlJZF90YWdfbWFsZm9ybWVkLmNydC5kZXIKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDUzMDYzZjguLjAwMDAwMDAKLS0tIGEvdGVzdHMvZGF0YV9maWxlcy9hdXRob3JpdHlLZXlJZF9zdWJqZWN0S2V5SWRfdGFnX21hbGZvcm1lZC5jcnQuZGVyCisrKyAvZGV2L251bGwKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvdGVzdHMvZGF0YV9maWxlcy9iYXNlNjQvY2xpX2NpZC50eHQgYi90ZXN0cy9kYXRhX2ZpbGVzL2Jhc2U2NC9jbGlfY2lkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggODA0OGFlYy4uMDAwMDAwMAotLS0gYS90ZXN0cy9kYXRhX2ZpbGVzL2Jhc2U2NC9jbGlfY2lkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDIgKzAsMCBAQAotLy8gQ2xpZW50LCBDSUQgMHhCRUVGCi1BaFVBQUg4QUFBOEFBQVE4QUFBQUFGNk1aVVBNcUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUJoN2g4L2FwckxOMWZTMEt3TGtaektjc2E1TE50RFc3c1l1N2QxejdmTmV0dVJqTEpwWC9BMW1UU3FlQlk3bGk4QUFBQUFBQU03TUlJRE56Q0NBaCtnQXdJQkFnSUJBakFOQmdrcWhraUc5dzBCQVFzRkFEQTdNUXN3Q1FZRFZRUUdFd0pPVERFUk1BOEdBMVVFQ2d3SVVHOXNZWEpUVTB3eEdUQVhCZ05WQkFNTUVGQnZiR0Z5VTFOTUlGUmxjM1FnUTBFd0hoY05NVGt3TWpFd01UUTBOREEyV2hjTk1qa3dNakV3TVRRME5EQTJXakEwTVFzd0NRWURWUVFHRXdKT1RERVJNQThHQTFVRUNnd0lVRzlzWVhKVFUwd3hFakFRQmdOVkJBTU1DV3h2WTJGc2FHOXpkRENDQVNJd0RRWUpLb1pJaHZjTkFRRUJCUUFEZ2dFUEFEQ0NBUW9DZ2dFQkFNRk5vOTNuelIzUkJOZEpjcmlackE1NDVEbzhTczg2RXhiUVd1VE5vd0NJcCs0ZWE1YW5VclNRN3kxeWVqNGttdnkyTkt3azlYZmdKbVNNbkxBb2ZhSGE2b3pteVJ5V3ZQN0JCRkt6TnRTait1R3hkdGlRd1dHMFpsSTJvaVpUcXF0MFhnZDlHWUxiS3RnZm9Oa05IQzFKWnZkYkpYTkc2QXVLVDJrTXRRQ1E0ZHFDRUdaOXJsUXJpMlY1a2FIaVljUE5RRWtJN21nTThZdUcwa2EvMExpcUVRTWVmMWFvR2g1RUdBOFBoWXZhaTBSZTRoakdZaS9IWm8zNlhkaDk4eWVKS1FIRmtBNC9KL0V3eUVvTzc5YmV4OGNuYThjRlBYckVBanlhSFQ0UDZEU1lXOHR6UzFLVzJCR2lMSUNJYVRsYTB3K3czbGt2RWNmMzZoSUJNSmNDQXdFQUFhTk5NRXN3Q1FZRFZSMFRCQUl3QURBZEJnTlZIUTRFRmdRVXBRWG9aTGpjMzJBUFVCSk5ZS2hrcjAyTFE1TXdId1lEVlIwakJCZ3dGb0FVdEZya3BiUGUwbEwydWRXbWxRL3JQcnpIL2Y4d0RRWUpLb1pJaHZjTkFRRUxCUUFEZ2dFQkFDNDY1RkpoUHFlbDd6Sm5nSElISnJxai93VkF4R0FGT1RGMzk2WEtBVEdBcCtIUkNxSjgxUnk2MENOSzFqRHprOGR2Nk02VUhvUzdSSUZpTS85clhRQ2JKZmlQRDV4TVRlalpwNW41VVlIQW14c3hEYWF6ZkE1RnVCaGtmb2tLSzZqRDRFcTkxQzk0eEdLYjZYNC9Wa2FQRjdjcW9CQncvYkh4YXdYYzBVRVBqcWF5aUJwQ1lVL3JKb1ZaZ0xxRlZQN1B4M3N2YTFuT3JOeDhyUFBJMWhKK1pPZzhtYWlQVHhIWm5CVkxha1NTTFF5L3NXZVd5YXpPMVJucmJ4anJiZ1F0WUt6MGUzbndHcHUxdzEzdmZja0ZtVVNCaEhYSDdBQVMvSHBLQzRJSDdHMkdBazMrbjhpU1NONzFzWnpweG9uUXdWYm9wTVpxTG1iQm0vN1dQTGNBQUpSWnRLMXBIUnV1L1V3K1k5MUtDYXFNQUhLV2VWSnZ1cWppVGFFbHJhaHN4K0hZb1oxKzhpNUJNWTFOT0wveTRUUjlxWmR4WSs3TnZOckVkRW9GZ2NJL0RxVU4wYUtzMHpBSVBtazkycEZuam5icm81THhXUm0zSmJ0SUZjRzZQZE4rOWFBYklTcmV3dDZFRVJJUGhTNDVhSCtTaTA4Tkxydk0rQ2NFQmZxQkJxT0QrNExDWnFUOG5EQnRBTEp5UnFpeWtpYnNBQUZSZ0FBQUFGNk1aVU5hazc0QmhiY2d2WjJNOFdoWktqUXlDaXg3R0p6UnM0U3FuRDdpWG94bFE3WVhqc1ZJMEsveHlNT0pQa1Q5WmNQRWkvMmpIR0l0ZTFaZHVXNEN2dThDM3EwQUFBQUFBQUFBQUFBQUFBSUFBQUFBQUFBQUJ3QUFBUUFBQUFBQUF3QUFBQT09CmRpZmYgLS1naXQgYS90ZXN0cy9kYXRhX2ZpbGVzL2Jhc2U2NC9jbGlfY2lwaGVyc3VpdGUudHh0IGIvdGVzdHMvZGF0YV9maWxlcy9iYXNlNjQvY2xpX2NpcGhlcnN1aXRlLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYmYzNjQ3MC4uMDAwMDAwMAotLS0gYS90ZXN0cy9kYXRhX2ZpbGVzL2Jhc2U2NC9jbGlfY2lwaGVyc3VpdGUudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMiArMCwwIEBACi0vLyBUTFMtUlNBLVdJVEgtQUVTLTI1Ni1DQ00tOAotQWhVQUFIOEFBQTRBQUFROEFBQUFBRjZLNHluQW9RQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFETEJJUVVyclBoN2p4WXo5ZTU1Y0p2ZnBPa3VCZjJaaVZvdmxZYTFEa3diaW1wNXEvQ29XSW40OEMweDNZajZOMEFBQUFBQUFNN01JSUROekNDQWgrZ0F3SUJBZ0lCQWpBTkJna3Foa2lHOXcwQkFRc0ZBREE3TVFzd0NRWURWUVFHRXdKT1RERVJNQThHQTFVRUNnd0lVRzlzWVhKVFUwd3hHVEFYQmdOVkJBTU1FRkJ2YkdGeVUxTk1JRlJsYzNRZ1EwRXdIaGNOTVRrd01qRXdNVFEwTkRBMldoY05Namt3TWpFd01UUTBOREEyV2pBME1Rc3dDUVlEVlFRR0V3Sk9UREVSTUE4R0ExVUVDZ3dJVUc5c1lYSlRVMHd4RWpBUUJnTlZCQU1NQ1d4dlkyRnNhRzl6ZERDQ0FTSXdEUVlKS29aSWh2Y05BUUVCQlFBRGdnRVBBRENDQVFvQ2dnRUJBTUZObzkzbnpSM1JCTmRKY3JpWnJBNTQ1RG84U3M4NkV4YlFXdVROb3dDSXArNGVhNWFuVXJTUTd5MXllajRrbXZ5Mk5Ld2s5WGZnSm1TTW5MQW9mYUhhNm96bXlSeVd2UDdCQkZLek50U2ordUd4ZHRpUXdXRzBabEkyb2laVHFxdDBYZ2Q5R1lMYkt0Z2ZvTmtOSEMxSlp2ZGJKWE5HNkF1S1Qya010UUNRNGRxQ0VHWjlybFFyaTJWNWthSGlZY1BOUUVrSTdtZ004WXVHMGthLzBMaXFFUU1lZjFhb0doNUVHQThQaFl2YWkwUmU0aGpHWWkvSFpvMzZYZGg5OHllSktRSEZrQTQvSi9Fd3lFb083OWJleDhjbmE4Y0ZQWHJFQWp5YUhUNFA2RFNZVzh0elMxS1cyQkdpTElDSWFUbGEwdyt3M2xrdkVjZjM2aElCTUpjQ0F3RUFBYU5OTUVzd0NRWURWUjBUQkFJd0FEQWRCZ05WSFE0RUZnUVVwUVhvWkxqYzMyQVBVQkpOWUtoa3IwMkxRNU13SHdZRFZSMGpCQmd3Rm9BVXRGcmtwYlBlMGxMMnVkV21sUS9yUHJ6SC9mOHdEUVlKS29aSWh2Y05BUUVMQlFBRGdnRUJBQzQ2NUZKaFBxZWw3ekpuZ0hJSEpycWovd1ZBeEdBRk9URjM5NlhLQVRHQXArSFJDcUo4MVJ5NjBDTksxakR6azhkdjZNNlVIb1M3UklGaU0vOXJYUUNiSmZpUEQ1eE1UZWpacDVuNVVZSEFteHN4RGFhemZBNUZ1QmhrZm9rS0s2akQ0RXE5MUM5NHhHS2I2WDQvVmthUEY3Y3FvQkJ3L2JIeGF3WGMwVUVQanFheWlCcENZVS9ySm9WWmdMcUZWUDdQeDNzdmExbk9yTng4clBQSTFoSitaT2c4bWFpUFR4SFpuQlZMYWtTU0xReS9zV2VXeWF6TzFSbnJieGpyYmdRdFlLejBlM253R3B1MXcxM3ZmY2tGbVVTQmhIWEg3QUFTL0hwS0M0SUg3RzJHQWszK244aVNTTjcxc1p6cHhvblF3VmJvcE1acUxtYkJtLzdXUExjQUFKUUJpUVRhMTQ4eDFYUXlHdDl2VTJKeEFISVo5SHhMUjg3UGV3cFRhc2xQMHFKNEZLNmNpYkcvVTRBQ1ZyaUdRTXBOa0pvNnhSUm41ZEd5S0U1TDVpcWNMUVo0endjSlQ1ME5ZbFZRcXpsWFBBck9hQXpqVkFYNGsrVHdML1ZtTmVwbW4zd3ZyZWdBQURlaUdzdnZiYUF3MlA5ZmhDZ3dYNkJtMFlOemtXUXNOd1dFTmE2R29aTHp2TU01MUc0NDYxMWZGbktvQUFGUmdBQUFBRjZLNHlrc012TVYxOXFScStlTm9rR24wajlRNXRqRTg4RUs4amZNN2drc1hvcmpLUjZ6aFhodHRGR0lGa05OQW1tS3V1RFFHVm1YMXlDb0hpSkZvblVBQUFBQUFBQUFBQUFBQUFFQUFBQUFBQUFBQXdBQUFRQUFBQUFBQWdBQUFBPT0KZGlmZiAtLWdpdCBhL3Rlc3RzL2RhdGFfZmlsZXMvYmFzZTY0L2NsaV9kZWYudHh0IGIvdGVzdHMvZGF0YV9maWxlcy9iYXNlNjQvY2xpX2RlZi50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDc5M2RhMmIuLjAwMDAwMDAKLS0tIGEvdGVzdHMvZGF0YV9maWxlcy9iYXNlNjQvY2xpX2RlZi50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwyICswLDAgQEAKLS8vIENsaWVudCBjb250ZXh0IHdpdGggZGVmYXVsdCBNYmVkVExTIGNvbmZpZ3VyYXRpb24KLUFoVUFBSDhBQUE0QUFBUThBQUFBQUY2SFF4M01xQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQ0cyUWJIYlVqOGVHcGR4NUtWSWViaXdrMGp2Umo5LzNtNkJPU3pwQTdxQlhlRXVuaHFyM0QxMU5FN2NpR2plSE1BQUFBQUFBTTdNSUlETnpDQ0FoK2dBd0lCQWdJQkFqQU5CZ2txaGtpRzl3MEJBUXNGQURBN01Rc3dDUVlEVlFRR0V3Sk9UREVSTUE4R0ExVUVDZ3dJVUc5c1lYSlRVMHd4R1RBWEJnTlZCQU1NRUZCdmJHRnlVMU5NSUZSbGMzUWdRMEV3SGhjTk1Ua3dNakV3TVRRME5EQTJXaGNOTWprd01qRXdNVFEwTkRBMldqQTBNUXN3Q1FZRFZRUUdFd0pPVERFUk1BOEdBMVVFQ2d3SVVHOXNZWEpUVTB3eEVqQVFCZ05WQkFNTUNXeHZZMkZzYUc5emREQ0NBU0l3RFFZSktvWklodmNOQVFFQkJRQURnZ0VQQURDQ0FRb0NnZ0VCQU1GTm85M256UjNSQk5kSmNyaVpyQTU0NURvOFNzODZFeGJRV3VUTm93Q0lwKzRlYTVhblVyU1E3eTF5ZWo0a212eTJOS3drOVhmZ0ptU01uTEFvZmFIYTZvem15UnlXdlA3QkJGS3pOdFNqK3VHeGR0aVF3V0cwWmxJMm9pWlRxcXQwWGdkOUdZTGJLdGdmb05rTkhDMUpadmRiSlhORzZBdUtUMmtNdFFDUTRkcUNFR1o5cmxRcmkyVjVrYUhpWWNQTlFFa0k3bWdNOFl1RzBrYS8wTGlxRVFNZWYxYW9HaDVFR0E4UGhZdmFpMFJlNGhqR1lpL0habzM2WGRoOTh5ZUpLUUhGa0E0L0ovRXd5RW9PNzliZXg4Y25hOGNGUFhyRUFqeWFIVDRQNkRTWVc4dHpTMUtXMkJHaUxJQ0lhVGxhMHcrdzNsa3ZFY2YzNmhJQk1KY0NBd0VBQWFOTk1Fc3dDUVlEVlIwVEJBSXdBREFkQmdOVkhRNEVGZ1FVcFFYb1pMamMzMkFQVUJKTllLaGtyMDJMUTVNd0h3WURWUjBqQkJnd0ZvQVV0RnJrcGJQZTBsTDJ1ZFdtbFEvclByekgvZjh3RFFZSktvWklodmNOQVFFTEJRQURnZ0VCQUM0NjVGSmhQcWVsN3pKbmdISUhKcnFqL3dWQXhHQUZPVEYzOTZYS0FUR0FwK0hSQ3FKODFSeTYwQ05LMWpEems4ZHY2TTZVSG9TN1JJRmlNLzlyWFFDYkpmaVBENXhNVGVqWnA1bjVVWUhBbXhzeERhYXpmQTVGdUJoa2Zva0tLNmpENEVxOTFDOTR4R0tiNlg0L1ZrYVBGN2Nxb0JCdy9iSHhhd1hjMFVFUGpxYXlpQnBDWVUvckpvVlpnTHFGVlA3UHgzc3ZhMW5Pck54OHJQUEkxaEorWk9nOG1haVBUeEhabkJWTGFrU1NMUXkvc1dlV3lhek8xUm5yYnhqcmJnUXRZS3owZTNud0dwdTF3MTN2ZmNrRm1VU0JoSFhIN0FBUy9IcEtDNElIN0cyR0FrMytuOGlTU043MXNaenB4b25Rd1Zib3BNWnFMbWJCbS83V1BMY0FBSlRmUUMyRWs5MUlOUDVpaEhOekltUE9BSEpDaytZVE8vcFF1RW5OV3dYYmRtS0FpK0lScDY3MWlBd3Rwa2pTeENCWFZ6S1g5MjVGMUE2NmNhQ09RcHRsdys5ekZ1a0RRZ2JsTTJKeUFKTEcwajZCNFJ0QlREV0o4WlRNVVBIVW9MSm9FcG04QVBaZ1JpLy9ETVJ5Q0tQOXBiQkxHbER6Z1V2bDB3MTFMekJBbEpIa1dhdTVOb3FRQmxHN3c0SEZyS3dlb3Zza0FBRlJnQUFBQUY2SFF4MjQ4TDc3UkgwWjk3M3RTWU5ROHpCc3o4NjFDWkc1L1QwOVRKejNYb2RESGUvaUorY2dYYjVBbjN6VGRuVEJ0dzNFV0FiNjhUK2dDRTMzR044QUFBQUFBQUFBQUFBQUFBRUFBQUFBQUFBQUF3QUFBUUFBQUFBQUFnQUFBQT09CmRpZmYgLS1naXQgYS90ZXN0cy9kYXRhX2ZpbGVzL2Jhc2U2NC9jbGlfbWluX2NmZy50eHQgYi90ZXN0cy9kYXRhX2ZpbGVzL2Jhc2U2NC9jbGlfbWluX2NmZy50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDE1MmI0NzQuLjAwMDAwMDAKLS0tIGEvdGVzdHMvZGF0YV9maWxlcy9iYXNlNjQvY2xpX21pbl9jZmcudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMiArMCwwIEBACi0vLyBNaW5pbWFsIGNvbmZpZ3VyYXRpb24KLUFoVUFBQU1BQUFBQUFBT2VBQUFBQUY2TFpsTE1xQUFnVUdrdFBtcFNQYnpSUGlwZUNwWUp0cDVTTklJalRyM1IxMjFXRjlBZVdONHRtS2JSaGh2K3lQTWpZMHlXUHJITHk3bExMaHdORkJ3Q0Q2ZVEwVUxaWjE1RmkyUmhhZS80WmtBUjBCTjJpQ01BQUFBQUFBTTdNSUlETnpDQ0FoK2dBd0lCQWdJQkFqQU5CZ2txaGtpRzl3MEJBUXNGQURBN01Rc3dDUVlEVlFRR0V3Sk9UREVSTUE4R0ExVUVDZ3dJVUc5c1lYSlRVMHd4R1RBWEJnTlZCQU1NRUZCdmJHRnlVMU5NSUZSbGMzUWdRMEV3SGhjTk1Ua3dNakV3TVRRME5EQTJXaGNOTWprd01qRXdNVFEwTkRBMldqQTBNUXN3Q1FZRFZRUUdFd0pPVERFUk1BOEdBMVVFQ2d3SVVHOXNZWEpUVTB3eEVqQVFCZ05WQkFNTUNXeHZZMkZzYUc5emREQ0NBU0l3RFFZSktvWklodmNOQVFFQkJRQURnZ0VQQURDQ0FRb0NnZ0VCQU1GTm85M256UjNSQk5kSmNyaVpyQTU0NURvOFNzODZFeGJRV3VUTm93Q0lwKzRlYTVhblVyU1E3eTF5ZWo0a212eTJOS3drOVhmZ0ptU01uTEFvZmFIYTZvem15UnlXdlA3QkJGS3pOdFNqK3VHeGR0aVF3V0cwWmxJMm9pWlRxcXQwWGdkOUdZTGJLdGdmb05rTkhDMUpadmRiSlhORzZBdUtUMmtNdFFDUTRkcUNFR1o5cmxRcmkyVjVrYUhpWWNQTlFFa0k3bWdNOFl1RzBrYS8wTGlxRVFNZWYxYW9HaDVFR0E4UGhZdmFpMFJlNGhqR1lpL0habzM2WGRoOTh5ZUpLUUhGa0E0L0ovRXd5RW9PNzliZXg4Y25hOGNGUFhyRUFqeWFIVDRQNkRTWVc4dHpTMUtXMkJHaUxJQ0lhVGxhMHcrdzNsa3ZFY2YzNmhJQk1KY0NBd0VBQWFOTk1Fc3dDUVlEVlIwVEJBSXdBREFkQmdOVkhRNEVGZ1FVcFFYb1pMamMzMkFQVUJKTllLaGtyMDJMUTVNd0h3WURWUjBqQkJnd0ZvQVV0RnJrcGJQZTBsTDJ1ZFdtbFEvclByekgvZjh3RFFZSktvWklodmNOQVFFTEJRQURnZ0VCQUM0NjVGSmhQcWVsN3pKbmdISUhKcnFqL3dWQXhHQUZPVEYzOTZYS0FUR0FwK0hSQ3FKODFSeTYwQ05LMWpEems4ZHY2TTZVSG9TN1JJRmlNLzlyWFFDYkpmaVBENXhNVGVqWnA1bjVVWUhBbXhzeERhYXpmQTVGdUJoa2Zva0tLNmpENEVxOTFDOTR4R0tiNlg0L1ZrYVBGN2Nxb0JCdy9iSHhhd1hjMFVFUGpxYXlpQnBDWVUvckpvVlpnTHFGVlA3UHgzc3ZhMW5Pck54OHJQUEkxaEorWk9nOG1haVBUeEhabkJWTGFrU1NMUXkvc1dlV3lhek8xUm5yYnhqcmJnUXRZS3owZTNud0dwdTF3MTN2ZmNrRm1VU0JoSFhIN0FBUy9IcEtDNElIN0cyR0FrMytuOGlTU043MXNaenB4b25Rd1Zib3BNWnFMbWJCbS83V1BMZGVpMlpTUXdMcHBUcXpzN2tpZU9ZUVI2RGpKSXRtUTBOL1JTMyt6VHI5d0Y2TFpsTDZTUXBMZXdteWphN2pYeU9XdVVxSjZ6SlE1YjdGZkE0UHh0aGxBQUFCQUFBQUFBQUNBQUE9CmRpZmYgLS1naXQgYS90ZXN0cy9kYXRhX2ZpbGVzL2Jhc2U2NC9jbGlfbm9fYWxwbi50eHQgYi90ZXN0cy9kYXRhX2ZpbGVzL2Jhc2U2NC9jbGlfbm9fYWxwbi50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDI1OTIzZjYuLjAwMDAwMDAKLS0tIGEvdGVzdHMvZGF0YV9maWxlcy9iYXNlNjQvY2xpX25vX2FscG4udHh0CisrKyAvZGV2L251bGwKQEAgLTEsMyArMCwwIEBACi0vLyBXaXRob3V0IE1CRURUTFNfU1NMX0FMUE4KLUFoVUFBSDhBQUFZQUFBUThBQUFBQUY2TERTek1xQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQjFsQ1VPOEIvODA1VXpDT0xaeldEQUVBOGFuZkxwYnVXVHJuRlNSMnB1Wmt0dkVpUjhuWGRBVE4weUtTOTRvU0FBQUFBQUFBTTdNSUlETnpDQ0FoK2dBd0lCQWdJQkFqQU5CZ2txaGtpRzl3MEJBUXNGQURBN01Rc3dDUVlEVlFRR0V3Sk9UREVSTUE4R0ExVUVDZ3dJVUc5c1lYSlRVMHd4R1RBWEJnTlZCQU1NRUZCdmJHRnlVMU5NSUZSbGMzUWdRMEV3SGhjTk1Ua3dNakV3TVRRME5EQTJXaGNOTWprd01qRXdNVFEwTkRBMldqQTBNUXN3Q1FZRFZRUUdFd0pPVERFUk1BOEdBMVVFQ2d3SVVHOXNZWEpUVTB3eEVqQVFCZ05WQkFNTUNXeHZZMkZzYUc5emREQ0NBU0l3RFFZSktvWklodmNOQVFFQkJRQURnZ0VQQURDQ0FRb0NnZ0VCQU1GTm85M256UjNSQk5kSmNyaVpyQTU0NURvOFNzODZFeGJRV3VUTm93Q0lwKzRlYTVhblVyU1E3eTF5ZWo0a212eTJOS3drOVhmZ0ptU01uTEFvZmFIYTZvem15UnlXdlA3QkJGS3pOdFNqK3VHeGR0aVF3V0cwWmxJMm9pWlRxcXQwWGdkOUdZTGJLdGdmb05rTkhDMUpadmRiSlhORzZBdUtUMmtNdFFDUTRkcUNFR1o5cmxRcmkyVjVrYUhpWWNQTlFFa0k3bWdNOFl1RzBrYS8wTGlxRVFNZWYxYW9HaDVFR0E4UGhZdmFpMFJlNGhqR1lpL0habzM2WGRoOTh5ZUpLUUhGa0E0L0ovRXd5RW9PNzliZXg4Y25hOGNGUFhyRUFqeWFIVDRQNkRTWVc4dHpTMUtXMkJHaUxJQ0lhVGxhMHcrdzNsa3ZFY2YzNmhJQk1KY0NBd0VBQWFOTk1Fc3dDUVlEVlIwVEJBSXdBREFkQmdOVkhRNEVGZ1FVcFFYb1pMamMzMkFQVUJKTllLaGtyMDJMUTVNd0h3WURWUjBqQkJnd0ZvQVV0RnJrcGJQZTBsTDJ1ZFdtbFEvclByekgvZjh3RFFZSktvWklodmNOQVFFTEJRQURnZ0VCQUM0NjVGSmhQcWVsN3pKbmdISUhKcnFqL3dWQXhHQUZPVEYzOTZYS0FUR0FwK0hSQ3FKODFSeTYwQ05LMWpEems4ZHY2TTZVSG9TN1JJRmlNLzlyWFFDYkpmaVBENXhNVGVqWnA1bjVVWUhBbXhzeERhYXpmQTVGdUJoa2Zva0tLNmpENEVxOTFDOTR4R0tiNlg0L1ZrYVBGN2Nxb0JCdy9iSHhhd1hjMFVFUGpxYXlpQnBDWVUvckpvVlpnTHFGVlA3UHgzc3ZhMW5Pck54OHJQUEkxaEorWk9nOG1haVBUeEhabkJWTGFrU1NMUXkvc1dlV3lhek8xUm5yYnhqcmJnUXRZS3owZTNud0dwdTF3MTN2ZmNrRm1VU0JoSFhIN0FBUy9IcEtDNElIN0cyR0FrMytuOGlTU043MXNaenB4b25Rd1Zib3BNWnFMbWJCbS83V1BMY0FBSlFWVUkvV3d0M3E0WGlxTDc0d0Nta2hBSEtqMFlnQ3ZqWmkzR0t3MHM3UEpxalp6ekx0K091cm9DOFEyWGVEZjVuS0trOGprb2xaK2RYVWZ0c1BQaXpGZ2IyaEd1WWE0Tmh4WGppR2xVcEZFb1htN3I3OFN3R2ZXeFJnSDV2Sms2VzNUZG9ka3hUWmtqTW9XamxDMlBBTk9IUGVDbHcwc3pCbWx5NytzODlMRlpxbkNYZ3l4RTh4bHYrbDVJWVNFUFNqN1VzbUFBRlJnQUFBQUY2TERTd1d0MFFXZ21OZzRadjJ5WWhmNFBkZXhwaS9RVElxV3lEMkFRVmpYb3NOTExLMXZ6L3VwRkhySmxpempINXVTQlVKQ3BRWkpjenJCZ3hCbUdvQUFBQUFBQUFBQUFBQUFBRUFBQUFBQUFBQUF3QUFBUUFBQUFBQUFnQUEKLQpkaWZmIC0tZ2l0IGEvdGVzdHMvZGF0YV9maWxlcy9iYXNlNjQvY2xpX25vX2tlZXBfY2VydC50eHQgYi90ZXN0cy9kYXRhX2ZpbGVzL2Jhc2U2NC9jbGlfbm9fa2VlcF9jZXJ0LnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNzZkMGMzYy4uMDAwMDAwMAotLS0gYS90ZXN0cy9kYXRhX2ZpbGVzL2Jhc2U2NC9jbGlfbm9fa2VlcF9jZXJ0LnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDIgKzAsMCBAQAotLy8gV2l0aG91dCBNQkVEVExTX1NTTF9LRUVQX1BFRVJfQ0VSVElGSUNBVEUKLUFoVUFBQU1BQUFBQUFBQ0NBQUFBQUY2TUtoVE1xQUFnU0tDcVhyY3JtanFPQnB4c0dPM2l0UUIwOVlnc1NKd1htWkIxMlFsQit3d2hpb2YwbXpBTjBodXBrTHh1NFl5YzlTZ3lGb0VEUEtKazhUaVJvOGJPMnJrRWZQSXRCNWxVRmtKd3pkZXVHVk1BQUFBQUJpQ0F5OE1XcWxqNHZuSXYwbXN3SnZCMzVoeUNPWVdaK2ZjWjZ0NUx6WmdYUGw2TUtoUnM2OWIrcHNpR1VBbzhPSzNmVTRIS09ITmRpMzZ0azIyK1NjY3RYb3dxRkV5dnpHY3ZidEkwVmZXTEtsT2xEditTd0MwOFpkQ05hK1JCWi9BQUFBRUFBQUFBQUFJQUFBPT0KZGlmZiAtLWdpdCBhL3Rlc3RzL2RhdGFfZmlsZXMvYmFzZTY0L2NsaV9ub19tZmwudHh0IGIvdGVzdHMvZGF0YV9maWxlcy9iYXNlNjQvY2xpX25vX21mbC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDBkMDY4OTEuLjAwMDAwMDAKLS0tIGEvdGVzdHMvZGF0YV9maWxlcy9iYXNlNjQvY2xpX25vX21mbC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwyICswLDAgQEAKLS8vIFdpdGhvdXQgTUJFRFRMU19TU0xfTUFYX0ZSQUdNRU5UX0xFTkdUSAotQWhVQUFIY0FBQTRBQUFRNkFBQUFBRjZMRExQTXFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBMGZ6R3pPMXlzbGpNZ1pyNGdkdWlndlJYcjJBSzVYOGo4YzZ2SFRPcGMybmNGUzNVTjJvandEMnRPYU0zKy9YSUFBQUFBQUFNN01JSUROekNDQWgrZ0F3SUJBZ0lCQWpBTkJna3Foa2lHOXcwQkFRc0ZBREE3TVFzd0NRWURWUVFHRXdKT1RERVJNQThHQTFVRUNnd0lVRzlzWVhKVFUwd3hHVEFYQmdOVkJBTU1FRkJ2YkdGeVUxTk1JRlJsYzNRZ1EwRXdIaGNOTVRrd01qRXdNVFEwTkRBMldoY05Namt3TWpFd01UUTBOREEyV2pBME1Rc3dDUVlEVlFRR0V3Sk9UREVSTUE4R0ExVUVDZ3dJVUc5c1lYSlRVMHd4RWpBUUJnTlZCQU1NQ1d4dlkyRnNhRzl6ZERDQ0FTSXdEUVlKS29aSWh2Y05BUUVCQlFBRGdnRVBBRENDQVFvQ2dnRUJBTUZObzkzbnpSM1JCTmRKY3JpWnJBNTQ1RG84U3M4NkV4YlFXdVROb3dDSXArNGVhNWFuVXJTUTd5MXllajRrbXZ5Mk5Ld2s5WGZnSm1TTW5MQW9mYUhhNm96bXlSeVd2UDdCQkZLek50U2ordUd4ZHRpUXdXRzBabEkyb2laVHFxdDBYZ2Q5R1lMYkt0Z2ZvTmtOSEMxSlp2ZGJKWE5HNkF1S1Qya010UUNRNGRxQ0VHWjlybFFyaTJWNWthSGlZY1BOUUVrSTdtZ004WXVHMGthLzBMaXFFUU1lZjFhb0doNUVHQThQaFl2YWkwUmU0aGpHWWkvSFpvMzZYZGg5OHllSktRSEZrQTQvSi9Fd3lFb083OWJleDhjbmE4Y0ZQWHJFQWp5YUhUNFA2RFNZVzh0elMxS1cyQkdpTElDSWFUbGEwdyt3M2xrdkVjZjM2aElCTUpjQ0F3RUFBYU5OTUVzd0NRWURWUjBUQkFJd0FEQWRCZ05WSFE0RUZnUVVwUVhvWkxqYzMyQVBVQkpOWUtoa3IwMkxRNU13SHdZRFZSMGpCQmd3Rm9BVXRGcmtwYlBlMGxMMnVkV21sUS9yUHJ6SC9mOHdEUVlKS29aSWh2Y05BUUVMQlFBRGdnRUJBQzQ2NUZKaFBxZWw3ekpuZ0hJSEpycWovd1ZBeEdBRk9URjM5NlhLQVRHQXArSFJDcUo4MVJ5NjBDTksxakR6azhkdjZNNlVIb1M3UklGaU0vOXJYUUNiSmZpUEQ1eE1UZWpacDVuNVVZSEFteHN4RGFhemZBNUZ1QmhrZm9rS0s2akQ0RXE5MUM5NHhHS2I2WDQvVmthUEY3Y3FvQkJ3L2JIeGF3WGMwVUVQanFheWlCcENZVS9ySm9WWmdMcUZWUDdQeDNzdmExbk9yTng4clBQSTFoSitaT2c4bWFpUFR4SFpuQlZMYWtTU0xReS9zV2VXeWF6TzFSbnJieGpyYmdRdFlLejBlM253R3B1MXcxM3ZmY2tGbVVTQmhIWEg3QUFTL0hwS0M0SUg3RzJHQWszK244aVNTTjcxc1p6cHhvblF3VmJvcE1acUxtYkJtLzdXUExjQUFKTWlQYkU0NW9Bamc5UngwaVZuUURnMkFISEtycm1TTVRmVmlqZ1piZEwvWkZXWXZGTWlvYTd1cVcwTm1BMGJTVHhjc2llUmFybmRPcTVmSWRFSXptQWdHa2RheEphR05EVDEwNWd3d0l6VW5MUmFwZ1A2SDZJSW1TTUZQWFZwM1prczB6RmZycTdhUW5RTWdjOG81a1BxV3ExL2VZZmRxOGx5c1RPOFJnbGl2OTZsQS9wZTFTUW1QTDFtZENoQXdDYS80WEVBQVZHQUFBQmVpd3l6WEd6NHlQd0VndnEvVFdxMGRaWHZENm16RWJBdHkxb1pKSXZScGw2TERMT3lROTRNSXZTS3c3T0g0bWcrRE5MK1pXMHh6UWJLUWFsbG9VRzZBQUFBQUFBQUFBQUFBQUFCQUFBQUFBQUFBQU1BQUFFQUFBQUFBQUlBQUFBPQpkaWZmIC0tZ2l0IGEvdGVzdHMvZGF0YV9maWxlcy9iYXNlNjQvY2xpX25vX3BhY2tpbmcudHh0IGIvdGVzdHMvZGF0YV9maWxlcy9iYXNlNjQvY2xpX25vX3BhY2tpbmcudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxMTJiMWI2Li4wMDAwMDAwCi0tLSBhL3Rlc3RzL2RhdGFfZmlsZXMvYmFzZTY0L2NsaV9ub19wYWNraW5nLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDIgKzAsMCBAQAotLy8gV2l0aG91dCBEVExTIHBhY2tpbmcKLUFoVUFBSDhBQUE0QUFBUThBQUFBQUY2TENNL01xQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQ2ZsMHRYTm1zaElRRXFpRWZsUUduVlVLa0lGbDFvbi9NdTBwaldlczNYd1FnZHdteTl4TXpwVnlZVTVnQk9zT0VBQUFBQUFBTTdNSUlETnpDQ0FoK2dBd0lCQWdJQkFqQU5CZ2txaGtpRzl3MEJBUXNGQURBN01Rc3dDUVlEVlFRR0V3Sk9UREVSTUE4R0ExVUVDZ3dJVUc5c1lYSlRVMHd4R1RBWEJnTlZCQU1NRUZCdmJHRnlVMU5NSUZSbGMzUWdRMEV3SGhjTk1Ua3dNakV3TVRRME5EQTJXaGNOTWprd01qRXdNVFEwTkRBMldqQTBNUXN3Q1FZRFZRUUdFd0pPVERFUk1BOEdBMVVFQ2d3SVVHOXNZWEpUVTB3eEVqQVFCZ05WQkFNTUNXeHZZMkZzYUc5emREQ0NBU0l3RFFZSktvWklodmNOQVFFQkJRQURnZ0VQQURDQ0FRb0NnZ0VCQU1GTm85M256UjNSQk5kSmNyaVpyQTU0NURvOFNzODZFeGJRV3VUTm93Q0lwKzRlYTVhblVyU1E3eTF5ZWo0a212eTJOS3drOVhmZ0ptU01uTEFvZmFIYTZvem15UnlXdlA3QkJGS3pOdFNqK3VHeGR0aVF3V0cwWmxJMm9pWlRxcXQwWGdkOUdZTGJLdGdmb05rTkhDMUpadmRiSlhORzZBdUtUMmtNdFFDUTRkcUNFR1o5cmxRcmkyVjVrYUhpWWNQTlFFa0k3bWdNOFl1RzBrYS8wTGlxRVFNZWYxYW9HaDVFR0E4UGhZdmFpMFJlNGhqR1lpL0habzM2WGRoOTh5ZUpLUUhGa0E0L0ovRXd5RW9PNzliZXg4Y25hOGNGUFhyRUFqeWFIVDRQNkRTWVc4dHpTMUtXMkJHaUxJQ0lhVGxhMHcrdzNsa3ZFY2YzNmhJQk1KY0NBd0VBQWFOTk1Fc3dDUVlEVlIwVEJBSXdBREFkQmdOVkhRNEVGZ1FVcFFYb1pMamMzMkFQVUJKTllLaGtyMDJMUTVNd0h3WURWUjBqQkJnd0ZvQVV0RnJrcGJQZTBsTDJ1ZFdtbFEvclByekgvZjh3RFFZSktvWklodmNOQVFFTEJRQURnZ0VCQUM0NjVGSmhQcWVsN3pKbmdISUhKcnFqL3dWQXhHQUZPVEYzOTZYS0FUR0FwK0hSQ3FKODFSeTYwQ05LMWpEems4ZHY2TTZVSG9TN1JJRmlNLzlyWFFDYkpmaVBENXhNVGVqWnA1bjVVWUhBbXhzeERhYXpmQTVGdUJoa2Zva0tLNmpENEVxOTFDOTR4R0tiNlg0L1ZrYVBGN2Nxb0JCdy9iSHhhd1hjMFVFUGpxYXlpQnBDWVUvckpvVlpnTHFGVlA3UHgzc3ZhMW5Pck54OHJQUEkxaEorWk9nOG1haVBUeEhabkJWTGFrU1NMUXkvc1dlV3lhek8xUm5yYnhqcmJnUXRZS3owZTNud0dwdTF3MTN2ZmNrRm1VU0JoSFhIN0FBUy9IcEtDNElIN0cyR0FrMytuOGlTU043MXNaenB4b25Rd1Zib3BNWnFMbWJCbS83V1BMY0FBSlJUdmxFN05tTk5MREVTVUJvR0MrSzJBSElLQSsvbGhkUlZGNFljTXZ2cUNCWUZCNXRqMG95Q2lrZnRmak5idmpsOVlQR3FjUlhrNjY0WWllV3YvcHo4VTFGT0VOaXBialhGOWxGaGdlZEcyWGFuaC8yRndIWDV0eFlpSElKeEplTEVLQ1hwNVNqdDlYQnZRc3JyeXhMeVg5bCt6a0xLbTdiQ0FjcmZrNGgvWW9xeGVjQUk2M2lzRzl2bnJTN28wN2lELzNtT0FBRlJnQUFBQUY2TENNKzF1UnB5YW95Znp1TkdCSks5RGdCV0lXdHJQcHU3S004cXNDL0ZYb3NJei9ZSVBodmVaOFo0SVIwZy9NY0FNUXd6UW9LNXRTY1NFMEREM0J3QUFBQUFBQUFBQUFBQUFBRUFBQUFBQUFBQUF3RUFBUUFBQUFBQUFnQUFBQT09CmRpZmYgLS1naXQgYS90ZXN0cy9kYXRhX2ZpbGVzL2Jhc2U2NC9kZWZfYjY0X2ZmLmJpbiBiL3Rlc3RzL2RhdGFfZmlsZXMvYmFzZTY0L2RlZl9iNjRfZmYuYmluCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2NmFhODI3Li4wMDAwMDAwCi0tLSBhL3Rlc3RzL2RhdGFfZmlsZXMvYmFzZTY0L2RlZl9iNjRfZmYuYmluCisrKyAvZGV2L251bGwKQEAgLTEsNSArMCwwIEBACi0vLyBFbnN1cmUgdGhhdCB0aGUgYjY0IHBhcnNlciBjb250aW51ZXMgYWZ0ZXIgZW5jb3VudGVyaW5nIGEgMHhGRgotLy8gY2hhcmFjdGVyLiAgTm90ZSB0aGF0IHRoaXMgYnl0ZSBpcyBpbnZhbGlkIFVURi04LCBtYWtpbmcgdGhpcwotLy8gZW50aXJlIGZpbGUgaW52YWxpZCBVVEYtOC4gIFVzZSBjYXJlIHdoZW4gZWRpdGluZy4KLS8vIC0+IP8gPC0KLUFoVUFBSDhBQUE0QUFBQnRBQUFBQUY2SFF4M01xQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQ0cyUWJIYlVqOGVHcGR4NUtWSWViaXdrMGp2Umo5LzNtNkJPU3pwQTdxQlhlRXVuaHFyM0QxMU5FN2NpR2plSE1BQUFDQUFBQUFBQUFBQUFBQUFBQUFBVjZIUXgyNDhMNzdSSDBaOTczdFNZTlE4ekJzejg2MUNaRzUvVDA5VEp6M1hvZERIZS9pSitjZ1hiNUFuM3pUZG5UQnR3M0VXQWI2OFQrZ0NFMzNHTjhBQUFBQUFBQUFBQUFBQUFFQUFBQUFBQUFBQXdBQUFRQUFBQUFBQWdBQUFBPT0KZGlmZiAtLWdpdCBhL3Rlc3RzL2RhdGFfZmlsZXMvYmFzZTY0L2RlZl9iNjRfdG9vX2JpZ18xLnR4dCBiL3Rlc3RzL2RhdGFfZmlsZXMvYmFzZTY0L2RlZl9iNjRfdG9vX2JpZ18xLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNDdiZTA1Yy4uMDAwMDAwMAotLS0gYS90ZXN0cy9kYXRhX2ZpbGVzL2Jhc2U2NC9kZWZfYjY0X3Rvb19iaWdfMS50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwyICswLDAgQEAKLS8vIENvbnRleHQgd2l0aCBhZGRlZCAnMTIzNCcgYXQgdGhlIGJlZ2lubmluZyB0byBzaW11bGF0ZSB0b28gbXVjaCBkYXRhIGluIHRoZSBiYXNlNjQgY29kZQotMTIzNEFoVUFBSDhBQUE0QUFBUThBQUFBQUY2SFF4M01xQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQ0cyUWJIYlVqOGVHcGR4NUtWSWViaXdrMGp2Umo5LzNtNkJPU3pwQTdxQlhlRXVuaHFyM0QxMU5FN2NpR2plSE1BQUFBQUFBTTdNSUlETnpDQ0FoK2dBd0lCQWdJQkFqQU5CZ2txaGtpRzl3MEJBUXNGQURBN01Rc3dDUVlEVlFRR0V3Sk9UREVSTUE4R0ExVUVDZ3dJVUc5c1lYSlRVMHd4R1RBWEJnTlZCQU1NRUZCdmJHRnlVMU5NSUZSbGMzUWdRMEV3SGhjTk1Ua3dNakV3TVRRME5EQTJXaGNOTWprd01qRXdNVFEwTkRBMldqQTBNUXN3Q1FZRFZRUUdFd0pPVERFUk1BOEdBMVVFQ2d3SVVHOXNZWEpUVTB3eEVqQVFCZ05WQkFNTUNXeHZZMkZzYUc5emREQ0NBU0l3RFFZSktvWklodmNOQVFFQkJRQURnZ0VQQURDQ0FRb0NnZ0VCQU1GTm85M256UjNSQk5kSmNyaVpyQTU0NURvOFNzODZFeGJRV3VUTm93Q0lwKzRlYTVhblVyU1E3eTF5ZWo0a212eTJOS3drOVhmZ0ptU01uTEFvZmFIYTZvem15UnlXdlA3QkJGS3pOdFNqK3VHeGR0aVF3V0cwWmxJMm9pWlRxcXQwWGdkOUdZTGJLdGdmb05rTkhDMUpadmRiSlhORzZBdUtUMmtNdFFDUTRkcUNFR1o5cmxRcmkyVjVrYUhpWWNQTlFFa0k3bWdNOFl1RzBrYS8wTGlxRVFNZWYxYW9HaDVFR0E4UGhZdmFpMFJlNGhqR1lpL0habzM2WGRoOTh5ZUpLUUhGa0E0L0ovRXd5RW9PNzliZXg4Y25hOGNGUFhyRUFqeWFIVDRQNkRTWVc4dHpTMUtXMkJHaUxJQ0lhVGxhMHcrdzNsa3ZFY2YzNmhJQk1KY0NBd0VBQWFOTk1Fc3dDUVlEVlIwVEJBSXdBREFkQmdOVkhRNEVGZ1FVcFFYb1pMamMzMkFQVUJKTllLaGtyMDJMUTVNd0h3WURWUjBqQkJnd0ZvQVV0RnJrcGJQZTBsTDJ1ZFdtbFEvclByekgvZjh3RFFZSktvWklodmNOQVFFTEJRQURnZ0VCQUM0NjVGSmhQcWVsN3pKbmdISUhKcnFqL3dWQXhHQUZPVEYzOTZYS0FUR0FwK0hSQ3FKODFSeTYwQ05LMWpEems4ZHY2TTZVSG9TN1JJRmlNLzlyWFFDYkpmaVBENXhNVGVqWnA1bjVVWUhBbXhzeERhYXpmQTVGdUJoa2Zva0tLNmpENEVxOTFDOTR4R0tiNlg0L1ZrYVBGN2Nxb0JCdy9iSHhhd1hjMFVFUGpxYXlpQnBDWVUvckpvVlpnTHFGVlA3UHgzc3ZhMW5Pck54OHJQUEkxaEorWk9nOG1haVBUeEhabkJWTGFrU1NMUXkvc1dlV3lhek8xUm5yYnhqcmJnUXRZS3owZTNud0dwdTF3MTN2ZmNrRm1VU0JoSFhIN0FBUy9IcEtDNElIN0cyR0FrMytuOGlTU043MXNaenB4b25Rd1Zib3BNWnFMbWJCbS83V1BMY0FBSlRmUUMyRWs5MUlOUDVpaEhOekltUE9BSEpDaytZVE8vcFF1RW5OV3dYYmRtS0FpK0lScDY3MWlBd3Rwa2pTeENCWFZ6S1g5MjVGMUE2NmNhQ09RcHRsdys5ekZ1a0RRZ2JsTTJKeUFKTEcwajZCNFJ0QlREV0o4WlRNVVBIVW9MSm9FcG04QVBaZ1JpLy9ETVJ5Q0tQOXBiQkxHbER6Z1V2bDB3MTFMekJBbEpIa1dhdTVOb3FRQmxHN3c0SEZyS3dlb3Zza0FBRlJnQUFBQUY2SFF4MjQ4TDc3UkgwWjk3M3RTWU5ROHpCc3o4NjFDWkc1L1QwOVRKejNYb2RESGUvaUorY2dYYjVBbjN6VGRuVEJ0dzNFV0FiNjhUK2dDRTMzR044QUFBQUFBQUFBQUFBQUFBRUFBQUFBQUFBQUF3QUFBUUFBQUFBQUFnQUFBQT09CmRpZmYgLS1naXQgYS90ZXN0cy9kYXRhX2ZpbGVzL2Jhc2U2NC9kZWZfYjY0X3Rvb19iaWdfMi50eHQgYi90ZXN0cy9kYXRhX2ZpbGVzL2Jhc2U2NC9kZWZfYjY0X3Rvb19iaWdfMi50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDdlYzFkZDAuLjAwMDAwMDAKLS0tIGEvdGVzdHMvZGF0YV9maWxlcy9iYXNlNjQvZGVmX2I2NF90b29fYmlnXzIudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMiArMCwwIEBACi0vLyBDb250ZXh0IHdpdGggYWRkZWQgJzEyMzQnIGluIHRoZSBtaWRkbGUgb2YgY29kZSB0byBzaW11bGF0ZSB0b28gbXVjaCBkYXRhCi1BaFVBQUg4QUFBNEFBQVE4QUFBQUFGNkhReDNNcUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUNHMlFiSGJVajhlR3BkeDVLVkllYml3azBqdlJqOS8zbTZCT1N6cEE3cUJYZUV1bmhxcjNEMTFORTdjaUdqZUhNQUFBQUFBQU03TUlJRE56Q0NBaCtnQXdJQkFnSUJBakFOQmdrcWhraUc5dzBCQVFzRkFEQTdNUXN3Q1FZRFZRUUdFd0pPVERFUk1BOEdBMVVFQ2d3SVVHOXNZWEpUVTB3eEdUQVhCZ05WQkFNTUVGQnZiR0Z5VTFOTUlGUmxjM1FnUTBFd0hoY05NVGt3TWpFd01UUTBOREEyV2hjTk1qa3dNakV3TVRRME5EQTJXakEwTVFzd0NRWURWUVFHRXdKT1RERVJNQThHQTFVRUNnd0lVRzlzWVhKVFUwd3hFakFRQmdOVkJBTU1DV3h2WTJGc2FHOXpkRENDQVNJd0RRWUpLb1pJaHZjTkFRRUJCUUFEZ2dFUEFEQ0NBUW9DZ2dFQkFNRk5vOTNuelIzUkJOZEpjcmlackE1NDVEbzhTczg2RXhiUVd1VE5vd0NJcCs0ZWE1YW5VclNRN3kxeWVqNGttdnkyTkt3azlYZmdKbVNNbkxBb2ZhSGE2b3pteVJ5V3ZQN0JCRkt6TnRTait1R3hkdGlRd1dHMFpsSTJvaVpUcXF0MFhnZDlHWUxiS3RnZm9Oa05IQzFKWnZkYkpYTkc2QXVLVDJrTXRRQ1E0ZHFDRUdaOXJsUXJpMlY1a2FIaVljUE5RRWtJN20xMjM0Z004WXVHMGthLzBMaXFFUU1lZjFhb0doNUVHQThQaFl2YWkwUmU0aGpHWWkvSFpvMzZYZGg5OHllSktRSEZrQTQvSi9Fd3lFb083OWJleDhjbmE4Y0ZQWHJFQWp5YUhUNFA2RFNZVzh0elMxS1cyQkdpTElDSWFUbGEwdyt3M2xrdkVjZjM2aElCTUpjQ0F3RUFBYU5OTUVzd0NRWURWUjBUQkFJd0FEQWRCZ05WSFE0RUZnUVVwUVhvWkxqYzMyQVBVQkpOWUtoa3IwMkxRNU13SHdZRFZSMGpCQmd3Rm9BVXRGcmtwYlBlMGxMMnVkV21sUS9yUHJ6SC9mOHdEUVlKS29aSWh2Y05BUUVMQlFBRGdnRUJBQzQ2NUZKaFBxZWw3ekpuZ0hJSEpycWovd1ZBeEdBRk9URjM5NlhLQVRHQXArSFJDcUo4MVJ5NjBDTksxakR6azhkdjZNNlVIb1M3UklGaU0vOXJYUUNiSmZpUEQ1eE1UZWpacDVuNVVZSEFteHN4RGFhemZBNUZ1QmhrZm9rS0s2akQ0RXE5MUM5NHhHS2I2WDQvVmthUEY3Y3FvQkJ3L2JIeGF3WGMwVUVQanFheWlCcENZVS9ySm9WWmdMcUZWUDdQeDNzdmExbk9yTng4clBQSTFoSitaT2c4bWFpUFR4SFpuQlZMYWtTU0xReS9zV2VXeWF6TzFSbnJieGpyYmdRdFlLejBlM253R3B1MXcxM3ZmY2tGbVVTQmhIWEg3QUFTL0hwS0M0SUg3RzJHQWszK244aVNTTjcxc1p6cHhvblF3VmJvcE1acUxtYkJtLzdXUExjQUFKVGZRQzJFazkxSU5QNWloSE56SW1QT0FISkNrK1lUTy9wUXVFbk5Xd1hiZG1LQWkrSVJwNjcxaUF3dHBralN4Q0JYVnpLWDkyNUYxQTY2Y2FDT1FwdGx3Kzl6RnVrRFFnYmxNMkp5QUpMRzBqNkI0UnRCVERXSjhaVE1VUEhVb0xKb0VwbThBUFpnUmkvL0RNUnlDS1A5cGJCTEdsRHpnVXZsMHcxMUx6QkFsSkhrV2F1NU5vcVFCbEc3dzRIRnJLd2VvdnNrQUFGUmdBQUFBRjZIUXgyNDhMNzdSSDBaOTczdFNZTlE4ekJzejg2MUNaRzUvVDA5VEp6M1hvZERIZS9pSitjZ1hiNUFuM3pUZG5UQnR3M0VXQWI2OFQrZ0NFMzNHTjhBQUFBQUFBQUFBQUFBQUFFQUFBQUFBQUFBQXdBQUFRQUFBQUFBQWdBQUFBPT0KZGlmZiAtLWdpdCBhL3Rlc3RzL2RhdGFfZmlsZXMvYmFzZTY0L2RlZl9iNjRfdG9vX2JpZ18zLnR4dCBiL3Rlc3RzL2RhdGFfZmlsZXMvYmFzZTY0L2RlZl9iNjRfdG9vX2JpZ18zLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNTE0NzU0Yy4uMDAwMDAwMAotLS0gYS90ZXN0cy9kYXRhX2ZpbGVzL2Jhc2U2NC9kZWZfYjY0X3Rvb19iaWdfMy50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwyICswLDAgQEAKLS8vIENvbnRleHQgd2l0aCBhZGRlZCAnMTIzNCcgYmVmb3JlICc9PScgYWRkIHRoZSBlbmQgdG8gc2ltdWxhdGUgdG9vIG11Y2ggZGF0YSBpbiB0aGUgYmFzZTY0IGNvZGUKLUFoVUFBSDhBQUE0QUFBUThBQUFBQUY2SFF4M01xQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQ0cyUWJIYlVqOGVHcGR4NUtWSWViaXdrMGp2Umo5LzNtNkJPU3pwQTdxQlhlRXVuaHFyM0QxMU5FN2NpR2plSE1BQUFBQUFBTTdNSUlETnpDQ0FoK2dBd0lCQWdJQkFqQU5CZ2txaGtpRzl3MEJBUXNGQURBN01Rc3dDUVlEVlFRR0V3Sk9UREVSTUE4R0ExVUVDZ3dJVUc5c1lYSlRVMHd4R1RBWEJnTlZCQU1NRUZCdmJHRnlVMU5NSUZSbGMzUWdRMEV3SGhjTk1Ua3dNakV3TVRRME5EQTJXaGNOTWprd01qRXdNVFEwTkRBMldqQTBNUXN3Q1FZRFZRUUdFd0pPVERFUk1BOEdBMVVFQ2d3SVVHOXNZWEpUVTB3eEVqQVFCZ05WQkFNTUNXeHZZMkZzYUc5emREQ0NBU0l3RFFZSktvWklodmNOQVFFQkJRQURnZ0VQQURDQ0FRb0NnZ0VCQU1GTm85M256UjNSQk5kSmNyaVpyQTU0NURvOFNzODZFeGJRV3VUTm93Q0lwKzRlYTVhblVyU1E3eTF5ZWo0a212eTJOS3drOVhmZ0ptU01uTEFvZmFIYTZvem15UnlXdlA3QkJGS3pOdFNqK3VHeGR0aVF3V0cwWmxJMm9pWlRxcXQwWGdkOUdZTGJLdGdmb05rTkhDMUpadmRiSlhORzZBdUtUMmtNdFFDUTRkcUNFR1o5cmxRcmkyVjVrYUhpWWNQTlFFa0k3bWdNOFl1RzBrYS8wTGlxRVFNZWYxYW9HaDVFR0E4UGhZdmFpMFJlNGhqR1lpL0habzM2WGRoOTh5ZUpLUUhGa0E0L0ovRXd5RW9PNzliZXg4Y25hOGNGUFhyRUFqeWFIVDRQNkRTWVc4dHpTMUtXMkJHaUxJQ0lhVGxhMHcrdzNsa3ZFY2YzNmhJQk1KY0NBd0VBQWFOTk1Fc3dDUVlEVlIwVEJBSXdBREFkQmdOVkhRNEVGZ1FVcFFYb1pMamMzMkFQVUJKTllLaGtyMDJMUTVNd0h3WURWUjBqQkJnd0ZvQVV0RnJrcGJQZTBsTDJ1ZFdtbFEvclByekgvZjh3RFFZSktvWklodmNOQVFFTEJRQURnZ0VCQUM0NjVGSmhQcWVsN3pKbmdISUhKcnFqL3dWQXhHQUZPVEYzOTZYS0FUR0FwK0hSQ3FKODFSeTYwQ05LMWpEems4ZHY2TTZVSG9TN1JJRmlNLzlyWFFDYkpmaVBENXhNVGVqWnA1bjVVWUhBbXhzeERhYXpmQTVGdUJoa2Zva0tLNmpENEVxOTFDOTR4R0tiNlg0L1ZrYVBGN2Nxb0JCdy9iSHhhd1hjMFVFUGpxYXlpQnBDWVUvckpvVlpnTHFGVlA3UHgzc3ZhMW5Pck54OHJQUEkxaEorWk9nOG1haVBUeEhabkJWTGFrU1NMUXkvc1dlV3lhek8xUm5yYnhqcmJnUXRZS3owZTNud0dwdTF3MTN2ZmNrRm1VU0JoSFhIN0FBUy9IcEtDNElIN0cyR0FrMytuOGlTU043MXNaenB4b25Rd1Zib3BNWnFMbWJCbS83V1BMY0FBSlRmUUMyRWs5MUlOUDVpaEhOekltUE9BSEpDaytZVE8vcFF1RW5OV3dYYmRtS0FpK0lScDY3MWlBd3Rwa2pTeENCWFZ6S1g5MjVGMUE2NmNhQ09RcHRsdys5ekZ1a0RRZ2JsTTJKeUFKTEcwajZCNFJ0QlREV0o4WlRNVVBIVW9MSm9FcG04QVBaZ1JpLy9ETVJ5Q0tQOXBiQkxHbER6Z1V2bDB3MTFMekJBbEpIa1dhdTVOb3FRQmxHN3c0SEZyS3dlb3Zza0FBRlJnQUFBQUY2SFF4MjQ4TDc3UkgwWjk3M3RTWU5ROHpCc3o4NjFDWkc1L1QwOVRKejNYb2RESGUvaUorY2dYYjVBbjN6VGRuVEJ0dzNFV0FiNjhUK2dDRTMzR044QUFBQUFBQUFBQUFBQUFBRUFBQUFBQUFBQUF3QUFBUUFBQUFBQUFnQUFBQTEyMzQ9PQpkaWZmIC0tZ2l0IGEvdGVzdHMvZGF0YV9maWxlcy9iYXNlNjQvZGVmX2JhZF9iNjQudHh0IGIvdGVzdHMvZGF0YV9maWxlcy9iYXNlNjQvZGVmX2JhZF9iNjQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkNzc3NjU4Li4wMDAwMDAwCi0tLSBhL3Rlc3RzL2RhdGFfZmlsZXMvYmFzZTY0L2RlZl9iYWRfYjY0LnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDIgKzAsMCBAQAotLy8gQ29udGV4dCB3aXRoIGFkZGVkIGV4dHJhICdBJyBiZWZvcmUgJz09JyBhZGQgdGhlIGVuZCB0byBzaW11bGF0ZSBiYWQgbGVuZ3RoIG9mIGJhc2U2NCBjb2RlCi1BaFVBQUg4QUFBNEFBQVE4QUFBQUFGNkhReDNNcUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUNHMlFiSGJVajhlR3BkeDVLVkllYml3azBqdlJqOS8zbTZCT1N6cEE3cUJYZUV1bmhxcjNEMTFORTdjaUdqZUhNQUFBQUFBQU03TUlJRE56Q0NBaCtnQXdJQkFnSUJBakFOQmdrcWhraUc5dzBCQVFzRkFEQTdNUXN3Q1FZRFZRUUdFd0pPVERFUk1BOEdBMVVFQ2d3SVVHOXNZWEpUVTB3eEdUQVhCZ05WQkFNTUVGQnZiR0Z5VTFOTUlGUmxjM1FnUTBFd0hoY05NVGt3TWpFd01UUTBOREEyV2hjTk1qa3dNakV3TVRRME5EQTJXakEwTVFzd0NRWURWUVFHRXdKT1RERVJNQThHQTFVRUNnd0lVRzlzWVhKVFUwd3hFakFRQmdOVkJBTU1DV3h2WTJGc2FHOXpkRENDQVNJd0RRWUpLb1pJaHZjTkFRRUJCUUFEZ2dFUEFEQ0NBUW9DZ2dFQkFNRk5vOTNuelIzUkJOZEpjcmlackE1NDVEbzhTczg2RXhiUVd1VE5vd0NJcCs0ZWE1YW5VclNRN3kxeWVqNGttdnkyTkt3azlYZmdKbVNNbkxBb2ZhSGE2b3pteVJ5V3ZQN0JCRkt6TnRTait1R3hkdGlRd1dHMFpsSTJvaVpUcXF0MFhnZDlHWUxiS3RnZm9Oa05IQzFKWnZkYkpYTkc2QXVLVDJrTXRRQ1E0ZHFDRUdaOXJsUXJpMlY1a2FIaVljUE5RRWtJN21nTThZdUcwa2EvMExpcUVRTWVmMWFvR2g1RUdBOFBoWXZhaTBSZTRoakdZaS9IWm8zNlhkaDk4eWVKS1FIRmtBNC9KL0V3eUVvTzc5YmV4OGNuYThjRlBYckVBanlhSFQ0UDZEU1lXOHR6UzFLVzJCR2lMSUNJYVRsYTB3K3czbGt2RWNmMzZoSUJNSmNDQXdFQUFhTk5NRXN3Q1FZRFZSMFRCQUl3QURBZEJnTlZIUTRFRmdRVXBRWG9aTGpjMzJBUFVCSk5ZS2hrcjAyTFE1TXdId1lEVlIwakJCZ3dGb0FVdEZya3BiUGUwbEwydWRXbWxRL3JQcnpIL2Y4d0RRWUpLb1pJaHZjTkFRRUxCUUFEZ2dFQkFDNDY1RkpoUHFlbDd6Sm5nSElISnJxai93VkF4R0FGT1RGMzk2WEtBVEdBcCtIUkNxSjgxUnk2MENOSzFqRHprOGR2Nk02VUhvUzdSSUZpTS85clhRQ2JKZmlQRDV4TVRlalpwNW41VVlIQW14c3hEYWF6ZkE1RnVCaGtmb2tLSzZqRDRFcTkxQzk0eEdLYjZYNC9Wa2FQRjdjcW9CQncvYkh4YXdYYzBVRVBqcWF5aUJwQ1lVL3JKb1ZaZ0xxRlZQN1B4M3N2YTFuT3JOeDhyUFBJMWhKK1pPZzhtYWlQVHhIWm5CVkxha1NTTFF5L3NXZVd5YXpPMVJucmJ4anJiZ1F0WUt6MGUzbndHcHUxdzEzdmZja0ZtVVNCaEhYSDdBQVMvSHBLQzRJSDdHMkdBazMrbjhpU1NONzFzWnpweG9uUXdWYm9wTVpxTG1iQm0vN1dQTGNBQUpUZlFDMkVrOTFJTlA1aWhITnpJbVBPQUhKQ2srWVRPL3BRdUVuTld3WGJkbUtBaStJUnA2NzFpQXd0cGtqU3hDQlhWektYOTI1RjFBNjZjYUNPUXB0bHcrOXpGdWtEUWdibE0ySnlBSkxHMGo2QjRSdEJURFdKOFpUTVVQSFVvTEpvRXBtOEFQWmdSaS8vRE1SeUNLUDlwYkJMR2xEemdVdmwwdzExTHpCQWxKSGtXYXU1Tm9xUUJsRzd3NEhGckt3ZW92c2tBQUZSZ0FBQUFGNkhReDI0OEw3N1JIMFo5NzN0U1lOUTh6QnN6ODYxQ1pHNS9UMDlUSnozWG9kREhlL2lKK2NnWGI1QW4zelRkblRCdHczRVdBYjY4VCtnQ0UzM0dOOEFBQUFBQUFBQUFBQUFBQUVBQUFBQUFBQUFBd0FBQVFBQUFBQUFBZ0FBQUFBPT0KZGlmZiAtLWdpdCBhL3Rlc3RzL2RhdGFfZmlsZXMvYmFzZTY0L21mbF8xMDI0LnR4dCBiL3Rlc3RzL2RhdGFfZmlsZXMvYmFzZTY0L21mbF8xMDI0LnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYjU2MDQ0YS4uMDAwMDAwMAotLS0gYS90ZXN0cy9kYXRhX2ZpbGVzL2Jhc2U2NC9tZmxfMTAyNC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwyICswLDAgQEAKLS8vIE1GTD0xMDI0Ci1BaFVBQUg4QUFBNEFBQUJ0QUFBQUFGNksrR0xNcUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUNIZWVRS1BWdDlScEI4bkxUQjZDMkFoeFJ6QjByL09CYlhiTVBtNmpiMXJrUitxclhaQVVGUnZHZkd4bHFxR1d3QUFBQ0FBQUFBQUFBQUFBQUFBQUlBQVY2SytHSklYTm5wS1RyOUhaUVc2V0VIN1lTWWhoUlJxT082eHZmOFFMNi9Yb3I0WWhPeE9KWWsyM3czQXdEdlZBb2ZlV25WQWZKbkV4ZTVpcGRTeG5BQUFBQUFBQUFBQUFBQUFBRUFBQUFBQUFBQUF3QUFBUUFBQUFBQUFnQUFBQT09PQpkaWZmIC0tZ2l0IGEvdGVzdHMvZGF0YV9maWxlcy9iYXNlNjQvbXR1XzEwMDAwLnR4dCBiL3Rlc3RzL2RhdGFfZmlsZXMvYmFzZTY0L210dV8xMDAwMC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDY3NjQ1MzkuLjAwMDAwMDAKLS0tIGEvdGVzdHMvZGF0YV9maWxlcy9iYXNlNjQvbXR1XzEwMDAwLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDIgKzAsMCBAQAotLy8gTVRVPTEwMDAwCi1BaFVBQUg4QUFBNEFBQUJ0QUFBQUFGNkxEa3pNcUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUJ4MDZreFlvb01MR1B5VU1vQjQ2RUYyelRKem1aRU00bGU1YUtpaGNIcEZFZmdyWC9lV1FaRldhN2Nhazc5aWh3QUFBQ0FBQUFBQUFBQUFBQUFBQUFBQVY2TERrejliaWdNazlxMFdpRG1nWWhYOHBwYmZnYnRNQ2ZydXZWUU5pRldYb3NPVEozUjIrSitUYVNDaG1qdFM4c0QreTFacnVoZS9TSkU3eTlEKzVZQUFBQUFBQUFBQUFBQUFBRUFBQUFBQUFBQUF3QUFBUUFBQUFBQUFpY1FBQT09CmRpZmYgLS1naXQgYS90ZXN0cy9kYXRhX2ZpbGVzL2Jhc2U2NC9zcnZfY2lkLnR4dCBiL3Rlc3RzL2RhdGFfZmlsZXMvYmFzZTY0L3Nydl9jaWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2OWFhZDVmLi4wMDAwMDAwCi0tLSBhL3Rlc3RzL2RhdGFfZmlsZXMvYmFzZTY0L3Nydl9jaWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMiArMCwwIEBACi0vLyBTZXJ2ZXIsIENJRCAweERFQUQKLUFoVUFBSDhBQUE4QUFBQnRBQUFBQUY2TVpVUE1xQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQmg3aDgvYXByTE4xZlMwS3dMa1p6S2NzYTVMTnREVzdzWXU3ZDF6N2ZOZXR1UmpMSnBYL0ExbVRTcWVCWTdsaThBQUFDQUFBQUFBQUFBQUFBQUFBQUFBVjZNWlVOYWs3NEJoYmNndloyTThXaFpLalF5Q2l4N0dKelJzNFNxbkQ3aVhveGxRN1lYanNWSTBLL3h5TU9KUGtUOVpjUEVpLzJqSEdJdGUxWmR1VzRDM3EwQ3Z1OEFBQUFBQUFBQUFBQUFBQUlBQUFBQUFBQUFCd0FBQVFBQUFBQUFBd0FBQUE9PQpkaWZmIC0tZ2l0IGEvdGVzdHMvZGF0YV9maWxlcy9iYXNlNjQvc3J2X2NpcGhlcnN1aXRlLnR4dCBiL3Rlc3RzL2RhdGFfZmlsZXMvYmFzZTY0L3Nydl9jaXBoZXJzdWl0ZS50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDdlOTM5MDYuLjAwMDAwMDAKLS0tIGEvdGVzdHMvZGF0YV9maWxlcy9iYXNlNjQvc3J2X2NpcGhlcnN1aXRlLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDIgKzAsMCBAQAotLy8gVExTLVJTQS1XSVRILUFFUy0yNTYtQ0NNLTgKLUFoVUFBSDhBQUE0QUFBQnRBQUFBQUY2SzR5bkFvUUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBRExCSVFVcnJQaDdqeFl6OWU1NWNKdmZwT2t1QmYyWmlWb3ZsWWExRGt3YmltcDVxL0NvV0luNDhDMHgzWWo2TjBBQUFDQUFBQUFBQUFBQUFBQUFBQUFBVjZLNHlrc012TVYxOXFScStlTm9rR24wajlRNXRqRTg4RUs4amZNN2drc1hvcmpLUjZ6aFhodHRGR0lGa05OQW1tS3V1RFFHVm1YMXlDb0hpSkZvblVBQUFBQUFBQUFBQUFBQUFFQUFBQUFBQUFBQXdBQUFRQUFBQUFBQWdBQUFBPT0KZGlmZiAtLWdpdCBhL3Rlc3RzL2RhdGFfZmlsZXMvYmFzZTY0L3Nydl9kZWYudHh0IGIvdGVzdHMvZGF0YV9maWxlcy9iYXNlNjQvc3J2X2RlZi50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGNhODE0NjEuLjAwMDAwMDAKLS0tIGEvdGVzdHMvZGF0YV9maWxlcy9iYXNlNjQvc3J2X2RlZi50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwyICswLDAgQEAKLS8vIFNlcnZlciBjb250ZXh0IHdpdGggZGVmYXVsdCBNYmVkVExTIGNvbmZpZ3VyYXRpb24KLUFoVUFBSDhBQUE0QUFBQnRBQUFBQUY2SFF4M01xQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQ0cyUWJIYlVqOGVHcGR4NUtWSWViaXdrMGp2Umo5LzNtNkJPU3pwQTdxQlhlRXVuaHFyM0QxMU5FN2NpR2plSE1BQUFDQUFBQUFBQUFBQUFBQUFBQUFBVjZIUXgyNDhMNzdSSDBaOTczdFNZTlE4ekJzejg2MUNaRzUvVDA5VEp6M1hvZERIZS9pSitjZ1hiNUFuM3pUZG5UQnR3M0VXQWI2OFQrZ0NFMzNHTjhBQUFBQUFBQUFBQUFBQUFFQUFBQUFBQUFBQXdBQUFRQUFBQUFBQWdBQUFBPT0KZGlmZiAtLWdpdCBhL3Rlc3RzL2RhdGFfZmlsZXMvYmFzZTY0L3Nydl9taW5fY2ZnLnR4dCBiL3Rlc3RzL2RhdGFfZmlsZXMvYmFzZTY0L3Nydl9taW5fY2ZnLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNzcyNzJmNS4uMDAwMDAwMAotLS0gYS90ZXN0cy9kYXRhX2ZpbGVzL2Jhc2U2NC9zcnZfbWluX2NmZy50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwyICswLDAgQEAKLS8vIE1pbmltYWwgY29uZmlndXJhdGlvbgotQWhVQUFBTUFBQUFBQUFCakFBQUFBRjZMWmxMTXFBQWdVR2t0UG1wU1BielJQaXBlQ3BZSnRwNVNOSUlqVHIzUjEyMVdGOUFlV040dG1LYlJoaHYreVBNalkweVdQckhMeTdsTExod05GQndDRDZlUTBVTFpaMTVGaTJSaGFlLzRaa0FSMEJOMmlDTUFBQUNBQUFBQVhvdG1Va01DNmFVNnM3TzVJbmptRUVlZzR5U0xaa05EZjBVdC9zMDYvY0JlaTJaUytra0tTM3NKc28ydTQxOGpscmxLaWVzeVVPVyt4WHdPRDhiWVpRQUFBUUFBQUFBQUFnQUEKZGlmZiAtLWdpdCBhL3Rlc3RzL2RhdGFfZmlsZXMvYmFzZTY0L3Nydl9ub19hbHBuLnR4dCBiL3Rlc3RzL2RhdGFfZmlsZXMvYmFzZTY0L3Nydl9ub19hbHBuLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMTBkZGQwYy4uMDAwMDAwMAotLS0gYS90ZXN0cy9kYXRhX2ZpbGVzL2Jhc2U2NC9zcnZfbm9fYWxwbi50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwyICswLDAgQEAKLS8vIFdpdGhvdXQgTUJFRFRMU19TU0xfQUxQTgotQWhVQUFIOEFBQVlBQUFCdEFBQUFBRjZMRFN6TXFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFCMWxDVU84Qi84MDVVekNPTFp6V0RBRUE4YW5mTHBidVdUcm5GU1IycHVaa3R2RWlSOG5YZEFUTjB5S1M5NG9TQUFBQUNBQUFBQUFBQUFBQUFBQUFBQUFWNkxEU3dXdDBRV2dtTmc0WnYyeVloZjRQZGV4cGkvUVRJcVd5RDJBUVZqWG9zTkxMSzF2ei91cEZIckpsaXpqSDV1U0JVSkNwUVpKY3pyQmd4Qm1Hb0FBQUFBQUFBQUFBQUFBQUVBQUFBQUFBQUFBd0FBQVFBQUFBQUFBZ0FBCmRpZmYgLS1naXQgYS90ZXN0cy9kYXRhX2ZpbGVzL2Jhc2U2NC9zcnZfbm9fa2VlcF9jZXJ0LnR4dCBiL3Rlc3RzL2RhdGFfZmlsZXMvYmFzZTY0L3Nydl9ub19rZWVwX2NlcnQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiZTgzNGI5Li4wMDAwMDAwCi0tLSBhL3Rlc3RzL2RhdGFfZmlsZXMvYmFzZTY0L3Nydl9ub19rZWVwX2NlcnQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMiArMCwwIEBACi0vLyBXaXRob3V0IE1CRURUTFNfU1NMX0tFRVBfUEVFUl9DRVJUSUZJQ0FURQotQWhVQUFBTUFBQUFBQUFCaUFBQUFBRjZNS2hUTXFBQWdTS0NxWHJjcm1qcU9CcHhzR08zaXRRQjA5WWdzU0p3WG1aQjEyUWxCK3d3aGlvZjBtekFOMGh1cGtMeHU0WXljOVNneUZvRURQS0prOFRpUm84Yk8ycmtFZlBJdEI1bFVGa0p3emRldUdWTUFBQUNBQUFCZWpDb1ViT3ZXL3FiSWhsQUtQRGl0MzFPQnlqaHpYWXQrclpOdHZrbkhMVjZNS2hSTXI4eG5MMjdTTkZYMWl5cFRwUTcva3NBdFBHWFFqV3ZrUVdmd0FBQUJBQUFBQUFBQ0FBQT0KZGlmZiAtLWdpdCBhL3Rlc3RzL2RhdGFfZmlsZXMvYmFzZTY0L3Nydl9ub19tZmwudHh0IGIvdGVzdHMvZGF0YV9maWxlcy9iYXNlNjQvc3J2X25vX21mbC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGUyNTQ0MDMuLjAwMDAwMDAKLS0tIGEvdGVzdHMvZGF0YV9maWxlcy9iYXNlNjQvc3J2X25vX21mbC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwyICswLDAgQEAKLS8vIFdpdGhvdXQgTUJFRFRMU19TU0xfTUFYX0ZSQUdNRU5UX0xFTkdUSAotQWhVQUFIY0FBQTRBQUFCc0FBQUFBRjZMRExQTXFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBMGZ6R3pPMXlzbGpNZ1pyNGdkdWlndlJYcjJBSzVYOGo4YzZ2SFRPcGMybmNGUzNVTjJvandEMnRPYU0zKy9YSUFBQUNBQUFBQUFBQUFBQUFBQUFBQlhvc01zMXhzK01qOEJJTDZ2MDFxdEhXVjd3K3BzeEd3TGN0YUdTU0wwYVplaXd5enNrUGVEQ0wwaXNPemgrSm9QZ3pTL21WdE1jMEd5a0dwWmFGQnVnQUFBQUFBQUFBQUFBQUFBUUFBQUFBQUFBQURBQUFCQUFBQUFBQUNBQUFBCmRpZmYgLS1naXQgYS90ZXN0cy9kYXRhX2ZpbGVzL2Jhc2U2NC9zcnZfbm9fcGFja2luZy50eHQgYi90ZXN0cy9kYXRhX2ZpbGVzL2Jhc2U2NC9zcnZfbm9fcGFja2luZy50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGJjYzQyMjguLjAwMDAwMDAKLS0tIGEvdGVzdHMvZGF0YV9maWxlcy9iYXNlNjQvc3J2X25vX3BhY2tpbmcudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMiArMCwwIEBACi0vLyBXaXRob3V0IERUTFMgcGFja2luZwotQWhVQUFIOEFBQTRBQUFCdEFBQUFBRjZMQ00vTXFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFDZmwwdFhObXNoSVFFcWlFZmxRR25WVUtrSUZsMW9uL011MHBqV2VzM1h3UWdkd215OXhNenBWeVlVNWdCT3NPRUFBQUNBQUFBQUFBQUFBQUFBQUFBQUFWNkxDTSsxdVJweWFveWZ6dU5HQkpLOURnQldJV3RyUHB1N0tNOHFzQy9GWG9zSXovWUlQaHZlWjhaNElSMGcvTWNBTVF3elFvSzV0U2NTRTBERDNCd0FBQUFBQUFBQUFBQUFBQUVBQUFBQUFBQUFBd0VBQVFBQUFBQUFBZ0FBQUE9PQpkaWZmIC0tZ2l0IGEvdGVzdHMvZGF0YV9maWxlcy9iYXNlNjQvdjIuMTkuMS50eHQgYi90ZXN0cy9kYXRhX2ZpbGVzL2Jhc2U2NC92Mi4xOS4xLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYzA3YmQ5ZC4uMDAwMDAwMAotLS0gYS90ZXN0cy9kYXRhX2ZpbGVzL2Jhc2U2NC92Mi4xOS4xLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDIgKzAsMCBAQAotLy8gQ29udGV4dCBjcmVhZGVkIGJ5IE1iZWRUTFMgdi4yLjE5LjEKLUFoTUJBSDhBQUE4QUFBR2pBQUFBQUY1aUhZTEFyZ0Fna1FFNFYyTkpzamJPdU81MndzL3U3NWY2Q2cxMjZ6V2VJN2Era2F4VHFLTGJkV1dabVczUFArU2ZsTHhCQTdUcnBiMHFaNU1QOCttMGxleWxuTGNEdDJUdElXUjQ5TU91aUp1dlZ1TUptdHdBQUFBQUFBRTJNSUlCTWpDQjJxQURBZ0VDQWdZQmNLOUF0T1l3Q2dZSUtvWkl6ajBFQXdJd0RURUxNQWtHQTFVRUF3d0NZMkV3SUJjTk1qQXdNekEyTURrMU1ERTRXaGdQTWpBMU5qQXlNall3T1RVd01UaGFNRE14RHpBTkJnTlZCQWNUQmpFMk1EQXdNVEVOTUFzR0ExVUVDeE1FWVdOak1URVJNQThHQTFVRUF4TUlaR1YyYVdObE1ERXdXVEFUQmdjcWhrak9QUUlCQmdncWhrak9QUU1CQndOQ0FBUm4wVHRpbk42L3J1bnpJdUYyZjJ1VEgxZjBtUU9GWHUzdVJQdFFqaTJPYmNjU3N3NkNuOXo3WFdLOWZSZ2VvT0tBMFdaQytPOUw5SUVXaWVTMTNhakZNQW9HQ0NxR1NNNDlCQU1DQTBjQU1FUUNJRm9hdnBla1FqSXF1YkowOWprTVIraWlVcGtHZEZSbGExUjdvbm5jNWlFT0FpQkF2WXI4ajlRcWpwTTJqQ29sVFMxY0kwejI5UEJidWFzcTRISTZZQ2owd2dBQUFBQUFBQUFBQUFGZVloMkN0M0xuRVN3bWRXelUreHM3dlYyUTBUNUhKOHk0Y2tocE83d09vRjVpSFlKMzhnS0ZJM1FkYzNCUjQ4R1Y3bnVCVUtaZUkxWUpFeFFjaGoxV0NBWTZkRXlnaExwSEFBQUFBQUFBQUFBQUFBQUFBUUFBQUFBQUFBQURBQUFCQUFBQUFBQUNBQUFBCmRpZmYgLS1naXQgYS90ZXN0cy9kYXRhX2ZpbGVzL2NlcnRfZXhhbXBsZV9tdWx0aS5jcnQgYi90ZXN0cy9kYXRhX2ZpbGVzL2NlcnRfZXhhbXBsZV9tdWx0aS5jcnQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDBlMzI5NWQuLjAwMDAwMDAKLS0tIGEvdGVzdHMvZGF0YV9maWxlcy9jZXJ0X2V4YW1wbGVfbXVsdGkuY3J0CisrKyAvZGV2L251bGwKQEAgLTEsMTcgKzAsMCBAQAotLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCi1NSUlDb2pDQ0FZcWdBd0lCQWdJQkVUQU5CZ2txaGtpRzl3MEJBUXNGQURBN01Rc3dDUVlEVlFRR0V3Sk9UREVSCi1NQThHQTFVRUNnd0lVRzlzWVhKVFUwd3hHVEFYQmdOVkJBTU1FRkJ2YkdGeVUxTk1JRlJsYzNRZ1EwRXdIaGNOCi1NVGt3TnpFd01URXlOelV5V2hjTk1qa3dOekV3TVRFeU56VXlXakE2TVFzd0NRWURWUVFHRXdKT1RERVJNQThHCi1BMVVFQ2d3SVVHOXNZWEpUVTB3eEdEQVdCZ05WQkFNTUQzZDNkeTVsZUdGdGNHeGxMbU52YlRDQm56QU5CZ2txCi1oa2lHOXcwQkFRRUZBQU9CalFBd2dZa0NnWUVBeHppU3hjUDBjQkFJYS9nVE5lenpBUnlLSlErVmdqWWVxaDZXCi1FbFVhclBoN2RUTUxjRmN6bk5tVjhVMU1SRGZJdnNTZ1ArUmtQTlB6eVFKRFBjTjhXNDU1cWdtRXJvSVROd3EvCi1oV205S2pWaWJMSCs1S3pnUXJKQmZIdmtuU2NVbXl3SGE0NURQVDlzZGpwR21oeHdEU1dkdkFqSFFQellBamRpCi0vMzNyL0MwQ0F3RUFBYU0yTURRd01nWURWUjBSQkNzd0tZSUxaWGhoYlhCc1pTNWpiMjJDQzJWNFlXMXdiR1V1Ci1ibVYwZ2cwcUxtVjRZVzF3YkdVdWIzSm5NQTBHQ1NxR1NJYjNEUUVCQ3dVQUE0SUJBUUNKYkZpenVySHo4MDR4Ci02TmJzdnNQUGdMY0VTcTBPY0dPRVhPQ09lOHNlWnFvbWhTWVRYdEhCenJGdFJwMi9nbXRPUnEyb2Fwb0REaXErCi1JK3hSTEpZc1VCdXQyTmRrWm1FSVJTVzRuNHNYSndxYjBmWFRUa2Q3RUFYQnZHTldiRVJhYjVTYmY4NG9xZDR0Ci15amp6MnUrSHZ4OGhaQ0hKRzJWOXFnM3phdzV6SlQxQWZBc01ialhxaThDZlU3VStGY29yK08zR2V1VVZncEpDCi1RQ1hiMlFqajNabXJDdkdaQTl4NTlYdG5FTjZtMk80cFdrbXFSL1o3TWxRclp6UTgwdmNRTWs5K3FvS0lyMkVKCi1SY0poQXRFK2RMVjE5SWxjY3dzRGxHeDVrVDVONXpTWUxLOW5BUlYxL0FqSzQ4YlV4R0gzNTNBMVkyTUNmeTBFCi1kWERSZUphMQotLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQpkaWZmIC0tZ2l0IGEvdGVzdHMvZGF0YV9maWxlcy9jZXJ0X2V4YW1wbGVfbXVsdGlfbm9jbi5jcnQgYi90ZXN0cy9kYXRhX2ZpbGVzL2NlcnRfZXhhbXBsZV9tdWx0aV9ub2NuLmNydApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDhiZjYzYy4uMDAwMDAwMAotLS0gYS90ZXN0cy9kYXRhX2ZpbGVzL2NlcnRfZXhhbXBsZV9tdWx0aV9ub2NuLmNydAorKysgL2Rldi9udWxsCkBAIC0xLDE2ICswLDAgQEAKLS0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQotTUlJQ2ZqQ0NBV2FnQXdJQkFnSUpBUGZHZi9qcHFXUDVNQTBHQ1NxR1NJYjNEUUVCQlFVQU1BMHhDekFKQmdOVgotQkFZVEFrNU1NQjRYRFRJek1EVXhPREF5TURVd01Wb1hEVE16TURVeE9EQXlNRFV3TVZvd0RURUxNQWtHQTFVRQotQmhNQ1Rrd3dnWjh3RFFZSktvWklodmNOQVFFQkJRQURnWTBBTUlHSkFvR0JBTWM0a3NYRDlIQVFDR3Y0RXpYcwotOHdFY2lpVVBsWUkySHFvZWxoSlZHcXo0ZTNVekMzQlhNNXpabGZGTlRFUTN5TDdFb0Qva1pEelQ4OGtDUXozRAotZkZ1T2Vhb0poSzZDRXpjS3Y0VnB2U28xWW15eC91U3M0RUt5UVh4NzVKMG5GSnNzQjJ1T1F6MC9iSFk2UnBvYwotY0EwbG5id0l4MEQ4MkFJM1l2OTk2L3d0QWdNQkFBR2paVEJqTUFrR0ExVWRFd1FDTUFBd0N3WURWUjBQQkFRRAotQWdYZ01Fa0dBMVVkRVFSQ01FQ0NISGQzZHk1emFHOTBiMnRoYmkxaWNtRjFibk5qYUhkbGFXY3VaR1dDRkhkMwotZHk1dFlYTnphVzF2TFdGaVlYUmxMbVYxaHdUQXFBRUJod1RBcUVXUU1BMEdDU3FHU0liM0RRRUJCUVVBQTRJQgotQVFBdW9tS2xNTHdTa1AzenZHdUE5YXdEZElUTS91Q3pmZDc3eWk2MHpNTnRGSERNdTJZWjJucFFTbDBjemFiNgotLzhmWDlnb2FVOFYzY3g0S1hTTE14N2k5QXNQMXI1NTlVbzNjLzRvVFpkM3hCc0VsTUFuL1RYaXV1aloyUndkTAotUmNNT0plcmxUaE9FMGR0TmRuaUpqN2xQYWFuNzBDRUxQL0NVbjhLZ2VXZ3p0UUpqNGdoZlV3bkxuNlJucExmbAotWXlNL1hxMllid25RV0hYU2UzQ1BUeTVSQ1dhbHQzU2daZjZJRGNENkNOcTFRMmwxNGlSNzhPV25seEdURm1qUAotZXozT3p4TlQyQlp6MEFpUDBXdlRiVXR2ZnV4dzlHM2ZISGU1Q2xzQW9wSUEzdEQyNDZqSE9BbHFBbk9FQkMveAotSUFCYldqWS9icmlQOVU0UjZ4K21nMmNrCi0tLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCmRpZmYgLS1naXQgYS90ZXN0cy9kYXRhX2ZpbGVzL2NlcnRfZXhhbXBsZV93aWxkY2FyZC5jcnQgYi90ZXN0cy9kYXRhX2ZpbGVzL2NlcnRfZXhhbXBsZV93aWxkY2FyZC5jcnQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGFiNDE3YzUuLjAwMDAwMDAKLS0tIGEvdGVzdHMvZGF0YV9maWxlcy9jZXJ0X2V4YW1wbGVfd2lsZGNhcmQuY3J0CisrKyAvZGV2L251bGwKQEAgLTEsMjAgKzAsMCBAQAotLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCi1NSUlET3pDQ0FpT2dBd0lCQWdJQkREQU5CZ2txaGtpRzl3MEJBUVVGQURBN01Rc3dDUVlEVlFRR0V3Sk9UREVSCi1NQThHQTFVRUNnd0lVRzlzWVhKVFUwd3hHVEFYQmdOVkJBTU1FRkJ2YkdGeVUxTk1JRlJsYzNRZ1EwRXdIaGNOCi1NVGt3TWpFd01UUTBOREEyV2hjTk1qa3dNakV3TVRRME5EQTJXakE0TVFzd0NRWURWUVFHRXdKT1RERVJNQThHCi1BMVVFQ2d3SVVHOXNZWEpUVTB3eEZqQVVCZ05WQkFNTURTb3VaWGhoYlhCc1pTNWpiMjB3Z2dFaU1BMEdDU3FHCi1TSWIzRFFFQkFRVUFBNElCRHdBd2dnRUtBb0lCQVFDcEFoODlRR3JWVlZPTC9UYnVnbVV1RldGZWliKzQ2RVdRCi0yKzZJRmxMVDhVTlFSNVlTV1dTSGEvMHI0RWI1Yzc3ZHo1TGhrVnZ0WnFCdmlTbDVSWURRZzJyVlFVTjNYemw4Ci1DUVJIZ3JCWE9YRHRvK3dWR1I2b013aEh3UVZDcWYxTXc3VGYzUVlmVFJCUlFHZHpFdzlBK0cyQkpWOEtzVlBHCi1NSDRWT2F6NVd1NS9rcDZtQlZ2bkU1ZUZ0U09TMmRRa0J0VUpKWWwxQjkybUdvOC9DUm0rcldVc1pPdVZtOXorCi1RVjRYcHRwc1cybk1Bcm9VTEJZa25FcmN6ZEQzVW1kejhTMmdJLzErOURIS0xYREtpUXNFMnk2bVQzQnVuczY5Ci1XSW5pVTFtZWJscVNaZUtJUHd5VUdhUGQ1ZWlkbFJQdEtkdXJjQkxjV3NwckY2dFNnbFN4QWdNQkFBR2pUVEJMCi1NQWtHQTFVZEV3UUNNQUF3SFFZRFZSME9CQllFRkI5MDFqOHB3WFIwUlRzRkVpdzlxTDFEV1FLbU1COEdBMVVkCi1Jd1FZTUJhQUZMUmE1S1d6M3RKUzlyblZwcFVQNno2OHgvMy9NQTBHQ1NxR1NJYjNEUUVCQlFVQUE0SUJBUUJ4Ci1kN2FYWGhVRzFFTTZIcmtONlhPT1h5a3VESWdoOGlRaTcrRDlUQU53Ylh0UEprMGhpQ3F0Q2hPQzMxSGFvNzlVCi01RTIzWTJMc0ZQK0FwL2pMUnBaWXZ4a2s5a2NCamdjcDBHVHhQSEx1Mm43aWpzR3VqLzc2NUZHRzR3VFZUdHJGCi11VThaTkkzdUdvejJTakx5dk5MejdhdWxhdmFnY0x0MFAzMlR6VVJlekpINDdSTjhKeHJpRVhHYnhWZjBDQ05sCi1ady9oV3krZzV5VDEyQVQwZFl3WDFVZUZUNkpNWHd3RHJDRytXMXVCWTM1d2dUb3ZyaDVZWXZOYzFKRnB6aCtvCi12dnU5VHE3cnNYN1A0ZjcvZ3U4ZjRNTUR1ek1yeVV5R0NZTWV4UWtYSk5CejJTL2lnTEZidVgxVm1zTGxYOHptCi1pRHFXVjV4THRWdUxiZ1FHS2E0cQotLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQpkaWZmIC0tZ2l0IGEvdGVzdHMvZGF0YV9maWxlcy9jZXJ0X21kNS5jcnQgYi90ZXN0cy9kYXRhX2ZpbGVzL2NlcnRfbWQ1LmNydApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZTUxNGZkNi4uMDAwMDAwMAotLS0gYS90ZXN0cy9kYXRhX2ZpbGVzL2NlcnRfbWQ1LmNydAorKysgL2Rldi9udWxsCkBAIC0xLDIwICswLDAgQEAKLS0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQotTUlJRFB6Q0NBaWVnQXdJQkFnSUJCakFOQmdrcWhraUc5dzBCQVFRRkFEQTdNUXN3Q1FZRFZRUUdFd0pPVERFUgotTUE4R0ExVUVDZ3dJVUc5c1lYSlRVMHd4R1RBWEJnTlZCQU1NRUZCdmJHRnlVMU5NSUZSbGMzUWdRMEV3SGhjTgotTURBd01UQXhNVEl4TWpFeVdoY05NekF3TVRBeE1USXhNakV5V2pBOE1Rc3dDUVlEVlFRR0V3Sk9UREVSTUE4RwotQTFVRUNnd0lVRzlzWVhKVFUwd3hHakFZQmdOVkJBTU1FVkJ2YkdGeVUxTk1JRU5sY25RZ1RVUTFNSUlCSWpBTgotQmdrcWhraUc5dzBCQVFFRkFBT0NBUThBTUlJQkNnS0NBUUVBeUhURXpMbjV0WG5wUmRrVVlMQjl1NVB5YXg2ZgotTTYwTmo0bzhWbVhsM0VUWnpHYUZCOVg0SjdCS05kQmpuZ3B1RzdmYThINnI3Z3dRazRaSkdEVHpxQ3JTVi9VdQotMUM5M0tZUmhUWUpRajZlVlNIRDFiazJ5MVJQRDBocnQ1a1BxUWhUcmRPckE3Ui9VVjA2cDg2anQwdURCTUhFdwotTWpEVjAvWUkwRlpQUm83eVgvazlaNUdJTUM1Q3N0OTkrK1VNZC8vc01jQjRqNy9DZjhxdGJDSFdqZG1MYW81dgotNEp2NEVGYk1zNDRURmVZMEJHYkg3dmsyRG1xVjlnbWFCbWYwWlhINHlxU3hKZUQrUElzMUJHZTY0RTkyaGZ4LwotL0RacnRlbk5MUU5pVHJNOUFNK3ZkcUJwVm9OcTBxalU1MUJ4NXJVMkJYY0ZiWHZJNU1UOVROVWhYd0lEQVFBQgotbzAwd1N6QUpCZ05WSFJNRUFqQUFNQjBHQTFVZERnUVdCQlJ4b1FCemNrQXZWSFplTS94U2o3engzV3RHSVRBZgotQmdOVkhTTUVHREFXZ0JTMFd1U2xzOTdTVXZhNTFhYVZEK3Mrdk1mOS96QU5CZ2txaGtpRzl3MEJBUVFGQUFPQwotQVFFQUY0UWNNc2hWdFZiWWd2dlU3ZjJsV2FrdWJiQUlTTS9rK0ZXL2Y3dTYzbTBNU1NvU0ZlWWZsQk9DMVdmNAotaW1nREVuV2NXVEg1VjdzeHNMTm9neGZwZlR1RlVhS2ZIZVFtUmhBSzRVZ3FiREVzNGRadmdvM3daL3c5MkcwLwotUU5udEplZm5xYUZpSVRYWlRuNko4aHhlb0VxNFFidWNiV2dlWTZmVEF3WHRJdjQwQnZNT1Nha2t1SUZBeUl2VgotOTBWWTFqNHZueDAveHY1bElCQXhhaDFIZHRYaHF0RHUvc1VmZEN0V1g1U0NjVlV3d00zZ1o0UTFaZFdRbWx2RgotNzM3Wkc3WGFJTnhzRGFJMDRzSnhjN3F2dVJZaExkQ3dVUG5aTDVUR0VRSjhqTmEvMzllRWJua3ZzN2hiVFU5OAotNnFHOFVBWXNTSTdhTWUxajdEWnBrb1BMOXc9PQotLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQpkaWZmIC0tZ2l0IGEvdGVzdHMvZGF0YV9maWxlcy9jZXJ0X21kNS5jc3IgYi90ZXN0cy9kYXRhX2ZpbGVzL2NlcnRfbWQ1LmNzcgpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZGM2NzkyZC4uMDAwMDAwMAotLS0gYS90ZXN0cy9kYXRhX2ZpbGVzL2NlcnRfbWQ1LmNzcgorKysgL2Rldi9udWxsCkBAIC0xLDE2ICswLDAgQEAKLS0tLS0tQkVHSU4gQ0VSVElGSUNBVEUgUkVRVUVTVC0tLS0tCi1NSUlDZ1RDQ0FXa0NBUUF3UERFTE1Ba0dBMVVFQmhNQ1Rrd3hFVEFQQmdOVkJBb01DRkJ2YkdGeVUxTk1NUm93Ci1HQVlEVlFRRERCRlFiMnhoY2xOVFRDQkRaWEowSUUxRU5UQ0NBU0l3RFFZSktvWklodmNOQVFFQkJRQURnZ0VQCi1BRENDQVFvQ2dnRUJBTWgweE15NStiVjU2VVhaRkdDd2ZidVQ4bXNlbnpPdERZK0tQRlpsNWR4RTJjeG1oUWZWCi0rQ2V3U2pYUVk1NEtiaHUzMnZCK3ErNE1FSk9HU1JnMDg2Z3EwbGYxTHRRdmR5bUVZVTJDVUkrbmxVaHc5VzVOCi1zdFVUdzlJYTdlWkQ2a0lVNjNUcXdPMGYxRmRPcWZPbzdkTGd3VEJ4TURJdzFkUDJDTkJXVDBhTzhsLzVQV2VSCi1pREF1UXJMZmZmdmxESGYvN0RIQWVJKy93bi9Lcld3aDFvM1ppMnFPYitDYitCQld6TE9PRXhYbU5BUm14Kzc1Ci1OZzVxbGZZSm1nWm45R1Z4K01xa3NTWGcvanlMTlFSbnV1QlBkb1g4Zi93MmE3WHB6UzBEWWs2elBRRFByM2FnCi1hVmFEYXRLbzFPZFFjZWExTmdWM0JXMTd5T1RFL1V6VklWOENBd0VBQWFBQU1BMEdDU3FHU0liM0RRRUJCQVVBCi1BNElCQVFCTkV2eGduM1BjNjJoc01nTXozM0lkZU5wYXplSzNhZTJnd1FRRmdMN3FNcC9rc2tmcElLRjRtOGVCCi1Zcm1qS245Y3FzelJENjA2L1p0V1lEd0lOVVVjNk83YlFHbXBHSUZkN2JTUG0vcGJzYWpjNlI3a3pBL3REL2JrCi1HNXpxdTlCajB4OTJoRXdka3UwelkrSHg5UGdUMmRLOE03MmlGeWxIQndUM1gxdE55WGhoN3hXSjlSbEFmU3ZOCi1LZFM2czNrUmpLNHFjaXIwTW5mbFY1ZjJIRDZyMXY5Y1NWeW1lNmVWTHZPbXVwODl6MGNpaEg3TkR3REphWWJpCi1vcWNLWEZicm84LzJydUV6UFVTNlU4TkE5Y2psWDlEVzhidUl1NGNRQUNWeDVZZXZsd0tvYXlZZlhjUlJ2SUZvCi1PTGlQcTE0VHVaajNjMCtIRk94V2o0VUJBanZJCi0tLS0tLUVORCBDRVJUSUZJQ0FURSBSRVFVRVNULS0tLS0KZGlmZiAtLWdpdCBhL3Rlc3RzL2RhdGFfZmlsZXMvY2VydF9zaGExLmNydCBiL3Rlc3RzL2RhdGFfZmlsZXMvY2VydF9zaGExLmNydApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMWUyMzU4NS4uMDAwMDAwMAotLS0gYS90ZXN0cy9kYXRhX2ZpbGVzL2NlcnRfc2hhMS5jcnQKKysrIC9kZXYvbnVsbApAQCAtMSwyMCArMCwwIEBACi0tLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KLU1JSURRRENDQWlpZ0F3SUJBZ0lCQnpBTkJna3Foa2lHOXcwQkFRVUZBREE3TVFzd0NRWURWUVFHRXdKT1RERVIKLU1BOEdBMVVFQ2d3SVVHOXNZWEpUVTB3eEdUQVhCZ05WQkFNTUVGQnZiR0Z5VTFOTUlGUmxjM1FnUTBFd0hoY04KLU1Ua3dNakV3TVRRME5EQTJXaGNOTWprd01qRXdNVFEwTkRBMldqQTlNUXN3Q1FZRFZRUUdFd0pPVERFUk1BOEcKLUExVUVDZ3dJVUc5c1lYSlRVMHd4R3pBWkJnTlZCQU1NRWxCdmJHRnlVMU5NSUVObGNuUWdVMGhCTVRDQ0FTSXcKLURRWUpLb1pJaHZjTkFRRUJCUUFEZ2dFUEFEQ0NBUW9DZ2dFQkFLa0NIejFBYXRWVlU0djlOdTZDWlM0VllWNkoKLXY3am9SWkRiN29nV1V0UHhRMUJIbGhKWlpJZHIvU3ZnUnZsenZ0M1BrdUdSVysxbW9HK0pLWGxGZ05DRGF0VkIKLVEzZGZPWHdKQkVlQ3NGYzVjTzJqN0JVWkhxZ3pDRWZCQlVLcC9VekR0Ti9kQmg5TkVGRkFaM01URDBENGJZRWwKLVh3cXhVOFl3ZmhVNXJQbGE3bitTbnFZRlcrY1RsNFcxSTVMWjFDUUcxUWtsaVhVSDNhWWFqejhKR2I2dFpTeGsKLTY1V2IzUDVCWGhlbTJteGJhY3dDdWhRc0ZpU2NTdHpOMFBkU1ozUHhMYUFqL1g3ME1jb3RjTXFKQ3dUYkxxWlAKLWNHNmV6cjFZaWVKVFdaNXVXcEpsNG9nL0RKUVpvOTNsNkoyVkUrMHAyNnR3RXR4YXltc1hxMUtDVkxFQ0F3RUEKLUFhTk5NRXN3Q1FZRFZSMFRCQUl3QURBZEJnTlZIUTRFRmdRVUgzVFdQeW5CZEhSRk93VVNMRDJvdlVOWkFxWXcKLUh3WURWUjBqQkJnd0ZvQVV0RnJrcGJQZTBsTDJ1ZFdtbFEvclByekgvZjh3RFFZSktvWklodmNOQVFFRkJRQUQKLWdnRUJBRkFIdVdmak9wK0dhTTVkUDNOQmFVYXlYbWpicnNZNWZvL3lzZk9WVjl4aXB6YlBXdkUyQnU2NzlpVTEKLUVnKzVoTUU5VmxNbVFlakd6RzA5UmVYRSszMGd5aHRPM3ZXQThVMjFZcnNMM3lidlM2RVJFSEdLazIzOGJJQmgKLXlEUC9iMFZ1b05zUzN4Um45V3lIM1RSdTVyZTB2SzY4T1NrTElXUGQwMWZndmNmbDZZeVVZK1d1dVNycFljRHYKLW5yZ0t2Rlp3cy9FRTRSTmxkdFJDMUJsd3k0OTdBdG1XQlFXczY1emo1SmtOZE5ubTRKSnFYWkFBck5oMkdTWm8KLTgzQy8xWlNGck5vOUdPTnNDSjBHVkdFdDdJSzdGUHFYWVc3clhpMzBCUnNlMzN6aVU3UlBXR0RUMTNiaDlSZHoKLVJxc29aNWg1Vmp0SE9uTVVVRDk5Z0lXaW5CRT0KLS0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KZGlmZiAtLWdpdCBhL3Rlc3RzL2RhdGFfZmlsZXMvY2VydF9zaGEyMjQuY3J0IGIvdGVzdHMvZGF0YV9maWxlcy9jZXJ0X3NoYTIyNC5jcnQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGM4YTIwOWQuLjAwMDAwMDAKLS0tIGEvdGVzdHMvZGF0YV9maWxlcy9jZXJ0X3NoYTIyNC5jcnQKKysrIC9kZXYvbnVsbApAQCAtMSwyMCArMCwwIEBACi0tLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KLU1JSURRakNDQWlxZ0F3SUJBZ0lCQ0RBTkJna3Foa2lHOXcwQkFRNEZBREE3TVFzd0NRWURWUVFHRXdKT1RERVIKLU1BOEdBMVVFQ2d3SVVHOXNZWEpUVTB3eEdUQVhCZ05WQkFNTUVGQnZiR0Z5VTFOTUlGUmxjM1FnUTBFd0hoY04KLU1Ua3dNakV3TVRRME5EQTJXaGNOTWprd01qRXdNVFEwTkRBMldqQS9NUXN3Q1FZRFZRUUdFd0pPVERFUk1BOEcKLUExVUVDZ3dJVUc5c1lYSlRVMHd4SFRBYkJnTlZCQU1NRkZCdmJHRnlVMU5NSUVObGNuUWdVMGhCTWpJME1JSUIKLUlqQU5CZ2txaGtpRzl3MEJBUUVGQUFPQ0FROEFNSUlCQ2dLQ0FRRUFxUUlmUFVCcTFWVlRpLzAyN29KbExoVmgKLVhvbS91T2hGa052dWlCWlMwL0ZEVUVlV0VsbGtoMnY5SytCRytYTyszYytTNFpGYjdXYWdiNGtwZVVXQTBJTnEKLTFVRkRkMTg1ZkFrRVI0S3dWemx3N2FQc0ZSa2VxRE1JUjhFRlFxbjlUTU8wMzkwR0gwMFFVVUJuY3hNUFFQaHQKLWdTVmZDckZUeGpCK0ZUbXMrVnJ1ZjVLZXBnVmI1eE9YaGJVamt0blVKQWJWQ1NXSmRRZmRwaHFQUHdrWnZxMWwKLUxHVHJsWnZjL2tGZUY2YmFiRnRwekFLNkZDd1dKSnhLM00zUTkxSm5jL0V0b0NQOWZ2UXh5aTF3eW9rTEJOc3UKLXBrOXdicDdPdlZpSjRsTlpubTVha21YaWlEOE1sQm1qM2VYb25aVVQ3U25icTNBUzNGcktheGVyVW9KVXNRSUQKLUFRQUJvMDB3U3pBSkJnTlZIUk1FQWpBQU1CMEdBMVVkRGdRV0JCUWZkTlkvS2NGMGRFVTdCUklzUGFpOVExa0MKLXBqQWZCZ05WSFNNRUdEQVdnQlMwV3VTbHM5N1NVdmE1MWFhVkQrcyt2TWY5L3pBTkJna3Foa2lHOXcwQkFRNEYKLUFBT0NBUUVBVGRvN3A3ZG9rOGdjeFMwZFlHbHVYTU9zQUVBTHlIQWd2QUpTWlV0MHg4UnhlbUpmcHF1djRYRy8KLXJwcFFtdEE1YVBmNTlGbzB6NUdjUzB6ellGTFRRSWNMSEtudXVHMFc2eWpoeDNlKzVKMWhqTGJ2Ly8vdnZLR04KLWpxNTV6K0NBTmtyYWdNazZYUS90K2lYa2gvRnEwMEZTK3piZjFKTGFNWE9Mc3Q1ZGZ2M3VQUWFKSHd6WC9FYUUKLVZkb2duWHhXdWROUWdJdmVtaW5kazlUVFFvbjI3ekJTL3o2bndjQkNJWE1EZmVzQWpjSHVCQ2Z4bDZwb2ZLNkUKLTI4cXM0dXAvSmF5cHRHMkNYOThMR3NFeUFnZWd3VE1TWUdMSm9XY0hoclVjYkYwZk5PY1hQZ1FLR1RjWk80VGcKLXlQWUdia0c5RmpnYUFTYzJnVHJZVlBSWjZtWTE5Zz09Ci0tLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCmRpZmYgLS1naXQgYS90ZXN0cy9kYXRhX2ZpbGVzL2NlcnRfc2hhMjU2LmNydCBiL3Rlc3RzL2RhdGFfZmlsZXMvY2VydF9zaGEyNTYuY3J0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlNTZkNDI4Li4wMDAwMDAwCi0tLSBhL3Rlc3RzL2RhdGFfZmlsZXMvY2VydF9zaGEyNTYuY3J0CisrKyAvZGV2L251bGwKQEAgLTEsMjAgKzAsMCBAQAotLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCi1NSUlEUWpDQ0FpcWdBd0lCQWdJQkNUQU5CZ2txaGtpRzl3MEJBUXNGQURBN01Rc3dDUVlEVlFRR0V3Sk9UREVSCi1NQThHQTFVRUNnd0lVRzlzWVhKVFUwd3hHVEFYQmdOVkJBTU1FRkJ2YkdGeVUxTk1JRlJsYzNRZ1EwRXdIaGNOCi1NVGt3TWpFd01UUTBOREEyV2hjTk1qa3dNakV3TVRRME5EQTJXakEvTVFzd0NRWURWUVFHRXdKT1RERVJNQThHCi1BMVVFQ2d3SVVHOXNZWEpUVTB3eEhUQWJCZ05WQkFNTUZGQnZiR0Z5VTFOTUlFTmxjblFnVTBoQk1qVTJNSUlCCi1JakFOQmdrcWhraUc5dzBCQVFFRkFBT0NBUThBTUlJQkNnS0NBUUVBcVFJZlBVQnExVlZUaS8wMjdvSmxMaFZoCi1Yb20vdU9oRmtOdnVpQlpTMC9GRFVFZVdFbGxraDJ2OUsrQkcrWE8rM2MrUzRaRmI3V2FnYjRrcGVVV0EwSU5xCi0xVUZEZDE4NWZBa0VSNEt3VnpsdzdhUHNGUmtlcURNSVI4RUZRcW45VE1PMDM5MEdIMDBRVVVCbmN4TVBRUGh0Ci1nU1ZmQ3JGVHhqQitGVG1zK1ZydWY1S2VwZ1ZiNXhPWGhiVWprdG5VSkFiVkNTV0pkUWZkcGhxUFB3a1p2cTFsCi1MR1RybFp2Yy9rRmVGNmJhYkZ0cHpBSzZGQ3dXSkp4SzNNM1E5MUpuYy9FdG9DUDlmdlF4eWkxd3lva0xCTnN1Ci1wazl3YnA3T3ZWaUo0bE5abm01YWttWGlpRDhNbEJtajNlWG9uWlVUN1NuYnEzQVMzRnJLYXhlclVvSlVzUUlECi1BUUFCbzAwd1N6QUpCZ05WSFJNRUFqQUFNQjBHQTFVZERnUVdCQlFmZE5ZL0tjRjBkRVU3QlJJc1BhaTlRMWtDCi1wakFmQmdOVkhTTUVHREFXZ0JTMFd1U2xzOTdTVXZhNTFhYVZEK3Mrdk1mOS96QU5CZ2txaGtpRzl3MEJBUXNGCi1BQU9DQVFFQXVvOGtSRGRRajMrcmdxYno3YlMzWmZCVkNxZ2JRZnJ1UlpuY1AwczNJUUo2ZzdrNkJOZkNUTytOCi10SWduQ0RobmhqSzlEUzRsMUxUa1FKS2ZjZDZzZnV3QnhqSEtXR1pVcVRxSFdGbS9PNU1Kd2ZNcHhJMzA1eFhFCi1ldkR6aDhMSzFXM21vWDVPY1Q0YngzUXNZOUk0bnFYUWtPempHaWR4aE9YWUEyditYNU9oUnQzSUoyZHptUVF1Ci1CVlhuRGJ6dWNoVWZQNWFlQ3dXNmw3VlgrUkpPRTJ6bHFPNXl0MGVqVDAyRTQ0cXRDNXNCZjI0VjlrbzVMT1J3Ci0xSjdaazM0UXdzS3JTUFNHeE91b1dOd0gzZkpwZ1pRSW1LZ0pJUUNza3NKK0E0NUNLNml6MGttOG9UaUkzSG9vCi0yTHBFNlVOeDJNOGppWldWekgxTDR0a2c0ZmNDb1E9PQotLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQpkaWZmIC0tZ2l0IGEvdGVzdHMvZGF0YV9maWxlcy9jZXJ0X3NoYTM4NC5jcnQgYi90ZXN0cy9kYXRhX2ZpbGVzL2NlcnRfc2hhMzg0LmNydApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZjhlYzEwYi4uMDAwMDAwMAotLS0gYS90ZXN0cy9kYXRhX2ZpbGVzL2NlcnRfc2hhMzg0LmNydAorKysgL2Rldi9udWxsCkBAIC0xLDIwICswLDAgQEAKLS0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQotTUlJRFFqQ0NBaXFnQXdJQkFnSUJDakFOQmdrcWhraUc5dzBCQVF3RkFEQTdNUXN3Q1FZRFZRUUdFd0pPVERFUgotTUE4R0ExVUVDZ3dJVUc5c1lYSlRVMHd4R1RBWEJnTlZCQU1NRUZCdmJHRnlVMU5NSUZSbGMzUWdRMEV3SGhjTgotTVRrd01qRXdNVFEwTkRBMldoY05Namt3TWpFd01UUTBOREEyV2pBL01Rc3dDUVlEVlFRR0V3Sk9UREVSTUE4RwotQTFVRUNnd0lVRzlzWVhKVFUwd3hIVEFiQmdOVkJBTU1GRkJ2YkdGeVUxTk1JRU5sY25RZ1UwaEJNemcwTUlJQgotSWpBTkJna3Foa2lHOXcwQkFRRUZBQU9DQVE4QU1JSUJDZ0tDQVFFQXFRSWZQVUJxMVZWVGkvMDI3b0psTGhWaAotWG9tL3VPaEZrTnZ1aUJaUzAvRkRVRWVXRWxsa2gydjlLK0JHK1hPKzNjK1M0WkZiN1dhZ2I0a3BlVVdBMElOcQotMVVGRGQxODVmQWtFUjRLd1Z6bHc3YVBzRlJrZXFETUlSOEVGUXFuOVRNTzAzOTBHSDAwUVVVQm5jeE1QUVBodAotZ1NWZkNyRlR4akIrRlRtcytWcnVmNUtlcGdWYjV4T1hoYlVqa3RuVUpBYlZDU1dKZFFmZHBocVBQd2tadnExbAotTEdUcmxadmMva0ZlRjZiYWJGdHB6QUs2RkN3V0pKeEszTTNROTFKbmMvRXRvQ1A5ZnZReHlpMXd5b2tMQk5zdQotcGs5d2JwN092VmlKNGxOWm5tNWFrbVhpaUQ4TWxCbWozZVhvblpVVDdTbmJxM0FTM0ZyS2F4ZXJVb0pVc1FJRAotQVFBQm8wMHdTekFKQmdOVkhSTUVBakFBTUIwR0ExVWREZ1FXQkJRZmROWS9LY0YwZEVVN0JSSXNQYWk5UTFrQwotcGpBZkJnTlZIU01FR0RBV2dCUzBXdVNsczk3U1V2YTUxYWFWRCtzK3ZNZjkvekFOQmdrcWhraUc5dzBCQVF3RgotQUFPQ0FRRUFleUhtK2VtbzQvUUhxRVZLai9NWVBPc1BycmNyNU11cE5FN1dtb1VBN1NpbFZVbGNlSXk4QXBXUgotTVVkd25oN1VQa0NhNksxeXZheWtuRWJIekQyTHY5QkxFZjVBMS9hK0YvTG1GWGlWMGtYSUZ1ZTEzdSt6N2xhVgotTi9zL2pwaFBWZ2pQd1ppQzFadE9vRDdXdlNrSUluQjUzajRRM1ZDSDZFcFp4WnVETy91OENHQlEwZys5RXFobgotVzMrNEdGbnhVUFllTjE3dS9vcHQxNm1FUHg2V0ZiUmw5aHM1d1V2TkQvRkNERUovOXVWTmlWWWxQWXlIS3p6cQotZTNXWENITFlVS0dFU1FYKzg1SXJubWx3YkFiMzNiTStzQU02bmFGYWZYVFpFaW1lRXBYM2lZckh6aG9VN2FSNwotcGlvandBRStZYjNBYytIdTFmWTRDUk80WkhMNlpnPT0KLS0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KZGlmZiAtLWdpdCBhL3Rlc3RzL2RhdGFfZmlsZXMvY2VydF9zaGE1MTIuY3J0IGIvdGVzdHMvZGF0YV9maWxlcy9jZXJ0X3NoYTUxMi5jcnQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGIyMjU0ZmEuLjAwMDAwMDAKLS0tIGEvdGVzdHMvZGF0YV9maWxlcy9jZXJ0X3NoYTUxMi5jcnQKKysrIC9kZXYvbnVsbApAQCAtMSwyMCArMCwwIEBACi0tLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KLU1JSURRakNDQWlxZ0F3SUJBZ0lCQ3pBTkJna3Foa2lHOXcwQkFRMEZBREE3TVFzd0NRWURWUVFHRXdKT1RERVIKLU1BOEdBMVVFQ2d3SVVHOXNZWEpUVTB3eEdUQVhCZ05WQkFNTUVGQnZiR0Z5VTFOTUlGUmxjM1FnUTBFd0hoY04KLU1Ua3dNakV3TVRRME5EQTJXaGNOTWprd01qRXdNVFEwTkRBMldqQS9NUXN3Q1FZRFZRUUdFd0pPVERFUk1BOEcKLUExVUVDZ3dJVUc5c1lYSlRVMHd4SFRBYkJnTlZCQU1NRkZCdmJHRnlVMU5NSUVObGNuUWdVMGhCTlRFeU1JSUIKLUlqQU5CZ2txaGtpRzl3MEJBUUVGQUFPQ0FROEFNSUlCQ2dLQ0FRRUFxUUlmUFVCcTFWVlRpLzAyN29KbExoVmgKLVhvbS91T2hGa052dWlCWlMwL0ZEVUVlV0VsbGtoMnY5SytCRytYTyszYytTNFpGYjdXYWdiNGtwZVVXQTBJTnEKLTFVRkRkMTg1ZkFrRVI0S3dWemx3N2FQc0ZSa2VxRE1JUjhFRlFxbjlUTU8wMzkwR0gwMFFVVUJuY3hNUFFQaHQKLWdTVmZDckZUeGpCK0ZUbXMrVnJ1ZjVLZXBnVmI1eE9YaGJVamt0blVKQWJWQ1NXSmRRZmRwaHFQUHdrWnZxMWwKLUxHVHJsWnZjL2tGZUY2YmFiRnRwekFLNkZDd1dKSnhLM00zUTkxSm5jL0V0b0NQOWZ2UXh5aTF3eW9rTEJOc3UKLXBrOXdicDdPdlZpSjRsTlpubTVha21YaWlEOE1sQm1qM2VYb25aVVQ3U25icTNBUzNGcktheGVyVW9KVXNRSUQKLUFRQUJvMDB3U3pBSkJnTlZIUk1FQWpBQU1CMEdBMVVkRGdRV0JCUWZkTlkvS2NGMGRFVTdCUklzUGFpOVExa0MKLXBqQWZCZ05WSFNNRUdEQVdnQlMwV3VTbHM5N1NVdmE1MWFhVkQrcyt2TWY5L3pBTkJna3Foa2lHOXcwQkFRMEYKLUFBT0NBUUVBQm51cTdnTVU2RVdxY21FY2oyL3dpcU9GVUJlSDlybzB0bmk5Slp6YURBS2tCTXdvZUozUlAvNTkKLXdZOTJVWkMvU29XUG0weUxLMjVLVHd4SmhkNjQ1YTVaZVJrK3lpMVNHK29YTmdaRlMwM0YxT3JhdDBiTTV1OTQKLVJ0ekxSSW5HelR4aGxWUzhIUFJ5YTIrbkVhUFQ5WU5PMjV2T1JjelBEanRySTgyVW55c2FXaUt4MU9DUGhkUDMKLVp5U0FrWC96RTFVOFRlMCs5NDhDMHZtZzJhVFdDU2s1enV0cnlGZ0hINVVvam1tV0FrQkhwWDN0SW04Sk1SRzkKLXR2cDZmYklEYW4wTG1Tc1ZLOHJxNU9QU3dBS01zbzZHRjRJdXhvdS9qUDJnSStOdXRlblgyNndyZmZTamxQaVcKLUtrc0xOajhvTDZ2SVVhcDI4T2grR3dwaDAyYmlTUT09Ci0tLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCmRpZmYgLS1naXQgYS90ZXN0cy9kYXRhX2ZpbGVzL2NlcnRfdjFfd2l0aF9leHQuY3J0IGIvdGVzdHMvZGF0YV9maWxlcy9jZXJ0X3YxX3dpdGhfZXh0LmNydApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNGYwNzA0OC4uMDAwMDAwMAotLS0gYS90ZXN0cy9kYXRhX2ZpbGVzL2NlcnRfdjFfd2l0aF9leHQuY3J0CisrKyAvZGV2L251bGwKQEAgLTEsMjMgKzAsMCBAQAotLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCi1NSUlEelRDQ0FyVUNDUUM5N1VUSDBqN0NwREFOQmdrcWhraUc5dzBCQVFVRkFEQ0JoekVMTUFrR0ExVUVCaE1DCi1XRmd4Q3pBSkJnTlZCQWdUQWxoWU1Rc3dDUVlEVlFRSEV3SllXREVMTUFrR0ExVUVDaE1DV0ZneEN6QUpCZ05WCi1CQXNUQWxoWU1TY3dKUVlKS29aSWh2Y05BUWtCRmhoaFpHMXBia0JwWkdWdWRHbDBlUzFqYUdWamF5NXZjbWN4Ci1HekFaQmdOVkJBTVRFbWxrWlc1MGFYUjVMV05vWldOckxtOXlaekFlRncweE16QTNNRFF4TmpFM01ESmFGdzB4Ci1OREEzTURReE5qRTNNREphTUlHSE1Rc3dDUVlEVlFRR0V3SllXREVMTUFrR0ExVUVDQk1DV0ZneEN6QUpCZ05WCi1CQWNUQWxoWU1Rc3dDUVlEVlFRS0V3SllXREVMTUFrR0ExVUVDeE1DV0ZneEp6QWxCZ2txaGtpRzl3MEJDUUVXCi1HR0ZrYldsdVFHbGtaVzUwYVhSNUxXTm9aV05yTG05eVp6RWJNQmtHQTFVRUF4TVNhV1JsYm5ScGRIa3RZMmhsCi1ZMnN1YjNKbk1JSUJJakFOQmdrcWhraUc5dzBCQVFFRkFBT0NBUThBTUlJQkNnS0NBUUVBMXY4RnN3TXVnaE84Ci1td2tIV0FmK1hScEszM2tZUjBpZkJuT2J2azJSOVpURVVrL1RmRkVFRlZsZW41eGhpRTBnOGxiQ2o4WTVNenNnCi13WnNKdjVpbi9LbnJhWWI3VkMwYWgwang0c01raEtSY3lVV2ZqeUg4cjdGTkgxajFqZDA4WnBXSkdvdFl4eGFMCi1ldnFvbTFyekxOOTlKUE9id3lDQ2dHY1FqbFJWN2NNZklnd2x3SGIvSlBYT3kvaFlBZ2pyQ2pxdkJ1M25MNS9iCi1IRjBQeVZHaUtDRVFpSGhNQktOakF4elFyQ1VHeTdWcCszUWxJWXJzNi9tNUE5NnZvaFgvait3endJcDNRZ2lLCi1ZaGo1RTRaby9pUUxmNlJ3bDdwTDRSVGRUK2NyY3kxNDNtWWlTaE5ZK2F5bDlzbmZWSk5udUhhTWUxNWZWRXNQCi1YOWxEdmRCdlh3SURBUUFCb3o4d1BUQTdCZ05WSFJFRU5EQXlnaEpwWkdWdWRHbDBlUzFqYUdWamF5NXZjbWVDCi1GbmQzZHk1cFpHVnVkR2wwZVMxamFHVmpheTV2Y21lSEJDVTcvakF3RFFZSktvWklodmNOQVFFRkJRQURnZ0VCCi1BQVhVWG9XbFF4S3ZTQ1ZXaGVzOHgwM01DdWRlMG5EcURGSDFEUEdJS2VWZVdPdzg3blZuaStoSXZ5OElJNmhqCi01WmZHU0h1WmNpMkFnRWxBM3RYazJxRGNaL3VCWGUyVlY0SXdzZ1hLVVlTbHB6MXhvVTU1SW5UNGU3S2Rzc0VQCi1IT3lyVTAzRHptOEprMFBoZ0VKcFY0OHRrV1lvSnZadk9pd0cwZTQzVVBEdjl4cDhDOEVidkptbXVXa1VXbk5XCi1vMHlEbm9BT3hHZlVHU1VRMWd1VHBXQ29RRUtqM0RTNHY0bEkwa05tSm0rb1JFMnZ2MVhlYWxXRUhTdU1wUlpPCi1RaHk4V0ltWDNtdXc5OU1QNTc5dFk0NEQ1WjdwM2twaUMxYndWM3R6a0hkZjVta3JBYkZKSWZsaVB2ak1yUE13Ci0yZXlYWGlqRHNlYnBUMHczcnVNeGpIZz0KLS0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KZGlmZiAtLWdpdCBhL3Rlc3RzL2RhdGFfZmlsZXMvY2xpLXJzYS1zaGExLmNydCBiL3Rlc3RzL2RhdGFfZmlsZXMvY2xpLXJzYS1zaGExLmNydApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNjA5NTJlNi4uMDAwMDAwMAotLS0gYS90ZXN0cy9kYXRhX2ZpbGVzL2NsaS1yc2Etc2hhMS5jcnQKKysrIC9kZXYvbnVsbApAQCAtMSwyMCArMCwwIEBACi0tLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KLU1JSURQekNDQWllZ0F3SUJBZ0lCQkRBTkJna3Foa2lHOXcwQkFRVUZBREE3TVFzd0NRWURWUVFHRXdKT1RERVIKLU1BOEdBMVVFQ2d3SVVHOXNZWEpUVTB3eEdUQVhCZ05WQkFNTUVGQnZiR0Z5VTFOTUlGUmxjM1FnUTBFd0hoY04KLU1Ua3dNakV3TVRRME5EQTJXaGNOTWprd01qRXdNVFEwTkRBMldqQThNUXN3Q1FZRFZRUUdFd0pPVERFUk1BOEcKLUExVUVDZ3dJVUc5c1lYSlRVMHd4R2pBWUJnTlZCQU1NRVZCdmJHRnlVMU5NSUVOc2FXVnVkQ0F5TUlJQklqQU4KLUJna3Foa2lHOXcwQkFRRUZBQU9DQVE4QU1JSUJDZ0tDQVFFQXlIVEV6TG41dFhucFJka1VZTEI5dTVQeWF4NmYKLU02ME5qNG84Vm1YbDNFVFp6R2FGQjlYNEo3QktOZEJqbmdwdUc3ZmE4SDZyN2d3UWs0WkpHRFR6cUNyU1YvVXUKLTFDOTNLWVJoVFlKUWo2ZVZTSEQxYmsyeTFSUEQwaHJ0NWtQcVFoVHJkT3JBN1IvVVYwNnA4Nmp0MHVEQk1IRXcKLU1qRFYwL1lJMEZaUFJvN3lYL2s5WjVHSU1DNUNzdDk5KytVTWQvL3NNY0I0ajcvQ2Y4cXRiQ0hXamRtTGFvNXYKLTRKdjRFRmJNczQ0VEZlWTBCR2JIN3ZrMkRtcVY5Z21hQm1mMFpYSDR5cVN4SmVEK1BJczFCR2U2NEU5MmhmeC8KLS9EWnJ0ZW5OTFFOaVRyTTlBTSt2ZHFCcFZvTnEwcWpVNTFCeDVyVTJCWGNGYlh2STVNVDlUTlVoWHdJREFRQUIKLW8wMHdTekFKQmdOVkhSTUVBakFBTUIwR0ExVWREZ1FXQkJSeG9RQnpja0F2VkhaZU0veFNqN3p4M1d0R0lUQWYKLUJnTlZIU01FR0RBV2dCUzBXdVNsczk3U1V2YTUxYWFWRCtzK3ZNZjkvekFOQmdrcWhraUc5dzBCQVFVRkFBT0MKLUFRRUF2aFUxcTViS3BrdXhjWWpqQVNSQ0FSRFVaejZYMEJMci9qNVMxYnZkbkhDenlMdDMwd1ZpRE5uQXlPK1oKLUZXNVMzdCtXTVU4MG55dlorcStXUVd4OXU4eUhrUHgxTWtqdTlreHJCTmlGUlNLS3E0VTdudkIwYkVwMUNvaWoKLWthUGtLNmk0cXBQUTQrQ3JQeG9FUkllejR5cUpVWTV4YVZNYThKSUtFSlBVM1VYMVAzQUhDbUlNOTdJYlo1NW0KLXhxRzNndXMwaEw2STkzb3Uwa3hNRjFHNURKUDRrcGEvVUl2WEc5NjJFWFllS2ZCSzNNUFYveUwvNXRYcHlqcVgKLTltSDdEbUwzSGFhMkFWYWp4LzVOR3IvREt5TDJhTjRtRytJV08xTkVyVWZPb1IwYUlEVmQ3cTZMd0Q4RHVLbEkKLWU2ZGNTVGVZSjhDenp6UFhWZnduSGpEaS9nPT0KLS0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KZGlmZiAtLWdpdCBhL3Rlc3RzL2RhdGFfZmlsZXMvY2xpLXJzYS1zaGEyNTYuY3J0IGIvdGVzdHMvZGF0YV9maWxlcy9jbGktcnNhLXNoYTI1Ni5jcnQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDNiM2Q5YmMuLjAwMDAwMDAKLS0tIGEvdGVzdHMvZGF0YV9maWxlcy9jbGktcnNhLXNoYTI1Ni5jcnQKKysrIC9kZXYvbnVsbApAQCAtMSwyMCArMCwwIEBACi0tLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KLU1JSURQekNDQWllZ0F3SUJBZ0lCQkRBTkJna3Foa2lHOXcwQkFRc0ZBREE3TVFzd0NRWURWUVFHRXdKT1RERVIKLU1BOEdBMVVFQ2d3SVVHOXNZWEpUVTB3eEdUQVhCZ05WQkFNTUVGQnZiR0Z5VTFOTUlGUmxjM1FnUTBFd0hoY04KLU1Ua3dNakV3TVRRME5EQTJXaGNOTWprd01qRXdNVFEwTkRBMldqQThNUXN3Q1FZRFZRUUdFd0pPVERFUk1BOEcKLUExVUVDZ3dJVUc5c1lYSlRVMHd4R2pBWUJnTlZCQU1NRVZCdmJHRnlVMU5NSUVOc2FXVnVkQ0F5TUlJQklqQU4KLUJna3Foa2lHOXcwQkFRRUZBQU9DQVE4QU1JSUJDZ0tDQVFFQXlIVEV6TG41dFhucFJka1VZTEI5dTVQeWF4NmYKLU02ME5qNG84Vm1YbDNFVFp6R2FGQjlYNEo3QktOZEJqbmdwdUc3ZmE4SDZyN2d3UWs0WkpHRFR6cUNyU1YvVXUKLTFDOTNLWVJoVFlKUWo2ZVZTSEQxYmsyeTFSUEQwaHJ0NWtQcVFoVHJkT3JBN1IvVVYwNnA4Nmp0MHVEQk1IRXcKLU1qRFYwL1lJMEZaUFJvN3lYL2s5WjVHSU1DNUNzdDk5KytVTWQvL3NNY0I0ajcvQ2Y4cXRiQ0hXamRtTGFvNXYKLTRKdjRFRmJNczQ0VEZlWTBCR2JIN3ZrMkRtcVY5Z21hQm1mMFpYSDR5cVN4SmVEK1BJczFCR2U2NEU5MmhmeC8KLS9EWnJ0ZW5OTFFOaVRyTTlBTSt2ZHFCcFZvTnEwcWpVNTFCeDVyVTJCWGNGYlh2STVNVDlUTlVoWHdJREFRQUIKLW8wMHdTekFKQmdOVkhSTUVBakFBTUIwR0ExVWREZ1FXQkJSeG9RQnpja0F2VkhaZU0veFNqN3p4M1d0R0lUQWYKLUJnTlZIU01FR0RBV2dCUzBXdVNsczk3U1V2YTUxYWFWRCtzK3ZNZjkvekFOQmdrcWhraUc5dzBCQVFzRkFBT0MKLUFRRUFYaWR2MWQ0cExsQmlLV0VEOTVyTXljQmRnRGNneU5xSnhha0ZrUmZSeUEyeTFtbHlUbjd1QlhSa05MWTUKLVpGeks4MkdDamsyUTJPRDRSWlNDUEFKSnFMcEhIVTM0dDcxY2lmZnZ5MktLODFZdnJ4Y3pSaE1BRTY0aStxbmEKLXlQM1RkMlh1V0pSMDVQVlBvU2Vtc05FTHM5Z1d0dGRuWXkzY2UrRVkyWTBuN1JzaTc5ODJFZUxJQUE3SDZjYTQKLTJFcy9OVUgvL0paSlQzMk9QMGRvTXhlRFJBK3ZwbGtLcVRMTFdmN2RYMjZMSXJpQmtCYVJDZ1I1WXY5TEJQRmMKLU5PdHB6dS9MYnJZN1FGWEtKTUkrSlhEdWRDc09uOEtDbWlBNGQ2RW1pc3FmaDNWMzQ4NWw3SEVRTmN2TFR4bEQKLTZ6RFF5aTAveWtZVVlaa3dRVEsxTjJOdmx3PT0KLS0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KZGlmZiAtLWdpdCBhL3Rlc3RzL2RhdGFfZmlsZXMvY2xpLXJzYS1zaGEyNTYuY3J0LmRlciBiL3Rlc3RzL2RhdGFfZmlsZXMvY2xpLXJzYS1zaGEyNTYuY3J0LmRlcgpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZTI3MzllOS4uMDAwMDAwMAotLS0gYS90ZXN0cy9kYXRhX2ZpbGVzL2NsaS1yc2Etc2hhMjU2LmNydC5kZXIKKysrIC9kZXYvbnVsbApCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS90ZXN0cy9kYXRhX2ZpbGVzL2NsaS1yc2Etc2hhMjU2LmtleS5kZXIgYi90ZXN0cy9kYXRhX2ZpbGVzL2NsaS1yc2Etc2hhMjU2LmtleS5kZXIKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDhlZjVhMDQuLjAwMDAwMDAKLS0tIGEvdGVzdHMvZGF0YV9maWxlcy9jbGktcnNhLXNoYTI1Ni5rZXkuZGVyCisrKyAvZGV2L251bGwKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvdGVzdHMvZGF0YV9maWxlcy9jbGktcnNhLmtleSBiL3Rlc3RzL2RhdGFfZmlsZXMvY2xpLXJzYS5rZXkKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGViMWQzYmMuLjAwMDAwMDAKLS0tIGEvdGVzdHMvZGF0YV9maWxlcy9jbGktcnNhLmtleQorKysgL2Rldi9udWxsCkBAIC0xLDI3ICswLDAgQEAKLS0tLS0tQkVHSU4gUlNBIFBSSVZBVEUgS0VZLS0tLS0KLU1JSUVwQUlCQUFLQ0FRRUF5SFRFekxuNXRYbnBSZGtVWUxCOXU1UHlheDZmTTYwTmo0bzhWbVhsM0VUWnpHYUYKLUI5WDRKN0JLTmRCam5ncHVHN2ZhOEg2cjdnd1FrNFpKR0RUenFDclNWL1V1MUM5M0tZUmhUWUpRajZlVlNIRDEKLWJrMnkxUlBEMGhydDVrUHFRaFRyZE9yQTdSL1VWMDZwODZqdDB1REJNSEV3TWpEVjAvWUkwRlpQUm83eVgvazkKLVo1R0lNQzVDc3Q5OSsrVU1kLy9zTWNCNGo3L0NmOHF0YkNIV2pkbUxhbzV2NEp2NEVGYk1zNDRURmVZMEJHYkgKLTd2azJEbXFWOWdtYUJtZjBaWEg0eXFTeEplRCtQSXMxQkdlNjRFOTJoZngvL0RacnRlbk5MUU5pVHJNOUFNK3YKLWRxQnBWb05xMHFqVTUxQng1clUyQlhjRmJYdkk1TVQ5VE5VaFh3SURBUUFCQW9JQkFHZE50ZllEaWFwNmJ6c3QKLXloQ2lJOG05VHRyaFp3NE1pc2FFYU4vbGwzWFNqYU9HMmR2VjZ4TVpDTVYrNVRlWERIT0FablkxOFlpMTh2enoKLTRVdDJUbk5Geml6Q0VDWU5hQTJmU1QzV2dJbm54VWtWM1lYQXlQNkNOeEphQ212MmFBMHlGcjJrRlZTZWFLR3QKLXltdmxqTnAyTlZrdm03VGg4ZkJRQk83STdBWGh6NDNrMG1SN1htUGdld2U4QXBaT0czaHN0a09hTXZiV0F2V0EKLXpDWnVwZERqWllqT0pxbEE0ZUVBNEg4L3c3RjgzcjVDdWdlQkU4TGdFUkVqTFBpeWVqclU1SDFmdWJFWStoMGQKLWw1SFpCSjY4eWJUWGZRNVU5by9RS0EzZGQwdG9CRWhoZFJVREd6V3RqdndrRVFmcUYxcmVHV2ovdG9kL2dDcGYKLURGaTZYMEVDZ1lFQTR3T3YvcGpTQzN0eTZUdU92S1gyck9VaUJyTFhYdjJKU3habk1vTWlXSTVpcExRdCtSWVQKLVZQYWZML203RG42TWJ3amF5T2tjWmhCd2s1Q056NUE2UTRsSjY0TXEvbHFIem5SQ1FRMk1jMUc4ZXlERi9mWUwKLVplMnBMdndQOVZENWpUYzJtaURmdytNbnZKaHl3UlJMY2VtREZQOGs0aFFWdG04UE1wM1ptTkVDZ1lFQTRnejcKLXd6T2JSNGduOGliZTYxN3VRUFpqV3pVajlkVUhZZCtpbjFnd0JDSXJ0Tm5hUm45STlVL1E2dGVnUllwaWk0eXMKLWMxNzZObVUrdW15NlhtdVNLVjVxRDliU3BaV0cybkxGbnNsck4xNUxtM2ZoWnhvZU1OaEJhRURUbkxUMjZ5b2kKLTMzZ3AwbVNTV3k5NFpFcWlwbXMrVUxGNnNZMVp0Rlc2dHBHRm95OENnWUFRSGhubnZKZmxJczJreTRxMTBCNjAKLVpjeEZwM3J0RHBrcDBKeGhGTGhpaXpGcnVqTXRaU2pZTm01VTdLa2dQVkhoTEVMRVV2Q21PbktUdDRhcC92WjAKLUJ4Sk5lMUdaSDNwVzZTQXZHRFFwbDlzRzd1dS92VEZQK2xDeHVrbXp4QjBEcnJEY3ZvckVrS01vbTdaQ0NSdlcKLUtac1o2WWVIMlo4MUJhdVJqMjE4a1FLQmdRQ1VWL0RnS1AyOTg1eERUVDc5TjA4alVvM2hUUDVNVllDQ3VqLysKLVVlRXcxVHZaY3gzTEpieTdQNlhhZDZhMS9CcXZlYUd5RktJZkVGSWFCVUJJdGs4MDFzRERwRGFZYzRnTDAwWGMKLTdsRnVCSE9aa3hKWWxzczVRckdwdU9FbDlad1V0NUlyRkxCZFlhS3FOSHpOVkMxcENQZmIvSnlINkRyMkhVeHEKLWd4VXdBUUtCZ1FDY1U2RzJMOEFHOWQ5YzBVcE95TDF0TXZGZTVUdHcwS2psUVZkc2gxTVA2eWlnWW85RFl1d3UKLWJIRlZXMnIwZEJUcWVnUDIvS1RPeEt6YUhmQzFxZjBSR0RzVW9KQ05KcmQxY3dvQ0xHOFAyRUY0dzNPQnJLcXYKLTh1NHl0WTBGK1ZsYW5qNWxtM1Rhb0hTVkYxK05XUHlPVGl3ZXZJRUNHS3dTeHZsa2k0ZkRBQT09Ci0tLS0tLUVORCBSU0EgUFJJVkFURSBLRVktLS0tLQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3Rlc3RzL2RhdGFfZmlsZXMvY2xpLXJzYS5rZXkuZGVyIGIvdGVzdHMvZGF0YV9maWxlcy9jbGktcnNhLmtleS5kZXIKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDhlZjVhMDQuLjAwMDAwMDAKLS0tIGEvdGVzdHMvZGF0YV9maWxlcy9jbGktcnNhLmtleS5kZXIKKysrIC9kZXYvbnVsbApCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS90ZXN0cy9kYXRhX2ZpbGVzL2NsaS5vcGVuc3NsY29uZiBiL3Rlc3RzL2RhdGFfZmlsZXMvY2xpLm9wZW5zc2xjb25mCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhZTlhYjlkLi4wMDAwMDAwCi0tLSBhL3Rlc3RzL2RhdGFfZmlsZXMvY2xpLm9wZW5zc2xjb25mCisrKyAvZGV2L251bGwKQEAgLTEsNCArMCwwIEBACi1bY2xpLXJzYV0KLXN1YmplY3RLZXlJZGVudGlmaWVyPWhhc2gKLWF1dGhvcml0eUtleUlkZW50aWZpZXI9a2V5aWQ6YWx3YXlzLGlzc3VlcjphbHdheXMKLWJhc2ljQ29uc3RyYWludHMgPSBDQTpmYWxzZQpkaWZmIC0tZ2l0IGEvdGVzdHMvZGF0YV9maWxlcy9jbGkyLmNydCBiL3Rlc3RzL2RhdGFfZmlsZXMvY2xpMi5jcnQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGYyODdhMTkuLjAwMDAwMDAKLS0tIGEvdGVzdHMvZGF0YV9maWxlcy9jbGkyLmNydAorKysgL2Rldi9udWxsCkBAIC0xLDEzICswLDAgQEAKLS0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQotTUlJQjN6Q0NBV09nQXdJQkFnSUJEVEFNQmdncWhrak9QUVFEQWdVQU1ENHhDekFKQmdOVkJBWVRBazVNTVJFdwotRHdZRFZRUUtEQWhRYjJ4aGNsTlRUREVjTUJvR0ExVUVBd3dUVUc5c1lYSlRVMHdnVkdWemRDQkZReUJEUVRBZQotRncweE9UQXlNVEF4TkRRME1EQmFGdzB5T1RBeU1UQXhORFEwTURCYU1FRXhDekFKQmdOVkJBWVRBazVNTVJFdwotRHdZRFZRUUtEQWhRYjJ4aGNsTlRUREVmTUIwR0ExVUVBd3dXVUc5c1lYSlRVMHdnVkdWemRDQkRiR2xsYm5RZwotTWpCWk1CTUdCeXFHU000OUFnRUdDQ3FHU000OUF3RUhBMElBQkZmbHJyRnozOU9zdTVPNGdmOFNydTdtVTZ6TwotVlZQMk5BN01MdU5qSlF2Zm1PTHpYR0EybHNEVkdCUnc1WCtmMVV0RkdPV3diTlZjK0phUGgzQ2o1TWVqVFRCTAotTUFrR0ExVWRFd1FDTUFBd0hRWURWUjBPQkJZRUZIb0FYNFprL09CZDVSRVFPN0xtTzhRbVA4L2lNQjhHQTFVZAotSXdRWU1CYUFGSjF0SUNSSkFUOHJ5M2kxR2J4K0pNbmIrelo4TUF3R0NDcUdTTTQ5QkFNQ0JRQURhQUF3WlFJeAotQU1xbWU0REtNbGRVbHBsREVUOVE2RXB0cmU3dVVXS2hzTE9GK3pQa0tEbGZ6cElrSllFRmdjbG9ESEdZdzgwdQotSWdJd05mdHlQWHNhYlRxTU03aUVIZ1ZwWC9HUm96S2tsWTl5UUkvNWVvQTZnR1c3WStpbXVHUi9vYW81eVNPYgotYTlWawotLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQpkaWZmIC0tZ2l0IGEvdGVzdHMvZGF0YV9maWxlcy9jbGkyLmNydC5kZXIgYi90ZXN0cy9kYXRhX2ZpbGVzL2NsaTIuY3J0LmRlcgpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNTZhMGExYi4uMDAwMDAwMAotLS0gYS90ZXN0cy9kYXRhX2ZpbGVzL2NsaTIuY3J0LmRlcgorKysgL2Rldi9udWxsCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3Rlc3RzL2RhdGFfZmlsZXMvY2xpMi5rZXkgYi90ZXN0cy9kYXRhX2ZpbGVzL2NsaTIua2V5CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlNzQ3ZDA5Li4wMDAwMDAwCi0tLSBhL3Rlc3RzL2RhdGFfZmlsZXMvY2xpMi5rZXkKKysrIC9kZXYvbnVsbApAQCAtMSw1ICswLDAgQEAKLS0tLS0tQkVHSU4gRUMgUFJJVkFURSBLRVktLS0tLQotTUhjQ0FRRUVJUGIzaG1UeFozL21aSTN2eWs3cDNVM3dCZitXSW9wNmhEaGtGekpobUxjcW9Bb0dDQ3FHU000OQotQXdFSG9VUURRZ0FFVitXdXNYUGYwNnk3azdpQi94S3U3dVpUck01VlUvWTBEc3d1NDJNbEM5K1k0dk5jWURhVwotd05VWUZIRGxmNS9WUzBVWTViQnMxVno0bG8rSGNLUGt4dz09Ci0tLS0tLUVORCBFQyBQUklWQVRFIEtFWS0tLS0tCmRpZmYgLS1naXQgYS90ZXN0cy9kYXRhX2ZpbGVzL2NsaTIua2V5LmRlciBiL3Rlc3RzL2RhdGFfZmlsZXMvY2xpMi5rZXkuZGVyCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhY2JhNmEwLi4wMDAwMDAwCi0tLSBhL3Rlc3RzL2RhdGFfZmlsZXMvY2xpMi5rZXkuZGVyCisrKyAvZGV2L251bGwKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvdGVzdHMvZGF0YV9maWxlcy9jbHVzdGVyZnV6ei10ZXN0Y2FzZS1taW5pbWl6ZWQtZnV6el94NTA5Y3J0LTY2NjYwNTA4MzQ2NjEzNzYuY3J0LmRlciBiL3Rlc3RzL2RhdGFfZmlsZXMvY2x1c3RlcmZ1enotdGVzdGNhc2UtbWluaW1pemVkLWZ1enpfeDUwOWNydC02NjY2MDUwODM0NjYxMzc2LmNydC5kZXIKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDY0YTQ5MDAuLjAwMDAwMDAKLS0tIGEvdGVzdHMvZGF0YV9maWxlcy9jbHVzdGVyZnV6ei10ZXN0Y2FzZS1taW5pbWl6ZWQtZnV6el94NTA5Y3J0LTY2NjYwNTA4MzQ2NjEzNzYuY3J0LmRlcgorKysgL2Rldi9udWxsCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3Rlc3RzL2RhdGFfZmlsZXMvY3JsLWVjLXNoYTEucGVtIGIvdGVzdHMvZGF0YV9maWxlcy9jcmwtZWMtc2hhMS5wZW0KZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGY4MmQ5NDYuLjAwMDAwMDAKLS0tIGEvdGVzdHMvZGF0YV9maWxlcy9jcmwtZWMtc2hhMS5wZW0KKysrIC9kZXYvbnVsbApAQCAtMSwxMCArMCwwIEBACi0tLS0tLUJFR0lOIFg1MDkgQ1JMLS0tLS0KLU1JSUJiakNCOWdJQkFUQUpCZ2NxaGtqT1BRUUJNRDR4Q3pBSkJnTlZCQVlUQWs1TU1SRXdEd1lEVlFRS0RBaFEKLWIyeGhjbE5UVERFY01Cb0dBMVVFQXd3VFVHOXNZWEp6YzJ3Z1ZHVnpkQ0JGUXlCRFFSY05Nak13TlRFM01EY3gKLU5ETTVXaGNOTXpNd05URTNNRGN4TkRNNVdqQVVNQklDQVFvWERUSXpNRFV4TnpBM01UUXpPVnFnY2pCd01HNEcKLUExVWRJd1JuTUdXQUZKMXRJQ1JKQVQ4cnkzaTFHYngrSk1uYit6WjhvVUtrUURBK01Rc3dDUVlEVlFRR0V3Sk8KLVRERVJNQThHQTFVRUNnd0lVRzlzWVhKVFUwd3hIREFhQmdOVkJBTU1FMUJ2YkdGeWMzTnNJRlJsYzNRZ1JVTWcKLVEwR0NDUURCUStKK1lrUE02REFKQmdjcWhrak9QUVFCQTJnQU1HVUNNUUNSQXRYZDdrWGdpamxNWEhYcjZtMEIKLUl6RGJwQUF3RHdDSnRnT3phckY1aFpLR0RaZURwNnZwdEdaSzB5NDBOc29DTUFDeFJyWElWKzZLVUJpcEZhckkKLTM2eVhEb0JOb2wyeHpzdDZwOWZPZytwcmw2cDd2TzFzUllySUdnMVdKR0E1d1E9PQotLS0tLS1FTkQgWDUwOSBDUkwtLS0tLQpkaWZmIC0tZ2l0IGEvdGVzdHMvZGF0YV9maWxlcy9jcmwtZWMtc2hhMjU2LnBlbSBiL3Rlc3RzL2RhdGFfZmlsZXMvY3JsLWVjLXNoYTI1Ni5wZW0KZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGI5ZmFkNTAuLjAwMDAwMDAKLS0tIGEvdGVzdHMvZGF0YV9maWxlcy9jcmwtZWMtc2hhMjU2LnBlbQorKysgL2Rldi9udWxsCkBAIC0xLDEwICswLDAgQEAKLS0tLS0tQkVHSU4gWDUwOSBDUkwtLS0tLQotTUlJQmNUQ0I5d0lCQVRBS0JnZ3Foa2pPUFFRREFqQStNUXN3Q1FZRFZRUUdFd0pPVERFUk1BOEdBMVVFQ2d3SQotVUc5c1lYSlRVMHd4SERBYUJnTlZCQU1NRTFCdmJHRnljM05zSUZSbGMzUWdSVU1nUTBFWERUSXpNRFV4TnpBMwotTVRRME1Gb1hEVE16TURVeE56QTNNVFEwTUZvd0ZEQVNBZ0VLRncweU16QTFNVGN3TnpFME5EQmFvSEl3Y0RCdQotQmdOVkhTTUVaekJsZ0JTZGJTQWtTUUUvSzh0NHRSbThmaVRKMi9zMmZLRkNwRUF3UGpFTE1Ba0dBMVVFQmhNQwotVGt3eEVUQVBCZ05WQkFvTUNGQnZiR0Z5VTFOTU1Sd3dHZ1lEVlFRRERCTlFiMnhoY25OemJDQlVaWE4wSUVWRAotSUVOQmdna0F3VVBpZm1KRHpPZ3dDZ1lJS29aSXpqMEVBd0lEYVFBd1pnSXhBT0ZDcTR0UzdzMjcrS1NobWg0bgotemF2cExCUVVicXlqa0g5ZEprMGpnODYyWVhqaXJPdTlvQ09vV3RaUXo2L0xoUUl4QUpidE9Td0pOcTBGL0ZUcQotTlloUDdpYkUxamFkOVRiczZpZ3RaN1o5Tk43VjV1cG5uTDRTVkVUVTlwdnk5emgrdHc9PQotLS0tLS1FTkQgWDUwOSBDUkwtLS0tLQpkaWZmIC0tZ2l0IGEvdGVzdHMvZGF0YV9maWxlcy9jcmwtZnV0dXJlLnBlbSBiL3Rlc3RzL2RhdGFfZmlsZXMvY3JsLWZ1dHVyZS5wZW0KZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDE5MzgyMTkuLjAwMDAwMDAKLS0tIGEvdGVzdHMvZGF0YV9maWxlcy9jcmwtZnV0dXJlLnBlbQorKysgL2Rldi9udWxsCkBAIC0xLDExICswLDAgQEAKLS0tLS0tQkVHSU4gWDUwOSBDUkwtLS0tLQotTUlJQmd6Q0NBUW9DQVFFd0NRWUhLb1pJemowRUFUQStNUXN3Q1FZRFZRUUdFd0pPVERFUk1BOEdBMVVFQ2hNSQotVUc5c1lYSlRVMHd4SERBYUJnTlZCQU1URTFCdmJHRnljM05zSUZSbGMzUWdSVU1nUTBFWERUTXlNRE14TURFeAotTURVeE5Wb1hEVFF5TURNd09ERXhNRFV4TlZvd0tEQVNBZ0VLRncweE16QTVNalF4TmpJNE16aGFNQklDQVJZWAotRFRFME1ERXlNREV6TkRNd05WcWdjakJ3TUc0R0ExVWRJd1JuTUdXQUZKMXRJQ1JKQVQ4cnkzaTFHYngrSk1uYgotK3paOG9VS2tRREErTVFzd0NRWURWUVFHRXdKT1RERVJNQThHQTFVRUNoTUlVRzlzWVhKVFUwd3hIREFhQmdOVgotQkFNVEUxQnZiR0Z5YzNOc0lGUmxjM1FnUlVNZ1EwR0NDUURCUStKK1lrUE02REFKQmdjcWhrak9QUVFCQTJnQQotTUdVQ01RQ21zdk5zT1FkYkdwbXpwZVpsS1U5bERQNnl5V2VuckkvODlzd1pZb2dFM2NTUG9iNHRPemVZZzM4aQotb3I5MUlQZ0NNRDdOLzBRejZOcTJJZ0J0Wk9STGdzQTBsdEsrVzZBT1MrL0VJaHZHdVhWOHVndVV5WWtubDR2YgotK2NFK2xXeGhDUT09Ci0tLS0tLUVORCBYNTA5IENSTC0tLS0tCmRpZmYgLS1naXQgYS90ZXN0cy9kYXRhX2ZpbGVzL2NybC1mdXR1cmVSZXZvY2F0aW9uRGF0ZS5wZW0gYi90ZXN0cy9kYXRhX2ZpbGVzL2NybC1mdXR1cmVSZXZvY2F0aW9uRGF0ZS5wZW0KZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGYxNDdhOGYuLjAwMDAwMDAKLS0tIGEvdGVzdHMvZGF0YV9maWxlcy9jcmwtZnV0dXJlUmV2b2NhdGlvbkRhdGUucGVtCisrKyAvZGV2L251bGwKQEAgLTEsMTEgKzAsMCBAQAotLS0tLS1CRUdJTiBYNTA5IENSTC0tLS0tCi1NSUlCcXpDQmxEQU5CZ2txaGtpRzl3MEJBUVVGQURBN01Rc3dDUVlEVlFRR0V3Sk9UREVSTUE4R0ExVUVDZ3dJCi1VRzlzWVhKVFUwd3hHVEFYQmdOVkJBTU1FRkJ2YkdGeVUxTk1JRlJsYzNRZ1EwRVhEVEk0TVRJek1ESXpNREF3Ci1NRm9YRFRJNU1USXpNREl6TURBd01Gb3dLREFTQWdFQkZ3MHlPVEF4TURFeE1qUTBNRGRhTUJJQ0FRTVhEVEk1Ci1NREV3TVRFeU5EUXdOMW93RFFZSktvWklodmNOQVFFRkJRQURnZ0VCQUtiTDFtRHB6Q2JMSm1SWktNMktIUHZLCi1palM0VU1uYW56ellwTEF3b20xTkk2OXYyZkUxL0VmaVh2MGVtcEU2bUZxbkx3T0c0WlA4ZkVDZnhqTVhPMkVlCi1WaHhZaVJqbHk2cTloZklVazFlK045Y3Q4dW5ObkxFQnZmNlN5Znk5K0ZTTzNRL2FobGpwWWxYc1h4ZzYyV1hsCi05eHA1YjVPaysvMHNDdjBlTDV1RlFLWFFhOGhTOWRabzZweTdqdkZEUUMrd1ZhdTFtWGpRVzg1aVhNTG03dmlrCi00bFIra2ZabG9lcTFqSWJzeDhjZE1pMzJZVnQ3dWNjYXFvRmNqdHJkcldmR21pMHd2bERjOEs1SjBsNHRJeFpZCi05UCtUNGZ6U2dRTGRxR1ozeEFEaGVFYUdUUlZMLzVvZTVMNHpSSDMyQlpPTk1GQ2lqditqMVNwV0x4SEU4Y009Ci0tLS0tLUVORCBYNTA5IENSTC0tLS0tCmRpZmYgLS1naXQgYS90ZXN0cy9kYXRhX2ZpbGVzL2NybC1yc2EtcHNzLXNoYTEtYmFkc2lnbi5wZW0gYi90ZXN0cy9kYXRhX2ZpbGVzL2NybC1yc2EtcHNzLXNoYTEtYmFkc2lnbi5wZW0KZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGQyMzY5MTAuLjAwMDAwMDAKLS0tIGEvdGVzdHMvZGF0YV9maWxlcy9jcmwtcnNhLXBzcy1zaGExLWJhZHNpZ24ucGVtCisrKyAvZGV2L251bGwKQEAgLTEsMTQgKzAsMCBAQAotLS0tLS1CRUdJTiBYNTA5IENSTC0tLS0tCi1NSUlDSkRDQ0FRWUNBUUV3RXdZSktvWklodmNOQVFFS01BYWlCQUlDQU9vd096RUxNQWtHQTFVRUJoTUNUa3d4Ci1FVEFQQmdOVkJBb01DRkJ2YkdGeVUxTk1NUmt3RndZRFZRUUREQkJRYjJ4aGNsTlRUQ0JVWlhOMElFTkJGdzB5Ci1NekExTVRjd09EQTNORGxhRncwek16QTFNVGN3T0RBM05EbGFNQ2d3RWdJQkNoY05Nak13TlRFM01EZ3dOelE1Ci1XakFTQWdFV0Z3MHlNekExTVRjd09EQTNORGxhb0djd1pUQmpCZ05WSFNNRVhEQmFnQlMwV3VTbHM5N1NVdmE1Ci0xYWFWRCtzK3ZNZjkvNkUvcEQwd096RUxNQWtHQTFVRUJoTUNUa3d4RVRBUEJnTlZCQW9NQ0ZCdmJHRnlVMU5NCi1NUmt3RndZRFZRUUREQkJRYjJ4aGNsTlRUQ0JVWlhOMElFTkJnZ0VETUJNR0NTcUdTSWIzRFFFQkNqQUdvZ1FDCi1BZ0RxQTRJQkFRQ01VZXBFZkFYczFHM2hERTdyY0lQVC9BRnYvb0xRU1Z3UkU4TzJHNXI0ajBDZ3pONkNTR05pCi04cWZGVlg2ZjdkcytRTTRweEFYazVGSDRRSkprZXYwWkJReG1BL1pETEVGbW1DRWZQTXNBNjluRy8vWGVxK1h6Ci1aT3FKcEFld21Yb1AyVVV4VjVyUnBBSXI5ZzlOdkRrVFQwMTJlUUVwb0drSmxweE9sbjFWVytEazI0UENaRldmCi1OZjhHTVV6VXNYZlhtN1pkQ2V1YzhaRFlObWEwbldBTVI5Snc2cWFFaHlINEZkL3NjRnZYaUYvaTRjcFZwOFJrCi1NNzF3U3JDQzBwa0Z6dzQvYllNbmYwYUhsZS9sTmc1ZTc4U0FUKy82UEE4cFhMN1VyYzBJdWZPZnhDR3dxWTI3Ci1JWFNUclpKajRXZVFNazI4OXBJY2NNSGo1RFVTbzR1MAotLS0tLS1FTkQgWDUwOSBDUkwtLS0tLQpkaWZmIC0tZ2l0IGEvdGVzdHMvZGF0YV9maWxlcy9jcmwtcnNhLXBzcy1zaGExLnBlbSBiL3Rlc3RzL2RhdGFfZmlsZXMvY3JsLXJzYS1wc3Mtc2hhMS5wZW0KZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGMxMjljMGMuLjAwMDAwMDAKLS0tIGEvdGVzdHMvZGF0YV9maWxlcy9jcmwtcnNhLXBzcy1zaGExLnBlbQorKysgL2Rldi9udWxsCkBAIC0xLDE0ICswLDAgQEAKLS0tLS0tQkVHSU4gWDUwOSBDUkwtLS0tLQotTUlJQ0pEQ0NBUVlDQVFFd0V3WUpLb1pJaHZjTkFRRUtNQWFpQkFJQ0FPb3dPekVMTUFrR0ExVUVCaE1DVGt3eAotRVRBUEJnTlZCQW9NQ0ZCdmJHRnlVMU5NTVJrd0Z3WURWUVFEREJCUWIyeGhjbE5UVENCVVpYTjBJRU5CRncweQotTXpBMU1UY3dPREEzTkRsYUZ3MHpNekExTVRjd09EQTNORGxhTUNnd0VnSUJDaGNOTWpNd05URTNNRGd3TnpRNQotV2pBU0FnRVdGdzB5TXpBMU1UY3dPREEzTkRsYW9HY3daVEJqQmdOVkhTTUVYREJhZ0JTMFd1U2xzOTdTVXZhNQotMWFhVkQrcyt2TWY5LzZFL3BEMHdPekVMTUFrR0ExVUVCaE1DVGt3eEVUQVBCZ05WQkFvTUNGQnZiR0Z5VTFOTQotTVJrd0Z3WURWUVFEREJCUWIyeGhjbE5UVENCVVpYTjBJRU5CZ2dFRE1CTUdDU3FHU0liM0RRRUJDakFHb2dRQwotQWdEcUE0SUJBUUNNVWVwRWZBWHMxRzNoREU3cmNJUFQvQUZ2L29MUVNWd1JFOE8yRzVyNGowQ2d6TjZDU0dOaQotOHFmRlZYNmY3ZHMrUU00cHhBWGs1Rkg0UUpKa2V2MFpCUXhtQS9aRExFRm1tQ0VmUE1zQTY5bkcvL1hlcStYegotWk9xSnBBZXdtWG9QMlVVeFY1clJwQUlyOWc5TnZEa1RUMDEyZVFFcG9Ha0pscHhPbG4xVlcrRGsyNFBDWkZXZgotTmY4R01VelVzWGZYbTdaZENldWM4WkRZTm1hMG5XQU1SOUp3NnFhRWh5SDRGZC9zY0Z2WGlGL2k0Y3BWcDhSawotTTcxd1NyQ0MwcGtGenc0L2JZTW5mMGFIbGUvbE5nNWU3OFNBVCsvNlBBOHBYTDdVcmMwSXVmT2Z4Q0d3cVkyNwotSVhTVHJaSmo0V2VRTWsyODlwSWNjTUhqNURVU280dU8KLS0tLS0tRU5EIFg1MDkgQ1JMLS0tLS0KZGlmZiAtLWdpdCBhL3Rlc3RzL2RhdGFfZmlsZXMvY3JsLXJzYS1wc3Mtc2hhMjI0LnBlbSBiL3Rlc3RzL2RhdGFfZmlsZXMvY3JsLXJzYS1wc3Mtc2hhMjI0LnBlbQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMTEwOGIzZC4uMDAwMDAwMAotLS0gYS90ZXN0cy9kYXRhX2ZpbGVzL2NybC1yc2EtcHNzLXNoYTIyNC5wZW0KKysrIC9kZXYvbnVsbApAQCAtMSwxNiArMCwwIEBACi0tLS0tLUJFR0lOIFg1MDkgQ1JMLS0tLS0KLU1JSUNnakNDQVRVQ0FRRXdRZ1lKS29aSWh2Y05BUUVLTURXZ0R6QU5CZ2xnaGtnQlpRTUVBZ1FGQUtFY01Cb0cKLUNTcUdTSWIzRFFFQkNEQU5CZ2xnaGtnQlpRTUVBZ1FGQUtJRUFnSUE0akE3TVFzd0NRWURWUVFHRXdKT1RERVIKLU1BOEdBMVVFQ2d3SVVHOXNZWEpUVTB3eEdUQVhCZ05WQkFNTUVGQnZiR0Z5VTFOTUlGUmxjM1FnUTBFWERUSXoKLU1EVXhOekE0TURjME9Wb1hEVE16TURVeE56QTRNRGMwT1Zvd0tEQVNBZ0VLRncweU16QTFNVGN3T0RBM05EbGEKLU1CSUNBUllYRFRJek1EVXhOekE0TURjME9WcWdaekJsTUdNR0ExVWRJd1JjTUZxQUZMUmE1S1d6M3RKUzlyblYKLXBwVVA2ejY4eC8zL29UK2tQVEE3TVFzd0NRWURWUVFHRXdKT1RERVJNQThHQTFVRUNnd0lVRzlzWVhKVFUwd3gKLUdUQVhCZ05WQkFNTUVGQnZiR0Z5VTFOTUlGUmxjM1FnUTBHQ0FRTXdRZ1lKS29aSWh2Y05BUUVLTURXZ0R6QU4KLUJnbGdoa2dCWlFNRUFnUUZBS0VjTUJvR0NTcUdTSWIzRFFFQkNEQU5CZ2xnaGtnQlpRTUVBZ1FGQUtJRUFnSUEKLTRnT0NBUUVBTnNFbEs1cU1hdmNnQlhzcWd5c0NJSXdFUGorZFhkQk93WFcxN0hXaDJqY1N3QXNzRk5SeGhpSWMKLVBvVWpqMmZObGJPV1hMUG94WEJpdGdrSjMxVUFZQ3RlR1N2M2o1UDNXRXVyaVZ3Q0c4ODlKRW9NV245VTQrZjkKLWY1alNWTmZ5bnlpQU9pd3BBMFRyT2haT0FzOVNFajc0MlMxcHpoc2I5eWFPWGVRWE5uRHY4SFllM3VYOS9EOXcKLXlub3QrL0V3Q1lFdXZLOFhRNnFuVjY1ODhOSEVBZDl4K09jVjlweFdybVVFOE11ejFLZmZCd0Q1K1NPVytUYWoKLTRmS1FQY0tKb1JYT0t5TFhwT3o3eU1sLzZmQ2Y2aDNRai9INFlJLzJnc1dJMGlkdUtvWERzdVFrTUVkUFRadmsKLTdQODhZSzMvNE1SZWFaUzNzRHloaFVyb2pFTFBYdz09Ci0tLS0tLUVORCBYNTA5IENSTC0tLS0tCmRpZmYgLS1naXQgYS90ZXN0cy9kYXRhX2ZpbGVzL2NybC1yc2EtcHNzLXNoYTI1Ni5wZW0gYi90ZXN0cy9kYXRhX2ZpbGVzL2NybC1yc2EtcHNzLXNoYTI1Ni5wZW0KZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDI2Zjc5MzUuLjAwMDAwMDAKLS0tIGEvdGVzdHMvZGF0YV9maWxlcy9jcmwtcnNhLXBzcy1zaGEyNTYucGVtCisrKyAvZGV2L251bGwKQEAgLTEsMTYgKzAsMCBAQAotLS0tLS1CRUdJTiBYNTA5IENSTC0tLS0tCi1NSUlDZ2pDQ0FUVUNBUUV3UWdZSktvWklodmNOQVFFS01EV2dEekFOQmdsZ2hrZ0JaUU1FQWdFRkFLRWNNQm9HCi1DU3FHU0liM0RRRUJDREFOQmdsZ2hrZ0JaUU1FQWdFRkFLSUVBZ0lBM2pBN01Rc3dDUVlEVlFRR0V3Sk9UREVSCi1NQThHQTFVRUNnd0lVRzlzWVhKVFUwd3hHVEFYQmdOVkJBTU1FRkJ2YkdGeVUxTk1JRlJsYzNRZ1EwRVhEVEl6Ci1NRFV4TnpBNE1EYzBPVm9YRFRNek1EVXhOekE0TURjME9Wb3dLREFTQWdFS0Z3MHlNekExTVRjd09EQTNORGxhCi1NQklDQVJZWERUSXpNRFV4TnpBNE1EYzBPVnFnWnpCbE1HTUdBMVVkSXdSY01GcUFGTFJhNUtXejN0SlM5cm5WCi1wcFVQNno2OHgvMy9vVCtrUFRBN01Rc3dDUVlEVlFRR0V3Sk9UREVSTUE4R0ExVUVDZ3dJVUc5c1lYSlRVMHd4Ci1HVEFYQmdOVkJBTU1FRkJ2YkdGeVUxTk1JRlJsYzNRZ1EwR0NBUU13UWdZSktvWklodmNOQVFFS01EV2dEekFOCi1CZ2xnaGtnQlpRTUVBZ0VGQUtFY01Cb0dDU3FHU0liM0RRRUJDREFOQmdsZ2hrZ0JaUU1FQWdFRkFLSUVBZ0lBCi0zZ09DQVFFQUhMenZSRjBSVlFMNDhaR1ZGblRrMW5zT0hYVkhTMFVWTUl0c0lMdXJYSjRYck9nTjFJN2lUenUyCi13WU50Z3IrVDE1andzUGRnVStHZzMxMjd2YjJEam0wSVVYMGRDZllwU0ZSVXY4QmphSzk2MlpQak0wcmtXaEM2Ci1KVVRXU0xNQU15NFNjcWNvQzdlNHZ1TjJoNGtQT3psdkRCSWh6V0tBMDMrdGFBdHVJT1dqWFp1Mi9DeWVnZ3hzCi1vWEFSS0k4QkV2NGI5NHh3aUZKTW9NdXpjWUFrdURJSDRNUllBTlZnT1Mvem5jQ1JTOUQ1WmVyZm9CdDcwTEtYCi1uekp0VDRhMFhveGJVSmVVOE1aMGZSNWFBSFVRdWxBUEE5Q01tQnNIa1N4N3B6QUFoQ3d4L3ZYYm5XUHloQTZHCi1YRzZnQ0tjRFI1UFpRdlFOZ2kyOVNMbGhSVFQ1VEE9PQotLS0tLS1FTkQgWDUwOSBDUkwtLS0tLQpkaWZmIC0tZ2l0IGEvdGVzdHMvZGF0YV9maWxlcy9jcmwtcnNhLXBzcy1zaGEzODQucGVtIGIvdGVzdHMvZGF0YV9maWxlcy9jcmwtcnNhLXBzcy1zaGEzODQucGVtCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0NTQzMWYwLi4wMDAwMDAwCi0tLSBhL3Rlc3RzL2RhdGFfZmlsZXMvY3JsLXJzYS1wc3Mtc2hhMzg0LnBlbQorKysgL2Rldi9udWxsCkBAIC0xLDE2ICswLDAgQEAKLS0tLS0tQkVHSU4gWDUwOSBDUkwtLS0tLQotTUlJQ2dqQ0NBVFVDQVFFd1FnWUpLb1pJaHZjTkFRRUtNRFdnRHpBTkJnbGdoa2dCWlFNRUFnSUZBS0VjTUJvRwotQ1NxR1NJYjNEUUVCQ0RBTkJnbGdoa2dCWlFNRUFnSUZBS0lFQWdJQXpqQTdNUXN3Q1FZRFZRUUdFd0pPVERFUgotTUE4R0ExVUVDZ3dJVUc5c1lYSlRVMHd4R1RBWEJnTlZCQU1NRUZCdmJHRnlVMU5NSUZSbGMzUWdRMEVYRFRJegotTURVeE56QTRNRGMxTUZvWERUTXpNRFV4TnpBNE1EYzFNRm93S0RBU0FnRUtGdzB5TXpBMU1UY3dPREEzTlRCYQotTUJJQ0FSWVhEVEl6TURVeE56QTRNRGMxTUZxZ1p6QmxNR01HQTFVZEl3UmNNRnFBRkxSYTVLV3ozdEpTOXJuVgotcHBVUDZ6Njh4LzMvb1Qra1BUQTdNUXN3Q1FZRFZRUUdFd0pPVERFUk1BOEdBMVVFQ2d3SVVHOXNZWEpUVTB3eAotR1RBWEJnTlZCQU1NRUZCdmJHRnlVMU5NSUZSbGMzUWdRMEdDQVFNd1FnWUpLb1pJaHZjTkFRRUtNRFdnRHpBTgotQmdsZ2hrZ0JaUU1FQWdJRkFLRWNNQm9HQ1NxR1NJYjNEUUVCQ0RBTkJnbGdoa2dCWlFNRUFnSUZBS0lFQWdJQQotemdPQ0FRRUFuWnZNbzNubUtYUFYrcTRtMUNkTUE3alV0ZGFuSkJIREF2MitMWkxxNFQxUXB5TitubUxFQjF5WAotQVJOOC81UHg0N3ptN1h5Wnc2SEkxSWwzNE1qYmxBS0lQQlZYb3N3ajRZTFJjZWlqd2lHMWJ4a2gxS3ozbGNWMAotR0NOUE5vN3RNUGlpOWlBVFdsVnpXQkN6eDJyTG10L3lzMER0TlJDTUlTT1lHVzFIa3l1TzI4ZHdBNm5VSndTUwotRGRqcjNpaWxhdm5CZHB6ZGRIOUFpTjVGbTBzZnJGQkFOeDc5UXlwMC9yOGhxcnY3clQzM21hZVJLajNTNGU5RwotenBPNnVIUEFoOU9ibzkzRHhwS3BYb013eERpSHYrYndIUE80SjFZT2lyeXkvS1ptSGh6VU1QZnZQMDlwR2c5ZgotekdPL2JPeWlIR0gwTGY0RjlKVk14cGZpdGRidHdnPT0KLS0tLS0tRU5EIFg1MDkgQ1JMLS0tLS0KZGlmZiAtLWdpdCBhL3Rlc3RzL2RhdGFfZmlsZXMvY3JsLXJzYS1wc3Mtc2hhNTEyLnBlbSBiL3Rlc3RzL2RhdGFfZmlsZXMvY3JsLXJzYS1wc3Mtc2hhNTEyLnBlbQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNzFmMmI3Yy4uMDAwMDAwMAotLS0gYS90ZXN0cy9kYXRhX2ZpbGVzL2NybC1yc2EtcHNzLXNoYTUxMi5wZW0KKysrIC9kZXYvbnVsbApAQCAtMSwxNiArMCwwIEBACi0tLS0tLUJFR0lOIFg1MDkgQ1JMLS0tLS0KLU1JSUNnakNDQVRVQ0FRRXdRZ1lKS29aSWh2Y05BUUVLTURXZ0R6QU5CZ2xnaGtnQlpRTUVBZ01GQUtFY01Cb0cKLUNTcUdTSWIzRFFFQkNEQU5CZ2xnaGtnQlpRTUVBZ01GQUtJRUFnSUF2akE3TVFzd0NRWURWUVFHRXdKT1RERVIKLU1BOEdBMVVFQ2d3SVVHOXNZWEpUVTB3eEdUQVhCZ05WQkFNTUVGQnZiR0Z5VTFOTUlGUmxjM1FnUTBFWERUSXoKLU1EVXhOekE0TURjMU1Gb1hEVE16TURVeE56QTRNRGMxTUZvd0tEQVNBZ0VLRncweU16QTFNVGN3T0RBM05UQmEKLU1CSUNBUllYRFRJek1EVXhOekE0TURjMU1GcWdaekJsTUdNR0ExVWRJd1JjTUZxQUZMUmE1S1d6M3RKUzlyblYKLXBwVVA2ejY4eC8zL29UK2tQVEE3TVFzd0NRWURWUVFHRXdKT1RERVJNQThHQTFVRUNnd0lVRzlzWVhKVFUwd3gKLUdUQVhCZ05WQkFNTUVGQnZiR0Z5VTFOTUlGUmxjM1FnUTBHQ0FRTXdRZ1lKS29aSWh2Y05BUUVLTURXZ0R6QU4KLUJnbGdoa2dCWlFNRUFnTUZBS0VjTUJvR0NTcUdTSWIzRFFFQkNEQU5CZ2xnaGtnQlpRTUVBZ01GQUtJRUFnSUEKLXZnT0NBUUVBdE1QcFFNZXQ5QmZNUkxnMEFXOVFmTDNRa2t0Vjd4aysrQnFZRk9ZeW5CaXF4alFINEFLdTN3VTgKLWVpR2QzKzJ4TnBRZDIvc0c3VVVObzFWbmw5Z0NIUmlUNGJqZTYrQ2R2dnFhWktTZ3Btc2l6dGJnQkFZT1JyaUYKLWZsS09LT09RVHhhaWtxSjR0N3ZwNzI3Sm1zdEFEdXlpelRnT0JFMGszVjFnbGFzOEIwRzEyMlloZWVIRjAyUzQKLSszM05zczRoYmZiVGlsUjBSY2NPYXFpWHpGOWJrRnNUbEQ1S2d5VUZaYkZ0ZHkrMXpIWkxuUlVBSkExSG1EZVAKLXI1cDJtSnhLd1htWnpMbncvRlBhOGZVSDY2NVRLWWswOEF1SXBOK1ZIZFB3aUJvWUhKMllaSldnTSsxcUhxMXkKLXRseW9BT0M2YmVxc2g5T2Z4Y1FaYUVpV2JVSTl5UT09Ci0tLS0tLUVORCBYNTA5IENSTC0tLS0tCmRpZmYgLS1naXQgYS90ZXN0cy9kYXRhX2ZpbGVzL2NybC5wZW0gYi90ZXN0cy9kYXRhX2ZpbGVzL2NybC5wZW0KZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDVhMWJkZDMuLjAwMDAwMDAKLS0tIGEvdGVzdHMvZGF0YV9maWxlcy9jcmwucGVtCisrKyAvZGV2L251bGwKQEAgLTEsMTEgKzAsMCBAQAotLS0tLS1CRUdJTiBYNTA5IENSTC0tLS0tCi1NSUlCcXpDQmxEQU5CZ2txaGtpRzl3MEJBUVVGQURBN01Rc3dDUVlEVlFRR0V3Sk9UREVSTUE4R0ExVUVDZ3dJCi1VRzlzWVhKVFUwd3hHVEFYQmdOVkJBTU1FRkJ2YkdGeVUxTk1JRlJsYzNRZ1EwRVhEVEl6TURVeE56QTNNVFF6Ci1PRm9YRFRNek1EVXhOekEzTVRRek9Gb3dLREFTQWdFQkZ3MHlNekExTVRjd056RTBNemhhTUJJQ0FRTVhEVEl6Ci1NRFV4TnpBM01UUXpPRm93RFFZSktvWklodmNOQVFFRkJRQURnZ0VCQUVLR2YvS1ludjNFcEZpRXNQaWk1ZjNTCi1DRWdEME5MNDRyWUlVN245b0JJcWdxeFA5M3REZXF3cXZ2L29EWUJBNDFmdWd4VTYzbk81cUtuNHhzektOL3cwCi1lM0dEZzZpaEZGejJ3TzZORTM3V2ZuM2xWSXZNYmJvTnlNR3FIMUNUcVRiTmNzYW04RGh2SUxDTWtHNjBrVjY2Ci1wU1ZHVklKZnREekUrMzNtVXVuZFFNWXo0d040UUpGR1JTZkhXNzQ1aW93RjllamlQc2ZBbjRnTzllTERyUm1BCi1DMG9lZE55UkxqNmpmR1J0YVFkZGxDakNBR3dObElKQmUvSWhpeGFmVzlnOGRlR1BISnU4UlNsSi9RNzdwZ2p4Ci03V2Njd0N6K2RXUCt1cWk4ZndnZXJIWWRUamlBdkZWdTFZZDRLQTVXVG5kekkzd3pKd2JkWlowOE9mRExteVU9Ci0tLS0tLUVORCBYNTA5IENSTC0tLS0tCmRpZmYgLS1naXQgYS90ZXN0cy9kYXRhX2ZpbGVzL2NybF9jYXRfZWMtcnNhLnBlbSBiL3Rlc3RzL2RhdGFfZmlsZXMvY3JsX2NhdF9lYy1yc2EucGVtCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjYWZhMWQ0Li4wMDAwMDAwCi0tLSBhL3Rlc3RzL2RhdGFfZmlsZXMvY3JsX2NhdF9lYy1yc2EucGVtCisrKyAvZGV2L251bGwKQEAgLTEsMjEgKzAsMCBAQAotLS0tLS1CRUdJTiBYNTA5IENSTC0tLS0tCi1NSUlCY1RDQjl3SUJBVEFLQmdncWhrak9QUVFEQWpBK01Rc3dDUVlEVlFRR0V3Sk9UREVSTUE4R0ExVUVDZ3dJCi1VRzlzWVhKVFUwd3hIREFhQmdOVkJBTU1FMUJ2YkdGeWMzTnNJRlJsYzNRZ1JVTWdRMEVYRFRJek1EVXhOekEzCi1NVFEwTUZvWERUTXpNRFV4TnpBM01UUTBNRm93RkRBU0FnRUtGdzB5TXpBMU1UY3dOekUwTkRCYW9ISXdjREJ1Ci1CZ05WSFNNRVp6QmxnQlNkYlNBa1NRRS9LOHQ0dFJtOGZpVEoyL3MyZktGQ3BFQXdQakVMTUFrR0ExVUVCaE1DCi1Ua3d4RVRBUEJnTlZCQW9NQ0ZCdmJHRnlVMU5NTVJ3d0dnWURWUVFEREJOUWIyeGhjbk56YkNCVVpYTjBJRVZECi1JRU5CZ2drQXdVUGlmbUpEek9nd0NnWUlLb1pJemowRUF3SURhUUF3WmdJeEFPRkNxNHRTN3MyNytLU2htaDRuCi16YXZwTEJRVWJxeWprSDlkSmswamc4NjJZWGppck91OW9DT29XdFpRejYvTGhRSXhBSmJ0T1N3Sk5xMEYvRlRxCi1OWWhQN2liRTFqYWQ5VGJzNmlndFo3WjlOTjdWNXVwbm5MNFNWRVRVOXB2eTl6aCt0dz09Ci0tLS0tLUVORCBYNTA5IENSTC0tLS0tCi0tLS0tLUJFR0lOIFg1MDkgQ1JMLS0tLS0KLU1JSUJxekNCbERBTkJna3Foa2lHOXcwQkFRVUZBREE3TVFzd0NRWURWUVFHRXdKT1RERVJNQThHQTFVRUNnd0kKLVVHOXNZWEpUVTB3eEdUQVhCZ05WQkFNTUVGQnZiR0Z5VTFOTUlGUmxjM1FnUTBFWERUSXpNRFV4TnpBM01UUXoKLU9Gb1hEVE16TURVeE56QTNNVFF6T0Zvd0tEQVNBZ0VCRncweU16QTFNVGN3TnpFME16aGFNQklDQVFNWERUSXoKLU1EVXhOekEzTVRRek9Gb3dEUVlKS29aSWh2Y05BUUVGQlFBRGdnRUJBRUtHZi9LWW52M0VwRmlFc1BpaTVmM1MKLUNFZ0QwTkw0NHJZSVU3bjlvQklxZ3F4UDkzdERlcXdxdnYvb0RZQkE0MWZ1Z3hVNjNuTzVxS240eHN6S04vdzAKLWUzR0RnNmloRkZ6MndPNk5FMzdXZm4zbFZJdk1iYm9OeU1HcUgxQ1RxVGJOY3NhbThEaHZJTENNa0c2MGtWNjYKLXBTVkdWSUpmdER6RSszM21VdW5kUU1ZejR3TjRRSkZHUlNmSFc3NDVpb3dGOWVqaVBzZkFuNGdPOWVMRHJSbUEKLUMwb2VkTnlSTGo2amZHUnRhUWRkbENqQ0FHd05sSUpCZS9JaGl4YWZXOWc4ZGVHUEhKdThSU2xKL1E3N3BnangKLTdXY2N3Q3orZFdQK3VxaThmd2dlckhZZFRqaUF2RlZ1MVlkNEtBNVdUbmR6STN3ekp3YmRaWjA4T2ZETG15VT0KLS0tLS0tRU5EIFg1MDkgQ1JMLS0tLS0KZGlmZiAtLWdpdCBhL3Rlc3RzL2RhdGFfZmlsZXMvY3JsX2NhdF9lY2Z1dC1yc2EucGVtIGIvdGVzdHMvZGF0YV9maWxlcy9jcmxfY2F0X2VjZnV0LXJzYS5wZW0KZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGY1MDNhNWIuLjAwMDAwMDAKLS0tIGEvdGVzdHMvZGF0YV9maWxlcy9jcmxfY2F0X2VjZnV0LXJzYS5wZW0KKysrIC9kZXYvbnVsbApAQCAtMSwyMiArMCwwIEBACi0tLS0tLUJFR0lOIFg1MDkgQ1JMLS0tLS0KLU1JSUJnekNDQVFvQ0FRRXdDUVlIS29aSXpqMEVBVEErTVFzd0NRWURWUVFHRXdKT1RERVJNQThHQTFVRUNoTUkKLVVHOXNZWEpUVTB3eEhEQWFCZ05WQkFNVEUxQnZiR0Z5YzNOc0lGUmxjM1FnUlVNZ1EwRVhEVE15TURNeE1ERXgKLU1EVXhOVm9YRFRReU1ETXdPREV4TURVeE5Wb3dLREFTQWdFS0Z3MHhNekE1TWpReE5qSTRNemhhTUJJQ0FSWVgKLURURTBNREV5TURFek5ETXdOVnFnY2pCd01HNEdBMVVkSXdSbk1HV0FGSjF0SUNSSkFUOHJ5M2kxR2J4K0pNbmIKLSt6WjhvVUtrUURBK01Rc3dDUVlEVlFRR0V3Sk9UREVSTUE4R0ExVUVDaE1JVUc5c1lYSlRVMHd4SERBYUJnTlYKLUJBTVRFMUJ2YkdGeWMzTnNJRlJsYzNRZ1JVTWdRMEdDQ1FEQlErSitZa1BNNkRBSkJnY3Foa2pPUFFRQkEyZ0EKLU1HVUNNUUNtc3ZOc09RZGJHcG16cGVabEtVOWxEUDZ5eVdlbnJJLzg5c3daWW9nRTNjU1BvYjR0T3plWWczOGkKLW9yOTFJUGdDTUQ3Ti8wUXo2TnEySWdCdFpPUkxnc0EwbHRLK1c2QU9TKy9FSWh2R3VYVjh1Z3VVeVlrbmw0dmIKLStjRStsV3hoQ1E9PQotLS0tLS1FTkQgWDUwOSBDUkwtLS0tLQotLS0tLS1CRUdJTiBYNTA5IENSTC0tLS0tCi1NSUlCcXpDQmxEQU5CZ2txaGtpRzl3MEJBUVVGQURBN01Rc3dDUVlEVlFRR0V3Sk9UREVSTUE4R0ExVUVDZ3dJCi1VRzlzWVhKVFUwd3hHVEFYQmdOVkJBTU1FRkJ2YkdGeVUxTk1JRlJsYzNRZ1EwRVhEVEU1TURJd05qRTJNelEwCi1ObG9YRFRJNU1ESXdOakUyTXpRME5sb3dLREFTQWdFQkZ3MHhNVEF5TVRJeE1qUTBNRGRhTUJJQ0FRTVhEVEV4Ci1NREl4TWpFeU5EUXdOMW93RFFZSktvWklodmNOQVFFRkJRQURnZ0VCQUdIa1JIR0R6Mkhzb2lYemZKREJwa2ZnCi1JK3lLMzRPOXpvSE15R2NEWmJGOWZqNE5WeXlOQTZYQ2dZM0lnUVllM2JvQTFlZE82KzhJbWpxaVpqWUsrR1d0Ci00bmU3WWhhcFJGQW9GYktRWTVoZ3k4bWxwU1JsTmZtUlZWQ0RES2Fubk1hYzR0UWZmMUxDRkhOOG1zay91RzFiCi1XSFdBc0w2ZHpMVm9qaGJVRlk2bVpUYjZucWptNVlncWNzTnN6MzduNGR5ckNEZnRCOTlGUWRFL2FBZWMyUlhQCi1KZ3k5RG5ZNWpNb3RQcUhMWnRNeWZWTkVvaXZEYjdZSkE1VnY2TlN5aVlWVGp5V3lUSE5Sc0ZFWFJ0SHFqcHFzCi1vWmRCZ0xaQUFRc1V2dVZwTWJES1E0RnJaak9hT1cveEx0S1BsaC9ITkE1cDdoTnR3SWlDQUl2cDd1UXRpMHc9Ci0tLS0tLUVORCBYNTA5IENSTC0tLS0tCmRpZmYgLS1naXQgYS90ZXN0cy9kYXRhX2ZpbGVzL2NybF9jYXRfcnNhLWVjLnBlbSBiL3Rlc3RzL2RhdGFfZmlsZXMvY3JsX2NhdF9yc2EtZWMucGVtCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5MmVjY2NjLi4wMDAwMDAwCi0tLSBhL3Rlc3RzL2RhdGFfZmlsZXMvY3JsX2NhdF9yc2EtZWMucGVtCisrKyAvZGV2L251bGwKQEAgLTEsMjEgKzAsMCBAQAotLS0tLS1CRUdJTiBYNTA5IENSTC0tLS0tCi1NSUlCcXpDQmxEQU5CZ2txaGtpRzl3MEJBUVVGQURBN01Rc3dDUVlEVlFRR0V3Sk9UREVSTUE4R0ExVUVDZ3dJCi1VRzlzWVhKVFUwd3hHVEFYQmdOVkJBTU1FRkJ2YkdGeVUxTk1JRlJsYzNRZ1EwRVhEVEl6TURVeE56QTNNVFF6Ci1PRm9YRFRNek1EVXhOekEzTVRRek9Gb3dLREFTQWdFQkZ3MHlNekExTVRjd056RTBNemhhTUJJQ0FRTVhEVEl6Ci1NRFV4TnpBM01UUXpPRm93RFFZSktvWklodmNOQVFFRkJRQURnZ0VCQUVLR2YvS1ludjNFcEZpRXNQaWk1ZjNTCi1DRWdEME5MNDRyWUlVN245b0JJcWdxeFA5M3REZXF3cXZ2L29EWUJBNDFmdWd4VTYzbk81cUtuNHhzektOL3cwCi1lM0dEZzZpaEZGejJ3TzZORTM3V2ZuM2xWSXZNYmJvTnlNR3FIMUNUcVRiTmNzYW04RGh2SUxDTWtHNjBrVjY2Ci1wU1ZHVklKZnREekUrMzNtVXVuZFFNWXo0d040UUpGR1JTZkhXNzQ1aW93RjllamlQc2ZBbjRnTzllTERyUm1BCi1DMG9lZE55UkxqNmpmR1J0YVFkZGxDakNBR3dObElKQmUvSWhpeGFmVzlnOGRlR1BISnU4UlNsSi9RNzdwZ2p4Ci03V2Njd0N6K2RXUCt1cWk4ZndnZXJIWWRUamlBdkZWdTFZZDRLQTVXVG5kekkzd3pKd2JkWlowOE9mRExteVU9Ci0tLS0tLUVORCBYNTA5IENSTC0tLS0tCi0tLS0tLUJFR0lOIFg1MDkgQ1JMLS0tLS0KLU1JSUJjVENCOXdJQkFUQUtCZ2dxaGtqT1BRUURBakErTVFzd0NRWURWUVFHRXdKT1RERVJNQThHQTFVRUNnd0kKLVVHOXNZWEpUVTB3eEhEQWFCZ05WQkFNTUUxQnZiR0Z5YzNOc0lGUmxjM1FnUlVNZ1EwRVhEVEl6TURVeE56QTMKLU1UUTBNRm9YRFRNek1EVXhOekEzTVRRME1Gb3dGREFTQWdFS0Z3MHlNekExTVRjd056RTBOREJhb0hJd2NEQnUKLUJnTlZIU01FWnpCbGdCU2RiU0FrU1FFL0s4dDR0Um04ZmlUSjIvczJmS0ZDcEVBd1BqRUxNQWtHQTFVRUJoTUMKLVRrd3hFVEFQQmdOVkJBb01DRkJ2YkdGeVUxTk1NUnd3R2dZRFZRUUREQk5RYjJ4aGNuTnpiQ0JVWlhOMElFVkQKLUlFTkJnZ2tBd1VQaWZtSkR6T2d3Q2dZSUtvWkl6ajBFQXdJRGFRQXdaZ0l4QU9GQ3E0dFM3czI3K0tTaG1oNG4KLXphdnBMQlFVYnF5amtIOWRKazBqZzg2MllYamlyT3U5b0NPb1d0WlF6Ni9MaFFJeEFKYnRPU3dKTnEwRi9GVHEKLU5ZaFA3aWJFMWphZDlUYnM2aWd0WjdaOU5ON1Y1dXBubkw0U1ZFVFU5cHZ5OXpoK3R3PT0KLS0tLS0tRU5EIFg1MDkgQ1JMLS0tLS0KZGlmZiAtLWdpdCBhL3Rlc3RzL2RhdGFfZmlsZXMvY3JsX2NhdF9yc2FiYWRwZW0tZWMucGVtIGIvdGVzdHMvZGF0YV9maWxlcy9jcmxfY2F0X3JzYWJhZHBlbS1lYy5wZW0KZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGEwMzVlMTguLjAwMDAwMDAKLS0tIGEvdGVzdHMvZGF0YV9maWxlcy9jcmxfY2F0X3JzYWJhZHBlbS1lYy5wZW0KKysrIC9kZXYvbnVsbApAQCAtMSwyMSArMCwwIEBACi0tLS0tLUJFR0lOIFg1MDkgQ1JMLS0tLS0KLU1JSUJxekNCbERBTkJna3Foa2lHOXcwQkFRVUZBREE3TVFzd0NRWURWUVFHRXdKT1RERVJNQThHQTFVRUNoTUkKLVVHOXNZWEpUVTB3eEdUQVhCZ05WQkFNVEVGQnZiR0Z5VTFOTUlGUmxjM1FnUTBFWERURXhNREl5TURFd01qSTEKLU9Wb1hEVEU1TVRFeU5URXdNakkxT1Zvd0tEQVNBZ0VCRncweE1UQXlNVEl4TkRRME1EZGFNQklDQVFNWERURXgKLU1ESXhNakUwTkRRd04xb3dEUVlKS29aSWh2Y05BUUVGQlFBRGdnRUJBSll1V2RLUGRibE1WV0NueHBNbmNodUwKLWRxV3pLMkJBMFJlbENhR2pweHV3WDNObUxEbSs1aEtqYS9ESnhhUnFUT2Y0UlNDM2tjWDhDZElsZHNMTzk2ZHoKLS8vd0FRZEZQRGh5NkFGVDV2S1RPOEl0UEhEYjdxRk9xRnFwZUppNVhOMXlvWkdUQjFlaTBtZ0QzeEJhS2JwNlUKLXlDT1pKU0lGb210N3BpVDRHY2dXVkhMVW1weUhERGVvZE5oWVByTjBqZjJtcitFQ2Q5ZlFKWWR6MXFtMFh4K1EKLU5iS1hEaVBSbVBYMHFWbGVDWlNlU3AxSkFtVTRHb0NPKzk2cVFVcGpnbGwrNnhXeWEzVU5qNjFmOXNoMFp6cjcKLTV1ZzJMWm81dUJNL0xwTlIxSzNUTHhOQ2NnN3VVUFRuOXIxNDNkN2l2SmhQbDN0RUpuNFBYanY2bWxMb09nVQotLS0tLS1FTkQgWDUwOSBDUkwtLS0tLQotLS0tLS1CRUdJTiBYNTA5IENSTC0tLS0tCi1NSUlCY1RDQjl3SUJBVEFLQmdncWhrak9QUVFEQWpBK01Rc3dDUVlEVlFRR0V3Sk9UREVSTUE4R0ExVUVDaE1JCi1VRzlzWVhKVFUwd3hIREFhQmdOVkJBTVRFMUJ2YkdGeWMzTnNJRlJsYzNRZ1JVTWdRMEVYRFRFek1Ea3lOREUyCi1NekV3T0ZvWERUSXpNRGt5TWpFMk16RXdPRm93RkRBU0FnRUtGdzB4TXpBNU1qUXhOakk0TXpoYW9ISXdjREJ1Ci1CZ05WSFNNRVp6QmxnQlNkYlNBa1NRRS9LOHQ0dFJtOGZpVEoyL3MyZktGQ3BFQXdQakVMTUFrR0ExVUVCaE1DCi1Ua3d4RVRBUEJnTlZCQW9UQ0ZCdmJHRnlVMU5NTVJ3d0dnWURWUVFERXhOUWIyeGhjbk56YkNCVVpYTjBJRVZECi1JRU5CZ2drQXdVUGlmbUpEek9nd0NnWUlLb1pJemowRUF3SURhUUF3WmdJeEFLdVE2ODRzN2d5aHR4S0pyNkxuCi1TMkJRMDJmMWpqUEhyWlZkWGFadm0zQzV0R2kyY0trb0sxYU1peUMzTHNSQ3VBSXhBSU1oajBUbWN1SVpyNWZYCi1nNVJCeUQ3elVuWkJwb0VBZGd4Rnk0SlBKMklWaVdPUGVrU0doOGIvSlkxVk5TNlpidz09Ci0tLS0tLUVORCBYNTA5IENSTC0tLS0tCmRpZmYgLS1naXQgYS90ZXN0cy9kYXRhX2ZpbGVzL2NybF9leHBpcmVkLnBlbSBiL3Rlc3RzL2RhdGFfZmlsZXMvY3JsX2V4cGlyZWQucGVtCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjZjYwYWU0Li4wMDAwMDAwCi0tLSBhL3Rlc3RzL2RhdGFfZmlsZXMvY3JsX2V4cGlyZWQucGVtCisrKyAvZGV2L251bGwKQEAgLTEsMTEgKzAsMCBAQAotLS0tLS1CRUdJTiBYNTA5IENSTC0tLS0tCi1NSUlCcXpDQmxEQU5CZ2txaGtpRzl3MEJBUVVGQURBN01Rc3dDUVlEVlFRR0V3Sk9UREVSTUE4R0ExVUVDaE1JCi1VRzlzWVhKVFUwd3hHVEFYQmdOVkJBTVRFRkJ2YkdGeVUxTk1JRlJsYzNRZ1EwRVhEVEV4TURJeU1ERXdNalF4Ci1PVm9YRFRFeE1ESXlNREV4TWpReE9Wb3dLREFTQWdFQkZ3MHhNVEF5TVRJeE5EUTBNRGRhTUJJQ0FRTVhEVEV4Ci1NREl4TWpFME5EUXdOMW93RFFZSktvWklodmNOQVFFRkJRQURnZ0VCQUtnUDFYbUNJUGJmWTEvVU8rU1ZGUWlyCi1qQXJaOTRRblFkb2FuNHRKMjlkOERtVHhKK3o5L0t5V05vR2VPd2M5UC8yR1FRYVphaFFPQnIwZjZsWWQ2N0N0Ci13RlZoL1EyekY4RmdSY3JRVjd1L3ZKTTMzUTJ5RXNRa01HbE03ckU1bEM5NzJ2VUtXdS9OS3E4Yk45Vy90V3haCi1TRmJ2VFhwdjAyNGFJMElSdWRwT0NBTG5JeThTRmhWYjIvNTJJTjJ1UjZxckZpekRleE1FZFNja2dwSHVKekdTCi1JaUFOaElNbjVMZFFZSkZqUGdCelFVMTJ0RGRnemNweHRHaFQxMHk0dVFyZStVYlNqdytpVnltbDNpc3N3NTlrCi1PU21rV0ZiMDZMYW1SQzIxNUpBTW9rM1lRTzVSbnhDUjhFanFQY0pyKzcrTzlhMU8xKyt5aWFpdGc0YlVqRUE9Ci0tLS0tLUVORCBYNTA5IENSTC0tLS0tCmRpZmYgLS1naXQgYS90ZXN0cy9kYXRhX2ZpbGVzL2NybF9zaGEyNTYucGVtIGIvdGVzdHMvZGF0YV9maWxlcy9jcmxfc2hhMjU2LnBlbQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYzNjYTI1Ni4uMDAwMDAwMAotLS0gYS90ZXN0cy9kYXRhX2ZpbGVzL2NybF9zaGEyNTYucGVtCisrKyAvZGV2L251bGwKQEAgLTEsMTEgKzAsMCBAQAotLS0tLS1CRUdJTiBYNTA5IENSTC0tLS0tCi1NSUlCcXpDQmxEQU5CZ2txaGtpRzl3MEJBUXNGQURBN01Rc3dDUVlEVlFRR0V3Sk9UREVSTUE4R0ExVUVDaE1JCi1VRzlzWVhKVFUwd3hHVEFYQmdOVkJBTVRFRkJ2YkdGeVUxTk1JRlJsYzNRZ1EwRVhEVEV4TURJeE1qRTBORFF3Ci1OMW9YRFRFeE1EUXhNekUwTkRRd04xb3dLREFTQWdFQkZ3MHhNVEF5TVRJeE5EUTBNRGRhTUJJQ0FRTVhEVEV4Ci1NREl4TWpFME5EUXdOMW93RFFZSktvWklodmNOQVFFTEJRQURnZ0VCQUc0bUJCZ3dmTnluQ1lZTDJDRW5xb3JlCi1tZ0twQzMydEI2V2lVQnU5ZmlnY3ZkTjNuU1gvMXdyQjhycGlFOFIwNEM4b1NGZ2x3aG90SkNubFdzeTQydGpiCi0wcGswV3VpemxuMFBGTWMvT3lwcVJOTmh3eDMxU0hINDJXNEt6T05pcXZxM24vV2tIM00xWW5pUjFabk1seXZpCi1sSmlvUW42WkFvYzZPNm1NUDFKOWR1S1lZaGlNQU9WOTkyUEQxL2lxWHcrallOMzFSd2RJUzgvbUd6SXM0YWtlCi1FZHZpd2hNM0U0L3NWYk5PV0NPblpGWVY0bSt5TkFFZTI5SEwxVkt3NlVYaXhCY3pjdCticnFYTlZEM1U2VDBGCi01b3ZSNkJUZWZaTzE3ZVQ1MkR1a2U1UlpHRFV5UU9HeXd4T1lLSTVXK0ZjT1lkcCtVNUlkazM5OXRBejJNZHc9Ci0tLS0tLUVORCBYNTA5IENSTC0tLS0tCmRpZmYgLS1naXQgYS90ZXN0cy9kYXRhX2ZpbGVzL2NydF9jYXRfcnNhZXhwLWVjLnBlbSBiL3Rlc3RzL2RhdGFfZmlsZXMvY3J0X2NhdF9yc2FleHAtZWMucGVtCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0Zjc0YzlhLi4wMDAwMDAwCi0tLSBhL3Rlc3RzL2RhdGFfZmlsZXMvY3J0X2NhdF9yc2FleHAtZWMucGVtCisrKyAvZGV2L251bGwKQEAgLTEsMjEgKzAsMCBAQAotLS0tLS1CRUdJTiBYNTA5IENSTC0tLS0tCi1NSUlCcXpDQmxEQU5CZ2txaGtpRzl3MEJBUVVGQURBN01Rc3dDUVlEVlFRR0V3Sk9UREVSTUE4R0ExVUVDaE1JCi1VRzlzWVhKVFUwd3hHVEFYQmdOVkJBTVRFRkJ2YkdGeVUxTk1JRlJsYzNRZ1EwRVhEVEV4TURJeU1ERXdNalF4Ci1PVm9YRFRFeE1ESXlNREV4TWpReE9Wb3dLREFTQWdFQkZ3MHhNVEF5TVRJeE5EUTBNRGRhTUJJQ0FRTVhEVEV4Ci1NREl4TWpFME5EUXdOMW93RFFZSktvWklodmNOQVFFRkJRQURnZ0VCQUtnUDFYbUNJUGJmWTEvVU8rU1ZGUWlyCi1qQXJaOTRRblFkb2FuNHRKMjlkOERtVHhKK3o5L0t5V05vR2VPd2M5UC8yR1FRYVphaFFPQnIwZjZsWWQ2N0N0Ci13RlZoL1EyekY4RmdSY3JRVjd1L3ZKTTMzUTJ5RXNRa01HbE03ckU1bEM5NzJ2VUtXdS9OS3E4Yk45Vy90V3haCi1TRmJ2VFhwdjAyNGFJMElSdWRwT0NBTG5JeThTRmhWYjIvNTJJTjJ1UjZxckZpekRleE1FZFNja2dwSHVKekdTCi1JaUFOaElNbjVMZFFZSkZqUGdCelFVMTJ0RGRnemNweHRHaFQxMHk0dVFyZStVYlNqdytpVnltbDNpc3N3NTlrCi1PU21rV0ZiMDZMYW1SQzIxNUpBTW9rM1lRTzVSbnhDUjhFanFQY0pyKzcrTzlhMU8xKyt5aWFpdGc0YlVqRUE9Ci0tLS0tLUVORCBYNTA5IENSTC0tLS0tCi0tLS0tLUJFR0lOIFg1MDkgQ1JMLS0tLS0KLU1JSUJjVENCOXdJQkFUQUtCZ2dxaGtqT1BRUURBakErTVFzd0NRWURWUVFHRXdKT1RERVJNQThHQTFVRUNoTUkKLVVHOXNZWEpUVTB3eEhEQWFCZ05WQkFNVEUxQnZiR0Z5YzNOc0lGUmxjM1FnUlVNZ1EwRVhEVEV6TURreU5ERTIKLU16RXdPRm9YRFRJek1Ea3lNakUyTXpFd09Gb3dGREFTQWdFS0Z3MHhNekE1TWpReE5qSTRNemhhb0hJd2NEQnUKLUJnTlZIU01FWnpCbGdCU2RiU0FrU1FFL0s4dDR0Um04ZmlUSjIvczJmS0ZDcEVBd1BqRUxNQWtHQTFVRUJoTUMKLVRrd3hFVEFQQmdOVkJBb1RDRkJ2YkdGeVUxTk1NUnd3R2dZRFZRUURFeE5RYjJ4aGNuTnpiQ0JVWlhOMElFVkQKLUlFTkJnZ2tBd1VQaWZtSkR6T2d3Q2dZSUtvWkl6ajBFQXdJRGFRQXdaZ0l4QUt1UTY4NHM3Z3lodHhLSnI2TG4KLVMyQlEwMmYxampQSHJaVmRYYVp2bTNDNXRHaTJjS2tvSzFhTWl5QzNMc1JDdUFJeEFJTWhqMFRtY3VJWnI1ZlgKLWc1UkJ5RDd6VW5aQnBvRUFkZ3hGeTRKUEoySVZpV09QZWtTR2g4Yi9KWTFWTlM2WmJ3PT0KLS0tLS0tRU5EIFg1MDkgQ1JMLS0tLS0KZGlmZiAtLWdpdCBhL3Rlc3RzL2RhdGFfZmlsZXMvZGguMTAwMC5wZW0gYi90ZXN0cy9kYXRhX2ZpbGVzL2RoLjEwMDAucGVtCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxNzJmMTlmLi4wMDAwMDAwCi0tLSBhL3Rlc3RzL2RhdGFfZmlsZXMvZGguMTAwMC5wZW0KKysrIC9kZXYvbnVsbApAQCAtMSwzNCArMCwwIEBACi0KLVJlY29tbWVuZGVkIGtleSBsZW5ndGg6IDE2MCBiaXRzCi0KLWdlbmVyYXRvcjoKLQkyMzo4NDozYzowZDo1NTo4YzpiOTo3ZDphOTpkNTo5YTo4MDo4MjpmYjo1MDoKLQk4OToyOTo3MTo4ZTo4ZTphMToyOToyZTpkZjpkYjowMTozNDo0MTplNzo2NjoKLQlmYTo2MDpkYzpiYzozNDo4Mzo0NTo3MDplMDo2MTplOTphNjoyNToyMzpjMjoKLQk3NzozMzphOTo4YTo5MDo5NDoyMTpmZjo4NDpkMjo3YjozNjozOTo5YjplNToKLQlmMDo4ODoyYjozNTo5ODo2NDoyODo1ODoyNzpiZTpmYTpiZjplMzo2MDpjYzoKLQljNDo2MTo2MDo1OTo3ODphNzplMTphMzpiMzphNzozZTo3ZTo1YjphODpkNzoKLQliNzpiYToyNTowZTpiMTo5ZTo3OTowMzpiNTo4MzpiYTo0MzozNDpiNjpjMToKLQljZTo0NTo2Njo3MjowNzo2NDo4YTphZjoxNDpkODphZToxODoxOTpiYToyNToKLQlhNjpkOTozNjpmODo4YzoKLQotcHJpbWU6Ci0JOWU6YTQ6YTg6YzQ6Mjk6ZmU6NzY6MTg6MDI6NGY6NzY6Yzk6Mjk6MGU6ZjI6Ci0JYmE6MGQ6OTI6MDg6OWQ6ZDk6YjM6Mjg6NDE6NWQ6ODg6NGU6ZmU6M2M6YWU6Ci0JYzE6ZDQ6M2U6N2U6ZmI6ZDg6MmM6YmY6N2I6NjM6NzA6OTk6OWU6YzQ6YWM6Ci0JZDA6MWU6N2M6NGU6MjI6MDc6ZDI6YjU6Zjk6OWE6OWU6NTI6ZTI6OTc6OWQ6Ci0JYzM6Y2I6MGQ6NjY6MzM6NzU6OTU6YTc6OTY6NmU6Njk6ZWM6MTY6YmQ6MDY6Ci0JNGE6MWE6ZGM6YjI6ZDQ6Mjk6MjM6YWI6MmU6OGY6N2Y6NmE6ODQ6MWQ6ODI6Ci0JMjM6NmU6NDI6OGM6MWU6NzA6M2Q6MjE6YmI6Yjk6Yjk6OGY6Zjk6ZmQ6OWM6Ci0JNTM6MDg6ZTQ6ZTg6NWE6MDQ6Y2E6NWY6OGY6NzM6NTU6YWM6ZTE6NDE6MjA6Ci0JYzc6NDM6ZmE6OGY6OTk6Ci0KLQotLS0tLS1CRUdJTiBESCBQQVJBTUVURVJTLS0tLS0KLU1JSUJBd0orQUo2a3FNUXAvbllZQWs5MnlTa084cm9Oa2dpZDJiTW9RVjJJVHY0OHJzSFVQbjc3MkN5L2UyTncKLW1aN0VyTkFlZkU0aUI5SzErWnFlVXVLWG5jUExEV1l6ZFpXbmxtNXA3QmE5QmtvYTNMTFVLU09yTG85L2FvUWQKLWdpTnVRb3dlY0QwaHU3bTVqL245bkZNSTVPaGFCTXBmajNOVnJPRkJJTWREK28rWkFuMGpoRHdOVll5NWZhblYKLW1vQ0MrMUNKS1hHT2pxRXBMdC9iQVRSQjUyYjZZTnk4TklORmNPQmg2YVlsSThKM002bUtrSlFoLzRUU2V6WTUKLW0rWHdpQ3MxbUdRb1dDZSsrci9qWU16RVlXQlplS2ZobzdPblBuNWJxTmUzdWlVT3NaNTVBN1dEdWtNMHRzSE8KLVJXWnlCMlNLcnhUWXJoZ1p1aVdtMlRiNGpBSUNBS0E9Ci0tLS0tLUVORCBESCBQQVJBTUVURVJTLS0tLS0KZGlmZiAtLWdpdCBhL3Rlc3RzL2RhdGFfZmlsZXMvZGguOTk4LnBlbSBiL3Rlc3RzL2RhdGFfZmlsZXMvZGguOTk4LnBlbQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOTZkNmNmMi4uMDAwMDAwMAotLS0gYS90ZXN0cy9kYXRhX2ZpbGVzL2RoLjk5OC5wZW0KKysrIC9kZXYvbnVsbApAQCAtMSwxNyArMCwwIEBACi0gICAgREggUGFyYW1ldGVyczogKDk5OCBiaXQpCi0gICAgICAgIHByaW1lOgotICAgICAgICAgICAgMzk6NWY6MzA6YzA6N2I6MDY6Yjc6NmE6NDk6YzY6YzA6ODE6MWY6Mzk6Nzc6Ci0gICAgICAgICAgICBiMzozNTplMjo4ZDo2NjpmYzo2YTo2ZTo5NDpmMzpkZjo5NzpmMjo4OTozMToKLSAgICAgICAgICAgIDZjOjc1OjM5OjA4OjE2OmQxOmE0OmI4OjBjOjY4OmM1OjYzOjIxOjYxOmViOgotICAgICAgICAgICAgNDg6MmQ6Nzc6OTk6MDg6MWQ6Njc6Mzg6Mzc6MGE6Y2Q6Y2Y6Mzk6YjY6M2M6Ci0gICAgICAgICAgICA5ZDo4YTplNTo4NTozYzo3MTplMzo0YjozZToxZTpiOTo4MDplMzpjYzo3YToKLSAgICAgICAgICAgIGZkOjg0OjA1OmIwOmRmOjM2OjE1OjI5OjRlOjNlOjIzOjNiOmMzOmFlOjZiOgotICAgICAgICAgICAgYzc6MTE6Yjk6NjQ6NDM6NDA6NzU6Yzc6NGE6ZWY6YTc6MmQ6MDA6ZTI6NjI6Ci0gICAgICAgICAgICA4Zjo5Mzo3ODo5Njo4ZjoyYzoyNTo4ZDo3ZDoxZjplYjo1YzozYzpiZjo1MToKLSAgICAgICAgICAgIGRlOmY4OjA4OjI1OmRiCi0gICAgICAgIGdlbmVyYXRvcjogMiAoMHgyKQotLS0tLS1CRUdJTiBESCBQQVJBTUVURVJTLS0tLS0KLU1JR0NBbjA1WHpEQWV3YTNha25Hd0lFZk9YZXpOZUtOWnZ4cWJwVHozNWZ5aVRGc2RUa0lGdEdrdUF4b3hXTWgKLVlldElMWGVaQ0Ixbk9EY0t6Yzg1dGp5ZGl1V0ZQSEhqU3o0ZXVZRGp6SHI5aEFXdzN6WVZLVTQrSXp2RHJtdkgKLUVibGtRMEIxeDBydnB5MEE0bUtQazNpV2p5d2xqWDBmNjF3OHYxSGUrQWdsMndJQkFnPT0KLS0tLS0tRU5EIERIIFBBUkFNRVRFUlMtLS0tLQpkaWZmIC0tZ2l0IGEvdGVzdHMvZGF0YV9maWxlcy9kaC45OTkucGVtIGIvdGVzdHMvZGF0YV9maWxlcy9kaC45OTkucGVtCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2ZTNjZWIzLi4wMDAwMDAwCi0tLSBhL3Rlc3RzL2RhdGFfZmlsZXMvZGguOTk5LnBlbQorKysgL2Rldi9udWxsCkBAIC0xLDE3ICswLDAgQEAKLSAgICBESCBQYXJhbWV0ZXJzOiAoOTk5IGJpdCkKLSAgICAgICAgcHJpbWU6Ci0gICAgICAgICAgICA0ZjpiODpkMjpkODozYzpiMzowMjpjOTo2NDpmNTo5OTpmZTo2MTpjYzpiMzoKLSAgICAgICAgICAgIDY5OjFjOmJhOmJiOmEyOjMzOmRiOjM4OjJmOjg1Ojg3OmI3OjEyOmZiOjY5OgotICAgICAgICAgICAgNmU6YTU6MzI6M2U6ZmY6MjQ6ZGY6YzQ6NjE6MDc6MGM6ZTE6ODg6NzI6ZmE6Ci0gICAgICAgICAgICAxNDpkNDoyMjo2NToxODo2NjowOTo3ZTo0MzozNTpjNDo1YTo2MjpmNzowYToKLSAgICAgICAgICAgIDY5OmJlOjQ1OjcxOjZlOmFjOmM1OjU2OmQ4OjIyOjllOmM0OjljOjIzOjJiOgotICAgICAgICAgICAgYmQ6NmQ6M2I6YjY6MDI6NGY6NWQ6MTI6YTc6YWM6OTA6Yjg6OWU6YmU6OTM6Ci0gICAgICAgICAgICA4MjpiYzowOTo3YzpjZDplMTowOToyMToxZTozZDo2OToyYTo3Njo0MTowMDoKLSAgICAgICAgICAgIDY4OjZkOmI3OmU4OmU4OmRmOmQ2OjFiOjgyOjkzOmQ5OjIxOjRhOmVhOjcxOgotICAgICAgICAgICAgZjI6ZTY6YzQ6OTQ6MDMKLSAgICAgICAgZ2VuZXJhdG9yOiAyICgweDIpCi0tLS0tLUJFR0lOIERIIFBBUkFNRVRFUlMtLS0tLQotTUlHQ0FuMVB1TkxZUExNQ3lXVDFtZjVoekxOcEhMcTdvalBiT0MrRmg3Y1MrMmx1cFRJKy95VGZ4R0VIRE9HSQotY3ZvVTFDSmxHR1lKZmtNMXhGcGk5d3BwdmtWeGJxekZWdGdpbnNTY0l5dTliVHUyQWs5ZEVxZXNrTGlldnBPQwotdkFsOHplRUpJUjQ5YVNwMlFRQm9iYmZvNk4vV0c0S1QyU0ZLNm5IeTVzU1VBd0lCQWc9PQotLS0tLS1FTkQgREggUEFSQU1FVEVSUy0tLS0tCmRpZmYgLS1naXQgYS90ZXN0cy9kYXRhX2ZpbGVzL2RoLm9wdGxlbi5kZXIgYi90ZXN0cy9kYXRhX2ZpbGVzL2RoLm9wdGxlbi5kZXIKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDNjM2JmMTcuLjAwMDAwMDAKLS0tIGEvdGVzdHMvZGF0YV9maWxlcy9kaC5vcHRsZW4uZGVyCisrKyAvZGV2L251bGwKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvdGVzdHMvZGF0YV9maWxlcy9kaC5vcHRsZW4ucGVtIGIvdGVzdHMvZGF0YV9maWxlcy9kaC5vcHRsZW4ucGVtCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlZTFlMjliLi4wMDAwMDAwCi0tLSBhL3Rlc3RzL2RhdGFfZmlsZXMvZGgub3B0bGVuLnBlbQorKysgL2Rldi9udWxsCkBAIC0xLDU4ICswLDAgQEAKLQotUmVjb21tZW5kZWQga2V5IGxlbmd0aDogMjU2IGJpdHMKLQotZ2VuZXJhdG9yOgotCTgwOjBhOmJmOmU3OmRjOjY2OjdhOmExOjdiOmNkOjdjOjA0OjYxOjRiOmMyOgotCTIxOmE2OjU0OjgyOmNjOmMwOjRiOjYwOjQ2OjAyOmIwOmUxOjMxOjkwOjhhOgotCTkzOjhlOmExOjFiOjQ4OmRjOjUxOjVkOmFiOjdhOmJjOmJiOjFlOjBjOjdmOgotCWQ2OjY1OjExOmVkOmMwOmQ4OjY1OjUxOmI3OjYzOjI0Ojk2OmUwOjNkOmY5OgotCTQzOjU3OmUxOmM0OmVhOjA3OmE3OmNlOjFlOjM4OjFhOjJmOmNhOmZkOmZmOgotCTVmOjViOmYwOjBkOmY4OjI4OjgwOjYwOjIwOmU4Ojc1OmMwOjA5OjI2OmU0OgotCWQwOjExOmY4Ojg0Ojc3OmExOmIwOjE5OjI3OmQ3OjM4OjEzOmNhOmQ0Ojg0OgotCTdjOjYzOjk2OmI5OjI0OjQ2OjIxOmJlOjJiOjAwOmI2OjNjOjY1OjkyOjUzOgotCTMxOjg0OjEzOjQ0OjNjOmQyOjQ0OjIxOjVjOmQ3OmZkOjRjOmJlOjc5OjZlOgotCTgyOmM2OmNmOjcwOmY4OjljOmMwOmM1OjI4OmZiOjhlOjM0OjQ4OjA5OmIzOgotCTE4Ojc2OmU3OmVmOjczOjlkOjUxOjYwOmQwOjk1OmM5OjY4OjQxOjg4OmIwOgotCWM4Ojc1OjVjOjdhOjQ2OjhkOjQ3OmY1OjZkOjZkOmI5OmVhOjAxOjI5OjI0OgotCWVjOmIwOjU1OjZmOmI3OjEzOjEyOmE4OmQ3OmM5OjNiOmIyOjg5OjhlOmEwOgotCThlOmU1OjRlOmViOjU5OjQ1OjQ4OjI4OjVmOjA2OmE5OjczOmNiOmJlOjJhOgotCTBjOmIwOjJlOjkwOmYzOjIzOmZlOjA0OjU1OjIxOmYzOjRjOjY4OjM1OjRhOgotCTZkOjNlOjk1OmRiOmZmOmYxOmViOjY0OjY5OjJlOmRjOjBhOjQ0OmYzOmQzOgotCWU0OjA4OmQwOmU0Ojc5OmE1OjQxOmU3Ojc5OmE2OjA1OjQyOjU5OmUyOmQ4OgotCTU0OgotCi1wcmltZToKLQliMzoxMjo2YTplYTpmNDo3MTo1MzpjNzpkNjo3Zjo0MDozMDozMDpiMjo5MjoKLQliNTpiZDo1YTo2Yzo5ZTphZToxYzoxMzo3YTpmMzo0MDo4NzpmYzplMjphMzoKLQk2YTo1Nzo4ZDo3MDpjNTpjNTo2MDphZDoyYjpkYjo5Mjo0Yzo0YTo0ZDpiZToKLQllMjowYToxNjo3MTpiZTo3MTowMzpjZTo4NzpkZTpmYTo3Njo5MDo4OTozNjoKLQk4MDozZDpiZTpjYTo2MDpjMzozZToxMjo4OTpjMTphMDozYTpjMjpjNjpjNDoKLQllNDo5NDowNTplNTo5MDoyZjphMDo1OTo2YToxYzpiYTphODo5NTpjYzo0MDoKLQkyZDo1MjoxMzplZDo0YTo1ZjoxZjo1YjphODpiNTplMTplZDozZDphOTo1MToKLQlhNDpjNDo3NTphZjplYjowYzphNjo2MDpiNzozNjo4YzozODpjODplODowOToKLQlmMzo4MjpkOTo2YTplMTo5ZTo2MDpkYzo5ODo0ZTo2MTpjYjo0MjpiNTpkZjoKLQlkNzoyMzozMjoyYTpjZjozMjo3Zjo5ZTo0MTozYzpkYTo2NDowMDpjMTo1YzoKLQk1YjoyZTphMTpmYTozNDo0MDo1ZDo4Mzo5ODoyZjpiYTo0MDplNjpkODo1MjoKLQlkYTozZDo5MTowMTo5YjpmMjozNToxMTozMTo0Mjo1NDpkYzoyMToxYTo5MDoKLQk4MzozZTo1YjoxNzo5ODplZTo1MjphNzo4MTo5ODpjNTo1NTo2NDo0NzoyOToKLQlhZDo5MjpmMDo2MDozNjo3Yzo3NDpkZTpkMzo3NzowNDphZDpmYzoyNzozYToKLQk0YTozMzpmZTpjODoyMTpiZDoyZTpiZDozYjpjMDo1MTo3MzowZTo5NzphNDoKLQlkZDoxNDpkMjpiNzo2NjowNjoyNTo5MjpmNTplZTpjMDo5ZDoxNjpiYjo1MDoKLQllZjplYjpmMjpjYzowMDpkZDozZTowZTozNDoxODplNjowZTpjODo0ODo3MDoKLQlmNzoKLQotCi0tLS0tLUJFR0lOIERIIFBBUkFNRVRFUlMtLS0tLQotTUlJQ0RnS0NBUUVBc3hKcTZ2UnhVOGZXZjBBd01MS1N0YjFhYko2dUhCTjY4MENIL09LamFsZU5jTVhGWUswcgotMjVKTVNrMis0Z29XY2I1eEE4NkgzdnAya0lrMmdEMit5bUREUGhLSndhQTZ3c2JFNUpRRjVaQXZvRmxxSExxbwotbGN4QUxWSVQ3VXBmSDF1b3RlSHRQYWxScE1SMXIrc01wbUMzTm93NHlPZ0o4NExaYXVHZVlOeVlUbUhMUXJYZgotMXlNeUtzOHlmNTVCUE5wa0FNRmNXeTZoK2pSQVhZT1lMN3BBNXRoUzJqMlJBWnZ5TlJFeFFsVGNJUnFRZ3o1YgotRjVqdVVxZUJtTVZWWkVjcHJaTHdZRFo4ZE43VGR3U3QvQ2M2U2pQK3lDRzlMcjA3d0ZGekRwZWszUlRTdDJZRwotSlpMMTdzQ2RGcnRRNyt2eXpBRGRQZzQwR09ZT3lFaHc5d0tDQVFFQWdBcS81OXhtZXFGN3pYd0VZVXZDSWFaVQotZ3N6QVMyQkdBckRoTVpDS2s0NmhHMGpjVVYycmVyeTdIZ3gvMW1VUjdjRFlaVkczWXlTVzREMzVRMWZoeE9vSAotcDg0ZU9Cb3Z5djMvWDF2d0RmZ29nR0FnNkhYQUNTYmswQkg0aEhlaHNCa24xemdUeXRTRWZHT1d1U1JHSWI0cgotQUxZOFpaSlRNWVFUUkR6U1JDRmMxLzFNdm5sdWdzYlBjUGljd01Vbys0NDBTQW16R0hibjczT2RVV0RRbGNsbwotUVlpd3lIVmNla2FOUi9WdGJibnFBU2trN0xCVmI3Y1RFcWpYeVR1eWlZNmdqdVZPNjFsRlNDaGZCcWx6eTc0cQotRExBdWtQTWovZ1JWSWZOTWFEVktiVDZWMi8veDYyUnBMdHdLUlBQVDVBalE1SG1sUWVkNXBnVkNXZUxZVkFJQwotQVFBPQotLS0tLS1FTkQgREggUEFSQU1FVEVSUy0tLS0tCmRpZmYgLS1naXQgYS90ZXN0cy9kYXRhX2ZpbGVzL2RocGFyYW1zLnBlbSBiL3Rlc3RzL2RhdGFfZmlsZXMvZGhwYXJhbXMucGVtCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3Y2UwNWYwLi4wMDAwMDAwCi0tLSBhL3Rlc3RzL2RhdGFfZmlsZXMvZGhwYXJhbXMucGVtCisrKyAvZGV2L251bGwKQEAgLTEsNSArMCwwIEBACi0tLS0tLUJFR0lOIERIIFBBUkFNRVRFUlMtLS0tLQotTUlHSEFvR0JBSjQxOURCRU9nbVFUem81cVhsNWZRY045VE40NTV3a09MNzA1Mkh6eHhSVk15aFltd1FjZ0p2aAotMXNhMThmeWZSOU9pVkVNWWdsT3BrcVZvR0xON3FkNWFRTk5pNVc3L0MrVkJkSFRCSmNHWkp5eVA1QjNxY3ozMgotOW1MSkt1ZGxWdWRWMFF4azVxVUphUFoveHVwejBOeW9WcHZpdWlCT0kxZ05pOG92U1hXekFnRUMKLS0tLS0tRU5EIERIIFBBUkFNRVRFUlMtLS0tLQpkaWZmIC0tZ2l0IGEvdGVzdHMvZGF0YV9maWxlcy9kaXItbWF4cGF0aC8wMC5jcnQgYi90ZXN0cy9kYXRhX2ZpbGVzL2Rpci1tYXhwYXRoLzAwLmNydApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYzgwNjY0OC4uMDAwMDAwMAotLS0gYS90ZXN0cy9kYXRhX2ZpbGVzL2Rpci1tYXhwYXRoLzAwLmNydAorKysgL2Rldi9udWxsCkBAIC0xLDExICswLDAgQEAKLS0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQotTUlJQnBUQ0NBVXVnQXdJQkFnSUpBUHlnbG9YS2s2QndNQW9HQ0NxR1NNNDlCQU1DTUM4eEN6QUpCZ05WQkFZVAotQWxWTE1SRXdEd1lEVlFRS0RBaHRZbVZrSUZSTVV6RU5NQXNHQTFVRUF3d0VRMEV3TURBZUZ3MHhOekEyTWpJeAotTVRVd016SmFGdzB5TnpBMk1qTXhNVFV3TXpKYU1DOHhDekFKQmdOVkJBWVRBbFZMTVJFd0R3WURWUVFLREFodAotWW1Wa0lGUk1VekVOTUFzR0ExVUVBd3dFUTBFd01EQlpNQk1HQnlxR1NNNDlBZ0VHQ0NxR1NNNDlBd0VIQTBJQQotQkZXNDEvcUF3QVBweStUeGRjN1BLbXpac3E5Q1BpdWpLVTR2cEYxZWtYbkd4MkhQNDIwUW9id0JWVldoa3pSbQotTHdkYm9IMmo2NWRjQ0tqUTdtdi9keEtqVURCT01CMEdBMVVkRGdRV0JCUWxGWXZVNVdib0k0ZmNkUG9pUXM4LwotZlBIWnJUQWZCZ05WSFNNRUdEQVdnQlFsRll2VTVXYm9JNGZjZFBvaVFzOC9mUEhaclRBTUJnTlZIUk1FQlRBRAotQVFIL01Bb0dDQ3FHU000OUJBTUNBMGdBTUVVQ0lRQzdpUmNWendNeWZWSzVpbWlySjdNcUpRMDRldUg0Q0xPdAotSVorU05mYUVSQUlnU1UwTVdGRG9zVkVJcGc4WU1xSUhlRjdNZzRaeUg2K2ZHYXpKZ1ZMdHRVWT0KLS0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KZGlmZiAtLWdpdCBhL3Rlc3RzL2RhdGFfZmlsZXMvZGlyLW1heHBhdGgvMDAua2V5IGIvdGVzdHMvZGF0YV9maWxlcy9kaXItbWF4cGF0aC8wMC5rZXkKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGI0ZDMzMTUuLjAwMDAwMDAKLS0tIGEvdGVzdHMvZGF0YV9maWxlcy9kaXItbWF4cGF0aC8wMC5rZXkKKysrIC9kZXYvbnVsbApAQCAtMSw4ICswLDAgQEAKLS0tLS0tQkVHSU4gRUMgUEFSQU1FVEVSUy0tLS0tCi1CZ2dxaGtqT1BRTUJCdz09Ci0tLS0tLUVORCBFQyBQQVJBTUVURVJTLS0tLS0KLS0tLS0tQkVHSU4gRUMgUFJJVkFURSBLRVktLS0tLQotTUhjQ0FRRUVJQVJQYUVJZlJPSGtFOVkwWmdIaDdNYzNaVTZMUjlsQ09JdzFrc1lUSHA1RW9Bb0dDQ3FHU000OQotQXdFSG9VUURRZ0FFVmJqWCtvREFBK25MNVBGMXpzOHFiTm15cjBJK0s2TXBUaStrWFY2UmVjYkhZYy9qYlJDaAotdkFGVlZhR1ROR1l2QjF1Z2ZhUHJsMXdJcU5EdWEvOTNFZz09Ci0tLS0tLUVORCBFQyBQUklWQVRFIEtFWS0tLS0tCmRpZmYgLS1naXQgYS90ZXN0cy9kYXRhX2ZpbGVzL2Rpci1tYXhwYXRoLzAxLmNydCBiL3Rlc3RzL2RhdGFfZmlsZXMvZGlyLW1heHBhdGgvMDEuY3J0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwZTkxMDdhLi4wMDAwMDAwCi0tLSBhL3Rlc3RzL2RhdGFfZmlsZXMvZGlyLW1heHBhdGgvMDEuY3J0CisrKyAvZGV2L251bGwKQEAgLTEsMTMgKzAsMCBAQAotLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCi1NSUlCM2pDQ0FZV2dBd0lCQWdJQkFUQUtCZ2dxaGtqT1BRUURBakF2TVFzd0NRWURWUVFHRXdKVlN6RVJNQThHCi1BMVVFQ2d3SWJXSmxaQ0JVVEZNeERUQUxCZ05WQkFNTUJFTkJNREF3SGhjTk1UY3dOakl5TVRFMU1ETXlXaGNOCi1NamN3TmpJek1URTFNRE15V2pBdk1Rc3dDUVlEVlFRR0V3SlZTekVSTUE4R0ExVUVDZ3dJYldKbFpDQlVURk14Ci1EVEFMQmdOVkJBTU1CRU5CTURFd1dUQVRCZ2NxaGtqT1BRSUJCZ2dxaGtqT1BRTUJCd05DQUFRem5uOXpISHdMCi1HTzhWUjRXOVY3dk1seENkb29qekVPaVg1WTZKdFB0Rk96ODY2dWVIWTZ6b04wL21KNkRucW5TWGlsSklVVWVXCi02ZUdmcW1rYTdueGtvNEdSTUlHT01CMEdBMVVkRGdRV0JCU2gzdUhrWDVuajg2eUZFRndqc2NTV000MFArakJmCi1CZ05WSFNNRVdEQldnQlFsRll2VTVXYm9JNGZjZFBvaVFzOC9mUEhacmFFenBERXdMekVMTUFrR0ExVUVCaE1DCi1WVXN4RVRBUEJnTlZCQW9NQ0cxaVpXUWdWRXhUTVEwd0N3WURWUVFEREFSRFFUQXdnZ2tBL0tDV2hjcVRvSEF3Ci1EQVlEVlIwVEJBVXdBd0VCL3pBS0JnZ3Foa2pPUFFRREFnTkhBREJFQWlCYXNidWluUCtwSlRVNG9EQ1ZEOHpRCi0xckpCRFNPS0lFeVd1ODQvRDZIajZ3SWdWTVBVb08wMWJQaHpsbEFhL2dXOFhrL2RhZXkwOVNCZ04zQVQ5cFdVCi1UREE9Ci0tLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCmRpZmYgLS1naXQgYS90ZXN0cy9kYXRhX2ZpbGVzL2Rpci1tYXhwYXRoLzAxLmtleSBiL3Rlc3RzL2RhdGFfZmlsZXMvZGlyLW1heHBhdGgvMDEua2V5CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3ZGQwNjQzLi4wMDAwMDAwCi0tLSBhL3Rlc3RzL2RhdGFfZmlsZXMvZGlyLW1heHBhdGgvMDEua2V5CisrKyAvZGV2L251bGwKQEAgLTEsOCArMCwwIEBACi0tLS0tLUJFR0lOIEVDIFBBUkFNRVRFUlMtLS0tLQotQmdncWhrak9QUU1CQnc9PQotLS0tLS1FTkQgRUMgUEFSQU1FVEVSUy0tLS0tCi0tLS0tLUJFR0lOIEVDIFBSSVZBVEUgS0VZLS0tLS0KLU1IY0NBUUVFSU5TbnhQcVVOTWJhOEYyS1dOeFU4OGhlU3M3dmdhczVCT3pqUndRc1FlNklvQW9HQ0NxR1NNNDkKLUF3RUhvVVFEUWdBRU01NS9jeHg4Q3hqdkZVZUZ2VmU3ekpjUW5hS0k4eERvbCtXT2liVDdSVHMvT3VybmgyT3MKLTZEZFA1aWVnNTZwMGw0cFNTRkZIbHVuaG42cHBHdTU4WkE9PQotLS0tLS1FTkQgRUMgUFJJVkFURSBLRVktLS0tLQpkaWZmIC0tZ2l0IGEvdGVzdHMvZGF0YV9maWxlcy9kaXItbWF4cGF0aC8wMi5jcnQgYi90ZXN0cy9kYXRhX2ZpbGVzL2Rpci1tYXhwYXRoLzAyLmNydApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMzg3YjA2NC4uMDAwMDAwMAotLS0gYS90ZXN0cy9kYXRhX2ZpbGVzL2Rpci1tYXhwYXRoLzAyLmNydAorKysgL2Rldi9udWxsCkBAIC0xLDEyICswLDAgQEAKLS0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQotTUlJQjF6Q0NBWDJnQXdJQkFnSUJBVEFLQmdncWhrak9QUVFEQWpBdk1Rc3dDUVlEVlFRR0V3SlZTekVSTUE4RwotQTFVRUNnd0liV0psWkNCVVRGTXhEVEFMQmdOVkJBTU1CRU5CTURFd0hoY05NVGN3TmpJeU1URTFNRE15V2hjTgotTWpjd05qSXpNVEUxTURNeVdqQXZNUXN3Q1FZRFZRUUdFd0pWU3pFUk1BOEdBMVVFQ2d3SWJXSmxaQ0JVVEZNeAotRFRBTEJnTlZCQU1NQkVOQk1ESXdXVEFUQmdjcWhrak9QUUlCQmdncWhrak9QUU1CQndOQ0FBUVdIcHYxaTZsZgotd3ZOUE9QNWthNlMwbjU1RXZ6b2FZSzZwYlRYUDZ5TU9XLzRYWlNQS3g1Wm9xNEZNZTBjS3pHSUlGTDFyemoxVgotMmN6WUIrcXZMaHlpbzRHSk1JR0dNQjBHQTFVZERnUVdCQlQ1UkNnUTBBbFpUUWJmRkIyKzYrdzBYUnZ5ZFRCWAotQmdOVkhTTUVVREJPZ0JTaDN1SGtYNW5qODZ5RkVGd2pzY1NXTTQwUCtxRXpwREV3THpFTE1Ba0dBMVVFQmhNQwotVlVzeEVUQVBCZ05WQkFvTUNHMWlaV1FnVkV4VE1RMHdDd1lEVlFRRERBUkRRVEF3Z2dFQk1Bd0dBMVVkRXdRRgotTUFNQkFmOHdDZ1lJS29aSXpqMEVBd0lEU0FBd1JRSWhBSTd1bkdXL2dyOXRPYzNpK2RGNU44MTVzcmdoK0ZyWAotb2o5RXQ3NEVjU3BUQWlCdWJ2K3ZPSDBERTBnbVlJMTFIZUFJZ3V0V3FxTUlDNzJkWmx3VEYvVmkzZz09Ci0tLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCmRpZmYgLS1naXQgYS90ZXN0cy9kYXRhX2ZpbGVzL2Rpci1tYXhwYXRoLzAyLmtleSBiL3Rlc3RzL2RhdGFfZmlsZXMvZGlyLW1heHBhdGgvMDIua2V5CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiNWFjNTEzLi4wMDAwMDAwCi0tLSBhL3Rlc3RzL2RhdGFfZmlsZXMvZGlyLW1heHBhdGgvMDIua2V5CisrKyAvZGV2L251bGwKQEAgLTEsOCArMCwwIEBACi0tLS0tLUJFR0lOIEVDIFBBUkFNRVRFUlMtLS0tLQotQmdncWhrak9QUU1CQnc9PQotLS0tLS1FTkQgRUMgUEFSQU1FVEVSUy0tLS0tCi0tLS0tLUJFR0lOIEVDIFBSSVZBVEUgS0VZLS0tLS0KLU1IY0NBUUVFSVBXOXpFOGNqaVo4dzE3alRBZWJiNHhBbUVnNmhlRUVuRWFHNGxHQ2QzOGpvQW9HQ0NxR1NNNDkKLUF3RUhvVVFEUWdBRUZoNmI5WXVwWDhMelR6aitaR3VrdEorZVJMODZHbUN1cVcwMXorc2pEbHYrRjJVanlzZVcKLWFLdUJUSHRIQ3N4aUNCUzlhODQ5VmRuTTJBZnFyeTRjb2c9PQotLS0tLS1FTkQgRUMgUFJJVkFURSBLRVktLS0tLQpkaWZmIC0tZ2l0IGEvdGVzdHMvZGF0YV9maWxlcy9kaXItbWF4cGF0aC8wMy5jcnQgYi90ZXN0cy9kYXRhX2ZpbGVzL2Rpci1tYXhwYXRoLzAzLmNydApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggN2Q5MGE1ZS4uMDAwMDAwMAotLS0gYS90ZXN0cy9kYXRhX2ZpbGVzL2Rpci1tYXhwYXRoLzAzLmNydAorKysgL2Rldi9udWxsCkBAIC0xLDEyICswLDAgQEAKLS0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQotTUlJQjJEQ0NBWDJnQXdJQkFnSUJBVEFLQmdncWhrak9QUVFEQWpBdk1Rc3dDUVlEVlFRR0V3SlZTekVSTUE4RwotQTFVRUNnd0liV0psWkNCVVRGTXhEVEFMQmdOVkJBTU1CRU5CTURJd0hoY05NVGN3TmpJeU1URTFNRE15V2hjTgotTWpjd05qSXpNVEUxTURNeVdqQXZNUXN3Q1FZRFZRUUdFd0pWU3pFUk1BOEdBMVVFQ2d3SWJXSmxaQ0JVVEZNeAotRFRBTEJnTlZCQU1NQkVOQk1ETXdXVEFUQmdjcWhrak9QUUlCQmdncWhrak9QUU1CQndOQ0FBUVJEWEROSWkxcAotZXJldWRocXdhMkxzbFhnc3huQjYzSHU1eTVsZysxV1BydUlZUHpEL0hvMEFQdmVWZHpGTFZqaTE5K2JFNCt0RgotUFlMMVNwc04xV2ZXbzRHSk1JR0dNQjBHQTFVZERnUVdCQlFBcHpaZHRCZEQzZEx4b3VRcHIvYURpVnR0ZHpCWAotQmdOVkhTTUVVREJPZ0JUNVJDZ1EwQWxaVFFiZkZCMis2K3cwWFJ2eWRhRXpwREV3THpFTE1Ba0dBMVVFQmhNQwotVlVzeEVUQVBCZ05WQkFvTUNHMWlaV1FnVkV4VE1RMHdDd1lEVlFRRERBUkRRVEF4Z2dFQk1Bd0dBMVVkRXdRRgotTUFNQkFmOHdDZ1lJS29aSXpqMEVBd0lEU1FBd1JnSWhBT25kKzdiQW9ma0hWYTRLRk5qdjNUQ2VndzFscmh1TQotOE9mOHdndnJURUdvQWlFQXNTOGlLTXBTZlhINEQwZWdnNGdMYW1FNmFrZGU5NjVyRHR5U1UrdmU5bGc9Ci0tLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCmRpZmYgLS1naXQgYS90ZXN0cy9kYXRhX2ZpbGVzL2Rpci1tYXhwYXRoLzAzLmtleSBiL3Rlc3RzL2RhdGFfZmlsZXMvZGlyLW1heHBhdGgvMDMua2V5CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyYmZhNDgzLi4wMDAwMDAwCi0tLSBhL3Rlc3RzL2RhdGFfZmlsZXMvZGlyLW1heHBhdGgvMDMua2V5CisrKyAvZGV2L251bGwKQEAgLTEsOCArMCwwIEBACi0tLS0tLUJFR0lOIEVDIFBBUkFNRVRFUlMtLS0tLQotQmdncWhrak9QUU1CQnc9PQotLS0tLS1FTkQgRUMgUEFSQU1FVEVSUy0tLS0tCi0tLS0tLUJFR0lOIEVDIFBSSVZBVEUgS0VZLS0tLS0KLU1IY0NBUUVFSUJ4Mnh3YXBHYkhUeTc5SWJwSmtjL3c5TEpYUEtORzdnR1JMUE9HUFFGSTZvQW9HQ0NxR1NNNDkKLUF3RUhvVVFEUWdBRUVRMXd6U0l0YVhxM3JuWWFzR3RpN0pWNExNWndldHg3dWN1WllQdFZqNjdpR0Q4dy94Nk4KLUFENzNsWGN4UzFZNHRmZm14T1ByUlQyQzlVcWJEZFZuMWc9PQotLS0tLS1FTkQgRUMgUFJJVkFURSBLRVktLS0tLQpkaWZmIC0tZ2l0IGEvdGVzdHMvZGF0YV9maWxlcy9kaXItbWF4cGF0aC8wNC5jcnQgYi90ZXN0cy9kYXRhX2ZpbGVzL2Rpci1tYXhwYXRoLzA0LmNydApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMWRkY2Y2OS4uMDAwMDAwMAotLS0gYS90ZXN0cy9kYXRhX2ZpbGVzL2Rpci1tYXhwYXRoLzA0LmNydAorKysgL2Rldi9udWxsCkBAIC0xLDEyICswLDAgQEAKLS0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQotTUlJQjFqQ0NBWDJnQXdJQkFnSUJBVEFLQmdncWhrak9QUVFEQWpBdk1Rc3dDUVlEVlFRR0V3SlZTekVSTUE4RwotQTFVRUNnd0liV0psWkNCVVRGTXhEVEFMQmdOVkJBTU1CRU5CTURNd0hoY05NVGN3TmpJeU1URTFNRE15V2hjTgotTWpjd05qSXpNVEUxTURNeVdqQXZNUXN3Q1FZRFZRUUdFd0pWU3pFUk1BOEdBMVVFQ2d3SWJXSmxaQ0JVVEZNeAotRFRBTEJnTlZCQU1NQkVOQk1EUXdXVEFUQmdjcWhrak9QUUlCQmdncWhrak9QUU1CQndOQ0FBUVVYRGdjVVZOVAotOWhvdmJaRTVITDZyak9iN0M1NXdFdVdLVGhWL0NjWjRyV3JYeDdWWEhZZEQvUjNhREE3SlN2WXBtMnNUb2s0aQotc2JsRHpoWk0vR0RObzRHSk1JR0dNQjBHQTFVZERnUVdCQlFveDRGMU5zWnVubHNkdW9HdnpJZ1JTWWZCM3pCWAotQmdOVkhTTUVVREJPZ0JRQXB6WmR0QmREM2RMeG91UXByL2FEaVZ0dGQ2RXpwREV3THpFTE1Ba0dBMVVFQmhNQwotVlVzeEVUQVBCZ05WQkFvTUNHMWlaV1FnVkV4VE1RMHdDd1lEVlFRRERBUkRRVEF5Z2dFQk1Bd0dBMVVkRXdRRgotTUFNQkFmOHdDZ1lJS29aSXpqMEVBd0lEUndBd1JBSWdBa2lOaHFGQVpYU1VXRURLOTFPWnZRR2RlWk90ZDZtQwotK1d2M2ZHazN0MjhDSUVLT3dpZGtVVFVhaVBkWjRlZm1BcitDRWVHemRxMjdvYjJTK25xcUhxZ1YKLS0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KZGlmZiAtLWdpdCBhL3Rlc3RzL2RhdGFfZmlsZXMvZGlyLW1heHBhdGgvMDQua2V5IGIvdGVzdHMvZGF0YV9maWxlcy9kaXItbWF4cGF0aC8wNC5rZXkKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGU4MzZiYmYuLjAwMDAwMDAKLS0tIGEvdGVzdHMvZGF0YV9maWxlcy9kaXItbWF4cGF0aC8wNC5rZXkKKysrIC9kZXYvbnVsbApAQCAtMSw4ICswLDAgQEAKLS0tLS0tQkVHSU4gRUMgUEFSQU1FVEVSUy0tLS0tCi1CZ2dxaGtqT1BRTUJCdz09Ci0tLS0tLUVORCBFQyBQQVJBTUVURVJTLS0tLS0KLS0tLS0tQkVHSU4gRUMgUFJJVkFURSBLRVktLS0tLQotTUhjQ0FRRUVJRFF2VG0wd2ZFQUtveW12OGVQQnY3Y1J4cm5NNGc2TFJFblNsbDVnaFFzWG9Bb0dDQ3FHU000OQotQXdFSG9VUURRZ0FFRkZ3NEhGRlRVL1lhTDIyUk9SeStxNHptK3d1ZWNCTGxpazRWZnduR2VLMXExOGUxVngySAotUS8wZDJnd095VXIyS1p0ckU2Sk9Jckc1UTg0V1RQeGd6UT09Ci0tLS0tLUVORCBFQyBQUklWQVRFIEtFWS0tLS0tCmRpZmYgLS1naXQgYS90ZXN0cy9kYXRhX2ZpbGVzL2Rpci1tYXhwYXRoLzA1LmNydCBiL3Rlc3RzL2RhdGFfZmlsZXMvZGlyLW1heHBhdGgvMDUuY3J0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxOWRlM2EzLi4wMDAwMDAwCi0tLSBhL3Rlc3RzL2RhdGFfZmlsZXMvZGlyLW1heHBhdGgvMDUuY3J0CisrKyAvZGV2L251bGwKQEAgLTEsMTIgKzAsMCBAQAotLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCi1NSUlCMXpDQ0FYMmdBd0lCQWdJQkFUQUtCZ2dxaGtqT1BRUURBakF2TVFzd0NRWURWUVFHRXdKVlN6RVJNQThHCi1BMVVFQ2d3SWJXSmxaQ0JVVEZNeERUQUxCZ05WQkFNTUJFTkJNRFF3SGhjTk1UY3dOakl5TVRFMU1ETXlXaGNOCi1NamN3TmpJek1URTFNRE15V2pBdk1Rc3dDUVlEVlFRR0V3SlZTekVSTUE4R0ExVUVDZ3dJYldKbFpDQlVURk14Ci1EVEFMQmdOVkJBTU1CRU5CTURVd1dUQVRCZ2NxaGtqT1BRSUJCZ2dxaGtqT1BRTUJCd05DQUFRRWRUME9GZjVHCi1VY3JnWDJYbGxDeUp6UDk0Tlo0NjRHc2dCNnBzTkxzRGVMK2o3QVUrb0p5N1ZMdlcvbEhoM09EZ2wwOFo5YmhxCi1MRkJtTmpuSGJtOFFvNEdKTUlHR01CMEdBMVVkRGdRV0JCVFhoMDZNQVY5UzRsNGxHMVRLT3JLUkJoNHFuekJYCi1CZ05WSFNNRVVEQk9nQlFveDRGMU5zWnVubHNkdW9HdnpJZ1JTWWZCMzZFenBERXdMekVMTUFrR0ExVUVCaE1DCi1WVXN4RVRBUEJnTlZCQW9NQ0cxaVpXUWdWRXhUTVEwd0N3WURWUVFEREFSRFFUQXpnZ0VCTUF3R0ExVWRFd1FGCi1NQU1CQWY4d0NnWUlLb1pJemowRUF3SURTQUF3UlFJaEFJVysrenFEWmxMTFVrL2VtZVBvaGROT3A1Sk8zd1M5Ci1YdmtCSjZXdWE3R0JBaUFkeCtFS21kalZyd256clFsdFRnbm1TZkdNWGhLTllpZkszdUQ4M1czcGNRPT0KLS0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KZGlmZiAtLWdpdCBhL3Rlc3RzL2RhdGFfZmlsZXMvZGlyLW1heHBhdGgvMDUua2V5IGIvdGVzdHMvZGF0YV9maWxlcy9kaXItbWF4cGF0aC8wNS5rZXkKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDdmMzA5NWUuLjAwMDAwMDAKLS0tIGEvdGVzdHMvZGF0YV9maWxlcy9kaXItbWF4cGF0aC8wNS5rZXkKKysrIC9kZXYvbnVsbApAQCAtMSw4ICswLDAgQEAKLS0tLS0tQkVHSU4gRUMgUEFSQU1FVEVSUy0tLS0tCi1CZ2dxaGtqT1BRTUJCdz09Ci0tLS0tLUVORCBFQyBQQVJBTUVURVJTLS0tLS0KLS0tLS0tQkVHSU4gRUMgUFJJVkFURSBLRVktLS0tLQotTUhjQ0FRRUVJUDNNVHMwbTlzc0FBWFE5NE82R1lDM3Bja2ZwTVV4UWlQVEc4aFFZZ0EwV29Bb0dDQ3FHU000OQotQXdFSG9VUURRZ0FFQkhVOURoWCtSbEhLNEY5bDVaUXNpY3ovZURXZU91QnJJQWVxYkRTN0EzaS9vK3dGUHFDYwotdTFTNzF2NVI0ZHpnNEpkUEdmVzRhaXhRWmpZNXgyNXZFQT09Ci0tLS0tLUVORCBFQyBQUklWQVRFIEtFWS0tLS0tCmRpZmYgLS1naXQgYS90ZXN0cy9kYXRhX2ZpbGVzL2Rpci1tYXhwYXRoLzA2LmNydCBiL3Rlc3RzL2RhdGFfZmlsZXMvZGlyLW1heHBhdGgvMDYuY3J0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzNmY5OWQyLi4wMDAwMDAwCi0tLSBhL3Rlc3RzL2RhdGFfZmlsZXMvZGlyLW1heHBhdGgvMDYuY3J0CisrKyAvZGV2L251bGwKQEAgLTEsMTIgKzAsMCBAQAotLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCi1NSUlCMWpDQ0FYMmdBd0lCQWdJQkFUQUtCZ2dxaGtqT1BRUURBakF2TVFzd0NRWURWUVFHRXdKVlN6RVJNQThHCi1BMVVFQ2d3SWJXSmxaQ0JVVEZNeERUQUxCZ05WQkFNTUJFTkJNRFV3SGhjTk1UY3dOakl5TVRFMU1ETXlXaGNOCi1NamN3TmpJek1URTFNRE15V2pBdk1Rc3dDUVlEVlFRR0V3SlZTekVSTUE4R0ExVUVDZ3dJYldKbFpDQlVURk14Ci1EVEFMQmdOVkJBTU1CRU5CTURZd1dUQVRCZ2NxaGtqT1BRSUJCZ2dxaGtqT1BRTUJCd05DQUFTQTlxV29BVUhyCi1ubisza3h5TnJqUEprODJXRExpbVcyMVJONTF1eHBvYmFkdjhZZ0dFRFJkUCtPayt1UnFRU1VzQTZaWGZGM2lHCi1yMkdqZlEzd01ESDhvNEdKTUlHR01CMEdBMVVkRGdRV0JCU2pvdllhQy9tNkxpOVRwMFY5aVpSczkyNjdRekJYCi1CZ05WSFNNRVVEQk9nQlRYaDA2TUFWOVM0bDRsRzFUS09yS1JCaDRxbjZFenBERXdMekVMTUFrR0ExVUVCaE1DCi1WVXN4RVRBUEJnTlZCQW9NQ0cxaVpXUWdWRXhUTVEwd0N3WURWUVFEREFSRFFUQTBnZ0VCTUF3R0ExVWRFd1FGCi1NQU1CQWY4d0NnWUlLb1pJemowRUF3SURSd0F3UkFJZ2NqWk5GV0p0bERtb1BaYkF4cXNHY3pSWUswbGZQZ3U2Ci1nMUg3cHAwY2Urd0NJRGo5QlJaTTJPQjlFRjBlK01ES0dqeVpHZnZmckw2SXI0N3gvS3JNNkg4VAotLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQpkaWZmIC0tZ2l0IGEvdGVzdHMvZGF0YV9maWxlcy9kaXItbWF4cGF0aC8wNi5rZXkgYi90ZXN0cy9kYXRhX2ZpbGVzL2Rpci1tYXhwYXRoLzA2LmtleQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNWIwYmNlMi4uMDAwMDAwMAotLS0gYS90ZXN0cy9kYXRhX2ZpbGVzL2Rpci1tYXhwYXRoLzA2LmtleQorKysgL2Rldi9udWxsCkBAIC0xLDggKzAsMCBAQAotLS0tLS1CRUdJTiBFQyBQQVJBTUVURVJTLS0tLS0KLUJnZ3Foa2pPUFFNQkJ3PT0KLS0tLS0tRU5EIEVDIFBBUkFNRVRFUlMtLS0tLQotLS0tLS1CRUdJTiBFQyBQUklWQVRFIEtFWS0tLS0tCi1NSGNDQVFFRUlFU1VoUWdYV2Q4Y1ZRbml0TkVwT0QySk5NcUg5dWcvd1lhWTF4VzNTYVNHb0FvR0NDcUdTTTQ5Ci1Bd0VIb1VRRFFnQUVnUGFscUFGQjY1NS90NU1jamE0enlaUE5sZ3k0cGx0dFVUZWRic2FhRzJuYi9HSUJoQTBYCi1UL2pwUHJrYWtFbExBT21WM3hkNGhxOWhvMzBOOERBeC9BPT0KLS0tLS0tRU5EIEVDIFBSSVZBVEUgS0VZLS0tLS0KZGlmZiAtLWdpdCBhL3Rlc3RzL2RhdGFfZmlsZXMvZGlyLW1heHBhdGgvMDcuY3J0IGIvdGVzdHMvZGF0YV9maWxlcy9kaXItbWF4cGF0aC8wNy5jcnQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDViYjU3ZjguLjAwMDAwMDAKLS0tIGEvdGVzdHMvZGF0YV9maWxlcy9kaXItbWF4cGF0aC8wNy5jcnQKKysrIC9kZXYvbnVsbApAQCAtMSwxMiArMCwwIEBACi0tLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KLU1JSUIyRENDQVgyZ0F3SUJBZ0lCQVRBS0JnZ3Foa2pPUFFRREFqQXZNUXN3Q1FZRFZRUUdFd0pWU3pFUk1BOEcKLUExVUVDZ3dJYldKbFpDQlVURk14RFRBTEJnTlZCQU1NQkVOQk1EWXdIaGNOTVRjd05qSXlNVEUxTURNeVdoY04KLU1qY3dOakl6TVRFMU1ETXlXakF2TVFzd0NRWURWUVFHRXdKVlN6RVJNQThHQTFVRUNnd0liV0psWkNCVVRGTXgKLURUQUxCZ05WQkFNTUJFTkJNRGN3V1RBVEJnY3Foa2pPUFFJQkJnZ3Foa2pPUFFNQkJ3TkNBQVNOT2o0ZDRNRUEKLTdwLzNtaWlqcUc0VG9FNG9wS1BBbSszQlRJR3JKVFlUMTQrK1RTaVVJQ2wwQVNYait4ZVVjTE1JYVhUTjA0MnMKLUxzSHhwU2h6UWFMMG80R0pNSUdHTUIwR0ExVWREZ1FXQkJSRXE1SjN0b0pQeFozTytzc0o1dmtrVTBSSkV6QlgKLUJnTlZIU01FVURCT2dCU2pvdllhQy9tNkxpOVRwMFY5aVpSczkyNjdRNkV6cERFd0x6RUxNQWtHQTFVRUJoTUMKLVZVc3hFVEFQQmdOVkJBb01DRzFpWldRZ1ZFeFRNUTB3Q3dZRFZRUUREQVJEUVRBMWdnRUJNQXdHQTFVZEV3UUYKLU1BTUJBZjh3Q2dZSUtvWkl6ajBFQXdJRFNRQXdSZ0loQUtHY2YrYzQ0MmMvWGl3dWJiYWlRdnNvWjdFb1Z4dU0KLW9LbWlhMGdQeUJOa0FpRUE4M2Fzako1RkRYUXVMeVpwY3p2aVhyYm1xZ0NQT2ZZYWR0dmtjMGN4TWlzPQotLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQpkaWZmIC0tZ2l0IGEvdGVzdHMvZGF0YV9maWxlcy9kaXItbWF4cGF0aC8wNy5rZXkgYi90ZXN0cy9kYXRhX2ZpbGVzL2Rpci1tYXhwYXRoLzA3LmtleQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggM2YyMDEzMS4uMDAwMDAwMAotLS0gYS90ZXN0cy9kYXRhX2ZpbGVzL2Rpci1tYXhwYXRoLzA3LmtleQorKysgL2Rldi9udWxsCkBAIC0xLDggKzAsMCBAQAotLS0tLS1CRUdJTiBFQyBQQVJBTUVURVJTLS0tLS0KLUJnZ3Foa2pPUFFNQkJ3PT0KLS0tLS0tRU5EIEVDIFBBUkFNRVRFUlMtLS0tLQotLS0tLS1CRUdJTiBFQyBQUklWQVRFIEtFWS0tLS0tCi1NSGNDQVFFRUlFaTFvS0luUExiaUlOajhPeGRBY3RWVGdJK1lRVlNlZmRRZkN1MWloYkxSb0FvR0NDcUdTTTQ5Ci1Bd0VIb1VRRFFnQUVqVG8rSGVEQkFPNmY5NW9vbzZodUU2Qk9LS1Nqd0p2dHdVeUJxeVUyRTllUHZrMG9sQ0FwCi1kQUVsNC9zWGxIQ3pDR2wwemRPTnJDN0I4YVVvYzBHaTlBPT0KLS0tLS0tRU5EIEVDIFBSSVZBVEUgS0VZLS0tLS0KZGlmZiAtLWdpdCBhL3Rlc3RzL2RhdGFfZmlsZXMvZGlyLW1heHBhdGgvMDguY3J0IGIvdGVzdHMvZGF0YV9maWxlcy9kaXItbWF4cGF0aC8wOC5jcnQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGJmMWYzM2UuLjAwMDAwMDAKLS0tIGEvdGVzdHMvZGF0YV9maWxlcy9kaXItbWF4cGF0aC8wOC5jcnQKKysrIC9kZXYvbnVsbApAQCAtMSwxMiArMCwwIEBACi0tLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KLU1JSUIyRENDQVgyZ0F3SUJBZ0lCQVRBS0JnZ3Foa2pPUFFRREFqQXZNUXN3Q1FZRFZRUUdFd0pWU3pFUk1BOEcKLUExVUVDZ3dJYldKbFpDQlVURk14RFRBTEJnTlZCQU1NQkVOQk1EY3dIaGNOTVRjd05qSXlNVEUxTURNeVdoY04KLU1qY3dOakl6TVRFMU1ETXlXakF2TVFzd0NRWURWUVFHRXdKVlN6RVJNQThHQTFVRUNnd0liV0psWkNCVVRGTXgKLURUQUxCZ05WQkFNTUJFTkJNRGd3V1RBVEJnY3Foa2pPUFFJQkJnZ3Foa2pPUFFNQkJ3TkNBQVJwUWVRL1lHUWoKLW5sN1N6bzZXU3RKMXU3eHVuVEw1akJrWEg4YUFWU20wcWlYNEFELzdZUHhhNUVuR3paZExUbjI1dlFWbmZRQUcKLXBNeDhQMWxZaUdZQ280R0pNSUdHTUIwR0ExVWREZ1FXQkJTNDBtTHQ5M1U4U2g4WkdpRFZBaFJTaUJQY1hqQlgKLUJnTlZIU01FVURCT2dCUkVxNUozdG9KUHhaM08rc3NKNXZra1UwUkpFNkV6cERFd0x6RUxNQWtHQTFVRUJoTUMKLVZVc3hFVEFQQmdOVkJBb01DRzFpWldRZ1ZFeFRNUTB3Q3dZRFZRUUREQVJEUVRBMmdnRUJNQXdHQTFVZEV3UUYKLU1BTUJBZjh3Q2dZSUtvWkl6ajBFQXdJRFNRQXdSZ0loQU53R2YrRjRhK2ttWFd6OFVqU3BSa2FUb1RWNkVGV3cKLS9UanpqMHRRaERvQUFpRUExOVJ4ZVdPVkJCcE02TE9IZzZ2NUxmNTRZTjFzbmtMZitzRVh5WkN1V1FRPQotLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQpkaWZmIC0tZ2l0IGEvdGVzdHMvZGF0YV9maWxlcy9kaXItbWF4cGF0aC8wOC5rZXkgYi90ZXN0cy9kYXRhX2ZpbGVzL2Rpci1tYXhwYXRoLzA4LmtleQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZDFlZTljNS4uMDAwMDAwMAotLS0gYS90ZXN0cy9kYXRhX2ZpbGVzL2Rpci1tYXhwYXRoLzA4LmtleQorKysgL2Rldi9udWxsCkBAIC0xLDggKzAsMCBAQAotLS0tLS1CRUdJTiBFQyBQQVJBTUVURVJTLS0tLS0KLUJnZ3Foa2pPUFFNQkJ3PT0KLS0tLS0tRU5EIEVDIFBBUkFNRVRFUlMtLS0tLQotLS0tLS1CRUdJTiBFQyBQUklWQVRFIEtFWS0tLS0tCi1NSGNDQVFFRUlDOE0yRzdYY3FlYWdZZ3Q4U1pKYnVUaDR0WWNoR3ZYM3lEWkpLVHVCZ0ZVb0FvR0NDcUdTTTQ5Ci1Bd0VIb1VRRFFnQUVhVUhrUDJCa0k1NWUwczZPbGtyU2RidThicDB5K1l3WkZ4L0dnRlVwdEtvbCtBQS8rMkQ4Ci1XdVJKeHMyWFMwNTl1YjBGWjMwQUJxVE1mRDlaV0lobUFnPT0KLS0tLS0tRU5EIEVDIFBSSVZBVEUgS0VZLS0tLS0KZGlmZiAtLWdpdCBhL3Rlc3RzL2RhdGFfZmlsZXMvZGlyLW1heHBhdGgvMDkuY3J0IGIvdGVzdHMvZGF0YV9maWxlcy9kaXItbWF4cGF0aC8wOS5jcnQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDhmNjdlNTQuLjAwMDAwMDAKLS0tIGEvdGVzdHMvZGF0YV9maWxlcy9kaXItbWF4cGF0aC8wOS5jcnQKKysrIC9kZXYvbnVsbApAQCAtMSwxMiArMCwwIEBACi0tLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KLU1JSUIxakNDQVgyZ0F3SUJBZ0lCQVRBS0JnZ3Foa2pPUFFRREFqQXZNUXN3Q1FZRFZRUUdFd0pWU3pFUk1BOEcKLUExVUVDZ3dJYldKbFpDQlVURk14RFRBTEJnTlZCQU1NQkVOQk1EZ3dIaGNOTVRjd05qSXlNVEUxTURNeldoY04KLU1qY3dOakl6TVRFMU1ETXpXakF2TVFzd0NRWURWUVFHRXdKVlN6RVJNQThHQTFVRUNnd0liV0psWkNCVVRGTXgKLURUQUxCZ05WQkFNTUJFTkJNRGt3V1RBVEJnY3Foa2pPUFFJQkJnZ3Foa2pPUFFNQkJ3TkNBQVI3WkIxNit0NkUKLXNmYWhHeUtVR0pXNW1lemt6amRhWXZjNGxiSmFLTlJ3RlJmYzNGL2ZtTk9Tc1VGU2cvRjBOK3ZVRStkb0tpUEMKLTh3UndMenZtNHMrNW80R0pNSUdHTUIwR0ExVWREZ1FXQkJUNmd5WEh6UElQWWMxVnIxYUdpTExlTWg0SHBqQlgKLUJnTlZIU01FVURCT2dCUzQwbUx0OTNVOFNoOFpHaURWQWhSU2lCUGNYcUV6cERFd0x6RUxNQWtHQTFVRUJoTUMKLVZVc3hFVEFQQmdOVkJBb01DRzFpWldRZ1ZFeFRNUTB3Q3dZRFZRUUREQVJEUVRBM2dnRUJNQXdHQTFVZEV3UUYKLU1BTUJBZjh3Q2dZSUtvWkl6ajBFQXdJRFJ3QXdSQUlnTzRlbDFaUGhsSWxpL3FOUjJTSUVpdXZzNU1teTg2OGkKLU4yUnY1WC9WeElFQ0lBLzhyVUFMUXhXMzhYU2RCVlgzZS9qenU3anU0N24xWXdFcUQ5SzlXZFZ2Ci0tLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCmRpZmYgLS1naXQgYS90ZXN0cy9kYXRhX2ZpbGVzL2Rpci1tYXhwYXRoLzA5LmtleSBiL3Rlc3RzL2RhdGFfZmlsZXMvZGlyLW1heHBhdGgvMDkua2V5CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmZTZhMDZmLi4wMDAwMDAwCi0tLSBhL3Rlc3RzL2RhdGFfZmlsZXMvZGlyLW1heHBhdGgvMDkua2V5CisrKyAvZGV2L251bGwKQEAgLTEsOCArMCwwIEBACi0tLS0tLUJFR0lOIEVDIFBBUkFNRVRFUlMtLS0tLQotQmdncWhrak9QUU1CQnc9PQotLS0tLS1FTkQgRUMgUEFSQU1FVEVSUy0tLS0tCi0tLS0tLUJFR0lOIEVDIFBSSVZBVEUgS0VZLS0tLS0KLU1IY0NBUUVFSUtrZHhlZ1A1eU44NDBzQkR4SVBwaU1mdFpzczE0dUxhSDd6b3hPcXJlUERvQW9HQ0NxR1NNNDkKLUF3RUhvVVFEUWdBRWUyUWRldnJlaExIMm9Sc2lsQmlWdVpuczVNNDNXbUwzT0pXeVdpalVjQlVYM054ZjM1alQKLWtyRkJVb1B4ZERmcjFCUG5hQ29qd3ZNRWNDODc1dUxQdVE9PQotLS0tLS1FTkQgRUMgUFJJVkFURSBLRVktLS0tLQpkaWZmIC0tZ2l0IGEvdGVzdHMvZGF0YV9maWxlcy9kaXItbWF4cGF0aC8xMC5jcnQgYi90ZXN0cy9kYXRhX2ZpbGVzL2Rpci1tYXhwYXRoLzEwLmNydApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNzJlNjk5YS4uMDAwMDAwMAotLS0gYS90ZXN0cy9kYXRhX2ZpbGVzL2Rpci1tYXhwYXRoLzEwLmNydAorKysgL2Rldi9udWxsCkBAIC0xLDEyICswLDAgQEAKLS0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQotTUlJQjF6Q0NBWDJnQXdJQkFnSUJBVEFLQmdncWhrak9QUVFEQWpBdk1Rc3dDUVlEVlFRR0V3SlZTekVSTUE4RwotQTFVRUNnd0liV0psWkNCVVRGTXhEVEFMQmdOVkJBTU1CRU5CTURrd0hoY05NVGN3TmpJeU1URTFNRE16V2hjTgotTWpjd05qSXpNVEUxTURNeldqQXZNUXN3Q1FZRFZRUUdFd0pWU3pFUk1BOEdBMVVFQ2d3SWJXSmxaQ0JVVEZNeAotRFRBTEJnTlZCQU1NQkVOQk1UQXdXVEFUQmdjcWhrak9QUUlCQmdncWhrak9QUU1CQndOQ0FBUjZqbEdLYkpkNQotaGlEeE43ODlna09jd3B5SEk5d1J3Q3JBREFPd09rTWVQQlBSbHdHZG03bXc3Wi9FQW11MjZ6Um0vaGN5cnM0TQotcWsyTGFiRGpQSTlYbzRHSk1JR0dNQjBHQTFVZERnUVdCQlF0eFpTTEpBa0V6KzJSS01RZXhNNkV0c2ZnY2pCWAotQmdOVkhTTUVVREJPZ0JUNmd5WEh6UElQWWMxVnIxYUdpTExlTWg0SHBxRXpwREV3THpFTE1Ba0dBMVVFQmhNQwotVlVzeEVUQVBCZ05WQkFvTUNHMWlaV1FnVkV4VE1RMHdDd1lEVlFRRERBUkRRVEE0Z2dFQk1Bd0dBMVVkRXdRRgotTUFNQkFmOHdDZ1lJS29aSXpqMEVBd0lEU0FBd1JRSWdQN1M4dkZzdGZVQmROZTZ5bTVHWUc1USthQlZFS3FScwotZlZXN0hOVWt0U1lDSVFEbzZKdWE2by9ESmJycHE0cVlXcTVndjR5R3l6UFROKzNJYUtyRUlDZGFhdz09Ci0tLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCmRpZmYgLS1naXQgYS90ZXN0cy9kYXRhX2ZpbGVzL2Rpci1tYXhwYXRoLzEwLmtleSBiL3Rlc3RzL2RhdGFfZmlsZXMvZGlyLW1heHBhdGgvMTAua2V5CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjNTU1OGY1Li4wMDAwMDAwCi0tLSBhL3Rlc3RzL2RhdGFfZmlsZXMvZGlyLW1heHBhdGgvMTAua2V5CisrKyAvZGV2L251bGwKQEAgLTEsOCArMCwwIEBACi0tLS0tLUJFR0lOIEVDIFBBUkFNRVRFUlMtLS0tLQotQmdncWhrak9QUU1CQnc9PQotLS0tLS1FTkQgRUMgUEFSQU1FVEVSUy0tLS0tCi0tLS0tLUJFR0lOIEVDIFBSSVZBVEUgS0VZLS0tLS0KLU1IY0NBUUVFSVB1UFBNeG81ZTJkb0k3WWZEcDYwcW1FbjRZd1lzMnNiNVFsT3BGUTNCSUpvQW9HQ0NxR1NNNDkKLUF3RUhvVVFEUWdBRWVvNVJpbXlYZVlZZzhUZS9QWUpEbk1LY2h5UGNFY0Fxd0F3RHNEcERIandUMFpjQm5adTUKLXNPMmZ4QUpydHVzMFp2NFhNcTdPREtwTmkybXc0enlQVnc9PQotLS0tLS1FTkQgRUMgUFJJVkFURSBLRVktLS0tLQpkaWZmIC0tZ2l0IGEvdGVzdHMvZGF0YV9maWxlcy9kaXItbWF4cGF0aC8xMS5jcnQgYi90ZXN0cy9kYXRhX2ZpbGVzL2Rpci1tYXhwYXRoLzExLmNydApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZTA5ZTQ5Zi4uMDAwMDAwMAotLS0gYS90ZXN0cy9kYXRhX2ZpbGVzL2Rpci1tYXhwYXRoLzExLmNydAorKysgL2Rldi9udWxsCkBAIC0xLDEyICswLDAgQEAKLS0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQotTUlJQjFqQ0NBWDJnQXdJQkFnSUJBVEFLQmdncWhrak9QUVFEQWpBdk1Rc3dDUVlEVlFRR0V3SlZTekVSTUE4RwotQTFVRUNnd0liV0psWkNCVVRGTXhEVEFMQmdOVkJBTU1CRU5CTVRBd0hoY05NVGN3TmpJeU1URTFNRE16V2hjTgotTWpjd05qSXpNVEUxTURNeldqQXZNUXN3Q1FZRFZRUUdFd0pWU3pFUk1BOEdBMVVFQ2d3SWJXSmxaQ0JVVEZNeAotRFRBTEJnTlZCQU1NQkVOQk1URXdXVEFUQmdjcWhrak9QUUlCQmdncWhrak9QUU1CQndOQ0FBVFp3UitXSzZOQgotRi83cmlGZE42M2M4aGpZZGRaUlI0bHJ6Vk5Qd2lCUXhubnh3cFB5ckQ5QTZhUFBtTGM2U3FHT0pXNFpHVkNjbwotSUJ6ZTlSSlZlaUI5bzRHSk1JR0dNQjBHQTFVZERnUVdCQlNPU3Q2ZVB5TVJUNlBHTWFJaTdGcU5YOU1LdERCWAotQmdOVkhTTUVVREJPZ0JRdHhaU0xKQWtFeisyUktNUWV4TTZFdHNmZ2NxRXpwREV3THpFTE1Ba0dBMVVFQmhNQwotVlVzeEVUQVBCZ05WQkFvTUNHMWlaV1FnVkV4VE1RMHdDd1lEVlFRRERBUkRRVEE1Z2dFQk1Bd0dBMVVkRXdRRgotTUFNQkFmOHdDZ1lJS29aSXpqMEVBd0lEUndBd1JBSWdOLy9OcU0wRnJrck1qbXhvZUNZOURneGtIMlI2c1E0ZAotTmd0d0NaQUlxRUlDSUJzNHZ1cGFWY3V2bmk5dGx0YlAyNndpN2MwRlIrYmxadW81RFBJQTNTVmUKLS0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KZGlmZiAtLWdpdCBhL3Rlc3RzL2RhdGFfZmlsZXMvZGlyLW1heHBhdGgvMTEua2V5IGIvdGVzdHMvZGF0YV9maWxlcy9kaXItbWF4cGF0aC8xMS5rZXkKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGIzNGJmOGMuLjAwMDAwMDAKLS0tIGEvdGVzdHMvZGF0YV9maWxlcy9kaXItbWF4cGF0aC8xMS5rZXkKKysrIC9kZXYvbnVsbApAQCAtMSw4ICswLDAgQEAKLS0tLS0tQkVHSU4gRUMgUEFSQU1FVEVSUy0tLS0tCi1CZ2dxaGtqT1BRTUJCdz09Ci0tLS0tLUVORCBFQyBQQVJBTUVURVJTLS0tLS0KLS0tLS0tQkVHSU4gRUMgUFJJVkFURSBLRVktLS0tLQotTUhjQ0FRRUVJSGFNaWVIMi93bjZsbnNGVUd6d3c0M3ltaE4xNlowbmhHNVR5dk5lWThVMm9Bb0dDQ3FHU000OQotQXdFSG9VUURRZ0FFMmNFZmxpdWpRUmYrNjRoWFRldDNQSVkySFhXVVVlSmE4MVRUOElnVU1aNThjS1Q4cXcvUQotT21qejVpM09rcWhqaVZ1R1JsUW5LQ0FjM3ZVU1ZYb2dmUT09Ci0tLS0tLUVORCBFQyBQUklWQVRFIEtFWS0tLS0tCmRpZmYgLS1naXQgYS90ZXN0cy9kYXRhX2ZpbGVzL2Rpci1tYXhwYXRoLzEyLmNydCBiL3Rlc3RzL2RhdGFfZmlsZXMvZGlyLW1heHBhdGgvMTIuY3J0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5MWVmOWIwLi4wMDAwMDAwCi0tLSBhL3Rlc3RzL2RhdGFfZmlsZXMvZGlyLW1heHBhdGgvMTIuY3J0CisrKyAvZGV2L251bGwKQEAgLTEsMTIgKzAsMCBAQAotLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCi1NSUlCMWpDQ0FYMmdBd0lCQWdJQkFUQUtCZ2dxaGtqT1BRUURBakF2TVFzd0NRWURWUVFHRXdKVlN6RVJNQThHCi1BMVVFQ2d3SWJXSmxaQ0JVVEZNeERUQUxCZ05WQkFNTUJFTkJNVEV3SGhjTk1UY3dOakl5TVRFMU1ETXpXaGNOCi1NamN3TmpJek1URTFNRE16V2pBdk1Rc3dDUVlEVlFRR0V3SlZTekVSTUE4R0ExVUVDZ3dJYldKbFpDQlVURk14Ci1EVEFMQmdOVkJBTU1CRU5CTVRJd1dUQVRCZ2NxaGtqT1BRSUJCZ2dxaGtqT1BRTUJCd05DQUFUREU5TFBsTFBjCi1nWjNiMEJjaFIvQWtoTkVQOUhBYXZ3WWFkSkl5em9QbzVlZENWbmJvUUg3ODZqc1p3Wk5ab0MwZ0hEQWhDbUdjCi1JZlJlbklTQW9WdVBvNEdKTUlHR01CMEdBMVVkRGdRV0JCVFpUdGJpK2owU20vWnMvK2dUa1dkQVNwUXpmakJYCi1CZ05WSFNNRVVEQk9nQlNPU3Q2ZVB5TVJUNlBHTWFJaTdGcU5YOU1LdEtFenBERXdMekVMTUFrR0ExVUVCaE1DCi1WVXN4RVRBUEJnTlZCQW9NQ0cxaVpXUWdWRXhUTVEwd0N3WURWUVFEREFSRFFURXdnZ0VCTUF3R0ExVWRFd1FGCi1NQU1CQWY4d0NnWUlLb1pJemowRUF3SURSd0F3UkFJZ1lZRjVBblJWN2VoMmhMRDVEei8vcGNlTVRLejlMczQ2Ci1FNkR4dmJmREhpa0NJRnR0bEdyT0NaVnlTNG9jc2p1S0lFTFZVWDVxZnlnSTBzbjRrVTNxQ1RzMgotLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQpkaWZmIC0tZ2l0IGEvdGVzdHMvZGF0YV9maWxlcy9kaXItbWF4cGF0aC8xMi5rZXkgYi90ZXN0cy9kYXRhX2ZpbGVzL2Rpci1tYXhwYXRoLzEyLmtleQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOTA2YmRjNi4uMDAwMDAwMAotLS0gYS90ZXN0cy9kYXRhX2ZpbGVzL2Rpci1tYXhwYXRoLzEyLmtleQorKysgL2Rldi9udWxsCkBAIC0xLDggKzAsMCBAQAotLS0tLS1CRUdJTiBFQyBQQVJBTUVURVJTLS0tLS0KLUJnZ3Foa2pPUFFNQkJ3PT0KLS0tLS0tRU5EIEVDIFBBUkFNRVRFUlMtLS0tLQotLS0tLS1CRUdJTiBFQyBQUklWQVRFIEtFWS0tLS0tCi1NSGNDQVFFRUlBemhBY2MxWWIydTRic1FEYVllUmFSVzhrSi9IekZUVGZJTlYxaytUeFovb0FvR0NDcUdTTTQ5Ci1Bd0VIb1VRRFFnQUV3eFBTejVTejNJR2QyOUFYSVVmd0pJVFJEL1J3R3I4R0duU1NNczZENk9YblFsWjI2RUIrCi0vT283R2NHVFdhQXRJQnd3SVFwaG5DSDBYcHlFZ0tGYmp3PT0KLS0tLS0tRU5EIEVDIFBSSVZBVEUgS0VZLS0tLS0KZGlmZiAtLWdpdCBhL3Rlc3RzL2RhdGFfZmlsZXMvZGlyLW1heHBhdGgvMTMuY3J0IGIvdGVzdHMvZGF0YV9maWxlcy9kaXItbWF4cGF0aC8xMy5jcnQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGMyM2MxNjUuLjAwMDAwMDAKLS0tIGEvdGVzdHMvZGF0YV9maWxlcy9kaXItbWF4cGF0aC8xMy5jcnQKKysrIC9kZXYvbnVsbApAQCAtMSwxMiArMCwwIEBACi0tLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KLU1JSUIxekNDQVgyZ0F3SUJBZ0lCQVRBS0JnZ3Foa2pPUFFRREFqQXZNUXN3Q1FZRFZRUUdFd0pWU3pFUk1BOEcKLUExVUVDZ3dJYldKbFpDQlVURk14RFRBTEJnTlZCQU1NQkVOQk1USXdIaGNOTVRjd05qSXlNVEUxTURNeldoY04KLU1qY3dOakl6TVRFMU1ETXpXakF2TVFzd0NRWURWUVFHRXdKVlN6RVJNQThHQTFVRUNnd0liV0psWkNCVVRGTXgKLURUQUxCZ05WQkFNTUJFTkJNVE13V1RBVEJnY3Foa2pPUFFJQkJnZ3Foa2pPUFFNQkJ3TkNBQVRya3pDSkx6bmgKLWxobnN2MVJYQjlrZmVhRCtjSXJ1UFEwY0l0QkRHcGR2RDh4YkJWdlFjaTQrUkcyUlZVQ1NXUmhrRllqU3NVU00KLTBRSE1RbkJGbGh3Mm80R0pNSUdHTUIwR0ExVWREZ1FXQkJUbVZuVVNGMk1Zd3dzL25DTXY3YjF3SlZrRG1qQlgKLUJnTlZIU01FVURCT2dCVFpUdGJpK2owU20vWnMvK2dUa1dkQVNwUXpmcUV6cERFd0x6RUxNQWtHQTFVRUJoTUMKLVZVc3hFVEFQQmdOVkJBb01DRzFpWldRZ1ZFeFRNUTB3Q3dZRFZRUUREQVJEUVRFeGdnRUJNQXdHQTFVZEV3UUYKLU1BTUJBZjh3Q2dZSUtvWkl6ajBFQXdJRFNBQXdSUUlnV3NtK3JISmd3VUV5Tm04RUtiRWRzNXl1cnBwNS8zeTUKLVBzdlhKVkRxeG9nQ0lRRFVQMEpjbDNBOTA3Q0UydFBWWFNnRDZMUTZDUHUxOW1peGVtUHc2MHlpakE9PQotLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQpkaWZmIC0tZ2l0IGEvdGVzdHMvZGF0YV9maWxlcy9kaXItbWF4cGF0aC8xMy5rZXkgYi90ZXN0cy9kYXRhX2ZpbGVzL2Rpci1tYXhwYXRoLzEzLmtleQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYzhhMDRlZi4uMDAwMDAwMAotLS0gYS90ZXN0cy9kYXRhX2ZpbGVzL2Rpci1tYXhwYXRoLzEzLmtleQorKysgL2Rldi9udWxsCkBAIC0xLDggKzAsMCBAQAotLS0tLS1CRUdJTiBFQyBQQVJBTUVURVJTLS0tLS0KLUJnZ3Foa2pPUFFNQkJ3PT0KLS0tLS0tRU5EIEVDIFBBUkFNRVRFUlMtLS0tLQotLS0tLS1CRUdJTiBFQyBQUklWQVRFIEtFWS0tLS0tCi1NSGNDQVFFRUlLYjk2NkZYTWg4Y0ZRdDNzVnBtY3JoMi8zeWFHaUxNd3orL1hHS0dNSisyb0FvR0NDcUdTTTQ5Ci1Bd0VIb1VRRFFnQUU2NU13aVM4NTRaWVo3TDlVVndmWkgzbWcvbkNLN2owTkhDTFFReHFYYncvTVd3VmIwSEl1Ci1Qa1J0a1ZWQWtsa1laQldJMHJGRWpORUJ6RUp3UlpZY05nPT0KLS0tLS0tRU5EIEVDIFBSSVZBVEUgS0VZLS0tLS0KZGlmZiAtLWdpdCBhL3Rlc3RzL2RhdGFfZmlsZXMvZGlyLW1heHBhdGgvMTQuY3J0IGIvdGVzdHMvZGF0YV9maWxlcy9kaXItbWF4cGF0aC8xNC5jcnQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDVjYTMyM2MuLjAwMDAwMDAKLS0tIGEvdGVzdHMvZGF0YV9maWxlcy9kaXItbWF4cGF0aC8xNC5jcnQKKysrIC9kZXYvbnVsbApAQCAtMSwxMiArMCwwIEBACi0tLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KLU1JSUIxekNDQVgyZ0F3SUJBZ0lCQVRBS0JnZ3Foa2pPUFFRREFqQXZNUXN3Q1FZRFZRUUdFd0pWU3pFUk1BOEcKLUExVUVDZ3dJYldKbFpDQlVURk14RFRBTEJnTlZCQU1NQkVOQk1UTXdIaGNOTVRjd05qSXlNVEUxTURNeldoY04KLU1qY3dOakl6TVRFMU1ETXpXakF2TVFzd0NRWURWUVFHRXdKVlN6RVJNQThHQTFVRUNnd0liV0psWkNCVVRGTXgKLURUQUxCZ05WQkFNTUJFTkJNVFF3V1RBVEJnY3Foa2pPUFFJQkJnZ3Foa2pPUFFNQkJ3TkNBQVRSTVpOMFJIelAKLWRvbk5tWnVxOVhQaHp2UTUyVGFva3hUMzlxcFF0bEZ5dlV1RUdLckxvTnZkY3BBUmFBMHJHcHV0NlJMQVFPVlUKLWlOVmxKM0lwajc4OW80R0pNSUdHTUIwR0ExVWREZ1FXQkJSTnNKQisrY2NTQm1iQ0NLQnhpNENqWFJPQmt6QlgKLUJnTlZIU01FVURCT2dCVG1WblVTRjJNWXd3cy9uQ012N2Ixd0pWa0RtcUV6cERFd0x6RUxNQWtHQTFVRUJoTUMKLVZVc3hFVEFQQmdOVkJBb01DRzFpWldRZ1ZFeFRNUTB3Q3dZRFZRUUREQVJEUVRFeWdnRUJNQXdHQTFVZEV3UUYKLU1BTUJBZjh3Q2dZSUtvWkl6ajBFQXdJRFNBQXdSUUlnVmZ1THBqcDA4QWF4S1dmNmN1WlVVQ1JkN0NvalNTMUkKLTcxaHplVXlGUytzQ0lRRE5KSTZQL3BCYmlIZ1RhR2xCQWdmY0VmbXhtYlkwbjR4Wm5kdHhJa215VkE9PQotLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQpkaWZmIC0tZ2l0IGEvdGVzdHMvZGF0YV9maWxlcy9kaXItbWF4cGF0aC8xNC5rZXkgYi90ZXN0cy9kYXRhX2ZpbGVzL2Rpci1tYXhwYXRoLzE0LmtleQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYTUyNmExOC4uMDAwMDAwMAotLS0gYS90ZXN0cy9kYXRhX2ZpbGVzL2Rpci1tYXhwYXRoLzE0LmtleQorKysgL2Rldi9udWxsCkBAIC0xLDggKzAsMCBAQAotLS0tLS1CRUdJTiBFQyBQQVJBTUVURVJTLS0tLS0KLUJnZ3Foa2pPUFFNQkJ3PT0KLS0tLS0tRU5EIEVDIFBBUkFNRVRFUlMtLS0tLQotLS0tLS1CRUdJTiBFQyBQUklWQVRFIEtFWS0tLS0tCi1NSGNDQVFFRUlLRXljSk5MeVlKNUpnRUNwQ3VaaUZlWFpJTUMrWHNNRUtvTWhSVHg2eEQrb0FvR0NDcUdTTTQ5Ci1Bd0VIb1VRRFFnQUUwVEdUZEVSOHozYUp6Wm1icXZWejRjNzBPZGsycUpNVTkvYXFVTFpSY3IxTGhCaXF5NkRiCi0zWEtRRVdnTkt4cWJyZWtTd0VEbFZJalZaU2R5S1krL1BRPT0KLS0tLS0tRU5EIEVDIFBSSVZBVEUgS0VZLS0tLS0KZGlmZiAtLWdpdCBhL3Rlc3RzL2RhdGFfZmlsZXMvZGlyLW1heHBhdGgvMTUuY3J0IGIvdGVzdHMvZGF0YV9maWxlcy9kaXItbWF4cGF0aC8xNS5jcnQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGJlZjkyM2EuLjAwMDAwMDAKLS0tIGEvdGVzdHMvZGF0YV9maWxlcy9kaXItbWF4cGF0aC8xNS5jcnQKKysrIC9kZXYvbnVsbApAQCAtMSwxMiArMCwwIEBACi0tLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KLU1JSUIxekNDQVgyZ0F3SUJBZ0lCQVRBS0JnZ3Foa2pPUFFRREFqQXZNUXN3Q1FZRFZRUUdFd0pWU3pFUk1BOEcKLUExVUVDZ3dJYldKbFpDQlVURk14RFRBTEJnTlZCQU1NQkVOQk1UUXdIaGNOTVRjd05qSXlNVEUxTURNeldoY04KLU1qY3dOakl6TVRFMU1ETXpXakF2TVFzd0NRWURWUVFHRXdKVlN6RVJNQThHQTFVRUNnd0liV0psWkNCVVRGTXgKLURUQUxCZ05WQkFNTUJFTkJNVFV3V1RBVEJnY3Foa2pPUFFJQkJnZ3Foa2pPUFFNQkJ3TkNBQVFsS1VpTW9Tc3MKLS9oc1Rhc2VkcWRCMkJDT0dKaFR0MGhnVUdlVW5XTloxc3ZPNHluMEdrRkhaMDgrK2ZsMk1LcWpwaitWWHEwSlMKLUZGeUdVT2dtZ2kzSG80R0pNSUdHTUIwR0ExVWREZ1FXQkJSMW1YbHJkVzVyeDFWbnFNTW5VQlhvMFdXR1dqQlgKLUJnTlZIU01FVURCT2dCUk5zSkIrK2NjU0JtYkNDS0J4aTRDalhST0JrNkV6cERFd0x6RUxNQWtHQTFVRUJoTUMKLVZVc3hFVEFQQmdOVkJBb01DRzFpWldRZ1ZFeFRNUTB3Q3dZRFZRUUREQVJEUVRFemdnRUJNQXdHQTFVZEV3UUYKLU1BTUJBZjh3Q2dZSUtvWkl6ajBFQXdJRFNBQXdSUUloQUtZT0lvK2ZkQ1FScXBINExOOHFVSzFhS3pLbVdHeFMKLWZHekVFa2cvMjliTUFpQWw5NWNtdWNvQ0RNcTJBYjhDb2MwZEVxeUo2K3JBUE1MQkNiR2F3eWlXNkE9PQotLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQpkaWZmIC0tZ2l0IGEvdGVzdHMvZGF0YV9maWxlcy9kaXItbWF4cGF0aC8xNS5rZXkgYi90ZXN0cy9kYXRhX2ZpbGVzL2Rpci1tYXhwYXRoLzE1LmtleQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMWQ5MzkwOC4uMDAwMDAwMAotLS0gYS90ZXN0cy9kYXRhX2ZpbGVzL2Rpci1tYXhwYXRoLzE1LmtleQorKysgL2Rldi9udWxsCkBAIC0xLDggKzAsMCBAQAotLS0tLS1CRUdJTiBFQyBQQVJBTUVURVJTLS0tLS0KLUJnZ3Foa2pPUFFNQkJ3PT0KLS0tLS0tRU5EIEVDIFBBUkFNRVRFUlMtLS0tLQotLS0tLS1CRUdJTiBFQyBQUklWQVRFIEtFWS0tLS0tCi1NSGNDQVFFRUlMMWMwenZoNEZ4OGF5bHJsSHNPc0s1UGNhbTdCV1ZITTJsRHhHTzI2UUlVb0FvR0NDcUdTTTQ5Ci1Bd0VIb1VRRFFnQUVKU2xJaktFckxQNGJFMnJIbmFuUWRnUWpoaVlVN2RJWUZCbmxKMWpXZGJMenVNcDlCcEJSCi0yZFBQdm41ZGpDcW82WS9sVjZ0Q1VoUmNobERvSm9JdHh3PT0KLS0tLS0tRU5EIEVDIFBSSVZBVEUgS0VZLS0tLS0KZGlmZiAtLWdpdCBhL3Rlc3RzL2RhdGFfZmlsZXMvZGlyLW1heHBhdGgvMTYuY3J0IGIvdGVzdHMvZGF0YV9maWxlcy9kaXItbWF4cGF0aC8xNi5jcnQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGQ5ZDk5OGQuLjAwMDAwMDAKLS0tIGEvdGVzdHMvZGF0YV9maWxlcy9kaXItbWF4cGF0aC8xNi5jcnQKKysrIC9kZXYvbnVsbApAQCAtMSwxMiArMCwwIEBACi0tLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KLU1JSUIyRENDQVgyZ0F3SUJBZ0lCQVRBS0JnZ3Foa2pPUFFRREFqQXZNUXN3Q1FZRFZRUUdFd0pWU3pFUk1BOEcKLUExVUVDZ3dJYldKbFpDQlVURk14RFRBTEJnTlZCQU1NQkVOQk1UVXdIaGNOTVRjd05qSXlNVEUxTURNeldoY04KLU1qY3dOakl6TVRFMU1ETXpXakF2TVFzd0NRWURWUVFHRXdKVlN6RVJNQThHQTFVRUNnd0liV0psWkNCVVRGTXgKLURUQUxCZ05WQkFNTUJFTkJNVFl3V1RBVEJnY3Foa2pPUFFJQkJnZ3Foa2pPUFFNQkJ3TkNBQVE3VnNwN0ptRE4KLWtnUGgvK3ptSVBrZDdvMHhvdC9XUE1GbjN1QXNHdHNVMzg1TUYwZm1oZkZMaFJiYkg5aDRKallIajh5MHNwVTMKLWJ1VVhoZnR2QVpWYm80R0pNSUdHTUIwR0ExVWREZ1FXQkJSVHczSzBQc3kzdS82KzNLS1NvYVFxSm5QdlBqQlgKLUJnTlZIU01FVURCT2dCUjFtWGxyZFc1cngxVm5xTU1uVUJYbzBXV0dXcUV6cERFd0x6RUxNQWtHQTFVRUJoTUMKLVZVc3hFVEFQQmdOVkJBb01DRzFpWldRZ1ZFeFRNUTB3Q3dZRFZRUUREQVJEUVRFMGdnRUJNQXdHQTFVZEV3UUYKLU1BTUJBZjh3Q2dZSUtvWkl6ajBFQXdJRFNRQXdSZ0loQU1KbkdqRTl2M1NqdUdmaTBqTkJ5cnd5TmZobFRITWgKLUZoUFFpZE5yRHBYd0FpRUFxWXROaVY4dDlSckFhOUdDNkZXRHVKcHZJaVU2RnNFK2xGcTZ1SXEvSjJFPQotLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQpkaWZmIC0tZ2l0IGEvdGVzdHMvZGF0YV9maWxlcy9kaXItbWF4cGF0aC8xNi5rZXkgYi90ZXN0cy9kYXRhX2ZpbGVzL2Rpci1tYXhwYXRoLzE2LmtleQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNzA0OTJkZS4uMDAwMDAwMAotLS0gYS90ZXN0cy9kYXRhX2ZpbGVzL2Rpci1tYXhwYXRoLzE2LmtleQorKysgL2Rldi9udWxsCkBAIC0xLDggKzAsMCBAQAotLS0tLS1CRUdJTiBFQyBQQVJBTUVURVJTLS0tLS0KLUJnZ3Foa2pPUFFNQkJ3PT0KLS0tLS0tRU5EIEVDIFBBUkFNRVRFUlMtLS0tLQotLS0tLS1CRUdJTiBFQyBQUklWQVRFIEtFWS0tLS0tCi1NSGNDQVFFRUlNMFlDbkdrRUcvVGpCeHJ5dFA5WnRzbG0xeW9RYVdwdEJ4ZWdSenpCUkRWb0FvR0NDcUdTTTQ5Ci1Bd0VIb1VRRFFnQUVPMWJLZXlaZ3paSUQ0Zi9zNWlENUhlNk5NYUxmMWp6Qlo5N2dMQnJiRk4vT1RCZEg1b1h4Ci1TNFVXMngvWWVDWTJCNC9NdExLVk4yN2xGNFg3YndHVld3PT0KLS0tLS0tRU5EIEVDIFBSSVZBVEUgS0VZLS0tLS0KZGlmZiAtLWdpdCBhL3Rlc3RzL2RhdGFfZmlsZXMvZGlyLW1heHBhdGgvMTcuY3J0IGIvdGVzdHMvZGF0YV9maWxlcy9kaXItbWF4cGF0aC8xNy5jcnQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDFlZTc4NDkuLjAwMDAwMDAKLS0tIGEvdGVzdHMvZGF0YV9maWxlcy9kaXItbWF4cGF0aC8xNy5jcnQKKysrIC9kZXYvbnVsbApAQCAtMSwxMiArMCwwIEBACi0tLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KLU1JSUIxekNDQVgyZ0F3SUJBZ0lCQVRBS0JnZ3Foa2pPUFFRREFqQXZNUXN3Q1FZRFZRUUdFd0pWU3pFUk1BOEcKLUExVUVDZ3dJYldKbFpDQlVURk14RFRBTEJnTlZCQU1NQkVOQk1UWXdIaGNOTVRjd05qSXlNVEUxTURNeldoY04KLU1qY3dOakl6TVRFMU1ETXpXakF2TVFzd0NRWURWUVFHRXdKVlN6RVJNQThHQTFVRUNnd0liV0psWkNCVVRGTXgKLURUQUxCZ05WQkFNTUJFTkJNVGN3V1RBVEJnY3Foa2pPUFFJQkJnZ3Foa2pPUFFNQkJ3TkNBQVJySVNxMnpPOW0KLUQyOVlDTEhCNTZGZFUvUklOdFJoZmVMdE0rdTVvM0hhQW5vcHkwUzk4Unp1RUdFTGpwenI4Wkk2a2tNTVpzajgKLW5GWlFGOEhmdUUwZ280R0pNSUdHTUIwR0ExVWREZ1FXQkJTbmpXdnBXeFpjRm5mUTJLR3RDZy91NmZUL0R6QlgKLUJnTlZIU01FVURCT2dCUlR3M0swUHN5M3UvNiszS0tTb2FRcUpuUHZQcUV6cERFd0x6RUxNQWtHQTFVRUJoTUMKLVZVc3hFVEFQQmdOVkJBb01DRzFpWldRZ1ZFeFRNUTB3Q3dZRFZRUUREQVJEUVRFMWdnRUJNQXdHQTFVZEV3UUYKLU1BTUJBZjh3Q2dZSUtvWkl6ajBFQXdJRFNBQXdSUUlnRGdYam9jNkZmTUY1VzBOemlWNnZ4MkJPUE5XYXYwMVoKLXluRVA0aDlVTG5VQ0lRQzFyVTRzRUlkM1VkanpUS2hwU0dUS3RhT3VQRytiMFlkRU1QaW1JNGptVnc9PQotLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQpkaWZmIC0tZ2l0IGEvdGVzdHMvZGF0YV9maWxlcy9kaXItbWF4cGF0aC8xNy5rZXkgYi90ZXN0cy9kYXRhX2ZpbGVzL2Rpci1tYXhwYXRoLzE3LmtleQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZWVlMzNlOC4uMDAwMDAwMAotLS0gYS90ZXN0cy9kYXRhX2ZpbGVzL2Rpci1tYXhwYXRoLzE3LmtleQorKysgL2Rldi9udWxsCkBAIC0xLDggKzAsMCBAQAotLS0tLS1CRUdJTiBFQyBQQVJBTUVURVJTLS0tLS0KLUJnZ3Foa2pPUFFNQkJ3PT0KLS0tLS0tRU5EIEVDIFBBUkFNRVRFUlMtLS0tLQotLS0tLS1CRUdJTiBFQyBQUklWQVRFIEtFWS0tLS0tCi1NSGNDQVFFRUlBaVVTMWRNM3FyY091bjhQaktlK3J3NDBMMkhHL1k4RGZ4bDBBZnp5SVZlb0FvR0NDcUdTTTQ5Ci1Bd0VIb1VRRFFnQUVheUVxdHN6dlpnOXZXQWl4d2VlaFhWUDBTRGJVWVgzaTdUUHJ1YU54MmdKNktjdEV2ZkVjCi03aEJoQzQ2YzYvR1NPcEpEREdiSS9KeFdVQmZCMzdoTklBPT0KLS0tLS0tRU5EIEVDIFBSSVZBVEUgS0VZLS0tLS0KZGlmZiAtLWdpdCBhL3Rlc3RzL2RhdGFfZmlsZXMvZGlyLW1heHBhdGgvMTguY3J0IGIvdGVzdHMvZGF0YV9maWxlcy9kaXItbWF4cGF0aC8xOC5jcnQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGFmZDY4MmUuLjAwMDAwMDAKLS0tIGEvdGVzdHMvZGF0YV9maWxlcy9kaXItbWF4cGF0aC8xOC5jcnQKKysrIC9kZXYvbnVsbApAQCAtMSwxMiArMCwwIEBACi0tLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KLU1JSUIyRENDQVgyZ0F3SUJBZ0lCQVRBS0JnZ3Foa2pPUFFRREFqQXZNUXN3Q1FZRFZRUUdFd0pWU3pFUk1BOEcKLUExVUVDZ3dJYldKbFpDQlVURk14RFRBTEJnTlZCQU1NQkVOQk1UY3dIaGNOTVRjd05qSXlNVEUxTURNeldoY04KLU1qY3dOakl6TVRFMU1ETXpXakF2TVFzd0NRWURWUVFHRXdKVlN6RVJNQThHQTFVRUNnd0liV0psWkNCVVRGTXgKLURUQUxCZ05WQkFNTUJFTkJNVGd3V1RBVEJnY3Foa2pPUFFJQkJnZ3Foa2pPUFFNQkJ3TkNBQVNzYy9Ka05jWWYKLWJNZ3BPZnJMNWtLT0d4T0phR1M2U1FJZU5PMzNVZUJwVG9lMWJVMmFjTjY1MnhqdmNHbzBmSkV0eGcyZmNQSFIKLWhUbkdNQkQxdTFOMm80R0pNSUdHTUIwR0ExVWREZ1FXQkJTRGJJcFludGxoSjBHZ0lzeWQ3NVhSaGxDMThqQlgKLUJnTlZIU01FVURCT2dCU25qV3ZwV3haY0ZuZlEyS0d0Q2cvdTZmVC9ENkV6cERFd0x6RUxNQWtHQTFVRUJoTUMKLVZVc3hFVEFQQmdOVkJBb01DRzFpWldRZ1ZFeFRNUTB3Q3dZRFZRUUREQVJEUVRFMmdnRUJNQXdHQTFVZEV3UUYKLU1BTUJBZjh3Q2dZSUtvWkl6ajBFQXdJRFNRQXdSZ0loQUpvMk5YZkpVMXNLNlNWVHU0T1YyMUZLSVRsWG50TWkKLW9lbllNc0Jqek84b0FpRUFpZFNFTGNMampBSGkzbWZCQVJ2Q2dLbFJobWJORU1DSFFUN0hhN1pRb1J3PQotLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQpkaWZmIC0tZ2l0IGEvdGVzdHMvZGF0YV9maWxlcy9kaXItbWF4cGF0aC8xOC5rZXkgYi90ZXN0cy9kYXRhX2ZpbGVzL2Rpci1tYXhwYXRoLzE4LmtleQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNDU5MWQwMy4uMDAwMDAwMAotLS0gYS90ZXN0cy9kYXRhX2ZpbGVzL2Rpci1tYXhwYXRoLzE4LmtleQorKysgL2Rldi9udWxsCkBAIC0xLDggKzAsMCBAQAotLS0tLS1CRUdJTiBFQyBQQVJBTUVURVJTLS0tLS0KLUJnZ3Foa2pPUFFNQkJ3PT0KLS0tLS0tRU5EIEVDIFBBUkFNRVRFUlMtLS0tLQotLS0tLS1CRUdJTiBFQyBQUklWQVRFIEtFWS0tLS0tCi1NSGNDQVFFRUlKRVRMV3FJWnRuZWpDR3pFU0RnTW5rbnhxRXg1ZXZNR1pmekJWUEtNd0tLb0FvR0NDcUdTTTQ5Ci1Bd0VIb1VRRFFnQUVySFB5WkRYR0gyeklLVG42eStaQ2poc1RpV2hrdWtrQ0hqVHQ5MUhnYVU2SHRXMU5tbkRlCi11ZHNZNzNCcU5IeVJMY1lObjNEeDBZVTV4akFROWJ0VGRnPT0KLS0tLS0tRU5EIEVDIFBSSVZBVEUgS0VZLS0tLS0KZGlmZiAtLWdpdCBhL3Rlc3RzL2RhdGFfZmlsZXMvZGlyLW1heHBhdGgvMTkuY3J0IGIvdGVzdHMvZGF0YV9maWxlcy9kaXItbWF4cGF0aC8xOS5jcnQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGEyMjIwZTUuLjAwMDAwMDAKLS0tIGEvdGVzdHMvZGF0YV9maWxlcy9kaXItbWF4cGF0aC8xOS5jcnQKKysrIC9kZXYvbnVsbApAQCAtMSwxMiArMCwwIEBACi0tLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KLU1JSUIxakNDQVgyZ0F3SUJBZ0lCQVRBS0JnZ3Foa2pPUFFRREFqQXZNUXN3Q1FZRFZRUUdFd0pWU3pFUk1BOEcKLUExVUVDZ3dJYldKbFpDQlVURk14RFRBTEJnTlZCQU1NQkVOQk1UZ3dIaGNOTVRjd05qSXlNVEUxTURNeldoY04KLU1qY3dOakl6TVRFMU1ETXpXakF2TVFzd0NRWURWUVFHRXdKVlN6RVJNQThHQTFVRUNnd0liV0psWkNCVVRGTXgKLURUQUxCZ05WQkFNTUJFTkJNVGt3V1RBVEJnY3Foa2pPUFFJQkJnZ3Foa2pPUFFNQkJ3TkNBQVFKeVJDSE5ENzgKLUt4WkhvSEhkT1RqUHVENkhqSFBuRUtYOGFwYmxVcEVUREp1TFc3WVIzVjhRMGRUYWMrSkhpUjZlMmw0RGxEYmYKLTViVGl5Rm9Benc5eW80R0pNSUdHTUIwR0ExVWREZ1FXQkJSUU1jOTRrVHFXK3pRTzNsbzJXTUkvODFrM2N6QlgKLUJnTlZIU01FVURCT2dCU0RiSXBZbnRsaEowR2dJc3lkNzVYUmhsQzE4cUV6cERFd0x6RUxNQWtHQTFVRUJoTUMKLVZVc3hFVEFQQmdOVkJBb01DRzFpWldRZ1ZFeFRNUTB3Q3dZRFZRUUREQVJEUVRFM2dnRUJNQXdHQTFVZEV3UUYKLU1BTUJBZjh3Q2dZSUtvWkl6ajBFQXdJRFJ3QXdSQUlnSXpHT1pxSlJtdnlnenZMbTh6eFpGeW9OcGNUN2UyNkgKLW5aZDV4Rkl6RWFrQ0lIR1ljVVh6dCtvd1NWbExtcmxXOGdRY0I4MUVyUWJ4dUJUQXN2cGFhS1NTCi0tLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCmRpZmYgLS1naXQgYS90ZXN0cy9kYXRhX2ZpbGVzL2Rpci1tYXhwYXRoLzE5LmtleSBiL3Rlc3RzL2RhdGFfZmlsZXMvZGlyLW1heHBhdGgvMTkua2V5CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiYjY1NjJiLi4wMDAwMDAwCi0tLSBhL3Rlc3RzL2RhdGFfZmlsZXMvZGlyLW1heHBhdGgvMTkua2V5CisrKyAvZGV2L251bGwKQEAgLTEsOCArMCwwIEBACi0tLS0tLUJFR0lOIEVDIFBBUkFNRVRFUlMtLS0tLQotQmdncWhrak9QUU1CQnc9PQotLS0tLS1FTkQgRUMgUEFSQU1FVEVSUy0tLS0tCi0tLS0tLUJFR0lOIEVDIFBSSVZBVEUgS0VZLS0tLS0KLU1IY0NBUUVFSURKeUhTS2JYRVpWZmtOZnRRRjRlSGVKVnVYaEdkYWJvYTd3NFJlakw1dVlvQW9HQ0NxR1NNNDkKLUF3RUhvVVFEUWdBRUNja1FoelErL0NzV1I2QngzVGs0ejdnK2g0eHo1eENsL0dxVzVWS1JFd3liaTF1MkVkMWYKLUVOSFUyblBpUjRrZW50cGVBNVEyMytXMDRzaGFBTThQY2c9PQotLS0tLS1FTkQgRUMgUFJJVkFURSBLRVktLS0tLQpkaWZmIC0tZ2l0IGEvdGVzdHMvZGF0YV9maWxlcy9kaXItbWF4cGF0aC8yMC5jcnQgYi90ZXN0cy9kYXRhX2ZpbGVzL2Rpci1tYXhwYXRoLzIwLmNydApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYzgyYTUyNy4uMDAwMDAwMAotLS0gYS90ZXN0cy9kYXRhX2ZpbGVzL2Rpci1tYXhwYXRoLzIwLmNydAorKysgL2Rldi9udWxsCkBAIC0xLDEyICswLDAgQEAKLS0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQotTUlJQjFqQ0NBWDJnQXdJQkFnSUJBVEFLQmdncWhrak9QUVFEQWpBdk1Rc3dDUVlEVlFRR0V3SlZTekVSTUE4RwotQTFVRUNnd0liV0psWkNCVVRGTXhEVEFMQmdOVkJBTU1CRU5CTVRrd0hoY05NVGN3TmpJeU1URTFNRE16V2hjTgotTWpjd05qSXpNVEUxTURNeldqQXZNUXN3Q1FZRFZRUUdFd0pWU3pFUk1BOEdBMVVFQ2d3SWJXSmxaQ0JVVEZNeAotRFRBTEJnTlZCQU1NQkVOQk1qQXdXVEFUQmdjcWhrak9QUUlCQmdncWhrak9QUU1CQndOQ0FBVEdlYnJOOEp4RQotaGVPZEN4RCttaG5RNHpNVXhGMVdVa21BQUhJVXcwODlCWWlIOVNBd1lTL001dG5sK1I4ZmJqdm9HcVNwUjZUawotVjlFVTNDUXlJb3h3bzRHSk1JR0dNQjBHQTFVZERnUVdCQlRaczZvQ2hMMWMyQ1NaWFkyWUZRa2txZytsekRCWAotQmdOVkhTTUVVREJPZ0JSUU1jOTRrVHFXK3pRTzNsbzJXTUkvODFrM2M2RXpwREV3THpFTE1Ba0dBMVVFQmhNQwotVlVzeEVUQVBCZ05WQkFvTUNHMWlaV1FnVkV4VE1RMHdDd1lEVlFRRERBUkRRVEU0Z2dFQk1Bd0dBMVVkRXdRRgotTUFNQkFmOHdDZ1lJS29aSXpqMEVBd0lEUndBd1JBSWdSVkdaUmVYS3ZkTUhod0xiUHZiclRWTGVBR0RxbXFNSAotL1dxRDR1MjNRQmdDSUQvUXRGYWlhd2p2aU5GRWR0VTdKSzZ2NFpZMFBRMGEwK0hMWklITGk5YWgKLS0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KZGlmZiAtLWdpdCBhL3Rlc3RzL2RhdGFfZmlsZXMvZGlyLW1heHBhdGgvMjAua2V5IGIvdGVzdHMvZGF0YV9maWxlcy9kaXItbWF4cGF0aC8yMC5rZXkKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDJlYzY4ZGUuLjAwMDAwMDAKLS0tIGEvdGVzdHMvZGF0YV9maWxlcy9kaXItbWF4cGF0aC8yMC5rZXkKKysrIC9kZXYvbnVsbApAQCAtMSw4ICswLDAgQEAKLS0tLS0tQkVHSU4gRUMgUEFSQU1FVEVSUy0tLS0tCi1CZ2dxaGtqT1BRTUJCdz09Ci0tLS0tLUVORCBFQyBQQVJBTUVURVJTLS0tLS0KLS0tLS0tQkVHSU4gRUMgUFJJVkFURSBLRVktLS0tLQotTUhjQ0FRRUVJSkhMY2lEaEpjbmxFNU1oVHJPZkZsblJicEpRTE9mNGg3MkU2VkRYeE1NMG9Bb0dDQ3FHU000OQotQXdFSG9VUURRZ0FFeG5tNnpmQ2NSSVhqblFzUS9wb1owT016Rk1SZFZsSkpnQUJ5Rk1OUFBRV0loL1VnTUdFdgotek9iWjVma2ZIMjQ3NkJxa3FVZWs1RmZSRk53a01pS01jQT09Ci0tLS0tLUVORCBFQyBQUklWQVRFIEtFWS0tLS0tCmRpZmYgLS1naXQgYS90ZXN0cy9kYXRhX2ZpbGVzL2Rpci1tYXhwYXRoL1JlYWRtZS50eHQgYi90ZXN0cy9kYXRhX2ZpbGVzL2Rpci1tYXhwYXRoL1JlYWRtZS50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDYwNmVjNmMuLjAwMDAwMDAKLS0tIGEvdGVzdHMvZGF0YV9maWxlcy9kaXItbWF4cGF0aC9SZWFkbWUudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMTAgKzAsMCBAQAotVGhlc2UgY2VydGlmaWNhdGVzIGZvcm0gYSB2ZXJ5IGxvbmcgY2hhaW4sIHVzZWQgdG8gdGVzdCB0aGUKLU1CRURUTFNfWDUwOV9NQVhfSU5UX0NBIGxpbWl0LgotCi1OTi5rZXkgaXMgdGhlIHByaXZhdGUga2V5IG9mIGNlcnRpZmljYXRlIE5OLmNydC4KLQotVGhlIHJvb3QgaXMgMDAuY3J0IGFuZCBOKzEuY3J0IGlzIGEgY2hpbGQgb2YgTi5jcnQuCi0KLUZpbGUgY05OLnBlbSBjb250YWlucyB0aGUgY2hhaW4gTk4uY3J0IHRvIDAwLmNydC4KLQotVGhvc2UgY2VydGlmaWNhdGVzIHdlcmUgZ2VuZXJhdGVkIGJ5IHRlc3RzL2RhdGFfZmlsZXMvZGlyLW1heHBhdGgvbG9uZy5zaC4KZGlmZiAtLWdpdCBhL3Rlc3RzL2RhdGFfZmlsZXMvZGlyLW1heHBhdGgvYzAwLnBlbSBiL3Rlc3RzL2RhdGFfZmlsZXMvZGlyLW1heHBhdGgvYzAwLnBlbQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYzgwNjY0OC4uMDAwMDAwMAotLS0gYS90ZXN0cy9kYXRhX2ZpbGVzL2Rpci1tYXhwYXRoL2MwMC5wZW0KKysrIC9kZXYvbnVsbApAQCAtMSwxMSArMCwwIEBACi0tLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KLU1JSUJwVENDQVV1Z0F3SUJBZ0lKQVB5Z2xvWEtrNkJ3TUFvR0NDcUdTTTQ5QkFNQ01DOHhDekFKQmdOVkJBWVQKLUFsVkxNUkV3RHdZRFZRUUtEQWh0WW1Wa0lGUk1VekVOTUFzR0ExVUVBd3dFUTBFd01EQWVGdzB4TnpBMk1qSXgKLU1UVXdNekphRncweU56QTJNak14TVRVd016SmFNQzh4Q3pBSkJnTlZCQVlUQWxWTE1SRXdEd1lEVlFRS0RBaHQKLVltVmtJRlJNVXpFTk1Bc0dBMVVFQXd3RVEwRXdNREJaTUJNR0J5cUdTTTQ5QWdFR0NDcUdTTTQ5QXdFSEEwSUEKLUJGVzQxL3FBd0FQcHkrVHhkYzdQS216WnNxOUNQaXVqS1U0dnBGMWVrWG5HeDJIUDQyMFFvYndCVlZXaGt6Um0KLUx3ZGJvSDJqNjVkY0NLalE3bXYvZHhLalVEQk9NQjBHQTFVZERnUVdCQlFsRll2VTVXYm9JNGZjZFBvaVFzOC8KLWZQSFpyVEFmQmdOVkhTTUVHREFXZ0JRbEZZdlU1V2JvSTRmY2RQb2lRczgvZlBIWnJUQU1CZ05WSFJNRUJUQUQKLUFRSC9NQW9HQ0NxR1NNNDlCQU1DQTBnQU1FVUNJUUM3aVJjVnp3TXlmVks1aW1pcko3TXFKUTA0ZXVINENMT3QKLUlaK1NOZmFFUkFJZ1NVME1XRkRvc1ZFSXBnOFlNcUlIZUY3TWc0WnlINitmR2F6SmdWTHR0VVk9Ci0tLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCmRpZmYgLS1naXQgYS90ZXN0cy9kYXRhX2ZpbGVzL2Rpci1tYXhwYXRoL2MwMS5wZW0gYi90ZXN0cy9kYXRhX2ZpbGVzL2Rpci1tYXhwYXRoL2MwMS5wZW0KZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDMwMmZjYmQuLjAwMDAwMDAKLS0tIGEvdGVzdHMvZGF0YV9maWxlcy9kaXItbWF4cGF0aC9jMDEucGVtCisrKyAvZGV2L251bGwKQEAgLTEsMjQgKzAsMCBAQAotLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCi1NSUlCM2pDQ0FZV2dBd0lCQWdJQkFUQUtCZ2dxaGtqT1BRUURBakF2TVFzd0NRWURWUVFHRXdKVlN6RVJNQThHCi1BMVVFQ2d3SWJXSmxaQ0JVVEZNeERUQUxCZ05WQkFNTUJFTkJNREF3SGhjTk1UY3dOakl5TVRFMU1ETXlXaGNOCi1NamN3TmpJek1URTFNRE15V2pBdk1Rc3dDUVlEVlFRR0V3SlZTekVSTUE4R0ExVUVDZ3dJYldKbFpDQlVURk14Ci1EVEFMQmdOVkJBTU1CRU5CTURFd1dUQVRCZ2NxaGtqT1BRSUJCZ2dxaGtqT1BRTUJCd05DQUFRem5uOXpISHdMCi1HTzhWUjRXOVY3dk1seENkb29qekVPaVg1WTZKdFB0Rk96ODY2dWVIWTZ6b04wL21KNkRucW5TWGlsSklVVWVXCi02ZUdmcW1rYTdueGtvNEdSTUlHT01CMEdBMVVkRGdRV0JCU2gzdUhrWDVuajg2eUZFRndqc2NTV000MFArakJmCi1CZ05WSFNNRVdEQldnQlFsRll2VTVXYm9JNGZjZFBvaVFzOC9mUEhacmFFenBERXdMekVMTUFrR0ExVUVCaE1DCi1WVXN4RVRBUEJnTlZCQW9NQ0cxaVpXUWdWRXhUTVEwd0N3WURWUVFEREFSRFFUQXdnZ2tBL0tDV2hjcVRvSEF3Ci1EQVlEVlIwVEJBVXdBd0VCL3pBS0JnZ3Foa2pPUFFRREFnTkhBREJFQWlCYXNidWluUCtwSlRVNG9EQ1ZEOHpRCi0xckpCRFNPS0lFeVd1ODQvRDZIajZ3SWdWTVBVb08wMWJQaHpsbEFhL2dXOFhrL2RhZXkwOVNCZ04zQVQ5cFdVCi1UREE9Ci0tLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCi0tLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KLU1JSUJwVENDQVV1Z0F3SUJBZ0lKQVB5Z2xvWEtrNkJ3TUFvR0NDcUdTTTQ5QkFNQ01DOHhDekFKQmdOVkJBWVQKLUFsVkxNUkV3RHdZRFZRUUtEQWh0WW1Wa0lGUk1VekVOTUFzR0ExVUVBd3dFUTBFd01EQWVGdzB4TnpBMk1qSXgKLU1UVXdNekphRncweU56QTJNak14TVRVd016SmFNQzh4Q3pBSkJnTlZCQVlUQWxWTE1SRXdEd1lEVlFRS0RBaHQKLVltVmtJRlJNVXpFTk1Bc0dBMVVFQXd3RVEwRXdNREJaTUJNR0J5cUdTTTQ5QWdFR0NDcUdTTTQ5QXdFSEEwSUEKLUJGVzQxL3FBd0FQcHkrVHhkYzdQS216WnNxOUNQaXVqS1U0dnBGMWVrWG5HeDJIUDQyMFFvYndCVlZXaGt6Um0KLUx3ZGJvSDJqNjVkY0NLalE3bXYvZHhLalVEQk9NQjBHQTFVZERnUVdCQlFsRll2VTVXYm9JNGZjZFBvaVFzOC8KLWZQSFpyVEFmQmdOVkhTTUVHREFXZ0JRbEZZdlU1V2JvSTRmY2RQb2lRczgvZlBIWnJUQU1CZ05WSFJNRUJUQUQKLUFRSC9NQW9HQ0NxR1NNNDlCQU1DQTBnQU1FVUNJUUM3aVJjVnp3TXlmVks1aW1pcko3TXFKUTA0ZXVINENMT3QKLUlaK1NOZmFFUkFJZ1NVME1XRkRvc1ZFSXBnOFlNcUlIZUY3TWc0WnlINitmR2F6SmdWTHR0VVk9Ci0tLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCmRpZmYgLS1naXQgYS90ZXN0cy9kYXRhX2ZpbGVzL2Rpci1tYXhwYXRoL2MwMi5wZW0gYi90ZXN0cy9kYXRhX2ZpbGVzL2Rpci1tYXhwYXRoL2MwMi5wZW0KZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDc3YzI1MTkuLjAwMDAwMDAKLS0tIGEvdGVzdHMvZGF0YV9maWxlcy9kaXItbWF4cGF0aC9jMDIucGVtCisrKyAvZGV2L251bGwKQEAgLTEsMzYgKzAsMCBAQAotLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCi1NSUlCMXpDQ0FYMmdBd0lCQWdJQkFUQUtCZ2dxaGtqT1BRUURBakF2TVFzd0NRWURWUVFHRXdKVlN6RVJNQThHCi1BMVVFQ2d3SWJXSmxaQ0JVVEZNeERUQUxCZ05WQkFNTUJFTkJNREV3SGhjTk1UY3dOakl5TVRFMU1ETXlXaGNOCi1NamN3TmpJek1URTFNRE15V2pBdk1Rc3dDUVlEVlFRR0V3SlZTekVSTUE4R0ExVUVDZ3dJYldKbFpDQlVURk14Ci1EVEFMQmdOVkJBTU1CRU5CTURJd1dUQVRCZ2NxaGtqT1BRSUJCZ2dxaGtqT1BRTUJCd05DQUFRV0hwdjFpNmxmCi13dk5QT1A1a2E2UzBuNTVFdnpvYVlLNnBiVFhQNnlNT1cvNFhaU1BLeDVab3E0Rk1lMGNLekdJSUZMMXJ6ajFWCi0yY3pZQitxdkxoeWlvNEdKTUlHR01CMEdBMVVkRGdRV0JCVDVSQ2dRMEFsWlRRYmZGQjIrNit3MFhSdnlkVEJYCi1CZ05WSFNNRVVEQk9nQlNoM3VIa1g1bmo4NnlGRUZ3anNjU1dNNDBQK3FFenBERXdMekVMTUFrR0ExVUVCaE1DCi1WVXN4RVRBUEJnTlZCQW9NQ0cxaVpXUWdWRXhUTVEwd0N3WURWUVFEREFSRFFUQXdnZ0VCTUF3R0ExVWRFd1FGCi1NQU1CQWY4d0NnWUlLb1pJemowRUF3SURTQUF3UlFJaEFJN3VuR1cvZ3I5dE9jM2krZEY1TjgxNXNyZ2grRnJYCi1vajlFdDc0RWNTcFRBaUJ1YnYrdk9IMERFMGdtWUkxMUhlQUlndXRXcXFNSUM3MmRabHdURi9WaTNnPT0KLS0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KLS0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQotTUlJQjNqQ0NBWVdnQXdJQkFnSUJBVEFLQmdncWhrak9QUVFEQWpBdk1Rc3dDUVlEVlFRR0V3SlZTekVSTUE4RwotQTFVRUNnd0liV0psWkNCVVRGTXhEVEFMQmdOVkJBTU1CRU5CTURBd0hoY05NVGN3TmpJeU1URTFNRE15V2hjTgotTWpjd05qSXpNVEUxTURNeVdqQXZNUXN3Q1FZRFZRUUdFd0pWU3pFUk1BOEdBMVVFQ2d3SWJXSmxaQ0JVVEZNeAotRFRBTEJnTlZCQU1NQkVOQk1ERXdXVEFUQmdjcWhrak9QUUlCQmdncWhrak9QUU1CQndOQ0FBUXpubjl6SEh3TAotR084VlI0VzlWN3ZNbHhDZG9vanpFT2lYNVk2SnRQdEZPejg2NnVlSFk2em9OMC9tSjZEbnFuU1hpbEpJVVVlVwotNmVHZnFta2E3bnhrbzRHUk1JR09NQjBHQTFVZERnUVdCQlNoM3VIa1g1bmo4NnlGRUZ3anNjU1dNNDBQK2pCZgotQmdOVkhTTUVXREJXZ0JRbEZZdlU1V2JvSTRmY2RQb2lRczgvZlBIWnJhRXpwREV3THpFTE1Ba0dBMVVFQmhNQwotVlVzeEVUQVBCZ05WQkFvTUNHMWlaV1FnVkV4VE1RMHdDd1lEVlFRRERBUkRRVEF3Z2drQS9LQ1doY3FUb0hBdwotREFZRFZSMFRCQVV3QXdFQi96QUtCZ2dxaGtqT1BRUURBZ05IQURCRUFpQmFzYnVpblArcEpUVTRvRENWRDh6UQotMXJKQkRTT0tJRXlXdTg0L0Q2SGo2d0lnVk1QVW9PMDFiUGh6bGxBYS9nVzhYay9kYWV5MDlTQmdOM0FUOXBXVQotVERBPQotLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQotLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCi1NSUlCcFRDQ0FVdWdBd0lCQWdJSkFQeWdsb1hLazZCd01Bb0dDQ3FHU000OUJBTUNNQzh4Q3pBSkJnTlZCQVlUCi1BbFZMTVJFd0R3WURWUVFLREFodFltVmtJRlJNVXpFTk1Bc0dBMVVFQXd3RVEwRXdNREFlRncweE56QTJNakl4Ci1NVFV3TXpKYUZ3MHlOekEyTWpNeE1UVXdNekphTUM4eEN6QUpCZ05WQkFZVEFsVkxNUkV3RHdZRFZRUUtEQWh0Ci1ZbVZrSUZSTVV6RU5NQXNHQTFVRUF3d0VRMEV3TURCWk1CTUdCeXFHU000OUFnRUdDQ3FHU000OUF3RUhBMElBCi1CRlc0MS9xQXdBUHB5K1R4ZGM3UEttelpzcTlDUGl1aktVNHZwRjFla1huR3gySFA0MjBRb2J3QlZWV2hrelJtCi1Md2Rib0gyajY1ZGNDS2pRN212L2R4S2pVREJPTUIwR0ExVWREZ1FXQkJRbEZZdlU1V2JvSTRmY2RQb2lRczgvCi1mUEhaclRBZkJnTlZIU01FR0RBV2dCUWxGWXZVNVdib0k0ZmNkUG9pUXM4L2ZQSFpyVEFNQmdOVkhSTUVCVEFECi1BUUgvTUFvR0NDcUdTTTQ5QkFNQ0EwZ0FNRVVDSVFDN2lSY1Z6d015ZlZLNWltaXJKN01xSlEwNGV1SDRDTE90Ci1JWitTTmZhRVJBSWdTVTBNV0ZEb3NWRUlwZzhZTXFJSGVGN01nNFp5SDYrZkdhekpnVkx0dFVZPQotLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQpkaWZmIC0tZ2l0IGEvdGVzdHMvZGF0YV9maWxlcy9kaXItbWF4cGF0aC9jMDMucGVtIGIvdGVzdHMvZGF0YV9maWxlcy9kaXItbWF4cGF0aC9jMDMucGVtCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkNmMxYTIxLi4wMDAwMDAwCi0tLSBhL3Rlc3RzL2RhdGFfZmlsZXMvZGlyLW1heHBhdGgvYzAzLnBlbQorKysgL2Rldi9udWxsCkBAIC0xLDQ4ICswLDAgQEAKLS0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQotTUlJQjJEQ0NBWDJnQXdJQkFnSUJBVEFLQmdncWhrak9QUVFEQWpBdk1Rc3dDUVlEVlFRR0V3SlZTekVSTUE4RwotQTFVRUNnd0liV0psWkNCVVRGTXhEVEFMQmdOVkJBTU1CRU5CTURJd0hoY05NVGN3TmpJeU1URTFNRE15V2hjTgotTWpjd05qSXpNVEUxTURNeVdqQXZNUXN3Q1FZRFZRUUdFd0pWU3pFUk1BOEdBMVVFQ2d3SWJXSmxaQ0JVVEZNeAotRFRBTEJnTlZCQU1NQkVOQk1ETXdXVEFUQmdjcWhrak9QUUlCQmdncWhrak9QUU1CQndOQ0FBUVJEWEROSWkxcAotZXJldWRocXdhMkxzbFhnc3huQjYzSHU1eTVsZysxV1BydUlZUHpEL0hvMEFQdmVWZHpGTFZqaTE5K2JFNCt0RgotUFlMMVNwc04xV2ZXbzRHSk1JR0dNQjBHQTFVZERnUVdCQlFBcHpaZHRCZEQzZEx4b3VRcHIvYURpVnR0ZHpCWAotQmdOVkhTTUVVREJPZ0JUNVJDZ1EwQWxaVFFiZkZCMis2K3cwWFJ2eWRhRXpwREV3THpFTE1Ba0dBMVVFQmhNQwotVlVzeEVUQVBCZ05WQkFvTUNHMWlaV1FnVkV4VE1RMHdDd1lEVlFRRERBUkRRVEF4Z2dFQk1Bd0dBMVVkRXdRRgotTUFNQkFmOHdDZ1lJS29aSXpqMEVBd0lEU1FBd1JnSWhBT25kKzdiQW9ma0hWYTRLRk5qdjNUQ2VndzFscmh1TQotOE9mOHdndnJURUdvQWlFQXNTOGlLTXBTZlhINEQwZWdnNGdMYW1FNmFrZGU5NjVyRHR5U1UrdmU5bGc9Ci0tLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCi0tLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KLU1JSUIxekNDQVgyZ0F3SUJBZ0lCQVRBS0JnZ3Foa2pPUFFRREFqQXZNUXN3Q1FZRFZRUUdFd0pWU3pFUk1BOEcKLUExVUVDZ3dJYldKbFpDQlVURk14RFRBTEJnTlZCQU1NQkVOQk1ERXdIaGNOTVRjd05qSXlNVEUxTURNeVdoY04KLU1qY3dOakl6TVRFMU1ETXlXakF2TVFzd0NRWURWUVFHRXdKVlN6RVJNQThHQTFVRUNnd0liV0psWkNCVVRGTXgKLURUQUxCZ05WQkFNTUJFTkJNREl3V1RBVEJnY3Foa2pPUFFJQkJnZ3Foa2pPUFFNQkJ3TkNBQVFXSHB2MWk2bGYKLXd2TlBPUDVrYTZTMG41NUV2em9hWUs2cGJUWFA2eU1PVy80WFpTUEt4NVpvcTRGTWUwY0t6R0lJRkwxcnpqMVYKLTJjellCK3F2TGh5aW80R0pNSUdHTUIwR0ExVWREZ1FXQkJUNVJDZ1EwQWxaVFFiZkZCMis2K3cwWFJ2eWRUQlgKLUJnTlZIU01FVURCT2dCU2gzdUhrWDVuajg2eUZFRndqc2NTV000MFArcUV6cERFd0x6RUxNQWtHQTFVRUJoTUMKLVZVc3hFVEFQQmdOVkJBb01DRzFpWldRZ1ZFeFRNUTB3Q3dZRFZRUUREQVJEUVRBd2dnRUJNQXdHQTFVZEV3UUYKLU1BTUJBZjh3Q2dZSUtvWkl6ajBFQXdJRFNBQXdSUUloQUk3dW5HVy9ncjl0T2MzaStkRjVOODE1c3JnaCtGclgKLW9qOUV0NzRFY1NwVEFpQnVidit2T0gwREUwZ21ZSTExSGVBSWd1dFdxcU1JQzcyZFpsd1RGL1ZpM2c9PQotLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQotLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCi1NSUlCM2pDQ0FZV2dBd0lCQWdJQkFUQUtCZ2dxaGtqT1BRUURBakF2TVFzd0NRWURWUVFHRXdKVlN6RVJNQThHCi1BMVVFQ2d3SWJXSmxaQ0JVVEZNeERUQUxCZ05WQkFNTUJFTkJNREF3SGhjTk1UY3dOakl5TVRFMU1ETXlXaGNOCi1NamN3TmpJek1URTFNRE15V2pBdk1Rc3dDUVlEVlFRR0V3SlZTekVSTUE4R0ExVUVDZ3dJYldKbFpDQlVURk14Ci1EVEFMQmdOVkJBTU1CRU5CTURFd1dUQVRCZ2NxaGtqT1BRSUJCZ2dxaGtqT1BRTUJCd05DQUFRem5uOXpISHdMCi1HTzhWUjRXOVY3dk1seENkb29qekVPaVg1WTZKdFB0Rk96ODY2dWVIWTZ6b04wL21KNkRucW5TWGlsSklVVWVXCi02ZUdmcW1rYTdueGtvNEdSTUlHT01CMEdBMVVkRGdRV0JCU2gzdUhrWDVuajg2eUZFRndqc2NTV000MFArakJmCi1CZ05WSFNNRVdEQldnQlFsRll2VTVXYm9JNGZjZFBvaVFzOC9mUEhacmFFenBERXdMekVMTUFrR0ExVUVCaE1DCi1WVXN4RVRBUEJnTlZCQW9NQ0cxaVpXUWdWRXhUTVEwd0N3WURWUVFEREFSRFFUQXdnZ2tBL0tDV2hjcVRvSEF3Ci1EQVlEVlIwVEJBVXdBd0VCL3pBS0JnZ3Foa2pPUFFRREFnTkhBREJFQWlCYXNidWluUCtwSlRVNG9EQ1ZEOHpRCi0xckpCRFNPS0lFeVd1ODQvRDZIajZ3SWdWTVBVb08wMWJQaHpsbEFhL2dXOFhrL2RhZXkwOVNCZ04zQVQ5cFdVCi1UREE9Ci0tLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCi0tLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KLU1JSUJwVENDQVV1Z0F3SUJBZ0lKQVB5Z2xvWEtrNkJ3TUFvR0NDcUdTTTQ5QkFNQ01DOHhDekFKQmdOVkJBWVQKLUFsVkxNUkV3RHdZRFZRUUtEQWh0WW1Wa0lGUk1VekVOTUFzR0ExVUVBd3dFUTBFd01EQWVGdzB4TnpBMk1qSXgKLU1UVXdNekphRncweU56QTJNak14TVRVd016SmFNQzh4Q3pBSkJnTlZCQVlUQWxWTE1SRXdEd1lEVlFRS0RBaHQKLVltVmtJRlJNVXpFTk1Bc0dBMVVFQXd3RVEwRXdNREJaTUJNR0J5cUdTTTQ5QWdFR0NDcUdTTTQ5QXdFSEEwSUEKLUJGVzQxL3FBd0FQcHkrVHhkYzdQS216WnNxOUNQaXVqS1U0dnBGMWVrWG5HeDJIUDQyMFFvYndCVlZXaGt6Um0KLUx3ZGJvSDJqNjVkY0NLalE3bXYvZHhLalVEQk9NQjBHQTFVZERnUVdCQlFsRll2VTVXYm9JNGZjZFBvaVFzOC8KLWZQSFpyVEFmQmdOVkhTTUVHREFXZ0JRbEZZdlU1V2JvSTRmY2RQb2lRczgvZlBIWnJUQU1CZ05WSFJNRUJUQUQKLUFRSC9NQW9HQ0NxR1NNNDlCQU1DQTBnQU1FVUNJUUM3aVJjVnp3TXlmVks1aW1pcko3TXFKUTA0ZXVINENMT3QKLUlaK1NOZmFFUkFJZ1NVME1XRkRvc1ZFSXBnOFlNcUlIZUY3TWc0WnlINitmR2F6SmdWTHR0VVk9Ci0tLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCmRpZmYgLS1naXQgYS90ZXN0cy9kYXRhX2ZpbGVzL2Rpci1tYXhwYXRoL2MwNC5wZW0gYi90ZXN0cy9kYXRhX2ZpbGVzL2Rpci1tYXhwYXRoL2MwNC5wZW0KZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDYxM2Q3ZDguLjAwMDAwMDAKLS0tIGEvdGVzdHMvZGF0YV9maWxlcy9kaXItbWF4cGF0aC9jMDQucGVtCisrKyAvZGV2L251bGwKQEAgLTEsNjAgKzAsMCBAQAotLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCi1NSUlCMWpDQ0FYMmdBd0lCQWdJQkFUQUtCZ2dxaGtqT1BRUURBakF2TVFzd0NRWURWUVFHRXdKVlN6RVJNQThHCi1BMVVFQ2d3SWJXSmxaQ0JVVEZNeERUQUxCZ05WQkFNTUJFTkJNRE13SGhjTk1UY3dOakl5TVRFMU1ETXlXaGNOCi1NamN3TmpJek1URTFNRE15V2pBdk1Rc3dDUVlEVlFRR0V3SlZTekVSTUE4R0ExVUVDZ3dJYldKbFpDQlVURk14Ci1EVEFMQmdOVkJBTU1CRU5CTURRd1dUQVRCZ2NxaGtqT1BRSUJCZ2dxaGtqT1BRTUJCd05DQUFRVVhEZ2NVVk5UCi05aG92YlpFNUhMNnJqT2I3QzU1d0V1V0tUaFYvQ2NaNHJXclh4N1ZYSFlkRC9SM2FEQTdKU3ZZcG0yc1RvazRpCi1zYmxEemhaTS9HRE5vNEdKTUlHR01CMEdBMVVkRGdRV0JCUW94NEYxTnNadW5sc2R1b0d2eklnUlNZZkIzekJYCi1CZ05WSFNNRVVEQk9nQlFBcHpaZHRCZEQzZEx4b3VRcHIvYURpVnR0ZDZFenBERXdMekVMTUFrR0ExVUVCaE1DCi1WVXN4RVRBUEJnTlZCQW9NQ0cxaVpXUWdWRXhUTVEwd0N3WURWUVFEREFSRFFUQXlnZ0VCTUF3R0ExVWRFd1FGCi1NQU1CQWY4d0NnWUlLb1pJemowRUF3SURSd0F3UkFJZ0FraU5ocUZBWlhTVVdFREs5MU9adlFHZGVaT3RkNm1DCi0rV3YzZkdrM3QyOENJRUtPd2lka1VUVWFpUGRaNGVmbUFyK0NFZUd6ZHEyN29iMlMrbnFxSHFnVgotLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQotLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCi1NSUlCMkRDQ0FYMmdBd0lCQWdJQkFUQUtCZ2dxaGtqT1BRUURBakF2TVFzd0NRWURWUVFHRXdKVlN6RVJNQThHCi1BMVVFQ2d3SWJXSmxaQ0JVVEZNeERUQUxCZ05WQkFNTUJFTkJNREl3SGhjTk1UY3dOakl5TVRFMU1ETXlXaGNOCi1NamN3TmpJek1URTFNRE15V2pBdk1Rc3dDUVlEVlFRR0V3SlZTekVSTUE4R0ExVUVDZ3dJYldKbFpDQlVURk14Ci1EVEFMQmdOVkJBTU1CRU5CTURNd1dUQVRCZ2NxaGtqT1BRSUJCZ2dxaGtqT1BRTUJCd05DQUFRUkRYRE5JaTFwCi1lcmV1ZGhxd2EyTHNsWGdzeG5CNjNIdTV5NWxnKzFXUHJ1SVlQekQvSG8wQVB2ZVZkekZMVmppMTkrYkU0K3RGCi1QWUwxU3BzTjFXZldvNEdKTUlHR01CMEdBMVVkRGdRV0JCUUFwelpkdEJkRDNkTHhvdVFwci9hRGlWdHRkekJYCi1CZ05WSFNNRVVEQk9nQlQ1UkNnUTBBbFpUUWJmRkIyKzYrdzBYUnZ5ZGFFenBERXdMekVMTUFrR0ExVUVCaE1DCi1WVXN4RVRBUEJnTlZCQW9NQ0cxaVpXUWdWRXhUTVEwd0N3WURWUVFEREFSRFFUQXhnZ0VCTUF3R0ExVWRFd1FGCi1NQU1CQWY4d0NnWUlLb1pJemowRUF3SURTUUF3UmdJaEFPbmQrN2JBb2ZrSFZhNEtGTmp2M1RDZWd3MWxyaHVNCi04T2Y4d2d2clRFR29BaUVBc1M4aUtNcFNmWEg0RDBlZ2c0Z0xhbUU2YWtkZTk2NXJEdHlTVSt2ZTlsZz0KLS0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KLS0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQotTUlJQjF6Q0NBWDJnQXdJQkFnSUJBVEFLQmdncWhrak9QUVFEQWpBdk1Rc3dDUVlEVlFRR0V3SlZTekVSTUE4RwotQTFVRUNnd0liV0psWkNCVVRGTXhEVEFMQmdOVkJBTU1CRU5CTURFd0hoY05NVGN3TmpJeU1URTFNRE15V2hjTgotTWpjd05qSXpNVEUxTURNeVdqQXZNUXN3Q1FZRFZRUUdFd0pWU3pFUk1BOEdBMVVFQ2d3SWJXSmxaQ0JVVEZNeAotRFRBTEJnTlZCQU1NQkVOQk1ESXdXVEFUQmdjcWhrak9QUUlCQmdncWhrak9QUU1CQndOQ0FBUVdIcHYxaTZsZgotd3ZOUE9QNWthNlMwbjU1RXZ6b2FZSzZwYlRYUDZ5TU9XLzRYWlNQS3g1Wm9xNEZNZTBjS3pHSUlGTDFyemoxVgotMmN6WUIrcXZMaHlpbzRHSk1JR0dNQjBHQTFVZERnUVdCQlQ1UkNnUTBBbFpUUWJmRkIyKzYrdzBYUnZ5ZFRCWAotQmdOVkhTTUVVREJPZ0JTaDN1SGtYNW5qODZ5RkVGd2pzY1NXTTQwUCtxRXpwREV3THpFTE1Ba0dBMVVFQmhNQwotVlVzeEVUQVBCZ05WQkFvTUNHMWlaV1FnVkV4VE1RMHdDd1lEVlFRRERBUkRRVEF3Z2dFQk1Bd0dBMVVkRXdRRgotTUFNQkFmOHdDZ1lJS29aSXpqMEVBd0lEU0FBd1JRSWhBSTd1bkdXL2dyOXRPYzNpK2RGNU44MTVzcmdoK0ZyWAotb2o5RXQ3NEVjU3BUQWlCdWJ2K3ZPSDBERTBnbVlJMTFIZUFJZ3V0V3FxTUlDNzJkWmx3VEYvVmkzZz09Ci0tLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCi0tLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KLU1JSUIzakNDQVlXZ0F3SUJBZ0lCQVRBS0JnZ3Foa2pPUFFRREFqQXZNUXN3Q1FZRFZRUUdFd0pWU3pFUk1BOEcKLUExVUVDZ3dJYldKbFpDQlVURk14RFRBTEJnTlZCQU1NQkVOQk1EQXdIaGNOTVRjd05qSXlNVEUxTURNeVdoY04KLU1qY3dOakl6TVRFMU1ETXlXakF2TVFzd0NRWURWUVFHRXdKVlN6RVJNQThHQTFVRUNnd0liV0psWkNCVVRGTXgKLURUQUxCZ05WQkFNTUJFTkJNREV3V1RBVEJnY3Foa2pPUFFJQkJnZ3Foa2pPUFFNQkJ3TkNBQVF6bm45ekhId0wKLUdPOFZSNFc5Vjd2TWx4Q2Rvb2p6RU9pWDVZNkp0UHRGT3o4NjZ1ZUhZNnpvTjAvbUo2RG5xblNYaWxKSVVVZVcKLTZlR2ZxbWthN254a280R1JNSUdPTUIwR0ExVWREZ1FXQkJTaDN1SGtYNW5qODZ5RkVGd2pzY1NXTTQwUCtqQmYKLUJnTlZIU01FV0RCV2dCUWxGWXZVNVdib0k0ZmNkUG9pUXM4L2ZQSFpyYUV6cERFd0x6RUxNQWtHQTFVRUJoTUMKLVZVc3hFVEFQQmdOVkJBb01DRzFpWldRZ1ZFeFRNUTB3Q3dZRFZRUUREQVJEUVRBd2dna0EvS0NXaGNxVG9IQXcKLURBWURWUjBUQkFVd0F3RUIvekFLQmdncWhrak9QUVFEQWdOSEFEQkVBaUJhc2J1aW5QK3BKVFU0b0RDVkQ4elEKLTFySkJEU09LSUV5V3U4NC9ENkhqNndJZ1ZNUFVvTzAxYlBoemxsQWEvZ1c4WGsvZGFleTA5U0JnTjNBVDlwV1UKLVREQT0KLS0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KLS0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQotTUlJQnBUQ0NBVXVnQXdJQkFnSUpBUHlnbG9YS2s2QndNQW9HQ0NxR1NNNDlCQU1DTUM4eEN6QUpCZ05WQkFZVAotQWxWTE1SRXdEd1lEVlFRS0RBaHRZbVZrSUZSTVV6RU5NQXNHQTFVRUF3d0VRMEV3TURBZUZ3MHhOekEyTWpJeAotTVRVd016SmFGdzB5TnpBMk1qTXhNVFV3TXpKYU1DOHhDekFKQmdOVkJBWVRBbFZMTVJFd0R3WURWUVFLREFodAotWW1Wa0lGUk1VekVOTUFzR0ExVUVBd3dFUTBFd01EQlpNQk1HQnlxR1NNNDlBZ0VHQ0NxR1NNNDlBd0VIQTBJQQotQkZXNDEvcUF3QVBweStUeGRjN1BLbXpac3E5Q1BpdWpLVTR2cEYxZWtYbkd4MkhQNDIwUW9id0JWVldoa3pSbQotTHdkYm9IMmo2NWRjQ0tqUTdtdi9keEtqVURCT01CMEdBMVVkRGdRV0JCUWxGWXZVNVdib0k0ZmNkUG9pUXM4LwotZlBIWnJUQWZCZ05WSFNNRUdEQVdnQlFsRll2VTVXYm9JNGZjZFBvaVFzOC9mUEhaclRBTUJnTlZIUk1FQlRBRAotQVFIL01Bb0dDQ3FHU000OUJBTUNBMGdBTUVVQ0lRQzdpUmNWendNeWZWSzVpbWlySjdNcUpRMDRldUg0Q0xPdAotSVorU05mYUVSQUlnU1UwTVdGRG9zVkVJcGc4WU1xSUhlRjdNZzRaeUg2K2ZHYXpKZ1ZMdHRVWT0KLS0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KZGlmZiAtLWdpdCBhL3Rlc3RzL2RhdGFfZmlsZXMvZGlyLW1heHBhdGgvYzA1LnBlbSBiL3Rlc3RzL2RhdGFfZmlsZXMvZGlyLW1heHBhdGgvYzA1LnBlbQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggODAwOTA0OS4uMDAwMDAwMAotLS0gYS90ZXN0cy9kYXRhX2ZpbGVzL2Rpci1tYXhwYXRoL2MwNS5wZW0KKysrIC9kZXYvbnVsbApAQCAtMSw3MiArMCwwIEBACi0tLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KLU1JSUIxekNDQVgyZ0F3SUJBZ0lCQVRBS0JnZ3Foa2pPUFFRREFqQXZNUXN3Q1FZRFZRUUdFd0pWU3pFUk1BOEcKLUExVUVDZ3dJYldKbFpDQlVURk14RFRBTEJnTlZCQU1NQkVOQk1EUXdIaGNOTVRjd05qSXlNVEUxTURNeVdoY04KLU1qY3dOakl6TVRFMU1ETXlXakF2TVFzd0NRWURWUVFHRXdKVlN6RVJNQThHQTFVRUNnd0liV0psWkNCVVRGTXgKLURUQUxCZ05WQkFNTUJFTkJNRFV3V1RBVEJnY3Foa2pPUFFJQkJnZ3Foa2pPUFFNQkJ3TkNBQVFFZFQwT0ZmNUcKLVVjcmdYMlhsbEN5SnpQOTROWjQ2NEdzZ0I2cHNOTHNEZUwrajdBVStvSnk3Vkx2Vy9sSGgzT0RnbDA4WjliaHEKLUxGQm1Oam5IYm04UW80R0pNSUdHTUIwR0ExVWREZ1FXQkJUWGgwNk1BVjlTNGw0bEcxVEtPcktSQmg0cW56QlgKLUJnTlZIU01FVURCT2dCUW94NEYxTnNadW5sc2R1b0d2eklnUlNZZkIzNkV6cERFd0x6RUxNQWtHQTFVRUJoTUMKLVZVc3hFVEFQQmdOVkJBb01DRzFpWldRZ1ZFeFRNUTB3Q3dZRFZRUUREQVJEUVRBemdnRUJNQXdHQTFVZEV3UUYKLU1BTUJBZjh3Q2dZSUtvWkl6ajBFQXdJRFNBQXdSUUloQUlXKyt6cURabExMVWsvZW1lUG9oZE5PcDVKTzN3UzkKLVh2a0JKNld1YTdHQkFpQWR4K0VLbWRqVnJ3bnpyUWx0VGdubVNmR01YaEtOWWlmSzN1RDgzVzNwY1E9PQotLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQotLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCi1NSUlCMWpDQ0FYMmdBd0lCQWdJQkFUQUtCZ2dxaGtqT1BRUURBakF2TVFzd0NRWURWUVFHRXdKVlN6RVJNQThHCi1BMVVFQ2d3SWJXSmxaQ0JVVEZNeERUQUxCZ05WQkFNTUJFTkJNRE13SGhjTk1UY3dOakl5TVRFMU1ETXlXaGNOCi1NamN3TmpJek1URTFNRE15V2pBdk1Rc3dDUVlEVlFRR0V3SlZTekVSTUE4R0ExVUVDZ3dJYldKbFpDQlVURk14Ci1EVEFMQmdOVkJBTU1CRU5CTURRd1dUQVRCZ2NxaGtqT1BRSUJCZ2dxaGtqT1BRTUJCd05DQUFRVVhEZ2NVVk5UCi05aG92YlpFNUhMNnJqT2I3QzU1d0V1V0tUaFYvQ2NaNHJXclh4N1ZYSFlkRC9SM2FEQTdKU3ZZcG0yc1RvazRpCi1zYmxEemhaTS9HRE5vNEdKTUlHR01CMEdBMVVkRGdRV0JCUW94NEYxTnNadW5sc2R1b0d2eklnUlNZZkIzekJYCi1CZ05WSFNNRVVEQk9nQlFBcHpaZHRCZEQzZEx4b3VRcHIvYURpVnR0ZDZFenBERXdMekVMTUFrR0ExVUVCaE1DCi1WVXN4RVRBUEJnTlZCQW9NQ0cxaVpXUWdWRXhUTVEwd0N3WURWUVFEREFSRFFUQXlnZ0VCTUF3R0ExVWRFd1FGCi1NQU1CQWY4d0NnWUlLb1pJemowRUF3SURSd0F3UkFJZ0FraU5ocUZBWlhTVVdFREs5MU9adlFHZGVaT3RkNm1DCi0rV3YzZkdrM3QyOENJRUtPd2lka1VUVWFpUGRaNGVmbUFyK0NFZUd6ZHEyN29iMlMrbnFxSHFnVgotLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQotLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCi1NSUlCMkRDQ0FYMmdBd0lCQWdJQkFUQUtCZ2dxaGtqT1BRUURBakF2TVFzd0NRWURWUVFHRXdKVlN6RVJNQThHCi1BMVVFQ2d3SWJXSmxaQ0JVVEZNeERUQUxCZ05WQkFNTUJFTkJNREl3SGhjTk1UY3dOakl5TVRFMU1ETXlXaGNOCi1NamN3TmpJek1URTFNRE15V2pBdk1Rc3dDUVlEVlFRR0V3SlZTekVSTUE4R0ExVUVDZ3dJYldKbFpDQlVURk14Ci1EVEFMQmdOVkJBTU1CRU5CTURNd1dUQVRCZ2NxaGtqT1BRSUJCZ2dxaGtqT1BRTUJCd05DQUFRUkRYRE5JaTFwCi1lcmV1ZGhxd2EyTHNsWGdzeG5CNjNIdTV5NWxnKzFXUHJ1SVlQekQvSG8wQVB2ZVZkekZMVmppMTkrYkU0K3RGCi1QWUwxU3BzTjFXZldvNEdKTUlHR01CMEdBMVVkRGdRV0JCUUFwelpkdEJkRDNkTHhvdVFwci9hRGlWdHRkekJYCi1CZ05WSFNNRVVEQk9nQlQ1UkNnUTBBbFpUUWJmRkIyKzYrdzBYUnZ5ZGFFenBERXdMekVMTUFrR0ExVUVCaE1DCi1WVXN4RVRBUEJnTlZCQW9NQ0cxaVpXUWdWRXhUTVEwd0N3WURWUVFEREFSRFFUQXhnZ0VCTUF3R0ExVWRFd1FGCi1NQU1CQWY4d0NnWUlLb1pJemowRUF3SURTUUF3UmdJaEFPbmQrN2JBb2ZrSFZhNEtGTmp2M1RDZWd3MWxyaHVNCi04T2Y4d2d2clRFR29BaUVBc1M4aUtNcFNmWEg0RDBlZ2c0Z0xhbUU2YWtkZTk2NXJEdHlTVSt2ZTlsZz0KLS0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KLS0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQotTUlJQjF6Q0NBWDJnQXdJQkFnSUJBVEFLQmdncWhrak9QUVFEQWpBdk1Rc3dDUVlEVlFRR0V3SlZTekVSTUE4RwotQTFVRUNnd0liV0psWkNCVVRGTXhEVEFMQmdOVkJBTU1CRU5CTURFd0hoY05NVGN3TmpJeU1URTFNRE15V2hjTgotTWpjd05qSXpNVEUxTURNeVdqQXZNUXN3Q1FZRFZRUUdFd0pWU3pFUk1BOEdBMVVFQ2d3SWJXSmxaQ0JVVEZNeAotRFRBTEJnTlZCQU1NQkVOQk1ESXdXVEFUQmdjcWhrak9QUUlCQmdncWhrak9QUU1CQndOQ0FBUVdIcHYxaTZsZgotd3ZOUE9QNWthNlMwbjU1RXZ6b2FZSzZwYlRYUDZ5TU9XLzRYWlNQS3g1Wm9xNEZNZTBjS3pHSUlGTDFyemoxVgotMmN6WUIrcXZMaHlpbzRHSk1JR0dNQjBHQTFVZERnUVdCQlQ1UkNnUTBBbFpUUWJmRkIyKzYrdzBYUnZ5ZFRCWAotQmdOVkhTTUVVREJPZ0JTaDN1SGtYNW5qODZ5RkVGd2pzY1NXTTQwUCtxRXpwREV3THpFTE1Ba0dBMVVFQmhNQwotVlVzeEVUQVBCZ05WQkFvTUNHMWlaV1FnVkV4VE1RMHdDd1lEVlFRRERBUkRRVEF3Z2dFQk1Bd0dBMVVkRXdRRgotTUFNQkFmOHdDZ1lJS29aSXpqMEVBd0lEU0FBd1JRSWhBSTd1bkdXL2dyOXRPYzNpK2RGNU44MTVzcmdoK0ZyWAotb2o5RXQ3NEVjU3BUQWlCdWJ2K3ZPSDBERTBnbVlJMTFIZUFJZ3V0V3FxTUlDNzJkWmx3VEYvVmkzZz09Ci0tLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCi0tLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KLU1JSUIzakNDQVlXZ0F3SUJBZ0lCQVRBS0JnZ3Foa2pPUFFRREFqQXZNUXN3Q1FZRFZRUUdFd0pWU3pFUk1BOEcKLUExVUVDZ3dJYldKbFpDQlVURk14RFRBTEJnTlZCQU1NQkVOQk1EQXdIaGNOTVRjd05qSXlNVEUxTURNeVdoY04KLU1qY3dOakl6TVRFMU1ETXlXakF2TVFzd0NRWURWUVFHRXdKVlN6RVJNQThHQTFVRUNnd0liV0psWkNCVVRGTXgKLURUQUxCZ05WQkFNTUJFTkJNREV3V1RBVEJnY3Foa2pPUFFJQkJnZ3Foa2pPUFFNQkJ3TkNBQVF6bm45ekhId0wKLUdPOFZSNFc5Vjd2TWx4Q2Rvb2p6RU9pWDVZNkp0UHRGT3o4NjZ1ZUhZNnpvTjAvbUo2RG5xblNYaWxKSVVVZVcKLTZlR2ZxbWthN254a280R1JNSUdPTUIwR0ExVWREZ1FXQkJTaDN1SGtYNW5qODZ5RkVGd2pzY1NXTTQwUCtqQmYKLUJnTlZIU01FV0RCV2dCUWxGWXZVNVdib0k0ZmNkUG9pUXM4L2ZQSFpyYUV6cERFd0x6RUxNQWtHQTFVRUJoTUMKLVZVc3hFVEFQQmdOVkJBb01DRzFpWldRZ1ZFeFRNUTB3Q3dZRFZRUUREQVJEUVRBd2dna0EvS0NXaGNxVG9IQXcKLURBWURWUjBUQkFVd0F3RUIvekFLQmdncWhrak9QUVFEQWdOSEFEQkVBaUJhc2J1aW5QK3BKVFU0b0RDVkQ4elEKLTFySkJEU09LSUV5V3U4NC9ENkhqNndJZ1ZNUFVvTzAxYlBoemxsQWEvZ1c4WGsvZGFleTA5U0JnTjNBVDlwV1UKLVREQT0KLS0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KLS0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQotTUlJQnBUQ0NBVXVnQXdJQkFnSUpBUHlnbG9YS2s2QndNQW9HQ0NxR1NNNDlCQU1DTUM4eEN6QUpCZ05WQkFZVAotQWxWTE1SRXdEd1lEVlFRS0RBaHRZbVZrSUZSTVV6RU5NQXNHQTFVRUF3d0VRMEV3TURBZUZ3MHhOekEyTWpJeAotTVRVd016SmFGdzB5TnpBMk1qTXhNVFV3TXpKYU1DOHhDekFKQmdOVkJBWVRBbFZMTVJFd0R3WURWUVFLREFodAotWW1Wa0lGUk1VekVOTUFzR0ExVUVBd3dFUTBFd01EQlpNQk1HQnlxR1NNNDlBZ0VHQ0NxR1NNNDlBd0VIQTBJQQotQkZXNDEvcUF3QVBweStUeGRjN1BLbXpac3E5Q1BpdWpLVTR2cEYxZWtYbkd4MkhQNDIwUW9id0JWVldoa3pSbQotTHdkYm9IMmo2NWRjQ0tqUTdtdi9keEtqVURCT01CMEdBMVVkRGdRV0JCUWxGWXZVNVdib0k0ZmNkUG9pUXM4LwotZlBIWnJUQWZCZ05WSFNNRUdEQVdnQlFsRll2VTVXYm9JNGZjZFBvaVFzOC9mUEhaclRBTUJnTlZIUk1FQlRBRAotQVFIL01Bb0dDQ3FHU000OUJBTUNBMGdBTUVVQ0lRQzdpUmNWendNeWZWSzVpbWlySjdNcUpRMDRldUg0Q0xPdAotSVorU05mYUVSQUlnU1UwTVdGRG9zVkVJcGc4WU1xSUhlRjdNZzRaeUg2K2ZHYXpKZ1ZMdHRVWT0KLS0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KZGlmZiAtLWdpdCBhL3Rlc3RzL2RhdGFfZmlsZXMvZGlyLW1heHBhdGgvYzA2LnBlbSBiL3Rlc3RzL2RhdGFfZmlsZXMvZGlyLW1heHBhdGgvYzA2LnBlbQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZTBmYmYxMy4uMDAwMDAwMAotLS0gYS90ZXN0cy9kYXRhX2ZpbGVzL2Rpci1tYXhwYXRoL2MwNi5wZW0KKysrIC9kZXYvbnVsbApAQCAtMSw4NCArMCwwIEBACi0tLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KLU1JSUIxakNDQVgyZ0F3SUJBZ0lCQVRBS0JnZ3Foa2pPUFFRREFqQXZNUXN3Q1FZRFZRUUdFd0pWU3pFUk1BOEcKLUExVUVDZ3dJYldKbFpDQlVURk14RFRBTEJnTlZCQU1NQkVOQk1EVXdIaGNOTVRjd05qSXlNVEUxTURNeVdoY04KLU1qY3dOakl6TVRFMU1ETXlXakF2TVFzd0NRWURWUVFHRXdKVlN6RVJNQThHQTFVRUNnd0liV0psWkNCVVRGTXgKLURUQUxCZ05WQkFNTUJFTkJNRFl3V1RBVEJnY3Foa2pPUFFJQkJnZ3Foa2pPUFFNQkJ3TkNBQVNBOXFXb0FVSHIKLW5uKzNreHlOcmpQSms4MldETGltVzIxUk41MXV4cG9iYWR2OFlnR0VEUmRQK09rK3VScVFTVXNBNlpYZkYzaUcKLXIyR2pmUTN3TURIOG80R0pNSUdHTUIwR0ExVWREZ1FXQkJTam92WWFDL202TGk5VHAwVjlpWlJzOTI2N1F6QlgKLUJnTlZIU01FVURCT2dCVFhoMDZNQVY5UzRsNGxHMVRLT3JLUkJoNHFuNkV6cERFd0x6RUxNQWtHQTFVRUJoTUMKLVZVc3hFVEFQQmdOVkJBb01DRzFpWldRZ1ZFeFRNUTB3Q3dZRFZRUUREQVJEUVRBMGdnRUJNQXdHQTFVZEV3UUYKLU1BTUJBZjh3Q2dZSUtvWkl6ajBFQXdJRFJ3QXdSQUlnY2paTkZXSnRsRG1vUFpiQXhxc0djelJZSzBsZlBndTYKLWcxSDdwcDBjZSt3Q0lEajlCUlpNMk9COUVGMGUrTURLR2p5WkdmdmZyTDZJcjQ3eC9Lck02SDhUCi0tLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCi0tLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KLU1JSUIxekNDQVgyZ0F3SUJBZ0lCQVRBS0JnZ3Foa2pPUFFRREFqQXZNUXN3Q1FZRFZRUUdFd0pWU3pFUk1BOEcKLUExVUVDZ3dJYldKbFpDQlVURk14RFRBTEJnTlZCQU1NQkVOQk1EUXdIaGNOTVRjd05qSXlNVEUxTURNeVdoY04KLU1qY3dOakl6TVRFMU1ETXlXakF2TVFzd0NRWURWUVFHRXdKVlN6RVJNQThHQTFVRUNnd0liV0psWkNCVVRGTXgKLURUQUxCZ05WQkFNTUJFTkJNRFV3V1RBVEJnY3Foa2pPUFFJQkJnZ3Foa2pPUFFNQkJ3TkNBQVFFZFQwT0ZmNUcKLVVjcmdYMlhsbEN5SnpQOTROWjQ2NEdzZ0I2cHNOTHNEZUwrajdBVStvSnk3Vkx2Vy9sSGgzT0RnbDA4WjliaHEKLUxGQm1Oam5IYm04UW80R0pNSUdHTUIwR0ExVWREZ1FXQkJUWGgwNk1BVjlTNGw0bEcxVEtPcktSQmg0cW56QlgKLUJnTlZIU01FVURCT2dCUW94NEYxTnNadW5sc2R1b0d2eklnUlNZZkIzNkV6cERFd0x6RUxNQWtHQTFVRUJoTUMKLVZVc3hFVEFQQmdOVkJBb01DRzFpWldRZ1ZFeFRNUTB3Q3dZRFZRUUREQVJEUVRBemdnRUJNQXdHQTFVZEV3UUYKLU1BTUJBZjh3Q2dZSUtvWkl6ajBFQXdJRFNBQXdSUUloQUlXKyt6cURabExMVWsvZW1lUG9oZE5PcDVKTzN3UzkKLVh2a0JKNld1YTdHQkFpQWR4K0VLbWRqVnJ3bnpyUWx0VGdubVNmR01YaEtOWWlmSzN1RDgzVzNwY1E9PQotLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQotLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCi1NSUlCMWpDQ0FYMmdBd0lCQWdJQkFUQUtCZ2dxaGtqT1BRUURBakF2TVFzd0NRWURWUVFHRXdKVlN6RVJNQThHCi1BMVVFQ2d3SWJXSmxaQ0JVVEZNeERUQUxCZ05WQkFNTUJFTkJNRE13SGhjTk1UY3dOakl5TVRFMU1ETXlXaGNOCi1NamN3TmpJek1URTFNRE15V2pBdk1Rc3dDUVlEVlFRR0V3SlZTekVSTUE4R0ExVUVDZ3dJYldKbFpDQlVURk14Ci1EVEFMQmdOVkJBTU1CRU5CTURRd1dUQVRCZ2NxaGtqT1BRSUJCZ2dxaGtqT1BRTUJCd05DQUFRVVhEZ2NVVk5UCi05aG92YlpFNUhMNnJqT2I3QzU1d0V1V0tUaFYvQ2NaNHJXclh4N1ZYSFlkRC9SM2FEQTdKU3ZZcG0yc1RvazRpCi1zYmxEemhaTS9HRE5vNEdKTUlHR01CMEdBMVVkRGdRV0JCUW94NEYxTnNadW5sc2R1b0d2eklnUlNZZkIzekJYCi1CZ05WSFNNRVVEQk9nQlFBcHpaZHRCZEQzZEx4b3VRcHIvYURpVnR0ZDZFenBERXdMekVMTUFrR0ExVUVCaE1DCi1WVXN4RVRBUEJnTlZCQW9NQ0cxaVpXUWdWRXhUTVEwd0N3WURWUVFEREFSRFFUQXlnZ0VCTUF3R0ExVWRFd1FGCi1NQU1CQWY4d0NnWUlLb1pJemowRUF3SURSd0F3UkFJZ0FraU5ocUZBWlhTVVdFREs5MU9adlFHZGVaT3RkNm1DCi0rV3YzZkdrM3QyOENJRUtPd2lka1VUVWFpUGRaNGVmbUFyK0NFZUd6ZHEyN29iMlMrbnFxSHFnVgotLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQotLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCi1NSUlCMkRDQ0FYMmdBd0lCQWdJQkFUQUtCZ2dxaGtqT1BRUURBakF2TVFzd0NRWURWUVFHRXdKVlN6RVJNQThHCi1BMVVFQ2d3SWJXSmxaQ0JVVEZNeERUQUxCZ05WQkFNTUJFTkJNREl3SGhjTk1UY3dOakl5TVRFMU1ETXlXaGNOCi1NamN3TmpJek1URTFNRE15V2pBdk1Rc3dDUVlEVlFRR0V3SlZTekVSTUE4R0ExVUVDZ3dJYldKbFpDQlVURk14Ci1EVEFMQmdOVkJBTU1CRU5CTURNd1dUQVRCZ2NxaGtqT1BRSUJCZ2dxaGtqT1BRTUJCd05DQUFRUkRYRE5JaTFwCi1lcmV1ZGhxd2EyTHNsWGdzeG5CNjNIdTV5NWxnKzFXUHJ1SVlQekQvSG8wQVB2ZVZkekZMVmppMTkrYkU0K3RGCi1QWUwxU3BzTjFXZldvNEdKTUlHR01CMEdBMVVkRGdRV0JCUUFwelpkdEJkRDNkTHhvdVFwci9hRGlWdHRkekJYCi1CZ05WSFNNRVVEQk9nQlQ1UkNnUTBBbFpUUWJmRkIyKzYrdzBYUnZ5ZGFFenBERXdMekVMTUFrR0ExVUVCaE1DCi1WVXN4RVRBUEJnTlZCQW9NQ0cxaVpXUWdWRXhUTVEwd0N3WURWUVFEREFSRFFUQXhnZ0VCTUF3R0ExVWRFd1FGCi1NQU1CQWY4d0NnWUlLb1pJemowRUF3SURTUUF3UmdJaEFPbmQrN2JBb2ZrSFZhNEtGTmp2M1RDZWd3MWxyaHVNCi04T2Y4d2d2clRFR29BaUVBc1M4aUtNcFNmWEg0RDBlZ2c0Z0xhbUU2YWtkZTk2NXJEdHlTVSt2ZTlsZz0KLS0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KLS0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQotTUlJQjF6Q0NBWDJnQXdJQkFnSUJBVEFLQmdncWhrak9QUVFEQWpBdk1Rc3dDUVlEVlFRR0V3SlZTekVSTUE4RwotQTFVRUNnd0liV0psWkNCVVRGTXhEVEFMQmdOVkJBTU1CRU5CTURFd0hoY05NVGN3TmpJeU1URTFNRE15V2hjTgotTWpjd05qSXpNVEUxTURNeVdqQXZNUXN3Q1FZRFZRUUdFd0pWU3pFUk1BOEdBMVVFQ2d3SWJXSmxaQ0JVVEZNeAotRFRBTEJnTlZCQU1NQkVOQk1ESXdXVEFUQmdjcWhrak9QUUlCQmdncWhrak9QUU1CQndOQ0FBUVdIcHYxaTZsZgotd3ZOUE9QNWthNlMwbjU1RXZ6b2FZSzZwYlRYUDZ5TU9XLzRYWlNQS3g1Wm9xNEZNZTBjS3pHSUlGTDFyemoxVgotMmN6WUIrcXZMaHlpbzRHSk1JR0dNQjBHQTFVZERnUVdCQlQ1UkNnUTBBbFpUUWJmRkIyKzYrdzBYUnZ5ZFRCWAotQmdOVkhTTUVVREJPZ0JTaDN1SGtYNW5qODZ5RkVGd2pzY1NXTTQwUCtxRXpwREV3THpFTE1Ba0dBMVVFQmhNQwotVlVzeEVUQVBCZ05WQkFvTUNHMWlaV1FnVkV4VE1RMHdDd1lEVlFRRERBUkRRVEF3Z2dFQk1Bd0dBMVVkRXdRRgotTUFNQkFmOHdDZ1lJS29aSXpqMEVBd0lEU0FBd1JRSWhBSTd1bkdXL2dyOXRPYzNpK2RGNU44MTVzcmdoK0ZyWAotb2o5RXQ3NEVjU3BUQWlCdWJ2K3ZPSDBERTBnbVlJMTFIZUFJZ3V0V3FxTUlDNzJkWmx3VEYvVmkzZz09Ci0tLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCi0tLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KLU1JSUIzakNDQVlXZ0F3SUJBZ0lCQVRBS0JnZ3Foa2pPUFFRREFqQXZNUXN3Q1FZRFZRUUdFd0pWU3pFUk1BOEcKLUExVUVDZ3dJYldKbFpDQlVURk14RFRBTEJnTlZCQU1NQkVOQk1EQXdIaGNOTVRjd05qSXlNVEUxTURNeVdoY04KLU1qY3dOakl6TVRFMU1ETXlXakF2TVFzd0NRWURWUVFHRXdKVlN6RVJNQThHQTFVRUNnd0liV0psWkNCVVRGTXgKLURUQUxCZ05WQkFNTUJFTkJNREV3V1RBVEJnY3Foa2pPUFFJQkJnZ3Foa2pPUFFNQkJ3TkNBQVF6bm45ekhId0wKLUdPOFZSNFc5Vjd2TWx4Q2Rvb2p6RU9pWDVZNkp0UHRGT3o4NjZ1ZUhZNnpvTjAvbUo2RG5xblNYaWxKSVVVZVcKLTZlR2ZxbWthN254a280R1JNSUdPTUIwR0ExVWREZ1FXQkJTaDN1SGtYNW5qODZ5RkVGd2pzY1NXTTQwUCtqQmYKLUJnTlZIU01FV0RCV2dCUWxGWXZVNVdib0k0ZmNkUG9pUXM4L2ZQSFpyYUV6cERFd0x6RUxNQWtHQTFVRUJoTUMKLVZVc3hFVEFQQmdOVkJBb01DRzFpWldRZ1ZFeFRNUTB3Q3dZRFZRUUREQVJEUVRBd2dna0EvS0NXaGNxVG9IQXcKLURBWURWUjBUQkFVd0F3RUIvekFLQmdncWhrak9QUVFEQWdOSEFEQkVBaUJhc2J1aW5QK3BKVFU0b0RDVkQ4elEKLTFySkJEU09LSUV5V3U4NC9ENkhqNndJZ1ZNUFVvTzAxYlBoemxsQWEvZ1c4WGsvZGFleTA5U0JnTjNBVDlwV1UKLVREQT0KLS0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KLS0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQotTUlJQnBUQ0NBVXVnQXdJQkFnSUpBUHlnbG9YS2s2QndNQW9HQ0NxR1NNNDlCQU1DTUM4eEN6QUpCZ05WQkFZVAotQWxWTE1SRXdEd1lEVlFRS0RBaHRZbVZrSUZSTVV6RU5NQXNHQTFVRUF3d0VRMEV3TURBZUZ3MHhOekEyTWpJeAotTVRVd016SmFGdzB5TnpBMk1qTXhNVFV3TXpKYU1DOHhDekFKQmdOVkJBWVRBbFZMTVJFd0R3WURWUVFLREFodAotWW1Wa0lGUk1VekVOTUFzR0ExVUVBd3dFUTBFd01EQlpNQk1HQnlxR1NNNDlBZ0VHQ0NxR1NNNDlBd0VIQTBJQQotQkZXNDEvcUF3QVBweStUeGRjN1BLbXpac3E5Q1BpdWpLVTR2cEYxZWtYbkd4MkhQNDIwUW9id0JWVldoa3pSbQotTHdkYm9IMmo2NWRjQ0tqUTdtdi9keEtqVURCT01CMEdBMVVkRGdRV0JCUWxGWXZVNVdib0k0ZmNkUG9pUXM4LwotZlBIWnJUQWZCZ05WSFNNRUdEQVdnQlFsRll2VTVXYm9JNGZjZFBvaVFzOC9mUEhaclRBTUJnTlZIUk1FQlRBRAotQVFIL01Bb0dDQ3FHU000OUJBTUNBMGdBTUVVQ0lRQzdpUmNWendNeWZWSzVpbWlySjdNcUpRMDRldUg0Q0xPdAotSVorU05mYUVSQUlnU1UwTVdGRG9zVkVJcGc4WU1xSUhlRjdNZzRaeUg2K2ZHYXpKZ1ZMdHRVWT0KLS0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KZGlmZiAtLWdpdCBhL3Rlc3RzL2RhdGFfZmlsZXMvZGlyLW1heHBhdGgvYzA3LnBlbSBiL3Rlc3RzL2RhdGFfZmlsZXMvZGlyLW1heHBhdGgvYzA3LnBlbQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYzk2MGQxOS4uMDAwMDAwMAotLS0gYS90ZXN0cy9kYXRhX2ZpbGVzL2Rpci1tYXhwYXRoL2MwNy5wZW0KKysrIC9kZXYvbnVsbApAQCAtMSw5NiArMCwwIEBACi0tLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KLU1JSUIyRENDQVgyZ0F3SUJBZ0lCQVRBS0JnZ3Foa2pPUFFRREFqQXZNUXN3Q1FZRFZRUUdFd0pWU3pFUk1BOEcKLUExVUVDZ3dJYldKbFpDQlVURk14RFRBTEJnTlZCQU1NQkVOQk1EWXdIaGNOTVRjd05qSXlNVEUxTURNeVdoY04KLU1qY3dOakl6TVRFMU1ETXlXakF2TVFzd0NRWURWUVFHRXdKVlN6RVJNQThHQTFVRUNnd0liV0psWkNCVVRGTXgKLURUQUxCZ05WQkFNTUJFTkJNRGN3V1RBVEJnY3Foa2pPUFFJQkJnZ3Foa2pPUFFNQkJ3TkNBQVNOT2o0ZDRNRUEKLTdwLzNtaWlqcUc0VG9FNG9wS1BBbSszQlRJR3JKVFlUMTQrK1RTaVVJQ2wwQVNYait4ZVVjTE1JYVhUTjA0MnMKLUxzSHhwU2h6UWFMMG80R0pNSUdHTUIwR0ExVWREZ1FXQkJSRXE1SjN0b0pQeFozTytzc0o1dmtrVTBSSkV6QlgKLUJnTlZIU01FVURCT2dCU2pvdllhQy9tNkxpOVRwMFY5aVpSczkyNjdRNkV6cERFd0x6RUxNQWtHQTFVRUJoTUMKLVZVc3hFVEFQQmdOVkJBb01DRzFpWldRZ1ZFeFRNUTB3Q3dZRFZRUUREQVJEUVRBMWdnRUJNQXdHQTFVZEV3UUYKLU1BTUJBZjh3Q2dZSUtvWkl6ajBFQXdJRFNRQXdSZ0loQUtHY2YrYzQ0MmMvWGl3dWJiYWlRdnNvWjdFb1Z4dU0KLW9LbWlhMGdQeUJOa0FpRUE4M2Fzako1RkRYUXVMeVpwY3p2aVhyYm1xZ0NQT2ZZYWR0dmtjMGN4TWlzPQotLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQotLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCi1NSUlCMWpDQ0FYMmdBd0lCQWdJQkFUQUtCZ2dxaGtqT1BRUURBakF2TVFzd0NRWURWUVFHRXdKVlN6RVJNQThHCi1BMVVFQ2d3SWJXSmxaQ0JVVEZNeERUQUxCZ05WQkFNTUJFTkJNRFV3SGhjTk1UY3dOakl5TVRFMU1ETXlXaGNOCi1NamN3TmpJek1URTFNRE15V2pBdk1Rc3dDUVlEVlFRR0V3SlZTekVSTUE4R0ExVUVDZ3dJYldKbFpDQlVURk14Ci1EVEFMQmdOVkJBTU1CRU5CTURZd1dUQVRCZ2NxaGtqT1BRSUJCZ2dxaGtqT1BRTUJCd05DQUFTQTlxV29BVUhyCi1ubisza3h5TnJqUEprODJXRExpbVcyMVJONTF1eHBvYmFkdjhZZ0dFRFJkUCtPayt1UnFRU1VzQTZaWGZGM2lHCi1yMkdqZlEzd01ESDhvNEdKTUlHR01CMEdBMVVkRGdRV0JCU2pvdllhQy9tNkxpOVRwMFY5aVpSczkyNjdRekJYCi1CZ05WSFNNRVVEQk9nQlRYaDA2TUFWOVM0bDRsRzFUS09yS1JCaDRxbjZFenBERXdMekVMTUFrR0ExVUVCaE1DCi1WVXN4RVRBUEJnTlZCQW9NQ0cxaVpXUWdWRXhUTVEwd0N3WURWUVFEREFSRFFUQTBnZ0VCTUF3R0ExVWRFd1FGCi1NQU1CQWY4d0NnWUlLb1pJemowRUF3SURSd0F3UkFJZ2NqWk5GV0p0bERtb1BaYkF4cXNHY3pSWUswbGZQZ3U2Ci1nMUg3cHAwY2Urd0NJRGo5QlJaTTJPQjlFRjBlK01ES0dqeVpHZnZmckw2SXI0N3gvS3JNNkg4VAotLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQotLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCi1NSUlCMXpDQ0FYMmdBd0lCQWdJQkFUQUtCZ2dxaGtqT1BRUURBakF2TVFzd0NRWURWUVFHRXdKVlN6RVJNQThHCi1BMVVFQ2d3SWJXSmxaQ0JVVEZNeERUQUxCZ05WQkFNTUJFTkJNRFF3SGhjTk1UY3dOakl5TVRFMU1ETXlXaGNOCi1NamN3TmpJek1URTFNRE15V2pBdk1Rc3dDUVlEVlFRR0V3SlZTekVSTUE4R0ExVUVDZ3dJYldKbFpDQlVURk14Ci1EVEFMQmdOVkJBTU1CRU5CTURVd1dUQVRCZ2NxaGtqT1BRSUJCZ2dxaGtqT1BRTUJCd05DQUFRRWRUME9GZjVHCi1VY3JnWDJYbGxDeUp6UDk0Tlo0NjRHc2dCNnBzTkxzRGVMK2o3QVUrb0p5N1ZMdlcvbEhoM09EZ2wwOFo5YmhxCi1MRkJtTmpuSGJtOFFvNEdKTUlHR01CMEdBMVVkRGdRV0JCVFhoMDZNQVY5UzRsNGxHMVRLT3JLUkJoNHFuekJYCi1CZ05WSFNNRVVEQk9nQlFveDRGMU5zWnVubHNkdW9HdnpJZ1JTWWZCMzZFenBERXdMekVMTUFrR0ExVUVCaE1DCi1WVXN4RVRBUEJnTlZCQW9NQ0cxaVpXUWdWRXhUTVEwd0N3WURWUVFEREFSRFFUQXpnZ0VCTUF3R0ExVWRFd1FGCi1NQU1CQWY4d0NnWUlLb1pJemowRUF3SURTQUF3UlFJaEFJVysrenFEWmxMTFVrL2VtZVBvaGROT3A1Sk8zd1M5Ci1YdmtCSjZXdWE3R0JBaUFkeCtFS21kalZyd256clFsdFRnbm1TZkdNWGhLTllpZkszdUQ4M1czcGNRPT0KLS0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KLS0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQotTUlJQjFqQ0NBWDJnQXdJQkFnSUJBVEFLQmdncWhrak9QUVFEQWpBdk1Rc3dDUVlEVlFRR0V3SlZTekVSTUE4RwotQTFVRUNnd0liV0psWkNCVVRGTXhEVEFMQmdOVkJBTU1CRU5CTURNd0hoY05NVGN3TmpJeU1URTFNRE15V2hjTgotTWpjd05qSXpNVEUxTURNeVdqQXZNUXN3Q1FZRFZRUUdFd0pWU3pFUk1BOEdBMVVFQ2d3SWJXSmxaQ0JVVEZNeAotRFRBTEJnTlZCQU1NQkVOQk1EUXdXVEFUQmdjcWhrak9QUUlCQmdncWhrak9QUU1CQndOQ0FBUVVYRGdjVVZOVAotOWhvdmJaRTVITDZyak9iN0M1NXdFdVdLVGhWL0NjWjRyV3JYeDdWWEhZZEQvUjNhREE3SlN2WXBtMnNUb2s0aQotc2JsRHpoWk0vR0RObzRHSk1JR0dNQjBHQTFVZERnUVdCQlFveDRGMU5zWnVubHNkdW9HdnpJZ1JTWWZCM3pCWAotQmdOVkhTTUVVREJPZ0JRQXB6WmR0QmREM2RMeG91UXByL2FEaVZ0dGQ2RXpwREV3THpFTE1Ba0dBMVVFQmhNQwotVlVzeEVUQVBCZ05WQkFvTUNHMWlaV1FnVkV4VE1RMHdDd1lEVlFRRERBUkRRVEF5Z2dFQk1Bd0dBMVVkRXdRRgotTUFNQkFmOHdDZ1lJS29aSXpqMEVBd0lEUndBd1JBSWdBa2lOaHFGQVpYU1VXRURLOTFPWnZRR2RlWk90ZDZtQwotK1d2M2ZHazN0MjhDSUVLT3dpZGtVVFVhaVBkWjRlZm1BcitDRWVHemRxMjdvYjJTK25xcUhxZ1YKLS0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KLS0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQotTUlJQjJEQ0NBWDJnQXdJQkFnSUJBVEFLQmdncWhrak9QUVFEQWpBdk1Rc3dDUVlEVlFRR0V3SlZTekVSTUE4RwotQTFVRUNnd0liV0psWkNCVVRGTXhEVEFMQmdOVkJBTU1CRU5CTURJd0hoY05NVGN3TmpJeU1URTFNRE15V2hjTgotTWpjd05qSXpNVEUxTURNeVdqQXZNUXN3Q1FZRFZRUUdFd0pWU3pFUk1BOEdBMVVFQ2d3SWJXSmxaQ0JVVEZNeAotRFRBTEJnTlZCQU1NQkVOQk1ETXdXVEFUQmdjcWhrak9QUUlCQmdncWhrak9QUU1CQndOQ0FBUVJEWEROSWkxcAotZXJldWRocXdhMkxzbFhnc3huQjYzSHU1eTVsZysxV1BydUlZUHpEL0hvMEFQdmVWZHpGTFZqaTE5K2JFNCt0RgotUFlMMVNwc04xV2ZXbzRHSk1JR0dNQjBHQTFVZERnUVdCQlFBcHpaZHRCZEQzZEx4b3VRcHIvYURpVnR0ZHpCWAotQmdOVkhTTUVVREJPZ0JUNVJDZ1EwQWxaVFFiZkZCMis2K3cwWFJ2eWRhRXpwREV3THpFTE1Ba0dBMVVFQmhNQwotVlVzeEVUQVBCZ05WQkFvTUNHMWlaV1FnVkV4VE1RMHdDd1lEVlFRRERBUkRRVEF4Z2dFQk1Bd0dBMVVkRXdRRgotTUFNQkFmOHdDZ1lJS29aSXpqMEVBd0lEU1FBd1JnSWhBT25kKzdiQW9ma0hWYTRLRk5qdjNUQ2VndzFscmh1TQotOE9mOHdndnJURUdvQWlFQXNTOGlLTXBTZlhINEQwZWdnNGdMYW1FNmFrZGU5NjVyRHR5U1UrdmU5bGc9Ci0tLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCi0tLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KLU1JSUIxekNDQVgyZ0F3SUJBZ0lCQVRBS0JnZ3Foa2pPUFFRREFqQXZNUXN3Q1FZRFZRUUdFd0pWU3pFUk1BOEcKLUExVUVDZ3dJYldKbFpDQlVURk14RFRBTEJnTlZCQU1NQkVOQk1ERXdIaGNOTVRjd05qSXlNVEUxTURNeVdoY04KLU1qY3dOakl6TVRFMU1ETXlXakF2TVFzd0NRWURWUVFHRXdKVlN6RVJNQThHQTFVRUNnd0liV0psWkNCVVRGTXgKLURUQUxCZ05WQkFNTUJFTkJNREl3V1RBVEJnY3Foa2pPUFFJQkJnZ3Foa2pPUFFNQkJ3TkNBQVFXSHB2MWk2bGYKLXd2TlBPUDVrYTZTMG41NUV2em9hWUs2cGJUWFA2eU1PVy80WFpTUEt4NVpvcTRGTWUwY0t6R0lJRkwxcnpqMVYKLTJjellCK3F2TGh5aW80R0pNSUdHTUIwR0ExVWREZ1FXQkJUNVJDZ1EwQWxaVFFiZkZCMis2K3cwWFJ2eWRUQlgKLUJnTlZIU01FVURCT2dCU2gzdUhrWDVuajg2eUZFRndqc2NTV000MFArcUV6cERFd0x6RUxNQWtHQTFVRUJoTUMKLVZVc3hFVEFQQmdOVkJBb01DRzFpWldRZ1ZFeFRNUTB3Q3dZRFZRUUREQVJEUVRBd2dnRUJNQXdHQTFVZEV3UUYKLU1BTUJBZjh3Q2dZSUtvWkl6ajBFQXdJRFNBQXdSUUloQUk3dW5HVy9ncjl0T2MzaStkRjVOODE1c3JnaCtGclgKLW9qOUV0NzRFY1NwVEFpQnVidit2T0gwREUwZ21ZSTExSGVBSWd1dFdxcU1JQzcyZFpsd1RGL1ZpM2c9PQotLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQotLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCi1NSUlCM2pDQ0FZV2dBd0lCQWdJQkFUQUtCZ2dxaGtqT1BRUURBakF2TVFzd0NRWURWUVFHRXdKVlN6RVJNQThHCi1BMVVFQ2d3SWJXSmxaQ0JVVEZNeERUQUxCZ05WQkFNTUJFTkJNREF3SGhjTk1UY3dOakl5TVRFMU1ETXlXaGNOCi1NamN3TmpJek1URTFNRE15V2pBdk1Rc3dDUVlEVlFRR0V3SlZTekVSTUE4R0ExVUVDZ3dJYldKbFpDQlVURk14Ci1EVEFMQmdOVkJBTU1CRU5CTURFd1dUQVRCZ2NxaGtqT1BRSUJCZ2dxaGtqT1BRTUJCd05DQUFRem5uOXpISHdMCi1HTzhWUjRXOVY3dk1seENkb29qekVPaVg1WTZKdFB0Rk96ODY2dWVIWTZ6b04wL21KNkRucW5TWGlsSklVVWVXCi02ZUdmcW1rYTdueGtvNEdSTUlHT01CMEdBMVVkRGdRV0JCU2gzdUhrWDVuajg2eUZFRndqc2NTV000MFArakJmCi1CZ05WSFNNRVdEQldnQlFsRll2VTVXYm9JNGZjZFBvaVFzOC9mUEhacmFFenBERXdMekVMTUFrR0ExVUVCaE1DCi1WVXN4RVRBUEJnTlZCQW9NQ0cxaVpXUWdWRXhUTVEwd0N3WURWUVFEREFSRFFUQXdnZ2tBL0tDV2hjcVRvSEF3Ci1EQVlEVlIwVEJBVXdBd0VCL3pBS0JnZ3Foa2pPUFFRREFnTkhBREJFQWlCYXNidWluUCtwSlRVNG9EQ1ZEOHpRCi0xckpCRFNPS0lFeVd1ODQvRDZIajZ3SWdWTVBVb08wMWJQaHpsbEFhL2dXOFhrL2RhZXkwOVNCZ04zQVQ5cFdVCi1UREE9Ci0tLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCi0tLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KLU1JSUJwVENDQVV1Z0F3SUJBZ0lKQVB5Z2xvWEtrNkJ3TUFvR0NDcUdTTTQ5QkFNQ01DOHhDekFKQmdOVkJBWVQKLUFsVkxNUkV3RHdZRFZRUUtEQWh0WW1Wa0lGUk1VekVOTUFzR0ExVUVBd3dFUTBFd01EQWVGdzB4TnpBMk1qSXgKLU1UVXdNekphRncweU56QTJNak14TVRVd016SmFNQzh4Q3pBSkJnTlZCQVlUQWxWTE1SRXdEd1lEVlFRS0RBaHQKLVltVmtJRlJNVXpFTk1Bc0dBMVVFQXd3RVEwRXdNREJaTUJNR0J5cUdTTTQ5QWdFR0NDcUdTTTQ5QXdFSEEwSUEKLUJGVzQxL3FBd0FQcHkrVHhkYzdQS216WnNxOUNQaXVqS1U0dnBGMWVrWG5HeDJIUDQyMFFvYndCVlZXaGt6Um0KLUx3ZGJvSDJqNjVkY0NLalE3bXYvZHhLalVEQk9NQjBHQTFVZERnUVdCQlFsRll2VTVXYm9JNGZjZFBvaVFzOC8KLWZQSFpyVEFmQmdOVkhTTUVHREFXZ0JRbEZZdlU1V2JvSTRmY2RQb2lRczgvZlBIWnJUQU1CZ05WSFJNRUJUQUQKLUFRSC9NQW9HQ0NxR1NNNDlCQU1DQTBnQU1FVUNJUUM3aVJjVnp3TXlmVks1aW1pcko3TXFKUTA0ZXVINENMT3QKLUlaK1NOZmFFUkFJZ1NVME1XRkRvc1ZFSXBnOFlNcUlIZUY3TWc0WnlINitmR2F6SmdWTHR0VVk9Ci0tLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCmRpZmYgLS1naXQgYS90ZXN0cy9kYXRhX2ZpbGVzL2Rpci1tYXhwYXRoL2MwOC5wZW0gYi90ZXN0cy9kYXRhX2ZpbGVzL2Rpci1tYXhwYXRoL2MwOC5wZW0KZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDc4YzJjNGEuLjAwMDAwMDAKLS0tIGEvdGVzdHMvZGF0YV9maWxlcy9kaXItbWF4cGF0aC9jMDgucGVtCisrKyAvZGV2L251bGwKQEAgLTEsMTA4ICswLDAgQEAKLS0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQotTUlJQjJEQ0NBWDJnQXdJQkFnSUJBVEFLQmdncWhrak9QUVFEQWpBdk1Rc3dDUVlEVlFRR0V3SlZTekVSTUE4RwotQTFVRUNnd0liV0psWkNCVVRGTXhEVEFMQmdOVkJBTU1CRU5CTURjd0hoY05NVGN3TmpJeU1URTFNRE15V2hjTgotTWpjd05qSXpNVEUxTURNeVdqQXZNUXN3Q1FZRFZRUUdFd0pWU3pFUk1BOEdBMVVFQ2d3SWJXSmxaQ0JVVEZNeAotRFRBTEJnTlZCQU1NQkVOQk1EZ3dXVEFUQmdjcWhrak9QUUlCQmdncWhrak9QUU1CQndOQ0FBUnBRZVEvWUdRagotbmw3U3pvNldTdEoxdTd4dW5UTDVqQmtYSDhhQVZTbTBxaVg0QUQvN1lQeGE1RW5HelpkTFRuMjV2UVZuZlFBRwotcE14OFAxbFlpR1lDbzRHSk1JR0dNQjBHQTFVZERnUVdCQlM0MG1MdDkzVThTaDhaR2lEVkFoUlNpQlBjWGpCWAotQmdOVkhTTUVVREJPZ0JSRXE1SjN0b0pQeFozTytzc0o1dmtrVTBSSkU2RXpwREV3THpFTE1Ba0dBMVVFQmhNQwotVlVzeEVUQVBCZ05WQkFvTUNHMWlaV1FnVkV4VE1RMHdDd1lEVlFRRERBUkRRVEEyZ2dFQk1Bd0dBMVVkRXdRRgotTUFNQkFmOHdDZ1lJS29aSXpqMEVBd0lEU1FBd1JnSWhBTndHZitGNGEra21YV3o4VWpTcFJrYVRvVFY2RUZXdwotL1RqemowdFFoRG9BQWlFQTE5UnhlV09WQkJwTTZMT0hnNnY1TGY1NFlOMXNua0xmK3NFWHlaQ3VXUVE9Ci0tLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCi0tLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KLU1JSUIyRENDQVgyZ0F3SUJBZ0lCQVRBS0JnZ3Foa2pPUFFRREFqQXZNUXN3Q1FZRFZRUUdFd0pWU3pFUk1BOEcKLUExVUVDZ3dJYldKbFpDQlVURk14RFRBTEJnTlZCQU1NQkVOQk1EWXdIaGNOTVRjd05qSXlNVEUxTURNeVdoY04KLU1qY3dOakl6TVRFMU1ETXlXakF2TVFzd0NRWURWUVFHRXdKVlN6RVJNQThHQTFVRUNnd0liV0psWkNCVVRGTXgKLURUQUxCZ05WQkFNTUJFTkJNRGN3V1RBVEJnY3Foa2pPUFFJQkJnZ3Foa2pPUFFNQkJ3TkNBQVNOT2o0ZDRNRUEKLTdwLzNtaWlqcUc0VG9FNG9wS1BBbSszQlRJR3JKVFlUMTQrK1RTaVVJQ2wwQVNYait4ZVVjTE1JYVhUTjA0MnMKLUxzSHhwU2h6UWFMMG80R0pNSUdHTUIwR0ExVWREZ1FXQkJSRXE1SjN0b0pQeFozTytzc0o1dmtrVTBSSkV6QlgKLUJnTlZIU01FVURCT2dCU2pvdllhQy9tNkxpOVRwMFY5aVpSczkyNjdRNkV6cERFd0x6RUxNQWtHQTFVRUJoTUMKLVZVc3hFVEFQQmdOVkJBb01DRzFpWldRZ1ZFeFRNUTB3Q3dZRFZRUUREQVJEUVRBMWdnRUJNQXdHQTFVZEV3UUYKLU1BTUJBZjh3Q2dZSUtvWkl6ajBFQXdJRFNRQXdSZ0loQUtHY2YrYzQ0MmMvWGl3dWJiYWlRdnNvWjdFb1Z4dU0KLW9LbWlhMGdQeUJOa0FpRUE4M2Fzako1RkRYUXVMeVpwY3p2aVhyYm1xZ0NQT2ZZYWR0dmtjMGN4TWlzPQotLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQotLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCi1NSUlCMWpDQ0FYMmdBd0lCQWdJQkFUQUtCZ2dxaGtqT1BRUURBakF2TVFzd0NRWURWUVFHRXdKVlN6RVJNQThHCi1BMVVFQ2d3SWJXSmxaQ0JVVEZNeERUQUxCZ05WQkFNTUJFTkJNRFV3SGhjTk1UY3dOakl5TVRFMU1ETXlXaGNOCi1NamN3TmpJek1URTFNRE15V2pBdk1Rc3dDUVlEVlFRR0V3SlZTekVSTUE4R0ExVUVDZ3dJYldKbFpDQlVURk14Ci1EVEFMQmdOVkJBTU1CRU5CTURZd1dUQVRCZ2NxaGtqT1BRSUJCZ2dxaGtqT1BRTUJCd05DQUFTQTlxV29BVUhyCi1ubisza3h5TnJqUEprODJXRExpbVcyMVJONTF1eHBvYmFkdjhZZ0dFRFJkUCtPayt1UnFRU1VzQTZaWGZGM2lHCi1yMkdqZlEzd01ESDhvNEdKTUlHR01CMEdBMVVkRGdRV0JCU2pvdllhQy9tNkxpOVRwMFY5aVpSczkyNjdRekJYCi1CZ05WSFNNRVVEQk9nQlRYaDA2TUFWOVM0bDRsRzFUS09yS1JCaDRxbjZFenBERXdMekVMTUFrR0ExVUVCaE1DCi1WVXN4RVRBUEJnTlZCQW9NQ0cxaVpXUWdWRXhUTVEwd0N3WURWUVFEREFSRFFUQTBnZ0VCTUF3R0ExVWRFd1FGCi1NQU1CQWY4d0NnWUlLb1pJemowRUF3SURSd0F3UkFJZ2NqWk5GV0p0bERtb1BaYkF4cXNHY3pSWUswbGZQZ3U2Ci1nMUg3cHAwY2Urd0NJRGo5QlJaTTJPQjlFRjBlK01ES0dqeVpHZnZmckw2SXI0N3gvS3JNNkg4VAotLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQotLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCi1NSUlCMXpDQ0FYMmdBd0lCQWdJQkFUQUtCZ2dxaGtqT1BRUURBakF2TVFzd0NRWURWUVFHRXdKVlN6RVJNQThHCi1BMVVFQ2d3SWJXSmxaQ0JVVEZNeERUQUxCZ05WQkFNTUJFTkJNRFF3SGhjTk1UY3dOakl5TVRFMU1ETXlXaGNOCi1NamN3TmpJek1URTFNRE15V2pBdk1Rc3dDUVlEVlFRR0V3SlZTekVSTUE4R0ExVUVDZ3dJYldKbFpDQlVURk14Ci1EVEFMQmdOVkJBTU1CRU5CTURVd1dUQVRCZ2NxaGtqT1BRSUJCZ2dxaGtqT1BRTUJCd05DQUFRRWRUME9GZjVHCi1VY3JnWDJYbGxDeUp6UDk0Tlo0NjRHc2dCNnBzTkxzRGVMK2o3QVUrb0p5N1ZMdlcvbEhoM09EZ2wwOFo5YmhxCi1MRkJtTmpuSGJtOFFvNEdKTUlHR01CMEdBMVVkRGdRV0JCVFhoMDZNQVY5UzRsNGxHMVRLT3JLUkJoNHFuekJYCi1CZ05WSFNNRVVEQk9nQlFveDRGMU5zWnVubHNkdW9HdnpJZ1JTWWZCMzZFenBERXdMekVMTUFrR0ExVUVCaE1DCi1WVXN4RVRBUEJnTlZCQW9NQ0cxaVpXUWdWRXhUTVEwd0N3WURWUVFEREFSRFFUQXpnZ0VCTUF3R0ExVWRFd1FGCi1NQU1CQWY4d0NnWUlLb1pJemowRUF3SURTQUF3UlFJaEFJVysrenFEWmxMTFVrL2VtZVBvaGROT3A1Sk8zd1M5Ci1YdmtCSjZXdWE3R0JBaUFkeCtFS21kalZyd256clFsdFRnbm1TZkdNWGhLTllpZkszdUQ4M1czcGNRPT0KLS0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KLS0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQotTUlJQjFqQ0NBWDJnQXdJQkFnSUJBVEFLQmdncWhrak9QUVFEQWpBdk1Rc3dDUVlEVlFRR0V3SlZTekVSTUE4RwotQTFVRUNnd0liV0psWkNCVVRGTXhEVEFMQmdOVkJBTU1CRU5CTURNd0hoY05NVGN3TmpJeU1URTFNRE15V2hjTgotTWpjd05qSXpNVEUxTURNeVdqQXZNUXN3Q1FZRFZRUUdFd0pWU3pFUk1BOEdBMVVFQ2d3SWJXSmxaQ0JVVEZNeAotRFRBTEJnTlZCQU1NQkVOQk1EUXdXVEFUQmdjcWhrak9QUUlCQmdncWhrak9QUU1CQndOQ0FBUVVYRGdjVVZOVAotOWhvdmJaRTVITDZyak9iN0M1NXdFdVdLVGhWL0NjWjRyV3JYeDdWWEhZZEQvUjNhREE3SlN2WXBtMnNUb2s0aQotc2JsRHpoWk0vR0RObzRHSk1JR0dNQjBHQTFVZERnUVdCQlFveDRGMU5zWnVubHNkdW9HdnpJZ1JTWWZCM3pCWAotQmdOVkhTTUVVREJPZ0JRQXB6WmR0QmREM2RMeG91UXByL2FEaVZ0dGQ2RXpwREV3THpFTE1Ba0dBMVVFQmhNQwotVlVzeEVUQVBCZ05WQkFvTUNHMWlaV1FnVkV4VE1RMHdDd1lEVlFRRERBUkRRVEF5Z2dFQk1Bd0dBMVVkRXdRRgotTUFNQkFmOHdDZ1lJS29aSXpqMEVBd0lEUndBd1JBSWdBa2lOaHFGQVpYU1VXRURLOTFPWnZRR2RlWk90ZDZtQwotK1d2M2ZHazN0MjhDSUVLT3dpZGtVVFVhaVBkWjRlZm1BcitDRWVHemRxMjdvYjJTK25xcUhxZ1YKLS0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KLS0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQotTUlJQjJEQ0NBWDJnQXdJQkFnSUJBVEFLQmdncWhrak9QUVFEQWpBdk1Rc3dDUVlEVlFRR0V3SlZTekVSTUE4RwotQTFVRUNnd0liV0psWkNCVVRGTXhEVEFMQmdOVkJBTU1CRU5CTURJd0hoY05NVGN3TmpJeU1URTFNRE15V2hjTgotTWpjd05qSXpNVEUxTURNeVdqQXZNUXN3Q1FZRFZRUUdFd0pWU3pFUk1BOEdBMVVFQ2d3SWJXSmxaQ0JVVEZNeAotRFRBTEJnTlZCQU1NQkVOQk1ETXdXVEFUQmdjcWhrak9QUUlCQmdncWhrak9QUU1CQndOQ0FBUVJEWEROSWkxcAotZXJldWRocXdhMkxzbFhnc3huQjYzSHU1eTVsZysxV1BydUlZUHpEL0hvMEFQdmVWZHpGTFZqaTE5K2JFNCt0RgotUFlMMVNwc04xV2ZXbzRHSk1JR0dNQjBHQTFVZERnUVdCQlFBcHpaZHRCZEQzZEx4b3VRcHIvYURpVnR0ZHpCWAotQmdOVkhTTUVVREJPZ0JUNVJDZ1EwQWxaVFFiZkZCMis2K3cwWFJ2eWRhRXpwREV3THpFTE1Ba0dBMVVFQmhNQwotVlVzeEVUQVBCZ05WQkFvTUNHMWlaV1FnVkV4VE1RMHdDd1lEVlFRRERBUkRRVEF4Z2dFQk1Bd0dBMVVkRXdRRgotTUFNQkFmOHdDZ1lJS29aSXpqMEVBd0lEU1FBd1JnSWhBT25kKzdiQW9ma0hWYTRLRk5qdjNUQ2VndzFscmh1TQotOE9mOHdndnJURUdvQWlFQXNTOGlLTXBTZlhINEQwZWdnNGdMYW1FNmFrZGU5NjVyRHR5U1UrdmU5bGc9Ci0tLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCi0tLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KLU1JSUIxekNDQVgyZ0F3SUJBZ0lCQVRBS0JnZ3Foa2pPUFFRREFqQXZNUXN3Q1FZRFZRUUdFd0pWU3pFUk1BOEcKLUExVUVDZ3dJYldKbFpDQlVURk14RFRBTEJnTlZCQU1NQkVOQk1ERXdIaGNOTVRjd05qSXlNVEUxTURNeVdoY04KLU1qY3dOakl6TVRFMU1ETXlXakF2TVFzd0NRWURWUVFHRXdKVlN6RVJNQThHQTFVRUNnd0liV0psWkNCVVRGTXgKLURUQUxCZ05WQkFNTUJFTkJNREl3V1RBVEJnY3Foa2pPUFFJQkJnZ3Foa2pPUFFNQkJ3TkNBQVFXSHB2MWk2bGYKLXd2TlBPUDVrYTZTMG41NUV2em9hWUs2cGJUWFA2eU1PVy80WFpTUEt4NVpvcTRGTWUwY0t6R0lJRkwxcnpqMVYKLTJjellCK3F2TGh5aW80R0pNSUdHTUIwR0ExVWREZ1FXQkJUNVJDZ1EwQWxaVFFiZkZCMis2K3cwWFJ2eWRUQlgKLUJnTlZIU01FVURCT2dCU2gzdUhrWDVuajg2eUZFRndqc2NTV000MFArcUV6cERFd0x6RUxNQWtHQTFVRUJoTUMKLVZVc3hFVEFQQmdOVkJBb01DRzFpWldRZ1ZFeFRNUTB3Q3dZRFZRUUREQVJEUVRBd2dnRUJNQXdHQTFVZEV3UUYKLU1BTUJBZjh3Q2dZSUtvWkl6ajBFQXdJRFNBQXdSUUloQUk3dW5HVy9ncjl0T2MzaStkRjVOODE1c3JnaCtGclgKLW9qOUV0NzRFY1NwVEFpQnVidit2T0gwREUwZ21ZSTExSGVBSWd1dFdxcU1JQzcyZFpsd1RGL1ZpM2c9PQotLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQotLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCi1NSUlCM2pDQ0FZV2dBd0lCQWdJQkFUQUtCZ2dxaGtqT1BRUURBakF2TVFzd0NRWURWUVFHRXdKVlN6RVJNQThHCi1BMVVFQ2d3SWJXSmxaQ0JVVEZNeERUQUxCZ05WQkFNTUJFTkJNREF3SGhjTk1UY3dOakl5TVRFMU1ETXlXaGNOCi1NamN3TmpJek1URTFNRE15V2pBdk1Rc3dDUVlEVlFRR0V3SlZTekVSTUE4R0ExVUVDZ3dJYldKbFpDQlVURk14Ci1EVEFMQmdOVkJBTU1CRU5CTURFd1dUQVRCZ2NxaGtqT1BRSUJCZ2dxaGtqT1BRTUJCd05DQUFRem5uOXpISHdMCi1HTzhWUjRXOVY3dk1seENkb29qekVPaVg1WTZKdFB0Rk96ODY2dWVIWTZ6b04wL21KNkRucW5TWGlsSklVVWVXCi02ZUdmcW1rYTdueGtvNEdSTUlHT01CMEdBMVVkRGdRV0JCU2gzdUhrWDVuajg2eUZFRndqc2NTV000MFArakJmCi1CZ05WSFNNRVdEQldnQlFsRll2VTVXYm9JNGZjZFBvaVFzOC9mUEhacmFFenBERXdMekVMTUFrR0ExVUVCaE1DCi1WVXN4RVRBUEJnTlZCQW9NQ0cxaVpXUWdWRXhUTVEwd0N3WURWUVFEREFSRFFUQXdnZ2tBL0tDV2hjcVRvSEF3Ci1EQVlEVlIwVEJBVXdBd0VCL3pBS0JnZ3Foa2pPUFFRREFnTkhBREJFQWlCYXNidWluUCtwSlRVNG9EQ1ZEOHpRCi0xckpCRFNPS0lFeVd1ODQvRDZIajZ3SWdWTVBVb08wMWJQaHpsbEFhL2dXOFhrL2RhZXkwOVNCZ04zQVQ5cFdVCi1UREE9Ci0tLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCi0tLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KLU1JSUJwVENDQVV1Z0F3SUJBZ0lKQVB5Z2xvWEtrNkJ3TUFvR0NDcUdTTTQ5QkFNQ01DOHhDekFKQmdOVkJBWVQKLUFsVkxNUkV3RHdZRFZRUUtEQWh0WW1Wa0lGUk1VekVOTUFzR0ExVUVBd3dFUTBFd01EQWVGdzB4TnpBMk1qSXgKLU1UVXdNekphRncweU56QTJNak14TVRVd016SmFNQzh4Q3pBSkJnTlZCQVlUQWxWTE1SRXdEd1lEVlFRS0RBaHQKLVltVmtJRlJNVXpFTk1Bc0dBMVVFQXd3RVEwRXdNREJaTUJNR0J5cUdTTTQ5QWdFR0NDcUdTTTQ5QXdFSEEwSUEKLUJGVzQxL3FBd0FQcHkrVHhkYzdQS216WnNxOUNQaXVqS1U0dnBGMWVrWG5HeDJIUDQyMFFvYndCVlZXaGt6Um0KLUx3ZGJvSDJqNjVkY0NLalE3bXYvZHhLalVEQk9NQjBHQTFVZERnUVdCQlFsRll2VTVXYm9JNGZjZFBvaVFzOC8KLWZQSFpyVEFmQmdOVkhTTUVHREFXZ0JRbEZZdlU1V2JvSTRmY2RQb2lRczgvZlBIWnJUQU1CZ05WSFJNRUJUQUQKLUFRSC9NQW9HQ0NxR1NNNDlCQU1DQTBnQU1FVUNJUUM3aVJjVnp3TXlmVks1aW1pcko3TXFKUTA0ZXVINENMT3QKLUlaK1NOZmFFUkFJZ1NVME1XRkRvc1ZFSXBnOFlNcUlIZUY3TWc0WnlINitmR2F6SmdWTHR0VVk9Ci0tLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCmRpZmYgLS1naXQgYS90ZXN0cy9kYXRhX2ZpbGVzL2Rpci1tYXhwYXRoL2MwOS5wZW0gYi90ZXN0cy9kYXRhX2ZpbGVzL2Rpci1tYXhwYXRoL2MwOS5wZW0KZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDI2OWY0ZTMuLjAwMDAwMDAKLS0tIGEvdGVzdHMvZGF0YV9maWxlcy9kaXItbWF4cGF0aC9jMDkucGVtCisrKyAvZGV2L251bGwKQEAgLTEsMTIwICswLDAgQEAKLS0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQotTUlJQjFqQ0NBWDJnQXdJQkFnSUJBVEFLQmdncWhrak9QUVFEQWpBdk1Rc3dDUVlEVlFRR0V3SlZTekVSTUE4RwotQTFVRUNnd0liV0psWkNCVVRGTXhEVEFMQmdOVkJBTU1CRU5CTURnd0hoY05NVGN3TmpJeU1URTFNRE16V2hjTgotTWpjd05qSXpNVEUxTURNeldqQXZNUXN3Q1FZRFZRUUdFd0pWU3pFUk1BOEdBMVVFQ2d3SWJXSmxaQ0JVVEZNeAotRFRBTEJnTlZCQU1NQkVOQk1Ea3dXVEFUQmdjcWhrak9QUUlCQmdncWhrak9QUU1CQndOQ0FBUjdaQjE2K3Q2RQotc2ZhaEd5S1VHSlc1bWV6a3pqZGFZdmM0bGJKYUtOUndGUmZjM0YvZm1OT1NzVUZTZy9GME4rdlVFK2RvS2lQQwotOHdSd0x6dm00cys1bzRHSk1JR0dNQjBHQTFVZERnUVdCQlQ2Z3lYSHpQSVBZYzFWcjFhR2lMTGVNaDRIcGpCWAotQmdOVkhTTUVVREJPZ0JTNDBtTHQ5M1U4U2g4WkdpRFZBaFJTaUJQY1hxRXpwREV3THpFTE1Ba0dBMVVFQmhNQwotVlVzeEVUQVBCZ05WQkFvTUNHMWlaV1FnVkV4VE1RMHdDd1lEVlFRRERBUkRRVEEzZ2dFQk1Bd0dBMVVkRXdRRgotTUFNQkFmOHdDZ1lJS29aSXpqMEVBd0lEUndBd1JBSWdPNGVsMVpQaGxJbGkvcU5SMlNJRWl1dnM1TW15ODY4aQotTjJSdjVYL1Z4SUVDSUEvOHJVQUxReFczOFhTZEJWWDNlL2p6dTdqdTQ3bjFZd0VxRDlLOVdkVnYKLS0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KLS0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQotTUlJQjJEQ0NBWDJnQXdJQkFnSUJBVEFLQmdncWhrak9QUVFEQWpBdk1Rc3dDUVlEVlFRR0V3SlZTekVSTUE4RwotQTFVRUNnd0liV0psWkNCVVRGTXhEVEFMQmdOVkJBTU1CRU5CTURjd0hoY05NVGN3TmpJeU1URTFNRE15V2hjTgotTWpjd05qSXpNVEUxTURNeVdqQXZNUXN3Q1FZRFZRUUdFd0pWU3pFUk1BOEdBMVVFQ2d3SWJXSmxaQ0JVVEZNeAotRFRBTEJnTlZCQU1NQkVOQk1EZ3dXVEFUQmdjcWhrak9QUUlCQmdncWhrak9QUU1CQndOQ0FBUnBRZVEvWUdRagotbmw3U3pvNldTdEoxdTd4dW5UTDVqQmtYSDhhQVZTbTBxaVg0QUQvN1lQeGE1RW5HelpkTFRuMjV2UVZuZlFBRwotcE14OFAxbFlpR1lDbzRHSk1JR0dNQjBHQTFVZERnUVdCQlM0MG1MdDkzVThTaDhaR2lEVkFoUlNpQlBjWGpCWAotQmdOVkhTTUVVREJPZ0JSRXE1SjN0b0pQeFozTytzc0o1dmtrVTBSSkU2RXpwREV3THpFTE1Ba0dBMVVFQmhNQwotVlVzeEVUQVBCZ05WQkFvTUNHMWlaV1FnVkV4VE1RMHdDd1lEVlFRRERBUkRRVEEyZ2dFQk1Bd0dBMVVkRXdRRgotTUFNQkFmOHdDZ1lJS29aSXpqMEVBd0lEU1FBd1JnSWhBTndHZitGNGEra21YV3o4VWpTcFJrYVRvVFY2RUZXdwotL1RqemowdFFoRG9BQWlFQTE5UnhlV09WQkJwTTZMT0hnNnY1TGY1NFlOMXNua0xmK3NFWHlaQ3VXUVE9Ci0tLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCi0tLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KLU1JSUIyRENDQVgyZ0F3SUJBZ0lCQVRBS0JnZ3Foa2pPUFFRREFqQXZNUXN3Q1FZRFZRUUdFd0pWU3pFUk1BOEcKLUExVUVDZ3dJYldKbFpDQlVURk14RFRBTEJnTlZCQU1NQkVOQk1EWXdIaGNOTVRjd05qSXlNVEUxTURNeVdoY04KLU1qY3dOakl6TVRFMU1ETXlXakF2TVFzd0NRWURWUVFHRXdKVlN6RVJNQThHQTFVRUNnd0liV0psWkNCVVRGTXgKLURUQUxCZ05WQkFNTUJFTkJNRGN3V1RBVEJnY3Foa2pPUFFJQkJnZ3Foa2pPUFFNQkJ3TkNBQVNOT2o0ZDRNRUEKLTdwLzNtaWlqcUc0VG9FNG9wS1BBbSszQlRJR3JKVFlUMTQrK1RTaVVJQ2wwQVNYait4ZVVjTE1JYVhUTjA0MnMKLUxzSHhwU2h6UWFMMG80R0pNSUdHTUIwR0ExVWREZ1FXQkJSRXE1SjN0b0pQeFozTytzc0o1dmtrVTBSSkV6QlgKLUJnTlZIU01FVURCT2dCU2pvdllhQy9tNkxpOVRwMFY5aVpSczkyNjdRNkV6cERFd0x6RUxNQWtHQTFVRUJoTUMKLVZVc3hFVEFQQmdOVkJBb01DRzFpWldRZ1ZFeFRNUTB3Q3dZRFZRUUREQVJEUVRBMWdnRUJNQXdHQTFVZEV3UUYKLU1BTUJBZjh3Q2dZSUtvWkl6ajBFQXdJRFNRQXdSZ0loQUtHY2YrYzQ0MmMvWGl3dWJiYWlRdnNvWjdFb1Z4dU0KLW9LbWlhMGdQeUJOa0FpRUE4M2Fzako1RkRYUXVMeVpwY3p2aVhyYm1xZ0NQT2ZZYWR0dmtjMGN4TWlzPQotLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQotLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCi1NSUlCMWpDQ0FYMmdBd0lCQWdJQkFUQUtCZ2dxaGtqT1BRUURBakF2TVFzd0NRWURWUVFHRXdKVlN6RVJNQThHCi1BMVVFQ2d3SWJXSmxaQ0JVVEZNeERUQUxCZ05WQkFNTUJFTkJNRFV3SGhjTk1UY3dOakl5TVRFMU1ETXlXaGNOCi1NamN3TmpJek1URTFNRE15V2pBdk1Rc3dDUVlEVlFRR0V3SlZTekVSTUE4R0ExVUVDZ3dJYldKbFpDQlVURk14Ci1EVEFMQmdOVkJBTU1CRU5CTURZd1dUQVRCZ2NxaGtqT1BRSUJCZ2dxaGtqT1BRTUJCd05DQUFTQTlxV29BVUhyCi1ubisza3h5TnJqUEprODJXRExpbVcyMVJONTF1eHBvYmFkdjhZZ0dFRFJkUCtPayt1UnFRU1VzQTZaWGZGM2lHCi1yMkdqZlEzd01ESDhvNEdKTUlHR01CMEdBMVVkRGdRV0JCU2pvdllhQy9tNkxpOVRwMFY5aVpSczkyNjdRekJYCi1CZ05WSFNNRVVEQk9nQlRYaDA2TUFWOVM0bDRsRzFUS09yS1JCaDRxbjZFenBERXdMekVMTUFrR0ExVUVCaE1DCi1WVXN4RVRBUEJnTlZCQW9NQ0cxaVpXUWdWRXhUTVEwd0N3WURWUVFEREFSRFFUQTBnZ0VCTUF3R0ExVWRFd1FGCi1NQU1CQWY4d0NnWUlLb1pJemowRUF3SURSd0F3UkFJZ2NqWk5GV0p0bERtb1BaYkF4cXNHY3pSWUswbGZQZ3U2Ci1nMUg3cHAwY2Urd0NJRGo5QlJaTTJPQjlFRjBlK01ES0dqeVpHZnZmckw2SXI0N3gvS3JNNkg4VAotLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQotLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCi1NSUlCMXpDQ0FYMmdBd0lCQWdJQkFUQUtCZ2dxaGtqT1BRUURBakF2TVFzd0NRWURWUVFHRXdKVlN6RVJNQThHCi1BMVVFQ2d3SWJXSmxaQ0JVVEZNeERUQUxCZ05WQkFNTUJFTkJNRFF3SGhjTk1UY3dOakl5TVRFMU1ETXlXaGNOCi1NamN3TmpJek1URTFNRE15V2pBdk1Rc3dDUVlEVlFRR0V3SlZTekVSTUE4R0ExVUVDZ3dJYldKbFpDQlVURk14Ci1EVEFMQmdOVkJBTU1CRU5CTURVd1dUQVRCZ2NxaGtqT1BRSUJCZ2dxaGtqT1BRTUJCd05DQUFRRWRUME9GZjVHCi1VY3JnWDJYbGxDeUp6UDk0Tlo0NjRHc2dCNnBzTkxzRGVMK2o3QVUrb0p5N1ZMdlcvbEhoM09EZ2wwOFo5YmhxCi1MRkJtTmpuSGJtOFFvNEdKTUlHR01CMEdBMVVkRGdRV0JCVFhoMDZNQVY5UzRsNGxHMVRLT3JLUkJoNHFuekJYCi1CZ05WSFNNRVVEQk9nQlFveDRGMU5zWnVubHNkdW9HdnpJZ1JTWWZCMzZFenBERXdMekVMTUFrR0ExVUVCaE1DCi1WVXN4RVRBUEJnTlZCQW9NQ0cxaVpXUWdWRXhUTVEwd0N3WURWUVFEREFSRFFUQXpnZ0VCTUF3R0ExVWRFd1FGCi1NQU1CQWY4d0NnWUlLb1pJemowRUF3SURTQUF3UlFJaEFJVysrenFEWmxMTFVrL2VtZVBvaGROT3A1Sk8zd1M5Ci1YdmtCSjZXdWE3R0JBaUFkeCtFS21kalZyd256clFsdFRnbm1TZkdNWGhLTllpZkszdUQ4M1czcGNRPT0KLS0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KLS0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQotTUlJQjFqQ0NBWDJnQXdJQkFnSUJBVEFLQmdncWhrak9QUVFEQWpBdk1Rc3dDUVlEVlFRR0V3SlZTekVSTUE4RwotQTFVRUNnd0liV0psWkNCVVRGTXhEVEFMQmdOVkJBTU1CRU5CTURNd0hoY05NVGN3TmpJeU1URTFNRE15V2hjTgotTWpjd05qSXpNVEUxTURNeVdqQXZNUXN3Q1FZRFZRUUdFd0pWU3pFUk1BOEdBMVVFQ2d3SWJXSmxaQ0JVVEZNeAotRFRBTEJnTlZCQU1NQkVOQk1EUXdXVEFUQmdjcWhrak9QUUlCQmdncWhrak9QUU1CQndOQ0FBUVVYRGdjVVZOVAotOWhvdmJaRTVITDZyak9iN0M1NXdFdVdLVGhWL0NjWjRyV3JYeDdWWEhZZEQvUjNhREE3SlN2WXBtMnNUb2s0aQotc2JsRHpoWk0vR0RObzRHSk1JR0dNQjBHQTFVZERnUVdCQlFveDRGMU5zWnVubHNkdW9HdnpJZ1JTWWZCM3pCWAotQmdOVkhTTUVVREJPZ0JRQXB6WmR0QmREM2RMeG91UXByL2FEaVZ0dGQ2RXpwREV3THpFTE1Ba0dBMVVFQmhNQwotVlVzeEVUQVBCZ05WQkFvTUNHMWlaV1FnVkV4VE1RMHdDd1lEVlFRRERBUkRRVEF5Z2dFQk1Bd0dBMVVkRXdRRgotTUFNQkFmOHdDZ1lJS29aSXpqMEVBd0lEUndBd1JBSWdBa2lOaHFGQVpYU1VXRURLOTFPWnZRR2RlWk90ZDZtQwotK1d2M2ZHazN0MjhDSUVLT3dpZGtVVFVhaVBkWjRlZm1BcitDRWVHemRxMjdvYjJTK25xcUhxZ1YKLS0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KLS0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQotTUlJQjJEQ0NBWDJnQXdJQkFnSUJBVEFLQmdncWhrak9QUVFEQWpBdk1Rc3dDUVlEVlFRR0V3SlZTekVSTUE4RwotQTFVRUNnd0liV0psWkNCVVRGTXhEVEFMQmdOVkJBTU1CRU5CTURJd0hoY05NVGN3TmpJeU1URTFNRE15V2hjTgotTWpjd05qSXpNVEUxTURNeVdqQXZNUXN3Q1FZRFZRUUdFd0pWU3pFUk1BOEdBMVVFQ2d3SWJXSmxaQ0JVVEZNeAotRFRBTEJnTlZCQU1NQkVOQk1ETXdXVEFUQmdjcWhrak9QUUlCQmdncWhrak9QUU1CQndOQ0FBUVJEWEROSWkxcAotZXJldWRocXdhMkxzbFhnc3huQjYzSHU1eTVsZysxV1BydUlZUHpEL0hvMEFQdmVWZHpGTFZqaTE5K2JFNCt0RgotUFlMMVNwc04xV2ZXbzRHSk1JR0dNQjBHQTFVZERnUVdCQlFBcHpaZHRCZEQzZEx4b3VRcHIvYURpVnR0ZHpCWAotQmdOVkhTTUVVREJPZ0JUNVJDZ1EwQWxaVFFiZkZCMis2K3cwWFJ2eWRhRXpwREV3THpFTE1Ba0dBMVVFQmhNQwotVlVzeEVUQVBCZ05WQkFvTUNHMWlaV1FnVkV4VE1RMHdDd1lEVlFRRERBUkRRVEF4Z2dFQk1Bd0dBMVVkRXdRRgotTUFNQkFmOHdDZ1lJS29aSXpqMEVBd0lEU1FBd1JnSWhBT25kKzdiQW9ma0hWYTRLRk5qdjNUQ2VndzFscmh1TQotOE9mOHdndnJURUdvQWlFQXNTOGlLTXBTZlhINEQwZWdnNGdMYW1FNmFrZGU5NjVyRHR5U1UrdmU5bGc9Ci0tLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCi0tLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KLU1JSUIxekNDQVgyZ0F3SUJBZ0lCQVRBS0JnZ3Foa2pPUFFRREFqQXZNUXN3Q1FZRFZRUUdFd0pWU3pFUk1BOEcKLUExVUVDZ3dJYldKbFpDQlVURk14RFRBTEJnTlZCQU1NQkVOQk1ERXdIaGNOTVRjd05qSXlNVEUxTURNeVdoY04KLU1qY3dOakl6TVRFMU1ETXlXakF2TVFzd0NRWURWUVFHRXdKVlN6RVJNQThHQTFVRUNnd0liV0psWkNCVVRGTXgKLURUQUxCZ05WQkFNTUJFTkJNREl3V1RBVEJnY3Foa2pPUFFJQkJnZ3Foa2pPUFFNQkJ3TkNBQVFXSHB2MWk2bGYKLXd2TlBPUDVrYTZTMG41NUV2em9hWUs2cGJUWFA2eU1PVy80WFpTUEt4NVpvcTRGTWUwY0t6R0lJRkwxcnpqMVYKLTJjellCK3F2TGh5aW80R0pNSUdHTUIwR0ExVWREZ1FXQkJUNVJDZ1EwQWxaVFFiZkZCMis2K3cwWFJ2eWRUQlgKLUJnTlZIU01FVURCT2dCU2gzdUhrWDVuajg2eUZFRndqc2NTV000MFArcUV6cERFd0x6RUxNQWtHQTFVRUJoTUMKLVZVc3hFVEFQQmdOVkJBb01DRzFpWldRZ1ZFeFRNUTB3Q3dZRFZRUUREQVJEUVRBd2dnRUJNQXdHQTFVZEV3UUYKLU1BTUJBZjh3Q2dZSUtvWkl6ajBFQXdJRFNBQXdSUUloQUk3dW5HVy9ncjl0T2MzaStkRjVOODE1c3JnaCtGclgKLW9qOUV0NzRFY1NwVEFpQnVidit2T0gwREUwZ21ZSTExSGVBSWd1dFdxcU1JQzcyZFpsd1RGL1ZpM2c9PQotLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQotLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCi1NSUlCM2pDQ0FZV2dBd0lCQWdJQkFUQUtCZ2dxaGtqT1BRUURBakF2TVFzd0NRWURWUVFHRXdKVlN6RVJNQThHCi1BMVVFQ2d3SWJXSmxaQ0JVVEZNeERUQUxCZ05WQkFNTUJFTkJNREF3SGhjTk1UY3dOakl5TVRFMU1ETXlXaGNOCi1NamN3TmpJek1URTFNRE15V2pBdk1Rc3dDUVlEVlFRR0V3SlZTekVSTUE4R0ExVUVDZ3dJYldKbFpDQlVURk14Ci1EVEFMQmdOVkJBTU1CRU5CTURFd1dUQVRCZ2NxaGtqT1BRSUJCZ2dxaGtqT1BRTUJCd05DQUFRem5uOXpISHdMCi1HTzhWUjRXOVY3dk1seENkb29qekVPaVg1WTZKdFB0Rk96ODY2dWVIWTZ6b04wL21KNkRucW5TWGlsSklVVWVXCi02ZUdmcW1rYTdueGtvNEdSTUlHT01CMEdBMVVkRGdRV0JCU2gzdUhrWDVuajg2eUZFRndqc2NTV000MFArakJmCi1CZ05WSFNNRVdEQldnQlFsRll2VTVXYm9JNGZjZFBvaVFzOC9mUEhacmFFenBERXdMekVMTUFrR0ExVUVCaE1DCi1WVXN4RVRBUEJnTlZCQW9NQ0cxaVpXUWdWRXhUTVEwd0N3WURWUVFEREFSRFFUQXdnZ2tBL0tDV2hjcVRvSEF3Ci1EQVlEVlIwVEJBVXdBd0VCL3pBS0JnZ3Foa2pPUFFRREFnTkhBREJFQWlCYXNidWluUCtwSlRVNG9EQ1ZEOHpRCi0xckpCRFNPS0lFeVd1ODQvRDZIajZ3SWdWTVBVb08wMWJQaHpsbEFhL2dXOFhrL2RhZXkwOVNCZ04zQVQ5cFdVCi1UREE9Ci0tLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCi0tLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KLU1JSUJwVENDQVV1Z0F3SUJBZ0lKQVB5Z2xvWEtrNkJ3TUFvR0NDcUdTTTQ5QkFNQ01DOHhDekFKQmdOVkJBWVQKLUFsVkxNUkV3RHdZRFZRUUtEQWh0WW1Wa0lGUk1VekVOTUFzR0ExVUVBd3dFUTBFd01EQWVGdzB4TnpBMk1qSXgKLU1UVXdNekphRncweU56QTJNak14TVRVd016SmFNQzh4Q3pBSkJnTlZCQVlUQWxWTE1SRXdEd1lEVlFRS0RBaHQKLVltVmtJRlJNVXpFTk1Bc0dBMVVFQXd3RVEwRXdNREJaTUJNR0J5cUdTTTQ5QWdFR0NDcUdTTTQ5QXdFSEEwSUEKLUJGVzQxL3FBd0FQcHkrVHhkYzdQS216WnNxOUNQaXVqS1U0dnBGMWVrWG5HeDJIUDQyMFFvYndCVlZXaGt6Um0KLUx3ZGJvSDJqNjVkY0NLalE3bXYvZHhLalVEQk9NQjBHQTFVZERnUVdCQlFsRll2VTVXYm9JNGZjZFBvaVFzOC8KLWZQSFpyVEFmQmdOVkhTTUVHREFXZ0JRbEZZdlU1V2JvSTRmY2RQb2lRczgvZlBIWnJUQU1CZ05WSFJNRUJUQUQKLUFRSC9NQW9HQ0NxR1NNNDlCQU1DQTBnQU1FVUNJUUM3aVJjVnp3TXlmVks1aW1pcko3TXFKUTA0ZXVINENMT3QKLUlaK1NOZmFFUkFJZ1NVME1XRkRvc1ZFSXBnOFlNcUlIZUY3TWc0WnlINitmR2F6SmdWTHR0VVk9Ci0tLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCmRpZmYgLS1naXQgYS90ZXN0cy9kYXRhX2ZpbGVzL2Rpci1tYXhwYXRoL2MxMC5wZW0gYi90ZXN0cy9kYXRhX2ZpbGVzL2Rpci1tYXhwYXRoL2MxMC5wZW0KZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGUyOTMzMDQuLjAwMDAwMDAKLS0tIGEvdGVzdHMvZGF0YV9maWxlcy9kaXItbWF4cGF0aC9jMTAucGVtCisrKyAvZGV2L251bGwKQEAgLTEsMTMyICswLDAgQEAKLS0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQotTUlJQjF6Q0NBWDJnQXdJQkFnSUJBVEFLQmdncWhrak9QUVFEQWpBdk1Rc3dDUVlEVlFRR0V3SlZTekVSTUE4RwotQTFVRUNnd0liV0psWkNCVVRGTXhEVEFMQmdOVkJBTU1CRU5CTURrd0hoY05NVGN3TmpJeU1URTFNRE16V2hjTgotTWpjd05qSXpNVEUxTURNeldqQXZNUXN3Q1FZRFZRUUdFd0pWU3pFUk1BOEdBMVVFQ2d3SWJXSmxaQ0JVVEZNeAotRFRBTEJnTlZCQU1NQkVOQk1UQXdXVEFUQmdjcWhrak9QUUlCQmdncWhrak9QUU1CQndOQ0FBUjZqbEdLYkpkNQotaGlEeE43ODlna09jd3B5SEk5d1J3Q3JBREFPd09rTWVQQlBSbHdHZG03bXc3Wi9FQW11MjZ6Um0vaGN5cnM0TQotcWsyTGFiRGpQSTlYbzRHSk1JR0dNQjBHQTFVZERnUVdCQlF0eFpTTEpBa0V6KzJSS01RZXhNNkV0c2ZnY2pCWAotQmdOVkhTTUVVREJPZ0JUNmd5WEh6UElQWWMxVnIxYUdpTExlTWg0SHBxRXpwREV3THpFTE1Ba0dBMVVFQmhNQwotVlVzeEVUQVBCZ05WQkFvTUNHMWlaV1FnVkV4VE1RMHdDd1lEVlFRRERBUkRRVEE0Z2dFQk1Bd0dBMVVkRXdRRgotTUFNQkFmOHdDZ1lJS29aSXpqMEVBd0lEU0FBd1JRSWdQN1M4dkZzdGZVQmROZTZ5bTVHWUc1USthQlZFS3FScwotZlZXN0hOVWt0U1lDSVFEbzZKdWE2by9ESmJycHE0cVlXcTVndjR5R3l6UFROKzNJYUtyRUlDZGFhdz09Ci0tLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCi0tLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KLU1JSUIxakNDQVgyZ0F3SUJBZ0lCQVRBS0JnZ3Foa2pPUFFRREFqQXZNUXN3Q1FZRFZRUUdFd0pWU3pFUk1BOEcKLUExVUVDZ3dJYldKbFpDQlVURk14RFRBTEJnTlZCQU1NQkVOQk1EZ3dIaGNOTVRjd05qSXlNVEUxTURNeldoY04KLU1qY3dOakl6TVRFMU1ETXpXakF2TVFzd0NRWURWUVFHRXdKVlN6RVJNQThHQTFVRUNnd0liV0psWkNCVVRGTXgKLURUQUxCZ05WQkFNTUJFTkJNRGt3V1RBVEJnY3Foa2pPUFFJQkJnZ3Foa2pPUFFNQkJ3TkNBQVI3WkIxNit0NkUKLXNmYWhHeUtVR0pXNW1lemt6amRhWXZjNGxiSmFLTlJ3RlJmYzNGL2ZtTk9Tc1VGU2cvRjBOK3ZVRStkb0tpUEMKLTh3UndMenZtNHMrNW80R0pNSUdHTUIwR0ExVWREZ1FXQkJUNmd5WEh6UElQWWMxVnIxYUdpTExlTWg0SHBqQlgKLUJnTlZIU01FVURCT2dCUzQwbUx0OTNVOFNoOFpHaURWQWhSU2lCUGNYcUV6cERFd0x6RUxNQWtHQTFVRUJoTUMKLVZVc3hFVEFQQmdOVkJBb01DRzFpWldRZ1ZFeFRNUTB3Q3dZRFZRUUREQVJEUVRBM2dnRUJNQXdHQTFVZEV3UUYKLU1BTUJBZjh3Q2dZSUtvWkl6ajBFQXdJRFJ3QXdSQUlnTzRlbDFaUGhsSWxpL3FOUjJTSUVpdXZzNU1teTg2OGkKLU4yUnY1WC9WeElFQ0lBLzhyVUFMUXhXMzhYU2RCVlgzZS9qenU3anU0N24xWXdFcUQ5SzlXZFZ2Ci0tLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCi0tLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KLU1JSUIyRENDQVgyZ0F3SUJBZ0lCQVRBS0JnZ3Foa2pPUFFRREFqQXZNUXN3Q1FZRFZRUUdFd0pWU3pFUk1BOEcKLUExVUVDZ3dJYldKbFpDQlVURk14RFRBTEJnTlZCQU1NQkVOQk1EY3dIaGNOTVRjd05qSXlNVEUxTURNeVdoY04KLU1qY3dOakl6TVRFMU1ETXlXakF2TVFzd0NRWURWUVFHRXdKVlN6RVJNQThHQTFVRUNnd0liV0psWkNCVVRGTXgKLURUQUxCZ05WQkFNTUJFTkJNRGd3V1RBVEJnY3Foa2pPUFFJQkJnZ3Foa2pPUFFNQkJ3TkNBQVJwUWVRL1lHUWoKLW5sN1N6bzZXU3RKMXU3eHVuVEw1akJrWEg4YUFWU20wcWlYNEFELzdZUHhhNUVuR3paZExUbjI1dlFWbmZRQUcKLXBNeDhQMWxZaUdZQ280R0pNSUdHTUIwR0ExVWREZ1FXQkJTNDBtTHQ5M1U4U2g4WkdpRFZBaFJTaUJQY1hqQlgKLUJnTlZIU01FVURCT2dCUkVxNUozdG9KUHhaM08rc3NKNXZra1UwUkpFNkV6cERFd0x6RUxNQWtHQTFVRUJoTUMKLVZVc3hFVEFQQmdOVkJBb01DRzFpWldRZ1ZFeFRNUTB3Q3dZRFZRUUREQVJEUVRBMmdnRUJNQXdHQTFVZEV3UUYKLU1BTUJBZjh3Q2dZSUtvWkl6ajBFQXdJRFNRQXdSZ0loQU53R2YrRjRhK2ttWFd6OFVqU3BSa2FUb1RWNkVGV3cKLS9UanpqMHRRaERvQUFpRUExOVJ4ZVdPVkJCcE02TE9IZzZ2NUxmNTRZTjFzbmtMZitzRVh5WkN1V1FRPQotLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQotLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCi1NSUlCMkRDQ0FYMmdBd0lCQWdJQkFUQUtCZ2dxaGtqT1BRUURBakF2TVFzd0NRWURWUVFHRXdKVlN6RVJNQThHCi1BMVVFQ2d3SWJXSmxaQ0JVVEZNeERUQUxCZ05WQkFNTUJFTkJNRFl3SGhjTk1UY3dOakl5TVRFMU1ETXlXaGNOCi1NamN3TmpJek1URTFNRE15V2pBdk1Rc3dDUVlEVlFRR0V3SlZTekVSTUE4R0ExVUVDZ3dJYldKbFpDQlVURk14Ci1EVEFMQmdOVkJBTU1CRU5CTURjd1dUQVRCZ2NxaGtqT1BRSUJCZ2dxaGtqT1BRTUJCd05DQUFTTk9qNGQ0TUVBCi03cC8zbWlpanFHNFRvRTRvcEtQQW0rM0JUSUdySlRZVDE0KytUU2lVSUNsMEFTWGoreGVVY0xNSWFYVE4wNDJzCi1Mc0h4cFNoelFhTDBvNEdKTUlHR01CMEdBMVVkRGdRV0JCUkVxNUozdG9KUHhaM08rc3NKNXZra1UwUkpFekJYCi1CZ05WSFNNRVVEQk9nQlNqb3ZZYUMvbTZMaTlUcDBWOWlaUnM5MjY3UTZFenBERXdMekVMTUFrR0ExVUVCaE1DCi1WVXN4RVRBUEJnTlZCQW9NQ0cxaVpXUWdWRXhUTVEwd0N3WURWUVFEREFSRFFUQTFnZ0VCTUF3R0ExVWRFd1FGCi1NQU1CQWY4d0NnWUlLb1pJemowRUF3SURTUUF3UmdJaEFLR2NmK2M0NDJjL1hpd3ViYmFpUXZzb1o3RW9WeHVNCi1vS21pYTBnUHlCTmtBaUVBODNhc2pKNUZEWFF1THlacGN6dmlYcmJtcWdDUE9mWWFkdHZrYzBjeE1pcz0KLS0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KLS0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQotTUlJQjFqQ0NBWDJnQXdJQkFnSUJBVEFLQmdncWhrak9QUVFEQWpBdk1Rc3dDUVlEVlFRR0V3SlZTekVSTUE4RwotQTFVRUNnd0liV0psWkNCVVRGTXhEVEFMQmdOVkJBTU1CRU5CTURVd0hoY05NVGN3TmpJeU1URTFNRE15V2hjTgotTWpjd05qSXpNVEUxTURNeVdqQXZNUXN3Q1FZRFZRUUdFd0pWU3pFUk1BOEdBMVVFQ2d3SWJXSmxaQ0JVVEZNeAotRFRBTEJnTlZCQU1NQkVOQk1EWXdXVEFUQmdjcWhrak9QUUlCQmdncWhrak9QUU1CQndOQ0FBU0E5cVdvQVVIcgotbm4rM2t4eU5yalBKazgyV0RMaW1XMjFSTjUxdXhwb2JhZHY4WWdHRURSZFArT2srdVJxUVNVc0E2WlhmRjNpRwotcjJHamZRM3dNREg4bzRHSk1JR0dNQjBHQTFVZERnUVdCQlNqb3ZZYUMvbTZMaTlUcDBWOWlaUnM5MjY3UXpCWAotQmdOVkhTTUVVREJPZ0JUWGgwNk1BVjlTNGw0bEcxVEtPcktSQmg0cW42RXpwREV3THpFTE1Ba0dBMVVFQmhNQwotVlVzeEVUQVBCZ05WQkFvTUNHMWlaV1FnVkV4VE1RMHdDd1lEVlFRRERBUkRRVEEwZ2dFQk1Bd0dBMVVkRXdRRgotTUFNQkFmOHdDZ1lJS29aSXpqMEVBd0lEUndBd1JBSWdjalpORldKdGxEbW9QWmJBeHFzR2N6UllLMGxmUGd1NgotZzFIN3BwMGNlK3dDSURqOUJSWk0yT0I5RUYwZStNREtHanlaR2Z2ZnJMNklyNDd4L0tyTTZIOFQKLS0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KLS0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQotTUlJQjF6Q0NBWDJnQXdJQkFnSUJBVEFLQmdncWhrak9QUVFEQWpBdk1Rc3dDUVlEVlFRR0V3SlZTekVSTUE4RwotQTFVRUNnd0liV0psWkNCVVRGTXhEVEFMQmdOVkJBTU1CRU5CTURRd0hoY05NVGN3TmpJeU1URTFNRE15V2hjTgotTWpjd05qSXpNVEUxTURNeVdqQXZNUXN3Q1FZRFZRUUdFd0pWU3pFUk1BOEdBMVVFQ2d3SWJXSmxaQ0JVVEZNeAotRFRBTEJnTlZCQU1NQkVOQk1EVXdXVEFUQmdjcWhrak9QUUlCQmdncWhrak9QUU1CQndOQ0FBUUVkVDBPRmY1RwotVWNyZ1gyWGxsQ3lKelA5NE5aNDY0R3NnQjZwc05Mc0RlTCtqN0FVK29KeTdWTHZXL2xIaDNPRGdsMDhaOWJocQotTEZCbU5qbkhibThRbzRHSk1JR0dNQjBHQTFVZERnUVdCQlRYaDA2TUFWOVM0bDRsRzFUS09yS1JCaDRxbnpCWAotQmdOVkhTTUVVREJPZ0JRb3g0RjFOc1p1bmxzZHVvR3Z6SWdSU1lmQjM2RXpwREV3THpFTE1Ba0dBMVVFQmhNQwotVlVzeEVUQVBCZ05WQkFvTUNHMWlaV1FnVkV4VE1RMHdDd1lEVlFRRERBUkRRVEF6Z2dFQk1Bd0dBMVVkRXdRRgotTUFNQkFmOHdDZ1lJS29aSXpqMEVBd0lEU0FBd1JRSWhBSVcrK3pxRFpsTExVay9lbWVQb2hkTk9wNUpPM3dTOQotWHZrQko2V3VhN0dCQWlBZHgrRUttZGpWcnduenJRbHRUZ25tU2ZHTVhoS05ZaWZLM3VEODNXM3BjUT09Ci0tLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCi0tLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KLU1JSUIxakNDQVgyZ0F3SUJBZ0lCQVRBS0JnZ3Foa2pPUFFRREFqQXZNUXN3Q1FZRFZRUUdFd0pWU3pFUk1BOEcKLUExVUVDZ3dJYldKbFpDQlVURk14RFRBTEJnTlZCQU1NQkVOQk1ETXdIaGNOTVRjd05qSXlNVEUxTURNeVdoY04KLU1qY3dOakl6TVRFMU1ETXlXakF2TVFzd0NRWURWUVFHRXdKVlN6RVJNQThHQTFVRUNnd0liV0psWkNCVVRGTXgKLURUQUxCZ05WQkFNTUJFTkJNRFF3V1RBVEJnY3Foa2pPUFFJQkJnZ3Foa2pPUFFNQkJ3TkNBQVFVWERnY1VWTlQKLTlob3ZiWkU1SEw2cmpPYjdDNTV3RXVXS1RoVi9DY1o0cldyWHg3VlhIWWREL1IzYURBN0pTdllwbTJzVG9rNGkKLXNibER6aFpNL0dETm80R0pNSUdHTUIwR0ExVWREZ1FXQkJRb3g0RjFOc1p1bmxzZHVvR3Z6SWdSU1lmQjN6QlgKLUJnTlZIU01FVURCT2dCUUFwelpkdEJkRDNkTHhvdVFwci9hRGlWdHRkNkV6cERFd0x6RUxNQWtHQTFVRUJoTUMKLVZVc3hFVEFQQmdOVkJBb01DRzFpWldRZ1ZFeFRNUTB3Q3dZRFZRUUREQVJEUVRBeWdnRUJNQXdHQTFVZEV3UUYKLU1BTUJBZjh3Q2dZSUtvWkl6ajBFQXdJRFJ3QXdSQUlnQWtpTmhxRkFaWFNVV0VESzkxT1p2UUdkZVpPdGQ2bUMKLStXdjNmR2szdDI4Q0lFS093aWRrVVRVYWlQZFo0ZWZtQXIrQ0VlR3pkcTI3b2IyUytucXFIcWdWCi0tLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCi0tLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KLU1JSUIyRENDQVgyZ0F3SUJBZ0lCQVRBS0JnZ3Foa2pPUFFRREFqQXZNUXN3Q1FZRFZRUUdFd0pWU3pFUk1BOEcKLUExVUVDZ3dJYldKbFpDQlVURk14RFRBTEJnTlZCQU1NQkVOQk1ESXdIaGNOTVRjd05qSXlNVEUxTURNeVdoY04KLU1qY3dOakl6TVRFMU1ETXlXakF2TVFzd0NRWURWUVFHRXdKVlN6RVJNQThHQTFVRUNnd0liV0psWkNCVVRGTXgKLURUQUxCZ05WQkFNTUJFTkJNRE13V1RBVEJnY3Foa2pPUFFJQkJnZ3Foa2pPUFFNQkJ3TkNBQVFSRFhETklpMXAKLWVyZXVkaHF3YTJMc2xYZ3N4bkI2M0h1NXk1bGcrMVdQcnVJWVB6RC9IbzBBUHZlVmR6RkxWamkxOStiRTQrdEYKLVBZTDFTcHNOMVdmV280R0pNSUdHTUIwR0ExVWREZ1FXQkJRQXB6WmR0QmREM2RMeG91UXByL2FEaVZ0dGR6QlgKLUJnTlZIU01FVURCT2dCVDVSQ2dRMEFsWlRRYmZGQjIrNit3MFhSdnlkYUV6cERFd0x6RUxNQWtHQTFVRUJoTUMKLVZVc3hFVEFQQmdOVkJBb01DRzFpWldRZ1ZFeFRNUTB3Q3dZRFZRUUREQVJEUVRBeGdnRUJNQXdHQTFVZEV3UUYKLU1BTUJBZjh3Q2dZSUtvWkl6ajBFQXdJRFNRQXdSZ0loQU9uZCs3YkFvZmtIVmE0S0ZOanYzVENlZ3cxbHJodU0KLThPZjh3Z3ZyVEVHb0FpRUFzUzhpS01wU2ZYSDREMGVnZzRnTGFtRTZha2RlOTY1ckR0eVNVK3ZlOWxnPQotLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQotLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCi1NSUlCMXpDQ0FYMmdBd0lCQWdJQkFUQUtCZ2dxaGtqT1BRUURBakF2TVFzd0NRWURWUVFHRXdKVlN6RVJNQThHCi1BMVVFQ2d3SWJXSmxaQ0JVVEZNeERUQUxCZ05WQkFNTUJFTkJNREV3SGhjTk1UY3dOakl5TVRFMU1ETXlXaGNOCi1NamN3TmpJek1URTFNRE15V2pBdk1Rc3dDUVlEVlFRR0V3SlZTekVSTUE4R0ExVUVDZ3dJYldKbFpDQlVURk14Ci1EVEFMQmdOVkJBTU1CRU5CTURJd1dUQVRCZ2NxaGtqT1BRSUJCZ2dxaGtqT1BRTUJCd05DQUFRV0hwdjFpNmxmCi13dk5QT1A1a2E2UzBuNTVFdnpvYVlLNnBiVFhQNnlNT1cvNFhaU1BLeDVab3E0Rk1lMGNLekdJSUZMMXJ6ajFWCi0yY3pZQitxdkxoeWlvNEdKTUlHR01CMEdBMVVkRGdRV0JCVDVSQ2dRMEFsWlRRYmZGQjIrNit3MFhSdnlkVEJYCi1CZ05WSFNNRVVEQk9nQlNoM3VIa1g1bmo4NnlGRUZ3anNjU1dNNDBQK3FFenBERXdMekVMTUFrR0ExVUVCaE1DCi1WVXN4RVRBUEJnTlZCQW9NQ0cxaVpXUWdWRXhUTVEwd0N3WURWUVFEREFSRFFUQXdnZ0VCTUF3R0ExVWRFd1FGCi1NQU1CQWY4d0NnWUlLb1pJemowRUF3SURTQUF3UlFJaEFJN3VuR1cvZ3I5dE9jM2krZEY1TjgxNXNyZ2grRnJYCi1vajlFdDc0RWNTcFRBaUJ1YnYrdk9IMERFMGdtWUkxMUhlQUlndXRXcXFNSUM3MmRabHdURi9WaTNnPT0KLS0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KLS0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQotTUlJQjNqQ0NBWVdnQXdJQkFnSUJBVEFLQmdncWhrak9QUVFEQWpBdk1Rc3dDUVlEVlFRR0V3SlZTekVSTUE4RwotQTFVRUNnd0liV0psWkNCVVRGTXhEVEFMQmdOVkJBTU1CRU5CTURBd0hoY05NVGN3TmpJeU1URTFNRE15V2hjTgotTWpjd05qSXpNVEUxTURNeVdqQXZNUXN3Q1FZRFZRUUdFd0pWU3pFUk1BOEdBMVVFQ2d3SWJXSmxaQ0JVVEZNeAotRFRBTEJnTlZCQU1NQkVOQk1ERXdXVEFUQmdjcWhrak9QUUlCQmdncWhrak9QUU1CQndOQ0FBUXpubjl6SEh3TAotR084VlI0VzlWN3ZNbHhDZG9vanpFT2lYNVk2SnRQdEZPejg2NnVlSFk2em9OMC9tSjZEbnFuU1hpbEpJVVVlVwotNmVHZnFta2E3bnhrbzRHUk1JR09NQjBHQTFVZERnUVdCQlNoM3VIa1g1bmo4NnlGRUZ3anNjU1dNNDBQK2pCZgotQmdOVkhTTUVXREJXZ0JRbEZZdlU1V2JvSTRmY2RQb2lRczgvZlBIWnJhRXpwREV3THpFTE1Ba0dBMVVFQmhNQwotVlVzeEVUQVBCZ05WQkFvTUNHMWlaV1FnVkV4VE1RMHdDd1lEVlFRRERBUkRRVEF3Z2drQS9LQ1doY3FUb0hBdwotREFZRFZSMFRCQVV3QXdFQi96QUtCZ2dxaGtqT1BRUURBZ05IQURCRUFpQmFzYnVpblArcEpUVTRvRENWRDh6UQotMXJKQkRTT0tJRXlXdTg0L0Q2SGo2d0lnVk1QVW9PMDFiUGh6bGxBYS9nVzhYay9kYWV5MDlTQmdOM0FUOXBXVQotVERBPQotLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQotLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCi1NSUlCcFRDQ0FVdWdBd0lCQWdJSkFQeWdsb1hLazZCd01Bb0dDQ3FHU000OUJBTUNNQzh4Q3pBSkJnTlZCQVlUCi1BbFZMTVJFd0R3WURWUVFLREFodFltVmtJRlJNVXpFTk1Bc0dBMVVFQXd3RVEwRXdNREFlRncweE56QTJNakl4Ci1NVFV3TXpKYUZ3MHlOekEyTWpNeE1UVXdNekphTUM4eEN6QUpCZ05WQkFZVEFsVkxNUkV3RHdZRFZRUUtEQWh0Ci1ZbVZrSUZSTVV6RU5NQXNHQTFVRUF3d0VRMEV3TURCWk1CTUdCeXFHU000OUFnRUdDQ3FHU000OUF3RUhBMElBCi1CRlc0MS9xQXdBUHB5K1R4ZGM3UEttelpzcTlDUGl1aktVNHZwRjFla1huR3gySFA0MjBRb2J3QlZWV2hrelJtCi1Md2Rib0gyajY1ZGNDS2pRN212L2R4S2pVREJPTUIwR0ExVWREZ1FXQkJRbEZZdlU1V2JvSTRmY2RQb2lRczgvCi1mUEhaclRBZkJnTlZIU01FR0RBV2dCUWxGWXZVNVdib0k0ZmNkUG9pUXM4L2ZQSFpyVEFNQmdOVkhSTUVCVEFECi1BUUgvTUFvR0NDcUdTTTQ5QkFNQ0EwZ0FNRVVDSVFDN2lSY1Z6d015ZlZLNWltaXJKN01xSlEwNGV1SDRDTE90Ci1JWitTTmZhRVJBSWdTVTBNV0ZEb3NWRUlwZzhZTXFJSGVGN01nNFp5SDYrZkdhekpnVkx0dFVZPQotLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQpkaWZmIC0tZ2l0IGEvdGVzdHMvZGF0YV9maWxlcy9kaXItbWF4cGF0aC9jMTEucGVtIGIvdGVzdHMvZGF0YV9maWxlcy9kaXItbWF4cGF0aC9jMTEucGVtCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1NmNiY2JmLi4wMDAwMDAwCi0tLSBhL3Rlc3RzL2RhdGFfZmlsZXMvZGlyLW1heHBhdGgvYzExLnBlbQorKysgL2Rldi9udWxsCkBAIC0xLDE0NCArMCwwIEBACi0tLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KLU1JSUIxakNDQVgyZ0F3SUJBZ0lCQVRBS0JnZ3Foa2pPUFFRREFqQXZNUXN3Q1FZRFZRUUdFd0pWU3pFUk1BOEcKLUExVUVDZ3dJYldKbFpDQlVURk14RFRBTEJnTlZCQU1NQkVOQk1UQXdIaGNOTVRjd05qSXlNVEUxTURNeldoY04KLU1qY3dOakl6TVRFMU1ETXpXakF2TVFzd0NRWURWUVFHRXdKVlN6RVJNQThHQTFVRUNnd0liV0psWkNCVVRGTXgKLURUQUxCZ05WQkFNTUJFTkJNVEV3V1RBVEJnY3Foa2pPUFFJQkJnZ3Foa2pPUFFNQkJ3TkNBQVRad1IrV0s2TkIKLUYvN3JpRmRONjNjOGhqWWRkWlJSNGxyelZOUHdpQlF4bm54d3BQeXJEOUE2YVBQbUxjNlNxR09KVzRaR1ZDY28KLUlCemU5UkpWZWlCOW80R0pNSUdHTUIwR0ExVWREZ1FXQkJTT1N0NmVQeU1SVDZQR01hSWk3RnFOWDlNS3REQlgKLUJnTlZIU01FVURCT2dCUXR4WlNMSkFrRXorMlJLTVFleE02RXRzZmdjcUV6cERFd0x6RUxNQWtHQTFVRUJoTUMKLVZVc3hFVEFQQmdOVkJBb01DRzFpWldRZ1ZFeFRNUTB3Q3dZRFZRUUREQVJEUVRBNWdnRUJNQXdHQTFVZEV3UUYKLU1BTUJBZjh3Q2dZSUtvWkl6ajBFQXdJRFJ3QXdSQUlnTi8vTnFNMEZya3JNam14b2VDWTlEZ3hrSDJSNnNRNGQKLU5ndHdDWkFJcUVJQ0lCczR2dXBhVmN1dm5pOXRsdGJQMjZ3aTdjMEZSK2JsWnVvNURQSUEzU1ZlCi0tLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCi0tLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KLU1JSUIxekNDQVgyZ0F3SUJBZ0lCQVRBS0JnZ3Foa2pPUFFRREFqQXZNUXN3Q1FZRFZRUUdFd0pWU3pFUk1BOEcKLUExVUVDZ3dJYldKbFpDQlVURk14RFRBTEJnTlZCQU1NQkVOQk1Ea3dIaGNOTVRjd05qSXlNVEUxTURNeldoY04KLU1qY3dOakl6TVRFMU1ETXpXakF2TVFzd0NRWURWUVFHRXdKVlN6RVJNQThHQTFVRUNnd0liV0psWkNCVVRGTXgKLURUQUxCZ05WQkFNTUJFTkJNVEF3V1RBVEJnY3Foa2pPUFFJQkJnZ3Foa2pPUFFNQkJ3TkNBQVI2amxHS2JKZDUKLWhpRHhONzg5Z2tPY3dweUhJOXdSd0NyQURBT3dPa01lUEJQUmx3R2RtN213N1ovRUFtdTI2elJtL2hjeXJzNE0KLXFrMkxhYkRqUEk5WG80R0pNSUdHTUIwR0ExVWREZ1FXQkJRdHhaU0xKQWtFeisyUktNUWV4TTZFdHNmZ2NqQlgKLUJnTlZIU01FVURCT2dCVDZneVhIelBJUFljMVZyMWFHaUxMZU1oNEhwcUV6cERFd0x6RUxNQWtHQTFVRUJoTUMKLVZVc3hFVEFQQmdOVkJBb01DRzFpWldRZ1ZFeFRNUTB3Q3dZRFZRUUREQVJEUVRBNGdnRUJNQXdHQTFVZEV3UUYKLU1BTUJBZjh3Q2dZSUtvWkl6ajBFQXdJRFNBQXdSUUlnUDdTOHZGc3RmVUJkTmU2eW01R1lHNVErYUJWRUtxUnMKLWZWVzdITlVrdFNZQ0lRRG82SnVhNm8vREpicnBxNHFZV3E1Z3Y0eUd5elBUTiszSWFLckVJQ2RhYXc9PQotLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQotLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCi1NSUlCMWpDQ0FYMmdBd0lCQWdJQkFUQUtCZ2dxaGtqT1BRUURBakF2TVFzd0NRWURWUVFHRXdKVlN6RVJNQThHCi1BMVVFQ2d3SWJXSmxaQ0JVVEZNeERUQUxCZ05WQkFNTUJFTkJNRGd3SGhjTk1UY3dOakl5TVRFMU1ETXpXaGNOCi1NamN3TmpJek1URTFNRE16V2pBdk1Rc3dDUVlEVlFRR0V3SlZTekVSTUE4R0ExVUVDZ3dJYldKbFpDQlVURk14Ci1EVEFMQmdOVkJBTU1CRU5CTURrd1dUQVRCZ2NxaGtqT1BRSUJCZ2dxaGtqT1BRTUJCd05DQUFSN1pCMTYrdDZFCi1zZmFoR3lLVUdKVzVtZXprempkYVl2YzRsYkphS05Sd0ZSZmMzRi9mbU5PU3NVRlNnL0YwTit2VUUrZG9LaVBDCi04d1J3THp2bTRzKzVvNEdKTUlHR01CMEdBMVVkRGdRV0JCVDZneVhIelBJUFljMVZyMWFHaUxMZU1oNEhwakJYCi1CZ05WSFNNRVVEQk9nQlM0MG1MdDkzVThTaDhaR2lEVkFoUlNpQlBjWHFFenBERXdMekVMTUFrR0ExVUVCaE1DCi1WVXN4RVRBUEJnTlZCQW9NQ0cxaVpXUWdWRXhUTVEwd0N3WURWUVFEREFSRFFUQTNnZ0VCTUF3R0ExVWRFd1FGCi1NQU1CQWY4d0NnWUlLb1pJemowRUF3SURSd0F3UkFJZ080ZWwxWlBobElsaS9xTlIyU0lFaXV2czVNbXk4NjhpCi1OMlJ2NVgvVnhJRUNJQS84clVBTFF4VzM4WFNkQlZYM2Uvanp1N2p1NDduMVl3RXFEOUs5V2RWdgotLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQotLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCi1NSUlCMkRDQ0FYMmdBd0lCQWdJQkFUQUtCZ2dxaGtqT1BRUURBakF2TVFzd0NRWURWUVFHRXdKVlN6RVJNQThHCi1BMVVFQ2d3SWJXSmxaQ0JVVEZNeERUQUxCZ05WQkFNTUJFTkJNRGN3SGhjTk1UY3dOakl5TVRFMU1ETXlXaGNOCi1NamN3TmpJek1URTFNRE15V2pBdk1Rc3dDUVlEVlFRR0V3SlZTekVSTUE4R0ExVUVDZ3dJYldKbFpDQlVURk14Ci1EVEFMQmdOVkJBTU1CRU5CTURnd1dUQVRCZ2NxaGtqT1BRSUJCZ2dxaGtqT1BRTUJCd05DQUFScFFlUS9ZR1FqCi1ubDdTem82V1N0SjF1N3h1blRMNWpCa1hIOGFBVlNtMHFpWDRBRC83WVB4YTVFbkd6WmRMVG4yNXZRVm5mUUFHCi1wTXg4UDFsWWlHWUNvNEdKTUlHR01CMEdBMVVkRGdRV0JCUzQwbUx0OTNVOFNoOFpHaURWQWhSU2lCUGNYakJYCi1CZ05WSFNNRVVEQk9nQlJFcTVKM3RvSlB4WjNPK3NzSjV2a2tVMFJKRTZFenBERXdMekVMTUFrR0ExVUVCaE1DCi1WVXN4RVRBUEJnTlZCQW9NQ0cxaVpXUWdWRXhUTVEwd0N3WURWUVFEREFSRFFUQTJnZ0VCTUF3R0ExVWRFd1FGCi1NQU1CQWY4d0NnWUlLb1pJemowRUF3SURTUUF3UmdJaEFOd0dmK0Y0YStrbVhXejhValNwUmthVG9UVjZFRld3Ci0vVGp6ajB0UWhEb0FBaUVBMTlSeGVXT1ZCQnBNNkxPSGc2djVMZjU0WU4xc25rTGYrc0VYeVpDdVdRUT0KLS0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KLS0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQotTUlJQjJEQ0NBWDJnQXdJQkFnSUJBVEFLQmdncWhrak9QUVFEQWpBdk1Rc3dDUVlEVlFRR0V3SlZTekVSTUE4RwotQTFVRUNnd0liV0psWkNCVVRGTXhEVEFMQmdOVkJBTU1CRU5CTURZd0hoY05NVGN3TmpJeU1URTFNRE15V2hjTgotTWpjd05qSXpNVEUxTURNeVdqQXZNUXN3Q1FZRFZRUUdFd0pWU3pFUk1BOEdBMVVFQ2d3SWJXSmxaQ0JVVEZNeAotRFRBTEJnTlZCQU1NQkVOQk1EY3dXVEFUQmdjcWhrak9QUUlCQmdncWhrak9QUU1CQndOQ0FBU05PajRkNE1FQQotN3AvM21paWpxRzRUb0U0b3BLUEFtKzNCVElHckpUWVQxNCsrVFNpVUlDbDBBU1hqK3hlVWNMTUlhWFROMDQycwotTHNIeHBTaHpRYUwwbzRHSk1JR0dNQjBHQTFVZERnUVdCQlJFcTVKM3RvSlB4WjNPK3NzSjV2a2tVMFJKRXpCWAotQmdOVkhTTUVVREJPZ0JTam92WWFDL202TGk5VHAwVjlpWlJzOTI2N1E2RXpwREV3THpFTE1Ba0dBMVVFQmhNQwotVlVzeEVUQVBCZ05WQkFvTUNHMWlaV1FnVkV4VE1RMHdDd1lEVlFRRERBUkRRVEExZ2dFQk1Bd0dBMVVkRXdRRgotTUFNQkFmOHdDZ1lJS29aSXpqMEVBd0lEU1FBd1JnSWhBS0djZitjNDQyYy9YaXd1YmJhaVF2c29aN0VvVnh1TQotb0ttaWEwZ1B5Qk5rQWlFQTgzYXNqSjVGRFhRdUx5WnBjenZpWHJibXFnQ1BPZllhZHR2a2MwY3hNaXM9Ci0tLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCi0tLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KLU1JSUIxakNDQVgyZ0F3SUJBZ0lCQVRBS0JnZ3Foa2pPUFFRREFqQXZNUXN3Q1FZRFZRUUdFd0pWU3pFUk1BOEcKLUExVUVDZ3dJYldKbFpDQlVURk14RFRBTEJnTlZCQU1NQkVOQk1EVXdIaGNOTVRjd05qSXlNVEUxTURNeVdoY04KLU1qY3dOakl6TVRFMU1ETXlXakF2TVFzd0NRWURWUVFHRXdKVlN6RVJNQThHQTFVRUNnd0liV0psWkNCVVRGTXgKLURUQUxCZ05WQkFNTUJFTkJNRFl3V1RBVEJnY3Foa2pPUFFJQkJnZ3Foa2pPUFFNQkJ3TkNBQVNBOXFXb0FVSHIKLW5uKzNreHlOcmpQSms4MldETGltVzIxUk41MXV4cG9iYWR2OFlnR0VEUmRQK09rK3VScVFTVXNBNlpYZkYzaUcKLXIyR2pmUTN3TURIOG80R0pNSUdHTUIwR0ExVWREZ1FXQkJTam92WWFDL202TGk5VHAwVjlpWlJzOTI2N1F6QlgKLUJnTlZIU01FVURCT2dCVFhoMDZNQVY5UzRsNGxHMVRLT3JLUkJoNHFuNkV6cERFd0x6RUxNQWtHQTFVRUJoTUMKLVZVc3hFVEFQQmdOVkJBb01DRzFpWldRZ1ZFeFRNUTB3Q3dZRFZRUUREQVJEUVRBMGdnRUJNQXdHQTFVZEV3UUYKLU1BTUJBZjh3Q2dZSUtvWkl6ajBFQXdJRFJ3QXdSQUlnY2paTkZXSnRsRG1vUFpiQXhxc0djelJZSzBsZlBndTYKLWcxSDdwcDBjZSt3Q0lEajlCUlpNMk9COUVGMGUrTURLR2p5WkdmdmZyTDZJcjQ3eC9Lck02SDhUCi0tLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCi0tLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KLU1JSUIxekNDQVgyZ0F3SUJBZ0lCQVRBS0JnZ3Foa2pPUFFRREFqQXZNUXN3Q1FZRFZRUUdFd0pWU3pFUk1BOEcKLUExVUVDZ3dJYldKbFpDQlVURk14RFRBTEJnTlZCQU1NQkVOQk1EUXdIaGNOTVRjd05qSXlNVEUxTURNeVdoY04KLU1qY3dOakl6TVRFMU1ETXlXakF2TVFzd0NRWURWUVFHRXdKVlN6RVJNQThHQTFVRUNnd0liV0psWkNCVVRGTXgKLURUQUxCZ05WQkFNTUJFTkJNRFV3V1RBVEJnY3Foa2pPUFFJQkJnZ3Foa2pPUFFNQkJ3TkNBQVFFZFQwT0ZmNUcKLVVjcmdYMlhsbEN5SnpQOTROWjQ2NEdzZ0I2cHNOTHNEZUwrajdBVStvSnk3Vkx2Vy9sSGgzT0RnbDA4WjliaHEKLUxGQm1Oam5IYm04UW80R0pNSUdHTUIwR0ExVWREZ1FXQkJUWGgwNk1BVjlTNGw0bEcxVEtPcktSQmg0cW56QlgKLUJnTlZIU01FVURCT2dCUW94NEYxTnNadW5sc2R1b0d2eklnUlNZZkIzNkV6cERFd0x6RUxNQWtHQTFVRUJoTUMKLVZVc3hFVEFQQmdOVkJBb01DRzFpWldRZ1ZFeFRNUTB3Q3dZRFZRUUREQVJEUVRBemdnRUJNQXdHQTFVZEV3UUYKLU1BTUJBZjh3Q2dZSUtvWkl6ajBFQXdJRFNBQXdSUUloQUlXKyt6cURabExMVWsvZW1lUG9oZE5PcDVKTzN3UzkKLVh2a0JKNld1YTdHQkFpQWR4K0VLbWRqVnJ3bnpyUWx0VGdubVNmR01YaEtOWWlmSzN1RDgzVzNwY1E9PQotLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQotLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCi1NSUlCMWpDQ0FYMmdBd0lCQWdJQkFUQUtCZ2dxaGtqT1BRUURBakF2TVFzd0NRWURWUVFHRXdKVlN6RVJNQThHCi1BMVVFQ2d3SWJXSmxaQ0JVVEZNeERUQUxCZ05WQkFNTUJFTkJNRE13SGhjTk1UY3dOakl5TVRFMU1ETXlXaGNOCi1NamN3TmpJek1URTFNRE15V2pBdk1Rc3dDUVlEVlFRR0V3SlZTekVSTUE4R0ExVUVDZ3dJYldKbFpDQlVURk14Ci1EVEFMQmdOVkJBTU1CRU5CTURRd1dUQVRCZ2NxaGtqT1BRSUJCZ2dxaGtqT1BRTUJCd05DQUFRVVhEZ2NVVk5UCi05aG92YlpFNUhMNnJqT2I3QzU1d0V1V0tUaFYvQ2NaNHJXclh4N1ZYSFlkRC9SM2FEQTdKU3ZZcG0yc1RvazRpCi1zYmxEemhaTS9HRE5vNEdKTUlHR01CMEdBMVVkRGdRV0JCUW94NEYxTnNadW5sc2R1b0d2eklnUlNZZkIzekJYCi1CZ05WSFNNRVVEQk9nQlFBcHpaZHRCZEQzZEx4b3VRcHIvYURpVnR0ZDZFenBERXdMekVMTUFrR0ExVUVCaE1DCi1WVXN4RVRBUEJnTlZCQW9NQ0cxaVpXUWdWRXhUTVEwd0N3WURWUVFEREFSRFFUQXlnZ0VCTUF3R0ExVWRFd1FGCi1NQU1CQWY4d0NnWUlLb1pJemowRUF3SURSd0F3UkFJZ0FraU5ocUZBWlhTVVdFREs5MU9adlFHZGVaT3RkNm1DCi0rV3YzZkdrM3QyOENJRUtPd2lka1VUVWFpUGRaNGVmbUFyK0NFZUd6ZHEyN29iMlMrbnFxSHFnVgotLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQotLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCi1NSUlCMkRDQ0FYMmdBd0lCQWdJQkFUQUtCZ2dxaGtqT1BRUURBakF2TVFzd0NRWURWUVFHRXdKVlN6RVJNQThHCi1BMVVFQ2d3SWJXSmxaQ0JVVEZNeERUQUxCZ05WQkFNTUJFTkJNREl3SGhjTk1UY3dOakl5TVRFMU1ETXlXaGNOCi1NamN3TmpJek1URTFNRE15V2pBdk1Rc3dDUVlEVlFRR0V3SlZTekVSTUE4R0ExVUVDZ3dJYldKbFpDQlVURk14Ci1EVEFMQmdOVkJBTU1CRU5CTURNd1dUQVRCZ2NxaGtqT1BRSUJCZ2dxaGtqT1BRTUJCd05DQUFRUkRYRE5JaTFwCi1lcmV1ZGhxd2EyTHNsWGdzeG5CNjNIdTV5NWxnKzFXUHJ1SVlQekQvSG8wQVB2ZVZkekZMVmppMTkrYkU0K3RGCi1QWUwxU3BzTjFXZldvNEdKTUlHR01CMEdBMVVkRGdRV0JCUUFwelpkdEJkRDNkTHhvdVFwci9hRGlWdHRkekJYCi1CZ05WSFNNRVVEQk9nQlQ1UkNnUTBBbFpUUWJmRkIyKzYrdzBYUnZ5ZGFFenBERXdMekVMTUFrR0ExVUVCaE1DCi1WVXN4RVRBUEJnTlZCQW9NQ0cxaVpXUWdWRXhUTVEwd0N3WURWUVFEREFSRFFUQXhnZ0VCTUF3R0ExVWRFd1FGCi1NQU1CQWY4d0NnWUlLb1pJemowRUF3SURTUUF3UmdJaEFPbmQrN2JBb2ZrSFZhNEtGTmp2M1RDZWd3MWxyaHVNCi04T2Y4d2d2clRFR29BaUVBc1M4aUtNcFNmWEg0RDBlZ2c0Z0xhbUU2YWtkZTk2NXJEdHlTVSt2ZTlsZz0KLS0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KLS0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQotTUlJQjF6Q0NBWDJnQXdJQkFnSUJBVEFLQmdncWhrak9QUVFEQWpBdk1Rc3dDUVlEVlFRR0V3SlZTekVSTUE4RwotQTFVRUNnd0liV0psWkNCVVRGTXhEVEFMQmdOVkJBTU1CRU5CTURFd0hoY05NVGN3TmpJeU1URTFNRE15V2hjTgotTWpjd05qSXpNVEUxTURNeVdqQXZNUXN3Q1FZRFZRUUdFd0pWU3pFUk1BOEdBMVVFQ2d3SWJXSmxaQ0JVVEZNeAotRFRBTEJnTlZCQU1NQkVOQk1ESXdXVEFUQmdjcWhrak9QUUlCQmdncWhrak9QUU1CQndOQ0FBUVdIcHYxaTZsZgotd3ZOUE9QNWthNlMwbjU1RXZ6b2FZSzZwYlRYUDZ5TU9XLzRYWlNQS3g1Wm9xNEZNZTBjS3pHSUlGTDFyemoxVgotMmN6WUIrcXZMaHlpbzRHSk1JR0dNQjBHQTFVZERnUVdCQlQ1UkNnUTBBbFpUUWJmRkIyKzYrdzBYUnZ5ZFRCWAotQmdOVkhTTUVVREJPZ0JTaDN1SGtYNW5qODZ5RkVGd2pzY1NXTTQwUCtxRXpwREV3THpFTE1Ba0dBMVVFQmhNQwotVlVzeEVUQVBCZ05WQkFvTUNHMWlaV1FnVkV4VE1RMHdDd1lEVlFRRERBUkRRVEF3Z2dFQk1Bd0dBMVVkRXdRRgotTUFNQkFmOHdDZ1lJS29aSXpqMEVBd0lEU0FBd1JRSWhBSTd1bkdXL2dyOXRPYzNpK2RGNU44MTVzcmdoK0ZyWAotb2o5RXQ3NEVjU3BUQWlCdWJ2K3ZPSDBERTBnbVlJMTFIZUFJZ3V0V3FxTUlDNzJkWmx3VEYvVmkzZz09Ci0tLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCi0tLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KLU1JSUIzakNDQVlXZ0F3SUJBZ0lCQVRBS0JnZ3Foa2pPUFFRREFqQXZNUXN3Q1FZRFZRUUdFd0pWU3pFUk1BOEcKLUExVUVDZ3dJYldKbFpDQlVURk14RFRBTEJnTlZCQU1NQkVOQk1EQXdIaGNOTVRjd05qSXlNVEUxTURNeVdoY04KLU1qY3dOakl6TVRFMU1ETXlXakF2TVFzd0NRWURWUVFHRXdKVlN6RVJNQThHQTFVRUNnd0liV0psWkNCVVRGTXgKLURUQUxCZ05WQkFNTUJFTkJNREV3V1RBVEJnY3Foa2pPUFFJQkJnZ3Foa2pPUFFNQkJ3TkNBQVF6bm45ekhId0wKLUdPOFZSNFc5Vjd2TWx4Q2Rvb2p6RU9pWDVZNkp0UHRGT3o4NjZ1ZUhZNnpvTjAvbUo2RG5xblNYaWxKSVVVZVcKLTZlR2ZxbWthN254a280R1JNSUdPTUIwR0ExVWREZ1FXQkJTaDN1SGtYNW5qODZ5RkVGd2pzY1NXTTQwUCtqQmYKLUJnTlZIU01FV0RCV2dCUWxGWXZVNVdib0k0ZmNkUG9pUXM4L2ZQSFpyYUV6cERFd0x6RUxNQWtHQTFVRUJoTUMKLVZVc3hFVEFQQmdOVkJBb01DRzFpWldRZ1ZFeFRNUTB3Q3dZRFZRUUREQVJEUVRBd2dna0EvS0NXaGNxVG9IQXcKLURBWURWUjBUQkFVd0F3RUIvekFLQmdncWhrak9QUVFEQWdOSEFEQkVBaUJhc2J1aW5QK3BKVFU0b0RDVkQ4elEKLTFySkJEU09LSUV5V3U4NC9ENkhqNndJZ1ZNUFVvTzAxYlBoemxsQWEvZ1c4WGsvZGFleTA5U0JnTjNBVDlwV1UKLVREQT0KLS0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KLS0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQotTUlJQnBUQ0NBVXVnQXdJQkFnSUpBUHlnbG9YS2s2QndNQW9HQ0NxR1NNNDlCQU1DTUM4eEN6QUpCZ05WQkFZVAotQWxWTE1SRXdEd1lEVlFRS0RBaHRZbVZrSUZSTVV6RU5NQXNHQTFVRUF3d0VRMEV3TURBZUZ3MHhOekEyTWpJeAotTVRVd016SmFGdzB5TnpBMk1qTXhNVFV3TXpKYU1DOHhDekFKQmdOVkJBWVRBbFZMTVJFd0R3WURWUVFLREFodAotWW1Wa0lGUk1VekVOTUFzR0ExVUVBd3dFUTBFd01EQlpNQk1HQnlxR1NNNDlBZ0VHQ0NxR1NNNDlBd0VIQTBJQQotQkZXNDEvcUF3QVBweStUeGRjN1BLbXpac3E5Q1BpdWpLVTR2cEYxZWtYbkd4MkhQNDIwUW9id0JWVldoa3pSbQotTHdkYm9IMmo2NWRjQ0tqUTdtdi9keEtqVURCT01CMEdBMVVkRGdRV0JCUWxGWXZVNVdib0k0ZmNkUG9pUXM4LwotZlBIWnJUQWZCZ05WSFNNRUdEQVdnQlFsRll2VTVXYm9JNGZjZFBvaVFzOC9mUEhaclRBTUJnTlZIUk1FQlRBRAotQVFIL01Bb0dDQ3FHU000OUJBTUNBMGdBTUVVQ0lRQzdpUmNWendNeWZWSzVpbWlySjdNcUpRMDRldUg0Q0xPdAotSVorU05mYUVSQUlnU1UwTVdGRG9zVkVJcGc4WU1xSUhlRjdNZzRaeUg2K2ZHYXpKZ1ZMdHRVWT0KLS0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KZGlmZiAtLWdpdCBhL3Rlc3RzL2RhdGFfZmlsZXMvZGlyLW1heHBhdGgvYzEyLnBlbSBiL3Rlc3RzL2RhdGFfZmlsZXMvZGlyLW1heHBhdGgvYzEyLnBlbQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNzdjOGYzZi4uMDAwMDAwMAotLS0gYS90ZXN0cy9kYXRhX2ZpbGVzL2Rpci1tYXhwYXRoL2MxMi5wZW0KKysrIC9kZXYvbnVsbApAQCAtMSwxNTYgKzAsMCBAQAotLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCi1NSUlCMWpDQ0FYMmdBd0lCQWdJQkFUQUtCZ2dxaGtqT1BRUURBakF2TVFzd0NRWURWUVFHRXdKVlN6RVJNQThHCi1BMVVFQ2d3SWJXSmxaQ0JVVEZNeERUQUxCZ05WQkFNTUJFTkJNVEV3SGhjTk1UY3dOakl5TVRFMU1ETXpXaGNOCi1NamN3TmpJek1URTFNRE16V2pBdk1Rc3dDUVlEVlFRR0V3SlZTekVSTUE4R0ExVUVDZ3dJYldKbFpDQlVURk14Ci1EVEFMQmdOVkJBTU1CRU5CTVRJd1dUQVRCZ2NxaGtqT1BRSUJCZ2dxaGtqT1BRTUJCd05DQUFUREU5TFBsTFBjCi1nWjNiMEJjaFIvQWtoTkVQOUhBYXZ3WWFkSkl5em9QbzVlZENWbmJvUUg3ODZqc1p3Wk5ab0MwZ0hEQWhDbUdjCi1JZlJlbklTQW9WdVBvNEdKTUlHR01CMEdBMVVkRGdRV0JCVFpUdGJpK2owU20vWnMvK2dUa1dkQVNwUXpmakJYCi1CZ05WSFNNRVVEQk9nQlNPU3Q2ZVB5TVJUNlBHTWFJaTdGcU5YOU1LdEtFenBERXdMekVMTUFrR0ExVUVCaE1DCi1WVXN4RVRBUEJnTlZCQW9NQ0cxaVpXUWdWRXhUTVEwd0N3WURWUVFEREFSRFFURXdnZ0VCTUF3R0ExVWRFd1FGCi1NQU1CQWY4d0NnWUlLb1pJemowRUF3SURSd0F3UkFJZ1lZRjVBblJWN2VoMmhMRDVEei8vcGNlTVRLejlMczQ2Ci1FNkR4dmJmREhpa0NJRnR0bEdyT0NaVnlTNG9jc2p1S0lFTFZVWDVxZnlnSTBzbjRrVTNxQ1RzMgotLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQotLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCi1NSUlCMWpDQ0FYMmdBd0lCQWdJQkFUQUtCZ2dxaGtqT1BRUURBakF2TVFzd0NRWURWUVFHRXdKVlN6RVJNQThHCi1BMVVFQ2d3SWJXSmxaQ0JVVEZNeERUQUxCZ05WQkFNTUJFTkJNVEF3SGhjTk1UY3dOakl5TVRFMU1ETXpXaGNOCi1NamN3TmpJek1URTFNRE16V2pBdk1Rc3dDUVlEVlFRR0V3SlZTekVSTUE4R0ExVUVDZ3dJYldKbFpDQlVURk14Ci1EVEFMQmdOVkJBTU1CRU5CTVRFd1dUQVRCZ2NxaGtqT1BRSUJCZ2dxaGtqT1BRTUJCd05DQUFUWndSK1dLNk5CCi1GLzdyaUZkTjYzYzhoallkZFpSUjRscnpWTlB3aUJReG5ueHdwUHlyRDlBNmFQUG1MYzZTcUdPSlc0WkdWQ2NvCi1JQnplOVJKVmVpQjlvNEdKTUlHR01CMEdBMVVkRGdRV0JCU09TdDZlUHlNUlQ2UEdNYUlpN0ZxTlg5TUt0REJYCi1CZ05WSFNNRVVEQk9nQlF0eFpTTEpBa0V6KzJSS01RZXhNNkV0c2ZnY3FFenBERXdMekVMTUFrR0ExVUVCaE1DCi1WVXN4RVRBUEJnTlZCQW9NQ0cxaVpXUWdWRXhUTVEwd0N3WURWUVFEREFSRFFUQTVnZ0VCTUF3R0ExVWRFd1FGCi1NQU1CQWY4d0NnWUlLb1pJemowRUF3SURSd0F3UkFJZ04vL05xTTBGcmtyTWpteG9lQ1k5RGd4a0gyUjZzUTRkCi1OZ3R3Q1pBSXFFSUNJQnM0dnVwYVZjdXZuaTl0bHRiUDI2d2k3YzBGUitibFp1bzVEUElBM1NWZQotLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQotLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCi1NSUlCMXpDQ0FYMmdBd0lCQWdJQkFUQUtCZ2dxaGtqT1BRUURBakF2TVFzd0NRWURWUVFHRXdKVlN6RVJNQThHCi1BMVVFQ2d3SWJXSmxaQ0JVVEZNeERUQUxCZ05WQkFNTUJFTkJNRGt3SGhjTk1UY3dOakl5TVRFMU1ETXpXaGNOCi1NamN3TmpJek1URTFNRE16V2pBdk1Rc3dDUVlEVlFRR0V3SlZTekVSTUE4R0ExVUVDZ3dJYldKbFpDQlVURk14Ci1EVEFMQmdOVkJBTU1CRU5CTVRBd1dUQVRCZ2NxaGtqT1BRSUJCZ2dxaGtqT1BRTUJCd05DQUFSNmpsR0tiSmQ1Ci1oaUR4Tjc4OWdrT2N3cHlISTl3UndDckFEQU93T2tNZVBCUFJsd0dkbTdtdzdaL0VBbXUyNnpSbS9oY3lyczRNCi1xazJMYWJEalBJOVhvNEdKTUlHR01CMEdBMVVkRGdRV0JCUXR4WlNMSkFrRXorMlJLTVFleE02RXRzZmdjakJYCi1CZ05WSFNNRVVEQk9nQlQ2Z3lYSHpQSVBZYzFWcjFhR2lMTGVNaDRIcHFFenBERXdMekVMTUFrR0ExVUVCaE1DCi1WVXN4RVRBUEJnTlZCQW9NQ0cxaVpXUWdWRXhUTVEwd0N3WURWUVFEREFSRFFUQTRnZ0VCTUF3R0ExVWRFd1FGCi1NQU1CQWY4d0NnWUlLb1pJemowRUF3SURTQUF3UlFJZ1A3Uzh2RnN0ZlVCZE5lNnltNUdZRzVRK2FCVkVLcVJzCi1mVlc3SE5Va3RTWUNJUURvNkp1YTZvL0RKYnJwcTRxWVdxNWd2NHlHeXpQVE4rM0lhS3JFSUNkYWF3PT0KLS0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KLS0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQotTUlJQjFqQ0NBWDJnQXdJQkFnSUJBVEFLQmdncWhrak9QUVFEQWpBdk1Rc3dDUVlEVlFRR0V3SlZTekVSTUE4RwotQTFVRUNnd0liV0psWkNCVVRGTXhEVEFMQmdOVkJBTU1CRU5CTURnd0hoY05NVGN3TmpJeU1URTFNRE16V2hjTgotTWpjd05qSXpNVEUxTURNeldqQXZNUXN3Q1FZRFZRUUdFd0pWU3pFUk1BOEdBMVVFQ2d3SWJXSmxaQ0JVVEZNeAotRFRBTEJnTlZCQU1NQkVOQk1Ea3dXVEFUQmdjcWhrak9QUUlCQmdncWhrak9QUU1CQndOQ0FBUjdaQjE2K3Q2RQotc2ZhaEd5S1VHSlc1bWV6a3pqZGFZdmM0bGJKYUtOUndGUmZjM0YvZm1OT1NzVUZTZy9GME4rdlVFK2RvS2lQQwotOHdSd0x6dm00cys1bzRHSk1JR0dNQjBHQTFVZERnUVdCQlQ2Z3lYSHpQSVBZYzFWcjFhR2lMTGVNaDRIcGpCWAotQmdOVkhTTUVVREJPZ0JTNDBtTHQ5M1U4U2g4WkdpRFZBaFJTaUJQY1hxRXpwREV3THpFTE1Ba0dBMVVFQmhNQwotVlVzeEVUQVBCZ05WQkFvTUNHMWlaV1FnVkV4VE1RMHdDd1lEVlFRRERBUkRRVEEzZ2dFQk1Bd0dBMVVkRXdRRgotTUFNQkFmOHdDZ1lJS29aSXpqMEVBd0lEUndBd1JBSWdPNGVsMVpQaGxJbGkvcU5SMlNJRWl1dnM1TW15ODY4aQotTjJSdjVYL1Z4SUVDSUEvOHJVQUxReFczOFhTZEJWWDNlL2p6dTdqdTQ3bjFZd0VxRDlLOVdkVnYKLS0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KLS0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQotTUlJQjJEQ0NBWDJnQXdJQkFnSUJBVEFLQmdncWhrak9QUVFEQWpBdk1Rc3dDUVlEVlFRR0V3SlZTekVSTUE4RwotQTFVRUNnd0liV0psWkNCVVRGTXhEVEFMQmdOVkJBTU1CRU5CTURjd0hoY05NVGN3TmpJeU1URTFNRE15V2hjTgotTWpjd05qSXpNVEUxTURNeVdqQXZNUXN3Q1FZRFZRUUdFd0pWU3pFUk1BOEdBMVVFQ2d3SWJXSmxaQ0JVVEZNeAotRFRBTEJnTlZCQU1NQkVOQk1EZ3dXVEFUQmdjcWhrak9QUUlCQmdncWhrak9QUU1CQndOQ0FBUnBRZVEvWUdRagotbmw3U3pvNldTdEoxdTd4dW5UTDVqQmtYSDhhQVZTbTBxaVg0QUQvN1lQeGE1RW5HelpkTFRuMjV2UVZuZlFBRwotcE14OFAxbFlpR1lDbzRHSk1JR0dNQjBHQTFVZERnUVdCQlM0MG1MdDkzVThTaDhaR2lEVkFoUlNpQlBjWGpCWAotQmdOVkhTTUVVREJPZ0JSRXE1SjN0b0pQeFozTytzc0o1dmtrVTBSSkU2RXpwREV3THpFTE1Ba0dBMVVFQmhNQwotVlVzeEVUQVBCZ05WQkFvTUNHMWlaV1FnVkV4VE1RMHdDd1lEVlFRRERBUkRRVEEyZ2dFQk1Bd0dBMVVkRXdRRgotTUFNQkFmOHdDZ1lJS29aSXpqMEVBd0lEU1FBd1JnSWhBTndHZitGNGEra21YV3o4VWpTcFJrYVRvVFY2RUZXdwotL1RqemowdFFoRG9BQWlFQTE5UnhlV09WQkJwTTZMT0hnNnY1TGY1NFlOMXNua0xmK3NFWHlaQ3VXUVE9Ci0tLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCi0tLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KLU1JSUIyRENDQVgyZ0F3SUJBZ0lCQVRBS0JnZ3Foa2pPUFFRREFqQXZNUXN3Q1FZRFZRUUdFd0pWU3pFUk1BOEcKLUExVUVDZ3dJYldKbFpDQlVURk14RFRBTEJnTlZCQU1NQkVOQk1EWXdIaGNOTVRjd05qSXlNVEUxTURNeVdoY04KLU1qY3dOakl6TVRFMU1ETXlXakF2TVFzd0NRWURWUVFHRXdKVlN6RVJNQThHQTFVRUNnd0liV0psWkNCVVRGTXgKLURUQUxCZ05WQkFNTUJFTkJNRGN3V1RBVEJnY3Foa2pPUFFJQkJnZ3Foa2pPUFFNQkJ3TkNBQVNOT2o0ZDRNRUEKLTdwLzNtaWlqcUc0VG9FNG9wS1BBbSszQlRJR3JKVFlUMTQrK1RTaVVJQ2wwQVNYait4ZVVjTE1JYVhUTjA0MnMKLUxzSHhwU2h6UWFMMG80R0pNSUdHTUIwR0ExVWREZ1FXQkJSRXE1SjN0b0pQeFozTytzc0o1dmtrVTBSSkV6QlgKLUJnTlZIU01FVURCT2dCU2pvdllhQy9tNkxpOVRwMFY5aVpSczkyNjdRNkV6cERFd0x6RUxNQWtHQTFVRUJoTUMKLVZVc3hFVEFQQmdOVkJBb01DRzFpWldRZ1ZFeFRNUTB3Q3dZRFZRUUREQVJEUVRBMWdnRUJNQXdHQTFVZEV3UUYKLU1BTUJBZjh3Q2dZSUtvWkl6ajBFQXdJRFNRQXdSZ0loQUtHY2YrYzQ0MmMvWGl3dWJiYWlRdnNvWjdFb1Z4dU0KLW9LbWlhMGdQeUJOa0FpRUE4M2Fzako1RkRYUXVMeVpwY3p2aVhyYm1xZ0NQT2ZZYWR0dmtjMGN4TWlzPQotLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQotLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCi1NSUlCMWpDQ0FYMmdBd0lCQWdJQkFUQUtCZ2dxaGtqT1BRUURBakF2TVFzd0NRWURWUVFHRXdKVlN6RVJNQThHCi1BMVVFQ2d3SWJXSmxaQ0JVVEZNeERUQUxCZ05WQkFNTUJFTkJNRFV3SGhjTk1UY3dOakl5TVRFMU1ETXlXaGNOCi1NamN3TmpJek1URTFNRE15V2pBdk1Rc3dDUVlEVlFRR0V3SlZTekVSTUE4R0ExVUVDZ3dJYldKbFpDQlVURk14Ci1EVEFMQmdOVkJBTU1CRU5CTURZd1dUQVRCZ2NxaGtqT1BRSUJCZ2dxaGtqT1BRTUJCd05DQUFTQTlxV29BVUhyCi1ubisza3h5TnJqUEprODJXRExpbVcyMVJONTF1eHBvYmFkdjhZZ0dFRFJkUCtPayt1UnFRU1VzQTZaWGZGM2lHCi1yMkdqZlEzd01ESDhvNEdKTUlHR01CMEdBMVVkRGdRV0JCU2pvdllhQy9tNkxpOVRwMFY5aVpSczkyNjdRekJYCi1CZ05WSFNNRVVEQk9nQlRYaDA2TUFWOVM0bDRsRzFUS09yS1JCaDRxbjZFenBERXdMekVMTUFrR0ExVUVCaE1DCi1WVXN4RVRBUEJnTlZCQW9NQ0cxaVpXUWdWRXhUTVEwd0N3WURWUVFEREFSRFFUQTBnZ0VCTUF3R0ExVWRFd1FGCi1NQU1CQWY4d0NnWUlLb1pJemowRUF3SURSd0F3UkFJZ2NqWk5GV0p0bERtb1BaYkF4cXNHY3pSWUswbGZQZ3U2Ci1nMUg3cHAwY2Urd0NJRGo5QlJaTTJPQjlFRjBlK01ES0dqeVpHZnZmckw2SXI0N3gvS3JNNkg4VAotLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQotLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCi1NSUlCMXpDQ0FYMmdBd0lCQWdJQkFUQUtCZ2dxaGtqT1BRUURBakF2TVFzd0NRWURWUVFHRXdKVlN6RVJNQThHCi1BMVVFQ2d3SWJXSmxaQ0JVVEZNeERUQUxCZ05WQkFNTUJFTkJNRFF3SGhjTk1UY3dOakl5TVRFMU1ETXlXaGNOCi1NamN3TmpJek1URTFNRE15V2pBdk1Rc3dDUVlEVlFRR0V3SlZTekVSTUE4R0ExVUVDZ3dJYldKbFpDQlVURk14Ci1EVEFMQmdOVkJBTU1CRU5CTURVd1dUQVRCZ2NxaGtqT1BRSUJCZ2dxaGtqT1BRTUJCd05DQUFRRWRUME9GZjVHCi1VY3JnWDJYbGxDeUp6UDk0Tlo0NjRHc2dCNnBzTkxzRGVMK2o3QVUrb0p5N1ZMdlcvbEhoM09EZ2wwOFo5YmhxCi1MRkJtTmpuSGJtOFFvNEdKTUlHR01CMEdBMVVkRGdRV0JCVFhoMDZNQVY5UzRsNGxHMVRLT3JLUkJoNHFuekJYCi1CZ05WSFNNRVVEQk9nQlFveDRGMU5zWnVubHNkdW9HdnpJZ1JTWWZCMzZFenBERXdMekVMTUFrR0ExVUVCaE1DCi1WVXN4RVRBUEJnTlZCQW9NQ0cxaVpXUWdWRXhUTVEwd0N3WURWUVFEREFSRFFUQXpnZ0VCTUF3R0ExVWRFd1FGCi1NQU1CQWY4d0NnWUlLb1pJemowRUF3SURTQUF3UlFJaEFJVysrenFEWmxMTFVrL2VtZVBvaGROT3A1Sk8zd1M5Ci1YdmtCSjZXdWE3R0JBaUFkeCtFS21kalZyd256clFsdFRnbm1TZkdNWGhLTllpZkszdUQ4M1czcGNRPT0KLS0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KLS0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQotTUlJQjFqQ0NBWDJnQXdJQkFnSUJBVEFLQmdncWhrak9QUVFEQWpBdk1Rc3dDUVlEVlFRR0V3SlZTekVSTUE4RwotQTFVRUNnd0liV0psWkNCVVRGTXhEVEFMQmdOVkJBTU1CRU5CTURNd0hoY05NVGN3TmpJeU1URTFNRE15V2hjTgotTWpjd05qSXpNVEUxTURNeVdqQXZNUXN3Q1FZRFZRUUdFd0pWU3pFUk1BOEdBMVVFQ2d3SWJXSmxaQ0JVVEZNeAotRFRBTEJnTlZCQU1NQkVOQk1EUXdXVEFUQmdjcWhrak9QUUlCQmdncWhrak9QUU1CQndOQ0FBUVVYRGdjVVZOVAotOWhvdmJaRTVITDZyak9iN0M1NXdFdVdLVGhWL0NjWjRyV3JYeDdWWEhZZEQvUjNhREE3SlN2WXBtMnNUb2s0aQotc2JsRHpoWk0vR0RObzRHSk1JR0dNQjBHQTFVZERnUVdCQlFveDRGMU5zWnVubHNkdW9HdnpJZ1JTWWZCM3pCWAotQmdOVkhTTUVVREJPZ0JRQXB6WmR0QmREM2RMeG91UXByL2FEaVZ0dGQ2RXpwREV3THpFTE1Ba0dBMVVFQmhNQwotVlVzeEVUQVBCZ05WQkFvTUNHMWlaV1FnVkV4VE1RMHdDd1lEVlFRRERBUkRRVEF5Z2dFQk1Bd0dBMVVkRXdRRgotTUFNQkFmOHdDZ1lJS29aSXpqMEVBd0lEUndBd1JBSWdBa2lOaHFGQVpYU1VXRURLOTFPWnZRR2RlWk90ZDZtQwotK1d2M2ZHazN0MjhDSUVLT3dpZGtVVFVhaVBkWjRlZm1BcitDRWVHemRxMjdvYjJTK25xcUhxZ1YKLS0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KLS0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQotTUlJQjJEQ0NBWDJnQXdJQkFnSUJBVEFLQmdncWhrak9QUVFEQWpBdk1Rc3dDUVlEVlFRR0V3SlZTekVSTUE4RwotQTFVRUNnd0liV0psWkNCVVRGTXhEVEFMQmdOVkJBTU1CRU5CTURJd0hoY05NVGN3TmpJeU1URTFNRE15V2hjTgotTWpjd05qSXpNVEUxTURNeVdqQXZNUXN3Q1FZRFZRUUdFd0pWU3pFUk1BOEdBMVVFQ2d3SWJXSmxaQ0JVVEZNeAotRFRBTEJnTlZCQU1NQkVOQk1ETXdXVEFUQmdjcWhrak9QUUlCQmdncWhrak9QUU1CQndOQ0FBUVJEWEROSWkxcAotZXJldWRocXdhMkxzbFhnc3huQjYzSHU1eTVsZysxV1BydUlZUHpEL0hvMEFQdmVWZHpGTFZqaTE5K2JFNCt0RgotUFlMMVNwc04xV2ZXbzRHSk1JR0dNQjBHQTFVZERnUVdCQlFBcHpaZHRCZEQzZEx4b3VRcHIvYURpVnR0ZHpCWAotQmdOVkhTTUVVREJPZ0JUNVJDZ1EwQWxaVFFiZkZCMis2K3cwWFJ2eWRhRXpwREV3THpFTE1Ba0dBMVVFQmhNQwotVlVzeEVUQVBCZ05WQkFvTUNHMWlaV1FnVkV4VE1RMHdDd1lEVlFRRERBUkRRVEF4Z2dFQk1Bd0dBMVVkRXdRRgotTUFNQkFmOHdDZ1lJS29aSXpqMEVBd0lEU1FBd1JnSWhBT25kKzdiQW9ma0hWYTRLRk5qdjNUQ2VndzFscmh1TQotOE9mOHdndnJURUdvQWlFQXNTOGlLTXBTZlhINEQwZWdnNGdMYW1FNmFrZGU5NjVyRHR5U1UrdmU5bGc9Ci0tLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCi0tLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KLU1JSUIxekNDQVgyZ0F3SUJBZ0lCQVRBS0JnZ3Foa2pPUFFRREFqQXZNUXN3Q1FZRFZRUUdFd0pWU3pFUk1BOEcKLUExVUVDZ3dJYldKbFpDQlVURk14RFRBTEJnTlZCQU1NQkVOQk1ERXdIaGNOTVRjd05qSXlNVEUxTURNeVdoY04KLU1qY3dOakl6TVRFMU1ETXlXakF2TVFzd0NRWURWUVFHRXdKVlN6RVJNQThHQTFVRUNnd0liV0psWkNCVVRGTXgKLURUQUxCZ05WQkFNTUJFTkJNREl3V1RBVEJnY3Foa2pPUFFJQkJnZ3Foa2pPUFFNQkJ3TkNBQVFXSHB2MWk2bGYKLXd2TlBPUDVrYTZTMG41NUV2em9hWUs2cGJUWFA2eU1PVy80WFpTUEt4NVpvcTRGTWUwY0t6R0lJRkwxcnpqMVYKLTJjellCK3F2TGh5aW80R0pNSUdHTUIwR0ExVWREZ1FXQkJUNVJDZ1EwQWxaVFFiZkZCMis2K3cwWFJ2eWRUQlgKLUJnTlZIU01FVURCT2dCU2gzdUhrWDVuajg2eUZFRndqc2NTV000MFArcUV6cERFd0x6RUxNQWtHQTFVRUJoTUMKLVZVc3hFVEFQQmdOVkJBb01DRzFpWldRZ1ZFeFRNUTB3Q3dZRFZRUUREQVJEUVRBd2dnRUJNQXdHQTFVZEV3UUYKLU1BTUJBZjh3Q2dZSUtvWkl6ajBFQXdJRFNBQXdSUUloQUk3dW5HVy9ncjl0T2MzaStkRjVOODE1c3JnaCtGclgKLW9qOUV0NzRFY1NwVEFpQnVidit2T0gwREUwZ21ZSTExSGVBSWd1dFdxcU1JQzcyZFpsd1RGL1ZpM2c9PQotLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQotLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCi1NSUlCM2pDQ0FZV2dBd0lCQWdJQkFUQUtCZ2dxaGtqT1BRUURBakF2TVFzd0NRWURWUVFHRXdKVlN6RVJNQThHCi1BMVVFQ2d3SWJXSmxaQ0JVVEZNeERUQUxCZ05WQkFNTUJFTkJNREF3SGhjTk1UY3dOakl5TVRFMU1ETXlXaGNOCi1NamN3TmpJek1URTFNRE15V2pBdk1Rc3dDUVlEVlFRR0V3SlZTekVSTUE4R0ExVUVDZ3dJYldKbFpDQlVURk14Ci1EVEFMQmdOVkJBTU1CRU5CTURFd1dUQVRCZ2NxaGtqT1BRSUJCZ2dxaGtqT1BRTUJCd05DQUFRem5uOXpISHdMCi1HTzhWUjRXOVY3dk1seENkb29qekVPaVg1WTZKdFB0Rk96ODY2dWVIWTZ6b04wL21KNkRucW5TWGlsSklVVWVXCi02ZUdmcW1rYTdueGtvNEdSTUlHT01CMEdBMVVkRGdRV0JCU2gzdUhrWDVuajg2eUZFRndqc2NTV000MFArakJmCi1CZ05WSFNNRVdEQldnQlFsRll2VTVXYm9JNGZjZFBvaVFzOC9mUEhacmFFenBERXdMekVMTUFrR0ExVUVCaE1DCi1WVXN4RVRBUEJnTlZCQW9NQ0cxaVpXUWdWRXhUTVEwd0N3WURWUVFEREFSRFFUQXdnZ2tBL0tDV2hjcVRvSEF3Ci1EQVlEVlIwVEJBVXdBd0VCL3pBS0JnZ3Foa2pPUFFRREFnTkhBREJFQWlCYXNidWluUCtwSlRVNG9EQ1ZEOHpRCi0xckpCRFNPS0lFeVd1ODQvRDZIajZ3SWdWTVBVb08wMWJQaHpsbEFhL2dXOFhrL2RhZXkwOVNCZ04zQVQ5cFdVCi1UREE9Ci0tLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCi0tLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KLU1JSUJwVENDQVV1Z0F3SUJBZ0lKQVB5Z2xvWEtrNkJ3TUFvR0NDcUdTTTQ5QkFNQ01DOHhDekFKQmdOVkJBWVQKLUFsVkxNUkV3RHdZRFZRUUtEQWh0WW1Wa0lGUk1VekVOTUFzR0ExVUVBd3dFUTBFd01EQWVGdzB4TnpBMk1qSXgKLU1UVXdNekphRncweU56QTJNak14TVRVd016SmFNQzh4Q3pBSkJnTlZCQVlUQWxWTE1SRXdEd1lEVlFRS0RBaHQKLVltVmtJRlJNVXpFTk1Bc0dBMVVFQXd3RVEwRXdNREJaTUJNR0J5cUdTTTQ5QWdFR0NDcUdTTTQ5QXdFSEEwSUEKLUJGVzQxL3FBd0FQcHkrVHhkYzdQS216WnNxOUNQaXVqS1U0dnBGMWVrWG5HeDJIUDQyMFFvYndCVlZXaGt6Um0KLUx3ZGJvSDJqNjVkY0NLalE3bXYvZHhLalVEQk9NQjBHQTFVZERnUVdCQlFsRll2VTVXYm9JNGZjZFBvaVFzOC8KLWZQSFpyVEFmQmdOVkhTTUVHREFXZ0JRbEZZdlU1V2JvSTRmY2RQb2lRczgvZlBIWnJUQU1CZ05WSFJNRUJUQUQKLUFRSC9NQW9HQ0NxR1NNNDlCQU1DQTBnQU1FVUNJUUM3aVJjVnp3TXlmVks1aW1pcko3TXFKUTA0ZXVINENMT3QKLUlaK1NOZmFFUkFJZ1NVME1XRkRvc1ZFSXBnOFlNcUlIZUY3TWc0WnlINitmR2F6SmdWTHR0VVk9Ci0tLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCmRpZmYgLS1naXQgYS90ZXN0cy9kYXRhX2ZpbGVzL2Rpci1tYXhwYXRoL2MxMy5wZW0gYi90ZXN0cy9kYXRhX2ZpbGVzL2Rpci1tYXhwYXRoL2MxMy5wZW0KZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGQ1MDM5YmEuLjAwMDAwMDAKLS0tIGEvdGVzdHMvZGF0YV9maWxlcy9kaXItbWF4cGF0aC9jMTMucGVtCisrKyAvZGV2L251bGwKQEAgLTEsMTY4ICswLDAgQEAKLS0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQotTUlJQjF6Q0NBWDJnQXdJQkFnSUJBVEFLQmdncWhrak9QUVFEQWpBdk1Rc3dDUVlEVlFRR0V3SlZTekVSTUE4RwotQTFVRUNnd0liV0psWkNCVVRGTXhEVEFMQmdOVkJBTU1CRU5CTVRJd0hoY05NVGN3TmpJeU1URTFNRE16V2hjTgotTWpjd05qSXpNVEUxTURNeldqQXZNUXN3Q1FZRFZRUUdFd0pWU3pFUk1BOEdBMVVFQ2d3SWJXSmxaQ0JVVEZNeAotRFRBTEJnTlZCQU1NQkVOQk1UTXdXVEFUQmdjcWhrak9QUUlCQmdncWhrak9QUU1CQndOQ0FBVHJrekNKTHpuaAotbGhuc3YxUlhCOWtmZWFEK2NJcnVQUTBjSXRCREdwZHZEOHhiQlZ2UWNpNCtSRzJSVlVDU1dSaGtGWWpTc1VTTQotMFFITVFuQkZsaHcybzRHSk1JR0dNQjBHQTFVZERnUVdCQlRtVm5VU0YyTVl3d3MvbkNNdjdiMXdKVmtEbWpCWAotQmdOVkhTTUVVREJPZ0JUWlR0YmkrajBTbS9acy8rZ1RrV2RBU3BRemZxRXpwREV3THpFTE1Ba0dBMVVFQmhNQwotVlVzeEVUQVBCZ05WQkFvTUNHMWlaV1FnVkV4VE1RMHdDd1lEVlFRRERBUkRRVEV4Z2dFQk1Bd0dBMVVkRXdRRgotTUFNQkFmOHdDZ1lJS29aSXpqMEVBd0lEU0FBd1JRSWdXc20rckhKZ3dVRXlObThFS2JFZHM1eXVycHA1LzN5NQotUHN2WEpWRHF4b2dDSVFEVVAwSmNsM0E5MDdDRTJ0UFZYU2dENkxRNkNQdTE5bWl4ZW1QdzYweWlqQT09Ci0tLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCi0tLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KLU1JSUIxakNDQVgyZ0F3SUJBZ0lCQVRBS0JnZ3Foa2pPUFFRREFqQXZNUXN3Q1FZRFZRUUdFd0pWU3pFUk1BOEcKLUExVUVDZ3dJYldKbFpDQlVURk14RFRBTEJnTlZCQU1NQkVOQk1URXdIaGNOTVRjd05qSXlNVEUxTURNeldoY04KLU1qY3dOakl6TVRFMU1ETXpXakF2TVFzd0NRWURWUVFHRXdKVlN6RVJNQThHQTFVRUNnd0liV0psWkNCVVRGTXgKLURUQUxCZ05WQkFNTUJFTkJNVEl3V1RBVEJnY3Foa2pPUFFJQkJnZ3Foa2pPUFFNQkJ3TkNBQVRERTlMUGxMUGMKLWdaM2IwQmNoUi9Ba2hORVA5SEFhdndZYWRKSXl6b1BvNWVkQ1ZuYm9RSDc4NmpzWndaTlpvQzBnSERBaENtR2MKLUlmUmVuSVNBb1Z1UG80R0pNSUdHTUIwR0ExVWREZ1FXQkJUWlR0YmkrajBTbS9acy8rZ1RrV2RBU3BRemZqQlgKLUJnTlZIU01FVURCT2dCU09TdDZlUHlNUlQ2UEdNYUlpN0ZxTlg5TUt0S0V6cERFd0x6RUxNQWtHQTFVRUJoTUMKLVZVc3hFVEFQQmdOVkJBb01DRzFpWldRZ1ZFeFRNUTB3Q3dZRFZRUUREQVJEUVRFd2dnRUJNQXdHQTFVZEV3UUYKLU1BTUJBZjh3Q2dZSUtvWkl6ajBFQXdJRFJ3QXdSQUlnWVlGNUFuUlY3ZWgyaExENUR6Ly9wY2VNVEt6OUxzNDYKLUU2RHh2YmZESGlrQ0lGdHRsR3JPQ1pWeVM0b2NzanVLSUVMVlVYNXFmeWdJMHNuNGtVM3FDVHMyCi0tLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCi0tLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KLU1JSUIxakNDQVgyZ0F3SUJBZ0lCQVRBS0JnZ3Foa2pPUFFRREFqQXZNUXN3Q1FZRFZRUUdFd0pWU3pFUk1BOEcKLUExVUVDZ3dJYldKbFpDQlVURk14RFRBTEJnTlZCQU1NQkVOQk1UQXdIaGNOTVRjd05qSXlNVEUxTURNeldoY04KLU1qY3dOakl6TVRFMU1ETXpXakF2TVFzd0NRWURWUVFHRXdKVlN6RVJNQThHQTFVRUNnd0liV0psWkNCVVRGTXgKLURUQUxCZ05WQkFNTUJFTkJNVEV3V1RBVEJnY3Foa2pPUFFJQkJnZ3Foa2pPUFFNQkJ3TkNBQVRad1IrV0s2TkIKLUYvN3JpRmRONjNjOGhqWWRkWlJSNGxyelZOUHdpQlF4bm54d3BQeXJEOUE2YVBQbUxjNlNxR09KVzRaR1ZDY28KLUlCemU5UkpWZWlCOW80R0pNSUdHTUIwR0ExVWREZ1FXQkJTT1N0NmVQeU1SVDZQR01hSWk3RnFOWDlNS3REQlgKLUJnTlZIU01FVURCT2dCUXR4WlNMSkFrRXorMlJLTVFleE02RXRzZmdjcUV6cERFd0x6RUxNQWtHQTFVRUJoTUMKLVZVc3hFVEFQQmdOVkJBb01DRzFpWldRZ1ZFeFRNUTB3Q3dZRFZRUUREQVJEUVRBNWdnRUJNQXdHQTFVZEV3UUYKLU1BTUJBZjh3Q2dZSUtvWkl6ajBFQXdJRFJ3QXdSQUlnTi8vTnFNMEZya3JNam14b2VDWTlEZ3hrSDJSNnNRNGQKLU5ndHdDWkFJcUVJQ0lCczR2dXBhVmN1dm5pOXRsdGJQMjZ3aTdjMEZSK2JsWnVvNURQSUEzU1ZlCi0tLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCi0tLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KLU1JSUIxekNDQVgyZ0F3SUJBZ0lCQVRBS0JnZ3Foa2pPUFFRREFqQXZNUXN3Q1FZRFZRUUdFd0pWU3pFUk1BOEcKLUExVUVDZ3dJYldKbFpDQlVURk14RFRBTEJnTlZCQU1NQkVOQk1Ea3dIaGNOTVRjd05qSXlNVEUxTURNeldoY04KLU1qY3dOakl6TVRFMU1ETXpXakF2TVFzd0NRWURWUVFHRXdKVlN6RVJNQThHQTFVRUNnd0liV0psWkNCVVRGTXgKLURUQUxCZ05WQkFNTUJFTkJNVEF3V1RBVEJnY3Foa2pPUFFJQkJnZ3Foa2pPUFFNQkJ3TkNBQVI2amxHS2JKZDUKLWhpRHhONzg5Z2tPY3dweUhJOXdSd0NyQURBT3dPa01lUEJQUmx3R2RtN213N1ovRUFtdTI2elJtL2hjeXJzNE0KLXFrMkxhYkRqUEk5WG80R0pNSUdHTUIwR0ExVWREZ1FXQkJRdHhaU0xKQWtFeisyUktNUWV4TTZFdHNmZ2NqQlgKLUJnTlZIU01FVURCT2dCVDZneVhIelBJUFljMVZyMWFHaUxMZU1oNEhwcUV6cERFd0x6RUxNQWtHQTFVRUJoTUMKLVZVc3hFVEFQQmdOVkJBb01DRzFpWldRZ1ZFeFRNUTB3Q3dZRFZRUUREQVJEUVRBNGdnRUJNQXdHQTFVZEV3UUYKLU1BTUJBZjh3Q2dZSUtvWkl6ajBFQXdJRFNBQXdSUUlnUDdTOHZGc3RmVUJkTmU2eW01R1lHNVErYUJWRUtxUnMKLWZWVzdITlVrdFNZQ0lRRG82SnVhNm8vREpicnBxNHFZV3E1Z3Y0eUd5elBUTiszSWFLckVJQ2RhYXc9PQotLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQotLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCi1NSUlCMWpDQ0FYMmdBd0lCQWdJQkFUQUtCZ2dxaGtqT1BRUURBakF2TVFzd0NRWURWUVFHRXdKVlN6RVJNQThHCi1BMVVFQ2d3SWJXSmxaQ0JVVEZNeERUQUxCZ05WQkFNTUJFTkJNRGd3SGhjTk1UY3dOakl5TVRFMU1ETXpXaGNOCi1NamN3TmpJek1URTFNRE16V2pBdk1Rc3dDUVlEVlFRR0V3SlZTekVSTUE4R0ExVUVDZ3dJYldKbFpDQlVURk14Ci1EVEFMQmdOVkJBTU1CRU5CTURrd1dUQVRCZ2NxaGtqT1BRSUJCZ2dxaGtqT1BRTUJCd05DQUFSN1pCMTYrdDZFCi1zZmFoR3lLVUdKVzVtZXprempkYVl2YzRsYkphS05Sd0ZSZmMzRi9mbU5PU3NVRlNnL0YwTit2VUUrZG9LaVBDCi04d1J3THp2bTRzKzVvNEdKTUlHR01CMEdBMVVkRGdRV0JCVDZneVhIelBJUFljMVZyMWFHaUxMZU1oNEhwakJYCi1CZ05WSFNNRVVEQk9nQlM0MG1MdDkzVThTaDhaR2lEVkFoUlNpQlBjWHFFenBERXdMekVMTUFrR0ExVUVCaE1DCi1WVXN4RVRBUEJnTlZCQW9NQ0cxaVpXUWdWRXhUTVEwd0N3WURWUVFEREFSRFFUQTNnZ0VCTUF3R0ExVWRFd1FGCi1NQU1CQWY4d0NnWUlLb1pJemowRUF3SURSd0F3UkFJZ080ZWwxWlBobElsaS9xTlIyU0lFaXV2czVNbXk4NjhpCi1OMlJ2NVgvVnhJRUNJQS84clVBTFF4VzM4WFNkQlZYM2Uvanp1N2p1NDduMVl3RXFEOUs5V2RWdgotLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQotLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCi1NSUlCMkRDQ0FYMmdBd0lCQWdJQkFUQUtCZ2dxaGtqT1BRUURBakF2TVFzd0NRWURWUVFHRXdKVlN6RVJNQThHCi1BMVVFQ2d3SWJXSmxaQ0JVVEZNeERUQUxCZ05WQkFNTUJFTkJNRGN3SGhjTk1UY3dOakl5TVRFMU1ETXlXaGNOCi1NamN3TmpJek1URTFNRE15V2pBdk1Rc3dDUVlEVlFRR0V3SlZTekVSTUE4R0ExVUVDZ3dJYldKbFpDQlVURk14Ci1EVEFMQmdOVkJBTU1CRU5CTURnd1dUQVRCZ2NxaGtqT1BRSUJCZ2dxaGtqT1BRTUJCd05DQUFScFFlUS9ZR1FqCi1ubDdTem82V1N0SjF1N3h1blRMNWpCa1hIOGFBVlNtMHFpWDRBRC83WVB4YTVFbkd6WmRMVG4yNXZRVm5mUUFHCi1wTXg4UDFsWWlHWUNvNEdKTUlHR01CMEdBMVVkRGdRV0JCUzQwbUx0OTNVOFNoOFpHaURWQWhSU2lCUGNYakJYCi1CZ05WSFNNRVVEQk9nQlJFcTVKM3RvSlB4WjNPK3NzSjV2a2tVMFJKRTZFenBERXdMekVMTUFrR0ExVUVCaE1DCi1WVXN4RVRBUEJnTlZCQW9NQ0cxaVpXUWdWRXhUTVEwd0N3WURWUVFEREFSRFFUQTJnZ0VCTUF3R0ExVWRFd1FGCi1NQU1CQWY4d0NnWUlLb1pJemowRUF3SURTUUF3UmdJaEFOd0dmK0Y0YStrbVhXejhValNwUmthVG9UVjZFRld3Ci0vVGp6ajB0UWhEb0FBaUVBMTlSeGVXT1ZCQnBNNkxPSGc2djVMZjU0WU4xc25rTGYrc0VYeVpDdVdRUT0KLS0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KLS0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQotTUlJQjJEQ0NBWDJnQXdJQkFnSUJBVEFLQmdncWhrak9QUVFEQWpBdk1Rc3dDUVlEVlFRR0V3SlZTekVSTUE4RwotQTFVRUNnd0liV0psWkNCVVRGTXhEVEFMQmdOVkJBTU1CRU5CTURZd0hoY05NVGN3TmpJeU1URTFNRE15V2hjTgotTWpjd05qSXpNVEUxTURNeVdqQXZNUXN3Q1FZRFZRUUdFd0pWU3pFUk1BOEdBMVVFQ2d3SWJXSmxaQ0JVVEZNeAotRFRBTEJnTlZCQU1NQkVOQk1EY3dXVEFUQmdjcWhrak9QUUlCQmdncWhrak9QUU1CQndOQ0FBU05PajRkNE1FQQotN3AvM21paWpxRzRUb0U0b3BLUEFtKzNCVElHckpUWVQxNCsrVFNpVUlDbDBBU1hqK3hlVWNMTUlhWFROMDQycwotTHNIeHBTaHpRYUwwbzRHSk1JR0dNQjBHQTFVZERnUVdCQlJFcTVKM3RvSlB4WjNPK3NzSjV2a2tVMFJKRXpCWAotQmdOVkhTTUVVREJPZ0JTam92WWFDL202TGk5VHAwVjlpWlJzOTI2N1E2RXpwREV3THpFTE1Ba0dBMVVFQmhNQwotVlVzeEVUQVBCZ05WQkFvTUNHMWlaV1FnVkV4VE1RMHdDd1lEVlFRRERBUkRRVEExZ2dFQk1Bd0dBMVVkRXdRRgotTUFNQkFmOHdDZ1lJS29aSXpqMEVBd0lEU1FBd1JnSWhBS0djZitjNDQyYy9YaXd1YmJhaVF2c29aN0VvVnh1TQotb0ttaWEwZ1B5Qk5rQWlFQTgzYXNqSjVGRFhRdUx5WnBjenZpWHJibXFnQ1BPZllhZHR2a2MwY3hNaXM9Ci0tLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCi0tLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KLU1JSUIxakNDQVgyZ0F3SUJBZ0lCQVRBS0JnZ3Foa2pPUFFRREFqQXZNUXN3Q1FZRFZRUUdFd0pWU3pFUk1BOEcKLUExVUVDZ3dJYldKbFpDQlVURk14RFRBTEJnTlZCQU1NQkVOQk1EVXdIaGNOTVRjd05qSXlNVEUxTURNeVdoY04KLU1qY3dOakl6TVRFMU1ETXlXakF2TVFzd0NRWURWUVFHRXdKVlN6RVJNQThHQTFVRUNnd0liV0psWkNCVVRGTXgKLURUQUxCZ05WQkFNTUJFTkJNRFl3V1RBVEJnY3Foa2pPUFFJQkJnZ3Foa2pPUFFNQkJ3TkNBQVNBOXFXb0FVSHIKLW5uKzNreHlOcmpQSms4MldETGltVzIxUk41MXV4cG9iYWR2OFlnR0VEUmRQK09rK3VScVFTVXNBNlpYZkYzaUcKLXIyR2pmUTN3TURIOG80R0pNSUdHTUIwR0ExVWREZ1FXQkJTam92WWFDL202TGk5VHAwVjlpWlJzOTI2N1F6QlgKLUJnTlZIU01FVURCT2dCVFhoMDZNQVY5UzRsNGxHMVRLT3JLUkJoNHFuNkV6cERFd0x6RUxNQWtHQTFVRUJoTUMKLVZVc3hFVEFQQmdOVkJBb01DRzFpWldRZ1ZFeFRNUTB3Q3dZRFZRUUREQVJEUVRBMGdnRUJNQXdHQTFVZEV3UUYKLU1BTUJBZjh3Q2dZSUtvWkl6ajBFQXdJRFJ3QXdSQUlnY2paTkZXSnRsRG1vUFpiQXhxc0djelJZSzBsZlBndTYKLWcxSDdwcDBjZSt3Q0lEajlCUlpNMk9COUVGMGUrTURLR2p5WkdmdmZyTDZJcjQ3eC9Lck02SDhUCi0tLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCi0tLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KLU1JSUIxekNDQVgyZ0F3SUJBZ0lCQVRBS0JnZ3Foa2pPUFFRREFqQXZNUXN3Q1FZRFZRUUdFd0pWU3pFUk1BOEcKLUExVUVDZ3dJYldKbFpDQlVURk14RFRBTEJnTlZCQU1NQkVOQk1EUXdIaGNOTVRjd05qSXlNVEUxTURNeVdoY04KLU1qY3dOakl6TVRFMU1ETXlXakF2TVFzd0NRWURWUVFHRXdKVlN6RVJNQThHQTFVRUNnd0liV0psWkNCVVRGTXgKLURUQUxCZ05WQkFNTUJFTkJNRFV3V1RBVEJnY3Foa2pPUFFJQkJnZ3Foa2pPUFFNQkJ3TkNBQVFFZFQwT0ZmNUcKLVVjcmdYMlhsbEN5SnpQOTROWjQ2NEdzZ0I2cHNOTHNEZUwrajdBVStvSnk3Vkx2Vy9sSGgzT0RnbDA4WjliaHEKLUxGQm1Oam5IYm04UW80R0pNSUdHTUIwR0ExVWREZ1FXQkJUWGgwNk1BVjlTNGw0bEcxVEtPcktSQmg0cW56QlgKLUJnTlZIU01FVURCT2dCUW94NEYxTnNadW5sc2R1b0d2eklnUlNZZkIzNkV6cERFd0x6RUxNQWtHQTFVRUJoTUMKLVZVc3hFVEFQQmdOVkJBb01DRzFpWldRZ1ZFeFRNUTB3Q3dZRFZRUUREQVJEUVRBemdnRUJNQXdHQTFVZEV3UUYKLU1BTUJBZjh3Q2dZSUtvWkl6ajBFQXdJRFNBQXdSUUloQUlXKyt6cURabExMVWsvZW1lUG9oZE5PcDVKTzN3UzkKLVh2a0JKNld1YTdHQkFpQWR4K0VLbWRqVnJ3bnpyUWx0VGdubVNmR01YaEtOWWlmSzN1RDgzVzNwY1E9PQotLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQotLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCi1NSUlCMWpDQ0FYMmdBd0lCQWdJQkFUQUtCZ2dxaGtqT1BRUURBakF2TVFzd0NRWURWUVFHRXdKVlN6RVJNQThHCi1BMVVFQ2d3SWJXSmxaQ0JVVEZNeERUQUxCZ05WQkFNTUJFTkJNRE13SGhjTk1UY3dOakl5TVRFMU1ETXlXaGNOCi1NamN3TmpJek1URTFNRE15V2pBdk1Rc3dDUVlEVlFRR0V3SlZTekVSTUE4R0ExVUVDZ3dJYldKbFpDQlVURk14Ci1EVEFMQmdOVkJBTU1CRU5CTURRd1dUQVRCZ2NxaGtqT1BRSUJCZ2dxaGtqT1BRTUJCd05DQUFRVVhEZ2NVVk5UCi05aG92YlpFNUhMNnJqT2I3QzU1d0V1V0tUaFYvQ2NaNHJXclh4N1ZYSFlkRC9SM2FEQTdKU3ZZcG0yc1RvazRpCi1zYmxEemhaTS9HRE5vNEdKTUlHR01CMEdBMVVkRGdRV0JCUW94NEYxTnNadW5sc2R1b0d2eklnUlNZZkIzekJYCi1CZ05WSFNNRVVEQk9nQlFBcHpaZHRCZEQzZEx4b3VRcHIvYURpVnR0ZDZFenBERXdMekVMTUFrR0ExVUVCaE1DCi1WVXN4RVRBUEJnTlZCQW9NQ0cxaVpXUWdWRXhUTVEwd0N3WURWUVFEREFSRFFUQXlnZ0VCTUF3R0ExVWRFd1FGCi1NQU1CQWY4d0NnWUlLb1pJemowRUF3SURSd0F3UkFJZ0FraU5ocUZBWlhTVVdFREs5MU9adlFHZGVaT3RkNm1DCi0rV3YzZkdrM3QyOENJRUtPd2lka1VUVWFpUGRaNGVmbUFyK0NFZUd6ZHEyN29iMlMrbnFxSHFnVgotLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQotLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCi1NSUlCMkRDQ0FYMmdBd0lCQWdJQkFUQUtCZ2dxaGtqT1BRUURBakF2TVFzd0NRWURWUVFHRXdKVlN6RVJNQThHCi1BMVVFQ2d3SWJXSmxaQ0JVVEZNeERUQUxCZ05WQkFNTUJFTkJNREl3SGhjTk1UY3dOakl5TVRFMU1ETXlXaGNOCi1NamN3TmpJek1URTFNRE15V2pBdk1Rc3dDUVlEVlFRR0V3SlZTekVSTUE4R0ExVUVDZ3dJYldKbFpDQlVURk14Ci1EVEFMQmdOVkJBTU1CRU5CTURNd1dUQVRCZ2NxaGtqT1BRSUJCZ2dxaGtqT1BRTUJCd05DQUFRUkRYRE5JaTFwCi1lcmV1ZGhxd2EyTHNsWGdzeG5CNjNIdTV5NWxnKzFXUHJ1SVlQekQvSG8wQVB2ZVZkekZMVmppMTkrYkU0K3RGCi1QWUwxU3BzTjFXZldvNEdKTUlHR01CMEdBMVVkRGdRV0JCUUFwelpkdEJkRDNkTHhvdVFwci9hRGlWdHRkekJYCi1CZ05WSFNNRVVEQk9nQlQ1UkNnUTBBbFpUUWJmRkIyKzYrdzBYUnZ5ZGFFenBERXdMekVMTUFrR0ExVUVCaE1DCi1WVXN4RVRBUEJnTlZCQW9NQ0cxaVpXUWdWRXhUTVEwd0N3WURWUVFEREFSRFFUQXhnZ0VCTUF3R0ExVWRFd1FGCi1NQU1CQWY4d0NnWUlLb1pJemowRUF3SURTUUF3UmdJaEFPbmQrN2JBb2ZrSFZhNEtGTmp2M1RDZWd3MWxyaHVNCi04T2Y4d2d2clRFR29BaUVBc1M4aUtNcFNmWEg0RDBlZ2c0Z0xhbUU2YWtkZTk2NXJEdHlTVSt2ZTlsZz0KLS0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KLS0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQotTUlJQjF6Q0NBWDJnQXdJQkFnSUJBVEFLQmdncWhrak9QUVFEQWpBdk1Rc3dDUVlEVlFRR0V3SlZTekVSTUE4RwotQTFVRUNnd0liV0psWkNCVVRGTXhEVEFMQmdOVkJBTU1CRU5CTURFd0hoY05NVGN3TmpJeU1URTFNRE15V2hjTgotTWpjd05qSXpNVEUxTURNeVdqQXZNUXN3Q1FZRFZRUUdFd0pWU3pFUk1BOEdBMVVFQ2d3SWJXSmxaQ0JVVEZNeAotRFRBTEJnTlZCQU1NQkVOQk1ESXdXVEFUQmdjcWhrak9QUUlCQmdncWhrak9QUU1CQndOQ0FBUVdIcHYxaTZsZgotd3ZOUE9QNWthNlMwbjU1RXZ6b2FZSzZwYlRYUDZ5TU9XLzRYWlNQS3g1Wm9xNEZNZTBjS3pHSUlGTDFyemoxVgotMmN6WUIrcXZMaHlpbzRHSk1JR0dNQjBHQTFVZERnUVdCQlQ1UkNnUTBBbFpUUWJmRkIyKzYrdzBYUnZ5ZFRCWAotQmdOVkhTTUVVREJPZ0JTaDN1SGtYNW5qODZ5RkVGd2pzY1NXTTQwUCtxRXpwREV3THpFTE1Ba0dBMVVFQmhNQwotVlVzeEVUQVBCZ05WQkFvTUNHMWlaV1FnVkV4VE1RMHdDd1lEVlFRRERBUkRRVEF3Z2dFQk1Bd0dBMVVkRXdRRgotTUFNQkFmOHdDZ1lJS29aSXpqMEVBd0lEU0FBd1JRSWhBSTd1bkdXL2dyOXRPYzNpK2RGNU44MTVzcmdoK0ZyWAotb2o5RXQ3NEVjU3BUQWlCdWJ2K3ZPSDBERTBnbVlJMTFIZUFJZ3V0V3FxTUlDNzJkWmx3VEYvVmkzZz09Ci0tLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCi0tLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KLU1JSUIzakNDQVlXZ0F3SUJBZ0lCQVRBS0JnZ3Foa2pPUFFRREFqQXZNUXN3Q1FZRFZRUUdFd0pWU3pFUk1BOEcKLUExVUVDZ3dJYldKbFpDQlVURk14RFRBTEJnTlZCQU1NQkVOQk1EQXdIaGNOTVRjd05qSXlNVEUxTURNeVdoY04KLU1qY3dOakl6TVRFMU1ETXlXakF2TVFzd0NRWURWUVFHRXdKVlN6RVJNQThHQTFVRUNnd0liV0psWkNCVVRGTXgKLURUQUxCZ05WQkFNTUJFTkJNREV3V1RBVEJnY3Foa2pPUFFJQkJnZ3Foa2pPUFFNQkJ3TkNBQVF6bm45ekhId0wKLUdPOFZSNFc5Vjd2TWx4Q2Rvb2p6RU9pWDVZNkp0UHRGT3o4NjZ1ZUhZNnpvTjAvbUo2RG5xblNYaWxKSVVVZVcKLTZlR2ZxbWthN254a280R1JNSUdPTUIwR0ExVWREZ1FXQkJTaDN1SGtYNW5qODZ5RkVGd2pzY1NXTTQwUCtqQmYKLUJnTlZIU01FV0RCV2dCUWxGWXZVNVdib0k0ZmNkUG9pUXM4L2ZQSFpyYUV6cERFd0x6RUxNQWtHQTFVRUJoTUMKLVZVc3hFVEFQQmdOVkJBb01DRzFpWldRZ1ZFeFRNUTB3Q3dZRFZRUUREQVJEUVRBd2dna0EvS0NXaGNxVG9IQXcKLURBWURWUjBUQkFVd0F3RUIvekFLQmdncWhrak9QUVFEQWdOSEFEQkVBaUJhc2J1aW5QK3BKVFU0b0RDVkQ4elEKLTFySkJEU09LSUV5V3U4NC9ENkhqNndJZ1ZNUFVvTzAxYlBoemxsQWEvZ1c4WGsvZGFleTA5U0JnTjNBVDlwV1UKLVREQT0KLS0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KLS0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQotTUlJQnBUQ0NBVXVnQXdJQkFnSUpBUHlnbG9YS2s2QndNQW9HQ0NxR1NNNDlCQU1DTUM4eEN6QUpCZ05WQkFZVAotQWxWTE1SRXdEd1lEVlFRS0RBaHRZbVZrSUZSTVV6RU5NQXNHQTFVRUF3d0VRMEV3TURBZUZ3MHhOekEyTWpJeAotTVRVd016SmFGdzB5TnpBMk1qTXhNVFV3TXpKYU1DOHhDekFKQmdOVkJBWVRBbFZMTVJFd0R3WURWUVFLREFodAotWW1Wa0lGUk1VekVOTUFzR0ExVUVBd3dFUTBFd01EQlpNQk1HQnlxR1NNNDlBZ0VHQ0NxR1NNNDlBd0VIQTBJQQotQkZXNDEvcUF3QVBweStUeGRjN1BLbXpac3E5Q1BpdWpLVTR2cEYxZWtYbkd4MkhQNDIwUW9id0JWVldoa3pSbQotTHdkYm9IMmo2NWRjQ0tqUTdtdi9keEtqVURCT01CMEdBMVVkRGdRV0JCUWxGWXZVNVdib0k0ZmNkUG9pUXM4LwotZlBIWnJUQWZCZ05WSFNNRUdEQVdnQlFsRll2VTVXYm9JNGZjZFBvaVFzOC9mUEhaclRBTUJnTlZIUk1FQlRBRAotQVFIL01Bb0dDQ3FHU000OUJBTUNBMGdBTUVVQ0lRQzdpUmNWendNeWZWSzVpbWlySjdNcUpRMDRldUg0Q0xPdAotSVorU05mYUVSQUlnU1UwTVdGRG9zVkVJcGc4WU1xSUhlRjdNZzRaeUg2K2ZHYXpKZ1ZMdHRVWT0KLS0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KZGlmZiAtLWdpdCBhL3Rlc3RzL2RhdGFfZmlsZXMvZGlyLW1heHBhdGgvYzE0LnBlbSBiL3Rlc3RzL2RhdGFfZmlsZXMvZGlyLW1heHBhdGgvYzE0LnBlbQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYzZlY2E3Mi4uMDAwMDAwMAotLS0gYS90ZXN0cy9kYXRhX2ZpbGVzL2Rpci1tYXhwYXRoL2MxNC5wZW0KKysrIC9kZXYvbnVsbApAQCAtMSwxODAgKzAsMCBAQAotLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCi1NSUlCMXpDQ0FYMmdBd0lCQWdJQkFUQUtCZ2dxaGtqT1BRUURBakF2TVFzd0NRWURWUVFHRXdKVlN6RVJNQThHCi1BMVVFQ2d3SWJXSmxaQ0JVVEZNeERUQUxCZ05WQkFNTUJFTkJNVE13SGhjTk1UY3dOakl5TVRFMU1ETXpXaGNOCi1NamN3TmpJek1URTFNRE16V2pBdk1Rc3dDUVlEVlFRR0V3SlZTekVSTUE4R0ExVUVDZ3dJYldKbFpDQlVURk14Ci1EVEFMQmdOVkJBTU1CRU5CTVRRd1dUQVRCZ2NxaGtqT1BRSUJCZ2dxaGtqT1BRTUJCd05DQUFUUk1aTjBSSHpQCi1kb25ObVp1cTlYUGh6dlE1MlRhb2t4VDM5cXBRdGxGeXZVdUVHS3JMb052ZGNwQVJhQTByR3B1dDZSTEFRT1ZVCi1pTlZsSjNJcGo3ODlvNEdKTUlHR01CMEdBMVVkRGdRV0JCUk5zSkIrK2NjU0JtYkNDS0J4aTRDalhST0JrekJYCi1CZ05WSFNNRVVEQk9nQlRtVm5VU0YyTVl3d3MvbkNNdjdiMXdKVmtEbXFFenBERXdMekVMTUFrR0ExVUVCaE1DCi1WVXN4RVRBUEJnTlZCQW9NQ0cxaVpXUWdWRXhUTVEwd0N3WURWUVFEREFSRFFURXlnZ0VCTUF3R0ExVWRFd1FGCi1NQU1CQWY4d0NnWUlLb1pJemowRUF3SURTQUF3UlFJZ1ZmdUxwanAwOEFheEtXZjZjdVpVVUNSZDdDb2pTUzFJCi03MWh6ZVV5RlMrc0NJUUROSkk2UC9wQmJpSGdUYUdsQkFnZmNFZm14bWJZMG40eFpuZHR4SWtteVZBPT0KLS0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KLS0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQotTUlJQjF6Q0NBWDJnQXdJQkFnSUJBVEFLQmdncWhrak9QUVFEQWpBdk1Rc3dDUVlEVlFRR0V3SlZTekVSTUE4RwotQTFVRUNnd0liV0psWkNCVVRGTXhEVEFMQmdOVkJBTU1CRU5CTVRJd0hoY05NVGN3TmpJeU1URTFNRE16V2hjTgotTWpjd05qSXpNVEUxTURNeldqQXZNUXN3Q1FZRFZRUUdFd0pWU3pFUk1BOEdBMVVFQ2d3SWJXSmxaQ0JVVEZNeAotRFRBTEJnTlZCQU1NQkVOQk1UTXdXVEFUQmdjcWhrak9QUUlCQmdncWhrak9QUU1CQndOQ0FBVHJrekNKTHpuaAotbGhuc3YxUlhCOWtmZWFEK2NJcnVQUTBjSXRCREdwZHZEOHhiQlZ2UWNpNCtSRzJSVlVDU1dSaGtGWWpTc1VTTQotMFFITVFuQkZsaHcybzRHSk1JR0dNQjBHQTFVZERnUVdCQlRtVm5VU0YyTVl3d3MvbkNNdjdiMXdKVmtEbWpCWAotQmdOVkhTTUVVREJPZ0JUWlR0YmkrajBTbS9acy8rZ1RrV2RBU3BRemZxRXpwREV3THpFTE1Ba0dBMVVFQmhNQwotVlVzeEVUQVBCZ05WQkFvTUNHMWlaV1FnVkV4VE1RMHdDd1lEVlFRRERBUkRRVEV4Z2dFQk1Bd0dBMVVkRXdRRgotTUFNQkFmOHdDZ1lJS29aSXpqMEVBd0lEU0FBd1JRSWdXc20rckhKZ3dVRXlObThFS2JFZHM1eXVycHA1LzN5NQotUHN2WEpWRHF4b2dDSVFEVVAwSmNsM0E5MDdDRTJ0UFZYU2dENkxRNkNQdTE5bWl4ZW1QdzYweWlqQT09Ci0tLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCi0tLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KLU1JSUIxakNDQVgyZ0F3SUJBZ0lCQVRBS0JnZ3Foa2pPUFFRREFqQXZNUXN3Q1FZRFZRUUdFd0pWU3pFUk1BOEcKLUExVUVDZ3dJYldKbFpDQlVURk14RFRBTEJnTlZCQU1NQkVOQk1URXdIaGNOTVRjd05qSXlNVEUxTURNeldoY04KLU1qY3dOakl6TVRFMU1ETXpXakF2TVFzd0NRWURWUVFHRXdKVlN6RVJNQThHQTFVRUNnd0liV0psWkNCVVRGTXgKLURUQUxCZ05WQkFNTUJFTkJNVEl3V1RBVEJnY3Foa2pPUFFJQkJnZ3Foa2pPUFFNQkJ3TkNBQVRERTlMUGxMUGMKLWdaM2IwQmNoUi9Ba2hORVA5SEFhdndZYWRKSXl6b1BvNWVkQ1ZuYm9RSDc4NmpzWndaTlpvQzBnSERBaENtR2MKLUlmUmVuSVNBb1Z1UG80R0pNSUdHTUIwR0ExVWREZ1FXQkJUWlR0YmkrajBTbS9acy8rZ1RrV2RBU3BRemZqQlgKLUJnTlZIU01FVURCT2dCU09TdDZlUHlNUlQ2UEdNYUlpN0ZxTlg5TUt0S0V6cERFd0x6RUxNQWtHQTFVRUJoTUMKLVZVc3hFVEFQQmdOVkJBb01DRzFpWldRZ1ZFeFRNUTB3Q3dZRFZRUUREQVJEUVRFd2dnRUJNQXdHQTFVZEV3UUYKLU1BTUJBZjh3Q2dZSUtvWkl6ajBFQXdJRFJ3QXdSQUlnWVlGNUFuUlY3ZWgyaExENUR6Ly9wY2VNVEt6OUxzNDYKLUU2RHh2YmZESGlrQ0lGdHRsR3JPQ1pWeVM0b2NzanVLSUVMVlVYNXFmeWdJMHNuNGtVM3FDVHMyCi0tLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCi0tLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KLU1JSUIxakNDQVgyZ0F3SUJBZ0lCQVRBS0JnZ3Foa2pPUFFRREFqQXZNUXN3Q1FZRFZRUUdFd0pWU3pFUk1BOEcKLUExVUVDZ3dJYldKbFpDQlVURk14RFRBTEJnTlZCQU1NQkVOQk1UQXdIaGNOTVRjd05qSXlNVEUxTURNeldoY04KLU1qY3dOakl6TVRFMU1ETXpXakF2TVFzd0NRWURWUVFHRXdKVlN6RVJNQThHQTFVRUNnd0liV0psWkNCVVRGTXgKLURUQUxCZ05WQkFNTUJFTkJNVEV3V1RBVEJnY3Foa2pPUFFJQkJnZ3Foa2pPUFFNQkJ3TkNBQVRad1IrV0s2TkIKLUYvN3JpRmRONjNjOGhqWWRkWlJSNGxyelZOUHdpQlF4bm54d3BQeXJEOUE2YVBQbUxjNlNxR09KVzRaR1ZDY28KLUlCemU5UkpWZWlCOW80R0pNSUdHTUIwR0ExVWREZ1FXQkJTT1N0NmVQeU1SVDZQR01hSWk3RnFOWDlNS3REQlgKLUJnTlZIU01FVURCT2dCUXR4WlNMSkFrRXorMlJLTVFleE02RXRzZmdjcUV6cERFd0x6RUxNQWtHQTFVRUJoTUMKLVZVc3hFVEFQQmdOVkJBb01DRzFpWldRZ1ZFeFRNUTB3Q3dZRFZRUUREQVJEUVRBNWdnRUJNQXdHQTFVZEV3UUYKLU1BTUJBZjh3Q2dZSUtvWkl6ajBFQXdJRFJ3QXdSQUlnTi8vTnFNMEZya3JNam14b2VDWTlEZ3hrSDJSNnNRNGQKLU5ndHdDWkFJcUVJQ0lCczR2dXBhVmN1dm5pOXRsdGJQMjZ3aTdjMEZSK2JsWnVvNURQSUEzU1ZlCi0tLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCi0tLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KLU1JSUIxekNDQVgyZ0F3SUJBZ0lCQVRBS0JnZ3Foa2pPUFFRREFqQXZNUXN3Q1FZRFZRUUdFd0pWU3pFUk1BOEcKLUExVUVDZ3dJYldKbFpDQlVURk14RFRBTEJnTlZCQU1NQkVOQk1Ea3dIaGNOTVRjd05qSXlNVEUxTURNeldoY04KLU1qY3dOakl6TVRFMU1ETXpXakF2TVFzd0NRWURWUVFHRXdKVlN6RVJNQThHQTFVRUNnd0liV0psWkNCVVRGTXgKLURUQUxCZ05WQkFNTUJFTkJNVEF3V1RBVEJnY3Foa2pPUFFJQkJnZ3Foa2pPUFFNQkJ3TkNBQVI2amxHS2JKZDUKLWhpRHhONzg5Z2tPY3dweUhJOXdSd0NyQURBT3dPa01lUEJQUmx3R2RtN213N1ovRUFtdTI2elJtL2hjeXJzNE0KLXFrMkxhYkRqUEk5WG80R0pNSUdHTUIwR0ExVWREZ1FXQkJRdHhaU0xKQWtFeisyUktNUWV4TTZFdHNmZ2NqQlgKLUJnTlZIU01FVURCT2dCVDZneVhIelBJUFljMVZyMWFHaUxMZU1oNEhwcUV6cERFd0x6RUxNQWtHQTFVRUJoTUMKLVZVc3hFVEFQQmdOVkJBb01DRzFpWldRZ1ZFeFRNUTB3Q3dZRFZRUUREQVJEUVRBNGdnRUJNQXdHQTFVZEV3UUYKLU1BTUJBZjh3Q2dZSUtvWkl6ajBFQXdJRFNBQXdSUUlnUDdTOHZGc3RmVUJkTmU2eW01R1lHNVErYUJWRUtxUnMKLWZWVzdITlVrdFNZQ0lRRG82SnVhNm8vREpicnBxNHFZV3E1Z3Y0eUd5elBUTiszSWFLckVJQ2RhYXc9PQotLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQotLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCi1NSUlCMWpDQ0FYMmdBd0lCQWdJQkFUQUtCZ2dxaGtqT1BRUURBakF2TVFzd0NRWURWUVFHRXdKVlN6RVJNQThHCi1BMVVFQ2d3SWJXSmxaQ0JVVEZNeERUQUxCZ05WQkFNTUJFTkJNRGd3SGhjTk1UY3dOakl5TVRFMU1ETXpXaGNOCi1NamN3TmpJek1URTFNRE16V2pBdk1Rc3dDUVlEVlFRR0V3SlZTekVSTUE4R0ExVUVDZ3dJYldKbFpDQlVURk14Ci1EVEFMQmdOVkJBTU1CRU5CTURrd1dUQVRCZ2NxaGtqT1BRSUJCZ2dxaGtqT1BRTUJCd05DQUFSN1pCMTYrdDZFCi1zZmFoR3lLVUdKVzVtZXprempkYVl2YzRsYkphS05Sd0ZSZmMzRi9mbU5PU3NVRlNnL0YwTit2VUUrZG9LaVBDCi04d1J3THp2bTRzKzVvNEdKTUlHR01CMEdBMVVkRGdRV0JCVDZneVhIelBJUFljMVZyMWFHaUxMZU1oNEhwakJYCi1CZ05WSFNNRVVEQk9nQlM0MG1MdDkzVThTaDhaR2lEVkFoUlNpQlBjWHFFenBERXdMekVMTUFrR0ExVUVCaE1DCi1WVXN4RVRBUEJnTlZCQW9NQ0cxaVpXUWdWRXhUTVEwd0N3WURWUVFEREFSRFFUQTNnZ0VCTUF3R0ExVWRFd1FGCi1NQU1CQWY4d0NnWUlLb1pJemowRUF3SURSd0F3UkFJZ080ZWwxWlBobElsaS9xTlIyU0lFaXV2czVNbXk4NjhpCi1OMlJ2NVgvVnhJRUNJQS84clVBTFF4VzM4WFNkQlZYM2Uvanp1N2p1NDduMVl3RXFEOUs5V2RWdgotLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQotLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCi1NSUlCMkRDQ0FYMmdBd0lCQWdJQkFUQUtCZ2dxaGtqT1BRUURBakF2TVFzd0NRWURWUVFHRXdKVlN6RVJNQThHCi1BMVVFQ2d3SWJXSmxaQ0JVVEZNeERUQUxCZ05WQkFNTUJFTkJNRGN3SGhjTk1UY3dOakl5TVRFMU1ETXlXaGNOCi1NamN3TmpJek1URTFNRE15V2pBdk1Rc3dDUVlEVlFRR0V3SlZTekVSTUE4R0ExVUVDZ3dJYldKbFpDQlVURk14Ci1EVEFMQmdOVkJBTU1CRU5CTURnd1dUQVRCZ2NxaGtqT1BRSUJCZ2dxaGtqT1BRTUJCd05DQUFScFFlUS9ZR1FqCi1ubDdTem82V1N0SjF1N3h1blRMNWpCa1hIOGFBVlNtMHFpWDRBRC83WVB4YTVFbkd6WmRMVG4yNXZRVm5mUUFHCi1wTXg4UDFsWWlHWUNvNEdKTUlHR01CMEdBMVVkRGdRV0JCUzQwbUx0OTNVOFNoOFpHaURWQWhSU2lCUGNYakJYCi1CZ05WSFNNRVVEQk9nQlJFcTVKM3RvSlB4WjNPK3NzSjV2a2tVMFJKRTZFenBERXdMekVMTUFrR0ExVUVCaE1DCi1WVXN4RVRBUEJnTlZCQW9NQ0cxaVpXUWdWRXhUTVEwd0N3WURWUVFEREFSRFFUQTJnZ0VCTUF3R0ExVWRFd1FGCi1NQU1CQWY4d0NnWUlLb1pJemowRUF3SURTUUF3UmdJaEFOd0dmK0Y0YStrbVhXejhValNwUmthVG9UVjZFRld3Ci0vVGp6ajB0UWhEb0FBaUVBMTlSeGVXT1ZCQnBNNkxPSGc2djVMZjU0WU4xc25rTGYrc0VYeVpDdVdRUT0KLS0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KLS0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQotTUlJQjJEQ0NBWDJnQXdJQkFnSUJBVEFLQmdncWhrak9QUVFEQWpBdk1Rc3dDUVlEVlFRR0V3SlZTekVSTUE4RwotQTFVRUNnd0liV0psWkNCVVRGTXhEVEFMQmdOVkJBTU1CRU5CTURZd0hoY05NVGN3TmpJeU1URTFNRE15V2hjTgotTWpjd05qSXpNVEUxTURNeVdqQXZNUXN3Q1FZRFZRUUdFd0pWU3pFUk1BOEdBMVVFQ2d3SWJXSmxaQ0JVVEZNeAotRFRBTEJnTlZCQU1NQkVOQk1EY3dXVEFUQmdjcWhrak9QUUlCQmdncWhrak9QUU1CQndOQ0FBU05PajRkNE1FQQotN3AvM21paWpxRzRUb0U0b3BLUEFtKzNCVElHckpUWVQxNCsrVFNpVUlDbDBBU1hqK3hlVWNMTUlhWFROMDQycwotTHNIeHBTaHpRYUwwbzRHSk1JR0dNQjBHQTFVZERnUVdCQlJFcTVKM3RvSlB4WjNPK3NzSjV2a2tVMFJKRXpCWAotQmdOVkhTTUVVREJPZ0JTam92WWFDL202TGk5VHAwVjlpWlJzOTI2N1E2RXpwREV3THpFTE1Ba0dBMVVFQmhNQwotVlVzeEVUQVBCZ05WQkFvTUNHMWlaV1FnVkV4VE1RMHdDd1lEVlFRRERBUkRRVEExZ2dFQk1Bd0dBMVVkRXdRRgotTUFNQkFmOHdDZ1lJS29aSXpqMEVBd0lEU1FBd1JnSWhBS0djZitjNDQyYy9YaXd1YmJhaVF2c29aN0VvVnh1TQotb0ttaWEwZ1B5Qk5rQWlFQTgzYXNqSjVGRFhRdUx5WnBjenZpWHJibXFnQ1BPZllhZHR2a2MwY3hNaXM9Ci0tLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCi0tLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KLU1JSUIxakNDQVgyZ0F3SUJBZ0lCQVRBS0JnZ3Foa2pPUFFRREFqQXZNUXN3Q1FZRFZRUUdFd0pWU3pFUk1BOEcKLUExVUVDZ3dJYldKbFpDQlVURk14RFRBTEJnTlZCQU1NQkVOQk1EVXdIaGNOTVRjd05qSXlNVEUxTURNeVdoY04KLU1qY3dOakl6TVRFMU1ETXlXakF2TVFzd0NRWURWUVFHRXdKVlN6RVJNQThHQTFVRUNnd0liV0psWkNCVVRGTXgKLURUQUxCZ05WQkFNTUJFTkJNRFl3V1RBVEJnY3Foa2pPUFFJQkJnZ3Foa2pPUFFNQkJ3TkNBQVNBOXFXb0FVSHIKLW5uKzNreHlOcmpQSms4MldETGltVzIxUk41MXV4cG9iYWR2OFlnR0VEUmRQK09rK3VScVFTVXNBNlpYZkYzaUcKLXIyR2pmUTN3TURIOG80R0pNSUdHTUIwR0ExVWREZ1FXQkJTam92WWFDL202TGk5VHAwVjlpWlJzOTI2N1F6QlgKLUJnTlZIU01FVURCT2dCVFhoMDZNQVY5UzRsNGxHMVRLT3JLUkJoNHFuNkV6cERFd0x6RUxNQWtHQTFVRUJoTUMKLVZVc3hFVEFQQmdOVkJBb01DRzFpWldRZ1ZFeFRNUTB3Q3dZRFZRUUREQVJEUVRBMGdnRUJNQXdHQTFVZEV3UUYKLU1BTUJBZjh3Q2dZSUtvWkl6ajBFQXdJRFJ3QXdSQUlnY2paTkZXSnRsRG1vUFpiQXhxc0djelJZSzBsZlBndTYKLWcxSDdwcDBjZSt3Q0lEajlCUlpNMk9COUVGMGUrTURLR2p5WkdmdmZyTDZJcjQ3eC9Lck02SDhUCi0tLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCi0tLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KLU1JSUIxekNDQVgyZ0F3SUJBZ0lCQVRBS0JnZ3Foa2pPUFFRREFqQXZNUXN3Q1FZRFZRUUdFd0pWU3pFUk1BOEcKLUExVUVDZ3dJYldKbFpDQlVURk14RFRBTEJnTlZCQU1NQkVOQk1EUXdIaGNOTVRjd05qSXlNVEUxTURNeVdoY04KLU1qY3dOakl6TVRFMU1ETXlXakF2TVFzd0NRWURWUVFHRXdKVlN6RVJNQThHQTFVRUNnd0liV0psWkNCVVRGTXgKLURUQUxCZ05WQkFNTUJFTkJNRFV3V1RBVEJnY3Foa2pPUFFJQkJnZ3Foa2pPUFFNQkJ3TkNBQVFFZFQwT0ZmNUcKLVVjcmdYMlhsbEN5SnpQOTROWjQ2NEdzZ0I2cHNOTHNEZUwrajdBVStvSnk3Vkx2Vy9sSGgzT0RnbDA4WjliaHEKLUxGQm1Oam5IYm04UW80R0pNSUdHTUIwR0ExVWREZ1FXQkJUWGgwNk1BVjlTNGw0bEcxVEtPcktSQmg0cW56QlgKLUJnTlZIU01FVURCT2dCUW94NEYxTnNadW5sc2R1b0d2eklnUlNZZkIzNkV6cERFd0x6RUxNQWtHQTFVRUJoTUMKLVZVc3hFVEFQQmdOVkJBb01DRzFpWldRZ1ZFeFRNUTB3Q3dZRFZRUUREQVJEUVRBemdnRUJNQXdHQTFVZEV3UUYKLU1BTUJBZjh3Q2dZSUtvWkl6ajBFQXdJRFNBQXdSUUloQUlXKyt6cURabExMVWsvZW1lUG9oZE5PcDVKTzN3UzkKLVh2a0JKNld1YTdHQkFpQWR4K0VLbWRqVnJ3bnpyUWx0VGdubVNmR01YaEtOWWlmSzN1RDgzVzNwY1E9PQotLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQotLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCi1NSUlCMWpDQ0FYMmdBd0lCQWdJQkFUQUtCZ2dxaGtqT1BRUURBakF2TVFzd0NRWURWUVFHRXdKVlN6RVJNQThHCi1BMVVFQ2d3SWJXSmxaQ0JVVEZNeERUQUxCZ05WQkFNTUJFTkJNRE13SGhjTk1UY3dOakl5TVRFMU1ETXlXaGNOCi1NamN3TmpJek1URTFNRE15V2pBdk1Rc3dDUVlEVlFRR0V3SlZTekVSTUE4R0ExVUVDZ3dJYldKbFpDQlVURk14Ci1EVEFMQmdOVkJBTU1CRU5CTURRd1dUQVRCZ2NxaGtqT1BRSUJCZ2dxaGtqT1BRTUJCd05DQUFRVVhEZ2NVVk5UCi05aG92YlpFNUhMNnJqT2I3QzU1d0V1V0tUaFYvQ2NaNHJXclh4N1ZYSFlkRC9SM2FEQTdKU3ZZcG0yc1RvazRpCi1zYmxEemhaTS9HRE5vNEdKTUlHR01CMEdBMVVkRGdRV0JCUW94NEYxTnNadW5sc2R1b0d2eklnUlNZZkIzekJYCi1CZ05WSFNNRVVEQk9nQlFBcHpaZHRCZEQzZEx4b3VRcHIvYURpVnR0ZDZFenBERXdMekVMTUFrR0ExVUVCaE1DCi1WVXN4RVRBUEJnTlZCQW9NQ0cxaVpXUWdWRXhUTVEwd0N3WURWUVFEREFSRFFUQXlnZ0VCTUF3R0ExVWRFd1FGCi1NQU1CQWY4d0NnWUlLb1pJemowRUF3SURSd0F3UkFJZ0FraU5ocUZBWlhTVVdFREs5MU9adlFHZGVaT3RkNm1DCi0rV3YzZkdrM3QyOENJRUtPd2lka1VUVWFpUGRaNGVmbUFyK0NFZUd6ZHEyN29iMlMrbnFxSHFnVgotLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQotLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCi1NSUlCMkRDQ0FYMmdBd0lCQWdJQkFUQUtCZ2dxaGtqT1BRUURBakF2TVFzd0NRWURWUVFHRXdKVlN6RVJNQThHCi1BMVVFQ2d3SWJXSmxaQ0JVVEZNeERUQUxCZ05WQkFNTUJFTkJNREl3SGhjTk1UY3dOakl5TVRFMU1ETXlXaGNOCi1NamN3TmpJek1URTFNRE15V2pBdk1Rc3dDUVlEVlFRR0V3SlZTekVSTUE4R0ExVUVDZ3dJYldKbFpDQlVURk14Ci1EVEFMQmdOVkJBTU1CRU5CTURNd1dUQVRCZ2NxaGtqT1BRSUJCZ2dxaGtqT1BRTUJCd05DQUFRUkRYRE5JaTFwCi1lcmV1ZGhxd2EyTHNsWGdzeG5CNjNIdTV5NWxnKzFXUHJ1SVlQekQvSG8wQVB2ZVZkekZMVmppMTkrYkU0K3RGCi1QWUwxU3BzTjFXZldvNEdKTUlHR01CMEdBMVVkRGdRV0JCUUFwelpkdEJkRDNkTHhvdVFwci9hRGlWdHRkekJYCi1CZ05WSFNNRVVEQk9nQlQ1UkNnUTBBbFpUUWJmRkIyKzYrdzBYUnZ5ZGFFenBERXdMekVMTUFrR0ExVUVCaE1DCi1WVXN4RVRBUEJnTlZCQW9NQ0cxaVpXUWdWRXhUTVEwd0N3WURWUVFEREFSRFFUQXhnZ0VCTUF3R0ExVWRFd1FGCi1NQU1CQWY4d0NnWUlLb1pJemowRUF3SURTUUF3UmdJaEFPbmQrN2JBb2ZrSFZhNEtGTmp2M1RDZWd3MWxyaHVNCi04T2Y4d2d2clRFR29BaUVBc1M4aUtNcFNmWEg0RDBlZ2c0Z0xhbUU2YWtkZTk2NXJEdHlTVSt2ZTlsZz0KLS0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KLS0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQotTUlJQjF6Q0NBWDJnQXdJQkFnSUJBVEFLQmdncWhrak9QUVFEQWpBdk1Rc3dDUVlEVlFRR0V3SlZTekVSTUE4RwotQTFVRUNnd0liV0psWkNCVVRGTXhEVEFMQmdOVkJBTU1CRU5CTURFd0hoY05NVGN3TmpJeU1URTFNRE15V2hjTgotTWpjd05qSXpNVEUxTURNeVdqQXZNUXN3Q1FZRFZRUUdFd0pWU3pFUk1BOEdBMVVFQ2d3SWJXSmxaQ0JVVEZNeAotRFRBTEJnTlZCQU1NQkVOQk1ESXdXVEFUQmdjcWhrak9QUUlCQmdncWhrak9QUU1CQndOQ0FBUVdIcHYxaTZsZgotd3ZOUE9QNWthNlMwbjU1RXZ6b2FZSzZwYlRYUDZ5TU9XLzRYWlNQS3g1Wm9xNEZNZTBjS3pHSUlGTDFyemoxVgotMmN6WUIrcXZMaHlpbzRHSk1JR0dNQjBHQTFVZERnUVdCQlQ1UkNnUTBBbFpUUWJmRkIyKzYrdzBYUnZ5ZFRCWAotQmdOVkhTTUVVREJPZ0JTaDN1SGtYNW5qODZ5RkVGd2pzY1NXTTQwUCtxRXpwREV3THpFTE1Ba0dBMVVFQmhNQwotVlVzeEVUQVBCZ05WQkFvTUNHMWlaV1FnVkV4VE1RMHdDd1lEVlFRRERBUkRRVEF3Z2dFQk1Bd0dBMVVkRXdRRgotTUFNQkFmOHdDZ1lJS29aSXpqMEVBd0lEU0FBd1JRSWhBSTd1bkdXL2dyOXRPYzNpK2RGNU44MTVzcmdoK0ZyWAotb2o5RXQ3NEVjU3BUQWlCdWJ2K3ZPSDBERTBnbVlJMTFIZUFJZ3V0V3FxTUlDNzJkWmx3VEYvVmkzZz09Ci0tLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCi0tLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KLU1JSUIzakNDQVlXZ0F3SUJBZ0lCQVRBS0JnZ3Foa2pPUFFRREFqQXZNUXN3Q1FZRFZRUUdFd0pWU3pFUk1BOEcKLUExVUVDZ3dJYldKbFpDQlVURk14RFRBTEJnTlZCQU1NQkVOQk1EQXdIaGNOTVRjd05qSXlNVEUxTURNeVdoY04KLU1qY3dOakl6TVRFMU1ETXlXakF2TVFzd0NRWURWUVFHRXdKVlN6RVJNQThHQTFVRUNnd0liV0psWkNCVVRGTXgKLURUQUxCZ05WQkFNTUJFTkJNREV3V1RBVEJnY3Foa2pPUFFJQkJnZ3Foa2pPUFFNQkJ3TkNBQVF6bm45ekhId0wKLUdPOFZSNFc5Vjd2TWx4Q2Rvb2p6RU9pWDVZNkp0UHRGT3o4NjZ1ZUhZNnpvTjAvbUo2RG5xblNYaWxKSVVVZVcKLTZlR2ZxbWthN254a280R1JNSUdPTUIwR0ExVWREZ1FXQkJTaDN1SGtYNW5qODZ5RkVGd2pzY1NXTTQwUCtqQmYKLUJnTlZIU01FV0RCV2dCUWxGWXZVNVdib0k0ZmNkUG9pUXM4L2ZQSFpyYUV6cERFd0x6RUxNQWtHQTFVRUJoTUMKLVZVc3hFVEFQQmdOVkJBb01DRzFpWldRZ1ZFeFRNUTB3Q3dZRFZRUUREQVJEUVRBd2dna0EvS0NXaGNxVG9IQXcKLURBWURWUjBUQkFVd0F3RUIvekFLQmdncWhrak9QUVFEQWdOSEFEQkVBaUJhc2J1aW5QK3BKVFU0b0RDVkQ4elEKLTFySkJEU09LSUV5V3U4NC9ENkhqNndJZ1ZNUFVvTzAxYlBoemxsQWEvZ1c4WGsvZGFleTA5U0JnTjNBVDlwV1UKLVREQT0KLS0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KLS0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQotTUlJQnBUQ0NBVXVnQXdJQkFnSUpBUHlnbG9YS2s2QndNQW9HQ0NxR1NNNDlCQU1DTUM4eEN6QUpCZ05WQkFZVAotQWxWTE1SRXdEd1lEVlFRS0RBaHRZbVZrSUZSTVV6RU5NQXNHQTFVRUF3d0VRMEV3TURBZUZ3MHhOekEyTWpJeAotTVRVd016SmFGdzB5TnpBMk1qTXhNVFV3TXpKYU1DOHhDekFKQmdOVkJBWVRBbFZMTVJFd0R3WURWUVFLREFodAotWW1Wa0lGUk1VekVOTUFzR0ExVUVBd3dFUTBFd01EQlpNQk1HQnlxR1NNNDlBZ0VHQ0NxR1NNNDlBd0VIQTBJQQotQkZXNDEvcUF3QVBweStUeGRjN1BLbXpac3E5Q1BpdWpLVTR2cEYxZWtYbkd4MkhQNDIwUW9id0JWVldoa3pSbQotTHdkYm9IMmo2NWRjQ0tqUTdtdi9keEtqVURCT01CMEdBMVVkRGdRV0JCUWxGWXZVNVdib0k0ZmNkUG9pUXM4LwotZlBIWnJUQWZCZ05WSFNNRUdEQVdnQlFsRll2VTVXYm9JNGZjZFBvaVFzOC9mUEhaclRBTUJnTlZIUk1FQlRBRAotQVFIL01Bb0dDQ3FHU000OUJBTUNBMGdBTUVVQ0lRQzdpUmNWendNeWZWSzVpbWlySjdNcUpRMDRldUg0Q0xPdAotSVorU05mYUVSQUlnU1UwTVdGRG9zVkVJcGc4WU1xSUhlRjdNZzRaeUg2K2ZHYXpKZ1ZMdHRVWT0KLS0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KZGlmZiAtLWdpdCBhL3Rlc3RzL2RhdGFfZmlsZXMvZGlyLW1heHBhdGgvYzE1LnBlbSBiL3Rlc3RzL2RhdGFfZmlsZXMvZGlyLW1heHBhdGgvYzE1LnBlbQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMjIwNDIwZC4uMDAwMDAwMAotLS0gYS90ZXN0cy9kYXRhX2ZpbGVzL2Rpci1tYXhwYXRoL2MxNS5wZW0KKysrIC9kZXYvbnVsbApAQCAtMSwxOTIgKzAsMCBAQAotLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCi1NSUlCMXpDQ0FYMmdBd0lCQWdJQkFUQUtCZ2dxaGtqT1BRUURBakF2TVFzd0NRWURWUVFHRXdKVlN6RVJNQThHCi1BMVVFQ2d3SWJXSmxaQ0JVVEZNeERUQUxCZ05WQkFNTUJFTkJNVFF3SGhjTk1UY3dOakl5TVRFMU1ETXpXaGNOCi1NamN3TmpJek1URTFNRE16V2pBdk1Rc3dDUVlEVlFRR0V3SlZTekVSTUE4R0ExVUVDZ3dJYldKbFpDQlVURk14Ci1EVEFMQmdOVkJBTU1CRU5CTVRVd1dUQVRCZ2NxaGtqT1BRSUJCZ2dxaGtqT1BRTUJCd05DQUFRbEtVaU1vU3NzCi0vaHNUYXNlZHFkQjJCQ09HSmhUdDBoZ1VHZVVuV05aMXN2TzR5bjBHa0ZIWjA4KytmbDJNS3FqcGorVlhxMEpTCi1GRnlHVU9nbWdpM0hvNEdKTUlHR01CMEdBMVVkRGdRV0JCUjFtWGxyZFc1cngxVm5xTU1uVUJYbzBXV0dXakJYCi1CZ05WSFNNRVVEQk9nQlJOc0pCKytjY1NCbWJDQ0tCeGk0Q2pYUk9CazZFenBERXdMekVMTUFrR0ExVUVCaE1DCi1WVXN4RVRBUEJnTlZCQW9NQ0cxaVpXUWdWRXhUTVEwd0N3WURWUVFEREFSRFFURXpnZ0VCTUF3R0ExVWRFd1FGCi1NQU1CQWY4d0NnWUlLb1pJemowRUF3SURTQUF3UlFJaEFLWU9JbytmZENRUnFwSDRMTjhxVUsxYUt6S21XR3hTCi1mR3pFRWtnLzI5Yk1BaUFsOTVjbXVjb0NETXEyQWI4Q29jMGRFcXlKNityQVBNTEJDYkdhd3lpVzZBPT0KLS0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KLS0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQotTUlJQjF6Q0NBWDJnQXdJQkFnSUJBVEFLQmdncWhrak9QUVFEQWpBdk1Rc3dDUVlEVlFRR0V3SlZTekVSTUE4RwotQTFVRUNnd0liV0psWkNCVVRGTXhEVEFMQmdOVkJBTU1CRU5CTVRNd0hoY05NVGN3TmpJeU1URTFNRE16V2hjTgotTWpjd05qSXpNVEUxTURNeldqQXZNUXN3Q1FZRFZRUUdFd0pWU3pFUk1BOEdBMVVFQ2d3SWJXSmxaQ0JVVEZNeAotRFRBTEJnTlZCQU1NQkVOQk1UUXdXVEFUQmdjcWhrak9QUUlCQmdncWhrak9QUU1CQndOQ0FBVFJNWk4wUkh6UAotZG9uTm1adXE5WFBoenZRNTJUYW9reFQzOXFwUXRsRnl2VXVFR0tyTG9OdmRjcEFSYUEwckdwdXQ2UkxBUU9WVQotaU5WbEozSXBqNzg5bzRHSk1JR0dNQjBHQTFVZERnUVdCQlJOc0pCKytjY1NCbWJDQ0tCeGk0Q2pYUk9Ca3pCWAotQmdOVkhTTUVVREJPZ0JUbVZuVVNGMk1Zd3dzL25DTXY3YjF3SlZrRG1xRXpwREV3THpFTE1Ba0dBMVVFQmhNQwotVlVzeEVUQVBCZ05WQkFvTUNHMWlaV1FnVkV4VE1RMHdDd1lEVlFRRERBUkRRVEV5Z2dFQk1Bd0dBMVVkRXdRRgotTUFNQkFmOHdDZ1lJS29aSXpqMEVBd0lEU0FBd1JRSWdWZnVMcGpwMDhBYXhLV2Y2Y3VaVVVDUmQ3Q29qU1MxSQotNzFoemVVeUZTK3NDSVFETkpJNlAvcEJiaUhnVGFHbEJBZ2ZjRWZteG1iWTBuNHhabmR0eElrbXlWQT09Ci0tLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCi0tLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KLU1JSUIxekNDQVgyZ0F3SUJBZ0lCQVRBS0JnZ3Foa2pPUFFRREFqQXZNUXN3Q1FZRFZRUUdFd0pWU3pFUk1BOEcKLUExVUVDZ3dJYldKbFpDQlVURk14RFRBTEJnTlZCQU1NQkVOQk1USXdIaGNOTVRjd05qSXlNVEUxTURNeldoY04KLU1qY3dOakl6TVRFMU1ETXpXakF2TVFzd0NRWURWUVFHRXdKVlN6RVJNQThHQTFVRUNnd0liV0psWkNCVVRGTXgKLURUQUxCZ05WQkFNTUJFTkJNVE13V1RBVEJnY3Foa2pPUFFJQkJnZ3Foa2pPUFFNQkJ3TkNBQVRya3pDSkx6bmgKLWxobnN2MVJYQjlrZmVhRCtjSXJ1UFEwY0l0QkRHcGR2RDh4YkJWdlFjaTQrUkcyUlZVQ1NXUmhrRllqU3NVU00KLTBRSE1RbkJGbGh3Mm80R0pNSUdHTUIwR0ExVWREZ1FXQkJUbVZuVVNGMk1Zd3dzL25DTXY3YjF3SlZrRG1qQlgKLUJnTlZIU01FVURCT2dCVFpUdGJpK2owU20vWnMvK2dUa1dkQVNwUXpmcUV6cERFd0x6RUxNQWtHQTFVRUJoTUMKLVZVc3hFVEFQQmdOVkJBb01DRzFpWldRZ1ZFeFRNUTB3Q3dZRFZRUUREQVJEUVRFeGdnRUJNQXdHQTFVZEV3UUYKLU1BTUJBZjh3Q2dZSUtvWkl6ajBFQXdJRFNBQXdSUUlnV3NtK3JISmd3VUV5Tm04RUtiRWRzNXl1cnBwNS8zeTUKLVBzdlhKVkRxeG9nQ0lRRFVQMEpjbDNBOTA3Q0UydFBWWFNnRDZMUTZDUHUxOW1peGVtUHc2MHlpakE9PQotLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQotLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCi1NSUlCMWpDQ0FYMmdBd0lCQWdJQkFUQUtCZ2dxaGtqT1BRUURBakF2TVFzd0NRWURWUVFHRXdKVlN6RVJNQThHCi1BMVVFQ2d3SWJXSmxaQ0JVVEZNeERUQUxCZ05WQkFNTUJFTkJNVEV3SGhjTk1UY3dOakl5TVRFMU1ETXpXaGNOCi1NamN3TmpJek1URTFNRE16V2pBdk1Rc3dDUVlEVlFRR0V3SlZTekVSTUE4R0ExVUVDZ3dJYldKbFpDQlVURk14Ci1EVEFMQmdOVkJBTU1CRU5CTVRJd1dUQVRCZ2NxaGtqT1BRSUJCZ2dxaGtqT1BRTUJCd05DQUFUREU5TFBsTFBjCi1nWjNiMEJjaFIvQWtoTkVQOUhBYXZ3WWFkSkl5em9QbzVlZENWbmJvUUg3ODZqc1p3Wk5ab0MwZ0hEQWhDbUdjCi1JZlJlbklTQW9WdVBvNEdKTUlHR01CMEdBMVVkRGdRV0JCVFpUdGJpK2owU20vWnMvK2dUa1dkQVNwUXpmakJYCi1CZ05WSFNNRVVEQk9nQlNPU3Q2ZVB5TVJUNlBHTWFJaTdGcU5YOU1LdEtFenBERXdMekVMTUFrR0ExVUVCaE1DCi1WVXN4RVRBUEJnTlZCQW9NQ0cxaVpXUWdWRXhUTVEwd0N3WURWUVFEREFSRFFURXdnZ0VCTUF3R0ExVWRFd1FGCi1NQU1CQWY4d0NnWUlLb1pJemowRUF3SURSd0F3UkFJZ1lZRjVBblJWN2VoMmhMRDVEei8vcGNlTVRLejlMczQ2Ci1FNkR4dmJmREhpa0NJRnR0bEdyT0NaVnlTNG9jc2p1S0lFTFZVWDVxZnlnSTBzbjRrVTNxQ1RzMgotLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQotLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCi1NSUlCMWpDQ0FYMmdBd0lCQWdJQkFUQUtCZ2dxaGtqT1BRUURBakF2TVFzd0NRWURWUVFHRXdKVlN6RVJNQThHCi1BMVVFQ2d3SWJXSmxaQ0JVVEZNeERUQUxCZ05WQkFNTUJFTkJNVEF3SGhjTk1UY3dOakl5TVRFMU1ETXpXaGNOCi1NamN3TmpJek1URTFNRE16V2pBdk1Rc3dDUVlEVlFRR0V3SlZTekVSTUE4R0ExVUVDZ3dJYldKbFpDQlVURk14Ci1EVEFMQmdOVkJBTU1CRU5CTVRFd1dUQVRCZ2NxaGtqT1BRSUJCZ2dxaGtqT1BRTUJCd05DQUFUWndSK1dLNk5CCi1GLzdyaUZkTjYzYzhoallkZFpSUjRscnpWTlB3aUJReG5ueHdwUHlyRDlBNmFQUG1MYzZTcUdPSlc0WkdWQ2NvCi1JQnplOVJKVmVpQjlvNEdKTUlHR01CMEdBMVVkRGdRV0JCU09TdDZlUHlNUlQ2UEdNYUlpN0ZxTlg5TUt0REJYCi1CZ05WSFNNRVVEQk9nQlF0eFpTTEpBa0V6KzJSS01RZXhNNkV0c2ZnY3FFenBERXdMekVMTUFrR0ExVUVCaE1DCi1WVXN4RVRBUEJnTlZCQW9NQ0cxaVpXUWdWRXhUTVEwd0N3WURWUVFEREFSRFFUQTVnZ0VCTUF3R0ExVWRFd1FGCi1NQU1CQWY4d0NnWUlLb1pJemowRUF3SURSd0F3UkFJZ04vL05xTTBGcmtyTWpteG9lQ1k5RGd4a0gyUjZzUTRkCi1OZ3R3Q1pBSXFFSUNJQnM0dnVwYVZjdXZuaTl0bHRiUDI2d2k3YzBGUitibFp1bzVEUElBM1NWZQotLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQotLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCi1NSUlCMXpDQ0FYMmdBd0lCQWdJQkFUQUtCZ2dxaGtqT1BRUURBakF2TVFzd0NRWURWUVFHRXdKVlN6RVJNQThHCi1BMVVFQ2d3SWJXSmxaQ0JVVEZNeERUQUxCZ05WQkFNTUJFTkJNRGt3SGhjTk1UY3dOakl5TVRFMU1ETXpXaGNOCi1NamN3TmpJek1URTFNRE16V2pBdk1Rc3dDUVlEVlFRR0V3SlZTekVSTUE4R0ExVUVDZ3dJYldKbFpDQlVURk14Ci1EVEFMQmdOVkJBTU1CRU5CTVRBd1dUQVRCZ2NxaGtqT1BRSUJCZ2dxaGtqT1BRTUJCd05DQUFSNmpsR0tiSmQ1Ci1oaUR4Tjc4OWdrT2N3cHlISTl3UndDckFEQU93T2tNZVBCUFJsd0dkbTdtdzdaL0VBbXUyNnpSbS9oY3lyczRNCi1xazJMYWJEalBJOVhvNEdKTUlHR01CMEdBMVVkRGdRV0JCUXR4WlNMSkFrRXorMlJLTVFleE02RXRzZmdjakJYCi1CZ05WSFNNRVVEQk9nQlQ2Z3lYSHpQSVBZYzFWcjFhR2lMTGVNaDRIcHFFenBERXdMekVMTUFrR0ExVUVCaE1DCi1WVXN4RVRBUEJnTlZCQW9NQ0cxaVpXUWdWRXhUTVEwd0N3WURWUVFEREFSRFFUQTRnZ0VCTUF3R0ExVWRFd1FGCi1NQU1CQWY4d0NnWUlLb1pJemowRUF3SURTQUF3UlFJZ1A3Uzh2RnN0ZlVCZE5lNnltNUdZRzVRK2FCVkVLcVJzCi1mVlc3SE5Va3RTWUNJUURvNkp1YTZvL0RKYnJwcTRxWVdxNWd2NHlHeXpQVE4rM0lhS3JFSUNkYWF3PT0KLS0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KLS0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQotTUlJQjFqQ0NBWDJnQXdJQkFnSUJBVEFLQmdncWhrak9QUVFEQWpBdk1Rc3dDUVlEVlFRR0V3SlZTekVSTUE4RwotQTFVRUNnd0liV0psWkNCVVRGTXhEVEFMQmdOVkJBTU1CRU5CTURnd0hoY05NVGN3TmpJeU1URTFNRE16V2hjTgotTWpjd05qSXpNVEUxTURNeldqQXZNUXN3Q1FZRFZRUUdFd0pWU3pFUk1BOEdBMVVFQ2d3SWJXSmxaQ0JVVEZNeAotRFRBTEJnTlZCQU1NQkVOQk1Ea3dXVEFUQmdjcWhrak9QUUlCQmdncWhrak9QUU1CQndOQ0FBUjdaQjE2K3Q2RQotc2ZhaEd5S1VHSlc1bWV6a3pqZGFZdmM0bGJKYUtOUndGUmZjM0YvZm1OT1NzVUZTZy9GME4rdlVFK2RvS2lQQwotOHdSd0x6dm00cys1bzRHSk1JR0dNQjBHQTFVZERnUVdCQlQ2Z3lYSHpQSVBZYzFWcjFhR2lMTGVNaDRIcGpCWAotQmdOVkhTTUVVREJPZ0JTNDBtTHQ5M1U4U2g4WkdpRFZBaFJTaUJQY1hxRXpwREV3THpFTE1Ba0dBMVVFQmhNQwotVlVzeEVUQVBCZ05WQkFvTUNHMWlaV1FnVkV4VE1RMHdDd1lEVlFRRERBUkRRVEEzZ2dFQk1Bd0dBMVVkRXdRRgotTUFNQkFmOHdDZ1lJS29aSXpqMEVBd0lEUndBd1JBSWdPNGVsMVpQaGxJbGkvcU5SMlNJRWl1dnM1TW15ODY4aQotTjJSdjVYL1Z4SUVDSUEvOHJVQUxReFczOFhTZEJWWDNlL2p6dTdqdTQ3bjFZd0VxRDlLOVdkVnYKLS0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KLS0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQotTUlJQjJEQ0NBWDJnQXdJQkFnSUJBVEFLQmdncWhrak9QUVFEQWpBdk1Rc3dDUVlEVlFRR0V3SlZTekVSTUE4RwotQTFVRUNnd0liV0psWkNCVVRGTXhEVEFMQmdOVkJBTU1CRU5CTURjd0hoY05NVGN3TmpJeU1URTFNRE15V2hjTgotTWpjd05qSXpNVEUxTURNeVdqQXZNUXN3Q1FZRFZRUUdFd0pWU3pFUk1BOEdBMVVFQ2d3SWJXSmxaQ0JVVEZNeAotRFRBTEJnTlZCQU1NQkVOQk1EZ3dXVEFUQmdjcWhrak9QUUlCQmdncWhrak9QUU1CQndOQ0FBUnBRZVEvWUdRagotbmw3U3pvNldTdEoxdTd4dW5UTDVqQmtYSDhhQVZTbTBxaVg0QUQvN1lQeGE1RW5HelpkTFRuMjV2UVZuZlFBRwotcE14OFAxbFlpR1lDbzRHSk1JR0dNQjBHQTFVZERnUVdCQlM0MG1MdDkzVThTaDhaR2lEVkFoUlNpQlBjWGpCWAotQmdOVkhTTUVVREJPZ0JSRXE1SjN0b0pQeFozTytzc0o1dmtrVTBSSkU2RXpwREV3THpFTE1Ba0dBMVVFQmhNQwotVlVzeEVUQVBCZ05WQkFvTUNHMWlaV1FnVkV4VE1RMHdDd1lEVlFRRERBUkRRVEEyZ2dFQk1Bd0dBMVVkRXdRRgotTUFNQkFmOHdDZ1lJS29aSXpqMEVBd0lEU1FBd1JnSWhBTndHZitGNGEra21YV3o4VWpTcFJrYVRvVFY2RUZXdwotL1RqemowdFFoRG9BQWlFQTE5UnhlV09WQkJwTTZMT0hnNnY1TGY1NFlOMXNua0xmK3NFWHlaQ3VXUVE9Ci0tLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCi0tLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KLU1JSUIyRENDQVgyZ0F3SUJBZ0lCQVRBS0JnZ3Foa2pPUFFRREFqQXZNUXN3Q1FZRFZRUUdFd0pWU3pFUk1BOEcKLUExVUVDZ3dJYldKbFpDQlVURk14RFRBTEJnTlZCQU1NQkVOQk1EWXdIaGNOTVRjd05qSXlNVEUxTURNeVdoY04KLU1qY3dOakl6TVRFMU1ETXlXakF2TVFzd0NRWURWUVFHRXdKVlN6RVJNQThHQTFVRUNnd0liV0psWkNCVVRGTXgKLURUQUxCZ05WQkFNTUJFTkJNRGN3V1RBVEJnY3Foa2pPUFFJQkJnZ3Foa2pPUFFNQkJ3TkNBQVNOT2o0ZDRNRUEKLTdwLzNtaWlqcUc0VG9FNG9wS1BBbSszQlRJR3JKVFlUMTQrK1RTaVVJQ2wwQVNYait4ZVVjTE1JYVhUTjA0MnMKLUxzSHhwU2h6UWFMMG80R0pNSUdHTUIwR0ExVWREZ1FXQkJSRXE1SjN0b0pQeFozTytzc0o1dmtrVTBSSkV6QlgKLUJnTlZIU01FVURCT2dCU2pvdllhQy9tNkxpOVRwMFY5aVpSczkyNjdRNkV6cERFd0x6RUxNQWtHQTFVRUJoTUMKLVZVc3hFVEFQQmdOVkJBb01DRzFpWldRZ1ZFeFRNUTB3Q3dZRFZRUUREQVJEUVRBMWdnRUJNQXdHQTFVZEV3UUYKLU1BTUJBZjh3Q2dZSUtvWkl6ajBFQXdJRFNRQXdSZ0loQUtHY2YrYzQ0MmMvWGl3dWJiYWlRdnNvWjdFb1Z4dU0KLW9LbWlhMGdQeUJOa0FpRUE4M2Fzako1RkRYUXVMeVpwY3p2aVhyYm1xZ0NQT2ZZYWR0dmtjMGN4TWlzPQotLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQotLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCi1NSUlCMWpDQ0FYMmdBd0lCQWdJQkFUQUtCZ2dxaGtqT1BRUURBakF2TVFzd0NRWURWUVFHRXdKVlN6RVJNQThHCi1BMVVFQ2d3SWJXSmxaQ0JVVEZNeERUQUxCZ05WQkFNTUJFTkJNRFV3SGhjTk1UY3dOakl5TVRFMU1ETXlXaGNOCi1NamN3TmpJek1URTFNRE15V2pBdk1Rc3dDUVlEVlFRR0V3SlZTekVSTUE4R0ExVUVDZ3dJYldKbFpDQlVURk14Ci1EVEFMQmdOVkJBTU1CRU5CTURZd1dUQVRCZ2NxaGtqT1BRSUJCZ2dxaGtqT1BRTUJCd05DQUFTQTlxV29BVUhyCi1ubisza3h5TnJqUEprODJXRExpbVcyMVJONTF1eHBvYmFkdjhZZ0dFRFJkUCtPayt1UnFRU1VzQTZaWGZGM2lHCi1yMkdqZlEzd01ESDhvNEdKTUlHR01CMEdBMVVkRGdRV0JCU2pvdllhQy9tNkxpOVRwMFY5aVpSczkyNjdRekJYCi1CZ05WSFNNRVVEQk9nQlRYaDA2TUFWOVM0bDRsRzFUS09yS1JCaDRxbjZFenBERXdMekVMTUFrR0ExVUVCaE1DCi1WVXN4RVRBUEJnTlZCQW9NQ0cxaVpXUWdWRXhUTVEwd0N3WURWUVFEREFSRFFUQTBnZ0VCTUF3R0ExVWRFd1FGCi1NQU1CQWY4d0NnWUlLb1pJemowRUF3SURSd0F3UkFJZ2NqWk5GV0p0bERtb1BaYkF4cXNHY3pSWUswbGZQZ3U2Ci1nMUg3cHAwY2Urd0NJRGo5QlJaTTJPQjlFRjBlK01ES0dqeVpHZnZmckw2SXI0N3gvS3JNNkg4VAotLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQotLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCi1NSUlCMXpDQ0FYMmdBd0lCQWdJQkFUQUtCZ2dxaGtqT1BRUURBakF2TVFzd0NRWURWUVFHRXdKVlN6RVJNQThHCi1BMVVFQ2d3SWJXSmxaQ0JVVEZNeERUQUxCZ05WQkFNTUJFTkJNRFF3SGhjTk1UY3dOakl5TVRFMU1ETXlXaGNOCi1NamN3TmpJek1URTFNRE15V2pBdk1Rc3dDUVlEVlFRR0V3SlZTekVSTUE4R0ExVUVDZ3dJYldKbFpDQlVURk14Ci1EVEFMQmdOVkJBTU1CRU5CTURVd1dUQVRCZ2NxaGtqT1BRSUJCZ2dxaGtqT1BRTUJCd05DQUFRRWRUME9GZjVHCi1VY3JnWDJYbGxDeUp6UDk0Tlo0NjRHc2dCNnBzTkxzRGVMK2o3QVUrb0p5N1ZMdlcvbEhoM09EZ2wwOFo5YmhxCi1MRkJtTmpuSGJtOFFvNEdKTUlHR01CMEdBMVVkRGdRV0JCVFhoMDZNQVY5UzRsNGxHMVRLT3JLUkJoNHFuekJYCi1CZ05WSFNNRVVEQk9nQlFveDRGMU5zWnVubHNkdW9HdnpJZ1JTWWZCMzZFenBERXdMekVMTUFrR0ExVUVCaE1DCi1WVXN4RVRBUEJnTlZCQW9NQ0cxaVpXUWdWRXhUTVEwd0N3WURWUVFEREFSRFFUQXpnZ0VCTUF3R0ExVWRFd1FGCi1NQU1CQWY4d0NnWUlLb1pJemowRUF3SURTQUF3UlFJaEFJVysrenFEWmxMTFVrL2VtZVBvaGROT3A1Sk8zd1M5Ci1YdmtCSjZXdWE3R0JBaUFkeCtFS21kalZyd256clFsdFRnbm1TZkdNWGhLTllpZkszdUQ4M1czcGNRPT0KLS0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KLS0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQotTUlJQjFqQ0NBWDJnQXdJQkFnSUJBVEFLQmdncWhrak9QUVFEQWpBdk1Rc3dDUVlEVlFRR0V3SlZTekVSTUE4RwotQTFVRUNnd0liV0psWkNCVVRGTXhEVEFMQmdOVkJBTU1CRU5CTURNd0hoY05NVGN3TmpJeU1URTFNRE15V2hjTgotTWpjd05qSXpNVEUxTURNeVdqQXZNUXN3Q1FZRFZRUUdFd0pWU3pFUk1BOEdBMVVFQ2d3SWJXSmxaQ0JVVEZNeAotRFRBTEJnTlZCQU1NQkVOQk1EUXdXVEFUQmdjcWhrak9QUUlCQmdncWhrak9QUU1CQndOQ0FBUVVYRGdjVVZOVAotOWhvdmJaRTVITDZyak9iN0M1NXdFdVdLVGhWL0NjWjRyV3JYeDdWWEhZZEQvUjNhREE3SlN2WXBtMnNUb2s0aQotc2JsRHpoWk0vR0RObzRHSk1JR0dNQjBHQTFVZERnUVdCQlFveDRGMU5zWnVubHNkdW9HdnpJZ1JTWWZCM3pCWAotQmdOVkhTTUVVREJPZ0JRQXB6WmR0QmREM2RMeG91UXByL2FEaVZ0dGQ2RXpwREV3THpFTE1Ba0dBMVVFQmhNQwotVlVzeEVUQVBCZ05WQkFvTUNHMWlaV1FnVkV4VE1RMHdDd1lEVlFRRERBUkRRVEF5Z2dFQk1Bd0dBMVVkRXdRRgotTUFNQkFmOHdDZ1lJS29aSXpqMEVBd0lEUndBd1JBSWdBa2lOaHFGQVpYU1VXRURLOTFPWnZRR2RlWk90ZDZtQwotK1d2M2ZHazN0MjhDSUVLT3dpZGtVVFVhaVBkWjRlZm1BcitDRWVHemRxMjdvYjJTK25xcUhxZ1YKLS0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KLS0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQotTUlJQjJEQ0NBWDJnQXdJQkFnSUJBVEFLQmdncWhrak9QUVFEQWpBdk1Rc3dDUVlEVlFRR0V3SlZTekVSTUE4RwotQTFVRUNnd0liV0psWkNCVVRGTXhEVEFMQmdOVkJBTU1CRU5CTURJd0hoY05NVGN3TmpJeU1URTFNRE15V2hjTgotTWpjd05qSXpNVEUxTURNeVdqQXZNUXN3Q1FZRFZRUUdFd0pWU3pFUk1BOEdBMVVFQ2d3SWJXSmxaQ0JVVEZNeAotRFRBTEJnTlZCQU1NQkVOQk1ETXdXVEFUQmdjcWhrak9QUUlCQmdncWhrak9QUU1CQndOQ0FBUVJEWEROSWkxcAotZXJldWRocXdhMkxzbFhnc3huQjYzSHU1eTVsZysxV1BydUlZUHpEL0hvMEFQdmVWZHpGTFZqaTE5K2JFNCt0RgotUFlMMVNwc04xV2ZXbzRHSk1JR0dNQjBHQTFVZERnUVdCQlFBcHpaZHRCZEQzZEx4b3VRcHIvYURpVnR0ZHpCWAotQmdOVkhTTUVVREJPZ0JUNVJDZ1EwQWxaVFFiZkZCMis2K3cwWFJ2eWRhRXpwREV3THpFTE1Ba0dBMVVFQmhNQwotVlVzeEVUQVBCZ05WQkFvTUNHMWlaV1FnVkV4VE1RMHdDd1lEVlFRRERBUkRRVEF4Z2dFQk1Bd0dBMVVkRXdRRgotTUFNQkFmOHdDZ1lJS29aSXpqMEVBd0lEU1FBd1JnSWhBT25kKzdiQW9ma0hWYTRLRk5qdjNUQ2VndzFscmh1TQotOE9mOHdndnJURUdvQWlFQXNTOGlLTXBTZlhINEQwZWdnNGdMYW1FNmFrZGU5NjVyRHR5U1UrdmU5bGc9Ci0tLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCi0tLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KLU1JSUIxekNDQVgyZ0F3SUJBZ0lCQVRBS0JnZ3Foa2pPUFFRREFqQXZNUXN3Q1FZRFZRUUdFd0pWU3pFUk1BOEcKLUExVUVDZ3dJYldKbFpDQlVURk14RFRBTEJnTlZCQU1NQkVOQk1ERXdIaGNOTVRjd05qSXlNVEUxTURNeVdoY04KLU1qY3dOakl6TVRFMU1ETXlXakF2TVFzd0NRWURWUVFHRXdKVlN6RVJNQThHQTFVRUNnd0liV0psWkNCVVRGTXgKLURUQUxCZ05WQkFNTUJFTkJNREl3V1RBVEJnY3Foa2pPUFFJQkJnZ3Foa2pPUFFNQkJ3TkNBQVFXSHB2MWk2bGYKLXd2TlBPUDVrYTZTMG41NUV2em9hWUs2cGJUWFA2eU1PVy80WFpTUEt4NVpvcTRGTWUwY0t6R0lJRkwxcnpqMVYKLTJjellCK3F2TGh5aW80R0pNSUdHTUIwR0ExVWREZ1FXQkJUNVJDZ1EwQWxaVFFiZkZCMis2K3cwWFJ2eWRUQlgKLUJnTlZIU01FVURCT2dCU2gzdUhrWDVuajg2eUZFRndqc2NTV000MFArcUV6cERFd0x6RUxNQWtHQTFVRUJoTUMKLVZVc3hFVEFQQmdOVkJBb01DRzFpWldRZ1ZFeFRNUTB3Q3dZRFZRUUREQVJEUVRBd2dnRUJNQXdHQTFVZEV3UUYKLU1BTUJBZjh3Q2dZSUtvWkl6ajBFQXdJRFNBQXdSUUloQUk3dW5HVy9ncjl0T2MzaStkRjVOODE1c3JnaCtGclgKLW9qOUV0NzRFY1NwVEFpQnVidit2T0gwREUwZ21ZSTExSGVBSWd1dFdxcU1JQzcyZFpsd1RGL1ZpM2c9PQotLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQotLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCi1NSUlCM2pDQ0FZV2dBd0lCQWdJQkFUQUtCZ2dxaGtqT1BRUURBakF2TVFzd0NRWURWUVFHRXdKVlN6RVJNQThHCi1BMVVFQ2d3SWJXSmxaQ0JVVEZNeERUQUxCZ05WQkFNTUJFTkJNREF3SGhjTk1UY3dOakl5TVRFMU1ETXlXaGNOCi1NamN3TmpJek1URTFNRE15V2pBdk1Rc3dDUVlEVlFRR0V3SlZTekVSTUE4R0ExVUVDZ3dJYldKbFpDQlVURk14Ci1EVEFMQmdOVkJBTU1CRU5CTURFd1dUQVRCZ2NxaGtqT1BRSUJCZ2dxaGtqT1BRTUJCd05DQUFRem5uOXpISHdMCi1HTzhWUjRXOVY3dk1seENkb29qekVPaVg1WTZKdFB0Rk96ODY2dWVIWTZ6b04wL21KNkRucW5TWGlsSklVVWVXCi02ZUdmcW1rYTdueGtvNEdSTUlHT01CMEdBMVVkRGdRV0JCU2gzdUhrWDVuajg2eUZFRndqc2NTV000MFArakJmCi1CZ05WSFNNRVdEQldnQlFsRll2VTVXYm9JNGZjZFBvaVFzOC9mUEhacmFFenBERXdMekVMTUFrR0ExVUVCaE1DCi1WVXN4RVRBUEJnTlZCQW9NQ0cxaVpXUWdWRXhUTVEwd0N3WURWUVFEREFSRFFUQXdnZ2tBL0tDV2hjcVRvSEF3Ci1EQVlEVlIwVEJBVXdBd0VCL3pBS0JnZ3Foa2pPUFFRREFnTkhBREJFQWlCYXNidWluUCtwSlRVNG9EQ1ZEOHpRCi0xckpCRFNPS0lFeVd1ODQvRDZIajZ3SWdWTVBVb08wMWJQaHpsbEFhL2dXOFhrL2RhZXkwOVNCZ04zQVQ5cFdVCi1UREE9Ci0tLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCi0tLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KLU1JSUJwVENDQVV1Z0F3SUJBZ0lKQVB5Z2xvWEtrNkJ3TUFvR0NDcUdTTTQ5QkFNQ01DOHhDekFKQmdOVkJBWVQKLUFsVkxNUkV3RHdZRFZRUUtEQWh0WW1Wa0lGUk1VekVOTUFzR0ExVUVBd3dFUTBFd01EQWVGdzB4TnpBMk1qSXgKLU1UVXdNekphRncweU56QTJNak14TVRVd016SmFNQzh4Q3pBSkJnTlZCQVlUQWxWTE1SRXdEd1lEVlFRS0RBaHQKLVltVmtJRlJNVXpFTk1Bc0dBMVVFQXd3RVEwRXdNREJaTUJNR0J5cUdTTTQ5QWdFR0NDcUdTTTQ5QXdFSEEwSUEKLUJGVzQxL3FBd0FQcHkrVHhkYzdQS216WnNxOUNQaXVqS1U0dnBGMWVrWG5HeDJIUDQyMFFvYndCVlZXaGt6Um0KLUx3ZGJvSDJqNjVkY0NLalE3bXYvZHhLalVEQk9NQjBHQTFVZERnUVdCQlFsRll2VTVXYm9JNGZjZFBvaVFzOC8KLWZQSFpyVEFmQmdOVkhTTUVHREFXZ0JRbEZZdlU1V2JvSTRmY2RQb2lRczgvZlBIWnJUQU1CZ05WSFJNRUJUQUQKLUFRSC9NQW9HQ0NxR1NNNDlCQU1DQTBnQU1FVUNJUUM3aVJjVnp3TXlmVks1aW1pcko3TXFKUTA0ZXVINENMT3QKLUlaK1NOZmFFUkFJZ1NVME1XRkRvc1ZFSXBnOFlNcUlIZUY3TWc0WnlINitmR2F6SmdWTHR0VVk9Ci0tLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCmRpZmYgLS1naXQgYS90ZXN0cy9kYXRhX2ZpbGVzL2Rpci1tYXhwYXRoL2MxNi5wZW0gYi90ZXN0cy9kYXRhX2ZpbGVzL2Rpci1tYXhwYXRoL2MxNi5wZW0KZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDA0MWE4M2IuLjAwMDAwMDAKLS0tIGEvdGVzdHMvZGF0YV9maWxlcy9kaXItbWF4cGF0aC9jMTYucGVtCisrKyAvZGV2L251bGwKQEAgLTEsMjA0ICswLDAgQEAKLS0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQotTUlJQjJEQ0NBWDJnQXdJQkFnSUJBVEFLQmdncWhrak9QUVFEQWpBdk1Rc3dDUVlEVlFRR0V3SlZTekVSTUE4RwotQTFVRUNnd0liV0psWkNCVVRGTXhEVEFMQmdOVkJBTU1CRU5CTVRVd0hoY05NVGN3TmpJeU1URTFNRE16V2hjTgotTWpjd05qSXpNVEUxTURNeldqQXZNUXN3Q1FZRFZRUUdFd0pWU3pFUk1BOEdBMVVFQ2d3SWJXSmxaQ0JVVEZNeAotRFRBTEJnTlZCQU1NQkVOQk1UWXdXVEFUQmdjcWhrak9QUUlCQmdncWhrak9QUU1CQndOQ0FBUTdWc3A3Sm1ETgota2dQaC8rem1JUGtkN28weG90L1dQTUZuM3VBc0d0c1UzODVNRjBmbWhmRkxoUmJiSDloNEpqWUhqOHkwc3BVMwotYnVVWGhmdHZBWlZibzRHSk1JR0dNQjBHQTFVZERnUVdCQlJUdzNLMFBzeTN1LzYrM0tLU29hUXFKblB2UGpCWAotQmdOVkhTTUVVREJPZ0JSMW1YbHJkVzVyeDFWbnFNTW5VQlhvMFdXR1dxRXpwREV3THpFTE1Ba0dBMVVFQmhNQwotVlVzeEVUQVBCZ05WQkFvTUNHMWlaV1FnVkV4VE1RMHdDd1lEVlFRRERBUkRRVEUwZ2dFQk1Bd0dBMVVkRXdRRgotTUFNQkFmOHdDZ1lJS29aSXpqMEVBd0lEU1FBd1JnSWhBTUpuR2pFOXYzU2p1R2ZpMGpOQnlyd3lOZmhsVEhNaAotRmhQUWlkTnJEcFh3QWlFQXFZdE5pVjh0OVJyQWE5R0M2RldEdUpwdklpVTZGc0UrbEZxNnVJcS9KMkU9Ci0tLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCi0tLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KLU1JSUIxekNDQVgyZ0F3SUJBZ0lCQVRBS0JnZ3Foa2pPUFFRREFqQXZNUXN3Q1FZRFZRUUdFd0pWU3pFUk1BOEcKLUExVUVDZ3dJYldKbFpDQlVURk14RFRBTEJnTlZCQU1NQkVOQk1UUXdIaGNOTVRjd05qSXlNVEUxTURNeldoY04KLU1qY3dOakl6TVRFMU1ETXpXakF2TVFzd0NRWURWUVFHRXdKVlN6RVJNQThHQTFVRUNnd0liV0psWkNCVVRGTXgKLURUQUxCZ05WQkFNTUJFTkJNVFV3V1RBVEJnY3Foa2pPUFFJQkJnZ3Foa2pPUFFNQkJ3TkNBQVFsS1VpTW9Tc3MKLS9oc1Rhc2VkcWRCMkJDT0dKaFR0MGhnVUdlVW5XTloxc3ZPNHluMEdrRkhaMDgrK2ZsMk1LcWpwaitWWHEwSlMKLUZGeUdVT2dtZ2kzSG80R0pNSUdHTUIwR0ExVWREZ1FXQkJSMW1YbHJkVzVyeDFWbnFNTW5VQlhvMFdXR1dqQlgKLUJnTlZIU01FVURCT2dCUk5zSkIrK2NjU0JtYkNDS0J4aTRDalhST0JrNkV6cERFd0x6RUxNQWtHQTFVRUJoTUMKLVZVc3hFVEFQQmdOVkJBb01DRzFpWldRZ1ZFeFRNUTB3Q3dZRFZRUUREQVJEUVRFemdnRUJNQXdHQTFVZEV3UUYKLU1BTUJBZjh3Q2dZSUtvWkl6ajBFQXdJRFNBQXdSUUloQUtZT0lvK2ZkQ1FScXBINExOOHFVSzFhS3pLbVdHeFMKLWZHekVFa2cvMjliTUFpQWw5NWNtdWNvQ0RNcTJBYjhDb2MwZEVxeUo2K3JBUE1MQkNiR2F3eWlXNkE9PQotLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQotLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCi1NSUlCMXpDQ0FYMmdBd0lCQWdJQkFUQUtCZ2dxaGtqT1BRUURBakF2TVFzd0NRWURWUVFHRXdKVlN6RVJNQThHCi1BMVVFQ2d3SWJXSmxaQ0JVVEZNeERUQUxCZ05WQkFNTUJFTkJNVE13SGhjTk1UY3dOakl5TVRFMU1ETXpXaGNOCi1NamN3TmpJek1URTFNRE16V2pBdk1Rc3dDUVlEVlFRR0V3SlZTekVSTUE4R0ExVUVDZ3dJYldKbFpDQlVURk14Ci1EVEFMQmdOVkJBTU1CRU5CTVRRd1dUQVRCZ2NxaGtqT1BRSUJCZ2dxaGtqT1BRTUJCd05DQUFUUk1aTjBSSHpQCi1kb25ObVp1cTlYUGh6dlE1MlRhb2t4VDM5cXBRdGxGeXZVdUVHS3JMb052ZGNwQVJhQTByR3B1dDZSTEFRT1ZVCi1pTlZsSjNJcGo3ODlvNEdKTUlHR01CMEdBMVVkRGdRV0JCUk5zSkIrK2NjU0JtYkNDS0J4aTRDalhST0JrekJYCi1CZ05WSFNNRVVEQk9nQlRtVm5VU0YyTVl3d3MvbkNNdjdiMXdKVmtEbXFFenBERXdMekVMTUFrR0ExVUVCaE1DCi1WVXN4RVRBUEJnTlZCQW9NQ0cxaVpXUWdWRXhUTVEwd0N3WURWUVFEREFSRFFURXlnZ0VCTUF3R0ExVWRFd1FGCi1NQU1CQWY4d0NnWUlLb1pJemowRUF3SURTQUF3UlFJZ1ZmdUxwanAwOEFheEtXZjZjdVpVVUNSZDdDb2pTUzFJCi03MWh6ZVV5RlMrc0NJUUROSkk2UC9wQmJpSGdUYUdsQkFnZmNFZm14bWJZMG40eFpuZHR4SWtteVZBPT0KLS0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KLS0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQotTUlJQjF6Q0NBWDJnQXdJQkFnSUJBVEFLQmdncWhrak9QUVFEQWpBdk1Rc3dDUVlEVlFRR0V3SlZTekVSTUE4RwotQTFVRUNnd0liV0psWkNCVVRGTXhEVEFMQmdOVkJBTU1CRU5CTVRJd0hoY05NVGN3TmpJeU1URTFNRE16V2hjTgotTWpjd05qSXpNVEUxTURNeldqQXZNUXN3Q1FZRFZRUUdFd0pWU3pFUk1BOEdBMVVFQ2d3SWJXSmxaQ0JVVEZNeAotRFRBTEJnTlZCQU1NQkVOQk1UTXdXVEFUQmdjcWhrak9QUUlCQmdncWhrak9QUU1CQndOQ0FBVHJrekNKTHpuaAotbGhuc3YxUlhCOWtmZWFEK2NJcnVQUTBjSXRCREdwZHZEOHhiQlZ2UWNpNCtSRzJSVlVDU1dSaGtGWWpTc1VTTQotMFFITVFuQkZsaHcybzRHSk1JR0dNQjBHQTFVZERnUVdCQlRtVm5VU0YyTVl3d3MvbkNNdjdiMXdKVmtEbWpCWAotQmdOVkhTTUVVREJPZ0JUWlR0YmkrajBTbS9acy8rZ1RrV2RBU3BRemZxRXpwREV3THpFTE1Ba0dBMVVFQmhNQwotVlVzeEVUQVBCZ05WQkFvTUNHMWlaV1FnVkV4VE1RMHdDd1lEVlFRRERBUkRRVEV4Z2dFQk1Bd0dBMVVkRXdRRgotTUFNQkFmOHdDZ1lJS29aSXpqMEVBd0lEU0FBd1JRSWdXc20rckhKZ3dVRXlObThFS2JFZHM1eXVycHA1LzN5NQotUHN2WEpWRHF4b2dDSVFEVVAwSmNsM0E5MDdDRTJ0UFZYU2dENkxRNkNQdTE5bWl4ZW1QdzYweWlqQT09Ci0tLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCi0tLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KLU1JSUIxakNDQVgyZ0F3SUJBZ0lCQVRBS0JnZ3Foa2pPUFFRREFqQXZNUXN3Q1FZRFZRUUdFd0pWU3pFUk1BOEcKLUExVUVDZ3dJYldKbFpDQlVURk14RFRBTEJnTlZCQU1NQkVOQk1URXdIaGNOTVRjd05qSXlNVEUxTURNeldoY04KLU1qY3dOakl6TVRFMU1ETXpXakF2TVFzd0NRWURWUVFHRXdKVlN6RVJNQThHQTFVRUNnd0liV0psWkNCVVRGTXgKLURUQUxCZ05WQkFNTUJFTkJNVEl3V1RBVEJnY3Foa2pPUFFJQkJnZ3Foa2pPUFFNQkJ3TkNBQVRERTlMUGxMUGMKLWdaM2IwQmNoUi9Ba2hORVA5SEFhdndZYWRKSXl6b1BvNWVkQ1ZuYm9RSDc4NmpzWndaTlpvQzBnSERBaENtR2MKLUlmUmVuSVNBb1Z1UG80R0pNSUdHTUIwR0ExVWREZ1FXQkJUWlR0YmkrajBTbS9acy8rZ1RrV2RBU3BRemZqQlgKLUJnTlZIU01FVURCT2dCU09TdDZlUHlNUlQ2UEdNYUlpN0ZxTlg5TUt0S0V6cERFd0x6RUxNQWtHQTFVRUJoTUMKLVZVc3hFVEFQQmdOVkJBb01DRzFpWldRZ1ZFeFRNUTB3Q3dZRFZRUUREQVJEUVRFd2dnRUJNQXdHQTFVZEV3UUYKLU1BTUJBZjh3Q2dZSUtvWkl6ajBFQXdJRFJ3QXdSQUlnWVlGNUFuUlY3ZWgyaExENUR6Ly9wY2VNVEt6OUxzNDYKLUU2RHh2YmZESGlrQ0lGdHRsR3JPQ1pWeVM0b2NzanVLSUVMVlVYNXFmeWdJMHNuNGtVM3FDVHMyCi0tLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCi0tLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KLU1JSUIxakNDQVgyZ0F3SUJBZ0lCQVRBS0JnZ3Foa2pPUFFRREFqQXZNUXN3Q1FZRFZRUUdFd0pWU3pFUk1BOEcKLUExVUVDZ3dJYldKbFpDQlVURk14RFRBTEJnTlZCQU1NQkVOQk1UQXdIaGNOTVRjd05qSXlNVEUxTURNeldoY04KLU1qY3dOakl6TVRFMU1ETXpXakF2TVFzd0NRWURWUVFHRXdKVlN6RVJNQThHQTFVRUNnd0liV0psWkNCVVRGTXgKLURUQUxCZ05WQkFNTUJFTkJNVEV3V1RBVEJnY3Foa2pPUFFJQkJnZ3Foa2pPUFFNQkJ3TkNBQVRad1IrV0s2TkIKLUYvN3JpRmRONjNjOGhqWWRkWlJSNGxyelZOUHdpQlF4bm54d3BQeXJEOUE2YVBQbUxjNlNxR09KVzRaR1ZDY28KLUlCemU5UkpWZWlCOW80R0pNSUdHTUIwR0ExVWREZ1FXQkJTT1N0NmVQeU1SVDZQR01hSWk3RnFOWDlNS3REQlgKLUJnTlZIU01FVURCT2dCUXR4WlNMSkFrRXorMlJLTVFleE02RXRzZmdjcUV6cERFd0x6RUxNQWtHQTFVRUJoTUMKLVZVc3hFVEFQQmdOVkJBb01DRzFpWldRZ1ZFeFRNUTB3Q3dZRFZRUUREQVJEUVRBNWdnRUJNQXdHQTFVZEV3UUYKLU1BTUJBZjh3Q2dZSUtvWkl6ajBFQXdJRFJ3QXdSQUlnTi8vTnFNMEZya3JNam14b2VDWTlEZ3hrSDJSNnNRNGQKLU5ndHdDWkFJcUVJQ0lCczR2dXBhVmN1dm5pOXRsdGJQMjZ3aTdjMEZSK2JsWnVvNURQSUEzU1ZlCi0tLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCi0tLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KLU1JSUIxekNDQVgyZ0F3SUJBZ0lCQVRBS0JnZ3Foa2pPUFFRREFqQXZNUXN3Q1FZRFZRUUdFd0pWU3pFUk1BOEcKLUExVUVDZ3dJYldKbFpDQlVURk14RFRBTEJnTlZCQU1NQkVOQk1Ea3dIaGNOTVRjd05qSXlNVEUxTURNeldoY04KLU1qY3dOakl6TVRFMU1ETXpXakF2TVFzd0NRWURWUVFHRXdKVlN6RVJNQThHQTFVRUNnd0liV0psWkNCVVRGTXgKLURUQUxCZ05WQkFNTUJFTkJNVEF3V1RBVEJnY3Foa2pPUFFJQkJnZ3Foa2pPUFFNQkJ3TkNBQVI2amxHS2JKZDUKLWhpRHhONzg5Z2tPY3dweUhJOXdSd0NyQURBT3dPa01lUEJQUmx3R2RtN213N1ovRUFtdTI2elJtL2hjeXJzNE0KLXFrMkxhYkRqUEk5WG80R0pNSUdHTUIwR0ExVWREZ1FXQkJRdHhaU0xKQWtFeisyUktNUWV4TTZFdHNmZ2NqQlgKLUJnTlZIU01FVURCT2dCVDZneVhIelBJUFljMVZyMWFHaUxMZU1oNEhwcUV6cERFd0x6RUxNQWtHQTFVRUJoTUMKLVZVc3hFVEFQQmdOVkJBb01DRzFpWldRZ1ZFeFRNUTB3Q3dZRFZRUUREQVJEUVRBNGdnRUJNQXdHQTFVZEV3UUYKLU1BTUJBZjh3Q2dZSUtvWkl6ajBFQXdJRFNBQXdSUUlnUDdTOHZGc3RmVUJkTmU2eW01R1lHNVErYUJWRUtxUnMKLWZWVzdITlVrdFNZQ0lRRG82SnVhNm8vREpicnBxNHFZV3E1Z3Y0eUd5elBUTiszSWFLckVJQ2RhYXc9PQotLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQotLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCi1NSUlCMWpDQ0FYMmdBd0lCQWdJQkFUQUtCZ2dxaGtqT1BRUURBakF2TVFzd0NRWURWUVFHRXdKVlN6RVJNQThHCi1BMVVFQ2d3SWJXSmxaQ0JVVEZNeERUQUxCZ05WQkFNTUJFTkJNRGd3SGhjTk1UY3dOakl5TVRFMU1ETXpXaGNOCi1NamN3TmpJek1URTFNRE16V2pBdk1Rc3dDUVlEVlFRR0V3SlZTekVSTUE4R0ExVUVDZ3dJYldKbFpDQlVURk14Ci1EVEFMQmdOVkJBTU1CRU5CTURrd1dUQVRCZ2NxaGtqT1BRSUJCZ2dxaGtqT1BRTUJCd05DQUFSN1pCMTYrdDZFCi1zZmFoR3lLVUdKVzVtZXprempkYVl2YzRsYkphS05Sd0ZSZmMzRi9mbU5PU3NVRlNnL0YwTit2VUUrZG9LaVBDCi04d1J3THp2bTRzKzVvNEdKTUlHR01CMEdBMVVkRGdRV0JCVDZneVhIelBJUFljMVZyMWFHaUxMZU1oNEhwakJYCi1CZ05WSFNNRVVEQk9nQlM0MG1MdDkzVThTaDhaR2lEVkFoUlNpQlBjWHFFenBERXdMekVMTUFrR0ExVUVCaE1DCi1WVXN4RVRBUEJnTlZCQW9NQ0cxaVpXUWdWRXhUTVEwd0N3WURWUVFEREFSRFFUQTNnZ0VCTUF3R0ExVWRFd1FGCi1NQU1CQWY4d0NnWUlLb1pJemowRUF3SURSd0F3UkFJZ080ZWwxWlBobElsaS9xTlIyU0lFaXV2czVNbXk4NjhpCi1OMlJ2NVgvVnhJRUNJQS84clVBTFF4VzM4WFNkQlZYM2Uvanp1N2p1NDduMVl3RXFEOUs5V2RWdgotLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQotLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCi1NSUlCMkRDQ0FYMmdBd0lCQWdJQkFUQUtCZ2dxaGtqT1BRUURBakF2TVFzd0NRWURWUVFHRXdKVlN6RVJNQThHCi1BMVVFQ2d3SWJXSmxaQ0JVVEZNeERUQUxCZ05WQkFNTUJFTkJNRGN3SGhjTk1UY3dOakl5TVRFMU1ETXlXaGNOCi1NamN3TmpJek1URTFNRE15V2pBdk1Rc3dDUVlEVlFRR0V3SlZTekVSTUE4R0ExVUVDZ3dJYldKbFpDQlVURk14Ci1EVEFMQmdOVkJBTU1CRU5CTURnd1dUQVRCZ2NxaGtqT1BRSUJCZ2dxaGtqT1BRTUJCd05DQUFScFFlUS9ZR1FqCi1ubDdTem82V1N0SjF1N3h1blRMNWpCa1hIOGFBVlNtMHFpWDRBRC83WVB4YTVFbkd6WmRMVG4yNXZRVm5mUUFHCi1wTXg4UDFsWWlHWUNvNEdKTUlHR01CMEdBMVVkRGdRV0JCUzQwbUx0OTNVOFNoOFpHaURWQWhSU2lCUGNYakJYCi1CZ05WSFNNRVVEQk9nQlJFcTVKM3RvSlB4WjNPK3NzSjV2a2tVMFJKRTZFenBERXdMekVMTUFrR0ExVUVCaE1DCi1WVXN4RVRBUEJnTlZCQW9NQ0cxaVpXUWdWRXhUTVEwd0N3WURWUVFEREFSRFFUQTJnZ0VCTUF3R0ExVWRFd1FGCi1NQU1CQWY4d0NnWUlLb1pJemowRUF3SURTUUF3UmdJaEFOd0dmK0Y0YStrbVhXejhValNwUmthVG9UVjZFRld3Ci0vVGp6ajB0UWhEb0FBaUVBMTlSeGVXT1ZCQnBNNkxPSGc2djVMZjU0WU4xc25rTGYrc0VYeVpDdVdRUT0KLS0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KLS0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQotTUlJQjJEQ0NBWDJnQXdJQkFnSUJBVEFLQmdncWhrak9QUVFEQWpBdk1Rc3dDUVlEVlFRR0V3SlZTekVSTUE4RwotQTFVRUNnd0liV0psWkNCVVRGTXhEVEFMQmdOVkJBTU1CRU5CTURZd0hoY05NVGN3TmpJeU1URTFNRE15V2hjTgotTWpjd05qSXpNVEUxTURNeVdqQXZNUXN3Q1FZRFZRUUdFd0pWU3pFUk1BOEdBMVVFQ2d3SWJXSmxaQ0JVVEZNeAotRFRBTEJnTlZCQU1NQkVOQk1EY3dXVEFUQmdjcWhrak9QUUlCQmdncWhrak9QUU1CQndOQ0FBU05PajRkNE1FQQotN3AvM21paWpxRzRUb0U0b3BLUEFtKzNCVElHckpUWVQxNCsrVFNpVUlDbDBBU1hqK3hlVWNMTUlhWFROMDQycwotTHNIeHBTaHpRYUwwbzRHSk1JR0dNQjBHQTFVZERnUVdCQlJFcTVKM3RvSlB4WjNPK3NzSjV2a2tVMFJKRXpCWAotQmdOVkhTTUVVREJPZ0JTam92WWFDL202TGk5VHAwVjlpWlJzOTI2N1E2RXpwREV3THpFTE1Ba0dBMVVFQmhNQwotVlVzeEVUQVBCZ05WQkFvTUNHMWlaV1FnVkV4VE1RMHdDd1lEVlFRRERBUkRRVEExZ2dFQk1Bd0dBMVVkRXdRRgotTUFNQkFmOHdDZ1lJS29aSXpqMEVBd0lEU1FBd1JnSWhBS0djZitjNDQyYy9YaXd1YmJhaVF2c29aN0VvVnh1TQotb0ttaWEwZ1B5Qk5rQWlFQTgzYXNqSjVGRFhRdUx5WnBjenZpWHJibXFnQ1BPZllhZHR2a2MwY3hNaXM9Ci0tLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCi0tLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KLU1JSUIxakNDQVgyZ0F3SUJBZ0lCQVRBS0JnZ3Foa2pPUFFRREFqQXZNUXN3Q1FZRFZRUUdFd0pWU3pFUk1BOEcKLUExVUVDZ3dJYldKbFpDQlVURk14RFRBTEJnTlZCQU1NQkVOQk1EVXdIaGNOTVRjd05qSXlNVEUxTURNeVdoY04KLU1qY3dOakl6TVRFMU1ETXlXakF2TVFzd0NRWURWUVFHRXdKVlN6RVJNQThHQTFVRUNnd0liV0psWkNCVVRGTXgKLURUQUxCZ05WQkFNTUJFTkJNRFl3V1RBVEJnY3Foa2pPUFFJQkJnZ3Foa2pPUFFNQkJ3TkNBQVNBOXFXb0FVSHIKLW5uKzNreHlOcmpQSms4MldETGltVzIxUk41MXV4cG9iYWR2OFlnR0VEUmRQK09rK3VScVFTVXNBNlpYZkYzaUcKLXIyR2pmUTN3TURIOG80R0pNSUdHTUIwR0ExVWREZ1FXQkJTam92WWFDL202TGk5VHAwVjlpWlJzOTI2N1F6QlgKLUJnTlZIU01FVURCT2dCVFhoMDZNQVY5UzRsNGxHMVRLT3JLUkJoNHFuNkV6cERFd0x6RUxNQWtHQTFVRUJoTUMKLVZVc3hFVEFQQmdOVkJBb01DRzFpWldRZ1ZFeFRNUTB3Q3dZRFZRUUREQVJEUVRBMGdnRUJNQXdHQTFVZEV3UUYKLU1BTUJBZjh3Q2dZSUtvWkl6ajBFQXdJRFJ3QXdSQUlnY2paTkZXSnRsRG1vUFpiQXhxc0djelJZSzBsZlBndTYKLWcxSDdwcDBjZSt3Q0lEajlCUlpNMk9COUVGMGUrTURLR2p5WkdmdmZyTDZJcjQ3eC9Lck02SDhUCi0tLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCi0tLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KLU1JSUIxekNDQVgyZ0F3SUJBZ0lCQVRBS0JnZ3Foa2pPUFFRREFqQXZNUXN3Q1FZRFZRUUdFd0pWU3pFUk1BOEcKLUExVUVDZ3dJYldKbFpDQlVURk14RFRBTEJnTlZCQU1NQkVOQk1EUXdIaGNOTVRjd05qSXlNVEUxTURNeVdoY04KLU1qY3dOakl6TVRFMU1ETXlXakF2TVFzd0NRWURWUVFHRXdKVlN6RVJNQThHQTFVRUNnd0liV0psWkNCVVRGTXgKLURUQUxCZ05WQkFNTUJFTkJNRFV3V1RBVEJnY3Foa2pPUFFJQkJnZ3Foa2pPUFFNQkJ3TkNBQVFFZFQwT0ZmNUcKLVVjcmdYMlhsbEN5SnpQOTROWjQ2NEdzZ0I2cHNOTHNEZUwrajdBVStvSnk3Vkx2Vy9sSGgzT0RnbDA4WjliaHEKLUxGQm1Oam5IYm04UW80R0pNSUdHTUIwR0ExVWREZ1FXQkJUWGgwNk1BVjlTNGw0bEcxVEtPcktSQmg0cW56QlgKLUJnTlZIU01FVURCT2dCUW94NEYxTnNadW5sc2R1b0d2eklnUlNZZkIzNkV6cERFd0x6RUxNQWtHQTFVRUJoTUMKLVZVc3hFVEFQQmdOVkJBb01DRzFpWldRZ1ZFeFRNUTB3Q3dZRFZRUUREQVJEUVRBemdnRUJNQXdHQTFVZEV3UUYKLU1BTUJBZjh3Q2dZSUtvWkl6ajBFQXdJRFNBQXdSUUloQUlXKyt6cURabExMVWsvZW1lUG9oZE5PcDVKTzN3UzkKLVh2a0JKNld1YTdHQkFpQWR4K0VLbWRqVnJ3bnpyUWx0VGdubVNmR01YaEtOWWlmSzN1RDgzVzNwY1E9PQotLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQotLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCi1NSUlCMWpDQ0FYMmdBd0lCQWdJQkFUQUtCZ2dxaGtqT1BRUURBakF2TVFzd0NRWURWUVFHRXdKVlN6RVJNQThHCi1BMVVFQ2d3SWJXSmxaQ0JVVEZNeERUQUxCZ05WQkFNTUJFTkJNRE13SGhjTk1UY3dOakl5TVRFMU1ETXlXaGNOCi1NamN3TmpJek1URTFNRE15V2pBdk1Rc3dDUVlEVlFRR0V3SlZTekVSTUE4R0ExVUVDZ3dJYldKbFpDQlVURk14Ci1EVEFMQmdOVkJBTU1CRU5CTURRd1dUQVRCZ2NxaGtqT1BRSUJCZ2dxaGtqT1BRTUJCd05DQUFRVVhEZ2NVVk5UCi05aG92YlpFNUhMNnJqT2I3QzU1d0V1V0tUaFYvQ2NaNHJXclh4N1ZYSFlkRC9SM2FEQTdKU3ZZcG0yc1RvazRpCi1zYmxEemhaTS9HRE5vNEdKTUlHR01CMEdBMVVkRGdRV0JCUW94NEYxTnNadW5sc2R1b0d2eklnUlNZZkIzekJYCi1CZ05WSFNNRVVEQk9nQlFBcHpaZHRCZEQzZEx4b3VRcHIvYURpVnR0ZDZFenBERXdMekVMTUFrR0ExVUVCaE1DCi1WVXN4RVRBUEJnTlZCQW9NQ0cxaVpXUWdWRXhUTVEwd0N3WURWUVFEREFSRFFUQXlnZ0VCTUF3R0ExVWRFd1FGCi1NQU1CQWY4d0NnWUlLb1pJemowRUF3SURSd0F3UkFJZ0FraU5ocUZBWlhTVVdFREs5MU9adlFHZGVaT3RkNm1DCi0rV3YzZkdrM3QyOENJRUtPd2lka1VUVWFpUGRaNGVmbUFyK0NFZUd6ZHEyN29iMlMrbnFxSHFnVgotLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQotLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCi1NSUlCMkRDQ0FYMmdBd0lCQWdJQkFUQUtCZ2dxaGtqT1BRUURBakF2TVFzd0NRWURWUVFHRXdKVlN6RVJNQThHCi1BMVVFQ2d3SWJXSmxaQ0JVVEZNeERUQUxCZ05WQkFNTUJFTkJNREl3SGhjTk1UY3dOakl5TVRFMU1ETXlXaGNOCi1NamN3TmpJek1URTFNRE15V2pBdk1Rc3dDUVlEVlFRR0V3SlZTekVSTUE4R0ExVUVDZ3dJYldKbFpDQlVURk14Ci1EVEFMQmdOVkJBTU1CRU5CTURNd1dUQVRCZ2NxaGtqT1BRSUJCZ2dxaGtqT1BRTUJCd05DQUFRUkRYRE5JaTFwCi1lcmV1ZGhxd2EyTHNsWGdzeG5CNjNIdTV5NWxnKzFXUHJ1SVlQekQvSG8wQVB2ZVZkekZMVmppMTkrYkU0K3RGCi1QWUwxU3BzTjFXZldvNEdKTUlHR01CMEdBMVVkRGdRV0JCUUFwelpkdEJkRDNkTHhvdVFwci9hRGlWdHRkekJYCi1CZ05WSFNNRVVEQk9nQlQ1UkNnUTBBbFpUUWJmRkIyKzYrdzBYUnZ5ZGFFenBERXdMekVMTUFrR0ExVUVCaE1DCi1WVXN4RVRBUEJnTlZCQW9NQ0cxaVpXUWdWRXhUTVEwd0N3WURWUVFEREFSRFFUQXhnZ0VCTUF3R0ExVWRFd1FGCi1NQU1CQWY4d0NnWUlLb1pJemowRUF3SURTUUF3UmdJaEFPbmQrN2JBb2ZrSFZhNEtGTmp2M1RDZWd3MWxyaHVNCi04T2Y4d2d2clRFR29BaUVBc1M4aUtNcFNmWEg0RDBlZ2c0Z0xhbUU2YWtkZTk2NXJEdHlTVSt2ZTlsZz0KLS0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KLS0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQotTUlJQjF6Q0NBWDJnQXdJQkFnSUJBVEFLQmdncWhrak9QUVFEQWpBdk1Rc3dDUVlEVlFRR0V3SlZTekVSTUE4RwotQTFVRUNnd0liV0psWkNCVVRGTXhEVEFMQmdOVkJBTU1CRU5CTURFd0hoY05NVGN3TmpJeU1URTFNRE15V2hjTgotTWpjd05qSXpNVEUxTURNeVdqQXZNUXN3Q1FZRFZRUUdFd0pWU3pFUk1BOEdBMVVFQ2d3SWJXSmxaQ0JVVEZNeAotRFRBTEJnTlZCQU1NQkVOQk1ESXdXVEFUQmdjcWhrak9QUUlCQmdncWhrak9QUU1CQndOQ0FBUVdIcHYxaTZsZgotd3ZOUE9QNWthNlMwbjU1RXZ6b2FZSzZwYlRYUDZ5TU9XLzRYWlNQS3g1Wm9xNEZNZTBjS3pHSUlGTDFyemoxVgotMmN6WUIrcXZMaHlpbzRHSk1JR0dNQjBHQTFVZERnUVdCQlQ1UkNnUTBBbFpUUWJmRkIyKzYrdzBYUnZ5ZFRCWAotQmdOVkhTTUVVREJPZ0JTaDN1SGtYNW5qODZ5RkVGd2pzY1NXTTQwUCtxRXpwREV3THpFTE1Ba0dBMVVFQmhNQwotVlVzeEVUQVBCZ05WQkFvTUNHMWlaV1FnVkV4VE1RMHdDd1lEVlFRRERBUkRRVEF3Z2dFQk1Bd0dBMVVkRXdRRgotTUFNQkFmOHdDZ1lJS29aSXpqMEVBd0lEU0FBd1JRSWhBSTd1bkdXL2dyOXRPYzNpK2RGNU44MTVzcmdoK0ZyWAotb2o5RXQ3NEVjU3BUQWlCdWJ2K3ZPSDBERTBnbVlJMTFIZUFJZ3V0V3FxTUlDNzJkWmx3VEYvVmkzZz09Ci0tLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCi0tLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KLU1JSUIzakNDQVlXZ0F3SUJBZ0lCQVRBS0JnZ3Foa2pPUFFRREFqQXZNUXN3Q1FZRFZRUUdFd0pWU3pFUk1BOEcKLUExVUVDZ3dJYldKbFpDQlVURk14RFRBTEJnTlZCQU1NQkVOQk1EQXdIaGNOTVRjd05qSXlNVEUxTURNeVdoY04KLU1qY3dOakl6TVRFMU1ETXlXakF2TVFzd0NRWURWUVFHRXdKVlN6RVJNQThHQTFVRUNnd0liV0psWkNCVVRGTXgKLURUQUxCZ05WQkFNTUJFTkJNREV3V1RBVEJnY3Foa2pPUFFJQkJnZ3Foa2pPUFFNQkJ3TkNBQVF6bm45ekhId0wKLUdPOFZSNFc5Vjd2TWx4Q2Rvb2p6RU9pWDVZNkp0UHRGT3o4NjZ1ZUhZNnpvTjAvbUo2RG5xblNYaWxKSVVVZVcKLTZlR2ZxbWthN254a280R1JNSUdPTUIwR0ExVWREZ1FXQkJTaDN1SGtYNW5qODZ5RkVGd2pzY1NXTTQwUCtqQmYKLUJnTlZIU01FV0RCV2dCUWxGWXZVNVdib0k0ZmNkUG9pUXM4L2ZQSFpyYUV6cERFd0x6RUxNQWtHQTFVRUJoTUMKLVZVc3hFVEFQQmdOVkJBb01DRzFpWldRZ1ZFeFRNUTB3Q3dZRFZRUUREQVJEUVRBd2dna0EvS0NXaGNxVG9IQXcKLURBWURWUjBUQkFVd0F3RUIvekFLQmdncWhrak9QUVFEQWdOSEFEQkVBaUJhc2J1aW5QK3BKVFU0b0RDVkQ4elEKLTFySkJEU09LSUV5V3U4NC9ENkhqNndJZ1ZNUFVvTzAxYlBoemxsQWEvZ1c4WGsvZGFleTA5U0JnTjNBVDlwV1UKLVREQT0KLS0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KLS0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQotTUlJQnBUQ0NBVXVnQXdJQkFnSUpBUHlnbG9YS2s2QndNQW9HQ0NxR1NNNDlCQU1DTUM4eEN6QUpCZ05WQkFZVAotQWxWTE1SRXdEd1lEVlFRS0RBaHRZbVZrSUZSTVV6RU5NQXNHQTFVRUF3d0VRMEV3TURBZUZ3MHhOekEyTWpJeAotTVRVd016SmFGdzB5TnpBMk1qTXhNVFV3TXpKYU1DOHhDekFKQmdOVkJBWVRBbFZMTVJFd0R3WURWUVFLREFodAotWW1Wa0lGUk1VekVOTUFzR0ExVUVBd3dFUTBFd01EQlpNQk1HQnlxR1NNNDlBZ0VHQ0NxR1NNNDlBd0VIQTBJQQotQkZXNDEvcUF3QVBweStUeGRjN1BLbXpac3E5Q1BpdWpLVTR2cEYxZWtYbkd4MkhQNDIwUW9id0JWVldoa3pSbQotTHdkYm9IMmo2NWRjQ0tqUTdtdi9keEtqVURCT01CMEdBMVVkRGdRV0JCUWxGWXZVNVdib0k0ZmNkUG9pUXM4LwotZlBIWnJUQWZCZ05WSFNNRUdEQVdnQlFsRll2VTVXYm9JNGZjZFBvaVFzOC9mUEhaclRBTUJnTlZIUk1FQlRBRAotQVFIL01Bb0dDQ3FHU000OUJBTUNBMGdBTUVVQ0lRQzdpUmNWendNeWZWSzVpbWlySjdNcUpRMDRldUg0Q0xPdAotSVorU05mYUVSQUlnU1UwTVdGRG9zVkVJcGc4WU1xSUhlRjdNZzRaeUg2K2ZHYXpKZ1ZMdHRVWT0KLS0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KZGlmZiAtLWdpdCBhL3Rlc3RzL2RhdGFfZmlsZXMvZGlyLW1heHBhdGgvYzE3LnBlbSBiL3Rlc3RzL2RhdGFfZmlsZXMvZGlyLW1heHBhdGgvYzE3LnBlbQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNWJkYmFmZC4uMDAwMDAwMAotLS0gYS90ZXN0cy9kYXRhX2ZpbGVzL2Rpci1tYXhwYXRoL2MxNy5wZW0KKysrIC9kZXYvbnVsbApAQCAtMSwyMTYgKzAsMCBAQAotLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCi1NSUlCMXpDQ0FYMmdBd0lCQWdJQkFUQUtCZ2dxaGtqT1BRUURBakF2TVFzd0NRWURWUVFHRXdKVlN6RVJNQThHCi1BMVVFQ2d3SWJXSmxaQ0JVVEZNeERUQUxCZ05WQkFNTUJFTkJNVFl3SGhjTk1UY3dOakl5TVRFMU1ETXpXaGNOCi1NamN3TmpJek1URTFNRE16V2pBdk1Rc3dDUVlEVlFRR0V3SlZTekVSTUE4R0ExVUVDZ3dJYldKbFpDQlVURk14Ci1EVEFMQmdOVkJBTU1CRU5CTVRjd1dUQVRCZ2NxaGtqT1BRSUJCZ2dxaGtqT1BRTUJCd05DQUFScklTcTJ6TzltCi1EMjlZQ0xIQjU2RmRVL1JJTnRSaGZlTHRNK3U1bzNIYUFub3B5MFM5OFJ6dUVHRUxqcHpyOFpJNmtrTU1ac2o4Ci1uRlpRRjhIZnVFMGdvNEdKTUlHR01CMEdBMVVkRGdRV0JCU25qV3ZwV3haY0ZuZlEyS0d0Q2cvdTZmVC9EekJYCi1CZ05WSFNNRVVEQk9nQlJUdzNLMFBzeTN1LzYrM0tLU29hUXFKblB2UHFFenBERXdMekVMTUFrR0ExVUVCaE1DCi1WVXN4RVRBUEJnTlZCQW9NQ0cxaVpXUWdWRXhUTVEwd0N3WURWUVFEREFSRFFURTFnZ0VCTUF3R0ExVWRFd1FGCi1NQU1CQWY4d0NnWUlLb1pJemowRUF3SURTQUF3UlFJZ0RnWGpvYzZGZk1GNVcwTnppVjZ2eDJCT1BOV2F2MDFaCi15bkVQNGg5VUxuVUNJUUMxclU0c0VJZDNVZGp6VEtocFNHVEt0YU91UEcrYjBZZEVNUGltSTRqbVZ3PT0KLS0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KLS0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQotTUlJQjJEQ0NBWDJnQXdJQkFnSUJBVEFLQmdncWhrak9QUVFEQWpBdk1Rc3dDUVlEVlFRR0V3SlZTekVSTUE4RwotQTFVRUNnd0liV0psWkNCVVRGTXhEVEFMQmdOVkJBTU1CRU5CTVRVd0hoY05NVGN3TmpJeU1URTFNRE16V2hjTgotTWpjd05qSXpNVEUxTURNeldqQXZNUXN3Q1FZRFZRUUdFd0pWU3pFUk1BOEdBMVVFQ2d3SWJXSmxaQ0JVVEZNeAotRFRBTEJnTlZCQU1NQkVOQk1UWXdXVEFUQmdjcWhrak9QUUlCQmdncWhrak9QUU1CQndOQ0FBUTdWc3A3Sm1ETgota2dQaC8rem1JUGtkN28weG90L1dQTUZuM3VBc0d0c1UzODVNRjBmbWhmRkxoUmJiSDloNEpqWUhqOHkwc3BVMwotYnVVWGhmdHZBWlZibzRHSk1JR0dNQjBHQTFVZERnUVdCQlJUdzNLMFBzeTN1LzYrM0tLU29hUXFKblB2UGpCWAotQmdOVkhTTUVVREJPZ0JSMW1YbHJkVzVyeDFWbnFNTW5VQlhvMFdXR1dxRXpwREV3THpFTE1Ba0dBMVVFQmhNQwotVlVzeEVUQVBCZ05WQkFvTUNHMWlaV1FnVkV4VE1RMHdDd1lEVlFRRERBUkRRVEUwZ2dFQk1Bd0dBMVVkRXdRRgotTUFNQkFmOHdDZ1lJS29aSXpqMEVBd0lEU1FBd1JnSWhBTUpuR2pFOXYzU2p1R2ZpMGpOQnlyd3lOZmhsVEhNaAotRmhQUWlkTnJEcFh3QWlFQXFZdE5pVjh0OVJyQWE5R0M2RldEdUpwdklpVTZGc0UrbEZxNnVJcS9KMkU9Ci0tLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCi0tLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KLU1JSUIxekNDQVgyZ0F3SUJBZ0lCQVRBS0JnZ3Foa2pPUFFRREFqQXZNUXN3Q1FZRFZRUUdFd0pWU3pFUk1BOEcKLUExVUVDZ3dJYldKbFpDQlVURk14RFRBTEJnTlZCQU1NQkVOQk1UUXdIaGNOTVRjd05qSXlNVEUxTURNeldoY04KLU1qY3dOakl6TVRFMU1ETXpXakF2TVFzd0NRWURWUVFHRXdKVlN6RVJNQThHQTFVRUNnd0liV0psWkNCVVRGTXgKLURUQUxCZ05WQkFNTUJFTkJNVFV3V1RBVEJnY3Foa2pPUFFJQkJnZ3Foa2pPUFFNQkJ3TkNBQVFsS1VpTW9Tc3MKLS9oc1Rhc2VkcWRCMkJDT0dKaFR0MGhnVUdlVW5XTloxc3ZPNHluMEdrRkhaMDgrK2ZsMk1LcWpwaitWWHEwSlMKLUZGeUdVT2dtZ2kzSG80R0pNSUdHTUIwR0ExVWREZ1FXQkJSMW1YbHJkVzVyeDFWbnFNTW5VQlhvMFdXR1dqQlgKLUJnTlZIU01FVURCT2dCUk5zSkIrK2NjU0JtYkNDS0J4aTRDalhST0JrNkV6cERFd0x6RUxNQWtHQTFVRUJoTUMKLVZVc3hFVEFQQmdOVkJBb01DRzFpWldRZ1ZFeFRNUTB3Q3dZRFZRUUREQVJEUVRFemdnRUJNQXdHQTFVZEV3UUYKLU1BTUJBZjh3Q2dZSUtvWkl6ajBFQXdJRFNBQXdSUUloQUtZT0lvK2ZkQ1FScXBINExOOHFVSzFhS3pLbVdHeFMKLWZHekVFa2cvMjliTUFpQWw5NWNtdWNvQ0RNcTJBYjhDb2MwZEVxeUo2K3JBUE1MQkNiR2F3eWlXNkE9PQotLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQotLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCi1NSUlCMXpDQ0FYMmdBd0lCQWdJQkFUQUtCZ2dxaGtqT1BRUURBakF2TVFzd0NRWURWUVFHRXdKVlN6RVJNQThHCi1BMVVFQ2d3SWJXSmxaQ0JVVEZNeERUQUxCZ05WQkFNTUJFTkJNVE13SGhjTk1UY3dOakl5TVRFMU1ETXpXaGNOCi1NamN3TmpJek1URTFNRE16V2pBdk1Rc3dDUVlEVlFRR0V3SlZTekVSTUE4R0ExVUVDZ3dJYldKbFpDQlVURk14Ci1EVEFMQmdOVkJBTU1CRU5CTVRRd1dUQVRCZ2NxaGtqT1BRSUJCZ2dxaGtqT1BRTUJCd05DQUFUUk1aTjBSSHpQCi1kb25ObVp1cTlYUGh6dlE1MlRhb2t4VDM5cXBRdGxGeXZVdUVHS3JMb052ZGNwQVJhQTByR3B1dDZSTEFRT1ZVCi1pTlZsSjNJcGo3ODlvNEdKTUlHR01CMEdBMVVkRGdRV0JCUk5zSkIrK2NjU0JtYkNDS0J4aTRDalhST0JrekJYCi1CZ05WSFNNRVVEQk9nQlRtVm5VU0YyTVl3d3MvbkNNdjdiMXdKVmtEbXFFenBERXdMekVMTUFrR0ExVUVCaE1DCi1WVXN4RVRBUEJnTlZCQW9NQ0cxaVpXUWdWRXhUTVEwd0N3WURWUVFEREFSRFFURXlnZ0VCTUF3R0ExVWRFd1FGCi1NQU1CQWY4d0NnWUlLb1pJemowRUF3SURTQUF3UlFJZ1ZmdUxwanAwOEFheEtXZjZjdVpVVUNSZDdDb2pTUzFJCi03MWh6ZVV5RlMrc0NJUUROSkk2UC9wQmJpSGdUYUdsQkFnZmNFZm14bWJZMG40eFpuZHR4SWtteVZBPT0KLS0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KLS0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQotTUlJQjF6Q0NBWDJnQXdJQkFnSUJBVEFLQmdncWhrak9QUVFEQWpBdk1Rc3dDUVlEVlFRR0V3SlZTekVSTUE4RwotQTFVRUNnd0liV0psWkNCVVRGTXhEVEFMQmdOVkJBTU1CRU5CTVRJd0hoY05NVGN3TmpJeU1URTFNRE16V2hjTgotTWpjd05qSXpNVEUxTURNeldqQXZNUXN3Q1FZRFZRUUdFd0pWU3pFUk1BOEdBMVVFQ2d3SWJXSmxaQ0JVVEZNeAotRFRBTEJnTlZCQU1NQkVOQk1UTXdXVEFUQmdjcWhrak9QUUlCQmdncWhrak9QUU1CQndOQ0FBVHJrekNKTHpuaAotbGhuc3YxUlhCOWtmZWFEK2NJcnVQUTBjSXRCREdwZHZEOHhiQlZ2UWNpNCtSRzJSVlVDU1dSaGtGWWpTc1VTTQotMFFITVFuQkZsaHcybzRHSk1JR0dNQjBHQTFVZERnUVdCQlRtVm5VU0YyTVl3d3MvbkNNdjdiMXdKVmtEbWpCWAotQmdOVkhTTUVVREJPZ0JUWlR0YmkrajBTbS9acy8rZ1RrV2RBU3BRemZxRXpwREV3THpFTE1Ba0dBMVVFQmhNQwotVlVzeEVUQVBCZ05WQkFvTUNHMWlaV1FnVkV4VE1RMHdDd1lEVlFRRERBUkRRVEV4Z2dFQk1Bd0dBMVVkRXdRRgotTUFNQkFmOHdDZ1lJS29aSXpqMEVBd0lEU0FBd1JRSWdXc20rckhKZ3dVRXlObThFS2JFZHM1eXVycHA1LzN5NQotUHN2WEpWRHF4b2dDSVFEVVAwSmNsM0E5MDdDRTJ0UFZYU2dENkxRNkNQdTE5bWl4ZW1QdzYweWlqQT09Ci0tLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCi0tLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KLU1JSUIxakNDQVgyZ0F3SUJBZ0lCQVRBS0JnZ3Foa2pPUFFRREFqQXZNUXN3Q1FZRFZRUUdFd0pWU3pFUk1BOEcKLUExVUVDZ3dJYldKbFpDQlVURk14RFRBTEJnTlZCQU1NQkVOQk1URXdIaGNOTVRjd05qSXlNVEUxTURNeldoY04KLU1qY3dOakl6TVRFMU1ETXpXakF2TVFzd0NRWURWUVFHRXdKVlN6RVJNQThHQTFVRUNnd0liV0psWkNCVVRGTXgKLURUQUxCZ05WQkFNTUJFTkJNVEl3V1RBVEJnY3Foa2pPUFFJQkJnZ3Foa2pPUFFNQkJ3TkNBQVRERTlMUGxMUGMKLWdaM2IwQmNoUi9Ba2hORVA5SEFhdndZYWRKSXl6b1BvNWVkQ1ZuYm9RSDc4NmpzWndaTlpvQzBnSERBaENtR2MKLUlmUmVuSVNBb1Z1UG80R0pNSUdHTUIwR0ExVWREZ1FXQkJUWlR0YmkrajBTbS9acy8rZ1RrV2RBU3BRemZqQlgKLUJnTlZIU01FVURCT2dCU09TdDZlUHlNUlQ2UEdNYUlpN0ZxTlg5TUt0S0V6cERFd0x6RUxNQWtHQTFVRUJoTUMKLVZVc3hFVEFQQmdOVkJBb01DRzFpWldRZ1ZFeFRNUTB3Q3dZRFZRUUREQVJEUVRFd2dnRUJNQXdHQTFVZEV3UUYKLU1BTUJBZjh3Q2dZSUtvWkl6ajBFQXdJRFJ3QXdSQUlnWVlGNUFuUlY3ZWgyaExENUR6Ly9wY2VNVEt6OUxzNDYKLUU2RHh2YmZESGlrQ0lGdHRsR3JPQ1pWeVM0b2NzanVLSUVMVlVYNXFmeWdJMHNuNGtVM3FDVHMyCi0tLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCi0tLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KLU1JSUIxakNDQVgyZ0F3SUJBZ0lCQVRBS0JnZ3Foa2pPUFFRREFqQXZNUXN3Q1FZRFZRUUdFd0pWU3pFUk1BOEcKLUExVUVDZ3dJYldKbFpDQlVURk14RFRBTEJnTlZCQU1NQkVOQk1UQXdIaGNOTVRjd05qSXlNVEUxTURNeldoY04KLU1qY3dOakl6TVRFMU1ETXpXakF2TVFzd0NRWURWUVFHRXdKVlN6RVJNQThHQTFVRUNnd0liV0psWkNCVVRGTXgKLURUQUxCZ05WQkFNTUJFTkJNVEV3V1RBVEJnY3Foa2pPUFFJQkJnZ3Foa2pPUFFNQkJ3TkNBQVRad1IrV0s2TkIKLUYvN3JpRmRONjNjOGhqWWRkWlJSNGxyelZOUHdpQlF4bm54d3BQeXJEOUE2YVBQbUxjNlNxR09KVzRaR1ZDY28KLUlCemU5UkpWZWlCOW80R0pNSUdHTUIwR0ExVWREZ1FXQkJTT1N0NmVQeU1SVDZQR01hSWk3RnFOWDlNS3REQlgKLUJnTlZIU01FVURCT2dCUXR4WlNMSkFrRXorMlJLTVFleE02RXRzZmdjcUV6cERFd0x6RUxNQWtHQTFVRUJoTUMKLVZVc3hFVEFQQmdOVkJBb01DRzFpWldRZ1ZFeFRNUTB3Q3dZRFZRUUREQVJEUVRBNWdnRUJNQXdHQTFVZEV3UUYKLU1BTUJBZjh3Q2dZSUtvWkl6ajBFQXdJRFJ3QXdSQUlnTi8vTnFNMEZya3JNam14b2VDWTlEZ3hrSDJSNnNRNGQKLU5ndHdDWkFJcUVJQ0lCczR2dXBhVmN1dm5pOXRsdGJQMjZ3aTdjMEZSK2JsWnVvNURQSUEzU1ZlCi0tLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCi0tLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KLU1JSUIxekNDQVgyZ0F3SUJBZ0lCQVRBS0JnZ3Foa2pPUFFRREFqQXZNUXN3Q1FZRFZRUUdFd0pWU3pFUk1BOEcKLUExVUVDZ3dJYldKbFpDQlVURk14RFRBTEJnTlZCQU1NQkVOQk1Ea3dIaGNOTVRjd05qSXlNVEUxTURNeldoY04KLU1qY3dOakl6TVRFMU1ETXpXakF2TVFzd0NRWURWUVFHRXdKVlN6RVJNQThHQTFVRUNnd0liV0psWkNCVVRGTXgKLURUQUxCZ05WQkFNTUJFTkJNVEF3V1RBVEJnY3Foa2pPUFFJQkJnZ3Foa2pPUFFNQkJ3TkNBQVI2amxHS2JKZDUKLWhpRHhONzg5Z2tPY3dweUhJOXdSd0NyQURBT3dPa01lUEJQUmx3R2RtN213N1ovRUFtdTI2elJtL2hjeXJzNE0KLXFrMkxhYkRqUEk5WG80R0pNSUdHTUIwR0ExVWREZ1FXQkJRdHhaU0xKQWtFeisyUktNUWV4TTZFdHNmZ2NqQlgKLUJnTlZIU01FVURCT2dCVDZneVhIelBJUFljMVZyMWFHaUxMZU1oNEhwcUV6cERFd0x6RUxNQWtHQTFVRUJoTUMKLVZVc3hFVEFQQmdOVkJBb01DRzFpWldRZ1ZFeFRNUTB3Q3dZRFZRUUREQVJEUVRBNGdnRUJNQXdHQTFVZEV3UUYKLU1BTUJBZjh3Q2dZSUtvWkl6ajBFQXdJRFNBQXdSUUlnUDdTOHZGc3RmVUJkTmU2eW01R1lHNVErYUJWRUtxUnMKLWZWVzdITlVrdFNZQ0lRRG82SnVhNm8vREpicnBxNHFZV3E1Z3Y0eUd5elBUTiszSWFLckVJQ2RhYXc9PQotLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQotLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCi1NSUlCMWpDQ0FYMmdBd0lCQWdJQkFUQUtCZ2dxaGtqT1BRUURBakF2TVFzd0NRWURWUVFHRXdKVlN6RVJNQThHCi1BMVVFQ2d3SWJXSmxaQ0JVVEZNeERUQUxCZ05WQkFNTUJFTkJNRGd3SGhjTk1UY3dOakl5TVRFMU1ETXpXaGNOCi1NamN3TmpJek1URTFNRE16V2pBdk1Rc3dDUVlEVlFRR0V3SlZTekVSTUE4R0ExVUVDZ3dJYldKbFpDQlVURk14Ci1EVEFMQmdOVkJBTU1CRU5CTURrd1dUQVRCZ2NxaGtqT1BRSUJCZ2dxaGtqT1BRTUJCd05DQUFSN1pCMTYrdDZFCi1zZmFoR3lLVUdKVzVtZXprempkYVl2YzRsYkphS05Sd0ZSZmMzRi9mbU5PU3NVRlNnL0YwTit2VUUrZG9LaVBDCi04d1J3THp2bTRzKzVvNEdKTUlHR01CMEdBMVVkRGdRV0JCVDZneVhIelBJUFljMVZyMWFHaUxMZU1oNEhwakJYCi1CZ05WSFNNRVVEQk9nQlM0MG1MdDkzVThTaDhaR2lEVkFoUlNpQlBjWHFFenBERXdMekVMTUFrR0ExVUVCaE1DCi1WVXN4RVRBUEJnTlZCQW9NQ0cxaVpXUWdWRXhUTVEwd0N3WURWUVFEREFSRFFUQTNnZ0VCTUF3R0ExVWRFd1FGCi1NQU1CQWY4d0NnWUlLb1pJemowRUF3SURSd0F3UkFJZ080ZWwxWlBobElsaS9xTlIyU0lFaXV2czVNbXk4NjhpCi1OMlJ2NVgvVnhJRUNJQS84clVBTFF4VzM4WFNkQlZYM2Uvanp1N2p1NDduMVl3RXFEOUs5V2RWdgotLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQotLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCi1NSUlCMkRDQ0FYMmdBd0lCQWdJQkFUQUtCZ2dxaGtqT1BRUURBakF2TVFzd0NRWURWUVFHRXdKVlN6RVJNQThHCi1BMVVFQ2d3SWJXSmxaQ0JVVEZNeERUQUxCZ05WQkFNTUJFTkJNRGN3SGhjTk1UY3dOakl5TVRFMU1ETXlXaGNOCi1NamN3TmpJek1URTFNRE15V2pBdk1Rc3dDUVlEVlFRR0V3SlZTekVSTUE4R0ExVUVDZ3dJYldKbFpDQlVURk14Ci1EVEFMQmdOVkJBTU1CRU5CTURnd1dUQVRCZ2NxaGtqT1BRSUJCZ2dxaGtqT1BRTUJCd05DQUFScFFlUS9ZR1FqCi1ubDdTem82V1N0SjF1N3h1blRMNWpCa1hIOGFBVlNtMHFpWDRBRC83WVB4YTVFbkd6WmRMVG4yNXZRVm5mUUFHCi1wTXg4UDFsWWlHWUNvNEdKTUlHR01CMEdBMVVkRGdRV0JCUzQwbUx0OTNVOFNoOFpHaURWQWhSU2lCUGNYakJYCi1CZ05WSFNNRVVEQk9nQlJFcTVKM3RvSlB4WjNPK3NzSjV2a2tVMFJKRTZFenBERXdMekVMTUFrR0ExVUVCaE1DCi1WVXN4RVRBUEJnTlZCQW9NQ0cxaVpXUWdWRXhUTVEwd0N3WURWUVFEREFSRFFUQTJnZ0VCTUF3R0ExVWRFd1FGCi1NQU1CQWY4d0NnWUlLb1pJemowRUF3SURTUUF3UmdJaEFOd0dmK0Y0YStrbVhXejhValNwUmthVG9UVjZFRld3Ci0vVGp6ajB0UWhEb0FBaUVBMTlSeGVXT1ZCQnBNNkxPSGc2djVMZjU0WU4xc25rTGYrc0VYeVpDdVdRUT0KLS0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KLS0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQotTUlJQjJEQ0NBWDJnQXdJQkFnSUJBVEFLQmdncWhrak9QUVFEQWpBdk1Rc3dDUVlEVlFRR0V3SlZTekVSTUE4RwotQTFVRUNnd0liV0psWkNCVVRGTXhEVEFMQmdOVkJBTU1CRU5CTURZd0hoY05NVGN3TmpJeU1URTFNRE15V2hjTgotTWpjd05qSXpNVEUxTURNeVdqQXZNUXN3Q1FZRFZRUUdFd0pWU3pFUk1BOEdBMVVFQ2d3SWJXSmxaQ0JVVEZNeAotRFRBTEJnTlZCQU1NQkVOQk1EY3dXVEFUQmdjcWhrak9QUUlCQmdncWhrak9QUU1CQndOQ0FBU05PajRkNE1FQQotN3AvM21paWpxRzRUb0U0b3BLUEFtKzNCVElHckpUWVQxNCsrVFNpVUlDbDBBU1hqK3hlVWNMTUlhWFROMDQycwotTHNIeHBTaHpRYUwwbzRHSk1JR0dNQjBHQTFVZERnUVdCQlJFcTVKM3RvSlB4WjNPK3NzSjV2a2tVMFJKRXpCWAotQmdOVkhTTUVVREJPZ0JTam92WWFDL202TGk5VHAwVjlpWlJzOTI2N1E2RXpwREV3THpFTE1Ba0dBMVVFQmhNQwotVlVzeEVUQVBCZ05WQkFvTUNHMWlaV1FnVkV4VE1RMHdDd1lEVlFRRERBUkRRVEExZ2dFQk1Bd0dBMVVkRXdRRgotTUFNQkFmOHdDZ1lJS29aSXpqMEVBd0lEU1FBd1JnSWhBS0djZitjNDQyYy9YaXd1YmJhaVF2c29aN0VvVnh1TQotb0ttaWEwZ1B5Qk5rQWlFQTgzYXNqSjVGRFhRdUx5WnBjenZpWHJibXFnQ1BPZllhZHR2a2MwY3hNaXM9Ci0tLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCi0tLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KLU1JSUIxakNDQVgyZ0F3SUJBZ0lCQVRBS0JnZ3Foa2pPUFFRREFqQXZNUXN3Q1FZRFZRUUdFd0pWU3pFUk1BOEcKLUExVUVDZ3dJYldKbFpDQlVURk14RFRBTEJnTlZCQU1NQkVOQk1EVXdIaGNOTVRjd05qSXlNVEUxTURNeVdoY04KLU1qY3dOakl6TVRFMU1ETXlXakF2TVFzd0NRWURWUVFHRXdKVlN6RVJNQThHQTFVRUNnd0liV0psWkNCVVRGTXgKLURUQUxCZ05WQkFNTUJFTkJNRFl3V1RBVEJnY3Foa2pPUFFJQkJnZ3Foa2pPUFFNQkJ3TkNBQVNBOXFXb0FVSHIKLW5uKzNreHlOcmpQSms4MldETGltVzIxUk41MXV4cG9iYWR2OFlnR0VEUmRQK09rK3VScVFTVXNBNlpYZkYzaUcKLXIyR2pmUTN3TURIOG80R0pNSUdHTUIwR0ExVWREZ1FXQkJTam92WWFDL202TGk5VHAwVjlpWlJzOTI2N1F6QlgKLUJnTlZIU01FVURCT2dCVFhoMDZNQVY5UzRsNGxHMVRLT3JLUkJoNHFuNkV6cERFd0x6RUxNQWtHQTFVRUJoTUMKLVZVc3hFVEFQQmdOVkJBb01DRzFpWldRZ1ZFeFRNUTB3Q3dZRFZRUUREQVJEUVRBMGdnRUJNQXdHQTFVZEV3UUYKLU1BTUJBZjh3Q2dZSUtvWkl6ajBFQXdJRFJ3QXdSQUlnY2paTkZXSnRsRG1vUFpiQXhxc0djelJZSzBsZlBndTYKLWcxSDdwcDBjZSt3Q0lEajlCUlpNMk9COUVGMGUrTURLR2p5WkdmdmZyTDZJcjQ3eC9Lck02SDhUCi0tLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCi0tLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KLU1JSUIxekNDQVgyZ0F3SUJBZ0lCQVRBS0JnZ3Foa2pPUFFRREFqQXZNUXN3Q1FZRFZRUUdFd0pWU3pFUk1BOEcKLUExVUVDZ3dJYldKbFpDQlVURk14RFRBTEJnTlZCQU1NQkVOQk1EUXdIaGNOTVRjd05qSXlNVEUxTURNeVdoY04KLU1qY3dOakl6TVRFMU1ETXlXakF2TVFzd0NRWURWUVFHRXdKVlN6RVJNQThHQTFVRUNnd0liV0psWkNCVVRGTXgKLURUQUxCZ05WQkFNTUJFTkJNRFV3V1RBVEJnY3Foa2pPUFFJQkJnZ3Foa2pPUFFNQkJ3TkNBQVFFZFQwT0ZmNUcKLVVjcmdYMlhsbEN5SnpQOTROWjQ2NEdzZ0I2cHNOTHNEZUwrajdBVStvSnk3Vkx2Vy9sSGgzT0RnbDA4WjliaHEKLUxGQm1Oam5IYm04UW80R0pNSUdHTUIwR0ExVWREZ1FXQkJUWGgwNk1BVjlTNGw0bEcxVEtPcktSQmg0cW56QlgKLUJnTlZIU01FVURCT2dCUW94NEYxTnNadW5sc2R1b0d2eklnUlNZZkIzNkV6cERFd0x6RUxNQWtHQTFVRUJoTUMKLVZVc3hFVEFQQmdOVkJBb01DRzFpWldRZ1ZFeFRNUTB3Q3dZRFZRUUREQVJEUVRBemdnRUJNQXdHQTFVZEV3UUYKLU1BTUJBZjh3Q2dZSUtvWkl6ajBFQXdJRFNBQXdSUUloQUlXKyt6cURabExMVWsvZW1lUG9oZE5PcDVKTzN3UzkKLVh2a0JKNld1YTdHQkFpQWR4K0VLbWRqVnJ3bnpyUWx0VGdubVNmR01YaEtOWWlmSzN1RDgzVzNwY1E9PQotLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQotLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCi1NSUlCMWpDQ0FYMmdBd0lCQWdJQkFUQUtCZ2dxaGtqT1BRUURBakF2TVFzd0NRWURWUVFHRXdKVlN6RVJNQThHCi1BMVVFQ2d3SWJXSmxaQ0JVVEZNeERUQUxCZ05WQkFNTUJFTkJNRE13SGhjTk1UY3dOakl5TVRFMU1ETXlXaGNOCi1NamN3TmpJek1URTFNRE15V2pBdk1Rc3dDUVlEVlFRR0V3SlZTekVSTUE4R0ExVUVDZ3dJYldKbFpDQlVURk14Ci1EVEFMQmdOVkJBTU1CRU5CTURRd1dUQVRCZ2NxaGtqT1BRSUJCZ2dxaGtqT1BRTUJCd05DQUFRVVhEZ2NVVk5UCi05aG92YlpFNUhMNnJqT2I3QzU1d0V1V0tUaFYvQ2NaNHJXclh4N1ZYSFlkRC9SM2FEQTdKU3ZZcG0yc1RvazRpCi1zYmxEemhaTS9HRE5vNEdKTUlHR01CMEdBMVVkRGdRV0JCUW94NEYxTnNadW5sc2R1b0d2eklnUlNZZkIzekJYCi1CZ05WSFNNRVVEQk9nQlFBcHpaZHRCZEQzZEx4b3VRcHIvYURpVnR0ZDZFenBERXdMekVMTUFrR0ExVUVCaE1DCi1WVXN4RVRBUEJnTlZCQW9NQ0cxaVpXUWdWRXhUTVEwd0N3WURWUVFEREFSRFFUQXlnZ0VCTUF3R0ExVWRFd1FGCi1NQU1CQWY4d0NnWUlLb1pJemowRUF3SURSd0F3UkFJZ0FraU5ocUZBWlhTVVdFREs5MU9adlFHZGVaT3RkNm1DCi0rV3YzZkdrM3QyOENJRUtPd2lka1VUVWFpUGRaNGVmbUFyK0NFZUd6ZHEyN29iMlMrbnFxSHFnVgotLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQotLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCi1NSUlCMkRDQ0FYMmdBd0lCQWdJQkFUQUtCZ2dxaGtqT1BRUURBakF2TVFzd0NRWURWUVFHRXdKVlN6RVJNQThHCi1BMVVFQ2d3SWJXSmxaQ0JVVEZNeERUQUxCZ05WQkFNTUJFTkJNREl3SGhjTk1UY3dOakl5TVRFMU1ETXlXaGNOCi1NamN3TmpJek1URTFNRE15V2pBdk1Rc3dDUVlEVlFRR0V3SlZTekVSTUE4R0ExVUVDZ3dJYldKbFpDQlVURk14Ci1EVEFMQmdOVkJBTU1CRU5CTURNd1dUQVRCZ2NxaGtqT1BRSUJCZ2dxaGtqT1BRTUJCd05DQUFRUkRYRE5JaTFwCi1lcmV1ZGhxd2EyTHNsWGdzeG5CNjNIdTV5NWxnKzFXUHJ1SVlQekQvSG8wQVB2ZVZkekZMVmppMTkrYkU0K3RGCi1QWUwxU3BzTjFXZldvNEdKTUlHR01CMEdBMVVkRGdRV0JCUUFwelpkdEJkRDNkTHhvdVFwci9hRGlWdHRkekJYCi1CZ05WSFNNRVVEQk9nQlQ1UkNnUTBBbFpUUWJmRkIyKzYrdzBYUnZ5ZGFFenBERXdMekVMTUFrR0ExVUVCaE1DCi1WVXN4RVRBUEJnTlZCQW9NQ0cxaVpXUWdWRXhUTVEwd0N3WURWUVFEREFSRFFUQXhnZ0VCTUF3R0ExVWRFd1FGCi1NQU1CQWY4d0NnWUlLb1pJemowRUF3SURTUUF3UmdJaEFPbmQrN2JBb2ZrSFZhNEtGTmp2M1RDZWd3MWxyaHVNCi04T2Y4d2d2clRFR29BaUVBc1M4aUtNcFNmWEg0RDBlZ2c0Z0xhbUU2YWtkZTk2NXJEdHlTVSt2ZTlsZz0KLS0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KLS0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQotTUlJQjF6Q0NBWDJnQXdJQkFnSUJBVEFLQmdncWhrak9QUVFEQWpBdk1Rc3dDUVlEVlFRR0V3SlZTekVSTUE4RwotQTFVRUNnd0liV0psWkNCVVRGTXhEVEFMQmdOVkJBTU1CRU5CTURFd0hoY05NVGN3TmpJeU1URTFNRE15V2hjTgotTWpjd05qSXpNVEUxTURNeVdqQXZNUXN3Q1FZRFZRUUdFd0pWU3pFUk1BOEdBMVVFQ2d3SWJXSmxaQ0JVVEZNeAotRFRBTEJnTlZCQU1NQkVOQk1ESXdXVEFUQmdjcWhrak9QUUlCQmdncWhrak9QUU1CQndOQ0FBUVdIcHYxaTZsZgotd3ZOUE9QNWthNlMwbjU1RXZ6b2FZSzZwYlRYUDZ5TU9XLzRYWlNQS3g1Wm9xNEZNZTBjS3pHSUlGTDFyemoxVgotMmN6WUIrcXZMaHlpbzRHSk1JR0dNQjBHQTFVZERnUVdCQlQ1UkNnUTBBbFpUUWJmRkIyKzYrdzBYUnZ5ZFRCWAotQmdOVkhTTUVVREJPZ0JTaDN1SGtYNW5qODZ5RkVGd2pzY1NXTTQwUCtxRXpwREV3THpFTE1Ba0dBMVVFQmhNQwotVlVzeEVUQVBCZ05WQkFvTUNHMWlaV1FnVkV4VE1RMHdDd1lEVlFRRERBUkRRVEF3Z2dFQk1Bd0dBMVVkRXdRRgotTUFNQkFmOHdDZ1lJS29aSXpqMEVBd0lEU0FBd1JRSWhBSTd1bkdXL2dyOXRPYzNpK2RGNU44MTVzcmdoK0ZyWAotb2o5RXQ3NEVjU3BUQWlCdWJ2K3ZPSDBERTBnbVlJMTFIZUFJZ3V0V3FxTUlDNzJkWmx3VEYvVmkzZz09Ci0tLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCi0tLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KLU1JSUIzakNDQVlXZ0F3SUJBZ0lCQVRBS0JnZ3Foa2pPUFFRREFqQXZNUXN3Q1FZRFZRUUdFd0pWU3pFUk1BOEcKLUExVUVDZ3dJYldKbFpDQlVURk14RFRBTEJnTlZCQU1NQkVOQk1EQXdIaGNOTVRjd05qSXlNVEUxTURNeVdoY04KLU1qY3dOakl6TVRFMU1ETXlXakF2TVFzd0NRWURWUVFHRXdKVlN6RVJNQThHQTFVRUNnd0liV0psWkNCVVRGTXgKLURUQUxCZ05WQkFNTUJFTkJNREV3V1RBVEJnY3Foa2pPUFFJQkJnZ3Foa2pPUFFNQkJ3TkNBQVF6bm45ekhId0wKLUdPOFZSNFc5Vjd2TWx4Q2Rvb2p6RU9pWDVZNkp0UHRGT3o4NjZ1ZUhZNnpvTjAvbUo2RG5xblNYaWxKSVVVZVcKLTZlR2ZxbWthN254a280R1JNSUdPTUIwR0ExVWREZ1FXQkJTaDN1SGtYNW5qODZ5RkVGd2pzY1NXTTQwUCtqQmYKLUJnTlZIU01FV0RCV2dCUWxGWXZVNVdib0k0ZmNkUG9pUXM4L2ZQSFpyYUV6cERFd0x6RUxNQWtHQTFVRUJoTUMKLVZVc3hFVEFQQmdOVkJBb01DRzFpWldRZ1ZFeFRNUTB3Q3dZRFZRUUREQVJEUVRBd2dna0EvS0NXaGNxVG9IQXcKLURBWURWUjBUQkFVd0F3RUIvekFLQmdncWhrak9QUVFEQWdOSEFEQkVBaUJhc2J1aW5QK3BKVFU0b0RDVkQ4elEKLTFySkJEU09LSUV5V3U4NC9ENkhqNndJZ1ZNUFVvTzAxYlBoemxsQWEvZ1c4WGsvZGFleTA5U0JnTjNBVDlwV1UKLVREQT0KLS0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KLS0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQotTUlJQnBUQ0NBVXVnQXdJQkFnSUpBUHlnbG9YS2s2QndNQW9HQ0NxR1NNNDlCQU1DTUM4eEN6QUpCZ05WQkFZVAotQWxWTE1SRXdEd1lEVlFRS0RBaHRZbVZrSUZSTVV6RU5NQXNHQTFVRUF3d0VRMEV3TURBZUZ3MHhOekEyTWpJeAotTVRVd016SmFGdzB5TnpBMk1qTXhNVFV3TXpKYU1DOHhDekFKQmdOVkJBWVRBbFZMTVJFd0R3WURWUVFLREFodAotWW1Wa0lGUk1VekVOTUFzR0ExVUVBd3dFUTBFd01EQlpNQk1HQnlxR1NNNDlBZ0VHQ0NxR1NNNDlBd0VIQTBJQQotQkZXNDEvcUF3QVBweStUeGRjN1BLbXpac3E5Q1BpdWpLVTR2cEYxZWtYbkd4MkhQNDIwUW9id0JWVldoa3pSbQotTHdkYm9IMmo2NWRjQ0tqUTdtdi9keEtqVURCT01CMEdBMVVkRGdRV0JCUWxGWXZVNVdib0k0ZmNkUG9pUXM4LwotZlBIWnJUQWZCZ05WSFNNRUdEQVdnQlFsRll2VTVXYm9JNGZjZFBvaVFzOC9mUEhaclRBTUJnTlZIUk1FQlRBRAotQVFIL01Bb0dDQ3FHU000OUJBTUNBMGdBTUVVQ0lRQzdpUmNWendNeWZWSzVpbWlySjdNcUpRMDRldUg0Q0xPdAotSVorU05mYUVSQUlnU1UwTVdGRG9zVkVJcGc4WU1xSUhlRjdNZzRaeUg2K2ZHYXpKZ1ZMdHRVWT0KLS0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KZGlmZiAtLWdpdCBhL3Rlc3RzL2RhdGFfZmlsZXMvZGlyLW1heHBhdGgvYzE4LnBlbSBiL3Rlc3RzL2RhdGFfZmlsZXMvZGlyLW1heHBhdGgvYzE4LnBlbQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZDg2MzE4OS4uMDAwMDAwMAotLS0gYS90ZXN0cy9kYXRhX2ZpbGVzL2Rpci1tYXhwYXRoL2MxOC5wZW0KKysrIC9kZXYvbnVsbApAQCAtMSwyMjggKzAsMCBAQAotLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCi1NSUlCMkRDQ0FYMmdBd0lCQWdJQkFUQUtCZ2dxaGtqT1BRUURBakF2TVFzd0NRWURWUVFHRXdKVlN6RVJNQThHCi1BMVVFQ2d3SWJXSmxaQ0JVVEZNeERUQUxCZ05WQkFNTUJFTkJNVGN3SGhjTk1UY3dOakl5TVRFMU1ETXpXaGNOCi1NamN3TmpJek1URTFNRE16V2pBdk1Rc3dDUVlEVlFRR0V3SlZTekVSTUE4R0ExVUVDZ3dJYldKbFpDQlVURk14Ci1EVEFMQmdOVkJBTU1CRU5CTVRnd1dUQVRCZ2NxaGtqT1BRSUJCZ2dxaGtqT1BRTUJCd05DQUFTc2MvSmtOY1lmCi1iTWdwT2ZyTDVrS09HeE9KYUdTNlNRSWVOTzMzVWVCcFRvZTFiVTJhY042NTJ4anZjR28wZkpFdHhnMmZjUEhSCi1oVG5HTUJEMXUxTjJvNEdKTUlHR01CMEdBMVVkRGdRV0JCU0RiSXBZbnRsaEowR2dJc3lkNzVYUmhsQzE4akJYCi1CZ05WSFNNRVVEQk9nQlNuald2cFd4WmNGbmZRMktHdENnL3U2ZlQvRDZFenBERXdMekVMTUFrR0ExVUVCaE1DCi1WVXN4RVRBUEJnTlZCQW9NQ0cxaVpXUWdWRXhUTVEwd0N3WURWUVFEREFSRFFURTJnZ0VCTUF3R0ExVWRFd1FGCi1NQU1CQWY4d0NnWUlLb1pJemowRUF3SURTUUF3UmdJaEFKbzJOWGZKVTFzSzZTVlR1NE9WMjFGS0lUbFhudE1pCi1vZW5ZTXNCanpPOG9BaUVBaWRTRUxjTGpqQUhpM21mQkFSdkNnS2xSaG1iTkVNQ0hRVDdIYTdaUW9Sdz0KLS0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KLS0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQotTUlJQjF6Q0NBWDJnQXdJQkFnSUJBVEFLQmdncWhrak9QUVFEQWpBdk1Rc3dDUVlEVlFRR0V3SlZTekVSTUE4RwotQTFVRUNnd0liV0psWkNCVVRGTXhEVEFMQmdOVkJBTU1CRU5CTVRZd0hoY05NVGN3TmpJeU1URTFNRE16V2hjTgotTWpjd05qSXpNVEUxTURNeldqQXZNUXN3Q1FZRFZRUUdFd0pWU3pFUk1BOEdBMVVFQ2d3SWJXSmxaQ0JVVEZNeAotRFRBTEJnTlZCQU1NQkVOQk1UY3dXVEFUQmdjcWhrak9QUUlCQmdncWhrak9QUU1CQndOQ0FBUnJJU3Eyek85bQotRDI5WUNMSEI1NkZkVS9SSU50UmhmZUx0TSt1NW8zSGFBbm9weTBTOThSenVFR0VManB6cjhaSTZra01NWnNqOAotbkZaUUY4SGZ1RTBnbzRHSk1JR0dNQjBHQTFVZERnUVdCQlNuald2cFd4WmNGbmZRMktHdENnL3U2ZlQvRHpCWAotQmdOVkhTTUVVREJPZ0JSVHczSzBQc3kzdS82KzNLS1NvYVFxSm5QdlBxRXpwREV3THpFTE1Ba0dBMVVFQmhNQwotVlVzeEVUQVBCZ05WQkFvTUNHMWlaV1FnVkV4VE1RMHdDd1lEVlFRRERBUkRRVEUxZ2dFQk1Bd0dBMVVkRXdRRgotTUFNQkFmOHdDZ1lJS29aSXpqMEVBd0lEU0FBd1JRSWdEZ1hqb2M2RmZNRjVXME56aVY2dngyQk9QTldhdjAxWgoteW5FUDRoOVVMblVDSVFDMXJVNHNFSWQzVWRqelRLaHBTR1RLdGFPdVBHK2IwWWRFTVBpbUk0am1Wdz09Ci0tLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCi0tLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KLU1JSUIyRENDQVgyZ0F3SUJBZ0lCQVRBS0JnZ3Foa2pPUFFRREFqQXZNUXN3Q1FZRFZRUUdFd0pWU3pFUk1BOEcKLUExVUVDZ3dJYldKbFpDQlVURk14RFRBTEJnTlZCQU1NQkVOQk1UVXdIaGNOTVRjd05qSXlNVEUxTURNeldoY04KLU1qY3dOakl6TVRFMU1ETXpXakF2TVFzd0NRWURWUVFHRXdKVlN6RVJNQThHQTFVRUNnd0liV0psWkNCVVRGTXgKLURUQUxCZ05WQkFNTUJFTkJNVFl3V1RBVEJnY3Foa2pPUFFJQkJnZ3Foa2pPUFFNQkJ3TkNBQVE3VnNwN0ptRE4KLWtnUGgvK3ptSVBrZDdvMHhvdC9XUE1GbjN1QXNHdHNVMzg1TUYwZm1oZkZMaFJiYkg5aDRKallIajh5MHNwVTMKLWJ1VVhoZnR2QVpWYm80R0pNSUdHTUIwR0ExVWREZ1FXQkJSVHczSzBQc3kzdS82KzNLS1NvYVFxSm5QdlBqQlgKLUJnTlZIU01FVURCT2dCUjFtWGxyZFc1cngxVm5xTU1uVUJYbzBXV0dXcUV6cERFd0x6RUxNQWtHQTFVRUJoTUMKLVZVc3hFVEFQQmdOVkJBb01DRzFpWldRZ1ZFeFRNUTB3Q3dZRFZRUUREQVJEUVRFMGdnRUJNQXdHQTFVZEV3UUYKLU1BTUJBZjh3Q2dZSUtvWkl6ajBFQXdJRFNRQXdSZ0loQU1KbkdqRTl2M1NqdUdmaTBqTkJ5cnd5TmZobFRITWgKLUZoUFFpZE5yRHBYd0FpRUFxWXROaVY4dDlSckFhOUdDNkZXRHVKcHZJaVU2RnNFK2xGcTZ1SXEvSjJFPQotLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQotLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCi1NSUlCMXpDQ0FYMmdBd0lCQWdJQkFUQUtCZ2dxaGtqT1BRUURBakF2TVFzd0NRWURWUVFHRXdKVlN6RVJNQThHCi1BMVVFQ2d3SWJXSmxaQ0JVVEZNeERUQUxCZ05WQkFNTUJFTkJNVFF3SGhjTk1UY3dOakl5TVRFMU1ETXpXaGNOCi1NamN3TmpJek1URTFNRE16V2pBdk1Rc3dDUVlEVlFRR0V3SlZTekVSTUE4R0ExVUVDZ3dJYldKbFpDQlVURk14Ci1EVEFMQmdOVkJBTU1CRU5CTVRVd1dUQVRCZ2NxaGtqT1BRSUJCZ2dxaGtqT1BRTUJCd05DQUFRbEtVaU1vU3NzCi0vaHNUYXNlZHFkQjJCQ09HSmhUdDBoZ1VHZVVuV05aMXN2TzR5bjBHa0ZIWjA4KytmbDJNS3FqcGorVlhxMEpTCi1GRnlHVU9nbWdpM0hvNEdKTUlHR01CMEdBMVVkRGdRV0JCUjFtWGxyZFc1cngxVm5xTU1uVUJYbzBXV0dXakJYCi1CZ05WSFNNRVVEQk9nQlJOc0pCKytjY1NCbWJDQ0tCeGk0Q2pYUk9CazZFenBERXdMekVMTUFrR0ExVUVCaE1DCi1WVXN4RVRBUEJnTlZCQW9NQ0cxaVpXUWdWRXhUTVEwd0N3WURWUVFEREFSRFFURXpnZ0VCTUF3R0ExVWRFd1FGCi1NQU1CQWY4d0NnWUlLb1pJemowRUF3SURTQUF3UlFJaEFLWU9JbytmZENRUnFwSDRMTjhxVUsxYUt6S21XR3hTCi1mR3pFRWtnLzI5Yk1BaUFsOTVjbXVjb0NETXEyQWI4Q29jMGRFcXlKNityQVBNTEJDYkdhd3lpVzZBPT0KLS0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KLS0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQotTUlJQjF6Q0NBWDJnQXdJQkFnSUJBVEFLQmdncWhrak9QUVFEQWpBdk1Rc3dDUVlEVlFRR0V3SlZTekVSTUE4RwotQTFVRUNnd0liV0psWkNCVVRGTXhEVEFMQmdOVkJBTU1CRU5CTVRNd0hoY05NVGN3TmpJeU1URTFNRE16V2hjTgotTWpjd05qSXpNVEUxTURNeldqQXZNUXN3Q1FZRFZRUUdFd0pWU3pFUk1BOEdBMVVFQ2d3SWJXSmxaQ0JVVEZNeAotRFRBTEJnTlZCQU1NQkVOQk1UUXdXVEFUQmdjcWhrak9QUUlCQmdncWhrak9QUU1CQndOQ0FBVFJNWk4wUkh6UAotZG9uTm1adXE5WFBoenZRNTJUYW9reFQzOXFwUXRsRnl2VXVFR0tyTG9OdmRjcEFSYUEwckdwdXQ2UkxBUU9WVQotaU5WbEozSXBqNzg5bzRHSk1JR0dNQjBHQTFVZERnUVdCQlJOc0pCKytjY1NCbWJDQ0tCeGk0Q2pYUk9Ca3pCWAotQmdOVkhTTUVVREJPZ0JUbVZuVVNGMk1Zd3dzL25DTXY3YjF3SlZrRG1xRXpwREV3THpFTE1Ba0dBMVVFQmhNQwotVlVzeEVUQVBCZ05WQkFvTUNHMWlaV1FnVkV4VE1RMHdDd1lEVlFRRERBUkRRVEV5Z2dFQk1Bd0dBMVVkRXdRRgotTUFNQkFmOHdDZ1lJS29aSXpqMEVBd0lEU0FBd1JRSWdWZnVMcGpwMDhBYXhLV2Y2Y3VaVVVDUmQ3Q29qU1MxSQotNzFoemVVeUZTK3NDSVFETkpJNlAvcEJiaUhnVGFHbEJBZ2ZjRWZteG1iWTBuNHhabmR0eElrbXlWQT09Ci0tLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCi0tLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KLU1JSUIxekNDQVgyZ0F3SUJBZ0lCQVRBS0JnZ3Foa2pPUFFRREFqQXZNUXN3Q1FZRFZRUUdFd0pWU3pFUk1BOEcKLUExVUVDZ3dJYldKbFpDQlVURk14RFRBTEJnTlZCQU1NQkVOQk1USXdIaGNOTVRjd05qSXlNVEUxTURNeldoY04KLU1qY3dOakl6TVRFMU1ETXpXakF2TVFzd0NRWURWUVFHRXdKVlN6RVJNQThHQTFVRUNnd0liV0psWkNCVVRGTXgKLURUQUxCZ05WQkFNTUJFTkJNVE13V1RBVEJnY3Foa2pPUFFJQkJnZ3Foa2pPUFFNQkJ3TkNBQVRya3pDSkx6bmgKLWxobnN2MVJYQjlrZmVhRCtjSXJ1UFEwY0l0QkRHcGR2RDh4YkJWdlFjaTQrUkcyUlZVQ1NXUmhrRllqU3NVU00KLTBRSE1RbkJGbGh3Mm80R0pNSUdHTUIwR0ExVWREZ1FXQkJUbVZuVVNGMk1Zd3dzL25DTXY3YjF3SlZrRG1qQlgKLUJnTlZIU01FVURCT2dCVFpUdGJpK2owU20vWnMvK2dUa1dkQVNwUXpmcUV6cERFd0x6RUxNQWtHQTFVRUJoTUMKLVZVc3hFVEFQQmdOVkJBb01DRzFpWldRZ1ZFeFRNUTB3Q3dZRFZRUUREQVJEUVRFeGdnRUJNQXdHQTFVZEV3UUYKLU1BTUJBZjh3Q2dZSUtvWkl6ajBFQXdJRFNBQXdSUUlnV3NtK3JISmd3VUV5Tm04RUtiRWRzNXl1cnBwNS8zeTUKLVBzdlhKVkRxeG9nQ0lRRFVQMEpjbDNBOTA3Q0UydFBWWFNnRDZMUTZDUHUxOW1peGVtUHc2MHlpakE9PQotLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQotLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCi1NSUlCMWpDQ0FYMmdBd0lCQWdJQkFUQUtCZ2dxaGtqT1BRUURBakF2TVFzd0NRWURWUVFHRXdKVlN6RVJNQThHCi1BMVVFQ2d3SWJXSmxaQ0JVVEZNeERUQUxCZ05WQkFNTUJFTkJNVEV3SGhjTk1UY3dOakl5TVRFMU1ETXpXaGNOCi1NamN3TmpJek1URTFNRE16V2pBdk1Rc3dDUVlEVlFRR0V3SlZTekVSTUE4R0ExVUVDZ3dJYldKbFpDQlVURk14Ci1EVEFMQmdOVkJBTU1CRU5CTVRJd1dUQVRCZ2NxaGtqT1BRSUJCZ2dxaGtqT1BRTUJCd05DQUFUREU5TFBsTFBjCi1nWjNiMEJjaFIvQWtoTkVQOUhBYXZ3WWFkSkl5em9QbzVlZENWbmJvUUg3ODZqc1p3Wk5ab0MwZ0hEQWhDbUdjCi1JZlJlbklTQW9WdVBvNEdKTUlHR01CMEdBMVVkRGdRV0JCVFpUdGJpK2owU20vWnMvK2dUa1dkQVNwUXpmakJYCi1CZ05WSFNNRVVEQk9nQlNPU3Q2ZVB5TVJUNlBHTWFJaTdGcU5YOU1LdEtFenBERXdMekVMTUFrR0ExVUVCaE1DCi1WVXN4RVRBUEJnTlZCQW9NQ0cxaVpXUWdWRXhUTVEwd0N3WURWUVFEREFSRFFURXdnZ0VCTUF3R0ExVWRFd1FGCi1NQU1CQWY4d0NnWUlLb1pJemowRUF3SURSd0F3UkFJZ1lZRjVBblJWN2VoMmhMRDVEei8vcGNlTVRLejlMczQ2Ci1FNkR4dmJmREhpa0NJRnR0bEdyT0NaVnlTNG9jc2p1S0lFTFZVWDVxZnlnSTBzbjRrVTNxQ1RzMgotLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQotLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCi1NSUlCMWpDQ0FYMmdBd0lCQWdJQkFUQUtCZ2dxaGtqT1BRUURBakF2TVFzd0NRWURWUVFHRXdKVlN6RVJNQThHCi1BMVVFQ2d3SWJXSmxaQ0JVVEZNeERUQUxCZ05WQkFNTUJFTkJNVEF3SGhjTk1UY3dOakl5TVRFMU1ETXpXaGNOCi1NamN3TmpJek1URTFNRE16V2pBdk1Rc3dDUVlEVlFRR0V3SlZTekVSTUE4R0ExVUVDZ3dJYldKbFpDQlVURk14Ci1EVEFMQmdOVkJBTU1CRU5CTVRFd1dUQVRCZ2NxaGtqT1BRSUJCZ2dxaGtqT1BRTUJCd05DQUFUWndSK1dLNk5CCi1GLzdyaUZkTjYzYzhoallkZFpSUjRscnpWTlB3aUJReG5ueHdwUHlyRDlBNmFQUG1MYzZTcUdPSlc0WkdWQ2NvCi1JQnplOVJKVmVpQjlvNEdKTUlHR01CMEdBMVVkRGdRV0JCU09TdDZlUHlNUlQ2UEdNYUlpN0ZxTlg5TUt0REJYCi1CZ05WSFNNRVVEQk9nQlF0eFpTTEpBa0V6KzJSS01RZXhNNkV0c2ZnY3FFenBERXdMekVMTUFrR0ExVUVCaE1DCi1WVXN4RVRBUEJnTlZCQW9NQ0cxaVpXUWdWRXhUTVEwd0N3WURWUVFEREFSRFFUQTVnZ0VCTUF3R0ExVWRFd1FGCi1NQU1CQWY4d0NnWUlLb1pJemowRUF3SURSd0F3UkFJZ04vL05xTTBGcmtyTWpteG9lQ1k5RGd4a0gyUjZzUTRkCi1OZ3R3Q1pBSXFFSUNJQnM0dnVwYVZjdXZuaTl0bHRiUDI2d2k3YzBGUitibFp1bzVEUElBM1NWZQotLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQotLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCi1NSUlCMXpDQ0FYMmdBd0lCQWdJQkFUQUtCZ2dxaGtqT1BRUURBakF2TVFzd0NRWURWUVFHRXdKVlN6RVJNQThHCi1BMVVFQ2d3SWJXSmxaQ0JVVEZNeERUQUxCZ05WQkFNTUJFTkJNRGt3SGhjTk1UY3dOakl5TVRFMU1ETXpXaGNOCi1NamN3TmpJek1URTFNRE16V2pBdk1Rc3dDUVlEVlFRR0V3SlZTekVSTUE4R0ExVUVDZ3dJYldKbFpDQlVURk14Ci1EVEFMQmdOVkJBTU1CRU5CTVRBd1dUQVRCZ2NxaGtqT1BRSUJCZ2dxaGtqT1BRTUJCd05DQUFSNmpsR0tiSmQ1Ci1oaUR4Tjc4OWdrT2N3cHlISTl3UndDckFEQU93T2tNZVBCUFJsd0dkbTdtdzdaL0VBbXUyNnpSbS9oY3lyczRNCi1xazJMYWJEalBJOVhvNEdKTUlHR01CMEdBMVVkRGdRV0JCUXR4WlNMSkFrRXorMlJLTVFleE02RXRzZmdjakJYCi1CZ05WSFNNRVVEQk9nQlQ2Z3lYSHpQSVBZYzFWcjFhR2lMTGVNaDRIcHFFenBERXdMekVMTUFrR0ExVUVCaE1DCi1WVXN4RVRBUEJnTlZCQW9NQ0cxaVpXUWdWRXhUTVEwd0N3WURWUVFEREFSRFFUQTRnZ0VCTUF3R0ExVWRFd1FGCi1NQU1CQWY4d0NnWUlLb1pJemowRUF3SURTQUF3UlFJZ1A3Uzh2RnN0ZlVCZE5lNnltNUdZRzVRK2FCVkVLcVJzCi1mVlc3SE5Va3RTWUNJUURvNkp1YTZvL0RKYnJwcTRxWVdxNWd2NHlHeXpQVE4rM0lhS3JFSUNkYWF3PT0KLS0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KLS0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQotTUlJQjFqQ0NBWDJnQXdJQkFnSUJBVEFLQmdncWhrak9QUVFEQWpBdk1Rc3dDUVlEVlFRR0V3SlZTekVSTUE4RwotQTFVRUNnd0liV0psWkNCVVRGTXhEVEFMQmdOVkJBTU1CRU5CTURnd0hoY05NVGN3TmpJeU1URTFNRE16V2hjTgotTWpjd05qSXpNVEUxTURNeldqQXZNUXN3Q1FZRFZRUUdFd0pWU3pFUk1BOEdBMVVFQ2d3SWJXSmxaQ0JVVEZNeAotRFRBTEJnTlZCQU1NQkVOQk1Ea3dXVEFUQmdjcWhrak9QUUlCQmdncWhrak9QUU1CQndOQ0FBUjdaQjE2K3Q2RQotc2ZhaEd5S1VHSlc1bWV6a3pqZGFZdmM0bGJKYUtOUndGUmZjM0YvZm1OT1NzVUZTZy9GME4rdlVFK2RvS2lQQwotOHdSd0x6dm00cys1bzRHSk1JR0dNQjBHQTFVZERnUVdCQlQ2Z3lYSHpQSVBZYzFWcjFhR2lMTGVNaDRIcGpCWAotQmdOVkhTTUVVREJPZ0JTNDBtTHQ5M1U4U2g4WkdpRFZBaFJTaUJQY1hxRXpwREV3THpFTE1Ba0dBMVVFQmhNQwotVlVzeEVUQVBCZ05WQkFvTUNHMWlaV1FnVkV4VE1RMHdDd1lEVlFRRERBUkRRVEEzZ2dFQk1Bd0dBMVVkRXdRRgotTUFNQkFmOHdDZ1lJS29aSXpqMEVBd0lEUndBd1JBSWdPNGVsMVpQaGxJbGkvcU5SMlNJRWl1dnM1TW15ODY4aQotTjJSdjVYL1Z4SUVDSUEvOHJVQUxReFczOFhTZEJWWDNlL2p6dTdqdTQ3bjFZd0VxRDlLOVdkVnYKLS0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KLS0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQotTUlJQjJEQ0NBWDJnQXdJQkFnSUJBVEFLQmdncWhrak9QUVFEQWpBdk1Rc3dDUVlEVlFRR0V3SlZTekVSTUE4RwotQTFVRUNnd0liV0psWkNCVVRGTXhEVEFMQmdOVkJBTU1CRU5CTURjd0hoY05NVGN3TmpJeU1URTFNRE15V2hjTgotTWpjd05qSXpNVEUxTURNeVdqQXZNUXN3Q1FZRFZRUUdFd0pWU3pFUk1BOEdBMVVFQ2d3SWJXSmxaQ0JVVEZNeAotRFRBTEJnTlZCQU1NQkVOQk1EZ3dXVEFUQmdjcWhrak9QUUlCQmdncWhrak9QUU1CQndOQ0FBUnBRZVEvWUdRagotbmw3U3pvNldTdEoxdTd4dW5UTDVqQmtYSDhhQVZTbTBxaVg0QUQvN1lQeGE1RW5HelpkTFRuMjV2UVZuZlFBRwotcE14OFAxbFlpR1lDbzRHSk1JR0dNQjBHQTFVZERnUVdCQlM0MG1MdDkzVThTaDhaR2lEVkFoUlNpQlBjWGpCWAotQmdOVkhTTUVVREJPZ0JSRXE1SjN0b0pQeFozTytzc0o1dmtrVTBSSkU2RXpwREV3THpFTE1Ba0dBMVVFQmhNQwotVlVzeEVUQVBCZ05WQkFvTUNHMWlaV1FnVkV4VE1RMHdDd1lEVlFRRERBUkRRVEEyZ2dFQk1Bd0dBMVVkRXdRRgotTUFNQkFmOHdDZ1lJS29aSXpqMEVBd0lEU1FBd1JnSWhBTndHZitGNGEra21YV3o4VWpTcFJrYVRvVFY2RUZXdwotL1RqemowdFFoRG9BQWlFQTE5UnhlV09WQkJwTTZMT0hnNnY1TGY1NFlOMXNua0xmK3NFWHlaQ3VXUVE9Ci0tLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCi0tLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KLU1JSUIyRENDQVgyZ0F3SUJBZ0lCQVRBS0JnZ3Foa2pPUFFRREFqQXZNUXN3Q1FZRFZRUUdFd0pWU3pFUk1BOEcKLUExVUVDZ3dJYldKbFpDQlVURk14RFRBTEJnTlZCQU1NQkVOQk1EWXdIaGNOTVRjd05qSXlNVEUxTURNeVdoY04KLU1qY3dOakl6TVRFMU1ETXlXakF2TVFzd0NRWURWUVFHRXdKVlN6RVJNQThHQTFVRUNnd0liV0psWkNCVVRGTXgKLURUQUxCZ05WQkFNTUJFTkJNRGN3V1RBVEJnY3Foa2pPUFFJQkJnZ3Foa2pPUFFNQkJ3TkNBQVNOT2o0ZDRNRUEKLTdwLzNtaWlqcUc0VG9FNG9wS1BBbSszQlRJR3JKVFlUMTQrK1RTaVVJQ2wwQVNYait4ZVVjTE1JYVhUTjA0MnMKLUxzSHhwU2h6UWFMMG80R0pNSUdHTUIwR0ExVWREZ1FXQkJSRXE1SjN0b0pQeFozTytzc0o1dmtrVTBSSkV6QlgKLUJnTlZIU01FVURCT2dCU2pvdllhQy9tNkxpOVRwMFY5aVpSczkyNjdRNkV6cERFd0x6RUxNQWtHQTFVRUJoTUMKLVZVc3hFVEFQQmdOVkJBb01DRzFpWldRZ1ZFeFRNUTB3Q3dZRFZRUUREQVJEUVRBMWdnRUJNQXdHQTFVZEV3UUYKLU1BTUJBZjh3Q2dZSUtvWkl6ajBFQXdJRFNRQXdSZ0loQUtHY2YrYzQ0MmMvWGl3dWJiYWlRdnNvWjdFb1Z4dU0KLW9LbWlhMGdQeUJOa0FpRUE4M2Fzako1RkRYUXVMeVpwY3p2aVhyYm1xZ0NQT2ZZYWR0dmtjMGN4TWlzPQotLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQotLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCi1NSUlCMWpDQ0FYMmdBd0lCQWdJQkFUQUtCZ2dxaGtqT1BRUURBakF2TVFzd0NRWURWUVFHRXdKVlN6RVJNQThHCi1BMVVFQ2d3SWJXSmxaQ0JVVEZNeERUQUxCZ05WQkFNTUJFTkJNRFV3SGhjTk1UY3dOakl5TVRFMU1ETXlXaGNOCi1NamN3TmpJek1URTFNRE15V2pBdk1Rc3dDUVlEVlFRR0V3SlZTekVSTUE4R0ExVUVDZ3dJYldKbFpDQlVURk14Ci1EVEFMQmdOVkJBTU1CRU5CTURZd1dUQVRCZ2NxaGtqT1BRSUJCZ2dxaGtqT1BRTUJCd05DQUFTQTlxV29BVUhyCi1ubisza3h5TnJqUEprODJXRExpbVcyMVJONTF1eHBvYmFkdjhZZ0dFRFJkUCtPayt1UnFRU1VzQTZaWGZGM2lHCi1yMkdqZlEzd01ESDhvNEdKTUlHR01CMEdBMVVkRGdRV0JCU2pvdllhQy9tNkxpOVRwMFY5aVpSczkyNjdRekJYCi1CZ05WSFNNRVVEQk9nQlRYaDA2TUFWOVM0bDRsRzFUS09yS1JCaDRxbjZFenBERXdMekVMTUFrR0ExVUVCaE1DCi1WVXN4RVRBUEJnTlZCQW9NQ0cxaVpXUWdWRXhUTVEwd0N3WURWUVFEREFSRFFUQTBnZ0VCTUF3R0ExVWRFd1FGCi1NQU1CQWY4d0NnWUlLb1pJemowRUF3SURSd0F3UkFJZ2NqWk5GV0p0bERtb1BaYkF4cXNHY3pSWUswbGZQZ3U2Ci1nMUg3cHAwY2Urd0NJRGo5QlJaTTJPQjlFRjBlK01ES0dqeVpHZnZmckw2SXI0N3gvS3JNNkg4VAotLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQotLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCi1NSUlCMXpDQ0FYMmdBd0lCQWdJQkFUQUtCZ2dxaGtqT1BRUURBakF2TVFzd0NRWURWUVFHRXdKVlN6RVJNQThHCi1BMVVFQ2d3SWJXSmxaQ0JVVEZNeERUQUxCZ05WQkFNTUJFTkJNRFF3SGhjTk1UY3dOakl5TVRFMU1ETXlXaGNOCi1NamN3TmpJek1URTFNRE15V2pBdk1Rc3dDUVlEVlFRR0V3SlZTekVSTUE4R0ExVUVDZ3dJYldKbFpDQlVURk14Ci1EVEFMQmdOVkJBTU1CRU5CTURVd1dUQVRCZ2NxaGtqT1BRSUJCZ2dxaGtqT1BRTUJCd05DQUFRRWRUME9GZjVHCi1VY3JnWDJYbGxDeUp6UDk0Tlo0NjRHc2dCNnBzTkxzRGVMK2o3QVUrb0p5N1ZMdlcvbEhoM09EZ2wwOFo5YmhxCi1MRkJtTmpuSGJtOFFvNEdKTUlHR01CMEdBMVVkRGdRV0JCVFhoMDZNQVY5UzRsNGxHMVRLT3JLUkJoNHFuekJYCi1CZ05WSFNNRVVEQk9nQlFveDRGMU5zWnVubHNkdW9HdnpJZ1JTWWZCMzZFenBERXdMekVMTUFrR0ExVUVCaE1DCi1WVXN4RVRBUEJnTlZCQW9NQ0cxaVpXUWdWRXhUTVEwd0N3WURWUVFEREFSRFFUQXpnZ0VCTUF3R0ExVWRFd1FGCi1NQU1CQWY4d0NnWUlLb1pJemowRUF3SURTQUF3UlFJaEFJVysrenFEWmxMTFVrL2VtZVBvaGROT3A1Sk8zd1M5Ci1YdmtCSjZXdWE3R0JBaUFkeCtFS21kalZyd256clFsdFRnbm1TZkdNWGhLTllpZkszdUQ4M1czcGNRPT0KLS0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KLS0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQotTUlJQjFqQ0NBWDJnQXdJQkFnSUJBVEFLQmdncWhrak9QUVFEQWpBdk1Rc3dDUVlEVlFRR0V3SlZTekVSTUE4RwotQTFVRUNnd0liV0psWkNCVVRGTXhEVEFMQmdOVkJBTU1CRU5CTURNd0hoY05NVGN3TmpJeU1URTFNRE15V2hjTgotTWpjd05qSXpNVEUxTURNeVdqQXZNUXN3Q1FZRFZRUUdFd0pWU3pFUk1BOEdBMVVFQ2d3SWJXSmxaQ0JVVEZNeAotRFRBTEJnTlZCQU1NQkVOQk1EUXdXVEFUQmdjcWhrak9QUUlCQmdncWhrak9QUU1CQndOQ0FBUVVYRGdjVVZOVAotOWhvdmJaRTVITDZyak9iN0M1NXdFdVdLVGhWL0NjWjRyV3JYeDdWWEhZZEQvUjNhREE3SlN2WXBtMnNUb2s0aQotc2JsRHpoWk0vR0RObzRHSk1JR0dNQjBHQTFVZERnUVdCQlFveDRGMU5zWnVubHNkdW9HdnpJZ1JTWWZCM3pCWAotQmdOVkhTTUVVREJPZ0JRQXB6WmR0QmREM2RMeG91UXByL2FEaVZ0dGQ2RXpwREV3THpFTE1Ba0dBMVVFQmhNQwotVlVzeEVUQVBCZ05WQkFvTUNHMWlaV1FnVkV4VE1RMHdDd1lEVlFRRERBUkRRVEF5Z2dFQk1Bd0dBMVVkRXdRRgotTUFNQkFmOHdDZ1lJS29aSXpqMEVBd0lEUndBd1JBSWdBa2lOaHFGQVpYU1VXRURLOTFPWnZRR2RlWk90ZDZtQwotK1d2M2ZHazN0MjhDSUVLT3dpZGtVVFVhaVBkWjRlZm1BcitDRWVHemRxMjdvYjJTK25xcUhxZ1YKLS0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KLS0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQotTUlJQjJEQ0NBWDJnQXdJQkFnSUJBVEFLQmdncWhrak9QUVFEQWpBdk1Rc3dDUVlEVlFRR0V3SlZTekVSTUE4RwotQTFVRUNnd0liV0psWkNCVVRGTXhEVEFMQmdOVkJBTU1CRU5CTURJd0hoY05NVGN3TmpJeU1URTFNRE15V2hjTgotTWpjd05qSXpNVEUxTURNeVdqQXZNUXN3Q1FZRFZRUUdFd0pWU3pFUk1BOEdBMVVFQ2d3SWJXSmxaQ0JVVEZNeAotRFRBTEJnTlZCQU1NQkVOQk1ETXdXVEFUQmdjcWhrak9QUUlCQmdncWhrak9QUU1CQndOQ0FBUVJEWEROSWkxcAotZXJldWRocXdhMkxzbFhnc3huQjYzSHU1eTVsZysxV1BydUlZUHpEL0hvMEFQdmVWZHpGTFZqaTE5K2JFNCt0RgotUFlMMVNwc04xV2ZXbzRHSk1JR0dNQjBHQTFVZERnUVdCQlFBcHpaZHRCZEQzZEx4b3VRcHIvYURpVnR0ZHpCWAotQmdOVkhTTUVVREJPZ0JUNVJDZ1EwQWxaVFFiZkZCMis2K3cwWFJ2eWRhRXpwREV3THpFTE1Ba0dBMVVFQmhNQwotVlVzeEVUQVBCZ05WQkFvTUNHMWlaV1FnVkV4VE1RMHdDd1lEVlFRRERBUkRRVEF4Z2dFQk1Bd0dBMVVkRXdRRgotTUFNQkFmOHdDZ1lJS29aSXpqMEVBd0lEU1FBd1JnSWhBT25kKzdiQW9ma0hWYTRLRk5qdjNUQ2VndzFscmh1TQotOE9mOHdndnJURUdvQWlFQXNTOGlLTXBTZlhINEQwZWdnNGdMYW1FNmFrZGU5NjVyRHR5U1UrdmU5bGc9Ci0tLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCi0tLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KLU1JSUIxekNDQVgyZ0F3SUJBZ0lCQVRBS0JnZ3Foa2pPUFFRREFqQXZNUXN3Q1FZRFZRUUdFd0pWU3pFUk1BOEcKLUExVUVDZ3dJYldKbFpDQlVURk14RFRBTEJnTlZCQU1NQkVOQk1ERXdIaGNOTVRjd05qSXlNVEUxTURNeVdoY04KLU1qY3dOakl6TVRFMU1ETXlXakF2TVFzd0NRWURWUVFHRXdKVlN6RVJNQThHQTFVRUNnd0liV0psWkNCVVRGTXgKLURUQUxCZ05WQkFNTUJFTkJNREl3V1RBVEJnY3Foa2pPUFFJQkJnZ3Foa2pPUFFNQkJ3TkNBQVFXSHB2MWk2bGYKLXd2TlBPUDVrYTZTMG41NUV2em9hWUs2cGJUWFA2eU1PVy80WFpTUEt4NVpvcTRGTWUwY0t6R0lJRkwxcnpqMVYKLTJjellCK3F2TGh5aW80R0pNSUdHTUIwR0ExVWREZ1FXQkJUNVJDZ1EwQWxaVFFiZkZCMis2K3cwWFJ2eWRUQlgKLUJnTlZIU01FVURCT2dCU2gzdUhrWDVuajg2eUZFRndqc2NTV000MFArcUV6cERFd0x6RUxNQWtHQTFVRUJoTUMKLVZVc3hFVEFQQmdOVkJBb01DRzFpWldRZ1ZFeFRNUTB3Q3dZRFZRUUREQVJEUVRBd2dnRUJNQXdHQTFVZEV3UUYKLU1BTUJBZjh3Q2dZSUtvWkl6ajBFQXdJRFNBQXdSUUloQUk3dW5HVy9ncjl0T2MzaStkRjVOODE1c3JnaCtGclgKLW9qOUV0NzRFY1NwVEFpQnVidit2T0gwREUwZ21ZSTExSGVBSWd1dFdxcU1JQzcyZFpsd1RGL1ZpM2c9PQotLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQotLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCi1NSUlCM2pDQ0FZV2dBd0lCQWdJQkFUQUtCZ2dxaGtqT1BRUURBakF2TVFzd0NRWURWUVFHRXdKVlN6RVJNQThHCi1BMVVFQ2d3SWJXSmxaQ0JVVEZNeERUQUxCZ05WQkFNTUJFTkJNREF3SGhjTk1UY3dOakl5TVRFMU1ETXlXaGNOCi1NamN3TmpJek1URTFNRE15V2pBdk1Rc3dDUVlEVlFRR0V3SlZTekVSTUE4R0ExVUVDZ3dJYldKbFpDQlVURk14Ci1EVEFMQmdOVkJBTU1CRU5CTURFd1dUQVRCZ2NxaGtqT1BRSUJCZ2dxaGtqT1BRTUJCd05DQUFRem5uOXpISHdMCi1HTzhWUjRXOVY3dk1seENkb29qekVPaVg1WTZKdFB0Rk96ODY2dWVIWTZ6b04wL21KNkRucW5TWGlsSklVVWVXCi02ZUdmcW1rYTdueGtvNEdSTUlHT01CMEdBMVVkRGdRV0JCU2gzdUhrWDVuajg2eUZFRndqc2NTV000MFArakJmCi1CZ05WSFNNRVdEQldnQlFsRll2VTVXYm9JNGZjZFBvaVFzOC9mUEhacmFFenBERXdMekVMTUFrR0ExVUVCaE1DCi1WVXN4RVRBUEJnTlZCQW9NQ0cxaVpXUWdWRXhUTVEwd0N3WURWUVFEREFSRFFUQXdnZ2tBL0tDV2hjcVRvSEF3Ci1EQVlEVlIwVEJBVXdBd0VCL3pBS0JnZ3Foa2pPUFFRREFnTkhBREJFQWlCYXNidWluUCtwSlRVNG9EQ1ZEOHpRCi0xckpCRFNPS0lFeVd1ODQvRDZIajZ3SWdWTVBVb08wMWJQaHpsbEFhL2dXOFhrL2RhZXkwOVNCZ04zQVQ5cFdVCi1UREE9Ci0tLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCi0tLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KLU1JSUJwVENDQVV1Z0F3SUJBZ0lKQVB5Z2xvWEtrNkJ3TUFvR0NDcUdTTTQ5QkFNQ01DOHhDekFKQmdOVkJBWVQKLUFsVkxNUkV3RHdZRFZRUUtEQWh0WW1Wa0lGUk1VekVOTUFzR0ExVUVBd3dFUTBFd01EQWVGdzB4TnpBMk1qSXgKLU1UVXdNekphRncweU56QTJNak14TVRVd016SmFNQzh4Q3pBSkJnTlZCQVlUQWxWTE1SRXdEd1lEVlFRS0RBaHQKLVltVmtJRlJNVXpFTk1Bc0dBMVVFQXd3RVEwRXdNREJaTUJNR0J5cUdTTTQ5QWdFR0NDcUdTTTQ5QXdFSEEwSUEKLUJGVzQxL3FBd0FQcHkrVHhkYzdQS216WnNxOUNQaXVqS1U0dnBGMWVrWG5HeDJIUDQyMFFvYndCVlZXaGt6Um0KLUx3ZGJvSDJqNjVkY0NLalE3bXYvZHhLalVEQk9NQjBHQTFVZERnUVdCQlFsRll2VTVXYm9JNGZjZFBvaVFzOC8KLWZQSFpyVEFmQmdOVkhTTUVHREFXZ0JRbEZZdlU1V2JvSTRmY2RQb2lRczgvZlBIWnJUQU1CZ05WSFJNRUJUQUQKLUFRSC9NQW9HQ0NxR1NNNDlCQU1DQTBnQU1FVUNJUUM3aVJjVnp3TXlmVks1aW1pcko3TXFKUTA0ZXVINENMT3QKLUlaK1NOZmFFUkFJZ1NVME1XRkRvc1ZFSXBnOFlNcUlIZUY3TWc0WnlINitmR2F6SmdWTHR0VVk9Ci0tLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCmRpZmYgLS1naXQgYS90ZXN0cy9kYXRhX2ZpbGVzL2Rpci1tYXhwYXRoL2MxOS5wZW0gYi90ZXN0cy9kYXRhX2ZpbGVzL2Rpci1tYXhwYXRoL2MxOS5wZW0KZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGIxZTI0ZTQuLjAwMDAwMDAKLS0tIGEvdGVzdHMvZGF0YV9maWxlcy9kaXItbWF4cGF0aC9jMTkucGVtCisrKyAvZGV2L251bGwKQEAgLTEsMjQwICswLDAgQEAKLS0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQotTUlJQjFqQ0NBWDJnQXdJQkFnSUJBVEFLQmdncWhrak9QUVFEQWpBdk1Rc3dDUVlEVlFRR0V3SlZTekVSTUE4RwotQTFVRUNnd0liV0psWkNCVVRGTXhEVEFMQmdOVkJBTU1CRU5CTVRnd0hoY05NVGN3TmpJeU1URTFNRE16V2hjTgotTWpjd05qSXpNVEUxTURNeldqQXZNUXN3Q1FZRFZRUUdFd0pWU3pFUk1BOEdBMVVFQ2d3SWJXSmxaQ0JVVEZNeAotRFRBTEJnTlZCQU1NQkVOQk1Ua3dXVEFUQmdjcWhrak9QUUlCQmdncWhrak9QUU1CQndOQ0FBUUp5UkNITkQ3OAotS3haSG9ISGRPVGpQdUQ2SGpIUG5FS1g4YXBibFVwRVRESnVMVzdZUjNWOFEwZFRhYytKSGlSNmUybDREbERiZgotNWJUaXlGb0F6dzl5bzRHSk1JR0dNQjBHQTFVZERnUVdCQlJRTWM5NGtUcVcrelFPM2xvMldNSS84MWszY3pCWAotQmdOVkhTTUVVREJPZ0JTRGJJcFludGxoSjBHZ0lzeWQ3NVhSaGxDMThxRXpwREV3THpFTE1Ba0dBMVVFQmhNQwotVlVzeEVUQVBCZ05WQkFvTUNHMWlaV1FnVkV4VE1RMHdDd1lEVlFRRERBUkRRVEUzZ2dFQk1Bd0dBMVVkRXdRRgotTUFNQkFmOHdDZ1lJS29aSXpqMEVBd0lEUndBd1JBSWdJekdPWnFKUm12eWd6dkxtOHp4WkZ5b05wY1Q3ZTI2SAotblpkNXhGSXpFYWtDSUhHWWNVWHp0K293U1ZsTG1ybFc4Z1FjQjgxRXJRYnh1QlRBc3ZwYWFLU1MKLS0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KLS0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQotTUlJQjJEQ0NBWDJnQXdJQkFnSUJBVEFLQmdncWhrak9QUVFEQWpBdk1Rc3dDUVlEVlFRR0V3SlZTekVSTUE4RwotQTFVRUNnd0liV0psWkNCVVRGTXhEVEFMQmdOVkJBTU1CRU5CTVRjd0hoY05NVGN3TmpJeU1URTFNRE16V2hjTgotTWpjd05qSXpNVEUxTURNeldqQXZNUXN3Q1FZRFZRUUdFd0pWU3pFUk1BOEdBMVVFQ2d3SWJXSmxaQ0JVVEZNeAotRFRBTEJnTlZCQU1NQkVOQk1UZ3dXVEFUQmdjcWhrak9QUUlCQmdncWhrak9QUU1CQndOQ0FBU3NjL0prTmNZZgotYk1ncE9mckw1a0tPR3hPSmFHUzZTUUllTk8zM1VlQnBUb2UxYlUyYWNONjUyeGp2Y0dvMGZKRXR4ZzJmY1BIUgotaFRuR01CRDF1MU4ybzRHSk1JR0dNQjBHQTFVZERnUVdCQlNEYklwWW50bGhKMEdnSXN5ZDc1WFJobEMxOGpCWAotQmdOVkhTTUVVREJPZ0JTbmpXdnBXeFpjRm5mUTJLR3RDZy91NmZUL0Q2RXpwREV3THpFTE1Ba0dBMVVFQmhNQwotVlVzeEVUQVBCZ05WQkFvTUNHMWlaV1FnVkV4VE1RMHdDd1lEVlFRRERBUkRRVEUyZ2dFQk1Bd0dBMVVkRXdRRgotTUFNQkFmOHdDZ1lJS29aSXpqMEVBd0lEU1FBd1JnSWhBSm8yTlhmSlUxc0s2U1ZUdTRPVjIxRktJVGxYbnRNaQotb2VuWU1zQmp6TzhvQWlFQWlkU0VMY0xqakFIaTNtZkJBUnZDZ0tsUmhtYk5FTUNIUVQ3SGE3WlFvUnc9Ci0tLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCi0tLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KLU1JSUIxekNDQVgyZ0F3SUJBZ0lCQVRBS0JnZ3Foa2pPUFFRREFqQXZNUXN3Q1FZRFZRUUdFd0pWU3pFUk1BOEcKLUExVUVDZ3dJYldKbFpDQlVURk14RFRBTEJnTlZCQU1NQkVOQk1UWXdIaGNOTVRjd05qSXlNVEUxTURNeldoY04KLU1qY3dOakl6TVRFMU1ETXpXakF2TVFzd0NRWURWUVFHRXdKVlN6RVJNQThHQTFVRUNnd0liV0psWkNCVVRGTXgKLURUQUxCZ05WQkFNTUJFTkJNVGN3V1RBVEJnY3Foa2pPUFFJQkJnZ3Foa2pPUFFNQkJ3TkNBQVJySVNxMnpPOW0KLUQyOVlDTEhCNTZGZFUvUklOdFJoZmVMdE0rdTVvM0hhQW5vcHkwUzk4Unp1RUdFTGpwenI4Wkk2a2tNTVpzajgKLW5GWlFGOEhmdUUwZ280R0pNSUdHTUIwR0ExVWREZ1FXQkJTbmpXdnBXeFpjRm5mUTJLR3RDZy91NmZUL0R6QlgKLUJnTlZIU01FVURCT2dCUlR3M0swUHN5M3UvNiszS0tTb2FRcUpuUHZQcUV6cERFd0x6RUxNQWtHQTFVRUJoTUMKLVZVc3hFVEFQQmdOVkJBb01DRzFpWldRZ1ZFeFRNUTB3Q3dZRFZRUUREQVJEUVRFMWdnRUJNQXdHQTFVZEV3UUYKLU1BTUJBZjh3Q2dZSUtvWkl6ajBFQXdJRFNBQXdSUUlnRGdYam9jNkZmTUY1VzBOemlWNnZ4MkJPUE5XYXYwMVoKLXluRVA0aDlVTG5VQ0lRQzFyVTRzRUlkM1VkanpUS2hwU0dUS3RhT3VQRytiMFlkRU1QaW1JNGptVnc9PQotLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQotLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCi1NSUlCMkRDQ0FYMmdBd0lCQWdJQkFUQUtCZ2dxaGtqT1BRUURBakF2TVFzd0NRWURWUVFHRXdKVlN6RVJNQThHCi1BMVVFQ2d3SWJXSmxaQ0JVVEZNeERUQUxCZ05WQkFNTUJFTkJNVFV3SGhjTk1UY3dOakl5TVRFMU1ETXpXaGNOCi1NamN3TmpJek1URTFNRE16V2pBdk1Rc3dDUVlEVlFRR0V3SlZTekVSTUE4R0ExVUVDZ3dJYldKbFpDQlVURk14Ci1EVEFMQmdOVkJBTU1CRU5CTVRZd1dUQVRCZ2NxaGtqT1BRSUJCZ2dxaGtqT1BRTUJCd05DQUFRN1ZzcDdKbUROCi1rZ1BoLyt6bUlQa2Q3bzB4b3QvV1BNRm4zdUFzR3RzVTM4NU1GMGZtaGZGTGhSYmJIOWg0SmpZSGo4eTBzcFUzCi1idVVYaGZ0dkFaVmJvNEdKTUlHR01CMEdBMVVkRGdRV0JCUlR3M0swUHN5M3UvNiszS0tTb2FRcUpuUHZQakJYCi1CZ05WSFNNRVVEQk9nQlIxbVhscmRXNXJ4MVZucU1NblVCWG8wV1dHV3FFenBERXdMekVMTUFrR0ExVUVCaE1DCi1WVXN4RVRBUEJnTlZCQW9NQ0cxaVpXUWdWRXhUTVEwd0N3WURWUVFEREFSRFFURTBnZ0VCTUF3R0ExVWRFd1FGCi1NQU1CQWY4d0NnWUlLb1pJemowRUF3SURTUUF3UmdJaEFNSm5HakU5djNTanVHZmkwak5CeXJ3eU5maGxUSE1oCi1GaFBRaWROckRwWHdBaUVBcVl0TmlWOHQ5UnJBYTlHQzZGV0R1SnB2SWlVNkZzRStsRnE2dUlxL0oyRT0KLS0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KLS0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQotTUlJQjF6Q0NBWDJnQXdJQkFnSUJBVEFLQmdncWhrak9QUVFEQWpBdk1Rc3dDUVlEVlFRR0V3SlZTekVSTUE4RwotQTFVRUNnd0liV0psWkNCVVRGTXhEVEFMQmdOVkJBTU1CRU5CTVRRd0hoY05NVGN3TmpJeU1URTFNRE16V2hjTgotTWpjd05qSXpNVEUxTURNeldqQXZNUXN3Q1FZRFZRUUdFd0pWU3pFUk1BOEdBMVVFQ2d3SWJXSmxaQ0JVVEZNeAotRFRBTEJnTlZCQU1NQkVOQk1UVXdXVEFUQmdjcWhrak9QUUlCQmdncWhrak9QUU1CQndOQ0FBUWxLVWlNb1NzcwotL2hzVGFzZWRxZEIyQkNPR0poVHQwaGdVR2VVbldOWjFzdk80eW4wR2tGSFowOCsrZmwyTUtxanBqK1ZYcTBKUwotRkZ5R1VPZ21naTNIbzRHSk1JR0dNQjBHQTFVZERnUVdCQlIxbVhscmRXNXJ4MVZucU1NblVCWG8wV1dHV2pCWAotQmdOVkhTTUVVREJPZ0JSTnNKQisrY2NTQm1iQ0NLQnhpNENqWFJPQms2RXpwREV3THpFTE1Ba0dBMVVFQmhNQwotVlVzeEVUQVBCZ05WQkFvTUNHMWlaV1FnVkV4VE1RMHdDd1lEVlFRRERBUkRRVEV6Z2dFQk1Bd0dBMVVkRXdRRgotTUFNQkFmOHdDZ1lJS29aSXpqMEVBd0lEU0FBd1JRSWhBS1lPSW8rZmRDUVJxcEg0TE44cVVLMWFLekttV0d4UwotZkd6RUVrZy8yOWJNQWlBbDk1Y211Y29DRE1xMkFiOENvYzBkRXF5SjYrckFQTUxCQ2JHYXd5aVc2QT09Ci0tLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCi0tLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KLU1JSUIxekNDQVgyZ0F3SUJBZ0lCQVRBS0JnZ3Foa2pPUFFRREFqQXZNUXN3Q1FZRFZRUUdFd0pWU3pFUk1BOEcKLUExVUVDZ3dJYldKbFpDQlVURk14RFRBTEJnTlZCQU1NQkVOQk1UTXdIaGNOTVRjd05qSXlNVEUxTURNeldoY04KLU1qY3dOakl6TVRFMU1ETXpXakF2TVFzd0NRWURWUVFHRXdKVlN6RVJNQThHQTFVRUNnd0liV0psWkNCVVRGTXgKLURUQUxCZ05WQkFNTUJFTkJNVFF3V1RBVEJnY3Foa2pPUFFJQkJnZ3Foa2pPUFFNQkJ3TkNBQVRSTVpOMFJIelAKLWRvbk5tWnVxOVhQaHp2UTUyVGFva3hUMzlxcFF0bEZ5dlV1RUdLckxvTnZkY3BBUmFBMHJHcHV0NlJMQVFPVlUKLWlOVmxKM0lwajc4OW80R0pNSUdHTUIwR0ExVWREZ1FXQkJSTnNKQisrY2NTQm1iQ0NLQnhpNENqWFJPQmt6QlgKLUJnTlZIU01FVURCT2dCVG1WblVTRjJNWXd3cy9uQ012N2Ixd0pWa0RtcUV6cERFd0x6RUxNQWtHQTFVRUJoTUMKLVZVc3hFVEFQQmdOVkJBb01DRzFpWldRZ1ZFeFRNUTB3Q3dZRFZRUUREQVJEUVRFeWdnRUJNQXdHQTFVZEV3UUYKLU1BTUJBZjh3Q2dZSUtvWkl6ajBFQXdJRFNBQXdSUUlnVmZ1THBqcDA4QWF4S1dmNmN1WlVVQ1JkN0NvalNTMUkKLTcxaHplVXlGUytzQ0lRRE5KSTZQL3BCYmlIZ1RhR2xCQWdmY0VmbXhtYlkwbjR4Wm5kdHhJa215VkE9PQotLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQotLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCi1NSUlCMXpDQ0FYMmdBd0lCQWdJQkFUQUtCZ2dxaGtqT1BRUURBakF2TVFzd0NRWURWUVFHRXdKVlN6RVJNQThHCi1BMVVFQ2d3SWJXSmxaQ0JVVEZNeERUQUxCZ05WQkFNTUJFTkJNVEl3SGhjTk1UY3dOakl5TVRFMU1ETXpXaGNOCi1NamN3TmpJek1URTFNRE16V2pBdk1Rc3dDUVlEVlFRR0V3SlZTekVSTUE4R0ExVUVDZ3dJYldKbFpDQlVURk14Ci1EVEFMQmdOVkJBTU1CRU5CTVRNd1dUQVRCZ2NxaGtqT1BRSUJCZ2dxaGtqT1BRTUJCd05DQUFUcmt6Q0pMem5oCi1saG5zdjFSWEI5a2ZlYUQrY0lydVBRMGNJdEJER3BkdkQ4eGJCVnZRY2k0K1JHMlJWVUNTV1Joa0ZZalNzVVNNCi0wUUhNUW5CRmxodzJvNEdKTUlHR01CMEdBMVVkRGdRV0JCVG1WblVTRjJNWXd3cy9uQ012N2Ixd0pWa0RtakJYCi1CZ05WSFNNRVVEQk9nQlRaVHRiaStqMFNtL1pzLytnVGtXZEFTcFF6ZnFFenBERXdMekVMTUFrR0ExVUVCaE1DCi1WVXN4RVRBUEJnTlZCQW9NQ0cxaVpXUWdWRXhUTVEwd0N3WURWUVFEREFSRFFURXhnZ0VCTUF3R0ExVWRFd1FGCi1NQU1CQWY4d0NnWUlLb1pJemowRUF3SURTQUF3UlFJZ1dzbStySEpnd1VFeU5tOEVLYkVkczV5dXJwcDUvM3k1Ci1Qc3ZYSlZEcXhvZ0NJUURVUDBKY2wzQTkwN0NFMnRQVlhTZ0Q2TFE2Q1B1MTltaXhlbVB3NjB5aWpBPT0KLS0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KLS0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQotTUlJQjFqQ0NBWDJnQXdJQkFnSUJBVEFLQmdncWhrak9QUVFEQWpBdk1Rc3dDUVlEVlFRR0V3SlZTekVSTUE4RwotQTFVRUNnd0liV0psWkNCVVRGTXhEVEFMQmdOVkJBTU1CRU5CTVRFd0hoY05NVGN3TmpJeU1URTFNRE16V2hjTgotTWpjd05qSXpNVEUxTURNeldqQXZNUXN3Q1FZRFZRUUdFd0pWU3pFUk1BOEdBMVVFQ2d3SWJXSmxaQ0JVVEZNeAotRFRBTEJnTlZCQU1NQkVOQk1USXdXVEFUQmdjcWhrak9QUUlCQmdncWhrak9QUU1CQndOQ0FBVERFOUxQbExQYwotZ1ozYjBCY2hSL0FraE5FUDlIQWF2d1lhZEpJeXpvUG81ZWRDVm5ib1FINzg2anNad1pOWm9DMGdIREFoQ21HYwotSWZSZW5JU0FvVnVQbzRHSk1JR0dNQjBHQTFVZERnUVdCQlRaVHRiaStqMFNtL1pzLytnVGtXZEFTcFF6ZmpCWAotQmdOVkhTTUVVREJPZ0JTT1N0NmVQeU1SVDZQR01hSWk3RnFOWDlNS3RLRXpwREV3THpFTE1Ba0dBMVVFQmhNQwotVlVzeEVUQVBCZ05WQkFvTUNHMWlaV1FnVkV4VE1RMHdDd1lEVlFRRERBUkRRVEV3Z2dFQk1Bd0dBMVVkRXdRRgotTUFNQkFmOHdDZ1lJS29aSXpqMEVBd0lEUndBd1JBSWdZWUY1QW5SVjdlaDJoTEQ1RHovL3BjZU1US3o5THM0NgotRTZEeHZiZkRIaWtDSUZ0dGxHck9DWlZ5UzRvY3NqdUtJRUxWVVg1cWZ5Z0kwc240a1UzcUNUczIKLS0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KLS0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQotTUlJQjFqQ0NBWDJnQXdJQkFnSUJBVEFLQmdncWhrak9QUVFEQWpBdk1Rc3dDUVlEVlFRR0V3SlZTekVSTUE4RwotQTFVRUNnd0liV0psWkNCVVRGTXhEVEFMQmdOVkJBTU1CRU5CTVRBd0hoY05NVGN3TmpJeU1URTFNRE16V2hjTgotTWpjd05qSXpNVEUxTURNeldqQXZNUXN3Q1FZRFZRUUdFd0pWU3pFUk1BOEdBMVVFQ2d3SWJXSmxaQ0JVVEZNeAotRFRBTEJnTlZCQU1NQkVOQk1URXdXVEFUQmdjcWhrak9QUUlCQmdncWhrak9QUU1CQndOQ0FBVFp3UitXSzZOQgotRi83cmlGZE42M2M4aGpZZGRaUlI0bHJ6Vk5Qd2lCUXhubnh3cFB5ckQ5QTZhUFBtTGM2U3FHT0pXNFpHVkNjbwotSUJ6ZTlSSlZlaUI5bzRHSk1JR0dNQjBHQTFVZERnUVdCQlNPU3Q2ZVB5TVJUNlBHTWFJaTdGcU5YOU1LdERCWAotQmdOVkhTTUVVREJPZ0JRdHhaU0xKQWtFeisyUktNUWV4TTZFdHNmZ2NxRXpwREV3THpFTE1Ba0dBMVVFQmhNQwotVlVzeEVUQVBCZ05WQkFvTUNHMWlaV1FnVkV4VE1RMHdDd1lEVlFRRERBUkRRVEE1Z2dFQk1Bd0dBMVVkRXdRRgotTUFNQkFmOHdDZ1lJS29aSXpqMEVBd0lEUndBd1JBSWdOLy9OcU0wRnJrck1qbXhvZUNZOURneGtIMlI2c1E0ZAotTmd0d0NaQUlxRUlDSUJzNHZ1cGFWY3V2bmk5dGx0YlAyNndpN2MwRlIrYmxadW81RFBJQTNTVmUKLS0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KLS0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQotTUlJQjF6Q0NBWDJnQXdJQkFnSUJBVEFLQmdncWhrak9QUVFEQWpBdk1Rc3dDUVlEVlFRR0V3SlZTekVSTUE4RwotQTFVRUNnd0liV0psWkNCVVRGTXhEVEFMQmdOVkJBTU1CRU5CTURrd0hoY05NVGN3TmpJeU1URTFNRE16V2hjTgotTWpjd05qSXpNVEUxTURNeldqQXZNUXN3Q1FZRFZRUUdFd0pWU3pFUk1BOEdBMVVFQ2d3SWJXSmxaQ0JVVEZNeAotRFRBTEJnTlZCQU1NQkVOQk1UQXdXVEFUQmdjcWhrak9QUUlCQmdncWhrak9QUU1CQndOQ0FBUjZqbEdLYkpkNQotaGlEeE43ODlna09jd3B5SEk5d1J3Q3JBREFPd09rTWVQQlBSbHdHZG03bXc3Wi9FQW11MjZ6Um0vaGN5cnM0TQotcWsyTGFiRGpQSTlYbzRHSk1JR0dNQjBHQTFVZERnUVdCQlF0eFpTTEpBa0V6KzJSS01RZXhNNkV0c2ZnY2pCWAotQmdOVkhTTUVVREJPZ0JUNmd5WEh6UElQWWMxVnIxYUdpTExlTWg0SHBxRXpwREV3THpFTE1Ba0dBMVVFQmhNQwotVlVzeEVUQVBCZ05WQkFvTUNHMWlaV1FnVkV4VE1RMHdDd1lEVlFRRERBUkRRVEE0Z2dFQk1Bd0dBMVVkRXdRRgotTUFNQkFmOHdDZ1lJS29aSXpqMEVBd0lEU0FBd1JRSWdQN1M4dkZzdGZVQmROZTZ5bTVHWUc1USthQlZFS3FScwotZlZXN0hOVWt0U1lDSVFEbzZKdWE2by9ESmJycHE0cVlXcTVndjR5R3l6UFROKzNJYUtyRUlDZGFhdz09Ci0tLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCi0tLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KLU1JSUIxakNDQVgyZ0F3SUJBZ0lCQVRBS0JnZ3Foa2pPUFFRREFqQXZNUXN3Q1FZRFZRUUdFd0pWU3pFUk1BOEcKLUExVUVDZ3dJYldKbFpDQlVURk14RFRBTEJnTlZCQU1NQkVOQk1EZ3dIaGNOTVRjd05qSXlNVEUxTURNeldoY04KLU1qY3dOakl6TVRFMU1ETXpXakF2TVFzd0NRWURWUVFHRXdKVlN6RVJNQThHQTFVRUNnd0liV0psWkNCVVRGTXgKLURUQUxCZ05WQkFNTUJFTkJNRGt3V1RBVEJnY3Foa2pPUFFJQkJnZ3Foa2pPUFFNQkJ3TkNBQVI3WkIxNit0NkUKLXNmYWhHeUtVR0pXNW1lemt6amRhWXZjNGxiSmFLTlJ3RlJmYzNGL2ZtTk9Tc1VGU2cvRjBOK3ZVRStkb0tpUEMKLTh3UndMenZtNHMrNW80R0pNSUdHTUIwR0ExVWREZ1FXQkJUNmd5WEh6UElQWWMxVnIxYUdpTExlTWg0SHBqQlgKLUJnTlZIU01FVURCT2dCUzQwbUx0OTNVOFNoOFpHaURWQWhSU2lCUGNYcUV6cERFd0x6RUxNQWtHQTFVRUJoTUMKLVZVc3hFVEFQQmdOVkJBb01DRzFpWldRZ1ZFeFRNUTB3Q3dZRFZRUUREQVJEUVRBM2dnRUJNQXdHQTFVZEV3UUYKLU1BTUJBZjh3Q2dZSUtvWkl6ajBFQXdJRFJ3QXdSQUlnTzRlbDFaUGhsSWxpL3FOUjJTSUVpdXZzNU1teTg2OGkKLU4yUnY1WC9WeElFQ0lBLzhyVUFMUXhXMzhYU2RCVlgzZS9qenU3anU0N24xWXdFcUQ5SzlXZFZ2Ci0tLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCi0tLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KLU1JSUIyRENDQVgyZ0F3SUJBZ0lCQVRBS0JnZ3Foa2pPUFFRREFqQXZNUXN3Q1FZRFZRUUdFd0pWU3pFUk1BOEcKLUExVUVDZ3dJYldKbFpDQlVURk14RFRBTEJnTlZCQU1NQkVOQk1EY3dIaGNOTVRjd05qSXlNVEUxTURNeVdoY04KLU1qY3dOakl6TVRFMU1ETXlXakF2TVFzd0NRWURWUVFHRXdKVlN6RVJNQThHQTFVRUNnd0liV0psWkNCVVRGTXgKLURUQUxCZ05WQkFNTUJFTkJNRGd3V1RBVEJnY3Foa2pPUFFJQkJnZ3Foa2pPUFFNQkJ3TkNBQVJwUWVRL1lHUWoKLW5sN1N6bzZXU3RKMXU3eHVuVEw1akJrWEg4YUFWU20wcWlYNEFELzdZUHhhNUVuR3paZExUbjI1dlFWbmZRQUcKLXBNeDhQMWxZaUdZQ280R0pNSUdHTUIwR0ExVWREZ1FXQkJTNDBtTHQ5M1U4U2g4WkdpRFZBaFJTaUJQY1hqQlgKLUJnTlZIU01FVURCT2dCUkVxNUozdG9KUHhaM08rc3NKNXZra1UwUkpFNkV6cERFd0x6RUxNQWtHQTFVRUJoTUMKLVZVc3hFVEFQQmdOVkJBb01DRzFpWldRZ1ZFeFRNUTB3Q3dZRFZRUUREQVJEUVRBMmdnRUJNQXdHQTFVZEV3UUYKLU1BTUJBZjh3Q2dZSUtvWkl6ajBFQXdJRFNRQXdSZ0loQU53R2YrRjRhK2ttWFd6OFVqU3BSa2FUb1RWNkVGV3cKLS9UanpqMHRRaERvQUFpRUExOVJ4ZVdPVkJCcE02TE9IZzZ2NUxmNTRZTjFzbmtMZitzRVh5WkN1V1FRPQotLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQotLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCi1NSUlCMkRDQ0FYMmdBd0lCQWdJQkFUQUtCZ2dxaGtqT1BRUURBakF2TVFzd0NRWURWUVFHRXdKVlN6RVJNQThHCi1BMVVFQ2d3SWJXSmxaQ0JVVEZNeERUQUxCZ05WQkFNTUJFTkJNRFl3SGhjTk1UY3dOakl5TVRFMU1ETXlXaGNOCi1NamN3TmpJek1URTFNRE15V2pBdk1Rc3dDUVlEVlFRR0V3SlZTekVSTUE4R0ExVUVDZ3dJYldKbFpDQlVURk14Ci1EVEFMQmdOVkJBTU1CRU5CTURjd1dUQVRCZ2NxaGtqT1BRSUJCZ2dxaGtqT1BRTUJCd05DQUFTTk9qNGQ0TUVBCi03cC8zbWlpanFHNFRvRTRvcEtQQW0rM0JUSUdySlRZVDE0KytUU2lVSUNsMEFTWGoreGVVY0xNSWFYVE4wNDJzCi1Mc0h4cFNoelFhTDBvNEdKTUlHR01CMEdBMVVkRGdRV0JCUkVxNUozdG9KUHhaM08rc3NKNXZra1UwUkpFekJYCi1CZ05WSFNNRVVEQk9nQlNqb3ZZYUMvbTZMaTlUcDBWOWlaUnM5MjY3UTZFenBERXdMekVMTUFrR0ExVUVCaE1DCi1WVXN4RVRBUEJnTlZCQW9NQ0cxaVpXUWdWRXhUTVEwd0N3WURWUVFEREFSRFFUQTFnZ0VCTUF3R0ExVWRFd1FGCi1NQU1CQWY4d0NnWUlLb1pJemowRUF3SURTUUF3UmdJaEFLR2NmK2M0NDJjL1hpd3ViYmFpUXZzb1o3RW9WeHVNCi1vS21pYTBnUHlCTmtBaUVBODNhc2pKNUZEWFF1THlacGN6dmlYcmJtcWdDUE9mWWFkdHZrYzBjeE1pcz0KLS0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KLS0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQotTUlJQjFqQ0NBWDJnQXdJQkFnSUJBVEFLQmdncWhrak9QUVFEQWpBdk1Rc3dDUVlEVlFRR0V3SlZTekVSTUE4RwotQTFVRUNnd0liV0psWkNCVVRGTXhEVEFMQmdOVkJBTU1CRU5CTURVd0hoY05NVGN3TmpJeU1URTFNRE15V2hjTgotTWpjd05qSXpNVEUxTURNeVdqQXZNUXN3Q1FZRFZRUUdFd0pWU3pFUk1BOEdBMVVFQ2d3SWJXSmxaQ0JVVEZNeAotRFRBTEJnTlZCQU1NQkVOQk1EWXdXVEFUQmdjcWhrak9QUUlCQmdncWhrak9QUU1CQndOQ0FBU0E5cVdvQVVIcgotbm4rM2t4eU5yalBKazgyV0RMaW1XMjFSTjUxdXhwb2JhZHY4WWdHRURSZFArT2srdVJxUVNVc0E2WlhmRjNpRwotcjJHamZRM3dNREg4bzRHSk1JR0dNQjBHQTFVZERnUVdCQlNqb3ZZYUMvbTZMaTlUcDBWOWlaUnM5MjY3UXpCWAotQmdOVkhTTUVVREJPZ0JUWGgwNk1BVjlTNGw0bEcxVEtPcktSQmg0cW42RXpwREV3THpFTE1Ba0dBMVVFQmhNQwotVlVzeEVUQVBCZ05WQkFvTUNHMWlaV1FnVkV4VE1RMHdDd1lEVlFRRERBUkRRVEEwZ2dFQk1Bd0dBMVVkRXdRRgotTUFNQkFmOHdDZ1lJS29aSXpqMEVBd0lEUndBd1JBSWdjalpORldKdGxEbW9QWmJBeHFzR2N6UllLMGxmUGd1NgotZzFIN3BwMGNlK3dDSURqOUJSWk0yT0I5RUYwZStNREtHanlaR2Z2ZnJMNklyNDd4L0tyTTZIOFQKLS0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KLS0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQotTUlJQjF6Q0NBWDJnQXdJQkFnSUJBVEFLQmdncWhrak9QUVFEQWpBdk1Rc3dDUVlEVlFRR0V3SlZTekVSTUE4RwotQTFVRUNnd0liV0psWkNCVVRGTXhEVEFMQmdOVkJBTU1CRU5CTURRd0hoY05NVGN3TmpJeU1URTFNRE15V2hjTgotTWpjd05qSXpNVEUxTURNeVdqQXZNUXN3Q1FZRFZRUUdFd0pWU3pFUk1BOEdBMVVFQ2d3SWJXSmxaQ0JVVEZNeAotRFRBTEJnTlZCQU1NQkVOQk1EVXdXVEFUQmdjcWhrak9QUUlCQmdncWhrak9QUU1CQndOQ0FBUUVkVDBPRmY1RwotVWNyZ1gyWGxsQ3lKelA5NE5aNDY0R3NnQjZwc05Mc0RlTCtqN0FVK29KeTdWTHZXL2xIaDNPRGdsMDhaOWJocQotTEZCbU5qbkhibThRbzRHSk1JR0dNQjBHQTFVZERnUVdCQlRYaDA2TUFWOVM0bDRsRzFUS09yS1JCaDRxbnpCWAotQmdOVkhTTUVVREJPZ0JRb3g0RjFOc1p1bmxzZHVvR3Z6SWdSU1lmQjM2RXpwREV3THpFTE1Ba0dBMVVFQmhNQwotVlVzeEVUQVBCZ05WQkFvTUNHMWlaV1FnVkV4VE1RMHdDd1lEVlFRRERBUkRRVEF6Z2dFQk1Bd0dBMVVkRXdRRgotTUFNQkFmOHdDZ1lJS29aSXpqMEVBd0lEU0FBd1JRSWhBSVcrK3pxRFpsTExVay9lbWVQb2hkTk9wNUpPM3dTOQotWHZrQko2V3VhN0dCQWlBZHgrRUttZGpWcnduenJRbHRUZ25tU2ZHTVhoS05ZaWZLM3VEODNXM3BjUT09Ci0tLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCi0tLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KLU1JSUIxakNDQVgyZ0F3SUJBZ0lCQVRBS0JnZ3Foa2pPUFFRREFqQXZNUXN3Q1FZRFZRUUdFd0pWU3pFUk1BOEcKLUExVUVDZ3dJYldKbFpDQlVURk14RFRBTEJnTlZCQU1NQkVOQk1ETXdIaGNOTVRjd05qSXlNVEUxTURNeVdoY04KLU1qY3dOakl6TVRFMU1ETXlXakF2TVFzd0NRWURWUVFHRXdKVlN6RVJNQThHQTFVRUNnd0liV0psWkNCVVRGTXgKLURUQUxCZ05WQkFNTUJFTkJNRFF3V1RBVEJnY3Foa2pPUFFJQkJnZ3Foa2pPUFFNQkJ3TkNBQVFVWERnY1VWTlQKLTlob3ZiWkU1SEw2cmpPYjdDNTV3RXVXS1RoVi9DY1o0cldyWHg3VlhIWWREL1IzYURBN0pTdllwbTJzVG9rNGkKLXNibER6aFpNL0dETm80R0pNSUdHTUIwR0ExVWREZ1FXQkJRb3g0RjFOc1p1bmxzZHVvR3Z6SWdSU1lmQjN6QlgKLUJnTlZIU01FVURCT2dCUUFwelpkdEJkRDNkTHhvdVFwci9hRGlWdHRkNkV6cERFd0x6RUxNQWtHQTFVRUJoTUMKLVZVc3hFVEFQQmdOVkJBb01DRzFpWldRZ1ZFeFRNUTB3Q3dZRFZRUUREQVJEUVRBeWdnRUJNQXdHQTFVZEV3UUYKLU1BTUJBZjh3Q2dZSUtvWkl6ajBFQXdJRFJ3QXdSQUlnQWtpTmhxRkFaWFNVV0VESzkxT1p2UUdkZVpPdGQ2bUMKLStXdjNmR2szdDI4Q0lFS093aWRrVVRVYWlQZFo0ZWZtQXIrQ0VlR3pkcTI3b2IyUytucXFIcWdWCi0tLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCi0tLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KLU1JSUIyRENDQVgyZ0F3SUJBZ0lCQVRBS0JnZ3Foa2pPUFFRREFqQXZNUXN3Q1FZRFZRUUdFd0pWU3pFUk1BOEcKLUExVUVDZ3dJYldKbFpDQlVURk14RFRBTEJnTlZCQU1NQkVOQk1ESXdIaGNOTVRjd05qSXlNVEUxTURNeVdoY04KLU1qY3dOakl6TVRFMU1ETXlXakF2TVFzd0NRWURWUVFHRXdKVlN6RVJNQThHQTFVRUNnd0liV0psWkNCVVRGTXgKLURUQUxCZ05WQkFNTUJFTkJNRE13V1RBVEJnY3Foa2pPUFFJQkJnZ3Foa2pPUFFNQkJ3TkNBQVFSRFhETklpMXAKLWVyZXVkaHF3YTJMc2xYZ3N4bkI2M0h1NXk1bGcrMVdQcnVJWVB6RC9IbzBBUHZlVmR6RkxWamkxOStiRTQrdEYKLVBZTDFTcHNOMVdmV280R0pNSUdHTUIwR0ExVWREZ1FXQkJRQXB6WmR0QmREM2RMeG91UXByL2FEaVZ0dGR6QlgKLUJnTlZIU01FVURCT2dCVDVSQ2dRMEFsWlRRYmZGQjIrNit3MFhSdnlkYUV6cERFd0x6RUxNQWtHQTFVRUJoTUMKLVZVc3hFVEFQQmdOVkJBb01DRzFpWldRZ1ZFeFRNUTB3Q3dZRFZRUUREQVJEUVRBeGdnRUJNQXdHQTFVZEV3UUYKLU1BTUJBZjh3Q2dZSUtvWkl6ajBFQXdJRFNRQXdSZ0loQU9uZCs3YkFvZmtIVmE0S0ZOanYzVENlZ3cxbHJodU0KLThPZjh3Z3ZyVEVHb0FpRUFzUzhpS01wU2ZYSDREMGVnZzRnTGFtRTZha2RlOTY1ckR0eVNVK3ZlOWxnPQotLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQotLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCi1NSUlCMXpDQ0FYMmdBd0lCQWdJQkFUQUtCZ2dxaGtqT1BRUURBakF2TVFzd0NRWURWUVFHRXdKVlN6RVJNQThHCi1BMVVFQ2d3SWJXSmxaQ0JVVEZNeERUQUxCZ05WQkFNTUJFTkJNREV3SGhjTk1UY3dOakl5TVRFMU1ETXlXaGNOCi1NamN3TmpJek1URTFNRE15V2pBdk1Rc3dDUVlEVlFRR0V3SlZTekVSTUE4R0ExVUVDZ3dJYldKbFpDQlVURk14Ci1EVEFMQmdOVkJBTU1CRU5CTURJd1dUQVRCZ2NxaGtqT1BRSUJCZ2dxaGtqT1BRTUJCd05DQUFRV0hwdjFpNmxmCi13dk5QT1A1a2E2UzBuNTVFdnpvYVlLNnBiVFhQNnlNT1cvNFhaU1BLeDVab3E0Rk1lMGNLekdJSUZMMXJ6ajFWCi0yY3pZQitxdkxoeWlvNEdKTUlHR01CMEdBMVVkRGdRV0JCVDVSQ2dRMEFsWlRRYmZGQjIrNit3MFhSdnlkVEJYCi1CZ05WSFNNRVVEQk9nQlNoM3VIa1g1bmo4NnlGRUZ3anNjU1dNNDBQK3FFenBERXdMekVMTUFrR0ExVUVCaE1DCi1WVXN4RVRBUEJnTlZCQW9NQ0cxaVpXUWdWRXhUTVEwd0N3WURWUVFEREFSRFFUQXdnZ0VCTUF3R0ExVWRFd1FGCi1NQU1CQWY4d0NnWUlLb1pJemowRUF3SURTQUF3UlFJaEFJN3VuR1cvZ3I5dE9jM2krZEY1TjgxNXNyZ2grRnJYCi1vajlFdDc0RWNTcFRBaUJ1YnYrdk9IMERFMGdtWUkxMUhlQUlndXRXcXFNSUM3MmRabHdURi9WaTNnPT0KLS0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KLS0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQotTUlJQjNqQ0NBWVdnQXdJQkFnSUJBVEFLQmdncWhrak9QUVFEQWpBdk1Rc3dDUVlEVlFRR0V3SlZTekVSTUE4RwotQTFVRUNnd0liV0psWkNCVVRGTXhEVEFMQmdOVkJBTU1CRU5CTURBd0hoY05NVGN3TmpJeU1URTFNRE15V2hjTgotTWpjd05qSXpNVEUxTURNeVdqQXZNUXN3Q1FZRFZRUUdFd0pWU3pFUk1BOEdBMVVFQ2d3SWJXSmxaQ0JVVEZNeAotRFRBTEJnTlZCQU1NQkVOQk1ERXdXVEFUQmdjcWhrak9QUUlCQmdncWhrak9QUU1CQndOQ0FBUXpubjl6SEh3TAotR084VlI0VzlWN3ZNbHhDZG9vanpFT2lYNVk2SnRQdEZPejg2NnVlSFk2em9OMC9tSjZEbnFuU1hpbEpJVVVlVwotNmVHZnFta2E3bnhrbzRHUk1JR09NQjBHQTFVZERnUVdCQlNoM3VIa1g1bmo4NnlGRUZ3anNjU1dNNDBQK2pCZgotQmdOVkhTTUVXREJXZ0JRbEZZdlU1V2JvSTRmY2RQb2lRczgvZlBIWnJhRXpwREV3THpFTE1Ba0dBMVVFQmhNQwotVlVzeEVUQVBCZ05WQkFvTUNHMWlaV1FnVkV4VE1RMHdDd1lEVlFRRERBUkRRVEF3Z2drQS9LQ1doY3FUb0hBdwotREFZRFZSMFRCQVV3QXdFQi96QUtCZ2dxaGtqT1BRUURBZ05IQURCRUFpQmFzYnVpblArcEpUVTRvRENWRDh6UQotMXJKQkRTT0tJRXlXdTg0L0Q2SGo2d0lnVk1QVW9PMDFiUGh6bGxBYS9nVzhYay9kYWV5MDlTQmdOM0FUOXBXVQotVERBPQotLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQotLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCi1NSUlCcFRDQ0FVdWdBd0lCQWdJSkFQeWdsb1hLazZCd01Bb0dDQ3FHU000OUJBTUNNQzh4Q3pBSkJnTlZCQVlUCi1BbFZMTVJFd0R3WURWUVFLREFodFltVmtJRlJNVXpFTk1Bc0dBMVVFQXd3RVEwRXdNREFlRncweE56QTJNakl4Ci1NVFV3TXpKYUZ3MHlOekEyTWpNeE1UVXdNekphTUM4eEN6QUpCZ05WQkFZVEFsVkxNUkV3RHdZRFZRUUtEQWh0Ci1ZbVZrSUZSTVV6RU5NQXNHQTFVRUF3d0VRMEV3TURCWk1CTUdCeXFHU000OUFnRUdDQ3FHU000OUF3RUhBMElBCi1CRlc0MS9xQXdBUHB5K1R4ZGM3UEttelpzcTlDUGl1aktVNHZwRjFla1huR3gySFA0MjBRb2J3QlZWV2hrelJtCi1Md2Rib0gyajY1ZGNDS2pRN212L2R4S2pVREJPTUIwR0ExVWREZ1FXQkJRbEZZdlU1V2JvSTRmY2RQb2lRczgvCi1mUEhaclRBZkJnTlZIU01FR0RBV2dCUWxGWXZVNVdib0k0ZmNkUG9pUXM4L2ZQSFpyVEFNQmdOVkhSTUVCVEFECi1BUUgvTUFvR0NDcUdTTTQ5QkFNQ0EwZ0FNRVVDSVFDN2lSY1Z6d015ZlZLNWltaXJKN01xSlEwNGV1SDRDTE90Ci1JWitTTmZhRVJBSWdTVTBNV0ZEb3NWRUlwZzhZTXFJSGVGN01nNFp5SDYrZkdhekpnVkx0dFVZPQotLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQpkaWZmIC0tZ2l0IGEvdGVzdHMvZGF0YV9maWxlcy9kaXItbWF4cGF0aC9jMjAucGVtIGIvdGVzdHMvZGF0YV9maWxlcy9kaXItbWF4cGF0aC9jMjAucGVtCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmZjk3NDcyLi4wMDAwMDAwCi0tLSBhL3Rlc3RzL2RhdGFfZmlsZXMvZGlyLW1heHBhdGgvYzIwLnBlbQorKysgL2Rldi9udWxsCkBAIC0xLDI1MiArMCwwIEBACi0tLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KLU1JSUIxakNDQVgyZ0F3SUJBZ0lCQVRBS0JnZ3Foa2pPUFFRREFqQXZNUXN3Q1FZRFZRUUdFd0pWU3pFUk1BOEcKLUExVUVDZ3dJYldKbFpDQlVURk14RFRBTEJnTlZCQU1NQkVOQk1Ua3dIaGNOTVRjd05qSXlNVEUxTURNeldoY04KLU1qY3dOakl6TVRFMU1ETXpXakF2TVFzd0NRWURWUVFHRXdKVlN6RVJNQThHQTFVRUNnd0liV0psWkNCVVRGTXgKLURUQUxCZ05WQkFNTUJFTkJNakF3V1RBVEJnY3Foa2pPUFFJQkJnZ3Foa2pPUFFNQkJ3TkNBQVRHZWJyTjhKeEUKLWhlT2RDeEQrbWhuUTR6TVV4RjFXVWttQUFISVV3MDg5QllpSDlTQXdZUy9NNXRubCtSOGZianZvR3FTcFI2VGsKLVY5RVUzQ1F5SW94d280R0pNSUdHTUIwR0ExVWREZ1FXQkJUWnM2b0NoTDFjMkNTWlhZMllGUWtrcWcrbHpEQlgKLUJnTlZIU01FVURCT2dCUlFNYzk0a1RxVyt6UU8zbG8yV01JLzgxazNjNkV6cERFd0x6RUxNQWtHQTFVRUJoTUMKLVZVc3hFVEFQQmdOVkJBb01DRzFpWldRZ1ZFeFRNUTB3Q3dZRFZRUUREQVJEUVRFNGdnRUJNQXdHQTFVZEV3UUYKLU1BTUJBZjh3Q2dZSUtvWkl6ajBFQXdJRFJ3QXdSQUlnUlZHWlJlWEt2ZE1IaHdMYlB2YnJUVkxlQUdEcW1xTUgKLS9XcUQ0dTIzUUJnQ0lEL1F0RmFpYXdqdmlORkVkdFU3Sks2djRaWTBQUTBhMCtITFpJSExpOWFoCi0tLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCi0tLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KLU1JSUIxakNDQVgyZ0F3SUJBZ0lCQVRBS0JnZ3Foa2pPUFFRREFqQXZNUXN3Q1FZRFZRUUdFd0pWU3pFUk1BOEcKLUExVUVDZ3dJYldKbFpDQlVURk14RFRBTEJnTlZCQU1NQkVOQk1UZ3dIaGNOTVRjd05qSXlNVEUxTURNeldoY04KLU1qY3dOakl6TVRFMU1ETXpXakF2TVFzd0NRWURWUVFHRXdKVlN6RVJNQThHQTFVRUNnd0liV0psWkNCVVRGTXgKLURUQUxCZ05WQkFNTUJFTkJNVGt3V1RBVEJnY3Foa2pPUFFJQkJnZ3Foa2pPUFFNQkJ3TkNBQVFKeVJDSE5ENzgKLUt4WkhvSEhkT1RqUHVENkhqSFBuRUtYOGFwYmxVcEVUREp1TFc3WVIzVjhRMGRUYWMrSkhpUjZlMmw0RGxEYmYKLTViVGl5Rm9Benc5eW80R0pNSUdHTUIwR0ExVWREZ1FXQkJSUU1jOTRrVHFXK3pRTzNsbzJXTUkvODFrM2N6QlgKLUJnTlZIU01FVURCT2dCU0RiSXBZbnRsaEowR2dJc3lkNzVYUmhsQzE4cUV6cERFd0x6RUxNQWtHQTFVRUJoTUMKLVZVc3hFVEFQQmdOVkJBb01DRzFpWldRZ1ZFeFRNUTB3Q3dZRFZRUUREQVJEUVRFM2dnRUJNQXdHQTFVZEV3UUYKLU1BTUJBZjh3Q2dZSUtvWkl6ajBFQXdJRFJ3QXdSQUlnSXpHT1pxSlJtdnlnenZMbTh6eFpGeW9OcGNUN2UyNkgKLW5aZDV4Rkl6RWFrQ0lIR1ljVVh6dCtvd1NWbExtcmxXOGdRY0I4MUVyUWJ4dUJUQXN2cGFhS1NTCi0tLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCi0tLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KLU1JSUIyRENDQVgyZ0F3SUJBZ0lCQVRBS0JnZ3Foa2pPUFFRREFqQXZNUXN3Q1FZRFZRUUdFd0pWU3pFUk1BOEcKLUExVUVDZ3dJYldKbFpDQlVURk14RFRBTEJnTlZCQU1NQkVOQk1UY3dIaGNOTVRjd05qSXlNVEUxTURNeldoY04KLU1qY3dOakl6TVRFMU1ETXpXakF2TVFzd0NRWURWUVFHRXdKVlN6RVJNQThHQTFVRUNnd0liV0psWkNCVVRGTXgKLURUQUxCZ05WQkFNTUJFTkJNVGd3V1RBVEJnY3Foa2pPUFFJQkJnZ3Foa2pPUFFNQkJ3TkNBQVNzYy9Ka05jWWYKLWJNZ3BPZnJMNWtLT0d4T0phR1M2U1FJZU5PMzNVZUJwVG9lMWJVMmFjTjY1MnhqdmNHbzBmSkV0eGcyZmNQSFIKLWhUbkdNQkQxdTFOMm80R0pNSUdHTUIwR0ExVWREZ1FXQkJTRGJJcFludGxoSjBHZ0lzeWQ3NVhSaGxDMThqQlgKLUJnTlZIU01FVURCT2dCU25qV3ZwV3haY0ZuZlEyS0d0Q2cvdTZmVC9ENkV6cERFd0x6RUxNQWtHQTFVRUJoTUMKLVZVc3hFVEFQQmdOVkJBb01DRzFpWldRZ1ZFeFRNUTB3Q3dZRFZRUUREQVJEUVRFMmdnRUJNQXdHQTFVZEV3UUYKLU1BTUJBZjh3Q2dZSUtvWkl6ajBFQXdJRFNRQXdSZ0loQUpvMk5YZkpVMXNLNlNWVHU0T1YyMUZLSVRsWG50TWkKLW9lbllNc0Jqek84b0FpRUFpZFNFTGNMampBSGkzbWZCQVJ2Q2dLbFJobWJORU1DSFFUN0hhN1pRb1J3PQotLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQotLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCi1NSUlCMXpDQ0FYMmdBd0lCQWdJQkFUQUtCZ2dxaGtqT1BRUURBakF2TVFzd0NRWURWUVFHRXdKVlN6RVJNQThHCi1BMVVFQ2d3SWJXSmxaQ0JVVEZNeERUQUxCZ05WQkFNTUJFTkJNVFl3SGhjTk1UY3dOakl5TVRFMU1ETXpXaGNOCi1NamN3TmpJek1URTFNRE16V2pBdk1Rc3dDUVlEVlFRR0V3SlZTekVSTUE4R0ExVUVDZ3dJYldKbFpDQlVURk14Ci1EVEFMQmdOVkJBTU1CRU5CTVRjd1dUQVRCZ2NxaGtqT1BRSUJCZ2dxaGtqT1BRTUJCd05DQUFScklTcTJ6TzltCi1EMjlZQ0xIQjU2RmRVL1JJTnRSaGZlTHRNK3U1bzNIYUFub3B5MFM5OFJ6dUVHRUxqcHpyOFpJNmtrTU1ac2o4Ci1uRlpRRjhIZnVFMGdvNEdKTUlHR01CMEdBMVVkRGdRV0JCU25qV3ZwV3haY0ZuZlEyS0d0Q2cvdTZmVC9EekJYCi1CZ05WSFNNRVVEQk9nQlJUdzNLMFBzeTN1LzYrM0tLU29hUXFKblB2UHFFenBERXdMekVMTUFrR0ExVUVCaE1DCi1WVXN4RVRBUEJnTlZCQW9NQ0cxaVpXUWdWRXhUTVEwd0N3WURWUVFEREFSRFFURTFnZ0VCTUF3R0ExVWRFd1FGCi1NQU1CQWY4d0NnWUlLb1pJemowRUF3SURTQUF3UlFJZ0RnWGpvYzZGZk1GNVcwTnppVjZ2eDJCT1BOV2F2MDFaCi15bkVQNGg5VUxuVUNJUUMxclU0c0VJZDNVZGp6VEtocFNHVEt0YU91UEcrYjBZZEVNUGltSTRqbVZ3PT0KLS0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KLS0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQotTUlJQjJEQ0NBWDJnQXdJQkFnSUJBVEFLQmdncWhrak9QUVFEQWpBdk1Rc3dDUVlEVlFRR0V3SlZTekVSTUE4RwotQTFVRUNnd0liV0psWkNCVVRGTXhEVEFMQmdOVkJBTU1CRU5CTVRVd0hoY05NVGN3TmpJeU1URTFNRE16V2hjTgotTWpjd05qSXpNVEUxTURNeldqQXZNUXN3Q1FZRFZRUUdFd0pWU3pFUk1BOEdBMVVFQ2d3SWJXSmxaQ0JVVEZNeAotRFRBTEJnTlZCQU1NQkVOQk1UWXdXVEFUQmdjcWhrak9QUUlCQmdncWhrak9QUU1CQndOQ0FBUTdWc3A3Sm1ETgota2dQaC8rem1JUGtkN28weG90L1dQTUZuM3VBc0d0c1UzODVNRjBmbWhmRkxoUmJiSDloNEpqWUhqOHkwc3BVMwotYnVVWGhmdHZBWlZibzRHSk1JR0dNQjBHQTFVZERnUVdCQlJUdzNLMFBzeTN1LzYrM0tLU29hUXFKblB2UGpCWAotQmdOVkhTTUVVREJPZ0JSMW1YbHJkVzVyeDFWbnFNTW5VQlhvMFdXR1dxRXpwREV3THpFTE1Ba0dBMVVFQmhNQwotVlVzeEVUQVBCZ05WQkFvTUNHMWlaV1FnVkV4VE1RMHdDd1lEVlFRRERBUkRRVEUwZ2dFQk1Bd0dBMVVkRXdRRgotTUFNQkFmOHdDZ1lJS29aSXpqMEVBd0lEU1FBd1JnSWhBTUpuR2pFOXYzU2p1R2ZpMGpOQnlyd3lOZmhsVEhNaAotRmhQUWlkTnJEcFh3QWlFQXFZdE5pVjh0OVJyQWE5R0M2RldEdUpwdklpVTZGc0UrbEZxNnVJcS9KMkU9Ci0tLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCi0tLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KLU1JSUIxekNDQVgyZ0F3SUJBZ0lCQVRBS0JnZ3Foa2pPUFFRREFqQXZNUXN3Q1FZRFZRUUdFd0pWU3pFUk1BOEcKLUExVUVDZ3dJYldKbFpDQlVURk14RFRBTEJnTlZCQU1NQkVOQk1UUXdIaGNOTVRjd05qSXlNVEUxTURNeldoY04KLU1qY3dOakl6TVRFMU1ETXpXakF2TVFzd0NRWURWUVFHRXdKVlN6RVJNQThHQTFVRUNnd0liV0psWkNCVVRGTXgKLURUQUxCZ05WQkFNTUJFTkJNVFV3V1RBVEJnY3Foa2pPUFFJQkJnZ3Foa2pPUFFNQkJ3TkNBQVFsS1VpTW9Tc3MKLS9oc1Rhc2VkcWRCMkJDT0dKaFR0MGhnVUdlVW5XTloxc3ZPNHluMEdrRkhaMDgrK2ZsMk1LcWpwaitWWHEwSlMKLUZGeUdVT2dtZ2kzSG80R0pNSUdHTUIwR0ExVWREZ1FXQkJSMW1YbHJkVzVyeDFWbnFNTW5VQlhvMFdXR1dqQlgKLUJnTlZIU01FVURCT2dCUk5zSkIrK2NjU0JtYkNDS0J4aTRDalhST0JrNkV6cERFd0x6RUxNQWtHQTFVRUJoTUMKLVZVc3hFVEFQQmdOVkJBb01DRzFpWldRZ1ZFeFRNUTB3Q3dZRFZRUUREQVJEUVRFemdnRUJNQXdHQTFVZEV3UUYKLU1BTUJBZjh3Q2dZSUtvWkl6ajBFQXdJRFNBQXdSUUloQUtZT0lvK2ZkQ1FScXBINExOOHFVSzFhS3pLbVdHeFMKLWZHekVFa2cvMjliTUFpQWw5NWNtdWNvQ0RNcTJBYjhDb2MwZEVxeUo2K3JBUE1MQkNiR2F3eWlXNkE9PQotLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQotLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCi1NSUlCMXpDQ0FYMmdBd0lCQWdJQkFUQUtCZ2dxaGtqT1BRUURBakF2TVFzd0NRWURWUVFHRXdKVlN6RVJNQThHCi1BMVVFQ2d3SWJXSmxaQ0JVVEZNeERUQUxCZ05WQkFNTUJFTkJNVE13SGhjTk1UY3dOakl5TVRFMU1ETXpXaGNOCi1NamN3TmpJek1URTFNRE16V2pBdk1Rc3dDUVlEVlFRR0V3SlZTekVSTUE4R0ExVUVDZ3dJYldKbFpDQlVURk14Ci1EVEFMQmdOVkJBTU1CRU5CTVRRd1dUQVRCZ2NxaGtqT1BRSUJCZ2dxaGtqT1BRTUJCd05DQUFUUk1aTjBSSHpQCi1kb25ObVp1cTlYUGh6dlE1MlRhb2t4VDM5cXBRdGxGeXZVdUVHS3JMb052ZGNwQVJhQTByR3B1dDZSTEFRT1ZVCi1pTlZsSjNJcGo3ODlvNEdKTUlHR01CMEdBMVVkRGdRV0JCUk5zSkIrK2NjU0JtYkNDS0J4aTRDalhST0JrekJYCi1CZ05WSFNNRVVEQk9nQlRtVm5VU0YyTVl3d3MvbkNNdjdiMXdKVmtEbXFFenBERXdMekVMTUFrR0ExVUVCaE1DCi1WVXN4RVRBUEJnTlZCQW9NQ0cxaVpXUWdWRXhUTVEwd0N3WURWUVFEREFSRFFURXlnZ0VCTUF3R0ExVWRFd1FGCi1NQU1CQWY4d0NnWUlLb1pJemowRUF3SURTQUF3UlFJZ1ZmdUxwanAwOEFheEtXZjZjdVpVVUNSZDdDb2pTUzFJCi03MWh6ZVV5RlMrc0NJUUROSkk2UC9wQmJpSGdUYUdsQkFnZmNFZm14bWJZMG40eFpuZHR4SWtteVZBPT0KLS0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KLS0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQotTUlJQjF6Q0NBWDJnQXdJQkFnSUJBVEFLQmdncWhrak9QUVFEQWpBdk1Rc3dDUVlEVlFRR0V3SlZTekVSTUE4RwotQTFVRUNnd0liV0psWkNCVVRGTXhEVEFMQmdOVkJBTU1CRU5CTVRJd0hoY05NVGN3TmpJeU1URTFNRE16V2hjTgotTWpjd05qSXpNVEUxTURNeldqQXZNUXN3Q1FZRFZRUUdFd0pWU3pFUk1BOEdBMVVFQ2d3SWJXSmxaQ0JVVEZNeAotRFRBTEJnTlZCQU1NQkVOQk1UTXdXVEFUQmdjcWhrak9QUUlCQmdncWhrak9QUU1CQndOQ0FBVHJrekNKTHpuaAotbGhuc3YxUlhCOWtmZWFEK2NJcnVQUTBjSXRCREdwZHZEOHhiQlZ2UWNpNCtSRzJSVlVDU1dSaGtGWWpTc1VTTQotMFFITVFuQkZsaHcybzRHSk1JR0dNQjBHQTFVZERnUVdCQlRtVm5VU0YyTVl3d3MvbkNNdjdiMXdKVmtEbWpCWAotQmdOVkhTTUVVREJPZ0JUWlR0YmkrajBTbS9acy8rZ1RrV2RBU3BRemZxRXpwREV3THpFTE1Ba0dBMVVFQmhNQwotVlVzeEVUQVBCZ05WQkFvTUNHMWlaV1FnVkV4VE1RMHdDd1lEVlFRRERBUkRRVEV4Z2dFQk1Bd0dBMVVkRXdRRgotTUFNQkFmOHdDZ1lJS29aSXpqMEVBd0lEU0FBd1JRSWdXc20rckhKZ3dVRXlObThFS2JFZHM1eXVycHA1LzN5NQotUHN2WEpWRHF4b2dDSVFEVVAwSmNsM0E5MDdDRTJ0UFZYU2dENkxRNkNQdTE5bWl4ZW1QdzYweWlqQT09Ci0tLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCi0tLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KLU1JSUIxakNDQVgyZ0F3SUJBZ0lCQVRBS0JnZ3Foa2pPUFFRREFqQXZNUXN3Q1FZRFZRUUdFd0pWU3pFUk1BOEcKLUExVUVDZ3dJYldKbFpDQlVURk14RFRBTEJnTlZCQU1NQkVOQk1URXdIaGNOTVRjd05qSXlNVEUxTURNeldoY04KLU1qY3dOakl6TVRFMU1ETXpXakF2TVFzd0NRWURWUVFHRXdKVlN6RVJNQThHQTFVRUNnd0liV0psWkNCVVRGTXgKLURUQUxCZ05WQkFNTUJFTkJNVEl3V1RBVEJnY3Foa2pPUFFJQkJnZ3Foa2pPUFFNQkJ3TkNBQVRERTlMUGxMUGMKLWdaM2IwQmNoUi9Ba2hORVA5SEFhdndZYWRKSXl6b1BvNWVkQ1ZuYm9RSDc4NmpzWndaTlpvQzBnSERBaENtR2MKLUlmUmVuSVNBb1Z1UG80R0pNSUdHTUIwR0ExVWREZ1FXQkJUWlR0YmkrajBTbS9acy8rZ1RrV2RBU3BRemZqQlgKLUJnTlZIU01FVURCT2dCU09TdDZlUHlNUlQ2UEdNYUlpN0ZxTlg5TUt0S0V6cERFd0x6RUxNQWtHQTFVRUJoTUMKLVZVc3hFVEFQQmdOVkJBb01DRzFpWldRZ1ZFeFRNUTB3Q3dZRFZRUUREQVJEUVRFd2dnRUJNQXdHQTFVZEV3UUYKLU1BTUJBZjh3Q2dZSUtvWkl6ajBFQXdJRFJ3QXdSQUlnWVlGNUFuUlY3ZWgyaExENUR6Ly9wY2VNVEt6OUxzNDYKLUU2RHh2YmZESGlrQ0lGdHRsR3JPQ1pWeVM0b2NzanVLSUVMVlVYNXFmeWdJMHNuNGtVM3FDVHMyCi0tLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCi0tLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KLU1JSUIxakNDQVgyZ0F3SUJBZ0lCQVRBS0JnZ3Foa2pPUFFRREFqQXZNUXN3Q1FZRFZRUUdFd0pWU3pFUk1BOEcKLUExVUVDZ3dJYldKbFpDQlVURk14RFRBTEJnTlZCQU1NQkVOQk1UQXdIaGNOTVRjd05qSXlNVEUxTURNeldoY04KLU1qY3dOakl6TVRFMU1ETXpXakF2TVFzd0NRWURWUVFHRXdKVlN6RVJNQThHQTFVRUNnd0liV0psWkNCVVRGTXgKLURUQUxCZ05WQkFNTUJFTkJNVEV3V1RBVEJnY3Foa2pPUFFJQkJnZ3Foa2pPUFFNQkJ3TkNBQVRad1IrV0s2TkIKLUYvN3JpRmRONjNjOGhqWWRkWlJSNGxyelZOUHdpQlF4bm54d3BQeXJEOUE2YVBQbUxjNlNxR09KVzRaR1ZDY28KLUlCemU5UkpWZWlCOW80R0pNSUdHTUIwR0ExVWREZ1FXQkJTT1N0NmVQeU1SVDZQR01hSWk3RnFOWDlNS3REQlgKLUJnTlZIU01FVURCT2dCUXR4WlNMSkFrRXorMlJLTVFleE02RXRzZmdjcUV6cERFd0x6RUxNQWtHQTFVRUJoTUMKLVZVc3hFVEFQQmdOVkJBb01DRzFpWldRZ1ZFeFRNUTB3Q3dZRFZRUUREQVJEUVRBNWdnRUJNQXdHQTFVZEV3UUYKLU1BTUJBZjh3Q2dZSUtvWkl6ajBFQXdJRFJ3QXdSQUlnTi8vTnFNMEZya3JNam14b2VDWTlEZ3hrSDJSNnNRNGQKLU5ndHdDWkFJcUVJQ0lCczR2dXBhVmN1dm5pOXRsdGJQMjZ3aTdjMEZSK2JsWnVvNURQSUEzU1ZlCi0tLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCi0tLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KLU1JSUIxekNDQVgyZ0F3SUJBZ0lCQVRBS0JnZ3Foa2pPUFFRREFqQXZNUXN3Q1FZRFZRUUdFd0pWU3pFUk1BOEcKLUExVUVDZ3dJYldKbFpDQlVURk14RFRBTEJnTlZCQU1NQkVOQk1Ea3dIaGNOTVRjd05qSXlNVEUxTURNeldoY04KLU1qY3dOakl6TVRFMU1ETXpXakF2TVFzd0NRWURWUVFHRXdKVlN6RVJNQThHQTFVRUNnd0liV0psWkNCVVRGTXgKLURUQUxCZ05WQkFNTUJFTkJNVEF3V1RBVEJnY3Foa2pPUFFJQkJnZ3Foa2pPUFFNQkJ3TkNBQVI2amxHS2JKZDUKLWhpRHhONzg5Z2tPY3dweUhJOXdSd0NyQURBT3dPa01lUEJQUmx3R2RtN213N1ovRUFtdTI2elJtL2hjeXJzNE0KLXFrMkxhYkRqUEk5WG80R0pNSUdHTUIwR0ExVWREZ1FXQkJRdHhaU0xKQWtFeisyUktNUWV4TTZFdHNmZ2NqQlgKLUJnTlZIU01FVURCT2dCVDZneVhIelBJUFljMVZyMWFHaUxMZU1oNEhwcUV6cERFd0x6RUxNQWtHQTFVRUJoTUMKLVZVc3hFVEFQQmdOVkJBb01DRzFpWldRZ1ZFeFRNUTB3Q3dZRFZRUUREQVJEUVRBNGdnRUJNQXdHQTFVZEV3UUYKLU1BTUJBZjh3Q2dZSUtvWkl6ajBFQXdJRFNBQXdSUUlnUDdTOHZGc3RmVUJkTmU2eW01R1lHNVErYUJWRUtxUnMKLWZWVzdITlVrdFNZQ0lRRG82SnVhNm8vREpicnBxNHFZV3E1Z3Y0eUd5elBUTiszSWFLckVJQ2RhYXc9PQotLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQotLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCi1NSUlCMWpDQ0FYMmdBd0lCQWdJQkFUQUtCZ2dxaGtqT1BRUURBakF2TVFzd0NRWURWUVFHRXdKVlN6RVJNQThHCi1BMVVFQ2d3SWJXSmxaQ0JVVEZNeERUQUxCZ05WQkFNTUJFTkJNRGd3SGhjTk1UY3dOakl5TVRFMU1ETXpXaGNOCi1NamN3TmpJek1URTFNRE16V2pBdk1Rc3dDUVlEVlFRR0V3SlZTekVSTUE4R0ExVUVDZ3dJYldKbFpDQlVURk14Ci1EVEFMQmdOVkJBTU1CRU5CTURrd1dUQVRCZ2NxaGtqT1BRSUJCZ2dxaGtqT1BRTUJCd05DQUFSN1pCMTYrdDZFCi1zZmFoR3lLVUdKVzVtZXprempkYVl2YzRsYkphS05Sd0ZSZmMzRi9mbU5PU3NVRlNnL0YwTit2VUUrZG9LaVBDCi04d1J3THp2bTRzKzVvNEdKTUlHR01CMEdBMVVkRGdRV0JCVDZneVhIelBJUFljMVZyMWFHaUxMZU1oNEhwakJYCi1CZ05WSFNNRVVEQk9nQlM0MG1MdDkzVThTaDhaR2lEVkFoUlNpQlBjWHFFenBERXdMekVMTUFrR0ExVUVCaE1DCi1WVXN4RVRBUEJnTlZCQW9NQ0cxaVpXUWdWRXhUTVEwd0N3WURWUVFEREFSRFFUQTNnZ0VCTUF3R0ExVWRFd1FGCi1NQU1CQWY4d0NnWUlLb1pJemowRUF3SURSd0F3UkFJZ080ZWwxWlBobElsaS9xTlIyU0lFaXV2czVNbXk4NjhpCi1OMlJ2NVgvVnhJRUNJQS84clVBTFF4VzM4WFNkQlZYM2Uvanp1N2p1NDduMVl3RXFEOUs5V2RWdgotLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQotLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCi1NSUlCMkRDQ0FYMmdBd0lCQWdJQkFUQUtCZ2dxaGtqT1BRUURBakF2TVFzd0NRWURWUVFHRXdKVlN6RVJNQThHCi1BMVVFQ2d3SWJXSmxaQ0JVVEZNeERUQUxCZ05WQkFNTUJFTkJNRGN3SGhjTk1UY3dOakl5TVRFMU1ETXlXaGNOCi1NamN3TmpJek1URTFNRE15V2pBdk1Rc3dDUVlEVlFRR0V3SlZTekVSTUE4R0ExVUVDZ3dJYldKbFpDQlVURk14Ci1EVEFMQmdOVkJBTU1CRU5CTURnd1dUQVRCZ2NxaGtqT1BRSUJCZ2dxaGtqT1BRTUJCd05DQUFScFFlUS9ZR1FqCi1ubDdTem82V1N0SjF1N3h1blRMNWpCa1hIOGFBVlNtMHFpWDRBRC83WVB4YTVFbkd6WmRMVG4yNXZRVm5mUUFHCi1wTXg4UDFsWWlHWUNvNEdKTUlHR01CMEdBMVVkRGdRV0JCUzQwbUx0OTNVOFNoOFpHaURWQWhSU2lCUGNYakJYCi1CZ05WSFNNRVVEQk9nQlJFcTVKM3RvSlB4WjNPK3NzSjV2a2tVMFJKRTZFenBERXdMekVMTUFrR0ExVUVCaE1DCi1WVXN4RVRBUEJnTlZCQW9NQ0cxaVpXUWdWRXhUTVEwd0N3WURWUVFEREFSRFFUQTJnZ0VCTUF3R0ExVWRFd1FGCi1NQU1CQWY4d0NnWUlLb1pJemowRUF3SURTUUF3UmdJaEFOd0dmK0Y0YStrbVhXejhValNwUmthVG9UVjZFRld3Ci0vVGp6ajB0UWhEb0FBaUVBMTlSeGVXT1ZCQnBNNkxPSGc2djVMZjU0WU4xc25rTGYrc0VYeVpDdVdRUT0KLS0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KLS0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQotTUlJQjJEQ0NBWDJnQXdJQkFnSUJBVEFLQmdncWhrak9QUVFEQWpBdk1Rc3dDUVlEVlFRR0V3SlZTekVSTUE4RwotQTFVRUNnd0liV0psWkNCVVRGTXhEVEFMQmdOVkJBTU1CRU5CTURZd0hoY05NVGN3TmpJeU1URTFNRE15V2hjTgotTWpjd05qSXpNVEUxTURNeVdqQXZNUXN3Q1FZRFZRUUdFd0pWU3pFUk1BOEdBMVVFQ2d3SWJXSmxaQ0JVVEZNeAotRFRBTEJnTlZCQU1NQkVOQk1EY3dXVEFUQmdjcWhrak9QUUlCQmdncWhrak9QUU1CQndOQ0FBU05PajRkNE1FQQotN3AvM21paWpxRzRUb0U0b3BLUEFtKzNCVElHckpUWVQxNCsrVFNpVUlDbDBBU1hqK3hlVWNMTUlhWFROMDQycwotTHNIeHBTaHpRYUwwbzRHSk1JR0dNQjBHQTFVZERnUVdCQlJFcTVKM3RvSlB4WjNPK3NzSjV2a2tVMFJKRXpCWAotQmdOVkhTTUVVREJPZ0JTam92WWFDL202TGk5VHAwVjlpWlJzOTI2N1E2RXpwREV3THpFTE1Ba0dBMVVFQmhNQwotVlVzeEVUQVBCZ05WQkFvTUNHMWlaV1FnVkV4VE1RMHdDd1lEVlFRRERBUkRRVEExZ2dFQk1Bd0dBMVVkRXdRRgotTUFNQkFmOHdDZ1lJS29aSXpqMEVBd0lEU1FBd1JnSWhBS0djZitjNDQyYy9YaXd1YmJhaVF2c29aN0VvVnh1TQotb0ttaWEwZ1B5Qk5rQWlFQTgzYXNqSjVGRFhRdUx5WnBjenZpWHJibXFnQ1BPZllhZHR2a2MwY3hNaXM9Ci0tLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCi0tLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KLU1JSUIxakNDQVgyZ0F3SUJBZ0lCQVRBS0JnZ3Foa2pPUFFRREFqQXZNUXN3Q1FZRFZRUUdFd0pWU3pFUk1BOEcKLUExVUVDZ3dJYldKbFpDQlVURk14RFRBTEJnTlZCQU1NQkVOQk1EVXdIaGNOTVRjd05qSXlNVEUxTURNeVdoY04KLU1qY3dOakl6TVRFMU1ETXlXakF2TVFzd0NRWURWUVFHRXdKVlN6RVJNQThHQTFVRUNnd0liV0psWkNCVVRGTXgKLURUQUxCZ05WQkFNTUJFTkJNRFl3V1RBVEJnY3Foa2pPUFFJQkJnZ3Foa2pPUFFNQkJ3TkNBQVNBOXFXb0FVSHIKLW5uKzNreHlOcmpQSms4MldETGltVzIxUk41MXV4cG9iYWR2OFlnR0VEUmRQK09rK3VScVFTVXNBNlpYZkYzaUcKLXIyR2pmUTN3TURIOG80R0pNSUdHTUIwR0ExVWREZ1FXQkJTam92WWFDL202TGk5VHAwVjlpWlJzOTI2N1F6QlgKLUJnTlZIU01FVURCT2dCVFhoMDZNQVY5UzRsNGxHMVRLT3JLUkJoNHFuNkV6cERFd0x6RUxNQWtHQTFVRUJoTUMKLVZVc3hFVEFQQmdOVkJBb01DRzFpWldRZ1ZFeFRNUTB3Q3dZRFZRUUREQVJEUVRBMGdnRUJNQXdHQTFVZEV3UUYKLU1BTUJBZjh3Q2dZSUtvWkl6ajBFQXdJRFJ3QXdSQUlnY2paTkZXSnRsRG1vUFpiQXhxc0djelJZSzBsZlBndTYKLWcxSDdwcDBjZSt3Q0lEajlCUlpNMk9COUVGMGUrTURLR2p5WkdmdmZyTDZJcjQ3eC9Lck02SDhUCi0tLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCi0tLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KLU1JSUIxekNDQVgyZ0F3SUJBZ0lCQVRBS0JnZ3Foa2pPUFFRREFqQXZNUXN3Q1FZRFZRUUdFd0pWU3pFUk1BOEcKLUExVUVDZ3dJYldKbFpDQlVURk14RFRBTEJnTlZCQU1NQkVOQk1EUXdIaGNOTVRjd05qSXlNVEUxTURNeVdoY04KLU1qY3dOakl6TVRFMU1ETXlXakF2TVFzd0NRWURWUVFHRXdKVlN6RVJNQThHQTFVRUNnd0liV0psWkNCVVRGTXgKLURUQUxCZ05WQkFNTUJFTkJNRFV3V1RBVEJnY3Foa2pPUFFJQkJnZ3Foa2pPUFFNQkJ3TkNBQVFFZFQwT0ZmNUcKLVVjcmdYMlhsbEN5SnpQOTROWjQ2NEdzZ0I2cHNOTHNEZUwrajdBVStvSnk3Vkx2Vy9sSGgzT0RnbDA4WjliaHEKLUxGQm1Oam5IYm04UW80R0pNSUdHTUIwR0ExVWREZ1FXQkJUWGgwNk1BVjlTNGw0bEcxVEtPcktSQmg0cW56QlgKLUJnTlZIU01FVURCT2dCUW94NEYxTnNadW5sc2R1b0d2eklnUlNZZkIzNkV6cERFd0x6RUxNQWtHQTFVRUJoTUMKLVZVc3hFVEFQQmdOVkJBb01DRzFpWldRZ1ZFeFRNUTB3Q3dZRFZRUUREQVJEUVRBemdnRUJNQXdHQTFVZEV3UUYKLU1BTUJBZjh3Q2dZSUtvWkl6ajBFQXdJRFNBQXdSUUloQUlXKyt6cURabExMVWsvZW1lUG9oZE5PcDVKTzN3UzkKLVh2a0JKNld1YTdHQkFpQWR4K0VLbWRqVnJ3bnpyUWx0VGdubVNmR01YaEtOWWlmSzN1RDgzVzNwY1E9PQotLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQotLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCi1NSUlCMWpDQ0FYMmdBd0lCQWdJQkFUQUtCZ2dxaGtqT1BRUURBakF2TVFzd0NRWURWUVFHRXdKVlN6RVJNQThHCi1BMVVFQ2d3SWJXSmxaQ0JVVEZNeERUQUxCZ05WQkFNTUJFTkJNRE13SGhjTk1UY3dOakl5TVRFMU1ETXlXaGNOCi1NamN3TmpJek1URTFNRE15V2pBdk1Rc3dDUVlEVlFRR0V3SlZTekVSTUE4R0ExVUVDZ3dJYldKbFpDQlVURk14Ci1EVEFMQmdOVkJBTU1CRU5CTURRd1dUQVRCZ2NxaGtqT1BRSUJCZ2dxaGtqT1BRTUJCd05DQUFRVVhEZ2NVVk5UCi05aG92YlpFNUhMNnJqT2I3QzU1d0V1V0tUaFYvQ2NaNHJXclh4N1ZYSFlkRC9SM2FEQTdKU3ZZcG0yc1RvazRpCi1zYmxEemhaTS9HRE5vNEdKTUlHR01CMEdBMVVkRGdRV0JCUW94NEYxTnNadW5sc2R1b0d2eklnUlNZZkIzekJYCi1CZ05WSFNNRVVEQk9nQlFBcHpaZHRCZEQzZEx4b3VRcHIvYURpVnR0ZDZFenBERXdMekVMTUFrR0ExVUVCaE1DCi1WVXN4RVRBUEJnTlZCQW9NQ0cxaVpXUWdWRXhUTVEwd0N3WURWUVFEREFSRFFUQXlnZ0VCTUF3R0ExVWRFd1FGCi1NQU1CQWY4d0NnWUlLb1pJemowRUF3SURSd0F3UkFJZ0FraU5ocUZBWlhTVVdFREs5MU9adlFHZGVaT3RkNm1DCi0rV3YzZkdrM3QyOENJRUtPd2lka1VUVWFpUGRaNGVmbUFyK0NFZUd6ZHEyN29iMlMrbnFxSHFnVgotLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQotLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCi1NSUlCMkRDQ0FYMmdBd0lCQWdJQkFUQUtCZ2dxaGtqT1BRUURBakF2TVFzd0NRWURWUVFHRXdKVlN6RVJNQThHCi1BMVVFQ2d3SWJXSmxaQ0JVVEZNeERUQUxCZ05WQkFNTUJFTkJNREl3SGhjTk1UY3dOakl5TVRFMU1ETXlXaGNOCi1NamN3TmpJek1URTFNRE15V2pBdk1Rc3dDUVlEVlFRR0V3SlZTekVSTUE4R0ExVUVDZ3dJYldKbFpDQlVURk14Ci1EVEFMQmdOVkJBTU1CRU5CTURNd1dUQVRCZ2NxaGtqT1BRSUJCZ2dxaGtqT1BRTUJCd05DQUFRUkRYRE5JaTFwCi1lcmV1ZGhxd2EyTHNsWGdzeG5CNjNIdTV5NWxnKzFXUHJ1SVlQekQvSG8wQVB2ZVZkekZMVmppMTkrYkU0K3RGCi1QWUwxU3BzTjFXZldvNEdKTUlHR01CMEdBMVVkRGdRV0JCUUFwelpkdEJkRDNkTHhvdVFwci9hRGlWdHRkekJYCi1CZ05WSFNNRVVEQk9nQlQ1UkNnUTBBbFpUUWJmRkIyKzYrdzBYUnZ5ZGFFenBERXdMekVMTUFrR0ExVUVCaE1DCi1WVXN4RVRBUEJnTlZCQW9NQ0cxaVpXUWdWRXhUTVEwd0N3WURWUVFEREFSRFFUQXhnZ0VCTUF3R0ExVWRFd1FGCi1NQU1CQWY4d0NnWUlLb1pJemowRUF3SURTUUF3UmdJaEFPbmQrN2JBb2ZrSFZhNEtGTmp2M1RDZWd3MWxyaHVNCi04T2Y4d2d2clRFR29BaUVBc1M4aUtNcFNmWEg0RDBlZ2c0Z0xhbUU2YWtkZTk2NXJEdHlTVSt2ZTlsZz0KLS0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KLS0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQotTUlJQjF6Q0NBWDJnQXdJQkFnSUJBVEFLQmdncWhrak9QUVFEQWpBdk1Rc3dDUVlEVlFRR0V3SlZTekVSTUE4RwotQTFVRUNnd0liV0psWkNCVVRGTXhEVEFMQmdOVkJBTU1CRU5CTURFd0hoY05NVGN3TmpJeU1URTFNRE15V2hjTgotTWpjd05qSXpNVEUxTURNeVdqQXZNUXN3Q1FZRFZRUUdFd0pWU3pFUk1BOEdBMVVFQ2d3SWJXSmxaQ0JVVEZNeAotRFRBTEJnTlZCQU1NQkVOQk1ESXdXVEFUQmdjcWhrak9QUUlCQmdncWhrak9QUU1CQndOQ0FBUVdIcHYxaTZsZgotd3ZOUE9QNWthNlMwbjU1RXZ6b2FZSzZwYlRYUDZ5TU9XLzRYWlNQS3g1Wm9xNEZNZTBjS3pHSUlGTDFyemoxVgotMmN6WUIrcXZMaHlpbzRHSk1JR0dNQjBHQTFVZERnUVdCQlQ1UkNnUTBBbFpUUWJmRkIyKzYrdzBYUnZ5ZFRCWAotQmdOVkhTTUVVREJPZ0JTaDN1SGtYNW5qODZ5RkVGd2pzY1NXTTQwUCtxRXpwREV3THpFTE1Ba0dBMVVFQmhNQwotVlVzeEVUQVBCZ05WQkFvTUNHMWlaV1FnVkV4VE1RMHdDd1lEVlFRRERBUkRRVEF3Z2dFQk1Bd0dBMVVkRXdRRgotTUFNQkFmOHdDZ1lJS29aSXpqMEVBd0lEU0FBd1JRSWhBSTd1bkdXL2dyOXRPYzNpK2RGNU44MTVzcmdoK0ZyWAotb2o5RXQ3NEVjU3BUQWlCdWJ2K3ZPSDBERTBnbVlJMTFIZUFJZ3V0V3FxTUlDNzJkWmx3VEYvVmkzZz09Ci0tLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCi0tLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KLU1JSUIzakNDQVlXZ0F3SUJBZ0lCQVRBS0JnZ3Foa2pPUFFRREFqQXZNUXN3Q1FZRFZRUUdFd0pWU3pFUk1BOEcKLUExVUVDZ3dJYldKbFpDQlVURk14RFRBTEJnTlZCQU1NQkVOQk1EQXdIaGNOTVRjd05qSXlNVEUxTURNeVdoY04KLU1qY3dOakl6TVRFMU1ETXlXakF2TVFzd0NRWURWUVFHRXdKVlN6RVJNQThHQTFVRUNnd0liV0psWkNCVVRGTXgKLURUQUxCZ05WQkFNTUJFTkJNREV3V1RBVEJnY3Foa2pPUFFJQkJnZ3Foa2pPUFFNQkJ3TkNBQVF6bm45ekhId0wKLUdPOFZSNFc5Vjd2TWx4Q2Rvb2p6RU9pWDVZNkp0UHRGT3o4NjZ1ZUhZNnpvTjAvbUo2RG5xblNYaWxKSVVVZVcKLTZlR2ZxbWthN254a280R1JNSUdPTUIwR0ExVWREZ1FXQkJTaDN1SGtYNW5qODZ5RkVGd2pzY1NXTTQwUCtqQmYKLUJnTlZIU01FV0RCV2dCUWxGWXZVNVdib0k0ZmNkUG9pUXM4L2ZQSFpyYUV6cERFd0x6RUxNQWtHQTFVRUJoTUMKLVZVc3hFVEFQQmdOVkJBb01DRzFpWldRZ1ZFeFRNUTB3Q3dZRFZRUUREQVJEUVRBd2dna0EvS0NXaGNxVG9IQXcKLURBWURWUjBUQkFVd0F3RUIvekFLQmdncWhrak9QUVFEQWdOSEFEQkVBaUJhc2J1aW5QK3BKVFU0b0RDVkQ4elEKLTFySkJEU09LSUV5V3U4NC9ENkhqNndJZ1ZNUFVvTzAxYlBoemxsQWEvZ1c4WGsvZGFleTA5U0JnTjNBVDlwV1UKLVREQT0KLS0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KLS0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQotTUlJQnBUQ0NBVXVnQXdJQkFnSUpBUHlnbG9YS2s2QndNQW9HQ0NxR1NNNDlCQU1DTUM4eEN6QUpCZ05WQkFZVAotQWxWTE1SRXdEd1lEVlFRS0RBaHRZbVZrSUZSTVV6RU5NQXNHQTFVRUF3d0VRMEV3TURBZUZ3MHhOekEyTWpJeAotTVRVd016SmFGdzB5TnpBMk1qTXhNVFV3TXpKYU1DOHhDekFKQmdOVkJBWVRBbFZMTVJFd0R3WURWUVFLREFodAotWW1Wa0lGUk1VekVOTUFzR0ExVUVBd3dFUTBFd01EQlpNQk1HQnlxR1NNNDlBZ0VHQ0NxR1NNNDlBd0VIQTBJQQotQkZXNDEvcUF3QVBweStUeGRjN1BLbXpac3E5Q1BpdWpLVTR2cEYxZWtYbkd4MkhQNDIwUW9id0JWVldoa3pSbQotTHdkYm9IMmo2NWRjQ0tqUTdtdi9keEtqVURCT01CMEdBMVVkRGdRV0JCUWxGWXZVNVdib0k0ZmNkUG9pUXM4LwotZlBIWnJUQWZCZ05WSFNNRUdEQVdnQlFsRll2VTVXYm9JNGZjZFBvaVFzOC9mUEhaclRBTUJnTlZIUk1FQlRBRAotQVFIL01Bb0dDQ3FHU000OUJBTUNBMGdBTUVVQ0lRQzdpUmNWendNeWZWSzVpbWlySjdNcUpRMDRldUg0Q0xPdAotSVorU05mYUVSQUlnU1UwTVdGRG9zVkVJcGc4WU1xSUhlRjdNZzRaeUg2K2ZHYXpKZ1ZMdHRVWT0KLS0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KZGlmZiAtLWdpdCBhL3Rlc3RzL2RhdGFfZmlsZXMvZGlyLW1heHBhdGgvaW50Lm9wZW5zc2xjb25mIGIvdGVzdHMvZGF0YV9maWxlcy9kaXItbWF4cGF0aC9pbnQub3BlbnNzbGNvbmYKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGRmMjhjYWIuLjAwMDAwMDAKLS0tIGEvdGVzdHMvZGF0YV9maWxlcy9kaXItbWF4cGF0aC9pbnQub3BlbnNzbGNvbmYKKysrIC9kZXYvbnVsbApAQCAtMSw0ICswLDAgQEAKLVtpbnRdCi1zdWJqZWN0S2V5SWRlbnRpZmllcj1oYXNoCi1hdXRob3JpdHlLZXlJZGVudGlmaWVyPWtleWlkOmFsd2F5cyxpc3N1ZXI6YWx3YXlzCi1iYXNpY0NvbnN0cmFpbnRzID0gQ0E6dHJ1ZQpkaWZmIC0tZ2l0IGEvdGVzdHMvZGF0YV9maWxlcy9kaXItbWF4cGF0aC9sb25nLnNoIGIvdGVzdHMvZGF0YV9maWxlcy9kaXItbWF4cGF0aC9sb25nLnNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDc1NQppbmRleCA0ZTFmZDQ4Li4wMDAwMDAwCi0tLSBhL3Rlc3RzL2RhdGFfZmlsZXMvZGlyLW1heHBhdGgvbG9uZy5zaAorKysgL2Rldi9udWxsCkBAIC0xLDM4ICswLDAgQEAKLSMhL2Jpbi9zaAotIwotIyBDb3B5cmlnaHQgVGhlIE1iZWQgVExTIENvbnRyaWJ1dG9ycwotIyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMCBPUiBHUEwtMi4wLW9yLWxhdGVyCi0KLXNldCAtZXUKLQotOiAke09QRU5TU0w6PW9wZW5zc2x9Ci1OQj0yMAotCi1PUFQ9Ii1kYXlzIDM2NTMgLXNoYTI1NiIKLQotIyBnZW5lcmF0ZSBzZWxmLXNpZ25lZCByb290Ci0kT1BFTlNTTCBlY3BhcmFtIC1uYW1lIHByaW1lMjU2djEgLWdlbmtleSAtb3V0IDAwLmtleQotJE9QRU5TU0wgcmVxIC1uZXcgLXg1MDkgLXN1YmogIi9DPVVLL089bWJlZCBUTFMvQ049Q0EwMCIgJE9QVCBcCi0gICAgICAgICAgICAgLWtleSAwMC5rZXkgLW91dCAwMC5jcnQKLQotIyBjWFgucGVtIGlzIHRoZSBjaGFpbiBzdGFydGluZyBhdCBYWAotY3AgMDAuY3J0IGMwMC5wZW0KLQotIyBnZW5lcmF0ZSBsb25nIGNoYWluCi1pPTEKLXdoaWxlIFsgJGkgLWxlICROQiBdOyBkbwotICAgIFVQPSQoIHByaW50ZiAiJTAyZCIgJCgoaS0xKSkgKQotICAgIE1FPSQoIHByaW50ZiAiJTAyZCIgJGkgKQotCi0gICAgJE9QRU5TU0wgZWNwYXJhbSAtbmFtZSBwcmltZTI1NnYxIC1nZW5rZXkgLW91dCAke01FfS5rZXkKLSAgICAkT1BFTlNTTCByZXEgLW5ldyAtc3ViaiAiL0M9VUsvTz1tYmVkIFRMUy9DTj1DQSR7TUV9IiBcCi0gICAgICAgICAgICAgICAgIC1rZXkgJHtNRX0ua2V5IC1vdXQgJHtNRX0uY3NyCi0gICAgJE9QRU5TU0wgeDUwOSAtcmVxIC1DQSAke1VQfS5jcnQgLUNBa2V5ICR7VVB9LmtleSAtc2V0X3NlcmlhbCAxICRPUFQgXAotICAgICAgICAgICAgICAgICAgLWV4dGZpbGUgaW50Lm9wZW5zc2xjb25mIC1leHRlbnNpb25zIGludCBcCi0gICAgICAgICAgICAgICAgICAtaW4gJHtNRX0uY3NyIC1vdXQgJHtNRX0uY3J0Ci0KLSAgICBjYXQgJHtNRX0uY3J0IGMke1VQfS5wZW0gPiBjJHtNRX0ucGVtCi0KLSAgICBybSAke01FfS5jc3IKLSAgICBpPSQoKGkrMSkpCi1kb25lCmRpZmYgLS1naXQgYS90ZXN0cy9kYXRhX2ZpbGVzL2RpcjEvdGVzdC1jYS5jcnQgYi90ZXN0cy9kYXRhX2ZpbGVzL2RpcjEvdGVzdC1jYS5jcnQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDNjMWQxNGMuLjAwMDAwMDAKLS0tIGEvdGVzdHMvZGF0YV9maWxlcy9kaXIxL3Rlc3QtY2EuY3J0CisrKyAvZGV2L251bGwKQEAgLTEsODAgKzAsMCBAQAotQ2VydGlmaWNhdGU6Ci0gICAgRGF0YToKLSAgICAgICAgVmVyc2lvbjogMyAoMHgyKQotICAgICAgICBTZXJpYWwgTnVtYmVyOiAwICgweDApCi0gICAgICAgIFNpZ25hdHVyZSBBbGdvcml0aG06IHNoYTFXaXRoUlNBRW5jcnlwdGlvbgotICAgICAgICBJc3N1ZXI6IEM9TkwsIE89UG9sYXJTU0wsIENOPVBvbGFyU1NMIFRlc3QgQ0EKLSAgICAgICAgVmFsaWRpdHkKLSAgICAgICAgICAgIE5vdCBCZWZvcmU6IEZlYiAxMiAxNDo0NDowMCAyMDExIEdNVAotICAgICAgICAgICAgTm90IEFmdGVyIDogRmViIDEyIDE0OjQ0OjAwIDIwMjEgR01UCi0gICAgICAgIFN1YmplY3Q6IEM9TkwsIE89UG9sYXJTU0wsIENOPVBvbGFyU1NMIFRlc3QgQ0EKLSAgICAgICAgU3ViamVjdCBQdWJsaWMgS2V5IEluZm86Ci0gICAgICAgICAgICBQdWJsaWMgS2V5IEFsZ29yaXRobTogcnNhRW5jcnlwdGlvbgotICAgICAgICAgICAgUlNBIFB1YmxpYyBLZXk6ICgyMDQ4IGJpdCkKLSAgICAgICAgICAgICAgICBNb2R1bHVzICgyMDQ4IGJpdCk6Ci0gICAgICAgICAgICAgICAgICAgIDAwOmMwOmRmOjM3OmZjOjE3OmJiOmUwOjk2OjlkOjNmOjg2OmRlOjk2OjMyOgotICAgICAgICAgICAgICAgICAgICA3ZDo0NDphNToxNjphMDpjZDoyMTpmMTo5OTpkNDplYzplYTpjYjo3YzoxODoKLSAgICAgICAgICAgICAgICAgICAgNTg6MDg6OTQ6YTU6ZWM6OWI6YzU6OGI6ZGY6MWE6MWU6OTk6Mzg6OTk6ODc6Ci0gICAgICAgICAgICAgICAgICAgIDFlOjdiOmMwOjhkOjM5OmRmOjM4OjVkOjcwOjc4OjA3OmQzOjllOmQ5OjkzOgotICAgICAgICAgICAgICAgICAgICBlODpiOTo3Mjo1MTpjNTpjZTphMzozMDo1MjphOTpmMjplNzo0MDo3MDoxNDoKLSAgICAgICAgICAgICAgICAgICAgY2I6NDQ6YTI6NzI6MGI6YzI6ZTU6NDA6Zjk6M2U6ZTU6YTY6MGU6YjM6Zjk6Ci0gICAgICAgICAgICAgICAgICAgIGVjOjRhOjYzOmMwOmI4OjI5OjAwOjc0OjljOjU3OjNiOmE4OmE1OjA0OjkwOgotICAgICAgICAgICAgICAgICAgICA3MTpmMTpiZDo4MzpkOTozZjpkNjphNTplMjozYzoyYTo4ZjplZjoyNzo2MDoKLSAgICAgICAgICAgICAgICAgICAgYzM6YzY6OWY6Y2I6YmE6ZWM6NjA6N2Q6Yjc6ZTY6ODQ6MzI6YmU6NGY6ZmI6Ci0gICAgICAgICAgICAgICAgICAgIDU4OjI2OjIyOjAzOjViOmQ0OmI0OmQ1OmZiOmY1OmUzOjk2OjJlOjcwOmMwOgotICAgICAgICAgICAgICAgICAgICBlNDoyZTpiZDpmYzoyZTplZTplMjo0MTo1NTpjMDozNDoyZTo3ZDoyNDo3MjoKLSAgICAgICAgICAgICAgICAgICAgNjk6Y2I6NDc6YjE6MTQ6NDA6ODM6N2Q6Njc6ZjQ6ODY6ZjY6MzE6YWI6ZjE6Ci0gICAgICAgICAgICAgICAgICAgIDc5OmE0OmIyOmI1OjJlOjEyOmY5Ojg0OjE3OmYwOjYyOjZmOjI3OjNlOjEzOgotICAgICAgICAgICAgICAgICAgICA1ODpiMTo1NDowZDoyMTo5YTo3MzozNzphMTozMDpjZjo2Zjo5MjpkYzpmNjoKLSAgICAgICAgICAgICAgICAgICAgZTk6ZmM6YWM6ZGI6MmU6Mjg6ZDE6N2U6MDI6NGI6MjM6YTA6MTU6ZjI6Mzg6Ci0gICAgICAgICAgICAgICAgICAgIDY1OjY0OjA5OmVhOjBjOjZlOjhlOjFiOjE3OmEwOjcxOmM4OmIzOjliOmM5OgotICAgICAgICAgICAgICAgICAgICBhYjplOTpjMzpmMjpjZjo4Nzo5Njo4Zjo4MDowMjozMjo5ZTo5OTo1ODo2ZjoKLSAgICAgICAgICAgICAgICAgICAgYTI6ZDUKLSAgICAgICAgICAgICAgICBFeHBvbmVudDogNjU1MzcgKDB4MTAwMDEpCi0gICAgICAgIFg1MDl2MyBleHRlbnNpb25zOgotICAgICAgICAgICAgWDUwOXYzIEJhc2ljIENvbnN0cmFpbnRzOgotICAgICAgICAgICAgICAgIENBOlRSVUUKLSAgICAgICAgICAgIFg1MDl2MyBTdWJqZWN0IEtleSBJZGVudGlmaWVyOgotICAgICAgICAgICAgICAgIEI0OjVBOkU0OkE1OkIzOkRFOkQyOjUyOkY2OkI5OkQ1OkE2Ojk1OjBGOkVCOjNFOkJDOkM3OkZEOkZGCi0gICAgICAgICAgICBYNTA5djMgQXV0aG9yaXR5IEtleSBJZGVudGlmaWVyOgotICAgICAgICAgICAgICAgIGtleWlkOkI0OjVBOkU0OkE1OkIzOkRFOkQyOjUyOkY2OkI5OkQ1OkE2Ojk1OjBGOkVCOjNFOkJDOkM3OkZEOkZGCi0gICAgICAgICAgICAgICAgRGlyTmFtZTovQz1OTC9PPVBvbGFyU1NML0NOPVBvbGFyU1NMIFRlc3QgQ0EKLSAgICAgICAgICAgICAgICBzZXJpYWw6MDAKLQotICAgIFNpZ25hdHVyZSBBbGdvcml0aG06IHNoYTFXaXRoUlNBRW5jcnlwdGlvbgotICAgICAgICBiODpmZDo1NDpkODowMDo1NDo5MDo4YjoyNTpiMDoyNzpkZDo5NTpjZDphMjpmNzo4NDowNzoKLSAgICAgICAgMWQ6ODc6ODk6NGE6YzQ6Nzg6MTE6ZDg6MDc6YjU6ZDc6MjI6NTA6OGU6NDg6ZWI6NjI6N2E6Ci0gICAgICAgIDMyOjg5OmJlOjYzOjQ3OjUzOmZmOmI2OmJlOmYxOjJlOjhjOjU0OmMwOjk5OjNmOmEwOmI5OgotICAgICAgICAzNzoyMzo3Mjo1ZjowZDo0Njo1OTo4ZjpkODo0NzpjZDo5Nzo0Yzo5ZjowNzowYzoxMjo2MjoKLSAgICAgICAgMDk6M2E6MjQ6ZTQ6MzY6ZDk6ZTk6MmM6ZGE6Mzg6ZDA6NzM6NzU6NjE6ZDc6YzE6NmM6MjY6Ci0gICAgICAgIDhiOjliOmUwOmQ1OmRjOjY3OmVkOjhjOjZiOjMzOmQ3Ojc0OjIyOjNjOjRjOmRiOmI1OjhkOgotICAgICAgICAyYTpjZToyYzowZDowODo1OTowNTowOTowNTphNjozOTo5ZjpiMzo2NzoxYjplMjo4MzplNToKLSAgICAgICAgZTE6OGY6NTM6ZjY6Njc6OTM6Yzc6Zjk6NmY6NzY6NDQ6NTg6MTI6ZTg6M2E6ZDQ6OTc6ZTc6Ci0gICAgICAgIGU5OmMwOjNlOmE4OjdhOjcyOjNkOjg3OjUzOjFmOmU1OjJjOjg0Ojg0OmU3OjlhOjllOjdmOgotICAgICAgICA2NjpkOToxZjo5YjpmNToxMzo0ODpiMDo0ZDoxNDpkMTpkZTpiMjoyNDpkOTo3ODo3ZDpmNToKLSAgICAgICAgMzU6Y2M6NTg6MTk6ZDE6ZDI6OTk6ZWY6NGQ6NzM6Zjg6MWY6ODk6ZDQ6NWE6ZDA6NTI6Y2U6Ci0gICAgICAgIDA5OmY1OmIxOjQ2OjUxOjZhOjAwOjhlOjNiOmNjOjZmOjYzOjAxOjAwOjk5OmVkOjlkOmE2OgotICAgICAgICAwODo2MDpjZDozMjoxODpkMDo3MzplMDo1ODo3MTpkOTplNTpkMjo1MzpkNzo4ZDpkMDpjYToKLSAgICAgICAgZTk6NWQ6MmE6MGE6MGQ6NWQ6NTU6ZWM6MjE6NTA6MTc6MTY6ZTY6MDY6NGE6Y2Q6NWU6ZGU6Ci0gICAgICAgIGY3OmUwOmU5OjU0Ci0tLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KLU1JSURoekNDQW0rZ0F3SUJBZ0lCQURBTkJna3Foa2lHOXcwQkFRVUZBREE3TVFzd0NRWURWUVFHRXdKT1RERVIKLU1BOEdBMVVFQ2hNSVVHOXNZWEpUVTB3eEdUQVhCZ05WQkFNVEVGQnZiR0Z5VTFOTUlGUmxjM1FnUTBFd0hoY04KLU1URXdNakV5TVRRME5EQXdXaGNOTWpFd01qRXlNVFEwTkRBd1dqQTdNUXN3Q1FZRFZRUUdFd0pPVERFUk1BOEcKLUExVUVDaE1JVUc5c1lYSlRVMHd4R1RBWEJnTlZCQU1URUZCdmJHRnlVMU5NSUZSbGMzUWdRMEV3Z2dFaU1BMEcKLUNTcUdTSWIzRFFFQkFRVUFBNElCRHdBd2dnRUtBb0lCQVFEQTN6ZjhGN3ZnbHAwL2h0NldNbjFFcFJhZ3pTSHgKLW1kVHM2c3Q4R0ZnSWxLWHNtOFdMM3hvZW1UaVpoeDU3d0kwNTN6aGRjSGdIMDU3WmsraTVjbEhGenFNd1VxbnkKLTUwQndGTXRFb25JTHd1VkErVDdscGc2eitleEtZOEM0S1FCMG5GYzdxS1VFa0hIeHZZUFpQOWFsNGp3cWorOG4KLVlNUEduOHU2N0dCOXQrYUVNcjVQKzFnbUlnTmIxTFRWKy9YamxpNXd3T1F1dmZ3dTd1SkJWY0EwTG4wa2NtbkwKLVI3RVVRSU45Wi9TRzlqR3I4WG1rc3JVdUV2bUVGL0JpYnljK0UxaXhWQTBobW5NM29URFBiNUxjOXVuOHJOc3UKLUtORitBa3Nqb0JYeU9HVmtDZW9NYm80YkY2Qnh5TE9ieWF2cHcvTFBoNWFQZ0FJeW5wbFliNkxWQWdNQkFBR2oKLWdaVXdnWkl3REFZRFZSMFRCQVV3QXdFQi96QWRCZ05WSFE0RUZnUVV0RnJrcGJQZTBsTDJ1ZFdtbFEvclByekgKLS9mOHdZd1lEVlIwakJGd3dXb0FVdEZya3BiUGUwbEwydWRXbWxRL3JQcnpIL2YraFA2UTlNRHN4Q3pBSkJnTlYKLUJBWVRBazVNTVJFd0R3WURWUVFLRXdoUWIyeGhjbE5UVERFWk1CY0dBMVVFQXhNUVVHOXNZWEpUVTB3Z1ZHVnoKLWRDQkRRWUlCQURBTkJna3Foa2lHOXcwQkFRVUZBQU9DQVFFQXVQMVUyQUJVa0lzbHNDZmRsYzJpOTRRSEhZZUoKLVNzUjRFZGdIdGRjaVVJNUk2Mko2TW9tK1kwZFQvN2ErOFM2TVZNQ1pQNkM1TnlOeVh3MUdXWS9ZUjgyWFRKOEgKLURCSmlDVG9rNURiWjZTemFPTkJ6ZFdIWHdXd21pNXZnMWR4bjdZeHJNOWQwSWp4TTI3V05LczRzRFFoWkJRa0YKLXBqbWZzMmNiNG9QbDRZOVQ5bWVUeC9sdmRrUllFdWc2MUpmbjZjQStxSHB5UFlkVEgrVXNoSVRubXA1L1p0a2YKLW0vVVRTTEJORk5IZXNpVFplSDMxTmN4WUdkSFNtZTlOYy9nZmlkUmEwRkxPQ2ZXeFJsRnFBSTQ3ekc5akFRQ1oKLTdaMm1DR0ROTWhqUWMrQlljZG5sMGxQWGpkREs2VjBxQ2cxZFZld2hVQmNXNWdaS3pWN2U5K0RwVkE9PQotLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQpkaWZmIC0tZ2l0IGEvdGVzdHMvZGF0YV9maWxlcy9kaXIyL3Rlc3QtY2EuY3J0IGIvdGVzdHMvZGF0YV9maWxlcy9kaXIyL3Rlc3QtY2EuY3J0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzYzFkMTRjLi4wMDAwMDAwCi0tLSBhL3Rlc3RzL2RhdGFfZmlsZXMvZGlyMi90ZXN0LWNhLmNydAorKysgL2Rldi9udWxsCkBAIC0xLDgwICswLDAgQEAKLUNlcnRpZmljYXRlOgotICAgIERhdGE6Ci0gICAgICAgIFZlcnNpb246IDMgKDB4MikKLSAgICAgICAgU2VyaWFsIE51bWJlcjogMCAoMHgwKQotICAgICAgICBTaWduYXR1cmUgQWxnb3JpdGhtOiBzaGExV2l0aFJTQUVuY3J5cHRpb24KLSAgICAgICAgSXNzdWVyOiBDPU5MLCBPPVBvbGFyU1NMLCBDTj1Qb2xhclNTTCBUZXN0IENBCi0gICAgICAgIFZhbGlkaXR5Ci0gICAgICAgICAgICBOb3QgQmVmb3JlOiBGZWIgMTIgMTQ6NDQ6MDAgMjAxMSBHTVQKLSAgICAgICAgICAgIE5vdCBBZnRlciA6IEZlYiAxMiAxNDo0NDowMCAyMDIxIEdNVAotICAgICAgICBTdWJqZWN0OiBDPU5MLCBPPVBvbGFyU1NMLCBDTj1Qb2xhclNTTCBUZXN0IENBCi0gICAgICAgIFN1YmplY3QgUHVibGljIEtleSBJbmZvOgotICAgICAgICAgICAgUHVibGljIEtleSBBbGdvcml0aG06IHJzYUVuY3J5cHRpb24KLSAgICAgICAgICAgIFJTQSBQdWJsaWMgS2V5OiAoMjA0OCBiaXQpCi0gICAgICAgICAgICAgICAgTW9kdWx1cyAoMjA0OCBiaXQpOgotICAgICAgICAgICAgICAgICAgICAwMDpjMDpkZjozNzpmYzoxNzpiYjplMDo5Njo5ZDozZjo4NjpkZTo5NjozMjoKLSAgICAgICAgICAgICAgICAgICAgN2Q6NDQ6YTU6MTY6YTA6Y2Q6MjE6ZjE6OTk6ZDQ6ZWM6ZWE6Y2I6N2M6MTg6Ci0gICAgICAgICAgICAgICAgICAgIDU4OjA4Ojk0OmE1OmVjOjliOmM1OjhiOmRmOjFhOjFlOjk5OjM4Ojk5Ojg3OgotICAgICAgICAgICAgICAgICAgICAxZTo3YjpjMDo4ZDozOTpkZjozODo1ZDo3MDo3ODowNzpkMzo5ZTpkOTo5MzoKLSAgICAgICAgICAgICAgICAgICAgZTg6Yjk6NzI6NTE6YzU6Y2U6YTM6MzA6NTI6YTk6ZjI6ZTc6NDA6NzA6MTQ6Ci0gICAgICAgICAgICAgICAgICAgIGNiOjQ0OmEyOjcyOjBiOmMyOmU1OjQwOmY5OjNlOmU1OmE2OjBlOmIzOmY5OgotICAgICAgICAgICAgICAgICAgICBlYzo0YTo2MzpjMDpiODoyOTowMDo3NDo5Yzo1NzozYjphODphNTowNDo5MDoKLSAgICAgICAgICAgICAgICAgICAgNzE6ZjE6YmQ6ODM6ZDk6M2Y6ZDY6YTU6ZTI6M2M6MmE6OGY6ZWY6Mjc6NjA6Ci0gICAgICAgICAgICAgICAgICAgIGMzOmM2OjlmOmNiOmJhOmVjOjYwOjdkOmI3OmU2Ojg0OjMyOmJlOjRmOmZiOgotICAgICAgICAgICAgICAgICAgICA1ODoyNjoyMjowMzo1YjpkNDpiNDpkNTpmYjpmNTplMzo5NjoyZTo3MDpjMDoKLSAgICAgICAgICAgICAgICAgICAgZTQ6MmU6YmQ6ZmM6MmU6ZWU6ZTI6NDE6NTU6YzA6MzQ6MmU6N2Q6MjQ6NzI6Ci0gICAgICAgICAgICAgICAgICAgIDY5OmNiOjQ3OmIxOjE0OjQwOjgzOjdkOjY3OmY0Ojg2OmY2OjMxOmFiOmYxOgotICAgICAgICAgICAgICAgICAgICA3OTphNDpiMjpiNToyZToxMjpmOTo4NDoxNzpmMDo2Mjo2ZjoyNzozZToxMzoKLSAgICAgICAgICAgICAgICAgICAgNTg6YjE6NTQ6MGQ6MjE6OWE6NzM6Mzc6YTE6MzA6Y2Y6NmY6OTI6ZGM6ZjY6Ci0gICAgICAgICAgICAgICAgICAgIGU5OmZjOmFjOmRiOjJlOjI4OmQxOjdlOjAyOjRiOjIzOmEwOjE1OmYyOjM4OgotICAgICAgICAgICAgICAgICAgICA2NTo2NDowOTplYTowYzo2ZTo4ZToxYjoxNzphMDo3MTpjODpiMzo5YjpjOToKLSAgICAgICAgICAgICAgICAgICAgYWI6ZTk6YzM6ZjI6Y2Y6ODc6OTY6OGY6ODA6MDI6MzI6OWU6OTk6NTg6NmY6Ci0gICAgICAgICAgICAgICAgICAgIGEyOmQ1Ci0gICAgICAgICAgICAgICAgRXhwb25lbnQ6IDY1NTM3ICgweDEwMDAxKQotICAgICAgICBYNTA5djMgZXh0ZW5zaW9uczoKLSAgICAgICAgICAgIFg1MDl2MyBCYXNpYyBDb25zdHJhaW50czoKLSAgICAgICAgICAgICAgICBDQTpUUlVFCi0gICAgICAgICAgICBYNTA5djMgU3ViamVjdCBLZXkgSWRlbnRpZmllcjoKLSAgICAgICAgICAgICAgICBCNDo1QTpFNDpBNTpCMzpERTpEMjo1MjpGNjpCOTpENTpBNjo5NTowRjpFQjozRTpCQzpDNzpGRDpGRgotICAgICAgICAgICAgWDUwOXYzIEF1dGhvcml0eSBLZXkgSWRlbnRpZmllcjoKLSAgICAgICAgICAgICAgICBrZXlpZDpCNDo1QTpFNDpBNTpCMzpERTpEMjo1MjpGNjpCOTpENTpBNjo5NTowRjpFQjozRTpCQzpDNzpGRDpGRgotICAgICAgICAgICAgICAgIERpck5hbWU6L0M9TkwvTz1Qb2xhclNTTC9DTj1Qb2xhclNTTCBUZXN0IENBCi0gICAgICAgICAgICAgICAgc2VyaWFsOjAwCi0KLSAgICBTaWduYXR1cmUgQWxnb3JpdGhtOiBzaGExV2l0aFJTQUVuY3J5cHRpb24KLSAgICAgICAgYjg6ZmQ6NTQ6ZDg6MDA6NTQ6OTA6OGI6MjU6YjA6Mjc6ZGQ6OTU6Y2Q6YTI6Zjc6ODQ6MDc6Ci0gICAgICAgIDFkOjg3Ojg5OjRhOmM0Ojc4OjExOmQ4OjA3OmI1OmQ3OjIyOjUwOjhlOjQ4OmViOjYyOjdhOgotICAgICAgICAzMjo4OTpiZTo2Mzo0Nzo1MzpmZjpiNjpiZTpmMToyZTo4Yzo1NDpjMDo5OTozZjphMDpiOToKLSAgICAgICAgMzc6MjM6NzI6NWY6MGQ6NDY6NTk6OGY6ZDg6NDc6Y2Q6OTc6NGM6OWY6MDc6MGM6MTI6NjI6Ci0gICAgICAgIDA5OjNhOjI0OmU0OjM2OmQ5OmU5OjJjOmRhOjM4OmQwOjczOjc1OjYxOmQ3OmMxOjZjOjI2OgotICAgICAgICA4Yjo5YjplMDpkNTpkYzo2NzplZDo4Yzo2YjozMzpkNzo3NDoyMjozYzo0YzpkYjpiNTo4ZDoKLSAgICAgICAgMmE6Y2U6MmM6MGQ6MDg6NTk6MDU6MDk6MDU6YTY6Mzk6OWY6YjM6Njc6MWI6ZTI6ODM6ZTU6Ci0gICAgICAgIGUxOjhmOjUzOmY2OjY3OjkzOmM3OmY5OjZmOjc2OjQ0OjU4OjEyOmU4OjNhOmQ0Ojk3OmU3OgotICAgICAgICBlOTpjMDozZTphODo3YTo3MjozZDo4Nzo1MzoxZjplNToyYzo4NDo4NDplNzo5YTo5ZTo3ZjoKLSAgICAgICAgNjY6ZDk6MWY6OWI6ZjU6MTM6NDg6YjA6NGQ6MTQ6ZDE6ZGU6YjI6MjQ6ZDk6Nzg6N2Q6ZjU6Ci0gICAgICAgIDM1OmNjOjU4OjE5OmQxOmQyOjk5OmVmOjRkOjczOmY4OjFmOjg5OmQ0OjVhOmQwOjUyOmNlOgotICAgICAgICAwOTpmNTpiMTo0Njo1MTo2YTowMDo4ZTozYjpjYzo2Zjo2MzowMTowMDo5OTplZDo5ZDphNjoKLSAgICAgICAgMDg6NjA6Y2Q6MzI6MTg6ZDA6NzM6ZTA6NTg6NzE6ZDk6ZTU6ZDI6NTM6ZDc6OGQ6ZDA6Y2E6Ci0gICAgICAgIGU5OjVkOjJhOjBhOjBkOjVkOjU1OmVjOjIxOjUwOjE3OjE2OmU2OjA2OjRhOmNkOjVlOmRlOgotICAgICAgICBmNzplMDplOTo1NAotLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCi1NSUlEaHpDQ0FtK2dBd0lCQWdJQkFEQU5CZ2txaGtpRzl3MEJBUVVGQURBN01Rc3dDUVlEVlFRR0V3Sk9UREVSCi1NQThHQTFVRUNoTUlVRzlzWVhKVFUwd3hHVEFYQmdOVkJBTVRFRkJ2YkdGeVUxTk1JRlJsYzNRZ1EwRXdIaGNOCi1NVEV3TWpFeU1UUTBOREF3V2hjTk1qRXdNakV5TVRRME5EQXdXakE3TVFzd0NRWURWUVFHRXdKT1RERVJNQThHCi1BMVVFQ2hNSVVHOXNZWEpUVTB3eEdUQVhCZ05WQkFNVEVGQnZiR0Z5VTFOTUlGUmxjM1FnUTBFd2dnRWlNQTBHCi1DU3FHU0liM0RRRUJBUVVBQTRJQkR3QXdnZ0VLQW9JQkFRREEzemY4Rjd2Z2xwMC9odDZXTW4xRXBSYWd6U0h4Ci1tZFRzNnN0OEdGZ0lsS1hzbThXTDN4b2VtVGlaaHg1N3dJMDUzemhkY0hnSDA1N1prK2k1Y2xIRnpxTXdVcW55Ci01MEJ3Rk10RW9uSUx3dVZBK1Q3bHBnNnorZXhLWThDNEtRQjBuRmM3cUtVRWtISHh2WVBaUDlhbDRqd3FqKzhuCi1ZTVBHbjh1NjdHQjl0K2FFTXI1UCsxZ21JZ05iMUxUVisvWGpsaTV3d09RdXZmd3U3dUpCVmNBMExuMGtjbW5MCi1SN0VVUUlOOVovU0c5akdyOFhta3NyVXVFdm1FRi9CaWJ5YytFMWl4VkEwaG1uTTNvVERQYjVMYzl1bjhyTnN1Ci1LTkYrQWtzam9CWHlPR1ZrQ2VvTWJvNGJGNkJ4eUxPYnlhdnB3L0xQaDVhUGdBSXlucGxZYjZMVkFnTUJBQUdqCi1nWlV3Z1pJd0RBWURWUjBUQkFVd0F3RUIvekFkQmdOVkhRNEVGZ1FVdEZya3BiUGUwbEwydWRXbWxRL3JQcnpICi0vZjh3WXdZRFZSMGpCRnd3V29BVXRGcmtwYlBlMGxMMnVkV21sUS9yUHJ6SC9mK2hQNlE5TURzeEN6QUpCZ05WCi1CQVlUQWs1TU1SRXdEd1lEVlFRS0V3aFFiMnhoY2xOVFRERVpNQmNHQTFVRUF4TVFVRzlzWVhKVFUwd2dWR1Z6Ci1kQ0JEUVlJQkFEQU5CZ2txaGtpRzl3MEJBUVVGQUFPQ0FRRUF1UDFVMkFCVWtJc2xzQ2ZkbGMyaTk0UUhIWWVKCi1Tc1I0RWRnSHRkY2lVSTVJNjJKNk1vbStZMGRULzdhKzhTNk1WTUNaUDZDNU55TnlYdzFHV1kvWVI4MlhUSjhICi1EQkppQ1RvazVEYlo2U3phT05CemRXSFh3V3dtaTV2ZzFkeG43WXhyTTlkMElqeE0yN1dOS3M0c0RRaFpCUWtGCi1wam1mczJjYjRvUGw0WTlUOW1lVHgvbHZka1JZRXVnNjFKZm42Y0ErcUhweVBZZFRIK1VzaElUbm1wNS9adGtmCi1tL1VUU0xCTkZOSGVzaVRaZUgzMU5jeFlHZEhTbWU5TmMvZ2ZpZFJhMEZMT0NmV3hSbEZxQUk0N3pHOWpBUUNaCi03WjJtQ0dETk1oalFjK0JZY2RubDBsUFhqZERLNlYwcUNnMWRWZXdoVUJjVzVnWkt6VjdlOStEcFZBPT0KLS0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KZGlmZiAtLWdpdCBhL3Rlc3RzL2RhdGFfZmlsZXMvZGlyMi90ZXN0LWNhMi5jcnQgYi90ZXN0cy9kYXRhX2ZpbGVzL2RpcjIvdGVzdC1jYTIuY3J0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkNDFhNDIwLi4wMDAwMDAwCi0tLSBhL3Rlc3RzL2RhdGFfZmlsZXMvZGlyMi90ZXN0LWNhMi5jcnQKKysrIC9kZXYvbnVsbApAQCAtMSwxNSArMCwwIEBACi0tLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KLU1JSUNVakNDQWRlZ0F3SUJBZ0lKQU1GRDRuNWlROHpvTUFvR0NDcUdTTTQ5QkFNQ01ENHhDekFKQmdOVkJBWVQKLUFrNU1NUkV3RHdZRFZRUUtFd2hRYjJ4aGNsTlRUREVjTUJvR0ExVUVBeE1UVUc5c1lYSnpjMndnVkdWemRDQkYKLVF5QkRRVEFlRncweE16QTVNalF4TlRRNU5EaGFGdzB5TXpBNU1qSXhOVFE1TkRoYU1ENHhDekFKQmdOVkJBWVQKLUFrNU1NUkV3RHdZRFZRUUtFd2hRYjJ4aGNsTlRUREVjTUJvR0ExVUVBeE1UVUc5c1lYSnpjMndnVkdWemRDQkYKLVF5QkRRVEIyTUJBR0J5cUdTTTQ5QWdFR0JTdUJCQUFpQTJJQUJNUGFLelJCTjFndmgxYisvSW02S1VOTFR1QnUKLXd3NVhVek01V05SU3RKR1ZPUXNqMzE4WEpHSkkvQnFWS2M0c0xZZkNpRktBcjlacXF5SGR1Tk1jYmxpNHl1aXkKLWFZN3pRYTBwdzdSZmRhZEhiOVVaS1ZWcG1sTTdJTFJtRm1BekhxT0JvRENCblRBZEJnTlZIUTRFRmdRVW5XMGcKLUpFa0JQeXZMZUxVWnZINGt5ZHY3Tm53d2JnWURWUjBqQkdjd1pZQVVuVzBnSkVrQlB5dkxlTFVadkg0a3lkdjcKLU5ueWhRcVJBTUQ0eEN6QUpCZ05WQkFZVEFrNU1NUkV3RHdZRFZRUUtFd2hRYjJ4aGNsTlRUREVjTUJvR0ExVUUKLUF4TVRVRzlzWVhKemMyd2dWR1Z6ZENCRlF5QkRRWUlKQU1GRDRuNWlROHpvTUF3R0ExVWRFd1FGTUFNQkFmOHcKLUNnWUlLb1pJemowRUF3SURhUUF3WmdJeEFNTzBZbk5XS0pVQWZYZ1NKdEp4ZXhuNGlwZytrdjR6bnVSNTB2NTYKLXQ0ZDBQQ3U0MTJtVUM2Tm5kN2l6dnRFMk1nSXhBUDFubkpRalo4Qld1a3N6RlFERzQ4d3hDQ3ljaTlxcGRTTXYKLXVDam44cHdVT2tBQlhLOE1zczkwZnpDZkNFT3RJQT09Ci0tLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCmRpZmYgLS1naXQgYS90ZXN0cy9kYXRhX2ZpbGVzL2RpcjMvUmVhZG1lIGIvdGVzdHMvZGF0YV9maWxlcy9kaXIzL1JlYWRtZQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMTg5ZGFkYy4uMDAwMDAwMAotLS0gYS90ZXN0cy9kYXRhX2ZpbGVzL2RpcjMvUmVhZG1lCisrKyAvZGV2L251bGwKQEAgLTEgKzAsMCBAQAotVGhpcyBpcyBqdXN0IHRvIG1ha2Ugc3VyZSBmaWxlcyB0aGF0IGRvbid0IHBhcnNlIGFzIGNlcnRzIGFyZSBpZ25vcmVkLgpkaWZmIC0tZ2l0IGEvdGVzdHMvZGF0YV9maWxlcy9kaXIzL3Rlc3QtY2EuY3J0IGIvdGVzdHMvZGF0YV9maWxlcy9kaXIzL3Rlc3QtY2EuY3J0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzYzFkMTRjLi4wMDAwMDAwCi0tLSBhL3Rlc3RzL2RhdGFfZmlsZXMvZGlyMy90ZXN0LWNhLmNydAorKysgL2Rldi9udWxsCkBAIC0xLDgwICswLDAgQEAKLUNlcnRpZmljYXRlOgotICAgIERhdGE6Ci0gICAgICAgIFZlcnNpb246IDMgKDB4MikKLSAgICAgICAgU2VyaWFsIE51bWJlcjogMCAoMHgwKQotICAgICAgICBTaWduYXR1cmUgQWxnb3JpdGhtOiBzaGExV2l0aFJTQUVuY3J5cHRpb24KLSAgICAgICAgSXNzdWVyOiBDPU5MLCBPPVBvbGFyU1NMLCBDTj1Qb2xhclNTTCBUZXN0IENBCi0gICAgICAgIFZhbGlkaXR5Ci0gICAgICAgICAgICBOb3QgQmVmb3JlOiBGZWIgMTIgMTQ6NDQ6MDAgMjAxMSBHTVQKLSAgICAgICAgICAgIE5vdCBBZnRlciA6IEZlYiAxMiAxNDo0NDowMCAyMDIxIEdNVAotICAgICAgICBTdWJqZWN0OiBDPU5MLCBPPVBvbGFyU1NMLCBDTj1Qb2xhclNTTCBUZXN0IENBCi0gICAgICAgIFN1YmplY3QgUHVibGljIEtleSBJbmZvOgotICAgICAgICAgICAgUHVibGljIEtleSBBbGdvcml0aG06IHJzYUVuY3J5cHRpb24KLSAgICAgICAgICAgIFJTQSBQdWJsaWMgS2V5OiAoMjA0OCBiaXQpCi0gICAgICAgICAgICAgICAgTW9kdWx1cyAoMjA0OCBiaXQpOgotICAgICAgICAgICAgICAgICAgICAwMDpjMDpkZjozNzpmYzoxNzpiYjplMDo5Njo5ZDozZjo4NjpkZTo5NjozMjoKLSAgICAgICAgICAgICAgICAgICAgN2Q6NDQ6YTU6MTY6YTA6Y2Q6MjE6ZjE6OTk6ZDQ6ZWM6ZWE6Y2I6N2M6MTg6Ci0gICAgICAgICAgICAgICAgICAgIDU4OjA4Ojk0OmE1OmVjOjliOmM1OjhiOmRmOjFhOjFlOjk5OjM4Ojk5Ojg3OgotICAgICAgICAgICAgICAgICAgICAxZTo3YjpjMDo4ZDozOTpkZjozODo1ZDo3MDo3ODowNzpkMzo5ZTpkOTo5MzoKLSAgICAgICAgICAgICAgICAgICAgZTg6Yjk6NzI6NTE6YzU6Y2U6YTM6MzA6NTI6YTk6ZjI6ZTc6NDA6NzA6MTQ6Ci0gICAgICAgICAgICAgICAgICAgIGNiOjQ0OmEyOjcyOjBiOmMyOmU1OjQwOmY5OjNlOmU1OmE2OjBlOmIzOmY5OgotICAgICAgICAgICAgICAgICAgICBlYzo0YTo2MzpjMDpiODoyOTowMDo3NDo5Yzo1NzozYjphODphNTowNDo5MDoKLSAgICAgICAgICAgICAgICAgICAgNzE6ZjE6YmQ6ODM6ZDk6M2Y6ZDY6YTU6ZTI6M2M6MmE6OGY6ZWY6Mjc6NjA6Ci0gICAgICAgICAgICAgICAgICAgIGMzOmM2OjlmOmNiOmJhOmVjOjYwOjdkOmI3OmU2Ojg0OjMyOmJlOjRmOmZiOgotICAgICAgICAgICAgICAgICAgICA1ODoyNjoyMjowMzo1YjpkNDpiNDpkNTpmYjpmNTplMzo5NjoyZTo3MDpjMDoKLSAgICAgICAgICAgICAgICAgICAgZTQ6MmU6YmQ6ZmM6MmU6ZWU6ZTI6NDE6NTU6YzA6MzQ6MmU6N2Q6MjQ6NzI6Ci0gICAgICAgICAgICAgICAgICAgIDY5OmNiOjQ3OmIxOjE0OjQwOjgzOjdkOjY3OmY0Ojg2OmY2OjMxOmFiOmYxOgotICAgICAgICAgICAgICAgICAgICA3OTphNDpiMjpiNToyZToxMjpmOTo4NDoxNzpmMDo2Mjo2ZjoyNzozZToxMzoKLSAgICAgICAgICAgICAgICAgICAgNTg6YjE6NTQ6MGQ6MjE6OWE6NzM6Mzc6YTE6MzA6Y2Y6NmY6OTI6ZGM6ZjY6Ci0gICAgICAgICAgICAgICAgICAgIGU5OmZjOmFjOmRiOjJlOjI4OmQxOjdlOjAyOjRiOjIzOmEwOjE1OmYyOjM4OgotICAgICAgICAgICAgICAgICAgICA2NTo2NDowOTplYTowYzo2ZTo4ZToxYjoxNzphMDo3MTpjODpiMzo5YjpjOToKLSAgICAgICAgICAgICAgICAgICAgYWI6ZTk6YzM6ZjI6Y2Y6ODc6OTY6OGY6ODA6MDI6MzI6OWU6OTk6NTg6NmY6Ci0gICAgICAgICAgICAgICAgICAgIGEyOmQ1Ci0gICAgICAgICAgICAgICAgRXhwb25lbnQ6IDY1NTM3ICgweDEwMDAxKQotICAgICAgICBYNTA5djMgZXh0ZW5zaW9uczoKLSAgICAgICAgICAgIFg1MDl2MyBCYXNpYyBDb25zdHJhaW50czoKLSAgICAgICAgICAgICAgICBDQTpUUlVFCi0gICAgICAgICAgICBYNTA5djMgU3ViamVjdCBLZXkgSWRlbnRpZmllcjoKLSAgICAgICAgICAgICAgICBCNDo1QTpFNDpBNTpCMzpERTpEMjo1MjpGNjpCOTpENTpBNjo5NTowRjpFQjozRTpCQzpDNzpGRDpGRgotICAgICAgICAgICAgWDUwOXYzIEF1dGhvcml0eSBLZXkgSWRlbnRpZmllcjoKLSAgICAgICAgICAgICAgICBrZXlpZDpCNDo1QTpFNDpBNTpCMzpERTpEMjo1MjpGNjpCOTpENTpBNjo5NTowRjpFQjozRTpCQzpDNzpGRDpGRgotICAgICAgICAgICAgICAgIERpck5hbWU6L0M9TkwvTz1Qb2xhclNTTC9DTj1Qb2xhclNTTCBUZXN0IENBCi0gICAgICAgICAgICAgICAgc2VyaWFsOjAwCi0KLSAgICBTaWduYXR1cmUgQWxnb3JpdGhtOiBzaGExV2l0aFJTQUVuY3J5cHRpb24KLSAgICAgICAgYjg6ZmQ6NTQ6ZDg6MDA6NTQ6OTA6OGI6MjU6YjA6Mjc6ZGQ6OTU6Y2Q6YTI6Zjc6ODQ6MDc6Ci0gICAgICAgIDFkOjg3Ojg5OjRhOmM0Ojc4OjExOmQ4OjA3OmI1OmQ3OjIyOjUwOjhlOjQ4OmViOjYyOjdhOgotICAgICAgICAzMjo4OTpiZTo2Mzo0Nzo1MzpmZjpiNjpiZTpmMToyZTo4Yzo1NDpjMDo5OTozZjphMDpiOToKLSAgICAgICAgMzc6MjM6NzI6NWY6MGQ6NDY6NTk6OGY6ZDg6NDc6Y2Q6OTc6NGM6OWY6MDc6MGM6MTI6NjI6Ci0gICAgICAgIDA5OjNhOjI0OmU0OjM2OmQ5OmU5OjJjOmRhOjM4OmQwOjczOjc1OjYxOmQ3OmMxOjZjOjI2OgotICAgICAgICA4Yjo5YjplMDpkNTpkYzo2NzplZDo4Yzo2YjozMzpkNzo3NDoyMjozYzo0YzpkYjpiNTo4ZDoKLSAgICAgICAgMmE6Y2U6MmM6MGQ6MDg6NTk6MDU6MDk6MDU6YTY6Mzk6OWY6YjM6Njc6MWI6ZTI6ODM6ZTU6Ci0gICAgICAgIGUxOjhmOjUzOmY2OjY3OjkzOmM3OmY5OjZmOjc2OjQ0OjU4OjEyOmU4OjNhOmQ0Ojk3OmU3OgotICAgICAgICBlOTpjMDozZTphODo3YTo3MjozZDo4Nzo1MzoxZjplNToyYzo4NDo4NDplNzo5YTo5ZTo3ZjoKLSAgICAgICAgNjY6ZDk6MWY6OWI6ZjU6MTM6NDg6YjA6NGQ6MTQ6ZDE6ZGU6YjI6MjQ6ZDk6Nzg6N2Q6ZjU6Ci0gICAgICAgIDM1OmNjOjU4OjE5OmQxOmQyOjk5OmVmOjRkOjczOmY4OjFmOjg5OmQ0OjVhOmQwOjUyOmNlOgotICAgICAgICAwOTpmNTpiMTo0Njo1MTo2YTowMDo4ZTozYjpjYzo2Zjo2MzowMTowMDo5OTplZDo5ZDphNjoKLSAgICAgICAgMDg6NjA6Y2Q6MzI6MTg6ZDA6NzM6ZTA6NTg6NzE6ZDk6ZTU6ZDI6NTM6ZDc6OGQ6ZDA6Y2E6Ci0gICAgICAgIGU5OjVkOjJhOjBhOjBkOjVkOjU1OmVjOjIxOjUwOjE3OjE2OmU2OjA2OjRhOmNkOjVlOmRlOgotICAgICAgICBmNzplMDplOTo1NAotLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCi1NSUlEaHpDQ0FtK2dBd0lCQWdJQkFEQU5CZ2txaGtpRzl3MEJBUVVGQURBN01Rc3dDUVlEVlFRR0V3Sk9UREVSCi1NQThHQTFVRUNoTUlVRzlzWVhKVFUwd3hHVEFYQmdOVkJBTVRFRkJ2YkdGeVUxTk1JRlJsYzNRZ1EwRXdIaGNOCi1NVEV3TWpFeU1UUTBOREF3V2hjTk1qRXdNakV5TVRRME5EQXdXakE3TVFzd0NRWURWUVFHRXdKT1RERVJNQThHCi1BMVVFQ2hNSVVHOXNZWEpUVTB3eEdUQVhCZ05WQkFNVEVGQnZiR0Z5VTFOTUlGUmxjM1FnUTBFd2dnRWlNQTBHCi1DU3FHU0liM0RRRUJBUVVBQTRJQkR3QXdnZ0VLQW9JQkFRREEzemY4Rjd2Z2xwMC9odDZXTW4xRXBSYWd6U0h4Ci1tZFRzNnN0OEdGZ0lsS1hzbThXTDN4b2VtVGlaaHg1N3dJMDUzemhkY0hnSDA1N1prK2k1Y2xIRnpxTXdVcW55Ci01MEJ3Rk10RW9uSUx3dVZBK1Q3bHBnNnorZXhLWThDNEtRQjBuRmM3cUtVRWtISHh2WVBaUDlhbDRqd3FqKzhuCi1ZTVBHbjh1NjdHQjl0K2FFTXI1UCsxZ21JZ05iMUxUVisvWGpsaTV3d09RdXZmd3U3dUpCVmNBMExuMGtjbW5MCi1SN0VVUUlOOVovU0c5akdyOFhta3NyVXVFdm1FRi9CaWJ5YytFMWl4VkEwaG1uTTNvVERQYjVMYzl1bjhyTnN1Ci1LTkYrQWtzam9CWHlPR1ZrQ2VvTWJvNGJGNkJ4eUxPYnlhdnB3L0xQaDVhUGdBSXlucGxZYjZMVkFnTUJBQUdqCi1nWlV3Z1pJd0RBWURWUjBUQkFVd0F3RUIvekFkQmdOVkhRNEVGZ1FVdEZya3BiUGUwbEwydWRXbWxRL3JQcnpICi0vZjh3WXdZRFZSMGpCRnd3V29BVXRGcmtwYlBlMGxMMnVkV21sUS9yUHJ6SC9mK2hQNlE5TURzeEN6QUpCZ05WCi1CQVlUQWs1TU1SRXdEd1lEVlFRS0V3aFFiMnhoY2xOVFRERVpNQmNHQTFVRUF4TVFVRzlzWVhKVFUwd2dWR1Z6Ci1kQ0JEUVlJQkFEQU5CZ2txaGtpRzl3MEJBUVVGQUFPQ0FRRUF1UDFVMkFCVWtJc2xzQ2ZkbGMyaTk0UUhIWWVKCi1Tc1I0RWRnSHRkY2lVSTVJNjJKNk1vbStZMGRULzdhKzhTNk1WTUNaUDZDNU55TnlYdzFHV1kvWVI4MlhUSjhICi1EQkppQ1RvazVEYlo2U3phT05CemRXSFh3V3dtaTV2ZzFkeG43WXhyTTlkMElqeE0yN1dOS3M0c0RRaFpCUWtGCi1wam1mczJjYjRvUGw0WTlUOW1lVHgvbHZka1JZRXVnNjFKZm42Y0ErcUhweVBZZFRIK1VzaElUbm1wNS9adGtmCi1tL1VUU0xCTkZOSGVzaVRaZUgzMU5jeFlHZEhTbWU5TmMvZ2ZpZFJhMEZMT0NmV3hSbEZxQUk0N3pHOWpBUUNaCi03WjJtQ0dETk1oalFjK0JZY2RubDBsUFhqZERLNlYwcUNnMWRWZXdoVUJjVzVnWkt6VjdlOStEcFZBPT0KLS0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KZGlmZiAtLWdpdCBhL3Rlc3RzL2RhdGFfZmlsZXMvZGlyMy90ZXN0LWNhMi5jcnQgYi90ZXN0cy9kYXRhX2ZpbGVzL2RpcjMvdGVzdC1jYTIuY3J0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkNDFhNDIwLi4wMDAwMDAwCi0tLSBhL3Rlc3RzL2RhdGFfZmlsZXMvZGlyMy90ZXN0LWNhMi5jcnQKKysrIC9kZXYvbnVsbApAQCAtMSwxNSArMCwwIEBACi0tLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KLU1JSUNVakNDQWRlZ0F3SUJBZ0lKQU1GRDRuNWlROHpvTUFvR0NDcUdTTTQ5QkFNQ01ENHhDekFKQmdOVkJBWVQKLUFrNU1NUkV3RHdZRFZRUUtFd2hRYjJ4aGNsTlRUREVjTUJvR0ExVUVBeE1UVUc5c1lYSnpjMndnVkdWemRDQkYKLVF5QkRRVEFlRncweE16QTVNalF4TlRRNU5EaGFGdzB5TXpBNU1qSXhOVFE1TkRoYU1ENHhDekFKQmdOVkJBWVQKLUFrNU1NUkV3RHdZRFZRUUtFd2hRYjJ4aGNsTlRUREVjTUJvR0ExVUVBeE1UVUc5c1lYSnpjMndnVkdWemRDQkYKLVF5QkRRVEIyTUJBR0J5cUdTTTQ5QWdFR0JTdUJCQUFpQTJJQUJNUGFLelJCTjFndmgxYisvSW02S1VOTFR1QnUKLXd3NVhVek01V05SU3RKR1ZPUXNqMzE4WEpHSkkvQnFWS2M0c0xZZkNpRktBcjlacXF5SGR1Tk1jYmxpNHl1aXkKLWFZN3pRYTBwdzdSZmRhZEhiOVVaS1ZWcG1sTTdJTFJtRm1BekhxT0JvRENCblRBZEJnTlZIUTRFRmdRVW5XMGcKLUpFa0JQeXZMZUxVWnZINGt5ZHY3Tm53d2JnWURWUjBqQkdjd1pZQVVuVzBnSkVrQlB5dkxlTFVadkg0a3lkdjcKLU5ueWhRcVJBTUQ0eEN6QUpCZ05WQkFZVEFrNU1NUkV3RHdZRFZRUUtFd2hRYjJ4aGNsTlRUREVjTUJvR0ExVUUKLUF4TVRVRzlzWVhKemMyd2dWR1Z6ZENCRlF5QkRRWUlKQU1GRDRuNWlROHpvTUF3R0ExVWRFd1FGTUFNQkFmOHcKLUNnWUlLb1pJemowRUF3SURhUUF3WmdJeEFNTzBZbk5XS0pVQWZYZ1NKdEp4ZXhuNGlwZytrdjR6bnVSNTB2NTYKLXQ0ZDBQQ3U0MTJtVUM2Tm5kN2l6dnRFMk1nSXhBUDFubkpRalo4Qld1a3N6RlFERzQ4d3hDQ3ljaTlxcGRTTXYKLXVDam44cHdVT2tBQlhLOE1zczkwZnpDZkNFT3RJQT09Ci0tLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCmRpZmYgLS1naXQgYS90ZXN0cy9kYXRhX2ZpbGVzL2RpcjQvUmVhZG1lIGIvdGVzdHMvZGF0YV9maWxlcy9kaXI0L1JlYWRtZQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggM2YxZjYxMC4uMDAwMDAwMAotLS0gYS90ZXN0cy9kYXRhX2ZpbGVzL2RpcjQvUmVhZG1lCisrKyAvZGV2L251bGwKQEAgLTEsNDcgKzAsMCBAQAotVGhpcyBkaXJlY3RvcnkgY29udGFpbnMgdGhlIGNlcnRpZmljYXRlcyBmb3IgdGhlIHRlc3RzIHRhcmdldGluZyB0aGUgZW5mb3JjZW1lbnQgb2YgdGhlIHBvbGljeSBpbmRpY2F0ZWQgYnkgdGhlICpwYXRoTGVuQ29uc3RyYWludCogZmllbGQuIEFsbCBsZWFmIGVsZW1lbnRzIHdlcmUgZ2VuZXJhdGVkIHdpdGggKmlzX2NhKiB1bnNldCBhbmQgYWxsIHJvb3RzIHdpdGggdGhlICpzZWxmc2lnbj0xKiBvcHRpb24uIAotCi0xLiB6ZXJvIHBhdGhsZW4gY29uc3RyYWludCBvbiBhbiBpbnRlcm1lZGlhdGUgQ0EgKGludmFsaWQpCi1gYGAKLWNlcnQxMS5jcnQgLT4gY2VydDEyLmNydCAobWF4X3BhdGhsZW49MCkgLT4gY2VydDEzLmNydCAtPiBjZXJ0MTQuY3J0Ci1gYGAKLQotMi4gemVybyBwYXRobGVuIGNvbnN0cmFpbnQgb24gdGhlIHJvb3QgQ0EgKGludmFsaWQpCi1gYGAKLWNlcnQyMS5jcnQgKG1heF9wYXRobGVuPTApIC0+IGNlcnQyMi5jcnQgLT4gY2VydDIzLmNydAotYGBgCi0KLTMuIG5vbnplcm8gcGF0aGxlbiBjb25zdHJhaW50IG9uIHRoZSByb290IENBIChpbnZhbGlkKQotYGBgCi1jZXJ0MzEuY3J0IChtYXhfcGF0aGxlbj0xKSAtPiBjZXJ0MzIuY3J0IC0+IGNlcnQzMy5jcnQgLT4gY2VydDM0LmNydAotYGBgCi0KLTQuIG5vbnplcm8gcGF0aGxlbiBjb25zdHJhaW50IG9uIGFuIGludGVybWVkaWF0ZSBDQSAoaW52YWxpZCkKLWBgYAotY2VydDQxLmNydCAtPiBjZXJ0NDIuY3J0IChtYXhfcGF0aGxlbj0xKSAtPiBjZXJ0NDMuY3J0IC0+IGNlcnQ0NC5jcnQgLT4gY2VydDQ1LmNydCAKLWBgYAotCi01LiBub256ZXJvIHBhdGhsZW4gY29uc3RyYWludCBvbiBhbiBpbnRlcm1lZGlhdGUgQ0Egd2l0aCBtYXhpbXVtIG51bWJlciBvZiBlbGVtZW50cyBpbiB0aGUgY2hhaW4gKHZhbGlkKQotYGBgCi1jZXJ0NTEuY3J0IC0+IGNlcnQ1Mi5jcnQgKG1heF9wYXRobGVuPTEpIC0+IGNlcnQ1My5jcnQgLT4gY2VydDU0LmNydAotYGBgCi0KLTYuIG5vbnplcm8gcGF0aGxlbiBjb25zdHJhaW50IG9uIHRoZSByb290IENBIHdpdGggbWF4aW11bSBudW1iZXIgb2YgZWxlbWVudHMgaW4gdGhlIGNoYWluICh2YWxpZCkKLWBgYAotY2VydDYxLmNydCAobWF4X3BhdGhsZW49MSkgLT4gY2VydDYyLmNydCAtPiBjZXJ0NjMuY3J0Ci1gYGAKLQotNy4gcGF0aGxlbiBjb25zdHJhaW50IG9uIHRoZSByb290IENBIHdpdGggbWF4aW11bSBudW1iZXIgb2YgZWxlbWVudHMgYW5kIGEgc2VsZiBzaWduZWQgY2VydGlmaWNhdGUgaW4gdGhlIGNoYWluICh2YWxpZCkgCi0oVGhpcyBzaXR1YXRpb24gaGFwcGVucyBmb3IgZXhhbXBsZSB3aGVuIGEgcm9vdCBvZiBzb21lIGhpZXJhcmNoeSBnZXRzIGludGVncmF0ZWQgaW50byBhbm90aGVyIGhpZXJhcmNoeS4gSW4gdGhpcyBjYXNlIHRoZSBjZXJ0aWZpY2F0ZXMgaXNzdWVkIGJlZm9yZSB0aGUgaW50ZWdyYXRpb24gd2lsbCBoYXZlIGFuIGludGVybWFkaWF0ZSBzZWxmIHNpZ25lZCBjZXJ0aWZpY2F0ZSBpbiB0aGVpciBjaGFpbikKLWBgYAotY2VydDcxLmNydCAobWF4X3BhdGhsZW49MSkgLT4gY2VydDcyLmNydCAtPiBjZXJ0NzMuY3J0IChzZWxmIHNpZ25lZCkgLT4gY2VydDc0LmNydCAtPiBjZXJ0NzQuY3J0Ci1gYGAKLQotOC4gemVybyBwYXRobGVuIGNvbnN0cmFpbnQgb24gZmlyc3QgaW50ZXJtZWRpYXRlIENBICh2YWxpZCkKLWBgYAotY2VydDgxLmNydCAtPiBjZXJ0ODIuY3J0IChtYXhfcGF0aGxlbj0wKSAtPiBjZXJ0ODMuY3J0Ci1gYGAKLQotOS4gemVybyBwYXRobGVuIGNvbnN0cmFpbnQgb24gdHJ1c3RlZCByb290ICh2YWxpZCkKLWBgYAotY2VydDkxLmNydCAobWF4X3BhdGhsZW49MCkgLT4gY2VydDkyLmNydAotYGBgCmRpZmYgLS1naXQgYS90ZXN0cy9kYXRhX2ZpbGVzL2RpcjQvY2VydDExLmNydCBiL3Rlc3RzL2RhdGFfZmlsZXMvZGlyNC9jZXJ0MTEuY3J0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzMDc3YzNkLi4wMDAwMDAwCi0tLSBhL3Rlc3RzL2RhdGFfZmlsZXMvZGlyNC9jZXJ0MTEuY3J0CisrKyAvZGV2L251bGwKQEAgLTEsMTggKzAsMCBAQAotLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCi1NSUlDOXpDQ0FkK2dBd0lCQWdJQkFUQU5CZ2txaGtpRzl3MEJBUXNGQURBV01SUXdFZ1lEVlFRREV3dFVaWE4wCi1JSEp2YjNRZ01qQWVGdzB3TVRBeE1ERXdNREF3TURCYUZ3MHpNREV5TXpFeU16VTVOVGxhTUJZeEZEQVNCZ05WCi1CQU1UQzFSbGMzUWdjbTl2ZENBeU1JSUJJakFOQmdrcWhraUc5dzBCQVFFRkFBT0NBUThBTUlJQkNnS0NBUUVBCi1ocUx3K0tESDgrdGtYOWhwaG55ZE9aRm91ZUdUWTV2OFdkWUk2S1pYb0lsbjlJQXU0Um1iNk01OXVMemlYdXJnCi1WS3V3QnFPa2JVWnNJWTBOT0E2QzhGcGRqWkwxZGk4VmlxNjY5dkJCczljK3g5aEtweDgvVlZjWmZUYUdncW5pCi1oNVhpaXZReW5CUTRFMktPeEVRK1ZqVU1EcUlCSFlHMVZYV3M0S01rQWVKc3FEWUh0bVM0WHNDOVRYVElyaTVTCi05SVg0bUU1QTkrbmdTVG8wLzZTandjZDI3dU8ySVFIWERDN2preFg1T0g1akZQQXFzVktUWURlV2xDVTdidmJyCi1peTFIOVo5dUNsK003dW5iQWw4QktROGxlT25ubzNLTzNsUVFBUEdQMkVGUlQwWE11VVhKbmZ5ZFBiek1hOUZZCi11ZkIxSTh6Q0JadmlQdk8vT2YzeXJ3SURBUUFCbzFBd1RqQU1CZ05WSFJNRUJUQURBUUVCTUIwR0ExVWREZ1FXCi1CQlNVSFNINmdqcllGWm5TMWdEdms3QnBmd1RLd0RBZkJnTlZIU01FR0RBV2dCU1VIU0g2Z2pyWUZablMxZ0R2Ci1rN0JwZndUS3dEQU5CZ2txaGtpRzl3MEJBUXNGQUFPQ0FRRUFUTHFaR0ZFQk8rMklpSGprbjdwQmtBdWt0bUhtCi1qa2t1RkxPTndlMHZseFpGYWFiYUZxU2drb1M1ZVo1MEQwZG11VWtwSlJOTW5HSzFCL2phNVJld3RBZHhENnVzCi1WVDhKcGVXWWtoeGFTSUhqVVc5NWpKTE1WcjE3aXQ4akhhd0kwNXREMjZucURqVHEzQzJyTTRFeHBBYUsvRGd2Ci04M1pIZTRJZHZlbmtYY2tETUlqbVNzSzBHZm9tWm1Ldm1uZnhoZzRGblF2WkdJNDhKSlVxUEEyZEh4UmhVeXI0Ci1vaEJtSDVYaTVvTElDZDg1R1JpOFlxRDAwYWdLTDk5RWpHdWxhS05FZHNRa3JDNFp2WTZRRFYwRUVuYnU4YjRSCi1HZmlBNDJVV04yZEtOU3FOaEJPclA5ZzV5VGNJV1hoMUR3cGQxWjl2aEJDd21CZWdQcXFNNUlNMWRRPT0KLS0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KZGlmZiAtLWdpdCBhL3Rlc3RzL2RhdGFfZmlsZXMvZGlyNC9jZXJ0MTIuY3J0IGIvdGVzdHMvZGF0YV9maWxlcy9kaXI0L2NlcnQxMi5jcnQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGZkODhjMmQuLjAwMDAwMDAKLS0tIGEvdGVzdHMvZGF0YV9maWxlcy9kaXI0L2NlcnQxMi5jcnQKKysrIC9kZXYvbnVsbApAQCAtMSwxOSArMCwwIEBACi0tLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KLU1JSURDakNDQWZLZ0F3SUJBZ0lCQVRBTkJna3Foa2lHOXcwQkFRc0ZBREFXTVJRd0VnWURWUVFERXd0VVpYTjAKLUlISnZiM1FnTWpBZUZ3MHdNVEF4TURFd01EQXdNREJhRncwek1ERXlNekV5TXpVNU5UbGFNQ1l4SkRBaUJnTlYKLUJBTVRHMVJsYzNRZ2FXNTBaWEp0WldScFlYUmxJRzFoZUhCaGRHZ2dNVENDQVNJd0RRWUpLb1pJaHZjTkFRRUIKLUJRQURnZ0VQQURDQ0FRb0NnZ0VCQU5KclA3L1krS2p1cHZsZ2FPbVFZQXJmR3VvaDNDemNkUGUvbWxocStmeEQKLThVOXF6Z1NWdVZSK0ZwTlppOUR5TWxqTUJyV1YxT25aSStjVkNEWVlrTk1hM0lrVitBa3pKR3F3Y1NCS0UrNk4KLVJYWnZ2K0k0eGJHeW1kU1NhVDZLaDFQZ1BWay9FWU5mTEZGMzBwQnN5Y2pNODFhTXRaZ1c2YUE5eENTcDByOFcKLVhrWm9kc3JKVVFlckRoLzdWbURWRWVLYW5ab2c4YXV2cnZzL0VOaUE4ZDRwLzc1bE9JRVI0bkx6NlNTbjVFcXkKLXVYek5Dd21UNVBWd1dTdFhiREQ3RUJzM3JPdFIyVk5XUTlvNlFkZktRT2UvU2tJZGRacjFJV0dFSjhKSGp0Tm8KLWp4Y1lPNjdBK0pncDFKd2prKzgzZVJJQ3MwaGxXeWVIV2ZCbGJPVklLTGNDQXdFQUFhTlRNRkV3RHdZRFZSMFQKLUJBZ3dCZ0VCQVFJQkFEQWRCZ05WSFE0RUZnUVV5dzhQaHkvRkF2aWZHUStHNkhXa01pV3p5cVV3SHdZRFZSMGoKLUJCZ3dGb0FVbEIwaCtvSTYyQldaMHRZQTc1T3dhWDhFeXNBd0RRWUpLb1pJaHZjTkFRRUxCUUFEZ2dFQkFDRlMKLTZ0Rnk5VHBWTVVmaDFta3IzckZFVnRobzBOSmtSaEpXOHoyUFRtS1FhMDY5UzlnUytVNitDc3F3dk0xeTN5eWgKLVB0MnEzNGZoaGhiUStnUzhpQW0renZRdEJzeXMzZnJmVmtlS21SenhXRGgyTG5UK3RKaS94dHFkbFVMdWE1TkIKLTIxU280NkhkbGNlRFR1djJ2VWJySGd4VVMvSUVqSUw2T1paMFNjNlM2WXlidkdTaW9Hc1JVSE8yazJJaU9uVWEKLUMraHBCdk9rWFNjbkl0ZmRNS0FBY2U3MUNzWmVOOTdzYnhlTklNQkRpWDliU3krZFpMc2NFaFJ3QlVBQmlOci8KLXNZZFl2SXBickZYb3dqTXRCZGFjK3Z2aGNlbTdka0NyQ2RzR3lsR0lOV2hFMnRDOWhLbUZrRlhvNG11L0FHRFMKLU00LzU5VGxNZUs4WCtXWjl6QnM9Ci0tLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCmRpZmYgLS1naXQgYS90ZXN0cy9kYXRhX2ZpbGVzL2RpcjQvY2VydDEzLmNydCBiL3Rlc3RzL2RhdGFfZmlsZXMvZGlyNC9jZXJ0MTMuY3J0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhYzAxYTIyLi4wMDAwMDAwCi0tLSBhL3Rlc3RzL2RhdGFfZmlsZXMvZGlyNC9jZXJ0MTMuY3J0CisrKyAvZGV2L251bGwKQEAgLTEsMTkgKzAsMCBAQAotLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCi1NSUlERnpDQ0FmK2dBd0lCQWdJQkFUQU5CZ2txaGtpRzl3MEJBUXNGQURBbU1TUXdJZ1lEVlFRREV4dFVaWE4wCi1JR2x1ZEdWeWJXVmthV0YwWlNCdFlYaHdZWFJvSURFd0hoY05NREV3TVRBeE1EQXdNREF3V2hjTk16QXhNak14Ci1Nak0xT1RVNVdqQW1NU1F3SWdZRFZRUURFeHRVWlhOMElHbHVkR1Z5YldWa2FXRjBaU0J0WVhod1lYUm9JREl3Ci1nZ0VpTUEwR0NTcUdTSWIzRFFFQkFRVUFBNElCRHdBd2dnRUtBb0lCQVFDczBxZEtYeXR1L0dUS3BhMkgwQ0UzCi1PUFNJTU0yaGlZYmF2elVyb3lMK2hGdjlYVm94aDVDR25WVXhLN0I5aWZWdnp5RWxyY1Y3dGp1SWxHd3AxaExICi10eC9ZVTIyeGtzSS9uNS9OUy9xcnhrSzV4andFV0I5bHg5M3J3TEswUW5mallSWnJpcjd5eVNvQktpNklsSE92Ci1HT3dsMFYvSkFzbE1Xd1VabEZtdll2b0NXU1dHckRBa3hXVm5IcStIb1o3WW9NL2JkSmRzSUlKWWUzdHQ3TDhECi1jSlZQNWRROGpTczgvRWhtOEJiRzMzOXIzQjd2L0tkSzh6dW9NaWc5YWcvWU91OWpPYjBRdllDMkhkWm9MNFdWCi1OKzdhYXNUUW1ER1dHT3Q3Zms3QUVsMEVJOGxEdnIyTy81cTZhZDlqUkNreHlxM2xKd1J5K00zTWRWS2dBMU9uCi1BZ01CQUFHalVEQk9NQXdHQTFVZEV3UUZNQU1CQVFFd0hRWURWUjBPQkJZRUZNNnU1R2tqa3hiOFBEZFFJR0tECi1EOHQxWnYvOU1COEdBMVVkSXdRWU1CYUFGTXNQRDRjdnhRTDRueGtQaHVoMXBESWxzOHFsTUEwR0NTcUdTSWIzCi1EUUVCQ3dVQUE0SUJBUUNMcEtBVHQwMURVTTh3Q2lERlZTcG1waUNCcXhuTFJmUXVZK3RhMXArZjE1TE1FK2NUCi05NGx3YVlDZkNCdFhRWXdpdVZGWWRLOHp0V0VTdFBnNkJlY01MUEIySzlnTy90YWx4VW9WRHVtc21SODNwKzJ5Ci04WUptRkh5anIrQlNoc2pQOXBhQ2pVUWtKaU1PaVdScE5GTnBTY3YwSU9IbWI4TkxFUjN2WC90Q214eVZIUGcvCi03dEJwRFhSRDZqT3lhallINEtVeDZ3ZGRjWVdiNjNOOXNBcFZwUkhOYXFwVUtqdWlRd2ZVRlpqQTdBeUsvRlVTCi0vY08zKyt1cStDa1poQnU4dnVwYXpuWEQ0aDBFMjhHYlpndnUvRjBlZEI3ZjBRNURwbnVESjZIRk1ZbDNBMm1NCi1tOHBxS05uUllHQ3RRd3BwQllWc29CaXNnYTJ5bXROdWQ3SysKLS0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KZGlmZiAtLWdpdCBhL3Rlc3RzL2RhdGFfZmlsZXMvZGlyNC9jZXJ0MTQuY3J0IGIvdGVzdHMvZGF0YV9maWxlcy9kaXI0L2NlcnQxNC5jcnQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDQ5ZTFjYmIuLjAwMDAwMDAKLS0tIGEvdGVzdHMvZGF0YV9maWxlcy9kaXI0L2NlcnQxNC5jcnQKKysrIC9kZXYvbnVsbApAQCAtMSwxOSArMCwwIEBACi0tLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KLU1JSURERENDQWZTZ0F3SUJBZ0lCQVRBTkJna3Foa2lHOXcwQkFRc0ZBREFtTVNRd0lnWURWUVFERXh0VVpYTjAKLUlHbHVkR1Z5YldWa2FXRjBaU0J0WVhod1lYUm9JREl3SGhjTk1ERXdNVEF4TURBd01EQXdXaGNOTXpBeE1qTXgKLU1qTTFPVFU1V2pBZU1Sd3dHZ1lEVlFRREV4TlVaWE4wSUd4bFlXWWdhVzUyWVd4cFpDQXpNSUlCSWpBTkJna3EKLWhraUc5dzBCQVFFRkFBT0NBUThBTUlJQkNnS0NBUUVBdzZWYy9UMkdZVFdqN25HWmN5MnZvWnllV2tGeWZESXkKLW9leHlKZThleXVXWCtZcWFTQ3JhMUpNY3d3MEp5OGU5LzYvYUk5ZXpkMWQ3M2VaRGNXNWg2MXRhZ0NwQmtpK1cKLWRZaCtGSmZDZERkUG5Ta2l0V09CTEtCSzIxQVE5ZHhlUHZrUUJFYW5EZEFrMkl3YXN5ZENvSEVpU0Nxd1hORXoKLWpWSlBMMzhpYmJMZjlzTk8za2s2ek9GQTNRcVZTVEo0QmRkTmg5YkhMN3kxMDZla2ZNaHJmeVR6U3BvM1dqMFYKLTIwVGhtSloxTnV3WVJsM2oxWEhBTFAwdDhDcDJaTGJYdUZzVFdxVEZOelhqK2dXTThiMklmWnFtcWNldzVwb1oKLTRhRGtqWFhPaXpSeERQeENIcDdyTHo5eHYxcElJQnhhZHkwWVdwK3c5dnhMeEZGNnJZQkx0UUlEQVFBQm8wMHcKLVN6QUpCZ05WSFJNRUFqQUFNQjBHQTFVZERnUVdCQlFvRi9xcm45V25LVjN6T25Dd01sOTlVaG14OERBZkJnTlYKLUhTTUVHREFXZ0JUT3J1UnBJNU1XL0R3M1VDQmlndy9MZFdiLy9UQU5CZ2txaGtpRzl3MEJBUXNGQUFPQ0FRRUEKLVZVbmxYLy9oM1Q1QWpjODVXTmt5VHVpcmhTWnRJcjYrWC9BeEg0a1IvUUc1TmlhRHhQOUgwRnpNczVGY01uaTgKLTNSczRkMkgzQ0JzK1FCN2xtL2IreHkyNnZwT1J3bFZGWFNjSGVURWFudVhTVnNtR1BrbjdUQVFyUG95WmdWVU4KLXV5NFRHaThNbGtzbzRnbWdlaHZnVGtsSVYrRW14eTMyQWJkMWxSZkk4L3ZPUTF4VGRBN2YzWDk4QWZXU3RUeWEKLURHUnNRTFpFL1E0L0doNTd4TnFGMGZ0QklSd3Q5VGJHbHU4QXlaaUlpbFZFQ0d2RS9ndFR3dXFwUVBPaEpRbWkKLU5kWVRFcmdEMldrdzlvaGlmUUZvNDZBTU1VMXNlZWh0cWlqVzJwQzJVam1WNW5ib1BzMGVHUW1XcmZOQ2pET3IKLXNaZmg5OEJhZmNhRkdqejYwNVYzNmc9PQotLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQpkaWZmIC0tZ2l0IGEvdGVzdHMvZGF0YV9maWxlcy9kaXI0L2NlcnQyMS5jcnQgYi90ZXN0cy9kYXRhX2ZpbGVzL2RpcjQvY2VydDIxLmNydApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNTAxYzVkNy4uMDAwMDAwMAotLS0gYS90ZXN0cy9kYXRhX2ZpbGVzL2RpcjQvY2VydDIxLmNydAorKysgL2Rldi9udWxsCkBAIC0xLDE4ICswLDAgQEAKLS0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQotTUlJQytqQ0NBZUtnQXdJQkFnSUJBVEFOQmdrcWhraUc5dzBCQVFzRkFEQVdNUlF3RWdZRFZRUURFd3RVWlhOMAotSUhKdmIzUWdNakFlRncwd01UQXhNREV3TURBd01EQmFGdzB6TURFeU16RXlNelU1TlRsYU1CWXhGREFTQmdOVgotQkFNVEMxUmxjM1FnY205dmRDQXlNSUlCSWpBTkJna3Foa2lHOXcwQkFRRUZBQU9DQVE4QU1JSUJDZ0tDQVFFQQotbVRYMnNIWTQyT3JkOWdXeUI2R2NkbExqakUrNHpCSjFCb0RwTW52Sjg5bmlNVHVaVHExVmlNcC9CNlJ1VEgrMgotWUYzK3JpWllRREg5eU0vOHJndkFVSXZLOVNUYXExOVpybTBtbmZRVW85eUtka2ZvSitYdld1dks2ZitOa0FNZwoteGZoQUQ2ZVN1cGlnVHZvdi93MklUOHJTMGR4bzRLRjZoS0JMMmFZbFhoaUV5aS9ObXNFUFpXdlZoK3FrM0wvUQotR1N3cGdDK0RoVm9RekZSb2ZVZEs5TzlNa2dSNjc1aWZ0YUZEdnlpN0YwZnhyU0xmQi9XeTRjZ1JZeklXNnB5TgotMnNYV2l2S2RMSTNiZ0IwMWZmZGJPMTdaQUdJTEsxd2hPMjkvYlg2aGJIMDlZL0g3alIydmp5K0tQOU4wUEVhMwotN1NCeW1sb2tCM0E4d3EvTFdQWVBlUUlEQVFBQm8xTXdVVEFQQmdOVkhSTUVDREFHQVFFQkFnRUFNQjBHQTFVZAotRGdRV0JCU09CZDFmSDAwWTlyNVM4Y0VMai85SVQ0QkdsREFmQmdOVkhTTUVHREFXZ0JTT0JkMWZIMDBZOXI1UwotOGNFTGovOUlUNEJHbERBTkJna3Foa2lHOXcwQkFRc0ZBQU9DQVFFQUZFWTJTdHBwYVB6T2dHNnZFdlBKci8vKwotTldZMWpLY0JCM2NUK3pXSlc1NCtCZXhEanlhQlJuQklQdlJMREc4UEFsaGxZcjl2L1A2SkNqQlN1aFlvckZMRwotUDRaaEQrYWt1TXZuNnlGN25zeUcyMExIUHd2RTcvanllNyt6U08zaGh5cUNnN043TTdPMTdleG8vYWd3L2lVSQotRFlVdVV2MVpKbFp2UEIya21aTVlhNzhnMFAyeW55S3B1NGhkYnN0Snp4d0E0YVFEWEdReGNRTnR2KzNaQ2RDMgotVEk0dzBqb2RranFkcS80eTBNY3BrRXZZTDMvTGFRRWxMYUhyOENRbzd4WUV6c2p2K2Nuem9qQ08vaWxYVStSbAotc3o5NDBRNG5qQUpxbHBmaUo0NGFGeXRqcDk2dU40WVZwVmlGQ3ZSei8vOXV5UVk5a3VBLzhrS3dKdU8zcXc9PQotLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQpkaWZmIC0tZ2l0IGEvdGVzdHMvZGF0YV9maWxlcy9kaXI0L2NlcnQyMi5jcnQgYi90ZXN0cy9kYXRhX2ZpbGVzL2RpcjQvY2VydDIyLmNydApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNWRjZDY1ZC4uMDAwMDAwMAotLS0gYS90ZXN0cy9kYXRhX2ZpbGVzL2RpcjQvY2VydDIyLmNydAorKysgL2Rldi9udWxsCkBAIC0xLDE5ICswLDAgQEAKLS0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQotTUlJREJ6Q0NBZStnQXdJQkFnSUJBVEFOQmdrcWhraUc5dzBCQVFzRkFEQVdNUlF3RWdZRFZRUURFd3RVWlhOMAotSUhKdmIzUWdNakFlRncwd01UQXhNREV3TURBd01EQmFGdzB6TURFeU16RXlNelU1TlRsYU1DWXhKREFpQmdOVgotQkFNVEcxUmxjM1FnYVc1MFpYSnRaV1JwWVhSbElHMWhlSEJoZEdnZ01UQ0NBU0l3RFFZSktvWklodmNOQVFFQgotQlFBRGdnRVBBRENDQVFvQ2dnRUJBTnBHbEJNWGRvOGNPOW9xVXcvYjZQTXdpTU5WOExDZTZ3QjlWS0hQYTZPRwotUTBvOFhxa3Rnd25oMXJvamdwTWhiQ0FwRTdVWGVNcjZaR3EvTnRxbU8xaE81YWRWNUplaFdaeXZnN2o0RUJwRwotZzhpV28wak5wS01KMFl4MXVCa2tsakVkWkxUSGE0YksvenkyTktxRE5TMnlXczkvTTUreHc1WEUyZWNBZzdGVAotY1hoZjNxNTBWK002VDJJYVE5QnhudFR5Q1Q4SUlGMmVSTS90OVk5NDRzOVJmem0vS1FWS1JZUHVkWDdZaFR0OQotaXFDSkI0Sm9xWWhzM0hFTzB3UGtKeFk0S0JUVUNOOTRzKzdqVUZkUnJZeGUrOFlhNnRJWVdxRDM4aTVxZEdoWQoteHJWZXkxTGF0c0RKUTJFZ05Zb2JNL0xqb0NMSzFXVXNzRXFmME9VMmJpMENBd0VBQWFOUU1FNHdEQVlEVlIwVAotQkFVd0F3RUJBVEFkQmdOVkhRNEVGZ1FVT0JsOGVkVm0vSDV4ZFMyRUdFZUx6ZnRaL0RVd0h3WURWUjBqQkJndwotRm9BVWpnWGRYeDlOR1BhK1V2SEJDNC8vU0UrQVJwUXdEUVlKS29aSWh2Y05BUUVMQlFBRGdnRUJBRndacmlUdQotREtraURIRmZ6M1VYNGZJeFlUSENpNFR2ZVlaR1BlVGJ4aEJiM1haQzVxREY0VDVIdkNUU2tHOStvRmZaekkxYQotbFBOMnlaQjdRbm1ISm95V2E1ZnVvdndVTDBpSTNpSVpNcVU1NnRkVlBXOGdrSmUrK1U1a0hNU3B6MlZGMGVvOAotN1hrS1d4Wm92UndjemdmREZSUDl6TTlDeWx5elFqcXh4NmtieEpveldud2M1VXJWYkpNYVBJcW9uWHAxbkRvWgotaTg3OCtoWDRySlVFamdPNlNhOUdWWlFwbXVDclFGMHFLc1RpVUJ6Wk42N2hvRDN4b1RBWWk1SVhRRTJ0UkQxTgotajN6d25nOWxpQ3N4dXJHTW51VjBCUFd2L0lEWVJ1L3N5amVlMVF2MVZGZVJ0bzVENFJsZG1pMnAxZjVpV0pDawotNW01WXBSc2tuYUlDallzPQotLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQpkaWZmIC0tZ2l0IGEvdGVzdHMvZGF0YV9maWxlcy9kaXI0L2NlcnQyMy5jcnQgYi90ZXN0cy9kYXRhX2ZpbGVzL2RpcjQvY2VydDIzLmNydApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNmM1NDcyNS4uMDAwMDAwMAotLS0gYS90ZXN0cy9kYXRhX2ZpbGVzL2RpcjQvY2VydDIzLmNydAorKysgL2Rldi9udWxsCkBAIC0xLDE5ICswLDAgQEAKLS0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQotTUlJREREQ0NBZlNnQXdJQkFnSUJBVEFOQmdrcWhraUc5dzBCQVFzRkFEQW1NU1F3SWdZRFZRUURFeHRVWlhOMAotSUdsdWRHVnliV1ZrYVdGMFpTQnRZWGh3WVhSb0lERXdIaGNOTURFd01UQXhNREF3TURBd1doY05NekF4TWpNeAotTWpNMU9UVTVXakFlTVJ3d0dnWURWUVFERXhOVVpYTjBJR3hsWVdZZ2FXNTJZV3hwWkNBeU1JSUJJakFOQmdrcQotaGtpRzl3MEJBUUVGQUFPQ0FROEFNSUlCQ2dLQ0FRRUFpZ0dnSEdOV05rRVdXRm43ZWFVNGtDMldqUjNSdGNCcwotb1cxTWxRbmRVdndXVUhnY2JmSWc3bmg2Nk9pNlhsM0lxQU1qSGoxSjBFUEdjd1RmbUxkYVJ2TjM4S2pUTWgzLwotRmlGcnJVTDBNTmdpR3hqa1R0aFdnc2ZWNEMvaTN2UkRUQ1crMlVNRmRkNit6N2h3RmYrbGRUc0NQOVFwKzkzRwotZHJzbHJ2QVIyVzBxakhMVUxBSkdrLzZXenhGRzZ4ZUNnZGhrb29EUHByc2ZsWkovY04xU3VxVFlPYVZNQWo5SgotYW92U3RVVFZoRjhvdURVTHBxMGZpQkltb2xkT2JjR2RhQVdsZ1JsMGs4TmRvU0xwV2QvNytoaTRzSDVQU09acQotKzhnMWxRM2NnckU3dGE0WDNwL2k2ZUFwY24xaHlFa1R5OVpwS09GdlpYbk00RDFqOCtLU0tRSURBUUFCbzAwdwotU3pBSkJnTlZIUk1FQWpBQU1CMEdBMVVkRGdRV0JCVENOMnZETFkxdGNlblR6eVJtbFM0VEJlMnhpakFmQmdOVgotSFNNRUdEQVdnQlE0R1h4NTFXYjhmbkYxTFlRWVI0dk4rMW44TlRBTkJna3Foa2lHOXcwQkFRc0ZBQU9DQVFFQQotZWIvdGd0U2JyejdqN0hRYXhHZ0k1TFZlZFJybzNhMmZOTGhPMHdOYm9HSTZnQUNJUGFpdDFlUGtVd3VNZkxmbAotRmt5Mi8yVlo4SWU0cFFxeEZtZFNVcWYxTlNteGdpV0xSaG80b1RpRnYxejA4TFlRZ1NkS1Q0OWZmS082N1RERwotRDFuSThyRXVUMU51cHE4V0k1amNLZ1dxa3RNSmpnS3pmTis5bkNnRkdRTUdxVEJudDd1WVpIaG51WmZLU0pQdgotZ0htUzRnajcyT1EyTnU2eE9SR2hkNko4Vmp6Y0c2QlgxcExlYk5RUnpsSFQzRTVJVk5GLzljQ3JjK0U4N1ducwotYkRHdHpoeXg3U0lQNy8yVGlKZUJaczdwOHhYcGFERjJjTngyRitqWkgrUDhmZVQ3YytKb1k3QTcydVZEU2xZZgotV1ZmMDJweWxLUmdxYXlPdWpIM1BXQT09Ci0tLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCmRpZmYgLS1naXQgYS90ZXN0cy9kYXRhX2ZpbGVzL2RpcjQvY2VydDMxLmNydCBiL3Rlc3RzL2RhdGFfZmlsZXMvZGlyNC9jZXJ0MzEuY3J0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4YzJhZjRjLi4wMDAwMDAwCi0tLSBhL3Rlc3RzL2RhdGFfZmlsZXMvZGlyNC9jZXJ0MzEuY3J0CisrKyAvZGV2L251bGwKQEAgLTEsMTggKzAsMCBAQAotLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCi1NSUlDK2pDQ0FlS2dBd0lCQWdJQkFUQU5CZ2txaGtpRzl3MEJBUXNGQURBV01SUXdFZ1lEVlFRREV3dFVaWE4wCi1JSEp2YjNRZ01qQWVGdzB3TVRBeE1ERXdNREF3TURCYUZ3MHpNREV5TXpFeU16VTVOVGxhTUJZeEZEQVNCZ05WCi1CQU1UQzFSbGMzUWdjbTl2ZENBeU1JSUJJakFOQmdrcWhraUc5dzBCQVFFRkFBT0NBUThBTUlJQkNnS0NBUUVBCi1tVFgyc0hZNDJPcmQ5Z1d5QjZHY2RsTGpqRSs0ekJKMUJvRHBNbnZKODluaU1UdVpUcTFWaU1wL0I2UnVUSCsyCi1ZRjMrcmlaWVFESDl5TS84cmd2QVVJdks5U1RhcTE5WnJtMG1uZlFVbzl5S2RrZm9KK1h2V3V2SzZmK05rQU1nCi14ZmhBRDZlU3VwaWdUdm92L3cySVQ4clMwZHhvNEtGNmhLQkwyYVlsWGhpRXlpL05tc0VQWld2VmgrcWszTC9RCi1HU3dwZ0MrRGhWb1F6RlJvZlVkSzlPOU1rZ1I2NzVpZnRhRkR2eWk3RjBmeHJTTGZCL1d5NGNnUll6SVc2cHlOCi0yc1hXaXZLZExJM2JnQjAxZmZkYk8xN1pBR0lMSzF3aE8yOS9iWDZoYkgwOVkvSDdqUjJ2ankrS1A5TjBQRWEzCi03U0J5bWxva0IzQTh3cS9MV1BZUGVRSURBUUFCbzFNd1VUQVBCZ05WSFJNRUNEQUdBUUVCQWdFQk1CMEdBMVVkCi1EZ1FXQkJTT0JkMWZIMDBZOXI1UzhjRUxqLzlJVDRCR2xEQWZCZ05WSFNNRUdEQVdnQlNPQmQxZkgwMFk5cjVTCi04Y0VMai85SVQ0QkdsREFOQmdrcWhraUc5dzBCQVFzRkFBT0NBUUVBQjluTGFxeHNCVzBpc0RhQkdOSnl6SDlPCi1XcVlZMGhleDl0bTNVcXlnZkU5YjlhYWh5a3Brb3dRSXpoNEQ5WHBiZDBoWkdWbEsvc3cycXNLajZnRE9pTXRMCi11V3M0Z2FGTldJUXFoVnNUekw4OGM3WGFXNTVuK1RSUWRWWnl5MzhEWlZXcGh0ZTFNdW1jOVdCOE4xNXJaVERoCi1pWGp3R2wwbXJWMWVncTRoSlpMcHkxNGY2aWhxVTdLR2ZtYzlvbnh2Z3ZXeFlMaSs1djg4NzRjNG9waFNLc0kyCi1xVkU4aVo2dXEyb1E2NlBkNVM1MGNZazZNRVc1bGlmQWhMTTVXRlptVzdkUktteWtCR1o5ckZySnJJdmhrbWg5Ci1IZTdxNlRFUVAxV2NvYzE0N25JZzBCVGtIR3RkckV2M2pJWDZVS0tVRXdVVWs5QVJCMW1Tb2RaUUhCaHV3dz09Ci0tLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCmRpZmYgLS1naXQgYS90ZXN0cy9kYXRhX2ZpbGVzL2RpcjQvY2VydDMyLmNydCBiL3Rlc3RzL2RhdGFfZmlsZXMvZGlyNC9jZXJ0MzIuY3J0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1ZGNkNjVkLi4wMDAwMDAwCi0tLSBhL3Rlc3RzL2RhdGFfZmlsZXMvZGlyNC9jZXJ0MzIuY3J0CisrKyAvZGV2L251bGwKQEAgLTEsMTkgKzAsMCBAQAotLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCi1NSUlEQnpDQ0FlK2dBd0lCQWdJQkFUQU5CZ2txaGtpRzl3MEJBUXNGQURBV01SUXdFZ1lEVlFRREV3dFVaWE4wCi1JSEp2YjNRZ01qQWVGdzB3TVRBeE1ERXdNREF3TURCYUZ3MHpNREV5TXpFeU16VTVOVGxhTUNZeEpEQWlCZ05WCi1CQU1URzFSbGMzUWdhVzUwWlhKdFpXUnBZWFJsSUcxaGVIQmhkR2dnTVRDQ0FTSXdEUVlKS29aSWh2Y05BUUVCCi1CUUFEZ2dFUEFEQ0NBUW9DZ2dFQkFOcEdsQk1YZG84Y085b3FVdy9iNlBNd2lNTlY4TENlNndCOVZLSFBhNk9HCi1RMG84WHFrdGd3bmgxcm9qZ3BNaGJDQXBFN1VYZU1yNlpHcS9OdHFtTzFoTzVhZFY1SmVoV1p5dmc3ajRFQnBHCi1nOGlXbzBqTnBLTUowWXgxdUJra2xqRWRaTFRIYTRiSy96eTJOS3FETlMyeVdzOS9NNSt4dzVYRTJlY0FnN0ZUCi1jWGhmM3E1MFYrTTZUMklhUTlCeG50VHlDVDhJSUYyZVJNL3Q5WTk0NHM5UmZ6bS9LUVZLUllQdWRYN1loVHQ5Ci1pcUNKQjRKb3FZaHMzSEVPMHdQa0p4WTRLQlRVQ045NHMrN2pVRmRScll4ZSs4WWE2dElZV3FEMzhpNXFkR2hZCi14clZleTFMYXRzREpRMkVnTllvYk0vTGpvQ0xLMVdVc3NFcWYwT1UyYmkwQ0F3RUFBYU5RTUU0d0RBWURWUjBUCi1CQVV3QXdFQkFUQWRCZ05WSFE0RUZnUVVPQmw4ZWRWbS9INXhkUzJFR0VlTHpmdFovRFV3SHdZRFZSMGpCQmd3Ci1Gb0FVamdYZFh4OU5HUGErVXZIQkM0Ly9TRStBUnBRd0RRWUpLb1pJaHZjTkFRRUxCUUFEZ2dFQkFGd1pyaVR1Ci1ES2tpREhGZnozVVg0Zkl4WVRIQ2k0VHZlWVpHUGVUYnhoQmIzWFpDNXFERjRUNUh2Q1RTa0c5K29GZlp6STFhCi1sUE4yeVpCN1FubUhKb3lXYTVmdW92d1VMMGlJM2lJWk1xVTU2dGRWUFc4Z2tKZSsrVTVrSE1TcHoyVkYwZW84Ci03WGtLV3hab3ZSd2N6Z2ZERlJQOXpNOUN5bHl6UWpxeHg2a2J4Sm96V253YzVVclZiSk1hUElxb25YcDFuRG9aCi1pODc4K2hYNHJKVUVqZ082U2E5R1ZaUXBtdUNyUUYwcUtzVGlVQnpaTjY3aG9EM3hvVEFZaTVJWFFFMnRSRDFOCi1qM3p3bmc5bGlDc3h1ckdNbnVWMEJQV3YvSURZUnUvc3lqZWUxUXYxVkZlUnRvNUQ0UmxkbWkycDFmNWlXSkNrCi01bTVZcFJza25hSUNqWXM9Ci0tLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCmRpZmYgLS1naXQgYS90ZXN0cy9kYXRhX2ZpbGVzL2RpcjQvY2VydDMzLmNydCBiL3Rlc3RzL2RhdGFfZmlsZXMvZGlyNC9jZXJ0MzMuY3J0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4ZTVkMTkyLi4wMDAwMDAwCi0tLSBhL3Rlc3RzL2RhdGFfZmlsZXMvZGlyNC9jZXJ0MzMuY3J0CisrKyAvZGV2L251bGwKQEAgLTEsMTkgKzAsMCBAQAotLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCi1NSUlERnpDQ0FmK2dBd0lCQWdJQkFUQU5CZ2txaGtpRzl3MEJBUXNGQURBbU1TUXdJZ1lEVlFRREV4dFVaWE4wCi1JR2x1ZEdWeWJXVmthV0YwWlNCdFlYaHdZWFJvSURFd0hoY05NREV3TVRBeE1EQXdNREF3V2hjTk16QXhNak14Ci1Nak0xT1RVNVdqQW1NU1F3SWdZRFZRUURFeHRVWlhOMElHbHVkR1Z5YldWa2FXRjBaU0J0WVhod1lYUm9JREl3Ci1nZ0VpTUEwR0NTcUdTSWIzRFFFQkFRVUFBNElCRHdBd2dnRUtBb0lCQVFDS0FhQWNZMVkyUVJaWVdmdDVwVGlRCi1MWmFOSGRHMXdHeWhiVXlWQ2QxUy9CWlFlQnh0OGlEdWVIcm82THBlWGNpb0F5TWVQVW5RUThaekJOK1l0MXBHCi04M2Z3cU5NeUhmOFdJV3V0UXZRdzJDSWJHT1JPMkZhQ3g5WGdMK0xlOUVOTUpiN1pRd1YxM3I3UHVIQVYvNlYxCi1Pd0kvMUNuNzNjWjJ1eVd1OEJIWmJTcU1jdFFzQWthVC9wYlBFVWJyRjRLQjJHU2lnTSttdXgrVmtuOXczVks2Ci1wTmc1cFV3Q1AwbHFpOUsxUk5XRVh5aTROUXVtclIrSUVpYWlWMDV0d1oxb0JhV0JHWFNUdzEyaEl1bFozL3Y2Ci1HTGl3Zms5STVtcjd5RFdWRGR5Q3NUdTFyaGZlbitMcDRDbHlmV0hJU1JQTDFta280VzlsZWN6Z1BXUHo0cElwCi1BZ01CQUFHalVEQk9NQXdHQTFVZEV3UUZNQU1CQVFFd0hRWURWUjBPQkJZRUZNSTNhOE10alcxeDZkUFBKR2FWCi1MaE1GN2JHS01COEdBMVVkSXdRWU1CYUFGRGdaZkhuVlp2eCtjWFV0aEJoSGk4MzdXZncxTUEwR0NTcUdTSWIzCi1EUUVCQ3dVQUE0SUJBUUNwcnpwb2o2VWFFRzRlcUxnMkwzSHFzdlk3My9YRTh5dHVaOXdEQzNIb2RubXBlelVYCi00OFh3SlBIRk83T0dQR1daZ3NVMnFYL1pwN3lVWGtWRlNLNFZubW5TelV0WE5WbFUwb1dFRU96UUxycHBoa3NICi1kY0Y4WU5OL1k2NUtuaHpJVTc4NHVIZUZlZlVwUGFFNnlTNU9TWmJvcHRaV1ZGOXkxTG9VM0Y3Z04wVUd2Vkc5Ci1oZmx6NU8wL0t2bVlkKzYrWXJqZSsybGJIaUpITlhMbU9QaVp5azlUQkRrbnlnQnVVMTRJT1dnaFFpbTN5a3M5Ci10S2s4RDM4Vmw4NVY1YUc5bk80U1RqeDVKOEJ0U2wweDZ3VzN0OVd3VTVVQzlnZUNST2haSTFYUkJhZklvS2tuCi1WU2dITHBMVEFSdExpa2JiZy8zU3hwblcxMm1zSHZnTFZhc2YKLS0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KZGlmZiAtLWdpdCBhL3Rlc3RzL2RhdGFfZmlsZXMvZGlyNC9jZXJ0MzQuY3J0IGIvdGVzdHMvZGF0YV9maWxlcy9kaXI0L2NlcnQzNC5jcnQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGJlYmNiNjUuLjAwMDAwMDAKLS0tIGEvdGVzdHMvZGF0YV9maWxlcy9kaXI0L2NlcnQzNC5jcnQKKysrIC9kZXYvbnVsbApAQCAtMSwxOSArMCwwIEBACi0tLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KLU1JSURERENDQWZTZ0F3SUJBZ0lCQVRBTkJna3Foa2lHOXcwQkFRc0ZBREFtTVNRd0lnWURWUVFERXh0VVpYTjAKLUlHbHVkR1Z5YldWa2FXRjBaU0J0WVhod1lYUm9JREl3SGhjTk1ERXdNVEF4TURBd01EQXdXaGNOTXpBeE1qTXgKLU1qTTFPVFU1V2pBZU1Sd3dHZ1lEVlFRREV4TlVaWE4wSUd4bFlXWWdhVzUyWVd4cFpDQXpNSUlCSWpBTkJna3EKLWhraUc5dzBCQVFFRkFBT0NBUThBTUlJQkNnS0NBUUVBa1NyZ1dGRDRsWVEwUkYvejNtSlpqbjFsZ05Ca2huQ1AKLTBoY2lKdi9ldG9NTjNiQ0IrdWM4Zm8wd3hEUTJaY2J6VEFRMHFCTm5qSnZBSjFxc2xaQTlib0lCS21UOEpTaXgKLWlpLzFYVERXSTNFNWFPdlgxaDZsVzY2cFZzSXpMbTBOQWYwVkpuMnhMdzBZdjhoZktid2pjTmVBZm03R0N3SkIKLThza2pla01LSjgrZTZwUDRaSHhtcm5PbzBrVWxDZzh3OFJLelo2c1lKeFgxRVRla1dQRVVTWHJzY1EvWVNqcE8KLXpqTERwaDFsTzRnVkVyQmhkSmdKcEp6bnFrclJCaVI3Zi9oSXJwQVYzd09VYnRmcnhySWI1RlhPTTlydC9zdlcKLVJScnpJVUduQnZvMDRXWitLUUhQc01uKzl4OGkrL3R1ZU9nMUtMZnMxMGhXMFJXc1RRam1PUUlEQVFBQm8wMHcKLVN6QUpCZ05WSFJNRUFqQUFNQjBHQTFVZERnUVdCQlNPQnIxVTRoNVBZeU9xR2UvZ0pnd1drN0ZmZXpBZkJnTlYKLUhTTUVHREFXZ0JUQ04ydkRMWTF0Y2VuVHp5Um1sUzRUQmUyeGlqQU5CZ2txaGtpRzl3MEJBUXNGQUFPQ0FRRUEKLWFCTHV3Tk41dk9oMmRMYm44bE1Oc2Mvb1RGU0luenUreWx6Qy9LTFRram95TVlZK1MySVNVdWV3OXB6VW80R3MKLUFBRS9ycVZZZWRuYXl5QTEzZU5SQm53SXcrOGtQVEVTYUpNR2w2dVFRZDhEekFhbHpxeGJGaGJ3RlkyVDBwZGkKLUxORmtHam1HZHBSTnkvVlNUeTZKRUVCTWhJS1hqTXBhY3RtcGlWNm13SzNiZm5GYVhaNm83MCtKWnJOZWlTZTAKLWc4c2NpNmdCVkV0MjdiR3ZoTGFsdXQ4V1hjN1ZDa3hRaFFDU0Jkdi85NEVtUnh6UHllNmlBSzBMOWphVEhsdCsKLXFSNU1XSnhaTjMybXVJN25zS25ldFVNWmJJWXd2TzFMUG44ZiswaGRZa2NrOGtFN2dhMVVNOThvVGdRZUlPbWoKLTNKTkNEa05ZK1ozODd1amFhT0FWeHc9PQotLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQpkaWZmIC0tZ2l0IGEvdGVzdHMvZGF0YV9maWxlcy9kaXI0L2NlcnQ0MS5jcnQgYi90ZXN0cy9kYXRhX2ZpbGVzL2RpcjQvY2VydDQxLmNydApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNzA2NWM5NC4uMDAwMDAwMAotLS0gYS90ZXN0cy9kYXRhX2ZpbGVzL2RpcjQvY2VydDQxLmNydAorKysgL2Rldi9udWxsCkBAIC0xLDE4ICswLDAgQEAKLS0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQotTUlJQzl6Q0NBZCtnQXdJQkFnSUJBVEFOQmdrcWhraUc5dzBCQVFzRkFEQVdNUlF3RWdZRFZRUURFd3RVWlhOMAotSUhKdmIzUWdOREFlRncwd01UQXhNREV3TURBd01EQmFGdzB6TURFeU16RXlNelU1TlRsYU1CWXhGREFTQmdOVgotQkFNVEMxUmxjM1FnY205dmRDQTBNSUlCSWpBTkJna3Foa2lHOXcwQkFRRUZBQU9DQVE4QU1JSUJDZ0tDQVFFQQotbVRYMnNIWTQyT3JkOWdXeUI2R2NkbExqakUrNHpCSjFCb0RwTW52Sjg5bmlNVHVaVHExVmlNcC9CNlJ1VEgrMgotWUYzK3JpWllRREg5eU0vOHJndkFVSXZLOVNUYXExOVpybTBtbmZRVW85eUtka2ZvSitYdld1dks2ZitOa0FNZwoteGZoQUQ2ZVN1cGlnVHZvdi93MklUOHJTMGR4bzRLRjZoS0JMMmFZbFhoaUV5aS9ObXNFUFpXdlZoK3FrM0wvUQotR1N3cGdDK0RoVm9RekZSb2ZVZEs5TzlNa2dSNjc1aWZ0YUZEdnlpN0YwZnhyU0xmQi9XeTRjZ1JZeklXNnB5TgotMnNYV2l2S2RMSTNiZ0IwMWZmZGJPMTdaQUdJTEsxd2hPMjkvYlg2aGJIMDlZL0g3alIydmp5K0tQOU4wUEVhMwotN1NCeW1sb2tCM0E4d3EvTFdQWVBlUUlEQVFBQm8xQXdUakFNQmdOVkhSTUVCVEFEQVFFQk1CMEdBMVVkRGdRVwotQkJTT0JkMWZIMDBZOXI1UzhjRUxqLzlJVDRCR2xEQWZCZ05WSFNNRUdEQVdnQlNPQmQxZkgwMFk5cjVTOGNFTAotai85SVQ0QkdsREFOQmdrcWhraUc5dzBCQVFzRkFBT0NBUUVBV2hySEdJTWNFRzJVSmZ2OTIwaGZ0eGkrSnZqLwotaXZyaEVzY3FsVkEwUU5McVpWOHYvYWkvQWl5cERMazd1d0t0c3hGMmkrc2w4MTQ3M2FTRlM5aGgzRjgzL29mbQoteDhFVThYMUZCUUhOMXp5QUVwWnlQWHI3TWlhVFhuNHc1c0NlWkxtcFd5eEdrK2NSaVBWUkUwUVViWERHZlZScAotM3Y5ODRvQ1VNVXpiYit6djZRbGtIYTZtL2tacTBxcm5OVlZwMFg0YzcvUGI1ZWxKT1ZsS25Jc2xOZ2QvZUxyegotelNhYlRvQVg5T1A2dGJKZFNSa3kvTG1JWVcrQ1hIL1k0WVZ3cEV1N05pc1ptRG82bG5DQm9SUUIzUWd4b01McAotbU0rUlVZK0F5SHIwWnNTVVNiNmlpY0pNUlozbWh4Q0x2bksvTm9lLzNocTRwVWs0U2l0N3M3Skw3QT09Ci0tLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCmRpZmYgLS1naXQgYS90ZXN0cy9kYXRhX2ZpbGVzL2RpcjQvY2VydDQyLmNydCBiL3Rlc3RzL2RhdGFfZmlsZXMvZGlyNC9jZXJ0NDIuY3J0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjMDcxMzE4Li4wMDAwMDAwCi0tLSBhL3Rlc3RzL2RhdGFfZmlsZXMvZGlyNC9jZXJ0NDIuY3J0CisrKyAvZGV2L251bGwKQEAgLTEsMTkgKzAsMCBAQAotLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCi1NSUlEQ2pDQ0FmS2dBd0lCQWdJQkFUQU5CZ2txaGtpRzl3MEJBUXNGQURBV01SUXdFZ1lEVlFRREV3dFVaWE4wCi1JSEp2YjNRZ05EQWVGdzB3TVRBeE1ERXdNREF3TURCYUZ3MHpNREV5TXpFeU16VTVOVGxhTUNZeEpEQWlCZ05WCi1CQU1URzFSbGMzUWdhVzUwWlhKdFpXUnBZWFJsSUcxaGVIQmhkR2dnTVRDQ0FTSXdEUVlKS29aSWh2Y05BUUVCCi1CUUFEZ2dFUEFEQ0NBUW9DZ2dFQkFOcEdsQk1YZG84Y085b3FVdy9iNlBNd2lNTlY4TENlNndCOVZLSFBhNk9HCi1RMG84WHFrdGd3bmgxcm9qZ3BNaGJDQXBFN1VYZU1yNlpHcS9OdHFtTzFoTzVhZFY1SmVoV1p5dmc3ajRFQnBHCi1nOGlXbzBqTnBLTUowWXgxdUJra2xqRWRaTFRIYTRiSy96eTJOS3FETlMyeVdzOS9NNSt4dzVYRTJlY0FnN0ZUCi1jWGhmM3E1MFYrTTZUMklhUTlCeG50VHlDVDhJSUYyZVJNL3Q5WTk0NHM5UmZ6bS9LUVZLUllQdWRYN1loVHQ5Ci1pcUNKQjRKb3FZaHMzSEVPMHdQa0p4WTRLQlRVQ045NHMrN2pVRmRScll4ZSs4WWE2dElZV3FEMzhpNXFkR2hZCi14clZleTFMYXRzREpRMkVnTllvYk0vTGpvQ0xLMVdVc3NFcWYwT1UyYmkwQ0F3RUFBYU5UTUZFd0R3WURWUjBUCi1CQWd3QmdFQkFRSUJBVEFkQmdOVkhRNEVGZ1FVT0JsOGVkVm0vSDV4ZFMyRUdFZUx6ZnRaL0RVd0h3WURWUjBqCi1CQmd3Rm9BVWpnWGRYeDlOR1BhK1V2SEJDNC8vU0UrQVJwUXdEUVlKS29aSWh2Y05BUUVMQlFBRGdnRUJBR0toCi1wQmhZU0dOMEtHV0lHNEdHNG1Wb1Rpdzg4MGVoZXREdVRwbDN5bVpOcWtvVXVUYUF0VTNQSldPY3RjSnZhN2g2Ci00UFNneWFiaS9XUW1obnRSMUd4Q1V0MEdUdWhIbXlKWXNTd2FrWFVnTWdGNlc2VEtjeGc2bTR2ak1ra3JmK1pUCi0xbE8vTWl3eGhUVGx1SFBHa2wvbkJHK3V4eVNJbnVRTUR2ZHlRRFhwMmUxN3F4b3BzK0crMVVuUkppbnFMdHNkCi1MTWtDT1Q0cHloNkI1eXNuSjhnUDFaMkVLV2poS0pjSUhSTVVtN0FwL3BmOFpnaDVMSXFkUnREU3VOdVRtUExQCi1sa2dvZWJPQ08zYy9tV0NjaVIweEdDY3o4NkczZll6bnZHcDRYcUhuUmtnM1NwQWNIUWJRL25TSEErMUxkZkZpCi1ucVpRUG5KUFZzSmN0RFI5MzVjPQotLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQpkaWZmIC0tZ2l0IGEvdGVzdHMvZGF0YV9maWxlcy9kaXI0L2NlcnQ0My5jcnQgYi90ZXN0cy9kYXRhX2ZpbGVzL2RpcjQvY2VydDQzLmNydApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOGU1ZDE5Mi4uMDAwMDAwMAotLS0gYS90ZXN0cy9kYXRhX2ZpbGVzL2RpcjQvY2VydDQzLmNydAorKysgL2Rldi9udWxsCkBAIC0xLDE5ICswLDAgQEAKLS0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQotTUlJREZ6Q0NBZitnQXdJQkFnSUJBVEFOQmdrcWhraUc5dzBCQVFzRkFEQW1NU1F3SWdZRFZRUURFeHRVWlhOMAotSUdsdWRHVnliV1ZrYVdGMFpTQnRZWGh3WVhSb0lERXdIaGNOTURFd01UQXhNREF3TURBd1doY05NekF4TWpNeAotTWpNMU9UVTVXakFtTVNRd0lnWURWUVFERXh0VVpYTjBJR2x1ZEdWeWJXVmthV0YwWlNCdFlYaHdZWFJvSURJdwotZ2dFaU1BMEdDU3FHU0liM0RRRUJBUVVBQTRJQkR3QXdnZ0VLQW9JQkFRQ0tBYUFjWTFZMlFSWllXZnQ1cFRpUQotTFphTkhkRzF3R3loYlV5VkNkMVMvQlpRZUJ4dDhpRHVlSHJvNkxwZVhjaW9BeU1lUFVuUVE4WnpCTitZdDFwRwotODNmd3FOTXlIZjhXSVd1dFF2UXcyQ0liR09STzJGYUN4OVhnTCtMZTlFTk1KYjdaUXdWMTNyN1B1SEFWLzZWMQotT3dJLzFDbjczY1oydXlXdThCSFpiU3FNY3RRc0FrYVQvcGJQRVVickY0S0IyR1NpZ00rbXV4K1Zrbjl3M1ZLNgotcE5nNXBVd0NQMGxxaTlLMVJOV0VYeWk0TlF1bXJSK0lFaWFpVjA1dHdaMW9CYVdCR1hTVHcxMmhJdWxaMy92NgotR0xpd2ZrOUk1bXI3eURXVkRkeUNzVHUxcmhmZW4rTHA0Q2x5ZldISVNSUEwxbWtvNFc5bGVjemdQV1B6NHBJcAotQWdNQkFBR2pVREJPTUF3R0ExVWRFd1FGTUFNQkFRRXdIUVlEVlIwT0JCWUVGTUkzYThNdGpXMXg2ZFBQSkdhVgotTGhNRjdiR0tNQjhHQTFVZEl3UVlNQmFBRkRnWmZIblZadngrY1hVdGhCaEhpODM3V2Z3MU1BMEdDU3FHU0liMwotRFFFQkN3VUFBNElCQVFDcHJ6cG9qNlVhRUc0ZXFMZzJMM0hxc3ZZNzMvWEU4eXR1Wjl3REMzSG9kbm1wZXpVWAotNDhYd0pQSEZPN09HUEdXWmdzVTJxWC9acDd5VVhrVkZTSzRWbm1uU3pVdFhOVmxVMG9XRUVPelFMcnBwaGtzSAotZGNGOFlOTi9ZNjVLbmh6SVU3ODR1SGVGZWZVcFBhRTZ5UzVPU1pib3B0WldWRjl5MUxvVTNGN2dOMFVHdlZHOQotaGZsejVPMC9Ldm1ZZCs2K1lyamUrMmxiSGlKSE5YTG1PUGlaeWs5VEJEa255Z0J1VTE0SU9XZ2hRaW0zeWtzOQotdEtrOEQzOFZsODVWNWFHOW5PNFNUang1SjhCdFNsMHg2d1czdDlXd1U1VUM5Z2VDUk9oWkkxWFJCYWZJb0trbgotVlNnSExwTFRBUnRMaWtiYmcvM1N4cG5XMTJtc0h2Z0xWYXNmCi0tLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCmRpZmYgLS1naXQgYS90ZXN0cy9kYXRhX2ZpbGVzL2RpcjQvY2VydDQ0LmNydCBiL3Rlc3RzL2RhdGFfZmlsZXMvZGlyNC9jZXJ0NDQuY3J0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwODRmYjJkLi4wMDAwMDAwCi0tLSBhL3Rlc3RzL2RhdGFfZmlsZXMvZGlyNC9jZXJ0NDQuY3J0CisrKyAvZGV2L251bGwKQEAgLTEsMTkgKzAsMCBAQAotLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCi1NSUlERnpDQ0FmK2dBd0lCQWdJQkFUQU5CZ2txaGtpRzl3MEJBUXNGQURBbU1TUXdJZ1lEVlFRREV4dFVaWE4wCi1JR2x1ZEdWeWJXVmthV0YwWlNCdFlYaHdZWFJvSURJd0hoY05NREV3TVRBeE1EQXdNREF3V2hjTk16QXhNak14Ci1Nak0xT1RVNVdqQW1NU1F3SWdZRFZRUURFeHRVWlhOMElHbHVkR1Z5YldWa2FXRjBaU0J0WVhod1lYUm9JRE13Ci1nZ0VpTUEwR0NTcUdTSWIzRFFFQkFRVUFBNElCRHdBd2dnRUtBb0lCQVFDUkt1QllVUGlWaERSRVgvUGVZbG1PCi1mV1dBMEdTR2NJL1NGeUltLzk2Mmd3M2RzSUg2NXp4K2pUREVORFpseHZOTUJEU29FMmVNbThBbldxeVZrRDF1Ci1nZ0VxWlB3bEtMR0tML1ZkTU5ZamNUbG82OWZXSHFWYnJxbFd3ak11YlEwQi9SVW1mYkV2RFJpL3lGOHB2Q053Ci0xNEIrYnNZTEFrSHl5U042UXdvbno1N3FrL2hrZkdhdWM2alNSU1VLRHpEeEVyTm5xeGduRmZVUk42Ulk4UlJKCi1ldXh4RDloS09rN09Nc09tSFdVN2lCVVNzR0YwbUFta25PZXFTdEVHSkh0LytFaXVrQlhmQTVSdTErdkdzaHZrCi1WYzR6MnUzK3k5WkZHdk1oUWFjRytqVGhabjRwQWMrd3lmNzNIeUw3KzI1NDZEVW90K3pYU0ZiUkZheE5DT1k1Ci1BZ01CQUFHalVEQk9NQXdHQTFVZEV3UUZNQU1CQVFFd0hRWURWUjBPQkJZRUZJNEd2VlRpSGs5akk2b1o3K0FtCi1EQmFUc1Y5N01COEdBMVVkSXdRWU1CYUFGTUkzYThNdGpXMXg2ZFBQSkdhVkxoTUY3YkdLTUEwR0NTcUdTSWIzCi1EUUVCQ3dVQUE0SUJBUUNCM2R0c29WZHNjaFZ5Q1dTSTE2U2U0NlJaSnRMVzFiTTAxOUtkeVpqOURkSVoyVlBtCi1JcCtCUUZjVkp5emJmbWhuNVFCYmhOREtrd3NmbGRJOVk4SXFaMTMyajQ0Mi9YSUZaSWlsYVBpM2NFL1dMRlVZCi1OeHUyb3B1TjMrS0R3RFlPMzJDVXAzZnJyOU9qQXRCNWFtWm5rWGF1K0MxRWtKbFN1V2FUKy9nSWxZd2xyNC9ICi11QURjeXFGU215MjhQOWpta0s4QXpaSGhLbmxSYWRBbjJjREI4TUZYRDVWeG5MSmZlamtwclFWTGR4VFhSb3ZQCi1jRS82YzdQVUdJSzIyV2NTWDhLVGZ1dmlLbWpkR1ZoZ2VLcHMyblJOS2FTSWxxWUN6dHljOElqY1p3SkNuaDZjCi1aVzhWOWJpN1d4REsrSTlQUGdyZ0xLOFcrVlRrUzBSdGpQNWEKLS0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KZGlmZiAtLWdpdCBhL3Rlc3RzL2RhdGFfZmlsZXMvZGlyNC9jZXJ0NDUuY3J0IGIvdGVzdHMvZGF0YV9maWxlcy9kaXI0L2NlcnQ0NS5jcnQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGU1ZDViM2QuLjAwMDAwMDAKLS0tIGEvdGVzdHMvZGF0YV9maWxlcy9kaXI0L2NlcnQ0NS5jcnQKKysrIC9kZXYvbnVsbApAQCAtMSwxOSArMCwwIEBACi0tLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KLU1JSURERENDQWZTZ0F3SUJBZ0lCQVRBTkJna3Foa2lHOXcwQkFRc0ZBREFtTVNRd0lnWURWUVFERXh0VVpYTjAKLUlHbHVkR1Z5YldWa2FXRjBaU0J0WVhod1lYUm9JRE13SGhjTk1ERXdNVEF4TURBd01EQXdXaGNOTXpBeE1qTXgKLU1qTTFPVFU1V2pBZU1Sd3dHZ1lEVlFRREV4TlVaWE4wSUd4bFlXWWdhVzUyWVd4cFpDQTBNSUlCSWpBTkJna3EKLWhraUc5dzBCQVFFRkFBT0NBUThBTUlJQkNnS0NBUUVBa2NOc0UvczRuYXVBNXZTRy8yM3puSFQ1WmpGQVFpUmEKLTgzeG84M01EMmpNckJqZ0JCek9XMElLZWRrOWxtcWNSbW9Nc1d0M1BiWWVIMkFtK0VxdE9qaDl2Ykh3L3dYRXcKLWVYZzdEdFphWVRqZVJOa3J3WjB6NUJ6L1RUdmlhN1lrY2ZhVTgzT0c0SnlMOEdtbWJ0aUdOT0haeUhxVHYyS3kKLWo2WXF5QkphREU3ZHdCTkJKZDVERWxFdXZyNlR1L1kzSzNaNno4YlpVQVgvNW9JSTJzcThyZzc2WlErRGZrOGkKLXVwanA0TVZQdm93aC8reXMrV05NVzVNQTVrMWR3WXlVMU1aMjBPL2FhOVZUTWtiNERQeXY0cFhaZ2kxZEJDTWMKLVlza1BSVm9QUHNFNXhsM0RaM2g0cVowMzlNYmNhbFhGWWU2NTY4OStSYTFPNC9kc1hSNXJhUUlEQVFBQm8wMHcKLVN6QUpCZ05WSFJNRUFqQUFNQjBHQTFVZERnUVdCQlRLdFhkUVpBOGNaa1MvODllaWloNEdUSlgrZkRBZkJnTlYKLUhTTUVHREFXZ0JTT0JyMVU0aDVQWXlPcUdlL2dKZ3dXazdGZmV6QU5CZ2txaGtpRzl3MEJBUXNGQUFPQ0FRRUEKLUlXeW55bzhlenQrU28rdzI5aDd6MlpTMy9FY3JFcm5TaURESjBEYUUvdmN2ZmxyVC90RVBlREhUeHk2MXFRdVgKLUtvc2VPODRmb0ZxTFB1MVlxZ1NqUmdtYms3Nmd0OGFBdTBscjYvdDBSSFdkSEtaRzNRdEs4Njk2cEdvTUFoVmcKLUhhM2YvWVlhRWtxU25Id1UrL3Z4RVhFa0dITTIyVUh3YjdkdEgyTGZCSHRvUXRqRTZNK1VsdjZRZGtMajJMRkQKLVhNS0pJeUFsaWJUUk1XOFlPUDRHL0Rla0NxMURzdFVPY1RuN0JGcWVBamp6WXd2M05IcE9KSGRaclVneUdiN0IKLVFxRFhmMnJNM3M3TEVwd0RNdmZkcmFBRVdsZDQvTFJMa2ZhdS9QZktENVl3R1lnM05iNDV4eVhGU0VpalZqQXIKLTIzRzhIQUljSkp1MmpVSVdHcjlPdFE9PQotLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQpkaWZmIC0tZ2l0IGEvdGVzdHMvZGF0YV9maWxlcy9kaXI0L2NlcnQ1MS5jcnQgYi90ZXN0cy9kYXRhX2ZpbGVzL2RpcjQvY2VydDUxLmNydApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNzA2NWM5NC4uMDAwMDAwMAotLS0gYS90ZXN0cy9kYXRhX2ZpbGVzL2RpcjQvY2VydDUxLmNydAorKysgL2Rldi9udWxsCkBAIC0xLDE4ICswLDAgQEAKLS0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQotTUlJQzl6Q0NBZCtnQXdJQkFnSUJBVEFOQmdrcWhraUc5dzBCQVFzRkFEQVdNUlF3RWdZRFZRUURFd3RVWlhOMAotSUhKdmIzUWdOREFlRncwd01UQXhNREV3TURBd01EQmFGdzB6TURFeU16RXlNelU1TlRsYU1CWXhGREFTQmdOVgotQkFNVEMxUmxjM1FnY205dmRDQTBNSUlCSWpBTkJna3Foa2lHOXcwQkFRRUZBQU9DQVE4QU1JSUJDZ0tDQVFFQQotbVRYMnNIWTQyT3JkOWdXeUI2R2NkbExqakUrNHpCSjFCb0RwTW52Sjg5bmlNVHVaVHExVmlNcC9CNlJ1VEgrMgotWUYzK3JpWllRREg5eU0vOHJndkFVSXZLOVNUYXExOVpybTBtbmZRVW85eUtka2ZvSitYdld1dks2ZitOa0FNZwoteGZoQUQ2ZVN1cGlnVHZvdi93MklUOHJTMGR4bzRLRjZoS0JMMmFZbFhoaUV5aS9ObXNFUFpXdlZoK3FrM0wvUQotR1N3cGdDK0RoVm9RekZSb2ZVZEs5TzlNa2dSNjc1aWZ0YUZEdnlpN0YwZnhyU0xmQi9XeTRjZ1JZeklXNnB5TgotMnNYV2l2S2RMSTNiZ0IwMWZmZGJPMTdaQUdJTEsxd2hPMjkvYlg2aGJIMDlZL0g3alIydmp5K0tQOU4wUEVhMwotN1NCeW1sb2tCM0E4d3EvTFdQWVBlUUlEQVFBQm8xQXdUakFNQmdOVkhSTUVCVEFEQVFFQk1CMEdBMVVkRGdRVwotQkJTT0JkMWZIMDBZOXI1UzhjRUxqLzlJVDRCR2xEQWZCZ05WSFNNRUdEQVdnQlNPQmQxZkgwMFk5cjVTOGNFTAotai85SVQ0QkdsREFOQmdrcWhraUc5dzBCQVFzRkFBT0NBUUVBV2hySEdJTWNFRzJVSmZ2OTIwaGZ0eGkrSnZqLwotaXZyaEVzY3FsVkEwUU5McVpWOHYvYWkvQWl5cERMazd1d0t0c3hGMmkrc2w4MTQ3M2FTRlM5aGgzRjgzL29mbQoteDhFVThYMUZCUUhOMXp5QUVwWnlQWHI3TWlhVFhuNHc1c0NlWkxtcFd5eEdrK2NSaVBWUkUwUVViWERHZlZScAotM3Y5ODRvQ1VNVXpiYit6djZRbGtIYTZtL2tacTBxcm5OVlZwMFg0YzcvUGI1ZWxKT1ZsS25Jc2xOZ2QvZUxyegotelNhYlRvQVg5T1A2dGJKZFNSa3kvTG1JWVcrQ1hIL1k0WVZ3cEV1N05pc1ptRG82bG5DQm9SUUIzUWd4b01McAotbU0rUlVZK0F5SHIwWnNTVVNiNmlpY0pNUlozbWh4Q0x2bksvTm9lLzNocTRwVWs0U2l0N3M3Skw3QT09Ci0tLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCmRpZmYgLS1naXQgYS90ZXN0cy9kYXRhX2ZpbGVzL2RpcjQvY2VydDUyLmNydCBiL3Rlc3RzL2RhdGFfZmlsZXMvZGlyNC9jZXJ0NTIuY3J0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjMDcxMzE4Li4wMDAwMDAwCi0tLSBhL3Rlc3RzL2RhdGFfZmlsZXMvZGlyNC9jZXJ0NTIuY3J0CisrKyAvZGV2L251bGwKQEAgLTEsMTkgKzAsMCBAQAotLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCi1NSUlEQ2pDQ0FmS2dBd0lCQWdJQkFUQU5CZ2txaGtpRzl3MEJBUXNGQURBV01SUXdFZ1lEVlFRREV3dFVaWE4wCi1JSEp2YjNRZ05EQWVGdzB3TVRBeE1ERXdNREF3TURCYUZ3MHpNREV5TXpFeU16VTVOVGxhTUNZeEpEQWlCZ05WCi1CQU1URzFSbGMzUWdhVzUwWlhKdFpXUnBZWFJsSUcxaGVIQmhkR2dnTVRDQ0FTSXdEUVlKS29aSWh2Y05BUUVCCi1CUUFEZ2dFUEFEQ0NBUW9DZ2dFQkFOcEdsQk1YZG84Y085b3FVdy9iNlBNd2lNTlY4TENlNndCOVZLSFBhNk9HCi1RMG84WHFrdGd3bmgxcm9qZ3BNaGJDQXBFN1VYZU1yNlpHcS9OdHFtTzFoTzVhZFY1SmVoV1p5dmc3ajRFQnBHCi1nOGlXbzBqTnBLTUowWXgxdUJra2xqRWRaTFRIYTRiSy96eTJOS3FETlMyeVdzOS9NNSt4dzVYRTJlY0FnN0ZUCi1jWGhmM3E1MFYrTTZUMklhUTlCeG50VHlDVDhJSUYyZVJNL3Q5WTk0NHM5UmZ6bS9LUVZLUllQdWRYN1loVHQ5Ci1pcUNKQjRKb3FZaHMzSEVPMHdQa0p4WTRLQlRVQ045NHMrN2pVRmRScll4ZSs4WWE2dElZV3FEMzhpNXFkR2hZCi14clZleTFMYXRzREpRMkVnTllvYk0vTGpvQ0xLMVdVc3NFcWYwT1UyYmkwQ0F3RUFBYU5UTUZFd0R3WURWUjBUCi1CQWd3QmdFQkFRSUJBVEFkQmdOVkhRNEVGZ1FVT0JsOGVkVm0vSDV4ZFMyRUdFZUx6ZnRaL0RVd0h3WURWUjBqCi1CQmd3Rm9BVWpnWGRYeDlOR1BhK1V2SEJDNC8vU0UrQVJwUXdEUVlKS29aSWh2Y05BUUVMQlFBRGdnRUJBR0toCi1wQmhZU0dOMEtHV0lHNEdHNG1Wb1Rpdzg4MGVoZXREdVRwbDN5bVpOcWtvVXVUYUF0VTNQSldPY3RjSnZhN2g2Ci00UFNneWFiaS9XUW1obnRSMUd4Q1V0MEdUdWhIbXlKWXNTd2FrWFVnTWdGNlc2VEtjeGc2bTR2ak1ra3JmK1pUCi0xbE8vTWl3eGhUVGx1SFBHa2wvbkJHK3V4eVNJbnVRTUR2ZHlRRFhwMmUxN3F4b3BzK0crMVVuUkppbnFMdHNkCi1MTWtDT1Q0cHloNkI1eXNuSjhnUDFaMkVLV2poS0pjSUhSTVVtN0FwL3BmOFpnaDVMSXFkUnREU3VOdVRtUExQCi1sa2dvZWJPQ08zYy9tV0NjaVIweEdDY3o4NkczZll6bnZHcDRYcUhuUmtnM1NwQWNIUWJRL25TSEErMUxkZkZpCi1ucVpRUG5KUFZzSmN0RFI5MzVjPQotLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQpkaWZmIC0tZ2l0IGEvdGVzdHMvZGF0YV9maWxlcy9kaXI0L2NlcnQ1My5jcnQgYi90ZXN0cy9kYXRhX2ZpbGVzL2RpcjQvY2VydDUzLmNydApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOGU1ZDE5Mi4uMDAwMDAwMAotLS0gYS90ZXN0cy9kYXRhX2ZpbGVzL2RpcjQvY2VydDUzLmNydAorKysgL2Rldi9udWxsCkBAIC0xLDE5ICswLDAgQEAKLS0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQotTUlJREZ6Q0NBZitnQXdJQkFnSUJBVEFOQmdrcWhraUc5dzBCQVFzRkFEQW1NU1F3SWdZRFZRUURFeHRVWlhOMAotSUdsdWRHVnliV1ZrYVdGMFpTQnRZWGh3WVhSb0lERXdIaGNOTURFd01UQXhNREF3TURBd1doY05NekF4TWpNeAotTWpNMU9UVTVXakFtTVNRd0lnWURWUVFERXh0VVpYTjBJR2x1ZEdWeWJXVmthV0YwWlNCdFlYaHdZWFJvSURJdwotZ2dFaU1BMEdDU3FHU0liM0RRRUJBUVVBQTRJQkR3QXdnZ0VLQW9JQkFRQ0tBYUFjWTFZMlFSWllXZnQ1cFRpUQotTFphTkhkRzF3R3loYlV5VkNkMVMvQlpRZUJ4dDhpRHVlSHJvNkxwZVhjaW9BeU1lUFVuUVE4WnpCTitZdDFwRwotODNmd3FOTXlIZjhXSVd1dFF2UXcyQ0liR09STzJGYUN4OVhnTCtMZTlFTk1KYjdaUXdWMTNyN1B1SEFWLzZWMQotT3dJLzFDbjczY1oydXlXdThCSFpiU3FNY3RRc0FrYVQvcGJQRVVickY0S0IyR1NpZ00rbXV4K1Zrbjl3M1ZLNgotcE5nNXBVd0NQMGxxaTlLMVJOV0VYeWk0TlF1bXJSK0lFaWFpVjA1dHdaMW9CYVdCR1hTVHcxMmhJdWxaMy92NgotR0xpd2ZrOUk1bXI3eURXVkRkeUNzVHUxcmhmZW4rTHA0Q2x5ZldISVNSUEwxbWtvNFc5bGVjemdQV1B6NHBJcAotQWdNQkFBR2pVREJPTUF3R0ExVWRFd1FGTUFNQkFRRXdIUVlEVlIwT0JCWUVGTUkzYThNdGpXMXg2ZFBQSkdhVgotTGhNRjdiR0tNQjhHQTFVZEl3UVlNQmFBRkRnWmZIblZadngrY1hVdGhCaEhpODM3V2Z3MU1BMEdDU3FHU0liMwotRFFFQkN3VUFBNElCQVFDcHJ6cG9qNlVhRUc0ZXFMZzJMM0hxc3ZZNzMvWEU4eXR1Wjl3REMzSG9kbm1wZXpVWAotNDhYd0pQSEZPN09HUEdXWmdzVTJxWC9acDd5VVhrVkZTSzRWbm1uU3pVdFhOVmxVMG9XRUVPelFMcnBwaGtzSAotZGNGOFlOTi9ZNjVLbmh6SVU3ODR1SGVGZWZVcFBhRTZ5UzVPU1pib3B0WldWRjl5MUxvVTNGN2dOMFVHdlZHOQotaGZsejVPMC9Ldm1ZZCs2K1lyamUrMmxiSGlKSE5YTG1PUGlaeWs5VEJEa255Z0J1VTE0SU9XZ2hRaW0zeWtzOQotdEtrOEQzOFZsODVWNWFHOW5PNFNUang1SjhCdFNsMHg2d1czdDlXd1U1VUM5Z2VDUk9oWkkxWFJCYWZJb0trbgotVlNnSExwTFRBUnRMaWtiYmcvM1N4cG5XMTJtc0h2Z0xWYXNmCi0tLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCmRpZmYgLS1naXQgYS90ZXN0cy9kYXRhX2ZpbGVzL2RpcjQvY2VydDU0LmNydCBiL3Rlc3RzL2RhdGFfZmlsZXMvZGlyNC9jZXJ0NTQuY3J0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlNDJlMTRmLi4wMDAwMDAwCi0tLSBhL3Rlc3RzL2RhdGFfZmlsZXMvZGlyNC9jZXJ0NTQuY3J0CisrKyAvZGV2L251bGwKQEAgLTEsMTkgKzAsMCBAQAotLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCi1NSUlEQ2pDQ0FmS2dBd0lCQWdJQkFUQU5CZ2txaGtpRzl3MEJBUXNGQURBbU1TUXdJZ1lEVlFRREV4dFVaWE4wCi1JR2x1ZEdWeWJXVmthV0YwWlNCdFlYaHdZWFJvSURJd0hoY05NREV3TVRBeE1EQXdNREF3V2hjTk16QXhNak14Ci1Nak0xT1RVNVdqQWNNUm93R0FZRFZRUURFeEZVWlhOMElFeGxZV1lnTkNCMllXeHBaRENDQVNJd0RRWUpLb1pJCi1odmNOQVFFQkJRQURnZ0VQQURDQ0FRb0NnZ0VCQUpFcTRGaFErSldFTkVSZjg5NWlXWTU5WllEUVpJWndqOUlYCi1JaWIvM3JhRERkMndnZnJuUEg2Tk1NUTBObVhHODB3RU5LZ1RaNHlid0NkYXJKV1FQVzZDQVNway9DVW9zWW92Ci05VjB3MWlOeE9XanIxOVllcFZ1dXFWYkNNeTV0RFFIOUZTWjlzUzhOR0wvSVh5bThJM0RYZ0g1dXhnc0NRZkxKCi1JM3BEQ2lmUG51cVQrR1I4WnE1enFOSkZKUW9QTVBFU3MyZXJHQ2NWOVJFM3BGanhGRWw2N0hFUDJFbzZUczR5Ci13NllkWlR1SUZSS3dZWFNZQ2FTYzU2cEswUVlrZTMvNFNLNlFGZDhEbEc3WDY4YXlHK1JWempQYTdmN0wxa1VhCi04eUZCcHdiNk5PRm1maWtCejdESi92Y2ZJdnY3Ym5qb05TaTM3TmRJVnRFVnJFMEk1amtDQXdFQUFhTk5NRXN3Ci1DUVlEVlIwVEJBSXdBREFkQmdOVkhRNEVGZ1FVamdhOVZPSWVUMk1qcWhudjRDWU1GcE94WDNzd0h3WURWUjBqCi1CQmd3Rm9BVXdqZHJ3eTJOYlhIcDA4OGtacFV1RXdYdHNZb3dEUVlKS29aSWh2Y05BUUVMQlFBRGdnRUJBRGRwCi1WcFByNEF6RTdlY3JoY2xRS0dqUGE3bGVhb3JZdWV2alRMV3NpZVkxN21WUWhsTVgxaXRUTlhsUEJVZlBBc09kCi1PN0xVZ1kweVpPblY3bDhUYmZHYWw4cElGK2FjZ0ZMZ3FNNUE2ejhuZ0NoTWk2aUtFWkNoRFZmZkFWSEpzM2UvCi1XVW03VmVGWThNdnduYXkzaUhqMnRyQzdYUVgyU1pDb3ZYWWZOUDNiVnlxSWFETnF0NlNQWTFza291V3BtbVVuCi1JU3pjeUg2RVUvQ2VnRmpISnlYeHJzSVc5TnYybURlanJtY1IwRUpPbUVBZldVZ29uZmVtZVg5M3hrd1pIVzJzCi1sWjgvZTZyVFBQU0dkaFkvYjRWUnU2bzFGcExjUExHWlNnUHdZQk5WWXRnVDRXc29UMHhVdm02WTFXaXBpWmRhCi1CL2JwaUw4bDRHU1Z0VHcxSmtvPQotLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQpkaWZmIC0tZ2l0IGEvdGVzdHMvZGF0YV9maWxlcy9kaXI0L2NlcnQ2MS5jcnQgYi90ZXN0cy9kYXRhX2ZpbGVzL2RpcjQvY2VydDYxLmNydApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOGMyYWY0Yy4uMDAwMDAwMAotLS0gYS90ZXN0cy9kYXRhX2ZpbGVzL2RpcjQvY2VydDYxLmNydAorKysgL2Rldi9udWxsCkBAIC0xLDE4ICswLDAgQEAKLS0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQotTUlJQytqQ0NBZUtnQXdJQkFnSUJBVEFOQmdrcWhraUc5dzBCQVFzRkFEQVdNUlF3RWdZRFZRUURFd3RVWlhOMAotSUhKdmIzUWdNakFlRncwd01UQXhNREV3TURBd01EQmFGdzB6TURFeU16RXlNelU1TlRsYU1CWXhGREFTQmdOVgotQkFNVEMxUmxjM1FnY205dmRDQXlNSUlCSWpBTkJna3Foa2lHOXcwQkFRRUZBQU9DQVE4QU1JSUJDZ0tDQVFFQQotbVRYMnNIWTQyT3JkOWdXeUI2R2NkbExqakUrNHpCSjFCb0RwTW52Sjg5bmlNVHVaVHExVmlNcC9CNlJ1VEgrMgotWUYzK3JpWllRREg5eU0vOHJndkFVSXZLOVNUYXExOVpybTBtbmZRVW85eUtka2ZvSitYdld1dks2ZitOa0FNZwoteGZoQUQ2ZVN1cGlnVHZvdi93MklUOHJTMGR4bzRLRjZoS0JMMmFZbFhoaUV5aS9ObXNFUFpXdlZoK3FrM0wvUQotR1N3cGdDK0RoVm9RekZSb2ZVZEs5TzlNa2dSNjc1aWZ0YUZEdnlpN0YwZnhyU0xmQi9XeTRjZ1JZeklXNnB5TgotMnNYV2l2S2RMSTNiZ0IwMWZmZGJPMTdaQUdJTEsxd2hPMjkvYlg2aGJIMDlZL0g3alIydmp5K0tQOU4wUEVhMwotN1NCeW1sb2tCM0E4d3EvTFdQWVBlUUlEQVFBQm8xTXdVVEFQQmdOVkhSTUVDREFHQVFFQkFnRUJNQjBHQTFVZAotRGdRV0JCU09CZDFmSDAwWTlyNVM4Y0VMai85SVQ0QkdsREFmQmdOVkhTTUVHREFXZ0JTT0JkMWZIMDBZOXI1UwotOGNFTGovOUlUNEJHbERBTkJna3Foa2lHOXcwQkFRc0ZBQU9DQVFFQUI5bkxhcXhzQlcwaXNEYUJHTkp5ekg5TwotV3FZWTBoZXg5dG0zVXF5Z2ZFOWI5YWFoeWtwa293UUl6aDREOVhwYmQwaFpHVmxLL3N3MnFzS2o2Z0RPaU10TAotdVdzNGdhRk5XSVFxaFZzVHpMODhjN1hhVzU1bitUUlFkVlp5eTM4RFpWV3BodGUxTXVtYzlXQjhOMTVyWlREaAotaVhqd0dsMG1yVjFlZ3E0aEpaTHB5MTRmNmlocVU3S0dmbWM5b254dmd2V3hZTGkrNXY4ODc0YzRvcGhTS3NJMgotcVZFOGlaNnVxMm9RNjZQZDVTNTBjWWs2TUVXNWxpZkFoTE01V0ZabVc3ZFJLbXlrQkdaOXJGckpySXZoa21oOQotSGU3cTZURVFQMVdjb2MxNDduSWcwQlRrSEd0ZHJFdjNqSVg2VUtLVUV3VVVrOUFSQjFtU29kWlFIQmh1d3c9PQotLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQpkaWZmIC0tZ2l0IGEvdGVzdHMvZGF0YV9maWxlcy9kaXI0L2NlcnQ2Mi5jcnQgYi90ZXN0cy9kYXRhX2ZpbGVzL2RpcjQvY2VydDYyLmNydApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNWRjZDY1ZC4uMDAwMDAwMAotLS0gYS90ZXN0cy9kYXRhX2ZpbGVzL2RpcjQvY2VydDYyLmNydAorKysgL2Rldi9udWxsCkBAIC0xLDE5ICswLDAgQEAKLS0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQotTUlJREJ6Q0NBZStnQXdJQkFnSUJBVEFOQmdrcWhraUc5dzBCQVFzRkFEQVdNUlF3RWdZRFZRUURFd3RVWlhOMAotSUhKdmIzUWdNakFlRncwd01UQXhNREV3TURBd01EQmFGdzB6TURFeU16RXlNelU1TlRsYU1DWXhKREFpQmdOVgotQkFNVEcxUmxjM1FnYVc1MFpYSnRaV1JwWVhSbElHMWhlSEJoZEdnZ01UQ0NBU0l3RFFZSktvWklodmNOQVFFQgotQlFBRGdnRVBBRENDQVFvQ2dnRUJBTnBHbEJNWGRvOGNPOW9xVXcvYjZQTXdpTU5WOExDZTZ3QjlWS0hQYTZPRwotUTBvOFhxa3Rnd25oMXJvamdwTWhiQ0FwRTdVWGVNcjZaR3EvTnRxbU8xaE81YWRWNUplaFdaeXZnN2o0RUJwRwotZzhpV28wak5wS01KMFl4MXVCa2tsakVkWkxUSGE0YksvenkyTktxRE5TMnlXczkvTTUreHc1WEUyZWNBZzdGVAotY1hoZjNxNTBWK002VDJJYVE5QnhudFR5Q1Q4SUlGMmVSTS90OVk5NDRzOVJmem0vS1FWS1JZUHVkWDdZaFR0OQotaXFDSkI0Sm9xWWhzM0hFTzB3UGtKeFk0S0JUVUNOOTRzKzdqVUZkUnJZeGUrOFlhNnRJWVdxRDM4aTVxZEdoWQoteHJWZXkxTGF0c0RKUTJFZ05Zb2JNL0xqb0NMSzFXVXNzRXFmME9VMmJpMENBd0VBQWFOUU1FNHdEQVlEVlIwVAotQkFVd0F3RUJBVEFkQmdOVkhRNEVGZ1FVT0JsOGVkVm0vSDV4ZFMyRUdFZUx6ZnRaL0RVd0h3WURWUjBqQkJndwotRm9BVWpnWGRYeDlOR1BhK1V2SEJDNC8vU0UrQVJwUXdEUVlKS29aSWh2Y05BUUVMQlFBRGdnRUJBRndacmlUdQotREtraURIRmZ6M1VYNGZJeFlUSENpNFR2ZVlaR1BlVGJ4aEJiM1haQzVxREY0VDVIdkNUU2tHOStvRmZaekkxYQotbFBOMnlaQjdRbm1ISm95V2E1ZnVvdndVTDBpSTNpSVpNcVU1NnRkVlBXOGdrSmUrK1U1a0hNU3B6MlZGMGVvOAotN1hrS1d4Wm92UndjemdmREZSUDl6TTlDeWx5elFqcXh4NmtieEpveldud2M1VXJWYkpNYVBJcW9uWHAxbkRvWgotaTg3OCtoWDRySlVFamdPNlNhOUdWWlFwbXVDclFGMHFLc1RpVUJ6Wk42N2hvRDN4b1RBWWk1SVhRRTJ0UkQxTgotajN6d25nOWxpQ3N4dXJHTW51VjBCUFd2L0lEWVJ1L3N5amVlMVF2MVZGZVJ0bzVENFJsZG1pMnAxZjVpV0pDawotNW01WXBSc2tuYUlDallzPQotLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQpkaWZmIC0tZ2l0IGEvdGVzdHMvZGF0YV9maWxlcy9kaXI0L2NlcnQ2My5jcnQgYi90ZXN0cy9kYXRhX2ZpbGVzL2RpcjQvY2VydDYzLmNydApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZmZhOTBlNC4uMDAwMDAwMAotLS0gYS90ZXN0cy9kYXRhX2ZpbGVzL2RpcjQvY2VydDYzLmNydAorKysgL2Rldi9udWxsCkBAIC0xLDE5ICswLDAgQEAKLS0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQotTUlJRENqQ0NBZktnQXdJQkFnSUJBVEFOQmdrcWhraUc5dzBCQVFzRkFEQW1NU1F3SWdZRFZRUURFeHRVWlhOMAotSUdsdWRHVnliV1ZrYVdGMFpTQnRZWGh3WVhSb0lERXdIaGNOTURFd01UQXhNREF3TURBd1doY05NekF4TWpNeAotTWpNMU9UVTVXakFjTVJvd0dBWURWUVFERXhGVVpYTjBJRXhsWVdZZ2RtRnNhV1FnTWpDQ0FTSXdEUVlKS29aSQotaHZjTkFRRUJCUUFEZ2dFUEFEQ0NBUW9DZ2dFQkFJb0JvQnhqVmpaQkZsaForM21sT0pBdGxvMGQwYlhBYktGdAotVEpVSjNWTDhGbEI0SEczeUlPNTRldWpvdWw1ZHlLZ0RJeDQ5U2RCRHhuTUUzNWkzV2tiemQvQ28weklkL3hZaAotYTYxQzlERFlJaHNZNUU3WVZvTEgxZUF2NHQ3MFEwd2x2dGxEQlhYZXZzKzRjQlgvcFhVN0FqL1VLZnZkeG5hNwotSmE3d0VkbHRLb3h5MUN3Q1JwUCtsczhSUnVzWGdvSFlaS0tBejZhN0g1V1NmM0RkVXJxazJEbWxUQUkvU1dxTAotMHJWRTFZUmZLTGcxQzZhdEg0Z1NKcUpYVG0zQm5XZ0ZwWUVaZEpQRFhhRWk2Vm5mKy9vWXVMQitUMGptYXZ2SQotTlpVTjNJS3hPN1d1Rjk2ZjR1bmdLWEo5WWNoSkU4dldhU2poYjJWNXpPQTlZL1Bpa2lrQ0F3RUFBYU5OTUVzdwotQ1FZRFZSMFRCQUl3QURBZEJnTlZIUTRFRmdRVXdqZHJ3eTJOYlhIcDA4OGtacFV1RXdYdHNZb3dId1lEVlIwagotQkJnd0ZvQVVPQmw4ZWRWbS9INXhkUzJFR0VlTHpmdFovRFV3RFFZSktvWklodmNOQVFFTEJRQURnZ0VCQUJydAotMmZLT1V3QWI1RUZEL2ViWE1NNFF6ZzZzRllwcS9tY25QbG1HbXF3TnptdW1sZ1lVQlMxNWxpVG5BNG5CZ1IwOQotYjJzZWpsd256Y25yc0ZCMThZQ21FL1RJUHVoM1hNSlhtVXhqY25DeTNxUHVTd3B1d0czYnJVR1FQaUlaaFJaegotMStpU2M3dWJhL0pHYVRxTEJJdGFSUGxCNmREM2pxWTNVb3dGYVd2bllpVm1DWGcxNDdFQkM1TW4yRURpdWtnMAoteHNxTTAzeWZwVWtwNC9XOStXcEp1R055aGljU0piTnhsaDN6RWpyZ1dlTXZobkZtclRyN3NzNlAyWm9LR1MzLwotUXJaQkxVemtrMjVoQ0YzZFROZlREVlNRVXQwck9OSnZ4M3ltK0twK3pRV2Mvb0hzRHMwU1RzNURiMkowZEdwOAotVkV5eHlldmZ3aXZGNEVRNzBKdz0KLS0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KZGlmZiAtLWdpdCBhL3Rlc3RzL2RhdGFfZmlsZXMvZGlyNC9jZXJ0NzEuY3J0IGIvdGVzdHMvZGF0YV9maWxlcy9kaXI0L2NlcnQ3MS5jcnQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDhjMmFmNGMuLjAwMDAwMDAKLS0tIGEvdGVzdHMvZGF0YV9maWxlcy9kaXI0L2NlcnQ3MS5jcnQKKysrIC9kZXYvbnVsbApAQCAtMSwxOCArMCwwIEBACi0tLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KLU1JSUMrakNDQWVLZ0F3SUJBZ0lCQVRBTkJna3Foa2lHOXcwQkFRc0ZBREFXTVJRd0VnWURWUVFERXd0VVpYTjAKLUlISnZiM1FnTWpBZUZ3MHdNVEF4TURFd01EQXdNREJhRncwek1ERXlNekV5TXpVNU5UbGFNQll4RkRBU0JnTlYKLUJBTVRDMVJsYzNRZ2NtOXZkQ0F5TUlJQklqQU5CZ2txaGtpRzl3MEJBUUVGQUFPQ0FROEFNSUlCQ2dLQ0FRRUEKLW1UWDJzSFk0Mk9yZDlnV3lCNkdjZGxMampFKzR6QkoxQm9EcE1udko4OW5pTVR1WlRxMVZpTXAvQjZSdVRIKzIKLVlGMytyaVpZUURIOXlNLzhyZ3ZBVUl2SzlTVGFxMTlacm0wbW5mUVVvOXlLZGtmb0orWHZXdXZLNmYrTmtBTWcKLXhmaEFENmVTdXBpZ1R2b3YvdzJJVDhyUzBkeG80S0Y2aEtCTDJhWWxYaGlFeWkvTm1zRVBaV3ZWaCtxazNML1EKLUdTd3BnQytEaFZvUXpGUm9mVWRLOU85TWtnUjY3NWlmdGFGRHZ5aTdGMGZ4clNMZkIvV3k0Y2dSWXpJVzZweU4KLTJzWFdpdktkTEkzYmdCMDFmZmRiTzE3WkFHSUxLMXdoTzI5L2JYNmhiSDA5WS9IN2pSMnZqeStLUDlOMFBFYTMKLTdTQnltbG9rQjNBOHdxL0xXUFlQZVFJREFRQUJvMU13VVRBUEJnTlZIUk1FQ0RBR0FRRUJBZ0VCTUIwR0ExVWQKLURnUVdCQlNPQmQxZkgwMFk5cjVTOGNFTGovOUlUNEJHbERBZkJnTlZIU01FR0RBV2dCU09CZDFmSDAwWTlyNVMKLThjRUxqLzlJVDRCR2xEQU5CZ2txaGtpRzl3MEJBUXNGQUFPQ0FRRUFCOW5MYXF4c0JXMGlzRGFCR05KeXpIOU8KLVdxWVkwaGV4OXRtM1VxeWdmRTliOWFhaHlrcGtvd1FJemg0RDlYcGJkMGhaR1ZsSy9zdzJxc0tqNmdET2lNdEwKLXVXczRnYUZOV0lRcWhWc1R6TDg4YzdYYVc1NW4rVFJRZFZaeXkzOERaVldwaHRlMU11bWM5V0I4TjE1clpURGgKLWlYandHbDBtclYxZWdxNGhKWkxweTE0ZjZpaHFVN0tHZm1jOW9ueHZndld4WUxpKzV2ODg3NGM0b3BoU0tzSTIKLXFWRThpWjZ1cTJvUTY2UGQ1UzUwY1lrNk1FVzVsaWZBaExNNVdGWm1XN2RSS215a0JHWjlyRnJKckl2aGttaDkKLUhlN3E2VEVRUDFXY29jMTQ3bklnMEJUa0hHdGRyRXYzaklYNlVLS1VFd1VVazlBUkIxbVNvZFpRSEJodXd3PT0KLS0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KZGlmZiAtLWdpdCBhL3Rlc3RzL2RhdGFfZmlsZXMvZGlyNC9jZXJ0NzIuY3J0IGIvdGVzdHMvZGF0YV9maWxlcy9kaXI0L2NlcnQ3Mi5jcnQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDVkY2Q2NWQuLjAwMDAwMDAKLS0tIGEvdGVzdHMvZGF0YV9maWxlcy9kaXI0L2NlcnQ3Mi5jcnQKKysrIC9kZXYvbnVsbApAQCAtMSwxOSArMCwwIEBACi0tLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KLU1JSURCekNDQWUrZ0F3SUJBZ0lCQVRBTkJna3Foa2lHOXcwQkFRc0ZBREFXTVJRd0VnWURWUVFERXd0VVpYTjAKLUlISnZiM1FnTWpBZUZ3MHdNVEF4TURFd01EQXdNREJhRncwek1ERXlNekV5TXpVNU5UbGFNQ1l4SkRBaUJnTlYKLUJBTVRHMVJsYzNRZ2FXNTBaWEp0WldScFlYUmxJRzFoZUhCaGRHZ2dNVENDQVNJd0RRWUpLb1pJaHZjTkFRRUIKLUJRQURnZ0VQQURDQ0FRb0NnZ0VCQU5wR2xCTVhkbzhjTzlvcVV3L2I2UE13aU1OVjhMQ2U2d0I5VktIUGE2T0cKLVEwbzhYcWt0Z3duaDFyb2pncE1oYkNBcEU3VVhlTXI2WkdxL050cW1PMWhPNWFkVjVKZWhXWnl2ZzdqNEVCcEcKLWc4aVdvMGpOcEtNSjBZeDF1QmtrbGpFZFpMVEhhNGJLL3p5Mk5LcUROUzJ5V3M5L001K3h3NVhFMmVjQWc3RlQKLWNYaGYzcTUwVitNNlQySWFROUJ4bnRUeUNUOElJRjJlUk0vdDlZOTQ0czlSZnptL0tRVktSWVB1ZFg3WWhUdDkKLWlxQ0pCNEpvcVloczNIRU8wd1BrSnhZNEtCVFVDTjk0cys3alVGZFJyWXhlKzhZYTZ0SVlXcUQzOGk1cWRHaFkKLXhyVmV5MUxhdHNESlEyRWdOWW9iTS9Mam9DTEsxV1Vzc0VxZjBPVTJiaTBDQXdFQUFhTlFNRTR3REFZRFZSMFQKLUJBVXdBd0VCQVRBZEJnTlZIUTRFRmdRVU9CbDhlZFZtL0g1eGRTMkVHRWVMemZ0Wi9EVXdId1lEVlIwakJCZ3cKLUZvQVVqZ1hkWHg5TkdQYStVdkhCQzQvL1NFK0FScFF3RFFZSktvWklodmNOQVFFTEJRQURnZ0VCQUZ3WnJpVHUKLURLa2lESEZmejNVWDRmSXhZVEhDaTRUdmVZWkdQZVRieGhCYjNYWkM1cURGNFQ1SHZDVFNrRzkrb0ZmWnpJMWEKLWxQTjJ5WkI3UW5tSEpveVdhNWZ1b3Z3VUwwaUkzaUlaTXFVNTZ0ZFZQVzhna0plKytVNWtITVNwejJWRjBlbzgKLTdYa0tXeFpvdlJ3Y3pnZkRGUlA5ek05Q3lseXpRanF4eDZrYnhKb3pXbndjNVVyVmJKTWFQSXFvblhwMW5Eb1oKLWk4NzgraFg0ckpVRWpnTzZTYTlHVlpRcG11Q3JRRjBxS3NUaVVCelpONjdob0QzeG9UQVlpNUlYUUUydFJEMU4KLWozenduZzlsaUNzeHVyR01udVYwQlBXdi9JRFlSdS9zeWplZTFRdjFWRmVSdG81RDRSbGRtaTJwMWY1aVdKQ2sKLTVtNVlwUnNrbmFJQ2pZcz0KLS0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KZGlmZiAtLWdpdCBhL3Rlc3RzL2RhdGFfZmlsZXMvZGlyNC9jZXJ0NzMuY3J0IGIvdGVzdHMvZGF0YV9maWxlcy9kaXI0L2NlcnQ3My5jcnQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDY4NTRjNzQuLjAwMDAwMDAKLS0tIGEvdGVzdHMvZGF0YV9maWxlcy9kaXI0L2NlcnQ3My5jcnQKKysrIC9kZXYvbnVsbApAQCAtMSwxOSArMCwwIEBACi0tLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KLU1JSURGekNDQWYrZ0F3SUJBZ0lCQVRBTkJna3Foa2lHOXcwQkFRc0ZBREFtTVNRd0lnWURWUVFERXh0VVpYTjAKLUlHbHVkR1Z5YldWa2FXRjBaU0J0WVhod1lYUm9JREV3SGhjTk1ERXdNVEF4TURBd01EQXdXaGNOTXpBeE1qTXgKLU1qTTFPVFU1V2pBbU1TUXdJZ1lEVlFRREV4dFVaWE4wSUdsdWRHVnliV1ZrYVdGMFpTQnRZWGh3WVhSb0lERXcKLWdnRWlNQTBHQ1NxR1NJYjNEUUVCQVFVQUE0SUJEd0F3Z2dFS0FvSUJBUURhUnBRVEYzYVBIRHZhS2xNUDIranoKLU1JakRWZkN3bnVzQWZWU2h6MnVqaGtOS1BGNnBMWU1KNGRhNkk0S1RJV3dnS1JPMUYzaksrbVJxdnpiYXBqdFkKLVR1V25WZVNYb1ZtY3I0TzQrQkFhUm9QSWxxTkl6YVNqQ2RHTWRiZ1pKSll4SFdTMHgydUd5djg4dGpTcWd6VXQKLXNsclBmek9mc2NPVnhObm5BSU94VTNGNFg5NnVkRmZqT2s5aUdrUFFjWjdVOGdrL0NDQmRua1RQN2ZXUGVPTFAKLVVYODV2eWtGU2tXRDduVisySVU3ZllxZ2lRZUNhS21JYk54eER0TUQ1Q2NXT0NnVTFBamZlTFB1NDFCWFVhMk0KLVh2dkdHdXJTR0ZxZzkvSXVhblJvV01hMVhzdFMycmJBeVVOaElEV0tHelB5NDZBaXl0VmxMTEJLbjlEbE5tNHQKLUFnTUJBQUdqVURCT01Bd0dBMVVkRXdRRk1BTUJBUUV3SFFZRFZSME9CQllFRkRnWmZIblZadngrY1hVdGhCaEgKLWk4MzdXZncxTUI4R0ExVWRJd1FZTUJhQUZEZ1pmSG5WWnZ4K2NYVXRoQmhIaTgzN1dmdzFNQTBHQ1NxR1NJYjMKLURRRUJDd1VBQTRJQkFRRFBRQzl2WUplZ0JnVlpIdTBTdG9SVDdMNlNoV2NaYzVaL1RleXJxSkJkb2lndVNScTUKLWtNaUZYWnBrc3hlRmxJVVlyeTIxTWlnWXF4T1hHWjJHWllOcWhMcFlWaDdoekFZOHVZdmY0VTcwcTg4emo3bXcKLWdJY2dFYU1kNzFHSHFiYjJPNXgzZkNON3ZMZVU1REZZQldmcUxsa0w1N1VxcjJhUkRIbHVjcnl5Uk5vcmRpY04KLVdiQ3hQb3ptcXRiTk1BQkVVYmpMTUNDdXpKZU5SU1piUzBPT29kNlhkM04wMEVLN1BxYVJoYmloYnEzTDZnVUcKLU1qVUkya2VTeFc0dlhjRGZJNUhxZW02U0hwQ2MzcmV0eDJWVWd3SURBb1RydzdFNGR3bXlDNFRwN1RESkwvK2QKLUdVOHFoUm1vUWVyN21MVXpwYjNzOG1xLzRyWngrYWxUUTNndQotLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQpkaWZmIC0tZ2l0IGEvdGVzdHMvZGF0YV9maWxlcy9kaXI0L2NlcnQ3NC5jcnQgYi90ZXN0cy9kYXRhX2ZpbGVzL2RpcjQvY2VydDc0LmNydApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOTIwYzRjMi4uMDAwMDAwMAotLS0gYS90ZXN0cy9kYXRhX2ZpbGVzL2RpcjQvY2VydDc0LmNydAorKysgL2Rldi9udWxsCkBAIC0xLDE5ICswLDAgQEAKLS0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQotTUlJRENqQ0NBZktnQXdJQkFnSUJBVEFOQmdrcWhraUc5dzBCQVFzRkFEQW1NU1F3SWdZRFZRUURFeHRVWlhOMAotSUdsdWRHVnliV1ZrYVdGMFpTQnRZWGh3WVhSb0lERXdIaGNOTURFd01UQXhNREF3TURBd1doY05NekF4TWpNeAotTWpNMU9UVTVXakFjTVJvd0dBWURWUVFERXhGVVpYTjBJRXhsWVdZZ2RtRnNhV1FnTXpDQ0FTSXdEUVlKS29aSQotaHZjTkFRRUJCUUFEZ2dFUEFEQ0NBUW9DZ2dFQkFJb0JvQnhqVmpaQkZsaForM21sT0pBdGxvMGQwYlhBYktGdAotVEpVSjNWTDhGbEI0SEczeUlPNTRldWpvdWw1ZHlLZ0RJeDQ5U2RCRHhuTUUzNWkzV2tiemQvQ28weklkL3hZaAotYTYxQzlERFlJaHNZNUU3WVZvTEgxZUF2NHQ3MFEwd2x2dGxEQlhYZXZzKzRjQlgvcFhVN0FqL1VLZnZkeG5hNwotSmE3d0VkbHRLb3h5MUN3Q1JwUCtsczhSUnVzWGdvSFlaS0tBejZhN0g1V1NmM0RkVXJxazJEbWxUQUkvU1dxTAotMHJWRTFZUmZLTGcxQzZhdEg0Z1NKcUpYVG0zQm5XZ0ZwWUVaZEpQRFhhRWk2Vm5mKy9vWXVMQitUMGptYXZ2SQotTlpVTjNJS3hPN1d1Rjk2ZjR1bmdLWEo5WWNoSkU4dldhU2poYjJWNXpPQTlZL1Bpa2lrQ0F3RUFBYU5OTUVzdwotQ1FZRFZSMFRCQUl3QURBZEJnTlZIUTRFRmdRVXdqZHJ3eTJOYlhIcDA4OGtacFV1RXdYdHNZb3dId1lEVlIwagotQkJnd0ZvQVVPQmw4ZWRWbS9INXhkUzJFR0VlTHpmdFovRFV3RFFZSktvWklodmNOQVFFTEJRQURnZ0VCQUs5UgotSjdIOGVwRzJOYWdaM0dwbDZSMWpTaUlpeFdsUEpjaTJCejFOcjhOSUVSNjRUSkNLSGVoOWt1NnR6U2RyVkwzQgotMnJqNUdtcHViRFhFV0FLZk10dDBjY0YyVUl2YTlyRE1OemFBbkNTZXZXSFhmOUh0dHI4NFg2Um1odFhiOS9SbQotZnAzVytMMEdsRGZIZkhuOHVvVmRRZTVlNnhrbUd4dGNIRFVzeU8vQ0pNa3J3VXlvQjh6czdVdGxOdE9mNDVINAotUFBnMDlselY3UlE5dkZJSDQ4Ri80Z1pXK3czQXFOOVp3dllrR2NKVVk4dHlIcGI5aERyUjRGNmxvVklucmxDRQotMHBRaVFYTkNkZWUxemE5UXNTY1NqWU54R2ZSMkRrem90ZTQxSDA5OGp2TGFsTFRUZzVGcXgvQXlsblgyODVGSQotRVRHT3VtTlE1MUlKTFVwcStoYz0KLS0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KZGlmZiAtLWdpdCBhL3Rlc3RzL2RhdGFfZmlsZXMvZGlyNC9jZXJ0ODEuY3J0IGIvdGVzdHMvZGF0YV9maWxlcy9kaXI0L2NlcnQ4MS5jcnQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDI2YjJiZDUuLjAwMDAwMDAKLS0tIGEvdGVzdHMvZGF0YV9maWxlcy9kaXI0L2NlcnQ4MS5jcnQKKysrIC9kZXYvbnVsbApAQCAtMSwxMSArMCwwIEBACi0tLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KLU1JSUJwVENDQVVtZ0F3SUJBZ0lCVVRBTUJnZ3Foa2pPUFFRREFnVUFNREV4RHpBTkJnTlZCQU1UQmxKdmIzUWcKLU9ERVJNQThHQTFVRUNoTUliV0psWkNCVVRGTXhDekFKQmdOVkJBWVRBbFZMTUI0WERUQXhNREV3TVRBd01EQXcKLU1Gb1hEVE13TVRJek1USXpOVGsxT1Zvd01URVBNQTBHQTFVRUF4TUdVbTl2ZENBNE1SRXdEd1lEVlFRS0V3aHQKLVltVmtJRlJNVXpFTE1Ba0dBMVVFQmhNQ1ZVc3dXVEFUQmdjcWhrak9QUUlCQmdncWhrak9QUU1CQndOQ0FBVDEKLUd1VFE5dmdmMmwzb0xNMjVyNzhjdklBUXFFMDJHelFHanAvV1d3M0N5c0V3VHdORXVaR2hSaUQ1bERta2JVR1cKLVVOeHYvN3VKank3azNLM2ZETmRrbzFBd1RqQU1CZ05WSFJNRUJUQURBUUgvTUIwR0ExVWREZ1FXQkJUSEZBMmgKLUF1MHRQbnplWW5MY21sVFFqNEZBYWpBZkJnTlZIU01FR0RBV2dCVEhGQTJoQXUwdFBuemVZbkxjbWxUUWo0RkEKLWFqQU1CZ2dxaGtqT1BRUURBZ1VBQTBnQU1FVUNJSDdaL0hOYi9Qd2JzNDBpTmxsMWE5Z21nQWJZT2dkbFZQV28KLW5TZGNiN2NaQWlFQWxoVmI2Q2RCWHNqT2ZBV1dFRVQvUVA3NHo2MDhQS0ZjY0NJRlBDRExreG89Ci0tLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCmRpZmYgLS1naXQgYS90ZXN0cy9kYXRhX2ZpbGVzL2RpcjQvY2VydDgyLmNydCBiL3Rlc3RzL2RhdGFfZmlsZXMvZGlyNC9jZXJ0ODIuY3J0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkNDllY2M5Li4wMDAwMDAwCi0tLSBhL3Rlc3RzL2RhdGFfZmlsZXMvZGlyNC9jZXJ0ODIuY3J0CisrKyAvZGV2L251bGwKQEAgLTEsMTEgKzAsMCBAQAotLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCi1NSUlCcURDQ0FVeWdBd0lCQWdJQlVqQU1CZ2dxaGtqT1BRUURBZ1VBTURFeER6QU5CZ05WQkFNVEJsSnZiM1FnCi1PREVSTUE4R0ExVUVDaE1JYldKbFpDQlVURk14Q3pBSkJnTlZCQVlUQWxWTE1CNFhEVEF4TURFd01UQXdNREF3Ci1NRm9YRFRNd01USXpNVEl6TlRrMU9Wb3dNVEVQTUEwR0ExVUVBeE1HU1c1MElEZ3lNUkV3RHdZRFZRUUtFd2h0Ci1ZbVZrSUZSTVV6RUxNQWtHQTFVRUJoTUNWVXN3V1RBVEJnY3Foa2pPUFFJQkJnZ3Foa2pPUFFNQkJ3TkNBQVMyCi1naVlRdDRIVmZRMnQ4ZVRTMGJ2SVN3cDdvbDJ4MTd1bWJsbEJ4d3pHREZFVVEwMEpMMS9TU3RlemVjSzBsTmhFCi0wQXZZOEV6MnNvUUV0ZFNlUUdrQ28xTXdVVEFQQmdOVkhSTUVDREFHQVFIL0FnRUFNQjBHQTFVZERnUVdCQlMzCi0rbnN2M25Ra25TZzRhRGpsVGlScENQbzdYekFmQmdOVkhTTUVHREFXZ0JUSEZBMmhBdTB0UG56ZVluTGNtbFRRCi1qNEZBYWpBTUJnZ3Foa2pPUFFRREFnVUFBMGdBTUVVQ0lRRHVzMkx2eDN5eXZhVmlZMXMzMzR1TW02Z2U0ODRYCi1va3RNeXhMVmprQU1pQUlnZWhUSGlKSmFUOVBubFZhK2hVcHhzSWZWQXVNZXhybTVmdy9iREY1Tnh6dz0KLS0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KZGlmZiAtLWdpdCBhL3Rlc3RzL2RhdGFfZmlsZXMvZGlyNC9jZXJ0ODMuY3J0IGIvdGVzdHMvZGF0YV9maWxlcy9kaXI0L2NlcnQ4My5jcnQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDIxYTc0OGUuLjAwMDAwMDAKLS0tIGEvdGVzdHMvZGF0YV9maWxlcy9kaXI0L2NlcnQ4My5jcnQKKysrIC9kZXYvbnVsbApAQCAtMSwxMSArMCwwIEBACi0tLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KLU1JSUJvRENDQVVXZ0F3SUJBZ0lCVXpBTUJnZ3Foa2pPUFFRREFnVUFNREV4RHpBTkJnTlZCQU1UQmtsdWRDQTQKLU1qRVJNQThHQTFVRUNoTUliV0psWkNCVVRGTXhDekFKQmdOVkJBWVRBbFZMTUI0WERUQXhNREV3TVRBd01EQXcKLU1Gb1hEVE13TVRJek1USXpOVGsxT1Zvd01ERU9NQXdHQTFVRUF4TUZSVVVnT0RNeEVUQVBCZ05WQkFvVENHMWkKLVpXUWdWRXhUTVFzd0NRWURWUVFHRXdKVlN6QlpNQk1HQnlxR1NNNDlBZ0VHQ0NxR1NNNDlBd0VIQTBJQUJNU3kKLTZYNWlCWXJkeHhPTWZkY0EyM3BMQm9KQ2V5RWppV2ZBTHhUbTgwTUpHQmRSTlZkblQ1MHhOVTNTRER3SFdQZGEKLS9FUXFIcStpdHNxa1VleUFHQXlqVFRCTE1Ba0dBMVVkRXdRQ01BQXdIUVlEVlIwT0JCWUVGR3NGSC9Lc3ZNNG4KLXIraTFnSTJpQ1ZYaTNLdEZNQjhHQTFVZEl3UVlNQmFBRkxmNmV5L2VkQ1NkS0Rob09PVk9KR2tJK2p0Zk1Bd0cKLUNDcUdTTTQ5QkFNQ0JRQURSd0F3UkFJZ1FVUkg4REhXRkhWSzM4K3puV2M4NUcxUCtnNG9jZGtBNUd0MExiT2cKLVNKTUNJQnNhY09MRnl3eFpZRjhhdGl6dzZ6TVJ3K1FlSFIyNTE0SkloSlVjazJrZAotLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQpkaWZmIC0tZ2l0IGEvdGVzdHMvZGF0YV9maWxlcy9kaXI0L2NlcnQ5MS5jcnQgYi90ZXN0cy9kYXRhX2ZpbGVzL2RpcjQvY2VydDkxLmNydApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNmQ0NjA1YS4uMDAwMDAwMAotLS0gYS90ZXN0cy9kYXRhX2ZpbGVzL2RpcjQvY2VydDkxLmNydAorKysgL2Rldi9udWxsCkBAIC0xLDExICswLDAgQEAKLS0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQotTUlJQnFUQ0NBVXlnQXdJQkFnSUJXekFNQmdncWhrak9QUVFEQWdVQU1ERXhEekFOQmdOVkJBTVRCbEp2YjNRZwotT1RFUk1BOEdBMVVFQ2hNSWJXSmxaQ0JVVEZNeEN6QUpCZ05WQkFZVEFsVkxNQjRYRFRBeE1ERXdNVEF3TURBdwotTUZvWERUTXdNVEl6TVRJek5UazFPVm93TVRFUE1BMEdBMVVFQXhNR1VtOXZkQ0E1TVJFd0R3WURWUVFLRXdodAotWW1Wa0lGUk1VekVMTUFrR0ExVUVCaE1DVlVzd1dUQVRCZ2NxaGtqT1BRSUJCZ2dxaGtqT1BRTUJCd05DQUFUaAotRDJTbWRTNkQ3Y1lpMnZHTXl1Q2RvbC9PT1VOMmRpMnBTMndmU0kvTXNZL1o0TzlpTkhxYlhRUDZsK2hjVDVhcAotZGF5Y3M3cjZaUE5xbVdNN2IxNmdvMU13VVRBUEJnTlZIUk1FQ0RBR0FRSC9BZ0VBTUIwR0ExVWREZ1FXQkJSYgotelZyY0F4ZGRqMGkwREVxdlRHVDhGMzdiaXpBZkJnTlZIU01FR0RBV2dCUmJ6VnJjQXhkZGowaTBERXF2VEdUOAotRjM3Yml6QU1CZ2dxaGtqT1BRUURBZ1VBQTBrQU1FWUNJUURiclNWNG5kSDB2QVIzSHFKZkJuOE5UOHpkdk1qQgotcVNKZXM2UXdhNDJiMndJaEFLeW9IMEgrYjFTdnc4cE1rdlVZRjRFbEg1Q25uN2d4YjdXbDNhcmMwK2hRCi0tLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCmRpZmYgLS1naXQgYS90ZXN0cy9kYXRhX2ZpbGVzL2RpcjQvY2VydDkyLmNydCBiL3Rlc3RzL2RhdGFfZmlsZXMvZGlyNC9jZXJ0OTIuY3J0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0OWI1M2E1Li4wMDAwMDAwCi0tLSBhL3Rlc3RzL2RhdGFfZmlsZXMvZGlyNC9jZXJ0OTIuY3J0CisrKyAvZGV2L251bGwKQEAgLTEsMTEgKzAsMCBAQAotLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCi1NSUlCb1RDQ0FVV2dBd0lCQWdJQlhEQU1CZ2dxaGtqT1BRUURBZ1VBTURFeER6QU5CZ05WQkFNVEJsSnZiM1FnCi1PVEVSTUE4R0ExVUVDaE1JYldKbFpDQlVURk14Q3pBSkJnTlZCQVlUQWxWTE1CNFhEVEF4TURFd01UQXdNREF3Ci1NRm9YRFRNd01USXpNVEl6TlRrMU9Wb3dNREVPTUF3R0ExVUVBeE1GUlVVZ09USXhFVEFQQmdOVkJBb1RDRzFpCi1aV1FnVkV4VE1Rc3dDUVlEVlFRR0V3SlZTekJaTUJNR0J5cUdTTTQ5QWdFR0NDcUdTTTQ5QXdFSEEwSUFCQzlFCi10SzFwRThFaTh2Z1NjdW55ang1MEMrcURzUVM4RDJSaEdIQzRWa0UyeXlpRnhKQS95bmhvZVhUS1pzSHVFV0k5Ci1DZk9TdmswUnJUV2Y5bnIwcFRHalRUQkxNQWtHQTFVZEV3UUNNQUF3SFFZRFZSME9CQllFRkxxc041MnRBZjFrCi1YbHp4UW1kRDVxRzZTeTZQTUI4R0ExVWRJd1FZTUJhQUZGdk5XdHdERjEyUFNMUU1TcTlNWlB3WGZ0dUxNQXdHCi1DQ3FHU000OUJBTUNCUUFEU0FBd1JRSWdYbGZLcWhraFhnSzExMkV5Y2wrWjVOSE0rNmFxWEU3aTlqN0l5R2ZrCi1pa0lDSVFEQllOR2JwU3g4MlhHK0lTL2g0QVdOVGE0SHM2cm1XdlFEV0p1bTdOcnpNUT09Ci0tLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCmRpZmYgLS1naXQgYS90ZXN0cy9kYXRhX2ZpbGVzL2VjXzIyNF9wcnYuY29tcC5wZW0gYi90ZXN0cy9kYXRhX2ZpbGVzL2VjXzIyNF9wcnYuY29tcC5wZW0KZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGU3ZWQ1MzguLjAwMDAwMDAKLS0tIGEvdGVzdHMvZGF0YV9maWxlcy9lY18yMjRfcHJ2LmNvbXAucGVtCisrKyAvZGV2L251bGwKQEAgLTEsNCArMCwwIEBACi0tLS0tLUJFR0lOIEVDIFBSSVZBVEUgS0VZLS0tLS0KLU1Fd0NBUUVFSEdoSitYMFFadmFaZDFsamZINDRtVVpNN2o3SHJKY0dVNkMrQjBLZ0J3WUZLNEVFQUNHaElBTWUKLUFBTVdrNktROS9DMWNmNHJRZFhZU3dFeWRqSDBxR0Q1bGZvekxBbC8KLS0tLS0tRU5EIEVDIFBSSVZBVEUgS0VZLS0tLS0KZGlmZiAtLWdpdCBhL3Rlc3RzL2RhdGFfZmlsZXMvZWNfMjI0X3Bydi5wZW0gYi90ZXN0cy9kYXRhX2ZpbGVzL2VjXzIyNF9wcnYucGVtCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlYmI4M2EwLi4wMDAwMDAwCi0tLSBhL3Rlc3RzL2RhdGFfZmlsZXMvZWNfMjI0X3Bydi5wZW0KKysrIC9kZXYvbnVsbApAQCAtMSw1ICswLDAgQEAKLS0tLS0tQkVHSU4gRUMgUFJJVkFURSBLRVktLS0tLQotTUdnQ0FRRUVIR2hKK1gwUVp2YVpkMWxqZkg0NG1VWk03ajdIckpjR1U2QytCMEtnQndZRks0RUVBQ0doUEFNNgotQUFRV2s2S1E5L0MxY2Y0clFkWFlTd0V5ZGpIMHFHRDVsZm96TEFsL1ZCa3JzUThBRVQ4cS83RThHaVRPUkpGRgotY2FsVVFLNEJTZ0RMOXc9PQotLS0tLS1FTkQgRUMgUFJJVkFURSBLRVktLS0tLQpkaWZmIC0tZ2l0IGEvdGVzdHMvZGF0YV9maWxlcy9lY18yMjRfcHViLmNvbXAucGVtIGIvdGVzdHMvZGF0YV9maWxlcy9lY18yMjRfcHViLmNvbXAucGVtCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxNTkzNjZjLi4wMDAwMDAwCi0tLSBhL3Rlc3RzL2RhdGFfZmlsZXMvZWNfMjI0X3B1Yi5jb21wLnBlbQorKysgL2Rldi9udWxsCkBAIC0xLDQgKzAsMCBAQAotLS0tLS1CRUdJTiBQVUJMSUMgS0VZLS0tLS0KLU1ESXdFQVlIS29aSXpqMENBUVlGSzRFRUFDRURIZ0FERnBPaWtQZnd0WEgrSzBIVjJFc0JNbll4OUtoZytaWDYKLU15d0pmdz09Ci0tLS0tLUVORCBQVUJMSUMgS0VZLS0tLS0KZGlmZiAtLWdpdCBhL3Rlc3RzL2RhdGFfZmlsZXMvZWNfMjI0X3B1Yi5wZW0gYi90ZXN0cy9kYXRhX2ZpbGVzL2VjXzIyNF9wdWIucGVtCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkMmRhNTRhLi4wMDAwMDAwCi0tLSBhL3Rlc3RzL2RhdGFfZmlsZXMvZWNfMjI0X3B1Yi5wZW0KKysrIC9kZXYvbnVsbApAQCAtMSw0ICswLDAgQEAKLS0tLS0tQkVHSU4gUFVCTElDIEtFWS0tLS0tCi1NRTR3RUFZSEtvWkl6ajBDQVFZRks0RUVBQ0VET2dBRUZwT2lrUGZ3dFhIK0swSFYyRXNCTW5ZeDlLaGcrWlg2Ci1NeXdKZjFRWks3RVBBQkUvS3YreFBCb2t6a1NSUlhHcFZFQ3VBVW9BeS9jPQotLS0tLS1FTkQgUFVCTElDIEtFWS0tLS0tCmRpZmYgLS1naXQgYS90ZXN0cy9kYXRhX2ZpbGVzL2VjXzI1Nl9sb25nX3Bydi5kZXIgYi90ZXN0cy9kYXRhX2ZpbGVzL2VjXzI1Nl9sb25nX3Bydi5kZXIKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDk2ZTMyOWUuLjAwMDAwMDAKLS0tIGEvdGVzdHMvZGF0YV9maWxlcy9lY18yNTZfbG9uZ19wcnYuZGVyCisrKyAvZGV2L251bGwKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvdGVzdHMvZGF0YV9maWxlcy9lY18yNTZfbG9uZ19wcnYucGVtIGIvdGVzdHMvZGF0YV9maWxlcy9lY18yNTZfbG9uZ19wcnYucGVtCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1MTQxZTMwLi4wMDAwMDAwCi0tLSBhL3Rlc3RzL2RhdGFfZmlsZXMvZWNfMjU2X2xvbmdfcHJ2LnBlbQorKysgL2Rldi9udWxsCkBAIC0xLDUgKzAsMCBAQAotLS0tLS1CRUdJTiBFQyBQUklWQVRFIEtFWS0tLS0tCi1NSGNDQVFFRUlJY2V4NG1xWHNRYW1VS1RWZjh2WG1UQUpyUXZHamg1bVhHOHA5K09SNHhBb0FvR0NDcUdTTTQ5Ci1Bd0VIb1VRRFFnQUVxSjJIUWpQcGM2ZkR3RS92U2E2VTM1VVNYYXdrVG85OHk0VTZOc0FsK3JPR3VxTVBFRlhmCi1QMVNybS9Kcnp3YS9SdXBwUkw1a2d5QXNHSlRVbXdaRXpRPT0KLS0tLS0tRU5EIEVDIFBSSVZBVEUgS0VZLS0tLS0KZGlmZiAtLWdpdCBhL3Rlc3RzL2RhdGFfZmlsZXMvZWNfMjU2X3Bydi5jb21wLnBlbSBiL3Rlc3RzL2RhdGFfZmlsZXMvZWNfMjU2X3Bydi5jb21wLnBlbQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOWVmOGM5Ny4uMDAwMDAwMAotLS0gYS90ZXN0cy9kYXRhX2ZpbGVzL2VjXzI1Nl9wcnYuY29tcC5wZW0KKysrIC9kZXYvbnVsbApAQCAtMSw0ICswLDAgQEAKLS0tLS0tQkVHSU4gRUMgUFJJVkFURSBLRVktLS0tLQotTUZjQ0FRRUVJRW5KcU1HTVM0aFdPTVF4engzeHlaUVRGZ20xZ05UOVE2REtzWDJ5OFQ3dW9Bb0dDQ3FHU000OQotQXdFSG9TUURJZ0FEZDNKbGI0RkxPWko1MWVIeGVCK3Nid21hUEZ5aHNPTlRVWU5MQ0xaZUMxYz0KLS0tLS0tRU5EIEVDIFBSSVZBVEUgS0VZLS0tLS0KZGlmZiAtLWdpdCBhL3Rlc3RzL2RhdGFfZmlsZXMvZWNfMjU2X3Bydi5wZW0gYi90ZXN0cy9kYXRhX2ZpbGVzL2VjXzI1Nl9wcnYucGVtCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlNDJkZDRhLi4wMDAwMDAwCi0tLSBhL3Rlc3RzL2RhdGFfZmlsZXMvZWNfMjU2X3Bydi5wZW0KKysrIC9kZXYvbnVsbApAQCAtMSw1ICswLDAgQEAKLS0tLS0tQkVHSU4gRUMgUFJJVkFURSBLRVktLS0tLQotTUhjQ0FRRUVJRW5KcU1HTVM0aFdPTVF4engzeHlaUVRGZ20xZ05UOVE2REtzWDJ5OFQ3dW9Bb0dDQ3FHU000OQotQXdFSG9VUURRZ0FFZDNKbGI0RkxPWko1MWVIeGVCK3Nid21hUEZ5aHNPTlRVWU5MQ0xaZUMxY2xrTTJ2ajNhVAotWWJ6elNzL0JIbDRIVG9RbXZkNEV2bTVsT1VWRWxoZmVSUT09Ci0tLS0tLUVORCBFQyBQUklWQVRFIEtFWS0tLS0tCmRpZmYgLS1naXQgYS90ZXN0cy9kYXRhX2ZpbGVzL2VjXzI1Nl9wdWIuY29tcC5wZW0gYi90ZXN0cy9kYXRhX2ZpbGVzL2VjXzI1Nl9wdWIuY29tcC5wZW0KZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGJmOTY1NWQuLjAwMDAwMDAKLS0tIGEvdGVzdHMvZGF0YV9maWxlcy9lY18yNTZfcHViLmNvbXAucGVtCisrKyAvZGV2L251bGwKQEAgLTEsNCArMCwwIEBACi0tLS0tLUJFR0lOIFBVQkxJQyBLRVktLS0tLQotTURrd0V3WUhLb1pJemowQ0FRWUlLb1pJemowREFRY0RJZ0FEZDNKbGI0RkxPWko1MWVIeGVCK3Nid21hUEZ5aAotc09OVFVZTkxDTFplQzFjPQotLS0tLS1FTkQgUFVCTElDIEtFWS0tLS0tCmRpZmYgLS1naXQgYS90ZXN0cy9kYXRhX2ZpbGVzL2VjXzI1Nl9wdWIucGVtIGIvdGVzdHMvZGF0YV9maWxlcy9lY18yNTZfcHViLnBlbQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNzAxZGEwMi4uMDAwMDAwMAotLS0gYS90ZXN0cy9kYXRhX2ZpbGVzL2VjXzI1Nl9wdWIucGVtCisrKyAvZGV2L251bGwKQEAgLTEsNCArMCwwIEBACi0tLS0tLUJFR0lOIFBVQkxJQyBLRVktLS0tLQotTUZrd0V3WUhLb1pJemowQ0FRWUlLb1pJemowREFRY0RRZ0FFZDNKbGI0RkxPWko1MWVIeGVCK3Nid21hUEZ5aAotc09OVFVZTkxDTFplQzFjbGtNMnZqM2FUWWJ6elNzL0JIbDRIVG9RbXZkNEV2bTVsT1VWRWxoZmVSUT09Ci0tLS0tLUVORCBQVUJMSUMgS0VZLS0tLS0KZGlmZiAtLWdpdCBhL3Rlc3RzL2RhdGFfZmlsZXMvZWNfMzg0X3Bydi5jb21wLnBlbSBiL3Rlc3RzL2RhdGFfZmlsZXMvZWNfMzg0X3Bydi5jb21wLnBlbQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMzEyNWI0MS4uMDAwMDAwMAotLS0gYS90ZXN0cy9kYXRhX2ZpbGVzL2VjXzM4NF9wcnYuY29tcC5wZW0KKysrIC9kZXYvbnVsbApAQCAtMSw1ICswLDAgQEAKLS0tLS0tQkVHSU4gRUMgUFJJVkFURSBLRVktLS0tLQotTUhRQ0FRRUVNRDlkalp2aWdMVnBiTVhNbjVUUGl2Zm10aDNXV1NzcXNyT2t4Z2RGQkJmc01uM055dTE4RUFVOQotY1pvRmRQQ25hcUFIQmdVcmdRUUFJcUUwQXpJQUE5bkdZclVMb3B5a2VaQkZEZ1E2NnZUd3hwc1ZaMjBSTDJJcQotY2Nrd1dhK1pscEhGYUEwclJORVJWNTJ4TDBwQk9nPT0KLS0tLS0tRU5EIEVDIFBSSVZBVEUgS0VZLS0tLS0KZGlmZiAtLWdpdCBhL3Rlc3RzL2RhdGFfZmlsZXMvZWNfMzg0X3Bydi5wZW0gYi90ZXN0cy9kYXRhX2ZpbGVzL2VjXzM4NF9wcnYucGVtCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3ODkwNzU5Li4wMDAwMDAwCi0tLSBhL3Rlc3RzL2RhdGFfZmlsZXMvZWNfMzg0X3Bydi5wZW0KKysrIC9kZXYvbnVsbApAQCAtMSw2ICswLDAgQEAKLS0tLS0tQkVHSU4gRUMgUFJJVkFURSBLRVktLS0tLQotTUlHa0FnRUJCREEvWFkyYjRvQzFhV3pGekorVXo0cjM1cllkMWxrcktyS3pwTVlIUlFRWDdESjl6Y3J0ZkJBRgotUFhHYUJYVHdwMnFnQndZRks0RUVBQ0toWkFOaUFBVFp4bUsxQzZLY3BIbVFSUTRFT3VyMDhNYWJGV2R0RVM5aQotS25ISk1GbXZtWmFSeFdnTkswVFJFVmVkc1M5S1FUb3UxY1JmejdaN1cyUGdDNUhyNVowSnByR3NMQXhDZ3FvUwotTVg3VmtVK1ptOFNJdXhNdWcwTE1OdkxLWGpONXgwYz0KLS0tLS0tRU5EIEVDIFBSSVZBVEUgS0VZLS0tLS0KZGlmZiAtLWdpdCBhL3Rlc3RzL2RhdGFfZmlsZXMvZWNfMzg0X3B1Yi5jb21wLnBlbSBiL3Rlc3RzL2RhdGFfZmlsZXMvZWNfMzg0X3B1Yi5jb21wLnBlbQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggY2NiNjcwMi4uMDAwMDAwMAotLS0gYS90ZXN0cy9kYXRhX2ZpbGVzL2VjXzM4NF9wdWIuY29tcC5wZW0KKysrIC9kZXYvbnVsbApAQCAtMSw0ICswLDAgQEAKLS0tLS0tQkVHSU4gUFVCTElDIEtFWS0tLS0tCi1NRVl3RUFZSEtvWkl6ajBDQVFZRks0RUVBQ0lETWdBRDJjWml0UXVpbktSNWtFVU9CRHJxOVBER214Vm5iUkV2Ci1ZaXB4eVRCWnI1bVdrY1ZvRFN0RTBSRlhuYkV2U2tFNgotLS0tLS1FTkQgUFVCTElDIEtFWS0tLS0tCmRpZmYgLS1naXQgYS90ZXN0cy9kYXRhX2ZpbGVzL2VjXzM4NF9wdWIucGVtIGIvdGVzdHMvZGF0YV9maWxlcy9lY18zODRfcHViLnBlbQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZGU5NTM4Mi4uMDAwMDAwMAotLS0gYS90ZXN0cy9kYXRhX2ZpbGVzL2VjXzM4NF9wdWIucGVtCisrKyAvZGV2L251bGwKQEAgLTEsNSArMCwwIEBACi0tLS0tLUJFR0lOIFBVQkxJQyBLRVktLS0tLQotTUhZd0VBWUhLb1pJemowQ0FRWUZLNEVFQUNJRFlnQUUyY1ppdFF1aW5LUjVrRVVPQkRycTlQREdteFZuYlJFdgotWWlweHlUQlpyNW1Xa2NWb0RTdEUwUkZYbmJFdlNrRTZMdFhFWDgrMmUxdGo0QXVSNitXZENhYXhyQ3dNUW9LcQotRWpGKzFaRlBtWnZFaUxzVExvTkN6RGJ5eWw0emVjZEgKLS0tLS0tRU5EIFBVQkxJQyBLRVktLS0tLQpkaWZmIC0tZ2l0IGEvdGVzdHMvZGF0YV9maWxlcy9lY181MjFfcHJ2LmNvbXAucGVtIGIvdGVzdHMvZGF0YV9maWxlcy9lY181MjFfcHJ2LmNvbXAucGVtCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzMTRjMzkzLi4wMDAwMDAwCi0tLSBhL3Rlc3RzL2RhdGFfZmlsZXMvZWNfNTIxX3Bydi5jb21wLnBlbQorKysgL2Rldi9udWxsCkBAIC0xLDYgKzAsMCBAQAotLS0tLS1CRUdJTiBFQyBQUklWQVRFIEtFWS0tLS0tCi1NSUdZQWdFQkJFSUJzYmF0Qjd0NTV6SU5wWmhnNmlqZ1ZTaFBZRmp5ZWQ1bWJnYlVOZEt2ZTlvbzJaK2tlMzNRCi1sajRXc0Fjd2VPNkxpampaWnFXQzlHMFovNVhmT3Rsb1dxNmdCd1lGSzRFRUFDT2hSZ05FQUFNQUhlRkMxVTlwCi02d09PNUxldm5UeWdkemI5blBjWjZ6Vk5hWWVlNS9QQk52c1B2NThJK0d2bCtoS093YUJSMCtiR1EraGEyby82Ci16elpqd21DOUxJUkxiMVk9Ci0tLS0tLUVORCBFQyBQUklWQVRFIEtFWS0tLS0tCmRpZmYgLS1naXQgYS90ZXN0cy9kYXRhX2ZpbGVzL2VjXzUyMV9wcnYuZGVyIGIvdGVzdHMvZGF0YV9maWxlcy9lY181MjFfcHJ2LmRlcgpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNzM0NzE0YS4uMDAwMDAwMAotLS0gYS90ZXN0cy9kYXRhX2ZpbGVzL2VjXzUyMV9wcnYuZGVyCisrKyAvZGV2L251bGwKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvdGVzdHMvZGF0YV9maWxlcy9lY181MjFfcHJ2LnBlbSBiL3Rlc3RzL2RhdGFfZmlsZXMvZWNfNTIxX3Bydi5wZW0KZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDE0NGJiNDQuLjAwMDAwMDAKLS0tIGEvdGVzdHMvZGF0YV9maWxlcy9lY181MjFfcHJ2LnBlbQorKysgL2Rldi9udWxsCkBAIC0xLDcgKzAsMCBAQAotLS0tLS1CRUdJTiBFQyBQUklWQVRFIEtFWS0tLS0tCi1NSUhjQWdFQkJFSUJzYmF0Qjd0NTV6SU5wWmhnNmlqZ1ZTaFBZRmp5ZWQ1bWJnYlVOZEt2ZTlvbzJaK2tlMzNRCi1sajRXc0Fjd2VPNkxpampaWnFXQzlHMFovNVhmT3Rsb1dxNmdCd1lGSzRFRUFDT2hnWWtEZ1lZQUJBQWQ0VUxWCi1UMm5yQTQ3a3Q2K2RQS0IzTnYyYzl4bnJOVTFwaDU3bjg4RTIrdysvbndqNGErWDZFbzdCb0ZIVDVzWkQ2RnJhCi1qL3JQTm1QQ1lMMHNoRXR2VmdETzZPU0tubVhRbkszWW55TmQ3Z1h6dUtaR3ZuRmZIMmZWdERUZy95T2gvQWZ2Ci1kMEFaUGtEdS8yODd6ZjEyV3FrVlVETlNUK1R5QmZWRVRpa3NUQzlxd1E9PQotLS0tLS1FTkQgRUMgUFJJVkFURSBLRVktLS0tLQpkaWZmIC0tZ2l0IGEvdGVzdHMvZGF0YV9maWxlcy9lY181MjFfcHViLmNvbXAucGVtIGIvdGVzdHMvZGF0YV9maWxlcy9lY181MjFfcHViLmNvbXAucGVtCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0YmI4YzJiLi4wMDAwMDAwCi0tLSBhL3Rlc3RzL2RhdGFfZmlsZXMvZWNfNTIxX3B1Yi5jb21wLnBlbQorKysgL2Rldi9udWxsCkBAIC0xLDQgKzAsMCBAQAotLS0tLS1CRUdJTiBQVUJMSUMgS0VZLS0tLS0KLU1GZ3dFQVlIS29aSXpqMENBUVlGSzRFRUFDTURSQUFEQUIzaFF0VlBhZXNEanVTM3I1MDhvSGMyL1p6M0dlczEKLVRXbUhudWZ6d1RiN0Q3K2ZDUGhyNWZvU2pzR2dVZFBteGtQb1d0cVArczgyWThKZ3ZTeUVTMjlXCi0tLS0tLUVORCBQVUJMSUMgS0VZLS0tLS0KZGlmZiAtLWdpdCBhL3Rlc3RzL2RhdGFfZmlsZXMvZWNfNTIxX3B1Yi5kZXIgYi90ZXN0cy9kYXRhX2ZpbGVzL2VjXzUyMV9wdWIuZGVyCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1YjY4NWRlLi4wMDAwMDAwCi0tLSBhL3Rlc3RzL2RhdGFfZmlsZXMvZWNfNTIxX3B1Yi5kZXIKKysrIC9kZXYvbnVsbApCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS90ZXN0cy9kYXRhX2ZpbGVzL2VjXzUyMV9wdWIucGVtIGIvdGVzdHMvZGF0YV9maWxlcy9lY181MjFfcHViLnBlbQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMjZiYzVjNS4uMDAwMDAwMAotLS0gYS90ZXN0cy9kYXRhX2ZpbGVzL2VjXzUyMV9wdWIucGVtCisrKyAvZGV2L251bGwKQEAgLTEsNiArMCwwIEBACi0tLS0tLUJFR0lOIFBVQkxJQyBLRVktLS0tLQotTUlHYk1CQUdCeXFHU000OUFnRUdCU3VCQkFBakE0R0dBQVFBSGVGQzFVOXA2d09PNUxldm5UeWdkemI5blBjWgotNnpWTmFZZWU1L1BCTnZzUHY1OEkrR3ZsK2hLT3dhQlIwK2JHUStoYTJvLzZ6elpqd21DOUxJUkxiMVlBenVqawotaXA1bDBKeXQySjhqWGU0Rjg3aW1ScjV4WHg5bjFiUTA0UDhqb2Z3SDczZEFHVDVBN3Y5dk84MzlkbHFwRlZBegotVWsvazhnWDFSRTRwTEV3dmFzRT0KLS0tLS0tRU5EIFBVQkxJQyBLRVktLS0tLQpkaWZmIC0tZ2l0IGEvdGVzdHMvZGF0YV9maWxlcy9lY181MjFfc2hvcnRfcHJ2LmRlciBiL3Rlc3RzL2RhdGFfZmlsZXMvZWNfNTIxX3Nob3J0X3Bydi5kZXIKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDBhMWYxOGMuLjAwMDAwMDAKLS0tIGEvdGVzdHMvZGF0YV9maWxlcy9lY181MjFfc2hvcnRfcHJ2LmRlcgorKysgL2Rldi9udWxsCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3Rlc3RzL2RhdGFfZmlsZXMvZWNfNTIxX3Nob3J0X3Bydi5wZW0gYi90ZXN0cy9kYXRhX2ZpbGVzL2VjXzUyMV9zaG9ydF9wcnYucGVtCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0MjdiN2FkLi4wMDAwMDAwCi0tLSBhL3Rlc3RzL2RhdGFfZmlsZXMvZWNfNTIxX3Nob3J0X3Bydi5wZW0KKysrIC9kZXYvbnVsbApAQCAtMSw3ICswLDAgQEAKLS0tLS0tQkVHSU4gRUMgUFJJVkFURSBLRVktLS0tLQotTUlIY0FnRUJCRUlBT1hkazdXK0hmNUw3SGM5ZktlNDR3bXBhUk5zNUVSRlRrdjVDcmxYdi9CdTN5MjhNNjczcQotdkJObzdhL1VFLzZOTlFIdTJwUU9ERVlGcE1nNlIzNGI1U2lnQndZRks0RUVBQ09oZ1lrRGdZWUFCQUZVTUhYVgotS1BBNHZrTWdxK3BGZ0RvSDk2WG9NNTE3Z0YyR0pGVjZoMmdMaHlreklITC9vdEF5RXBBU3R3N01CdmJVMFYyMQotaXhCK2hqcXpPN1NueGFqOW13QjhnODdPS3htNWVHZnNxdkpOUGRKMFJaL0VLeTA2VWtnNktUaGxoUWV5cnRJawotZzVQVENyUG5Oc3psZmZBeTYvakNPZTNNb2k1OWcxNUgxM3NTendmWDZnPT0KLS0tLS0tRU5EIEVDIFBSSVZBVEUgS0VZLS0tLS0KZGlmZiAtLWdpdCBhL3Rlc3RzL2RhdGFfZmlsZXMvZWNfYnAyNTZfcHJ2LmNvbXAucGVtIGIvdGVzdHMvZGF0YV9maWxlcy9lY19icDI1Nl9wcnYuY29tcC5wZW0KZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDE5OGQyMWQuLjAwMDAwMDAKLS0tIGEvdGVzdHMvZGF0YV9maWxlcy9lY19icDI1Nl9wcnYuY29tcC5wZW0KKysrIC9kZXYvbnVsbApAQCAtMSw0ICswLDAgQEAKLS0tLS0tQkVHSU4gRUMgUFJJVkFURSBLRVktLS0tLQotTUZnQ0FRRUVJQ0ZoMXZMYmRsSnZwaXdXODFhb0R3SHpMM2RuaExOcXFaZVpxTGRtSUlEL29Bc0dDU3NrQXdNQwotQ0FFQkI2RWtBeUlBQTNhTWpLNUt2S1l3YmJEdGdiREVwaUZjTjRCbTdHMWhiQlJ1RS9ISDM0Q2IKLS0tLS0tRU5EIEVDIFBSSVZBVEUgS0VZLS0tLS0KZGlmZiAtLWdpdCBhL3Rlc3RzL2RhdGFfZmlsZXMvZWNfYnAyNTZfcHJ2LnBlbSBiL3Rlc3RzL2RhdGFfZmlsZXMvZWNfYnAyNTZfcHJ2LnBlbQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOWQ2YTg2Ny4uMDAwMDAwMAotLS0gYS90ZXN0cy9kYXRhX2ZpbGVzL2VjX2JwMjU2X3Bydi5wZW0KKysrIC9kZXYvbnVsbApAQCAtMSw1ICswLDAgQEAKLS0tLS0tQkVHSU4gRUMgUFJJVkFURSBLRVktLS0tLQotTUhnQ0FRRUVJQ0ZoMXZMYmRsSnZwaXdXODFhb0R3SHpMM2RuaExOcXFaZVpxTGRtSUlEL29Bc0dDU3NrQXdNQwotQ0FFQkI2RkVBMElBQkhhTWpLNUt2S1l3YmJEdGdiREVwaUZjTjRCbTdHMWhiQlJ1RS9ISDM0Q2JscXRwRWNKOQotaWdJem53a21oQTVWSTIwOUh2dmlacDBKRGt4TVpnK3RxUjA9Ci0tLS0tLUVORCBFQyBQUklWQVRFIEtFWS0tLS0tCmRpZmYgLS1naXQgYS90ZXN0cy9kYXRhX2ZpbGVzL2VjX2JwMjU2X3B1Yi5jb21wLnBlbSBiL3Rlc3RzL2RhdGFfZmlsZXMvZWNfYnAyNTZfcHViLmNvbXAucGVtCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlY2QwN2JjLi4wMDAwMDAwCi0tLSBhL3Rlc3RzL2RhdGFfZmlsZXMvZWNfYnAyNTZfcHViLmNvbXAucGVtCisrKyAvZGV2L251bGwKQEAgLTEsNCArMCwwIEBACi0tLS0tLUJFR0lOIFBVQkxJQyBLRVktLS0tLQotTURvd0ZBWUhLb1pJemowQ0FRWUpLeVFEQXdJSUFRRUhBeUlBQTNhTWpLNUt2S1l3YmJEdGdiREVwaUZjTjRCbQotN0cxaGJCUnVFL0hIMzRDYgotLS0tLS1FTkQgUFVCTElDIEtFWS0tLS0tCmRpZmYgLS1naXQgYS90ZXN0cy9kYXRhX2ZpbGVzL2VjX2JwMjU2X3B1Yi5wZW0gYi90ZXN0cy9kYXRhX2ZpbGVzL2VjX2JwMjU2X3B1Yi5wZW0KZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGY3Mzg2MjMuLjAwMDAwMDAKLS0tIGEvdGVzdHMvZGF0YV9maWxlcy9lY19icDI1Nl9wdWIucGVtCisrKyAvZGV2L251bGwKQEAgLTEsNCArMCwwIEBACi0tLS0tLUJFR0lOIFBVQkxJQyBLRVktLS0tLQotTUZvd0ZBWUhLb1pJemowQ0FRWUpLeVFEQXdJSUFRRUhBMElBQkhhTWpLNUt2S1l3YmJEdGdiREVwaUZjTjRCbQotN0cxaGJCUnVFL0hIMzRDYmxxdHBFY0o5aWdJem53a21oQTVWSTIwOUh2dmlacDBKRGt4TVpnK3RxUjA9Ci0tLS0tLUVORCBQVUJMSUMgS0VZLS0tLS0KZGlmZiAtLWdpdCBhL3Rlc3RzL2RhdGFfZmlsZXMvZWNfYnAzODRfcHJ2LmNvbXAucGVtIGIvdGVzdHMvZGF0YV9maWxlcy9lY19icDM4NF9wcnYuY29tcC5wZW0KZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGMwZTIzOTMuLjAwMDAwMDAKLS0tIGEvdGVzdHMvZGF0YV9maWxlcy9lY19icDM4NF9wcnYuY29tcC5wZW0KKysrIC9kZXYvbnVsbApAQCAtMSw1ICswLDAgQEAKLS0tLS0tQkVHSU4gRUMgUFJJVkFURSBLRVktLS0tLQotTUhnQ0FRRUVNRDNaTG5VTmtOZlRuOEdJWE5pdEV1cVVRZklya3pTMDJXVWdLdHNVU000a3hZQ0toZDJhL0NLYQotOEtNU1QzVmJ5NkFMQmdrckpBTURBZ2dCQVF1aE5BTXlBQUp4bjUwSk9tSitEVFVEaGNaaHpyOEF4aGtqVm0vcAotQUdveEI2OGRoeHZHdTJpWVg5Y2k2aksrTVcrT2VEdDgwWlU9Ci0tLS0tLUVORCBFQyBQUklWQVRFIEtFWS0tLS0tCmRpZmYgLS1naXQgYS90ZXN0cy9kYXRhX2ZpbGVzL2VjX2JwMzg0X3Bydi5wZW0gYi90ZXN0cy9kYXRhX2ZpbGVzL2VjX2JwMzg0X3Bydi5wZW0KZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDM0ZTgyZGIuLjAwMDAwMDAKLS0tIGEvdGVzdHMvZGF0YV9maWxlcy9lY19icDM4NF9wcnYucGVtCisrKyAvZGV2L251bGwKQEAgLTEsNiArMCwwIEBACi0tLS0tLUJFR0lOIEVDIFBSSVZBVEUgS0VZLS0tLS0KLU1JR29BZ0VCQkRBOTJTNTFEWkRYMDUvQmlGellyUkxxbEVIeUs1TTB0TmxsSUNyYkZFak9KTVdBaW9YZG12d2kKLW12Q2pFazkxVzh1Z0N3WUpLeVFEQXdJSUFRRUxvV1FEWWdBRWNaK2RDVHBpZmcwMUE0WEdZYzYvQU1ZWkkxWnYKLTZRQnFNUWV2SFljYnhydG9tRi9YSXVveXZqRnZqbmc3Zk5HVmQ0WDJiUHdNc1pYZFhKbW81NnVxaElWVHBZVGYKLTByU09kdFJGL2dEZGkrV1FsdGgzMUdsdEk3UzhqYkZISk9acQotLS0tLS1FTkQgRUMgUFJJVkFURSBLRVktLS0tLQpkaWZmIC0tZ2l0IGEvdGVzdHMvZGF0YV9maWxlcy9lY19icDM4NF9wdWIuY29tcC5wZW0gYi90ZXN0cy9kYXRhX2ZpbGVzL2VjX2JwMzg0X3B1Yi5jb21wLnBlbQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNjM4NjY2ZC4uMDAwMDAwMAotLS0gYS90ZXN0cy9kYXRhX2ZpbGVzL2VjX2JwMzg0X3B1Yi5jb21wLnBlbQorKysgL2Rldi9udWxsCkBAIC0xLDQgKzAsMCBAQAotLS0tLS1CRUdJTiBQVUJMSUMgS0VZLS0tLS0KLU1Fb3dGQVlIS29aSXpqMENBUVlKS3lRREF3SUlBUUVMQXpJQUFuR2ZuUWs2WW40Tk5RT0Z4bUhPdndER0dTTlcKLWIra0FhakVIcngySEc4YTdhSmhmMXlMcU1yNHhiNDU0TzN6UmxRPT0KLS0tLS0tRU5EIFBVQkxJQyBLRVktLS0tLQpkaWZmIC0tZ2l0IGEvdGVzdHMvZGF0YV9maWxlcy9lY19icDM4NF9wdWIucGVtIGIvdGVzdHMvZGF0YV9maWxlcy9lY19icDM4NF9wdWIucGVtCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlYjIwMmUyLi4wMDAwMDAwCi0tLSBhL3Rlc3RzL2RhdGFfZmlsZXMvZWNfYnAzODRfcHViLnBlbQorKysgL2Rldi9udWxsCkBAIC0xLDUgKzAsMCBAQAotLS0tLS1CRUdJTiBQVUJMSUMgS0VZLS0tLS0KLU1Ib3dGQVlIS29aSXpqMENBUVlKS3lRREF3SUlBUUVMQTJJQUJIR2ZuUWs2WW40Tk5RT0Z4bUhPdndER0dTTlcKLWIra0FhakVIcngySEc4YTdhSmhmMXlMcU1yNHhiNDU0TzN6UmxYZUY5bXo4RExHVjNWeVpxT2VycW9TRlU2V0UKLTM5SzBqbmJVUmY0QTNZdmxrSmJZZDlScGJTTzB2STJ4UnlUbWFnPT0KLS0tLS0tRU5EIFBVQkxJQyBLRVktLS0tLQpkaWZmIC0tZ2l0IGEvdGVzdHMvZGF0YV9maWxlcy9lY19icDUxMl9wcnYuY29tcC5wZW0gYi90ZXN0cy9kYXRhX2ZpbGVzL2VjX2JwNTEyX3Bydi5jb21wLnBlbQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNzNiMWMwNy4uMDAwMDAwMAotLS0gYS90ZXN0cy9kYXRhX2ZpbGVzL2VjX2JwNTEyX3Bydi5jb21wLnBlbQorKysgL2Rldi9udWxsCkBAIC0xLDYgKzAsMCBAQAotLS0tLS1CRUdJTiBFQyBQUklWQVRFIEtFWS0tLS0tCi1NSUdZQWdFQkJFQTNMSmQ0OXA5eWJMeWo5S0pvOFd0TllYMFFLQTE1cHFBcHpWR0huK0VCS1RUZjVUbFVWVE45Ci05cEJ0eDliUzdxVGJzZ1pjQWlqM096N1hGa2dPZlhIU29Bc0dDU3NrQXdNQ0NBRUJEYUZFQTBJQUFqaTM3SksyCi1IRnhzZjd3b3BPeDFuVWo4MU9MamRONzlYRWxvcFUyKzkxRU9VWGlHKy93NDZqbXFVcE5aMXdweFZzTmRQTHJICi16bmRyMnlVZDFrdk9jU009Ci0tLS0tLUVORCBFQyBQUklWQVRFIEtFWS0tLS0tCmRpZmYgLS1naXQgYS90ZXN0cy9kYXRhX2ZpbGVzL2VjX2JwNTEyX3Bydi5kZXIgYi90ZXN0cy9kYXRhX2ZpbGVzL2VjX2JwNTEyX3Bydi5kZXIKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDJkOWEzZGUuLjAwMDAwMDAKLS0tIGEvdGVzdHMvZGF0YV9maWxlcy9lY19icDUxMl9wcnYuZGVyCisrKyAvZGV2L251bGwKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvdGVzdHMvZGF0YV9maWxlcy9lY19icDUxMl9wcnYucGVtIGIvdGVzdHMvZGF0YV9maWxlcy9lY19icDUxMl9wcnYucGVtCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhMzBjNjIyLi4wMDAwMDAwCi0tLSBhL3Rlc3RzL2RhdGFfZmlsZXMvZWNfYnA1MTJfcHJ2LnBlbQorKysgL2Rldi9udWxsCkBAIC0xLDcgKzAsMCBAQAotLS0tLS1CRUdJTiBFQyBQUklWQVRFIEtFWS0tLS0tCi1NSUhhQWdFQkJFQTNMSmQ0OXA5eWJMeWo5S0pvOFd0TllYMFFLQTE1cHFBcHpWR0huK0VCS1RUZjVUbFVWVE45Ci05cEJ0eDliUzdxVGJzZ1pjQWlqM096N1hGa2dPZlhIU29Bc0dDU3NrQXdNQ0NBRUJEYUdCaFFPQmdnQUVPTGZzCi1rclljWEd4L3ZDaWs3SFdkU1B6VTR1TjAzdjFjU1dpbFRiNzNVUTVSZUliNy9EanFPYXBTazFuWENuRld3MTA4Ci11c2ZPZDJ2YkpSM1dTODV4STBRazduQko3dEJ5OE52RTE1bVc0WFhWVitKamRqcnBjSlhBZ2VjK2ZiTGppdHc5Ci1USm9FaDdIdDZIYmNIOHBoeVFMcG9kaHlLNFlTa284WW9raEZXUm89Ci0tLS0tLUVORCBFQyBQUklWQVRFIEtFWS0tLS0tCmRpZmYgLS1naXQgYS90ZXN0cy9kYXRhX2ZpbGVzL2VjX2JwNTEyX3B1Yi5jb21wLnBlbSBiL3Rlc3RzL2RhdGFfZmlsZXMvZWNfYnA1MTJfcHViLmNvbXAucGVtCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjMmZiZGNhLi4wMDAwMDAwCi0tLSBhL3Rlc3RzL2RhdGFfZmlsZXMvZWNfYnA1MTJfcHViLmNvbXAucGVtCisrKyAvZGV2L251bGwKQEAgLTEsNCArMCwwIEBACi0tLS0tLUJFR0lOIFBVQkxJQyBLRVktLS0tLQotTUZvd0ZBWUhLb1pJemowQ0FRWUpLeVFEQXdJSUFRRU5BMElBQWppMzdKSzJIRnhzZjd3b3BPeDFuVWo4MU9MagotZE43OVhFbG9wVTIrOTFFT1VYaUcrL3c0NmptcVVwTloxd3B4VnNOZFBMckh6bmRyMnlVZDFrdk9jU009Ci0tLS0tLUVORCBQVUJMSUMgS0VZLS0tLS0KZGlmZiAtLWdpdCBhL3Rlc3RzL2RhdGFfZmlsZXMvZWNfYnA1MTJfcHViLmRlciBiL3Rlc3RzL2RhdGFfZmlsZXMvZWNfYnA1MTJfcHViLmRlcgpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNmE4YzRjNy4uMDAwMDAwMAotLS0gYS90ZXN0cy9kYXRhX2ZpbGVzL2VjX2JwNTEyX3B1Yi5kZXIKKysrIC9kZXYvbnVsbApCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS90ZXN0cy9kYXRhX2ZpbGVzL2VjX2JwNTEyX3B1Yi5wZW0gYi90ZXN0cy9kYXRhX2ZpbGVzL2VjX2JwNTEyX3B1Yi5wZW0KZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGZmNWQwNzIuLjAwMDAwMDAKLS0tIGEvdGVzdHMvZGF0YV9maWxlcy9lY19icDUxMl9wdWIucGVtCisrKyAvZGV2L251bGwKQEAgLTEsNiArMCwwIEBACi0tLS0tLUJFR0lOIFBVQkxJQyBLRVktLS0tLQotTUlHYk1CUUdCeXFHU000OUFnRUdDU3NrQXdNQ0NBRUJEUU9CZ2dBRU9MZnNrclljWEd4L3ZDaWs3SFdkU1B6VQotNHVOMDN2MWNTV2lsVGI3M1VRNVJlSWI3L0RqcU9hcFNrMW5YQ25GV3cxMDh1c2ZPZDJ2YkpSM1dTODV4STBRawotN25CSjd0Qnk4TnZFMTVtVzRYWFZWK0pqZGpycGNKWEFnZWMrZmJMaml0dzlUSm9FaDdIdDZIYmNIOHBoeVFMcAotb2RoeUs0WVNrbzhZb2toRldSbz0KLS0tLS0tRU5EIFBVQkxJQyBLRVktLS0tLQpkaWZmIC0tZ2l0IGEvdGVzdHMvZGF0YV9maWxlcy9lY19wcnYucGs4LmRlciBiL3Rlc3RzL2RhdGFfZmlsZXMvZWNfcHJ2LnBrOC5kZXIKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGYyYmQyYTkuLjAwMDAwMDAKLS0tIGEvdGVzdHMvZGF0YV9maWxlcy9lY19wcnYucGs4LmRlcgorKysgL2Rldi9udWxsCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3Rlc3RzL2RhdGFfZmlsZXMvZWNfcHJ2LnBrOC5wZW0gYi90ZXN0cy9kYXRhX2ZpbGVzL2VjX3Bydi5wazgucGVtCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkYmVhYjdjLi4wMDAwMDAwCi0tLSBhL3Rlc3RzL2RhdGFfZmlsZXMvZWNfcHJ2LnBrOC5wZW0KKysrIC9kZXYvbnVsbApAQCAtMSw1ICswLDAgQEAKLS0tLS0tQkVHSU4gUFJJVkFURSBLRVktLS0tLQotTUc4Q0FRQXdFd1lIS29aSXpqMENBUVlJS29aSXpqMERBUUVFVlRCVEFnRUJCQmd6am9hb2dlSTQ5VW05YndWVAotU1V0ejQ5WVJNUDNHeVcyaE5BTXlBQVJSZGJ6Zk1LTnc4NTFUaytZU2NvallBV2UxOUxTM2RzWjA5OGJ6VkxmUwotSkFZc0gyaFV0YWV2RCtWNDZ2Slk4Q2M9Ci0tLS0tLUVORCBQUklWQVRFIEtFWS0tLS0tCmRpZmYgLS1naXQgYS90ZXN0cy9kYXRhX2ZpbGVzL2VjX3Bydi5wazgucHcuZGVyIGIvdGVzdHMvZGF0YV9maWxlcy9lY19wcnYucGs4LnB3LmRlcgpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZGIwYjViZC4uMDAwMDAwMAotLS0gYS90ZXN0cy9kYXRhX2ZpbGVzL2VjX3Bydi5wazgucHcuZGVyCisrKyAvZGV2L251bGwKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvdGVzdHMvZGF0YV9maWxlcy9lY19wcnYucGs4LnB3LnBlbSBiL3Rlc3RzL2RhdGFfZmlsZXMvZWNfcHJ2LnBrOC5wdy5wZW0KZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDc0MTNkMWUuLjAwMDAwMDAKLS0tIGEvdGVzdHMvZGF0YV9maWxlcy9lY19wcnYucGs4LnB3LnBlbQorKysgL2Rldi9udWxsCkBAIC0xLDYgKzAsMCBAQAotLS0tLS1CRUdJTiBFTkNSWVBURUQgUFJJVkFURSBLRVktLS0tLQotTUlHUk1Cd0dDaXFHU0liM0RRRU1BUUV3RGdRSUlybG1DQ1NwSnpjQ0FnZ0FCSEdtMkx5SjYwb2pmaWxSUnA4aAotWGYrc1dMM2xKcTZ3bGo0Tms0MVNIVm5aMlJpVnRQNU5WSzkwOC9XeG5Ya3JpZGQ2UXBqbnEvMTR3b1dWbVF4VAotSXpoS0ZWaTIyWW1ReUJzTmorYkVHREFFNGM5cWFieTh1NnpienM3UWoyOUY5MGYvUGlZc2FJRUdjTm4vVzg4ZQotWGFyTkR3PT0KLS0tLS0tRU5EIEVOQ1JZUFRFRCBQUklWQVRFIEtFWS0tLS0tCmRpZmYgLS1naXQgYS90ZXN0cy9kYXRhX2ZpbGVzL2VjX3Bydi5wazhub3B1Yi5kZXIgYi90ZXN0cy9kYXRhX2ZpbGVzL2VjX3Bydi5wazhub3B1Yi5kZXIKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGZkZTE2YTEuLjAwMDAwMDAKLS0tIGEvdGVzdHMvZGF0YV9maWxlcy9lY19wcnYucGs4bm9wdWIuZGVyCisrKyAvZGV2L251bGwKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvdGVzdHMvZGF0YV9maWxlcy9lY19wcnYucGs4bm9wdWIucGVtIGIvdGVzdHMvZGF0YV9maWxlcy9lY19wcnYucGs4bm9wdWIucGVtCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwZWM1MjcyLi4wMDAwMDAwCi0tLSBhL3Rlc3RzL2RhdGFfZmlsZXMvZWNfcHJ2LnBrOG5vcHViLnBlbQorKysgL2Rldi9udWxsCkBAIC0xLDQgKzAsMCBAQAotLS0tLS1CRUdJTiBQUklWQVRFIEtFWS0tLS0tCi1NRUVDQVFBd0V3WUhLb1pJemowQ0FRWUlLb1pJemowREFRY0VKekFsQWdFQkJDREg3OFhVWCtjeG1UUFExaFZrWWJ1M1Z2QmM5YzgyCi1FeUdLYUd2a0FvMVBrdz09Ci0tLS0tLUVORCBQUklWQVRFIEtFWS0tLS0tCmRpZmYgLS1naXQgYS90ZXN0cy9kYXRhX2ZpbGVzL2VjX3Bydi5wazhub3B1YnBhcmFtLmRlciBiL3Rlc3RzL2RhdGFfZmlsZXMvZWNfcHJ2LnBrOG5vcHVicGFyYW0uZGVyCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3MGQzMGZiLi4wMDAwMDAwCi0tLSBhL3Rlc3RzL2RhdGFfZmlsZXMvZWNfcHJ2LnBrOG5vcHVicGFyYW0uZGVyCisrKyAvZGV2L251bGwKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvdGVzdHMvZGF0YV9maWxlcy9lY19wcnYucGs4bm9wdWJwYXJhbS5wZW0gYi90ZXN0cy9kYXRhX2ZpbGVzL2VjX3Bydi5wazhub3B1YnBhcmFtLnBlbQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNWM5MTBjOS4uMDAwMDAwMAotLS0gYS90ZXN0cy9kYXRhX2ZpbGVzL2VjX3Bydi5wazhub3B1YnBhcmFtLnBlbQorKysgL2Rldi9udWxsCkBAIC0xLDQgKzAsMCBAQAotLS0tLS1CRUdJTiBQUklWQVRFIEtFWS0tLS0tCi1NRTBDQVFBd0V3WUhLb1pJemowQ0FRWUlLb1pJemowREFRY0VNekF4QWdFQkJDREg3OFhVWCtjeG1UUFExaFZrWWJ1M1Z2QmM5YzgyCi1FeUdLYUd2a0FvMVBrNkFLQmdncWhrak9QUU1CQnc9PQotLS0tLS1FTkQgUFJJVkFURSBLRVktLS0tLQpkaWZmIC0tZ2l0IGEvdGVzdHMvZGF0YV9maWxlcy9lY19wcnYucGs4cGFyYW0uZGVyIGIvdGVzdHMvZGF0YV9maWxlcy9lY19wcnYucGs4cGFyYW0uZGVyCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4YmJhYTNhLi4wMDAwMDAwCi0tLSBhL3Rlc3RzL2RhdGFfZmlsZXMvZWNfcHJ2LnBrOHBhcmFtLmRlcgorKysgL2Rldi9udWxsCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3Rlc3RzL2RhdGFfZmlsZXMvZWNfcHJ2LnBrOHBhcmFtLnBlbSBiL3Rlc3RzL2RhdGFfZmlsZXMvZWNfcHJ2LnBrOHBhcmFtLnBlbQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOTc4YmVjYS4uMDAwMDAwMAotLS0gYS90ZXN0cy9kYXRhX2ZpbGVzL2VjX3Bydi5wazhwYXJhbS5wZW0KKysrIC9kZXYvbnVsbApAQCAtMSw1ICswLDAgQEAKLS0tLS0tQkVHSU4gUFJJVkFURSBLRVktLS0tLQotTUlHVEFnRUFNQk1HQnlxR1NNNDlBZ0VHQ0NxR1NNNDlBd0VIQkhrd2R3SUJBUVFneCsvRjFGL25NWmt6ME5ZVlpHRzd0MWJ3WFBYUAotTmhNaGltaHI1QUtOVDVPZ0NnWUlLb1pJemowREFRZWhSQU5DQUFSa0pYSDFMb2ZIZXNZSndKa29aUTBpakNWcnhERkVpOGUvZmMxZAotNkRTMkhzazU1VFdwTDk1M1FFSUROOFJtVzAxbGVqY2VLM2pRV3MwdUdEZW5HQ2NNCi0tLS0tLUVORCBQUklWQVRFIEtFWS0tLS0tCmRpZmYgLS1naXQgYS90ZXN0cy9kYXRhX2ZpbGVzL2VjX3Bydi5zZWMxLmNvbXAucGVtIGIvdGVzdHMvZGF0YV9maWxlcy9lY19wcnYuc2VjMS5jb21wLnBlbQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYWRhMTRjMi4uMDAwMDAwMAotLS0gYS90ZXN0cy9kYXRhX2ZpbGVzL2VjX3Bydi5zZWMxLmNvbXAucGVtCisrKyAvZGV2L251bGwKQEAgLTEsNCArMCwwIEBACi0tLS0tLUJFR0lOIEVDIFBSSVZBVEUgS0VZLS0tLS0KLU1FY0NBUUVFR0RPT2hxaUI0amoxU2IxdkJWTkpTM1BqMWhFdy9jYkpiYUFLQmdncWhrak9QUU1CQWFFY0F4b0EKLUExRjF2Tjh3bzNEem5WT1Q1aEp5aU5nQlo3WDB0TGQyeGc9PQotLS0tLS1FTkQgRUMgUFJJVkFURSBLRVktLS0tLQpkaWZmIC0tZ2l0IGEvdGVzdHMvZGF0YV9maWxlcy9lY19wcnYuc2VjMS5kZXIgYi90ZXN0cy9kYXRhX2ZpbGVzL2VjX3Bydi5zZWMxLmRlcgpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZmUzMzZiNy4uMDAwMDAwMAotLS0gYS90ZXN0cy9kYXRhX2ZpbGVzL2VjX3Bydi5zZWMxLmRlcgorKysgL2Rldi9udWxsCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3Rlc3RzL2RhdGFfZmlsZXMvZWNfcHJ2LnNlYzEucGVtIGIvdGVzdHMvZGF0YV9maWxlcy9lY19wcnYuc2VjMS5wZW0KZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGE4YTc5OTAuLjAwMDAwMDAKLS0tIGEvdGVzdHMvZGF0YV9maWxlcy9lY19wcnYuc2VjMS5wZW0KKysrIC9kZXYvbnVsbApAQCAtMSw1ICswLDAgQEAKLS0tLS0tQkVHSU4gRUMgUFJJVkFURSBLRVktLS0tLQotTUY4Q0FRRUVHRE9PaHFpQjRqajFTYjF2QlZOSlMzUGoxaEV3L2NiSmJhQUtCZ2dxaGtqT1BRTUJBYUUwQXpJQQotQkZGMXZOOHdvM0R6blZPVDVoSnlpTmdCWjdYMHRMZDJ4blQzeHZOVXQ5SWtCaXdmYUZTMXA2OFA1WGpxOGxqdwotSnc9PQotLS0tLS1FTkQgRUMgUFJJVkFURSBLRVktLS0tLQpkaWZmIC0tZ2l0IGEvdGVzdHMvZGF0YV9maWxlcy9lY19wcnYuc2VjMS5wdy5wZW0gYi90ZXN0cy9kYXRhX2ZpbGVzL2VjX3Bydi5zZWMxLnB3LnBlbQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNjJhMDg2MC4uMDAwMDAwMAotLS0gYS90ZXN0cy9kYXRhX2ZpbGVzL2VjX3Bydi5zZWMxLnB3LnBlbQorKysgL2Rldi9udWxsCkBAIC0xLDggKzAsMCBAQAotLS0tLS1CRUdJTiBFQyBQUklWQVRFIEtFWS0tLS0tCi1Qcm9jLVR5cGU6IDQsRU5DUllQVEVECi1ERUstSW5mbzogREVTLUNCQyxBQTk0ODkyQTE2OUZBNDI2Ci0KLWdTa0Z1VUVOTmtlNU12a1dIYzExL3cxTlFXQnhhSXhHVCtkNW9SY3FzNDREM3RsdFZPd3RkbllleG9EOXVTSUwKLXdNRkZSTEw2STVpaTFOYWEzOG5QT01hYTdrTFUySjNqWThTZUlIMXJRNDNYNnRscHY5V0ZHcURuL202WDdvS28KLVJNTWZHZGljUFpnPQotLS0tLS1FTkQgRUMgUFJJVkFURSBLRVktLS0tLQpkaWZmIC0tZ2l0IGEvdGVzdHMvZGF0YV9maWxlcy9lY19wcnYuc3BlY2RvbS5kZXIgYi90ZXN0cy9kYXRhX2ZpbGVzL2VjX3Bydi5zcGVjZG9tLmRlcgpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYTgwYTJlMy4uMDAwMDAwMAotLS0gYS90ZXN0cy9kYXRhX2ZpbGVzL2VjX3Bydi5zcGVjZG9tLmRlcgorKysgL2Rldi9udWxsCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3Rlc3RzL2RhdGFfZmlsZXMvZWNfcHViLmNvbXAucGVtIGIvdGVzdHMvZGF0YV9maWxlcy9lY19wdWIuY29tcC5wZW0KZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDU1ZmFjMDguLjAwMDAwMDAKLS0tIGEvdGVzdHMvZGF0YV9maWxlcy9lY19wdWIuY29tcC5wZW0KKysrIC9kZXYvbnVsbApAQCAtMSw0ICswLDAgQEAKLS0tLS0tQkVHSU4gUFVCTElDIEtFWS0tLS0tCi1NREV3RXdZSEtvWkl6ajBDQVFZSUtvWkl6ajBEQVFFREdnQURVWFc4M3pDamNQT2RVNVBtRW5LSTJBRm50ZlMwCi10M2JHCi0tLS0tLUVORCBQVUJMSUMgS0VZLS0tLS0KZGlmZiAtLWdpdCBhL3Rlc3RzL2RhdGFfZmlsZXMvZWNfcHViLmRlciBiL3Rlc3RzL2RhdGFfZmlsZXMvZWNfcHViLmRlcgpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZTRlNTkxNS4uMDAwMDAwMAotLS0gYS90ZXN0cy9kYXRhX2ZpbGVzL2VjX3B1Yi5kZXIKKysrIC9kZXYvbnVsbApCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS90ZXN0cy9kYXRhX2ZpbGVzL2VjX3B1Yi5wZW0gYi90ZXN0cy9kYXRhX2ZpbGVzL2VjX3B1Yi5wZW0KZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGQ1NGRjOTQuLjAwMDAwMDAKLS0tIGEvdGVzdHMvZGF0YV9maWxlcy9lY19wdWIucGVtCisrKyAvZGV2L251bGwKQEAgLTEsNCArMCwwIEBACi0tLS0tLUJFR0lOIFBVQkxJQyBLRVktLS0tLQotTUVrd0V3WUhLb1pJemowQ0FRWUlLb1pJemowREFRRURNZ0FFVVhXODN6Q2pjUE9kVTVQbUVuS0kyQUZudGZTMAotdDNiR2RQZkc4MVMzMGlRR0xCOW9WTFducncvbGVPcnlXUEFuCi0tLS0tLUVORCBQVUJMSUMgS0VZLS0tLS0KZGlmZiAtLWdpdCBhL3Rlc3RzL2RhdGFfZmlsZXMvZWNfeDI1NTE5X3Bydi5kZXIgYi90ZXN0cy9kYXRhX2ZpbGVzL2VjX3gyNTUxOV9wcnYuZGVyCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlYTIzNzMzLi4wMDAwMDAwCi0tLSBhL3Rlc3RzL2RhdGFfZmlsZXMvZWNfeDI1NTE5X3Bydi5kZXIKKysrIC9kZXYvbnVsbApCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS90ZXN0cy9kYXRhX2ZpbGVzL2VjX3gyNTUxOV9wcnYucGVtIGIvdGVzdHMvZGF0YV9maWxlcy9lY194MjU1MTlfcHJ2LnBlbQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDA3MjI0MC4uMDAwMDAwMAotLS0gYS90ZXN0cy9kYXRhX2ZpbGVzL2VjX3gyNTUxOV9wcnYucGVtCisrKyAvZGV2L251bGwKQEAgLTEsMyArMCwwIEBACi0tLS0tLUJFR0lOIFBSSVZBVEUgS0VZLS0tLS0KLU1DNENBUUF3QlFZREsyVnVCQ0lFSUxCdGdwWlZWRHBSeTZOdVUxSXJ3S3o5WUs5WlJtVlYrejRlZVdoeXF4cFoKLS0tLS0tRU5EIFBSSVZBVEUgS0VZLS0tLS0KZGlmZiAtLWdpdCBhL3Rlc3RzL2RhdGFfZmlsZXMvZWNfeDI1NTE5X3B1Yi5kZXIgYi90ZXN0cy9kYXRhX2ZpbGVzL2VjX3gyNTUxOV9wdWIuZGVyCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5MjJjYjc2Li4wMDAwMDAwCi0tLSBhL3Rlc3RzL2RhdGFfZmlsZXMvZWNfeDI1NTE5X3B1Yi5kZXIKKysrIC9kZXYvbnVsbApCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS90ZXN0cy9kYXRhX2ZpbGVzL2VjX3gyNTUxOV9wdWIucGVtIGIvdGVzdHMvZGF0YV9maWxlcy9lY194MjU1MTlfcHViLnBlbQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMmEzNmI1Yi4uMDAwMDAwMAotLS0gYS90ZXN0cy9kYXRhX2ZpbGVzL2VjX3gyNTUxOV9wdWIucGVtCisrKyAvZGV2L251bGwKQEAgLTEsMyArMCwwIEBACi0tLS0tLUJFR0lOIFBVQkxJQyBLRVktLS0tLQotTUNvd0JRWURLMlZ1QXlFQW04T3c2VDJDTS81cWk2WVRpVWpNRXFrVFl0WEM3WUZZVGJCYXRVR2NuUkU9Ci0tLS0tLUVORCBQVUJMSUMgS0VZLS0tLS0KZGlmZiAtLWdpdCBhL3Rlc3RzL2RhdGFfZmlsZXMvZWNfeDQ0OF9wcnYuZGVyIGIvdGVzdHMvZGF0YV9maWxlcy9lY194NDQ4X3Bydi5kZXIKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGY2ZDUyZjcuLjAwMDAwMDAKLS0tIGEvdGVzdHMvZGF0YV9maWxlcy9lY194NDQ4X3Bydi5kZXIKKysrIC9kZXYvbnVsbApCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS90ZXN0cy9kYXRhX2ZpbGVzL2VjX3g0NDhfcHJ2LnBlbSBiL3Rlc3RzL2RhdGFfZmlsZXMvZWNfeDQ0OF9wcnYucGVtCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3YmNhNjYxLi4wMDAwMDAwCi0tLSBhL3Rlc3RzL2RhdGFfZmlsZXMvZWNfeDQ0OF9wcnYucGVtCisrKyAvZGV2L251bGwKQEAgLTEsNCArMCwwIEBACi0tLS0tLUJFR0lOIFBSSVZBVEUgS0VZLS0tLS0KLU1FWUNBUUF3QlFZREsyVnZCRG9FT0dUcENEWUQ5YXRMRE1Zd0RuamR3VVRrak80Wk1CL3VhY1hLdys0aVVpRUQKLW9lNTB0WHNJeGk1UkVxV2UyWU9vTDdlRDducE9HUlB0Ci0tLS0tLUVORCBQUklWQVRFIEtFWS0tLS0tCmRpZmYgLS1naXQgYS90ZXN0cy9kYXRhX2ZpbGVzL2VjX3g0NDhfcHViLmRlciBiL3Rlc3RzL2RhdGFfZmlsZXMvZWNfeDQ0OF9wdWIuZGVyCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3YzQ0YzkxLi4wMDAwMDAwCi0tLSBhL3Rlc3RzL2RhdGFfZmlsZXMvZWNfeDQ0OF9wdWIuZGVyCisrKyAvZGV2L251bGwKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvdGVzdHMvZGF0YV9maWxlcy9lY194NDQ4X3B1Yi5wZW0gYi90ZXN0cy9kYXRhX2ZpbGVzL2VjX3g0NDhfcHViLnBlbQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMzA2ZTEwYy4uMDAwMDAwMAotLS0gYS90ZXN0cy9kYXRhX2ZpbGVzL2VjX3g0NDhfcHViLnBlbQorKysgL2Rldi9udWxsCkBAIC0xLDQgKzAsMCBAQAotLS0tLS1CRUdJTiBQVUJMSUMgS0VZLS0tLS0KLU1FSXdCUVlESzJWdkF6a0FsclZobjVLRE5CdDNuTDM4QjltcUdLcXJQd25haDN5bkpnYVdRNUljTHp2NnpaVCsKLVRJamhHUTFORkdXd2d0T1Y4VXFVMnRPNHBZUT0KLS0tLS0tRU5EIFBVQkxJQyBLRVktLS0tLQpkaWZmIC0tZ2l0IGEvdGVzdHMvZGF0YV9maWxlcy9lY2RzYV9zZWNwMjU2cjEuY3J0IGIvdGVzdHMvZGF0YV9maWxlcy9lY2RzYV9zZWNwMjU2cjEuY3J0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2MzRkMjRjLi4wMDAwMDAwCi0tLSBhL3Rlc3RzL2RhdGFfZmlsZXMvZWNkc2Ffc2VjcDI1NnIxLmNydAorKysgL2Rldi9udWxsCkBAIC0xLDEwICswLDAgQEAKLS0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQotTUlJQmVqQ0NBUUFDQVUwd0NnWUlLb1pJemowRUF3TXdQakVMTUFrR0ExVUVCaE1DVGt3eEVUQVBCZ05WQkFvTQotQ0ZCdmJHRnlVMU5NTVJ3d0dnWURWUVFEREJOUWIyeGhjbk56YkNCVVpYTjBJRVZESUVOQk1CNFhEVEl4TVRFegotTURBek1EZ3dNVm9YRFRNeE1USXdNVEF6TURnd01Wb3dOREVMTUFrR0ExVUVCaE1DVGt3eEVUQVBCZ05WQkFvTQotQ0ZCdmJHRnlVMU5NTVJJd0VBWURWUVFEREFsc2IyTmhiR2h2YzNRd1dUQVRCZ2NxaGtqT1BRSUJCZ2dxaGtqTwotUFFNQkJ3TkNBQVIzY21WdmdVczVrbm5WNGZGNEg2eHZDWm84WEtHdzQxTlJnMHNJdGw0TFZ5V1F6YStQZHBOaAotdlBOS3o4RWVYZ2RPaENhOTNnUytibVU1UlVTV0Y5NUZNQW9HQ0NxR1NNNDlCQU1EQTJnQU1HVUNNQTA2dFR3RAotTTF0OENoa2E0MWgxSkt1NGQwUnNHazBNb2luVDlNeFRBRS82MVNjWmg1bEtzcE9LcmNhdkowbWFVUUl4QUl1agotcmFybWQ4K095ZnRUUnA2V3B3d2Zwc2tkYjdubTQ0WVg2ZVp1L09kamZxL1JBZGhJY240UDlRWHRPZ1ZyYnc9PQotLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQpkaWZmIC0tZ2l0IGEvdGVzdHMvZGF0YV9maWxlcy9lY2RzYV9zZWNwMjU2cjEua2V5IGIvdGVzdHMvZGF0YV9maWxlcy9lY2RzYV9zZWNwMjU2cjEua2V5CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlNDJkZDRhLi4wMDAwMDAwCi0tLSBhL3Rlc3RzL2RhdGFfZmlsZXMvZWNkc2Ffc2VjcDI1NnIxLmtleQorKysgL2Rldi9udWxsCkBAIC0xLDUgKzAsMCBAQAotLS0tLS1CRUdJTiBFQyBQUklWQVRFIEtFWS0tLS0tCi1NSGNDQVFFRUlFbkpxTUdNUzRoV09NUXh6eDN4eVpRVEZnbTFnTlQ5UTZES3NYMnk4VDd1b0FvR0NDcUdTTTQ5Ci1Bd0VIb1VRRFFnQUVkM0psYjRGTE9aSjUxZUh4ZUIrc2J3bWFQRnloc09OVFVZTkxDTFplQzFjbGtNMnZqM2FUCi1ZYnp6U3MvQkhsNEhUb1FtdmQ0RXZtNWxPVVZFbGhmZVJRPT0KLS0tLS0tRU5EIEVDIFBSSVZBVEUgS0VZLS0tLS0KZGlmZiAtLWdpdCBhL3Rlc3RzL2RhdGFfZmlsZXMvZWNkc2Ffc2VjcDM4NHIxLmNydCBiL3Rlc3RzL2RhdGFfZmlsZXMvZWNkc2Ffc2VjcDM4NHIxLmNydApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZmY5ODZhNy4uMDAwMDAwMAotLS0gYS90ZXN0cy9kYXRhX2ZpbGVzL2VjZHNhX3NlY3AzODRyMS5jcnQKKysrIC9kZXYvbnVsbApAQCAtMSwxMSArMCwwIEBACi0tLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KLU1JSUJsekNDQVIwQ0FVMHdDZ1lJS29aSXpqMEVBd013UGpFTE1Ba0dBMVVFQmhNQ1Rrd3hFVEFQQmdOVkJBb00KLUNGQnZiR0Z5VTFOTU1Sd3dHZ1lEVlFRRERCTlFiMnhoY25OemJDQlVaWE4wSUVWRElFTkJNQjRYRFRJeE1URXoKLU1EQXpNRGd3TVZvWERUTXhNVEl3TVRBek1EZ3dNVm93TkRFTE1Ba0dBMVVFQmhNQ1Rrd3hFVEFQQmdOVkJBb00KLUNGQnZiR0Z5VTFOTU1SSXdFQVlEVlFRRERBbHNiMk5oYkdodmMzUXdkakFRQmdjcWhrak9QUUlCQmdVcmdRUUEKLUlnTmlBQVRaeG1LMUM2S2NwSG1RUlE0RU91cjA4TWFiRldkdEVTOWlLbkhKTUZtdm1aYVJ4V2dOSzBUUkVWZWQKLXNTOUtRVG91MWNSZno3WjdXMlBnQzVIcjVaMEpwckdzTEF4Q2dxb1NNWDdWa1UrWm04U0l1eE11ZzBMTU52TEsKLVhqTjV4MGN3Q2dZSUtvWkl6ajBFQXdNRGFBQXdaUUl3Tnlwc3EwYWh3TU03YUZTUytSU1Rsb0gxRDErZ0l6dHoKLVlxNTRSZXRoNmdkaDFJTzVSNWFOWmkvWVAzdVZjSTFtQWpFQWlzamp6N3ZDZUt3b3IrSENxOWNCYzJyeklsa1kKLTVPNnE0U0NTZ2txaUNUbnlGSXFDYXNzRUQ5TlBxaG8zS1lNMQotLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQpkaWZmIC0tZ2l0IGEvdGVzdHMvZGF0YV9maWxlcy9lY2RzYV9zZWNwMzg0cjEua2V5IGIvdGVzdHMvZGF0YV9maWxlcy9lY2RzYV9zZWNwMzg0cjEua2V5CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3ODkwNzU5Li4wMDAwMDAwCi0tLSBhL3Rlc3RzL2RhdGFfZmlsZXMvZWNkc2Ffc2VjcDM4NHIxLmtleQorKysgL2Rldi9udWxsCkBAIC0xLDYgKzAsMCBAQAotLS0tLS1CRUdJTiBFQyBQUklWQVRFIEtFWS0tLS0tCi1NSUdrQWdFQkJEQS9YWTJiNG9DMWFXekZ6SitVejRyMzVyWWQxbGtyS3JLenBNWUhSUVFYN0RKOXpjcnRmQkFGCi1QWEdhQlhUd3AycWdCd1lGSzRFRUFDS2haQU5pQUFUWnhtSzFDNktjcEhtUVJRNEVPdXIwOE1hYkZXZHRFUzlpCi1LbkhKTUZtdm1aYVJ4V2dOSzBUUkVWZWRzUzlLUVRvdTFjUmZ6N1o3VzJQZ0M1SHI1WjBKcHJHc0xBeENncW9TCi1NWDdWa1UrWm04U0l1eE11ZzBMTU52TEtYak41eDBjPQotLS0tLS1FTkQgRUMgUFJJVkFURSBLRVktLS0tLQpkaWZmIC0tZ2l0IGEvdGVzdHMvZGF0YV9maWxlcy9lY2RzYV9zZWNwNTIxcjEuY3J0IGIvdGVzdHMvZGF0YV9maWxlcy9lY2RzYV9zZWNwNTIxcjEuY3J0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhMDg4NTBjLi4wMDAwMDAwCi0tLSBhL3Rlc3RzL2RhdGFfZmlsZXMvZWNkc2Ffc2VjcDUyMXIxLmNydAorKysgL2Rldi9udWxsCkBAIC0xLDEyICswLDAgQEAKLS0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQotTUlJQnZqQ0NBVU1DQVUwd0NnWUlLb1pJemowRUF3TXdQakVMTUFrR0ExVUVCaE1DVGt3eEVUQVBCZ05WQkFvTQotQ0ZCdmJHRnlVMU5NTVJ3d0dnWURWUVFEREJOUWIyeGhjbk56YkNCVVpYTjBJRVZESUVOQk1CNFhEVEl4TVRFegotTURBek1EZ3dNVm9YRFRNeE1USXdNVEF6TURnd01Wb3dOREVMTUFrR0ExVUVCaE1DVGt3eEVUQVBCZ05WQkFvTQotQ0ZCdmJHRnlVMU5NTVJJd0VBWURWUVFEREFsc2IyTmhiR2h2YzNRd2dac3dFQVlIS29aSXpqMENBUVlGSzRFRQotQUNNRGdZWUFCQUFkNFVMVlQybnJBNDdrdDYrZFBLQjNOdjJjOXhuck5VMXBoNTduODhFMit3Ky9ud2o0YStYNgotRW83Qm9GSFQ1c1pENkZyYWovclBObVBDWUwwc2hFdHZWZ0RPNk9TS25tWFFuSzNZbnlOZDdnWHp1S1pHdm5GZgotSDJmVnREVGcveU9oL0FmdmQwQVpQa0R1LzI4N3pmMTJXcWtWVUROU1QrVHlCZlZFVGlrc1RDOXF3VEFLQmdncQotaGtqT1BRUURBd05wQURCbUFqRUFsQzcwMzlnRFNnbTlCYThjQ25aTFd1Y1hidENiaFJHU3ZWY29FbFlrZS9wdQotaXdIa0QxclZsblVtVzNVS0c1ODdBakVBa0luZ2FwQzlIeWM2TWVQbXlhZkxZb0xtYmhESk1kUjJETTRvK3g4ZQotMlpYVXU3dUxQVGRXQkR4bXU2cGxSTmlzCi0tLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCmRpZmYgLS1naXQgYS90ZXN0cy9kYXRhX2ZpbGVzL2VjZHNhX3NlY3A1MjFyMS5rZXkgYi90ZXN0cy9kYXRhX2ZpbGVzL2VjZHNhX3NlY3A1MjFyMS5rZXkKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDE0NGJiNDQuLjAwMDAwMDAKLS0tIGEvdGVzdHMvZGF0YV9maWxlcy9lY2RzYV9zZWNwNTIxcjEua2V5CisrKyAvZGV2L251bGwKQEAgLTEsNyArMCwwIEBACi0tLS0tLUJFR0lOIEVDIFBSSVZBVEUgS0VZLS0tLS0KLU1JSGNBZ0VCQkVJQnNiYXRCN3Q1NXpJTnBaaGc2aWpnVlNoUFlGanllZDVtYmdiVU5kS3ZlOW9vMlora2UzM1EKLWxqNFdzQWN3ZU82TGlqalpacVdDOUcwWi81WGZPdGxvV3E2Z0J3WUZLNEVFQUNPaGdZa0RnWVlBQkFBZDRVTFYKLVQybnJBNDdrdDYrZFBLQjNOdjJjOXhuck5VMXBoNTduODhFMit3Ky9ud2o0YStYNkVvN0JvRkhUNXNaRDZGcmEKLWovclBObVBDWUwwc2hFdHZWZ0RPNk9TS25tWFFuSzNZbnlOZDdnWHp1S1pHdm5GZkgyZlZ0RFRnL3lPaC9BZnYKLWQwQVpQa0R1LzI4N3pmMTJXcWtWVUROU1QrVHlCZlZFVGlrc1RDOXF3UT09Ci0tLS0tLUVORCBFQyBQUklWQVRFIEtFWS0tLS0tCmRpZmYgLS1naXQgYS90ZXN0cy9kYXRhX2ZpbGVzL2VuY28tY2EtcHJzdHIucGVtIGIvdGVzdHMvZGF0YV9maWxlcy9lbmNvLWNhLXByc3RyLnBlbQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggODBlMmFlYi4uMDAwMDAwMAotLS0gYS90ZXN0cy9kYXRhX2ZpbGVzL2VuY28tY2EtcHJzdHIucGVtCisrKyAvZGV2L251bGwKQEAgLTEsMTUgKzAsMCBAQAotLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCi1NSUlDU2pDQ0FiT2dBd0lCQWdJQkFUQU5CZ2txaGtpRzl3MEJBUVVGQURCQ01VQXdQZ1lEVlFRREV6ZFBjR1Z1Ci1WbEJPSUZkbFlpQkRRU0F5TURFeExqQTBMakExSURJd09qTXpPakkzSUZWVVF5QmhjMlJsYlc4dWVXOXVZVzR1Ci1ibVYwTUI0WERURTVNREl4TURFME5EUXdObG9YRFRJNU1ESXhNREUwTkRRd05sb3dRakZBTUQ0R0ExVUVBeE0zCi1UM0JsYmxaUVRpQlhaV0lnUTBFZ01qQXhNUzR3TkM0d05TQXlNRG96TXpveU55QlZWRU1nWVhOa1pXMXZMbmx2Ci1ibUZ1TG01bGREQ0JuekFOQmdrcWhraUc5dzBCQVFFRkFBT0JqUUF3Z1lrQ2dZRUF4emlTeGNQMGNCQUlhL2dUCi1OZXp6QVJ5S0pRK1ZnalllcWg2V0VsVWFyUGg3ZFRNTGNGY3puTm1WOFUxTVJEZkl2c1NnUCtSa1BOUHp5UUpECi1QY044VzQ1NXFnbUVyb0lUTndxL2hXbTlLalZpYkxIKzVLemdRckpCZkh2a25TY1VteXdIYTQ1RFBUOXNkanBHCi1taHh3RFNXZHZBakhRUHpZQWpkaS8zM3IvQzBDQXdFQUFhTlFNRTR3REFZRFZSMFRCQVV3QXdFQi96QWRCZ05WCi1IUTRFRmdRVUlMUGFqb0EwZnNNdmZsN002RW1pa0VKelBFUXdId1lEVlIwakJCZ3dGb0FVSUxQYWpvQTBmc012Ci1mbDdNNkVtaWtFSnpQRVF3RFFZSktvWklodmNOQVFFRkJRQURnWUVBR1NJaFNiZWNHVWdLYzdFdWhrTU1jQWlqCi1jbHJaOG5pSytVUHZKNWpTTTVUbmJmd0tYRmxtZVM2TUh1cmp6TS9ENjkzd082ZU1qeExwdDgvKzkvNWF5Z0dtCi1XQU9BYTVNWis1QjhQdW44Y05wcFNTUEIxTDFHdFh6UldFQ0NhR2tvNzNQL3I5MmlRYzNZZDY0dEozaVI2V1laCi13SzJuZjIzakxnYldMQ1hIem9BPQotLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQpkaWZmIC0tZ2l0IGEvdGVzdHMvZGF0YV9maWxlcy9lbmNvLWNlcnQtdXRmOHN0ci5wZW0gYi90ZXN0cy9kYXRhX2ZpbGVzL2VuY28tY2VydC11dGY4c3RyLnBlbQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZmI0OTQ3YS4uMDAwMDAwMAotLS0gYS90ZXN0cy9kYXRhX2ZpbGVzL2VuY28tY2VydC11dGY4c3RyLnBlbQorKysgL2Rldi9udWxsCkBAIC0xLDE0ICswLDAgQEAKLS0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQotTUlJQ0hEQ0NBWVdnQXdJQkFnSUJBVEFOQmdrcWhraUc5dzBCQVFVRkFEQkNNVUF3UGdZRFZRUURERGRQY0dWdQotVmxCT0lGZGxZaUJEUVNBeU1ERXhMakEwTGpBMUlESXdPak16T2pJM0lGVlVReUJoYzJSbGJXOHVlVzl1WVc0dQotYm1WME1CNFhEVEU1TURJeE1ERTBORFF3TmxvWERUSTVNREl4TURFME5EUXdObG93RnpFVk1CTUdBMVVFQXd3TQotWkhjdWVXOXVZVzR1Ym1WME1JR2ZNQTBHQ1NxR1NJYjNEUUVCQVFVQUE0R05BRENCaVFLQmdRREhPSkxGdy9SdwotRUFocitCTTE3UE1CSElvbEQ1V0NOaDZxSHBZU1ZScXMrSHQxTXd0d1Z6T2MyWlh4VFV4RU44aSt4S0EvNUdROAotMC9QSkFrTTl3M3hiam5tcUNZU3VnaE0zQ3IrRmFiMHFOV0pzc2Y3a3JPQkNza0Y4ZStTZEp4U2JMQWRyamtNOQotUDJ4Mk9rYWFISEFOSloyOENNZEEvTmdDTjJML2ZldjhMUUlEQVFBQm8wMHdTekFKQmdOVkhSTUVBakFBTUIwRwotQTFVZERnUVdCQlFnczlxT2dEUit3eTkrWHN6b1NhS1FRbk04UkRBZkJnTlZIU01FR0RBV2dCUWdzOXFPZ0RSKwotd3k5K1hzem9TYUtRUW5NOFJEQU5CZ2txaGtpRzl3MEJBUVVGQUFPQmdRQ1NxV1A4V2ZNNHREemtxQWU1OTV3NAotZXJHdDY0QW5NTy9aS1pOWE5Nak1udVR0VDVHUmoybU1qdER1bzh2Q04zazFoTnRiMktJNjZGYzl3YXNpUU5rSQotMnZ3cmU4Rm5sY3RhQi9yaUdVeDZmNnRhVjNsVmFha0I2d1hLck8xeDJlalQ0dldPKzFHUVgyYldRME1nMnpuTwotenUxR2gzZCt3cmNxQkFzRkdudmNkQT09Ci0tLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCmRpZmYgLS1naXQgYS90ZXN0cy9kYXRhX2ZpbGVzL2Zvcm1hdF9nZW4ua2V5IGIvdGVzdHMvZGF0YV9maWxlcy9mb3JtYXRfZ2VuLmtleQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMjA0NzIzMi4uMDAwMDAwMAotLS0gYS90ZXN0cy9kYXRhX2ZpbGVzL2Zvcm1hdF9nZW4ua2V5CisrKyAvZGV2L251bGwKQEAgLTEsMTYgKzAsMCBAQAotLS0tLS1CRUdJTiBQUklWQVRFIEtFWS0tLS0tCi1NSUlDZFFJQkFEQU5CZ2txaGtpRzl3MEJBUUVGQUFTQ0FsOHdnZ0piQWdFQUFvR0JBTURSU3pPTkVTWDRtU1ZUCi1KNjlvM3g5dlFhblhjUE52aWxqY3dLZ2tyWGtGYWg2aFFVQWhXKzRqUUx4dEdiK0xVNDdnRTMyMUpHdEdOYjVMCi16MWh0akxVTHZjOVNBcGxKNk9PY1FVRGh5RnhJNG82Rm1Vem9ydjQ5eXR6SDZ4MklPN1VPRjQ0TXlKSVdHakczCi00Zm9oUzhFUWFRamtCWVc3a3dNL3ZDVlQ4Qmw5QWdNQkFBRUNnWUJUcWowY1NFaTVsaTQxa09oMloyWHhpT0FRCi1KMGgraU5hYUNtZWFUaGZybkZyWW9aWGprdFlGOWN3QU5zTG1aemxCbEo5QWU1b3E1aE1wMkZGSENIbjF6MVUvCi1CaUUzeUYyQVhOc2xMMHA4bE1PNHFHeG10MmlZZEUzWjhjb21ma3l0dFVKNWs5dGhMUXpVL05XQVRQOEVaR25nCi1pVGRFREZPVzM1Y0cyNmNjRFFKQkFQUG9haXZlQVZOMEpZeGUydFlSOHhiNXF0YTg5UUdVNkhEZFRSaUNsYXAxCi01cmZwaDVkMzBNUWdncWYxdEJUaURSS09Tazd1TjM5eHdHYk16ejExK05jQ1FRREtZSFhXQXNOM1FsbUZRS1RYCi1ubTRHNXhwbDU3UDlVMjV3U0MrTllPbUZFaWVvbUQ3WWxiYUJLQmMwVjVKTmoySXFVdDBFdlhOaDNMQTVjemQ5Ci0zcEhMQWtBaW9WZ1p2RjZoMDdiVkZFNnI0RWFNZDR4YkN0OGFoMkx0UzI1NzBXYWdtamJVMi9KbGZoeUZERHlnCi16bER3T2h3ekMwTGZyQkR6Smxwei9oWmFtcHBuQWtCc3dqSVJkU0src0xXVFd3NDdvalRYR05PaStFWk9XY3Y4Ci1JNDhLbDQ1bnFUNE82T0s5V3BmZUNVR1BLNURBaGRIbmxPaWFaNFhlamM5VzBJaDk2R0xKQWtCT3pKRThuVVU1Ci1naVVqTEF4Sm9ZZXBLbFdoNXRac05Eb0dGZzQ2K2JIbjlsMU82Zlg3dGF1MCtqRXo0dEM2YUE4UjNIdFVPcll2Ci1oSjYxZ0g4eDNVNUoKLS0tLS0tRU5EIFBSSVZBVEUgS0VZLS0tLS0KZGlmZiAtLWdpdCBhL3Rlc3RzL2RhdGFfZmlsZXMvZm9ybWF0X2dlbi5wdWIgYi90ZXN0cy9kYXRhX2ZpbGVzL2Zvcm1hdF9nZW4ucHViCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4MWE3YWIzLi4wMDAwMDAwCi0tLSBhL3Rlc3RzL2RhdGFfZmlsZXMvZm9ybWF0X2dlbi5wdWIKKysrIC9kZXYvbnVsbApAQCAtMSw2ICswLDAgQEAKLS0tLS0tQkVHSU4gUFVCTElDIEtFWS0tLS0tCi1NSUdmTUEwR0NTcUdTSWIzRFFFQkFRVUFBNEdOQURDQmlRS0JnUURBMFVzempSRWwrSmtsVXlldmFOOGZiMEdwCi0xM0R6YjRwWTNNQ29KSzE1QldvZW9VRkFJVnZ1STBDOGJSbS9pMU9PNEJOOXRTUnJSalcrUzg5WWJZeTFDNzNQCi1VZ0taU2Vqam5FRkE0Y2hjU09LT2habE02SzcrUGNyY3grc2RpRHUxRGhlT0RNaVNGaG94dCtINklVdkJFR2tJCi01QVdGdTVNRFA3d2xVL0FaZlFJREFRQUIKLS0tLS0tRU5EIFBVQkxJQyBLRVktLS0tLQpkaWZmIC0tZ2l0IGEvdGVzdHMvZGF0YV9maWxlcy9mb3JtYXRfcGtjczEyLmZtdCBiL3Rlc3RzL2RhdGFfZmlsZXMvZm9ybWF0X3BrY3MxMi5mbXQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDI5NmQ1OTkuLjAwMDAwMDAKLS0tIGEvdGVzdHMvZGF0YV9maWxlcy9mb3JtYXRfcGtjczEyLmZtdAorKysgL2Rldi9udWxsCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3Rlc3RzL2RhdGFfZmlsZXMvZm9ybWF0X3JzYS5rZXkgYi90ZXN0cy9kYXRhX2ZpbGVzL2Zvcm1hdF9yc2Eua2V5CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwYzhjYjU3Li4wMDAwMDAwCi0tLSBhL3Rlc3RzL2RhdGFfZmlsZXMvZm9ybWF0X3JzYS5rZXkKKysrIC9kZXYvbnVsbApAQCAtMSwxNSArMCwwIEBACi0tLS0tLUJFR0lOIFJTQSBQUklWQVRFIEtFWS0tLS0tCi1NSUlDV3dJQkFBS0JnUURBMFVzempSRWwrSmtsVXlldmFOOGZiMEdwMTNEemI0cFkzTUNvSksxNUJXb2VvVUZBCi1JVnZ1STBDOGJSbS9pMU9PNEJOOXRTUnJSalcrUzg5WWJZeTFDNzNQVWdLWlNlampuRUZBNGNoY1NPS09oWmxNCi02SzcrUGNyY3grc2RpRHUxRGhlT0RNaVNGaG94dCtINklVdkJFR2tJNUFXRnU1TURQN3dsVS9BWmZRSURBUUFCCi1Bb0dBVTZvOUhFaEl1Wll1TlpEb2RtZGw4WWpnRUNkSWZvaldtZ3BubWs0WDY1eGEyS0dWNDVMV0JmWE1BRGJDCi01bWM1UVpTZlFIdWFLdVlUS2RoUlJ3aDU5YzlWUHdZaE44aGRnRnpiSlM5S2ZKVER1S2hzWnJkb21IUk4yZkhLCi1KbjVNcmJWQ2VaUGJZUzBNMVB6VmdFei9CR1JwNElrM1JBeFRsdCtYQnR1bkhBMENRUUR6NkdvcjNnRlRkQ1dNCi1YdHJXRWZNVythcld2UFVCbE9odzNVMFlncFdxZGVhMzZZZVhkOURFSUlLbjliUVU0ZzBTamtwTzdqZC9jY0JtCi16TTg5ZGZqWEFrRUF5bUIxMWdMRGQwSlpoVUNrMTU1dUJ1Y2FaZWV6L1ZOdWNFZ3ZqV0RwaFJJbnFKZysySlcyCi1nU2dYTkZlU1RZOWlLbExkQkwxellkeXdPWE0zZmQ2Unl3SkFJcUZZR2J4ZW9kTzIxUlJPcStCR2pIZU1Xd3JmCi1Hb2RpN1V0dWU5Rm1vSm8yMU52eVpYNGNoUXc4b001UThEb2NNd3RDMzZ3UTh5WmFjLzRXV3BxYVp3SkFiTUl5Ci1FWFVpdnJDMWsxc09PNkkwMXhqVG92aEdUbG5ML0NPUENwZU9aNmsrRHVqaXZWcVgzZ2xCanl1UXdJWFI1NVRvCi1tbWVGM28zUFZ0Q0lmZWhpeVFKQVRzeVJQSjFGT1lJbEl5d01TYUdIcVNwVm9lYldiRFE2QmhZT092bXg1L1pkCi1UdW4xKzdXcnRQb3hNK0xRdW1nUEVkeDdWRHEyTDRTZXRZQi9NZDFPU1E9PQotLS0tLS1FTkQgUlNBIFBSSVZBVEUgS0VZLS0tLS0KZGlmZiAtLWdpdCBhL3Rlc3RzL2RhdGFfZmlsZXMvaGFzaF9maWxlXzEgYi90ZXN0cy9kYXRhX2ZpbGVzL2hhc2hfZmlsZV8xCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2ODFmYWQyLi4wMDAwMDAwCi0tLSBhL3Rlc3RzL2RhdGFfZmlsZXMvaGFzaF9maWxlXzEKKysrIC9kZXYvbnVsbApCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS90ZXN0cy9kYXRhX2ZpbGVzL2hhc2hfZmlsZV8yIGIvdGVzdHMvZGF0YV9maWxlcy9oYXNoX2ZpbGVfMgpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggY2M0NGVhYy4uMDAwMDAwMAotLS0gYS90ZXN0cy9kYXRhX2ZpbGVzL2hhc2hfZmlsZV8yCisrKyAvZGV2L251bGwKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvdGVzdHMvZGF0YV9maWxlcy9oYXNoX2ZpbGVfMyBiL3Rlc3RzL2RhdGFfZmlsZXMvaGFzaF9maWxlXzMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDU4YmIwYmEuLjAwMDAwMDAKLS0tIGEvdGVzdHMvZGF0YV9maWxlcy9oYXNoX2ZpbGVfMworKysgL2Rldi9udWxsCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3Rlc3RzL2RhdGFfZmlsZXMvaGFzaF9maWxlXzQgYi90ZXN0cy9kYXRhX2ZpbGVzL2hhc2hfZmlsZV80CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlNjlkZTI5Li4wMDAwMDAwCi0tLSBhL3Rlc3RzL2RhdGFfZmlsZXMvaGFzaF9maWxlXzQKKysrIC9kZXYvbnVsbApkaWZmIC0tZ2l0IGEvdGVzdHMvZGF0YV9maWxlcy9oYXNoX2ZpbGVfNSBiL3Rlc3RzL2RhdGFfZmlsZXMvaGFzaF9maWxlXzUKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGRlMWZiZjAuLjAwMDAwMDAKLS0tIGEvdGVzdHMvZGF0YV9maWxlcy9oYXNoX2ZpbGVfNQorKysgL2Rldi9udWxsCkBAIC0xICswLDAgQEAKLWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWEKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS90ZXN0cy9kYXRhX2ZpbGVzL2tleVVzYWdlLmRlY2lwaGVyT25seS5jcnQgYi90ZXN0cy9kYXRhX2ZpbGVzL2tleVVzYWdlLmRlY2lwaGVyT25seS5jcnQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDdjMzc5NzguLjAwMDAwMDAKLS0tIGEvdGVzdHMvZGF0YV9maWxlcy9rZXlVc2FnZS5kZWNpcGhlck9ubHkuY3J0CisrKyAvZGV2L251bGwKQEAgLTEsMTQgKzAsMCBAQAotLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCi1NSUlDRnpDQ0FZQ2dBd0lCQWdJSkFKc1R6a3lsYjk1U01BMEdDU3FHU0liM0RRRUJCUVVBTUQ4eEN6QUpCZ05WCi1CQVlUQWtkQ01SSXdFQVlEVlFRSERBbERZVzFpY21sa1oyVXhIREFhQmdOVkJBb01FMFJsWm1GMWJIUWdRMjl0Ci1jR0Z1ZVNCTWRHUXdIaGNOTVRVd05URXlNVEF6TmpVMVdoY05NVGd3TlRFeE1UQXpOalUxV2pBL01Rc3dDUVlECi1WUVFHRXdKSFFqRVNNQkFHQTFVRUJ3d0pRMkZ0WW5KcFpHZGxNUnd3R2dZRFZRUUtEQk5FWldaaGRXeDBJRU52Ci1iWEJoYm5rZ1RIUmtNSUdmTUEwR0NTcUdTSWIzRFFFQkFRVUFBNEdOQURDQmlRS0JnUUM5bnhZT1NiaGEvQXA0Ci02ckFDck9NSDd6ZkREKzBaRUhoYk8wYmdHUmpjNUVsdk9hTnVEMzIxeTlUbnlBeCtKcnFQcC9sRnJBZ05pVm8xCi1IUHVyUEhmY0ordE5CVWdCSGJvV0dORU5OYWY5b3Z3RlBhd3NCekVacmFHbkRhcVZQRUZjSXNVUVBWcU8xbHJRCi1DSExVanRxbzFoTVpEcWUvV2ViME13OWNacnFPYVFJREFRQUJveHN3R1RBSkJnTlZIUk1FQWpBQU1Bd0dBMVVkCi1Ed1FGQXdNSDRJQXdEUVlKS29aSWh2Y05BUUVGQlFBRGdZRUFKME5TMndVYmdSZWxLMHFLeHJSMlRzNmpWWUVICi1ibXlreDNHSGpGeUtwc2NESW4ydk55eUI3eWdmRmdsWlBjdysybW4zeHVWSXdPVi9tV3hGdktIaytqMldyVFFMCi10RHFTQzVCaEZvUjAxdmVGdTA3SmRFWXZ6K0krTkNMNXowSUdXWGtVcmsyMzVXbDR3NFdNWkRuWFRxbmNNTkVrCi1mTHRwbzl5NzlYRDAwUVk9Ci0tLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCmRpZmYgLS1naXQgYS90ZXN0cy9kYXRhX2ZpbGVzL2xtc19oYXNoLXNpZ3Nfc2hhMjU2X20zMl9oNV9sbW90c19zaGEyNTZfbjMyX3c4X2F1eCBiL3Rlc3RzL2RhdGFfZmlsZXMvbG1zX2hhc2gtc2lnc19zaGEyNTZfbTMyX2g1X2xtb3RzX3NoYTI1Nl9uMzJfdzhfYXV4CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5NjdmOGY1Li4wMDAwMDAwCi0tLSBhL3Rlc3RzL2RhdGFfZmlsZXMvbG1zX2hhc2gtc2lnc19zaGEyNTZfbTMyX2g1X2xtb3RzX3NoYTI1Nl9uMzJfdzhfYXV4CisrKyAvZGV2L251bGwKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvdGVzdHMvZGF0YV9maWxlcy9sbXNfaGFzaC1zaWdzX3NoYTI1Nl9tMzJfaDVfbG1vdHNfc2hhMjU2X24zMl93OF9wcnYgYi90ZXN0cy9kYXRhX2ZpbGVzL2xtc19oYXNoLXNpZ3Nfc2hhMjU2X20zMl9oNV9sbW90c19zaGEyNTZfbjMyX3c4X3BydgpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYWIxYjIzZi4uMDAwMDAwMAotLS0gYS90ZXN0cy9kYXRhX2ZpbGVzL2xtc19oYXNoLXNpZ3Nfc2hhMjU2X20zMl9oNV9sbW90c19zaGEyNTZfbjMyX3c4X3BydgorKysgL2Rldi9udWxsCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3Rlc3RzL2RhdGFfZmlsZXMvbG1zX2hhc2gtc2lnc19zaGEyNTZfbTMyX2g1X2xtb3RzX3NoYTI1Nl9uMzJfdzhfcHViIGIvdGVzdHMvZGF0YV9maWxlcy9sbXNfaGFzaC1zaWdzX3NoYTI1Nl9tMzJfaDVfbG1vdHNfc2hhMjU2X24zMl93OF9wdWIKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDUzOTdkNjAuLjAwMDAwMDAKLS0tIGEvdGVzdHMvZGF0YV9maWxlcy9sbXNfaGFzaC1zaWdzX3NoYTI1Nl9tMzJfaDVfbG1vdHNfc2hhMjU2X24zMl93OF9wdWIKKysrIC9kZXYvbnVsbApCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS90ZXN0cy9kYXRhX2ZpbGVzL2xtc19oc3NsbXNfc2hhMjU2X20zMl9oNV9sbW90c19zaGEyNTZfbjMyX3c4X3BydiBiL3Rlc3RzL2RhdGFfZmlsZXMvbG1zX2hzc2xtc19zaGEyNTZfbTMyX2g1X2xtb3RzX3NoYTI1Nl9uMzJfdzhfcHJ2CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkYjg1ZTAxLi4wMDAwMDAwCi0tLSBhL3Rlc3RzL2RhdGFfZmlsZXMvbG1zX2hzc2xtc19zaGEyNTZfbTMyX2g1X2xtb3RzX3NoYTI1Nl9uMzJfdzhfcHJ2CisrKyAvZGV2L251bGwKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvdGVzdHMvZGF0YV9maWxlcy9sbXNfcHloc3NsbXNfc2hhMjU2X20zMl9oNV9sbW90c19zaGEyNTZfbjMyX3c4X3BydiBiL3Rlc3RzL2RhdGFfZmlsZXMvbG1zX3B5aHNzbG1zX3NoYTI1Nl9tMzJfaDVfbG1vdHNfc2hhMjU2X24zMl93OF9wcnYKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDZlODI3Y2UuLjAwMDAwMDAKLS0tIGEvdGVzdHMvZGF0YV9maWxlcy9sbXNfcHloc3NsbXNfc2hhMjU2X20zMl9oNV9sbW90c19zaGEyNTZfbjMyX3c4X3BydgorKysgL2Rldi9udWxsCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3Rlc3RzL2RhdGFfZmlsZXMvbG1zX3B5aHNzbG1zX3NoYTI1Nl9tMzJfaDVfbG1vdHNfc2hhMjU2X24zMl93OF9wdWIgYi90ZXN0cy9kYXRhX2ZpbGVzL2xtc19weWhzc2xtc19zaGEyNTZfbTMyX2g1X2xtb3RzX3NoYTI1Nl9uMzJfdzhfcHViCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2NTJjMDg5Li4wMDAwMDAwCi0tLSBhL3Rlc3RzL2RhdGFfZmlsZXMvbG1zX3B5aHNzbG1zX3NoYTI1Nl9tMzJfaDVfbG1vdHNfc2hhMjU2X24zMl93OF9wdWIKKysrIC9kZXYvbnVsbApCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS90ZXN0cy9kYXRhX2ZpbGVzL21waV8xNiBiL3Rlc3RzL2RhdGFfZmlsZXMvbXBpXzE2CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwNDMzNWQ5Li4wMDAwMDAwCi0tLSBhL3Rlc3RzL2RhdGFfZmlsZXMvbXBpXzE2CisrKyAvZGV2L251bGwKQEAgLTEgKzAsMCBAQAotbGFiZWxfMTIzNDU2Nzg5MD0xZjU1MzMyYzNhNDhiOTEwZjk5NDJmNmM5MTRlNThiZWYzN2E0N2VlNDVjYjE2NGE1YjZiOGQxMDA2YmY1OWEwNTljMjE0NDk5MzllYmViZmRmNTE3ZDJlMWRiYWM4ODAxMGQ3YjFmMTQxZTk5N2JkNjgwMWRkYWVjOWQwNTkxMGY0ZjJkZTJiMmM0ZDcxNGUyYzE0YTcyZmM3ZjE3YWE0MjhkNTljNTMxNjI3ZjA5CmRpZmYgLS1naXQgYS90ZXN0cy9kYXRhX2ZpbGVzL21waV90b29fYmlnIGIvdGVzdHMvZGF0YV9maWxlcy9tcGlfdG9vX2JpZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggY2E2MjM1Mi4uMDAwMDAwMAotLS0gYS90ZXN0cy9kYXRhX2ZpbGVzL21waV90b29fYmlnCisrKyAvZGV2L251bGwKQEAgLTEgKzAsMCBAQAotbGFiZWxfMTIzNDU2Nzg5MD0xMDkwNzQ4MTM1NjE5NDE1OTI5NDYyOTg0MjQ0NzMzNzgyODYyNDQ4MjY0MTYxOTk2MjMyNjkyNDMxODMyNzg2MTg5NzIxMzMxODQ5MTE5Mjk1MjE2MjY0MjM0NTI1MjAxOTg3MjIzOTU3MjkxNzk2MTU3MDI1MjczMTA5ODcwODIwMTc3MTg0MDYzNjEwOTc5NzY1MDc3NTU0Nzk5MDc4OTA2Mjk4ODQyMTkyOTg5NTM4NjA5ODI1MjI4MDQ4MjA1MTU5Njk2ODUxNjEzNTkxNjM4MTk2NzcxODg2NTQyNjA5MzI0NTYwMTIxMjkwNTUzOTAxODg2MzAxMDE3OTAwMjUyNTM1Nzk5OTE3MjAwMDEwMDc5NjAwMDI2NTM1ODM2ODAwOTA1Mjk3ODA1ODgwOTUyMzUwNTAxNjMwMTk1NDc1NjUzOTExMDA1MzEyMzY0NTYwMDE0ODQ3NDI2MDM1MjkzNTUxMjQ1ODQzOTI4OTE4NzUyNzY4Njk2Mjc5MzQ0MDg4MDU1NjE3NTE1Njk0MzQ5OTQ1NDA2Njc3ODI1MTQwODE0OTAwNjE2MTA1OTIwMjU2NDM4NTA0NTc4MDEzMzI2NDkzNTY1ODM2MDQ3MjQyNDA3MzgyNDQyODEyMjQ1MTMxNTE3NzU3NTE5MTY0ODk5MjI2MzY1NzQzNzIyNDMyMjc3MzY4MDc1MDI3NjI3ODgzMDQ1MjA2NTAxNzkyNzYxNzAwOTQ1Njk5MTY4NDk3MjU3ODc5NjgzODUxNzM3MDQ5OTk2OTAwOTYxMTIwNTE1NjU1MDUwMTE1NTYxMjcxNDkxNDkyNTE1MzQyMTA1NzQ4OTY2NjI5NTQ3MDMyNzg2MzIxNTA1NzMwODI4NDMwMjIxNjY0OTcwMzI0Mzk2MTM4NjM1MjUxNjI2NDA5NTE2MTY4MDA1NDI3NjIzNDM1OTk2MzA4OTIxNjkxNDQ2MTgxMTg3NDA2Mzk1MzEwNjY1NDA0ODg1NzM5NDM0ODMyODc3NDI4MTY3NDA3NDk1MzcwOTkzNTExODY4NzU2MzU5OTcwMzkwMTE3MDIxODIzNjE2NzQ5NDU4NjIwOTY5ODU3MDA2MjYzNjEyMDgyNzA2NzE1NDA4MTU3MDY2NTc1MTM3MjgxMDI3MDIyMzEwOTI3NTY0OTEwMjc2NzU5MTYwNTIwODc4MzA0NjMyNDExMDQ5MzY0NTY4NzU0OTIwOTY3MzIyOTgyNDU5MTg0NzYzNDI3MzgzNzkwMjcyNDQ4NDM4MDE4NTI2OTc3NzY0OTQxMDcyNzE1NjExNTgwNDM0NjkwODI3NDU5MzM5OTkxOTYxNDE0MjQyNzQxNDEwNTk5MTE3NDI2MDYwNTU2NDgzNzYzNzU2MzE0NTI3NjExMzYyNjU4NjI4MzgzMzY4NjIxMTU3OTkzNjM4MDIwODc4NTM3Njc1NTQ1MzM2Nzg5OTE1Njk0MjM0NDMzOTU1NjY2MzE1MDcwMDg3MjEzNTM1NDcwMjU1NjcwMzEyMDA0MTMwNzI1NDk1ODM0NTA4MzU3NDM5NjUzODI4OTM2MDc3MDgwOTc4NTUwNTc4OTEyOTY3OTA3MzUyNzgwMDU0OTM1NjIxNTYxMDkwNzk1ODQ1MTcyOTU0MTE1OTcyOTI3NDc5ODc3NTI3NzM4NTYwMDA4MjA0MTE4NTU4OTMwMDA0Nzc3NzQ4NzI3NzYxODUzODEzNTEwNDkzODQwNTgxODYxNTk4NjUyMjExNjA1OTYwMzA4MzU2NDA1OTQxODIxMTg5NzE0MDM3ODY4NzI2MjE5NDgxNDk4NzI3NjAzNjUzNjE2Mjk4ODU2MTc0ODIyNDEzMDMzNDg1NDM4Nzg1MzI0MDI0NzUxNDE5NDE3MTgzMDEyMjgxMDc4MjA5NzI5MzAzNTM3MzcyODA0NTc0MzcyMDk1MjI4NzAzNjIyNzc2MzYzOTQ1MjkwODY5ODA2MjU4NDIyMzU1MTQ4NTA3NTcxMDM5NjE5Mzg3NDQ5NjI5ODY2ODA4MTg4NzY5NjYyODE1Nzc4MTUzMDc5MzkzMTc5MDkzMTQzNjQ4MzQwNzYxNzM4NTgxODE5NTYzMDAyOTk0NDIyNzkwNzU0OTU1MDYxMjg4ODE4MzA4NDMwMDc5NjQ4NjkzMjMyMTc5MTU4NzY1OTE4MDM1NTY1MjE2MTU3MTE1NDAyOTkyMTIwMjc2MTU1NjA3ODczMTA3OTM3NDc3NDY2ODQxNTI4MzYyOTg3NzA4Njk5NDUwMTUyMDMxMjMxODYyNTk0MjAzMDg1NjkzODM4OTQ0NjU3MDYxMzQ2MjM2NzA0MjM0MDI2ODIxMTAyOTU4OTU0OTUxMTk3MDg3MDc2NTQ2MTg2NjIyNzk2Mjk0NTM2NDUxNjIwNzU2NTA5MzUxMDE4OTA2MDIzNzczODIxNTM5NTMyNzc2MjA4Njc2OTc4NTg5NzMxOTY2MzMwMzA4ODkzMzA0NjY1MTY5NDM2MTg1MDc4MzUwNjQxNTY4MzM2OTQ0NTMwMDUxNDM3NDkxMzExMjk4ODM0MzY3MjY1MjM4NTk1NDA0OTA0MjczNDU1OTI4NzIzOTQ5NTI1MjI3MTg0NjE3NDA0MzY3ODU0NzU0NjEwNDc0Mzc3MDE5NzY4MDI1NTc2NjA1ODgxMDM4MDc3MjcwNzA3NzE3OTQyMjIxOTc3MDkwMzg1NDM4NTg1ODQ0MDk1NDkyMTE2MDk5ODUyNTM4OTAzOTc0NjU1NzAzOTQzOTczMDg2MDkwOTMwNTk2OTYzMzYwNzY3NTI5OTY0OTM4NDE0NTk4MTg1NzA1OTYzNzU0NTYxNDk3MzU1ODI3ODEzNjIzODMzMjg4OTA2MzA5MDA0Mjg4MDE3MzIxNDI0ODA4NjYzOTYyNjcxMzMzNTI4MDA5MjMyNzU4MzUwODczMDU5NjE0MTE4NzIzNzgxNDIyMTAxNDYwMTk4NjE1NzQ3Mzg2ODU1MDk2ODk2MDg5MTg5MTgwNDQxMzM5NTU4NTI0ODIyODY3NTQxMTEzMjEyNjM4NzkzNjc1NTY3NjUwMzQwMzYyOTcwMDMxOTMwMDIzMzk3ODI4NDY1MzE4NTQ3MjM4MjQ0MjMyMDI4MDE1MTg5Njg5NjYwNDE4ODIyOTc2MDAwODE1NDM3NjEwNjUyMjU0MjcwMTYzNTk1NjUwODc1NDMzODUxMTQ3MTIzMjE0MjI3MjY2NjA1NDAzNTgxNzgxNDY5MDkwODA2NTc2NDY4OTUwNTg3NjYxOTk3MTg2NTA1NjY1NDc1NzE1NzkyODk2CmRpZmYgLS1naXQgYS90ZXN0cy9kYXRhX2ZpbGVzL29wZW5zc2xjbmYvc2VydmVyOS5jcnQudjNfZXh0IGIvdGVzdHMvZGF0YV9maWxlcy9vcGVuc3NsY25mL3NlcnZlcjkuY3J0LnYzX2V4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZjhkMjAxYi4uMDAwMDAwMAotLS0gYS90ZXN0cy9kYXRhX2ZpbGVzL29wZW5zc2xjbmYvc2VydmVyOS5jcnQudjNfZXh0CisrKyAvZGV2L251bGwKQEAgLTEsNCArMCwwIEBACi1iYXNpY0NvbnN0cmFpbnRzID0gQ0E6ZmFsc2UKLXN1YmplY3RLZXlJZGVudGlmaWVyPWhhc2gKLWF1dGhvcml0eUtleUlkZW50aWZpZXI9a2V5aWQ6YWx3YXlzLGlzc3VlcjphbHdheXMKLQpkaWZmIC0tZ2l0IGEvdGVzdHMvZGF0YV9maWxlcy9wYXJzZV9pbnB1dC9iaXRzdHJpbmctaW4tZG4ucGVtIGIvdGVzdHMvZGF0YV9maWxlcy9wYXJzZV9pbnB1dC9iaXRzdHJpbmctaW4tZG4ucGVtCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjNTBiZDY2Li4wMDAwMDAwCi0tLSBhL3Rlc3RzL2RhdGFfZmlsZXMvcGFyc2VfaW5wdXQvYml0c3RyaW5nLWluLWRuLnBlbQorKysgL2Rldi9udWxsCkBAIC0xLDUxICswLDAgQEAKLS0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQotTUlJRUFUQ0NBdW1nQXdJQkFnSUJBakFOQmdrcWhraUc5dzBCQVFVRkFEQnhNUk13RVFZRFZRUUREQXBVWlhOMAotSUVOQklEQXhNUkV3RHdZRFZRUUlEQWhGWTI1cGRtOXljREVMTUFrR0ExVUVCaE1DV0ZneEhqQWNCZ2txaGtpRwotOXcwQkNRRVdEM1JqWVVCbGVHRnRjR3hsTG1OdmJURWFNQmdHQTFVRUNnd1JWR1Z6ZENCRFFTQkJkWFJvYjNKcAotZEhrd0hoY05NVFV3TXpFeE1USXdOalV4V2hjTk1qVXdNekE0TVRJd05qVXhXakNCbXpFTE1Ba0dBMVVFQmhNQwotV0ZneEREQUtCZ05WQkFvTUEzUmpZVEVSTUE4R0ExVUVDQXdJUldOdWFYWnZjbkF4RERBS0JnTlZCQXNNQTFSRAotUVRFUE1BMEdBMVVFQXd3R1EyeHBaVzUwTVNFd0h3WUpLb1pJaHZjTkFRa0JGaEpqYkdsbGJuUkFaWGhoYlhCcwotWlM1amIyMHhFekFSQmdOVkJBVVRDamN4TURFd01USXlOVFV4RkRBU0JnTlZCQzBEQ3dBM01UQXhNREV5TWpVMQotTUlJQklqQU5CZ2txaGtpRzl3MEJBUUVGQUFPQ0FROEFNSUlCQ2dLQ0FRRUFuUVMwSkxiOERxeThWMm1zemtXawotVjhjL05QUWNHM2l2dWVYWkhxT1Q5SlRpUHFyaWdHY0xIdGxtbGFKMGFVVXhpeDdxNjBhT2RzMDQxVEZ5ZWtuVAotU1VGWVk0cHBPaGlQK2ZPcFdLUHY0Wk13aFNJMlh6Y2dZaFFTTkhWMGxJRzF3ZTlSQUFmdW1vbURNcTdvTUpoYgotRUdmMGloaWJid1pYUFV3QmxtMTBHYUI0SzkzUE5ZOEJ6NGVrQnh6UTFXSmtRNUxHc1FuVlpTdUxudnA1ZFdTZQotSjJheHh5WTRoUFhSMzBqekV5WnZ5NGt2NG56QXU1bHFaNVhLTHJSTzRUS3dacnRyK0NDUFZrUEpSRTM2cldZdAotdFFhSkVFcE5PbzBaUHBUdEc2RjgvdEdoNXI4akZ4L2Y2d0crbnlBTkpKOThrRVA4aTZUUGpScmcrNjk3bUxjZAotaVFJREFRQUJvM2t3ZHpBSkJnTlZIUk1FQWpBQU1EWUdBMVVkSHdRdk1DMHdLNkFwb0NlR0pXaDBkSEE2THk5agotY213dVpYaGhiWEJzWlM1amIyMHZkR1Z6ZEY5allWOHdNUzVqY213d0V3WURWUjBsQkF3d0NnWUlLd1lCQlFVSAotQXdJd0hRWURWUjBSQkJZd0ZJRVNZMnhwWlc1MFFHVjRZVzF3YkdVdVkyOXRNQTBHQ1NxR1NJYjNEUUVCQlFVQQotQTRJQkFRQnlTRUxDblU4L1B0R0lHM2R3aEpFTk9TVTVSN3c4anBSWHhIQ3VTQlIrVzZudVVDSVN6K3orRWRGLwotQTdBT0pEQVN1Uys0Z2tyU1NtUWhHRnBmN0U1VmJGOHRyVlpoTEFaclhxS01jVXJlS0g2djBJOE1BVVhtSXMzRwotdHFpQkdmN3BTWUpOOUR2Vk9PZ0FOamR5NlRIdVV6WXY1cVN2Qlo0cE5ZRWZIU2xNTnJWN25peW5kOGRnUE9NTAotcEE3R1VmdjVrMm1Na01iU0QxNXBUTWdjYXZyQktZZ3lxY3ZGMUMzcWdoZm9MNStpMzhIOHNLekY4aHk3d0h0RQotRVNIdEJxMjBSWUEzbTBVY0EwZTY0R2Nhbk8yUHMvQVFWQmM3cU1lSGJxbnFqM3VVaHRUa1FjTVVXbk1neTFOUgotNVJiem9MTU94cTdob09DeUlhUWVNL3dneGVHRQotLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQotLS0tLS1CRUdJTiBSU0EgUFJJVkFURSBLRVktLS0tLQotTUlJRXBBSUJBQUtDQVFFQW5RUzBKTGI4RHF5OFYybXN6a1drVjhjL05QUWNHM2l2dWVYWkhxT1Q5SlRpUHFyaQotZ0djTEh0bG1sYUowYVVVeGl4N3E2MGFPZHMwNDFURnlla25UU1VGWVk0cHBPaGlQK2ZPcFdLUHY0Wk13aFNJMgotWHpjZ1loUVNOSFYwbElHMXdlOVJBQWZ1bW9tRE1xN29NSmhiRUdmMGloaWJid1pYUFV3QmxtMTBHYUI0SzkzUAotTlk4Qno0ZWtCeHpRMVdKa1E1TEdzUW5WWlN1TG52cDVkV1NlSjJheHh5WTRoUFhSMzBqekV5WnZ5NGt2NG56QQotdTVscVo1WEtMclJPNFRLd1pydHIrQ0NQVmtQSlJFMzZyV1l0dFFhSkVFcE5PbzBaUHBUdEc2RjgvdEdoNXI4agotRngvZjZ3RytueUFOSko5OGtFUDhpNlRQalJyZys2OTdtTGNkaVFJREFRQUJBb0lCQUY3aTNNbmpHbWJ6MDgwdgotT3hKYjIzaUFHNTR3ZGx2VGpyM1VQR1RialNtY1h5eG5zQURRUkZRY0pIWUFla0N6WThFaXFld0w4ME92dU14OAotMlNVMVA4MWhBNzBEZzV0c0JIV1QzWjZIVXdzS0c2UVlqS3IxY1VoVHdMeWF6aHlBVmdvZ1NONnY3R3pPOU0zSQotRE9CdzhYYjBtejVvcUdWcmU0UzdUYXBOOG44Wkc1b1dtMFhLR0FDWHkwS2J6WTBLdldka1V6dW1GUThYL0FSRQotRnNXeXUrTzY5RWJNcVpSVUt1NDVTcmN1YnNkVkdqT3dzZVpIa21wNVY2cGM2US9PclRIWnFYSnREdmE1VUlScQotK0xvZjVzY3k5aml3d1JuTS9rbHZoMjNtejB5U1U0WUEzNjQ1bTVLcXlXUjRZSkNSMU1uTUFObVhVU2VZV2ZZegotMTkrUjFnRUNnWUVBem04M2xJN2VJaFRIMzhIMC9qRnBmM1I3dk5qUFgzVFI1d2FhNEVYc0N4aFRPcG9MODltUgotaU5tekgwYU9DNE9SOHJ6LzlQQ253bXRIMWx5UTRyL1Jva0JtQ3AzcEJ4ZVdTbGVuRmZWM3JMQ2VFRG8wUS9PTAotU1g1REw0SWJaRDBWbU5EdDYwNldTN0FFdjkzR2hwTjAzQW53NmtnSFFVbTFsMDMwUFI5RFlaRUNnWUVBd3JnTwotL1J5Qi9FaHc3c21seXNaYjJzbjFsdmQ2ejhmZytwY3U4Wk5SS09EYVlDQ09iOHAxbG5Icm5JUWRFbWpobG1WcAotSEFFdUo1anhDYitseXJ1VitkbHgrMFcvcDZsSHRLcjBpQkhHOEVGa0huak42WSs1OVF1MEhmU20wcFp3N0Z0cgotUWNVRFB1REprVFZVQXZyWnFjaVdsd3pUV0NDOUtZWHRhc1QrQUhrQ2dZRUFuUDgwZEFVYnB5dkt2ci9SeFNocgotSllXL1BXWmVnQ2htSXArQlZpT1hXdkRMQzN4d3JxbSs1eWM1OVFWQnJqd0gyV1luKzI2ekIwZHp3UEZ4TnlIUAotR3VpRE1udlo1NHptdmU5Zm9YR243R3YrS2pVNTNwdndTSnFBR2plSEFYcjdXOWM1dW9Wd0JHdi9rTFBuOGgxZQotK0tHTzJYNmlGZU1xK2NGTmlOYW45aUVDZ1lCaitvR25zS1dGVmVTMmxzOEx5TUdOR3ptQVpGMm9waVo4UkhnVQotRGVJVUxTK3pQOFFpM2o5MkdkUXlMeHVHUWxmaUV2dmZKelA5bk9mV2E1TEMvNEpJSVVBSEZvOExsVDErSkhFZQotRkpLaTlkQmtYUDdOTjhEeGN5cnVYcG54Y3RGVWFyUXR0dXl0c2xtTXQyY0ZpS3VPSTdJK3FKVXpvTXUvc0VaeAotRmVpZGNRS0JnUUN1cmFsbXRibDRueGpuM2FSL1pnRlRBS0NMOVdhSlBoNWhGSjlxNFV1V3hKZEJYNXozRXkzLwotNzBlaExLWVB1bWptWnRYeW56ejRCVFdqMVc5WCt0Z2ovNDk5dXpWNkxkUUVSR2pUNldWeTh4UjlSRUxXVzBhbgotTjlOMUlBYzRxVFNqYkk0RUlNd01CU0FvRmZDdXgvamZEa0c0ZytSRG5wVjkyc3F4ejJDdEtnPT0KLS0tLS0tRU5EIFJTQSBQUklWQVRFIEtFWS0tLS0tCmRpZmYgLS1naXQgYS90ZXN0cy9kYXRhX2ZpbGVzL3BhcnNlX2lucHV0L2NlcnRfZXhhbXBsZV9tdWx0aS5jcnQgYi90ZXN0cy9kYXRhX2ZpbGVzL3BhcnNlX2lucHV0L2NlcnRfZXhhbXBsZV9tdWx0aS5jcnQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDBlMzI5NWQuLjAwMDAwMDAKLS0tIGEvdGVzdHMvZGF0YV9maWxlcy9wYXJzZV9pbnB1dC9jZXJ0X2V4YW1wbGVfbXVsdGkuY3J0CisrKyAvZGV2L251bGwKQEAgLTEsMTcgKzAsMCBAQAotLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCi1NSUlDb2pDQ0FZcWdBd0lCQWdJQkVUQU5CZ2txaGtpRzl3MEJBUXNGQURBN01Rc3dDUVlEVlFRR0V3Sk9UREVSCi1NQThHQTFVRUNnd0lVRzlzWVhKVFUwd3hHVEFYQmdOVkJBTU1FRkJ2YkdGeVUxTk1JRlJsYzNRZ1EwRXdIaGNOCi1NVGt3TnpFd01URXlOelV5V2hjTk1qa3dOekV3TVRFeU56VXlXakE2TVFzd0NRWURWUVFHRXdKT1RERVJNQThHCi1BMVVFQ2d3SVVHOXNZWEpUVTB3eEdEQVdCZ05WQkFNTUQzZDNkeTVsZUdGdGNHeGxMbU52YlRDQm56QU5CZ2txCi1oa2lHOXcwQkFRRUZBQU9CalFBd2dZa0NnWUVBeHppU3hjUDBjQkFJYS9nVE5lenpBUnlLSlErVmdqWWVxaDZXCi1FbFVhclBoN2RUTUxjRmN6bk5tVjhVMU1SRGZJdnNTZ1ArUmtQTlB6eVFKRFBjTjhXNDU1cWdtRXJvSVROd3EvCi1oV205S2pWaWJMSCs1S3pnUXJKQmZIdmtuU2NVbXl3SGE0NURQVDlzZGpwR21oeHdEU1dkdkFqSFFQellBamRpCi0vMzNyL0MwQ0F3RUFBYU0yTURRd01nWURWUjBSQkNzd0tZSUxaWGhoYlhCc1pTNWpiMjJDQzJWNFlXMXdiR1V1Ci1ibVYwZ2cwcUxtVjRZVzF3YkdVdWIzSm5NQTBHQ1NxR1NJYjNEUUVCQ3dVQUE0SUJBUUNKYkZpenVySHo4MDR4Ci02TmJzdnNQUGdMY0VTcTBPY0dPRVhPQ09lOHNlWnFvbWhTWVRYdEhCenJGdFJwMi9nbXRPUnEyb2Fwb0REaXErCi1JK3hSTEpZc1VCdXQyTmRrWm1FSVJTVzRuNHNYSndxYjBmWFRUa2Q3RUFYQnZHTldiRVJhYjVTYmY4NG9xZDR0Ci15amp6MnUrSHZ4OGhaQ0hKRzJWOXFnM3phdzV6SlQxQWZBc01ialhxaThDZlU3VStGY29yK08zR2V1VVZncEpDCi1RQ1hiMlFqajNabXJDdkdaQTl4NTlYdG5FTjZtMk80cFdrbXFSL1o3TWxRclp6UTgwdmNRTWs5K3FvS0lyMkVKCi1SY0poQXRFK2RMVjE5SWxjY3dzRGxHeDVrVDVONXpTWUxLOW5BUlYxL0FqSzQ4YlV4R0gzNTNBMVkyTUNmeTBFCi1kWERSZUphMQotLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQpkaWZmIC0tZ2l0IGEvdGVzdHMvZGF0YV9maWxlcy9wYXJzZV9pbnB1dC9jZXJ0X2V4YW1wbGVfbXVsdGlfbm9jbi5jcnQgYi90ZXN0cy9kYXRhX2ZpbGVzL3BhcnNlX2lucHV0L2NlcnRfZXhhbXBsZV9tdWx0aV9ub2NuLmNydApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMTYzNDg0Ni4uMDAwMDAwMAotLS0gYS90ZXN0cy9kYXRhX2ZpbGVzL3BhcnNlX2lucHV0L2NlcnRfZXhhbXBsZV9tdWx0aV9ub2NuLmNydAorKysgL2Rldi9udWxsCkBAIC0xLDEzICswLDAgQEAKLS0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQotTUlJQi9UQ0NBV2FnQXdJQkFnSUpBUGZHZi9qcHFXUDVNQTBHQ1NxR1NJYjNEUUVCQlFVQU1BMHhDekFKQmdOVgotQkFZVEFrNU1NQjRYRFRFME1ERXlNakV3TURRek0xb1hEVEkwTURFeU1qRXdNRFF6TTFvd0RURUxNQWtHQTFVRQotQmhNQ1Rrd3dnWjh3RFFZSktvWklodmNOQVFFQkJRQURnWTBBTUlHSkFvR0JBTjBSaXArWnVyQm95aXJxTzJwdAotV1pmdFRzbFU1QTN1enFCOW9CNnE2QTdDdXhOQTI0b1Nqb2tUSktYRjlmclk5WkRYeU1yTHhmNlRIYS9hRWlOegotVW5sR0dycWdWeXQyRmpHenFLL25PSnNJaTJPWk9nb2w3a1hTR0ZpNnVaTWE3ZFJZbW1NYk4vejNGQWlmaFdWSgotODFreWJkSGc2RzNlVXUxbXRLa0wya0NWQWdNQkFBR2paVEJqTUFrR0ExVWRFd1FDTUFBd0N3WURWUjBQQkFRRAotQWdYZ01Fa0dBMVVkRVFSQ01FQ0NISGQzZHk1emFHOTBiMnRoYmkxaWNtRjFibk5qYUhkbGFXY3VaR1dDRkhkMwotZHk1dFlYTnphVzF2TFdGaVlYUmxMbVYxaHdUQXFBRUJod1RBcUVXUU1BMEdDU3FHU0liM0RRRUJCUVVBQTRHQgotQUJqeDF5dHJxQ3lGQzUvMGNqV25iTEs5dnN2TG55Mlppa0Rld2ZSeHFKNXpBeEdXTHFIT3IxU21VbXUyRHJ2QgotYmtUOWc1ejE5K2lNaFBuekp6MXg3UTJtN1dUSUpUdVVQSytoS1pKQVRETE5oWjg2aDVOa3c4azlZektjT3JQbQotRUlxc3k1NUNTZ0xVMG50bGpxU0J2U2I0aWZyRjFObklXZWoybFNmTjZyKzMKLS0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KZGlmZiAtLWdpdCBhL3Rlc3RzL2RhdGFfZmlsZXMvcGFyc2VfaW5wdXQvY2VydF9tZDUuY3J0IGIvdGVzdHMvZGF0YV9maWxlcy9wYXJzZV9pbnB1dC9jZXJ0X21kNS5jcnQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGU1MTRmZDYuLjAwMDAwMDAKLS0tIGEvdGVzdHMvZGF0YV9maWxlcy9wYXJzZV9pbnB1dC9jZXJ0X21kNS5jcnQKKysrIC9kZXYvbnVsbApAQCAtMSwyMCArMCwwIEBACi0tLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KLU1JSURQekNDQWllZ0F3SUJBZ0lCQmpBTkJna3Foa2lHOXcwQkFRUUZBREE3TVFzd0NRWURWUVFHRXdKT1RERVIKLU1BOEdBMVVFQ2d3SVVHOXNZWEpUVTB3eEdUQVhCZ05WQkFNTUVGQnZiR0Z5VTFOTUlGUmxjM1FnUTBFd0hoY04KLU1EQXdNVEF4TVRJeE1qRXlXaGNOTXpBd01UQXhNVEl4TWpFeVdqQThNUXN3Q1FZRFZRUUdFd0pPVERFUk1BOEcKLUExVUVDZ3dJVUc5c1lYSlRVMHd4R2pBWUJnTlZCQU1NRVZCdmJHRnlVMU5NSUVObGNuUWdUVVExTUlJQklqQU4KLUJna3Foa2lHOXcwQkFRRUZBQU9DQVE4QU1JSUJDZ0tDQVFFQXlIVEV6TG41dFhucFJka1VZTEI5dTVQeWF4NmYKLU02ME5qNG84Vm1YbDNFVFp6R2FGQjlYNEo3QktOZEJqbmdwdUc3ZmE4SDZyN2d3UWs0WkpHRFR6cUNyU1YvVXUKLTFDOTNLWVJoVFlKUWo2ZVZTSEQxYmsyeTFSUEQwaHJ0NWtQcVFoVHJkT3JBN1IvVVYwNnA4Nmp0MHVEQk1IRXcKLU1qRFYwL1lJMEZaUFJvN3lYL2s5WjVHSU1DNUNzdDk5KytVTWQvL3NNY0I0ajcvQ2Y4cXRiQ0hXamRtTGFvNXYKLTRKdjRFRmJNczQ0VEZlWTBCR2JIN3ZrMkRtcVY5Z21hQm1mMFpYSDR5cVN4SmVEK1BJczFCR2U2NEU5MmhmeC8KLS9EWnJ0ZW5OTFFOaVRyTTlBTSt2ZHFCcFZvTnEwcWpVNTFCeDVyVTJCWGNGYlh2STVNVDlUTlVoWHdJREFRQUIKLW8wMHdTekFKQmdOVkhSTUVBakFBTUIwR0ExVWREZ1FXQkJSeG9RQnpja0F2VkhaZU0veFNqN3p4M1d0R0lUQWYKLUJnTlZIU01FR0RBV2dCUzBXdVNsczk3U1V2YTUxYWFWRCtzK3ZNZjkvekFOQmdrcWhraUc5dzBCQVFRRkFBT0MKLUFRRUFGNFFjTXNoVnRWYllndnZVN2YybFdha3ViYkFJU00vaytGVy9mN3U2M20wTVNTb1NGZVlmbEJPQzFXZjQKLWltZ0RFbldjV1RINVY3c3hzTE5vZ3hmcGZUdUZVYUtmSGVRbVJoQUs0VWdxYkRFczRkWnZnbzN3Wi93OTJHMC8KLVFObnRKZWZucWFGaUlUWFpUbjZKOGh4ZW9FcTRRYnVjYldnZVk2ZlRBd1h0SXY0MEJ2TU9TYWtrdUlGQXlJdlYKLTkwVlkxajR2bngwL3h2NWxJQkF4YWgxSGR0WGhxdER1L3NVZmRDdFdYNVNDY1ZVd3dNM2daNFExWmRXUW1sdkYKLTczN1pHN1hhSU54c0RhSTA0c0p4YzdxdnVSWWhMZEN3VVBuWkw1VEdFUUo4ak5hLzM5ZUVibmt2czdoYlRVOTgKLTZxRzhVQVlzU0k3YU1lMWo3RFpwa29QTDl3PT0KLS0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KZGlmZiAtLWdpdCBhL3Rlc3RzL2RhdGFfZmlsZXMvcGFyc2VfaW5wdXQvY2VydF9zaGExLmNydCBiL3Rlc3RzL2RhdGFfZmlsZXMvcGFyc2VfaW5wdXQvY2VydF9zaGExLmNydApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMWUyMzU4NS4uMDAwMDAwMAotLS0gYS90ZXN0cy9kYXRhX2ZpbGVzL3BhcnNlX2lucHV0L2NlcnRfc2hhMS5jcnQKKysrIC9kZXYvbnVsbApAQCAtMSwyMCArMCwwIEBACi0tLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KLU1JSURRRENDQWlpZ0F3SUJBZ0lCQnpBTkJna3Foa2lHOXcwQkFRVUZBREE3TVFzd0NRWURWUVFHRXdKT1RERVIKLU1BOEdBMVVFQ2d3SVVHOXNZWEpUVTB3eEdUQVhCZ05WQkFNTUVGQnZiR0Z5VTFOTUlGUmxjM1FnUTBFd0hoY04KLU1Ua3dNakV3TVRRME5EQTJXaGNOTWprd01qRXdNVFEwTkRBMldqQTlNUXN3Q1FZRFZRUUdFd0pPVERFUk1BOEcKLUExVUVDZ3dJVUc5c1lYSlRVMHd4R3pBWkJnTlZCQU1NRWxCdmJHRnlVMU5NSUVObGNuUWdVMGhCTVRDQ0FTSXcKLURRWUpLb1pJaHZjTkFRRUJCUUFEZ2dFUEFEQ0NBUW9DZ2dFQkFLa0NIejFBYXRWVlU0djlOdTZDWlM0VllWNkoKLXY3am9SWkRiN29nV1V0UHhRMUJIbGhKWlpJZHIvU3ZnUnZsenZ0M1BrdUdSVysxbW9HK0pLWGxGZ05DRGF0VkIKLVEzZGZPWHdKQkVlQ3NGYzVjTzJqN0JVWkhxZ3pDRWZCQlVLcC9VekR0Ti9kQmg5TkVGRkFaM01URDBENGJZRWwKLVh3cXhVOFl3ZmhVNXJQbGE3bitTbnFZRlcrY1RsNFcxSTVMWjFDUUcxUWtsaVhVSDNhWWFqejhKR2I2dFpTeGsKLTY1V2IzUDVCWGhlbTJteGJhY3dDdWhRc0ZpU2NTdHpOMFBkU1ozUHhMYUFqL1g3ME1jb3RjTXFKQ3dUYkxxWlAKLWNHNmV6cjFZaWVKVFdaNXVXcEpsNG9nL0RKUVpvOTNsNkoyVkUrMHAyNnR3RXR4YXltc1hxMUtDVkxFQ0F3RUEKLUFhTk5NRXN3Q1FZRFZSMFRCQUl3QURBZEJnTlZIUTRFRmdRVUgzVFdQeW5CZEhSRk93VVNMRDJvdlVOWkFxWXcKLUh3WURWUjBqQkJnd0ZvQVV0RnJrcGJQZTBsTDJ1ZFdtbFEvclByekgvZjh3RFFZSktvWklodmNOQVFFRkJRQUQKLWdnRUJBRkFIdVdmak9wK0dhTTVkUDNOQmFVYXlYbWpicnNZNWZvL3lzZk9WVjl4aXB6YlBXdkUyQnU2NzlpVTEKLUVnKzVoTUU5VmxNbVFlakd6RzA5UmVYRSszMGd5aHRPM3ZXQThVMjFZcnNMM3lidlM2RVJFSEdLazIzOGJJQmgKLXlEUC9iMFZ1b05zUzN4Um45V3lIM1RSdTVyZTB2SzY4T1NrTElXUGQwMWZndmNmbDZZeVVZK1d1dVNycFljRHYKLW5yZ0t2Rlp3cy9FRTRSTmxkdFJDMUJsd3k0OTdBdG1XQlFXczY1emo1SmtOZE5ubTRKSnFYWkFBck5oMkdTWm8KLTgzQy8xWlNGck5vOUdPTnNDSjBHVkdFdDdJSzdGUHFYWVc3clhpMzBCUnNlMzN6aVU3UlBXR0RUMTNiaDlSZHoKLVJxc29aNWg1Vmp0SE9uTVVVRDk5Z0lXaW5CRT0KLS0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KZGlmZiAtLWdpdCBhL3Rlc3RzL2RhdGFfZmlsZXMvcGFyc2VfaW5wdXQvY2VydF9zaGEyMjQuY3J0IGIvdGVzdHMvZGF0YV9maWxlcy9wYXJzZV9pbnB1dC9jZXJ0X3NoYTIyNC5jcnQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGM4YTIwOWQuLjAwMDAwMDAKLS0tIGEvdGVzdHMvZGF0YV9maWxlcy9wYXJzZV9pbnB1dC9jZXJ0X3NoYTIyNC5jcnQKKysrIC9kZXYvbnVsbApAQCAtMSwyMCArMCwwIEBACi0tLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KLU1JSURRakNDQWlxZ0F3SUJBZ0lCQ0RBTkJna3Foa2lHOXcwQkFRNEZBREE3TVFzd0NRWURWUVFHRXdKT1RERVIKLU1BOEdBMVVFQ2d3SVVHOXNZWEpUVTB3eEdUQVhCZ05WQkFNTUVGQnZiR0Z5VTFOTUlGUmxjM1FnUTBFd0hoY04KLU1Ua3dNakV3TVRRME5EQTJXaGNOTWprd01qRXdNVFEwTkRBMldqQS9NUXN3Q1FZRFZRUUdFd0pPVERFUk1BOEcKLUExVUVDZ3dJVUc5c1lYSlRVMHd4SFRBYkJnTlZCQU1NRkZCdmJHRnlVMU5NSUVObGNuUWdVMGhCTWpJME1JSUIKLUlqQU5CZ2txaGtpRzl3MEJBUUVGQUFPQ0FROEFNSUlCQ2dLQ0FRRUFxUUlmUFVCcTFWVlRpLzAyN29KbExoVmgKLVhvbS91T2hGa052dWlCWlMwL0ZEVUVlV0VsbGtoMnY5SytCRytYTyszYytTNFpGYjdXYWdiNGtwZVVXQTBJTnEKLTFVRkRkMTg1ZkFrRVI0S3dWemx3N2FQc0ZSa2VxRE1JUjhFRlFxbjlUTU8wMzkwR0gwMFFVVUJuY3hNUFFQaHQKLWdTVmZDckZUeGpCK0ZUbXMrVnJ1ZjVLZXBnVmI1eE9YaGJVamt0blVKQWJWQ1NXSmRRZmRwaHFQUHdrWnZxMWwKLUxHVHJsWnZjL2tGZUY2YmFiRnRwekFLNkZDd1dKSnhLM00zUTkxSm5jL0V0b0NQOWZ2UXh5aTF3eW9rTEJOc3UKLXBrOXdicDdPdlZpSjRsTlpubTVha21YaWlEOE1sQm1qM2VYb25aVVQ3U25icTNBUzNGcktheGVyVW9KVXNRSUQKLUFRQUJvMDB3U3pBSkJnTlZIUk1FQWpBQU1CMEdBMVVkRGdRV0JCUWZkTlkvS2NGMGRFVTdCUklzUGFpOVExa0MKLXBqQWZCZ05WSFNNRUdEQVdnQlMwV3VTbHM5N1NVdmE1MWFhVkQrcyt2TWY5L3pBTkJna3Foa2lHOXcwQkFRNEYKLUFBT0NBUUVBVGRvN3A3ZG9rOGdjeFMwZFlHbHVYTU9zQUVBTHlIQWd2QUpTWlV0MHg4UnhlbUpmcHF1djRYRy8KLXJwcFFtdEE1YVBmNTlGbzB6NUdjUzB6ellGTFRRSWNMSEtudXVHMFc2eWpoeDNlKzVKMWhqTGJ2Ly8vdnZLR04KLWpxNTV6K0NBTmtyYWdNazZYUS90K2lYa2gvRnEwMEZTK3piZjFKTGFNWE9Mc3Q1ZGZ2M3VQUWFKSHd6WC9FYUUKLVZkb2duWHhXdWROUWdJdmVtaW5kazlUVFFvbjI3ekJTL3o2bndjQkNJWE1EZmVzQWpjSHVCQ2Z4bDZwb2ZLNkUKLTI4cXM0dXAvSmF5cHRHMkNYOThMR3NFeUFnZWd3VE1TWUdMSm9XY0hoclVjYkYwZk5PY1hQZ1FLR1RjWk80VGcKLXlQWUdia0c5RmpnYUFTYzJnVHJZVlBSWjZtWTE5Zz09Ci0tLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCmRpZmYgLS1naXQgYS90ZXN0cy9kYXRhX2ZpbGVzL3BhcnNlX2lucHV0L2NlcnRfc2hhMjU2LmNydCBiL3Rlc3RzL2RhdGFfZmlsZXMvcGFyc2VfaW5wdXQvY2VydF9zaGEyNTYuY3J0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlNTZkNDI4Li4wMDAwMDAwCi0tLSBhL3Rlc3RzL2RhdGFfZmlsZXMvcGFyc2VfaW5wdXQvY2VydF9zaGEyNTYuY3J0CisrKyAvZGV2L251bGwKQEAgLTEsMjAgKzAsMCBAQAotLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCi1NSUlEUWpDQ0FpcWdBd0lCQWdJQkNUQU5CZ2txaGtpRzl3MEJBUXNGQURBN01Rc3dDUVlEVlFRR0V3Sk9UREVSCi1NQThHQTFVRUNnd0lVRzlzWVhKVFUwd3hHVEFYQmdOVkJBTU1FRkJ2YkdGeVUxTk1JRlJsYzNRZ1EwRXdIaGNOCi1NVGt3TWpFd01UUTBOREEyV2hjTk1qa3dNakV3TVRRME5EQTJXakEvTVFzd0NRWURWUVFHRXdKT1RERVJNQThHCi1BMVVFQ2d3SVVHOXNZWEpUVTB3eEhUQWJCZ05WQkFNTUZGQnZiR0Z5VTFOTUlFTmxjblFnVTBoQk1qVTJNSUlCCi1JakFOQmdrcWhraUc5dzBCQVFFRkFBT0NBUThBTUlJQkNnS0NBUUVBcVFJZlBVQnExVlZUaS8wMjdvSmxMaFZoCi1Yb20vdU9oRmtOdnVpQlpTMC9GRFVFZVdFbGxraDJ2OUsrQkcrWE8rM2MrUzRaRmI3V2FnYjRrcGVVV0EwSU5xCi0xVUZEZDE4NWZBa0VSNEt3VnpsdzdhUHNGUmtlcURNSVI4RUZRcW45VE1PMDM5MEdIMDBRVVVCbmN4TVBRUGh0Ci1nU1ZmQ3JGVHhqQitGVG1zK1ZydWY1S2VwZ1ZiNXhPWGhiVWprdG5VSkFiVkNTV0pkUWZkcGhxUFB3a1p2cTFsCi1MR1RybFp2Yy9rRmVGNmJhYkZ0cHpBSzZGQ3dXSkp4SzNNM1E5MUpuYy9FdG9DUDlmdlF4eWkxd3lva0xCTnN1Ci1wazl3YnA3T3ZWaUo0bE5abm01YWttWGlpRDhNbEJtajNlWG9uWlVUN1NuYnEzQVMzRnJLYXhlclVvSlVzUUlECi1BUUFCbzAwd1N6QUpCZ05WSFJNRUFqQUFNQjBHQTFVZERnUVdCQlFmZE5ZL0tjRjBkRVU3QlJJc1BhaTlRMWtDCi1wakFmQmdOVkhTTUVHREFXZ0JTMFd1U2xzOTdTVXZhNTFhYVZEK3Mrdk1mOS96QU5CZ2txaGtpRzl3MEJBUXNGCi1BQU9DQVFFQXVvOGtSRGRRajMrcmdxYno3YlMzWmZCVkNxZ2JRZnJ1UlpuY1AwczNJUUo2ZzdrNkJOZkNUTytOCi10SWduQ0RobmhqSzlEUzRsMUxUa1FKS2ZjZDZzZnV3QnhqSEtXR1pVcVRxSFdGbS9PNU1Kd2ZNcHhJMzA1eFhFCi1ldkR6aDhMSzFXM21vWDVPY1Q0YngzUXNZOUk0bnFYUWtPempHaWR4aE9YWUEyditYNU9oUnQzSUoyZHptUVF1Ci1CVlhuRGJ6dWNoVWZQNWFlQ3dXNmw3VlgrUkpPRTJ6bHFPNXl0MGVqVDAyRTQ0cXRDNXNCZjI0VjlrbzVMT1J3Ci0xSjdaazM0UXdzS3JTUFNHeE91b1dOd0gzZkpwZ1pRSW1LZ0pJUUNza3NKK0E0NUNLNml6MGttOG9UaUkzSG9vCi0yTHBFNlVOeDJNOGppWldWekgxTDR0a2c0ZmNDb1E9PQotLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQpkaWZmIC0tZ2l0IGEvdGVzdHMvZGF0YV9maWxlcy9wYXJzZV9pbnB1dC9jZXJ0X3NoYTM4NC5jcnQgYi90ZXN0cy9kYXRhX2ZpbGVzL3BhcnNlX2lucHV0L2NlcnRfc2hhMzg0LmNydApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZjhlYzEwYi4uMDAwMDAwMAotLS0gYS90ZXN0cy9kYXRhX2ZpbGVzL3BhcnNlX2lucHV0L2NlcnRfc2hhMzg0LmNydAorKysgL2Rldi9udWxsCkBAIC0xLDIwICswLDAgQEAKLS0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQotTUlJRFFqQ0NBaXFnQXdJQkFnSUJDakFOQmdrcWhraUc5dzBCQVF3RkFEQTdNUXN3Q1FZRFZRUUdFd0pPVERFUgotTUE4R0ExVUVDZ3dJVUc5c1lYSlRVMHd4R1RBWEJnTlZCQU1NRUZCdmJHRnlVMU5NSUZSbGMzUWdRMEV3SGhjTgotTVRrd01qRXdNVFEwTkRBMldoY05Namt3TWpFd01UUTBOREEyV2pBL01Rc3dDUVlEVlFRR0V3Sk9UREVSTUE4RwotQTFVRUNnd0lVRzlzWVhKVFUwd3hIVEFiQmdOVkJBTU1GRkJ2YkdGeVUxTk1JRU5sY25RZ1UwaEJNemcwTUlJQgotSWpBTkJna3Foa2lHOXcwQkFRRUZBQU9DQVE4QU1JSUJDZ0tDQVFFQXFRSWZQVUJxMVZWVGkvMDI3b0psTGhWaAotWG9tL3VPaEZrTnZ1aUJaUzAvRkRVRWVXRWxsa2gydjlLK0JHK1hPKzNjK1M0WkZiN1dhZ2I0a3BlVVdBMElOcQotMVVGRGQxODVmQWtFUjRLd1Z6bHc3YVBzRlJrZXFETUlSOEVGUXFuOVRNTzAzOTBHSDAwUVVVQm5jeE1QUVBodAotZ1NWZkNyRlR4akIrRlRtcytWcnVmNUtlcGdWYjV4T1hoYlVqa3RuVUpBYlZDU1dKZFFmZHBocVBQd2tadnExbAotTEdUcmxadmMva0ZlRjZiYWJGdHB6QUs2RkN3V0pKeEszTTNROTFKbmMvRXRvQ1A5ZnZReHlpMXd5b2tMQk5zdQotcGs5d2JwN092VmlKNGxOWm5tNWFrbVhpaUQ4TWxCbWozZVhvblpVVDdTbmJxM0FTM0ZyS2F4ZXJVb0pVc1FJRAotQVFBQm8wMHdTekFKQmdOVkhSTUVBakFBTUIwR0ExVWREZ1FXQkJRZmROWS9LY0YwZEVVN0JSSXNQYWk5UTFrQwotcGpBZkJnTlZIU01FR0RBV2dCUzBXdVNsczk3U1V2YTUxYWFWRCtzK3ZNZjkvekFOQmdrcWhraUc5dzBCQVF3RgotQUFPQ0FRRUFleUhtK2VtbzQvUUhxRVZLai9NWVBPc1BycmNyNU11cE5FN1dtb1VBN1NpbFZVbGNlSXk4QXBXUgotTVVkd25oN1VQa0NhNksxeXZheWtuRWJIekQyTHY5QkxFZjVBMS9hK0YvTG1GWGlWMGtYSUZ1ZTEzdSt6N2xhVgotTi9zL2pwaFBWZ2pQd1ppQzFadE9vRDdXdlNrSUluQjUzajRRM1ZDSDZFcFp4WnVETy91OENHQlEwZys5RXFobgotVzMrNEdGbnhVUFllTjE3dS9vcHQxNm1FUHg2V0ZiUmw5aHM1d1V2TkQvRkNERUovOXVWTmlWWWxQWXlIS3p6cQotZTNXWENITFlVS0dFU1FYKzg1SXJubWx3YkFiMzNiTStzQU02bmFGYWZYVFpFaW1lRXBYM2lZckh6aG9VN2FSNwotcGlvandBRStZYjNBYytIdTFmWTRDUk80WkhMNlpnPT0KLS0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KZGlmZiAtLWdpdCBhL3Rlc3RzL2RhdGFfZmlsZXMvcGFyc2VfaW5wdXQvY2VydF9zaGE1MTIuY3J0IGIvdGVzdHMvZGF0YV9maWxlcy9wYXJzZV9pbnB1dC9jZXJ0X3NoYTUxMi5jcnQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGIyMjU0ZmEuLjAwMDAwMDAKLS0tIGEvdGVzdHMvZGF0YV9maWxlcy9wYXJzZV9pbnB1dC9jZXJ0X3NoYTUxMi5jcnQKKysrIC9kZXYvbnVsbApAQCAtMSwyMCArMCwwIEBACi0tLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KLU1JSURRakNDQWlxZ0F3SUJBZ0lCQ3pBTkJna3Foa2lHOXcwQkFRMEZBREE3TVFzd0NRWURWUVFHRXdKT1RERVIKLU1BOEdBMVVFQ2d3SVVHOXNZWEpUVTB3eEdUQVhCZ05WQkFNTUVGQnZiR0Z5VTFOTUlGUmxjM1FnUTBFd0hoY04KLU1Ua3dNakV3TVRRME5EQTJXaGNOTWprd01qRXdNVFEwTkRBMldqQS9NUXN3Q1FZRFZRUUdFd0pPVERFUk1BOEcKLUExVUVDZ3dJVUc5c1lYSlRVMHd4SFRBYkJnTlZCQU1NRkZCdmJHRnlVMU5NSUVObGNuUWdVMGhCTlRFeU1JSUIKLUlqQU5CZ2txaGtpRzl3MEJBUUVGQUFPQ0FROEFNSUlCQ2dLQ0FRRUFxUUlmUFVCcTFWVlRpLzAyN29KbExoVmgKLVhvbS91T2hGa052dWlCWlMwL0ZEVUVlV0VsbGtoMnY5SytCRytYTyszYytTNFpGYjdXYWdiNGtwZVVXQTBJTnEKLTFVRkRkMTg1ZkFrRVI0S3dWemx3N2FQc0ZSa2VxRE1JUjhFRlFxbjlUTU8wMzkwR0gwMFFVVUJuY3hNUFFQaHQKLWdTVmZDckZUeGpCK0ZUbXMrVnJ1ZjVLZXBnVmI1eE9YaGJVamt0blVKQWJWQ1NXSmRRZmRwaHFQUHdrWnZxMWwKLUxHVHJsWnZjL2tGZUY2YmFiRnRwekFLNkZDd1dKSnhLM00zUTkxSm5jL0V0b0NQOWZ2UXh5aTF3eW9rTEJOc3UKLXBrOXdicDdPdlZpSjRsTlpubTVha21YaWlEOE1sQm1qM2VYb25aVVQ3U25icTNBUzNGcktheGVyVW9KVXNRSUQKLUFRQUJvMDB3U3pBSkJnTlZIUk1FQWpBQU1CMEdBMVVkRGdRV0JCUWZkTlkvS2NGMGRFVTdCUklzUGFpOVExa0MKLXBqQWZCZ05WSFNNRUdEQVdnQlMwV3VTbHM5N1NVdmE1MWFhVkQrcyt2TWY5L3pBTkJna3Foa2lHOXcwQkFRMEYKLUFBT0NBUUVBQm51cTdnTVU2RVdxY21FY2oyL3dpcU9GVUJlSDlybzB0bmk5Slp6YURBS2tCTXdvZUozUlAvNTkKLXdZOTJVWkMvU29XUG0weUxLMjVLVHd4SmhkNjQ1YTVaZVJrK3lpMVNHK29YTmdaRlMwM0YxT3JhdDBiTTV1OTQKLVJ0ekxSSW5HelR4aGxWUzhIUFJ5YTIrbkVhUFQ5WU5PMjV2T1JjelBEanRySTgyVW55c2FXaUt4MU9DUGhkUDMKLVp5U0FrWC96RTFVOFRlMCs5NDhDMHZtZzJhVFdDU2s1enV0cnlGZ0hINVVvam1tV0FrQkhwWDN0SW04Sk1SRzkKLXR2cDZmYklEYW4wTG1Tc1ZLOHJxNU9QU3dBS01zbzZHRjRJdXhvdS9qUDJnSStOdXRlblgyNndyZmZTamxQaVcKLUtrc0xOajhvTDZ2SVVhcDI4T2grR3dwaDAyYmlTUT09Ci0tLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCmRpZmYgLS1naXQgYS90ZXN0cy9kYXRhX2ZpbGVzL3BhcnNlX2lucHV0L2NsaS1yc2Etc2hhMjU2LWJhZGFsZy5jcnQuZGVyIGIvdGVzdHMvZGF0YV9maWxlcy9wYXJzZV9pbnB1dC9jbGktcnNhLXNoYTI1Ni1iYWRhbGcuY3J0LmRlcgpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYzQwYmEyYS4uMDAwMDAwMAotLS0gYS90ZXN0cy9kYXRhX2ZpbGVzL3BhcnNlX2lucHV0L2NsaS1yc2Etc2hhMjU2LWJhZGFsZy5jcnQuZGVyCisrKyAvZGV2L251bGwKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvdGVzdHMvZGF0YV9maWxlcy9wYXJzZV9pbnB1dC9jcmwtZWMtc2hhMS5wZW0gYi90ZXN0cy9kYXRhX2ZpbGVzL3BhcnNlX2lucHV0L2NybC1lYy1zaGExLnBlbQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggODM1ODY0MC4uMDAwMDAwMAotLS0gYS90ZXN0cy9kYXRhX2ZpbGVzL3BhcnNlX2lucHV0L2NybC1lYy1zaGExLnBlbQorKysgL2Rldi9udWxsCkBAIC0xLDEwICswLDAgQEAKLS0tLS0tQkVHSU4gWDUwOSBDUkwtLS0tLQotTUlJQmJ6Q0I5Z0lCQVRBSkJnY3Foa2pPUFFRQk1ENHhDekFKQmdOVkJBWVRBazVNTVJFd0R3WURWUVFLRXdoUQotYjJ4aGNsTlRUREVjTUJvR0ExVUVBeE1UVUc5c1lYSnpjMndnVkdWemRDQkZReUJEUVJjTk1UTXdPVEkwTVRZegotTVRBNFdoY05Nak13T1RJeU1UWXpNVEE0V2pBVU1CSUNBUW9YRFRFek1Ea3lOREUyTWpnek9GcWdjakJ3TUc0RwotQTFVZEl3Um5NR1dBRkoxdElDUkpBVDhyeTNpMUdieCtKTW5iK3paOG9VS2tRREErTVFzd0NRWURWUVFHRXdKTwotVERFUk1BOEdBMVVFQ2hNSVVHOXNZWEpUVTB3eEhEQWFCZ05WQkFNVEUxQnZiR0Z5YzNOc0lGUmxjM1FnUlVNZwotUTBHQ0NRREJRK0orWWtQTTZEQUpCZ2NxaGtqT1BRUUJBMmtBTUdZQ01RRFZHOTVyclNTbDRkSmdiSjV2UjFHVwotc3ZFdUVzQWgzNUVoRjFXcmNhZE11Q2VNUVZYOWNVUHVwRmZRVXBIeU1mb0NNUUNLZjB5djhwTjlCQW9pM0ZWbQotNTZtZVdQaFVla2dMS0tNQW9idDJvSkpZNmZldWlGVTJZRkdzMWFGMHJWNkJqK1U9Ci0tLS0tLUVORCBYNTA5IENSTC0tLS0tCmRpZmYgLS1naXQgYS90ZXN0cy9kYXRhX2ZpbGVzL3BhcnNlX2lucHV0L2NybC1lYy1zaGEyMjQucGVtIGIvdGVzdHMvZGF0YV9maWxlcy9wYXJzZV9pbnB1dC9jcmwtZWMtc2hhMjI0LnBlbQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOTEzMWYxMC4uMDAwMDAwMAotLS0gYS90ZXN0cy9kYXRhX2ZpbGVzL3BhcnNlX2lucHV0L2NybC1lYy1zaGEyMjQucGVtCisrKyAvZGV2L251bGwKQEAgLTEsMTAgKzAsMCBAQAotLS0tLS1CRUdJTiBYNTA5IENSTC0tLS0tCi1NSUlCY0RDQjl3SUJBVEFLQmdncWhrak9QUVFEQVRBK01Rc3dDUVlEVlFRR0V3Sk9UREVSTUE4R0ExVUVDaE1JCi1VRzlzWVhKVFUwd3hIREFhQmdOVkJBTVRFMUJ2YkdGeWMzTnNJRlJsYzNRZ1JVTWdRMEVYRFRFek1Ea3lOREUyCi1NekV3T0ZvWERUSXpNRGt5TWpFMk16RXdPRm93RkRBU0FnRUtGdzB4TXpBNU1qUXhOakk0TXpoYW9ISXdjREJ1Ci1CZ05WSFNNRVp6QmxnQlNkYlNBa1NRRS9LOHQ0dFJtOGZpVEoyL3MyZktGQ3BFQXdQakVMTUFrR0ExVUVCaE1DCi1Ua3d4RVRBUEJnTlZCQW9UQ0ZCdmJHRnlVMU5NTVJ3d0dnWURWUVFERXhOUWIyeGhjbk56YkNCVVpYTjBJRVZECi1JRU5CZ2drQXdVUGlmbUpEek9nd0NnWUlLb1pJemowRUF3RURhQUF3WlFJd2JuK2kwZE9lc3QwSUpHenVxQkxBCi1WNW5zY1pQdkhqRFY2bFdzU3d1clM0TEMvVXYvcVd0ZXVNQ3AzT3FRUkpIY0FqRUE2S0EwZGlib3ZmTDFXS0ZvCi1DOGpVR3hsTWZIZVdEUmtxTWZjampnSXBreTd2NTBzS3RET2ZtRkpuM0hGVWJpS3AKLS0tLS0tRU5EIFg1MDkgQ1JMLS0tLS0KZGlmZiAtLWdpdCBhL3Rlc3RzL2RhdGFfZmlsZXMvcGFyc2VfaW5wdXQvY3JsLWVjLXNoYTI1Ni5wZW0gYi90ZXN0cy9kYXRhX2ZpbGVzL3BhcnNlX2lucHV0L2NybC1lYy1zaGEyNTYucGVtCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhZGZkNWY4Li4wMDAwMDAwCi0tLSBhL3Rlc3RzL2RhdGFfZmlsZXMvcGFyc2VfaW5wdXQvY3JsLWVjLXNoYTI1Ni5wZW0KKysrIC9kZXYvbnVsbApAQCAtMSwxMCArMCwwIEBACi0tLS0tLUJFR0lOIFg1MDkgQ1JMLS0tLS0KLU1JSUJjVENCOXdJQkFUQUtCZ2dxaGtqT1BRUURBakErTVFzd0NRWURWUVFHRXdKT1RERVJNQThHQTFVRUNoTUkKLVVHOXNZWEpUVTB3eEhEQWFCZ05WQkFNVEUxQnZiR0Z5YzNOc0lGUmxjM1FnUlVNZ1EwRVhEVEV6TURreU5ERTIKLU16RXdPRm9YRFRJek1Ea3lNakUyTXpFd09Gb3dGREFTQWdFS0Z3MHhNekE1TWpReE5qSTRNemhhb0hJd2NEQnUKLUJnTlZIU01FWnpCbGdCU2RiU0FrU1FFL0s4dDR0Um04ZmlUSjIvczJmS0ZDcEVBd1BqRUxNQWtHQTFVRUJoTUMKLVRrd3hFVEFQQmdOVkJBb1RDRkJ2YkdGeVUxTk1NUnd3R2dZRFZRUURFeE5RYjJ4aGNuTnpiQ0JVWlhOMElFVkQKLUlFTkJnZ2tBd1VQaWZtSkR6T2d3Q2dZSUtvWkl6ajBFQXdJRGFRQXdaZ0l4QUt1UTY4NHM3Z3lodHhLSnI2TG4KLVMyQlEwMmYxampQSHJaVmRYYVp2bTNDNXRHaTJjS2tvSzFhTWl5QzNMc1JDdUFJeEFJTWhqMFRtY3VJWnI1ZlgKLWc1UkJ5RDd6VW5aQnBvRUFkZ3hGeTRKUEoySVZpV09QZWtTR2g4Yi9KWTFWTlM2WmJ3PT0KLS0tLS0tRU5EIFg1MDkgQ1JMLS0tLS0KZGlmZiAtLWdpdCBhL3Rlc3RzL2RhdGFfZmlsZXMvcGFyc2VfaW5wdXQvY3JsLWVjLXNoYTM4NC5wZW0gYi90ZXN0cy9kYXRhX2ZpbGVzL3BhcnNlX2lucHV0L2NybC1lYy1zaGEzODQucGVtCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiNzU3YWJiLi4wMDAwMDAwCi0tLSBhL3Rlc3RzL2RhdGFfZmlsZXMvcGFyc2VfaW5wdXQvY3JsLWVjLXNoYTM4NC5wZW0KKysrIC9kZXYvbnVsbApAQCAtMSwxMCArMCwwIEBACi0tLS0tLUJFR0lOIFg1MDkgQ1JMLS0tLS0KLU1JSUJjRENCOXdJQkFUQUtCZ2dxaGtqT1BRUURBekErTVFzd0NRWURWUVFHRXdKT1RERVJNQThHQTFVRUNoTUkKLVVHOXNZWEpUVTB3eEhEQWFCZ05WQkFNVEUxQnZiR0Z5YzNOc0lGUmxjM1FnUlVNZ1EwRVhEVEV6TURreU5ERTIKLU16RXdPRm9YRFRJek1Ea3lNakUyTXpFd09Gb3dGREFTQWdFS0Z3MHhNekE1TWpReE5qSTRNemhhb0hJd2NEQnUKLUJnTlZIU01FWnpCbGdCU2RiU0FrU1FFL0s4dDR0Um04ZmlUSjIvczJmS0ZDcEVBd1BqRUxNQWtHQTFVRUJoTUMKLVRrd3hFVEFQQmdOVkJBb1RDRkJ2YkdGeVUxTk1NUnd3R2dZRFZRUURFeE5RYjJ4aGNuTnpiQ0JVWlhOMElFVkQKLUlFTkJnZ2tBd1VQaWZtSkR6T2d3Q2dZSUtvWkl6ajBFQXdNRGFBQXdaUUl3YXRlSmFEMTMrWWk0SFdCSWxPb3YKLThaRHN2bmZRZlcvUjBBMXMyWmNjQWkrYnl1clNodU5HaVN2c0ZTaDVkLzZRQWpFQTQyN0Y4Yk5rL2ZkajVZWHUKLU9vMXFFZDdXcEQyZE5VYjBkcmFHU0ljSkdCUkd6aTVpdDE0VVhyOWNSNFM1ZUo2UQotLS0tLS1FTkQgWDUwOSBDUkwtLS0tLQpkaWZmIC0tZ2l0IGEvdGVzdHMvZGF0YV9maWxlcy9wYXJzZV9pbnB1dC9jcmwtZWMtc2hhNTEyLnBlbSBiL3Rlc3RzL2RhdGFfZmlsZXMvcGFyc2VfaW5wdXQvY3JsLWVjLXNoYTUxMi5wZW0KZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGY3Yzk0MDIuLjAwMDAwMDAKLS0tIGEvdGVzdHMvZGF0YV9maWxlcy9wYXJzZV9pbnB1dC9jcmwtZWMtc2hhNTEyLnBlbQorKysgL2Rldi9udWxsCkBAIC0xLDEwICswLDAgQEAKLS0tLS0tQkVHSU4gWDUwOSBDUkwtLS0tLQotTUlJQmNUQ0I5d0lCQVRBS0JnZ3Foa2pPUFFRREJEQStNUXN3Q1FZRFZRUUdFd0pPVERFUk1BOEdBMVVFQ2hNSQotVUc5c1lYSlRVMHd4SERBYUJnTlZCQU1URTFCdmJHRnljM05zSUZSbGMzUWdSVU1nUTBFWERURXpNRGt5TkRFMgotTXpFd09Gb1hEVEl6TURreU1qRTJNekV3T0Zvd0ZEQVNBZ0VLRncweE16QTVNalF4TmpJNE16aGFvSEl3Y0RCdQotQmdOVkhTTUVaekJsZ0JTZGJTQWtTUUUvSzh0NHRSbThmaVRKMi9zMmZLRkNwRUF3UGpFTE1Ba0dBMVVFQmhNQwotVGt3eEVUQVBCZ05WQkFvVENGQnZiR0Z5VTFOTU1Sd3dHZ1lEVlFRREV4TlFiMnhoY25OemJDQlVaWE4wSUVWRAotSUVOQmdna0F3VVBpZm1KRHpPZ3dDZ1lJS29aSXpqMEVBd1FEYVFBd1pnSXhBTC9WRnJESVlVRUNzUzByVnBBeQotNnp0L0NxZUFaMXNhL2w1TFRhRzFYVzI4Nm4yS2liaXByNkVwa1laTllJUUlMZ0l4QUkwd2IzUHkxREhQV3BZZgotL0JGQkg3QzNLWXErbldUckxlRW5ocmpVMUx6Ry9DaVE4bG51c2t5YTZsdy9QM2xKL0E9PQotLS0tLS1FTkQgWDUwOSBDUkwtLS0tLQpkaWZmIC0tZ2l0IGEvdGVzdHMvZGF0YV9maWxlcy9wYXJzZV9pbnB1dC9jcmwtaWRwLnBlbSBiL3Rlc3RzL2RhdGFfZmlsZXMvcGFyc2VfaW5wdXQvY3JsLWlkcC5wZW0KZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGEyMjllN2QuLjAwMDAwMDAKLS0tIGEvdGVzdHMvZGF0YV9maWxlcy9wYXJzZV9pbnB1dC9jcmwtaWRwLnBlbQorKysgL2Rldi9udWxsCkBAIC0xLDEyICswLDAgQEAKLS0tLS0tQkVHSU4gWDUwOSBDUkwtLS0tLQotTUlJQnN6Q0JuQUlCQVRBTkJna3Foa2lHOXcwQkFRc0ZBREE3TVFzd0NRWURWUVFHRXdKT1RERVJNQThHQTFVRQotQ2hNSVVHOXNZWEpUVTB3eEdUQVhCZ05WQkFNVEVGQnZiR0Z5VTFOTUlGUmxjM1FnUTBFWERURTRNRE14TkRBMwotTXpFME9Gb1hEVEk0TURNeE5EQTNNekUwT0ZxZ0xUQXJNQ2tHQTFVZEhBRUIvd1FmTUIyZ0c2QVpoaGRvZEhSdwotT2k4dmNHdHBMbVY0WVcxd2JHVXVZMjl0THpBTkJna3Foa2lHOXcwQkFRc0ZBQU9DQVFFQXMvdnAxWWJxOUxqLwotWU0rTzJ1QnFoUk5kdDQ5NEdZU1ljWmNsdGJRRHdMZ0R3c0ZROVMrcTV6QnRhbmh4aUYzQzZkeURvV1M2eHlZMwotZGtkTzlrSzJZQVFMTmFGQkNzS1JySTl2R0t1RjUvMXVJcjBhOGNRY3FWenlSSTl1SzBLZ0dFazkvQVBHdHFvYgotbmovbnQycnlHQyt5RWgyMEZtdndGbjF2TjV4YVdLM3VVSUpDTkRUWmUrS1FuMTUwaUFVL21XWkcyeERkU1hnbQotSnRwVHJZNnRvQmdUd0RHeXVzMndJRHZBRjZyQmMxbFJvUjBCUHVUUjFmY1VQTXZyOGpjZVpxRyt4dUgrdm1rVQotajFCNFR1K0syN1ptWk1saGx0Zmd3THpjZ0g5RWUxVGdXUE4yUXFNemVaVy92Tk15SUl2V0FXazJjRnlDSmo2cgotMTYvOXVwTDY0dz09Ci0tLS0tLUVORCBYNTA5IENSTC0tLS0tCmRpZmYgLS1naXQgYS90ZXN0cy9kYXRhX2ZpbGVzL3BhcnNlX2lucHV0L2NybC1pZHBuYy5wZW0gYi90ZXN0cy9kYXRhX2ZpbGVzL3BhcnNlX2lucHV0L2NybC1pZHBuYy5wZW0KZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDBlYmU0ODAuLjAwMDAwMDAKLS0tIGEvdGVzdHMvZGF0YV9maWxlcy9wYXJzZV9pbnB1dC9jcmwtaWRwbmMucGVtCisrKyAvZGV2L251bGwKQEAgLTEsMTIgKzAsMCBAQAotLS0tLS1CRUdJTiBYNTA5IENSTC0tLS0tCi1NSUlCc0RDQm1RSUJBVEFOQmdrcWhraUc5dzBCQVFzRkFEQTdNUXN3Q1FZRFZRUUdFd0pPVERFUk1BOEdBMVVFCi1DaE1JVUc5c1lYSlRVMHd4R1RBWEJnTlZCQU1URUZCdmJHRnlVMU5NSUZSbGMzUWdRMEVYRFRFNE1ETXhOREV4Ci1NVFF6TmxvWERUSTRNRE14TkRFeE1UUXpObHFnS2pBb01DWUdBMVVkSEFRZk1CMmdHNkFaaGhkb2RIUndPaTh2Ci1jR3RwTG1WNFlXMXdiR1V1WTI5dEx6QU5CZ2txaGtpRzl3MEJBUXNGQUFPQ0FRRUFDc3N6c053QU1rbVVyYnRpCi1IMXdwV04zTEliMzJNVFprQldaZUZXV1ExTXl6U0ZzbGduT2N1NnRlc0p1VFFKVkpNR0NTWFp2N2prVkhlZWlLCi14K0JBb0hDclIyYVJWUGJtaWFQNDNRcC9kRk9PZkhWTU0vVlZXbXVFWXVDUWFDQWVWTFFnR2JnQVlIRTlhSFFOCi12Qmc4bTdOSjk1YXYyc3ZMSE1GSWhpclpsS1dzQVhNK2FDeXpvdWRFSWhyUDRQcHd0MDFTQ3REbDVneWcxR2tkCi1CM3d1T2NralRrMHh3WGRsT1NNSDlvMFNEMmZrYzQxQUZEcU9aVEsyTlRRek5DaERORmJLWGw4c3I5U2F2SkNtCi1rNzJsN3dOSnM2VU9FaFFNeWd5WEV2cXA4SmJJaTlKSSszVEQ0ejR3VXQwRW5Qa3cwVTQ4Z3JMWEZoandCTFdpCi1jeHlqUVE9PQotLS0tLS1FTkQgWDUwOSBDUkwtLS0tLQpkaWZmIC0tZ2l0IGEvdGVzdHMvZGF0YV9maWxlcy9wYXJzZV9pbnB1dC9jcmwtbWFsZm9ybWVkLXRyYWlsaW5nLXNwYWNlcy5wZW0gYi90ZXN0cy9kYXRhX2ZpbGVzL3BhcnNlX2lucHV0L2NybC1tYWxmb3JtZWQtdHJhaWxpbmctc3BhY2VzLnBlbQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOWVhZTNkYS4uMDAwMDAwMAotLS0gYS90ZXN0cy9kYXRhX2ZpbGVzL3BhcnNlX2lucHV0L2NybC1tYWxmb3JtZWQtdHJhaWxpbmctc3BhY2VzLnBlbQorKysgL2Rldi9udWxsCkBAIC0xLDIwICswLDAgQEAKLS0tLS0tQkVHSU4gWDUwOSBDUkwtLS0tLQotTUlJQmJ6Q0I5Z0lCQVRBSkJnY3Foa2pPUFFRQk1ENHhDekFKQmdOVkJBWVRBazVNTVJFd0R3WURWUVFLRXdoUQotYjJ4aGNsTlRUREVjTUJvR0ExVUVBeE1UVUc5c1lYSnpjMndnVkdWemRDQkZReUJEUVJjTk1UTXdPVEkwTVRZegotTVRBNFdoY05Nak13T1RJeU1UWXpNVEE0V2pBVU1CSUNBUW9YRFRFek1Ea3lOREUyTWpnek9GcWdjakJ3TUc0RwotQTFVZEl3Um5NR1dBRkoxdElDUkpBVDhyeTNpMUdieCtKTW5iK3paOG9VS2tRREErTVFzd0NRWURWUVFHRXdKTwotVERFUk1BOEdBMVVFQ2hNSVVHOXNZWEpUVTB3eEhEQWFCZ05WQkFNVEUxQnZiR0Z5YzNOc0lGUmxjM1FnUlVNZwotUTBHQ0NRREJRK0orWWtQTTZEQUpCZ2NxaGtqT1BRUUJBMmtBTUdZQ01RRFZHOTVyclNTbDRkSmdiSjV2UjFHVwotc3ZFdUVzQWgzNUVoRjFXcmNhZE11Q2VNUVZYOWNVUHVwRmZRVXBIeU1mb0NNUUNLZjB5djhwTjlCQW9pM0ZWbQotNTZtZVdQaFVla2dMS0tNQW9idDJvSkpZNmZldWlGVTJZRkdzMWFGMHJWNkJqK1U9Ci0tLS0tLUVORCBYNTA5IENSTC0tLS0tCi0tLS0tLUJFR0lOIFg1MDkgQ1JMLS0tLS0KLU1JSUJjVENCOXdJQkFUQUtCZ2dxaGtqT1BRUURCREErTVFzd0NRWURWUVFHRXdKT1RERVJNQThHQTFVRUNoTUkKLVVHOXNZWEpUVTB3eEhEQWFCZ05WQkFNVEUxQnZiR0Z5YzNOc0lGUmxjM1FnUlVNZ1EwRVhEVEV6TURreU5ERTIKLU16RXdPRm9YRFRJek1Ea3lNakUyTXpFd09Gb3dGREFTQWdFS0Z3MHhNekE1TWpReE5qSTRNemhhb0hJd2NEQnUKLUJnTlZIU01FWnpCbGdCU2RiU0FrU1FFL0s4dDR0Um04ZmlUSjIvczJmS0ZDcEVBd1BqRUxNQWtHQTFVRUJoTUMKLVRrd3hFVEFQQmdOVkJBb1RDRkJ2YkdGeVUxTk1NUnd3R2dZRFZRUURFeE5RYjJ4aGNuTnpiQ0JVWlhOMElFVkQKLUlFTkJnZ2tBd1VQaWZtSkR6T2d3Q2dZSUtvWkl6ajBFQXdRRGFRQXdaZ0l4QUwvVkZyRElZVUVDc1MwclZwQXkKLTZ6dC9DcWVBWjFzYS9sNUxUYUcxWFcyODZuMktpYmlwcjZFcGtZWk5ZSVFJTGdJeEFJMHdiM1B5MURIUFdwWWYKLS9CRkJIN0MzS1lxK25XVHJMZUVuaHJqVTFMekcvQ2lROGxudXNreWE2bHcvUDNsSi9BPT0KLS0tLS0tRU5EIFg1MDkgQ1JMLS0tLS0gICAgICAKZGlmZiAtLWdpdCBhL3Rlc3RzL2RhdGFfZmlsZXMvcGFyc2VfaW5wdXQvY3JsLXJzYS1wc3Mtc2hhMS5wZW0gYi90ZXN0cy9kYXRhX2ZpbGVzL3BhcnNlX2lucHV0L2NybC1yc2EtcHNzLXNoYTEucGVtCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1OWNhNGY3Li4wMDAwMDAwCi0tLSBhL3Rlc3RzL2RhdGFfZmlsZXMvcGFyc2VfaW5wdXQvY3JsLXJzYS1wc3Mtc2hhMS5wZW0KKysrIC9kZXYvbnVsbApAQCAtMSwxNCArMCwwIEBACi0tLS0tLUJFR0lOIFg1MDkgQ1JMLS0tLS0KLU1JSUNKRENDQVFZQ0FRRXdFd1lKS29aSWh2Y05BUUVLTUFhaUJBSUNBT293T3pFTE1Ba0dBMVVFQmhNQ1Rrd3gKLUVUQVBCZ05WQkFvVENGQnZiR0Z5VTFOTU1Sa3dGd1lEVlFRREV4QlFiMnhoY2xOVFRDQlVaWE4wSUVOQkZ3MHgKLU5EQXhNakF4TXpRMk16VmFGdzB5TkRBeE1UZ3hNelEyTXpWYU1DZ3dFZ0lCQ2hjTk1UTXdPVEkwTVRZeU9ETTQKLVdqQVNBZ0VXRncweE5EQXhNakF4TXpRek1EVmFvR2N3WlRCakJnTlZIU01FWERCYWdCUzBXdVNsczk3U1V2YTUKLTFhYVZEK3Mrdk1mOS82RS9wRDB3T3pFTE1Ba0dBMVVFQmhNQ1Rrd3hFVEFQQmdOVkJBb1RDRkJ2YkdGeVUxTk0KLU1Sa3dGd1lEVlFRREV4QlFiMnhoY2xOVFRDQlVaWE4wSUVOQmdnRUFNQk1HQ1NxR1NJYjNEUUVCQ2pBR29nUUMKLUFnRHFBNElCQVFCOFpCWDBCRWdSY3gwbGZrMWN0RUxSdTFBWW9KNUJuc21RcHEyM0NhNFlJUDJ5YjJrVE4xWlMKLTRmUjRTZ1ljTmN0Z28ySkppTmlVa0N1MVpuUlVPSlV5OFVsRWlvMCthZXVtVE56NkNiZUpFRGhyNU5DM29pVjAKLU16dkxuOXJKVkxQZXRPVDlVcnZ2SXk4aXo1UG4xZDhtdTVya3Q5QktRUnE5TlF4OHJpS25TSW9UYzkxTkxDTW8KLW1rQ0NCNTVEVmJhek9EU1dLMTllNnlRMEpTNDU0UmdsT3NxUnRMSi9FRGJpNmxDc0xYb3RGdDNHRUdNcm9iMU8KLTdRY2sxWjU5Ym9hSHhHWUZFVm54OTArNE0zL3Fpa1Z0d1pkY0JqTEVtZnV3WXZzekZ3OEoyeTZYd21nL0h0VWEKLXk2bGkwSnpXTkh0a0tVbEN2MitTRVNaYkQzTlU4R1FaCi0tLS0tLUVORCBYNTA5IENSTC0tLS0tCmRpZmYgLS1naXQgYS90ZXN0cy9kYXRhX2ZpbGVzL3BhcnNlX2lucHV0L2NybC1yc2EtcHNzLXNoYTIyNC5wZW0gYi90ZXN0cy9kYXRhX2ZpbGVzL3BhcnNlX2lucHV0L2NybC1yc2EtcHNzLXNoYTIyNC5wZW0KZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGE1MWQ1ZDkuLjAwMDAwMDAKLS0tIGEvdGVzdHMvZGF0YV9maWxlcy9wYXJzZV9pbnB1dC9jcmwtcnNhLXBzcy1zaGEyMjQucGVtCisrKyAvZGV2L251bGwKQEAgLTEsMTYgKzAsMCBAQAotLS0tLS1CRUdJTiBYNTA5IENSTC0tLS0tCi1NSUlDZWpDQ0FURUNBUUV3UGdZSktvWklodmNOQVFFS01ER2dEVEFMQmdsZ2hrZ0JaUU1FQWdTaEdqQVlCZ2txCi1oa2lHOXcwQkFRZ3dDd1lKWUlaSUFXVURCQUlFb2dRQ0FnRGlNRHN4Q3pBSkJnTlZCQVlUQWs1TU1SRXdEd1lECi1WUVFLRXdoUWIyeGhjbE5UVERFWk1CY0dBMVVFQXhNUVVHOXNZWEpUVTB3Z1ZHVnpkQ0JEUVJjTk1UUXdNVEl3Ci1NVE0xTmpBMldoY05NalF3TVRFNE1UTTFOakEyV2pBb01CSUNBUW9YRFRFek1Ea3lOREUyTWpnek9Gb3dFZ0lCCi1GaGNOTVRRd01USXdNVE0wTXpBMVdxQm5NR1V3WXdZRFZSMGpCRnd3V29BVXRGcmtwYlBlMGxMMnVkV21sUS9yCi1QcnpIL2YraFA2UTlNRHN4Q3pBSkJnTlZCQVlUQWs1TU1SRXdEd1lEVlFRS0V3aFFiMnhoY2xOVFRERVpNQmNHCi1BMVVFQXhNUVVHOXNZWEpUVTB3Z1ZHVnpkQ0JEUVlJQkFEQStCZ2txaGtpRzl3MEJBUW93TWFBTk1Bc0dDV0NHCi1TQUZsQXdRQ0JLRWFNQmdHQ1NxR1NJYjNEUUVCQ0RBTEJnbGdoa2dCWlFNRUFnU2lCQUlDQU9JRGdnRUJBRUpJCi1pOXNRT3pNdnZPVGtzTjQ4K1gra2svd2tMTUtSR0kyMjJscVU2eTZ0UDFMWDNPRS8rS044Z1BYUitsQ0MrZTB2Ci1Uc1JUSmtwS0VjbUhab1AvOGtPdFpuTGI5UGRJVEtHTVFuWitkbW41TUZFelpJL3p5cllXdUpUdUsxUTgzdzBlCi1NYzg4Y0FodThpNFBUay9XbnNXRHBoSzFRMllSdXBtbXdXU1VwcDFaMnJwUitZU0NlZEMwMVRWcnRTVUpVQnc5Ci1OU3FLRGh5V1lKSWJTNi9iRmFFUnN3Qzh4bE1SaHlMSFV2aWtqbUFLMzZUYklkaFRuRWZmSE9QVzc1c0VPRUVCCi1mMEEzVnRsWjd5NXl0Mi9hNnZPYXVKQ2l2eEt0L1B1dGRIZkJxSDQzUVFtb1ZMV0MyRm1UOUFEVEp3Y3NaQjNECi1hNkpTcUNJTVJDUVkySk9VbjBBPQotLS0tLS1FTkQgWDUwOSBDUkwtLS0tLQpkaWZmIC0tZ2l0IGEvdGVzdHMvZGF0YV9maWxlcy9wYXJzZV9pbnB1dC9jcmwtcnNhLXBzcy1zaGEyNTYucGVtIGIvdGVzdHMvZGF0YV9maWxlcy9wYXJzZV9pbnB1dC9jcmwtcnNhLXBzcy1zaGEyNTYucGVtCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmMTZhNDkxLi4wMDAwMDAwCi0tLSBhL3Rlc3RzL2RhdGFfZmlsZXMvcGFyc2VfaW5wdXQvY3JsLXJzYS1wc3Mtc2hhMjU2LnBlbQorKysgL2Rldi9udWxsCkBAIC0xLDE2ICswLDAgQEAKLS0tLS0tQkVHSU4gWDUwOSBDUkwtLS0tLQotTUlJQ2VqQ0NBVEVDQVFFd1BnWUpLb1pJaHZjTkFRRUtNREdnRFRBTEJnbGdoa2dCWlFNRUFnR2hHakFZQmdrcQotaGtpRzl3MEJBUWd3Q3dZSllJWklBV1VEQkFJQm9nUUNBZ0RlTURzeEN6QUpCZ05WQkFZVEFrNU1NUkV3RHdZRAotVlFRS0V3aFFiMnhoY2xOVFRERVpNQmNHQTFVRUF4TVFVRzlzWVhKVFUwd2dWR1Z6ZENCRFFSY05NVFF3TVRJdwotTVRNMU5qRTJXaGNOTWpRd01URTRNVE0xTmpFMldqQW9NQklDQVFvWERURXpNRGt5TkRFMk1qZ3pPRm93RWdJQgotRmhjTk1UUXdNVEl3TVRNME16QTFXcUJuTUdVd1l3WURWUjBqQkZ3d1dvQVV0RnJrcGJQZTBsTDJ1ZFdtbFEvcgotUHJ6SC9mK2hQNlE5TURzeEN6QUpCZ05WQkFZVEFrNU1NUkV3RHdZRFZRUUtFd2hRYjJ4aGNsTlRUREVaTUJjRwotQTFVRUF4TVFVRzlzWVhKVFUwd2dWR1Z6ZENCRFFZSUJBREErQmdrcWhraUc5dzBCQVFvd01hQU5NQXNHQ1dDRwotU0FGbEF3UUNBYUVhTUJnR0NTcUdTSWIzRFFFQkNEQUxCZ2xnaGtnQlpRTUVBZ0dpQkFJQ0FONERnZ0VCQUVaNAotb3FwOWk1ZVhyTjZhQ1NUYVUxajA3TVZURlcvVTFqUUFxNkdzZUI2YkV2b0VYRk1VSEpzZ0FPYnFDSzlmbGZFQwotRkVxWHFXU28zM2hoUFU3QUtLdHRiRExqVVlSTm5RQVBSVW5SSWwxL2ExK1VqcWdLY2hXV0Q5aXR5ZVc4SUN4bwotSWRBVFg5cmVZbVBETElNcVRDN3p1ZmxZa3ZydmRFT3VCT1JRUDVtbjRqOHQ4NE1TUUYvcDRxemFVMFh4TG80WAotY2t6WkNjSHBhNDVBQXBDRGpKTWQ5b25oRlZDWXN5a2lZckY5TlFGTzhUSTRsUTVqdjc5R291ZkV6dmhZMVNQQgotcjF4ejRzTXBmeWFvUGFhM1NNMi9uRDY1RTVqelhlbGwydTJWV05HS3Y0ekFRUDBFNXlHZWwrMXJrbEJsdGFkYgotWExkSnl5YWszM0NMQkt1K25KYz0KLS0tLS0tRU5EIFg1MDkgQ1JMLS0tLS0KZGlmZiAtLWdpdCBhL3Rlc3RzL2RhdGFfZmlsZXMvcGFyc2VfaW5wdXQvY3JsLXJzYS1wc3Mtc2hhMzg0LnBlbSBiL3Rlc3RzL2RhdGFfZmlsZXMvcGFyc2VfaW5wdXQvY3JsLXJzYS1wc3Mtc2hhMzg0LnBlbQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNTBmN2U0Yy4uMDAwMDAwMAotLS0gYS90ZXN0cy9kYXRhX2ZpbGVzL3BhcnNlX2lucHV0L2NybC1yc2EtcHNzLXNoYTM4NC5wZW0KKysrIC9kZXYvbnVsbApAQCAtMSwxNiArMCwwIEBACi0tLS0tLUJFR0lOIFg1MDkgQ1JMLS0tLS0KLU1JSUNlakNDQVRFQ0FRRXdQZ1lKS29aSWh2Y05BUUVLTURHZ0RUQUxCZ2xnaGtnQlpRTUVBZ0toR2pBWUJna3EKLWhraUc5dzBCQVFnd0N3WUpZSVpJQVdVREJBSUNvZ1FDQWdET01Ec3hDekFKQmdOVkJBWVRBazVNTVJFd0R3WUQKLVZRUUtFd2hRYjJ4aGNsTlRUREVaTUJjR0ExVUVBeE1RVUc5c1lYSlRVMHdnVkdWemRDQkRRUmNOTVRRd01USXcKLU1UTTFOakk0V2hjTk1qUXdNVEU0TVRNMU5qSTRXakFvTUJJQ0FRb1hEVEV6TURreU5ERTJNamd6T0Zvd0VnSUIKLUZoY05NVFF3TVRJd01UTTBNekExV3FCbk1HVXdZd1lEVlIwakJGd3dXb0FVdEZya3BiUGUwbEwydWRXbWxRL3IKLVByekgvZitoUDZROU1Ec3hDekFKQmdOVkJBWVRBazVNTVJFd0R3WURWUVFLRXdoUWIyeGhjbE5UVERFWk1CY0cKLUExVUVBeE1RVUc5c1lYSlRVMHdnVkdWemRDQkRRWUlCQURBK0Jna3Foa2lHOXcwQkFRb3dNYUFOTUFzR0NXQ0cKLVNBRmxBd1FDQXFFYU1CZ0dDU3FHU0liM0RRRUJDREFMQmdsZ2hrZ0JaUU1FQWdLaUJBSUNBTTREZ2dFQkFBY28KLVNudFVHRExCT0F1MElJWmFWZWE1TnQxTk1zTWNwcEMwaFdQdUgxTEtBd3lVT0RCcXBUKzArQXVBTEswZUlkWVIKLWE3bUFCK2N2MmZGd213eG5RV0oxRnZ4NGZ0L04yQUFmQjgzVlJLcFNvM3hSOGJ4bG9IZlRXS215eEpIbUg5ajEKLUVZbUxTODZyajNOaGpmNG0vWWxRUTNJbTVId09nU2dCT0U4Z2xxNUQrMFdtc2k5THNORVpYRXpNdzdUTVVnYnMKLXk5by9naFlGL3NoS1U0bWV3SzNEZU05Z1FpVGNINUE0SVNYUjg3aEJRMDhBS0pSQUcxQ0x2VHl6cVdpVVVZK2sKLXE4aVpEWUYxN3NIclBpMnluOHE5YzR6ZHhpYVdER0RkTDBMaDkwd1hHVEFhZ2VvR0VxMjVUTXVMNUZwWCt1MXUKLUtVSC94ZjFqRW5OemJZTkdpWnc9Ci0tLS0tLUVORCBYNTA5IENSTC0tLS0tCmRpZmYgLS1naXQgYS90ZXN0cy9kYXRhX2ZpbGVzL3BhcnNlX2lucHV0L2NybC1yc2EtcHNzLXNoYTUxMi5wZW0gYi90ZXN0cy9kYXRhX2ZpbGVzL3BhcnNlX2lucHV0L2NybC1yc2EtcHNzLXNoYTUxMi5wZW0KZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDBmMWQ2NTEuLjAwMDAwMDAKLS0tIGEvdGVzdHMvZGF0YV9maWxlcy9wYXJzZV9pbnB1dC9jcmwtcnNhLXBzcy1zaGE1MTIucGVtCisrKyAvZGV2L251bGwKQEAgLTEsMTYgKzAsMCBAQAotLS0tLS1CRUdJTiBYNTA5IENSTC0tLS0tCi1NSUlDZWpDQ0FURUNBUUV3UGdZSktvWklodmNOQVFFS01ER2dEVEFMQmdsZ2hrZ0JaUU1FQWdPaEdqQVlCZ2txCi1oa2lHOXcwQkFRZ3dDd1lKWUlaSUFXVURCQUlEb2dRQ0FnQytNRHN4Q3pBSkJnTlZCQVlUQWs1TU1SRXdEd1lECi1WUVFLRXdoUWIyeGhjbE5UVERFWk1CY0dBMVVFQXhNUVVHOXNZWEpUVTB3Z1ZHVnpkQ0JEUVJjTk1UUXdNVEl3Ci1NVE0xTmpNNFdoY05NalF3TVRFNE1UTTFOak00V2pBb01CSUNBUW9YRFRFek1Ea3lOREUyTWpnek9Gb3dFZ0lCCi1GaGNOTVRRd01USXdNVE0wTXpBMVdxQm5NR1V3WXdZRFZSMGpCRnd3V29BVXRGcmtwYlBlMGxMMnVkV21sUS9yCi1QcnpIL2YraFA2UTlNRHN4Q3pBSkJnTlZCQVlUQWs1TU1SRXdEd1lEVlFRS0V3aFFiMnhoY2xOVFRERVpNQmNHCi1BMVVFQXhNUVVHOXNZWEpUVTB3Z1ZHVnpkQ0JEUVlJQkFEQStCZ2txaGtpRzl3MEJBUW93TWFBTk1Bc0dDV0NHCi1TQUZsQXdRQ0E2RWFNQmdHQ1NxR1NJYjNEUUVCQ0RBTEJnbGdoa2dCWlFNRUFnT2lCQUlDQUw0RGdnRUJBQjlGCi15d0JmeE9qZXR4TmJDRmhPWW9QWTJqdkZDRlZkbG93TUd1eEVoWC9Ma3RxaUJYcVJjMnI1bmFRU3p1SHFPOElxCi0xekFDdGlETHJpMEN2Z1NIbHJhdkJOZVk0YzJ3ai8vdWVGRTg5dFk1cEs5RTZ2WnA3Y1YrUmZNeDJZZkdQQUEyCi10N3RXWjJySld6RUxnOGNaOGhwalN3Rkg3Sm1nSnpqRTVnaTJnQURoQllPNlZ2NVMzU09ncU5qaU4xT00zMUFVCi1wNkdISzVZMWp1ckY1Wnd6cyt3M3dYb1hncE94eHdFQzRlaVM4NmM5a05TdWR3VEx2RFRVMGJZRVFFMWNGK0swCi1zQjhRV0FCRkpmdU81a2pEMnczcldnbUFpT0tzWm94ZDF4cmRhK1dEM0poRFhub1ZxM29WQklWbFdWejZZSUQ4Ci1lbk1mTXZ3U2NBNUFJbXp1OXhBPQotLS0tLS1FTkQgWDUwOSBDUkwtLS0tLQpkaWZmIC0tZ2l0IGEvdGVzdHMvZGF0YV9maWxlcy9wYXJzZV9pbnB1dC9jcmxfZXhwaXJlZC5wZW0gYi90ZXN0cy9kYXRhX2ZpbGVzL3BhcnNlX2lucHV0L2NybF9leHBpcmVkLnBlbQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggY2Y2MGFlNC4uMDAwMDAwMAotLS0gYS90ZXN0cy9kYXRhX2ZpbGVzL3BhcnNlX2lucHV0L2NybF9leHBpcmVkLnBlbQorKysgL2Rldi9udWxsCkBAIC0xLDExICswLDAgQEAKLS0tLS0tQkVHSU4gWDUwOSBDUkwtLS0tLQotTUlJQnF6Q0JsREFOQmdrcWhraUc5dzBCQVFVRkFEQTdNUXN3Q1FZRFZRUUdFd0pPVERFUk1BOEdBMVVFQ2hNSQotVUc5c1lYSlRVMHd4R1RBWEJnTlZCQU1URUZCdmJHRnlVMU5NSUZSbGMzUWdRMEVYRFRFeE1ESXlNREV3TWpReAotT1ZvWERURXhNREl5TURFeE1qUXhPVm93S0RBU0FnRUJGdzB4TVRBeU1USXhORFEwTURkYU1CSUNBUU1YRFRFeAotTURJeE1qRTBORFF3TjFvd0RRWUpLb1pJaHZjTkFRRUZCUUFEZ2dFQkFLZ1AxWG1DSVBiZlkxL1VPK1NWRlFpcgotakFyWjk0UW5RZG9hbjR0SjI5ZDhEbVR4Sit6OS9LeVdOb0dlT3djOVAvMkdRUWFaYWhRT0JyMGY2bFlkNjdDdAotd0ZWaC9RMnpGOEZnUmNyUVY3dS92Sk0zM1EyeUVzUWtNR2xNN3JFNWxDOTcydlVLV3UvTktxOGJOOVcvdFd4WgotU0ZidlRYcHYwMjRhSTBJUnVkcE9DQUxuSXk4U0ZoVmIyLzUySU4ydVI2cXJGaXpEZXhNRWRTY2tncEh1SnpHUwotSWlBTmhJTW41TGRRWUpGalBnQnpRVTEydERkZ3pjcHh0R2hUMTB5NHVRcmUrVWJTancraVZ5bWwzaXNzdzU5awotT1Nta1dGYjA2TGFtUkMyMTVKQU1vazNZUU81Um54Q1I4RWpxUGNKcis3K085YTFPMSsreWlhaXRnNGJVakVBPQotLS0tLS1FTkQgWDUwOSBDUkwtLS0tLQpkaWZmIC0tZ2l0IGEvdGVzdHMvZGF0YV9maWxlcy9wYXJzZV9pbnB1dC9jcmxfbWQ1LnBlbSBiL3Rlc3RzL2RhdGFfZmlsZXMvcGFyc2VfaW5wdXQvY3JsX21kNS5wZW0KZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDFiMTc5NjcuLjAwMDAwMDAKLS0tIGEvdGVzdHMvZGF0YV9maWxlcy9wYXJzZV9pbnB1dC9jcmxfbWQ1LnBlbQorKysgL2Rldi9udWxsCkBAIC0xLDExICswLDAgQEAKLS0tLS0tQkVHSU4gWDUwOSBDUkwtLS0tLQotTUlJQnF6Q0JsREFOQmdrcWhraUc5dzBCQVFRRkFEQTdNUXN3Q1FZRFZRUUdFd0pPVERFUk1BOEdBMVVFQ2hNSQotVUc5c1lYSlRVMHd4R1RBWEJnTlZCQU1URUZCdmJHRnlVMU5NSUZSbGMzUWdRMEVYRFRFeE1ESXhNakUwTkRRdwotTjFvWERURXhNRFF4TXpFME5EUXdOMW93S0RBU0FnRUJGdzB4TVRBeU1USXhORFEwTURkYU1CSUNBUU1YRFRFeAotTURJeE1qRTBORFF3TjFvd0RRWUpLb1pJaHZjTkFRRUVCUUFEZ2dFQkFLS0NKWjFNd0wrZ0tBdzNSVjRxRW1iOQotZ01EZFNMSjFWZGtuOUZnRHgyaWpObllEdHZhVytJM3NPWHJxN082Z1ZOMUtFYW1KSmJ1ZlZKQTUrT0Uyb1ZiQwotaHVzRWRnUW04RDVUYnJHY2pQSVBXeGdZeXV1UnNsN1hvdlpoWG5xVElVckMrSjhvSDlYekthTWMrSFpiNVVoUgotaDhiemN5cCs5amJCamU3bFd3S1R6a3V2ZC9JN1ZiUzAyVFVrV0ZKVHJZQjBMYWo4V01jZ2NaaXlYMGladWo4agotNGhPdXB1MGxQb1N6WjRoN3QwVm1heTZ3Tys4bjhMSm9oeWl3WVM3TGRkcE9qSWRQME1XaWZON3UvQXJxTk5saAotMmtnOGVBYzFwWU9VL3BKRlRBQWJPbUMva1FwYTlza2QrUFBJUFBoOVQ1M28zeWVEUUEwdkZxTjkySnJ5Q0NVPQotLS0tLS1FTkQgWDUwOSBDUkwtLS0tLQpkaWZmIC0tZ2l0IGEvdGVzdHMvZGF0YV9maWxlcy9wYXJzZV9pbnB1dC9jcmxfc2hhMS5wZW0gYi90ZXN0cy9kYXRhX2ZpbGVzL3BhcnNlX2lucHV0L2NybF9zaGExLnBlbQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDQ5YmViZi4uMDAwMDAwMAotLS0gYS90ZXN0cy9kYXRhX2ZpbGVzL3BhcnNlX2lucHV0L2NybF9zaGExLnBlbQorKysgL2Rldi9udWxsCkBAIC0xLDExICswLDAgQEAKLS0tLS0tQkVHSU4gWDUwOSBDUkwtLS0tLQotTUlJQnF6Q0JsREFOQmdrcWhraUc5dzBCQVFVRkFEQTdNUXN3Q1FZRFZRUUdFd0pPVERFUk1BOEdBMVVFQ2hNSQotVUc5c1lYSlRVMHd4R1RBWEJnTlZCQU1URUZCdmJHRnlVMU5NSUZSbGMzUWdRMEVYRFRFeE1ESXhNakUwTkRRdwotTjFvWERURXhNRFF4TXpFME5EUXdOMW93S0RBU0FnRUJGdzB4TVRBeU1USXhORFEwTURkYU1CSUNBUU1YRFRFeAotTURJeE1qRTBORFF3TjFvd0RRWUpLb1pJaHZjTkFRRUZCUUFEZ2dFQkFHNjRqcW43Vkxkdm5LUk9zYkNQUjh3OQoteG5veDl2anVNMmxHV2VtYTlzVHVwdHc5RWhBclZTYmliWFoxSVBQeXJFeTFRT3EzTnVrQnFVVzNLek96WVY1TQotQnhaU2EyOEZUUXh0VkNoV2tEVUlNQ0s4QlN4eTA3eWllRmYvM0E4bWJmY1czWnpONGFrTHhPd2V1RnA2bDJINwotOW9hMmplVWkxQmxIQ1pTNkpZSTJwSFpsOHFpTVJpcXFNbGVTTTJrMXc3VHJhS0xOQkZNOFVLNzJiclhlWmpQaQotbk5PemRZc1FEeldvMUhXN2RzTFdMZlpLb0pleXF2b2ZWRFFwQzVkTzU2a3R5L2RvODl6MU9uRVhmek1OZVZWVAotSkNlQU96dXU2a2RyZis5a2VSb1doY0lvQm9zL1h0VFY1N3UwcGdyODFiTGdqajVQWWl2ZXZLTC9rS2J5dktJPQotLS0tLS1FTkQgWDUwOSBDUkwtLS0tLQpkaWZmIC0tZ2l0IGEvdGVzdHMvZGF0YV9maWxlcy9wYXJzZV9pbnB1dC9jcmxfc2hhMjI0LnBlbSBiL3Rlc3RzL2RhdGFfZmlsZXMvcGFyc2VfaW5wdXQvY3JsX3NoYTIyNC5wZW0KZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDA2NmY1YmUuLjAwMDAwMDAKLS0tIGEvdGVzdHMvZGF0YV9maWxlcy9wYXJzZV9pbnB1dC9jcmxfc2hhMjI0LnBlbQorKysgL2Rldi9udWxsCkBAIC0xLDExICswLDAgQEAKLS0tLS0tQkVHSU4gWDUwOSBDUkwtLS0tLQotTUlJQnF6Q0JsREFOQmdrcWhraUc5dzBCQVE0RkFEQTdNUXN3Q1FZRFZRUUdFd0pPVERFUk1BOEdBMVVFQ2hNSQotVUc5c1lYSlRVMHd4R1RBWEJnTlZCQU1URUZCdmJHRnlVMU5NSUZSbGMzUWdRMEVYRFRFeE1ESXhNakUwTkRRdwotTjFvWERURXhNRFF4TXpFME5EUXdOMW93S0RBU0FnRUJGdzB4TVRBeU1USXhORFEwTURkYU1CSUNBUU1YRFRFeAotTURJeE1qRTBORFF3TjFvd0RRWUpLb1pJaHZjTkFRRU9CUUFEZ2dFQkFMMnNJbHkyT3dnQnU5VWZFSW1kdVRHLwotUnRHRU84UmtYYkNSSlBMWmFWR1FoOWI4ckNSVkhMOXRJV20zNzJGVmtLeVlFbTNtSXJsMnJ5MTZSem5SdDV5eAotRGQ4L0RLVUdVbEllMUt3empEYzlPN2J2MUZEU1hIZDFVU21HVGhlS0RITnR1SlhZRU5NSGRveVIyazJCVkdPWgotaWU0elVjU3BxeU1qQmxVamdObVhONmdRSWNyUkltdW1WVWpNazc0K3JXVGEwaFEwcGlGMnFsUnVFMWREcWNaUAotTGtFLzkycmJuRmVSQU85MVhVZUVqMTNkaWYyVWpsQXJGV2Q2MkFGcDB3dEluMnNiN3dhaGhVajkvckVzNldneAota2RpTnNSTXRvNi9peExyUHUzdnhzODBaUFdIZXk1ODdUMVpaOWJTL3dEa3A5VytXMHJHeVJvUFZtcWlLdHZNPQotLS0tLS1FTkQgWDUwOSBDUkwtLS0tLQpkaWZmIC0tZ2l0IGEvdGVzdHMvZGF0YV9maWxlcy9wYXJzZV9pbnB1dC9jcmxfc2hhMjU2LnBlbSBiL3Rlc3RzL2RhdGFfZmlsZXMvcGFyc2VfaW5wdXQvY3JsX3NoYTI1Ni5wZW0KZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGMzY2EyNTYuLjAwMDAwMDAKLS0tIGEvdGVzdHMvZGF0YV9maWxlcy9wYXJzZV9pbnB1dC9jcmxfc2hhMjU2LnBlbQorKysgL2Rldi9udWxsCkBAIC0xLDExICswLDAgQEAKLS0tLS0tQkVHSU4gWDUwOSBDUkwtLS0tLQotTUlJQnF6Q0JsREFOQmdrcWhraUc5dzBCQVFzRkFEQTdNUXN3Q1FZRFZRUUdFd0pPVERFUk1BOEdBMVVFQ2hNSQotVUc5c1lYSlRVMHd4R1RBWEJnTlZCQU1URUZCdmJHRnlVMU5NSUZSbGMzUWdRMEVYRFRFeE1ESXhNakUwTkRRdwotTjFvWERURXhNRFF4TXpFME5EUXdOMW93S0RBU0FnRUJGdzB4TVRBeU1USXhORFEwTURkYU1CSUNBUU1YRFRFeAotTURJeE1qRTBORFF3TjFvd0RRWUpLb1pJaHZjTkFRRUxCUUFEZ2dFQkFHNG1CQmd3Zk55bkNZWUwyQ0VucW9yZQotbWdLcEMzMnRCNldpVUJ1OWZpZ2N2ZE4zblNYLzF3ckI4cnBpRThSMDRDOG9TRmdsd2hvdEpDbmxXc3k0MnRqYgotMHBrMFd1aXpsbjBQRk1jL095cHFSTk5od3gzMVNISDQyVzRLek9OaXF2cTNuL1drSDNNMVluaVIxWm5NbHl2aQotbEppb1FuNlpBb2M2TzZtTVAxSjlkdUtZWWhpTUFPVjk5MlBEMS9pcVh3K2pZTjMxUndkSVM4L21HeklzNGFrZQotRWR2aXdoTTNFNC9zVmJOT1dDT25aRllWNG0reU5BRWUyOUhMMVZLdzZVWGl4QmN6Y3QrYnJxWE5WRDNVNlQwRgotNW92UjZCVGVmWk8xN2VUNTJEdWtlNVJaR0RVeVFPR3l3eE9ZS0k1VytGY09ZZHArVTVJZGszOTl0QXoyTWR3PQotLS0tLS1FTkQgWDUwOSBDUkwtLS0tLQpkaWZmIC0tZ2l0IGEvdGVzdHMvZGF0YV9maWxlcy9wYXJzZV9pbnB1dC9jcmxfc2hhMzg0LnBlbSBiL3Rlc3RzL2RhdGFfZmlsZXMvcGFyc2VfaW5wdXQvY3JsX3NoYTM4NC5wZW0KZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGIzYmFhMmEuLjAwMDAwMDAKLS0tIGEvdGVzdHMvZGF0YV9maWxlcy9wYXJzZV9pbnB1dC9jcmxfc2hhMzg0LnBlbQorKysgL2Rldi9udWxsCkBAIC0xLDExICswLDAgQEAKLS0tLS0tQkVHSU4gWDUwOSBDUkwtLS0tLQotTUlJQnF6Q0JsREFOQmdrcWhraUc5dzBCQVF3RkFEQTdNUXN3Q1FZRFZRUUdFd0pPVERFUk1BOEdBMVVFQ2hNSQotVUc5c1lYSlRVMHd4R1RBWEJnTlZCQU1URUZCdmJHRnlVMU5NSUZSbGMzUWdRMEVYRFRFeE1ESXhNakUwTkRRdwotTjFvWERURXhNRFF4TXpFME5EUXdOMW93S0RBU0FnRUJGdzB4TVRBeU1USXhORFEwTURkYU1CSUNBUU1YRFRFeAotTURJeE1qRTBORFF3TjFvd0RRWUpLb1pJaHZjTkFRRU1CUUFEZ2dFQkFDMEdwbVJ2c3J2c2hwMXEvU1hrODBIQQotbTI4WnZFdXlzOXpZNS9BbnJ0WUhRZnNYOVFSSms1bGk3UGxuekh0VkdwOEk1UWk0bUpWUGFKK0ptaHFBYy9vbwotTlBteER4OG05WEY5djBYSHpxUVpJV2xQWEg4UU05V0x6VGF6YlFGWGh1d25aNkxQaHBvK204Y2JOOTFtVUZpbAotOWcrU0drbWErVllWK3lQUk5tS3lsZGNSVnZQWlVJa2hUQ01Xa1pvWXJiRFhVbWtWUXBzZ3oyYzVrc0llTUkvNwotNFFqOUozOEk5QU90MERsUTNldEZoTmMwT01uUjd6WTh0bjlCNGRlam9Oa2xFWmZpeUR4c0RaVlB1c1pyeG5XTQotV3h1ZWhPR0haZjNZRVNqTE10UjdCVzI2UVJISUYvbmhHREhzYkxpdW54WEk2ZUpsYllGb1pNZndjNlRNcW5jPQotLS0tLS1FTkQgWDUwOSBDUkwtLS0tLQpkaWZmIC0tZ2l0IGEvdGVzdHMvZGF0YV9maWxlcy9wYXJzZV9pbnB1dC9jcmxfc2hhNTEyLnBlbSBiL3Rlc3RzL2RhdGFfZmlsZXMvcGFyc2VfaW5wdXQvY3JsX3NoYTUxMi5wZW0KZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDRkNzEyZTUuLjAwMDAwMDAKLS0tIGEvdGVzdHMvZGF0YV9maWxlcy9wYXJzZV9pbnB1dC9jcmxfc2hhNTEyLnBlbQorKysgL2Rldi9udWxsCkBAIC0xLDExICswLDAgQEAKLS0tLS0tQkVHSU4gWDUwOSBDUkwtLS0tLQotTUlJQnF6Q0JsREFOQmdrcWhraUc5dzBCQVEwRkFEQTdNUXN3Q1FZRFZRUUdFd0pPVERFUk1BOEdBMVVFQ2hNSQotVUc5c1lYSlRVMHd4R1RBWEJnTlZCQU1URUZCdmJHRnlVMU5NSUZSbGMzUWdRMEVYRFRFeE1ESXhNakUwTkRRdwotTjFvWERURXhNRFF4TXpFME5EUXdOMW93S0RBU0FnRUJGdzB4TVRBeU1USXhORFEwTURkYU1CSUNBUU1YRFRFeAotTURJeE1qRTBORFF3TjFvd0RRWUpLb1pJaHZjTkFRRU5CUUFEZ2dFQkFINkdVMjRoZDZkLzVQbUR1c1QraDJLbAotZTdzY21oa1pEUFUrVkpTbnpIZEVSRVlUUGFvRnF5VkJ1Sk9FOTVsWkVMRXFkT2F1aE8zbEcyV0VRVkdjZ0VjdgotNGpTMkV6UjNCWWV4MWMxdXBxR3RkSXZJb0E5VE9MdWtkeTZLZWF1b21pV2hvMktkN2JTYVhIeTIwandka0xrbwotL3QzbFZoVHRCdktiaDhYSFZZd0NhdzFhQ2ozTHlkd05jUyt6UG5SZ3NNVkhzekZ4bU1ObjVIQ1JXOGxiWXdjZgotVUE5OE9teElaczJocEJLUnB2bGZBNXk2c1hFeDIrdFNNZytNSnJ6aUdCZ0c2T1IvbStLVGFLNVlsZTluckMrNwotaHpLSWU4M2hwa3R2ZkIxQ1k1QWs0VWtlOS8xRlJxQWpzNUtDUnhZU0dRN1pkUzdEZ0FlR3dUM3NsTGJsL3RZPQotLS0tLS1FTkQgWDUwOSBDUkwtLS0tLQpkaWZmIC0tZ2l0IGEvdGVzdHMvZGF0YV9maWxlcy9wYXJzZV9pbnB1dC9rZXlVc2FnZS5kZWNpcGhlck9ubHkuY3J0IGIvdGVzdHMvZGF0YV9maWxlcy9wYXJzZV9pbnB1dC9rZXlVc2FnZS5kZWNpcGhlck9ubHkuY3J0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3YzM3OTc4Li4wMDAwMDAwCi0tLSBhL3Rlc3RzL2RhdGFfZmlsZXMvcGFyc2VfaW5wdXQva2V5VXNhZ2UuZGVjaXBoZXJPbmx5LmNydAorKysgL2Rldi9udWxsCkBAIC0xLDE0ICswLDAgQEAKLS0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQotTUlJQ0Z6Q0NBWUNnQXdJQkFnSUpBSnNUemt5bGI5NVNNQTBHQ1NxR1NJYjNEUUVCQlFVQU1EOHhDekFKQmdOVgotQkFZVEFrZENNUkl3RUFZRFZRUUhEQWxEWVcxaWNtbGtaMlV4SERBYUJnTlZCQW9NRTBSbFptRjFiSFFnUTI5dAotY0dGdWVTQk1kR1F3SGhjTk1UVXdOVEV5TVRBek5qVTFXaGNOTVRnd05URXhNVEF6TmpVMVdqQS9NUXN3Q1FZRAotVlFRR0V3SkhRakVTTUJBR0ExVUVCd3dKUTJGdFluSnBaR2RsTVJ3d0dnWURWUVFLREJORVpXWmhkV3gwSUVOdgotYlhCaGJua2dUSFJrTUlHZk1BMEdDU3FHU0liM0RRRUJBUVVBQTRHTkFEQ0JpUUtCZ1FDOW54WU9TYmhhL0FwNAotNnJBQ3JPTUg3emZERCswWkVIaGJPMGJnR1JqYzVFbHZPYU51RDMyMXk5VG55QXgrSnJxUHAvbEZyQWdOaVZvMQotSFB1clBIZmNKK3ROQlVnQkhib1dHTkVOTmFmOW92d0ZQYXdzQnpFWnJhR25EYXFWUEVGY0lzVVFQVnFPMWxyUQotQ0hMVWp0cW8xaE1aRHFlL1dlYjBNdzljWnJxT2FRSURBUUFCb3hzd0dUQUpCZ05WSFJNRUFqQUFNQXdHQTFVZAotRHdRRkF3TUg0SUF3RFFZSktvWklodmNOQVFFRkJRQURnWUVBSjBOUzJ3VWJnUmVsSzBxS3hyUjJUczZqVllFSAotYm15a3gzR0hqRnlLcHNjREluMnZOeXlCN3lnZkZnbFpQY3crMm1uM3h1Vkl3T1YvbVd4RnZLSGsrajJXclRRTAotdERxU0M1QmhGb1IwMXZlRnUwN0pkRVl2eitJK05DTDV6MElHV1hrVXJrMjM1V2w0dzRXTVpEblhUcW5jTU5FawotZkx0cG85eTc5WEQwMFFZPQotLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQpkaWZmIC0tZ2l0IGEvdGVzdHMvZGF0YV9maWxlcy9wYXJzZV9pbnB1dC9tdWx0aXBsZV9zYW4uY3J0IGIvdGVzdHMvZGF0YV9maWxlcy9wYXJzZV9pbnB1dC9tdWx0aXBsZV9zYW4uY3J0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4Y2RjNzMwLi4wMDAwMDAwCi0tLSBhL3Rlc3RzL2RhdGFfZmlsZXMvcGFyc2VfaW5wdXQvbXVsdGlwbGVfc2FuLmNydAorKysgL2Rldi9udWxsCkBAIC0xLDEyICswLDAgQEAKLS0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQotTUlJQjJqQ0NBWUNnQXdJQkFnSUJCREFLQmdncWhrak9QUVFEQWpCS01Rc3dDUVlEVlFRR0V3SlZTekVSTUE4RwotQTFVRUNnd0lUV0psWkNCVVRGTXhLREFtQmdOVkJBTU1IMDFpWldRZ1ZFeFRJRzExYkhScGNHeGxJRzkwYUdWeQotYm1GdFpTQlRRVTR3SGhjTk1Ua3dOREl5TVRZeE1EUTRXaGNOTWprd05ERTVNVFl4TURRNFdqQktNUXN3Q1FZRAotVlFRR0V3SlZTekVSTUE4R0ExVUVDZ3dJVFdKbFpDQlVURk14S0RBbUJnTlZCQU1NSDAxaVpXUWdWRXhUSUcxMQotYkhScGNHeGxJRzkwYUdWeWJtRnRaU0JUUVU0d1dUQVRCZ2NxaGtqT1BRSUJCZ2dxaGtqT1BRTUJCd05DQUFRMwotekZiWmRna2VXbkkreDFrdC95QnU3bno1QnBGMDBLMFV0ZmRvSWxsaWtrN2xBTmdqRWYvcUw5STBYVjBXdllxSQotd210M0RWWE5paW9PK2dISXRPMy9vMWN3VlRCVEJnTlZIUkVFVERCS2dndGxlR0Z0Y0d4bExtTnZiYUFmQmdncgotQmdFRkJRY0lCS0FUTUJFR0J5c0dBUVFCRVFNRUJqRXlNelExTm9JTFpYaGhiWEJzWlM1dVpYU0NEU291WlhoaAotYlhCc1pTNXZjbWN3Q2dZSUtvWkl6ajBFQXdJRFNBQXdSUUloQU1aVWtwK3BjdUZRM1dXZGd2VjRZK3RJWE95UwotTDZwMFJ0RUFPaS9HZ2lnVkFpQjUwbjNySVVLamFwWXN0UHAzeU9wR1pHeVJ4bmM2dVJkU2lNSDV3TEE0eXc9PQotLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQpkaWZmIC0tZ2l0IGEvdGVzdHMvZGF0YV9maWxlcy9wYXJzZV9pbnB1dC9ub24tYXNjaWktc3RyaW5nLWluLWlzc3Vlci5jcnQgYi90ZXN0cy9kYXRhX2ZpbGVzL3BhcnNlX2lucHV0L25vbi1hc2NpaS1zdHJpbmctaW4taXNzdWVyLmNydApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOTlkYjg3MS4uMDAwMDAwMAotLS0gYS90ZXN0cy9kYXRhX2ZpbGVzL3BhcnNlX2lucHV0L25vbi1hc2NpaS1zdHJpbmctaW4taXNzdWVyLmNydAorKysgL2Rldi9udWxsCkBAIC0xLDIyICswLDAgQEAKLS0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQotTUlJRG5UQ0NBb1dnQXdJQkFnSVVCZVpUNXh0MDhMWFRoRzBNYmR6NlA2UmFLK0F3RFFZSktvWklodmNOQVFFTAotQlFBd1hqRUxNQWtHQTFVRUJoTUNTbEF4RGpBTUJnTlZCQWdNQlZSdmEzbHZNUjh3SFFZRFZRUUtEQmJEbzhLRAotd29iRG84S0N3cm5EbzhLRHdvZ2dUSFJrTVI0d0hBWURWUVFEREJYRG84S0R3b2JEbzhLQ3dybkRvOEtEd29nZwotUTBFd0hoY05NakF3TlRJd01UWXhOekl6V2hjTk1qQXdOakU1TVRZeE56SXpXakJlTVFzd0NRWURWUVFHRXdKSwotVURFT01Bd0dBMVVFQ0F3RlZHOXJlVzh4SHpBZEJnTlZCQW9NRnNPandvUENoc09qd29MQ3VjT2p3b1BDaUNCTQotZEdReEhqQWNCZ05WQkFNTUZjT2p3b1BDaHNPandvTEN1Y09qd29QQ2lDQkRRVENDQVNJd0RRWUpLb1pJaHZjTgotQVFFQkJRQURnZ0VQQURDQ0FRb0NnZ0VCQU1raDhZc3pYcXlLc0V6bTVYTXBtTGQ5V0w2YmEzUURLMHV1ZVBUagotVXF0NlJZalRITURkdTFUL2dSVWkxNSsrNlZBbDJ2VUVjVUtJNEx4YXJiOVR1eXBzSGZXTEdEbGlvQzR4by81WAotNjNmYnZJRUs2cWVsdVk0M3YzL2RYVkxvYWs0RTVDM2k5aEdwY0NWVXJhd2xGS1FldUVvTmdweHRBeTRjQTBIVgotUmhHSzZjRWRkSW85bFJrc3ZPMWpEMlhtaTkwKzdTVFJZbXlUVmtIeWo5NjZmM3hFcis4L1ZLY3oybUcxUFpndwoteDJrWXd2N0paMEYrdmJqVTJTMU9BVENTNGxxRVBKVDBnZ290SUpDbXhkdjFYb3JQYlluM3VOalQ4THAvVUhnVwotKzQrSzBPeGRsRDBHUzdBeGZmQ2NxMGx0VmVVeUhxOXMyY0cyQWlQODYwM2FlQVVDQXdFQUFhTlRNRkV3SFFZRAotVlIwT0JCWUVGS1Q4cVZodk1hcHR5aEpNY3Z6K2MzUTBma3pETUI4R0ExVWRJd1FZTUJhQUZLVDhxVmh2TWFwdAoteWhKTWN2eitjM1EwZmt6RE1BOEdBMVVkRXdFQi93UUZNQU1CQWY4d0RRWUpLb1pJaHZjTkFRRUxCUUFEZ2dFQgotQUhSNlUzcDJEZGh3ZHFoWTczdkF4dGRtQU1MMTU3Y1lvWlNRaUVmcHAvS3IzTVdvQm9kczZWS0hTNmZsditUMwotVEVmNEcwb3lFcUtvSmszbGlJeVR2VU81Q2l3WG1paUpsWWhRbVdrRWIzemNZVlNTRlhLdnlFUVlLTFIzZ2dELwotQzRzQ1RvaGZZR0I5MjR2STYxOXU2bWpuTkVCWDd5aXlaYmZKMHVIZDdCcE9pbUZWZUFvczhoSjhaNVQrZ0VTYQotVGl2NkVKUEsrbTN2S1RLMnc0NU0veExFbUdNcnd4RUIxSVpuUnoxOWluL0lxZTUvc2ZNZkVWWEpTUTA1MnR1TwotR0xsNnJlZU1hSGxiZmxCL0h5b0JSbzF4TTdBdjZ6eTNUSU01NVozQzZyeTNwY1RINlkrVTdTejlMdzlNeVlDWAotYjFRQVBxZzFVMGxaWmFTTlVNc2lBakk9Ci0tLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCmRpZmYgLS1naXQgYS90ZXN0cy9kYXRhX2ZpbGVzL3BhcnNlX2lucHV0L3JzYV9tdWx0aXBsZV9zYW5fdXJpLmNydC5kZXIgYi90ZXN0cy9kYXRhX2ZpbGVzL3BhcnNlX2lucHV0L3JzYV9tdWx0aXBsZV9zYW5fdXJpLmNydC5kZXIKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGFjNWZhYjIuLjAwMDAwMDAKLS0tIGEvdGVzdHMvZGF0YV9maWxlcy9wYXJzZV9pbnB1dC9yc2FfbXVsdGlwbGVfc2FuX3VyaS5jcnQuZGVyCisrKyAvZGV2L251bGwKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvdGVzdHMvZGF0YV9maWxlcy9wYXJzZV9pbnB1dC9yc2Ffc2luZ2xlX3Nhbl91cmkuY3J0LmRlciBiL3Rlc3RzL2RhdGFfZmlsZXMvcGFyc2VfaW5wdXQvcnNhX3NpbmdsZV9zYW5fdXJpLmNydC5kZXIKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDIyMzA4YzYuLjAwMDAwMDAKLS0tIGEvdGVzdHMvZGF0YV9maWxlcy9wYXJzZV9pbnB1dC9yc2Ffc2luZ2xlX3Nhbl91cmkuY3J0LmRlcgorKysgL2Rldi9udWxsCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3Rlc3RzL2RhdGFfZmlsZXMvcGFyc2VfaW5wdXQvc2VydmVyMS1tcy5yZXEuc2hhMjU2IGIvdGVzdHMvZGF0YV9maWxlcy9wYXJzZV9pbnB1dC9zZXJ2ZXIxLW1zLnJlcS5zaGEyNTYKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGIwZDk0MTQuLjAwMDAwMDAKLS0tIGEvdGVzdHMvZGF0YV9maWxlcy9wYXJzZV9pbnB1dC9zZXJ2ZXIxLW1zLnJlcS5zaGEyNTYKKysrIC9kZXYvbnVsbApAQCAtMSwxNiArMCwwIEBACi0tLS0tLUJFR0lOIE5FVyBDRVJUSUZJQ0FURSBSRVFVRVNULS0tLS0KLU1JSUNnVENDQVdrQ0FRQXdQREVMTUFrR0ExVUVCaE1DVGt3eEVUQVBCZ05WQkFvVENGQnZiR0Z5VTFOTU1Sb3cKLUdBWURWUVFERXhGUWIyeGhjbE5UVENCVFpYSjJaWElnTVRDQ0FTSXdEUVlKS29aSWh2Y05BUUVCQlFBRGdnRVAKLUFEQ0NBUW9DZ2dFQkFLa0NIejFBYXRWVlU0djlOdTZDWlM0VllWNkp2N2pvUlpEYjdvZ1dVdFB4UTFCSGxoSloKLVpJZHIvU3ZnUnZsenZ0M1BrdUdSVysxbW9HK0pLWGxGZ05DRGF0VkJRM2RmT1h3SkJFZUNzRmM1Y08yajdCVVoKLUhxZ3pDRWZCQlVLcC9VekR0Ti9kQmg5TkVGRkFaM01URDBENGJZRWxYd3F4VThZd2ZoVTVyUGxhN24rU25xWUYKLVcrY1RsNFcxSTVMWjFDUUcxUWtsaVhVSDNhWWFqejhKR2I2dFpTeGs2NVdiM1A1QlhoZW0ybXhiYWN3Q3VoUXMKLUZpU2NTdHpOMFBkU1ozUHhMYUFqL1g3ME1jb3RjTXFKQ3dUYkxxWlBjRzZlenIxWWllSlRXWjV1V3BKbDRvZy8KLURKUVpvOTNsNkoyVkUrMHAyNnR3RXR4YXltc1hxMUtDVkxFQ0F3RUFBYUFBTUEwR0NTcUdTSWIzRFFFQkN3VUEKLUE0SUJBUUJZLzFubllRM1RoVnllWmIxWjJ3TFlvSFo1cmZlSkNlZHlQN04vZ2pKWmpock1id2lvVWZ0MnVIcGIKLStPWlFmeFJYSlRidGovMXdwUk1Db1VNTFd6YXBTNy94R3gzSWpvUHRsNDJhTTRNK3hWWXZiTGpFeEwxM2tVQXIKLWVFNEpXY01JYlRFUG9sMnpTZFgvTHVCK20yN2pFcDVWc3ZNMnR5OXFPdy9UNGlLd2pGU2U2cGNZWjJzcGtzMTkKLTNsdGdqbmFhbXdxS2NOOXpVQTNJRVJUc1dqcjVleEtZZ2ZYbTJPZWV1U1AwdEhyN0RoK3cvMlhBOWRHY0xocm0KLVRBNFA4UWpJZ1NEbHl6bWhZWW1zcmlvRlB1Q2ZkaTF1enM4YnhtYkxYYmlDR1o4VERNeTVvTHFMbzFLK2oycEYKLW94K0FUSEt4US9YcFJRUCsyT1RiOXN3MWtNNTkKLS0tLS0tRU5EIE5FVyBDRVJUSUZJQ0FURSBSRVFVRVNULS0tLS0KZGlmZiAtLWdpdCBhL3Rlc3RzL2RhdGFfZmlsZXMvcGFyc2VfaW5wdXQvc2VydmVyMS5jZXJ0X3R5cGUuY3J0IGIvdGVzdHMvZGF0YV9maWxlcy9wYXJzZV9pbnB1dC9zZXJ2ZXIxLmNlcnRfdHlwZS5jcnQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDM0ZmU0ZjYuLjAwMDAwMDAKLS0tIGEvdGVzdHMvZGF0YV9maWxlcy9wYXJzZV9pbnB1dC9zZXJ2ZXIxLmNlcnRfdHlwZS5jcnQKKysrIC9kZXYvbnVsbApAQCAtMSwyMCArMCwwIEBACi0tLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KLU1JSURVakNDQWpxZ0F3SUJBZ0lCQVRBTkJna3Foa2lHOXcwQkFRVUZBREE3TVFzd0NRWURWUVFHRXdKT1RERVIKLU1BOEdBMVVFQ2d3SVVHOXNZWEpUVTB3eEdUQVhCZ05WQkFNTUVGQnZiR0Z5VTFOTUlGUmxjM1FnUTBFd0hoY04KLU1Ua3dNakV3TVRRME5EQTJXaGNOTWprd01qRXdNVFEwTkRBMldqQThNUXN3Q1FZRFZRUUdFd0pPVERFUk1BOEcKLUExVUVDZ3dJVUc5c1lYSlRVMHd4R2pBWUJnTlZCQU1NRVZCdmJHRnlVMU5NSUZObGNuWmxjaUF4TUlJQklqQU4KLUJna3Foa2lHOXcwQkFRRUZBQU9DQVE4QU1JSUJDZ0tDQVFFQXFRSWZQVUJxMVZWVGkvMDI3b0psTGhWaFhvbS8KLXVPaEZrTnZ1aUJaUzAvRkRVRWVXRWxsa2gydjlLK0JHK1hPKzNjK1M0WkZiN1dhZ2I0a3BlVVdBMElOcTFVRkQKLWQxODVmQWtFUjRLd1Z6bHc3YVBzRlJrZXFETUlSOEVGUXFuOVRNTzAzOTBHSDAwUVVVQm5jeE1QUVBodGdTVmYKLUNyRlR4akIrRlRtcytWcnVmNUtlcGdWYjV4T1hoYlVqa3RuVUpBYlZDU1dKZFFmZHBocVBQd2tadnExbExHVHIKLWxadmMva0ZlRjZiYWJGdHB6QUs2RkN3V0pKeEszTTNROTFKbmMvRXRvQ1A5ZnZReHlpMXd5b2tMQk5zdXBrOXcKLWJwN092VmlKNGxOWm5tNWFrbVhpaUQ4TWxCbWozZVhvblpVVDdTbmJxM0FTM0ZyS2F4ZXJVb0pVc1FJREFRQUIKLW8yQXdYakFKQmdOVkhSTUVBakFBTUIwR0ExVWREZ1FXQkJRZmROWS9LY0YwZEVVN0JSSXNQYWk5UTFrQ3BqQWYKLUJnTlZIU01FR0RBV2dCUzBXdVNsczk3U1V2YTUxYWFWRCtzK3ZNZjkvekFSQmdsZ2hrZ0JodmhDQVFFRUJBTUMKLUJrQXdEUVlKS29aSWh2Y05BUUVGQlFBRGdnRUJBRWxKUGFDRzZhRkhveW1vQ3J6Y2tQZmpFTnhnWFcyY3poNXQKLVRzTVBzaGt6WDVwMkFVODlHQkdkeTBnUXdvUHVNdGN6bnNEZTRhZE02TmE4ZjMwWURmZkFUc2dERUNNSVd0VjEKLVhWWUtRSXdGbVp6RXQ0Qis1c1VteU1PTHRUdXVaQlRoT0xQd093OGU0Um5JTEtPWVBIblFOUmY2RWFwNGxGRHgKLWxwMnBBYWlYTURXSDg4Z21Xb1U1WHJHVHBwbGxZVjBJb3J6SjR4VjlTZzNpdHROd05PNDBlaFZRREFzZUZ3WkgKLWl5aDlpSHo0QnF0V2pFbG1RM2hMOE4vQ2JxcDNpTjE1aDJwVWdJajhKSXQ5ckNzSVpyc0czSzQyaVNsUHpFbjIKLURDeldRU2o5Y1FOQ1JWSm53Z0pBV25DMUh4MFlZRlFNZ1FxdVZ4bksxNVRIVEdRQWVCOD0KLS0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KZGlmZiAtLWdpdCBhL3Rlc3RzL2RhdGFfZmlsZXMvcGFyc2VfaW5wdXQvc2VydmVyMS5jcnQgYi90ZXN0cy9kYXRhX2ZpbGVzL3BhcnNlX2lucHV0L3NlcnZlcjEuY3J0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyNThkYTVlLi4wMDAwMDAwCi0tLSBhL3Rlc3RzL2RhdGFfZmlsZXMvcGFyc2VfaW5wdXQvc2VydmVyMS5jcnQKKysrIC9kZXYvbnVsbApAQCAtMSwyMCArMCwwIEBACi0tLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KLU1JSURQekNDQWllZ0F3SUJBZ0lCQVRBTkJna3Foa2lHOXcwQkFRVUZBREE3TVFzd0NRWURWUVFHRXdKT1RERVIKLU1BOEdBMVVFQ2d3SVVHOXNZWEpUVTB3eEdUQVhCZ05WQkFNTUVGQnZiR0Z5VTFOTUlGUmxjM1FnUTBFd0hoY04KLU1Ua3dNakV3TVRRME5EQTJXaGNOTWprd01qRXdNVFEwTkRBMldqQThNUXN3Q1FZRFZRUUdFd0pPVERFUk1BOEcKLUExVUVDZ3dJVUc5c1lYSlRVMHd4R2pBWUJnTlZCQU1NRVZCdmJHRnlVMU5NSUZObGNuWmxjaUF4TUlJQklqQU4KLUJna3Foa2lHOXcwQkFRRUZBQU9DQVE4QU1JSUJDZ0tDQVFFQXFRSWZQVUJxMVZWVGkvMDI3b0psTGhWaFhvbS8KLXVPaEZrTnZ1aUJaUzAvRkRVRWVXRWxsa2gydjlLK0JHK1hPKzNjK1M0WkZiN1dhZ2I0a3BlVVdBMElOcTFVRkQKLWQxODVmQWtFUjRLd1Z6bHc3YVBzRlJrZXFETUlSOEVGUXFuOVRNTzAzOTBHSDAwUVVVQm5jeE1QUVBodGdTVmYKLUNyRlR4akIrRlRtcytWcnVmNUtlcGdWYjV4T1hoYlVqa3RuVUpBYlZDU1dKZFFmZHBocVBQd2tadnExbExHVHIKLWxadmMva0ZlRjZiYWJGdHB6QUs2RkN3V0pKeEszTTNROTFKbmMvRXRvQ1A5ZnZReHlpMXd5b2tMQk5zdXBrOXcKLWJwN092VmlKNGxOWm5tNWFrbVhpaUQ4TWxCbWozZVhvblpVVDdTbmJxM0FTM0ZyS2F4ZXJVb0pVc1FJREFRQUIKLW8wMHdTekFKQmdOVkhSTUVBakFBTUIwR0ExVWREZ1FXQkJRZmROWS9LY0YwZEVVN0JSSXNQYWk5UTFrQ3BqQWYKLUJnTlZIU01FR0RBV2dCUzBXdVNsczk3U1V2YTUxYWFWRCtzK3ZNZjkvekFOQmdrcWhraUc5dzBCQVFVRkFBT0MKLUFRRUFmMms1T2lPUnA2MGdCTnFpb0MybUlxU1hBMENVL3F6bGx0OEl2bGNNdjFWMFBBUDlmNElFbTVtZGtFUnIKLVVYam5CMVRyM2VkcnN2WExnWjl2RW9zYkZwTk1zS2ZzbUJrcGpnV0cydWk4cGRuOGNKaXdzNGs0aDVmdXVlU3cKLVBzMUZMSzVUZnBpK0dKeVBxazRoYTlPanAycDlvcHVBMGFJZkx1eEkrMFV6WEg0d2dyRVcvWXlkb3d2OTU5Z2YKLWdHU2w3NjZDUmRVdkpiWE9lVnJ5RmpGVFJmTEZGTmZUdnJmdFprMWRsOHRhczFuaW04eGZXZXQrQlpWdnEyelkKLUM3TGVDSTlucmZ1QXhmTUpUcldGcDE3eTcyK2hDRGs3TkVhQjJaTFZ1QU0vcmk3TFdycjJWMmhMRmRJQWhmQzIKLW5VYXVsUlJwR3QvWlRJU3c2dVNJdW1Ob05BPT0KLS0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KZGlmZiAtLWdpdCBhL3Rlc3RzL2RhdGFfZmlsZXMvcGFyc2VfaW5wdXQvc2VydmVyMS5jcnQuZGVyIGIvdGVzdHMvZGF0YV9maWxlcy9wYXJzZV9pbnB1dC9zZXJ2ZXIxLmNydC5kZXIKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGY5ZjU4YTAuLjAwMDAwMDAKLS0tIGEvdGVzdHMvZGF0YV9maWxlcy9wYXJzZV9pbnB1dC9zZXJ2ZXIxLmNydC5kZXIKKysrIC9kZXYvbnVsbApCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS90ZXN0cy9kYXRhX2ZpbGVzL3BhcnNlX2lucHV0L3NlcnZlcjEuZXh0X2t1LmNydCBiL3Rlc3RzL2RhdGFfZmlsZXMvcGFyc2VfaW5wdXQvc2VydmVyMS5leHRfa3UuY3J0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzYzRmODU0Li4wMDAwMDAwCi0tLSBhL3Rlc3RzL2RhdGFfZmlsZXMvcGFyc2VfaW5wdXQvc2VydmVyMS5leHRfa3UuY3J0CisrKyAvZGV2L251bGwKQEAgLTEsMjIgKzAsMCBAQAotLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCi1NSUlEcHpDQ0FvK2dBd0lCQWdJQklUQU5CZ2txaGtpRzl3MEJBUXNGQURBN01Rc3dDUVlEVlFRR0V3Sk9UREVSCi1NQThHQTFVRUNoTUlVRzlzWVhKVFUwd3hHVEFYQmdOVkJBTVRFRkJ2YkdGeVUxTk1JRlJsYzNRZ1EwRXdIaGNOCi1NVFF3TkRBeE1UUTBORFF6V2hjTk1qUXdNekk1TVRRME5EUXpXakE4TVFzd0NRWURWUVFHRXdKT1RERVJNQThHCi1BMVVFQ2hNSVVHOXNZWEpUVTB3eEdqQVlCZ05WQkFNVEVWQnZiR0Z5VTFOTUlGTmxjblpsY2lBeE1JSUJJakFOCi1CZ2txaGtpRzl3MEJBUUVGQUFPQ0FROEFNSUlCQ2dLQ0FRRUFxUUlmUFVCcTFWVlRpLzAyN29KbExoVmhYb20vCi11T2hGa052dWlCWlMwL0ZEVUVlV0VsbGtoMnY5SytCRytYTyszYytTNFpGYjdXYWdiNGtwZVVXQTBJTnExVUZECi1kMTg1ZkFrRVI0S3dWemx3N2FQc0ZSa2VxRE1JUjhFRlFxbjlUTU8wMzkwR0gwMFFVVUJuY3hNUFFQaHRnU1ZmCi1DckZUeGpCK0ZUbXMrVnJ1ZjVLZXBnVmI1eE9YaGJVamt0blVKQWJWQ1NXSmRRZmRwaHFQUHdrWnZxMWxMR1RyCi1sWnZjL2tGZUY2YmFiRnRwekFLNkZDd1dKSnhLM00zUTkxSm5jL0V0b0NQOWZ2UXh5aTF3eW9rTEJOc3Vwazl3Ci1icDdPdlZpSjRsTlpubTVha21YaWlEOE1sQm1qM2VYb25aVVQ3U25icTNBUzNGcktheGVyVW9KVXNRSURBUUFCCi1vNEcwTUlHeE1Ba0dBMVVkRXdRQ01BQXdIUVlEVlIwT0JCWUVGQjkwMWo4cHdYUjBSVHNGRWl3OXFMMURXUUttCi1NR01HQTFVZEl3UmNNRnFBRkxSYTVLV3ozdEpTOXJuVnBwVVA2ejY4eC8zL29UK2tQVEE3TVFzd0NRWURWUVFHCi1Fd0pPVERFUk1BOEdBMVVFQ2hNSVVHOXNZWEpUVTB3eEdUQVhCZ05WQkFNVEVGQnZiR0Z5VTFOTUlGUmxjM1FnCi1RMEdDQVFBd0N3WURWUjBQQkFRREFnWGdNQk1HQTFVZEpRUU1NQW9HQ0NzR0FRVUZCd01CTUEwR0NTcUdTSWIzCi1EUUVCQ3dVQUE0SUJBUUFOdGlZUjJQNithN3JFdEpBUklncHVydzFVUlllakFUYmJwM1poYUhCVzYwM1d5YjIrCi1LSnRtMUtQQ3pvanUvcVRSdDY1WVlrdCt0dTF3VHphbXlya1B4dDhiQktteGlXbnU1ajFITHhkak96OFZXOWxmCi12VGI1ZWdSNGRVOWVOWG5pLzVRa3pyZGtNTytvYjRwdURYWTd5dFB1R1g2WWZOVmhDa3JoQmxZREpORTU3Q2tLCi12cENOajMrVGU4UEVrV1BBRWFVaHFDblFrNnF2UHZwQmZjL2hxZ3d6bFJNdDN1NU5raVZPdUg3MmR0cjRmT0kxCi1ubEFVOEQyd3V2RFZyM1g1MjgxT05ORXRIVTZyWGU5OHZsVXpTOVFWOWxCRGRzTzluUllKenYyTmIxY2pSSU01Ci1KWmwwSUxMUjJ0YzZFL1c1WVhhbE5wMzdqZnJGaWkxVTlXckoKLS0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KZGlmZiAtLWdpdCBhL3Rlc3RzL2RhdGFfZmlsZXMvcGFyc2VfaW5wdXQvc2VydmVyMS5rZXlfdXNhZ2UuY3J0IGIvdGVzdHMvZGF0YV9maWxlcy9wYXJzZV9pbnB1dC9zZXJ2ZXIxLmtleV91c2FnZS5jcnQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDlkNzBiMDAuLjAwMDAwMDAKLS0tIGEvdGVzdHMvZGF0YV9maWxlcy9wYXJzZV9pbnB1dC9zZXJ2ZXIxLmtleV91c2FnZS5jcnQKKysrIC9kZXYvbnVsbApAQCAtMSwyMCArMCwwIEBACi0tLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KLU1JSURUekNDQWplZ0F3SUJBZ0lCQVRBTkJna3Foa2lHOXcwQkFRVUZBREE3TVFzd0NRWURWUVFHRXdKT1RERVIKLU1BOEdBMVVFQ2d3SVVHOXNZWEpUVTB3eEdUQVhCZ05WQkFNTUVGQnZiR0Z5VTFOTUlGUmxjM1FnUTBFd0hoY04KLU1Ua3dNakV3TVRRME5EQTJXaGNOTWprd01qRXdNVFEwTkRBMldqQThNUXN3Q1FZRFZRUUdFd0pPVERFUk1BOEcKLUExVUVDZ3dJVUc5c1lYSlRVMHd4R2pBWUJnTlZCQU1NRVZCdmJHRnlVMU5NSUZObGNuWmxjaUF4TUlJQklqQU4KLUJna3Foa2lHOXcwQkFRRUZBQU9DQVE4QU1JSUJDZ0tDQVFFQXFRSWZQVUJxMVZWVGkvMDI3b0psTGhWaFhvbS8KLXVPaEZrTnZ1aUJaUzAvRkRVRWVXRWxsa2gydjlLK0JHK1hPKzNjK1M0WkZiN1dhZ2I0a3BlVVdBMElOcTFVRkQKLWQxODVmQWtFUjRLd1Z6bHc3YVBzRlJrZXFETUlSOEVGUXFuOVRNTzAzOTBHSDAwUVVVQm5jeE1QUVBodGdTVmYKLUNyRlR4akIrRlRtcytWcnVmNUtlcGdWYjV4T1hoYlVqa3RuVUpBYlZDU1dKZFFmZHBocVBQd2tadnExbExHVHIKLWxadmMva0ZlRjZiYWJGdHB6QUs2RkN3V0pKeEszTTNROTFKbmMvRXRvQ1A5ZnZReHlpMXd5b2tMQk5zdXBrOXcKLWJwN092VmlKNGxOWm5tNWFrbVhpaUQ4TWxCbWozZVhvblpVVDdTbmJxM0FTM0ZyS2F4ZXJVb0pVc1FJREFRQUIKLW8xMHdXekFKQmdOVkhSTUVBakFBTUIwR0ExVWREZ1FXQkJRZmROWS9LY0YwZEVVN0JSSXNQYWk5UTFrQ3BqQWYKLUJnTlZIU01FR0RBV2dCUzBXdVNsczk3U1V2YTUxYWFWRCtzK3ZNZjkvekFPQmdOVkhROEJBZjhFQkFNQ0JlQXcKLURRWUpLb1pJaHZjTkFRRUZCUUFEZ2dFQkFITThlRVNtRThDUXZ1Q3cyL3cxSlNXS2FVOWNKSXZydHBKWGF2UkMKLXlNRXY2U1FMMGh4ck5aQmhGUE04dkFpcTZ6QmRpYzJId3VpWjlOL2lFWHVDZjkyU09jSzRiLzIvRmxvczBKSTUKLXF1dTRlR2t3b05yT3ZmWlVjTzdTQjhKSFV2bUp0VFArYXZGM1FlUmZIbzliSFJ0bnlPczlHWHFxK0NNWmlOZ08KLUJ3Ky90QU9tbDN0VjFVZit5anA2WHJvV0xSTk1idlkxU29yNFVXNkZGTXBPaWkvdmxKNDQ1ME9scGNKZFJVNzAKLUxwSGZ4am1QTnZjOVlPUFd2ZTc1LytDTkY5bE1pMjlVb0VVWXNseE1QeWxaL0wwdll4aSt4dXZRQlRhTGlaZVAKLUNKNTlNYzYzTEVtSk5TQXdublY4czJLWEwvT2ttMzJsZjZzeTBmanNydkFkb0NjPQotLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQpkaWZmIC0tZ2l0IGEvdGVzdHMvZGF0YV9maWxlcy9wYXJzZV9pbnB1dC9zZXJ2ZXIxLnJlcS5jb21tYXMuc2hhMjU2IGIvdGVzdHMvZGF0YV9maWxlcy9wYXJzZV9pbnB1dC9zZXJ2ZXIxLnJlcS5jb21tYXMuc2hhMjU2CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMjg3YTMxLi4wMDAwMDAwCi0tLSBhL3Rlc3RzL2RhdGFfZmlsZXMvcGFyc2VfaW5wdXQvc2VydmVyMS5yZXEuY29tbWFzLnNoYTI1NgorKysgL2Rldi9udWxsCkBAIC0xLDE2ICswLDAgQEAKLS0tLS0tQkVHSU4gQ0VSVElGSUNBVEUgUkVRVUVTVC0tLS0tCi1NSUlDaVRDQ0FYRUNBUUF3UkRFTE1Ba0dBMVVFQmhNQ1Rrd3hHVEFYQmdOVkJBb01FRkJ2YkdGeVUxTk1MQ0JECi1iMjF0WVhNeEdqQVlCZ05WQkFNTUVWQnZiR0Z5VTFOTUlGTmxjblpsY2lBeE1JSUJJakFOQmdrcWhraUc5dzBCCi1BUUVGQUFPQ0FROEFNSUlCQ2dLQ0FRRUFxUUlmUFVCcTFWVlRpLzAyN29KbExoVmhYb20vdU9oRmtOdnVpQlpTCi0wL0ZEVUVlV0VsbGtoMnY5SytCRytYTyszYytTNFpGYjdXYWdiNGtwZVVXQTBJTnExVUZEZDE4NWZBa0VSNEt3Ci1Wemx3N2FQc0ZSa2VxRE1JUjhFRlFxbjlUTU8wMzkwR0gwMFFVVUJuY3hNUFFQaHRnU1ZmQ3JGVHhqQitGVG1zCi0rVnJ1ZjVLZXBnVmI1eE9YaGJVamt0blVKQWJWQ1NXSmRRZmRwaHFQUHdrWnZxMWxMR1RybFp2Yy9rRmVGNmJhCi1iRnRwekFLNkZDd1dKSnhLM00zUTkxSm5jL0V0b0NQOWZ2UXh5aTF3eW9rTEJOc3Vwazl3YnA3T3ZWaUo0bE5aCi1ubTVha21YaWlEOE1sQm1qM2VYb25aVVQ3U25icTNBUzNGcktheGVyVW9KVXNRSURBUUFCb0FBd0RRWUpLb1pJCi1odmNOQVFFTEJRQURnZ0VCQUk3WnRSSllYNmNNdXdWaHdYT2l6UFYrV0QxN3dieSsyNzNWNFI4ZTkvNlFBNG5ZCi1SclNjaUFzZStuV1p6OVk2dG9CekxXcjBLLzlTQ3p3Qlg0T3pNdkxxdTRBMUcvd0FwT0RDRG5iR2FVUE5VeFJ0Ci02cWJnOHk3ZmFCV3ZER2prNCtPcFEwc3VSL3BkYk0vTDdwSW1xV1JOd1lkU1BiSnVtTnFJZEIvRXd0c28wVGxBCi1RVlo5OTJSUGUxTG92WHBEQ2ZQUDJwMTIzTDcvVUhlek5DdHU1UW16THNEZlFtTi9yTGhDSjJOWnpUc25JZG5QCi1qcDZYWVU0a1JWMkJQREw2NWszOGs4Q1NWV2I2Znc5WHdQTlVpeU8zcTFaczZqcEdKUllNTGo5cVRFb1JOMW5wCi1STUUwOUNOMnNpTWNna3Y4VXFEZURKNE9hOXF5WFM2VlhzRG1TTkk9Ci0tLS0tLUVORCBDRVJUSUZJQ0FURSBSRVFVRVNULS0tLS0KZGlmZiAtLWdpdCBhL3Rlc3RzL2RhdGFfZmlsZXMvcGFyc2VfaW5wdXQvc2VydmVyMS5yZXEubWQ1IGIvdGVzdHMvZGF0YV9maWxlcy9wYXJzZV9pbnB1dC9zZXJ2ZXIxLnJlcS5tZDUKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDU3NzE0ZWQuLjAwMDAwMDAKLS0tIGEvdGVzdHMvZGF0YV9maWxlcy9wYXJzZV9pbnB1dC9zZXJ2ZXIxLnJlcS5tZDUKKysrIC9kZXYvbnVsbApAQCAtMSwxNiArMCwwIEBACi0tLS0tLUJFR0lOIENFUlRJRklDQVRFIFJFUVVFU1QtLS0tLQotTUlJQ2dUQ0NBV2tDQVFBd1BERUxNQWtHQTFVRUJoTUNUa3d4RVRBUEJnTlZCQW9NQ0ZCdmJHRnlVMU5NTVJvdwotR0FZRFZRUUREQkZRYjJ4aGNsTlRUQ0JUWlhKMlpYSWdNVENDQVNJd0RRWUpLb1pJaHZjTkFRRUJCUUFEZ2dFUAotQURDQ0FRb0NnZ0VCQUtrQ0h6MUFhdFZWVTR2OU51NkNaUzRWWVY2SnY3am9SWkRiN29nV1V0UHhRMUJIbGhKWgotWklkci9TdmdSdmx6dnQzUGt1R1JXKzFtb0crSktYbEZnTkNEYXRWQlEzZGZPWHdKQkVlQ3NGYzVjTzJqN0JVWgotSHFnekNFZkJCVUtwL1V6RHROL2RCaDlORUZGQVozTVREMEQ0YllFbFh3cXhVOFl3ZmhVNXJQbGE3bitTbnFZRgotVytjVGw0VzFJNUxaMUNRRzFRa2xpWFVIM2FZYWp6OEpHYjZ0WlN4azY1V2IzUDVCWGhlbTJteGJhY3dDdWhRcwotRmlTY1N0ek4wUGRTWjNQeExhQWovWDcwTWNvdGNNcUpDd1RiTHFaUGNHNmV6cjFZaWVKVFdaNXVXcEpsNG9nLwotREpRWm85M2w2SjJWRSswcDI2dHdFdHhheW1zWHExS0NWTEVDQXdFQUFhQUFNQTBHQ1NxR1NJYjNEUUVCQkFVQQotQTRJQkFRQ0VpdjNRTTR4eUtoWVRzb09qeXpRZFhNaHNYSzNLcHcrUmg4NzRIZjZwWEh4VWFZeTd4TFVaVXg2SwoteDVCdmVtMUhNSEFkbU9xWVR6c0U5WmJsQU1aTlJ3di9DS0dTM3B2TWt4L1Zad1hRaEZHbEhMRkcvL2ZQcmdsMwotajRkdDIwUXNXUDhMbkw0THdlWVNZSTF3dDFyamdZUkhlRjZiRy9WSWNrNkJJWVFoS09HbHpJd1dVbWZBR3ltNgotcTRTWXJkK09iWnVsbFNhckdHU2ZOS2pJVUVwWXRmUUJ6MzFmNXRSc3l6U3BzN29HNHVjN1hiYTRxbmwybzlGTgotbFdPTUVFUjc5UUd3cjcrVDQxRlRIRnp0RmRkZkowNkNDam9SQ2ZFbjBUY3NnMTF0U01TMDg1MW9Ma01tOFJ5WQotYW96SXpPODJSM0VtN2FQaFpCaUJEeTN3WkMybAotLS0tLS1FTkQgQ0VSVElGSUNBVEUgUkVRVUVTVC0tLS0tCmRpZmYgLS1naXQgYS90ZXN0cy9kYXRhX2ZpbGVzL3BhcnNlX2lucHV0L3NlcnZlcjEucmVxLnNoYTEgYi90ZXN0cy9kYXRhX2ZpbGVzL3BhcnNlX2lucHV0L3NlcnZlcjEucmVxLnNoYTEKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDU3OGVjN2YuLjAwMDAwMDAKLS0tIGEvdGVzdHMvZGF0YV9maWxlcy9wYXJzZV9pbnB1dC9zZXJ2ZXIxLnJlcS5zaGExCisrKyAvZGV2L251bGwKQEAgLTEsMTYgKzAsMCBAQAotLS0tLS1CRUdJTiBDRVJUSUZJQ0FURSBSRVFVRVNULS0tLS0KLU1JSUNnVENDQVdrQ0FRQXdQREVMTUFrR0ExVUVCaE1DVGt3eEVUQVBCZ05WQkFvTUNGQnZiR0Z5VTFOTU1Sb3cKLUdBWURWUVFEREJGUWIyeGhjbE5UVENCVFpYSjJaWElnTVRDQ0FTSXdEUVlKS29aSWh2Y05BUUVCQlFBRGdnRVAKLUFEQ0NBUW9DZ2dFQkFLa0NIejFBYXRWVlU0djlOdTZDWlM0VllWNkp2N2pvUlpEYjdvZ1dVdFB4UTFCSGxoSloKLVpJZHIvU3ZnUnZsenZ0M1BrdUdSVysxbW9HK0pLWGxGZ05DRGF0VkJRM2RmT1h3SkJFZUNzRmM1Y08yajdCVVoKLUhxZ3pDRWZCQlVLcC9VekR0Ti9kQmg5TkVGRkFaM01URDBENGJZRWxYd3F4VThZd2ZoVTVyUGxhN24rU25xWUYKLVcrY1RsNFcxSTVMWjFDUUcxUWtsaVhVSDNhWWFqejhKR2I2dFpTeGs2NVdiM1A1QlhoZW0ybXhiYWN3Q3VoUXMKLUZpU2NTdHpOMFBkU1ozUHhMYUFqL1g3ME1jb3RjTXFKQ3dUYkxxWlBjRzZlenIxWWllSlRXWjV1V3BKbDRvZy8KLURKUVpvOTNsNkoyVkUrMHAyNnR3RXR4YXltc1hxMUtDVkxFQ0F3RUFBYUFBTUEwR0NTcUdTSWIzRFFFQkJRVUEKLUE0SUJBUUNpWVFNT3YyQUxQVWVnOHdIS245TDVTZERiTnhPenVNd2hZc0NZVHcyVEpNUU83TkxVcTZpY0V6eFkKLXBVSUlGdDYwSlVRalpIeFFTWTN5OWNTaXZ3S1hRQTdwUGZhUGFGQy9hTUEyR3hHMjN0MmVhSVdOUVg4TWZjV2YKLVhBYThibC92bUMxTVRvdittUDJER29YUmlLWU9SckVJbnlEUzJSYVRhdGh2SGNrY0F2MjVuQ0l4N3dZTzl0QzkKLUxVd3lvRTliaGlRN2ZvM0tGbHo0ZEsxSHVreUNNL0ZvUGJKdUw3Tmdkem1LVlB5WUNMaDVBaCtUVEQ2K3NsdHoKLWRGYzRmajI4dzF2M2pzQlh6K3RMcmdGUWlkenVVSTJwb3h0NVV3VTlUS1kwZEFKYVRDdGZJUmNYVzNoNkRHRzcKLUVEUjZyaW02c2JJUWtHell2R3FzNFROb0pPUisKLS0tLS0tRU5EIENFUlRJRklDQVRFIFJFUVVFU1QtLS0tLQpkaWZmIC0tZ2l0IGEvdGVzdHMvZGF0YV9maWxlcy9wYXJzZV9pbnB1dC9zZXJ2ZXIxLnJlcS5zaGEyMjQgYi90ZXN0cy9kYXRhX2ZpbGVzL3BhcnNlX2lucHV0L3NlcnZlcjEucmVxLnNoYTIyNApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYTRmMmFmNC4uMDAwMDAwMAotLS0gYS90ZXN0cy9kYXRhX2ZpbGVzL3BhcnNlX2lucHV0L3NlcnZlcjEucmVxLnNoYTIyNAorKysgL2Rldi9udWxsCkBAIC0xLDE2ICswLDAgQEAKLS0tLS0tQkVHSU4gQ0VSVElGSUNBVEUgUkVRVUVTVC0tLS0tCi1NSUlDZ1RDQ0FXa0NBUUF3UERFTE1Ba0dBMVVFQmhNQ1Rrd3hFVEFQQmdOVkJBb01DRkJ2YkdGeVUxTk1NUm93Ci1HQVlEVlFRRERCRlFiMnhoY2xOVFRDQlRaWEoyWlhJZ01UQ0NBU0l3RFFZSktvWklodmNOQVFFQkJRQURnZ0VQCi1BRENDQVFvQ2dnRUJBS2tDSHoxQWF0VlZVNHY5TnU2Q1pTNFZZVjZKdjdqb1JaRGI3b2dXVXRQeFExQkhsaEpaCi1aSWRyL1N2Z1J2bHp2dDNQa3VHUlcrMW1vRytKS1hsRmdOQ0RhdFZCUTNkZk9Yd0pCRWVDc0ZjNWNPMmo3QlVaCi1IcWd6Q0VmQkJVS3AvVXpEdE4vZEJoOU5FRkZBWjNNVEQwRDRiWUVsWHdxeFU4WXdmaFU1clBsYTduK1NucVlGCi1XK2NUbDRXMUk1TFoxQ1FHMVFrbGlYVUgzYVlhano4SkdiNnRaU3hrNjVXYjNQNUJYaGVtMm14YmFjd0N1aFFzCi1GaVNjU3R6TjBQZFNaM1B4TGFBai9YNzBNY290Y01xSkN3VGJMcVpQY0c2ZXpyMVlpZUpUV1o1dVdwSmw0b2cvCi1ESlFabzkzbDZKMlZFKzBwMjZ0d0V0eGF5bXNYcTFLQ1ZMRUNBd0VBQWFBQU1BMEdDU3FHU0liM0RRRUJEZ1VBCi1BNElCQVFBcllSMm1MS1U1bHNIeUF5R0hyNFBsbUMvY2ZlUG1DUnlDL21qMXJpR1RqRGxOQzJYM0oxVlpEcUtiCi1VL3VVeEx1ZFA3c2J1dHRSa3NJQVJFQVRUNzRQYTQwYk1XaVBVbEJmQS9NMm1GVG1LYi85MXVYZUlJU1c4REwzCi14TS81QkNEcmhuWi9jalAyM2dLRGdKUmsrSUdCTmhZWkRHejUwVElCYkRKMmU0R0RrRmp6QU5uZ1VXNjRVY0NRCi03aFpPWXRuWUxCbm9SdlB3dGFsNWpacUh3c2dhUFBlUFh1K1NROG1mdUFKd0o3OE1PQ0FhS3cwSVAxaDFPblBHCi1pdWJkbDM0bFNJYVlXd2JIVGRqYXFVU1FHM1NTczRveEV2bHVZeW1ycFo2WEdLWHRwaEpYRVBkVFJpTHU5ZDlsCi1BNU5ZVmd2cUhGUVBtdVhTOTJ6ckd6Qjc4OHBWCi0tLS0tLUVORCBDRVJUSUZJQ0FURSBSRVFVRVNULS0tLS0KZGlmZiAtLWdpdCBhL3Rlc3RzL2RhdGFfZmlsZXMvcGFyc2VfaW5wdXQvc2VydmVyMS5yZXEuc2hhMjU2IGIvdGVzdHMvZGF0YV9maWxlcy9wYXJzZV9pbnB1dC9zZXJ2ZXIxLnJlcS5zaGEyNTYKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDZkMjFkYzUuLjAwMDAwMDAKLS0tIGEvdGVzdHMvZGF0YV9maWxlcy9wYXJzZV9pbnB1dC9zZXJ2ZXIxLnJlcS5zaGEyNTYKKysrIC9kZXYvbnVsbApAQCAtMSwxNiArMCwwIEBACi0tLS0tLUJFR0lOIENFUlRJRklDQVRFIFJFUVVFU1QtLS0tLQotTUlJQ2dUQ0NBV2tDQVFBd1BERUxNQWtHQTFVRUJoTUNUa3d4RVRBUEJnTlZCQW9NQ0ZCdmJHRnlVMU5NTVJvdwotR0FZRFZRUUREQkZRYjJ4aGNsTlRUQ0JUWlhKMlpYSWdNVENDQVNJd0RRWUpLb1pJaHZjTkFRRUJCUUFEZ2dFUAotQURDQ0FRb0NnZ0VCQUtrQ0h6MUFhdFZWVTR2OU51NkNaUzRWWVY2SnY3am9SWkRiN29nV1V0UHhRMUJIbGhKWgotWklkci9TdmdSdmx6dnQzUGt1R1JXKzFtb0crSktYbEZnTkNEYXRWQlEzZGZPWHdKQkVlQ3NGYzVjTzJqN0JVWgotSHFnekNFZkJCVUtwL1V6RHROL2RCaDlORUZGQVozTVREMEQ0YllFbFh3cXhVOFl3ZmhVNXJQbGE3bitTbnFZRgotVytjVGw0VzFJNUxaMUNRRzFRa2xpWFVIM2FZYWp6OEpHYjZ0WlN4azY1V2IzUDVCWGhlbTJteGJhY3dDdWhRcwotRmlTY1N0ek4wUGRTWjNQeExhQWovWDcwTWNvdGNNcUpDd1RiTHFaUGNHNmV6cjFZaWVKVFdaNXVXcEpsNG9nLwotREpRWm85M2w2SjJWRSswcDI2dHdFdHhheW1zWHExS0NWTEVDQXdFQUFhQUFNQTBHQ1NxR1NJYjNEUUVCQ3dVQQotQTRJQkFRQ1ZsU1U3cWVLcmk3RTN1OEpDWmJDeWpzR0pUSDlpSFl5ZURaL25ETGlnN2lLR1l2eU5teXpKNzZRdQotK0VudFNtTDJPdEw5NVlxb29jNmgxQVFIem9DcytTTzJ3UG9UVXMzWXBpOXI3dk5OVk8zWm5ueFZ0R2dxQ1JWQQotVyt6OVc0cDJtSFhRaGdXMUhrdUxhNUpEMVN2SlZpeVpieDl6M2llMUJROU5WS2Z2KytBclBJdjcwekJ0QTdPMwotUFpORzFKWU4zMEVzejdSc0NEUkhiejZOcHZ1OWdnVVFML1UzbXZRUStZbyt4aHd1MXlGVitkUkg3UGViQmVRdgotdmpjRDJmWERhYmVvZkszenp0SXBVSXlVVUxYMEdHQ2xNOWpzbGdKL1pIVWxBcldLcExacGgwQWdGMUR6dHMvLwotTTZjL3NSdzdndGpYbVYwenEydGYyZkw0K2UyYgotLS0tLS1FTkQgQ0VSVElGSUNBVEUgUkVRVUVTVC0tLS0tCmRpZmYgLS1naXQgYS90ZXN0cy9kYXRhX2ZpbGVzL3BhcnNlX2lucHV0L3NlcnZlcjEucmVxLnNoYTM4NCBiL3Rlc3RzL2RhdGFfZmlsZXMvcGFyc2VfaW5wdXQvc2VydmVyMS5yZXEuc2hhMzg0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiODU3YWY3Li4wMDAwMDAwCi0tLSBhL3Rlc3RzL2RhdGFfZmlsZXMvcGFyc2VfaW5wdXQvc2VydmVyMS5yZXEuc2hhMzg0CisrKyAvZGV2L251bGwKQEAgLTEsMTYgKzAsMCBAQAotLS0tLS1CRUdJTiBDRVJUSUZJQ0FURSBSRVFVRVNULS0tLS0KLU1JSUNnVENDQVdrQ0FRQXdQREVMTUFrR0ExVUVCaE1DVGt3eEVUQVBCZ05WQkFvTUNGQnZiR0Z5VTFOTU1Sb3cKLUdBWURWUVFEREJGUWIyeGhjbE5UVENCVFpYSjJaWElnTVRDQ0FTSXdEUVlKS29aSWh2Y05BUUVCQlFBRGdnRVAKLUFEQ0NBUW9DZ2dFQkFLa0NIejFBYXRWVlU0djlOdTZDWlM0VllWNkp2N2pvUlpEYjdvZ1dVdFB4UTFCSGxoSloKLVpJZHIvU3ZnUnZsenZ0M1BrdUdSVysxbW9HK0pLWGxGZ05DRGF0VkJRM2RmT1h3SkJFZUNzRmM1Y08yajdCVVoKLUhxZ3pDRWZCQlVLcC9VekR0Ti9kQmg5TkVGRkFaM01URDBENGJZRWxYd3F4VThZd2ZoVTVyUGxhN24rU25xWUYKLVcrY1RsNFcxSTVMWjFDUUcxUWtsaVhVSDNhWWFqejhKR2I2dFpTeGs2NVdiM1A1QlhoZW0ybXhiYWN3Q3VoUXMKLUZpU2NTdHpOMFBkU1ozUHhMYUFqL1g3ME1jb3RjTXFKQ3dUYkxxWlBjRzZlenIxWWllSlRXWjV1V3BKbDRvZy8KLURKUVpvOTNsNkoyVkUrMHAyNnR3RXR4YXltc1hxMUtDVkxFQ0F3RUFBYUFBTUEwR0NTcUdTSWIzRFFFQkRBVUEKLUE0SUJBUUJ5MzV6SFlMaVlhU2NxMW5pUWt6US9CU2NVYmRpV2QyVjkwaXNCc0I1UTNOalZvSmwveUNhTXJsYTMKLTJYZnJ1dHBGcGRxd2VubDVqTTBvNitlbktDbWZ1cit6Mi9pamU2OURqdTJhQmQ2QTYyY3gxQUV2RmlNcTdseUYKLTREWUozMisydHk2S0E4RWh6RTNORnM3ektYeG1ENXlicCtvWE5FdlhvZVUzVzhhK0xkNWMxSy9uK0lwYTBUVXkKLWNGQnM2ZENzYllPOXdJNm5wd1dxQzVIYzlyLzB6emlNRk8rNE41Vk9SZFlVRnFPYnE0dkNZT01YRVRwbDhyeXUKLWxHWm9yTlVvSjd2VjU1VDMxQ0RxRXRiMEVFK25PK25UNGFnZkRvYm5jWWp2YzNXcFF1THRVQjRVd1I1Z3BabDYKLVpJK2o0dXdpa09nR085Z2N4NElqYVJQM3E2M0YKLS0tLS0tRU5EIENFUlRJRklDQVRFIFJFUVVFU1QtLS0tLQpkaWZmIC0tZ2l0IGEvdGVzdHMvZGF0YV9maWxlcy9wYXJzZV9pbnB1dC9zZXJ2ZXIxLnJlcS5zaGE1MTIgYi90ZXN0cy9kYXRhX2ZpbGVzL3BhcnNlX2lucHV0L3NlcnZlcjEucmVxLnNoYTUxMgpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggODVkNTI0Ni4uMDAwMDAwMAotLS0gYS90ZXN0cy9kYXRhX2ZpbGVzL3BhcnNlX2lucHV0L3NlcnZlcjEucmVxLnNoYTUxMgorKysgL2Rldi9udWxsCkBAIC0xLDE2ICswLDAgQEAKLS0tLS0tQkVHSU4gQ0VSVElGSUNBVEUgUkVRVUVTVC0tLS0tCi1NSUlDZ1RDQ0FXa0NBUUF3UERFTE1Ba0dBMVVFQmhNQ1Rrd3hFVEFQQmdOVkJBb01DRkJ2YkdGeVUxTk1NUm93Ci1HQVlEVlFRRERCRlFiMnhoY2xOVFRDQlRaWEoyWlhJZ01UQ0NBU0l3RFFZSktvWklodmNOQVFFQkJRQURnZ0VQCi1BRENDQVFvQ2dnRUJBS2tDSHoxQWF0VlZVNHY5TnU2Q1pTNFZZVjZKdjdqb1JaRGI3b2dXVXRQeFExQkhsaEpaCi1aSWRyL1N2Z1J2bHp2dDNQa3VHUlcrMW1vRytKS1hsRmdOQ0RhdFZCUTNkZk9Yd0pCRWVDc0ZjNWNPMmo3QlVaCi1IcWd6Q0VmQkJVS3AvVXpEdE4vZEJoOU5FRkZBWjNNVEQwRDRiWUVsWHdxeFU4WXdmaFU1clBsYTduK1NucVlGCi1XK2NUbDRXMUk1TFoxQ1FHMVFrbGlYVUgzYVlhano4SkdiNnRaU3hrNjVXYjNQNUJYaGVtMm14YmFjd0N1aFFzCi1GaVNjU3R6TjBQZFNaM1B4TGFBai9YNzBNY290Y01xSkN3VGJMcVpQY0c2ZXpyMVlpZUpUV1o1dVdwSmw0b2cvCi1ESlFabzkzbDZKMlZFKzBwMjZ0d0V0eGF5bXNYcTFLQ1ZMRUNBd0VBQWFBQU1BMEdDU3FHU0liM0RRRUJEUVVBCi1BNElCQVFCYjhqTnB0MG5rTlZXc3RWb09DZXBRU0Y1UjFSOWhGMHlFcjdtazNIQjlvTy9uSzA3UjFPYW1nancrCi1DSFFSZVRTaklLVVg1M283WndOWkI1RStqQkRzR3ovMll5ai92eE5ISkZrMmV4RUx0VzMwaGU4SzJvbVZIRTFGCi1YRVNiZnRDc3NXTE5wVFNEcTZNRTEyK2xsa0VEdGdDdGt2NjlvUlVrdXVGNUVTVVNaUkdJWk40VmxlZG04U00xCi11R0Z0YUcvUFhiQmJ0VWFOd05JU0RlSVdES1J0YnVjYTV3ZWIrUUVpMWRqaVVIMjFaV0lHRXBPeTdtdGtZbVJzCi1RdDFEMzJGb2FxRk5oYWZpYXhOSVhPMTF5ZDRsZ3BhRERsbXJPU0JzRUxjVElGOTkxNm8zRHdNZVZYeTBHT05XCi1CcndhTzhxOHJnK0MreHZNWTc4NThLazhrd2piCi0tLS0tLUVORCBDRVJUSUZJQ0FURSBSRVFVRVNULS0tLS0KZGlmZiAtLWdpdCBhL3Rlc3RzL2RhdGFfZmlsZXMvcGFyc2VfaW5wdXQvc2VydmVyMV9wYXRobGVuX2ludF9tYXgtMS5jcnQgYi90ZXN0cy9kYXRhX2ZpbGVzL3BhcnNlX2lucHV0L3NlcnZlcjFfcGF0aGxlbl9pbnRfbWF4LTEuY3J0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0OTQ0ODQ0Li4wMDAwMDAwCi0tLSBhL3Rlc3RzL2RhdGFfZmlsZXMvcGFyc2VfaW5wdXQvc2VydmVyMV9wYXRobGVuX2ludF9tYXgtMS5jcnQKKysrIC9kZXYvbnVsbApAQCAtMSwyMCArMCwwIEBACi0tLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KLU1JSURTRENDQWpDZ0F3SUJBZ0lCQVRBTkJna3Foa2lHOXcwQkFRVUZBREE3TVFzd0NRWURWUVFHRXdKT1RERVIKLU1BOEdBMVVFQ2d3SVVHOXNZWEpUVTB3eEdUQVhCZ05WQkFNTUVGQnZiR0Z5VTFOTUlGUmxjM1FnUTBFd0hoY04KLU1Ua3dNakV3TVRRME5EQTJXaGNOTWprd01qRXdNVFEwTkRBMldqQThNUXN3Q1FZRFZRUUdFd0pPVERFUk1BOEcKLUExVUVDZ3dJVUc5c1lYSlRVMHd4R2pBWUJnTlZCQU1NRVZCdmJHRnlVMU5NSUZObGNuWmxjaUF4TUlJQklqQU4KLUJna3Foa2lHOXcwQkFRRUZBQU9DQVE4QU1JSUJDZ0tDQVFFQXFRSWZQVUJxMVZWVGkvMDI3b0psTGhWaFhvbS8KLXVPaEZrTnZ1aUJaUzAvRkRVRWVXRWxsa2gydjlLK0JHK1hPKzNjK1M0WkZiN1dhZ2I0a3BlVVdBMElOcTFVRkQKLWQxODVmQWtFUjRLd1Z6bHc3YVBzRlJrZXFETUlSOEVGUXFuOVRNTzAzOTBHSDAwUVVVQm5jeE1QUVBodGdTVmYKLUNyRlR4akIrRlRtcytWcnVmNUtlcGdWYjV4T1hoYlVqa3RuVUpBYlZDU1dKZFFmZHBocVBQd2tadnExbExHVHIKLWxadmMva0ZlRjZiYWJGdHB6QUs2RkN3V0pKeEszTTNROTFKbmMvRXRvQ1A5ZnZReHlpMXd5b2tMQk5zdXBrOXcKLWJwN092VmlKNGxOWm5tNWFrbVhpaUQ4TWxCbWozZVhvblpVVDdTbmJxM0FTM0ZyS2F4ZXJVb0pVc1FJREFRQUIKLW8xWXdWREFTQmdOVkhSTUVDekFKQVFIL0FnUi8vLy8rTUIwR0ExVWREZ1FXQkJRZmROWS9LY0YwZEVVN0JSSXMKLVBhaTlRMWtDcGpBZkJnTlZIU01FR0RBV2dCUzBXdVNsczk3U1V2YTUxYWFWRCtzK3ZNZjkvekFOQmdrcWhraUcKLTl3MEJBUVVGQUFPQ0FRRUFmdXZxN0ZvbVFUU0ptR0luVndRalFkZGdvWHBubUNaOTdUcFZxN2pITENGQURvd1EKLWplaUFzeG1EOG13QVFxdy9CeTBVMlBTbVFjUzdWcm43TGUwbkZLTlJZWXJ0cHg1cnNURkp6Uy90UXNnQ2UwUGYKLXpoaUJnRDFEaHc2UFdBUG15K0psdmhKRjdSRW1Gc004S0hRZDB4U3ZKekIxZ0xOOUZWbG5kODdDNzNiZERKWlEKLVpkbjk3NytTbjVhbkFGR0hEV2VLbzhHWWFZR25QQlFxa1gwUTJFS1dSN3lyd2NLTW9nT2V2eEVMb2dCMGpSajMKLUwrbkJwejdtTzJKNlhRODVpcCt0TFdBR0NFSG8wb21BSVFvckFvQ1NxdExpYXo0N0h4T2ROSzBobk03VjVrOFAKLTA1QVZoeERhM1dxWjlGbU1hRGM4ajhYcW1PZ0tZVk1DNC9XUzBnPT0KLS0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KZGlmZiAtLWdpdCBhL3Rlc3RzL2RhdGFfZmlsZXMvcGFyc2VfaW5wdXQvc2VydmVyMV9wYXRobGVuX2ludF9tYXguY3J0IGIvdGVzdHMvZGF0YV9maWxlcy9wYXJzZV9pbnB1dC9zZXJ2ZXIxX3BhdGhsZW5faW50X21heC5jcnQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDUxN2UwZDYuLjAwMDAwMDAKLS0tIGEvdGVzdHMvZGF0YV9maWxlcy9wYXJzZV9pbnB1dC9zZXJ2ZXIxX3BhdGhsZW5faW50X21heC5jcnQKKysrIC9kZXYvbnVsbApAQCAtMSwyMCArMCwwIEBACi0tLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KLU1JSURTRENDQWpDZ0F3SUJBZ0lCQVRBTkJna3Foa2lHOXcwQkFRVUZBREE3TVFzd0NRWURWUVFHRXdKT1RERVIKLU1BOEdBMVVFQ2d3SVVHOXNZWEpUVTB3eEdUQVhCZ05WQkFNTUVGQnZiR0Z5VTFOTUlGUmxjM1FnUTBFd0hoY04KLU1Ua3dNakV3TVRRME5EQTJXaGNOTWprd01qRXdNVFEwTkRBMldqQThNUXN3Q1FZRFZRUUdFd0pPVERFUk1BOEcKLUExVUVDZ3dJVUc5c1lYSlRVMHd4R2pBWUJnTlZCQU1NRVZCdmJHRnlVMU5NSUZObGNuWmxjaUF4TUlJQklqQU4KLUJna3Foa2lHOXcwQkFRRUZBQU9DQVE4QU1JSUJDZ0tDQVFFQXFRSWZQVUJxMVZWVGkvMDI3b0psTGhWaFhvbS8KLXVPaEZrTnZ1aUJaUzAvRkRVRWVXRWxsa2gydjlLK0JHK1hPKzNjK1M0WkZiN1dhZ2I0a3BlVVdBMElOcTFVRkQKLWQxODVmQWtFUjRLd1Z6bHc3YVBzRlJrZXFETUlSOEVGUXFuOVRNTzAzOTBHSDAwUVVVQm5jeE1QUVBodGdTVmYKLUNyRlR4akIrRlRtcytWcnVmNUtlcGdWYjV4T1hoYlVqa3RuVUpBYlZDU1dKZFFmZHBocVBQd2tadnExbExHVHIKLWxadmMva0ZlRjZiYWJGdHB6QUs2RkN3V0pKeEszTTNROTFKbmMvRXRvQ1A5ZnZReHlpMXd5b2tMQk5zdXBrOXcKLWJwN092VmlKNGxOWm5tNWFrbVhpaUQ4TWxCbWozZVhvblpVVDdTbmJxM0FTM0ZyS2F4ZXJVb0pVc1FJREFRQUIKLW8xWXdWREFTQmdOVkhSTUVDekFKQVFIL0FnUi8vLy8vTUIwR0ExVWREZ1FXQkJRZmROWS9LY0YwZEVVN0JSSXMKLVBhaTlRMWtDcGpBZkJnTlZIU01FR0RBV2dCUzBXdVNsczk3U1V2YTUxYWFWRCtzK3ZNZjkvekFOQmdrcWhraUcKLTl3MEJBUVVGQUFPQ0FRRUFlNWpQUE15V3JLWUdsakpIMnVoMWdFaDdLb1lobUdJVWZZdTVBOFoyb3UwNHlGWmgKLUxEeVdKbmtFL3FwTmFJdzNrUHVveUdCVHRBRFl6dHRQdnhyZXRVbWFNeXRlT1FlOERLL21tcjh2bCtnYjU0WlAKLTJqVUUrUjI3SnA1R1NHZmwyMExOVlRCa0tKbG9TeURhVnpQSTNvemplMmxBc1hzaWw4TlRLYlZKdGZqWjl1bisKLW1HcnB5d1NWN1JwWkMyUHpuR0ZkcVFlaHd3bk9zY3owY1ZlTVFxR2NNUkgzRDVCazJTalZleENhUHU0N1FTeUUKLWZObTZjQVRpTkhqdy8yZGc1QXVlN2U0SytSNmxlK3hZM1F5ODVGcS9sS0RlTW1ickpSck55SjlsYmxDZWloVWQKLXFoa0FFUGVscGFxNVpSTTZjWUpRb28wQWs2NGo0c3ZqT1plRjBnPT0KLS0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KZGlmZiAtLWdpdCBhL3Rlc3RzL2RhdGFfZmlsZXMvcGFyc2VfaW5wdXQvc2VydmVyMi5jcnQgYi90ZXN0cy9kYXRhX2ZpbGVzL3BhcnNlX2lucHV0L3NlcnZlcjIuY3J0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwNzQ1MTk2Li4wMDAwMDAwCi0tLSBhL3Rlc3RzL2RhdGFfZmlsZXMvcGFyc2VfaW5wdXQvc2VydmVyMi5jcnQKKysrIC9kZXYvbnVsbApAQCAtMSwyMCArMCwwIEBACi0tLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KLU1JSUROekNDQWgrZ0F3SUJBZ0lCQWpBTkJna3Foa2lHOXcwQkFRVUZBREE3TVFzd0NRWURWUVFHRXdKT1RERVIKLU1BOEdBMVVFQ2d3SVVHOXNZWEpUVTB3eEdUQVhCZ05WQkFNTUVGQnZiR0Z5VTFOTUlGUmxjM1FnUTBFd0hoY04KLU1Ua3dNakV3TVRRME5EQTJXaGNOTWprd01qRXdNVFEwTkRBMldqQTBNUXN3Q1FZRFZRUUdFd0pPVERFUk1BOEcKLUExVUVDZ3dJVUc5c1lYSlRVMHd4RWpBUUJnTlZCQU1NQ1d4dlkyRnNhRzl6ZERDQ0FTSXdEUVlKS29aSWh2Y04KLUFRRUJCUUFEZ2dFUEFEQ0NBUW9DZ2dFQkFNRk5vOTNuelIzUkJOZEpjcmlackE1NDVEbzhTczg2RXhiUVd1VE4KLW93Q0lwKzRlYTVhblVyU1E3eTF5ZWo0a212eTJOS3drOVhmZ0ptU01uTEFvZmFIYTZvem15UnlXdlA3QkJGS3oKLU50U2ordUd4ZHRpUXdXRzBabEkyb2laVHFxdDBYZ2Q5R1lMYkt0Z2ZvTmtOSEMxSlp2ZGJKWE5HNkF1S1Qya00KLXRRQ1E0ZHFDRUdaOXJsUXJpMlY1a2FIaVljUE5RRWtJN21nTThZdUcwa2EvMExpcUVRTWVmMWFvR2g1RUdBOFAKLWhZdmFpMFJlNGhqR1lpL0habzM2WGRoOTh5ZUpLUUhGa0E0L0ovRXd5RW9PNzliZXg4Y25hOGNGUFhyRUFqeWEKLUhUNFA2RFNZVzh0elMxS1cyQkdpTElDSWFUbGEwdyt3M2xrdkVjZjM2aElCTUpjQ0F3RUFBYU5OTUVzd0NRWUQKLVZSMFRCQUl3QURBZEJnTlZIUTRFRmdRVXBRWG9aTGpjMzJBUFVCSk5ZS2hrcjAyTFE1TXdId1lEVlIwakJCZ3cKLUZvQVV0RnJrcGJQZTBsTDJ1ZFdtbFEvclByekgvZjh3RFFZSktvWklodmNOQVFFRkJRQURnZ0VCQUprbGczUTQKLWNCN3Y3QnpzeE0vdkx5S2NjTzZvcDAvZ1p6TTRnaHVMcTJZMzJrbDBzTTZrU05VVW1kdXVxM3UvK0dtVVpOMkEKLU8vN2MrSHc3aERGRUl2Wms5OGFCR2pDTHFuM0RtZ0hJdjhUb1E2N25lbGxReHgyVWozMDlQZGdqTmkvcjlIT2MKLUtOQVlQYkJjZzZNSkdXV2oyVEk2dk5hY2Vpb3MvRGhPWXg1VjBqNW5mcVNKL3BuVTBnOUlnbjJMQWhnWXBHSkUKLWlFTTl3VzdoRU1rd21rMGgvc3Fac3JKc0dINVlzRi9WVGhTcS9KVk8xZTJtWkgydnJ1eVpLSlZCcSs4dEROWXAKLUhrSzZ0U3lWWVFoekl0M1N0TUpXS01sL281azJBWXo2dFNDMTY0KzFvRytNTDNMV2c4WHJHS2E5MUg0VU9LYXAKLUF3Z2swKzRtMFQyNWNOcz0KLS0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KZGlmZiAtLWdpdCBhL3Rlc3RzL2RhdGFfZmlsZXMvcGFyc2VfaW5wdXQvc2VydmVyMi5jcnQuZGVyIGIvdGVzdHMvZGF0YV9maWxlcy9wYXJzZV9pbnB1dC9zZXJ2ZXIyLmNydC5kZXIKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDljZmE5YWIuLjAwMDAwMDAKLS0tIGEvdGVzdHMvZGF0YV9maWxlcy9wYXJzZV9pbnB1dC9zZXJ2ZXIyLmNydC5kZXIKKysrIC9kZXYvbnVsbApCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS90ZXN0cy9kYXRhX2ZpbGVzL3BhcnNlX2lucHV0L3NlcnZlcjMuY3J0IGIvdGVzdHMvZGF0YV9maWxlcy9wYXJzZV9pbnB1dC9zZXJ2ZXIzLmNydApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZWQwZDY5Ni4uMDAwMDAwMAotLS0gYS90ZXN0cy9kYXRhX2ZpbGVzL3BhcnNlX2lucHV0L3NlcnZlcjMuY3J0CisrKyAvZGV2L251bGwKQEAgLTEsMTcgKzAsMCBAQAotLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCi1NSUlDb2pDQ0FZcWdBd0lCQWdJQkRUQU5CZ2txaGtpRzl3MEJBUVVGQURBN01Rc3dDUVlEVlFRR0V3Sk9UREVSCi1NQThHQTFVRUNoTUlVRzlzWVhKVFUwd3hHVEFYQmdOVkJBTVRFRkJ2YkdGeVUxTk1JRlJsYzNRZ1EwRXdIaGNOCi1NVE13T0RBNU1Ea3hOekF6V2hjTk1qTXdPREEzTURreE56QXpXakEwTVFzd0NRWURWUVFHRXdKT1RERVJNQThHCi1BMVVFQ2hNSVVHOXNZWEpUVTB3eEVqQVFCZ05WQkFNVENXeHZZMkZzYUc5emREQkpNQk1HQnlxR1NNNDlBZ0VHCi1DQ3FHU000OUF3RUJBeklBQkgwQW9ReVVoUEFCUzM4eTY3dUVWczRPM1JYbUtLckJkVVI3L0wyUVBCOEVDMnA1Ci1mUWNzZWo2RUZhc3ZsVGRKLzZPQmtqQ0JqekFKQmdOVkhSTUVBakFBTUIwR0ExVWREZ1FXQkJUa0YyczJzZ2FKCi1PdGxlUTdiZ1pIMkhxMzNlTnpCakJnTlZIU01FWERCYWdCUzBXdVNsczk3U1V2YTUxYWFWRCtzK3ZNZjkvNkUvCi1wRDB3T3pFTE1Ba0dBMVVFQmhNQ1Rrd3hFVEFQQmdOVkJBb1RDRkJ2YkdGeVUxTk1NUmt3RndZRFZRUURFeEJRCi1iMnhoY2xOVFRDQlVaWE4wSUVOQmdnRUFNQTBHQ1NxR1NJYjNEUUVCQlFVQUE0SUJBUUJqbVNJakdLRDFlSDVXCi00YmwyTVhmTklzVHdjMnZ2L01BQWhCekJFYlRYZDNUMzcrekFHUEdqS25jdlRCK291ZlVWUkdrb0tiZm9DNkptCi1EWVNFVXV4dG5VWk9rby9DLy9YbENFdEswVHVTMmFMRXFGM2dKakJKVENmdGhFZEFoSkN0bVBBUURDemVLc2R4Ci1Db090SDBOUXg2WGw2NG9EdDJ3WVNRTldVVEdMUGZScGRzVkV2QkhoSFlBVFFpamtsMlpIOEJEanNZY0JpY3JTCi1xbUNlTiswVDFCOXZyT1FWRVplK2Z3Z3pWTDM4bjhsa0paTlBJYmRvdkE5V0xId1hBRXpQdjRsYTN3MHFoNFRiCi1rU2I4SHRJTGw0STQ3NFF4ckZ5d3lseVhSL3Ayem5QbGVSSVJnQjVIdFVwOXRMU1drQjBid01scVFsZzJFSFh1Ci1DQVExc1htUQotLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQpkaWZmIC0tZ2l0IGEvdGVzdHMvZGF0YV9maWxlcy9wYXJzZV9pbnB1dC9zZXJ2ZXI0LmNydCBiL3Rlc3RzL2RhdGFfZmlsZXMvcGFyc2VfaW5wdXQvc2VydmVyNC5jcnQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDk2YjFhYTcuLjAwMDAwMDAKLS0tIGEvdGVzdHMvZGF0YV9maWxlcy9wYXJzZV9pbnB1dC9zZXJ2ZXI0LmNydAorKysgL2Rldi9udWxsCkBAIC0xLDE4ICswLDAgQEAKLS0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQotTUlJQzZqQ0NBbkNnQXdJQkFnSUJDREFLQmdncWhrak9QUVFEQWpBK01Rc3dDUVlEVlFRR0V3Sk9UREVSTUE4RwotQTFVRUNoTUlVRzlzWVhKVFUwd3hIREFhQmdOVkJBTVRFMUJ2YkdGeWMzTnNJRlJsYzNRZ1JVTWdRMEV3SGhjTgotTVRNd09USTBNVFUxTWpBMFdoY05Nak13T1RJeU1UVTFNakEwV2pBME1Rc3dDUVlEVlFRR0V3Sk9UREVSTUE4RwotQTFVRUNoTUlVRzlzWVhKVFUwd3hFakFRQmdOVkJBTVRDV3h2WTJGc2FHOXpkRENDQVNJd0RRWUpLb1pJaHZjTgotQVFFQkJRQURnZ0VQQURDQ0FRb0NnZ0VCQUt2WGpMNVZmWWM3RC90cnVxRXBZY1pjdmxVaG51Q05ESmN0WURKTAotdmdZWWo1dXhEeExIQlh2bkVITGdPNUsrbHBzNDJwK3IvZGQ0b0U2NHR0Um9lWlpVdnIrN2VCblczNW4wRXBQQQotSWs5R3d1K3ZnN0dmeG1pZmdJUjhoWm5PUWt0Mk9qdnZwQ2hQQ3h2VWFpbHRCNDUwSXpoK21FSy9oWUZyKzdKbAotTm54UjFYUWxiYnlETTdFY3QxSHdZY3VTM01CbEJxcTA0OEorMEtFa1FYSUNTaktlSEZnYTllRENxK0p5ZnFlNQotYnQwSzMwaGwxTjAxNjRCN2FvaDA4RW9tbWUrYVN1QXN6K01zSjNtN0FPMkRVWWRyRHhscmt5MVFydlJXV2ZYMAotZDhkalRNK3VIVG8xRHZpUk02bzkrUDlEZm9GZDUzL1owS20wM3NWTFFXdlVyaEVDQXdFQUFhT0JuVENCbWpBSgotQmdOVkhSTUVBakFBTUIwR0ExVWREZ1FXQkJUQWxBbTErMEw0MW1ocVlXakZpZWpzUlZyR2VUQnVCZ05WSFNNRQotWnpCbGdCU2RiU0FrU1FFL0s4dDR0Um04ZmlUSjIvczJmS0ZDcEVBd1BqRUxNQWtHQTFVRUJoTUNUa3d4RVRBUAotQmdOVkJBb1RDRkJ2YkdGeVUxTk1NUnd3R2dZRFZRUURFeE5RYjJ4aGNuTnpiQ0JVWlhOMElFVkRJRU5CZ2drQQotd1VQaWZtSkR6T2d3Q2dZSUtvWkl6ajBFQXdJRGFBQXdaUUl4QVBXbHhuTWNqQmF4YVZpZVFZU0xCcXppelMzLwotTzhOYTZvd1JHUGswL1VLK2o1TzlOVEJIayt1WFcvZlFibEthbVFJd1VRbDRkbDZna1JERTRyQlIveUdqWloxWgotM2RFcHZMMldpbXQza2VEN0FjTHBZQjJGSjFtVmNZMVhRVWVLMVZmYwotLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQpkaWZmIC0tZ2l0IGEvdGVzdHMvZGF0YV9maWxlcy9wYXJzZV9pbnB1dC9zZXJ2ZXI1LWRpcmVjdG9yeW5hbWUtc2VxLW1hbGZvcm1lZC5jcnQuZGVyIGIvdGVzdHMvZGF0YV9maWxlcy9wYXJzZV9pbnB1dC9zZXJ2ZXI1LWRpcmVjdG9yeW5hbWUtc2VxLW1hbGZvcm1lZC5jcnQuZGVyCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0YjBjMzI1Li4wMDAwMDAwCi0tLSBhL3Rlc3RzL2RhdGFfZmlsZXMvcGFyc2VfaW5wdXQvc2VydmVyNS1kaXJlY3RvcnluYW1lLXNlcS1tYWxmb3JtZWQuY3J0LmRlcgorKysgL2Rldi9udWxsCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3Rlc3RzL2RhdGFfZmlsZXMvcGFyc2VfaW5wdXQvc2VydmVyNS1kaXJlY3RvcnluYW1lLmNydC5kZXIgYi90ZXN0cy9kYXRhX2ZpbGVzL3BhcnNlX2lucHV0L3NlcnZlcjUtZGlyZWN0b3J5bmFtZS5jcnQuZGVyCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0YmFkZWExLi4wMDAwMDAwCi0tLSBhL3Rlc3RzL2RhdGFfZmlsZXMvcGFyc2VfaW5wdXQvc2VydmVyNS1kaXJlY3RvcnluYW1lLmNydC5kZXIKKysrIC9kZXYvbnVsbApCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS90ZXN0cy9kYXRhX2ZpbGVzL3BhcnNlX2lucHV0L3NlcnZlcjUtZmFuLmNydC5kZXIgYi90ZXN0cy9kYXRhX2ZpbGVzL3BhcnNlX2lucHV0L3NlcnZlcjUtZmFuLmNydC5kZXIKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGRiNGU1YmQuLjAwMDAwMDAKLS0tIGEvdGVzdHMvZGF0YV9maWxlcy9wYXJzZV9pbnB1dC9zZXJ2ZXI1LWZhbi5jcnQuZGVyCisrKyAvZGV2L251bGwKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvdGVzdHMvZGF0YV9maWxlcy9wYXJzZV9pbnB1dC9zZXJ2ZXI1LW5vbi1jb21wbGlhbnQuY3J0IGIvdGVzdHMvZGF0YV9maWxlcy9wYXJzZV9pbnB1dC9zZXJ2ZXI1LW5vbi1jb21wbGlhbnQuY3J0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhYmVhMTdkLi4wMDAwMDAwCi0tLSBhL3Rlc3RzL2RhdGFfZmlsZXMvcGFyc2VfaW5wdXQvc2VydmVyNS1ub24tY29tcGxpYW50LmNydAorKysgL2Rldi9udWxsCkBAIC0xLDEyICswLDAgQEAKLS0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQotTUlJQndqQ0NBVWFnQXdJQkFnSUJBVEFNQmdncWhrak9QUVFEQWdVQU1ENHhDekFKQmdOVkJBWVRBazVNTVJFdwotRHdZRFZRUUtEQWhRYjJ4aGNsTlRUREVjTUJvR0ExVUVBd3dUVUc5c1lYSnpjMndnVkdWemRDQkZReUJEUVRBZQotRncwd01UQXhNREV3TURBd01EQmFGdzB6TURFeU16RXlNelU1TlRsYU1DUXhJakFnQmdOVkJBTU1HVlJsYzNRZwotUlVNZ1VrWkRJRzV2YmkxamIyMXdiR2xoYm5Rd1dUQVRCZ2NxaGtqT1BRSUJCZ2dxaGtqT1BRTUJCd05DQUFRMwotekZiWmRna2VXbkkreDFrdC95QnU3bno1QnBGMDBLMFV0ZmRvSWxsaWtrN2xBTmdqRWYvcUw5STBYVjBXdllxSQotd210M0RWWE5paW9PK2dISXRPMy9vMDB3U3pBSkJnTlZIUk1FQWpBQU1CMEdBMVVkRGdRV0JCUlFZYVdQMUFmWgotMTRJQkRPVmxmNHhqUnFjVHZqQWZCZ05WSFNNRUdEQVdnQlNkYlNBa1NRRS9LOHQ0dFJtOGZpVEoyL3MyZkRBTQotQmdncWhrak9QUVFEQWdVQUEyZ0FNR1VDTUFKM0ovRG9vRlNhQkcyT2h6eVdhaTMycTZJTkRaZm9TMmJUb1NLZgotZ3k2aGJKaUlYL0c5ZUZ0czUrQkpRM1FwamdJeEFMUm1JZ2RSOTFCRGRxcGVGNUpDbWhnamJmYmdNUTdtck1lUwotWkdmTnlGeWpTNzVRbklBNm5LcnlRbWdQWG8rc0NRPT0KLS0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KZGlmZiAtLWdpdCBhL3Rlc3RzL2RhdGFfZmlsZXMvcGFyc2VfaW5wdXQvc2VydmVyNS1ub25wcmludGFibGVfb3RoZXJuYW1lLmNydC5kZXIgYi90ZXN0cy9kYXRhX2ZpbGVzL3BhcnNlX2lucHV0L3NlcnZlcjUtbm9ucHJpbnRhYmxlX290aGVybmFtZS5jcnQuZGVyCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkZDBmYzdlLi4wMDAwMDAwCi0tLSBhL3Rlc3RzL2RhdGFfZmlsZXMvcGFyc2VfaW5wdXQvc2VydmVyNS1ub25wcmludGFibGVfb3RoZXJuYW1lLmNydC5kZXIKKysrIC9kZXYvbnVsbApCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS90ZXN0cy9kYXRhX2ZpbGVzL3BhcnNlX2lucHV0L3NlcnZlcjUtb3RoZXJuYW1lLmNydC5kZXIgYi90ZXN0cy9kYXRhX2ZpbGVzL3BhcnNlX2lucHV0L3NlcnZlcjUtb3RoZXJuYW1lLmNydC5kZXIKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDBlZjMxY2YuLjAwMDAwMDAKLS0tIGEvdGVzdHMvZGF0YV9maWxlcy9wYXJzZV9pbnB1dC9zZXJ2ZXI1LW90aGVybmFtZS5jcnQuZGVyCisrKyAvZGV2L251bGwKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvdGVzdHMvZGF0YV9maWxlcy9wYXJzZV9pbnB1dC9zZXJ2ZXI1LXNlY29uZC1kaXJlY3RvcnluYW1lLW9pZC1tYWxmb3JtZWQuY3J0LmRlciBiL3Rlc3RzL2RhdGFfZmlsZXMvcGFyc2VfaW5wdXQvc2VydmVyNS1zZWNvbmQtZGlyZWN0b3J5bmFtZS1vaWQtbWFsZm9ybWVkLmNydC5kZXIKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDcwNzRmZDguLjAwMDAwMDAKLS0tIGEvdGVzdHMvZGF0YV9maWxlcy9wYXJzZV9pbnB1dC9zZXJ2ZXI1LXNlY29uZC1kaXJlY3RvcnluYW1lLW9pZC1tYWxmb3JtZWQuY3J0LmRlcgorKysgL2Rldi9udWxsCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3Rlc3RzL2RhdGFfZmlsZXMvcGFyc2VfaW5wdXQvc2VydmVyNS1zaGExLmNydCBiL3Rlc3RzL2RhdGFfZmlsZXMvcGFyc2VfaW5wdXQvc2VydmVyNS1zaGExLmNydApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNzNlMmQxNy4uMDAwMDAwMAotLS0gYS90ZXN0cy9kYXRhX2ZpbGVzL3BhcnNlX2lucHV0L3NlcnZlcjUtc2hhMS5jcnQKKysrIC9kZXYvbnVsbApAQCAtMSwxNCArMCwwIEBACi0tLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KLU1JSUNIVENDQWFTZ0F3SUJBZ0lCRWpBSkJnY3Foa2pPUFFRQk1ENHhDekFKQmdOVkJBWVRBazVNTVJFd0R3WUQKLVZRUUtFd2hRYjJ4aGNsTlRUREVjTUJvR0ExVUVBeE1UVUc5c1lYSnpjMndnVkdWemRDQkZReUJEUVRBZUZ3MHgKLU16QTVNalF4TmpJeE1qZGFGdzB5TXpBNU1qSXhOakl4TWpkYU1EUXhDekFKQmdOVkJBWVRBazVNTVJFd0R3WUQKLVZRUUtFd2hRYjJ4aGNsTlRUREVTTUJBR0ExVUVBeE1KYkc5allXeG9iM04wTUZrd0V3WUhLb1pJemowQ0FRWUkKLUtvWkl6ajBEQVFjRFFnQUVOOHhXMlhZSkhscHlQc2RaTGY4Z2J1NTgrUWFSZE5DdEZMWDNhQ0paWXBKTzVRRFkKLUl4SC82aS9TTkYxZEZyMktpTUpyZHcxVnpZb3FEdm9CeUxUdC82T0JuVENCbWpBSkJnTlZIUk1FQWpBQU1CMEcKLUExVWREZ1FXQkJSUVlhV1AxQWZaMTRJQkRPVmxmNHhqUnFjVHZqQnVCZ05WSFNNRVp6QmxnQlNkYlNBa1NRRS8KLUs4dDR0Um04ZmlUSjIvczJmS0ZDcEVBd1BqRUxNQWtHQTFVRUJoTUNUa3d4RVRBUEJnTlZCQW9UQ0ZCdmJHRnkKLVUxTk1NUnd3R2dZRFZRUURFeE5RYjJ4aGNuTnpiQ0JVWlhOMElFVkRJRU5CZ2drQXdVUGlmbUpEek9nd0NRWUgKLUtvWkl6ajBFQVFOb0FEQmxBakVBeWp2elJXdHhiWHZrb1lUWVNRWTlnRkJwUDcvd1RaMnE2RmJSaUF1WlVMRnQKLWxjMFBNUERmVlpDaGdBNmlESCtCQWpCZGtPYjczZjJwT3dacE1ScXJPZ3FTeW5idDJ1V1k4N21DNWxSbE5Fb1IKLVdYRXYxQXpJZUJDdis4MUROMUl1dTR3PQotLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQpkaWZmIC0tZ2l0IGEvdGVzdHMvZGF0YV9maWxlcy9wYXJzZV9pbnB1dC9zZXJ2ZXI1LXNoYTIyNC5jcnQgYi90ZXN0cy9kYXRhX2ZpbGVzL3BhcnNlX2lucHV0L3NlcnZlcjUtc2hhMjI0LmNydApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNDdiMTE2OC4uMDAwMDAwMAotLS0gYS90ZXN0cy9kYXRhX2ZpbGVzL3BhcnNlX2lucHV0L3NlcnZlcjUtc2hhMjI0LmNydAorKysgL2Rldi9udWxsCkBAIC0xLDE0ICswLDAgQEAKLS0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQotTUlJQ0lEQ0NBYVdnQXdJQkFnSUJFekFLQmdncWhrak9QUVFEQVRBK01Rc3dDUVlEVlFRR0V3Sk9UREVSTUE4RwotQTFVRUNoTUlVRzlzWVhKVFUwd3hIREFhQmdOVkJBTVRFMUJ2YkdGeWMzTnNJRlJsYzNRZ1JVTWdRMEV3SGhjTgotTVRNd09USTBNVFl5TVRJM1doY05Nak13T1RJeU1UWXlNVEkzV2pBME1Rc3dDUVlEVlFRR0V3Sk9UREVSTUE4RwotQTFVRUNoTUlVRzlzWVhKVFUwd3hFakFRQmdOVkJBTVRDV3h2WTJGc2FHOXpkREJaTUJNR0J5cUdTTTQ5QWdFRwotQ0NxR1NNNDlBd0VIQTBJQUJEZk1WdGwyQ1I1YWNqN0hXUzMvSUc3dWZQa0drWFRRclJTMTkyZ2lXV0tTVHVVQQotMkNNUi8rb3YwalJkWFJhOWlvakNhM2NOVmMyS0tnNzZBY2kwN2YramdaMHdnWm93Q1FZRFZSMFRCQUl3QURBZAotQmdOVkhRNEVGZ1FVVUdHbGo5UUgyZGVDQVF6bFpYK01ZMGFuRTc0d2JnWURWUjBqQkdjd1pZQVVuVzBnSkVrQgotUHl2TGVMVVp2SDRreWR2N05ueWhRcVJBTUQ0eEN6QUpCZ05WQkFZVEFrNU1NUkV3RHdZRFZRUUtFd2hRYjJ4aAotY2xOVFRERWNNQm9HQTFVRUF4TVRVRzlzWVhKemMyd2dWR1Z6ZENCRlF5QkRRWUlKQU1GRDRuNWlROHpvTUFvRwotQ0NxR1NNNDlCQU1CQTJrQU1HWUNNUUNqMEV5RlV6RFJtZm9rV3pMVkVXTjBlcFI0L3NaeXRmSWVvenA2QnFXSAotcWFUQmRBUjJ2dGhJS0M3ZEt1VWtnMzRDTVFENll0QjJPOVZzbzc5Z2J6U2VuMnFoN2dLN1Z2R0UrMzFFVlBiUgotQ2Uvb05HLzNPZmhSU2RuM0ZPdkJCZzJVRXJNPQotLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQpkaWZmIC0tZ2l0IGEvdGVzdHMvZGF0YV9maWxlcy9wYXJzZV9pbnB1dC9zZXJ2ZXI1LXNoYTM4NC5jcnQgYi90ZXN0cy9kYXRhX2ZpbGVzL3BhcnNlX2lucHV0L3NlcnZlcjUtc2hhMzg0LmNydApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNWQ2YTc5Yi4uMDAwMDAwMAotLS0gYS90ZXN0cy9kYXRhX2ZpbGVzL3BhcnNlX2lucHV0L3NlcnZlcjUtc2hhMzg0LmNydAorKysgL2Rldi9udWxsCkBAIC0xLDE0ICswLDAgQEAKLS0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQotTUlJQ0h6Q0NBYVdnQXdJQkFnSUJGREFLQmdncWhrak9QUVFEQXpBK01Rc3dDUVlEVlFRR0V3Sk9UREVSTUE4RwotQTFVRUNoTUlVRzlzWVhKVFUwd3hIREFhQmdOVkJBTVRFMUJ2YkdGeWMzTnNJRlJsYzNRZ1JVTWdRMEV3SGhjTgotTVRNd09USTBNVFl5TVRJM1doY05Nak13T1RJeU1UWXlNVEkzV2pBME1Rc3dDUVlEVlFRR0V3Sk9UREVSTUE4RwotQTFVRUNoTUlVRzlzWVhKVFUwd3hFakFRQmdOVkJBTVRDV3h2WTJGc2FHOXpkREJaTUJNR0J5cUdTTTQ5QWdFRwotQ0NxR1NNNDlBd0VIQTBJQUJEZk1WdGwyQ1I1YWNqN0hXUzMvSUc3dWZQa0drWFRRclJTMTkyZ2lXV0tTVHVVQQotMkNNUi8rb3YwalJkWFJhOWlvakNhM2NOVmMyS0tnNzZBY2kwN2YramdaMHdnWm93Q1FZRFZSMFRCQUl3QURBZAotQmdOVkhRNEVGZ1FVVUdHbGo5UUgyZGVDQVF6bFpYK01ZMGFuRTc0d2JnWURWUjBqQkdjd1pZQVVuVzBnSkVrQgotUHl2TGVMVVp2SDRreWR2N05ueWhRcVJBTUQ0eEN6QUpCZ05WQkFZVEFrNU1NUkV3RHdZRFZRUUtFd2hRYjJ4aAotY2xOVFRERWNNQm9HQTFVRUF4TVRVRzlzWVhKemMyd2dWR1Z6ZENCRlF5QkRRWUlKQU1GRDRuNWlROHpvTUFvRwotQ0NxR1NNNDlCQU1EQTJnQU1HVUNNUUNuc2QvNlZCMmtMSXFNUnNXZGtKdlJhUVJPeUFnNzhDUUV4RkVZM0NNdgotOXQwa1dSWFBjNG5DTUg2OVJqUVZ2QzRDTUI0bGs5QTdoblgyelF5M2JiVWhPQ092WGNzUWRFZThBTWdKQnZpegotNU5vYjJ3VGhScXNtMXdqQ0Y2MGZ5elhXdUE9PQotLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQpkaWZmIC0tZ2l0IGEvdGVzdHMvZGF0YV9maWxlcy9wYXJzZV9pbnB1dC9zZXJ2ZXI1LXNoYTUxMi5jcnQgYi90ZXN0cy9kYXRhX2ZpbGVzL3BhcnNlX2lucHV0L3NlcnZlcjUtc2hhNTEyLmNydApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMTYxMTJhYy4uMDAwMDAwMAotLS0gYS90ZXN0cy9kYXRhX2ZpbGVzL3BhcnNlX2lucHV0L3NlcnZlcjUtc2hhNTEyLmNydAorKysgL2Rldi9udWxsCkBAIC0xLDE0ICswLDAgQEAKLS0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQotTUlJQ0h6Q0NBYVdnQXdJQkFnSUJGVEFLQmdncWhrak9QUVFEQkRBK01Rc3dDUVlEVlFRR0V3Sk9UREVSTUE4RwotQTFVRUNoTUlVRzlzWVhKVFUwd3hIREFhQmdOVkJBTVRFMUJ2YkdGeWMzTnNJRlJsYzNRZ1JVTWdRMEV3SGhjTgotTVRNd09USTBNVFl5TVRJM1doY05Nak13T1RJeU1UWXlNVEkzV2pBME1Rc3dDUVlEVlFRR0V3Sk9UREVSTUE4RwotQTFVRUNoTUlVRzlzWVhKVFUwd3hFakFRQmdOVkJBTVRDV3h2WTJGc2FHOXpkREJaTUJNR0J5cUdTTTQ5QWdFRwotQ0NxR1NNNDlBd0VIQTBJQUJEZk1WdGwyQ1I1YWNqN0hXUzMvSUc3dWZQa0drWFRRclJTMTkyZ2lXV0tTVHVVQQotMkNNUi8rb3YwalJkWFJhOWlvakNhM2NOVmMyS0tnNzZBY2kwN2YramdaMHdnWm93Q1FZRFZSMFRCQUl3QURBZAotQmdOVkhRNEVGZ1FVVUdHbGo5UUgyZGVDQVF6bFpYK01ZMGFuRTc0d2JnWURWUjBqQkdjd1pZQVVuVzBnSkVrQgotUHl2TGVMVVp2SDRreWR2N05ueWhRcVJBTUQ0eEN6QUpCZ05WQkFZVEFrNU1NUkV3RHdZRFZRUUtFd2hRYjJ4aAotY2xOVFRERWNNQm9HQTFVRUF4TVRVRzlzWVhKemMyd2dWR1Z6ZENCRlF5QkRRWUlKQU1GRDRuNWlROHpvTUFvRwotQ0NxR1NNNDlCQU1FQTJnQU1HVUNNRlBMMk9JOGFyY2JSbEtBYlJiL1lmR2libzRNd3RzOEtYM2ZPdVJDYlhFbgotcERXZWI4MmtCcWZYd3pQSndhbUZPd0l4QVBHenloV3J4bjBxRXluV1Y1bnpGSzAyUFlCbllGZ0NsSVN5eXVkSAotSEpHSHRiRVZSYzVKQThBTG5nZ2FMVnB1dmc9PQotLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQpkaWZmIC0tZ2l0IGEvdGVzdHMvZGF0YV9maWxlcy9wYXJzZV9pbnB1dC9zZXJ2ZXI1LXR3by1kaXJlY3RvcnluYW1lcy5jcnQuZGVyIGIvdGVzdHMvZGF0YV9maWxlcy9wYXJzZV9pbnB1dC9zZXJ2ZXI1LXR3by1kaXJlY3RvcnluYW1lcy5jcnQuZGVyCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjOThhMDE4Li4wMDAwMDAwCi0tLSBhL3Rlc3RzL2RhdGFfZmlsZXMvcGFyc2VfaW5wdXQvc2VydmVyNS10d28tZGlyZWN0b3J5bmFtZXMuY3J0LmRlcgorKysgL2Rldi9udWxsCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3Rlc3RzL2RhdGFfZmlsZXMvcGFyc2VfaW5wdXQvc2VydmVyNS11bnN1cHBvcnRlZF9vdGhlcm5hbWUuY3J0LmRlciBiL3Rlc3RzL2RhdGFfZmlsZXMvcGFyc2VfaW5wdXQvc2VydmVyNS11bnN1cHBvcnRlZF9vdGhlcm5hbWUuY3J0LmRlcgpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMWQ5YzIwNS4uMDAwMDAwMAotLS0gYS90ZXN0cy9kYXRhX2ZpbGVzL3BhcnNlX2lucHV0L3NlcnZlcjUtdW5zdXBwb3J0ZWRfb3RoZXJuYW1lLmNydC5kZXIKKysrIC9kZXYvbnVsbApCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS90ZXN0cy9kYXRhX2ZpbGVzL3BhcnNlX2lucHV0L3NlcnZlcjUuY3J0IGIvdGVzdHMvZGF0YV9maWxlcy9wYXJzZV9pbnB1dC9zZXJ2ZXI1LmNydApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNDU5NzQyOC4uMDAwMDAwMAotLS0gYS90ZXN0cy9kYXRhX2ZpbGVzL3BhcnNlX2lucHV0L3NlcnZlcjUuY3J0CisrKyAvZGV2L251bGwKQEAgLTEsMTQgKzAsMCBAQAotLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCi1NSUlDSHpDQ0FhV2dBd0lCQWdJQkNUQUtCZ2dxaGtqT1BRUURBakErTVFzd0NRWURWUVFHRXdKT1RERVJNQThHCi1BMVVFQ2hNSVVHOXNZWEpUVTB3eEhEQWFCZ05WQkFNVEUxQnZiR0Z5YzNOc0lGUmxjM1FnUlVNZ1EwRXdIaGNOCi1NVE13T1RJME1UVTFNakEwV2hjTk1qTXdPVEl5TVRVMU1qQTBXakEwTVFzd0NRWURWUVFHRXdKT1RERVJNQThHCi1BMVVFQ2hNSVVHOXNZWEpUVTB3eEVqQVFCZ05WQkFNVENXeHZZMkZzYUc5emREQlpNQk1HQnlxR1NNNDlBZ0VHCi1DQ3FHU000OUF3RUhBMElBQkRmTVZ0bDJDUjVhY2o3SFdTMy9JRzd1ZlBrR2tYVFFyUlMxOTJnaVdXS1NUdVVBCi0yQ01SLytvdjBqUmRYUmE5aW9qQ2EzY05WYzJLS2c3NkFjaTA3ZitqZ1owd2dab3dDUVlEVlIwVEJBSXdBREFkCi1CZ05WSFE0RUZnUVVVR0dsajlRSDJkZUNBUXpsWlgrTVkwYW5FNzR3YmdZRFZSMGpCR2N3WllBVW5XMGdKRWtCCi1QeXZMZUxVWnZINGt5ZHY3Tm55aFFxUkFNRDR4Q3pBSkJnTlZCQVlUQWs1TU1SRXdEd1lEVlFRS0V3aFFiMnhoCi1jbE5UVERFY01Cb0dBMVVFQXhNVFVHOXNZWEp6YzJ3Z1ZHVnpkQ0JGUXlCRFFZSUpBTUZENG41aVE4em9NQW9HCi1DQ3FHU000OUJBTUNBMmdBTUdVQ01RQ2FMRnpYcHR1aTVXUU44TGxPM2RkaDFoTXh4NnR6Z0x2VDAzTVRWSzJTCi1DMTJyMEx6M3JpL21vU0VwTlpXcVBqa0NNQ0UyZjUzR1hjWUxxeWZ5SlIwNzhjL3hOU1VVNStYeGw3Vlo0MTRWCi1mR2E1a0h2SEFSQlBjOFlBSVZJcUR2SEgxUT09Ci0tLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCmRpZmYgLS1naXQgYS90ZXN0cy9kYXRhX2ZpbGVzL3BhcnNlX2lucHV0L3NlcnZlcjUucmVxLnNoYTEgYi90ZXN0cy9kYXRhX2ZpbGVzL3BhcnNlX2lucHV0L3NlcnZlcjUucmVxLnNoYTEKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDFhMTRhMTUuLjAwMDAwMDAKLS0tIGEvdGVzdHMvZGF0YV9maWxlcy9wYXJzZV9pbnB1dC9zZXJ2ZXI1LnJlcS5zaGExCisrKyAvZGV2L251bGwKQEAgLTEsOCArMCwwIEBACi0tLS0tLUJFR0lOIENFUlRJRklDQVRFIFJFUVVFU1QtLS0tLQotTUlJQkdEQ0J2d0lCQURBME1Rc3dDUVlEVlFRR0V3Sk9UREVSTUE4R0ExVUVDaE1JVUc5c1lYSlRVMHd4RWpBUQotQmdOVkJBTVRDV3h2WTJGc2FHOXpkREJaTUJNR0J5cUdTTTQ5QWdFR0NDcUdTTTQ5QXdFSEEwSUFCRGZNVnRsMgotQ1I1YWNqN0hXUzMvSUc3dWZQa0drWFRRclJTMTkyZ2lXV0tTVHVVQTJDTVIvK292MGpSZFhSYTlpb2pDYTNjTgotVmMyS0tnNzZBY2kwN2YrZ0tUQW5CZ2txaGtpRzl3MEJDUTR4R2pBWU1Ba0dBMVVkRXdRQ01BQXdDd1lEVlIwUAotQkFRREFnWGdNQWtHQnlxR1NNNDlCQUVEU1FBd1JnSWhBTFNmMk1qM2VyK29jWkNOKythRW9JcDVQUTlKQ2tQWQotYjg4Z2h1VHlTN0RDQWlFQStDblZ6Tk4wSTJrcG5tS1VPVWNYeExjam9QYUxST2d4dHViRHZLdjVja009Ci0tLS0tLUVORCBDRVJUSUZJQ0FURSBSRVFVRVNULS0tLS0KZGlmZiAtLWdpdCBhL3Rlc3RzL2RhdGFfZmlsZXMvcGFyc2VfaW5wdXQvc2VydmVyNS5yZXEuc2hhMjI0IGIvdGVzdHMvZGF0YV9maWxlcy9wYXJzZV9pbnB1dC9zZXJ2ZXI1LnJlcS5zaGEyMjQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDI3NjY4MzQuLjAwMDAwMDAKLS0tIGEvdGVzdHMvZGF0YV9maWxlcy9wYXJzZV9pbnB1dC9zZXJ2ZXI1LnJlcS5zaGEyMjQKKysrIC9kZXYvbnVsbApAQCAtMSw4ICswLDAgQEAKLS0tLS0tQkVHSU4gQ0VSVElGSUNBVEUgUkVRVUVTVC0tLS0tCi1NSUlCR0RDQnZ3SUJBREEwTVFzd0NRWURWUVFHRXdKT1RERVJNQThHQTFVRUNoTUlVRzlzWVhKVFUwd3hFakFRCi1CZ05WQkFNVENXeHZZMkZzYUc5emREQlpNQk1HQnlxR1NNNDlBZ0VHQ0NxR1NNNDlBd0VIQTBJQUJEZk1WdGwyCi1DUjVhY2o3SFdTMy9JRzd1ZlBrR2tYVFFyUlMxOTJnaVdXS1NUdVVBMkNNUi8rb3YwalJkWFJhOWlvakNhM2NOCi1WYzJLS2c3NkFjaTA3ZitnS1RBbkJna3Foa2lHOXcwQkNRNHhHakFZTUFrR0ExVWRFd1FDTUFBd0N3WURWUjBQCi1CQVFEQWdYZ01Bb0dDQ3FHU000OUJBTUJBMGdBTUVVQ0lEWWFOMW05TVJrNW1oWDFVOGFaS2QwYWx5R0tXcWNSCi1vZ2xGMk1zSWlpLzJBaUVBakZIczhYUTBRNHlERjhvTHp0Q3hscTNuQXZxbVBkUXo5VCtUa0VmaCtQQT0KLS0tLS0tRU5EIENFUlRJRklDQVRFIFJFUVVFU1QtLS0tLQpkaWZmIC0tZ2l0IGEvdGVzdHMvZGF0YV9maWxlcy9wYXJzZV9pbnB1dC9zZXJ2ZXI1LnJlcS5zaGEyNTYgYi90ZXN0cy9kYXRhX2ZpbGVzL3BhcnNlX2lucHV0L3NlcnZlcjUucmVxLnNoYTI1NgpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYzU5ZTE1Zi4uMDAwMDAwMAotLS0gYS90ZXN0cy9kYXRhX2ZpbGVzL3BhcnNlX2lucHV0L3NlcnZlcjUucmVxLnNoYTI1NgorKysgL2Rldi9udWxsCkBAIC0xLDggKzAsMCBAQAotLS0tLS1CRUdJTiBDRVJUSUZJQ0FURSBSRVFVRVNULS0tLS0KLU1JSUJGekNCdndJQkFEQTBNUXN3Q1FZRFZRUUdFd0pPVERFUk1BOEdBMVVFQ2hNSVVHOXNZWEpUVTB3eEVqQVEKLUJnTlZCQU1UQ1d4dlkyRnNhRzl6ZERCWk1CTUdCeXFHU000OUFnRUdDQ3FHU000OUF3RUhBMElBQkRmTVZ0bDIKLUNSNWFjajdIV1MzL0lHN3VmUGtHa1hUUXJSUzE5MmdpV1dLU1R1VUEyQ01SLytvdjBqUmRYUmE5aW9qQ2EzY04KLVZjMktLZzc2QWNpMDdmK2dLVEFuQmdrcWhraUc5dzBCQ1E0eEdqQVlNQWtHQTFVZEV3UUNNQUF3Q3dZRFZSMFAKLUJBUURBZ1hnTUFvR0NDcUdTTTQ5QkFNQ0EwY0FNRVFDSUdtUkZkampkNTNvTTJacHQzRTV2ZnF1am5BK0RIV2sKLXM5T3VkY1NXQmRqbUFpQTdCQVlqR25YeUw2QVRQcU03cW5MVkdUZjNKTVQrMXJYbDdlc0JtLzBBUEE9PQotLS0tLS1FTkQgQ0VSVElGSUNBVEUgUkVRVUVTVC0tLS0tCmRpZmYgLS1naXQgYS90ZXN0cy9kYXRhX2ZpbGVzL3BhcnNlX2lucHV0L3NlcnZlcjUucmVxLnNoYTM4NCBiL3Rlc3RzL2RhdGFfZmlsZXMvcGFyc2VfaW5wdXQvc2VydmVyNS5yZXEuc2hhMzg0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4NzU1NmM2Li4wMDAwMDAwCi0tLSBhL3Rlc3RzL2RhdGFfZmlsZXMvcGFyc2VfaW5wdXQvc2VydmVyNS5yZXEuc2hhMzg0CisrKyAvZGV2L251bGwKQEAgLTEsOCArMCwwIEBACi0tLS0tLUJFR0lOIENFUlRJRklDQVRFIFJFUVVFU1QtLS0tLQotTUlJQkZ6Q0J2d0lCQURBME1Rc3dDUVlEVlFRR0V3Sk9UREVSTUE4R0ExVUVDaE1JVUc5c1lYSlRVMHd4RWpBUQotQmdOVkJBTVRDV3h2WTJGc2FHOXpkREJaTUJNR0J5cUdTTTQ5QWdFR0NDcUdTTTQ5QXdFSEEwSUFCRGZNVnRsMgotQ1I1YWNqN0hXUzMvSUc3dWZQa0drWFRRclJTMTkyZ2lXV0tTVHVVQTJDTVIvK292MGpSZFhSYTlpb2pDYTNjTgotVmMyS0tnNzZBY2kwN2YrZ0tUQW5CZ2txaGtpRzl3MEJDUTR4R2pBWU1Ba0dBMVVkRXdRQ01BQXdDd1lEVlIwUAotQkFRREFnWGdNQW9HQ0NxR1NNNDlCQU1EQTBjQU1FUUNJRG5PK1BJUFpKR3Fpa3k5dW52cTEzdVh4YWh3MWJwawotWmI1TlJWMGMwNlE1QWlBbzVCNDl0cDNrRE4vbjBCRE50MUJCR0xVZmhjVStRbjJTUWVuQ3lmdUdMZz09Ci0tLS0tLUVORCBDRVJUSUZJQ0FURSBSRVFVRVNULS0tLS0KZGlmZiAtLWdpdCBhL3Rlc3RzL2RhdGFfZmlsZXMvcGFyc2VfaW5wdXQvc2VydmVyNS5yZXEuc2hhNTEyIGIvdGVzdHMvZGF0YV9maWxlcy9wYXJzZV9pbnB1dC9zZXJ2ZXI1LnJlcS5zaGE1MTIKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDYwNzc0MWUuLjAwMDAwMDAKLS0tIGEvdGVzdHMvZGF0YV9maWxlcy9wYXJzZV9pbnB1dC9zZXJ2ZXI1LnJlcS5zaGE1MTIKKysrIC9kZXYvbnVsbApAQCAtMSw4ICswLDAgQEAKLS0tLS0tQkVHSU4gQ0VSVElGSUNBVEUgUkVRVUVTVC0tLS0tCi1NSUlCR0RDQnZ3SUJBREEwTVFzd0NRWURWUVFHRXdKT1RERVJNQThHQTFVRUNoTUlVRzlzWVhKVFUwd3hFakFRCi1CZ05WQkFNVENXeHZZMkZzYUc5emREQlpNQk1HQnlxR1NNNDlBZ0VHQ0NxR1NNNDlBd0VIQTBJQUJEZk1WdGwyCi1DUjVhY2o3SFdTMy9JRzd1ZlBrR2tYVFFyUlMxOTJnaVdXS1NUdVVBMkNNUi8rb3YwalJkWFJhOWlvakNhM2NOCi1WYzJLS2c3NkFjaTA3ZitnS1RBbkJna3Foa2lHOXcwQkNRNHhHakFZTUFrR0ExVWRFd1FDTUFBd0N3WURWUjBQCi1CQVFEQWdYZ01Bb0dDQ3FHU000OUJBTUVBMGdBTUVVQ0lRRDh4ZHRsdVRpQkpNNTBkL1d2RGVVdlBiWE9VTWxMCi04eEVKWFUyV09LK1JMQUlnUzhVNlo4dGxKcFhMRWlzei9qNGdkQUJHM1kzaDRQQkpqbHBzekZpc1RObz0KLS0tLS0tRU5EIENFUlRJRklDQVRFIFJFUVVFU1QtLS0tLQpkaWZmIC0tZ2l0IGEvdGVzdHMvZGF0YV9maWxlcy9wYXJzZV9pbnB1dC9zZXJ2ZXI3X2FsbF9zcGFjZS5jcnQgYi90ZXN0cy9kYXRhX2ZpbGVzL3BhcnNlX2lucHV0L3NlcnZlcjdfYWxsX3NwYWNlLmNydApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYTk3OTgzMC4uMDAwMDAwMAotLS0gYS90ZXN0cy9kYXRhX2ZpbGVzL3BhcnNlX2lucHV0L3NlcnZlcjdfYWxsX3NwYWNlLmNydAorKysgL2Rldi9udWxsCkBAIC0xLDQ3ICswLDAgQEAKLS0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQotTUlJRHdqQ0NBYXFnQXdJQkFnSUJFREFOQmdrcWhraUc5dzBCQVFzRkFEQklNUXN3Q1FZRFZRUUdFd0pPVERFUgotTUE4R0ExVUVDaE1JVUc5c1lYSlRVMHd4SmpBa0JnTlZCQU1USFZCdmJHRnlVMU5NSUZSbGMzUWdTVzUwWlhKdAotWldScFlYUmxJRU5CTUI0WERURXpNRGt5TkRFMk1USXlORm9YRFRJek1Ea3lNakUyTVRJeU5Gb3dOREVMTUFrIEcKLUExVUVCaE1DVGt3eEVUQVBCZ05WQkFvVENGQnZiR0Z5VTFOTU1SSXdFQVlEVlFRREV3bHNiMk5oYkdodmMzUXcKLVdUQVRCZ2NxaGtqT1BRSUJCZ2dxaGtqT1BRTUJCd05DQUFRY2JmZnAycVhxb1p5eWNobW9DUnh6cmQ0VnU5Nm0KLTQ3TlBCZWh0RUM0NmFUZVhnRG5CZGYrK3puQUJyQXRmWEJSTlF6OEFSSWVZQm1za3IyMnJsS2p5bzRHVk1JR1MKLU1Ba0dBMVVkRXdRQ01BQXdIUVlEVlIwT0JCWUVGTklLMDZWM0g4NVZzRnhHb281emJMK2hZQ2E3TUdZR0ExVWQKLUl3UmZNRjJBRkRoMzJHdDNuQ2gzZ290TzJCdXBIdmVVRnJjT29VS2tRREErTVFzd0NRWURWUVFHRXdKT1RERVIKLU1BOEdBMVVFQ2hNSVVHOXNZWEpUVTB3eEhEQWFCZ05WQkFNVEUxQnZiR0Z5YzNOc0lGUmxjM1FnUlVNZ1EwR0MKLUFRNHdEUVlKS29aSWh2Y05BUUVMQlFBRGdnSUJBRFJvUTVmSEt3K3ZrbDBEM2FxTFgxWHJaaWRiKzI1QVdiaHIKLUZZWGRhc2tOMjE5UHJYQkwzY1Y4eDV0SzZxc1BLU3l5dzFsdWU4ME9taFhzL3c3UEprT0hIVVNXUm5tVHY3bHIKLThVczNaci95T0YvVlZxemRHczdEbE9UcHl6RUJkdWdJOXVhci9hQ3FIRG9sdE44d09kdU9vUUI5YW9qWXBST2oKLStnamxFTzBtZ3QvODdYcGpZT2lnMW8wanY0NFFZRFFaUXpwajF6ZUluNldNZTZ4azlZRHdDTE1qUklwZysrYzcKLVF5eHZjRUpUbjgwd1gxU2FFQk0yZ2F1OTdHN2JPUkxNd0JWa01UNG9TWStpS1lncFBwYXdPbk1KYnFVUDczRG0KLXlmSkV4RGRyVy9CYldaL3ZLSWNTcVNaSWJrSGRrTmpVRFZIY3p5VndReFp4enZMRncvQjFrOXM3allGc2k1ZUsKLVROQWRYRmE0ZXQxSDJzZCt1aHUyNEd4c2ptSmlvRHJmdGl4Y2d6UFZCakRDakg4UVdrQkVYMjkyV0o1OG9uMGUKLWRlV0xwWlVuelBkRTFCNHJzaVB3MVZnMjhtR2dyMk8xeGdCUXIvZng2QSs4SXROVHpBWGJaZkVjdWx0OXlwd00KLTBiNllETmU1SXZkS2s4aXd6M21vZjBWTnk0N0s2eG9DYUUvZnh4V2tqb1hLOHgyd2Zzd0dlUDJRZ1V6UUU5M2IKLU90amRIcHNHMWM3Z0lWRlFtS0FUeUFQVXo0dnFtZXpnTlJsZVhVMG9MMFBZdG9DbUtRNTFVak5NVWZtTzl4Q2oKLVZKYU5hMmlUUTVEZ2ljK0NXNFRZQWdqNS85ZzlYM1dmd25ETnhyWjBVeHhhd0dFbGN6SFhxYnJObGVUdFBhS3AKLWE4U2k2VUs1Ci0tLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCi0tLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KLU1JSUVBVENDQTRlZ0F3SUJBZ0lCRGpBS0JnZ3Foa2pPUFFRREFqQStNUXN3Q1FZRFZRUUdFd0pPVERFUk1BOEcKLUExVUVDaE1JVUc5c1lYSlRVMHd4SERBYUJnTlZCQU1URTFCdmJHRnljM05zSUZSbGMzUWdSVU1nUTBFd0hoY04KLU1UTXdPVEkwTVRVMU5URTBXaGNOTWpNd09USXlNVFUxTlRFMFdqQklNUXN3Q1FZRFZRUUdFd0pPVERFUk1BOEcKLUExVUVDaE1JVUc5c1lYSlRVMHd4SmpBa0JnTlZCQU1USFZCdmJHRnlVMU5NSUZSbGMzUWdTVzUwWlhKdFpXUnAKLVlYUmxJRU5CTUlJQ0lqQU5CZ2txaGtpRzl3MEJBUUVGQUFPQ0FnOEFNSUlDQ2dLQ0FnRUFvMU9jOG5yNmZNVHEKLXZvd1YrQ3BDNTVpNUJaR0ZHYzUwRWI0UkxCU1JUSDFlN0plcGRGakFWYkJ0eVFSSlNpWTFqYTB0Z0xRRERLWlIKLXdmRUkrYjRhenNlNDYwSW5QSHY3QzFUTjB1cFhseHVqNm05QjFJbFArc0JhTTdXQkM2ZFZmUE8ralZNSXhna0YKLUNhQkNMaGhkSzFGamY4SGprVC9Qa2N0V25obzhOVHdpdmM5K25xUlpqWGUvZUljcW01SHdqRERodStneitvMGcKLVZ6OU1mWk5pMUp5Q3JPeU5aY3krY3IyUWVObk5WR25GcTh4VHh0dTZkTHVuaHBtTEZqMm1tMFZqd2E3WXBqNXEKLUFqcHFUTXREdnFiUnVUb3lveXphamhNTmNDQWY3Z3d6SXVwSkpGVmRqZHRnWUFjUXd6aWt3RjVIb0lUSnp6SjIKLXFneEY3Q212R1pOYjdHOTltTGRMZGh0Y2xIM3dBUUtIWXdFR0pvN1hLeU5FdUhQUWdCK2UwY2cxU0QxSHFsQU0KLXVDZkdHVFdRNm1lN0JqYW4zdDBOem9UZERxNklwS1Rlc2JhWSsvOWUyeG44RENyaEJLTFhRTVpGRFpxVW9MWUEKLWtHUE9FR2d2bFBuSUlYQWF3b3V4Q2FOWUVoNVV3ODcxWU1TUFQyOHJMZEZyNDlkd1lPdERnOWZvQThoRElXMlAKLWQ2S1hiclp0ZWVzdkExbll6RU9zKzNBanJiVDc5TWQyVzhCejlicUJWTmxOT0VTU3FtNGtpQ0pGbXNsbS82YnIKLU5wME1TUWQrbzIyUFE0eFJ0bVA2VXNUZlUwdWVpTXBZYzhUWVloTWJmbmZGeW80bTcwN2ViY2ZsUGJCRU4yZGcKLXVwZFE2NmN2ZkNKQjBRSnQ5dXBhZlkwbHBkVjFxVWtDQXdFQUFhT0JvRENCblRBZEJnTlZIUTRFRmdRVU9IZiBZCi1hM2VjS0hlQ2kwN1lHNmtlOTVRV3R3NHdiZ1lEVlIwakJHY3daWUFVblcwZ0pFa0JQeXZMZUxVWnZINGt5ZHY3Ci1ObnloUXFSQU1ENHhDekFKQmdOVkJBWVRBazVNTVJFd0R3WURWUVFLRXdoUWIyeGhjbE5UVERFY01Cb0dBMVVFCi1BeE1UVUc5c1lYSnpjMndnVkdWemRDQkZReUJEUVlJSkFNRkQ0bjVpUTh6b01Bd0dBMVVkRXdRRk1BTUJBZjh3Ci1DZ1lJS29aSXpqMEVBd0lEYUFBd1pRSXhBUHlFK3UrZVA3Z1JyU0ZqUWljbXBZZzhqaUZVQ1lFb3dXWTJ6dU9HCi1pMUhYWXdtcERIZmFzUTNyTlN1Zi9nSHZqd0l3YlNTanVtRGsrdVlOY2kvS01FTERzRDBNRkh4WmhoQmM5SHA5Ci1BZjVjTlI4S2h6ZWd6bkw2YW1ST2JHR0ttWDFGCi0tLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCmRpZmYgLS1naXQgYS90ZXN0cy9kYXRhX2ZpbGVzL3BhcnNlX2lucHV0L3NlcnZlcjdfaW50LWNhLmNydCBiL3Rlc3RzL2RhdGFfZmlsZXMvcGFyc2VfaW5wdXQvc2VydmVyN19pbnQtY2EuY3J0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkM2RkYzQ2Li4wMDAwMDAwCi0tLSBhL3Rlc3RzL2RhdGFfZmlsZXMvcGFyc2VfaW5wdXQvc2VydmVyN19pbnQtY2EuY3J0CisrKyAvZGV2L251bGwKQEAgLTEsNDcgKzAsMCBAQAotLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCi1NSUlEd2pDQ0FhcWdBd0lCQWdJQkVEQU5CZ2txaGtpRzl3MEJBUXNGQURCSU1Rc3dDUVlEVlFRR0V3Sk9UREVSCi1NQThHQTFVRUNoTUlVRzlzWVhKVFUwd3hKakFrQmdOVkJBTVRIVkJ2YkdGeVUxTk1JRlJsYzNRZ1NXNTBaWEp0Ci1aV1JwWVhSbElFTkJNQjRYRFRFek1Ea3lOREUyTVRJeU5Gb1hEVEl6TURreU1qRTJNVEl5TkZvd05ERUxNQWtHCi1BMVVFQmhNQ1Rrd3hFVEFQQmdOVkJBb1RDRkJ2YkdGeVUxTk1NUkl3RUFZRFZRUURFd2xzYjJOaGJHaHZjM1F3Ci1XVEFUQmdjcWhrak9QUUlCQmdncWhrak9QUU1CQndOQ0FBUWNiZmZwMnFYcW9aeXljaG1vQ1J4enJkNFZ1OTZtCi00N05QQmVodEVDNDZhVGVYZ0RuQmRmKyt6bkFCckF0ZlhCUk5RejhBUkllWUJtc2tyMjJybEtqeW80R1ZNSUdTCi1NQWtHQTFVZEV3UUNNQUF3SFFZRFZSME9CQllFRk5JSzA2VjNIODVWc0Z4R29vNXpiTCtoWUNhN01HWUdBMVVkCi1Jd1JmTUYyQUZEaDMyR3QzbkNoM2dvdE8yQnVwSHZlVUZyY09vVUtrUURBK01Rc3dDUVlEVlFRR0V3Sk9UREVSCi1NQThHQTFVRUNoTUlVRzlzWVhKVFUwd3hIREFhQmdOVkJBTVRFMUJ2YkdGeWMzTnNJRlJsYzNRZ1JVTWdRMEdDCi1BUTR3RFFZSktvWklodmNOQVFFTEJRQURnZ0lCQURSb1E1ZkhLdyt2a2wwRDNhcUxYMVhyWmlkYisyNUFXYmhyCi1GWVhkYXNrTjIxOVByWEJMM2NWOHg1dEs2cXNQS1N5eXcxbHVlODBPbWhYcy93N1BKa09ISFVTV1JubVR2N2xyCi04VXMzWnIveU9GL1ZWcXpkR3M3RGxPVHB5ekVCZHVnSTl1YXIvYUNxSERvbHROOHdPZHVPb1FCOWFvallwUk9qCi0rZ2psRU8wbWd0Lzg3WHBqWU9pZzFvMGp2NDRRWURRWlF6cGoxemVJbjZXTWU2eGs5WUR3Q0xNalJJcGcrK2M3Ci1ReXh2Y0VKVG44MHdYMVNhRUJNMmdhdTk3RzdiT1JMTXdCVmtNVDRvU1kraUtZZ3BQcGF3T25NSmJxVVA3M0RtCi15ZkpFeERkclcvQmJXWi92S0ljU3FTWklia0hka05qVURWSGN6eVZ3UXhaeHp2TEZ3L0IxazlzN2pZRnNpNWVLCi1UTkFkWEZhNGV0MUgyc2QrdWh1MjRHeHNqbUppb0RyZnRpeGNnelBWQmpEQ2pIOFFXa0JFWDI5MldKNThvbjBlCi1kZVdMcFpVbnpQZEUxQjRyc2lQdzFWZzI4bUdncjJPMXhnQlFyL2Z4NkErOEl0TlR6QVhiWmZFY3VsdDl5cHdNCi0wYjZZRE5lNUl2ZEtrOGl3ejNtb2YwVk55NDdLNnhvQ2FFL2Z4eFdram9YSzh4Mndmc3dHZVAyUWdVelFFOTNiCi1PdGpkSHBzRzFjN2dJVkZRbUtBVHlBUFV6NHZxbWV6Z05SbGVYVTBvTDBQWXRvQ21LUTUxVWpOTVVmbU85eENqCi1WSmFOYTJpVFE1RGdpYytDVzRUWUFnajUvOWc5WDNXZnduRE54clowVXh4YXdHRWxjekhYcWJyTmxlVHRQYUtwCi1hOFNpNlVLNQotLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQotLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCi1NSUlFQVRDQ0E0ZWdBd0lCQWdJQkRqQUtCZ2dxaGtqT1BRUURBakErTVFzd0NRWURWUVFHRXdKT1RERVJNQThHCi1BMVVFQ2hNSVVHOXNZWEpUVTB3eEhEQWFCZ05WQkFNVEUxQnZiR0Z5YzNOc0lGUmxjM1FnUlVNZ1EwRXdIaGNOCi1NVE13T1RJME1UVTFOVEUwV2hjTk1qTXdPVEl5TVRVMU5URTBXakJJTVFzd0NRWURWUVFHRXdKT1RERVJNQThHCi1BMVVFQ2hNSVVHOXNZWEpUVTB3eEpqQWtCZ05WQkFNVEhWQnZiR0Z5VTFOTUlGUmxjM1FnU1c1MFpYSnRaV1JwCi1ZWFJsSUVOQk1JSUNJakFOQmdrcWhraUc5dzBCQVFFRkFBT0NBZzhBTUlJQ0NnS0NBZ0VBbzFPYzhucjZmTVRxCi12b3dWK0NwQzU1aTVCWkdGR2M1MEViNFJMQlNSVEgxZTdKZXBkRmpBVmJCdHlRUkpTaVkxamEwdGdMUURES1pSCi13ZkVJK2I0YXpzZTQ2MEluUEh2N0MxVE4wdXBYbHh1ajZtOUIxSWxQK3NCYU03V0JDNmRWZlBPK2pWTUl4Z2tGCi1DYUJDTGhoZEsxRmpmOEhqa1QvUGtjdFduaG84TlR3aXZjOStucVJaalhlL2VJY3FtNUh3akREaHUrZ3orbzBnCi1WejlNZlpOaTFKeUNyT3lOWmN5K2NyMlFlTm5OVkduRnE4eFR4dHU2ZEx1bmhwbUxGajJtbTBWandhN1lwajVxCi1BanBxVE10RHZxYlJ1VG95b3l6YWpoTU5jQ0FmN2d3ekl1cEpKRlZkamR0Z1lBY1F3emlrd0Y1SG9JVEp6ekoyCi1xZ3hGN0NtdkdaTmI3Rzk5bUxkTGRodGNsSDN3QVFLSFl3RUdKbzdYS3lORXVIUFFnQitlMGNnMVNEMUhxbEFNCi11Q2ZHR1RXUTZtZTdCamFuM3QwTnpvVGREcTZJcEtUZXNiYVkrLzllMnhuOERDcmhCS0xYUU1aRkRacVVvTFlBCi1rR1BPRUdndmxQbklJWEFhd291eENhTllFaDVVdzg3MVlNU1BUMjhyTGRGcjQ5ZHdZT3REZzlmb0E4aERJVzJQCi1kNktYYnJadGVlc3ZBMW5ZekVPcyszQWpyYlQ3OU1kMlc4Qno5YnFCVk5sTk9FU1NxbTRraUNKRm1zbG0vNmJyCi1OcDBNU1FkK28yMlBRNHhSdG1QNlVzVGZVMHVlaU1wWWM4VFlZaE1iZm5mRnlvNG03MDdlYmNmbFBiQkVOMmRnCi11cGRRNjZjdmZDSkIwUUp0OXVwYWZZMGxwZFYxcVVrQ0F3RUFBYU9Cb0RDQm5UQWRCZ05WSFE0RUZnUVVPSGZZCi1hM2VjS0hlQ2kwN1lHNmtlOTVRV3R3NHdiZ1lEVlIwakJHY3daWUFVblcwZ0pFa0JQeXZMZUxVWnZINGt5ZHY3Ci1ObnloUXFSQU1ENHhDekFKQmdOVkJBWVRBazVNTVJFd0R3WURWUVFLRXdoUWIyeGhjbE5UVERFY01Cb0dBMVVFCi1BeE1UVUc5c1lYSnpjMndnVkdWemRDQkZReUJEUVlJSkFNRkQ0bjVpUTh6b01Bd0dBMVVkRXdRRk1BTUJBZjh3Ci1DZ1lJS29aSXpqMEVBd0lEYUFBd1pRSXhBUHlFK3UrZVA3Z1JyU0ZqUWljbXBZZzhqaUZVQ1lFb3dXWTJ6dU9HCi1pMUhYWXdtcERIZmFzUTNyTlN1Zi9nSHZqd0l3YlNTanVtRGsrdVlOY2kvS01FTERzRDBNRkh4WmhoQmM5SHA5Ci1BZjVjTlI4S2h6ZWd6bkw2YW1ST2JHR0ttWDFGCi0tLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCmRpZmYgLS1naXQgYS90ZXN0cy9kYXRhX2ZpbGVzL3BhcnNlX2lucHV0L3NlcnZlcjdfcGVtX3NwYWNlLmNydCBiL3Rlc3RzL2RhdGFfZmlsZXMvcGFyc2VfaW5wdXQvc2VydmVyN19wZW1fc3BhY2UuY3J0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwZWYwZmM3Li4wMDAwMDAwCi0tLSBhL3Rlc3RzL2RhdGFfZmlsZXMvcGFyc2VfaW5wdXQvc2VydmVyN19wZW1fc3BhY2UuY3J0CisrKyAvZGV2L251bGwKQEAgLTEsNDcgKzAsMCBAQAotLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCi1NSUlEd2pDQ0FhcWdBd0lCQWdJQkVEQU5CZ2txaGtpRzl3MEJBUXNGQURCSU1Rc3dDUVlEVlFRR0V3Sk9UREVSCi1NQThHQTFVRUNoTUlVRzlzWVhKVFUwd3hKakFrQmdOVkJBTVRIVkJ2YkdGeVUxTk1JRlJsYzNRZ1NXNTBaWEp0Ci1aV1JwWVhSbElFTkJNQjRYRFRFek1Ea3lOREUyTVRJeU5Gb1hEVEl6TURreU1qRTJNVEl5TkZvd05ERUxNQWsgRwotQTFVRUJoTUNUa3d4RVRBUEJnTlZCQW9UQ0ZCdmJHRnlVMU5NTVJJd0VBWURWUVFERXdsc2IyTmhiR2h2YzNRdwotV1RBVEJnY3Foa2pPUFFJQkJnZ3Foa2pPUFFNQkJ3TkNBQVFjYmZmcDJxWHFvWnl5Y2htb0NSeHpyZDRWdTk2bQotNDdOUEJlaHRFQzQ2YVRlWGdEbkJkZisrem5BQnJBdGZYQlJOUXo4QVJJZVlCbXNrcjIycmxLanlvNEdWTUlHUwotTUFrR0ExVWRFd1FDTUFBd0hRWURWUjBPQkJZRUZOSUswNlYzSDg1VnNGeEdvbzV6YkwraFlDYTdNR1lHQTFVZAotSXdSZk1GMkFGRGgzMkd0M25DaDNnb3RPMkJ1cEh2ZVVGcmNPb1VLa1FEQStNUXN3Q1FZRFZRUUdFd0pPVERFUgotTUE4R0ExVUVDaE1JVUc5c1lYSlRVMHd4SERBYUJnTlZCQU1URTFCdmJHRnljM05zSUZSbGMzUWdSVU1nUTBHQwotQVE0d0RRWUpLb1pJaHZjTkFRRUxCUUFEZ2dJQkFEUm9RNWZIS3crdmtsMEQzYXFMWDFYclppZGIrMjVBV2JocgotRllYZGFza04yMTlQclhCTDNjVjh4NXRLNnFzUEtTeXl3MWx1ZTgwT21oWHMvdzdQSmtPSEhVU1dSbm1UdjdscgotOFVzM1pyL3lPRi9WVnF6ZEdzN0RsT1RweXpFQmR1Z0k5dWFyL2FDcUhEb2x0Tjh3T2R1T29RQjlhb2pZcFJPagotK2dqbEVPMG1ndC84N1hwallPaWcxbzBqdjQ0UVlEUVpRenBqMXplSW42V01lNnhrOVlEd0NMTWpSSXBnKytjNwotUXl4dmNFSlRuODB3WDFTYUVCTTJnYXU5N0c3Yk9STE13QlZrTVQ0b1NZK2lLWWdwUHBhd09uTUpicVVQNzNEbQoteWZKRXhEZHJXL0JiV1ovdktJY1NxU1pJYmtIZGtOalVEVkhjenlWd1F4Wnh6dkxGdy9CMWs5czdqWUZzaTVlSwotVE5BZFhGYTRldDFIMnNkK3VodTI0R3hzam1KaW9EcmZ0aXhjZ3pQVkJqRENqSDhRV2tCRVgyOTJXSjU4b24wZQotZGVXTHBaVW56UGRFMUI0cnNpUHcxVmcyOG1HZ3IyTzF4Z0JRci9meDZBKzhJdE5UekFYYlpmRWN1bHQ5eXB3TQotMGI2WUROZTVJdmRLazhpd3ozbW9mMFZOeTQ3SzZ4b0NhRS9meHhXa2pvWEs4eDJ3ZnN3R2VQMlFnVXpRRTkzYgotT3RqZEhwc0cxYzdnSVZGUW1LQVR5QVBVejR2cW1lemdOUmxlWFUwb0wwUFl0b0NtS1E1MVVqTk1VZm1POXhDagotVkphTmEyaVRRNURnaWMrQ1c0VFlBZ2o1LzlnOVgzV2Z3bkROeHJaMFV4eGF3R0VsY3pIWHFick5sZVR0UGFLcAotYThTaTZVSzUKLS0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KLS0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQotTUlJRUFUQ0NBNGVnQXdJQkFnSUJEakFLQmdncWhrak9QUVFEQWpBK01Rc3dDUVlEVlFRR0V3Sk9UREVSTUE4RwotQTFVRUNoTUlVRzlzWVhKVFUwd3hIREFhQmdOVkJBTVRFMUJ2YkdGeWMzTnNJRlJsYzNRZ1JVTWdRMEV3SGhjTgotTVRNd09USTBNVFUxTlRFMFdoY05Nak13T1RJeU1UVTFOVEUwV2pCSU1Rc3dDUVlEVlFRR0V3Sk9UREVSTUE4RwotQTFVRUNoTUlVRzlzWVhKVFUwd3hKakFrQmdOVkJBTVRIVkJ2YkdGeVUxTk1JRlJsYzNRZ1NXNTBaWEp0WldScAotWVhSbElFTkJNSUlDSWpBTkJna3Foa2lHOXcwQkFRRUZBQU9DQWc4QU1JSUNDZ0tDQWdFQW8xT2M4bnI2Zk1UcQotdm93VitDcEM1NWk1QlpHRkdjNTBFYjRSTEJTUlRIMWU3SmVwZEZqQVZiQnR5UVJKU2lZMWphMHRnTFFEREtaUgotd2ZFSStiNGF6c2U0NjBJblBIdjdDMVROMHVwWGx4dWo2bTlCMUlsUCtzQmFNN1dCQzZkVmZQTytqVk1JeGdrRgotQ2FCQ0xoaGRLMUZqZjhIamtUL1BrY3RXbmhvOE5Ud2l2YzkrbnFSWmpYZS9lSWNxbTVId2pERGh1K2d6K28wZwotVno5TWZaTmkxSnlDck95TlpjeStjcjJRZU5uTlZHbkZxOHhUeHR1NmRMdW5ocG1MRmoybW0wVmp3YTdZcGo1cQotQWpwcVRNdER2cWJSdVRveW95emFqaE1OY0NBZjdnd3pJdXBKSkZWZGpkdGdZQWNRd3ppa3dGNUhvSVRKenpKMgotcWd4RjdDbXZHWk5iN0c5OW1MZExkaHRjbEgzd0FRS0hZd0VHSm83WEt5TkV1SFBRZ0IrZTBjZzFTRDFIcWxBTQotdUNmR0dUV1E2bWU3QmphbjN0ME56b1RkRHE2SXBLVGVzYmFZKy85ZTJ4bjhEQ3JoQktMWFFNWkZEWnFVb0xZQQota0dQT0VHZ3ZsUG5JSVhBYXdvdXhDYU5ZRWg1VXc4NzFZTVNQVDI4ckxkRnI0OWR3WU90RGc5Zm9BOGhESVcyUAotZDZLWGJyWnRlZXN2QTFuWXpFT3MrM0FqcmJUNzlNZDJXOEJ6OWJxQlZObE5PRVNTcW00a2lDSkZtc2xtLzZicgotTnAwTVNRZCtvMjJQUTR4UnRtUDZVc1RmVTB1ZWlNcFljOFRZWWhNYmZuZkZ5bzRtNzA3ZWJjZmxQYkJFTjJkZwotdXBkUTY2Y3ZmQ0pCMFFKdDl1cGFmWTBscGRWMXFVa0NBd0VBQWFPQm9EQ0JuVEFkQmdOVkhRNEVGZ1FVT0hmWQotYTNlY0tIZUNpMDdZRzZrZTk1UVd0dzR3YmdZRFZSMGpCR2N3WllBVW5XMGdKRWtCUHl2TGVMVVp2SDRreWR2NwotTm55aFFxUkFNRDR4Q3pBSkJnTlZCQVlUQWs1TU1SRXdEd1lEVlFRS0V3aFFiMnhoY2xOVFRERWNNQm9HQTFVRQotQXhNVFVHOXNZWEp6YzJ3Z1ZHVnpkQ0JGUXlCRFFZSUpBTUZENG41aVE4em9NQXdHQTFVZEV3UUZNQU1CQWY4dwotQ2dZSUtvWkl6ajBFQXdJRGFBQXdaUUl4QVB5RSt1K2VQN2dSclNGalFpY21wWWc4amlGVUNZRW93V1kyenVPRwotaTFIWFl3bXBESGZhc1Ezck5TdWYvZ0h2andJd2JTU2p1bURrK3VZTmNpL0tNRUxEc0QwTUZIeFpoaEJjOUhwOQotQWY1Y05SOEtoemVnem5MNmFtUk9iR0dLbVgxRgotLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQpkaWZmIC0tZ2l0IGEvdGVzdHMvZGF0YV9maWxlcy9wYXJzZV9pbnB1dC9zZXJ2ZXI3X3RyYWlsaW5nX3NwYWNlLmNydCBiL3Rlc3RzL2RhdGFfZmlsZXMvcGFyc2VfaW5wdXQvc2VydmVyN190cmFpbGluZ19zcGFjZS5jcnQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDZmYWY4Y2YuLjAwMDAwMDAKLS0tIGEvdGVzdHMvZGF0YV9maWxlcy9wYXJzZV9pbnB1dC9zZXJ2ZXI3X3RyYWlsaW5nX3NwYWNlLmNydAorKysgL2Rldi9udWxsCkBAIC0xLDQ3ICswLDAgQEAKLS0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLSAKLU1JSUR3akNDQWFxZ0F3SUJBZ0lCRURBTkJna3Foa2lHOXcwQkFRc0ZBREJJTVFzd0NRWURWUVFHRXdKT1RERVIgCi1NQThHQTFVRUNoTUlVRzlzWVhKVFUwd3hKakFrQmdOVkJBTVRIVkJ2YkdGeVUxTk1JRlJsYzNRZ1NXNTBaWEp0IAotWldScFlYUmxJRU5CTUI0WERURXpNRGt5TkRFMk1USXlORm9YRFRJek1Ea3lNakUyTVRJeU5Gb3dOREVMTUFrRyAKLUExVUVCaE1DVGt3eEVUQVBCZ05WQkFvVENGQnZiR0Z5VTFOTU1SSXdFQVlEVlFRREV3bHNiMk5oYkdodmMzUXcgCi1XVEFUQmdjcWhrak9QUUlCQmdncWhrak9QUU1CQndOQ0FBUWNiZmZwMnFYcW9aeXljaG1vQ1J4enJkNFZ1OTZtIAotNDdOUEJlaHRFQzQ2YVRlWGdEbkJkZisrem5BQnJBdGZYQlJOUXo4QVJJZVlCbXNrcjIycmxLanlvNEdWTUlHUyAKLU1Ba0dBMVVkRXdRQ01BQXdIUVlEVlIwT0JCWUVGTklLMDZWM0g4NVZzRnhHb281emJMK2hZQ2E3TUdZR0ExVWQgCi1Jd1JmTUYyQUZEaDMyR3QzbkNoM2dvdE8yQnVwSHZlVUZyY09vVUtrUURBK01Rc3dDUVlEVlFRR0V3Sk9UREVSIAotTUE4R0ExVUVDaE1JVUc5c1lYSlRVMHd4SERBYUJnTlZCQU1URTFCdmJHRnljM05zSUZSbGMzUWdSVU1nUTBHQyAKLUFRNHdEUVlKS29aSWh2Y05BUUVMQlFBRGdnSUJBRFJvUTVmSEt3K3ZrbDBEM2FxTFgxWHJaaWRiKzI1QVdiaHIgCi1GWVhkYXNrTjIxOVByWEJMM2NWOHg1dEs2cXNQS1N5eXcxbHVlODBPbWhYcy93N1BKa09ISFVTV1JubVR2N2xyIAotOFVzM1pyL3lPRi9WVnF6ZEdzN0RsT1RweXpFQmR1Z0k5dWFyL2FDcUhEb2x0Tjh3T2R1T29RQjlhb2pZcFJPaiAKLStnamxFTzBtZ3QvODdYcGpZT2lnMW8wanY0NFFZRFFaUXpwajF6ZUluNldNZTZ4azlZRHdDTE1qUklwZysrYzcgCi1ReXh2Y0VKVG44MHdYMVNhRUJNMmdhdTk3RzdiT1JMTXdCVmtNVDRvU1kraUtZZ3BQcGF3T25NSmJxVVA3M0RtIAoteWZKRXhEZHJXL0JiV1ovdktJY1NxU1pJYmtIZGtOalVEVkhjenlWd1F4Wnh6dkxGdy9CMWs5czdqWUZzaTVlSyAKLVROQWRYRmE0ZXQxSDJzZCt1aHUyNEd4c2ptSmlvRHJmdGl4Y2d6UFZCakRDakg4UVdrQkVYMjkyV0o1OG9uMGUgCi1kZVdMcFpVbnpQZEUxQjRyc2lQdzFWZzI4bUdncjJPMXhnQlFyL2Z4NkErOEl0TlR6QVhiWmZFY3VsdDl5cHdNIAotMGI2WUROZTVJdmRLazhpd3ozbW9mMFZOeTQ3SzZ4b0NhRS9meHhXa2pvWEs4eDJ3ZnN3R2VQMlFnVXpRRTkzYiAKLU90amRIcHNHMWM3Z0lWRlFtS0FUeUFQVXo0dnFtZXpnTlJsZVhVMG9MMFBZdG9DbUtRNTFVak5NVWZtTzl4Q2ogCi1WSmFOYTJpVFE1RGdpYytDVzRUWUFnajUvOWc5WDNXZnduRE54clowVXh4YXdHRWxjekhYcWJyTmxlVHRQYUtwIAotYThTaTZVSzUgCi0tLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tIAotLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tIAotTUlJRUFUQ0NBNGVnQXdJQkFnSUJEakFLQmdncWhrak9QUVFEQWpBK01Rc3dDUVlEVlFRR0V3Sk9UREVSTUE4RyAKLUExVUVDaE1JVUc5c1lYSlRVMHd4SERBYUJnTlZCQU1URTFCdmJHRnljM05zSUZSbGMzUWdSVU1nUTBFd0hoY04gCi1NVE13T1RJME1UVTFOVEUwV2hjTk1qTXdPVEl5TVRVMU5URTBXakJJTVFzd0NRWURWUVFHRXdKT1RERVJNQThHIAotQTFVRUNoTUlVRzlzWVhKVFUwd3hKakFrQmdOVkJBTVRIVkJ2YkdGeVUxTk1JRlJsYzNRZ1NXNTBaWEp0WldScCAKLVlYUmxJRU5CTUlJQ0lqQU5CZ2txaGtpRzl3MEJBUUVGQUFPQ0FnOEFNSUlDQ2dLQ0FnRUFvMU9jOG5yNmZNVHEgCi12b3dWK0NwQzU1aTVCWkdGR2M1MEViNFJMQlNSVEgxZTdKZXBkRmpBVmJCdHlRUkpTaVkxamEwdGdMUURES1pSIAotd2ZFSStiNGF6c2U0NjBJblBIdjdDMVROMHVwWGx4dWo2bTlCMUlsUCtzQmFNN1dCQzZkVmZQTytqVk1JeGdrRiAKLUNhQkNMaGhkSzFGamY4SGprVC9Qa2N0V25obzhOVHdpdmM5K25xUlpqWGUvZUljcW01SHdqRERodStneitvMGcgCi1WejlNZlpOaTFKeUNyT3lOWmN5K2NyMlFlTm5OVkduRnE4eFR4dHU2ZEx1bmhwbUxGajJtbTBWandhN1lwajVxIAotQWpwcVRNdER2cWJSdVRveW95emFqaE1OY0NBZjdnd3pJdXBKSkZWZGpkdGdZQWNRd3ppa3dGNUhvSVRKenpKMiAKLXFneEY3Q212R1pOYjdHOTltTGRMZGh0Y2xIM3dBUUtIWXdFR0pvN1hLeU5FdUhQUWdCK2UwY2cxU0QxSHFsQU0gCi11Q2ZHR1RXUTZtZTdCamFuM3QwTnpvVGREcTZJcEtUZXNiYVkrLzllMnhuOERDcmhCS0xYUU1aRkRacVVvTFlBIAota0dQT0VHZ3ZsUG5JSVhBYXdvdXhDYU5ZRWg1VXc4NzFZTVNQVDI4ckxkRnI0OWR3WU90RGc5Zm9BOGhESVcyUCAKLWQ2S1hiclp0ZWVzdkExbll6RU9zKzNBanJiVDc5TWQyVzhCejlicUJWTmxOT0VTU3FtNGtpQ0pGbXNsbS82YnIgCi1OcDBNU1FkK28yMlBRNHhSdG1QNlVzVGZVMHVlaU1wWWM4VFlZaE1iZm5mRnlvNG03MDdlYmNmbFBiQkVOMmRnIAotdXBkUTY2Y3ZmQ0pCMFFKdDl1cGFmWTBscGRWMXFVa0NBd0VBQWFPQm9EQ0JuVEFkQmdOVkhRNEVGZ1FVT0hmWSAKLWEzZWNLSGVDaTA3WUc2a2U5NVFXdHc0d2JnWURWUjBqQkdjd1pZQVVuVzBnSkVrQlB5dkxlTFVadkg0a3lkdjcgCi1ObnloUXFSQU1ENHhDekFKQmdOVkJBWVRBazVNTVJFd0R3WURWUVFLRXdoUWIyeGhjbE5UVERFY01Cb0dBMVVFIAotQXhNVFVHOXNZWEp6YzJ3Z1ZHVnpkQ0JGUXlCRFFZSUpBTUZENG41aVE4em9NQXdHQTFVZEV3UUZNQU1CQWY4dyAKLUNnWUlLb1pJemowRUF3SURhQUF3WlFJeEFQeUUrdStlUDdnUnJTRmpRaWNtcFlnOGppRlVDWUVvd1dZMnp1T0cgCi1pMUhYWXdtcERIZmFzUTNyTlN1Zi9nSHZqd0l3YlNTanVtRGsrdVlOY2kvS01FTERzRDBNRkh4WmhoQmM5SHA5IAotQWY1Y05SOEtoemVnem5MNmFtUk9iR0dLbVgxRiAKLS0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0gCmRpZmYgLS1naXQgYS90ZXN0cy9kYXRhX2ZpbGVzL3BhcnNlX2lucHV0L3NlcnZlcjktc2hhMjI0LmNydCBiL3Rlc3RzL2RhdGFfZmlsZXMvcGFyc2VfaW5wdXQvc2VydmVyOS1zaGEyMjQuY3J0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxYjA1ZjMxLi4wMDAwMDAwCi0tLSBhL3Rlc3RzL2RhdGFfZmlsZXMvcGFyc2VfaW5wdXQvc2VydmVyOS1zaGEyMjQuY3J0CisrKyAvZGV2L251bGwKQEAgLTEsMjAgKzAsMCBAQAotLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCi1NSUlEV3pDQ0FoS2dBd0lCQWdJQkZ6QStCZ2txaGtpRzl3MEJBUW93TWFBTk1Bc0dDV0NHU0FGbEF3UUNCS0VhCi1NQmdHQ1NxR1NJYjNEUUVCQ0RBTEJnbGdoa2dCWlFNRUFnU2lCQUlDQU9Jd096RUxNQWtHQTFVRUJoTUNUa3d4Ci1FVEFQQmdOVkJBb1RDRkJ2YkdGeVUxTk1NUmt3RndZRFZRUURFeEJRYjJ4aGNsTlRUQ0JVWlhOMElFTkJNQjRYCi1EVEUwTURFeU1ERXpOVGN6TmxvWERUSTBNREV4T0RFek5UY3pObG93TkRFTE1Ba0dBMVVFQmhNQ1Rrd3hFVEFQCi1CZ05WQkFvVENGQnZiR0Z5VTFOTU1SSXdFQVlEVlFRREV3bHNiMk5oYkdodmMzUXdnWjh3RFFZSktvWklodmNOCi1BUUVCQlFBRGdZMEFNSUdKQW9HQkFOMFJpcCtadXJCb3lpcnFPMnB0V1pmdFRzbFU1QTN1enFCOW9CNnE2QTdDCi11eE5BMjRvU2pva1RKS1hGOWZyWTlaRFh5TXJMeGY2VEhhL2FFaU56VW5sR0dycWdWeXQyRmpHenFLL25PSnNJCi1pMk9aT2dvbDdrWFNHRmk2dVpNYTdkUlltbU1iTi96M0ZBaWZoV1ZKODFreWJkSGc2RzNlVXUxbXRLa0wya0NWCi1BZ01CQUFHamdaSXdnWTh3Q1FZRFZSMFRCQUl3QURBZEJnTlZIUTRFRmdRVTd2UEg5UjhWcFUxSGljSFRJbU95Ci0zNmZPdlZFd1l3WURWUjBqQkZ3d1dvQVV0RnJrcGJQZTBsTDJ1ZFdtbFEvclByekgvZitoUDZROU1Ec3hDekFKCi1CZ05WQkFZVEFrNU1NUkV3RHdZRFZRUUtFd2hRYjJ4aGNsTlRUREVaTUJjR0ExVUVBeE1RVUc5c1lYSlRVMHdnCi1WR1Z6ZENCRFFZSUJBREErQmdrcWhraUc5dzBCQVFvd01hQU5NQXNHQ1dDR1NBRmxBd1FDQktFYU1CZ0dDU3FHCi1TSWIzRFFFQkNEQUxCZ2xnaGtnQlpRTUVBZ1NpQkFJQ0FPSURnZ0VCQURKRXhqZldXdkwyOGxnaitHR2d2aXFvCi1QSFpMeEkwcExRVW5GSlE5S3B1Nmp4ZklDc2VCRjAwWjZCSkUvUmNZRHBJaWU1R0R0Lzh1L2k2eEI2TGkyOVBtCi1nNW5BTmdkL1kzZkZuVzdkMHlkVmppU25ldGxQdWYvalRsV1FsNm1RVEgyeHFZdThKOGQzSlJ4UWRSaURZYlZtCi11eXdXMmQ2cmtzaXFtNmRQRDVsNEE1RGNlbWNZbzhmLzFJZmo1V05EQ1Y4L09IZXgrQW5XMmNjRHZXQW5WZ1NSCi1CMlZwT1hKelZGdUJzdWY0dEdWbS8yVFVNU0I2TmN2RmM2VGVKazFremJaeGlpNFFqS1h0SDFTZnJWUDU5aUVlCi1sMTdOWUFFV0FSakJwUVdCaXV0UkcrUU0yZXQwc05pVUJ1V3hUa3ZkMGVTZ2VuY055c1ZBT3NacXJxYVgzQ1k9Ci0tLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCmRpZmYgLS1naXQgYS90ZXN0cy9kYXRhX2ZpbGVzL3BhcnNlX2lucHV0L3NlcnZlcjktc2hhMjU2LmNydCBiL3Rlc3RzL2RhdGFfZmlsZXMvcGFyc2VfaW5wdXQvc2VydmVyOS1zaGEyNTYuY3J0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3ZDBhYTM5Li4wMDAwMDAwCi0tLSBhL3Rlc3RzL2RhdGFfZmlsZXMvcGFyc2VfaW5wdXQvc2VydmVyOS1zaGEyNTYuY3J0CisrKyAvZGV2L251bGwKQEAgLTEsMjAgKzAsMCBAQAotLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCi1NSUlEV3pDQ0FoS2dBd0lCQWdJQkdEQStCZ2txaGtpRzl3MEJBUW93TWFBTk1Bc0dDV0NHU0FGbEF3UUNBYUVhCi1NQmdHQ1NxR1NJYjNEUUVCQ0RBTEJnbGdoa2dCWlFNRUFnR2lCQUlDQU40d096RUxNQWtHQTFVRUJoTUNUa3d4Ci1FVEFQQmdOVkJBb1RDRkJ2YkdGeVUxTk1NUmt3RndZRFZRUURFeEJRYjJ4aGNsTlRUQ0JVWlhOMElFTkJNQjRYCi1EVEUwTURFeU1ERXpOVGMwTlZvWERUSTBNREV4T0RFek5UYzBOVm93TkRFTE1Ba0dBMVVFQmhNQ1Rrd3hFVEFQCi1CZ05WQkFvVENGQnZiR0Z5VTFOTU1SSXdFQVlEVlFRREV3bHNiMk5oYkdodmMzUXdnWjh3RFFZSktvWklodmNOCi1BUUVCQlFBRGdZMEFNSUdKQW9HQkFOMFJpcCtadXJCb3lpcnFPMnB0V1pmdFRzbFU1QTN1enFCOW9CNnE2QTdDCi11eE5BMjRvU2pva1RKS1hGOWZyWTlaRFh5TXJMeGY2VEhhL2FFaU56VW5sR0dycWdWeXQyRmpHenFLL25PSnNJCi1pMk9aT2dvbDdrWFNHRmk2dVpNYTdkUlltbU1iTi96M0ZBaWZoV1ZKODFreWJkSGc2RzNlVXUxbXRLa0wya0NWCi1BZ01CQUFHamdaSXdnWTh3Q1FZRFZSMFRCQUl3QURBZEJnTlZIUTRFRmdRVTd2UEg5UjhWcFUxSGljSFRJbU95Ci0zNmZPdlZFd1l3WURWUjBqQkZ3d1dvQVV0RnJrcGJQZTBsTDJ1ZFdtbFEvclByekgvZitoUDZROU1Ec3hDekFKCi1CZ05WQkFZVEFrNU1NUkV3RHdZRFZRUUtFd2hRYjJ4aGNsTlRUREVaTUJjR0ExVUVBeE1RVUc5c1lYSlRVMHdnCi1WR1Z6ZENCRFFZSUJBREErQmdrcWhraUc5dzBCQVFvd01hQU5NQXNHQ1dDR1NBRmxBd1FDQWFFYU1CZ0dDU3FHCi1TSWIzRFFFQkNEQUxCZ2xnaGtnQlpRTUVBZ0dpQkFJQ0FONERnZ0VCQUgwK2tucWtjTGF4ZURrZW5CUWdkNFFnCi0zWnlBaHRwaUxVNjg5bXcrM2NYQi91ekZyQ0l4RUw1YUdoMWVTaitEc3pCK0Z0c1owNnV4N0pWUXFWT0EyV205Ci15THhDNndGOE9PWWowbkJhOTFCV0xoUkFITGhtSWRXc1ZrN0hsOUtvalpkNFR3VjJOK1pFVi9CTHh5b1J2SzRICi1WNHhDcHpnRFNpVFBlOEV0azRyKzBha2JyNmJzT1VCYXlQYjdNR0xIdWJaS3E4TnNGQW1teW5wK2ZQbUhkM1NFCi0wb29KZGlaMU1tS1BLTEU1T2cvaFhDSThxZWlYUVVSNm9RN2IyWE9Oc3JJMkhJajJTQTlkQTVxbUh3RTVQYk11Ci16cXhRM1I4M2JvcUxYYmtGT1JuK1VpWUxtZmZxZG9XdU55MDBCSE1DcnhSQTlEVXYrV3lONG5wTE1GOHJPSnc9Ci0tLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCmRpZmYgLS1naXQgYS90ZXN0cy9kYXRhX2ZpbGVzL3BhcnNlX2lucHV0L3NlcnZlcjktc2hhMzg0LmNydCBiL3Rlc3RzL2RhdGFfZmlsZXMvcGFyc2VfaW5wdXQvc2VydmVyOS1zaGEzODQuY3J0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhYWE2M2U2Li4wMDAwMDAwCi0tLSBhL3Rlc3RzL2RhdGFfZmlsZXMvcGFyc2VfaW5wdXQvc2VydmVyOS1zaGEzODQuY3J0CisrKyAvZGV2L251bGwKQEAgLTEsMjAgKzAsMCBAQAotLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCi1NSUlEV3pDQ0FoS2dBd0lCQWdJQkdUQStCZ2txaGtpRzl3MEJBUW93TWFBTk1Bc0dDV0NHU0FGbEF3UUNBcUVhCi1NQmdHQ1NxR1NJYjNEUUVCQ0RBTEJnbGdoa2dCWlFNRUFnS2lCQUlDQU00d096RUxNQWtHQTFVRUJoTUNUa3d4Ci1FVEFQQmdOVkJBb1RDRkJ2YkdGeVUxTk1NUmt3RndZRFZRUURFeEJRYjJ4aGNsTlRUQ0JVWlhOMElFTkJNQjRYCi1EVEUwTURFeU1ERXpOVGMxT0ZvWERUSTBNREV4T0RFek5UYzFPRm93TkRFTE1Ba0dBMVVFQmhNQ1Rrd3hFVEFQCi1CZ05WQkFvVENGQnZiR0Z5VTFOTU1SSXdFQVlEVlFRREV3bHNiMk5oYkdodmMzUXdnWjh3RFFZSktvWklodmNOCi1BUUVCQlFBRGdZMEFNSUdKQW9HQkFOMFJpcCtadXJCb3lpcnFPMnB0V1pmdFRzbFU1QTN1enFCOW9CNnE2QTdDCi11eE5BMjRvU2pva1RKS1hGOWZyWTlaRFh5TXJMeGY2VEhhL2FFaU56VW5sR0dycWdWeXQyRmpHenFLL25PSnNJCi1pMk9aT2dvbDdrWFNHRmk2dVpNYTdkUlltbU1iTi96M0ZBaWZoV1ZKODFreWJkSGc2RzNlVXUxbXRLa0wya0NWCi1BZ01CQUFHamdaSXdnWTh3Q1FZRFZSMFRCQUl3QURBZEJnTlZIUTRFRmdRVTd2UEg5UjhWcFUxSGljSFRJbU95Ci0zNmZPdlZFd1l3WURWUjBqQkZ3d1dvQVV0RnJrcGJQZTBsTDJ1ZFdtbFEvclByekgvZitoUDZROU1Ec3hDekFKCi1CZ05WQkFZVEFrNU1NUkV3RHdZRFZRUUtFd2hRYjJ4aGNsTlRUREVaTUJjR0ExVUVBeE1RVUc5c1lYSlRVMHdnCi1WR1Z6ZENCRFFZSUJBREErQmdrcWhraUc5dzBCQVFvd01hQU5NQXNHQ1dDR1NBRmxBd1FDQXFFYU1CZ0dDU3FHCi1TSWIzRFFFQkNEQUxCZ2xnaGtnQlpRTUVBZ0tpQkFJQ0FNNERnZ0VCQUJmOEd5cTJWWXVOMUVCVzFuT2FwRFFwCi1CL0t1YWZOVzJHRUo3Rm1RS055QTdNSWoxWXFvMk10SjYvT1FvalJRM0Y1cm5PNHlqbXZJUHNYZVFhTXhKQmlJCi1hYW9BbExwSCsrRitvWE1xLzBhUzBXU1pyU0xyc2gyRnBheTljQkRHd2VrMnJET1g5a00rWmNQekdpdFZ3V0tYCi1Ubk9XMjJocGNsN3U5NUNwWkgrSlpUY3RvNW5MM3RUeVY5cEl5K3RTS1FRZmpQQitHMFRBWkNzT2tiQ0dQTHVnCi1xZGp2cUZRd09mMTVWeFFNajdOUmlYamxxSnZzeCtJN0IyQUlocnM0RHpRTUV5aVdxOVMvUHpwUXVGVTV2L0tnCi1zMmlNTEo1eWd2NWFOM1BZcUdsRTFabXZneVJwNWgvTGFUR0kyTDZselJUbmVjT2h0UHYzME4ydHlhREFFZm89Ci0tLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCmRpZmYgLS1naXQgYS90ZXN0cy9kYXRhX2ZpbGVzL3BhcnNlX2lucHV0L3NlcnZlcjktc2hhNTEyLmNydCBiL3Rlc3RzL2RhdGFfZmlsZXMvcGFyc2VfaW5wdXQvc2VydmVyOS1zaGE1MTIuY3J0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhMjExYjkyLi4wMDAwMDAwCi0tLSBhL3Rlc3RzL2RhdGFfZmlsZXMvcGFyc2VfaW5wdXQvc2VydmVyOS1zaGE1MTIuY3J0CisrKyAvZGV2L251bGwKQEAgLTEsMjAgKzAsMCBAQAotLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCi1NSUlEV3pDQ0FoS2dBd0lCQWdJQkdqQStCZ2txaGtpRzl3MEJBUW93TWFBTk1Bc0dDV0NHU0FGbEF3UUNBNkVhCi1NQmdHQ1NxR1NJYjNEUUVCQ0RBTEJnbGdoa2dCWlFNRUFnT2lCQUlDQUw0d096RUxNQWtHQTFVRUJoTUNUa3d4Ci1FVEFQQmdOVkJBb1RDRkJ2YkdGeVUxTk1NUmt3RndZRFZRUURFeEJRYjJ4aGNsTlRUQ0JVWlhOMElFTkJNQjRYCi1EVEUwTURFeU1ERXpOVGd4TWxvWERUSTBNREV4T0RFek5UZ3hNbG93TkRFTE1Ba0dBMVVFQmhNQ1Rrd3hFVEFQCi1CZ05WQkFvVENGQnZiR0Z5VTFOTU1SSXdFQVlEVlFRREV3bHNiMk5oYkdodmMzUXdnWjh3RFFZSktvWklodmNOCi1BUUVCQlFBRGdZMEFNSUdKQW9HQkFOMFJpcCtadXJCb3lpcnFPMnB0V1pmdFRzbFU1QTN1enFCOW9CNnE2QTdDCi11eE5BMjRvU2pva1RKS1hGOWZyWTlaRFh5TXJMeGY2VEhhL2FFaU56VW5sR0dycWdWeXQyRmpHenFLL25PSnNJCi1pMk9aT2dvbDdrWFNHRmk2dVpNYTdkUlltbU1iTi96M0ZBaWZoV1ZKODFreWJkSGc2RzNlVXUxbXRLa0wya0NWCi1BZ01CQUFHamdaSXdnWTh3Q1FZRFZSMFRCQUl3QURBZEJnTlZIUTRFRmdRVTd2UEg5UjhWcFUxSGljSFRJbU95Ci0zNmZPdlZFd1l3WURWUjBqQkZ3d1dvQVV0RnJrcGJQZTBsTDJ1ZFdtbFEvclByekgvZitoUDZROU1Ec3hDekFKCi1CZ05WQkFZVEFrNU1NUkV3RHdZRFZRUUtFd2hRYjJ4aGNsTlRUREVaTUJjR0ExVUVBeE1RVUc5c1lYSlRVMHdnCi1WR1Z6ZENCRFFZSUJBREErQmdrcWhraUc5dzBCQVFvd01hQU5NQXNHQ1dDR1NBRmxBd1FDQTZFYU1CZ0dDU3FHCi1TSWIzRFFFQkNEQUxCZ2xnaGtnQlpRTUVBZ09pQkFJQ0FMNERnZ0VCQUNkVm96RnE2clVpWG8raWI1WTJvUHNSCi02eHhsNFlkbjNMcFVvWXJQcFRPcmhjWEpXVy90T0xIR3VDRi9tU1JmVXpLYU1JZkw0MThjWkhZbnZ1bXZ1dHR1Ci02ejN0cDVFMVZzaVpDVTJNV0puempLU3hGQk9zczQzQW1wSkhIb2FwR0ZadTJweE9iQlBxZWdBS0hZa0tXT0xrCi10SkRqNDdQdXJXZ0VlazlqMW5MN1BjMXRWZjU5Zm0veVNwNGZXa1hMTHZRaUtpZDE1MTZWaW9MeWFjVXZLM3pVCi02RWd6OGpNdDdENWM5S3BhRXhMUlRBTlZzVGhxTzUvZG1SMzZiT3dtM0hwYmRlN0ROZGd4cnU0MXRpTE1xSnMvCi01cFgzY2VhSjFYUS9sMGlkajUvOWlwdnFISFVndXlrN0gyMkh3UUhRZFNEOW9JaGE4a0VNM1A2Q2pwZkU3eVk9Ci0tLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCmRpZmYgLS1naXQgYS90ZXN0cy9kYXRhX2ZpbGVzL3BhcnNlX2lucHV0L3NlcnZlcjkuY3J0IGIvdGVzdHMvZGF0YV9maWxlcy9wYXJzZV9pbnB1dC9zZXJ2ZXI5LmNydApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYTZmOWZiYy4uMDAwMDAwMAotLS0gYS90ZXN0cy9kYXRhX2ZpbGVzL3BhcnNlX2lucHV0L3NlcnZlcjkuY3J0CisrKyAvZGV2L251bGwKQEAgLTEsMTkgKzAsMCBAQAotLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCi1NSUlEQlRDQ0FlZWdBd0lCQWdJQkZqQVRCZ2txaGtpRzl3MEJBUW93QnFJRUFnSUE2akE3TVFzd0NRWURWUVFHCi1Fd0pPVERFUk1BOEdBMVVFQ2hNSVVHOXNZWEpUVTB3eEdUQVhCZ05WQkFNVEVGQnZiR0Z5VTFOTUlGUmxjM1FnCi1RMEV3SGhjTk1UUXdNVEl3TVRNek9ERTJXaGNOTWpRd01URTRNVE16T0RFMldqQTBNUXN3Q1FZRFZRUUdFd0pPCi1UREVSTUE4R0ExVUVDaE1JVUc5c1lYSlRVMHd4RWpBUUJnTlZCQU1UQ1d4dlkyRnNhRzl6ZERDQm56QU5CZ2txCi1oa2lHOXcwQkFRRUZBQU9CalFBd2dZa0NnWUVBM1JHS241bTZzR2pLS3VvN2FtMVpsKzFPeVZUa0RlN09vSDJnCi1IcXJvRHNLN0UwRGJpaEtPaVJNa3BjWDErdGoxa05mSXlzdkYvcE1kcjlvU0kzTlNlVVlhdXFCWEszWVdNYk9vCi1yK2M0bXdpTFk1azZDaVh1UmRJWVdMcTVreHJ0MUZpYVl4czMvUGNVQ0orRlpVbnpXVEp0MGVEb2JkNVM3V2EwCi1xUXZhUUpVQ0F3RUFBYU9Ca2pDQmp6QUpCZ05WSFJNRUFqQUFNQjBHQTFVZERnUVdCQlR1ODhmMUh4V2xUVWVKCi13ZE1pWTdMZnA4NjlVVEJqQmdOVkhTTUVYREJhZ0JTMFd1U2xzOTdTVXZhNTFhYVZEK3Mrdk1mOS82RS9wRDB3Ci1PekVMTUFrR0ExVUVCaE1DVGt3eEVUQVBCZ05WQkFvVENGQnZiR0Z5VTFOTU1Sa3dGd1lEVlFRREV4QlFiMnhoCi1jbE5UVENCVVpYTjBJRU5CZ2dFQU1CTUdDU3FHU0liM0RRRUJDakFHb2dRQ0FnRHFBNElCQVFEQW9nL2pYeWRSCi12REl1Z1R6Qlh0ZlZLMENFWDhpeVE0Y1Z6UW1YV1NuZTgyMDR2OTQzSzVEMmhrdFNCa2pkUVVkY25WdlZnTFI2Ci10ZTUwalY4OXB0Ti9Ob2ZYK2ZvOWZoU1JOOXZHZ1FWV3pPT0ZpTzB6Y1RoeTc0OXBpckp1MUtxNU9KZHRoSXlXCi1QdTBVQ3o1RzBrM2tUcDBKUGV2R2xzTmM4UzlBazF0RnVCMElQSmpyYmZPRFdIUzJMRHVPK2RCNmdwa05UZHJqCi04OG9nWXRCc040RDVnc1hCUlVmb2JYb2tVd2VqQndMckQ2WHd5UXgrMGJNd1NDeGdIRWh4dnVVa3gxdmRsWEd3Ci1KRzNhRjkydThtSXhvS1NBUGFQZHF5OTMwbVF2bXBVV2NONVkxSU1idEVHb1FDS01ZZ29zRmNhekpwSmNqblgxCi1vNEhsL2xxandDRUcKLS0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KZGlmZiAtLWdpdCBhL3Rlc3RzL2RhdGFfZmlsZXMvcGFyc2VfaW5wdXQvc2VydmVyOS5yZXEuc2hhMSBiL3Rlc3RzL2RhdGFfZmlsZXMvcGFyc2VfaW5wdXQvc2VydmVyOS5yZXEuc2hhMQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYjlkMDA1My4uMDAwMDAwMAotLS0gYS90ZXN0cy9kYXRhX2ZpbGVzL3BhcnNlX2lucHV0L3NlcnZlcjkucmVxLnNoYTEKKysrIC9kZXYvbnVsbApAQCAtMSwxMSArMCwwIEBACi0tLS0tLUJFR0lOIENFUlRJRklDQVRFIFJFUVVFU1QtLS0tLQotTUlJQm9qQ0NBUVlDQVFBd05ERUxNQWtHQTFVRUJoTUNUa3d4RVRBUEJnTlZCQW9UQ0ZCdmJHRnlVMU5NTVJJdwotRUFZRFZRUURFd2xzYjJOaGJHaHZjM1F3Z1o4d0RRWUpLb1pJaHZjTkFRRUJCUUFEZ1kwQU1JR0pBb0dCQU4wUgotaXArWnVyQm95aXJxTzJwdFdaZnRUc2xVNUEzdXpxQjlvQjZxNkE3Q3V4TkEyNG9Tam9rVEpLWEY5ZnJZOVpEWAoteU1yTHhmNlRIYS9hRWlOelVubEdHcnFnVnl0MkZqR3pxSy9uT0pzSWkyT1pPZ29sN2tYU0dGaTZ1Wk1hN2RSWQotbW1NYk4vejNGQWlmaFdWSjgxa3liZEhnNkczZVV1MW10S2tMMmtDVkFnTUJBQUdnS1RBbkJna3Foa2lHOXcwQgotQ1E0eEdqQVlNQWtHQTFVZEV3UUNNQUF3Q3dZRFZSMFBCQVFEQWdYZ01CSUdDU3FHU0liM0RRRUJDakFGb2dNQwotQVdvRGdZRUEybjhTT29pSkNzK1l5SDJWWG9VVnhodXRkWEdQNCs3Y0VDYWtsMm1tVkVLaHhYRE1FRzdoRUZrQgotbWtrNGIxa1JOT1FIS3FVcTNjcmZpME9rTWNQR2tQaUxsWUxLZ1Q1MUNnc0JodUphTXNkQ1lvLzVQT2dUWkQ0dQotRkk1Z2Z5TzcwWHBxOVFtcldFcXFUZGFsUkc3K1VtR2EzVkVVVnlYVERuUVpmVTFOMlFFPQotLS0tLS1FTkQgQ0VSVElGSUNBVEUgUkVRVUVTVC0tLS0tCmRpZmYgLS1naXQgYS90ZXN0cy9kYXRhX2ZpbGVzL3BhcnNlX2lucHV0L3NlcnZlcjkucmVxLnNoYTIyNCBiL3Rlc3RzL2RhdGFfZmlsZXMvcGFyc2VfaW5wdXQvc2VydmVyOS5yZXEuc2hhMjI0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmZTFjNzk3Li4wMDAwMDAwCi0tLSBhL3Rlc3RzL2RhdGFfZmlsZXMvcGFyc2VfaW5wdXQvc2VydmVyOS5yZXEuc2hhMjI0CisrKyAvZGV2L251bGwKQEAgLTEsMTIgKzAsMCBAQAotLS0tLS1CRUdJTiBDRVJUSUZJQ0FURSBSRVFVRVNULS0tLS0KLU1JSUJ6VENDQVFZQ0FRQXdOREVMTUFrR0ExVUVCaE1DVGt3eEVUQVBCZ05WQkFvVENGQnZiR0Z5VTFOTU1SSXcKLUVBWURWUVFERXdsc2IyTmhiR2h2YzNRd2daOHdEUVlKS29aSWh2Y05BUUVCQlFBRGdZMEFNSUdKQW9HQkFOMFIKLWlwK1p1ckJveWlycU8ycHRXWmZ0VHNsVTVBM3V6cUI5b0I2cTZBN0N1eE5BMjRvU2pva1RKS1hGOWZyWTlaRFgKLXlNckx4ZjZUSGEvYUVpTnpVbmxHR3JxZ1Z5dDJGakd6cUsvbk9Kc0lpMk9aT2dvbDdrWFNHRmk2dVpNYTdkUlkKLW1tTWJOL3ozRkFpZmhXVko4MWt5YmRIZzZHM2VVdTFtdEtrTDJrQ1ZBZ01CQUFHZ0tUQW5CZ2txaGtpRzl3MEIKLUNRNHhHakFZTUFrR0ExVWRFd1FDTUFBd0N3WURWUjBQQkFRREFnWGdNRDBHQ1NxR1NJYjNEUUVCQ2pBd29BMHcKLUN3WUpZSVpJQVdVREJBSUVvUm93R0FZSktvWklodmNOQVFFSU1Bc0dDV0NHU0FGbEF3UUNCS0lEQWdGaUE0R0IKLUFNbFlZWktxcERxZzVVWlpxM05CM1FVUjlxZnRZLzUyLzBnUGZydXc1czJnTnRGbUcxdXlFQkpYL29jN0MvZlUKLWx4bzc0SERyYVdKeXZQN2MzTU1oT3V3ci9SZlBOUWhBMkhnd3o5UnVKSUJoUXJKZmladUhzQ2ZpS1ZvZk11TWYKLWFyLzRFS2Z5b0VMRGRpbGhnNmkrYWJhaEdPa3F5WHNqYXZGdHlEU2VDcFhICi0tLS0tLUVORCBDRVJUSUZJQ0FURSBSRVFVRVNULS0tLS0KZGlmZiAtLWdpdCBhL3Rlc3RzL2RhdGFfZmlsZXMvcGFyc2VfaW5wdXQvc2VydmVyOS5yZXEuc2hhMjU2IGIvdGVzdHMvZGF0YV9maWxlcy9wYXJzZV9pbnB1dC9zZXJ2ZXI5LnJlcS5zaGEyNTYKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDBlZjllZjAuLjAwMDAwMDAKLS0tIGEvdGVzdHMvZGF0YV9maWxlcy9wYXJzZV9pbnB1dC9zZXJ2ZXI5LnJlcS5zaGEyNTYKKysrIC9kZXYvbnVsbApAQCAtMSwxMiArMCwwIEBACi0tLS0tLUJFR0lOIENFUlRJRklDQVRFIFJFUVVFU1QtLS0tLQotTUlJQnpUQ0NBUVlDQVFBd05ERUxNQWtHQTFVRUJoTUNUa3d4RVRBUEJnTlZCQW9UQ0ZCdmJHRnlVMU5NTVJJdwotRUFZRFZRUURFd2xzYjJOaGJHaHZjM1F3Z1o4d0RRWUpLb1pJaHZjTkFRRUJCUUFEZ1kwQU1JR0pBb0dCQU4wUgotaXArWnVyQm95aXJxTzJwdFdaZnRUc2xVNUEzdXpxQjlvQjZxNkE3Q3V4TkEyNG9Tam9rVEpLWEY5ZnJZOVpEWAoteU1yTHhmNlRIYS9hRWlOelVubEdHcnFnVnl0MkZqR3pxSy9uT0pzSWkyT1pPZ29sN2tYU0dGaTZ1Wk1hN2RSWQotbW1NYk4vejNGQWlmaFdWSjgxa3liZEhnNkczZVV1MW10S2tMMmtDVkFnTUJBQUdnS1RBbkJna3Foa2lHOXcwQgotQ1E0eEdqQVlNQWtHQTFVZEV3UUNNQUF3Q3dZRFZSMFBCQVFEQWdYZ01EMEdDU3FHU0liM0RRRUJDakF3b0EwdwotQ3dZSllJWklBV1VEQkFJQm9Sb3dHQVlKS29aSWh2Y05BUUVJTUFzR0NXQ0dTQUZsQXdRQ0FhSURBZ0ZlQTRHQgotQUNVYUNUaWR2eldWSk5LbVJycml1ZlRoR1VmdzVYZ2RzYzNHYThDeCt2UmYrYlBabVIzTlZrYzBacTl1YzArOAotZDFXWGFMemJtZ2U2SWJjdlRQV0NMTkRBV0k5VXpvUTZXUzlteU0zZURFR2RydUNsWXdiNUJWTHgzTXZodm9vSwotTC9INnNuRTFkSE5QWHlDTlZGVEpJbGwzYlJsVk1Sc2ZacERobXo4L0ltSjQKLS0tLS0tRU5EIENFUlRJRklDQVRFIFJFUVVFU1QtLS0tLQpkaWZmIC0tZ2l0IGEvdGVzdHMvZGF0YV9maWxlcy9wYXJzZV9pbnB1dC9zZXJ2ZXI5LnJlcS5zaGEzODQgYi90ZXN0cy9kYXRhX2ZpbGVzL3BhcnNlX2lucHV0L3NlcnZlcjkucmVxLnNoYTM4NApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDEwMzQ1MC4uMDAwMDAwMAotLS0gYS90ZXN0cy9kYXRhX2ZpbGVzL3BhcnNlX2lucHV0L3NlcnZlcjkucmVxLnNoYTM4NAorKysgL2Rldi9udWxsCkBAIC0xLDEyICswLDAgQEAKLS0tLS0tQkVHSU4gQ0VSVElGSUNBVEUgUkVRVUVTVC0tLS0tCi1NSUlCelRDQ0FRWUNBUUF3TkRFTE1Ba0dBMVVFQmhNQ1Rrd3hFVEFQQmdOVkJBb1RDRkJ2YkdGeVUxTk1NUkl3Ci1FQVlEVlFRREV3bHNiMk5oYkdodmMzUXdnWjh3RFFZSktvWklodmNOQVFFQkJRQURnWTBBTUlHSkFvR0JBTjBSCi1pcCtadXJCb3lpcnFPMnB0V1pmdFRzbFU1QTN1enFCOW9CNnE2QTdDdXhOQTI0b1Nqb2tUSktYRjlmclk5WkRYCi15TXJMeGY2VEhhL2FFaU56VW5sR0dycWdWeXQyRmpHenFLL25PSnNJaTJPWk9nb2w3a1hTR0ZpNnVaTWE3ZFJZCi1tbU1iTi96M0ZBaWZoV1ZKODFreWJkSGc2RzNlVXUxbXRLa0wya0NWQWdNQkFBR2dLVEFuQmdrcWhraUc5dzBCCi1DUTR4R2pBWU1Ba0dBMVVkRXdRQ01BQXdDd1lEVlIwUEJBUURBZ1hnTUQwR0NTcUdTSWIzRFFFQkNqQXdvQTB3Ci1Dd1lKWUlaSUFXVURCQUlDb1Jvd0dBWUpLb1pJaHZjTkFRRUlNQXNHQ1dDR1NBRmxBd1FDQXFJREFnRk9BNEdCCi1BTmZaR0s2bkUvQ1A5UHVBTEZ6YkEvbXZPbllsSTYwcE1vd3NjUmZDWXB2UjI1aVFKVmhBSmZZVlhBRFJOM3FkCi1OQWlGV05WY2pGTUlrUmxxN3FpZkJOOTdWSEdlWW9XSXV3OWdZRWIzT3FER3pPc1lQMEtJZ01OdDgvQTRxQ2tqCi01TXpvbE9ZeVQrTitRRkdWMHBkQ05wWDdRcHBmTmRGeUZBbVdYYTE3MVJ6RwotLS0tLS1FTkQgQ0VSVElGSUNBVEUgUkVRVUVTVC0tLS0tCmRpZmYgLS1naXQgYS90ZXN0cy9kYXRhX2ZpbGVzL3BhcnNlX2lucHV0L3NlcnZlcjkucmVxLnNoYTUxMiBiL3Rlc3RzL2RhdGFfZmlsZXMvcGFyc2VfaW5wdXQvc2VydmVyOS5yZXEuc2hhNTEyCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2NzZiNWM5Li4wMDAwMDAwCi0tLSBhL3Rlc3RzL2RhdGFfZmlsZXMvcGFyc2VfaW5wdXQvc2VydmVyOS5yZXEuc2hhNTEyCisrKyAvZGV2L251bGwKQEAgLTEsMTIgKzAsMCBAQAotLS0tLS1CRUdJTiBDRVJUSUZJQ0FURSBSRVFVRVNULS0tLS0KLU1JSUJ6VENDQVFZQ0FRQXdOREVMTUFrR0ExVUVCaE1DVGt3eEVUQVBCZ05WQkFvVENGQnZiR0Z5VTFOTU1SSXcKLUVBWURWUVFERXdsc2IyTmhiR2h2YzNRd2daOHdEUVlKS29aSWh2Y05BUUVCQlFBRGdZMEFNSUdKQW9HQkFOMFIKLWlwK1p1ckJveWlycU8ycHRXWmZ0VHNsVTVBM3V6cUI5b0I2cTZBN0N1eE5BMjRvU2pva1RKS1hGOWZyWTlaRFgKLXlNckx4ZjZUSGEvYUVpTnpVbmxHR3JxZ1Z5dDJGakd6cUsvbk9Kc0lpMk9aT2dvbDdrWFNHRmk2dVpNYTdkUlkKLW1tTWJOL3ozRkFpZmhXVko4MWt5YmRIZzZHM2VVdTFtdEtrTDJrQ1ZBZ01CQUFHZ0tUQW5CZ2txaGtpRzl3MEIKLUNRNHhHakFZTUFrR0ExVWRFd1FDTUFBd0N3WURWUjBQQkFRREFnWGdNRDBHQ1NxR1NJYjNEUUVCQ2pBd29BMHcKLUN3WUpZSVpJQVdVREJBSURvUm93R0FZSktvWklodmNOQVFFSU1Bc0dDV0NHU0FGbEF3UUNBNklEQWdFK0E0R0IKLUFDeFdCaFBraHlWbEJZL213a3JXN09qWXNhTjIvWmxGU3Y3Nnc2M2I2MUJwaWdSZUpzZ2dNdXQ1RVBPZ2ZHWUoKLXJ6eWdLRGxGL050bU1OMjJqV3JGdXA5THNaSkFYMGdZYkxtbGlpYUc5SGNoK2kvOGI0Mm9hUVREV0dGWjlMaVkKLVc3RjdYMGY5bHB6TktPdFE4aXgwcytuWVMyT055emZ1NTUrUmx6ZjgvNjNNCi0tLS0tLUVORCBDRVJUSUZJQ0FURSBSRVFVRVNULS0tLS0KZGlmZiAtLWdpdCBhL3Rlc3RzL2RhdGFfZmlsZXMvcGFyc2VfaW5wdXQvdGVzdC1jYS1hbnlfcG9saWN5LmNydCBiL3Rlc3RzL2RhdGFfZmlsZXMvcGFyc2VfaW5wdXQvdGVzdC1jYS1hbnlfcG9saWN5LmNydApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYWY4NzQzOS4uMDAwMDAwMAotLS0gYS90ZXN0cy9kYXRhX2ZpbGVzL3BhcnNlX2lucHV0L3Rlc3QtY2EtYW55X3BvbGljeS5jcnQKKysrIC9kZXYvbnVsbApAQCAtMSwxOSArMCwwIEBACi0tLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KLU1JSURGRENDQWZ5Z0F3SUJBZ0lCQURBTkJna3Foa2lHOXcwQkFRc0ZBREE3TVFzd0NRWURWUVFHRXdKT1RERVIKLU1BOEdBMVVFQ2d3SVVHOXNZWEpUVTB3eEdUQVhCZ05WQkFNTUVGQnZiR0Z5VTFOTUlGUmxjM1FnUTBFd0hoY04KLU1Ua3dNekl4TVRZME1EVTVXaGNOTWprd016SXhNVFkwTURVNVdqQTdNUXN3Q1FZRFZRUUdFd0pPVERFUk1BOEcKLUExVUVDZ3dJVUc5c1lYSlRVMHd4R1RBWEJnTlZCQU1NRUZCdmJHRnlVMU5NSUZSbGMzUWdRMEV3Z2dFaU1BMEcKLUNTcUdTSWIzRFFFQkFRVUFBNElCRHdBd2dnRUtBb0lCQVFEQTN6ZjhGN3ZnbHAwL2h0NldNbjFFcFJhZ3pTSHgKLW1kVHM2c3Q4R0ZnSWxLWHNtOFdMM3hvZW1UaVpoeDU3d0kwNTN6aGRjSGdIMDU3WmsraTVjbEhGenFNd1VxbnkKLTUwQndGTXRFb25JTHd1VkErVDdscGc2eitleEtZOEM0S1FCMG5GYzdxS1VFa0hIeHZZUFpQOWFsNGp3cWorOG4KLVlNUEduOHU2N0dCOXQrYUVNcjVQKzFnbUlnTmIxTFRWKy9YamxpNXd3T1F1dmZ3dTd1SkJWY0EwTG4wa2NtbkwKLVI3RVVRSU45Wi9TRzlqR3I4WG1rc3JVdUV2bUVGL0JpYnljK0UxaXhWQTBobW5NM29URFBiNUxjOXVuOHJOc3UKLUtORitBa3Nqb0JYeU9HVmtDZW9NYm80YkY2Qnh5TE9ieWF2cHcvTFBoNWFQZ0FJeW5wbFliNkxWQWdNQkFBR2oKLUl6QWhNQXdHQTFVZEV3UUZNQU1CQWY4d0VRWURWUjBnQkFvd0NEQUdCZ1JWSFNBQU1BMEdDU3FHU0liM0RRRUIKLUN3VUFBNElCQVFDSGFkVURaaUlqSmhjckcrcllycE9WZ011NTQ4cmM1a0hMQzd6VlNWZnN6ZmRPSnEvVGRYUVQKLUxibjlpK0FBVlJZSlUya0hXS0QyZnZnT1lJSUJlRUdGSktvaGxLWjgyaXJXeHQwTHRwaDMxY3V5Z0xjcHFOcTkKLUtSUS9kaDNTMHc5dm4xQTF1YllHS1R6VG5aR0VMVFZ6TWxYWkdUUmJBT3lsTXU0ZVdhYzZMSHltRTJFQnFtT3EKLWZQQ3VXZEZCNjJld1FXUmErZFJPOTJBcGhoODcwdTQzL2lMYnc3aHM0czhob2taUDdFd2c2QUhiNHFqVmVQZEYKLWpqeEFPNng1VkNqL1dRUm53N211QXkwUDNsNUFoWVhBSVVkbmtkWWNhNUphNkxmZEVKaVZlVGRFM0lVNlVKZysKLWdBdTlzd0RoVWxFdUlsQ3JPZEMzdE9QRHNsc09JZ1RWCi0tLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCmRpZmYgLS1naXQgYS90ZXN0cy9kYXRhX2ZpbGVzL3BhcnNlX2lucHV0L3Rlc3QtY2EtYW55X3BvbGljeV9lYy5jcnQgYi90ZXN0cy9kYXRhX2ZpbGVzL3BhcnNlX2lucHV0L3Rlc3QtY2EtYW55X3BvbGljeV9lYy5jcnQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDgyMWE5MmMuLjAwMDAwMDAKLS0tIGEvdGVzdHMvZGF0YV9maWxlcy9wYXJzZV9pbnB1dC90ZXN0LWNhLWFueV9wb2xpY3lfZWMuY3J0CisrKyAvZGV2L251bGwKQEAgLTEsMTIgKzAsMCBAQAotLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCi1NSUlCekRDQ0FWR2dBd0lCQWdJQkFEQUtCZ2dxaGtqT1BRUURBakErTVFzd0NRWURWUVFHRXdKT1RERVJNQThHCi1BMVVFQ2d3SVVHOXNZWEpUVTB3eEhEQWFCZ05WQkFNTUUxQnZiR0Z5YzNOc0lGUmxjM1FnUlVNZ1EwRXdIaGNOCi1NVGt3TXpJMU1Ea3dNalExV2hjTk1qa3dNekkxTURrd01qUTFXakErTVFzd0NRWURWUVFHRXdKT1RERVJNQThHCi1BMVVFQ2d3SVVHOXNZWEpUVTB3eEhEQWFCZ05WQkFNTUUxQnZiR0Z5YzNOc0lGUmxjM1FnUlVNZ1EwRXdkakFRCi1CZ2NxaGtqT1BRSUJCZ1VyZ1FRQUlnTmlBQVREMmlzMFFUZFlMNGRXL3Z5SnVpbERTMDdnYnNNT1YxTXpPVmpVCi1VclNSbFRrTEk5OWZGeVJpU1B3YWxTbk9MQzJId29oU2dLL1dhcXNoM2JqVEhHNVl1TXJvc21tTzgwR3RLY08wCi1YM1duUjIvVkdTbFZhWnBUT3lDMFpoWmdNeDZqSXpBaE1Bd0dBMVVkRXdRRk1BTUJBZjh3RVFZRFZSMGdCQW93Ci1DREFHQmdSVkhTQUFNQW9HQ0NxR1NNNDlCQU1DQTJrQU1HWUNNUURXSGdtV01ja2JHTGQ3WFJFbkpWQXYrWFJwCi1YQU5PQ2JXTER1K0ZpazZjMjhTK3FSNnpHRUtLR2lQSFllRHBqUkFDTVFEblljRkJ3bGZ1QUI2dGQzZnRlRzBQCi1BV25nT2FHSG1VRkVBNmgyNGI1WjYvR1NGRDlGSzlyVlJkeFFjNE9sejdVPQotLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQpkaWZmIC0tZ2l0IGEvdGVzdHMvZGF0YV9maWxlcy9wYXJzZV9pbnB1dC90ZXN0LWNhLWFueV9wb2xpY3lfd2l0aF9xdWFsaWZpZXIuY3J0IGIvdGVzdHMvZGF0YV9maWxlcy9wYXJzZV9pbnB1dC90ZXN0LWNhLWFueV9wb2xpY3lfd2l0aF9xdWFsaWZpZXIuY3J0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhMDUyYmM2Li4wMDAwMDAwCi0tLSBhL3Rlc3RzL2RhdGFfZmlsZXMvcGFyc2VfaW5wdXQvdGVzdC1jYS1hbnlfcG9saWN5X3dpdGhfcXVhbGlmaWVyLmNydAorKysgL2Rldi9udWxsCkBAIC0xLDIwICswLDAgQEAKLS0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQotTUlJRE1qQ0NBaHFnQXdJQkFnSUJBREFOQmdrcWhraUc5dzBCQVFzRkFEQTdNUXN3Q1FZRFZRUUdFd0pPVERFUgotTUE4R0ExVUVDZ3dJVUc5c1lYSlRVMHd4R1RBWEJnTlZCQU1NRUZCdmJHRnlVMU5NSUZSbGMzUWdRMEV3SGhjTgotTVRrd05ESTRNVE14TkRNeFdoY05Namt3TkRJNE1UTXhORE14V2pBN01Rc3dDUVlEVlFRR0V3Sk9UREVSTUE4RwotQTFVRUNnd0lVRzlzWVhKVFUwd3hHVEFYQmdOVkJBTU1FRkJ2YkdGeVUxTk1JRlJsYzNRZ1EwRXdnZ0VpTUEwRwotQ1NxR1NJYjNEUUVCQVFVQUE0SUJEd0F3Z2dFS0FvSUJBUURBM3pmOEY3dmdscDAvaHQ2V01uMUVwUmFnelNIeAotbWRUczZzdDhHRmdJbEtYc204V0wzeG9lbVRpWmh4NTd3STA1M3poZGNIZ0gwNTdaaytpNWNsSEZ6cU13VXFueQotNTBCd0ZNdEVvbklMd3VWQStUN2xwZzZ6K2V4S1k4QzRLUUIwbkZjN3FLVUVrSEh4dllQWlA5YWw0andxais4bgotWU1QR244dTY3R0I5dCthRU1yNVArMWdtSWdOYjFMVFYrL1hqbGk1d3dPUXV2Znd1N3VKQlZjQTBMbjBrY21uTAotUjdFVVFJTjlaL1NHOWpHcjhYbWtzclV1RXZtRUYvQmlieWMrRTFpeFZBMGhtbk0zb1REUGI1TGM5dW44ck5zdQotS05GK0Frc2pvQlh5T0dWa0Nlb01ibzRiRjZCeHlMT2J5YXZwdy9MUGg1YVBnQUl5bnBsWWI2TFZBZ01CQUFHagotUVRBL01Bd0dBMVVkRXdRRk1BTUJBZjh3THdZRFZSMGdCQ2d3SmpBa0JnUlZIU0FBTUJ3d0dnWUlLd1lCQlFVSAotQWdFV0RrTlFVeUIxY21rZ2MzUnlhVzVuTUEwR0NTcUdTSWIzRFFFQkN3VUFBNElCQVFCbzNDTHd2VGFrVkRXcwotWFVaejNlaEdnazM5S3ptWU9iM205YkJmTXBPcGxEZkU4WmFqOFREWlpzeFhwTkNYVDg1R2dickFkcjZwT05RSgotTXFkM1R6VFhDczZ0bW1JT1ZEVG9PajZuS3RtMm5OU2YrMVRVdUxSZ2VhdmdDb2ljb1FaT3RXNXRBZWh3L1JURQotNFZRWFNtK1pXb3RZd0sxanZsSFMwTGFlaFV5NTNHc054V0JKSENjM2V4RCtpeXV0WFRaODlqY3pJS3VXcEVJTgotcFRkSS9FWVZEMnI2ci9JSVRSbkpwR2pOWE9oR0I0enZnRmx3djg4R2VGNWxHNlNpOVlEK3N3TzhKdUpQMzVxNgotN2NQQS92dHJqb2l5TTNrWG1tTjFMWkdJZkVNS053RWN5Vmh2bCtkNnNSZW9tSTNIQUtPajlJSUc3dW1GS2k2dAotYXhNd3pLM1kKLS0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KZGlmZiAtLWdpdCBhL3Rlc3RzL2RhdGFfZmlsZXMvcGFyc2VfaW5wdXQvdGVzdC1jYS1hbnlfcG9saWN5X3dpdGhfcXVhbGlmaWVyX2VjLmNydCBiL3Rlc3RzL2RhdGFfZmlsZXMvcGFyc2VfaW5wdXQvdGVzdC1jYS1hbnlfcG9saWN5X3dpdGhfcXVhbGlmaWVyX2VjLmNydApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNWUxNDkxZC4uMDAwMDAwMAotLS0gYS90ZXN0cy9kYXRhX2ZpbGVzL3BhcnNlX2lucHV0L3Rlc3QtY2EtYW55X3BvbGljeV93aXRoX3F1YWxpZmllcl9lYy5jcnQKKysrIC9kZXYvbnVsbApAQCAtMSwxMyArMCwwIEBACi0tLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KLU1JSUI2RENDQVcrZ0F3SUJBZ0lCQURBS0JnZ3Foa2pPUFFRREFqQStNUXN3Q1FZRFZRUUdFd0pPVERFUk1BOEcKLUExVUVDZ3dJVUc5c1lYSlRVMHd4SERBYUJnTlZCQU1NRTFCdmJHRnljM05zSUZSbGMzUWdSVU1nUTBFd0hoY04KLU1Ua3dOREk0TVRBeE5qQTFXaGNOTWprd05ESTRNVEF4TmpBMVdqQStNUXN3Q1FZRFZRUUdFd0pPVERFUk1BOEcKLUExVUVDZ3dJVUc5c1lYSlRVMHd4SERBYUJnTlZCQU1NRTFCdmJHRnljM05zSUZSbGMzUWdSVU1nUTBFd2RqQVEKLUJnY3Foa2pPUFFJQkJnVXJnUVFBSWdOaUFBVEQyaXMwUVRkWUw0ZFcvdnlKdWlsRFMwN2dic01PVjFNek9WalUKLVVyU1JsVGtMSTk5ZkZ5UmlTUHdhbFNuT0xDMkh3b2hTZ0svV2Fxc2gzYmpUSEc1WXVNcm9zbW1PODBHdEtjTzAKLVgzV25SMi9WR1NsVmFacFRPeUMwWmhaZ014NmpRVEEvTUF3R0ExVWRFd1FGTUFNQkFmOHdMd1lEVlIwZ0JDZ3cKLUpqQWtCZ1JWSFNBQU1Cd3dHZ1lJS3dZQkJRVUhBZ0VXRGtOUVV5QjFjbWtnYzNSeWFXNW5NQW9HQ0NxR1NNNDkKLUJBTUNBMmNBTUdRQ01Edmk1YkJWcGxVM0djdCtpWVJtUlc5ZXd0eTViKzFPWDBnZ3pBK0V4WHBMMU9ibzZBMTYKLWEyaDFrYjdPeTQrQlNBSXdYWkhZYjZPRVdrT25nSVNmd1NaeERpaU5YT1R3dkN1Mi9vRkdDOHhURU5uMEI4OG0KLTJXd1B6aDRqbnZYaE5oMHcKLS0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KZGlmZiAtLWdpdCBhL3Rlc3RzL2RhdGFfZmlsZXMvcGFyc2VfaW5wdXQvdGVzdC1jYS1tdWx0aV9wb2xpY3kuY3J0IGIvdGVzdHMvZGF0YV9maWxlcy9wYXJzZV9pbnB1dC90ZXN0LWNhLW11bHRpX3BvbGljeS5jcnQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDE2OGU5OWYuLjAwMDAwMDAKLS0tIGEvdGVzdHMvZGF0YV9maWxlcy9wYXJzZV9pbnB1dC90ZXN0LWNhLW11bHRpX3BvbGljeS5jcnQKKysrIC9kZXYvbnVsbApAQCAtMSwxOSArMCwwIEBACi0tLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KLU1JSURHekNDQWdPZ0F3SUJBZ0lCQURBTkJna3Foa2lHOXcwQkFRc0ZBREE3TVFzd0NRWURWUVFHRXdKT1RERVIKLU1BOEdBMVVFQ2d3SVVHOXNZWEpUVTB3eEdUQVhCZ05WQkFNTUVGQnZiR0Z5VTFOTUlGUmxjM1FnUTBFd0hoY04KLU1Ua3dOREk0TVRJMU9URTVXaGNOTWprd05ESTRNVEkxT1RFNVdqQTdNUXN3Q1FZRFZRUUdFd0pPVERFUk1BOEcKLUExVUVDZ3dJVUc5c1lYSlRVMHd4R1RBWEJnTlZCQU1NRUZCdmJHRnlVMU5NSUZSbGMzUWdRMEV3Z2dFaU1BMEcKLUNTcUdTSWIzRFFFQkFRVUFBNElCRHdBd2dnRUtBb0lCQVFEQTN6ZjhGN3ZnbHAwL2h0NldNbjFFcFJhZ3pTSHgKLW1kVHM2c3Q4R0ZnSWxLWHNtOFdMM3hvZW1UaVpoeDU3d0kwNTN6aGRjSGdIMDU3WmsraTVjbEhGenFNd1VxbnkKLTUwQndGTXRFb25JTHd1VkErVDdscGc2eitleEtZOEM0S1FCMG5GYzdxS1VFa0hIeHZZUFpQOWFsNGp3cWorOG4KLVlNUEduOHU2N0dCOXQrYUVNcjVQKzFnbUlnTmIxTFRWKy9YamxpNXd3T1F1dmZ3dTd1SkJWY0EwTG4wa2NtbkwKLVI3RVVRSU45Wi9TRzlqR3I4WG1rc3JVdUV2bUVGL0JpYnljK0UxaXhWQTBobW5NM29URFBiNUxjOXVuOHJOc3UKLUtORitBa3Nqb0JYeU9HVmtDZW9NYm80YkY2Qnh5TE9ieWF2cHcvTFBoNWFQZ0FJeW5wbFliNkxWQWdNQkFBR2oKLUtqQW9NQXdHQTFVZEV3UUZNQU1CQWY4d0dBWURWUjBnQkJFd0R6QUZCZ01xQXdRd0JnWUVWUjBnQURBTkJna3EKLWhraUc5dzBCQVFzRkFBT0NBUUVBUHdPVW1qbnJjQkE3ZHQ1ZHJDYWtFejlIT3BqOGdaUWQxZnlWR3YyMjFMQ0wKLWgyVzFOZ2QyV2xjQURoUFFjVGRxTng0RGsrS1BpQmpQRW9vRTlNN2QzSzMzUW4vZFZrbU9ZaVc2RS80d1UydE0KLWNxRmo3cmc4Tm93NGxCYUVxRW1CUCtjcHYrbVlxYXZQY0t5M3R6NHduMVNuQTNNcFQxaEVhemhOZTR5SW5OQVkKLTRZcVJCYld1QkdrZVBqYmNlNkxmK3JUZmFBN2tKbnl1QzlTSGd1UVJtV3RWM3h6TnpMVUZuK1YvallTcVl2WVUKLTJNakRGZ0NZQ21XMHhsNVdvOHdNV1dBdk1iTzJtUkozN09MVWtTT2t4Z2VFTDZPaWhZMUdQa2JmeEMycVY2bVIKLTRWam1mY2x3WHVtaURBdlZMaFc4aFdqQ3hnOGdjNjlHN2tDa1ZibGpMQT09Ci0tLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCmRpZmYgLS1naXQgYS90ZXN0cy9kYXRhX2ZpbGVzL3BhcnNlX2lucHV0L3Rlc3QtY2EtbXVsdGlfcG9saWN5X2VjLmNydCBiL3Rlc3RzL2RhdGFfZmlsZXMvcGFyc2VfaW5wdXQvdGVzdC1jYS1tdWx0aV9wb2xpY3lfZWMuY3J0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3MGVhMmViLi4wMDAwMDAwCi0tLSBhL3Rlc3RzL2RhdGFfZmlsZXMvcGFyc2VfaW5wdXQvdGVzdC1jYS1tdWx0aV9wb2xpY3lfZWMuY3J0CisrKyAvZGV2L251bGwKQEAgLTEsMTIgKzAsMCBAQAotLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCi1NSUlCMHpDQ0FWaWdBd0lCQWdJQkFEQUtCZ2dxaGtqT1BRUURBakErTVFzd0NRWURWUVFHRXdKT1RERVJNQThHCi1BMVVFQ2d3SVVHOXNZWEpUVTB3eEhEQWFCZ05WQkFNTUUxQnZiR0Z5YzNOc0lGUmxjM1FnUlVNZ1EwRXdIaGNOCi1NVGt3TkRJNE1USTFPVFV4V2hjTk1qa3dOREk0TVRJMU9UVXhXakErTVFzd0NRWURWUVFHRXdKT1RERVJNQThHCi1BMVVFQ2d3SVVHOXNZWEpUVTB3eEhEQWFCZ05WQkFNTUUxQnZiR0Z5YzNOc0lGUmxjM1FnUlVNZ1EwRXdkakFRCi1CZ2NxaGtqT1BRSUJCZ1VyZ1FRQUlnTmlBQVREMmlzMFFUZFlMNGRXL3Z5SnVpbERTMDdnYnNNT1YxTXpPVmpVCi1VclNSbFRrTEk5OWZGeVJpU1B3YWxTbk9MQzJId29oU2dLL1dhcXNoM2JqVEhHNVl1TXJvc21tTzgwR3RLY08wCi1YM1duUjIvVkdTbFZhWnBUT3lDMFpoWmdNeDZqS2pBb01Bd0dBMVVkRXdRRk1BTUJBZjh3R0FZRFZSMGdCQkV3Ci1EekFGQmdNcUF3UXdCZ1lFVlIwZ0FEQUtCZ2dxaGtqT1BRUURBZ05wQURCbUFqRUFxeXoydis2aTN4WEY0cWxyCi1vODlxeHdscEluOXNSMHhVK3FvOXRnY002RmE3SURkQVUxbGh3ZU44TXBrSlR0ckdBakVBbWdOSS8wOE04bjYvCi1zTU0wWHV0dDV1OUVVSGIrNHkwdXlPZllNY0VQcitwQ1VNNEdQeEJQNlJkcUk4V3U5T1FmCi0tLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCmRpZmYgLS1naXQgYS90ZXN0cy9kYXRhX2ZpbGVzL3BhcnNlX2lucHV0L3Rlc3QtY2EtdW5zdXBwb3J0ZWRfcG9saWN5LmNydCBiL3Rlc3RzL2RhdGFfZmlsZXMvcGFyc2VfaW5wdXQvdGVzdC1jYS11bnN1cHBvcnRlZF9wb2xpY3kuY3J0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiZjQ3ZDk1Li4wMDAwMDAwCi0tLSBhL3Rlc3RzL2RhdGFfZmlsZXMvcGFyc2VfaW5wdXQvdGVzdC1jYS11bnN1cHBvcnRlZF9wb2xpY3kuY3J0CisrKyAvZGV2L251bGwKQEAgLTEsMTkgKzAsMCBAQAotLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCi1NSUlERXpDQ0FmdWdBd0lCQWdJQkFEQU5CZ2txaGtpRzl3MEJBUXNGQURBN01Rc3dDUVlEVlFRR0V3Sk9UREVSCi1NQThHQTFVRUNnd0lVRzlzWVhKVFUwd3hHVEFYQmdOVkJBTU1FRkJ2YkdGeVUxTk1JRlJsYzNRZ1EwRXdIaGNOCi1NVGt3TkRJNE1UTXdNREV6V2hjTk1qa3dOREk0TVRNd01ERXpXakE3TVFzd0NRWURWUVFHRXdKT1RERVJNQThHCi1BMVVFQ2d3SVVHOXNZWEpUVTB3eEdUQVhCZ05WQkFNTUVGQnZiR0Z5VTFOTUlGUmxjM1FnUTBFd2dnRWlNQTBHCi1DU3FHU0liM0RRRUJBUVVBQTRJQkR3QXdnZ0VLQW9JQkFRREEzemY4Rjd2Z2xwMC9odDZXTW4xRXBSYWd6U0h4Ci1tZFRzNnN0OEdGZ0lsS1hzbThXTDN4b2VtVGlaaHg1N3dJMDUzemhkY0hnSDA1N1prK2k1Y2xIRnpxTXdVcW55Ci01MEJ3Rk10RW9uSUx3dVZBK1Q3bHBnNnorZXhLWThDNEtRQjBuRmM3cUtVRWtISHh2WVBaUDlhbDRqd3FqKzhuCi1ZTVBHbjh1NjdHQjl0K2FFTXI1UCsxZ21JZ05iMUxUVisvWGpsaTV3d09RdXZmd3U3dUpCVmNBMExuMGtjbW5MCi1SN0VVUUlOOVovU0c5akdyOFhta3NyVXVFdm1FRi9CaWJ5YytFMWl4VkEwaG1uTTNvVERQYjVMYzl1bjhyTnN1Ci1LTkYrQWtzam9CWHlPR1ZrQ2VvTWJvNGJGNkJ4eUxPYnlhdnB3L0xQaDVhUGdBSXlucGxZYjZMVkFnTUJBQUdqCi1JakFnTUF3R0ExVWRFd1FGTUFNQkFmOHdFQVlEVlIwZ0JBa3dCekFGQmdNcUF3UXdEUVlKS29aSWh2Y05BUUVMCi1CUUFEZ2dFQkFHdkFSWDJvclJYRG1jMmE3blNyYlJGa2R3LzdxYkw4WSt3TGVNOTRTc1pWZ3pHY3h6UngxS3ZHCi0ySDVuQnZQS2dBekJxV1ZQVTdlRFBqckVUSWZzQ3hTdSt5a2xCSWc1UVlSdU9jcHJMdFFQa0ZWZmwrV0xkMzFGCi1sUzF1TWdaa2FoSXI1N2FIb0pMWVByRWpXNENCSG9saVQ4eGZydlZaaTQreW03aS92RnFYTDdJSitQSWtsTkY4Ci0yL2I0U0FCOWhSSTVvUHcxVFY5UTB2MlBxTVhMLzBjcC85Um9lK0gyOFRjcm9keTZqVHRFZHNVMndiYXhoeE1kCi1ZSzRBazFGa2hLSXR1bUlOYnRBVW5IZ0JWd08ySWl2R1pnc1l1bEMvOXkxdWg1TlUxSHhNenFoMDRVRU1ncmUrCi05U2VFamh3RmtxMTZOamM1Q2R0LzdpRkxlaWFIY05VPQotLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQpkaWZmIC0tZ2l0IGEvdGVzdHMvZGF0YV9maWxlcy9wYXJzZV9pbnB1dC90ZXN0LWNhLXVuc3VwcG9ydGVkX3BvbGljeV9lYy5jcnQgYi90ZXN0cy9kYXRhX2ZpbGVzL3BhcnNlX2lucHV0L3Rlc3QtY2EtdW5zdXBwb3J0ZWRfcG9saWN5X2VjLmNydApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMTYxZTgzYy4uMDAwMDAwMAotLS0gYS90ZXN0cy9kYXRhX2ZpbGVzL3BhcnNlX2lucHV0L3Rlc3QtY2EtdW5zdXBwb3J0ZWRfcG9saWN5X2VjLmNydAorKysgL2Rldi9udWxsCkBAIC0xLDEyICswLDAgQEAKLS0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQotTUlJQnlqQ0NBVkNnQXdJQkFnSUJBREFLQmdncWhrak9QUVFEQWpBK01Rc3dDUVlEVlFRR0V3Sk9UREVSTUE4RwotQTFVRUNnd0lVRzlzWVhKVFUwd3hIREFhQmdOVkJBTU1FMUJ2YkdGeWMzTnNJRlJsYzNRZ1JVTWdRMEV3SGhjTgotTVRrd05ESTRNVE13TURFNVdoY05Namt3TkRJNE1UTXdNREU1V2pBK01Rc3dDUVlEVlFRR0V3Sk9UREVSTUE4RwotQTFVRUNnd0lVRzlzWVhKVFUwd3hIREFhQmdOVkJBTU1FMUJ2YkdGeWMzTnNJRlJsYzNRZ1JVTWdRMEV3ZGpBUQotQmdjcWhrak9QUUlCQmdVcmdRUUFJZ05pQUFURDJpczBRVGRZTDRkVy92eUp1aWxEUzA3Z2JzTU9WMU16T1ZqVQotVXJTUmxUa0xJOTlmRnlSaVNQd2FsU25PTEMySHdvaFNnSy9XYXFzaDNialRIRzVZdU1yb3NtbU84MEd0S2NPMAotWDNXblIyL1ZHU2xWYVpwVE95QzBaaFpnTXg2aklqQWdNQXdHQTFVZEV3UUZNQU1CQWY4d0VBWURWUjBnQkFrdwotQnpBRkJnTXFBd1F3Q2dZSUtvWkl6ajBFQXdJRGFBQXdaUUl3S1VZM2FUTDZVUjJIMVExT3pJSnc3dnhVc280UAotMlBrc0NXYjYya1FlQW5oWUs4NXQxVkdRaUE0OWlIQ1hWS3VYQWpFQXErMXF2bG13SFgxRTk5aGEvcnZ4Y0FZcAotVW14WExtU2I1M1JUME52aEVLblVWR0dVcDJwQk5BVlZKT0grRzBOSQotLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQpkaWZmIC0tZ2l0IGEvdGVzdHMvZGF0YV9maWxlcy9wYXJzZV9pbnB1dC90ZXN0LWNhLmNydCBiL3Rlc3RzL2RhdGFfZmlsZXMvcGFyc2VfaW5wdXQvdGVzdC1jYS5jcnQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDMxNzkwYjUuLjAwMDAwMDAKLS0tIGEvdGVzdHMvZGF0YV9maWxlcy9wYXJzZV9pbnB1dC90ZXN0LWNhLmNydAorKysgL2Rldi9udWxsCkBAIC0xLDIwICswLDAgQEAKLS0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQotTUlJRFFUQ0NBaW1nQXdJQkFnSUJBekFOQmdrcWhraUc5dzBCQVFVRkFEQTdNUXN3Q1FZRFZRUUdFd0pPVERFUgotTUE4R0ExVUVDZ3dJVUc5c1lYSlRVMHd4R1RBWEJnTlZCQU1NRUZCdmJHRnlVMU5NSUZSbGMzUWdRMEV3SGhjTgotTVRrd01qRXdNVFEwTkRBd1doY05Namt3TWpFd01UUTBOREF3V2pBN01Rc3dDUVlEVlFRR0V3Sk9UREVSTUE4RwotQTFVRUNnd0lVRzlzWVhKVFUwd3hHVEFYQmdOVkJBTU1FRkJ2YkdGeVUxTk1JRlJsYzNRZ1EwRXdnZ0VpTUEwRwotQ1NxR1NJYjNEUUVCQVFVQUE0SUJEd0F3Z2dFS0FvSUJBUURBM3pmOEY3dmdscDAvaHQ2V01uMUVwUmFnelNIeAotbWRUczZzdDhHRmdJbEtYc204V0wzeG9lbVRpWmh4NTd3STA1M3poZGNIZ0gwNTdaaytpNWNsSEZ6cU13VXFueQotNTBCd0ZNdEVvbklMd3VWQStUN2xwZzZ6K2V4S1k4QzRLUUIwbkZjN3FLVUVrSEh4dllQWlA5YWw0andxais4bgotWU1QR244dTY3R0I5dCthRU1yNVArMWdtSWdOYjFMVFYrL1hqbGk1d3dPUXV2Znd1N3VKQlZjQTBMbjBrY21uTAotUjdFVVFJTjlaL1NHOWpHcjhYbWtzclV1RXZtRUYvQmlieWMrRTFpeFZBMGhtbk0zb1REUGI1TGM5dW44ck5zdQotS05GK0Frc2pvQlh5T0dWa0Nlb01ibzRiRjZCeHlMT2J5YXZwdy9MUGg1YVBnQUl5bnBsWWI2TFZBZ01CQUFHagotVURCT01Bd0dBMVVkRXdRRk1BTUJBZjh3SFFZRFZSME9CQllFRkxSYTVLV3ozdEpTOXJuVnBwVVA2ejY4eC8zLwotTUI4R0ExVWRJd1FZTUJhQUZMUmE1S1d6M3RKUzlyblZwcFVQNno2OHgvMy9NQTBHQ1NxR1NJYjNEUUVCQlFVQQotQTRJQkFRQjBaaU5SRmRpYTZrc2thUG5ocnFlaklScThZTUVHQWYyb0lQbnlaNzh4b3lFUmdjMzVsSEd5TXRzTAotaFdpY05qUDRkL2hTOUFzNGo1S0EyZ2ROR2k1RVRBMVg3U293V09Hc3J5aXZTcE1TSFZ5MStIZGZXbHNZUU96bQotOG8rZmFRTlVtOFh6UFZtdHRmQVZzcHhlSFN4SlozNk9vK1FXWjV3WmxDSUV5akVkTFVJZCtUbTRCejNCNWpSRAotelphL1NhcURva3E2Nk4yenBiZ0tLQWwzR1UyTysrZkJxUDJkU2tkUXlrbVR4aExMV1JOOEZKcWhZQVR5UW50WgotMFFTaTNXOUhmU1pQbkZUY1BJWGVvaVBkMnBMbHh0MWhadThkd3MyTFRYRTYzdVA2TU00TEh2V3hpdUphV2tQLwotbXR4eVVBTGoycFF4Uml0b3BPUkZRZG43QU9ZNQotLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQpkaWZmIC0tZ2l0IGEvdGVzdHMvZGF0YV9maWxlcy9wYXJzZV9pbnB1dC90ZXN0LWNhLmNydC5kZXIgYi90ZXN0cy9kYXRhX2ZpbGVzL3BhcnNlX2lucHV0L3Rlc3QtY2EuY3J0LmRlcgpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNWQ5NDgxMC4uMDAwMDAwMAotLS0gYS90ZXN0cy9kYXRhX2ZpbGVzL3BhcnNlX2lucHV0L3Rlc3QtY2EuY3J0LmRlcgorKysgL2Rldi9udWxsCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3Rlc3RzL2RhdGFfZmlsZXMvcGFyc2VfaW5wdXQvdGVzdF9jZXJ0X3JmYzgyMm5hbWUuY3J0LmRlciBiL3Rlc3RzL2RhdGFfZmlsZXMvcGFyc2VfaW5wdXQvdGVzdF9jZXJ0X3JmYzgyMm5hbWUuY3J0LmRlcgpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggY2RjODE4OS4uMDAwMDAwMAotLS0gYS90ZXN0cy9kYXRhX2ZpbGVzL3BhcnNlX2lucHV0L3Rlc3RfY2VydF9yZmM4MjJuYW1lLmNydC5kZXIKKysrIC9kZXYvbnVsbApCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS90ZXN0cy9kYXRhX2ZpbGVzL3BhcnNlX2lucHV0L3Rlc3RfY3NyX3YzX2FsbC5jc3IuZGVyIGIvdGVzdHMvZGF0YV9maWxlcy9wYXJzZV9pbnB1dC90ZXN0X2Nzcl92M19hbGwuY3NyLmRlcgpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggN2U3MTdmMy4uMDAwMDAwMAotLS0gYS90ZXN0cy9kYXRhX2ZpbGVzL3BhcnNlX2lucHV0L3Rlc3RfY3NyX3YzX2FsbC5jc3IuZGVyCisrKyAvZGV2L251bGwKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvdGVzdHMvZGF0YV9maWxlcy9wYXJzZV9pbnB1dC90ZXN0X2Nzcl92M19hbGxfbWFsZm9ybWVkX2F0dHJpYnV0ZXNfZXh0ZW5zaW9uX3JlcXVlc3QuY3NyLmRlciBiL3Rlc3RzL2RhdGFfZmlsZXMvcGFyc2VfaW5wdXQvdGVzdF9jc3JfdjNfYWxsX21hbGZvcm1lZF9hdHRyaWJ1dGVzX2V4dGVuc2lvbl9yZXF1ZXN0LmNzci5kZXIKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDk2YTExZTguLjAwMDAwMDAKLS0tIGEvdGVzdHMvZGF0YV9maWxlcy9wYXJzZV9pbnB1dC90ZXN0X2Nzcl92M19hbGxfbWFsZm9ybWVkX2F0dHJpYnV0ZXNfZXh0ZW5zaW9uX3JlcXVlc3QuY3NyLmRlcgorKysgL2Rldi9udWxsCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3Rlc3RzL2RhdGFfZmlsZXMvcGFyc2VfaW5wdXQvdGVzdF9jc3JfdjNfYWxsX21hbGZvcm1lZF9hdHRyaWJ1dGVzX2V4dGVuc2lvbl9yZXF1ZXN0X3NlcXVlbmNlX2xlbjEuY3NyLmRlciBiL3Rlc3RzL2RhdGFfZmlsZXMvcGFyc2VfaW5wdXQvdGVzdF9jc3JfdjNfYWxsX21hbGZvcm1lZF9hdHRyaWJ1dGVzX2V4dGVuc2lvbl9yZXF1ZXN0X3NlcXVlbmNlX2xlbjEuY3NyLmRlcgpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZjYxYzdjOC4uMDAwMDAwMAotLS0gYS90ZXN0cy9kYXRhX2ZpbGVzL3BhcnNlX2lucHV0L3Rlc3RfY3NyX3YzX2FsbF9tYWxmb3JtZWRfYXR0cmlidXRlc19leHRlbnNpb25fcmVxdWVzdF9zZXF1ZW5jZV9sZW4xLmNzci5kZXIKKysrIC9kZXYvbnVsbApCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS90ZXN0cy9kYXRhX2ZpbGVzL3BhcnNlX2lucHV0L3Rlc3RfY3NyX3YzX2FsbF9tYWxmb3JtZWRfYXR0cmlidXRlc19leHRlbnNpb25fcmVxdWVzdF9zZXF1ZW5jZV9sZW4yLmNzci5kZXIgYi90ZXN0cy9kYXRhX2ZpbGVzL3BhcnNlX2lucHV0L3Rlc3RfY3NyX3YzX2FsbF9tYWxmb3JtZWRfYXR0cmlidXRlc19leHRlbnNpb25fcmVxdWVzdF9zZXF1ZW5jZV9sZW4yLmNzci5kZXIKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGU2ZGIyY2MuLjAwMDAwMDAKLS0tIGEvdGVzdHMvZGF0YV9maWxlcy9wYXJzZV9pbnB1dC90ZXN0X2Nzcl92M19hbGxfbWFsZm9ybWVkX2F0dHJpYnV0ZXNfZXh0ZW5zaW9uX3JlcXVlc3Rfc2VxdWVuY2VfbGVuMi5jc3IuZGVyCisrKyAvZGV2L251bGwKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvdGVzdHMvZGF0YV9maWxlcy9wYXJzZV9pbnB1dC90ZXN0X2Nzcl92M19hbGxfbWFsZm9ybWVkX2F0dHJpYnV0ZXNfZXh0ZW5zaW9uX3JlcXVlc3Rfc2VxdWVuY2VfdGFnLmNzci5kZXIgYi90ZXN0cy9kYXRhX2ZpbGVzL3BhcnNlX2lucHV0L3Rlc3RfY3NyX3YzX2FsbF9tYWxmb3JtZWRfYXR0cmlidXRlc19leHRlbnNpb25fcmVxdWVzdF9zZXF1ZW5jZV90YWcuY3NyLmRlcgpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNjIwZmE3ZC4uMDAwMDAwMAotLS0gYS90ZXN0cy9kYXRhX2ZpbGVzL3BhcnNlX2lucHV0L3Rlc3RfY3NyX3YzX2FsbF9tYWxmb3JtZWRfYXR0cmlidXRlc19leHRlbnNpb25fcmVxdWVzdF9zZXF1ZW5jZV90YWcuY3NyLmRlcgorKysgL2Rldi9udWxsCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3Rlc3RzL2RhdGFfZmlsZXMvcGFyc2VfaW5wdXQvdGVzdF9jc3JfdjNfYWxsX21hbGZvcm1lZF9hdHRyaWJ1dGVzX2V4dGVuc2lvbl9yZXF1ZXN0X3NldF90YWcuY3NyLmRlciBiL3Rlc3RzL2RhdGFfZmlsZXMvcGFyc2VfaW5wdXQvdGVzdF9jc3JfdjNfYWxsX21hbGZvcm1lZF9hdHRyaWJ1dGVzX2V4dGVuc2lvbl9yZXF1ZXN0X3NldF90YWcuY3NyLmRlcgpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMWQzNThlNS4uMDAwMDAwMAotLS0gYS90ZXN0cy9kYXRhX2ZpbGVzL3BhcnNlX2lucHV0L3Rlc3RfY3NyX3YzX2FsbF9tYWxmb3JtZWRfYXR0cmlidXRlc19leHRlbnNpb25fcmVxdWVzdF9zZXRfdGFnLmNzci5kZXIKKysrIC9kZXYvbnVsbApCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS90ZXN0cy9kYXRhX2ZpbGVzL3BhcnNlX2lucHV0L3Rlc3RfY3NyX3YzX2FsbF9tYWxmb3JtZWRfYXR0cmlidXRlc19pZF90YWcuY3NyLmRlciBiL3Rlc3RzL2RhdGFfZmlsZXMvcGFyc2VfaW5wdXQvdGVzdF9jc3JfdjNfYWxsX21hbGZvcm1lZF9hdHRyaWJ1dGVzX2lkX3RhZy5jc3IuZGVyCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmOGQwNjg5Li4wMDAwMDAwCi0tLSBhL3Rlc3RzL2RhdGFfZmlsZXMvcGFyc2VfaW5wdXQvdGVzdF9jc3JfdjNfYWxsX21hbGZvcm1lZF9hdHRyaWJ1dGVzX2lkX3RhZy5jc3IuZGVyCisrKyAvZGV2L251bGwKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvdGVzdHMvZGF0YV9maWxlcy9wYXJzZV9pbnB1dC90ZXN0X2Nzcl92M19hbGxfbWFsZm9ybWVkX2F0dHJpYnV0ZXNfbGVuMS5jc3IuZGVyIGIvdGVzdHMvZGF0YV9maWxlcy9wYXJzZV9pbnB1dC90ZXN0X2Nzcl92M19hbGxfbWFsZm9ybWVkX2F0dHJpYnV0ZXNfbGVuMS5jc3IuZGVyCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMWVhYmZmLi4wMDAwMDAwCi0tLSBhL3Rlc3RzL2RhdGFfZmlsZXMvcGFyc2VfaW5wdXQvdGVzdF9jc3JfdjNfYWxsX21hbGZvcm1lZF9hdHRyaWJ1dGVzX2xlbjEuY3NyLmRlcgorKysgL2Rldi9udWxsCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3Rlc3RzL2RhdGFfZmlsZXMvcGFyc2VfaW5wdXQvdGVzdF9jc3JfdjNfYWxsX21hbGZvcm1lZF9hdHRyaWJ1dGVzX2xlbjIuY3NyLmRlciBiL3Rlc3RzL2RhdGFfZmlsZXMvcGFyc2VfaW5wdXQvdGVzdF9jc3JfdjNfYWxsX21hbGZvcm1lZF9hdHRyaWJ1dGVzX2xlbjIuY3NyLmRlcgpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggODc1ZGI3Ni4uMDAwMDAwMAotLS0gYS90ZXN0cy9kYXRhX2ZpbGVzL3BhcnNlX2lucHV0L3Rlc3RfY3NyX3YzX2FsbF9tYWxmb3JtZWRfYXR0cmlidXRlc19sZW4yLmNzci5kZXIKKysrIC9kZXYvbnVsbApCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS90ZXN0cy9kYXRhX2ZpbGVzL3BhcnNlX2lucHV0L3Rlc3RfY3NyX3YzX2FsbF9tYWxmb3JtZWRfYXR0cmlidXRlc19zZXF1ZW5jZV90YWcuY3NyLmRlciBiL3Rlc3RzL2RhdGFfZmlsZXMvcGFyc2VfaW5wdXQvdGVzdF9jc3JfdjNfYWxsX21hbGZvcm1lZF9hdHRyaWJ1dGVzX3NlcXVlbmNlX3RhZy5jc3IuZGVyCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzODI3M2NhLi4wMDAwMDAwCi0tLSBhL3Rlc3RzL2RhdGFfZmlsZXMvcGFyc2VfaW5wdXQvdGVzdF9jc3JfdjNfYWxsX21hbGZvcm1lZF9hdHRyaWJ1dGVzX3NlcXVlbmNlX3RhZy5jc3IuZGVyCisrKyAvZGV2L251bGwKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvdGVzdHMvZGF0YV9maWxlcy9wYXJzZV9pbnB1dC90ZXN0X2Nzcl92M19hbGxfbWFsZm9ybWVkX2R1cGxpY2F0ZWRfZXh0ZW5zaW9uLmNzci5kZXIgYi90ZXN0cy9kYXRhX2ZpbGVzL3BhcnNlX2lucHV0L3Rlc3RfY3NyX3YzX2FsbF9tYWxmb3JtZWRfZHVwbGljYXRlZF9leHRlbnNpb24uY3NyLmRlcgpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNGUyYTIyMS4uMDAwMDAwMAotLS0gYS90ZXN0cy9kYXRhX2ZpbGVzL3BhcnNlX2lucHV0L3Rlc3RfY3NyX3YzX2FsbF9tYWxmb3JtZWRfZHVwbGljYXRlZF9leHRlbnNpb24uY3NyLmRlcgorKysgL2Rldi9udWxsCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3Rlc3RzL2RhdGFfZmlsZXMvcGFyc2VfaW5wdXQvdGVzdF9jc3JfdjNfYWxsX21hbGZvcm1lZF9leHRlbnNpb25fZGF0YV9sZW4xLmNzci5kZXIgYi90ZXN0cy9kYXRhX2ZpbGVzL3BhcnNlX2lucHV0L3Rlc3RfY3NyX3YzX2FsbF9tYWxmb3JtZWRfZXh0ZW5zaW9uX2RhdGFfbGVuMS5jc3IuZGVyCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2MTE2MTE4Li4wMDAwMDAwCi0tLSBhL3Rlc3RzL2RhdGFfZmlsZXMvcGFyc2VfaW5wdXQvdGVzdF9jc3JfdjNfYWxsX21hbGZvcm1lZF9leHRlbnNpb25fZGF0YV9sZW4xLmNzci5kZXIKKysrIC9kZXYvbnVsbApCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS90ZXN0cy9kYXRhX2ZpbGVzL3BhcnNlX2lucHV0L3Rlc3RfY3NyX3YzX2FsbF9tYWxmb3JtZWRfZXh0ZW5zaW9uX2RhdGFfbGVuMi5jc3IuZGVyIGIvdGVzdHMvZGF0YV9maWxlcy9wYXJzZV9pbnB1dC90ZXN0X2Nzcl92M19hbGxfbWFsZm9ybWVkX2V4dGVuc2lvbl9kYXRhX2xlbjIuY3NyLmRlcgpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYTQ5MjA5YS4uMDAwMDAwMAotLS0gYS90ZXN0cy9kYXRhX2ZpbGVzL3BhcnNlX2lucHV0L3Rlc3RfY3NyX3YzX2FsbF9tYWxmb3JtZWRfZXh0ZW5zaW9uX2RhdGFfbGVuMi5jc3IuZGVyCisrKyAvZGV2L251bGwKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvdGVzdHMvZGF0YV9maWxlcy9wYXJzZV9pbnB1dC90ZXN0X2Nzcl92M19hbGxfbWFsZm9ybWVkX2V4dGVuc2lvbl9kYXRhX3RhZy5jc3IuZGVyIGIvdGVzdHMvZGF0YV9maWxlcy9wYXJzZV9pbnB1dC90ZXN0X2Nzcl92M19hbGxfbWFsZm9ybWVkX2V4dGVuc2lvbl9kYXRhX3RhZy5jc3IuZGVyCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjY2FlNzIzLi4wMDAwMDAwCi0tLSBhL3Rlc3RzL2RhdGFfZmlsZXMvcGFyc2VfaW5wdXQvdGVzdF9jc3JfdjNfYWxsX21hbGZvcm1lZF9leHRlbnNpb25fZGF0YV90YWcuY3NyLmRlcgorKysgL2Rldi9udWxsCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3Rlc3RzL2RhdGFfZmlsZXMvcGFyc2VfaW5wdXQvdGVzdF9jc3JfdjNfYWxsX21hbGZvcm1lZF9leHRlbnNpb25faWRfdGFnLmNzci5kZXIgYi90ZXN0cy9kYXRhX2ZpbGVzL3BhcnNlX2lucHV0L3Rlc3RfY3NyX3YzX2FsbF9tYWxmb3JtZWRfZXh0ZW5zaW9uX2lkX3RhZy5jc3IuZGVyCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5ODllNDA0Li4wMDAwMDAwCi0tLSBhL3Rlc3RzL2RhdGFfZmlsZXMvcGFyc2VfaW5wdXQvdGVzdF9jc3JfdjNfYWxsX21hbGZvcm1lZF9leHRlbnNpb25faWRfdGFnLmNzci5kZXIKKysrIC9kZXYvbnVsbApCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS90ZXN0cy9kYXRhX2ZpbGVzL3BhcnNlX2lucHV0L3Rlc3RfY3NyX3YzX2FsbF9tYWxmb3JtZWRfZXh0ZW5zaW9uX2tleV91c2FnZV9iaXRzdHJlYW1fdGFnLmNzci5kZXIgYi90ZXN0cy9kYXRhX2ZpbGVzL3BhcnNlX2lucHV0L3Rlc3RfY3NyX3YzX2FsbF9tYWxmb3JtZWRfZXh0ZW5zaW9uX2tleV91c2FnZV9iaXRzdHJlYW1fdGFnLmNzci5kZXIKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGE2ZmQyZDcuLjAwMDAwMDAKLS0tIGEvdGVzdHMvZGF0YV9maWxlcy9wYXJzZV9pbnB1dC90ZXN0X2Nzcl92M19hbGxfbWFsZm9ybWVkX2V4dGVuc2lvbl9rZXlfdXNhZ2VfYml0c3RyZWFtX3RhZy5jc3IuZGVyCisrKyAvZGV2L251bGwKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvdGVzdHMvZGF0YV9maWxlcy9wYXJzZV9pbnB1dC90ZXN0X2Nzcl92M19hbGxfbWFsZm9ybWVkX2V4dGVuc2lvbl9uc19jZXJ0X2JpdHN0cmVhbV90YWcuY3NyLmRlciBiL3Rlc3RzL2RhdGFfZmlsZXMvcGFyc2VfaW5wdXQvdGVzdF9jc3JfdjNfYWxsX21hbGZvcm1lZF9leHRlbnNpb25fbnNfY2VydF9iaXRzdHJlYW1fdGFnLmNzci5kZXIKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDZmZGNmYzguLjAwMDAwMDAKLS0tIGEvdGVzdHMvZGF0YV9maWxlcy9wYXJzZV9pbnB1dC90ZXN0X2Nzcl92M19hbGxfbWFsZm9ybWVkX2V4dGVuc2lvbl9uc19jZXJ0X2JpdHN0cmVhbV90YWcuY3NyLmRlcgorKysgL2Rldi9udWxsCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3Rlc3RzL2RhdGFfZmlsZXMvcGFyc2VfaW5wdXQvdGVzdF9jc3JfdjNfYWxsX21hbGZvcm1lZF9leHRlbnNpb25fc3ViamVjdF9hbHRfbmFtZV9zZXF1ZW5jZV90YWcuY3NyLmRlciBiL3Rlc3RzL2RhdGFfZmlsZXMvcGFyc2VfaW5wdXQvdGVzdF9jc3JfdjNfYWxsX21hbGZvcm1lZF9leHRlbnNpb25fc3ViamVjdF9hbHRfbmFtZV9zZXF1ZW5jZV90YWcuY3NyLmRlcgpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZjEwOTBmOS4uMDAwMDAwMAotLS0gYS90ZXN0cy9kYXRhX2ZpbGVzL3BhcnNlX2lucHV0L3Rlc3RfY3NyX3YzX2FsbF9tYWxmb3JtZWRfZXh0ZW5zaW9uX3N1YmplY3RfYWx0X25hbWVfc2VxdWVuY2VfdGFnLmNzci5kZXIKKysrIC9kZXYvbnVsbApCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS90ZXN0cy9kYXRhX2ZpbGVzL3BhcnNlX2lucHV0L3Rlc3RfY3NyX3YzX2FsbF9tYWxmb3JtZWRfZXh0ZW5zaW9uX3R5cGVfb2lkLmNzci5kZXIgYi90ZXN0cy9kYXRhX2ZpbGVzL3BhcnNlX2lucHV0L3Rlc3RfY3NyX3YzX2FsbF9tYWxmb3JtZWRfZXh0ZW5zaW9uX3R5cGVfb2lkLmNzci5kZXIKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDM2YmM2MWUuLjAwMDAwMDAKLS0tIGEvdGVzdHMvZGF0YV9maWxlcy9wYXJzZV9pbnB1dC90ZXN0X2Nzcl92M19hbGxfbWFsZm9ybWVkX2V4dGVuc2lvbl90eXBlX29pZC5jc3IuZGVyCisrKyAvZGV2L251bGwKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvdGVzdHMvZGF0YV9maWxlcy9wYXJzZV9pbnB1dC90ZXN0X2Nzcl92M19hbGxfbWFsZm9ybWVkX2V4dGVuc2lvbnNfc2VxdWVuY2VfdGFnLmNzci5kZXIgYi90ZXN0cy9kYXRhX2ZpbGVzL3BhcnNlX2lucHV0L3Rlc3RfY3NyX3YzX2FsbF9tYWxmb3JtZWRfZXh0ZW5zaW9uc19zZXF1ZW5jZV90YWcuY3NyLmRlcgpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZmVjYjE1ZS4uMDAwMDAwMAotLS0gYS90ZXN0cy9kYXRhX2ZpbGVzL3BhcnNlX2lucHV0L3Rlc3RfY3NyX3YzX2FsbF9tYWxmb3JtZWRfZXh0ZW5zaW9uc19zZXF1ZW5jZV90YWcuY3NyLmRlcgorKysgL2Rldi9udWxsCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3Rlc3RzL2RhdGFfZmlsZXMvcGFyc2VfaW5wdXQvdGVzdF9jc3JfdjNfa2V5VXNhZ2UuY3NyLmRlciBiL3Rlc3RzL2RhdGFfZmlsZXMvcGFyc2VfaW5wdXQvdGVzdF9jc3JfdjNfa2V5VXNhZ2UuY3NyLmRlcgpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZjhiZTAyMC4uMDAwMDAwMAotLS0gYS90ZXN0cy9kYXRhX2ZpbGVzL3BhcnNlX2lucHV0L3Rlc3RfY3NyX3YzX2tleVVzYWdlLmNzci5kZXIKKysrIC9kZXYvbnVsbApCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS90ZXN0cy9kYXRhX2ZpbGVzL3BhcnNlX2lucHV0L3Rlc3RfY3NyX3YzX25zQ2VydFR5cGUuY3NyLmRlciBiL3Rlc3RzL2RhdGFfZmlsZXMvcGFyc2VfaW5wdXQvdGVzdF9jc3JfdjNfbnNDZXJ0VHlwZS5jc3IuZGVyCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjZjk1ODhkLi4wMDAwMDAwCi0tLSBhL3Rlc3RzL2RhdGFfZmlsZXMvcGFyc2VfaW5wdXQvdGVzdF9jc3JfdjNfbnNDZXJ0VHlwZS5jc3IuZGVyCisrKyAvZGV2L251bGwKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvdGVzdHMvZGF0YV9maWxlcy9wYXJzZV9pbnB1dC90ZXN0X2Nzcl92M19zdWJqZWN0QWx0TmFtZS5jc3IuZGVyIGIvdGVzdHMvZGF0YV9maWxlcy9wYXJzZV9pbnB1dC90ZXN0X2Nzcl92M19zdWJqZWN0QWx0TmFtZS5jc3IuZGVyCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyY2NiM2JiLi4wMDAwMDAwCi0tLSBhL3Rlc3RzL2RhdGFfZmlsZXMvcGFyc2VfaW5wdXQvdGVzdF9jc3JfdjNfc3ViamVjdEFsdE5hbWUuY3NyLmRlcgorKysgL2Rldi9udWxsCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3Rlc3RzL2RhdGFfZmlsZXMvcGFzc3dkLnBzayBiL3Rlc3RzL2RhdGFfZmlsZXMvcGFzc3dkLnBzawpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMTdmZWUzNy4uMDAwMDAwMAotLS0gYS90ZXN0cy9kYXRhX2ZpbGVzL3Bhc3N3ZC5wc2sKKysrIC9kZXYvbnVsbApAQCAtMSArMCwwIEBACi1DbGllbnRfaWRlbnRpdHk6NjE2MjYzNjQ2NTY2Njc2ODY5NmE2YjZjNmQ2ZTZmNzAKZGlmZiAtLWdpdCBhL3Rlc3RzL2RhdGFfZmlsZXMvcGtjczctcnNhLWV4cGlyZWQuY3J0IGIvdGVzdHMvZGF0YV9maWxlcy9wa2NzNy1yc2EtZXhwaXJlZC5jcnQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGNlZDE4MWQuLjAwMDAwMDAKLS0tIGEvdGVzdHMvZGF0YV9maWxlcy9wa2NzNy1yc2EtZXhwaXJlZC5jcnQKKysrIC9kZXYvbnVsbApAQCAtMSwyMCArMCwwIEBACi0tLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KLU1JSURWVENDQWoyZ0F3SUJBZ0lVT3JXUzJQcmorWWZFMDExNmJtNFh2eHFmUmxrd0RRWUpLb1pJaHZjTkFRRUwKLUJRQXdPakVMTUFrR0ExVUVCaE1DVGt3eERqQU1CZ05WQkFvTUJWQkxRMU0zTVJzd0dRWURWUVFEREJKUVMwTlQKLU55QkRaWEowSUVWNGNHbHlaV1F3SGhjTk1USXhNakUzTVRreU56RTRXaGNOTVRNeE1qRTNNVGt5TnpFNFdqQTYKLU1Rc3dDUVlEVlFRR0V3Sk9UREVPTUF3R0ExVUVDZ3dGVUV0RFV6Y3hHekFaQmdOVkJBTU1FbEJMUTFNM0lFTmwKLWNuUWdSWGh3YVhKbFpEQ0NBU0l3RFFZSktvWklodmNOQVFFQkJRQURnZ0VQQURDQ0FRb0NnZ0VCQUt3ZFZnb0YKLU9DY2I4d0N4TFhiaWlSdWdsVGE0aVFNL0wycEd2UVFnSjNIZUFwQXpyYkwwemcwU3NUMDJLOVlxQXN0YTd6L1UKLWZoVkZQYXd0WTNRWlU0bGc1T3VrUE1KSzBKWnBZeW5qRGt4NEI5bXA4ZlBsenp3YWx6WERGbnJHYVM4NHowc3QKLWppYkxER1BzOUxMOG9SeVFTRnN1bTNGU00yQ0RUdzZnRkNOWVZZQjdmejlETHRXaDhpZ09tVzFabURneG9OWUEKLVp5V0VFY1pteldPRzVNU1l0OE54NFI1RE11eERhOHE1ME00NnNGUS84a0ZlcmxBY3ZBejduWlFxMTBGNjV3ZHkKLUpBQi9XS1prbmJkTjcybnRsSGR2YlVWaWF4MlU0REpOZHp0dU9KWWMyR0FsTHJXbVlrMDl5Tm9ybE5zRVhqUXAKLTh3NWpzalBobFFjbk1pRUNBd0VBQWFOVE1GRXdIUVlEVlIwT0JCWUVGRE9YRmlIQ2RHVTVFYmFtdWhqOHRFb1UKLWJHQTNNQjhHQTFVZEl3UVlNQmFBRkRPWEZpSENkR1U1RWJhbXVoajh0RW9VYkdBM01BOEdBMVVkRXdFQi93UUYKLU1BTUJBZjh3RFFZSktvWklodmNOQVFFTEJRQURnZ0VCQUEwRDhzWHZFVDVYVUdzM0Z3aHVCbTQzeWRyOFcxdTcKLTA3enhSTnZNWU82UXJzZnhoNFVBdzlJbEhiTGhMMm1yZFBSbjFJRjlEdHBmL3hBMkE4UU9mRGo1L3JBVUZtblgKLUMrR08wWWI3L2dTdXlvNnUybzhJQ1NGRHNUa09LQ1lsZG5lYUR0MkxJUExpZGxtVG5kcnFXVjNuek9DUXFidHoKLTBET2JUVlZLMFgvaFh2U3gyazJSNzFzZjFmUkxXU0hNUUJ4d2U0TVRjeVhmWHFyanEzZVJQMnhSekdXclZYaHUKLTBVL1BZQlZQU1cwQmZrYTR0b1RmOFZwWkxrd3dWYmcrOVFPSXB2R2Ewa05Nc1dXZ3llekxFT2taQjFHMUpYWUYKLTNGVzZMVERQMGg2NC84eEI4WWNudHRhR3N0d2dFSmpvUzFXNENqYVJMMHROS21SWVM1TXU1K0U9Ci0tLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCmRpZmYgLS1naXQgYS90ZXN0cy9kYXRhX2ZpbGVzL3BrY3M3LXJzYS1leHBpcmVkLmRlciBiL3Rlc3RzL2RhdGFfZmlsZXMvcGtjczctcnNhLWV4cGlyZWQuZGVyCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1MDhlYzVjLi4wMDAwMDAwCi0tLSBhL3Rlc3RzL2RhdGFfZmlsZXMvcGtjczctcnNhLWV4cGlyZWQuZGVyCisrKyAvZGV2L251bGwKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvdGVzdHMvZGF0YV9maWxlcy9wa2NzNy1yc2EtZXhwaXJlZC5rZXkgYi90ZXN0cy9kYXRhX2ZpbGVzL3BrY3M3LXJzYS1leHBpcmVkLmtleQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZGU5NDFkMy4uMDAwMDAwMAotLS0gYS90ZXN0cy9kYXRhX2ZpbGVzL3BrY3M3LXJzYS1leHBpcmVkLmtleQorKysgL2Rldi9udWxsCkBAIC0xLDI4ICswLDAgQEAKLS0tLS0tQkVHSU4gUFJJVkFURSBLRVktLS0tLQotTUlJRXZ3SUJBREFOQmdrcWhraUc5dzBCQVFFRkFBU0NCS2t3Z2dTbEFnRUFBb0lCQVFDc0hWWUtCVGduRy9NQQotc1MxMjRva2JvSlUydUlrRFB5OXFScjBFSUNkeDNnS1FNNjJ5OU00TkVyRTlOaXZXS2dMTFd1OC8xSDRWUlQycwotTFdOMEdWT0pZT1RycER6Q1N0Q1dhV01wNHc1TWVBZlpxZkh6NWM4OEdwYzF3eFo2eG1rdk9NOUxMWTRteXd4agotN1BTeS9LRWNrRWhiTHB0eFVqTmdnMDhPb0JRaldGV0FlMzgvUXk3Vm9mSW9EcGx0V1pnNE1hRFdBR2NsaEJIRwotWnMxamh1VEVtTGZEY2VFZVF6THNRMnZLdWRET09yQlVQL0pCWHE1UUhMd00rNTJVS3RkQmV1Y0hjaVFBZjFpbQotWkoyM1RlOXA3WlIzYjIxRlltc2RsT0F5VFhjN2JqaVdITmhnSlM2MXBtSk5QY2phSzVUYkJGNDBLZk1PWTdJegotNFpVSEp6SWhBZ01CQUFFQ2dnRUFiOHBTSXdvRzBlZ21hckdwN1Fqd3N3QVhTc2FMUDQrZnRYQ2l2blpBQ0lhQgotdGJYTFFXd2VGWUdwbXk5L1E0aGY3a052R0U5bFlWMXExRlZhdm9MZ3JsOC84UW5vNk8xOUUrVDVvckEyamxaOAotQ3RXR01MdDRZZnFIY2tUM2FlRkxXbitVcktpM0p0MUZlL1hoYmd3R2ZTMzl3VFBCaE5ZMlJwNmpEOFhMcnJSVgotakVCd0NHWnhSYW9ReHZmMWhkZHlSb2I5SU5RaVl4aXFoa3FrWnNGUnV1S2htMjh0di82bnJiM1VPRkVkNmgxcgotOUNnMm0wQkdGN3VubUZScTNaTS94SnZoTVNabFFFOFVNcHlpTEF2czZ2VFVCbE44T0tvVEdRUWdXOEplRndpOAotRGgxb1VtdzBKT253aUxBLzFLUEdTYzdPNmkrNTRvZ05pSzROMVU5WDBRS0JnUURUdUI4cEhkVHlVZlhLSW0zUgotbjkveENBSi9OV0pBWGpjcFVFd29JMkJLc1premhMTWxQdFQ1Rjg2Q1RPbjhQMmN4WndaaXhmZ284NHozTXgyQQotMkQwM3o0VzlGc0ZzQkE3Yk9ZNm1wZGN1cFg2SW9nTTdUZ2d1bytSaC9Ed3pJN0tWZ1ZxaW8vNFlZMXp3M2tvdQotRmNmSUl6NXdiNzlVaUZMczEyZ1FVY1FRQlFLQmdRRFFITE9vb2QwZ0dPcEN3UlRkNEJuVW5sWDQzdzNXU29iUgotMFphNnJSNzZxSm4xM0xNRi9yQnNxNWdjenZhZ0kxaloxTjk2TzBxYmtMMnlQbUZlSC9paDZ2Tk9ndTR1Q3l2KwotTG9nQm5ONXlpeFhZa2FwUkozZ1haZkFkQmwyYjlpaFhKZ3ZXVjFZRi82UXVMSzJWL0pUYlVRUThhYm9POFZndgotOThXY2JvamdiUUtCZ1FDWUlDb3pydjI5aCtxbDdRc2ZubEtZcS9xdlVMcGlLZEJVM1I5N2o3KzJxOW02ek5TMAotSkd0KzkvNG9YZithZ2l3eHNTZERmYUFNUE1QRE0zVTFpU3FqbVhjdElOYW1PRnc4WlNUODFSakNxYU03cGIzUQotdFFib0RGY2ptTXZncXZ1OHRROWM0WnpJQlUxWXZVQnIwTGFXTmN5OW1XM08zWTFJSkpiZmN3RC95UUtCZ1FDbwotUUF3ZnNYME1qaGdXai9OR3pmOFVIazV6UGlINXRaYjUydkI1UzYxWUNTY3YxcFlGcXJzSG9GTUNOM0M4VnRkbQotaE91SDdwZUszYUgva044M01iSFpkaEh1ejN1d1RlZnJQOE5GU29XdEpUVXNPZGZ3ZEhCcXVrYzlyLy9PTDF5OQotMkV5SnBXSXV4MWI4M2JJWktITlFQRmVvWC9IRVV1cHhIV2Z0Nkk5UW9RS0JnUUNEc2JSVGpVM2JlUCtFR3Y5UwotT0I3YjRFbmZUdC8vSkdMalVXUUVlWnRaYkNPQ3J2dE1pWm1WZldGbUVrOWN3QmlwQjVOY3pjYnpvNTcyalU0WAotY2pmdW9CbXZWK0lWT2tpNU5mQTJPd093ZnN4R1k2RFpkTndJQUpTT3lyMXhxVWV0VzlLRTZCSkVWcm9NaTVlTwotc0JheHJpUEM3UFlNckJMR25XWDRZc2gxaWc9PQotLS0tLS1FTkQgUFJJVkFURSBLRVktLS0tLQpkaWZmIC0tZ2l0IGEvdGVzdHMvZGF0YV9maWxlcy9wa2NzNy1yc2Etc2hhMjU2LTEuY3J0IGIvdGVzdHMvZGF0YV9maWxlcy9wa2NzNy1yc2Etc2hhMjU2LTEuY3J0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmZTI4MmFiLi4wMDAwMDAwCi0tLSBhL3Rlc3RzL2RhdGFfZmlsZXMvcGtjczctcnNhLXNoYTI1Ni0xLmNydAorKysgL2Rldi9udWxsCkBAIC0xLDIwICswLDAgQEAKLS0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQotTUlJRFNUQ0NBakdnQXdJQkFnSVVJMkxORXEwVlRyQ0RacG1KeXZTRzIwcktWK013RFFZSktvWklodmNOQVFFTAotQlFBd05ERUxNQWtHQTFVRUJoTUNUa3d4RGpBTUJnTlZCQW9NQlZCTFExTTNNUlV3RXdZRFZRUUREQXhRUzBOVAotTnlCRFpYSjBJREV3SGhjTk1qTXdOVEE0TVRBeE9URXhXaGNOTXpNd05UQTRNVEF4T1RFeFdqQTBNUXN3Q1FZRAotVlFRR0V3Sk9UREVPTUF3R0ExVUVDZ3dGVUV0RFV6Y3hGVEFUQmdOVkJBTU1ERkJMUTFNM0lFTmxjblFnTVRDQwotQVNJd0RRWUpLb1pJaHZjTkFRRUJCUUFEZ2dFUEFEQ0NBUW9DZ2dFQkFKcWlWYzFtMDZ3WW5Lc2hxWFNvT0ZEbAotaUZXNkYvM0kvdlZtRDYva3lUbXNaNDI1dGlDaXVubVNSMnJsSmM3LzJhV2JUSDBQM3V0M2Rpbm5vb1VzU3dzOAotRXdSVGpTZEVDRHpGOTZRVENJVXZoTUhJTlFmcFF1eFNyOWxlSzNBdm9pQ1BpM1hVZWZLaFR1b0YxQS9iVFF4MgotUWNOekpsdVFQQXpkdlVERkJaTGRMSW1qSjdnaWQxajdLU1JaSGpWeG5GUG5vbHIxRUVMWERKczI5UlZ1cDFpbgotOGZPYUJJbEhFQXJXdVNnVjJhUTd1Vkx1QkhNOE56MFk4MTBQRWxnVWFPQ014R3ZvL0V3NFRwQkpmRGlwU0QybAotV0ZQaXN4bkJ6am1xM2J5aSttQVJwcitCSHhFVHZicloxdVJiYUlBNmJ6R0wxUFpsdy92TWN2dVRIdTN5S01rQwotQXdFQUFhTlRNRkV3SFFZRFZSME9CQllFRkJ2UGMrWVdieFB0UDNNRmpteXJMNmxRa0pKdk1COEdBMVVkSXdRWQotTUJhQUZCdlBjK1lXYnhQdFAzTUZqbXlyTDZsUWtKSnZNQThHQTFVZEV3RUIvd1FGTUFNQkFmOHdEUVlKS29aSQotaHZjTkFRRUxCUUFEZ2dFQkFKSzdodU5KUitUbGtaQkhpQ3RiMEtNZmxqSFJXUHVBTDZmVzBtR3ZCRGVaeVJUSAotT3pHZHFnam5ZemdZWjUzOHBHN1RzTUdvbXJTUXdsQVRmSUNLc2Y4ZE5TbG5QcU9pSVBvMmZkZDhnci90Tzd5bAotRkcvS3ZYazB2NURmczRSR1VzN1VZZG16bmNFWUMySnNUb0ZzRDRqamErNXRuWS8vTkpSeGtKZHN3Zm4rd0JxSAotd04reTRxRUxkcStBRUJLeW1iUXNJd09CdDNVZGVWVXdCQmp0cUpYRnRFVDl5aHFrcVZ4bmIvaTBqSHJoanlpUwotUS9ZK1Q5czM1K0E2WGxJNm5TaUpMRHhNZmdKVkNXYTJPdEdJLy9hQWx6bHcrNmRIaWlKVlZCSHBaYlcwWVRZNAotcUU3a2poUHJkZEpZbEI2azRTM3ViOWo0ZTg3azBQMEl5RnB0eHc4PQotLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQpkaWZmIC0tZ2l0IGEvdGVzdHMvZGF0YV9maWxlcy9wa2NzNy1yc2Etc2hhMjU2LTEuZGVyIGIvdGVzdHMvZGF0YV9maWxlcy9wa2NzNy1yc2Etc2hhMjU2LTEuZGVyCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlZDI5ZTQwLi4wMDAwMDAwCi0tLSBhL3Rlc3RzL2RhdGFfZmlsZXMvcGtjczctcnNhLXNoYTI1Ni0xLmRlcgorKysgL2Rldi9udWxsCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3Rlc3RzL2RhdGFfZmlsZXMvcGtjczctcnNhLXNoYTI1Ni0xLmtleSBiL3Rlc3RzL2RhdGFfZmlsZXMvcGtjczctcnNhLXNoYTI1Ni0xLmtleQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYzYzNjdmYi4uMDAwMDAwMAotLS0gYS90ZXN0cy9kYXRhX2ZpbGVzL3BrY3M3LXJzYS1zaGEyNTYtMS5rZXkKKysrIC9kZXYvbnVsbApAQCAtMSwyOCArMCwwIEBACi0tLS0tLUJFR0lOIFBSSVZBVEUgS0VZLS0tLS0KLU1JSUV2QUlCQURBTkJna3Foa2lHOXcwQkFRRUZBQVNDQktZd2dnU2lBZ0VBQW9JQkFRQ2FvbFhOWnRPc0dKeXIKLUlhbDBxRGhRNVloVnVoZjl5UDcxWmcrdjVNazVyR2VOdWJZZ29ycDVra2RxNVNYTy85bWxtMHg5RDk3cmQzWXAKLTU2S0ZMRXNMUEJNRVU0MG5SQWc4eGZla0V3aUZMNFRCeURVSDZVTHNVcS9aWGl0d0w2SWdqNHQxMUhueW9VN3EKLUJkUVAyMDBNZGtIRGN5WmJrRHdNM2IxQXhRV1MzU3lKb3llNEluZFkreWtrV1I0MWNaeFQ1NkphOVJCQzF3eWIKLU52VVZicWRZcC9Iem1nU0pSeEFLMXJrb0ZkbWtPN2xTN2dSelBEYzlHUE5kRHhKWUZHamdqTVJyNlB4TU9FNlEKLVNYdzRxVWc5cFZoVDRyTVp3YzQ1cXQyOG92cGdFYWEvZ1I4UkU3MjYyZGJrVzJpQU9tOHhpOVQyWmNQN3pITDcKLWt4N3Q4aWpKQWdNQkFBRUNnZ0VBQ2lyWGw2MTF5RVJuZzdpUFJPNTlJbk9QS096WElENlhwZ0RIa2dZSjVaY0UKLWlZenZFTnNHUmhGVVRRN2pVeWFmTTh4LzVWNjJabmJZd0FWZEdpTEpEZVJ0cnl5RHROUGNNMHZFZmtjcW1hQS8KLTIwSjcyeWp2RjYwUnB5b1NFdHFzN3pWbEF2SzlNSE1EQm0vcTZ6NTlCTTlmUUZmSlN6Nnk5aGtiMVI4SFFHcGMKLWt0SUJ4cUFOdlEzWFl6UHd4QmRFQ0I2WUgxMnQxVWtDRUZObU9WdXA3TS9UcE1CdTc5aDRjZDY5UTcwOWlPcVAKLTlrSU94QUJyUkU3ZXZXcHdZSEZDSTdRZmJScEZlWTdJOWI5NE5RVUxtT0xLSm04UWZZZlh1bXpmSVEzZ3FVVzIKLVd5SU9KYzV6QWZ0US83RGR1NUNLYnFzTDd5QmlNR3hJNElIUVovZ0VjUUtCZ1FEQkUzRmw4WFc3SnBQOUowdncKLVZ2Q0JHSmdQT1U3dG45SkcwODJSVXIwcGk3SFJpRW8yM3pMMzdQdndQd2puODFTa1dtaDlXY0lRRm04SXA0T3kKLTlzVU1SMG9JbmpVM1BhQUkyb1JRQ09QeW5vZDIzd0M0dFZtakxyTkJlazhUMkFuVHRrdlNaYWxvb0FDTnVtZ0QKLUVmL2hwTVlEYTJPOWRUYmp0cU5PcDJBT3VRS0JnUUROQjZVR3p3WStIREc0NDRJci9RMnMyWGpPRDFjdkczcTgKLTNOYVNuSUh1eEplVWhZbEJYbVdzeWdwR0xycTRpNWg0RVdQejhxS1dRd0JEd3NaSUJHaXNKRlFjUXpzWFM5L1oKLStGOGw1NTVpa2IvQXNiWkhyV3crbWlUYXVYVDB4ZTFkYmprcXFwQWlpWWZKRmVEc3MzMldxZ2FBVUQyOElLOVAKLWRqUjg1cDlpa1FLQmdIdVJEUGNZWktlbEZmdGpwZmNvUFAzeUZvZFB2eExYUVVWeEVsUWFadFByQXArK0lQa2oKLU9jUndXQUUyNW1WRVZ2eGtuQkQxVy96ZHpxdjBRWlpNMW1sNFNvcGZibUZ2UURmS1dmbTY1dUFFMDEraGN4M0QKLWVwMjBLcWNTTnYvVk9OelZBNHVnNHA0Q0lMaVQvek5QMXJxN3NMckpoT2pnMW9OQUJSNDJnb1NKQW9HQWNzMU4KLUFqcjVhOTJ0bWJFS09rYy9XUUdNT3hVcjVCeW01UWxpdkVVV0cvUElURWxaU1ZqcDVZNWJvbUNYL0sxdGVnMkMKLXdoMmlIREQzL1BrYXZVaDZzNmpEeis5MUx0NDFRWDlwQjNoaG54K3RGdUJyQ0VkNnpMTFM0QVhvRHdha21pUVYKLXJtWkN2cFB6akF6TUhMMkVITkNuUTBHcXo2UWRoWWpTYXYxWFVZRUNnWUJpdjh0N1daRkxJc2k3QmFhMW9vY3YKLVZVOVdzb2hjcVRHUDgvaStKNGZ1UlJWR0RMbC9qY0JGbTVkWXpHVlNicEJhTTBxaGZHSXlhQW1Jbkhvenhvb1IKLStpemJMTTVuU0FPM2ZYRXNQUk9FeDlSd0x4UW1yczJFZTVXNHFEYWpUbTNWT2hmUVhIUWYvejVvM3hzZG5RSnQKLW1iSENYUGhtTW45TzZqbXJEbEdlTWc9PQotLS0tLS1FTkQgUFJJVkFURSBLRVktLS0tLQpkaWZmIC0tZ2l0IGEvdGVzdHMvZGF0YV9maWxlcy9wa2NzNy1yc2Etc2hhMjU2LTEucGVtIGIvdGVzdHMvZGF0YV9maWxlcy9wa2NzNy1yc2Etc2hhMjU2LTEucGVtCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkZWVlNGIyLi4wMDAwMDAwCi0tLSBhL3Rlc3RzL2RhdGFfZmlsZXMvcGtjczctcnNhLXNoYTI1Ni0xLnBlbQorKysgL2Rldi9udWxsCkBAIC0xLDQ4ICswLDAgQEAKLS0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQotTUlJRFNUQ0NBakdnQXdJQkFnSVVJMkxORXEwVlRyQ0RacG1KeXZTRzIwcktWK013RFFZSktvWklodmNOQVFFTAotQlFBd05ERUxNQWtHQTFVRUJoTUNUa3d4RGpBTUJnTlZCQW9NQlZCTFExTTNNUlV3RXdZRFZRUUREQXhRUzBOVAotTnlCRFpYSjBJREV3SGhjTk1qTXdOVEE0TVRBeE9URXhXaGNOTXpNd05UQTRNVEF4T1RFeFdqQTBNUXN3Q1FZRAotVlFRR0V3Sk9UREVPTUF3R0ExVUVDZ3dGVUV0RFV6Y3hGVEFUQmdOVkJBTU1ERkJMUTFNM0lFTmxjblFnTVRDQwotQVNJd0RRWUpLb1pJaHZjTkFRRUJCUUFEZ2dFUEFEQ0NBUW9DZ2dFQkFKcWlWYzFtMDZ3WW5Lc2hxWFNvT0ZEbAotaUZXNkYvM0kvdlZtRDYva3lUbXNaNDI1dGlDaXVubVNSMnJsSmM3LzJhV2JUSDBQM3V0M2Rpbm5vb1VzU3dzOAotRXdSVGpTZEVDRHpGOTZRVENJVXZoTUhJTlFmcFF1eFNyOWxlSzNBdm9pQ1BpM1hVZWZLaFR1b0YxQS9iVFF4MgotUWNOekpsdVFQQXpkdlVERkJaTGRMSW1qSjdnaWQxajdLU1JaSGpWeG5GUG5vbHIxRUVMWERKczI5UlZ1cDFpbgotOGZPYUJJbEhFQXJXdVNnVjJhUTd1Vkx1QkhNOE56MFk4MTBQRWxnVWFPQ014R3ZvL0V3NFRwQkpmRGlwU0QybAotV0ZQaXN4bkJ6am1xM2J5aSttQVJwcitCSHhFVHZicloxdVJiYUlBNmJ6R0wxUFpsdy92TWN2dVRIdTN5S01rQwotQXdFQUFhTlRNRkV3SFFZRFZSME9CQllFRkJ2UGMrWVdieFB0UDNNRmpteXJMNmxRa0pKdk1COEdBMVVkSXdRWQotTUJhQUZCdlBjK1lXYnhQdFAzTUZqbXlyTDZsUWtKSnZNQThHQTFVZEV3RUIvd1FGTUFNQkFmOHdEUVlKS29aSQotaHZjTkFRRUxCUUFEZ2dFQkFKSzdodU5KUitUbGtaQkhpQ3RiMEtNZmxqSFJXUHVBTDZmVzBtR3ZCRGVaeVJUSAotT3pHZHFnam5ZemdZWjUzOHBHN1RzTUdvbXJTUXdsQVRmSUNLc2Y4ZE5TbG5QcU9pSVBvMmZkZDhnci90Tzd5bAotRkcvS3ZYazB2NURmczRSR1VzN1VZZG16bmNFWUMySnNUb0ZzRDRqamErNXRuWS8vTkpSeGtKZHN3Zm4rd0JxSAotd04reTRxRUxkcStBRUJLeW1iUXNJd09CdDNVZGVWVXdCQmp0cUpYRnRFVDl5aHFrcVZ4bmIvaTBqSHJoanlpUwotUS9ZK1Q5czM1K0E2WGxJNm5TaUpMRHhNZmdKVkNXYTJPdEdJLy9hQWx6bHcrNmRIaWlKVlZCSHBaYlcwWVRZNAotcUU3a2poUHJkZEpZbEI2azRTM3ViOWo0ZTg3azBQMEl5RnB0eHc4PQotLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQotLS0tLS1CRUdJTiBQUklWQVRFIEtFWS0tLS0tCi1NSUlFdkFJQkFEQU5CZ2txaGtpRzl3MEJBUUVGQUFTQ0JLWXdnZ1NpQWdFQUFvSUJBUUNhb2xYTlp0T3NHSnlyCi1JYWwwcURoUTVZaFZ1aGY5eVA3MVpnK3Y1TWs1ckdlTnViWWdvcnA1a2tkcTVTWE8vOW1sbTB4OUQ5N3JkM1lwCi01NktGTEVzTFBCTUVVNDBuUkFnOHhmZWtFd2lGTDRUQnlEVUg2VUxzVXEvWlhpdHdMNklnajR0MTFIbnlvVTdxCi1CZFFQMjAwTWRrSERjeVpia0R3TTNiMUF4UVdTM1N5Sm95ZTRJbmRZK3lra1dSNDFjWnhUNTZKYTlSQkMxd3liCi1OdlVWYnFkWXAvSHptZ1NKUnhBSzFya29GZG1rTzdsUzdnUnpQRGM5R1BOZER4SllGR2pnak1ScjZQeE1PRTZRCi1TWHc0cVVnOXBWaFQ0ck1ad2M0NXF0MjhvdnBnRWFhL2dSOFJFNzI2MmRia1cyaUFPbTh4aTlUMlpjUDd6SEw3Ci1reDd0OGlqSkFnTUJBQUVDZ2dFQUNpclhsNjExeUVSbmc3aVBSTzU5SW5PUEtPelhJRDZYcGdESGtnWUo1WmNFCi1pWXp2RU5zR1JoRlVUUTdqVXlhZk04eC81VjYyWm5iWXdBVmRHaUxKRGVSdHJ5eUR0TlBjTTB2RWZrY3FtYUEvCi0yMEo3MnlqdkY2MFJweW9TRXRxczd6VmxBdks5TUhNREJtL3E2ejU5Qk05ZlFGZkpTejZ5OWhrYjFSOEhRR3BjCi1rdElCeHFBTnZRM1hZelB3eEJkRUNCNllIMTJ0MVVrQ0VGTm1PVnVwN00vVHBNQnU3OWg0Y2Q2OVE3MDlpT3FQCi05a0lPeEFCclJFN2V2V3B3WUhGQ0k3UWZiUnBGZVk3STliOTROUVVMbU9MS0ptOFFmWWZYdW16ZklRM2dxVVcyCi1XeUlPSmM1ekFmdFEvN0RkdTVDS2Jxc0w3eUJpTUd4STRJSFFaL2dFY1FLQmdRREJFM0ZsOFhXN0pwUDlKMHZ3Ci1WdkNCR0pnUE9VN3RuOUpHMDgyUlVyMHBpN0hSaUVvMjN6TDM3UHZ3UHdqbjgxU2tXbWg5V2NJUUZtOElwNE95Ci05c1VNUjBvSW5qVTNQYUFJMm9SUUNPUHlub2QyM3dDNHRWbWpMck5CZWs4VDJBblR0a3ZTWmFsb29BQ051bWdECi1FZi9ocE1ZRGEyTzlkVGJqdHFOT3AyQU91UUtCZ1FETkI2VUd6d1krSERHNDQ0SXIvUTJzMlhqT0QxY3ZHM3E4Ci0zTmFTbklIdXhKZVVoWWxCWG1Xc3lncEdMcnE0aTVoNEVXUHo4cUtXUXdCRHdzWklCR2lzSkZRY1F6c1hTOS9aCi0rRjhsNTU1aWtiL0FzYlpIcld3K21pVGF1WFQweGUxZGJqa3FxcEFpaVlmSkZlRHNzMzJXcWdhQVVEMjhJSzlQCi1kalI4NXA5aWtRS0JnSHVSRFBjWVpLZWxGZnRqcGZjb1BQM3lGb2RQdnhMWFFVVnhFbFFhWnRQckFwKytJUGtqCi1PY1J3V0FFMjVtVkVWdnhrbkJEMVcvemR6cXYwUVpaTTFtbDRTb3BmYm1GdlFEZktXZm02NXVBRTAxK2hjeDNECi1lcDIwS3FjU052L1ZPTnpWQTR1ZzRwNENJTGlUL3pOUDFycTdzTHJKaE9qZzFvTkFCUjQyZ29TSkFvR0FjczFOCi1BanI1YTkydG1iRUtPa2MvV1FHTU94VXI1QnltNVFsaXZFVVdHL1BJVEVsWlNWanA1WTVib21DWC9LMXRlZzJDCi13aDJpSEREMy9Qa2F2VWg2czZqRHorOTFMdDQxUVg5cEIzaGhueCt0RnVCckNFZDZ6TExTNEFYb0R3YWttaVFWCi1ybVpDdnBQempBek1ITDJFSE5DblEwR3F6NlFkaFlqU2F2MVhVWUVDZ1lCaXY4dDdXWkZMSXNpN0JhYTFvb2N2Ci1WVTlXc29oY3FUR1A4L2krSjRmdVJSVkdETGwvamNCRm01ZFl6R1ZTYnBCYU0wcWhmR0l5YUFtSW5Ib3p4b29SCi0raXpiTE01blNBTzNmWEVzUFJPRXg5UndMeFFtcnMyRWU1VzRxRGFqVG0zVk9oZlFYSFFmL3o1bzN4c2RuUUp0Ci1tYkhDWFBobU1uOU82am1yRGxHZU1nPT0KLS0tLS0tRU5EIFBSSVZBVEUgS0VZLS0tLS0KZGlmZiAtLWdpdCBhL3Rlc3RzL2RhdGFfZmlsZXMvcGtjczctcnNhLXNoYTI1Ni0yLmNydCBiL3Rlc3RzL2RhdGFfZmlsZXMvcGtjczctcnNhLXNoYTI1Ni0yLmNydApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMmYwYmVjYi4uMDAwMDAwMAotLS0gYS90ZXN0cy9kYXRhX2ZpbGVzL3BrY3M3LXJzYS1zaGEyNTYtMi5jcnQKKysrIC9kZXYvbnVsbApAQCAtMSwyMCArMCwwIEBACi0tLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KLU1JSURTVENDQWpHZ0F3SUJBZ0lVTFFpaXhFTUUvVE9kOEN6ZkZncC9IeFdRT2o0d0RRWUpLb1pJaHZjTkFRRUwKLUJRQXdOREVMTUFrR0ExVUVCaE1DVGt3eERqQU1CZ05WQkFvTUJWQkxRMU0zTVJVd0V3WURWUVFEREF4UVMwTlQKLU55QkRaWEowSURJd0hoY05Nak13TlRBNE1UQXhPVEV4V2hjTk16TXdOVEE0TVRBeE9URXhXakEwTVFzd0NRWUQKLVZRUUdFd0pPVERFT01Bd0dBMVVFQ2d3RlVFdERVemN4RlRBVEJnTlZCQU1NREZCTFExTTNJRU5sY25RZ01qQ0MKLUFTSXdEUVlKS29aSWh2Y05BUUVCQlFBRGdnRVBBRENDQVFvQ2dnRUJBTmFyYkNlNE5rSWJlQmpBRUtXdUhoQTcKLWhhejA4MGl5OE4xWGJkcjBYYTZsbE9MS2dzRFZOeGt6VytXSFJnSk5aQXROOFhnVDdJdWJJcm5vOXlnY0JLNUIKLWIxRTQvQnV0cGZudzVhU0poVzJ1SThXbDcveEN2b25FRGQzakJRVUE0Y084eDNpZSs3V2NHSkMybVVYbGdVdUoKLWpkdlg3L3B4NURRdUp3eTBSM1Z1bDBJT1NCdnpYVm85VU9UWWttb1FJMmUyVWNBazZhVTN6UUtLOERiNWRtbFIKLWNBK3NWQ2I5ajF0RW1TWFFBajBYZlh2MFNxaWp3cjdNVVlCOXZVdDJ3WWV4QzNiMFNvc3FOcWc3TVl4NmVEVUoKLWFkVnZQd0hXNFZRaDVSdjlUVllyOVJwYzFweWZnanR2bG5vdVBVK3lST0o5Vk8waXJiTVk1TEkyckFJcFFrc0MKLUF3RUFBYU5UTUZFd0hRWURWUjBPQkJZRUZPb3pZQmQ3cHhBbXNWVXRKd1NRdlJHTnZLTzlNQjhHQTFVZEl3UVkKLU1CYUFGT296WUJkN3B4QW1zVlV0SndTUXZSR052S085TUE4R0ExVWRFd0VCL3dRRk1BTUJBZjh3RFFZSktvWkkKLWh2Y05BUUVMQlFBRGdnRUJBSm1PTVAzZ1ZxUDAvdkZxUGRNaklhNVBqdHd5MDJ6NFo0dUxwbG8vNEs4Q1FwNlQKLStYTWZ6K3AvVURvZ2x5QXVaMzRUUS9kbkdNTTlFRkVCZ20vTzVkSkhsNDQyK0Zyb3J0SUVoekdvMFFBZitYWUsKLTlIUUtWazBhNWVjVk85Q1p3Mm1kdXhNSi8vcjlHeUZHMFhTcXBOcXQyeWk3VWdjUHNycSsyT3FoelluZ1lteXIKLVY1SHRRendCYUlxd29YemhISU9YMXBKZzRHVXhyaHNhcUlucmhVTTBWVGRmcEtjUmx6RnNpbVE2MExaNkdNY20KLXJQeTNvTHMxaW9WZllTN2V0ME1uR2hnU0hJakJlb2NxWUtjaHpmQmsvTm5GMGVLK2xKbytockdrNkYyckRKNEcKLVZpTktQNk1oTUJ6bFo3M3lUUlRXWmNZdTZPK3NnNWNId2psSGhSYz0KLS0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KZGlmZiAtLWdpdCBhL3Rlc3RzL2RhdGFfZmlsZXMvcGtjczctcnNhLXNoYTI1Ni0yLmRlciBiL3Rlc3RzL2RhdGFfZmlsZXMvcGtjczctcnNhLXNoYTI1Ni0yLmRlcgpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYTEwMTQzNS4uMDAwMDAwMAotLS0gYS90ZXN0cy9kYXRhX2ZpbGVzL3BrY3M3LXJzYS1zaGEyNTYtMi5kZXIKKysrIC9kZXYvbnVsbApCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS90ZXN0cy9kYXRhX2ZpbGVzL3BrY3M3LXJzYS1zaGEyNTYtMi5rZXkgYi90ZXN0cy9kYXRhX2ZpbGVzL3BrY3M3LXJzYS1zaGEyNTYtMi5rZXkKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGZlNzhiMTEuLjAwMDAwMDAKLS0tIGEvdGVzdHMvZGF0YV9maWxlcy9wa2NzNy1yc2Etc2hhMjU2LTIua2V5CisrKyAvZGV2L251bGwKQEAgLTEsMjggKzAsMCBAQAotLS0tLS1CRUdJTiBQUklWQVRFIEtFWS0tLS0tCi1NSUlFdXdJQkFEQU5CZ2txaGtpRzl3MEJBUUVGQUFTQ0JLVXdnZ1NoQWdFQUFvSUJBUURXcTJ3bnVEWkNHM2dZCi13QkNscmg0UU80V3M5UE5Jc3ZEZFYyM2E5RjJ1cFpUaXlvTEExVGNaTTF2bGgwWUNUV1FMVGZGNEUreUxteUs1Ci02UGNvSEFTdVFXOVJPUHdicmFYNThPV2tpWVZ0cmlQRnBlLzhRcjZKeEEzZDR3VUZBT0hEdk1kNG52dTFuQmlRCi10cGxGNVlGTGlZM2IxKy82Y2VRMExpY010RWQxYnBkQ0RrZ2I4MTFhUFZEazJKSnFFQ05udGxIQUpPbWxOODBDCi1pdkEyK1hacFVYQVByRlFtL1k5YlJKa2wwQUk5RjMxNzlFcW9vOEsrekZHQWZiMUxkc0dIc1F0MjlFcUxLamFvCi1PekdNZW5nMUNXblZiejhCMXVGVUllVWIvVTFXSy9VYVhOYWNuNEk3YjVaNkxqMVBza1RpZlZUdElxMnpHT1N5Ci1OcXdDS1VKTEFnTUJBQUVDZ2Y4VHRLaTQvSy8rWVlja3Zuekl1TE1KeW16Njg0Rmhxd3R4UmhWUGhCOFZhUjNCCi1zOVZNM2tXd2lvWmxDNFhoc0RqKzBLalozUHBaMW1QWnJRa0RKWTlJYjdsSU8zTHBGNGVrNmZncW9uVWRIRjhzCi1SWTlDR041a3h4cCt3OWd5SFdLY0ZUZzZXbDNBemhOek5VL2NtclREdWx6TFVZYzE5ajU4aThBSjZvS2t4TmNUCi1naWU5YzM4d0RqWnI2N2N5bkFSa1M5Tjk0V2tNc09Rek01OVR6T2Z1a2xkc2J3WUlTWmFoUi9MOWhnUXF6Y0ZMCi1oeHNyUWJaME01WEZ6aU9qdURHekpac3diYlR2a3VwcXQwRXdFWGNJMWpudk90S1BDNTBSYUlZOXk5c1FZUlBYCi1SWEZ6VWFCR0tIakxXdEVZUWQvYlhXVHRDTHg2QzRGRFJrT3NWUVVDZ1lFQTY5ejh4cThscDc3bEQyZ05zaDN4Ci1vOGNubngzeGN3bmorOWJFRERLWGdBMVJCd25YcFEvR3E1Sm1lN3ptOTU1MnhKWERRd2NrdUpROS9GZDRMOFp5Ci1aanlPdVlDNk1kYzRuY3dvMXlUOVJ2NmlwU3EvZHNWS1FiTVlhT3h0UTZMY2Uxd1B5RjMyc2x1Mm1QbHdPZ0lvCi13MEFkbDNNcUMrR2szQU5jUFd5SmhhOENnWUVBNlA4Nmp3OE1mYUE0cVRuNlp5MVlFcTE3KzhDaGQxNVBBMkU3Ci1OV2RFTDc1SnIrSW05a1RZK25pV2NabzZxL0pLYTVGb2t4clNCOTg4Tk1LNlFkMjBkMmdaaWpjMXlIcHJDMWZxCi1XM1JQOUMycXZFT3MrNCt3MzhGNjNKa0JYT3lxaDYrYnFjbHNFRGs1Q09vZTJFZElldkY0UFFoZVd1UXRiTkh2Ci03RzV5RUNVQ2dZRUFwTlRETW5ha2NoNU9KZjRwMUJocERuUFhsTE53VVZ6UUh1ZHdDcll3ZWlUVVEzNzFYVDB4Ci1NaVlWeU5PeTljbWdackhpeTZ6cVZMUUV2WnpET1dBT0FyUy9hWlEwaXpCRk9NRzhxTjRJd3R5Zy9aeHFRYTZPCi12bXRTMjhDZWUyNE5kNGhXMzBnTFo0b0FpZGVJUG9IVHl0Kzd6bU9GTnRoeVJlOXpQdG5qSWJFQ2dZQWZuck9WCi13cGNSWFhNVEZEazFVMlFHZE9ERWs2bldCMGgxenZZNEV5R2YwUlV5OTJBT1A5MnFjRDhLZjhIQ29Ba1ZmQkJUCi1GbXEyZ3NjcTZkcFpJZnRoMFJEV1B4UGZkeTJieG55Wm1MbFpDL0dGeHpGc21sMklvRHRLUU1GOG1PbXpyRk5WCi13VzRXN1kwZDlwZmxCaGVDQjg4bmlVRTAySTZKbkJ3UlhCUEN1UUtCZ0QwMVZKc0dxZ0Z2bHZqSzBLVnBQVkNCCi1LSzBHUEk1VEZOU0RqWVNJRzI1Vm00bFltaVd3cjU0aWFxV3ZsSzlTRlhIMEM5UjFWQXVVK3VhWSs4dEdNNG81Ci1STzltazBBdklKNEJDMEZaSFMyZkhEbGQvMzdXTzNyaDY2UXltNnpncDAyWlBZRFNMWFQxOHNmMFNWTUF6VTdoCi0yajYwRk1NRUpQcjdjbHgrbjZ4VQotLS0tLS1FTkQgUFJJVkFURSBLRVktLS0tLQpkaWZmIC0tZ2l0IGEvdGVzdHMvZGF0YV9maWxlcy9wa2NzNy1yc2Etc2hhMjU2LTIucGVtIGIvdGVzdHMvZGF0YV9maWxlcy9wa2NzNy1yc2Etc2hhMjU2LTIucGVtCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3MTAwNGI1Li4wMDAwMDAwCi0tLSBhL3Rlc3RzL2RhdGFfZmlsZXMvcGtjczctcnNhLXNoYTI1Ni0yLnBlbQorKysgL2Rldi9udWxsCkBAIC0xLDQ4ICswLDAgQEAKLS0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQotTUlJRFNUQ0NBakdnQXdJQkFnSVVMUWlpeEVNRS9UT2Q4Q3pmRmdwL0h4V1FPajR3RFFZSktvWklodmNOQVFFTAotQlFBd05ERUxNQWtHQTFVRUJoTUNUa3d4RGpBTUJnTlZCQW9NQlZCTFExTTNNUlV3RXdZRFZRUUREQXhRUzBOVAotTnlCRFpYSjBJREl3SGhjTk1qTXdOVEE0TVRBeE9URXhXaGNOTXpNd05UQTRNVEF4T1RFeFdqQTBNUXN3Q1FZRAotVlFRR0V3Sk9UREVPTUF3R0ExVUVDZ3dGVUV0RFV6Y3hGVEFUQmdOVkJBTU1ERkJMUTFNM0lFTmxjblFnTWpDQwotQVNJd0RRWUpLb1pJaHZjTkFRRUJCUUFEZ2dFUEFEQ0NBUW9DZ2dFQkFOYXJiQ2U0TmtJYmVCakFFS1d1SGhBNwotaGF6MDgwaXk4TjFYYmRyMFhhNmxsT0xLZ3NEVk54a3pXK1dIUmdKTlpBdE44WGdUN0l1Yklybm85eWdjQks1QgotYjFFNC9CdXRwZm53NWFTSmhXMnVJOFdsNy94Q3ZvbkVEZDNqQlFVQTRjTzh4M2llKzdXY0dKQzJtVVhsZ1V1SgotamR2WDcvcHg1RFF1Snd5MFIzVnVsMElPU0J2elhWbzlVT1RZa21vUUkyZTJVY0FrNmFVM3pRS0s4RGI1ZG1sUgotY0Erc1ZDYjlqMXRFbVNYUUFqMFhmWHYwU3FpandyN01VWUI5dlV0MndZZXhDM2IwU29zcU5xZzdNWXg2ZURVSgotYWRWdlB3SFc0VlFoNVJ2OVRWWXI5UnBjMXB5ZmdqdHZsbm91UFUreVJPSjlWTzBpcmJNWTVMSTJyQUlwUWtzQwotQXdFQUFhTlRNRkV3SFFZRFZSME9CQllFRk9vellCZDdweEFtc1ZVdEp3U1F2UkdOdktPOU1COEdBMVVkSXdRWQotTUJhQUZPb3pZQmQ3cHhBbXNWVXRKd1NRdlJHTnZLTzlNQThHQTFVZEV3RUIvd1FGTUFNQkFmOHdEUVlKS29aSQotaHZjTkFRRUxCUUFEZ2dFQkFKbU9NUDNnVnFQMC92RnFQZE1qSWE1UGp0d3kwMno0WjR1THBsby80SzhDUXA2VAotK1hNZnorcC9VRG9nbHlBdVozNFRRL2RuR01NOUVGRUJnbS9PNWRKSGw0NDIrRnJvcnRJRWh6R28wUUFmK1hZSwotOUhRS1ZrMGE1ZWNWTzlDWncybWR1eE1KLy9yOUd5RkcwWFNxcE5xdDJ5aTdVZ2NQc3JxKzJPcWh6WW5nWW15cgotVjVIdFF6d0JhSXF3b1h6aEhJT1gxcEpnNEdVeHJoc2FxSW5yaFVNMFZUZGZwS2NSbHpGc2ltUTYwTFo2R01jbQotclB5M29MczFpb1ZmWVM3ZXQwTW5HaGdTSElqQmVvY3FZS2NoemZCay9ObkYwZUsrbEpvK2hyR2s2RjJyREo0RwotVmlOS1A2TWhNQnpsWjczeVRSVFdaY1l1Nk8rc2c1Y0h3amxIaFJjPQotLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQotLS0tLS1CRUdJTiBQUklWQVRFIEtFWS0tLS0tCi1NSUlFdXdJQkFEQU5CZ2txaGtpRzl3MEJBUUVGQUFTQ0JLVXdnZ1NoQWdFQUFvSUJBUURXcTJ3bnVEWkNHM2dZCi13QkNscmg0UU80V3M5UE5Jc3ZEZFYyM2E5RjJ1cFpUaXlvTEExVGNaTTF2bGgwWUNUV1FMVGZGNEUreUxteUs1Ci02UGNvSEFTdVFXOVJPUHdicmFYNThPV2tpWVZ0cmlQRnBlLzhRcjZKeEEzZDR3VUZBT0hEdk1kNG52dTFuQmlRCi10cGxGNVlGTGlZM2IxKy82Y2VRMExpY010RWQxYnBkQ0RrZ2I4MTFhUFZEazJKSnFFQ05udGxIQUpPbWxOODBDCi1pdkEyK1hacFVYQVByRlFtL1k5YlJKa2wwQUk5RjMxNzlFcW9vOEsrekZHQWZiMUxkc0dIc1F0MjlFcUxLamFvCi1PekdNZW5nMUNXblZiejhCMXVGVUllVWIvVTFXSy9VYVhOYWNuNEk3YjVaNkxqMVBza1RpZlZUdElxMnpHT1N5Ci1OcXdDS1VKTEFnTUJBQUVDZ2Y4VHRLaTQvSy8rWVlja3Zuekl1TE1KeW16Njg0Rmhxd3R4UmhWUGhCOFZhUjNCCi1zOVZNM2tXd2lvWmxDNFhoc0RqKzBLalozUHBaMW1QWnJRa0RKWTlJYjdsSU8zTHBGNGVrNmZncW9uVWRIRjhzCi1SWTlDR041a3h4cCt3OWd5SFdLY0ZUZzZXbDNBemhOek5VL2NtclREdWx6TFVZYzE5ajU4aThBSjZvS2t4TmNUCi1naWU5YzM4d0RqWnI2N2N5bkFSa1M5Tjk0V2tNc09Rek01OVR6T2Z1a2xkc2J3WUlTWmFoUi9MOWhnUXF6Y0ZMCi1oeHNyUWJaME01WEZ6aU9qdURHekpac3diYlR2a3VwcXQwRXdFWGNJMWpudk90S1BDNTBSYUlZOXk5c1FZUlBYCi1SWEZ6VWFCR0tIakxXdEVZUWQvYlhXVHRDTHg2QzRGRFJrT3NWUVVDZ1lFQTY5ejh4cThscDc3bEQyZ05zaDN4Ci1vOGNubngzeGN3bmorOWJFRERLWGdBMVJCd25YcFEvR3E1Sm1lN3ptOTU1MnhKWERRd2NrdUpROS9GZDRMOFp5Ci1aanlPdVlDNk1kYzRuY3dvMXlUOVJ2NmlwU3EvZHNWS1FiTVlhT3h0UTZMY2Uxd1B5RjMyc2x1Mm1QbHdPZ0lvCi13MEFkbDNNcUMrR2szQU5jUFd5SmhhOENnWUVBNlA4Nmp3OE1mYUE0cVRuNlp5MVlFcTE3KzhDaGQxNVBBMkU3Ci1OV2RFTDc1SnIrSW05a1RZK25pV2NabzZxL0pLYTVGb2t4clNCOTg4Tk1LNlFkMjBkMmdaaWpjMXlIcHJDMWZxCi1XM1JQOUMycXZFT3MrNCt3MzhGNjNKa0JYT3lxaDYrYnFjbHNFRGs1Q09vZTJFZElldkY0UFFoZVd1UXRiTkh2Ci03RzV5RUNVQ2dZRUFwTlRETW5ha2NoNU9KZjRwMUJocERuUFhsTE53VVZ6UUh1ZHdDcll3ZWlUVVEzNzFYVDB4Ci1NaVlWeU5PeTljbWdackhpeTZ6cVZMUUV2WnpET1dBT0FyUy9hWlEwaXpCRk9NRzhxTjRJd3R5Zy9aeHFRYTZPCi12bXRTMjhDZWUyNE5kNGhXMzBnTFo0b0FpZGVJUG9IVHl0Kzd6bU9GTnRoeVJlOXpQdG5qSWJFQ2dZQWZuck9WCi13cGNSWFhNVEZEazFVMlFHZE9ERWs2bldCMGgxenZZNEV5R2YwUlV5OTJBT1A5MnFjRDhLZjhIQ29Ba1ZmQkJUCi1GbXEyZ3NjcTZkcFpJZnRoMFJEV1B4UGZkeTJieG55Wm1MbFpDL0dGeHpGc21sMklvRHRLUU1GOG1PbXpyRk5WCi13VzRXN1kwZDlwZmxCaGVDQjg4bmlVRTAySTZKbkJ3UlhCUEN1UUtCZ0QwMVZKc0dxZ0Z2bHZqSzBLVnBQVkNCCi1LSzBHUEk1VEZOU0RqWVNJRzI1Vm00bFltaVd3cjU0aWFxV3ZsSzlTRlhIMEM5UjFWQXVVK3VhWSs4dEdNNG81Ci1STzltazBBdklKNEJDMEZaSFMyZkhEbGQvMzdXTzNyaDY2UXltNnpncDAyWlBZRFNMWFQxOHNmMFNWTUF6VTdoCi0yajYwRk1NRUpQcjdjbHgrbjZ4VQotLS0tLS1FTkQgUFJJVkFURSBLRVktLS0tLQpkaWZmIC0tZ2l0IGEvdGVzdHMvZGF0YV9maWxlcy9wa2NzNy1yc2Etc2hhMjU2LTMuY3J0IGIvdGVzdHMvZGF0YV9maWxlcy9wa2NzNy1yc2Etc2hhMjU2LTMuY3J0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwM2NlNWIzNS4uMDAwMDAwMAotLS0gYS90ZXN0cy9kYXRhX2ZpbGVzL3BrY3M3LXJzYS1zaGEyNTYtMy5jcnQKKysrIC9kZXYvbnVsbApAQCAtMSwyMCArMCwwIEBACi0tLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KLU1JSURTVENDQWpHZ0F3SUJBZ0lVVDF0cHBBYlFweDZ2TGJWelJ4LzU0YmkwZWhvd0RRWUpLb1pJaHZjTkFRRUwKLUJRQXdOREVMTUFrR0ExVUVCaE1DVGt3eERqQU1CZ05WQkFvTUJWQkxRMU0zTVJVd0V3WURWUVFEREF4UVMwTlQKLU55QkRaWEowSURNd0hoY05Nak13TlRBNE1UQXhPVEV4V2hjTk16TXdOVEE0TVRBeE9URXhXakEwTVFzd0NRWUQKLVZRUUdFd0pPVERFT01Bd0dBMVVFQ2d3RlVFdERVemN4RlRBVEJnTlZCQU1NREZCTFExTTNJRU5sY25RZ016Q0MKLUFTSXdEUVlKS29aSWh2Y05BUUVCQlFBRGdnRVBBRENDQVFvQ2dnRUJBTzFTTzFPVXFXVk1xSU5qK01aUGdFNXMKLThzZEZyVnlYbHQvM0VxWE5zNnpVQnIxMktqNFVTdDV0bVZ5RjFGeFlzdzc2VTFacGVVVUJJclE2MkN5UWdadEQKLWw5NnRpcEhieEZuZVdYVjBDT3JwKzJyaldVRHozYlkwbE0zOUpDck94bEJEeC9RWU9KSG00SEFlV1BrZzBGMVIKLTI2a0tMTlVZeGc1NGd0am5hdWxlV2Vmck1jVjNTNjlSVEpHbGYzaFZKMWZsdHoveXc4TjlYRzhYeEFOWlQwQ3oKLUpWMzF5ekxNeENUbTJpQlhYQUxTa3c1UURWVCtTRDBtYmtZVDI2Ynd0QXZYcHRQamJDN1pyT3hZeXJtbmhrMlUKLWFQVmV3cDVuY3JEaFpwZktDWFZHNnF0U1Ezekh1Nld3QkNrM2hkWjlScEJNRE1PbStWRmwrckdnRDQ2cDJvc0MKLUF3RUFBYU5UTUZFd0hRWURWUjBPQkJZRUZHTnpvOXd3RWs5L3Q2eHh4cGJ5L05SbU5KUmxNQjhHQTFVZEl3UVkKLU1CYUFGR056bzl3d0VrOS90Nnh4eHBieS9OUm1OSlJsTUE4R0ExVWRFd0VCL3dRRk1BTUJBZjh3RFFZSktvWkkKLWh2Y05BUUVMQlFBRGdnRUJBS0pFbUR5RW13OFE2bWJhcVJFdm1OU2NHckE2MHdPTlRRZGxYM2xueTRWenFBemkKLU14SWVDSWZ3U3ZSOUxobzBsUG1GTUVyZERQVFVLeldtbEFYVVNsc3lqbkdycVA1dUNpeFRVQlo5SWMxZ2F4RHoKLU1lcmU4bnI3eW93K0k5ZXVZTk4xL2ROSlpQOW1jclAyNjlGR3lUdU0vOFdvaSt6YUpIcjBZOEs5VFJSWHVkcVAKLXd1NlgvcVorT2VRclc0V01lYjErZVo1OUZ0UmFkYW1zUWFieHZ0Z2tSSmhtcU5zR1EvaStTMFNxR3QydDJ4dnEKLWxUeHNoQTVwMTdiTFFtVEpzTktYYlFlVlBIOTlNK2VjWHZ3TjBoajNmRG5RZURNVGpkS09zeUZ1cHlaK3Z4TisKLXBGdlQ3bFAwaHJPdVUwN0ZGcXQzNkIweE9iQjFRd1piMkRQY0VJdz0KLS0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KZGlmZiAtLWdpdCBhL3Rlc3RzL2RhdGFfZmlsZXMvcGtjczctcnNhLXNoYTI1Ni0zLmtleSBiL3Rlc3RzL2RhdGFfZmlsZXMvcGtjczctcnNhLXNoYTI1Ni0zLmtleQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMTdjNGVlZC4uMDAwMDAwMAotLS0gYS90ZXN0cy9kYXRhX2ZpbGVzL3BrY3M3LXJzYS1zaGEyNTYtMy5rZXkKKysrIC9kZXYvbnVsbApAQCAtMSwyOCArMCwwIEBACi0tLS0tLUJFR0lOIFBSSVZBVEUgS0VZLS0tLS0KLU1JSUV2UUlCQURBTkJna3Foa2lHOXcwQkFRRUZBQVNDQktjd2dnU2pBZ0VBQW9JQkFRRHRVanRUbEtsbFRLaUQKLVkvakdUNEJPYlBMSFJhMWNsNWJmOXhLbHpiT3MxQWE5ZGlvK0ZFcmViWmxjaGRSY1dMTU8rbE5XYVhsRkFTSzAKLU90Z3NrSUdiUTVmZXJZcVIyOFJaM2xsMWRBanE2ZnRxNDFsQTg5MjJOSlROL1NRcXpzWlFROGYwR0RpUjV1QncKLUhsajVJTkJkVWR1cENpelZHTVlPZUlMWTUycnBYbG5uNnpIRmQwdXZVVXlScFg5NFZTZFg1YmMvOHNQRGZWeHYKLUY4UURXVTlBc3lWZDljc3l6TVFrNXRvZ1Yxd0MwcE1PVUExVS9rZzlKbTVHRTl1bThMUUwxNmJUNDJ3dTJhenMKLVdNcTVwNFpObEdqMVhzS2VaM0t3NFdhWHlnbDFSdXFyVWtOOHg3dWxzQVFwTjRYV2ZVYVFUQXpEcHZsUlpmcXgKLW9BK09xZHFMQWdNQkFBRUNnZ0VBVTUxbDlyQkpzTDIrSDdEdy9Wb1VjRTFWaXAxRGsveDY5WVVWUm1LLzIvUkcKLVBhbXMvM3RoMTVXUTg3YlpXQUlPY0lnRkpjeDZwRFBldU5hRXhNclRSMU9jNWlHSjBaTTNUcHlYTTFsRExSVnMKLWRrQU0rZVFTS1RqRWR3RXFKWVQ5L1Zpc1VoWFlsSnRlVjFKeDhiQzhpU3ltc3B1NXFRa1YreEk5czlOeGFUQWQKLTE5VTVOb296WlJCUzM3bFUzV3hNaFBDSENyYmw2dndjZnZ0c1pDbEVJQ0E4WVVLeVMrd1VoMHdqemdrUXJPUlQKLWthVHhZOFl5US91ZlNJa0EzWEtKWDFmbE8xVWRORkpjSGhzZWlYV3V1VVRLVU12V05JTFVvRnBia3k1dVliNXoKLVZNN3U1N1pCRjN1VkhtdkpOWVMwNGlRZE5rVjFaa3BXSDhvcHVRMWt5UUtCZ1FEMmpsNlkwcVR5L3MrZzlhUTcKLXlwWjB6aS9saElKYVRCRHF4d0pBMThlOCs0a3EzV0VFQkREMVgvZVQ0NG5WUGhHeTc4Y2NKWkNudzJQQkh5MWsKLTZ4VkNmR0FaVlY4NTBtOUpHZjRML1ZFTjZENXFkQjJvd0pQVkNFaDdmYTZoVnZMS1lGTkN1dnMwb3NLQ1ZueXkKLVBHcThpeEFQNXNKcDh5b0VubFVpMElJM1V3S0JnUUQyYVU3eGRRZ2JhN3VNdTJySm8wYnpES2Z4djRxNW5VWU8KLVhMQm03bCtNejZVejY4QS9zY0xzS1dtZHZtZFBLeTgzcG1SLzJSSjFwcDBITlZmYThyTCswREhDcWYxUEFwRSsKLWpGZ2NRSWRueXp3UkZIUERILzl6bXJIVXkzMkw1TWRpUUVXd3FnOXdQMkhZYnV2OVZiTjBSbjNIVEZkUlZhckQKLWhnMzYvaFNBNlFLQmdCYUgraU1URk5uVDZWdDNOelB6bG41RUhXSm5FcFozM3cvbGNkSkZKYzZpV2UyZDMzREQKLWhVblhKRVBTaGxVRFlCQ3ZFczRDck01Mzc1VEZhWnVRVkJnSVQ2dmcvbHZGWEVBYzdQZGhoZGUwZ29ldDVzdjIKLUZVeGhmbVl5blJQSFkxYVZLT2F2T2FlY3ZCTzNIWndZSTFUcGpHVTNuRXFjV3htaThuckUvVEZiQW9HQUxHYUQKLVhBekxmaTFtYVJCb1NKY01OTVZtQ2JDSzdiRkNLMXBXU3VYTy84OTJwQ2xweGRCaElDN0NJak5wNkNFTzdBY20KLWVzY0JoWU9WTGZSVnRWVWdIYndrQzBDWUxVRjRMSDRiYmxQT1VreVRzVHd2TTh5ek9nQjQ1TEFhR2pnS0dWRWQKLWZaelhGVkhHYnJwbCtZc1V2L0hudmg2cWFUUjNoYTNGSFNIbFRla0NnWUVBODg5RXpsRU93bXU2OXowNlJKc1oKLW1sWW9SMC8xeHhpWW1TTnkraFhXb002NEc5OVI5NGJjL2J4L1FTSkFYdTkzSFg0TjBHSFBtampwWnZrMUlqSEwKLXpRR2lrZGIyanZiS25SY1IvNERpWFExamdnazU5YkNVRGFRa3BFYkJ2dENMai9Mak1ud3hBSkFvQ09HanVJeEcKLWhtU3lvQWxOUW00N3RHRDNpKzJlcnYwPQotLS0tLS1FTkQgUFJJVkFURSBLRVktLS0tLQpkaWZmIC0tZ2l0IGEvdGVzdHMvZGF0YV9maWxlcy9wa2NzNy1yc2Etc2hhMjU2LTMucGVtIGIvdGVzdHMvZGF0YV9maWxlcy9wa2NzNy1yc2Etc2hhMjU2LTMucGVtCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwZGMyZmU5Li4wMDAwMDAwCi0tLSBhL3Rlc3RzL2RhdGFfZmlsZXMvcGtjczctcnNhLXNoYTI1Ni0zLnBlbQorKysgL2Rldi9udWxsCkBAIC0xLDQ4ICswLDAgQEAKLS0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQotTUlJRFNUQ0NBakdnQXdJQkFnSVVUMXRwcEFiUXB4NnZMYlZ6UngvNTRiaTBlaG93RFFZSktvWklodmNOQVFFTAotQlFBd05ERUxNQWtHQTFVRUJoTUNUa3d4RGpBTUJnTlZCQW9NQlZCTFExTTNNUlV3RXdZRFZRUUREQXhRUzBOVAotTnlCRFpYSjBJRE13SGhjTk1qTXdOVEE0TVRBeE9URXhXaGNOTXpNd05UQTRNVEF4T1RFeFdqQTBNUXN3Q1FZRAotVlFRR0V3Sk9UREVPTUF3R0ExVUVDZ3dGVUV0RFV6Y3hGVEFUQmdOVkJBTU1ERkJMUTFNM0lFTmxjblFnTXpDQwotQVNJd0RRWUpLb1pJaHZjTkFRRUJCUUFEZ2dFUEFEQ0NBUW9DZ2dFQkFPMVNPMU9VcVdWTXFJTmorTVpQZ0U1cwotOHNkRnJWeVhsdC8zRXFYTnM2elVCcjEyS2o0VVN0NXRtVnlGMUZ4WXN3NzZVMVpwZVVVQklyUTYyQ3lRZ1p0RAotbDk2dGlwSGJ4Rm5lV1hWMENPcnArMnJqV1VEejNiWTBsTTM5SkNyT3hsQkR4L1FZT0pIbTRIQWVXUGtnMEYxUgotMjZrS0xOVVl4ZzU0Z3RqbmF1bGVXZWZyTWNWM1M2OVJUSkdsZjNoVkoxZmx0ei95dzhOOVhHOFh4QU5aVDBDegotSlYzMXl6TE14Q1RtMmlCWFhBTFNrdzVRRFZUK1NEMG1ia1lUMjZid3RBdlhwdFBqYkM3WnJPeFl5cm1uaGsyVQotYVBWZXdwNW5jckRoWnBmS0NYVkc2cXRTUTN6SHU2V3dCQ2szaGRaOVJwQk1ETU9tK1ZGbCtyR2dENDZwMm9zQwotQXdFQUFhTlRNRkV3SFFZRFZSME9CQllFRkdOem85d3dFazkvdDZ4eHhwYnkvTlJtTkpSbE1COEdBMVVkSXdRWQotTUJhQUZHTnpvOXd3RWs5L3Q2eHh4cGJ5L05SbU5KUmxNQThHQTFVZEV3RUIvd1FGTUFNQkFmOHdEUVlKS29aSQotaHZjTkFRRUxCUUFEZ2dFQkFLSkVtRHlFbXc4UTZtYmFxUkV2bU5TY0dyQTYwd09OVFFkbFgzbG55NFZ6cUF6aQotTXhJZUNJZndTdlI5TGhvMGxQbUZNRXJkRFBUVUt6V21sQVhVU2xzeWpuR3JxUDV1Q2l4VFVCWjlJYzFnYXhEegotTWVyZThucjd5b3crSTlldVlOTjEvZE5KWlA5bWNyUDI2OUZHeVR1TS84V29pK3phSkhyMFk4SzlUUlJYdWRxUAotd3U2WC9xWitPZVFyVzRXTWViMStlWjU5RnRSYWRhbXNRYWJ4dnRna1JKaG1xTnNHUS9pK1MwU3FHdDJ0Mnh2cQotbFR4c2hBNXAxN2JMUW1USnNOS1hiUWVWUEg5OU0rZWNYdndOMGhqM2ZEblFlRE1UamRLT3N5RnVweVordnhOKwotcEZ2VDdsUDBock91VTA3RkZxdDM2QjB4T2JCMVF3WmIyRFBjRUl3PQotLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQotLS0tLS1CRUdJTiBQUklWQVRFIEtFWS0tLS0tCi1NSUlFdlFJQkFEQU5CZ2txaGtpRzl3MEJBUUVGQUFTQ0JLY3dnZ1NqQWdFQUFvSUJBUUR0VWp0VGxLbGxUS2lECi1ZL2pHVDRCT2JQTEhSYTFjbDViZjl4S2x6Yk9zMUFhOWRpbytGRXJlYlpsY2hkUmNXTE1PK2xOV2FYbEZBU0swCi1PdGdza0lHYlE1ZmVyWXFSMjhSWjNsbDFkQWpxNmZ0cTQxbEE4OTIyTkpUTi9TUXF6c1pRUThmMEdEaVI1dUJ3Ci1IbGo1SU5CZFVkdXBDaXpWR01ZT2VJTFk1MnJwWGxubjZ6SEZkMHV2VVV5UnBYOTRWU2RYNWJjLzhzUERmVnh2Ci1GOFFEV1U5QXN5VmQ5Y3N5ek1RazV0b2dWMXdDMHBNT1VBMVUva2c5Sm01R0U5dW04TFFMMTZiVDQyd3UyYXpzCi1XTXE1cDRaTmxHajFYc0tlWjNLdzRXYVh5Z2wxUnVxclVrTjh4N3Vsc0FRcE40WFdmVWFRVEF6RHB2bFJaZnF4Ci1vQStPcWRxTEFnTUJBQUVDZ2dFQVU1MWw5ckJKc0wyK0g3RHcvVm9VY0UxVmlwMURrL3g2OVlVVlJtSy8yL1JHCi1QYW1zLzN0aDE1V1E4N2JaV0FJT2NJZ0ZKY3g2cERQZXVOYUV4TXJUUjFPYzVpR0owWk0zVHB5WE0xbERMUlZzCi1ka0FNK2VRU0tUakVkd0VxSllUOS9WaXNVaFhZbEp0ZVYxSng4YkM4aVN5bXNwdTVxUWtWK3hJOXM5TnhhVEFkCi0xOVU1Tm9velpSQlMzN2xVM1d4TWhQQ0hDcmJsNnZ3Y2Z2dHNaQ2xFSUNBOFlVS3lTK3dVaDB3anpna1FyT1JUCi1rYVR4WThZeVEvdWZTSWtBM1hLSlgxZmxPMVVkTkZKY0hoc2VpWFd1dVVUS1VNdldOSUxVb0ZwYmt5NXVZYjV6Ci1WTTd1NTdaQkYzdVZIbXZKTllTMDRpUWROa1YxWmtwV0g4b3B1UTFreVFLQmdRRDJqbDZZMHFUeS9zK2c5YVE3Ci15cFowemkvbGhJSmFUQkRxeHdKQTE4ZTgrNGtxM1dFRUJERDFYL2VUNDRuVlBoR3k3OGNjSlpDbncyUEJIeTFrCi02eFZDZkdBWlZWODUwbTlKR2Y0TC9WRU42RDVxZEIyb3dKUFZDRWg3ZmE2aFZ2TEtZRk5DdXZzMG9zS0NWbnl5Ci1QR3E4aXhBUDVzSnA4eW9FbmxVaTBJSTNVd0tCZ1FEMmFVN3hkUWdiYTd1TXUyckpvMGJ6REtmeHY0cTVuVVlPCi1YTEJtN2wrTXo2VXo2OEEvc2NMc0tXbWR2bWRQS3k4M3BtUi8yUkoxcHAwSE5WZmE4ckwrMERIQ3FmMVBBcEUrCi1qRmdjUUlkbnl6d1JGSFBESC85em1ySFV5MzJMNU1kaVFFV3dxZzl3UDJIWWJ1djlWYk4wUm4zSFRGZFJWYXJECi1oZzM2L2hTQTZRS0JnQmFIK2lNVEZOblQ2VnQzTnpQemxuNUVIV0puRXBaMzN3L2xjZEpGSmM2aVdlMmQzM0RECi1oVW5YSkVQU2hsVURZQkN2RXM0Q3JNNTM3NVRGYVp1UVZCZ0lUNnZnL2x2RlhFQWM3UGRoaGRlMGdvZXQ1c3YyCi1GVXhoZm1ZeW5SUEhZMWFWS09hdk9hZWN2Qk8zSFp3WUkxVHBqR1UzbkVxY1d4bWk4bnJFL1RGYkFvR0FMR2FECi1YQXpMZmkxbWFSQm9TSmNNTk1WbUNiQ0s3YkZDSzFwV1N1WE8vODkycENscHhkQmhJQzdDSWpOcDZDRU83QWNtCi1lc2NCaFlPVkxmUlZ0VlVnSGJ3a0MwQ1lMVUY0TEg0YmJsUE9Va3lUc1R3dk04eXpPZ0I0NUxBYUdqZ0tHVkVkCi1mWnpYRlZIR2JycGwrWXNVdi9IbnZoNnFhVFIzaGEzRkhTSGxUZWtDZ1lFQTg4OUV6bEVPd211Njl6MDZSSnNaCi1tbFlvUjAvMXh4aVltU055K2hYV29NNjRHOTlSOTRiYy9ieC9RU0pBWHU5M0hYNE4wR0hQbWpqcFp2azFJakhMCi16UUdpa2RiMmp2YktuUmNSLzREaVhRMWpnZ2s1OWJDVURhUWtwRWJCdnRDTGovTGpNbnd4QUpBb0NPR2p1SXhHCi1obVN5b0FsTlFtNDd0R0QzaSsyZXJ2MD0KLS0tLS0tRU5EIFBSSVZBVEUgS0VZLS0tLS0KZGlmZiAtLWdpdCBhL3Rlc3RzL2RhdGFfZmlsZXMvcGtjczdfZGF0YS5iaW4gYi90ZXN0cy9kYXRhX2ZpbGVzL3BrY3M3X2RhdGEuYmluCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0MGVlMjY0Li4wMDAwMDAwCi0tLSBhL3Rlc3RzL2RhdGFfZmlsZXMvcGtjczdfZGF0YS5iaW4KKysrIC9kZXYvbnVsbApAQCAtMSArMCwwIEBACi1IZWxsbw0KZGlmZiAtLWdpdCBhL3Rlc3RzL2RhdGFfZmlsZXMvcGtjczdfZGF0YV8xLmJpbiBiL3Rlc3RzL2RhdGFfZmlsZXMvcGtjczdfZGF0YV8xLmJpbgpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNzhjNmJhZS4uMDAwMDAwMAotLS0gYS90ZXN0cy9kYXRhX2ZpbGVzL3BrY3M3X2RhdGFfMS5iaW4KKysrIC9kZXYvbnVsbApAQCAtMSArMCwwIEBACi0yDQpkaWZmIC0tZ2l0IGEvdGVzdHMvZGF0YV9maWxlcy9wa2NzN19kYXRhXzNfc2lnbmVkLmRlciBiL3Rlc3RzL2RhdGFfZmlsZXMvcGtjczdfZGF0YV8zX3NpZ25lZC5kZXIKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDIzMTgxYWUuLjAwMDAwMDAKLS0tIGEvdGVzdHMvZGF0YV9maWxlcy9wa2NzN19kYXRhXzNfc2lnbmVkLmRlcgorKysgL2Rldi9udWxsCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3Rlc3RzL2RhdGFfZmlsZXMvcGtjczdfZGF0YV9jZXJ0X2VuY3J5cHRlZC5kZXIgYi90ZXN0cy9kYXRhX2ZpbGVzL3BrY3M3X2RhdGFfY2VydF9lbmNyeXB0ZWQuZGVyCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjM2Q4NjQyLi4wMDAwMDAwCi0tLSBhL3Rlc3RzL2RhdGFfZmlsZXMvcGtjczdfZGF0YV9jZXJ0X2VuY3J5cHRlZC5kZXIKKysrIC9kZXYvbnVsbApCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS90ZXN0cy9kYXRhX2ZpbGVzL3BrY3M3X2RhdGFfY2VydF9zaWduZWRfc2hhMS5kZXIgYi90ZXN0cy9kYXRhX2ZpbGVzL3BrY3M3X2RhdGFfY2VydF9zaWduZWRfc2hhMS5kZXIKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDg3OGU5ZWMuLjAwMDAwMDAKLS0tIGEvdGVzdHMvZGF0YV9maWxlcy9wa2NzN19kYXRhX2NlcnRfc2lnbmVkX3NoYTEuZGVyCisrKyAvZGV2L251bGwKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvdGVzdHMvZGF0YV9maWxlcy9wa2NzN19kYXRhX2NlcnRfc2lnbmVkX3NoYTI1Ni5kZXIgYi90ZXN0cy9kYXRhX2ZpbGVzL3BrY3M3X2RhdGFfY2VydF9zaWduZWRfc2hhMjU2LmRlcgpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggY2M0ODEyMy4uMDAwMDAwMAotLS0gYS90ZXN0cy9kYXRhX2ZpbGVzL3BrY3M3X2RhdGFfY2VydF9zaWduZWRfc2hhMjU2LmRlcgorKysgL2Rldi9udWxsCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3Rlc3RzL2RhdGFfZmlsZXMvcGtjczdfZGF0YV9jZXJ0X3NpZ25lZF9zaGE1MTIuZGVyIGIvdGVzdHMvZGF0YV9maWxlcy9wa2NzN19kYXRhX2NlcnRfc2lnbmVkX3NoYTUxMi5kZXIKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDc1YmRmMGYuLjAwMDAwMDAKLS0tIGEvdGVzdHMvZGF0YV9maWxlcy9wa2NzN19kYXRhX2NlcnRfc2lnbmVkX3NoYTUxMi5kZXIKKysrIC9kZXYvbnVsbApCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS90ZXN0cy9kYXRhX2ZpbGVzL3BrY3M3X2RhdGFfY2VydF9zaWduZWRfdjIuZGVyIGIvdGVzdHMvZGF0YV9maWxlcy9wa2NzN19kYXRhX2NlcnRfc2lnbmVkX3YyLmRlcgpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOTUwZGIyMC4uMDAwMDAwMAotLS0gYS90ZXN0cy9kYXRhX2ZpbGVzL3BrY3M3X2RhdGFfY2VydF9zaWduZWRfdjIuZGVyCisrKyAvZGV2L251bGwKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvdGVzdHMvZGF0YV9maWxlcy9wa2NzN19kYXRhX2NlcnRfc2lnbmVkZGF0YV9zaGEyNTYuZGVyIGIvdGVzdHMvZGF0YV9maWxlcy9wa2NzN19kYXRhX2NlcnRfc2lnbmVkZGF0YV9zaGEyNTYuZGVyCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjYjk3YjliLi4wMDAwMDAwCi0tLSBhL3Rlc3RzL2RhdGFfZmlsZXMvcGtjczdfZGF0YV9jZXJ0X3NpZ25lZGRhdGFfc2hhMjU2LmRlcgorKysgL2Rldi9udWxsCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3Rlc3RzL2RhdGFfZmlsZXMvcGtjczdfZGF0YV9tdWx0aXBsZV9jZXJ0c19zaWduZWQuZGVyIGIvdGVzdHMvZGF0YV9maWxlcy9wa2NzN19kYXRhX211bHRpcGxlX2NlcnRzX3NpZ25lZC5kZXIKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDYzZDcxOTQuLjAwMDAwMDAKLS0tIGEvdGVzdHMvZGF0YV9maWxlcy9wa2NzN19kYXRhX211bHRpcGxlX2NlcnRzX3NpZ25lZC5kZXIKKysrIC9kZXYvbnVsbApCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS90ZXN0cy9kYXRhX2ZpbGVzL3BrY3M3X2RhdGFfbXVsdGlwbGVfc2lnbmVkLmRlciBiL3Rlc3RzL2RhdGFfZmlsZXMvcGtjczdfZGF0YV9tdWx0aXBsZV9zaWduZWQuZGVyCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjYzQ0MWZiLi4wMDAwMDAwCi0tLSBhL3Rlc3RzL2RhdGFfZmlsZXMvcGtjczdfZGF0YV9tdWx0aXBsZV9zaWduZWQuZGVyCisrKyAvZGV2L251bGwKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvdGVzdHMvZGF0YV9maWxlcy9wa2NzN19kYXRhX25vX3NpZ25lcnMuZGVyIGIvdGVzdHMvZGF0YV9maWxlcy9wa2NzN19kYXRhX25vX3NpZ25lcnMuZGVyCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiNzVjOTkxLi4wMDAwMDAwCi0tLSBhL3Rlc3RzL2RhdGFfZmlsZXMvcGtjczdfZGF0YV9ub19zaWduZXJzLmRlcgorKysgL2Rldi9udWxsCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3Rlc3RzL2RhdGFfZmlsZXMvcGtjczdfZGF0YV9yc2FfZXhwaXJlZC5kZXIgYi90ZXN0cy9kYXRhX2ZpbGVzL3BrY3M3X2RhdGFfcnNhX2V4cGlyZWQuZGVyCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2M2FmNDlkLi4wMDAwMDAwCi0tLSBhL3Rlc3RzL2RhdGFfZmlsZXMvcGtjczdfZGF0YV9yc2FfZXhwaXJlZC5kZXIKKysrIC9kZXYvbnVsbApCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS90ZXN0cy9kYXRhX2ZpbGVzL3BrY3M3X2RhdGFfc2lnbmVkX2JhZGNlcnQuZGVyIGIvdGVzdHMvZGF0YV9maWxlcy9wa2NzN19kYXRhX3NpZ25lZF9iYWRjZXJ0LmRlcgpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYzc0ZDY5ZC4uMDAwMDAwMAotLS0gYS90ZXN0cy9kYXRhX2ZpbGVzL3BrY3M3X2RhdGFfc2lnbmVkX2JhZGNlcnQuZGVyCisrKyAvZGV2L251bGwKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvdGVzdHMvZGF0YV9maWxlcy9wa2NzN19kYXRhX3NpZ25lZF9iYWRzaWduZXIuZGVyIGIvdGVzdHMvZGF0YV9maWxlcy9wa2NzN19kYXRhX3NpZ25lZF9iYWRzaWduZXIuZGVyCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiYTYyOWRjLi4wMDAwMDAwCi0tLSBhL3Rlc3RzL2RhdGFfZmlsZXMvcGtjczdfZGF0YV9zaWduZWRfYmFkc2lnbmVyLmRlcgorKysgL2Rldi9udWxsCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3Rlc3RzL2RhdGFfZmlsZXMvcGtjczdfZGF0YV9zaWduZWRfYmFkc2lnbmVyMV9iYWRzaXplLmRlciBiL3Rlc3RzL2RhdGFfZmlsZXMvcGtjczdfZGF0YV9zaWduZWRfYmFkc2lnbmVyMV9iYWRzaXplLmRlcgpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZGJlOTMyMC4uMDAwMDAwMAotLS0gYS90ZXN0cy9kYXRhX2ZpbGVzL3BrY3M3X2RhdGFfc2lnbmVkX2JhZHNpZ25lcjFfYmFkc2l6ZS5kZXIKKysrIC9kZXYvbnVsbApCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS90ZXN0cy9kYXRhX2ZpbGVzL3BrY3M3X2RhdGFfc2lnbmVkX2JhZHNpZ25lcjFfYmFkdGFnLmRlciBiL3Rlc3RzL2RhdGFfZmlsZXMvcGtjczdfZGF0YV9zaWduZWRfYmFkc2lnbmVyMV9iYWR0YWcuZGVyCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxOThiOTI5Li4wMDAwMDAwCi0tLSBhL3Rlc3RzL2RhdGFfZmlsZXMvcGtjczdfZGF0YV9zaWduZWRfYmFkc2lnbmVyMV9iYWR0YWcuZGVyCisrKyAvZGV2L251bGwKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvdGVzdHMvZGF0YV9maWxlcy9wa2NzN19kYXRhX3NpZ25lZF9iYWRzaWduZXIxX2Z1enpiYWQuZGVyIGIvdGVzdHMvZGF0YV9maWxlcy9wa2NzN19kYXRhX3NpZ25lZF9iYWRzaWduZXIxX2Z1enpiYWQuZGVyCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmNjEzZTNkLi4wMDAwMDAwCi0tLSBhL3Rlc3RzL2RhdGFfZmlsZXMvcGtjczdfZGF0YV9zaWduZWRfYmFkc2lnbmVyMV9mdXp6YmFkLmRlcgorKysgL2Rldi9udWxsCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3Rlc3RzL2RhdGFfZmlsZXMvcGtjczdfZGF0YV9zaWduZWRfYmFkc2lnbmVyMl9iYWRzaXplLmRlciBiL3Rlc3RzL2RhdGFfZmlsZXMvcGtjczdfZGF0YV9zaWduZWRfYmFkc2lnbmVyMl9iYWRzaXplLmRlcgpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMGU2NDc2Ny4uMDAwMDAwMAotLS0gYS90ZXN0cy9kYXRhX2ZpbGVzL3BrY3M3X2RhdGFfc2lnbmVkX2JhZHNpZ25lcjJfYmFkc2l6ZS5kZXIKKysrIC9kZXYvbnVsbApCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS90ZXN0cy9kYXRhX2ZpbGVzL3BrY3M3X2RhdGFfc2lnbmVkX2JhZHNpZ25lcjJfYmFkdGFnLmRlciBiL3Rlc3RzL2RhdGFfZmlsZXMvcGtjczdfZGF0YV9zaWduZWRfYmFkc2lnbmVyMl9iYWR0YWcuZGVyCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjYWFhMzA1Li4wMDAwMDAwCi0tLSBhL3Rlc3RzL2RhdGFfZmlsZXMvcGtjczdfZGF0YV9zaWduZWRfYmFkc2lnbmVyMl9iYWR0YWcuZGVyCisrKyAvZGV2L251bGwKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvdGVzdHMvZGF0YV9maWxlcy9wa2NzN19kYXRhX3NpZ25lZF9iYWRzaWduZXIyX2Z1enpiYWQuZGVyIGIvdGVzdHMvZGF0YV9maWxlcy9wa2NzN19kYXRhX3NpZ25lZF9iYWRzaWduZXIyX2Z1enpiYWQuZGVyCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmN2UwZGY0Li4wMDAwMDAwCi0tLSBhL3Rlc3RzL2RhdGFfZmlsZXMvcGtjczdfZGF0YV9zaWduZWRfYmFkc2lnbmVyMl9mdXp6YmFkLmRlcgorKysgL2Rldi9udWxsCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3Rlc3RzL2RhdGFfZmlsZXMvcGtjczdfZGF0YV93aXRoX3NpZ25hdHVyZS5kZXIgYi90ZXN0cy9kYXRhX2ZpbGVzL3BrY3M3X2RhdGFfd2l0aF9zaWduYXR1cmUuZGVyCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiOThjYWI2Li4wMDAwMDAwCi0tLSBhL3Rlc3RzL2RhdGFfZmlsZXMvcGtjczdfZGF0YV93aXRoX3NpZ25hdHVyZS5kZXIKKysrIC9kZXYvbnVsbApCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS90ZXN0cy9kYXRhX2ZpbGVzL3BrY3M3X2RhdGFfd2l0aG91dF9jZXJ0X3NpZ25lZC5kZXIgYi90ZXN0cy9kYXRhX2ZpbGVzL3BrY3M3X2RhdGFfd2l0aG91dF9jZXJ0X3NpZ25lZC5kZXIKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDM5MDM2MWYuLjAwMDAwMDAKLS0tIGEvdGVzdHMvZGF0YV9maWxlcy9wa2NzN19kYXRhX3dpdGhvdXRfY2VydF9zaWduZWQuZGVyCisrKyAvZGV2L251bGwKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvdGVzdHMvZGF0YV9maWxlcy9wa2NzN19zaWduZXJJbmZvXzFfc2VyaWFsX2ludmFsaWRfdGFnX2FmdGVyX2xvbmdfbmFtZS5kZXIgYi90ZXN0cy9kYXRhX2ZpbGVzL3BrY3M3X3NpZ25lckluZm9fMV9zZXJpYWxfaW52YWxpZF90YWdfYWZ0ZXJfbG9uZ19uYW1lLmRlcgpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMGZiYzY1Yi4uMDAwMDAwMAotLS0gYS90ZXN0cy9kYXRhX2ZpbGVzL3BrY3M3X3NpZ25lckluZm9fMV9zZXJpYWxfaW52YWxpZF90YWdfYWZ0ZXJfbG9uZ19uYW1lLmRlcgorKysgL2Rldi9udWxsCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3Rlc3RzL2RhdGFfZmlsZXMvcGtjczdfc2lnbmVySW5mb18yX2ludmFsaWRfdGFnLmRlciBiL3Rlc3RzL2RhdGFfZmlsZXMvcGtjczdfc2lnbmVySW5mb18yX2ludmFsaWRfdGFnLmRlcgpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNGYwNTljMi4uMDAwMDAwMAotLS0gYS90ZXN0cy9kYXRhX2ZpbGVzL3BrY3M3X3NpZ25lckluZm9fMl9pbnZhbGlkX3RhZy5kZXIKKysrIC9kZXYvbnVsbApCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS90ZXN0cy9kYXRhX2ZpbGVzL3BrY3M3X3NpZ25lckluZm9faXNzdWVyX2ludmFsaWRfc2l6ZS5kZXIgYi90ZXN0cy9kYXRhX2ZpbGVzL3BrY3M3X3NpZ25lckluZm9faXNzdWVyX2ludmFsaWRfc2l6ZS5kZXIKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGNkNzc1NDUuLjAwMDAwMDAKLS0tIGEvdGVzdHMvZGF0YV9maWxlcy9wa2NzN19zaWduZXJJbmZvX2lzc3Vlcl9pbnZhbGlkX3NpemUuZGVyCisrKyAvZGV2L251bGwKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvdGVzdHMvZGF0YV9maWxlcy9wa2NzN19zaWduZXJJbmZvX3NlcmlhbF9pbnZhbGlkX3NpemUuZGVyIGIvdGVzdHMvZGF0YV9maWxlcy9wa2NzN19zaWduZXJJbmZvX3NlcmlhbF9pbnZhbGlkX3NpemUuZGVyCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1ZWZhM2E5Li4wMDAwMDAwCi0tLSBhL3Rlc3RzL2RhdGFfZmlsZXMvcGtjczdfc2lnbmVySW5mb19zZXJpYWxfaW52YWxpZF9zaXplLmRlcgorKysgL2Rldi9udWxsCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3Rlc3RzL2RhdGFfZmlsZXMvcGtjczdfemVyb2xlbmRhdGEuYmluIGIvdGVzdHMvZGF0YV9maWxlcy9wa2NzN196ZXJvbGVuZGF0YS5iaW4KZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGU2OWRlMjkuLjAwMDAwMDAKLS0tIGEvdGVzdHMvZGF0YV9maWxlcy9wa2NzN196ZXJvbGVuZGF0YS5iaW4KKysrIC9kZXYvbnVsbApkaWZmIC0tZ2l0IGEvdGVzdHMvZGF0YV9maWxlcy9wa2NzN196ZXJvbGVuZGF0YV9kZXRhY2hlZC5kZXIgYi90ZXN0cy9kYXRhX2ZpbGVzL3BrY3M3X3plcm9sZW5kYXRhX2RldGFjaGVkLmRlcgpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNWY5YjYyZS4uMDAwMDAwMAotLS0gYS90ZXN0cy9kYXRhX2ZpbGVzL3BrY3M3X3plcm9sZW5kYXRhX2RldGFjaGVkLmRlcgorKysgL2Rldi9udWxsCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3Rlc3RzL2RhdGFfZmlsZXMvcHJpbnRfYy5wbCBiL3Rlc3RzL2RhdGFfZmlsZXMvcHJpbnRfYy5wbApkZWxldGVkIGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggNWY0YjNkMC4uMDAwMDAwMAotLS0gYS90ZXN0cy9kYXRhX2ZpbGVzL3ByaW50X2MucGwKKysrIC9kZXYvbnVsbApAQCAtMSwzOCArMCwwIEBACi0jIS91c3IvYmluL2VudiBwZXJsCi0jCi0jIENvcHlyaWdodCBUaGUgTWJlZCBUTFMgQ29udHJpYnV0b3JzCi0jIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wIE9SIEdQTC0yLjAtb3ItbGF0ZXIKLQotdXNlIHN0cmljdDsKLXVzZSB3YXJuaW5nczsKLQotaWYgKCFAQVJHViB8fCAkQVJHVlswXSA9PSAnLS1oZWxwJykgewotICAgIHByaW50IDw8RU9GOwotVXNhZ2U6ICQwIG1iZWR0bHNfdGVzdF9mb28gPGZpbGUucGVtCi0gICAgICAgJDAgVEVTVF9GT08gbWJlZHRsc190ZXN0X2ZvbyA8ZmlsZS5wZW0KLVByaW50IG91dCBhIFBFTSBmaWxlIGFzIEMgY29kZSBkZWZpbmluZyBhIHN0cmluZyBjb25zdGFudC4KLQotVXNlZCB0byBpbmNsdWRlIHNvbWUgb2YgdGhlIHRlc3QgZGF0YSBpbiAvbGlicmFyeS9jZXJ0cy5jIGZvcgotc2VsZi10ZXN0cyBhbmQgc2FtcGxlIHByb2dyYW1zLgotRU9GCi0gICAgZXhpdDsKLX0KLQotbXkgJHBwX25hbWUgPSBAQVJHViA+IDEgPyBzaGlmdCBAQVJHViA6IHVuZGVmOwotbXkgJG5hbWUgPSBzaGlmdCBAQVJHVjsKLQotbXkgQGxpbmVzID0gbWFwIHtjaG9tcDsgcy8oW1xcIl0pL1xcJDEvZzsgIlwiJF9cXHJcXG5cIiJ9IDxTVERJTj47Ci0KLWlmIChkZWZpbmVkICRwcF9uYW1lKSB7Ci0gICAgZm9yZWFjaCAoIiNkZWZpbmUgJHBwX25hbWUiLCBAbGluZXNbMC4uQGxpbmVzLTJdKSB7Ci0gICAgICAgIHByaW50ZiAiJS03MnNcXFxuIiwgJF87Ci0gICAgfQotICAgIHByaW50ICIkbGluZXNbQGxpbmVzLTFdXG4iOwotICAgIHByaW50ICJjb25zdCBjaGFyICRuYW1lXFtcXSA9ICRwcF9uYW1lO1xuIjsKLX0gZWxzZSB7Ci0gICAgcHJpbnQgImNvbnN0IGNoYXIgJG5hbWVcW1xdID0iOwotICAgIGZvcmVhY2ggKEBsaW5lcykgewotICAgICAgICBwcmludCAiXG4kXyI7Ci0gICAgfQotICAgIHByaW50ICI7XG4iOwotfQpkaWZmIC0tZ2l0IGEvdGVzdHMvZGF0YV9maWxlcy9yc2E0MDk2X3Bydi5kZXIgYi90ZXN0cy9kYXRhX2ZpbGVzL3JzYTQwOTZfcHJ2LmRlcgpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggODZlYTgxOC4uMDAwMDAwMAotLS0gYS90ZXN0cy9kYXRhX2ZpbGVzL3JzYTQwOTZfcHJ2LmRlcgorKysgL2Rldi9udWxsCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3Rlc3RzL2RhdGFfZmlsZXMvcnNhNDA5Nl9wcnYucGVtIGIvdGVzdHMvZGF0YV9maWxlcy9yc2E0MDk2X3Bydi5wZW0KZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGI2NzRhYTAuLjAwMDAwMDAKLS0tIGEvdGVzdHMvZGF0YV9maWxlcy9yc2E0MDk2X3Bydi5wZW0KKysrIC9kZXYvbnVsbApAQCAtMSw1MSArMCwwIEBACi0tLS0tLUJFR0lOIFJTQSBQUklWQVRFIEtFWS0tLS0tCi1NSUlKS1FJQkFBS0NBZ0VBNUYybXFFc2RudFBBRWlqNkhmQ1luS2lMTUdubTZQY2ZzYUZZZUZZTzFFdWZPak41Ci1aSlA5MGNyM0NyQ25OOUpPQWRwQmJUcHpBMFJjSWNBZFdCenZOTkF0SU12U2ZpMjJXSllWanpEMEJ2czJyQ1lICi03NlljNnZmeDd5OXpYWmNhbmg4Uy8ydDdCNjR4bXhPV0w0UkUrZjhIV1RpakFXbHlVRkRrK0R1SldwUUsybzBiCi1oRTRTOG1YK3VVbDNhZk5XNUNpUHNSa3kxTjF2NGE3L0oyYjdjRys3cERXVWNqbnZtTkNOODR2K2dTdWNYZktnCi0vTGlBblpnWTd4aWgyZVBFaGtrSXFuNmtVMGNWQlFqMWNaN2hYR1JhWi9NbnFaMnkrS2ppdUZvdDJzYU5rL3YwCi12ampXK3hPeDc2cUpWOTlMdE4vMXF2Q1luTzFScU12MkVNOFdoRXJMY2dpUnJpaHphejNhMkdhdW1MMzBDY05pCi14ckVYUnlFakZhTy9rbHFrcHVaUkhUdHlVbmt2aFVrUFVIdUhuNDVYUHhaN2EyWFJ5clNiRnl5UzBhbVRqUXdRCi1DdmVTUmlKRmpLNVRaNTZDVkdLRi9EbXVMU0hlVFkzdndpK1dYVmRLTVlRNlppOWp3RkpvL1M0VFJwenArRFRTCi1INjhGckZScUUxK3FJVnlXUWptaFd4dXZQaHFWa0cwSVQ3Q1owTThsV2VzeXN5STc1OWY1RDhEaEVwL0tiV0xECi1lWFdDemNOU2JnV0dIVzVKQStmQ1Y3KzhtMFBxb2RJeTVEOExod20ydEk1ZEE2UWNybzhYMTI3UldWYVZzTjhMCi1JemRmMVRIWGZuWkltMWZEQk5VZmhYYXBLZm5GVjhFdkFMRlgyR3k4TTNrWlEzc2xhR2VnSUxmcVJLY0NBd0VBCi1BUUtDQWdCZzh6MWdyMXNvNWI3aU50RlF5cWNQd3lJc2NKbGVpQ1BGZHJrbmhXbVFTWGFVNyt0MmZybkFTa210Ci1HU2cwczZ6NGJsOWVidlVMQ3dlT01KQ0VxdXdHNE9aM3lQQlpMekQ5MU9IY1E2MG1GWnExWlFQemd2TTk4ZnVkCi1UdWpNYiswVitoMUhvS3EvclAxVVYvRm54T0MvdmJ5eDdUQ08xZVI1SW83Q3NBdjFEMnE0TkRYZGFvUHlzc2g4Ci1neXNXS1AvWHB6eXhzLy8zalBjRnVoU0s5dGFDZW4wUURzc3gzMVRQN0tLSEpnVHJjOGRUdjBFSGFaRDQxdXltCi0vUzhoWU9nN0ZtQitlWHRyKzM1NS83NnIrUWEyQWNpNzN1Z1V3MldLMmJBL0VkSHIwbVdpME5HcnZGZlFpaUQ5Ci1uY25uSzE1cHNMY01WazZFT09CMUovb1VVc2E4bjYvbFFpVEpZUmZGbGYwaHIrbWJNRWdkZkltTTJYbjR3RjhZCi1PdmFwcDhHai9YTzdGVlZhV1c4ZElWVXJneXJDdU96NVNXMTFQYjAvS0ZlYnpPUXl0U1QwUzN6MWo1NWJVbDVMCi1tRHhSMHJKVStmTXZiZEp2TWdIZ2k2WVlJMU1CYlNGbUs3L1VlOUhaYUd4ZlVQQnFYSmV0T2dBSm51b1dVcU80Ci1BdHBZYkxhSWlxdmRJRGkxeEY0akRNR0lvT2w3Q25GelU5QjNQakNrWDRhR2RBUnBYcVJBQndGVDlicGYxbFdlCi1Ec0VoYklnNC9xVFdLY0E2RHhJWGFEaGdQOWVINk5EV1M2V0tiOEwxU1ozbU15dGphQ3hLc1Y2cDdwOURqSlIxCi1kd09tWTBIdjdlQlloalZZVWozeWJaczZkZkZsSWcrTTVSdGFybE9zRmhaSjluVmhFUUtDQVFFQS9sMEZIb3M2Ci1rNWMxNzI2Ymx4N3psUm05bU90K3JWMW5iRU9TWlVueSsrb1hHeVhyVVl2WDVOWCtwOHNvRjBJbTlkQ3VpZ3VRCi1zZEtOSzZEWkNJYXllbm53d0VuY2pLV0grTzlWYWhYeE1TOVJ3dGFSRE5XSlJ4M1NQNmIyczRUMVc2UFZaZFRkCi1LN01sTUIxODJja3ZzNjdXUTJoTUhOY0tyVEh1VGRkcEFZU0Q1TGgvUVlENklkV3FzNmx3TEF0bUw3L1dUa043Ci1YZFBoelZmQ1hMamVCQnFyN1Bha05NOXFJN2R1dzI5UXBTZm5BcnNoRG12d2l1Vk9HVkdDY200cUIxUlYwc1FnCi1LUUo1bnQ5WDVWb0syU01EUjJJellicTVJL3dleGlISWJyNGtUaGFHb2s1NWxHaUNOUmprYW5lKy9yU09pclpYCi1ZbzBzSjNSVFVyQkx5UUtDQVFFQTVkWFBBWUY3bEFvM1hwd28wUW91OUlGYzBxdGlGSzlwQXAwcTgxRFNiREpDCi1sa1pPTW0vb2Z6RTZ2RjZqeGphMnNrWGNjYkVoSUR1ODc2bTkzNzB1UlVBQW1maW1BZG1SaFVrK0p6cmxIWHhPCi10RlN4YnlHMGlDbXd0Q1NabWlCY01mdkZKLzVIZXBCaHhiVURCSWM2UGk4RU9namNRZG5KWXI2MEtKeGJvdkswCi13cjltbnd3YUs3U3JFK21YNXZOMmFPd0dwRzluNjFpYlVUMWFFTFI5YWxPWjhINFNsaEx0WnZnUDAyWW9PQ1NXCi1CS0tlNDRmYk9rL3FVbFpHMUQ2TzYvSC9PTVQ0VE15WWdhc3d5MFF1TUhUak9CWHJrQW1WU2NoNWR3bzBlb3h4Ci1kRmhuMzFuRjlTNXJCWnQvUGRCUFIzaW16N1U2TW9CaDYvOG9sSEZrN3dLQ0FRRUF4Yk9UR1F4cU9QRGNjUDd0Ci1XK1lvdVFqS3ZxSzdVUkE2SklIWXRYVm1zTHBmdnpBWDJNZnl3K0E0RUQ3dEtEYTRoWEx2VmtocTdHdVVZZ2FnCi02ZW1YcTI0LzI1VU5JUncvdFJLQXR2WGJBN21kdU95QXpSTGpvaXpoajZ1OE1BZjFsSWFnaEllUWFEalRmTFJPCi1xQStoVGUxa2gvdjJ2S3UvbHFJcWNNSXUwWWtuNG93c0RNT3Nwc09sN0FLVU53ZWRJeHZkKy9LalhtZ2pKekZBCi0xa1N4KzBxbnVvUnhXTUtsNHFEZUxIVEduN2VGN0M5NkgvVnhmdU4vY2xwU0k1TFFnK1hlMXZTdGNuS0VDU0hhCi05VjZvOCtBczJqelBadlIwbGkyTjFiM0lSWnJ3S09tRk4zMzdMWWlWTzZQZlZZbEJJRU5DVHpvdWJXRUFvcUhkCi1hWFd4VVFLQ0FRRUF1TURZdUxNbmJlZVFmdU0xQkdVVlBjTkhwS25VSENDdFgwYU1JaStVRnhtSDRWait2eGlxCi1ZcVJtUE1vdkNNVXVzN3ZvNnhPaU4xRU9IZkhyQ2hIL1FmZWpCQ0tXLytHdlV0OS9zUFZzKy9qVEk2NzVPd1p6Ci1Jd213Vy84WDRvZWsxU0U0YVYvRWdjZlNjS1dEbVg1QzJYM2QvZkRsYmFIdWV3d2xzb2VPT2p5MEJlRHFVMnZkCi1GY2tUeE53QUdjMFlJRnVyTXovQzM3TElsOU9qdE00Q0N4ak5KRCtVSFVOMXgxSWRGcWlHS0N0dzFLVU02SVpyCi1Pa0xIY0F5ZXZ6clNsT1JoYjNjV3lsV2xPb2Nzb0JsY3IrTW1UQTJDNExSeloyNWFCZEVVUW5ibk5NbGtKbXo1Ci03byt6eER3dFdyazdJWTdoT1JMTGg1RWdKaDlrdFg4NXpRS0NBUUFaSUxTcDIxYXpTM0t6S2RBdnE1dTJLVkFWCi1HdW1EZjFkb3VPNW8rNUhqVjJLY2Y1dGt6ajRBMWZmVlpLdDdhdVpDTlVSQUc0amFOSWNjU2NaQnozM0V0Q3VCCi13dlJRcDVmOEROOUVRSDR5amFOSWJQa0ZyS3pnejVBWTA4bjEwUEJtK1gzY1k0OFAyN29SL0lEZnIyd1Z0Q0FFCi1VdWZqTFpDa3VVamRDRkQxd0pTQ2o3TE53alpVUnVDVG9jdnRhYTdIRXFualc5VkI0YUFiZHRmNTNXUnNiWXd0Ci1aRkVXVnA4c1ljOTE3STZPVUpGUWNUN2p4YnY0a2JVQVhJQ0xhTHRhTFcyYldmZFJ0RlFTbzA4cG1aQUt4eEN2Ci02VnU1VkxaOExHTFZrcGllOEZFYVlkLzg5Z0VzSGg2SGdZOUxzSk43V3hvYUpuMXNMbUV0bXl3OXhSU1cKLS0tLS0tRU5EIFJTQSBQUklWQVRFIEtFWS0tLS0tCmRpZmYgLS1naXQgYS90ZXN0cy9kYXRhX2ZpbGVzL3JzYTQwOTZfcHViLmRlciBiL3Rlc3RzL2RhdGFfZmlsZXMvcnNhNDA5Nl9wdWIuZGVyCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyNzBiZjNhLi4wMDAwMDAwCi0tLSBhL3Rlc3RzL2RhdGFfZmlsZXMvcnNhNDA5Nl9wdWIuZGVyCisrKyAvZGV2L251bGwKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvdGVzdHMvZGF0YV9maWxlcy9yc2E0MDk2X3B1Yi5wZW0gYi90ZXN0cy9kYXRhX2ZpbGVzL3JzYTQwOTZfcHViLnBlbQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMTVkMTNkMy4uMDAwMDAwMAotLS0gYS90ZXN0cy9kYXRhX2ZpbGVzL3JzYTQwOTZfcHViLnBlbQorKysgL2Rldi9udWxsCkBAIC0xLDE0ICswLDAgQEAKLS0tLS0tQkVHSU4gUFVCTElDIEtFWS0tLS0tCi1NSUlDSWpBTkJna3Foa2lHOXcwQkFRRUZBQU9DQWc4QU1JSUNDZ0tDQWdFQTVGMm1xRXNkbnRQQUVpajZIZkNZCi1uS2lMTUdubTZQY2ZzYUZZZUZZTzFFdWZPak41WkpQOTBjcjNDckNuTjlKT0FkcEJiVHB6QTBSY0ljQWRXQnp2Ci1OTkF0SU12U2ZpMjJXSllWanpEMEJ2czJyQ1lINzZZYzZ2Zng3eTl6WFpjYW5oOFMvMnQ3QjY0eG14T1dMNFJFCi0rZjhIV1RpakFXbHlVRkRrK0R1SldwUUsybzBiaEU0UzhtWCt1VWwzYWZOVzVDaVBzUmt5MU4xdjRhNy9KMmI3Ci1jRys3cERXVWNqbnZtTkNOODR2K2dTdWNYZktnL0xpQW5aZ1k3eGloMmVQRWhra0lxbjZrVTBjVkJRajFjWjdoCi1YR1JhWi9NbnFaMnkrS2ppdUZvdDJzYU5rL3YwdmpqVyt4T3g3NnFKVjk5THROLzFxdkNZbk8xUnFNdjJFTThXCi1oRXJMY2dpUnJpaHphejNhMkdhdW1MMzBDY05peHJFWFJ5RWpGYU8va2xxa3B1WlJIVHR5VW5rdmhVa1BVSHVICi1uNDVYUHhaN2EyWFJ5clNiRnl5UzBhbVRqUXdRQ3ZlU1JpSkZqSzVUWjU2Q1ZHS0YvRG11TFNIZVRZM3Z3aStXCi1YVmRLTVlRNlppOWp3RkpvL1M0VFJwenArRFRTSDY4RnJGUnFFMStxSVZ5V1FqbWhXeHV2UGhxVmtHMElUN0NaCi0wTThsV2VzeXN5STc1OWY1RDhEaEVwL0tiV0xEZVhXQ3pjTlNiZ1dHSFc1SkErZkNWNys4bTBQcW9kSXk1RDhMCi1od20ydEk1ZEE2UWNybzhYMTI3UldWYVZzTjhMSXpkZjFUSFhmblpJbTFmREJOVWZoWGFwS2ZuRlY4RXZBTEZYCi0yR3k4TTNrWlEzc2xhR2VnSUxmcVJLY0NBd0VBQVE9PQotLS0tLS1FTkQgUFVCTElDIEtFWS0tLS0tCmRpZmYgLS1naXQgYS90ZXN0cy9kYXRhX2ZpbGVzL3JzYTUxMi5rZXkgYi90ZXN0cy9kYXRhX2ZpbGVzL3JzYTUxMi5rZXkKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDFmZDc5ODcuLjAwMDAwMDAKLS0tIGEvdGVzdHMvZGF0YV9maWxlcy9yc2E1MTIua2V5CisrKyAvZGV2L251bGwKQEAgLTEsOSArMCwwIEBACi0tLS0tLUJFR0lOIFJTQSBQUklWQVRFIEtFWS0tLS0tCi1NSUlCT3dJQkFBSkJBTEIyMGpKUWdXK2Fxd0l3ZmtVcmwvREs1MW1EYWJRV0pPaXZ4NWNhV2FFNGt2WkxCK3FtCi03SktNRmdzdGJzajUwTjFiWThpenJBZG50UFpjaVM5V3dROENBd0VBQVFKQUtZZk5jSW9CN0lJNlBRbXNyaHJVCi1aNWRaVzNmU0tOQU5YN1gvQTFEd1IwRGxGOHVabnBXc1diWWNSb1hYN1FqdmVwWnFjNTR3cnloVzU1V2xtNnlJCi1BUUloQU9KSWFMalNwYkhqenpjSlE3bXlseG4yV0dJbGJKUFB6SjlPYUZaQ1pRdnhBaUVBeDZPRUF2bDZKS2E2Ci02YStOMld2aHRjZ2I0cXFSNlVIUUdKUVlHSno1blA4Q0lBdmdvUjZTY0FBV1pSb09jbStjNERHTXJMYjZIK2ppCi1UMnROUWt6RXoya0JBaUVBbXczNEdTdFUzNlNUcGE2UkdKNCt0eVpONmpXYWtEVnFmN3grSHBmRkUxY0NJUURjCi1LelhJeGVjMnRheWU0T2VJYTF2NFcvTWlnTW1ZRTl3OTNVdy9RaTNhekE9PQotLS0tLS1FTkQgUlNBIFBSSVZBVEUgS0VZLS0tLS0KZGlmZiAtLWdpdCBhL3Rlc3RzL2RhdGFfZmlsZXMvcnNhNTIxLmtleSBiL3Rlc3RzL2RhdGFfZmlsZXMvcnNhNTIxLmtleQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMGI5NDBhYS4uMDAwMDAwMAotLS0gYS90ZXN0cy9kYXRhX2ZpbGVzL3JzYTUyMS5rZXkKKysrIC9kZXYvbnVsbApAQCAtMSw5ICswLDAgQEAKLS0tLS0tQkVHSU4gUlNBIFBSSVZBVEUgS0VZLS0tLS0KLU1JSUJQUUlCQUFKQ0FURzJtR0R6eTV2NFhxTlkvZks5S1pEeHQzcUExcVQ5K0Jla1BkaVd2ZmZkSnErS3dDTi8KLVVtNE5NN0VGeVhIOXZVLzZuczZaL0VhZk1lejBLZWoxWXNIREFnTUJBQUVDUUNkb1lqd2RNU0hwNGtrc0w1QWEKLTBrRGM1OG5pMGNoeTlJZ1hvK0ZIalRWbVI5RGthWkFOcndmVnZZTUp4cVlDWm8waW0xRHc3WkpCVURKUU5YbmwKLVpva0NJUmlTazY2STI0QVdhN1hHVUZ2YXRWd1hXaTJBQ0U0UUVLcXpXUWUxbVEyNC93SWhESEQxVENLcHF1Y0EKLVhESSsxTjdFSHMrZk40Q2ZUU1dlOEZQR2lLNnEzVk05QWlFU3JLS0xpL3EwMTFVNEtlUzhTZlIyYmxEY0wyY2cKLVhGa3VRV3F4enpMb0dPVUNJUW1nbDVFMCtZcHdlMHpjN05ZWkZEYXJmNCtaanF4S1FuWEN2azBpck1IY0dRSWgKLUVWUGxpNlJRYjNHY3g3dlhKSGx0elNUbm83TkVsekJEUk1CVlVsQm1WeEFKCi0tLS0tLUVORCBSU0EgUFJJVkFURSBLRVktLS0tLQpkaWZmIC0tZ2l0IGEvdGVzdHMvZGF0YV9maWxlcy9yc2E1MjIua2V5IGIvdGVzdHMvZGF0YV9maWxlcy9yc2E1MjIua2V5CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxOGZiZTcwLi4wMDAwMDAwCi0tLSBhL3Rlc3RzL2RhdGFfZmlsZXMvcnNhNTIyLmtleQorKysgL2Rldi9udWxsCkBAIC0xLDkgKzAsMCBAQAotLS0tLS1CRUdJTiBSU0EgUFJJVkFURSBLRVktLS0tLQotTUlJQlBnSUJBQUpDQXRNQ2RUNDkyaWowTDAyZmtzaGtkQ0RxYjd5WHdRK0VtTGxtcVZQelYybU5aWUVHRGY0eQoteUt1WTIwdkZ6aXJOOE1IbTVBU25XaE1vSlZEQnFqZlR6Y2kvQWdNQkFBRUNRVTA1ZmZ4Zjd1Vmc3NHlDOXRLZwotcUNhNzQ2TnBNaDNPTStIWnJVeGlPWHYwc0pNUlhORVBENUhOTHRnY05ZNk1JNU5ZYlV2a09Ya3RuRlpweFdZUAotVEg3QkFpRWVGSkdzNVo2Z1JkMnYvSWJZTE1GREhnanFobzA0SU5HVE92bnlJN2xHVktVQ0lSZ0pNN21vRnVvTQotVXJLVG1KSzF1T3phdVdFeWtDS2djNkJHSDZUR1pvRVdrd0loQnpRbjJ2ODJxTzF5ZE9ZR0tSazJ3MnNhK1lkMQotcEg1L2trSHFmK204UWpLZEFpRVE5ZVZXKzRKMzB3eEQwSnlYNGIxRS9TNVVwTjVLWU5oV1gwVVMrNkQzTkJzQwotSVJ4ZVB6ZFFsdXRaV2cwQ25rdTNRRTF0T0xCQ0ZsUDdRVlZsNUZiS2NZNUg1dz09Ci0tLS0tLUVORCBSU0EgUFJJVkFURSBLRVktLS0tLQpkaWZmIC0tZ2l0IGEvdGVzdHMvZGF0YV9maWxlcy9yc2E1Mjgua2V5IGIvdGVzdHMvZGF0YV9maWxlcy9yc2E1Mjgua2V5CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmZDQ2M2I1Li4wMDAwMDAwCi0tLSBhL3Rlc3RzL2RhdGFfZmlsZXMvcnNhNTI4LmtleQorKysgL2Rldi9udWxsCkBAIC0xLDkgKzAsMCBAQAotLS0tLS1CRUdJTiBSU0EgUFJJVkFURSBLRVktLS0tLQotTUlJQlJRSUJBQUpEQU9NY0pHMUdTRm1FSmgvUmRNcXoxRFZ6UkdBdXpYazhSOXZsUWxMVGU3TlF2R05EV2JHVgotRlZRZ2dPUnlTa3RuSXBHK1Y4ZGtqMUZpbnE3eU5PaEgyWnpHWHdJREFRQUJBa01Bc1dZeUxnbFFTbHduUzROWgotTDF6NHppZVRxVzNsb21XcjIrQmd4a0hieGwydzBSeDRMK0V6cCtZSzZtaHRJUVdOa295dFB2V0pKTVM3SnJrZwotYWdNQUhRSkJBaUlBK0YxeTVHTzBCditpZ3NOTFh3d3RiQ3FzOGhBa2F2VTlXOGVndC9vRGJoemJBaUlBNmhkcwotUFpwL3MxWDduN2R3Zm1lYlNzKzN2TFpGdVFmaWZOOFhaTHcwQ1hITkFpRXVFemdEUXJQZE1JTjNlcjk2ekltSQotcllvVUJnYWJpUTl1L1dQRmZhNHhPVTBDSWdERFlDMDg5VGZqeTcycFBnY3IyUGtwWlZocXJvNWVzZy84UEk1ZgoteXh4N1RYa0NJZ0NZb0U4WTVJeG9tdEwxdWIxQVF6UGU5VXl5VUd6UUIxeVdlaWxvSmg2TGp4QT0KLS0tLS0tRU5EIFJTQSBQUklWQVRFIEtFWS0tLS0tCmRpZmYgLS1naXQgYS90ZXN0cy9kYXRhX2ZpbGVzL3JzYV9tdWx0aXBsZV9zYW5fdXJpLmtleSBiL3Rlc3RzL2RhdGFfZmlsZXMvcnNhX211bHRpcGxlX3Nhbl91cmkua2V5CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjOGMzNDkyLi4wMDAwMDAwCi0tLSBhL3Rlc3RzL2RhdGFfZmlsZXMvcnNhX211bHRpcGxlX3Nhbl91cmkua2V5CisrKyAvZGV2L251bGwKQEAgLTEsMjggKzAsMCBAQAotLS0tLS1CRUdJTiBQUklWQVRFIEtFWS0tLS0tCi1NSUlFdlFJQkFEQU5CZ2txaGtpRzl3MEJBUUVGQUFTQ0JLY3dnZ1NqQWdFQUFvSUJBUUN4YzVxOHo4WFI2dkgyCi0xS28yOU1rM2RPS3BTT3JYOVRiNUh0bUNRTW9LSXhuVFVRck5rVmVPUXRpUXQ2WFpvMDVjYkE2Wjg3a1dEZ0dKCi1QLzVMeG9mcngxM1JwMXhaelorMEFBUGZ2VUNZNXR6WndtaWNRV3Z1OXN0Nkp3VHlhTFRDelN0MGNQVFVzNUhpCi1oSnQ5UnpTVzZHVGs1QU5qamdvZXdPTWh3aDVmODRKUlVSSjJJTlpqejRuYW1CR2UvOWYxNFpIeEtXdXhsNWluCi0rejU4MnJTRWhMWHJQTGJhS2pUM0pwaGZmNTF4c3VzQytwUDB4TnFrQWNyR0orL0prMFZrNkNsUkNkNDBaY1RCCi00U2tPcXNaOC91R1ducmFka3JONzRQb01NblNLS091eGxzVk1QZnpNa3JsTWJ1YXpPNG5LL29zVEFub1NxTVV2Ci1DT0JkWGtUdEFnTUJBQUVDZ2dFQU5WbFRJUWE2SzNVZUQ1NDZHbEdYbVFPY0RWYnR1OFZ1SkpGZ3hTY2pWczdjCi11Y280bkRyZy90VWI5TTR4bjIvWVpETGNaTzZBSzZCRVYvWVVSc1hHSVYyTDJEY2ZyYVFES29PQ3BxWm9JRS92Ci0vOHZSMVlCWnFic3F5MnVsc2hkR21QWkQ1VHI4Y0dJWUx1aTlNbm5RMXJuQmM0c1ZkYjNEVHlHZ1o0ckx4UDZYCi0wQm9IdytMUUEwd3dTYkUvTlc3MXFtZURTRURrU2tVUUlTVmc2UnAwNlUwUFphSkFXdFlvQk5LR0FzREdBaGpjCi12VlRYRTVCOWQrM3lPTTBJbkNXRnNNL2JVdmFVdi95eHhUY1puVnE5TGppM0t3RGh5NjNGOTlwVWFGblY2UmYyCi0zQ0tPM1ZIZWdXU3dNY25ZYUJidWZEcVdQSHVFRFNsWjBuUmhyYnJLUlFLQmdRRDZkUWQweFBIZnhJejVsK0FDCi0xa1BISXNVS1BFaXJySktUVkhseFF3VDB5VnBEK3lVa0Y5NUhZNk5nSFZIS25SUDlxaWNxcjNyYUlmQTAxVlFjCi15K2xoWG82eFVBcVlzS3ZCOW00bmpFUkZXTVRDVlNWVTMwS2xoaWMvczRSLzFhYktsdmtheDFTaVFGSVJTdHFDCi1vbnNaME0xSXN3NjkvSThZaGEzbXp2L2d2d0tCZ1FDMVlQWG5kNWRabWRiZTBVaWJCV2pVNVg2QVFHdCtveEwrCi0rNkVQM0VmdVJtWUkzaTNyMmJkYkIzRUxkOTVmOHRnVjBVYWdtalFmRm9pZ0JzdVJmYmhyUUVQU0hNQldZcEFWCi0rVFpLeFV2bXBKWHdMRWd4Y1B2N1ZUVHZ4dzBxTDF1MXMvZFg2V0JmRU9VZ1Z6UGdjcCtJSkdFcjFNWmVrVHF0Ci1QNjVjb0RwWlV3S0JnQW1yTHVpQkdkMUxseTJqZ1ZCYXVTOGMxb0o0cFUyTFVmVkNFNVlkd2prNDlMVWZJdVhyCi16ZmJ2ajhVTUhMWTNyaWZpdzdSUUpldjUxMjRTdGphT1lLb1RubXFWN25MS2p6Ympyb2owVDBabUVPSjNxd05GCi13eXJrck9zMm9PeldjS1B0aEJ4V2ladmg0OGtySEpoaWNXSWp2MmtKRUk2aEMxMGsrL3VuRGhXOUFvR0FaeVJnCi1NZVJiK09QMndIYWFweTBJVkNpOUt3bDNGMmg4b090T3g4b29UV05UR3EvZHhVVGxjNnBqcW5YYnl3dzV2UTVvCi03Mk5CU0h4ejdTeHdEcWhEZXhuc2QwdEtSTlYvd2o4WmxLTmxhaDhsOUpINTY4T29SMkJJM2lGL1p3SFBVU0NxCi1BeC8vWVpBbCs2SWJLZ09Fbk5LelAwMmNFS0xkankrclk1anFGV2tDZ1lFQW1FbDRtZzFJR29WRE02ZDNpSVBQCi1KTHo1RGdoVjhrUCsrOTl2RnJKeDA3RDZlL3Voem9qUjczWWUrZnE2OVZ5MHlqR1hwYVJQd3dIZnZQekRBMWhtCi1pcjdySldzYmJza1IraVRuMnlLdklwQjF3QkkxdTBTUTRsbkoxWklWSlBWbGg0eUEyOUp2UFQ3LzcvMm5RL3M2Ci12ME4yb0tyZmFpS2M3QmpDejNlWVc0UT0KLS0tLS0tRU5EIFBSSVZBVEUgS0VZLS0tLS0KZGlmZiAtLWdpdCBhL3Rlc3RzL2RhdGFfZmlsZXMvcnNhX3BrY3MxXzEwMjRfM2Rlcy5wZW0gYi90ZXN0cy9kYXRhX2ZpbGVzL3JzYV9wa2NzMV8xMDI0XzNkZXMucGVtCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxYmM4N2M5Li4wMDAwMDAwCi0tLSBhL3Rlc3RzL2RhdGFfZmlsZXMvcnNhX3BrY3MxXzEwMjRfM2Rlcy5wZW0KKysrIC9kZXYvbnVsbApAQCAtMSwxOCArMCwwIEBACi0tLS0tLUJFR0lOIFJTQSBQUklWQVRFIEtFWS0tLS0tCi1Qcm9jLVR5cGU6IDQsRU5DUllQVEVECi1ERUstSW5mbzogREVTLUVERTMtQ0JDLDRBMDA0QTg1QTJEMkQ2MjcKLQotTHMzdk1zbHVteFNlQlI0bytvbmNxMzU5cTBrMHJEVE81RklGeGN3N3BzeTZnZ2Q5VnByM0FkSXE5cXZldm11QgotMnQxS3RsY0hvSStXaStQa3B1a0hDcEN2TTBLanUxOVBRdU5Tdm42ZUZ0UjlWT3dnazZ4K2o5eDlaZVpwMFFrcwotQmdzR3pHdWJxZE4zemU3Q0V3WUdNNkN2VnBvUDNxTkM5aFI2SW9nWjlWUFRqWjB2TTkyY200Zm9TRFNBQnhHdAotUTM3YkxFMU9LT2ZjQ1R2cXg3L3IrNFU1WjQ3b2tlWHZPUy9IZjd5emF5RjlaSHVTMGhDcitqR1dsN3FCV055RQotWmU3SVRRMTlSQTdZUzJubHZDdnEvOHJmZHVRc0p5WlRWMGdJdWx0TTN0WjlxTndyMWk1eXA3SXE0VTZPOFNHQwotY1IvOTVSMFo4UE1OMkRTWG9NSkJzU1JiSzMycjJHWEpvR2p2Zys0UjBVb1RiYzFNaFVUdHNvY2xJejk4bHNIawotelZ4Z1BNems0bUVtUUdhS1ZwL3dhMWppKzlqb1RrY3YzY0FMSHhUdE5jRS9kRWxBSEJZampKN3I5VjR1QXYzdAotamF5N1I4U0lQUGg3aXl1WTROVHREQTVtOHl5Qkt0N3Y2SzVoYjJXaFQ0YXVjV1hIWVRpemUrVHhTVHBla2hyRwotSjBFRXo1emhXc3JMaFhIVjFLY0dESUhWWGxNbnU3TENHeVZORkNXS1JCWEliWmF1amVkMHh3V2dqZlhLYmtZZAotTUtlUFg3Nmc1T3lLRkdHY3Y1S1VrbmxRSmhvUkVsclN6NnB5d2Jwd2tsMFhxYzFkdXN5MXNaOWI1VWg2empOYwotcjVzQnZqMWs3aUsyN2J6ZEV1TDFJM0RFY1VkbVhMTkYzZGVoTm80djVXUUw1aUJlUExvRlN4eUw4RUprTVFPeAotZnB3b3V0UHpFN2w3MVRvMXptRTNwbUZkWmJFWFRmamNmcWtSeTliNHQ1N2dVdW8xVUVoWVl4b0IwRDBpK0JrSAotVDBabUpsNFFwMmV1YWFNcVlZTjJFOUZKQXlybXB3Qk12dGdzNW9wclhSUjZnZVp3ZVQrSjlnPT0KLS0tLS0tRU5EIFJTQSBQUklWQVRFIEtFWS0tLS0tCmRpZmYgLS1naXQgYS90ZXN0cy9kYXRhX2ZpbGVzL3JzYV9wa2NzMV8xMDI0X2FlczEyOC5wZW0gYi90ZXN0cy9kYXRhX2ZpbGVzL3JzYV9wa2NzMV8xMDI0X2FlczEyOC5wZW0KZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGY3NjI5MGYuLjAwMDAwMDAKLS0tIGEvdGVzdHMvZGF0YV9maWxlcy9yc2FfcGtjczFfMTAyNF9hZXMxMjgucGVtCisrKyAvZGV2L251bGwKQEAgLTEsMTggKzAsMCBAQAotLS0tLS1CRUdJTiBSU0EgUFJJVkFURSBLRVktLS0tLQotUHJvYy1UeXBlOiA0LEVOQ1JZUFRFRAotREVLLUluZm86IEFFUy0xMjgtQ0JDLEJGMTc2QzBGMjg0RTJFNUYzRDUwRjlDODJEOUNGOTUwCi0KLUFTLzAzcnZUTllTc1B6cXRMcjEzandyU09WYVRVWW5pTXpqNDIvNHBzS1ZUbXJJN0thaXVqc2EyYmpJNUFlN1MKLUhEQXVtVkRkUkNETy9BVjVxTDdpSjBpSitQcU9oNmFMODlQa3RjWWprZ3g2WEs4RkRPcTF3bCtkUExqbXJzWW4KLW9SeVJjRWxsWmlnQlpSYllwbnVLWk9RMjV2bkh4R2VaNUE0ZExtM3pVWG9Nbk5YczFoMHJQRGl4L1lkMkFiVGgKLXAzNzFBYzZMQzhpM0tsT0l2amx6Q0ZhT1dRTndDa2ZmdXRYRGIrVE44NnhGOStEa0owYnhIaFdoSHZmOStmSTcKLVhKRmdMQWVDcElVTUNkaGRxd1ZxcjRZNVgwTkJBM3NwbWZ0SzRpSUxuMzIrUkhmTEJzaFJ3b21wTUQxbW80SmQKLXVlRVkyUDU3ejdmTnhlQ2FId3c3citPVWRaYnlTYXV1QW13V0hFb0E0TnhEWEFYN2MvMS9Qb1BLT0k4WTFPUEIKLTAwYktRdHpHRStGU0pRalJ6Sy9uOW1JWlFGUzBBK0g1NEVaMUl1L29qVHBFem16ekUwVFIrNzVsWnlmcWFmOUQKLUJoUWN5amdrd25KcEoyUyt1L3NzSmwwdnBDNGJLR3FzL3IzZVdtTEpRWXZadVBLUHFvckNBVWFiL3RhK2RZZmkKLWd4RDFEakJDZG9zYlVPb2xJc2pKZnNlalN1aEVRdWxwYUk2MURXZU1NYXA1VXZ6ZlpMTHJRNWtKdWliaThYcU0KLW9RaW9lblhmOGdQYy9GT0ZpTEFBekxLdE5qbUFnRDR0TmRBM2V4bWtId0tqOGRzK0hIUy8yRm1GK29KMkxSM08KLXRtTytjb3YzWlJlT1ZwN3d6UjZsY3RHMWIyV29WUnUza3p3em9PaWsrU0ZCblIxdjV6M3VFZ2dKVjYvY3lmS20KLVUzS3poT2tyZ2hPam9uQXF3OStIK1E5aExPOGQ3NmNEQXd5REIzS3hMTzl5emRwdWtCM2Yrd1MrUmdhVGRyeGMKLW9NU2lYa2xzTzlSbzlOSVl6WUtBQmpRMXRETGVZOFNPT2lkb0xKcnJYbHRKTkRLWlNWTFIzZWR5azFyWkVGWGYKLS0tLS0tRU5EIFJTQSBQUklWQVRFIEtFWS0tLS0tCmRpZmYgLS1naXQgYS90ZXN0cy9kYXRhX2ZpbGVzL3JzYV9wa2NzMV8xMDI0X2FlczE5Mi5wZW0gYi90ZXN0cy9kYXRhX2ZpbGVzL3JzYV9wa2NzMV8xMDI0X2FlczE5Mi5wZW0KZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGM4MTljMDIuLjAwMDAwMDAKLS0tIGEvdGVzdHMvZGF0YV9maWxlcy9yc2FfcGtjczFfMTAyNF9hZXMxOTIucGVtCisrKyAvZGV2L251bGwKQEAgLTEsMTggKzAsMCBAQAotLS0tLS1CRUdJTiBSU0EgUFJJVkFURSBLRVktLS0tLQotUHJvYy1UeXBlOiA0LEVOQ1JZUFRFRAotREVLLUluZm86IEFFUy0xOTItQ0JDLEI4M0Q2QTVEMDlFMTkyMDQ0Mjk5QjlEMDZDNDFCREE3Ci0KLURRdk52QVFmbG1TaEgvNmFSb3BmS3BkS0NlclFCQWY0UllDNytNWkxZYVV4WFV1VXpGdUl1VXlFbU5iZ3N2bnkKLUFSZkZ0akNMMDdlK1NHSjMxaGRSL0JNOHdXZ3YzdjVQNStWeUFuZDY0dlVQMFIybUZsOTJDWlZ4emNYdzJUQWYKLVBieERyZ21pRnh2OVdmVXNhMmFEa0RoUWpLWWI0cWxMdjFXRmMxVU02OGpMaUw4VzVVQldLS1FGbkNpdmNPUkQKLUdsc0dUU3hNcTNZWFcwUVFRNXg0Ny80dVdhWFJPTG5JdVJXN1pTZUNpMHdnRytSa0JXMXlVSDZwbGhoU2IvQWEKLUVuSHFzQWxDTVpETHdya2dlU25tc01TVHBiVWNDS2ZpWm1KQjVzSmVKWDNSVndaNmwwNE1ITUJ0V2g5YjVmSVoKLTRpZVNlREpmSHF0VWdKOWllOEpjTEh1TnNVeHU1Q3J6anY2eXVaNXN1NlArWVNNc05oSHRPQlVYQWFTdW5SaDEKLTFicncxZUc3RTZxQ25SWXI3WXl2dEtocHBEWExIZjRzQjh0ZHVtVENIaEJkeHhVZDQ5K1NybVk4cHpua05qQXoKLVpoZmt5MC9HS2UrZlRUTXpITmp0dzkvcWhqME5sbFVwQTZTeXB0TU0xdldlNjJPa2NRWVNZZUg4MWJ0ZFIyMkgKLUt1YngxaVlNeDJocjZkc3ZNMStCV1A4Q210RDZ3RkVoSU1CTktZY2cvQVdIQS9OTXBkN0UySFRtdmlYQmRFVkEKLTR4TWg5ZlR4MGNKOVluTkJ1VmdOTlBHU0pKTGE3SkdXZGZkQ1VwVFk2UzBZRXZUUXcrMWxldHJWYlczeHVtVzIKLVRrL0cvZFMwdDQxUUp1YVcxc3Y5RGtKSmNsMTY5NlBTSTR5c0RKeDlZOEx0VjErRHp2ZGx4U3lKZGczbUpIRUwKLXFDNmJDdmo5SWhqTHNyVERXUHV3WGpJUGwyeWNHNUZHdEFuNzlwSmhsREp6S0paS3Niem1RSkF2RDVqajk5bDUKLVppSjFVa21WZHNGZVFMeFU5aHNLRDJDdnBsOS90ZGhVdkxhWjBVUGw0M2M1WGFCU3djVDllenRpTFVYR2l2emMKLS0tLS0tRU5EIFJTQSBQUklWQVRFIEtFWS0tLS0tCmRpZmYgLS1naXQgYS90ZXN0cy9kYXRhX2ZpbGVzL3JzYV9wa2NzMV8xMDI0X2FlczI1Ni5wZW0gYi90ZXN0cy9kYXRhX2ZpbGVzL3JzYV9wa2NzMV8xMDI0X2FlczI1Ni5wZW0KZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDk0NTBlYzEuLjAwMDAwMDAKLS0tIGEvdGVzdHMvZGF0YV9maWxlcy9yc2FfcGtjczFfMTAyNF9hZXMyNTYucGVtCisrKyAvZGV2L251bGwKQEAgLTEsMTggKzAsMCBAQAotLS0tLS1CRUdJTiBSU0EgUFJJVkFURSBLRVktLS0tLQotUHJvYy1UeXBlOiA0LEVOQ1JZUFRFRAotREVLLUluZm86IEFFUy0yNTYtQ0JDLDI4QTU2RUIxMDJDQUZGNDk0QkY0QUZCNTVDNEVENTJBCi0KLTV5T1hieEREZ29tSnRSRkM5aUJMODE5ZFUvdkNPZTBKbHdkeVFPUWJhZ2QxRWZqN29FcnJNdVZaSk9sMThkL28KLTJHNk90anFseW56b2Vxa1R3RTB5SkV5Uk1MejZDSVpwMHdIR29ETXlUNE9lODZ1R2gza2k5WnFJV2xneHQrbUEKLTdlMVJBcEZuWk9Dem1IQ0daTkNxZFNOVVY1Ry9jczdvcjZHZDlIdmRLU0NkeGZmUHB0RTZGYWFZOE9YNDczN1AKLXByN3N2eWxwNTY5U2VjejZNTzFSZHM3ZU9QRWpBWkJKeURTYWgyQU1JaUVNSnhHclo2NjJpRm8vM1MxTXVET1kKLS94b0RIdFAvVm8zZXA2RDhGcDI0UGVKNC9pb2N1NmhtaEFJTzRqK3pMTjZ1b3cvV3UrRDhrQktNaHRyVXRuSE8KLUFvUDZzamtOT3NNZzdmYlRFcVRyWEhrT3c5MlBiWlNCYndzZ0I1ejZrS2VUQ1lWREJIVWFERGxPVGJDeHcrdDgKLVBINklPclFYVUlQbDdkdDJpbGZManFnenB3NFQrUkNZcDF4Z00xWklzb0NzcFVwaXptTVRQd3RuN2Z1SWpVSGIKLWNvcEJqTE9UNHRVeDdpdFZpMnRUQU12dGlXOW1ySFZJOHhncHFTaVR6MkhnNHVNQ0ZseGtnbHJ3cDF5SVVDbFkKLUJ0TUdMN3FBL2wvZ21oSFJZRHBremYrZXd1VGVPSW15eWZFbkFhd1ZUMytHNnAzdGYvQ3M5UlZnVUNuQ3JGSGEKLS9CdVloR1R0VFYrUjZGNyszeVJrL1hPUnA5UjNLNEJiZ1dISG1hMmRCMHpZSUZEWFl0bHJPRFV5UTM2MlR2MXEKLUpORmlzMlBidE5CN0RSS3JCL0t0dGVXdGczMm1TYVRMNDQ2YTBIQ0YwVnBGQi9ucTB3RVBDdmdoZWQ1S1lIU1IKLVB6b2VnbW5qa0Rpa2dpZDRPL1JoY09DNStxRXlrTmFsZGRoUU9ZNkN4SkV3VlRBdmlIYlFBeVczZVAxQW5JYSsKLStJZmMybzY3aTU3YmtMTGxnMHBxSElUbHoxK2c3U1dEajdBaXgyWTY4eldaVkwzbitlL3d6cWJkWXFNVnhpR3oKLS0tLS0tRU5EIFJTQSBQUklWQVRFIEtFWS0tLS0tCmRpZmYgLS1naXQgYS90ZXN0cy9kYXRhX2ZpbGVzL3JzYV9wa2NzMV8xMDI0X2NsZWFyLmRlciBiL3Rlc3RzL2RhdGFfZmlsZXMvcnNhX3BrY3MxXzEwMjRfY2xlYXIuZGVyCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjZWMyYzMwLi4wMDAwMDAwCi0tLSBhL3Rlc3RzL2RhdGFfZmlsZXMvcnNhX3BrY3MxXzEwMjRfY2xlYXIuZGVyCisrKyAvZGV2L251bGwKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvdGVzdHMvZGF0YV9maWxlcy9yc2FfcGtjczFfMTAyNF9jbGVhci5wZW0gYi90ZXN0cy9kYXRhX2ZpbGVzL3JzYV9wa2NzMV8xMDI0X2NsZWFyLnBlbQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZTI2ZWFjMy4uMDAwMDAwMAotLS0gYS90ZXN0cy9kYXRhX2ZpbGVzL3JzYV9wa2NzMV8xMDI0X2NsZWFyLnBlbQorKysgL2Rldi9udWxsCkBAIC0xLDE1ICswLDAgQEAKLS0tLS0tQkVHSU4gUlNBIFBSSVZBVEUgS0VZLS0tLS0KLU1JSUNYQUlCQUFLQmdRREhPSkxGdy9Sd0VBaHIrQk0xN1BNQkhJb2xENVdDTmg2cUhwWVNWUnFzK0h0MU13dHcKLVZ6T2MyWlh4VFV4RU44aSt4S0EvNUdRODAvUEpBa005dzN4YmpubXFDWVN1Z2hNM0NyK0ZhYjBxTldKc3NmN2sKLXJPQkNza0Y4ZStTZEp4U2JMQWRyamtNOVAyeDJPa2FhSEhBTkpaMjhDTWRBL05nQ04yTC9mZXY4TFFJREFRQUIKLUFvR0JBTDIvdDZRZjZQRFhoSDM1MGFwYUhuWWZqY0NRNEZFZVpRU1pqMHkwdkd5bFcwbWNyYmQ1aHhKTStCRFcKLUU5OGgxdFZFaUhGeWdycWhFaUNSUkNST3ptRGhqbFBWeW14QlhQK0pldjR4ZVY1bXZmMlB6Z3dPUjhNVGRiRm8KLWRPU0k2dDliaHBDeXAwTG44ZVF6R1h0dVdzSDZhckpzeUpKOUp6Q3J6ZUk0OHNqTkFrRUErbGdHU1BOeVdIWlcKLUUwemR0em52R3BoWUtQTXVEVVRHem0xZ1RaMG9lczZxanI0T0E5ckQzTlRHSFZXMUZWTHE2M2xlVGlxSzhzT1MKLXVKZHVJYXVXNHdKQkFNdTQyMTR0eWhCNzIwQnVMSDd2RDBtQ0tpcHpEMGNFdUFkZjNORWVsM0taeG5IRDRBSysKLXhlaUVmRkNzdE1nNXVNQ05Ma1NoR2pNWjV6TmZSSXF4ZmE4Q1FESmpXMGg5cjZzOGpsQ3VMUVkvSS9BL2I2YzIKLVl6T0tmMVYzVUdYdTF3SDQ3UDEwSlpBRERWODZlSEhaR1d5a1Z1SjBlRlhWWEVoR3N4WnliRmxjbHk4Q1FEZXQKLUtzN2Zac1VBaEpoa1ErYmhBT1dQSEdVRGt4NU9yTmpmR3lOUDRBWWkvcmdpMXpzSTFsL0lyWTBDMWxtT1pPN0MKLTV1MDh0a05YQmZmbFJuODlLT01DUUF3Q0ZnYlpxZC9WREZ5ZW1xd01aQVhwK1kxSHZHZVpJMHByM3ZCSnpPM1cKLU92SWEwS2NrSjc5M1VqUzZJaWpmbnl5OXBXbUtKTGRLRU1lL0F0U1JEaTA9Ci0tLS0tLUVORCBSU0EgUFJJVkFURSBLRVktLS0tLQpkaWZmIC0tZ2l0IGEvdGVzdHMvZGF0YV9maWxlcy9yc2FfcGtjczFfMTAyNF9kZXMucGVtIGIvdGVzdHMvZGF0YV9maWxlcy9yc2FfcGtjczFfMTAyNF9kZXMucGVtCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5ZWFmYmI2Li4wMDAwMDAwCi0tLSBhL3Rlc3RzL2RhdGFfZmlsZXMvcnNhX3BrY3MxXzEwMjRfZGVzLnBlbQorKysgL2Rldi9udWxsCkBAIC0xLDE4ICswLDAgQEAKLS0tLS0tQkVHSU4gUlNBIFBSSVZBVEUgS0VZLS0tLS0KLVByb2MtVHlwZTogNCxFTkNSWVBURUQKLURFSy1JbmZvOiBERVMtQ0JDLEIyM0VCODcxMTI5REQ5MkEKLQotRjZTMXhMSm4rcWMvQlZ2Ny8wUmp5a1VVcXZMUjEyT2NDaG1PRm8zaGJvQzVvbVdybVB6aGh5MUlTOVh1Vlp1eQotMWdGaXFNUXd3TGN2cDVqdE12V1R3MmtXOXpLVmNuUml1emxjL3dWMDdicFlTNFlWN2NoaTdhR3AyKzVvVWh2VgotRWE5SGdGUWJ4NlpZQVJrL2JjRnBlakxzcHRpVUJ1MmdOeXk2RkMrQndvdjM2SDUxeStmM3RKSWw1MUltV25HUQotUjFITUR0THV6SFRiMzFDbVd2WENZZjE0SVQzZ293eHZwTzhzbWFxb1lPSXc0WGVTenByQktNZ3FYTDY5L3FqawotK2V0NFc0L3pHMHA1UjRXbEtCYVJlWEoyQzU3eHZTVG1iYXFiQ2pJWXJvc2hsUG85Y3NQQXdGdFJyV2k0QXF2NQotajlPRUxtWnpnSzc0NVFuTDNJa3FzalF1UytMdXFnOHM0T0ZpZmN3QkxTVnBvMnBXaGRKbktrNDBjYWk4UUxwcgotU3Q4ZTNCSEdaUGR4YWNDMDRjVGM4ek44WHI3cjc2bFo3aCtwcGtzeDB1b1RWMlUwKzNjYU1xeXlCeXVGNUlmKwotUlVZWE9KMFkyalVNVVlkaWQzaytDMGJuNVZiQ2hGQ3huaXYxMExwSloyNE50NFJLRVl5KzJWaElRK0Z1QWJRLwotZFNNSmRxQlA0VFRCdTBEekNtcWFHdmdqaktMVEZGNjM1aHpQK2NGdmFGV2hWT1kydjR0a1YrNHprdkJVS3pzcwotRWYzWndoRHNlczU2L0tUSTU0R1VKcVd4TksrYTFla29yM3RyMUlVTVB6ZWFBcHpVU1JYdXNUNjJRTUJPVzBxOQotOGxTTmNBeXd2V3JsY1oxMjdKMnpaTXJrMFNLbzFqTk56WUtXdDBlOVhwcU1XQXEwN1NsVUwwTUpDdC9LWXc2SgotMWVYVCt4RTlINUZFWnZRa0JGQ0hZeUF5cTU0UDN5cldWOXkwMXhpMHkzcnVCZjUwaTdrL0lyQXRFOWMxRlpkYQotMmg1cWgwR05BRWlHUnI4YmJoM0Ezd3VnaWR3QVZvSFFldU1uQXNTaGYrNWdqOE5wN1c5a0VRPT0KLS0tLS0tRU5EIFJTQSBQUklWQVRFIEtFWS0tLS0tCmRpZmYgLS1naXQgYS90ZXN0cy9kYXRhX2ZpbGVzL3JzYV9wa2NzMV8yMDQ4XzNkZXMucGVtIGIvdGVzdHMvZGF0YV9maWxlcy9yc2FfcGtjczFfMjA0OF8zZGVzLnBlbQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYWM3ZWYzYy4uMDAwMDAwMAotLS0gYS90ZXN0cy9kYXRhX2ZpbGVzL3JzYV9wa2NzMV8yMDQ4XzNkZXMucGVtCisrKyAvZGV2L251bGwKQEAgLTEsMzAgKzAsMCBAQAotLS0tLS1CRUdJTiBSU0EgUFJJVkFURSBLRVktLS0tLQotUHJvYy1UeXBlOiA0LEVOQ1JZUFRFRAotREVLLUluZm86IERFUy1FREUzLUNCQywzRjM4MjhGRUE5QkYxOTdDCi0KLTMwZmdNUEVJS0VSMlZINjRUc1k1bGs4SUNkUDBwcmMrVWlXL3RqYlFMKzJBUHB0aXJCNVNEUkF0dXdUdmJGUmMKLURhOTd6clJ3cmhoR3hOVm9iSmhoZmZRbHlCNnZoTTZoNWFxOWRLd0QzYXVPVkZvc09tMHhkaUFDL3R2K0RxQXgKLURJWkloWVVCNUllbGVRNXJsREpXb1JlVWVPY25CK2Q3VlArWmxjMWw3ekRNeC8zRmdPeU9obHE3ZHVmTlVHblkKLW4wdFpXS0l0aVY3ck9ZV1RqYkR1NzlCcEc1MlZ5SGYyMTd2K0RlRFN1Z29tNEZJV1FTK1h3SUtnN3h2RW54bi8KLXZYOXBnaWFWZlhsZlpMZlVNaEtJUCthek9JbTVCZHFCMnJrbENwYTE3LzdhUThnUWlkM3FvbE9NT2JXZm5CY3IKLU1XWTJCQXE3cVNrZWJQeWRFTEIrVUxnR1AyRjdYZHg0MVJmc0FxOFJOeVZJVHgwRy9ORGtZRUx4MDJNMzBmMEcKLThGR0FQOWZ0MW01RE1CYkFZQlVoWkhsU0ZaLzlHL2dXYS9Wc2tTbWpuaXE4MytSTzI0ZlhvVHhZVXg3MTZ6NFMKLU5tRFY2UUV2NVY4WmdMdHNwb0MwMDNINkZXVFBYdURpbThVdXdKZUdKNzE5a1hDaFQyaW1NZUFVcElUdW9DODEKLWVkdjJZZjRzcUFxZzBFcUZsc1c2U2QvMWs3K0daS2ZXMExnQ1J2VGFxWW9acDBleTR3eEZvYThqcXZ6NjdqS0EKLUg0bnl3RjJneWYxN3drOENNMDFnWGNHeXB5UWNOSHJxcTdhaStRcjJweHl3OHhOQkl6NVBnV21KKzNFdGVmMEcKLWh5L3RIZlFxZ3FlcmsvZ2hpQW5ESkg0cGMwNDhCakZkWGZvSXIvZ01HRE01YUhCREpwWnVFQW1oZ0M4UE1EbVYKLU5qRzVUeHpSRGx4VEgxZEtESTlTa011a1VSeTlhWVlWSmdtMFJBK0VobjZObmhacmRTaHYyRzRNc0xtRVpTc20KLWFpazRsNzFObERabEFKTllHWWlrN2JYSTE2T3U5Y2ZVMUpOVDkreFo4TmNZSU1GSDdDUFJQYVRjdVcrU2dzYU0KLVA3d1Z3NXJVUDkrclB3aGNaQ2xlUmFSMnZrRDRNUks0cjQrSHFqSXBQemxCYWdPOEZIYjUvd3hoYlJYVVFyRVcKLXI3RjFiTWEwWmx4SUdSZitUcTJtTHIwc3V1TDJSbHZ0aDZXZVZWaStJbDBWbGxPODhlNGN3QTJFYlBSVzBHKzIKLSt5dU9zYjVQUmY2M0JGM0ZGVmhNNGpHeFliQyt1dUdnMHFDL1JvSTYwQSswOThNbEpaUm9WVjRxdnZGNXRPTTYKLVBIQ3FzeElpalhIcDQvVnZmdS8vRTkzQXRWU25QeGJsWHNVSVlMeDc4TlhNTWwxai9pMlBISnBUdnhoR0lDd1UKLWo0V1VLWFQvVFFJU1lyZk5pYXFjNTIxdnExTWVDZVlSaTVKbklMeHZNejVVSklRNWVoVVFKNmFEeE4wT3paazcKLXFHRmhLRDVLOTFYMkFwb0U2ZnEzOGZ4WWtoK01OM21qRDd1QkFyUUUzN1R4dERkWDMrbDdrY3hIQWlJTFFVY1MKLVRJZTRxWXV5eEh6dVNsdDA3ZmtWV1FnOHVrRGRIWUJ5L3ZMM0hqRGorZnVLQVRpU1hiT0xQM3M1UWdBaVpRdjUKLXl6bGpHTnZxdGFneEpNVGpJZUQ4U1ViZzJrRndTNkZSN3E2N1M1N2p5eWlrU2tlREtGWGpPZzU2WmI4Z0VvQlUKLW5yelRrTElDbnR3ZFpxRnBJVGtsR2ZGM3RaRElXV2diWVpNcUVPVmsrdTZXUVd2K3JCbFhmZ3lXMVVibWNnT1AKLXlvaUpSU3ZxdHNWd1k1Y1N5dWlaY200UHk2Vk0zM2FkNC9mZDRFOVczSFFML2F4SGZkVXpOM1lNR09zZC9QZk8KLUFkZ0dsODErdUlndHRET2pqK1grSEYxN2dxM2paQTQwOU1aRXl5QlhFSTFRWE9KRThFS09WbnpqSGQrbk8zT1oKLUdtWFlXdmVleU1VclpiYS9WVm9WQjVTL3dabnRMNjRHSGQrR3FhWFN1RWdqbXFZRlRQZ3NlaENVWW9ISHh4ZUEKLS0tLS0tRU5EIFJTQSBQUklWQVRFIEtFWS0tLS0tCmRpZmYgLS1naXQgYS90ZXN0cy9kYXRhX2ZpbGVzL3JzYV9wa2NzMV8yMDQ4X2FlczEyOC5wZW0gYi90ZXN0cy9kYXRhX2ZpbGVzL3JzYV9wa2NzMV8yMDQ4X2FlczEyOC5wZW0KZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDRiOTU3OGUuLjAwMDAwMDAKLS0tIGEvdGVzdHMvZGF0YV9maWxlcy9yc2FfcGtjczFfMjA0OF9hZXMxMjgucGVtCisrKyAvZGV2L251bGwKQEAgLTEsMzAgKzAsMCBAQAotLS0tLS1CRUdJTiBSU0EgUFJJVkFURSBLRVktLS0tLQotUHJvYy1UeXBlOiA0LEVOQ1JZUFRFRAotREVLLUluZm86IEFFUy0xMjgtQ0JDLDREMjc5RjYzNTE0MkJGRTk1MkE3MUU4RUU2RDE0QjBECi0KLTYrcVcwWFV1MDZlWGUwampTc21SR3lTdTFLWG5FamcrNjgyc1VieE9rLy8yWWl0YU14OHdNUXFSUXZUOVV1c3AKLWxXN3RZT3o0N3dpejJVckpYS284UnhvdzNCMzh3Vzd2d2poL1hhdzRtNkRsY0lEOEhvM3ViTjFuOU9yOWdvaTkKLUtnM05ZdHJJV2FjNW5qeXdGemYxN1RJbHhtYkhnM3dGOThjMGJLUkluQkdaeFZjRXRiY2RSaU0wWlNzdDRJQW0KLXhpN3ZFd0hIeW83ZDNjQkpvSXRKLzFrRUxxSG13Rm9XWmoyd2xYQ1ZFSFVVNXBGZks1V1k3dXE1UDlGUUZCbUkKLWV0MEllQ0NkeXNaeVJtUzhZNkJZNWNXdjJ1OW1jY0l2dmF6UWV2OEgzVzhoUS9MUzQxOHlZZW5xZDhDQXV2Y3QKLU4wdFRwVmhWK2pYeFB3VjErRjI5a3BrYnVybkhyYkROK1pVSVZhQWRlYS95Tk1DK2Jjb0V5cG5wVDZEMW0yaWcKLW91VjdqZWNKU094aGFEaDRoMUpjY1I2UHUyRE9XVERwbjZweFVyQ0lvNCsybFZiTFhPZURTOENsaEZmNVZ6WDAKLUQrNVpPQWRtL0xTUUlPQlhCdHFPSjJxREJKSU5aZ3BRbFJEdm84d0RIY2hzbERDaFROS2R2empnci9oeGRQZUUKLXRBZjMzbFhSMFRncVgydmh3YnBqcU1YMlppKzdWTDh5bGNqV0lUZGRlcmlORHVlRHB5N1VONDVmKzBEVmhOZlQKLUpJbGV1cU5sMDl0TDM0dW51Z3BNK1FTemdKMG9kSHBaMVZYa3I3emdTRk9ZYXU2L2RybGV4UzYxS1hzcWs2eDAKLXJzK245c3NnVnFTM0hDbmUwbDhJNFZPZWp1dEJMQVZHT1hvejdFQzlQdFMraVlhdmV0bkVjcWY0U0JQSGlrcm4KLWo2N3gvd3o3amxFc1NDeVlBOFNmUEpZMXdjS2dmS2FTVSt3Mlh4QW81Yk1CamIzUWlCWVJTdmI2N3ErRHRPOEsKLWhVblpNcWRidnpGSXlYZlA0LzVXR2hCZTdobzBkUXJ0VlQrUGNDeGtuTU1RK2t5UXArZitqYmRkTEN2Y0tRRmEKLURsdnc0WHBNUjRFZTJ1a2thV3BYQWM2RVMzMDFOblhvQXdsdktBa1RoZlJESHdHY2tHZmlFSXVuRVpONWwxVEsKLTBYMXRwMjFnVVpZRStvN1NaTkk5OFNoMkNqeElRU0tkQTIxMmhJM0ErMm1Pd3FCTm9aY29EQnFydmQyY0NvTlIKLXhEQTY1ZVY4bDVIckRBdE1ISHQ1d1RIemNmTWlrMUNUSHdMMC9POGl6UUgrZlRIS3c4eFIrVkVvR2JiUVJrQVkKLVBKek12ZWhrVmtjN2U0SzIyblhBczM4TEFSVVcwRDc3cHBSNzhWVjJkL0Q1RkNJWHJEbjU4cGk0UmpqblFPTzQKLXlvR3Y0c25MaG5NcThiWVE1RW45NDAzY2JNQ0pCWXA0Z3ZDMDl4ZU5Oa0w2RUtvQmpwdXBTTXJaTm4xOVZzck8KLVZrQUNqaWZpdHR3MDgvZzVuY3VBQU85OFlIUUttTlBUTTZweTcwN2RNczRMNWpUT2NMSENxbytmbytXbng5TngKLXY3Sm1XTnVGd2ZHK2dJQklZSUttVzBvbStwY3hmWU1zcnk4YnlJVUdOajVTbmFHdGw1a0xENjdMcitMTEp3QkoKLVROYkdkOGF1QlZ0cm9JamRHVm52d3RTMW9NNmVOWG9nTCsrc0Q3TkJZNUdkSnZPTVZQOVgwVmp5ZkhkK2J5akwKLVNmVEFKcTk4NmRTTys1MjYybVJZM2ZMc0tDZVEvcXVJdnhHc0oyc2RSb1RGWHlLRlV1NWV0dU9IKzQwWWhpdngKLVNueVVkK21WSDNNRjJzV3B1QlJFM055ODdtbUU4Q3pGQmgrcERkVnBkdmIxSTM4N3d3aHBjU2ZXLzZpbGExNlIKLTFOU3ZBRndYTWVaa3hwWlo2aG4xQXZ5YzFWUWkwZklDaktDUjBXWVk3K0ZsM1V2OXVYem56dXY5Q09IZTJubXUKLUdpb20wVFNzT2hOZU1xME45QWJuVUVQQWhoSUVzYU1TWkFPT0RzcnZ0YlJpakNjckNrWTMxRUkwTzJwVDBWZ2cKLS0tLS0tRU5EIFJTQSBQUklWQVRFIEtFWS0tLS0tCmRpZmYgLS1naXQgYS90ZXN0cy9kYXRhX2ZpbGVzL3JzYV9wa2NzMV8yMDQ4X2FlczE5Mi5wZW0gYi90ZXN0cy9kYXRhX2ZpbGVzL3JzYV9wa2NzMV8yMDQ4X2FlczE5Mi5wZW0KZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGE5NTg1YmYuLjAwMDAwMDAKLS0tIGEvdGVzdHMvZGF0YV9maWxlcy9yc2FfcGtjczFfMjA0OF9hZXMxOTIucGVtCisrKyAvZGV2L251bGwKQEAgLTEsMzAgKzAsMCBAQAotLS0tLS1CRUdJTiBSU0EgUFJJVkFURSBLRVktLS0tLQotUHJvYy1UeXBlOiA0LEVOQ1JZUFRFRAotREVLLUluZm86IEFFUy0xOTItQ0JDLDkyNTM0NDZEMENGRkZBMEFBNTBDMjUxRjEyOUU2MTQ4Ci0KLUNydEVKc3lNNzJ4MHpxRm5TM3FHcVRGOEp0YVVnS2U3RWtCUm9EdDVpRW93UFpGalBNNlFJTEVzQlFMQWNHNEoKLVJLaTNNeTFTMm5Cd2VScEV2VFlaSEh6SFhzTzRVeVRDTmZlSURsN0YxbEo0bE8rU0Iva0JrakFXVVRjZFQraC8KLXg1RjZGK2RaRE1LZ1l2RGp2dlpmUXlsK3gzYURkMHkyWnFXUVdKRXZxSC91R1FLOTIxZDdzZERGY2x3RFZyVVQKLVlXakY5MUtOenljUmFPdlRIalg5WC9iVzRVWlppZjlLVFpTS1NyNzF6T1gxNllIVTdhSVdKSCtPUEQvRFN5bGYKLWRiaFpBVndSQmxDc1V4Y2trUmVnN3UxM0Q5M2psT2xnUDB1ZnZwREFlUjF5K2p1bUxPZVdkZGlNQnRSdEZVUGoKLUlmUzJSUGN5UDhOUW52MDl0cnUrcmE2S3FSSm5UNlNLUkdTMy8rY2dYR0lpcndOejBQYllZTjBCQ0lPaDEyQ28KLXNLN2d6Q2JWcmJMTExTTHVFTnNDNE5laWhLNFdCZTBOcVpEVTlCTXFaL2FyZGp3aGlUMkluTStoWkMrSGJsdFYKLTRoMmsvV2UyTFNQM3JBVTlhN3Y2dmU3VTRPSTFrRkVHbitzTlB1RGIwM0M3SWtJQTNUaEFTaDNnUHExbktzN08KLXVXUTZTSU5uWmlQWER2bHFaaVFIekZpcEY0T0JSUnh2bFl5bHk3SUJkYklmdzQ2Y1Q0ZG5RaDl1QnFTYWRWcTcKLWRVZjI1b3VGUDZ1dm5tYVo5Z0VXdnBhNXlFYWZiNCt4NGlvNENMYkhQcC9wUElnT0pLSXYyT2xoNWJpTjhJaE0KLUJkTzBzdXJyK0JIRm9nampmaDdwNDd5Rk54M040RSt3Yzl3bUVBek5nV2lqcXEvYnR1Nkd4WWtCbHRTd2JoNFgKLThTU3dmV3JSeG1ZOStuNHpJeWVoRkovUTRWQ3NWVHoybWV5QWMxaEN5aTIxWFdtOHVCU0E1NURIbUdYcnJ4d2gKLWo0VlFCem42cVlzV0pQanZCZndsdXEwT09LamZuaWFvYThRaUgzK0V2bWp5ZnM0d1dhU0RYT2R4QVpGdkE4SkcKLW9xaXVGUHVRd21zRkx4clZzTDlVTVBqOFUrK3pIYWhxT1d6Q0Z6cmQzTGxVckVBRTZOUnJ6TG1CNVJQY2RBQ00KLWNnb0VnRlJSNmw4MVpXT0MrYU0rdkR5YzF1MTVpT3JZaGJ0Z2ZlZVVtajc1bkpRM1RMWERSditCcnlSdFAyV2QKLWtJNmxOVUw5TThRenFZZkpxZkt6SjltS0VHYTVpdURIMVJjV3I3Y092OHhadHErWnJ6STNCdldNZVlzM0NUcGcKLVBGZ0tHZzN1V3ZGNnV3cTZNUUpJWFU1SzlBWnRaRTMzb0gwQ1F0RGpTVVZkckZ5V2dObURnTUdnTVpsQ2V5bkMKLXkvODIvcUNPM3hpRlVvSzUzc2g3UXY5UWEweHRJZVdzUnJaeXV0eXhRUXY5THE1eHVpT25xTDI5VEwrR1ZQSm0KLS93enRqMkVsc3hxUE1nbkRISkhqaXhCQkM5UE9YM3lIY2lEQWl1WEl1a3ozdTZic1BoQmZaS3daNkloc0tUVnMKLVIxWE1hZHg4ZzRrSGl2MUduYkswL2psWkRDK25lMUM1eUpnNUYwbjNYOWx4MEtKMHRsTmUyTjIvbVdlVmQwRXUKLW1JUXE5ZkxZVHJPZ3VFNmJTU3A2c016bXRwbTAwRWYzR0hTWHNmM2NXVk9GUk1FV0dMSmtsRG9QZ1ByL3JTa2UKLVF3TGIwVS9pbi9OT3FtTzFnZmw5eTcwWE0yekpERERQclNOK1NEZjd6RXU5WTdSNkttSHNUNHdiY0MvTG5TYk0KLS9UT29kZ1dPQnRpNGg5RXliSGM1dWRTTU1TeVF4QmVkQWg3STBPa0N5QkRnWFh5UXYyZzBhazNFZ01NbGFVSFYKLThHdGY2eTJnNEt3aDVEUHBKSklKL2t4Z3NpY082WGJTR09tL1lhN2k2N01CYUczVEJaNzRCNFQvdXJFWVljMlgKLVgycDgrbjNSR1hHNkJLT1FjWFIxOTVHV3d3anh5K0hJNmh6WEdPNDFRN21yczFtT3NVdms2NlZYWUZGTHBFY0sKLS0tLS0tRU5EIFJTQSBQUklWQVRFIEtFWS0tLS0tCmRpZmYgLS1naXQgYS90ZXN0cy9kYXRhX2ZpbGVzL3JzYV9wa2NzMV8yMDQ4X2FlczI1Ni5wZW0gYi90ZXN0cy9kYXRhX2ZpbGVzL3JzYV9wa2NzMV8yMDQ4X2FlczI1Ni5wZW0KZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDJlMzk2ZTEuLjAwMDAwMDAKLS0tIGEvdGVzdHMvZGF0YV9maWxlcy9yc2FfcGtjczFfMjA0OF9hZXMyNTYucGVtCisrKyAvZGV2L251bGwKQEAgLTEsMzAgKzAsMCBAQAotLS0tLS1CRUdJTiBSU0EgUFJJVkFURSBLRVktLS0tLQotUHJvYy1UeXBlOiA0LEVOQ1JZUFRFRAotREVLLUluZm86IEFFUy0yNTYtQ0JDLDQ0ODA0RjQwOERBNjlBMzlCMERGNkI4RTg0RjRGNjYzCi0KLXpFSVUrVklvWlFJZmpmNTVuN04yc0N6N1FPT1piVmR2RWFjR25qT0VoNk5vWjQxUjRGK2JpbzVIdGhWY3E4cW8KLWh5S1VjWmFQbTMrMkFjZUwveGZkeDAwcHE1MkdxWVZsNDFNU0RUaUt3Q0JFOHVsQ2lIbWg5Yk1aSFBUb0F5c0MKLXNRbFhXRFAxRkljbUlMaysvT25vclBMcHNveDJJczhDRUxnVmZrZDlqL3l0Q01BMFRQVkVxeHFKenJtd3A3NnAKLXZQMk1XUzY1TUlvREZuTEhjYWJIZFpaUWxUUDVEZFJqM0FsTmZIcVVNSUd5Z3pzMHZFbXBIakh0dE9GVzltTUYKLUhJUTJ4K1N6bnJhZ2c5RXhqVmdXNEJnVEQ1U3JYS0FFRFVjTXY2NHc2VkNFOFRveDFRYVdiS29XS0VQTUZCbloKLUhIN3VWUUpucHRGRmdKN2NLZDZ4dStUeW5FTWU0WDZpUjVHQXFQSXFkMXJoaldGeGtRYjd6Q1V5OVB1a0ZIbEgKLXVaM2tTTFZHVjJGREZXTjBIeTFSMHJmckVGT1hjMDdkd2c1bHA2QVhHN056aUpvTUNoU1MyaXBBYlhvMnVFM0cKLVBkSXc2bkFSL2FieVpxdHdseVpEMWpPMlI4V0lYWWlHVWVlWGhDMEM3T083M0o3SVpuWm94NmJiVmVtRnladzEKLUFLZ0RHanVhRWJCQzJqQkV0M1RFNS9BYWVmZWYrL25tN01FTkY5QkpsUEY0NjVIMVpmRmJFM1BSZisyZVZQZjIKLVEvZHNmeEtGRytVaTg2cWNYakJqZXg1QnZDMmtmTXFYdW1kb1RsRXgyNEZHRkNSVUhCNWRtbldSVWVqZ2xKOVkKLVFXZm9sTDZjY3JlM0xQWURTbUdBbkF6ZlNCOHlDcXR2c3ZUOTJOREZzU3NPNktZQnk2Z3JobnZ2MGllVmNVaCsKLWlEUWE1ZjgwZkI3dWdpdGxpT1BQQnpXanQ1UDlGREpKN0h0MkZwYm9yMElnL0pLbmd5VGZUUlZqVGgxNVBFTWMKLWtZSEZGb2VUOXI1dy80d0FCc2g2L1JFbnVpYWhjSmxjVWFkTjhqcy96clBQWEFvQWpaR2ZwdmluMHV2NmhhQkwKLVFoOU9ITFN3LzYxSjJFUDdKeDFJTDFUUEJDQlNzdU5iNFBMVDRlM2txcTZHVkpOUkhDTVJwTjM1eXRacjRwcWoKLWxrRWdsMXVWVmVPZ0pZV3I4ak1EV3JDaDlpaDZ4QkN4R0NiN1NTVW1lUlU3RlVKK3liQmJ2ZnNuTVduMVRKWlgKLUJlZTJQVGFjNkprWE5kRGdNL1BlK0Ivd0NGUjNjbGcwcHRtcjEzaG1McW1rYkNNeGtwQ1ZDTSt2UEEwMUdOZ2MKLU1qWUl4VE54QjQ3MHRLdmEzaldxQzg2ZmZzdnZtWmI5ZVRFb2cvY2ZDQUJzY1gzWTJ1ZllsNzF0NDl0SU9zOFgKLTVBWEU2R2RKRENxSmh5RTlwRGt0MnByeGVvRFNoN3RjRG54amI2SmZBaHZtTk9Scmp2MWhJOW1tQytJVDhGLy8KLVFycXhJeEJqZ0tzemtGZUc3ZFM1TUhvMTZGQ3Nhd0NKeWw4N0R5cSs1MUtUeXFlcXNYQnZPRHNOVDdGbnJCbWcKLUhobzk2cEVKUTR5MFlxUC9hWE5vODlmVmZZTTNoYmRVUzlYdE42eGg0TjR2WEk2c05WUzlOUXpmWlRjcnRHQU0KLUg2SUUvQUVZcDRodEtlRlVNK1FRc1BaSS9FY2dMNWU1R1A3QkE3eHJ4NUw0VDk0a0hJano2OWlLU2Qxek5LVDYKLUtoT1dOc1d6SFpBQk9ucFlRUHZzampEZUlHOS91MHJ5WFlHdEg1ZHdYL3ozVnZJejJtUTB3MTRPSXcyS3pWWXUKLUtHVXBHWFJ2U3grbzdRWXVsVmgxUTRCckEwM2JTYUt0bVluQ3pwYUtLc2xDQlh4YlFsVEl2TDJobGllbkE2M1QKLVY5bDllZHNKQ3R6RWxTZkp0ZXFjMnVoNW9WRGtHa2dVa2ZtclkxYi84UkhLS2JqZUVLSE9FWkIyWnhNVFQzbWsKLVJHeDZIQktvTFNHNWpDNFRqalVjQUlZME5BbUpSTHNhYnJCVERMQlVxeG5NWnJvRjc1SWQ5S2FaSFNhNzR4K1oKLS0tLS0tRU5EIFJTQSBQUklWQVRFIEtFWS0tLS0tCmRpZmYgLS1naXQgYS90ZXN0cy9kYXRhX2ZpbGVzL3JzYV9wa2NzMV8yMDQ4X2NsZWFyLmRlciBiL3Rlc3RzL2RhdGFfZmlsZXMvcnNhX3BrY3MxXzIwNDhfY2xlYXIuZGVyCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2NjcwNTFiLi4wMDAwMDAwCi0tLSBhL3Rlc3RzL2RhdGFfZmlsZXMvcnNhX3BrY3MxXzIwNDhfY2xlYXIuZGVyCisrKyAvZGV2L251bGwKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvdGVzdHMvZGF0YV9maWxlcy9yc2FfcGtjczFfMjA0OF9jbGVhci5wZW0gYi90ZXN0cy9kYXRhX2ZpbGVzL3JzYV9wa2NzMV8yMDQ4X2NsZWFyLnBlbQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZDk0NzYzNC4uMDAwMDAwMAotLS0gYS90ZXN0cy9kYXRhX2ZpbGVzL3JzYV9wa2NzMV8yMDQ4X2NsZWFyLnBlbQorKysgL2Rldi9udWxsCkBAIC0xLDI3ICswLDAgQEAKLS0tLS0tQkVHSU4gUlNBIFBSSVZBVEUgS0VZLS0tLS0KLU1JSUVwQUlCQUFLQ0FRRUFxRlZuK2JLZ0hEVEdGWTZRVTI1K0hsRVA3cHBEUkMzMjBoTlBzOTFwcmk0VlpyakwKLWhPRDQvTjdzQW9XVFppSU9HQ281cEorT3p0RzdHQTJCNXRDOS9jbWRTTjhVQVhSOFlPNDkrOFpxTjRnOU94NnEKLTkxRTQyUnE1QTlhQ01rcjd3bTVZbTNjSzlkWkdYSFZhNFFzUk9kbm9hSUtwdTNVYmJqWU9ybVFTWFh6RWtUaVgKLXdNVElzWHo4U2NsYVJZTmhIdG52NkNLQUltMXNUUDRhM0d5R2VDekJXNDB6a25OY2dUcUhvNkozRkx3MUFFTlkKLWlhUUVlWHFUT3hxM01GV20wSFFGb0pDNElORDU0UmlBUkNvNytxSmUrYXFNR1B3SUl6UUVYUklRVlZjRzNsdlUKLThsVXlUUHBlZ1liMk80emRSckNFN0dDcEJCZTEzN05tSmNaTXRRSURBUUFCQW9JQkFCbDhKS3UzRVdwenl2R0UKLWpmRXpyMEJqd1dlOFR5YkpWcTdqWVpPM2w4SlpFOEJqaGR4dU93UDlzL21GdzVVWTNzMWx4eWhYUjhXa0Z4RkQKLUtrR0pwTm9CWmlDY05Xa3ErNUdwUUJVWUt3aVJSY1BubHJhdXcwNkxMeXVYbEVxTTg2U3lGQlFsWjdGa2FXNmkKLURjbzRaTGsvZG1Jc05nbzlacE8rOTJZTG5JUXVtcTVuQVk0TXc2Q1ZyYTU0a29EbUxYb3JKemlkQW8ybjAwNTkKLUswaFVVTWdoNG8xQkVuNUkrWVBaT2ttQVNzTlVoNnpibTI2dHlhaUJuVTQ3dWVZRS8vK1JQQ1RQVEk0ZVBCRzUKLThuR3VSR2ViR3BkT205T08zSUdncHM4MG1BRG5WVUkzUVRqY3dRbFkxcEVlYVE2Rk1mNldwZndGU3pzc0Q2V1MKLWxmRW9WQmtDZ1lFQTB2UkNMT3ZiaGlrZmFLQ25Ba2FCWWxobmExQkkzMmdQYTQrYndDS3VwYUkyS2wzdVJoUFQKLUpCK0krZnpXWGpQWkRxNEpzdVRjSENwUDJFcGZCaTNsdFhtam1tSTc0MkQ0aDIwQ3Y5bFBXSXRJQ24xMUhIY1EKLWFWNDBUZDJMbzk2TjhmU3p3ZGdyMGNIOGZWdlRFV2FaaVVNWnBhZnlwTkllY2Y3VU1NaTdvcE1DZ1lFQXpFZFAKLWUvenlUSFVJVXBZSTRPbEQvQyttQ0hHT0duRHRWRzVSSUFQTk9pWHVEc2hHQmV0UWYrR21DdDg4UmpINUd6NFIKLUx1WWhPUUlLT2J0TVJ6c2dEOFVieEJvUnRtd1RBdGFYL2UvclppVzZrRWdwbHdBN1pWLzdvQURPQkVxaGY1WXoKLXVibEF0RDFWUzl6RFhyNlpvVGVKVm1aMFZNbEtYUGQzd2duWitKY0NnWUJnWVFSUzdiY3dCbDI1T1p6VDUwNTUKLWxoWTU2MFkvKzVULytXNlpTNzhySVg5SnYveDZ1OWY5YXdMejQ5WTAxODlWYTZJMnYyVG80VlAxWjVVZWg1MnAKLVdkZXJVekkxWWpwcDlSNEtkTWhSbGVEbUdnZUZaOGh4dTM1K0RMZ2R1REoxMXV6QnBYZnZyNGNoNXUvNXhUeGsKLWYrbVp5NitLS2cySzIzZ3FpYXRnVFFLQmdRQ1cyQW1mbXZjbzhqckZFVGxaSzZjaUwrVkEwdW1HS09GM3VVWjYKLWg1UWlYaVBlRXBGeWlZTVdDNEJiQXVFMVRHMlFhbEt4K1FtTFdUQkgxVURNVUtLcVFuandZL2UwWnpYYW9LLzMKLXVoUnZoMml1WmpzZjMvSDhOOVpOSG9zQ3JFRjVQMmJPdkRkRllRejlTZldTbnRnL0xnMWlHYUhKZ2lKQmFCT3MKLTJ5MXozUUtCZ1FERjFGZC9CcVNDS0EzV00wKzNCZjdNdTRsNDBDS216akZwVkdBTFRRSXNjZkU0a1VpeW1YbmEKLURMV2VhckFHZGlHcFdMRDlXcTYvaEJDK0xMUVhRMHpja0lUejNMMkxoNUlKQm95c09jMlIrTjJCSGRTdlZsdGkKLXNGN0liY01ic3pFZjhydHQyK1pvc0Fwd291TGpxdGIvLzE1cjhDZktpVUtEUllOUDNPQk4yQT09Ci0tLS0tLUVORCBSU0EgUFJJVkFURSBLRVktLS0tLQpkaWZmIC0tZ2l0IGEvdGVzdHMvZGF0YV9maWxlcy9yc2FfcGtjczFfMjA0OF9kZXMucGVtIGIvdGVzdHMvZGF0YV9maWxlcy9yc2FfcGtjczFfMjA0OF9kZXMucGVtCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjMjk2ODMzLi4wMDAwMDAwCi0tLSBhL3Rlc3RzL2RhdGFfZmlsZXMvcnNhX3BrY3MxXzIwNDhfZGVzLnBlbQorKysgL2Rldi9udWxsCkBAIC0xLDMwICswLDAgQEAKLS0tLS0tQkVHSU4gUlNBIFBSSVZBVEUgS0VZLS0tLS0KLVByb2MtVHlwZTogNCxFTkNSWVBURUQKLURFSy1JbmZvOiBERVMtQ0JDLEEyMUVEMjcyMUM3MTIyNkYKLQotS0MvMk1lWGRCcFUwTEN6azFxaDJaa040Zi9HTk1SMmlxeVVZWXFHZGNYR2UydGl3MWdlMjFjSDkrVFByd1g5bgotb0hGUExHc3RXbUNaRHBwNm9neURMUjVZRDRwY0NZclZhcUt0SFZhTm5rdUdqMlNoTWVmOHFsN2MreGNYcFdESAotcHR5YTA3MVdDeVFPN3lpZlVNajBLelNnTjdldkRqbjdtOTRzYm1CUTdUMGhXaG1LczlXaUJESHFFRzR6RHNmQwotU3RtRHRhWG9JTG1tcnVDclZndkdXQWxDVGZ5ZTRtQmFxWHZGak5sNHhBVExuL05rc2swVGdtRmlqclJQMHlubQotK0oyc2hnSkd5SHZ3U2d3aVg3YmtPcWhKckVacUk5di9vYjJzbGFHOUtvZDVOVVhpSEt4blpqZHFjSDZQQzRpOQotWkNkSlRMbE56QkVHbTRQcTV3NWtxbTVPeEQ5U2NUZnlZS3llWGJXcGtDSm1VOEhSa1htMG0zRFA4alJvRjZJbAotUXdNQ1k1QU5SWjgxc0V6UVFhNm9iZGFYZWlvTWFEMStDcHZNVkJDc3U5RVhWQW1UaUg1SndqK3hidE1Yd2p6MQotTE5JR0lsWmc4WXV0TEJmbk14bno5UkZiejErUEJ3SnBLSURrSzJTcCtUd2gvM2hiRWZzeE5yTWw1OXVyRHlsbAotOWlPL3U0NXNZNndWWG9tdUhpUHJjbEMzMlM4UVc2MWhHQjQ0YUd3ZFlURGZwVFE0aFJvMDN4dUUzbDZ4M0dGWgotVzhDUFBSZUlzcXY2bThiVDJUOFRIZ0dEWW1USnMvTE9RRmhaYWNUYm5IaTVMd1ZqTkt5Zi96cTNUWEJvOHNUaAotTzJtcG10MFF1N1ZXT2xFcW13bUFHZHpneG11UG5KdGJLcFBoQVFicVRvMzV1c1JkN0VqV2tnVFJ6VEVkN3lsZQotdDV5bFVYUW9BMURGTytIK1ZQbXp6T280NDNCTGhJTkpEOG5oSEtWZkdqM1ZWcFdGblpnREFMaEZCM3BDK2xwbgotNUVTTGZEMXduTVNsU1VtS0NZYk9GNXpnbWFzVEFBT2kwZ2FGS1c3RmVoYkFQYkRoYTVPeXJtWldPNi9VU0FxdAotM1Nyb2JkSFg4WGlFanJxODNDV2xUUERMOThnTC9MTzJsdjZsV29POUFBNnQzMlp1cjNvUzZwakZFWVRadHpUMgotc3p0VXBHUWJWNU9TaDdUU1NvS1JVSEtsLzBZcUJlTy9UQlVCcE0rSCtyVHRrc2RuVUc5dSt3S0Y3clpvZE10UwotVHNuSWI0b25wbW1rMkdaYzVZa1YzNlAya0Rsc2NlWkhSUHRlN1ZpNXpFWnZlbEhVT21pYW1HdHBYV011Zzl1bQotbG5SczZvcnlERmZmb0VaM2dIRGV0RTBiRzZmK3BSdHBudk1KOFZXT0ZYRG51ZWkyUnY0M0hMdGY1cDAyK0VMcQotbTAvSHR2akZHRHZybzdrdFlGTm9ncFZnQWZPd2FkQkFyU2VsbUg3MUdKYS80S3ZVY002QW54K3lKbTJhZHFFNgotNVVnbThKVGFKVHhCVEhxdjhkRUtzeUROLzVNNFFjQkMxQWZUeDNSOFhHanFZZUFwSGQwZGFzN3c4RmREWnROSgotTUs3T3FhMkhFcTNDaGFWOE9haXlIdWwzNGdSK050dHNrY1FrZ1JmSlgrTEoyajNJeFZBcW1VZGlkOExGSkwyOAotUnB4L3BPTmNHSkhqZHViYlpaNjdDbGRiL25VczBTVCtIUStCSmJZWk5xVGVEREJTQ0lzeWUrTVVLbnFCSU9sLwotMzB6RVV6NVdNZTJ3K2M1Qld3NjVhVkw3RjZndEthbytXOTNDUTR5WkdiTlJmaWdsWDE5M0JRWXdSMSs3UUFXVAotNzhqZjVXeVl6RmozVlU4aXdaL1BRM25qQ1I5RnVtbTc1eHRJbEFoSHFsaUtnOEMzSmZiOHVadlNqdm50a2pXbgota3Nnc0xSRisvUDFQZHVsYVJZTmNaQW9ZS1R6OXZZcFZhV2xTeU9tM0huS3BsMndTb0pYcnAvY0h6ZDM3RnlxVwotejhDZVh0TVN2aW8yd1htYWRoQkVFb2M4UVNZNXMzL0o2akRKYVdVeGtRTlBkV1prRG1WZ0RDMERVbGZFZFNxaAotLS0tLS1FTkQgUlNBIFBSSVZBVEUgS0VZLS0tLS0KZGlmZiAtLWdpdCBhL3Rlc3RzL2RhdGFfZmlsZXMvcnNhX3BrY3MxXzIwNDhfcHVibGljLmRlciBiL3Rlc3RzL2RhdGFfZmlsZXMvcnNhX3BrY3MxXzIwNDhfcHVibGljLmRlcgpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYjY4NjUxNC4uMDAwMDAwMAotLS0gYS90ZXN0cy9kYXRhX2ZpbGVzL3JzYV9wa2NzMV8yMDQ4X3B1YmxpYy5kZXIKKysrIC9kZXYvbnVsbApCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS90ZXN0cy9kYXRhX2ZpbGVzL3JzYV9wa2NzMV8yMDQ4X3B1YmxpYy5wZW0gYi90ZXN0cy9kYXRhX2ZpbGVzL3JzYV9wa2NzMV8yMDQ4X3B1YmxpYy5wZW0KZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDkwNDBjYjAuLjAwMDAwMDAKLS0tIGEvdGVzdHMvZGF0YV9maWxlcy9yc2FfcGtjczFfMjA0OF9wdWJsaWMucGVtCisrKyAvZGV2L251bGwKQEAgLTEsOCArMCwwIEBACi0tLS0tLUJFR0lOIFJTQSBQVUJMSUMgS0VZLS0tLS0KLU1JSUJDZ0tDQVFFQTJ4eC9MZ3ZOdjg3UmRSQ2dvcmpPZmFyaUJlQjYyRVJqajdXOXdMQVp1VGU0R1VvTzhWMTAKLWdHZEdod2JlVzM4R0E3M0JqVjRIRmRSYjlOemx6ejM1d1JFc3JtcTVpcjBkWjJZWDZrNjkyeFdhZ29mazhIakQKLW80V0hzUDJmcVpsZjR6UHN6T29MdFdGZThVbCtQNk10NmdFTXpFS2FkcHZFMERmVHNSY0JZUUVXV1g0Y0Y4TlQKLS9kRnl5MHhnRmRwOTR1cXRVTytPNG92VWFuZFYxbkRaYTd2eDdqa0VPS085NHRIZ1ptdmluRWVaNlNqbXR2d3UKLXltZERoT2pWZzlhZG1Hc0JQb0hjUEhySytmT2M5OVlvR3lkNGZNUFExV09uZ1RTSnJTVnF2ZkxxN2ZwWC9PVTAKLXhzRVBjUzNTQ0JBYnJVUkI0UDU1b0dPVGlyRmQ2YkR1YndJREFRQUIKLS0tLS0tRU5EIFJTQSBQVUJMSUMgS0VZLS0tLS0KZGlmZiAtLWdpdCBhL3Rlc3RzL2RhdGFfZmlsZXMvcnNhX3BrY3MxXzQwOTZfM2Rlcy5wZW0gYi90ZXN0cy9kYXRhX2ZpbGVzL3JzYV9wa2NzMV80MDk2XzNkZXMucGVtCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2ZGU1OGZiLi4wMDAwMDAwCi0tLSBhL3Rlc3RzL2RhdGFfZmlsZXMvcnNhX3BrY3MxXzQwOTZfM2Rlcy5wZW0KKysrIC9kZXYvbnVsbApAQCAtMSw1NCArMCwwIEBACi0tLS0tLUJFR0lOIFJTQSBQUklWQVRFIEtFWS0tLS0tCi1Qcm9jLVR5cGU6IDQsRU5DUllQVEVECi1ERUstSW5mbzogREVTLUVERTMtQ0JDLDA4QTJFRTRBNjI3QjkyMTkKLQotQlpYTHVLWXVPdXBlVVpHSlBJSWlHZDFkRlhhQmlGTm1jemt3akFEUWVRUGI1cnpmODluMmQ3TjE0NDJZa0o1cQotbkl2eUhvZXppMmVyNGJoeFVYNlRvZnRHZGQ5WC9XZUFidVczUWZ6bExjY2Y2OVJnTHBLaldhc0tSbHdzMjdXRQotaWdodVJzZ1BLK1VPMkN6UjFQU0JpMk9JUmRBc1VGaFV4NElOMW9TTVBjeDVlUjNqZ2xIK2pyRnd2N29PY2xtegotS0JXeEFLQmd1Vk9GcFlmYmp5NzdPYTFzYWluVkZJWk1lWE9xa09TZ2dmWCtrbUhnOVZrK0Fna0NBaE03aXk1bQotdS8ydVlqTDFGcDNPVXVNY25qV0czR0F1cktBZnF1V2NpZkYzR1N6SDZsTHlKbGxDL1Juc1V3QjAzNEo1UEhCMAotS3JmSGlwSnlJcUZTaitsT2l6RHRlQTY1RW9UNTc2KzRWT3B0czBhQ2M1c1plb3VRUzI4bnlPVktiT3RhQVhKTAotc2VRYlIyNlJvQXc2bmdEOEpaQUZ3NFFyaGVrS1JQS3prVHE4czVFOFFwbFcvUStHMlA0Z21uN1dlS0RRR0hXKwotOEZKdEJkM2ttekl5ZGFNOFRrZGdaT0JhTlBBdmtSZEpmUGNjZTF4ZGhDT1ZmSStqTTJaclVqR05qR2xWQ2hMdgotUDljS3dQMUtnelVWYi9qWUVib0Q4ZCtpYTN4d09mQjJzZk5TN21Eb1RXZUp6bGU3emwzTnAySVZOcE5ENnpweQotZVA0c1RqU01ESk5HWkkzNGFHa0dRRUJDem5YL3NzQ1QwMENWTFM0dGlrUVF2SEdHYXNIVnFuMTJnVG4rYzR5bAotcmFudmZKNzJoOERJcEhlbklRZHZ6UmhUSEcxd3FJbjFTcExPeHhSelVDdEdVdVNXbWJUazJIeHhrOHhaVW9OdQotbjluOW1YdjREZWNHT21tYUEyekhxOU4vbG1Qdjlla1JuZU15cEQ1c1JqbzlPVUpWUGVOa2lIQ3pwOHVkK05yNAotUGNLZVpTc2g5U0JiR2NnUVhyR2VkbnRqdWFsWXE4L3lvRTBjTEtPdWQzdXE5UEE3Z3RSNnUzQStuVDFORk11RAotaG5zbmxEajVwK2sxcldEdDRHbllEU2pScmJGTVozSytzL09hSjArVWw3V1hCdXArMFg0OHpOWHYrOEZQeHN4cgotNHpNRnBMdWh4TEFJNklKbHFqTThUUWhSbVA3OW9HeG9sRi9yTnlPUiszSytIRmpFRmFCVy9DbTZXWlZLWVY2TgotNmtZNEhCRnNZRmhkZlBsSXBLWDJGZmRIMFdUM3l6SEx1TUJzYjFDYzN1OERTWVRoZy92eGxkd2oxTFpuVFVKTAotYWgvcjk0UmpPWGQySURlM0N2Z3hLOG9mVDVYZEFQWkhCS1hvc25NVEJ4MEhaL3Byd0ZYdDRZdnJ3YlN4SHdUNgotRWtrK3VxTVpFNzNMbjVRaDRpMWlFSDBqNkd3eXcrUGVrVnNjNWgrK0V0Lzd3SGx2RjFkditSQjFpbVF2WjA5bgotUXN0OXVONlNZaGhmSG03Q2JHcE5qTUZKR29wRWdBNzE5UW9XbnpDZWZnbnVpVUxXZDFudlVUanNtQXcrdzNEUgotV2JXVlg4OEs2MndFOWcyMnVLL0VCK3l2eVFqYk9ZRHJvVElscEwxUG5kbWo1Ujg2UTg0bTZ6Z09zSW1tbjdKcAotZmJHMUNYbFJDSWxGQ0Q4N2R4TlNjY01lVUI1Y0UvcXB4dGFBbnRZcUNoZ2NiTmRRQVR1TzJZQjc3WlF5TDlUKwotY3hDT0lYemhueGhxdmZaL0diNmtUNExqeFlGenVZMmRWSXdpR0FIdHFBU3BickI4cWhzajVTT2NHZytxZE53RAotTGNOOG5PSXo5MHU5K29kemlscjVCWlpJVS9tRkt6aFB3NCtNdjVRb2hBazRQVXg1MHl6Nk52RmlDRHdJaFB4WAotOU12VjZsMXByMkt4Nm5IMHV6cEM4SDUyNHpMMnpoWW1OaFVkUlVPQ1BBcEx2NWE1OHQ4UWtneW1GRDdaWFFtegotb1l0SXl1djBEN0Y1U2ZIY0RDdWwwc1EvY09vVlNMSVg1bGoyM00xU0xSVmVVT0NPMUhHSzF3TGFaWDdqTHpiZgotc1pVRkZXY2xTZWhveXQzWjgzTTkvbmJEcStiMVZsay8xcXJ4TzYvQVZZQm5lYjNLS1lYaVlYSVFIa0d0NkNsRgoteWVBUFJYdW54bStSL3FvWGFJRVRja255Q09IM3RlZVBMMHVDMWFENGpKRXdsRkgzSnZsU1NBM3J1QXNyQnV6UQotT3k5VlVxL1ExbEswOVNSVCtFS3ptVmh2YjNsVllrUDk5RHUxQm9JeUQ5SVVSR3l4b1Q0RmxmbjJFK3RmTjJDUwotSmYvSlFFdGY1ZUk2alNNM3hxOWZzbFFPUlNOR1dtK0diOGkxd0gvU2w4NmQ3T1pNZG1hNWZ5ZnFBNGRZQWkrVwotMms1c1BOb21aMno4a0w4dWl4UjhCdC9CZzhua0lLakxwWkl1NGNkMGdQOEJXYm1KNmF4ZndiY21QNzhRazFUcQota3dXNDlXVmc2U2M0c1czVCt6UGRWMXdHbTdEZFczS2ZKSk9WKzZpNnE0R1RmKzRJZGgwNjMxbFZDM0w0d0oydgotQzBsNlhnUi9WWlEwTzVORkdlUlUwdGRycXZjazI3QmpPa25nUnZEalRrQXBuZ2lsTHJnZ3ZJWFNlWU1rdTNxMQotMk11eWRjVUZBM25hanAvRjV2K2pUaVlJekprdVlzRjRUNDlNOE43TDBYTHV6bWhwWUs3RVU2RTZWZHNvQUJDWQotSldXemRaZGZRL2RrR0NibjFnSWJTaTkyaEcyWVE4bk9KOHdPZm0yZnluTzlpQ3UzbzZoNTlzSjR6cnBsQXlGcwotVFRkSzZ5ZDB1RG5wOWdsUG11cmNFWG1ZT0dWalZmUkNSUngzSzl0RTJRSHViN2xHZXc1MktyY0t0OUZVUGFHYwotaUQvV1FpNldkU1ZhK1l2TG9wRkJMemFhdTYwUXJ3T1JZS0JpWklPeVp5VnE0TFZXY2cxRklibmkrMU5UT3BUTwotYm83L3ltSlZBOHlQcWxjZXhiWUFVVUw5ekY5QmZTK2xFK01XeWdBODNkV1ZvZ0lwT1J1OFVzNEd0VWY5QXRxOAotUSt1eGlJSzZWMmgzS1FuMjBFM0VIRm1vUkpKN015M0dQSHh1RzgvbWN6RUFWTWhmWkpTWHFHTmlVT2djOUVJegotZUZzZm95UGlVb09rTDBXQ1hZbnQ5R0RQWCtQNUZaMnljZkxiN3BRVUNGcVkvOUxyKzBMemFFcXFWL0dMeUJSSAotU1I4ajYxZUVWNFpsSVNMQTEwZVdra3lWVkhSQTJPZUFjMmttYVZDMkg3eEJVWTdvd1lERHRsVXpLZUtMMC9hbAotZ3ZDcUU3a2Nhekhjb2lCa1FJOEl6c2xGVzJRL3BsVVJKR2t1aVVQb3UzNmFGRlRqNzdDMm9lV1Q1aFJ4YytYMwotOWZyTFNJUlFJdE1oeElSeEljY3h1djQ2bEhZR0EvZmlQTEorTCtHaXVaWkhZWDExVUlROXdYK1hCMmVOTFpGUwotaHZKeTcrdTloc1l5aTdLV1luWE0rOEk1K1JPMk5oWGZLaFB3VzlJSjFhTVdNVWgvVkVZbEdPTUpHU3I1YzZxeQotMjFxTnVLMEQ1YTZ0S1JrSHhhVWxMdlBPbHlscUdJTlJaaXVwalhJcmtiek55NXBFWXF6M3NKU3YzMUZIVW1jNQotRWJyUUpzSTFpYTFoRVk1WmdxMGVRYzNrNkhjZm1mZ0lJWjJHQjgzTjdBR3JwTVJ5SDlnNVpndXhoZGJTTWpjUgotMVpnVXh4M3NYV1BJSXdsTFRzeGw0d1k2Q3FUUUcyWk5QeWEyUFRXMlgrUXNsNzhOaExxS1VnWEhzZlFqVmlLTwotWlkvMDJGWkVPYmhJZkJwcmRxMEhJdTJzRkt0cXl6TzE0a1ZlNE1YK1pyQitkN1Ftd1BxRHNLYjlFcFVXaW1GcwotSEZQc09rSjBsYzhFWTVpK1Y1WGVjV09oUWNjakV6b3FRemZmbmxXQytFMDgvRzBNeW5nWGZ5bS9KUFJKeFl1NAotbkZZZkd6YmRlZFhsN3ZZWGlzdzJrYnJyUVcvRXRrVmZZeWhvNEcwNnRzelVjY0xHaDlha1UxaWU2ZWtEUVQybwotLS0tLS1FTkQgUlNBIFBSSVZBVEUgS0VZLS0tLS0KZGlmZiAtLWdpdCBhL3Rlc3RzL2RhdGFfZmlsZXMvcnNhX3BrY3MxXzQwOTZfYWVzMTI4LnBlbSBiL3Rlc3RzL2RhdGFfZmlsZXMvcnNhX3BrY3MxXzQwOTZfYWVzMTI4LnBlbQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYzU0YzFiZS4uMDAwMDAwMAotLS0gYS90ZXN0cy9kYXRhX2ZpbGVzL3JzYV9wa2NzMV80MDk2X2FlczEyOC5wZW0KKysrIC9kZXYvbnVsbApAQCAtMSw1NCArMCwwIEBACi0tLS0tLUJFR0lOIFJTQSBQUklWQVRFIEtFWS0tLS0tCi1Qcm9jLVR5cGU6IDQsRU5DUllQVEVECi1ERUstSW5mbzogQUVTLTEyOC1DQkMsMkRCRjYwMkEwMEQwNDRDMjc3MEQ0Q0RBMEQyNkU4RjEKLQotOTQ1TEJKclUxVnJmRXFtZ3lNU1FtdzBCdHd4eGp6ZWdudFM5aUIvNlhzVHVSYnlpT3BqMVlnaUY4b0hZaE5YbQotOFViZ3dlMFdFa3FZT3h5V3ZyQkR4RmdGZmNwSHZtck52UHNzS1c3dTJqRngrd0tLRENJQkh1WElJZm04VEoxdAotbGhhbC9UcFJBczBadTZ1YjY2VUc2V054dEtJVzhOYTc0T3lIaUJrNzRWMEdDcE5Bbk5OcFdzSjRZVytNM3dlcAotck1YbnlTbDBFSjhjYVpZQ1hWemNIUVZWeWdDRUhDdFNyK2NlaENQU0psMmplV0l3cXF5NmZpRldZRGo2czAzQwotZVR5bFN5V0ZPTWpwVG1pNTkzRGg4dndKOGJJQzRhY2kzQlAvK1RZbHZUNis5MXZvWXovWDhIdGxOTWVuL25oUAotWlJZYmZ3SC9ReTJGYUVoSEk5VnpRdTgzV29rMDdLOVRheURCa2poMkhESUwvU3VnZUxHcUJFZVZ6Vk40YU0yTwotL1FBOHdnK2dFQlRPWkgvdVhpbS84MS9wV0FhWWZYUEg3Ni9PeGpnZHJiS1F4MUNOOUdSK2g4c3RGck1uVGxRVgotQXljR1VjODNybldFSk05dC8zS3lyRE1TUHdibThsbTJucGRib2gwaVhpL09vY1h4clc5TW04T3BEMW1YRk9nMgotTG04NENDcytYN2x3aURNYkJOUlNGaWlVU3ptelg4R1dNa3doK2pqQWlUYTk4cGJjN0VLY1RsWWxrT2tPVGVWagotcmo4WGI5ZUJ6L0FmZHJWNTJYbkRCWGhObWxwZTQxY2VpdzJhUG1aMlVoZmFIYm05d1lMNzBHVHJUdmJWRy9nQwotdTh5WVQvM0JMWjZqOUJBYVMxUWxBL3NiSnZsdmMzVHFRQTd3R1VkOFJvbkcxcnFFSzM5d0JNNk05ZEhkZHJlOQotWHlDWEFhSEg0R2JYVEdGWTl4WUdjb0w2MUhGckVsNkhaOHZCT3M0MXJZUk9QWUlrV0pYRm1vREhZMWFabzFPYQotb2ZoSkcyYnZ2NmdaUWR0MmY1SktlV1NDTXBRRlNQNFBXajhaOFRYdkhIWVFtOWUzZEltVkswRTJnbzZNalZyZAotWlM2V3NKYWpscDBVQjZjZUxGWCtOWVA1WUg0dStWSkYxUFEyTTYreW5vMEJKcGpQQkZodjJwRUhMeFBDUURYZwotTDY2WmdDaVc1V1BGZm5tMlBaT0U0cXRsSzJtc0pHRHpPZXorbnZPYy9QeHYyQlZoV0toT005SnljN2MvYXQyTQotZ0dOVjNEUEdGbFJudUNkSERReTNuY2IzMGZRc2pKcVFVMlhyajVETVlEYVdjTFRqem53WE81R01mVkFRdWZkZwotRUpBWUdhNzMwZlB1ZExzVC9wREpVSWoyNEl6NFhmbmQ2aWxqNkMyU2JkbDkxSlpQMEp3RmtFdVE0M3pvOU5yOAotdk1jeit3emZrYnE5Z1hLT00zV05qYkhGWC9CZlMrL3ZNMDRDdTRtNmRoTElGRHcxc2d1STV5Q2FIT1VpdWsyRQotZ3dHSGtFMnJLbysvYWZ5bUNYWWFzL0lORnI5NDRlSWZrSy9kTXlNWkkxNkNaWnRpb3dHMVVvRnp5bk5iOW84VQotTlVNaHk4QmE1cXJidng4TGhhUWtIYmVpQloydktteWF5NVk5RllaMEppWS9KbjNuZ2llYzh6c2daRzNhczlYWQotM3F1VHM5VzhmYTBIWVROdko0bzl4WmVtYnBXTWorSExHandaOHVpU1FVRkRwNG1jd2x0Yjd0NGNuRmZ1MVg5WgotTVBQS3pIVHJFQ0FkOEExWEg2SEVtZVpoVWFNd3RMdDR2Tm0wZGFYZTRMdmdNQUhrM3BRTzFmbFZyc1J4bDNLMAotVkQ1TmhKQ0cxVVRsM09VVFYyV0w1K1dXNzZKa2RaNE1uMU44dFRweUxtUXJhaWZHOXlCaEdNeFVObDR4NWJyZgotdUFRR3pWL1UwOWVFalU4cERWWkV0ZWFMQWJGcUgweHNwOENoejlkR002cEt5MnQySC9aRnZrM2c1WU9LbzdjWAotbU1HZjF3RzhXUnlpWlR4TStYSyt0cG1Va3VQZ1JqeGR3N3JGVFR3S05HNVZtQnltSUhHUjdsd2l2N2ZMUFhvMQotMHYzZ0N6dG5LQlRmQ2RHVWpkRzh5Uk5HQUt0VDRWZFJzQ0ZlVVlsM1plaFFVWGxPM1pVNmJjVnY4REdGbVBsaQotQjU2Nmg4QlBJa1E0OU1LYnhYMkU2dWt3NWhHemlsQW9ZNFZOOHR4WEd0bmN2bTBGVVR0K2ppK3dqSURBS2paTQotRFdNbTRiTjcvTENFZnN4OGYxK1hpdnpxUVk3aGRWbnRrZVVINlI5R01tSjdsZGZSNERZVnpHbGpCMXhabVZOVgotRkQrSGloQk1WQ3R2elhMYXg1emxyZjRpdW5tU01QQlc4Y05USkNIWE51OEhieE5ubGhJUTU1Rzc3RERJbjhSQwotc2gyVURIRVdma1h1aGhDZmR4T01DVUlCVEJNQ2dLNE40cFJkeEVtaitSRktKUjF3SFkzU3lNcmNVN3llNS9ucgotbXhCRjBIWkttSG02K1Uvb0FTakhleWNVaTJzWGJ6dTYwSCtyU1FqWFZuQ3VGTXViUTdMekp6TmRkbVJjMzQ2TwotNmZOYSsyOFJVQXhkbVdPRDhjbzVON2Y4MEdBR0toNFZ3RDZIaTdLREZkWFBORmNsZXNqVEtGOFU2RS9RL2hqbQotSGtIK3VWZU9LWkkrNDFxaU54SXBxUCs3Nmg0dTY5WmdabFlWZDBxa2JSQUJMQlBONjljZ3NSNEVFY0xYOEpMRAotcndnUGFMckx5WDltdVlzRmY2STk5RERqY3FiVzRCQXU4Z2p6RTVxR1pXUW5PWEFmU2loVUJxRTJWZ1VRdHRGMQotTHcrZkVlMzRBcUpGcjNBUmNRZzhSc1pMb210UWJiYThWeFFCVk1pUGdpKzUzSFN6OUlIVEFwVFEydWt1RkI2eAotaC91eVZ0QkltTENFbUJ1NXAyWlNCeDFTV1hNOUEycGoxdGc3Q2dTNmw1RitWSUZJbmtqQm1TVnZSb29Dai9lTAota2FFWHo2NUU5NlBxMHRtUmx3K1pnNFhvM1JhVStBaDJWdC82SmU5bGpEOTB3cHNvNlFiUUJObkpNREYwMUVLdQotS0p2dnhmNjB4WEI4ai9FWnZZbS83d0RJdENSblNCRlpuT1FsSWZ6eTRidk0vVExGV04xQWdPc0l1V2pST2UrbgotRGFxNWduQ0JlVHdOd2lTa29NNVdqamxHR2wzSzF1Ym04dDFkRWJqZ0wwdFVIRXYvQStjRDk0U2txd2RQaUwrSwotdVkzcW1Xbmk0WmZ3RDdWMGw5Y0NrVXBkaG1tQ3VYNXYzeWx3bVN2WEo3MEFnNnRBQkRTTVpLNXBqMkdUVkdubwotZ2daWWNPNmVPUmI4aWFpRTVaa0ozdFJZalV0Ylh1cVRoYXJDMk9xbHdFdmxPR0Y3MlNyUUVpUzEyemdrR1luSgotWllER3ord0RBMkNDcEZYeE53TDFaWnA2QUJnSDJyZ0wzUlVxUEdyWGVmZGliMmxOdXB2cm03czY5Ly93Sm1wQwoteUg0SGV4OFk3ekE5STFjdW1JUEZBUlFJT2dOYnZuQ29wbFJZTmVYNFRtSU1ZOXVNR3RGTlJIdnJrMjRiQ2R6KwotbGVPR1BXRlByVDJTYlBiNmN0R1J3Wm1nWHE5TkxjZWE2MkVyekRIQndFdk14RlZoS0FHb1JVUjk3WVp2MnkzRgotaGtqL2tkZ1FWZzVURVFmWVdJTmtEbEdYOGtwUmN5SEtZQS9WUHp1cGdJOWc3ZHZQNjVPOUZvM3NpdkozUk04TgotUUpqMWhjR242ZGlzQ0hudzRQcmdueERrVkVMSUFPRDV4eWU1OTE5QVlqM2ovTXdJdTdrR0FOTmpKazM0VHU2UAotZ1J4YWdUS1FCNXF5Qk1zWUpsN2svRDBSVVBBOE9zUkgxWjFWbDErWlh0YXJhUVA5NU96b2luNzROUEVTS01uZgotOGxobWV0bmVJOWtnblc3ekR4WmJ6NU9uMjYvVW5YQjlGZkpGUHNIUzYwU1ZwVUZpaEZ1ZHJwU0I2Q0h4dllBbQotaE41RVVla0ZFQWdCN0xKMFRjZ2M0OU1iVmRNS2s3SDJVbW9vdmMxVGgyREJlRVQwUTF5YWJhUEczU1FGOWxQSAotLS0tLS1FTkQgUlNBIFBSSVZBVEUgS0VZLS0tLS0KZGlmZiAtLWdpdCBhL3Rlc3RzL2RhdGFfZmlsZXMvcnNhX3BrY3MxXzQwOTZfYWVzMTkyLnBlbSBiL3Rlc3RzL2RhdGFfZmlsZXMvcnNhX3BrY3MxXzQwOTZfYWVzMTkyLnBlbQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOGYyYWY1YS4uMDAwMDAwMAotLS0gYS90ZXN0cy9kYXRhX2ZpbGVzL3JzYV9wa2NzMV80MDk2X2FlczE5Mi5wZW0KKysrIC9kZXYvbnVsbApAQCAtMSw1NCArMCwwIEBACi0tLS0tLUJFR0lOIFJTQSBQUklWQVRFIEtFWS0tLS0tCi1Qcm9jLVR5cGU6IDQsRU5DUllQVEVECi1ERUstSW5mbzogQUVTLTE5Mi1DQkMsM0Y3MDIxMzg5N0QyQTUzN0EzNUE4OTFFNTY4MkUwQkUKLQotY2poWHZiZ25mZE8xS3pDZ1dGVHdCcjBnYTJid3RFaEZJV1NFMkVlRlhLNElXejQxM0w5bmZHeXg0VkdNY2I0YgotajlmMVh2SklNNTNiWjFscnFQa0RkOTBxenEzR0cxanVOZEFLVXFVU0FURlVqbzQxL0tMRS95Q0VUTUVoV0NJcgotTGRINTFOdlJHb3pVNzVTUitpM0RsWkdTZXBuMmdlRGpkQ3JDUXV3Vk9KbEczc1hpeUVLWXZCcFFESFlXaHVIOAotaXNNNlZsaDlzaWJDMVdoWXJ2c2xZNk05bDhDMFd1S0drcVpjSm1JWUMycTZ1SFRjcTFnM3Z5WjdaRXd4U1llOAotcXhHTUphOU13a213QWFUOWQvRlRMalh3ZmFnbDBXYXoxZFNCT2VndHFjVFRqYW91Z3YrZGYweTlWY3hWWWNheQotbE1oam8zd2FzVGwxazhQVzZ0TTFTRUVYQSs0UUpzR1dkUVNxaTlUcXdpcXdQY3N4QVo1eWNObUYrS3I3aDNkWQotN3lGemMxRTN4TXBIMXpSMmxPZnZ3S2srMmFXRXllSHJSRWQ2MTFGcHU0RGwwV0V0eG5UcGhzd3QrRkhobU5xRgotSjhPQW0yQ3lkK3B6a1BKT0pYZ2JhWXFNL2ZmN0RUbzlLUWQrV0piaXpPVlc5dEl3ejliZW5xM0tDdUwwTnlKSwotcjBBbDlCSTR5c2MrM2htZlBLaHJHenZQL0JhR1BUQWZFMlJrOXFhalBmeXQxdllnNld6THJ2dnlQVHVTMTRtQwotTGRiZnpsL0tCWnozRUQzZXFtVzMvdU14SVpjblJVTDBqcjdEUGtkTjVob0p5RWJ0dS9rVDRDamtlOUlyT25PUgotclZIb3dFQ05PamlBK1o1Y0lXM0hGSzRqalF3VVpLTXJaTnJONmdSYlQvWkRhNUN3Z2RtbUZHNDlVK0d3TkhtdQotY1h2Tm5hR1k4UERQdlhCRzlubUo3bURBOFAvVkZQWVFWY1BMbFRiY0EzUUw4TlVCV2k5NXRwNEZYMHRkRW91UAotK25SMDgrVXV0VW5pZkdEZ1NjQmVCdnpJMWVZUDhUYjRqYy95UURUMUwycXNrMGJZOUxOVGdvNVhNT3VTdE0vZAotSGYxSUgydng1bzRTNzFQdFVDbEo1MmRHU2JkcjFGR0I3Q05MT0h1Z2FYK0QwRnNqeHNGaUFuUEF2T3ZaNjR6UgotdklMQmE5RzdwRnhoUDJjYm8xak82bUFpeE42cFhvWlRFWXYyaTBTcEZ2UXp4QVA5OFBacVdGZEFGTFBqRXphLwotUStPVXM0eFY3TWRjUmgvd3ljaWhGQ0NlR3MwUUZjbVp0bGluUDdxa1RwYVhVS2RjUW1KSGo1Q1Rhd3UyR0ZaegotNFM1M1VTM3A4THFvQk1PYjVkZ0c4enphQ2g4NWV2ckc2bGlLR3R6cFkzb2JzR1pZZWovRHZ1aHQrUTJQbjlhOQotdmlsbjVnN2FsMUtFejBjVTFWVGZCK1NJdW5DTWZOUzM2ZTB6bDhQYlNHMjMxdkVRcVZieDhYdjV6Z3pTTDV3ZwotSStYdG90UUVnUUU1N21pdzBoalcrRENhRGFCYzdtcFl6UEJhcXRDMHFKVVNPcEZFL2ZpZzIxSDR1REJCWmJrMwotUGY1ZmtMWHJDdW9UMUVKUTFpWUF1Sm82S1RkdklPLy82aDFsWHUzWmVhc3NOS1MzazZ5QW15eSttTjkrU1k0aQotUlFSL3RqeXFiS1JWb0NMaU5KL2g5MTdOU2E1akZKVk0zRFFEOVpOWVI4S0V6VkZodWxsWmQrTUtldVZNNE5vQQotSDdLNTArdkNmSVBldFpma2FtVDZEUXhjZ3F3UnoxMHBmWTAySG1Od3g1c1BrK1VTN2VwVmNCbEVRb2ZrbExFcQotZlVWM29WYm5hSUQxRmpjSVR3dkwvL01JWU15SGE4M2UvV0ZrT0xPUnh6UkNPbkNlNWxaTVJOTnJXRlpDQ2lxYgotWDYxYVJmZUd0RWtFdnhlNFFZYlVuazJqT0pZc2FCVzA4VDBnT1BLYUlvNkRwenpHS3NvdHpZclRGczRzVnIrcAotUWZRdldWS3E4eVl3Z0JlK3FDc2VOY2JQRlVkNDB4R1NiWnJZR0xCL0J0YXg1NDMxQTFLc1JVbHpvNWdkRERvQgotZkVHQTlvRmJWVFo5M3IraEsrenM2bFdYZWVmZTNtMXdBZXRsTFdwRW5lTmU5VjBtSFovR2lQWTNjcEU4ZEpOVgotT1B1Y2IwRFFxSkpkbUNmQzlaWHhncFhTcHBxQjNqbytDNzVsZ1R5ZDJrZXB3Zjl1aVZUei95c25Idmo3VDV0RgotQTA1bGZuUWEzME1kbGxDQmFZaXNKYTc3VHBxOFZvQjFib29nQy9VTnNDb3JzdVhDRGU0UHZLUGVFbEdva2R3RgotWjMySGRUV2Z0bSs5WmtpUUJZN2FLeFBFTG5NYVRFdnhWN3AzTzQ1YnFjTHQyeXVMZWpEU3A2NGxQa1gzSTFaZQotblBkRW5ZZk9MYWN2RFd4WkFtcURtekNUd2JMcWV1cWVYRXk3U0RFTHNPc0xqSlFvckljdit0NHkxNzVqYXZwUAotOGY5VE5odGVOaE9UamcyY29tM0t0eXlBcFVQWkh4RW5GbHE4OHpiV0NxT2czcE9MWVhibThxYUhzMnNobERvUAotUWkxOEdIUXk4ZXUvbW5qdTZVREFTQVk1eENDa2Z1aDNHVlFYOVRxVTYza0szajMrVk5GbUQ4djhsdVN0UEZxWgotWjQxbWViY2t2VFBzZEgxd3pOU1oweXUxbTBuVGZHcmJOYnRHMWdERWRuVEJzTEg0UDFobTNERlZPTGgxUzRUSwotaVZsMEpVbkdiV21TUDVBSmpieEx3NFk4S3JLZ0tNQzdTREdsU3lXaUVIK3JQa1Z0cXJKRXdHMG5uYW5zdE04TQotRGRiZjVZdnBXWEZZR3pDRVJNbTJXcnBXVnJYTHdYZE1XNDk3Y08rWWVZdml3R0RUbUFxRlU4UG9Ka0RDdDNGLwotV2JQN1NsOFk5cithOTJleW9XbE9oOWlQMXVFbmVOc1Qzejk1d3BxV2xqOWVZWmxGTmpEOGFZL0ZYZ2ZualhleQotZGVoTnZ1Q05vcjUrRkk4ZnVPSGoxQy8yWjBQc2ttem9ZdVdtbm81c1BoTnRFMkdwV2hVRmVqVkY2UWRiUmJ6bQotNldZOStzSmVYYVpjcmQrQUdINTFPRGdzbGlTUFA0OGJDZmt5bmtuaTZiVnlVUlBZZVRkdWhkOVd3OFpYcGpOaQotUk9VR0E3M2VkeHpaZmZoQXVxdWpLTkU3K2NzMjVrVmNoWjV6aDNTOVJZQ1c0aVhmTXNJeUx2MmJpNmRxSlB0RAotWVc2ZW1CVFRITVlORTFFRnlCVkEvV0xMNzVFREV4SmVDYklhQ2Y3c2g0bHNWSTZNTXlVMFR3VG1aK2pOQU5xaQotQ2lpeXMwQVlTZlJBczQxbTM2aDFFZnk4RzFieDk0NmlTaGwvQllRUy82QnYwbnIvTEFPZmFxbzhteDkvamovegotWng5NW9YOHJLVmlBai9kdGxIKy90ZVcraTJ6VlZnamN2RHIxcHZla2ViMW43eE5MeE1aczJiR0hUZUdGcnFyQgotMXJ2OWg5dVZKUDExWVA3QXV5QWZsQUMzTE9LT3R4ZW44Y3hodkZXSkdXL2RqeXJFYUVUeUt5N21HODd2NjN6ZQotT2JvSllQMEYyMDA1RlMzeFJaSkdvaGN5c3ArQ0RaUy8ycjBEZmlVaTFiL3lYZU1mNnlPZGgzclhTVkREcnhCWgotWk9jaUlnYWRWMnd3TWdqM3RNcEhmQTRrUnVOV01kcjJPVXdzMy9LbDJ2Vm8yc2Q3b2grTnJ1ZCtwZVNuV3ExZgotMHloc2JyRWh4VEZlU0t4ZDM5cWtVZzhFTE1zTzNtTGpVVktDMWJGWnpkM2NIdWxWSmhCUkMwdkNyVkFnZkZ5ZQotaHk3RTlzVTQrY2JiR0diMzBrOFdPRG43Y2lHMTQ2QjRyditaWERUdURHL1BKZURmNUZMckpBZzc4UnljRjFYYgotdlJmTUljcnlnSWN6eEtnZDhzSHVBazAveVlOOHRNODgrOXdFelByNUY2WjJEajZHaWFpOFRIOHAzdDlTT3BldgotSklGU1Z5UFl4VVdnNUIwa0NPTGhpaGUyYUJQMkdpMytWb1diTm9SaXFIN2RWNnJlZnFaRzFDUGY0UnpLSmRUMgotLS0tLS1FTkQgUlNBIFBSSVZBVEUgS0VZLS0tLS0KZGlmZiAtLWdpdCBhL3Rlc3RzL2RhdGFfZmlsZXMvcnNhX3BrY3MxXzQwOTZfYWVzMjU2LnBlbSBiL3Rlc3RzL2RhdGFfZmlsZXMvcnNhX3BrY3MxXzQwOTZfYWVzMjU2LnBlbQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZTJmYzJlMi4uMDAwMDAwMAotLS0gYS90ZXN0cy9kYXRhX2ZpbGVzL3JzYV9wa2NzMV80MDk2X2FlczI1Ni5wZW0KKysrIC9kZXYvbnVsbApAQCAtMSw1NCArMCwwIEBACi0tLS0tLUJFR0lOIFJTQSBQUklWQVRFIEtFWS0tLS0tCi1Qcm9jLVR5cGU6IDQsRU5DUllQVEVECi1ERUstSW5mbzogQUVTLTI1Ni1DQkMsNTJCM0E1MjFBNEJFNDVGNzlFMjY2NjdGQjZGNzlBODEKLQotbTEwc2dUaHUweFAxd014KzY2NFAvTkhTWlNqVFc2M250QVV3VnNDZnBXYW16UExHV09Rd0dxaGZUUDdGRjhBagotY2tnb1lMOUdyeXVsbTQvWUxINGxoNzgvYmVHVlliWStkaE9pUW9KMjg0SjI4djFoR2J3cjdqUklUdWFiS3RlZAotUFNxRDhVRVdxSFJtSm9qRGU5eXpuYmZBS2pkUnlCYXBRZzlxcmJLc3V1bXE5S0ttRWIvN2tYS0l5MGVFZTJsUwotVTAvYUdGbFBoMmpweUx1VjE2SzVOYmVJWkJ6eXVvd1pXY0YxMkFJNmdjK2F4UDMzZ3BXUERvTnFQMVBMbHVUMwotTEZ4N28vMVMwbU1wVk5ROUdVY3hrOFgzbW5nSmk4OUF5VVZvYnkxWUlmZkdFUVdLTS9scWJsNC91enRWUmFIKwotWkw2ZC9sb09tSVYzRnFEczRSbERUVUdNYmF1dnVyM0Jyb0gvc0ZOTmZzUHYwTDYwVTVacU5WV3BKU0xkaXl6VAotQmFxbTBqRVQrcFFud081cE5WTW1DNGxWN1pUSVJjb1NtWHdhdXR1b3hBUG9KS0dqclUybktHQ0ZXdmJZeXE2ZgotcElSN1JVSDM5cHo2aXZ6VzYrY0hiUzVCLzZYNEJMR01yZ2s0WStETlVXdERhUGVib2NJWktQaFVmdm5xd2I3OQotb055RG1uM3dJbml5T1lzWmczWXpWT29aR2FuV2ZFZk1jOEFRZi9Nc0htU0VUUlJHMyt6R3FmdUYyZ3JnTHQ1TQotNmYzeXo1eWJLbk1ZQzNVK1F1Zy9SMHhDdzRyOVB5Z0NGOVMxaW4ybVBqNGFseWZnVTdiZlRTbnlJZUVFekEvZQotY3NFbnY4YzNCVXJmdTVNcjVIMm1pQkJ5RW5hRThMb1c0ZS9mbzlSampsaTVZWVB5UzBHbWo5ZHNwMlN4aDZkMAotRjZ1d2Z0bkhXaWRtUGp6bFlZUmFDbkNkMTNjZjdNeklnQ0FBTEtVNll5WmdqNndIWjlVR0h1UFkvZ21NM1RseQotclR4dGFaOFJrUTYzUUx5QzNyZmVkOS9yU2NaTFAzdW5uV3JFOHNyeElCZmtyZG1GN3E5RjdHdnBETHhqZytGLwotU1BEWEJVOTFzQVZDTHNWNHVFVm14MnVZQm5DR1FDdmsvc0VTbHNEV1ZIYkl6aHFRZWVHT1RGVHdSaTFMN2RFYgotYjQrLyt0NUF0V1YyL0pxcDU3YytwaTlNSVNCNmRHUmk4UHd6Vkw1bzE4bVJxUW9xRE1HYXpxaVpybmtRMkhMbAota3BYQVBhWmlFQzBCL25iSGsxanZzN1Q4dnlja05DbzN1NDBUaDBXV01XREJnMm9NTmtGZzAyU3lwOXN1QmZHdgotZW9mM0c3cVBLR1o0MmhyTXQvbmlCaFJoeUs0aEI1UDhadGNZcy9UZEpKVkFLM29CSGJ3WmI0NGo4ZWZrbmcwNQotM2dHQ3Z2UmpDWXFQN2lqaEhhSUJhdHFzU3R1QW9KcVpUUXNYZWQrNUJlbkFDWXFHeFQ4bUpsK0pNcVMya2p1bQotTXQ5V05LNkVXVjV1VGUvOE0vQTRCTWJSNzcvQU9nTEJZSVdwT1djc2puVFdEYXlaaWFwRXduS29NUFVqZVBscgotcGJ3U2RQaFAyVkhIRktxTmFrK09FRHNQbTNvdVlyQ0Fvd2Uva1UrV3ZHdXlmLzgzQml6Slo0Y2JudTRYRTdKTwotanc1UEhyZklXMEhoZHFORE01Q2FnUU9PV1FhekNVQi91SCtlaHF0MHRiRG14N1pIUHRBMzVaUXkrdFZZY3ZGRQotUk1vendwRWNEUUhEeW9vV0JJV1h4OHY4TFl5U0g1a1lVa3dUeVNlMFdRclBqRkFRNFdPUURUYXE5OGdtL3E2Ygotb1VHUVplUndQQWRVYTFtdWoxeFVFTHpiZW9rOGgydUxGUzNWRWxpTEtNbzlzM2dLL0dLY215YjN2aFpwRSt1VwotSkhSUitNa3ZTSE5PeVYzZVQwbTZTOHpUaitXeERBa3J3QTRPV04rcFpuZGxJTXpVdUo1T0g0aXlYQkRJYm96WAotT1laZ0hYTjRoWExPMlRoTkZ2dWQ2SkZqL3BIdXJUVkJJQVRTbzRCYitWQ3luUm10aVY2T21Ib0RvTlFQcnYwSgotT3R0dHdBYktFSVVwMGRRTE1EenhpeXFudXJFa3Z3WEpKQS9oWGJoN3B4Q1Z0OG1sVHp1VldMTHhOK3BhRjVSbwotM0JpbmNCbFZ0UGRXY3g3NVRFWGhld25GL0ppTTI5aUc1cXg2TlFtYUllNGYwTUd0UENGRm5lZGhNSmcvektwZgotV1JRaVhXZnNDQ0pXUE02TlFkQ3htRkprUHVvRldHVTN3cEZlcFVGcllWd2duU253WWRtRHBoeW84SXpNZFpLSgotSG9DNlRjZnhvWDNFYU9PRllOUERyWXFGVTY0Z3BmSVg1MzdDdW5yNGwxMWttdDlGMkNwWlNaN1NSVC9iK2ZEbgotSkRrOCtBZG04YmRpc08yYXAvVWt0ZWk4aWJFWE1jcEI1STAvdDZWRE9HRkxudmF4K3UrZUdINzdZSzB6VkV4UAotNU42aDhrdU1GVExZU2lEaTAxck94QjNFZ0FYWXFpTU50dE0zWHlLVWlOdkxSSXVCcWlBV2pRL2k5NFBpZlF6RwotaTFVZUl0UlU2RHg0SmxKaEtuazVDMTc0ZEd3djJjZzZpWnBLeWRIZXhSeUtsKy8rcG12WUZzTk9ReGtMYy9VOAotdXh4SEFOekhSSW1uZENzRmlXZlg1V201QXVZOVJqNUViVzNENXZzR2lBVDJ3bTlJcmUrT2tJZ0F6T3BwK1krYgotbGxUMnE3YUtWNlpSYkdZeHF5MmI3Y3JQaEMxK09ndlZhcEdkYXZDaDFLbDI4d1p5VzB6NjNLendoS3JmcHpURwota2VKbjl1b2tyTlRvOGk3a0I5T1lRbkIrWWo0bCtGcFgwdkY2bUM4MEhXdHBlOGROMWZFYStuQmhNZzlOWWFlVwotVy9WQmNkNkhIc01VYkkrTEN4aEpkSlltNVpjTjcrN0Frb0lwMWxrV2IzaFZEdXRLWUtGRTM1bzJQUWF1bFZVdwotVHN5YTR0cVZCNEZwWFo3MDNJa0JYS2YyclMrbVVaTGtCTTBGRDBOWmNWRkM5RGJZRktocUFyaFB5Z1A4RHAwYgotNzBlTUVOcHZ1citZMjhYaTVuaGdCNWJZdGI4QUt1RVByMkErTVEyZTBSTnlTOUFEZjYyWG5tbDF4S3BQanR2UAotbHo0MFFJWmFpMDN2UjRqWTYwUlJWWXhpQ2ZiQWpkUjdVRG51eU55bkdYZ1JZUjE3R0FFc3N6dHVXc3pPdW5lRgotdVpyVUYrUXF2akRudVg2VHFVVXpkN0RSMHR0OW41bldFZVg5NFlFd2tkbkdNclBTRGpZVkJGclV6eGIwQzhFTwotWWR1WG8vWlFWUXkwZWdaTnFpSVl0OU1uYUxwbm02MVBOcVlqTkFKKzRMdTQ4cTdSMXgzbW5KajJYY0hPb25wSQotZ24zcmlXYURWT2c1b1MvTThUMktvZzVRVGZaWHFZajRKWWx1V1pqZ1BsMU93YnhmbEFQdlo5U0p3UG5Rb0VOQQotdjNlbVpWZUNaREg3YUliTFZJWFBPcTVjWnRzdHVxRkNWemFmWThGYzlXcEFRN0F2MVRpU3ZKYi94UGVEMEQ5ZwotS2E5cTlFNksxWStZKzRnZERrUm5zc0cweW1MaytGMTY0KzZjdUNBVkFMd0d3VytWdER5YzFlMWNjKzQ0NXNpQwotNmVwTDcxUVQ5NENmWk1RN0EwWmtndXNLckwzWXZ3a2pmNm1Ca092S2VoMTRyYmRyQWx0ekNTcmY5UG1FSnRCOAotQlJJK0NXaHNCR1V3cXFUNDFVNVNGa1JHMkcxS3g3eElMYlpnSlhKZkU3MWVzQjc3enZUU1pSYzYvSXV2TFV5SAotTHQrY3J2Nkw0TnJOODBkSFlyZHBjUktzcElZT01wQlNHR0g4T01mU1ZVL2t2QVBWQjJ6cXpIZ0Z4QTBvSGttOQotY0xDTElQVlpQOEYyaUE4RWdobTl1R0lMeGRVa1IrWWRBWTJaRXIyTjM3MjJaSU1CQkRJbGpkUUVhUkFHRGgvSAotQjVlM3c2OU5WRDlkOGNLSHovTTdsZDVPOUIwbytHKy95ckRrQW9rSnVHQUNIanFoRXpoQmZwRE8xb3JOYjdTagotLS0tLS1FTkQgUlNBIFBSSVZBVEUgS0VZLS0tLS0KZGlmZiAtLWdpdCBhL3Rlc3RzL2RhdGFfZmlsZXMvcnNhX3BrY3MxXzQwOTZfY2xlYXIuZGVyIGIvdGVzdHMvZGF0YV9maWxlcy9yc2FfcGtjczFfNDA5Nl9jbGVhci5kZXIKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDlkYzk3MWUuLjAwMDAwMDAKLS0tIGEvdGVzdHMvZGF0YV9maWxlcy9yc2FfcGtjczFfNDA5Nl9jbGVhci5kZXIKKysrIC9kZXYvbnVsbApCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS90ZXN0cy9kYXRhX2ZpbGVzL3JzYV9wa2NzMV80MDk2X2NsZWFyLnBlbSBiL3Rlc3RzL2RhdGFfZmlsZXMvcnNhX3BrY3MxXzQwOTZfY2xlYXIucGVtCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5NjkzM2NmLi4wMDAwMDAwCi0tLSBhL3Rlc3RzL2RhdGFfZmlsZXMvcnNhX3BrY3MxXzQwOTZfY2xlYXIucGVtCisrKyAvZGV2L251bGwKQEAgLTEsNTEgKzAsMCBAQAotLS0tLS1CRUdJTiBSU0EgUFJJVkFURSBLRVktLS0tLQotTUlJSktBSUJBQUtDQWdFQXpvUG5xWWgvN0VUR21kTldjY3pxNzNGVysrSGZTbTFQZGVKcWk5VmxhUUh2bTRUWgotaGozSlpBcDNpdy9EeVFGaUtEUkd3dWtMYnJvV3JRNXRHbmtzRW11TFdZaWluYUNuQXBWTHFndzNjcnpDVEJvTwotWG9Sd3lqOW1FN0k4RDJOeWpCd2FrL1EzbW5icUFvdU5WTnRFMldBcUJ6RUhOSUJ2dWIxQnVJaGg5TXpxUVZpQgotNFNGTHl1T3pmU1BmdVJXTzAvN1JreWtvaVlDMG8xMlNZK2ZBTFAxMlBNU3F3c1N1elRYYVBOVUJJOTRTY3daTwotTUFjOGV5N2pvbVVLUG5FWlJBU0J3Q05hQytOWXI1UmxSNEpQMmhxb3ptYTBuYnpuZFB3UGRZWjJtNHVablR6UAotKzJZOUZiUDJiclJZQ2tNYlBPbW50MGcyQ2ppRGR3MUowVUhiRlQ5T09WWFRtRllyR3UvQmxGM3NYN2FrTHo4bAotKzRFV1E5N2FjR1EyZ29QazF3cGlhb3hGQXVqWnNDR1dHU2RFV0VNNkxFbVk2SnIvMmN5WDRFbHc0K1E3TGp4cAotRFJONmpjM1FGb3VpNjJia0txb3pxUHMrMXl1OTN2UGU4R1JISUh4Q3pOVGEzb0RzRTRNVlgrYm9jL0NZMTJuSwotOXVEa0JqcHdMNEw4L0ZSRlNNRGJxaVZsQ253cWtRWmhmdXR6Z0Q2NElNeTBCMkZoYnZhUE0rMjJPRUVIVkViMgotaHEvR2JzNHk2YVBRUDRWdElXZStVckZoMEZVSVIweGF5R25NRStibHhEMlB4OW9KM0twSjJJRUc5dWx4dEhYZQotTHp3NWpnQzU4NHM0d0ZKejhSMkRML2pzMWRiTlhpU1Fabk5PYXUwSjJzcno3dzJYRm8xcHVHeFk5VXNDQXdFQQotQVFLQ0FnQnAvUEtSWk5mYWg3V3h6dkFudWJhOXF0cXNyVkR2SHNqUVJLTFFIM1pMZlUzZThFQy9qOGhqU3FmdAotdStxTXArUWJwRERJNmRnUFBQeFVWdm9Sd3l5bVM0R2FNdkRhbTAvN21HbmIzU2M4QUxwcldsZ1RsRDlhM1V6agotUU85b0ttN29qNmZvVlVlUVJBVjN4dTJESm9IZ1dtVlhpWWNjSCtxM1ZmVjc0cXI3ZTR1aWUrMDBnT1VvUE5LcQotb0JXN0pPQkgxeGp5UVFab0E2RXgwdDFGM3ZRWFl3SWkwQUNmczFmUFJCczhhMG1KZ2ZqUUJlVnM2dG5Va3MwTAotVkhYOGRBazJpbVdaR2N1bUhFa3cyNlZiSFBza2dkZ3ZEakVXWDVRZXl4cVlBNm10ek9qSzlTSDg4WXphTGFHRgotVVpONXVOVXEzdlJQc1lUaW0veUV4bElqVG54RUwrZE5BZUkwa1pRcEhaSzhHNHlIYldRMFdSSkdkNzNseElVUwotZlhpVjQvTUpOaS8wcFBmRWtsWjZUVGhVWkkyNmltOVF4UnpHRHhpSWs1SWZMNG85a0YzSlhkak5OZC9ybTYyaAotL3Q5cFFkYjdVdlhHelUyUmtOOXEvZk9zZFhGN240eGliQXRVTXpDRFNuUXdJRDVzSTEzZ0l4c0lZcExQNngxeAotOEV3MnMvNGo0eFZmeUR0L1R3aW1BZ0NkRlFGWnVPNUlpSE5Wb0FxYTdtQ2NBSkg1VUZkdEZrUnZEaHRrOS9JbAotekY5WHBHK0JmNnZ3bG9Vdy9ORWN6all6TkxqS0FubDFmWkpDZ1UxNmN0NlZRNnlzUjJEWFJ6Tmk5VkxpZ1dKWQotUkMvK3I0UHZPVFAwVEI1RmlkNk10UEFha2IxL1lDUDI1emc3WFp4Ulcxb0FWUzRuMlFLQ0FRRUE5REd0eTNaTAotaDRCcnVCU1Jta1pmR3lTS1MzV28vZVh5clk3a3Y4LzYrRXI3REtvR3pjVmJPZVF4QkJ6d0pNZ3NzUmt4U1RwTwotU2VkcmFZQkE4bWI4RTFUM1pmdXpTMmVOUFNNTmNpOXVrV2w3eFNZVUpoNEJvZ21WcVVEUVBkdFNjZ1JkYW50UAotL2xTRlNYRlNIb1J2dGUyYWVUUDZZVkl3YTZuWUlDblRpL0YxMCsrTEJKUEhCVFdEVy9EVmpuNnpvVjRXQmxNTAoteng4QzNHQW9YRE1QMzhlSk4rWWxkOUFwbmxUZlZ2K3l4S0dKcEpTQ3k3ZkRnanI2dFZNTWZNUmxtOUNKenRxZAotaEFFVkZSaFgwSGJSWW51VS92Y1FIOGxrOU5ZRENZNTcrOHhhemNjL05kWXRoWkFOZFJWT1gwTVZXVmh4UnJHcwotUWxCUktMN2lkY3dFRndLQ0FRRUEySC9pMXEvb1hYQXNKL0hkQ0tWZzRZM2RLRzNYdXRETkpPSHc3VVRQT1FkTwotVnI4TEE2aGl0K0Q2emtSbEx5R0ZZMjJYcWx3WThhZTBsV2xqK2RDQWJmZWZkSW9OUXdYei9LMEYxb2Z6OUNDYwotcUxCQmNjcnZvQjUrTGFiOVNrN1lFanhLQXQ4ZC82VVhrMTlPU0tKRnh4bi9zMnp3VXRLSWwrMGdrS3BiS0xGcAotUWpQMDFCNDVHaFl4SHZ3RFRuM29kaXR0bGFGdzBWaWxucURiNWdxbTJmaWNXZ3QxNU5abzE2MHAzK2YwTXBDdQotNmYzdW1NMGVScExzdlp4bUhtVlFteVFHUitTVEQ1QWxNSFhBSmpWb1BQN2l5OEVPbnJnR25KZ1k2dUVWVEVLLwotMmhaMHFZYXFVMXJQdmVYU0ovZzhzdTBzb2thcndLbE9DN2lYYTgrMDdRS0NBUUJtNzVJZFZFNWVYaW9LUE5Gcgotd1FKU1JNTHZNRGYrWHpJL0t4OE9KRFBjK201OVZpYnNFcWR6N2RjanJyY2tLaVY4dWV2bXZHZElDLzloUjZrWgotQllSNCtiWVlEVlAxRXorY1oreEJGL0Y1NW9kQUFkODRlaW1pRG54Q0RvbzVxUHhHQjhVQkg5NEdqY1pwd1JVbQotdkJrRERaZXlROURsdVdtajJNSzhQQ1ZxdG13KzNKa3pZci9nV0VCNVB6b21pUTVibFhlZlR0NkpmcjhMK3BUSQotMk5WMk5YeUlUY0c1a2N3WmJCbUJhT1FJc3pkOFl3WUhyZjBDSnE2TVJPZmNxRVZVdTBGOEt2ZC9MNTJkZU5kNwotanJxUTB4dHBwdWZySGxBcVRSU1dzTE5lM3pQZnpuKzh4LzRFY1ViYTloSkZZZGZjQThZc1VMVVdkeGpmSGlnRQotRSs0ZEFvSUJBUUNqWHEyZjc1SGFvSURSaTdPTmlLNDR4a0p5OWFCcStwRXpHY1FpWjJBdjJwR0U2Qmk1bytFSwotZkowRjlacWRIQ0I1elFNN3JNK3QyeTFyNmVGbGE2N2VUSk5vNzV2ZVRhbTFyQ0xScGpteXFNRk9rZUp3cWdCMAoteFUzVnlVTXRSWjNLOU8rc2h3MHVFamhlSHZjRjNGM25SbmtydmpNRGJKZGlmYStyT3NJYlRQVHUzaUlMeHRxMAotRXJieWVKMU9KN2k1STBCSVAxRFF5S0lCdDhUNExHV0g2aENoNmpBR2hMME1zMEQ4RXg2MDRYVDhZWUFna2ZnYwotclZZMEpzYndmT2Q4aW95cXg1TXBsVTVhNlNBY05RVDVzaVVXT0JKK05zUFdldmVpbGtMcUR4eVN4NHMxT2NkaAotcXc5RWJ4NU14d2VXeFY1Ky9mRXhLeEVYeXkySVQyNXBBb0lCQUJHcGViOTNrWWt6Ynljd2tKbDN3c3FDUElieQota0h3eFdGcGMwQjN3NHVnWlFBVVl0NUVpSnRMQ2lLcEJxam0rNi8xR2R2OXpBSlRuZEtuS1BlWTQzZ1NqVFYzUAotYk9iWjNYN1g4VXVBSTl5SjFUeWJHUUttcWxQek1TVmlCTUx1MEphT1lDeWFuMENDU1pVTUI4TnA5WFNHa3Z3TgotZGdHOWp6eHFqNlh2WSt6OWdoajNmZmhCOG80M1QvVlBJVWg0bmNJSEg2ZENUb2FNV0F6UFdBYkFhSUViQWpudgotenFHRlRvVGlyQkhRZ3VTOVU1dG1yVXhnd2RlWkVYS3Q4VUUxai9HVmlyQW5nbk5pSW1pZ2VVZk5VbG92bXR2MgotQ0p1QWt4enpSRXBWTmRRVVZuNCtVbk1OYWFMczhsUCt2VnFMMG9qQlJHTjNlWkVRcnZKaTRMRWJDRGM9Ci0tLS0tLUVORCBSU0EgUFJJVkFURSBLRVktLS0tLQpkaWZmIC0tZ2l0IGEvdGVzdHMvZGF0YV9maWxlcy9yc2FfcGtjczFfNDA5Nl9kZXMucGVtIGIvdGVzdHMvZGF0YV9maWxlcy9yc2FfcGtjczFfNDA5Nl9kZXMucGVtCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1YmNjNzFlLi4wMDAwMDAwCi0tLSBhL3Rlc3RzL2RhdGFfZmlsZXMvcnNhX3BrY3MxXzQwOTZfZGVzLnBlbQorKysgL2Rldi9udWxsCkBAIC0xLDU0ICswLDAgQEAKLS0tLS0tQkVHSU4gUlNBIFBSSVZBVEUgS0VZLS0tLS0KLVByb2MtVHlwZTogNCxFTkNSWVBURUQKLURFSy1JbmZvOiBERVMtQ0JDLDJCMEMyMTQ1OUEwQzk5NTEKLQotS042cDl0SmJURDlzWjhqVkFwN2ZYOFN1ZzZYcUNpOFlGK295MFNCOU5lSE8rWUJER0pETnRXSFNNU0t6amJ4awotcjVBTis3NXVWMnBFb1JyTHlZYVdWQTIyc2JBSmM3NjZaUVgwMXRTa3hVWDk2SisrRG80elV4UitHSnVzSVVuagotUkJWRFpmejd2Zy9xYTN4Snk1eDNjQjBpcXVuckdHQ1FKK0Nac1V0WW5rMjZWM2lNQmpUdS9XUSt2cXQyUlJJeQotZHd6UU5QeTJMV2tYUTdLSW9oOHlER2pHdFdmM1hZRllRVTM3akdsU29PRy9BVnhhN0NyWGR0QVRmYS9rR0xWUAotZk9lVDR3RExqS2Rhd1Q0R1VoVWo1eXQ3MFNVU0Z0aXNOdFRDS3NMR0xTcGd2TzRLV01ZT3N2bzZ1QjRqeFVFRgotWDVwQkpMejQ5NzhESjRONEwwOVFnMkR4QzJKSXl4WjVMMWRKaVdTZ01Wbkt0cTRITTFKNlZGTlVzZUIwWkRCNQotWDUvUzhBV3dmYjdndEJSRDhoWmMrVUJhQkFwZ1UvdXMzQVpoa3FjenNhMzVqMTJvcCttcExHbkFXaVFOcXVtbgotaUhkY0NPSlQ2Wkw4ZHE1N3FtYkV6enlyY2RoWXRGSm12K0dMUzZtNFlNS2s0Q0hmOWxjRC84Q21qeGh4VloreAotT2tlS0YvTUs2ZjFpVW1Yd1psMjhRSWNvWHJUemlueUxqRjJSYk5RZmhyZ0kyWlVUbGJWZ0RWV2h5Z0IxZWVYbQotc1c5SjRCMUgzekdzbGJPY3JxZGgwTkhkV0tUdlRwK2xmelR0clV0ZDBUcWdSWEVyRko2ZTNwS0REQ0RnZ2xySQotN2x5eXJHOXNPRjIrQm1ZZXZMVWU2UjhYQ0JJRmhieDBheENsTjE5azJPbmp2Q2JOcFZsQmV5VUYvdmJZemNCWAotMXRvSU5FYXVXTTJKOW5vaTB5c0ZzN3Z5OW5CVmxGY3JOblNYTkZTZ2J5ZG43M2ZZazJXbk81bXlvQkJhcHNLRAotUGg5c1Q0OC9FN3hmZ0RtS0orVEx5ejBKZm85NFJNT1FHZ0Q4cU52WnZBY3hUcHdaUlkxcTljMGNyQ2loT2RYRQotcWF2ZFlJeklERjhvaDQ2L1NHU1UzUmlsRTE0dUhIT3Rvd3pXS2MyanpEL0x5NS9jSFRaeStEZlBkMWV6TDBZbQotdzM0amo5NTIrRmRNTVhiOWNtelM5VnczekhObmRXQ01aLzl0UEpNUm9xR2diRnhjWFZpd2pXbGt5Tm9HbjJ1MgotSjRJbm1pSWJ4d3ZFdDhKTmZIQzhxTExaa1FidGR3TEtQN3ZpejJMbXluMmtTUjdmV2VuVERyL2J3Z2FMUmhXSwotSWk0L0JpWnkrUjB2alI2NFUvMTIrWHRkWUk2OWlqa3dPSVRETGVQWSs0U1llWmpIVGUyQmhpaGhmVmxSOHNMTAoteFAwSlc3TXFuRnMvZUp5K3hlK1BVMU1LRy9XV3B3aGkrakdXUGlZSnE3Y3VJd3o0bDN4NEdDdUU3Uis2RUY5eAotU3h2d0Q2N0VoSTlteXgvaWx6ZFBpUEpCd1BXcUV2ZDlqVkV2cWJUQkpFUmlOR0g4WFhIMXBqWi9nUGRLeEg3TAotUW5KK0JjWnJ4eHJOVyt4S3d2a0FCcTEyUWhGNjBYa01pazNvNFhST1k0bVM5Q0dJT2k3ZCtCMW1yRzY5SGtnOQotQlZWQ3dWaWJiWXlYKzcrSGI5MHg5eDBlNENZOW5tN2gwUHJHTWowdkdGU1kwb1VLa2ExT1ByYTNncVpWUXpkTgotVmIraEcyMkl3MzZWbGJHYmtvRWV6TCtpYzdIcHZybDRXd0FjTno4QnE1aXlRTGJ1cHAvcmRrbVloL0pMNHJTaAotNTA5WWRFRkFVVjYwZU5QY0d1U254aHhCMm02T2k1VmlFTk13L3pVMnBvMG9aa2g1WFVQQ2luK1ErRGc1OHoxRAotcWVXZytaVmhMTXVjc1dlWFVRaU5BM1VRRUpkZS9uYXlpMWYyU3hNV3V2WnhzYVM1V2g2UHJxdXRmd3RPb2t1ZgotREp6V0pIaU1hdktQOW5mSWo5cGhsb21acnUxUi8yZldFbWU4OXJDclVIdjNLbDlxVjRkd1JNQ0RGc3FMNml1aAotc2lEMUJqSjJFRndtOHNQbk5MNEdXMFNaUHNXWmlGL0VOYXNpVmJVaHZSQjZneWo5WVlvbWltSWhPSWp0bjdBcwotNmRKcEtGQVlPRkpEWEZ2OU9majlzU2REUVAvNEdZd0tUYVlHYkdZby9xSURQcmlpcXVBN0NHQkkvZ2tzQW1vTAotRHFCc1NYclVDYWlQRjdYYzhMamk1b0NUSDM0V1FkMFRZTE9YYXdXQitvaUNDQ1V3bkl0OGZDbEdCbXZiZk1mdQotNW9Yb1ZQVUZTRGdLQ3lsVGVkWEpqa1VYTVJFdk5kUWJTTmI5b3NtcDgxV3ZlTHozSFZVN3lZa3N1SksyVW5neAotUitRZUlOaE43d0M2RThKSlVZdG42QXZ4ZmhMcE1CcGpEZlExek9xRGl0eWU0WjBZUi9hSTQyZDVsbDJaaWxMMAotZ2lvZjJON1NwbnUwZzVmMXR3dVc4cklsMUJqeWtpSkhBa0lGb1RIYVFBcFFEdFYvaURhckpKSjA1T2cxbFdHawotNHM1V013WHRWSmlxNFFJR2hlQ1cyaG85ZUtqY2lqb1V6Q0R2SzhwZmIzM2pUZDQvNzdoNU04RFF3enl6VklxUAotYXA1bVZLOFdUZDdOSnlwdy9WUDAwRW95S1RnWWlSWTFqeENDWXRWYWp1a2c2QnZMblppalAyWUEvRStpdnBhdQotbHVtWWhDWUpqL3daSHhoQnVMMXFqano3NEVvbDZKODFWUEFndDNEcW1qNERpZDlYSGwySytPTXpXbERmZStBaAotZVFGRUsweGhrUHlTY1lBRTU5ZFRWMkdyZithYkdCeFluSDhSend4VWkzL0YwRFZXVzBsTFp4M3RmamZKMkdWcAotZGg1NHBkbE40RExJRGN4NnR1S01VL0YwTkMzbCtlc1F5NnNkK0NuNjJwajhJb0p5T0JTdFp1RzliM2ZKNUNmSAotZEFramxDSnd0WDZGK1gvM01BTVlMTXNGTDFMNUJ4WElkbjdGK21KZnRuZHREUlg0UHVLdVcyd3Y1ek03VWlXYQotb1FTS29mZFFGSTR3NWp4dXA3U2JZZWRMUEZ1MjJHdDhJcExXaGVFanhVNnRPbVdtcDFGK1NDRm9NOXZrdjIrNAotaFpqRGV4UnA1amlkR3M4QTNyendRT3BuV0tEL0hHdHNKWkFNWWUxK1VGd0dKTnB6N29OTTJJdDRrZnV2VnFSRQotS3Zlc3U1VXQrMkZtUko4MFk1blpXWTUzbVpIbGU5R1RHbEplRlRldWVPRSthRnpwajhnaFdYWTVzd1VsY053YwotMDVKM2Zxb20yajladDhQR3QxeWFWbzZIZC9CYklkWEozbFdlNjNDbmpsem5TQktXbjdYcGdlaUorc1UrenFZRQotdmNsSWN6TlZKTCtGdU9hOWgzOGpuMHlibE1aUXliU3REUFlwT0NwYi9BSHhyMTRFRmtaSktDczV6Tm45UlYvUwoteXBsbHlCM0RUOWZCQ1dlZDhyeEFIMFBRNWlZYzlVTmVTa2ZtV2FwZkpUNFlDVW16TllVMEMvZjdibFlldDN4TAotMWdPWHBpSVNkVGg3aWx6RmUvaTVkMUkxVWVnbXRUU2ovTW1WdFQ4bXcxZ3FjNk5JYUZJRlkrVktVNmFtMHowNwotK2FENWxsSTBPazMvSjJZTUpLclcxNHU4VlU2b0FLZlNxaFpSZFduRWVtQkppQWdLcmU5ciszcXdnM3BHZ0JDdAotc1JZcFhaYVJMYnptdEZqSTVNZnkwdUIyemhCMFh1cVZDQ2dxVDdXcXpmV2lsZ0xSUFcxUExKb014T3lrZzlGVwotM0VvZlFGSloxL2pIQ20wTXhjeTJhNWVkd2dqSUhldlJRR0dBV0hhT25qaUhYS0JocG5SUlRseHN2K2N0MTNrSAotYzhjVDdFMXZRNjE0aFJsdURmVGVRbXlIWGVybGtTd2daRHNFYUpwT0oyblduZXMyazZ1NmhSTE5FUE1vUXk1RgotZFVkQ3dMdlh4TkVuQ2xneDhJaXpNSm14emh2bUFIRis5Ly9XZ0pTK0t4QjAwMk1uUDR3WDhlanBuQ2dNMS9vZQotLS0tLS1FTkQgUlNBIFBSSVZBVEUgS0VZLS0tLS0KZGlmZiAtLWdpdCBhL3Rlc3RzL2RhdGFfZmlsZXMvcnNhX3BrY3MxXzc2OF9jbGVhci5kZXIgYi90ZXN0cy9kYXRhX2ZpbGVzL3JzYV9wa2NzMV83NjhfY2xlYXIuZGVyCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhODBiODkxLi4wMDAwMDAwCi0tLSBhL3Rlc3RzL2RhdGFfZmlsZXMvcnNhX3BrY3MxXzc2OF9jbGVhci5kZXIKKysrIC9kZXYvbnVsbApCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS90ZXN0cy9kYXRhX2ZpbGVzL3JzYV9wa2NzMV83NjhfY2xlYXIucGVtIGIvdGVzdHMvZGF0YV9maWxlcy9yc2FfcGtjczFfNzY4X2NsZWFyLnBlbQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMzMxNDBjMy4uMDAwMDAwMAotLS0gYS90ZXN0cy9kYXRhX2ZpbGVzL3JzYV9wa2NzMV83NjhfY2xlYXIucGVtCisrKyAvZGV2L251bGwKQEAgLTEsMTIgKzAsMCBAQAotLS0tLS1CRUdJTiBSU0EgUFJJVkFURSBLRVktLS0tLQotTUlJQnl3SUJBQUpoQU5tSlk2RlBERjBvcVFFSkNTclR4K2V6ZkNVOHFCNk53RjJTcXJwaGhoUkZDWWFNaUtlZwotYlJWQjRwQ3hqR3JETTJpdXdsTXkyUXFKbzRUU1Q0TWdNYks0NGZHN2ZIaXArSWhEL2xKQWZTc0w1NlpLejNUOQotdGxvZzRWRkd5bkpMMXdJREFRQUJBbUVBakIwMkV0dzdkbldPQmFDd1N1bUZ4UE9TYnRtVzM3Y2x4QitIMyt5WQotMDgxenlUb1Rld1NWdmk5bG94VDVBSHNoSFl0MlArYzZ5bGJVVUVWNlpoQzNtRHFZTWN1UW1YNXBKMk1oYUs0VAotY0NpaGk5ZUJoUk9QenVkSjI3Sng4NHdCQWpFQTlDS2tHMzBkOStQZ2JVcCtLbk14WnVhdkVHNFU0NUVERVVPRwotNStNUmdTblJsUHo4SnNpWStRNlJlZUJhRVppQkFqRUE1QnZUb0dhUEZTa2JGVDFIaVY0ekVFRFFvWHJOVU8vbAotdkFQNnA3ZkNMaDJubmFJUkl3dUh3eFRVaEc4cGUzaFhBakVBektKQXRqM2dvY2tqYzlodCtuMEYyci9mMjhDNQoteDZua1RWTXh3Q3NIb0NHQ2FBVEtBbVJBUFBybUc2ZGZOOEtCQWpBY3dOa3pQZHBKVzQ0YlprY1BMTDJaRGVKKwotaUdFN0U1Sk0yZCtOcHA4bWV2eDI1VWZ0dC9WY0JOTXBBbTRqTHk4Q01IQ2NWZGhkVkZ5ZHNMOERTWVJuV0Q4eAotMXRuMW5wYkFleWlNSEJ4eWhERjlFUDFtZTdyRUh2SjRXbDYxSFNYUU5BPT0KLS0tLS0tRU5EIFJTQSBQUklWQVRFIEtFWS0tLS0tCmRpZmYgLS1naXQgYS90ZXN0cy9kYXRhX2ZpbGVzL3JzYV9wa2NzMV83NjlfY2xlYXIuZGVyIGIvdGVzdHMvZGF0YV9maWxlcy9yc2FfcGtjczFfNzY5X2NsZWFyLmRlcgpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYzRiZmU2Yy4uMDAwMDAwMAotLS0gYS90ZXN0cy9kYXRhX2ZpbGVzL3JzYV9wa2NzMV83NjlfY2xlYXIuZGVyCisrKyAvZGV2L251bGwKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvdGVzdHMvZGF0YV9maWxlcy9yc2FfcGtjczFfNzY5X2NsZWFyLnBlbSBiL3Rlc3RzL2RhdGFfZmlsZXMvcnNhX3BrY3MxXzc2OV9jbGVhci5wZW0KZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDI1ZTEyYmQuLjAwMDAwMDAKLS0tIGEvdGVzdHMvZGF0YV9maWxlcy9yc2FfcGtjczFfNzY5X2NsZWFyLnBlbQorKysgL2Rldi9udWxsCkBAIC0xLDEyICswLDAgQEAKLS0tLS0tQkVHSU4gUlNBIFBSSVZBVEUgS0VZLS0tLS0KLU1JSUJ6QUlCQUFKaEFiVXpxZGE3bmU0VUd6QzYwTmtOQVh4ZXdsL2w3WDVXMXNjdldRVktic2hzU1FvSGNPUGoKLTEyUm11dUEyc1I2TXpUTnhCeHNiNTJITmJybHFaWU41TDA3dWFud00yYmlvNXhsMVNGWE4ycDNoekUyRUhsTTEKLW5CcTBzU1hiWDRVYStRSURBUUFCQW1FQTFSZ01WUHgzV3A1MExra3dHRXJ0aVhnS1Y0R1RRendDVFcxM2YwdXIKLU9ZY0dCcHhmMnNPbnJXa2c5cjNSa0tsZzI1Y0k1SVZNYjhIaEh0bXdxR3hibUYwOHp1NWU0SmIzemFSNTlsVHMKLXVPRWhWdWRXQnRTUnNpZDZxWnVnMFB0OUFqRUJ2TjJFTzdWbjB4TVFQcGhPd01SN2h0Vnp4eHNBRFJCSG1TKzEKLXBwcENGTE9wd3FWRE9iY25sM3BWdzJ3R2QzUFRBakVBKzVjS3FYNnRmS1V3TlI4OC91ckFHZytUM1lzcU5zNHQKLTV0NUh1R3M3QXNZajB4RFRUdkhFc0l3YW92Q0V3QktEQWpCU1REaVdReXo5NDF6eDk0TTZMaDhjQm9qd29KSVYKLTJKa21RYWs5TlBSY21CQWpyaWNObWxCOHVXajhTaE80TFhrQ01RRGowYzBjMkpJZWliTFNsN3Z6RmYzb1cyekoKLU02aUJRa2g4ZzVHc1pLVm1DS2dPQzNGZFRqNk9vLy9HeGtkZmFpTUNNUUdzUVdZVmVaNDNFcW4rWllTZVg3U3oKLUZvbDBCTXlqdktYVHBDem5xazkrYzFUODZjOUN3MlJkLzdOTEptUG1HUjQ9Ci0tLS0tLUVORCBSU0EgUFJJVkFURSBLRVktLS0tLQpkaWZmIC0tZ2l0IGEvdGVzdHMvZGF0YV9maWxlcy9yc2FfcGtjczFfNzcwX2NsZWFyLmRlciBiL3Rlc3RzL2RhdGFfZmlsZXMvcnNhX3BrY3MxXzc3MF9jbGVhci5kZXIKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDg5ZTE0MGYuLjAwMDAwMDAKLS0tIGEvdGVzdHMvZGF0YV9maWxlcy9yc2FfcGtjczFfNzcwX2NsZWFyLmRlcgorKysgL2Rldi9udWxsCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3Rlc3RzL2RhdGFfZmlsZXMvcnNhX3BrY3MxXzc3MF9jbGVhci5wZW0gYi90ZXN0cy9kYXRhX2ZpbGVzL3JzYV9wa2NzMV83NzBfY2xlYXIucGVtCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwYTcwN2E4Li4wMDAwMDAwCi0tLSBhL3Rlc3RzL2RhdGFfZmlsZXMvcnNhX3BrY3MxXzc3MF9jbGVhci5wZW0KKysrIC9kZXYvbnVsbApAQCAtMSwxMiArMCwwIEBACi0tLS0tLUJFR0lOIFJTQSBQUklWQVRFIEtFWS0tLS0tCi1NSUlCelFJQkFBSmhBMHRyMjMvSTRQZ05OaG5KZHZkVkdsZzJoaUFLS1dEN2tZY1hHRVpnUHFUeVkxclZORDhxCi1vcUk3bjlJSmlDNEEwbCtON2xaY2VHVm90TWovZFBZMURUTVdUMDFOc0VKWGg0N2xRSk5kSGhwSnlzWnlvZG1GCi0rTjcxc3N0YzJpeW5NUUlEQVFBQkFtRUJHT20vbmZ3R0VoZzBZTHBkU1Z1cS9wNktaYmw4dHJTVGIrOGRRck5qCi1xZ1NoV3V1UUQwbmdDVERhdGxZK2FUUVRwODJoeWpUNytFdEdmeHpvZkE4cFdIU1YxdXZ1SlZXYW1LeThBdFYxCi1ZWG81bFJFWnlqVGdkSnp1S2p3SXgwMEJBakVCNFhQUDNDL2V0Zkp6bUNjQ1lvSytUWWpTQ2RZZEliVklaWlRSCi04eGdhclVCdTJLemVkS2ZjZFIwSDh5a2xScHhwQWpFQndIZTh0c3lYcHpiWDhFMGZlK3FLR3JwL2hXZW9zVGhkCi0zTGJoWU4rNk5WczdZVWt0aElDSmE0VFpmQzVxeVB1SkFqRUJ4T3RqVHZ2Rm94c0wvY1lzNnltZUIyakFWenFUCi1PMFBFY0xPWTh2enBFN1Y2MGVHR2dPM3Rha3MrVUZXVDJLS0pBakVBaENHREkyU2lKZTBkc0RvNDFYeWoxZjR1Ci14akpsWEZtY0pnUm40Ty9wNEFDU1BUYWZSNVBMYVRkS0VMRm9XdkRwQWpFQmVHTytqckRnejZhb0o3ZWthOEpNCi14QVdIdWJtMFVQc3I3SklMWVNzeFZpSkZXSVZHd0lnbkpVNE55OFU1TGhmUwotLS0tLS1FTkQgUlNBIFBSSVZBVEUgS0VZLS0tLS0KZGlmZiAtLWdpdCBhL3Rlc3RzL2RhdGFfZmlsZXMvcnNhX3BrY3MxXzc3Nl9jbGVhci5kZXIgYi90ZXN0cy9kYXRhX2ZpbGVzL3JzYV9wa2NzMV83NzZfY2xlYXIuZGVyCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhMzExYzY3Li4wMDAwMDAwCi0tLSBhL3Rlc3RzL2RhdGFfZmlsZXMvcnNhX3BrY3MxXzc3Nl9jbGVhci5kZXIKKysrIC9kZXYvbnVsbApCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS90ZXN0cy9kYXRhX2ZpbGVzL3JzYV9wa2NzMV83NzZfY2xlYXIucGVtIGIvdGVzdHMvZGF0YV9maWxlcy9yc2FfcGtjczFfNzc2X2NsZWFyLnBlbQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZTYyZjdiMS4uMDAwMDAwMAotLS0gYS90ZXN0cy9kYXRhX2ZpbGVzL3JzYV9wa2NzMV83NzZfY2xlYXIucGVtCisrKyAvZGV2L251bGwKQEAgLTEsMTIgKzAsMCBAQAotLS0tLS1CRUdJTiBSU0EgUFJJVkFURSBLRVktLS0tLQotTUlJQnpnSUJBQUppQU5uWFJVR002NWUrSklFNDh6OEw5ZnhXaUlyQmZmZUZ5bnNGaWg0bGhGcklsaVRmKytKeQotUjk4bFI4VEdMTzB4MkNvc2ZiK3ZQY1g3K2JOZHZxT24zcTUzTmNZWUZuaWg3R3VOSGVDL0JBc0k2YzVIMkhUMwotUnczTENKUEJrL3lYaEZzQ0F3RUFBUUpoUC94ZFdWMjlMYnNxR2RMU2tDaEJQcmRrTCsyWnhJVEY3dEMzdXhjbQotQTB4NzNhVDA1WlRQeTVtMXRQVEk2WHNFak9IbFpOa1lVa3FlYkNTQWsrSndvaThlTWpxa2Vqcnk3UjkyU0JFeAotdlJ4aFN4WWtGaVkzTTFBeFVPMWttOVFaWVFJeER6MjVLVDVwamRuWG1jWG9uNHdqc3BsbUtsVlhSb3kxMUNqdQota0xMWkxJTSt3TFcwbmhpa3MwQ3NyTlk2VlRjTDB3SXhEa3NCQ0ozc01SS1FjVVcvTUxtb3JUSFR2VjVpcmFLcgotWVM1QTBlMzdZNGkvZzNWRUpyeldhVHIxRnBLTU13RDRXUUl4Q085dzNLTkFrdTlDSFY4UDhHbmlpOVN2TnVadAota21qd09QLytUVXJ0VTlGbU91ak1pVnQ5UTdJSkNoTldnNXNRRFFJeEJNaW4xT2wrZDBJK1pCc3pEYXptUHVteAotYysxV1c4VlpWUkoxRVk1MG1IRFpvTGNzRTBjYkFHZUNSb2JRTS9YOEtRSXhBYk9TT1duUWlMKzRRdVk1clEwNQotVzJCTDNxU0VUN3U3NVJjVDNlUG5hWnNKZjVDd2V1bER0Vk9WeThjcTJzWFFXdz09Ci0tLS0tLUVORCBSU0EgUFJJVkFURSBLRVktLS0tLQpkaWZmIC0tZ2l0IGEvdGVzdHMvZGF0YV9maWxlcy9yc2FfcGtjczFfNzg0X2NsZWFyLmRlciBiL3Rlc3RzL2RhdGFfZmlsZXMvcnNhX3BrY3MxXzc4NF9jbGVhci5kZXIKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDk0ZjNkM2IuLjAwMDAwMDAKLS0tIGEvdGVzdHMvZGF0YV9maWxlcy9yc2FfcGtjczFfNzg0X2NsZWFyLmRlcgorKysgL2Rldi9udWxsCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3Rlc3RzL2RhdGFfZmlsZXMvcnNhX3BrY3MxXzc4NF9jbGVhci5wZW0gYi90ZXN0cy9kYXRhX2ZpbGVzL3JzYV9wa2NzMV83ODRfY2xlYXIucGVtCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiN2I0MjRiLi4wMDAwMDAwCi0tLSBhL3Rlc3RzL2RhdGFfZmlsZXMvcnNhX3BrY3MxXzc4NF9jbGVhci5wZW0KKysrIC9kZXYvbnVsbApAQCAtMSwxMiArMCwwIEBACi0tLS0tLUJFR0lOIFJTQSBQUklWQVRFIEtFWS0tLS0tCi1NSUlCMHdJQkFBSmpBTDJ4MmJjb1pMUkwyMWdYY1dzVkpwank2NVQ3dDZsc2cvN2xvWWJlWm9JTTFZQ2JnT2F3Ci1qM2MyYmtpVG9jNTNrMXNpWHBYU0x6ZEl5UEN2czdUbTlxMW1OSGk0cE1taU9VLzQ5d1hLWnpFcjgraUlNSFhmCi1HVnh5c2JJc2NoLzFtL3lUQWdNQkFBRUNZaHNYbTVDZEpFVGIwS2YwTVM2cUJxa3hpSlB1bjN5REV4Y0VsTjArCi1Sa1dzcjVGK3BCcE9mUzc1aHlhMmJ4V2QzbDJXeUVBM0pUVGt2ZWdobXNPeTNVelBDL0loUUxHRllPc1JnNmlhCi15ZmxVVk9iRHJyZG1YTDB5c0kyVjRhMDc3ME1CQWpJQTNmWHFQNlE4cmc1V0UyUmRkRmVBR1lUbWZhRFU5UkdICi04ZWU0dzBrSVRUWE9yMjNXSEVnSVl1c3BLTUIwMWd2ZytRSXlBTnJKTUo4Vnp3SmRlcTI4S1NCVEN0UWF3TEdICi1tWHp6c2FTaUQxNGhqRURRblZUa0JFV01odGJ5dWRtME5YanVPT3NDTVhqMmdBYlc5c3JVdlV3c01sSXBMWUs2Ci16dkpBS0U2Mmt5UGVhTzdrYWtYSndTNFI2ZEhYMzlvbzFuR0RFU2xscCtFQ01nREtFdmNnaUhFWnV5TmJJaVpPCi1IOFVwb01nSGNMbjRhZERTd1lnMkpnQTN3VGIvdUZhbHNpUzhsWlhJbVNTbVhFa2ZBakUzeTd4cFZqbXpwM1cyCi0vaU5TS3dCV1RPTHl1MDZLUTAzZ1FFdHZ1WHlFazZOeCs4c2l6OVJIeWpLblJMNEh6Uk05Ci0tLS0tLUVORCBSU0EgUFJJVkFURSBLRVktLS0tLQpkaWZmIC0tZ2l0IGEvdGVzdHMvZGF0YV9maWxlcy9yc2FfcGtjczhfMTAyNF9wdWJsaWMuZGVyIGIvdGVzdHMvZGF0YV9maWxlcy9yc2FfcGtjczhfMTAyNF9wdWJsaWMuZGVyCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmZTQyOTk4Li4wMDAwMDAwCi0tLSBhL3Rlc3RzL2RhdGFfZmlsZXMvcnNhX3BrY3M4XzEwMjRfcHVibGljLmRlcgorKysgL2Rldi9udWxsCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3Rlc3RzL2RhdGFfZmlsZXMvcnNhX3BrY3M4XzIwNDhfcHVibGljLmRlciBiL3Rlc3RzL2RhdGFfZmlsZXMvcnNhX3BrY3M4XzIwNDhfcHVibGljLmRlcgpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggODY0NGE1Ni4uMDAwMDAwMAotLS0gYS90ZXN0cy9kYXRhX2ZpbGVzL3JzYV9wa2NzOF8yMDQ4X3B1YmxpYy5kZXIKKysrIC9kZXYvbnVsbApCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS90ZXN0cy9kYXRhX2ZpbGVzL3JzYV9wa2NzOF8yMDQ4X3B1YmxpYy5wZW0gYi90ZXN0cy9kYXRhX2ZpbGVzL3JzYV9wa2NzOF8yMDQ4X3B1YmxpYy5wZW0KZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGYxZTI5Y2MuLjAwMDAwMDAKLS0tIGEvdGVzdHMvZGF0YV9maWxlcy9yc2FfcGtjczhfMjA0OF9wdWJsaWMucGVtCisrKyAvZGV2L251bGwKQEAgLTEsOSArMCwwIEBACi0tLS0tLUJFR0lOIFBVQkxJQyBLRVktLS0tLQotTUlJQklqQU5CZ2txaGtpRzl3MEJBUUVGQUFPQ0FROEFNSUlCQ2dLQ0FRRUEyeHgvTGd2TnY4N1JkUkNnb3JqTwotZmFyaUJlQjYyRVJqajdXOXdMQVp1VGU0R1VvTzhWMTBnR2RHaHdiZVczOEdBNzNCalY0SEZkUmI5TnpsenozNQotd1JFc3JtcTVpcjBkWjJZWDZrNjkyeFdhZ29mazhIakRvNFdIc1AyZnFabGY0elBzek9vTHRXRmU4VWwrUDZNdAotNmdFTXpFS2FkcHZFMERmVHNSY0JZUUVXV1g0Y0Y4TlQvZEZ5eTB4Z0ZkcDk0dXF0VU8rTzRvdlVhbmRWMW5EWgotYTd2eDdqa0VPS085NHRIZ1ptdmluRWVaNlNqbXR2d3V5bWREaE9qVmc5YWRtR3NCUG9IY1BIcksrZk9jOTlZbwotR3lkNGZNUFExV09uZ1RTSnJTVnF2ZkxxN2ZwWC9PVTB4c0VQY1MzU0NCQWJyVVJCNFA1NW9HT1RpckZkNmJEdQotYndJREFRQUIKLS0tLS0tRU5EIFBVQkxJQyBLRVktLS0tLQpkaWZmIC0tZ2l0IGEvdGVzdHMvZGF0YV9maWxlcy9yc2FfcGtjczhfcGJlX3NoYTFfMTAyNF8yZGVzLmRlciBiL3Rlc3RzL2RhdGFfZmlsZXMvcnNhX3BrY3M4X3BiZV9zaGExXzEwMjRfMmRlcy5kZXIKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGUwNjRlODYuLjAwMDAwMDAKLS0tIGEvdGVzdHMvZGF0YV9maWxlcy9yc2FfcGtjczhfcGJlX3NoYTFfMTAyNF8yZGVzLmRlcgorKysgL2Rldi9udWxsCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3Rlc3RzL2RhdGFfZmlsZXMvcnNhX3BrY3M4X3BiZV9zaGExXzEwMjRfMmRlcy5wZW0gYi90ZXN0cy9kYXRhX2ZpbGVzL3JzYV9wa2NzOF9wYmVfc2hhMV8xMDI0XzJkZXMucGVtCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhODA5ZTAzLi4wMDAwMDAwCi0tLSBhL3Rlc3RzL2RhdGFfZmlsZXMvcnNhX3BrY3M4X3BiZV9zaGExXzEwMjRfMmRlcy5wZW0KKysrIC9kZXYvbnVsbApAQCAtMSwxNyArMCwwIEBACi0tLS0tLUJFR0lOIEVOQ1JZUFRFRCBQUklWQVRFIEtFWS0tLS0tCi1NSUlDb2pBY0Jnb3Foa2lHOXcwQkRBRUVNQTRFQ0F2UmFWUW96NzhIQWdJSUFBU0NBb0JpSUREekQ0OUhFd3ZDCi1DT3JSck9EVmdZTUo0K2p5MDhqMHlRb3lqamNMUnQyVENNZE5aNkY2QVR1YzdZVVFoY3ZKSVZUOFJMR3hsdUo5Ci1CaW9sZ2Q1VXIzZWxGRmwvOEQ0alNSN3g5em1FRnE2ZnhEanJrY2JiMXZLLzFwdGg5Q3FmaDdGWFFnRDZEbG1wCi0yWTFZVGRyZWxaVFFzMGhSWnllMFltUUIvcXBCcysxVlkremtTTnZLdGxKWnFQWW5LYXdNeEQ5RGlmN2dscERWCi1uZHBadk5YRGJiUnkzdkxxOGswcktSSUpRN21Mam1BQSsza2dSUnRVaENTVGJ2VXM5b0lHcWdxN3htNjBtY0F6Ci15RzRMZlJRMmtoWlNRVEs0N1BFTnNEb1pyYXppb1o2RjRkN3FtQi9wZUxXdXZxVmRwQlk2Z0FEZWN4Sm9HcTVhCi00cXZaeTVzcmdZdk9GZkdpOFQzTDg4bUpjMzhVMldRMnMvZUhzbVN6QzdFbVhhcE5FM09FNnF3RGZuM2JrT0Y0Ci1vZGtzTmF6MElvSyttc2FVYzFld2VFeEU5N0VSbE5LbytYdUplTzdRM3JqTzQrSmtGSU5PTmJwZkZKb1NtWkVtCi1YWDE1WllGRmtZWjVlSTM2ek9wWDRpbEhtVEZtWHE3Qk9tTno4aEhXd21LVVNWeDhKc2R2cE1EYmw3YmZUdHhVCi1zVHpTNUxJZ2J4cFAxbi9SZFRSZTAzQUx1Q0ZJeUQvYkZkYmpIMHR6ektDaFY4WTlPSUhGdDlhTERNVS9icjVpCi10UlFGaDFENWJhR1YyYXRvWGkwODBzNGlpQW0vWk45NWJ0dkxPczBDK2l4SHBvbGdIc1Z3cmtKZ0tJemRRS0NiCi00Q1NIWXN0My80US8zS1RtNENwNHVzbEtnVkQyZmJuU1dNbUhuTjcwa0VSRzJrVExrQ2V4Uy9IaHQ3WURVM1dWCi1nMHhTUktibWVkcFlKME40cFN2cEl3UUtBYW9CV3BnVVZqY1dPbmFkTE5GSHo3cm5wd0R3NWNmaFdCS3lPb3IrCi0xWXhSaHBQQ0x6ZWM3VUc5ZFl1NDAzQVRoNW5iaHhubXo4SmtVcXVtU3QvZnZmQzdqOFJTV2hOSXNCdm9pV3hoCi03U0NyZDFaMQotLS0tLS1FTkQgRU5DUllQVEVEIFBSSVZBVEUgS0VZLS0tLS0KZGlmZiAtLWdpdCBhL3Rlc3RzL2RhdGFfZmlsZXMvcnNhX3BrY3M4X3BiZV9zaGExXzEwMjRfM2Rlcy5kZXIgYi90ZXN0cy9kYXRhX2ZpbGVzL3JzYV9wa2NzOF9wYmVfc2hhMV8xMDI0XzNkZXMuZGVyCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1YTM1ZWE4Li4wMDAwMDAwCi0tLSBhL3Rlc3RzL2RhdGFfZmlsZXMvcnNhX3BrY3M4X3BiZV9zaGExXzEwMjRfM2Rlcy5kZXIKKysrIC9kZXYvbnVsbApCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS90ZXN0cy9kYXRhX2ZpbGVzL3JzYV9wa2NzOF9wYmVfc2hhMV8xMDI0XzNkZXMucGVtIGIvdGVzdHMvZGF0YV9maWxlcy9yc2FfcGtjczhfcGJlX3NoYTFfMTAyNF8zZGVzLnBlbQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYmE2MGU0Ny4uMDAwMDAwMAotLS0gYS90ZXN0cy9kYXRhX2ZpbGVzL3JzYV9wa2NzOF9wYmVfc2hhMV8xMDI0XzNkZXMucGVtCisrKyAvZGV2L251bGwKQEAgLTEsMTcgKzAsMCBAQAotLS0tLS1CRUdJTiBFTkNSWVBURUQgUFJJVkFURSBLRVktLS0tLQotTUlJQ29qQWNCZ29xaGtpRzl3MEJEQUVETUE0RUNGTG9aN2Rmdm1lZkFnSUlBQVNDQW9DbUxMQjlPb1hDNWhINwotblExK3M0eEJJazFDRWZLQUpHdzBLUk1hS3N6dEhDQjdoUXdpenUvcHpKbEdqREhsRFZOa3VlNzlDMHgzcmhQVQotMSs4OTR5UjdwY3dUb1VlSkdrdjFXR0tteE9KVUZKam1obnNCUFF3N1ZLLzBMa0pKdGFNcmlBeW9CLzNnb1E5dwotOWl0enpQQmF0YnJjM3Qxb21jMEJRS3ZqbDhUNnFLb1lPTzdzS2dLcDhhS1l4emY1MWZobHE3TlBFVG5ESzJRMAotaWIxTDRjVmVaUzhNSHN2bCtyWTM3cnJzY1RBSXVuRWd4OGhaajcwNFpqQk1YYit3S3ZMTnRXaHBLZHd5aHdvZwotenVzajE1NVdEL0dtcWZYUXlhVE51M0tHS1orMUN0eko1N0xDNmhRb3UzdFZ2cVg1bHhSdjNtazZQZFpNZUk1WQotdkJhVTRsQkZVZDdPRXRWcnBFZWdlTW5LV0FCNmE1eTgzbGhySzN0OHljMmw3eXp2a2hMT0s2aXdGNE9FalJYcQotbFpMWkNjS3pkVk90MldvZHdtUTdRK3VsK3Vubm5sYUJEOEEvbVNjWDVHSlF4eTdnK2FjemNQZXJNYkhFNE5keAotSC91dDZKNEhNNjVUelZYbDZFVUdkMUI1TWtIYTVuQnF1ZHFzeUNBQVl5WkhsdzJJM1M0T0Y1TUVsc0ZKWWx4RQotdnY1cUNPYWpQQ293dk5EMnZXaTlvVm50VHNiQy9jMzQvVG14bG90dDh6bFNJajVjMnNEZUVmRGkzdko2bnJNZQotVzd0cEFFeVhlN01oL1lhNmpiSkY2NGY5RkxVSE13R2pWc2FIU1R6TVc4OXpwNEg4R3c5dWppRTVFOEZ3c1ZwSgotTkxGL0tNUmpBUlpFdSt1dWhyV2JzRFEzQjNpSFo5NGZPSDhvUW40SzdUUHBiSzhJTmovSkc1L0ZQalRLazlMdwotMWppL3pKRkQ0VmZLdVpkb1JBb01SYkM3MmkwaTBoOFpCbFpmcGVHL3Bhd2FUSkNFMVNWTEV2dEhLQisrMllIWAotWmVEcXpMOTVGZFF3bkszRmdmcWZOTEdNbEliRzJKU3VDRTlKQlkrOTJSc3ZYak1KUlp4a1pqdllMK0MzYWxIUgotVkJreXYrNFYKLS0tLS0tRU5EIEVOQ1JZUFRFRCBQUklWQVRFIEtFWS0tLS0tCmRpZmYgLS1naXQgYS90ZXN0cy9kYXRhX2ZpbGVzL3JzYV9wa2NzOF9wYmVfc2hhMV8yMDQ4XzJkZXMuZGVyIGIvdGVzdHMvZGF0YV9maWxlcy9yc2FfcGtjczhfcGJlX3NoYTFfMjA0OF8yZGVzLmRlcgpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOWMzM2FjOS4uMDAwMDAwMAotLS0gYS90ZXN0cy9kYXRhX2ZpbGVzL3JzYV9wa2NzOF9wYmVfc2hhMV8yMDQ4XzJkZXMuZGVyCisrKyAvZGV2L251bGwKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvdGVzdHMvZGF0YV9maWxlcy9yc2FfcGtjczhfcGJlX3NoYTFfMjA0OF8yZGVzLnBlbSBiL3Rlc3RzL2RhdGFfZmlsZXMvcnNhX3BrY3M4X3BiZV9zaGExXzIwNDhfMmRlcy5wZW0KZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDUzNGYxMDkuLjAwMDAwMDAKLS0tIGEvdGVzdHMvZGF0YV9maWxlcy9yc2FfcGtjczhfcGJlX3NoYTFfMjA0OF8yZGVzLnBlbQorKysgL2Rldi9udWxsCkBAIC0xLDI5ICswLDAgQEAKLS0tLS0tQkVHSU4gRU5DUllQVEVEIFBSSVZBVEUgS0VZLS0tLS0KLU1JSUU2akFjQmdvcWhraUc5dzBCREFFRU1BNEVDQTVHVCtDSjdLVTRBZ0lJQUFTQ0JNakllblFHR1oyUHZVekEKLTlEOWV5T1M2VG5yeTdVMzVwL1dzUStET3A2cDFmbmlJV1FtTWoyczJkSDUrcnExTjdhY0NQRXBtVEx2RFpiMGUKLStZRnJSUVU0NFd1d0FSOWl0ZnB2cjQveVIvTnp5dmxHbERxWTJCaUpKSVJjOWcyb1FpeEJMY042NkdNVlM4WUYKLVk5UmFkUVlPM2dNb1I2YWRuM09mLzZueER2enkrNFJIZWdYRTJjNmkxNWc1NjNuT2JvekxlbW5uVGhNNktpSWEKLStCNHdPSGJRRCt5dHA1RDlvWDl4Ylc3cks1ditTSDgzNHZsTHRFTnJlcy9Gci9ETVY2clpHdllBUGtKVHhFY04KLTVlVFRLcGVCNDV4QVowRExkNU9CckJ0VlF3LzMzTklIUjZ1bldiUWNENy9UeWIyVXZKRXdmM1J2TlE4TGxRMVAKLXh3ZDg1TkJCMWpOSjNjRk1HWllDR0wyNG03MktUYW5HZGh1ekJ0WHZhQUVKZTdmTGRodHNEaEplRDU2eUZNR1gKLTJLbEV2emd2SVFZQkJJcUlnT3Nub0JBcVhnNFFkRE44R1JjNDNWbW5WamQrek1tUXlxMzBZNlMzMFNrQXMxV3QKLWxxb0t3K0hYU0xWbjNkdDZmSC9td000c2NhdThyL3FReGhzdy9Za1RYc3BHRnZ6akkzNGVqYmg3a3ZsSGU1N28KLTFUeUpNRGNLZUdycEMyNTNUSktkNXhQbnpZOXZGUTNPdW9MZDRYdDJjRGJoeitFQi9BMElKelJSeFBFMFl4MFkKLVdSVTVZM0kxRVhJODJIdi9EbmNHRnVHOTFzK09Jb1dxQjRNRTlxQnllYzhOUU9IOGg0Qno3WjZYdUNJTkRCd04KLXUxR01Bc29jVkw3U3dhWWRCdG1HM1Z4Myt0RkhqN1c5SWRGQmQ4MG5EemF2b1kwOEJUSkNiZkMvUDZLZ01qODcKLW9WdGwzaUQyeWVjZm96UGc4ZmZBNG9xVGZBVzRBQ2JxNnJVOUt5RVRPcU5QbFJZdnFjczh5TEs1NE1SVDdoTU4KLUhlVDMyaU9oTVZkZi9ycU8yRjNMYXNZVVhZL01ZM0xGQWxCYVZXT3VYdloyc1JIeER4MzZHMHd5bDVrQStHZWEKLWtVZnRrMmg2VnR6V3l3UU96RGV0YllrU2dOVzNMNlNyckQvLzNDOFk4dk4xczNXQjYxZmxGMTJoUjM4OExQSFcKLTU2S2pUNjMvN2ZwNThEOTROb3RpalltWHYxUzFWenUzNjBoUm1yajIrQXNnSW5mRk8ybGRCMGp4blNESnF5eUsKLUQ2U1NPRVk0anIxQnZ0WlQrRk5ZQlBDSnlXaUV1RGVkTitCUHBvM2FybE5SRzV1eHR0U1FyWGhYQTltdEdGQkwKLXdNeE1kaWd0LytLS3ZaLzR5QW1RamZtOEpDM2tETkM1dzkwdDFLeThXYjJTcUN2Vzl0TUszd2hleDh0SnJFUjIKLVV6QVh5alNrM3huZ3NiZ29wcjFkc05WY2ZKUHRNYlBGVzNYK3BWcWh3RmdOMHNWVGhrWEx0MkNSUzdOVGNPRkwKLW1SekRqVXBoYlgxWUk1amlFUmphMitTT3ZxSHZCYnpEQ3ZmdFI0Nlc2aDJSWklWSUNxcFVMUzFaejMybnJvMGcKLTRmUkJ4T3I0SWkzYkwrd1p4OHV2WUJEd3MvV2pmV2VPaERTeVVFSngxcGwzRG56c3B3UDE3SnZkTXZDb2F4cEEKLXFBLyt3am9nVm15TVRhVU8ydHNlbytqS2Y3VHA1TmQ4UDN0TWVsRlZJMVZ4QVJVVi9LWG8vZ2xsd1lXL2FNNUgKLThnelY1UFhaWFIzaEtHTmkrbnJ2NSsrSnRkZHJteWlzVUVCVnlCVERxd1pIbDFLQ3dtZlpjRnZzQmJOT21kWGQKLVNLcDhUcWQ1UXdtZ2NPbVZlVGw5WXhIaEw3LzN6TlFCNUY4VjBaTkRzRVhpVnkwK1VFRWpGajF5TGZic2wrMkQKLXZXU2wzMEFTY0NySXNhODFpS2szODV3bEFqZnRhTzFYYVI1N1p4b0RpSHZHMFpKVXRPVjZZbVcvUm5rUVVQWnoKLTkra01UZENqbWNTSWg2ZUY3QVc2WFIzT1EzdFRxeExTdFNIOEJVTk05Ullua2VCQ241WVBuR21nQTRySS9PbzUKLThSc2Q4WkhZWVA2RVZiUnFxVjQ9Ci0tLS0tLUVORCBFTkNSWVBURUQgUFJJVkFURSBLRVktLS0tLQpkaWZmIC0tZ2l0IGEvdGVzdHMvZGF0YV9maWxlcy9yc2FfcGtjczhfcGJlX3NoYTFfMjA0OF8zZGVzLmRlciBiL3Rlc3RzL2RhdGFfZmlsZXMvcnNhX3BrY3M4X3BiZV9zaGExXzIwNDhfM2Rlcy5kZXIKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDI4MTYyZmIuLjAwMDAwMDAKLS0tIGEvdGVzdHMvZGF0YV9maWxlcy9yc2FfcGtjczhfcGJlX3NoYTFfMjA0OF8zZGVzLmRlcgorKysgL2Rldi9udWxsCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3Rlc3RzL2RhdGFfZmlsZXMvcnNhX3BrY3M4X3BiZV9zaGExXzIwNDhfM2Rlcy5wZW0gYi90ZXN0cy9kYXRhX2ZpbGVzL3JzYV9wa2NzOF9wYmVfc2hhMV8yMDQ4XzNkZXMucGVtCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiYjlkMjI3Li4wMDAwMDAwCi0tLSBhL3Rlc3RzL2RhdGFfZmlsZXMvcnNhX3BrY3M4X3BiZV9zaGExXzIwNDhfM2Rlcy5wZW0KKysrIC9kZXYvbnVsbApAQCAtMSwyOSArMCwwIEBACi0tLS0tLUJFR0lOIEVOQ1JZUFRFRCBQUklWQVRFIEtFWS0tLS0tCi1NSUlFNmpBY0Jnb3Foa2lHOXcwQkRBRURNQTRFQ01DTWxBTXB2L1hvQWdJSUFBU0NCTWhCdURpeWIyZEk3VUdyCi1TU2prU1hhbmtXRFpEbm51OWN0TFFOaDg2TTYzQ2NvbWxKZWxocFBsWU9HaUU4ZDE5MGF3bGNpSFZkZDZicVRLCi1UZU1hZUdHZjJmRzFvS3JiWHdUdS9kaGRWQlh1bjgyRTZYWWlvSHdhejU3NENjNEZFM3pUWDVBeWlYUXVFVnBaCi1haU1ud3dwSDlRdXVybHhPUHhXbHN2MmoxYldvMW5rZW5NN2l0SjFVcXBydlhaUVJaZ3ZmeVZ6THJXN2svVDRnCi1NWXpvb3dOTkh6dVMvSUhhV1hkZHBNc08vQkdrYUQzNzZhU2RRdG1wODlYb2NxNE9OMm80cGpHczByK2lRNXJ6Ci0vSWpkYk5sNnZxMEtPUDVMa3dvYjdDbDNST0dWaW0wOGhZaXZDRGd4RkZ1TjQ0NG45b1JGYTVIY1BrVFQydUk0Ci1KTGtKNlV0RmZ6aVhrUGtNSkFiWVlOdEtGcDZYTG5RRVo3SVpHdHRHQnd1U0YvYjE5ZTZXSWpyaGttYzRQdFROCi0zR0V0bG5uOFdlaW9oS3o3enhJTkJBakdnSDNRZkwwU1puSmN0WFhLQXJKVGtwdU1jYmh2WElnUjQwWmxWMTJuCi1zRjlJZXhuS2JoQ0FOa1VkMDl4c0RZZXZ4ZXMvLzZreVhLQnZmdzlqRE5wUnFONUpFL2RmTHRXWnovVmRQZkdoCi16MlpOci9ZQ09wSzZhdW04R2xQRjNYR2gwKzVkWGxSbTZPREk1c3dHcUxySkQyOEUwUkJMK0k1ODBvN1dMSktnCi1KSkN5Y0svTnkrQmc0R1R0cUE1anRZaWhQOG9SQVJkVEhhRHBsdWppR2RoNzQzcW4xZEdUQkorTWNZeHJQVVExCi13V3lOdkVmYW9zRjZHbVp0Rkk0SnRwOHJsZUxVbXpmQjM0dTA5aHpmN0xnekQyV0k5YWtndERWSCtzSU9mWHI1Ci0yaVFVZGtYdW1NK1RHekNIc284bUhWQktBV0ZuNElwcWJwSW1KY1VVY2czTlYwN2xxdHdPUjJiTTBuWW5DUVR4Ci1aU3h0enM4ZEp4Q0dQUFlQcW1adWtNU1pmVUhWTjZ6RG1FcEhiemJFZ0RiVVRkbXRWeTgwWm83WVR6ZWM5ZnFFCi1DS2xmSys2aTA2WU1uY1pWNHVxTXpXVXRiRU5UQ1g3N3c5OVE1cFFUcFZSc2FWOWREQ2duNm04VDd6eHQ3SkhDCi0ydXlIMkgwWGs3YVlRM2FlS3Fmd21IWGtjR0lleGt4cUprUjBKT2NSYTF3U0VoTVdua29OMUlQUEEwSHBjdVdMCi0vUUJJK1kyWm9EQmpRVmNidEIvVmxDZTZsQlRCdys0UGIrZk9xZHQ5RFhncU1ob0JYZWVMSUE5VVpIZWYydjh6Ci1jSFQwMitRcExaZmRmOFg4aGNnY2Era1N2RWlCcmpVQ2xpdk01VTFSY0c3dUUvSHFjMEpFMTdCOUxib1JxenlrCi1NVXZhV250ejlIUjA5WjNEbHJ2ei9yQmNWWWtnRit0aUxFU1BsSU5xblJMVXNOKy94bjkrVmV6Rml6TzBHMzlYCi05NWdPOVc2bHdjK0NBQTdpWkw0K3lWemZaYTY1MllnMmVjazhFT2daMk45citWZC83clBzdjZ5c0dwVS83cC96Ci05NnpDUGFaNUZSelZVcmgyalFiOW5lOFNLcjJDMDhYeEFPNnBxdkRFSnhIQllDMVU4ZHZraTNkZmJ5Ty9yTmVpCi1HelhwSlBuSXZJa0UxKytYeFBsV1p6N3hGT0VQNXF1Zml2em0rUDZjR0NOYm1lM21ZNjROWWhOc0RveDkyUzZoCi1QdFlZeGRqR3JwK2RlMyt2UndRWEZrdDhXSHhnM2p4QmsxSDA2ODMycmRQNU54NFNPcFBFaEZ2NHhFNDZvVnIrCi1XY09pN2gxNURlNmRrKzBwUFphQmZmQmoyZVpqczVscWRva1NqeVM0U2NDZ01VVkh6L0VtcTZYTEU1MUMyU09iCi1jOVpvNnc2L3p4eGZ4b1hKK0NGOFNybXNuNUg3Y3cvdHFuVFpabU9qc0x3MFVoNExhSFM1Qkl3dnFmQjR6MUVVCi02UndYU1Z2ak5kWis3dUJLdG1FM3JFVGdBbmVpTlN0OEpXdnBTeFYvZGVxMWV4c2V1Z2k4OXNvVGMra2kxU3duCi1VZFZ3RnFrZmdkT0RuL3paR3A4PQotLS0tLS1FTkQgRU5DUllQVEVEIFBSSVZBVEUgS0VZLS0tLS0KZGlmZiAtLWdpdCBhL3Rlc3RzL2RhdGFfZmlsZXMvcnNhX3BrY3M4X3BiZV9zaGExXzQwOTZfMmRlcy5kZXIgYi90ZXN0cy9kYXRhX2ZpbGVzL3JzYV9wa2NzOF9wYmVfc2hhMV80MDk2XzJkZXMuZGVyCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2ZDY1NGY0Li4wMDAwMDAwCi0tLSBhL3Rlc3RzL2RhdGFfZmlsZXMvcnNhX3BrY3M4X3BiZV9zaGExXzQwOTZfMmRlcy5kZXIKKysrIC9kZXYvbnVsbApCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS90ZXN0cy9kYXRhX2ZpbGVzL3JzYV9wa2NzOF9wYmVfc2hhMV80MDk2XzJkZXMucGVtIGIvdGVzdHMvZGF0YV9maWxlcy9yc2FfcGtjczhfcGJlX3NoYTFfNDA5Nl8yZGVzLnBlbQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMjgwMDhhZC4uMDAwMDAwMAotLS0gYS90ZXN0cy9kYXRhX2ZpbGVzL3JzYV9wa2NzOF9wYmVfc2hhMV80MDk2XzJkZXMucGVtCisrKyAvZGV2L251bGwKQEAgLTEsNTMgKzAsMCBAQAotLS0tLS1CRUdJTiBFTkNSWVBURUQgUFJJVkFURSBLRVktLS0tLQotTUlJSmFqQWNCZ29xaGtpRzl3MEJEQUVFTUE0RUNQa1Vqb3pyamNJTEFnSUlBQVNDQ1VoNnFYTjF1c0g5eEZGMQotQkdKT091ZGl5K1RTeFpYaEVGeDVCQmhVbzdRZ2VpeFo4ZXZET3NqaUtYZUZDYUxzemtkTjZxMCthMjZHMzdWegotUHE2dW1EYkU0bG13dDRXU2Z2d1RQRUttYjFaMGUzRUtpcUp1bmppZ3ZDQVNheHNuVTZZZWJ6dkdBY0NxaUNIeAotUHZITE1FLzV6V2hyQld2c1BhcEdaTUlPcGxYdVpuZVF6MXd3dExlVXRIZFJFM0ROYmJCajQzQmhSdE51MEhBLwotUzNXdHdCVm4rcHplTnVBdDRjMXNrUXpwNFZpNXdadFZ4Ync0VVpQZXNLNUszdjNydzNpcmwzekk1TVdiL09hdgotVDhaRGNzR21PRW5ESlFDVkQ3TG5LY1hYd1NDc3ZrRk9BWjMyVWlrWDBnK2h0WTBBWDE2OTFEdGpnYTVjTmhuVwotVm82a2RBTzlKenJZVFBnemFjbGRiVWc5RGRPQitKZjJmY1VuRnRRRUcvdDhqTjFJcm9zd2lUa3lTUThGRW40YgotY2g5Q0Z2TUptUjl5US9YdGIyRTMwQ3pJSlo4Z2NmYlIra0l4dEphb3dTQjdOOVlFRmNDZWhmeEgrc3RGaWZVLwotTzFNVzFrNkgrS1E0T0ZNQ2hSSnI0WkRReEdqNnlLMzQxRzZzSm44S1YxL1lONm1BZGpoMG9Za1dPMVdUS0lNcwotTUVkVnlyUDZSVThyNnRXcHBTOEozQzkxcUhCcDVVcTdRUStTNWNnWUxCNEM5WTExVXVSQ2VQZEd4NHJ4Ly9hQQotaWJQV052bkkvMFk5Kzc2S3BXb3MrUWdjUnZrZDF4VVdONmxjMnA4VzZCTlc1YTd4R2YwVGdnTmFHeTRQUTVadQotb1FjOVQ2YzFPS0IwMFo0Q0tYa0xWMzF3aHE3VVBjQzNiaTBWVDNoUnIwV0JJOEwxMjhRaFYwMFdxd0tweVJzVwotSFpiN3Rua20zZlU2aGlyTHJTYi9ubWgvZlE4RTJ3VGp1NUx2UnFYTmRqazd1NjlUZnMzMHFnWWxEWFV0R2Q0dgotTXpNM1hwdzZoZTFRaXJLMmpZS0dYMGFOY2FyYzVlV0htMGhjNEhlbEpPODNjUUNhV3YrQ0hjTmw5NmhpeDVacwotaStNRTVML0MzbkorNXhSZnNNZGNlSWdnd1dMNFpSYUgvOHpNaWQ5cGV0T3Fta1lhdXNRZ2JCWmZkVzZqdk54QQotQlBqVitySkREK28wU0M4MlpYQksyVEROUlZQSjBUWUdTamg0ZlVwNHlScE0wSTNVWlYwZU9sMnRUdTl4d0JKdQotRXJja2xFRGZ1MERvMnVEK3cyZFY5ZlUzZkk1a1pKUVdOZmhnTXFVdW1iQWwvcE5wT0FhVS9XeFg2R3luYVg2eAotTmdudG9OSU8ybThoemV2NU9SZHhjUm05MGNkcnRjMWdCcWtYK2NLZmVwREUwdHIyMS84SjFjUmNnR2MrTTV0WAotanBIQ0pXbDN3Z25mUVVmSmFtOEtSUFlFelZGUWcrTkhIYTBZbldMaWhBaS9Vd1VlZ2pla1piRjhMTm1xZnRFaAotT1UrUGZsdUYva09lY0VGaVhQbHplamxuelp0Z3BEaDlvZXYwZkpRVmtIKzF6RENNSkRtVEF5WWEvUm9mcFZOaAoteXNsUFBNVk12YnJhcnJaVVIxM0VjZEhncTNoNzYrd3JncjVhZm5RTWtDZHVWdVRyWnYwVWJKODdCajhMMVE5bAotQWN3Q3R1UDlBRGlqdk9HdHl2My9UVkZ4Vmt3TGhqTUpyeGQ3cnI1cFpaNzBPL3phWks3enBvbkovaWVhZXU4UQotWWFuTFRrTEtEWGs4SFhCY0JWM0o0Rko1czE5SktNTE9XRmRlL2pFMy8rRk42ZHJVejREL29LQUtOenpBWW1LQQotNlRXbUIxSUNteVh1YmMvb1Bpd05GTGMvS2lOY0lMNmszMGQwZXpQT1ZDUStXdnU0bU00dk9DS204aHhnNXJGbQoteW4rS08zd0xZaTNUL2lUNm5VWUdVcGpUdkVVR2p2bjVkd1JjUElBMlRnUU54SnkrS3N3SXB6MFA5R2JqUlZMSgotK1diL2Mrd2J6THpNOUtnbU02SVl6MStCemhtei80NWlGaFpCakdBSUx4dThHM2hPbWRvUUpGZVB3cWtlaEhnVAotNkw0OWZKOW5pUGtjM2NVc1JDTWlZM3pvZmxWMG10aXdvcnhOZ2FIRXErSjZiUmNTU3A0c1JOSC9BR3JHNkZIYQotZEkvOUZOZ1p3U0U2ck12RTNJeFZDd2xrRjgzNkR6UnZsY0VMb3NTMTJLVzY5cE5ab2tiT05jL05aQnN5dVdxMgotZy9yalZON0l5eDVUWXQ0RFVnRjM4T3RaZXhnSnpnYVplS0poOHE3bnZUaHBabzBNemJmTDFvbnkxdXNsbW1weAotc01qS3FHSVB0VS9HY2o5ZVNBUXFCWTVjV2JOT1VYeUMzOUFrb2UrWVZOZzJCUzQ2czFPaitJVTBkOHl5TXRHcwotU0tHbHNPN0V1VDBOZG42WnJJWE1oV3ZKenk0WHVBR21oZHBnZURrREhoNml3TEVIWkFxR1o4cWJnTytVVytjYgotcG4ybzVQSHlDaU1qa1g5TTA0R3pWU0tRMzZVTGFwWGxxRUg2UFAvclh6MmFaZnR2TXRXWmpheWdoMzI0MGdPSAotYlpOa1lLd2UveVFNcHJiMDV3dk1VK2c0cEttejhnNkdaOS9kZHZTQnhEdUZjMzlpd2l1a1pUVUEvbGZFUitrUwotYzF2QzJRbzAvYVBYVVdYRFBGMk9Nd1BZekhkdlJnWnRkM3k0bm82bHpsK01tc3g4djBsNTMrRXJCV0Z2eFgrYgotMmpSd3hKcm9hbHlab3g5SEQzWEliMm5sNVpCRGRHUTdDOFdwU3dsSnZZRFY3RnNPaDdpano2VU05aVE4UktKdgotNkhZb1dMQVo2VGp4MUtKUTdqNTF3VU1NV3RteTVrdFBDQ3BoTFlsSFR5aExHTkF1WVkxL3k0ZFNWUEh0c2pxbgotYkE1V0dOd0JJTER2aTh0SnFTT2dia3FRQ2Q0endaRzRMZ0xwMXlmcklUWDlMcTJzcEZuaXZSdWcwTHlTdVRPZAotL2h0cnVZbTdBckExR1g2eHppaEQwM0RpVm5XVTFJYXd6T21EaHVqRndrd2xySSt6TUZ1VnNvT2JvY1FrRVBUcgotN1oxZFFoYWZNUWhIWjRMSTR0OWNhbWNCM3l0Q0VzR3NVUkZuQVRxWXNKR2M4M2E1TmhTb3FTUDRiNEFXbE15ZQotdk9JTGNhb09XK1Vwak1haDcrTUlhaHowTk9yOVlLcENOdmdNNFd5Yktjc1dWamVyNGZLaDhHaVdvd29IRVFLUwotK1JSOU9xZkdoSXpjU29ZRTN5eFVSRTV6VUI3ZGJ2UnRXaElJUCtOVzAzZUwra0NMYktLOFFZL2pzVG04a0tTLwotdEtaSXY2M3hhQStCWDBvMFVjaGdmOWJ2ZjBOcmE1K0NMR2I2UThOV2VDbnc0WW13a0FOaXYxM2VlT3plcHVZUQotWWxkVFJZQXh4akdMSnF4QkRQYjlNQ1ZCQjBHNmNYdms3TVVOTDNNQ2hHNWJHWnFsWS9Va1Y3WXlwNW5MaUZSbwotMWEvTFFLR0h0bGJTYU5neUdVd29mNzJxZk5RWnNoYlB2VCt2NzJZWEY1M05renhaempBL2Z4cDZxVWQvWGhvYQotSEVYSUxjRFJwVU5FYmRwMWFkbnY4V01KaDJxOVgvRDJxSGlDeE1KWHNRWlpFWGp1SUx0WnpqcWo0Y3VWb1B4WgotcWZ6R0h0YUJaSnltb2w5NWlxY1lYcFlXM09ZRFlVSkRNYnk3bUVFTmZ5b1lBK21ZeC83cWxWYUxCUFNjV1p3eAotTlRPcm50TlJZcmhMY2FiSHNHNmlUOGpHWWZwQXc1TGk3WWxDTUl6WG8yODlmRktNeFRVQjV5bnBQa1JSeEhlVAotQVcxaXRMVDNBT3NnL0U3Q01GLzRlUGU4VDdieC8yTWo2WWxvdkUwTDJuOWx1M0FJS1pBa2Rsc3Q0cVMxZ3kwSwotMnBZRkpuNnFJd0JLVlhDOFJ3UXhYK25CT01GeFRickYwQXhaM0ZmMklGMXgwK0ppbWxqQkZOcitaTjlJNzhzUQotbEpVdFFyZ29vTlNZWkozd0xBWjhEckhiMTFkZzZFc1Q4QjVkdHQzRXNuWlpaMUlIRmJlZEFQMEp4VnhUVGUwKwotNyswanJpNWZGR3RwR0lEQ2w3MD0KLS0tLS0tRU5EIEVOQ1JZUFRFRCBQUklWQVRFIEtFWS0tLS0tCmRpZmYgLS1naXQgYS90ZXN0cy9kYXRhX2ZpbGVzL3JzYV9wa2NzOF9wYmVfc2hhMV80MDk2XzNkZXMuZGVyIGIvdGVzdHMvZGF0YV9maWxlcy9yc2FfcGtjczhfcGJlX3NoYTFfNDA5Nl8zZGVzLmRlcgpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYjZjODI0OS4uMDAwMDAwMAotLS0gYS90ZXN0cy9kYXRhX2ZpbGVzL3JzYV9wa2NzOF9wYmVfc2hhMV80MDk2XzNkZXMuZGVyCisrKyAvZGV2L251bGwKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvdGVzdHMvZGF0YV9maWxlcy9yc2FfcGtjczhfcGJlX3NoYTFfNDA5Nl8zZGVzLnBlbSBiL3Rlc3RzL2RhdGFfZmlsZXMvcnNhX3BrY3M4X3BiZV9zaGExXzQwOTZfM2Rlcy5wZW0KZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGU0MzMzZTQuLjAwMDAwMDAKLS0tIGEvdGVzdHMvZGF0YV9maWxlcy9yc2FfcGtjczhfcGJlX3NoYTFfNDA5Nl8zZGVzLnBlbQorKysgL2Rldi9udWxsCkBAIC0xLDUzICswLDAgQEAKLS0tLS0tQkVHSU4gRU5DUllQVEVEIFBSSVZBVEUgS0VZLS0tLS0KLU1JSUphakFjQmdvcWhraUc5dzBCREFFRE1BNEVDTE0rWnZmT0l6VHFBZ0lJQUFTQ0NVamZtVW5ZOWlSdzF0VDgKLVdFUjlQSHhkY3EzaEhRd2MxTkUzMW9hZTBmZ3pUN1NETHJjUWFvRnNpaWVCYTVEcENzemp4RXJHM3hsQ09zcG0KLVhQSEQyekdkR3UzdEtmbWYwWmhlek1QZlJFZzNPaFFORG44MlRJS0ViczlieHZEa1N1S2p1REdHb2hXR051MWsKLThlRTVNZmtyV1V3Y3oybUdoUGpnTTB2eUJKa01lTWlvWkx6b2Njd2dTdGk2QUF3bzRmNklUblVqYlVSNjVWUW8KLWw4QWovSnV1WW1uV203di9laCtJKzRma1hIRS9EcEZSYUlQcmh6WTQrRWhnVExTSHZrb0VFbk1HQUNTNkF5UXcKLStuNklaOFVuM1NrRFB2OGxhWlRVWklSUkpWRm1DMWU2QjJLVy9LeTI1RWhuYWhETnZHQUxUYW5ZZHN2VUZUWGIKLStkcjdIQVpqQVFkV1pHYXppZlVOaXFHQnVTVFh5ODF6SzJOSkJjenRzQXFhRUxXRXVmdkdmQk5uZ2NYd2dxTjkKLXZ3NFhIa0s2bWJBVkNpVmRJTzVneDN6MzBMVmRRTGVYUUUvL3BuNEN4MGNtd1hjb0N3KzVwSWFUSFFlNUhNV2UKLTQrcHFRN2lnd3I4ekZBRmk1Q2xFZlFQMEwyRGxCSS9XZzRtRkVQNlJPVzlGeEdnNSs5U3krbDNBN2tlM2xoNWQKLUVkM04waXFNQVUwUmE5UVhucWxBcnh3aW11ekxMbGVWMG5NT0w1anRHMHFEV1FoeDVBcWI4UVBrTjRMR3JaV0kKLVZHN0xGZlB4RlhGZThMbHdJMm42OENYT3dZV0FTMnYrOFoxbTRYZSswWmZOTWswVVVXaGlnWERtZ1hpaFJrb1kKLWNEZlZReFIrTEJEb1ljVFhUVmF3UCtZRHlJZVZ6NVgrRWFSa04wbTZiQzh6RzcvdFlCRWFmZHFqeXRVcnRuWncKLXphK0NmWVJOUFQ1RFpmVVJMMzJ5S09TSjI1UFhVR2ZNdCtzaElUbVZDSmFra0lwSTVXemhPb1hiRlZTTnJORHQKLTNqaHpnY1NWT2dlMFJDaVMzaVhRTE96aHFMSkhjN0JrT2tnUkJ3K0hSM0hJcG1pWE5tK0dKSmRWVHhKWXNkZjQKLVJFSVczdEd6Qys3N0JYZGdtSThidk9YVHZPa0E0YUVZc2tOR3pvc2xxcG9JdmNIVmpsaUhiSGNqUUxrT2M5dUUKLUI2VEIycWViWDNHVUZ3NlB0YWF6QmNDcy9XbUZvb3BybjFrOTkrVHAxWlNOWGRmWE1hcTRJQWtyaXhKbjJNUlMKLVQ0dmh6Rjdyck5Rei94M2t5OFFuRlR2VktnK1J1bzdiZ0o4M0ozdnVQVERaRk85UlBUQURqRVRBNUZFSFpUdFAKLUZqOXZjUERhd053bDJ3dzBlZXFoaU0zTHgvbkd6ejArOERSeWtXQVg3VFBRZEhtU0VGK0YxOW5oTXJkbHMxRjIKLWIvL1VMakY1ejNlVi9xRStSdmpsOHU3U2t5bFhQdktidFZsMU1WMHVzNHRid0V6OXBPVmlLazhzVmlJU2oxR2cKLVJ6eWRmaHB1Q3E1Y0ZFeER2SGJVeTBFdk9aTjZ0cS9GY3VRYTAyanFWV3libXFtUXRWVWhVWDJDZ245RVZFNUIKLUtZR2oyb2Q1ZVJ5eCsxTmI5dWFZejdXTzloWDVVL3pwR3Zad2VHZ3o3Ky92ZHQrWWIvelR2UDZiZXlLYkpWaHkKLTdndkJpdVFjU1YyOWJTVXU2d24wSUFOKzM0ZU1xa2JoY1M3RjdlOS9RVlROS2FLRjZXeDVqdG9UVURwOWlVbE4KLUM3MDIvTWdoTE5LcDRnMzNNa3hyeXhZZ1ZUYkQ4WXVMYWx3UXF6bXl0RTdBbldYL2Y2WitweDFaNWFQR0VmUGwKLVIrRGd2V1dBcHRtYjZOdGN3WWt1ZTc2ZHh5NVBCZEJzYXE0SysrVzJDeGRVMGMweWo2STNYM3VremxQV3o1OVIKLVQ2cTFBckhYdjRka01mYTZiVjBkYjgzbmxkc3lwWE4wNXFQNkNzTXJ5Y0dRbFlRSEtsVlJqQ2F2OVcyaENLeXAKLW5KdkwzV1RlbEd5RHJDNWNSTlRaM044cGVNbVdWYXpGNDlMaE1aUHBPeVJLcnZ0eW5tUnlCK29JUVBlMW5jT0oKLThWT3N6ZWZUTHB6YUl2SnNGY3lnRHE4dWtaUXNMeGh5WmdoQzByS2x0YWVWTllyYmYrYzF5WmM3WGMzQ1RpZ1kKLVlDWlBOZ0liMkNWQnd4Q1YrQmhmcFlBakNaNWgybEpxdDMySnd4SmNjK2M5K1pYTzlodllYWTU0U3YvY2NLNUQKLU81VFJEbEZtUytQUGc2SDk2TG95T1lLeThCR0FDZ1RBSVFGU05wT1FxK0xDRExjZHhwc1V4dGZkTFRmSHl1NGsKLTArdk50ZXJJSjdOVzVkWkFVMXJzNXMyS3YvYklnbE1yWU1VUFY4Z3Nld1FUZUhMNE93dGNXZ01XamdlQVNUZHkKLVBRWkNIdzBsN05aQnVnVVl3bE1oN0ppWWVyTGhpQW44Q29xTGF5NlNLcEkwT0ZoU2pGd2M1QUlzU3NCUE9YK28KLVkxa1BXcXpJQmVhSE9KWUh5bC95NGZ2Q3ovOFhDNm5LRDJ3RWVtMGk1MFJVTWZacUFYL0pIbUVlMmp4a0VDZ0kKLVhESVdQUExqUDR4bWIzMHFUSU83enNPUENjNlJVQ2NQZmphVFdLZHZsTDZHRTRtVWVTOCtVNFA2S3J3WTBLekEKLXlOS2FHdm0rUXNFVDhmNFlZbWE5aDhRdGptbTlvYnI2ZUhJQU9ody8vcWQ0Z25pYXUvNHhvOGNST1lKWE9ZelkKLVdNaW5MUk53TzJVOGsyaEl6ekg0YzJHNkdRMis0UEJsSndqcERqM09YNHdHMk84NklsVGdXQzlSL3FvV0RWTHIKLTZ1dXpDdGZjM2hPUXZCaHNjT0J1d1FkUkgxaDVROGF6bkh6YWZvdkpoeXVVaS9IeXdjQytFUWp1Vm5sRVVET0gKLUxRZFBjemlzeUJ5Um43dGdaVmZsS3Nnc0tHUld1MzhMaUNZSlRXTlNnRlRnUzByN3ZQWGY5c0dGRXN5ZXpIaEsKLUZGcFVNZ2EwTmJRK1RnUnYrN2pEZ2pubVh1NWZVcmwvTGRodVhFcDhwb3JoTGQwUVhOZGZ5ZDR4c3NObkhEQXEKLW5OOVNsRy9WWHFaTmUvRlg4TmJnMmR2YVhBbTJYcW5mc3M4TllTcEhkbFdRdk1QQWp6eXFpY3RxalA4bEtDSzIKLUJRK3J5dTNTaHE5alAxTG9LYnhqUjlBMWdaVWNEZTZZSWNBVW40dnUvN2VobUN2YlpJTWhEd0dDYmRyYWJ0cmsKLVk2VjAvNzRhNmxpaDBCb0lBbjVlRjVlbTF3RmxYeEdWbCtGLzVPOEladjZGdnBhSDNEWlRJd3FVVlJjMDhlYWkKLTJ6bTVPUE5MbEJpYXBmTEQ0ak9ZaS9STFdPRW4wVFZPalpDUExLK0lqOStJNHpoS1IxNGtHdGp1d1FmNzdPd2gKLTh0MXBOVzJrdXhxdEFSNlhuaVFObHJ6cmFlT0EzM1RhZ1NhQm1GVDBTdU0zTXQ2dzVpd1BUWjBHTW5TQUtDeGcKLTkzUWkvZzdHbE5nTlJiV0VWN3lXNUJKY1Z1ZW05WnpxL252VVBIUTM1TVJoQWIzTFZmNEpEWDc4aXBLTTVudU4KLW5iMXNpKzRsaHhsbDNKSzdIbVRHOXZXNVZnUkNkc2xmWW1nTGpWR0dRaXp5b0NzZC9IMysrN0FVc2tEc3B0T0cKLWM5aUp0WEUyUmJXL1ZXOGUrNFR2cU53RENydFhHYkx0dzNHR3lSb1BkckFZT3BBQmt1Rm9QMHlZdHZ3TTE2ZHAKLTJrQXZhSW50TjFhWmJHVmJsSlZOSUx2OVNmbUFSY2hlbUk1R2w4NlJmeVg5WHlQQVoyR21hMlFUWGdtMGY2QW4KLUJPWXBxSEUvN0U0dEVMNjljeXprSmp0akVTMEtxWjJCSDNVWFFOdHVld28wYng0dTlGU3Q1R1AxcWR4NXYwK0kKLXN0STFLRlRTNFBkOTdMZHNzYnluTkpzQ2V4MW5zNnpYRTYwSmxwcFhrVEZJbmxvcjRiTWk3NlBmaktZZXBRdEoKLXFJdytjRHZ0L3UxS1ZRaDhLSnYrYzF4UXVBQkprMThSRVJZQzBvczV0VFI4MVVhQkFpcU53dHRKNHZqY0M3S3UKLXlJdTVZSXF6VnFtczl1S05ZTnc9Ci0tLS0tLUVORCBFTkNSWVBURUQgUFJJVkFURSBLRVktLS0tLQpkaWZmIC0tZ2l0IGEvdGVzdHMvZGF0YV9maWxlcy9yc2FfcGtjczhfcGJlczJfcGJrZGYyXzEwMjRfM2Rlcy5kZXIgYi90ZXN0cy9kYXRhX2ZpbGVzL3JzYV9wa2NzOF9wYmVzMl9wYmtkZjJfMTAyNF8zZGVzLmRlcgpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNGY4NjBiYy4uMDAwMDAwMAotLS0gYS90ZXN0cy9kYXRhX2ZpbGVzL3JzYV9wa2NzOF9wYmVzMl9wYmtkZjJfMTAyNF8zZGVzLmRlcgorKysgL2Rldi9udWxsCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3Rlc3RzL2RhdGFfZmlsZXMvcnNhX3BrY3M4X3BiZXMyX3Bia2RmMl8xMDI0XzNkZXMucGVtIGIvdGVzdHMvZGF0YV9maWxlcy9yc2FfcGtjczhfcGJlczJfcGJrZGYyXzEwMjRfM2Rlcy5wZW0KZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGM3Y2YxODUuLjAwMDAwMDAKLS0tIGEvdGVzdHMvZGF0YV9maWxlcy9yc2FfcGtjczhfcGJlczJfcGJrZGYyXzEwMjRfM2Rlcy5wZW0KKysrIC9kZXYvbnVsbApAQCAtMSwxNyArMCwwIEBACi0tLS0tLUJFR0lOIEVOQ1JZUFRFRCBQUklWQVRFIEtFWS0tLS0tCi1NSUlDeGpCQUJna3Foa2lHOXcwQkJRMHdNekFiQmdrcWhraUc5dzBCQlF3d0RnUUlFUnlYays4VUxDZ0NBZ2dBCi1NQlFHQ0NxR1NJYjNEUU1IQkFoVWVhbzl5T2k2dXdTQ0FvRE15TUdpaTBJMnk4Q3ZNOFNyWTl0UngrWnQ4V3NQCi12aEVXaEkxa2J6V3BaVWRTMVVSV0daWno2b1MzM0dudlVEbU4xZlpDM1YvazlPY2tuWnZmdjhVdEhqNlJoSzNhCi1kQmdMVmpFa0ZmcXoyLzRjT2ZoYTlGclJVSlhYd1c1Sm1uTmhuM2U4V1pUdmJ0RXQwZTg5bjRqWldqV25rZW9KCi1yeVNLV3VQbjlTS3p3RmRQaDd1cjhOMkJmanZ3eGRBWjF1U2huai9VbWlrOG81d0paVXovN3cwbmQ3SnBjc09FCi1yOXdDNDQ2bGk4dDNvd2ttODF6NWpGVFFXOVNZWm1UMGVjSUNGMUNSSmdzcDA2MFRRekJlQUtBTTJza2lPWlhyCi1sZFFCVXFaQnJZVjJaWjMrYmVwTHJtc2dvYnhEemhpTnJSWGpzKzhsTzNUR2VyYzZaRDQ5Nlh2NVhTSkYzUXVGCi1hVWpXbmFXMllYNDZuUldZNjBCcTNJaEFidUFHRjNZR3ZrNE8vK245MFk0TlVYajhtd0xxOHNGTWxYS015eEx5Ci1mSEJmV0twd1RGZ3RkQk80blNQcm4zMTAreGlQU3hVNjFXR01aa0JsZ3Y1WDc1eGlYNVpZa3RVeFZsa3R2cjFaCi0rWlBlSU1SenVvZUs4Sjhpd3p4MUFEYk9WUENBR25QdVlidlVhbEdvR1FrakNVRWRMMDhYYXVhVWRLMGVETVRoCi01Z2gxYW1RZytQVGIvWm1ZQWhhRGpIc3V6SUlnZld0c2ZMK1hrOUFzVGltSy9xd1A2bVFMVDZLYitQb3dYM21RCi1UcjRTa0pIMzFKcDZtVHh1ZW9DdHFQRUMxQnhodURscWxUdm1QZGdJUENmNGRiRnRzRXNTR2JXUlVZdVpYZ3dnCi1RbWhwNlRDM1lOUFZ0THVzb0NNd2pYa1VTeFJoU2NBemI2UnBFR0p3TDk0Z3JGMVV2VGZsZVRHZk9wcEt4WmRHCi15anpiSmNVbGNTQ3V3ODQ0SFpEd0hWek9SUVQzenhhZ3VLdXUvWGNnSU5kNW1VMlNUT29wejNBa0hoS0xTRmVqCi1VQU5vbjZEa2U4TkxwOTZKdlgvTk44enF2YXVSSGcvcjdSZ2NTSFFXUlpwYkF6WDRiZ3NFWDJNYwotLS0tLS1FTkQgRU5DUllQVEVEIFBSSVZBVEUgS0VZLS0tLS0KZGlmZiAtLWdpdCBhL3Rlc3RzL2RhdGFfZmlsZXMvcnNhX3BrY3M4X3BiZXMyX3Bia2RmMl8xMDI0XzNkZXNfc2hhMjI0LmRlciBiL3Rlc3RzL2RhdGFfZmlsZXMvcnNhX3BrY3M4X3BiZXMyX3Bia2RmMl8xMDI0XzNkZXNfc2hhMjI0LmRlcgpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNGQ1NWE1OTEuLjAwMDAwMDAKLS0tIGEvdGVzdHMvZGF0YV9maWxlcy9yc2FfcGtjczhfcGJlczJfcGJrZGYyXzEwMjRfM2Rlc19zaGEyMjQuZGVyCisrKyAvZGV2L251bGwKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvdGVzdHMvZGF0YV9maWxlcy9yc2FfcGtjczhfcGJlczJfcGJrZGYyXzEwMjRfM2Rlc19zaGEyMjQucGVtIGIvdGVzdHMvZGF0YV9maWxlcy9yc2FfcGtjczhfcGJlczJfcGJrZGYyXzEwMjRfM2Rlc19zaGEyMjQucGVtCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiNDdiNWU4Li4wMDAwMDAwCi0tLSBhL3Rlc3RzL2RhdGFfZmlsZXMvcnNhX3BrY3M4X3BiZXMyX3Bia2RmMl8xMDI0XzNkZXNfc2hhMjI0LnBlbQorKysgL2Rldi9udWxsCkBAIC0xLDE4ICswLDAgQEAKLS0tLS0tQkVHSU4gRU5DUllQVEVEIFBSSVZBVEUgS0VZLS0tLS0KLU1JSUMxREJPQmdrcWhraUc5dzBCQlEwd1FUQXBCZ2txaGtpRzl3MEJCUXd3SEFRSWMxdmJOQy84cEhzQ0FnZ0EKLU1Bd0dDQ3FHU0liM0RRSUlCUUF3RkFZSUtvWklodmNOQXdjRUNMTWtGL0RqaGIwZkJJSUNnQWcvanY0NFR1QVEKLXlCK1dNa0hwdlZTMjVaTEphYkhVeUhMUyt2cWhFa3oyQXF2Sk5FVEwvTDZiSUhSRDFvNEJKOEZjcmMzMzlCeisKLXp1RkhuSzdKRzBQelJLbDlSY08vU1k5bGZMRk5rWHR5UHhCNkR0U1hlWVRWNDlOdEF2V1BWNDZMU0JuTXFuUDUKLS9Ua21rK3NFM0x4K3NCTXFlL3JwQmVaTTMxZkI5U2hTOUZnREdmRStBUnZ6Y3VRc2xZTmF6ZFQyS1ZldSs1VHAKLXFTTjFsaEFXMThEd28zcjFJcG5oV0daNXI2NlRFRXVuaEdJK21YOUdka0RoaEZpSEhuM3RVUGlXU2g5VUFQSDIKLVc1OS9jN3NZMFJuNUFtcWVIdTZGMmI5OVNjUmFMaGt0NmFGTm5CQWNucmpIaHFaSk9sNFVPUjdPR0wzV2xOak4KLUZYZkN6SjMvK2xBK05ORVZXU2NiNHhzNlJOUVJuSjlOSHlmZFNKdVFRTS9IWGhhVzFuU1lvRlM4bktEcGVuWEEKLThoYjNnYnJHZUIwTXlibXBHdGlSNE1oSkQ3RlduSDB1UXNBNGRPcnJ4MlhZYVBVQlpHdHF6dnJJRG16TzZqdjEKLWl4bXVTeXc3blpTWXFUNTU0dFBUOTdvQlJQSGhRVmR6N2ZHQkVxeHJCTkpSMWNRalMzNVEzb2VzNmphcnpUc3UKLXo4UkVDMVFYWnRnYldadmxtMm0waXdLaFFJdHFPZlNubE5rTDBJVUpHVUY4ajNJanovZmJOc2ZQT09icFFDaWMKLUFSejFNbnE5WmFETXJ2TU1wSkhjTWhZZTN5NzV6dXY5V09EdVBsOXZOVmM3S1JSV2dxVkRtQkhZWnFIaDRNMncKLVQ4NldyRWJuYk5FSEhQaFhnU3NhS1lYdkJEN3pXb2NmUTNyMkhFc3RIajlBbW9xc2x4SURwdHFKdi84THllOUUKLWtiditkNDhvRWtTdERJZmEwMzJIYTk1enNNcDdCdXZXU3R3bk9HMnE1c0NleE5wUWR3M01wN1kyb2VqVktSUzgKLVZjL2ljbkZ1MzVWeFpMcS92QkVGRURqemJDUTBheWsrR0tZV3lBeFc3Z3NtV3RTV0Rza3YwV2FKMGNOajV1MkwKLStCc3l6WThIdzdzPQotLS0tLS1FTkQgRU5DUllQVEVEIFBSSVZBVEUgS0VZLS0tLS0KZGlmZiAtLWdpdCBhL3Rlc3RzL2RhdGFfZmlsZXMvcnNhX3BrY3M4X3BiZXMyX3Bia2RmMl8xMDI0XzNkZXNfc2hhMjU2LmRlciBiL3Rlc3RzL2RhdGFfZmlsZXMvcnNhX3BrY3M4X3BiZXMyX3Bia2RmMl8xMDI0XzNkZXNfc2hhMjU2LmRlcgpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMmVjMjc1Zi4uMDAwMDAwMAotLS0gYS90ZXN0cy9kYXRhX2ZpbGVzL3JzYV9wa2NzOF9wYmVzMl9wYmtkZjJfMTAyNF8zZGVzX3NoYTI1Ni5kZXIKKysrIC9kZXYvbnVsbApCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS90ZXN0cy9kYXRhX2ZpbGVzL3JzYV9wa2NzOF9wYmVzMl9wYmtkZjJfMTAyNF8zZGVzX3NoYTI1Ni5wZW0gYi90ZXN0cy9kYXRhX2ZpbGVzL3JzYV9wa2NzOF9wYmVzMl9wYmtkZjJfMTAyNF8zZGVzX3NoYTI1Ni5wZW0KZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDk1OTM0NTQuLjAwMDAwMDAKLS0tIGEvdGVzdHMvZGF0YV9maWxlcy9yc2FfcGtjczhfcGJlczJfcGJrZGYyXzEwMjRfM2Rlc19zaGEyNTYucGVtCisrKyAvZGV2L251bGwKQEAgLTEsMTggKzAsMCBAQAotLS0tLS1CRUdJTiBFTkNSWVBURUQgUFJJVkFURSBLRVktLS0tLQotTUlJQzFEQk9CZ2txaGtpRzl3MEJCUTB3UVRBcEJna3Foa2lHOXcwQkJRd3dIQVFJOVJPRWo3QlpESXNDQWdnQQotTUF3R0NDcUdTSWIzRFFJSkJRQXdGQVlJS29aSWh2Y05Bd2NFQ0Q4UXpNS0NvSk5QQklJQ2dHL2c3RUdROGs3YwotNWowaHVOa1YzV2R0SDRhM2I1dzN4RDVtekd5MkxvVGFNK2lMZGF0YjdKU0E2M3Y1S21Xd1lJOVdEcUdzYkFmRQotZ0FwR2NvQWtYdGIyRmxuTU9iMWF6akRIVmtIa01Ha0lOS0Q4THZ3R0ViNS9lcVc2UWsxR1M2V0gycTdJdXJ1RwoteTc3d3N4a2syZ0xKY2RPOCtrMGFMTVpUUTVseVRtM2QyYXAyZjVRQTc4TkdvMG45ekpKczZKQVdzb1hmZE1aawotU2hyWXdKV2FBWURsRlZuM3ZuZTU1bUM1NE9teDF3Q3FOTSswa2tUdmJDUzFVOTZGWU56YnZJWmUxZ2FVTHhBYwotR2tSSWFuOE1vNWRhKzJqSTBHWmY2dzlTNUUzZjh6aTdsbHRHbGZtY040Yk1aUjNmR3dwQWRQeDdvVzlqMEdWYwotMTYyRG1uOFNTOXRnVDJwV2VEYjFEamphYmVTYzVZek1JSnBibE1KTTZLQjRnMkdwS2h1V050ZkhMSXhSME0rNwotWVR2bXdFMjVMNE9xNmJPenVNNGxYOHJwMWZUcW5PUURtWEhJQjdQTzN3K2toMm54VXdPb0IvOW5YTmxrZFV3NgotQ2JzS09yME1WOThBYjhwVHZ3aFpVbTNVaEh6T05JbkRrSEg1UE9IcXFXYzVYQ2ZwVzFmZWtVdU9Ja3IzeVBydAotRjFsWTBLQk1xNkZNY01tL2FaREFhTTZyQjJ5THpmZThFcnRBN3p3a2ZiM2o0NGJZRkZqbzNXaWFhQlVucG1wcwotb0FIZERxSk1wc2ZzMnNRZUVhN2pNYjZkR1VqbFVVLzNTK25mOWNwUUFIMnNwV2JETWhNNVNld2M5SnBHRGs0dwotNktEOUlDSHIrRmdUMHNGOGhUYkJaaWZ4QWV1WHVhcTZyM0xHYVlOczZFdkFEQzNNelNOdTBkdDJaSzRpODA0TwoteTNMU1hYLzV6VnFTYm10UTZOVzVvTDBiQVI0U1ArUUxDSnRYWUxJMG43V1dKd2VzRm9rVzNaV2d2T0plNDBnawotOW9OUThEeUJSbEs4aWVyOUsvbnlTMFZWbzZRR3hQQUtyMlRoOTYwZWtCV2xlSHI0VUduVFVGTS9pdVR1T1RKdQotbDZkbUFlVEVkYUU9Ci0tLS0tLUVORCBFTkNSWVBURUQgUFJJVkFURSBLRVktLS0tLQpkaWZmIC0tZ2l0IGEvdGVzdHMvZGF0YV9maWxlcy9yc2FfcGtjczhfcGJlczJfcGJrZGYyXzEwMjRfM2Rlc19zaGEzODQuZGVyIGIvdGVzdHMvZGF0YV9maWxlcy9yc2FfcGtjczhfcGJlczJfcGJrZGYyXzEwMjRfM2Rlc19zaGEzODQuZGVyCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxMDZhYTk5Li4wMDAwMDAwCi0tLSBhL3Rlc3RzL2RhdGFfZmlsZXMvcnNhX3BrY3M4X3BiZXMyX3Bia2RmMl8xMDI0XzNkZXNfc2hhMzg0LmRlcgorKysgL2Rldi9udWxsCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3Rlc3RzL2RhdGFfZmlsZXMvcnNhX3BrY3M4X3BiZXMyX3Bia2RmMl8xMDI0XzNkZXNfc2hhMzg0LnBlbSBiL3Rlc3RzL2RhdGFfZmlsZXMvcnNhX3BrY3M4X3BiZXMyX3Bia2RmMl8xMDI0XzNkZXNfc2hhMzg0LnBlbQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggM2JhZGRlZi4uMDAwMDAwMAotLS0gYS90ZXN0cy9kYXRhX2ZpbGVzL3JzYV9wa2NzOF9wYmVzMl9wYmtkZjJfMTAyNF8zZGVzX3NoYTM4NC5wZW0KKysrIC9kZXYvbnVsbApAQCAtMSwxOCArMCwwIEBACi0tLS0tLUJFR0lOIEVOQ1JZUFRFRCBQUklWQVRFIEtFWS0tLS0tCi1NSUlDMURCT0Jna3Foa2lHOXcwQkJRMHdRVEFwQmdrcWhraUc5dzBCQlF3d0hBUUl3RDNmcFM4UnhWa0NBZ2dBCi1NQXdHQ0NxR1NJYjNEUUlLQlFBd0ZBWUlLb1pJaHZjTkF3Y0VDT215RitDRXp3dklCSUlDZ1BGQzN6NGJVVlBNCi1FZ0xHdUxQNkNpRFBTS3VDeDNWZEF1NS9HNVdqalUrZER2RVlEdE9yVmZiQnBWaGdHQVlZdWhYbEkyYnpvTzJaCi1SUFpMd21hVlpNVVVQcUhqTlpITkQwQlBzSG5iNTRMeXcreG5oSXZpcFlwdDdtMytzd0w5SlV6Yks0YkltaHpECi0zVWRWWWFDd3ducG5BY1R5OWdsZXFvUTJpa0NYMjhPYytiWjBWVVVJWCtLVmJWT3YzZ05ONHc1dVR5VURSR2dsCi1BVzJFMklLb05OVzhvUXpaWWF0ZFNNTWI0UXUwOUhSZXZXcFVrQi8vWEdyQ2NDOGFBd3lueEhyejdoU3JKWWJ0Ci1TSlZOc3lsK2RqRlJjS2c4c3VkR1VQdWErbVlXRWVjQ3M5L01WYXRhV2ZwblQ4aFB0UFVBUXB5UnBDOVl4YStjCi15WWZsKzdqSHZKazU0THc5MlA5WUFiNWswVDU3K0c3RnB4aTZNYVhuNkZBTXFGSFkyZEpPN2N4c2c0MXFrRjZBCi1zYzNudmN4QXhqNGd0Q2dWMGQwdlZMRGpiZ2pjQWV2TGJ6T3NKVkR6Qjh5Mmk2VjVsKzIvZmZWNkRqallPOEhiCi1qVmw2cHNEc2NYNFZmWDF6a0VJeVRGMlA3N2x1WjFndlh1RkR3Myt5K0hwVUFBRTExdnZGSDFobWo3UlI3dUgrCi1ZMVk3Z1V2VUE5S1N2SVN0c1N6ZmRjUXdhWlRNTmRmVU5rUHpLSE1WWkpOUTJLWWt2OEY0UVNBN3FwQzA3S3Q5Ci00aUNqK0QrOG5NeFM5czJ4c1pvM2xna3NCM3NybW42cnlRaW1FY0xiL2NGV2JrVFNHQWFoODFVT0lWdE5KVDFsCi1UbXd2MzVyU1RFTEQ0WVZXejdDSGg5bkUySnhlTGc2V210bHpGNUFMeGk1TC9nclpVTjhseDZqTmVDOC9POGZ5Ci10d1hSL0xEMXhtQW42d3hjeHJhcW5jdEJxemtucE9QM0VpemU3cENEcE9KUjBaMVdhSHZVTGV6OEcyQ2VkRW8yCi1TdlU4WXFuSjQ0Y2VvbTJWM3dEUzQrMDA1WHEzektEWTZ4TDJodG5ESGQydk9Qc3RHTGZIeEVwcE5wakJxYTlBCi1xajIyUWRNQ3Y1OD0KLS0tLS0tRU5EIEVOQ1JZUFRFRCBQUklWQVRFIEtFWS0tLS0tCmRpZmYgLS1naXQgYS90ZXN0cy9kYXRhX2ZpbGVzL3JzYV9wa2NzOF9wYmVzMl9wYmtkZjJfMTAyNF8zZGVzX3NoYTUxMi5kZXIgYi90ZXN0cy9kYXRhX2ZpbGVzL3JzYV9wa2NzOF9wYmVzMl9wYmtkZjJfMTAyNF8zZGVzX3NoYTUxMi5kZXIKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGNiMTU4YjUuLjAwMDAwMDAKLS0tIGEvdGVzdHMvZGF0YV9maWxlcy9yc2FfcGtjczhfcGJlczJfcGJrZGYyXzEwMjRfM2Rlc19zaGE1MTIuZGVyCisrKyAvZGV2L251bGwKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvdGVzdHMvZGF0YV9maWxlcy9yc2FfcGtjczhfcGJlczJfcGJrZGYyXzEwMjRfM2Rlc19zaGE1MTIucGVtIGIvdGVzdHMvZGF0YV9maWxlcy9yc2FfcGtjczhfcGJlczJfcGJrZGYyXzEwMjRfM2Rlc19zaGE1MTIucGVtCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5NWQ5NDZiLi4wMDAwMDAwCi0tLSBhL3Rlc3RzL2RhdGFfZmlsZXMvcnNhX3BrY3M4X3BiZXMyX3Bia2RmMl8xMDI0XzNkZXNfc2hhNTEyLnBlbQorKysgL2Rldi9udWxsCkBAIC0xLDE4ICswLDAgQEAKLS0tLS0tQkVHSU4gRU5DUllQVEVEIFBSSVZBVEUgS0VZLS0tLS0KLU1JSUMxREJPQmdrcWhraUc5dzBCQlEwd1FUQXBCZ2txaGtpRzl3MEJCUXd3SEFRSU50VXdXUUowR1VBQ0FnZ0EKLU1Bd0dDQ3FHU0liM0RRSUxCUUF3RkFZSUtvWklodmNOQXdjRUNBRHE4bEZhamhWZ0JJSUNnSmZiRllvNFBrNm8KLW0wRmhDTDEvNlZ3RThvTlU4aVJiellMcytaanBIREtLczcyTjk3TTZGa1Bnd1lRbWNMQmlKZ1lEZmsrb3RqSXkKLVN2MlFPa2xuRWk4VnUyMmMrNVA3VVF4Ym9iU2YyNmhHZ1JsdnVlOXh3Qld5bG5CajlWd3ZnVUFoYktVS0pEVzIKLWxjVXJ5WkJRTTl2WDNjcGVKVU43RHNSRkEwZ3lZanVvTlRtMStZMUc0VXFaY1FVSnlJVnFTSEEvZEtwaXRuaFIKLXhSTlAvSWtrWTRHeFRFM1ZYU29PbTlLZWNBNzJpQW5CZHpyTzN5TXg3UGtXVW90Wm9sTVhLLy81ZWFjZ2luWXcKLWRTUUlaRENub2RhQzB1Z0gvN1F1S2JlM1VVeU10OWIvYTdGeDZjOENpUjN4QTFzSnQwTjl4R0swTTErSkZCcXIKLWNld1N4dkY3SStJUlJFNmJ1bzFTNXJxekJUWkZmR0FydnlrbEJLZ0MwVW1TRnU5QjI1SGNRenJCRVhNUG5lRzcKLVc3MzZqamZ3Y2x3S3dib0NYdC9nSEpCTTY5UGYyWS9PdGpmMUhHRmNseTlEK1A4U1BxOGRrQlNwNDlVYTlScEgKLWd0WHBhQmlOWjlRM0RJWE11MVU5d0xZaFlKWlF4VStGUUh1TzR3R1I3aDFLZFN6WkNnODRFL1QyMzJxRHIxUmYKLTd2TG83T0hzQXRRR1UxcFpHR29ybFRjWThLS3dkZXlvOVFrMzFqSVpmNER3TEt1K1prMXpJQ0hyRTFrdXdOVkUKLTVkY0lJS0E4NlB1NGl3Mmk5MUF0MkdKYkdKa3U5ajE3M3JTTDRJSFY0RVNVS0tvSE1IMm5jQmZqY1R0akJYWGoKLUZ5YXVGd1U2cUZvNzFXWFJNR0tacFpnUmVuSzJMeXI4L2UxZy9uRWJIRGZxTjludGdEbEpocWt1NlJPUDFKbnMKLVd6cW5XUnF1U2s5M3AweERNWkFYeFVaU21DekdsQnI1eFBoQ09tSHA3WVdackxtS1ZkV1hNLzZNRldwajVLZVcKLXJheHF3dGlMMGdVNXdrS1VrSXh2SXJqcDBQcXRVMnEyZHp3b0wwYmxBWEtFcVU0djFuTWVXMnFoWTMwcXovclQKLXd1OTVTelpnaCtRPQotLS0tLS1FTkQgRU5DUllQVEVEIFBSSVZBVEUgS0VZLS0tLS0KZGlmZiAtLWdpdCBhL3Rlc3RzL2RhdGFfZmlsZXMvcnNhX3BrY3M4X3BiZXMyX3Bia2RmMl8xMDI0X2Rlcy5kZXIgYi90ZXN0cy9kYXRhX2ZpbGVzL3JzYV9wa2NzOF9wYmVzMl9wYmtkZjJfMTAyNF9kZXMuZGVyCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2ZjFlYWMyLi4wMDAwMDAwCi0tLSBhL3Rlc3RzL2RhdGFfZmlsZXMvcnNhX3BrY3M4X3BiZXMyX3Bia2RmMl8xMDI0X2Rlcy5kZXIKKysrIC9kZXYvbnVsbApCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS90ZXN0cy9kYXRhX2ZpbGVzL3JzYV9wa2NzOF9wYmVzMl9wYmtkZjJfMTAyNF9kZXMucGVtIGIvdGVzdHMvZGF0YV9maWxlcy9yc2FfcGtjczhfcGJlczJfcGJrZGYyXzEwMjRfZGVzLnBlbQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOWZmYTUxMS4uMDAwMDAwMAotLS0gYS90ZXN0cy9kYXRhX2ZpbGVzL3JzYV9wa2NzOF9wYmVzMl9wYmtkZjJfMTAyNF9kZXMucGVtCisrKyAvZGV2L251bGwKQEAgLTEsMTcgKzAsMCBAQAotLS0tLS1CRUdJTiBFTkNSWVBURUQgUFJJVkFURSBLRVktLS0tLQotTUlJQ3d6QTlCZ2txaGtpRzl3MEJCUTB3TURBYkJna3Foa2lHOXcwQkJRd3dEZ1FJbjVxbkNBSlZMY2NDQWdnQQotTUJFR0JTc09Bd0lIQkFpNGN1TkYyd0I4NmdTQ0FvQ2l3Zjg0RDNleWFlc0NKc2lVQ2drN2Jha2t1L1kxMDQ1NgotQ3pydkxnbmVYTkNia3NSdUNiOGlGdFl0aUhRSmNVa0FrbzlCNHVWaC8zdStMOWROTW5CQUVFZmRXOEUrNDBXTQotdEpaY1gyZitGTVpQYVhObkdrUzZtR1JKYzEydFJtZysxd1pUbEtXcmsxaEh6RW9tM1NwUEhzSXZ6K2FXbFhVTwotVnEwbVlwK0NRSVJDMzExRStseENUMmFjYW1mZ3l4ck5IWnBhZlVxMkd3SzNOalM1NWpCZzVEWWNwNXVoTU92ZAotc1BUaDcyK1pYWnE4cW42ZHF1Ly9SRDNMMTNweDlHR3NkRlBjd1QwQlBkcEtZTGtKZmRBWFJZMDAyRHBqQVU5UgotazNMVnhsME85WjlWRHpqbnd5SjFxU2ptbytFano0V3NEZndUMm9MR3JuKzZVZW5Uc0h4QUUyTVhtQyttbTRyMQotQ0o2dmRrZ3c0UFRKR3hnd1ZvWGFza2Z6Q3l6NUxqVzNveUVRQVFuMERIWjFrVlMxcytwRlNRbzA1Uzd3ZmpqUgotS2NZd2ZrTWppVEh6V1E1TFFtdDgvYTdHZEtTSk5FaTFJOWNzM00vSGpsVWEzVS9LT1lyZFlsUUdwMWVEN041cAotbUZxYzE2RWRXYVBqdFZFWldXZ3ByakxGQTFTbXFBbkJ0YWg5eFNPSENPbXF4YmlVaVVhMXRRRXhnbFZZSmZUVAotY3k2SFJNQkVQNHlmbHhQck9OWWlIRkxpZ0JyYitFcjBJUng5M0JqeEdYV09yaVB5dGlZV0cvaWRqUDEwUm1teQotM21pY2hjaDhqQllMK2ZHTmlacy9zYks2K1VWZkhiQXY1bE1Odk5WdW50bG5uQ0prb2JCVGRVd3cyWUpLQWFtYgotbS9VUlRwOGsxeEtlbnpDZmMvb3FqMnpsMGovdnhyNWpzdjMwSkw4cnlIenNVS1luaHkzYW9GTnBrbnlNNktpZAotVUFhUXRZWDExKzV0dm5JK3VLeHpqVzRBWWk0NVBtTFR1bCtiTjRaYi9DeXNmR2JXUHR2NWZpeU0xbXZTbHlqLwotZkk5OGpPSzVHTTJiQUxjMWNqL1RoSzZSTnRzUndDR29ocDZSTzN3U2xtZkJkWXllN09MawotLS0tLS1FTkQgRU5DUllQVEVEIFBSSVZBVEUgS0VZLS0tLS0KZGlmZiAtLWdpdCBhL3Rlc3RzL2RhdGFfZmlsZXMvcnNhX3BrY3M4X3BiZXMyX3Bia2RmMl8xMDI0X2Rlc19zaGEyMjQuZGVyIGIvdGVzdHMvZGF0YV9maWxlcy9yc2FfcGtjczhfcGJlczJfcGJrZGYyXzEwMjRfZGVzX3NoYTIyNC5kZXIKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGQyOWExZTYuLjAwMDAwMDAKLS0tIGEvdGVzdHMvZGF0YV9maWxlcy9yc2FfcGtjczhfcGJlczJfcGJrZGYyXzEwMjRfZGVzX3NoYTIyNC5kZXIKKysrIC9kZXYvbnVsbApCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS90ZXN0cy9kYXRhX2ZpbGVzL3JzYV9wa2NzOF9wYmVzMl9wYmtkZjJfMTAyNF9kZXNfc2hhMjI0LnBlbSBiL3Rlc3RzL2RhdGFfZmlsZXMvcnNhX3BrY3M4X3BiZXMyX3Bia2RmMl8xMDI0X2Rlc19zaGEyMjQucGVtCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5ZmQwMzVjLi4wMDAwMDAwCi0tLSBhL3Rlc3RzL2RhdGFfZmlsZXMvcnNhX3BrY3M4X3BiZXMyX3Bia2RmMl8xMDI0X2Rlc19zaGEyMjQucGVtCisrKyAvZGV2L251bGwKQEAgLTEsMTggKzAsMCBAQAotLS0tLS1CRUdJTiBFTkNSWVBURUQgUFJJVkFURSBLRVktLS0tLQotTUlJQzBUQkxCZ2txaGtpRzl3MEJCUTB3UGpBcEJna3Foa2lHOXcwQkJRd3dIQVFJb040UC8xZkVaa1VDQWdnQQotTUF3R0NDcUdTSWIzRFFJSUJRQXdFUVlGS3c0REFnY0VDSm50d2hHVXE2SFhCSUlDZ0I0cWwwby9NOWx2N1B4NgotRFVaQm4xUUZkZFBycjBzbHhMSzdDb1IxZ2FicjlGSTkxbytkcHllamVMSEYyVkZVWVkzRjU2UTdmMFAwYjZGbwotK09la2dYMXlTdnNNNUVQR1pCb3BYYUFuQWFvaVl1WlJTZmlMZWF1SEhDQy9lSng1U0g1OHB3cXkwclk0ajJORAotVTFkWUIrQVZzZHBSVnYvTU9TbjZNYmxxYXV5d1RvM3JJbGVLOFNzdXl3VjdOcUlETGIzQ0hXRWtVUUVISm9GQgotTmZOYjUxdTNHRVRjcllXZjQ5VjFXQ2JmdFBIajZZSGxzZm1Vd2l2R0NpZUFuTmNrSnZVWGEyVFRYcSt0V3BPMwotOGFyMWNSSENGWlNneDJjaFRnWStTNUtvWGNTbVRwMWlsTmIwWEFEUVl5V0dWSDNGVW8xQkJWaytpd05XTTZ2QQotZDZ5aHRkQUFUc2RhQThlMjZlaFhzV0RVVjVPVnhjdGdqWDZOVmVtN2hKSkVtR3hSTFFJWWZSMVoyYnNKcC9lRwotWml3ZUlJaHNTTXlLUUkxalRCVjEwVndYOE0yb3ZmZkhmQW10eGJaS0dWUFZMbnhXK2lsQnk2WU1SNnZpWlcvMQotRVBWS2VLanFsZ1praExWQk5ndTlXc0llUDBJK1J2TlBNYVJFOGowMjhOVzcxV0dkZ3dKNFFiK1ozNjg3T2I5cQotdGdOd3AzMmlzWjBLOTlVWDZmVWo5c1Ira0VjRjB5TWF5c0UxUFhKZDU2SE55ZGZ0T1JkcTlvMGpldFphZGxFNAotV1lFdklmVWQ2VTRuSEs2T2NVc05WTkx1YTBYQjFoSCtLMUNjUGdZNkpWOTBhcHNFMDVmUDZvbmNQd0RRVDI1cwotOHd6R3BpdHVnMzBOOEN0SC9mUys0V2pKbzVxYThUby9KWmliZzNLaHVmZVJNWUtMeWZsZlYwY3A3bk10ZGJ0ZAotZTFDSTZLRmhEK29CTHpzU2RHMEJyd2FTVmZ4c2F5UVFHdXozRll4Mk5sY1RSaGdYZU0xM3BtcW12L3hvTVlxRQotK0JDMGtpUmhaMHlJaDdYcHpnL0ZaTmpidVFwUXZxYlltbHFGZEtzejZZamVLY3F2R01JOWlhdjluUkErYWczUQotcVVtRGxpST0KLS0tLS0tRU5EIEVOQ1JZUFRFRCBQUklWQVRFIEtFWS0tLS0tCmRpZmYgLS1naXQgYS90ZXN0cy9kYXRhX2ZpbGVzL3JzYV9wa2NzOF9wYmVzMl9wYmtkZjJfMTAyNF9kZXNfc2hhMjU2LmRlciBiL3Rlc3RzL2RhdGFfZmlsZXMvcnNhX3BrY3M4X3BiZXMyX3Bia2RmMl8xMDI0X2Rlc19zaGEyNTYuZGVyCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3ZjU3NmJkLi4wMDAwMDAwCi0tLSBhL3Rlc3RzL2RhdGFfZmlsZXMvcnNhX3BrY3M4X3BiZXMyX3Bia2RmMl8xMDI0X2Rlc19zaGEyNTYuZGVyCisrKyAvZGV2L251bGwKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvdGVzdHMvZGF0YV9maWxlcy9yc2FfcGtjczhfcGJlczJfcGJrZGYyXzEwMjRfZGVzX3NoYTI1Ni5wZW0gYi90ZXN0cy9kYXRhX2ZpbGVzL3JzYV9wa2NzOF9wYmVzMl9wYmtkZjJfMTAyNF9kZXNfc2hhMjU2LnBlbQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMjJkMzllMy4uMDAwMDAwMAotLS0gYS90ZXN0cy9kYXRhX2ZpbGVzL3JzYV9wa2NzOF9wYmVzMl9wYmtkZjJfMTAyNF9kZXNfc2hhMjU2LnBlbQorKysgL2Rldi9udWxsCkBAIC0xLDE4ICswLDAgQEAKLS0tLS0tQkVHSU4gRU5DUllQVEVEIFBSSVZBVEUgS0VZLS0tLS0KLU1JSUMwVEJMQmdrcWhraUc5dzBCQlEwd1BqQXBCZ2txaGtpRzl3MEJCUXd3SEFRSURoWjdRbWYySFlBQ0FnZ0EKLU1Bd0dDQ3FHU0liM0RRSUpCUUF3RVFZRkt3NERBZ2NFQ0hqNGJRL3pqTFZWQklJQ2dPWkdWQjlQaUIvTVRVWUEKLUhkaU1uYkozYWNrZzF4NU5CazRKeGxhZS80V1dCWDlDZzZ1R01BNUNQNlhsemhsRlNEamkrTDcrT2F0VzUxL0EKLTBuUkV1SldBb0FBbGF5UXVqd3VYTjVZV09IemxmODAwN0lIektRcUd0UlRqaGdHU2E1a2RkWHpmWXZxTFZzZFYKLU1BYis4VVpnYys2d08wQWcyN3JFV2p2eDRIS1V6UzAzc3FWcUYvUmwyMm9LMFZNYlZXVTEyUHFMTU1CcEw2QkEKLTE5TUtzS0RlNnlPNGZSYmlwVDNhSjBmdjZSVzZSRVNXQVhjLzlkRy9QLzBrRVpYdmk0T3dSMGRrVDBzOW0yRDMKLTdyOVorMEFLNXVTUlUvZnRjWUlmNUFSdklPTGx0Zk5OMFRVbzU4SStmN0NUS0NETFVRYkVmRExzSE51R2FBZkEKLVlSTHladWtTMWZwcFppb2cvSnR3R1FzSVdNQ2h4RTRTVlRobVlocUo0bUNVQTNJMlNYS1NhUzRUTUFQckVKbTQKLW9uT0cyTlNnSFFXZGY5Y0hOTUhlR2o0RXkrcWdESE1ZVUM0OVNjc1pRZWNkZDM5NWo1VDB6bklKazR5c2F3R3IKLTM0dnQ4SEluNmlDeHAyWmJIenFMbTFxZVYyTGdtZStHOUl4Smk5K1VSK2VMMEJaZGFDdDZ0ZHlGOS80SFhYVHoKLWhyY0hDN3ZGVlZlMUhuSzRCMkF6TzJ1aXRHRTNhRW9kUmVydHFKYmFmV3lPZmlwNkFnamJ4L0V1NUlERkZyQ1UKLUt4Z1p4VjRhZ2MzL3pqd213YXBWRVpkVHI5cHlQLzZIQnhJaGhkMEtFWDljVk1hdUNjT0E4M1UraWV6QmFaSFMKLWZyUDNHVnFCcytDekN4NG5JWGlDUmFjYy9wZjZ0ZWM5bkw3bWJyVXRUK2xRb0NPUGNKS2NVQVp5VzMwNSs1TnEKLW1HaG81eTZpK0FzRjFNMWwvQXIyZ1VHTU45Ly9Wc2NvbWJOTVJGWFVFMlE4eUw1Ly9nSlJTMXJON1UzdzVkUkkKLTNCazZwYk1wK1JsYnR6ZVMyekE5Y3VMR1d0eHZkYmxZQ285MHAyaWFtOHpxZkRLRVo0ZEZmSmxQWnZSdzJob3QKLTdCa0ZwL1E9Ci0tLS0tLUVORCBFTkNSWVBURUQgUFJJVkFURSBLRVktLS0tLQpkaWZmIC0tZ2l0IGEvdGVzdHMvZGF0YV9maWxlcy9yc2FfcGtjczhfcGJlczJfcGJrZGYyXzEwMjRfZGVzX3NoYTM4NC5kZXIgYi90ZXN0cy9kYXRhX2ZpbGVzL3JzYV9wa2NzOF9wYmVzMl9wYmtkZjJfMTAyNF9kZXNfc2hhMzg0LmRlcgpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNDQ0NTIzNS4uMDAwMDAwMAotLS0gYS90ZXN0cy9kYXRhX2ZpbGVzL3JzYV9wa2NzOF9wYmVzMl9wYmtkZjJfMTAyNF9kZXNfc2hhMzg0LmRlcgorKysgL2Rldi9udWxsCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3Rlc3RzL2RhdGFfZmlsZXMvcnNhX3BrY3M4X3BiZXMyX3Bia2RmMl8xMDI0X2Rlc19zaGEzODQucGVtIGIvdGVzdHMvZGF0YV9maWxlcy9yc2FfcGtjczhfcGJlczJfcGJrZGYyXzEwMjRfZGVzX3NoYTM4NC5wZW0KZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGY4ZGJmNDAuLjAwMDAwMDAKLS0tIGEvdGVzdHMvZGF0YV9maWxlcy9yc2FfcGtjczhfcGJlczJfcGJrZGYyXzEwMjRfZGVzX3NoYTM4NC5wZW0KKysrIC9kZXYvbnVsbApAQCAtMSwxOCArMCwwIEBACi0tLS0tLUJFR0lOIEVOQ1JZUFRFRCBQUklWQVRFIEtFWS0tLS0tCi1NSUlDMFRCTEJna3Foa2lHOXcwQkJRMHdQakFwQmdrcWhraUc5dzBCQlF3d0hBUUl5amlINHBnaUlvY0NBZ2dBCi1NQXdHQ0NxR1NJYjNEUUlLQlFBd0VRWUZLdzREQWdjRUNFZHlFOGNHWnFCQkJJSUNnSWRJZlJRTkZGRU90cXdMCi1sQjJ2WnlicTliY2FqVVNMdllubDJxL0U5RW0yUXpnbXNFZ2dlYkNkeVJ2UGpOV2Z1b1BJWU81WlFZaG5VNVlNCi1WMXVNSXdBbGcvNkpqOEZWQU1nWm5hSHlrdHgydXNZQ2VjVFhYdGZ0aDBkK1EwRVZxSTIrblhacVVvaWFPUkZzCi1Gc3hIWlRGOVZIcHYzMGVkR1Iyd1E0Y1NVYlJBN3Y3aE1rcFFWVEx3TnVwSGQzMjdmaWtlNGRGcVBWK2lyQVB5Ci1ZTVY4U1d4RWljcEI1d0NxUnFISWh0eHYyN1hXMFVLOEtpL0djcFZPMFB6UzB2VEpsMlQ3OUYvb016bzduY2I1Ci1yVXZ2cTB4SWZleTBpQ1diVWZFdVFyS1M2V21BaktqVFhKSm5jMkV1WlZyRzNQZ0RWT1MvUU80VmNIelhUUzVyCi10SFEzdXVsTUJRalpPakdUVWJYbjJNRDdaM29YanVLbXlXYW1hcG9yZXNFaDFheE53NDVtZ2MwY0hNQjg2VUhjCi1rK3lDaHBFVHp0UnpkY0pNNU1SZmhKT2tEZlUrOG9EMFFVSHFpKzBwRWRxdzZNUHNGUWV3SFE4MDFwWnVXWDVtCi1mdkRCRllZS3RjM3VqTlJ5QjV5eTZNdXNBTEVjNFBoUVQ5M3NZUjVrM2pLN056dk4wMzVzeVJmL1p1K0xVSlBPCi03NXg3V21peDBoNmZlczlDdjYzZW4rUG1CSFZ2ZUxVK2FTTTYvd1hvQStSME83QlNtVVNJNFBXYjZQRjVFSWZmCi1ZcWQwWldOSUpZK2dDOFp3ZnRlQS9HVzhYaStEV3hGNDNTZURVWktYQ3NWVTdUWGF3dXVqdE55UCtRT3h4aEJnCi15ZEliTTYvaFE2MkxoaFFEbWNDTmxQaDBxbGR2cWJjdkZyUmpSS0RYRkRvSTZGMXo4Z2ZNeUFHVFlBWFBmeXFRCi1CVDkzUjEvUk1ScytoYUxxVVpKSndwYUxqcFFtZDNBYm1IZTFtSGZpbGJZMUQzS3pYT1hmSGxzRGw1WUFjQlFnCi1IcEZhVnVsZ0hMckJ1czlvdTVqZ09wVm5UaXpxRHB2NVlTVzVnempkWkJQeUYzczVqeExaZlkxMVNkak93Vm92Ci1oMzRlVFRRPQotLS0tLS1FTkQgRU5DUllQVEVEIFBSSVZBVEUgS0VZLS0tLS0KZGlmZiAtLWdpdCBhL3Rlc3RzL2RhdGFfZmlsZXMvcnNhX3BrY3M4X3BiZXMyX3Bia2RmMl8xMDI0X2Rlc19zaGE1MTIuZGVyIGIvdGVzdHMvZGF0YV9maWxlcy9yc2FfcGtjczhfcGJlczJfcGJrZGYyXzEwMjRfZGVzX3NoYTUxMi5kZXIKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDQwMGFhNWQuLjAwMDAwMDAKLS0tIGEvdGVzdHMvZGF0YV9maWxlcy9yc2FfcGtjczhfcGJlczJfcGJrZGYyXzEwMjRfZGVzX3NoYTUxMi5kZXIKKysrIC9kZXYvbnVsbApCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS90ZXN0cy9kYXRhX2ZpbGVzL3JzYV9wa2NzOF9wYmVzMl9wYmtkZjJfMTAyNF9kZXNfc2hhNTEyLnBlbSBiL3Rlc3RzL2RhdGFfZmlsZXMvcnNhX3BrY3M4X3BiZXMyX3Bia2RmMl8xMDI0X2Rlc19zaGE1MTIucGVtCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxMjcyNWFiLi4wMDAwMDAwCi0tLSBhL3Rlc3RzL2RhdGFfZmlsZXMvcnNhX3BrY3M4X3BiZXMyX3Bia2RmMl8xMDI0X2Rlc19zaGE1MTIucGVtCisrKyAvZGV2L251bGwKQEAgLTEsMTggKzAsMCBAQAotLS0tLS1CRUdJTiBFTkNSWVBURUQgUFJJVkFURSBLRVktLS0tLQotTUlJQzBUQkxCZ2txaGtpRzl3MEJCUTB3UGpBcEJna3Foa2lHOXcwQkJRd3dIQVFJRWZyNjFQTFJTc3dDQWdnQQotTUF3R0NDcUdTSWIzRFFJTEJRQXdFUVlGS3c0REFnY0VDSWlzM2tkVjNNcXlCSUlDZ044Y1ZXV2hNd2l4MVlGMQotNWF0b1QxVTFFV0dPVW9rVnRiK29UbHFKZk12blplQ0hjNmtZTXdiV3ZUcWdhODhBVWhTc3NGTDlXYVhQYjY3YQotQmxoWVlraWpOZE9jdTdtMFYzMzFSV2R6eEdBWUhIdjZaYis0MysvYTNmeDBoWXdXc0FLQkxLbllYYnhBY2tBMQotTlN1SXRLbnlyV0NwcnZoZWxOTEpSQlkzYUpHOUVlcWpJZWgwTUxGTWJJaEZKb3NuQjdvTWxpWVZ1NER4bk1OcQotSnpXb2lCSGxsZ2lkalptL3ZUVG1mSDlnTDB5YTZUd0JnbWo0Z092UnUzMFA5d2RCUHhTN0laaTB4ajYxOFNNbQotZU9TVmRScHV4dlg0Z3pRMFR1V1R6RklSZGhDRng1ZkwzNjZ0VmNhL1laKzlxUk81b09xQXVjVktXWjV6Y01WcAoteUQxU09qTURQN3grM0xCeklZQVliNzRrSG9sOGVqSVFNM0lyTzBuekFOZXI1TS9LV0lSYlhvRHV5THplaXFyRwotRmJ6cEwva0FRMzdMN28rR1M2Z3lZZ04wbFFvWnhsZ1R0NHQxK0RDTkFNV2g0eG1GVE5KZ1hCNmE4NDZ1NmM0MQotSzRHUXJ3T1hHQXIwcFlkTmc0NGZCNWZxdys1OTRWS3hIRWErN01wTXZ6b3M0d3NJU2tyQ2piRlJWQ3VPNzhIWQotcndzRDZwV3RhYzAyZmcrOCthOGNUbVVYR2t6b0VLRTgwaFRDMHIxU08ydzBSYWJ5alRIeFJReVp0Y0NnYXZrcgotRTZBdmJhYnEzR0RkeFQ0SXBUSTZMaURLRmFSVXB4TW5UeVRvVGxHenNpN3NqRUxIRHFnT3c0L1BiVGVOZXlKSAotUFBxb0I3MXA5RGppdHB3MHBsVW9POU1XUVFQV0I3cm8zVzBnKzJsUzE3ODJ3VGsrOWpXQkRWZGdEVjgrRllKRwotY3I0R3hvQURIRk90MnZpS2YrN2NxNVpQOEh4dkxmSEY0a1VMc2xlYTJBTSszeVRRNVRUQWFoQ2JHT1BWSmdhQQotdGNxT1pJR3BJeGsrYVJjZVpScktQZXJYUm1adlJJdGJnWitRVUN3M2tSeGd6YW5PSEI2NzFqcCtWT1JNRnpKUgotamhwbDBycz0KLS0tLS0tRU5EIEVOQ1JZUFRFRCBQUklWQVRFIEtFWS0tLS0tCmRpZmYgLS1naXQgYS90ZXN0cy9kYXRhX2ZpbGVzL3JzYV9wa2NzOF9wYmVzMl9wYmtkZjJfMjA0OF8zZGVzLmRlciBiL3Rlc3RzL2RhdGFfZmlsZXMvcnNhX3BrY3M4X3BiZXMyX3Bia2RmMl8yMDQ4XzNkZXMuZGVyCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlZGEzN2FhLi4wMDAwMDAwCi0tLSBhL3Rlc3RzL2RhdGFfZmlsZXMvcnNhX3BrY3M4X3BiZXMyX3Bia2RmMl8yMDQ4XzNkZXMuZGVyCisrKyAvZGV2L251bGwKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvdGVzdHMvZGF0YV9maWxlcy9yc2FfcGtjczhfcGJlczJfcGJrZGYyXzIwNDhfM2Rlcy5wZW0gYi90ZXN0cy9kYXRhX2ZpbGVzL3JzYV9wa2NzOF9wYmVzMl9wYmtkZjJfMjA0OF8zZGVzLnBlbQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMjdjZmUzMy4uMDAwMDAwMAotLS0gYS90ZXN0cy9kYXRhX2ZpbGVzL3JzYV9wa2NzOF9wYmVzMl9wYmtkZjJfMjA0OF8zZGVzLnBlbQorKysgL2Rldi9udWxsCkBAIC0xLDMwICswLDAgQEAKLS0tLS0tQkVHSU4gRU5DUllQVEVEIFBSSVZBVEUgS0VZLS0tLS0KLU1JSUZEakJBQmdrcWhraUc5dzBCQlEwd016QWJCZ2txaGtpRzl3MEJCUXd3RGdRSVpkSVRHQW8vNTBvQ0FnZ0EKLU1CUUdDQ3FHU0liM0RRTUhCQWpmV0NBVXdNT3VGUVNDQk1nL1N0SXg4Q1VMbllrOUNYZUcvK0VnMTlYVktJa28KLXRiM0hUSWdDMDlOQlhETVBadzFDNDdNT1NvMWk3UER1d0QvaTVRZHVLcFdQRFFNV2NrM3NqZjQzazZRMmRhUnoKLTcrZFlMVTVsb0tOUlo3SGlZdU9EU0wxNS9uaHp3Rm1oc3VQRm0wMy9TQ1FxV2ZwNkZ0WnZTRERYSHR6UEc0TEcKLXYrT2FWbzVYNU4vQXF2UDVjZEIyZzRxMmwvTUR0WSsvbTE5WHF6QUFXdm12WmpaeE9KK3hMazFqeksrdVNpMEIKLVgvRStUZEVTR0lzZVZXdThGWG0rNFdOa3Z3TzRwRmpKQnl6Y3NrYXpVcXZXVmdtRXJNVXYybFRMblpWc2pqVDMKLW9NMXdZNTV6c2dnNFlEcHY4dEJqM1g4QTZFbU05Qng5QzNxeGVyWkgzWHcycXVOT2NSVXgzVm1aNTBwNDZuTmgKLU9nOXYwT1FLWmlEN1orK0w5cXVaOFBTbWpjZ3E5NTlDd2g4ci9FRnhESE03OGdTVHhBNjhVSmZOeFBqbXZ4bWgKLTlHa0kzbFFTcDhaRDRkRlVVdWpVdEkwUW1CNHhOVTk1RkhMUlFtZytMNmkrNnZFSDZGYXF5RTFVQjExeStsa3MKLTFpdDcwTmtNWngrYVIweWQxVWdFN1JWWnhYb2xOTGFxNWhNWGNTMzJQNTdkcXpJY2x1S0dNY3BBbU9NMXVhR2gKLUJ3azNyTlg4Q0ZTWC9RSjZRZFpqeTZrMCtXeG1RRDFkSjViYzArV01ldVQ4cnBHcHFTdndYeWVhaWthZ1U2c0gKLUpGZ2FMbVdld2Q1eFk5LytXQ2UwblBLSjlVcVNDUTZIb2QwKzJCaWlEZ25mRFdlQkQvRTBnUGNWVjlzZE1lV2kKLWFhaUlHZC9hMll4QjV5VzBvQUlCQkZubTVrb1RXZUtXL0srTERXT0U2N1MycVN4SWZyMWdvRnhJRGJlMVkyTXYKLXREZld6VFZwL0d4VHBJeEt4b2JDaUVCV3JrNGU4dlVNcDI1SmpuZTRmVzErL2J3SVpCamlycGdCTzl3L2ZJWFUKLUx1RUVaZ0V5Y3pHZ0d1bGlqLzdQOVhoeU1GRVBtcjQzTHBPbzBwb0ZwUkhqdkJDRktadXh3LytQYnhSaFNxQzEKLU92MGQzMlhsTnpPcXRrbFF2NFhaYzEzQU9LSkdkUnF3L2g1R1h1ZDFhMDVzZ1V1d1FxWDA5a0RqUXVKNmhtOVoKLWZ0V2loYnpTVXhSZzZVTXo4WlBBQXpsNTZwS1lSRWZWVi9VTko5dTFQRkRnMHBlUURkbDBwbDdxbCtEaTF2NzYKLXdHamYzSlE3WXkrekdrV2ZudlNIT1dKczVLeXlqM0RrbDhmSkEvQXdZVXZzZDFKZGZYSFlWUjF2eGc0dkl5V3IKLWQ2WVU2Wm1FdFlFN0VlWUVrRDB4ZUtPdGtlRXdnRmNJQXV2MzlKNzFFcjNDRHdzTUtKYXBEN1pXUEcwdTZOaTAKLUNGMmE5aWdZTittUEFvc3RjVm00d0JJWGFtL3daZ0R4VFlYNGVYdHVWVmMzVklyK1hVM0czV2VTM0tDZ2lnU1UKLUZ0bHVKcmkwMkpzb1NzVHZUeEdmYTdwallncjJJWHJTZVFZUFowM2lrR0RhK3dHTlNKbGlOaEU0TExiYk9LRnAKLVNTdFRPN3lFWGFXcFlING1WV0s2cnVsdzhBSFFDNDV0OFhIdFczVVUrbzNlRTRYTCtkekN2cWxFakJ3SkFRMkoKLTJ5eW14YzRHQXJkMzJkREV1SFpFRVl3cG0yMmNYMGFRM3lKdytyaEdhMGg3MmZwWkVhT3JDTjBjZHc2bTFVYU4KLXBvckVIMm9ZT2VSNlNFNXFkdTYrUHlId3FWTmdkeGJ5K2RxYm4xRDNOZnNCV2c5Qm5xT2dCV1VnSUdLbVJLSEQKLXJtRDAzYy8yeXFJbnpFRXptU3psUVBTMENQNDlvMEE4cElBUC80M0d3ZmxUMXd0RHc4MERzR21ncUlSaXlXZnAKLXU1bjBPY3U2VXJLeExkbHB2OWhMSFRNYnZVWk1pTE9lZjdJSytLK0J4YzVkWHR0UGU3cnRCTmh6SnAwMGJ5OHEKLUN4SmM1dFlXYjF5anpuQUNDNmhPc29MeUdBYkY3UzBpS3pqZWEzS2NxbkpDMjdvQjRpQ0ZwSElURlJ0d0cyUjEKLStJUT0KLS0tLS0tRU5EIEVOQ1JZUFRFRCBQUklWQVRFIEtFWS0tLS0tCmRpZmYgLS1naXQgYS90ZXN0cy9kYXRhX2ZpbGVzL3JzYV9wa2NzOF9wYmVzMl9wYmtkZjJfMjA0OF8zZGVzX3NoYTIyNC5kZXIgYi90ZXN0cy9kYXRhX2ZpbGVzL3JzYV9wa2NzOF9wYmVzMl9wYmtkZjJfMjA0OF8zZGVzX3NoYTIyNC5kZXIKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDU2ZTE3ZWEuLjAwMDAwMDAKLS0tIGEvdGVzdHMvZGF0YV9maWxlcy9yc2FfcGtjczhfcGJlczJfcGJrZGYyXzIwNDhfM2Rlc19zaGEyMjQuZGVyCisrKyAvZGV2L251bGwKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvdGVzdHMvZGF0YV9maWxlcy9yc2FfcGtjczhfcGJlczJfcGJrZGYyXzIwNDhfM2Rlc19zaGEyMjQucGVtIGIvdGVzdHMvZGF0YV9maWxlcy9yc2FfcGtjczhfcGJlczJfcGJrZGYyXzIwNDhfM2Rlc19zaGEyMjQucGVtCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4ZWQ2NDYwLi4wMDAwMDAwCi0tLSBhL3Rlc3RzL2RhdGFfZmlsZXMvcnNhX3BrY3M4X3BiZXMyX3Bia2RmMl8yMDQ4XzNkZXNfc2hhMjI0LnBlbQorKysgL2Rldi9udWxsCkBAIC0xLDMwICswLDAgQEAKLS0tLS0tQkVHSU4gRU5DUllQVEVEIFBSSVZBVEUgS0VZLS0tLS0KLU1JSUZIREJPQmdrcWhraUc5dzBCQlEwd1FUQXBCZ2txaGtpRzl3MEJCUXd3SEFRSXVyM0Ixd1JaV0owQ0FnZ0EKLU1Bd0dDQ3FHU0liM0RRSUlCUUF3RkFZSUtvWklodmNOQXdjRUNFbktQbXI2d2lOdUJJSUV5S05adUVYSWswRW8KLUFDN0tuSldhRWhTRHNyNHp0ZS91R0RUZU9HUlZUNk1yZWFXVUgzaS96d0hYc2F2RUJzdzlrc0xZcXhYc0llSjkKLWpmYm4yNGd4bG5LQzROUi9HeURhSVVCbndHbENaS0d4b3Rlb1hCRFhiUVRGR0xlSEtzMEFCVXFqTFphUEt2TkIKLXF0OXdRUyt6UThJNnpTUXlzbFVmY0RyM0NaTmdIQURkbURGaUtpc0FtVDFwYnRCZ1Bnem14TE5TbXg5QzFxd0cKLWVqdVovU0owWVlBZFJQa0RoMXAyeUVpQUlmUlZGVGdXY2psdGNkNjl5RGs3aHVBLzJWQ3hXSnlWRENHckVubG0KLVVKeXliVWNYWG9mbmVCcC9nMEozbmphSWJJZnRtWUlDKzc2M0VLRC9kcVZJUlhWeHJrSHlZY3ZaMm5WTlVUNzMKLVVmbGsrSnVISWpUTzRqSFhpUGNhUGRBRVBMZUIyRDNHZXE1SVNZT3ZUek9ldXJmRDE2WTlock4zSUhpOWdlZG0KLUpUY0VQa0F4MmhjYjE5aDc0WGxWNXRjUTVJbXNQZ0xSbDBldU9ETjA3K25qMTRBRnhDUWh1b0d4K1lqMDROa0sKLWRWL2wxckxzYm1MaXFyNG4reTVlekdyMEdKQVJWaW5MQ0JlaHB0enhhaXBYUHpSVzcxSVFTZGRidGxTbDFyejUKLU5wdjBIbHdHZ3dUYWN2N1QwWmRXbmNhdzBWanhqWEF3SEJEODJmQ2l1SDNxWkFYRWEwTTRkcnhST2VJbmNhcnQKLU1Ja3k5cUlSamZJbXIzb2g2R0x4TkJCM0ZFRkZmKzIzQ08rUXQzdnJoMGo4c1ZZbjNjcGJnSGNxdjBxNGZjYTcKLVNxMm9rdzRSanhjREh5TGdXaVIyMHRVa3FKVDhGWVFyMHUwQXkrTFQyWVZWTzcrRVFWcXZscmFRY09TNEZrZmEKLVZuZ2duNnNkeWhXV0NWMXJhYjB2ODFxWllCdlJvVUsveW5JQ0tDYlhhSjhkMW1pcmROR2dzM0Z4cFZBaVVQWjYKLUxZWjIxVXd0ajlPb2VFUTA2R1BLcTYweEhqVW1Uc05pRWtoMzFBSWxTQWdkc04vMCtwVWlENmYxbENXZmlMVWkKLThNdUZVRFhxa3FYQXZuSlcyL21Lckx2Y3g3RWJtMDJya053N0FkQW5VbkV4OUJHeEQxQjBUVlp0UmlkNm1QU08KLWtYdjdhZE55Qkg3cW9JOXZHR1ExcHROUmNOeGh4cWdHZ3Rmd0krMG1WNlA2RzhCSk1sOHVyWllOOGFBQzdkSlgKLS9rOUVJQ1RVY09VNm5JeUZGZTh0azRra2NqZG85Qk5rZ0I0SmpBTlQ0cHRSMnc5NTB0WVZxRE1IQm0xZUtQQkMKLWJMM1NuRERtNENwbHN5N3pBZFVQc0NlNy9aazNLMlNKd1VqL2xEVVRER0NUdHE0UnBsZkRFQldiMjE4WFdnQTYKLXJIZ2k5L0VGSDNZQ1pNOEVpRTlNbng5VWFmZG5mS2hrM3RtM0k1bktvNTZDNTRvcy9FS0w4VytsaFhZZEs5ZHoKLXBlZWhUc2pFUWpGMC8xT0UwMDk3WGxDU2hQOEUwYmRsdW9Ga0Q4bUtZQzdtR3YwbXVKTHVIZEdNRWFDS3pLb1MKLUxCS3BaTllkT3Uyd2xGZkNrZjh6U1dPNGVaWUtiU1VMODhBb0VNN0Eva3F1UXNRbmI4MEZrY2lQRmF6bEY5bGIKLWloeGgzWUQrVE5INTh6cFl2cWdPWmtCZmxXNGtLSVlieVdPbStBUk1xK2VWcGgxYU5LTWR6ZVc3R21mMUZhYjMKLVNRbWZ1RUJBZlM4dTVnaFczSjU3cThnU0pTR0I4YnBZV0FtTkdHZVFFMmc4QzZIVHhKMzRrVTJIb0ZMbzhhMS8KLWNxckV4V2wwL2xraHdxYzdQcHZKYktJTXhWT09YdFZNcnpHMlhCQ2tmUVNtdHd3T3FIMWc2QVp2KzZzWHlMWkoKLVBtdlErUi8yMytlRHFwL2x5bXowRzZGNkIxMHBsZGdxdDVGSFl4R2FWRXA3R0l4NkwrR3RJNkcycUd4cEhKQTkKLXgvL3IzZ2RkMjFGZDZ5N3FIWU9MTzRmRVlBZTJzTjBtSlZqeEZMc2c5QWhDemZ4S0VIc2l0NUxNZFRrR0ZSRzAKLVhHUC9Rc1ZOY1dKYVl5YUtUWGFUQ1E9PQotLS0tLS1FTkQgRU5DUllQVEVEIFBSSVZBVEUgS0VZLS0tLS0KZGlmZiAtLWdpdCBhL3Rlc3RzL2RhdGFfZmlsZXMvcnNhX3BrY3M4X3BiZXMyX3Bia2RmMl8yMDQ4XzNkZXNfc2hhMjU2LmRlciBiL3Rlc3RzL2RhdGFfZmlsZXMvcnNhX3BrY3M4X3BiZXMyX3Bia2RmMl8yMDQ4XzNkZXNfc2hhMjU2LmRlcgpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggODQ3ZGU3YS4uMDAwMDAwMAotLS0gYS90ZXN0cy9kYXRhX2ZpbGVzL3JzYV9wa2NzOF9wYmVzMl9wYmtkZjJfMjA0OF8zZGVzX3NoYTI1Ni5kZXIKKysrIC9kZXYvbnVsbApCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS90ZXN0cy9kYXRhX2ZpbGVzL3JzYV9wa2NzOF9wYmVzMl9wYmtkZjJfMjA0OF8zZGVzX3NoYTI1Ni5wZW0gYi90ZXN0cy9kYXRhX2ZpbGVzL3JzYV9wa2NzOF9wYmVzMl9wYmtkZjJfMjA0OF8zZGVzX3NoYTI1Ni5wZW0KZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDMzYTc3MGUuLjAwMDAwMDAKLS0tIGEvdGVzdHMvZGF0YV9maWxlcy9yc2FfcGtjczhfcGJlczJfcGJrZGYyXzIwNDhfM2Rlc19zaGEyNTYucGVtCisrKyAvZGV2L251bGwKQEAgLTEsMzAgKzAsMCBAQAotLS0tLS1CRUdJTiBFTkNSWVBURUQgUFJJVkFURSBLRVktLS0tLQotTUlJRkhEQk9CZ2txaGtpRzl3MEJCUTB3UVRBcEJna3Foa2lHOXcwQkJRd3dIQVFJdi9YOThFUHZqY1lDQWdnQQotTUF3R0NDcUdTSWIzRFFJSkJRQXdGQVlJS29aSWh2Y05Bd2NFQ081RUJPdW1tWnJ6QklJRXlHK3FyS2hHRTRUWAotY2g5UVVmTEJoY2tscnBjZDR4T0YwRmZ3VmZhTzE3Z1dBT3AyVWtkbTFNQm9mMWZGMndVMGhORytkWCt3SU1oTQotL01GWld4NUowUExVTG1BZSttNXJFVnFSVlkxM0t4YTVVSjhXNG9nbFhWZmVSa1R2eXVXcjBPdjhFNHdyaDE5Mwotam1HWEErakFqTVphQWdIV1p6bUhEWDBOd0Vlb2l0a0ZFWEpjM3R0N1dBYXE5My9RbXRUWUtINWVvYWUxN00xbwoteWlTQXhJMXVOekhyeVBSdCs2aHAxeitzQ0FjbmlJZTBmRjZHcm1rUzlLY0Z6Tzk5eWVoaHJ4eW9qaUZQTFNEcgotQ2Z2OG1XWTduVVNGQVc1VUJSNktBNkdncDI3RnlLWEtjL2s5ZnZaekFTSnp5anhHOTBGSHlJRWR4dzVLc1dVNQotTkFBTytQMkRhOGFYMnhjdEFuS3hZNzhjRkI5SXU1UlNDR2M5MnBwK0c3T2NkRlVqWHNZWHI5S0VYOXM1Yk9iaAotVHVZR3RlcEhFS0xhakZaOUp2aGpRbS90MmxZYTBHR0JOSDVqMXd3bWZkSXFaWlI4Mm1ZZ3NnVlZoeXA4TkMrWQotWXc3Sy9yalpEZ3BRWVNyVUhHeGxQWW94WndBSHZiVEh1VHVHSTNOM21TNmtLNFkyTlkwT0xRT3JWbkZHTlQ1NwotRVIyTEsyUERVcmszdHFUd3BJY1JLSXFlTVJheXFOUTlNVXNqalErdit5UGNid2JaNzhDaTJuaXE0dmNscSs4NAotdFJlTHMvSkJvNFdIZmR0RmR6Q25JcUxWeDJLNm1qa2FHTDVxN3RLWVFvRGpIeGFVN1JwOGNxeTRkM0VGb3ZacgotVzE1RVphRm83MHZzeE42RGtyN2xrSmRCYkRiZVFDZGtUeUw0c0xpbVlLc2VsS1paTFVsL2dLdzJoQ0M4dmZvVQotSmpzN3RkNElRMHZoQnRWVDQ2UFVkTG52eGNxcEdvWUJNaVZObEdZb3dQMHVnZDJNSElTRmVNWXl0U1NxNEtxbgotME9uYnFHMjYyV251eFhJdWZtODZLVHM5Yy94MStaVHJBS3JrNlhhcm1iRjhJN3BCMGpCak9iWm50R21aMDViRgotdkpnUlVEQXg5c2hlTndQUGlJTS83dHRDRG94VTFlc2NUK3U0bDY3NUZrSE1oWkRVU0xTUnFWTnZHbXQvRVMyRgotYy9kSXE0aURHZ0crTVpQODVTMDlhaDVLS3J1REU3d3ZaZHBBN05UV3pTTi9GTDZKb2tVK0dzYVdHdDMySG1pYQotT0s4Ri9DUnRVZkhGVWpMSWsvK3Y1d3pxWVdxSTNMam9yWFFTVjlwV210YWhwMWNMUTVXYmE5dnNQUC9XdmkrMgotbTdGeUJFSnRnS1A4MTNZT05ENVpHK05uZGxrVWFod2RpdEdKMlh0cFM0c0RoRnlRNTBvUW02dlZZM254bGt5aQotN2djQ0U4eE9JOHVmRlM3Q0JsMTJwRnlzNVhTNmh0a21CYk1TbmNPb05vN1Axa3V1L24rQ2NqQ25XQVkxaUZzTgotT2tZT0tEWmxSZGtiaXNoNEpxVGUwTGRSVjJDY3BHbURvWmtNcUFvL2dhY3dlVDFPc3dneFBacVJBbGFha0RzawotMHord3kxd05nSmxMRjZNaHViMXpUMTVlMVErL3dIVU5zQWNJUmJFc3E0dmZTVm41NjIvdW1xcVZabGVIVWZvQgotdEFLQUFJd2VlNWFOQjhmQmNVRkNxaU5QRkdueXVKZEV5MlFDdS94aUZRNE01RUdHQXBQT29RcFNDdTQwWDhreAotdElzSWlocXVBTGxMMm54N2pQdkJJcGFzS3E5U1JSZzU0VllwKzVXUUJWeFVTQVk5RXNhUlN1TnJrVEpURzg4cQotNFdPNXJIVzNXRlpPd2ZVMkxHdmpoejdTWSs5SDdCL0E1YVJ1VHVVOUJrVm5tNXc5V3RrUzVwSFUyNFdKMzRNWQotTEVTSDF5RTk5T3R2SHV6NVB3WDFrY29ZS2RHbmQ2T2VOa1JMV2w3MkdlVGlVOGJUSmtCOFNIeDlPbDRrVlR1SAotZlBzWS9la1BoMHJTdWhqN0wwa0NUUEpxVTArWGZsM3JxV0FLbHBYTEZ6TUt5SUVodTlrR2dHUkFyN2tCOUFDTAotb2NYL0lmSkRjR1JxUDljcEJJMDRhQT09Ci0tLS0tLUVORCBFTkNSWVBURUQgUFJJVkFURSBLRVktLS0tLQpkaWZmIC0tZ2l0IGEvdGVzdHMvZGF0YV9maWxlcy9yc2FfcGtjczhfcGJlczJfcGJrZGYyXzIwNDhfM2Rlc19zaGEzODQuZGVyIGIvdGVzdHMvZGF0YV9maWxlcy9yc2FfcGtjczhfcGJlczJfcGJrZGYyXzIwNDhfM2Rlc19zaGEzODQuZGVyCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1YTdjNjBmLi4wMDAwMDAwCi0tLSBhL3Rlc3RzL2RhdGFfZmlsZXMvcnNhX3BrY3M4X3BiZXMyX3Bia2RmMl8yMDQ4XzNkZXNfc2hhMzg0LmRlcgorKysgL2Rldi9udWxsCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3Rlc3RzL2RhdGFfZmlsZXMvcnNhX3BrY3M4X3BiZXMyX3Bia2RmMl8yMDQ4XzNkZXNfc2hhMzg0LnBlbSBiL3Rlc3RzL2RhdGFfZmlsZXMvcnNhX3BrY3M4X3BiZXMyX3Bia2RmMl8yMDQ4XzNkZXNfc2hhMzg0LnBlbQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMGQxYjU4Ny4uMDAwMDAwMAotLS0gYS90ZXN0cy9kYXRhX2ZpbGVzL3JzYV9wa2NzOF9wYmVzMl9wYmtkZjJfMjA0OF8zZGVzX3NoYTM4NC5wZW0KKysrIC9kZXYvbnVsbApAQCAtMSwzMCArMCwwIEBACi0tLS0tLUJFR0lOIEVOQ1JZUFRFRCBQUklWQVRFIEtFWS0tLS0tCi1NSUlGSERCT0Jna3Foa2lHOXcwQkJRMHdRVEFwQmdrcWhraUc5dzBCQlF3d0hBUUlZRmNzOFVobjJwb0NBZ2dBCi1NQXdHQ0NxR1NJYjNEUUlLQlFBd0ZBWUlLb1pJaHZjTkF3Y0VDS0NCTGwrQyszbkNCSUlFeUVuSVBsWGRoMWUzCi0rY255aFg3ZENSelIvTnN5Z2NSQkpVUGR3UlVNQWFPby90K29aeEZtSG5ibGNoeFErcEZvSHJJOUdWd2c4dUlECi1tZUVIbHpTU0t0OGtPVHZKM0MxNDhqUkZKeTYxWUg2azVHRU4rejVpaFM5dVRzemFYUlVsRXNHZlAxL1N6V1k5Ci1NRStwWCswa3dKNGF6ODdtWUt5TlV3SzRVNWQ2NUljMzBwdlJKYzR1bnZGdFJ6Nnd0d3FVK0VWMjgzcFhIZnljCi1WTmdRRmpiMUlQSEV6L1BTdUU5cDk0bVF2ZEliVm11SzJkUmlNYWcvSGNBQnZWaHh6TGxkS3lFSEhockhSMHBhCi1nYzQxKzNIVmp6MGI2UlBFMjR6TnJ4QTliVSsxVVJHd2xrSWxoN0pwYy9adVlSajZMUTMzeFVkWVpjTVp3MGI0Ci1wU0ZKY1VnWCtHVVhMeVdMcWhJeHhjK0dJZUwyVnQ1RzBlYTVLRXF4T3ZTajJiSlYyL0pBMEt0bXJjSWpYNUt6Ci1kLzliQXZ4YXRjcUlpa1ZOVmtRcFVjMWdsS2lJQmZWcm15SjRYVWxYOWk1RjNjZ2wxOHpyWVVJNHpQU0JuOG81Ci15eFNmQ3VJTXgrM3pTNEJpeXVnR05PY2xJYnBMTWpRdU1yWHhydDdTK1FsWGZkYlh2eU5meGEzcWZxZjcvUDJrCi15a3hsMHoxYmp2a2NrNlhvRkdYZGIxM2lzVUV0WTJOanVqWktaZTU1QkxHcXI3RnNJSVFTVEFIaWx3TXBLK0NWCi1mQTFFTDRjazErN0ZWK2w4Zkowbk4xTGkxeE9uRGVBRnVPMm05MXVpYk5NWVB2UlNvWDljK0hRS1hDZEdmaXVrCi01dGZOYXE4YmJYZUlKL1A4d1RqTVpxSTJsNkhaUnVYdnZtUkhOMnpaNEJTc1QzKzYxeHR2U1RJU0VpbURTbTVUCi1oWVk1ODNMRzVscEZvT0MwWTRFVXcvbHRtUXBLVzdBR2tMZzdTeUM5b0t2b2VXTTRjMnQ4SHJMM2lLUFh0a3dkCi1BL2lFZlpUeHptUjU3dStaTWxid3MwZXZQaVpRbWw4dm9KbnVUNnF3Ym9zN2c3Vi9QYzNSaitiODRKWmNJMkp6Ci1EODkvVnVkSUhmRkRUWEMvZ2NTUkc0YmQwZ2xJTEpIVDlGT0NBbFg1VEV1UnllV2Fzb1ZPVittM1BpOHZRTTF1Ci10Q3NqRTlVZG9JZGhvSTVqOTRWaHpIQXBkRDRmZVBjUVc5RHlzWWEyUjEwZ1dJWktVdmhVSEgzRldMUjJYMmdLCi1XaXo1WWtoRUdYQlJ0REhkNGN4OEVNMWJKTUt3RnlZWGpYVFBHZkdsR2lQdDhiOXU0RisrSWxzS2NnR2dQSXZoCi0yckltNGpIdU4zTFJSbEZrSjVCMGt1T094WjZHQmZ4YXNTK0l4NERab0lmcVpzR05JNVd1MmlrR1pPS3hYN0lqCi1HOVJ2Y2RwVlY4QzJZK005cUkyK3g5M1dBdFErTlJKbzQvK2dKME85YlZVaGpqQW1JSHUyYk10YnZyOWFQSmhkCi1PcEI5VlF4QjNjNW1FWGtOT1Y1Mm9PR25JR1ZqYkpNYjRlMy9NUnBXdFRGVmNYNnIyMDBHbjZIbjNNbldaWGRkCi1IN3BPcEFvd1RjVGxGY2JKMFdXamZaeWdqNUhLS1VPRnpQWU5uWEtpemp6UWhGNnlLMG1waEtGWSs4dHBGUXFCCi1tVi8xSGxXSlRTc0FtaC9GTjIxQjJxcStLUml3TWRwektJRUtDNDdtSytkenpvMW1yVHFtRXh2YmlhTEc4dXByCi1LTWIvbEVuU0Nhc2laS1RoNzFKMys1dlVFK053NzNyWU5aY2RoN2ZqK0dCSzlLSjNoZEt3WWMvOXl5UXgxTHVhCi00YVhuVU02dlFBc1YrT0xZTlFFOHZYTVJ0dWZ0YlBiVjlzcWlCTFBJYy8wUDJFSjltYkV5ZThGTStrb0hVQ0tvCi14dEplNVNLMzZETXdBYXM2dGppbW91VmdXVGNBZGJxOXI4alFsQ0oxV3hYUFVjQ0pkdjZwRlFVR0tRKzM0VE1LCi11V09oRXJVTlJkcWVsOUR0aFU1aWc1ZFpzMkRxbHpiUnpXWW9zWmMxQjZRNC9udWEySmlCaThJZXF0UElMcjJhCi1KWUo5RE56eG4wN2xjRkhpVmdySnVBPT0KLS0tLS0tRU5EIEVOQ1JZUFRFRCBQUklWQVRFIEtFWS0tLS0tCmRpZmYgLS1naXQgYS90ZXN0cy9kYXRhX2ZpbGVzL3JzYV9wa2NzOF9wYmVzMl9wYmtkZjJfMjA0OF8zZGVzX3NoYTUxMi5kZXIgYi90ZXN0cy9kYXRhX2ZpbGVzL3JzYV9wa2NzOF9wYmVzMl9wYmtkZjJfMjA0OF8zZGVzX3NoYTUxMi5kZXIKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDUxZDRjYjAuLjAwMDAwMDAKLS0tIGEvdGVzdHMvZGF0YV9maWxlcy9yc2FfcGtjczhfcGJlczJfcGJrZGYyXzIwNDhfM2Rlc19zaGE1MTIuZGVyCisrKyAvZGV2L251bGwKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvdGVzdHMvZGF0YV9maWxlcy9yc2FfcGtjczhfcGJlczJfcGJrZGYyXzIwNDhfM2Rlc19zaGE1MTIucGVtIGIvdGVzdHMvZGF0YV9maWxlcy9yc2FfcGtjczhfcGJlczJfcGJrZGYyXzIwNDhfM2Rlc19zaGE1MTIucGVtCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkZDk4OTdiLi4wMDAwMDAwCi0tLSBhL3Rlc3RzL2RhdGFfZmlsZXMvcnNhX3BrY3M4X3BiZXMyX3Bia2RmMl8yMDQ4XzNkZXNfc2hhNTEyLnBlbQorKysgL2Rldi9udWxsCkBAIC0xLDMwICswLDAgQEAKLS0tLS0tQkVHSU4gRU5DUllQVEVEIFBSSVZBVEUgS0VZLS0tLS0KLU1JSUZIREJPQmdrcWhraUc5dzBCQlEwd1FUQXBCZ2txaGtpRzl3MEJCUXd3SEFRSTl6OGdWSmJ0cXh3Q0FnZ0EKLU1Bd0dDQ3FHU0liM0RRSUxCUUF3RkFZSUtvWklodmNOQXdjRUNDUXFRSFJGZUZkZUJJSUV5TUpwWTBBMjFHckMKLXBLQkwwN0Y3ek95dUZJZHdRVDJmMHduTDZsUFd2VWcwMk0yamxIQ0xEWWxjaUNlVWhFOWZIVURBNjc4MTRsdk0KLWRsWjhLZ0NzcCsybXFrb1pCL2hSdnZTK1pkVXFrd1NJMUozV3Q1aHo0ZEtxMGNlYkpXcERBY1kvKzAzMSt6VFUKLTlpQ3NoZnNXQUdkbGNBSUJaT0VYRHdlak5mSWF5cDVjRkt2UXFnN2ttRUQrS043MVFtU1ZtVnlLYWZoNW0wU0MKLTJZM0NvWlRRMTk4MlZJbXg0Wk9maCtyODZYTmtyS0xqM0tZQzFLNkRSNjRVd3EyeUxOb3lwVGpkVWlnODFzdGUKLURocW0rMFlYVk40ZHhYQ0xGNGRlc0tXeE45djc4Vm1DdUh2WWtSeXVuajlRNDNHVnA1MWNNUWZGUkJMV0lxbkIKLU9yVDhrMDIwbG5lME14TzF4anUyc3IzR1dBNFduNk1McXJ4U2RmVHErUDdaWWNTaDJCY2hrRFBzbHhpNWdOUFMKLUh2NW8yOHJrVlcvSzM0VVF3NzJLdXI1SkdNUk53SnB5ZTJyU1BVYnRMS2IwejgxblB6Sk1QK0JDbDlEdHRUcjIKLXpEa2tuL0FGQlJ1S0gwdVdyS3YrOWY3RkR1NGh4c2RGRm5MY0Q2a1dsWC9WMzdiNXRZQWN5OUF0ZDdseWt3OEYKLUs4d0FvWVpIeXpZYUlSNW90WVY1WGdqTWN3K3o5VSs1dDRvdVhTWWdodDg4WTEwVHExSVluSXgwSTU1S2FWNDQKLXVDZHJwdHNLblhYV3ZJdXg4aDhwL1NVd3ZKT3JFQ2Mvbll4eWZTNDJkaUgzVjNWR1Y3OGZ3Nm43NG5ET1luTEsKLXJ1SUFTZzkyVFhVcDNRZDh4ZG9pcWRUZng4WkNnTnkwbW1yWXljclAzY1VjaUFZVVJ1S1dqamRUTisrZmsyVngKLVJ3MUtURmdUZjBaM2R4RU1JS0RISERpR1ViTzljRThvRU1XQ3YwWUo5bjk3c3VvSU4zdk9jaWZ4Ry85M1JFNU0KLTF4ZTkxSUVZNDk0L0RkZ3NNcWIwRDRUMEc1cmJGSG5OWThiVERLSURwdlpLemNibm05dm54UGk3UTFTMWtrSkcKLTIzMGFwRHoxUmxuMEFGTzUxU0FWUzhRb0Y1d1A2OWNMOXZyQzVtaVZoM213cWtEVm9IbkxOcEpyVDFvL1hjVlIKLUpsMWoxdDlsZ0ZOSmhWVGx0VFB6YTRGeWRYUmUyWkJDTktwRGNpMWpGdEQ4S1laR09DYytQUXRKMFd0Y3g0cUoKLUtWR081MmdVVCtEU3htYUtkKzNSeUc3TXNEdzFDUFQ4aW5Ia0FDYTJHK0dHUXZxdWtiakxwcFFEa3ZtVVBrVGEKLWZFb3RNWXFubHZxem53aVdVUmw5NjJseVJKSnN4Q2xDNlE5UjdQZTdweG9oc3RoSUhnWkZNTXVFQ2VuVWRoWWoKLTNUZHF0S0tkYlNob0YyU0Jud1lVVlNjSDJWUjJaRThaTGxsZE5JQStXc3dHNHgyNDJOb2VtRTc2SkM2RHlVUU4KLVdheEZMTDgxM1RtaUxZdFJxMVFac2lxQ3FyMmpSQk1KQTRjZEN0NGpNWlhwTGQ4aGV2aU50Y1BtZjZ1RXBIVjYKLVZCUW11bjhkQ1FBVWVDSEtzcmtPTG5BY25ySWw5Z1BseVI2cVZBSTh0bmZzNEllempudkFoNytjTjhjUTFBWncKLXhSdm9BSEpmUjdHTVQ3UnAvR1RMclNZVStzd2xuanJETFE3RHdaNnNlT1Z5em1LbzF6Ump5c1E3cUY1bTZFTHAKLWhsdTZFRDEvVlpadzJrU2J2NkJWelltV0hDR251eWwvbjl6WEltTVI5dmNNL3VUb2dqYy8zOEY0ekJsU3l6NzgKLXdIeTRFV01uMmpXeVJZWUZmd3dMdnJ4bVUxSUhrTlVLWWZhTTZxZXE3RjhSN2NxYlpoWjFjQ3JBR2NJaFByUHkKLWlnN2lFbVRibFJ3K0FSbVkrY2pVdUp0YlUvYTM4a0VmQ01JYktLblVnNHZVbk82czJYQ0dHOVRwbWNMUjFUaS8KLTgwdE9zRXV2ZzVaSkIzRkZHSGhTSDFnRE1BS1F3Q2tjUDR3YlAvWWh6QmhxOVdVMjRBQTgyUnRPc0ZWNHhqRlYKLXB0eVYrUG1FcEpsMERwRGVJdjBJK3c9PQotLS0tLS1FTkQgRU5DUllQVEVEIFBSSVZBVEUgS0VZLS0tLS0KZGlmZiAtLWdpdCBhL3Rlc3RzL2RhdGFfZmlsZXMvcnNhX3BrY3M4X3BiZXMyX3Bia2RmMl8yMDQ4X2FlczEyOGNiY19zaGEzODQuZGVyIGIvdGVzdHMvZGF0YV9maWxlcy9yc2FfcGtjczhfcGJlczJfcGJrZGYyXzIwNDhfYWVzMTI4Y2JjX3NoYTM4NC5kZXIKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwNTE5NDAuLjAwMDAwMDAKLS0tIGEvdGVzdHMvZGF0YV9maWxlcy9yc2FfcGtjczhfcGJlczJfcGJrZGYyXzIwNDhfYWVzMTI4Y2JjX3NoYTM4NC5kZXIKKysrIC9kZXYvbnVsbApCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS90ZXN0cy9kYXRhX2ZpbGVzL3JzYV9wa2NzOF9wYmVzMl9wYmtkZjJfMjA0OF9hZXMxMjhjYmNfc2hhMzg0LnBlbSBiL3Rlc3RzL2RhdGFfZmlsZXMvcnNhX3BrY3M4X3BiZXMyX3Bia2RmMl8yMDQ4X2FlczEyOGNiY19zaGEzODQucGVtCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiOTlhZjJjLi4wMDAwMDAwCi0tLSBhL3Rlc3RzL2RhdGFfZmlsZXMvcnNhX3BrY3M4X3BiZXMyX3Bia2RmMl8yMDQ4X2FlczEyOGNiY19zaGEzODQucGVtCisrKyAvZGV2L251bGwKQEAgLTEsMzAgKzAsMCBAQAotLS0tLS1CRUdJTiBFTkNSWVBURUQgUFJJVkFURSBLRVktLS0tLQotTUlJRkxUQlhCZ2txaGtpRzl3MEJCUTB3U2pBcEJna3Foa2lHOXcwQkJRd3dIQVFJSUQ0QVlmNW9YY0lDQWdnQQotTUF3R0NDcUdTSWIzRFFJS0JRQXdIUVlKWUlaSUFXVURCQUVDQkJDdHNxMVpHUkdRUERPWjVIV2oyV00zQklJRQotMEc2WFlPZFd4K2dxRG5YYlY0L0k4by93aGR4VUtOWGk2bGhySkhRQm5sK3FRUFNKbkRsNGxINi9VN0xpbXllTQotU0FTTjloMkJxT1FoTGkrRlB4dzE5Vm43SXpLa05lNGMyUzg3dDI3L3A5c3M4amdiS2ZFRFBKNzd1eE1iNjRlQQotV0FtRGpPcjFlTCtITTU0cEl4cldjSEtVTnJmbGlmZnl6Y3djVHFmOTlPUmo5UWVHSjM3WHVaN1JMTXhmb09pagotNHYxWVZiU1ZsTVg1U00wdEk5L0F0bTNmVUcxelZBbTNwM1NyU0FPcjlGa1ZFMHdoL2FDNWY1S25NenVyQnE4SgotZjh6R3JDUDRBbVhpb3dic0orR0NwS0JxT0IybUZwQmpXdDJjd1lQdVp6UDVWVWFYaUp5T2dPWVh2eExGNFRwQgotK3BEaEpmcytQMGlHMVNXc3NmTE9rcDdzbUZXdG93RnJHbjN5NW5ESEhkM1A4L3Z5RURTMDJoZEp4b0x3ME1CZQotekQzYVZlYUlTT01xamM0M2NBMjdLcDd1dkc3ODE0WEFYZTFNUHQ3Qm01Q0dhOWs2WHRWaE1UcDZSQkt4TDJvdwotM1U4U2pBM1B0dUxMYk5FQjhGREdpMk1Dc29ER2ZtWGRPWnFKUEpkeFNiTFdsNS8zODVpcnNVS1FEbkRLOXhyNQotdFlWQWpQTEs0dGtkdEJnR0IrWXYyYlJZalBkcUtpTnJFMkF1dUZOOEVTcW9pcjBnT1diR2dwbWREcFZoRzFhegotWS9EeXYxSmN0ZVhvL3MzUHNJWk9YWERRRUs3ZmRyOW8vUVdZNjJLSkNJUVhQWlU3SzRnMmFXTGJNTjhwV2FidAotM21wQmVDZWlMejArbWlTd0hGU2ZUZy93ZWVnb2dyZmVCdFNWNnpGY0JTRzBuejczSlQxVTZVNGVjREFzdWsyMwotbm1Mbm0zdCtuM01UWlUxOFd4VGlRcnEwbjVnT3IxWG9HZHVHUVlCQlMvYmhGb1FvV3ZWUStnYUNhUjFoRjRhcAotVTV2VGpZbWRJdjZIcS9HbDNzTnBIMzI0TlZUUTJKSUh6ZEl0eWFaaVR1Z3I4OSs3WXhQeHBMOXB3Skp5enRkeQotMzFsNEF2QW90OXZFSldINndQQzV2NjZNUXJxY0pSdGRUOEJ1RUoyUkZLa3FQMHdONjZKQzdxaHRtNHY1b1ZncAotdGJsR2NQNG9XSE1xQVp1WVViZ0pZaDVzRVhNc08ydGJwMmNrS09SMTBlditZenE4dlE5QVlGU09MTmtGQUliQQotbHh2MERKb25VMjg4QThSZWkzV1lVOVBmWWlZV0s3Y1AvSTQweHR4T0plM2NRRWhRVEJKd1Q2SzFzdjdRMEhBYQotaHM1UDJ1NDVYcUpoMndhcUprZW9lcmkwcDIwV25TZmNXbW92ME9JTXR4V1FNVDZZYjYydithS2srbnFsdXJJegotQm12SnZnWkp0bmhsSlc3V2ZiU0Yza0REOFdaYm1hYkorcmZQY2x4NS9IeWgwSmZhSFNKRGE5VmQ4NTE4L3dwNAotVGNwdGNxN0dDOTNTdDdQRzZSVGc0blp6cmd1d2R6QlZlREdCMEJqUDR4SS90ekVrazBNZ0ZHQUw2SkRhL0ZMdgotNUw4TU9qZUNMd1dPOU90Vmp0MDJhbWMyNlNNbXBFSXl6aDVmL2VYV0RCSUxuWkFnYm5pZXF5UW0yK0tzdlE4NwotOWFRZExsQzRSdk83M2YrNUNreWdmNnZySVcvbjhIVm1IbUx2K3FldWRWZ0lpWVpWejMvR3RpRkpqdWF5TXIvRAotU2d2cnpOeVJ3OFNRV241VjBPUnkvM3U4NlpmcmFJcTNmYWxJRkpHWkRHOXJkZ1lvQk5IemhNZU9YTCtmcXFIYQotZWd2T1FiZkE0anBtdGJXVXhlcUxxczFiWThUOWhHVzhsclJtN1RvZnN1eERQT3orVmFqRi8rbHFXcnZYcDYrOAotVnAxMElnNDJYODhUVXJvV1JyT1NYVWtSNDVYanEvWEc1TTVtYlpRcUJ5Z1dTcVFKOUxyVHp1OXlxaFlzcXppQgotdG53WFZwdWRLLzlHSzdPS0VzaEowcy9Ic0xGSEFGUkJQSm5WUDBjWFRFZzlFY3pnR0JMTFQ2d0FqNXp5MGR4egotUGU4WTQ2SzZ3VVVIUDRZOUlRbUoraS9kQmZpYXF1U05LS2RxTVU3c1Q1Y2QKLS0tLS0tRU5EIEVOQ1JZUFRFRCBQUklWQVRFIEtFWS0tLS0tCmRpZmYgLS1naXQgYS90ZXN0cy9kYXRhX2ZpbGVzL3JzYV9wa2NzOF9wYmVzMl9wYmtkZjJfMjA0OF9hZXMxOTJjYmNfc2hhMzg0LmRlciBiL3Rlc3RzL2RhdGFfZmlsZXMvcnNhX3BrY3M4X3BiZXMyX3Bia2RmMl8yMDQ4X2FlczE5MmNiY19zaGEzODQuZGVyCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmYzFjY2IzLi4wMDAwMDAwCi0tLSBhL3Rlc3RzL2RhdGFfZmlsZXMvcnNhX3BrY3M4X3BiZXMyX3Bia2RmMl8yMDQ4X2FlczE5MmNiY19zaGEzODQuZGVyCisrKyAvZGV2L251bGwKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvdGVzdHMvZGF0YV9maWxlcy9yc2FfcGtjczhfcGJlczJfcGJrZGYyXzIwNDhfYWVzMTkyY2JjX3NoYTM4NC5wZW0gYi90ZXN0cy9kYXRhX2ZpbGVzL3JzYV9wa2NzOF9wYmVzMl9wYmtkZjJfMjA0OF9hZXMxOTJjYmNfc2hhMzg0LnBlbQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMGEzNmE3MS4uMDAwMDAwMAotLS0gYS90ZXN0cy9kYXRhX2ZpbGVzL3JzYV9wa2NzOF9wYmVzMl9wYmtkZjJfMjA0OF9hZXMxOTJjYmNfc2hhMzg0LnBlbQorKysgL2Rldi9udWxsCkBAIC0xLDMwICswLDAgQEAKLS0tLS0tQkVHSU4gRU5DUllQVEVEIFBSSVZBVEUgS0VZLS0tLS0KLU1JSUZMVEJYQmdrcWhraUc5dzBCQlEwd1NqQXBCZ2txaGtpRzl3MEJCUXd3SEFRSThpK090UjB3YkQwQ0FnZ0EKLU1Bd0dDQ3FHU0liM0RRSUtCUUF3SFFZSllJWklBV1VEQkFFV0JCQkh2T3ExMjk0UDE4YmVrenlZVnA0UUJJSUUKLTBBSm5aSGpQWmNQWUtkU05hTmZQZmMycytVbVRnWWVMQ3VuNXNkKzlLSVl5b3pKMmxqWlRpanNkcC9oSXRXVHUKLURtSHJmTFRMVjhtdEwvT0ZKODN1MHJEb0hWZlNyREx3Rk1BeS9ubWJ0bExZUEZFZlU5TVE4czJPdHZLdW9ibUkKLWIzeDdiK01yVGxHNUNvbnB0c1FRdzV0bDNkemE5RFpHZkhVbk8yRXpYb3J5dFNNTEZDR2VRc2t6Yk43WS9TYmYKLTIrSUw1eW9pZmNmUGRkVGJLRHlUYTc3SzI1MTZ0SzIrV1RVL1ZVZnYycjVkNVNpaXZaTHVNaklZcmJuZUhZb3EKLWhXMzBCWm96Q3FKS0o1RzJqd05qTFVqUGlyQTZxdFMwWTF0SWI1clJqWjBwU3kxWDVvSVFMMmxhWkxyRG85Z1AKLS9VZDhtMWsybnY5VXY5SFBNK0c0eENNU2lKVmFwdFlQeXpGUUFDY1NkQS9CVlVkQkMwRXd6SWoybmJhb0FsTTAKLStzWjJBc2JvaG5kcy9Bc0R6Ky9iNk1hTUtnOU9ub29ydDB6Ri9IdHBTSUk2K1dTbXZHT2FWMjQ2OUpFSXZabFUKLUpJbjFZdWdwRFBJZTYvQjM1SjlzWWZ2Vk5LVnN2Sm50Q0t4bWN6Nk53MlZ2UEtYQzNvL2JzZUJxQWhMS0RNWloKLUhyM2lkM083Yk4ybmczbEt1R29mbVFlTVluVzR6YjRjb1h5dGRjL1hDdmY2M3hFME5zVUVCRnVSTXBjOWlvY0MKLTJSTUJFek55RTR0bmlnSTYxVC96a3B3Z0JpYzFwL2lzR29YTWRQV2wrWitJQUlZZ3l4T1Z3TzlnNzh5Vlc5dHAKLTF4RjlXekpyR0hLTlQ5UkxtSU55bzNqdC93Umo4UStUMEVHNDVjRFFjSHdweVhkTlM2MTRoVUNJYWVUdlFjUjkKLThGK2Y0RDhJdkwrR0p0MkV0YnFMK0Q2ODdYL2hwdE5laHBGZit1eEdpSFFmcnRPdllTL0FyTnJld2ExdHM5bnEKLVNNQUU3SGI3TXpGZG5oRHFSRkJhKy8vSDFqdk5rRHgzcVhmYjEvTU5FOHBSNnZqY3VlS0tRMEJ6bHJOWDFPMkMKLW96ME9DTWVEZlhaaFdkWW1OakxOY2Rib25ydnE1WjluT1VFZHcybE5XRUxUNGxPQW1xZ0EveEJGZFFhNGdsQ3gKLVdTMXI2RHlqZ1RkR2xQYmNHdWdSdVRjWVhOeDZpaWtXem9TMTM2OW1heitXVjlxVzdyOGtBMUZzN1dVaVluT2IKLUkxRTA2eVFLVkFOZSt0MlNRWU4yalBLM0VzRkZPQnhHOXRsY1hiWlZ4dng5bTZYSlI3ZjdZbkxQTitiMGYxcUYKLWNUMmM1SWhLNXBLUmlaZHM4MmxXQm5rK2VsaStxVVhJTElCYkR2Qm1ZNFB5UGsra3lld0FISTFIV0Jmb1NILzMKLWFMSVY2SlBnd2pBSktucjArK2pVcUVUSUQveUd5TEhOTnkxdTRBTHlBZmJGVlUvL1JHbXdBeGhyQk5QZFZWR2IKLXJCZktMK1ZMOEh1L201WFdYZXowbkhLeUQ4SjFpL1hPMU91dEJzWFl4RW42WG51OXJKbjhGNm5KK1hCM3p0NksKLVFka1VwODV0M0dNMHd5aXp1UFJXSnJTVmZZeWpWNDF5RUJYcWUybGdxVFQ5ZHB2cGdJUnR2VWVxODNlOFBELzMKLTZxS29lVHYrM2NwcENGWjN2TEFyR3ZzdlJUY2JmYzNZRXpYeHo2Z2MvMUhUemQ4VXBDbkEvOStqZXBHM0l6UkwKLTFiTHM4UVZ6SUJBVC9VcHVDNlFXVWRBUi9KWk1FRkxVNUZuUmg2b1h1aDJaeXM2Nk90N0x5TmhuR2xTRVBsWEkKLXBvbFVSeDBiZXcrUWlnQkdpSDdOcHlNZ1JpOVdoKzFIT0Evd3NBcDRYN08rRGhhWDZ2ZGlEYlFvaWxOMUxjbFUKLVRSRlNocHVheHdSQTFlazJKejNKTG43d0NzR2FWWHJkMnYvQ2dyeG9mQ1d6R2pSMlJXajloQWtWNGVvSjNHNkEKLXgzRGhNUnJxWGMvTzNPTjlUeWhLQlpQMWczNUluNWJabUJVdi9vKzdlWVY3S0RFVHhQd3NEM0ErZENxVUpPYlUKLWt5WmVodTJEc2Z5WkZJOThTbmVjUnBiME0wdmk2Wlp1ZUN5a09WZWM2eGtYCi0tLS0tLUVORCBFTkNSWVBURUQgUFJJVkFURSBLRVktLS0tLQpkaWZmIC0tZ2l0IGEvdGVzdHMvZGF0YV9maWxlcy9yc2FfcGtjczhfcGJlczJfcGJrZGYyXzIwNDhfYWVzMjU2Y2JjX3NoYTM4NC5kZXIgYi90ZXN0cy9kYXRhX2ZpbGVzL3JzYV9wa2NzOF9wYmVzMl9wYmtkZjJfMjA0OF9hZXMyNTZjYmNfc2hhMzg0LmRlcgpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMTM2Y2ZiOS4uMDAwMDAwMAotLS0gYS90ZXN0cy9kYXRhX2ZpbGVzL3JzYV9wa2NzOF9wYmVzMl9wYmtkZjJfMjA0OF9hZXMyNTZjYmNfc2hhMzg0LmRlcgorKysgL2Rldi9udWxsCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3Rlc3RzL2RhdGFfZmlsZXMvcnNhX3BrY3M4X3BiZXMyX3Bia2RmMl8yMDQ4X2FlczI1NmNiY19zaGEzODQucGVtIGIvdGVzdHMvZGF0YV9maWxlcy9yc2FfcGtjczhfcGJlczJfcGJrZGYyXzIwNDhfYWVzMjU2Y2JjX3NoYTM4NC5wZW0KZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGRhMmU5MGYuLjAwMDAwMDAKLS0tIGEvdGVzdHMvZGF0YV9maWxlcy9yc2FfcGtjczhfcGJlczJfcGJrZGYyXzIwNDhfYWVzMjU2Y2JjX3NoYTM4NC5wZW0KKysrIC9kZXYvbnVsbApAQCAtMSwzMCArMCwwIEBACi0tLS0tLUJFR0lOIEVOQ1JZUFRFRCBQUklWQVRFIEtFWS0tLS0tCi1NSUlGTFRCWEJna3Foa2lHOXcwQkJRMHdTakFwQmdrcWhraUc5dzBCQlF3d0hBUUloV2cwWGU5MGRBY0NBZ2dBCi1NQXdHQ0NxR1NJYjNEUUlLQlFBd0hRWUpZSVpJQVdVREJBRXFCQkNSRTYwazBVUlpCa2kraGx6YXhnWmdCSUlFCi0wSGZmbjFzZzNxTk5Va0ZESGRidlU5RTMrYWFNSktXcURTNGJVcUdndVQ3VHozNlRQTTFkclVaU0Z5V3ZQZ05ZCi1kWG9ueHUrMmg2anpSbnkwY2xQeXAza0NiSkVxZ3Z5ajBsYUtOQWZWMWZtSlJWa0lGaUNNczBpQkxRbnlqQUpiCi1JSjhoR3hzbm90ZHZtTDNvVHZIcTBZYXdQWFJYVkRDNHFlTytQemNEalNaNjJFK0J6MWJFMi90TGlmMUJLZDBrCi1RYmNjc0Q5cEN5RjhwYXVDQXhnTjJBV1dkdXMzSXpIK2hXVWY0RFRUN0FoQ2RZTmlqWStabUJnS0drSm9KV3dsCi1hSVpyUEdKN3ROSURlY1F0ODZ4TGZmS2lmSS9iMmRPNWUzUTFOZ056SE03N25jb2VMcjluRlNsc2MyVzNxQS9BCi1nRURjdUdqMXVqY2hLSzcwUGhmejUwSE1mblAzcENxTGs4akRJNzgvVFN2SERpYmxGNjhoc1ViQXN2YnRITnU2Ci0rQVhsRGRTVTJiY1J5UVJzanZhZjJsTUx0K3FrVVgrUDY0MFNLblhJWWExbzlkdjQrYWxFNFhUWmFpbW1PbmFvCi1EalltNmJUSEFZY0UvL0RXL0xYdDdWK3ExS0NQcXBvSE1SMTQwdnlqSVJOOHVFY1BYeVRrYTZsVTM0eXBJaFViCi1ON2dnTHJYckNqaDNuSm8rbkN0WE9JTWY5TzllRDlJLzBpOGRrdFpGdVRSajFzTy96OUoveEZ4SFRkQkcvQkI1Ci0xTUVtd3JpUnVicnc1VWQrdVhuUnErbGc1clczbjQrNVRCdndZcS9HTGZ5ajM2b2plZ2JFOE9kTWZKSnFDZGQ0Ci16eXdNWHdZaU1pNzZnWUF3RUw2MERXUm4rM3Z1ZDAyUXdZOGhCWGZpT1BxMmt4YXp2Wk01U1d5LzFiUGdTdGtuCi1mRzl1ekU4bi9BQlpBMFhXdVY4aE5BY3hZbFMrMHMzSWd1dnZIb2dRdFFNWVRUZy9EM09PRHBjMGYvK3kzTzhOCi1xSTVJeW0xU3JXcG5GOHZWRlpzTWJsTURyK3RiZUN2WVErSHVhVGMwTDVjcEFvem9ZN2lDenVxd0RIRnJZVHpDCi1yU1o3MFYrRlE5NTZtNHhrQ0J1NlRyenF6aEE4emZERnMzejlMZlY2MnY5ekxnVVM4dUNLU0tXeHpuTTBJZGlFCi1abk5yd2FFMXhzTzVRTjhMZnZsTzROVlZ4Ti9BVGllNXRtbExuZFM0YzJaa3N3Y1IzV002Y1cxYnVWYUlQc3o3Ci1sVTdzYmQvSTlwV3B6ZDNlWk5rVnJXcHlXeHZGUXhCVU5OQzVJWGNnUkJac0dnVkdSdzM1TEJsV1hLbHVLclZpCi1aL0ZBZjIzZHQzbjJTNGR0SitGZDIrWUwvWWlLMGxxdHJtK0drU2ptTXZWUTU3UEpuOFF2VzM1OWU0UXN4RHlOCi13djZpRVFEVXFaY1E4OWdnZEdkb1NGRmdCdEZBQ2M5aUNLc3U1QWpUSmwrVHFsL0EzRlY3U3dZRGZad1F1VDRlCi1nYzRkWlB1U1NWZDhjdHRVZUZVbXRyUENNeDJuUDdaRFZZRnJaeUswN2VBSUw4OWd2M2JZV3U4Ui93TUtOdnpyCi1nMEFvMCtBbmZMSmcxMUM4cEFoSmVhMWR4d3U3ZzZMU3BBK29DWm92NFJwcVVuTEtNQ3BQYnlweUZoU2l6WnRGCi1ldkRNZis1YVVBYmUwK1pzQ2pVVCtSZnRwellDUFY5dUdoWWhMTUlGUlAvN0ZDY0hNckRuN0NiQWVrdG0wNjNVCi1Fd1AyTzFyVXJNaFBXcVJ6dHg3MWNHQmxvZVZQRThEZHduc29ycjRNN0VYaWhaY3ZOc0xmejNOOU5Vb3BrVTNNCi1zTTJmRUFucTJLTXlycndWR1JTSHZtNzBnVURwSmVGYW5SQnNJOXoxVHI0cjN1dEhJSVErMHU5cEZQYlFsbjBRCi00WDRVN0tiS0M0bGVUWUdNUE1GT1BYaWhpTVRhek5jczIzMnN0QVlVWWU2L0RtVlgvcDJkSkh2SHV4NXFCR0lXCi1SYnY3T3V3YXpPc0RxTmZycVpUZXNFTklHbC9LUG9OWGlvbHAvWXRHM0RIUTF2RGpFai9YVE9WV1drQkRYVmdQCi11dDRQaTIwaHZGQnd2RUJ0eXBBZ2kxVkxjYWQ1K2RsckV3cnlld2xMTHc1aAotLS0tLS1FTkQgRU5DUllQVEVEIFBSSVZBVEUgS0VZLS0tLS0KZGlmZiAtLWdpdCBhL3Rlc3RzL2RhdGFfZmlsZXMvcnNhX3BrY3M4X3BiZXMyX3Bia2RmMl8yMDQ4X2Rlcy5kZXIgYi90ZXN0cy9kYXRhX2ZpbGVzL3JzYV9wa2NzOF9wYmVzMl9wYmtkZjJfMjA0OF9kZXMuZGVyCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjN2M0YzhkLi4wMDAwMDAwCi0tLSBhL3Rlc3RzL2RhdGFfZmlsZXMvcnNhX3BrY3M4X3BiZXMyX3Bia2RmMl8yMDQ4X2Rlcy5kZXIKKysrIC9kZXYvbnVsbApCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS90ZXN0cy9kYXRhX2ZpbGVzL3JzYV9wa2NzOF9wYmVzMl9wYmtkZjJfMjA0OF9kZXMucGVtIGIvdGVzdHMvZGF0YV9maWxlcy9yc2FfcGtjczhfcGJlczJfcGJrZGYyXzIwNDhfZGVzLnBlbQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNTAzMzdmNC4uMDAwMDAwMAotLS0gYS90ZXN0cy9kYXRhX2ZpbGVzL3JzYV9wa2NzOF9wYmVzMl9wYmtkZjJfMjA0OF9kZXMucGVtCisrKyAvZGV2L251bGwKQEAgLTEsMjkgKzAsMCBAQAotLS0tLS1CRUdJTiBFTkNSWVBURUQgUFJJVkFURSBLRVktLS0tLQotTUlJRkN6QTlCZ2txaGtpRzl3MEJCUTB3TURBYkJna3Foa2lHOXcwQkJRd3dEZ1FJUzl5bzU4bUFGMndDQWdnQQotTUJFR0JTc09Bd0lIQkFpYzJsUUZmc3lBelFTQ0JNZ3k1K2ZMWVM0QWpYOGF5dzVzSkdwZjc1TCtSOC9BTjBrSwotK25yOW5KVXoyYWdyK1hXR3ZOQmtqQTZYT2hjc1NOUnltN2o3MmczdVJOb3FWamRWV0k0bW40d0VvOWY5Z1dnbwotYXNHb1BLdmFyM1dreGdCdkFEU1B5SzV1MmhEODFlYmVsMm1hUHdrcG4ya0RFZnNYeVdURFd4cW5BVUZ0aE9DQgotMmNXTnpqaWoxZzNsNlJJOUFEU2Y2WDVJYmdUZmROaURmUXcvRCtwbmVKVk1jMkwwdkNHazF5Wml1OXB2YThNNQotcExTcDhzVUdnekREZTNjWC9oODdKTDR2YjlEZTh6RmdaN2hDZkZYbXI1M0JuVUxQektyQmdSeUQ2WUQrVU9TZQotWEZNWUdOUjZ5Q1lUQ0ppT0VKVG41aTBGem9Gb3I0MGx6RjdhaWdTcWg3WVZsOHRGTFBFekg1MXlHQklHbGZNSgotcnJ1WTVDQStUN1JHUC9rSVVHdzdMZnRWT3M0NnZOanlOanZ0NHlYYnk5SmsxOCswRVY3RHJrK2JOSlI3QUNwbQotVmlMV1ZJdm5ORjMwZ3FDQkpkWGErZ1UxL3lEanNwclZ5N1FmVDQ3aVo1Y1E1elV6U0pwalJEeHQ4YzhhRWdPdgotNDhUV2p0YkJpV28wVWlFbkY0OHJmOFZONDdnUy9GVXhzUTN4OXBheUEwS1puTVFmcXFMbjJRZnZCRzZUVzRrdQotTUlPUXVDSHJGeEVFaytYUlE3UExjS2N0ekN3bStBdTJ2UjIxcGRnUVNUdXBpRm5PYWxBYmF6c0tPWXdlTVBkcwotU2N2d1pwZkJuS0lFOE83dmkvL2hPc0lpbHczVDhTMVJDb2d2cUpjV0JBakhTcmZLc0xxaFRSK3ZzTHFZWmtHWQotdGtkb3kyOWhlN3VIZDJ0Rm9UbzVFNXpSUjFjTmpDbXQ0ZEVtVlIySFpPUSs2Rkl2azFjL3J5MTRLSkVaUFV5SgotWXJWZXlIMmgzc2lqYTRzblVNbEI3NlVzWURrYTZRUzZQNjJTdHhSL1Q5MjJnYkpxbUVDOXlBM1FlTXZuMXgxNAotcDh0Wnh5MitDbHpqcmlleVgrQis4RFlGUTNkaHZYNzJlRm01WDBwUXhLNVhJWkZPSHpFZHJmZjIxNjkvKytCNwotQzNzbWp3UGZya2FqaUFiV1FpeHdyQlppU2gyS3dQTXVBUEZvaGZUWEU5TzJmTllOOEkyaUxub1JobzRNdUc3QgotM2pUeTFiNGF5U3lNblMzSTBUNG5RS0p5SUZ4UmpSZzlvdlBjVWxzdTV4bUZYUmlYSTVOcU13Ym9EVms4cFp4dgotQ2hNSCtFTDloTm1hdGY1TXRoM0d6T1NDMUNJRS9yZy8rMlNrUEszQnJOR3dGRDQ5SnVQMmIrNG1vY1ZZQ2pybQotTDJ5b1prTnErbU9Va3BuWEk0TzN1UjFydFFmQUxCUW0zUERyb3F0S1FIbjR0Q3BhdjVCS2d6dUxJRnlycjY3RAotQjJ2TjNLQUlJQnJWcDhsdUk0L0pmNzdockZURjhETVdTTjgwMWlnNHBnK1Q1cEtLWXlWWmUxQzU3VU1rOTRKcAotUmpFenJBU0JTbkVab2YzaE12Y2l1ZHAvdTRFc3hyR0t3U1V4K1Z5M3Z6dFEvRjNIcGlzdW9kS1NFckRrTzBTeQotOHljV21SOHE0ZU5STVl5VE9oVDNjLzY1MG1zZFJiWkIybGVsd1RsK2ZxZzlvSVVKTlg0WjZGbUJWZkFQUk0wUwotUVRTRUp1MWkyOHFwVllpUlNtbkFHTHZHRVROV0pud1hYS2FPdG9JcG1YNWtuZUVET1E4WkNKSGNpZ1lFTkIyNQotOVNWZE9QMjJETUp6aXZtd1dkUnZLcUc0WEhLZ09UNnQwb0oxTFVObS9mQjRLTW9BQk16ZkxqcnNsekpXU0NEVgotQ01OWVN1WkUwb01SVnBqMlZhRFp4ZXQ4RFEwK3JUSitCc3pWSlhYc2FWM0RMV1hnOEl2OWluL1gzYlF2WkpMZgotWkhTRWFubGRjbXRyT1kwSzhqdWZoOEZrOFhqRDQ5NGE2dCt2SThHLzhvR1dZNHJEa0JGRytzZUJOc25HOWhEegotd09Cdy8yZnBIcXdOejFGUERmd24vU0JmSUF1eUxVc3hlL3crS3BPYjkxalhpNDhpZng2NGZ6YjRqcjBKbTk4PQotLS0tLS1FTkQgRU5DUllQVEVEIFBSSVZBVEUgS0VZLS0tLS0KZGlmZiAtLWdpdCBhL3Rlc3RzL2RhdGFfZmlsZXMvcnNhX3BrY3M4X3BiZXMyX3Bia2RmMl8yMDQ4X2Rlc19zaGEyMjQuZGVyIGIvdGVzdHMvZGF0YV9maWxlcy9yc2FfcGtjczhfcGJlczJfcGJrZGYyXzIwNDhfZGVzX3NoYTIyNC5kZXIKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDQwMDI2ZjkuLjAwMDAwMDAKLS0tIGEvdGVzdHMvZGF0YV9maWxlcy9yc2FfcGtjczhfcGJlczJfcGJrZGYyXzIwNDhfZGVzX3NoYTIyNC5kZXIKKysrIC9kZXYvbnVsbApCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS90ZXN0cy9kYXRhX2ZpbGVzL3JzYV9wa2NzOF9wYmVzMl9wYmtkZjJfMjA0OF9kZXNfc2hhMjI0LnBlbSBiL3Rlc3RzL2RhdGFfZmlsZXMvcnNhX3BrY3M4X3BiZXMyX3Bia2RmMl8yMDQ4X2Rlc19zaGEyMjQucGVtCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhZjRjNDEzLi4wMDAwMDAwCi0tLSBhL3Rlc3RzL2RhdGFfZmlsZXMvcnNhX3BrY3M4X3BiZXMyX3Bia2RmMl8yMDQ4X2Rlc19zaGEyMjQucGVtCisrKyAvZGV2L251bGwKQEAgLTEsMzAgKzAsMCBAQAotLS0tLS1CRUdJTiBFTkNSWVBURUQgUFJJVkFURSBLRVktLS0tLQotTUlJRkdUQkxCZ2txaGtpRzl3MEJCUTB3UGpBcEJna3Foa2lHOXcwQkJRd3dIQVFJLysrZG5oczRWWllDQWdnQQotTUF3R0NDcUdTSWIzRFFJSUJRQXdFUVlGS3c0REFnY0VDSTVETE1rYXlNMXBCSUlFeUVKSHRabFVQSVBuNkRCNgotWjAxN2tGSmRhRjI5QXFTYXRUNXR1a044NjIrYiswYkd3b2RhNWFSNWxyNGVkZ21td01oUisxcFRld3NXeVpLMQoteENZSHduMEpuYTFIWEtSTGZzb05kS0NGUHl2Smt4OU9kYk5mb3AydXFiUy92cnNyaU1LTWxvS1YxS1hVR3FDSQotelo3QlZFZ2ZnSDRoWnU3Y1g1SEgwdE13Mi9DenJDNU9qTWhGcS9PeVJlNHJldGZBQ3hOMzRXVkFxTU00L04wUwotUzBjaU5ZUjRDM3ZLdTUrTmZrNFIzR0dNbW16MVdlamtZSDBRTVhGdHE5SVU4dmJNVWhBYUJYSW83eHdrQWJRQQotVUpGNWx1clhMSkVMQ0lSMUtRVkVqZllDWFZpSDJaYmhBWnVrMkJWMEI4cUlLaGg5R2h2TCt5Mm5wb3JpRWhONAotZGRFN1BkQW1aUGdpOXZKMzQralk4RTJVaVhwWERrU3IvOExwTFJWUS9VSVN0dEFSVmtXNDljT1E3b09WOWhPQgotUiswSzlmeVpXQUpJN2NaUVNzdUlQU081RHdEa1hjbFdVRllhYTlDMEJjSFJhejhBQ2tIdTJ2U0Y5NEx3RzF0aAotV0J2VnZtOWtUcXpucTJ0Tm9BazE4YjRSS04yblZVa2ZoQkplUjJHYUpoenNzaG5wVG8zNTZrWU5LcFNVSW0rUwotNGJnMDg3Wm92cnNmMEMrNDltcis5dUdOYkRRMkVmRzJCSjMxZmFCSjRid1JOYXRhN2wzRnZxbE1MQkZKRXBVZgotbDJFSWxyNHFYOXdmRjlPbmttVDBnR3V1eHdCOW5qQ3BlN1hIYnZqbXZLYWxvOXM5aVAxejVyZDlmNlVQekRRaAotWGRWOXBvb0J1c00yWi9WamtyVXhSZHl1cmxld0QrVVFuMk1MaVJGN3Q0Umd4NSs0ZzZub29JUWxjVjQ5SmhFUAotNE9mNXVEa1d6SFE0RzZUYmZmVS9zZDdUSGN3VHA1d1RvdDBCVDJJUHVQNnFnTEZSU1FZd3g1enBscmFWZlRPbQotR21YRDhZMEk4RFAzYnltTVZTdUpXRlFyU0wvOFg1YjNzbk9oekYxSjlvMjFOcWV0WFkrWWtHSVpQZkw4MGpVbQotN1pSU3NqejdBNE0zTUdoc0QyaS9nd0dBVWRrSjBrYWNkbkJZQ1pqZnZoRWlNdHlKaHJ0cFJEVDdwU0ZIQ040egotakNvay9tOTRkK21QWGNJN2RTQ2ZRKzRGVVNNWERYNklLdjdpdnNvSjh3cUkzWWlSOWNIZEsrRVpMV1BLYjB4RQotSTlZMUg5M0s5cFFGbGV3M1U3VHpvRkVKY2VlMEpIbHlNN0pHU2hQUVAvbVBFb1BzSFRSb0dqWXdZcDhPSEVvbAotR0FqUnV0eU1TNS9wRUwzenFUMG5Xc3I4ckVFd3RtOHRwUEt1TWNsUHQvcDJMQ3BWQlZnVHB1VkYvSGZucjhBYgotdGVMMmJwQy9EMFcwT09PTVUzTWxmVTgyMnZsbTFnQzVZaCtJLytiM2pzZ2Q0eEg4NFBaVUJHRExPNStXcnNsdwotZjVCUHVPL0RIQURvbkIrRGVHcXdTRm9sN3p4cVlXdWZkSTFqYjFZRTVwV1Y3ZE8yZTB2VEQ3NDYzbzZWOTA3KwotWmZjNGs3aDVvaFMvVytSR1FEQk01bHBsc3NXY09QSzVSeDhMcFAvdlhIRnA2K0VQbkdKVEZCZzZJNGZVWUFaSwotSGJKQW5Ma2pXamZ5N0Y0QUVCa3g4akJqWXlEcU54M3I0V0xNVTVkczA2QzVuekcwdXNUcEF0b0prNmszRy9IcgotbC9qTXIvemErNlRydFh5TkJER3Bab2hneFAwd1Q0K2hBTXlMR3ltWW5TV0ZsUlZra2YwQkFOYnRjSkJzemJBWgotRXZOdkphQ2VjalZ3MlpzbkxvK3JhcEE1Vjg3d1I2UnpwYzVZaDZJeExRcy9wTk9jbDhTOUhoQytFendjRXJMawotSjFMQjVwaUp5NjRrTG16eEMvd21KWXZSNWhZOEdqTVU4UThjSE9ENVNWazBCODdTT0N0OUxIdXNrbDhqNS8zLwotdExFako0VDZuSFNmOHN3WGw0QjJlMHRkOC81Q2Y2bW55cWl1T3lRSzF5R2hNalhiaTZ0YVlheGIyZk5IQlY2OAotZDZRRGJHczhpQ3dHc3A2c3N3PT0KLS0tLS0tRU5EIEVOQ1JZUFRFRCBQUklWQVRFIEtFWS0tLS0tCmRpZmYgLS1naXQgYS90ZXN0cy9kYXRhX2ZpbGVzL3JzYV9wa2NzOF9wYmVzMl9wYmtkZjJfMjA0OF9kZXNfc2hhMjU2LmRlciBiL3Rlc3RzL2RhdGFfZmlsZXMvcnNhX3BrY3M4X3BiZXMyX3Bia2RmMl8yMDQ4X2Rlc19zaGEyNTYuZGVyCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlMjViNGZiLi4wMDAwMDAwCi0tLSBhL3Rlc3RzL2RhdGFfZmlsZXMvcnNhX3BrY3M4X3BiZXMyX3Bia2RmMl8yMDQ4X2Rlc19zaGEyNTYuZGVyCisrKyAvZGV2L251bGwKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvdGVzdHMvZGF0YV9maWxlcy9yc2FfcGtjczhfcGJlczJfcGJrZGYyXzIwNDhfZGVzX3NoYTI1Ni5wZW0gYi90ZXN0cy9kYXRhX2ZpbGVzL3JzYV9wa2NzOF9wYmVzMl9wYmtkZjJfMjA0OF9kZXNfc2hhMjU2LnBlbQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNzE3ZDNmZi4uMDAwMDAwMAotLS0gYS90ZXN0cy9kYXRhX2ZpbGVzL3JzYV9wa2NzOF9wYmVzMl9wYmtkZjJfMjA0OF9kZXNfc2hhMjU2LnBlbQorKysgL2Rldi9udWxsCkBAIC0xLDMwICswLDAgQEAKLS0tLS0tQkVHSU4gRU5DUllQVEVEIFBSSVZBVEUgS0VZLS0tLS0KLU1JSUZHVEJMQmdrcWhraUc5dzBCQlEwd1BqQXBCZ2txaGtpRzl3MEJCUXd3SEFRSWtrUkhsNzRsZ3hBQ0FnZ0EKLU1Bd0dDQ3FHU0liM0RRSUpCUUF3RVFZRkt3NERBZ2NFQ0FHVURKWUFyK242QklJRXlPdGhsZ01OZ3lmanZRZDgKLVpxUVlGNTJqdVlybHZFZGsvTlkyeGxFZmE3TktVZEVCUzZqdkwwbEhPYUNjbjBkUmJ5a3FzK0RvOXlpV3NXMkEKLWNRNUJMcmllN0MvSWVaU2FGOTBEaDkwUVVlL2FGdkUvMWZCand1U2RMajZSZjEyTVJYeHR5Q0piMFdrU3RyVUIKLVJnYjZSZUdVaVVWejdmSnUwZVBaZU5LcVZ0Q2ErTERlbmFVYXFvODJMN3kwNUtMb1FQK3FyUWI5NFVLMkI2SVMKLXhVU09SZWhRWm5mNmRwb1hITVM1Q0ZDdjRMdy9DMlZ1c0JJWm5BaEVWV20zTWxqeE15Y09KejI3WU1MWGljemoKLUgvL3JtOEJoWlE1WDJqWVR2bzhTMEJQZ1JYUG54YXN2SUFZTGJBRnZLM0tQMHVtWDdUSFZvWXNYcHdCZ3BoUzMKLXBlbm05SEV4WHN5WUxOYmVmcTlqUEw0TGxhdE5EaTJMQWcxUU9yMzBqeEdDNzN4RVNiWXNNMVdZSUIyNFJTTkwKLVpLeWhJTnh4c3FjU2t2dWNlNWR0U2hXWGtxRDdQMG5VTnp5Z1QxdVNENEFKRUtPYURML1l0QTRkc1R0L0xDVDcKLUN0OHc5VFIyK1FrUWR4Z1pyaTFTOStqU21QUWdjZzBCb2JQTW5jeXNUalR5QzU5T2g5S1BjSkNUaFI0QlhpdHoKLWN2b2NxdDFDc2lLaU1HUjUxeEhmTXMrcDA2RHdUVHoyTFJZaUxkWGNvNzJENTdPNGxpeE9rNUxxWEYwcWlCZlYKLW1ON0xUcUJJdnVZaUs5YUVCWjUzSFJSdXJBaHJPV0JKL1V4TS9WWWkrbHlDQVVCaFJ1OVhJMDJnMEhBMlVybFgKLTlSbnVCL2E0NENlNW1nUVdkRVlkUUlrSTdKQjBLajA1a3RXZGlYZUxDUHRURzB5dGZRMEN2L0V3YldDRzJ0dTYKLVBFRW1heXozS3FNUi9BdjlqcXNuazJxVTdrS3FSN2h5U01mb1R1YU1HcGpjeENwajNMZzZUbW8wTnJ2bjVzdmMKLU5OQ2hEbHJnd3lwNGRYNXViMWJ3WVl6aWJHOHgyMytmS0traWw3TnFaM2dxWjVlY21nWDVYaVU2VmRCQ3oya0oKLWsxeEdHaXl0ODkrZ0RkbW9jK0h5alJUSmdmQ2haV2lJNkVoVjNMWk9uTWEwWlVwUWlNNGxtcTBTbFE3OHpTbVkKLVp5cUc5ZFNFRldnNkJNck9VcFpidVk2M3dqdnJ4U0hySExBYkNUbEk5QlJrRmhtZndpeUo5MEZmTUJVakJ0NncKLXlDUFcycjVhRlBJaG5nTlMzRWF5SktoQXdjaEdITjJYZGZlRGo5R0ZoV1pBSVFzWFM4UjdKdUdESXVnNytRTWoKLVdMNzdtMWp5MEs0UGlHZjNsdDdQVnk4S09xYmlPSHl6WVFzdUF1dU1EN05aZFY0K2RWenpuVGUzSGJYTFd0eGoKLWl0UEZOdVN1ZGZGQm90QVdEVjJ5T0Y0QjdYYmNUdzRDRUd2OWJWSm9HYXRKZGF1YnppZFVIUEpVb3pXWVFYOEsKLWN3MExxZFI4eXhNdEhPYzlGWXlhd0xiUU16Y016dC9saWpTNzVpTyt2c3BUOVRZWHhmOXJDNXlYOHhsU0hIYTAKLWpsZ3ZqblREeUVzclVuR0hrOWtOZTkwNkdWNDJZRE85TVVKUHZVbWx2Ni9iQUtBNWlXWDIrSm81cndJV2s2c2cKLXZXMzNnN05QTW4wSTBwd3phV0RhTGQxWE5QM0pwak9Ed2tMLzVuOUYyeDErTHNiUHB1azQ4RE9uWFFpN01WMEoKLTJaV1NTeFpsdFRMcE9iRzhtSTRkV3JoNURYZXN3SklJdGE0a2kxbFN5Rkx1K2hNWStQVVZvenlkNkdWZDRUMG8KLWNWZXBOVTFySHF4dnNMSFZrTXNpeHlwSHBad25rUWlnckU4RVlldU1aUUtQcTdsdUh3aDFBa1RBU3IzU0pGMC8KLXV6dHEwdm10bi8wK2xnN3JJMHBXK29GQWxzY21jUk1yY09DTGFYL1RrdmdYMUp2TzVsc3BJalA2SWRhWHNZTkoKLTE0R0ltdFh4UWFQZ0F0V0o0OG8vQXpGOEtQZXo5OERmbm1wWEtCTTBLL2tLNU9HdXhIdk5DSjNlVERZUzZYOEkKLVNqNlFmNlo5Y2p3QjJ4UkZrdz09Ci0tLS0tLUVORCBFTkNSWVBURUQgUFJJVkFURSBLRVktLS0tLQpkaWZmIC0tZ2l0IGEvdGVzdHMvZGF0YV9maWxlcy9yc2FfcGtjczhfcGJlczJfcGJrZGYyXzIwNDhfZGVzX3NoYTM4NC5kZXIgYi90ZXN0cy9kYXRhX2ZpbGVzL3JzYV9wa2NzOF9wYmVzMl9wYmtkZjJfMjA0OF9kZXNfc2hhMzg0LmRlcgpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNjY3NGM0OC4uMDAwMDAwMAotLS0gYS90ZXN0cy9kYXRhX2ZpbGVzL3JzYV9wa2NzOF9wYmVzMl9wYmtkZjJfMjA0OF9kZXNfc2hhMzg0LmRlcgorKysgL2Rldi9udWxsCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3Rlc3RzL2RhdGFfZmlsZXMvcnNhX3BrY3M4X3BiZXMyX3Bia2RmMl8yMDQ4X2Rlc19zaGEzODQucGVtIGIvdGVzdHMvZGF0YV9maWxlcy9yc2FfcGtjczhfcGJlczJfcGJrZGYyXzIwNDhfZGVzX3NoYTM4NC5wZW0KZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDNjNGMxZDAuLjAwMDAwMDAKLS0tIGEvdGVzdHMvZGF0YV9maWxlcy9yc2FfcGtjczhfcGJlczJfcGJrZGYyXzIwNDhfZGVzX3NoYTM4NC5wZW0KKysrIC9kZXYvbnVsbApAQCAtMSwzMCArMCwwIEBACi0tLS0tLUJFR0lOIEVOQ1JZUFRFRCBQUklWQVRFIEtFWS0tLS0tCi1NSUlGR1RCTEJna3Foa2lHOXcwQkJRMHdQakFwQmdrcWhraUc5dzBCQlF3d0hBUUk4Q3c5U2s1emZ4TUNBZ2dBCi1NQXdHQ0NxR1NJYjNEUUlLQlFBd0VRWUZLdzREQWdjRUNDK2tWdnAvQVZMbUJJSUV5QkZqZ2grbU0yK2JvKzh0Ci1zVCtxK3JudEZWelpVcHo0UHRPcUxDaXBpSmx1RDIwQzE4cWc5SHk2OW5wQ0ZSL0xudzZVdll2Q05ML1lPOUFuCi1IbTU0ZUZDZjVjUEd4Z1JCbXZ4R3JvS2czTEZ5S1F6N3lEbUxtVWRySjhYZ2ROY1dCTzB5NWdjWWFFaFRwaW05Ci1xWllDM3JobGVRWTNMeCtDODg5LzFrNGtjQzdQU21BaTNCVFovbnBuQjl4L0tyNHRZVHRjZDUwV0RQNGZJZmE0Ci1ST0JHdXZ0bW9yMmNhU0lOUHhIaytTZXRXNTVucElLaGtRRkdRTTlvOE1PR1d2bVRZMGlMZDBpSWFiQ25nS3FTCi1XSGMxRmQzckNXQU9aK1N4MUJQL3VTaThpS1FST05hMU04ZTdGa0F0T0kzVDhxZkY4OWs4RzhWTHpreUJTZG5yCi1qSkZwb2hJVGp6SUJWMGQ2b09BcFRTbUhEV2d0eXJ3S2Z0ZzFrRHlKWmM3OUNnT0FvMnBWdURyV1htaTlycGhqCi1JeUorRUszZitTUEQvWDN3TWFicGRuNXJ3RjFxUkoxOUloSmV3enZlaVY4ZHJRZGxaQWVFUzFxbHhlUFFCbUhZCi1tVHpsM3ZRN0RrRWx3elZKeXpNSGxsNm8zdmlIdlJPZVFPODBuWE1JZnpGZDhTaFh3ZllPR2ZOQjRrNmZxZHVxCi1CVmo3czdseVdSSEk3aVAwcnVWd2l0M3RsRkt6VTV5UUxxYlVOazZIT3VHczhSOUllV0lWNi9MWHVzdmJQbDVlCi1uNE40SW1rQVg1SnBQMUtPam1MSlp5Z0hSc0w2Rk1DOGEzS2dVQWNxWW9xcnN1a243SEM0QnkwUElFUmFEK3o0Ci1OclZzYU40WUdReVZkRm9zTlVRcXFqejltQjhKc0w5enVUMEtNNm9wc2t6bkQ4Z2pUK3Z5VDlBK1VRREh2MWJlCi04TTVQcDhZZitrTGxML3I0ajNCdWprOVFEaGJ3bE54SDQ3NVR0cWJBR1pLdy9vZUdrM294SU1UL0ViNGlrZTAvCi12UW00eGtQWXBQZ0dHVnNuZWlybnV4ZGRxaldSOVg3MGYxOWhQam1ERDhFaUk5NVFZK2liVGR0RHVIUE8xYmpuCi15V1Q0a3pYc2FmUTZtc09WUEQ1T25jb2RidWlVemllODVCM2hlYnVWYkRJTWZReDVseUgxTGpFQnlheEYvQWZ5Ci1wdmFseUxkVnNEalVscVdNMXFyeDZnQmJnUXRKb3R3WldZZFd2Nzd2SC9pUFd1dXdocFJYc1dEY3dSdElFYVQvCi1KRmNHZ0d1b01laVp0NHd3djIxTXlzeGNnN3Avd1ZCajlaWjVxelZtTkRiNDBscEZuTDc3THBGMm9pYzB5bWVoCi1rT3V6OXUyQzAzRjF0TDRyQ29OL3dHM25HWHpiS0RORzJlc0hHVkZIdG9wVlRsTGYyd3VtTS95bzU3eGRER2UzCi1JaGhweXJFTzlmU3NQM3oydGhrSkcwQk1jeTBsVS9PNHczbFY5M0lHWklDRHFCeDdGOStIM1V6cE42RVc3VEl5Ci1ZdlZnWm9neWU2L0tOMytuWUtZQkdLMTVsMWpjaVFrM3ZENXpvd3dLdE1hMXNNbmZPeWNLaStNT1pWOWdrMkFUCi13NFpwcjBuSFpNZ21IMXJZclQxcGxSYm56MTcxMmR4NXhqclowRkl3UjYzeGcwTWtDV1NJbDFlaUpDblhER3R2Ci1yVVU0NnZ1T1MwVGZTMEF4NlpuZU5PQVJ2U0UvV3JTaDlkNmQyR3lMQlJGaHJQL1FIWTNLL2JmUmh1M09CL3FyCi1HZFNzT3dCWUU2U0hRNlA4a0F5Vys4V2ZCV09VK3J3RHdlSkI1MXRUZjFaYWFRcHZNM1RVb0dDVzgrOGx2ZXFqCi16ZWNkTWE2RVRuVHlmeFQxclhPakU3cVJwWWdkaHliNmY3MlJ2ak1mZnBJd1NJY0dxdllyeC9mZFVsVDV5dFZMCi0ydk5iMXFuay9EeENGMGNEbTJPQlk1dExiWHdVMHp3NmhaZVUyRXRrMUR6ZVF2Nml3emE0YjlhZnRtSmZ1b1p4Ci1EK3BjckdDUTdlNUk1ZzdKem53djVlMjdBTk1UVzREWEs2MGtqNGlFbFVaL3FQZEh1dS9Bd1VKQ09Hc2h0YnNYCi0xU2cxMzJTMWNhQktXclZEamc9PQotLS0tLS1FTkQgRU5DUllQVEVEIFBSSVZBVEUgS0VZLS0tLS0KZGlmZiAtLWdpdCBhL3Rlc3RzL2RhdGFfZmlsZXMvcnNhX3BrY3M4X3BiZXMyX3Bia2RmMl8yMDQ4X2Rlc19zaGE1MTIuZGVyIGIvdGVzdHMvZGF0YV9maWxlcy9yc2FfcGtjczhfcGJlczJfcGJrZGYyXzIwNDhfZGVzX3NoYTUxMi5kZXIKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDIyNzUyNTQuLjAwMDAwMDAKLS0tIGEvdGVzdHMvZGF0YV9maWxlcy9yc2FfcGtjczhfcGJlczJfcGJrZGYyXzIwNDhfZGVzX3NoYTUxMi5kZXIKKysrIC9kZXYvbnVsbApCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS90ZXN0cy9kYXRhX2ZpbGVzL3JzYV9wa2NzOF9wYmVzMl9wYmtkZjJfMjA0OF9kZXNfc2hhNTEyLnBlbSBiL3Rlc3RzL2RhdGFfZmlsZXMvcnNhX3BrY3M4X3BiZXMyX3Bia2RmMl8yMDQ4X2Rlc19zaGE1MTIucGVtCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxNTUyMWQ0Li4wMDAwMDAwCi0tLSBhL3Rlc3RzL2RhdGFfZmlsZXMvcnNhX3BrY3M4X3BiZXMyX3Bia2RmMl8yMDQ4X2Rlc19zaGE1MTIucGVtCisrKyAvZGV2L251bGwKQEAgLTEsMzAgKzAsMCBAQAotLS0tLS1CRUdJTiBFTkNSWVBURUQgUFJJVkFURSBLRVktLS0tLQotTUlJRkdUQkxCZ2txaGtpRzl3MEJCUTB3UGpBcEJna3Foa2lHOXcwQkJRd3dIQVFJeks2a3gvcWJKRDhDQWdnQQotTUF3R0NDcUdTSWIzRFFJTEJRQXdFUVlGS3c0REFnY0VDRDc0T0F2SjErTHNCSUlFeU9la1owcWN4ZVg2aEVZWgotNE9OQ0h1NDF0bU9LU3ZCeUdlVUJadmVuakpRNDhBZ1RHWVVYTm9Zcmkxb2huYlEzYmNxaVAwVFVEZlQ0elJjUQotWkZaTHV6QXR3VjhaZlpjWVJDUTdrS3hHZmtjaVpKaGplSGV1QnkzbW9FYnpuemc5VEVQQ1Z6b09EK2szZjYrVwotNy9iU3ljVjdqazg5Q2RhV1UzRktVL1cvUkxaYXJwbTk5VXphdDBFY2MyS09hL1Rja05UQnZEOVlzajJqM0Q3WQotVW1kbWZVR09SdndRaEpHMG13djdPcGtMRmJGYllCZWhXcDgvRms1aXpKVmRKcys3N2MycWlRdmdlZW5kMUQ0MQotWlVCS3RiS0NvYzNJbnA4M2NTa2wyWG9ubmNDVXhCS0xpV0hBelp4aFBpSUh3WlhHWEhqQ09VcWJzL3NYRW9ncwotM0hUNVBIVlFqcVBHSWJsNUI4TllldGVsQjFoMVVkcTRQeTFWWnFqTGhaRkg4cTJTbmpSeEM5dG80YlhhaVc5TgotNDUxTkw1UzhiSnJjYXVuNkU1Y0Q3NHAzMkY4SU9qUjJPanIzb2ZFRkhRRlZVRmxMUFkzZ1ErSVpzMzRoUUJOUgotUVk3NWZmUUR5a1pQQnBMdzBoSUprcjFMb1lmdUVNZE4wdFBSUnhZVk8xbEtBVzB4Yk9BZDBVRXNsRmNzeVhDWQotb1VuUVA1MG5WcEc0NFRJNmJOZkxqNXkwN0V5TUZvNnZCL1hpRFhoOS9BejhqSWZzUGVZT0dJVk1ZRlNub3VydwotM2NqVFBGckpuRVFkOENIeGpMTG5CM1plWElvNGwwM2haQnkrcUZPSUYyRXprZTBmbVJ0ak8rT1VWbThsQXkyWgotSjF3U1RUaEJsc1dYMi9KT3poN2tpV0RpcFgwZk44c1RHZWVwYXp4SThuTkFOWDdBTGN4d3VMcmp2UE9tVHhmWAotRWxwd2ViT3ZDeG9ud1dSMEMxZ3laMGZlT0k4a2gwZEt3ZTB4aTJmcXhDd3hXelB4TjNFUVorRnRvVWR0elBvRgotN1FSQkZFUlBlZlVwTzYyMTR0MVBnSk1XdkxqakNzT0Z5NHRuRjQ2bldJL3IxWExPUWxMUDVjd0FJWFpsblNYegota3k2WXFQbTJPbmlYcTVYcXZ5TE9NeTFSb0xJTkpZMWRoZ0JYRnRDNUkxWlFBbUdKR21YOUl4VmpyUmt5OWtLdAotMzYyWDk4ZWRVVU1NbVc0OEw4UmN5WU9PVkxwRmV3QW1VL2ZyM3FvVURqdXNPdEM4TzY2Si9WNHZqSTNHOFZlOQota05MaVB4UXFieWZISGRiQzJQcDZyWFpYY2w3TDVGVy9mYzJZYVpScUN1RnB1R1haUStTS3JNWEtZOG9MYTR0TAotRW1mNGlzdmRsUlFqdXZlWG9lYnhQc29HOVd3M3B6M25sN05RNDBjblN4YjF6eG0vaGVRbUFjelBFMGZhRHNPaQotcEdBUVA3akFlZmgyWHdKNlJXUnF6eXVBM2JEV0M3RTRBU1lPRElKMUlBb2dNTU9sZzk0MGhsbUNYWi84OTkzQwotYVRuY0NRTzEwaWJlbVpzV3ZEL1gyK2dMM0xTZ0JpMlE2TmpIcWo0TVBBZTZ5QU9BMlVTYzFHendTVzRXRXBJZwotK3R0SnBLWkZubm54ekNmVVUrcFR6Mk9OR1Y3SjVhNTBCaVJMZ3NsUGF3bTBsYllsMkJ2amJTWkp1bDlvcXF5LwotN0ZJNUp5ODNPYUhycXlNU1JOS1pia1BXeTU4enJoUU5haVVhQ3JMRTNDK2h6ajFrOUJYcldtMzlBUU03b2xucAotVDB5aTdwaXZYWUVmZjAvZDh0Q2xxUUF6eTBEbktFVzU4eFFPRHhoRmtabTcwWDBIa1VBQkQzUU9iSGIyRFNqRwotUEUxWFY5cFhQLzNwY2krU0Z6bnV2bjBwNkNOM2wrcklYVytwYjZPNEtXNjVnbzBMVG8xZXZJdUtURmpWdFp5ZgotS3FiZ0RyZHUvRmQwS0pKeTdTMmNnL2kwMng3VGZjU0pFOEMzRUR5eUVTcEdlZ0U4WEFIMk5FbHRPMXl0MCsvegotMjZkMDZIcjJsaXZMODd5VnB6VzhiNEgxU2xpZlptUGh5MDgySW5GNjVXMXc0aEFtbXNXQVJmUG1aVUcwTFdvRwotNnpSUGoxM29qeHBMUHI4a3l3PT0KLS0tLS0tRU5EIEVOQ1JZUFRFRCBQUklWQVRFIEtFWS0tLS0tCmRpZmYgLS1naXQgYS90ZXN0cy9kYXRhX2ZpbGVzL3JzYV9wa2NzOF9wYmVzMl9wYmtkZjJfNDA5Nl8zZGVzLmRlciBiL3Rlc3RzL2RhdGFfZmlsZXMvcnNhX3BrY3M4X3BiZXMyX3Bia2RmMl80MDk2XzNkZXMuZGVyCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiY2EyZmY4Li4wMDAwMDAwCi0tLSBhL3Rlc3RzL2RhdGFfZmlsZXMvcnNhX3BrY3M4X3BiZXMyX3Bia2RmMl80MDk2XzNkZXMuZGVyCisrKyAvZGV2L251bGwKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvdGVzdHMvZGF0YV9maWxlcy9yc2FfcGtjczhfcGJlczJfcGJrZGYyXzQwOTZfM2Rlcy5wZW0gYi90ZXN0cy9kYXRhX2ZpbGVzL3JzYV9wa2NzOF9wYmVzMl9wYmtkZjJfNDA5Nl8zZGVzLnBlbQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYzUxMTNlNy4uMDAwMDAwMAotLS0gYS90ZXN0cy9kYXRhX2ZpbGVzL3JzYV9wa2NzOF9wYmVzMl9wYmtkZjJfNDA5Nl8zZGVzLnBlbQorKysgL2Rldi9udWxsCkBAIC0xLDU0ICswLDAgQEAKLS0tLS0tQkVHSU4gRU5DUllQVEVEIFBSSVZBVEUgS0VZLS0tLS0KLU1JSUpqakJBQmdrcWhraUc5dzBCQlEwd016QWJCZ2txaGtpRzl3MEJCUXd3RGdRSVJrVXBBcXhadnI0Q0FnZ0EKLU1CUUdDQ3FHU0liM0RRTUhCQWpGeU82Mkw0RUl4d1NDQ1VnRGErNE54bVQ0d1h1S2p4aGUwK0ZWMnFZNDFucEUKLWU2akJMZERRdXF0U2xCNE05QStBVnRLV2kxc25jWXpWOEZMdFBvZlgyNUhDY2lCeWRkWWF4c1lGdFZkbWFZMXAKLWNrbDlrQlUySklFWjlrdmZCeGN1SEVWZWVzYnZ3czRoSk1PM0FEZjVDUFMrdml2RXBZdDRXNlZVQU5aSlRHd0QKLWpBM1FCSWpTZEpsQzRpZXZkY3hPbjBtVWM4WTdYK1JNbUFoRVY3Nzh2UW9UTWFvWUtPcEFhNWFRc0w1ZU4zOTIKLUdSZXhFNXJ6aEkralNjdEJuR0wxdDhJaFViY2VCbkxqQUlEUnlOclFGbkR5cHpBTXJWL1dxdHZmM0g4bzdtL0cKLTNZR1N1R2E0TGJSMzJQQWtUOU1yWkxJb2FLQkd4UHU2NFV2eGZCRm01Ukl1YnRySWdwUVhIbzVtODRKcHdlZjQKLWZELzBhcmdab2gxRFNsUC9MTUoycy9SaHo2Zk00YlhvaHRwUEpDcW81NUZMeGpoZkJyQTE4MFNOWHdPV2JVdHAKLXdzUjVxSWh5NzhSRUhHSGptN0NsUUJ2eTd6cjIweUZKbjArWEdGRjU4VzIrR1RLc3RPZzZvK0w2NEFkNWJ5ZWkKLVZFMFN4UGhGVWFtaVkySEdtTHBCZGJsN1JiNUVsNTdHSlk2Y0RsOUpSZ0xQb1ZaZjBlWXpTY3Y1OG4xb0xUNHAKLWpIa0xaZ2k3UmtvTGY5U0F5UitQcThkZytqN2I3S0xWeTNmZ0lQSnhtcUVSbThrcVU0S0tzMUc1b1NtRDB3STMKLVlWV0NCOWtuUFRVN1ZGbnZCdkR4bUQrMDJ1WTVsY0tDSElsbExTWk5XSkZqdHNZVTZNSmNMQys2ZEJESG9rRjUKLTc2L2g1ZzdvZSsrWUpqdXQ3NTlOcXhlS1dwWHlKTGJIZ1BUOVcwK1EyYk9ESXRFUkhGMmQzYWJHRHVvNG9ZL0kKLTI4K2loZXNzc1dFZmtSeDRzN3dZOEtrYnNUNkZDWGZSNHVUeHVZWWV5Z3NtTjdGNnJRaE05N0VyR2VIOUx0bVcKLUpOcTZBL1JDWmFBNHJZaUFVenBJRlo4eDYxRWhvUXR1U2dzOEVCSm8yVzdKU0pjMzV6YU1GYjZvTDBRcWtxM3cKLXJNSGxCWGxUbGYwcGhwcEpReHJFUHFmQ1BmcWR0QUpWTGsxU3hwZlcyUmdRSDBHYmwvVlliSzNGZHUya2RuWUEKLW15M3V1T3FUNWs1dkcycmRCa3ZJWldNcUI5N0NXUU5CWm1pVjhoVVlqcUlKNEhpcENZM1pUdG5YSWlwUVZTOE0KLWxuVkZjKzduU1RrekFRNS9SclRCQWd1aUQrYjRDdlkwSCtDVklwNUZnYU11bzJCYXZpcXFMTjhOeDJmVXZDR2wKLTdLc1hoV2p6dEpnS1BiTHViVXUyVWNtT2g0UWFUckZRN0xiKy95dDNISHphVVdMVi9JNGhkT2dIM1ZOZFREYmgKLVk2KzU1YXlXL2dYek9EaEkyMWJEV1JCYTZSQ3lmZlJ0WXgrNGZjY3BBejRtejU4aG83UXl2T29LblZ6YjZMZW4KLUVBQUFQSmN0dXdNYlkrdGh1Mm1CT0lDbitmbmkvQU1UcVRnZ1kzN01rNEJBaTA2NDFGLzZSa3VqR2x6OS8yRkEKLUdGaWZETy9WU1dPOU9wcmxtWUNyMEh1dUdkTWFIQitWVEVqNWorY3dwSjVpbVVoUUhhTjFRM21hc0ptRCtzZEgKLTI3RHUvTzE2NGhJZGJsYnZVc1MrOXYzbCtFZ01iSHFDNjFSUWJCdU56cy8xc2x4VHo3dU82MWE1U251OFhZV1AKLXBpYnh5Q2FHem52eXVuQ1pHVGlXdUhOWVI4T25FSkFNNE8vd1U0VGhDemIrZnhLRE1jaHMxTEcwcHR3NTRML0IKLTg2b01pU2NYbGtDYmRsOWZqUFJ1SFR1V0JxRkRtMEx6NzdQT3lYekpGcHJlMlhEYlFlU1F5VHpaRmVBT0ZlR3kKLVA0bXJMRE12eHNyVVU4VTNFR2VRdFR2ZGlGak5TM0JhNmsvVk43cWprQmNFVFFIRW1tT25PN0VWRG45Y3N5Ym0KLXErdm9SN0pwb2tqRDJZS0NwMk13VVVPK3JqdVRsOExZeFVQcm1wb2ZZMHlIMmMrME9xSEE2dHhzemtFWGdHYnoKLW9YcmdGS1pxU00ra0ZHcGFSQ0lQamt1bENkQzZJQjlpMFF1OHcxaENNVlVQSU41SEZvQ2tQK0pDNWp6ZHowOHAKLXM4bTJaZ2tWbWNaUUNtdHEwSWFSUUgyblBTMW4yVjJkYkVkMTJyNGV4ZnhYaWlVN0daNDJqc3pmb3BFaEYyd2wKLUdDSWpjL2pvVExHWjJNMjh0R1ZGRElnK2t1Q0xpQi9DOTdVZjNXR0RUbURmcU9ZMmFCZkhjSjk3ckNISXl4cEgKLVpWbm45NElCdmFudW9BMURadkVzOHRtRzRkRy9RUGhzdFRWY1laZzl3QUx6T1VSWFppeDJ6UkpjYTkzN3NFb08KLVBwVlhPajU1MDlsclF3T3RiaXpsM3pVY0pOVDlHSkJZV1FUcGNlTlZZLzFKaEI2RUtmblorQW0rcVZEOC9yamcKLTFlaS9qbmRXT21YNjI4Q0d1cWhDUFQ3VlVuQy8wSDRvSXZZbmYrUUpsTnF2NnNiaFN0dy9WUE5wTXpEaU9obk4KLUtsLzFhR2t0SHRoK0lGZHpUcG1xRmJSSXhMa3Z2ckF6anhMUkdmT25IMk41VitzV0J1ZHE2UHNRMzhRYnBkRWQKLVdsRjM3WGRxNzR3cFFLbVgxNjVlRTEwaGQ0MkRKa0RPUlBVeWNwVlRyM3kwekRWVWpudTVCbzJ4aTJBWnFCb0gKLWF5bHY5aGFlMjZaWUx6cDJSbUFRRmtFRnhjcHVxVXZ1SnE0TXRDeG12WGl2dHRyQlJxYUZtQktvanhKeU9Pb24KLUpRUW82YWlvZjFaZDNpbng3UHJhby9hV0k3N1IvdmRhUy9qMUlXcXlPRnU1Qk1pM3RrZEw3eUF4THEvZTVjYlgKLUtGK2JKQXZLdmRqVjQ4Y1B5TVE0aStTaUpRdEZCRWo1bDd5bnJKMlhhT0NoMmpoeHd5TEpIRzkvcUdVNWRGME0KLVl1RDRPWThnVHhaRHBpMWpUVTVRNldVcWFRQlRVckxRcVdYRWhETGh5SGUrZjFtcWI2SWZBZnJXOFgvS2JwMTkKLUtlT215T0VTUElyZno3NXlHL25RM0lwRWs0dWZPbU53QTlrWFl2ZVpPWXRGTmZaSmNqWU1JbEMzN3lwZzgrTHkKLWR6dkxweDh4dU9wbHo4YU1IdE5Mb2prS0tvS3BjNEtZWitRWnpqOUZPQjZyMG12YzlTcWoyQTN4RmdudG5aYWwKLXNvSndabWFvbktUM2tSUXhEWjN3b1UrSkRmdzJTZGcwRmIwald2b3lQY1lkblFvRXhSN3VGOVE5TzI2Mm9BUGcKLXI4ZzVVTnRjS1hwR3oxeDIvSWZWTlVRd0lRZm16MVNsdHk2MWVkN2wrcU5jZDUxaks5UkFXOEhHYng4Qmx1a24KLWl6RTE1MkhlOWhyTTZYaE8zaDNXYVN3N3F4Ny8vNW4rVk5WMHlxcDNyUW5RRHI2Vit6Y2ZqZ1JpTldJVFhrSGcKLWEyWHZqdTgxaDV6VC9SSkQ5am9uM1BCZzg4ZWZmaUJGMDFVRCtEeEVOTnNKMldLdGM3MEh2aFJnWm9JNi9lNWIKLTA0WVg2SEJMU3dkYlVDTG9pWEZiWERGdFJFMEtybWJhMHRVL2kwZVJnelVpcFBEclFRVU50LzZ4M2E3S3M0OEEKLU9DMy9FRGZjQ1l6dTEyVzloMFRSMDlZbGZpTkpuYWx4R1NVMkNnemR4V2hYdnF4dTVsZnN3SWdqNmM3NTlSbkQKLXY2Njc2TlJUbFM2Sit3bjRTMFNoTm9uMUQvOXNpQUdrTGJoUktCYzlUalJoeFNHd0hMUkZZU2JSRDBxbDBSTFoKLS84a0lsc0tTbVgvd0pvMWs5ZzNNd0VOK1NkZFJrYkZad2pnWnk0dmdUUWhySDZyNFdRekNVWGNPOUYxaTRBY3cKLXJuTW1WOWZVSi9JWjIyc25iR255NnlhQmE1VDlSY3ZQcENXODFQWGVGQlpvMGNLOXhyczB0NWVScXdteUtUcEYKLUZwbGR6d1JveUZSakRuR1ZBQ01vL1gxZWFDd3ZldysxTThmY1NzMXArcXJCZnJmUmlJNHRnOGJOcllkTC8wdTEKLVJvRT0KLS0tLS0tRU5EIEVOQ1JZUFRFRCBQUklWQVRFIEtFWS0tLS0tCmRpZmYgLS1naXQgYS90ZXN0cy9kYXRhX2ZpbGVzL3JzYV9wa2NzOF9wYmVzMl9wYmtkZjJfNDA5Nl8zZGVzX3NoYTIyNC5kZXIgYi90ZXN0cy9kYXRhX2ZpbGVzL3JzYV9wa2NzOF9wYmVzMl9wYmtkZjJfNDA5Nl8zZGVzX3NoYTIyNC5kZXIKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDUyYWMzMjEuLjAwMDAwMDAKLS0tIGEvdGVzdHMvZGF0YV9maWxlcy9yc2FfcGtjczhfcGJlczJfcGJrZGYyXzQwOTZfM2Rlc19zaGEyMjQuZGVyCisrKyAvZGV2L251bGwKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvdGVzdHMvZGF0YV9maWxlcy9yc2FfcGtjczhfcGJlczJfcGJrZGYyXzQwOTZfM2Rlc19zaGEyMjQucGVtIGIvdGVzdHMvZGF0YV9maWxlcy9yc2FfcGtjczhfcGJlczJfcGJrZGYyXzQwOTZfM2Rlc19zaGEyMjQucGVtCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzN2VmMzQ2Li4wMDAwMDAwCi0tLSBhL3Rlc3RzL2RhdGFfZmlsZXMvcnNhX3BrY3M4X3BiZXMyX3Bia2RmMl80MDk2XzNkZXNfc2hhMjI0LnBlbQorKysgL2Rldi9udWxsCkBAIC0xLDU0ICswLDAgQEAKLS0tLS0tQkVHSU4gRU5DUllQVEVEIFBSSVZBVEUgS0VZLS0tLS0KLU1JSUpuREJPQmdrcWhraUc5dzBCQlEwd1FUQXBCZ2txaGtpRzl3MEJCUXd3SEFRSVJsODhMRkVwZC9rQ0FnZ0EKLU1Bd0dDQ3FHU0liM0RRSUlCUUF3RkFZSUtvWklodmNOQXdjRUNPNXp1QjdVZkExa0JJSUpTS3NCelVFR2NsM28KLU8wb3RNbG1hdmp5ZVM4UHkzaEdRd3ZMWkJMRS84RjJUdW8vYVViaWpVZkU2bmhLQ3dDb3pxQUVxSW0zVkdzcUkKLVZsMGxFc0twSC8vNnZzdkdDQjJaWGQ5Mm5mVlc4ekpjQ1dBbjZ3Q0s2dGpvekgvbC9NNnoxY1NYU0VwcHZtWjEKLU8zZm16Z2hZVXVuSzYyaXN2WnNrVjJLN21uK082amh1blNpV3FrVEJyVXpubytqRkY1OFJyTXYrTS83U1dIM1AKLWU4YnJVNk9jb3ZnY2VjYnJMVzN0NVVpNEFKV2Z0cGhVOTlab2hsTUYvN2oxNUV0NnJ4Nk9wSG1US0ZHYWJlUVUKLXZLMjdyWjFmemlVSE5lYldHOG5XbHdQbEFaeXNwVDV3N3VPSDRZTGZPWUtid2VtODBaVk9pRE1GMVZoM012S2oKLTVkdVdUeEFWWVB0MDEraytyTThoTzhvSUxaZ3dJcWZUT0IxL2tmNEhXcFYvWm4vODdqQzhqcWo2eGxPN085d20KLUNuQjZOUlNjMStxY3BSSnJxS0d6NmpWR2dtVnMzWllXYkxTM3oyWm5FRWVtbmZDSDdsYXQ0bTBDMnRTWjVEM3AKLXRCU2tMT05IajFsdTBQU2ppQytRbWZvdmdoOFFXZHVaOXVGenZpdXdMYVdwSHlPS2xJUXpxU3Y4aTFUUG5hQlkKLVFST0hRUjVySEw0MFJKTjBFeG50MzJ3eHovaDZEVkNRT0o2OVpSSTZXQXhDMVBMNWdaVnJMWHpyOUUyQ2xtTk8KLUQ0VENPd0tBQ0RqeWJGNVNmUWs4RkZKN2hLMDNEckZhUTJhcHFrRytWZmJkdFdwYmdlK0Q4bjcrS0NtMWw4RW8KLTNSTkJoNjd5S0RWTnZqVHdhVjNpcmtDcTNSNHNUS2x3VjRSN21qS2NMWERGZXM1MHBYS1dHK2NQbE8wM1Jkc28KLVlnS2R0MmEveUZjTlltOG4xTW8yVlc1bTFaYjdqTnZvV0ducjV1TUFMZUVRWXZ5d3ZGeUg3cDcxYWdwc1h3QlMKLUVCSGo3Q3UxMHlRNjZTVmFpUUVoeHVsK3JaVEVaK1h3bW1FRXZRYU5hcXJoUzFwbjJGWDJydFp6RGhndVpabFoKLTIwdHNaV3FUKzRla1hXSi9rdWEvdXI1ZzMyR1U5eTV6ejZyK2R3OGcrU01WWkhISTZldHF3UkhmblFiaktxTGgKLWxQbytocnFoODFnellVUEQxQ3pxUWoxd0ZOTGphUHcrdnhxb1JTTDgyclJNZ3ZjOXE5a201SjVwUTRjQngvL0QKLUF0aDdMMFVqRUZnM0xwZjVCbUZ3U2FwSUp5WDllTG5aZWxheXcrSzZGV2JLeGYvUWZxcWNISnVUaEFTNE12Zy8KLW51dW5ZakdyK2NvLzdGL1k2VDkrK0pmb1h3UlhKd3RyWWg0NlpQQ1poNnVxcldKZHRDa0Z0aE5qTGtLRHFiaUwKLVZHQU9ia1prYzAvdWFYck5tcEJEanM2Ykh0YXlMY3NlZ2JKUTlsVVV2U2RzL2tobWNyR3ZwaTRCTURTUmptU1AKLWNtKytXSEp4eXRQMHc3TnlBMzRsbUhZWmYwZDZqQzQ4NlVCM2RXMnBBVEtoaGNrekJjSW56bXRPK1F0blRaOG8KLWdLMVU5N2VyZ2gwZmF4VkRSaEx0OE0wRWVhYjJIdFpMRU5wSmZteUs1VE4zVjZqZFhtOWROVHJGaGR6QUFrOUEKLUZreUljRnZuOWx6aVRSYVZHTGc1MmcrVjZEZ2oxSG5uOEZtQ2JyNVVjRjdmbjRUWU4rWFY2amMwSXFlbTJVaUsKLXJaZ095QVVFNXNaaEROTzVnMjh3VGs0SjV0R05IV3ZsK2FEWGY3M3gvUEdlSSsxMzZLQzlCTGs1a1paR0ZBeHUKLWJPdXN1NDZtSTRkZ1d6aXZkS1hXQWZLWjI3ZzhTZFA3aE1lM21lRk9ld01FU1NnWnJVa1c1M1V5cE9QNzZSYVcKLXI0NUU1VDVHTnNhK3hWeWhCbDV3U2VidzNEaHJiSjMvVXcyWWV6cnFOL0p0dSt0OXZPL0F2blI2Q3hsU3AySEkKLUNCckZDVlphQk5pV0tHZUhyQzdHTTlmTnpmR3B6eG1CM2JEdktPRWx0dGZvTSthYXBENW5IYWNqYUMwdzVuSk0KLUFSOTFSWU9ocUl1djV0VkgraHFpT2Y4WURqU0UzZVFNSmZzU1ZSeXhTbnh0L2xTc2FIZ3FxU3NPNXZSYkdpZHMKLS9lUm5YT2dSaFJ6eUcxcDVSWCsxTW1paFBzanlCQXpMWWdTUXY0U3hsVnFMV3UxSTRqSzVNUjVxR1BMRXcrYjYKLUN4VlZVNnBQSVJZZ1JIeDVCYVhFemd3MGFpU0pBTnBnNDdtSC9TVnlPb3Q4V0tEa3pMNStHSjJ6SGZUanlqcmMKLXVXZFRDSzV6dkJ3MXhJRjZtS0ZtcHkrcHJHL25YeE1jRUtNdWZJYzFPdEJBQmJoSVVXT2RQTlV3ZTBSa0kzM0MKLTVFYWxIYlZkYXZaVWp6MEVjUVcvUFFiWXp4ZjBSRDd1MnV4Uk1oblN6andHcHZsSTZKcFFOaWhVTVBYS0JSbEgKLVEvZlF0ajVDQmFwdll5Nk5JMXA2UVNLS0hPb25BUE9Yb1pqSERna3RLZC9FVGh3U3VXd2dRbDRLSkcyZG0ybUcKLXJETnFMd1I2UkdvdzlyZkZSQ1F0RlNzcVY2VzBXcytKRktKWVN1VFhJUlZOWUxVaUE4aGxkeTZ0dTNmWWtScEUKLVkzVCtpUjM4RTAzUXlIczc3RkxBMGhEakpKTllyazlzNVJMa0hOc0hmQTlYdVpxcGxjTUJKRUk0QUJ4SHRpTEsKLTlQSVVMa0htSFR6ZEh5TnVRaWZuR0hnVWRuL0FCT2FxeXBnaUpGOEk4SWp0aGc5Sm5iODBxc25IUFNDVFpFV1kKLTZUTmVVTjdINnpreVFLdGhSbWhXajE1M1lxUi85WVA5RnRaSjZ6cTJYL2x6NlRuL2E3eTZlZzVkanZqNHlMZWEKLVFCVVdkRlY0WU13NXc0RnRvc1ZJMlZReWFsNXkzVURzS1UyemZSUHRCcEs4TUNqZXJlVG5aNk5YSkhMU3AyaWgKLUNGZEpyTWxWL3VpZkhIQzNCVjR3MFZjT3Fxc2cxSnM0akRINGJWWXNMSnBHZnJBdE9LdWtMUVU0VGJFZEdSTm0KLVBOZ2MvWkhBSENuc3Q1Wm9PWE5JL3o3aW96bkpMK3hFajRZeUJNRTZxRTRvQk9Teml4aklGY25NQVdUWXMzcysKLU45UEtJYmk1OGorRkp4SW9iZytDVzEvMFBPSTkzY05Za2YrRGFWbi9sRVhXLys4R0NDb0N2RVF3Ly9YTGdiaVMKLXBPUnpHUHc2ZHd0RjlCaC9mQTQyYmVhaUtPdFlOWUxhME8yZkkyWThIalVIVTI3OGpPa1F5M01NRDEvRmxwVlgKLTRoUzZtcG5UTHl2MjAwdlF6Mk1kSE1EVGRoRzNaR2RlSWlHb2owOWl4TUVJWjNBVU1oVDFLdVJnR3lEOUFFdjgKLTRud2UwdnBYWEtIa0pNalBERlJPL3BuY3BxdHRHQXRPazdsWldJSm9sMzIra1g1NG15L0NzdzFGSWNMNDY0UmIKLVhLd29hakNDRXdkazNIWm1iMHZjYkpmOWhPeXQ4ZHEvZ0tqQVdSSmhZVmF6WlQvV1hFVHUzb1BNZ2Fndzdza3IKLUdxWGRpQWdDSVJyNXAwOTZ3cGRWUDl6M1d4OTJ3VzNJTTNvYmlUNmd0RTF0VTlKK3Blc0dSZWZXY2c0anVvTS8KLXlXQkZXZmxRZ242TXBsRlV0dThCVFRSLzhySVdwb0NncUdVRkxlaEFzaEVXcmN0UVhwS0VNaXkzMktpWlgzZGwKLWdZZ3UrSmF1WUVQVTkzWFpYWXNxbHdLTHlsdk12UVNCY3FNNU8zUFQxUUkzcGwrbVB6aDlndE41bmdTNXQwSlAKLWV5MHV5dVB6MU9YSUFOZmxBcUJBODkzUFhqV2lnbTNEM2Y2eVBsdXdnWllrQ3VjWHVkMm1hTjVSenNJR1duSDIKLWN1TmZDTHBxUHVwODladnJ1RU1XTDEwQVlRZTE4TGFYeDVBdDViUEIvYzdSbVcvWEQvWHRzV3RpVmNEdHRXM00KLXo3ZmhYQkg4OWlTODgzekxtaVUzVU4rYXNvMm5PZXZXa1BWb2JLQXEyRHdDWFUyK0Zvc1k0QjI0NEJSZkJaam0KLVVCamszTTdoQXdiLzlQdW9OckxVc2c9PQotLS0tLS1FTkQgRU5DUllQVEVEIFBSSVZBVEUgS0VZLS0tLS0KZGlmZiAtLWdpdCBhL3Rlc3RzL2RhdGFfZmlsZXMvcnNhX3BrY3M4X3BiZXMyX3Bia2RmMl80MDk2XzNkZXNfc2hhMjU2LmRlciBiL3Rlc3RzL2RhdGFfZmlsZXMvcnNhX3BrY3M4X3BiZXMyX3Bia2RmMl80MDk2XzNkZXNfc2hhMjU2LmRlcgpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZmRmMmVkMi4uMDAwMDAwMAotLS0gYS90ZXN0cy9kYXRhX2ZpbGVzL3JzYV9wa2NzOF9wYmVzMl9wYmtkZjJfNDA5Nl8zZGVzX3NoYTI1Ni5kZXIKKysrIC9kZXYvbnVsbApCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS90ZXN0cy9kYXRhX2ZpbGVzL3JzYV9wa2NzOF9wYmVzMl9wYmtkZjJfNDA5Nl8zZGVzX3NoYTI1Ni5wZW0gYi90ZXN0cy9kYXRhX2ZpbGVzL3JzYV9wa2NzOF9wYmVzMl9wYmtkZjJfNDA5Nl8zZGVzX3NoYTI1Ni5wZW0KZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGMzYzA2MzUuLjAwMDAwMDAKLS0tIGEvdGVzdHMvZGF0YV9maWxlcy9yc2FfcGtjczhfcGJlczJfcGJrZGYyXzQwOTZfM2Rlc19zaGEyNTYucGVtCisrKyAvZGV2L251bGwKQEAgLTEsNTQgKzAsMCBAQAotLS0tLS1CRUdJTiBFTkNSWVBURUQgUFJJVkFURSBLRVktLS0tLQotTUlJSm5EQk9CZ2txaGtpRzl3MEJCUTB3UVRBcEJna3Foa2lHOXcwQkJRd3dIQVFJL1BUTlg1cmVVdUlDQWdnQQotTUF3R0NDcUdTSWIzRFFJSkJRQXdGQVlJS29aSWh2Y05Bd2NFQ05lcHNQZGZ3S2lNQklJSlNIUnk3a096ZldUSAotTzlMcDBUY0hGWGgyZGtCM2Q5djhIRFRxdVdZNWJyTEdSVnF1WEtFSm83RE9LM01ZLzBLYXEzL3MyaG13c0F0RwotWHpzQzduS3VZZmVBYUwvdkM0MDY1ZzhMV3hYb0Njemt3THlKOHdsK2k1bEI5VVlaTzdVUTE3WlFPdlFxdXZZQQotS0txZStJeEZCSlA3UUxwSStpU1loNlJHb3FsdFUyQ1ZXNnJuVnBBNm1CMUo1ZlIvdzkxM2Jma3EvRjhlTEQzawotSElpVXZLZjcxenU5WVpOWDFlTW80a0NRSmg1Z1Y4M0Qwb1hvMThSUmU3dXpjQnE5WlZzOTBvS1N1TUtBcnFLcAotK3lpYXdDQm16VVU4TlZlbFdmcGZkVEF4UkRnSWorNUV6TGQvWTk0TUhlaWUwR0NQazhWNHVEdW9xblQ4ejltRwotSVFQUmUxeDVJWXBLKy82aGN2RWozU1NKbFc3V1ZPa0t4UWZhVFR4TlZoWGFTbmZDd0lVZkhPK2dZdkdqTjBIWAotNlA5Z0Y5K0xObG5IUkEwZENkSHBHRmx2dy9ONVRaL3JtRm16cXhMR211TGZvY2JWbVlHNXQybFp0QmI3b0VubAotRDNZeDd0azJHdEtnNXVXWENMTjF0R2YyMnN5enlMc051SG9VRkxjZThReklnVzhNSmJlVHUyOXZCVFY3WUpSWQotYWttSkRrbDFTWDhHbWtiZW14TjdqU1JHUUQwYzh2SGpuR2RWZXZvYzR6MDExZ0wrYkVoekp1K2RHbGJwekxCMgotVkdtaHB0dmMwaVRIRkhWemVZSmh2UmZkRzYwbEI3UDEvWGJUVVZtWjViUHNyVytGZ0dOcjBWczY3MGNzRlhJUwota2hUSUMxNUV5M2t2eXVCOUJOb1lFMmwva0t5ZDFGZUhxUytJU0hyaUcyS0dITzQ0QmFrNjJPbDEwREJ2MS9rcwotWVYwLzNBUWVzMzlob3hHU3FyVFh4QW9KRGEza3R0Uno0LzdseXJUQ2pSWm9CNjZGRC9xK2hWOTNyekJCd1BDVQotUFd2YThMeGNzWW1GM1ZBSUl1ZHhmVzY4Q3VWOG9xOHA4K3BKMUpqZFo4dXlyOGorWXV1WDYwbzB2SFJRQXI2dgotbjQvenBoOXNzYlRodjIycE42NE1iR2taR3BmQzFyLzhTWHFNZG1FdThtanZ3TGlDK1M2K0NEZFVrWkIxalBZYQotSlg2b0VjZXh0U3ZJaXZUbE1DM0FBZmYxWlpMRGpvdGxjaHUvS3kzL3VndTlvTkM2emh6UFd1ZzY5YVVjdHVtTwotYWhYYmhBT2pzd2tUakJwMFRQdnNJSXlsVE5Ed1dORWZCOXExNlRmajNJMGQzVktDWk9hSk03aURsbC9yTThNLwotQVdCSjBMNGREdWh2c00yVGpNeko4cDRKWGF4Zlg5T2pnUjErY3VSZTJZelFQVURCZU90K216MlNDamdPQ1c2agotcjFrNzZpbEdtVUQxSlFieThUOE1TY1NwOUgyemkzUkl1YURWSndITVB1NUtvb1VSOGVGN3c0Y1Rxc1MwRmhkSQotbjkxTStvMFREY096T2ptRGowdkgydFAySFBNbHFNT0hVdXQrVG0wSjlmbFR0eFFvQWxmdFBxM2JYaEZqVDdXcAotcnk4SlBadXpRRFVNZFF2aTIrSjR5WG5jMCtFbFdBZFNrYXFwRXBrT2VrZ1kwbFRqM1cvK0d1eFBQUHFBeExGNQotR2FaNWZDTEZKRi9pb1E1NUozY25DaGZaUlhybFF3MDh6c1FpTGRDeUZxNFRuYng2SG1ndDQ4aktoUGRkdnhodQotYi9TdGx2YVJWK1VhTWRsbmwzTXIzRHdXandJVmdPRWU4L2M2VDBUQTdyaGxoMm11b080ZFQxdDQyc3RHUVpBeQotckI1UG9LSndMdHpveVFLZGsrTEN2Z3JyZExtSVFtSzBBQjE0T2hFQW9Xd25PeXo5WFo3UU03Wmkyai9tc1pYagotaXBtendkeG4yK1pmbDRnODNkbjNwWHkwK1g4TXVnY1hMVWZnUnRORWs2WkFrOFAxUGFRWnRpT1QyRFMrS2h1agotV3ZuYWxIS29OWVNlT2ZxMU1KSmtaNWtHNndyaUpld1h0eVJadHlYb2xUVzBXYktOcGNzL0V0SGJQeENjZU9OZQotQ2NZUFBYbm5RUTRGd2w4ak54VVVzOXZPMnVMWE9zNHlLUGt3Z1g3S0JtR0lsWUxCak0xaXNOaGk4OGZWWEJ2ZAotUlRMRmJseGxuUkhoalFtQlFhTGRrV3dSN2hOM1R3ZGN4dG9iYVJ3N3c3QTNQZzc2a3RZK1kxakF1cXUzSHFUaQotcStrN2RpY0gyOUxGS3Mvcnk1ZEFGSlBncEc5RUhQVmVtUy9QSU1LSHAwd1JMbEhtUDUrTHZkUmdTTktMVW95eQotd2x6K2FaSlhLb2JrNU1JY0xSWlJBbTdLRi9oSGZ3bGRMTXlicnpvYnd3dGVUbDhNdHZRWXBIYzFjcUFGdHFFZAotVjQ5WXdGQ1gwU05RTE9jZEpaeVJvbHRjZnRpSU5zbm9Uek9LRE40eTROYUhwVTY5bE84QUE5VFV4MVV5SDgzbwotakdVR0F0QUhRd1V3bXd5Z3IrTlJ6cSsxT0hHQTFKS0xMZmR3R0tjdDJTWTJzbWljam5PT2dqRi94MHdpU3d5bwotSGp1QVJzZFIwcGM5YW5jUFEwS25ELzZlcWMyQWNIWGlDRmkveHU3ckNUd3NtTzVjclNYUkwxVS81Q0Y4SzI5Zwotb2xDWFY4Y1M2WDdncXlBUlFNSFhXTjBReDR2TjZUcVQ3dnV6TGFhaUM4Y1lpaUt2RG82M0dQeVQ2cVJaNXVZNAotdTA1WkxyMTh4elJNNGhqVWJ4WmFEeWVmT2tMMURFOUNPM3JKREdYNm5qU0xoM0l4U05RVlhOaDZsdTBUeDhDQwotSEExUzNhOGVSOURhL3RCRDhQTHdhUTB4dnBISFFXc2RYNThOYjNBRnUrVytlZTRORnEwWnJQcWxoTHBTT0dSbgotYlcrVTI1WUZkSU1zTzQxVmhhZnNGS1NkKy9sN1Z3SnFPU1p6TWd4TEVyM3A5QVNGQmJ1elFlRFZXcjBrTVl1bQotK1dmNklTa3d1L3M3aHBuTWliU0FDVjN4MUZhd3dpZTh2SDh6SDZyZzFhdzJBSVRmYjVSdUlkQTNoMHVYN3IvbwotNk1UVUVneTIxVDE0ei9LUERmaEo1alA2Wk51VnpwUUpHZ1FmQXNKelBLVlpnMkRyYW1SdmdTdmRMdysvTEI3SgotRmVkTkFYU2dkZVNKeUxpd3k5Z2xEKzFkV1ZqN2djMGNqK0hCUXpBd1NNZHdvWDVFN1JrN1VYME8wUzd5MStRNgotdytHZDh5eGw0TkRhTS81UEg5VFNLQzVvcm9Qb3Q0cUgrb1RVdy95MzJLbDVUWGZKdldIYUtEY2x1SVF5Qis0WgotQUJ2dUVheHozTlIzeUk1WGUrS0R0cHJSdGZJOUlLOHAwdEZWWXBaZkZVVUx6aksrSkdLaThnMUNjRG5xSU0rUwotMUhkU0pQL3FzTU1sYjFpTDYxOW5YaFdxTy9oY1ZadklmZmhZektaSkZBdXJxY0VrYzM5M3p4bnhraUExWmFZNAotMXNDQkxuUVdzbUxlU0tRM3JtenI0aVBsRzM0SXM1R3N1VjU3czZ3Nk52bVUxMUJURmg5MXBzZHBKMGlRTEptMAotanJVdlpDVFNoY2FWK2xBR2txdm54NUFJYlBkWllTZWM2L0o3SjBPcG1TeXBFZlhJVFhPMElocjhjN0xNelBtTAotQUlIZWYvOGNxSnFKbk0wcElaY3B0cmR5YTNPVEl0ZmpaYk9KMzlaa20rVnMwaDZycGtwbjVzZlRCUE9OWXRpKwotSm5COXlxNmxXcW8yd1c0cDlweUU1WFhXY0FCTWVxMHVQb0dYclpQWTlJdC9hUEI5UlVDeElEMDIwRWh6N0oxQgotWTR5WmpFeDNWaWkrTEFnK0F5a0IvMEZMMVhlNFNJbjEvU2htRXphbjJ3UHh0M29OZENGNSs2dC9oZ1Uxeit6RQotaHdwR25aZkw4YU1UU2s0VTJxMVNKczNNUWs5QmxUbWJLc092YWpOK0NqOFpMYTBYMm9IakVWNG81UWM0R2dzNQotRVovQkp4R0J3T0ZXa040MVhFMkRVVzVFNEtxM0FZU2hWQXFtcTI0S0loMXJPeHJYZWJ6RWRuOStKdCtWV3o0cwotV3FEc3VSS29iYW9EcEZGQ1FCTHZRQT09Ci0tLS0tLUVORCBFTkNSWVBURUQgUFJJVkFURSBLRVktLS0tLQpkaWZmIC0tZ2l0IGEvdGVzdHMvZGF0YV9maWxlcy9yc2FfcGtjczhfcGJlczJfcGJrZGYyXzQwOTZfM2Rlc19zaGEzODQuZGVyIGIvdGVzdHMvZGF0YV9maWxlcy9yc2FfcGtjczhfcGJlczJfcGJrZGYyXzQwOTZfM2Rlc19zaGEzODQuZGVyCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1ZGVjM2M4Li4wMDAwMDAwCi0tLSBhL3Rlc3RzL2RhdGFfZmlsZXMvcnNhX3BrY3M4X3BiZXMyX3Bia2RmMl80MDk2XzNkZXNfc2hhMzg0LmRlcgorKysgL2Rldi9udWxsCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3Rlc3RzL2RhdGFfZmlsZXMvcnNhX3BrY3M4X3BiZXMyX3Bia2RmMl80MDk2XzNkZXNfc2hhMzg0LnBlbSBiL3Rlc3RzL2RhdGFfZmlsZXMvcnNhX3BrY3M4X3BiZXMyX3Bia2RmMl80MDk2XzNkZXNfc2hhMzg0LnBlbQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMWZhMGQ3Zi4uMDAwMDAwMAotLS0gYS90ZXN0cy9kYXRhX2ZpbGVzL3JzYV9wa2NzOF9wYmVzMl9wYmtkZjJfNDA5Nl8zZGVzX3NoYTM4NC5wZW0KKysrIC9kZXYvbnVsbApAQCAtMSw1NCArMCwwIEBACi0tLS0tLUJFR0lOIEVOQ1JZUFRFRCBQUklWQVRFIEtFWS0tLS0tCi1NSUlKbkRCT0Jna3Foa2lHOXcwQkJRMHdRVEFwQmdrcWhraUc5dzBCQlF3d0hBUUlWZ3FFMnFIY3ZTMENBZ2dBCi1NQXdHQ0NxR1NJYjNEUUlLQlFBd0ZBWUlLb1pJaHZjTkF3Y0VDR0trNEFDdVcwTWRCSUlKU0hRRitBajhjNVgvCi02akh2V0YrUis0OVhaWXNXc3Nud0JGYkVJUEpWVE5VTjZxTWVkUlVoV01tTUdEcGt2Sk5JRHh2UmdUZlJheXBnCi1ycDEvQ2RuK01vdy9kUWhMbndOU2YzclVKNWNhb25MTWhRWkpPdTF5Q3hVZktKNnNQaU9CS0ROczdMRG9YbWNhCi05OE84SXZsd2Q2a00rVGhLenlCNUJWb1JBakYvVExhNFJXQnhoVmRDWWI2d21LbnJuNFQvcjlqVDIxOFQ4a01nCi11WkJrSDhDVUVFODVHYUxBaERTZkNHU2dpZFhQa3FyVWFZV2hjVWp2M044MituSG5uSnkwZW5LcHBGRkVZZ0N2Ci1XdndJUjBBeTBlV0pmQzRKU1FYZ1BPWDgrQ0xJOGVwSEVVWG5xcDhlMXRtRzJXWkFtT1haTGJVdkVOUlRrdmlWCi1abVFRL09FNzdndlFlci9zWjBaVTFvTXVVc2hRcldWek1pSXRBQ3NNQWdieXdNM3BzZEJlbVhLNzlqcUI3L0ZtCi1yNFFWSEdiOHc3ZE5KMGNMYk00eXRWdVY4SmJyVlNiRGxSWmd0dkdiQlF0QTVmSksrYUdySjlEZ3hvMG83b1pnCi1uSTVZdnJqMVVtaldmSE9XTDZTcEtLVWloMDBiY2J6Z1hnRnp0NjkxODZ3ZHpuVnZka05xakk5Uk9SSGh1bXRRCi1WbGdzUis1eFZDby9SWi9VT1l0TFJSeEYxTUhTb1VhN2w3VUFxMTdacE5OYU44WXY0bmRycCs4Vk8yVXJJRFhFCi1TcjhzaGJsdElVRk8zS2JZQjRyQnBUOG0wREN4WUFORE1NaVFRdk5xM0NWYVV3eGJvaWFqNmxQRytWbHp4ODgwCi02VWlaUndOTHZqTGxVUHY3VWZJaUI4bTdDZmNRM25ncGlLVnhxZ2k5dnViZ1F4MS9pZnkxUE5pamhaaDQwSzUvCi1xdk10bzM4aW9qaEN1ZGdRYmVDQUg4anVka2JXb2FMMHYzak1oWEMraFJPYWl6QUVEelI0aVdMVHBibENENnNFCi15bysxK2pjcG10Snp1eDliaTFzZ09TSXpVNWRZUGU4azNMdGk2MTJCTlZUUGJ3QXZhOVJFRi9kb3ZNTDFUV29nCi15NElaSER5ZkszcDlWRjlaWjZ4aWlpanA5cGtCQjBQdWtzR25zNCsxNEhBRXlOajlsckljOGtaZ1NlZFdWdTdKCi1FNjN6NTE0VlpMaUh4ajRMQzlVNUFIVHdUNVFoMVdLdDVZSmFObjdDcFpYZzBmZEszQXpucUhmenppTzBzNmprCi1YRndySXpzRyt6TlBTWWllNUF2aHNiOUlZc0FobTdqMGFudUVIeUdTNE9mOEtFR0lnUGd6R0hNZmQ0MGhPamtBCi10T0N6cVJtRi9pcjZJTy83Yzh3aVN5b1NhL1lIa3pIQjloZ1B2cGtxYk9QZWxBUnpNcUQ5ejFubnBrbFB5SkpJCi1zc1JnY1NvRTEzL0loZkxqYklwWENVR0c5ZElBd09JV2RkUldydzRibW9aV1phVXdBL3p4R2Zlc1FSR0QzQnpHCi1YOWZDRlB4MW9Bd0JoYTEvVm51alFSeHRNWlRqMFdneGxGV1dLTXlCNHorVEdQOFI3OHJvSlpyK253UklvSnYyCi15RS8xVks4UXMxbFhsS1JPNE1kVFZKMjZEZUt1eUZZZkx3WTZiU1NEQk1YMDAvSC9tcm5UMkdTOG5IUVJlbG56Ci1DZkQ5MEdJaVNmY0tjRHEzYzZabjhMRTNzRzIxcmZGcHd3K1lEd3R2dGJVNDQxUEI4NEtFaXg2UjNISnJDZUJjCi1RS2o4Y0E3cm5FMkUzcVRkNHZqZmw1c1dCNERuYmljNWZ0Ni8rY2R5V2FoaWs2OHhRTGhPK0VuTVNIUE8vMEc2Ci11SkFGZFJIVjVMSWVzdE9HV3pYcG5OdnZkaTRMdW03YVpWV1lZd0tISUhvZkJSRnJnWGFITXFoMXF5TVNwSkRWCi1BOXVLZTJaQnZCRW05a3dNcUlNakVDRS9JcnYxSlR4VUt3ZHpxMlJpMWJ0TlJRd3k2ZnRGQWVLWldyVnRDNHRyCi1xK1JoWHJFa0ZtRVJqTDdtU05BU29ZTDB6ZVZLdnpNcmUyNFM5bFp2VElFcXRsaTdNZ2tWejBvY3crRkFzM0lyCi1KOXRpM1RtN3FXN2wzZmFiNkQwL2ZGK0hzNFZmRFhHRmxrQ2YwOWlGczNJWHo5ajZFMG5QZFVwMXN5OHR6NzVJCi1jK3ZxN0E4YjZlVDFzOFpaUlBLaXFjTERFRThnblFGY1dHMzkrbkY4cStjWFBDQ0RxcTNpS3E3SWRVeEV5emtyCi1ldWJJTnZFMkZqbTVKb3cyS2J1UjVKK3hiYnVHN3A5RkRjanBqbjIzaGFsRHlsaVJVZjlKRjRnaTFQd0E0UndDCi1KVlVWL2FrS1J0bTJicFZUZU5QYk4zOTRMV21wL2hlK3RqSC96amM4ZG1meFlNODN2NCtmREhQbzRLQk13ejRWCi1kWjlMaitYS3VoOEVaeW5PM2FidERtaldiUjhmRm1VWitSN1dnNnBGbHY0ZTBOWFdQeHNvYlhPOHdhNWZSV3hXCi1MRW9KUGNWN0I1SG1QRkw5blFJbmhKZFUva1p4NFFwbmRIbDAwdzlVTXBnVnBmNWxXYlJDQ3hMZW1WeVZFMzVWCi1pUUFmcHN2WkJSbUdJcGFpandZODg1eU1XaGJyOXdreWErdTVGUXdnVUZjbUU5V3FsUmRIblRSM0lEUWJjd1pNCi1Sc0JsZEl1eGhSZVcyVWNrc1NzM2s3U2VpRWtJdjl4OGRJNUlDQ0wybW1EdmRGaWVySDRHQVFuTGdDQmJuZEk0Ci1BdVd6RnhCUGFseERDdFBnaEhNNnhrdjFubzIwaVltbkFkREMySTBFZlJhSEFuWWo0M1FIcGkrbWZVZ0dhT1BiCi1jUVFVSTdWUEVDT2xSMHcwNFd6K0JrYmVjZjkwYVVMY3RrRU9uSFcwQWFJTFc0aFFScnd3NFRhSUh5V0VnODZLCi1BdDN3dEhBNU5uZlpKRWlvRVZkenBOc3BSRGd0Q0RjYVhNTEUyUkpJUzE1NXcvQTNDUnRhMDNKYzA0eXBDZHFBCi00TFhDYS9MZ2svYld6VFZBVFF4VmVlaXgzNndOalhPNWU5UW90VVA0cUVEZjNBU0h3M2NuRE1NNVR0TTRTUXAyCi1LUWtVSyt3TnV0aWxpT21sOHNsdEdtb21jUEJRYi8vL2k1WE9xRTlDL0lCTE85eEh1K0J3b2FpS2pPbzlOR2VkCi1jWXg5MExqYTM1RTFqVS9tOW9NZTg2M1dTbUUyZnJwdHh0dFV0Vmhxbkw4Q1lpaWM0SU1ROHBWNjErR3VzZEN5Ci1YZzVyaDF1VmR3T1EzTUJOSHozeU5WMHA1emZIQ09nREZjZk9xdTZBNmJ5bSs3WGxiZTQ4NHNQWUFkZTlvblVMCi1NVHNLSHllM3NNbXlaaXRlMmlNQk1laUdVODNPb2ZYT3lrNW1YMGZPaEFoWG9DNWtWcHlDc2xoUFBtT25DRndqCi0xajJTRWRzRGlVdUJYMlNkN1RtTmQrUEsxR1hBbmpLeFVESWt5MGxMWlZTRDF1NDcwYXowQjJSd3RzVTQ0QmxkCi00dytFMnNBcm5JajNIYm5zaWlaaEttaUZrUFZNM0hUVHlwUzkzOTY4My9sdEpoL2U1akh4RUxra25wNENyeW4wCi1xdmRJZG5SN3U0U3ZRSDFIQllXUkxER05mZEdzRUt5elRSWm1rLzFWYTZiM1o4MEJmNkVVbUpFS1FyYmhOejNECi1PVFB4clQ3VEFoTzhFRVBtekZ2ZVVRQ3R3VVhweWcrUms5TkEyV01Qa1NCK0llNFNRdWtxbzUxbXg1M210T2tYCi16Ukt2Ykpqc05VUTVOL01iUk15NkllN1MxRm1CWVlMdHNtR01HWG5tMHQ5OExoT01FOWhWb3FnUHZjZlRHM0ozCi1qSFRaNHZnaEpES21hc0RTMFdkOTZzTTRzYncxREp0cys4WW1VSXFzNVppamd5KzMwblZibzdhVEV0UnFJRXUwCi1lS1N1SHNIZ2tVc21vYVE0RVFUUGdib1FNY2VoakgzdEFMM3NRbm14cnFyR1hpNWh6YW9kZEFUL2xDelhUeXgxCi1DMVRUV1hBVk5FU1duSjJxcXY0WUhmbmJId1FPUlJjZmR0elZ3RkJBZkV0V0V2a28xeFRtMEpHL2tGWDFIaHhuCi15dExuSDBlNUJsNCtKYzcyQzdGREFRPT0KLS0tLS0tRU5EIEVOQ1JZUFRFRCBQUklWQVRFIEtFWS0tLS0tCmRpZmYgLS1naXQgYS90ZXN0cy9kYXRhX2ZpbGVzL3JzYV9wa2NzOF9wYmVzMl9wYmtkZjJfNDA5Nl8zZGVzX3NoYTUxMi5kZXIgYi90ZXN0cy9kYXRhX2ZpbGVzL3JzYV9wa2NzOF9wYmVzMl9wYmtkZjJfNDA5Nl8zZGVzX3NoYTUxMi5kZXIKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDcxZjEyNWMuLjAwMDAwMDAKLS0tIGEvdGVzdHMvZGF0YV9maWxlcy9yc2FfcGtjczhfcGJlczJfcGJrZGYyXzQwOTZfM2Rlc19zaGE1MTIuZGVyCisrKyAvZGV2L251bGwKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvdGVzdHMvZGF0YV9maWxlcy9yc2FfcGtjczhfcGJlczJfcGJrZGYyXzQwOTZfM2Rlc19zaGE1MTIucGVtIGIvdGVzdHMvZGF0YV9maWxlcy9yc2FfcGtjczhfcGJlczJfcGJrZGYyXzQwOTZfM2Rlc19zaGE1MTIucGVtCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxOTRhODk1Li4wMDAwMDAwCi0tLSBhL3Rlc3RzL2RhdGFfZmlsZXMvcnNhX3BrY3M4X3BiZXMyX3Bia2RmMl80MDk2XzNkZXNfc2hhNTEyLnBlbQorKysgL2Rldi9udWxsCkBAIC0xLDU0ICswLDAgQEAKLS0tLS0tQkVHSU4gRU5DUllQVEVEIFBSSVZBVEUgS0VZLS0tLS0KLU1JSUpuREJPQmdrcWhraUc5dzBCQlEwd1FUQXBCZ2txaGtpRzl3MEJCUXd3SEFRSW9XUFZkTlB2ZlRFQ0FnZ0EKLU1Bd0dDQ3FHU0liM0RRSUxCUUF3RkFZSUtvWklodmNOQXdjRUNMWWMxQ0ExR2Y0SUJJSUpTRzRkUE9FNnZwckIKLXpQSkxyTzFoZExqM3phMnRkSy9RbERicU1TY0ZVQzJtWHE1Y0o5cnd3YTdBeUt0TDBVNFExTzA3Vnc1R0I5MkwKLUZWYlk0aElSQzBYdHV0Q3docWxyMGtVYUlxSC9JanlZNmp5NjJLZXU1S1lZdmtqUE1GQmtZQlFEMVVBL0JUNDgKLSt5SVBIL1JTWGJwS1U2ejFLYVc5RmlFdFBvWGZ3N2t4eVhISWdsQUVRdFBhTithZUV2cHVEaVJBTjM4U1U4Q2kKLWorVWI3c3BmdDREN1g1b0FSYUFnUUNOdWhPN0xyOUZENE91eGh1cldvaUZiN05KUHV3VHIzNVBLNndXWWZqd0MKLWtwZDRpUkNBaGk0Y2wxejBab2ZTbVR5UzIxbHo3dWMzeEp5Nnp0Vk1xT281Mm1JcjNsRkhhdHBDNzUvYzBMM2QKLUN3Y3owVU52a01PUjF1MVo1aVpob3FzRmF5c3JLZWRkTS82aUJXUDJvc3V6N2xUWjd6OTVoZ2tzQkYxd25QU2gKLTVnb1N1N1pWYlluc24zV1pHVlF5REtiQ2N6MkJ6UGovUkx6U1l3anJyNDhoMFJPajFhY3ZaVGRmRlZpb2lpS2cKLXQwdzk3VzVoNkRnbkRaTzAveWlONVEvR0xEK0xhaXphd3UySEQ4ZThkbGthTUNEM3JFbDRSTDdpaWdoNENvK0YKLThSYXcrVVBtYS9yZEhYMW1adHRuay9ia09ycE5WY3JFTCtaeG1RRm41aXQwVm4rVTc1c05IZW0zYzRBK0hoemoKLUphUXRDUHdDaFlUYjhBWm1Ody92RnJLa1V0TnBNSUxIQi8xc0JIUzdUSW8wc0VYSndXREV0clBMSkRMdmhvanYKLUpJSXBHUW1vQ3FESFpwc1lMR3FJL2tIdFdSbDNqQVhHbVZscWt0K1FnamJrRHh4cjdrU0JBY3FFb3V1RmNLS2EKLW0yTXkzWHhHTUpyT1A4aVd1V3BaeDFwNzdvUWNwSW9Jdm5GMDZlcTY2eDFIMW9KYXFZVGduNFcvV0JkN3FTY3YKLUlMQ1RoM2NlV1lDaDVDby9TK01vbndxTTJQcGM3SldJVmlubnJwZHVGV2J1dnZCL3N1Z3JqRW9TQUZOaCtjcVQKLWpUeE04KzF0QVZ2N3h5dU9kRmJSM1RnaVVlRWZzSzZFMSsxWTZZS3NxdGlYcFlOOVBNcGFMZytHYnc0KzVlc3gKLXo0TW4ySlNzWVNlam9oaFNaaWtyVU1IRTNaOFJneE1uMldrUTNoTU5qYUZldEQ0NXhVVGxhMnY1eVJnWWQ3eXIKLUFRSzdDaGVqNHd0THg2eWk1c1RhaWVieHJyQXVuTDRqQmUySnBCZVlnM0oyZEpqalBEcjlZbStZU1NvYzNzOTAKLSt5cGxMb1B4c3p2TWZGYUVBS3JCSTJsbTNrZW1pajdjaHR6U05BbmtXL3gwMnl4S2Nnd3JpTkdIcHBvalVRUjYKLWo0QmY5a3ZmWlgxb3B5QS9KU3lzR1JEajk5RkhvcDRFNGxIcml3Rk5XTWZvWWo2M0JLbHVRRmZtc0NPcHRva2YKLTlXL25BdytYVFNGdTlvamxYVFNQdGx5bjNqUHNTZmxZdE8zVWpNSnNtOURIdVJBL1pMcFE3UTExcE92STBocWoKLVhmTHVRNGRoRFRIcEZFN0xmbGE0dE93ei9sQU9TcWV1cVVmWUtxYTloZUgvTGxwVUJic0FRTStYU0xxaDJjVkUKLU01Rlh2UlRjcWRVOXlKbE1WbzUrQXNxNWlLMWNiMThlM0JTZ0FhSGxvSjNVYXhpT2FSOEFkMjZyeVpzakFRWGsKLXZLbHFHUTJudlltbjdpOXo3aFljVlpSYlhuRFlzeUE3dEZIU1lMVERVbE9qdEM0WWpkbW5BalJvamV6UkhVb3oKLWwxYmNleUJVR1NLQVNNRjA4ZkhkTXUzVTFmZnZ6ZS9HWXIrdWo1WHlSNGdabjF3MmxrVllDQzBHV0FZdXdkRC8KLTR4VlIxcXhEYjF0cmR1aStGTlMvRVQ2RnpsTXRISEVPOWYvdmVFUFY4aHNJZ0FvdVVWbmNOMGJXMEdLUzBGc3AKLU43MnIzYk5IZnY4dEU5VzVIUEYrL0FUaDZ6RDBJbkhxT3lYMndjNTF3RlduU1dkQzAwRGx1Wmw1S1M1d1BpM1MKLU1zTHNSSzZTVGJvZU9YZ3I4TWhzbUFTR1gxeVVCV0VzL0c2akxBVURleE0zRkNRZ1lXQ2dDZFBuTUt2dGVzWG4KLTNxT2hkaTZPbjFCUHF2QVR5WG5keVE0RDJTTFl2MW1KNkNMVFBPN1BUeXVDV29iTDlJcytTK0Q5MjMrQ3B1SSsKLTFQT09LT0xnZXg4c2ZsT2E0YlNrcFdvMzZKdlFPT3A2ZFhZSis1SVVsQTFNWnBoZ3RLeklueitXWWFyMmhkSFIKLW82ZnVHemRuZTc5WFpyS1N2ZUs5TDByM0gzaDRuNUpFWjlBNmNkOGJEQWlZUXA2dzV5bDd2WFU3UDBOTDlId1IKLVhpU0dIYW9IbFJJT3I0d2JJcU5Ublg2ODFocTYyUzhkUHRhanVrejhRT2hnT294L2dMVUxnVHBTRE1YaFROMXEKLU5WL0JmdDYrbFU5K1BDMER5ZTNZZXNKV3lrdVFGdDJoTTNPZzRlV0I5SGEvQUNzR216YmdUQU10TkxDRDBNdWQKLW0yRFlDTy9HcFVETDZkREhKRHpCMnFCYW81elNxK3pvZVlwUDdkOVFzNGFtVnhGd2VuTFBmOTBCSTBJVitEOE4KLTBraDZyaDllMWovcm1QdjFxS3pqMld2VHFkQldtcU9adlU1VEJ3QW96ZVJJNThKb1NSaVFMczFEZlo5bzZWMkgKLWJSdm1WeGRQSFRyeWV2ckZxTDhqRU15cEJOZ0IrQTl4NVZ6aG5EM3kxejdyeEtyNCs3V1czWXU2MEVQNWlyVmEKLUVqb0tCRTJob0dDdUZmTEdKbjR4a3BPempOMTJTVkd6TDhOZlhSdGJrQzhJQnNPcjEzbmpGTE5WTHd6eTdFd0EKLUxGTTlRTjA0S1Y2WjlBRVg4ZDkyTnFUN3cvOVN1MlpnRmU1YVBUbFBXLzIzdXdMNG80MVUrRkZyWlU1My9QeXUKLWUzdk55MUFBaDRJTnFQMHVycHk5R25wNExQL3UvQXdyYmR6bXZKdDh5am5LazAzQWFLTmpOZ0Z1cHJkcGx2cVkKLTlUVUZscjdzQ2YvVFE0dzNCVFpZSTFWUU5yZHV1cjVGd1pibEk5UTZvYkd1bk1QeTNJWUdlVjZDY0NjaFlrWHAKLXU5dmJlNGhGRnJzUGxwT3o1REhaVC81Z0kwZzFaWUZKcStINzNLdTc4c3lEcldIaVRHWUppbmoxcytBY2VpYWsKLUowc0lkNjZHTXR1bnlvanZlSk9Vd2Z4bGlJS1hVbjM3VHFIOEhMakVZazA5VXkxeVhCWlZMYU1oWElTaEdNczIKLWFTTDNuWHYyS21HREdTRlRCdG8xUjY5RFBzSHNiL29WRExVd2dGNXh5WkZ1bTJVRStEMTdtQ0sxUk1jenNXRnoKLStSSUhjNVNZd2lwZG4xakJmSmEvcjNHZzdsN2JNNi9GeTJvQWRyaGNkQjJvUFY5Y1hGL0FmeWZ1MXl5WFpmVnUKLVo2TVdob3JxWkd2SjdIWStHNUpGeHVtdWJFM3UyeDFFa3JxQWFGSWpEYzdOUVF3SEt4R3lNVEtnOUkwNFdRZXcKLTh3Y2JTdXZDY0k0TlZ0OUhNeTBmUjUrM1FrU2Vabm9LSTZDd3FScUxFc2V4Tk82TjZsM1Y3ZEZnRFVPRnFlMWIKLVlsLzgxYlM2YjA3Mmpza2tJc2JGWFRuNzZTOTVHM1VZckVpWWRuMjIrNktQTHlPV1FMY3ptVnZ6dGRWaDZzT3cKLVdSb2lLWVhkVzJVbk8yQVlPWENReVV4VWpXMDZtNkJKOEYwTkxKM0hWdUphektvdUY3aVpzTHBIQnpJOGx1TnoKLVZGNHQwTkxYNjB3djVHMEFaTGl2Vm1WQWFkQjRKSXlUMTd1ZnVkNnNIMG9TeVZSaWQ0MnpmQk56Zm43TDlySXYKLXZtamZoSTdTZW9UMk1zRTdsL1F0UXk5aEpGU2grRHBkV3cydGFKbXhQMjEwcVhBOHRnR2dMakRxSEorazB3dkUKLWxhcUhHT3pZNEoveTRPUHNHTjJmaVc4blJDb3Jhdk56MjZGZjlQWjBTMzVXSjQ2cXhjTUgzcElmeHZJZHRYWlMKLUhFU0ZIekwxZWp2OVk0eTBPNTZsK3c9PQotLS0tLS1FTkQgRU5DUllQVEVEIFBSSVZBVEUgS0VZLS0tLS0KZGlmZiAtLWdpdCBhL3Rlc3RzL2RhdGFfZmlsZXMvcnNhX3BrY3M4X3BiZXMyX3Bia2RmMl80MDk2X2Rlcy5kZXIgYi90ZXN0cy9kYXRhX2ZpbGVzL3JzYV9wa2NzOF9wYmVzMl9wYmtkZjJfNDA5Nl9kZXMuZGVyCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmNDBjOWM5Li4wMDAwMDAwCi0tLSBhL3Rlc3RzL2RhdGFfZmlsZXMvcnNhX3BrY3M4X3BiZXMyX3Bia2RmMl80MDk2X2Rlcy5kZXIKKysrIC9kZXYvbnVsbApCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS90ZXN0cy9kYXRhX2ZpbGVzL3JzYV9wa2NzOF9wYmVzMl9wYmtkZjJfNDA5Nl9kZXMucGVtIGIvdGVzdHMvZGF0YV9maWxlcy9yc2FfcGtjczhfcGJlczJfcGJrZGYyXzQwOTZfZGVzLnBlbQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZDRiNjkzMy4uMDAwMDAwMAotLS0gYS90ZXN0cy9kYXRhX2ZpbGVzL3JzYV9wa2NzOF9wYmVzMl9wYmtkZjJfNDA5Nl9kZXMucGVtCisrKyAvZGV2L251bGwKQEAgLTEsNTMgKzAsMCBAQAotLS0tLS1CRUdJTiBFTkNSWVBURUQgUFJJVkFURSBLRVktLS0tLQotTUlJSml6QTlCZ2txaGtpRzl3MEJCUTB3TURBYkJna3Foa2lHOXcwQkJRd3dEZ1FJOERIU3JBeEZURkFDQWdnQQotTUJFR0JTc09Bd0lIQkFpNC9YbDV0NE8xM1FTQ0NVZ3EzUDUwOHRYVlV6MEl1SjZDVjQxdmQwMkZVUWw2SXhXVQotZ2s5N1RFTnhLb29RMUVCdVVZRFd0aXVTSUNKL1JUS3QveTNKb1ljWUJwZGplRW5rSkcyTDE0RGZnUytzZEtmQwotMTh2MUVERGlBc3NyZS8vbjlzWmZVS0JXSHM4U3FjUHlOSnZCV01MVVc3UU50TWhvTWoxVkVRelRINzZ2MVp2Twotb2p5OGFrdVorcnFFK0VuT1B0dUVPZEppRFlXNnlSUnA0WS9NcVV5eDZQWlBBSGZJay9KSlY2eXVsZkdTRUZMYwotK2dHSS9DVWZFZnNpMkpWSXZhN0pwdmZPM041TzFmeUMzY3gwQnNUM2dvdXNPa2FjeGNSYjhwcWdIYk1ZNDlTcwotZVI0WENRSHdPSXRwYy90SHROT25aVVdRek54WjNkNDB2eFZWK0t1dktpVDFuekIzc3gvNEdhY1MrWldrQ0U4eQotcVl2YnR2aTZYcUNwR2VaYzBpWk4yRVI5aEJ1Y0dQVTE0YU5vQjR1akZ4MHU4eDAxc1dmOUFSTElDSUFNQXNjawotcE1kTHdUWjY4NE5reUs3aGFGblMwNmYzQU9uK0xSSTRHN21vNXdsRDZZZVhnOWRJay9PWVVDakZJMzV1TUI2SAotUkdPZEVxQW5jeDkydFBhUVlNQkJXYlgrYXJxYU5Fc2RyQm5vdkl0c25sTVRDdm9JeEdRYXMzTE5aUGhZbVM3OAotYndobFhuWndqbmlmdlJIVkZNOGM1SnVPbXZZa1BnRTZSWVBhTE13YlprSWh4YmJPeVFpK2drWUpoSmdaTHJqRAotSTlCRFVFWVJlU0NtV0g4aHdDRGU2QkhyVUw0MEMyN3RMMDc1aHo0eDhFQnlTSnJHNHVkWjZSQ3duVWlNNmJRTwotMjZuSjdnR2pzdUJjQ045R1ZjR3NDSitiZmx0T3ZzTFVQalMzWXB1czFSWEtzb2UyUkwyTmJHQVZoM2dMYjRrWQotTG01YWdJMjNnNjZ5STdBbis5WUE0czFMYmdlaUU5TTFwT2daZ0o0TVdTVmpSaklveEM5YVNpTmZ6K2N5YU5DSwotc2Q0bDlDdUgvcFhpZDlhRWx1dlpLRGR1NWZWQzAwWnVNUlV6Y0M4Q3pWSjZ0RHE1YTdBU3F4QzYyNGJKWUYySgotbmYxT1lvNGN0WTNFeFZkQXljMGNvaGxJcmFycU8rY2dkVnhkUTlGT2dLalpDOVoyeHhaaWdldGZRTEZWUk9tMgotWE1yRDM1aUlGRWk3d1lSc1VCQ3l5K0NsU0h0dHkyL3IxN1BlRTRqdkxiTnY1dnZoMUNFZTZHRC9KK3ZkM1dYcAotbWVHUG1Tc1lUVG5sbk0wODYxdEJ0ZmdxQm15S0NlaUtyUGx6cU5Uc2ZwcExvTDRGdFJGOFd2eG1iS3ZhaER3TgotbFFPbk1oTktGNUpveVlSRUdOQXlTbGphV1Fhb2xpRk13TzRaaFVSMU9NcWhDNWpFbXdwMzVkejJuWkNhd2VNbgotdDkraXV4T3lnT0I3azh3OHhSUS9wODcvbFZERFlMUmc1ZHBDcXluMGErVEhPa0NlcEQ3eUZpNCs0Q0c3UWJzbwotRDFLWXZvQmUrUVhoZVcvZXFKUWxHUWF4aFhCNXBPd1hmTmJjWW9CeXVDbHF5UTI0V0xCazZjNlIrM3FCU256QwotdVRhcnA1bmU2dmk4Y0FLM040SG85QU9xZ3FiMU5abVNRYnU3M0luS0tQRGJuMTZwa0ZRbFRhOGcxZjAra3RQZAotdStVNzFzMlZ0SktTR09HREQ4eWF2OUJyU1lOWGNKNFAyVVJPSWRoUXd1RWgvOXA0QWNKV0VsTVZ1ZldEaE9uMAotbTY1dDFRQjNlbWpWd0h6Y0h3ZUF1Slp3QmZhcDlTS2R1VjNEYkZkK0JWTFJPbFdUMEg3LysrcDZGWGNzWmFGSgotNnJRQmxTcVdIQkNIREIxVXVOVExvNlB2OUhmaHhpUzc5MkwyNExScVFrSTIvMXpjZFQ4amxRdDkxcXRJd3YyMwotRjdtR3BCUEdVMDVvS0RWRVBVRlRJOUs3Tk54NUNVVW5RcVZzOGZEay9paFFsVFFkMDNMU0MzVVdPQi9ncGFhOQotL05TdzlxdWdMTkFMNktUUVZCSjNaWWZaYzdWT0pDejZnODJZczl3Um1TM2VKTWFjeWErZGp0dDBqVy9yVmxKcAotL1ZldURHZ3JzV01WeDlTdVhxem9TTWFRYmZYVWtXQ01ObHBiSEpoeHozVVFNS3Z2UXJXTjNPeitObTFhenB0RAotR3EweFErL0wyNUdheDB4OUtzM0hFNlRLRDgxQUtYbW40SE8vZy9rdk1KeExYSnp3eXFFazBLcEZVbEZSWE5RcAotUE5mTnhDejZIeXRkYWdGcC8xSUI5QW1kTFZ6blMwdEQzaEVEaWptMTM3cEhZNFhKd05XTG41L0FsR3pJUmxqbgotNmlOdWJ4TnZKSlhHYXlCcnpRUzdPOStPdld1cWFJWTVWZU8rWnROSVZPM0kyd2ljZTJOb3NIUGorSmR0YWJHNgotejlvajZPZjNCM2NsZ3VkY2JEVko1NDBKb0JaYTNWTUcxcXBzZzVYT3cxSy9QVVVyOStreThlclJ3alVONjZMMAotWVhDZnZpNnU3WTg1Z3dtN0grdzNrOTlRMktXM0oySDlubW5SYkxIekhEQklITnFjSUFtMS9pZFNtNDVoTkJ3WgotUCtOdWFNdUVQQjFCN1NUNjlKWmZlL3B1R1BucXBqMzNjWlllanh3a2RtSzRNbnFDVWZlNzdyYWMvYnhsbHAvawotZUdWWnRsRVZ3ZEE0ZHB4M2pGWmxsMTgzdVp4Ukg4RC9nWkF5N3B4OFg4cHNrcmRFcTE4SkxsY25zZ0RHZi9FQgotUERHalNMc0JYV0ExejNRUzFTcCtlbFZxcXNaajRSYnpkcklLdW5xNjh3RUJjVlNjY05aaFI0ZE1NdjlxTDFGUAotWW5Dc25wT1Y5SnVSdFZpRVdnTjBMWVNKYXF3UGFmNkNRQnlwbW1DMzhTN1lrOWd6alExR2ovb0dQRjg5WUhRWgotRjhtQ0laT1RUN01JdmRQd0RraVlDNnpLdytvSlUwbDZRYzlqY0IvSlh3TmFqYjJaMGpKNkw3R001alNjcCtyVQotdzdDWUlIdEhPUFU3UEYrQXJac0x1U01SR3B0cCt0UHlienZvTWc5enhHL3VCSjFhbDUrT0krNU9rNXhDTkRUKwotRmt1SmJvaWhGSzV5VHBMaHpqdkE3WXNRTUZMeTF6VTQ0OWdSSzVEV3FVcll3K1lLUzI2bWd6ekIzZmtTL3loRAotRzQvWTk2eEluNzY2Mzl1RVBoR3RRaDdPQ2cwZ3U3LyttUDFaYm9lTFkvdkNxTGdWL1J6TEFNcUdINjkzNGF2UgotRVhVdWJhNzVMUXJxd1piUEQ0b0IzMnlUamZhcEtPMHVHQ3VibkRScTYyMDIyMWg0OGRxZWpDcWxqS3U5NUp2aAotVzN1cC9EQUpSV25aOUpmTld1Ylc4aHpWWm9GNkJ5U1RsQUNqWGJVOXJGUEp1QVJjaGNYbU02UktyclNCUFlsbwotdnJGOTdZbTZSR1VvN296VGdSREZUSDBJVXo1YkdqdHlsUjFxdHpwdk5zdkQrMjU0ZFlEZklLU0N5cmdPZG52QgotWkNOTlM2T2x1ZWdRYkZyNkx1MFFkOUYyUEF0S2VyMmRqWERiMVVEaWNlWTJYWG5QZWhBbWxua0kyN2xqaWo1SwotMHZvMWoyMUUwSVNjOFZWZUM1UHdKNjZ5VnFrUXlQRnE2T1RIVUNyT3JuRHZqcURHTXFQaitkd0lZR0pQQkFxUwotakRUcFZsZ0I4T3J2RTd6MjNLT01ydGhkcjd0NHdXZVRpdS85UEV2ZlA1bE9EWVo2ZkxBa28yN081VzFpNmF6KwotMnJQRS9xOUVrMjV6L1VhQnI1eGNVYTlTL0krQjMrZ3ZKcGc4L083MnhIZDFMVjZmUXU3TGJXU1VTbVZ3M05RbwotTU5WUWd5SjRvUnJGQTcwUVNMd3BVSXlEL0xhYzRSTlBJSURublB5NHdaTzc0TmRCa0trcUJDMEJPRzB6QVZOeQotNjUwclNZbjMvUmV4cFRaVjdIZkZ3QlZpTytzNmwzVWdSckUwVUQ2dkszQkFrdlpLTWIxOUkzNERVZllRZEdCNAotWVJ5UXpJc29saG95MjdaeFc2YVNBdlU0VzVpZGpQSkc5YVd1SFBCNHFuaEp5STlZMStEMmV4R1NhL1dJYW5NPQotLS0tLS1FTkQgRU5DUllQVEVEIFBSSVZBVEUgS0VZLS0tLS0KZGlmZiAtLWdpdCBhL3Rlc3RzL2RhdGFfZmlsZXMvcnNhX3BrY3M4X3BiZXMyX3Bia2RmMl80MDk2X2Rlc19zaGEyMjQuZGVyIGIvdGVzdHMvZGF0YV9maWxlcy9yc2FfcGtjczhfcGJlczJfcGJrZGYyXzQwOTZfZGVzX3NoYTIyNC5kZXIKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGVmZDhiNWMuLjAwMDAwMDAKLS0tIGEvdGVzdHMvZGF0YV9maWxlcy9yc2FfcGtjczhfcGJlczJfcGJrZGYyXzQwOTZfZGVzX3NoYTIyNC5kZXIKKysrIC9kZXYvbnVsbApCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS90ZXN0cy9kYXRhX2ZpbGVzL3JzYV9wa2NzOF9wYmVzMl9wYmtkZjJfNDA5Nl9kZXNfc2hhMjI0LnBlbSBiL3Rlc3RzL2RhdGFfZmlsZXMvcnNhX3BrY3M4X3BiZXMyX3Bia2RmMl80MDk2X2Rlc19zaGEyMjQucGVtCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxNmIxM2E0Li4wMDAwMDAwCi0tLSBhL3Rlc3RzL2RhdGFfZmlsZXMvcnNhX3BrY3M4X3BiZXMyX3Bia2RmMl80MDk2X2Rlc19zaGEyMjQucGVtCisrKyAvZGV2L251bGwKQEAgLTEsNTQgKzAsMCBAQAotLS0tLS1CRUdJTiBFTkNSWVBURUQgUFJJVkFURSBLRVktLS0tLQotTUlJSm1UQkxCZ2txaGtpRzl3MEJCUTB3UGpBcEJna3Foa2lHOXcwQkJRd3dIQVFJVkkxeDEwL003K0FDQWdnQQotTUF3R0NDcUdTSWIzRFFJSUJRQXdFUVlGS3c0REFnY0VDUHRkT09VTVd1U2JCSUlKU0Frc0FyRVVrRmtUcGhRVAotMGM4dGMzajQ1dEpLSFhGWGh0dDRWNHBYMjZZZGg0Y2plbkF2ZUt2cmF3S2htcFNXN08wbjZBODFud3dPeFVINQotVmFQRHJBMjBVejYxK1M1QmJDOGJEYTdVNkloQTJnNm5yNXFFUmI5ckNsNGVVdm0zUld5ekVxYkxlaVVFUjFSdwotWHJ4aU12YTd3SVpoWkpOTWRxNUJiOXloSTFYTUxsb3dmMld2TkpHQ2dHQzRhS2JyMWhwM0FxSjNPNzlpUmNrRgotWFAwZnlMdDV1OENTVS8xTldHQVVrUWJucUFYWXBFMGdON3R6RExiQmNBeVJldDduamFwbGowWGFabE9kT29mVAotSlE4ZGI3YmF2U0dlN1BlR2pDMkVaVU5FbGdiSFViYjJQMzFyTk43NllSNkpxTjljdmo4Z0NHVjFERVRqRWJnWQotdGhlVHRwdFQ3L2Y3VVd6UjJ4cnRzMWlpZVlSeTBsdVBvNXhQT2E0VUR2YlljSHRVVmdTa3JibHc0QTBJZDlSMgotOGRSTjhwVy83R1BlYVY2ZXFnVVlWcnF4NzZ6VnU4bDdRdGladUEwNXRIMmVWclRzTWU5RG5zdkZWL2taSVZwYgotOGZua29reHA1T1pPSUlzVXhJUWRBNGZ4SEE1azNEdzYvMGJYVmdZSFhKVHBkSWxBOHlIRmdBa09Ga2hpOVdsMAotK2QwMkNPaEZRVU1COHZxc0hjNjFhRkF2S1RNd01JczgvdWkzNHJUU0JuQkxzbU1RbE54Z056YzE0RHozZkdjagotTFUxbEhvc1grbDlNK3ZFdGlNRCtscDNzemo3YjIrbzFhcGM0MUwzOENXbzhYWFZMeVoybG1RU0hYeitQUldTbAotYWZqUjFjaEJ6bHVsdkVMcUlNWmtqc0JhenY0akhKT0Q3QWx3Y2c5cGIvaTBRcUZUYlp6RHlSbUhXMlZmam43ZgotWnpmWFp2blcwS0xqSDRCdlJpU3BrdW0vOVBiWHhRbnhyeU1DMzZNSG1FRlVTMnZ3aTVVVWpTTTlBazFzZGVVSAotYjNEMDBrY0VSUFJFYjhQcnU5K2FxSzdmQm1WK1FUQWhHNVVxSjFFK1p4MVlacDU3OTFBdDRvQzd1ZFR1ZDdlRQotbi8xektzMUpXaC91OFFaa0x6SEJrQlpESWFSU0NONkUvelNEbXg0Vmp3Q1J2MDhmSksxQ2hrSkpLczZtdENTQQotbVE1bm9jMWtxeThPc2FqNTZGcE94VjZKZ3I2dnBFTzd2WXBCblEwREdVNWxrRTFpajNwdXlhT0RSMENNZ1dYTwotRGRvWVdXMUY1M1Nld3U5TVNwU2YwL0FaWlo0UzJsUUdoc0g3S2Zjby9oWEtWKy85U2ovOE13ODJNRFZvalB2VAotdkNjMjNPUkFyTVJ6V0ZJdGREUjBqa0ZWajNzVjNjc2p2akc3L3V1UnRuYXBIcXFod2lOYmZSWW9XOGNMMHkzTwotTk81MTc5T0U4WG1vMGhIS1lhRHMzTnIrM2RuRndRSjlIRUpuS3JINU1NMkcxcVVGa25CWUZxWUVrbUNYTzg3RwotWnRFSXl3dEZFR0VsR3ltR1dXaGxnNnRKeEVjT2JOOHNOSGYwaHF2N2tIL2pONkp1RUZMUWxmTHoxYjIwWE5rYQotM3J2NVdLajdsTXJwSUk5YWdHTzdWUit6YnBKMlJZdjBhNE4rRDQ2U1pHSW9XS2pyYXZtck16RmhYanU1NEhNUgotT0tyTDA2bmpBb1JFMFRmcHFHenYzSW5QSmc3TDhCYjlGdFhNZGZpY1E4Qk01ZjYyYjd1OHhjY2U3Vkx5aHorNgotMWNib2FUeXdmRDltYkd0ZXlzZG9vb0ZpaFZUaGM0OS9EUFNpMDFqcVo0UEU5Mzd0R0RsdDVHV0ZpSU9hb2JGLwotemZXeEpxM0JXQTFMYVZqNDRyOVA0ak9SY1AwZld2YWJjZ3psRDd2ZXd2U2s3Y3ArZzhmR1lpcE44dDRvcXlucAotREdYWVZDVHpja2xsd05uVmxDUmNPcHdZZ2Rhei8yZEVNcWg0VUg1YlBJODZMdTJKNk1yOWlUdVEzQ0w5NjdMZwotaEVWbWI3SFRPMlRyNW1uQUlrQVV2ZUpiTFhxUEd5bmg2ZDNrMzltNTZoNUR5UEtEUEJpZGprWEZuTGxTSndPNAotUlBvQXlWQjNKT01FSjVBbS9wWGF1ajdOWEVyTlRLUnVXVlFWc3Bzemk2eWNvYWlQR2ZYV1l5cFpYeTlXNmhKOQotTldpZjRTS1RwVlZZQldIMzlZWEJmeUh3blNIZWdnc3ZVcG1WelJsZFh1TFJhZ3M4Mmk0YlZkNkFqWFpSUUxmZwotU3V2SC9SUHNobTFDVXd0K1RBcmw2Rk05TWpkSU9RTS84WVVieWsvQmNac2RNOUNoSGErMXNvTVhBaGp6NTlnZQotVDE5Qnp2WldlREl1dzl1YXRxU0wvUVdBRU5RY0thbG8xekZwaGtGTGtIQ1FudnMzK2N3UExvOEFQOUVTMVc0RwotNEt5aU8rNWUvMDRYcUZET2cyaVJZb2FIRWhNMHpHVEpwVTlUREpRMUFRQW1IajhUSjRlTDZzNU9hU3pXTjNkUAotQzRkNFY5QXkyeTRWRk5hY1Z1T1RBSTk0NSt5aTZHTis2M3NMNEZCNzIzSmtydW1hOXZoT2hxR2h0NVdPbHRYbAoteUJqY01GbXhoc3ZrOXlFcm5QTi9sVUlwdnkvQmxBZlBrVG1TelRjYW0vWmZDT2dJZkZhcmJSNUhhaHluZjZ1NAoteDJFQ1dKdEVMdDVqaHhzMWduZXBaUmg3MVdKYmpvMjVTSk8vUFNJMTN1TWhkMGNCSWxodTBpaVZ0R3p1Y2dlVQotUHpVQzZQTzFnQjJXZ2tGWGFGODM5VE8vZFZwZ2JLMnNCalJVanpxbllzK1lNU1Z3aU5ZOGdjMlZBblhRdStvVgotTmROYVBFRjc5SlRwMTRUcTBybWhjamN6ZFZRN2dDTlVENWc4ZWhvdkFrcDZEa0tDb01tYktnYWdQOU1uS3JoUwotMHRrYVp3cEx4Ullpejd2WkpoWnZ6MWk2NEM3YXV5OTBmSnhWQW1zbDBzQzk3ZFdzYmNMYVFvSUt1d2ZuMGtPOAotcTJSeDR4Uk1peEk1dW9XRFlhbU5MNVJBbzFubXN2Q1FDV08vRTVwS3pFeXlrRlpmUStpWDUvY0ZnalhtTUJjSgotMVBSUnJRY0h2dEFWNTFHaFBYeFBuc2tsdEhEVUVWMXhvdllHSDB5azIwTlpQRUlWTGYyT1ZHcGNRSUNEekx5QgotSXd4dWZlSE1rYWtBY1FPMW5nejZjekJNTVBGaEVxYVRCRGFmeWJ3OTRPYnBWcnBqTzhiRXVqOTZubUZoNWhjMAotby9kbk1zVThxN3N5UklpbmpaVE1jdndZTEUxQzZCU2RZMGo5VHdEZEZ2SDBJaG1QYUtnQ3hnb0t1eWlTMlV0RAotRzhKUFpJOXltT0tNbnphcUxjNUY1NmoyTFNzT0lmMW82c3ZIV0cybkdHQ0xDTWdMYURDbDFya1ZZT2hRNTZCZgotL2EvaVBmemt6MUlZQ082enZxN0FmSW1HSFM3SExDazJJdXNjMk9pY2YzZnBqSjhUdU1Ed2dVYXVHeDlSS04yYgotem5CVVFlSTFkNlBXZmx6L1hsMUw4R1REYy9ZSTM0NGF4WXZpM0Y5SE5EK2djT0VwZmN3OGp4eS95TVlIdjJSVAotUzRiR3lSb2RHclZaRGc3QWpGeXpMdXdhcE0rR1MwOVF4ZHIvNGNkRXpMVCtjdUQrSzlOc09yL1RTdlpEN1lPOAotMDl5VmJYV0JJSE9Yb1ZLUHo4UFNnNmJiK1d6azczYnRhY05SZ2FXbHFhMkVoVDJnNXB3U0FjRHdyVHFOOUdHNwotME1peUVzV2QydUNFVDhMQlhtTFBDNFUwaUhnODVYMGpDL2ZkTTd4cFJBS2F5dWg1b21Zd3l4eHVuWmhBWjE4SAotMW1lSmJhbzhtQ3FEb3BpaDZIWWdEYkgzc1F2azJCVUlyMHdYM01DN0lUTEFpSWl6aUpkdlhXWWFJckRmK3k2MQotZ0NmKzBSRXBBS1YwdWFIMS9Qa09wN3ZtamVPSGRVZFNPT1NINUFreXFCdDRqTkpEd2kyeXRoM1hKb3lIK2IrNgotWEd1enZDRkR1d0laYTlQUHNBWGtnN2xiNytuOUwwTFNkZFVDaFZaUTBOVmlyTlJHVGVrOHA4WThTWVBKWkhrMwotWnVvRy9rWHZhaUNTYVAwY2VnPT0KLS0tLS0tRU5EIEVOQ1JZUFRFRCBQUklWQVRFIEtFWS0tLS0tCmRpZmYgLS1naXQgYS90ZXN0cy9kYXRhX2ZpbGVzL3JzYV9wa2NzOF9wYmVzMl9wYmtkZjJfNDA5Nl9kZXNfc2hhMjU2LmRlciBiL3Rlc3RzL2RhdGFfZmlsZXMvcnNhX3BrY3M4X3BiZXMyX3Bia2RmMl80MDk2X2Rlc19zaGEyNTYuZGVyCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0NjBmZWM4Li4wMDAwMDAwCi0tLSBhL3Rlc3RzL2RhdGFfZmlsZXMvcnNhX3BrY3M4X3BiZXMyX3Bia2RmMl80MDk2X2Rlc19zaGEyNTYuZGVyCisrKyAvZGV2L251bGwKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvdGVzdHMvZGF0YV9maWxlcy9yc2FfcGtjczhfcGJlczJfcGJrZGYyXzQwOTZfZGVzX3NoYTI1Ni5wZW0gYi90ZXN0cy9kYXRhX2ZpbGVzL3JzYV9wa2NzOF9wYmVzMl9wYmtkZjJfNDA5Nl9kZXNfc2hhMjU2LnBlbQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZmNlMGZhNC4uMDAwMDAwMAotLS0gYS90ZXN0cy9kYXRhX2ZpbGVzL3JzYV9wa2NzOF9wYmVzMl9wYmtkZjJfNDA5Nl9kZXNfc2hhMjU2LnBlbQorKysgL2Rldi9udWxsCkBAIC0xLDU0ICswLDAgQEAKLS0tLS0tQkVHSU4gRU5DUllQVEVEIFBSSVZBVEUgS0VZLS0tLS0KLU1JSUptVEJMQmdrcWhraUc5dzBCQlEwd1BqQXBCZ2txaGtpRzl3MEJCUXd3SEFRSWVHSUVlVGVNampVQ0FnZ0EKLU1Bd0dDQ3FHU0liM0RRSUpCUUF3RVFZRkt3NERBZ2NFQ0FWcWJONmJnOVh0QklJSlNNc25yNmJIcHRnQktxWDMKLTRRa25PcHg0SjhaM3lwNVBqRUFnQTJGQWVoWnNwVG1BRUYxdk1ZWnFsZTNWT3pCSDVNcUNrNFVBM0VwNWVLNW0KLWQ4eFlIaXFqQ0NScVZmeTJEVGdpWGdxQWlrbkhGckhOTVcyOXB6TmlHN05QL3JRaG1SMkVPSUg4Mzc2TjBIWTMKLU9nRVc1YkZWd2dra25XemI3TFE0VWhjYmQvZmIyTkM1V0dKcnBWTmIxZlFYamJ2elBhaXJTU3o1NHRPKzBNbVcKLTNzanYrNExSMkNxUXFzdXJjVW1jQzBPUVVMK3NyT0xiYkRWMkVOdVFFSDVNd1Bwb3kreEZjZ01IWDhLeWpZQnEKLVdJb2xMVTlFR3hlUmZOVkJMR0QyYU1NbUtDM285MVM3NXBxei8yVlE2YWdDaHR6QklpaGk0QlYzQ1dlL20wV3oKLTBJa241UGdjR25VT0hxOXhCeVdBK1pBNDA3UnptcGMxeWo4eTk0Vm1GdmVNRmlxRXovMGdDYW9TaDcwQ0Fqc2IKLWxtRmcxMGxPUzJONmpRSHo1UmNaRzVta1piU1c5YVUweDVIa0pXQktxbzN1SjFpRzlQemtKNDZ4cmt5b1c4TUQKLVVHQVVTTkFyYUZyRkpCREhRQ1JzZ0lOTXZ2YlBTOWFUU3pLRE9DK1g2cXRyVGJaUmQ0bWtrUmN4VytzVXRFY20KLU1TNXhLZ1hLNWFGeUpNcWNhUHRIZ0ZxQjZJMW1RenpGK21YcHE1YXRwMW93bi9vUVJTZmFjTEd1WjJ3MjFZNkIKLVdjNC9IdzIySDNRWEJHeFdIUzIvUjlLRkd2b2VrVXdlMDQ3MmpBL2pQS0t4OU41UEthaGl3ck1vRDNVbWRHTmgKLTdncmVVTHZOQWRBUzNKV0JaTWs5ZFJQZ0Q0TlMzYjJtY2JqRFhYL3U2T1ovZGFpODZ4RjF1MWNoYW5GRjIrNkkKLTZKbnR2MWxKZit0YU5IeEtienpYNm4rMElyWWlGdHlRWkZ3TE5lTjlYanJTVWUycjN5ZmtQc2ZGQy9QYW50OUgKLXBiRzh0bnVEZkI0RmZlRHVCZkpycjNKbjYrUzNURzFIOHZJdmtOeHM4UUUvMURQdklibG5OWmllTzY4Rkphc2sKLTdnUWI1d1lNSWNuWXpuVHJtWVNGamoyUHo3OE8rWHdFQTg2djZuOEh1emd3elF4a2JQQXJ5NE9Ea0ljb0Q0QTcKLVpxUENySnFFTmtkT2FtZkhPNGNQd25hWWl1RS8reVN6MkVuQVlyMzQ2MFBMa3RiQnQzeVFONUlDcjJ0SERPcEYKLXVLKzJIUS9uOW53SGhiN3kwSSt5MDJ3ZkU1cEsvK1Fsbm53YTJrNXFlY2psVzJBck03MDFUOTZOQXVnbTMrNUIKLW5teXRYT09FbzVpaGMzbHdQSFFDWTR1MXA0MmtaaFR3aHc2QXZieW0wTVRwTDA4QXNwWVVLOHplc2JodGtTVlAKLWx5UHFXRk85OFRxa3lhSERmcXdiYk5zUHpvZWxmL0FicGw5MFlyK05UWHFwREl0K0RhREVRSVRpY3NIY09UbEgKLWZ5VkczNkZwL0EvQmVQTVlFYUo0Q0g5cmNROFVlVnVQTTlJNFRrTFk4REQvdU5vRDR3enA5S1hVbWJPa2U4MkMKLUpOcEl6V2NnVHpTbW45M1pyRUlQTGNkSEV3ZTRTcVZxdXpYNUpIc3ptOE9zSkt1cGdZRDcyeVdGSm9ZcnhvNDcKLVFRMG0vaGdxZ1hiMU5ZdXJUQW1CTlVzWlNHM0x3WTJwMndoejNKRWRxV01uZlpYM1NRRmR1U1dvdzJGR0VvSmoKLUVIQmtkdVd0MnllbmE2a0txRTZHU3RLdW4zWjQ4QlI0OHRISFpLSGdHOGZLaUJOWmZueVhSWHk1OGQ0Rkp0RjAKLW1xOTA2WHhtcGh4dit4dEFjaHlVYWJnUXhWZGFOT0RNQ2VZMlV0UDk1ZWxOWXo5Sys4SFVsNFRIZHg4ZVdIUm4KLXVtbFhTaUlETkova2VzSHNCaHRIdWovbmsxdnlMelRuTXlHZ1pUb1FYS05Tam5yV0hINGFMV2FnbHZKcnNMaS8KLWh1eno1d1ZCN0loaGMxYUI1MGtLQ0htdGpVaUNBVjVjN010UGlHRlNJLzhaNVQvaTI0OWU2cWZiQm9pWGtiQUgKLXdjNnJ2V0NmNGRCZ1hhT0VJNnlCQS9tYXN6bDZpR2h6OU44L2xJbld2ZlM5TFZvVzZabHdRSFEvbmZjLzA2b3kKLVpLVDBUOHluamZ1T0dPdXVFY0x1d3hIOUZNZHBqQXlVem9hN0VHQWp2VUFOWDZBMk4yUWtPVWkxU21nNHBtN0IKLVpHNnpIRFVEdjJDeTVzRlFtTjhNV3RZNzJ1VG9iYk1LdUNkOXhEWi9GSmpBcVpnMElhTFUreXZTMERMN1JlVWkKLWs4RTAyMExtUjNtOHJnYTAxOGxjR0pNMzh6NjVNN0hOMGRya2MzbHp1WTR5SEgrdEpUTlEySnFmcmVUN3dWYkgKLXBRL3hxemtaOWhPNXU2K0tGUURqMWV0cTMyWFRzTGlGcEpCbWJsOTFnVW00RFZSVE40TTE4VTlMTlQ2NHByYzEKLTlRWXFDeGxEcTlyd2dXcWxhS25uSjhpUElDbVdrd0xJNkNBa3Fpc1h2T2lXNzdCVUdvRThwanpONGQ1OVM5NmgKLXZ6L05jZ2YyQUEvRWtIMHFiTW14TG1zNXEzdllmakJOamJ2aHdqN3NkTkJJV25NdWtNS3MycHFhbURMNjREa0gKLTV1c2ptMFlHY0xrUEU3SXlFcHh2OGhxVXQxWWNJbEd1Sy9SaU9EVFBZUG9HbXUvUWFnL0NTamQvUUp2NHlET1QKLWZ5SlRsZm1uOXMxanNWZXJEYXpLdC9JY1BuSU9raHl2bXVjU3puUEJnbzR1SlJqbDBlN0Q3NWl0NlZwMGtpMksKLWFIQlkwTzVMU0l6M0lsTm82NG80UTlCZSs4NDhTRzVzM0NUZWtYZVBsZjNacUZjY296bVU1a2ltdjZGRkwvNXkKLUdEcHB2ZUwxT2UrSlJDZ1ppQlhDR000dnpJNlJXK1dHVWVITlk3OHZXOXA0V3pNaDBjL3ZZTDQ0NWpCTjZ1dGsKLXhnOGp0WTNZaFdKNHhDblhEN0dmSVhHQnpDWUgvREhidGI1VnJvNTY2OE5Wam9TZ0NtZjFERzF6UklMWXRlWXgKLWZMOG8zQ3lacmlkZkxDbDBiUUc4a0FYa3Fpa0d6RnNuTkUwVU52R0kzdXhGOGtWMlBWM0xFTTNJSHFVY0IzbXQKLUpNNi9Jb0xNaWdJZWM1UUhHd2lncnJRdTJmUVUwRVNyVmJJbXVsd1JkTjhDNjVoTkpYUmFzUlNSb1FYb2dTc0EKLTVGSm1wMG0zTEQ3dHhPWnVHRXBJN25WL0pNWllzR1M2M0Fzdy81RE9XYlNUd29KYUJYOG82VTc3c0RTZEdhNFEKLXByeUNsZEpSZDg5NTFKRGQ0WUQvbWZlenVQRDVackwwOTJMangzZWk5U29DTGlCVUhoSS9UN01ZQU1PcnpRT1kKLVgzd2hGSGlacExrYUJlRjJaT0pMNk1UUzRlUzd0ekRVaUw3RHZjU1BuRlgxWC9FaTJHQy9SbWJVWmlyS0NZREYKLUd4d2luQVdNWUF5aUlmajJCZUdFM3VpR1huVUZUdGR6S3pQYUJNdkEwUmxlYnVXV0Z6N29oeXovR0pHbnpBd3AKLXJOK3VleVVJQWE1azVNTVp1M0ZMZGtkSXdIQkpWUnFteVJueDAzU1VGUlhhd3lHTzVodjRYcjlYdnpDS2NRNkEKLVFRRmpsbjZPaDJiN0tPS3lVc2VGbEVhNDVEb3B4NDZTVldrWU16enVHOER1NTN6N3JuZXB6ZXBPSzk5L1FVQ3YKLUhUU0o3Sjh5U0Nuc3RCUHA4Q2dobDdCa2dzU3RWWkVxOWJ5ZERId2V6aHk1WHVBd01nTFdhVmcwcVlBcEZUWW8KLVI1Zk1oNlhHUjgzYUR2b0dUT1hCYndDVFAxSTRWWDlDMEU2aEtqd0N1cWJSQ2RiMmZOWmJIV2I5cWhiTHhnMzAKLTluZTRwOXYrWDAzVWFjS3hYUmoxdmNaUEs1dThaeTk5YlI4aGY4NWlYUUVKSlJCZWQwN0ZiaVlFTzBMRmxhQ0YKLUQwc3Q3MnUzci9WNmNyOHRqNG5MMCtWZGkvUkVuY2gwZENiMzAxMTNLdkxqVTZqQU8vclU4bWFUWVowSllEbGsKLUNGT0Ezemx3QTd0eW83K3FUZz09Ci0tLS0tLUVORCBFTkNSWVBURUQgUFJJVkFURSBLRVktLS0tLQpkaWZmIC0tZ2l0IGEvdGVzdHMvZGF0YV9maWxlcy9yc2FfcGtjczhfcGJlczJfcGJrZGYyXzQwOTZfZGVzX3NoYTM4NC5kZXIgYi90ZXN0cy9kYXRhX2ZpbGVzL3JzYV9wa2NzOF9wYmVzMl9wYmtkZjJfNDA5Nl9kZXNfc2hhMzg0LmRlcgpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYzc4ZmYyZS4uMDAwMDAwMAotLS0gYS90ZXN0cy9kYXRhX2ZpbGVzL3JzYV9wa2NzOF9wYmVzMl9wYmtkZjJfNDA5Nl9kZXNfc2hhMzg0LmRlcgorKysgL2Rldi9udWxsCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3Rlc3RzL2RhdGFfZmlsZXMvcnNhX3BrY3M4X3BiZXMyX3Bia2RmMl80MDk2X2Rlc19zaGEzODQucGVtIGIvdGVzdHMvZGF0YV9maWxlcy9yc2FfcGtjczhfcGJlczJfcGJrZGYyXzQwOTZfZGVzX3NoYTM4NC5wZW0KZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDUzMjUxZTQuLjAwMDAwMDAKLS0tIGEvdGVzdHMvZGF0YV9maWxlcy9yc2FfcGtjczhfcGJlczJfcGJrZGYyXzQwOTZfZGVzX3NoYTM4NC5wZW0KKysrIC9kZXYvbnVsbApAQCAtMSw1NCArMCwwIEBACi0tLS0tLUJFR0lOIEVOQ1JZUFRFRCBQUklWQVRFIEtFWS0tLS0tCi1NSUlKbVRCTEJna3Foa2lHOXcwQkJRMHdQakFwQmdrcWhraUc5dzBCQlF3d0hBUUkvNDR4cXFTdGlWVUNBZ2dBCi1NQXdHQ0NxR1NJYjNEUUlLQlFBd0VRWUZLdzREQWdjRUNJU0tNRlZ6ai9nSkJJSUpTRGw4bXBaejJxd0kyL2JBCi1HK2k4RWVtNTBHN0VkUU5Mc0lrQ0c4UWd1L0lwbFZ4N015R0xkM0ZVbVBwU1ZuRXN4dmZrM3JSSmI4TkRubTltCi1ZY0pSeTA5SDNDRnYrcS9ucXlyWFIyMGpWRk5Wc2hobzYrS3k2QTV4K2pTcmx6bGdZN0lIRlhjUlNmYU5YM29MCi12ZytUcEpmRzVMczlvRHdFekcwQzVGWmxibHJTWFZMOGRLRUt3Rjc0Y3JZQ204emhxVUpHdWFac1NrcHE3TGlMCi05d3B2UGtBNFZtSS9xcXFlSU53eWhIUDlEWUdVRUdDQWllTDZRYmszaHpIbnZaeWJuaG15TGpuSmR5V05nMmFGCi1FMWtnQm82ZVBqN0xlTXZGSTdVYUpZK2xxVmtPQTJ2bHFtVTZMYThJUDBPYUZRSGhZd0xiZ0VKRTBqUGloTW5ECi03YnlzUXZjb1FyUGM1dmFqNVJGdUFjc2p2eDd1Q0Z5Rms1YWZhTXlXQXhVenhwZnpsN3RUSXVGa2ptVHo3NFMrCi1uRlRoektDRW95eEdZT0FQMjVuWVNMaEttV0NtUU1za2hhY3ZZYzdNQ3VVa1p2ajV4VENWRHAxaTZ5TjlUY3lOCi1TRHE3RWhIaXIrRGJGQll0ZDZQN3BMMG96MGFNRUpvTk1wazJQRlFUci9kN2lpZDA2R3dXY2NzanVoZGZLS2FSCi1Ea2gzaGxkeitTSFo3ZUx2cnA1c0tGOXYzaFBoWDhxQWZLbis3MnJpMkpOQnRpSnZjbjB6a0hLKzRXUHY3Z2l5Ci1aVG9oQUJHczVKdStDMnRNQzRRQ1d1SHg0b25LSG9xQU02b2tWT1FtZE9XVk9HbEMxbjlNeWtHVTJ2SXlZY1h0Ci1paDlhYlJzWW0zOVhSb2NTcW9zcVUxVmgwV3h0MmNQY3dxUTNZbTBSZXZWK0xpckxwVnJTNzRmc2tIMDVmOGtPCi02bWh2OXliQlBOQ1hiYk1sTzVIZTZ2N2NrK1JBTE96cFIxaGt3ZG4rMksxdlpHN2dGN1BVckY3WkYwT3pERGFNCi0waUI1a1JSci9nZHlGUDJjVndFVWw4MEtIcVVUVHNjU1MxWmtBU0lNWDlaM3NwRmRESHhGbzdqNlFGbCtuVzl0Ci1JWW95Skk5UW1jSXhncEw5ODRoVEtFZXhvSmRRZm1pMUNLa05vSlRtazd5cGdBS3FpVGM3bzdpT3RYano4bHlmCi1TRlZSSlFkZkRicWxhSHFPenhXN1hrY0Q4cVRUemdTTWNuSkVNNitGYkpnOVdWT1U4eURjMktOS3Yxa21iUDl1Ci1hMTJBekZEUlRDQStEOStnMFVVZFRaaGpjVkVVTExwYTBXc2hvaTJOZGNuQjJUbi9GaFNKWmN0ZmxxcjF1M1RICi1ucDg1TnhheU5SaXNFaC9nQ1ZrSGx2OWxtSDJ4akxHRXovQWxSVDBmNjgycWd0OVNQMW56Y1RJeFkvaTFUOE9oCi1CbWlZL2xzRUtVU0tPaHNCTy90bTJWUE9FOWRVT1NBVGxOenhSaEl0cVRBbDN4YlJHYnQ4cmRRNG5RRTZNQWQ4Ci1vZndQVGpSaGVKbUJGZmgzdlpWUHBLeGdTY3BRK09tSjdKeDhNY2dNQ013djRXait0aElQRkdXcXJTK204SHNKCi1JeHZQRitRdUo0RUNxSVNDemV0VUpLSTBNa25XeGxXc0U3dGdaU2pMeVFiTUxhaUtMb2NCd0daVWxPT09wK2xSCi03R1k1Nm9BYkFOcVhoamJBK0FvQkZxZTVHcml6Q3ZqRVZZS2c1Umo5T2VISEVJeExLN3ZQZU5ENnR2U2ZtSytDCi1sWjd4djVabzIwSVQ4N2tnOW9xaGU5Y0xvTk9rK05lV2QzOXhNS1VDQm94WUsxODB5bFg0eVBXSkduL0FJSXhaCi04d05DWWh0VE8xWll3eDJwZjJLV204U2x2QzBCdHZJVTd1bXd5Qi9NN00yaC9YQmdPOW5ocms1dVZLZnNTc1NrCi1CckpWZUtBMXJudzhZTnBQeTZuY1Z3UkpEVkpEeHhmY3R4WmRwOXRrWmk1aDNNWldnQmVRZllobEpNVFdRcDZOCi01Y2ZkaHdwckd3eWpsUVUrTkdFMXdCdm5vNGMvd3ExMS9qY0lFaXplcEptbytKMzV1b05UWVh1QS95dm1HN092Ci1OKzhRdnY3cWY1Mm1DTjd3Zk9ONDliRWNNcEFnOC9IRjJGL29qVCtQUlVlMGVzY1d4dkFTS1JTUTRmVE1naVBWCi1BSWhSMU4wWnYrNDM0UzNVZGFZeDBSUWpqdWFaQWlsK1VjZFYzUlZpSUxmdnNaTnpjMlNuVVEzV0pzV2N0cnZPCi10cjBxMEVPQ0czeGJCTFFzMktXbkR1MWJIRGhHemszRDNGRGs0RVhRdHZaRS91QjJZMEFveHd0bVBXbmtTbVNSCi1JRFZaSWIxZ04vNVJJeDdFN08yUVk4dlByazFtT3c1M1FHSVdVOFh0aFNPbFg1ZmRoV0lEd1NWSG5LOVJlQ3dwCi1nT0U5QXZPMlJ0R0NITnplamhSWUVBa3dmK0FibVFld0FkK0hwS2N1K3BldjdrYUhwRkJRa0M1WVpXMTczT1dGCi1Dd0o0aUFralpwcitGTWdjRzNKNXp0eGdZS3V6OGZSYTU4UlpBZGNHdEZkNUxMV0cyS0wzZGpZSDE0Nno0b2ZrCi1tN05XckZXR2xoWGNRbjYveWx2N0dZeUNaTU4rVVRjd1NQNExhaWhYSzlQbGZvc0tFaHBSNytGb1NCcXVQb29rCi1Ecjl0ZlVsS0lXRlVydTRtSlR2R0dFSEc4S2M2ZXkxeXlISkdOY1dRcjIwZUFMcXJLN2JDeW8zVTdSMnpOUTNWCi1OdHJLRDdLMWpFWmZ2OGE3RytYaGdJUFRwRnlkVWhJZk1oSUR2bzk1a0E5b1JBaVBxZTk0WWNkYjdSVm1VdHY1Ci14Y2VLbSt3T3B3R2NudEtpVlNXV2Vqa203ZncybGs5Q0hjaTVzMGdmYWNadkFoa1dHQ3VUNzMvSzJyZW84d1E1Ci16SHRFZVMwWkVqemp6RHVrUyt3SWhaMXVubEhLNlpZU3N3ZU5ka3k5ZnJMSFRzNmdMenU2QWM1WXFLcXFJbU9JCi1WZVI3b0tyaG9wVEx4THdXa2JBWk5hdTNoM0xvV3dQYXRnd21QWDRPQkFnZTl4R2VvNUJBbTIzRFFHTHRva1lqCi1oSVNBb1l6YzZxaHIwU2NIRk9CeEVnM0VvSEZWVU5WWUxwQUFJSFZEVm5aWXhlaWVrQlNPb0lMTTlDSzhKeHdTCi1Cc1NYalpJSnFnK0tnMkhYdkRld0lYQTdPckR4WEJoeFBTc0Y3b1RZOFpsdXRDWlFJOEJVUnB4VGFRUDRncXhICi1ja3czN003aHNFQk5vck5mTDYxejZEaHlXazZSMUF2US82alViRm8zdE5QUmV4endabFlTeWwwSWdBd0JnbVcrCi0vSmNKZ2JPSVhXUEY1cjZSMjU0Q1ozdVg2eGkrMlV3UHRZc1BSTEt3UXNDTHdLN0d2Y3E1ZFlrRkoxT2VsZXRUCi03dGxxU09JVzNVYWttdmlNOXU5dU02RFcxWlJDV3pBbU5jaTRZclFHSU1tbUVCYmFxZTNkd2hjT21IYVV0TUt1Ci1kT1VWK2xCZXplR3N4NHlWeEVKa2Zsa2NnMFNYU2gyeGxLTTRneHVmOEVpVGVUcTlCSTZaT3RTVy9uVXpZbWlNCi1ZcWM5QkVsQnJXTi94Unh4UGduRTNvRTBLc0VJSzdFL2dvNWVhb2J3WVRaVjVLK1RvdDBmVm1SNldIUHdSLzRaCi1SSlRIWEpsSjBSeGFjSEZMV0t6KzYvTVdwNExQbndkLzBHVVlNQ2kyRlVwdGpWZEVHYTRtQ0Zmc08yU0hwSFdyCi1wOVc2L3dkeTJGWGN2U0pHb3U4N3owVi91WUd4Vmg3WkRiNzQzcCsvZjZVbXpKTFVGK0xyWmJwZEpacnhWTkVFCi1EaTJFeXBrUEZKaXFla0RiUWFCdityRnVSb0ZBbmlFMTdMSzFrdVdQdGhuS0hqYWpRSmJkTXVzWEo5RldHam4vCi0rWW9WZnJ3NDlXQWMzZTF3MEZlSG81TktTRW5CNWMzSkZxdVNVRkY4QXhKbi8rRURpYmhwcnI1dmlxODlRNE9ICi1JNHpjMVBKMWEvMWI1aWhTQmhnQ2lob3dJeXAxamVRTENZeEh0dXI2ek15citrc3VZbndsQ0FBY3RtSkYxTmo5Ci1pWWFzQUNBZlkrYjc2SEM1YXc9PQotLS0tLS1FTkQgRU5DUllQVEVEIFBSSVZBVEUgS0VZLS0tLS0KZGlmZiAtLWdpdCBhL3Rlc3RzL2RhdGFfZmlsZXMvcnNhX3BrY3M4X3BiZXMyX3Bia2RmMl80MDk2X2Rlc19zaGE1MTIuZGVyIGIvdGVzdHMvZGF0YV9maWxlcy9yc2FfcGtjczhfcGJlczJfcGJrZGYyXzQwOTZfZGVzX3NoYTUxMi5kZXIKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDRkMzhhMGYuLjAwMDAwMDAKLS0tIGEvdGVzdHMvZGF0YV9maWxlcy9yc2FfcGtjczhfcGJlczJfcGJrZGYyXzQwOTZfZGVzX3NoYTUxMi5kZXIKKysrIC9kZXYvbnVsbApCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS90ZXN0cy9kYXRhX2ZpbGVzL3JzYV9wa2NzOF9wYmVzMl9wYmtkZjJfNDA5Nl9kZXNfc2hhNTEyLnBlbSBiL3Rlc3RzL2RhdGFfZmlsZXMvcnNhX3BrY3M4X3BiZXMyX3Bia2RmMl80MDk2X2Rlc19zaGE1MTIucGVtCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxMTUwNGE2Li4wMDAwMDAwCi0tLSBhL3Rlc3RzL2RhdGFfZmlsZXMvcnNhX3BrY3M4X3BiZXMyX3Bia2RmMl80MDk2X2Rlc19zaGE1MTIucGVtCisrKyAvZGV2L251bGwKQEAgLTEsNTQgKzAsMCBAQAotLS0tLS1CRUdJTiBFTkNSWVBURUQgUFJJVkFURSBLRVktLS0tLQotTUlJSm1UQkxCZ2txaGtpRzl3MEJCUTB3UGpBcEJna3Foa2lHOXcwQkJRd3dIQVFJR09uVkxLdktnSEFDQWdnQQotTUF3R0NDcUdTSWIzRFFJTEJRQXdFUVlGS3c0REFnY0VDSUdHMjgvVEpSYUdCSUlKU0ZoNlpKTjh4SmFIMzBrMQotckgrTDFEeVRINENFTHNSZDE2NFJvcWZVcThycDYrWGNORy9TNDFQZEkzZWZLMjhpeUx4ODVBY3FGQXJxSEhVTQotN3lHQTZ2bXVTVnozOVpYZHUxQ1ZNaTdPUTRkVGRnM0tCWGF6OTZjbnlaMUVzb3J1aWJRRG42bVFxMUQwTEcxdQotNXBoVkxzbmZRTERpT0ZVRm02WDRxOUZkSmo2TlVKZE9ZNVhSSlpFdTZxM3dFbVZYRGZMN3pZWEpsMmdadWlHTwotZURwL2QwSVZjWUZkMW9kMFY4cUk5MG5XUENlWnppTWNuUjh3QWxvVjJwOHhpcUh1VmhWLzQrSTUzRU5xYnF4bwotdiswYU9iTzNKc2F4TFZNTDZKR2hhYmQyazF2M1FBWkxhd01WR0JOYS83SUVPQlZlRDRqNlZTaVpQZEtONDczaQotb1h4UnN5YTZIcUNENGt4K3pib2ZiTDRkRVpsaUxEbUlTb0hSbDlpcFFmcjErWS8vSlloRWY2Z0x6bWRGcVAzcQotTjkyK3JWd2RSV2ZtVmRJc2dkTGlpbkpXTzF4WjFkVW5XdkdPWVpOanVyR1ZIcXYySXJEQmQ4RkRqbC95TVU2egotb3NuT3luWHNwb1NBNTNrUTQ2WnZBcmxuOFFHeld0MWJENDY2bnU4NmRYT2tyZmJBbVM1OVZhTlk0WTFEMDMzbAotcCtkOTRlRWpSd0ZVc1FiUld2OG12YitLUG4rblljV1pGTkNnMlJoVFVLblUwT2QxU0hZNWY5amZHRlV5b2JZcAotL3RnNmVpem83VCtyVTlQWm9Ua0duQ2YxcU93TlBwYlNoNUZjTFZhamVEaVlva295YzE3VlFKY2MxeHpLZUlPcwotdGNVN2tLL2pBMUdvZkNWaEgzUzFPUFlxZGpHdnZvVFZBWXlYSDNTdUgwNGE4VUp2RnNSbDhYZFROWU95ZWNxaQotdEgxN1BBRERhMlVUdktFMmRMaHh4VlVvTzlkWlZlRW9yTmlGV0NRL3JzbDVNMWVUOUtYaDJsdlpSTStZeG8zKwotTlBQMS9DR2E1c0RZeDlhWlFQb0pjNmFUSmljbXF4L3NyUnRNUi9SdXdCVVVILzFBRU5IZE5MQkwySVBmWWpzTAoteEtVL294NjJjczJzQ0l5d2tCa1I5V0hQVHFhVTdIVTZybEQ4cGhpbmZsakE1ck1qM1AzenJOazhYcWZITlRwVgotQlZBMkVjemYxSE5penZMeEUzK3ZwL2VHWUNlY3VMZm5xd1JqNXpBamlZUGN5OHMxdkVURGtYU1dkYzl2UWYyYwotemt5N3RkQU1TMldMRkl1bEJJcVlGRGhpY2RscDlMVGFlVU9pd05JYlBMVk16S3k4enpXM1VoTVh5Vmk5RUJDdAotSURoa1VUZGFMbWlIQjBGMTROSVNSSzYvaXNhNFZmZSsvWjlNTC96OWlGbThlQzZMTXkrL1lnV1pEMHZZSXdvdwotSktIdUV1dVV1RFI3Z2tIZ1ovY3ZqTXN5T0kyNnVpVy9XOHFmQWs3T1IvcWxaWE1nV0NRVGdWQkVjZ21aaW84VQotQmNWRFJQS0ZxTENLT0lOUTRwb3h0NDVFeit4UmxZZHdFeFBuU1JEN1pNRlBZY1VsbE8rUzcySllHc1lkR3M2MAotaTUyOUhnWEtwL2JTKzFKS0svenhRbWpBcFo1a1dHbWM3a0FVVTc2enByZDdOS21kcFd2MW5iREpCdE5VMWJtVwotbnpFL0dYeU5NWVZHdXhHbnUvOXNjS1NSQVRMenZMWHR2aVJLb1pWRm0rNm03Z1I4SjRHVlN1OFR4YVhsWXhnOQotTlIrVXVqUUplb0NoUjJkSHZBWlhjNWczajlyalFYWllsTW02TTVycTBDYk1sZmVBRlN3eUczR202RC9jUnhKZwotTUhQYVU3SHBlWkw1cjdySndOZlV0L2MvY3VRNUM4Q2FkZ1RnRGQxTlc1MHVFVW9KaDNRR0UySzNKcSswd0c5aAotc2s3MmxuVnpIMGJuTWJKRFhFVjFidHJzMnFublNvdHM3NCs4RjI0Z1FiOVBSUWxpdWs1MExHTmRkZ3JHb1NnQgotYjllYUJsN2NnY3k3VDFYVXY0SSthRVcrc2ZhOGJHQmZmSUYybmszb0Nya1c5U2JkZWg4cVNFOXV0aGV3cEd2SwotV3hCaENuNnpVcnlIbXQ1cHBpQzZKckhKcmlkQ1N1NFJOYllMMnVtQU00RE5oNGxFNXJCdkZyQ0hhcWV0N2hkeQotd2hlUUdSUW5Sek5ydTVhbEN4Zk5XWFh1T3A5bmFGbUY1UkZEV3ZTWHVrbjhxZnh6UmNqTWh2TlMrejIxTzluSwotTFBSYVg5QUlDTEdDKzFDKytLYTRwalZKVlQvV2hFbFhWYXAzMTNPai9SYzZLdlJDZEdwcU1MVnhQSXJQRnZiagotdnpORmEvWUVVM1JLL3dqTzYva1FQdGxjZndNelpGa0RITVdpWU1DVW9pNkRwdnplL21LU1RBOUc5bG1jKy9CRgotc2dxTFpNN3lsdFRtaUdLUVVEU2xVT3MwOFptUHcxK0hTT3UyRFpLV1ErMlhvSFNNaWg1ZXp1N0daMHh2VXQ0VAotQkhWOTVzUkRDQXZVeXdHVElQaHg1eGErZ0lDVmVMOTdET1VDUytZK1dKWW1lU2xaNXIrZHlnMlY3K0NYK3FqcgotRU5NcG91VjhiSU1wTjA1cVhlejhNdU80dkpkRERzanF4cSt5NWt3Ti91Z2IrRE9xNW9rZVJJYVdSUFdkeWNlVAotTkNheWlFKzVubmZkUE1RQUFKcVovTEdTeDA5ZnlhbUpxaGNHM1JKb3NGZnJWUGpqN2FBU1VXaTFCRmp4SWUxTAotM2ZGU1U5VURoOWhmSmN6WngraE5LYjU2dmhnck8rRGFJYkRNTk1RcWg2QzJ6ZENpckJUNk0xTlhoV3ZIS2pragotL01OeUxCd25DV1RVWjdndWZuLzBNQXIxRGFlb0U2VHpjd0RDcFc2bnRYRjl0RzdMNERWYkE4Q3F5K00wSG5RTAotUGkyQkNoNEtyUmlWMUc0Tjh4RERDUXc2SWtmS1JHR082d0NKMUhUbkEyeG1LcUN6RTJVbDhTLzMrYUVFcFJOVAotM0ZyY3JFaStuekFrekJCa1BjSGF4YXl4M21SMDBXdi9td2NJN1NvWUtLZnVpZEVTUXkrVkJBSHFla1RtU0VMdwotWVJUZHJYVEtOV1lseW1zN3BLTU9nZHFaQWhGVk9ZeEtCVmFpdVVlT0d0dkNOWjJxZjdUT0cvcFQzbnFUQWJBZwotVWVQN2t2ZjJCYVlsS29Gb2czdXZSeXBjV0xvbVFxWTZod3ZXVzdJd3F1SHd4ZUZkQ0hIZU5ycjlDb0JyRjJsegotWjE2Mi9pblRSelNiVWhqdW1oTEdFaUpTelp5ckVFcmpCakY1akUwN1Rpb0VnbW5YeUNGV29jNG5CbloyK0tYYgotSjcvUVdNc0NKd2IvQ3N2UXhlZ2Q4WDZTd0xEZkgvMjhweStVQXFTVGkvSEEyR1kvNjhRM1BRMTdWN2Z5ZzVsMAotaDZGU2hoWU9LbUZvclVOd3FuMlR3R1BIKzBzd3RPVTJmS0ZxME5NSFBTdnRhNlUwd3BhUlpNQ29qdzhBVjN5KwotbFVkS2VzejJzaWlveGZlSXhoRDFSbTFLWjVwMU4vRmd5QUV1NndwV2o4b2tRanhSaUdlK0dRTGhlUXBzTC9aVwotSHNsalNxNzNvOXYvRjd4TkU5eHFJeEVHblVEWUlBUUNYNDdDaVFPVFRSOUx6Nk4vdDM2RWV3MStLamlJNFhkYQotVkN1MjA3aXBGUVBwTmt2YzEzejJOV0MvNE5lUlFnODJMQ1llcDR5K1pibGN5cUxxdk13T2hKcm8yS3hvZTFlMQotcnYxTXd6ZDBTaFVvc2IvMkNDaENSZGlyTEpGWGFYem0rUHpCWm9DeUpFV2NTeGk1NkJ5NThqaDZIK1hlVXhDagotMGZsN2VYTEhiNHN2OGtmN1AwS0pHQ3hOWTdpazNUTEpqbmNzQTlnTG1GQWVSY1lXS3E1U3VTRVczRG1mRFNYWgotQ0MxcFNzdkZCdlY2MFpGbTJyOTZ4cUZIS0ZIT2IxNXFtOURCWHBocjg3MG5aUUI3K1FnUndwK2pkK3hkWFVEUwotUGVsVkdhdTV1b1JOMnRGUE52b2VHeXd3OWxrdU5BSldLNFUrTGRMd0hzUU9VSUtUZjFyZ3d6NUMwNzdvbU9oNAotM3UrM3pNVENNUkROaGlKYjNnPT0KLS0tLS0tRU5EIEVOQ1JZUFRFRCBQUklWQVRFIEtFWS0tLS0tCmRpZmYgLS1naXQgYS90ZXN0cy9kYXRhX2ZpbGVzL3JzYV9zaW5nbGVfc2FuX3VyaS5jcnQuZGVyIGIvdGVzdHMvZGF0YV9maWxlcy9yc2Ffc2luZ2xlX3Nhbl91cmkuY3J0LmRlcgpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMjIzMDhjNi4uMDAwMDAwMAotLS0gYS90ZXN0cy9kYXRhX2ZpbGVzL3JzYV9zaW5nbGVfc2FuX3VyaS5jcnQuZGVyCisrKyAvZGV2L251bGwKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvdGVzdHMvZGF0YV9maWxlcy9yc2Ffc2luZ2xlX3Nhbl91cmkua2V5IGIvdGVzdHMvZGF0YV9maWxlcy9yc2Ffc2luZ2xlX3Nhbl91cmkua2V5CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiYjZjMGNhLi4wMDAwMDAwCi0tLSBhL3Rlc3RzL2RhdGFfZmlsZXMvcnNhX3NpbmdsZV9zYW5fdXJpLmtleQorKysgL2Rldi9udWxsCkBAIC0xLDI4ICswLDAgQEAKLS0tLS0tQkVHSU4gUFJJVkFURSBLRVktLS0tLQotTUlJRXZRSUJBREFOQmdrcWhraUc5dzBCQVFFRkFBU0NCS2N3Z2dTakFnRUFBb0lCQVFDbmcwNnpkbGtoWWlCSwotNDNIK2NLK3ZrSFl2dlJBMlJ0V2JMTXcrOXJWOUlyZEdRK2lRUS9YMVNaZkRsMmhXVWlLVHBhYmN1R1l6WTM4SAotbFhXNFVYd1RCMzZLRWU3RzN5Ri9mYnZZek5zZFVDQVZPek5zLzBFTXZYSmVEL0RtNUNCTUVzRzZWMG92SG1rYwotYzgwZlFZUWlTeGdqcFd5UnBLZFArei8yaW1HcGg5b251dTdFV09wQVhHQXJvemxMTDVPaXhRMmRtdXRzYzVhcAotaGZnd3E2emEwMHVLc0ZpZm9sUnRBaGlIODZOMHZqaUFKa3paUjgzdUJsSTI4NXNqNStFelJydGpWditrZ3NMVwotZ0xEbGozYmdzdUtRRGZ4V2hlK21weTJQSUo0MWtxa3RDejFxZXczd3lISTJ5c0UrNmh0SFlRTU5iQ3RrUk1kWAotLzR0MXl4OTVBZ01CQUFFQ2dnRUFJSWhuNklLN25MZ3AvV0ZlNmtPSVcxaDdHNXBrWTZZdUpnejFQZVU4S2lscgotM3NHaGtTTWh5Wm1aVitzMzRFdmpXemw0eHJVcFpDR1dzaXBjeW9kSXlZbFRFZzJaaWhZYnMxNy85SU1VcXdTOAotdG1MaEFmSXcrQUJ6RGNHYXo3ek9hUGZibUEwTDQwck1yekh1VEh1MDVkUWZ4QXlFb1dTUStmK1oxSS9ibDhqeQotR2RYUVZ0cVp6cUpjV1hiWHQrMytCNGYyL2Q3SzV4emI3bHYvOHpoQWYvem9HOXNyTUJ5UGE2L0RvNXJWYXM1UQotTm16SlB3WG5neEU1ZEpjSHNXVTRGa0hiU2JKajBraFc4NThNSjRvNURkdzVaT1BpbXFsY21wQ2xiMDF3Q2RYZgotMTNvMm96S0dFL3hxM0luVTdNQTRhZDB0TE1kRU04Ujd5aFVaOVhlL2dRS0JnUURZWHQ0QmhpYW1uU2wxdEhSOAotTWlpeXprY1p1VkgwNC9BNkZzblVoY2JRRjlpQ3FPOXN6dzUwazB6N0RWSUdTOWRTWTlrbU1kRWNwc1g2bTJYQwotWGZFc3hIQm0wd21KcUxVR3EzVXpNNm9Ec3laRzFma1RnK2VNemJWTzBzdjR4ZGhKTFBwbXNjazV5Sjh0MFR4QgotOGdJUzl5TkV3Nyt3NnJaaGdTUnNNVCtXaFFLQmdRREdNWjBxSWRGaTFBZTd1ZVRjQkNlK2NqZ21URzluWHE2KwotcVJva1U2M3JQUDl5OFhUVkQ2aFJtdmlNUmw0c2t0MEYzOXlHSjdqYW5JUW5PQnJmMkRWRVg0TWNmMHNZNHZESgotbXNEVjVqa2J6Z2JBRWFzMGVqTzRoK2RwUnFhNG1VaVUxSlIvUGIxalpITk9nN1pmVHc0NVdQcUJHc0xURXBBdAotT3NLVlVnYlpaUUtCZ0NJZSs4V2p3UzZmTkMyU3NwZnZWUW0xaS9MYmpiZ2Z4Zjl6SG9yOE9ia1JPWnlKUlpDVQotS29ScHdrY0k5N2wwZGxWUTE2cTFTblBKUFFsalBpM2pvS2ZkcHBnZ2lhMkN4R0Z6NG55YmxpRVZQR0VKVjBragota1AxY1owNHg0ZWF1VkloZHBuTlJjQmxEc1E2Sm80WUd3eHI0akVCSTJrN3RCS3Zsc0xlN0lIcjlBb0dBZUptaQotSUF3YUJJQXZBSDE2bEtMMnFEMktpMHVCa3E0YnVTcmZISEhLNTlUalFFZExKNGJ5amsyMXBtMy9TakpIeWhaUgotYzFUaWVDdzdnajN5cEhsRTJJa2lHQW9oWVZCZTR0NkhMdUY3cUw2eWZ0ZUJqVm82OUxQR0RkcVBBczlMU2owYwotNjF4ZlRRYkgzMlBvYXBDSmdEM3ptUEgyMFVkL2NmWktoMkExaUwwQ2dZRUF3UWdHeEhWbysvZDNCaExRdlFIdAotNjRmRStxclpBNW9XV3dCaDhFelIrOThlT25EQ0YzR202Y2hyRXM5Ym9Pemx3eHI5TFU0VGdpQm5weVlyUUNFdwotQWRPQTlkaFl6OTFkK2NoSlpqS282MzVZOWJ5TjlydXRyMy9FZnFaTHhXTDczazF5NUxOQVlMK2p5QWFiMEpzdwotbDJ4RzZQTmo1ckl0a2dPM2o1MHFBN3M9Ci0tLS0tLUVORCBQUklWQVRFIEtFWS0tLS0tCmRpZmYgLS1naXQgYS90ZXN0cy9kYXRhX2ZpbGVzL3NlcnZlcjEtbm9zcGFjZS5jcnQgYi90ZXN0cy9kYXRhX2ZpbGVzL3NlcnZlcjEtbm9zcGFjZS5jcnQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDRjM2NiOTAuLjAwMDAwMDAKLS0tIGEvdGVzdHMvZGF0YV9maWxlcy9zZXJ2ZXIxLW5vc3BhY2UuY3J0CisrKyAvZGV2L251bGwKQEAgLTEsMjAgKzAsMCBAQAotLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCi1NSUlEUGpDQ0FpYWdBd0lCQWdJQkh6QU5CZ2txaGtpRzl3MEJBUXNGQURBN01Rc3dDUVlEVlFRR0V3Sk9UREVSCi1NQThHQTFVRUNnd0lVRzlzWVhKVFUwd3hHVEFYQmdOVkJBTU1FRkJ2YkdGeVUxTk1JRlJsYzNRZ1EwRXdIaGNOCi1NVGt3TWpFd01UUTBOREEyV2hjTk1qa3dNakV3TVRRME5EQTJXakE3TVFzd0NRWURWUVFHRXdKT1RERVJNQThHCi1BMVVFQ2d3SVVHOXNZWEpUVTB3eEdUQVhCZ05WQkFNTUVIQnZiR0Z5YzNOc0xtVjRZVzF3YkdVd2dnRWlNQTBHCi1DU3FHU0liM0RRRUJBUVVBQTRJQkR3QXdnZ0VLQW9JQkFRQ3BBaDg5UUdyVlZWT0wvVGJ1Z21VdUZXRmVpYis0Ci02RVdRMis2SUZsTFQ4VU5RUjVZU1dXU0hhLzByNEViNWM3N2R6NUxoa1Z2dFpxQnZpU2w1UllEUWcyclZRVU4zCi1Yemw4Q1FSSGdyQlhPWER0byt3VkdSNm9Nd2hId1FWQ3FmMU13N1RmM1FZZlRSQlJRR2R6RXc5QStHMkJKVjhLCi1zVlBHTUg0Vk9hejVXdTUva3A2bUJWdm5FNWVGdFNPUzJkUWtCdFVKSllsMUI5Mm1HbzgvQ1JtK3JXVXNaT3VWCi1tOXorUVY0WHB0cHNXMm5NQXJvVUxCWWtuRXJjemREM1VtZHo4UzJnSS8xKzlESEtMWERLaVFzRTJ5Nm1UM0J1Ci1uczY5V0luaVUxbWVibHFTWmVLSVB3eVVHYVBkNWVpZGxSUHRLZHVyY0JMY1dzcHJGNnRTZ2xTeEFnTUJBQUdqCi1UVEJMTUFrR0ExVWRFd1FDTUFBd0hRWURWUjBPQkJZRUZCOTAxajhwd1hSMFJUc0ZFaXc5cUwxRFdRS21NQjhHCi1BMVVkSXdRWU1CYUFGTFJhNUtXejN0SlM5cm5WcHBVUDZ6Njh4LzMvTUEwR0NTcUdTSWIzRFFFQkN3VUFBNElCCi1BUUM4ZlgzWmlIdTZHb1lCQjVWbzFsNkNYWERoSEI2cjQzUHArQkhvT0NvdWlpeTR1c2VpUEx1NVM4NGdtTm9DCi12OFpSK2I5bEFheXNDTUhBYnRoOXZndFcrYVhja0JZNnhLbzhDc21HWGNxWnF1akQ2cXJEaWY1cTZVcFhhNE9lCi1mcjZJVGtlY1k0WjlvTi9hTjVlbDV6elVkNXprb3lRREk1Qm4xZ01kdlY3QXdNN0hhcSs1Z1RGd003SEpucGh6Ci1HWjhHTHhXVTFkV2VBZnNHbTU4ZXk2SjI4T2pJa21mUDN5TC9rQktNaGlRWnlkYkg5WThZYWw3WXdoYXlYeEVTCi1pN1l3aE5tUGNHQWdEQm01U25vN0J2SGlJcXNOWDFzc3NDM2FaVWFadmxkSkdZKzRZOWZGWkhlbkJ3VFJFai9TCi1DbkVnYXpDMlJKM2tZZzNtUC9RaEUwVVMKLS0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KZGlmZiAtLWdpdCBhL3Rlc3RzL2RhdGFfZmlsZXMvc2VydmVyMS12MS5jcnQgYi90ZXN0cy9kYXRhX2ZpbGVzL3NlcnZlcjEtdjEuY3J0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4Y2E5MDA3Li4wMDAwMDAwCi0tLSBhL3Rlc3RzL2RhdGFfZmlsZXMvc2VydmVyMS12MS5jcnQKKysrIC9kZXYvbnVsbApAQCAtMSwxOSArMCwwIEBACi0tLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KLU1JSURIVENDQWdVQ0RGT2l0c2NFelUyT3ZJQUx3VEFOQmdrcWhraUc5dzBCQVFzRkFEQlFNUnd3R2dZRFZRUUQKLURCTlFiMnhoY2xOVFRDQlVaWE4wSUVOQklIWXhNUkF3RGdZRFZRUUxEQWQwWlhOMGFXNW5NUkV3RHdZRFZRUUsKLURBaFFiMnhoY2xOVFRERUxNQWtHQTFVRUJoTUNUa3d3SGhjTk1Ua3dNakV3TVRRME5EQTJXaGNOTWprd01qRXcKLU1UUTBOREEyV2pCT01Sb3dHQVlEVlFRRERCRnpaWEoyWlhJeEwybHVkQzFqWVMxMk1URVFNQTRHQTFVRUN3d0gKLWRHVnpkR2x1WnpFUk1BOEdBMVVFQ2d3SVVHOXNZWEpUVTB3eEN6QUpCZ05WQkFZVEFrNU1NSUlCSWpBTkJna3EKLWhraUc5dzBCQVFFRkFBT0NBUThBTUlJQkNnS0NBUUVBcVFJZlBVQnExVlZUaS8wMjdvSmxMaFZoWG9tL3VPaEYKLWtOdnVpQlpTMC9GRFVFZVdFbGxraDJ2OUsrQkcrWE8rM2MrUzRaRmI3V2FnYjRrcGVVV0EwSU5xMVVGRGQxODUKLWZBa0VSNEt3VnpsdzdhUHNGUmtlcURNSVI4RUZRcW45VE1PMDM5MEdIMDBRVVVCbmN4TVBRUGh0Z1NWZkNyRlQKLXhqQitGVG1zK1ZydWY1S2VwZ1ZiNXhPWGhiVWprdG5VSkFiVkNTV0pkUWZkcGhxUFB3a1p2cTFsTEdUcmxadmMKLS9rRmVGNmJhYkZ0cHpBSzZGQ3dXSkp4SzNNM1E5MUpuYy9FdG9DUDlmdlF4eWkxd3lva0xCTnN1cGs5d2JwN08KLXZWaUo0bE5abm01YWttWGlpRDhNbEJtajNlWG9uWlVUN1NuYnEzQVMzRnJLYXhlclVvSlVzUUlEQVFBQk1BMEcKLUNTcUdTSWIzRFFFQkN3VUFBNElCQVFCcmRZQUV6ZEg2cnl5WWFvbFl2cDhGdnEwd1p4cDZCZGN4dmkwTFVHbWIKLVRkV2NOclBVOUlZQVNjNVFTclNXUGowYzl2aExWYkRaQU9OZm45MnRoaTdDMnpRWG9rMlEzalcwMzh5Y05TWE4KLWxWeEZrZFk0R1lhM0U2T2cxTFZJeVN5emZ5eU51SEtLV2JCNXdaQ1diek9ndTJRMU1IU052UGhLamJEaHlHdFQKLU1xM1F5NlR5elVGYlhNUkJpeGNKQy9DeTR6c3F2V0JhblZ0Qm13bHZnRTRRNTBDVWd5YnpTRUlMNWorYVBMdVcKLWFqOGoyTlJCMis3dlBlb1dkOHJ5NVl4RUtCM0RSdVhISHl5Rm5UNU84TXBXdUNsNzY0cUZNYzhTL2k3eVZjbVoKLWVnWlF3MGRDbUU1SjRFR1gwQkVRRU0yNGxsMmU4U3hMMzUxaGJDUStFZnZGCi0tLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCmRpZmYgLS1naXQgYS90ZXN0cy9kYXRhX2ZpbGVzL3NlcnZlcjEuODBzZXJpYWwuY3J0IGIvdGVzdHMvZGF0YV9maWxlcy9zZXJ2ZXIxLjgwc2VyaWFsLmNydApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggM2NlODU3MC4uMDAwMDAwMAotLS0gYS90ZXN0cy9kYXRhX2ZpbGVzL3NlcnZlcjEuODBzZXJpYWwuY3J0CisrKyAvZGV2L251bGwKQEAgLTEsMjAgKzAsMCBAQAotLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCi1NSUlEUkRDQ0FpeWdBd0lCQWdJR0FJQVJJak5FTUEwR0NTcUdTSWIzRFFFQkJRVUFNRHN4Q3pBSkJnTlZCQVlUCi1BazVNTVJFd0R3WURWUVFLREFoUWIyeGhjbE5UVERFWk1CY0dBMVVFQXd3UVVHOXNZWEpUVTB3Z1ZHVnpkQ0JECi1RVEFlRncweE9UQXlNVEF4TkRRME1EWmFGdzB5T1RBeU1UQXhORFEwTURaYU1Ed3hDekFKQmdOVkJBWVRBazVNCi1NUkV3RHdZRFZRUUtEQWhRYjJ4aGNsTlRUREVhTUJnR0ExVUVBd3dSVUc5c1lYSlRVMHdnVTJWeWRtVnlJREV3Ci1nZ0VpTUEwR0NTcUdTSWIzRFFFQkFRVUFBNElCRHdBd2dnRUtBb0lCQVFDcEFoODlRR3JWVlZPTC9UYnVnbVV1Ci1GV0ZlaWIrNDZFV1EyKzZJRmxMVDhVTlFSNVlTV1dTSGEvMHI0RWI1Yzc3ZHo1TGhrVnZ0WnFCdmlTbDVSWURRCi1nMnJWUVVOM1h6bDhDUVJIZ3JCWE9YRHRvK3dWR1I2b013aEh3UVZDcWYxTXc3VGYzUVlmVFJCUlFHZHpFdzlBCi0rRzJCSlY4S3NWUEdNSDRWT2F6NVd1NS9rcDZtQlZ2bkU1ZUZ0U09TMmRRa0J0VUpKWWwxQjkybUdvOC9DUm0rCi1yV1VzWk91Vm05eitRVjRYcHRwc1cybk1Bcm9VTEJZa25FcmN6ZEQzVW1kejhTMmdJLzErOURIS0xYREtpUXNFCi0yeTZtVDNCdW5zNjlXSW5pVTFtZWJscVNaZUtJUHd5VUdhUGQ1ZWlkbFJQdEtkdXJjQkxjV3NwckY2dFNnbFN4Ci1BZ01CQUFHalRUQkxNQWtHQTFVZEV3UUNNQUF3SFFZRFZSME9CQllFRkI5MDFqOHB3WFIwUlRzRkVpdzlxTDFECi1XUUttTUI4R0ExVWRJd1FZTUJhQUZMUmE1S1d6M3RKUzlyblZwcFVQNno2OHgvMy9NQTBHQ1NxR1NJYjNEUUVCCi1CUVVBQTRJQkFRQkpLZVRVQ2N0Yi93Q3hCdGUyQUlpYVRmQVR6dWtUVnRHaEtrZHkzY1k2VTJEVlNYYytzK2pyCi1LdXQ4QVluanAxVDZiaG85OFJIYmJrK2h1KzBnQldMMnlzSmQxK3NsTEJVRW90VU1Ua3pnQTFZZEJYeTlKL2VNCi1ISjJhMHlkRmxsL20yclh4N1JSSldTYmNnUFp4UUxEZm9sbG5OVmZoY2I3NU8zR3NUM1lmRUlzakxtb243TkhyCi1ySm1UcDc3M3RyZzBjTko2ajVkS01BLzJTUUg1UEwxY21jRmdOZlZaK2V0TlJJaHdwSVFZeVNXSi80NjhNY2c1Ci1aS1BZNm51YklJaitIUEIzTWh5OGQ5VTNnQUp2YzlpRWR6YktqcmtKZFZST09Oc3lNWWdlNHZuYmp5S1VyNy9tCi1aTjFPNnBaeTlGdmdiZGh2eDRaSHBmZ0VzYTFxZkxDSAotLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQpkaWZmIC0tZ2l0IGEvdGVzdHMvZGF0YV9maWxlcy9zZXJ2ZXIxLmFsbFN1YmplY3RBbHROYW1lcy5jcnQgYi90ZXN0cy9kYXRhX2ZpbGVzL3NlcnZlcjEuYWxsU3ViamVjdEFsdE5hbWVzLmNydApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMTNhZjg3My4uMDAwMDAwMAotLS0gYS90ZXN0cy9kYXRhX2ZpbGVzL3NlcnZlcjEuYWxsU3ViamVjdEFsdE5hbWVzLmNydAorKysgL2Rldi9udWxsCkBAIC0xLDIzICswLDAgQEAKLS0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQotTUlJRHpUQ0NBcldnQXdJQkFnSUJBVEFOQmdrcWhraUc5dzBCQVFVRkFEQTdNUXN3Q1FZRFZRUUdFd0pPVERFUgotTUE4R0ExVUVDZ3dJVUc5c1lYSlRVMHd4R1RBWEJnTlZCQU1NRUZCdmJHRnlVMU5NSUZSbGMzUWdRMEV3SGhjTgotTVRrd01qRXdNVFEwTkRBMldoY05Namt3TWpFd01UUTBOREEyV2pBOE1Rc3dDUVlEVlFRR0V3Sk9UREVSTUE4RwotQTFVRUNnd0lVRzlzWVhKVFUwd3hHakFZQmdOVkJBTU1FVkJ2YkdGeVUxTk1JRk5sY25abGNpQXhNSUlCSWpBTgotQmdrcWhraUc5dzBCQVFFRkFBT0NBUThBTUlJQkNnS0NBUUVBcVFJZlBVQnExVlZUaS8wMjdvSmxMaFZoWG9tLwotdU9oRmtOdnVpQlpTMC9GRFVFZVdFbGxraDJ2OUsrQkcrWE8rM2MrUzRaRmI3V2FnYjRrcGVVV0EwSU5xMVVGRAotZDE4NWZBa0VSNEt3VnpsdzdhUHNGUmtlcURNSVI4RUZRcW45VE1PMDM5MEdIMDBRVVVCbmN4TVBRUGh0Z1NWZgotQ3JGVHhqQitGVG1zK1ZydWY1S2VwZ1ZiNXhPWGhiVWprdG5VSkFiVkNTV0pkUWZkcGhxUFB3a1p2cTFsTEdUcgotbFp2Yy9rRmVGNmJhYkZ0cHpBSzZGQ3dXSkp4SzNNM1E5MUpuYy9FdG9DUDlmdlF4eWkxd3lva0xCTnN1cGs5dwotYnA3T3ZWaUo0bE5abm01YWttWGlpRDhNbEJtajNlWG9uWlVUN1NuYnEzQVMzRnJLYXhlclVvSlVzUUlEQVFBQgotbzRIYU1JSFhNQWtHQTFVZEV3UUNNQUF3SFFZRFZSME9CQllFRkI5MDFqOHB3WFIwUlRzRkVpdzlxTDFEV1FLbQotTUI4R0ExVWRJd1FZTUJhQUZMUmE1S1d6M3RKUzlyblZwcFVQNno2OHgvMy9NSUdKQmdOVkhSRUVnWUV3ZjRFUQotYldGcGJFQmxlR0Z0Y0d4bExtTnZiWUlMWlhoaGJYQnNaUzVqYjIya1FEQStNUXN3Q1FZRFZRUUdFd0pWU3pFUgotTUE4R0ExVUVDZ3dJVFdKbFpDQlVURk14SERBYUJnTlZCQU1NRTFOMVltcGxZM1JCYkhST1lXMWxJSFJsYzNTSAotQkFFQ0F3U0dGbWgwZEhBNkx5OXdhMmt1WlhoaGJYQnNaUzVqYjIwd0RRWUpLb1pJaHZjTkFRRUZCUUFEZ2dFQgotQUdQRkI4WUdwZTZQUm5pUGtZVmxwQ2Y1V3dsZVlDcGNQNEFFdkZIajVkRDFVY0JjcUtqcHBKUkdzc2crUzBmUAotbk53WVJqYVZqS3VoV1NHSU1yazBuWnFzaWV4bmtDbWEwUzhrZEZ2SHRDZmJSOWM5cFFTbjQ0b2xWTWJIeC90OAotZHp2N1o0OEhxc3F2RzBobjNBd0RsWitLcm5UWkZ6enBXemZMa2JQZFprby9vSG9GbXFFZWtFdXlPSzl2TzNmagotZU5tNVN6WXRxT2lndzhUeGtUYjErUWk5Q2o2NlZFd1ZFU1cxeS9UTDkwNzNLeDBsQm9ZOHdqMVB2ZmRocGxyZwotSXdZSXdycjBITSs3bmxZRWhFSSsrTkFiWmhqUW9TMmtGNWk3eHBvbVVrWUg5ZVBicndXWUJjdU4wMHBsalhFbQotaW9ZMEtLbHgwMGZSZWhQSC82VEJIWkk9Ci0tLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCmRpZmYgLS1naXQgYS90ZXN0cy9kYXRhX2ZpbGVzL3NlcnZlcjEuYXNjaWljaGFycy5jcnQgYi90ZXN0cy9kYXRhX2ZpbGVzL3NlcnZlcjEuYXNjaWljaGFycy5jcnQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDgyNGU0NmUuLjAwMDAwMDAKLS0tIGEvdGVzdHMvZGF0YV9maWxlcy9zZXJ2ZXIxLmFzY2lpY2hhcnMuY3J0CisrKyAvZGV2L251bGwKQEAgLTEsMjAgKzAsMCBAQAotLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCi1NSUlEUURDQ0FpaWdBd0lCQWdJQkFUQU5CZ2txaGtpRzl3MEJBUVVGQURBN01Rc3dDUVlEVlFRR0V3Sk9UREVSCi1NQThHQTFVRUNnd0lVRzlzWVhKVFUwd3hHVEFYQmdOVkJBTU1FRkJ2YkdGeVUxTk1JRlJsYzNRZ1EwRXdIaGNOCi1NVGt3TWpFd01UUTBOREEyV2hjTk1qa3dNakV3TVRRME5EQTJXakE5TVFzd0NRWURWUVFHRXdKT1RERVNNQkFHCi1BMVVFQ2d3SjVwNkI1Wnl3VTFOTU1Sb3dHQVlEVlFRRERCRlFiMnhoY2xOVFRDQlRaWEoyWlhJZ01UQ0NBU0l3Ci1EUVlKS29aSWh2Y05BUUVCQlFBRGdnRVBBRENDQVFvQ2dnRUJBS2tDSHoxQWF0VlZVNHY5TnU2Q1pTNFZZVjZKCi12N2pvUlpEYjdvZ1dVdFB4UTFCSGxoSlpaSWRyL1N2Z1J2bHp2dDNQa3VHUlcrMW1vRytKS1hsRmdOQ0RhdFZCCi1RM2RmT1h3SkJFZUNzRmM1Y08yajdCVVpIcWd6Q0VmQkJVS3AvVXpEdE4vZEJoOU5FRkZBWjNNVEQwRDRiWUVsCi1Yd3F4VThZd2ZoVTVyUGxhN24rU25xWUZXK2NUbDRXMUk1TFoxQ1FHMVFrbGlYVUgzYVlhano4SkdiNnRaU3hrCi02NVdiM1A1QlhoZW0ybXhiYWN3Q3VoUXNGaVNjU3R6TjBQZFNaM1B4TGFBai9YNzBNY290Y01xSkN3VGJMcVpQCi1jRzZlenIxWWllSlRXWjV1V3BKbDRvZy9ESlFabzkzbDZKMlZFKzBwMjZ0d0V0eGF5bXNYcTFLQ1ZMRUNBd0VBCi1BYU5OTUVzd0NRWURWUjBUQkFJd0FEQWRCZ05WSFE0RUZnUVVIM1RXUHluQmRIUkZPd1VTTEQyb3ZVTlpBcVl3Ci1Id1lEVlIwakJCZ3dGb0FVdEZya3BiUGUwbEwydWRXbWxRL3JQcnpIL2Y4d0RRWUpLb1pJaHZjTkFRRUZCUUFECi1nZ0VCQUhxSkxZbWdrUTZ5cW1sM1BaTTZpd2JtbytsWkx5REVQRnBsL3RoSFptNUxJOFRUWU9lVSt3TUFaNktJCi1WdW15alp4eXBtTEYyTWlpSjJmM3pRb29VN0gxd2FBY1Rwc2FmVHVENlJSWWR0aFlZeHMxTDlnQ20xWlQyR2E4Ci1mZ24zd3J1Z1BMVXJ0U00vVGtUajZGNFhrU2xsdXpacEVLc1NZTFNveWRlK3VRZ2RidFIrM1RjKzNvVTh4Qk1NCi1ONnVxNFZRQzQ5YXZJUWtJKzU5OEUzdktyakdHdDNsMmExVHMxcXZYV2pvOW1wSlc1R000ZTF6Zm9nS25jOFhRCi1LMWhZUTM5d0w0Mmw5SGlqd3JlODVPMFBTQmZiTk92MUJQU0RtOGRhczNWTnpHc1VJejhJbmtBS0FLQ0t3eEc2Ci1CQ3czRC9DRThzNkRDbnBiK2VLMXNWSndaNEU9Ci0tLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCmRpZmYgLS1naXQgYS90ZXN0cy9kYXRhX2ZpbGVzL3NlcnZlcjEuY2EuY3J0IGIvdGVzdHMvZGF0YV9maWxlcy9zZXJ2ZXIxLmNhLmNydApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggODQ2OTFkNi4uMDAwMDAwMAotLS0gYS90ZXN0cy9kYXRhX2ZpbGVzL3NlcnZlcjEuY2EuY3J0CisrKyAvZGV2L251bGwKQEAgLTEsMjAgKzAsMCBAQAotLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCi1NSUlEUlRDQ0FpMmdBd0lCQWdJQkFUQU5CZ2txaGtpRzl3MEJBUVVGQURBN01Rc3dDUVlEVlFRR0V3Sk9UREVSCi1NQThHQTFVRUNnd0lVRzlzWVhKVFUwd3hHVEFYQmdOVkJBTU1FRkJ2YkdGeVUxTk1JRlJsYzNRZ1EwRXdIaGNOCi1NVGt3TWpFd01UUTBOREEyV2hjTk1qa3dNakV3TVRRME5EQTJXakE4TVFzd0NRWURWUVFHRXdKT1RERVJNQThHCi1BMVVFQ2d3SVVHOXNZWEpUVTB3eEdqQVlCZ05WQkFNTUVWQnZiR0Z5VTFOTUlGTmxjblpsY2lBeE1JSUJJakFOCi1CZ2txaGtpRzl3MEJBUUVGQUFPQ0FROEFNSUlCQ2dLQ0FRRUFxUUlmUFVCcTFWVlRpLzAyN29KbExoVmhYb20vCi11T2hGa052dWlCWlMwL0ZEVUVlV0VsbGtoMnY5SytCRytYTyszYytTNFpGYjdXYWdiNGtwZVVXQTBJTnExVUZECi1kMTg1ZkFrRVI0S3dWemx3N2FQc0ZSa2VxRE1JUjhFRlFxbjlUTU8wMzkwR0gwMFFVVUJuY3hNUFFQaHRnU1ZmCi1DckZUeGpCK0ZUbXMrVnJ1ZjVLZXBnVmI1eE9YaGJVamt0blVKQWJWQ1NXSmRRZmRwaHFQUHdrWnZxMWxMR1RyCi1sWnZjL2tGZUY2YmFiRnRwekFLNkZDd1dKSnhLM00zUTkxSm5jL0V0b0NQOWZ2UXh5aTF3eW9rTEJOc3Vwazl3Ci1icDdPdlZpSjRsTlpubTVha21YaWlEOE1sQm1qM2VYb25aVVQ3U25icTNBUzNGcktheGVyVW9KVXNRSURBUUFCCi1vMU13VVRBUEJnTlZIUk1CQWY4RUJUQURBUUgvTUIwR0ExVWREZ1FXQkJRZmROWS9LY0YwZEVVN0JSSXNQYWk5Ci1RMWtDcGpBZkJnTlZIU01FR0RBV2dCUzBXdVNsczk3U1V2YTUxYWFWRCtzK3ZNZjkvekFOQmdrcWhraUc5dzBCCi1BUVVGQUFPQ0FRRUFndDBGazZjTE1qc1pVa1Zwa3BUdzZFSnVLQTQ4SDhpZVVTVER6WW9hRFdKUXNGWTM0T0ljCi0wVXBmTXdsMWpsMHFFY1Zib09kY0pIdWcwRVhzZm02WFVsU0prUG5tY2R0L040Z1UzL1RWa2RRd3FidnJ3amFlCi1TK0piMUU3ZlRBaWF1TWk2KytzdlYvc2ZLcUUzT0NUSldGKzZEMExkZ254RVZaTTZEdm5GVTlKdncrQ1BUSXg2Ci0rU1laTG01c09UTDBzV01JeHdBRWp3R0ozVDFtMHNqUGpubmw0Sm4vWHREOFV1UlJZQi9SUzZlMlRsS292d1dQCi1HM2VVZEVzMlFKNWxubkQrZDdBVVlxOW5BWW5iNDJNMVpkQXhSUXh4dTJ3d2VpVHBVdWJ2VDRXNndrRzh2ZWl4Ci1VTTQ1RUtzeFBpbm5LMHJLOWJ6clBEd3BudElIaEVVY1NRPT0KLS0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KZGlmZiAtLWdpdCBhL3Rlc3RzL2RhdGFfZmlsZXMvc2VydmVyMS5jYS5kZXIgYi90ZXN0cy9kYXRhX2ZpbGVzL3NlcnZlcjEuY2EuZGVyCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhNWZmMDU5Li4wMDAwMDAwCi0tLSBhL3Rlc3RzL2RhdGFfZmlsZXMvc2VydmVyMS5jYS5kZXIKKysrIC9kZXYvbnVsbApCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS90ZXN0cy9kYXRhX2ZpbGVzL3NlcnZlcjEuY2Ffbm9hdXRoaWQuY3J0IGIvdGVzdHMvZGF0YV9maWxlcy9zZXJ2ZXIxLmNhX25vYXV0aGlkLmNydApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZTY2OTU2ZC4uMDAwMDAwMAotLS0gYS90ZXN0cy9kYXRhX2ZpbGVzL3NlcnZlcjEuY2Ffbm9hdXRoaWQuY3J0CisrKyAvZGV2L251bGwKQEAgLTEsMTkgKzAsMCBAQAotLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCi1NSUlESkRDQ0FneWdBd0lCQWdJQkFUQU5CZ2txaGtpRzl3MEJBUVVGQURBN01Rc3dDUVlEVlFRR0V3Sk9UREVSCi1NQThHQTFVRUNnd0lVRzlzWVhKVFUwd3hHVEFYQmdOVkJBTU1FRkJ2YkdGeVUxTk1JRlJsYzNRZ1EwRXdIaGNOCi1NVGt3TWpFd01UUTBOREEyV2hjTk1qa3dNakV3TVRRME5EQTJXakE4TVFzd0NRWURWUVFHRXdKT1RERVJNQThHCi1BMVVFQ2d3SVVHOXNZWEpUVTB3eEdqQVlCZ05WQkFNTUVWQnZiR0Z5VTFOTUlGTmxjblpsY2lBeE1JSUJJakFOCi1CZ2txaGtpRzl3MEJBUUVGQUFPQ0FROEFNSUlCQ2dLQ0FRRUFxUUlmUFVCcTFWVlRpLzAyN29KbExoVmhYb20vCi11T2hGa052dWlCWlMwL0ZEVUVlV0VsbGtoMnY5SytCRytYTyszYytTNFpGYjdXYWdiNGtwZVVXQTBJTnExVUZECi1kMTg1ZkFrRVI0S3dWemx3N2FQc0ZSa2VxRE1JUjhFRlFxbjlUTU8wMzkwR0gwMFFVVUJuY3hNUFFQaHRnU1ZmCi1DckZUeGpCK0ZUbXMrVnJ1ZjVLZXBnVmI1eE9YaGJVamt0blVKQWJWQ1NXSmRRZmRwaHFQUHdrWnZxMWxMR1RyCi1sWnZjL2tGZUY2YmFiRnRwekFLNkZDd1dKSnhLM00zUTkxSm5jL0V0b0NQOWZ2UXh5aTF3eW9rTEJOc3Vwazl3Ci1icDdPdlZpSjRsTlpubTVha21YaWlEOE1sQm1qM2VYb25aVVQ3U25icTNBUzNGcktheGVyVW9KVXNRSURBUUFCCi1vekl3TURBUEJnTlZIUk1CQWY4RUJUQURBUUgvTUIwR0ExVWREZ1FXQkJRZmROWS9LY0YwZEVVN0JSSXNQYWk5Ci1RMWtDcGpBTkJna3Foa2lHOXcwQkFRVUZBQU9DQVFFQU1ibFBDc2pqNlJKOHNPbTU0c2RsU0pPVEdXRW8vMUxGCi1xMWJKbktFM0ZYRGVVOHBiaEVocGZzZDJ6Y0tkSnh6cDdCZzhNcy94S0J1T1pobi80Qy9uMkZ3WnBFZUFzUzdKCi10WmlmS3ArR1hWczB4YmNqaTlhQjhuaVdYU2wvQ29JQ3B2SHBNQXo4azJIVDRMRHZiQzJFbFhrcUxUN243azFCCi0vT0RJM0JNRTM0TnF1eUJURGV6UWI0R3o3Yng0Mk9LTHJ4WmtLck8zVUYzVFFUWUJadmxIN0lPN1N2WmhRUEdrCi1iOGEyaktZZmVRQ0NJdmN5d1dRN3F6bGd6VGduWEowUnJMeUNxT3FMRnM2enRIUGdjbEhhK1hZRjV5ZnRTS0lTCi16VEpMVDBJV0J0d2dCMm9wdjdZU3g3dEtZaGordUhIWTdDM2lTWHpBZ1B5NVRZa2lzc0dYYnc9PQotLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQpkaWZmIC0tZ2l0IGEvdGVzdHMvZGF0YV9maWxlcy9zZXJ2ZXIxLmNlcnRfdHlwZS5jcnQgYi90ZXN0cy9kYXRhX2ZpbGVzL3NlcnZlcjEuY2VydF90eXBlLmNydApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMzRmZTRmNi4uMDAwMDAwMAotLS0gYS90ZXN0cy9kYXRhX2ZpbGVzL3NlcnZlcjEuY2VydF90eXBlLmNydAorKysgL2Rldi9udWxsCkBAIC0xLDIwICswLDAgQEAKLS0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQotTUlJRFVqQ0NBanFnQXdJQkFnSUJBVEFOQmdrcWhraUc5dzBCQVFVRkFEQTdNUXN3Q1FZRFZRUUdFd0pPVERFUgotTUE4R0ExVUVDZ3dJVUc5c1lYSlRVMHd4R1RBWEJnTlZCQU1NRUZCdmJHRnlVMU5NSUZSbGMzUWdRMEV3SGhjTgotTVRrd01qRXdNVFEwTkRBMldoY05Namt3TWpFd01UUTBOREEyV2pBOE1Rc3dDUVlEVlFRR0V3Sk9UREVSTUE4RwotQTFVRUNnd0lVRzlzWVhKVFUwd3hHakFZQmdOVkJBTU1FVkJ2YkdGeVUxTk1JRk5sY25abGNpQXhNSUlCSWpBTgotQmdrcWhraUc5dzBCQVFFRkFBT0NBUThBTUlJQkNnS0NBUUVBcVFJZlBVQnExVlZUaS8wMjdvSmxMaFZoWG9tLwotdU9oRmtOdnVpQlpTMC9GRFVFZVdFbGxraDJ2OUsrQkcrWE8rM2MrUzRaRmI3V2FnYjRrcGVVV0EwSU5xMVVGRAotZDE4NWZBa0VSNEt3VnpsdzdhUHNGUmtlcURNSVI4RUZRcW45VE1PMDM5MEdIMDBRVVVCbmN4TVBRUGh0Z1NWZgotQ3JGVHhqQitGVG1zK1ZydWY1S2VwZ1ZiNXhPWGhiVWprdG5VSkFiVkNTV0pkUWZkcGhxUFB3a1p2cTFsTEdUcgotbFp2Yy9rRmVGNmJhYkZ0cHpBSzZGQ3dXSkp4SzNNM1E5MUpuYy9FdG9DUDlmdlF4eWkxd3lva0xCTnN1cGs5dwotYnA3T3ZWaUo0bE5abm01YWttWGlpRDhNbEJtajNlWG9uWlVUN1NuYnEzQVMzRnJLYXhlclVvSlVzUUlEQVFBQgotbzJBd1hqQUpCZ05WSFJNRUFqQUFNQjBHQTFVZERnUVdCQlFmZE5ZL0tjRjBkRVU3QlJJc1BhaTlRMWtDcGpBZgotQmdOVkhTTUVHREFXZ0JTMFd1U2xzOTdTVXZhNTFhYVZEK3Mrdk1mOS96QVJCZ2xnaGtnQmh2aENBUUVFQkFNQwotQmtBd0RRWUpLb1pJaHZjTkFRRUZCUUFEZ2dFQkFFbEpQYUNHNmFGSG95bW9Dcnpja1BmakVOeGdYVzJjemg1dAotVHNNUHNoa3pYNXAyQVU4OUdCR2R5MGdRd29QdU10Y3puc0RlNGFkTTZOYThmMzBZRGZmQVRzZ0RFQ01JV3RWMQotWFZZS1FJd0ZtWnpFdDRCKzVzVW15TU9MdFR1dVpCVGhPTFB3T3c4ZTRSbklMS09ZUEhuUU5SZjZFYXA0bEZEeAotbHAycEFhaVhNRFdIODhnbVdvVTVYckdUcHBsbFlWMElvcnpKNHhWOVNnM2l0dE53Tk80MGVoVlFEQXNlRndaSAotaXloOWlIejRCcXRXakVsbVEzaEw4Ti9DYnFwM2lOMTVoMnBVZ0lqOEpJdDlyQ3NJWnJzRzNLNDJpU2xQekVuMgotREN6V1FTajljUU5DUlZKbndnSkFXbkMxSHgwWVlGUU1nUXF1VnhuSzE1VEhUR1FBZUI4PQotLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQpkaWZmIC0tZ2l0IGEvdGVzdHMvZGF0YV9maWxlcy9zZXJ2ZXIxLmNlcnRfdHlwZS5jcnQub3BlbnNzbC52M19leHQgYi90ZXN0cy9kYXRhX2ZpbGVzL3NlcnZlcjEuY2VydF90eXBlLmNydC5vcGVuc3NsLnYzX2V4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYmQyMjVmZi4uMDAwMDAwMAotLS0gYS90ZXN0cy9kYXRhX2ZpbGVzL3NlcnZlcjEuY2VydF90eXBlLmNydC5vcGVuc3NsLnYzX2V4dAorKysgL2Rldi9udWxsCkBAIC0xLDUgKzAsMCBAQAotW3YzX2V4dF0KLWJhc2ljQ29uc3RyYWludHMgPSBDQTpmYWxzZQotc3ViamVjdEtleUlkZW50aWZpZXI9aGFzaAotYXV0aG9yaXR5S2V5SWRlbnRpZmllcj1rZXlpZAotbnNDZXJ0VHlwZT1zZXJ2ZXIKZGlmZiAtLWdpdCBhL3Rlc3RzL2RhdGFfZmlsZXMvc2VydmVyMS5jZXJ0X3R5cGVfbm9hdXRoaWQuY3J0IGIvdGVzdHMvZGF0YV9maWxlcy9zZXJ2ZXIxLmNlcnRfdHlwZV9ub2F1dGhpZC5jcnQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGMzYTY2ZWEuLjAwMDAwMDAKLS0tIGEvdGVzdHMvZGF0YV9maWxlcy9zZXJ2ZXIxLmNlcnRfdHlwZV9ub2F1dGhpZC5jcnQKKysrIC9kZXYvbnVsbApAQCAtMSwyMCArMCwwIEBACi0tLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KLU1JSURNVENDQWhtZ0F3SUJBZ0lCQVRBTkJna3Foa2lHOXcwQkFRVUZBREE3TVFzd0NRWURWUVFHRXdKT1RERVIKLU1BOEdBMVVFQ2d3SVVHOXNZWEpUVTB3eEdUQVhCZ05WQkFNTUVGQnZiR0Z5VTFOTUlGUmxjM1FnUTBFd0hoY04KLU1Ua3dNakV3TVRRME5EQTJXaGNOTWprd01qRXdNVFEwTkRBMldqQThNUXN3Q1FZRFZRUUdFd0pPVERFUk1BOEcKLUExVUVDZ3dJVUc5c1lYSlRVMHd4R2pBWUJnTlZCQU1NRVZCdmJHRnlVMU5NSUZObGNuWmxjaUF4TUlJQklqQU4KLUJna3Foa2lHOXcwQkFRRUZBQU9DQVE4QU1JSUJDZ0tDQVFFQXFRSWZQVUJxMVZWVGkvMDI3b0psTGhWaFhvbS8KLXVPaEZrTnZ1aUJaUzAvRkRVRWVXRWxsa2gydjlLK0JHK1hPKzNjK1M0WkZiN1dhZ2I0a3BlVVdBMElOcTFVRkQKLWQxODVmQWtFUjRLd1Z6bHc3YVBzRlJrZXFETUlSOEVGUXFuOVRNTzAzOTBHSDAwUVVVQm5jeE1QUVBodGdTVmYKLUNyRlR4akIrRlRtcytWcnVmNUtlcGdWYjV4T1hoYlVqa3RuVUpBYlZDU1dKZFFmZHBocVBQd2tadnExbExHVHIKLWxadmMva0ZlRjZiYWJGdHB6QUs2RkN3V0pKeEszTTNROTFKbmMvRXRvQ1A5ZnZReHlpMXd5b2tMQk5zdXBrOXcKLWJwN092VmlKNGxOWm5tNWFrbVhpaUQ4TWxCbWozZVhvblpVVDdTbmJxM0FTM0ZyS2F4ZXJVb0pVc1FJREFRQUIKLW96OHdQVEFKQmdOVkhSTUVBakFBTUIwR0ExVWREZ1FXQkJRZmROWS9LY0YwZEVVN0JSSXNQYWk5UTFrQ3BqQVIKLUJnbGdoa2dCaHZoQ0FRRUVCQU1DQmtBd0RRWUpLb1pJaHZjTkFRRUZCUUFEZ2dFQkFFUGM5VlNKSzYwK1drQXcKLUdaWDMvQVdKRThoMzFmWisrMlp1N08xVjJkZEk2OFFvaGE0MWJPUlhkaXpmUUZqVEprVi9RSGpiYUNaS3FwdDAKLXJpR0t2UnBYZmwzVkRsZjlmRVpVblFFZklrNjEyQWpMd2tIb05JS2JDaXRyVm9XdStwMlY0a3VLUXBGa3kvc28KLXdyL3NsMjlmV2E0aW5uRlVWZ21RQzUybDRVaUlVMnJDVjBSVHBMb2ZWS1dSWlBseklpK0FsTUZrdnozSnFSUDAKLXJhS3c4REhkR2xyTGcyMlZlbHJZMGRYalVyaVdyU1REaTJRZEIreW4wRmRyUGFwMm5aaUZjdFcxUzAvd09DeSsKLXIwdVZZUStJc2ViSllTVDlkVXVRTmhXU1pPaHNqeE9vK0dwMzZ0eXdRenJqWEZrN0phaThBa0hvQm1aVm14NmIKLWEwL0o3L3c9Ci0tLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCmRpZmYgLS1naXQgYS90ZXN0cy9kYXRhX2ZpbGVzL3NlcnZlcjEuY29tbWFzLmNydCBiL3Rlc3RzL2RhdGFfZmlsZXMvc2VydmVyMS5jb21tYXMuY3J0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1YWNkMjU1Li4wMDAwMDAwCi0tLSBhL3Rlc3RzL2RhdGFfZmlsZXMvc2VydmVyMS5jb21tYXMuY3J0CisrKyAvZGV2L251bGwKQEAgLTEsMjAgKzAsMCBAQAotLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCi1NSUlEUnpDQ0FpK2dBd0lCQWdJQkFUQU5CZ2txaGtpRzl3MEJBUVVGQURBN01Rc3dDUVlEVlFRR0V3Sk9UREVSCi1NQThHQTFVRUNnd0lVRzlzWVhKVFUwd3hHVEFYQmdOVkJBTU1FRkJ2YkdGeVUxTk1JRlJsYzNRZ1EwRXdIaGNOCi1NVGt3TWpFd01UUTBOREEyV2hjTk1qa3dNakV3TVRRME5EQTJXakJFTVFzd0NRWURWUVFHRXdKT1RERVpNQmNHCi1BMVVFQ2d3UVVHOXNZWEpUVTB3c0lFTnZiVzFoY3pFYU1CZ0dBMVVFQXd3UlVHOXNZWEpUVTB3Z1UyVnlkbVZ5Ci1JREV3Z2dFaU1BMEdDU3FHU0liM0RRRUJBUVVBQTRJQkR3QXdnZ0VLQW9JQkFRQ3BBaDg5UUdyVlZWT0wvVGJ1Ci1nbVV1RldGZWliKzQ2RVdRMis2SUZsTFQ4VU5RUjVZU1dXU0hhLzByNEViNWM3N2R6NUxoa1Z2dFpxQnZpU2w1Ci1SWURRZzJyVlFVTjNYemw4Q1FSSGdyQlhPWER0byt3VkdSNm9Nd2hId1FWQ3FmMU13N1RmM1FZZlRSQlJRR2R6Ci1FdzlBK0cyQkpWOEtzVlBHTUg0Vk9hejVXdTUva3A2bUJWdm5FNWVGdFNPUzJkUWtCdFVKSllsMUI5Mm1HbzgvCi1DUm0rcldVc1pPdVZtOXorUVY0WHB0cHNXMm5NQXJvVUxCWWtuRXJjemREM1VtZHo4UzJnSS8xKzlESEtMWERLCi1pUXNFMnk2bVQzQnVuczY5V0luaVUxbWVibHFTWmVLSVB3eVVHYVBkNWVpZGxSUHRLZHVyY0JMY1dzcHJGNnRTCi1nbFN4QWdNQkFBR2pUVEJMTUFrR0ExVWRFd1FDTUFBd0hRWURWUjBPQkJZRUZCOTAxajhwd1hSMFJUc0ZFaXc5Ci1xTDFEV1FLbU1COEdBMVVkSXdRWU1CYUFGTFJhNUtXejN0SlM5cm5WcHBVUDZ6Njh4LzMvTUEwR0NTcUdTSWIzCi1EUUVCQlFVQUE0SUJBUUExRWNnK1ZWSlJtZ0ZGOWNubHp0blhqNHk5UUtqOE1DZjJ1WkEzblROZTFEZWg5bDE3Ci1aTk5XZFBrWHpWemYwSWVSM0xRUktUK2RhVHp4dU9PQ1NWOU94T2NOMGRJT0RCd2E5N0J0TlFmdVd3MmVXQzlJCi0zVU9WWGJ4OEdhK2JYbkQ4b3VhdHB5RUcwRmZoTE81WWdFUDBLOVR5eU4vbkZhOWtrQjJLdnB5OHlXbTN3OVdHCi1XZ3NPcjJmcElFeGZDMlpGYWl1M05WR1RwVDlmTHY4UlRhdFNDMVhMQTVTcjhOTkhpYTN6Q3ZFSkVBbFR1RkhzCi13bThhcElBSGxiNDRiYmdXKzdVd0JJSDlyMkEyMWdRRnkzdjRjVEx0bGJuYVVCYkhVSnZhcks0cnU3MEorZ2V3Ci1PTzNOWjFvY3ZuVitxR0ljYzdMZ3lOQThwWlc1SmJld2IvZ04KLS0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KZGlmZiAtLWdpdCBhL3Rlc3RzL2RhdGFfZmlsZXMvc2VydmVyMS5jcnQgYi90ZXN0cy9kYXRhX2ZpbGVzL3NlcnZlcjEuY3J0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyNThkYTVlLi4wMDAwMDAwCi0tLSBhL3Rlc3RzL2RhdGFfZmlsZXMvc2VydmVyMS5jcnQKKysrIC9kZXYvbnVsbApAQCAtMSwyMCArMCwwIEBACi0tLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KLU1JSURQekNDQWllZ0F3SUJBZ0lCQVRBTkJna3Foa2lHOXcwQkFRVUZBREE3TVFzd0NRWURWUVFHRXdKT1RERVIKLU1BOEdBMVVFQ2d3SVVHOXNZWEpUVTB3eEdUQVhCZ05WQkFNTUVGQnZiR0Z5VTFOTUlGUmxjM1FnUTBFd0hoY04KLU1Ua3dNakV3TVRRME5EQTJXaGNOTWprd01qRXdNVFEwTkRBMldqQThNUXN3Q1FZRFZRUUdFd0pPVERFUk1BOEcKLUExVUVDZ3dJVUc5c1lYSlRVMHd4R2pBWUJnTlZCQU1NRVZCdmJHRnlVMU5NSUZObGNuWmxjaUF4TUlJQklqQU4KLUJna3Foa2lHOXcwQkFRRUZBQU9DQVE4QU1JSUJDZ0tDQVFFQXFRSWZQVUJxMVZWVGkvMDI3b0psTGhWaFhvbS8KLXVPaEZrTnZ1aUJaUzAvRkRVRWVXRWxsa2gydjlLK0JHK1hPKzNjK1M0WkZiN1dhZ2I0a3BlVVdBMElOcTFVRkQKLWQxODVmQWtFUjRLd1Z6bHc3YVBzRlJrZXFETUlSOEVGUXFuOVRNTzAzOTBHSDAwUVVVQm5jeE1QUVBodGdTVmYKLUNyRlR4akIrRlRtcytWcnVmNUtlcGdWYjV4T1hoYlVqa3RuVUpBYlZDU1dKZFFmZHBocVBQd2tadnExbExHVHIKLWxadmMva0ZlRjZiYWJGdHB6QUs2RkN3V0pKeEszTTNROTFKbmMvRXRvQ1A5ZnZReHlpMXd5b2tMQk5zdXBrOXcKLWJwN092VmlKNGxOWm5tNWFrbVhpaUQ4TWxCbWozZVhvblpVVDdTbmJxM0FTM0ZyS2F4ZXJVb0pVc1FJREFRQUIKLW8wMHdTekFKQmdOVkhSTUVBakFBTUIwR0ExVWREZ1FXQkJRZmROWS9LY0YwZEVVN0JSSXNQYWk5UTFrQ3BqQWYKLUJnTlZIU01FR0RBV2dCUzBXdVNsczk3U1V2YTUxYWFWRCtzK3ZNZjkvekFOQmdrcWhraUc5dzBCQVFVRkFBT0MKLUFRRUFmMms1T2lPUnA2MGdCTnFpb0MybUlxU1hBMENVL3F6bGx0OEl2bGNNdjFWMFBBUDlmNElFbTVtZGtFUnIKLVVYam5CMVRyM2VkcnN2WExnWjl2RW9zYkZwTk1zS2ZzbUJrcGpnV0cydWk4cGRuOGNKaXdzNGs0aDVmdXVlU3cKLVBzMUZMSzVUZnBpK0dKeVBxazRoYTlPanAycDlvcHVBMGFJZkx1eEkrMFV6WEg0d2dyRVcvWXlkb3d2OTU5Z2YKLWdHU2w3NjZDUmRVdkpiWE9lVnJ5RmpGVFJmTEZGTmZUdnJmdFprMWRsOHRhczFuaW04eGZXZXQrQlpWdnEyelkKLUM3TGVDSTlucmZ1QXhmTUpUcldGcDE3eTcyK2hDRGs3TkVhQjJaTFZ1QU0vcmk3TFdycjJWMmhMRmRJQWhmQzIKLW5VYXVsUlJwR3QvWlRJU3c2dVNJdW1Ob05BPT0KLS0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KZGlmZiAtLWdpdCBhL3Rlc3RzL2RhdGFfZmlsZXMvc2VydmVyMS5jcnQub3BlbnNzbC52M19leHQgYi90ZXN0cy9kYXRhX2ZpbGVzL3NlcnZlcjEuY3J0Lm9wZW5zc2wudjNfZXh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyMzlkNTZhLi4wMDAwMDAwCi0tLSBhL3Rlc3RzL2RhdGFfZmlsZXMvc2VydmVyMS5jcnQub3BlbnNzbC52M19leHQKKysrIC9kZXYvbnVsbApAQCAtMSw0ICswLDAgQEAKLVt2M19leHRdCi1iYXNpY0NvbnN0cmFpbnRzID0gQ0E6ZmFsc2UKLXN1YmplY3RLZXlJZGVudGlmaWVyPWhhc2gKLWF1dGhvcml0eUtleUlkZW50aWZpZXI9a2V5aWQKZGlmZiAtLWdpdCBhL3Rlc3RzL2RhdGFfZmlsZXMvc2VydmVyMS5jc3IgYi90ZXN0cy9kYXRhX2ZpbGVzL3NlcnZlcjEuY3NyCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4MDRjNGE1Li4wMDAwMDAwCi0tLSBhL3Rlc3RzL2RhdGFfZmlsZXMvc2VydmVyMS5jc3IKKysrIC9kZXYvbnVsbApAQCAtMSwxNiArMCwwIEBACi0tLS0tLUJFR0lOIENFUlRJRklDQVRFIFJFUVVFU1QtLS0tLQotTUlJQ2dUQ0NBV2tDQVFBd1BERUxNQWtHQTFVRUJoTUNUa3d4RVRBUEJnTlZCQW9UQ0ZCdmJHRnlVMU5NTVJvdwotR0FZRFZRUURFeEZRYjJ4aGNsTlRUQ0JUWlhKMlpYSWdNVENDQVNJd0RRWUpLb1pJaHZjTkFRRUJCUUFEZ2dFUAotQURDQ0FRb0NnZ0VCQUtrQ0h6MUFhdFZWVTR2OU51NkNaUzRWWVY2SnY3am9SWkRiN29nV1V0UHhRMUJIbGhKWgotWklkci9TdmdSdmx6dnQzUGt1R1JXKzFtb0crSktYbEZnTkNEYXRWQlEzZGZPWHdKQkVlQ3NGYzVjTzJqN0JVWgotSHFnekNFZkJCVUtwL1V6RHROL2RCaDlORUZGQVozTVREMEQ0YllFbFh3cXhVOFl3ZmhVNXJQbGE3bitTbnFZRgotVytjVGw0VzFJNUxaMUNRRzFRa2xpWFVIM2FZYWp6OEpHYjZ0WlN4azY1V2IzUDVCWGhlbTJteGJhY3dDdWhRcwotRmlTY1N0ek4wUGRTWjNQeExhQWovWDcwTWNvdGNNcUpDd1RiTHFaUGNHNmV6cjFZaWVKVFdaNXVXcEpsNG9nLwotREpRWm85M2w2SjJWRSswcDI2dHdFdHhheW1zWHExS0NWTEVDQXdFQUFhQUFNQTBHQ1NxR1NJYjNEUUVCQ3dVQQotQTRJQkFRQlkvMW5uWVEzVGhWeWVaYjFaMndMWW9IWjVyZmVKQ2VkeVA3Ti9nakpaamhyTWJ3aW9VZnQydUhwYgotK09aUWZ4UlhKVGJ0ai8xd3BSTUNvVU1MV3phcFM3L3hHeDNJam9QdGw0MmFNNE0reFZZdmJMakV4TDEza1VBcgotZUU0SldjTUliVEVQb2wyelNkWC9MdUIrbTI3akVwNVZzdk0ydHk5cU93L1Q0aUt3akZTZTZwY1laMnNwa3MxOQotM2x0Z2puYWFtd3FLY045elVBM0lFUlRzV2pyNWV4S1lnZlhtMk9lZXVTUDB0SHI3RGgrdy8yWEE5ZEdjTGhybQotVEE0UDhRaklnU0RseXptaFlZbXNyaW9GUHVDZmRpMXV6czhieG1iTFhiaUNHWjhURE15NW9McUxvMUsrajJwRgotb3grQVRIS3hRL1hwUlFQKzJPVGI5c3cxa001OQotLS0tLS1FTkQgQ0VSVElGSUNBVEUgUkVRVUVTVC0tLS0tCmRpZmYgLS1naXQgYS90ZXN0cy9kYXRhX2ZpbGVzL3NlcnZlcjEuZGVyIGIvdGVzdHMvZGF0YV9maWxlcy9zZXJ2ZXIxLmRlcgpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZmNmNDVjZC4uMDAwMDAwMAotLS0gYS90ZXN0cy9kYXRhX2ZpbGVzL3NlcnZlcjEuZGVyCisrKyAvZGV2L251bGwKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvdGVzdHMvZGF0YV9maWxlcy9zZXJ2ZXIxLmhhc2hzeW1ib2wuY3J0IGIvdGVzdHMvZGF0YV9maWxlcy9zZXJ2ZXIxLmhhc2hzeW1ib2wuY3J0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5ZGI3MzAwLi4wMDAwMDAwCi0tLSBhL3Rlc3RzL2RhdGFfZmlsZXMvc2VydmVyMS5oYXNoc3ltYm9sLmNydAorKysgL2Rldi9udWxsCkBAIC0xLDIwICswLDAgQEAKLS0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQotTUlJRFFEQ0NBaWlnQXdJQkFnSUJBVEFOQmdrcWhraUc5dzBCQVFVRkFEQTdNUXN3Q1FZRFZRUUdFd0pPVERFUgotTUE4R0ExVUVDZ3dJVUc5c1lYSlRVMHd4R1RBWEJnTlZCQU1NRUZCdmJHRnlVMU5NSUZSbGMzUWdRMEV3SGhjTgotTVRrd01qRXdNVFEwTkRBMldoY05Namt3TWpFd01UUTBOREEyV2pBOU1Rc3dDUVlEVlFRR0V3Sk9UREVTTUJBRwotQTFVRUNnd0pJMUJ2YkdGeVUxTk1NUm93R0FZRFZRUUREQkZRYjJ4aGNsTlRUQ0JUWlhKMlpYSWdNVENDQVNJdwotRFFZSktvWklodmNOQVFFQkJRQURnZ0VQQURDQ0FRb0NnZ0VCQUtrQ0h6MUFhdFZWVTR2OU51NkNaUzRWWVY2Sgotdjdqb1JaRGI3b2dXVXRQeFExQkhsaEpaWklkci9TdmdSdmx6dnQzUGt1R1JXKzFtb0crSktYbEZnTkNEYXRWQgotUTNkZk9Yd0pCRWVDc0ZjNWNPMmo3QlVaSHFnekNFZkJCVUtwL1V6RHROL2RCaDlORUZGQVozTVREMEQ0YllFbAotWHdxeFU4WXdmaFU1clBsYTduK1NucVlGVytjVGw0VzFJNUxaMUNRRzFRa2xpWFVIM2FZYWp6OEpHYjZ0WlN4awotNjVXYjNQNUJYaGVtMm14YmFjd0N1aFFzRmlTY1N0ek4wUGRTWjNQeExhQWovWDcwTWNvdGNNcUpDd1RiTHFaUAotY0c2ZXpyMVlpZUpUV1o1dVdwSmw0b2cvREpRWm85M2w2SjJWRSswcDI2dHdFdHhheW1zWHExS0NWTEVDQXdFQQotQWFOTk1Fc3dDUVlEVlIwVEJBSXdBREFkQmdOVkhRNEVGZ1FVSDNUV1B5bkJkSFJGT3dVU0xEMm92VU5aQXFZdwotSHdZRFZSMGpCQmd3Rm9BVXRGcmtwYlBlMGxMMnVkV21sUS9yUHJ6SC9mOHdEUVlKS29aSWh2Y05BUUVGQlFBRAotZ2dFQkFKY0tjdi9Ycm82MVN4bTBHSDQycFl1N0F2dEQyYjhueW52QThCVzlnQ0htaUlIdkhRV05POU5UTXVubwotMStIZHpRVkYxSnhIQy9BL2h2WHNjenhHRWMzalZuVmVnMWZ3aThtWi9GeTFYdEFWQ1RBMHlKdTdKVGFhWWJnKwotSVUyeTdOdTM2RlNPenRMcE9mSEdtd1ZEb0oxK3dDekcvaWQ2NGhYd0pSckh2VWZHSzRFdklzVjk3c3doazJEbwotelNBZkRBOU4rUU5WNHplaUY5bUxNT3BVaENVQnE4cjQxRURxbTlsTTB3U2QzSE5lbjhqd08yMEY0RjFiMWRZbQotTCtiTWFydlVnSHE5MWYxMjhtMmZGM3NXTm56NFJHb2FnU0kvYU9VL0FQNktzcThTVXJ1R0hwcXJWV0xDbEE2bgotRXl5VFBsTlR3WUlSQ3lkWnQ3emxzdzEvNGg0PQotLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQpkaWZmIC0tZ2l0IGEvdGVzdHMvZGF0YV9maWxlcy9zZXJ2ZXIxLmtleSBiL3Rlc3RzL2RhdGFfZmlsZXMvc2VydmVyMS5rZXkKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDQyODFhNWYuLjAwMDAwMDAKLS0tIGEvdGVzdHMvZGF0YV9maWxlcy9zZXJ2ZXIxLmtleQorKysgL2Rldi9udWxsCkBAIC0xLDI3ICswLDAgQEAKLS0tLS0tQkVHSU4gUlNBIFBSSVZBVEUgS0VZLS0tLS0KLU1JSUVvZ0lCQUFLQ0FRRUFxUUlmUFVCcTFWVlRpLzAyN29KbExoVmhYb20vdU9oRmtOdnVpQlpTMC9GRFVFZVcKLUVsbGtoMnY5SytCRytYTyszYytTNFpGYjdXYWdiNGtwZVVXQTBJTnExVUZEZDE4NWZBa0VSNEt3VnpsdzdhUHMKLUZSa2VxRE1JUjhFRlFxbjlUTU8wMzkwR0gwMFFVVUJuY3hNUFFQaHRnU1ZmQ3JGVHhqQitGVG1zK1ZydWY1S2UKLXBnVmI1eE9YaGJVamt0blVKQWJWQ1NXSmRRZmRwaHFQUHdrWnZxMWxMR1RybFp2Yy9rRmVGNmJhYkZ0cHpBSzYKLUZDd1dKSnhLM00zUTkxSm5jL0V0b0NQOWZ2UXh5aTF3eW9rTEJOc3Vwazl3YnA3T3ZWaUo0bE5abm01YWttWGkKLWlEOE1sQm1qM2VYb25aVVQ3U25icTNBUzNGcktheGVyVW9KVXNRSURBUUFCQW9JQkFCYUo5ZWlSUXE0WXB2K3cKLVVUY1ZwTEMwb1R1ZVd6Y3BvcjFpMXpqRzRWenFlL09rMkZxeUdUb0dLTWxGSzdId3dhK0xFeWVKM3h5VjV5ZDQKLXYxTXc5YkRaRmRKQzFlQ0Jqb1VBSHRYNms5SE9FMFZkNndvVlE0Vmk2T1BJMWc3QjVNbnIvNThyTnJuTjZUTXMKLXg1OE5GNmV1ZWN3VFU4MTFRSnJadExiWDdqMkNyMjh5QjJWczhxeVlsSHdWdzVqYkRPdjQzRDd2VTVnbWxJRE4KLTBKUVJ1V0FuT3VQelpOb0pyNFNmSktxSE5HeFlZWTZwSFoxczBkT1RMSURiL0I4S1FXYXBBMmtSbVp5aWQyRUgKLW53emdMYkFzSEpDZitiUW5oWGpYdXh0VXNyY0lMOG5vWkxhemxPTXh3TkVhbW1nbFZXVzIzVWQvUVJuRmdKZzUKLVVnY0FjUkVDZ1lFQTE5dVlldGh0NXFtd2RKKzEyb0M2emVPK3ZYTGN5RDlnb24yM1Q1SjZ3MllUaGxkNy9PVzAKLW9BclFKR2drQWRhcTBwY1R5T0lqdFRRVk1GeWdkVm1DRUpteGgvM1J1dFBjVGV5ZHFXOWZwaEtETWVqMzJKOGUKLUduaUdtTkdpY2xiY2ZOT1M4RTVUR3A0NDV5WmI5UDErN0FIbmcxNmJHZzNZa2o1RUE0RytIQ2NDZ1lFQXlIQWwKLS8vZWtrOFlqUUVsbSs4aXpMdEZreW1JSzBhQ3RFZTlDL1JJUmhGWUJlRmFvdEM1ZFN0TmhCT25jbjRvdk1BUEQKLWxYLzkyeURpOU9QOFBQTE4zYTRCOVhwVzNrL1NTNUdyYlQ1Y3dPaXZCSE5sbFpTbXUvMnF6NVdQR2NqVkNPckIKLUxZbDNZV3IyaDNFR0tJQ1QwM2tFb1RraURCdkNlT3BXN2NDR2wyY0NnWUJENXdob1hIejErcHRQbEk0WVZqWnQKLVhoODZhVSthanBWUGlFeUo4NEk2eFhtTzRTWlh2OHE2TGF5Y1IwWk1iY0wrekJlbE1iNFoybkJ2N2pOcnR1UjcKLVpGMjhjZFB2K1lWcjNlc2F5YlpFLzczVmpYdXA0U1FQSDZyM2w3cUtUVmkreTYrRmVKNGIyWG44L013Z25UMjMKLThFRnJ5ZTd3bXpwdGhyak9nWm5VTVFLQmdFOUxoc3ovNUowTmlzNlkrMlBxbjNDTEtFdWtnOUV3dHFkY3QyeTAKLTVEY3RhMEYzVHlDUkl4bENES1RML0JzbHFNdGZBZFk0SDI2OFVPMCs4SUFRTW45Ym9xekJySElncy9wdmM1a3gKLVRiS0htdzJ3dFdSNnZZZXJzQktWZ1ZwYkNHU1Jzc0RZSEdGdTFuNzRxTTRISi9SR2NSMXpJOVFVZTFnb3BTRkQKLXhEdExBb0dBVkFkV3ZycUR3Z29MMmhIVzNzY0dweGRFL3lnSkRPd0huZisxQjlnb0tBT1A1bGYyRkphaUF4ZjMKLWVjdG9QT2daYkNtbS9paURtaWd1NzAzbGQzTytWb0NMREQ0cXgzUitLeUFMTDc4Z3RWSll6U1JpS2h6Z0NaM2cKLW1Lc0lWUkJxNElmd2l3eU1ORzJCWVpRQXdiU0RqalB0bi9rUEJkdVB6UGo3ZXJpQnloST0KLS0tLS0tRU5EIFJTQSBQUklWQVRFIEtFWS0tLS0tCmRpZmYgLS1naXQgYS90ZXN0cy9kYXRhX2ZpbGVzL3NlcnZlcjEua2V5LmRlciBiL3Rlc3RzL2RhdGFfZmlsZXMvc2VydmVyMS5rZXkuZGVyCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4ODI4OGQxLi4wMDAwMDAwCi0tLSBhL3Rlc3RzL2RhdGFfZmlsZXMvc2VydmVyMS5rZXkuZGVyCisrKyAvZGV2L251bGwKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvdGVzdHMvZGF0YV9maWxlcy9zZXJ2ZXIxLmtleV9leHRfdXNhZ2UuY3J0IGIvdGVzdHMvZGF0YV9maWxlcy9zZXJ2ZXIxLmtleV9leHRfdXNhZ2UuY3J0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiYmUyYzM1Li4wMDAwMDAwCi0tLSBhL3Rlc3RzL2RhdGFfZmlsZXMvc2VydmVyMS5rZXlfZXh0X3VzYWdlLmNydAorKysgL2Rldi9udWxsCkBAIC0xLDIwICswLDAgQEAKLS0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQotTUlJRFZ6Q0NBaitnQXdJQkFnSUJBVEFOQmdrcWhraUc5dzBCQVFVRkFEQTdNUXN3Q1FZRFZRUUdFd0pPVERFUgotTUE4R0ExVUVDZ3dJVUc5c1lYSlRVMHd4R1RBWEJnTlZCQU1NRUZCdmJHRnlVMU5NSUZSbGMzUWdRMEV3SGhjTgotTVRFd01qRXlNVFEwTkRBMldoY05NakV3TWpFeU1UUTBOREEyV2pBOE1Rc3dDUVlEVlFRR0V3Sk9UREVSTUE4RwotQTFVRUNnd0lVRzlzWVhKVFUwd3hHakFZQmdOVkJBTU1FVkJ2YkdGeVUxTk1JRk5sY25abGNpQXhNSUlCSWpBTgotQmdrcWhraUc5dzBCQVFFRkFBT0NBUThBTUlJQkNnS0NBUUVBcVFJZlBVQnExVlZUaS8wMjdvSmxMaFZoWG9tLwotdU9oRmtOdnVpQlpTMC9GRFVFZVdFbGxraDJ2OUsrQkcrWE8rM2MrUzRaRmI3V2FnYjRrcGVVV0EwSU5xMVVGRAotZDE4NWZBa0VSNEt3VnpsdzdhUHNGUmtlcURNSVI4RUZRcW45VE1PMDM5MEdIMDBRVVVCbmN4TVBRUGh0Z1NWZgotQ3JGVHhqQitGVG1zK1ZydWY1S2VwZ1ZiNXhPWGhiVWprdG5VSkFiVkNTV0pkUWZkcGhxUFB3a1p2cTFsTEdUcgotbFp2Yy9rRmVGNmJhYkZ0cHpBSzZGQ3dXSkp4SzNNM1E5MUpuYy9FdG9DUDlmdlF4eWkxd3lva0xCTnN1cGs5dwotYnA3T3ZWaUo0bE5abm01YWttWGlpRDhNbEJtajNlWG9uWlVUN1NuYnEzQVMzRnJLYXhlclVvSlVzUUlEQVFBQgotbzJVd1l6QUpCZ05WSFJNRUFqQUFNQjBHQTFVZERnUVdCQlFmZE5ZL0tjRjBkRVU3QlJJc1BhaTlRMWtDcGpBZgotQmdOVkhTTUVHREFXZ0JTMFd1U2xzOTdTVXZhNTFhYVZEK3Mrdk1mOS96QVdCZ05WSFNVQkFmOEVEREFLQmdncgotQmdFRkJRY0RBVEFOQmdrcWhraUc5dzBCQVFVRkFBT0NBUUVBZWd0Q040RU9iRTY5UmpXMWhLVUVRL0lucklzZgotcG9LSWdKQ2gzc2NrK0ZZS2pjc01oUlBCenRuWmFxanZrTG5tQ2NxMFl2N3VVRFRoSHNOdXUrTmJlVnI0ZmxaTAotZ1VvU1NkSFhZcko4cURZZXo2b0dveHR0b1ozM3NxRDNMUWZ6V1poRG9UeWpHVUhUaVdhQTZLaWRDc1d6a2hLWQotYU5YRjdPOGRITzdrMDZJMlVXdDdTS2JCbTFkUGo4T000Mjg1a2tRN0tDcEcyN0FCdEhlUGtwOWFHNjZPL2t0RAotR2JaczBBYVlwZVZuQjl2MXZTcDZ4SW5EQ1d5ZERGYm1FRTBtekFRcjI4NVVVMDdRRXBuVTFXLzJxWkhmTHhuUQotR2lEcFI1cHhvS1hrc2tqMlZ1SFBaUHFiSWt2OXYyK2JqZXlYSERSU0w3UmowODd4aEQ1dVhLYjlmdz09Ci0tLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCmRpZmYgLS1naXQgYS90ZXN0cy9kYXRhX2ZpbGVzL3NlcnZlcjEua2V5X2V4dF91c2FnZXMuY3J0IGIvdGVzdHMvZGF0YV9maWxlcy9zZXJ2ZXIxLmtleV9leHRfdXNhZ2VzLmNydApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMGMzZDk2My4uMDAwMDAwMAotLS0gYS90ZXN0cy9kYXRhX2ZpbGVzL3NlcnZlcjEua2V5X2V4dF91c2FnZXMuY3J0CisrKyAvZGV2L251bGwKQEAgLTEsMjEgKzAsMCBAQAotLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCi1NSUlEWVRDQ0FrbWdBd0lCQWdJQkFUQU5CZ2txaGtpRzl3MEJBUVVGQURBN01Rc3dDUVlEVlFRR0V3Sk9UREVSCi1NQThHQTFVRUNnd0lVRzlzWVhKVFUwd3hHVEFYQmdOVkJBTU1FRkJ2YkdGeVUxTk1JRlJsYzNRZ1EwRXdIaGNOCi1NVEV3TWpFeU1UUTBOREEyV2hjTk1qRXdNakV5TVRRME5EQTJXakE4TVFzd0NRWURWUVFHRXdKT1RERVJNQThHCi1BMVVFQ2d3SVVHOXNZWEpUVTB3eEdqQVlCZ05WQkFNTUVWQnZiR0Z5VTFOTUlGTmxjblpsY2lBeE1JSUJJakFOCi1CZ2txaGtpRzl3MEJBUUVGQUFPQ0FROEFNSUlCQ2dLQ0FRRUFxUUlmUFVCcTFWVlRpLzAyN29KbExoVmhYb20vCi11T2hGa052dWlCWlMwL0ZEVUVlV0VsbGtoMnY5SytCRytYTyszYytTNFpGYjdXYWdiNGtwZVVXQTBJTnExVUZECi1kMTg1ZkFrRVI0S3dWemx3N2FQc0ZSa2VxRE1JUjhFRlFxbjlUTU8wMzkwR0gwMFFVVUJuY3hNUFFQaHRnU1ZmCi1DckZUeGpCK0ZUbXMrVnJ1ZjVLZXBnVmI1eE9YaGJVamt0blVKQWJWQ1NXSmRRZmRwaHFQUHdrWnZxMWxMR1RyCi1sWnZjL2tGZUY2YmFiRnRwekFLNkZDd1dKSnhLM00zUTkxSm5jL0V0b0NQOWZ2UXh5aTF3eW9rTEJOc3Vwazl3Ci1icDdPdlZpSjRsTlpubTVha21YaWlEOE1sQm1qM2VYb25aVVQ3U25icTNBUzNGcktheGVyVW9KVXNRSURBUUFCCi1vMjh3YlRBSkJnTlZIUk1FQWpBQU1CMEdBMVVkRGdRV0JCUWZkTlkvS2NGMGRFVTdCUklzUGFpOVExa0NwakFmCi1CZ05WSFNNRUdEQVdnQlMwV3VTbHM5N1NVdmE1MWFhVkQrcyt2TWY5L3pBZ0JnTlZIU1VCQWY4RUZqQVVCZ2dyCi1CZ0VGQlFjREF3WUlLd1lCQlFVSEF3Z3dEUVlKS29aSWh2Y05BUUVGQlFBRGdnRUJBRElUOU0xMHZUNXl6TVNSCi1HYWFJbVhqeVRSSUJLNjgzVnhucTVqcUFKNzVLek5VQzUyYWlDT2ZkOS9oQU1rcTNQaityNnRJc0granNsNVBMCi1FNGl2OEdWRGxiakE1N2ljVEQzMFhib2xMNFlQVXZaWWNseFZvcGZSaFRpRGE1S0oxbFlrVXdXQUUvR2xqNjZRCi1XTzdIaWhsK0dZWGFwMmU3ZEJaN2hHSGR2NkoxZ1JmQTFPVzZpQjIzV2w0eGIwWTFDR2MxNnlKWnd1RmJ0YndNCi13OHo4YTBYTmQyVVFUWWVzWWxJdlZwVmN4MmF0Z2tiWndlaFBXR05DTEduZ3o2MGZ1bHRqN0pkTHVVSGkrcjB6Ci1EdGpiU1BzSERaREFlcjZaeGphQTRoa2NucHBhY0Z0dEMrZGVEOGJROCsySmpIRjZHYi9NQm5hWUliT1pPQmdDCi04Q1BJQmprPQotLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQpkaWZmIC0tZ2l0IGEvdGVzdHMvZGF0YV9maWxlcy9zZXJ2ZXIxLmtleV91c2FnZS5jcnQgYi90ZXN0cy9kYXRhX2ZpbGVzL3NlcnZlcjEua2V5X3VzYWdlLmNydApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOWQ3MGIwMC4uMDAwMDAwMAotLS0gYS90ZXN0cy9kYXRhX2ZpbGVzL3NlcnZlcjEua2V5X3VzYWdlLmNydAorKysgL2Rldi9udWxsCkBAIC0xLDIwICswLDAgQEAKLS0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQotTUlJRFR6Q0NBamVnQXdJQkFnSUJBVEFOQmdrcWhraUc5dzBCQVFVRkFEQTdNUXN3Q1FZRFZRUUdFd0pPVERFUgotTUE4R0ExVUVDZ3dJVUc5c1lYSlRVMHd4R1RBWEJnTlZCQU1NRUZCdmJHRnlVMU5NSUZSbGMzUWdRMEV3SGhjTgotTVRrd01qRXdNVFEwTkRBMldoY05Namt3TWpFd01UUTBOREEyV2pBOE1Rc3dDUVlEVlFRR0V3Sk9UREVSTUE4RwotQTFVRUNnd0lVRzlzWVhKVFUwd3hHakFZQmdOVkJBTU1FVkJ2YkdGeVUxTk1JRk5sY25abGNpQXhNSUlCSWpBTgotQmdrcWhraUc5dzBCQVFFRkFBT0NBUThBTUlJQkNnS0NBUUVBcVFJZlBVQnExVlZUaS8wMjdvSmxMaFZoWG9tLwotdU9oRmtOdnVpQlpTMC9GRFVFZVdFbGxraDJ2OUsrQkcrWE8rM2MrUzRaRmI3V2FnYjRrcGVVV0EwSU5xMVVGRAotZDE4NWZBa0VSNEt3VnpsdzdhUHNGUmtlcURNSVI4RUZRcW45VE1PMDM5MEdIMDBRVVVCbmN4TVBRUGh0Z1NWZgotQ3JGVHhqQitGVG1zK1ZydWY1S2VwZ1ZiNXhPWGhiVWprdG5VSkFiVkNTV0pkUWZkcGhxUFB3a1p2cTFsTEdUcgotbFp2Yy9rRmVGNmJhYkZ0cHpBSzZGQ3dXSkp4SzNNM1E5MUpuYy9FdG9DUDlmdlF4eWkxd3lva0xCTnN1cGs5dwotYnA3T3ZWaUo0bE5abm01YWttWGlpRDhNbEJtajNlWG9uWlVUN1NuYnEzQVMzRnJLYXhlclVvSlVzUUlEQVFBQgotbzEwd1d6QUpCZ05WSFJNRUFqQUFNQjBHQTFVZERnUVdCQlFmZE5ZL0tjRjBkRVU3QlJJc1BhaTlRMWtDcGpBZgotQmdOVkhTTUVHREFXZ0JTMFd1U2xzOTdTVXZhNTFhYVZEK3Mrdk1mOS96QU9CZ05WSFE4QkFmOEVCQU1DQmVBdwotRFFZSktvWklodmNOQVFFRkJRQURnZ0VCQUhNOGVFU21FOENRdnVDdzIvdzFKU1dLYVU5Y0pJdnJ0cEpYYXZSQwoteU1FdjZTUUwwaHhyTlpCaEZQTTh2QWlxNnpCZGljMkh3dWlaOU4vaUVYdUNmOTJTT2NLNGIvMi9GbG9zMEpJNQotcXV1NGVHa3dvTnJPdmZaVWNPN1NCOEpIVXZtSnRUUCthdkYzUWVSZkhvOWJIUnRueU9zOUdYcXErQ01aaU5nTwotQncrL3RBT21sM3RWMVVmK3lqcDZYcm9XTFJOTWJ2WTFTb3I0VVc2RkZNcE9paS92bEo0NDUwT2xwY0pkUlU3MAotTHBIZnhqbVBOdmM5WU9QV3ZlNzUvK0NORjlsTWkyOVVvRVVZc2x4TVB5bFovTDB2WXhpK3h1dlFCVGFMaVplUAotQ0o1OU1jNjNMRW1KTlNBd25uVjhzMktYTC9Pa20zMmxmNnN5MGZqc3J2QWRvQ2M9Ci0tLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCmRpZmYgLS1naXQgYS90ZXN0cy9kYXRhX2ZpbGVzL3NlcnZlcjEua2V5X3VzYWdlLmNydC5vcGVuc3NsLnYzX2V4dCBiL3Rlc3RzL2RhdGFfZmlsZXMvc2VydmVyMS5rZXlfdXNhZ2UuY3J0Lm9wZW5zc2wudjNfZXh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlMjU1MDI3Li4wMDAwMDAwCi0tLSBhL3Rlc3RzL2RhdGFfZmlsZXMvc2VydmVyMS5rZXlfdXNhZ2UuY3J0Lm9wZW5zc2wudjNfZXh0CisrKyAvZGV2L251bGwKQEAgLTEsNSArMCwwIEBACi1bdjNfZXh0XQotYmFzaWNDb25zdHJhaW50cyA9IENBOmZhbHNlCi1zdWJqZWN0S2V5SWRlbnRpZmllcj1oYXNoCi1hdXRob3JpdHlLZXlJZGVudGlmaWVyPWtleWlkCi1rZXlVc2FnZT1jcml0aWNhbCwgZGlnaXRhbFNpZ25hdHVyZSwgbm9uUmVwdWRpYXRpb24sIGtleUVuY2lwaGVybWVudApkaWZmIC0tZ2l0IGEvdGVzdHMvZGF0YV9maWxlcy9zZXJ2ZXIxLmtleV91c2FnZV9ub2F1dGhpZC5jcnQgYi90ZXN0cy9kYXRhX2ZpbGVzL3NlcnZlcjEua2V5X3VzYWdlX25vYXV0aGlkLmNydApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYjJkNWQ4My4uMDAwMDAwMAotLS0gYS90ZXN0cy9kYXRhX2ZpbGVzL3NlcnZlcjEua2V5X3VzYWdlX25vYXV0aGlkLmNydAorKysgL2Rldi9udWxsCkBAIC0xLDIwICswLDAgQEAKLS0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQotTUlJRExqQ0NBaGFnQXdJQkFnSUJBVEFOQmdrcWhraUc5dzBCQVFVRkFEQTdNUXN3Q1FZRFZRUUdFd0pPVERFUgotTUE4R0ExVUVDZ3dJVUc5c1lYSlRVMHd4R1RBWEJnTlZCQU1NRUZCdmJHRnlVMU5NSUZSbGMzUWdRMEV3SGhjTgotTVRrd01qRXdNVFEwTkRBMldoY05Namt3TWpFd01UUTBOREEyV2pBOE1Rc3dDUVlEVlFRR0V3Sk9UREVSTUE4RwotQTFVRUNnd0lVRzlzWVhKVFUwd3hHakFZQmdOVkJBTU1FVkJ2YkdGeVUxTk1JRk5sY25abGNpQXhNSUlCSWpBTgotQmdrcWhraUc5dzBCQVFFRkFBT0NBUThBTUlJQkNnS0NBUUVBcVFJZlBVQnExVlZUaS8wMjdvSmxMaFZoWG9tLwotdU9oRmtOdnVpQlpTMC9GRFVFZVdFbGxraDJ2OUsrQkcrWE8rM2MrUzRaRmI3V2FnYjRrcGVVV0EwSU5xMVVGRAotZDE4NWZBa0VSNEt3VnpsdzdhUHNGUmtlcURNSVI4RUZRcW45VE1PMDM5MEdIMDBRVVVCbmN4TVBRUGh0Z1NWZgotQ3JGVHhqQitGVG1zK1ZydWY1S2VwZ1ZiNXhPWGhiVWprdG5VSkFiVkNTV0pkUWZkcGhxUFB3a1p2cTFsTEdUcgotbFp2Yy9rRmVGNmJhYkZ0cHpBSzZGQ3dXSkp4SzNNM1E5MUpuYy9FdG9DUDlmdlF4eWkxd3lva0xCTnN1cGs5dwotYnA3T3ZWaUo0bE5abm01YWttWGlpRDhNbEJtajNlWG9uWlVUN1NuYnEzQVMzRnJLYXhlclVvSlVzUUlEQVFBQgotb3p3d09qQUpCZ05WSFJNRUFqQUFNQjBHQTFVZERnUVdCQlFmZE5ZL0tjRjBkRVU3QlJJc1BhaTlRMWtDcGpBTwotQmdOVkhROEJBZjhFQkFNQ0JlQXdEUVlKS29aSWh2Y05BUUVGQlFBRGdnRUJBSlZZY0JvTmlYQkxPWTUzc0pjSAotMVgwb1FBL0tNVk9ESlAxK3JyL2U2U3V5Uk9WZ3FVZkZBLzdIbjVldmI5NEZ0eGxiMGQ4dU9scG9IV3R5YVJWdwotSlIzdEtDR2l5aVN6QVM1dFhpaW9PWXQ2ZkxEZzlCMm1wdkZxYTlJU3FzdnpiUjNhTmovOHVNN25pL2FTeGpoZgotTDQwU3ZDSGJBc041TjA4N0s1NXdpcVV2a0pGczJJZmw5SXFDWWpqcTMyV3Vyb2k4bG5QWFNZMUxUUTNEWnFkagoteW9nWCtIV2orUHNkK1U4Qkx5Rm5mdXFLZVEwVTJ4cEppRk1iZEcrSWt6UFlqK0lqTlpvNityY0swTFFrRWNabQotbDRvUWFERWFYaSs3U3FOYmRwQko1SzNaclNOTmR0OHBjMXhodWUyWFhNRkxFcU85NEVSVHdueGlUZzlUR1JaMAotdTJVPQotLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQpkaWZmIC0tZ2l0IGEvdGVzdHMvZGF0YV9maWxlcy9zZXJ2ZXIxLmxvbmdfc2VyaWFsLmNydCBiL3Rlc3RzL2RhdGFfZmlsZXMvc2VydmVyMS5sb25nX3NlcmlhbC5jcnQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDFiZDY5NTUuLjAwMDAwMDAKLS0tIGEvdGVzdHMvZGF0YV9maWxlcy9zZXJ2ZXIxLmxvbmdfc2VyaWFsLmNydAorKysgL2Rldi9udWxsCkBAIC0xLDIwICswLDAgQEAKLS0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQotTUlJRFVqQ0NBanFnQXdJQkFnSVVFU0l6UkZWbWQ0aVpxcnZNM2U3L0FCRWlNMFF3RFFZSktvWklodmNOQVFFRgotQlFBd096RUxNQWtHQTFVRUJoTUNUa3d4RVRBUEJnTlZCQW9NQ0ZCdmJHRnlVMU5NTVJrd0Z3WURWUVFEREJCUQotYjJ4aGNsTlRUQ0JVWlhOMElFTkJNQjRYRFRFNU1ESXhNREUwTkRRd05sb1hEVEk1TURJeE1ERTBORFF3TmxvdwotUERFTE1Ba0dBMVVFQmhNQ1Rrd3hFVEFQQmdOVkJBb01DRkJ2YkdGeVUxTk1NUm93R0FZRFZRUUREQkZRYjJ4aAotY2xOVFRDQlRaWEoyWlhJZ01UQ0NBU0l3RFFZSktvWklodmNOQVFFQkJRQURnZ0VQQURDQ0FRb0NnZ0VCQUtrQwotSHoxQWF0VlZVNHY5TnU2Q1pTNFZZVjZKdjdqb1JaRGI3b2dXVXRQeFExQkhsaEpaWklkci9TdmdSdmx6dnQzUAota3VHUlcrMW1vRytKS1hsRmdOQ0RhdFZCUTNkZk9Yd0pCRWVDc0ZjNWNPMmo3QlVaSHFnekNFZkJCVUtwL1V6RAotdE4vZEJoOU5FRkZBWjNNVEQwRDRiWUVsWHdxeFU4WXdmaFU1clBsYTduK1NucVlGVytjVGw0VzFJNUxaMUNRRwotMVFrbGlYVUgzYVlhano4SkdiNnRaU3hrNjVXYjNQNUJYaGVtMm14YmFjd0N1aFFzRmlTY1N0ek4wUGRTWjNQeAotTGFBai9YNzBNY290Y01xSkN3VGJMcVpQY0c2ZXpyMVlpZUpUV1o1dVdwSmw0b2cvREpRWm85M2w2SjJWRSswcAotMjZ0d0V0eGF5bXNYcTFLQ1ZMRUNBd0VBQWFOTk1Fc3dDUVlEVlIwVEJBSXdBREFkQmdOVkhRNEVGZ1FVSDNUVwotUHluQmRIUkZPd1VTTEQyb3ZVTlpBcVl3SHdZRFZSMGpCQmd3Rm9BVXRGcmtwYlBlMGxMMnVkV21sUS9yUHJ6SAotL2Y4d0RRWUpLb1pJaHZjTkFRRUZCUUFEZ2dFQkFDOXF0NEJDOHpLYjVvMDBaVnRUWDBYWUtXY2hIS1lTckhrMgotcit6Zlc4cFJjU2FUR1JUdE1Ha0Y3dm96RnJDWDRQcjR2Q0tYT1lGS1EvVUVwV3Y1V3pXN25CMCtKYTBnNGduYwotOWJMdGc1MW4rSUlHOTNJVEdEbTUrOVlwc1g2SHNYU0JwZlkwdm85VHdLZzNiRzFYMjZXRzhqNm0rVjY4NGh3VgoteXZlUlVJclN2dmdWSk9CU2U1cmhuL3BMbWNwYkkwbmtQQkdscVBkMTBxV2MwUllTclNBYTNicS9kcG9xUjdoWQotQkdiYlYxLzlJZ0ZocjJyNDRSMTdiaHFldkszVmhLNEtPUFJUNVZNWGpUaDFpRzRMMTNsSXhCSXV1K0x3MFBjMAotcytnUVRHbnRBL3Naa2lqQzdtdzAvcTNuc1JES2hISFhURGYyZ2pkVWhNdkZ3WXptS0JJPQotLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQpkaWZmIC0tZ2l0IGEvdGVzdHMvZGF0YV9maWxlcy9zZXJ2ZXIxLmxvbmdfc2VyaWFsX0ZGLmNydCBiL3Rlc3RzL2RhdGFfZmlsZXMvc2VydmVyMS5sb25nX3NlcmlhbF9GRi5jcnQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDgwOTRmZDcuLjAwMDAwMDAKLS0tIGEvdGVzdHMvZGF0YV9maWxlcy9zZXJ2ZXIxLmxvbmdfc2VyaWFsX0ZGLmNydAorKysgL2Rldi9udWxsCkBAIC0xLDIwICswLDAgQEAKLS0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQotTUlJRFR6Q0NBamVnQXdJQkFnSVJBUC8vLy8vLy8vLy8vLy8vLy8vLy8vOHdEUVlKS29aSWh2Y05BUUVGQlFBdwotT3pFTE1Ba0dBMVVFQmhNQ1Rrd3hFVEFQQmdOVkJBb01DRkJ2YkdGeVUxTk1NUmt3RndZRFZRUUREQkJRYjJ4aAotY2xOVFRDQlVaWE4wSUVOQk1CNFhEVEU1TURJeE1ERTBORFF3TmxvWERUSTVNREl4TURFME5EUXdObG93UERFTAotTUFrR0ExVUVCaE1DVGt3eEVUQVBCZ05WQkFvTUNGQnZiR0Z5VTFOTU1Sb3dHQVlEVlFRRERCRlFiMnhoY2xOVAotVENCVFpYSjJaWElnTVRDQ0FTSXdEUVlKS29aSWh2Y05BUUVCQlFBRGdnRVBBRENDQVFvQ2dnRUJBS2tDSHoxQQotYXRWVlU0djlOdTZDWlM0VllWNkp2N2pvUlpEYjdvZ1dVdFB4UTFCSGxoSlpaSWRyL1N2Z1J2bHp2dDNQa3VHUgotVysxbW9HK0pLWGxGZ05DRGF0VkJRM2RmT1h3SkJFZUNzRmM1Y08yajdCVVpIcWd6Q0VmQkJVS3AvVXpEdE4vZAotQmg5TkVGRkFaM01URDBENGJZRWxYd3F4VThZd2ZoVTVyUGxhN24rU25xWUZXK2NUbDRXMUk1TFoxQ1FHMVFrbAotaVhVSDNhWWFqejhKR2I2dFpTeGs2NVdiM1A1QlhoZW0ybXhiYWN3Q3VoUXNGaVNjU3R6TjBQZFNaM1B4TGFBagotL1g3ME1jb3RjTXFKQ3dUYkxxWlBjRzZlenIxWWllSlRXWjV1V3BKbDRvZy9ESlFabzkzbDZKMlZFKzBwMjZ0dwotRXR4YXltc1hxMUtDVkxFQ0F3RUFBYU5OTUVzd0NRWURWUjBUQkFJd0FEQWRCZ05WSFE0RUZnUVVIM1RXUHluQgotZEhSRk93VVNMRDJvdlVOWkFxWXdId1lEVlIwakJCZ3dGb0FVdEZya3BiUGUwbEwydWRXbWxRL3JQcnpIL2Y4dwotRFFZSktvWklodmNOQVFFRkJRQURnZ0VCQURZZmhaVTJsV3hCYW10N20zQTRYUWo2Ylo0QlpsYWJ2NUliTEkzMgotbmVqNncvNi9nc1hQSTg1bmZacXBJbjZJWXdBZURSZEpvL2VVcVlrSWRveTVERVArNTBwZ0NHSks1SEFvQldWSgotVEhLZVZKbi92UEgzRHovQ2FDWVFvSFRtU2krQ2hmSWhQaDg0VVVkZlZwdjJxTkluSUk0UnhGbFNBSFVrUk1iVgotQlg2aW1NU0Q1TTUwOEc2dldHVVVjNkcvc3gvczd2dFZlR0dQeU5PUVBnd01UZXM2ME1ld3B1OUxLS2FTd2ZxUQotRGdFYThXenhQclBFeU9VaUlwN0Nsd2xYZTNKRUNISWptNDQ1cW1FTmdmWS84dGxzeUFkWUtTa290Zml1b1VXYgotZGF5bEQ2UVZVWG42N2xvWURQWkFMZ2hwRHhtU20yMVZFN2ZlVFdPVWJPcGUxNFU9Ci0tLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCmRpZmYgLS1naXQgYS90ZXN0cy9kYXRhX2ZpbGVzL3NlcnZlcjEubm9hdXRoaWQuY3J0IGIvdGVzdHMvZGF0YV9maWxlcy9zZXJ2ZXIxLm5vYXV0aGlkLmNydApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYmExOTVlYi4uMDAwMDAwMAotLS0gYS90ZXN0cy9kYXRhX2ZpbGVzL3NlcnZlcjEubm9hdXRoaWQuY3J0CisrKyAvZGV2L251bGwKQEAgLTEsMTkgKzAsMCBAQAotLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCi1NSUlESGpDQ0FnYWdBd0lCQWdJQkFUQU5CZ2txaGtpRzl3MEJBUVVGQURBN01Rc3dDUVlEVlFRR0V3Sk9UREVSCi1NQThHQTFVRUNnd0lVRzlzWVhKVFUwd3hHVEFYQmdOVkJBTU1FRkJ2YkdGeVUxTk1JRlJsYzNRZ1EwRXdIaGNOCi1NVGt3TWpFd01UUTBOREEyV2hjTk1qa3dNakV3TVRRME5EQTJXakE4TVFzd0NRWURWUVFHRXdKT1RERVJNQThHCi1BMVVFQ2d3SVVHOXNZWEpUVTB3eEdqQVlCZ05WQkFNTUVWQnZiR0Z5VTFOTUlGTmxjblpsY2lBeE1JSUJJakFOCi1CZ2txaGtpRzl3MEJBUUVGQUFPQ0FROEFNSUlCQ2dLQ0FRRUFxUUlmUFVCcTFWVlRpLzAyN29KbExoVmhYb20vCi11T2hGa052dWlCWlMwL0ZEVUVlV0VsbGtoMnY5SytCRytYTyszYytTNFpGYjdXYWdiNGtwZVVXQTBJTnExVUZECi1kMTg1ZkFrRVI0S3dWemx3N2FQc0ZSa2VxRE1JUjhFRlFxbjlUTU8wMzkwR0gwMFFVVUJuY3hNUFFQaHRnU1ZmCi1DckZUeGpCK0ZUbXMrVnJ1ZjVLZXBnVmI1eE9YaGJVamt0blVKQWJWQ1NXSmRRZmRwaHFQUHdrWnZxMWxMR1RyCi1sWnZjL2tGZUY2YmFiRnRwekFLNkZDd1dKSnhLM00zUTkxSm5jL0V0b0NQOWZ2UXh5aTF3eW9rTEJOc3Vwazl3Ci1icDdPdlZpSjRsTlpubTVha21YaWlEOE1sQm1qM2VYb25aVVQ3U25icTNBUzNGcktheGVyVW9KVXNRSURBUUFCCi1veXd3S2pBSkJnTlZIUk1FQWpBQU1CMEdBMVVkRGdRV0JCUWZkTlkvS2NGMGRFVTdCUklzUGFpOVExa0NwakFOCi1CZ2txaGtpRzl3MEJBUVVGQUFPQ0FRRUF3RUhQNUl5UEsvRDlDRVhmeVFxRTcyUkhsOHVxTVFDbDZMY0hpdjlDCi1wVG51N2hzYkdnUDBqOEJJZ0J4SGNwaUp6UHVDTE56T3NDc2ZNZmdmRTlIMGM1MGVQcU5YcHlPbDZiTGNRYXc1Ci1USmFwVUZXdHJabUMvblpXWVpPdlEwMS8wUVZLa2dXMmFYblFXVjBFQnFkd1JIdEpzM0Yxd0JwS3YvNGJSMzFwCi1rekRNUCtXT2RJdk16eGg1bzBsU2krK1R4Nmg3bWs2MVBVL3N3MEs1Tnd4RjZYN0FJdmxhMHNiT2NFYTlsSDhXCi1ibmt1aWVZYkxBNmV1TlBoYTFnamx0VDNhRWtQNVpkbkwvVnkvcGFDc1QxN2JzNk1OZmVoOTlkZCtXQnZ5QnpRCi1IeDlYUmdNTFJkMWJadjBzbGk5cTdZejNWK2QrY212M0QvM25SWVZJLyt3VW13PT0KLS0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KZGlmZiAtLWdpdCBhL3Rlc3RzL2RhdGFfZmlsZXMvc2VydmVyMS5wdWJrZXkgYi90ZXN0cy9kYXRhX2ZpbGVzL3NlcnZlcjEucHVia2V5CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5M2M2NjljLi4wMDAwMDAwCi0tLSBhL3Rlc3RzL2RhdGFfZmlsZXMvc2VydmVyMS5wdWJrZXkKKysrIC9kZXYvbnVsbApAQCAtMSw5ICswLDAgQEAKLS0tLS0tQkVHSU4gUFVCTElDIEtFWS0tLS0tCi1NSUlCSWpBTkJna3Foa2lHOXcwQkFRRUZBQU9DQVE4QU1JSUJDZ0tDQVFFQXFRSWZQVUJxMVZWVGkvMDI3b0psCi1MaFZoWG9tL3VPaEZrTnZ1aUJaUzAvRkRVRWVXRWxsa2gydjlLK0JHK1hPKzNjK1M0WkZiN1dhZ2I0a3BlVVdBCi0wSU5xMVVGRGQxODVmQWtFUjRLd1Z6bHc3YVBzRlJrZXFETUlSOEVGUXFuOVRNTzAzOTBHSDAwUVVVQm5jeE1QCi1RUGh0Z1NWZkNyRlR4akIrRlRtcytWcnVmNUtlcGdWYjV4T1hoYlVqa3RuVUpBYlZDU1dKZFFmZHBocVBQd2taCi12cTFsTEdUcmxadmMva0ZlRjZiYWJGdHB6QUs2RkN3V0pKeEszTTNROTFKbmMvRXRvQ1A5ZnZReHlpMXd5b2tMCi1CTnN1cGs5d2JwN092VmlKNGxOWm5tNWFrbVhpaUQ4TWxCbWozZVhvblpVVDdTbmJxM0FTM0ZyS2F4ZXJVb0pVCi1zUUlEQVFBQgotLS0tLS1FTkQgUFVCTElDIEtFWS0tLS0tCmRpZmYgLS1naXQgYS90ZXN0cy9kYXRhX2ZpbGVzL3NlcnZlcjEucHVia2V5LmRlciBiL3Rlc3RzL2RhdGFfZmlsZXMvc2VydmVyMS5wdWJrZXkuZGVyCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxYTQzMmE0Li4wMDAwMDAwCi0tLSBhL3Rlc3RzL2RhdGFfZmlsZXMvc2VydmVyMS5wdWJrZXkuZGVyCisrKyAvZGV2L251bGwKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvdGVzdHMvZGF0YV9maWxlcy9zZXJ2ZXIxLnJlcS5jZXJ0X3R5cGUgYi90ZXN0cy9kYXRhX2ZpbGVzL3NlcnZlcjEucmVxLmNlcnRfdHlwZQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMzlmZjNmZC4uMDAwMDAwMAotLS0gYS90ZXN0cy9kYXRhX2ZpbGVzL3NlcnZlcjEucmVxLmNlcnRfdHlwZQorKysgL2Rldi9udWxsCkBAIC0xLDE3ICswLDAgQEAKLS0tLS0tQkVHSU4gQ0VSVElGSUNBVEUgUkVRVUVTVC0tLS0tCi1NSUlDcFRDQ0FZMENBUUF3UERFTE1Ba0dBMVVFQmhNQ1Rrd3hFVEFQQmdOVkJBb01DRkJ2YkdGeVUxTk1NUm93Ci1HQVlEVlFRRERCRlFiMnhoY2xOVFRDQlRaWEoyWlhJZ01UQ0NBU0l3RFFZSktvWklodmNOQVFFQkJRQURnZ0VQCi1BRENDQVFvQ2dnRUJBS2tDSHoxQWF0VlZVNHY5TnU2Q1pTNFZZVjZKdjdqb1JaRGI3b2dXVXRQeFExQkhsaEpaCi1aSWRyL1N2Z1J2bHp2dDNQa3VHUlcrMW1vRytKS1hsRmdOQ0RhdFZCUTNkZk9Yd0pCRWVDc0ZjNWNPMmo3QlVaCi1IcWd6Q0VmQkJVS3AvVXpEdE4vZEJoOU5FRkZBWjNNVEQwRDRiWUVsWHdxeFU4WXdmaFU1clBsYTduK1NucVlGCi1XK2NUbDRXMUk1TFoxQ1FHMVFrbGlYVUgzYVlhano4SkdiNnRaU3hrNjVXYjNQNUJYaGVtMm14YmFjd0N1aFFzCi1GaVNjU3R6TjBQZFNaM1B4TGFBai9YNzBNY290Y01xSkN3VGJMcVpQY0c2ZXpyMVlpZUpUV1o1dVdwSmw0b2cvCi1ESlFabzkzbDZKMlZFKzBwMjZ0d0V0eGF5bXNYcTFLQ1ZMRUNBd0VBQWFBa01DSUdDU3FHU0liM0RRRUpEakVWCi1NQk13RVFZSllJWklBWWI0UWdFQkJBUURBZ1pBTUEwR0NTcUdTSWIzRFFFQkJRVUFBNElCQVFCRXJaY0VhRUVPCi1oTGJSVnVCMytONWJ5MG1vZ2RKc2F0SkZTZ1cyL1Z6dEx2UUJZdTBPK1ZtVGJad0NBV2VqQThVK2NyNnVQbHlmCi1iNGxEcWozVytYeWtlSzliU3pvU3IxeU5PMlZBY0U3NFkwWnJTejJ5WE1mVDVSOUl5S3FRWnNwYUtEOE1PbVlICi1CcVVIOW8vcGhuR2NhRUc1eGVTZmhNMU8vWU5adUdubExEUUJHd1Q1cHVIT2FMZmpFQ3ZzOGVaTG9wSVdFQmxECi1Ra1JsaFlxWkJ3aEdaOEQvVHhxRzR0ZUZ0bkJYNUZHN1VvU1NWdW5lQnJrUkVRTTdFbGh0RDlqQ1dqZk1ucW0xCi01OUc4NE95Y0Nsd2FLVTcvRG02emVNR0R5Rm9Na3NCdWQ3bHlESE1oeHZ3U2J6YjFKUjV2OGlCc21WWTJkaEh0Ci1PdDNGeDJiZTBnSXIKLS0tLS0tRU5EIENFUlRJRklDQVRFIFJFUVVFU1QtLS0tLQpkaWZmIC0tZ2l0IGEvdGVzdHMvZGF0YV9maWxlcy9zZXJ2ZXIxLnJlcS5jZXJ0X3R5cGVfZW1wdHkgYi90ZXN0cy9kYXRhX2ZpbGVzL3NlcnZlcjEucmVxLmNlcnRfdHlwZV9lbXB0eQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNzBmZDExMS4uMDAwMDAwMAotLS0gYS90ZXN0cy9kYXRhX2ZpbGVzL3NlcnZlcjEucmVxLmNlcnRfdHlwZV9lbXB0eQorKysgL2Rldi9udWxsCkBAIC0xLDE3ICswLDAgQEAKLS0tLS0tQkVHSU4gQ0VSVElGSUNBVEUgUkVRVUVTVC0tLS0tCi1NSUlDcERDQ0FZd0NBUUF3UERFTE1Ba0dBMVVFQmhNQ1Rrd3hFVEFQQmdOVkJBb01DRkJ2YkdGeVUxTk1NUm93Ci1HQVlEVlFRRERCRlFiMnhoY2xOVFRDQlRaWEoyWlhJZ01UQ0NBU0l3RFFZSktvWklodmNOQVFFQkJRQURnZ0VQCi1BRENDQVFvQ2dnRUJBS2tDSHoxQWF0VlZVNHY5TnU2Q1pTNFZZVjZKdjdqb1JaRGI3b2dXVXRQeFExQkhsaEpaCi1aSWRyL1N2Z1J2bHp2dDNQa3VHUlcrMW1vRytKS1hsRmdOQ0RhdFZCUTNkZk9Yd0pCRWVDc0ZjNWNPMmo3QlVaCi1IcWd6Q0VmQkJVS3AvVXpEdE4vZEJoOU5FRkZBWjNNVEQwRDRiWUVsWHdxeFU4WXdmaFU1clBsYTduK1NucVlGCi1XK2NUbDRXMUk1TFoxQ1FHMVFrbGlYVUgzYVlhano4SkdiNnRaU3hrNjVXYjNQNUJYaGVtMm14YmFjd0N1aFFzCi1GaVNjU3R6TjBQZFNaM1B4TGFBai9YNzBNY290Y01xSkN3VGJMcVpQY0c2ZXpyMVlpZUpUV1o1dVdwSmw0b2cvCi1ESlFabzkzbDZKMlZFKzBwMjZ0d0V0eGF5bXNYcTFLQ1ZMRUNBd0VBQWFBak1DRUdDU3FHU0liM0RRRUpEakVVCi1NQkl3RUFZSllJWklBWWI0UWdFQkJBTURBUUF3RFFZSktvWklodmNOQVFFRkJRQURnZ0VCQUNVMExMREJJTWdHCi1CN2d5TkFOSHY0MlJvdmhRZHptVXVscUpQSE5IeDN2OUcxN0YwMGJFeWtKYi9yM2F3VzZsNWZoWS82b1B5ZHNZCi1obldFTTZWVkNVa0o2WnFtMi93RTQ5dWFOVGJGZDlKVTRPeXdSQmZqSEhTVE9HbllGZytCWVNmd2FJa1NDa3gyCi1rVmh5a2xGbTdNeTV3a3lEUHBGU1UydFRmZ3NnYVFNeVRtOTNhMmt4TTdxSi9YM2dGREc4bzdSMHZ5b2pGVlNJCi1td3NGOVFzQzZOOWN5Z2RGeDIzekNCMEtzSjlLZm1CcWFUc2RiS2g4QnNvY1ltNUZKQ3c0V1MvQ0JyQ1dCait6Ci1ON3lFSmo0U1I1RitQN3NGYzVJMEhBTm92NXdRZThFMytXeHhRdDhqY3FJamU2RGxhYUdqYTQ0Y1hPenZGUXl4Ci1IZy82SDVFdEJRYz0KLS0tLS0tRU5EIENFUlRJRklDQVRFIFJFUVVFU1QtLS0tLQpkaWZmIC0tZ2l0IGEvdGVzdHMvZGF0YV9maWxlcy9zZXJ2ZXIxLnJlcS5rZXlfdXNhZ2UgYi90ZXN0cy9kYXRhX2ZpbGVzL3NlcnZlcjEucmVxLmtleV91c2FnZQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMzBlNDgxMi4uMDAwMDAwMAotLS0gYS90ZXN0cy9kYXRhX2ZpbGVzL3NlcnZlcjEucmVxLmtleV91c2FnZQorKysgL2Rldi9udWxsCkBAIC0xLDE3ICswLDAgQEAKLS0tLS0tQkVHSU4gQ0VSVElGSUNBVEUgUkVRVUVTVC0tLS0tCi1NSUlDbnpDQ0FZY0NBUUF3UERFTE1Ba0dBMVVFQmhNQ1Rrd3hFVEFQQmdOVkJBb01DRkJ2YkdGeVUxTk1NUm93Ci1HQVlEVlFRRERCRlFiMnhoY2xOVFRDQlRaWEoyWlhJZ01UQ0NBU0l3RFFZSktvWklodmNOQVFFQkJRQURnZ0VQCi1BRENDQVFvQ2dnRUJBS2tDSHoxQWF0VlZVNHY5TnU2Q1pTNFZZVjZKdjdqb1JaRGI3b2dXVXRQeFExQkhsaEpaCi1aSWRyL1N2Z1J2bHp2dDNQa3VHUlcrMW1vRytKS1hsRmdOQ0RhdFZCUTNkZk9Yd0pCRWVDc0ZjNWNPMmo3QlVaCi1IcWd6Q0VmQkJVS3AvVXpEdE4vZEJoOU5FRkZBWjNNVEQwRDRiWUVsWHdxeFU4WXdmaFU1clBsYTduK1NucVlGCi1XK2NUbDRXMUk1TFoxQ1FHMVFrbGlYVUgzYVlhano4SkdiNnRaU3hrNjVXYjNQNUJYaGVtMm14YmFjd0N1aFFzCi1GaVNjU3R6TjBQZFNaM1B4TGFBai9YNzBNY290Y01xSkN3VGJMcVpQY0c2ZXpyMVlpZUpUV1o1dVdwSmw0b2cvCi1ESlFabzkzbDZKMlZFKzBwMjZ0d0V0eGF5bXNYcTFLQ1ZMRUNBd0VBQWFBZU1Cd0dDU3FHU0liM0RRRUpEakVQCi1NQTB3Q3dZRFZSMFBCQVFEQWdYZ01BMEdDU3FHU0liM0RRRUJCUVVBQTRJQkFRQnNKM3YxQXIyWDI4R0pzUlNKCi1XUlF3RlF3SWJSL0QwY0hyd1RmMFpmWnR0Q2x5dHVjMThKWmx3a0gzRUcvck5rV2FGcDZNS0lab1JNT0J1U1BjCi1NTnZ2S0lvNG5QYWVvdURQcnV5bXgwZ05lbmx5UkwzRDRPWnBCTy9CbVFJUWpiVUtXRmJ6RW5FcXZ3dk1EVW5HCi04dzdValBTRmN4ajJIekVOcjYySExQS0tuVnBMM25EWFdLMWEyQTc3S0Y5YU14eW9XUTZGWGIyeFBEOWNKamRvCi1jMWp3c2tRYmdvc1F6S0t3d3A1eXhxMHpSRDNFQUd3NEE3OG1nSE1mZ0ZwcnE5ZTlhemFCMEpleUZHMlZuMHQwCi1MK3ZmaURFVlEzZUpYU0NlbjFrRVZ5SFJqdThnNTNVY1NnZCtKaWNXRmJvRmoyL21KQnV5VzZ5TSsrUkdBOUI1Ci1aZDYyCi0tLS0tLUVORCBDRVJUSUZJQ0FURSBSRVFVRVNULS0tLS0KZGlmZiAtLWdpdCBhL3Rlc3RzL2RhdGFfZmlsZXMvc2VydmVyMS5yZXEua2V5X3VzYWdlX2VtcHR5IGIvdGVzdHMvZGF0YV9maWxlcy9zZXJ2ZXIxLnJlcS5rZXlfdXNhZ2VfZW1wdHkKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDQ3ZTU2YmYuLjAwMDAwMDAKLS0tIGEvdGVzdHMvZGF0YV9maWxlcy9zZXJ2ZXIxLnJlcS5rZXlfdXNhZ2VfZW1wdHkKKysrIC9kZXYvbnVsbApAQCAtMSwxNyArMCwwIEBACi0tLS0tLUJFR0lOIENFUlRJRklDQVRFIFJFUVVFU1QtLS0tLQotTUlJQ25qQ0NBWVlDQVFBd1BERUxNQWtHQTFVRUJoTUNUa3d4RVRBUEJnTlZCQW9NQ0ZCdmJHRnlVMU5NTVJvdwotR0FZRFZRUUREQkZRYjJ4aGNsTlRUQ0JUWlhKMlpYSWdNVENDQVNJd0RRWUpLb1pJaHZjTkFRRUJCUUFEZ2dFUAotQURDQ0FRb0NnZ0VCQUtrQ0h6MUFhdFZWVTR2OU51NkNaUzRWWVY2SnY3am9SWkRiN29nV1V0UHhRMUJIbGhKWgotWklkci9TdmdSdmx6dnQzUGt1R1JXKzFtb0crSktYbEZnTkNEYXRWQlEzZGZPWHdKQkVlQ3NGYzVjTzJqN0JVWgotSHFnekNFZkJCVUtwL1V6RHROL2RCaDlORUZGQVozTVREMEQ0YllFbFh3cXhVOFl3ZmhVNXJQbGE3bitTbnFZRgotVytjVGw0VzFJNUxaMUNRRzFRa2xpWFVIM2FZYWp6OEpHYjZ0WlN4azY1V2IzUDVCWGhlbTJteGJhY3dDdWhRcwotRmlTY1N0ek4wUGRTWjNQeExhQWovWDcwTWNvdGNNcUpDd1RiTHFaUGNHNmV6cjFZaWVKVFdaNXVXcEpsNG9nLwotREpRWm85M2w2SjJWRSswcDI2dHdFdHhheW1zWHExS0NWTEVDQXdFQUFhQWRNQnNHQ1NxR1NJYjNEUUVKRGpFTwotTUF3d0NnWURWUjBQQkFNREFRQXdEUVlKS29aSWh2Y05BUUVGQlFBRGdnRUJBQXFRL0VVLzNvTXQ3WVc0dldnbQotMFE3RjR2N0RyRkVvVk1XZkJ6TldoTU5JaWp6b2FXS1k4andzZVpNenU4YUNOUWxKbk03YzlGSkYrT0NnUzdMNQotMGN0d3pqZkNPaTVJNWNLZ3F2OFdwdU1aV0hYTnRCN1l0alVXSVpWcmkvUmF6Q25jWkV3SkdDS1FqbVFZckdKbQotUW11MitEK0RXWStuRVc0N1pmREg5ak9KdGF0blJFalNOc0t6YzQ0TDl6VWFFeTNiaSttNDU1WEdIK0FCbWViNwotSXFtZ3VoMTB4VXlZNnJFT0ZFdXF2RnlGcjVnMWViNTNScjVDUXhHZncxaisyYmJTaCtyVmI2RWhmOUxBaWp5dQotWWdxYTkxaEdhYi9DanlrUzZITXJEOTFvdVd0dDJSdDN6Q0tvNFh4ZThkbEFzektCNFc4M005T2dEVlZwaUNmQwotdDNBPQotLS0tLS1FTkQgQ0VSVElGSUNBVEUgUkVRVUVTVC0tLS0tCmRpZmYgLS1naXQgYS90ZXN0cy9kYXRhX2ZpbGVzL3NlcnZlcjEucmVxLmt1LWN0IGIvdGVzdHMvZGF0YV9maWxlcy9zZXJ2ZXIxLnJlcS5rdS1jdApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZWJkMDFmNS4uMDAwMDAwMAotLS0gYS90ZXN0cy9kYXRhX2ZpbGVzL3NlcnZlcjEucmVxLmt1LWN0CisrKyAvZGV2L251bGwKQEAgLTEsMTcgKzAsMCBAQAotLS0tLS1CRUdJTiBDRVJUSUZJQ0FURSBSRVFVRVNULS0tLS0KLU1JSUNzakNDQVpvQ0FRQXdQREVMTUFrR0ExVUVCaE1DVGt3eEVUQVBCZ05WQkFvTUNGQnZiR0Z5VTFOTU1Sb3cKLUdBWURWUVFEREJGUWIyeGhjbE5UVENCVFpYSjJaWElnTVRDQ0FTSXdEUVlKS29aSWh2Y05BUUVCQlFBRGdnRVAKLUFEQ0NBUW9DZ2dFQkFLa0NIejFBYXRWVlU0djlOdTZDWlM0VllWNkp2N2pvUlpEYjdvZ1dVdFB4UTFCSGxoSloKLVpJZHIvU3ZnUnZsenZ0M1BrdUdSVysxbW9HK0pLWGxGZ05DRGF0VkJRM2RmT1h3SkJFZUNzRmM1Y08yajdCVVoKLUhxZ3pDRWZCQlVLcC9VekR0Ti9kQmg5TkVGRkFaM01URDBENGJZRWxYd3F4VThZd2ZoVTVyUGxhN24rU25xWUYKLVcrY1RsNFcxSTVMWjFDUUcxUWtsaVhVSDNhWWFqejhKR2I2dFpTeGs2NVdiM1A1QlhoZW0ybXhiYWN3Q3VoUXMKLUZpU2NTdHpOMFBkU1ozUHhMYUFqL1g3ME1jb3RjTXFKQ3dUYkxxWlBjRzZlenIxWWllSlRXWjV1V3BKbDRvZy8KLURKUVpvOTNsNkoyVkUrMHAyNnR3RXR4YXltc1hxMUtDVkxFQ0F3RUFBYUF4TUM4R0NTcUdTSWIzRFFFSkRqRWkKLU1DQXdDd1lEVlIwUEJBUURBZ1hnTUJFR0NXQ0dTQUdHK0VJQkFRUUVBd0lHUURBTkJna3Foa2lHOXcwQkFRVUYKLUFBT0NBUUVBV1VNeUlYSGk0QmJJeE9lQ0QvVnR1OUxHVjhFTk1WN2R3WVZFUWN3cnQxQUhhaHRZZ1V0a29HY1AKLWxPUHFnMWxiZzIyYnU4ZExQb1k0SEF6eENPQUdzMjdvdFdMNUxsRTlNNVFQSDFSZWRFeWNtT3VZck1sNks5ODgKLWhmREJKK09rZ0NTaGNNOTErdWRyYzBncERFSTdOMDFBK2ZtdWtRNkVpYVFqSWY3SE1FL0VLUXFoRXVFUU1YSEMKLUdCdmROdUVGNUJmVjNhQVl1VCt4ZmRYRFUyWld3WFhXQUhHbVZoM250bmh0RUc2U25YU25CQVRVMndhNHRwQmQKLUtMYkViY3NpeTJ1ajBPTEpsdkc2THFzTmdndGtENThHQ0dwTHBhVnhkVzgweXcrZi9rcndMcGV5b2NFMUtHY1QKLTdlWCs5eWhMZTlOSVpvanZldncrNTNkTkU3QlVmdz09Ci0tLS0tLUVORCBDRVJUSUZJQ0FURSBSRVFVRVNULS0tLS0KZGlmZiAtLWdpdCBhL3Rlc3RzL2RhdGFfZmlsZXMvc2VydmVyMS5yZXEubWQ1IGIvdGVzdHMvZGF0YV9maWxlcy9zZXJ2ZXIxLnJlcS5tZDUKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDU3NzE0ZWQuLjAwMDAwMDAKLS0tIGEvdGVzdHMvZGF0YV9maWxlcy9zZXJ2ZXIxLnJlcS5tZDUKKysrIC9kZXYvbnVsbApAQCAtMSwxNiArMCwwIEBACi0tLS0tLUJFR0lOIENFUlRJRklDQVRFIFJFUVVFU1QtLS0tLQotTUlJQ2dUQ0NBV2tDQVFBd1BERUxNQWtHQTFVRUJoTUNUa3d4RVRBUEJnTlZCQW9NQ0ZCdmJHRnlVMU5NTVJvdwotR0FZRFZRUUREQkZRYjJ4aGNsTlRUQ0JUWlhKMlpYSWdNVENDQVNJd0RRWUpLb1pJaHZjTkFRRUJCUUFEZ2dFUAotQURDQ0FRb0NnZ0VCQUtrQ0h6MUFhdFZWVTR2OU51NkNaUzRWWVY2SnY3am9SWkRiN29nV1V0UHhRMUJIbGhKWgotWklkci9TdmdSdmx6dnQzUGt1R1JXKzFtb0crSktYbEZnTkNEYXRWQlEzZGZPWHdKQkVlQ3NGYzVjTzJqN0JVWgotSHFnekNFZkJCVUtwL1V6RHROL2RCaDlORUZGQVozTVREMEQ0YllFbFh3cXhVOFl3ZmhVNXJQbGE3bitTbnFZRgotVytjVGw0VzFJNUxaMUNRRzFRa2xpWFVIM2FZYWp6OEpHYjZ0WlN4azY1V2IzUDVCWGhlbTJteGJhY3dDdWhRcwotRmlTY1N0ek4wUGRTWjNQeExhQWovWDcwTWNvdGNNcUpDd1RiTHFaUGNHNmV6cjFZaWVKVFdaNXVXcEpsNG9nLwotREpRWm85M2w2SjJWRSswcDI2dHdFdHhheW1zWHExS0NWTEVDQXdFQUFhQUFNQTBHQ1NxR1NJYjNEUUVCQkFVQQotQTRJQkFRQ0VpdjNRTTR4eUtoWVRzb09qeXpRZFhNaHNYSzNLcHcrUmg4NzRIZjZwWEh4VWFZeTd4TFVaVXg2SwoteDVCdmVtMUhNSEFkbU9xWVR6c0U5WmJsQU1aTlJ3di9DS0dTM3B2TWt4L1Zad1hRaEZHbEhMRkcvL2ZQcmdsMwotajRkdDIwUXNXUDhMbkw0THdlWVNZSTF3dDFyamdZUkhlRjZiRy9WSWNrNkJJWVFoS09HbHpJd1dVbWZBR3ltNgotcTRTWXJkK09iWnVsbFNhckdHU2ZOS2pJVUVwWXRmUUJ6MzFmNXRSc3l6U3BzN29HNHVjN1hiYTRxbmwybzlGTgotbFdPTUVFUjc5UUd3cjcrVDQxRlRIRnp0RmRkZkowNkNDam9SQ2ZFbjBUY3NnMTF0U01TMDg1MW9Ma01tOFJ5WQotYW96SXpPODJSM0VtN2FQaFpCaUJEeTN3WkMybAotLS0tLS1FTkQgQ0VSVElGSUNBVEUgUkVRVUVTVC0tLS0tCmRpZmYgLS1naXQgYS90ZXN0cy9kYXRhX2ZpbGVzL3NlcnZlcjEucmVxLnNoYTEgYi90ZXN0cy9kYXRhX2ZpbGVzL3NlcnZlcjEucmVxLnNoYTEKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDU3OGVjN2YuLjAwMDAwMDAKLS0tIGEvdGVzdHMvZGF0YV9maWxlcy9zZXJ2ZXIxLnJlcS5zaGExCisrKyAvZGV2L251bGwKQEAgLTEsMTYgKzAsMCBAQAotLS0tLS1CRUdJTiBDRVJUSUZJQ0FURSBSRVFVRVNULS0tLS0KLU1JSUNnVENDQVdrQ0FRQXdQREVMTUFrR0ExVUVCaE1DVGt3eEVUQVBCZ05WQkFvTUNGQnZiR0Z5VTFOTU1Sb3cKLUdBWURWUVFEREJGUWIyeGhjbE5UVENCVFpYSjJaWElnTVRDQ0FTSXdEUVlKS29aSWh2Y05BUUVCQlFBRGdnRVAKLUFEQ0NBUW9DZ2dFQkFLa0NIejFBYXRWVlU0djlOdTZDWlM0VllWNkp2N2pvUlpEYjdvZ1dVdFB4UTFCSGxoSloKLVpJZHIvU3ZnUnZsenZ0M1BrdUdSVysxbW9HK0pLWGxGZ05DRGF0VkJRM2RmT1h3SkJFZUNzRmM1Y08yajdCVVoKLUhxZ3pDRWZCQlVLcC9VekR0Ti9kQmg5TkVGRkFaM01URDBENGJZRWxYd3F4VThZd2ZoVTVyUGxhN24rU25xWUYKLVcrY1RsNFcxSTVMWjFDUUcxUWtsaVhVSDNhWWFqejhKR2I2dFpTeGs2NVdiM1A1QlhoZW0ybXhiYWN3Q3VoUXMKLUZpU2NTdHpOMFBkU1ozUHhMYUFqL1g3ME1jb3RjTXFKQ3dUYkxxWlBjRzZlenIxWWllSlRXWjV1V3BKbDRvZy8KLURKUVpvOTNsNkoyVkUrMHAyNnR3RXR4YXltc1hxMUtDVkxFQ0F3RUFBYUFBTUEwR0NTcUdTSWIzRFFFQkJRVUEKLUE0SUJBUUNpWVFNT3YyQUxQVWVnOHdIS245TDVTZERiTnhPenVNd2hZc0NZVHcyVEpNUU83TkxVcTZpY0V6eFkKLXBVSUlGdDYwSlVRalpIeFFTWTN5OWNTaXZ3S1hRQTdwUGZhUGFGQy9hTUEyR3hHMjN0MmVhSVdOUVg4TWZjV2YKLVhBYThibC92bUMxTVRvdittUDJER29YUmlLWU9SckVJbnlEUzJSYVRhdGh2SGNrY0F2MjVuQ0l4N3dZTzl0QzkKLUxVd3lvRTliaGlRN2ZvM0tGbHo0ZEsxSHVreUNNL0ZvUGJKdUw3Tmdkem1LVlB5WUNMaDVBaCtUVEQ2K3NsdHoKLWRGYzRmajI4dzF2M2pzQlh6K3RMcmdGUWlkenVVSTJwb3h0NVV3VTlUS1kwZEFKYVRDdGZJUmNYVzNoNkRHRzcKLUVEUjZyaW02c2JJUWtHell2R3FzNFROb0pPUisKLS0tLS0tRU5EIENFUlRJRklDQVRFIFJFUVVFU1QtLS0tLQpkaWZmIC0tZ2l0IGEvdGVzdHMvZGF0YV9maWxlcy9zZXJ2ZXIxLnJlcS5zaGEyMjQgYi90ZXN0cy9kYXRhX2ZpbGVzL3NlcnZlcjEucmVxLnNoYTIyNApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYTRmMmFmNC4uMDAwMDAwMAotLS0gYS90ZXN0cy9kYXRhX2ZpbGVzL3NlcnZlcjEucmVxLnNoYTIyNAorKysgL2Rldi9udWxsCkBAIC0xLDE2ICswLDAgQEAKLS0tLS0tQkVHSU4gQ0VSVElGSUNBVEUgUkVRVUVTVC0tLS0tCi1NSUlDZ1RDQ0FXa0NBUUF3UERFTE1Ba0dBMVVFQmhNQ1Rrd3hFVEFQQmdOVkJBb01DRkJ2YkdGeVUxTk1NUm93Ci1HQVlEVlFRRERCRlFiMnhoY2xOVFRDQlRaWEoyWlhJZ01UQ0NBU0l3RFFZSktvWklodmNOQVFFQkJRQURnZ0VQCi1BRENDQVFvQ2dnRUJBS2tDSHoxQWF0VlZVNHY5TnU2Q1pTNFZZVjZKdjdqb1JaRGI3b2dXVXRQeFExQkhsaEpaCi1aSWRyL1N2Z1J2bHp2dDNQa3VHUlcrMW1vRytKS1hsRmdOQ0RhdFZCUTNkZk9Yd0pCRWVDc0ZjNWNPMmo3QlVaCi1IcWd6Q0VmQkJVS3AvVXpEdE4vZEJoOU5FRkZBWjNNVEQwRDRiWUVsWHdxeFU4WXdmaFU1clBsYTduK1NucVlGCi1XK2NUbDRXMUk1TFoxQ1FHMVFrbGlYVUgzYVlhano4SkdiNnRaU3hrNjVXYjNQNUJYaGVtMm14YmFjd0N1aFFzCi1GaVNjU3R6TjBQZFNaM1B4TGFBai9YNzBNY290Y01xSkN3VGJMcVpQY0c2ZXpyMVlpZUpUV1o1dVdwSmw0b2cvCi1ESlFabzkzbDZKMlZFKzBwMjZ0d0V0eGF5bXNYcTFLQ1ZMRUNBd0VBQWFBQU1BMEdDU3FHU0liM0RRRUJEZ1VBCi1BNElCQVFBcllSMm1MS1U1bHNIeUF5R0hyNFBsbUMvY2ZlUG1DUnlDL21qMXJpR1RqRGxOQzJYM0oxVlpEcUtiCi1VL3VVeEx1ZFA3c2J1dHRSa3NJQVJFQVRUNzRQYTQwYk1XaVBVbEJmQS9NMm1GVG1LYi85MXVYZUlJU1c4REwzCi14TS81QkNEcmhuWi9jalAyM2dLRGdKUmsrSUdCTmhZWkRHejUwVElCYkRKMmU0R0RrRmp6QU5uZ1VXNjRVY0NRCi03aFpPWXRuWUxCbm9SdlB3dGFsNWpacUh3c2dhUFBlUFh1K1NROG1mdUFKd0o3OE1PQ0FhS3cwSVAxaDFPblBHCi1pdWJkbDM0bFNJYVlXd2JIVGRqYXFVU1FHM1NTczRveEV2bHVZeW1ycFo2WEdLWHRwaEpYRVBkVFJpTHU5ZDlsCi1BNU5ZVmd2cUhGUVBtdVhTOTJ6ckd6Qjc4OHBWCi0tLS0tLUVORCBDRVJUSUZJQ0FURSBSRVFVRVNULS0tLS0KZGlmZiAtLWdpdCBhL3Rlc3RzL2RhdGFfZmlsZXMvc2VydmVyMS5yZXEuc2hhMjU2IGIvdGVzdHMvZGF0YV9maWxlcy9zZXJ2ZXIxLnJlcS5zaGEyNTYKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDZkMjFkYzUuLjAwMDAwMDAKLS0tIGEvdGVzdHMvZGF0YV9maWxlcy9zZXJ2ZXIxLnJlcS5zaGEyNTYKKysrIC9kZXYvbnVsbApAQCAtMSwxNiArMCwwIEBACi0tLS0tLUJFR0lOIENFUlRJRklDQVRFIFJFUVVFU1QtLS0tLQotTUlJQ2dUQ0NBV2tDQVFBd1BERUxNQWtHQTFVRUJoTUNUa3d4RVRBUEJnTlZCQW9NQ0ZCdmJHRnlVMU5NTVJvdwotR0FZRFZRUUREQkZRYjJ4aGNsTlRUQ0JUWlhKMlpYSWdNVENDQVNJd0RRWUpLb1pJaHZjTkFRRUJCUUFEZ2dFUAotQURDQ0FRb0NnZ0VCQUtrQ0h6MUFhdFZWVTR2OU51NkNaUzRWWVY2SnY3am9SWkRiN29nV1V0UHhRMUJIbGhKWgotWklkci9TdmdSdmx6dnQzUGt1R1JXKzFtb0crSktYbEZnTkNEYXRWQlEzZGZPWHdKQkVlQ3NGYzVjTzJqN0JVWgotSHFnekNFZkJCVUtwL1V6RHROL2RCaDlORUZGQVozTVREMEQ0YllFbFh3cXhVOFl3ZmhVNXJQbGE3bitTbnFZRgotVytjVGw0VzFJNUxaMUNRRzFRa2xpWFVIM2FZYWp6OEpHYjZ0WlN4azY1V2IzUDVCWGhlbTJteGJhY3dDdWhRcwotRmlTY1N0ek4wUGRTWjNQeExhQWovWDcwTWNvdGNNcUpDd1RiTHFaUGNHNmV6cjFZaWVKVFdaNXVXcEpsNG9nLwotREpRWm85M2w2SjJWRSswcDI2dHdFdHhheW1zWHExS0NWTEVDQXdFQUFhQUFNQTBHQ1NxR1NJYjNEUUVCQ3dVQQotQTRJQkFRQ1ZsU1U3cWVLcmk3RTN1OEpDWmJDeWpzR0pUSDlpSFl5ZURaL25ETGlnN2lLR1l2eU5teXpKNzZRdQotK0VudFNtTDJPdEw5NVlxb29jNmgxQVFIem9DcytTTzJ3UG9UVXMzWXBpOXI3dk5OVk8zWm5ueFZ0R2dxQ1JWQQotVyt6OVc0cDJtSFhRaGdXMUhrdUxhNUpEMVN2SlZpeVpieDl6M2llMUJROU5WS2Z2KytBclBJdjcwekJ0QTdPMwotUFpORzFKWU4zMEVzejdSc0NEUkhiejZOcHZ1OWdnVVFML1UzbXZRUStZbyt4aHd1MXlGVitkUkg3UGViQmVRdgotdmpjRDJmWERhYmVvZkszenp0SXBVSXlVVUxYMEdHQ2xNOWpzbGdKL1pIVWxBcldLcExacGgwQWdGMUR6dHMvLwotTTZjL3NSdzdndGpYbVYwenEydGYyZkw0K2UyYgotLS0tLS1FTkQgQ0VSVElGSUNBVEUgUkVRVUVTVC0tLS0tCmRpZmYgLS1naXQgYS90ZXN0cy9kYXRhX2ZpbGVzL3NlcnZlcjEucmVxLnNoYTI1Ni5jb25mIGIvdGVzdHMvZGF0YV9maWxlcy9zZXJ2ZXIxLnJlcS5zaGEyNTYuY29uZgpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMGQzNTgxOC4uMDAwMDAwMAotLS0gYS90ZXN0cy9kYXRhX2ZpbGVzL3NlcnZlcjEucmVxLnNoYTI1Ni5jb25mCisrKyAvZGV2L251bGwKQEAgLTEsMTcgKzAsMCBAQAotcmVxX2V4dGVuc2lvbnMgPSByZXFfZXh0Ci0KLVtyZXFfZXh0XQotZXh0ZW5kZWRLZXlVc2FnZSA9IHNlcnZlckF1dGgKLXN1YmplY3RBbHROYW1lID0gQGFsdF9uYW1lcwotCi1bYWx0X25hbWVzXQotZW1haWwgPSBtYWlsQGV4YW1wbGUuY29tCi1ETlMgPSBleGFtcGxlLmNvbQotZGlyTmFtZSA9IGRpcm5hbWVfc2VjdAotSVAgPSAxMjcuMC4wLjEKLVVSSSA9IGh0dHA6Ly9wa2kuZXhhbXBsZS5jb20KLQotW2Rpcm5hbWVfc2VjdF0KLUM9VUsKLU89TWJlZCBUTFMKLUNOPU1iZWQgVExTIGRpcmVjdG9yeU5hbWUgU0FOCmRpZmYgLS1naXQgYS90ZXN0cy9kYXRhX2ZpbGVzL3NlcnZlcjEucmVxLnNoYTI1Ni5leHQgYi90ZXN0cy9kYXRhX2ZpbGVzL3NlcnZlcjEucmVxLnNoYTI1Ni5leHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDFiYjA1ZGEuLjAwMDAwMDAKLS0tIGEvdGVzdHMvZGF0YV9maWxlcy9zZXJ2ZXIxLnJlcS5zaGEyNTYuZXh0CisrKyAvZGV2L251bGwKQEAgLTEsMjAgKzAsMCBAQAotLS0tLS1CRUdJTiBDRVJUSUZJQ0FURSBSRVFVRVNULS0tLS0KLU1JSURQekNDQWljQ0FRQXdQREVMTUFrR0ExVUVCaE1DVGt3eEVUQVBCZ05WQkFvTUNGQnZiR0Z5VTFOTU1Sb3cKLUdBWURWUVFEREJGUWIyeGhjbE5UVENCVFpYSjJaWElnTVRDQ0FTSXdEUVlKS29aSWh2Y05BUUVCQlFBRGdnRVAKLUFEQ0NBUW9DZ2dFQkFLa0NIejFBYXRWVlU0djlOdTZDWlM0VllWNkp2N2pvUlpEYjdvZ1dVdFB4UTFCSGxoSloKLVpJZHIvU3ZnUnZsenZ0M1BrdUdSVysxbW9HK0pLWGxGZ05DRGF0VkJRM2RmT1h3SkJFZUNzRmM1Y08yajdCVVoKLUhxZ3pDRWZCQlVLcC9VekR0Ti9kQmg5TkVGRkFaM01URDBENGJZRWxYd3F4VThZd2ZoVTVyUGxhN24rU25xWUYKLVcrY1RsNFcxSTVMWjFDUUcxUWtsaVhVSDNhWWFqejhKR2I2dFpTeGs2NVdiM1A1QlhoZW0ybXhiYWN3Q3VoUXMKLUZpU2NTdHpOMFBkU1ozUHhMYUFqL1g3ME1jb3RjTXFKQ3dUYkxxWlBjRzZlenIxWWllSlRXWjV1V3BKbDRvZy8KLURKUVpvOTNsNkoyVkUrMHAyNnR3RXR4YXltc1hxMUtDVkxFQ0F3RUFBYUNCdlRDQnVnWUpLb1pJaHZjTkFRa08KLU1ZR3NNSUdwTUJNR0ExVWRKUVFNTUFvR0NDc0dBUVVGQndNQk1JR1JCZ05WSFJFRWdZa3dnWWFCRUcxaGFXeEEKLVpYaGhiWEJzWlM1amIyMkNDMlY0WVcxd2JHVXVZMjl0cEVjd1JURUxNQWtHQTFVRUJoTUNWVXN4RVRBUEJnTlYKLUJBb01DRTFpWldRZ1ZFeFRNU013SVFZRFZRUUREQnBOWW1Wa0lGUk1VeUJrYVhKbFkzUnZjbmxPWVcxbElGTkIKLVRvY0Vmd0FBQVlZV2FIUjBjRG92TDNCcmFTNWxlR0Z0Y0d4bExtTnZiVEFOQmdrcWhraUc5dzBCQVFzRkFBT0MKLUFRRUFjbHJObW1nQW9hNGN0d3lCd0QxVDhqYnlCZXV4VGYraWZjK01RNnBFN1l1WVNsYW5IRTVsL0NvVmxXMTQKLWxSNWdBMDFwV0pKN1Q4UkJ2bzI1T3FYYnZNRlNhZmVHWHBTSE9HNjlBNnAvN1lVTHRiUHVTNnV2dGRSMG0zdCsKLTJJYWNMMHE1RnNTbVB3MDdSTmZWR0RGbmlLVnFEOGVBdVluaEZ6dGswK3VaVllENHhHZXpVY2tiMndUYnpGcHUKLWxVQS9OaG9XZkN5VjQ0VERSNWZ5MjNxTlh5d0VoYXREVS8zbk1tU0pwQlZ5NHk3SjZCUVZDbC9mYnl1S0lPcXUKLTBPVlArRnZBTlNPNDZ0d0E5KzM4aEkrL25QdVZ3dGJCdmcxYUxCTWJMWjNFZ2kydW96b2tZRllMMjJKWU5HSm8KLVhPUlFnUjY2U2RydmZoaXVnK0Y1eG1sZENnPT0KLS0tLS0tRU5EIENFUlRJRklDQVRFIFJFUVVFU1QtLS0tLQpkaWZmIC0tZ2l0IGEvdGVzdHMvZGF0YV9maWxlcy9zZXJ2ZXIxLnJlcS5zaGEzODQgYi90ZXN0cy9kYXRhX2ZpbGVzL3NlcnZlcjEucmVxLnNoYTM4NApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYjg1N2FmNy4uMDAwMDAwMAotLS0gYS90ZXN0cy9kYXRhX2ZpbGVzL3NlcnZlcjEucmVxLnNoYTM4NAorKysgL2Rldi9udWxsCkBAIC0xLDE2ICswLDAgQEAKLS0tLS0tQkVHSU4gQ0VSVElGSUNBVEUgUkVRVUVTVC0tLS0tCi1NSUlDZ1RDQ0FXa0NBUUF3UERFTE1Ba0dBMVVFQmhNQ1Rrd3hFVEFQQmdOVkJBb01DRkJ2YkdGeVUxTk1NUm93Ci1HQVlEVlFRRERCRlFiMnhoY2xOVFRDQlRaWEoyWlhJZ01UQ0NBU0l3RFFZSktvWklodmNOQVFFQkJRQURnZ0VQCi1BRENDQVFvQ2dnRUJBS2tDSHoxQWF0VlZVNHY5TnU2Q1pTNFZZVjZKdjdqb1JaRGI3b2dXVXRQeFExQkhsaEpaCi1aSWRyL1N2Z1J2bHp2dDNQa3VHUlcrMW1vRytKS1hsRmdOQ0RhdFZCUTNkZk9Yd0pCRWVDc0ZjNWNPMmo3QlVaCi1IcWd6Q0VmQkJVS3AvVXpEdE4vZEJoOU5FRkZBWjNNVEQwRDRiWUVsWHdxeFU4WXdmaFU1clBsYTduK1NucVlGCi1XK2NUbDRXMUk1TFoxQ1FHMVFrbGlYVUgzYVlhano4SkdiNnRaU3hrNjVXYjNQNUJYaGVtMm14YmFjd0N1aFFzCi1GaVNjU3R6TjBQZFNaM1B4TGFBai9YNzBNY290Y01xSkN3VGJMcVpQY0c2ZXpyMVlpZUpUV1o1dVdwSmw0b2cvCi1ESlFabzkzbDZKMlZFKzBwMjZ0d0V0eGF5bXNYcTFLQ1ZMRUNBd0VBQWFBQU1BMEdDU3FHU0liM0RRRUJEQVVBCi1BNElCQVFCeTM1ekhZTGlZYVNjcTFuaVFrelEvQlNjVWJkaVdkMlY5MGlzQnNCNVEzTmpWb0psL3lDYU1ybGEzCi0yWGZydXRwRnBkcXdlbmw1ak0wbzYrZW5LQ21mdXIrejIvaWplNjlEanUyYUJkNkE2MmN4MUFFdkZpTXE3bHlGCi00RFlKMzIrMnR5NktBOEVoekUzTkZzN3pLWHhtRDV5YnArb1hORXZYb2VVM1c4YStMZDVjMUsvbitJcGEwVFV5Ci1jRkJzNmRDc2JZTzl3STZucHdXcUM1SGM5ci8wenppTUZPKzRONVZPUmRZVUZxT2JxNHZDWU9NWEVUcGw4cnl1Ci1sR1pvck5Vb0o3dlY1NVQzMUNEcUV0YjBFRStuTytuVDRhZ2ZEb2JuY1lqdmMzV3BRdUx0VUI0VXdSNWdwWmw2Ci1aSStqNHV3aWtPZ0dPOWdjeDRJamFSUDNxNjNGCi0tLS0tLUVORCBDRVJUSUZJQ0FURSBSRVFVRVNULS0tLS0KZGlmZiAtLWdpdCBhL3Rlc3RzL2RhdGFfZmlsZXMvc2VydmVyMS5yZXEuc2hhNTEyIGIvdGVzdHMvZGF0YV9maWxlcy9zZXJ2ZXIxLnJlcS5zaGE1MTIKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDg1ZDUyNDYuLjAwMDAwMDAKLS0tIGEvdGVzdHMvZGF0YV9maWxlcy9zZXJ2ZXIxLnJlcS5zaGE1MTIKKysrIC9kZXYvbnVsbApAQCAtMSwxNiArMCwwIEBACi0tLS0tLUJFR0lOIENFUlRJRklDQVRFIFJFUVVFU1QtLS0tLQotTUlJQ2dUQ0NBV2tDQVFBd1BERUxNQWtHQTFVRUJoTUNUa3d4RVRBUEJnTlZCQW9NQ0ZCdmJHRnlVMU5NTVJvdwotR0FZRFZRUUREQkZRYjJ4aGNsTlRUQ0JUWlhKMlpYSWdNVENDQVNJd0RRWUpLb1pJaHZjTkFRRUJCUUFEZ2dFUAotQURDQ0FRb0NnZ0VCQUtrQ0h6MUFhdFZWVTR2OU51NkNaUzRWWVY2SnY3am9SWkRiN29nV1V0UHhRMUJIbGhKWgotWklkci9TdmdSdmx6dnQzUGt1R1JXKzFtb0crSktYbEZnTkNEYXRWQlEzZGZPWHdKQkVlQ3NGYzVjTzJqN0JVWgotSHFnekNFZkJCVUtwL1V6RHROL2RCaDlORUZGQVozTVREMEQ0YllFbFh3cXhVOFl3ZmhVNXJQbGE3bitTbnFZRgotVytjVGw0VzFJNUxaMUNRRzFRa2xpWFVIM2FZYWp6OEpHYjZ0WlN4azY1V2IzUDVCWGhlbTJteGJhY3dDdWhRcwotRmlTY1N0ek4wUGRTWjNQeExhQWovWDcwTWNvdGNNcUpDd1RiTHFaUGNHNmV6cjFZaWVKVFdaNXVXcEpsNG9nLwotREpRWm85M2w2SjJWRSswcDI2dHdFdHhheW1zWHExS0NWTEVDQXdFQUFhQUFNQTBHQ1NxR1NJYjNEUUVCRFFVQQotQTRJQkFRQmI4ak5wdDBua05WV3N0Vm9PQ2VwUVNGNVIxUjloRjB5RXI3bWszSEI5b08vbkswN1IxT2FtZ2p3KwotQ0hRUmVUU2pJS1VYNTNvN1p3TlpCNUUrakJEc0d6LzJZeWovdnhOSEpGazJleEVMdFczMGhlOEsyb21WSEUxRgotWEVTYmZ0Q3NzV0xOcFRTRHE2TUUxMitsbGtFRHRnQ3RrdjY5b1JVa3V1RjVFU1VTWlJHSVpONFZsZWRtOFNNMQotdUdGdGFHL1BYYkJidFVhTndOSVNEZUlXREtSdGJ1Y2E1d2ViK1FFaTFkamlVSDIxWldJR0VwT3k3bXRrWW1ScwotUXQxRDMyRm9hcUZOaGFmaWF4TklYTzExeWQ0bGdwYUREbG1yT1NCc0VMY1RJRjk5MTZvM0R3TWVWWHkwR09OVwotQnJ3YU84cThyZytDK3h2TVk3ODU4S2s4a3dqYgotLS0tLS1FTkQgQ0VSVElGSUNBVEUgUkVRVUVTVC0tLS0tCmRpZmYgLS1naXQgYS90ZXN0cy9kYXRhX2ZpbGVzL3NlcnZlcjEuc3BhY2VzLmNydCBiL3Rlc3RzL2RhdGFfZmlsZXMvc2VydmVyMS5zcGFjZXMuY3J0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiNzcxMzJhLi4wMDAwMDAwCi0tLSBhL3Rlc3RzL2RhdGFfZmlsZXMvc2VydmVyMS5zcGFjZXMuY3J0CisrKyAvZGV2L251bGwKQEAgLTEsMjAgKzAsMCBAQAotLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCi1NSUlEUVRDQ0FpbWdBd0lCQWdJQkFUQU5CZ2txaGtpRzl3MEJBUVVGQURBN01Rc3dDUVlEVlFRR0V3Sk9UREVSCi1NQThHQTFVRUNnd0lVRzlzWVhKVFUwd3hHVEFYQmdOVkJBTU1FRkJ2YkdGeVUxTk1JRlJsYzNRZ1EwRXdIaGNOCi1NVGt3TWpFd01UUTBOREEyV2hjTk1qa3dNakV3TVRRME5EQTJXakErTVFzd0NRWURWUVFHRXdKT1RERVRNQkVHCi1BMVVFQ2d3S0lGQnZiR0Z5VTFOTUlERWFNQmdHQTFVRUF3d1JVRzlzWVhKVFUwd2dVMlZ5ZG1WeUlERXdnZ0VpCi1NQTBHQ1NxR1NJYjNEUUVCQVFVQUE0SUJEd0F3Z2dFS0FvSUJBUUNwQWg4OVFHclZWVk9ML1RidWdtVXVGV0ZlCi1pYis0NkVXUTIrNklGbExUOFVOUVI1WVNXV1NIYS8wcjRFYjVjNzdkejVMaGtWdnRacUJ2aVNsNVJZRFFnMnJWCi1RVU4zWHpsOENRUkhnckJYT1hEdG8rd1ZHUjZvTXdoSHdRVkNxZjFNdzdUZjNRWWZUUkJSUUdkekV3OUErRzJCCi1KVjhLc1ZQR01INFZPYXo1V3U1L2twNm1CVnZuRTVlRnRTT1MyZFFrQnRVSkpZbDFCOTJtR284L0NSbStyV1VzCi1aT3VWbTl6K1FWNFhwdHBzVzJuTUFyb1VMQllrbkVyY3pkRDNVbWR6OFMyZ0kvMSs5REhLTFhES2lRc0UyeTZtCi1UM0J1bnM2OVdJbmlVMW1lYmxxU1plS0lQd3lVR2FQZDVlaWRsUlB0S2R1cmNCTGNXc3ByRjZ0U2dsU3hBZ01CCi1BQUdqVFRCTE1Ba0dBMVVkRXdRQ01BQXdIUVlEVlIwT0JCWUVGQjkwMWo4cHdYUjBSVHNGRWl3OXFMMURXUUttCi1NQjhHQTFVZEl3UVlNQmFBRkxSYTVLV3ozdEpTOXJuVnBwVVA2ejY4eC8zL01BMEdDU3FHU0liM0RRRUJCUVVBCi1BNElCQVFCc1Izak9GaDd1R0Y1TUN2RUs4RHJTbW12Y0ZKek1tVFJwMGhDTWViMHdFVUxock1LZVJESWEyeXZyCi1GckhIQ1VOQWsySGpzakpldnBDTThmM2liRHFlY2NrZmJ4RTJ2VDlJVUNtUHJ0T1dtaFFSL0lsNVRSOUZ2WW5zCi00QkYxS1VQUnFHVUZBWG9JTit4S2NZZHArbXlJbHVHSHVtTTRCb3A3dEFaNWdnNjhJVi9VSmg1UnFTaHhpTGdWCi1yeEh6cnA2b00xa24xOTltMndjMVR3eTJZd2NObWZKRFNPTFY2SzR4V2p3Y2M4RXErckxodVdVczVHTmRyU0VZCi1aaldtRjFBbGJWVkNoVTNEbDVYT0FZOFQ2K3dKc3Q1Ukl3a2YxRmwxVFBDWlg4Rld6R005SFlpWVcwY0M3Y25vCi1JZFNTN21WR3hOck5lKzYvQ3UremZxZWlMZE4yCi0tLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCmRpZmYgLS1naXQgYS90ZXN0cy9kYXRhX2ZpbGVzL3NlcnZlcjEudjEuY3J0IGIvdGVzdHMvZGF0YV9maWxlcy9zZXJ2ZXIxLnYxLmNydApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNDdlMzgxMy4uMDAwMDAwMAotLS0gYS90ZXN0cy9kYXRhX2ZpbGVzL3NlcnZlcjEudjEuY3J0CisrKyAvZGV2L251bGwKQEAgLTEsMTggKzAsMCBAQAotLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCi1NSUlDNnpDQ0FkTUNBUUV3RFFZSktvWklodmNOQVFFRkJRQXdPekVMTUFrR0ExVUVCaE1DVGt3eEVUQVBCZ05WCi1CQW9NQ0ZCdmJHRnlVMU5NTVJrd0Z3WURWUVFEREJCUWIyeGhjbE5UVENCVVpYTjBJRU5CTUI0WERURTVNREl4Ci1NREUwTkRRd05sb1hEVEk1TURJeE1ERTBORFF3Tmxvd1BERUxNQWtHQTFVRUJoTUNUa3d4RVRBUEJnTlZCQW9NCi1DRkJ2YkdGeVUxTk1NUm93R0FZRFZRUUREQkZRYjJ4aGNsTlRUQ0JUWlhKMlpYSWdNVENDQVNJd0RRWUpLb1pJCi1odmNOQVFFQkJRQURnZ0VQQURDQ0FRb0NnZ0VCQUtrQ0h6MUFhdFZWVTR2OU51NkNaUzRWWVY2SnY3am9SWkRiCi03b2dXVXRQeFExQkhsaEpaWklkci9TdmdSdmx6dnQzUGt1R1JXKzFtb0crSktYbEZnTkNEYXRWQlEzZGZPWHdKCi1CRWVDc0ZjNWNPMmo3QlVaSHFnekNFZkJCVUtwL1V6RHROL2RCaDlORUZGQVozTVREMEQ0YllFbFh3cXhVOFl3Ci1maFU1clBsYTduK1NucVlGVytjVGw0VzFJNUxaMUNRRzFRa2xpWFVIM2FZYWp6OEpHYjZ0WlN4azY1V2IzUDVCCi1YaGVtMm14YmFjd0N1aFFzRmlTY1N0ek4wUGRTWjNQeExhQWovWDcwTWNvdGNNcUpDd1RiTHFaUGNHNmV6cjFZCi1pZUpUV1o1dVdwSmw0b2cvREpRWm85M2w2SjJWRSswcDI2dHdFdHhheW1zWHExS0NWTEVDQXdFQUFUQU5CZ2txCi1oa2lHOXcwQkFRVUZBQU9DQVFFQWZ1R2hYMnBjbVFnbFhjc2x6UnVhc3ROVVc4QUdhdERzanNzRGVjMjdML2M2Ci1iQ3oveVFDYVp0dzJnazlRTHNZTU90ZWYvaGZiN1JidTVmTHdDbjR6Y1FkbXVoMTduSGNXaDdmbXRYc29lYml6Ci1relY0R01FYVUrQ2M2d3MxaDhHdUxUTEtwci9pTVlGQmhUMWNqVkdtaTBDMkZIQmo4dmJXdjdzRUVJVW92ck1RCi03ZWgxWTFOa1phK3cwc2FnaU1maFdzMkRUek5pa2J5OW1tSllVU21LVFgxZEkyM1lZUEVJRyszc2hrWTg4VkMwCi1JQnVIMmkrcFVYS04reEtoaDliYndMR2RISWZOSGh1SXZma2tBTGhEdUFPdnFBaXMxYnVFQVVvSFIzcWFoSGtoCi0ybnpZL1JPQkczK05DU0RnZ0hFZjZ4eENEZzh4WnBrZGJLS1JGTUdCQ0E9PQotLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQpkaWZmIC0tZ2l0IGEvdGVzdHMvZGF0YV9maWxlcy9zZXJ2ZXIxMC1iYWRzaWduLmNydCBiL3Rlc3RzL2RhdGFfZmlsZXMvc2VydmVyMTAtYmFkc2lnbi5jcnQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGQ0YWM0YjEuLjAwMDAwMDAKLS0tIGEvdGVzdHMvZGF0YV9maWxlcy9zZXJ2ZXIxMC1iYWRzaWduLmNydAorKysgL2Rldi9udWxsCkBAIC0xLDEwICswLDAgQEAKLS0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQotTUlJQlhUQ0NBUUtnQXdJQkFnSUJTekFNQmdncWhrak9QUVFEQWdVQU1Fb3hDekFKQmdOVkJBWVRBbFZMTVJFdwotRHdZRFZRUUtEQWh0WW1Wa0lGUk1VekVvTUNZR0ExVUVBd3dmYldKbFpDQlVURk1nVkdWemRDQnBiblJsY20xbAotWkdsaGRHVWdRMEVnTXpBZUZ3MHhPVEF5TVRBeE5EUTBNRFphRncweU9UQXlNVEF4TkRRME1EWmFNQlF4RWpBUQotQmdOVkJBTU1DV3h2WTJGc2FHOXpkREJaTUJNR0J5cUdTTTQ5QWdFR0NDcUdTTTQ5QXdFSEEwSUFCQnh0OStuYQotcGVxaG5MSnlHYWdKSEhPdDNoVzczcWJqczA4RjZHMFFManBwTjVlQU9jRjEvNzdPY0FHc0MxOWNGRTFEUHdCRQotaDVnR2F5U3ZiYXVVcVBLakRUQUxNQWtHQTFVZEV3UUNNQUF3REFZSUtvWkl6ajBFQXdJRkFBTkhBREJFQWlCdwotSlc4YzV4TmlISW44MytGeDc0SmlXMEl5UktlOVRSTjN3K01tZmNGS3d3SWdXeWpBcC94S09CYVEyaWZScVhINgotM21RVWpRTkZ6SFBGcFdxakhDcDB2UzA9Ci0tLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCmRpZmYgLS1naXQgYS90ZXN0cy9kYXRhX2ZpbGVzL3NlcnZlcjEwLWJzX2ludDMucGVtIGIvdGVzdHMvZGF0YV9maWxlcy9zZXJ2ZXIxMC1ic19pbnQzLnBlbQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZDgyNGM0My4uMDAwMDAwMAotLS0gYS90ZXN0cy9kYXRhX2ZpbGVzL3NlcnZlcjEwLWJzX2ludDMucGVtCisrKyAvZGV2L251bGwKQEAgLTEsMjIgKzAsMCBAQAotLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCi1NSUlCWFRDQ0FRS2dBd0lCQWdJQlN6QU1CZ2dxaGtqT1BRUURBZ1VBTUVveEN6QUpCZ05WQkFZVEFsVkxNUkV3Ci1Ed1lEVlFRS0RBaHRZbVZrSUZSTVV6RW9NQ1lHQTFVRUF3d2ZiV0psWkNCVVRGTWdWR1Z6ZENCcGJuUmxjbTFsCi1aR2xoZEdVZ1EwRWdNekFlRncweE9UQXlNVEF4TkRRME1EWmFGdzB5T1RBeU1UQXhORFEwTURaYU1CUXhFakFRCi1CZ05WQkFNTUNXeHZZMkZzYUc5emREQlpNQk1HQnlxR1NNNDlBZ0VHQ0NxR1NNNDlBd0VIQTBJQUJCeHQ5K25hCi1wZXFobkxKeUdhZ0pISE90M2hXNzNxYmpzMDhGNkcwUUxqcHBONWVBT2NGMS83N09jQUdzQzE5Y0ZFMURQd0JFCi1oNWdHYXlTdmJhdVVxUEtqRFRBTE1Ba0dBMVVkRXdRQ01BQXdEQVlJS29aSXpqMEVBd0lGQUFOSEFEQkVBaUJ3Ci1KVzhjNXhOaUhJbjgzK0Z4NzRKaVcwSXlSS2U5VFJOM3crTW1mY0ZLd3dJZ1d5akFwL3hLT0JhUTJpZlJxWEg2Ci0zbVFValFORnpIUEZwV3FqSENwMHZTMD0KLS0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KLS0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQotTUlJQnN6Q0NBVHFnQXdJQkFnSUJUVEFLQmdncWhrak9QUVFEQWpCTE1Rc3dDUVlEVlFRR0V3Sk9UREVSTUE4RwotQTFVRUNnd0lVRzlzWVhKVFUwd3hLVEFuQmdOVkJBTU1JRkJ2YkdGeVUxTk1JRlJsYzNRZ1NXNTBaWEp0WldScAotWVhSbElFVkRJRU5CTUI0WERUSXpNRFV4TnpBM01UQXpOMW9YRFRNek1EVXhOekEzTVRBek4xb3dTakVMTUFrRwotQTFVRUJoTUNWVXN4RVRBUEJnTlZCQW9NQ0cxaVpXUWdWRXhUTVNnd0pnWURWUVFEREI5dFltVmtJRlJNVXlCVQotWlhOMElHbHVkR1Z5YldWa2FXRjBaU0JEUVNBek1Ga3dFd1lIS29aSXpqMENBUVlJS29aSXpqMERBUWNEUWdBRQotNzMyZldITE5QTVBzUDFVMWliWHZiNTVlcmxFVk1scFhCR3NqK0tZd1ZxVTFYQ21XOVo5aGhQN1gvNWpzL0RYOQotMkovdXRvSHlqVXRWcFFPemRUcmJzYU1RTUE0d0RBWURWUjBUQkFVd0F3RUIvekFLQmdncWhrak9QUVFEQWdObgotQURCa0FqQVp4OGswcStEdFQvTEpkMUZqUGNHL3Blb1FEZk1CTDJqUy82UHd4VyszK1pQTXBIWm4wcitKcENhRgotK1Yvc005a0NNR3FjeFF3eC9ic01hSzB5OXpxc2hDNy9TNWhWbEErV1JWeU1mRUdKbVhuZmJkd2g2Q0J5S0l3dgotMUdSZTg2ZGcxQT09Ci0tLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCmRpZmYgLS1naXQgYS90ZXN0cy9kYXRhX2ZpbGVzL3NlcnZlcjEwLmNydCBiL3Rlc3RzL2RhdGFfZmlsZXMvc2VydmVyMTAuY3J0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1MmI1ZWEwLi4wMDAwMDAwCi0tLSBhL3Rlc3RzL2RhdGFfZmlsZXMvc2VydmVyMTAuY3J0CisrKyAvZGV2L251bGwKQEAgLTEsMTAgKzAsMCBAQAotLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCi1NSUlCWFRDQ0FRS2dBd0lCQWdJQlN6QU1CZ2dxaGtqT1BRUURBZ1VBTUVveEN6QUpCZ05WQkFZVEFsVkxNUkV3Ci1Ed1lEVlFRS0RBaHRZbVZrSUZSTVV6RW9NQ1lHQTFVRUF3d2ZiV0psWkNCVVRGTWdWR1Z6ZENCcGJuUmxjbTFsCi1aR2xoZEdVZ1EwRWdNekFlRncweE9UQXlNVEF4TkRRME1EWmFGdzB5T1RBeU1UQXhORFEwTURaYU1CUXhFakFRCi1CZ05WQkFNTUNXeHZZMkZzYUc5emREQlpNQk1HQnlxR1NNNDlBZ0VHQ0NxR1NNNDlBd0VIQTBJQUJCeHQ5K25hCi1wZXFobkxKeUdhZ0pISE90M2hXNzNxYmpzMDhGNkcwUUxqcHBONWVBT2NGMS83N09jQUdzQzE5Y0ZFMURQd0JFCi1oNWdHYXlTdmJhdVVxUEtqRFRBTE1Ba0dBMVVkRXdRQ01BQXdEQVlJS29aSXpqMEVBd0lGQUFOSEFEQkVBaUJ3Ci1KVzhjNXhOaUhJbjgzK0Z4NzRKaVcwSXlSS2U5VFJOM3crTW1mY0ZLd3dJZ1d5akFwL3hLT0JhUTJpZlJxWEg2Ci0zbVFValFORnpIUEZwV3FqSENwMHZTND0KLS0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KZGlmZiAtLWdpdCBhL3Rlc3RzL2RhdGFfZmlsZXMvc2VydmVyMTAua2V5IGIvdGVzdHMvZGF0YV9maWxlcy9zZXJ2ZXIxMC5rZXkKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwODgzMzEuLjAwMDAwMDAKLS0tIGEvdGVzdHMvZGF0YV9maWxlcy9zZXJ2ZXIxMC5rZXkKKysrIC9kZXYvbnVsbApAQCAtMSw1ICswLDAgQEAKLS0tLS0tQkVHSU4gRUMgUFJJVkFURSBLRVktLS0tLQotTUhjQ0FRRUVJTEJETXM3YlJWeFZnNm92VHBmMnpCOW0rMjJqWTdSM0xOS1J2Q1BmYTZZSm9Bb0dDQ3FHU000OQotQXdFSG9VUURRZ0FFSEczMzZkcWw2cUdjc25JWnFBa2NjNjNlRmJ2ZXB1T3pUd1hvYlJBdU9tazNsNEE1d1hYLwotdnM1d0Fhd0xYMXdVVFVNL0FFU0htQVpySks5dHE1U284Zz09Ci0tLS0tLUVORCBFQyBQUklWQVRFIEtFWS0tLS0tCmRpZmYgLS1naXQgYS90ZXN0cy9kYXRhX2ZpbGVzL3NlcnZlcjEwX2ludDMtYnMucGVtIGIvdGVzdHMvZGF0YV9maWxlcy9zZXJ2ZXIxMF9pbnQzLWJzLnBlbQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOWE4MmIxNy4uMDAwMDAwMAotLS0gYS90ZXN0cy9kYXRhX2ZpbGVzL3NlcnZlcjEwX2ludDMtYnMucGVtCisrKyAvZGV2L251bGwKQEAgLTEsMjIgKzAsMCBAQAotLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCi1NSUlCWFRDQ0FRS2dBd0lCQWdJQlN6QU1CZ2dxaGtqT1BRUURBZ1VBTUVveEN6QUpCZ05WQkFZVEFsVkxNUkV3Ci1Ed1lEVlFRS0RBaHRZbVZrSUZSTVV6RW9NQ1lHQTFVRUF3d2ZiV0psWkNCVVRGTWdWR1Z6ZENCcGJuUmxjbTFsCi1aR2xoZEdVZ1EwRWdNekFlRncweE9UQXlNVEF4TkRRME1EWmFGdzB5T1RBeU1UQXhORFEwTURaYU1CUXhFakFRCi1CZ05WQkFNTUNXeHZZMkZzYUc5emREQlpNQk1HQnlxR1NNNDlBZ0VHQ0NxR1NNNDlBd0VIQTBJQUJCeHQ5K25hCi1wZXFobkxKeUdhZ0pISE90M2hXNzNxYmpzMDhGNkcwUUxqcHBONWVBT2NGMS83N09jQUdzQzE5Y0ZFMURQd0JFCi1oNWdHYXlTdmJhdVVxUEtqRFRBTE1Ba0dBMVVkRXdRQ01BQXdEQVlJS29aSXpqMEVBd0lGQUFOSEFEQkVBaUJ3Ci1KVzhjNXhOaUhJbjgzK0Z4NzRKaVcwSXlSS2U5VFJOM3crTW1mY0ZLd3dJZ1d5akFwL3hLT0JhUTJpZlJxWEg2Ci0zbVFValFORnpIUEZwV3FqSENwMHZTND0KLS0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KLS0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQotTUlJQnN6Q0NBVHFnQXdJQkFnSUJUVEFLQmdncWhrak9QUVFEQWpCTE1Rc3dDUVlEVlFRR0V3Sk9UREVSTUE4RwotQTFVRUNnd0lVRzlzWVhKVFUwd3hLVEFuQmdOVkJBTU1JRkJ2YkdGeVUxTk1JRlJsYzNRZ1NXNTBaWEp0WldScAotWVhSbElFVkRJRU5CTUI0WERUSXpNRFV4TnpBM01UQXpOMW9YRFRNek1EVXhOekEzTVRBek4xb3dTakVMTUFrRwotQTFVRUJoTUNWVXN4RVRBUEJnTlZCQW9NQ0cxaVpXUWdWRXhUTVNnd0pnWURWUVFEREI5dFltVmtJRlJNVXlCVQotWlhOMElHbHVkR1Z5YldWa2FXRjBaU0JEUVNBek1Ga3dFd1lIS29aSXpqMENBUVlJS29aSXpqMERBUWNEUWdBRQotNzMyZldITE5QTVBzUDFVMWliWHZiNTVlcmxFVk1scFhCR3NqK0tZd1ZxVTFYQ21XOVo5aGhQN1gvNWpzL0RYOQotMkovdXRvSHlqVXRWcFFPemRUcmJzYU1RTUE0d0RBWURWUjBUQkFVd0F3RUIvekFLQmdncWhrak9QUVFEQWdObgotQURCa0FqQVp4OGswcStEdFQvTEpkMUZqUGNHL3Blb1FEZk1CTDJqUy82UHd4VyszK1pQTXBIWm4wcitKcENhRgotK1Yvc005a0NNR3FjeFF3eC9ic01hSzB5OXpxc2hDNy9TNWhWbEErV1JWeU1mRUdKbVhuZmJkd2g2Q0J5S0l3dgotMUdSZTg2ZGcxMD09Ci0tLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCmRpZmYgLS1naXQgYS90ZXN0cy9kYXRhX2ZpbGVzL3NlcnZlcjEwX2ludDNfaW50LWNhMi5jcnQgYi90ZXN0cy9kYXRhX2ZpbGVzL3NlcnZlcjEwX2ludDNfaW50LWNhMi5jcnQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGI1ODUyOTIuLjAwMDAwMDAKLS0tIGEvdGVzdHMvZGF0YV9maWxlcy9zZXJ2ZXIxMF9pbnQzX2ludC1jYTIuY3J0CisrKyAvZGV2L251bGwKQEAgLTEsNDAgKzAsMCBAQAotLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCi1NSUlCWFRDQ0FRS2dBd0lCQWdJQlN6QU1CZ2dxaGtqT1BRUURBZ1VBTUVveEN6QUpCZ05WQkFZVEFsVkxNUkV3Ci1Ed1lEVlFRS0RBaHRZbVZrSUZSTVV6RW9NQ1lHQTFVRUF3d2ZiV0psWkNCVVRGTWdWR1Z6ZENCcGJuUmxjbTFsCi1aR2xoZEdVZ1EwRWdNekFlRncweE9UQXlNVEF4TkRRME1EWmFGdzB5T1RBeU1UQXhORFEwTURaYU1CUXhFakFRCi1CZ05WQkFNTUNXeHZZMkZzYUc5emREQlpNQk1HQnlxR1NNNDlBZ0VHQ0NxR1NNNDlBd0VIQTBJQUJCeHQ5K25hCi1wZXFobkxKeUdhZ0pISE90M2hXNzNxYmpzMDhGNkcwUUxqcHBONWVBT2NGMS83N09jQUdzQzE5Y0ZFMURQd0JFCi1oNWdHYXlTdmJhdVVxUEtqRFRBTE1Ba0dBMVVkRXdRQ01BQXdEQVlJS29aSXpqMEVBd0lGQUFOSEFEQkVBaUJ3Ci1KVzhjNXhOaUhJbjgzK0Z4NzRKaVcwSXlSS2U5VFJOM3crTW1mY0ZLd3dJZ1d5akFwL3hLT0JhUTJpZlJxWEg2Ci0zbVFValFORnpIUEZwV3FqSENwMHZTND0KLS0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KLS0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQotTUlJQnN6Q0NBVHFnQXdJQkFnSUJUVEFLQmdncWhrak9QUVFEQWpCTE1Rc3dDUVlEVlFRR0V3Sk9UREVSTUE4RwotQTFVRUNnd0lVRzlzWVhKVFUwd3hLVEFuQmdOVkJBTU1JRkJ2YkdGeVUxTk1JRlJsYzNRZ1NXNTBaWEp0WldScAotWVhSbElFVkRJRU5CTUI0WERUSXpNRFV4TnpBM01UQXpOMW9YRFRNek1EVXhOekEzTVRBek4xb3dTakVMTUFrRwotQTFVRUJoTUNWVXN4RVRBUEJnTlZCQW9NQ0cxaVpXUWdWRXhUTVNnd0pnWURWUVFEREI5dFltVmtJRlJNVXlCVQotWlhOMElHbHVkR1Z5YldWa2FXRjBaU0JEUVNBek1Ga3dFd1lIS29aSXpqMENBUVlJS29aSXpqMERBUWNEUWdBRQotNzMyZldITE5QTVBzUDFVMWliWHZiNTVlcmxFVk1scFhCR3NqK0tZd1ZxVTFYQ21XOVo5aGhQN1gvNWpzL0RYOQotMkovdXRvSHlqVXRWcFFPemRUcmJzYU1RTUE0d0RBWURWUjBUQkFVd0F3RUIvekFLQmdncWhrak9QUVFEQWdObgotQURCa0FqQVp4OGswcStEdFQvTEpkMUZqUGNHL3Blb1FEZk1CTDJqUy82UHd4VyszK1pQTXBIWm4wcitKcENhRgotK1Yvc005a0NNR3FjeFF3eC9ic01hSzB5OXpxc2hDNy9TNWhWbEErV1JWeU1mRUdKbVhuZmJkd2g2Q0J5S0l3dgotMUdSZTg2ZGcxQT09Ci0tLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCi0tLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KLU1JSUM2VENDQWRHZ0F3SUJBZ0lCRHpBTkJna3Foa2lHOXcwQkFRc0ZBREE3TVFzd0NRWURWUVFHRXdKT1RERVIKLU1BOEdBMVVFQ2d3SVVHOXNZWEpUVTB3eEdUQVhCZ05WQkFNTUVGQnZiR0Z5VTFOTUlGUmxjM1FnUTBFd0hoY04KLU1qTXdOVEUzTURreU56QXlXaGNOTXpNd05URTNNRGt5TnpBeVdqQkxNUXN3Q1FZRFZRUUdFd0pPVERFUk1BOEcKLUExVUVDZ3dJVUc5c1lYSlRVMHd4S1RBbkJnTlZCQU1NSUZCdmJHRnlVMU5NSUZSbGMzUWdTVzUwWlhKdFpXUnAKLVlYUmxJRVZESUVOQk1IWXdFQVlIS29aSXpqMENBUVlGSzRFRUFDSURZZ0FFOE9paDNmWDVTTGVOMWRtRm5jUWwKLVdNdzkrWTZzWGJsaGxyWEJ4aFh4andkd3BDSEVObitmb1VWZHJxWVZZYTdTdXYzUVZlTzZuSjE5SDNRTml4VzgKLWlrMVAraHhzYmFxOGJ0YTc4dkF5SG1DNEVtWFFMZzF3N294YjlRODJxWDFZbzRHVk1JR1NNQjBHQTFVZERnUVcKLUJCUVBpYjFqUWV2TFhoY28vMmd3UGNHSTBKeFlPVEJqQmdOVkhTTUVYREJhZ0JTMFd1U2xzOTdTVXZhNTFhYVYKLUQrcyt2TWY5LzZFL3BEMHdPekVMTUFrR0ExVUVCaE1DVGt3eEVUQVBCZ05WQkFvTUNGQnZiR0Z5VTFOTU1Sa3cKLUZ3WURWUVFEREJCUWIyeGhjbE5UVENCVVpYTjBJRU5CZ2dFRE1Bd0dBMVVkRXdRRk1BTUJBZjh3RFFZSktvWkkKLWh2Y05BUUVMQlFBRGdnRUJBSFROMFVSclAyTXB3RDh2T0R5bWpqcTdpYUI3V0ZaNENXVWp4OUxXdTNQUFpiWDIKLTEyTXh6a3lGYVZSN3JuUEtaU0ZISkpFbU5hUERKV3dZaEdRUlhMQ29ENk5pSnk2RGU0ZmE1Z1NZb1h0aFJHRmYKLUduRlhadTNlMzdHREtvS1A4N1RaK1ZYY3l4NlBIdlB4SkIzLzlOOTRWajJZaDNoQ3M3RjcyR213ZkR3dzZvb2oKLXdoSXFoeEJZT2hQbGVBTnM3MEZaN1k3dGpaVjFSdFExLzlzUmNieXY5T3ZkUHVXdnVrQlZxMUtNNm5xVkhCWjMKLS80a0hCV2FGYVdNcS9BQXhNeGFUR0ZBT0E4UzJ5VTU2amtCNjV2aVFycFFRV2ZmQkpXSytXZnJjZ3hSV3FSMzMKLWhxRzN5VDFJV2JKNUUxMVhMOVRDS0QrRFJlcWVYSHlZYXd4OGZCVT0KLS0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KZGlmZiAtLWdpdCBhL3Rlc3RzL2RhdGFfZmlsZXMvc2VydmVyMTBfaW50M19pbnQtY2EyX2NhLmNydCBiL3Rlc3RzL2RhdGFfZmlsZXMvc2VydmVyMTBfaW50M19pbnQtY2EyX2NhLmNydApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMzYwMWEyMC4uMDAwMDAwMAotLS0gYS90ZXN0cy9kYXRhX2ZpbGVzL3NlcnZlcjEwX2ludDNfaW50LWNhMl9jYS5jcnQKKysrIC9kZXYvbnVsbApAQCAtMSw2MCArMCwwIEBACi0tLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KLU1JSUJYVENDQVFLZ0F3SUJBZ0lCU3pBTUJnZ3Foa2pPUFFRREFnVUFNRW94Q3pBSkJnTlZCQVlUQWxWTE1SRXcKLUR3WURWUVFLREFodFltVmtJRlJNVXpFb01DWUdBMVVFQXd3ZmJXSmxaQ0JVVEZNZ1ZHVnpkQ0JwYm5SbGNtMWwKLVpHbGhkR1VnUTBFZ016QWVGdzB4T1RBeU1UQXhORFEwTURaYUZ3MHlPVEF5TVRBeE5EUTBNRFphTUJReEVqQVEKLUJnTlZCQU1NQ1d4dlkyRnNhRzl6ZERCWk1CTUdCeXFHU000OUFnRUdDQ3FHU000OUF3RUhBMElBQkJ4dDkrbmEKLXBlcWhuTEp5R2FnSkhIT3QzaFc3M3FianMwOEY2RzBRTGpwcE41ZUFPY0YxLzc3T2NBR3NDMTljRkUxRFB3QkUKLWg1Z0dheVN2YmF1VXFQS2pEVEFMTUFrR0ExVWRFd1FDTUFBd0RBWUlLb1pJemowRUF3SUZBQU5IQURCRUFpQncKLUpXOGM1eE5pSEluODMrRng3NEppVzBJeVJLZTlUUk4zdytNbWZjRkt3d0lnV3lqQXAveEtPQmFRMmlmUnFYSDYKLTNtUVVqUU5GekhQRnBXcWpIQ3AwdlM0PQotLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQotLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCi1NSUlCc3pDQ0FUcWdBd0lCQWdJQlRUQUtCZ2dxaGtqT1BRUURBakJMTVFzd0NRWURWUVFHRXdKT1RERVJNQThHCi1BMVVFQ2d3SVVHOXNZWEpUVTB3eEtUQW5CZ05WQkFNTUlGQnZiR0Z5VTFOTUlGUmxjM1FnU1c1MFpYSnRaV1JwCi1ZWFJsSUVWRElFTkJNQjRYRFRJek1EVXhOekEzTVRBek4xb1hEVE16TURVeE56QTNNVEF6TjFvd1NqRUxNQWtHCi1BMVVFQmhNQ1ZVc3hFVEFQQmdOVkJBb01DRzFpWldRZ1ZFeFRNU2d3SmdZRFZRUUREQjl0WW1Wa0lGUk1VeUJVCi1aWE4wSUdsdWRHVnliV1ZrYVdGMFpTQkRRU0F6TUZrd0V3WUhLb1pJemowQ0FRWUlLb1pJemowREFRY0RRZ0FFCi03MzJmV0hMTlBNUHNQMVUxaWJYdmI1NWVybEVWTWxwWEJHc2orS1l3VnFVMVhDbVc5WjloaFA3WC81anMvRFg5Ci0ySi91dG9IeWpVdFZwUU96ZFRyYnNhTVFNQTR3REFZRFZSMFRCQVV3QXdFQi96QUtCZ2dxaGtqT1BRUURBZ05uCi1BREJrQWpBWng4azBxK0R0VC9MSmQxRmpQY0cvcGVvUURmTUJMMmpTLzZQd3hXKzMrWlBNcEhabjByK0pwQ2FGCi0rVi9zTTlrQ01HcWN4UXd4L2JzTWFLMHk5enFzaEM3L1M1aFZsQStXUlZ5TWZFR0ptWG5mYmR3aDZDQnlLSXd2Ci0xR1JlODZkZzFBPT0KLS0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KLS0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQotTUlJQzZUQ0NBZEdnQXdJQkFnSUJEekFOQmdrcWhraUc5dzBCQVFzRkFEQTdNUXN3Q1FZRFZRUUdFd0pPVERFUgotTUE4R0ExVUVDZ3dJVUc5c1lYSlRVMHd4R1RBWEJnTlZCQU1NRUZCdmJHRnlVMU5NSUZSbGMzUWdRMEV3SGhjTgotTWpNd05URTNNRGt5TnpBeVdoY05Nek13TlRFM01Ea3lOekF5V2pCTE1Rc3dDUVlEVlFRR0V3Sk9UREVSTUE4RwotQTFVRUNnd0lVRzlzWVhKVFUwd3hLVEFuQmdOVkJBTU1JRkJ2YkdGeVUxTk1JRlJsYzNRZ1NXNTBaWEp0WldScAotWVhSbElFVkRJRU5CTUhZd0VBWUhLb1pJemowQ0FRWUZLNEVFQUNJRFlnQUU4T2loM2ZYNVNMZU4xZG1GbmNRbAotV013OStZNnNYYmxobHJYQnhoWHhqd2R3cENIRU5uK2ZvVVZkcnFZVllhN1N1djNRVmVPNm5KMTlIM1FOaXhXOAotaWsxUCtoeHNiYXE4YnRhNzh2QXlIbUM0RW1YUUxnMXc3b3hiOVE4MnFYMVlvNEdWTUlHU01CMEdBMVVkRGdRVwotQkJRUGliMWpRZXZMWGhjby8yZ3dQY0dJMEp4WU9UQmpCZ05WSFNNRVhEQmFnQlMwV3VTbHM5N1NVdmE1MWFhVgotRCtzK3ZNZjkvNkUvcEQwd096RUxNQWtHQTFVRUJoTUNUa3d4RVRBUEJnTlZCQW9NQ0ZCdmJHRnlVMU5NTVJrdwotRndZRFZRUUREQkJRYjJ4aGNsTlRUQ0JVWlhOMElFTkJnZ0VETUF3R0ExVWRFd1FGTUFNQkFmOHdEUVlKS29aSQotaHZjTkFRRUxCUUFEZ2dFQkFIVE4wVVJyUDJNcHdEOHZPRHltampxN2lhQjdXRlo0Q1dVang5TFd1M1BQWmJYMgotMTJNeHpreUZhVlI3cm5QS1pTRkhKSkVtTmFQREpXd1loR1FSWExDb0Q2TmlKeTZEZTRmYTVnU1lvWHRoUkdGZgotR25GWFp1M2UzN0dES29LUDg3VForVlhjeXg2UEh2UHhKQjMvOU45NFZqMlloM2hDczdGNzJHbXdmRHd3Nm9vagotd2hJcWh4QllPaFBsZUFOczcwRlo3WTd0alpWMVJ0UTEvOXNSY2J5djlPdmRQdVd2dWtCVnExS002bnFWSEJaMwotLzRrSEJXYUZhV01xL0FBeE14YVRHRkFPQThTMnlVNTZqa0I2NXZpUXJwUVFXZmZCSldLK1dmcmNneFJXcVIzMwotaHFHM3lUMUlXYko1RTExWEw5VENLRCtEUmVxZVhIeVlhd3g4ZkJVPQotLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQotLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCi1NSUlEUkRDQ0FpeWdBd0lCQWdJQkF6QU5CZ2txaGtpRzl3MEJBUVVGQURBN01Rc3dDUVlEVlFRR0V3Sk9UREVSCi1NQThHQTFVRUNnd0lVRzlzWVhKVFUwd3hHVEFYQmdOVkJBTU1FRkJ2YkdGeVUxTk1JRlJsYzNRZ1EwRXdIaGNOCi1NVGt3TWpFd01UUTBOREF3V2hjTk1qa3dNakV3TVRRME5EQXdXakE3TVFzd0NRWURWUVFHRXdKT1RERVJNQThHCi1BMVVFQ2d3SVVHOXNZWEpUVTB3eEdUQVhCZ05WQkFNTUVGQnZiR0Z5VTFOTUlGUmxjM1FnUTBFd2dnRWlNQTBHCi1DU3FHU0liM0RRRUJBUVVBQTRJQkR3QXdnZ0VLQW9JQkFRREEzemY4Rjd2Z2xwMC9odDZXTW4xRXBSYWd6U0h4Ci1tZFRzNnN0OEdGZ0lsS1hzbThXTDN4b2VtVGlaaHg1N3dJMDUzemhkY0hnSDA1N1prK2k1Y2xIRnpxTXdVcW55Ci01MEJ3Rk10RW9uSUx3dVZBK1Q3bHBnNnorZXhLWThDNEtRQjBuRmM3cUtVRWtISHh2WVBaUDlhbDRqd3FqKzhuCi1ZTVBHbjh1NjdHQjl0K2FFTXI1UCsxZ21JZ05iMUxUVisvWGpsaTV3d09RdXZmd3U3dUpCVmNBMExuMGtjbW5MCi1SN0VVUUlOOVovU0c5akdyOFhta3NyVXVFdm1FRi9CaWJ5YytFMWl4VkEwaG1uTTNvVERQYjVMYzl1bjhyTnN1Ci1LTkYrQWtzam9CWHlPR1ZrQ2VvTWJvNGJGNkJ4eUxPYnlhdnB3L0xQaDVhUGdBSXlucGxZYjZMVkFnTUJBQUdqCi1VekJSTUE4R0ExVWRFd0VCL3dRRk1BTUJBZjh3SFFZRFZSME9CQllFRkxSYTVLV3ozdEpTOXJuVnBwVVA2ejY4Ci14LzMvTUI4R0ExVWRJd1FZTUJhQUZMUmE1S1d6M3RKUzlyblZwcFVQNno2OHgvMy9NQTBHQ1NxR1NJYjNEUUVCCi1CUVVBQTRJQkFRQ3o1NTdaWm1XdjVVVFRIZWJ6VHlWemt1NWxkcGNpY0pQcUtIUDN4WjR0UFBZNTJKUXlKZy9UCi1oc1JCNDR5VHlObzMvam85b3IyS2dWbmMrL25DbW5sdlRxMjJhL2oyNkR0S1o3d0Q5TVd4dW5wa3FSd0V4dEEvCi1HODE2bXNybDZYNm01MFd3ZExYVHZhVkpHWENZcDhUUFZMeDVZWTNXUElWb1gwQ1BON0hzOWlOSk5pRVdvNFFmCi03ZEFxaldCQi9RcHVzbVdoamFEU2M0K2NGaFQyNFlvOUh1UzF5cmtVVHJCdEphajBBeWtUc2l5Rm02U0JWRE5ICi05WEl4Q2dZeTlRclliREtOdEpYaHVldnBOMHlVTVYvYVVuSWtVMndUVG91aE96Wmlzak5rMHNTMWd1cW1TSHpmCi1obGY4cW90T2hOdkZYcEVzQ0d3WlV5d2F5bzdjNER0TwotLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQpkaWZmIC0tZ2l0IGEvdGVzdHMvZGF0YV9maWxlcy9zZXJ2ZXIxMF9pbnQzX3NwdXJpb3VzX2ludC1jYTIuY3J0IGIvdGVzdHMvZGF0YV9maWxlcy9zZXJ2ZXIxMF9pbnQzX3NwdXJpb3VzX2ludC1jYTIuY3J0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4N2NjNDc2Li4wMDAwMDAwCi0tLSBhL3Rlc3RzL2RhdGFfZmlsZXMvc2VydmVyMTBfaW50M19zcHVyaW91c19pbnQtY2EyLmNydAorKysgL2Rldi9udWxsCkBAIC0xLDY0ICswLDAgQEAKLS0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQotTUlJQlhUQ0NBUUtnQXdJQkFnSUJTekFNQmdncWhrak9QUVFEQWdVQU1Fb3hDekFKQmdOVkJBWVRBbFZMTVJFdwotRHdZRFZRUUtEQWh0WW1Wa0lGUk1VekVvTUNZR0ExVUVBd3dmYldKbFpDQlVURk1nVkdWemRDQnBiblJsY20xbAotWkdsaGRHVWdRMEVnTXpBZUZ3MHhPVEF5TVRBeE5EUTBNRFphRncweU9UQXlNVEF4TkRRME1EWmFNQlF4RWpBUQotQmdOVkJBTU1DV3h2WTJGc2FHOXpkREJaTUJNR0J5cUdTTTQ5QWdFR0NDcUdTTTQ5QXdFSEEwSUFCQnh0OStuYQotcGVxaG5MSnlHYWdKSEhPdDNoVzczcWJqczA4RjZHMFFManBwTjVlQU9jRjEvNzdPY0FHc0MxOWNGRTFEUHdCRQotaDVnR2F5U3ZiYXVVcVBLakRUQUxNQWtHQTFVZEV3UUNNQUF3REFZSUtvWkl6ajBFQXdJRkFBTkhBREJFQWlCdwotSlc4YzV4TmlISW44MytGeDc0SmlXMEl5UktlOVRSTjN3K01tZmNGS3d3SWdXeWpBcC94S09CYVEyaWZScVhINgotM21RVWpRTkZ6SFBGcFdxakhDcDB2UzQ9Ci0tLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCi0tLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KLU1JSUJzekNDQVRxZ0F3SUJBZ0lCVFRBS0JnZ3Foa2pPUFFRREFqQkxNUXN3Q1FZRFZRUUdFd0pPVERFUk1BOEcKLUExVUVDZ3dJVUc5c1lYSlRVMHd4S1RBbkJnTlZCQU1NSUZCdmJHRnlVMU5NSUZSbGMzUWdTVzUwWlhKdFpXUnAKLVlYUmxJRVZESUVOQk1CNFhEVEl6TURVeE56QTNNVEF6TjFvWERUTXpNRFV4TnpBM01UQXpOMW93U2pFTE1Ba0cKLUExVUVCaE1DVlVzeEVUQVBCZ05WQkFvTUNHMWlaV1FnVkV4VE1TZ3dKZ1lEVlFRRERCOXRZbVZrSUZSTVV5QlUKLVpYTjBJR2x1ZEdWeWJXVmthV0YwWlNCRFFTQXpNRmt3RXdZSEtvWkl6ajBDQVFZSUtvWkl6ajBEQVFjRFFnQUUKLTczMmZXSExOUE1Qc1AxVTFpYlh2YjU1ZXJsRVZNbHBYQkdzaitLWXdWcVUxWENtVzlaOWhoUDdYLzVqcy9EWDkKLTJKL3V0b0h5alV0VnBRT3pkVHJic2FNUU1BNHdEQVlEVlIwVEJBVXdBd0VCL3pBS0JnZ3Foa2pPUFFRREFnTm4KLUFEQmtBakFaeDhrMHErRHRUL0xKZDFGalBjRy9wZW9RRGZNQkwyalMvNlB3eFcrMytaUE1wSFpuMHIrSnBDYUYKLStWL3NNOWtDTUdxY3hRd3gvYnNNYUsweTl6cXNoQzcvUzVoVmxBK1dSVnlNZkVHSm1YbmZiZHdoNkNCeUtJd3YKLTFHUmU4NmRnMUE9PQotLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQotLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCi1NSUlFQVRDQ0E0ZWdBd0lCQWdJQkRqQUtCZ2dxaGtqT1BRUURBakErTVFzd0NRWURWUVFHRXdKT1RERVJNQThHCi1BMVVFQ2d3SVVHOXNZWEpUVTB3eEhEQWFCZ05WQkFNTUUxQnZiR0Z5YzNOc0lGUmxjM1FnUlVNZ1EwRXdIaGNOCi1Nak13TlRFM01EY3hNRE0zV2hjTk16TXdOVEUzTURjeE1ETTNXakJJTVFzd0NRWURWUVFHRXdKT1RERVJNQThHCi1BMVVFQ2d3SVVHOXNZWEpUVTB3eEpqQWtCZ05WQkFNTUhWQnZiR0Z5VTFOTUlGUmxjM1FnU1c1MFpYSnRaV1JwCi1ZWFJsSUVOQk1JSUNJakFOQmdrcWhraUc5dzBCQVFFRkFBT0NBZzhBTUlJQ0NnS0NBZ0VBbzFPYzhucjZmTVRxCi12b3dWK0NwQzU1aTVCWkdGR2M1MEViNFJMQlNSVEgxZTdKZXBkRmpBVmJCdHlRUkpTaVkxamEwdGdMUURES1pSCi13ZkVJK2I0YXpzZTQ2MEluUEh2N0MxVE4wdXBYbHh1ajZtOUIxSWxQK3NCYU03V0JDNmRWZlBPK2pWTUl4Z2tGCi1DYUJDTGhoZEsxRmpmOEhqa1QvUGtjdFduaG84TlR3aXZjOStucVJaalhlL2VJY3FtNUh3akREaHUrZ3orbzBnCi1WejlNZlpOaTFKeUNyT3lOWmN5K2NyMlFlTm5OVkduRnE4eFR4dHU2ZEx1bmhwbUxGajJtbTBWandhN1lwajVxCi1BanBxVE10RHZxYlJ1VG95b3l6YWpoTU5jQ0FmN2d3ekl1cEpKRlZkamR0Z1lBY1F3emlrd0Y1SG9JVEp6ekoyCi1xZ3hGN0NtdkdaTmI3Rzk5bUxkTGRodGNsSDN3QVFLSFl3RUdKbzdYS3lORXVIUFFnQitlMGNnMVNEMUhxbEFNCi11Q2ZHR1RXUTZtZTdCamFuM3QwTnpvVGREcTZJcEtUZXNiYVkrLzllMnhuOERDcmhCS0xYUU1aRkRacVVvTFlBCi1rR1BPRUdndmxQbklJWEFhd291eENhTllFaDVVdzg3MVlNU1BUMjhyTGRGcjQ5ZHdZT3REZzlmb0E4aERJVzJQCi1kNktYYnJadGVlc3ZBMW5ZekVPcyszQWpyYlQ3OU1kMlc4Qno5YnFCVk5sTk9FU1NxbTRraUNKRm1zbG0vNmJyCi1OcDBNU1FkK28yMlBRNHhSdG1QNlVzVGZVMHVlaU1wWWM4VFlZaE1iZm5mRnlvNG03MDdlYmNmbFBiQkVOMmRnCi11cGRRNjZjdmZDSkIwUUp0OXVwYWZZMGxwZFYxcVVrQ0F3RUFBYU9Cb0RDQm5UQWRCZ05WSFE0RUZnUVVPSGZZCi1hM2VjS0hlQ2kwN1lHNmtlOTVRV3R3NHdiZ1lEVlIwakJHY3daWUFVblcwZ0pFa0JQeXZMZUxVWnZINGt5ZHY3Ci1ObnloUXFSQU1ENHhDekFKQmdOVkJBWVRBazVNTVJFd0R3WURWUVFLREFoUWIyeGhjbE5UVERFY01Cb0dBMVVFCi1Bd3dUVUc5c1lYSnpjMndnVkdWemRDQkZReUJEUVlJSkFNRkQ0bjVpUTh6b01Bd0dBMVVkRXdRRk1BTUJBZjh3Ci1DZ1lJS29aSXpqMEVBd0lEYUFBd1pRSXhBT0FjaCtnejRySGZJL3BtOE1JRHNzTXRKQ3F6UzZ4dE92UUhKWjlsCi1mZGdXZkpWNWNTSEpwT0lXR1hlRktLUjE4d0l3T0RUUm5USWlveStiWWFjTnE4VFFQanpkVmxUOVhiWWtXSVlOCi1KQXVWOWZMSkpkQjVuWlVHM2w4NUR0MjdWTmtUCi0tLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCi0tLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KLU1JSUM2VENDQWRHZ0F3SUJBZ0lCRHpBTkJna3Foa2lHOXcwQkFRc0ZBREE3TVFzd0NRWURWUVFHRXdKT1RERVIKLU1BOEdBMVVFQ2d3SVVHOXNZWEpUVTB3eEdUQVhCZ05WQkFNTUVGQnZiR0Z5VTFOTUlGUmxjM1FnUTBFd0hoY04KLU1qTXdOVEUzTURreU56QXlXaGNOTXpNd05URTNNRGt5TnpBeVdqQkxNUXN3Q1FZRFZRUUdFd0pPVERFUk1BOEcKLUExVUVDZ3dJVUc5c1lYSlRVMHd4S1RBbkJnTlZCQU1NSUZCdmJHRnlVMU5NSUZSbGMzUWdTVzUwWlhKdFpXUnAKLVlYUmxJRVZESUVOQk1IWXdFQVlIS29aSXpqMENBUVlGSzRFRUFDSURZZ0FFOE9paDNmWDVTTGVOMWRtRm5jUWwKLVdNdzkrWTZzWGJsaGxyWEJ4aFh4andkd3BDSEVObitmb1VWZHJxWVZZYTdTdXYzUVZlTzZuSjE5SDNRTml4VzgKLWlrMVAraHhzYmFxOGJ0YTc4dkF5SG1DNEVtWFFMZzF3N294YjlRODJxWDFZbzRHVk1JR1NNQjBHQTFVZERnUVcKLUJCUVBpYjFqUWV2TFhoY28vMmd3UGNHSTBKeFlPVEJqQmdOVkhTTUVYREJhZ0JTMFd1U2xzOTdTVXZhNTFhYVYKLUQrcyt2TWY5LzZFL3BEMHdPekVMTUFrR0ExVUVCaE1DVGt3eEVUQVBCZ05WQkFvTUNGQnZiR0Z5VTFOTU1Sa3cKLUZ3WURWUVFEREJCUWIyeGhjbE5UVENCVVpYTjBJRU5CZ2dFRE1Bd0dBMVVkRXdRRk1BTUJBZjh3RFFZSktvWkkKLWh2Y05BUUVMQlFBRGdnRUJBSFROMFVSclAyTXB3RDh2T0R5bWpqcTdpYUI3V0ZaNENXVWp4OUxXdTNQUFpiWDIKLTEyTXh6a3lGYVZSN3JuUEtaU0ZISkpFbU5hUERKV3dZaEdRUlhMQ29ENk5pSnk2RGU0ZmE1Z1NZb1h0aFJHRmYKLUduRlhadTNlMzdHREtvS1A4N1RaK1ZYY3l4NlBIdlB4SkIzLzlOOTRWajJZaDNoQ3M3RjcyR213ZkR3dzZvb2oKLXdoSXFoeEJZT2hQbGVBTnM3MEZaN1k3dGpaVjFSdFExLzlzUmNieXY5T3ZkUHVXdnVrQlZxMUtNNm5xVkhCWjMKLS80a0hCV2FGYVdNcS9BQXhNeGFUR0ZBT0E4UzJ5VTU2amtCNjV2aVFycFFRV2ZmQkpXSytXZnJjZ3hSV3FSMzMKLWhxRzN5VDFJV2JKNUUxMVhMOVRDS0QrRFJlcWVYSHlZYXd4OGZCVT0KLS0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KZGlmZiAtLWdpdCBhL3Rlc3RzL2RhdGFfZmlsZXMvc2VydmVyMV9jYS5jcnQgYi90ZXN0cy9kYXRhX2ZpbGVzL3NlcnZlcjFfY2EuY3J0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhNTk3NzMyLi4wMDAwMDAwCi0tLSBhL3Rlc3RzL2RhdGFfZmlsZXMvc2VydmVyMV9jYS5jcnQKKysrIC9kZXYvbnVsbApAQCAtMSw0MCArMCwwIEBACi0tLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KLU1JSURQekNDQWllZ0F3SUJBZ0lCQVRBTkJna3Foa2lHOXcwQkFRVUZBREE3TVFzd0NRWURWUVFHRXdKT1RERVIKLU1BOEdBMVVFQ2d3SVVHOXNZWEpUVTB3eEdUQVhCZ05WQkFNTUVGQnZiR0Z5VTFOTUlGUmxjM1FnUTBFd0hoY04KLU1Ua3dNakV3TVRRME5EQTJXaGNOTWprd01qRXdNVFEwTkRBMldqQThNUXN3Q1FZRFZRUUdFd0pPVERFUk1BOEcKLUExVUVDZ3dJVUc5c1lYSlRVMHd4R2pBWUJnTlZCQU1NRVZCdmJHRnlVMU5NSUZObGNuWmxjaUF4TUlJQklqQU4KLUJna3Foa2lHOXcwQkFRRUZBQU9DQVE4QU1JSUJDZ0tDQVFFQXFRSWZQVUJxMVZWVGkvMDI3b0psTGhWaFhvbS8KLXVPaEZrTnZ1aUJaUzAvRkRVRWVXRWxsa2gydjlLK0JHK1hPKzNjK1M0WkZiN1dhZ2I0a3BlVVdBMElOcTFVRkQKLWQxODVmQWtFUjRLd1Z6bHc3YVBzRlJrZXFETUlSOEVGUXFuOVRNTzAzOTBHSDAwUVVVQm5jeE1QUVBodGdTVmYKLUNyRlR4akIrRlRtcytWcnVmNUtlcGdWYjV4T1hoYlVqa3RuVUpBYlZDU1dKZFFmZHBocVBQd2tadnExbExHVHIKLWxadmMva0ZlRjZiYWJGdHB6QUs2RkN3V0pKeEszTTNROTFKbmMvRXRvQ1A5ZnZReHlpMXd5b2tMQk5zdXBrOXcKLWJwN092VmlKNGxOWm5tNWFrbVhpaUQ4TWxCbWozZVhvblpVVDdTbmJxM0FTM0ZyS2F4ZXJVb0pVc1FJREFRQUIKLW8wMHdTekFKQmdOVkhSTUVBakFBTUIwR0ExVWREZ1FXQkJRZmROWS9LY0YwZEVVN0JSSXNQYWk5UTFrQ3BqQWYKLUJnTlZIU01FR0RBV2dCUzBXdVNsczk3U1V2YTUxYWFWRCtzK3ZNZjkvekFOQmdrcWhraUc5dzBCQVFVRkFBT0MKLUFRRUFmMms1T2lPUnA2MGdCTnFpb0MybUlxU1hBMENVL3F6bGx0OEl2bGNNdjFWMFBBUDlmNElFbTVtZGtFUnIKLVVYam5CMVRyM2VkcnN2WExnWjl2RW9zYkZwTk1zS2ZzbUJrcGpnV0cydWk4cGRuOGNKaXdzNGs0aDVmdXVlU3cKLVBzMUZMSzVUZnBpK0dKeVBxazRoYTlPanAycDlvcHVBMGFJZkx1eEkrMFV6WEg0d2dyRVcvWXlkb3d2OTU5Z2YKLWdHU2w3NjZDUmRVdkpiWE9lVnJ5RmpGVFJmTEZGTmZUdnJmdFprMWRsOHRhczFuaW04eGZXZXQrQlpWdnEyelkKLUM3TGVDSTlucmZ1QXhmTUpUcldGcDE3eTcyK2hDRGs3TkVhQjJaTFZ1QU0vcmk3TFdycjJWMmhMRmRJQWhmQzIKLW5VYXVsUlJwR3QvWlRJU3c2dVNJdW1Ob05BPT0KLS0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KLS0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQotTUlJRFFUQ0NBaW1nQXdJQkFnSUJBekFOQmdrcWhraUc5dzBCQVFVRkFEQTdNUXN3Q1FZRFZRUUdFd0pPVERFUgotTUE4R0ExVUVDZ3dJVUc5c1lYSlRVMHd4R1RBWEJnTlZCQU1NRUZCdmJHRnlVMU5NSUZSbGMzUWdRMEV3SGhjTgotTVRrd01qRXdNVFEwTkRBd1doY05Namt3TWpFd01UUTBOREF3V2pBN01Rc3dDUVlEVlFRR0V3Sk9UREVSTUE4RwotQTFVRUNnd0lVRzlzWVhKVFUwd3hHVEFYQmdOVkJBTU1FRkJ2YkdGeVUxTk1JRlJsYzNRZ1EwRXdnZ0VpTUEwRwotQ1NxR1NJYjNEUUVCQVFVQUE0SUJEd0F3Z2dFS0FvSUJBUURBM3pmOEY3dmdscDAvaHQ2V01uMUVwUmFnelNIeAotbWRUczZzdDhHRmdJbEtYc204V0wzeG9lbVRpWmh4NTd3STA1M3poZGNIZ0gwNTdaaytpNWNsSEZ6cU13VXFueQotNTBCd0ZNdEVvbklMd3VWQStUN2xwZzZ6K2V4S1k4QzRLUUIwbkZjN3FLVUVrSEh4dllQWlA5YWw0andxais4bgotWU1QR244dTY3R0I5dCthRU1yNVArMWdtSWdOYjFMVFYrL1hqbGk1d3dPUXV2Znd1N3VKQlZjQTBMbjBrY21uTAotUjdFVVFJTjlaL1NHOWpHcjhYbWtzclV1RXZtRUYvQmlieWMrRTFpeFZBMGhtbk0zb1REUGI1TGM5dW44ck5zdQotS05GK0Frc2pvQlh5T0dWa0Nlb01ibzRiRjZCeHlMT2J5YXZwdy9MUGg1YVBnQUl5bnBsWWI2TFZBZ01CQUFHagotVURCT01Bd0dBMVVkRXdRRk1BTUJBZjh3SFFZRFZSME9CQllFRkxSYTVLV3ozdEpTOXJuVnBwVVA2ejY4eC8zLwotTUI4R0ExVWRJd1FZTUJhQUZMUmE1S1d6M3RKUzlyblZwcFVQNno2OHgvMy9NQTBHQ1NxR1NJYjNEUUVCQlFVQQotQTRJQkFRQjBaaU5SRmRpYTZrc2thUG5ocnFlaklScThZTUVHQWYyb0lQbnlaNzh4b3lFUmdjMzVsSEd5TXRzTAotaFdpY05qUDRkL2hTOUFzNGo1S0EyZ2ROR2k1RVRBMVg3U293V09Hc3J5aXZTcE1TSFZ5MStIZGZXbHNZUU96bQotOG8rZmFRTlVtOFh6UFZtdHRmQVZzcHhlSFN4SlozNk9vK1FXWjV3WmxDSUV5akVkTFVJZCtUbTRCejNCNWpSRAotelphL1NhcURva3E2Nk4yenBiZ0tLQWwzR1UyTysrZkJxUDJkU2tkUXlrbVR4aExMV1JOOEZKcWhZQVR5UW50WgotMFFTaTNXOUhmU1pQbkZUY1BJWGVvaVBkMnBMbHh0MWhadThkd3MyTFRYRTYzdVA2TU00TEh2V3hpdUphV2tQLwotbXR4eVVBTGoycFF4Uml0b3BPUkZRZG43QU9ZNQotLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQpkaWZmIC0tZ2l0IGEvdGVzdHMvZGF0YV9maWxlcy9zZXJ2ZXIxX2Nzci5vcGVuc3NsY29uZiBiL3Rlc3RzL2RhdGFfZmlsZXMvc2VydmVyMV9jc3Iub3BlbnNzbGNvbmYKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDZlNzA3NWUuLjAwMDAwMDAKLS0tIGEvdGVzdHMvZGF0YV9maWxlcy9zZXJ2ZXIxX2Nzci5vcGVuc3NsY29uZgorKysgL2Rldi9udWxsCkBAIC0xLDEwICswLDAgQEAKLVsgcmVxIF0KLWRpc3Rpbmd1aXNoZWRfbmFtZSA9IHJlcV9kaXN0aW5ndWlzaGVkX25hbWUKLXByb21wdCAgICAgICAgICAgICA9IG5vCi0jIFJlc3RyaWN0IHRvIG5vbi1VVEY4IFByaW50YWJsZVN0cmluZ3MuCi1zdHJpbmdfbWFzayAgICAgICAgPSBub21ic3RyCi0KLVsgcmVxX2Rpc3Rpbmd1aXNoZWRfbmFtZSBdCi1DICA9IE5MCi1PICA9IFBvbGFyU1NMCi1DTiA9IFBvbGFyU1NMIFNlcnZlciAxCmRpZmYgLS1naXQgYS90ZXN0cy9kYXRhX2ZpbGVzL3NlcnZlcjItYmFkc2lnbi5jcnQgYi90ZXN0cy9kYXRhX2ZpbGVzL3NlcnZlcjItYmFkc2lnbi5jcnQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGE5ZTQwYmEuLjAwMDAwMDAKLS0tIGEvdGVzdHMvZGF0YV9maWxlcy9zZXJ2ZXIyLWJhZHNpZ24uY3J0CisrKyAvZGV2L251bGwKQEAgLTEsMjAgKzAsMCBAQAotLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCi1NSUlETnpDQ0FoK2dBd0lCQWdJQkFqQU5CZ2txaGtpRzl3MEJBUVVGQURBN01Rc3dDUVlEVlFRR0V3Sk9UREVSCi1NQThHQTFVRUNnd0lVRzlzWVhKVFUwd3hHVEFYQmdOVkJBTU1FRkJ2YkdGeVUxTk1JRlJsYzNRZ1EwRXdIaGNOCi1NVGt3TWpFd01UUTBOREEyV2hjTk1qa3dNakV3TVRRME5EQTJXakEwTVFzd0NRWURWUVFHRXdKT1RERVJNQThHCi1BMVVFQ2d3SVVHOXNZWEpUVTB3eEVqQVFCZ05WQkFNTUNXeHZZMkZzYUc5emREQ0NBU0l3RFFZSktvWklodmNOCi1BUUVCQlFBRGdnRVBBRENDQVFvQ2dnRUJBTUZObzkzbnpSM1JCTmRKY3JpWnJBNTQ1RG84U3M4NkV4YlFXdVROCi1vd0NJcCs0ZWE1YW5VclNRN3kxeWVqNGttdnkyTkt3azlYZmdKbVNNbkxBb2ZhSGE2b3pteVJ5V3ZQN0JCRkt6Ci1OdFNqK3VHeGR0aVF3V0cwWmxJMm9pWlRxcXQwWGdkOUdZTGJLdGdmb05rTkhDMUpadmRiSlhORzZBdUtUMmtNCi10UUNRNGRxQ0VHWjlybFFyaTJWNWthSGlZY1BOUUVrSTdtZ004WXVHMGthLzBMaXFFUU1lZjFhb0doNUVHQThQCi1oWXZhaTBSZTRoakdZaS9IWm8zNlhkaDk4eWVKS1FIRmtBNC9KL0V3eUVvTzc5YmV4OGNuYThjRlBYckVBanlhCi1IVDRQNkRTWVc4dHpTMUtXMkJHaUxJQ0lhVGxhMHcrdzNsa3ZFY2YzNmhJQk1KY0NBd0VBQWFOTk1Fc3dDUVlECi1WUjBUQkFJd0FEQWRCZ05WSFE0RUZnUVVwUVhvWkxqYzMyQVBVQkpOWUtoa3IwMkxRNU13SHdZRFZSMGpCQmd3Ci1Gb0FVdEZya3BiUGUwbEwydWRXbWxRL3JQcnpIL2Y4d0RRWUpLb1pJaHZjTkFRRUZCUUFEZ2dFQkFKa2xnM1QvCi0vLy8vN0J6c3hNL3ZMeUtjY082b3AwL2daek00Z2h1THEyWTMya2wwc002a1NOVVVtZHV1cTN1LytHbVVaTjJBCi1PLzdjK0h3N2hERkVJdlprOThhQkdqQ0xxbjNEbWdISXY4VG9RNjduZWxsUXh4MlVqMzA5UGRnak5pL3I5SE9jCi1LTkFZUGJCY2c2TUpHV1dqMlRJNnZOYWNlaW9zL0RoT1l4NVYwajVuZnFTSi9wblUwZzlJZ24yTEFoZ1lwR0pFCi1pRU05d1c3aEVNa3dtazBoL3NxWnNySnNHSDVZc0YvVlRoU3EvSlZPMWUybVpIMnZydXlaS0pWQnErOHRETllwCi1Ia0s2dFN5VllRaHpJdDNTdE1KV0tNbC9vNWsyQVl6NnRTQzE2NCsxb0crTUwzTFdnOFhyR0thOTFINFVPS2FwCi1Bd2drMCs0bTBUMjVjTnM9Ci0tLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCmRpZmYgLS1naXQgYS90ZXN0cy9kYXRhX2ZpbGVzL3NlcnZlcjItc2hhMjU2LmNydCBiL3Rlc3RzL2RhdGFfZmlsZXMvc2VydmVyMi1zaGEyNTYuY3J0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiMzFiZTZiLi4wMDAwMDAwCi0tLSBhL3Rlc3RzL2RhdGFfZmlsZXMvc2VydmVyMi1zaGEyNTYuY3J0CisrKyAvZGV2L251bGwKQEAgLTEsMjAgKzAsMCBAQAotLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCi1NSUlETnpDQ0FoK2dBd0lCQWdJQkFqQU5CZ2txaGtpRzl3MEJBUXNGQURBN01Rc3dDUVlEVlFRR0V3Sk9UREVSCi1NQThHQTFVRUNnd0lVRzlzWVhKVFUwd3hHVEFYQmdOVkJBTU1FRkJ2YkdGeVUxTk1JRlJsYzNRZ1EwRXdIaGNOCi1NVGt3TWpFd01UUTBOREEyV2hjTk1qa3dNakV3TVRRME5EQTJXakEwTVFzd0NRWURWUVFHRXdKT1RERVJNQThHCi1BMVVFQ2d3SVVHOXNZWEpUVTB3eEVqQVFCZ05WQkFNTUNXeHZZMkZzYUc5emREQ0NBU0l3RFFZSktvWklodmNOCi1BUUVCQlFBRGdnRVBBRENDQVFvQ2dnRUJBTUZObzkzbnpSM1JCTmRKY3JpWnJBNTQ1RG84U3M4NkV4YlFXdVROCi1vd0NJcCs0ZWE1YW5VclNRN3kxeWVqNGttdnkyTkt3azlYZmdKbVNNbkxBb2ZhSGE2b3pteVJ5V3ZQN0JCRkt6Ci1OdFNqK3VHeGR0aVF3V0cwWmxJMm9pWlRxcXQwWGdkOUdZTGJLdGdmb05rTkhDMUpadmRiSlhORzZBdUtUMmtNCi10UUNRNGRxQ0VHWjlybFFyaTJWNWthSGlZY1BOUUVrSTdtZ004WXVHMGthLzBMaXFFUU1lZjFhb0doNUVHQThQCi1oWXZhaTBSZTRoakdZaS9IWm8zNlhkaDk4eWVKS1FIRmtBNC9KL0V3eUVvTzc5YmV4OGNuYThjRlBYckVBanlhCi1IVDRQNkRTWVc4dHpTMUtXMkJHaUxJQ0lhVGxhMHcrdzNsa3ZFY2YzNmhJQk1KY0NBd0VBQWFOTk1Fc3dDUVlECi1WUjBUQkFJd0FEQWRCZ05WSFE0RUZnUVVwUVhvWkxqYzMyQVBVQkpOWUtoa3IwMkxRNU13SHdZRFZSMGpCQmd3Ci1Gb0FVdEZya3BiUGUwbEwydWRXbWxRL3JQcnpIL2Y4d0RRWUpLb1pJaHZjTkFRRUxCUUFEZ2dFQkFDNDY1RkpoCi1QcWVsN3pKbmdISUhKcnFqL3dWQXhHQUZPVEYzOTZYS0FUR0FwK0hSQ3FKODFSeTYwQ05LMWpEems4ZHY2TTZVCi1Ib1M3UklGaU0vOXJYUUNiSmZpUEQ1eE1UZWpacDVuNVVZSEFteHN4RGFhemZBNUZ1QmhrZm9rS0s2akQ0RXE5Ci0xQzk0eEdLYjZYNC9Wa2FQRjdjcW9CQncvYkh4YXdYYzBVRVBqcWF5aUJwQ1lVL3JKb1ZaZ0xxRlZQN1B4M3N2Ci1hMW5Pck54OHJQUEkxaEorWk9nOG1haVBUeEhabkJWTGFrU1NMUXkvc1dlV3lhek8xUm5yYnhqcmJnUXRZS3owCi1lM253R3B1MXcxM3ZmY2tGbVVTQmhIWEg3QUFTL0hwS0M0SUg3RzJHQWszK244aVNTTjcxc1p6cHhvblF3VmJvCi1wTVpxTG1iQm0vN1dQTGM9Ci0tLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCmRpZmYgLS1naXQgYS90ZXN0cy9kYXRhX2ZpbGVzL3NlcnZlcjItc2hhMjU2LmNydC5kZXIgYi90ZXN0cy9kYXRhX2ZpbGVzL3NlcnZlcjItc2hhMjU2LmNydC5kZXIKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDY5OTI3MGIuLjAwMDAwMDAKLS0tIGEvdGVzdHMvZGF0YV9maWxlcy9zZXJ2ZXIyLXNoYTI1Ni5jcnQuZGVyCisrKyAvZGV2L251bGwKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvdGVzdHMvZGF0YV9maWxlcy9zZXJ2ZXIyLXNoYTI1Ni5rdS1kcy5jcnQgYi90ZXN0cy9kYXRhX2ZpbGVzL3NlcnZlcjItc2hhMjU2Lmt1LWRzLmNydApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMGQ0ODY2Yy4uMDAwMDAwMAotLS0gYS90ZXN0cy9kYXRhX2ZpbGVzL3NlcnZlcjItc2hhMjU2Lmt1LWRzLmNydAorKysgL2Rldi9udWxsCkBAIC0xLDIwICswLDAgQEAKLS0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQotTUlJRFJ6Q0NBaStnQXdJQkFnSUJHREFOQmdrcWhraUc5dzBCQVFzRkFEQTdNUXN3Q1FZRFZRUUdFd0pPVERFUgotTUE4R0ExVUVDZ3dJVUc5c1lYSlRVMHd4R1RBWEJnTlZCQU1NRUZCdmJHRnlVMU5NSUZSbGMzUWdRMEV3SGhjTgotTVRrd01qRXdNVFEwTkRBMldoY05Namt3TWpFd01UUTBOREEyV2pBME1Rc3dDUVlEVlFRR0V3Sk9UREVSTUE4RwotQTFVRUNnd0lVRzlzWVhKVFUwd3hFakFRQmdOVkJBTU1DV3h2WTJGc2FHOXpkRENDQVNJd0RRWUpLb1pJaHZjTgotQVFFQkJRQURnZ0VQQURDQ0FRb0NnZ0VCQU1GTm85M256UjNSQk5kSmNyaVpyQTU0NURvOFNzODZFeGJRV3VUTgotb3dDSXArNGVhNWFuVXJTUTd5MXllajRrbXZ5Mk5Ld2s5WGZnSm1TTW5MQW9mYUhhNm96bXlSeVd2UDdCQkZLegotTnRTait1R3hkdGlRd1dHMFpsSTJvaVpUcXF0MFhnZDlHWUxiS3RnZm9Oa05IQzFKWnZkYkpYTkc2QXVLVDJrTQotdFFDUTRkcUNFR1o5cmxRcmkyVjVrYUhpWWNQTlFFa0k3bWdNOFl1RzBrYS8wTGlxRVFNZWYxYW9HaDVFR0E4UAotaFl2YWkwUmU0aGpHWWkvSFpvMzZYZGg5OHllSktRSEZrQTQvSi9Fd3lFb083OWJleDhjbmE4Y0ZQWHJFQWp5YQotSFQ0UDZEU1lXOHR6UzFLVzJCR2lMSUNJYVRsYTB3K3czbGt2RWNmMzZoSUJNSmNDQXdFQUFhTmRNRnN3Q1FZRAotVlIwVEJBSXdBREFkQmdOVkhRNEVGZ1FVcFFYb1pMamMzMkFQVUJKTllLaGtyMDJMUTVNd0h3WURWUjBqQkJndwotRm9BVXRGcmtwYlBlMGxMMnVkV21sUS9yUHJ6SC9mOHdEZ1lEVlIwUEFRSC9CQVFEQWdlQU1BMEdDU3FHU0liMwotRFFFQkN3VUFBNElCQVFBdEt1dFZyUXVubnpPUWczVFAydm5PVDhRcjVMcmJ2c1NCYVBFbTIxT3hrcHIwZ0pjQwotL0JnT041V3JCZGZwRURaNWpPTUdncWRGM0F4RnpoL1p3MUVCcjJ5MndJY2xlb2R0elY1ajJmVFFWOU1QWUo5egotWFlmaE5zcjlpZHQvaTRZQ3FKU2U2bEIvK0dHL3ArOWp0TUxHTWpmU2tObkc3cHBhN1N2Nk5Wc0F4Z2JLc2tUdwotV1UvejdUN1kvYWZLNW9tQVBwSGZXZGR6Q2w1bytvOVZGaTVzY1l5anYyaU5Qa1JpVE1EaDRiRThSVm05dnhjZgotVE1IMTRUU2ExWTZPa2FUdXpKTGJVM1Y4eUpaNjdzMlNLODlUcmQ3NVNRK0I2Mm5aWWUrME5HKzZiMnMrRDk3eQotZXgyeDJFYmZLL254RUwyR3Y3L3hHNGdjcHp4bUtPYmhQcHNTCi0tLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCmRpZmYgLS1naXQgYS90ZXN0cy9kYXRhX2ZpbGVzL3NlcnZlcjItc2hhMjU2Lmt1LWRzX2tlLmNydCBiL3Rlc3RzL2RhdGFfZmlsZXMvc2VydmVyMi1zaGEyNTYua3UtZHNfa2UuY3J0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlODllMTdkLi4wMDAwMDAwCi0tLSBhL3Rlc3RzL2RhdGFfZmlsZXMvc2VydmVyMi1zaGEyNTYua3UtZHNfa2UuY3J0CisrKyAvZGV2L251bGwKQEAgLTEsMjAgKzAsMCBAQAotLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCi1NSUlEUnpDQ0FpK2dBd0lCQWdJQkhEQU5CZ2txaGtpRzl3MEJBUXNGQURBN01Rc3dDUVlEVlFRR0V3Sk9UREVSCi1NQThHQTFVRUNnd0lVRzlzWVhKVFUwd3hHVEFYQmdOVkJBTU1FRkJ2YkdGeVUxTk1JRlJsYzNRZ1EwRXdIaGNOCi1NVGt3TWpFd01UUTBOREEyV2hjTk1qa3dNakV3TVRRME5EQTJXakEwTVFzd0NRWURWUVFHRXdKT1RERVJNQThHCi1BMVVFQ2d3SVVHOXNZWEpUVTB3eEVqQVFCZ05WQkFNTUNXeHZZMkZzYUc5emREQ0NBU0l3RFFZSktvWklodmNOCi1BUUVCQlFBRGdnRVBBRENDQVFvQ2dnRUJBTUZObzkzbnpSM1JCTmRKY3JpWnJBNTQ1RG84U3M4NkV4YlFXdVROCi1vd0NJcCs0ZWE1YW5VclNRN3kxeWVqNGttdnkyTkt3azlYZmdKbVNNbkxBb2ZhSGE2b3pteVJ5V3ZQN0JCRkt6Ci1OdFNqK3VHeGR0aVF3V0cwWmxJMm9pWlRxcXQwWGdkOUdZTGJLdGdmb05rTkhDMUpadmRiSlhORzZBdUtUMmtNCi10UUNRNGRxQ0VHWjlybFFyaTJWNWthSGlZY1BOUUVrSTdtZ004WXVHMGthLzBMaXFFUU1lZjFhb0doNUVHQThQCi1oWXZhaTBSZTRoakdZaS9IWm8zNlhkaDk4eWVKS1FIRmtBNC9KL0V3eUVvTzc5YmV4OGNuYThjRlBYckVBanlhCi1IVDRQNkRTWVc4dHpTMUtXMkJHaUxJQ0lhVGxhMHcrdzNsa3ZFY2YzNmhJQk1KY0NBd0VBQWFOZE1Gc3dDUVlECi1WUjBUQkFJd0FEQWRCZ05WSFE0RUZnUVVwUVhvWkxqYzMyQVBVQkpOWUtoa3IwMkxRNU13SHdZRFZSMGpCQmd3Ci1Gb0FVdEZya3BiUGUwbEwydWRXbWxRL3JQcnpIL2Y4d0RnWURWUjBQQVFIL0JBUURBZ1dnTUEwR0NTcUdTSWIzCi1EUUVCQ3dVQUE0SUJBUUJaQkRLaDZUUmtHaDlybzVsL1J2Ni9MRTlzbFRMQ3JBQWpDQTZmVDJkaWc2V3Npam1LCi1PTHdqanVXUmRLVCtTUHJtKzQyZGI0aisrS2NQVmsvSHdQTmtiY1hGN3NBSHkxM0RHaTQ3bWk3eVNLcUNpT1o4Ci1SVm5wQldqWkpwTXpYaTVsOFJnWEdLMTB2MkM0aVBYM0U3aVJ3K0NZVFpqT1dmam56SFVXcVE5M2V1M3M2T1UzCi0zRm9iclBGS1lrUzlDdnF2YkdCSXFwdjhUVEFvQXZVQXNqVWJRSFkyU2xxbEpMdzJEVW1ld21lQnpTMkl0TnlwCi1CTzM2N2xUbTAzeituRzc3cFpZT2hneGNoOEVBMlJjSXVvRUV4ajB0SFpjRzNKTE96NjBpanFxRzFseGpyVFhWCi1xTURSdHR1TDhqaXNla2o0Z1pEOTBUOUpkTUhwejhnb05oTzcKLS0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KZGlmZiAtLWdpdCBhL3Rlc3RzL2RhdGFfZmlsZXMvc2VydmVyMi1zaGEyNTYua3Uta2EuY3J0IGIvdGVzdHMvZGF0YV9maWxlcy9zZXJ2ZXIyLXNoYTI1Ni5rdS1rYS5jcnQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDMyNjg3NmIuLjAwMDAwMDAKLS0tIGEvdGVzdHMvZGF0YV9maWxlcy9zZXJ2ZXIyLXNoYTI1Ni5rdS1rYS5jcnQKKysrIC9kZXYvbnVsbApAQCAtMSwyMCArMCwwIEBACi0tLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KLU1JSURSekNDQWkrZ0F3SUJBZ0lCRmpBTkJna3Foa2lHOXcwQkFRc0ZBREE3TVFzd0NRWURWUVFHRXdKT1RERVIKLU1BOEdBMVVFQ2d3SVVHOXNZWEpUVTB3eEdUQVhCZ05WQkFNTUVGQnZiR0Z5VTFOTUlGUmxjM1FnUTBFd0hoY04KLU1Ua3dNakV3TVRRME5EQTJXaGNOTWprd01qRXdNVFEwTkRBMldqQTBNUXN3Q1FZRFZRUUdFd0pPVERFUk1BOEcKLUExVUVDZ3dJVUc5c1lYSlRVMHd4RWpBUUJnTlZCQU1NQ1d4dlkyRnNhRzl6ZERDQ0FTSXdEUVlKS29aSWh2Y04KLUFRRUJCUUFEZ2dFUEFEQ0NBUW9DZ2dFQkFNRk5vOTNuelIzUkJOZEpjcmlackE1NDVEbzhTczg2RXhiUVd1VE4KLW93Q0lwKzRlYTVhblVyU1E3eTF5ZWo0a212eTJOS3drOVhmZ0ptU01uTEFvZmFIYTZvem15UnlXdlA3QkJGS3oKLU50U2ordUd4ZHRpUXdXRzBabEkyb2laVHFxdDBYZ2Q5R1lMYkt0Z2ZvTmtOSEMxSlp2ZGJKWE5HNkF1S1Qya00KLXRRQ1E0ZHFDRUdaOXJsUXJpMlY1a2FIaVljUE5RRWtJN21nTThZdUcwa2EvMExpcUVRTWVmMWFvR2g1RUdBOFAKLWhZdmFpMFJlNGhqR1lpL0habzM2WGRoOTh5ZUpLUUhGa0E0L0ovRXd5RW9PNzliZXg4Y25hOGNGUFhyRUFqeWEKLUhUNFA2RFNZVzh0elMxS1cyQkdpTElDSWFUbGEwdyt3M2xrdkVjZjM2aElCTUpjQ0F3RUFBYU5kTUZzd0NRWUQKLVZSMFRCQUl3QURBZEJnTlZIUTRFRmdRVXBRWG9aTGpjMzJBUFVCSk5ZS2hrcjAyTFE1TXdId1lEVlIwakJCZ3cKLUZvQVV0RnJrcGJQZTBsTDJ1ZFdtbFEvclByekgvZjh3RGdZRFZSMFBBUUgvQkFRREFnTUlNQTBHQ1NxR1NJYjMKLURRRUJDd1VBQTRJQkFRQnNkOXdIaGNTa2NPL0F5ckhSdzMzUlZnZHlkb1VJY29wR0hDbmwrNlRoUWo5bE0yY0YKLWVoN1pkdTJHVnlkMnl5SWVJN2MrTjF3MU5PTHhYWWs0dnZpVTZKL0pvbDcwNlVlZmZsTUVNSEl3Z0pxYWtXZGoKLXVxOG83Q1RPRWhNcHpTRTZBZk5qMDJqTGIzcXJrb0pHQitTVEl3Z3gySVlkRHpUcklyMkNiMlQ5emJESkNRQmQKLWwyUFRWUjVpZC8rVXk0aCsyS05KemdSZ09VSVBjMGVGTjBhRTVhN0lIUngzcTdoNWgvRGJCYVFVNHRWbWFBWUYKLW8vNlhsQnZ3Vnhhbjg3dytoTGZuRkhVTzdlTWUwam5MdkgyTytNVzRaZVloNFZQMkpxN2NMSlFnVGZDYkZLOUwKLVBORzhnZmhXNzFyY01SVHh3S001cXppSjhoNlBlb21TZ2xzTwotLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQpkaWZmIC0tZ2l0IGEvdGVzdHMvZGF0YV9maWxlcy9zZXJ2ZXIyLXNoYTI1Ni5rdS1rZS5jcnQgYi90ZXN0cy9kYXRhX2ZpbGVzL3NlcnZlcjItc2hhMjU2Lmt1LWtlLmNydApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggY2E1YzNjNy4uMDAwMDAwMAotLS0gYS90ZXN0cy9kYXRhX2ZpbGVzL3NlcnZlcjItc2hhMjU2Lmt1LWtlLmNydAorKysgL2Rldi9udWxsCkBAIC0xLDIwICswLDAgQEAKLS0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQotTUlJRFJ6Q0NBaStnQXdJQkFnSUJGekFOQmdrcWhraUc5dzBCQVFzRkFEQTdNUXN3Q1FZRFZRUUdFd0pPVERFUgotTUE4R0ExVUVDZ3dJVUc5c1lYSlRVMHd4R1RBWEJnTlZCQU1NRUZCdmJHRnlVMU5NSUZSbGMzUWdRMEV3SGhjTgotTVRrd01qRXdNVFEwTkRBMldoY05Namt3TWpFd01UUTBOREEyV2pBME1Rc3dDUVlEVlFRR0V3Sk9UREVSTUE4RwotQTFVRUNnd0lVRzlzWVhKVFUwd3hFakFRQmdOVkJBTU1DV3h2WTJGc2FHOXpkRENDQVNJd0RRWUpLb1pJaHZjTgotQVFFQkJRQURnZ0VQQURDQ0FRb0NnZ0VCQU1GTm85M256UjNSQk5kSmNyaVpyQTU0NURvOFNzODZFeGJRV3VUTgotb3dDSXArNGVhNWFuVXJTUTd5MXllajRrbXZ5Mk5Ld2s5WGZnSm1TTW5MQW9mYUhhNm96bXlSeVd2UDdCQkZLegotTnRTait1R3hkdGlRd1dHMFpsSTJvaVpUcXF0MFhnZDlHWUxiS3RnZm9Oa05IQzFKWnZkYkpYTkc2QXVLVDJrTQotdFFDUTRkcUNFR1o5cmxRcmkyVjVrYUhpWWNQTlFFa0k3bWdNOFl1RzBrYS8wTGlxRVFNZWYxYW9HaDVFR0E4UAotaFl2YWkwUmU0aGpHWWkvSFpvMzZYZGg5OHllSktRSEZrQTQvSi9Fd3lFb083OWJleDhjbmE4Y0ZQWHJFQWp5YQotSFQ0UDZEU1lXOHR6UzFLVzJCR2lMSUNJYVRsYTB3K3czbGt2RWNmMzZoSUJNSmNDQXdFQUFhTmRNRnN3Q1FZRAotVlIwVEJBSXdBREFkQmdOVkhRNEVGZ1FVcFFYb1pMamMzMkFQVUJKTllLaGtyMDJMUTVNd0h3WURWUjBqQkJndwotRm9BVXRGcmtwYlBlMGxMMnVkV21sUS9yUHJ6SC9mOHdEZ1lEVlIwUEFRSC9CQVFEQWdVZ01BMEdDU3FHU0liMwotRFFFQkN3VUFBNElCQVFBdVIvZmdOaWZ2dFc2dWtMeHArVkZsWWFlbDNrQUdKcEtoZTI3MWZqa2FxaXlCQjlRdAotTmZGWDFIRHExaEplOGM4dWYrU2dGblk2cmcxQmpkY3RyRVU5MmF2UFlqaHBzeVlFdVNqdDlMQXRMZnBlTWFXRAotbHRlbThQTmgvbGtSK3YweHFlWXNEY0hUdi9vUjlOZkNJcW9QRldPUGxIN0N2TG93TmJJMDZEOEtrS2lXQWxMMQotdEM2MmRiNlQ1c09ybWNteWpMb0tVeWVyQnFDV0MrTU00RytBWE1kZnA1NC94TE92a1RxL0sxY3Uxb1JJR0lZTAotU1NBdFZlUlFYcXdnYUgyTTJFa043OWpvRjZYbmpHRzI3VE44ckNTN2d4Sm04N3ZaanRaaVNGdWd3aEZGSEZoWAotR21wOUlrQlZaS1FjaTFOYlRZMThsLzJ3eEZZSUN2NDg2c0FWCi0tLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCmRpZmYgLS1naXQgYS90ZXN0cy9kYXRhX2ZpbGVzL3NlcnZlcjItdjEtY2hhaW4uY3J0IGIvdGVzdHMvZGF0YV9maWxlcy9zZXJ2ZXIyLXYxLWNoYWluLmNydApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOGFjMDAzYi4uMDAwMDAwMAotLS0gYS90ZXN0cy9kYXRhX2ZpbGVzL3NlcnZlcjItdjEtY2hhaW4uY3J0CisrKyAvZGV2L251bGwKQEAgLTEsMzggKzAsMCBAQAotLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCi1NSUlERVRDQ0Fma0NERk9pdHRralhieEZjL20zYkRBTkJna3Foa2lHOXcwQkFRc0ZBREJPTVJvd0dBWURWUVFECi1EQkZ6WlhKMlpYSXhMMmx1ZEMxallTMTJNVEVRTUE0R0ExVUVDd3dIZEdWemRHbHVaekVSTUE4R0ExVUVDZ3dJCi1VRzlzWVhKVFUwd3hDekFKQmdOVkJBWVRBazVNTUI0WERURTVNREl4TURFME5EUXdObG9YRFRJNU1ESXhNREUwCi1ORFF3Tmxvd1JERVFNQTRHQTFVRUF3d0hjMlZ5ZG1WeU1qRVFNQTRHQTFVRUN3d0hkR1Z6ZEdsdVp6RVJNQThHCi1BMVVFQ2d3SVVHOXNZWEpUVTB3eEN6QUpCZ05WQkFZVEFrNU1NSUlCSWpBTkJna3Foa2lHOXcwQkFRRUZBQU9DCi1BUThBTUlJQkNnS0NBUUVBd1UyajNlZk5IZEVFMTBseXVKbXNEbmprT2p4S3p6b1RGdEJhNU0yakFJaW43aDVyCi1scWRTdEpEdkxYSjZQaVNhL0xZMHJDVDFkK0FtWkl5Y3NDaDlvZHJxak9iSkhKYTgvc0VFVXJNMjFLUDY0YkYyCi0ySkRCWWJSbVVqYWlKbE9xcTNSZUIzMFpndHNxMkIrZzJRMGNMVWxtOTFzbGMwYm9DNHBQYVF5MUFKRGgyb0lRCi1abjJ1VkN1TFpYbVJvZUpodzgxQVNRanVhQXp4aTRiU1JyL1F1S29SQXg1L1ZxZ2FIa1FZRHcrRmk5cUxSRjdpCi1HTVppTDhkbWpmcGQySDN6SjRrcEFjV1FEajhuOFRESVNnN3YxdDdIeHlkcnh3VTllc1FDUEpvZFBnL29OSmhiCi15M05MVXBiWUVhSXNnSWhwT1ZyVEQ3RGVXUzhSeC9mcUVnRXdsd0lEQVFBQk1BMEdDU3FHU0liM0RRRUJDd1VBCi1BNElCQVFCbXpkUlFWOGMwQWJUOCtJbFBmN0VwemZkaEJ3QnREajdOOEdQRUhMK05xUzFoSHQ3VEgzTDdqQk4zCi1DcUxVZ3JBUDFMRm1RcmpXNUlQWllOWkVBK0x4TU1qQWVodk9INzFwQnNGR3ZRT3B4MkN3bXFNODZzOUZJZ0lhCi16b2I3TDM0K3hWRVpmbVIwOVBzTGlUN2dGMTNodDBIa3ZWWjJoYUJVMGszdlY5N2FFVnZQdGJxcmxSNlJmTHJaCi04blhCRnQ1Q2t6R3hlcFM0d0JDVzRUckdYeHBNSjBXbm5oY0xKVm5FeFVkNlliekdQK2V3WENLZWdEMXdEWDZ6Ci1Vc0VWR0RRVjk3dTN0c3pGNDNreDBudS9RNURZTUNxSlYwa3BJc01CNDY3eFBuTnF5TWRHdFRiWnEySXM4b2o2Ci1WQStmY3RCZE4wQ1c0am8rcWtPaWYwbC9GOEF6Ci0tLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCi0tLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KLU1JSURIVENDQWdVQ0RGT2l0c2NFelUyT3ZJQUx3VEFOQmdrcWhraUc5dzBCQVFzRkFEQlFNUnd3R2dZRFZRUUQKLURCTlFiMnhoY2xOVFRDQlVaWE4wSUVOQklIWXhNUkF3RGdZRFZRUUxEQWQwWlhOMGFXNW5NUkV3RHdZRFZRUUsKLURBaFFiMnhoY2xOVFRERUxNQWtHQTFVRUJoTUNUa3d3SGhjTk1Ua3dNakV3TVRRME5EQTJXaGNOTWprd01qRXcKLU1UUTBOREEyV2pCT01Sb3dHQVlEVlFRRERCRnpaWEoyWlhJeEwybHVkQzFqWVMxMk1URVFNQTRHQTFVRUN3d0gKLWRHVnpkR2x1WnpFUk1BOEdBMVVFQ2d3SVVHOXNZWEpUVTB3eEN6QUpCZ05WQkFZVEFrNU1NSUlCSWpBTkJna3EKLWhraUc5dzBCQVFFRkFBT0NBUThBTUlJQkNnS0NBUUVBcVFJZlBVQnExVlZUaS8wMjdvSmxMaFZoWG9tL3VPaEYKLWtOdnVpQlpTMC9GRFVFZVdFbGxraDJ2OUsrQkcrWE8rM2MrUzRaRmI3V2FnYjRrcGVVV0EwSU5xMVVGRGQxODUKLWZBa0VSNEt3VnpsdzdhUHNGUmtlcURNSVI4RUZRcW45VE1PMDM5MEdIMDBRVVVCbmN4TVBRUGh0Z1NWZkNyRlQKLXhqQitGVG1zK1ZydWY1S2VwZ1ZiNXhPWGhiVWprdG5VSkFiVkNTV0pkUWZkcGhxUFB3a1p2cTFsTEdUcmxadmMKLS9rRmVGNmJhYkZ0cHpBSzZGQ3dXSkp4SzNNM1E5MUpuYy9FdG9DUDlmdlF4eWkxd3lva0xCTnN1cGs5d2JwN08KLXZWaUo0bE5abm01YWttWGlpRDhNbEJtajNlWG9uWlVUN1NuYnEzQVMzRnJLYXhlclVvSlVzUUlEQVFBQk1BMEcKLUNTcUdTSWIzRFFFQkN3VUFBNElCQVFCcmRZQUV6ZEg2cnl5WWFvbFl2cDhGdnEwd1p4cDZCZGN4dmkwTFVHbWIKLVRkV2NOclBVOUlZQVNjNVFTclNXUGowYzl2aExWYkRaQU9OZm45MnRoaTdDMnpRWG9rMlEzalcwMzh5Y05TWE4KLWxWeEZrZFk0R1lhM0U2T2cxTFZJeVN5emZ5eU51SEtLV2JCNXdaQ1diek9ndTJRMU1IU052UGhLamJEaHlHdFQKLU1xM1F5NlR5elVGYlhNUkJpeGNKQy9DeTR6c3F2V0JhblZ0Qm13bHZnRTRRNTBDVWd5YnpTRUlMNWorYVBMdVcKLWFqOGoyTlJCMis3dlBlb1dkOHJ5NVl4RUtCM0RSdVhISHl5Rm5UNU84TXBXdUNsNzY0cUZNYzhTL2k3eVZjbVoKLWVnWlF3MGRDbUU1SjRFR1gwQkVRRU0yNGxsMmU4U3hMMzUxaGJDUStFZnZGCi0tLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCmRpZmYgLS1naXQgYS90ZXN0cy9kYXRhX2ZpbGVzL3NlcnZlcjItdjEuY3J0IGIvdGVzdHMvZGF0YV9maWxlcy9zZXJ2ZXIyLXYxLmNydApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOTkwY2Q0Yi4uMDAwMDAwMAotLS0gYS90ZXN0cy9kYXRhX2ZpbGVzL3NlcnZlcjItdjEuY3J0CisrKyAvZGV2L251bGwKQEAgLTEsMTkgKzAsMCBAQAotLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCi1NSUlERVRDQ0Fma0NERk9pdHRralhieEZjL20zYkRBTkJna3Foa2lHOXcwQkFRc0ZBREJPTVJvd0dBWURWUVFECi1EQkZ6WlhKMlpYSXhMMmx1ZEMxallTMTJNVEVRTUE0R0ExVUVDd3dIZEdWemRHbHVaekVSTUE4R0ExVUVDZ3dJCi1VRzlzWVhKVFUwd3hDekFKQmdOVkJBWVRBazVNTUI0WERURTVNREl4TURFME5EUXdObG9YRFRJNU1ESXhNREUwCi1ORFF3Tmxvd1JERVFNQTRHQTFVRUF3d0hjMlZ5ZG1WeU1qRVFNQTRHQTFVRUN3d0hkR1Z6ZEdsdVp6RVJNQThHCi1BMVVFQ2d3SVVHOXNZWEpUVTB3eEN6QUpCZ05WQkFZVEFrNU1NSUlCSWpBTkJna3Foa2lHOXcwQkFRRUZBQU9DCi1BUThBTUlJQkNnS0NBUUVBd1UyajNlZk5IZEVFMTBseXVKbXNEbmprT2p4S3p6b1RGdEJhNU0yakFJaW43aDVyCi1scWRTdEpEdkxYSjZQaVNhL0xZMHJDVDFkK0FtWkl5Y3NDaDlvZHJxak9iSkhKYTgvc0VFVXJNMjFLUDY0YkYyCi0ySkRCWWJSbVVqYWlKbE9xcTNSZUIzMFpndHNxMkIrZzJRMGNMVWxtOTFzbGMwYm9DNHBQYVF5MUFKRGgyb0lRCi1abjJ1VkN1TFpYbVJvZUpodzgxQVNRanVhQXp4aTRiU1JyL1F1S29SQXg1L1ZxZ2FIa1FZRHcrRmk5cUxSRjdpCi1HTVppTDhkbWpmcGQySDN6SjRrcEFjV1FEajhuOFRESVNnN3YxdDdIeHlkcnh3VTllc1FDUEpvZFBnL29OSmhiCi15M05MVXBiWUVhSXNnSWhwT1ZyVEQ3RGVXUzhSeC9mcUVnRXdsd0lEQVFBQk1BMEdDU3FHU0liM0RRRUJDd1VBCi1BNElCQVFCbXpkUlFWOGMwQWJUOCtJbFBmN0VwemZkaEJ3QnREajdOOEdQRUhMK05xUzFoSHQ3VEgzTDdqQk4zCi1DcUxVZ3JBUDFMRm1RcmpXNUlQWllOWkVBK0x4TU1qQWVodk9INzFwQnNGR3ZRT3B4MkN3bXFNODZzOUZJZ0lhCi16b2I3TDM0K3hWRVpmbVIwOVBzTGlUN2dGMTNodDBIa3ZWWjJoYUJVMGszdlY5N2FFVnZQdGJxcmxSNlJmTHJaCi04blhCRnQ1Q2t6R3hlcFM0d0JDVzRUckdYeHBNSjBXbm5oY0xKVm5FeFVkNlliekdQK2V3WENLZWdEMXdEWDZ6Ci1Vc0VWR0RRVjk3dTN0c3pGNDNreDBudS9RNURZTUNxSlYwa3BJc01CNDY3eFBuTnF5TWRHdFRiWnEySXM4b2o2Ci1WQStmY3RCZE4wQ1c0am8rcWtPaWYwbC9GOEF6Ci0tLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCmRpZmYgLS1naXQgYS90ZXN0cy9kYXRhX2ZpbGVzL3NlcnZlcjIuY3J0IGIvdGVzdHMvZGF0YV9maWxlcy9zZXJ2ZXIyLmNydApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDc0NTE5Ni4uMDAwMDAwMAotLS0gYS90ZXN0cy9kYXRhX2ZpbGVzL3NlcnZlcjIuY3J0CisrKyAvZGV2L251bGwKQEAgLTEsMjAgKzAsMCBAQAotLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCi1NSUlETnpDQ0FoK2dBd0lCQWdJQkFqQU5CZ2txaGtpRzl3MEJBUVVGQURBN01Rc3dDUVlEVlFRR0V3Sk9UREVSCi1NQThHQTFVRUNnd0lVRzlzWVhKVFUwd3hHVEFYQmdOVkJBTU1FRkJ2YkdGeVUxTk1JRlJsYzNRZ1EwRXdIaGNOCi1NVGt3TWpFd01UUTBOREEyV2hjTk1qa3dNakV3TVRRME5EQTJXakEwTVFzd0NRWURWUVFHRXdKT1RERVJNQThHCi1BMVVFQ2d3SVVHOXNZWEpUVTB3eEVqQVFCZ05WQkFNTUNXeHZZMkZzYUc5emREQ0NBU0l3RFFZSktvWklodmNOCi1BUUVCQlFBRGdnRVBBRENDQVFvQ2dnRUJBTUZObzkzbnpSM1JCTmRKY3JpWnJBNTQ1RG84U3M4NkV4YlFXdVROCi1vd0NJcCs0ZWE1YW5VclNRN3kxeWVqNGttdnkyTkt3azlYZmdKbVNNbkxBb2ZhSGE2b3pteVJ5V3ZQN0JCRkt6Ci1OdFNqK3VHeGR0aVF3V0cwWmxJMm9pWlRxcXQwWGdkOUdZTGJLdGdmb05rTkhDMUpadmRiSlhORzZBdUtUMmtNCi10UUNRNGRxQ0VHWjlybFFyaTJWNWthSGlZY1BOUUVrSTdtZ004WXVHMGthLzBMaXFFUU1lZjFhb0doNUVHQThQCi1oWXZhaTBSZTRoakdZaS9IWm8zNlhkaDk4eWVKS1FIRmtBNC9KL0V3eUVvTzc5YmV4OGNuYThjRlBYckVBanlhCi1IVDRQNkRTWVc4dHpTMUtXMkJHaUxJQ0lhVGxhMHcrdzNsa3ZFY2YzNmhJQk1KY0NBd0VBQWFOTk1Fc3dDUVlECi1WUjBUQkFJd0FEQWRCZ05WSFE0RUZnUVVwUVhvWkxqYzMyQVBVQkpOWUtoa3IwMkxRNU13SHdZRFZSMGpCQmd3Ci1Gb0FVdEZya3BiUGUwbEwydWRXbWxRL3JQcnpIL2Y4d0RRWUpLb1pJaHZjTkFRRUZCUUFEZ2dFQkFKa2xnM1E0Ci1jQjd2N0J6c3hNL3ZMeUtjY082b3AwL2daek00Z2h1THEyWTMya2wwc002a1NOVVVtZHV1cTN1LytHbVVaTjJBCi1PLzdjK0h3N2hERkVJdlprOThhQkdqQ0xxbjNEbWdISXY4VG9RNjduZWxsUXh4MlVqMzA5UGRnak5pL3I5SE9jCi1LTkFZUGJCY2c2TUpHV1dqMlRJNnZOYWNlaW9zL0RoT1l4NVYwajVuZnFTSi9wblUwZzlJZ24yTEFoZ1lwR0pFCi1pRU05d1c3aEVNa3dtazBoL3NxWnNySnNHSDVZc0YvVlRoU3EvSlZPMWUybVpIMnZydXlaS0pWQnErOHRETllwCi1Ia0s2dFN5VllRaHpJdDNTdE1KV0tNbC9vNWsyQVl6NnRTQzE2NCsxb0crTUwzTFdnOFhyR0thOTFINFVPS2FwCi1Bd2drMCs0bTBUMjVjTnM9Ci0tLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCmRpZmYgLS1naXQgYS90ZXN0cy9kYXRhX2ZpbGVzL3NlcnZlcjIuY3J0LmRlciBiL3Rlc3RzL2RhdGFfZmlsZXMvc2VydmVyMi5jcnQuZGVyCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5Y2ZhOWFiLi4wMDAwMDAwCi0tLSBhL3Rlc3RzL2RhdGFfZmlsZXMvc2VydmVyMi5jcnQuZGVyCisrKyAvZGV2L251bGwKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvdGVzdHMvZGF0YV9maWxlcy9zZXJ2ZXIyLmRlciBiL3Rlc3RzL2RhdGFfZmlsZXMvc2VydmVyMi5kZXIKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGVjMDMxOTAuLjAwMDAwMDAKLS0tIGEvdGVzdHMvZGF0YV9maWxlcy9zZXJ2ZXIyLmRlcgorKysgL2Rldi9udWxsCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3Rlc3RzL2RhdGFfZmlsZXMvc2VydmVyMi5rZXkgYi90ZXN0cy9kYXRhX2ZpbGVzL3NlcnZlcjIua2V5CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3MGE3NjRhLi4wMDAwMDAwCi0tLSBhL3Rlc3RzL2RhdGFfZmlsZXMvc2VydmVyMi5rZXkKKysrIC9kZXYvbnVsbApAQCAtMSwyNyArMCwwIEBACi0tLS0tLUJFR0lOIFJTQSBQUklWQVRFIEtFWS0tLS0tCi1NSUlFcEFJQkFBS0NBUUVBd1UyajNlZk5IZEVFMTBseXVKbXNEbmprT2p4S3p6b1RGdEJhNU0yakFJaW43aDVyCi1scWRTdEpEdkxYSjZQaVNhL0xZMHJDVDFkK0FtWkl5Y3NDaDlvZHJxak9iSkhKYTgvc0VFVXJNMjFLUDY0YkYyCi0ySkRCWWJSbVVqYWlKbE9xcTNSZUIzMFpndHNxMkIrZzJRMGNMVWxtOTFzbGMwYm9DNHBQYVF5MUFKRGgyb0lRCi1abjJ1VkN1TFpYbVJvZUpodzgxQVNRanVhQXp4aTRiU1JyL1F1S29SQXg1L1ZxZ2FIa1FZRHcrRmk5cUxSRjdpCi1HTVppTDhkbWpmcGQySDN6SjRrcEFjV1FEajhuOFRESVNnN3YxdDdIeHlkcnh3VTllc1FDUEpvZFBnL29OSmhiCi15M05MVXBiWUVhSXNnSWhwT1ZyVEQ3RGVXUzhSeC9mcUVnRXdsd0lEQVFBQkFvSUJBUUNYUjBTOEVJSEZHT1JaCi0rK0F0T2c2ZUVOeEQreFZzMGYxSWVHejU3VGpvM1FuWFg3VkJaTmRqK3AxRUN2aENFL0c3WG5rZ1U1aExaWCtHCi1aMGprei90cUpPSTB2UlNkTEJiaXBIbldvdXlCUTRlL0ExeUlKZGxCdHFYeEoxS0UvaXR1SFJiTmM0ajRrTDhaCi0vcjZwdnduVEkwUFN4MkVxczA0OFlkUzkyTFQ2cUF2NGZsYk5EeE1uMnVZN3M0eWNTNFE4dzFKWG5DZWFBblltCi1XWUk1d3hPK2J2UkVMUjJNY3o1RG1Wbkw4alJ5bWw2bDY1ODJiU3Y1b3VmUmVGSWJ5UFpiUVdsWGdZbnB1NkhlCi1HVGM3RTF6S1lRR0cvOStEUVVsLzF2UXVDUHFRd255MHRRb1gydzV0ZFlwZE1kVm0remtMdGJhanpkVHZpSkphCi1UV3pMNmx0NUFvR0JBTjg2K1NWZUpEY21RSmN2NEVxNlVodFJyNFFHTWlRTXowU29kNmV0dFl4WXpNZ3h0dzI4Ci1DSXJncG96Q2MrVWFaSkxvN1V4dkM2YW44NXIxYjJuS1BDTFFGYWdnSjBINFEwSi9zWk9oQklYYW9Celd4dmVLCi1udXBjZUtkVnhHc0ZpOENEeTg2REJmaXlGaXZmQmorNDdCYmFRelBCajdDNHJLN1VsTGphYjJyREFvR0JBTjJ1Ci1BTTJnY2hvRml1NHYxSEZMOEQ3bHdlRXBpNlpuTUpqbkV1L2RFZ0dRSkZqd2RwTG5QYnNqNGM3NW9kUTRHejhnCi1zdzlsYW85VlZ6YnVzb1JFL0pHSTRhVGRPMHBBVFh5RzdlRzFRdSs1WWMxWUdYY0NybGlBMnhNOXh4K2Q3ZitzCi1tUHpOK1dJRWc1R0pEWVpEakF6SEc1Qk52aS9GZk0xQzlkT3RqdjJkQW9HQUYwdDVLbXdialdIQmhjVnFPNEljCi1CVnZOM0JJbGMxdWUyWVJYRURseFk1YjByOE40WGNlTWdLbVcxOE9IQXBaeGZsOHVQRGF1V1pMWE9nbDR1ZXB2Ci13aFpDM0V1V3JTeXlJQ05oTFkyMUFoN2hiSUVCUEYzTDNac093QytVRXJMK2RYV0xkQjU2Smd5M2daYUJlVzdiCi12RHJFbm9jSmJxQ203SXVraFhIT0JLOENnWUVBd3FkSEIwaHF5TlN6SU9HWTd2OWFiekI2cFVkQTNCWmlRdkVzCi0zTGpIVmQ0SFBKMngwTjhDZ3JCSVdPRTBxOCswaFNNbWVFOTZXVy83akQzZlBXd0NSNXpsWGtueEJRc2Z2MGdQCi0zQkM1UFIwUWR5cHorZCs5emZNZjYyNWt5aXQ0VC9oendoRHZlWlV6SG5rMUNmK0lHN1ErVE9FbkxuV0FXQkVECi1JU09XbXJVQ2dZQUZFbVJ4Z3dBYy91K0Q2dDBzeUN3QVloNlBPdHNjcTlZMGk5R3lXazg5TnpnQzROZHd3YkJICi00QWdhaE94SXhYeDJneEpucTN5ZmtKZklqd2YwczJEeVAwa1kyeTZVYTFPZW9tUGVZOW1ySVM0dEN1RFE2THJFCi1UQjZsOVZHb3hKTDRmeUhuWmI4TDVnR3ZuQjFiYkQ4Y0w2WVBhRGlPaGNSc2VDOXZCaUV1Vmc9PQotLS0tLS1FTkQgUlNBIFBSSVZBVEUgS0VZLS0tLS0KZGlmZiAtLWdpdCBhL3Rlc3RzL2RhdGFfZmlsZXMvc2VydmVyMi5rZXkuZGVyIGIvdGVzdHMvZGF0YV9maWxlcy9zZXJ2ZXIyLmtleS5kZXIKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDk5MDVjZTcuLjAwMDAwMDAKLS0tIGEvdGVzdHMvZGF0YV9maWxlcy9zZXJ2ZXIyLmtleS5kZXIKKysrIC9kZXYvbnVsbApCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS90ZXN0cy9kYXRhX2ZpbGVzL3NlcnZlcjIua2V5LmVuYyBiL3Rlc3RzL2RhdGFfZmlsZXMvc2VydmVyMi5rZXkuZW5jCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3NzNhYWFkLi4wMDAwMDAwCi0tLSBhL3Rlc3RzL2RhdGFfZmlsZXMvc2VydmVyMi5rZXkuZW5jCisrKyAvZGV2L251bGwKQEAgLTEsMzAgKzAsMCBAQAotLS0tLS1CRUdJTiBSU0EgUFJJVkFURSBLRVktLS0tLQotUHJvYy1UeXBlOiA0LEVOQ1JZUFRFRAotREVLLUluZm86IEFFUy0yNTYtQ0JDLDNEREFERjVBRUE1MjVERDI4MkQ5RDVFMEI5NzhBRUUyCi0KLXRoUDBmeU5oSEVXdlZXSHBCU0dBQTRDNndscVd3dUNiWVRHVnM2R1cwN1lOaXl2SW5FL1h4dEtDckVKNk9ScFIKLXRQWjBzVHRtUkZRZ2lBVzRuU2pvbDZBaG5NQVlDa3QrYmwyb3BpaHVLSHIySUJLcEdJeXRDd1l3REIvc29NdzUKLS92WXVaVTNvc0VObldjditSMSswUG9oVTZlcW8xYlZCcmsrTXJtK1pTWDg4NnVETnhBYXFBVzlkdHNDN2ZaWVYKLXcvdUNPbGs3OHJ0ckpVT1RLZmgzVkVYRzFmYi9yWUFQN2JaWXd6a21KWlJvekZQempoblpaU09zc3o0eHdDd1kKLTA0b0hIck1ERkNwYkJtbFpSTGc2MGM1dTBuZHVReDNTS2lnOW82Z0hDRG9PWVQwQnE2NGx2WkxpUGN3TjdheFYKLUw3KzdUSjl1L2tBTE8wQ3FBbHRpdXoxOG1zYUVyWElFM3BIRUdEdDV6eGdVY0x4VDRJaGhpeFdmT0wwOW5xamwKLUlsdEVCbjBKQVZDM3FZc0V6RkducjNDMk5YTFRZSUZVOG0xcXRJeUVjOHZ1aEt3N0hDZ3AzVy94dzlmMmpLWkYKLUppdkZYODBVUnVCVHMyL1RXdUdCS1RtSUdMUUZXWVBLd2h5bDlITmJiSThxNVhkeEtOaVZ4RG5aZlBVL2ljZWYKLW5KK25NN21zcmt2WGo0U2RITy9pZityeFEwN1QvTUhmVThQZXFVTDJMUUF4WTRnZkJ2a0tKL1VBamZzSHYwQjIKLTFXY1pBdDB5cXJKdS95ZE9rUXB3bVEvWENoL2RJVE5ZbnhYWjBianRZNWZHK1FHeEEzUnZxeWZLYlFGVGk4cWcKLU54OGN4T1VEMWRad1o2S3Jvc2RTRkdrTmtad2dJV0FiSUs0TzNUTE41bEQ0MjAzMWt4NGlpS2x4ZGp3NlEyZGYKLU1FVkw2RnFZWGY0bjVNaEdRNW11NU1rRU85SURhei9pQmRtMmpra2pXYXhvek5DNTFyL2krU1R0c1ZRblkyZjIKLXB1YmVrRW5DT29xWE42Qmp1VkxOMjhYU1RMTFRsSjVpOXRkSU1sSUZVS2ZpTnBKak9UallCb3BaRWY1aG0zaDQKLW9sbHE2UWhXOURJSXNWdVlnU3B2b3lMWUxsNTdrdllnazFvR2hWMEtaeWg3SVB6UlhUakVCaU1UTytNWkVvSDAKLWYzeDJSVTNMdk1hZ2IzNnpXczZDU2hWL1R3QUUwOE13Ymk3VURXWVJISGFlTzJiY0tvRURHT1hpT2ZzWEU5SFcKLU9WbUFsSWhlUi9XMWVWQWNzekhjU1Z0WE9qbHNKMDJDZVZFY0FUbkpDazZVZzB2YzBUc3BDbndPQ3ZNOCtSbUUKLWpRMEU2R2VUNlIvRFZIVzlYQk5GeEZ4aVM2eVNkM3lvOXJLVkxkR0dQSG5zK3FtbFNNVEFmWVJPb1IxVjhVaVEKLTBUdmQxQ2ZWVkJlWUNtOVVyV1VYdkd6b0MzcnN0YkQ3U2luR2JkU1U0d0FUSVBlYit2MVR6L3ZWaHI4QW9STEoKLUpLM2pITUtDSEg1OVd4K3RrOEpkcUFtOGZnVUsvNjlBNStnaXRabE02c0FtbmZCSjZWbThocUFDTHBqUFhEV3kKLUxqTkR3V0dxZ1dncURPdWJZK1pKUXdqVUdRZFBkR2JFVUYwQUJaNnNpOXdXK1JWVkdTUEFmaUZxRTRiL1F3QS8KLVJaaDFubTdkYy8zZWxYeHdYUDYwTXlFc1ZkZEFQNjkxeGxEZEw5bVJwYkRNeC9KU3AvaEFCRm1kUE9FdHU1RUIKLTAyRFMzNytwT2RJMWtXa0ZpSTRra2NjWkwwNENUV0xXaDJseGIwUnFVcVFNZU9mNmovV1NUSjJJbjVldGJIU0IKLVI4SVFPc2ZSSU5tM2ZEMTFTWFhLVU03SXpNaTlWQkQ3VGJsTjJIUjlpWGJXN3R3YThPME1SSDgwNWVZK3Zqc00KLWtjWW9PdFdTaCtPRlA5dHhjd2ppWFVCbVZRRFB0YitteUdYbWNoU3BNSUZOVjJ0SFZ2Vm1VRkJTaXB5QUtyOTgKLTNZSTdtdldPMEFWV1hBcVJIWW1NM0RMamxFWENhdVhDamdWaWNDL0VVZEE1Q0FPOTVYL1pRVE53Qms4a1lqeSsKLS0tLS0tRU5EIFJTQSBQUklWQVRFIEtFWS0tLS0tCmRpZmYgLS1naXQgYS90ZXN0cy9kYXRhX2ZpbGVzL3NlcnZlcjIua3UtZHMuY3J0IGIvdGVzdHMvZGF0YV9maWxlcy9zZXJ2ZXIyLmt1LWRzLmNydApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZDFlMTI1MS4uMDAwMDAwMAotLS0gYS90ZXN0cy9kYXRhX2ZpbGVzL3NlcnZlcjIua3UtZHMuY3J0CisrKyAvZGV2L251bGwKQEAgLTEsMjAgKzAsMCBAQAotLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCi1NSUlEUnpDQ0FpK2dBd0lCQWdJQkxEQU5CZ2txaGtpRzl3MEJBUVVGQURBN01Rc3dDUVlEVlFRR0V3Sk9UREVSCi1NQThHQTFVRUNnd0lVRzlzWVhKVFUwd3hHVEFYQmdOVkJBTU1FRkJ2YkdGeVUxTk1JRlJsYzNRZ1EwRXdIaGNOCi1NVGt3TWpFd01UUTBOREEyV2hjTk1qa3dNakV3TVRRME5EQTJXakEwTVFzd0NRWURWUVFHRXdKT1RERVJNQThHCi1BMVVFQ2d3SVVHOXNZWEpUVTB3eEVqQVFCZ05WQkFNTUNXeHZZMkZzYUc5emREQ0NBU0l3RFFZSktvWklodmNOCi1BUUVCQlFBRGdnRVBBRENDQVFvQ2dnRUJBTUZObzkzbnpSM1JCTmRKY3JpWnJBNTQ1RG84U3M4NkV4YlFXdVROCi1vd0NJcCs0ZWE1YW5VclNRN3kxeWVqNGttdnkyTkt3azlYZmdKbVNNbkxBb2ZhSGE2b3pteVJ5V3ZQN0JCRkt6Ci1OdFNqK3VHeGR0aVF3V0cwWmxJMm9pWlRxcXQwWGdkOUdZTGJLdGdmb05rTkhDMUpadmRiSlhORzZBdUtUMmtNCi10UUNRNGRxQ0VHWjlybFFyaTJWNWthSGlZY1BOUUVrSTdtZ004WXVHMGthLzBMaXFFUU1lZjFhb0doNUVHQThQCi1oWXZhaTBSZTRoakdZaS9IWm8zNlhkaDk4eWVKS1FIRmtBNC9KL0V3eUVvTzc5YmV4OGNuYThjRlBYckVBanlhCi1IVDRQNkRTWVc4dHpTMUtXMkJHaUxJQ0lhVGxhMHcrdzNsa3ZFY2YzNmhJQk1KY0NBd0VBQWFOZE1Gc3dDUVlECi1WUjBUQkFJd0FEQWRCZ05WSFE0RUZnUVVwUVhvWkxqYzMyQVBVQkpOWUtoa3IwMkxRNU13SHdZRFZSMGpCQmd3Ci1Gb0FVdEZya3BiUGUwbEwydWRXbWxRL3JQcnpIL2Y4d0RnWURWUjBQQVFIL0JBUURBZ2VBTUEwR0NTcUdTSWIzCi1EUUVCQlFVQUE0SUJBUUNjRHk1VldXMTMzZUwxVGVzVWtlanppQXo5UU5CSHZXa0tOczBqRjYrZlJnV2dGUDVZCi1FRTg3clFYMFoxWGl5VERCNExkS2ZpdlJpM1RNRDdFWDhvNnE5QzNIL2lsdTVhbnJnaGE4V3ppTXJ0di9zOUlGCi1RanB5SGRuWEdvWG1BOXVEcVFMdHVjUjV5ZXAzdXg0bWx3UzhHRzNJVWtwa2R5c05PclZ2U0FSbTBaYWdROXRuCi1ZWnlFakdkOHdQM2pLWU5KQUIyT2Rudlg5T3FCbUV5dlNtTXVjU2lka01rZExyVWNqbU90eitBa3FvUkdld3djCi1lQ2xzdGxwOE5FdVAzN3EyS0xZdGJRTXBpbzFLenNyM1BDZXkxVUltS05qYXV5cFMyRHB6bDFSbm1CdytjNUVuCi1TZExNYStuczNvZFJoRjBJdkVORGh6L21LWkp2d3Rvei9OQnoKLS0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KZGlmZiAtLWdpdCBhL3Rlc3RzL2RhdGFfZmlsZXMvc2VydmVyMi5rdS1kc19rZS5jcnQgYi90ZXN0cy9kYXRhX2ZpbGVzL3NlcnZlcjIua3UtZHNfa2UuY3J0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlYjIzMjQ1Li4wMDAwMDAwCi0tLSBhL3Rlc3RzL2RhdGFfZmlsZXMvc2VydmVyMi5rdS1kc19rZS5jcnQKKysrIC9kZXYvbnVsbApAQCAtMSwyMCArMCwwIEBACi0tLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KLU1JSURSekNDQWkrZ0F3SUJBZ0lCTURBTkJna3Foa2lHOXcwQkFRVUZBREE3TVFzd0NRWURWUVFHRXdKT1RERVIKLU1BOEdBMVVFQ2d3SVVHOXNZWEpUVTB3eEdUQVhCZ05WQkFNTUVGQnZiR0Z5VTFOTUlGUmxjM1FnUTBFd0hoY04KLU1Ua3dNakV3TVRRME5EQTJXaGNOTWprd01qRXdNVFEwTkRBMldqQTBNUXN3Q1FZRFZRUUdFd0pPVERFUk1BOEcKLUExVUVDZ3dJVUc5c1lYSlRVMHd4RWpBUUJnTlZCQU1NQ1d4dlkyRnNhRzl6ZERDQ0FTSXdEUVlKS29aSWh2Y04KLUFRRUJCUUFEZ2dFUEFEQ0NBUW9DZ2dFQkFNRk5vOTNuelIzUkJOZEpjcmlackE1NDVEbzhTczg2RXhiUVd1VE4KLW93Q0lwKzRlYTVhblVyU1E3eTF5ZWo0a212eTJOS3drOVhmZ0ptU01uTEFvZmFIYTZvem15UnlXdlA3QkJGS3oKLU50U2ordUd4ZHRpUXdXRzBabEkyb2laVHFxdDBYZ2Q5R1lMYkt0Z2ZvTmtOSEMxSlp2ZGJKWE5HNkF1S1Qya00KLXRRQ1E0ZHFDRUdaOXJsUXJpMlY1a2FIaVljUE5RRWtJN21nTThZdUcwa2EvMExpcUVRTWVmMWFvR2g1RUdBOFAKLWhZdmFpMFJlNGhqR1lpL0habzM2WGRoOTh5ZUpLUUhGa0E0L0ovRXd5RW9PNzliZXg4Y25hOGNGUFhyRUFqeWEKLUhUNFA2RFNZVzh0elMxS1cyQkdpTElDSWFUbGEwdyt3M2xrdkVjZjM2aElCTUpjQ0F3RUFBYU5kTUZzd0NRWUQKLVZSMFRCQUl3QURBZEJnTlZIUTRFRmdRVXBRWG9aTGpjMzJBUFVCSk5ZS2hrcjAyTFE1TXdId1lEVlIwakJCZ3cKLUZvQVV0RnJrcGJQZTBsTDJ1ZFdtbFEvclByekgvZjh3RGdZRFZSMFBBUUgvQkFRREFnV2dNQTBHQ1NxR1NJYjMKLURRRUJCUVVBQTRJQkFRQjZ1N0QzdEFzQjc1YVpFY1VmdjJYeWVMWDRQOTltengyeU9CU3NQYUlEVFJ5djBYb1QKLXZiZ1VBN3ZpWC9GN0k4YjJrYzZpaFJYU3UvOThjN1ZyL3VTbTBMZlYzVk1nb0FYQkNXTmcvNWMvTjNjMFluWjIKLWltdXYweWVYdzVjSkkzaVlRSm1sbGF3ZHJHZ09zbGZQdU83a3FyRnQzdUdheWxJVHBWTFE3dzdpRHBQYkFGTTgKLWtQcE82Q015Q0ZpNm1pUVlvWmNoVFRQOVgzZHBicE5kQjJGbFNWVDU1SjZUSXZINXg0dDdYQ0ZKdXZZWUp4cmYKLThJM1VGUjNPbkJSNjI1elVIWEo2dVY4eUhHNXplKzRLMm45Q0hjeVg3enVaK2JCMGU4d0lTNlhmOTlNKzFBcEYKLUVTdlh3SEkwRnU4cy9QSitsZUQyOENSSlFNdUFPSklZQk1uUwotLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQpkaWZmIC0tZ2l0IGEvdGVzdHMvZGF0YV9maWxlcy9zZXJ2ZXIyLmt1LWthLmNydCBiL3Rlc3RzL2RhdGFfZmlsZXMvc2VydmVyMi5rdS1rYS5jcnQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGNlOTdlODIuLjAwMDAwMDAKLS0tIGEvdGVzdHMvZGF0YV9maWxlcy9zZXJ2ZXIyLmt1LWthLmNydAorKysgL2Rldi9udWxsCkBAIC0xLDIwICswLDAgQEAKLS0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQotTUlJRFJ6Q0NBaStnQXdJQkFnSUJLakFOQmdrcWhraUc5dzBCQVFVRkFEQTdNUXN3Q1FZRFZRUUdFd0pPVERFUgotTUE4R0ExVUVDZ3dJVUc5c1lYSlRVMHd4R1RBWEJnTlZCQU1NRUZCdmJHRnlVMU5NSUZSbGMzUWdRMEV3SGhjTgotTVRrd01qRXdNVFEwTkRBMldoY05Namt3TWpFd01UUTBOREEyV2pBME1Rc3dDUVlEVlFRR0V3Sk9UREVSTUE4RwotQTFVRUNnd0lVRzlzWVhKVFUwd3hFakFRQmdOVkJBTU1DV3h2WTJGc2FHOXpkRENDQVNJd0RRWUpLb1pJaHZjTgotQVFFQkJRQURnZ0VQQURDQ0FRb0NnZ0VCQU1GTm85M256UjNSQk5kSmNyaVpyQTU0NURvOFNzODZFeGJRV3VUTgotb3dDSXArNGVhNWFuVXJTUTd5MXllajRrbXZ5Mk5Ld2s5WGZnSm1TTW5MQW9mYUhhNm96bXlSeVd2UDdCQkZLegotTnRTait1R3hkdGlRd1dHMFpsSTJvaVpUcXF0MFhnZDlHWUxiS3RnZm9Oa05IQzFKWnZkYkpYTkc2QXVLVDJrTQotdFFDUTRkcUNFR1o5cmxRcmkyVjVrYUhpWWNQTlFFa0k3bWdNOFl1RzBrYS8wTGlxRVFNZWYxYW9HaDVFR0E4UAotaFl2YWkwUmU0aGpHWWkvSFpvMzZYZGg5OHllSktRSEZrQTQvSi9Fd3lFb083OWJleDhjbmE4Y0ZQWHJFQWp5YQotSFQ0UDZEU1lXOHR6UzFLVzJCR2lMSUNJYVRsYTB3K3czbGt2RWNmMzZoSUJNSmNDQXdFQUFhTmRNRnN3Q1FZRAotVlIwVEJBSXdBREFkQmdOVkhRNEVGZ1FVcFFYb1pMamMzMkFQVUJKTllLaGtyMDJMUTVNd0h3WURWUjBqQkJndwotRm9BVXRGcmtwYlBlMGxMMnVkV21sUS9yUHJ6SC9mOHdEZ1lEVlIwUEFRSC9CQVFEQWdNSU1BMEdDU3FHU0liMwotRFFFQkJRVUFBNElCQVFBeEpETXRscXBGSEt3NXltcXpnZm5tMGFZNTFQWk9YcHNQZm9lZDdWejJQelNCMmVKMAotSlFjK1F1TGhpcHB5OGhuUG1QWmcvSFEvZ2VkYnhGS1BpSWlZRWg4Nkd2bkJGb3pRK2M4c0UwaDZ0SmdWT0pKaQotQURVTmVWSm9xMDNXSXJvVE1xQUIwdVcwckhCK09GbTd1UndJREZyMmdXVnJLWktnL0tzRHJ4dG5nMndQT2diVQoteHZQUnROeWFPWmpWMEdqdUJoV3hwUFR4WHcyN2U1TXEzTVM1QjlwaVpnUFhtYW01bFpkT2UwTE5yYlFTaGZtUAotNG1rNGRyamRRYVVyTDNKTHBMdDhTNG9paFpVK2RPSGtZZFpWSFNBdXVHaWtaSzdxUGZFZFAveXJaVENndFk1NAotdlh4djQ3eFQ5TCtwV3RpVG9zQm1zeS9ld3ZXcHJWSkl4TGgzCi0tLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCmRpZmYgLS1naXQgYS90ZXN0cy9kYXRhX2ZpbGVzL3NlcnZlcjIua3Uta2UuY3J0IGIvdGVzdHMvZGF0YV9maWxlcy9zZXJ2ZXIyLmt1LWtlLmNydApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMjFlNmNmMC4uMDAwMDAwMAotLS0gYS90ZXN0cy9kYXRhX2ZpbGVzL3NlcnZlcjIua3Uta2UuY3J0CisrKyAvZGV2L251bGwKQEAgLTEsMjAgKzAsMCBAQAotLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCi1NSUlEUnpDQ0FpK2dBd0lCQWdJQkt6QU5CZ2txaGtpRzl3MEJBUVVGQURBN01Rc3dDUVlEVlFRR0V3Sk9UREVSCi1NQThHQTFVRUNnd0lVRzlzWVhKVFUwd3hHVEFYQmdOVkJBTU1FRkJ2YkdGeVUxTk1JRlJsYzNRZ1EwRXdIaGNOCi1NVGt3TWpFd01UUTBOREEyV2hjTk1qa3dNakV3TVRRME5EQTJXakEwTVFzd0NRWURWUVFHRXdKT1RERVJNQThHCi1BMVVFQ2d3SVVHOXNZWEpUVTB3eEVqQVFCZ05WQkFNTUNXeHZZMkZzYUc5emREQ0NBU0l3RFFZSktvWklodmNOCi1BUUVCQlFBRGdnRVBBRENDQVFvQ2dnRUJBTUZObzkzbnpSM1JCTmRKY3JpWnJBNTQ1RG84U3M4NkV4YlFXdVROCi1vd0NJcCs0ZWE1YW5VclNRN3kxeWVqNGttdnkyTkt3azlYZmdKbVNNbkxBb2ZhSGE2b3pteVJ5V3ZQN0JCRkt6Ci1OdFNqK3VHeGR0aVF3V0cwWmxJMm9pWlRxcXQwWGdkOUdZTGJLdGdmb05rTkhDMUpadmRiSlhORzZBdUtUMmtNCi10UUNRNGRxQ0VHWjlybFFyaTJWNWthSGlZY1BOUUVrSTdtZ004WXVHMGthLzBMaXFFUU1lZjFhb0doNUVHQThQCi1oWXZhaTBSZTRoakdZaS9IWm8zNlhkaDk4eWVKS1FIRmtBNC9KL0V3eUVvTzc5YmV4OGNuYThjRlBYckVBanlhCi1IVDRQNkRTWVc4dHpTMUtXMkJHaUxJQ0lhVGxhMHcrdzNsa3ZFY2YzNmhJQk1KY0NBd0VBQWFOZE1Gc3dDUVlECi1WUjBUQkFJd0FEQWRCZ05WSFE0RUZnUVVwUVhvWkxqYzMyQVBVQkpOWUtoa3IwMkxRNU13SHdZRFZSMGpCQmd3Ci1Gb0FVdEZya3BiUGUwbEwydWRXbWxRL3JQcnpIL2Y4d0RnWURWUjBQQVFIL0JBUURBZ1VnTUEwR0NTcUdTSWIzCi1EUUVCQlFVQUE0SUJBUUNlTnBIMmVTVVhwcTBDUGxFNlAxL2JKVzJmMHZLRldNblo2QjNlRkNkTUNjS0o2TFlWCi1CQTFEbjVHNUhFVzRtQk1KZnlNd0Q1c2tseUV6UURDZ0lEandzK0JSVWZsTXI3MUFlcmZlc0hJR2RXNGpBdzEwCi1hV3dGTWVzenpaNTRaYWhYMkdIUGN3V2ZUY2NTZjl0cFNhUk1sTkJFSXo4bGZiMmlFWjJIUjllQW1BcVlndFIxCi1SYlljc05mQzBvQllPQ1RSbXZYaSt3cEdjVVduK1ZiSXY2ckhyUVluV1hpUEF1UEpVcUlwTTB4OXEwa1Q2TkNpCi1MZmRoYVZWMkRQbnZCWUdSY1hYNzhKSzUvTVF0L3N2NEpTZWZScHZ4cFZRQ21ibzBhbXo3aFVNSEdDZmxBYnJvCi1GcHlCbGZjcGowbFNSb2FVOXgwbUNZenF3RFlkKzROSlpVR1QKLS0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KZGlmZiAtLWdpdCBhL3Rlc3RzL2RhdGFfZmlsZXMvc2VydmVyMy5jcnQgYi90ZXN0cy9kYXRhX2ZpbGVzL3NlcnZlcjMuY3J0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0Njk4N2MzLi4wMDAwMDAwCi0tLSBhL3Rlc3RzL2RhdGFfZmlsZXMvc2VydmVyMy5jcnQKKysrIC9kZXYvbnVsbApAQCAtMSwxNSArMCwwIEBACi0tLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KLU1JSUNYRENDQVVTZ0F3SUJBZ0lCRFRBTkJna3Foa2lHOXcwQkFRVUZBREE3TVFzd0NRWURWUVFHRXdKT1RERVIKLU1BOEdBMVVFQ2d3SVVHOXNZWEpUVTB3eEdUQVhCZ05WQkFNTUVGQnZiR0Z5VTFOTUlGUmxjM1FnUTBFd0hoY04KLU1Ua3dNakV3TVRRME5EQTJXaGNOTWprd01qRXdNVFEwTkRBMldqQTBNUXN3Q1FZRFZRUUdFd0pPVERFUk1BOEcKLUExVUVDZ3dJVUc5c1lYSlRVMHd4RWpBUUJnTlZCQU1NQ1d4dlkyRnNhRzl6ZERCSk1CTUdCeXFHU000OUFnRUcKLUNDcUdTTTQ5QXdFQkF6SUFCSDBBb1F5VWhQQUJTMzh5Njd1RVZzNE8zUlhtS0tyQmRVUjcvTDJRUEI4RUMycDUKLWZRY3NlajZFRmFzdmxUZEovNk5OTUVzd0NRWURWUjBUQkFJd0FEQWRCZ05WSFE0RUZnUVU1QmRyTnJJR2lUcloKLVhrTzI0R1I5aDZ0OTNqY3dId1lEVlIwakJCZ3dGb0FVdEZya3BiUGUwbEwydWRXbWxRL3JQcnpIL2Y4d0RRWUoKLUtvWklodmNOQVFFRkJRQURnZ0VCQUtTQ3VHQ1hjcERyVndSVmdIVmxVc3hBQ1JEVUgyUWlyc0xGQVVrMUNHc1IKLVNuaUJnV2krNUtHSzhmZDNUZitHa1ZlSVpvY2FmN3RuS20wWUpnOFc1UVBEbndyTUQyTDFTallGZ2M3cjFHNGYKLTU3OUZPbzBxUktkSmFiVFYwZTAyMlhGeU43N0pKSEFtOFJralpFbnpVdVc3azgvUm9oWThOQnpoK0tBQ3lIT2kKLTk2RGhHc0JwOUxHNlFJS0IxcnhpTng0d3EzV1V5Z2FNZ0ltb2FEUnFnQUZ4Smp3UkJFaGNzV3RVMkFtb09LZE8KLWh6UXArRXpFam4wNCtTY0pwTXpNRjRGWStrTGF6OVBsdkVPNjFhUXVac0MyZlVtaytNNnE4eGNCTkVkb0ZOdnYKLTBjT2w1TGl1ZXdiMzJzckFaV0NNcGJIRnhhVDlOZDNUeEp3RnhGQ0pwdmM9Ci0tLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCmRpZmYgLS1naXQgYS90ZXN0cy9kYXRhX2ZpbGVzL3NlcnZlcjMua2V5IGIvdGVzdHMvZGF0YV9maWxlcy9zZXJ2ZXIzLmtleQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZmVjZjQ0ZC4uMDAwMDAwMAotLS0gYS90ZXN0cy9kYXRhX2ZpbGVzL3NlcnZlcjMua2V5CisrKyAvZGV2L251bGwKQEAgLTEsNSArMCwwIEBACi0tLS0tLUJFR0lOIEVDIFBSSVZBVEUgS0VZLS0tLS0KLU1GOENBUUVFR0l0VG9ncEU3QU9uanZZdVRxbSs5T2FibXNYMDJYS0lBcUFLQmdncWhrak9QUU1CQWFFMEF6SUEKLUJIMEFvUXlVaFBBQlMzOHk2N3VFVnM0TzNSWG1LS3JCZFVSNy9MMlFQQjhFQzJwNWZRY3NlajZFRmFzdmxUZEoKLS93PT0KLS0tLS0tRU5EIEVDIFBSSVZBVEUgS0VZLS0tLS0KZGlmZiAtLWdpdCBhL3Rlc3RzL2RhdGFfZmlsZXMvc2VydmVyNC5jcnQgYi90ZXN0cy9kYXRhX2ZpbGVzL3NlcnZlcjQuY3J0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyYjQxMzRkLi4wMDAwMDAwCi0tLSBhL3Rlc3RzL2RhdGFfZmlsZXMvc2VydmVyNC5jcnQKKysrIC9kZXYvbnVsbApAQCAtMSwxNyArMCwwIEBACi0tLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KLU1JSUNuVENDQWlHZ0F3SUJBZ0lCQ0RBTUJnZ3Foa2pPUFFRREFnVUFNRDR4Q3pBSkJnTlZCQVlUQWs1TU1SRXcKLUR3WURWUVFLREFoUWIyeGhjbE5UVERFY01Cb0dBMVVFQXd3VFVHOXNZWEp6YzJ3Z1ZHVnpkQ0JGUXlCRFFUQWUKLUZ3MHhPVEF5TVRBeE5EUTBNREJhRncweU9UQXlNVEF4TkRRME1EQmFNRFF4Q3pBSkJnTlZCQVlUQWs1TU1SRXcKLUR3WURWUVFLREFoUWIyeGhjbE5UVERFU01CQUdBMVVFQXd3SmJHOWpZV3hvYjNOME1JSUJJakFOQmdrcWhraUcKLTl3MEJBUUVGQUFPQ0FROEFNSUlCQ2dLQ0FRRUFxOWVNdmxWOWh6c1ArMnU2b1NsaHhseStWU0dlNEkwTWx5MWcKLU1rdStCaGlQbTdFUEVzY0ZlK2NRY3VBN2tyNldtemphbjZ2OTEzaWdUcmkyMUdoNWxsUyt2N3Q0R2RiZm1mUVMKLWs4QWlUMGJDNzYrRHNaL0dhSitBaEh5Rm1jNUNTM1k2Tysra0tFOExHOVJxS1cwSGpuUWpPSDZZUXIrRmdXdjcKLXNtVTJmRkhWZENWdHZJTXpzUnkzVWZCaHk1TGN3R1VHcXJUanduN1FvU1JCY2dKS01wNGNXQnIxNE1LcjRuSisKLXA3bHUzUXJmU0dYVTNUWHJnSHRxaUhUd1NpYVo3NXBLNEN6UDR5d25lYnNBN1lOUmgyc1BHV3VUTFZDdTlGWloKLTlmUjN4Mk5NejY0ZE9qVU8rSkV6cWozNC8wTitnVjNuZjluUXFiVGV4VXRCYTlTdUVRSURBUUFCbzAwd1N6QUoKLUJnTlZIUk1FQWpBQU1CMEdBMVVkRGdRV0JCVEFsQW0xKzBMNDFtaHFZV2pGaWVqc1JWckdlVEFmQmdOVkhTTUUKLUdEQVdnQlNkYlNBa1NRRS9LOHQ0dFJtOGZpVEoyL3MyZkRBTUJnZ3Foa2pPUFFRREFnVUFBMmdBTUdVQ01RREIKLWVrMDBFM3VIUHduVURCVkFQUkpUaHNqMm1Rci9NU0NUd1JNTlhuTmxraTlMdXgwcUdkNnV2aHA1djMxSTdWMEMKLU1EaUNId0VtNTVzVTRnV3JBeFlWS1ZWVjlxTVRHMk1veTRZbkpERGx4d3B5WFB0YTVBYzJGViswQWJJbkJYU00KLUJnPT0KLS0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KZGlmZiAtLWdpdCBhL3Rlc3RzL2RhdGFfZmlsZXMvc2VydmVyNC5rZXkgYi90ZXN0cy9kYXRhX2ZpbGVzL3NlcnZlcjQua2V5CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5ZTRkYWVlLi4wMDAwMDAwCi0tLSBhL3Rlc3RzL2RhdGFfZmlsZXMvc2VydmVyNC5rZXkKKysrIC9kZXYvbnVsbApAQCAtMSwyNyArMCwwIEBACi0tLS0tLUJFR0lOIFJTQSBQUklWQVRFIEtFWS0tLS0tCi1NSUlFcEFJQkFBS0NBUUVBcTllTXZsVjloenNQKzJ1Nm9TbGh4bHkrVlNHZTRJME1seTFnTWt1K0JoaVBtN0VQCi1Fc2NGZStjUWN1QTdrcjZXbXpqYW42djkxM2lnVHJpMjFHaDVsbFMrdjd0NEdkYmZtZlFTazhBaVQwYkM3NitECi1zWi9HYUorQWhIeUZtYzVDUzNZNk8rK2tLRThMRzlScUtXMEhqblFqT0g2WVFyK0ZnV3Y3c21VMmZGSFZkQ1Z0Ci12SU16c1J5M1VmQmh5NUxjd0dVR3FyVGp3bjdRb1NSQmNnSktNcDRjV0JyMTRNS3I0bkorcDdsdTNRcmZTR1hVCi0zVFhyZ0h0cWlIVHdTaWFaNzVwSzRDelA0eXduZWJzQTdZTlJoMnNQR1d1VExWQ3U5RlpaOWZSM3gyTk16NjRkCi1PalVPK0pFenFqMzQvME4rZ1YzbmY5blFxYlRleFV0QmE5U3VFUUlEQVFBQkFvSUJBSG54dFl2Z0NQdHRHMU5VCi15SlRUVS9JN0lFb3pXSmFMSVpNcWZTaFQvWjQvMGJFdmZiM2FnL2JBS3prS0ROeCs2VXR2bGgxWEpRVENNaWlMCi1CaHRIcEhqYzNKd2RBZ1o4S0NNTlJCMmJhLzJML291dXBxcm04aHFPamRuMnI2eE01Vmk5cG1lZ0VJTVdUSkRNCi1OU1grbkMwb0YxSmc2OVg2S1ZpRmM1RE9LRk1oYWNTRXdMSmt2L0VxQ2dkV2FCb3FNbFR0VFdLZG0zNHhTTjJMCi1QNW85a09naWhUQk5VVW5WQlVXSmlUN0M2YkJBRndiMXJFQ3B2Tk9rNmgrbHZHK2ZTRFpLWWR3QnJBc0tzcEl5Ci0vYVhaRDRxYWljZWZHYmxySGNadjJvZy96WWtGczRyaVdOT21nbHhaeXJLLzNyRkZrMEI4bUJrMW1XUXZySzcrCi1KcS9SNGswQ2dZRUEwaE8yOWhKamVUQkRkT1dnenlYcjV1cHBtUjFXVTdmdi9KeThQTFJNdlV2bWlNUXFSREszCi16d0djNkg5Mzh3ZHN1YnBkVENMUGhxMHJoRENUcXR3SUVBdUZqWklZSnM0eVp6Znk2a2xhRDM1MTZpSWdiK1c3Ci1mZTFSa1lNQnA5d1YweDI3MnZ6UDRZNXAvZnpwNXhodk41Mk9raFFzakhSSGV3ZkRhVXdTRlNjQ2dZRUEwV2dpCi1rR1ZLNk94em9NQ2dpV3gvTCt5M3lyWXVIZFdBTlRJSWE1UnZaazRVUXFFRmtHWUdWUDFycGJCL2ZBYTFZcWV2Ci1xWGtMWnFhZDJkaEpDdUJWcnlHdDI5Q0hzYm5FUS9RdVR3bEdteVpqMVU4Tm5KQmdOQ1BUZG1HVEJJbS83dzlTCi1FU1o0OGJVbGNxenNabjFCaWcvQTZKWDFlNWk5Yi8xanlvek5WZ2NDZ1lFQW5SWmM0OWlRUlpqUGVHUVZRWkVMCi11NXBoNkRyRnlNaHNUaXN0bnY3N3V6azhZOXk3OWs4dW56NkhoRnQ4NkdBTzd6cnFkUG82MEd4QmRCR1crbGFhCi1PTlZFd3I0U0RVSjI4alFtRXdkU3J1OVRZUWF2MXJ5azNOOU85VTVQT0tRY05jZXdKMnFRVUF2Y09pNmJBVkdHCi1LTUpLVC9XQjhtMG8zbGpKeUwwM2NGVUNnWUJvSEZUcTQyRmQ4b2orU0NiSWpDZWo1Ulh2YzZuejdUemp0YTlZCi1CU0ZwaExJditpeHhBVGh1c3R2OU1ZWUFYTGw3aGhFZ3VleUFLYUJiT1Z2L1MwOXVWZGxCYXlpN3BMYytiYjFFCi1VRUZKUzhuZ3VILzA4aGJTZFdsaDl0c0lLNUJBUTZheW5pVU5UdG1DYlJUUFU4RHM2aTRudEw2cXAyS3Z0aFFTCi1GUFRWcXdLQmdRQzhtMnNKYXBNbXMwLzdFZUdwVXdNTytXTkNIZVJ5dWpucmlXWUw4S21zMGxtQW44TnJRb0E1Ci13Z2J4MG5aL1ZyWHRMUEdIeTkxNWp4RFhPVTFZYzJncUVmNVFtL0duQnlVdW1sMW1VU2xkaVBjaVNKdkt6TXFQCi1MZVduYjYySEQ2MHQvendzdE4yMFl6dDZtQkxvY20xUFBkUGhQd2VJL0VGNnBTZ3ZsdzVOVHc9PQotLS0tLS1FTkQgUlNBIFBSSVZBVEUgS0VZLS0tLS0KZGlmZiAtLWdpdCBhL3Rlc3RzL2RhdGFfZmlsZXMvc2VydmVyNS1iYWRzaWduLmNydCBiL3Rlc3RzL2RhdGFfZmlsZXMvc2VydmVyNS1iYWRzaWduLmNydApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYjY0MWY3MC4uMDAwMDAwMAotLS0gYS90ZXN0cy9kYXRhX2ZpbGVzL3NlcnZlcjUtYmFkc2lnbi5jcnQKKysrIC9kZXYvbnVsbApAQCAtMSwxNCArMCwwIEBACi0tLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KLU1JSUNJRENDQWFXZ0F3SUJBZ0lCQ1RBS0JnZ3Foa2pPUFFRREFqQStNUXN3Q1FZRFZRUUdFd0pPVERFUk1BOEcKLUExVUVDZ3dJVUc5c1lYSlRVMHd4SERBYUJnTlZCQU1NRTFCdmJHRnljM05zSUZSbGMzUWdSVU1nUTBFd0hoY04KLU1qTXdOVEUzTURjeE1ETTJXaGNOTXpNd05URTBNRGN4TURNMldqQTBNUXN3Q1FZRFZRUUdFd0pPVERFUk1BOEcKLUExVUVDZ3dJVUc5c1lYSlRVMHd4RWpBUUJnTlZCQU1NQ1d4dlkyRnNhRzl6ZERCWk1CTUdCeXFHU000OUFnRUcKLUNDcUdTTTQ5QXdFSEEwSUFCRGZNVnRsMkNSNWFjajdIV1MzL0lHN3VmUGtHa1hUUXJSUzE5MmdpV1dLU1R1VUEKLTJDTVIvK292MGpSZFhSYTlpb2pDYTNjTlZjMktLZzc2QWNpMDdmK2pnWjB3Z1pvd0NRWURWUjBUQkFJd0FEQWQKLUJnTlZIUTRFRmdRVVVHR2xqOVFIMmRlQ0FRemxaWCtNWTBhbkU3NHdiZ1lEVlIwakJHY3daWUFVblcwZ0pFa0IKLVB5dkxlTFVadkg0a3lkdjdObnloUXFSQU1ENHhDekFKQmdOVkJBWVRBazVNTVJFd0R3WURWUVFLREFoUWIyeGgKLWNsTlRUREVjTUJvR0ExVUVBd3dUVUc5c1lYSnpjMndnVkdWemRDQkZReUJEUVlJSkFNRkQ0bjVpUTh6b01Bb0cKLUNDcUdTTTQ5QkFNQ0Eya0FNR1lDTVFEZzZwN1BQZnIyK243bkd2eWEzcFU0dXN0M2s3T2JrNC90WlgrdUhIUlEKLXFhY2NzeVVMZUZOemt5UnZXSEZlVDVzQ01RQ3pESlg3OUlpN2hJTFl6YS9pWFdKZS9CakpFRThNdGVDUkdYRE4KLTA2akMrQkxnT0gxS1FWOUFycUVoM0FoT2hFMD0KLS0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KZGlmZiAtLWdpdCBhL3Rlc3RzL2RhdGFfZmlsZXMvc2VydmVyNS1kZXIwLmNydCBiL3Rlc3RzL2RhdGFfZmlsZXMvc2VydmVyNS1kZXIwLmNydApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMWUwYTAwOC4uMDAwMDAwMAotLS0gYS90ZXN0cy9kYXRhX2ZpbGVzL3NlcnZlcjUtZGVyMC5jcnQKKysrIC9kZXYvbnVsbApCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS90ZXN0cy9kYXRhX2ZpbGVzL3NlcnZlcjUtZGVyMWEuY3J0IGIvdGVzdHMvZGF0YV9maWxlcy9zZXJ2ZXI1LWRlcjFhLmNydApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYzE0MzI5OC4uMDAwMDAwMAotLS0gYS90ZXN0cy9kYXRhX2ZpbGVzL3NlcnZlcjUtZGVyMWEuY3J0CisrKyAvZGV2L251bGwKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvdGVzdHMvZGF0YV9maWxlcy9zZXJ2ZXI1LWRlcjFiLmNydCBiL3Rlc3RzL2RhdGFfZmlsZXMvc2VydmVyNS1kZXIxYi5jcnQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDY5ODk2NzkuLjAwMDAwMDAKLS0tIGEvdGVzdHMvZGF0YV9maWxlcy9zZXJ2ZXI1LWRlcjFiLmNydAorKysgL2Rldi9udWxsCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3Rlc3RzL2RhdGFfZmlsZXMvc2VydmVyNS1kZXIyLmNydCBiL3Rlc3RzL2RhdGFfZmlsZXMvc2VydmVyNS1kZXIyLmNydApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNTZhZDE0Yy4uMDAwMDAwMAotLS0gYS90ZXN0cy9kYXRhX2ZpbGVzL3NlcnZlcjUtZGVyMi5jcnQKKysrIC9kZXYvbnVsbApCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS90ZXN0cy9kYXRhX2ZpbGVzL3NlcnZlcjUtZGVyNC5jcnQgYi90ZXN0cy9kYXRhX2ZpbGVzL3NlcnZlcjUtZGVyNC5jcnQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDRjZWVkNDEuLjAwMDAwMDAKLS0tIGEvdGVzdHMvZGF0YV9maWxlcy9zZXJ2ZXI1LWRlcjQuY3J0CisrKyAvZGV2L251bGwKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvdGVzdHMvZGF0YV9maWxlcy9zZXJ2ZXI1LWRlcjguY3J0IGIvdGVzdHMvZGF0YV9maWxlcy9zZXJ2ZXI1LWRlcjguY3J0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwN2ZmZDJmLi4wMDAwMDAwCi0tLSBhL3Rlc3RzL2RhdGFfZmlsZXMvc2VydmVyNS1kZXI4LmNydAorKysgL2Rldi9udWxsCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3Rlc3RzL2RhdGFfZmlsZXMvc2VydmVyNS1kZXI5LmNydCBiL3Rlc3RzL2RhdGFfZmlsZXMvc2VydmVyNS1kZXI5LmNydApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYWE4ZjlhMS4uMDAwMDAwMAotLS0gYS90ZXN0cy9kYXRhX2ZpbGVzL3NlcnZlcjUtZGVyOS5jcnQKKysrIC9kZXYvbnVsbApCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS90ZXN0cy9kYXRhX2ZpbGVzL3NlcnZlcjUtZXhwaXJlZC5jcnQgYi90ZXN0cy9kYXRhX2ZpbGVzL3NlcnZlcjUtZXhwaXJlZC5jcnQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGQ3MjZlNWMuLjAwMDAwMDAKLS0tIGEvdGVzdHMvZGF0YV9maWxlcy9zZXJ2ZXI1LWV4cGlyZWQuY3J0CisrKyAvZGV2L251bGwKQEAgLTEsMTQgKzAsMCBAQAotLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCi1NSUlDSGpDQ0FhV2dBd0lCQWdJQkhqQUtCZ2dxaGtqT1BRUURBakErTVFzd0NRWURWUVFHRXdKT1RERVJNQThHCi1BMVVFQ2hNSVVHOXNZWEpUVTB3eEhEQWFCZ05WQkFNVEUxQnZiR0Z5YzNOc0lGUmxjM1FnUlVNZ1EwRXdIaGNOCi1NRFF3TXpFd01USXdPVE13V2hjTk1UUXdNekE0TVRJd09UTXdXakEwTVFzd0NRWURWUVFHRXdKT1RERVJNQThHCi1BMVVFQ2hNSVVHOXNZWEpUVTB3eEVqQVFCZ05WQkFNVENXeHZZMkZzYUc5emREQlpNQk1HQnlxR1NNNDlBZ0VHCi1DQ3FHU000OUF3RUhBMElBQkRmTVZ0bDJDUjVhY2o3SFdTMy9JRzd1ZlBrR2tYVFFyUlMxOTJnaVdXS1NUdVVBCi0yQ01SLytvdjBqUmRYUmE5aW9qQ2EzY05WYzJLS2c3NkFjaTA3ZitqZ1owd2dab3dDUVlEVlIwVEJBSXdBREFkCi1CZ05WSFE0RUZnUVVVR0dsajlRSDJkZUNBUXpsWlgrTVkwYW5FNzR3YmdZRFZSMGpCR2N3WllBVW5XMGdKRWtCCi1QeXZMZUxVWnZINGt5ZHY3Tm55aFFxUkFNRDR4Q3pBSkJnTlZCQVlUQWs1TU1SRXdEd1lEVlFRS0V3aFFiMnhoCi1jbE5UVERFY01Cb0dBMVVFQXhNVFVHOXNZWEp6YzJ3Z1ZHVnpkQ0JGUXlCRFFZSUpBTUZENG41aVE4em9NQW9HCi1DQ3FHU000OUJBTUNBMmNBTUdRQ01DRHh2RG1obHJFazByNGhxQ3d2UUR4V0VvWFBiYkQxZ2dsZkxUM0JzR3B1Ci1YSFVRMVcySHdCM28vN041STEzQkJnSXdjbUcxN3p5TklPa1lpeUV4WXRQQ1pDcGJvZkVNcFJZNXFXRzBLNllMCi1mTjA4alN6eUZ0NmtiTzRhazBENnRDNVEKLS0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KZGlmZiAtLWdpdCBhL3Rlc3RzL2RhdGFfZmlsZXMvc2VydmVyNS1mdXR1cmUuY3J0IGIvdGVzdHMvZGF0YV9maWxlcy9zZXJ2ZXI1LWZ1dHVyZS5jcnQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDk2OWM4NGIuLjAwMDAwMDAKLS0tIGEvdGVzdHMvZGF0YV9maWxlcy9zZXJ2ZXI1LWZ1dHVyZS5jcnQKKysrIC9kZXYvbnVsbApAQCAtMSwxNCArMCwwIEBACi0tLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KLU1JSUNIakNDQWFXZ0F3SUJBZ0lCSFRBS0JnZ3Foa2pPUFFRREFqQStNUXN3Q1FZRFZRUUdFd0pPVERFUk1BOEcKLUExVUVDaE1JVUc5c1lYSlRVMHd4SERBYUJnTlZCQU1URTFCdmJHRnljM05zSUZSbGMzUWdSVU1nUTBFd0hoY04KLU16SXdNekV3TVRFd05ERXhXaGNOTkRJd016QTRNVEV3TkRFeFdqQTBNUXN3Q1FZRFZRUUdFd0pPVERFUk1BOEcKLUExVUVDaE1JVUc5c1lYSlRVMHd4RWpBUUJnTlZCQU1UQ1d4dlkyRnNhRzl6ZERCWk1CTUdCeXFHU000OUFnRUcKLUNDcUdTTTQ5QXdFSEEwSUFCRGZNVnRsMkNSNWFjajdIV1MzL0lHN3VmUGtHa1hUUXJSUzE5MmdpV1dLU1R1VUEKLTJDTVIvK292MGpSZFhSYTlpb2pDYTNjTlZjMktLZzc2QWNpMDdmK2pnWjB3Z1pvd0NRWURWUjBUQkFJd0FEQWQKLUJnTlZIUTRFRmdRVVVHR2xqOVFIMmRlQ0FRemxaWCtNWTBhbkU3NHdiZ1lEVlIwakJHY3daWUFVblcwZ0pFa0IKLVB5dkxlTFVadkg0a3lkdjdObnloUXFSQU1ENHhDekFKQmdOVkJBWVRBazVNTVJFd0R3WURWUVFLRXdoUWIyeGgKLWNsTlRUREVjTUJvR0ExVUVBeE1UVUc5c1lYSnpjMndnVkdWemRDQkZReUJEUVlJSkFNRkQ0bjVpUTh6b01Bb0cKLUNDcUdTTTQ5QkFNQ0EyY0FNR1FDTUFaV2NiK05ZeEZWSytXNlo1ZWtuTTJUcmJxUUdaRVlIUVhlVjkvWEYwdDcKLVRMRGhBNmEvcEZEVEpWWnVuRnplc2dJd2Zxa0JZdXZNa2lObFM0bFdjVnlmOEw0Q1pJSENuMXlIbk9DeHU4aXgKLXVxZ0xiNG5hM2k5NHg5dXJnYlpaWWZWSwotLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQpkaWZmIC0tZ2l0IGEvdGVzdHMvZGF0YV9maWxlcy9zZXJ2ZXI1LXNlbGZzaWduZWQuY3J0IGIvdGVzdHMvZGF0YV9maWxlcy9zZXJ2ZXI1LXNlbGZzaWduZWQuY3J0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwZWFmZTcwLi4wMDAwMDAwCi0tLSBhL3Rlc3RzL2RhdGFfZmlsZXMvc2VydmVyNS1zZWxmc2lnbmVkLmNydAorKysgL2Rldi9udWxsCkBAIC0xLDEyICswLDAgQEAKLS0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQotTUlJQnh6Q0NBVzJnQXdJQkFnSU1VNkxMU3hKT3JZTjlxSlN5TUFvR0NDcUdTTTQ5QkFNQ01FY3hFekFSQmdOVgotQkFNTUNuTmxiR1p6YVdkdVpXUXhFREFPQmdOVkJBc01CM1JsYzNScGJtY3hFVEFQQmdOVkJBb01DRkJ2YkdGeQotVTFOTU1Rc3dDUVlEVlFRR0V3Sk9UREFlRncweU16QTFNRGt3TWpRNU5UZGFGdzB6TXpBMU1EWXdNalE1TlRkYQotTUVjeEV6QVJCZ05WQkFNTUNuTmxiR1p6YVdkdVpXUXhFREFPQmdOVkJBc01CM1JsYzNScGJtY3hFVEFQQmdOVgotQkFvTUNGQnZiR0Z5VTFOTU1Rc3dDUVlEVlFRR0V3Sk9UREJaTUJNR0J5cUdTTTQ5QWdFR0NDcUdTTTQ5QXdFSAotQTBJQUJEZk1WdGwyQ1I1YWNqN0hXUzMvSUc3dWZQa0drWFRRclJTMTkyZ2lXV0tTVHVVQTJDTVIvK292MGpSZAotWFJhOWlvakNhM2NOVmMyS0tnNzZBY2kwN2YralB6QTlNQXdHQTFVZEV3RUIvd1FDTUFBd0RnWURWUjBQQVFILwotQkFRREFnZUFNQjBHQTFVZERnUVdCQlJRWWFXUDFBZloxNElCRE9WbGY0eGpScWNUdmpBS0JnZ3Foa2pPUFFRRAotQWdOSUFEQkZBaUFYaUp4RHJkNWFMekdCL1VjM2tZQklCdVNVSU1Hdm9sMmM4RXZ3bUYzem1RSWhBUEZyS01nQQotczJhd3pvL1BCQjVnRlRrRHViODh3Ull3UzFSOUpQWUNYVU8wCi0tLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCmRpZmYgLS1naXQgYS90ZXN0cy9kYXRhX2ZpbGVzL3NlcnZlcjUtc2hhMS5jcnQgYi90ZXN0cy9kYXRhX2ZpbGVzL3NlcnZlcjUtc2hhMS5jcnQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDZjMTQxODMuLjAwMDAwMDAKLS0tIGEvdGVzdHMvZGF0YV9maWxlcy9zZXJ2ZXI1LXNoYTEuY3J0CisrKyAvZGV2L251bGwKQEAgLTEsMTQgKzAsMCBAQAotLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCi1NSUlDSGpDQ0FhU2dBd0lCQWdJQkNUQUpCZ2NxaGtqT1BRUUJNRDR4Q3pBSkJnTlZCQVlUQWs1TU1SRXdEd1lECi1WUVFLREFoUWIyeGhjbE5UVERFY01Cb0dBMVVFQXd3VFVHOXNZWEp6YzJ3Z1ZHVnpkQ0JGUXlCRFFUQWVGdzB5Ci1NekExTVRjd056RXdNemRhRncwek16QTFNVFF3TnpFd016ZGFNRFF4Q3pBSkJnTlZCQVlUQWs1TU1SRXdEd1lECi1WUVFLREFoUWIyeGhjbE5UVERFU01CQUdBMVVFQXd3SmJHOWpZV3hvYjNOME1Ga3dFd1lIS29aSXpqMENBUVlJCi1Lb1pJemowREFRY0RRZ0FFTjh4VzJYWUpIbHB5UHNkWkxmOGdidTU4K1FhUmROQ3RGTFgzYUNKWllwSk81UURZCi1JeEgvNmkvU05GMWRGcjJLaU1KcmR3MVZ6WW9xRHZvQnlMVHQvNk9CblRDQm1qQUpCZ05WSFJNRUFqQUFNQjBHCi1BMVVkRGdRV0JCUlFZYVdQMUFmWjE0SUJET1ZsZjR4alJxY1R2akJ1QmdOVkhTTUVaekJsZ0JTZGJTQWtTUUUvCi1LOHQ0dFJtOGZpVEoyL3MyZktGQ3BFQXdQakVMTUFrR0ExVUVCaE1DVGt3eEVUQVBCZ05WQkFvTUNGQnZiR0Z5Ci1VMU5NTVJ3d0dnWURWUVFEREJOUWIyeGhjbk56YkNCVVpYTjBJRVZESUVOQmdna0F3VVBpZm1KRHpPZ3dDUVlICi1Lb1pJemowRUFRTnBBREJtQWpFQW5iaEo0Ty94NmJjQmdCMEZuWDQ0cTlqOXBqQllITjlaSzU5Ykh4cWVyaHlKCi0xMkRsVmJOb09vbmxrRllWVXNnQ0FqRUFtblVvbEt1K1hVdFMyaXMzZDBNMlY2Y1B3WnhxNXFJMCt3QlI3OS9wCi1OUmpGT2x5UDY5T1dzOUNJMmN5WUxiR2MKLS0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KZGlmZiAtLWdpdCBhL3Rlc3RzL2RhdGFfZmlsZXMvc2VydmVyNS1zaGEyMjQuY3J0IGIvdGVzdHMvZGF0YV9maWxlcy9zZXJ2ZXI1LXNoYTIyNC5jcnQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGFkMDFiMTAuLjAwMDAwMDAKLS0tIGEvdGVzdHMvZGF0YV9maWxlcy9zZXJ2ZXI1LXNoYTIyNC5jcnQKKysrIC9kZXYvbnVsbApAQCAtMSwxNCArMCwwIEBACi0tLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KLU1JSUNIekNDQWFXZ0F3SUJBZ0lCQ1RBS0JnZ3Foa2pPUFFRREFUQStNUXN3Q1FZRFZRUUdFd0pPVERFUk1BOEcKLUExVUVDZ3dJVUc5c1lYSlRVMHd4SERBYUJnTlZCQU1NRTFCdmJHRnljM05zSUZSbGMzUWdSVU1nUTBFd0hoY04KLU1qTXdOVEUzTURjeE1ETTNXaGNOTXpNd05URTBNRGN4TURNM1dqQTBNUXN3Q1FZRFZRUUdFd0pPVERFUk1BOEcKLUExVUVDZ3dJVUc5c1lYSlRVMHd4RWpBUUJnTlZCQU1NQ1d4dlkyRnNhRzl6ZERCWk1CTUdCeXFHU000OUFnRUcKLUNDcUdTTTQ5QXdFSEEwSUFCRGZNVnRsMkNSNWFjajdIV1MzL0lHN3VmUGtHa1hUUXJSUzE5MmdpV1dLU1R1VUEKLTJDTVIvK292MGpSZFhSYTlpb2pDYTNjTlZjMktLZzc2QWNpMDdmK2pnWjB3Z1pvd0NRWURWUjBUQkFJd0FEQWQKLUJnTlZIUTRFRmdRVVVHR2xqOVFIMmRlQ0FRemxaWCtNWTBhbkU3NHdiZ1lEVlIwakJHY3daWUFVblcwZ0pFa0IKLVB5dkxlTFVadkg0a3lkdjdObnloUXFSQU1ENHhDekFKQmdOVkJBWVRBazVNTVJFd0R3WURWUVFLREFoUWIyeGgKLWNsTlRUREVjTUJvR0ExVUVBd3dUVUc5c1lYSnpjMndnVkdWemRDQkZReUJEUVlJSkFNRkQ0bjVpUTh6b01Bb0cKLUNDcUdTTTQ5QkFNQkEyZ0FNR1VDTVFEbEN2dHZDQWdKRGlHUW5xT1l3em1lYWZ5eU5icFNSWndjcFY4NEZTa20KLXB3S3cyalR2M1dhWHVqU051N0I2MkdvQ01FOTdvTEJHU2dpT01ENVFVRWRPakFCa0NWNEUyc2x5dms0R2s3MWMKLTllOTJWZ0EzcktQUlhsdndBQ1BzYkZJUUpRPT0KLS0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KZGlmZiAtLWdpdCBhL3Rlc3RzL2RhdGFfZmlsZXMvc2VydmVyNS1zaGEzODQuY3J0IGIvdGVzdHMvZGF0YV9maWxlcy9zZXJ2ZXI1LXNoYTM4NC5jcnQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDdkZTZmOGMuLjAwMDAwMDAKLS0tIGEvdGVzdHMvZGF0YV9maWxlcy9zZXJ2ZXI1LXNoYTM4NC5jcnQKKysrIC9kZXYvbnVsbApAQCAtMSwxNCArMCwwIEBACi0tLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KLU1JSUNIekNDQWFXZ0F3SUJBZ0lCQ1RBS0JnZ3Foa2pPUFFRREF6QStNUXN3Q1FZRFZRUUdFd0pPVERFUk1BOEcKLUExVUVDZ3dJVUc5c1lYSlRVMHd4SERBYUJnTlZCQU1NRTFCdmJHRnljM05zSUZSbGMzUWdSVU1nUTBFd0hoY04KLU1qTXdOVEUzTURjeE1ETTNXaGNOTXpNd05URTBNRGN4TURNM1dqQTBNUXN3Q1FZRFZRUUdFd0pPVERFUk1BOEcKLUExVUVDZ3dJVUc5c1lYSlRVMHd4RWpBUUJnTlZCQU1NQ1d4dlkyRnNhRzl6ZERCWk1CTUdCeXFHU000OUFnRUcKLUNDcUdTTTQ5QXdFSEEwSUFCRGZNVnRsMkNSNWFjajdIV1MzL0lHN3VmUGtHa1hUUXJSUzE5MmdpV1dLU1R1VUEKLTJDTVIvK292MGpSZFhSYTlpb2pDYTNjTlZjMktLZzc2QWNpMDdmK2pnWjB3Z1pvd0NRWURWUjBUQkFJd0FEQWQKLUJnTlZIUTRFRmdRVVVHR2xqOVFIMmRlQ0FRemxaWCtNWTBhbkU3NHdiZ1lEVlIwakJHY3daWUFVblcwZ0pFa0IKLVB5dkxlTFVadkg0a3lkdjdObnloUXFSQU1ENHhDekFKQmdOVkJBWVRBazVNTVJFd0R3WURWUVFLREFoUWIyeGgKLWNsTlRUREVjTUJvR0ExVUVBd3dUVUc5c1lYSnpjMndnVkdWemRDQkZReUJEUVlJSkFNRkQ0bjVpUTh6b01Bb0cKLUNDcUdTTTQ5QkFNREEyZ0FNR1VDTVFEUFYzcmJKWDZyaWdSNVNKUUdOenFmcmVxOFkzTyttbEFRa3VvOXNpY1UKLWxsVlhqTjNnNDFkT0ptYUVPMnlIak1RQ01DZWNYTFFzWWpRbjJ3UGgvWHlFK1BMNDhZcDArWTYrSEVIQ2pMazMKLUpPVFFxbzczYTl4Tit5aHJ1ZDJzc1Q4MzB3PT0KLS0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KZGlmZiAtLWdpdCBhL3Rlc3RzL2RhdGFfZmlsZXMvc2VydmVyNS1zaGE1MTIuY3J0IGIvdGVzdHMvZGF0YV9maWxlcy9zZXJ2ZXI1LXNoYTUxMi5jcnQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDhiZWE4YzIuLjAwMDAwMDAKLS0tIGEvdGVzdHMvZGF0YV9maWxlcy9zZXJ2ZXI1LXNoYTUxMi5jcnQKKysrIC9kZXYvbnVsbApAQCAtMSwxNCArMCwwIEBACi0tLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KLU1JSUNIakNDQWFXZ0F3SUJBZ0lCQ1RBS0JnZ3Foa2pPUFFRREJEQStNUXN3Q1FZRFZRUUdFd0pPVERFUk1BOEcKLUExVUVDZ3dJVUc5c1lYSlRVMHd4SERBYUJnTlZCQU1NRTFCdmJHRnljM05zSUZSbGMzUWdSVU1nUTBFd0hoY04KLU1qTXdOVEUzTURjeE1ETTNXaGNOTXpNd05URTBNRGN4TURNM1dqQTBNUXN3Q1FZRFZRUUdFd0pPVERFUk1BOEcKLUExVUVDZ3dJVUc5c1lYSlRVMHd4RWpBUUJnTlZCQU1NQ1d4dlkyRnNhRzl6ZERCWk1CTUdCeXFHU000OUFnRUcKLUNDcUdTTTQ5QXdFSEEwSUFCRGZNVnRsMkNSNWFjajdIV1MzL0lHN3VmUGtHa1hUUXJSUzE5MmdpV1dLU1R1VUEKLTJDTVIvK292MGpSZFhSYTlpb2pDYTNjTlZjMktLZzc2QWNpMDdmK2pnWjB3Z1pvd0NRWURWUjBUQkFJd0FEQWQKLUJnTlZIUTRFRmdRVVVHR2xqOVFIMmRlQ0FRemxaWCtNWTBhbkU3NHdiZ1lEVlIwakJHY3daWUFVblcwZ0pFa0IKLVB5dkxlTFVadkg0a3lkdjdObnloUXFSQU1ENHhDekFKQmdOVkJBWVRBazVNTVJFd0R3WURWUVFLREFoUWIyeGgKLWNsTlRUREVjTUJvR0ExVUVBd3dUVUc5c1lYSnpjMndnVkdWemRDQkZReUJEUVlJSkFNRkQ0bjVpUTh6b01Bb0cKLUNDcUdTTTQ5QkFNRUEyY0FNR1FDTUVla2JQRDhHUVFtSzF1SjN3WGdDL1ZkUmRmbUVCTS91cmttWFlJTmNIcnoKLUU2eExwRkUvanhaMHdiNVNYdGVMdFFJd1o4WkpJRExueEdjaVgvbXRmeDBkT0lJM2JuYTcyeVJrR2ZUKzBiL0MKLXNqOUt2VnVRMHkxb2FQOVJiZzM1ZGJjSAotLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQpkaWZmIC0tZ2l0IGEvdGVzdHMvZGF0YV9maWxlcy9zZXJ2ZXI1LXNzLWV4cGlyZWQuY3J0IGIvdGVzdHMvZGF0YV9maWxlcy9zZXJ2ZXI1LXNzLWV4cGlyZWQuY3J0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyODdjZTk4Li4wMDAwMDAwCi0tLSBhL3Rlc3RzL2RhdGFfZmlsZXMvc2VydmVyNS1zcy1leHBpcmVkLmNydAorKysgL2Rldi9udWxsCkBAIC0xLDEyICswLDAgQEAKLS0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQotTUlJQjFqQ0NBWDJnQXdJQkFnSUpBTmhrWVFYam84MTRNQW9HQ0NxR1NNNDlCQU1DTUVneEN6QUpCZ05WQkFZVAotQWxWTE1SRXdEd1lEVlFRS0RBaHRZbVZrSUZSTVV6RVNNQkFHQTFVRUN3d0pkR1Z6ZEhOMWFYUmxNUkl3RUFZRAotVlFRRERBbHNiMk5oYkdodmMzUXdIaGNOTURjd05qSTNNRGt5TnpFMVdoY05NVGN3TmpJM01Ea3lOekUxV2pCSQotTVFzd0NRWURWUVFHRXdKVlN6RVJNQThHQTFVRUNnd0liV0psWkNCVVRGTXhFakFRQmdOVkJBc01DWFJsYzNSegotZFdsMFpURVNNQkFHQTFVRUF3d0piRzlqWVd4b2IzTjBNRmt3RXdZSEtvWkl6ajBDQVFZSUtvWkl6ajBEQVFjRAotUWdBRU44eFcyWFlKSGxweVBzZFpMZjhnYnU1OCtRYVJkTkN0RkxYM2FDSlpZcEpPNVFEWUl4SC82aS9TTkYxZAotRnIyS2lNSnJkdzFWellvcUR2b0J5TFR0LzZOUU1FNHdIUVlEVlIwT0JCWUVGRkJocFkvVUI5blhnZ0VNNVdWLwotakdOR3B4TytNQjhHQTFVZEl3UVlNQmFBRkZCaHBZL1VCOW5YZ2dFTTVXVi9qR05HcHhPK01Bd0dBMVVkRXdRRgotTUFNQkFmOHdDZ1lJS29aSXpqMEVBd0lEUndBd1JBSWdJQVE0N2dtVHNiQThwcGhRMWpCZUxRRHA3Vzk5cXI2UAotb1RsNy92WVNKSmNDSUN4TlNKR0xyTnU4VGZXTGhnSmlSc296TVI5akdocCt0c2UxcmxHVVVKTDYKLS0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KZGlmZiAtLWdpdCBhL3Rlc3RzL2RhdGFfZmlsZXMvc2VydmVyNS1zcy1mb3JnZWNhLmNydCBiL3Rlc3RzL2RhdGFfZmlsZXMvc2VydmVyNS1zcy1mb3JnZWNhLmNydApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggY2Y1YmQ2ZC4uMDAwMDAwMAotLS0gYS90ZXN0cy9kYXRhX2ZpbGVzL3NlcnZlcjUtc3MtZm9yZ2VjYS5jcnQKKysrIC9kZXYvbnVsbApAQCAtMSwxMSArMCwwIEBACi0tLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KLU1JSUJrekNDQVRtZ0F3SUJBZ0lCVFRBS0JnZ3Foa2pPUFFRREFqQktNUXN3Q1FZRFZRUUdFd0pWU3pFUk1BOEcKLUExVUVDZ3dJYldKbFpDQlVURk14S0RBbUJnTlZCQU1NSDIxaVpXUWdWRXhUSUZSbGMzUWdhVzUwWlhKdFpXUnAKLVlYUmxJRU5CSURNd0hoY05Nak13TlRFM01Ea3hOREl4V2hjTk16TXdOVEUwTURreE5ESXhXakJLTVFzd0NRWUQKLVZRUUdFd0pWU3pFUk1BOEdBMVVFQ2d3SWJXSmxaQ0JVVEZNeEtEQW1CZ05WQkFNTUgyMWlaV1FnVkV4VElGUmwKLWMzUWdhVzUwWlhKdFpXUnBZWFJsSUVOQklETXdXVEFUQmdjcWhrak9QUUlCQmdncWhrak9QUU1CQndOQ0FBUTMKLXpGYlpkZ2tlV25JK3gxa3QveUJ1N256NUJwRjAwSzBVdGZkb0lsbGlrazdsQU5nakVmL3FMOUkwWFYwV3ZZcUkKLXdtdDNEVlhOaWlvTytnSEl0TzMvb3hBd0RqQU1CZ05WSFJNRUJUQURBUUgvTUFvR0NDcUdTTTQ5QkFNQ0EwZ0EKLU1FVUNJUUQwZjNHSDljRUo3Y0pXUElmd0FMLzFjR1JFcU8vL08vMVhnZ1dadi9jbG5RSWdRbWxNekd6dVVESHEKLS9tVGdHUTljZVNBQjlCOWltOXJjZ1k2RFJGWlVMblk9Ci0tLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCmRpZmYgLS1naXQgYS90ZXN0cy9kYXRhX2ZpbGVzL3NlcnZlcjUtdHJpY2t5LWlwLXNhbi1tYWxmb3JtZWQtbGVuLmNydC5kZXIgYi90ZXN0cy9kYXRhX2ZpbGVzL3NlcnZlcjUtdHJpY2t5LWlwLXNhbi1tYWxmb3JtZWQtbGVuLmNydC5kZXIKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGEyNmRhNmMuLjAwMDAwMDAKLS0tIGEvdGVzdHMvZGF0YV9maWxlcy9zZXJ2ZXI1LXRyaWNreS1pcC1zYW4tbWFsZm9ybWVkLWxlbi5jcnQuZGVyCisrKyAvZGV2L251bGwKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvdGVzdHMvZGF0YV9maWxlcy9zZXJ2ZXI1LXRyaWNreS1pcC1zYW4uY3J0LmRlciBiL3Rlc3RzL2RhdGFfZmlsZXMvc2VydmVyNS10cmlja3ktaXAtc2FuLmNydC5kZXIKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDBiZDA2ZjguLjAwMDAwMDAKLS0tIGEvdGVzdHMvZGF0YV9maWxlcy9zZXJ2ZXI1LXRyaWNreS1pcC1zYW4uY3J0LmRlcgorKysgL2Rldi9udWxsCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3Rlc3RzL2RhdGFfZmlsZXMvc2VydmVyNS5jcnQgYi90ZXN0cy9kYXRhX2ZpbGVzL3NlcnZlcjUuY3J0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyZWFiOTk5Li4wMDAwMDAwCi0tLSBhL3Rlc3RzL2RhdGFfZmlsZXMvc2VydmVyNS5jcnQKKysrIC9kZXYvbnVsbApAQCAtMSwxNCArMCwwIEBACi0tLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KLU1JSUNJRENDQWFXZ0F3SUJBZ0lCQ1RBS0JnZ3Foa2pPUFFRREFqQStNUXN3Q1FZRFZRUUdFd0pPVERFUk1BOEcKLUExVUVDZ3dJVUc5c1lYSlRVMHd4SERBYUJnTlZCQU1NRTFCdmJHRnljM05zSUZSbGMzUWdSVU1nUTBFd0hoY04KLU1qTXdOVEUzTURjeE1ETTJXaGNOTXpNd05URTBNRGN4TURNMldqQTBNUXN3Q1FZRFZRUUdFd0pPVERFUk1BOEcKLUExVUVDZ3dJVUc5c1lYSlRVMHd4RWpBUUJnTlZCQU1NQ1d4dlkyRnNhRzl6ZERCWk1CTUdCeXFHU000OUFnRUcKLUNDcUdTTTQ5QXdFSEEwSUFCRGZNVnRsMkNSNWFjajdIV1MzL0lHN3VmUGtHa1hUUXJSUzE5MmdpV1dLU1R1VUEKLTJDTVIvK292MGpSZFhSYTlpb2pDYTNjTlZjMktLZzc2QWNpMDdmK2pnWjB3Z1pvd0NRWURWUjBUQkFJd0FEQWQKLUJnTlZIUTRFRmdRVVVHR2xqOVFIMmRlQ0FRemxaWCtNWTBhbkU3NHdiZ1lEVlIwakJHY3daWUFVblcwZ0pFa0IKLVB5dkxlTFVadkg0a3lkdjdObnloUXFSQU1ENHhDekFKQmdOVkJBWVRBazVNTVJFd0R3WURWUVFLREFoUWIyeGgKLWNsTlRUREVjTUJvR0ExVUVBd3dUVUc5c1lYSnpjMndnVkdWemRDQkZReUJEUVlJSkFNRkQ0bjVpUTh6b01Bb0cKLUNDcUdTTTQ5QkFNQ0Eya0FNR1lDTVFEZzZwN1BQZnIyK243bkd2eWEzcFU0dXN0M2s3T2JrNC90WlgrdUhIUlEKLXFhY2NzeVVMZUZOemt5UnZXSEZlVDVzQ01RQ3pESlg3OUlpN2hJTFl6YS9pWFdKZS9CakpFRThNdGVDUkdYRE4KLTA2akMrQkxnT0gxS1FWOUFycUVoM0FoT2hFZz0KLS0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KZGlmZiAtLWdpdCBhL3Rlc3RzL2RhdGFfZmlsZXMvc2VydmVyNS5jcnQuZGVyIGIvdGVzdHMvZGF0YV9maWxlcy9zZXJ2ZXI1LmNydC5kZXIKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDFlMGEwMDguLjAwMDAwMDAKLS0tIGEvdGVzdHMvZGF0YV9maWxlcy9zZXJ2ZXI1LmNydC5kZXIKKysrIC9kZXYvbnVsbApCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS90ZXN0cy9kYXRhX2ZpbGVzL3NlcnZlcjUuY3J0Lm9wZW5zc2wudjNfZXh0IGIvdGVzdHMvZGF0YV9maWxlcy9zZXJ2ZXI1LmNydC5vcGVuc3NsLnYzX2V4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNTk0ZTkwYS4uMDAwMDAwMAotLS0gYS90ZXN0cy9kYXRhX2ZpbGVzL3NlcnZlcjUuY3J0Lm9wZW5zc2wudjNfZXh0CisrKyAvZGV2L251bGwKQEAgLTEsMyArMCwwIEBACi1iYXNpY0NvbnN0cmFpbnRzID0gQ0E6ZmFsc2UKLXN1YmplY3RLZXlJZGVudGlmaWVyPWhhc2gKLWF1dGhvcml0eUtleUlkZW50aWZpZXI9a2V5aWQ6YWx3YXlzLGlzc3VlcjphbHdheXMKZGlmZiAtLWdpdCBhL3Rlc3RzL2RhdGFfZmlsZXMvc2VydmVyNS5la3UtY2xpLmNydCBiL3Rlc3RzL2RhdGFfZmlsZXMvc2VydmVyNS5la3UtY2xpLmNydApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOGQwNDU1OS4uMDAwMDAwMAotLS0gYS90ZXN0cy9kYXRhX2ZpbGVzL3NlcnZlcjUuZWt1LWNsaS5jcnQKKysrIC9kZXYvbnVsbApAQCAtMSwxMyArMCwwIEBACi0tLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KLU1JSUI2ekNDQVc2Z0F3SUJBZ0lCUERBTUJnZ3Foa2pPUFFRREFnVUFNRDR4Q3pBSkJnTlZCQVlUQWs1TU1SRXcKLUR3WURWUVFLREFoUWIyeGhjbE5UVERFY01Cb0dBMVVFQXd3VFVHOXNZWEp6YzJ3Z1ZHVnpkQ0JGUXlCRFFUQWUKLUZ3MHhPVEF5TVRBeE5EUTBNRFphRncweU9UQXlNVEF4TkRRME1EWmFNRFF4Q3pBSkJnTlZCQVlUQWs1TU1SRXcKLUR3WURWUVFLREFoUWIyeGhjbE5UVERFU01CQUdBMVVFQXd3SmJHOWpZV3hvYjNOME1Ga3dFd1lIS29aSXpqMEMKLUFRWUlLb1pJemowREFRY0RRZ0FFTjh4VzJYWUpIbHB5UHNkWkxmOGdidTU4K1FhUmROQ3RGTFgzYUNKWllwSk8KLTVRRFlJeEgvNmkvU05GMWRGcjJLaU1KcmR3MVZ6WW9xRHZvQnlMVHQvNk5sTUdNd0NRWURWUjBUQkFJd0FEQWQKLUJnTlZIUTRFRmdRVVVHR2xqOVFIMmRlQ0FRemxaWCtNWTBhbkU3NHdId1lEVlIwakJCZ3dGb0FVblcwZ0pFa0IKLVB5dkxlTFVadkg0a3lkdjdObnd3RmdZRFZSMGxBUUgvQkF3d0NnWUlLd1lCQlFVSEF3SXdEQVlJS29aSXpqMEUKLUF3SUZBQU5wQURCbUFqRUFvQzFYeGc4WHQzdHZNMlpFUjRqQ1J2N2lTWVBXR2dOdGNZTkpqM0cwbGIwUFlpMWwKLU5kMGNxZEd4eWRobTdSSkxBakVBcEFFOGtvRDFjY0lQblNGVGFnVDdzaE9TejEvbE9VNHd3QVdzd2N3b2x6dDMKLXhydkZsTW9UZUp4M3NTM1pxZHI4Ci0tLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCmRpZmYgLS1naXQgYS90ZXN0cy9kYXRhX2ZpbGVzL3NlcnZlcjUuZWt1LWNzLmNydCBiL3Rlc3RzL2RhdGFfZmlsZXMvc2VydmVyNS5la3UtY3MuY3J0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjMDBiYzNiLi4wMDAwMDAwCi0tLSBhL3Rlc3RzL2RhdGFfZmlsZXMvc2VydmVyNS5la3UtY3MuY3J0CisrKyAvZGV2L251bGwKQEAgLTEsMTMgKzAsMCBAQAotLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCi1NSUlCNmpDQ0FXNmdBd0lCQWdJQk9qQU1CZ2dxaGtqT1BRUURBZ1VBTUQ0eEN6QUpCZ05WQkFZVEFrNU1NUkV3Ci1Ed1lEVlFRS0RBaFFiMnhoY2xOVFRERWNNQm9HQTFVRUF3d1RVRzlzWVhKemMyd2dWR1Z6ZENCRlF5QkRRVEFlCi1GdzB4T1RBeU1UQXhORFEwTURaYUZ3MHlPVEF5TVRBeE5EUTBNRFphTURReEN6QUpCZ05WQkFZVEFrNU1NUkV3Ci1Ed1lEVlFRS0RBaFFiMnhoY2xOVFRERVNNQkFHQTFVRUF3d0piRzlqWVd4b2IzTjBNRmt3RXdZSEtvWkl6ajBDCi1BUVlJS29aSXpqMERBUWNEUWdBRU44eFcyWFlKSGxweVBzZFpMZjhnYnU1OCtRYVJkTkN0RkxYM2FDSlpZcEpPCi01UURZSXhILzZpL1NORjFkRnIyS2lNSnJkdzFWellvcUR2b0J5TFR0LzZObE1HTXdDUVlEVlIwVEJBSXdBREFkCi1CZ05WSFE0RUZnUVVVR0dsajlRSDJkZUNBUXpsWlgrTVkwYW5FNzR3SHdZRFZSMGpCQmd3Rm9BVW5XMGdKRWtCCi1QeXZMZUxVWnZINGt5ZHY3Tm53d0ZnWURWUjBsQVFIL0JBd3dDZ1lJS3dZQkJRVUhBd013REFZSUtvWkl6ajBFCi1Bd0lGQUFOb0FEQmxBakJsTVU3RmgxOGNlbDIwUDNyWTdlc3Z0UExESFFRS1dTQ085MVhISGtaaTF6UlBxMnB4Ci1ud1ZIYXlYbk9TM0NQUnNDTVFDUURZVHlWTVM4b0VJcm0wWFBJNkhyYkNNVXEyYmhQd2FZcGVsVS9hc096WUkzCi1nT2pHQ0RGSHR5ZWRKSFZLMHJzPQotLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQpkaWZmIC0tZ2l0IGEvdGVzdHMvZGF0YV9maWxlcy9zZXJ2ZXI1LmVrdS1jc19hbnkuY3J0IGIvdGVzdHMvZGF0YV9maWxlcy9zZXJ2ZXI1LmVrdS1jc19hbnkuY3J0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5MTJkOTI5Li4wMDAwMDAwCi0tLSBhL3Rlc3RzL2RhdGFfZmlsZXMvc2VydmVyNS5la3UtY3NfYW55LmNydAorKysgL2Rldi9udWxsCkBAIC0xLDEzICswLDAgQEAKLS0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQotTUlJQjhEQ0NBWFNnQXdJQkFnSUJPekFNQmdncWhrak9QUVFEQWdVQU1ENHhDekFKQmdOVkJBWVRBazVNTVJFdwotRHdZRFZRUUtEQWhRYjJ4aGNsTlRUREVjTUJvR0ExVUVBd3dUVUc5c1lYSnpjMndnVkdWemRDQkZReUJEUVRBZQotRncweE9UQXlNVEF4TkRRME1EWmFGdzB5T1RBeU1UQXhORFEwTURaYU1EUXhDekFKQmdOVkJBWVRBazVNTVJFdwotRHdZRFZRUUtEQWhRYjJ4aGNsTlRUREVTTUJBR0ExVUVBd3dKYkc5allXeG9iM04wTUZrd0V3WUhLb1pJemowQwotQVFZSUtvWkl6ajBEQVFjRFFnQUVOOHhXMlhZSkhscHlQc2RaTGY4Z2J1NTgrUWFSZE5DdEZMWDNhQ0paWXBKTwotNVFEWUl4SC82aS9TTkYxZEZyMktpTUpyZHcxVnpZb3FEdm9CeUxUdC82TnJNR2t3Q1FZRFZSMFRCQUl3QURBZAotQmdOVkhRNEVGZ1FVVUdHbGo5UUgyZGVDQVF6bFpYK01ZMGFuRTc0d0h3WURWUjBqQkJnd0ZvQVVuVzBnSkVrQgotUHl2TGVMVVp2SDRreWR2N05ud3dIQVlEVlIwbEFRSC9CQkl3RUFZSUt3WUJCUVVIQXdNR0JGVWRKUUF3REFZSQotS29aSXpqMEVBd0lGQUFOb0FEQmxBakVBODkrbDhnTkMwSDc1VHpkei83NVc2RWpHU3paM201MFM0Y0s1akQ2KwotWlpMcFJjYklxUHFNVDJNTmtDbTdJbU5wQWpBbFRrRkxWQ0duVE5YL3E3UVdPcng4YVBYWEFlWnRZNU5GeGQ2NgotRUpKYitZSFRRODBoWmhMV1g4L1FhQUpqbmlVPQotLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQpkaWZmIC0tZ2l0IGEvdGVzdHMvZGF0YV9maWxlcy9zZXJ2ZXI1LmVrdS1zcnYuY3J0IGIvdGVzdHMvZGF0YV9maWxlcy9zZXJ2ZXI1LmVrdS1zcnYuY3J0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiMTczYWZjLi4wMDAwMDAwCi0tLSBhL3Rlc3RzL2RhdGFfZmlsZXMvc2VydmVyNS5la3Utc3J2LmNydAorKysgL2Rldi9udWxsCkBAIC0xLDEzICswLDAgQEAKLS0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQotTUlJQjZqQ0NBVzZnQXdJQkFnSUJQakFNQmdncWhrak9QUVFEQWdVQU1ENHhDekFKQmdOVkJBWVRBazVNTVJFdwotRHdZRFZRUUtEQWhRYjJ4aGNsTlRUREVjTUJvR0ExVUVBd3dUVUc5c1lYSnpjMndnVkdWemRDQkZReUJEUVRBZQotRncweE9UQXlNVEF4TkRRME1EWmFGdzB5T1RBeU1UQXhORFEwTURaYU1EUXhDekFKQmdOVkJBWVRBazVNTVJFdwotRHdZRFZRUUtEQWhRYjJ4aGNsTlRUREVTTUJBR0ExVUVBd3dKYkc5allXeG9iM04wTUZrd0V3WUhLb1pJemowQwotQVFZSUtvWkl6ajBEQVFjRFFnQUVOOHhXMlhZSkhscHlQc2RaTGY4Z2J1NTgrUWFSZE5DdEZMWDNhQ0paWXBKTwotNVFEWUl4SC82aS9TTkYxZEZyMktpTUpyZHcxVnpZb3FEdm9CeUxUdC82TmxNR013Q1FZRFZSMFRCQUl3QURBZAotQmdOVkhRNEVGZ1FVVUdHbGo5UUgyZGVDQVF6bFpYK01ZMGFuRTc0d0h3WURWUjBqQkJnd0ZvQVVuVzBnSkVrQgotUHl2TGVMVVp2SDRreWR2N05ud3dGZ1lEVlIwbEFRSC9CQXd3Q2dZSUt3WUJCUVVIQXdFd0RBWUlLb1pJemowRQotQXdJRkFBTm9BREJsQWpFQWgrbDQ3Rm1YUi9uVXhEOGJmblMzc1QrUVRnYzhwWFVFcWgvZ1hVczJ4SU5WU29MKwotWmV3Z2NOYjJVYW56Q05oZUFqQW5VWTRiME05WUhwL2VKamxzNVJ6R1g2Slh0Y1d3bjlKdk8xSHFNUW5IdGhjeQotaFBFUTNsVzdYRzBESVFTMWRyaz0KLS0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KZGlmZiAtLWdpdCBhL3Rlc3RzL2RhdGFfZmlsZXMvc2VydmVyNS5la3Utc3J2X2NsaS5jcnQgYi90ZXN0cy9kYXRhX2ZpbGVzL3NlcnZlcjUuZWt1LXNydl9jbGkuY3J0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiZTI1MzFlLi4wMDAwMDAwCi0tLSBhL3Rlc3RzL2RhdGFfZmlsZXMvc2VydmVyNS5la3Utc3J2X2NsaS5jcnQKKysrIC9kZXYvbnVsbApAQCAtMSwxMyArMCwwIEBACi0tLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KLU1JSUI4ekNDQVhpZ0F3SUJBZ0lCUFRBTUJnZ3Foa2pPUFFRREFnVUFNRDR4Q3pBSkJnTlZCQVlUQWs1TU1SRXcKLUR3WURWUVFLREFoUWIyeGhjbE5UVERFY01Cb0dBMVVFQXd3VFVHOXNZWEp6YzJ3Z1ZHVnpkQ0JGUXlCRFFUQWUKLUZ3MHhPVEF5TVRBeE5EUTBNRFphRncweU9UQXlNVEF4TkRRME1EWmFNRFF4Q3pBSkJnTlZCQVlUQWs1TU1SRXcKLUR3WURWUVFLREFoUWIyeGhjbE5UVERFU01CQUdBMVVFQXd3SmJHOWpZV3hvYjNOME1Ga3dFd1lIS29aSXpqMEMKLUFRWUlLb1pJemowREFRY0RRZ0FFTjh4VzJYWUpIbHB5UHNkWkxmOGdidTU4K1FhUmROQ3RGTFgzYUNKWllwSk8KLTVRRFlJeEgvNmkvU05GMWRGcjJLaU1KcmR3MVZ6WW9xRHZvQnlMVHQvNk52TUcwd0NRWURWUjBUQkFJd0FEQWQKLUJnTlZIUTRFRmdRVVVHR2xqOVFIMmRlQ0FRemxaWCtNWTBhbkU3NHdId1lEVlIwakJCZ3dGb0FVblcwZ0pFa0IKLVB5dkxlTFVadkg0a3lkdjdObnd3SUFZRFZSMGxBUUgvQkJZd0ZBWUlLd1lCQlFVSEF3RUdDQ3NHQVFVRkJ3TUMKLU1Bd0dDQ3FHU000OUJBTUNCUUFEWndBd1pBSXdIdS94alNxSEs5MXlFTStLZ0VGR1U4WGMzbzlyRVZyQ0JGZVcKLUNoSWEzc2xaWmRHNE91SW0wNlRzYWJmMHBCTEhBakJZS2pvVXdXRXVET09RS2JiSlpHOGdLRHpNQWdFcGUvUlcKLXdBalk3aTZDeloxTktmRlE5ZlFkd0EreWpxMmZubGc9Ci0tLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCmRpZmYgLS1naXQgYS90ZXN0cy9kYXRhX2ZpbGVzL3NlcnZlcjUua2V5IGIvdGVzdHMvZGF0YV9maWxlcy9zZXJ2ZXI1LmtleQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYzg0NTllZS4uMDAwMDAwMAotLS0gYS90ZXN0cy9kYXRhX2ZpbGVzL3NlcnZlcjUua2V5CisrKyAvZGV2L251bGwKQEAgLTEsNSArMCwwIEBACi0tLS0tLUJFR0lOIEVDIFBSSVZBVEUgS0VZLS0tLS0KLU1IY0NBUUVFSVBFcUV5QjJBbkNvUEwvOVUvWURIdmRxWFliSW9nVHl3d3lwNi9VZkR3Nm5vQW9HQ0NxR1NNNDkKLUF3RUhvVVFEUWdBRU44eFcyWFlKSGxweVBzZFpMZjhnYnU1OCtRYVJkTkN0RkxYM2FDSlpZcEpPNVFEWUl4SC8KLTZpL1NORjFkRnIyS2lNSnJkdzFWellvcUR2b0J5TFR0L3c9PQotLS0tLS1FTkQgRUMgUFJJVkFURSBLRVktLS0tLQpkaWZmIC0tZ2l0IGEvdGVzdHMvZGF0YV9maWxlcy9zZXJ2ZXI1LmtleS5kZXIgYi90ZXN0cy9kYXRhX2ZpbGVzL3NlcnZlcjUua2V5LmRlcgpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNmJkNGViYi4uMDAwMDAwMAotLS0gYS90ZXN0cy9kYXRhX2ZpbGVzL3NlcnZlcjUua2V5LmRlcgorKysgL2Rldi9udWxsCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3Rlc3RzL2RhdGFfZmlsZXMvc2VydmVyNS5rZXkuZW5jIGIvdGVzdHMvZGF0YV9maWxlcy9zZXJ2ZXI1LmtleS5lbmMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDhlNjIyYzAuLjAwMDAwMDAKLS0tIGEvdGVzdHMvZGF0YV9maWxlcy9zZXJ2ZXI1LmtleS5lbmMKKysrIC9kZXYvbnVsbApAQCAtMSw4ICswLDAgQEAKLS0tLS0tQkVHSU4gRUMgUFJJVkFURSBLRVktLS0tLQotUHJvYy1UeXBlOiA0LEVOQ1JZUFRFRAotREVLLUluZm86IEFFUy0yNTYtQ0JDLDY5RkVBMjYzOTE4MTI4RDRERDY3M0IyNzMyRTJEN0VDCi0KLStRNFAxblZjZkdvaXR0eGFnV0h2eUJMVlBiaGptVEEvU1o2VzVUQis1c2NPemdmUmxjc2U0aklJSTg5OUVReHgKLUhyZmhnUXd6UTEyVGdUWjJZOG5lSStSc1VxRkxUTGludmQ4Yy9sdUJLTGVERUNqamh5QlhPSmljMmRSUFVhTFEKLU55ZzNiSTBTcnI2YXE2bkVUamg4aStkU3pFL3dqeU56WEJNZE4zS2hPakU9Ci0tLS0tLUVORCBFQyBQUklWQVRFIEtFWS0tLS0tCmRpZmYgLS1naXQgYS90ZXN0cy9kYXRhX2ZpbGVzL3NlcnZlcjUua3UtZHMuY3J0IGIvdGVzdHMvZGF0YV9maWxlcy9zZXJ2ZXI1Lmt1LWRzLmNydApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZGFmZmY5Yi4uMDAwMDAwMAotLS0gYS90ZXN0cy9kYXRhX2ZpbGVzL3NlcnZlcjUua3UtZHMuY3J0CisrKyAvZGV2L251bGwKQEAgLTEsMTMgKzAsMCBAQAotLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCi1NSUlCNHpDQ0FXYWdBd0lCQWdJQkxUQU1CZ2dxaGtqT1BRUURBZ1VBTUQ0eEN6QUpCZ05WQkFZVEFrNU1NUkV3Ci1Ed1lEVlFRS0RBaFFiMnhoY2xOVFRERWNNQm9HQTFVRUF3d1RVRzlzWVhKemMyd2dWR1Z6ZENCRlF5QkRRVEFlCi1GdzB4T1RBeU1UQXhORFEwTURaYUZ3MHlPVEF5TVRBeE5EUTBNRFphTURReEN6QUpCZ05WQkFZVEFrNU1NUkV3Ci1Ed1lEVlFRS0RBaFFiMnhoY2xOVFRERVNNQkFHQTFVRUF3d0piRzlqWVd4b2IzTjBNRmt3RXdZSEtvWkl6ajBDCi1BUVlJS29aSXpqMERBUWNEUWdBRU44eFcyWFlKSGxweVBzZFpMZjhnYnU1OCtRYVJkTkN0RkxYM2FDSlpZcEpPCi01UURZSXhILzZpL1NORjFkRnIyS2lNSnJkdzFWellvcUR2b0J5TFR0LzZOZE1Gc3dDUVlEVlIwVEJBSXdBREFkCi1CZ05WSFE0RUZnUVVVR0dsajlRSDJkZUNBUXpsWlgrTVkwYW5FNzR3SHdZRFZSMGpCQmd3Rm9BVW5XMGdKRWtCCi1QeXZMZUxVWnZINGt5ZHY3Tm53d0RnWURWUjBQQVFIL0JBUURBZ2VBTUF3R0NDcUdTTTQ5QkFNQ0JRQURhUUF3Ci1aZ0l4QUxITzBRUis0dnorZmo0V3dCUU1hNTVvSkRscDFKMFBwcW9KWUtUZjZEUng1ck51WnhTYk51MndKUVd6Ci1NSjlla1FJeEFNUG8vUmh1NGU5S1JrRWY5cllVOVluZDd0OS9QQ3NYdzRKWnV4WmZUb1VSRHNyQUkvUG5xYzBICi00K0ZBL0V1UEpBPT0KLS0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KZGlmZiAtLWdpdCBhL3Rlc3RzL2RhdGFfZmlsZXMvc2VydmVyNS5rdS1rYS5jcnQgYi90ZXN0cy9kYXRhX2ZpbGVzL3NlcnZlcjUua3Uta2EuY3J0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3NGE0MjM1Li4wMDAwMDAwCi0tLSBhL3Rlc3RzL2RhdGFfZmlsZXMvc2VydmVyNS5rdS1rYS5jcnQKKysrIC9kZXYvbnVsbApAQCAtMSwxMyArMCwwIEBACi0tLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KLU1JSUI0akNDQVdhZ0F3SUJBZ0lCTGpBTUJnZ3Foa2pPUFFRREFnVUFNRDR4Q3pBSkJnTlZCQVlUQWs1TU1SRXcKLUR3WURWUVFLREFoUWIyeGhjbE5UVERFY01Cb0dBMVVFQXd3VFVHOXNZWEp6YzJ3Z1ZHVnpkQ0JGUXlCRFFUQWUKLUZ3MHhPVEF5TVRBeE5EUTBNRFphRncweU9UQXlNVEF4TkRRME1EWmFNRFF4Q3pBSkJnTlZCQVlUQWs1TU1SRXcKLUR3WURWUVFLREFoUWIyeGhjbE5UVERFU01CQUdBMVVFQXd3SmJHOWpZV3hvYjNOME1Ga3dFd1lIS29aSXpqMEMKLUFRWUlLb1pJemowREFRY0RRZ0FFTjh4VzJYWUpIbHB5UHNkWkxmOGdidTU4K1FhUmROQ3RGTFgzYUNKWllwSk8KLTVRRFlJeEgvNmkvU05GMWRGcjJLaU1KcmR3MVZ6WW9xRHZvQnlMVHQvNk5kTUZzd0NRWURWUjBUQkFJd0FEQWQKLUJnTlZIUTRFRmdRVVVHR2xqOVFIMmRlQ0FRemxaWCtNWTBhbkU3NHdId1lEVlIwakJCZ3dGb0FVblcwZ0pFa0IKLVB5dkxlTFVadkg0a3lkdjdObnd3RGdZRFZSMFBBUUgvQkFRREFnTUlNQXdHQ0NxR1NNNDlCQU1DQlFBRGFBQXcKLVpRSXdDVmJiUGlTOE1KVU96OEpCbWdMSG9qS0RhSk9kNGxTZlNhazBHU2wwMlVqVDhPaU55UnpBK0ZsRldPOTQKLVlNanlBakVBMTQvdWJaMVpXMy8waGtpRkh6aFREMlNYYlRmWWJoRFpTcTJQUis5c0JsVXJyeDFHaHpXdy9jT0QKLTNqWmQ0RFFPCi0tLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCmRpZmYgLS1naXQgYS90ZXN0cy9kYXRhX2ZpbGVzL3NlcnZlcjUua3Uta2UuY3J0IGIvdGVzdHMvZGF0YV9maWxlcy9zZXJ2ZXI1Lmt1LWtlLmNydApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNmI0ZTc0ZS4uMDAwMDAwMAotLS0gYS90ZXN0cy9kYXRhX2ZpbGVzL3NlcnZlcjUua3Uta2UuY3J0CisrKyAvZGV2L251bGwKQEAgLTEsMTMgKzAsMCBAQAotLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCi1NSUlCNFRDQ0FXYWdBd0lCQWdJQkx6QU1CZ2dxaGtqT1BRUURBZ1VBTUQ0eEN6QUpCZ05WQkFZVEFrNU1NUkV3Ci1Ed1lEVlFRS0RBaFFiMnhoY2xOVFRERWNNQm9HQTFVRUF3d1RVRzlzWVhKemMyd2dWR1Z6ZENCRlF5QkRRVEFlCi1GdzB4T1RBeU1UQXhORFEwTURaYUZ3MHlPVEF5TVRBeE5EUTBNRFphTURReEN6QUpCZ05WQkFZVEFrNU1NUkV3Ci1Ed1lEVlFRS0RBaFFiMnhoY2xOVFRERVNNQkFHQTFVRUF3d0piRzlqWVd4b2IzTjBNRmt3RXdZSEtvWkl6ajBDCi1BUVlJS29aSXpqMERBUWNEUWdBRU44eFcyWFlKSGxweVBzZFpMZjhnYnU1OCtRYVJkTkN0RkxYM2FDSlpZcEpPCi01UURZSXhILzZpL1NORjFkRnIyS2lNSnJkdzFWellvcUR2b0J5TFR0LzZOZE1Gc3dDUVlEVlIwVEJBSXdBREFkCi1CZ05WSFE0RUZnUVVVR0dsajlRSDJkZUNBUXpsWlgrTVkwYW5FNzR3SHdZRFZSMGpCQmd3Rm9BVW5XMGdKRWtCCi1QeXZMZUxVWnZINGt5ZHY3Tm53d0RnWURWUjBQQVFIL0JBUURBZ1VnTUF3R0NDcUdTTTQ5QkFNQ0JRQURad0F3Ci1aQUl3ZXpUWTB0aWdJZzZ1MWRGbDkwTEhZY1orbEpLNEJPNVk2VTlwbjk1Mk5GbzI0TnNMOHFuRzRueHdzTDNNCi1WdlY3QWpCUStvWnlLU3lOcDhYUkFIWUM2bEVSSDcvR2g3SHJWV3lUUm85aVBQTDZ0RTR4L2pFN2pMOWlmZ2wrCi1GNjk4MnNrPQotLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQpkaWZmIC0tZ2l0IGEvdGVzdHMvZGF0YV9maWxlcy9zZXJ2ZXI1LnJlcS5rdS5zaGExIGIvdGVzdHMvZGF0YV9maWxlcy9zZXJ2ZXI1LnJlcS5rdS5zaGExCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjNzNhMGUyLi4wMDAwMDAwCi0tLSBhL3Rlc3RzL2RhdGFfZmlsZXMvc2VydmVyNS5yZXEua3Uuc2hhMQorKysgL2Rldi9udWxsCkBAIC0xLDggKzAsMCBAQAotLS0tLS1CRUdJTiBDRVJUSUZJQ0FURSBSRVFVRVNULS0tLS0KLU1JSUJGRENCdkFJQkFEQThNUXN3Q1FZRFZRUUdFd0pPVERFUk1BOEdBMVVFQ2d3SVVHOXNZWEpUVTB3eEdqQVkKLUJnTlZCQU1NRVZCdmJHRnlVMU5NSUZObGNuWmxjaUF4TUZrd0V3WUhLb1pJemowQ0FRWUlLb1pJemowREFRY0QKLVFnQUVOOHhXMlhZSkhscHlQc2RaTGY4Z2J1NTgrUWFSZE5DdEZMWDNhQ0paWXBKTzVRRFlJeEgvNmkvU05GMWQKLUZyMktpTUpyZHcxVnpZb3FEdm9CeUxUdC82QWVNQndHQ1NxR1NJYjNEUUVKRGpFUE1BMHdDd1lEVlIwUEJBUUQKLUFnYkFNQWtHQnlxR1NNNDlCQUVEU0FBd1JRSWhBSnlDaGZzU3BOSWhMamVEQjNlQldWamI2ODV5MElKSG9OcC8KLUhvNDYzazgzQWlBQjkrTTlrOG5MaktWa0VZYVZmbUUvZlBLUVZrZXV5d0lPMFJNbVo0MGdBUT09Ci0tLS0tLUVORCBDRVJUSUZJQ0FURSBSRVFVRVNULS0tLS0KZGlmZiAtLWdpdCBhL3Rlc3RzL2RhdGFfZmlsZXMvc2VydmVyNi1zcy1jaGlsZC5jcnQgYi90ZXN0cy9kYXRhX2ZpbGVzL3NlcnZlcjYtc3MtY2hpbGQuY3J0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmYzI4ZjM0Li4wMDAwMDAwCi0tLSBhL3Rlc3RzL2RhdGFfZmlsZXMvc2VydmVyNi1zcy1jaGlsZC5jcnQKKysrIC9kZXYvbnVsbApAQCAtMSwxMyArMCwwIEBACi0tLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KLU1JSUI3akNDQVpTZ0F3SUJBZ0lNVTZMTFdDSTVsSFNuN0huc01Bb0dDQ3FHU000OUJBTUNNRWN4RXpBUkJnTlYKLUJBTU1Dbk5sYkdaemFXZHVaV1F4RURBT0JnTlZCQXNNQjNSbGMzUnBibWN4RVRBUEJnTlZCQW9NQ0ZCdmJHRnkKLVUxTk1NUXN3Q1FZRFZRUUdFd0pPVERBZUZ3MHlNekExTURrd05qQTJOREphRncwek16QTFNRFl3TmpBMk5ESmEKLU1FMHhHVEFYQmdOVkJBTU1FSE5sYkdaemFXZHVaV1F0WTJocGJHUXhFREFPQmdOVkJBc01CM1JsYzNScGJtY3gKLUVUQVBCZ05WQkFvTUNGQnZiR0Z5VTFOTU1Rc3dDUVlEVlFRR0V3Sk9UREJaTUJNR0J5cUdTTTQ5QWdFR0NDcUcKLVNNNDlBd0VIQTBJQUJJRlpNWFpKSlBvVnJhdWdNVzRPN1RNUitwRWxWY0d3d1p3RGNqNll1aTJrY2plSkgwTTMKLWpSK09PdGp3VitndlQ4a0FwUGZiY3creXhnU1UwVUE3T09PallEQmVNQXdHQTFVZEV3RUIvd1FDTUFBd0RnWUQKLVZSMFBBUUgvQkFRREFnZUFNQjBHQTFVZERnUVdCQlIrWlk4K013TVU1ZUcrWUxMZ2hYK001MkFyZXpBZkJnTlYKLUhTTUVHREFXZ0JSUVlhV1AxQWZaMTRJQkRPVmxmNHhqUnFjVHZqQUtCZ2dxaGtqT1BRUURBZ05JQURCRkFpQWwKLVkyeVhnNXNadW5tbytNY1VCenZTYW8xd1J4dys5WEJTTStEcGg1Z2ZoZ0loQVBsSStsU3ZENG16bEJ6bjAxTWcKLTB0TXBLSGJZMzRpYWRjTVdCVWdpYk1pQQotLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQpkaWZmIC0tZ2l0IGEvdGVzdHMvZGF0YV9maWxlcy9zZXJ2ZXI2LXNzLWNoaWxkLmNydC5vcGVuc3NsLnYzX2V4dCBiL3Rlc3RzL2RhdGFfZmlsZXMvc2VydmVyNi1zcy1jaGlsZC5jcnQub3BlbnNzbC52M19leHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGRkOWNkYWEuLjAwMDAwMDAKLS0tIGEvdGVzdHMvZGF0YV9maWxlcy9zZXJ2ZXI2LXNzLWNoaWxkLmNydC5vcGVuc3NsLnYzX2V4dAorKysgL2Rldi9udWxsCkBAIC0xLDQgKzAsMCBAQAotYmFzaWNDb25zdHJhaW50cyA9IGNyaXRpY2FsLENBOmZhbHNlCi1rZXlVc2FnZT1jcml0aWNhbCxkaWdpdGFsU2lnbmF0dXJlCi1zdWJqZWN0S2V5SWRlbnRpZmllcj1oYXNoCi0KZGlmZiAtLWdpdCBhL3Rlc3RzL2RhdGFfZmlsZXMvc2VydmVyNi5jcnQgYi90ZXN0cy9kYXRhX2ZpbGVzL3NlcnZlcjYuY3J0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1MWU0MzkzLi4wMDAwMDAwCi0tLSBhL3Rlc3RzL2RhdGFfZmlsZXMvc2VydmVyNi5jcnQKKysrIC9kZXYvbnVsbApAQCAtMSwxNCArMCwwIEBACi0tLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KLU1JSUNJRENDQWFXZ0F3SUJBZ0lCQ2pBS0JnZ3Foa2pPUFFRREFqQStNUXN3Q1FZRFZRUUdFd0pPVERFUk1BOEcKLUExVUVDZ3dJVUc5c1lYSlRVMHd4SERBYUJnTlZCQU1NRTFCdmJHRnljM05zSUZSbGMzUWdSVU1nUTBFd0hoY04KLU1qTXdOVEUzTURjeE1ETTNXaGNOTXpNd05URTBNRGN4TURNM1dqQTBNUXN3Q1FZRFZRUUdFd0pPVERFUk1BOEcKLUExVUVDZ3dJVUc5c1lYSlRVMHd4RWpBUUJnTlZCQU1NQ1d4dlkyRnNhRzl6ZERCWk1CTUdCeXFHU000OUFnRUcKLUNDcUdTTTQ5QXdFSEEwSUFCSUZaTVhaSkpQb1ZyYXVnTVc0TzdUTVIrcEVsVmNHd3dad0RjajZZdWkya2NqZUoKLUgwTTNqUitPT3Rqd1YrZ3ZUOGtBcFBmYmN3K3l4Z1NVMFVBN09PT2pnWjB3Z1pvd0NRWURWUjBUQkFJd0FEQWQKLUJnTlZIUTRFRmdRVWZtV1BQak1ERk9YaHZtQ3k0SVYvak9kZ0szc3diZ1lEVlIwakJHY3daWUFVblcwZ0pFa0IKLVB5dkxlTFVadkg0a3lkdjdObnloUXFSQU1ENHhDekFKQmdOVkJBWVRBazVNTVJFd0R3WURWUVFLREFoUWIyeGgKLWNsTlRUREVjTUJvR0ExVUVBd3dUVUc5c1lYSnpjMndnVkdWemRDQkZReUJEUVlJSkFNRkQ0bjVpUTh6b01Bb0cKLUNDcUdTTTQ5QkFNQ0Eya0FNR1lDTVFDN21sUCticS9jNGhLQjN6ZkpnUGR3U256elFPa1h3ZEEyTzZRdW1DMm8KLVp1SHlqVVlWNS9aeVU4UVE3Y05uS25ZQ01RRDlCeUE3ZGRwVkUyR2srT1Z1QlBHZndWNE8yQ09nRnJhc2ZyVG4KLUtnZnVDRUY5NkJoU2pMRFhXS0I0SUZXYVhVUT0KLS0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KZGlmZiAtLWdpdCBhL3Rlc3RzL2RhdGFfZmlsZXMvc2VydmVyNi5rZXkgYi90ZXN0cy9kYXRhX2ZpbGVzL3NlcnZlcjYua2V5CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxMzExY2ZhLi4wMDAwMDAwCi0tLSBhL3Rlc3RzL2RhdGFfZmlsZXMvc2VydmVyNi5rZXkKKysrIC9kZXYvbnVsbApAQCAtMSw1ICswLDAgQEAKLS0tLS0tQkVHSU4gRUMgUFJJVkFURSBLRVktLS0tLQotTUhjQ0FRRUVJRVFaRzVqOElrUkx4YTlPb1pKekQzS2tyWHFJZ2k5Y0haTVZ2MnMvVmNQT29Bb0dDQ3FHU000OQotQXdFSG9VUURRZ0FFZ1ZreGRra2sraFd0cTZBeGJnN3RNeEg2a1NWVndiREJuQU55UHBpNkxhUnlONGtmUXplTgotSDQ0NjJQQlg2QzlQeVFDazk5dHpEN0xHQkpUUlFEczQ0dz09Ci0tLS0tLUVORCBFQyBQUklWQVRFIEtFWS0tLS0tCmRpZmYgLS1naXQgYS90ZXN0cy9kYXRhX2ZpbGVzL3NlcnZlcjctYmFkc2lnbi5jcnQgYi90ZXN0cy9kYXRhX2ZpbGVzL3NlcnZlcjctYmFkc2lnbi5jcnQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGUwZDE4YjAuLjAwMDAwMDAKLS0tIGEvdGVzdHMvZGF0YV9maWxlcy9zZXJ2ZXI3LWJhZHNpZ24uY3J0CisrKyAvZGV2L251bGwKQEAgLTEsNDcgKzAsMCBAQAotLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCi1NSUlEd2pDQ0FhcWdBd0lCQWdJQkVEQU5CZ2txaGtpRzl3MEJBUXNGQURCSU1Rc3dDUVlEVlFRR0V3Sk9UREVSCi1NQThHQTFVRUNnd0lVRzlzWVhKVFUwd3hKakFrQmdOVkJBTU1IVkJ2YkdGeVUxTk1JRlJsYzNRZ1NXNTBaWEp0Ci1aV1JwWVhSbElFTkJNQjRYRFRJek1EVXhOekEzTVRBek4xb1hEVE16TURVeE56QTNNVEF6TjFvd05ERUxNQWtHCi1BMVVFQmhNQ1Rrd3hFVEFQQmdOVkJBb01DRkJ2YkdGeVUxTk1NUkl3RUFZRFZRUUREQWxzYjJOaGJHaHZjM1F3Ci1XVEFUQmdjcWhrak9QUUlCQmdncWhrak9QUU1CQndOQ0FBUWNiZmZwMnFYcW9aeXljaG1vQ1J4enJkNFZ1OTZtCi00N05QQmVodEVDNDZhVGVYZ0RuQmRmKyt6bkFCckF0ZlhCUk5RejhBUkllWUJtc2tyMjJybEtqeW80R1ZNSUdTCi1NQjBHQTFVZERnUVdCQlRTQ3RPbGR4L09WYkJjUnFLT2MyeS9vV0FtdXpCbUJnTlZIU01FWHpCZGdCUTRkOWhyCi1kNXdvZDRLTFR0Z2JxUjczbEJhM0RxRkNwRUF3UGpFTE1Ba0dBMVVFQmhNQ1Rrd3hFVEFQQmdOVkJBb01DRkJ2Ci1iR0Z5VTFOTU1Sd3dHZ1lEVlFRRERCTlFiMnhoY25OemJDQlVaWE4wSUVWRElFTkJnZ0VPTUFrR0ExVWRFd1FDCi1NQUF3RFFZSktvWklodmNOQVFFTEJRQURnZ0lCQURVOVp5WldmWDFUMVBpMFBSQmVxcG01MnBlaFVYMndNc3lpCi1LdWRTcExlTisrZVM5cC9SMGhwTnVCOFd2WmNzRnkvcXVsMGRqUEFSS0dwWWdZVFpRdk9RMTBWY1k0MGp4dHRtCi1FVFNjbm5xS0gybE1yMGFzT3BNMzFrS3QvZ2hKUzBualVoSTlOWTZ5QUkyWGhjRHpJdFNwcU9objZZTEMzbXJXCi1ESXlCQ2tzTEtFdTh4L0twUmJ2ajNRSzFlejNjSEl0b3hDQ2U5Z3k4dE1Fd2I4RkUxNWR0RHVMN0c3aVJiNERoCi1WeUw2cXpCUnZKUDlBY1FLVDRQVGFPTXd1OE8raENsRHZMbGxKekNrSlg0cVptUXIzandPOEVtaTlkdlE4N1pGCi1jRHBMYnhxSWd0UkY4bGt4bjAwVXVodXVnTWdNOGxkVGQvYVJ4WnJkZElnRlZObUVkV0lXQnU1WlRXbUJNL0ZICi1hZ3V1WnIzbXR5N0poNFhaSjBSWjRIN1hhWXpvVm5DSzljQTVrb1J2L2d0U1FkRGg4QmlZbEp3V3g4YWRxeWdvCi1maWJpblFuSU9oWjRIY25sVERzaHNiNWVZK0d0a1NMbWM4NzM1VjVydEV0N3pydGFoRlQ1STdyMlg2ZERpUGRECi1CbHZiOS81Z0lNQzNmeTBOWmlnRHVlQk9ZRjc4a3B4cU1Sa250Nng4NmlyVmRiUlh3MWZwVnV4MjRjZlREYy91Ci01RWF0NFlGZk0xZUtabnVPRVR1bVBPb2EyN2p2Y1lUUE1Pc1VOOCtROE9zNlNEa0pDOGUyb2JlZFFvZmZRQzA2Ci0xWHpyaTNIT0h6WnJQSExHa3dBRk5ZQnlubDEvd3hHdTB2UGxtcHpKRHpjN3kwZTFGZ0txRDZZYWRBUU0rQVBBCi1aS2FzaWhPMAotLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQotLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCi1NSUlFQVRDQ0E0ZWdBd0lCQWdJQkRqQUtCZ2dxaGtqT1BRUURBakErTVFzd0NRWURWUVFHRXdKT1RERVJNQThHCi1BMVVFQ2d3SVVHOXNZWEpUVTB3eEhEQWFCZ05WQkFNTUUxQnZiR0Z5YzNOc0lGUmxjM1FnUlVNZ1EwRXdIaGNOCi1Nak13TlRFM01EY3hNRE0zV2hjTk16TXdOVEUzTURjeE1ETTNXakJJTVFzd0NRWURWUVFHRXdKT1RERVJNQThHCi1BMVVFQ2d3SVVHOXNZWEpUVTB3eEpqQWtCZ05WQkFNTUhWQnZiR0Z5VTFOTUlGUmxjM1FnU1c1MFpYSnRaV1JwCi1ZWFJsSUVOQk1JSUNJakFOQmdrcWhraUc5dzBCQVFFRkFBT0NBZzhBTUlJQ0NnS0NBZ0VBbzFPYzhucjZmTVRxCi12b3dWK0NwQzU1aTVCWkdGR2M1MEViNFJMQlNSVEgxZTdKZXBkRmpBVmJCdHlRUkpTaVkxamEwdGdMUURES1pSCi13ZkVJK2I0YXpzZTQ2MEluUEh2N0MxVE4wdXBYbHh1ajZtOUIxSWxQK3NCYU03V0JDNmRWZlBPK2pWTUl4Z2tGCi1DYUJDTGhoZEsxRmpmOEhqa1QvUGtjdFduaG84TlR3aXZjOStucVJaalhlL2VJY3FtNUh3akREaHUrZ3orbzBnCi1WejlNZlpOaTFKeUNyT3lOWmN5K2NyMlFlTm5OVkduRnE4eFR4dHU2ZEx1bmhwbUxGajJtbTBWandhN1lwajVxCi1BanBxVE10RHZxYlJ1VG95b3l6YWpoTU5jQ0FmN2d3ekl1cEpKRlZkamR0Z1lBY1F3emlrd0Y1SG9JVEp6ekoyCi1xZ3hGN0NtdkdaTmI3Rzk5bUxkTGRodGNsSDN3QVFLSFl3RUdKbzdYS3lORXVIUFFnQitlMGNnMVNEMUhxbEFNCi11Q2ZHR1RXUTZtZTdCamFuM3QwTnpvVGREcTZJcEtUZXNiYVkrLzllMnhuOERDcmhCS0xYUU1aRkRacVVvTFlBCi1rR1BPRUdndmxQbklJWEFhd291eENhTllFaDVVdzg3MVlNU1BUMjhyTGRGcjQ5ZHdZT3REZzlmb0E4aERJVzJQCi1kNktYYnJadGVlc3ZBMW5ZekVPcyszQWpyYlQ3OU1kMlc4Qno5YnFCVk5sTk9FU1NxbTRraUNKRm1zbG0vNmJyCi1OcDBNU1FkK28yMlBRNHhSdG1QNlVzVGZVMHVlaU1wWWM4VFlZaE1iZm5mRnlvNG03MDdlYmNmbFBiQkVOMmRnCi11cGRRNjZjdmZDSkIwUUp0OXVwYWZZMGxwZFYxcVVrQ0F3RUFBYU9Cb0RDQm5UQWRCZ05WSFE0RUZnUVVPSGZZCi1hM2VjS0hlQ2kwN1lHNmtlOTVRV3R3NHdiZ1lEVlIwakJHY3daWUFVblcwZ0pFa0JQeXZMZUxVWnZINGt5ZHY3Ci1ObnloUXFSQU1ENHhDekFKQmdOVkJBWVRBazVNTVJFd0R3WURWUVFLREFoUWIyeGhjbE5UVERFY01Cb0dBMVVFCi1Bd3dUVUc5c1lYSnpjMndnVkdWemRDQkZReUJEUVlJSkFNRkQ0bjVpUTh6b01Bd0dBMVVkRXdRRk1BTUJBZjh3Ci1DZ1lJS29aSXpqMEVBd0lEYUFBd1pRSXhBT0FjaCtnejRySGZJL3BtOE1JRHNzTXRKQ3F6UzZ4dE92UUhKWjlsCi1mZGdXZkpWNWNTSEpwT0lXR1hlRktLUjE4d0l3T0RUUm5USWlveStiWWFjTnE4VFFQanpkVmxUOVhiWWtXSVlOCi1KQXVWOWZMSkpkQjVuWlVHM2w4NUR0MjdWTmtUCi0tLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCmRpZmYgLS1naXQgYS90ZXN0cy9kYXRhX2ZpbGVzL3NlcnZlcjctZXhwaXJlZC5jcnQgYi90ZXN0cy9kYXRhX2ZpbGVzL3NlcnZlcjctZXhwaXJlZC5jcnQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDljNDIzYzkuLjAwMDAwMDAKLS0tIGEvdGVzdHMvZGF0YV9maWxlcy9zZXJ2ZXI3LWV4cGlyZWQuY3J0CisrKyAvZGV2L251bGwKQEAgLTEsNDcgKzAsMCBAQAotLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCi1NSUlEd2pDQ0FhcWdBd0lCQWdJQkVEQU5CZ2txaGtpRzl3MEJBUXNGQURCSU1Rc3dDUVlEVlFRR0V3Sk9UREVSCi1NQThHQTFVRUNnd0lVRzlzWVhKVFUwd3hKakFrQmdOVkJBTU1IVkJ2YkdGeVUxTk1JRlJsYzNRZ1NXNTBaWEp0Ci1aV1JwWVhSbElFTkJNQjRYRFRFek1EVXhOakEzTVRBek4xb1hEVEl6TURVeE56QTNNVEF6TjFvd05ERUxNQWtHCi1BMVVFQmhNQ1Rrd3hFVEFQQmdOVkJBb01DRkJ2YkdGeVUxTk1NUkl3RUFZRFZRUUREQWxzYjJOaGJHaHZjM1F3Ci1XVEFUQmdjcWhrak9QUUlCQmdncWhrak9QUU1CQndOQ0FBUWNiZmZwMnFYcW9aeXljaG1vQ1J4enJkNFZ1OTZtCi00N05QQmVodEVDNDZhVGVYZ0RuQmRmKyt6bkFCckF0ZlhCUk5RejhBUkllWUJtc2tyMjJybEtqeW80R1ZNSUdTCi1NQjBHQTFVZERnUVdCQlRTQ3RPbGR4L09WYkJjUnFLT2MyeS9vV0FtdXpCbUJnTlZIU01FWHpCZGdCUTRkOWhyCi1kNXdvZDRLTFR0Z2JxUjczbEJhM0RxRkNwRUF3UGpFTE1Ba0dBMVVFQmhNQ1Rrd3hFVEFQQmdOVkJBb01DRkJ2Ci1iR0Z5VTFOTU1Sd3dHZ1lEVlFRRERCTlFiMnhoY25OemJDQlVaWE4wSUVWRElFTkJnZ0VPTUFrR0ExVWRFd1FDCi1NQUF3RFFZSktvWklodmNOQVFFTEJRQURnZ0lCQUhYMHB1NTRjOHJrMkY3Nmx4bk1LdVMrQzNLaXdhYjBLeElJCi1aa3BBZ3BrNXNqMkt4aUdyTkxEaEswWkdqVmxWdVVqYXV5U1Z1QlVmcnI4R2ZqUTF4RTdSVXJ4d0JyRVU1ZlZzCi1GSEtzY0JGNThBYUlYSVBmNXhJdUNkYzJDNDg3TGV1dStMSWJHc2c5RXZLcS9wZzdhdklCOWhTanZ3bjVXM20zCi0zbzhlTC9haEQ0dDVyaDhyN2hLcHRZKzdkcWVyYUJybUNuaXR4c1JRVG9NVitqeTJSQ0dEM3ZZVUR4eUpjM3grCi1tM283bldHcmV5TENxUENSZ2VFaDlSS2JiaHlnY29CdGRqb2paQUJabWxHYTlCTzcyaEs1bGh5MmExUWlJT2lMCi1Pb0JnREZmOGdWbzgxTVgwMlJ0U1FJU1pMcS9oSjhzbXRpbDhvYUtnSitWeUdqZkNSMXVaWTdScGFFZlA0VStSCi10WDhncXQvNFRKNG1JSk92NHhMMTJYc1Y2NXJadUI3K3loWjZycVdSbFp4OUFhNC9HcXhJYkFMclFQczE3dVJYCi00MVRQSWR6M1BqcTN3M3gzYmRHeGJ5RjBUdkpSYWVvYkI2MEtIbHJtNkRXbHRZN2syVWNqdTlvVGtvNmJKTGdwCi1yQ1JDMUprVFh6V1MzalpEcVVMVFZQeERzWmpWUnF3RWw0NlBQZTBnU2xvQitoL3VscThyTklHMXNuV1RHZE5RCi1Cb3Zia285bEZIQThtZDhmN1pVTFE2cEI4U1YvTEgycXVmU3NXYjVMWTlaZkhVcHJ3SDJvQlErQTllWWtrNVpSCi1MSkM4NzlaQzh3OExNUWZCR1QyMmZMbk9KMnFTNkd5Z3VCK3kxN2JlRjhSTWdGcGlGVHpvRDFuUFFBZDljeUdZCi1iMnRhKzlvOQotLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQotLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCi1NSUlFQVRDQ0E0ZWdBd0lCQWdJQkRqQUtCZ2dxaGtqT1BRUURBakErTVFzd0NRWURWUVFHRXdKT1RERVJNQThHCi1BMVVFQ2d3SVVHOXNZWEpUVTB3eEhEQWFCZ05WQkFNTUUxQnZiR0Z5YzNOc0lGUmxjM1FnUlVNZ1EwRXdIaGNOCi1Nak13TlRFM01EY3hNRE0zV2hjTk16TXdOVEUzTURjeE1ETTNXakJJTVFzd0NRWURWUVFHRXdKT1RERVJNQThHCi1BMVVFQ2d3SVVHOXNZWEpUVTB3eEpqQWtCZ05WQkFNTUhWQnZiR0Z5VTFOTUlGUmxjM1FnU1c1MFpYSnRaV1JwCi1ZWFJsSUVOQk1JSUNJakFOQmdrcWhraUc5dzBCQVFFRkFBT0NBZzhBTUlJQ0NnS0NBZ0VBbzFPYzhucjZmTVRxCi12b3dWK0NwQzU1aTVCWkdGR2M1MEViNFJMQlNSVEgxZTdKZXBkRmpBVmJCdHlRUkpTaVkxamEwdGdMUURES1pSCi13ZkVJK2I0YXpzZTQ2MEluUEh2N0MxVE4wdXBYbHh1ajZtOUIxSWxQK3NCYU03V0JDNmRWZlBPK2pWTUl4Z2tGCi1DYUJDTGhoZEsxRmpmOEhqa1QvUGtjdFduaG84TlR3aXZjOStucVJaalhlL2VJY3FtNUh3akREaHUrZ3orbzBnCi1WejlNZlpOaTFKeUNyT3lOWmN5K2NyMlFlTm5OVkduRnE4eFR4dHU2ZEx1bmhwbUxGajJtbTBWandhN1lwajVxCi1BanBxVE10RHZxYlJ1VG95b3l6YWpoTU5jQ0FmN2d3ekl1cEpKRlZkamR0Z1lBY1F3emlrd0Y1SG9JVEp6ekoyCi1xZ3hGN0NtdkdaTmI3Rzk5bUxkTGRodGNsSDN3QVFLSFl3RUdKbzdYS3lORXVIUFFnQitlMGNnMVNEMUhxbEFNCi11Q2ZHR1RXUTZtZTdCamFuM3QwTnpvVGREcTZJcEtUZXNiYVkrLzllMnhuOERDcmhCS0xYUU1aRkRacVVvTFlBCi1rR1BPRUdndmxQbklJWEFhd291eENhTllFaDVVdzg3MVlNU1BUMjhyTGRGcjQ5ZHdZT3REZzlmb0E4aERJVzJQCi1kNktYYnJadGVlc3ZBMW5ZekVPcyszQWpyYlQ3OU1kMlc4Qno5YnFCVk5sTk9FU1NxbTRraUNKRm1zbG0vNmJyCi1OcDBNU1FkK28yMlBRNHhSdG1QNlVzVGZVMHVlaU1wWWM4VFlZaE1iZm5mRnlvNG03MDdlYmNmbFBiQkVOMmRnCi11cGRRNjZjdmZDSkIwUUp0OXVwYWZZMGxwZFYxcVVrQ0F3RUFBYU9Cb0RDQm5UQWRCZ05WSFE0RUZnUVVPSGZZCi1hM2VjS0hlQ2kwN1lHNmtlOTVRV3R3NHdiZ1lEVlIwakJHY3daWUFVblcwZ0pFa0JQeXZMZUxVWnZINGt5ZHY3Ci1ObnloUXFSQU1ENHhDekFKQmdOVkJBWVRBazVNTVJFd0R3WURWUVFLREFoUWIyeGhjbE5UVERFY01Cb0dBMVVFCi1Bd3dUVUc5c1lYSnpjMndnVkdWemRDQkZReUJEUVlJSkFNRkQ0bjVpUTh6b01Bd0dBMVVkRXdRRk1BTUJBZjh3Ci1DZ1lJS29aSXpqMEVBd0lEYUFBd1pRSXhBT0FjaCtnejRySGZJL3BtOE1JRHNzTXRKQ3F6UzZ4dE92UUhKWjlsCi1mZGdXZkpWNWNTSEpwT0lXR1hlRktLUjE4d0l3T0RUUm5USWlveStiWWFjTnE4VFFQanpkVmxUOVhiWWtXSVlOCi1KQXVWOWZMSkpkQjVuWlVHM2w4NUR0MjdWTmtUCi0tLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCmRpZmYgLS1naXQgYS90ZXN0cy9kYXRhX2ZpbGVzL3NlcnZlcjctZnV0dXJlLmNydCBiL3Rlc3RzL2RhdGFfZmlsZXMvc2VydmVyNy1mdXR1cmUuY3J0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiNzI1ZWI3Li4wMDAwMDAwCi0tLSBhL3Rlc3RzL2RhdGFfZmlsZXMvc2VydmVyNy1mdXR1cmUuY3J0CisrKyAvZGV2L251bGwKQEAgLTEsNDcgKzAsMCBAQAotLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCi1NSUlEd2pDQ0FhcWdBd0lCQWdJQkVEQU5CZ2txaGtpRzl3MEJBUXNGQURCSU1Rc3dDUVlEVlFRR0V3Sk9UREVSCi1NQThHQTFVRUNnd0lVRzlzWVhKVFUwd3hKakFrQmdOVkJBTU1IVkJ2YkdGeVUxTk1JRlJsYzNRZ1NXNTBaWEp0Ci1aV1JwWVhSbElFTkJNQjRYRFRNek1EVXhOekEzTVRBek4xb1hEVFF6TURVeE9EQTNNVEF6TjFvd05ERUxNQWtHCi1BMVVFQmhNQ1Rrd3hFVEFQQmdOVkJBb01DRkJ2YkdGeVUxTk1NUkl3RUFZRFZRUUREQWxzYjJOaGJHaHZjM1F3Ci1XVEFUQmdjcWhrak9QUUlCQmdncWhrak9QUU1CQndOQ0FBUWNiZmZwMnFYcW9aeXljaG1vQ1J4enJkNFZ1OTZtCi00N05QQmVodEVDNDZhVGVYZ0RuQmRmKyt6bkFCckF0ZlhCUk5RejhBUkllWUJtc2tyMjJybEtqeW80R1ZNSUdTCi1NQjBHQTFVZERnUVdCQlRTQ3RPbGR4L09WYkJjUnFLT2MyeS9vV0FtdXpCbUJnTlZIU01FWHpCZGdCUTRkOWhyCi1kNXdvZDRLTFR0Z2JxUjczbEJhM0RxRkNwRUF3UGpFTE1Ba0dBMVVFQmhNQ1Rrd3hFVEFQQmdOVkJBb01DRkJ2Ci1iR0Z5VTFOTU1Sd3dHZ1lEVlFRRERCTlFiMnhoY25OemJDQlVaWE4wSUVWRElFTkJnZ0VPTUFrR0ExVWRFd1FDCi1NQUF3RFFZSktvWklodmNOQVFFTEJRQURnZ0lCQUZnelM4Tk5HUmF5ZWxVbGVBZWU1dWRiazkrZmtreHZZQS9wCi1RRWFEK1V2dVNtZ0o3aUVVMGd4NmNKMlJjRWJnL05xZ3JNQm5pOGF5aUdwdE9aUlRxNGo4YlBjclpaQ3Jjc3ZPCi1qRmsveVh3V0l2MWhSb2ZROHdCeW5QT2didFBKNUo3ellrRTBzcVhiQVBPV2VOZHlhK1IwQ3VTZXg1RFc5a2ovCi0rdGlYR1hkR2lMS3UvRk9DOXRlZGZzdTY3YStaRUswUTNyYkZxc1dwSGRRY0tJRU40QTE4eFBCWE50eC9ESnVxCi0wK2ZjanRJc2lncFJ2TGJMU0Z1dlNJNXZXUDFNRnl1TURUTFlWS04xUGNlUmcyeXhwS2VjS2JzRHBlU1JYM1I5Ci1GczQ0NG1EU0pzNzVpOGZrZFhTNEdMWGZKakpPZnQzSGJSdEVFem5GNXNJVHBwanI0MFBzek12T2oybmpXUFBuCi1vM0VDY2E3SGJodWh0cUlHZk01KzJtQ3dQZ21tN2ZFbVlJTFZZZ1RpaEZmUEtVaEdVS04rNFFwNzVnT3pNS2RzCi03dDhOUkZUS1BFcEZtaWNjMXdLZkVzcDIyVVdDNmF6eVR1NmlWQnlXbHQrZm9qRmJkSGp2eERZOGlJcUJGVTYvCi00NHVMTVR4dTlyOWdNU1pLOXNYN3ZHSWdlRVIzUm5BclAwWlN4QXZveEczbHUrUVFYd0l0eG5US1FuQTNDRHJhCi1Na213U001a01ld08vVWIxYmdrZFEzai9ERDB1U3dyZUVkZzBmdnhhQUpJSDJOL2xPRlVXUHJ6Ymc4VEpSMVNiCi1vaGN0VCt1QUtvUFFyeHNadVNkcno5UUhPZGdrUFI2Z3A5YmRuWGtaU2E5akdYN1BkNVVyNUxERVhsam9sMVpMCi1UOTdvYUtCNwotLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQotLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCi1NSUlFQVRDQ0E0ZWdBd0lCQWdJQkRqQUtCZ2dxaGtqT1BRUURBakErTVFzd0NRWURWUVFHRXdKT1RERVJNQThHCi1BMVVFQ2d3SVVHOXNZWEpUVTB3eEhEQWFCZ05WQkFNTUUxQnZiR0Z5YzNOc0lGUmxjM1FnUlVNZ1EwRXdIaGNOCi1Nak13TlRFM01EY3hNRE0zV2hjTk16TXdOVEUzTURjeE1ETTNXakJJTVFzd0NRWURWUVFHRXdKT1RERVJNQThHCi1BMVVFQ2d3SVVHOXNZWEpUVTB3eEpqQWtCZ05WQkFNTUhWQnZiR0Z5VTFOTUlGUmxjM1FnU1c1MFpYSnRaV1JwCi1ZWFJsSUVOQk1JSUNJakFOQmdrcWhraUc5dzBCQVFFRkFBT0NBZzhBTUlJQ0NnS0NBZ0VBbzFPYzhucjZmTVRxCi12b3dWK0NwQzU1aTVCWkdGR2M1MEViNFJMQlNSVEgxZTdKZXBkRmpBVmJCdHlRUkpTaVkxamEwdGdMUURES1pSCi13ZkVJK2I0YXpzZTQ2MEluUEh2N0MxVE4wdXBYbHh1ajZtOUIxSWxQK3NCYU03V0JDNmRWZlBPK2pWTUl4Z2tGCi1DYUJDTGhoZEsxRmpmOEhqa1QvUGtjdFduaG84TlR3aXZjOStucVJaalhlL2VJY3FtNUh3akREaHUrZ3orbzBnCi1WejlNZlpOaTFKeUNyT3lOWmN5K2NyMlFlTm5OVkduRnE4eFR4dHU2ZEx1bmhwbUxGajJtbTBWandhN1lwajVxCi1BanBxVE10RHZxYlJ1VG95b3l6YWpoTU5jQ0FmN2d3ekl1cEpKRlZkamR0Z1lBY1F3emlrd0Y1SG9JVEp6ekoyCi1xZ3hGN0NtdkdaTmI3Rzk5bUxkTGRodGNsSDN3QVFLSFl3RUdKbzdYS3lORXVIUFFnQitlMGNnMVNEMUhxbEFNCi11Q2ZHR1RXUTZtZTdCamFuM3QwTnpvVGREcTZJcEtUZXNiYVkrLzllMnhuOERDcmhCS0xYUU1aRkRacVVvTFlBCi1rR1BPRUdndmxQbklJWEFhd291eENhTllFaDVVdzg3MVlNU1BUMjhyTGRGcjQ5ZHdZT3REZzlmb0E4aERJVzJQCi1kNktYYnJadGVlc3ZBMW5ZekVPcyszQWpyYlQ3OU1kMlc4Qno5YnFCVk5sTk9FU1NxbTRraUNKRm1zbG0vNmJyCi1OcDBNU1FkK28yMlBRNHhSdG1QNlVzVGZVMHVlaU1wWWM4VFlZaE1iZm5mRnlvNG03MDdlYmNmbFBiQkVOMmRnCi11cGRRNjZjdmZDSkIwUUp0OXVwYWZZMGxwZFYxcVVrQ0F3RUFBYU9Cb0RDQm5UQWRCZ05WSFE0RUZnUVVPSGZZCi1hM2VjS0hlQ2kwN1lHNmtlOTVRV3R3NHdiZ1lEVlIwakJHY3daWUFVblcwZ0pFa0JQeXZMZUxVWnZINGt5ZHY3Ci1ObnloUXFSQU1ENHhDekFKQmdOVkJBWVRBazVNTVJFd0R3WURWUVFLREFoUWIyeGhjbE5UVERFY01Cb0dBMVVFCi1Bd3dUVUc5c1lYSnpjMndnVkdWemRDQkZReUJEUVlJSkFNRkQ0bjVpUTh6b01Bd0dBMVVkRXdRRk1BTUJBZjh3Ci1DZ1lJS29aSXpqMEVBd0lEYUFBd1pRSXhBT0FjaCtnejRySGZJL3BtOE1JRHNzTXRKQ3F6UzZ4dE92UUhKWjlsCi1mZGdXZkpWNWNTSEpwT0lXR1hlRktLUjE4d0l3T0RUUm5USWlveStiWWFjTnE4VFFQanpkVmxUOVhiWWtXSVlOCi1KQXVWOWZMSkpkQjVuWlVHM2w4NUR0MjdWTmtUCi0tLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCmRpZmYgLS1naXQgYS90ZXN0cy9kYXRhX2ZpbGVzL3NlcnZlcjcuY3J0IGIvdGVzdHMvZGF0YV9maWxlcy9zZXJ2ZXI3LmNydApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYzVjMmNiOC4uMDAwMDAwMAotLS0gYS90ZXN0cy9kYXRhX2ZpbGVzL3NlcnZlcjcuY3J0CisrKyAvZGV2L251bGwKQEAgLTEsMjMgKzAsMCBAQAotLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCi1NSUlEd2pDQ0FhcWdBd0lCQWdJQkVEQU5CZ2txaGtpRzl3MEJBUXNGQURCSU1Rc3dDUVlEVlFRR0V3Sk9UREVSCi1NQThHQTFVRUNnd0lVRzlzWVhKVFUwd3hKakFrQmdOVkJBTU1IVkJ2YkdGeVUxTk1JRlJsYzNRZ1NXNTBaWEp0Ci1aV1JwWVhSbElFTkJNQjRYRFRJek1EVXhOekEzTVRBek4xb1hEVE16TURVeE56QTNNVEF6TjFvd05ERUxNQWtHCi1BMVVFQmhNQ1Rrd3hFVEFQQmdOVkJBb01DRkJ2YkdGeVUxTk1NUkl3RUFZRFZRUUREQWxzYjJOaGJHaHZjM1F3Ci1XVEFUQmdjcWhrak9QUUlCQmdncWhrak9QUU1CQndOQ0FBUWNiZmZwMnFYcW9aeXljaG1vQ1J4enJkNFZ1OTZtCi00N05QQmVodEVDNDZhVGVYZ0RuQmRmKyt6bkFCckF0ZlhCUk5RejhBUkllWUJtc2tyMjJybEtqeW80R1ZNSUdTCi1NQjBHQTFVZERnUVdCQlRTQ3RPbGR4L09WYkJjUnFLT2MyeS9vV0FtdXpCbUJnTlZIU01FWHpCZGdCUTRkOWhyCi1kNXdvZDRLTFR0Z2JxUjczbEJhM0RxRkNwRUF3UGpFTE1Ba0dBMVVFQmhNQ1Rrd3hFVEFQQmdOVkJBb01DRkJ2Ci1iR0Z5VTFOTU1Sd3dHZ1lEVlFRRERCTlFiMnhoY25OemJDQlVaWE4wSUVWRElFTkJnZ0VPTUFrR0ExVWRFd1FDCi1NQUF3RFFZSktvWklodmNOQVFFTEJRQURnZ0lCQURVOVp5WldmWDFUMVBpMFBSQmVxcG01MnBlaFVYMndNc3lpCi1LdWRTcExlTisrZVM5cC9SMGhwTnVCOFd2WmNzRnkvcXVsMGRqUEFSS0dwWWdZVFpRdk9RMTBWY1k0MGp4dHRtCi1FVFNjbm5xS0gybE1yMGFzT3BNMzFrS3QvZ2hKUzBualVoSTlOWTZ5QUkyWGhjRHpJdFNwcU9objZZTEMzbXJXCi1ESXlCQ2tzTEtFdTh4L0twUmJ2ajNRSzFlejNjSEl0b3hDQ2U5Z3k4dE1Fd2I4RkUxNWR0RHVMN0c3aVJiNERoCi1WeUw2cXpCUnZKUDlBY1FLVDRQVGFPTXd1OE8raENsRHZMbGxKekNrSlg0cVptUXIzandPOEVtaTlkdlE4N1pGCi1jRHBMYnhxSWd0UkY4bGt4bjAwVXVodXVnTWdNOGxkVGQvYVJ4WnJkZElnRlZObUVkV0lXQnU1WlRXbUJNL0ZICi1hZ3V1WnIzbXR5N0poNFhaSjBSWjRIN1hhWXpvVm5DSzljQTVrb1J2L2d0U1FkRGg4QmlZbEp3V3g4YWRxeWdvCi1maWJpblFuSU9oWjRIY25sVERzaHNiNWVZK0d0a1NMbWM4NzM1VjVydEV0N3pydGFoRlQ1STdyMlg2ZERpUGRECi1CbHZiOS81Z0lNQzNmeTBOWmlnRHVlQk9ZRjc4a3B4cU1Sa250Nng4NmlyVmRiUlh3MWZwVnV4MjRjZlREYy91Ci01RWF0NFlGZk0xZUtabnVPRVR1bVBPb2EyN2p2Y1lUUE1Pc1VOOCtROE9zNlNEa0pDOGUyb2JlZFFvZmZRQzA2Ci0xWHpyaTNIT0h6WnJQSExHa3dBRk5ZQnlubDEvd3hHdTB2UGxtcHpKRHpjN3kwZTFGZ0txRDZZYWRBUU0rQVBBCi1aS2FzaWhPMwotLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQpkaWZmIC0tZ2l0IGEvdGVzdHMvZGF0YV9maWxlcy9zZXJ2ZXI3LmtleSBiL3Rlc3RzL2RhdGFfZmlsZXMvc2VydmVyNy5rZXkKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwODgzMzEuLjAwMDAwMDAKLS0tIGEvdGVzdHMvZGF0YV9maWxlcy9zZXJ2ZXI3LmtleQorKysgL2Rldi9udWxsCkBAIC0xLDUgKzAsMCBAQAotLS0tLS1CRUdJTiBFQyBQUklWQVRFIEtFWS0tLS0tCi1NSGNDQVFFRUlMQkRNczdiUlZ4Vmc2b3ZUcGYyekI5bSsyMmpZN1IzTE5LUnZDUGZhNllKb0FvR0NDcUdTTTQ5Ci1Bd0VIb1VRRFFnQUVIRzMzNmRxbDZxR2NzbklacUFrY2M2M2VGYnZlcHVPelR3WG9iUkF1T21rM2w0QTV3WFgvCi12czV3QWF3TFgxd1VUVU0vQUVTSG1BWnJKSzl0cTVTbzhnPT0KLS0tLS0tRU5EIEVDIFBSSVZBVEUgS0VZLS0tLS0KZGlmZiAtLWdpdCBhL3Rlc3RzL2RhdGFfZmlsZXMvc2VydmVyN19pbnQtY2EtZXhwLmNydCBiL3Rlc3RzL2RhdGFfZmlsZXMvc2VydmVyN19pbnQtY2EtZXhwLmNydApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYTNhOGY2OS4uMDAwMDAwMAotLS0gYS90ZXN0cy9kYXRhX2ZpbGVzL3NlcnZlcjdfaW50LWNhLWV4cC5jcnQKKysrIC9kZXYvbnVsbApAQCAtMSw0NyArMCwwIEBACi0tLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KLU1JSUR3akNDQWFxZ0F3SUJBZ0lCRURBTkJna3Foa2lHOXcwQkFRc0ZBREJJTVFzd0NRWURWUVFHRXdKT1RERVIKLU1BOEdBMVVFQ2d3SVVHOXNZWEpUVTB3eEpqQWtCZ05WQkFNTUhWQnZiR0Z5VTFOTUlGUmxjM1FnU1c1MFpYSnQKLVpXUnBZWFJsSUVOQk1CNFhEVEl6TURVeE56QTNNVEF6TjFvWERUTXpNRFV4TnpBM01UQXpOMW93TkRFTE1Ba0cKLUExVUVCaE1DVGt3eEVUQVBCZ05WQkFvTUNGQnZiR0Z5VTFOTU1SSXdFQVlEVlFRRERBbHNiMk5oYkdodmMzUXcKLVdUQVRCZ2NxaGtqT1BRSUJCZ2dxaGtqT1BRTUJCd05DQUFRY2JmZnAycVhxb1p5eWNobW9DUnh6cmQ0VnU5Nm0KLTQ3TlBCZWh0RUM0NmFUZVhnRG5CZGYrK3puQUJyQXRmWEJSTlF6OEFSSWVZQm1za3IyMnJsS2p5bzRHVk1JR1MKLU1CMEdBMVVkRGdRV0JCVFNDdE9sZHgvT1ZiQmNScUtPYzJ5L29XQW11ekJtQmdOVkhTTUVYekJkZ0JRNGQ5aHIKLWQ1d29kNEtMVHRnYnFSNzNsQmEzRHFGQ3BFQXdQakVMTUFrR0ExVUVCaE1DVGt3eEVUQVBCZ05WQkFvTUNGQnYKLWJHRnlVMU5NTVJ3d0dnWURWUVFEREJOUWIyeGhjbk56YkNCVVpYTjBJRVZESUVOQmdnRU9NQWtHQTFVZEV3UUMKLU1BQXdEUVlKS29aSWh2Y05BUUVMQlFBRGdnSUJBRFU5WnlaV2ZYMVQxUGkwUFJCZXFwbTUycGVoVVgyd01zeWkKLUt1ZFNwTGVOKytlUzlwL1IwaHBOdUI4V3ZaY3NGeS9xdWwwZGpQQVJLR3BZZ1lUWlF2T1ExMFZjWTQwanh0dG0KLUVUU2NubnFLSDJsTXIwYXNPcE0zMWtLdC9naEpTMG5qVWhJOU5ZNnlBSTJYaGNEekl0U3BxT2huNllMQzNtclcKLURJeUJDa3NMS0V1OHgvS3BSYnZqM1FLMWV6M2NISXRveENDZTlneTh0TUV3YjhGRTE1ZHREdUw3RzdpUmI0RGgKLVZ5TDZxekJSdkpQOUFjUUtUNFBUYU9Nd3U4TytoQ2xEdkxsbEp6Q2tKWDRxWm1RcjNqd084RW1pOWR2UTg3WkYKLWNEcExieHFJZ3RSRjhsa3huMDBVdWh1dWdNZ004bGRUZC9hUnhacmRkSWdGVk5tRWRXSVdCdTVaVFdtQk0vRkgKLWFndXVacjNtdHk3Smg0WFpKMFJaNEg3WGFZem9WbkNLOWNBNWtvUnYvZ3RTUWREaDhCaVlsSndXeDhhZHF5Z28KLWZpYmluUW5JT2haNEhjbmxURHNoc2I1ZVkrR3RrU0xtYzg3MzVWNXJ0RXQ3enJ0YWhGVDVJN3IyWDZkRGlQZEQKLUJsdmI5LzVnSU1DM2Z5ME5aaWdEdWVCT1lGNzhrcHhxTVJrbnQ2eDg2aXJWZGJSWHcxZnBWdXgyNGNmVERjL3UKLTVFYXQ0WUZmTTFlS1pudU9FVHVtUE9vYTI3anZjWVRQTU9zVU44K1E4T3M2U0RrSkM4ZTJvYmVkUW9mZlFDMDYKLTFYenJpM0hPSHpaclBITEdrd0FGTllCeW5sMS93eEd1MHZQbG1wekpEemM3eTBlMUZnS3FENllhZEFRTStBUEEKLVpLYXNpaE8zCi0tLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCi0tLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KLU1JSUVBVENDQTRlZ0F3SUJBZ0lCRGpBS0JnZ3Foa2pPUFFRREFqQStNUXN3Q1FZRFZRUUdFd0pPVERFUk1BOEcKLUExVUVDZ3dJVUc5c1lYSlRVMHd4SERBYUJnTlZCQU1NRTFCdmJHRnljM05zSUZSbGMzUWdSVU1nUTBFd0hoY04KLU1UTXdOVEUyTURjeE1ETTNXaGNOTWpNd05URTNNRGN4TURNM1dqQklNUXN3Q1FZRFZRUUdFd0pPVERFUk1BOEcKLUExVUVDZ3dJVUc5c1lYSlRVMHd4SmpBa0JnTlZCQU1NSFZCdmJHRnlVMU5NSUZSbGMzUWdTVzUwWlhKdFpXUnAKLVlYUmxJRU5CTUlJQ0lqQU5CZ2txaGtpRzl3MEJBUUVGQUFPQ0FnOEFNSUlDQ2dLQ0FnRUFvMU9jOG5yNmZNVHEKLXZvd1YrQ3BDNTVpNUJaR0ZHYzUwRWI0UkxCU1JUSDFlN0plcGRGakFWYkJ0eVFSSlNpWTFqYTB0Z0xRRERLWlIKLXdmRUkrYjRhenNlNDYwSW5QSHY3QzFUTjB1cFhseHVqNm05QjFJbFArc0JhTTdXQkM2ZFZmUE8ralZNSXhna0YKLUNhQkNMaGhkSzFGamY4SGprVC9Qa2N0V25obzhOVHdpdmM5K25xUlpqWGUvZUljcW01SHdqRERodStneitvMGcKLVZ6OU1mWk5pMUp5Q3JPeU5aY3krY3IyUWVObk5WR25GcTh4VHh0dTZkTHVuaHBtTEZqMm1tMFZqd2E3WXBqNXEKLUFqcHFUTXREdnFiUnVUb3lveXphamhNTmNDQWY3Z3d6SXVwSkpGVmRqZHRnWUFjUXd6aWt3RjVIb0lUSnp6SjIKLXFneEY3Q212R1pOYjdHOTltTGRMZGh0Y2xIM3dBUUtIWXdFR0pvN1hLeU5FdUhQUWdCK2UwY2cxU0QxSHFsQU0KLXVDZkdHVFdRNm1lN0JqYW4zdDBOem9UZERxNklwS1Rlc2JhWSsvOWUyeG44RENyaEJLTFhRTVpGRFpxVW9MWUEKLWtHUE9FR2d2bFBuSUlYQWF3b3V4Q2FOWUVoNVV3ODcxWU1TUFQyOHJMZEZyNDlkd1lPdERnOWZvQThoRElXMlAKLWQ2S1hiclp0ZWVzdkExbll6RU9zKzNBanJiVDc5TWQyVzhCejlicUJWTmxOT0VTU3FtNGtpQ0pGbXNsbS82YnIKLU5wME1TUWQrbzIyUFE0eFJ0bVA2VXNUZlUwdWVpTXBZYzhUWVloTWJmbmZGeW80bTcwN2ViY2ZsUGJCRU4yZGcKLXVwZFE2NmN2ZkNKQjBRSnQ5dXBhZlkwbHBkVjFxVWtDQXdFQUFhT0JvRENCblRBZEJnTlZIUTRFRmdRVU9IZlkKLWEzZWNLSGVDaTA3WUc2a2U5NVFXdHc0d2JnWURWUjBqQkdjd1pZQVVuVzBnSkVrQlB5dkxlTFVadkg0a3lkdjcKLU5ueWhRcVJBTUQ0eEN6QUpCZ05WQkFZVEFrNU1NUkV3RHdZRFZRUUtEQWhRYjJ4aGNsTlRUREVjTUJvR0ExVUUKLUF3d1RVRzlzWVhKemMyd2dWR1Z6ZENCRlF5QkRRWUlKQU1GRDRuNWlROHpvTUF3R0ExVWRFd1FGTUFNQkFmOHcKLUNnWUlLb1pJemowRUF3SURhQUF3WlFJeEFKSDBlNGZ5U0pJMm5KdDFLbmQreVU3em4xalRGREFBQkpNYm5kaFIKLTA3T1NNNnZ3VWFHU01WYXRTenI4YWgrVURnSXdhSS9NQmNvclN4VDkyakFRYjFXNWRKa0V1ZG9ZU2c0OWZqQWYKLXowQnRMQ1ZoRndRbHJ6Q3FnWEM5OFNHZlQ2c1oKLS0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KZGlmZiAtLWdpdCBhL3Rlc3RzL2RhdGFfZmlsZXMvc2VydmVyN19pbnQtY2EuY3J0IGIvdGVzdHMvZGF0YV9maWxlcy9zZXJ2ZXI3X2ludC1jYS5jcnQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGNiMTA4YTQuLjAwMDAwMDAKLS0tIGEvdGVzdHMvZGF0YV9maWxlcy9zZXJ2ZXI3X2ludC1jYS5jcnQKKysrIC9kZXYvbnVsbApAQCAtMSw0NyArMCwwIEBACi0tLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KLU1JSUR3akNDQWFxZ0F3SUJBZ0lCRURBTkJna3Foa2lHOXcwQkFRc0ZBREJJTVFzd0NRWURWUVFHRXdKT1RERVIKLU1BOEdBMVVFQ2d3SVVHOXNZWEpUVTB3eEpqQWtCZ05WQkFNTUhWQnZiR0Z5VTFOTUlGUmxjM1FnU1c1MFpYSnQKLVpXUnBZWFJsSUVOQk1CNFhEVEl6TURVeE56QTNNVEF6TjFvWERUTXpNRFV4TnpBM01UQXpOMW93TkRFTE1Ba0cKLUExVUVCaE1DVGt3eEVUQVBCZ05WQkFvTUNGQnZiR0Z5VTFOTU1SSXdFQVlEVlFRRERBbHNiMk5oYkdodmMzUXcKLVdUQVRCZ2NxaGtqT1BRSUJCZ2dxaGtqT1BRTUJCd05DQUFRY2JmZnAycVhxb1p5eWNobW9DUnh6cmQ0VnU5Nm0KLTQ3TlBCZWh0RUM0NmFUZVhnRG5CZGYrK3puQUJyQXRmWEJSTlF6OEFSSWVZQm1za3IyMnJsS2p5bzRHVk1JR1MKLU1CMEdBMVVkRGdRV0JCVFNDdE9sZHgvT1ZiQmNScUtPYzJ5L29XQW11ekJtQmdOVkhTTUVYekJkZ0JRNGQ5aHIKLWQ1d29kNEtMVHRnYnFSNzNsQmEzRHFGQ3BFQXdQakVMTUFrR0ExVUVCaE1DVGt3eEVUQVBCZ05WQkFvTUNGQnYKLWJHRnlVMU5NTVJ3d0dnWURWUVFEREJOUWIyeGhjbk56YkNCVVpYTjBJRVZESUVOQmdnRU9NQWtHQTFVZEV3UUMKLU1BQXdEUVlKS29aSWh2Y05BUUVMQlFBRGdnSUJBRFU5WnlaV2ZYMVQxUGkwUFJCZXFwbTUycGVoVVgyd01zeWkKLUt1ZFNwTGVOKytlUzlwL1IwaHBOdUI4V3ZaY3NGeS9xdWwwZGpQQVJLR3BZZ1lUWlF2T1ExMFZjWTQwanh0dG0KLUVUU2NubnFLSDJsTXIwYXNPcE0zMWtLdC9naEpTMG5qVWhJOU5ZNnlBSTJYaGNEekl0U3BxT2huNllMQzNtclcKLURJeUJDa3NMS0V1OHgvS3BSYnZqM1FLMWV6M2NISXRveENDZTlneTh0TUV3YjhGRTE1ZHREdUw3RzdpUmI0RGgKLVZ5TDZxekJSdkpQOUFjUUtUNFBUYU9Nd3U4TytoQ2xEdkxsbEp6Q2tKWDRxWm1RcjNqd084RW1pOWR2UTg3WkYKLWNEcExieHFJZ3RSRjhsa3huMDBVdWh1dWdNZ004bGRUZC9hUnhacmRkSWdGVk5tRWRXSVdCdTVaVFdtQk0vRkgKLWFndXVacjNtdHk3Smg0WFpKMFJaNEg3WGFZem9WbkNLOWNBNWtvUnYvZ3RTUWREaDhCaVlsSndXeDhhZHF5Z28KLWZpYmluUW5JT2haNEhjbmxURHNoc2I1ZVkrR3RrU0xtYzg3MzVWNXJ0RXQ3enJ0YWhGVDVJN3IyWDZkRGlQZEQKLUJsdmI5LzVnSU1DM2Z5ME5aaWdEdWVCT1lGNzhrcHhxTVJrbnQ2eDg2aXJWZGJSWHcxZnBWdXgyNGNmVERjL3UKLTVFYXQ0WUZmTTFlS1pudU9FVHVtUE9vYTI3anZjWVRQTU9zVU44K1E4T3M2U0RrSkM4ZTJvYmVkUW9mZlFDMDYKLTFYenJpM0hPSHpaclBITEdrd0FGTllCeW5sMS93eEd1MHZQbG1wekpEemM3eTBlMUZnS3FENllhZEFRTStBUEEKLVpLYXNpaE8zCi0tLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCi0tLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KLU1JSUVBVENDQTRlZ0F3SUJBZ0lCRGpBS0JnZ3Foa2pPUFFRREFqQStNUXN3Q1FZRFZRUUdFd0pPVERFUk1BOEcKLUExVUVDZ3dJVUc5c1lYSlRVMHd4SERBYUJnTlZCQU1NRTFCdmJHRnljM05zSUZSbGMzUWdSVU1nUTBFd0hoY04KLU1qTXdOVEUzTURjeE1ETTNXaGNOTXpNd05URTNNRGN4TURNM1dqQklNUXN3Q1FZRFZRUUdFd0pPVERFUk1BOEcKLUExVUVDZ3dJVUc5c1lYSlRVMHd4SmpBa0JnTlZCQU1NSFZCdmJHRnlVMU5NSUZSbGMzUWdTVzUwWlhKdFpXUnAKLVlYUmxJRU5CTUlJQ0lqQU5CZ2txaGtpRzl3MEJBUUVGQUFPQ0FnOEFNSUlDQ2dLQ0FnRUFvMU9jOG5yNmZNVHEKLXZvd1YrQ3BDNTVpNUJaR0ZHYzUwRWI0UkxCU1JUSDFlN0plcGRGakFWYkJ0eVFSSlNpWTFqYTB0Z0xRRERLWlIKLXdmRUkrYjRhenNlNDYwSW5QSHY3QzFUTjB1cFhseHVqNm05QjFJbFArc0JhTTdXQkM2ZFZmUE8ralZNSXhna0YKLUNhQkNMaGhkSzFGamY4SGprVC9Qa2N0V25obzhOVHdpdmM5K25xUlpqWGUvZUljcW01SHdqRERodStneitvMGcKLVZ6OU1mWk5pMUp5Q3JPeU5aY3krY3IyUWVObk5WR25GcTh4VHh0dTZkTHVuaHBtTEZqMm1tMFZqd2E3WXBqNXEKLUFqcHFUTXREdnFiUnVUb3lveXphamhNTmNDQWY3Z3d6SXVwSkpGVmRqZHRnWUFjUXd6aWt3RjVIb0lUSnp6SjIKLXFneEY3Q212R1pOYjdHOTltTGRMZGh0Y2xIM3dBUUtIWXdFR0pvN1hLeU5FdUhQUWdCK2UwY2cxU0QxSHFsQU0KLXVDZkdHVFdRNm1lN0JqYW4zdDBOem9UZERxNklwS1Rlc2JhWSsvOWUyeG44RENyaEJLTFhRTVpGRFpxVW9MWUEKLWtHUE9FR2d2bFBuSUlYQWF3b3V4Q2FOWUVoNVV3ODcxWU1TUFQyOHJMZEZyNDlkd1lPdERnOWZvQThoRElXMlAKLWQ2S1hiclp0ZWVzdkExbll6RU9zKzNBanJiVDc5TWQyVzhCejlicUJWTmxOT0VTU3FtNGtpQ0pGbXNsbS82YnIKLU5wME1TUWQrbzIyUFE0eFJ0bVA2VXNUZlUwdWVpTXBZYzhUWVloTWJmbmZGeW80bTcwN2ViY2ZsUGJCRU4yZGcKLXVwZFE2NmN2ZkNKQjBRSnQ5dXBhZlkwbHBkVjFxVWtDQXdFQUFhT0JvRENCblRBZEJnTlZIUTRFRmdRVU9IZlkKLWEzZWNLSGVDaTA3WUc2a2U5NVFXdHc0d2JnWURWUjBqQkdjd1pZQVVuVzBnSkVrQlB5dkxlTFVadkg0a3lkdjcKLU5ueWhRcVJBTUQ0eEN6QUpCZ05WQkFZVEFrNU1NUkV3RHdZRFZRUUtEQWhRYjJ4aGNsTlRUREVjTUJvR0ExVUUKLUF3d1RVRzlzWVhKemMyd2dWR1Z6ZENCRlF5QkRRWUlKQU1GRDRuNWlROHpvTUF3R0ExVWRFd1FGTUFNQkFmOHcKLUNnWUlLb1pJemowRUF3SURhQUF3WlFJeEFPQWNoK2d6NHJIZkkvcG04TUlEc3NNdEpDcXpTNnh0T3ZRSEpaOWwKLWZkZ1dmSlY1Y1NISnBPSVdHWGVGS0tSMTh3SXdPRFRSblRJaW95K2JZYWNOcThUUVBqemRWbFQ5WGJZa1dJWU4KLUpBdVY5ZkxKSmRCNW5aVUczbDg1RHQyN1ZOa1QKLS0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KZGlmZiAtLWdpdCBhL3Rlc3RzL2RhdGFfZmlsZXMvc2VydmVyN19pbnQtY2FfY2EyLmNydCBiL3Rlc3RzL2RhdGFfZmlsZXMvc2VydmVyN19pbnQtY2FfY2EyLmNydApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDk3NDQ3Zi4uMDAwMDAwMAotLS0gYS90ZXN0cy9kYXRhX2ZpbGVzL3NlcnZlcjdfaW50LWNhX2NhMi5jcnQKKysrIC9kZXYvbnVsbApAQCAtMSw2MCArMCwwIEBACi0tLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KLU1JSUR3akNDQWFxZ0F3SUJBZ0lCRURBTkJna3Foa2lHOXcwQkFRc0ZBREJJTVFzd0NRWURWUVFHRXdKT1RERVIKLU1BOEdBMVVFQ2d3SVVHOXNZWEpUVTB3eEpqQWtCZ05WQkFNTUhWQnZiR0Z5VTFOTUlGUmxjM1FnU1c1MFpYSnQKLVpXUnBZWFJsSUVOQk1CNFhEVEl6TURVeE56QTNNVEF6TjFvWERUTXpNRFV4TnpBM01UQXpOMW93TkRFTE1Ba0cKLUExVUVCaE1DVGt3eEVUQVBCZ05WQkFvTUNGQnZiR0Z5VTFOTU1SSXdFQVlEVlFRRERBbHNiMk5oYkdodmMzUXcKLVdUQVRCZ2NxaGtqT1BRSUJCZ2dxaGtqT1BRTUJCd05DQUFRY2JmZnAycVhxb1p5eWNobW9DUnh6cmQ0VnU5Nm0KLTQ3TlBCZWh0RUM0NmFUZVhnRG5CZGYrK3puQUJyQXRmWEJSTlF6OEFSSWVZQm1za3IyMnJsS2p5bzRHVk1JR1MKLU1CMEdBMVVkRGdRV0JCVFNDdE9sZHgvT1ZiQmNScUtPYzJ5L29XQW11ekJtQmdOVkhTTUVYekJkZ0JRNGQ5aHIKLWQ1d29kNEtMVHRnYnFSNzNsQmEzRHFGQ3BFQXdQakVMTUFrR0ExVUVCaE1DVGt3eEVUQVBCZ05WQkFvTUNGQnYKLWJHRnlVMU5NTVJ3d0dnWURWUVFEREJOUWIyeGhjbk56YkNCVVpYTjBJRVZESUVOQmdnRU9NQWtHQTFVZEV3UUMKLU1BQXdEUVlKS29aSWh2Y05BUUVMQlFBRGdnSUJBRFU5WnlaV2ZYMVQxUGkwUFJCZXFwbTUycGVoVVgyd01zeWkKLUt1ZFNwTGVOKytlUzlwL1IwaHBOdUI4V3ZaY3NGeS9xdWwwZGpQQVJLR3BZZ1lUWlF2T1ExMFZjWTQwanh0dG0KLUVUU2NubnFLSDJsTXIwYXNPcE0zMWtLdC9naEpTMG5qVWhJOU5ZNnlBSTJYaGNEekl0U3BxT2huNllMQzNtclcKLURJeUJDa3NMS0V1OHgvS3BSYnZqM1FLMWV6M2NISXRveENDZTlneTh0TUV3YjhGRTE1ZHREdUw3RzdpUmI0RGgKLVZ5TDZxekJSdkpQOUFjUUtUNFBUYU9Nd3U4TytoQ2xEdkxsbEp6Q2tKWDRxWm1RcjNqd084RW1pOWR2UTg3WkYKLWNEcExieHFJZ3RSRjhsa3huMDBVdWh1dWdNZ004bGRUZC9hUnhacmRkSWdGVk5tRWRXSVdCdTVaVFdtQk0vRkgKLWFndXVacjNtdHk3Smg0WFpKMFJaNEg3WGFZem9WbkNLOWNBNWtvUnYvZ3RTUWREaDhCaVlsSndXeDhhZHF5Z28KLWZpYmluUW5JT2haNEhjbmxURHNoc2I1ZVkrR3RrU0xtYzg3MzVWNXJ0RXQ3enJ0YWhGVDVJN3IyWDZkRGlQZEQKLUJsdmI5LzVnSU1DM2Z5ME5aaWdEdWVCT1lGNzhrcHhxTVJrbnQ2eDg2aXJWZGJSWHcxZnBWdXgyNGNmVERjL3UKLTVFYXQ0WUZmTTFlS1pudU9FVHVtUE9vYTI3anZjWVRQTU9zVU44K1E4T3M2U0RrSkM4ZTJvYmVkUW9mZlFDMDYKLTFYenJpM0hPSHpaclBITEdrd0FGTllCeW5sMS93eEd1MHZQbG1wekpEemM3eTBlMUZnS3FENllhZEFRTStBUEEKLVpLYXNpaE8zCi0tLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCi0tLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KLU1JSUVBVENDQTRlZ0F3SUJBZ0lCRGpBS0JnZ3Foa2pPUFFRREFqQStNUXN3Q1FZRFZRUUdFd0pPVERFUk1BOEcKLUExVUVDZ3dJVUc5c1lYSlRVMHd4SERBYUJnTlZCQU1NRTFCdmJHRnljM05zSUZSbGMzUWdSVU1nUTBFd0hoY04KLU1qTXdOVEUzTURjeE1ETTNXaGNOTXpNd05URTNNRGN4TURNM1dqQklNUXN3Q1FZRFZRUUdFd0pPVERFUk1BOEcKLUExVUVDZ3dJVUc5c1lYSlRVMHd4SmpBa0JnTlZCQU1NSFZCdmJHRnlVMU5NSUZSbGMzUWdTVzUwWlhKdFpXUnAKLVlYUmxJRU5CTUlJQ0lqQU5CZ2txaGtpRzl3MEJBUUVGQUFPQ0FnOEFNSUlDQ2dLQ0FnRUFvMU9jOG5yNmZNVHEKLXZvd1YrQ3BDNTVpNUJaR0ZHYzUwRWI0UkxCU1JUSDFlN0plcGRGakFWYkJ0eVFSSlNpWTFqYTB0Z0xRRERLWlIKLXdmRUkrYjRhenNlNDYwSW5QSHY3QzFUTjB1cFhseHVqNm05QjFJbFArc0JhTTdXQkM2ZFZmUE8ralZNSXhna0YKLUNhQkNMaGhkSzFGamY4SGprVC9Qa2N0V25obzhOVHdpdmM5K25xUlpqWGUvZUljcW01SHdqRERodStneitvMGcKLVZ6OU1mWk5pMUp5Q3JPeU5aY3krY3IyUWVObk5WR25GcTh4VHh0dTZkTHVuaHBtTEZqMm1tMFZqd2E3WXBqNXEKLUFqcHFUTXREdnFiUnVUb3lveXphamhNTmNDQWY3Z3d6SXVwSkpGVmRqZHRnWUFjUXd6aWt3RjVIb0lUSnp6SjIKLXFneEY3Q212R1pOYjdHOTltTGRMZGh0Y2xIM3dBUUtIWXdFR0pvN1hLeU5FdUhQUWdCK2UwY2cxU0QxSHFsQU0KLXVDZkdHVFdRNm1lN0JqYW4zdDBOem9UZERxNklwS1Rlc2JhWSsvOWUyeG44RENyaEJLTFhRTVpGRFpxVW9MWUEKLWtHUE9FR2d2bFBuSUlYQWF3b3V4Q2FOWUVoNVV3ODcxWU1TUFQyOHJMZEZyNDlkd1lPdERnOWZvQThoRElXMlAKLWQ2S1hiclp0ZWVzdkExbll6RU9zKzNBanJiVDc5TWQyVzhCejlicUJWTmxOT0VTU3FtNGtpQ0pGbXNsbS82YnIKLU5wME1TUWQrbzIyUFE0eFJ0bVA2VXNUZlUwdWVpTXBZYzhUWVloTWJmbmZGeW80bTcwN2ViY2ZsUGJCRU4yZGcKLXVwZFE2NmN2ZkNKQjBRSnQ5dXBhZlkwbHBkVjFxVWtDQXdFQUFhT0JvRENCblRBZEJnTlZIUTRFRmdRVU9IZlkKLWEzZWNLSGVDaTA3WUc2a2U5NVFXdHc0d2JnWURWUjBqQkdjd1pZQVVuVzBnSkVrQlB5dkxlTFVadkg0a3lkdjcKLU5ueWhRcVJBTUQ0eEN6QUpCZ05WQkFZVEFrNU1NUkV3RHdZRFZRUUtEQWhRYjJ4aGNsTlRUREVjTUJvR0ExVUUKLUF3d1RVRzlzWVhKemMyd2dWR1Z6ZENCRlF5QkRRWUlKQU1GRDRuNWlROHpvTUF3R0ExVWRFd1FGTUFNQkFmOHcKLUNnWUlLb1pJemowRUF3SURhQUF3WlFJeEFPQWNoK2d6NHJIZkkvcG04TUlEc3NNdEpDcXpTNnh0T3ZRSEpaOWwKLWZkZ1dmSlY1Y1NISnBPSVdHWGVGS0tSMTh3SXdPRFRSblRJaW95K2JZYWNOcThUUVBqemRWbFQ5WGJZa1dJWU4KLUpBdVY5ZkxKSmRCNW5aVUczbDg1RHQyN1ZOa1QKLS0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KLS0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQotTUlJQ0J6Q0NBWXVnQXdJQkFnSUpBTUZENG41aVE4em9NQXdHQ0NxR1NNNDlCQU1DQlFBd1BqRUxNQWtHQTFVRQotQmhNQ1Rrd3hFVEFQQmdOVkJBb01DRkJ2YkdGeVUxTk1NUnd3R2dZRFZRUUREQk5RYjJ4aGNuTnpiQ0JVWlhOMAotSUVWRElFTkJNQjRYRFRFNU1ESXhNREUwTkRRd01Gb1hEVEk1TURJeE1ERTBORFF3TUZvd1BqRUxNQWtHQTFVRQotQmhNQ1Rrd3hFVEFQQmdOVkJBb01DRkJ2YkdGeVUxTk1NUnd3R2dZRFZRUUREQk5RYjJ4aGNuTnpiQ0JVWlhOMAotSUVWRElFTkJNSFl3RUFZSEtvWkl6ajBDQVFZRks0RUVBQ0lEWWdBRXc5b3JORUUzV0MrSFZ2NzhpYm9wUTB0TwotNEc3RERsZFRNemxZMUZLMGtaVTVDeVBmWHhja1lrajhHcFVweml3dGg4S0lVb0N2MW1xcklkMjQweHh1V0xqSwotNkxKcGp2TkJyU25EdEY5MXAwZHYxUmtwVldtYVV6c2d0R1lXWURNZW8xTXdVVEFQQmdOVkhSTUJBZjhFQlRBRAotQVFIL01CMEdBMVVkRGdRV0JCU2RiU0FrU1FFL0s4dDR0Um04ZmlUSjIvczJmREFmQmdOVkhTTUVHREFXZ0JTZAotYlNBa1NRRS9LOHQ0dFJtOGZpVEoyL3MyZkRBTUJnZ3Foa2pPUFFRREFnVUFBMmdBTUdVQ01RRHBOV2ZCSWx6cQotNnhWMlV3UUQvMVlHejlmUVVNN0FmTkt6VmEyUFZCcGYvUUQxVEF5bFRZVEY0R0k2cWxiNkVQWUNNRi9ZVmEyOQotTjV5QzFtRkFpcjE5amI5UGw5aWlJa1JtMTdkTTR5Nm01VklNZXBFUG0vVmxXQWE4SDVwMStCUGJHdz09Ci0tLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCmRpZmYgLS1naXQgYS90ZXN0cy9kYXRhX2ZpbGVzL3NlcnZlcjdfc3B1cmlvdXNfaW50LWNhLmNydCBiL3Rlc3RzL2RhdGFfZmlsZXMvc2VydmVyN19zcHVyaW91c19pbnQtY2EuY3J0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmZGMxMTQ2Li4wMDAwMDAwCi0tLSBhL3Rlc3RzL2RhdGFfZmlsZXMvc2VydmVyN19zcHVyaW91c19pbnQtY2EuY3J0CisrKyAvZGV2L251bGwKQEAgLTEsNjUgKzAsMCBAQAotLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCi1NSUlEd2pDQ0FhcWdBd0lCQWdJQkVEQU5CZ2txaGtpRzl3MEJBUXNGQURCSU1Rc3dDUVlEVlFRR0V3Sk9UREVSCi1NQThHQTFVRUNnd0lVRzlzWVhKVFUwd3hKakFrQmdOVkJBTU1IVkJ2YkdGeVUxTk1JRlJsYzNRZ1NXNTBaWEp0Ci1aV1JwWVhSbElFTkJNQjRYRFRJek1EVXhOekEzTVRBek4xb1hEVE16TURVeE56QTNNVEF6TjFvd05ERUxNQWtHCi1BMVVFQmhNQ1Rrd3hFVEFQQmdOVkJBb01DRkJ2YkdGeVUxTk1NUkl3RUFZRFZRUUREQWxzYjJOaGJHaHZjM1F3Ci1XVEFUQmdjcWhrak9QUUlCQmdncWhrak9QUU1CQndOQ0FBUWNiZmZwMnFYcW9aeXljaG1vQ1J4enJkNFZ1OTZtCi00N05QQmVodEVDNDZhVGVYZ0RuQmRmKyt6bkFCckF0ZlhCUk5RejhBUkllWUJtc2tyMjJybEtqeW80R1ZNSUdTCi1NQjBHQTFVZERnUVdCQlRTQ3RPbGR4L09WYkJjUnFLT2MyeS9vV0FtdXpCbUJnTlZIU01FWHpCZGdCUTRkOWhyCi1kNXdvZDRLTFR0Z2JxUjczbEJhM0RxRkNwRUF3UGpFTE1Ba0dBMVVFQmhNQ1Rrd3hFVEFQQmdOVkJBb01DRkJ2Ci1iR0Z5VTFOTU1Sd3dHZ1lEVlFRRERCTlFiMnhoY25OemJDQlVaWE4wSUVWRElFTkJnZ0VPTUFrR0ExVWRFd1FDCi1NQUF3RFFZSktvWklodmNOQVFFTEJRQURnZ0lCQURVOVp5WldmWDFUMVBpMFBSQmVxcG01MnBlaFVYMndNc3lpCi1LdWRTcExlTisrZVM5cC9SMGhwTnVCOFd2WmNzRnkvcXVsMGRqUEFSS0dwWWdZVFpRdk9RMTBWY1k0MGp4dHRtCi1FVFNjbm5xS0gybE1yMGFzT3BNMzFrS3QvZ2hKUzBualVoSTlOWTZ5QUkyWGhjRHpJdFNwcU9objZZTEMzbXJXCi1ESXlCQ2tzTEtFdTh4L0twUmJ2ajNRSzFlejNjSEl0b3hDQ2U5Z3k4dE1Fd2I4RkUxNWR0RHVMN0c3aVJiNERoCi1WeUw2cXpCUnZKUDlBY1FLVDRQVGFPTXd1OE8raENsRHZMbGxKekNrSlg0cVptUXIzandPOEVtaTlkdlE4N1pGCi1jRHBMYnhxSWd0UkY4bGt4bjAwVXVodXVnTWdNOGxkVGQvYVJ4WnJkZElnRlZObUVkV0lXQnU1WlRXbUJNL0ZICi1hZ3V1WnIzbXR5N0poNFhaSjBSWjRIN1hhWXpvVm5DSzljQTVrb1J2L2d0U1FkRGg4QmlZbEp3V3g4YWRxeWdvCi1maWJpblFuSU9oWjRIY25sVERzaHNiNWVZK0d0a1NMbWM4NzM1VjVydEV0N3pydGFoRlQ1STdyMlg2ZERpUGRECi1CbHZiOS81Z0lNQzNmeTBOWmlnRHVlQk9ZRjc4a3B4cU1Sa250Nng4NmlyVmRiUlh3MWZwVnV4MjRjZlREYy91Ci01RWF0NFlGZk0xZUtabnVPRVR1bVBPb2EyN2p2Y1lUUE1Pc1VOOCtROE9zNlNEa0pDOGUyb2JlZFFvZmZRQzA2Ci0xWHpyaTNIT0h6WnJQSExHa3dBRk5ZQnlubDEvd3hHdTB2UGxtcHpKRHpjN3kwZTFGZ0txRDZZYWRBUU0rQVBBCi1aS2FzaWhPMwotLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQotLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCi1NSUlDNlRDQ0FkR2dBd0lCQWdJQkR6QU5CZ2txaGtpRzl3MEJBUXNGQURBN01Rc3dDUVlEVlFRR0V3Sk9UREVSCi1NQThHQTFVRUNnd0lVRzlzWVhKVFUwd3hHVEFYQmdOVkJBTU1FRkJ2YkdGeVUxTk1JRlJsYzNRZ1EwRXdIaGNOCi1Nak13TlRFM01EY3hNRE0zV2hjTk16TXdOVEUzTURjeE1ETTNXakJMTVFzd0NRWURWUVFHRXdKT1RERVJNQThHCi1BMVVFQ2d3SVVHOXNZWEpUVTB3eEtUQW5CZ05WQkFNTUlGQnZiR0Z5VTFOTUlGUmxjM1FnU1c1MFpYSnRaV1JwCi1ZWFJsSUVWRElFTkJNSFl3RUFZSEtvWkl6ajBDQVFZRks0RUVBQ0lEWWdBRThPaWgzZlg1U0xlTjFkbUZuY1FsCi1XTXc5K1k2c1hibGhsclhCeGhYeGp3ZHdwQ0hFTm4rZm9VVmRycVlWWWE3U3V2M1FWZU82bkoxOUgzUU5peFc4Ci1pazFQK2h4c2JhcThidGE3OHZBeUhtQzRFbVhRTGcxdzdveGI5UTgycVgxWW80R1ZNSUdTTUIwR0ExVWREZ1FXCi1CQlFQaWIxalFldkxYaGNvLzJnd1BjR0kwSnhZT1RCakJnTlZIU01FWERCYWdCUzBXdVNsczk3U1V2YTUxYWFWCi1EK3Mrdk1mOS82RS9wRDB3T3pFTE1Ba0dBMVVFQmhNQ1Rrd3hFVEFQQmdOVkJBb01DRkJ2YkdGeVUxTk1NUmt3Ci1Gd1lEVlFRRERCQlFiMnhoY2xOVFRDQlVaWE4wSUVOQmdnRURNQXdHQTFVZEV3UUZNQU1CQWY4d0RRWUpLb1pJCi1odmNOQVFFTEJRQURnZ0VCQUJOM2IxbHRObEJROVBod0poeEJXRU5sTU5keTF2eUtCR0gzRWRaN3c0dUhKSk9tCi13OEpTNXAvQjUrOWZESUlPVGhEcjgwaExxNFFPUVZKaHhBVDEvWnNiMk96c1R4YzFCYUNOYkJ2MlkrRnlGY3BMCi1JOEVqTUYrZ25TZ2JzNDZrR0tjZTFFSk5yWnJrdnBDbmd0Tmo3cXFnOXFuUFhkMWVuMHozNDl4SEpQbVl1V0ViCi05c0hkVmx3bmViUG0xbjl1MU56cGt0QUNoYjI4VUZuQllUV3JhWkN0TUJNb3p1TWh6Nm1vNjZYT0V5SDA2WXBhCi1RUE9sQm1iZ1cvZStmdVhvdzQxUVVxUDJ0dlZMNk1zbVNaRldrOGhyNDVyTlJ6ZVRvazFNNWJXOTFzWjc4V2U1Ci05NW0zVDZJRStxcGoyL1JJTG5jd3k3dldCbEZ6YnVpSUEzZVNKYTg9Ci0tLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCi0tLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KLU1JSUVBVENDQTRlZ0F3SUJBZ0lCRGpBS0JnZ3Foa2pPUFFRREFqQStNUXN3Q1FZRFZRUUdFd0pPVERFUk1BOEcKLUExVUVDZ3dJVUc5c1lYSlRVMHd4SERBYUJnTlZCQU1NRTFCdmJHRnljM05zSUZSbGMzUWdSVU1nUTBFd0hoY04KLU1qTXdOVEUzTURjeE1ETTNXaGNOTXpNd05URTNNRGN4TURNM1dqQklNUXN3Q1FZRFZRUUdFd0pPVERFUk1BOEcKLUExVUVDZ3dJVUc5c1lYSlRVMHd4SmpBa0JnTlZCQU1NSFZCdmJHRnlVMU5NSUZSbGMzUWdTVzUwWlhKdFpXUnAKLVlYUmxJRU5CTUlJQ0lqQU5CZ2txaGtpRzl3MEJBUUVGQUFPQ0FnOEFNSUlDQ2dLQ0FnRUFvMU9jOG5yNmZNVHEKLXZvd1YrQ3BDNTVpNUJaR0ZHYzUwRWI0UkxCU1JUSDFlN0plcGRGakFWYkJ0eVFSSlNpWTFqYTB0Z0xRRERLWlIKLXdmRUkrYjRhenNlNDYwSW5QSHY3QzFUTjB1cFhseHVqNm05QjFJbFArc0JhTTdXQkM2ZFZmUE8ralZNSXhna0YKLUNhQkNMaGhkSzFGamY4SGprVC9Qa2N0V25obzhOVHdpdmM5K25xUlpqWGUvZUljcW01SHdqRERodStneitvMGcKLVZ6OU1mWk5pMUp5Q3JPeU5aY3krY3IyUWVObk5WR25GcTh4VHh0dTZkTHVuaHBtTEZqMm1tMFZqd2E3WXBqNXEKLUFqcHFUTXREdnFiUnVUb3lveXphamhNTmNDQWY3Z3d6SXVwSkpGVmRqZHRnWUFjUXd6aWt3RjVIb0lUSnp6SjIKLXFneEY3Q212R1pOYjdHOTltTGRMZGh0Y2xIM3dBUUtIWXdFR0pvN1hLeU5FdUhQUWdCK2UwY2cxU0QxSHFsQU0KLXVDZkdHVFdRNm1lN0JqYW4zdDBOem9UZERxNklwS1Rlc2JhWSsvOWUyeG44RENyaEJLTFhRTVpGRFpxVW9MWUEKLWtHUE9FR2d2bFBuSUlYQWF3b3V4Q2FOWUVoNVV3ODcxWU1TUFQyOHJMZEZyNDlkd1lPdERnOWZvQThoRElXMlAKLWQ2S1hiclp0ZWVzdkExbll6RU9zKzNBanJiVDc5TWQyVzhCejlicUJWTmxOT0VTU3FtNGtpQ0pGbXNsbS82YnIKLU5wME1TUWQrbzIyUFE0eFJ0bVA2VXNUZlUwdWVpTXBZYzhUWVloTWJmbmZGeW80bTcwN2ViY2ZsUGJCRU4yZGcKLXVwZFE2NmN2ZkNKQjBRSnQ5dXBhZlkwbHBkVjFxVWtDQXdFQUFhT0JvRENCblRBZEJnTlZIUTRFRmdRVU9IZlkKLWEzZWNLSGVDaTA3WUc2a2U5NVFXdHc0d2JnWURWUjBqQkdjd1pZQVVuVzBnSkVrQlB5dkxlTFVadkg0a3lkdjcKLU5ueWhRcVJBTUQ0eEN6QUpCZ05WQkFZVEFrNU1NUkV3RHdZRFZRUUtEQWhRYjJ4aGNsTlRUREVjTUJvR0ExVUUKLUF3d1RVRzlzWVhKemMyd2dWR1Z6ZENCRlF5QkRRWUlKQU1GRDRuNWlROHpvTUF3R0ExVWRFd1FGTUFNQkFmOHcKLUNnWUlLb1pJemowRUF3SURhQUF3WlFJeEFPQWNoK2d6NHJIZkkvcG04TUlEc3NNdEpDcXpTNnh0T3ZRSEpaOWwKLWZkZ1dmSlY1Y1NISnBPSVdHWGVGS0tSMTh3SXdPRFRSblRJaW95K2JZYWNOcThUUVBqemRWbFQ5WGJZa1dJWU4KLUpBdVY5ZkxKSmRCNW5aVUczbDg1RHQyN1ZOa1QKLS0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KZGlmZiAtLWdpdCBhL3Rlc3RzL2RhdGFfZmlsZXMvc2VydmVyOC5jcnQgYi90ZXN0cy9kYXRhX2ZpbGVzL3NlcnZlcjguY3J0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1MTViMTdiLi4wMDAwMDAwCi0tLSBhL3Rlc3RzL2RhdGFfZmlsZXMvc2VydmVyOC5jcnQKKysrIC9kZXYvbnVsbApAQCAtMSwxNyArMCwwIEBACi0tLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KLU1JSUNxVENDQWk2Z0F3SUJBZ0lCRVRBTUJnZ3Foa2pPUFFRREFnVUFNRXN4Q3pBSkJnTlZCQVlUQWs1TU1SRXcKLUR3WURWUVFLREFoUWIyeGhjbE5UVERFcE1DY0dBMVVFQXd3Z1VHOXNZWEpUVTB3Z1ZHVnpkQ0JKYm5SbGNtMWwKLVpHbGhkR1VnUlVNZ1EwRXdIaGNOTVRrd01qRXdNVFEwTkRBMldoY05Namt3TWpFd01UUTBOREEyV2pBME1Rc3cKLUNRWURWUVFHRXdKT1RERVJNQThHQTFVRUNnd0lVRzlzWVhKVFUwd3hFakFRQmdOVkJBTU1DV3h2WTJGc2FHOXoKLWREQ0NBU0l3RFFZSktvWklodmNOQVFFQkJRQURnZ0VQQURDQ0FRb0NnZ0VCQU5zY2Z5NEx6Yi9PMFhVUW9LSzQKLXpuMnE0Z1hnZXRoRVk0KzF2Y0N3R2JrM3VCbEtEdkZkZElCblJvY0czbHQvQmdPOXdZMWVCeFhVVy9UYzVjODkKLStjRVJMSzVxdVlxOUhXZG1GK3BPdmRzVm1vS0g1UEI0dzZPRmg3RDluNm1aWCtNejdNenFDN1ZoWHZGSmZqK2oKLUxlb0JETXhDbW5hYnhOQTMwN0VYQVdFQkZsbCtIQmZEVS8zUmNzdE1ZQlhhZmVMcXJWRHZqdUtMMUdwM1ZkWncKLTJXdTc4ZTQ1QkRpanZlTFI0R1pyNHB4SG1la281cmI4THNwblE0VG8xWVBXblpockFUNkIzRHg2eXZuem5QZlcKLUtCc25lSHpEME5WanA0RTBpYTBsYXIzeTZ1MzZWL3psTk1iQkQzRXQwZ2dRRzYxRVFlRCtlYUJqazRxeFhlbXcKLTdtOENBd0VBQWFOTk1Fc3dDUVlEVlIwVEJBSXdBREFkQmdOVkhRNEVGZ1FVNGovbUxmVG51S2FNM0cwWHB4aEEKLUoyRjJEeDB3SHdZRFZSMGpCQmd3Rm9BVUQ0bTlZMEhyeTE0WEtQOW9NRDNCaU5DY1dEa3dEQVlJS29aSXpqMEUKLUF3SUZBQU5uQURCa0FqQTNLSjEvU3ZPWm5wbXRxdHVya3QrMERoUUlYR01SRFBuUGtzQ3V5L3dxR0hSOERzV1MKLWRFYTdQUUVncmJBNjBIb0NNQ3BIMmZZdGNBZmhnNWdHZytReG1Wc1VJdC85R2Q5c3lRbG5YN3dOQ2Z3ZVVlU1MKLU14RzFpc09kVWlRVGFqTTFUUT09Ci0tLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCmRpZmYgLS1naXQgYS90ZXN0cy9kYXRhX2ZpbGVzL3NlcnZlcjgua2V5IGIvdGVzdHMvZGF0YV9maWxlcy9zZXJ2ZXI4LmtleQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYWE5OTQxZS4uMDAwMDAwMAotLS0gYS90ZXN0cy9kYXRhX2ZpbGVzL3NlcnZlcjgua2V5CisrKyAvZGV2L251bGwKQEAgLTEsMjcgKzAsMCBAQAotLS0tLS1CRUdJTiBSU0EgUFJJVkFURSBLRVktLS0tLQotTUlJRW93SUJBQUtDQVFFQTJ4eC9MZ3ZOdjg3UmRSQ2dvcmpPZmFyaUJlQjYyRVJqajdXOXdMQVp1VGU0R1VvTwotOFYxMGdHZEdod2JlVzM4R0E3M0JqVjRIRmRSYjlOemx6ejM1d1JFc3JtcTVpcjBkWjJZWDZrNjkyeFdhZ29mawotOEhqRG80V0hzUDJmcVpsZjR6UHN6T29MdFdGZThVbCtQNk10NmdFTXpFS2FkcHZFMERmVHNSY0JZUUVXV1g0YwotRjhOVC9kRnl5MHhnRmRwOTR1cXRVTytPNG92VWFuZFYxbkRaYTd2eDdqa0VPS085NHRIZ1ptdmluRWVaNlNqbQotdHZ3dXltZERoT2pWZzlhZG1Hc0JQb0hjUEhySytmT2M5OVlvR3lkNGZNUFExV09uZ1RTSnJTVnF2ZkxxN2ZwWAotL09VMHhzRVBjUzNTQ0JBYnJVUkI0UDU1b0dPVGlyRmQ2YkR1YndJREFRQUJBb0lCQUZ2ZjN4UVhydlkyYW0yRAotdzFkMzFsMnJRWXJsVFoxUlQ4MzZqczQxQ1JRNDRPRDV4THBBVFpGcHZKRHh1RnIxTURoeFlLOCtOZ3BaT1JXNwotYWtFejQzMnBEZXMwcFFnZnRDeWZDbmdjL0U3WkNDaWpnc095WDVZNWIyUXZkTHRRckh4QVVaSzZzSjRsYmdJTwotcHZsWUd2Qjc4RG5WMDU3WVFmWnM4ajdYUHFURllWTmxJeDZ4Q0Z4d2lNVGVVR1p2U3JOOENwS1QvNXpzU0U1ZAoteFgyYWxhWWlXbDJvU09JN2F4cnRwTUVYQUkwQS9PL04xbUkrbjNjczE1Y2ZBSmEvZk1qRU1tR3owUHFnNUlsUwotSXdaV3ByNkJ6YmRIbGRPL1hsVkVyS01vNGxBRFVtc3IyZCtxM3ZmUW1MRUF5aXpwN09tVTl2YytEWGNLOWpIKwotYURkMGdjRUNnWUVBN1NBVkEvYmFuWWVqTjdPdm44NHBKK21ndUlOTXdQRlpkOWVXOW9wMVBnUnJ5R0NwZGg3NwotcVY2NFlJakZod3QxSlFRSWY1R0NQRDVVbTBaOG1ZNTlhNk1VK3NKR0dCN3h3VnVDdVhiREFLSkpGNi81OGY3LwotTW9MenNvUUZ5NTBUcEE5MFQwV092TVdEbldTTFRZalJyMWZGVEtOV05jdlBvRk9ubUF5ZEdiVUNnWUVBN0kxWAotbUNGUlNHaXUwTmROMmo3bXd0VHVkSTRtL3F5WWZVUXhwU3Z2Z04yRFNIdEc1Nmg4RHoxdzdDcE5sTERIb2RQUAotZThvaVhNUy9iQkJOd1dIdTloeGhCcWRtdmo0QytLNUF4MEVLWXg3Q3NIV0s3Qko4dThBazh4d2F1Zk1pZWp0NQotaW9KaEk0cHl1a0JFcUpibnV6bXVEY3VvcXhQRjFaVG1NL1d6cmhNQ2dZQmk1VjkrY01VS3NGaEZVZjZzVXFwZAotaUJYTS9vM1RacFZlNHg2R0lvYjFYNWlvVUpBOHdIMUxUVUx1bC94eDd6aGpRTVJlbUF4T0hkemhpY3RMcTk3cAotTm5INGgyLytmV0ZzdUVMVUlSRUJRYTNrWURPSlYwV09Cb21tNldNVllhU2dad1dtVGlkUzJibWp1aHhUTVAzcQotK0Z0RU5GY3ZScHFJam5zMmNnUlBoUUtCZ1FEY2poaWE1bzJ6OXE3d1Y1N21HM25yTkwrMGV3b09zSHhwWjVqbQotU1NYQlFFZjAzOFJIb0ljemFuVU1MWkV5VHZXRGhFclRQNjkwVVptdE56SllXV2lGbmdZMVB3WUQ0U3ZDRkM2ZgotMlp2R3VWcUxUcjBkeVVyMWYzeTBFNE16MTJkUkVuMExVTzhqUlNZZFZHanZ5K3Y2WEJoV0VvcU1JQjU0T3FHOAotMXAwV2N3S0JnRjRLZnpCT2kxRGFyQ3V4YWE2aHVVZE5jOGVmb2c1R08xbG1OZW5LbFJ1UExwNXdwM3F2V3N5SAotYmxmYnRKUU5FMURoYkRHd216UENHTGMzd1h4MHQwZ0NyY01reG9SQVRGTU5PU0xvZEc3TWJrajlBb0VNeDk0WAotWFlmaTV2WWZ0YkVVbVplWnRIWkJJM28zdXAveHRQY3VHTmxiOEJTSUlPYVF0SVl5YnhLYQotLS0tLS1FTkQgUlNBIFBSSVZBVEUgS0VZLS0tLS0KZGlmZiAtLWdpdCBhL3Rlc3RzL2RhdGFfZmlsZXMvc2VydmVyOF9pbnQtY2EyLmNydCBiL3Rlc3RzL2RhdGFfZmlsZXMvc2VydmVyOF9pbnQtY2EyLmNydApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZTk5NzI3ZC4uMDAwMDAwMAotLS0gYS90ZXN0cy9kYXRhX2ZpbGVzL3NlcnZlcjhfaW50LWNhMi5jcnQKKysrIC9kZXYvbnVsbApAQCAtMSwzNSArMCwwIEBACi0tLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KLU1JSUNxVENDQWk2Z0F3SUJBZ0lCRVRBTUJnZ3Foa2pPUFFRREFnVUFNRXN4Q3pBSkJnTlZCQVlUQWs1TU1SRXcKLUR3WURWUVFLREFoUWIyeGhjbE5UVERFcE1DY0dBMVVFQXd3Z1VHOXNZWEpUVTB3Z1ZHVnpkQ0JKYm5SbGNtMWwKLVpHbGhkR1VnUlVNZ1EwRXdIaGNOTVRrd01qRXdNVFEwTkRBMldoY05Namt3TWpFd01UUTBOREEyV2pBME1Rc3cKLUNRWURWUVFHRXdKT1RERVJNQThHQTFVRUNnd0lVRzlzWVhKVFUwd3hFakFRQmdOVkJBTU1DV3h2WTJGc2FHOXoKLWREQ0NBU0l3RFFZSktvWklodmNOQVFFQkJRQURnZ0VQQURDQ0FRb0NnZ0VCQU5zY2Z5NEx6Yi9PMFhVUW9LSzQKLXpuMnE0Z1hnZXRoRVk0KzF2Y0N3R2JrM3VCbEtEdkZkZElCblJvY0czbHQvQmdPOXdZMWVCeFhVVy9UYzVjODkKLStjRVJMSzVxdVlxOUhXZG1GK3BPdmRzVm1vS0g1UEI0dzZPRmg3RDluNm1aWCtNejdNenFDN1ZoWHZGSmZqK2oKLUxlb0JETXhDbW5hYnhOQTMwN0VYQVdFQkZsbCtIQmZEVS8zUmNzdE1ZQlhhZmVMcXJWRHZqdUtMMUdwM1ZkWncKLTJXdTc4ZTQ1QkRpanZlTFI0R1pyNHB4SG1la281cmI4THNwblE0VG8xWVBXblpockFUNkIzRHg2eXZuem5QZlcKLUtCc25lSHpEME5WanA0RTBpYTBsYXIzeTZ1MzZWL3psTk1iQkQzRXQwZ2dRRzYxRVFlRCtlYUJqazRxeFhlbXcKLTdtOENBd0VBQWFOTk1Fc3dDUVlEVlIwVEJBSXdBREFkQmdOVkhRNEVGZ1FVNGovbUxmVG51S2FNM0cwWHB4aEEKLUoyRjJEeDB3SHdZRFZSMGpCQmd3Rm9BVUQ0bTlZMEhyeTE0WEtQOW9NRDNCaU5DY1dEa3dEQVlJS29aSXpqMEUKLUF3SUZBQU5uQURCa0FqQTNLSjEvU3ZPWm5wbXRxdHVya3QrMERoUUlYR01SRFBuUGtzQ3V5L3dxR0hSOERzV1MKLWRFYTdQUUVncmJBNjBIb0NNQ3BIMmZZdGNBZmhnNWdHZytReG1Wc1VJdC85R2Q5c3lRbG5YN3dOQ2Z3ZVVlU1MKLU14RzFpc09kVWlRVGFqTTFUUT09Ci0tLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCi0tLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KLU1JSUM2VENDQWRHZ0F3SUJBZ0lCRHpBTkJna3Foa2lHOXcwQkFRc0ZBREE3TVFzd0NRWURWUVFHRXdKT1RERVIKLU1BOEdBMVVFQ2d3SVVHOXNZWEpUVTB3eEdUQVhCZ05WQkFNTUVGQnZiR0Z5VTFOTUlGUmxjM1FnUTBFd0hoY04KLU1qTXdOVEUzTURreU56QXlXaGNOTXpNd05URTNNRGt5TnpBeVdqQkxNUXN3Q1FZRFZRUUdFd0pPVERFUk1BOEcKLUExVUVDZ3dJVUc5c1lYSlRVMHd4S1RBbkJnTlZCQU1NSUZCdmJHRnlVMU5NSUZSbGMzUWdTVzUwWlhKdFpXUnAKLVlYUmxJRVZESUVOQk1IWXdFQVlIS29aSXpqMENBUVlGSzRFRUFDSURZZ0FFOE9paDNmWDVTTGVOMWRtRm5jUWwKLVdNdzkrWTZzWGJsaGxyWEJ4aFh4andkd3BDSEVObitmb1VWZHJxWVZZYTdTdXYzUVZlTzZuSjE5SDNRTml4VzgKLWlrMVAraHhzYmFxOGJ0YTc4dkF5SG1DNEVtWFFMZzF3N294YjlRODJxWDFZbzRHVk1JR1NNQjBHQTFVZERnUVcKLUJCUVBpYjFqUWV2TFhoY28vMmd3UGNHSTBKeFlPVEJqQmdOVkhTTUVYREJhZ0JTMFd1U2xzOTdTVXZhNTFhYVYKLUQrcyt2TWY5LzZFL3BEMHdPekVMTUFrR0ExVUVCaE1DVGt3eEVUQVBCZ05WQkFvTUNGQnZiR0Z5VTFOTU1Sa3cKLUZ3WURWUVFEREJCUWIyeGhjbE5UVENCVVpYTjBJRU5CZ2dFRE1Bd0dBMVVkRXdRRk1BTUJBZjh3RFFZSktvWkkKLWh2Y05BUUVMQlFBRGdnRUJBSFROMFVSclAyTXB3RDh2T0R5bWpqcTdpYUI3V0ZaNENXVWp4OUxXdTNQUFpiWDIKLTEyTXh6a3lGYVZSN3JuUEtaU0ZISkpFbU5hUERKV3dZaEdRUlhMQ29ENk5pSnk2RGU0ZmE1Z1NZb1h0aFJHRmYKLUduRlhadTNlMzdHREtvS1A4N1RaK1ZYY3l4NlBIdlB4SkIzLzlOOTRWajJZaDNoQ3M3RjcyR213ZkR3dzZvb2oKLXdoSXFoeEJZT2hQbGVBTnM3MEZaN1k3dGpaVjFSdFExLzlzUmNieXY5T3ZkUHVXdnVrQlZxMUtNNm5xVkhCWjMKLS80a0hCV2FGYVdNcS9BQXhNeGFUR0ZBT0E4UzJ5VTU2amtCNjV2aVFycFFRV2ZmQkpXSytXZnJjZ3hSV3FSMzMKLWhxRzN5VDFJV2JKNUUxMVhMOVRDS0QrRFJlcWVYSHlZYXd4OGZCVT0KLS0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KZGlmZiAtLWdpdCBhL3Rlc3RzL2RhdGFfZmlsZXMvc2VydmVyOS1iYWQtbWdmaGFzaC5jcnQgYi90ZXN0cy9kYXRhX2ZpbGVzL3NlcnZlcjktYmFkLW1nZmhhc2guY3J0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhZDI5OTQyLi4wMDAwMDAwCi0tLSBhL3Rlc3RzL2RhdGFfZmlsZXMvc2VydmVyOS1iYWQtbWdmaGFzaC5jcnQKKysrIC9kZXYvbnVsbApAQCAtMSwyMSArMCwwIEBACi0tLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KLU1JSURZekNDQWhhZ0F3SUJBZ0lCR0RCQ0Jna3Foa2lHOXcwQkFRb3dOYUFQTUEwR0NXQ0dTQUZsQXdRQ0FRVUEKLW9Sd3dHZ1lKS29aSWh2Y05BUUVJTUEwR0NXQ0dTQUZsQXdRQ0JBVUFvZ1FDQWdEZU1Ec3hDekFKQmdOVkJBWVQKLUFrNU1NUkV3RHdZRFZRUUtEQWhRYjJ4aGNsTlRUREVaTUJjR0ExVUVBd3dRVUc5c1lYSlRVMHdnVkdWemRDQkQKLVFUQWVGdzB5TXpBMU1UY3dPRE01TkRoYUZ3MHpNekExTVRjd09ETTVORGhhTURReEN6QUpCZ05WQkFZVEFrNU0KLU1SRXdEd1lEVlFRS0RBaFFiMnhoY2xOVFRERVNNQkFHQTFVRUF3d0piRzlqWVd4b2IzTjBNSUdmTUEwR0NTcUcKLVNJYjNEUUVCQVFVQUE0R05BRENCaVFLQmdRRGRFWXFmbWJxd2FNb3E2anRxYlZtWDdVN0pWT1FON3M2Z2ZhQWUKLXF1Z093cnNUUU51S0VvNkpFeVNseGZYNjJQV1ExOGpLeThYK2t4MnYyaElqYzFKNVJocTZvRmNyZGhZeHM2aXYKLTV6aWJDSXRqbVRvS0plNUYwaGhZdXJtVEd1M1VXSnBqR3pmODl4UUluNFZsU2ZOWk1tM1I0T2h0M2xMdFpyU3AKLUM5cEFsUUlEQVFBQm80R1NNSUdQTUIwR0ExVWREZ1FXQkJUdTg4ZjFIeFdsVFVlSndkTWlZN0xmcDg2OVVUQmoKLUJnTlZIU01FWERCYWdCUzBXdVNsczk3U1V2YTUxYWFWRCtzK3ZNZjkvNkUvcEQwd096RUxNQWtHQTFVRUJoTUMKLVRrd3hFVEFQQmdOVkJBb01DRkJ2YkdGeVUxTk1NUmt3RndZRFZRUUREQkJRYjJ4aGNsTlRUQ0JVWlhOMElFTkIKLWdnRURNQWtHQTFVZEV3UUNNQUF3UWdZSktvWklodmNOQVFFS01EV2dEekFOQmdsZ2hrZ0JaUU1FQWdFRkFLRWMKLU1Cb0dDU3FHU0liM0RRRUJDREFOQmdsZ2hrZ0JaUU1FQWdRRkFLSUVBZ0lBM2dPQ0FRRUFhUWxmMUdQaHZQSHAKLWhGZ1RkSUI1eDV6QUNWYjRhNE9OdXlTVmNrZk1wV2sybmxrUlN1M0tndjRqOGwvamZOcGZyK3dlNGxHNzJ4RW4KLUZWM2VtOGRFenh2WGQ1alhDZlIvaFdKS1lWb1doMDA1NXFXdzdGcEcyMHZSRkt0dFU4VUZjbEw3S3ZNczRJbloKLXZEcGJQczVFd0JRWFRnL21hbkw5VEQ5dC96cVdBVUpqMXlIV2lJSVNZemZXbXNhb1RpOGpOeFNSMStsa21QUFAKLVpXUXd5VUpyaDgyTXczVndOR3hYT2ZwR0l3bWpYUGlhOE1hZmpqSC9SdEhOeDd1a0NrKzZxMVpsSDU3Tm9sWkoKLWRsUVRKdjIxK3Z4eVlyNkdaZEhYemRKd1dNbkZTb2Y2Vkd3YXlOemV0U25WaEpiMFNRcVRCdDhWdTV4UXRYR2EKLVFjQ2pHeUNBSWc9PQotLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQpkaWZmIC0tZ2l0IGEvdGVzdHMvZGF0YV9maWxlcy9zZXJ2ZXI5LWJhZC1zYWx0bGVuLmNydCBiL3Rlc3RzL2RhdGFfZmlsZXMvc2VydmVyOS1iYWQtc2FsdGxlbi5jcnQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDQ1YmYyMGUuLjAwMDAwMDAKLS0tIGEvdGVzdHMvZGF0YV9maWxlcy9zZXJ2ZXI5LWJhZC1zYWx0bGVuLmNydAorKysgL2Rldi9udWxsCkBAIC0xLDIxICswLDAgQEAKLS0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQotTUlJRFl6Q0NBaGFnQXdJQkFnSUJHREJDQmdrcWhraUc5dzBCQVFvd05hQVBNQTBHQ1dDR1NBRmxBd1FDQVFVQQotb1J3d0dnWUpLb1pJaHZjTkFRRUlNQTBHQ1dDR1NBRmxBd1FDQVFVQW9nUUNBZ0RlTURzeEN6QUpCZ05WQkFZVAotQWs1TU1SRXdEd1lEVlFRS0RBaFFiMnhoY2xOVFRERVpNQmNHQTFVRUF3d1FVRzlzWVhKVFUwd2dWR1Z6ZENCRAotUVRBZUZ3MHlNekExTWpJd056TXdNRFphRncwek16QTFNVGt3TnpNd01EWmFNRFF4Q3pBSkJnTlZCQVlUQWs1TQotTVJFd0R3WURWUVFLREFoUWIyeGhjbE5UVERFU01CQUdBMVVFQXd3SmJHOWpZV3hvYjNOME1JR2ZNQTBHQ1NxRwotU0liM0RRRUJBUVVBQTRHTkFEQ0JpUUtCZ1FEZEVZcWZtYnF3YU1vcTZqdHFiVm1YN1U3SlZPUU43czZnZmFBZQotcXVnT3dyc1RRTnVLRW82SkV5U2x4Zlg2MlBXUTE4akt5OFgra3gydjJoSWpjMUo1UmhxNm9GY3JkaFl4czZpdgotNXppYkNJdGptVG9LSmU1RjBoaFl1cm1UR3UzVVdKcGpHemY4OXhRSW40VmxTZk5aTW0zUjRPaHQzbEx0WnJTcAotQzlwQWxRSURBUUFCbzRHU01JR1BNQWtHQTFVZEV3UUNNQUF3SFFZRFZSME9CQllFRk83engvVWZGYVZOUjRuQgotMHlKanN0K256cjFSTUdNR0ExVWRJd1JjTUZxQUZMUmE1S1d6M3RKUzlyblZwcFVQNno2OHgvMy9vVCtrUFRBNwotTVFzd0NRWURWUVFHRXdKT1RERVJNQThHQTFVRUNnd0lVRzlzWVhKVFUwd3hHVEFYQmdOVkJBTU1FRkJ2YkdGeQotVTFOTUlGUmxjM1FnUTBHQ0FRTXdRZ1lKS29aSWh2Y05BUUVLTURXZ0R6QU5CZ2xnaGtnQlpRTUVBZ0VGQUtFYwotTUJvR0NTcUdTSWIzRFFFQkNEQU5CZ2xnaGtnQlpRTUVBZ0VGQUtJRUFnSUEzZ09DQVFFQWxRbzlPbmNoWmJMUQotUFRYczlOZ1hEb1FiNEp2VUcvRnNxMDkvZThpdldhSGtFN21LZU5SclA4cU1kQXc5MTRCczFOUWY5Rjc1Q1dKZQotNVl0bUxjRTVnU2JWajNxYTZ6VnVRV0VjcnNlS3o2d3BBRkxzSEtiRjZrS2ZVZ2NJNTZ4bUQyRGhoSUhueSs1QgotOU9iTTBSUXBDbUFZWGpVMkN2a25YZUJ6cFgyY0dPTEQvTmV4azFvQkY2UEkwckRVQnFnM2NleHNKNVhmSndZZwotdGtqa1ozMjFzOU4wOUJzaW9hdUg2ZDl4OS9Zc3o3UXA3QnFwYjFFN2RWNGJEdVQ1dndQV3dQSVVBYXY4OTdWdAotczB1TVpIb1Zhc2o1N1V3cUR2OHRtMGRiNmYyVk9MN3I1R0JNamJwNm5ld1c4TWU0N3VYU0JYS3k4dEZKTW9sagoteUt1RVFrS0t5QT09Ci0tLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCmRpZmYgLS1naXQgYS90ZXN0cy9kYXRhX2ZpbGVzL3NlcnZlcjktYmFkc2lnbi5jcnQgYi90ZXN0cy9kYXRhX2ZpbGVzL3NlcnZlcjktYmFkc2lnbi5jcnQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDg2NTZiMWEuLjAwMDAwMDAKLS0tIGEvdGVzdHMvZGF0YV9maWxlcy9zZXJ2ZXI5LWJhZHNpZ24uY3J0CisrKyAvZGV2L251bGwKQEAgLTEsMTkgKzAsMCBAQAotLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCi1NSUlEQlRDQ0FlZWdBd0lCQWdJQkZqQVRCZ2txaGtpRzl3MEJBUW93QnFJRUFnSUE2akE3TVFzd0NRWURWUVFHCi1Fd0pPVERFUk1BOEdBMVVFQ2d3SVVHOXNZWEpUVTB3eEdUQVhCZ05WQkFNTUVGQnZiR0Z5VTFOTUlGUmxjM1FnCi1RMEV3SGhjTk1qTXdOVEUzTURnd05EQXdXaGNOTXpNd05URTNNRGd3TkRBd1dqQTBNUXN3Q1FZRFZRUUdFd0pPCi1UREVSTUE4R0ExVUVDZ3dJVUc5c1lYSlRVMHd4RWpBUUJnTlZCQU1NQ1d4dlkyRnNhRzl6ZERDQm56QU5CZ2txCi1oa2lHOXcwQkFRRUZBQU9CalFBd2dZa0NnWUVBM1JHS241bTZzR2pLS3VvN2FtMVpsKzFPeVZUa0RlN09vSDJnCi1IcXJvRHNLN0UwRGJpaEtPaVJNa3BjWDErdGoxa05mSXlzdkYvcE1kcjlvU0kzTlNlVVlhdXFCWEszWVdNYk9vCi1yK2M0bXdpTFk1azZDaVh1UmRJWVdMcTVreHJ0MUZpYVl4czMvUGNVQ0orRlpVbnpXVEp0MGVEb2JkNVM3V2EwCi1xUXZhUUpVQ0F3RUFBYU9Ca2pDQmp6QWRCZ05WSFE0RUZnUVU3dlBIOVI4VnBVMUhpY0hUSW1PeTM2Zk92VkV3Ci1Zd1lEVlIwakJGd3dXb0FVdEZya3BiUGUwbEwydWRXbWxRL3JQcnpIL2YraFA2UTlNRHN4Q3pBSkJnTlZCQVlUCi1BazVNTVJFd0R3WURWUVFLREFoUWIyeGhjbE5UVERFWk1CY0dBMVVFQXd3UVVHOXNZWEpUVTB3Z1ZHVnpkQ0JECi1RWUlCQXpBSkJnTlZIUk1FQWpBQU1CTUdDU3FHU0liM0RRRUJDakFHb2dRQ0FnRHFBNElCQVFDMkRMSFEwNXg2Ci1pbUpOenRFL1Ruay9sUFEwMVB3NkdpcmRiazRiZ3hjR3dHaisxdTV3QUlITnBKNTBUT2dnZzNIeFR5YjdwMzQ0Ci0vdFZNeHo3bnJIWlE1QVNkbjJrREN5Q21FcWhtajQ4aXNXQUltbCs3SjljQmVJbUpvRWZZcWp0cXRvVmtHeEZ5Ci1TdW9aQVFXa2txRHB5RmhLaElqTFE4SnVTRTZ3V01YL2tjNlRGU1N4ZXBuWlUxU0ZPWGZDaWFWcjV0RlF6QlA3Ci1sb3BwSUFOTGpLZU1qcE9kVTg2UG1SUTJMeXphQ0gxT01ualZuZGVxTm1adDBOeXpaMThjRlB2bTYrRFZWVnVQCi1RKzZuUmVTaENkQWxVK2RKcXNxajhKc1FuZU5NVHhqdjRPQm9YVm1FL2taVGovREJUdHdteGtWaTdLNGFZTUZpCi1VWVVaNFJpd0cxLzAKLS0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KZGlmZiAtLWdpdCBhL3Rlc3RzL2RhdGFfZmlsZXMvc2VydmVyOS1kZWZhdWx0cy5jcnQgYi90ZXN0cy9kYXRhX2ZpbGVzL3NlcnZlcjktZGVmYXVsdHMuY3J0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4NjEzZjUyLi4wMDAwMDAwCi0tLSBhL3Rlc3RzL2RhdGFfZmlsZXMvc2VydmVyOS1kZWZhdWx0cy5jcnQKKysrIC9kZXYvbnVsbApAQCAtMSwxOCArMCwwIEBACi0tLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KLU1JSUMrVENDQWVHZ0F3SUJBZ0lCU0RBTkJna3Foa2lHOXcwQkFRb3dBREE3TVFzd0NRWURWUVFHRXdKT1RERVIKLU1BOEdBMVVFQ2d3SVVHOXNZWEpUVTB3eEdUQVhCZ05WQkFNTUVGQnZiR0Z5VTFOTUlGUmxjM1FnUTBFd0hoY04KLU1qTXdOVEUzTURjeE1ETTNXaGNOTXpNd05URTNNRGN4TURNM1dqQTBNUXN3Q1FZRFZRUUdFd0pPVERFUk1BOEcKLUExVUVDZ3dJVUc5c1lYSlRVMHd4RWpBUUJnTlZCQU1NQ1d4dlkyRnNhRzl6ZERDQm56QU5CZ2txaGtpRzl3MEIKLUFRRUZBQU9CalFBd2dZa0NnWUVBM1JHS241bTZzR2pLS3VvN2FtMVpsKzFPeVZUa0RlN09vSDJnSHFyb0RzSzcKLUUwRGJpaEtPaVJNa3BjWDErdGoxa05mSXlzdkYvcE1kcjlvU0kzTlNlVVlhdXFCWEszWVdNYk9vcitjNG13aUwKLVk1azZDaVh1UmRJWVdMcTVreHJ0MUZpYVl4czMvUGNVQ0orRlpVbnpXVEp0MGVEb2JkNVM3V2EwcVF2YVFKVUMKLUF3RUFBYU9Ca2pDQmp6QWRCZ05WSFE0RUZnUVU3dlBIOVI4VnBVMUhpY0hUSW1PeTM2Zk92VkV3WXdZRFZSMGoKLUJGd3dXb0FVdEZya3BiUGUwbEwydWRXbWxRL3JQcnpIL2YraFA2UTlNRHN4Q3pBSkJnTlZCQVlUQWs1TU1SRXcKLUR3WURWUVFLREFoUWIyeGhjbE5UVERFWk1CY0dBMVVFQXd3UVVHOXNZWEpUVTB3Z1ZHVnpkQ0JEUVlJQkF6QUoKLUJnTlZIUk1FQWpBQU1BMEdDU3FHU0liM0RRRUJDakFBQTRJQkFRQVNzYzV5N3NEUDRwck9MR0FsMkVCNWQrR2cKLXcvVms5K2czS1hwZUlVQ0w2Z21FQ05MRU5tbUJlNnpaUjgvQXg2UjFoVWUvQ2JmbGVweHN4NjI3RWcyOU5DWksKLUJvL0FRb3o2NThrd0V6cjRqaEY4TTZ5OXNkc2Y1L09hdW9SeERMY01FeXdJa2dtdUZ2WklweUV3WGl4NmFyc0sKLW1OV25XMEZ3U3IyTmFYb3pEN09xdUd3VEVBdkFidGVpKzVKQWVWdnZHaTF1MzJEMkpQVkhrM3p2MDVMWHR4OGIKLThiRW16Wkx0aEZrM0diU2tHSEMzSzVyak5nVE13WTBCaE5CVzZxRnlZNW1MMGJIVkRiWlF4RDlSUndEaWZHdHkKLWZUbzdvZEpEQUhVMXh1Y1dGNmRPVTVuQXFpRktsYzNlSVRkQkt0K2QxMHlCU3I3cVhjaUhrSHBBekN2aAotLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQpkaWZmIC0tZ2l0IGEvdGVzdHMvZGF0YV9maWxlcy9zZXJ2ZXI5LXNoYTIyNC5jcnQgYi90ZXN0cy9kYXRhX2ZpbGVzL3NlcnZlcjktc2hhMjI0LmNydApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZWQ2NDhjOC4uMDAwMDAwMAotLS0gYS90ZXN0cy9kYXRhX2ZpbGVzL3NlcnZlcjktc2hhMjI0LmNydAorKysgL2Rldi9udWxsCkBAIC0xLDIxICswLDAgQEAKLS0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQotTUlJRFl6Q0NBaGFnQXdJQkFnSUJGekJDQmdrcWhraUc5dzBCQVFvd05hQVBNQTBHQ1dDR1NBRmxBd1FDQkFVQQotb1J3d0dnWUpLb1pJaHZjTkFRRUlNQTBHQ1dDR1NBRmxBd1FDQkFVQW9nUUNBZ0RpTURzeEN6QUpCZ05WQkFZVAotQWs1TU1SRXdEd1lEVlFRS0RBaFFiMnhoY2xOVFRERVpNQmNHQTFVRUF3d1FVRzlzWVhKVFUwd2dWR1Z6ZENCRAotUVRBZUZ3MHlNekExTVRjd056RXdNemRhRncwek16QTFNVFF3TnpFd016ZGFNRFF4Q3pBSkJnTlZCQVlUQWs1TQotTVJFd0R3WURWUVFLREFoUWIyeGhjbE5UVERFU01CQUdBMVVFQXd3SmJHOWpZV3hvYjNOME1JR2ZNQTBHQ1NxRwotU0liM0RRRUJBUVVBQTRHTkFEQ0JpUUtCZ1FEZEVZcWZtYnF3YU1vcTZqdHFiVm1YN1U3SlZPUU43czZnZmFBZQotcXVnT3dyc1RRTnVLRW82SkV5U2x4Zlg2MlBXUTE4akt5OFgra3gydjJoSWpjMUo1UmhxNm9GY3JkaFl4czZpdgotNXppYkNJdGptVG9LSmU1RjBoaFl1cm1UR3UzVVdKcGpHemY4OXhRSW40VmxTZk5aTW0zUjRPaHQzbEx0WnJTcAotQzlwQWxRSURBUUFCbzRHU01JR1BNQWtHQTFVZEV3UUNNQUF3SFFZRFZSME9CQllFRk83engvVWZGYVZOUjRuQgotMHlKanN0K256cjFSTUdNR0ExVWRJd1JjTUZxQUZMUmE1S1d6M3RKUzlyblZwcFVQNno2OHgvMy9vVCtrUFRBNwotTVFzd0NRWURWUVFHRXdKT1RERVJNQThHQTFVRUNnd0lVRzlzWVhKVFUwd3hHVEFYQmdOVkJBTU1FRkJ2YkdGeQotVTFOTUlGUmxjM1FnUTBHQ0FRTXdRZ1lKS29aSWh2Y05BUUVLTURXZ0R6QU5CZ2xnaGtnQlpRTUVBZ1FGQUtFYwotTUJvR0NTcUdTSWIzRFFFQkNEQU5CZ2xnaGtnQlpRTUVBZ1FGQUtJRUFnSUE0Z09DQVFFQWpHNzNaT2UycFFuNgotanFpVEhBTEdNMElHOEJCQ2FtbzNnemJDalpQejNablRwWmlpMXBRU0ZQR0VCYUtDZ3J0S3Jqdm9QMjFaRFVucQotM0hqVFV6R3RHYkhrM2grVUpjVllnRnVPTmlkZ3VVRGFBTEd0WElQV1VscUJCZUpMK1krMDF6SlJuTXBDMmhWNwotSlVPTTNlczAydGU4Uk02c3JDZFcxZlA5eCtMeDRHMktqajdrRXpLYWZFYndGZXNTNExiQlhzV2tJRDh4RFBITwotRExLdmc2NnRQZWtzREJUNG43ZjdINTFlTmx5SXd3TURLVGMrTjlSaTVPZVcxSE9xdGJ5by95SmxIdlFxbkNsZAotRThnVytBVm9lWm1ONm4vNHllbW5DRWtGUnFnYlJTSUdWb1BtT1k5ZC9GZkdMbUNsY2FaRlBjSCt3MUpEaEY3MQotM2VnWW5VWS85Zz09Ci0tLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCmRpZmYgLS1naXQgYS90ZXN0cy9kYXRhX2ZpbGVzL3NlcnZlcjktc2hhMjU2LmNydCBiL3Rlc3RzL2RhdGFfZmlsZXMvc2VydmVyOS1zaGEyNTYuY3J0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlZjM3YjNmLi4wMDAwMDAwCi0tLSBhL3Rlc3RzL2RhdGFfZmlsZXMvc2VydmVyOS1zaGEyNTYuY3J0CisrKyAvZGV2L251bGwKQEAgLTEsMjEgKzAsMCBAQAotLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCi1NSUlEWXpDQ0FoYWdBd0lCQWdJQkZ6QkNCZ2txaGtpRzl3MEJBUW93TmFBUE1BMEdDV0NHU0FGbEF3UUNBUVVBCi1vUnd3R2dZSktvWklodmNOQVFFSU1BMEdDV0NHU0FGbEF3UUNBUVVBb2dRQ0FnRGVNRHN4Q3pBSkJnTlZCQVlUCi1BazVNTVJFd0R3WURWUVFLREFoUWIyeGhjbE5UVERFWk1CY0dBMVVFQXd3UVVHOXNZWEpUVTB3Z1ZHVnpkQ0JECi1RVEFlRncweU16QTFNVGN3TnpFd016ZGFGdzB6TXpBMU1UUXdOekV3TXpkYU1EUXhDekFKQmdOVkJBWVRBazVNCi1NUkV3RHdZRFZRUUtEQWhRYjJ4aGNsTlRUREVTTUJBR0ExVUVBd3dKYkc5allXeG9iM04wTUlHZk1BMEdDU3FHCi1TSWIzRFFFQkFRVUFBNEdOQURDQmlRS0JnUURkRVlxZm1icXdhTW9xNmp0cWJWbVg3VTdKVk9RTjdzNmdmYUFlCi1xdWdPd3JzVFFOdUtFbzZKRXlTbHhmWDYyUFdRMThqS3k4WCtreDJ2MmhJamMxSjVSaHE2b0ZjcmRoWXhzNml2Ci01emliQ0l0am1Ub0tKZTVGMGhoWXVybVRHdTNVV0pwakd6Zjg5eFFJbjRWbFNmTlpNbTNSNE9odDNsTHRaclNwCi1DOXBBbFFJREFRQUJvNEdTTUlHUE1Ba0dBMVVkRXdRQ01BQXdIUVlEVlIwT0JCWUVGTzd6eC9VZkZhVk5SNG5CCi0weUpqc3QrbnpyMVJNR01HQTFVZEl3UmNNRnFBRkxSYTVLV3ozdEpTOXJuVnBwVVA2ejY4eC8zL29UK2tQVEE3Ci1NUXN3Q1FZRFZRUUdFd0pPVERFUk1BOEdBMVVFQ2d3SVVHOXNZWEpUVTB3eEdUQVhCZ05WQkFNTUVGQnZiR0Z5Ci1VMU5NSUZSbGMzUWdRMEdDQVFNd1FnWUpLb1pJaHZjTkFRRUtNRFdnRHpBTkJnbGdoa2dCWlFNRUFnRUZBS0VjCi1NQm9HQ1NxR1NJYjNEUUVCQ0RBTkJnbGdoa2dCWlFNRUFnRUZBS0lFQWdJQTNnT0NBUUVBWGNXbGZiSWpSSlgzCi1lQ2tqMDNlS0x2aGF3Rm5kTjZtV01PVFZ2cjIwVmRoaG41N3duZ1NLWWd0c2JPWmhwVCtwSVhUVHB4aGt1N3VTCi1QZzZORFUwVzEzeGJyY0lzWXhrWlJjTjZBWWNuVjBOeG5oZGZrbXh3RGpMeW9oZ204SWRndkhiMDRyNzNPUDBqCi1LbW5aZkpKcG54a1ZHRDhORkdqMmhCQ1I3eW5iVkJBZkplZ2wwTHJ1eGM0QWxybmlHNk1XOXhma21FM0VmT1FnCi1kd1p2M1V1aHh6RWhMbVI5MzNCQ2lqd2ZoQlZmeXphckdqRHRaalFZTndXS2hSbCtPWE0rTDE0T2ZxN2h0U3h6Ci1rU001S0pmQ0F6TEZOZDZOMllVODRJaHF3VFM0Q1ovYkUxSGNoRVlQdFhtOTdiajhWbGRyZnYydXAvNFJjMGtGCi1hOFAreExMbXVnPT0KLS0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KZGlmZiAtLWdpdCBhL3Rlc3RzL2RhdGFfZmlsZXMvc2VydmVyOS1zaGEzODQuY3J0IGIvdGVzdHMvZGF0YV9maWxlcy9zZXJ2ZXI5LXNoYTM4NC5jcnQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDJlYTAxMDguLjAwMDAwMDAKLS0tIGEvdGVzdHMvZGF0YV9maWxlcy9zZXJ2ZXI5LXNoYTM4NC5jcnQKKysrIC9kZXYvbnVsbApAQCAtMSwyMSArMCwwIEBACi0tLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KLU1JSURZekNDQWhhZ0F3SUJBZ0lCRnpCQ0Jna3Foa2lHOXcwQkFRb3dOYUFQTUEwR0NXQ0dTQUZsQXdRQ0FnVUEKLW9Sd3dHZ1lKS29aSWh2Y05BUUVJTUEwR0NXQ0dTQUZsQXdRQ0FnVUFvZ1FDQWdET01Ec3hDekFKQmdOVkJBWVQKLUFrNU1NUkV3RHdZRFZRUUtEQWhRYjJ4aGNsTlRUREVaTUJjR0ExVUVBd3dRVUc5c1lYSlRVMHdnVkdWemRDQkQKLVFUQWVGdzB5TXpBMU1UY3dOekV3TXpkYUZ3MHpNekExTVRRd056RXdNemRhTURReEN6QUpCZ05WQkFZVEFrNU0KLU1SRXdEd1lEVlFRS0RBaFFiMnhoY2xOVFRERVNNQkFHQTFVRUF3d0piRzlqWVd4b2IzTjBNSUdmTUEwR0NTcUcKLVNJYjNEUUVCQVFVQUE0R05BRENCaVFLQmdRRGRFWXFmbWJxd2FNb3E2anRxYlZtWDdVN0pWT1FON3M2Z2ZhQWUKLXF1Z093cnNUUU51S0VvNkpFeVNseGZYNjJQV1ExOGpLeThYK2t4MnYyaElqYzFKNVJocTZvRmNyZGhZeHM2aXYKLTV6aWJDSXRqbVRvS0plNUYwaGhZdXJtVEd1M1VXSnBqR3pmODl4UUluNFZsU2ZOWk1tM1I0T2h0M2xMdFpyU3AKLUM5cEFsUUlEQVFBQm80R1NNSUdQTUFrR0ExVWRFd1FDTUFBd0hRWURWUjBPQkJZRUZPN3p4L1VmRmFWTlI0bkIKLTB5SmpzdCtuenIxUk1HTUdBMVVkSXdSY01GcUFGTFJhNUtXejN0SlM5cm5WcHBVUDZ6Njh4LzMvb1Qra1BUQTcKLU1Rc3dDUVlEVlFRR0V3Sk9UREVSTUE4R0ExVUVDZ3dJVUc5c1lYSlRVMHd4R1RBWEJnTlZCQU1NRUZCdmJHRnkKLVUxTk1JRlJsYzNRZ1EwR0NBUU13UWdZSktvWklodmNOQVFFS01EV2dEekFOQmdsZ2hrZ0JaUU1FQWdJRkFLRWMKLU1Cb0dDU3FHU0liM0RRRUJDREFOQmdsZ2hrZ0JaUU1FQWdJRkFLSUVBZ0lBemdPQ0FRRUFtVFUySHFBQTdnYkIKLXRKbERBdmU4bkdiZENpbTRZalJYV2NlSEdDcG9GSVdyczZvbmxIQ3ZuWjJXcjhpUGsrd25kN1NoSXBwOHZHYi8KLTQ3Nnk4cGZhQTJuOHZZV2hRS0RDVFRVWEpONHRVYzdpOFV6NFJHZEs0OHZIVnZaQ3RDVC84TW1QUG91T0laY1UKLS9La2VudzJqdjVSL0NwaWlyVlVzak54NkJZY2R1MXp6RVUrdW9CTG9tNnNaNkxHUmxJQjBwckZXY3hyVmpmengKLTJDOFp4TVc4TldqNkVRaXBRSjJVK0NDeWNBMkhrYkNtdDNGbkVYbU41T1dUaHZuS2RzaG9Qa01uMkh3aEFPem4KLWNqWlFoUVQzV1N1ZnZaOWJZZTdIWjVlMWU3azZhTVhCdlc4OUVDeGMxMm1aZlNqbFltbHZmSFp1TzhEMnNQMmkKLVJpZGtjWEZNeFE9PQotLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQpkaWZmIC0tZ2l0IGEvdGVzdHMvZGF0YV9maWxlcy9zZXJ2ZXI5LXNoYTUxMi5jcnQgYi90ZXN0cy9kYXRhX2ZpbGVzL3NlcnZlcjktc2hhNTEyLmNydApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNGFiZGY2OC4uMDAwMDAwMAotLS0gYS90ZXN0cy9kYXRhX2ZpbGVzL3NlcnZlcjktc2hhNTEyLmNydAorKysgL2Rldi9udWxsCkBAIC0xLDIxICswLDAgQEAKLS0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQotTUlJRFl6Q0NBaGFnQXdJQkFnSUJGekJDQmdrcWhraUc5dzBCQVFvd05hQVBNQTBHQ1dDR1NBRmxBd1FDQXdVQQotb1J3d0dnWUpLb1pJaHZjTkFRRUlNQTBHQ1dDR1NBRmxBd1FDQXdVQW9nUUNBZ0MrTURzeEN6QUpCZ05WQkFZVAotQWs1TU1SRXdEd1lEVlFRS0RBaFFiMnhoY2xOVFRERVpNQmNHQTFVRUF3d1FVRzlzWVhKVFUwd2dWR1Z6ZENCRAotUVRBZUZ3MHlNekExTVRjd056RXdNemRhRncwek16QTFNVFF3TnpFd016ZGFNRFF4Q3pBSkJnTlZCQVlUQWs1TQotTVJFd0R3WURWUVFLREFoUWIyeGhjbE5UVERFU01CQUdBMVVFQXd3SmJHOWpZV3hvYjNOME1JR2ZNQTBHQ1NxRwotU0liM0RRRUJBUVVBQTRHTkFEQ0JpUUtCZ1FEZEVZcWZtYnF3YU1vcTZqdHFiVm1YN1U3SlZPUU43czZnZmFBZQotcXVnT3dyc1RRTnVLRW82SkV5U2x4Zlg2MlBXUTE4akt5OFgra3gydjJoSWpjMUo1UmhxNm9GY3JkaFl4czZpdgotNXppYkNJdGptVG9LSmU1RjBoaFl1cm1UR3UzVVdKcGpHemY4OXhRSW40VmxTZk5aTW0zUjRPaHQzbEx0WnJTcAotQzlwQWxRSURBUUFCbzRHU01JR1BNQWtHQTFVZEV3UUNNQUF3SFFZRFZSME9CQllFRk83engvVWZGYVZOUjRuQgotMHlKanN0K256cjFSTUdNR0ExVWRJd1JjTUZxQUZMUmE1S1d6M3RKUzlyblZwcFVQNno2OHgvMy9vVCtrUFRBNwotTVFzd0NRWURWUVFHRXdKT1RERVJNQThHQTFVRUNnd0lVRzlzWVhKVFUwd3hHVEFYQmdOVkJBTU1FRkJ2YkdGeQotVTFOTUlGUmxjM1FnUTBHQ0FRTXdRZ1lKS29aSWh2Y05BUUVLTURXZ0R6QU5CZ2xnaGtnQlpRTUVBZ01GQUtFYwotTUJvR0NTcUdTSWIzRFFFQkNEQU5CZ2xnaGtnQlpRTUVBZ01GQUtJRUFnSUF2Z09DQVFFQVZ1dDlvTC8wVi92bwotZjlWS3hBWmZ5eTB6RnkrTE9IelYxSDVxUWFQS0puWElBVXAvc0R0dk9qdWdxSEtqYW1nNmRDSVZ5MjkyWXhjeAotclc4V2NNUjFCajlNUTVRcnYrK1RaMGExZTBxZXQxR1l4ajRNUWtVMzBYbEpxL0poN2VkZTlWaC95QnhLVFFxNwotb2FKNmZPVEZXY3oxSlpEclpyS2ZmQk9xSXA1alFXUEFSaWxVRE42RmlSTllWMy8xNGFXVkduTmJxR2ZvWThDQwotV3ZwQzBpQXZyUXhqZFFRZjZuSVlyemNHTnp2cnBSYmhwekJQVXlVSXJNMW8rbnlpTkFKUGx5bmNqRndtZnc5ZwotODBGUDFYblJJSUttbFRURzdpdmtqSEt6RTZXWFpTUVBqQXJnMGp4UUFYMXVMS0pHRmh1K3VlS3lvUE9IUVhTMAotTzF6M09RbjMrdz09Ci0tLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCmRpZmYgLS1naXQgYS90ZXN0cy9kYXRhX2ZpbGVzL3NlcnZlcjktd2l0aC1jYS5jcnQgYi90ZXN0cy9kYXRhX2ZpbGVzL3NlcnZlcjktd2l0aC1jYS5jcnQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDUxYzBhZGEuLjAwMDAwMDAKLS0tIGEvdGVzdHMvZGF0YV9maWxlcy9zZXJ2ZXI5LXdpdGgtY2EuY3J0CisrKyAvZGV2L251bGwKQEAgLTEsMzkgKzAsMCBAQAotLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCi1NSUlEQlRDQ0FlZWdBd0lCQWdJQkZqQVRCZ2txaGtpRzl3MEJBUW93QnFJRUFnSUE2akE3TVFzd0NRWURWUVFHCi1Fd0pPVERFUk1BOEdBMVVFQ2d3SVVHOXNZWEpUVTB3eEdUQVhCZ05WQkFNTUVGQnZiR0Z5VTFOTUlGUmxjM1FnCi1RMEV3SGhjTk1qTXdOVEUzTURnd05EQXdXaGNOTXpNd05URTNNRGd3TkRBd1dqQTBNUXN3Q1FZRFZRUUdFd0pPCi1UREVSTUE4R0ExVUVDZ3dJVUc5c1lYSlRVMHd4RWpBUUJnTlZCQU1NQ1d4dlkyRnNhRzl6ZERDQm56QU5CZ2txCi1oa2lHOXcwQkFRRUZBQU9CalFBd2dZa0NnWUVBM1JHS241bTZzR2pLS3VvN2FtMVpsKzFPeVZUa0RlN09vSDJnCi1IcXJvRHNLN0UwRGJpaEtPaVJNa3BjWDErdGoxa05mSXlzdkYvcE1kcjlvU0kzTlNlVVlhdXFCWEszWVdNYk9vCi1yK2M0bXdpTFk1azZDaVh1UmRJWVdMcTVreHJ0MUZpYVl4czMvUGNVQ0orRlpVbnpXVEp0MGVEb2JkNVM3V2EwCi1xUXZhUUpVQ0F3RUFBYU9Ca2pDQmp6QWRCZ05WSFE0RUZnUVU3dlBIOVI4VnBVMUhpY0hUSW1PeTM2Zk92VkV3Ci1Zd1lEVlIwakJGd3dXb0FVdEZya3BiUGUwbEwydWRXbWxRL3JQcnpIL2YraFA2UTlNRHN4Q3pBSkJnTlZCQVlUCi1BazVNTVJFd0R3WURWUVFLREFoUWIyeGhjbE5UVERFWk1CY0dBMVVFQXd3UVVHOXNZWEpUVTB3Z1ZHVnpkQ0JECi1RWUlCQXpBSkJnTlZIUk1FQWpBQU1CTUdDU3FHU0liM0RRRUJDakFHb2dRQ0FnRHFBNElCQVFDMkRMSFEwNXg2Ci1pbUpOenRFL1Ruay9sUFEwMVB3NkdpcmRiazRiZ3hjR3dHaisxdTV3QUlITnBKNTBUT2dnZzNIeFR5YjdwMzQ0Ci0vdFZNeHo3bnJIWlE1QVNkbjJrREN5Q21FcWhtajQ4aXNXQUltbCs3SjljQmVJbUpvRWZZcWp0cXRvVmtHeEZ5Ci1TdW9aQVFXa2txRHB5RmhLaElqTFE4SnVTRTZ3V01YL2tjNlRGU1N4ZXBuWlUxU0ZPWGZDaWFWcjV0RlF6QlA3Ci1sb3BwSUFOTGpLZU1qcE9kVTg2UG1SUTJMeXphQ0gxT01ualZuZGVxTm1adDBOeXpaMThjRlB2bTYrRFZWVnVQCi1RKzZuUmVTaENkQWxVK2RKcXNxajhKc1FuZU5NVHhqdjRPQm9YVm1FL2taVGovREJUdHdteGtWaTdLNGFZTUZpCi1VWVVaNFJpd0cxLzcKLS0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KLS0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQotTUlJRFJEQ0NBaXlnQXdJQkFnSUJBekFOQmdrcWhraUc5dzBCQVFVRkFEQTdNUXN3Q1FZRFZRUUdFd0pPVERFUgotTUE4R0ExVUVDZ3dJVUc5c1lYSlRVMHd4R1RBWEJnTlZCQU1NRUZCdmJHRnlVMU5NSUZSbGMzUWdRMEV3SGhjTgotTVRrd01qRXdNVFEwTkRBd1doY05Namt3TWpFd01UUTBOREF3V2pBN01Rc3dDUVlEVlFRR0V3Sk9UREVSTUE4RwotQTFVRUNnd0lVRzlzWVhKVFUwd3hHVEFYQmdOVkJBTU1FRkJ2YkdGeVUxTk1JRlJsYzNRZ1EwRXdnZ0VpTUEwRwotQ1NxR1NJYjNEUUVCQVFVQUE0SUJEd0F3Z2dFS0FvSUJBUURBM3pmOEY3dmdscDAvaHQ2V01uMUVwUmFnelNIeAotbWRUczZzdDhHRmdJbEtYc204V0wzeG9lbVRpWmh4NTd3STA1M3poZGNIZ0gwNTdaaytpNWNsSEZ6cU13VXFueQotNTBCd0ZNdEVvbklMd3VWQStUN2xwZzZ6K2V4S1k4QzRLUUIwbkZjN3FLVUVrSEh4dllQWlA5YWw0andxais4bgotWU1QR244dTY3R0I5dCthRU1yNVArMWdtSWdOYjFMVFYrL1hqbGk1d3dPUXV2Znd1N3VKQlZjQTBMbjBrY21uTAotUjdFVVFJTjlaL1NHOWpHcjhYbWtzclV1RXZtRUYvQmlieWMrRTFpeFZBMGhtbk0zb1REUGI1TGM5dW44ck5zdQotS05GK0Frc2pvQlh5T0dWa0Nlb01ibzRiRjZCeHlMT2J5YXZwdy9MUGg1YVBnQUl5bnBsWWI2TFZBZ01CQUFHagotVXpCUk1BOEdBMVVkRXdFQi93UUZNQU1CQWY4d0hRWURWUjBPQkJZRUZMUmE1S1d6M3RKUzlyblZwcFVQNno2OAoteC8zL01COEdBMVVkSXdRWU1CYUFGTFJhNUtXejN0SlM5cm5WcHBVUDZ6Njh4LzMvTUEwR0NTcUdTSWIzRFFFQgotQlFVQUE0SUJBUUN6NTU3WlptV3Y1VVRUSGVielR5VnprdTVsZHBjaWNKUHFLSFAzeFo0dFBQWTUySlF5SmcvVAotaHNSQjQ0eVR5Tm8zL2pvOW9yMktnVm5jKy9uQ21ubHZUcTIyYS9qMjZEdEtaN3dEOU1XeHVucGtxUndFeHRBLwotRzgxNm1zcmw2WDZtNTBXd2RMWFR2YVZKR1hDWXA4VFBWTHg1WVkzV1BJVm9YMENQTjdIczlpTkpOaUVXbzRRZgotN2RBcWpXQkIvUXB1c21XaGphRFNjNCtjRmhUMjRZbzlIdVMxeXJrVVRyQnRKYWowQXlrVHNpeUZtNlNCVkROSAotOVhJeENnWXk5UXJZYkRLTnRKWGh1ZXZwTjB5VU1WL2FVbklrVTJ3VFRvdWhPelppc2pOazBzUzFndXFtU0h6ZgotaGxmOHFvdE9oTnZGWHBFc0NHd1pVeXdheW83YzREdE8KLS0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KZGlmZiAtLWdpdCBhL3Rlc3RzL2RhdGFfZmlsZXMvc2VydmVyOS5jcnQgYi90ZXN0cy9kYXRhX2ZpbGVzL3NlcnZlcjkuY3J0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyNjU2N2FlLi4wMDAwMDAwCi0tLSBhL3Rlc3RzL2RhdGFfZmlsZXMvc2VydmVyOS5jcnQKKysrIC9kZXYvbnVsbApAQCAtMSwxOSArMCwwIEBACi0tLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KLU1JSURCVENDQWVlZ0F3SUJBZ0lCRmpBVEJna3Foa2lHOXcwQkFRb3dCcUlFQWdJQTZqQTdNUXN3Q1FZRFZRUUcKLUV3Sk9UREVSTUE4R0ExVUVDZ3dJVUc5c1lYSlRVMHd4R1RBWEJnTlZCQU1NRUZCdmJHRnlVMU5NSUZSbGMzUWcKLVEwRXdIaGNOTWpNd05URTNNRGd3TkRBd1doY05Nek13TlRFM01EZ3dOREF3V2pBME1Rc3dDUVlEVlFRR0V3Sk8KLVRERVJNQThHQTFVRUNnd0lVRzlzWVhKVFUwd3hFakFRQmdOVkJBTU1DV3h2WTJGc2FHOXpkRENCbnpBTkJna3EKLWhraUc5dzBCQVFFRkFBT0JqUUF3Z1lrQ2dZRUEzUkdLbjVtNnNHaktLdW83YW0xWmwrMU95VlRrRGU3T29IMmcKLUhxcm9Ec0s3RTBEYmloS09pUk1rcGNYMSt0ajFrTmZJeXN2Ri9wTWRyOW9TSTNOU2VVWWF1cUJYSzNZV01iT28KLXIrYzRtd2lMWTVrNkNpWHVSZElZV0xxNWt4cnQxRmlhWXhzMy9QY1VDSitGWlVueldUSnQwZURvYmQ1UzdXYTAKLXFRdmFRSlVDQXdFQUFhT0JrakNCanpBZEJnTlZIUTRFRmdRVTd2UEg5UjhWcFUxSGljSFRJbU95MzZmT3ZWRXcKLVl3WURWUjBqQkZ3d1dvQVV0RnJrcGJQZTBsTDJ1ZFdtbFEvclByekgvZitoUDZROU1Ec3hDekFKQmdOVkJBWVQKLUFrNU1NUkV3RHdZRFZRUUtEQWhRYjJ4aGNsTlRUREVaTUJjR0ExVUVBd3dRVUc5c1lYSlRVMHdnVkdWemRDQkQKLVFZSUJBekFKQmdOVkhSTUVBakFBTUJNR0NTcUdTSWIzRFFFQkNqQUdvZ1FDQWdEcUE0SUJBUUMyRExIUTA1eDYKLWltSk56dEUvVG5rL2xQUTAxUHc2R2lyZGJrNGJneGNHd0dqKzF1NXdBSUhOcEo1MFRPZ2dnM0h4VHliN3AzNDQKLS90Vk14ejduckhaUTVBU2RuMmtEQ3lDbUVxaG1qNDhpc1dBSW1sKzdKOWNCZUltSm9FZllxanRxdG9Wa0d4RnkKLVN1b1pBUVdra3FEcHlGaEtoSWpMUThKdVNFNndXTVgva2M2VEZTU3hlcG5aVTFTRk9YZkNpYVZyNXRGUXpCUDcKLWxvcHBJQU5MaktlTWpwT2RVODZQbVJRMkx5emFDSDFPTW5qVm5kZXFObVp0ME55eloxOGNGUHZtNitEVlZWdVAKLVErNm5SZVNoQ2RBbFUrZEpxc3FqOEpzUW5lTk1UeGp2NE9Cb1hWbUUva1pUai9EQlR0d214a1ZpN0s0YVlNRmkKLVVZVVo0Uml3RzEvNwotLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQpkaWZmIC0tZ2l0IGEvdGVzdHMvZGF0YV9maWxlcy9zZXJ2ZXI5LmtleSBiL3Rlc3RzL2RhdGFfZmlsZXMvc2VydmVyOS5rZXkKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGUwMDU4NjQuLjAwMDAwMDAKLS0tIGEvdGVzdHMvZGF0YV9maWxlcy9zZXJ2ZXI5LmtleQorKysgL2Rldi9udWxsCkBAIC0xLDE1ICswLDAgQEAKLS0tLS0tQkVHSU4gUlNBIFBSSVZBVEUgS0VZLS0tLS0KLU1JSUNYUUlCQUFLQmdRRGRFWXFmbWJxd2FNb3E2anRxYlZtWDdVN0pWT1FON3M2Z2ZhQWVxdWdPd3JzVFFOdUsKLUVvNkpFeVNseGZYNjJQV1ExOGpLeThYK2t4MnYyaElqYzFKNVJocTZvRmNyZGhZeHM2aXY1emliQ0l0am1Ub0sKLUplNUYwaGhZdXJtVEd1M1VXSnBqR3pmODl4UUluNFZsU2ZOWk1tM1I0T2h0M2xMdFpyU3BDOXBBbFFJREFRQUIKLUFvR0FIRkNFMnRCTDB4QjQ1R28vMWUvUGk5Ly9PVlpBSjNDdzBtbUV1cWpWTkI3STZ6eGhZaHZpV2JnejkyK1YKLWc5MktCbFU5Q0l4MC9aaEdNeUhSTk8wdVlORVpVSnlNOHpJdG9vL25tVTMxK1ZhSE9HZ3BlaTA0SFpybjFObXcKLVFTMDFGVnJuOXd6S1IvNXFlRUJteEU3clZNRFFvOFFMbmxsQzNqWHpJVlV0WDRFQ1FRRDJnOWRsZVdZYnFJUWUKLVE5cGFYeHp2T0RoQ3pOdFF3RDBQbk9LYzU0TnU0em0zSkk0NVJFdHVubUc4ZXQrTmNtczlSeWNUak5sV1BHSlQKLTYyamdhSmV4QWtFQTVaTU52NHU5Tk5SZlpwcm1sTnl2alNPZit3N2ZkS3poY25rSGJHa2ZMbkZkYzd2cTBYRkMKLW53T1JzZGpwT3ZXUVV3clYyQ3c4UGw0ckthNEI0aXFVSlFKQkFNVnRpNm1hVTN1ZE44cWhYeFAzanMzTHdjdEcKLUUvT1ZNcEg1Zk1oYTVqbDl3L0I0VjJ0bjFkM08vTW1kd3NLZXUySkZSUGQwVzIra1JyK2REczZERmRFQ1FRQzEKLTNnOVFKUldZMm4xUlBYbFppSktTRHh6WHVPcVE5YndNQVpFOTh2RSt5NVFxOFQyTytsaTZ2QXNaaHlzTkNDaHoKLWdPdnp1dWRteVJjTWg4cjZMcHo1QWtBVUtLM2dZdEpGaVZIMmFyUmlnM0pqWkpxaXhnU1RvbE1UMW4rSEc0dU0KLXRuQnFCaUVCVndCeEVxYW9obGEvckhSNWpvWkNkY0ROOHhxMHllVFF5TEg5Ci0tLS0tLUVORCBSU0EgUFJJVkFURSBLRVktLS0tLQpkaWZmIC0tZ2l0IGEvdGVzdHMvZGF0YV9maWxlcy9zaW1wbGVwYXNzLnBzayBiL3Rlc3RzL2RhdGFfZmlsZXMvc2ltcGxlcGFzcy5wc2sKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDkzZTdhYjQuLjAwMDAwMDAKLS0tIGEvdGVzdHMvZGF0YV9maWxlcy9zaW1wbGVwYXNzLnBzaworKysgL2Rldi9udWxsCkBAIC0xICswLDAgQEAKLTBhMGIwYzowMTAyMDMKZGlmZiAtLWdpdCBhL3Rlc3RzL2RhdGFfZmlsZXMvdGVzdC1jYS1hbHQtZ29vZC5jcnQgYi90ZXN0cy9kYXRhX2ZpbGVzL3Rlc3QtY2EtYWx0LWdvb2QuY3J0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlZWJlY2Q2Li4wMDAwMDAwCi0tLSBhL3Rlc3RzL2RhdGFfZmlsZXMvdGVzdC1jYS1hbHQtZ29vZC5jcnQKKysrIC9kZXYvbnVsbApAQCAtMSw0MSArMCwwIEBACi0tLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KLU1JSURoekNDQW0rZ0F3SUJBZ0lCQURBTkJna3Foa2lHOXcwQkFRc0ZBREE3TVFzd0NRWURWUVFHRXdKT1RERVIKLU1BOEdBMVVFQ2d3SVVHOXNZWEpUVTB3eEdUQVhCZ05WQkFNTUVGQnZiR0Z5VTFOTUlGUmxjM1FnUTBFd0hoY04KLU1Ua3dNakV4TVRJd016STVXaGNOTWprd01qRXhNVEl3TXpJNVdqQTdNUXN3Q1FZRFZRUUdFd0pPVERFUk1BOEcKLUExVUVDZ3dJVUc5c1lYSlRVMHd4R1RBWEJnTlZCQU1NRUZCdmJHRnlVMU5NSUZSbGMzUWdRMEV3Z2dFaU1BMEcKLUNTcUdTSWIzRFFFQkFRVUFBNElCRHdBd2dnRUtBb0lCQVFEVk1HVS9TU2NLWHh5eHdKZmN4TDR4U25rU3FmdmsKLUYrM2pjektVK2Q1TWxLY2l2a1A5Um0vd0xFS0FjRkp4RzhFQ1pNSGh4eFQ4WUQrRFNVRUE1U0kyRzJ4RnU4NGYKLW1OQ0tQNG9qY0JyekxWWXVHZytEK3ZycDZtaTlRNTFUSU14UWF3eGtZdVU4OXY5UjlSZVFvcndvREdBU3JUcEMKLTZiQnZYaU1ua0Z4RmxwTjA3amtvVWozNCs2dkwyMzUwZ1JYR1VHbk1jZlM0ZTEzUDJTbTJLUlJ2eXBwejhDa1QKLXlHMVd0YTNJeGViN0V1WnNtc2RUUHMzbmwrYkkvNmdjZnJoT09tV1BKVkdpQk52TTRZcEN4c25ickZzVDhVMGsKLXMxWXMrMUpTVngwZWt6UkFVVENzN0FCNkxvL2lwaHNUSnMzQmZ2VDV3OFBTeDh3dHN2YmMvMWRMQWdNQkFBR2oKLWdaVXdnWkl3SFFZRFZSME9CQllFRklZSEk0amlpLzRDWXY0cVkrbnczeW5XbFFKSU1HTUdBMVVkSXdSY01GcUEKLUZJWUhJNGppaS80Q1l2NHFZK253M3luV2xRSklvVCtrUFRBN01Rc3dDUVlEVlFRR0V3Sk9UREVSTUE4R0ExVUUKLUNnd0lVRzlzWVhKVFUwd3hHVEFYQmdOVkJBTU1FRkJ2YkdGeVUxTk1JRlJsYzNRZ1EwR0NBUUF3REFZRFZSMFQKLUJBVXdBd0VCL3pBTkJna3Foa2lHOXcwQkFRc0ZBQU9DQVFFQUJQR1p3c3llSE5wOGhLcW5PSWFmUXNpNHpyRVMKLWl6SVVudGZrQ2dsZ0hLZytjZG16cVV5WHJ0ZnJ3Y1ZKdHovZmFyZlZvb2VSZGZZNmtPWU5tVGloWWRIaWZmb1gKLTV0T2hZVjFSaCtleEQ0bXRsMnhodzY5WVBYa1VURFN0elFUVFR4Wi95SXhXcW1ZZHJaeWNteXdNNnYxSHhkemsKLUpudnRoVHZFdGhXZnJTZE1RMnNzZHFWZ0IwaC9XWnp0QkNaaExMMm1DQ0cvZU51KzVrdEpUTEZEZGpwL0lQcm4KLS9BUFF0N0dqUTFyRkZtUkFlT0hlenNTSU5oUUhqSDQ0RGlNZUwrbFU2Nm5VeFNyb3ZyVm9JMnVuZHdCWHBsMTgKLSs3L29hK2V0NisxVWt0TjY2OVAxQm5OeExmWTZKNDFQNzkrUyttQThnUDRFQTk1L0FPYlF5b1VQcHc9PQotLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQotLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCi1NSUlEUVRDQ0FpbWdBd0lCQWdJQkF6QU5CZ2txaGtpRzl3MEJBUXNGQURBN01Rc3dDUVlEVlFRR0V3Sk9UREVSCi1NQThHQTFVRUNnd0lVRzlzWVhKVFUwd3hHVEFYQmdOVkJBTU1FRkJ2YkdGeVUxTk1JRlJsYzNRZ1EwRXdIaGNOCi1NVGt3TWpFd01UUTBOREF3V2hjTk1qa3dNakV3TVRRME5EQXdXakE3TVFzd0NRWURWUVFHRXdKT1RERVJNQThHCi1BMVVFQ2d3SVVHOXNZWEpUVTB3eEdUQVhCZ05WQkFNTUVGQnZiR0Z5VTFOTUlGUmxjM1FnUTBFd2dnRWlNQTBHCi1DU3FHU0liM0RRRUJBUVVBQTRJQkR3QXdnZ0VLQW9JQkFRREEzemY4Rjd2Z2xwMC9odDZXTW4xRXBSYWd6U0h4Ci1tZFRzNnN0OEdGZ0lsS1hzbThXTDN4b2VtVGlaaHg1N3dJMDUzemhkY0hnSDA1N1prK2k1Y2xIRnpxTXdVcW55Ci01MEJ3Rk10RW9uSUx3dVZBK1Q3bHBnNnorZXhLWThDNEtRQjBuRmM3cUtVRWtISHh2WVBaUDlhbDRqd3FqKzhuCi1ZTVBHbjh1NjdHQjl0K2FFTXI1UCsxZ21JZ05iMUxUVisvWGpsaTV3d09RdXZmd3U3dUpCVmNBMExuMGtjbW5MCi1SN0VVUUlOOVovU0c5akdyOFhta3NyVXVFdm1FRi9CaWJ5YytFMWl4VkEwaG1uTTNvVERQYjVMYzl1bjhyTnN1Ci1LTkYrQWtzam9CWHlPR1ZrQ2VvTWJvNGJGNkJ4eUxPYnlhdnB3L0xQaDVhUGdBSXlucGxZYjZMVkFnTUJBQUdqCi1VREJPTUF3R0ExVWRFd1FGTUFNQkFmOHdIUVlEVlIwT0JCWUVGTFJhNUtXejN0SlM5cm5WcHBVUDZ6Njh4LzMvCi1NQjhHQTFVZEl3UVlNQmFBRkxSYTVLV3ozdEpTOXJuVnBwVVA2ejY4eC8zL01BMEdDU3FHU0liM0RRRUJDd1VBCi1BNElCQVFBNHFGU0N0aDJxMjJ1SklkRTRLR0hKc0pqVkVmdzIveG4rTWtUdkNNZnhWcnZtUnZxQ3RqRTR0S0RsCi1vSzRNeEZPZWswN29EWnd2dEFUOWlqbjFoSGZ0VE5TN1JIOXpkL2Z4TnBmY0huTVpYVkM0dzRETkExZlNBTnRXCi01c1kxSkI1SmU5alNjcnNMU1MrbUFqeXYwT3czSGIyQml4OHd1N3hOTnJWNWZJZjdVYm0rd3Q2U3FFQnh1M0tiCi0rRWZPYkFUNGh1ZjNjenpuaEgzQzE3ZWQ2TlNiWHdvWGZieTdzdFdVRGVSSnYwOFJhRk95a2YvQWFlN2JZNVBMCi15VFZya0FuaWtNbnRKOVlJK2hOTll0M2lucXExMUE1Y04wK3JWVHN0OFVLQ3h6UTRHcHZyb1N3UEtURmtiTXc0Ci0vYW5UMWRWeHIvQnR3SmZpRVNvSzMvNENlWFIxCi0tLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCmRpZmYgLS1naXQgYS90ZXN0cy9kYXRhX2ZpbGVzL3Rlc3QtY2EtYWx0LmNydCBiL3Rlc3RzL2RhdGFfZmlsZXMvdGVzdC1jYS1hbHQuY3J0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0ZGFkM2MzLi4wMDAwMDAwCi0tLSBhL3Rlc3RzL2RhdGFfZmlsZXMvdGVzdC1jYS1hbHQuY3J0CisrKyAvZGV2L251bGwKQEAgLTEsMjEgKzAsMCBAQAotLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCi1NSUlEaHpDQ0FtK2dBd0lCQWdJQkFEQU5CZ2txaGtpRzl3MEJBUXNGQURBN01Rc3dDUVlEVlFRR0V3Sk9UREVSCi1NQThHQTFVRUNnd0lVRzlzWVhKVFUwd3hHVEFYQmdOVkJBTU1FRkJ2YkdGeVUxTk1JRlJsYzNRZ1EwRXdIaGNOCi1NVGt3TWpFeE1USXdNekk1V2hjTk1qa3dNakV4TVRJd016STVXakE3TVFzd0NRWURWUVFHRXdKT1RERVJNQThHCi1BMVVFQ2d3SVVHOXNZWEpUVTB3eEdUQVhCZ05WQkFNTUVGQnZiR0Z5VTFOTUlGUmxjM1FnUTBFd2dnRWlNQTBHCi1DU3FHU0liM0RRRUJBUVVBQTRJQkR3QXdnZ0VLQW9JQkFRRFZNR1UvU1NjS1h4eXh3SmZjeEw0eFNua1NxZnZrCi1GKzNqY3pLVStkNU1sS2NpdmtQOVJtL3dMRUtBY0ZKeEc4RUNaTUhoeHhUOFlEK0RTVUVBNVNJMkcyeEZ1ODRmCi1tTkNLUDRvamNCcnpMVll1R2crRCt2cnA2bWk5UTUxVElNeFFhd3hrWXVVODl2OVI5UmVRb3J3b0RHQVNyVHBDCi02YkJ2WGlNbmtGeEZscE4wN2prb1VqMzQrNnZMMjM1MGdSWEdVR25NY2ZTNGUxM1AyU20yS1JSdnlwcHo4Q2tUCi15RzFXdGEzSXhlYjdFdVpzbXNkVFBzM25sK2JJLzZnY2ZyaE9PbVdQSlZHaUJOdk00WXBDeHNuYnJGc1Q4VTBrCi1zMVlzKzFKU1Z4MGVrelJBVVRDczdBQjZMby9pcGhzVEpzM0JmdlQ1dzhQU3g4d3RzdmJjLzFkTEFnTUJBQUdqCi1nWlV3Z1pJd0hRWURWUjBPQkJZRUZJWUhJNGppaS80Q1l2NHFZK253M3luV2xRSklNR01HQTFVZEl3UmNNRnFBCi1GSVlISTRqaWkvNENZdjRxWStudzN5bldsUUpJb1Qra1BUQTdNUXN3Q1FZRFZRUUdFd0pPVERFUk1BOEdBMVVFCi1DZ3dJVUc5c1lYSlRVMHd4R1RBWEJnTlZCQU1NRUZCdmJHRnlVMU5NSUZSbGMzUWdRMEdDQVFBd0RBWURWUjBUCi1CQVV3QXdFQi96QU5CZ2txaGtpRzl3MEJBUXNGQUFPQ0FRRUFCUEdad3N5ZUhOcDhoS3FuT0lhZlFzaTR6ckVTCi1peklVbnRma0NnbGdIS2crY2RtenFVeVhydGZyd2NWSnR6L2ZhcmZWb29lUmRmWTZrT1lObVRpaFlkSGlmZm9YCi01dE9oWVYxUmgrZXhENG10bDJ4aHc2OVlQWGtVVERTdHpRVFRUeFoveUl4V3FtWWRyWnljbXl3TTZ2MUh4ZHprCi1KbnZ0aFR2RXRoV2ZyU2RNUTJzc2RxVmdCMGgvV1p6dEJDWmhMTDJtQ0NHL2VOdSs1a3RKVExGRGRqcC9JUHJuCi0vQVBRdDdHalExckZGbVJBZU9IZXpzU0lOaFFIakg0NERpTWVMK2xVNjZuVXhTcm92clZvSTJ1bmR3QlhwbDE4Ci0rNy9vYStldDYrMVVrdE42NjlQMUJuTnhMZlk2SjQxUDc5K1MrbUE4Z1A0RUE5NS9BT2JReW9VUHB3PT0KLS0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KZGlmZiAtLWdpdCBhL3Rlc3RzL2RhdGFfZmlsZXMvdGVzdC1jYS1hbHQuY3NyIGIvdGVzdHMvZGF0YV9maWxlcy90ZXN0LWNhLWFsdC5jc3IKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDA5YmY2NzguLjAwMDAwMDAKLS0tIGEvdGVzdHMvZGF0YV9maWxlcy90ZXN0LWNhLWFsdC5jc3IKKysrIC9kZXYvbnVsbApAQCAtMSwxNiArMCwwIEBACi0tLS0tLUJFR0lOIENFUlRJRklDQVRFIFJFUVVFU1QtLS0tLQotTUlJQ2dEQ0NBV2dDQVFBd096RUxNQWtHQTFVRUJoTUNUa3d4RVRBUEJnTlZCQW9NQ0ZCdmJHRnlVMU5NTVJrdwotRndZRFZRUUREQkJRYjJ4aGNsTlRUQ0JVWlhOMElFTkJNSUlCSWpBTkJna3Foa2lHOXcwQkFRRUZBQU9DQVE4QQotTUlJQkNnS0NBUUVBMVRCbFAwa25DbDhjc2NDWDNNUytNVXA1RXFuNzVCZnQ0M015bFBuZVRKU25JcjVEL1VadgotOEN4Q2dIQlNjUnZCQW1UQjRjY1UvR0EvZzBsQkFPVWlOaHRzUmJ2T0g1alFpaitLSTNBYTh5MVdMaG9QZy9yNgotNmVwb3ZVT2RVeURNVUdzTVpHTGxQUGIvVWZVWGtLSzhLQXhnRXEwNlF1bXdiMTRqSjVCY1JaYVRkTzQ1S0ZJOQotK1B1cnk5dCtkSUVWeGxCcHpISDB1SHRkejlrcHRpa1ViOHFhYy9BcEU4aHRWcld0eU1YbSt4TG1iSnJIVXo3TgotNTVmbXlQK29ISDY0VGpwbGp5VlJvZ1Riek9HS1FzYkoyNnhiRS9GTkpMTldMUHRTVWxjZEhwTTBRRkV3ck93QQotZWk2UDRxWWJFeWJOd1g3MCtjUEQwc2ZNTGJMMjNQOVhTd0lEQVFBQm9BQXdEUVlKS29aSWh2Y05BUUVMQlFBRAotZ2dFQkFMamUweUZ0TC9JcUxpcC9YNk5WYzFvSisyUGd4T3pWaEVkWlBjUTdGK21iRGE5dzZTdlFOOXBINEhYcAotUDhBR0xZbnpRZ21BbGhzU09uN25oSlNmUVhsY3VMZEEvb1ZqaHVScWlBK1pybEJ5ZU1mU2lhQm1DdkxPV2t3bAotRnpGKy84SEpSbFY4QjBtcTBkSUUzcFdjekFWRmNUeFJ0SU9OVWZtZzNwMFJXWWtkZzh5MlMzSDFuN09QS21NMAotRE5DMm8yMjZaRkpFRFZzUUhma0ZuM1lPNkhGTHJQUmk1anFUR2dpTlJIN0tlcFp0cHB1NTlaQUFIbVl6SDAydgotUENyeEQxTUlNQ3BGZlZUYmRmUGdDMFM4VEZZOEdPNUgwR3p5Mml4YUpWc3QyUnd1R2JwLzNESzVpeER1bFY0UgotemJkNXFjUzNSWEU1ZVFiNkx3d056T1VwcUx3PQotLS0tLS1FTkQgQ0VSVElGSUNBVEUgUkVRVUVTVC0tLS0tCmRpZmYgLS1naXQgYS90ZXN0cy9kYXRhX2ZpbGVzL3Rlc3QtY2EtYWx0LmtleSBiL3Rlc3RzL2RhdGFfZmlsZXMvdGVzdC1jYS1hbHQua2V5CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3ZGYxOWEwLi4wMDAwMDAwCi0tLSBhL3Rlc3RzL2RhdGFfZmlsZXMvdGVzdC1jYS1hbHQua2V5CisrKyAvZGV2L251bGwKQEAgLTEsMjcgKzAsMCBAQAotLS0tLS1CRUdJTiBSU0EgUFJJVkFURSBLRVktLS0tLQotTUlJRXBRSUJBQUtDQVFFQTFUQmxQMGtuQ2w4Y3NjQ1gzTVMrTVVwNUVxbjc1QmZ0NDNNeWxQbmVUSlNuSXI1RAotL1VadjhDeENnSEJTY1J2QkFtVEI0Y2NVL0dBL2cwbEJBT1VpTmh0c1Jidk9INWpRaWorS0kzQWE4eTFXTGhvUAotZy9yNjZlcG92VU9kVXlETVVHc01aR0xsUFBiL1VmVVhrS0s4S0F4Z0VxMDZRdW13YjE0ako1QmNSWmFUZE80NQotS0ZJOStQdXJ5OXQrZElFVnhsQnB6SEgwdUh0ZHo5a3B0aWtVYjhxYWMvQXBFOGh0VnJXdHlNWG0reExtYkpySAotVXo3TjU1Zm15UCtvSEg2NFRqcGxqeVZSb2dUYnpPR0tRc2JKMjZ4YkUvRk5KTE5XTFB0U1VsY2RIcE0wUUZFdwotck93QWVpNlA0cVliRXliTndYNzArY1BEMHNmTUxiTDIzUDlYU3dJREFRQUJBb0lCQUhPMS84NDRzMEx5MnMwegotdm5scUk5ejNFZjNxV3ppek1FQTZ2MktTdUhDU1lxRDk2a01uSHd5WnlVS1ROSHdGMTEyb09IK0dJY0xWcnNOZwotV0RMWEt4bDVDdXhTZ2c4dVQwb3FNSjBKZE9jMlhVZEtoODlYd3lhQlAzWXlvOHFCeThOK1JzeVp6TmlwSzIxZAotZlB2WkNBMG9vbUNndXpXa1IwbzdLeE9IVEQzTC9aR3dpcU9xek1SZmFSem5MeGpzWlozUm9ORjFma21YdGRYSAotSStUOHJXeEZlWllOM0xhUkkvdmlDUEY4eVlnRlV2T1BMMVI5WXpxNVovalN5eVVQTitJaFNxTC96Yi9OeUxpWQotdHRkd21NQS95YWNrQ2hsZnAwNkQ0WGxyYmYyaEZ4bXZuQ25FNGJoL0NJTmhqZmpLeXo4OEtVQUtSOXhFUWlmYwotRkFiNUN6a0NnWUVBOS81aGxTQXFSNmd1ZjVvcno5amdxaGFOY1dHcFUzcnpZbVVsSVNGaHpBcnltNDF3NGE0YQotOXJBaTVRRXJhRUExV1IvWW1yNVh2dDdtcXdLbEdrYUt3eVBiVnFkWEZPYVFwMnZLWk5QbUhXYkxWWVc0OUladAotaHg1Q3JlTXB5MGxWVTJTTEEvK2cvRFBzZTJ3eDg1d2d4OGtwdWRFbVU5MVRodXhCZEYwSUhyMENnWUVBM0JKYwotWS9wcUF3OWZsdXZsWXBnQXlHeUcwazhkM3hiMHVVblYxdStydk1aaU9pSlFlck5hd01jL1BvWWtoaFJQS1hrTQotRFFTOG9NTTg1OGtnVDFxQ2N2RlpaeldEcUdoUnFieG10akoydzFuV0lpOXErMHowL1g5cWJ4aVpiWnIwSWtseAotTWVZdFF1UklHb2lzL0Q3R1FqeUk1ckhYVmo5azNiMzlwZXBTRXFjQ2dZRUExQUh4dElaQi91NkZpZXJvUjVFMgotUjlKdDZ4ODluYk4vdkgrUnBXZ2Zia3R4cW8vWmorWERBV0FGQk5maUh3YTlWTXNINXdxUWd3bVdFMTU0ZlNVUAotWGRJYW9sTCsvRXc4SUJUamV4MDRIYXlTYWpPZXNkVDJiOHZyM3pKVHVZbWcyMkVhQXpvWGkyUnNaL3RRSE40OQotbSs2YXNGTmdPOVA3bzEzNGV4MUpZdFVDZ1lFQXVVMmdpL0tiOXkybnNIMjY3VFRPVy9TOTVUSUhGZ1RQVllFdAotVk1rRVUzUzcydlZ2ekpGZTFqb3ZMNmRsODV3QU9BeWJzQTZRQWRIRFkrdi9qN0hIYTU5N1J5TlJVNmxiTWMvWQotc0l0M1l2QXZGU1BXTWZuUHcrL1luK2tYcjZtczdYM25tVHVXV3QrN010Um96QkRUZ1l4VlBlTDdUYjBkWW5VSwotc2Z6RzFMc0NnWUVBdnhoTEpIWVRLdGp1czhoL3hWcGozS3RvMGowQXZ0WHRkMURVc1Eya0tHUlQvQjFBRmJWcwotelNOalI0dkpnK2lvdGJpSXE2SkJ4SHlXeFpzSFFVTklYam9UcUVnUXBCYm5lRW5iMWlsTzFERUdESzd2d2xGbgotTTR0SGk1bmVFaUdJNTVXUWR1SjJoYS90YzBLYkRjeHcvVkJaQW1LVm1wZVhhVU5aQWlNTUZCMD0KLS0tLS0tRU5EIFJTQSBQUklWQVRFIEtFWS0tLS0tCmRpZmYgLS1naXQgYS90ZXN0cy9kYXRhX2ZpbGVzL3Rlc3QtY2EtZ29vZC1hbHQuY3J0IGIvdGVzdHMvZGF0YV9maWxlcy90ZXN0LWNhLWdvb2QtYWx0LmNydApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggM2QxNWVhNy4uMDAwMDAwMAotLS0gYS90ZXN0cy9kYXRhX2ZpbGVzL3Rlc3QtY2EtZ29vZC1hbHQuY3J0CisrKyAvZGV2L251bGwKQEAgLTEsNDEgKzAsMCBAQAotLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCi1NSUlEUVRDQ0FpbWdBd0lCQWdJQkF6QU5CZ2txaGtpRzl3MEJBUXNGQURBN01Rc3dDUVlEVlFRR0V3Sk9UREVSCi1NQThHQTFVRUNnd0lVRzlzWVhKVFUwd3hHVEFYQmdOVkJBTU1FRkJ2YkdGeVUxTk1JRlJsYzNRZ1EwRXdIaGNOCi1NVGt3TWpFd01UUTBOREF3V2hjTk1qa3dNakV3TVRRME5EQXdXakE3TVFzd0NRWURWUVFHRXdKT1RERVJNQThHCi1BMVVFQ2d3SVVHOXNZWEpUVTB3eEdUQVhCZ05WQkFNTUVGQnZiR0Z5VTFOTUlGUmxjM1FnUTBFd2dnRWlNQTBHCi1DU3FHU0liM0RRRUJBUVVBQTRJQkR3QXdnZ0VLQW9JQkFRREEzemY4Rjd2Z2xwMC9odDZXTW4xRXBSYWd6U0h4Ci1tZFRzNnN0OEdGZ0lsS1hzbThXTDN4b2VtVGlaaHg1N3dJMDUzemhkY0hnSDA1N1prK2k1Y2xIRnpxTXdVcW55Ci01MEJ3Rk10RW9uSUx3dVZBK1Q3bHBnNnorZXhLWThDNEtRQjBuRmM3cUtVRWtISHh2WVBaUDlhbDRqd3FqKzhuCi1ZTVBHbjh1NjdHQjl0K2FFTXI1UCsxZ21JZ05iMUxUVisvWGpsaTV3d09RdXZmd3U3dUpCVmNBMExuMGtjbW5MCi1SN0VVUUlOOVovU0c5akdyOFhta3NyVXVFdm1FRi9CaWJ5YytFMWl4VkEwaG1uTTNvVERQYjVMYzl1bjhyTnN1Ci1LTkYrQWtzam9CWHlPR1ZrQ2VvTWJvNGJGNkJ4eUxPYnlhdnB3L0xQaDVhUGdBSXlucGxZYjZMVkFnTUJBQUdqCi1VREJPTUF3R0ExVWRFd1FGTUFNQkFmOHdIUVlEVlIwT0JCWUVGTFJhNUtXejN0SlM5cm5WcHBVUDZ6Njh4LzMvCi1NQjhHQTFVZEl3UVlNQmFBRkxSYTVLV3ozdEpTOXJuVnBwVVA2ejY4eC8zL01BMEdDU3FHU0liM0RRRUJDd1VBCi1BNElCQVFBNHFGU0N0aDJxMjJ1SklkRTRLR0hKc0pqVkVmdzIveG4rTWtUdkNNZnhWcnZtUnZxQ3RqRTR0S0RsCi1vSzRNeEZPZWswN29EWnd2dEFUOWlqbjFoSGZ0VE5TN1JIOXpkL2Z4TnBmY0huTVpYVkM0dzRETkExZlNBTnRXCi01c1kxSkI1SmU5alNjcnNMU1MrbUFqeXYwT3czSGIyQml4OHd1N3hOTnJWNWZJZjdVYm0rd3Q2U3FFQnh1M0tiCi0rRWZPYkFUNGh1ZjNjenpuaEgzQzE3ZWQ2TlNiWHdvWGZieTdzdFdVRGVSSnYwOFJhRk95a2YvQWFlN2JZNVBMCi15VFZya0FuaWtNbnRKOVlJK2hOTll0M2lucXExMUE1Y04wK3JWVHN0OFVLQ3h6UTRHcHZyb1N3UEtURmtiTXc0Ci0vYW5UMWRWeHIvQnR3SmZpRVNvSzMvNENlWFIxCi0tLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCi0tLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KLU1JSURoekNDQW0rZ0F3SUJBZ0lCQURBTkJna3Foa2lHOXcwQkFRc0ZBREE3TVFzd0NRWURWUVFHRXdKT1RERVIKLU1BOEdBMVVFQ2d3SVVHOXNZWEpUVTB3eEdUQVhCZ05WQkFNTUVGQnZiR0Z5VTFOTUlGUmxjM1FnUTBFd0hoY04KLU1Ua3dNakV4TVRJd016STVXaGNOTWprd01qRXhNVEl3TXpJNVdqQTdNUXN3Q1FZRFZRUUdFd0pPVERFUk1BOEcKLUExVUVDZ3dJVUc5c1lYSlRVMHd4R1RBWEJnTlZCQU1NRUZCdmJHRnlVMU5NSUZSbGMzUWdRMEV3Z2dFaU1BMEcKLUNTcUdTSWIzRFFFQkFRVUFBNElCRHdBd2dnRUtBb0lCQVFEVk1HVS9TU2NLWHh5eHdKZmN4TDR4U25rU3FmdmsKLUYrM2pjektVK2Q1TWxLY2l2a1A5Um0vd0xFS0FjRkp4RzhFQ1pNSGh4eFQ4WUQrRFNVRUE1U0kyRzJ4RnU4NGYKLW1OQ0tQNG9qY0JyekxWWXVHZytEK3ZycDZtaTlRNTFUSU14UWF3eGtZdVU4OXY5UjlSZVFvcndvREdBU3JUcEMKLTZiQnZYaU1ua0Z4RmxwTjA3amtvVWozNCs2dkwyMzUwZ1JYR1VHbk1jZlM0ZTEzUDJTbTJLUlJ2eXBwejhDa1QKLXlHMVd0YTNJeGViN0V1WnNtc2RUUHMzbmwrYkkvNmdjZnJoT09tV1BKVkdpQk52TTRZcEN4c25ickZzVDhVMGsKLXMxWXMrMUpTVngwZWt6UkFVVENzN0FCNkxvL2lwaHNUSnMzQmZ2VDV3OFBTeDh3dHN2YmMvMWRMQWdNQkFBR2oKLWdaVXdnWkl3SFFZRFZSME9CQllFRklZSEk0amlpLzRDWXY0cVkrbnczeW5XbFFKSU1HTUdBMVVkSXdSY01GcUEKLUZJWUhJNGppaS80Q1l2NHFZK253M3luV2xRSklvVCtrUFRBN01Rc3dDUVlEVlFRR0V3Sk9UREVSTUE4R0ExVUUKLUNnd0lVRzlzWVhKVFUwd3hHVEFYQmdOVkJBTU1FRkJ2YkdGeVUxTk1JRlJsYzNRZ1EwR0NBUUF3REFZRFZSMFQKLUJBVXdBd0VCL3pBTkJna3Foa2lHOXcwQkFRc0ZBQU9DQVFFQUJQR1p3c3llSE5wOGhLcW5PSWFmUXNpNHpyRVMKLWl6SVVudGZrQ2dsZ0hLZytjZG16cVV5WHJ0ZnJ3Y1ZKdHovZmFyZlZvb2VSZGZZNmtPWU5tVGloWWRIaWZmb1gKLTV0T2hZVjFSaCtleEQ0bXRsMnhodzY5WVBYa1VURFN0elFUVFR4Wi95SXhXcW1ZZHJaeWNteXdNNnYxSHhkemsKLUpudnRoVHZFdGhXZnJTZE1RMnNzZHFWZ0IwaC9XWnp0QkNaaExMMm1DQ0cvZU51KzVrdEpUTEZEZGpwL0lQcm4KLS9BUFF0N0dqUTFyRkZtUkFlT0hlenNTSU5oUUhqSDQ0RGlNZUwrbFU2Nm5VeFNyb3ZyVm9JMnVuZHdCWHBsMTgKLSs3L29hK2V0NisxVWt0TjY2OVAxQm5OeExmWTZKNDFQNzkrUyttQThnUDRFQTk1L0FPYlF5b1VQcHc9PQotLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQpkaWZmIC0tZ2l0IGEvdGVzdHMvZGF0YV9maWxlcy90ZXN0LWNhLXNoYTEuY3J0IGIvdGVzdHMvZGF0YV9maWxlcy90ZXN0LWNhLXNoYTEuY3J0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzMTc5MGI1Li4wMDAwMDAwCi0tLSBhL3Rlc3RzL2RhdGFfZmlsZXMvdGVzdC1jYS1zaGExLmNydAorKysgL2Rldi9udWxsCkBAIC0xLDIwICswLDAgQEAKLS0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQotTUlJRFFUQ0NBaW1nQXdJQkFnSUJBekFOQmdrcWhraUc5dzBCQVFVRkFEQTdNUXN3Q1FZRFZRUUdFd0pPVERFUgotTUE4R0ExVUVDZ3dJVUc5c1lYSlRVMHd4R1RBWEJnTlZCQU1NRUZCdmJHRnlVMU5NSUZSbGMzUWdRMEV3SGhjTgotTVRrd01qRXdNVFEwTkRBd1doY05Namt3TWpFd01UUTBOREF3V2pBN01Rc3dDUVlEVlFRR0V3Sk9UREVSTUE4RwotQTFVRUNnd0lVRzlzWVhKVFUwd3hHVEFYQmdOVkJBTU1FRkJ2YkdGeVUxTk1JRlJsYzNRZ1EwRXdnZ0VpTUEwRwotQ1NxR1NJYjNEUUVCQVFVQUE0SUJEd0F3Z2dFS0FvSUJBUURBM3pmOEY3dmdscDAvaHQ2V01uMUVwUmFnelNIeAotbWRUczZzdDhHRmdJbEtYc204V0wzeG9lbVRpWmh4NTd3STA1M3poZGNIZ0gwNTdaaytpNWNsSEZ6cU13VXFueQotNTBCd0ZNdEVvbklMd3VWQStUN2xwZzZ6K2V4S1k4QzRLUUIwbkZjN3FLVUVrSEh4dllQWlA5YWw0andxais4bgotWU1QR244dTY3R0I5dCthRU1yNVArMWdtSWdOYjFMVFYrL1hqbGk1d3dPUXV2Znd1N3VKQlZjQTBMbjBrY21uTAotUjdFVVFJTjlaL1NHOWpHcjhYbWtzclV1RXZtRUYvQmlieWMrRTFpeFZBMGhtbk0zb1REUGI1TGM5dW44ck5zdQotS05GK0Frc2pvQlh5T0dWa0Nlb01ibzRiRjZCeHlMT2J5YXZwdy9MUGg1YVBnQUl5bnBsWWI2TFZBZ01CQUFHagotVURCT01Bd0dBMVVkRXdRRk1BTUJBZjh3SFFZRFZSME9CQllFRkxSYTVLV3ozdEpTOXJuVnBwVVA2ejY4eC8zLwotTUI4R0ExVWRJd1FZTUJhQUZMUmE1S1d6M3RKUzlyblZwcFVQNno2OHgvMy9NQTBHQ1NxR1NJYjNEUUVCQlFVQQotQTRJQkFRQjBaaU5SRmRpYTZrc2thUG5ocnFlaklScThZTUVHQWYyb0lQbnlaNzh4b3lFUmdjMzVsSEd5TXRzTAotaFdpY05qUDRkL2hTOUFzNGo1S0EyZ2ROR2k1RVRBMVg3U293V09Hc3J5aXZTcE1TSFZ5MStIZGZXbHNZUU96bQotOG8rZmFRTlVtOFh6UFZtdHRmQVZzcHhlSFN4SlozNk9vK1FXWjV3WmxDSUV5akVkTFVJZCtUbTRCejNCNWpSRAotelphL1NhcURva3E2Nk4yenBiZ0tLQWwzR1UyTysrZkJxUDJkU2tkUXlrbVR4aExMV1JOOEZKcWhZQVR5UW50WgotMFFTaTNXOUhmU1pQbkZUY1BJWGVvaVBkMnBMbHh0MWhadThkd3MyTFRYRTYzdVA2TU00TEh2V3hpdUphV2tQLwotbXR4eVVBTGoycFF4Uml0b3BPUkZRZG43QU9ZNQotLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQpkaWZmIC0tZ2l0IGEvdGVzdHMvZGF0YV9maWxlcy90ZXN0LWNhLXNoYTEuY3J0LmRlciBiL3Rlc3RzL2RhdGFfZmlsZXMvdGVzdC1jYS1zaGExLmNydC5kZXIKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDVkOTQ4MTAuLjAwMDAwMDAKLS0tIGEvdGVzdHMvZGF0YV9maWxlcy90ZXN0LWNhLXNoYTEuY3J0LmRlcgorKysgL2Rldi9udWxsCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3Rlc3RzL2RhdGFfZmlsZXMvdGVzdC1jYS1zaGEyNTYuY3J0IGIvdGVzdHMvZGF0YV9maWxlcy90ZXN0LWNhLXNoYTI1Ni5jcnQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDljNzFjZWYuLjAwMDAwMDAKLS0tIGEvdGVzdHMvZGF0YV9maWxlcy90ZXN0LWNhLXNoYTI1Ni5jcnQKKysrIC9kZXYvbnVsbApAQCAtMSwyMCArMCwwIEBACi0tLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KLU1JSURRVENDQWltZ0F3SUJBZ0lCQXpBTkJna3Foa2lHOXcwQkFRc0ZBREE3TVFzd0NRWURWUVFHRXdKT1RERVIKLU1BOEdBMVVFQ2d3SVVHOXNZWEpUVTB3eEdUQVhCZ05WQkFNTUVGQnZiR0Z5VTFOTUlGUmxjM1FnUTBFd0hoY04KLU1Ua3dNakV3TVRRME5EQXdXaGNOTWprd01qRXdNVFEwTkRBd1dqQTdNUXN3Q1FZRFZRUUdFd0pPVERFUk1BOEcKLUExVUVDZ3dJVUc5c1lYSlRVMHd4R1RBWEJnTlZCQU1NRUZCdmJHRnlVMU5NSUZSbGMzUWdRMEV3Z2dFaU1BMEcKLUNTcUdTSWIzRFFFQkFRVUFBNElCRHdBd2dnRUtBb0lCQVFEQTN6ZjhGN3ZnbHAwL2h0NldNbjFFcFJhZ3pTSHgKLW1kVHM2c3Q4R0ZnSWxLWHNtOFdMM3hvZW1UaVpoeDU3d0kwNTN6aGRjSGdIMDU3WmsraTVjbEhGenFNd1VxbnkKLTUwQndGTXRFb25JTHd1VkErVDdscGc2eitleEtZOEM0S1FCMG5GYzdxS1VFa0hIeHZZUFpQOWFsNGp3cWorOG4KLVlNUEduOHU2N0dCOXQrYUVNcjVQKzFnbUlnTmIxTFRWKy9YamxpNXd3T1F1dmZ3dTd1SkJWY0EwTG4wa2NtbkwKLVI3RVVRSU45Wi9TRzlqR3I4WG1rc3JVdUV2bUVGL0JpYnljK0UxaXhWQTBobW5NM29URFBiNUxjOXVuOHJOc3UKLUtORitBa3Nqb0JYeU9HVmtDZW9NYm80YkY2Qnh5TE9ieWF2cHcvTFBoNWFQZ0FJeW5wbFliNkxWQWdNQkFBR2oKLVVEQk9NQXdHQTFVZEV3UUZNQU1CQWY4d0hRWURWUjBPQkJZRUZMUmE1S1d6M3RKUzlyblZwcFVQNno2OHgvMy8KLU1COEdBMVVkSXdRWU1CYUFGTFJhNUtXejN0SlM5cm5WcHBVUDZ6Njh4LzMvTUEwR0NTcUdTSWIzRFFFQkN3VUEKLUE0SUJBUUE0cUZTQ3RoMnEyMnVKSWRFNEtHSEpzSmpWRWZ3Mi94bitNa1R2Q01meFZydm1SdnFDdGpFNHRLRGwKLW9LNE14Rk9lazA3b0Rad3Z0QVQ5aWpuMWhIZnRUTlM3Ukg5emQvZnhOcGZjSG5NWlhWQzR3NEROQTFmU0FOdFcKLTVzWTFKQjVKZTlqU2Nyc0xTUyttQWp5djBPdzNIYjJCaXg4d3U3eE5OclY1ZklmN1VibSt3dDZTcUVCeHUzS2IKLStFZk9iQVQ0aHVmM2N6em5oSDNDMTdlZDZOU2JYd29YZmJ5N3N0V1VEZVJKdjA4UmFGT3lrZi9BYWU3Ylk1UEwKLXlUVnJrQW5pa01udEo5WUkraE5OWXQzaW5xcTExQTVjTjArclZUc3Q4VUtDeHpRNEdwdnJvU3dQS1RGa2JNdzQKLS9hblQxZFZ4ci9CdHdKZmlFU29LMy80Q2VYUjEKLS0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KZGlmZiAtLWdpdCBhL3Rlc3RzL2RhdGFfZmlsZXMvdGVzdC1jYS1zaGEyNTYuY3J0LmRlciBiL3Rlc3RzL2RhdGFfZmlsZXMvdGVzdC1jYS1zaGEyNTYuY3J0LmRlcgpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYWVmZWMyMC4uMDAwMDAwMAotLS0gYS90ZXN0cy9kYXRhX2ZpbGVzL3Rlc3QtY2Etc2hhMjU2LmNydC5kZXIKKysrIC9kZXYvbnVsbApCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS90ZXN0cy9kYXRhX2ZpbGVzL3Rlc3QtY2EtdjEuY3J0IGIvdGVzdHMvZGF0YV9maWxlcy90ZXN0LWNhLXYxLmNydApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMmYxMGY2ZC4uMDAwMDAwMAotLS0gYS90ZXN0cy9kYXRhX2ZpbGVzL3Rlc3QtY2EtdjEuY3J0CisrKyAvZGV2L251bGwKQEAgLTEsMTkgKzAsMCBAQAotLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCi1NSUlESHpDQ0FnY0NERk9pdG80RlFBNVZYSk9WNVRBTkJna3Foa2lHOXcwQkFRc0ZBREJRTVJ3d0dnWURWUVFECi1EQk5RYjJ4aGNsTlRUQ0JVWlhOMElFTkJJSFl4TVJBd0RnWURWUVFMREFkMFpYTjBhVzVuTVJFd0R3WURWUVFLCi1EQWhRYjJ4aGNsTlRUREVMTUFrR0ExVUVCaE1DVGt3d0hoY05NVGt3TWpFd01UUTBOREF3V2hjTk1qa3dNakV3Ci1NVFEwTkRBd1dqQlFNUnd3R2dZRFZRUUREQk5RYjJ4aGNsTlRUQ0JVWlhOMElFTkJJSFl4TVJBd0RnWURWUVFMCi1EQWQwWlhOMGFXNW5NUkV3RHdZRFZRUUtEQWhRYjJ4aGNsTlRUREVMTUFrR0ExVUVCaE1DVGt3d2dnRWlNQTBHCi1DU3FHU0liM0RRRUJBUVVBQTRJQkR3QXdnZ0VLQW9JQkFRREEzemY4Rjd2Z2xwMC9odDZXTW4xRXBSYWd6U0h4Ci1tZFRzNnN0OEdGZ0lsS1hzbThXTDN4b2VtVGlaaHg1N3dJMDUzemhkY0hnSDA1N1prK2k1Y2xIRnpxTXdVcW55Ci01MEJ3Rk10RW9uSUx3dVZBK1Q3bHBnNnorZXhLWThDNEtRQjBuRmM3cUtVRWtISHh2WVBaUDlhbDRqd3FqKzhuCi1ZTVBHbjh1NjdHQjl0K2FFTXI1UCsxZ21JZ05iMUxUVisvWGpsaTV3d09RdXZmd3U3dUpCVmNBMExuMGtjbW5MCi1SN0VVUUlOOVovU0c5akdyOFhta3NyVXVFdm1FRi9CaWJ5YytFMWl4VkEwaG1uTTNvVERQYjVMYzl1bjhyTnN1Ci1LTkYrQWtzam9CWHlPR1ZrQ2VvTWJvNGJGNkJ4eUxPYnlhdnB3L0xQaDVhUGdBSXlucGxZYjZMVkFnTUJBQUV3Ci1EUVlKS29aSWh2Y05BUUVMQlFBRGdnRUJBQXRWQVdtYnltd0tEajl2OG03U1ZMSEYwbXc0aTNnQkZWUEpxWVJRCi15OUNuVUQ2OGtVcjRxSzd3eVFJdi9nRFJZdXFaVk5uQnE0Snd6bSt0UEVCSHBZQUY1SC83TXlucGI0aCt1WjNhCi02a2FXVVJYS3p4NTNadUZITHUxRnVSb3YrU1pVM1p0WENsVFlGS2V5RGIrZmN0aC84dGhSOVY1OXY3WkU3emxiCi04emJ5TCtkcWZ5eHZteFpDVXpIYk5LVnJsaWlVVUZYZlc1M1QrQjdZc3huZXI1bW5xTTFhUHhja2hYVkhFSjQ3Ci1UQm9JaHBCb0ovSG1IQ2lXejhCZW9vd1NwRzd1K1FPZXpJS2s4bDVQZDJmOE1lcXd5YXFJZUF5MGxoMm5QN3BCCi1VdFdFVC8wYnNkaVBuOFNSOUIzaFdwS1VEUnZuSEREWnVaaUt0cmRERXFzRDA0TT0KLS0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KZGlmZiAtLWdpdCBhL3Rlc3RzL2RhdGFfZmlsZXMvdGVzdC1jYS5jcnQgYi90ZXN0cy9kYXRhX2ZpbGVzL3Rlc3QtY2EuY3J0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlZjdlNGM3Li4wMDAwMDAwCi0tLSBhL3Rlc3RzL2RhdGFfZmlsZXMvdGVzdC1jYS5jcnQKKysrIC9kZXYvbnVsbApAQCAtMSwyMCArMCwwIEBACi0tLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KLU1JSURSRENDQWl5Z0F3SUJBZ0lCQXpBTkJna3Foa2lHOXcwQkFRVUZBREE3TVFzd0NRWURWUVFHRXdKT1RERVIKLU1BOEdBMVVFQ2d3SVVHOXNZWEpUVTB3eEdUQVhCZ05WQkFNTUVGQnZiR0Z5VTFOTUlGUmxjM1FnUTBFd0hoY04KLU1Ua3dNakV3TVRRME5EQXdXaGNOTWprd01qRXdNVFEwTkRBd1dqQTdNUXN3Q1FZRFZRUUdFd0pPVERFUk1BOEcKLUExVUVDZ3dJVUc5c1lYSlRVMHd4R1RBWEJnTlZCQU1NRUZCdmJHRnlVMU5NSUZSbGMzUWdRMEV3Z2dFaU1BMEcKLUNTcUdTSWIzRFFFQkFRVUFBNElCRHdBd2dnRUtBb0lCQVFEQTN6ZjhGN3ZnbHAwL2h0NldNbjFFcFJhZ3pTSHgKLW1kVHM2c3Q4R0ZnSWxLWHNtOFdMM3hvZW1UaVpoeDU3d0kwNTN6aGRjSGdIMDU3WmsraTVjbEhGenFNd1VxbnkKLTUwQndGTXRFb25JTHd1VkErVDdscGc2eitleEtZOEM0S1FCMG5GYzdxS1VFa0hIeHZZUFpQOWFsNGp3cWorOG4KLVlNUEduOHU2N0dCOXQrYUVNcjVQKzFnbUlnTmIxTFRWKy9YamxpNXd3T1F1dmZ3dTd1SkJWY0EwTG4wa2NtbkwKLVI3RVVRSU45Wi9TRzlqR3I4WG1rc3JVdUV2bUVGL0JpYnljK0UxaXhWQTBobW5NM29URFBiNUxjOXVuOHJOc3UKLUtORitBa3Nqb0JYeU9HVmtDZW9NYm80YkY2Qnh5TE9ieWF2cHcvTFBoNWFQZ0FJeW5wbFliNkxWQWdNQkFBR2oKLVV6QlJNQThHQTFVZEV3RUIvd1FGTUFNQkFmOHdIUVlEVlIwT0JCWUVGTFJhNUtXejN0SlM5cm5WcHBVUDZ6NjgKLXgvMy9NQjhHQTFVZEl3UVlNQmFBRkxSYTVLV3ozdEpTOXJuVnBwVVA2ejY4eC8zL01BMEdDU3FHU0liM0RRRUIKLUJRVUFBNElCQVFDejU1N1pabVd2NVVUVEhlYnpUeVZ6a3U1bGRwY2ljSlBxS0hQM3haNHRQUFk1MkpReUpnL1QKLWhzUkI0NHlUeU5vMy9qbzlvcjJLZ1ZuYysvbkNtbmx2VHEyMmEvajI2RHRLWjd3RDlNV3h1bnBrcVJ3RXh0QS8KLUc4MTZtc3JsNlg2bTUwV3dkTFhUdmFWSkdYQ1lwOFRQVkx4NVlZM1dQSVZvWDBDUE43SHM5aU5KTmlFV280UWYKLTdkQXFqV0JCL1FwdXNtV2hqYURTYzQrY0ZoVDI0WW85SHVTMXlya1VUckJ0SmFqMEF5a1RzaXlGbTZTQlZETkgKLTlYSXhDZ1l5OVFyWWJES050SlhodWV2cE4weVVNVi9hVW5Ja1Uyd1RUb3VoT3paaXNqTmswc1MxZ3VxbVNIemYKLWhsZjhxb3RPaE52RlhwRXNDR3daVXl3YXlvN2M0RHRPCi0tLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCmRpZmYgLS1naXQgYS90ZXN0cy9kYXRhX2ZpbGVzL3Rlc3QtY2EuZGVyIGIvdGVzdHMvZGF0YV9maWxlcy90ZXN0LWNhLmRlcgpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDM5ZmI5ZS4uMDAwMDAwMAotLS0gYS90ZXN0cy9kYXRhX2ZpbGVzL3Rlc3QtY2EuZGVyCisrKyAvZGV2L251bGwKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvdGVzdHMvZGF0YV9maWxlcy90ZXN0LWNhLmtleSBiL3Rlc3RzL2RhdGFfZmlsZXMvdGVzdC1jYS5rZXkKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGRlOGJlMWQuLjAwMDAwMDAKLS0tIGEvdGVzdHMvZGF0YV9maWxlcy90ZXN0LWNhLmtleQorKysgL2Rldi9udWxsCkBAIC0xLDMwICswLDAgQEAKLS0tLS0tQkVHSU4gUlNBIFBSSVZBVEUgS0VZLS0tLS0KLVByb2MtVHlwZTogNCxFTkNSWVBURUQKLURFSy1JbmZvOiBBRVMtMTI4LUNCQyw3ODE4NDBFNkI4MDRBRTgzRDJBRjcxMTI3QzRDRTMxNAotCi1ldFEzeGdHTGJ1WUY5dlIxa20wM1RINWZ3Zmx5MWhPbGl4MFB0ZlErdDlIRzA2NXZUdFNFSFljL095SHdkeTc5Ci1OQ0xYNVJVclBoMDZFL1hsS3pNTlZIQVhxa3dGbkl3TnpSTHNPb3plUDFMN2laRVpiOVFNZWlONU9yZytidENPCi1ieWxYUEI0WWlyZnVFN0dTSmFsV1kvcHEzRlF0RDMzelRJS21OaFhmVmozc2J3R0kvOEQ5WGphS1ViOFBPRE9CCi1za09hbG14NlJ2WVJ2ZzBsbVJ4QjMrVDN3ZWpJc3JyRFB3ZVlxdGU5QjZkVkhJVkcxWm12b0E2L3duS1paWmVWCi1zamo4T3BMM093VUJyanVHU2tuRTlSczZrQ3VTQ2JIT1lWSzhWemNabUNZcGllMFRGbmIzU2s4TTZ2amZXKzQ1Ci1VN1dVTWxTQVB4S0g2bEpEeldkd0hxTHZzVkp3dU5uYUFhQlhnOS84VS9yelFFV3VxOEFyM3M4ZncySmczRjFHCi1MNk41WkFFZkN6M1NhME45V0thZlIvUlNRaitycThaM3c0UE9BYWZoYnprMjQ5dW81SzhCMVozY1F3THhlWElsCi1VYlJRejFUWnk0b05UZlF6Q2FoWXJ1UE55dndnVGtmd0FGRnZiTEFkYWlKZDJadExCb3FZRTY0VFlha1ludmNDCi1pdGltMWJteVNJS294bE1mQkdGbU11RjAzZXBUMHBTeDcwMWpsR3pHaTBsMG0xNk5Fam9WeER3bzVqOTNTbWlNCi1zUWRqQzFsT0drMmlDTGtwaElRcUhGakZKWVdqdmgxVVVJcVdaZitaV09PeGxmNHg5YTFwVVZqNkZ2dEVDeE5CCi0vbUEvbTRJcTRMQXVWWEhFMU1wSGVxMDY3bEo2d1dscnNiMldWbWlOR2ZRMkFDN2ZNdHBjUHV1bkJWVDlOVjFtCi0xcmJEeklnTElXQXpxei9jeTNOOFE4dmZ4bnJGdG1OVXlNMTkxWnlxK1lGMTRoSUtXWDlKMXFSNExYd1dBelZWCi1VckM4SUw0cEEybXRSa1c0cUZzQjBFbUhBeE8vY2VkRFRQalZGdHk1V1N6aE51dllaeFg0NUhBa0dJZks2ZDIxCi03V0hQaEhHK3phYVVUV01VVml4QjBJY0twNlJlY2pZUEZ6QkhTMFllWDg4VWUyY3lULzkwak1pUTlzc09nUnJHCi1aSlJKdlpBYzNUU0NuWTlzTlBZb0dySlBpWnVDbmxVajNFTk51cllWeTEyYWkwV0Z4d25OVVpqUlVoRFM2aGptCi1jREhENVRsSTlNWjZNK01iL0J3NElnOEh1VEhPdFFCWUQ5dmh0WHNHK0I3SC9qNmNTKzF1bWFLanJuRy9rSzRXCi1SNllYd00yZmFBaStEd2dqam9NWFN6UnFTVEY4UGRUSVdiQVhvM2JjMnFzWFBUTUJBOFBFcDRuYjVzY0haNFRzCi1FY0JOcDJqdjBqNGdCa1JtR0lhYjE3Y1dNcmxhZ2pGeTg5RGhxWlVGd0tkZVpzK3lKOTJBNXhzdFd4T1VmcEVQCi05MFQvYnNwMUc1ZDdXVzVmbDJUUkp2WUpORE0rZGprS0loMHpDa2R1aVozNm9WTTZuRGRiam1YcWpRWG9wZVNECi1ndE9vdXJCUkY4Zzk5VzBmVzhRVCt5UGhQMFBreXo2RUc4ZVFPNlp3aDQzOXhkb1Z3dTlqVXpRQVBtWjB1TmVSCi14VFhYaWhZeXY3MnoyN3JJbmpMaUlQWEwyNUs5ZURWTGxjU1IzUnlHN1lZZ2pkUUFMMlZKRExjQno1am94MXVRCi0wZ3VvRDV3bWZ1MkZXTHFZRTdIZVRZbnRkWTUzbENmbHdxMEdIUk1qcnJzVnB4KzVWRFE2WWk0N055OVNXTGNwCi1mUEkzaUJrWHVHUld1cHpzNk40cFFkU08wZFUyOEtmcE1NNVF2Rm9MSW42N2JyQ0hFUWlqNGRnRnJDVFlFeUJYCi05K2ppTkltVUZZVWhBRnV4dlViZlp0NE8vQUJMSUVsdkhMZkpzMW9ZQ21JL25XcHZMRnFYQjVybnpQTmZFaTBICi1QR0dlMUhqL3QrQ0pJcC82aW9zM3lOeTJRdFhPNzU0VFpIMlVWdTUxWWt5aWc1UEZqWlZvVWtiUnZIUVljV2ZVCi0tLS0tLUVORCBSU0EgUFJJVkFURSBLRVktLS0tLQpkaWZmIC0tZ2l0IGEvdGVzdHMvZGF0YV9maWxlcy90ZXN0LWNhLmtleS5kZXIgYi90ZXN0cy9kYXRhX2ZpbGVzL3Rlc3QtY2Eua2V5LmRlcgpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNDY3OGExYS4uMDAwMDAwMAotLS0gYS90ZXN0cy9kYXRhX2ZpbGVzL3Rlc3QtY2Eua2V5LmRlcgorKysgL2Rldi9udWxsCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3Rlc3RzL2RhdGFfZmlsZXMvdGVzdC1jYS5vcGVuc3NsY29uZiBiL3Rlc3RzL2RhdGFfZmlsZXMvdGVzdC1jYS5vcGVuc3NsY29uZgpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDM0MGU5ZS4uMDAwMDAwMAotLS0gYS90ZXN0cy9kYXRhX2ZpbGVzL3Rlc3QtY2Eub3BlbnNzbGNvbmYKKysrIC9kZXYvbnVsbApAQCAtMSwxMjUgKzAsMCBAQAotW3JlcV0KLXg1MDlfZXh0ZW5zaW9ucyA9IHYzX2NhCi1kaXN0aW5ndWlzaGVkX25hbWUgPSByZXFfZG4KLQotW3JlcV9kbl0KLWNvdW50cnlOYW1lID0gTkwKLW9yZ2FuaXphdGlvbmFsVW5pdE5hbWUgPSBQb2xhclNTTAotY29tbW9uTmFtZSA9IFBvbGFyU1NMIFRlc3QgQ0EKLQotW3YzX2NhXQotc3ViamVjdEtleUlkZW50aWZpZXI9aGFzaAotYXV0aG9yaXR5S2V5SWRlbnRpZmllcj1rZXlpZDphbHdheXMsaXNzdWVyOmFsd2F5cwotYmFzaWNDb25zdHJhaW50cyA9IENBOnRydWUKLQotW25vX3N1YmpfYXV0aF9pZF0KLXN1YmplY3RLZXlJZGVudGlmaWVyPW5vbmUKLWF1dGhvcml0eUtleUlkZW50aWZpZXI9bm9uZQotYmFzaWNDb25zdHJhaW50cyA9IENBOnRydWUKLQotW290aGVybmFtZV9zYW5dCi1zdWJqZWN0QWx0TmFtZT1vdGhlck5hbWU6MS4zLjYuMS41LjUuNy44LjQ7U0VROmh3X21vZHVsZV9uYW1lCi0KLVtub25wcmludGFibGVfb3RoZXJuYW1lX3Nhbl0KLXN1YmplY3RBbHROYW1lPW90aGVyTmFtZToxLjMuNi4xLjUuNS43LjguNDtTRVE6bm9ucHJpbnRhYmxlX2h3X21vZHVsZV9uYW1lCi0KLVt1bnN1cHBvcnRlZF9vdGhlcm5hbWVfc2FuXQotc3ViamVjdEFsdE5hbWU9b3RoZXJOYW1lOjEuMi4zLjQ7VVRGODpzb21lIG90aGVyIGlkZW50aWZpZXIKLQotW2Ruc19hbHRfbmFtZXNdCi1zdWJqZWN0QWx0TmFtZT1ETlM6ZXhhbXBsZS5jb20sIEROUzpleGFtcGxlLm5ldCwgRE5TOiouZXhhbXBsZS5vcmcKLQotW3JmYzgyMm5hbWVfbmFtZXNdCi1zdWJqZWN0QWx0TmFtZT1lbWFpbDpteUBvdGhlci5hZGRyZXNzLGVtYWlsOnNlY29uZEBvdGhlci5hZGRyZXNzCi0KLVthbHRfbmFtZXNdCi1ETlMuMT1leGFtcGxlLmNvbQotb3RoZXJOYW1lLjE9MS4zLjYuMS41LjUuNy44LjQ7U0VROmh3X21vZHVsZV9uYW1lCi1ETlMuMj1leGFtcGxlLm5ldAotRE5TLjM9Ki5leGFtcGxlLm9yZwotCi1bbXVsdGlwbGVfc2FuXQotc3ViamVjdEFsdE5hbWU9QGFsdF9uYW1lcwotCi1bZXh0X211bHRpX25vY25dCi1iYXNpY0NvbnN0cmFpbnRzID0gQ0E6ZmFsc2UKLWtleVVzYWdlID0gZGlnaXRhbFNpZ25hdHVyZSwgbm9uUmVwdWRpYXRpb24sIGtleUVuY2lwaGVybWVudAotc3ViamVjdEFsdE5hbWUgPSBETlM6d3d3LnNob3Rva2FuLWJyYXVuc2Nod2VpZy5kZSxETlM6d3d3Lm1hc3NpbW8tYWJhdGUuZXUsSVA6MTkyLjE2OC4xLjEsSVA6MTkyLjE2OC42OS4xNDQKLQotW2h3X21vZHVsZV9uYW1lXQotaHd0eXBlID0gT0lEOjEuMy42LjEuNC4xLjE3LjMKLWh3c2VyaWFsID0gT0NUOjEyMzQ1NgotCi1bbm9ucHJpbnRhYmxlX2h3X21vZHVsZV9uYW1lXQotaHd0eXBlID0gT0lEOjEuMy42LjEuNC4xLjE3LjMKLWh3c2VyaWFsID0gRk9STUFUOkhFWCwgT0NUOjMxMzIzMzgwODEwMDgxODAzMzMyMzEKLQotW3YzX2FueV9wb2xpY3lfY2FdCi1iYXNpY0NvbnN0cmFpbnRzID0gQ0E6dHJ1ZQotY2VydGlmaWNhdGVQb2xpY2llcyA9IDIuNS4yOS4zMi4wCi0KLVt2M19hbnlfcG9saWN5X3F1YWxpZmllcl9jYV0KLWJhc2ljQ29uc3RyYWludHMgPSBDQTp0cnVlCi1jZXJ0aWZpY2F0ZVBvbGljaWVzID0gQHBvbGljeV9pbmZvCi0KLVt2M19tdWx0aV9wb2xpY3lfY2FdCi1iYXNpY0NvbnN0cmFpbnRzID0gQ0E6dHJ1ZQotY2VydGlmaWNhdGVQb2xpY2llcyA9IDEuMi4zLjQsMi41LjI5LjMyLjAKLQotW3YzX3Vuc3VwcG9ydGVkX3BvbGljeV9jYV0KLWJhc2ljQ29uc3RyYWludHMgPSBDQTp0cnVlCi1jZXJ0aWZpY2F0ZVBvbGljaWVzID0gMS4yLjMuNAotCi1bcG9saWN5X2luZm9dCi1wb2xpY3lJZGVudGlmaWVyID0gMi41LjI5LjMyLjAKLUNQUy4xID0iQ1BTIHVyaSBzdHJpbmciCi0KLVtmYW5fY2VydF0KLWV4dGVuZGVkS2V5VXNhZ2UgPSAxLjMuNi4xLjQuMS40NTYwNS4xCi0KLVtub2V4dF9jYV0KLWJhc2ljQ29uc3RyYWludHMgPSBDQTp0cnVlCi0KLVt0ZXN0X2NhXQotZGF0YWJhc2UgPSAvZGV2L251bGwKLQotW2NybF9leHRfaWRwXQotaXNzdWluZ0Rpc3RyaWJ1dGlvblBvaW50PWNyaXRpY2FsLCBAaWRwZGF0YQotCi1bY3JsX2V4dF9pZHBfbmNdCi1pc3N1aW5nRGlzdHJpYnV0aW9uUG9pbnQ9QGlkcGRhdGEKLQotW2lkcGRhdGFdCi1mdWxsbmFtZT1VUkk6aHR0cDovL3BraS5leGFtcGxlLmNvbS8KLQotIyB0aGVzZSBJUHMgYXJlIHRoZSBhc2NpaSB2YWx1ZXMgZm9yICdhYmNkJyBhbmQgJ2FiY2QuZXhhbXBsZS5jb20nCi1bdHJpY2t5X2lwX3Nhbl0KLXN1YmplY3RBbHROYW1lPUlQOjk3Ljk4Ljk5LjEwMCxJUDo2MTYyOjYzNjQ6MmU2NTo3ODYxOjZkNzA6NmM2NToyZTYzOjZmNmQKLQotW2Nzcl9leHRfdjNfa2V5VXNhZ2VdCi1rZXlVc2FnZSA9IGRpZ2l0YWxTaWduYXR1cmUsIGtleUVuY2lwaGVybWVudAotCi1bY3NyX2V4dF92M19zdWJqZWN0QWx0TmFtZV0KLXN1YmplY3RBbHROYW1lPUROUzpleGFtcGxlLmNvbSwgRE5TOmV4YW1wbGUubmV0LCBETlM6Ki5leGFtcGxlLm9yZwotCi1bY3NyX2V4dF92M19uc0NlcnRUeXBlXQotbnNDZXJ0VHlwZT1zZXJ2ZXIKLQotW2Nzcl9leHRfdjNfYWxsXQota2V5VXNhZ2UgPSBjUkxTaWduCi1zdWJqZWN0QWx0TmFtZT1vdGhlck5hbWU6MS4zLjYuMS41LjUuNy44LjQ7U0VROm5vbnByaW50YWJsZV9od19tb2R1bGVfbmFtZQotbnNDZXJ0VHlwZT1jbGllbnQKLQotW2RpcmVjdG9yeV9uYW1lX3Nhbl0KLXN1YmplY3RBbHROYW1lPWRpck5hbWU6ZGlybmFtZV9zZWN0Ci0KLVt0d29fZGlyZWN0b3J5bmFtZXNdCi1zdWJqZWN0QWx0TmFtZT1kaXJOYW1lOmRpcm5hbWVfc2VjdCwgZGlyTmFtZTpkaXJuYW1lX3RvX21hbGZvcm0KLQotW2Rpcm5hbWVfc2VjdF0KLUM9VUsKLU89TWJlZCBUTFMKLUNOPU1iZWQgVExTIGRpcmVjdG9yeU5hbWUgU0FOCi0KLVtkaXJuYW1lX3RvX21hbGZvcm1dCi1PPU1BTEZPUk1fTUUKZGlmZiAtLWdpdCBhL3Rlc3RzL2RhdGFfZmlsZXMvdGVzdC1jYS5yZXEuc2hhMjU2IGIvdGVzdHMvZGF0YV9maWxlcy90ZXN0LWNhLnJlcS5zaGEyNTYKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDExMTQzMzguLjAwMDAwMDAKLS0tIGEvdGVzdHMvZGF0YV9maWxlcy90ZXN0LWNhLnJlcS5zaGEyNTYKKysrIC9kZXYvbnVsbApAQCAtMSwxNiArMCwwIEBACi0tLS0tLUJFR0lOIENFUlRJRklDQVRFIFJFUVVFU1QtLS0tLQotTUlJQ2dEQ0NBV2dDQVFBd096RUxNQWtHQTFVRUJoTUNUa3d4RVRBUEJnTlZCQW9NQ0ZCdmJHRnlVMU5NTVJrdwotRndZRFZRUUREQkJRYjJ4aGNsTlRUQ0JVWlhOMElFTkJNSUlCSWpBTkJna3Foa2lHOXcwQkFRRUZBQU9DQVE4QQotTUlJQkNnS0NBUUVBd044My9CZTc0SmFkUDRiZWxqSjlSS1VXb00waDhablU3T3JMZkJoWUNKU2w3SnZGaTk4YQotSHBrNG1ZY2VlOENOT2Q4NFhYQjRCOU9lMlpQb3VYSlJ4YzZqTUZLcDh1ZEFjQlRMUktKeUM4TGxRUGsrNWFZTwotcy9uc1NtUEF1Q2tBZEp4WE82aWxCSkJ4OGIyRDJUL1dwZUk4S28vdkoyRER4cC9MdXV4Z2ZiZm1oREsrVC90WQotSmlJRFc5UzAxZnYxNDVZdWNNRGtMcjM4THU3aVFWWEFOQzU5SkhKcHkwZXhGRUNEZldmMGh2WXhxL0Y1cExLMQotTGhMNWhCZndZbThuUGhOWXNWUU5JWnB6TjZFd3oyK1MzUGJwL0t6YkxpalJmZ0pMSTZBVjhqaGxaQW5xREc2TwotR3hlZ2NjaXptOG1yNmNQeXo0ZVdqNEFDTXA2WldHK2kxUUlEQVFBQm9BQXdEUVlKS29aSWh2Y05BUUVMQlFBRAotZ2dFQkFLSStxODQwK0N5UGo2REpESnI5bVAvYUU4VStWeXhiYXJRdVpIeGJpeVMySER1TlFORnZQMlRtQ0RSeAotanVFUlRVOHlET2ozRjJwN0poRkY0UWtDUDJUUDRKRllqTGxPRTdJU3hZZWdHZEpOTk82VzAwYnRNSEcxczBhVwotdVBjUElJeTlIeEdpT0ZGbWpZejdKbzhtY0ZsK2JsNEVUN3pQb2oyMVI0ZE9sN0Uzb1lMdEVacVR1aVduZlcySAotK3dodXJVMTNQWXlvZzNqdkpleDk5VklMOFpSbGlVU0tnZG1RN0E0R012RTZrZjZVays0NDF5blo3UlFyNGpGOQoteHNWSXJSN2N5dC9Tc1ZFWUYrMlNmSmkwZE85cGY2eVYzUGR3dHBVMlVSVHlab2l0bG5lcUVJTlhLaTdReDZFKwotK2Y1ZkFJOEZiQ0p0Z0tFS2YyVGZxaUg2c0NJPQotLS0tLS1FTkQgQ0VSVElGSUNBVEUgUkVRVUVTVC0tLS0tCmRpZmYgLS1naXQgYS90ZXN0cy9kYXRhX2ZpbGVzL3Rlc3QtY2EucmVxX2VjLnNoYTI1NiBiL3Rlc3RzL2RhdGFfZmlsZXMvdGVzdC1jYS5yZXFfZWMuc2hhMjU2CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2ZDQ2YjJhLi4wMDAwMDAwCi0tLSBhL3Rlc3RzL2RhdGFfZmlsZXMvdGVzdC1jYS5yZXFfZWMuc2hhMjU2CisrKyAvZGV2L251bGwKQEAgLTEsOSArMCwwIEBACi0tLS0tLUJFR0lOIENFUlRJRklDQVRFIFJFUVVFU1QtLS0tLQotTUlJQk9UQ0J2UUlCQURBK01Rc3dDUVlEVlFRR0V3Sk9UREVSTUE4R0ExVUVDZ3dJVUc5c1lYSlRVMHd4SERBYQotQmdOVkJBTU1FMUJ2YkdGeWMzTnNJRlJsYzNRZ1JVTWdRMEV3ZGpBUUJnY3Foa2pPUFFJQkJnVXJnUVFBSWdOaQotQUFURDJpczBRVGRZTDRkVy92eUp1aWxEUzA3Z2JzTU9WMU16T1ZqVVVyU1JsVGtMSTk5ZkZ5UmlTUHdhbFNuTwotTEMySHdvaFNnSy9XYXFzaDNialRIRzVZdU1yb3NtbU84MEd0S2NPMFgzV25SMi9WR1NsVmFacFRPeUMwWmhaZwotTXg2Z0FEQU1CZ2dxaGtqT1BRUURBZ1VBQTJrQU1HWUNNUURFbGVmOStLZlJiWk9BMjlaeVU3NTBmQjNvYjgyRQotOFI3MTEraGs5SE9zazBHOVVjY3AzdFQrMW5oQ2NNTmhuV3NDTVFENlk4ZTlqY0VhS1NQaVdXZmdDWjVOYVE1bAotcHZQRFVkY1BWOHNadDJjZ05TOGZjUklJSGJsUUt2cjZtaUhYbDlZPQotLS0tLS1FTkQgQ0VSVElGSUNBVEUgUkVRVUVTVC0tLS0tCmRpZmYgLS1naXQgYS90ZXN0cy9kYXRhX2ZpbGVzL3Rlc3QtY2Euc2VydmVyMS5kYiBiL3Rlc3RzL2RhdGFfZmlsZXMvdGVzdC1jYS5zZXJ2ZXIxLmRiCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzYzBlMDEyLi4wMDAwMDAwCi0tLSBhL3Rlc3RzL2RhdGFfZmlsZXMvdGVzdC1jYS5zZXJ2ZXIxLmRiCisrKyAvZGV2L251bGwKQEAgLTEsMiArMCwwIEBACi1SCTIxMDIxMjE0NDQwNloJMTEwMjEyMTI0NDA3WgkwMQl1bmtub3duCS9DPU5ML089UG9sYXJTU0wvQ049UG9sYXJTU0wgU2VydmVyIDEKLVIJMjEwMjEyMTQ0NDAwWgkxMTAyMTIxMjQ0MDdaCTAzCXVua25vd24JL0M9TkwvTz1Qb2xhclNTTC9DTj1Qb2xhclNTTCBUZXN0IENBCmRpZmYgLS1naXQgYS90ZXN0cy9kYXRhX2ZpbGVzL3Rlc3QtY2Euc2VydmVyMS5mdXR1cmUtY3JsLmRiIGIvdGVzdHMvZGF0YV9maWxlcy90ZXN0LWNhLnNlcnZlcjEuZnV0dXJlLWNybC5kYgpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNzYzYWExMi4uMDAwMDAwMAotLS0gYS90ZXN0cy9kYXRhX2ZpbGVzL3Rlc3QtY2Euc2VydmVyMS5mdXR1cmUtY3JsLmRiCisrKyAvZGV2L251bGwKQEAgLTEsMiArMCwwIEBACi1SCTIxMDIxMjE0NDQwNloJMjkwMTAxMTI0NDA3WgkwMQl1bmtub3duCS9DPU5ML089UG9sYXJTU0wvQ049UG9sYXJTU0wgU2VydmVyIDEKLVIJMjEwMjEyMTQ0NDAwWgkyOTAxMDExMjQ0MDdaCTAzCXVua25vd24JL0M9TkwvTz1Qb2xhclNTTC9DTj1Qb2xhclNTTCBUZXN0IENBCmRpZmYgLS1naXQgYS90ZXN0cy9kYXRhX2ZpbGVzL3Rlc3QtY2Euc2VydmVyMS5mdXR1cmUtY3JsLm9wZW5zc2xjb25mIGIvdGVzdHMvZGF0YV9maWxlcy90ZXN0LWNhLnNlcnZlcjEuZnV0dXJlLWNybC5vcGVuc3NsY29uZgpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZTljZTc1NC4uMDAwMDAwMAotLS0gYS90ZXN0cy9kYXRhX2ZpbGVzL3Rlc3QtY2Euc2VydmVyMS5mdXR1cmUtY3JsLm9wZW5zc2xjb25mCisrKyAvZGV2L251bGwKQEAgLTEsMTggKzAsMCBAQAotIFsgY2EgXQotIGRlZmF1bHRfY2EgICAgICAgICAgICAgPSB0ZXN0LWNhCi0KLSBbIHRlc3QtY2EgXQotIGNlcnRpZmljYXRlICAgICAgICAgICAgPSB0ZXN0LWNhLmNydAotIHByaXZhdGVfa2V5ICAgICAgICAgICAgPSB0ZXN0LWNhLmtleQotIHNlcmlhbCAgICAgICAgICAgICAgICAgPSB0ZXN0LWNhLnNlcnZlcjEuc2VyaWFsCi0gZGVmYXVsdF9tZCAgICAgICAgICAgICA9IHNoYTEKLSBkZWZhdWx0X3N0YXJ0ZGF0ZSAgICAgID0gMTEwMjEyMTQ0NDA2WgotIGRlZmF1bHRfZW5kZGF0ZSAgICAgICAgPSAyMTAyMTIxNDQ0MDZaCi0gbmV3X2NlcnRzX2RpciAgICAgICAgICA9IC4vCi0gZGF0YWJhc2UgICAgICAgICAgICAgICA9IC4vdGVzdC1jYS5zZXJ2ZXIxLmZ1dHVyZS1jcmwuZGIKLSBwb2xpY3kgICAgICAgICAgICAgICAgID0gcG9saWN5X21hdGNoCi0KLSBbcG9saWN5X21hdGNoXQotIGNvdW50cnlOYW1lICAgICAgICAgICAgPSBzdXBwbGllZAotIG9yZ2FuaXphdGlvbk5hbWUgICAgICAgPSBzdXBwbGllZAotIGNvbW1vbk5hbWUgICAgICAgICAgICAgPSBzdXBwbGllZApkaWZmIC0tZ2l0IGEvdGVzdHMvZGF0YV9maWxlcy90ZXN0LWNhLnNlcnZlcjEub3BlbnNzbGNvbmYgYi90ZXN0cy9kYXRhX2ZpbGVzL3Rlc3QtY2Euc2VydmVyMS5vcGVuc3NsY29uZgpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMjA5YjBmZi4uMDAwMDAwMAotLS0gYS90ZXN0cy9kYXRhX2ZpbGVzL3Rlc3QtY2Euc2VydmVyMS5vcGVuc3NsY29uZgorKysgL2Rldi9udWxsCkBAIC0xLDE4ICswLDAgQEAKLSBbIGNhIF0KLSBkZWZhdWx0X2NhICAgICAgICAgICAgID0gdGVzdC1jYQotCi0gWyB0ZXN0LWNhIF0KLSBjZXJ0aWZpY2F0ZSAgICAgICAgICAgID0gdGVzdC1jYS5jcnQKLSBwcml2YXRlX2tleSAgICAgICAgICAgID0gdGVzdC1jYS5rZXkKLSBzZXJpYWwgICAgICAgICAgICAgICAgID0gdGVzdC1jYS5zZXJ2ZXIxLnNlcmlhbAotIGRlZmF1bHRfbWQgICAgICAgICAgICAgPSBzaGExCi0gZGVmYXVsdF9zdGFydGRhdGUgICAgICA9IDExMDIxMjE0NDQwNloKLSBkZWZhdWx0X2VuZGRhdGUgICAgICAgID0gMjEwMjEyMTQ0NDA2WgotIG5ld19jZXJ0c19kaXIgICAgICAgICAgPSAuLwotIGRhdGFiYXNlICAgICAgICAgICAgICAgPSAuL3Rlc3QtY2Euc2VydmVyMS5kYgotIHBvbGljeSAgICAgICAgICAgICAgICAgPSBwb2xpY3lfbWF0Y2gKLQotIFtwb2xpY3lfbWF0Y2hdCi0gY291bnRyeU5hbWUgICAgICAgICAgICA9IHN1cHBsaWVkCi0gb3JnYW5pemF0aW9uTmFtZSAgICAgICA9IHN1cHBsaWVkCi0gY29tbW9uTmFtZSAgICAgICAgICAgICA9IHN1cHBsaWVkCmRpZmYgLS1naXQgYS90ZXN0cy9kYXRhX2ZpbGVzL3Rlc3QtY2Euc2VydmVyMS50ZXN0X3NlcmlhbC5vcGVuc3NsY29uZiBiL3Rlc3RzL2RhdGFfZmlsZXMvdGVzdC1jYS5zZXJ2ZXIxLnRlc3Rfc2VyaWFsLm9wZW5zc2xjb25mCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0M2E1MjBlLi4wMDAwMDAwCi0tLSBhL3Rlc3RzL2RhdGFfZmlsZXMvdGVzdC1jYS5zZXJ2ZXIxLnRlc3Rfc2VyaWFsLm9wZW5zc2xjb25mCisrKyAvZGV2L251bGwKQEAgLTEsMjUgKzAsMCBAQAotIFsgY2EgXQotIGRlZmF1bHRfY2EgICAgICAgICAgICAgPSB0ZXN0LWNhCi0KLSBbIHRlc3QtY2EgXQotIGNlcnRpZmljYXRlICAgICAgICAgICAgPSB0ZXN0LWNhLmNydAotIHByaXZhdGVfa2V5ICAgICAgICAgICAgPSB0ZXN0LWNhLmtleQotIHNlcmlhbCAgICAgICAgICAgICAgICAgPSB0ZXN0LWNhLnNlcnZlcjEudG1wLnNlcmlhbAotIGRlZmF1bHRfbWQgICAgICAgICAgICAgPSBzaGExCi0gZGVmYXVsdF9zdGFydGRhdGUgICAgICA9IDIwMTkwMjEwMTQ0NDA2WgotIGRlZmF1bHRfZW5kZGF0ZSAgICAgICAgPSAyMDI5MDIxMDE0NDQwNloKLSB4NTA5X2V4dGVuc2lvbnMgICAgICAgID0gdjNfY2EKLSBuZXdfY2VydHNfZGlyICAgICAgICAgID0gLi8KLSBkYXRhYmFzZSAgICAgICAgICAgICAgID0gLi90ZXN0LWNhLnNlcnZlcjEuZGIKLSBwb2xpY3kgICAgICAgICAgICAgICAgID0gcG9saWN5X21hdGNoCi0gdW5pcXVlX3N1YmplY3QgICAgICAgICA9IG5vCi0KLSBbdjNfY2FdCi0gYmFzaWNDb25zdHJhaW50cyA9IENBOmZhbHNlCi0gc3ViamVjdEtleUlkZW50aWZpZXI9aGFzaAotIGF1dGhvcml0eUtleUlkZW50aWZpZXI9a2V5aWQ6YWx3YXlzCi0KLSBbcG9saWN5X21hdGNoXQotIGNvdW50cnlOYW1lICAgICAgICAgICAgPSBzdXBwbGllZAotIG9yZ2FuaXphdGlvbk5hbWUgICAgICAgPSBzdXBwbGllZAotIGNvbW1vbk5hbWUgICAgICAgICAgICAgPSBzdXBwbGllZApkaWZmIC0tZ2l0IGEvdGVzdHMvZGF0YV9maWxlcy90ZXN0LWNhMi1leHBpcmVkLmNydCBiL3Rlc3RzL2RhdGFfZmlsZXMvdGVzdC1jYTItZXhwaXJlZC5jcnQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDIyZTQ3OTcuLjAwMDAwMDAKLS0tIGEvdGVzdHMvZGF0YV9maWxlcy90ZXN0LWNhMi1leHBpcmVkLmNydAorKysgL2Rldi9udWxsCkBAIC0xLDEzICswLDAgQEAKLS0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQotTUlJQi9UQ0NBWUNnQXdJQkFnSUJBVEFNQmdncWhrak9QUVFEQWdVQU1ENHhDekFKQmdOVkJBWVRBazVNTVJFdwotRHdZRFZRUUtFd2hRYjJ4aGNsTlRUREVjTUJvR0ExVUVBeE1UVUc5c1lYSnpjMndnVkdWemRDQkZReUJEUVRBZQotRncwd016QTVNalF4TlRRNU5EaGFGdzB4TXpBNU1qUXhOVFE1TkRoYU1ENHhDekFKQmdOVkJBWVRBazVNTVJFdwotRHdZRFZRUUtFd2hRYjJ4aGNsTlRUREVjTUJvR0ExVUVBeE1UVUc5c1lYSnpjMndnVkdWemRDQkZReUJEUVRCMgotTUJBR0J5cUdTTTQ5QWdFR0JTdUJCQUFpQTJJQUJNUGFLelJCTjFndmgxYisvSW02S1VOTFR1QnV3dzVYVXpNNQotV05SU3RKR1ZPUXNqMzE4WEpHSkkvQnFWS2M0c0xZZkNpRktBcjlacXF5SGR1Tk1jYmxpNHl1aXlhWTd6UWEwcAotdzdSZmRhZEhiOVVaS1ZWcG1sTTdJTFJtRm1BekhxTlFNRTR3REFZRFZSMFRCQVV3QXdFQi96QWRCZ05WSFE0RQotRmdRVW5XMGdKRWtCUHl2TGVMVVp2SDRreWR2N05ud3dId1lEVlIwakJCZ3dGb0FVblcwZ0pFa0JQeXZMZUxVWgotdkg0a3lkdjdObnd3REFZSUtvWkl6ajBFQXdJRkFBTnBBREJtQWpFQXZRLzQ5bFhYckxZZE9JR3RUYVlXanBaUAotdFJCWFFpR1BNelV2bUtCazdnTTdiRjRpRlBzZEppa3lYSG11d3YzUkFqRUE4dnRVWDhmQUFCM2ZiaDVkRVhSbQotbDd0ejBTdy9SVzZBSEZ0YUlhdUdraEhxZUtJYUtJaTZXU2dIdTZ4OTd1eWcKLS0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KZGlmZiAtLWdpdCBhL3Rlc3RzL2RhdGFfZmlsZXMvdGVzdC1jYTIuY3J0IGIvdGVzdHMvZGF0YV9maWxlcy90ZXN0LWNhMi5jcnQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGI5NzRmNGMuLjAwMDAwMDAKLS0tIGEvdGVzdHMvZGF0YV9maWxlcy90ZXN0LWNhMi5jcnQKKysrIC9kZXYvbnVsbApAQCAtMSwxMyArMCwwIEBACi0tLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KLU1JSUNCekNDQVl1Z0F3SUJBZ0lKQU1GRDRuNWlROHpvTUF3R0NDcUdTTTQ5QkFNQ0JRQXdQakVMTUFrR0ExVUUKLUJoTUNUa3d4RVRBUEJnTlZCQW9NQ0ZCdmJHRnlVMU5NTVJ3d0dnWURWUVFEREJOUWIyeGhjbk56YkNCVVpYTjAKLUlFVkRJRU5CTUI0WERURTVNREl4TURFME5EUXdNRm9YRFRJNU1ESXhNREUwTkRRd01Gb3dQakVMTUFrR0ExVUUKLUJoTUNUa3d4RVRBUEJnTlZCQW9NQ0ZCdmJHRnlVMU5NTVJ3d0dnWURWUVFEREJOUWIyeGhjbk56YkNCVVpYTjAKLUlFVkRJRU5CTUhZd0VBWUhLb1pJemowQ0FRWUZLNEVFQUNJRFlnQUV3OW9yTkVFM1dDK0hWdjc4aWJvcFEwdE8KLTRHN0REbGRUTXpsWTFGSzBrWlU1Q3lQZlh4Y2tZa2o4R3BVcHppd3RoOEtJVW9DdjFtcXJJZDI0MHh4dVdMaksKLTZMSnBqdk5CclNuRHRGOTFwMGR2MVJrcFZXbWFVenNndEdZV1lETWVvMU13VVRBUEJnTlZIUk1CQWY4RUJUQUQKLUFRSC9NQjBHQTFVZERnUVdCQlNkYlNBa1NRRS9LOHQ0dFJtOGZpVEoyL3MyZkRBZkJnTlZIU01FR0RBV2dCU2QKLWJTQWtTUUUvSzh0NHRSbThmaVRKMi9zMmZEQU1CZ2dxaGtqT1BRUURBZ1VBQTJnQU1HVUNNUURwTldmQklsenEKLTZ4VjJVd1FELzFZR3o5ZlFVTTdBZk5LelZhMlBWQnBmL1FEMVRBeWxUWVRGNEdJNnFsYjZFUFlDTUYvWVZhMjkKLU41eUMxbUZBaXIxOWpiOVBsOWlpSWtSbTE3ZE00eTZtNVZJTWVwRVBtL1ZsV0FhOEg1cDErQlBiR3c9PQotLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQpkaWZmIC0tZ2l0IGEvdGVzdHMvZGF0YV9maWxlcy90ZXN0LWNhMi5jcnQuZGVyIGIvdGVzdHMvZGF0YV9maWxlcy90ZXN0LWNhMi5jcnQuZGVyCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3MGQ2YWJjLi4wMDAwMDAwCi0tLSBhL3Rlc3RzL2RhdGFfZmlsZXMvdGVzdC1jYTIuY3J0LmRlcgorKysgL2Rldi9udWxsCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3Rlc3RzL2RhdGFfZmlsZXMvdGVzdC1jYTIua2V5IGIvdGVzdHMvZGF0YV9maWxlcy90ZXN0LWNhMi5rZXkKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGNjYmJhM2MuLjAwMDAwMDAKLS0tIGEvdGVzdHMvZGF0YV9maWxlcy90ZXN0LWNhMi5rZXkKKysrIC9kZXYvbnVsbApAQCAtMSw2ICswLDAgQEAKLS0tLS0tQkVHSU4gRUMgUFJJVkFURSBLRVktLS0tLQotTUlHa0FnRUJCRENEMlJVT29ISHdWeEF6b3ppNGhzR21FVjF0dEFQaEtYWkYxNGR2STZ0RUlPcGtlNFd4ZHVlRgotbGFwMDF0R2tYdXFnQndZRks0RUVBQ0toWkFOaUFBVEQyaXMwUVRkWUw0ZFcvdnlKdWlsRFMwN2dic01PVjFNegotT1ZqVVVyU1JsVGtMSTk5ZkZ5UmlTUHdhbFNuT0xDMkh3b2hTZ0svV2Fxc2gzYmpUSEc1WXVNcm9zbW1PODBHdAotS2NPMFgzV25SMi9WR1NsVmFacFRPeUMwWmhaZ014ND0KLS0tLS0tRU5EIEVDIFBSSVZBVEUgS0VZLS0tLS0KZGlmZiAtLWdpdCBhL3Rlc3RzL2RhdGFfZmlsZXMvdGVzdC1jYTIua2V5LmRlciBiL3Rlc3RzL2RhdGFfZmlsZXMvdGVzdC1jYTIua2V5LmRlcgpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYmY2NDE0MS4uMDAwMDAwMAotLS0gYS90ZXN0cy9kYXRhX2ZpbGVzL3Rlc3QtY2EyLmtleS5kZXIKKysrIC9kZXYvbnVsbApCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS90ZXN0cy9kYXRhX2ZpbGVzL3Rlc3QtY2EyLmtleS5lbmMgYi90ZXN0cy9kYXRhX2ZpbGVzL3Rlc3QtY2EyLmtleS5lbmMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGJiNzA5OTAuLjAwMDAwMDAKLS0tIGEvdGVzdHMvZGF0YV9maWxlcy90ZXN0LWNhMi5rZXkuZW5jCisrKyAvZGV2L251bGwKQEAgLTEsOSArMCwwIEBACi0tLS0tLUJFR0lOIEVDIFBSSVZBVEUgS0VZLS0tLS0KLVByb2MtVHlwZTogNCxFTkNSWVBURUQKLURFSy1JbmZvOiBERVMtRURFMy1DQkMsMzA3RUFCNDY5OTMzRDY0RQotCi1JeGJyUm1LY0F6Y3RKcVBkVFFMQTRTV3lCWVlHWUpWa1lFbmErRjdQYTV0NVlnL2dLQURyRktjbTZCNzJlN0RHCi1paEV4dFpJNjQ4czB6ZFl3NnFTSjc0dnJQU3VXRGU1cW05M0Jxc2ZWSDlzdnRDeldIVzBwbTFwMEtUQkNGZlVxCi1Vc3VXVElUd0pJbWNubEFzMWdhUlozc0FXbTdjT1VpZEwwZm8yRzBmWVVGTmNZb0NTTGZmQ0ZURUhCdVBuYWdiCi1hNzd4L3NZMUJ2aWk4UzkvWGhEVGI2cFRNeDA2d3pybQotLS0tLS1FTkQgRUMgUFJJVkFURSBLRVktLS0tLQpkaWZmIC0tZ2l0IGEvdGVzdHMvZGF0YV9maWxlcy90ZXN0LWNhMi5rdS1jcmwuY3J0IGIvdGVzdHMvZGF0YV9maWxlcy90ZXN0LWNhMi5rdS1jcmwuY3J0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzMDNhMmMwLi4wMDAwMDAwCi0tLSBhL3Rlc3RzL2RhdGFfZmlsZXMvdGVzdC1jYTIua3UtY3JsLmNydAorKysgL2Rldi9udWxsCkBAIC0xLDEyICswLDAgQEAKLS0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQotTUlJQjJEQ0NBVjZnQXdJQkFnSVVOM0RBVnEwS245azNGUFVQWkdXMmQzclpuMjh3Q2dZSUtvWkl6ajBFQXdJdwotUGpFTE1Ba0dBMVVFQmhNQ1Rrd3hFVEFQQmdOVkJBb01DRkJ2YkdGeVUxTk1NUnd3R2dZRFZRUUREQk5RYjJ4aAotY25OemJDQlVaWE4wSUVWRElFTkJNQjRYRFRJek1EVXhOekEzTVRBek4xb1hEVE16TURVeE56QTNNVEF6TjFvdwotUGpFTE1Ba0dBMVVFQmhNQ1Rrd3hFVEFQQmdOVkJBb01DRkJ2YkdGeVUxTk1NUnd3R2dZRFZRUUREQk5RYjJ4aAotY25OemJDQlVaWE4wSUVWRElFTkJNSFl3RUFZSEtvWkl6ajBDQVFZRks0RUVBQ0lEWWdBRXc5b3JORUUzV0MrSAotVnY3OGlib3BRMHRPNEc3RERsZFRNemxZMUZLMGtaVTVDeVBmWHhja1lrajhHcFVweml3dGg4S0lVb0N2MW1xcgotSWQyNDB4eHVXTGpLNkxKcGp2TkJyU25EdEY5MXAwZHYxUmtwVldtYVV6c2d0R1lXWURNZW94MHdHekFNQmdOVgotSFJNRUJUQURBUUgvTUFzR0ExVWREd1FFQXdJQkFqQUtCZ2dxaGtqT1BRUURBZ05vQURCbEFqQXhvcS9RNFBFQQotOFNEZDNjUWFWSXd4OG9KVkV6ZkpvMUJCMncxTG5qdlVYWnJReWRqTlhNVTRKZ29ybS8yL3VMZ0NNUUN5STZjWgotRUFJZ0tQWWxUNi96SkhCajQ1cWVqczUyN09mSTRYbitrUTdPdkhRdEhhQ0F6UXc0aDdKZngrZ1hhVW89Ci0tLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCmRpZmYgLS1naXQgYS90ZXN0cy9kYXRhX2ZpbGVzL3Rlc3QtY2EyLmt1LWNybC5jcnQub3BlbnNzbC52M19leHQgYi90ZXN0cy9kYXRhX2ZpbGVzL3Rlc3QtY2EyLmt1LWNybC5jcnQub3BlbnNzbC52M19leHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDRiYzVkM2MuLjAwMDAwMDAKLS0tIGEvdGVzdHMvZGF0YV9maWxlcy90ZXN0LWNhMi5rdS1jcmwuY3J0Lm9wZW5zc2wudjNfZXh0CisrKyAvZGV2L251bGwKQEAgLTEsNCArMCwwIEBACi1iYXNpY0NvbnN0cmFpbnRzID0gQ0E6dHJ1ZQotc3ViamVjdEtleUlkZW50aWZpZXI9bm9uZQota2V5VXNhZ2UgPSBjUkxTaWduCi0KZGlmZiAtLWdpdCBhL3Rlc3RzL2RhdGFfZmlsZXMvdGVzdC1jYTIua3UtY3J0LmNydCBiL3Rlc3RzL2RhdGFfZmlsZXMvdGVzdC1jYTIua3UtY3J0LmNydApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNWNhZDdiMi4uMDAwMDAwMAotLS0gYS90ZXN0cy9kYXRhX2ZpbGVzL3Rlc3QtY2EyLmt1LWNydC5jcnQKKysrIC9kZXYvbnVsbApAQCAtMSwxMiArMCwwIEBACi0tLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KLU1JSUIyRENDQVY2Z0F3SUJBZ0lVWURjWUlKNkVCYkthZktlWExnUExFK1JzSlpvd0NnWUlLb1pJemowRUF3SXcKLVBqRUxNQWtHQTFVRUJoTUNUa3d4RVRBUEJnTlZCQW9NQ0ZCdmJHRnlVMU5NTVJ3d0dnWURWUVFEREJOUWIyeGgKLWNuTnpiQ0JVWlhOMElFVkRJRU5CTUI0WERUSXpNRFV4TWpFd016RXdOVm9YRFRNek1EVXhNakV3TXpFd05Wb3cKLVBqRUxNQWtHQTFVRUJoTUNUa3d4RVRBUEJnTlZCQW9NQ0ZCdmJHRnlVMU5NTVJ3d0dnWURWUVFEREJOUWIyeGgKLWNuTnpiQ0JVWlhOMElFVkRJRU5CTUhZd0VBWUhLb1pJemowQ0FRWUZLNEVFQUNJRFlnQUV3OW9yTkVFM1dDK0gKLVZ2NzhpYm9wUTB0TzRHN0REbGRUTXpsWTFGSzBrWlU1Q3lQZlh4Y2tZa2o4R3BVcHppd3RoOEtJVW9DdjFtcXIKLUlkMjQweHh1V0xqSzZMSnBqdk5CclNuRHRGOTFwMGR2MVJrcFZXbWFVenNndEdZV1lETWVveDB3R3pBTUJnTlYKLUhSTUVCVEFEQVFIL01Bc0dBMVVkRHdRRUF3SUNCREFLQmdncWhrak9QUVFEQWdOb0FEQmxBakJ3c2Z5WWlaQjYKLVBwRGdJYllSYlo0VlQ5R0dGTkUzTDRDMUlIOFJOd3p2eXdMdlFmVnAzb2NSQWt6RW9ScG1LQXNDTVFET0dtNDgKLWQ3ektsN0l6bUJ1T1dYWWx1a1dERFd3cE5JNjd6N2cwSmF3ZnlwS0l4Y1BUWkZpUVhWdERkVGRrckdZPQotLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQpkaWZmIC0tZ2l0IGEvdGVzdHMvZGF0YV9maWxlcy90ZXN0LWNhMi5rdS1jcnQuY3J0Lm9wZW5zc2wudjNfZXh0IGIvdGVzdHMvZGF0YV9maWxlcy90ZXN0LWNhMi5rdS1jcnQuY3J0Lm9wZW5zc2wudjNfZXh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5OTdjODkzLi4wMDAwMDAwCi0tLSBhL3Rlc3RzL2RhdGFfZmlsZXMvdGVzdC1jYTIua3UtY3J0LmNydC5vcGVuc3NsLnYzX2V4dAorKysgL2Rldi9udWxsCkBAIC0xLDQgKzAsMCBAQAotYmFzaWNDb25zdHJhaW50cyA9IENBOnRydWUKLXN1YmplY3RLZXlJZGVudGlmaWVyPW5vbmUKLWtleVVzYWdlID0ga2V5Q2VydFNpZ24KLQpkaWZmIC0tZ2l0IGEvdGVzdHMvZGF0YV9maWxlcy90ZXN0LWNhMi5rdS1jcnRfY3JsLmNydCBiL3Rlc3RzL2RhdGFfZmlsZXMvdGVzdC1jYTIua3UtY3J0X2NybC5jcnQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDRjNjk1ODIuLjAwMDAwMDAKLS0tIGEvdGVzdHMvZGF0YV9maWxlcy90ZXN0LWNhMi5rdS1jcnRfY3JsLmNydAorKysgL2Rldi9udWxsCkBAIC0xLDEyICswLDAgQEAKLS0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQotTUlJQjJUQ0NBVjZnQXdJQkFnSVVkNWY0MkY0YWhqa3g5QUlOMDM1cGNGNFdGaWt3Q2dZSUtvWkl6ajBFQXdJdwotUGpFTE1Ba0dBMVVFQmhNQ1Rrd3hFVEFQQmdOVkJBb01DRkJ2YkdGeVUxTk1NUnd3R2dZRFZRUUREQk5RYjJ4aAotY25OemJDQlVaWE4wSUVWRElFTkJNQjRYRFRJek1EVXhOekEzTVRBek4xb1hEVE16TURVeE56QTNNVEF6TjFvdwotUGpFTE1Ba0dBMVVFQmhNQ1Rrd3hFVEFQQmdOVkJBb01DRkJ2YkdGeVUxTk1NUnd3R2dZRFZRUUREQk5RYjJ4aAotY25OemJDQlVaWE4wSUVWRElFTkJNSFl3RUFZSEtvWkl6ajBDQVFZRks0RUVBQ0lEWWdBRXc5b3JORUUzV0MrSAotVnY3OGlib3BRMHRPNEc3RERsZFRNemxZMUZLMGtaVTVDeVBmWHhja1lrajhHcFVweml3dGg4S0lVb0N2MW1xcgotSWQyNDB4eHVXTGpLNkxKcGp2TkJyU25EdEY5MXAwZHYxUmtwVldtYVV6c2d0R1lXWURNZW94MHdHekFNQmdOVgotSFJNRUJUQURBUUgvTUFzR0ExVWREd1FFQXdJQkJqQUtCZ2dxaGtqT1BRUURBZ05wQURCbUFqRUE2SVV2UXdTdwotdkVrSGpVOVlOc1BjVXNKZjBVVEhVVzFUOG1OYmdrK3pDbDZmemVVNzNvQ1hINnpvaTVxNnZMZ2pBakVBdjYzQwoteGtubUpKNEgzWmxjK081R2xjWDlWUU5aRG4xeFY3aGYyeVcxR2Y3d0xUblNXVGY1YlhBVGFJUTZRTE8xCi0tLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCmRpZmYgLS1naXQgYS90ZXN0cy9kYXRhX2ZpbGVzL3Rlc3QtY2EyLmt1LWNydF9jcmwuY3J0Lm9wZW5zc2wudjNfZXh0IGIvdGVzdHMvZGF0YV9maWxlcy90ZXN0LWNhMi5rdS1jcnRfY3JsLmNydC5vcGVuc3NsLnYzX2V4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMGZkNzNhMi4uMDAwMDAwMAotLS0gYS90ZXN0cy9kYXRhX2ZpbGVzL3Rlc3QtY2EyLmt1LWNydF9jcmwuY3J0Lm9wZW5zc2wudjNfZXh0CisrKyAvZGV2L251bGwKQEAgLTEsNCArMCwwIEBACi1iYXNpY0NvbnN0cmFpbnRzID0gQ0E6dHJ1ZQotc3ViamVjdEtleUlkZW50aWZpZXI9bm9uZQota2V5VXNhZ2UgPSBrZXlDZXJ0U2lnbiwgY1JMU2lnbgotCmRpZmYgLS1naXQgYS90ZXN0cy9kYXRhX2ZpbGVzL3Rlc3QtY2EyLmt1LWRzLmNydCBiL3Rlc3RzL2RhdGFfZmlsZXMvdGVzdC1jYTIua3UtZHMuY3J0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyOTA3YWE3Li4wMDAwMDAwCi0tLSBhL3Rlc3RzL2RhdGFfZmlsZXMvdGVzdC1jYTIua3UtZHMuY3J0CisrKyAvZGV2L251bGwKQEAgLTEsMTIgKzAsMCBAQAotLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCi1NSUlCMlRDQ0FWNmdBd0lCQWdJVWI1eHNPNkZFbUF6K1hwR0ZIcFc3T0RGdnVwMHdDZ1lJS29aSXpqMEVBd0l3Ci1QakVMTUFrR0ExVUVCaE1DVGt3eEVUQVBCZ05WQkFvTUNGQnZiR0Z5VTFOTU1Sd3dHZ1lEVlFRRERCTlFiMnhoCi1jbk56YkNCVVpYTjBJRVZESUVOQk1CNFhEVEl6TURVeE56QTNNVEF6TjFvWERUTXpNRFV4TnpBM01UQXpOMW93Ci1QakVMTUFrR0ExVUVCaE1DVGt3eEVUQVBCZ05WQkFvTUNGQnZiR0Z5VTFOTU1Sd3dHZ1lEVlFRRERCTlFiMnhoCi1jbk56YkNCVVpYTjBJRVZESUVOQk1IWXdFQVlIS29aSXpqMENBUVlGSzRFRUFDSURZZ0FFdzlvck5FRTNXQytICi1Wdjc4aWJvcFEwdE80RzdERGxkVE16bFkxRkswa1pVNUN5UGZYeGNrWWtqOEdwVXB6aXd0aDhLSVVvQ3YxbXFyCi1JZDI0MHh4dVdMaks2TEpwanZOQnJTbkR0RjkxcDBkdjFSa3BWV21hVXpzZ3RHWVdZRE1lb3gwd0d6QU1CZ05WCi1IUk1FQlRBREFRSC9NQXNHQTFVZER3UUVBd0lIZ0RBS0JnZ3Foa2pPUFFRREFnTnBBREJtQWpFQTQ0SFZ2R1l2Ci1tZUEzU3BhTkptdWJMS2pzUWxHTm5FVVVvMUlPME5CUDV5V0cwZFJGa1g4TlEwYnpILzFuNkZKY0FqRUFtOXdqCi14ZG1FUFVyNlBZNTRjMElRSk5lZUY3NkwxLytFc3pYclNEUTdUTHYxWUM0ZDR1TU5tcXdSOUVHdVVYKy8KLS0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KZGlmZiAtLWdpdCBhL3Rlc3RzL2RhdGFfZmlsZXMvdGVzdC1jYTIua3UtZHMuY3J0Lm9wZW5zc2wudjNfZXh0IGIvdGVzdHMvZGF0YV9maWxlcy90ZXN0LWNhMi5rdS1kcy5jcnQub3BlbnNzbC52M19leHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDA4ZTQ5ZDQuLjAwMDAwMDAKLS0tIGEvdGVzdHMvZGF0YV9maWxlcy90ZXN0LWNhMi5rdS1kcy5jcnQub3BlbnNzbC52M19leHQKKysrIC9kZXYvbnVsbApAQCAtMSw0ICswLDAgQEAKLWJhc2ljQ29uc3RyYWludHMgPSBDQTp0cnVlCi1zdWJqZWN0S2V5SWRlbnRpZmllcj1ub25lCi1rZXlVc2FnZSA9IGRpZ2l0YWxTaWduYXR1cmUKLQpkaWZmIC0tZ2l0IGEvdGVzdHMvZGF0YV9maWxlcy90ZXN0LWNhMi5yZXEuc2hhMjU2IGIvdGVzdHMvZGF0YV9maWxlcy90ZXN0LWNhMi5yZXEuc2hhMjU2CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2ZDQ2YjJhLi4wMDAwMDAwCi0tLSBhL3Rlc3RzL2RhdGFfZmlsZXMvdGVzdC1jYTIucmVxLnNoYTI1NgorKysgL2Rldi9udWxsCkBAIC0xLDkgKzAsMCBAQAotLS0tLS1CRUdJTiBDRVJUSUZJQ0FURSBSRVFVRVNULS0tLS0KLU1JSUJPVENCdlFJQkFEQStNUXN3Q1FZRFZRUUdFd0pPVERFUk1BOEdBMVVFQ2d3SVVHOXNZWEpUVTB3eEhEQWEKLUJnTlZCQU1NRTFCdmJHRnljM05zSUZSbGMzUWdSVU1nUTBFd2RqQVFCZ2NxaGtqT1BRSUJCZ1VyZ1FRQUlnTmkKLUFBVEQyaXMwUVRkWUw0ZFcvdnlKdWlsRFMwN2dic01PVjFNek9WalVVclNSbFRrTEk5OWZGeVJpU1B3YWxTbk8KLUxDMkh3b2hTZ0svV2Fxc2gzYmpUSEc1WXVNcm9zbW1PODBHdEtjTzBYM1duUjIvVkdTbFZhWnBUT3lDMFpoWmcKLU14NmdBREFNQmdncWhrak9QUVFEQWdVQUEya0FNR1lDTVFERWxlZjkrS2ZSYlpPQTI5WnlVNzUwZkIzb2I4MkUKLThSNzExK2hrOUhPc2swRzlVY2NwM3RUKzFuaENjTU5obldzQ01RRDZZOGU5amNFYUtTUGlXV2ZnQ1o1TmFRNWwKLXB2UERVZGNQVjhzWnQyY2dOUzhmY1JJSUhibFFLdnI2bWlIWGw5WT0KLS0tLS0tRU5EIENFUlRJRklDQVRFIFJFUVVFU1QtLS0tLQpkaWZmIC0tZ2l0IGEvdGVzdHMvZGF0YV9maWxlcy90ZXN0LWNhMl9jYXQtZnV0dXJlLWludmFsaWQuY3J0IGIvdGVzdHMvZGF0YV9maWxlcy90ZXN0LWNhMl9jYXQtZnV0dXJlLWludmFsaWQuY3J0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4MzNlNDk3Li4wMDAwMDAwCi0tLSBhL3Rlc3RzL2RhdGFfZmlsZXMvdGVzdC1jYTJfY2F0LWZ1dHVyZS1pbnZhbGlkLmNydAorKysgL2Rldi9udWxsCkBAIC0xLDI3ICswLDAgQEAKLS0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQotTUlJQ0JqQ0NBWXVnQXdJQkFnSUpBTUZENG41aVE4em9NQXdHQ0NxR1NNNDlCQU1DQlFBd1BqRUxNQWtHQTFVRQotQmhNQ1Rrd3hFVEFQQmdOVkJBb01DRkJ2YkdGeVUxTk1NUnd3R2dZRFZRUUREQk5RYjJ4aGNuTnpiQ0JVWlhOMAotSUVWRElFTkJNQjRYRFRJNU1ESXhNREUwTkRRd01Gb1hEVE01TURJeE1ERTBORFF3TUZvd1BqRUxNQWtHQTFVRQotQmhNQ1Rrd3hFVEFQQmdOVkJBb01DRkJ2YkdGeVUxTk1NUnd3R2dZRFZRUUREQk5RYjJ4aGNuTnpiQ0JVWlhOMAotSUVWRElFTkJNSFl3RUFZSEtvWkl6ajBDQVFZRks0RUVBQ0lEWWdBRXc5b3JORUUzV0MrSFZ2NzhpYm9wUTB0TwotNEc3RERsZFRNemxZMUZLMGtaVTVDeVBmWHhja1lrajhHcFVweml3dGg4S0lVb0N2MW1xcklkMjQweHh1V0xqSwotNkxKcGp2TkJyU25EdEY5MXAwZHYxUmtwVldtYVV6c2d0R1lXWURNZW8xTXdVVEFQQmdOVkhSTUJBZjhFQlRBRAotQVFIL01CMEdBMVVkRGdRV0JCU2RiU0FrU1FFL0s4dDR0Um04ZmlUSjIvczJmREFmQmdOVkhTTUVHREFXZ0JTZAotYlNBa1NRRS9LOHQ0dFJtOGZpVEoyL3MyZkRBTUJnZ3Foa2pPUFFRREFnVUFBMmNBTUdRQ01DRHd4cHZWMG16WgotNW55cjN0cExJTHlhRVJHeVZ1U0dIQUpxZDg4ZnNXRWlWNi94bWlPVGVJR2xOOFdMVkwwM0ZRSXdKWW5TSWVDagotdnd1UWFXemVJeXBFbkdJVDJBMmVKMklJckpyRnI5eHBhZnFOMXZSRFNLNVZadU0xQjRSdFcyT1UKLS0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KLS0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQotTUlJQ0lEQ0NBYVdnQXdJQkFnSUJDakFLQmdncWhrak9QUVFEQWpBK01Rc3dDUVlEVlFRR0V3Sk9UREVSTUE4RwotQTFVRUNnd0lVRzlzWVhKVFUwd3hIREFhQmdOVkJBTU1FMUJ2YkdGeWMzTnNJRlJsYzNRZ1JVTWdRMEV3SGhjTgotTWpNd05URTNNRGN4TURNM1doY05Nek13TlRFME1EY3hNRE0zV2pBME1Rc3dDUVlEVlFRR0V3Sk9UREVSTUE4RwotQTFVRUNnd0lVRzlzWVhKVFUwd3hFakFRQmdOVkJBTU1DV3h2WTJGc2FHOXpkREJaTUJNR0J5cUdTTTQ5QWdFRwotQ0NxR1NNNDlBd0VIQTBJQUJJRlpNWFpKSlBvVnJhdWdNVzRPN1RNUitwRWxWY0d3d1p3RGNqNll1aTJrY2plSgotSDBNM2pSK09PdGp3VitndlQ4a0FwUGZiY3creXhnU1UwVUE3T09PamdaMHdnWm93Q1FZRFZSMFRCQUl3QURBZAotQmdOVkhRNEVGZ1FVZm1XUFBqTURGT1hodm1DeTRJVi9qT2RnSzNzd2JnWURWUjBqQkdjd1pZQVVuVzBnSkVrQgotUHl2TGVMVVp2SDRreWR2N05ueWhRcVJBTUQ0eEN6QUpCZ05WQkFZVEFrNU1NUkV3RHdZRFZRUUtEQWhRYjJ4aAotY2xOVFRERWNNQm9HQTFVRUF3d1RVRzlzWVhKemMyd2dWR1Z6ZENCRlF5QkRRWUlKQU1GRDRuNWlROHpvTUFvRwotQ0NxR1NNNDlCQU1DQTJrQU1HWUNNUUM3bWxQK2JxL2M0aEtCM3pmSmdQZHdTbnp6UU9rWHdkQTJPNlF1bUMybwotWnVIeWpVWVY1L1p5VThRUTdjTm5LbllDTVFEOUJ5QTdkZHBWRTJHaytPVnVCUEdmd1Y0TzJDT2dGcmFzZnJUbgotS2dmdUNFRjk2QmhTakxEWFdLQjRJRldhWFVRPQotLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQpkaWZmIC0tZ2l0IGEvdGVzdHMvZGF0YV9maWxlcy90ZXN0LWNhMl9jYXQtZnV0dXJlLXByZXNlbnQuY3J0IGIvdGVzdHMvZGF0YV9maWxlcy90ZXN0LWNhMl9jYXQtZnV0dXJlLXByZXNlbnQuY3J0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2NDljY2EwLi4wMDAwMDAwCi0tLSBhL3Rlc3RzL2RhdGFfZmlsZXMvdGVzdC1jYTJfY2F0LWZ1dHVyZS1wcmVzZW50LmNydAorKysgL2Rldi9udWxsCkBAIC0xLDI2ICswLDAgQEAKLS0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQotTUlJQ0JqQ0NBWXVnQXdJQkFnSUpBTUZENG41aVE4em9NQXdHQ0NxR1NNNDlCQU1DQlFBd1BqRUxNQWtHQTFVRQotQmhNQ1Rrd3hFVEFQQmdOVkJBb01DRkJ2YkdGeVUxTk1NUnd3R2dZRFZRUUREQk5RYjJ4aGNuTnpiQ0JVWlhOMAotSUVWRElFTkJNQjRYRFRJNU1ESXhNREUwTkRRd01Gb1hEVE01TURJeE1ERTBORFF3TUZvd1BqRUxNQWtHQTFVRQotQmhNQ1Rrd3hFVEFQQmdOVkJBb01DRkJ2YkdGeVUxTk1NUnd3R2dZRFZRUUREQk5RYjJ4aGNuTnpiQ0JVWlhOMAotSUVWRElFTkJNSFl3RUFZSEtvWkl6ajBDQVFZRks0RUVBQ0lEWWdBRXc5b3JORUUzV0MrSFZ2NzhpYm9wUTB0TwotNEc3RERsZFRNemxZMUZLMGtaVTVDeVBmWHhja1lrajhHcFVweml3dGg4S0lVb0N2MW1xcklkMjQweHh1V0xqSwotNkxKcGp2TkJyU25EdEY5MXAwZHYxUmtwVldtYVV6c2d0R1lXWURNZW8xTXdVVEFQQmdOVkhSTUJBZjhFQlRBRAotQVFIL01CMEdBMVVkRGdRV0JCU2RiU0FrU1FFL0s4dDR0Um04ZmlUSjIvczJmREFmQmdOVkhTTUVHREFXZ0JTZAotYlNBa1NRRS9LOHQ0dFJtOGZpVEoyL3MyZkRBTUJnZ3Foa2pPUFFRREFnVUFBMmNBTUdRQ01DRHd4cHZWMG16WgotNW55cjN0cExJTHlhRVJHeVZ1U0dIQUpxZDg4ZnNXRWlWNi94bWlPVGVJR2xOOFdMVkwwM0ZRSXdKWW5TSWVDagotdnd1UWFXemVJeXBFbkdJVDJBMmVKMklJckpyRnI5eHBhZnFOMXZSRFNLNVZadU0xQjRSdFcyT1UKLS0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KLS0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQotTUlJQ0J6Q0NBWXVnQXdJQkFnSUpBTUZENG41aVE4em9NQXdHQ0NxR1NNNDlCQU1DQlFBd1BqRUxNQWtHQTFVRQotQmhNQ1Rrd3hFVEFQQmdOVkJBb01DRkJ2YkdGeVUxTk1NUnd3R2dZRFZRUUREQk5RYjJ4aGNuTnpiQ0JVWlhOMAotSUVWRElFTkJNQjRYRFRFNU1ESXhNREUwTkRRd01Gb1hEVEk1TURJeE1ERTBORFF3TUZvd1BqRUxNQWtHQTFVRQotQmhNQ1Rrd3hFVEFQQmdOVkJBb01DRkJ2YkdGeVUxTk1NUnd3R2dZRFZRUUREQk5RYjJ4aGNuTnpiQ0JVWlhOMAotSUVWRElFTkJNSFl3RUFZSEtvWkl6ajBDQVFZRks0RUVBQ0lEWWdBRXc5b3JORUUzV0MrSFZ2NzhpYm9wUTB0TwotNEc3RERsZFRNemxZMUZLMGtaVTVDeVBmWHhja1lrajhHcFVweml3dGg4S0lVb0N2MW1xcklkMjQweHh1V0xqSwotNkxKcGp2TkJyU25EdEY5MXAwZHYxUmtwVldtYVV6c2d0R1lXWURNZW8xTXdVVEFQQmdOVkhSTUJBZjhFQlRBRAotQVFIL01CMEdBMVVkRGdRV0JCU2RiU0FrU1FFL0s4dDR0Um04ZmlUSjIvczJmREFmQmdOVkhTTUVHREFXZ0JTZAotYlNBa1NRRS9LOHQ0dFJtOGZpVEoyL3MyZkRBTUJnZ3Foa2pPUFFRREFnVUFBMmdBTUdVQ01RRHBOV2ZCSWx6cQotNnhWMlV3UUQvMVlHejlmUVVNN0FmTkt6VmEyUFZCcGYvUUQxVEF5bFRZVEY0R0k2cWxiNkVQWUNNRi9ZVmEyOQotTjV5QzFtRkFpcjE5amI5UGw5aWlJa1JtMTdkTTR5Nm01VklNZXBFUG0vVmxXQWE4SDVwMStCUGJHdz09Ci0tLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCmRpZmYgLS1naXQgYS90ZXN0cy9kYXRhX2ZpbGVzL3Rlc3QtY2EyX2NhdC1wYXN0LWludmFsaWQuY3J0IGIvdGVzdHMvZGF0YV9maWxlcy90ZXN0LWNhMl9jYXQtcGFzdC1pbnZhbGlkLmNydApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYTBiMGEyZi4uMDAwMDAwMAotLS0gYS90ZXN0cy9kYXRhX2ZpbGVzL3Rlc3QtY2EyX2NhdC1wYXN0LWludmFsaWQuY3J0CisrKyAvZGV2L251bGwKQEAgLTEsMjcgKzAsMCBAQAotLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCi1NSUlCL1RDQ0FZQ2dBd0lCQWdJQkFUQU1CZ2dxaGtqT1BRUURBZ1VBTUQ0eEN6QUpCZ05WQkFZVEFrNU1NUkV3Ci1Ed1lEVlFRS0V3aFFiMnhoY2xOVFRERWNNQm9HQTFVRUF4TVRVRzlzWVhKemMyd2dWR1Z6ZENCRlF5QkRRVEFlCi1GdzB3TXpBNU1qUXhOVFE1TkRoYUZ3MHhNekE1TWpReE5UUTVORGhhTUQ0eEN6QUpCZ05WQkFZVEFrNU1NUkV3Ci1Ed1lEVlFRS0V3aFFiMnhoY2xOVFRERWNNQm9HQTFVRUF4TVRVRzlzWVhKemMyd2dWR1Z6ZENCRlF5QkRRVEIyCi1NQkFHQnlxR1NNNDlBZ0VHQlN1QkJBQWlBMklBQk1QYUt6UkJOMWd2aDFiKy9JbTZLVU5MVHVCdXd3NVhVek01Ci1XTlJTdEpHVk9Rc2ozMThYSkdKSS9CcVZLYzRzTFlmQ2lGS0FyOVpxcXlIZHVOTWNibGk0eXVpeWFZN3pRYTBwCi13N1JmZGFkSGI5VVpLVlZwbWxNN0lMUm1GbUF6SHFOUU1FNHdEQVlEVlIwVEJBVXdBd0VCL3pBZEJnTlZIUTRFCi1GZ1FVblcwZ0pFa0JQeXZMZUxVWnZINGt5ZHY3Tm53d0h3WURWUjBqQkJnd0ZvQVVuVzBnSkVrQlB5dkxlTFVaCi12SDRreWR2N05ud3dEQVlJS29aSXpqMEVBd0lGQUFOcEFEQm1BakVBdlEvNDlsWFhyTFlkT0lHdFRhWVdqcFpQCi10UkJYUWlHUE16VXZtS0JrN2dNN2JGNGlGUHNkSmlreVhIbXV3djNSQWpFQTh2dFVYOGZBQUIzZmJoNWRFWFJtCi1sN3R6MFN3L1JXNkFIRnRhSWF1R2toSHFlS0lhS0lpNldTZ0h1Nng5N3V5ZwotLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQotLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCi1NSUlDSURDQ0FhV2dBd0lCQWdJQkNqQUtCZ2dxaGtqT1BRUURBakErTVFzd0NRWURWUVFHRXdKT1RERVJNQThHCi1BMVVFQ2d3SVVHOXNZWEpUVTB3eEhEQWFCZ05WQkFNTUUxQnZiR0Z5YzNOc0lGUmxjM1FnUlVNZ1EwRXdIaGNOCi1Nak13TlRFM01EY3hNRE0zV2hjTk16TXdOVEUwTURjeE1ETTNXakEwTVFzd0NRWURWUVFHRXdKT1RERVJNQThHCi1BMVVFQ2d3SVVHOXNZWEpUVTB3eEVqQVFCZ05WQkFNTUNXeHZZMkZzYUc5emREQlpNQk1HQnlxR1NNNDlBZ0VHCi1DQ3FHU000OUF3RUhBMElBQklGWk1YWkpKUG9WcmF1Z01XNE83VE1SK3BFbFZjR3d3WndEY2o2WXVpMmtjamVKCi1IME0zalIrT090andWK2d2VDhrQXBQZmJjdyt5eGdTVTBVQTdPT09qZ1owd2dab3dDUVlEVlIwVEJBSXdBREFkCi1CZ05WSFE0RUZnUVVmbVdQUGpNREZPWGh2bUN5NElWL2pPZGdLM3N3YmdZRFZSMGpCR2N3WllBVW5XMGdKRWtCCi1QeXZMZUxVWnZINGt5ZHY3Tm55aFFxUkFNRDR4Q3pBSkJnTlZCQVlUQWs1TU1SRXdEd1lEVlFRS0RBaFFiMnhoCi1jbE5UVERFY01Cb0dBMVVFQXd3VFVHOXNZWEp6YzJ3Z1ZHVnpkQ0JGUXlCRFFZSUpBTUZENG41aVE4em9NQW9HCi1DQ3FHU000OUJBTUNBMmtBTUdZQ01RQzdtbFArYnEvYzRoS0IzemZKZ1Bkd1NuenpRT2tYd2RBMk82UXVtQzJvCi1adUh5alVZVjUvWnlVOFFRN2NObktuWUNNUUQ5QnlBN2RkcFZFMkdrK09WdUJQR2Z3VjRPMkNPZ0ZyYXNmclRuCi1LZ2Z1Q0VGOTZCaFNqTERYV0tCNElGV2FYVVE9Ci0tLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCmRpZmYgLS1naXQgYS90ZXN0cy9kYXRhX2ZpbGVzL3Rlc3QtY2EyX2NhdC1wYXN0LXByZXNlbnQuY3J0IGIvdGVzdHMvZGF0YV9maWxlcy90ZXN0LWNhMl9jYXQtcGFzdC1wcmVzZW50LmNydApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMjRlMDVjNi4uMDAwMDAwMAotLS0gYS90ZXN0cy9kYXRhX2ZpbGVzL3Rlc3QtY2EyX2NhdC1wYXN0LXByZXNlbnQuY3J0CisrKyAvZGV2L251bGwKQEAgLTEsMjYgKzAsMCBAQAotLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCi1NSUlCL1RDQ0FZQ2dBd0lCQWdJQkFUQU1CZ2dxaGtqT1BRUURBZ1VBTUQ0eEN6QUpCZ05WQkFZVEFrNU1NUkV3Ci1Ed1lEVlFRS0V3aFFiMnhoY2xOVFRERWNNQm9HQTFVRUF4TVRVRzlzWVhKemMyd2dWR1Z6ZENCRlF5QkRRVEFlCi1GdzB3TXpBNU1qUXhOVFE1TkRoYUZ3MHhNekE1TWpReE5UUTVORGhhTUQ0eEN6QUpCZ05WQkFZVEFrNU1NUkV3Ci1Ed1lEVlFRS0V3aFFiMnhoY2xOVFRERWNNQm9HQTFVRUF4TVRVRzlzWVhKemMyd2dWR1Z6ZENCRlF5QkRRVEIyCi1NQkFHQnlxR1NNNDlBZ0VHQlN1QkJBQWlBMklBQk1QYUt6UkJOMWd2aDFiKy9JbTZLVU5MVHVCdXd3NVhVek01Ci1XTlJTdEpHVk9Rc2ozMThYSkdKSS9CcVZLYzRzTFlmQ2lGS0FyOVpxcXlIZHVOTWNibGk0eXVpeWFZN3pRYTBwCi13N1JmZGFkSGI5VVpLVlZwbWxNN0lMUm1GbUF6SHFOUU1FNHdEQVlEVlIwVEJBVXdBd0VCL3pBZEJnTlZIUTRFCi1GZ1FVblcwZ0pFa0JQeXZMZUxVWnZINGt5ZHY3Tm53d0h3WURWUjBqQkJnd0ZvQVVuVzBnSkVrQlB5dkxlTFVaCi12SDRreWR2N05ud3dEQVlJS29aSXpqMEVBd0lGQUFOcEFEQm1BakVBdlEvNDlsWFhyTFlkT0lHdFRhWVdqcFpQCi10UkJYUWlHUE16VXZtS0JrN2dNN2JGNGlGUHNkSmlreVhIbXV3djNSQWpFQTh2dFVYOGZBQUIzZmJoNWRFWFJtCi1sN3R6MFN3L1JXNkFIRnRhSWF1R2toSHFlS0lhS0lpNldTZ0h1Nng5N3V5ZwotLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQotLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCi1NSUlDQnpDQ0FZdWdBd0lCQWdJSkFNRkQ0bjVpUTh6b01Bd0dDQ3FHU000OUJBTUNCUUF3UGpFTE1Ba0dBMVVFCi1CaE1DVGt3eEVUQVBCZ05WQkFvTUNGQnZiR0Z5VTFOTU1Sd3dHZ1lEVlFRRERCTlFiMnhoY25OemJDQlVaWE4wCi1JRVZESUVOQk1CNFhEVEU1TURJeE1ERTBORFF3TUZvWERUSTVNREl4TURFME5EUXdNRm93UGpFTE1Ba0dBMVVFCi1CaE1DVGt3eEVUQVBCZ05WQkFvTUNGQnZiR0Z5VTFOTU1Sd3dHZ1lEVlFRRERCTlFiMnhoY25OemJDQlVaWE4wCi1JRVZESUVOQk1IWXdFQVlIS29aSXpqMENBUVlGSzRFRUFDSURZZ0FFdzlvck5FRTNXQytIVnY3OGlib3BRMHRPCi00RzdERGxkVE16bFkxRkswa1pVNUN5UGZYeGNrWWtqOEdwVXB6aXd0aDhLSVVvQ3YxbXFySWQyNDB4eHVXTGpLCi02TEpwanZOQnJTbkR0RjkxcDBkdjFSa3BWV21hVXpzZ3RHWVdZRE1lbzFNd1VUQVBCZ05WSFJNQkFmOEVCVEFECi1BUUgvTUIwR0ExVWREZ1FXQkJTZGJTQWtTUUUvSzh0NHRSbThmaVRKMi9zMmZEQWZCZ05WSFNNRUdEQVdnQlNkCi1iU0FrU1FFL0s4dDR0Um04ZmlUSjIvczJmREFNQmdncWhrak9QUVFEQWdVQUEyZ0FNR1VDTVFEcE5XZkJJbHpxCi02eFYyVXdRRC8xWUd6OWZRVU03QWZOS3pWYTJQVkJwZi9RRDFUQXlsVFlURjRHSTZxbGI2RVBZQ01GL1lWYTI5Ci1ONXlDMW1GQWlyMTlqYjlQbDlpaUlrUm0xN2RNNHk2bTVWSU1lcEVQbS9WbFdBYThINXAxK0JQYkd3PT0KLS0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KZGlmZiAtLWdpdCBhL3Rlc3RzL2RhdGFfZmlsZXMvdGVzdC1jYTJfY2F0LXByZXNlbnQtZnV0dXJlLmNydCBiL3Rlc3RzL2RhdGFfZmlsZXMvdGVzdC1jYTJfY2F0LXByZXNlbnQtZnV0dXJlLmNydApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNjUzOTQ3OS4uMDAwMDAwMAotLS0gYS90ZXN0cy9kYXRhX2ZpbGVzL3Rlc3QtY2EyX2NhdC1wcmVzZW50LWZ1dHVyZS5jcnQKKysrIC9kZXYvbnVsbApAQCAtMSwyNiArMCwwIEBACi0tLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KLU1JSUNCekNDQVl1Z0F3SUJBZ0lKQU1GRDRuNWlROHpvTUF3R0NDcUdTTTQ5QkFNQ0JRQXdQakVMTUFrR0ExVUUKLUJoTUNUa3d4RVRBUEJnTlZCQW9NQ0ZCdmJHRnlVMU5NTVJ3d0dnWURWUVFEREJOUWIyeGhjbk56YkNCVVpYTjAKLUlFVkRJRU5CTUI0WERURTVNREl4TURFME5EUXdNRm9YRFRJNU1ESXhNREUwTkRRd01Gb3dQakVMTUFrR0ExVUUKLUJoTUNUa3d4RVRBUEJnTlZCQW9NQ0ZCdmJHRnlVMU5NTVJ3d0dnWURWUVFEREJOUWIyeGhjbk56YkNCVVpYTjAKLUlFVkRJRU5CTUhZd0VBWUhLb1pJemowQ0FRWUZLNEVFQUNJRFlnQUV3OW9yTkVFM1dDK0hWdjc4aWJvcFEwdE8KLTRHN0REbGRUTXpsWTFGSzBrWlU1Q3lQZlh4Y2tZa2o4R3BVcHppd3RoOEtJVW9DdjFtcXJJZDI0MHh4dVdMaksKLTZMSnBqdk5CclNuRHRGOTFwMGR2MVJrcFZXbWFVenNndEdZV1lETWVvMU13VVRBUEJnTlZIUk1CQWY4RUJUQUQKLUFRSC9NQjBHQTFVZERnUVdCQlNkYlNBa1NRRS9LOHQ0dFJtOGZpVEoyL3MyZkRBZkJnTlZIU01FR0RBV2dCU2QKLWJTQWtTUUUvSzh0NHRSbThmaVRKMi9zMmZEQU1CZ2dxaGtqT1BRUURBZ1VBQTJnQU1HVUNNUURwTldmQklsenEKLTZ4VjJVd1FELzFZR3o5ZlFVTTdBZk5LelZhMlBWQnBmL1FEMVRBeWxUWVRGNEdJNnFsYjZFUFlDTUYvWVZhMjkKLU41eUMxbUZBaXIxOWpiOVBsOWlpSWtSbTE3ZE00eTZtNVZJTWVwRVBtL1ZsV0FhOEg1cDErQlBiR3c9PQotLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQotLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCi1NSUlDQmpDQ0FZdWdBd0lCQWdJSkFNRkQ0bjVpUTh6b01Bd0dDQ3FHU000OUJBTUNCUUF3UGpFTE1Ba0dBMVVFCi1CaE1DVGt3eEVUQVBCZ05WQkFvTUNGQnZiR0Z5VTFOTU1Sd3dHZ1lEVlFRRERCTlFiMnhoY25OemJDQlVaWE4wCi1JRVZESUVOQk1CNFhEVEk1TURJeE1ERTBORFF3TUZvWERUTTVNREl4TURFME5EUXdNRm93UGpFTE1Ba0dBMVVFCi1CaE1DVGt3eEVUQVBCZ05WQkFvTUNGQnZiR0Z5VTFOTU1Sd3dHZ1lEVlFRRERCTlFiMnhoY25OemJDQlVaWE4wCi1JRVZESUVOQk1IWXdFQVlIS29aSXpqMENBUVlGSzRFRUFDSURZZ0FFdzlvck5FRTNXQytIVnY3OGlib3BRMHRPCi00RzdERGxkVE16bFkxRkswa1pVNUN5UGZYeGNrWWtqOEdwVXB6aXd0aDhLSVVvQ3YxbXFySWQyNDB4eHVXTGpLCi02TEpwanZOQnJTbkR0RjkxcDBkdjFSa3BWV21hVXpzZ3RHWVdZRE1lbzFNd1VUQVBCZ05WSFJNQkFmOEVCVEFECi1BUUgvTUIwR0ExVWREZ1FXQkJTZGJTQWtTUUUvSzh0NHRSbThmaVRKMi9zMmZEQWZCZ05WSFNNRUdEQVdnQlNkCi1iU0FrU1FFL0s4dDR0Um04ZmlUSjIvczJmREFNQmdncWhrak9QUVFEQWdVQUEyY0FNR1FDTUNEd3hwdlYwbXpaCi01bnlyM3RwTElMeWFFUkd5VnVTR0hBSnFkODhmc1dFaVY2L3htaU9UZUlHbE44V0xWTDAzRlFJd0pZblNJZUNqCi12d3VRYVd6ZUl5cEVuR0lUMkEyZUoySUlySnJGcjl4cGFmcU4xdlJEU0s1Vlp1TTFCNFJ0VzJPVQotLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQpkaWZmIC0tZ2l0IGEvdGVzdHMvZGF0YV9maWxlcy90ZXN0LWNhMl9jYXQtcHJlc2VudC1wYXN0LmNydCBiL3Rlc3RzL2RhdGFfZmlsZXMvdGVzdC1jYTJfY2F0LXByZXNlbnQtcGFzdC5jcnQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDA4YWVlZWEuLjAwMDAwMDAKLS0tIGEvdGVzdHMvZGF0YV9maWxlcy90ZXN0LWNhMl9jYXQtcHJlc2VudC1wYXN0LmNydAorKysgL2Rldi9udWxsCkBAIC0xLDI2ICswLDAgQEAKLS0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQotTUlJQ0J6Q0NBWXVnQXdJQkFnSUpBTUZENG41aVE4em9NQXdHQ0NxR1NNNDlCQU1DQlFBd1BqRUxNQWtHQTFVRQotQmhNQ1Rrd3hFVEFQQmdOVkJBb01DRkJ2YkdGeVUxTk1NUnd3R2dZRFZRUUREQk5RYjJ4aGNuTnpiQ0JVWlhOMAotSUVWRElFTkJNQjRYRFRFNU1ESXhNREUwTkRRd01Gb1hEVEk1TURJeE1ERTBORFF3TUZvd1BqRUxNQWtHQTFVRQotQmhNQ1Rrd3hFVEFQQmdOVkJBb01DRkJ2YkdGeVUxTk1NUnd3R2dZRFZRUUREQk5RYjJ4aGNuTnpiQ0JVWlhOMAotSUVWRElFTkJNSFl3RUFZSEtvWkl6ajBDQVFZRks0RUVBQ0lEWWdBRXc5b3JORUUzV0MrSFZ2NzhpYm9wUTB0TwotNEc3RERsZFRNemxZMUZLMGtaVTVDeVBmWHhja1lrajhHcFVweml3dGg4S0lVb0N2MW1xcklkMjQweHh1V0xqSwotNkxKcGp2TkJyU25EdEY5MXAwZHYxUmtwVldtYVV6c2d0R1lXWURNZW8xTXdVVEFQQmdOVkhSTUJBZjhFQlRBRAotQVFIL01CMEdBMVVkRGdRV0JCU2RiU0FrU1FFL0s4dDR0Um04ZmlUSjIvczJmREFmQmdOVkhTTUVHREFXZ0JTZAotYlNBa1NRRS9LOHQ0dFJtOGZpVEoyL3MyZkRBTUJnZ3Foa2pPUFFRREFnVUFBMmdBTUdVQ01RRHBOV2ZCSWx6cQotNnhWMlV3UUQvMVlHejlmUVVNN0FmTkt6VmEyUFZCcGYvUUQxVEF5bFRZVEY0R0k2cWxiNkVQWUNNRi9ZVmEyOQotTjV5QzFtRkFpcjE5amI5UGw5aWlJa1JtMTdkTTR5Nm01VklNZXBFUG0vVmxXQWE4SDVwMStCUGJHdz09Ci0tLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCi0tLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KLU1JSUIvVENDQVlDZ0F3SUJBZ0lCQVRBTUJnZ3Foa2pPUFFRREFnVUFNRDR4Q3pBSkJnTlZCQVlUQWs1TU1SRXcKLUR3WURWUVFLRXdoUWIyeGhjbE5UVERFY01Cb0dBMVVFQXhNVFVHOXNZWEp6YzJ3Z1ZHVnpkQ0JGUXlCRFFUQWUKLUZ3MHdNekE1TWpReE5UUTVORGhhRncweE16QTVNalF4TlRRNU5EaGFNRDR4Q3pBSkJnTlZCQVlUQWs1TU1SRXcKLUR3WURWUVFLRXdoUWIyeGhjbE5UVERFY01Cb0dBMVVFQXhNVFVHOXNZWEp6YzJ3Z1ZHVnpkQ0JGUXlCRFFUQjIKLU1CQUdCeXFHU000OUFnRUdCU3VCQkFBaUEySUFCTVBhS3pSQk4xZ3ZoMWIrL0ltNktVTkxUdUJ1d3c1WFV6TTUKLVdOUlN0SkdWT1FzajMxOFhKR0pJL0JxVktjNHNMWWZDaUZLQXI5WnFxeUhkdU5NY2JsaTR5dWl5YVk3elFhMHAKLXc3UmZkYWRIYjlVWktWVnBtbE03SUxSbUZtQXpIcU5RTUU0d0RBWURWUjBUQkFVd0F3RUIvekFkQmdOVkhRNEUKLUZnUVVuVzBnSkVrQlB5dkxlTFVadkg0a3lkdjdObnd3SHdZRFZSMGpCQmd3Rm9BVW5XMGdKRWtCUHl2TGVMVVoKLXZINGt5ZHY3Tm53d0RBWUlLb1pJemowRUF3SUZBQU5wQURCbUFqRUF2US80OWxYWHJMWWRPSUd0VGFZV2pwWlAKLXRSQlhRaUdQTXpVdm1LQms3Z003YkY0aUZQc2RKaWt5WEhtdXd2M1JBakVBOHZ0VVg4ZkFBQjNmYmg1ZEVYUm0KLWw3dHowU3cvUlc2QUhGdGFJYXVHa2hIcWVLSWFLSWk2V1NnSHU2eDk3dXlnCi0tLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCmRpZmYgLS1naXQgYS90ZXN0cy9kYXRhX2ZpbGVzL3Rlc3QtY2FfY2F0MTIuY3J0IGIvdGVzdHMvZGF0YV9maWxlcy90ZXN0LWNhX2NhdDEyLmNydApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYzU0YmNjMS4uMDAwMDAwMAotLS0gYS90ZXN0cy9kYXRhX2ZpbGVzL3Rlc3QtY2FfY2F0MTIuY3J0CisrKyAvZGV2L251bGwKQEAgLTEsMzMgKzAsMCBAQAotLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCi1NSUlEUkRDQ0FpeWdBd0lCQWdJQkF6QU5CZ2txaGtpRzl3MEJBUVVGQURBN01Rc3dDUVlEVlFRR0V3Sk9UREVSCi1NQThHQTFVRUNnd0lVRzlzWVhKVFUwd3hHVEFYQmdOVkJBTU1FRkJ2YkdGeVUxTk1JRlJsYzNRZ1EwRXdIaGNOCi1NVGt3TWpFd01UUTBOREF3V2hjTk1qa3dNakV3TVRRME5EQXdXakE3TVFzd0NRWURWUVFHRXdKT1RERVJNQThHCi1BMVVFQ2d3SVVHOXNZWEpUVTB3eEdUQVhCZ05WQkFNTUVGQnZiR0Z5VTFOTUlGUmxjM1FnUTBFd2dnRWlNQTBHCi1DU3FHU0liM0RRRUJBUVVBQTRJQkR3QXdnZ0VLQW9JQkFRREEzemY4Rjd2Z2xwMC9odDZXTW4xRXBSYWd6U0h4Ci1tZFRzNnN0OEdGZ0lsS1hzbThXTDN4b2VtVGlaaHg1N3dJMDUzemhkY0hnSDA1N1prK2k1Y2xIRnpxTXdVcW55Ci01MEJ3Rk10RW9uSUx3dVZBK1Q3bHBnNnorZXhLWThDNEtRQjBuRmM3cUtVRWtISHh2WVBaUDlhbDRqd3FqKzhuCi1ZTVBHbjh1NjdHQjl0K2FFTXI1UCsxZ21JZ05iMUxUVisvWGpsaTV3d09RdXZmd3U3dUpCVmNBMExuMGtjbW5MCi1SN0VVUUlOOVovU0c5akdyOFhta3NyVXVFdm1FRi9CaWJ5YytFMWl4VkEwaG1uTTNvVERQYjVMYzl1bjhyTnN1Ci1LTkYrQWtzam9CWHlPR1ZrQ2VvTWJvNGJGNkJ4eUxPYnlhdnB3L0xQaDVhUGdBSXlucGxZYjZMVkFnTUJBQUdqCi1VekJSTUE4R0ExVWRFd0VCL3dRRk1BTUJBZjh3SFFZRFZSME9CQllFRkxSYTVLV3ozdEpTOXJuVnBwVVA2ejY4Ci14LzMvTUI4R0ExVWRJd1FZTUJhQUZMUmE1S1d6M3RKUzlyblZwcFVQNno2OHgvMy9NQTBHQ1NxR1NJYjNEUUVCCi1CUVVBQTRJQkFRQ3o1NTdaWm1XdjVVVFRIZWJ6VHlWemt1NWxkcGNpY0pQcUtIUDN4WjR0UFBZNTJKUXlKZy9UCi1oc1JCNDR5VHlObzMvam85b3IyS2dWbmMrL25DbW5sdlRxMjJhL2oyNkR0S1o3d0Q5TVd4dW5wa3FSd0V4dEEvCi1HODE2bXNybDZYNm01MFd3ZExYVHZhVkpHWENZcDhUUFZMeDVZWTNXUElWb1gwQ1BON0hzOWlOSk5pRVdvNFFmCi03ZEFxaldCQi9RcHVzbVdoamFEU2M0K2NGaFQyNFlvOUh1UzF5cmtVVHJCdEphajBBeWtUc2l5Rm02U0JWRE5ICi05WEl4Q2dZeTlRclliREtOdEpYaHVldnBOMHlVTVYvYVVuSWtVMndUVG91aE96Wmlzak5rMHNTMWd1cW1TSHpmCi1obGY4cW90T2hOdkZYcEVzQ0d3WlV5d2F5bzdjNER0TwotLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQotLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCi1NSUlDQnpDQ0FZdWdBd0lCQWdJSkFNRkQ0bjVpUTh6b01Bd0dDQ3FHU000OUJBTUNCUUF3UGpFTE1Ba0dBMVVFCi1CaE1DVGt3eEVUQVBCZ05WQkFvTUNGQnZiR0Z5VTFOTU1Sd3dHZ1lEVlFRRERCTlFiMnhoY25OemJDQlVaWE4wCi1JRVZESUVOQk1CNFhEVEU1TURJeE1ERTBORFF3TUZvWERUSTVNREl4TURFME5EUXdNRm93UGpFTE1Ba0dBMVVFCi1CaE1DVGt3eEVUQVBCZ05WQkFvTUNGQnZiR0Z5VTFOTU1Sd3dHZ1lEVlFRRERCTlFiMnhoY25OemJDQlVaWE4wCi1JRVZESUVOQk1IWXdFQVlIS29aSXpqMENBUVlGSzRFRUFDSURZZ0FFdzlvck5FRTNXQytIVnY3OGlib3BRMHRPCi00RzdERGxkVE16bFkxRkswa1pVNUN5UGZYeGNrWWtqOEdwVXB6aXd0aDhLSVVvQ3YxbXFySWQyNDB4eHVXTGpLCi02TEpwanZOQnJTbkR0RjkxcDBkdjFSa3BWV21hVXpzZ3RHWVdZRE1lbzFNd1VUQVBCZ05WSFJNQkFmOEVCVEFECi1BUUgvTUIwR0ExVWREZ1FXQkJTZGJTQWtTUUUvSzh0NHRSbThmaVRKMi9zMmZEQWZCZ05WSFNNRUdEQVdnQlNkCi1iU0FrU1FFL0s4dDR0Um04ZmlUSjIvczJmREFNQmdncWhrak9QUVFEQWdVQUEyZ0FNR1VDTVFEcE5XZkJJbHpxCi02eFYyVXdRRC8xWUd6OWZRVU03QWZOS3pWYTJQVkJwZi9RRDFUQXlsVFlURjRHSTZxbGI2RVBZQ01GL1lWYTI5Ci1ONXlDMW1GQWlyMTlqYjlQbDlpaUlrUm0xN2RNNHk2bTVWSU1lcEVQbS9WbFdBYThINXAxK0JQYkd3PT0KLS0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KZGlmZiAtLWdpdCBhL3Rlc3RzL2RhdGFfZmlsZXMvdGVzdC1jYV9jYXQyMS5jcnQgYi90ZXN0cy9kYXRhX2ZpbGVzL3Rlc3QtY2FfY2F0MjEuY3J0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiMDkwZGM2Li4wMDAwMDAwCi0tLSBhL3Rlc3RzL2RhdGFfZmlsZXMvdGVzdC1jYV9jYXQyMS5jcnQKKysrIC9kZXYvbnVsbApAQCAtMSwzMyArMCwwIEBACi0tLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KLU1JSUNCekNDQVl1Z0F3SUJBZ0lKQU1GRDRuNWlROHpvTUF3R0NDcUdTTTQ5QkFNQ0JRQXdQakVMTUFrR0ExVUUKLUJoTUNUa3d4RVRBUEJnTlZCQW9NQ0ZCdmJHRnlVMU5NTVJ3d0dnWURWUVFEREJOUWIyeGhjbk56YkNCVVpYTjAKLUlFVkRJRU5CTUI0WERURTVNREl4TURFME5EUXdNRm9YRFRJNU1ESXhNREUwTkRRd01Gb3dQakVMTUFrR0ExVUUKLUJoTUNUa3d4RVRBUEJnTlZCQW9NQ0ZCdmJHRnlVMU5NTVJ3d0dnWURWUVFEREJOUWIyeGhjbk56YkNCVVpYTjAKLUlFVkRJRU5CTUhZd0VBWUhLb1pJemowQ0FRWUZLNEVFQUNJRFlnQUV3OW9yTkVFM1dDK0hWdjc4aWJvcFEwdE8KLTRHN0REbGRUTXpsWTFGSzBrWlU1Q3lQZlh4Y2tZa2o4R3BVcHppd3RoOEtJVW9DdjFtcXJJZDI0MHh4dVdMaksKLTZMSnBqdk5CclNuRHRGOTFwMGR2MVJrcFZXbWFVenNndEdZV1lETWVvMU13VVRBUEJnTlZIUk1CQWY4RUJUQUQKLUFRSC9NQjBHQTFVZERnUVdCQlNkYlNBa1NRRS9LOHQ0dFJtOGZpVEoyL3MyZkRBZkJnTlZIU01FR0RBV2dCU2QKLWJTQWtTUUUvSzh0NHRSbThmaVRKMi9zMmZEQU1CZ2dxaGtqT1BRUURBZ1VBQTJnQU1HVUNNUURwTldmQklsenEKLTZ4VjJVd1FELzFZR3o5ZlFVTTdBZk5LelZhMlBWQnBmL1FEMVRBeWxUWVRGNEdJNnFsYjZFUFlDTUYvWVZhMjkKLU41eUMxbUZBaXIxOWpiOVBsOWlpSWtSbTE3ZE00eTZtNVZJTWVwRVBtL1ZsV0FhOEg1cDErQlBiR3c9PQotLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQotLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCi1NSUlEUkRDQ0FpeWdBd0lCQWdJQkF6QU5CZ2txaGtpRzl3MEJBUVVGQURBN01Rc3dDUVlEVlFRR0V3Sk9UREVSCi1NQThHQTFVRUNnd0lVRzlzWVhKVFUwd3hHVEFYQmdOVkJBTU1FRkJ2YkdGeVUxTk1JRlJsYzNRZ1EwRXdIaGNOCi1NVGt3TWpFd01UUTBOREF3V2hjTk1qa3dNakV3TVRRME5EQXdXakE3TVFzd0NRWURWUVFHRXdKT1RERVJNQThHCi1BMVVFQ2d3SVVHOXNZWEpUVTB3eEdUQVhCZ05WQkFNTUVGQnZiR0Z5VTFOTUlGUmxjM1FnUTBFd2dnRWlNQTBHCi1DU3FHU0liM0RRRUJBUVVBQTRJQkR3QXdnZ0VLQW9JQkFRREEzemY4Rjd2Z2xwMC9odDZXTW4xRXBSYWd6U0h4Ci1tZFRzNnN0OEdGZ0lsS1hzbThXTDN4b2VtVGlaaHg1N3dJMDUzemhkY0hnSDA1N1prK2k1Y2xIRnpxTXdVcW55Ci01MEJ3Rk10RW9uSUx3dVZBK1Q3bHBnNnorZXhLWThDNEtRQjBuRmM3cUtVRWtISHh2WVBaUDlhbDRqd3FqKzhuCi1ZTVBHbjh1NjdHQjl0K2FFTXI1UCsxZ21JZ05iMUxUVisvWGpsaTV3d09RdXZmd3U3dUpCVmNBMExuMGtjbW5MCi1SN0VVUUlOOVovU0c5akdyOFhta3NyVXVFdm1FRi9CaWJ5YytFMWl4VkEwaG1uTTNvVERQYjVMYzl1bjhyTnN1Ci1LTkYrQWtzam9CWHlPR1ZrQ2VvTWJvNGJGNkJ4eUxPYnlhdnB3L0xQaDVhUGdBSXlucGxZYjZMVkFnTUJBQUdqCi1VekJSTUE4R0ExVWRFd0VCL3dRRk1BTUJBZjh3SFFZRFZSME9CQllFRkxSYTVLV3ozdEpTOXJuVnBwVVA2ejY4Ci14LzMvTUI4R0ExVWRJd1FZTUJhQUZMUmE1S1d6M3RKUzlyblZwcFVQNno2OHgvMy9NQTBHQ1NxR1NJYjNEUUVCCi1CUVVBQTRJQkFRQ3o1NTdaWm1XdjVVVFRIZWJ6VHlWemt1NWxkcGNpY0pQcUtIUDN4WjR0UFBZNTJKUXlKZy9UCi1oc1JCNDR5VHlObzMvam85b3IyS2dWbmMrL25DbW5sdlRxMjJhL2oyNkR0S1o3d0Q5TVd4dW5wa3FSd0V4dEEvCi1HODE2bXNybDZYNm01MFd3ZExYVHZhVkpHWENZcDhUUFZMeDVZWTNXUElWb1gwQ1BON0hzOWlOSk5pRVdvNFFmCi03ZEFxaldCQi9RcHVzbVdoamFEU2M0K2NGaFQyNFlvOUh1UzF5cmtVVHJCdEphajBBeWtUc2l5Rm02U0JWRE5ICi05WEl4Q2dZeTlRclliREtOdEpYaHVldnBOMHlVTVYvYVVuSWtVMndUVG91aE96Wmlzak5rMHNTMWd1cW1TSHpmCi1obGY4cW90T2hOdkZYcEVzQ0d3WlV5d2F5bzdjNER0TwotLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQpkaWZmIC0tZ2l0IGEvdGVzdHMvZGF0YV9maWxlcy90ZXN0LWNhX3ByaW50YWJsZS5jcnQgYi90ZXN0cy9kYXRhX2ZpbGVzL3Rlc3QtY2FfcHJpbnRhYmxlLmNydApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMWU5NWI2ZC4uMDAwMDAwMAotLS0gYS90ZXN0cy9kYXRhX2ZpbGVzL3Rlc3QtY2FfcHJpbnRhYmxlLmNydAorKysgL2Rldi9udWxsCkBAIC0xLDIxICswLDAgQEAKLS0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQotTUlJRGh6Q0NBbStnQXdJQkFnSUJBekFOQmdrcWhraUc5dzBCQVFVRkFEQTdNUXN3Q1FZRFZRUUdFd0pPVERFUgotTUE4R0ExVUVDZ3dJVUc5c1lYSlRVMHd4R1RBWEJnTlZCQU1NRUZCdmJHRnlVMU5NSUZSbGMzUWdRMEV3SGhjTgotTVRrd01qRXhNVE0wTlRJNVdoY05Namt3TWpFeE1UTTBOVEk1V2pBN01Rc3dDUVlEVlFRR0V3Sk9UREVSTUE4RwotQTFVRUNnd0lVRzlzWVhKVFUwd3hHVEFYQmdOVkJBTU1FRkJ2YkdGeVUxTk1JRlJsYzNRZ1EwRXdnZ0VpTUEwRwotQ1NxR1NJYjNEUUVCQVFVQUE0SUJEd0F3Z2dFS0FvSUJBUURBM3pmOEY3dmdscDAvaHQ2V01uMUVwUmFnelNIeAotbWRUczZzdDhHRmdJbEtYc204V0wzeG9lbVRpWmh4NTd3STA1M3poZGNIZ0gwNTdaaytpNWNsSEZ6cU13VXFueQotNTBCd0ZNdEVvbklMd3VWQStUN2xwZzZ6K2V4S1k4QzRLUUIwbkZjN3FLVUVrSEh4dllQWlA5YWw0andxais4bgotWU1QR244dTY3R0I5dCthRU1yNVArMWdtSWdOYjFMVFYrL1hqbGk1d3dPUXV2Znd1N3VKQlZjQTBMbjBrY21uTAotUjdFVVFJTjlaL1NHOWpHcjhYbWtzclV1RXZtRUYvQmlieWMrRTFpeFZBMGhtbk0zb1REUGI1TGM5dW44ck5zdQotS05GK0Frc2pvQlh5T0dWa0Nlb01ibzRiRjZCeHlMT2J5YXZwdy9MUGg1YVBnQUl5bnBsWWI2TFZBZ01CQUFHagotZ1pVd2daSXdIUVlEVlIwT0JCWUVGTFJhNUtXejN0SlM5cm5WcHBVUDZ6Njh4LzMvTUdNR0ExVWRJd1JjTUZxQQotRkxSYTVLV3ozdEpTOXJuVnBwVVA2ejY4eC8zL29UK2tQVEE3TVFzd0NRWURWUVFHRXdKT1RERVJNQThHQTFVRQotQ2d3SVVHOXNZWEpUVTB3eEdUQVhCZ05WQkFNTUVGQnZiR0Z5VTFOTUlGUmxjM1FnUTBHQ0FRTXdEQVlEVlIwVAotQkFVd0F3RUIvekFOQmdrcWhraUc5dzBCQVFVRkFBT0NBUUVBYmhhRkJDdXFPZW5rSmR3UXZyM0IzaFg4TUdFUgotczBQV2dLd1NrcmtmYVJwOFZnMkdCYVZ0K0dkcXRMK3dwbzlOWW9lb1ByRU9qV0htN2dyZG9saGNLT3M5U2RLcQotWHNpUUtDSnF2d3FpSjBQZkl3U0EzMFpxSUd0YjNJOVdMWEJYcmVnay9rdTlzZTJHaEtsTENZZVcwOVRxM3BleAotdEdvdHRWVnlwTkp1TWVkK3lYMk1VTUhyQVc3Ky9aSmh4ZlRWVHY2WVlxcXI2ZXVmdkxpWVBoVWdpaFRuZHFqOQotS2VrbzFrT2I3WHlZTUdLR0VtTFlGWFM0b0pjNXV2d2hreVRJaklacjZlbllSempMVGttaFZwem5TWGRFUktqbAotYjhKaC9oemR3czh5UU9DaytObHFaUEt6OUxEUWlJNXA1dFQ0ZUdtWDV3NGZEMzBRWXpnVFFXTFNLUT09Ci0tLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCmRpZmYgLS1naXQgYS90ZXN0cy9kYXRhX2ZpbGVzL3Rlc3QtY2FfdW5lbmMua2V5IGIvdGVzdHMvZGF0YV9maWxlcy90ZXN0LWNhX3VuZW5jLmtleQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMjk0MWJiZS4uMDAwMDAwMAotLS0gYS90ZXN0cy9kYXRhX2ZpbGVzL3Rlc3QtY2FfdW5lbmMua2V5CisrKyAvZGV2L251bGwKQEAgLTEsMjcgKzAsMCBAQAotLS0tLS1CRUdJTiBSU0EgUFJJVkFURSBLRVktLS0tLQotTUlJRXBBSUJBQUtDQVFFQXdOODMvQmU3NEphZFA0YmVsako5UktVV29NMGg4Wm5VN09yTGZCaFlDSlNsN0p2RgotaTk4YUhwazRtWWNlZThDTk9kODRYWEI0QjlPZTJaUG91WEpSeGM2ak1GS3A4dWRBY0JUTFJLSnlDOExsUVBrKwotNWFZT3MvbnNTbVBBdUNrQWRKeFhPNmlsQkpCeDhiMkQyVC9XcGVJOEtvL3ZKMkREeHAvTHV1eGdmYmZtaERLKwotVC90WUppSURXOVMwMWZ2MTQ1WXVjTURrTHIzOEx1N2lRVlhBTkM1OUpISnB5MGV4RkVDRGZXZjBodll4cS9GNQotcExLMUxoTDVoQmZ3WW04blBoTllzVlFOSVpwek42RXd6MitTM1BicC9LemJMaWpSZmdKTEk2QVY4amhsWkFucQotREc2T0d4ZWdjY2l6bThtcjZjUHl6NGVXajRBQ01wNlpXRytpMVFJREFRQUJBb0lCQUQvM0I5TTBiOXZKTjdlRQotM0RkRjRXT3R1TFoxc2NjMXRIY3FXM2Y1ZnVEQm85RzN5Nmxhd1lmYVd2b1g1TlU0QTk1b21JSHN0ZklxamVrcwotODZibE1oZC9NNEhvT0hMVm5QcE8reWIxRlF1dmhHYXJBdUFZMVpGODFvL0pTM1lJS3gyQmFERGgrbkJzRTA0UQotQXpVK3hjcFlJSW9oR0RpZ0QrM0V1MFZ2OVlSYnNNOU9uVmdUYXpVMWFhSFN4UExCU0FRZ1VibHJwRjJsUzRTSQotUTBpWkxMdWtsOWJXR1Bic1hORXhTY255and0Tjd3a0MvbjM5dTY4cmc1UWl4S2MrWnZYZ1Y5enk3U3crZ1hSMgotSHBadmRCNHlEaFF4MEhUdzlBZTl3OUVpd3FpVmtnWi9Rd0tSdk4wakFZbVVJRVJrOVIxbjBvL29hYVVwSmVaUQotbk9QcHkzVUNnWUVBNGlrK3FtdlZXUjZjNWtmVnR0Zmo4WTZlNllOZkVKOWo3QVJFekQvNDJUb1g0RS8rMkUzTgotUmxSMHZ3ckVaNXluMklsbFRQMVlLa2NQOURlMlZiQWQ3YWM1L0UranhIVTZvNWluUmZWbXkzeGwrNEFqNXYvOQotbVIrT2EvOWVrMmJmYkcvRDlqZ3UvMm0xcks2N3huRVdhOUQ0SXRuNG9uSWcwdUk2Y0V2ZXF5OENnWUVBMmxHYgotdUxJcUZIVllRSTBuY1BveFNMQWdJVFQ2VEZlb0VZanpwNjRoNmJZcjBjMm4rTmdNaW5ZaU5VVE9QeVVwZzMxNQotcHpIVzdMSy8yalMyOXJJNzgzaGFCSU16UHFMaWdZSVQxRFVYWTV1ZXhJMlJUQU4zeDNGYjdvTnQxWGlJOWl4NQotd2txMGVaQnd2OTgwVnBaeDR3NW9rYnpxeXpQQXZrWFgvREQ5QVRzQ2dZRUEwcDhxdHpnWnh4ZVZjM2l1OWN0MQotZzM4WlM4dUcrMG9WbXJZWEJFa0hqZlptU2diMkJhZmZab0k4LzdZZFY0a3pYNXdGZFgvelhkdzBaWEtGSXFRVQotRzBIRDVOQ2VhZFhyT0hSd1E5elpVT1NYYlhQVys4aW4rclRDeEoxZEROV2ZlYk5Vd3Jkc1BYM0xMZmpFODNoYQotTXlxNERHMEcrdkppMDBMUXZjaEtwUTBDZ1lFQTFLbVFGZDYvTE1TTm5mdWh3dVNENDNsbEl0TzNTV3hObEI4aQotc1dEbk9nQ3hPS0tyRDdSc3F1ZWVOT044UUhoVHN2a2o2cUNhNm1ESWo2YXYzeWtKU3dZZU1hMFgydGpSNlRPcgotV3hnSVc0ZjRwUi85dTl6WTdaZFg1TU56MXZDZUFhYWJTSTU2dEx2bGlKSEZLdDlMdXRDTFBnT1hkeTlIZmxFTQotcm1XTjNvY0NnWUFnSkEvU3I4SW9PNWNnc3BKSjZ3bG9RTEsrMGNPRGxEUTQxc25zTkFuNVFXMWNRcFQzQlB3eQotT1dtOEhQcytZWmpBZ05nMlI4TnR3aTduZ1NvWE5HUXdUcGE3SmhhNVFUYitpdFpUZktyc09VSlE3K096QVNneQoteW0zMW1oNmZONzcrT0NBaWtZek5sUUx5VFc4YXRFUHdHZDlsd0pMbm5TOEo1K3hwcU1LUERRPT0KLS0tLS0tRU5EIFJTQSBQUklWQVRFIEtFWS0tLS0tCmRpZmYgLS1naXQgYS90ZXN0cy9kYXRhX2ZpbGVzL3Rlc3QtY2FfdXBwZXJjYXNlLmNydCBiL3Rlc3RzL2RhdGFfZmlsZXMvdGVzdC1jYV91cHBlcmNhc2UuY3J0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzMTI2YTExLi4wMDAwMDAwCi0tLSBhL3Rlc3RzL2RhdGFfZmlsZXMvdGVzdC1jYV91cHBlcmNhc2UuY3J0CisrKyAvZGV2L251bGwKQEAgLTEsMjEgKzAsMCBAQAotLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCi1NSUlEaHpDQ0FtK2dBd0lCQWdJQkF6QU5CZ2txaGtpRzl3MEJBUVVGQURBN01Rc3dDUVlEVlFRR0V3Sk9UREVSCi1NQThHQTFVRUNnd0lVRzlzWVhKVFUwd3hHVEFYQmdOVkJBTU1FRkJ2YkdGeVUxTk1JRlJsYzNRZ1EwRXdIaGNOCi1NVGt3TWpFeE1UTTBOVFEzV2hjTk1qa3dNakV4TVRNME5UUTNXakE3TVFzd0NRWURWUVFHRXdKT1RERVJNQThHCi1BMVVFQ2d3SVVHOXNZWEpUVTB3eEdUQVhCZ05WQkFNTUVGQnZiR0Z5VTFOTUlGUmxjM1FnUTBFd2dnRWlNQTBHCi1DU3FHU0liM0RRRUJBUVVBQTRJQkR3QXdnZ0VLQW9JQkFRREEzemY4Rjd2Z2xwMC9odDZXTW4xRXBSYWd6U0h4Ci1tZFRzNnN0OEdGZ0lsS1hzbThXTDN4b2VtVGlaaHg1N3dJMDUzemhkY0hnSDA1N1prK2k1Y2xIRnpxTXdVcW55Ci01MEJ3Rk10RW9uSUx3dVZBK1Q3bHBnNnorZXhLWThDNEtRQjBuRmM3cUtVRWtISHh2WVBaUDlhbDRqd3FqKzhuCi1ZTVBHbjh1NjdHQjl0K2FFTXI1UCsxZ21JZ05iMUxUVisvWGpsaTV3d09RdXZmd3U3dUpCVmNBMExuMGtjbW5MCi1SN0VVUUlOOVovU0c5akdyOFhta3NyVXVFdm1FRi9CaWJ5YytFMWl4VkEwaG1uTTNvVERQYjVMYzl1bjhyTnN1Ci1LTkYrQWtzam9CWHlPR1ZrQ2VvTWJvNGJGNkJ4eUxPYnlhdnB3L0xQaDVhUGdBSXlucGxZYjZMVkFnTUJBQUdqCi1nWlV3Z1pJd0hRWURWUjBPQkJZRUZMUmE1S1d6M3RKUzlyblZwcFVQNno2OHgvMy9NR01HQTFVZEl3UmNNRnFBCi1GTFJhNUtXejN0SlM5cm5WcHBVUDZ6Njh4LzMvb1Qra1BUQTdNUXN3Q1FZRFZRUUdFd0pPVERFUk1BOEdBMVVFCi1DZ3dJVUc5c1lYSlRVMHd4R1RBWEJnTlZCQU1NRUZCdmJHRnlVMU5NSUZSbGMzUWdRMEdDQVFNd0RBWURWUjBUCi1CQVV3QXdFQi96QU5CZ2txaGtpRzl3MEJBUVVGQUFPQ0FRRUFGczJURE5IblNBT05oQUpjYXo0VzVnaTlHemRxCi1QZ0czMHdUZjJGV0N0Ym1ZN2IvdFBmWGkrTzh6bjQyY211VkM2bTdscDVha2lzTjM0YnViUU5qck1ZdmhrZzlvCi1QSyttSUp3OS9KeGZNWDhKWUNRYVU4VVY0Syt4YUJZOUd1OWpOaFprbHQwUlVLZ2Roci85cjIxN1I5Q2xYNVhaCi0rSEJtUUNVRzFBWGxEOHFtTXh1MlZWa2dCdWJNTFpRUXhzeTZMM2IzeDBOS1h4MFNpTzdZQlZ0RlRCOUtwd2xHCi0wUjZsc28rWGZyUUszUTBnL2tBU3lodWFhRGZJR05QdE5HK3dFZS9nQTlLM05VWTk5VHdLV3BIaHo1WWQrbWZXCi1ySmNQODlMN3RoWGl6cmlwUlQyMmIvRWxQSWdMU1lhcmpLQTMxN3drUUp4WVEzRWxrcGdOYmhhS0hnPT0KLS0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KZGlmZiAtLWdpdCBhL3Rlc3RzL2RhdGFfZmlsZXMvdGVzdC1jYV91dGY4LmNydCBiL3Rlc3RzL2RhdGFfZmlsZXMvdGVzdC1jYV91dGY4LmNydApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMmRhZGM3Ny4uMDAwMDAwMAotLS0gYS90ZXN0cy9kYXRhX2ZpbGVzL3Rlc3QtY2FfdXRmOC5jcnQKKysrIC9kZXYvbnVsbApAQCAtMSwyMSArMCwwIEBACi0tLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KLU1JSURoekNDQW0rZ0F3SUJBZ0lCQXpBTkJna3Foa2lHOXcwQkFRVUZBREE3TVFzd0NRWURWUVFHRXdKT1RERVIKLU1BOEdBMVVFQ2d3SVVHOXNZWEpUVTB3eEdUQVhCZ05WQkFNTUVGQnZiR0Z5VTFOTUlGUmxjM1FnUTBFd0hoY04KLU1Ua3dNakV4TVRNME5URTBXaGNOTWprd01qRXhNVE0wTlRFMFdqQTdNUXN3Q1FZRFZRUUdFd0pPVERFUk1BOEcKLUExVUVDZ3dJVUc5c1lYSlRVMHd4R1RBWEJnTlZCQU1NRUZCdmJHRnlVMU5NSUZSbGMzUWdRMEV3Z2dFaU1BMEcKLUNTcUdTSWIzRFFFQkFRVUFBNElCRHdBd2dnRUtBb0lCQVFEQTN6ZjhGN3ZnbHAwL2h0NldNbjFFcFJhZ3pTSHgKLW1kVHM2c3Q4R0ZnSWxLWHNtOFdMM3hvZW1UaVpoeDU3d0kwNTN6aGRjSGdIMDU3WmsraTVjbEhGenFNd1VxbnkKLTUwQndGTXRFb25JTHd1VkErVDdscGc2eitleEtZOEM0S1FCMG5GYzdxS1VFa0hIeHZZUFpQOWFsNGp3cWorOG4KLVlNUEduOHU2N0dCOXQrYUVNcjVQKzFnbUlnTmIxTFRWKy9YamxpNXd3T1F1dmZ3dTd1SkJWY0EwTG4wa2NtbkwKLVI3RVVRSU45Wi9TRzlqR3I4WG1rc3JVdUV2bUVGL0JpYnljK0UxaXhWQTBobW5NM29URFBiNUxjOXVuOHJOc3UKLUtORitBa3Nqb0JYeU9HVmtDZW9NYm80YkY2Qnh5TE9ieWF2cHcvTFBoNWFQZ0FJeW5wbFliNkxWQWdNQkFBR2oKLWdaVXdnWkl3SFFZRFZSME9CQllFRkxSYTVLV3ozdEpTOXJuVnBwVVA2ejY4eC8zL01HTUdBMVVkSXdSY01GcUEKLUZMUmE1S1d6M3RKUzlyblZwcFVQNno2OHgvMy9vVCtrUFRBN01Rc3dDUVlEVlFRR0V3Sk9UREVSTUE4R0ExVUUKLUNnd0lVRzlzWVhKVFUwd3hHVEFYQmdOVkJBTU1FRkJ2YkdGeVUxTk1JRlJsYzNRZ1EwR0NBUU13REFZRFZSMFQKLUJBVXdBd0VCL3pBTkJna3Foa2lHOXcwQkFRVUZBQU9DQVFFQUtlUHlHVUM0K0VoYjEvZTBsZHdpcGo4U1paUGUKLVFFWHdVZkYyVDNLbS9CZ283dFJoQ01vUmtNYnF0R2hoV00vblZmSGxzRmo2OG5RaXN4cEd5dUZ6TWRiLzU2YVgKLVpoNUtTb2NubHZ2RmVEM25RQ1FDbG5DUmlib1JldWFzSXBIN1VyRlNMSmdrMzBPKzdtQVdITFJEM241MWhPVHkKLTUwc2VMQmdCVWJYdy93WWN4cFM3MThEVFV3OXRTdVJEeEIvdUdCNWl3aHoxbE9ubnNsTDB2c3dLYWNORmlzR2QKLTdIN1Z5bjZZUUZGdXc2VzA0VjRSekNsWEV5UFRKZzVRUk1LUit2R010b01UQ05VRytzQXd3TTVOaUFNNENEWGMKLTB2UEFMenB2bFhuZjJwaTFXV1NaU0xnR01nbjk5Tis3WFhhQTVXMUZKOTdmVHpwclRuT0c2a2wwWUE9PQotLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQpkaWZmIC0tZ2l0IGEvdGVzdHMvZGF0YV9maWxlcy90ZXN0LWludC1jYS1leHAuY3J0IGIvdGVzdHMvZGF0YV9maWxlcy90ZXN0LWludC1jYS1leHAuY3J0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4MzVjN2RiLi4wMDAwMDAwCi0tLSBhL3Rlc3RzL2RhdGFfZmlsZXMvdGVzdC1pbnQtY2EtZXhwLmNydAorKysgL2Rldi9udWxsCkBAIC0xLDI0ICswLDAgQEAKLS0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQotTUlJRUFUQ0NBNGVnQXdJQkFnSUJEakFLQmdncWhrak9QUVFEQWpBK01Rc3dDUVlEVlFRR0V3Sk9UREVSTUE4RwotQTFVRUNnd0lVRzlzWVhKVFUwd3hIREFhQmdOVkJBTU1FMUJ2YkdGeWMzTnNJRlJsYzNRZ1JVTWdRMEV3SGhjTgotTVRNd05URTJNRGN4TURNM1doY05Nak13TlRFM01EY3hNRE0zV2pCSU1Rc3dDUVlEVlFRR0V3Sk9UREVSTUE4RwotQTFVRUNnd0lVRzlzWVhKVFUwd3hKakFrQmdOVkJBTU1IVkJ2YkdGeVUxTk1JRlJsYzNRZ1NXNTBaWEp0WldScAotWVhSbElFTkJNSUlDSWpBTkJna3Foa2lHOXcwQkFRRUZBQU9DQWc4QU1JSUNDZ0tDQWdFQW8xT2M4bnI2Zk1UcQotdm93VitDcEM1NWk1QlpHRkdjNTBFYjRSTEJTUlRIMWU3SmVwZEZqQVZiQnR5UVJKU2lZMWphMHRnTFFEREtaUgotd2ZFSStiNGF6c2U0NjBJblBIdjdDMVROMHVwWGx4dWo2bTlCMUlsUCtzQmFNN1dCQzZkVmZQTytqVk1JeGdrRgotQ2FCQ0xoaGRLMUZqZjhIamtUL1BrY3RXbmhvOE5Ud2l2YzkrbnFSWmpYZS9lSWNxbTVId2pERGh1K2d6K28wZwotVno5TWZaTmkxSnlDck95TlpjeStjcjJRZU5uTlZHbkZxOHhUeHR1NmRMdW5ocG1MRmoybW0wVmp3YTdZcGo1cQotQWpwcVRNdER2cWJSdVRveW95emFqaE1OY0NBZjdnd3pJdXBKSkZWZGpkdGdZQWNRd3ppa3dGNUhvSVRKenpKMgotcWd4RjdDbXZHWk5iN0c5OW1MZExkaHRjbEgzd0FRS0hZd0VHSm83WEt5TkV1SFBRZ0IrZTBjZzFTRDFIcWxBTQotdUNmR0dUV1E2bWU3QmphbjN0ME56b1RkRHE2SXBLVGVzYmFZKy85ZTJ4bjhEQ3JoQktMWFFNWkZEWnFVb0xZQQota0dQT0VHZ3ZsUG5JSVhBYXdvdXhDYU5ZRWg1VXc4NzFZTVNQVDI4ckxkRnI0OWR3WU90RGc5Zm9BOGhESVcyUAotZDZLWGJyWnRlZXN2QTFuWXpFT3MrM0FqcmJUNzlNZDJXOEJ6OWJxQlZObE5PRVNTcW00a2lDSkZtc2xtLzZicgotTnAwTVNRZCtvMjJQUTR4UnRtUDZVc1RmVTB1ZWlNcFljOFRZWWhNYmZuZkZ5bzRtNzA3ZWJjZmxQYkJFTjJkZwotdXBkUTY2Y3ZmQ0pCMFFKdDl1cGFmWTBscGRWMXFVa0NBd0VBQWFPQm9EQ0JuVEFkQmdOVkhRNEVGZ1FVT0hmWQotYTNlY0tIZUNpMDdZRzZrZTk1UVd0dzR3YmdZRFZSMGpCR2N3WllBVW5XMGdKRWtCUHl2TGVMVVp2SDRreWR2NwotTm55aFFxUkFNRDR4Q3pBSkJnTlZCQVlUQWs1TU1SRXdEd1lEVlFRS0RBaFFiMnhoY2xOVFRERWNNQm9HQTFVRQotQXd3VFVHOXNZWEp6YzJ3Z1ZHVnpkQ0JGUXlCRFFZSUpBTUZENG41aVE4em9NQXdHQTFVZEV3UUZNQU1CQWY4dwotQ2dZSUtvWkl6ajBFQXdJRGFBQXdaUUl4QUpIMGU0ZnlTSkkybkp0MUtuZCt5VTd6bjFqVEZEQUFCSk1ibmRoUgotMDdPU002dndVYUdTTVZhdFN6cjhhaCtVRGdJd2FJL01CY29yU3hUOTJqQVFiMVc1ZEprRXVkb1lTZzQ5ZmpBZgotejBCdExDVmhGd1FscnpDcWdYQzk4U0dmVDZzWgotLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQpkaWZmIC0tZ2l0IGEvdGVzdHMvZGF0YV9maWxlcy90ZXN0LWludC1jYS5jcnQgYi90ZXN0cy9kYXRhX2ZpbGVzL3Rlc3QtaW50LWNhLmNydApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOGIyODQ2ZC4uMDAwMDAwMAotLS0gYS90ZXN0cy9kYXRhX2ZpbGVzL3Rlc3QtaW50LWNhLmNydAorKysgL2Rldi9udWxsCkBAIC0xLDI0ICswLDAgQEAKLS0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQotTUlJRUFUQ0NBNGVnQXdJQkFnSUJEakFLQmdncWhrak9QUVFEQWpBK01Rc3dDUVlEVlFRR0V3Sk9UREVSTUE4RwotQTFVRUNnd0lVRzlzWVhKVFUwd3hIREFhQmdOVkJBTU1FMUJ2YkdGeWMzTnNJRlJsYzNRZ1JVTWdRMEV3SGhjTgotTWpNd05URTNNRGN4TURNM1doY05Nek13TlRFM01EY3hNRE0zV2pCSU1Rc3dDUVlEVlFRR0V3Sk9UREVSTUE4RwotQTFVRUNnd0lVRzlzWVhKVFUwd3hKakFrQmdOVkJBTU1IVkJ2YkdGeVUxTk1JRlJsYzNRZ1NXNTBaWEp0WldScAotWVhSbElFTkJNSUlDSWpBTkJna3Foa2lHOXcwQkFRRUZBQU9DQWc4QU1JSUNDZ0tDQWdFQW8xT2M4bnI2Zk1UcQotdm93VitDcEM1NWk1QlpHRkdjNTBFYjRSTEJTUlRIMWU3SmVwZEZqQVZiQnR5UVJKU2lZMWphMHRnTFFEREtaUgotd2ZFSStiNGF6c2U0NjBJblBIdjdDMVROMHVwWGx4dWo2bTlCMUlsUCtzQmFNN1dCQzZkVmZQTytqVk1JeGdrRgotQ2FCQ0xoaGRLMUZqZjhIamtUL1BrY3RXbmhvOE5Ud2l2YzkrbnFSWmpYZS9lSWNxbTVId2pERGh1K2d6K28wZwotVno5TWZaTmkxSnlDck95TlpjeStjcjJRZU5uTlZHbkZxOHhUeHR1NmRMdW5ocG1MRmoybW0wVmp3YTdZcGo1cQotQWpwcVRNdER2cWJSdVRveW95emFqaE1OY0NBZjdnd3pJdXBKSkZWZGpkdGdZQWNRd3ppa3dGNUhvSVRKenpKMgotcWd4RjdDbXZHWk5iN0c5OW1MZExkaHRjbEgzd0FRS0hZd0VHSm83WEt5TkV1SFBRZ0IrZTBjZzFTRDFIcWxBTQotdUNmR0dUV1E2bWU3QmphbjN0ME56b1RkRHE2SXBLVGVzYmFZKy85ZTJ4bjhEQ3JoQktMWFFNWkZEWnFVb0xZQQota0dQT0VHZ3ZsUG5JSVhBYXdvdXhDYU5ZRWg1VXc4NzFZTVNQVDI4ckxkRnI0OWR3WU90RGc5Zm9BOGhESVcyUAotZDZLWGJyWnRlZXN2QTFuWXpFT3MrM0FqcmJUNzlNZDJXOEJ6OWJxQlZObE5PRVNTcW00a2lDSkZtc2xtLzZicgotTnAwTVNRZCtvMjJQUTR4UnRtUDZVc1RmVTB1ZWlNcFljOFRZWWhNYmZuZkZ5bzRtNzA3ZWJjZmxQYkJFTjJkZwotdXBkUTY2Y3ZmQ0pCMFFKdDl1cGFmWTBscGRWMXFVa0NBd0VBQWFPQm9EQ0JuVEFkQmdOVkhRNEVGZ1FVT0hmWQotYTNlY0tIZUNpMDdZRzZrZTk1UVd0dzR3YmdZRFZSMGpCR2N3WllBVW5XMGdKRWtCUHl2TGVMVVp2SDRreWR2NwotTm55aFFxUkFNRDR4Q3pBSkJnTlZCQVlUQWs1TU1SRXdEd1lEVlFRS0RBaFFiMnhoY2xOVFRERWNNQm9HQTFVRQotQXd3VFVHOXNZWEp6YzJ3Z1ZHVnpkQ0JGUXlCRFFZSUpBTUZENG41aVE4em9NQXdHQTFVZEV3UUZNQU1CQWY4dwotQ2dZSUtvWkl6ajBFQXdJRGFBQXdaUUl4QU9BY2grZ3o0ckhmSS9wbThNSURzc010SkNxelM2eHRPdlFISlo5bAotZmRnV2ZKVjVjU0hKcE9JV0dYZUZLS1IxOHdJd09EVFJuVElpb3krYllhY05xOFRRUGp6ZFZsVDlYYllrV0lZTgotSkF1VjlmTEpKZEI1blpVRzNsODVEdDI3Vk5rVAotLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQpkaWZmIC0tZ2l0IGEvdGVzdHMvZGF0YV9maWxlcy90ZXN0LWludC1jYS5rZXkgYi90ZXN0cy9kYXRhX2ZpbGVzL3Rlc3QtaW50LWNhLmtleQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNGZkNjJmMy4uMDAwMDAwMAotLS0gYS90ZXN0cy9kYXRhX2ZpbGVzL3Rlc3QtaW50LWNhLmtleQorKysgL2Rldi9udWxsCkBAIC0xLDUxICswLDAgQEAKLS0tLS0tQkVHSU4gUlNBIFBSSVZBVEUgS0VZLS0tLS0KLU1JSUpLUUlCQUFLQ0FnRUFvMU9jOG5yNmZNVHF2b3dWK0NwQzU1aTVCWkdGR2M1MEViNFJMQlNSVEgxZTdKZXAKLWRGakFWYkJ0eVFSSlNpWTFqYTB0Z0xRRERLWlJ3ZkVJK2I0YXpzZTQ2MEluUEh2N0MxVE4wdXBYbHh1ajZtOUIKLTFJbFArc0JhTTdXQkM2ZFZmUE8ralZNSXhna0ZDYUJDTGhoZEsxRmpmOEhqa1QvUGtjdFduaG84TlR3aXZjOSsKLW5xUlpqWGUvZUljcW01SHdqRERodStneitvMGdWejlNZlpOaTFKeUNyT3lOWmN5K2NyMlFlTm5OVkduRnE4eFQKLXh0dTZkTHVuaHBtTEZqMm1tMFZqd2E3WXBqNXFBanBxVE10RHZxYlJ1VG95b3l6YWpoTU5jQ0FmN2d3ekl1cEoKLUpGVmRqZHRnWUFjUXd6aWt3RjVIb0lUSnp6SjJxZ3hGN0NtdkdaTmI3Rzk5bUxkTGRodGNsSDN3QVFLSFl3RUcKLUpvN1hLeU5FdUhQUWdCK2UwY2cxU0QxSHFsQU11Q2ZHR1RXUTZtZTdCamFuM3QwTnpvVGREcTZJcEtUZXNiYVkKLSsvOWUyeG44RENyaEJLTFhRTVpGRFpxVW9MWUFrR1BPRUdndmxQbklJWEFhd291eENhTllFaDVVdzg3MVlNU1AKLVQyOHJMZEZyNDlkd1lPdERnOWZvQThoRElXMlBkNktYYnJadGVlc3ZBMW5ZekVPcyszQWpyYlQ3OU1kMlc4QnoKLTlicUJWTmxOT0VTU3FtNGtpQ0pGbXNsbS82YnJOcDBNU1FkK28yMlBRNHhSdG1QNlVzVGZVMHVlaU1wWWM4VFkKLVloTWJmbmZGeW80bTcwN2ViY2ZsUGJCRU4yZGd1cGRRNjZjdmZDSkIwUUp0OXVwYWZZMGxwZFYxcVVrQ0F3RUEKLUFRS0NBZ0VBZ3l1eHp1U0pyQThTWUxwdElvUCtlN1lpVXFDT2Z5MVo5cTNwYUxlVUFoUm1XaWxyeEs5S3VRY2IKLUJPaFdYQ0RYdmRNcHlrWElkUzVXVnlaWUNRdHV5RWVLOGhhTklIeUtJSTJaU0IxQS8zRUpja3lzV0I5M2huRloKLWdGSHpOQUxPRzY0K2lZMzRhK1B1a2M2Tm1DdWxHQmNqakFXUjJLT2c5dnlSc2lScjJtMVRrWkhGcFc5bEpNTFoKLW1ka2tsUkRlV2hrZ0VpUHBLdjZRek1GZmt6TDltcmVnRTNWZ0VqUWZlRk5hWmxTMkhXZGRoQjV6NGkreVRmSXcKLUYxL1ZYcVZnMnk4ZGNQNFZyVjVQRVQ4TkJHUHpJbmtqMGxrMU5ldmVFMkNsMkRsVXE0Qk15V3ZVRmtRaEFMOEIKLVpkNEd6bUw5bmltWjZRYjhkVldZQy9ZVGFob0lMMytZVUNaQUdJZWN6QW82ZHJ5aGVVc2oxdzNwU0VyT0lZOVUKLWRHU3lxOUk5WFlYcWNSTmV5ZmtvTlZPWjd1Z3FrNER2TXl2NjR0dCtOSUl5OVNaR2NIdVdvM0dMMEZkS2lSNWMKLVhibjE4dEQrV3dya2EwTzFudHZ6WDFxa3dKY3B2dTUreE5WYm9ia000RGlsdW9pdk9xKzI5Q0dBTnRHMkV0N1MKLW02S0NVd1NFbEtzdnBJNGROVzRuV2NiZGo4aThnY0xpS2pxUnU5bjJCZGt2QUhhTWhWYmw5eG5wOXN2ZUdMY1IKLWlGZzZtRHNDUXVWRUg4YkdQSU1JYXYvM1ZVankxd2JNQUE1NFBzcUtNMGFUQStESG5sZVhjaFZBaE1tOWVIRDgKLXlyVjhlYjgvYmNDYld2aEREaTgwa3VSSWFEU3NZVHdNV3B6ano2TVU5djhPdUZHWlphRUNnZ0VCQU5MNDRWUTcKLTd0b2s1WGVKSmduUlYvUEdObEhLa3NjdFBNait5ZThpU0RyUnZIVmxISHF2WjI2TVpKUGdYd0hDTy9OVklXdjYKLWhmQ1lsZm1QLzYzZloxV0pxRFVEeEhPZ2pJYlB0T0lLVHNKaTNQYmJPRFZyc3ljWjN5NU9qcGJqWEtHOTdjS00KLTZSWDZ6Ym5qdEdLUGZiVUp4K2t1QU94bWtGTGlMSkdObExxemFKYWZrZ1dqVUFWL25UNlFtMjY2M21zZlovTWQKLTd1REZETk9UYlBTNzRraTVKVGpsajh4bXhBUGNueGpOSjJpakRRN2VpQ0FtNkpvekpZeTlQWWl4bXVTY0ZGMngKLUQyTjZFOS9KV1VjWWV6eWJVZ09MemJ3enZKa0NSSm9CWGowOUY4Y2IzbTZaUTA0bjJwZVFnLzBibjZIVVZvdkYKLW9wWkpXOXVaVFJtRmFlMENnZ0VCQU1ZdmVCbllSWHlXcUVOZjhQWjh4bHFpT3ZKQkFSYUlZUU9QeTF0NExlT3YKLXQ0c3N2a1NKUEVHMHRQMklUNnB0ZWNOTjlDVlJkUEpuN3RzZ3ZqZ1B2cWd5bUxsYXc4RGhlRlMzRUs0c0ZkMGEKLVNJd3JZY1hZOGZ5QUZ1R2JiY3gySlRmbXh3TEdZWGVXRzRNRGtjWWN0VWhYaU9iTWIwWUkyZVhsVHU0SlhxSkgKLXExbXlsN3BpM2d1eDdKY0ZqcjBBTmg5bURPWVh6TDUyV3FaT2JhVlVVTm44cC9hTldwYXRpOVo5UEwydUpOeFkKLW15WmJUcVdHVHBaOFhsWm5aWWc4YkhWSkdvYzcvc2VTREVuU3JlR1F0WGw2TXJuc045YkRVNlVodWZJMGlBaUgKLWZDZUVMcHhqQnB2WmkyVHpZbmx0WCsyMWYzb1VYdXJYVDRlWVBKbTZZVTBDZ2dFQkFJckpVU3BodHZKb3ZVL1MKLXVHUlRCRUlJemVrbWswSldIeHUyaVU4NFJUMzBoYjdRd2xodkZXTGpGck0xTWlydEJSVkJscGY3R2F1NkpVY2sKLWxMVmtOdzFOWG90cHJBM0l1MGxnVUlVMjlMTHA2S1M0ZUJTa2dobWg2bkVER3NobVQ2VFRWaHJiS2ViY3RBT3EKLXFSc0JmRmZoVkZLd2dja0NlOFVhcHVrbHM0YlN5V1gxR1ZGK0t3RkMvMFdPU2NJaFNubzhFZDBjZnUzOGswQ0kKLVJuQUZQWXBMeWhIUTZyVXprWlZjeUlpL1JVS1BxT0owUUNhdWtld0c0NWZmVWlDZmZkOFFVbEdFVGpSSnRkTk4KLUdOOHRXcnozREkvcW8zQkF0THdQZ3VPeExMYXFmdjdyOVhyYWRpMXZDRjBXbzgyWkkzMkpPMW45ck1TakE3dkYKLThMTnVVYzBDZ2dFQWVkQlBoOE13NHFWUGd5b0RWOTNWcFh1MXM1VlU3OTZma3FyZG1ibENxNElqMUwySnJXS1UKLTBPWWJvUUlaeFcxSXZFeTcxZnc5WDRtV2ZNV2haWi8zMWpaVFBRcVc2NFVxaXhlQ2Z5dkZ2SU1kT0ZxcDNBdSsKLW9TNng0YlhCUlQwUkgwMFA0WnJCNmRrdnk5Vnowa3R1K2Fva0VZaHlsSjk0SHlCVTVXYUk3a0lUQmkwSnFaeC8KLVVyem42T09YbW4vNHhFL2JlY29ESk1abWJYWWpXczE2YktJcE14Z3JLQlkvcjNTRzB5ZW9yRzhoM2UrZFpZd3AKLTNjRlAwdGYyeGtndGVlR1hGcXcvcTdjUEtvaitLM2pnc212enBlZVZZc0hvTmNXSEgySStncytUOWszK3dFejEKLWtQR2tCa2E2cmx3VjdHdjBrTHJZcEl2MjdDY2NpSGpRdVFLQ0FRQWN0UU0zRFRDM3B6RXd3UGVZTW5TWEw5L3MKLXVEcWJqM01WNkg4ZnhQSUdKV2ZwRHN0N25XWGhUODF1S0c2ZlltZWc1WjZuSlhmUDBkVUY1VHBXMXprNlZHd24KLXQvY2g2VTdIWXBzZVpzeXdkWlBWSW8vdXBna293WFNsNm1mcXl4ekduZ1h1T1JoNHpoUnBjbjRHVHd6SEcyVGUKLXhOcU1FYi9pL0lXbnZ0ZnZ5ZmhFQmV3SmNNcjlOcHdyZzYxNXBDaVo4eTNjanZKZi9nbDBjR1o1TEl1V0JRQjUKLUYxNkp4RjNtbTFYQ3VrVFhaTzkwdmczWTFKeGVCK1lZeUYrMWFRTCtEZ3ZoR1pOUnJHckJUL1F1WFFwaU1DTWYKLVZNOW9aVnJJN2NZVk5uUEJFb0hWY3lQMjFOUTVBV29GVGFTcE1KaUhaNEZCaWUwQkdPNklrek1jRzIzcgotLS0tLS1FTkQgUlNBIFBSSVZBVEUgS0VZLS0tLS0KZGlmZiAtLWdpdCBhL3Rlc3RzL2RhdGFfZmlsZXMvdGVzdC1pbnQtY2EyLmNydCBiL3Rlc3RzL2RhdGFfZmlsZXMvdGVzdC1pbnQtY2EyLmNydApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggODBmMzliOS4uMDAwMDAwMAotLS0gYS90ZXN0cy9kYXRhX2ZpbGVzL3Rlc3QtaW50LWNhMi5jcnQKKysrIC9kZXYvbnVsbApAQCAtMSwxOCArMCwwIEBACi0tLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KLU1JSUM2VENDQWRHZ0F3SUJBZ0lCRHpBTkJna3Foa2lHOXcwQkFRc0ZBREE3TVFzd0NRWURWUVFHRXdKT1RERVIKLU1BOEdBMVVFQ2d3SVVHOXNZWEpUVTB3eEdUQVhCZ05WQkFNTUVGQnZiR0Z5VTFOTUlGUmxjM1FnUTBFd0hoY04KLU1qTXdOVEUzTURreU56QXlXaGNOTXpNd05URTNNRGt5TnpBeVdqQkxNUXN3Q1FZRFZRUUdFd0pPVERFUk1BOEcKLUExVUVDZ3dJVUc5c1lYSlRVMHd4S1RBbkJnTlZCQU1NSUZCdmJHRnlVMU5NSUZSbGMzUWdTVzUwWlhKdFpXUnAKLVlYUmxJRVZESUVOQk1IWXdFQVlIS29aSXpqMENBUVlGSzRFRUFDSURZZ0FFOE9paDNmWDVTTGVOMWRtRm5jUWwKLVdNdzkrWTZzWGJsaGxyWEJ4aFh4andkd3BDSEVObitmb1VWZHJxWVZZYTdTdXYzUVZlTzZuSjE5SDNRTml4VzgKLWlrMVAraHhzYmFxOGJ0YTc4dkF5SG1DNEVtWFFMZzF3N294YjlRODJxWDFZbzRHVk1JR1NNQjBHQTFVZERnUVcKLUJCUVBpYjFqUWV2TFhoY28vMmd3UGNHSTBKeFlPVEJqQmdOVkhTTUVYREJhZ0JTMFd1U2xzOTdTVXZhNTFhYVYKLUQrcyt2TWY5LzZFL3BEMHdPekVMTUFrR0ExVUVCaE1DVGt3eEVUQVBCZ05WQkFvTUNGQnZiR0Z5VTFOTU1Sa3cKLUZ3WURWUVFEREJCUWIyeGhjbE5UVENCVVpYTjBJRU5CZ2dFRE1Bd0dBMVVkRXdRRk1BTUJBZjh3RFFZSktvWkkKLWh2Y05BUUVMQlFBRGdnRUJBSFROMFVSclAyTXB3RDh2T0R5bWpqcTdpYUI3V0ZaNENXVWp4OUxXdTNQUFpiWDIKLTEyTXh6a3lGYVZSN3JuUEtaU0ZISkpFbU5hUERKV3dZaEdRUlhMQ29ENk5pSnk2RGU0ZmE1Z1NZb1h0aFJHRmYKLUduRlhadTNlMzdHREtvS1A4N1RaK1ZYY3l4NlBIdlB4SkIzLzlOOTRWajJZaDNoQ3M3RjcyR213ZkR3dzZvb2oKLXdoSXFoeEJZT2hQbGVBTnM3MEZaN1k3dGpaVjFSdFExLzlzUmNieXY5T3ZkUHVXdnVrQlZxMUtNNm5xVkhCWjMKLS80a0hCV2FGYVdNcS9BQXhNeGFUR0ZBT0E4UzJ5VTU2amtCNjV2aVFycFFRV2ZmQkpXSytXZnJjZ3hSV3FSMzMKLWhxRzN5VDFJV2JKNUUxMVhMOVRDS0QrRFJlcWVYSHlZYXd4OGZCVT0KLS0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KZGlmZiAtLWdpdCBhL3Rlc3RzL2RhdGFfZmlsZXMvdGVzdC1pbnQtY2EyLmtleSBiL3Rlc3RzL2RhdGFfZmlsZXMvdGVzdC1pbnQtY2EyLmtleQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOWRmNWI3YS4uMDAwMDAwMAotLS0gYS90ZXN0cy9kYXRhX2ZpbGVzL3Rlc3QtaW50LWNhMi5rZXkKKysrIC9kZXYvbnVsbApAQCAtMSw2ICswLDAgQEAKLS0tLS0tQkVHSU4gRUMgUFJJVkFURSBLRVktLS0tLQotTUlHa0FnRUJCREF0eE9IVVY0YmUxTWRIMWZyQkh6eElUQ3lVU3hyVmpKTjhRVHZUVms1NThrYTBhM3poZDRQYgotZWtXdDd3QlBYUWVnQndZRks0RUVBQ0toWkFOaUFBVHc2S0hkOWZsSXQ0M1YyWVdkeENWWXpEMzVqcXhkdVdHVwotdGNIR0ZmR1BCM0NrSWNRMmY1K2hSVjJ1cGhWaHJ0SzYvZEJWNDdxY25YMGZkQTJMRmJ5S1RVLzZIR3h0cXJ4dQotMXJ2eThESWVZTGdTWmRBdURYRHVqRnYxRHphcGZWZz0KLS0tLS0tRU5EIEVDIFBSSVZBVEUgS0VZLS0tLS0KZGlmZiAtLWdpdCBhL3Rlc3RzL2RhdGFfZmlsZXMvdGVzdC1pbnQtY2EzLWJhZHNpZ24uY3J0IGIvdGVzdHMvZGF0YV9maWxlcy90ZXN0LWludC1jYTMtYmFkc2lnbi5jcnQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDhjMzYzMTUuLjAwMDAwMDAKLS0tIGEvdGVzdHMvZGF0YV9maWxlcy90ZXN0LWludC1jYTMtYmFkc2lnbi5jcnQKKysrIC9kZXYvbnVsbApAQCAtMSwxMiArMCwwIEBACi0tLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KLU1JSUJzekNDQVRxZ0F3SUJBZ0lCVFRBS0JnZ3Foa2pPUFFRREFqQkxNUXN3Q1FZRFZRUUdFd0pPVERFUk1BOEcKLUExVUVDZ3dJVUc5c1lYSlRVMHd4S1RBbkJnTlZCQU1NSUZCdmJHRnlVMU5NSUZSbGMzUWdTVzUwWlhKdFpXUnAKLVlYUmxJRVZESUVOQk1CNFhEVEl6TURVeE56QTNNVEF6TjFvWERUTXpNRFV4TnpBM01UQXpOMW93U2pFTE1Ba0cKLUExVUVCaE1DVlVzeEVUQVBCZ05WQkFvTUNHMWlaV1FnVkV4VE1TZ3dKZ1lEVlFRRERCOXRZbVZrSUZSTVV5QlUKLVpYTjBJR2x1ZEdWeWJXVmthV0YwWlNCRFFTQXpNRmt3RXdZSEtvWkl6ajBDQVFZSUtvWkl6ajBEQVFjRFFnQUUKLTczMmZXSExOUE1Qc1AxVTFpYlh2YjU1ZXJsRVZNbHBYQkdzaitLWXdWcVUxWENtVzlaOWhoUDdYLzVqcy9EWDkKLTJKL3V0b0h5alV0VnBRT3pkVHJic2FNUU1BNHdEQVlEVlIwVEJBVXdBd0VCL3pBS0JnZ3Foa2pPUFFRREFnTm4KLUFEQmtBakFaeDhrMHErRHRUL0xKZDFGalBjRy9wZW9RRGZNQkwyalMvNlB3eFcrMytaUE1wSFpuMHIrSnBDYUYKLStWL3NNOWtDTUdxY3hRd3gvYnNNYUsweTl6cXNoQzcvUzVoVmxBK1dSVnlNZkVHSm1YbmZiZHdoNkNCeUtJd3YKLTFHUmU4NmRnMTA9PQotLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQpkaWZmIC0tZ2l0IGEvdGVzdHMvZGF0YV9maWxlcy90ZXN0LWludC1jYTMuY3J0IGIvdGVzdHMvZGF0YV9maWxlcy90ZXN0LWludC1jYTMuY3J0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzYWE2NGIxLi4wMDAwMDAwCi0tLSBhL3Rlc3RzL2RhdGFfZmlsZXMvdGVzdC1pbnQtY2EzLmNydAorKysgL2Rldi9udWxsCkBAIC0xLDEyICswLDAgQEAKLS0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQotTUlJQnN6Q0NBVHFnQXdJQkFnSUJUVEFLQmdncWhrak9QUVFEQWpCTE1Rc3dDUVlEVlFRR0V3Sk9UREVSTUE4RwotQTFVRUNnd0lVRzlzWVhKVFUwd3hLVEFuQmdOVkJBTU1JRkJ2YkdGeVUxTk1JRlJsYzNRZ1NXNTBaWEp0WldScAotWVhSbElFVkRJRU5CTUI0WERUSXpNRFV4TnpBM01UQXpOMW9YRFRNek1EVXhOekEzTVRBek4xb3dTakVMTUFrRwotQTFVRUJoTUNWVXN4RVRBUEJnTlZCQW9NQ0cxaVpXUWdWRXhUTVNnd0pnWURWUVFEREI5dFltVmtJRlJNVXlCVQotWlhOMElHbHVkR1Z5YldWa2FXRjBaU0JEUVNBek1Ga3dFd1lIS29aSXpqMENBUVlJS29aSXpqMERBUWNEUWdBRQotNzMyZldITE5QTVBzUDFVMWliWHZiNTVlcmxFVk1scFhCR3NqK0tZd1ZxVTFYQ21XOVo5aGhQN1gvNWpzL0RYOQotMkovdXRvSHlqVXRWcFFPemRUcmJzYU1RTUE0d0RBWURWUjBUQkFVd0F3RUIvekFLQmdncWhrak9QUVFEQWdObgotQURCa0FqQVp4OGswcStEdFQvTEpkMUZqUGNHL3Blb1FEZk1CTDJqUy82UHd4VyszK1pQTXBIWm4wcitKcENhRgotK1Yvc005a0NNR3FjeFF3eC9ic01hSzB5OXpxc2hDNy9TNWhWbEErV1JWeU1mRUdKbVhuZmJkd2g2Q0J5S0l3dgotMUdSZTg2ZGcxQT09Ci0tLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCmRpZmYgLS1naXQgYS90ZXN0cy9kYXRhX2ZpbGVzL3Rlc3QtaW50LWNhMy5rZXkgYi90ZXN0cy9kYXRhX2ZpbGVzL3Rlc3QtaW50LWNhMy5rZXkKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDFiY2M3MTEuLjAwMDAwMDAKLS0tIGEvdGVzdHMvZGF0YV9maWxlcy90ZXN0LWludC1jYTMua2V5CisrKyAvZGV2L251bGwKQEAgLTEsOCArMCwwIEBACi0tLS0tLUJFR0lOIEVDIFBBUkFNRVRFUlMtLS0tLQotQmdncWhrak9QUU1CQnc9PQotLS0tLS1FTkQgRUMgUEFSQU1FVEVSUy0tLS0tCi0tLS0tLUJFR0lOIEVDIFBSSVZBVEUgS0VZLS0tLS0KLU1IY0NBUUVFSUM5elR0OGpnakJsYnErcUNzR2o2dWNsYUtMWUJxeFlTbVVpdUJkTTFLRzlvQW9HQ0NxR1NNNDkKLUF3RUhvVVFEUWdBRTczMmZXSExOUE1Qc1AxVTFpYlh2YjU1ZXJsRVZNbHBYQkdzaitLWXdWcVUxWENtVzlaOWgKLWhQN1gvNWpzL0RYOTJKL3V0b0h5alV0VnBRT3pkVHJic1E9PQotLS0tLS1FTkQgRUMgUFJJVkFURSBLRVktLS0tLQpkaWZmIC0tZ2l0IGEvdGVzdHMvZGF0YV9maWxlcy90ZXN0X2NlcnRzLmguamluamEyIGIvdGVzdHMvZGF0YV9maWxlcy90ZXN0X2NlcnRzLmguamluamEyCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjNDIwYzc5Li4wMDAwMDAwCi0tLSBhL3Rlc3RzL2RhdGFfZmlsZXMvdGVzdF9jZXJ0cy5oLmppbmphMgorKysgL2Rldi9udWxsCkBAIC0xLDQzICswLDAgQEAKLS8qCi0gKiAgWC41MDkgdGVzdCBjZXJ0aWZpY2F0ZXMKLSAqCi0gKiAgQ29weXJpZ2h0IFRoZSBNYmVkIFRMUyBDb250cmlidXRvcnMKLSAqICBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMCBPUiBHUEwtMi4wLW9yLWxhdGVyCi0gKi8KLQotLyogVEhJUyBGSUxFIGlzIGdlbmVyYXRlZCBieSBgZnJhbWV3b3JrL3NjcmlwdHMvZ2VuZXJhdGVfdGVzdF9jZXJ0X21hY3Jvcy5weWAgKi8KLS8qICpJTkRFTlQtT0ZGKiAqLwotCi17JSBmb3IgbW9kZSwgbmFtZSwgdmFsdWUgaW4gbWFjcm9zICV9Ci0gICAgeyUgaWYgbW9kZSA9PSAnc3RyaW5nJyAlfQotLyogVGhpcyBpcyB0YWtlbiBmcm9tIHt7dmFsdWV9fS4gKi8KLS8qIEJFR0lOIEZJTEUgc3RyaW5nIG1hY3JvIHt7bmFtZX19IHt7dmFsdWV9fSAqLwotI2RlZmluZSB7e25hbWV9fXt7ICdcXCcgfCBwdXRfdG9fY29sdW1uKHBvc2l0aW9uPTgwLTktbmFtZXxsZW5ndGgpfX0KLSAgICAgICAgeyUgZm9yIGxpbmUgaW4gdmFsdWUgfCByZWFkX2xpbmVzICV9Ci0gICAgInt7bGluZX19XHJcbiJ7JSBpZiBub3QgbG9vcC5sYXN0ICV9e3sgJ1xcJyB8IHB1dF90b19jb2x1bW4ocG9zaXRpb249ODAtMTAtMS1saW5lfGxlbmd0aCl9fQotICAgICAgICB7JSBlbmRpZiAlfQotICAgICAgICB7JSBlbmRmb3IgJX0KLQotLyogRU5EIEZJTEUgKi8KLSAgICB7JSBlbmRpZiAlfQotICAgIHslIGlmIG1vZGUgPT0gJ2JpbmFyeScgJX0KLS8qIFRoaXMgaXMgZ2VuZXJhdGVkIGZyb20ge3t2YWx1ZX19LiAqLwotLyogQkVHSU4gRklMRSBiaW5hcnkgbWFjcm8ge3tuYW1lfX0ge3t2YWx1ZX19ICovCi0jZGVmaW5lIHt7bmFtZX19IHslIHJhdyAtJX0geyB7JS0gZW5kcmF3ICV9IHt7ICdcXCcgfCBwdXRfdG9fY29sdW1uKHBvc2l0aW9uPTgwLTExLW5hbWV8bGVuZ3RoKX19Ci0gICAgICAgIHslIGZvciBsaW5lIGluIHZhbHVlIHwgcmVhZF9hc19jX2FycmF5ICV9Ci0gICAgICAgICAgICB7JSBpZiBub3QgbG9vcC5sYXN0ICV9Ci0gICAgICAgIHt7bGluZX19LHt7ICdcXCcgfCBwdXRfdG9fY29sdW1uKHBvc2l0aW9uPTgwLTktbGluZXxsZW5ndGgpfX0KLSAgICAgICAgICAgIHslIGVsc2UgJX0KLSAgICAgICAge3tsaW5lfX17eyAnXFwnIHwgcHV0X3RvX2NvbHVtbihwb3NpdGlvbj04MC04LWxpbmV8bGVuZ3RoKX19Ci0gICAgICAgICAgICB7JSBlbmRpZiAlfQotICAgICAgICB7JSBlbmRmb3IgJX0KLXslIHJhdyAtJX0gfSB7JS0gZW5kcmF3ICV9Ci0KLS8qIEVORCBGSUxFICovCi0gICAgeyUgZW5kaWYgJX0KLSAgICB7JSBpZiBtb2RlID09ICdwYXNzd29yZCcgJX0KLSNkZWZpbmUge3tuYW1lfX0gInt7dmFsdWV9fSIKLSAgICB7JSBlbmRpZiAlfQotCi17JSBlbmRmb3IgJX0KLS8qIEVuZCBvZiBnZW5lcmF0ZWQgZmlsZSAqLwpkaWZmIC0tZ2l0IGEvdGVzdHMvZGF0YV9maWxlcy90bHMxM19lYXJseV9kYXRhLnR4dCBiL3Rlc3RzL2RhdGFfZmlsZXMvdGxzMTNfZWFybHlfZGF0YS50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDk1ODExZmQuLjAwMDAwMDAKLS0tIGEvdGVzdHMvZGF0YV9maWxlcy90bHMxM19lYXJseV9kYXRhLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDQgKzAsMCBAQAotRWFybHlEYXRhIGNvbnRleHQ6IGxpbmUgMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZgotRWFybHlEYXRhIGNvbnRleHQ6IGxpbmUgMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZgotRWFybHlEYXRhIGNvbnRleHQ6IGxpbmUgMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZgotRWFybHlEYXRhIGNvbnRleHQ6IElmIGl0IGFwcGVhcnMsIHRoYXQgbWVhbnMgZWFybHlfZGF0YSByZWNlaXZlZC4KZGlmZiAtLWdpdCBhL3Rlc3RzL2luY2x1ZGUvYWx0LWR1bW15L2Flc19hbHQuaCBiL3Rlc3RzL2luY2x1ZGUvYWx0LWR1bW15L2Flc19hbHQuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZGM0N2RkMS4uMDAwMDAwMAotLS0gYS90ZXN0cy9pbmNsdWRlL2FsdC1kdW1teS9hZXNfYWx0LmgKKysrIC9kZXYvbnVsbApAQCAtMSwyMyArMCwwIEBACi0vKiBhZXNfYWx0Lmggd2l0aCBkdW1teSB0eXBlcyBmb3IgTUJFRFRMU19BRVNfQUxUICovCi0vKgotICogIENvcHlyaWdodCBUaGUgTWJlZCBUTFMgQ29udHJpYnV0b3JzCi0gKiAgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjAgT1IgR1BMLTIuMC1vci1sYXRlcgotICovCi0KLSNpZm5kZWYgQUVTX0FMVF9ICi0jZGVmaW5lIEFFU19BTFRfSAotCi10eXBlZGVmIHN0cnVjdCBtYmVkdGxzX2Flc19jb250ZXh0IHsKLSAgICBpbnQgZHVtbXk7Ci19Ci1tYmVkdGxzX2Flc19jb250ZXh0OwotCi0jaWYgZGVmaW5lZChNQkVEVExTX0NJUEhFUl9NT0RFX1hUUykKLQotdHlwZWRlZiBzdHJ1Y3QgbWJlZHRsc19hZXNfeHRzX2NvbnRleHQgewotICAgIGludCBkdW1teTsKLX0gbWJlZHRsc19hZXNfeHRzX2NvbnRleHQ7Ci0jZW5kaWYKLQotCi0jZW5kaWYgLyogYWVzX2FsdC5oICovCmRpZmYgLS1naXQgYS90ZXN0cy9pbmNsdWRlL2FsdC1kdW1teS9hcmlhX2FsdC5oIGIvdGVzdHMvaW5jbHVkZS9hbHQtZHVtbXkvYXJpYV9hbHQuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOTRkYjhjNy4uMDAwMDAwMAotLS0gYS90ZXN0cy9pbmNsdWRlL2FsdC1kdW1teS9hcmlhX2FsdC5oCisrKyAvZGV2L251bGwKQEAgLTEsMTYgKzAsMCBAQAotLyogYXJpYV9hbHQuaCB3aXRoIGR1bW15IHR5cGVzIGZvciBNQkVEVExTX0FSSUFfQUxUICovCi0vKgotICogIENvcHlyaWdodCBUaGUgTWJlZCBUTFMgQ29udHJpYnV0b3JzCi0gKiAgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjAgT1IgR1BMLTIuMC1vci1sYXRlcgotICovCi0KLSNpZm5kZWYgQVJJQV9BTFRfSAotI2RlZmluZSBBUklBX0FMVF9ICi0KLXR5cGVkZWYgc3RydWN0IG1iZWR0bHNfYXJpYV9jb250ZXh0IHsKLSAgICBpbnQgZHVtbXk7Ci19Ci1tYmVkdGxzX2FyaWFfY29udGV4dDsKLQotCi0jZW5kaWYgLyogYXJpYV9hbHQuaCAqLwpkaWZmIC0tZ2l0IGEvdGVzdHMvaW5jbHVkZS9hbHQtZHVtbXkvY2FtZWxsaWFfYWx0LmggYi90ZXN0cy9pbmNsdWRlL2FsdC1kdW1teS9jYW1lbGxpYV9hbHQuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOTdiYzE2Yi4uMDAwMDAwMAotLS0gYS90ZXN0cy9pbmNsdWRlL2FsdC1kdW1teS9jYW1lbGxpYV9hbHQuaAorKysgL2Rldi9udWxsCkBAIC0xLDE2ICswLDAgQEAKLS8qIGNhbWVsbGlhX2FsdC5oIHdpdGggZHVtbXkgdHlwZXMgZm9yIE1CRURUTFNfQ0FNRUxMSUFfQUxUICovCi0vKgotICogIENvcHlyaWdodCBUaGUgTWJlZCBUTFMgQ29udHJpYnV0b3JzCi0gKiAgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjAgT1IgR1BMLTIuMC1vci1sYXRlcgotICovCi0KLSNpZm5kZWYgQ0FNRUxMSUFfQUxUX0gKLSNkZWZpbmUgQ0FNRUxMSUFfQUxUX0gKLQotdHlwZWRlZiBzdHJ1Y3QgbWJlZHRsc19jYW1lbGxpYV9jb250ZXh0IHsKLSAgICBpbnQgZHVtbXk7Ci19Ci1tYmVkdGxzX2NhbWVsbGlhX2NvbnRleHQ7Ci0KLQotI2VuZGlmIC8qIGNhbWVsbGlhX2FsdC5oICovCmRpZmYgLS1naXQgYS90ZXN0cy9pbmNsdWRlL2FsdC1kdW1teS9jY21fYWx0LmggYi90ZXN0cy9pbmNsdWRlL2FsdC1kdW1teS9jY21fYWx0LmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGMyNWY0MmIuLjAwMDAwMDAKLS0tIGEvdGVzdHMvaW5jbHVkZS9hbHQtZHVtbXkvY2NtX2FsdC5oCisrKyAvZGV2L251bGwKQEAgLTEsMTYgKzAsMCBAQAotLyogY2NtX2FsdC5oIHdpdGggZHVtbXkgdHlwZXMgZm9yIE1CRURUTFNfQ0NNX0FMVCAqLwotLyoKLSAqICBDb3B5cmlnaHQgVGhlIE1iZWQgVExTIENvbnRyaWJ1dG9ycwotICogIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wIE9SIEdQTC0yLjAtb3ItbGF0ZXIKLSAqLwotCi0jaWZuZGVmIENDTV9BTFRfSAotI2RlZmluZSBDQ01fQUxUX0gKLQotdHlwZWRlZiBzdHJ1Y3QgbWJlZHRsc19jY21fY29udGV4dCB7Ci0gICAgaW50IGR1bW15OwotfQotbWJlZHRsc19jY21fY29udGV4dDsKLQotCi0jZW5kaWYgLyogY2NtX2FsdC5oICovCmRpZmYgLS1naXQgYS90ZXN0cy9pbmNsdWRlL2FsdC1kdW1teS9jaGFjaGEyMF9hbHQuaCBiL3Rlc3RzL2luY2x1ZGUvYWx0LWR1bW15L2NoYWNoYTIwX2FsdC5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2ZmQ4NGQwLi4wMDAwMDAwCi0tLSBhL3Rlc3RzL2luY2x1ZGUvYWx0LWR1bW15L2NoYWNoYTIwX2FsdC5oCisrKyAvZGV2L251bGwKQEAgLTEsMTYgKzAsMCBAQAotLyogY2hhY2hhMjBfYWx0Lmggd2l0aCBkdW1teSB0eXBlcyBmb3IgTUJFRFRMU19DSEFDSEEyMF9BTFQgKi8KLS8qCi0gKiAgQ29weXJpZ2h0IFRoZSBNYmVkIFRMUyBDb250cmlidXRvcnMKLSAqICBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMCBPUiBHUEwtMi4wLW9yLWxhdGVyCi0gKi8KLQotI2lmbmRlZiBDSEFDSEEyMF9BTFRfSAotI2RlZmluZSBDSEFDSEEyMF9BTFRfSAotCi10eXBlZGVmIHN0cnVjdCBtYmVkdGxzX2NoYWNoYTIwX2NvbnRleHQgewotICAgIGludCBkdW1teTsKLX0KLW1iZWR0bHNfY2hhY2hhMjBfY29udGV4dDsKLQotCi0jZW5kaWYgLyogY2hhY2hhMjBfYWx0LmggKi8KZGlmZiAtLWdpdCBhL3Rlc3RzL2luY2x1ZGUvYWx0LWR1bW15L2NoYWNoYXBvbHlfYWx0LmggYi90ZXN0cy9pbmNsdWRlL2FsdC1kdW1teS9jaGFjaGFwb2x5X2FsdC5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkZTI4Y2VkLi4wMDAwMDAwCi0tLSBhL3Rlc3RzL2luY2x1ZGUvYWx0LWR1bW15L2NoYWNoYXBvbHlfYWx0LmgKKysrIC9kZXYvbnVsbApAQCAtMSwxOCArMCwwIEBACi0vKiBjaGFjaGFwb2x5X2FsdC5oIHdpdGggZHVtbXkgdHlwZXMgZm9yIE1CRURUTFNfQ0hBQ0hBUE9MWV9BTFQgKi8KLS8qCi0gKiAgQ29weXJpZ2h0IFRoZSBNYmVkIFRMUyBDb250cmlidXRvcnMKLSAqICBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMCBPUiBHUEwtMi4wLW9yLWxhdGVyCi0gKi8KLQotI2lmbmRlZiBDSEFDSEFQT0xZX0FMVF9ICi0jZGVmaW5lIENIQUNIQVBPTFlfQUxUX0gKLQotI2luY2x1ZGUgIm1iZWR0bHMvY2hhY2hhMjAuaCIKLQotdHlwZWRlZiBzdHJ1Y3QgbWJlZHRsc19jaGFjaGFwb2x5X2NvbnRleHQgewotICAgIGludCBkdW1teTsKLX0KLW1iZWR0bHNfY2hhY2hhcG9seV9jb250ZXh0OwotCi0KLSNlbmRpZiAvKiBjaGFjaGFwb2x5X2FsdC5oICovCmRpZmYgLS1naXQgYS90ZXN0cy9pbmNsdWRlL2FsdC1kdW1teS9jbWFjX2FsdC5oIGIvdGVzdHMvaW5jbHVkZS9hbHQtZHVtbXkvY21hY19hbHQuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNjhiNTNkNy4uMDAwMDAwMAotLS0gYS90ZXN0cy9pbmNsdWRlL2FsdC1kdW1teS9jbWFjX2FsdC5oCisrKyAvZGV2L251bGwKQEAgLTEsMTUgKzAsMCBAQAotLyogY21hY19hbHQuaCB3aXRoIGR1bW15IHR5cGVzIGZvciBNQkVEVExTX0NNQUNfQUxUICovCi0vKgotICogIENvcHlyaWdodCBUaGUgTWJlZCBUTFMgQ29udHJpYnV0b3JzCi0gKiAgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjAgT1IgR1BMLTIuMC1vci1sYXRlcgotICovCi0KLSNpZm5kZWYgQ01BQ19BTFRfSAotI2RlZmluZSBDTUFDX0FMVF9ICi0KLXN0cnVjdCBtYmVkdGxzX2NtYWNfY29udGV4dF90IHsKLSAgICBpbnQgZHVtbXk7Ci19OwotCi0KLSNlbmRpZiAvKiBjbWFjX2FsdC5oICovCmRpZmYgLS1naXQgYS90ZXN0cy9pbmNsdWRlL2FsdC1kdW1teS9kZXNfYWx0LmggYi90ZXN0cy9pbmNsdWRlL2FsdC1kdW1teS9kZXNfYWx0LmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGQwNzk4NjEuLjAwMDAwMDAKLS0tIGEvdGVzdHMvaW5jbHVkZS9hbHQtZHVtbXkvZGVzX2FsdC5oCisrKyAvZGV2L251bGwKQEAgLTEsMjIgKzAsMCBAQAotLyogZGVzX2FsdC5oIHdpdGggZHVtbXkgdHlwZXMgZm9yIE1CRURUTFNfREVTX0FMVCAqLwotLyoKLSAqICBDb3B5cmlnaHQgVGhlIE1iZWQgVExTIENvbnRyaWJ1dG9ycwotICogIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wIE9SIEdQTC0yLjAtb3ItbGF0ZXIKLSAqCi0gKi8KLQotI2lmbmRlZiBERVNfQUxUX0gKLSNkZWZpbmUgREVTX0FMVF9ICi0KLXR5cGVkZWYgc3RydWN0IG1iZWR0bHNfZGVzX2NvbnRleHQgewotICAgIGludCBkdW1teTsKLX0KLW1iZWR0bHNfZGVzX2NvbnRleHQ7Ci0KLXR5cGVkZWYgc3RydWN0IG1iZWR0bHNfZGVzM19jb250ZXh0IHsKLSAgICBpbnQgZHVtbXk7Ci19Ci1tYmVkdGxzX2RlczNfY29udGV4dDsKLQotCi0jZW5kaWYgLyogZGVzX2FsdC5oICovCmRpZmYgLS1naXQgYS90ZXN0cy9pbmNsdWRlL2FsdC1kdW1teS9kaG1fYWx0LmggYi90ZXN0cy9pbmNsdWRlL2FsdC1kdW1teS9kaG1fYWx0LmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDNjYjUxZDIuLjAwMDAwMDAKLS0tIGEvdGVzdHMvaW5jbHVkZS9hbHQtZHVtbXkvZGhtX2FsdC5oCisrKyAvZGV2L251bGwKQEAgLTEsMTYgKzAsMCBAQAotLyogZGhtX2FsdC5oIHdpdGggZHVtbXkgdHlwZXMgZm9yIE1CRURUTFNfREhNX0FMVCAqLwotLyoKLSAqICBDb3B5cmlnaHQgVGhlIE1iZWQgVExTIENvbnRyaWJ1dG9ycwotICogIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wIE9SIEdQTC0yLjAtb3ItbGF0ZXIKLSAqLwotCi0jaWZuZGVmIERITV9BTFRfSAotI2RlZmluZSBESE1fQUxUX0gKLQotdHlwZWRlZiBzdHJ1Y3QgbWJlZHRsc19kaG1fY29udGV4dCB7Ci0gICAgaW50IGR1bW15OwotfQotbWJlZHRsc19kaG1fY29udGV4dDsKLQotCi0jZW5kaWYgLyogZGhtX2FsdC5oICovCmRpZmYgLS1naXQgYS90ZXN0cy9pbmNsdWRlL2FsdC1kdW1teS9lY2pwYWtlX2FsdC5oIGIvdGVzdHMvaW5jbHVkZS9hbHQtZHVtbXkvZWNqcGFrZV9hbHQuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNGQ3NTI0OC4uMDAwMDAwMAotLS0gYS90ZXN0cy9pbmNsdWRlL2FsdC1kdW1teS9lY2pwYWtlX2FsdC5oCisrKyAvZGV2L251bGwKQEAgLTEsMTUgKzAsMCBAQAotLyogZWNqcGFrZV9hbHQuaCB3aXRoIGR1bW15IHR5cGVzIGZvciBNQkVEVExTX0VDSlBBS0VfQUxUICovCi0vKgotICogIENvcHlyaWdodCBUaGUgTWJlZCBUTFMgQ29udHJpYnV0b3JzCi0gKiAgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjAgT1IgR1BMLTIuMC1vci1sYXRlcgotICovCi0KLSNpZm5kZWYgRUNKUEFLRV9BTFRfSAotI2RlZmluZSBFQ0pQQUtFX0FMVF9ICi0KLXR5cGVkZWYgc3RydWN0IG1iZWR0bHNfZWNqcGFrZV9jb250ZXh0IHsKLSAgICBpbnQgZHVtbXk7Ci19IG1iZWR0bHNfZWNqcGFrZV9jb250ZXh0OwotCi0KLSNlbmRpZiAvKiBlY2pwYWtlX2FsdC5oICovCmRpZmYgLS1naXQgYS90ZXN0cy9pbmNsdWRlL2FsdC1kdW1teS9lY3BfYWx0LmggYi90ZXN0cy9pbmNsdWRlL2FsdC1kdW1teS9lY3BfYWx0LmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGQyMDRiMTguLjAwMDAwMDAKLS0tIGEvdGVzdHMvaW5jbHVkZS9hbHQtZHVtbXkvZWNwX2FsdC5oCisrKyAvZGV2L251bGwKQEAgLTEsMjIgKzAsMCBAQAotLyogZWNwX2FsdC5oIHdpdGggZHVtbXkgdHlwZXMgZm9yIE1CRURUTFNfRUNQX0FMVCAqLwotLyoKLSAqICBDb3B5cmlnaHQgVGhlIE1iZWQgVExTIENvbnRyaWJ1dG9ycwotICogIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wIE9SIEdQTC0yLjAtb3ItbGF0ZXIKLSAqLwotCi0jaWZuZGVmIEVDUF9BTFRfSAotI2RlZmluZSBFQ1BfQUxUX0gKLQotdHlwZWRlZiBzdHJ1Y3QgbWJlZHRsc19lY3BfZ3JvdXAgewotICAgIGNvbnN0IG1iZWR0bHNfZWNwX2dyb3VwX2lkIGlkOwotICAgIGNvbnN0IG1iZWR0bHNfbXBpIFA7Ci0gICAgY29uc3QgbWJlZHRsc19tcGkgQTsKLSAgICBjb25zdCBtYmVkdGxzX21waSBCOwotICAgIGNvbnN0IG1iZWR0bHNfZWNwX3BvaW50IEc7Ci0gICAgY29uc3QgbWJlZHRsc19tcGkgTjsKLSAgICBjb25zdCBzaXplX3QgcGJpdHM7Ci0gICAgY29uc3Qgc2l6ZV90IG5iaXRzOwotfQotbWJlZHRsc19lY3BfZ3JvdXA7Ci0KLSNlbmRpZiAvKiBlY3BfYWx0LmggKi8KZGlmZiAtLWdpdCBhL3Rlc3RzL2luY2x1ZGUvYWx0LWR1bW15L2djbV9hbHQuaCBiL3Rlc3RzL2luY2x1ZGUvYWx0LWR1bW15L2djbV9hbHQuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggY2ZhNzNkMi4uMDAwMDAwMAotLS0gYS90ZXN0cy9pbmNsdWRlL2FsdC1kdW1teS9nY21fYWx0LmgKKysrIC9kZXYvbnVsbApAQCAtMSwxNiArMCwwIEBACi0vKiBnY21fYWx0Lmggd2l0aCBkdW1teSB0eXBlcyBmb3IgTUJFRFRMU19HQ01fQUxUICovCi0vKgotICogIENvcHlyaWdodCBUaGUgTWJlZCBUTFMgQ29udHJpYnV0b3JzCi0gKiAgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjAgT1IgR1BMLTIuMC1vci1sYXRlcgotICovCi0KLSNpZm5kZWYgR0NNX0FMVF9ICi0jZGVmaW5lIEdDTV9BTFRfSAotCi10eXBlZGVmIHN0cnVjdCBtYmVkdGxzX2djbV9jb250ZXh0IHsKLSAgICBpbnQgZHVtbXk7Ci19Ci1tYmVkdGxzX2djbV9jb250ZXh0OwotCi0KLSNlbmRpZiAvKiBnY21fYWx0LmggKi8KZGlmZiAtLWdpdCBhL3Rlc3RzL2luY2x1ZGUvYWx0LWR1bW15L21kNV9hbHQuaCBiL3Rlc3RzL2luY2x1ZGUvYWx0LWR1bW15L21kNV9hbHQuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZTNhMTVkNy4uMDAwMDAwMAotLS0gYS90ZXN0cy9pbmNsdWRlL2FsdC1kdW1teS9tZDVfYWx0LmgKKysrIC9kZXYvbnVsbApAQCAtMSwxNiArMCwwIEBACi0vKiBtZDVfYWx0Lmggd2l0aCBkdW1teSB0eXBlcyBmb3IgTUJFRFRMU19NRDVfQUxUICovCi0vKgotICogIENvcHlyaWdodCBUaGUgTWJlZCBUTFMgQ29udHJpYnV0b3JzCi0gKiAgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjAgT1IgR1BMLTIuMC1vci1sYXRlcgotICovCi0KLSNpZm5kZWYgTUQ1X0FMVF9ICi0jZGVmaW5lIE1ENV9BTFRfSAotCi10eXBlZGVmIHN0cnVjdCBtYmVkdGxzX21kNV9jb250ZXh0IHsKLSAgICBpbnQgZHVtbXk7Ci19Ci1tYmVkdGxzX21kNV9jb250ZXh0OwotCi0KLSNlbmRpZiAvKiBtZDVfYWx0LmggKi8KZGlmZiAtLWdpdCBhL3Rlc3RzL2luY2x1ZGUvYWx0LWR1bW15L25pc3Rfa3dfYWx0LmggYi90ZXN0cy9pbmNsdWRlL2FsdC1kdW1teS9uaXN0X2t3X2FsdC5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxMjc0ZDQwLi4wMDAwMDAwCi0tLSBhL3Rlc3RzL2luY2x1ZGUvYWx0LWR1bW15L25pc3Rfa3dfYWx0LmgKKysrIC9kZXYvbnVsbApAQCAtMSwxNSArMCwwIEBACi0vKiBuaXN0X2t3X2FsdC5oIHdpdGggZHVtbXkgdHlwZXMgZm9yIE1CRURUTFNfTklTVF9LV19BTFQgKi8KLS8qCi0gKiAgQ29weXJpZ2h0IFRoZSBNYmVkIFRMUyBDb250cmlidXRvcnMKLSAqICBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMCBPUiBHUEwtMi4wLW9yLWxhdGVyCi0gKi8KLQotI2lmbmRlZiBOSVNUX0tXX0FMVF9ICi0jZGVmaW5lIE5JU1RfS1dfQUxUX0gKLQotdHlwZWRlZiBzdHJ1Y3QgewotICAgIGludCBkdW1teTsKLX0gbWJlZHRsc19uaXN0X2t3X2NvbnRleHQ7Ci0KLQotI2VuZGlmIC8qIG5pc3Rfa3dfYWx0LmggKi8KZGlmZiAtLWdpdCBhL3Rlc3RzL2luY2x1ZGUvYWx0LWR1bW15L3BvbHkxMzA1X2FsdC5oIGIvdGVzdHMvaW5jbHVkZS9hbHQtZHVtbXkvcG9seTEzMDVfYWx0LmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGM4ZWQxYmMuLjAwMDAwMDAKLS0tIGEvdGVzdHMvaW5jbHVkZS9hbHQtZHVtbXkvcG9seTEzMDVfYWx0LmgKKysrIC9kZXYvbnVsbApAQCAtMSwxNiArMCwwIEBACi0vKiBwb2x5MTMwNV9hbHQuaCB3aXRoIGR1bW15IHR5cGVzIGZvciBNQkVEVExTX1BPTFkxMzA1X0FMVCAqLwotLyoKLSAqICBDb3B5cmlnaHQgVGhlIE1iZWQgVExTIENvbnRyaWJ1dG9ycwotICogIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wIE9SIEdQTC0yLjAtb3ItbGF0ZXIKLSAqLwotCi0jaWZuZGVmIFBPTFkxMzA1X0FMVF9ICi0jZGVmaW5lIFBPTFkxMzA1X0FMVF9ICi0KLXR5cGVkZWYgc3RydWN0IG1iZWR0bHNfcG9seTEzMDVfY29udGV4dCB7Ci0gICAgaW50IGR1bW15OwotfQotbWJlZHRsc19wb2x5MTMwNV9jb250ZXh0OwotCi0KLSNlbmRpZiAvKiBwb2x5MTMwNV9hbHQuaCAqLwpkaWZmIC0tZ2l0IGEvdGVzdHMvaW5jbHVkZS9hbHQtZHVtbXkvcmlwZW1kMTYwX2FsdC5oIGIvdGVzdHMvaW5jbHVkZS9hbHQtZHVtbXkvcmlwZW1kMTYwX2FsdC5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3MmFlNDdlLi4wMDAwMDAwCi0tLSBhL3Rlc3RzL2luY2x1ZGUvYWx0LWR1bW15L3JpcGVtZDE2MF9hbHQuaAorKysgL2Rldi9udWxsCkBAIC0xLDE2ICswLDAgQEAKLS8qIHJpcGVtZDE2MF9hbHQuaCB3aXRoIGR1bW15IHR5cGVzIGZvciBNQkVEVExTX1JJUEVNRDE2MF9BTFQgKi8KLS8qCi0gKiAgQ29weXJpZ2h0IFRoZSBNYmVkIFRMUyBDb250cmlidXRvcnMKLSAqICBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMCBPUiBHUEwtMi4wLW9yLWxhdGVyCi0gKi8KLQotI2lmbmRlZiBSSVBFTUQxNjBfQUxUX0gKLSNkZWZpbmUgUklQRU1EMTYwX0FMVF9ICi0KLXR5cGVkZWYgc3RydWN0IG1iZWR0bHNfcmlwZW1kMTYwX2NvbnRleHQgewotICAgIGludCBkdW1teTsKLX0KLW1iZWR0bHNfcmlwZW1kMTYwX2NvbnRleHQ7Ci0KLQotI2VuZGlmIC8qIHJpcGVtZDE2MF9hbHQuaCAqLwpkaWZmIC0tZ2l0IGEvdGVzdHMvaW5jbHVkZS9hbHQtZHVtbXkvcnNhX2FsdC5oIGIvdGVzdHMvaW5jbHVkZS9hbHQtZHVtbXkvcnNhX2FsdC5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlYWJjMjZkLi4wMDAwMDAwCi0tLSBhL3Rlc3RzL2luY2x1ZGUvYWx0LWR1bW15L3JzYV9hbHQuaAorKysgL2Rldi9udWxsCkBAIC0xLDE2ICswLDAgQEAKLS8qIHJzYV9hbHQuaCB3aXRoIGR1bW15IHR5cGVzIGZvciBNQkVEVExTX1JTQV9BTFQgKi8KLS8qCi0gKiAgQ29weXJpZ2h0IFRoZSBNYmVkIFRMUyBDb250cmlidXRvcnMKLSAqICBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMCBPUiBHUEwtMi4wLW9yLWxhdGVyCi0gKi8KLQotI2lmbmRlZiBSU0FfQUxUX0gKLSNkZWZpbmUgUlNBX0FMVF9ICi0KLXR5cGVkZWYgc3RydWN0IG1iZWR0bHNfcnNhX2NvbnRleHQgewotICAgIGludCBkdW1teTsKLX0KLW1iZWR0bHNfcnNhX2NvbnRleHQ7Ci0KLQotI2VuZGlmIC8qIHJzYV9hbHQuaCAqLwpkaWZmIC0tZ2l0IGEvdGVzdHMvaW5jbHVkZS9hbHQtZHVtbXkvc2hhMV9hbHQuaCBiL3Rlc3RzL2luY2x1ZGUvYWx0LWR1bW15L3NoYTFfYWx0LmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGQ4YWM5NzEuLjAwMDAwMDAKLS0tIGEvdGVzdHMvaW5jbHVkZS9hbHQtZHVtbXkvc2hhMV9hbHQuaAorKysgL2Rldi9udWxsCkBAIC0xLDE2ICswLDAgQEAKLS8qIHNoYTFfYWx0Lmggd2l0aCBkdW1teSB0eXBlcyBmb3IgTUJFRFRMU19TSEExX0FMVCAqLwotLyoKLSAqICBDb3B5cmlnaHQgVGhlIE1iZWQgVExTIENvbnRyaWJ1dG9ycwotICogIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wIE9SIEdQTC0yLjAtb3ItbGF0ZXIKLSAqLwotCi0jaWZuZGVmIFNIQTFfQUxUX0gKLSNkZWZpbmUgU0hBMV9BTFRfSAotCi10eXBlZGVmIHN0cnVjdCBtYmVkdGxzX3NoYTFfY29udGV4dCB7Ci0gICAgaW50IGR1bW15OwotfQotbWJlZHRsc19zaGExX2NvbnRleHQ7Ci0KLQotI2VuZGlmIC8qIHNoYTFfYWx0LmggKi8KZGlmZiAtLWdpdCBhL3Rlc3RzL2luY2x1ZGUvYWx0LWR1bW15L3NoYTI1Nl9hbHQuaCBiL3Rlc3RzL2luY2x1ZGUvYWx0LWR1bW15L3NoYTI1Nl9hbHQuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYjE5MDBhZC4uMDAwMDAwMAotLS0gYS90ZXN0cy9pbmNsdWRlL2FsdC1kdW1teS9zaGEyNTZfYWx0LmgKKysrIC9kZXYvbnVsbApAQCAtMSwxNiArMCwwIEBACi0vKiBzaGEyNTZfYWx0Lmggd2l0aCBkdW1teSB0eXBlcyBmb3IgTUJFRFRMU19TSEEyNTZfQUxUICovCi0vKgotICogIENvcHlyaWdodCBUaGUgTWJlZCBUTFMgQ29udHJpYnV0b3JzCi0gKiAgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjAgT1IgR1BMLTIuMC1vci1sYXRlcgotICovCi0KLSNpZm5kZWYgU0hBMjU2X0FMVF9ICi0jZGVmaW5lIFNIQTI1Nl9BTFRfSAotCi10eXBlZGVmIHN0cnVjdCBtYmVkdGxzX3NoYTI1Nl9jb250ZXh0IHsKLSAgICBpbnQgZHVtbXk7Ci19Ci1tYmVkdGxzX3NoYTI1Nl9jb250ZXh0OwotCi0KLSNlbmRpZiAvKiBzaGEyNTZfYWx0LmggKi8KZGlmZiAtLWdpdCBhL3Rlc3RzL2luY2x1ZGUvYWx0LWR1bW15L3NoYTUxMl9hbHQuaCBiL3Rlc3RzL2luY2x1ZGUvYWx0LWR1bW15L3NoYTUxMl9hbHQuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggODU3YmM5MS4uMDAwMDAwMAotLS0gYS90ZXN0cy9pbmNsdWRlL2FsdC1kdW1teS9zaGE1MTJfYWx0LmgKKysrIC9kZXYvbnVsbApAQCAtMSwxNiArMCwwIEBACi0vKiBzaGE1MTJfYWx0Lmggd2l0aCBkdW1teSB0eXBlcyBmb3IgTUJFRFRMU19TSEE1MTJfQUxUICovCi0vKgotICogIENvcHlyaWdodCBUaGUgTWJlZCBUTFMgQ29udHJpYnV0b3JzCi0gKiAgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjAgT1IgR1BMLTIuMC1vci1sYXRlcgotICovCi0KLSNpZm5kZWYgU0hBNTEyX0FMVF9ICi0jZGVmaW5lIFNIQTUxMl9BTFRfSAotCi10eXBlZGVmIHN0cnVjdCBtYmVkdGxzX3NoYTUxMl9jb250ZXh0IHsKLSAgICBpbnQgZHVtbXk7Ci19Ci1tYmVkdGxzX3NoYTUxMl9jb250ZXh0OwotCi0KLSNlbmRpZiAvKiBzaGE1MTJfYWx0LmggKi8KZGlmZiAtLWdpdCBhL3Rlc3RzL2luY2x1ZGUvdGVzdC9wc2FfY3J5cHRvX2hlbHBlcnMuaCBiL3Rlc3RzL2luY2x1ZGUvdGVzdC9wc2FfY3J5cHRvX2hlbHBlcnMuaAppbmRleCA3MzA2ZDhlLi5lYTZlOGM1IDEwMDY0NAotLS0gYS90ZXN0cy9pbmNsdWRlL3Rlc3QvcHNhX2NyeXB0b19oZWxwZXJzLmgKKysrIGIvdGVzdHMvaW5jbHVkZS90ZXN0L3BzYV9jcnlwdG9faGVscGVycy5oCkBAIC0xMSw3ICsxMSw3IEBACiAKICNpbmNsdWRlICJ0ZXN0L2hlbHBlcnMuaCIKIAotI2lmIGRlZmluZWQoTUJFRFRMU19QU0FfQ1JZUFRPX0MpCisjaWYgZGVmaW5lZChNQkVEVExTX1BTQV9DUllQVE9fQ0xJRU5UKQogI2luY2x1ZGUgInRlc3QvcHNhX2hlbHBlcnMuaCIKICNpbmNsdWRlIDxwc2EvY3J5cHRvLmg+CiAjZW5kaWYKQEAgLTM4LDEyICszOCwxNSBAQAogICAgICAgICBtYmVkdGxzX3BzYV9jcnlwdG9fZnJlZSgpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgIH0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgIHdoaWxlICgwKQotI2Vsc2UgLypNQkVEVExTX1BTQV9DUllQVE9fQyAqLworI2VsaWYgZGVmaW5lZChNQkVEVExTX1BTQV9DUllQVE9fQ0xJRU5UKSAvKiBNQkVEVExTX1BTQV9DUllQVE9fQ0xJRU5UICYmICFNQkVEVExTX1BTQV9DUllQVE9fQyAqLworI2RlZmluZSBQU0FfSU5JVCgpIFBTQV9BU1NFUlQocHNhX2NyeXB0b19pbml0KCkpCisjZGVmaW5lIFBTQV9ET05FKCkgbWJlZHRsc19wc2FfY3J5cHRvX2ZyZWUoKTsKKyNlbHNlICAvKiBNQkVEVExTX1BTQV9DUllQVE9fQ0xJRU5UICYmICFNQkVEVExTX1BTQV9DUllQVE9fQyAqLwogI2RlZmluZSBQU0FfSU5JVCgpICgodm9pZCkgMCkKICNkZWZpbmUgUFNBX0RPTkUoKSAoKHZvaWQpIDApCiAjZW5kaWYgLyogTUJFRFRMU19QU0FfQ1JZUFRPX0MgKi8KIAotI2lmIGRlZmluZWQoTUJFRFRMU19QU0FfQ1JZUFRPX0MpCisjaWYgZGVmaW5lZChNQkVEVExTX1BTQV9DUllQVE9fQ0xJRU5UKQogCiAjaWYgZGVmaW5lZChNQkVEVExTX1BTQV9DUllQVE9fU1RPUkFHRV9DKQogCkBAIC0yNDgsOCArMjUxLDcgQEAKICAqICBccGFyYW0ga2V5X3R5cGUgIEtleSB0eXBlCiAgKiAgXHBhcmFtIGtleV9iaXRzICBLZXkgbGVuZ3RoIGluIG51bWJlciBvZiBiaXRzLgogICovCi0jaWYgZGVmaW5lZChNQkVEVExTX0FFU19BTFQpIHx8IFwKLSAgICBkZWZpbmVkKE1CRURUTFNfQUVTX1NFVEtFWV9FTkNfQUxUKSB8fCBcCisjaWYgZGVmaW5lZChNQkVEVExTX0FFU19TRVRLRVlfRU5DX0FMVCkgfHwgXAogICAgIGRlZmluZWQoTUJFRFRMU19QU0FfQUNDRUxfS0VZX1RZUEVfQUVTKQogI2RlZmluZSBNQkVEVExTX1RFU1RfSEFWRV9BTFRfQUVTIDEKICNlbHNlCkBAIC0yOTEsMTggKzI5MywxOCBAQAogICogIFxwYXJhbSAgYWxnICAgICAgICAgICAgIFRoZSBBRUFEIGFsZ29yaXRobS4KICAqICBccGFyYW0gIG5vbmNlX2xlbmd0aCAgICBUaGUgbm9uY2UgbGVuZ3RoIGluIG51bWJlciBvZiBieXRlcy4KICAqLwotI2lmIGRlZmluZWQoTUJFRFRMU19HQ01fQUxUKSB8fCBcCi0gICAgZGVmaW5lZChNQkVEVExTX1BTQV9BQ0NFTF9BTEdfR0NNKQotI2RlZmluZSBNQkVEVExTX1RFU1RfSEFWRV9BTFRfR0NNICAxCisKKyNpZiBkZWZpbmVkKE1CRURUTFNfUFNBX0FDQ0VMX0FMR19HQ00pCisjZGVmaW5lIE1CRURUTFNfVEVTVF9IQVZFX0FDQ0VMX0dDTSAgMQogI2Vsc2UKLSNkZWZpbmUgTUJFRFRMU19URVNUX0hBVkVfQUxUX0dDTSAgMAorI2RlZmluZSBNQkVEVExTX1RFU1RfSEFWRV9BQ0NFTF9HQ00gIDAKICNlbmRpZgogCiAjZGVmaW5lIE1CRURUTFNfVEVTVF9QU0FfU0tJUF9JRl9BTFRfR0NNX05PVF8xMkJZVEVTX05PTkNFKGFsZywgICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9uY2VfbGVuZ3RoKSBcCiAgICAgZG8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgICAgIGlmICgoTUJFRFRMU19URVNUX0hBVkVfQUxUX0dDTSkgJiYgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICBpZiAoKE1CRURUTFNfVEVTVF9IQVZFX0FDQ0VMX0dDTSkgJiYgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAgICAgICAgKFBTQV9BTEdfQUVBRF9XSVRIX1NIT1JURU5FRF9UQUcoKGFsZyksIDApID09ICAgICAgICAgICAgXAogICAgICAgICAgICAgIFBTQV9BTEdfQUVBRF9XSVRIX1NIT1JURU5FRF9UQUcoUFNBX0FMR19HQ00sIDApKSAmJiAgICAgICBcCiAgICAgICAgICAgICAoKG5vbmNlX2xlbmd0aCkgIT0gMTIpKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXApAQCAtMzEzLDcgKzMxNSw3IEBACiAgICAgfSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgd2hpbGUgKDApCiAKLSNlbmRpZiAvKiBNQkVEVExTX1BTQV9DUllQVE9fQyAqLworI2VuZGlmIC8qIE1CRURUTFNfUFNBX0NSWVBUT19DTElFTlQgKi8KIAogLyoqIFxkZWYgVVNFX1BTQV9JTklUCiAgKgpkaWZmIC0tZ2l0IGEvdGVzdHMvaW5jbHVkZS90ZXN0L3BzYV90ZXN0X3dyYXBwZXJzLmggYi90ZXN0cy9pbmNsdWRlL3Rlc3QvcHNhX3Rlc3Rfd3JhcHBlcnMuaAppbmRleCBlY2Y5MjZlLi5lNmQ3MTJiIDEwMDY0NAotLS0gYS90ZXN0cy9pbmNsdWRlL3Rlc3QvcHNhX3Rlc3Rfd3JhcHBlcnMuaAorKysgYi90ZXN0cy9pbmNsdWRlL3Rlc3QvcHNhX3Rlc3Rfd3JhcHBlcnMuaApAQCAtMjYyLDEyICsyNjIsMTUgQEAKICNkZWZpbmUgcHNhX2NvcHlfa2V5KGFyZzBfc291cmNlX2tleSwgYXJnMV9hdHRyaWJ1dGVzLCBhcmcyX3RhcmdldF9rZXkpIFwKICAgICBtYmVkdGxzX3Rlc3Rfd3JhcF9wc2FfY29weV9rZXkoYXJnMF9zb3VyY2Vfa2V5LCBhcmcxX2F0dHJpYnV0ZXMsIGFyZzJfdGFyZ2V0X2tleSkKIAorI2lmIGRlZmluZWQoUFNBX1dBTlRfQUxHX1NPTUVfUEFLRSkKIHBzYV9zdGF0dXNfdCBtYmVkdGxzX3Rlc3Rfd3JhcF9wc2FfY3J5cHRvX2RyaXZlcl9wYWtlX2dldF9jaXBoZXJfc3VpdGUoCiAgICAgY29uc3QgcHNhX2NyeXB0b19kcml2ZXJfcGFrZV9pbnB1dHNfdCAqYXJnMF9pbnB1dHMsCiAgICAgcHNhX3Bha2VfY2lwaGVyX3N1aXRlX3QgKmFyZzFfY2lwaGVyX3N1aXRlKTsKICNkZWZpbmUgcHNhX2NyeXB0b19kcml2ZXJfcGFrZV9nZXRfY2lwaGVyX3N1aXRlKGFyZzBfaW5wdXRzLCBhcmcxX2NpcGhlcl9zdWl0ZSkgXAogICAgIG1iZWR0bHNfdGVzdF93cmFwX3BzYV9jcnlwdG9fZHJpdmVyX3Bha2VfZ2V0X2NpcGhlcl9zdWl0ZShhcmcwX2lucHV0cywgYXJnMV9jaXBoZXJfc3VpdGUpCisjZW5kaWYgLyogZGVmaW5lZChQU0FfV0FOVF9BTEdfU09NRV9QQUtFKSAqLwogCisjaWYgZGVmaW5lZChQU0FfV0FOVF9BTEdfU09NRV9QQUtFKQogcHNhX3N0YXR1c190IG1iZWR0bHNfdGVzdF93cmFwX3BzYV9jcnlwdG9fZHJpdmVyX3Bha2VfZ2V0X3Bhc3N3b3JkKAogICAgIGNvbnN0IHBzYV9jcnlwdG9fZHJpdmVyX3Bha2VfaW5wdXRzX3QgKmFyZzBfaW5wdXRzLAogICAgIHVpbnQ4X3QgKmFyZzFfYnVmZmVyLApAQCAtMjc1LDEzICsyNzgsMTcgQEAKICAgICBzaXplX3QgKmFyZzNfYnVmZmVyX2xlbmd0aCk7CiAjZGVmaW5lIHBzYV9jcnlwdG9fZHJpdmVyX3Bha2VfZ2V0X3Bhc3N3b3JkKGFyZzBfaW5wdXRzLCBhcmcxX2J1ZmZlciwgYXJnMl9idWZmZXJfc2l6ZSwgYXJnM19idWZmZXJfbGVuZ3RoKSBcCiAgICAgbWJlZHRsc190ZXN0X3dyYXBfcHNhX2NyeXB0b19kcml2ZXJfcGFrZV9nZXRfcGFzc3dvcmQoYXJnMF9pbnB1dHMsIGFyZzFfYnVmZmVyLCBhcmcyX2J1ZmZlcl9zaXplLCBhcmczX2J1ZmZlcl9sZW5ndGgpCisjZW5kaWYgLyogZGVmaW5lZChQU0FfV0FOVF9BTEdfU09NRV9QQUtFKSAqLwogCisjaWYgZGVmaW5lZChQU0FfV0FOVF9BTEdfU09NRV9QQUtFKQogcHNhX3N0YXR1c190IG1iZWR0bHNfdGVzdF93cmFwX3BzYV9jcnlwdG9fZHJpdmVyX3Bha2VfZ2V0X3Bhc3N3b3JkX2xlbigKICAgICBjb25zdCBwc2FfY3J5cHRvX2RyaXZlcl9wYWtlX2lucHV0c190ICphcmcwX2lucHV0cywKICAgICBzaXplX3QgKmFyZzFfcGFzc3dvcmRfbGVuKTsKICNkZWZpbmUgcHNhX2NyeXB0b19kcml2ZXJfcGFrZV9nZXRfcGFzc3dvcmRfbGVuKGFyZzBfaW5wdXRzLCBhcmcxX3Bhc3N3b3JkX2xlbikgXAogICAgIG1iZWR0bHNfdGVzdF93cmFwX3BzYV9jcnlwdG9fZHJpdmVyX3Bha2VfZ2V0X3Bhc3N3b3JkX2xlbihhcmcwX2lucHV0cywgYXJnMV9wYXNzd29yZF9sZW4pCisjZW5kaWYgLyogZGVmaW5lZChQU0FfV0FOVF9BTEdfU09NRV9QQUtFKSAqLwogCisjaWYgZGVmaW5lZChQU0FfV0FOVF9BTEdfU09NRV9QQUtFKQogcHNhX3N0YXR1c190IG1iZWR0bHNfdGVzdF93cmFwX3BzYV9jcnlwdG9fZHJpdmVyX3Bha2VfZ2V0X3BlZXIoCiAgICAgY29uc3QgcHNhX2NyeXB0b19kcml2ZXJfcGFrZV9pbnB1dHNfdCAqYXJnMF9pbnB1dHMsCiAgICAgdWludDhfdCAqYXJnMV9wZWVyX2lkLApAQCAtMjg5LDEzICsyOTYsMTcgQEAKICAgICBzaXplX3QgKmFyZzNfcGVlcl9pZF9sZW5ndGgpOwogI2RlZmluZSBwc2FfY3J5cHRvX2RyaXZlcl9wYWtlX2dldF9wZWVyKGFyZzBfaW5wdXRzLCBhcmcxX3BlZXJfaWQsIGFyZzJfcGVlcl9pZF9zaXplLCBhcmczX3BlZXJfaWRfbGVuZ3RoKSBcCiAgICAgbWJlZHRsc190ZXN0X3dyYXBfcHNhX2NyeXB0b19kcml2ZXJfcGFrZV9nZXRfcGVlcihhcmcwX2lucHV0cywgYXJnMV9wZWVyX2lkLCBhcmcyX3BlZXJfaWRfc2l6ZSwgYXJnM19wZWVyX2lkX2xlbmd0aCkKKyNlbmRpZiAvKiBkZWZpbmVkKFBTQV9XQU5UX0FMR19TT01FX1BBS0UpICovCiAKKyNpZiBkZWZpbmVkKFBTQV9XQU5UX0FMR19TT01FX1BBS0UpCiBwc2Ffc3RhdHVzX3QgbWJlZHRsc190ZXN0X3dyYXBfcHNhX2NyeXB0b19kcml2ZXJfcGFrZV9nZXRfcGVlcl9sZW4oCiAgICAgY29uc3QgcHNhX2NyeXB0b19kcml2ZXJfcGFrZV9pbnB1dHNfdCAqYXJnMF9pbnB1dHMsCiAgICAgc2l6ZV90ICphcmcxX3BlZXJfbGVuKTsKICNkZWZpbmUgcHNhX2NyeXB0b19kcml2ZXJfcGFrZV9nZXRfcGVlcl9sZW4oYXJnMF9pbnB1dHMsIGFyZzFfcGVlcl9sZW4pIFwKICAgICBtYmVkdGxzX3Rlc3Rfd3JhcF9wc2FfY3J5cHRvX2RyaXZlcl9wYWtlX2dldF9wZWVyX2xlbihhcmcwX2lucHV0cywgYXJnMV9wZWVyX2xlbikKKyNlbmRpZiAvKiBkZWZpbmVkKFBTQV9XQU5UX0FMR19TT01FX1BBS0UpICovCiAKKyNpZiBkZWZpbmVkKFBTQV9XQU5UX0FMR19TT01FX1BBS0UpCiBwc2Ffc3RhdHVzX3QgbWJlZHRsc190ZXN0X3dyYXBfcHNhX2NyeXB0b19kcml2ZXJfcGFrZV9nZXRfdXNlcigKICAgICBjb25zdCBwc2FfY3J5cHRvX2RyaXZlcl9wYWtlX2lucHV0c190ICphcmcwX2lucHV0cywKICAgICB1aW50OF90ICphcmcxX3VzZXJfaWQsCkBAIC0zMDMsMTIgKzMxNCwxNSBAQAogICAgIHNpemVfdCAqYXJnM191c2VyX2lkX2xlbik7CiAjZGVmaW5lIHBzYV9jcnlwdG9fZHJpdmVyX3Bha2VfZ2V0X3VzZXIoYXJnMF9pbnB1dHMsIGFyZzFfdXNlcl9pZCwgYXJnMl91c2VyX2lkX3NpemUsIGFyZzNfdXNlcl9pZF9sZW4pIFwKICAgICBtYmVkdGxzX3Rlc3Rfd3JhcF9wc2FfY3J5cHRvX2RyaXZlcl9wYWtlX2dldF91c2VyKGFyZzBfaW5wdXRzLCBhcmcxX3VzZXJfaWQsIGFyZzJfdXNlcl9pZF9zaXplLCBhcmczX3VzZXJfaWRfbGVuKQorI2VuZGlmIC8qIGRlZmluZWQoUFNBX1dBTlRfQUxHX1NPTUVfUEFLRSkgKi8KIAorI2lmIGRlZmluZWQoUFNBX1dBTlRfQUxHX1NPTUVfUEFLRSkKIHBzYV9zdGF0dXNfdCBtYmVkdGxzX3Rlc3Rfd3JhcF9wc2FfY3J5cHRvX2RyaXZlcl9wYWtlX2dldF91c2VyX2xlbigKICAgICBjb25zdCBwc2FfY3J5cHRvX2RyaXZlcl9wYWtlX2lucHV0c190ICphcmcwX2lucHV0cywKICAgICBzaXplX3QgKmFyZzFfdXNlcl9sZW4pOwogI2RlZmluZSBwc2FfY3J5cHRvX2RyaXZlcl9wYWtlX2dldF91c2VyX2xlbihhcmcwX2lucHV0cywgYXJnMV91c2VyX2xlbikgXAogICAgIG1iZWR0bHNfdGVzdF93cmFwX3BzYV9jcnlwdG9fZHJpdmVyX3Bha2VfZ2V0X3VzZXJfbGVuKGFyZzBfaW5wdXRzLCBhcmcxX3VzZXJfbGVuKQorI2VuZGlmIC8qIGRlZmluZWQoUFNBX1dBTlRfQUxHX1NPTUVfUEFLRSkgKi8KIAogcHNhX3N0YXR1c190IG1iZWR0bHNfdGVzdF93cmFwX3BzYV9jcnlwdG9faW5pdCh2b2lkKTsKICNkZWZpbmUgcHNhX2NyeXB0b19pbml0KCkgXApAQCAtNTY2LDE3ICs1ODAsMjIgQEAKICNkZWZpbmUgcHNhX21hY192ZXJpZnlfc2V0dXAoYXJnMF9vcGVyYXRpb24sIGFyZzFfa2V5LCBhcmcyX2FsZykgXAogICAgIG1iZWR0bHNfdGVzdF93cmFwX3BzYV9tYWNfdmVyaWZ5X3NldHVwKGFyZzBfb3BlcmF0aW9uLCBhcmcxX2tleSwgYXJnMl9hbGcpCiAKKyNpZiBkZWZpbmVkKFBTQV9XQU5UX0FMR19TT01FX1BBS0UpCiBwc2Ffc3RhdHVzX3QgbWJlZHRsc190ZXN0X3dyYXBfcHNhX3Bha2VfYWJvcnQoCiAgICAgcHNhX3Bha2Vfb3BlcmF0aW9uX3QgKmFyZzBfb3BlcmF0aW9uKTsKICNkZWZpbmUgcHNhX3Bha2VfYWJvcnQoYXJnMF9vcGVyYXRpb24pIFwKICAgICBtYmVkdGxzX3Rlc3Rfd3JhcF9wc2FfcGFrZV9hYm9ydChhcmcwX29wZXJhdGlvbikKKyNlbmRpZiAvKiBkZWZpbmVkKFBTQV9XQU5UX0FMR19TT01FX1BBS0UpICovCiAKKyNpZiBkZWZpbmVkKFBTQV9XQU5UX0FMR19TT01FX1BBS0UpCiBwc2Ffc3RhdHVzX3QgbWJlZHRsc190ZXN0X3dyYXBfcHNhX3Bha2VfZ2V0X2ltcGxpY2l0X2tleSgKICAgICBwc2FfcGFrZV9vcGVyYXRpb25fdCAqYXJnMF9vcGVyYXRpb24sCiAgICAgcHNhX2tleV9kZXJpdmF0aW9uX29wZXJhdGlvbl90ICphcmcxX291dHB1dCk7CiAjZGVmaW5lIHBzYV9wYWtlX2dldF9pbXBsaWNpdF9rZXkoYXJnMF9vcGVyYXRpb24sIGFyZzFfb3V0cHV0KSBcCiAgICAgbWJlZHRsc190ZXN0X3dyYXBfcHNhX3Bha2VfZ2V0X2ltcGxpY2l0X2tleShhcmcwX29wZXJhdGlvbiwgYXJnMV9vdXRwdXQpCisjZW5kaWYgLyogZGVmaW5lZChQU0FfV0FOVF9BTEdfU09NRV9QQUtFKSAqLwogCisjaWYgZGVmaW5lZChQU0FfV0FOVF9BTEdfU09NRV9QQUtFKQogcHNhX3N0YXR1c190IG1iZWR0bHNfdGVzdF93cmFwX3BzYV9wYWtlX2lucHV0KAogICAgIHBzYV9wYWtlX29wZXJhdGlvbl90ICphcmcwX29wZXJhdGlvbiwKICAgICBwc2FfcGFrZV9zdGVwX3QgYXJnMV9zdGVwLApAQCAtNTg0LDcgKzYwMyw5IEBACiAgICAgc2l6ZV90IGFyZzNfaW5wdXRfbGVuZ3RoKTsKICNkZWZpbmUgcHNhX3Bha2VfaW5wdXQoYXJnMF9vcGVyYXRpb24sIGFyZzFfc3RlcCwgYXJnMl9pbnB1dCwgYXJnM19pbnB1dF9sZW5ndGgpIFwKICAgICBtYmVkdGxzX3Rlc3Rfd3JhcF9wc2FfcGFrZV9pbnB1dChhcmcwX29wZXJhdGlvbiwgYXJnMV9zdGVwLCBhcmcyX2lucHV0LCBhcmczX2lucHV0X2xlbmd0aCkKKyNlbmRpZiAvKiBkZWZpbmVkKFBTQV9XQU5UX0FMR19TT01FX1BBS0UpICovCiAKKyNpZiBkZWZpbmVkKFBTQV9XQU5UX0FMR19TT01FX1BBS0UpCiBwc2Ffc3RhdHVzX3QgbWJlZHRsc190ZXN0X3dyYXBfcHNhX3Bha2Vfb3V0cHV0KAogICAgIHBzYV9wYWtlX29wZXJhdGlvbl90ICphcmcwX29wZXJhdGlvbiwKICAgICBwc2FfcGFrZV9zdGVwX3QgYXJnMV9zdGVwLApAQCAtNTkzLDM4ICs2MTQsNDkgQEAKICAgICBzaXplX3QgKmFyZzRfb3V0cHV0X2xlbmd0aCk7CiAjZGVmaW5lIHBzYV9wYWtlX291dHB1dChhcmcwX29wZXJhdGlvbiwgYXJnMV9zdGVwLCBhcmcyX291dHB1dCwgYXJnM19vdXRwdXRfc2l6ZSwgYXJnNF9vdXRwdXRfbGVuZ3RoKSBcCiAgICAgbWJlZHRsc190ZXN0X3dyYXBfcHNhX3Bha2Vfb3V0cHV0KGFyZzBfb3BlcmF0aW9uLCBhcmcxX3N0ZXAsIGFyZzJfb3V0cHV0LCBhcmczX291dHB1dF9zaXplLCBhcmc0X291dHB1dF9sZW5ndGgpCisjZW5kaWYgLyogZGVmaW5lZChQU0FfV0FOVF9BTEdfU09NRV9QQUtFKSAqLwogCisjaWYgZGVmaW5lZChQU0FfV0FOVF9BTEdfU09NRV9QQUtFKQogcHNhX3N0YXR1c190IG1iZWR0bHNfdGVzdF93cmFwX3BzYV9wYWtlX3NldF9wYXNzd29yZF9rZXkoCiAgICAgcHNhX3Bha2Vfb3BlcmF0aW9uX3QgKmFyZzBfb3BlcmF0aW9uLAogICAgIG1iZWR0bHNfc3ZjX2tleV9pZF90IGFyZzFfcGFzc3dvcmQpOwogI2RlZmluZSBwc2FfcGFrZV9zZXRfcGFzc3dvcmRfa2V5KGFyZzBfb3BlcmF0aW9uLCBhcmcxX3Bhc3N3b3JkKSBcCiAgICAgbWJlZHRsc190ZXN0X3dyYXBfcHNhX3Bha2Vfc2V0X3Bhc3N3b3JkX2tleShhcmcwX29wZXJhdGlvbiwgYXJnMV9wYXNzd29yZCkKKyNlbmRpZiAvKiBkZWZpbmVkKFBTQV9XQU5UX0FMR19TT01FX1BBS0UpICovCiAKKyNpZiBkZWZpbmVkKFBTQV9XQU5UX0FMR19TT01FX1BBS0UpCiBwc2Ffc3RhdHVzX3QgbWJlZHRsc190ZXN0X3dyYXBfcHNhX3Bha2Vfc2V0X3BlZXIoCiAgICAgcHNhX3Bha2Vfb3BlcmF0aW9uX3QgKmFyZzBfb3BlcmF0aW9uLAogICAgIGNvbnN0IHVpbnQ4X3QgKmFyZzFfcGVlcl9pZCwKICAgICBzaXplX3QgYXJnMl9wZWVyX2lkX2xlbik7CiAjZGVmaW5lIHBzYV9wYWtlX3NldF9wZWVyKGFyZzBfb3BlcmF0aW9uLCBhcmcxX3BlZXJfaWQsIGFyZzJfcGVlcl9pZF9sZW4pIFwKICAgICBtYmVkdGxzX3Rlc3Rfd3JhcF9wc2FfcGFrZV9zZXRfcGVlcihhcmcwX29wZXJhdGlvbiwgYXJnMV9wZWVyX2lkLCBhcmcyX3BlZXJfaWRfbGVuKQorI2VuZGlmIC8qIGRlZmluZWQoUFNBX1dBTlRfQUxHX1NPTUVfUEFLRSkgKi8KIAorI2lmIGRlZmluZWQoUFNBX1dBTlRfQUxHX1NPTUVfUEFLRSkKIHBzYV9zdGF0dXNfdCBtYmVkdGxzX3Rlc3Rfd3JhcF9wc2FfcGFrZV9zZXRfcm9sZSgKICAgICBwc2FfcGFrZV9vcGVyYXRpb25fdCAqYXJnMF9vcGVyYXRpb24sCiAgICAgcHNhX3Bha2Vfcm9sZV90IGFyZzFfcm9sZSk7CiAjZGVmaW5lIHBzYV9wYWtlX3NldF9yb2xlKGFyZzBfb3BlcmF0aW9uLCBhcmcxX3JvbGUpIFwKICAgICBtYmVkdGxzX3Rlc3Rfd3JhcF9wc2FfcGFrZV9zZXRfcm9sZShhcmcwX29wZXJhdGlvbiwgYXJnMV9yb2xlKQorI2VuZGlmIC8qIGRlZmluZWQoUFNBX1dBTlRfQUxHX1NPTUVfUEFLRSkgKi8KIAorI2lmIGRlZmluZWQoUFNBX1dBTlRfQUxHX1NPTUVfUEFLRSkKIHBzYV9zdGF0dXNfdCBtYmVkdGxzX3Rlc3Rfd3JhcF9wc2FfcGFrZV9zZXRfdXNlcigKICAgICBwc2FfcGFrZV9vcGVyYXRpb25fdCAqYXJnMF9vcGVyYXRpb24sCiAgICAgY29uc3QgdWludDhfdCAqYXJnMV91c2VyX2lkLAogICAgIHNpemVfdCBhcmcyX3VzZXJfaWRfbGVuKTsKICNkZWZpbmUgcHNhX3Bha2Vfc2V0X3VzZXIoYXJnMF9vcGVyYXRpb24sIGFyZzFfdXNlcl9pZCwgYXJnMl91c2VyX2lkX2xlbikgXAogICAgIG1iZWR0bHNfdGVzdF93cmFwX3BzYV9wYWtlX3NldF91c2VyKGFyZzBfb3BlcmF0aW9uLCBhcmcxX3VzZXJfaWQsIGFyZzJfdXNlcl9pZF9sZW4pCisjZW5kaWYgLyogZGVmaW5lZChQU0FfV0FOVF9BTEdfU09NRV9QQUtFKSAqLwogCisjaWYgZGVmaW5lZChQU0FfV0FOVF9BTEdfU09NRV9QQUtFKQogcHNhX3N0YXR1c190IG1iZWR0bHNfdGVzdF93cmFwX3BzYV9wYWtlX3NldHVwKAogICAgIHBzYV9wYWtlX29wZXJhdGlvbl90ICphcmcwX29wZXJhdGlvbiwKICAgICBjb25zdCBwc2FfcGFrZV9jaXBoZXJfc3VpdGVfdCAqYXJnMV9jaXBoZXJfc3VpdGUpOwogI2RlZmluZSBwc2FfcGFrZV9zZXR1cChhcmcwX29wZXJhdGlvbiwgYXJnMV9jaXBoZXJfc3VpdGUpIFwKICAgICBtYmVkdGxzX3Rlc3Rfd3JhcF9wc2FfcGFrZV9zZXR1cChhcmcwX29wZXJhdGlvbiwgYXJnMV9jaXBoZXJfc3VpdGUpCisjZW5kaWYgLyogZGVmaW5lZChQU0FfV0FOVF9BTEdfU09NRV9QQUtFKSAqLwogCiBwc2Ffc3RhdHVzX3QgbWJlZHRsc190ZXN0X3dyYXBfcHNhX3B1cmdlX2tleSgKICAgICBtYmVkdGxzX3N2Y19rZXlfaWRfdCBhcmcwX2tleSk7CmRpZmYgLS1naXQgYS90ZXN0cy9pbmNsdWRlL3Rlc3Qvc3NsX2hlbHBlcnMuaCBiL3Rlc3RzL2luY2x1ZGUvdGVzdC9zc2xfaGVscGVycy5oCmluZGV4IDc3Zjg1YzQuLmEzNzUwY2IgMTAwNjQ0Ci0tLSBhL3Rlc3RzL2luY2x1ZGUvdGVzdC9zc2xfaGVscGVycy5oCisrKyBiL3Rlc3RzL2luY2x1ZGUvdGVzdC9zc2xfaGVscGVycy5oCkBAIC00MCwxOSArNDAsMTkgQEAKICNpZiBkZWZpbmVkKE1CRURUTFNfU1NMX1BST1RPX1RMUzFfMykKICNpZiBkZWZpbmVkKE1CRURUTFNfU1NMX0hBVkVfQUVTKQogI2lmIGRlZmluZWQoTUJFRFRMU19TU0xfSEFWRV9HQ00pCi0jaWYgZGVmaW5lZChNQkVEVExTX01EX0NBTl9TSEEzODQpCisjaWYgZGVmaW5lZChQU0FfV0FOVF9BTEdfU0hBXzM4NCkKICNkZWZpbmUgTUJFRFRMU19URVNUX0hBU19UTFMxXzNfQUVTXzI1Nl9HQ01fU0hBMzg0CiAjZW5kaWYKLSNpZiBkZWZpbmVkKE1CRURUTFNfTURfQ0FOX1NIQTI1NikKKyNpZiBkZWZpbmVkKFBTQV9XQU5UX0FMR19TSEFfMjU2KQogI2RlZmluZSBNQkVEVExTX1RFU1RfSEFTX1RMUzFfM19BRVNfMTI4X0dDTV9TSEEyNTYKICNlbmRpZgogI2VuZGlmIC8qIE1CRURUTFNfU1NMX0hBVkVfR0NNICovCi0jaWYgZGVmaW5lZChNQkVEVExTX1NTTF9IQVZFX0NDTSkgJiYgZGVmaW5lZChNQkVEVExTX01EX0NBTl9TSEEyNTYpCisjaWYgZGVmaW5lZChNQkVEVExTX1NTTF9IQVZFX0NDTSkgJiYgZGVmaW5lZChQU0FfV0FOVF9BTEdfU0hBXzI1NikKICNkZWZpbmUgTUJFRFRMU19URVNUX0hBU19UTFMxXzNfQUVTXzEyOF9DQ01fU0hBMjU2CiAjZGVmaW5lIE1CRURUTFNfVEVTVF9IQVNfVExTMV8zX0FFU18xMjhfQ0NNXzhfU0hBMjU2CiAjZW5kaWYKICNlbmRpZiAvKiBNQkVEVExTX1NTTF9IQVZFX0FFUyAqLwotI2lmIGRlZmluZWQoTUJFRFRMU19TU0xfSEFWRV9DSEFDSEFQT0xZKSAmJiBkZWZpbmVkKE1CRURUTFNfTURfQ0FOX1NIQTI1NikKKyNpZiBkZWZpbmVkKE1CRURUTFNfU1NMX0hBVkVfQ0hBQ0hBUE9MWSkgJiYgZGVmaW5lZChQU0FfV0FOVF9BTEdfU0hBXzI1NikKICNkZWZpbmUgTUJFRFRMU19URVNUX0hBU19UTFMxXzNfQ0hBQ0hBMjBfUE9MWTEzMDVfU0hBMjU2CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvdGVzdHMvb3B0LXRlc3RjYXNlcy90bHMxMy1jb21wYXQuc2ggYi90ZXN0cy9vcHQtdGVzdGNhc2VzL3RsczEzLWNvbXBhdC5zaAppbmRleCA5Y2YyNTUwLi5iM2EwMjk1IDEwMDc1NQotLS0gYS90ZXN0cy9vcHQtdGVzdGNhc2VzL3RsczEzLWNvbXBhdC5zaAorKysgYi90ZXN0cy9vcHQtdGVzdGNhc2VzL3RsczEzLWNvbXBhdC5zaApAQCAtMTMsNiArMTMsOCBAQAogIyBQTEVBU0UgRE8gTk9UIEVESVQgVEhJUyBGSUxFLiBJRiBORUVERUQsIFBMRUFTRSBNT0RJRlkgYGdlbmVyYXRlX3RsczEzX2NvbXBhdF90ZXN0cy5weWAKICMgQU5EIFJFR0VORVJBVEUgVEhJUyBGSUxFLgogIworCitEQVRBX0ZJTEVTX1BBVEg9Li4vZnJhbWV3b3JrL2RhdGFfZmlsZXMKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIE1CRURUTFNfU1NMX1NSVl9DCiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBNQkVEVExTX0RFQlVHX0MKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIE1CRURUTFNfU1NMX1RMUzFfM19LRVlfRVhDSEFOR0VfTU9ERV9FUEhFTUVSQUxfRU5BQkxFRApAQCAtMjAsOCArMjIsOCBAQAogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgUFNBX1dBTlRfQUxHX0VDREgKIHJlcXVpcmVzX29wZW5zc2xfdGxzMV8zCiBydW5fdGVzdCAiVExTIDEuMyBPLT5tOiBBRVNfMTI4X0dDTV9TSEEyNTYsc2VjcDI1NnIxLGVjZHNhX3NlY3AyNTZyMV9zaGEyNTYiIFwKLSAgICAgICAgICIkUF9TUlYgY3J0X2ZpbGU9ZGF0YV9maWxlcy9lY2RzYV9zZWNwMjU2cjEuY3J0IGtleV9maWxlPWRhdGFfZmlsZXMvZWNkc2Ffc2VjcDI1NnIxLmtleSBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMTI4LUdDTS1TSEEyNTYgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDI1NnIxX3NoYTI1NiBncm91cHM9c2VjcDI1NnIxIHRsczEzX2tleF9tb2Rlcz1lcGhlbWVyYWwgY29va2llcz0wIHRpY2tldHM9MCIgXAotICAgICAgICAgIiRPX05FWFRfQ0xJX05PX0NFUlQgLUNBZmlsZSBkYXRhX2ZpbGVzL3Rlc3QtY2EyLmNydCAtY2lwaGVyc3VpdGVzIFRMU19BRVNfMTI4X0dDTV9TSEEyNTYgLXNpZ2FsZ3MgZWNkc2Ffc2VjcDI1NnIxX3NoYTI1NiAtZ3JvdXBzIFAtMjU2IC1tc2cgLXRsczFfMyIgXAorICAgICAgICAgIiRQX1NSViBjcnRfZmlsZT0kREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3AyNTZyMS5jcnQga2V5X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwMjU2cjEua2V5IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0xMjgtR0NNLVNIQTI1NiBzaWdfYWxncz1lY2RzYV9zZWNwMjU2cjFfc2hhMjU2IGdyb3Vwcz1zZWNwMjU2cjEgdGxzMTNfa2V4X21vZGVzPWVwaGVtZXJhbCBjb29raWVzPTAgdGlja2V0cz0wIiBcCisgICAgICAgICAiJE9fTkVYVF9DTElfTk9fQ0VSVCAtQ0FmaWxlICREQVRBX0ZJTEVTX1BBVEgvdGVzdC1jYTIuY3J0IC1jaXBoZXJzdWl0ZXMgVExTX0FFU18xMjhfR0NNX1NIQTI1NiAtc2lnYWxncyBlY2RzYV9zZWNwMjU2cjFfc2hhMjU2IC1ncm91cHMgUC0yNTYgLW1zZyAtdGxzMV8zIiBcCiAgICAgICAgICAwIFwKICAgICAgICAgIC1zICJQcm90b2NvbCBpcyBUTFN2MS4zIiBcCiAgICAgICAgICAtcyAic2VydmVyIGhlbGxvLCBjaG9zZW4gY2lwaGVyc3VpdGU6IFRMUzEtMy1BRVMtMTI4LUdDTS1TSEEyNTYgKCBpZD00ODY1ICkiIFwKQEAgLTM3LDggKzM5LDggQEAKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIFBTQV9XQU5UX0FMR19FQ0RICiByZXF1aXJlc19vcGVuc3NsX3RsczFfMwogcnVuX3Rlc3QgIlRMUyAxLjMgTy0+bTogQUVTXzEyOF9HQ01fU0hBMjU2LHNlY3AyNTZyMSxlY2RzYV9zZWNwMzg0cjFfc2hhMzg0IiBcCi0gICAgICAgICAiJFBfU1JWIGNydF9maWxlPWRhdGFfZmlsZXMvZWNkc2Ffc2VjcDM4NHIxLmNydCBrZXlfZmlsZT1kYXRhX2ZpbGVzL2VjZHNhX3NlY3AzODRyMS5rZXkgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTEyOC1HQ00tU0hBMjU2IHNpZ19hbGdzPWVjZHNhX3NlY3AzODRyMV9zaGEzODQgZ3JvdXBzPXNlY3AyNTZyMSB0bHMxM19rZXhfbW9kZXM9ZXBoZW1lcmFsIGNvb2tpZXM9MCB0aWNrZXRzPTAiIFwKLSAgICAgICAgICIkT19ORVhUX0NMSV9OT19DRVJUIC1DQWZpbGUgZGF0YV9maWxlcy90ZXN0LWNhMi5jcnQgLWNpcGhlcnN1aXRlcyBUTFNfQUVTXzEyOF9HQ01fU0hBMjU2IC1zaWdhbGdzIGVjZHNhX3NlY3AzODRyMV9zaGEzODQgLWdyb3VwcyBQLTI1NiAtbXNnIC10bHMxXzMiIFwKKyAgICAgICAgICIkUF9TUlYgY3J0X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwMzg0cjEuY3J0IGtleV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDM4NHIxLmtleSBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMTI4LUdDTS1TSEEyNTYgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDM4NHIxX3NoYTM4NCBncm91cHM9c2VjcDI1NnIxIHRsczEzX2tleF9tb2Rlcz1lcGhlbWVyYWwgY29va2llcz0wIHRpY2tldHM9MCIgXAorICAgICAgICAgIiRPX05FWFRfQ0xJX05PX0NFUlQgLUNBZmlsZSAkREFUQV9GSUxFU19QQVRIL3Rlc3QtY2EyLmNydCAtY2lwaGVyc3VpdGVzIFRMU19BRVNfMTI4X0dDTV9TSEEyNTYgLXNpZ2FsZ3MgZWNkc2Ffc2VjcDM4NHIxX3NoYTM4NCAtZ3JvdXBzIFAtMjU2IC1tc2cgLXRsczFfMyIgXAogICAgICAgICAgMCBcCiAgICAgICAgICAtcyAiUHJvdG9jb2wgaXMgVExTdjEuMyIgXAogICAgICAgICAgLXMgInNlcnZlciBoZWxsbywgY2hvc2VuIGNpcGhlcnN1aXRlOiBUTFMxLTMtQUVTLTEyOC1HQ00tU0hBMjU2ICggaWQ9NDg2NSApIiBcCkBAIC01NCw4ICs1Niw4IEBACiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBQU0FfV0FOVF9BTEdfRUNESAogcmVxdWlyZXNfb3BlbnNzbF90bHMxXzMKIHJ1bl90ZXN0ICJUTFMgMS4zIE8tPm06IEFFU18xMjhfR0NNX1NIQTI1NixzZWNwMjU2cjEsZWNkc2Ffc2VjcDUyMXIxX3NoYTUxMiIgXAotICAgICAgICAgIiRQX1NSViBjcnRfZmlsZT1kYXRhX2ZpbGVzL2VjZHNhX3NlY3A1MjFyMS5jcnQga2V5X2ZpbGU9ZGF0YV9maWxlcy9lY2RzYV9zZWNwNTIxcjEua2V5IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0xMjgtR0NNLVNIQTI1NiBzaWdfYWxncz1lY2RzYV9zZWNwNTIxcjFfc2hhNTEyIGdyb3Vwcz1zZWNwMjU2cjEgdGxzMTNfa2V4X21vZGVzPWVwaGVtZXJhbCBjb29raWVzPTAgdGlja2V0cz0wIiBcCi0gICAgICAgICAiJE9fTkVYVF9DTElfTk9fQ0VSVCAtQ0FmaWxlIGRhdGFfZmlsZXMvdGVzdC1jYTIuY3J0IC1jaXBoZXJzdWl0ZXMgVExTX0FFU18xMjhfR0NNX1NIQTI1NiAtc2lnYWxncyBlY2RzYV9zZWNwNTIxcjFfc2hhNTEyIC1ncm91cHMgUC0yNTYgLW1zZyAtdGxzMV8zIiBcCisgICAgICAgICAiJFBfU1JWIGNydF9maWxlPSREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDUyMXIxLmNydCBrZXlfZmlsZT0kREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3A1MjFyMS5rZXkgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTEyOC1HQ00tU0hBMjU2IHNpZ19hbGdzPWVjZHNhX3NlY3A1MjFyMV9zaGE1MTIgZ3JvdXBzPXNlY3AyNTZyMSB0bHMxM19rZXhfbW9kZXM9ZXBoZW1lcmFsIGNvb2tpZXM9MCB0aWNrZXRzPTAiIFwKKyAgICAgICAgICIkT19ORVhUX0NMSV9OT19DRVJUIC1DQWZpbGUgJERBVEFfRklMRVNfUEFUSC90ZXN0LWNhMi5jcnQgLWNpcGhlcnN1aXRlcyBUTFNfQUVTXzEyOF9HQ01fU0hBMjU2IC1zaWdhbGdzIGVjZHNhX3NlY3A1MjFyMV9zaGE1MTIgLWdyb3VwcyBQLTI1NiAtbXNnIC10bHMxXzMiIFwKICAgICAgICAgIDAgXAogICAgICAgICAgLXMgIlByb3RvY29sIGlzIFRMU3YxLjMiIFwKICAgICAgICAgIC1zICJzZXJ2ZXIgaGVsbG8sIGNob3NlbiBjaXBoZXJzdWl0ZTogVExTMS0zLUFFUy0xMjgtR0NNLVNIQTI1NiAoIGlkPTQ4NjUgKSIgXApAQCAtNzIsOCArNzQsOCBAQAogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgUFNBX1dBTlRfQUxHX0VDREgKIHJlcXVpcmVzX29wZW5zc2xfdGxzMV8zCiBydW5fdGVzdCAiVExTIDEuMyBPLT5tOiBBRVNfMTI4X0dDTV9TSEEyNTYsc2VjcDI1NnIxLHJzYV9wc3NfcnNhZV9zaGEyNTYiIFwKLSAgICAgICAgICIkUF9TUlYgY3J0X2ZpbGU9ZGF0YV9maWxlcy9zZXJ2ZXIyLXNoYTI1Ni5jcnQga2V5X2ZpbGU9ZGF0YV9maWxlcy9zZXJ2ZXIyLmtleSBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMTI4LUdDTS1TSEEyNTYgc2lnX2FsZ3M9cnNhX3Bzc19yc2FlX3NoYTI1NiBncm91cHM9c2VjcDI1NnIxIHRsczEzX2tleF9tb2Rlcz1lcGhlbWVyYWwgY29va2llcz0wIHRpY2tldHM9MCIgXAotICAgICAgICAgIiRPX05FWFRfQ0xJX05PX0NFUlQgLUNBZmlsZSBkYXRhX2ZpbGVzL3Rlc3QtY2FfY2F0MTIuY3J0IC1jaXBoZXJzdWl0ZXMgVExTX0FFU18xMjhfR0NNX1NIQTI1NiAtc2lnYWxncyByc2FfcHNzX3JzYWVfc2hhMjU2IC1ncm91cHMgUC0yNTYgLW1zZyAtdGxzMV8zIiBcCisgICAgICAgICAiJFBfU1JWIGNydF9maWxlPSREQVRBX0ZJTEVTX1BBVEgvc2VydmVyMi1zaGEyNTYuY3J0IGtleV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvc2VydmVyMi5rZXkgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTEyOC1HQ00tU0hBMjU2IHNpZ19hbGdzPXJzYV9wc3NfcnNhZV9zaGEyNTYgZ3JvdXBzPXNlY3AyNTZyMSB0bHMxM19rZXhfbW9kZXM9ZXBoZW1lcmFsIGNvb2tpZXM9MCB0aWNrZXRzPTAiIFwKKyAgICAgICAgICIkT19ORVhUX0NMSV9OT19DRVJUIC1DQWZpbGUgJERBVEFfRklMRVNfUEFUSC90ZXN0LWNhX2NhdDEyLmNydCAtY2lwaGVyc3VpdGVzIFRMU19BRVNfMTI4X0dDTV9TSEEyNTYgLXNpZ2FsZ3MgcnNhX3Bzc19yc2FlX3NoYTI1NiAtZ3JvdXBzIFAtMjU2IC1tc2cgLXRsczFfMyIgXAogICAgICAgICAgMCBcCiAgICAgICAgICAtcyAiUHJvdG9jb2wgaXMgVExTdjEuMyIgXAogICAgICAgICAgLXMgInNlcnZlciBoZWxsbywgY2hvc2VuIGNpcGhlcnN1aXRlOiBUTFMxLTMtQUVTLTEyOC1HQ00tU0hBMjU2ICggaWQ9NDg2NSApIiBcCkBAIC04OSw4ICs5MSw4IEBACiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBQU0FfV0FOVF9BTEdfRUNESAogcmVxdWlyZXNfb3BlbnNzbF90bHMxXzMKIHJ1bl90ZXN0ICJUTFMgMS4zIE8tPm06IEFFU18xMjhfR0NNX1NIQTI1NixzZWNwMzg0cjEsZWNkc2Ffc2VjcDI1NnIxX3NoYTI1NiIgXAotICAgICAgICAgIiRQX1NSViBjcnRfZmlsZT1kYXRhX2ZpbGVzL2VjZHNhX3NlY3AyNTZyMS5jcnQga2V5X2ZpbGU9ZGF0YV9maWxlcy9lY2RzYV9zZWNwMjU2cjEua2V5IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0xMjgtR0NNLVNIQTI1NiBzaWdfYWxncz1lY2RzYV9zZWNwMjU2cjFfc2hhMjU2IGdyb3Vwcz1zZWNwMzg0cjEgdGxzMTNfa2V4X21vZGVzPWVwaGVtZXJhbCBjb29raWVzPTAgdGlja2V0cz0wIiBcCi0gICAgICAgICAiJE9fTkVYVF9DTElfTk9fQ0VSVCAtQ0FmaWxlIGRhdGFfZmlsZXMvdGVzdC1jYTIuY3J0IC1jaXBoZXJzdWl0ZXMgVExTX0FFU18xMjhfR0NNX1NIQTI1NiAtc2lnYWxncyBlY2RzYV9zZWNwMjU2cjFfc2hhMjU2IC1ncm91cHMgUC0zODQgLW1zZyAtdGxzMV8zIiBcCisgICAgICAgICAiJFBfU1JWIGNydF9maWxlPSREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDI1NnIxLmNydCBrZXlfZmlsZT0kREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3AyNTZyMS5rZXkgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTEyOC1HQ00tU0hBMjU2IHNpZ19hbGdzPWVjZHNhX3NlY3AyNTZyMV9zaGEyNTYgZ3JvdXBzPXNlY3AzODRyMSB0bHMxM19rZXhfbW9kZXM9ZXBoZW1lcmFsIGNvb2tpZXM9MCB0aWNrZXRzPTAiIFwKKyAgICAgICAgICIkT19ORVhUX0NMSV9OT19DRVJUIC1DQWZpbGUgJERBVEFfRklMRVNfUEFUSC90ZXN0LWNhMi5jcnQgLWNpcGhlcnN1aXRlcyBUTFNfQUVTXzEyOF9HQ01fU0hBMjU2IC1zaWdhbGdzIGVjZHNhX3NlY3AyNTZyMV9zaGEyNTYgLWdyb3VwcyBQLTM4NCAtbXNnIC10bHMxXzMiIFwKICAgICAgICAgIDAgXAogICAgICAgICAgLXMgIlByb3RvY29sIGlzIFRMU3YxLjMiIFwKICAgICAgICAgIC1zICJzZXJ2ZXIgaGVsbG8sIGNob3NlbiBjaXBoZXJzdWl0ZTogVExTMS0zLUFFUy0xMjgtR0NNLVNIQTI1NiAoIGlkPTQ4NjUgKSIgXApAQCAtMTA2LDggKzEwOCw4IEBACiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBQU0FfV0FOVF9BTEdfRUNESAogcmVxdWlyZXNfb3BlbnNzbF90bHMxXzMKIHJ1bl90ZXN0ICJUTFMgMS4zIE8tPm06IEFFU18xMjhfR0NNX1NIQTI1NixzZWNwMzg0cjEsZWNkc2Ffc2VjcDM4NHIxX3NoYTM4NCIgXAotICAgICAgICAgIiRQX1NSViBjcnRfZmlsZT1kYXRhX2ZpbGVzL2VjZHNhX3NlY3AzODRyMS5jcnQga2V5X2ZpbGU9ZGF0YV9maWxlcy9lY2RzYV9zZWNwMzg0cjEua2V5IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0xMjgtR0NNLVNIQTI1NiBzaWdfYWxncz1lY2RzYV9zZWNwMzg0cjFfc2hhMzg0IGdyb3Vwcz1zZWNwMzg0cjEgdGxzMTNfa2V4X21vZGVzPWVwaGVtZXJhbCBjb29raWVzPTAgdGlja2V0cz0wIiBcCi0gICAgICAgICAiJE9fTkVYVF9DTElfTk9fQ0VSVCAtQ0FmaWxlIGRhdGFfZmlsZXMvdGVzdC1jYTIuY3J0IC1jaXBoZXJzdWl0ZXMgVExTX0FFU18xMjhfR0NNX1NIQTI1NiAtc2lnYWxncyBlY2RzYV9zZWNwMzg0cjFfc2hhMzg0IC1ncm91cHMgUC0zODQgLW1zZyAtdGxzMV8zIiBcCisgICAgICAgICAiJFBfU1JWIGNydF9maWxlPSREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDM4NHIxLmNydCBrZXlfZmlsZT0kREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3AzODRyMS5rZXkgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTEyOC1HQ00tU0hBMjU2IHNpZ19hbGdzPWVjZHNhX3NlY3AzODRyMV9zaGEzODQgZ3JvdXBzPXNlY3AzODRyMSB0bHMxM19rZXhfbW9kZXM9ZXBoZW1lcmFsIGNvb2tpZXM9MCB0aWNrZXRzPTAiIFwKKyAgICAgICAgICIkT19ORVhUX0NMSV9OT19DRVJUIC1DQWZpbGUgJERBVEFfRklMRVNfUEFUSC90ZXN0LWNhMi5jcnQgLWNpcGhlcnN1aXRlcyBUTFNfQUVTXzEyOF9HQ01fU0hBMjU2IC1zaWdhbGdzIGVjZHNhX3NlY3AzODRyMV9zaGEzODQgLWdyb3VwcyBQLTM4NCAtbXNnIC10bHMxXzMiIFwKICAgICAgICAgIDAgXAogICAgICAgICAgLXMgIlByb3RvY29sIGlzIFRMU3YxLjMiIFwKICAgICAgICAgIC1zICJzZXJ2ZXIgaGVsbG8sIGNob3NlbiBjaXBoZXJzdWl0ZTogVExTMS0zLUFFUy0xMjgtR0NNLVNIQTI1NiAoIGlkPTQ4NjUgKSIgXApAQCAtMTIzLDggKzEyNSw4IEBACiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBQU0FfV0FOVF9BTEdfRUNESAogcmVxdWlyZXNfb3BlbnNzbF90bHMxXzMKIHJ1bl90ZXN0ICJUTFMgMS4zIE8tPm06IEFFU18xMjhfR0NNX1NIQTI1NixzZWNwMzg0cjEsZWNkc2Ffc2VjcDUyMXIxX3NoYTUxMiIgXAotICAgICAgICAgIiRQX1NSViBjcnRfZmlsZT1kYXRhX2ZpbGVzL2VjZHNhX3NlY3A1MjFyMS5jcnQga2V5X2ZpbGU9ZGF0YV9maWxlcy9lY2RzYV9zZWNwNTIxcjEua2V5IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0xMjgtR0NNLVNIQTI1NiBzaWdfYWxncz1lY2RzYV9zZWNwNTIxcjFfc2hhNTEyIGdyb3Vwcz1zZWNwMzg0cjEgdGxzMTNfa2V4X21vZGVzPWVwaGVtZXJhbCBjb29raWVzPTAgdGlja2V0cz0wIiBcCi0gICAgICAgICAiJE9fTkVYVF9DTElfTk9fQ0VSVCAtQ0FmaWxlIGRhdGFfZmlsZXMvdGVzdC1jYTIuY3J0IC1jaXBoZXJzdWl0ZXMgVExTX0FFU18xMjhfR0NNX1NIQTI1NiAtc2lnYWxncyBlY2RzYV9zZWNwNTIxcjFfc2hhNTEyIC1ncm91cHMgUC0zODQgLW1zZyAtdGxzMV8zIiBcCisgICAgICAgICAiJFBfU1JWIGNydF9maWxlPSREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDUyMXIxLmNydCBrZXlfZmlsZT0kREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3A1MjFyMS5rZXkgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTEyOC1HQ00tU0hBMjU2IHNpZ19hbGdzPWVjZHNhX3NlY3A1MjFyMV9zaGE1MTIgZ3JvdXBzPXNlY3AzODRyMSB0bHMxM19rZXhfbW9kZXM9ZXBoZW1lcmFsIGNvb2tpZXM9MCB0aWNrZXRzPTAiIFwKKyAgICAgICAgICIkT19ORVhUX0NMSV9OT19DRVJUIC1DQWZpbGUgJERBVEFfRklMRVNfUEFUSC90ZXN0LWNhMi5jcnQgLWNpcGhlcnN1aXRlcyBUTFNfQUVTXzEyOF9HQ01fU0hBMjU2IC1zaWdhbGdzIGVjZHNhX3NlY3A1MjFyMV9zaGE1MTIgLWdyb3VwcyBQLTM4NCAtbXNnIC10bHMxXzMiIFwKICAgICAgICAgIDAgXAogICAgICAgICAgLXMgIlByb3RvY29sIGlzIFRMU3YxLjMiIFwKICAgICAgICAgIC1zICJzZXJ2ZXIgaGVsbG8sIGNob3NlbiBjaXBoZXJzdWl0ZTogVExTMS0zLUFFUy0xMjgtR0NNLVNIQTI1NiAoIGlkPTQ4NjUgKSIgXApAQCAtMTQxLDggKzE0Myw4IEBACiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBQU0FfV0FOVF9BTEdfRUNESAogcmVxdWlyZXNfb3BlbnNzbF90bHMxXzMKIHJ1bl90ZXN0ICJUTFMgMS4zIE8tPm06IEFFU18xMjhfR0NNX1NIQTI1NixzZWNwMzg0cjEscnNhX3Bzc19yc2FlX3NoYTI1NiIgXAotICAgICAgICAgIiRQX1NSViBjcnRfZmlsZT1kYXRhX2ZpbGVzL3NlcnZlcjItc2hhMjU2LmNydCBrZXlfZmlsZT1kYXRhX2ZpbGVzL3NlcnZlcjIua2V5IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0xMjgtR0NNLVNIQTI1NiBzaWdfYWxncz1yc2FfcHNzX3JzYWVfc2hhMjU2IGdyb3Vwcz1zZWNwMzg0cjEgdGxzMTNfa2V4X21vZGVzPWVwaGVtZXJhbCBjb29raWVzPTAgdGlja2V0cz0wIiBcCi0gICAgICAgICAiJE9fTkVYVF9DTElfTk9fQ0VSVCAtQ0FmaWxlIGRhdGFfZmlsZXMvdGVzdC1jYV9jYXQxMi5jcnQgLWNpcGhlcnN1aXRlcyBUTFNfQUVTXzEyOF9HQ01fU0hBMjU2IC1zaWdhbGdzIHJzYV9wc3NfcnNhZV9zaGEyNTYgLWdyb3VwcyBQLTM4NCAtbXNnIC10bHMxXzMiIFwKKyAgICAgICAgICIkUF9TUlYgY3J0X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9zZXJ2ZXIyLXNoYTI1Ni5jcnQga2V5X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9zZXJ2ZXIyLmtleSBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMTI4LUdDTS1TSEEyNTYgc2lnX2FsZ3M9cnNhX3Bzc19yc2FlX3NoYTI1NiBncm91cHM9c2VjcDM4NHIxIHRsczEzX2tleF9tb2Rlcz1lcGhlbWVyYWwgY29va2llcz0wIHRpY2tldHM9MCIgXAorICAgICAgICAgIiRPX05FWFRfQ0xJX05PX0NFUlQgLUNBZmlsZSAkREFUQV9GSUxFU19QQVRIL3Rlc3QtY2FfY2F0MTIuY3J0IC1jaXBoZXJzdWl0ZXMgVExTX0FFU18xMjhfR0NNX1NIQTI1NiAtc2lnYWxncyByc2FfcHNzX3JzYWVfc2hhMjU2IC1ncm91cHMgUC0zODQgLW1zZyAtdGxzMV8zIiBcCiAgICAgICAgICAwIFwKICAgICAgICAgIC1zICJQcm90b2NvbCBpcyBUTFN2MS4zIiBcCiAgICAgICAgICAtcyAic2VydmVyIGhlbGxvLCBjaG9zZW4gY2lwaGVyc3VpdGU6IFRMUzEtMy1BRVMtMTI4LUdDTS1TSEEyNTYgKCBpZD00ODY1ICkiIFwKQEAgLTE1OCw4ICsxNjAsOCBAQAogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgUFNBX1dBTlRfQUxHX0VDREgKIHJlcXVpcmVzX29wZW5zc2xfdGxzMV8zCiBydW5fdGVzdCAiVExTIDEuMyBPLT5tOiBBRVNfMTI4X0dDTV9TSEEyNTYsc2VjcDUyMXIxLGVjZHNhX3NlY3AyNTZyMV9zaGEyNTYiIFwKLSAgICAgICAgICIkUF9TUlYgY3J0X2ZpbGU9ZGF0YV9maWxlcy9lY2RzYV9zZWNwMjU2cjEuY3J0IGtleV9maWxlPWRhdGFfZmlsZXMvZWNkc2Ffc2VjcDI1NnIxLmtleSBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMTI4LUdDTS1TSEEyNTYgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDI1NnIxX3NoYTI1NiBncm91cHM9c2VjcDUyMXIxIHRsczEzX2tleF9tb2Rlcz1lcGhlbWVyYWwgY29va2llcz0wIHRpY2tldHM9MCIgXAotICAgICAgICAgIiRPX05FWFRfQ0xJX05PX0NFUlQgLUNBZmlsZSBkYXRhX2ZpbGVzL3Rlc3QtY2EyLmNydCAtY2lwaGVyc3VpdGVzIFRMU19BRVNfMTI4X0dDTV9TSEEyNTYgLXNpZ2FsZ3MgZWNkc2Ffc2VjcDI1NnIxX3NoYTI1NiAtZ3JvdXBzIFAtNTIxIC1tc2cgLXRsczFfMyIgXAorICAgICAgICAgIiRQX1NSViBjcnRfZmlsZT0kREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3AyNTZyMS5jcnQga2V5X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwMjU2cjEua2V5IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0xMjgtR0NNLVNIQTI1NiBzaWdfYWxncz1lY2RzYV9zZWNwMjU2cjFfc2hhMjU2IGdyb3Vwcz1zZWNwNTIxcjEgdGxzMTNfa2V4X21vZGVzPWVwaGVtZXJhbCBjb29raWVzPTAgdGlja2V0cz0wIiBcCisgICAgICAgICAiJE9fTkVYVF9DTElfTk9fQ0VSVCAtQ0FmaWxlICREQVRBX0ZJTEVTX1BBVEgvdGVzdC1jYTIuY3J0IC1jaXBoZXJzdWl0ZXMgVExTX0FFU18xMjhfR0NNX1NIQTI1NiAtc2lnYWxncyBlY2RzYV9zZWNwMjU2cjFfc2hhMjU2IC1ncm91cHMgUC01MjEgLW1zZyAtdGxzMV8zIiBcCiAgICAgICAgICAwIFwKICAgICAgICAgIC1zICJQcm90b2NvbCBpcyBUTFN2MS4zIiBcCiAgICAgICAgICAtcyAic2VydmVyIGhlbGxvLCBjaG9zZW4gY2lwaGVyc3VpdGU6IFRMUzEtMy1BRVMtMTI4LUdDTS1TSEEyNTYgKCBpZD00ODY1ICkiIFwKQEAgLTE3NSw4ICsxNzcsOCBAQAogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgUFNBX1dBTlRfQUxHX0VDREgKIHJlcXVpcmVzX29wZW5zc2xfdGxzMV8zCiBydW5fdGVzdCAiVExTIDEuMyBPLT5tOiBBRVNfMTI4X0dDTV9TSEEyNTYsc2VjcDUyMXIxLGVjZHNhX3NlY3AzODRyMV9zaGEzODQiIFwKLSAgICAgICAgICIkUF9TUlYgY3J0X2ZpbGU9ZGF0YV9maWxlcy9lY2RzYV9zZWNwMzg0cjEuY3J0IGtleV9maWxlPWRhdGFfZmlsZXMvZWNkc2Ffc2VjcDM4NHIxLmtleSBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMTI4LUdDTS1TSEEyNTYgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDM4NHIxX3NoYTM4NCBncm91cHM9c2VjcDUyMXIxIHRsczEzX2tleF9tb2Rlcz1lcGhlbWVyYWwgY29va2llcz0wIHRpY2tldHM9MCIgXAotICAgICAgICAgIiRPX05FWFRfQ0xJX05PX0NFUlQgLUNBZmlsZSBkYXRhX2ZpbGVzL3Rlc3QtY2EyLmNydCAtY2lwaGVyc3VpdGVzIFRMU19BRVNfMTI4X0dDTV9TSEEyNTYgLXNpZ2FsZ3MgZWNkc2Ffc2VjcDM4NHIxX3NoYTM4NCAtZ3JvdXBzIFAtNTIxIC1tc2cgLXRsczFfMyIgXAorICAgICAgICAgIiRQX1NSViBjcnRfZmlsZT0kREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3AzODRyMS5jcnQga2V5X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwMzg0cjEua2V5IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0xMjgtR0NNLVNIQTI1NiBzaWdfYWxncz1lY2RzYV9zZWNwMzg0cjFfc2hhMzg0IGdyb3Vwcz1zZWNwNTIxcjEgdGxzMTNfa2V4X21vZGVzPWVwaGVtZXJhbCBjb29raWVzPTAgdGlja2V0cz0wIiBcCisgICAgICAgICAiJE9fTkVYVF9DTElfTk9fQ0VSVCAtQ0FmaWxlICREQVRBX0ZJTEVTX1BBVEgvdGVzdC1jYTIuY3J0IC1jaXBoZXJzdWl0ZXMgVExTX0FFU18xMjhfR0NNX1NIQTI1NiAtc2lnYWxncyBlY2RzYV9zZWNwMzg0cjFfc2hhMzg0IC1ncm91cHMgUC01MjEgLW1zZyAtdGxzMV8zIiBcCiAgICAgICAgICAwIFwKICAgICAgICAgIC1zICJQcm90b2NvbCBpcyBUTFN2MS4zIiBcCiAgICAgICAgICAtcyAic2VydmVyIGhlbGxvLCBjaG9zZW4gY2lwaGVyc3VpdGU6IFRMUzEtMy1BRVMtMTI4LUdDTS1TSEEyNTYgKCBpZD00ODY1ICkiIFwKQEAgLTE5Miw4ICsxOTQsOCBAQAogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgUFNBX1dBTlRfQUxHX0VDREgKIHJlcXVpcmVzX29wZW5zc2xfdGxzMV8zCiBydW5fdGVzdCAiVExTIDEuMyBPLT5tOiBBRVNfMTI4X0dDTV9TSEEyNTYsc2VjcDUyMXIxLGVjZHNhX3NlY3A1MjFyMV9zaGE1MTIiIFwKLSAgICAgICAgICIkUF9TUlYgY3J0X2ZpbGU9ZGF0YV9maWxlcy9lY2RzYV9zZWNwNTIxcjEuY3J0IGtleV9maWxlPWRhdGFfZmlsZXMvZWNkc2Ffc2VjcDUyMXIxLmtleSBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMTI4LUdDTS1TSEEyNTYgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDUyMXIxX3NoYTUxMiBncm91cHM9c2VjcDUyMXIxIHRsczEzX2tleF9tb2Rlcz1lcGhlbWVyYWwgY29va2llcz0wIHRpY2tldHM9MCIgXAotICAgICAgICAgIiRPX05FWFRfQ0xJX05PX0NFUlQgLUNBZmlsZSBkYXRhX2ZpbGVzL3Rlc3QtY2EyLmNydCAtY2lwaGVyc3VpdGVzIFRMU19BRVNfMTI4X0dDTV9TSEEyNTYgLXNpZ2FsZ3MgZWNkc2Ffc2VjcDUyMXIxX3NoYTUxMiAtZ3JvdXBzIFAtNTIxIC1tc2cgLXRsczFfMyIgXAorICAgICAgICAgIiRQX1NSViBjcnRfZmlsZT0kREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3A1MjFyMS5jcnQga2V5X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwNTIxcjEua2V5IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0xMjgtR0NNLVNIQTI1NiBzaWdfYWxncz1lY2RzYV9zZWNwNTIxcjFfc2hhNTEyIGdyb3Vwcz1zZWNwNTIxcjEgdGxzMTNfa2V4X21vZGVzPWVwaGVtZXJhbCBjb29raWVzPTAgdGlja2V0cz0wIiBcCisgICAgICAgICAiJE9fTkVYVF9DTElfTk9fQ0VSVCAtQ0FmaWxlICREQVRBX0ZJTEVTX1BBVEgvdGVzdC1jYTIuY3J0IC1jaXBoZXJzdWl0ZXMgVExTX0FFU18xMjhfR0NNX1NIQTI1NiAtc2lnYWxncyBlY2RzYV9zZWNwNTIxcjFfc2hhNTEyIC1ncm91cHMgUC01MjEgLW1zZyAtdGxzMV8zIiBcCiAgICAgICAgICAwIFwKICAgICAgICAgIC1zICJQcm90b2NvbCBpcyBUTFN2MS4zIiBcCiAgICAgICAgICAtcyAic2VydmVyIGhlbGxvLCBjaG9zZW4gY2lwaGVyc3VpdGU6IFRMUzEtMy1BRVMtMTI4LUdDTS1TSEEyNTYgKCBpZD00ODY1ICkiIFwKQEAgLTIxMCw4ICsyMTIsOCBAQAogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgUFNBX1dBTlRfQUxHX0VDREgKIHJlcXVpcmVzX29wZW5zc2xfdGxzMV8zCiBydW5fdGVzdCAiVExTIDEuMyBPLT5tOiBBRVNfMTI4X0dDTV9TSEEyNTYsc2VjcDUyMXIxLHJzYV9wc3NfcnNhZV9zaGEyNTYiIFwKLSAgICAgICAgICIkUF9TUlYgY3J0X2ZpbGU9ZGF0YV9maWxlcy9zZXJ2ZXIyLXNoYTI1Ni5jcnQga2V5X2ZpbGU9ZGF0YV9maWxlcy9zZXJ2ZXIyLmtleSBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMTI4LUdDTS1TSEEyNTYgc2lnX2FsZ3M9cnNhX3Bzc19yc2FlX3NoYTI1NiBncm91cHM9c2VjcDUyMXIxIHRsczEzX2tleF9tb2Rlcz1lcGhlbWVyYWwgY29va2llcz0wIHRpY2tldHM9MCIgXAotICAgICAgICAgIiRPX05FWFRfQ0xJX05PX0NFUlQgLUNBZmlsZSBkYXRhX2ZpbGVzL3Rlc3QtY2FfY2F0MTIuY3J0IC1jaXBoZXJzdWl0ZXMgVExTX0FFU18xMjhfR0NNX1NIQTI1NiAtc2lnYWxncyByc2FfcHNzX3JzYWVfc2hhMjU2IC1ncm91cHMgUC01MjEgLW1zZyAtdGxzMV8zIiBcCisgICAgICAgICAiJFBfU1JWIGNydF9maWxlPSREQVRBX0ZJTEVTX1BBVEgvc2VydmVyMi1zaGEyNTYuY3J0IGtleV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvc2VydmVyMi5rZXkgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTEyOC1HQ00tU0hBMjU2IHNpZ19hbGdzPXJzYV9wc3NfcnNhZV9zaGEyNTYgZ3JvdXBzPXNlY3A1MjFyMSB0bHMxM19rZXhfbW9kZXM9ZXBoZW1lcmFsIGNvb2tpZXM9MCB0aWNrZXRzPTAiIFwKKyAgICAgICAgICIkT19ORVhUX0NMSV9OT19DRVJUIC1DQWZpbGUgJERBVEFfRklMRVNfUEFUSC90ZXN0LWNhX2NhdDEyLmNydCAtY2lwaGVyc3VpdGVzIFRMU19BRVNfMTI4X0dDTV9TSEEyNTYgLXNpZ2FsZ3MgcnNhX3Bzc19yc2FlX3NoYTI1NiAtZ3JvdXBzIFAtNTIxIC1tc2cgLXRsczFfMyIgXAogICAgICAgICAgMCBcCiAgICAgICAgICAtcyAiUHJvdG9jb2wgaXMgVExTdjEuMyIgXAogICAgICAgICAgLXMgInNlcnZlciBoZWxsbywgY2hvc2VuIGNpcGhlcnN1aXRlOiBUTFMxLTMtQUVTLTEyOC1HQ00tU0hBMjU2ICggaWQ9NDg2NSApIiBcCkBAIC0yMjcsOCArMjI5LDggQEAKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIFBTQV9XQU5UX0FMR19FQ0RICiByZXF1aXJlc19vcGVuc3NsX3RsczFfMwogcnVuX3Rlc3QgIlRMUyAxLjMgTy0+bTogQUVTXzEyOF9HQ01fU0hBMjU2LHgyNTUxOSxlY2RzYV9zZWNwMjU2cjFfc2hhMjU2IiBcCi0gICAgICAgICAiJFBfU1JWIGNydF9maWxlPWRhdGFfZmlsZXMvZWNkc2Ffc2VjcDI1NnIxLmNydCBrZXlfZmlsZT1kYXRhX2ZpbGVzL2VjZHNhX3NlY3AyNTZyMS5rZXkgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTEyOC1HQ00tU0hBMjU2IHNpZ19hbGdzPWVjZHNhX3NlY3AyNTZyMV9zaGEyNTYgZ3JvdXBzPXgyNTUxOSB0bHMxM19rZXhfbW9kZXM9ZXBoZW1lcmFsIGNvb2tpZXM9MCB0aWNrZXRzPTAiIFwKLSAgICAgICAgICIkT19ORVhUX0NMSV9OT19DRVJUIC1DQWZpbGUgZGF0YV9maWxlcy90ZXN0LWNhMi5jcnQgLWNpcGhlcnN1aXRlcyBUTFNfQUVTXzEyOF9HQ01fU0hBMjU2IC1zaWdhbGdzIGVjZHNhX3NlY3AyNTZyMV9zaGEyNTYgLWdyb3VwcyBYMjU1MTkgLW1zZyAtdGxzMV8zIiBcCisgICAgICAgICAiJFBfU1JWIGNydF9maWxlPSREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDI1NnIxLmNydCBrZXlfZmlsZT0kREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3AyNTZyMS5rZXkgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTEyOC1HQ00tU0hBMjU2IHNpZ19hbGdzPWVjZHNhX3NlY3AyNTZyMV9zaGEyNTYgZ3JvdXBzPXgyNTUxOSB0bHMxM19rZXhfbW9kZXM9ZXBoZW1lcmFsIGNvb2tpZXM9MCB0aWNrZXRzPTAiIFwKKyAgICAgICAgICIkT19ORVhUX0NMSV9OT19DRVJUIC1DQWZpbGUgJERBVEFfRklMRVNfUEFUSC90ZXN0LWNhMi5jcnQgLWNpcGhlcnN1aXRlcyBUTFNfQUVTXzEyOF9HQ01fU0hBMjU2IC1zaWdhbGdzIGVjZHNhX3NlY3AyNTZyMV9zaGEyNTYgLWdyb3VwcyBYMjU1MTkgLW1zZyAtdGxzMV8zIiBcCiAgICAgICAgICAwIFwKICAgICAgICAgIC1zICJQcm90b2NvbCBpcyBUTFN2MS4zIiBcCiAgICAgICAgICAtcyAic2VydmVyIGhlbGxvLCBjaG9zZW4gY2lwaGVyc3VpdGU6IFRMUzEtMy1BRVMtMTI4LUdDTS1TSEEyNTYgKCBpZD00ODY1ICkiIFwKQEAgLTI0NCw4ICsyNDYsOCBAQAogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgUFNBX1dBTlRfQUxHX0VDREgKIHJlcXVpcmVzX29wZW5zc2xfdGxzMV8zCiBydW5fdGVzdCAiVExTIDEuMyBPLT5tOiBBRVNfMTI4X0dDTV9TSEEyNTYseDI1NTE5LGVjZHNhX3NlY3AzODRyMV9zaGEzODQiIFwKLSAgICAgICAgICIkUF9TUlYgY3J0X2ZpbGU9ZGF0YV9maWxlcy9lY2RzYV9zZWNwMzg0cjEuY3J0IGtleV9maWxlPWRhdGFfZmlsZXMvZWNkc2Ffc2VjcDM4NHIxLmtleSBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMTI4LUdDTS1TSEEyNTYgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDM4NHIxX3NoYTM4NCBncm91cHM9eDI1NTE5IHRsczEzX2tleF9tb2Rlcz1lcGhlbWVyYWwgY29va2llcz0wIHRpY2tldHM9MCIgXAotICAgICAgICAgIiRPX05FWFRfQ0xJX05PX0NFUlQgLUNBZmlsZSBkYXRhX2ZpbGVzL3Rlc3QtY2EyLmNydCAtY2lwaGVyc3VpdGVzIFRMU19BRVNfMTI4X0dDTV9TSEEyNTYgLXNpZ2FsZ3MgZWNkc2Ffc2VjcDM4NHIxX3NoYTM4NCAtZ3JvdXBzIFgyNTUxOSAtbXNnIC10bHMxXzMiIFwKKyAgICAgICAgICIkUF9TUlYgY3J0X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwMzg0cjEuY3J0IGtleV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDM4NHIxLmtleSBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMTI4LUdDTS1TSEEyNTYgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDM4NHIxX3NoYTM4NCBncm91cHM9eDI1NTE5IHRsczEzX2tleF9tb2Rlcz1lcGhlbWVyYWwgY29va2llcz0wIHRpY2tldHM9MCIgXAorICAgICAgICAgIiRPX05FWFRfQ0xJX05PX0NFUlQgLUNBZmlsZSAkREFUQV9GSUxFU19QQVRIL3Rlc3QtY2EyLmNydCAtY2lwaGVyc3VpdGVzIFRMU19BRVNfMTI4X0dDTV9TSEEyNTYgLXNpZ2FsZ3MgZWNkc2Ffc2VjcDM4NHIxX3NoYTM4NCAtZ3JvdXBzIFgyNTUxOSAtbXNnIC10bHMxXzMiIFwKICAgICAgICAgIDAgXAogICAgICAgICAgLXMgIlByb3RvY29sIGlzIFRMU3YxLjMiIFwKICAgICAgICAgIC1zICJzZXJ2ZXIgaGVsbG8sIGNob3NlbiBjaXBoZXJzdWl0ZTogVExTMS0zLUFFUy0xMjgtR0NNLVNIQTI1NiAoIGlkPTQ4NjUgKSIgXApAQCAtMjYxLDggKzI2Myw4IEBACiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBQU0FfV0FOVF9BTEdfRUNESAogcmVxdWlyZXNfb3BlbnNzbF90bHMxXzMKIHJ1bl90ZXN0ICJUTFMgMS4zIE8tPm06IEFFU18xMjhfR0NNX1NIQTI1Nix4MjU1MTksZWNkc2Ffc2VjcDUyMXIxX3NoYTUxMiIgXAotICAgICAgICAgIiRQX1NSViBjcnRfZmlsZT1kYXRhX2ZpbGVzL2VjZHNhX3NlY3A1MjFyMS5jcnQga2V5X2ZpbGU9ZGF0YV9maWxlcy9lY2RzYV9zZWNwNTIxcjEua2V5IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0xMjgtR0NNLVNIQTI1NiBzaWdfYWxncz1lY2RzYV9zZWNwNTIxcjFfc2hhNTEyIGdyb3Vwcz14MjU1MTkgdGxzMTNfa2V4X21vZGVzPWVwaGVtZXJhbCBjb29raWVzPTAgdGlja2V0cz0wIiBcCi0gICAgICAgICAiJE9fTkVYVF9DTElfTk9fQ0VSVCAtQ0FmaWxlIGRhdGFfZmlsZXMvdGVzdC1jYTIuY3J0IC1jaXBoZXJzdWl0ZXMgVExTX0FFU18xMjhfR0NNX1NIQTI1NiAtc2lnYWxncyBlY2RzYV9zZWNwNTIxcjFfc2hhNTEyIC1ncm91cHMgWDI1NTE5IC1tc2cgLXRsczFfMyIgXAorICAgICAgICAgIiRQX1NSViBjcnRfZmlsZT0kREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3A1MjFyMS5jcnQga2V5X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwNTIxcjEua2V5IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0xMjgtR0NNLVNIQTI1NiBzaWdfYWxncz1lY2RzYV9zZWNwNTIxcjFfc2hhNTEyIGdyb3Vwcz14MjU1MTkgdGxzMTNfa2V4X21vZGVzPWVwaGVtZXJhbCBjb29raWVzPTAgdGlja2V0cz0wIiBcCisgICAgICAgICAiJE9fTkVYVF9DTElfTk9fQ0VSVCAtQ0FmaWxlICREQVRBX0ZJTEVTX1BBVEgvdGVzdC1jYTIuY3J0IC1jaXBoZXJzdWl0ZXMgVExTX0FFU18xMjhfR0NNX1NIQTI1NiAtc2lnYWxncyBlY2RzYV9zZWNwNTIxcjFfc2hhNTEyIC1ncm91cHMgWDI1NTE5IC1tc2cgLXRsczFfMyIgXAogICAgICAgICAgMCBcCiAgICAgICAgICAtcyAiUHJvdG9jb2wgaXMgVExTdjEuMyIgXAogICAgICAgICAgLXMgInNlcnZlciBoZWxsbywgY2hvc2VuIGNpcGhlcnN1aXRlOiBUTFMxLTMtQUVTLTEyOC1HQ00tU0hBMjU2ICggaWQ9NDg2NSApIiBcCkBAIC0yNzksOCArMjgxLDggQEAKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIFBTQV9XQU5UX0FMR19FQ0RICiByZXF1aXJlc19vcGVuc3NsX3RsczFfMwogcnVuX3Rlc3QgIlRMUyAxLjMgTy0+bTogQUVTXzEyOF9HQ01fU0hBMjU2LHgyNTUxOSxyc2FfcHNzX3JzYWVfc2hhMjU2IiBcCi0gICAgICAgICAiJFBfU1JWIGNydF9maWxlPWRhdGFfZmlsZXMvc2VydmVyMi1zaGEyNTYuY3J0IGtleV9maWxlPWRhdGFfZmlsZXMvc2VydmVyMi5rZXkgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTEyOC1HQ00tU0hBMjU2IHNpZ19hbGdzPXJzYV9wc3NfcnNhZV9zaGEyNTYgZ3JvdXBzPXgyNTUxOSB0bHMxM19rZXhfbW9kZXM9ZXBoZW1lcmFsIGNvb2tpZXM9MCB0aWNrZXRzPTAiIFwKLSAgICAgICAgICIkT19ORVhUX0NMSV9OT19DRVJUIC1DQWZpbGUgZGF0YV9maWxlcy90ZXN0LWNhX2NhdDEyLmNydCAtY2lwaGVyc3VpdGVzIFRMU19BRVNfMTI4X0dDTV9TSEEyNTYgLXNpZ2FsZ3MgcnNhX3Bzc19yc2FlX3NoYTI1NiAtZ3JvdXBzIFgyNTUxOSAtbXNnIC10bHMxXzMiIFwKKyAgICAgICAgICIkUF9TUlYgY3J0X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9zZXJ2ZXIyLXNoYTI1Ni5jcnQga2V5X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9zZXJ2ZXIyLmtleSBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMTI4LUdDTS1TSEEyNTYgc2lnX2FsZ3M9cnNhX3Bzc19yc2FlX3NoYTI1NiBncm91cHM9eDI1NTE5IHRsczEzX2tleF9tb2Rlcz1lcGhlbWVyYWwgY29va2llcz0wIHRpY2tldHM9MCIgXAorICAgICAgICAgIiRPX05FWFRfQ0xJX05PX0NFUlQgLUNBZmlsZSAkREFUQV9GSUxFU19QQVRIL3Rlc3QtY2FfY2F0MTIuY3J0IC1jaXBoZXJzdWl0ZXMgVExTX0FFU18xMjhfR0NNX1NIQTI1NiAtc2lnYWxncyByc2FfcHNzX3JzYWVfc2hhMjU2IC1ncm91cHMgWDI1NTE5IC1tc2cgLXRsczFfMyIgXAogICAgICAgICAgMCBcCiAgICAgICAgICAtcyAiUHJvdG9jb2wgaXMgVExTdjEuMyIgXAogICAgICAgICAgLXMgInNlcnZlciBoZWxsbywgY2hvc2VuIGNpcGhlcnN1aXRlOiBUTFMxLTMtQUVTLTEyOC1HQ00tU0hBMjU2ICggaWQ9NDg2NSApIiBcCkBAIC0yOTYsOCArMjk4LDggQEAKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIFBTQV9XQU5UX0FMR19FQ0RICiByZXF1aXJlc19vcGVuc3NsX3RsczFfMwogcnVuX3Rlc3QgIlRMUyAxLjMgTy0+bTogQUVTXzEyOF9HQ01fU0hBMjU2LHg0NDgsZWNkc2Ffc2VjcDI1NnIxX3NoYTI1NiIgXAotICAgICAgICAgIiRQX1NSViBjcnRfZmlsZT1kYXRhX2ZpbGVzL2VjZHNhX3NlY3AyNTZyMS5jcnQga2V5X2ZpbGU9ZGF0YV9maWxlcy9lY2RzYV9zZWNwMjU2cjEua2V5IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0xMjgtR0NNLVNIQTI1NiBzaWdfYWxncz1lY2RzYV9zZWNwMjU2cjFfc2hhMjU2IGdyb3Vwcz14NDQ4IHRsczEzX2tleF9tb2Rlcz1lcGhlbWVyYWwgY29va2llcz0wIHRpY2tldHM9MCIgXAotICAgICAgICAgIiRPX05FWFRfQ0xJX05PX0NFUlQgLUNBZmlsZSBkYXRhX2ZpbGVzL3Rlc3QtY2EyLmNydCAtY2lwaGVyc3VpdGVzIFRMU19BRVNfMTI4X0dDTV9TSEEyNTYgLXNpZ2FsZ3MgZWNkc2Ffc2VjcDI1NnIxX3NoYTI1NiAtZ3JvdXBzIFg0NDggLW1zZyAtdGxzMV8zIiBcCisgICAgICAgICAiJFBfU1JWIGNydF9maWxlPSREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDI1NnIxLmNydCBrZXlfZmlsZT0kREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3AyNTZyMS5rZXkgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTEyOC1HQ00tU0hBMjU2IHNpZ19hbGdzPWVjZHNhX3NlY3AyNTZyMV9zaGEyNTYgZ3JvdXBzPXg0NDggdGxzMTNfa2V4X21vZGVzPWVwaGVtZXJhbCBjb29raWVzPTAgdGlja2V0cz0wIiBcCisgICAgICAgICAiJE9fTkVYVF9DTElfTk9fQ0VSVCAtQ0FmaWxlICREQVRBX0ZJTEVTX1BBVEgvdGVzdC1jYTIuY3J0IC1jaXBoZXJzdWl0ZXMgVExTX0FFU18xMjhfR0NNX1NIQTI1NiAtc2lnYWxncyBlY2RzYV9zZWNwMjU2cjFfc2hhMjU2IC1ncm91cHMgWDQ0OCAtbXNnIC10bHMxXzMiIFwKICAgICAgICAgIDAgXAogICAgICAgICAgLXMgIlByb3RvY29sIGlzIFRMU3YxLjMiIFwKICAgICAgICAgIC1zICJzZXJ2ZXIgaGVsbG8sIGNob3NlbiBjaXBoZXJzdWl0ZTogVExTMS0zLUFFUy0xMjgtR0NNLVNIQTI1NiAoIGlkPTQ4NjUgKSIgXApAQCAtMzEzLDggKzMxNSw4IEBACiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBQU0FfV0FOVF9BTEdfRUNESAogcmVxdWlyZXNfb3BlbnNzbF90bHMxXzMKIHJ1bl90ZXN0ICJUTFMgMS4zIE8tPm06IEFFU18xMjhfR0NNX1NIQTI1Nix4NDQ4LGVjZHNhX3NlY3AzODRyMV9zaGEzODQiIFwKLSAgICAgICAgICIkUF9TUlYgY3J0X2ZpbGU9ZGF0YV9maWxlcy9lY2RzYV9zZWNwMzg0cjEuY3J0IGtleV9maWxlPWRhdGFfZmlsZXMvZWNkc2Ffc2VjcDM4NHIxLmtleSBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMTI4LUdDTS1TSEEyNTYgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDM4NHIxX3NoYTM4NCBncm91cHM9eDQ0OCB0bHMxM19rZXhfbW9kZXM9ZXBoZW1lcmFsIGNvb2tpZXM9MCB0aWNrZXRzPTAiIFwKLSAgICAgICAgICIkT19ORVhUX0NMSV9OT19DRVJUIC1DQWZpbGUgZGF0YV9maWxlcy90ZXN0LWNhMi5jcnQgLWNpcGhlcnN1aXRlcyBUTFNfQUVTXzEyOF9HQ01fU0hBMjU2IC1zaWdhbGdzIGVjZHNhX3NlY3AzODRyMV9zaGEzODQgLWdyb3VwcyBYNDQ4IC1tc2cgLXRsczFfMyIgXAorICAgICAgICAgIiRQX1NSViBjcnRfZmlsZT0kREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3AzODRyMS5jcnQga2V5X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwMzg0cjEua2V5IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0xMjgtR0NNLVNIQTI1NiBzaWdfYWxncz1lY2RzYV9zZWNwMzg0cjFfc2hhMzg0IGdyb3Vwcz14NDQ4IHRsczEzX2tleF9tb2Rlcz1lcGhlbWVyYWwgY29va2llcz0wIHRpY2tldHM9MCIgXAorICAgICAgICAgIiRPX05FWFRfQ0xJX05PX0NFUlQgLUNBZmlsZSAkREFUQV9GSUxFU19QQVRIL3Rlc3QtY2EyLmNydCAtY2lwaGVyc3VpdGVzIFRMU19BRVNfMTI4X0dDTV9TSEEyNTYgLXNpZ2FsZ3MgZWNkc2Ffc2VjcDM4NHIxX3NoYTM4NCAtZ3JvdXBzIFg0NDggLW1zZyAtdGxzMV8zIiBcCiAgICAgICAgICAwIFwKICAgICAgICAgIC1zICJQcm90b2NvbCBpcyBUTFN2MS4zIiBcCiAgICAgICAgICAtcyAic2VydmVyIGhlbGxvLCBjaG9zZW4gY2lwaGVyc3VpdGU6IFRMUzEtMy1BRVMtMTI4LUdDTS1TSEEyNTYgKCBpZD00ODY1ICkiIFwKQEAgLTMzMCw4ICszMzIsOCBAQAogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgUFNBX1dBTlRfQUxHX0VDREgKIHJlcXVpcmVzX29wZW5zc2xfdGxzMV8zCiBydW5fdGVzdCAiVExTIDEuMyBPLT5tOiBBRVNfMTI4X0dDTV9TSEEyNTYseDQ0OCxlY2RzYV9zZWNwNTIxcjFfc2hhNTEyIiBcCi0gICAgICAgICAiJFBfU1JWIGNydF9maWxlPWRhdGFfZmlsZXMvZWNkc2Ffc2VjcDUyMXIxLmNydCBrZXlfZmlsZT1kYXRhX2ZpbGVzL2VjZHNhX3NlY3A1MjFyMS5rZXkgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTEyOC1HQ00tU0hBMjU2IHNpZ19hbGdzPWVjZHNhX3NlY3A1MjFyMV9zaGE1MTIgZ3JvdXBzPXg0NDggdGxzMTNfa2V4X21vZGVzPWVwaGVtZXJhbCBjb29raWVzPTAgdGlja2V0cz0wIiBcCi0gICAgICAgICAiJE9fTkVYVF9DTElfTk9fQ0VSVCAtQ0FmaWxlIGRhdGFfZmlsZXMvdGVzdC1jYTIuY3J0IC1jaXBoZXJzdWl0ZXMgVExTX0FFU18xMjhfR0NNX1NIQTI1NiAtc2lnYWxncyBlY2RzYV9zZWNwNTIxcjFfc2hhNTEyIC1ncm91cHMgWDQ0OCAtbXNnIC10bHMxXzMiIFwKKyAgICAgICAgICIkUF9TUlYgY3J0X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwNTIxcjEuY3J0IGtleV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDUyMXIxLmtleSBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMTI4LUdDTS1TSEEyNTYgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDUyMXIxX3NoYTUxMiBncm91cHM9eDQ0OCB0bHMxM19rZXhfbW9kZXM9ZXBoZW1lcmFsIGNvb2tpZXM9MCB0aWNrZXRzPTAiIFwKKyAgICAgICAgICIkT19ORVhUX0NMSV9OT19DRVJUIC1DQWZpbGUgJERBVEFfRklMRVNfUEFUSC90ZXN0LWNhMi5jcnQgLWNpcGhlcnN1aXRlcyBUTFNfQUVTXzEyOF9HQ01fU0hBMjU2IC1zaWdhbGdzIGVjZHNhX3NlY3A1MjFyMV9zaGE1MTIgLWdyb3VwcyBYNDQ4IC1tc2cgLXRsczFfMyIgXAogICAgICAgICAgMCBcCiAgICAgICAgICAtcyAiUHJvdG9jb2wgaXMgVExTdjEuMyIgXAogICAgICAgICAgLXMgInNlcnZlciBoZWxsbywgY2hvc2VuIGNpcGhlcnN1aXRlOiBUTFMxLTMtQUVTLTEyOC1HQ00tU0hBMjU2ICggaWQ9NDg2NSApIiBcCkBAIC0zNDgsOCArMzUwLDggQEAKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIFBTQV9XQU5UX0FMR19FQ0RICiByZXF1aXJlc19vcGVuc3NsX3RsczFfMwogcnVuX3Rlc3QgIlRMUyAxLjMgTy0+bTogQUVTXzEyOF9HQ01fU0hBMjU2LHg0NDgscnNhX3Bzc19yc2FlX3NoYTI1NiIgXAotICAgICAgICAgIiRQX1NSViBjcnRfZmlsZT1kYXRhX2ZpbGVzL3NlcnZlcjItc2hhMjU2LmNydCBrZXlfZmlsZT1kYXRhX2ZpbGVzL3NlcnZlcjIua2V5IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0xMjgtR0NNLVNIQTI1NiBzaWdfYWxncz1yc2FfcHNzX3JzYWVfc2hhMjU2IGdyb3Vwcz14NDQ4IHRsczEzX2tleF9tb2Rlcz1lcGhlbWVyYWwgY29va2llcz0wIHRpY2tldHM9MCIgXAotICAgICAgICAgIiRPX05FWFRfQ0xJX05PX0NFUlQgLUNBZmlsZSBkYXRhX2ZpbGVzL3Rlc3QtY2FfY2F0MTIuY3J0IC1jaXBoZXJzdWl0ZXMgVExTX0FFU18xMjhfR0NNX1NIQTI1NiAtc2lnYWxncyByc2FfcHNzX3JzYWVfc2hhMjU2IC1ncm91cHMgWDQ0OCAtbXNnIC10bHMxXzMiIFwKKyAgICAgICAgICIkUF9TUlYgY3J0X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9zZXJ2ZXIyLXNoYTI1Ni5jcnQga2V5X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9zZXJ2ZXIyLmtleSBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMTI4LUdDTS1TSEEyNTYgc2lnX2FsZ3M9cnNhX3Bzc19yc2FlX3NoYTI1NiBncm91cHM9eDQ0OCB0bHMxM19rZXhfbW9kZXM9ZXBoZW1lcmFsIGNvb2tpZXM9MCB0aWNrZXRzPTAiIFwKKyAgICAgICAgICIkT19ORVhUX0NMSV9OT19DRVJUIC1DQWZpbGUgJERBVEFfRklMRVNfUEFUSC90ZXN0LWNhX2NhdDEyLmNydCAtY2lwaGVyc3VpdGVzIFRMU19BRVNfMTI4X0dDTV9TSEEyNTYgLXNpZ2FsZ3MgcnNhX3Bzc19yc2FlX3NoYTI1NiAtZ3JvdXBzIFg0NDggLW1zZyAtdGxzMV8zIiBcCiAgICAgICAgICAwIFwKICAgICAgICAgIC1zICJQcm90b2NvbCBpcyBUTFN2MS4zIiBcCiAgICAgICAgICAtcyAic2VydmVyIGhlbGxvLCBjaG9zZW4gY2lwaGVyc3VpdGU6IFRMUzEtMy1BRVMtMTI4LUdDTS1TSEEyNTYgKCBpZD00ODY1ICkiIFwKQEAgLTM2Niw4ICszNjgsOCBAQAogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgUFNBX1dBTlRfREhfUkZDNzkxOV8yMDQ4CiByZXF1aXJlc19vcGVuc3NsX3RsczFfM193aXRoX2ZmZGgKIHJ1bl90ZXN0ICJUTFMgMS4zIE8tPm06IEFFU18xMjhfR0NNX1NIQTI1NixmZmRoZTIwNDgsZWNkc2Ffc2VjcDI1NnIxX3NoYTI1NiIgXAotICAgICAgICAgIiRQX1NSViBjcnRfZmlsZT1kYXRhX2ZpbGVzL2VjZHNhX3NlY3AyNTZyMS5jcnQga2V5X2ZpbGU9ZGF0YV9maWxlcy9lY2RzYV9zZWNwMjU2cjEua2V5IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0xMjgtR0NNLVNIQTI1NiBzaWdfYWxncz1lY2RzYV9zZWNwMjU2cjFfc2hhMjU2IGdyb3Vwcz1mZmRoZTIwNDggdGxzMTNfa2V4X21vZGVzPWVwaGVtZXJhbCBjb29raWVzPTAgdGlja2V0cz0wIiBcCi0gICAgICAgICAiJE9fTkVYVF9DTElfTk9fQ0VSVCAtQ0FmaWxlIGRhdGFfZmlsZXMvdGVzdC1jYTIuY3J0IC1jaXBoZXJzdWl0ZXMgVExTX0FFU18xMjhfR0NNX1NIQTI1NiAtc2lnYWxncyBlY2RzYV9zZWNwMjU2cjFfc2hhMjU2IC1ncm91cHMgZmZkaGUyMDQ4IC1tc2cgLXRsczFfMyIgXAorICAgICAgICAgIiRQX1NSViBjcnRfZmlsZT0kREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3AyNTZyMS5jcnQga2V5X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwMjU2cjEua2V5IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0xMjgtR0NNLVNIQTI1NiBzaWdfYWxncz1lY2RzYV9zZWNwMjU2cjFfc2hhMjU2IGdyb3Vwcz1mZmRoZTIwNDggdGxzMTNfa2V4X21vZGVzPWVwaGVtZXJhbCBjb29raWVzPTAgdGlja2V0cz0wIiBcCisgICAgICAgICAiJE9fTkVYVF9DTElfTk9fQ0VSVCAtQ0FmaWxlICREQVRBX0ZJTEVTX1BBVEgvdGVzdC1jYTIuY3J0IC1jaXBoZXJzdWl0ZXMgVExTX0FFU18xMjhfR0NNX1NIQTI1NiAtc2lnYWxncyBlY2RzYV9zZWNwMjU2cjFfc2hhMjU2IC1ncm91cHMgZmZkaGUyMDQ4IC1tc2cgLXRsczFfMyIgXAogICAgICAgICAgMCBcCiAgICAgICAgICAtcyAiUHJvdG9jb2wgaXMgVExTdjEuMyIgXAogICAgICAgICAgLXMgInNlcnZlciBoZWxsbywgY2hvc2VuIGNpcGhlcnN1aXRlOiBUTFMxLTMtQUVTLTEyOC1HQ00tU0hBMjU2ICggaWQ9NDg2NSApIiBcCkBAIC0zODQsOCArMzg2LDggQEAKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIFBTQV9XQU5UX0RIX1JGQzc5MTlfMjA0OAogcmVxdWlyZXNfb3BlbnNzbF90bHMxXzNfd2l0aF9mZmRoCiBydW5fdGVzdCAiVExTIDEuMyBPLT5tOiBBRVNfMTI4X0dDTV9TSEEyNTYsZmZkaGUyMDQ4LGVjZHNhX3NlY3AzODRyMV9zaGEzODQiIFwKLSAgICAgICAgICIkUF9TUlYgY3J0X2ZpbGU9ZGF0YV9maWxlcy9lY2RzYV9zZWNwMzg0cjEuY3J0IGtleV9maWxlPWRhdGFfZmlsZXMvZWNkc2Ffc2VjcDM4NHIxLmtleSBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMTI4LUdDTS1TSEEyNTYgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDM4NHIxX3NoYTM4NCBncm91cHM9ZmZkaGUyMDQ4IHRsczEzX2tleF9tb2Rlcz1lcGhlbWVyYWwgY29va2llcz0wIHRpY2tldHM9MCIgXAotICAgICAgICAgIiRPX05FWFRfQ0xJX05PX0NFUlQgLUNBZmlsZSBkYXRhX2ZpbGVzL3Rlc3QtY2EyLmNydCAtY2lwaGVyc3VpdGVzIFRMU19BRVNfMTI4X0dDTV9TSEEyNTYgLXNpZ2FsZ3MgZWNkc2Ffc2VjcDM4NHIxX3NoYTM4NCAtZ3JvdXBzIGZmZGhlMjA0OCAtbXNnIC10bHMxXzMiIFwKKyAgICAgICAgICIkUF9TUlYgY3J0X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwMzg0cjEuY3J0IGtleV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDM4NHIxLmtleSBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMTI4LUdDTS1TSEEyNTYgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDM4NHIxX3NoYTM4NCBncm91cHM9ZmZkaGUyMDQ4IHRsczEzX2tleF9tb2Rlcz1lcGhlbWVyYWwgY29va2llcz0wIHRpY2tldHM9MCIgXAorICAgICAgICAgIiRPX05FWFRfQ0xJX05PX0NFUlQgLUNBZmlsZSAkREFUQV9GSUxFU19QQVRIL3Rlc3QtY2EyLmNydCAtY2lwaGVyc3VpdGVzIFRMU19BRVNfMTI4X0dDTV9TSEEyNTYgLXNpZ2FsZ3MgZWNkc2Ffc2VjcDM4NHIxX3NoYTM4NCAtZ3JvdXBzIGZmZGhlMjA0OCAtbXNnIC10bHMxXzMiIFwKICAgICAgICAgIDAgXAogICAgICAgICAgLXMgIlByb3RvY29sIGlzIFRMU3YxLjMiIFwKICAgICAgICAgIC1zICJzZXJ2ZXIgaGVsbG8sIGNob3NlbiBjaXBoZXJzdWl0ZTogVExTMS0zLUFFUy0xMjgtR0NNLVNIQTI1NiAoIGlkPTQ4NjUgKSIgXApAQCAtNDAyLDggKzQwNCw4IEBACiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBQU0FfV0FOVF9ESF9SRkM3OTE5XzIwNDgKIHJlcXVpcmVzX29wZW5zc2xfdGxzMV8zX3dpdGhfZmZkaAogcnVuX3Rlc3QgIlRMUyAxLjMgTy0+bTogQUVTXzEyOF9HQ01fU0hBMjU2LGZmZGhlMjA0OCxlY2RzYV9zZWNwNTIxcjFfc2hhNTEyIiBcCi0gICAgICAgICAiJFBfU1JWIGNydF9maWxlPWRhdGFfZmlsZXMvZWNkc2Ffc2VjcDUyMXIxLmNydCBrZXlfZmlsZT1kYXRhX2ZpbGVzL2VjZHNhX3NlY3A1MjFyMS5rZXkgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTEyOC1HQ00tU0hBMjU2IHNpZ19hbGdzPWVjZHNhX3NlY3A1MjFyMV9zaGE1MTIgZ3JvdXBzPWZmZGhlMjA0OCB0bHMxM19rZXhfbW9kZXM9ZXBoZW1lcmFsIGNvb2tpZXM9MCB0aWNrZXRzPTAiIFwKLSAgICAgICAgICIkT19ORVhUX0NMSV9OT19DRVJUIC1DQWZpbGUgZGF0YV9maWxlcy90ZXN0LWNhMi5jcnQgLWNpcGhlcnN1aXRlcyBUTFNfQUVTXzEyOF9HQ01fU0hBMjU2IC1zaWdhbGdzIGVjZHNhX3NlY3A1MjFyMV9zaGE1MTIgLWdyb3VwcyBmZmRoZTIwNDggLW1zZyAtdGxzMV8zIiBcCisgICAgICAgICAiJFBfU1JWIGNydF9maWxlPSREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDUyMXIxLmNydCBrZXlfZmlsZT0kREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3A1MjFyMS5rZXkgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTEyOC1HQ00tU0hBMjU2IHNpZ19hbGdzPWVjZHNhX3NlY3A1MjFyMV9zaGE1MTIgZ3JvdXBzPWZmZGhlMjA0OCB0bHMxM19rZXhfbW9kZXM9ZXBoZW1lcmFsIGNvb2tpZXM9MCB0aWNrZXRzPTAiIFwKKyAgICAgICAgICIkT19ORVhUX0NMSV9OT19DRVJUIC1DQWZpbGUgJERBVEFfRklMRVNfUEFUSC90ZXN0LWNhMi5jcnQgLWNpcGhlcnN1aXRlcyBUTFNfQUVTXzEyOF9HQ01fU0hBMjU2IC1zaWdhbGdzIGVjZHNhX3NlY3A1MjFyMV9zaGE1MTIgLWdyb3VwcyBmZmRoZTIwNDggLW1zZyAtdGxzMV8zIiBcCiAgICAgICAgICAwIFwKICAgICAgICAgIC1zICJQcm90b2NvbCBpcyBUTFN2MS4zIiBcCiAgICAgICAgICAtcyAic2VydmVyIGhlbGxvLCBjaG9zZW4gY2lwaGVyc3VpdGU6IFRMUzEtMy1BRVMtMTI4LUdDTS1TSEEyNTYgKCBpZD00ODY1ICkiIFwKQEAgLTQyMSw4ICs0MjMsOCBAQAogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgUFNBX1dBTlRfREhfUkZDNzkxOV8yMDQ4CiByZXF1aXJlc19vcGVuc3NsX3RsczFfM193aXRoX2ZmZGgKIHJ1bl90ZXN0ICJUTFMgMS4zIE8tPm06IEFFU18xMjhfR0NNX1NIQTI1NixmZmRoZTIwNDgscnNhX3Bzc19yc2FlX3NoYTI1NiIgXAotICAgICAgICAgIiRQX1NSViBjcnRfZmlsZT1kYXRhX2ZpbGVzL3NlcnZlcjItc2hhMjU2LmNydCBrZXlfZmlsZT1kYXRhX2ZpbGVzL3NlcnZlcjIua2V5IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0xMjgtR0NNLVNIQTI1NiBzaWdfYWxncz1yc2FfcHNzX3JzYWVfc2hhMjU2IGdyb3Vwcz1mZmRoZTIwNDggdGxzMTNfa2V4X21vZGVzPWVwaGVtZXJhbCBjb29raWVzPTAgdGlja2V0cz0wIiBcCi0gICAgICAgICAiJE9fTkVYVF9DTElfTk9fQ0VSVCAtQ0FmaWxlIGRhdGFfZmlsZXMvdGVzdC1jYV9jYXQxMi5jcnQgLWNpcGhlcnN1aXRlcyBUTFNfQUVTXzEyOF9HQ01fU0hBMjU2IC1zaWdhbGdzIHJzYV9wc3NfcnNhZV9zaGEyNTYgLWdyb3VwcyBmZmRoZTIwNDggLW1zZyAtdGxzMV8zIiBcCisgICAgICAgICAiJFBfU1JWIGNydF9maWxlPSREQVRBX0ZJTEVTX1BBVEgvc2VydmVyMi1zaGEyNTYuY3J0IGtleV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvc2VydmVyMi5rZXkgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTEyOC1HQ00tU0hBMjU2IHNpZ19hbGdzPXJzYV9wc3NfcnNhZV9zaGEyNTYgZ3JvdXBzPWZmZGhlMjA0OCB0bHMxM19rZXhfbW9kZXM9ZXBoZW1lcmFsIGNvb2tpZXM9MCB0aWNrZXRzPTAiIFwKKyAgICAgICAgICIkT19ORVhUX0NMSV9OT19DRVJUIC1DQWZpbGUgJERBVEFfRklMRVNfUEFUSC90ZXN0LWNhX2NhdDEyLmNydCAtY2lwaGVyc3VpdGVzIFRMU19BRVNfMTI4X0dDTV9TSEEyNTYgLXNpZ2FsZ3MgcnNhX3Bzc19yc2FlX3NoYTI1NiAtZ3JvdXBzIGZmZGhlMjA0OCAtbXNnIC10bHMxXzMiIFwKICAgICAgICAgIDAgXAogICAgICAgICAgLXMgIlByb3RvY29sIGlzIFRMU3YxLjMiIFwKICAgICAgICAgIC1zICJzZXJ2ZXIgaGVsbG8sIGNob3NlbiBjaXBoZXJzdWl0ZTogVExTMS0zLUFFUy0xMjgtR0NNLVNIQTI1NiAoIGlkPTQ4NjUgKSIgXApAQCAtNDM4LDggKzQ0MCw4IEBACiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBQU0FfV0FOVF9BTEdfRUNESAogcmVxdWlyZXNfb3BlbnNzbF90bHMxXzMKIHJ1bl90ZXN0ICJUTFMgMS4zIE8tPm06IEFFU18yNTZfR0NNX1NIQTM4NCxzZWNwMjU2cjEsZWNkc2Ffc2VjcDI1NnIxX3NoYTI1NiIgXAotICAgICAgICAgIiRQX1NSViBjcnRfZmlsZT1kYXRhX2ZpbGVzL2VjZHNhX3NlY3AyNTZyMS5jcnQga2V5X2ZpbGU9ZGF0YV9maWxlcy9lY2RzYV9zZWNwMjU2cjEua2V5IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0yNTYtR0NNLVNIQTM4NCBzaWdfYWxncz1lY2RzYV9zZWNwMjU2cjFfc2hhMjU2IGdyb3Vwcz1zZWNwMjU2cjEgdGxzMTNfa2V4X21vZGVzPWVwaGVtZXJhbCBjb29raWVzPTAgdGlja2V0cz0wIiBcCi0gICAgICAgICAiJE9fTkVYVF9DTElfTk9fQ0VSVCAtQ0FmaWxlIGRhdGFfZmlsZXMvdGVzdC1jYTIuY3J0IC1jaXBoZXJzdWl0ZXMgVExTX0FFU18yNTZfR0NNX1NIQTM4NCAtc2lnYWxncyBlY2RzYV9zZWNwMjU2cjFfc2hhMjU2IC1ncm91cHMgUC0yNTYgLW1zZyAtdGxzMV8zIiBcCisgICAgICAgICAiJFBfU1JWIGNydF9maWxlPSREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDI1NnIxLmNydCBrZXlfZmlsZT0kREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3AyNTZyMS5rZXkgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTI1Ni1HQ00tU0hBMzg0IHNpZ19hbGdzPWVjZHNhX3NlY3AyNTZyMV9zaGEyNTYgZ3JvdXBzPXNlY3AyNTZyMSB0bHMxM19rZXhfbW9kZXM9ZXBoZW1lcmFsIGNvb2tpZXM9MCB0aWNrZXRzPTAiIFwKKyAgICAgICAgICIkT19ORVhUX0NMSV9OT19DRVJUIC1DQWZpbGUgJERBVEFfRklMRVNfUEFUSC90ZXN0LWNhMi5jcnQgLWNpcGhlcnN1aXRlcyBUTFNfQUVTXzI1Nl9HQ01fU0hBMzg0IC1zaWdhbGdzIGVjZHNhX3NlY3AyNTZyMV9zaGEyNTYgLWdyb3VwcyBQLTI1NiAtbXNnIC10bHMxXzMiIFwKICAgICAgICAgIDAgXAogICAgICAgICAgLXMgIlByb3RvY29sIGlzIFRMU3YxLjMiIFwKICAgICAgICAgIC1zICJzZXJ2ZXIgaGVsbG8sIGNob3NlbiBjaXBoZXJzdWl0ZTogVExTMS0zLUFFUy0yNTYtR0NNLVNIQTM4NCAoIGlkPTQ4NjYgKSIgXApAQCAtNDU1LDggKzQ1Nyw4IEBACiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBQU0FfV0FOVF9BTEdfRUNESAogcmVxdWlyZXNfb3BlbnNzbF90bHMxXzMKIHJ1bl90ZXN0ICJUTFMgMS4zIE8tPm06IEFFU18yNTZfR0NNX1NIQTM4NCxzZWNwMjU2cjEsZWNkc2Ffc2VjcDM4NHIxX3NoYTM4NCIgXAotICAgICAgICAgIiRQX1NSViBjcnRfZmlsZT1kYXRhX2ZpbGVzL2VjZHNhX3NlY3AzODRyMS5jcnQga2V5X2ZpbGU9ZGF0YV9maWxlcy9lY2RzYV9zZWNwMzg0cjEua2V5IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0yNTYtR0NNLVNIQTM4NCBzaWdfYWxncz1lY2RzYV9zZWNwMzg0cjFfc2hhMzg0IGdyb3Vwcz1zZWNwMjU2cjEgdGxzMTNfa2V4X21vZGVzPWVwaGVtZXJhbCBjb29raWVzPTAgdGlja2V0cz0wIiBcCi0gICAgICAgICAiJE9fTkVYVF9DTElfTk9fQ0VSVCAtQ0FmaWxlIGRhdGFfZmlsZXMvdGVzdC1jYTIuY3J0IC1jaXBoZXJzdWl0ZXMgVExTX0FFU18yNTZfR0NNX1NIQTM4NCAtc2lnYWxncyBlY2RzYV9zZWNwMzg0cjFfc2hhMzg0IC1ncm91cHMgUC0yNTYgLW1zZyAtdGxzMV8zIiBcCisgICAgICAgICAiJFBfU1JWIGNydF9maWxlPSREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDM4NHIxLmNydCBrZXlfZmlsZT0kREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3AzODRyMS5rZXkgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTI1Ni1HQ00tU0hBMzg0IHNpZ19hbGdzPWVjZHNhX3NlY3AzODRyMV9zaGEzODQgZ3JvdXBzPXNlY3AyNTZyMSB0bHMxM19rZXhfbW9kZXM9ZXBoZW1lcmFsIGNvb2tpZXM9MCB0aWNrZXRzPTAiIFwKKyAgICAgICAgICIkT19ORVhUX0NMSV9OT19DRVJUIC1DQWZpbGUgJERBVEFfRklMRVNfUEFUSC90ZXN0LWNhMi5jcnQgLWNpcGhlcnN1aXRlcyBUTFNfQUVTXzI1Nl9HQ01fU0hBMzg0IC1zaWdhbGdzIGVjZHNhX3NlY3AzODRyMV9zaGEzODQgLWdyb3VwcyBQLTI1NiAtbXNnIC10bHMxXzMiIFwKICAgICAgICAgIDAgXAogICAgICAgICAgLXMgIlByb3RvY29sIGlzIFRMU3YxLjMiIFwKICAgICAgICAgIC1zICJzZXJ2ZXIgaGVsbG8sIGNob3NlbiBjaXBoZXJzdWl0ZTogVExTMS0zLUFFUy0yNTYtR0NNLVNIQTM4NCAoIGlkPTQ4NjYgKSIgXApAQCAtNDcyLDggKzQ3NCw4IEBACiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBQU0FfV0FOVF9BTEdfRUNESAogcmVxdWlyZXNfb3BlbnNzbF90bHMxXzMKIHJ1bl90ZXN0ICJUTFMgMS4zIE8tPm06IEFFU18yNTZfR0NNX1NIQTM4NCxzZWNwMjU2cjEsZWNkc2Ffc2VjcDUyMXIxX3NoYTUxMiIgXAotICAgICAgICAgIiRQX1NSViBjcnRfZmlsZT1kYXRhX2ZpbGVzL2VjZHNhX3NlY3A1MjFyMS5jcnQga2V5X2ZpbGU9ZGF0YV9maWxlcy9lY2RzYV9zZWNwNTIxcjEua2V5IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0yNTYtR0NNLVNIQTM4NCBzaWdfYWxncz1lY2RzYV9zZWNwNTIxcjFfc2hhNTEyIGdyb3Vwcz1zZWNwMjU2cjEgdGxzMTNfa2V4X21vZGVzPWVwaGVtZXJhbCBjb29raWVzPTAgdGlja2V0cz0wIiBcCi0gICAgICAgICAiJE9fTkVYVF9DTElfTk9fQ0VSVCAtQ0FmaWxlIGRhdGFfZmlsZXMvdGVzdC1jYTIuY3J0IC1jaXBoZXJzdWl0ZXMgVExTX0FFU18yNTZfR0NNX1NIQTM4NCAtc2lnYWxncyBlY2RzYV9zZWNwNTIxcjFfc2hhNTEyIC1ncm91cHMgUC0yNTYgLW1zZyAtdGxzMV8zIiBcCisgICAgICAgICAiJFBfU1JWIGNydF9maWxlPSREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDUyMXIxLmNydCBrZXlfZmlsZT0kREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3A1MjFyMS5rZXkgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTI1Ni1HQ00tU0hBMzg0IHNpZ19hbGdzPWVjZHNhX3NlY3A1MjFyMV9zaGE1MTIgZ3JvdXBzPXNlY3AyNTZyMSB0bHMxM19rZXhfbW9kZXM9ZXBoZW1lcmFsIGNvb2tpZXM9MCB0aWNrZXRzPTAiIFwKKyAgICAgICAgICIkT19ORVhUX0NMSV9OT19DRVJUIC1DQWZpbGUgJERBVEFfRklMRVNfUEFUSC90ZXN0LWNhMi5jcnQgLWNpcGhlcnN1aXRlcyBUTFNfQUVTXzI1Nl9HQ01fU0hBMzg0IC1zaWdhbGdzIGVjZHNhX3NlY3A1MjFyMV9zaGE1MTIgLWdyb3VwcyBQLTI1NiAtbXNnIC10bHMxXzMiIFwKICAgICAgICAgIDAgXAogICAgICAgICAgLXMgIlByb3RvY29sIGlzIFRMU3YxLjMiIFwKICAgICAgICAgIC1zICJzZXJ2ZXIgaGVsbG8sIGNob3NlbiBjaXBoZXJzdWl0ZTogVExTMS0zLUFFUy0yNTYtR0NNLVNIQTM4NCAoIGlkPTQ4NjYgKSIgXApAQCAtNDkwLDggKzQ5Miw4IEBACiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBQU0FfV0FOVF9BTEdfRUNESAogcmVxdWlyZXNfb3BlbnNzbF90bHMxXzMKIHJ1bl90ZXN0ICJUTFMgMS4zIE8tPm06IEFFU18yNTZfR0NNX1NIQTM4NCxzZWNwMjU2cjEscnNhX3Bzc19yc2FlX3NoYTI1NiIgXAotICAgICAgICAgIiRQX1NSViBjcnRfZmlsZT1kYXRhX2ZpbGVzL3NlcnZlcjItc2hhMjU2LmNydCBrZXlfZmlsZT1kYXRhX2ZpbGVzL3NlcnZlcjIua2V5IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0yNTYtR0NNLVNIQTM4NCBzaWdfYWxncz1yc2FfcHNzX3JzYWVfc2hhMjU2IGdyb3Vwcz1zZWNwMjU2cjEgdGxzMTNfa2V4X21vZGVzPWVwaGVtZXJhbCBjb29raWVzPTAgdGlja2V0cz0wIiBcCi0gICAgICAgICAiJE9fTkVYVF9DTElfTk9fQ0VSVCAtQ0FmaWxlIGRhdGFfZmlsZXMvdGVzdC1jYV9jYXQxMi5jcnQgLWNpcGhlcnN1aXRlcyBUTFNfQUVTXzI1Nl9HQ01fU0hBMzg0IC1zaWdhbGdzIHJzYV9wc3NfcnNhZV9zaGEyNTYgLWdyb3VwcyBQLTI1NiAtbXNnIC10bHMxXzMiIFwKKyAgICAgICAgICIkUF9TUlYgY3J0X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9zZXJ2ZXIyLXNoYTI1Ni5jcnQga2V5X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9zZXJ2ZXIyLmtleSBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMjU2LUdDTS1TSEEzODQgc2lnX2FsZ3M9cnNhX3Bzc19yc2FlX3NoYTI1NiBncm91cHM9c2VjcDI1NnIxIHRsczEzX2tleF9tb2Rlcz1lcGhlbWVyYWwgY29va2llcz0wIHRpY2tldHM9MCIgXAorICAgICAgICAgIiRPX05FWFRfQ0xJX05PX0NFUlQgLUNBZmlsZSAkREFUQV9GSUxFU19QQVRIL3Rlc3QtY2FfY2F0MTIuY3J0IC1jaXBoZXJzdWl0ZXMgVExTX0FFU18yNTZfR0NNX1NIQTM4NCAtc2lnYWxncyByc2FfcHNzX3JzYWVfc2hhMjU2IC1ncm91cHMgUC0yNTYgLW1zZyAtdGxzMV8zIiBcCiAgICAgICAgICAwIFwKICAgICAgICAgIC1zICJQcm90b2NvbCBpcyBUTFN2MS4zIiBcCiAgICAgICAgICAtcyAic2VydmVyIGhlbGxvLCBjaG9zZW4gY2lwaGVyc3VpdGU6IFRMUzEtMy1BRVMtMjU2LUdDTS1TSEEzODQgKCBpZD00ODY2ICkiIFwKQEAgLTUwNyw4ICs1MDksOCBAQAogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgUFNBX1dBTlRfQUxHX0VDREgKIHJlcXVpcmVzX29wZW5zc2xfdGxzMV8zCiBydW5fdGVzdCAiVExTIDEuMyBPLT5tOiBBRVNfMjU2X0dDTV9TSEEzODQsc2VjcDM4NHIxLGVjZHNhX3NlY3AyNTZyMV9zaGEyNTYiIFwKLSAgICAgICAgICIkUF9TUlYgY3J0X2ZpbGU9ZGF0YV9maWxlcy9lY2RzYV9zZWNwMjU2cjEuY3J0IGtleV9maWxlPWRhdGFfZmlsZXMvZWNkc2Ffc2VjcDI1NnIxLmtleSBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMjU2LUdDTS1TSEEzODQgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDI1NnIxX3NoYTI1NiBncm91cHM9c2VjcDM4NHIxIHRsczEzX2tleF9tb2Rlcz1lcGhlbWVyYWwgY29va2llcz0wIHRpY2tldHM9MCIgXAotICAgICAgICAgIiRPX05FWFRfQ0xJX05PX0NFUlQgLUNBZmlsZSBkYXRhX2ZpbGVzL3Rlc3QtY2EyLmNydCAtY2lwaGVyc3VpdGVzIFRMU19BRVNfMjU2X0dDTV9TSEEzODQgLXNpZ2FsZ3MgZWNkc2Ffc2VjcDI1NnIxX3NoYTI1NiAtZ3JvdXBzIFAtMzg0IC1tc2cgLXRsczFfMyIgXAorICAgICAgICAgIiRQX1NSViBjcnRfZmlsZT0kREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3AyNTZyMS5jcnQga2V5X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwMjU2cjEua2V5IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0yNTYtR0NNLVNIQTM4NCBzaWdfYWxncz1lY2RzYV9zZWNwMjU2cjFfc2hhMjU2IGdyb3Vwcz1zZWNwMzg0cjEgdGxzMTNfa2V4X21vZGVzPWVwaGVtZXJhbCBjb29raWVzPTAgdGlja2V0cz0wIiBcCisgICAgICAgICAiJE9fTkVYVF9DTElfTk9fQ0VSVCAtQ0FmaWxlICREQVRBX0ZJTEVTX1BBVEgvdGVzdC1jYTIuY3J0IC1jaXBoZXJzdWl0ZXMgVExTX0FFU18yNTZfR0NNX1NIQTM4NCAtc2lnYWxncyBlY2RzYV9zZWNwMjU2cjFfc2hhMjU2IC1ncm91cHMgUC0zODQgLW1zZyAtdGxzMV8zIiBcCiAgICAgICAgICAwIFwKICAgICAgICAgIC1zICJQcm90b2NvbCBpcyBUTFN2MS4zIiBcCiAgICAgICAgICAtcyAic2VydmVyIGhlbGxvLCBjaG9zZW4gY2lwaGVyc3VpdGU6IFRMUzEtMy1BRVMtMjU2LUdDTS1TSEEzODQgKCBpZD00ODY2ICkiIFwKQEAgLTUyNCw4ICs1MjYsOCBAQAogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgUFNBX1dBTlRfQUxHX0VDREgKIHJlcXVpcmVzX29wZW5zc2xfdGxzMV8zCiBydW5fdGVzdCAiVExTIDEuMyBPLT5tOiBBRVNfMjU2X0dDTV9TSEEzODQsc2VjcDM4NHIxLGVjZHNhX3NlY3AzODRyMV9zaGEzODQiIFwKLSAgICAgICAgICIkUF9TUlYgY3J0X2ZpbGU9ZGF0YV9maWxlcy9lY2RzYV9zZWNwMzg0cjEuY3J0IGtleV9maWxlPWRhdGFfZmlsZXMvZWNkc2Ffc2VjcDM4NHIxLmtleSBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMjU2LUdDTS1TSEEzODQgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDM4NHIxX3NoYTM4NCBncm91cHM9c2VjcDM4NHIxIHRsczEzX2tleF9tb2Rlcz1lcGhlbWVyYWwgY29va2llcz0wIHRpY2tldHM9MCIgXAotICAgICAgICAgIiRPX05FWFRfQ0xJX05PX0NFUlQgLUNBZmlsZSBkYXRhX2ZpbGVzL3Rlc3QtY2EyLmNydCAtY2lwaGVyc3VpdGVzIFRMU19BRVNfMjU2X0dDTV9TSEEzODQgLXNpZ2FsZ3MgZWNkc2Ffc2VjcDM4NHIxX3NoYTM4NCAtZ3JvdXBzIFAtMzg0IC1tc2cgLXRsczFfMyIgXAorICAgICAgICAgIiRQX1NSViBjcnRfZmlsZT0kREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3AzODRyMS5jcnQga2V5X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwMzg0cjEua2V5IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0yNTYtR0NNLVNIQTM4NCBzaWdfYWxncz1lY2RzYV9zZWNwMzg0cjFfc2hhMzg0IGdyb3Vwcz1zZWNwMzg0cjEgdGxzMTNfa2V4X21vZGVzPWVwaGVtZXJhbCBjb29raWVzPTAgdGlja2V0cz0wIiBcCisgICAgICAgICAiJE9fTkVYVF9DTElfTk9fQ0VSVCAtQ0FmaWxlICREQVRBX0ZJTEVTX1BBVEgvdGVzdC1jYTIuY3J0IC1jaXBoZXJzdWl0ZXMgVExTX0FFU18yNTZfR0NNX1NIQTM4NCAtc2lnYWxncyBlY2RzYV9zZWNwMzg0cjFfc2hhMzg0IC1ncm91cHMgUC0zODQgLW1zZyAtdGxzMV8zIiBcCiAgICAgICAgICAwIFwKICAgICAgICAgIC1zICJQcm90b2NvbCBpcyBUTFN2MS4zIiBcCiAgICAgICAgICAtcyAic2VydmVyIGhlbGxvLCBjaG9zZW4gY2lwaGVyc3VpdGU6IFRMUzEtMy1BRVMtMjU2LUdDTS1TSEEzODQgKCBpZD00ODY2ICkiIFwKQEAgLTU0MSw4ICs1NDMsOCBAQAogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgUFNBX1dBTlRfQUxHX0VDREgKIHJlcXVpcmVzX29wZW5zc2xfdGxzMV8zCiBydW5fdGVzdCAiVExTIDEuMyBPLT5tOiBBRVNfMjU2X0dDTV9TSEEzODQsc2VjcDM4NHIxLGVjZHNhX3NlY3A1MjFyMV9zaGE1MTIiIFwKLSAgICAgICAgICIkUF9TUlYgY3J0X2ZpbGU9ZGF0YV9maWxlcy9lY2RzYV9zZWNwNTIxcjEuY3J0IGtleV9maWxlPWRhdGFfZmlsZXMvZWNkc2Ffc2VjcDUyMXIxLmtleSBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMjU2LUdDTS1TSEEzODQgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDUyMXIxX3NoYTUxMiBncm91cHM9c2VjcDM4NHIxIHRsczEzX2tleF9tb2Rlcz1lcGhlbWVyYWwgY29va2llcz0wIHRpY2tldHM9MCIgXAotICAgICAgICAgIiRPX05FWFRfQ0xJX05PX0NFUlQgLUNBZmlsZSBkYXRhX2ZpbGVzL3Rlc3QtY2EyLmNydCAtY2lwaGVyc3VpdGVzIFRMU19BRVNfMjU2X0dDTV9TSEEzODQgLXNpZ2FsZ3MgZWNkc2Ffc2VjcDUyMXIxX3NoYTUxMiAtZ3JvdXBzIFAtMzg0IC1tc2cgLXRsczFfMyIgXAorICAgICAgICAgIiRQX1NSViBjcnRfZmlsZT0kREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3A1MjFyMS5jcnQga2V5X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwNTIxcjEua2V5IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0yNTYtR0NNLVNIQTM4NCBzaWdfYWxncz1lY2RzYV9zZWNwNTIxcjFfc2hhNTEyIGdyb3Vwcz1zZWNwMzg0cjEgdGxzMTNfa2V4X21vZGVzPWVwaGVtZXJhbCBjb29raWVzPTAgdGlja2V0cz0wIiBcCisgICAgICAgICAiJE9fTkVYVF9DTElfTk9fQ0VSVCAtQ0FmaWxlICREQVRBX0ZJTEVTX1BBVEgvdGVzdC1jYTIuY3J0IC1jaXBoZXJzdWl0ZXMgVExTX0FFU18yNTZfR0NNX1NIQTM4NCAtc2lnYWxncyBlY2RzYV9zZWNwNTIxcjFfc2hhNTEyIC1ncm91cHMgUC0zODQgLW1zZyAtdGxzMV8zIiBcCiAgICAgICAgICAwIFwKICAgICAgICAgIC1zICJQcm90b2NvbCBpcyBUTFN2MS4zIiBcCiAgICAgICAgICAtcyAic2VydmVyIGhlbGxvLCBjaG9zZW4gY2lwaGVyc3VpdGU6IFRMUzEtMy1BRVMtMjU2LUdDTS1TSEEzODQgKCBpZD00ODY2ICkiIFwKQEAgLTU1OSw4ICs1NjEsOCBAQAogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgUFNBX1dBTlRfQUxHX0VDREgKIHJlcXVpcmVzX29wZW5zc2xfdGxzMV8zCiBydW5fdGVzdCAiVExTIDEuMyBPLT5tOiBBRVNfMjU2X0dDTV9TSEEzODQsc2VjcDM4NHIxLHJzYV9wc3NfcnNhZV9zaGEyNTYiIFwKLSAgICAgICAgICIkUF9TUlYgY3J0X2ZpbGU9ZGF0YV9maWxlcy9zZXJ2ZXIyLXNoYTI1Ni5jcnQga2V5X2ZpbGU9ZGF0YV9maWxlcy9zZXJ2ZXIyLmtleSBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMjU2LUdDTS1TSEEzODQgc2lnX2FsZ3M9cnNhX3Bzc19yc2FlX3NoYTI1NiBncm91cHM9c2VjcDM4NHIxIHRsczEzX2tleF9tb2Rlcz1lcGhlbWVyYWwgY29va2llcz0wIHRpY2tldHM9MCIgXAotICAgICAgICAgIiRPX05FWFRfQ0xJX05PX0NFUlQgLUNBZmlsZSBkYXRhX2ZpbGVzL3Rlc3QtY2FfY2F0MTIuY3J0IC1jaXBoZXJzdWl0ZXMgVExTX0FFU18yNTZfR0NNX1NIQTM4NCAtc2lnYWxncyByc2FfcHNzX3JzYWVfc2hhMjU2IC1ncm91cHMgUC0zODQgLW1zZyAtdGxzMV8zIiBcCisgICAgICAgICAiJFBfU1JWIGNydF9maWxlPSREQVRBX0ZJTEVTX1BBVEgvc2VydmVyMi1zaGEyNTYuY3J0IGtleV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvc2VydmVyMi5rZXkgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTI1Ni1HQ00tU0hBMzg0IHNpZ19hbGdzPXJzYV9wc3NfcnNhZV9zaGEyNTYgZ3JvdXBzPXNlY3AzODRyMSB0bHMxM19rZXhfbW9kZXM9ZXBoZW1lcmFsIGNvb2tpZXM9MCB0aWNrZXRzPTAiIFwKKyAgICAgICAgICIkT19ORVhUX0NMSV9OT19DRVJUIC1DQWZpbGUgJERBVEFfRklMRVNfUEFUSC90ZXN0LWNhX2NhdDEyLmNydCAtY2lwaGVyc3VpdGVzIFRMU19BRVNfMjU2X0dDTV9TSEEzODQgLXNpZ2FsZ3MgcnNhX3Bzc19yc2FlX3NoYTI1NiAtZ3JvdXBzIFAtMzg0IC1tc2cgLXRsczFfMyIgXAogICAgICAgICAgMCBcCiAgICAgICAgICAtcyAiUHJvdG9jb2wgaXMgVExTdjEuMyIgXAogICAgICAgICAgLXMgInNlcnZlciBoZWxsbywgY2hvc2VuIGNpcGhlcnN1aXRlOiBUTFMxLTMtQUVTLTI1Ni1HQ00tU0hBMzg0ICggaWQ9NDg2NiApIiBcCkBAIC01NzYsOCArNTc4LDggQEAKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIFBTQV9XQU5UX0FMR19FQ0RICiByZXF1aXJlc19vcGVuc3NsX3RsczFfMwogcnVuX3Rlc3QgIlRMUyAxLjMgTy0+bTogQUVTXzI1Nl9HQ01fU0hBMzg0LHNlY3A1MjFyMSxlY2RzYV9zZWNwMjU2cjFfc2hhMjU2IiBcCi0gICAgICAgICAiJFBfU1JWIGNydF9maWxlPWRhdGFfZmlsZXMvZWNkc2Ffc2VjcDI1NnIxLmNydCBrZXlfZmlsZT1kYXRhX2ZpbGVzL2VjZHNhX3NlY3AyNTZyMS5rZXkgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTI1Ni1HQ00tU0hBMzg0IHNpZ19hbGdzPWVjZHNhX3NlY3AyNTZyMV9zaGEyNTYgZ3JvdXBzPXNlY3A1MjFyMSB0bHMxM19rZXhfbW9kZXM9ZXBoZW1lcmFsIGNvb2tpZXM9MCB0aWNrZXRzPTAiIFwKLSAgICAgICAgICIkT19ORVhUX0NMSV9OT19DRVJUIC1DQWZpbGUgZGF0YV9maWxlcy90ZXN0LWNhMi5jcnQgLWNpcGhlcnN1aXRlcyBUTFNfQUVTXzI1Nl9HQ01fU0hBMzg0IC1zaWdhbGdzIGVjZHNhX3NlY3AyNTZyMV9zaGEyNTYgLWdyb3VwcyBQLTUyMSAtbXNnIC10bHMxXzMiIFwKKyAgICAgICAgICIkUF9TUlYgY3J0X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwMjU2cjEuY3J0IGtleV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDI1NnIxLmtleSBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMjU2LUdDTS1TSEEzODQgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDI1NnIxX3NoYTI1NiBncm91cHM9c2VjcDUyMXIxIHRsczEzX2tleF9tb2Rlcz1lcGhlbWVyYWwgY29va2llcz0wIHRpY2tldHM9MCIgXAorICAgICAgICAgIiRPX05FWFRfQ0xJX05PX0NFUlQgLUNBZmlsZSAkREFUQV9GSUxFU19QQVRIL3Rlc3QtY2EyLmNydCAtY2lwaGVyc3VpdGVzIFRMU19BRVNfMjU2X0dDTV9TSEEzODQgLXNpZ2FsZ3MgZWNkc2Ffc2VjcDI1NnIxX3NoYTI1NiAtZ3JvdXBzIFAtNTIxIC1tc2cgLXRsczFfMyIgXAogICAgICAgICAgMCBcCiAgICAgICAgICAtcyAiUHJvdG9jb2wgaXMgVExTdjEuMyIgXAogICAgICAgICAgLXMgInNlcnZlciBoZWxsbywgY2hvc2VuIGNpcGhlcnN1aXRlOiBUTFMxLTMtQUVTLTI1Ni1HQ00tU0hBMzg0ICggaWQ9NDg2NiApIiBcCkBAIC01OTMsOCArNTk1LDggQEAKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIFBTQV9XQU5UX0FMR19FQ0RICiByZXF1aXJlc19vcGVuc3NsX3RsczFfMwogcnVuX3Rlc3QgIlRMUyAxLjMgTy0+bTogQUVTXzI1Nl9HQ01fU0hBMzg0LHNlY3A1MjFyMSxlY2RzYV9zZWNwMzg0cjFfc2hhMzg0IiBcCi0gICAgICAgICAiJFBfU1JWIGNydF9maWxlPWRhdGFfZmlsZXMvZWNkc2Ffc2VjcDM4NHIxLmNydCBrZXlfZmlsZT1kYXRhX2ZpbGVzL2VjZHNhX3NlY3AzODRyMS5rZXkgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTI1Ni1HQ00tU0hBMzg0IHNpZ19hbGdzPWVjZHNhX3NlY3AzODRyMV9zaGEzODQgZ3JvdXBzPXNlY3A1MjFyMSB0bHMxM19rZXhfbW9kZXM9ZXBoZW1lcmFsIGNvb2tpZXM9MCB0aWNrZXRzPTAiIFwKLSAgICAgICAgICIkT19ORVhUX0NMSV9OT19DRVJUIC1DQWZpbGUgZGF0YV9maWxlcy90ZXN0LWNhMi5jcnQgLWNpcGhlcnN1aXRlcyBUTFNfQUVTXzI1Nl9HQ01fU0hBMzg0IC1zaWdhbGdzIGVjZHNhX3NlY3AzODRyMV9zaGEzODQgLWdyb3VwcyBQLTUyMSAtbXNnIC10bHMxXzMiIFwKKyAgICAgICAgICIkUF9TUlYgY3J0X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwMzg0cjEuY3J0IGtleV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDM4NHIxLmtleSBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMjU2LUdDTS1TSEEzODQgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDM4NHIxX3NoYTM4NCBncm91cHM9c2VjcDUyMXIxIHRsczEzX2tleF9tb2Rlcz1lcGhlbWVyYWwgY29va2llcz0wIHRpY2tldHM9MCIgXAorICAgICAgICAgIiRPX05FWFRfQ0xJX05PX0NFUlQgLUNBZmlsZSAkREFUQV9GSUxFU19QQVRIL3Rlc3QtY2EyLmNydCAtY2lwaGVyc3VpdGVzIFRMU19BRVNfMjU2X0dDTV9TSEEzODQgLXNpZ2FsZ3MgZWNkc2Ffc2VjcDM4NHIxX3NoYTM4NCAtZ3JvdXBzIFAtNTIxIC1tc2cgLXRsczFfMyIgXAogICAgICAgICAgMCBcCiAgICAgICAgICAtcyAiUHJvdG9jb2wgaXMgVExTdjEuMyIgXAogICAgICAgICAgLXMgInNlcnZlciBoZWxsbywgY2hvc2VuIGNpcGhlcnN1aXRlOiBUTFMxLTMtQUVTLTI1Ni1HQ00tU0hBMzg0ICggaWQ9NDg2NiApIiBcCkBAIC02MTAsOCArNjEyLDggQEAKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIFBTQV9XQU5UX0FMR19FQ0RICiByZXF1aXJlc19vcGVuc3NsX3RsczFfMwogcnVuX3Rlc3QgIlRMUyAxLjMgTy0+bTogQUVTXzI1Nl9HQ01fU0hBMzg0LHNlY3A1MjFyMSxlY2RzYV9zZWNwNTIxcjFfc2hhNTEyIiBcCi0gICAgICAgICAiJFBfU1JWIGNydF9maWxlPWRhdGFfZmlsZXMvZWNkc2Ffc2VjcDUyMXIxLmNydCBrZXlfZmlsZT1kYXRhX2ZpbGVzL2VjZHNhX3NlY3A1MjFyMS5rZXkgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTI1Ni1HQ00tU0hBMzg0IHNpZ19hbGdzPWVjZHNhX3NlY3A1MjFyMV9zaGE1MTIgZ3JvdXBzPXNlY3A1MjFyMSB0bHMxM19rZXhfbW9kZXM9ZXBoZW1lcmFsIGNvb2tpZXM9MCB0aWNrZXRzPTAiIFwKLSAgICAgICAgICIkT19ORVhUX0NMSV9OT19DRVJUIC1DQWZpbGUgZGF0YV9maWxlcy90ZXN0LWNhMi5jcnQgLWNpcGhlcnN1aXRlcyBUTFNfQUVTXzI1Nl9HQ01fU0hBMzg0IC1zaWdhbGdzIGVjZHNhX3NlY3A1MjFyMV9zaGE1MTIgLWdyb3VwcyBQLTUyMSAtbXNnIC10bHMxXzMiIFwKKyAgICAgICAgICIkUF9TUlYgY3J0X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwNTIxcjEuY3J0IGtleV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDUyMXIxLmtleSBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMjU2LUdDTS1TSEEzODQgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDUyMXIxX3NoYTUxMiBncm91cHM9c2VjcDUyMXIxIHRsczEzX2tleF9tb2Rlcz1lcGhlbWVyYWwgY29va2llcz0wIHRpY2tldHM9MCIgXAorICAgICAgICAgIiRPX05FWFRfQ0xJX05PX0NFUlQgLUNBZmlsZSAkREFUQV9GSUxFU19QQVRIL3Rlc3QtY2EyLmNydCAtY2lwaGVyc3VpdGVzIFRMU19BRVNfMjU2X0dDTV9TSEEzODQgLXNpZ2FsZ3MgZWNkc2Ffc2VjcDUyMXIxX3NoYTUxMiAtZ3JvdXBzIFAtNTIxIC1tc2cgLXRsczFfMyIgXAogICAgICAgICAgMCBcCiAgICAgICAgICAtcyAiUHJvdG9jb2wgaXMgVExTdjEuMyIgXAogICAgICAgICAgLXMgInNlcnZlciBoZWxsbywgY2hvc2VuIGNpcGhlcnN1aXRlOiBUTFMxLTMtQUVTLTI1Ni1HQ00tU0hBMzg0ICggaWQ9NDg2NiApIiBcCkBAIC02MjgsOCArNjMwLDggQEAKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIFBTQV9XQU5UX0FMR19FQ0RICiByZXF1aXJlc19vcGVuc3NsX3RsczFfMwogcnVuX3Rlc3QgIlRMUyAxLjMgTy0+bTogQUVTXzI1Nl9HQ01fU0hBMzg0LHNlY3A1MjFyMSxyc2FfcHNzX3JzYWVfc2hhMjU2IiBcCi0gICAgICAgICAiJFBfU1JWIGNydF9maWxlPWRhdGFfZmlsZXMvc2VydmVyMi1zaGEyNTYuY3J0IGtleV9maWxlPWRhdGFfZmlsZXMvc2VydmVyMi5rZXkgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTI1Ni1HQ00tU0hBMzg0IHNpZ19hbGdzPXJzYV9wc3NfcnNhZV9zaGEyNTYgZ3JvdXBzPXNlY3A1MjFyMSB0bHMxM19rZXhfbW9kZXM9ZXBoZW1lcmFsIGNvb2tpZXM9MCB0aWNrZXRzPTAiIFwKLSAgICAgICAgICIkT19ORVhUX0NMSV9OT19DRVJUIC1DQWZpbGUgZGF0YV9maWxlcy90ZXN0LWNhX2NhdDEyLmNydCAtY2lwaGVyc3VpdGVzIFRMU19BRVNfMjU2X0dDTV9TSEEzODQgLXNpZ2FsZ3MgcnNhX3Bzc19yc2FlX3NoYTI1NiAtZ3JvdXBzIFAtNTIxIC1tc2cgLXRsczFfMyIgXAorICAgICAgICAgIiRQX1NSViBjcnRfZmlsZT0kREFUQV9GSUxFU19QQVRIL3NlcnZlcjItc2hhMjU2LmNydCBrZXlfZmlsZT0kREFUQV9GSUxFU19QQVRIL3NlcnZlcjIua2V5IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0yNTYtR0NNLVNIQTM4NCBzaWdfYWxncz1yc2FfcHNzX3JzYWVfc2hhMjU2IGdyb3Vwcz1zZWNwNTIxcjEgdGxzMTNfa2V4X21vZGVzPWVwaGVtZXJhbCBjb29raWVzPTAgdGlja2V0cz0wIiBcCisgICAgICAgICAiJE9fTkVYVF9DTElfTk9fQ0VSVCAtQ0FmaWxlICREQVRBX0ZJTEVTX1BBVEgvdGVzdC1jYV9jYXQxMi5jcnQgLWNpcGhlcnN1aXRlcyBUTFNfQUVTXzI1Nl9HQ01fU0hBMzg0IC1zaWdhbGdzIHJzYV9wc3NfcnNhZV9zaGEyNTYgLWdyb3VwcyBQLTUyMSAtbXNnIC10bHMxXzMiIFwKICAgICAgICAgIDAgXAogICAgICAgICAgLXMgIlByb3RvY29sIGlzIFRMU3YxLjMiIFwKICAgICAgICAgIC1zICJzZXJ2ZXIgaGVsbG8sIGNob3NlbiBjaXBoZXJzdWl0ZTogVExTMS0zLUFFUy0yNTYtR0NNLVNIQTM4NCAoIGlkPTQ4NjYgKSIgXApAQCAtNjQ1LDggKzY0Nyw4IEBACiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBQU0FfV0FOVF9BTEdfRUNESAogcmVxdWlyZXNfb3BlbnNzbF90bHMxXzMKIHJ1bl90ZXN0ICJUTFMgMS4zIE8tPm06IEFFU18yNTZfR0NNX1NIQTM4NCx4MjU1MTksZWNkc2Ffc2VjcDI1NnIxX3NoYTI1NiIgXAotICAgICAgICAgIiRQX1NSViBjcnRfZmlsZT1kYXRhX2ZpbGVzL2VjZHNhX3NlY3AyNTZyMS5jcnQga2V5X2ZpbGU9ZGF0YV9maWxlcy9lY2RzYV9zZWNwMjU2cjEua2V5IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0yNTYtR0NNLVNIQTM4NCBzaWdfYWxncz1lY2RzYV9zZWNwMjU2cjFfc2hhMjU2IGdyb3Vwcz14MjU1MTkgdGxzMTNfa2V4X21vZGVzPWVwaGVtZXJhbCBjb29raWVzPTAgdGlja2V0cz0wIiBcCi0gICAgICAgICAiJE9fTkVYVF9DTElfTk9fQ0VSVCAtQ0FmaWxlIGRhdGFfZmlsZXMvdGVzdC1jYTIuY3J0IC1jaXBoZXJzdWl0ZXMgVExTX0FFU18yNTZfR0NNX1NIQTM4NCAtc2lnYWxncyBlY2RzYV9zZWNwMjU2cjFfc2hhMjU2IC1ncm91cHMgWDI1NTE5IC1tc2cgLXRsczFfMyIgXAorICAgICAgICAgIiRQX1NSViBjcnRfZmlsZT0kREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3AyNTZyMS5jcnQga2V5X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwMjU2cjEua2V5IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0yNTYtR0NNLVNIQTM4NCBzaWdfYWxncz1lY2RzYV9zZWNwMjU2cjFfc2hhMjU2IGdyb3Vwcz14MjU1MTkgdGxzMTNfa2V4X21vZGVzPWVwaGVtZXJhbCBjb29raWVzPTAgdGlja2V0cz0wIiBcCisgICAgICAgICAiJE9fTkVYVF9DTElfTk9fQ0VSVCAtQ0FmaWxlICREQVRBX0ZJTEVTX1BBVEgvdGVzdC1jYTIuY3J0IC1jaXBoZXJzdWl0ZXMgVExTX0FFU18yNTZfR0NNX1NIQTM4NCAtc2lnYWxncyBlY2RzYV9zZWNwMjU2cjFfc2hhMjU2IC1ncm91cHMgWDI1NTE5IC1tc2cgLXRsczFfMyIgXAogICAgICAgICAgMCBcCiAgICAgICAgICAtcyAiUHJvdG9jb2wgaXMgVExTdjEuMyIgXAogICAgICAgICAgLXMgInNlcnZlciBoZWxsbywgY2hvc2VuIGNpcGhlcnN1aXRlOiBUTFMxLTMtQUVTLTI1Ni1HQ00tU0hBMzg0ICggaWQ9NDg2NiApIiBcCkBAIC02NjIsOCArNjY0LDggQEAKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIFBTQV9XQU5UX0FMR19FQ0RICiByZXF1aXJlc19vcGVuc3NsX3RsczFfMwogcnVuX3Rlc3QgIlRMUyAxLjMgTy0+bTogQUVTXzI1Nl9HQ01fU0hBMzg0LHgyNTUxOSxlY2RzYV9zZWNwMzg0cjFfc2hhMzg0IiBcCi0gICAgICAgICAiJFBfU1JWIGNydF9maWxlPWRhdGFfZmlsZXMvZWNkc2Ffc2VjcDM4NHIxLmNydCBrZXlfZmlsZT1kYXRhX2ZpbGVzL2VjZHNhX3NlY3AzODRyMS5rZXkgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTI1Ni1HQ00tU0hBMzg0IHNpZ19hbGdzPWVjZHNhX3NlY3AzODRyMV9zaGEzODQgZ3JvdXBzPXgyNTUxOSB0bHMxM19rZXhfbW9kZXM9ZXBoZW1lcmFsIGNvb2tpZXM9MCB0aWNrZXRzPTAiIFwKLSAgICAgICAgICIkT19ORVhUX0NMSV9OT19DRVJUIC1DQWZpbGUgZGF0YV9maWxlcy90ZXN0LWNhMi5jcnQgLWNpcGhlcnN1aXRlcyBUTFNfQUVTXzI1Nl9HQ01fU0hBMzg0IC1zaWdhbGdzIGVjZHNhX3NlY3AzODRyMV9zaGEzODQgLWdyb3VwcyBYMjU1MTkgLW1zZyAtdGxzMV8zIiBcCisgICAgICAgICAiJFBfU1JWIGNydF9maWxlPSREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDM4NHIxLmNydCBrZXlfZmlsZT0kREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3AzODRyMS5rZXkgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTI1Ni1HQ00tU0hBMzg0IHNpZ19hbGdzPWVjZHNhX3NlY3AzODRyMV9zaGEzODQgZ3JvdXBzPXgyNTUxOSB0bHMxM19rZXhfbW9kZXM9ZXBoZW1lcmFsIGNvb2tpZXM9MCB0aWNrZXRzPTAiIFwKKyAgICAgICAgICIkT19ORVhUX0NMSV9OT19DRVJUIC1DQWZpbGUgJERBVEFfRklMRVNfUEFUSC90ZXN0LWNhMi5jcnQgLWNpcGhlcnN1aXRlcyBUTFNfQUVTXzI1Nl9HQ01fU0hBMzg0IC1zaWdhbGdzIGVjZHNhX3NlY3AzODRyMV9zaGEzODQgLWdyb3VwcyBYMjU1MTkgLW1zZyAtdGxzMV8zIiBcCiAgICAgICAgICAwIFwKICAgICAgICAgIC1zICJQcm90b2NvbCBpcyBUTFN2MS4zIiBcCiAgICAgICAgICAtcyAic2VydmVyIGhlbGxvLCBjaG9zZW4gY2lwaGVyc3VpdGU6IFRMUzEtMy1BRVMtMjU2LUdDTS1TSEEzODQgKCBpZD00ODY2ICkiIFwKQEAgLTY3OSw4ICs2ODEsOCBAQAogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgUFNBX1dBTlRfQUxHX0VDREgKIHJlcXVpcmVzX29wZW5zc2xfdGxzMV8zCiBydW5fdGVzdCAiVExTIDEuMyBPLT5tOiBBRVNfMjU2X0dDTV9TSEEzODQseDI1NTE5LGVjZHNhX3NlY3A1MjFyMV9zaGE1MTIiIFwKLSAgICAgICAgICIkUF9TUlYgY3J0X2ZpbGU9ZGF0YV9maWxlcy9lY2RzYV9zZWNwNTIxcjEuY3J0IGtleV9maWxlPWRhdGFfZmlsZXMvZWNkc2Ffc2VjcDUyMXIxLmtleSBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMjU2LUdDTS1TSEEzODQgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDUyMXIxX3NoYTUxMiBncm91cHM9eDI1NTE5IHRsczEzX2tleF9tb2Rlcz1lcGhlbWVyYWwgY29va2llcz0wIHRpY2tldHM9MCIgXAotICAgICAgICAgIiRPX05FWFRfQ0xJX05PX0NFUlQgLUNBZmlsZSBkYXRhX2ZpbGVzL3Rlc3QtY2EyLmNydCAtY2lwaGVyc3VpdGVzIFRMU19BRVNfMjU2X0dDTV9TSEEzODQgLXNpZ2FsZ3MgZWNkc2Ffc2VjcDUyMXIxX3NoYTUxMiAtZ3JvdXBzIFgyNTUxOSAtbXNnIC10bHMxXzMiIFwKKyAgICAgICAgICIkUF9TUlYgY3J0X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwNTIxcjEuY3J0IGtleV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDUyMXIxLmtleSBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMjU2LUdDTS1TSEEzODQgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDUyMXIxX3NoYTUxMiBncm91cHM9eDI1NTE5IHRsczEzX2tleF9tb2Rlcz1lcGhlbWVyYWwgY29va2llcz0wIHRpY2tldHM9MCIgXAorICAgICAgICAgIiRPX05FWFRfQ0xJX05PX0NFUlQgLUNBZmlsZSAkREFUQV9GSUxFU19QQVRIL3Rlc3QtY2EyLmNydCAtY2lwaGVyc3VpdGVzIFRMU19BRVNfMjU2X0dDTV9TSEEzODQgLXNpZ2FsZ3MgZWNkc2Ffc2VjcDUyMXIxX3NoYTUxMiAtZ3JvdXBzIFgyNTUxOSAtbXNnIC10bHMxXzMiIFwKICAgICAgICAgIDAgXAogICAgICAgICAgLXMgIlByb3RvY29sIGlzIFRMU3YxLjMiIFwKICAgICAgICAgIC1zICJzZXJ2ZXIgaGVsbG8sIGNob3NlbiBjaXBoZXJzdWl0ZTogVExTMS0zLUFFUy0yNTYtR0NNLVNIQTM4NCAoIGlkPTQ4NjYgKSIgXApAQCAtNjk3LDggKzY5OSw4IEBACiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBQU0FfV0FOVF9BTEdfRUNESAogcmVxdWlyZXNfb3BlbnNzbF90bHMxXzMKIHJ1bl90ZXN0ICJUTFMgMS4zIE8tPm06IEFFU18yNTZfR0NNX1NIQTM4NCx4MjU1MTkscnNhX3Bzc19yc2FlX3NoYTI1NiIgXAotICAgICAgICAgIiRQX1NSViBjcnRfZmlsZT1kYXRhX2ZpbGVzL3NlcnZlcjItc2hhMjU2LmNydCBrZXlfZmlsZT1kYXRhX2ZpbGVzL3NlcnZlcjIua2V5IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0yNTYtR0NNLVNIQTM4NCBzaWdfYWxncz1yc2FfcHNzX3JzYWVfc2hhMjU2IGdyb3Vwcz14MjU1MTkgdGxzMTNfa2V4X21vZGVzPWVwaGVtZXJhbCBjb29raWVzPTAgdGlja2V0cz0wIiBcCi0gICAgICAgICAiJE9fTkVYVF9DTElfTk9fQ0VSVCAtQ0FmaWxlIGRhdGFfZmlsZXMvdGVzdC1jYV9jYXQxMi5jcnQgLWNpcGhlcnN1aXRlcyBUTFNfQUVTXzI1Nl9HQ01fU0hBMzg0IC1zaWdhbGdzIHJzYV9wc3NfcnNhZV9zaGEyNTYgLWdyb3VwcyBYMjU1MTkgLW1zZyAtdGxzMV8zIiBcCisgICAgICAgICAiJFBfU1JWIGNydF9maWxlPSREQVRBX0ZJTEVTX1BBVEgvc2VydmVyMi1zaGEyNTYuY3J0IGtleV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvc2VydmVyMi5rZXkgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTI1Ni1HQ00tU0hBMzg0IHNpZ19hbGdzPXJzYV9wc3NfcnNhZV9zaGEyNTYgZ3JvdXBzPXgyNTUxOSB0bHMxM19rZXhfbW9kZXM9ZXBoZW1lcmFsIGNvb2tpZXM9MCB0aWNrZXRzPTAiIFwKKyAgICAgICAgICIkT19ORVhUX0NMSV9OT19DRVJUIC1DQWZpbGUgJERBVEFfRklMRVNfUEFUSC90ZXN0LWNhX2NhdDEyLmNydCAtY2lwaGVyc3VpdGVzIFRMU19BRVNfMjU2X0dDTV9TSEEzODQgLXNpZ2FsZ3MgcnNhX3Bzc19yc2FlX3NoYTI1NiAtZ3JvdXBzIFgyNTUxOSAtbXNnIC10bHMxXzMiIFwKICAgICAgICAgIDAgXAogICAgICAgICAgLXMgIlByb3RvY29sIGlzIFRMU3YxLjMiIFwKICAgICAgICAgIC1zICJzZXJ2ZXIgaGVsbG8sIGNob3NlbiBjaXBoZXJzdWl0ZTogVExTMS0zLUFFUy0yNTYtR0NNLVNIQTM4NCAoIGlkPTQ4NjYgKSIgXApAQCAtNzE0LDggKzcxNiw4IEBACiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBQU0FfV0FOVF9BTEdfRUNESAogcmVxdWlyZXNfb3BlbnNzbF90bHMxXzMKIHJ1bl90ZXN0ICJUTFMgMS4zIE8tPm06IEFFU18yNTZfR0NNX1NIQTM4NCx4NDQ4LGVjZHNhX3NlY3AyNTZyMV9zaGEyNTYiIFwKLSAgICAgICAgICIkUF9TUlYgY3J0X2ZpbGU9ZGF0YV9maWxlcy9lY2RzYV9zZWNwMjU2cjEuY3J0IGtleV9maWxlPWRhdGFfZmlsZXMvZWNkc2Ffc2VjcDI1NnIxLmtleSBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMjU2LUdDTS1TSEEzODQgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDI1NnIxX3NoYTI1NiBncm91cHM9eDQ0OCB0bHMxM19rZXhfbW9kZXM9ZXBoZW1lcmFsIGNvb2tpZXM9MCB0aWNrZXRzPTAiIFwKLSAgICAgICAgICIkT19ORVhUX0NMSV9OT19DRVJUIC1DQWZpbGUgZGF0YV9maWxlcy90ZXN0LWNhMi5jcnQgLWNpcGhlcnN1aXRlcyBUTFNfQUVTXzI1Nl9HQ01fU0hBMzg0IC1zaWdhbGdzIGVjZHNhX3NlY3AyNTZyMV9zaGEyNTYgLWdyb3VwcyBYNDQ4IC1tc2cgLXRsczFfMyIgXAorICAgICAgICAgIiRQX1NSViBjcnRfZmlsZT0kREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3AyNTZyMS5jcnQga2V5X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwMjU2cjEua2V5IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0yNTYtR0NNLVNIQTM4NCBzaWdfYWxncz1lY2RzYV9zZWNwMjU2cjFfc2hhMjU2IGdyb3Vwcz14NDQ4IHRsczEzX2tleF9tb2Rlcz1lcGhlbWVyYWwgY29va2llcz0wIHRpY2tldHM9MCIgXAorICAgICAgICAgIiRPX05FWFRfQ0xJX05PX0NFUlQgLUNBZmlsZSAkREFUQV9GSUxFU19QQVRIL3Rlc3QtY2EyLmNydCAtY2lwaGVyc3VpdGVzIFRMU19BRVNfMjU2X0dDTV9TSEEzODQgLXNpZ2FsZ3MgZWNkc2Ffc2VjcDI1NnIxX3NoYTI1NiAtZ3JvdXBzIFg0NDggLW1zZyAtdGxzMV8zIiBcCiAgICAgICAgICAwIFwKICAgICAgICAgIC1zICJQcm90b2NvbCBpcyBUTFN2MS4zIiBcCiAgICAgICAgICAtcyAic2VydmVyIGhlbGxvLCBjaG9zZW4gY2lwaGVyc3VpdGU6IFRMUzEtMy1BRVMtMjU2LUdDTS1TSEEzODQgKCBpZD00ODY2ICkiIFwKQEAgLTczMSw4ICs3MzMsOCBAQAogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgUFNBX1dBTlRfQUxHX0VDREgKIHJlcXVpcmVzX29wZW5zc2xfdGxzMV8zCiBydW5fdGVzdCAiVExTIDEuMyBPLT5tOiBBRVNfMjU2X0dDTV9TSEEzODQseDQ0OCxlY2RzYV9zZWNwMzg0cjFfc2hhMzg0IiBcCi0gICAgICAgICAiJFBfU1JWIGNydF9maWxlPWRhdGFfZmlsZXMvZWNkc2Ffc2VjcDM4NHIxLmNydCBrZXlfZmlsZT1kYXRhX2ZpbGVzL2VjZHNhX3NlY3AzODRyMS5rZXkgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTI1Ni1HQ00tU0hBMzg0IHNpZ19hbGdzPWVjZHNhX3NlY3AzODRyMV9zaGEzODQgZ3JvdXBzPXg0NDggdGxzMTNfa2V4X21vZGVzPWVwaGVtZXJhbCBjb29raWVzPTAgdGlja2V0cz0wIiBcCi0gICAgICAgICAiJE9fTkVYVF9DTElfTk9fQ0VSVCAtQ0FmaWxlIGRhdGFfZmlsZXMvdGVzdC1jYTIuY3J0IC1jaXBoZXJzdWl0ZXMgVExTX0FFU18yNTZfR0NNX1NIQTM4NCAtc2lnYWxncyBlY2RzYV9zZWNwMzg0cjFfc2hhMzg0IC1ncm91cHMgWDQ0OCAtbXNnIC10bHMxXzMiIFwKKyAgICAgICAgICIkUF9TUlYgY3J0X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwMzg0cjEuY3J0IGtleV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDM4NHIxLmtleSBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMjU2LUdDTS1TSEEzODQgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDM4NHIxX3NoYTM4NCBncm91cHM9eDQ0OCB0bHMxM19rZXhfbW9kZXM9ZXBoZW1lcmFsIGNvb2tpZXM9MCB0aWNrZXRzPTAiIFwKKyAgICAgICAgICIkT19ORVhUX0NMSV9OT19DRVJUIC1DQWZpbGUgJERBVEFfRklMRVNfUEFUSC90ZXN0LWNhMi5jcnQgLWNpcGhlcnN1aXRlcyBUTFNfQUVTXzI1Nl9HQ01fU0hBMzg0IC1zaWdhbGdzIGVjZHNhX3NlY3AzODRyMV9zaGEzODQgLWdyb3VwcyBYNDQ4IC1tc2cgLXRsczFfMyIgXAogICAgICAgICAgMCBcCiAgICAgICAgICAtcyAiUHJvdG9jb2wgaXMgVExTdjEuMyIgXAogICAgICAgICAgLXMgInNlcnZlciBoZWxsbywgY2hvc2VuIGNpcGhlcnN1aXRlOiBUTFMxLTMtQUVTLTI1Ni1HQ00tU0hBMzg0ICggaWQ9NDg2NiApIiBcCkBAIC03NDgsOCArNzUwLDggQEAKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIFBTQV9XQU5UX0FMR19FQ0RICiByZXF1aXJlc19vcGVuc3NsX3RsczFfMwogcnVuX3Rlc3QgIlRMUyAxLjMgTy0+bTogQUVTXzI1Nl9HQ01fU0hBMzg0LHg0NDgsZWNkc2Ffc2VjcDUyMXIxX3NoYTUxMiIgXAotICAgICAgICAgIiRQX1NSViBjcnRfZmlsZT1kYXRhX2ZpbGVzL2VjZHNhX3NlY3A1MjFyMS5jcnQga2V5X2ZpbGU9ZGF0YV9maWxlcy9lY2RzYV9zZWNwNTIxcjEua2V5IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0yNTYtR0NNLVNIQTM4NCBzaWdfYWxncz1lY2RzYV9zZWNwNTIxcjFfc2hhNTEyIGdyb3Vwcz14NDQ4IHRsczEzX2tleF9tb2Rlcz1lcGhlbWVyYWwgY29va2llcz0wIHRpY2tldHM9MCIgXAotICAgICAgICAgIiRPX05FWFRfQ0xJX05PX0NFUlQgLUNBZmlsZSBkYXRhX2ZpbGVzL3Rlc3QtY2EyLmNydCAtY2lwaGVyc3VpdGVzIFRMU19BRVNfMjU2X0dDTV9TSEEzODQgLXNpZ2FsZ3MgZWNkc2Ffc2VjcDUyMXIxX3NoYTUxMiAtZ3JvdXBzIFg0NDggLW1zZyAtdGxzMV8zIiBcCisgICAgICAgICAiJFBfU1JWIGNydF9maWxlPSREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDUyMXIxLmNydCBrZXlfZmlsZT0kREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3A1MjFyMS5rZXkgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTI1Ni1HQ00tU0hBMzg0IHNpZ19hbGdzPWVjZHNhX3NlY3A1MjFyMV9zaGE1MTIgZ3JvdXBzPXg0NDggdGxzMTNfa2V4X21vZGVzPWVwaGVtZXJhbCBjb29raWVzPTAgdGlja2V0cz0wIiBcCisgICAgICAgICAiJE9fTkVYVF9DTElfTk9fQ0VSVCAtQ0FmaWxlICREQVRBX0ZJTEVTX1BBVEgvdGVzdC1jYTIuY3J0IC1jaXBoZXJzdWl0ZXMgVExTX0FFU18yNTZfR0NNX1NIQTM4NCAtc2lnYWxncyBlY2RzYV9zZWNwNTIxcjFfc2hhNTEyIC1ncm91cHMgWDQ0OCAtbXNnIC10bHMxXzMiIFwKICAgICAgICAgIDAgXAogICAgICAgICAgLXMgIlByb3RvY29sIGlzIFRMU3YxLjMiIFwKICAgICAgICAgIC1zICJzZXJ2ZXIgaGVsbG8sIGNob3NlbiBjaXBoZXJzdWl0ZTogVExTMS0zLUFFUy0yNTYtR0NNLVNIQTM4NCAoIGlkPTQ4NjYgKSIgXApAQCAtNzY2LDggKzc2OCw4IEBACiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBQU0FfV0FOVF9BTEdfRUNESAogcmVxdWlyZXNfb3BlbnNzbF90bHMxXzMKIHJ1bl90ZXN0ICJUTFMgMS4zIE8tPm06IEFFU18yNTZfR0NNX1NIQTM4NCx4NDQ4LHJzYV9wc3NfcnNhZV9zaGEyNTYiIFwKLSAgICAgICAgICIkUF9TUlYgY3J0X2ZpbGU9ZGF0YV9maWxlcy9zZXJ2ZXIyLXNoYTI1Ni5jcnQga2V5X2ZpbGU9ZGF0YV9maWxlcy9zZXJ2ZXIyLmtleSBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMjU2LUdDTS1TSEEzODQgc2lnX2FsZ3M9cnNhX3Bzc19yc2FlX3NoYTI1NiBncm91cHM9eDQ0OCB0bHMxM19rZXhfbW9kZXM9ZXBoZW1lcmFsIGNvb2tpZXM9MCB0aWNrZXRzPTAiIFwKLSAgICAgICAgICIkT19ORVhUX0NMSV9OT19DRVJUIC1DQWZpbGUgZGF0YV9maWxlcy90ZXN0LWNhX2NhdDEyLmNydCAtY2lwaGVyc3VpdGVzIFRMU19BRVNfMjU2X0dDTV9TSEEzODQgLXNpZ2FsZ3MgcnNhX3Bzc19yc2FlX3NoYTI1NiAtZ3JvdXBzIFg0NDggLW1zZyAtdGxzMV8zIiBcCisgICAgICAgICAiJFBfU1JWIGNydF9maWxlPSREQVRBX0ZJTEVTX1BBVEgvc2VydmVyMi1zaGEyNTYuY3J0IGtleV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvc2VydmVyMi5rZXkgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTI1Ni1HQ00tU0hBMzg0IHNpZ19hbGdzPXJzYV9wc3NfcnNhZV9zaGEyNTYgZ3JvdXBzPXg0NDggdGxzMTNfa2V4X21vZGVzPWVwaGVtZXJhbCBjb29raWVzPTAgdGlja2V0cz0wIiBcCisgICAgICAgICAiJE9fTkVYVF9DTElfTk9fQ0VSVCAtQ0FmaWxlICREQVRBX0ZJTEVTX1BBVEgvdGVzdC1jYV9jYXQxMi5jcnQgLWNpcGhlcnN1aXRlcyBUTFNfQUVTXzI1Nl9HQ01fU0hBMzg0IC1zaWdhbGdzIHJzYV9wc3NfcnNhZV9zaGEyNTYgLWdyb3VwcyBYNDQ4IC1tc2cgLXRsczFfMyIgXAogICAgICAgICAgMCBcCiAgICAgICAgICAtcyAiUHJvdG9jb2wgaXMgVExTdjEuMyIgXAogICAgICAgICAgLXMgInNlcnZlciBoZWxsbywgY2hvc2VuIGNpcGhlcnN1aXRlOiBUTFMxLTMtQUVTLTI1Ni1HQ00tU0hBMzg0ICggaWQ9NDg2NiApIiBcCkBAIC03ODQsOCArNzg2LDggQEAKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIFBTQV9XQU5UX0RIX1JGQzc5MTlfMjA0OAogcmVxdWlyZXNfb3BlbnNzbF90bHMxXzNfd2l0aF9mZmRoCiBydW5fdGVzdCAiVExTIDEuMyBPLT5tOiBBRVNfMjU2X0dDTV9TSEEzODQsZmZkaGUyMDQ4LGVjZHNhX3NlY3AyNTZyMV9zaGEyNTYiIFwKLSAgICAgICAgICIkUF9TUlYgY3J0X2ZpbGU9ZGF0YV9maWxlcy9lY2RzYV9zZWNwMjU2cjEuY3J0IGtleV9maWxlPWRhdGFfZmlsZXMvZWNkc2Ffc2VjcDI1NnIxLmtleSBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMjU2LUdDTS1TSEEzODQgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDI1NnIxX3NoYTI1NiBncm91cHM9ZmZkaGUyMDQ4IHRsczEzX2tleF9tb2Rlcz1lcGhlbWVyYWwgY29va2llcz0wIHRpY2tldHM9MCIgXAotICAgICAgICAgIiRPX05FWFRfQ0xJX05PX0NFUlQgLUNBZmlsZSBkYXRhX2ZpbGVzL3Rlc3QtY2EyLmNydCAtY2lwaGVyc3VpdGVzIFRMU19BRVNfMjU2X0dDTV9TSEEzODQgLXNpZ2FsZ3MgZWNkc2Ffc2VjcDI1NnIxX3NoYTI1NiAtZ3JvdXBzIGZmZGhlMjA0OCAtbXNnIC10bHMxXzMiIFwKKyAgICAgICAgICIkUF9TUlYgY3J0X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwMjU2cjEuY3J0IGtleV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDI1NnIxLmtleSBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMjU2LUdDTS1TSEEzODQgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDI1NnIxX3NoYTI1NiBncm91cHM9ZmZkaGUyMDQ4IHRsczEzX2tleF9tb2Rlcz1lcGhlbWVyYWwgY29va2llcz0wIHRpY2tldHM9MCIgXAorICAgICAgICAgIiRPX05FWFRfQ0xJX05PX0NFUlQgLUNBZmlsZSAkREFUQV9GSUxFU19QQVRIL3Rlc3QtY2EyLmNydCAtY2lwaGVyc3VpdGVzIFRMU19BRVNfMjU2X0dDTV9TSEEzODQgLXNpZ2FsZ3MgZWNkc2Ffc2VjcDI1NnIxX3NoYTI1NiAtZ3JvdXBzIGZmZGhlMjA0OCAtbXNnIC10bHMxXzMiIFwKICAgICAgICAgIDAgXAogICAgICAgICAgLXMgIlByb3RvY29sIGlzIFRMU3YxLjMiIFwKICAgICAgICAgIC1zICJzZXJ2ZXIgaGVsbG8sIGNob3NlbiBjaXBoZXJzdWl0ZTogVExTMS0zLUFFUy0yNTYtR0NNLVNIQTM4NCAoIGlkPTQ4NjYgKSIgXApAQCAtODAyLDggKzgwNCw4IEBACiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBQU0FfV0FOVF9ESF9SRkM3OTE5XzIwNDgKIHJlcXVpcmVzX29wZW5zc2xfdGxzMV8zX3dpdGhfZmZkaAogcnVuX3Rlc3QgIlRMUyAxLjMgTy0+bTogQUVTXzI1Nl9HQ01fU0hBMzg0LGZmZGhlMjA0OCxlY2RzYV9zZWNwMzg0cjFfc2hhMzg0IiBcCi0gICAgICAgICAiJFBfU1JWIGNydF9maWxlPWRhdGFfZmlsZXMvZWNkc2Ffc2VjcDM4NHIxLmNydCBrZXlfZmlsZT1kYXRhX2ZpbGVzL2VjZHNhX3NlY3AzODRyMS5rZXkgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTI1Ni1HQ00tU0hBMzg0IHNpZ19hbGdzPWVjZHNhX3NlY3AzODRyMV9zaGEzODQgZ3JvdXBzPWZmZGhlMjA0OCB0bHMxM19rZXhfbW9kZXM9ZXBoZW1lcmFsIGNvb2tpZXM9MCB0aWNrZXRzPTAiIFwKLSAgICAgICAgICIkT19ORVhUX0NMSV9OT19DRVJUIC1DQWZpbGUgZGF0YV9maWxlcy90ZXN0LWNhMi5jcnQgLWNpcGhlcnN1aXRlcyBUTFNfQUVTXzI1Nl9HQ01fU0hBMzg0IC1zaWdhbGdzIGVjZHNhX3NlY3AzODRyMV9zaGEzODQgLWdyb3VwcyBmZmRoZTIwNDggLW1zZyAtdGxzMV8zIiBcCisgICAgICAgICAiJFBfU1JWIGNydF9maWxlPSREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDM4NHIxLmNydCBrZXlfZmlsZT0kREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3AzODRyMS5rZXkgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTI1Ni1HQ00tU0hBMzg0IHNpZ19hbGdzPWVjZHNhX3NlY3AzODRyMV9zaGEzODQgZ3JvdXBzPWZmZGhlMjA0OCB0bHMxM19rZXhfbW9kZXM9ZXBoZW1lcmFsIGNvb2tpZXM9MCB0aWNrZXRzPTAiIFwKKyAgICAgICAgICIkT19ORVhUX0NMSV9OT19DRVJUIC1DQWZpbGUgJERBVEFfRklMRVNfUEFUSC90ZXN0LWNhMi5jcnQgLWNpcGhlcnN1aXRlcyBUTFNfQUVTXzI1Nl9HQ01fU0hBMzg0IC1zaWdhbGdzIGVjZHNhX3NlY3AzODRyMV9zaGEzODQgLWdyb3VwcyBmZmRoZTIwNDggLW1zZyAtdGxzMV8zIiBcCiAgICAgICAgICAwIFwKICAgICAgICAgIC1zICJQcm90b2NvbCBpcyBUTFN2MS4zIiBcCiAgICAgICAgICAtcyAic2VydmVyIGhlbGxvLCBjaG9zZW4gY2lwaGVyc3VpdGU6IFRMUzEtMy1BRVMtMjU2LUdDTS1TSEEzODQgKCBpZD00ODY2ICkiIFwKQEAgLTgyMCw4ICs4MjIsOCBAQAogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgUFNBX1dBTlRfREhfUkZDNzkxOV8yMDQ4CiByZXF1aXJlc19vcGVuc3NsX3RsczFfM193aXRoX2ZmZGgKIHJ1bl90ZXN0ICJUTFMgMS4zIE8tPm06IEFFU18yNTZfR0NNX1NIQTM4NCxmZmRoZTIwNDgsZWNkc2Ffc2VjcDUyMXIxX3NoYTUxMiIgXAotICAgICAgICAgIiRQX1NSViBjcnRfZmlsZT1kYXRhX2ZpbGVzL2VjZHNhX3NlY3A1MjFyMS5jcnQga2V5X2ZpbGU9ZGF0YV9maWxlcy9lY2RzYV9zZWNwNTIxcjEua2V5IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0yNTYtR0NNLVNIQTM4NCBzaWdfYWxncz1lY2RzYV9zZWNwNTIxcjFfc2hhNTEyIGdyb3Vwcz1mZmRoZTIwNDggdGxzMTNfa2V4X21vZGVzPWVwaGVtZXJhbCBjb29raWVzPTAgdGlja2V0cz0wIiBcCi0gICAgICAgICAiJE9fTkVYVF9DTElfTk9fQ0VSVCAtQ0FmaWxlIGRhdGFfZmlsZXMvdGVzdC1jYTIuY3J0IC1jaXBoZXJzdWl0ZXMgVExTX0FFU18yNTZfR0NNX1NIQTM4NCAtc2lnYWxncyBlY2RzYV9zZWNwNTIxcjFfc2hhNTEyIC1ncm91cHMgZmZkaGUyMDQ4IC1tc2cgLXRsczFfMyIgXAorICAgICAgICAgIiRQX1NSViBjcnRfZmlsZT0kREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3A1MjFyMS5jcnQga2V5X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwNTIxcjEua2V5IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0yNTYtR0NNLVNIQTM4NCBzaWdfYWxncz1lY2RzYV9zZWNwNTIxcjFfc2hhNTEyIGdyb3Vwcz1mZmRoZTIwNDggdGxzMTNfa2V4X21vZGVzPWVwaGVtZXJhbCBjb29raWVzPTAgdGlja2V0cz0wIiBcCisgICAgICAgICAiJE9fTkVYVF9DTElfTk9fQ0VSVCAtQ0FmaWxlICREQVRBX0ZJTEVTX1BBVEgvdGVzdC1jYTIuY3J0IC1jaXBoZXJzdWl0ZXMgVExTX0FFU18yNTZfR0NNX1NIQTM4NCAtc2lnYWxncyBlY2RzYV9zZWNwNTIxcjFfc2hhNTEyIC1ncm91cHMgZmZkaGUyMDQ4IC1tc2cgLXRsczFfMyIgXAogICAgICAgICAgMCBcCiAgICAgICAgICAtcyAiUHJvdG9jb2wgaXMgVExTdjEuMyIgXAogICAgICAgICAgLXMgInNlcnZlciBoZWxsbywgY2hvc2VuIGNpcGhlcnN1aXRlOiBUTFMxLTMtQUVTLTI1Ni1HQ00tU0hBMzg0ICggaWQ9NDg2NiApIiBcCkBAIC04MzksOCArODQxLDggQEAKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIFBTQV9XQU5UX0RIX1JGQzc5MTlfMjA0OAogcmVxdWlyZXNfb3BlbnNzbF90bHMxXzNfd2l0aF9mZmRoCiBydW5fdGVzdCAiVExTIDEuMyBPLT5tOiBBRVNfMjU2X0dDTV9TSEEzODQsZmZkaGUyMDQ4LHJzYV9wc3NfcnNhZV9zaGEyNTYiIFwKLSAgICAgICAgICIkUF9TUlYgY3J0X2ZpbGU9ZGF0YV9maWxlcy9zZXJ2ZXIyLXNoYTI1Ni5jcnQga2V5X2ZpbGU9ZGF0YV9maWxlcy9zZXJ2ZXIyLmtleSBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMjU2LUdDTS1TSEEzODQgc2lnX2FsZ3M9cnNhX3Bzc19yc2FlX3NoYTI1NiBncm91cHM9ZmZkaGUyMDQ4IHRsczEzX2tleF9tb2Rlcz1lcGhlbWVyYWwgY29va2llcz0wIHRpY2tldHM9MCIgXAotICAgICAgICAgIiRPX05FWFRfQ0xJX05PX0NFUlQgLUNBZmlsZSBkYXRhX2ZpbGVzL3Rlc3QtY2FfY2F0MTIuY3J0IC1jaXBoZXJzdWl0ZXMgVExTX0FFU18yNTZfR0NNX1NIQTM4NCAtc2lnYWxncyByc2FfcHNzX3JzYWVfc2hhMjU2IC1ncm91cHMgZmZkaGUyMDQ4IC1tc2cgLXRsczFfMyIgXAorICAgICAgICAgIiRQX1NSViBjcnRfZmlsZT0kREFUQV9GSUxFU19QQVRIL3NlcnZlcjItc2hhMjU2LmNydCBrZXlfZmlsZT0kREFUQV9GSUxFU19QQVRIL3NlcnZlcjIua2V5IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0yNTYtR0NNLVNIQTM4NCBzaWdfYWxncz1yc2FfcHNzX3JzYWVfc2hhMjU2IGdyb3Vwcz1mZmRoZTIwNDggdGxzMTNfa2V4X21vZGVzPWVwaGVtZXJhbCBjb29raWVzPTAgdGlja2V0cz0wIiBcCisgICAgICAgICAiJE9fTkVYVF9DTElfTk9fQ0VSVCAtQ0FmaWxlICREQVRBX0ZJTEVTX1BBVEgvdGVzdC1jYV9jYXQxMi5jcnQgLWNpcGhlcnN1aXRlcyBUTFNfQUVTXzI1Nl9HQ01fU0hBMzg0IC1zaWdhbGdzIHJzYV9wc3NfcnNhZV9zaGEyNTYgLWdyb3VwcyBmZmRoZTIwNDggLW1zZyAtdGxzMV8zIiBcCiAgICAgICAgICAwIFwKICAgICAgICAgIC1zICJQcm90b2NvbCBpcyBUTFN2MS4zIiBcCiAgICAgICAgICAtcyAic2VydmVyIGhlbGxvLCBjaG9zZW4gY2lwaGVyc3VpdGU6IFRMUzEtMy1BRVMtMjU2LUdDTS1TSEEzODQgKCBpZD00ODY2ICkiIFwKQEAgLTg1Niw4ICs4NTgsOCBAQAogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgUFNBX1dBTlRfQUxHX0VDREgKIHJlcXVpcmVzX29wZW5zc2xfdGxzMV8zCiBydW5fdGVzdCAiVExTIDEuMyBPLT5tOiBDSEFDSEEyMF9QT0xZMTMwNV9TSEEyNTYsc2VjcDI1NnIxLGVjZHNhX3NlY3AyNTZyMV9zaGEyNTYiIFwKLSAgICAgICAgICIkUF9TUlYgY3J0X2ZpbGU9ZGF0YV9maWxlcy9lY2RzYV9zZWNwMjU2cjEuY3J0IGtleV9maWxlPWRhdGFfZmlsZXMvZWNkc2Ffc2VjcDI1NnIxLmtleSBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1DSEFDSEEyMC1QT0xZMTMwNS1TSEEyNTYgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDI1NnIxX3NoYTI1NiBncm91cHM9c2VjcDI1NnIxIHRsczEzX2tleF9tb2Rlcz1lcGhlbWVyYWwgY29va2llcz0wIHRpY2tldHM9MCIgXAotICAgICAgICAgIiRPX05FWFRfQ0xJX05PX0NFUlQgLUNBZmlsZSBkYXRhX2ZpbGVzL3Rlc3QtY2EyLmNydCAtY2lwaGVyc3VpdGVzIFRMU19DSEFDSEEyMF9QT0xZMTMwNV9TSEEyNTYgLXNpZ2FsZ3MgZWNkc2Ffc2VjcDI1NnIxX3NoYTI1NiAtZ3JvdXBzIFAtMjU2IC1tc2cgLXRsczFfMyIgXAorICAgICAgICAgIiRQX1NSViBjcnRfZmlsZT0kREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3AyNTZyMS5jcnQga2V5X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwMjU2cjEua2V5IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUNIQUNIQTIwLVBPTFkxMzA1LVNIQTI1NiBzaWdfYWxncz1lY2RzYV9zZWNwMjU2cjFfc2hhMjU2IGdyb3Vwcz1zZWNwMjU2cjEgdGxzMTNfa2V4X21vZGVzPWVwaGVtZXJhbCBjb29raWVzPTAgdGlja2V0cz0wIiBcCisgICAgICAgICAiJE9fTkVYVF9DTElfTk9fQ0VSVCAtQ0FmaWxlICREQVRBX0ZJTEVTX1BBVEgvdGVzdC1jYTIuY3J0IC1jaXBoZXJzdWl0ZXMgVExTX0NIQUNIQTIwX1BPTFkxMzA1X1NIQTI1NiAtc2lnYWxncyBlY2RzYV9zZWNwMjU2cjFfc2hhMjU2IC1ncm91cHMgUC0yNTYgLW1zZyAtdGxzMV8zIiBcCiAgICAgICAgICAwIFwKICAgICAgICAgIC1zICJQcm90b2NvbCBpcyBUTFN2MS4zIiBcCiAgICAgICAgICAtcyAic2VydmVyIGhlbGxvLCBjaG9zZW4gY2lwaGVyc3VpdGU6IFRMUzEtMy1DSEFDSEEyMC1QT0xZMTMwNS1TSEEyNTYgKCBpZD00ODY3ICkiIFwKQEAgLTg3Myw4ICs4NzUsOCBAQAogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgUFNBX1dBTlRfQUxHX0VDREgKIHJlcXVpcmVzX29wZW5zc2xfdGxzMV8zCiBydW5fdGVzdCAiVExTIDEuMyBPLT5tOiBDSEFDSEEyMF9QT0xZMTMwNV9TSEEyNTYsc2VjcDI1NnIxLGVjZHNhX3NlY3AzODRyMV9zaGEzODQiIFwKLSAgICAgICAgICIkUF9TUlYgY3J0X2ZpbGU9ZGF0YV9maWxlcy9lY2RzYV9zZWNwMzg0cjEuY3J0IGtleV9maWxlPWRhdGFfZmlsZXMvZWNkc2Ffc2VjcDM4NHIxLmtleSBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1DSEFDSEEyMC1QT0xZMTMwNS1TSEEyNTYgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDM4NHIxX3NoYTM4NCBncm91cHM9c2VjcDI1NnIxIHRsczEzX2tleF9tb2Rlcz1lcGhlbWVyYWwgY29va2llcz0wIHRpY2tldHM9MCIgXAotICAgICAgICAgIiRPX05FWFRfQ0xJX05PX0NFUlQgLUNBZmlsZSBkYXRhX2ZpbGVzL3Rlc3QtY2EyLmNydCAtY2lwaGVyc3VpdGVzIFRMU19DSEFDSEEyMF9QT0xZMTMwNV9TSEEyNTYgLXNpZ2FsZ3MgZWNkc2Ffc2VjcDM4NHIxX3NoYTM4NCAtZ3JvdXBzIFAtMjU2IC1tc2cgLXRsczFfMyIgXAorICAgICAgICAgIiRQX1NSViBjcnRfZmlsZT0kREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3AzODRyMS5jcnQga2V5X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwMzg0cjEua2V5IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUNIQUNIQTIwLVBPTFkxMzA1LVNIQTI1NiBzaWdfYWxncz1lY2RzYV9zZWNwMzg0cjFfc2hhMzg0IGdyb3Vwcz1zZWNwMjU2cjEgdGxzMTNfa2V4X21vZGVzPWVwaGVtZXJhbCBjb29raWVzPTAgdGlja2V0cz0wIiBcCisgICAgICAgICAiJE9fTkVYVF9DTElfTk9fQ0VSVCAtQ0FmaWxlICREQVRBX0ZJTEVTX1BBVEgvdGVzdC1jYTIuY3J0IC1jaXBoZXJzdWl0ZXMgVExTX0NIQUNIQTIwX1BPTFkxMzA1X1NIQTI1NiAtc2lnYWxncyBlY2RzYV9zZWNwMzg0cjFfc2hhMzg0IC1ncm91cHMgUC0yNTYgLW1zZyAtdGxzMV8zIiBcCiAgICAgICAgICAwIFwKICAgICAgICAgIC1zICJQcm90b2NvbCBpcyBUTFN2MS4zIiBcCiAgICAgICAgICAtcyAic2VydmVyIGhlbGxvLCBjaG9zZW4gY2lwaGVyc3VpdGU6IFRMUzEtMy1DSEFDSEEyMC1QT0xZMTMwNS1TSEEyNTYgKCBpZD00ODY3ICkiIFwKQEAgLTg5MCw4ICs4OTIsOCBAQAogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgUFNBX1dBTlRfQUxHX0VDREgKIHJlcXVpcmVzX29wZW5zc2xfdGxzMV8zCiBydW5fdGVzdCAiVExTIDEuMyBPLT5tOiBDSEFDSEEyMF9QT0xZMTMwNV9TSEEyNTYsc2VjcDI1NnIxLGVjZHNhX3NlY3A1MjFyMV9zaGE1MTIiIFwKLSAgICAgICAgICIkUF9TUlYgY3J0X2ZpbGU9ZGF0YV9maWxlcy9lY2RzYV9zZWNwNTIxcjEuY3J0IGtleV9maWxlPWRhdGFfZmlsZXMvZWNkc2Ffc2VjcDUyMXIxLmtleSBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1DSEFDSEEyMC1QT0xZMTMwNS1TSEEyNTYgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDUyMXIxX3NoYTUxMiBncm91cHM9c2VjcDI1NnIxIHRsczEzX2tleF9tb2Rlcz1lcGhlbWVyYWwgY29va2llcz0wIHRpY2tldHM9MCIgXAotICAgICAgICAgIiRPX05FWFRfQ0xJX05PX0NFUlQgLUNBZmlsZSBkYXRhX2ZpbGVzL3Rlc3QtY2EyLmNydCAtY2lwaGVyc3VpdGVzIFRMU19DSEFDSEEyMF9QT0xZMTMwNV9TSEEyNTYgLXNpZ2FsZ3MgZWNkc2Ffc2VjcDUyMXIxX3NoYTUxMiAtZ3JvdXBzIFAtMjU2IC1tc2cgLXRsczFfMyIgXAorICAgICAgICAgIiRQX1NSViBjcnRfZmlsZT0kREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3A1MjFyMS5jcnQga2V5X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwNTIxcjEua2V5IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUNIQUNIQTIwLVBPTFkxMzA1LVNIQTI1NiBzaWdfYWxncz1lY2RzYV9zZWNwNTIxcjFfc2hhNTEyIGdyb3Vwcz1zZWNwMjU2cjEgdGxzMTNfa2V4X21vZGVzPWVwaGVtZXJhbCBjb29raWVzPTAgdGlja2V0cz0wIiBcCisgICAgICAgICAiJE9fTkVYVF9DTElfTk9fQ0VSVCAtQ0FmaWxlICREQVRBX0ZJTEVTX1BBVEgvdGVzdC1jYTIuY3J0IC1jaXBoZXJzdWl0ZXMgVExTX0NIQUNIQTIwX1BPTFkxMzA1X1NIQTI1NiAtc2lnYWxncyBlY2RzYV9zZWNwNTIxcjFfc2hhNTEyIC1ncm91cHMgUC0yNTYgLW1zZyAtdGxzMV8zIiBcCiAgICAgICAgICAwIFwKICAgICAgICAgIC1zICJQcm90b2NvbCBpcyBUTFN2MS4zIiBcCiAgICAgICAgICAtcyAic2VydmVyIGhlbGxvLCBjaG9zZW4gY2lwaGVyc3VpdGU6IFRMUzEtMy1DSEFDSEEyMC1QT0xZMTMwNS1TSEEyNTYgKCBpZD00ODY3ICkiIFwKQEAgLTkwOCw4ICs5MTAsOCBAQAogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgUFNBX1dBTlRfQUxHX0VDREgKIHJlcXVpcmVzX29wZW5zc2xfdGxzMV8zCiBydW5fdGVzdCAiVExTIDEuMyBPLT5tOiBDSEFDSEEyMF9QT0xZMTMwNV9TSEEyNTYsc2VjcDI1NnIxLHJzYV9wc3NfcnNhZV9zaGEyNTYiIFwKLSAgICAgICAgICIkUF9TUlYgY3J0X2ZpbGU9ZGF0YV9maWxlcy9zZXJ2ZXIyLXNoYTI1Ni5jcnQga2V5X2ZpbGU9ZGF0YV9maWxlcy9zZXJ2ZXIyLmtleSBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1DSEFDSEEyMC1QT0xZMTMwNS1TSEEyNTYgc2lnX2FsZ3M9cnNhX3Bzc19yc2FlX3NoYTI1NiBncm91cHM9c2VjcDI1NnIxIHRsczEzX2tleF9tb2Rlcz1lcGhlbWVyYWwgY29va2llcz0wIHRpY2tldHM9MCIgXAotICAgICAgICAgIiRPX05FWFRfQ0xJX05PX0NFUlQgLUNBZmlsZSBkYXRhX2ZpbGVzL3Rlc3QtY2FfY2F0MTIuY3J0IC1jaXBoZXJzdWl0ZXMgVExTX0NIQUNIQTIwX1BPTFkxMzA1X1NIQTI1NiAtc2lnYWxncyByc2FfcHNzX3JzYWVfc2hhMjU2IC1ncm91cHMgUC0yNTYgLW1zZyAtdGxzMV8zIiBcCisgICAgICAgICAiJFBfU1JWIGNydF9maWxlPSREQVRBX0ZJTEVTX1BBVEgvc2VydmVyMi1zaGEyNTYuY3J0IGtleV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvc2VydmVyMi5rZXkgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQ0hBQ0hBMjAtUE9MWTEzMDUtU0hBMjU2IHNpZ19hbGdzPXJzYV9wc3NfcnNhZV9zaGEyNTYgZ3JvdXBzPXNlY3AyNTZyMSB0bHMxM19rZXhfbW9kZXM9ZXBoZW1lcmFsIGNvb2tpZXM9MCB0aWNrZXRzPTAiIFwKKyAgICAgICAgICIkT19ORVhUX0NMSV9OT19DRVJUIC1DQWZpbGUgJERBVEFfRklMRVNfUEFUSC90ZXN0LWNhX2NhdDEyLmNydCAtY2lwaGVyc3VpdGVzIFRMU19DSEFDSEEyMF9QT0xZMTMwNV9TSEEyNTYgLXNpZ2FsZ3MgcnNhX3Bzc19yc2FlX3NoYTI1NiAtZ3JvdXBzIFAtMjU2IC1tc2cgLXRsczFfMyIgXAogICAgICAgICAgMCBcCiAgICAgICAgICAtcyAiUHJvdG9jb2wgaXMgVExTdjEuMyIgXAogICAgICAgICAgLXMgInNlcnZlciBoZWxsbywgY2hvc2VuIGNpcGhlcnN1aXRlOiBUTFMxLTMtQ0hBQ0hBMjAtUE9MWTEzMDUtU0hBMjU2ICggaWQ9NDg2NyApIiBcCkBAIC05MjUsOCArOTI3LDggQEAKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIFBTQV9XQU5UX0FMR19FQ0RICiByZXF1aXJlc19vcGVuc3NsX3RsczFfMwogcnVuX3Rlc3QgIlRMUyAxLjMgTy0+bTogQ0hBQ0hBMjBfUE9MWTEzMDVfU0hBMjU2LHNlY3AzODRyMSxlY2RzYV9zZWNwMjU2cjFfc2hhMjU2IiBcCi0gICAgICAgICAiJFBfU1JWIGNydF9maWxlPWRhdGFfZmlsZXMvZWNkc2Ffc2VjcDI1NnIxLmNydCBrZXlfZmlsZT1kYXRhX2ZpbGVzL2VjZHNhX3NlY3AyNTZyMS5rZXkgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQ0hBQ0hBMjAtUE9MWTEzMDUtU0hBMjU2IHNpZ19hbGdzPWVjZHNhX3NlY3AyNTZyMV9zaGEyNTYgZ3JvdXBzPXNlY3AzODRyMSB0bHMxM19rZXhfbW9kZXM9ZXBoZW1lcmFsIGNvb2tpZXM9MCB0aWNrZXRzPTAiIFwKLSAgICAgICAgICIkT19ORVhUX0NMSV9OT19DRVJUIC1DQWZpbGUgZGF0YV9maWxlcy90ZXN0LWNhMi5jcnQgLWNpcGhlcnN1aXRlcyBUTFNfQ0hBQ0hBMjBfUE9MWTEzMDVfU0hBMjU2IC1zaWdhbGdzIGVjZHNhX3NlY3AyNTZyMV9zaGEyNTYgLWdyb3VwcyBQLTM4NCAtbXNnIC10bHMxXzMiIFwKKyAgICAgICAgICIkUF9TUlYgY3J0X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwMjU2cjEuY3J0IGtleV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDI1NnIxLmtleSBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1DSEFDSEEyMC1QT0xZMTMwNS1TSEEyNTYgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDI1NnIxX3NoYTI1NiBncm91cHM9c2VjcDM4NHIxIHRsczEzX2tleF9tb2Rlcz1lcGhlbWVyYWwgY29va2llcz0wIHRpY2tldHM9MCIgXAorICAgICAgICAgIiRPX05FWFRfQ0xJX05PX0NFUlQgLUNBZmlsZSAkREFUQV9GSUxFU19QQVRIL3Rlc3QtY2EyLmNydCAtY2lwaGVyc3VpdGVzIFRMU19DSEFDSEEyMF9QT0xZMTMwNV9TSEEyNTYgLXNpZ2FsZ3MgZWNkc2Ffc2VjcDI1NnIxX3NoYTI1NiAtZ3JvdXBzIFAtMzg0IC1tc2cgLXRsczFfMyIgXAogICAgICAgICAgMCBcCiAgICAgICAgICAtcyAiUHJvdG9jb2wgaXMgVExTdjEuMyIgXAogICAgICAgICAgLXMgInNlcnZlciBoZWxsbywgY2hvc2VuIGNpcGhlcnN1aXRlOiBUTFMxLTMtQ0hBQ0hBMjAtUE9MWTEzMDUtU0hBMjU2ICggaWQ9NDg2NyApIiBcCkBAIC05NDIsOCArOTQ0LDggQEAKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIFBTQV9XQU5UX0FMR19FQ0RICiByZXF1aXJlc19vcGVuc3NsX3RsczFfMwogcnVuX3Rlc3QgIlRMUyAxLjMgTy0+bTogQ0hBQ0hBMjBfUE9MWTEzMDVfU0hBMjU2LHNlY3AzODRyMSxlY2RzYV9zZWNwMzg0cjFfc2hhMzg0IiBcCi0gICAgICAgICAiJFBfU1JWIGNydF9maWxlPWRhdGFfZmlsZXMvZWNkc2Ffc2VjcDM4NHIxLmNydCBrZXlfZmlsZT1kYXRhX2ZpbGVzL2VjZHNhX3NlY3AzODRyMS5rZXkgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQ0hBQ0hBMjAtUE9MWTEzMDUtU0hBMjU2IHNpZ19hbGdzPWVjZHNhX3NlY3AzODRyMV9zaGEzODQgZ3JvdXBzPXNlY3AzODRyMSB0bHMxM19rZXhfbW9kZXM9ZXBoZW1lcmFsIGNvb2tpZXM9MCB0aWNrZXRzPTAiIFwKLSAgICAgICAgICIkT19ORVhUX0NMSV9OT19DRVJUIC1DQWZpbGUgZGF0YV9maWxlcy90ZXN0LWNhMi5jcnQgLWNpcGhlcnN1aXRlcyBUTFNfQ0hBQ0hBMjBfUE9MWTEzMDVfU0hBMjU2IC1zaWdhbGdzIGVjZHNhX3NlY3AzODRyMV9zaGEzODQgLWdyb3VwcyBQLTM4NCAtbXNnIC10bHMxXzMiIFwKKyAgICAgICAgICIkUF9TUlYgY3J0X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwMzg0cjEuY3J0IGtleV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDM4NHIxLmtleSBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1DSEFDSEEyMC1QT0xZMTMwNS1TSEEyNTYgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDM4NHIxX3NoYTM4NCBncm91cHM9c2VjcDM4NHIxIHRsczEzX2tleF9tb2Rlcz1lcGhlbWVyYWwgY29va2llcz0wIHRpY2tldHM9MCIgXAorICAgICAgICAgIiRPX05FWFRfQ0xJX05PX0NFUlQgLUNBZmlsZSAkREFUQV9GSUxFU19QQVRIL3Rlc3QtY2EyLmNydCAtY2lwaGVyc3VpdGVzIFRMU19DSEFDSEEyMF9QT0xZMTMwNV9TSEEyNTYgLXNpZ2FsZ3MgZWNkc2Ffc2VjcDM4NHIxX3NoYTM4NCAtZ3JvdXBzIFAtMzg0IC1tc2cgLXRsczFfMyIgXAogICAgICAgICAgMCBcCiAgICAgICAgICAtcyAiUHJvdG9jb2wgaXMgVExTdjEuMyIgXAogICAgICAgICAgLXMgInNlcnZlciBoZWxsbywgY2hvc2VuIGNpcGhlcnN1aXRlOiBUTFMxLTMtQ0hBQ0hBMjAtUE9MWTEzMDUtU0hBMjU2ICggaWQ9NDg2NyApIiBcCkBAIC05NTksOCArOTYxLDggQEAKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIFBTQV9XQU5UX0FMR19FQ0RICiByZXF1aXJlc19vcGVuc3NsX3RsczFfMwogcnVuX3Rlc3QgIlRMUyAxLjMgTy0+bTogQ0hBQ0hBMjBfUE9MWTEzMDVfU0hBMjU2LHNlY3AzODRyMSxlY2RzYV9zZWNwNTIxcjFfc2hhNTEyIiBcCi0gICAgICAgICAiJFBfU1JWIGNydF9maWxlPWRhdGFfZmlsZXMvZWNkc2Ffc2VjcDUyMXIxLmNydCBrZXlfZmlsZT1kYXRhX2ZpbGVzL2VjZHNhX3NlY3A1MjFyMS5rZXkgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQ0hBQ0hBMjAtUE9MWTEzMDUtU0hBMjU2IHNpZ19hbGdzPWVjZHNhX3NlY3A1MjFyMV9zaGE1MTIgZ3JvdXBzPXNlY3AzODRyMSB0bHMxM19rZXhfbW9kZXM9ZXBoZW1lcmFsIGNvb2tpZXM9MCB0aWNrZXRzPTAiIFwKLSAgICAgICAgICIkT19ORVhUX0NMSV9OT19DRVJUIC1DQWZpbGUgZGF0YV9maWxlcy90ZXN0LWNhMi5jcnQgLWNpcGhlcnN1aXRlcyBUTFNfQ0hBQ0hBMjBfUE9MWTEzMDVfU0hBMjU2IC1zaWdhbGdzIGVjZHNhX3NlY3A1MjFyMV9zaGE1MTIgLWdyb3VwcyBQLTM4NCAtbXNnIC10bHMxXzMiIFwKKyAgICAgICAgICIkUF9TUlYgY3J0X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwNTIxcjEuY3J0IGtleV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDUyMXIxLmtleSBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1DSEFDSEEyMC1QT0xZMTMwNS1TSEEyNTYgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDUyMXIxX3NoYTUxMiBncm91cHM9c2VjcDM4NHIxIHRsczEzX2tleF9tb2Rlcz1lcGhlbWVyYWwgY29va2llcz0wIHRpY2tldHM9MCIgXAorICAgICAgICAgIiRPX05FWFRfQ0xJX05PX0NFUlQgLUNBZmlsZSAkREFUQV9GSUxFU19QQVRIL3Rlc3QtY2EyLmNydCAtY2lwaGVyc3VpdGVzIFRMU19DSEFDSEEyMF9QT0xZMTMwNV9TSEEyNTYgLXNpZ2FsZ3MgZWNkc2Ffc2VjcDUyMXIxX3NoYTUxMiAtZ3JvdXBzIFAtMzg0IC1tc2cgLXRsczFfMyIgXAogICAgICAgICAgMCBcCiAgICAgICAgICAtcyAiUHJvdG9jb2wgaXMgVExTdjEuMyIgXAogICAgICAgICAgLXMgInNlcnZlciBoZWxsbywgY2hvc2VuIGNpcGhlcnN1aXRlOiBUTFMxLTMtQ0hBQ0hBMjAtUE9MWTEzMDUtU0hBMjU2ICggaWQ9NDg2NyApIiBcCkBAIC05NzcsOCArOTc5LDggQEAKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIFBTQV9XQU5UX0FMR19FQ0RICiByZXF1aXJlc19vcGVuc3NsX3RsczFfMwogcnVuX3Rlc3QgIlRMUyAxLjMgTy0+bTogQ0hBQ0hBMjBfUE9MWTEzMDVfU0hBMjU2LHNlY3AzODRyMSxyc2FfcHNzX3JzYWVfc2hhMjU2IiBcCi0gICAgICAgICAiJFBfU1JWIGNydF9maWxlPWRhdGFfZmlsZXMvc2VydmVyMi1zaGEyNTYuY3J0IGtleV9maWxlPWRhdGFfZmlsZXMvc2VydmVyMi5rZXkgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQ0hBQ0hBMjAtUE9MWTEzMDUtU0hBMjU2IHNpZ19hbGdzPXJzYV9wc3NfcnNhZV9zaGEyNTYgZ3JvdXBzPXNlY3AzODRyMSB0bHMxM19rZXhfbW9kZXM9ZXBoZW1lcmFsIGNvb2tpZXM9MCB0aWNrZXRzPTAiIFwKLSAgICAgICAgICIkT19ORVhUX0NMSV9OT19DRVJUIC1DQWZpbGUgZGF0YV9maWxlcy90ZXN0LWNhX2NhdDEyLmNydCAtY2lwaGVyc3VpdGVzIFRMU19DSEFDSEEyMF9QT0xZMTMwNV9TSEEyNTYgLXNpZ2FsZ3MgcnNhX3Bzc19yc2FlX3NoYTI1NiAtZ3JvdXBzIFAtMzg0IC1tc2cgLXRsczFfMyIgXAorICAgICAgICAgIiRQX1NSViBjcnRfZmlsZT0kREFUQV9GSUxFU19QQVRIL3NlcnZlcjItc2hhMjU2LmNydCBrZXlfZmlsZT0kREFUQV9GSUxFU19QQVRIL3NlcnZlcjIua2V5IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUNIQUNIQTIwLVBPTFkxMzA1LVNIQTI1NiBzaWdfYWxncz1yc2FfcHNzX3JzYWVfc2hhMjU2IGdyb3Vwcz1zZWNwMzg0cjEgdGxzMTNfa2V4X21vZGVzPWVwaGVtZXJhbCBjb29raWVzPTAgdGlja2V0cz0wIiBcCisgICAgICAgICAiJE9fTkVYVF9DTElfTk9fQ0VSVCAtQ0FmaWxlICREQVRBX0ZJTEVTX1BBVEgvdGVzdC1jYV9jYXQxMi5jcnQgLWNpcGhlcnN1aXRlcyBUTFNfQ0hBQ0hBMjBfUE9MWTEzMDVfU0hBMjU2IC1zaWdhbGdzIHJzYV9wc3NfcnNhZV9zaGEyNTYgLWdyb3VwcyBQLTM4NCAtbXNnIC10bHMxXzMiIFwKICAgICAgICAgIDAgXAogICAgICAgICAgLXMgIlByb3RvY29sIGlzIFRMU3YxLjMiIFwKICAgICAgICAgIC1zICJzZXJ2ZXIgaGVsbG8sIGNob3NlbiBjaXBoZXJzdWl0ZTogVExTMS0zLUNIQUNIQTIwLVBPTFkxMzA1LVNIQTI1NiAoIGlkPTQ4NjcgKSIgXApAQCAtOTk0LDggKzk5Niw4IEBACiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBQU0FfV0FOVF9BTEdfRUNESAogcmVxdWlyZXNfb3BlbnNzbF90bHMxXzMKIHJ1bl90ZXN0ICJUTFMgMS4zIE8tPm06IENIQUNIQTIwX1BPTFkxMzA1X1NIQTI1NixzZWNwNTIxcjEsZWNkc2Ffc2VjcDI1NnIxX3NoYTI1NiIgXAotICAgICAgICAgIiRQX1NSViBjcnRfZmlsZT1kYXRhX2ZpbGVzL2VjZHNhX3NlY3AyNTZyMS5jcnQga2V5X2ZpbGU9ZGF0YV9maWxlcy9lY2RzYV9zZWNwMjU2cjEua2V5IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUNIQUNIQTIwLVBPTFkxMzA1LVNIQTI1NiBzaWdfYWxncz1lY2RzYV9zZWNwMjU2cjFfc2hhMjU2IGdyb3Vwcz1zZWNwNTIxcjEgdGxzMTNfa2V4X21vZGVzPWVwaGVtZXJhbCBjb29raWVzPTAgdGlja2V0cz0wIiBcCi0gICAgICAgICAiJE9fTkVYVF9DTElfTk9fQ0VSVCAtQ0FmaWxlIGRhdGFfZmlsZXMvdGVzdC1jYTIuY3J0IC1jaXBoZXJzdWl0ZXMgVExTX0NIQUNIQTIwX1BPTFkxMzA1X1NIQTI1NiAtc2lnYWxncyBlY2RzYV9zZWNwMjU2cjFfc2hhMjU2IC1ncm91cHMgUC01MjEgLW1zZyAtdGxzMV8zIiBcCisgICAgICAgICAiJFBfU1JWIGNydF9maWxlPSREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDI1NnIxLmNydCBrZXlfZmlsZT0kREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3AyNTZyMS5rZXkgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQ0hBQ0hBMjAtUE9MWTEzMDUtU0hBMjU2IHNpZ19hbGdzPWVjZHNhX3NlY3AyNTZyMV9zaGEyNTYgZ3JvdXBzPXNlY3A1MjFyMSB0bHMxM19rZXhfbW9kZXM9ZXBoZW1lcmFsIGNvb2tpZXM9MCB0aWNrZXRzPTAiIFwKKyAgICAgICAgICIkT19ORVhUX0NMSV9OT19DRVJUIC1DQWZpbGUgJERBVEFfRklMRVNfUEFUSC90ZXN0LWNhMi5jcnQgLWNpcGhlcnN1aXRlcyBUTFNfQ0hBQ0hBMjBfUE9MWTEzMDVfU0hBMjU2IC1zaWdhbGdzIGVjZHNhX3NlY3AyNTZyMV9zaGEyNTYgLWdyb3VwcyBQLTUyMSAtbXNnIC10bHMxXzMiIFwKICAgICAgICAgIDAgXAogICAgICAgICAgLXMgIlByb3RvY29sIGlzIFRMU3YxLjMiIFwKICAgICAgICAgIC1zICJzZXJ2ZXIgaGVsbG8sIGNob3NlbiBjaXBoZXJzdWl0ZTogVExTMS0zLUNIQUNIQTIwLVBPTFkxMzA1LVNIQTI1NiAoIGlkPTQ4NjcgKSIgXApAQCAtMTAxMSw4ICsxMDEzLDggQEAKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIFBTQV9XQU5UX0FMR19FQ0RICiByZXF1aXJlc19vcGVuc3NsX3RsczFfMwogcnVuX3Rlc3QgIlRMUyAxLjMgTy0+bTogQ0hBQ0hBMjBfUE9MWTEzMDVfU0hBMjU2LHNlY3A1MjFyMSxlY2RzYV9zZWNwMzg0cjFfc2hhMzg0IiBcCi0gICAgICAgICAiJFBfU1JWIGNydF9maWxlPWRhdGFfZmlsZXMvZWNkc2Ffc2VjcDM4NHIxLmNydCBrZXlfZmlsZT1kYXRhX2ZpbGVzL2VjZHNhX3NlY3AzODRyMS5rZXkgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQ0hBQ0hBMjAtUE9MWTEzMDUtU0hBMjU2IHNpZ19hbGdzPWVjZHNhX3NlY3AzODRyMV9zaGEzODQgZ3JvdXBzPXNlY3A1MjFyMSB0bHMxM19rZXhfbW9kZXM9ZXBoZW1lcmFsIGNvb2tpZXM9MCB0aWNrZXRzPTAiIFwKLSAgICAgICAgICIkT19ORVhUX0NMSV9OT19DRVJUIC1DQWZpbGUgZGF0YV9maWxlcy90ZXN0LWNhMi5jcnQgLWNpcGhlcnN1aXRlcyBUTFNfQ0hBQ0hBMjBfUE9MWTEzMDVfU0hBMjU2IC1zaWdhbGdzIGVjZHNhX3NlY3AzODRyMV9zaGEzODQgLWdyb3VwcyBQLTUyMSAtbXNnIC10bHMxXzMiIFwKKyAgICAgICAgICIkUF9TUlYgY3J0X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwMzg0cjEuY3J0IGtleV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDM4NHIxLmtleSBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1DSEFDSEEyMC1QT0xZMTMwNS1TSEEyNTYgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDM4NHIxX3NoYTM4NCBncm91cHM9c2VjcDUyMXIxIHRsczEzX2tleF9tb2Rlcz1lcGhlbWVyYWwgY29va2llcz0wIHRpY2tldHM9MCIgXAorICAgICAgICAgIiRPX05FWFRfQ0xJX05PX0NFUlQgLUNBZmlsZSAkREFUQV9GSUxFU19QQVRIL3Rlc3QtY2EyLmNydCAtY2lwaGVyc3VpdGVzIFRMU19DSEFDSEEyMF9QT0xZMTMwNV9TSEEyNTYgLXNpZ2FsZ3MgZWNkc2Ffc2VjcDM4NHIxX3NoYTM4NCAtZ3JvdXBzIFAtNTIxIC1tc2cgLXRsczFfMyIgXAogICAgICAgICAgMCBcCiAgICAgICAgICAtcyAiUHJvdG9jb2wgaXMgVExTdjEuMyIgXAogICAgICAgICAgLXMgInNlcnZlciBoZWxsbywgY2hvc2VuIGNpcGhlcnN1aXRlOiBUTFMxLTMtQ0hBQ0hBMjAtUE9MWTEzMDUtU0hBMjU2ICggaWQ9NDg2NyApIiBcCkBAIC0xMDI4LDggKzEwMzAsOCBAQAogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgUFNBX1dBTlRfQUxHX0VDREgKIHJlcXVpcmVzX29wZW5zc2xfdGxzMV8zCiBydW5fdGVzdCAiVExTIDEuMyBPLT5tOiBDSEFDSEEyMF9QT0xZMTMwNV9TSEEyNTYsc2VjcDUyMXIxLGVjZHNhX3NlY3A1MjFyMV9zaGE1MTIiIFwKLSAgICAgICAgICIkUF9TUlYgY3J0X2ZpbGU9ZGF0YV9maWxlcy9lY2RzYV9zZWNwNTIxcjEuY3J0IGtleV9maWxlPWRhdGFfZmlsZXMvZWNkc2Ffc2VjcDUyMXIxLmtleSBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1DSEFDSEEyMC1QT0xZMTMwNS1TSEEyNTYgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDUyMXIxX3NoYTUxMiBncm91cHM9c2VjcDUyMXIxIHRsczEzX2tleF9tb2Rlcz1lcGhlbWVyYWwgY29va2llcz0wIHRpY2tldHM9MCIgXAotICAgICAgICAgIiRPX05FWFRfQ0xJX05PX0NFUlQgLUNBZmlsZSBkYXRhX2ZpbGVzL3Rlc3QtY2EyLmNydCAtY2lwaGVyc3VpdGVzIFRMU19DSEFDSEEyMF9QT0xZMTMwNV9TSEEyNTYgLXNpZ2FsZ3MgZWNkc2Ffc2VjcDUyMXIxX3NoYTUxMiAtZ3JvdXBzIFAtNTIxIC1tc2cgLXRsczFfMyIgXAorICAgICAgICAgIiRQX1NSViBjcnRfZmlsZT0kREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3A1MjFyMS5jcnQga2V5X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwNTIxcjEua2V5IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUNIQUNIQTIwLVBPTFkxMzA1LVNIQTI1NiBzaWdfYWxncz1lY2RzYV9zZWNwNTIxcjFfc2hhNTEyIGdyb3Vwcz1zZWNwNTIxcjEgdGxzMTNfa2V4X21vZGVzPWVwaGVtZXJhbCBjb29raWVzPTAgdGlja2V0cz0wIiBcCisgICAgICAgICAiJE9fTkVYVF9DTElfTk9fQ0VSVCAtQ0FmaWxlICREQVRBX0ZJTEVTX1BBVEgvdGVzdC1jYTIuY3J0IC1jaXBoZXJzdWl0ZXMgVExTX0NIQUNIQTIwX1BPTFkxMzA1X1NIQTI1NiAtc2lnYWxncyBlY2RzYV9zZWNwNTIxcjFfc2hhNTEyIC1ncm91cHMgUC01MjEgLW1zZyAtdGxzMV8zIiBcCiAgICAgICAgICAwIFwKICAgICAgICAgIC1zICJQcm90b2NvbCBpcyBUTFN2MS4zIiBcCiAgICAgICAgICAtcyAic2VydmVyIGhlbGxvLCBjaG9zZW4gY2lwaGVyc3VpdGU6IFRMUzEtMy1DSEFDSEEyMC1QT0xZMTMwNS1TSEEyNTYgKCBpZD00ODY3ICkiIFwKQEAgLTEwNDYsOCArMTA0OCw4IEBACiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBQU0FfV0FOVF9BTEdfRUNESAogcmVxdWlyZXNfb3BlbnNzbF90bHMxXzMKIHJ1bl90ZXN0ICJUTFMgMS4zIE8tPm06IENIQUNIQTIwX1BPTFkxMzA1X1NIQTI1NixzZWNwNTIxcjEscnNhX3Bzc19yc2FlX3NoYTI1NiIgXAotICAgICAgICAgIiRQX1NSViBjcnRfZmlsZT1kYXRhX2ZpbGVzL3NlcnZlcjItc2hhMjU2LmNydCBrZXlfZmlsZT1kYXRhX2ZpbGVzL3NlcnZlcjIua2V5IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUNIQUNIQTIwLVBPTFkxMzA1LVNIQTI1NiBzaWdfYWxncz1yc2FfcHNzX3JzYWVfc2hhMjU2IGdyb3Vwcz1zZWNwNTIxcjEgdGxzMTNfa2V4X21vZGVzPWVwaGVtZXJhbCBjb29raWVzPTAgdGlja2V0cz0wIiBcCi0gICAgICAgICAiJE9fTkVYVF9DTElfTk9fQ0VSVCAtQ0FmaWxlIGRhdGFfZmlsZXMvdGVzdC1jYV9jYXQxMi5jcnQgLWNpcGhlcnN1aXRlcyBUTFNfQ0hBQ0hBMjBfUE9MWTEzMDVfU0hBMjU2IC1zaWdhbGdzIHJzYV9wc3NfcnNhZV9zaGEyNTYgLWdyb3VwcyBQLTUyMSAtbXNnIC10bHMxXzMiIFwKKyAgICAgICAgICIkUF9TUlYgY3J0X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9zZXJ2ZXIyLXNoYTI1Ni5jcnQga2V5X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9zZXJ2ZXIyLmtleSBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1DSEFDSEEyMC1QT0xZMTMwNS1TSEEyNTYgc2lnX2FsZ3M9cnNhX3Bzc19yc2FlX3NoYTI1NiBncm91cHM9c2VjcDUyMXIxIHRsczEzX2tleF9tb2Rlcz1lcGhlbWVyYWwgY29va2llcz0wIHRpY2tldHM9MCIgXAorICAgICAgICAgIiRPX05FWFRfQ0xJX05PX0NFUlQgLUNBZmlsZSAkREFUQV9GSUxFU19QQVRIL3Rlc3QtY2FfY2F0MTIuY3J0IC1jaXBoZXJzdWl0ZXMgVExTX0NIQUNIQTIwX1BPTFkxMzA1X1NIQTI1NiAtc2lnYWxncyByc2FfcHNzX3JzYWVfc2hhMjU2IC1ncm91cHMgUC01MjEgLW1zZyAtdGxzMV8zIiBcCiAgICAgICAgICAwIFwKICAgICAgICAgIC1zICJQcm90b2NvbCBpcyBUTFN2MS4zIiBcCiAgICAgICAgICAtcyAic2VydmVyIGhlbGxvLCBjaG9zZW4gY2lwaGVyc3VpdGU6IFRMUzEtMy1DSEFDSEEyMC1QT0xZMTMwNS1TSEEyNTYgKCBpZD00ODY3ICkiIFwKQEAgLTEwNjMsOCArMTA2NSw4IEBACiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBQU0FfV0FOVF9BTEdfRUNESAogcmVxdWlyZXNfb3BlbnNzbF90bHMxXzMKIHJ1bl90ZXN0ICJUTFMgMS4zIE8tPm06IENIQUNIQTIwX1BPTFkxMzA1X1NIQTI1Nix4MjU1MTksZWNkc2Ffc2VjcDI1NnIxX3NoYTI1NiIgXAotICAgICAgICAgIiRQX1NSViBjcnRfZmlsZT1kYXRhX2ZpbGVzL2VjZHNhX3NlY3AyNTZyMS5jcnQga2V5X2ZpbGU9ZGF0YV9maWxlcy9lY2RzYV9zZWNwMjU2cjEua2V5IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUNIQUNIQTIwLVBPTFkxMzA1LVNIQTI1NiBzaWdfYWxncz1lY2RzYV9zZWNwMjU2cjFfc2hhMjU2IGdyb3Vwcz14MjU1MTkgdGxzMTNfa2V4X21vZGVzPWVwaGVtZXJhbCBjb29raWVzPTAgdGlja2V0cz0wIiBcCi0gICAgICAgICAiJE9fTkVYVF9DTElfTk9fQ0VSVCAtQ0FmaWxlIGRhdGFfZmlsZXMvdGVzdC1jYTIuY3J0IC1jaXBoZXJzdWl0ZXMgVExTX0NIQUNIQTIwX1BPTFkxMzA1X1NIQTI1NiAtc2lnYWxncyBlY2RzYV9zZWNwMjU2cjFfc2hhMjU2IC1ncm91cHMgWDI1NTE5IC1tc2cgLXRsczFfMyIgXAorICAgICAgICAgIiRQX1NSViBjcnRfZmlsZT0kREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3AyNTZyMS5jcnQga2V5X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwMjU2cjEua2V5IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUNIQUNIQTIwLVBPTFkxMzA1LVNIQTI1NiBzaWdfYWxncz1lY2RzYV9zZWNwMjU2cjFfc2hhMjU2IGdyb3Vwcz14MjU1MTkgdGxzMTNfa2V4X21vZGVzPWVwaGVtZXJhbCBjb29raWVzPTAgdGlja2V0cz0wIiBcCisgICAgICAgICAiJE9fTkVYVF9DTElfTk9fQ0VSVCAtQ0FmaWxlICREQVRBX0ZJTEVTX1BBVEgvdGVzdC1jYTIuY3J0IC1jaXBoZXJzdWl0ZXMgVExTX0NIQUNIQTIwX1BPTFkxMzA1X1NIQTI1NiAtc2lnYWxncyBlY2RzYV9zZWNwMjU2cjFfc2hhMjU2IC1ncm91cHMgWDI1NTE5IC1tc2cgLXRsczFfMyIgXAogICAgICAgICAgMCBcCiAgICAgICAgICAtcyAiUHJvdG9jb2wgaXMgVExTdjEuMyIgXAogICAgICAgICAgLXMgInNlcnZlciBoZWxsbywgY2hvc2VuIGNpcGhlcnN1aXRlOiBUTFMxLTMtQ0hBQ0hBMjAtUE9MWTEzMDUtU0hBMjU2ICggaWQ9NDg2NyApIiBcCkBAIC0xMDgwLDggKzEwODIsOCBAQAogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgUFNBX1dBTlRfQUxHX0VDREgKIHJlcXVpcmVzX29wZW5zc2xfdGxzMV8zCiBydW5fdGVzdCAiVExTIDEuMyBPLT5tOiBDSEFDSEEyMF9QT0xZMTMwNV9TSEEyNTYseDI1NTE5LGVjZHNhX3NlY3AzODRyMV9zaGEzODQiIFwKLSAgICAgICAgICIkUF9TUlYgY3J0X2ZpbGU9ZGF0YV9maWxlcy9lY2RzYV9zZWNwMzg0cjEuY3J0IGtleV9maWxlPWRhdGFfZmlsZXMvZWNkc2Ffc2VjcDM4NHIxLmtleSBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1DSEFDSEEyMC1QT0xZMTMwNS1TSEEyNTYgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDM4NHIxX3NoYTM4NCBncm91cHM9eDI1NTE5IHRsczEzX2tleF9tb2Rlcz1lcGhlbWVyYWwgY29va2llcz0wIHRpY2tldHM9MCIgXAotICAgICAgICAgIiRPX05FWFRfQ0xJX05PX0NFUlQgLUNBZmlsZSBkYXRhX2ZpbGVzL3Rlc3QtY2EyLmNydCAtY2lwaGVyc3VpdGVzIFRMU19DSEFDSEEyMF9QT0xZMTMwNV9TSEEyNTYgLXNpZ2FsZ3MgZWNkc2Ffc2VjcDM4NHIxX3NoYTM4NCAtZ3JvdXBzIFgyNTUxOSAtbXNnIC10bHMxXzMiIFwKKyAgICAgICAgICIkUF9TUlYgY3J0X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwMzg0cjEuY3J0IGtleV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDM4NHIxLmtleSBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1DSEFDSEEyMC1QT0xZMTMwNS1TSEEyNTYgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDM4NHIxX3NoYTM4NCBncm91cHM9eDI1NTE5IHRsczEzX2tleF9tb2Rlcz1lcGhlbWVyYWwgY29va2llcz0wIHRpY2tldHM9MCIgXAorICAgICAgICAgIiRPX05FWFRfQ0xJX05PX0NFUlQgLUNBZmlsZSAkREFUQV9GSUxFU19QQVRIL3Rlc3QtY2EyLmNydCAtY2lwaGVyc3VpdGVzIFRMU19DSEFDSEEyMF9QT0xZMTMwNV9TSEEyNTYgLXNpZ2FsZ3MgZWNkc2Ffc2VjcDM4NHIxX3NoYTM4NCAtZ3JvdXBzIFgyNTUxOSAtbXNnIC10bHMxXzMiIFwKICAgICAgICAgIDAgXAogICAgICAgICAgLXMgIlByb3RvY29sIGlzIFRMU3YxLjMiIFwKICAgICAgICAgIC1zICJzZXJ2ZXIgaGVsbG8sIGNob3NlbiBjaXBoZXJzdWl0ZTogVExTMS0zLUNIQUNIQTIwLVBPTFkxMzA1LVNIQTI1NiAoIGlkPTQ4NjcgKSIgXApAQCAtMTA5Nyw4ICsxMDk5LDggQEAKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIFBTQV9XQU5UX0FMR19FQ0RICiByZXF1aXJlc19vcGVuc3NsX3RsczFfMwogcnVuX3Rlc3QgIlRMUyAxLjMgTy0+bTogQ0hBQ0hBMjBfUE9MWTEzMDVfU0hBMjU2LHgyNTUxOSxlY2RzYV9zZWNwNTIxcjFfc2hhNTEyIiBcCi0gICAgICAgICAiJFBfU1JWIGNydF9maWxlPWRhdGFfZmlsZXMvZWNkc2Ffc2VjcDUyMXIxLmNydCBrZXlfZmlsZT1kYXRhX2ZpbGVzL2VjZHNhX3NlY3A1MjFyMS5rZXkgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQ0hBQ0hBMjAtUE9MWTEzMDUtU0hBMjU2IHNpZ19hbGdzPWVjZHNhX3NlY3A1MjFyMV9zaGE1MTIgZ3JvdXBzPXgyNTUxOSB0bHMxM19rZXhfbW9kZXM9ZXBoZW1lcmFsIGNvb2tpZXM9MCB0aWNrZXRzPTAiIFwKLSAgICAgICAgICIkT19ORVhUX0NMSV9OT19DRVJUIC1DQWZpbGUgZGF0YV9maWxlcy90ZXN0LWNhMi5jcnQgLWNpcGhlcnN1aXRlcyBUTFNfQ0hBQ0hBMjBfUE9MWTEzMDVfU0hBMjU2IC1zaWdhbGdzIGVjZHNhX3NlY3A1MjFyMV9zaGE1MTIgLWdyb3VwcyBYMjU1MTkgLW1zZyAtdGxzMV8zIiBcCisgICAgICAgICAiJFBfU1JWIGNydF9maWxlPSREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDUyMXIxLmNydCBrZXlfZmlsZT0kREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3A1MjFyMS5rZXkgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQ0hBQ0hBMjAtUE9MWTEzMDUtU0hBMjU2IHNpZ19hbGdzPWVjZHNhX3NlY3A1MjFyMV9zaGE1MTIgZ3JvdXBzPXgyNTUxOSB0bHMxM19rZXhfbW9kZXM9ZXBoZW1lcmFsIGNvb2tpZXM9MCB0aWNrZXRzPTAiIFwKKyAgICAgICAgICIkT19ORVhUX0NMSV9OT19DRVJUIC1DQWZpbGUgJERBVEFfRklMRVNfUEFUSC90ZXN0LWNhMi5jcnQgLWNpcGhlcnN1aXRlcyBUTFNfQ0hBQ0hBMjBfUE9MWTEzMDVfU0hBMjU2IC1zaWdhbGdzIGVjZHNhX3NlY3A1MjFyMV9zaGE1MTIgLWdyb3VwcyBYMjU1MTkgLW1zZyAtdGxzMV8zIiBcCiAgICAgICAgICAwIFwKICAgICAgICAgIC1zICJQcm90b2NvbCBpcyBUTFN2MS4zIiBcCiAgICAgICAgICAtcyAic2VydmVyIGhlbGxvLCBjaG9zZW4gY2lwaGVyc3VpdGU6IFRMUzEtMy1DSEFDSEEyMC1QT0xZMTMwNS1TSEEyNTYgKCBpZD00ODY3ICkiIFwKQEAgLTExMTUsOCArMTExNyw4IEBACiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBQU0FfV0FOVF9BTEdfRUNESAogcmVxdWlyZXNfb3BlbnNzbF90bHMxXzMKIHJ1bl90ZXN0ICJUTFMgMS4zIE8tPm06IENIQUNIQTIwX1BPTFkxMzA1X1NIQTI1Nix4MjU1MTkscnNhX3Bzc19yc2FlX3NoYTI1NiIgXAotICAgICAgICAgIiRQX1NSViBjcnRfZmlsZT1kYXRhX2ZpbGVzL3NlcnZlcjItc2hhMjU2LmNydCBrZXlfZmlsZT1kYXRhX2ZpbGVzL3NlcnZlcjIua2V5IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUNIQUNIQTIwLVBPTFkxMzA1LVNIQTI1NiBzaWdfYWxncz1yc2FfcHNzX3JzYWVfc2hhMjU2IGdyb3Vwcz14MjU1MTkgdGxzMTNfa2V4X21vZGVzPWVwaGVtZXJhbCBjb29raWVzPTAgdGlja2V0cz0wIiBcCi0gICAgICAgICAiJE9fTkVYVF9DTElfTk9fQ0VSVCAtQ0FmaWxlIGRhdGFfZmlsZXMvdGVzdC1jYV9jYXQxMi5jcnQgLWNpcGhlcnN1aXRlcyBUTFNfQ0hBQ0hBMjBfUE9MWTEzMDVfU0hBMjU2IC1zaWdhbGdzIHJzYV9wc3NfcnNhZV9zaGEyNTYgLWdyb3VwcyBYMjU1MTkgLW1zZyAtdGxzMV8zIiBcCisgICAgICAgICAiJFBfU1JWIGNydF9maWxlPSREQVRBX0ZJTEVTX1BBVEgvc2VydmVyMi1zaGEyNTYuY3J0IGtleV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvc2VydmVyMi5rZXkgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQ0hBQ0hBMjAtUE9MWTEzMDUtU0hBMjU2IHNpZ19hbGdzPXJzYV9wc3NfcnNhZV9zaGEyNTYgZ3JvdXBzPXgyNTUxOSB0bHMxM19rZXhfbW9kZXM9ZXBoZW1lcmFsIGNvb2tpZXM9MCB0aWNrZXRzPTAiIFwKKyAgICAgICAgICIkT19ORVhUX0NMSV9OT19DRVJUIC1DQWZpbGUgJERBVEFfRklMRVNfUEFUSC90ZXN0LWNhX2NhdDEyLmNydCAtY2lwaGVyc3VpdGVzIFRMU19DSEFDSEEyMF9QT0xZMTMwNV9TSEEyNTYgLXNpZ2FsZ3MgcnNhX3Bzc19yc2FlX3NoYTI1NiAtZ3JvdXBzIFgyNTUxOSAtbXNnIC10bHMxXzMiIFwKICAgICAgICAgIDAgXAogICAgICAgICAgLXMgIlByb3RvY29sIGlzIFRMU3YxLjMiIFwKICAgICAgICAgIC1zICJzZXJ2ZXIgaGVsbG8sIGNob3NlbiBjaXBoZXJzdWl0ZTogVExTMS0zLUNIQUNIQTIwLVBPTFkxMzA1LVNIQTI1NiAoIGlkPTQ4NjcgKSIgXApAQCAtMTEzMiw4ICsxMTM0LDggQEAKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIFBTQV9XQU5UX0FMR19FQ0RICiByZXF1aXJlc19vcGVuc3NsX3RsczFfMwogcnVuX3Rlc3QgIlRMUyAxLjMgTy0+bTogQ0hBQ0hBMjBfUE9MWTEzMDVfU0hBMjU2LHg0NDgsZWNkc2Ffc2VjcDI1NnIxX3NoYTI1NiIgXAotICAgICAgICAgIiRQX1NSViBjcnRfZmlsZT1kYXRhX2ZpbGVzL2VjZHNhX3NlY3AyNTZyMS5jcnQga2V5X2ZpbGU9ZGF0YV9maWxlcy9lY2RzYV9zZWNwMjU2cjEua2V5IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUNIQUNIQTIwLVBPTFkxMzA1LVNIQTI1NiBzaWdfYWxncz1lY2RzYV9zZWNwMjU2cjFfc2hhMjU2IGdyb3Vwcz14NDQ4IHRsczEzX2tleF9tb2Rlcz1lcGhlbWVyYWwgY29va2llcz0wIHRpY2tldHM9MCIgXAotICAgICAgICAgIiRPX05FWFRfQ0xJX05PX0NFUlQgLUNBZmlsZSBkYXRhX2ZpbGVzL3Rlc3QtY2EyLmNydCAtY2lwaGVyc3VpdGVzIFRMU19DSEFDSEEyMF9QT0xZMTMwNV9TSEEyNTYgLXNpZ2FsZ3MgZWNkc2Ffc2VjcDI1NnIxX3NoYTI1NiAtZ3JvdXBzIFg0NDggLW1zZyAtdGxzMV8zIiBcCisgICAgICAgICAiJFBfU1JWIGNydF9maWxlPSREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDI1NnIxLmNydCBrZXlfZmlsZT0kREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3AyNTZyMS5rZXkgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQ0hBQ0hBMjAtUE9MWTEzMDUtU0hBMjU2IHNpZ19hbGdzPWVjZHNhX3NlY3AyNTZyMV9zaGEyNTYgZ3JvdXBzPXg0NDggdGxzMTNfa2V4X21vZGVzPWVwaGVtZXJhbCBjb29raWVzPTAgdGlja2V0cz0wIiBcCisgICAgICAgICAiJE9fTkVYVF9DTElfTk9fQ0VSVCAtQ0FmaWxlICREQVRBX0ZJTEVTX1BBVEgvdGVzdC1jYTIuY3J0IC1jaXBoZXJzdWl0ZXMgVExTX0NIQUNIQTIwX1BPTFkxMzA1X1NIQTI1NiAtc2lnYWxncyBlY2RzYV9zZWNwMjU2cjFfc2hhMjU2IC1ncm91cHMgWDQ0OCAtbXNnIC10bHMxXzMiIFwKICAgICAgICAgIDAgXAogICAgICAgICAgLXMgIlByb3RvY29sIGlzIFRMU3YxLjMiIFwKICAgICAgICAgIC1zICJzZXJ2ZXIgaGVsbG8sIGNob3NlbiBjaXBoZXJzdWl0ZTogVExTMS0zLUNIQUNIQTIwLVBPTFkxMzA1LVNIQTI1NiAoIGlkPTQ4NjcgKSIgXApAQCAtMTE0OSw4ICsxMTUxLDggQEAKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIFBTQV9XQU5UX0FMR19FQ0RICiByZXF1aXJlc19vcGVuc3NsX3RsczFfMwogcnVuX3Rlc3QgIlRMUyAxLjMgTy0+bTogQ0hBQ0hBMjBfUE9MWTEzMDVfU0hBMjU2LHg0NDgsZWNkc2Ffc2VjcDM4NHIxX3NoYTM4NCIgXAotICAgICAgICAgIiRQX1NSViBjcnRfZmlsZT1kYXRhX2ZpbGVzL2VjZHNhX3NlY3AzODRyMS5jcnQga2V5X2ZpbGU9ZGF0YV9maWxlcy9lY2RzYV9zZWNwMzg0cjEua2V5IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUNIQUNIQTIwLVBPTFkxMzA1LVNIQTI1NiBzaWdfYWxncz1lY2RzYV9zZWNwMzg0cjFfc2hhMzg0IGdyb3Vwcz14NDQ4IHRsczEzX2tleF9tb2Rlcz1lcGhlbWVyYWwgY29va2llcz0wIHRpY2tldHM9MCIgXAotICAgICAgICAgIiRPX05FWFRfQ0xJX05PX0NFUlQgLUNBZmlsZSBkYXRhX2ZpbGVzL3Rlc3QtY2EyLmNydCAtY2lwaGVyc3VpdGVzIFRMU19DSEFDSEEyMF9QT0xZMTMwNV9TSEEyNTYgLXNpZ2FsZ3MgZWNkc2Ffc2VjcDM4NHIxX3NoYTM4NCAtZ3JvdXBzIFg0NDggLW1zZyAtdGxzMV8zIiBcCisgICAgICAgICAiJFBfU1JWIGNydF9maWxlPSREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDM4NHIxLmNydCBrZXlfZmlsZT0kREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3AzODRyMS5rZXkgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQ0hBQ0hBMjAtUE9MWTEzMDUtU0hBMjU2IHNpZ19hbGdzPWVjZHNhX3NlY3AzODRyMV9zaGEzODQgZ3JvdXBzPXg0NDggdGxzMTNfa2V4X21vZGVzPWVwaGVtZXJhbCBjb29raWVzPTAgdGlja2V0cz0wIiBcCisgICAgICAgICAiJE9fTkVYVF9DTElfTk9fQ0VSVCAtQ0FmaWxlICREQVRBX0ZJTEVTX1BBVEgvdGVzdC1jYTIuY3J0IC1jaXBoZXJzdWl0ZXMgVExTX0NIQUNIQTIwX1BPTFkxMzA1X1NIQTI1NiAtc2lnYWxncyBlY2RzYV9zZWNwMzg0cjFfc2hhMzg0IC1ncm91cHMgWDQ0OCAtbXNnIC10bHMxXzMiIFwKICAgICAgICAgIDAgXAogICAgICAgICAgLXMgIlByb3RvY29sIGlzIFRMU3YxLjMiIFwKICAgICAgICAgIC1zICJzZXJ2ZXIgaGVsbG8sIGNob3NlbiBjaXBoZXJzdWl0ZTogVExTMS0zLUNIQUNIQTIwLVBPTFkxMzA1LVNIQTI1NiAoIGlkPTQ4NjcgKSIgXApAQCAtMTE2Niw4ICsxMTY4LDggQEAKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIFBTQV9XQU5UX0FMR19FQ0RICiByZXF1aXJlc19vcGVuc3NsX3RsczFfMwogcnVuX3Rlc3QgIlRMUyAxLjMgTy0+bTogQ0hBQ0hBMjBfUE9MWTEzMDVfU0hBMjU2LHg0NDgsZWNkc2Ffc2VjcDUyMXIxX3NoYTUxMiIgXAotICAgICAgICAgIiRQX1NSViBjcnRfZmlsZT1kYXRhX2ZpbGVzL2VjZHNhX3NlY3A1MjFyMS5jcnQga2V5X2ZpbGU9ZGF0YV9maWxlcy9lY2RzYV9zZWNwNTIxcjEua2V5IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUNIQUNIQTIwLVBPTFkxMzA1LVNIQTI1NiBzaWdfYWxncz1lY2RzYV9zZWNwNTIxcjFfc2hhNTEyIGdyb3Vwcz14NDQ4IHRsczEzX2tleF9tb2Rlcz1lcGhlbWVyYWwgY29va2llcz0wIHRpY2tldHM9MCIgXAotICAgICAgICAgIiRPX05FWFRfQ0xJX05PX0NFUlQgLUNBZmlsZSBkYXRhX2ZpbGVzL3Rlc3QtY2EyLmNydCAtY2lwaGVyc3VpdGVzIFRMU19DSEFDSEEyMF9QT0xZMTMwNV9TSEEyNTYgLXNpZ2FsZ3MgZWNkc2Ffc2VjcDUyMXIxX3NoYTUxMiAtZ3JvdXBzIFg0NDggLW1zZyAtdGxzMV8zIiBcCisgICAgICAgICAiJFBfU1JWIGNydF9maWxlPSREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDUyMXIxLmNydCBrZXlfZmlsZT0kREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3A1MjFyMS5rZXkgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQ0hBQ0hBMjAtUE9MWTEzMDUtU0hBMjU2IHNpZ19hbGdzPWVjZHNhX3NlY3A1MjFyMV9zaGE1MTIgZ3JvdXBzPXg0NDggdGxzMTNfa2V4X21vZGVzPWVwaGVtZXJhbCBjb29raWVzPTAgdGlja2V0cz0wIiBcCisgICAgICAgICAiJE9fTkVYVF9DTElfTk9fQ0VSVCAtQ0FmaWxlICREQVRBX0ZJTEVTX1BBVEgvdGVzdC1jYTIuY3J0IC1jaXBoZXJzdWl0ZXMgVExTX0NIQUNIQTIwX1BPTFkxMzA1X1NIQTI1NiAtc2lnYWxncyBlY2RzYV9zZWNwNTIxcjFfc2hhNTEyIC1ncm91cHMgWDQ0OCAtbXNnIC10bHMxXzMiIFwKICAgICAgICAgIDAgXAogICAgICAgICAgLXMgIlByb3RvY29sIGlzIFRMU3YxLjMiIFwKICAgICAgICAgIC1zICJzZXJ2ZXIgaGVsbG8sIGNob3NlbiBjaXBoZXJzdWl0ZTogVExTMS0zLUNIQUNIQTIwLVBPTFkxMzA1LVNIQTI1NiAoIGlkPTQ4NjcgKSIgXApAQCAtMTE4NCw4ICsxMTg2LDggQEAKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIFBTQV9XQU5UX0FMR19FQ0RICiByZXF1aXJlc19vcGVuc3NsX3RsczFfMwogcnVuX3Rlc3QgIlRMUyAxLjMgTy0+bTogQ0hBQ0hBMjBfUE9MWTEzMDVfU0hBMjU2LHg0NDgscnNhX3Bzc19yc2FlX3NoYTI1NiIgXAotICAgICAgICAgIiRQX1NSViBjcnRfZmlsZT1kYXRhX2ZpbGVzL3NlcnZlcjItc2hhMjU2LmNydCBrZXlfZmlsZT1kYXRhX2ZpbGVzL3NlcnZlcjIua2V5IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUNIQUNIQTIwLVBPTFkxMzA1LVNIQTI1NiBzaWdfYWxncz1yc2FfcHNzX3JzYWVfc2hhMjU2IGdyb3Vwcz14NDQ4IHRsczEzX2tleF9tb2Rlcz1lcGhlbWVyYWwgY29va2llcz0wIHRpY2tldHM9MCIgXAotICAgICAgICAgIiRPX05FWFRfQ0xJX05PX0NFUlQgLUNBZmlsZSBkYXRhX2ZpbGVzL3Rlc3QtY2FfY2F0MTIuY3J0IC1jaXBoZXJzdWl0ZXMgVExTX0NIQUNIQTIwX1BPTFkxMzA1X1NIQTI1NiAtc2lnYWxncyByc2FfcHNzX3JzYWVfc2hhMjU2IC1ncm91cHMgWDQ0OCAtbXNnIC10bHMxXzMiIFwKKyAgICAgICAgICIkUF9TUlYgY3J0X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9zZXJ2ZXIyLXNoYTI1Ni5jcnQga2V5X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9zZXJ2ZXIyLmtleSBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1DSEFDSEEyMC1QT0xZMTMwNS1TSEEyNTYgc2lnX2FsZ3M9cnNhX3Bzc19yc2FlX3NoYTI1NiBncm91cHM9eDQ0OCB0bHMxM19rZXhfbW9kZXM9ZXBoZW1lcmFsIGNvb2tpZXM9MCB0aWNrZXRzPTAiIFwKKyAgICAgICAgICIkT19ORVhUX0NMSV9OT19DRVJUIC1DQWZpbGUgJERBVEFfRklMRVNfUEFUSC90ZXN0LWNhX2NhdDEyLmNydCAtY2lwaGVyc3VpdGVzIFRMU19DSEFDSEEyMF9QT0xZMTMwNV9TSEEyNTYgLXNpZ2FsZ3MgcnNhX3Bzc19yc2FlX3NoYTI1NiAtZ3JvdXBzIFg0NDggLW1zZyAtdGxzMV8zIiBcCiAgICAgICAgICAwIFwKICAgICAgICAgIC1zICJQcm90b2NvbCBpcyBUTFN2MS4zIiBcCiAgICAgICAgICAtcyAic2VydmVyIGhlbGxvLCBjaG9zZW4gY2lwaGVyc3VpdGU6IFRMUzEtMy1DSEFDSEEyMC1QT0xZMTMwNS1TSEEyNTYgKCBpZD00ODY3ICkiIFwKQEAgLTEyMDIsOCArMTIwNCw4IEBACiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBQU0FfV0FOVF9ESF9SRkM3OTE5XzIwNDgKIHJlcXVpcmVzX29wZW5zc2xfdGxzMV8zX3dpdGhfZmZkaAogcnVuX3Rlc3QgIlRMUyAxLjMgTy0+bTogQ0hBQ0hBMjBfUE9MWTEzMDVfU0hBMjU2LGZmZGhlMjA0OCxlY2RzYV9zZWNwMjU2cjFfc2hhMjU2IiBcCi0gICAgICAgICAiJFBfU1JWIGNydF9maWxlPWRhdGFfZmlsZXMvZWNkc2Ffc2VjcDI1NnIxLmNydCBrZXlfZmlsZT1kYXRhX2ZpbGVzL2VjZHNhX3NlY3AyNTZyMS5rZXkgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQ0hBQ0hBMjAtUE9MWTEzMDUtU0hBMjU2IHNpZ19hbGdzPWVjZHNhX3NlY3AyNTZyMV9zaGEyNTYgZ3JvdXBzPWZmZGhlMjA0OCB0bHMxM19rZXhfbW9kZXM9ZXBoZW1lcmFsIGNvb2tpZXM9MCB0aWNrZXRzPTAiIFwKLSAgICAgICAgICIkT19ORVhUX0NMSV9OT19DRVJUIC1DQWZpbGUgZGF0YV9maWxlcy90ZXN0LWNhMi5jcnQgLWNpcGhlcnN1aXRlcyBUTFNfQ0hBQ0hBMjBfUE9MWTEzMDVfU0hBMjU2IC1zaWdhbGdzIGVjZHNhX3NlY3AyNTZyMV9zaGEyNTYgLWdyb3VwcyBmZmRoZTIwNDggLW1zZyAtdGxzMV8zIiBcCisgICAgICAgICAiJFBfU1JWIGNydF9maWxlPSREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDI1NnIxLmNydCBrZXlfZmlsZT0kREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3AyNTZyMS5rZXkgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQ0hBQ0hBMjAtUE9MWTEzMDUtU0hBMjU2IHNpZ19hbGdzPWVjZHNhX3NlY3AyNTZyMV9zaGEyNTYgZ3JvdXBzPWZmZGhlMjA0OCB0bHMxM19rZXhfbW9kZXM9ZXBoZW1lcmFsIGNvb2tpZXM9MCB0aWNrZXRzPTAiIFwKKyAgICAgICAgICIkT19ORVhUX0NMSV9OT19DRVJUIC1DQWZpbGUgJERBVEFfRklMRVNfUEFUSC90ZXN0LWNhMi5jcnQgLWNpcGhlcnN1aXRlcyBUTFNfQ0hBQ0hBMjBfUE9MWTEzMDVfU0hBMjU2IC1zaWdhbGdzIGVjZHNhX3NlY3AyNTZyMV9zaGEyNTYgLWdyb3VwcyBmZmRoZTIwNDggLW1zZyAtdGxzMV8zIiBcCiAgICAgICAgICAwIFwKICAgICAgICAgIC1zICJQcm90b2NvbCBpcyBUTFN2MS4zIiBcCiAgICAgICAgICAtcyAic2VydmVyIGhlbGxvLCBjaG9zZW4gY2lwaGVyc3VpdGU6IFRMUzEtMy1DSEFDSEEyMC1QT0xZMTMwNS1TSEEyNTYgKCBpZD00ODY3ICkiIFwKQEAgLTEyMjAsOCArMTIyMiw4IEBACiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBQU0FfV0FOVF9ESF9SRkM3OTE5XzIwNDgKIHJlcXVpcmVzX29wZW5zc2xfdGxzMV8zX3dpdGhfZmZkaAogcnVuX3Rlc3QgIlRMUyAxLjMgTy0+bTogQ0hBQ0hBMjBfUE9MWTEzMDVfU0hBMjU2LGZmZGhlMjA0OCxlY2RzYV9zZWNwMzg0cjFfc2hhMzg0IiBcCi0gICAgICAgICAiJFBfU1JWIGNydF9maWxlPWRhdGFfZmlsZXMvZWNkc2Ffc2VjcDM4NHIxLmNydCBrZXlfZmlsZT1kYXRhX2ZpbGVzL2VjZHNhX3NlY3AzODRyMS5rZXkgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQ0hBQ0hBMjAtUE9MWTEzMDUtU0hBMjU2IHNpZ19hbGdzPWVjZHNhX3NlY3AzODRyMV9zaGEzODQgZ3JvdXBzPWZmZGhlMjA0OCB0bHMxM19rZXhfbW9kZXM9ZXBoZW1lcmFsIGNvb2tpZXM9MCB0aWNrZXRzPTAiIFwKLSAgICAgICAgICIkT19ORVhUX0NMSV9OT19DRVJUIC1DQWZpbGUgZGF0YV9maWxlcy90ZXN0LWNhMi5jcnQgLWNpcGhlcnN1aXRlcyBUTFNfQ0hBQ0hBMjBfUE9MWTEzMDVfU0hBMjU2IC1zaWdhbGdzIGVjZHNhX3NlY3AzODRyMV9zaGEzODQgLWdyb3VwcyBmZmRoZTIwNDggLW1zZyAtdGxzMV8zIiBcCisgICAgICAgICAiJFBfU1JWIGNydF9maWxlPSREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDM4NHIxLmNydCBrZXlfZmlsZT0kREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3AzODRyMS5rZXkgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQ0hBQ0hBMjAtUE9MWTEzMDUtU0hBMjU2IHNpZ19hbGdzPWVjZHNhX3NlY3AzODRyMV9zaGEzODQgZ3JvdXBzPWZmZGhlMjA0OCB0bHMxM19rZXhfbW9kZXM9ZXBoZW1lcmFsIGNvb2tpZXM9MCB0aWNrZXRzPTAiIFwKKyAgICAgICAgICIkT19ORVhUX0NMSV9OT19DRVJUIC1DQWZpbGUgJERBVEFfRklMRVNfUEFUSC90ZXN0LWNhMi5jcnQgLWNpcGhlcnN1aXRlcyBUTFNfQ0hBQ0hBMjBfUE9MWTEzMDVfU0hBMjU2IC1zaWdhbGdzIGVjZHNhX3NlY3AzODRyMV9zaGEzODQgLWdyb3VwcyBmZmRoZTIwNDggLW1zZyAtdGxzMV8zIiBcCiAgICAgICAgICAwIFwKICAgICAgICAgIC1zICJQcm90b2NvbCBpcyBUTFN2MS4zIiBcCiAgICAgICAgICAtcyAic2VydmVyIGhlbGxvLCBjaG9zZW4gY2lwaGVyc3VpdGU6IFRMUzEtMy1DSEFDSEEyMC1QT0xZMTMwNS1TSEEyNTYgKCBpZD00ODY3ICkiIFwKQEAgLTEyMzgsOCArMTI0MCw4IEBACiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBQU0FfV0FOVF9ESF9SRkM3OTE5XzIwNDgKIHJlcXVpcmVzX29wZW5zc2xfdGxzMV8zX3dpdGhfZmZkaAogcnVuX3Rlc3QgIlRMUyAxLjMgTy0+bTogQ0hBQ0hBMjBfUE9MWTEzMDVfU0hBMjU2LGZmZGhlMjA0OCxlY2RzYV9zZWNwNTIxcjFfc2hhNTEyIiBcCi0gICAgICAgICAiJFBfU1JWIGNydF9maWxlPWRhdGFfZmlsZXMvZWNkc2Ffc2VjcDUyMXIxLmNydCBrZXlfZmlsZT1kYXRhX2ZpbGVzL2VjZHNhX3NlY3A1MjFyMS5rZXkgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQ0hBQ0hBMjAtUE9MWTEzMDUtU0hBMjU2IHNpZ19hbGdzPWVjZHNhX3NlY3A1MjFyMV9zaGE1MTIgZ3JvdXBzPWZmZGhlMjA0OCB0bHMxM19rZXhfbW9kZXM9ZXBoZW1lcmFsIGNvb2tpZXM9MCB0aWNrZXRzPTAiIFwKLSAgICAgICAgICIkT19ORVhUX0NMSV9OT19DRVJUIC1DQWZpbGUgZGF0YV9maWxlcy90ZXN0LWNhMi5jcnQgLWNpcGhlcnN1aXRlcyBUTFNfQ0hBQ0hBMjBfUE9MWTEzMDVfU0hBMjU2IC1zaWdhbGdzIGVjZHNhX3NlY3A1MjFyMV9zaGE1MTIgLWdyb3VwcyBmZmRoZTIwNDggLW1zZyAtdGxzMV8zIiBcCisgICAgICAgICAiJFBfU1JWIGNydF9maWxlPSREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDUyMXIxLmNydCBrZXlfZmlsZT0kREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3A1MjFyMS5rZXkgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQ0hBQ0hBMjAtUE9MWTEzMDUtU0hBMjU2IHNpZ19hbGdzPWVjZHNhX3NlY3A1MjFyMV9zaGE1MTIgZ3JvdXBzPWZmZGhlMjA0OCB0bHMxM19rZXhfbW9kZXM9ZXBoZW1lcmFsIGNvb2tpZXM9MCB0aWNrZXRzPTAiIFwKKyAgICAgICAgICIkT19ORVhUX0NMSV9OT19DRVJUIC1DQWZpbGUgJERBVEFfRklMRVNfUEFUSC90ZXN0LWNhMi5jcnQgLWNpcGhlcnN1aXRlcyBUTFNfQ0hBQ0hBMjBfUE9MWTEzMDVfU0hBMjU2IC1zaWdhbGdzIGVjZHNhX3NlY3A1MjFyMV9zaGE1MTIgLWdyb3VwcyBmZmRoZTIwNDggLW1zZyAtdGxzMV8zIiBcCiAgICAgICAgICAwIFwKICAgICAgICAgIC1zICJQcm90b2NvbCBpcyBUTFN2MS4zIiBcCiAgICAgICAgICAtcyAic2VydmVyIGhlbGxvLCBjaG9zZW4gY2lwaGVyc3VpdGU6IFRMUzEtMy1DSEFDSEEyMC1QT0xZMTMwNS1TSEEyNTYgKCBpZD00ODY3ICkiIFwKQEAgLTEyNTcsOCArMTI1OSw4IEBACiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBQU0FfV0FOVF9ESF9SRkM3OTE5XzIwNDgKIHJlcXVpcmVzX29wZW5zc2xfdGxzMV8zX3dpdGhfZmZkaAogcnVuX3Rlc3QgIlRMUyAxLjMgTy0+bTogQ0hBQ0hBMjBfUE9MWTEzMDVfU0hBMjU2LGZmZGhlMjA0OCxyc2FfcHNzX3JzYWVfc2hhMjU2IiBcCi0gICAgICAgICAiJFBfU1JWIGNydF9maWxlPWRhdGFfZmlsZXMvc2VydmVyMi1zaGEyNTYuY3J0IGtleV9maWxlPWRhdGFfZmlsZXMvc2VydmVyMi5rZXkgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQ0hBQ0hBMjAtUE9MWTEzMDUtU0hBMjU2IHNpZ19hbGdzPXJzYV9wc3NfcnNhZV9zaGEyNTYgZ3JvdXBzPWZmZGhlMjA0OCB0bHMxM19rZXhfbW9kZXM9ZXBoZW1lcmFsIGNvb2tpZXM9MCB0aWNrZXRzPTAiIFwKLSAgICAgICAgICIkT19ORVhUX0NMSV9OT19DRVJUIC1DQWZpbGUgZGF0YV9maWxlcy90ZXN0LWNhX2NhdDEyLmNydCAtY2lwaGVyc3VpdGVzIFRMU19DSEFDSEEyMF9QT0xZMTMwNV9TSEEyNTYgLXNpZ2FsZ3MgcnNhX3Bzc19yc2FlX3NoYTI1NiAtZ3JvdXBzIGZmZGhlMjA0OCAtbXNnIC10bHMxXzMiIFwKKyAgICAgICAgICIkUF9TUlYgY3J0X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9zZXJ2ZXIyLXNoYTI1Ni5jcnQga2V5X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9zZXJ2ZXIyLmtleSBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1DSEFDSEEyMC1QT0xZMTMwNS1TSEEyNTYgc2lnX2FsZ3M9cnNhX3Bzc19yc2FlX3NoYTI1NiBncm91cHM9ZmZkaGUyMDQ4IHRsczEzX2tleF9tb2Rlcz1lcGhlbWVyYWwgY29va2llcz0wIHRpY2tldHM9MCIgXAorICAgICAgICAgIiRPX05FWFRfQ0xJX05PX0NFUlQgLUNBZmlsZSAkREFUQV9GSUxFU19QQVRIL3Rlc3QtY2FfY2F0MTIuY3J0IC1jaXBoZXJzdWl0ZXMgVExTX0NIQUNIQTIwX1BPTFkxMzA1X1NIQTI1NiAtc2lnYWxncyByc2FfcHNzX3JzYWVfc2hhMjU2IC1ncm91cHMgZmZkaGUyMDQ4IC1tc2cgLXRsczFfMyIgXAogICAgICAgICAgMCBcCiAgICAgICAgICAtcyAiUHJvdG9jb2wgaXMgVExTdjEuMyIgXAogICAgICAgICAgLXMgInNlcnZlciBoZWxsbywgY2hvc2VuIGNpcGhlcnN1aXRlOiBUTFMxLTMtQ0hBQ0hBMjAtUE9MWTEzMDUtU0hBMjU2ICggaWQ9NDg2NyApIiBcCkBAIC0xMjc0LDggKzEyNzYsOCBAQAogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgUFNBX1dBTlRfQUxHX0VDREgKIHJlcXVpcmVzX29wZW5zc2xfdGxzMV8zCiBydW5fdGVzdCAiVExTIDEuMyBPLT5tOiBBRVNfMTI4X0NDTV9TSEEyNTYsc2VjcDI1NnIxLGVjZHNhX3NlY3AyNTZyMV9zaGEyNTYiIFwKLSAgICAgICAgICIkUF9TUlYgY3J0X2ZpbGU9ZGF0YV9maWxlcy9lY2RzYV9zZWNwMjU2cjEuY3J0IGtleV9maWxlPWRhdGFfZmlsZXMvZWNkc2Ffc2VjcDI1NnIxLmtleSBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMTI4LUNDTS1TSEEyNTYgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDI1NnIxX3NoYTI1NiBncm91cHM9c2VjcDI1NnIxIHRsczEzX2tleF9tb2Rlcz1lcGhlbWVyYWwgY29va2llcz0wIHRpY2tldHM9MCIgXAotICAgICAgICAgIiRPX05FWFRfQ0xJX05PX0NFUlQgLUNBZmlsZSBkYXRhX2ZpbGVzL3Rlc3QtY2EyLmNydCAtY2lwaGVyc3VpdGVzIFRMU19BRVNfMTI4X0NDTV9TSEEyNTYgLXNpZ2FsZ3MgZWNkc2Ffc2VjcDI1NnIxX3NoYTI1NiAtZ3JvdXBzIFAtMjU2IC1tc2cgLXRsczFfMyIgXAorICAgICAgICAgIiRQX1NSViBjcnRfZmlsZT0kREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3AyNTZyMS5jcnQga2V5X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwMjU2cjEua2V5IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0xMjgtQ0NNLVNIQTI1NiBzaWdfYWxncz1lY2RzYV9zZWNwMjU2cjFfc2hhMjU2IGdyb3Vwcz1zZWNwMjU2cjEgdGxzMTNfa2V4X21vZGVzPWVwaGVtZXJhbCBjb29raWVzPTAgdGlja2V0cz0wIiBcCisgICAgICAgICAiJE9fTkVYVF9DTElfTk9fQ0VSVCAtQ0FmaWxlICREQVRBX0ZJTEVTX1BBVEgvdGVzdC1jYTIuY3J0IC1jaXBoZXJzdWl0ZXMgVExTX0FFU18xMjhfQ0NNX1NIQTI1NiAtc2lnYWxncyBlY2RzYV9zZWNwMjU2cjFfc2hhMjU2IC1ncm91cHMgUC0yNTYgLW1zZyAtdGxzMV8zIiBcCiAgICAgICAgICAwIFwKICAgICAgICAgIC1zICJQcm90b2NvbCBpcyBUTFN2MS4zIiBcCiAgICAgICAgICAtcyAic2VydmVyIGhlbGxvLCBjaG9zZW4gY2lwaGVyc3VpdGU6IFRMUzEtMy1BRVMtMTI4LUNDTS1TSEEyNTYgKCBpZD00ODY4ICkiIFwKQEAgLTEyOTEsOCArMTI5Myw4IEBACiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBQU0FfV0FOVF9BTEdfRUNESAogcmVxdWlyZXNfb3BlbnNzbF90bHMxXzMKIHJ1bl90ZXN0ICJUTFMgMS4zIE8tPm06IEFFU18xMjhfQ0NNX1NIQTI1NixzZWNwMjU2cjEsZWNkc2Ffc2VjcDM4NHIxX3NoYTM4NCIgXAotICAgICAgICAgIiRQX1NSViBjcnRfZmlsZT1kYXRhX2ZpbGVzL2VjZHNhX3NlY3AzODRyMS5jcnQga2V5X2ZpbGU9ZGF0YV9maWxlcy9lY2RzYV9zZWNwMzg0cjEua2V5IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0xMjgtQ0NNLVNIQTI1NiBzaWdfYWxncz1lY2RzYV9zZWNwMzg0cjFfc2hhMzg0IGdyb3Vwcz1zZWNwMjU2cjEgdGxzMTNfa2V4X21vZGVzPWVwaGVtZXJhbCBjb29raWVzPTAgdGlja2V0cz0wIiBcCi0gICAgICAgICAiJE9fTkVYVF9DTElfTk9fQ0VSVCAtQ0FmaWxlIGRhdGFfZmlsZXMvdGVzdC1jYTIuY3J0IC1jaXBoZXJzdWl0ZXMgVExTX0FFU18xMjhfQ0NNX1NIQTI1NiAtc2lnYWxncyBlY2RzYV9zZWNwMzg0cjFfc2hhMzg0IC1ncm91cHMgUC0yNTYgLW1zZyAtdGxzMV8zIiBcCisgICAgICAgICAiJFBfU1JWIGNydF9maWxlPSREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDM4NHIxLmNydCBrZXlfZmlsZT0kREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3AzODRyMS5rZXkgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTEyOC1DQ00tU0hBMjU2IHNpZ19hbGdzPWVjZHNhX3NlY3AzODRyMV9zaGEzODQgZ3JvdXBzPXNlY3AyNTZyMSB0bHMxM19rZXhfbW9kZXM9ZXBoZW1lcmFsIGNvb2tpZXM9MCB0aWNrZXRzPTAiIFwKKyAgICAgICAgICIkT19ORVhUX0NMSV9OT19DRVJUIC1DQWZpbGUgJERBVEFfRklMRVNfUEFUSC90ZXN0LWNhMi5jcnQgLWNpcGhlcnN1aXRlcyBUTFNfQUVTXzEyOF9DQ01fU0hBMjU2IC1zaWdhbGdzIGVjZHNhX3NlY3AzODRyMV9zaGEzODQgLWdyb3VwcyBQLTI1NiAtbXNnIC10bHMxXzMiIFwKICAgICAgICAgIDAgXAogICAgICAgICAgLXMgIlByb3RvY29sIGlzIFRMU3YxLjMiIFwKICAgICAgICAgIC1zICJzZXJ2ZXIgaGVsbG8sIGNob3NlbiBjaXBoZXJzdWl0ZTogVExTMS0zLUFFUy0xMjgtQ0NNLVNIQTI1NiAoIGlkPTQ4NjggKSIgXApAQCAtMTMwOCw4ICsxMzEwLDggQEAKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIFBTQV9XQU5UX0FMR19FQ0RICiByZXF1aXJlc19vcGVuc3NsX3RsczFfMwogcnVuX3Rlc3QgIlRMUyAxLjMgTy0+bTogQUVTXzEyOF9DQ01fU0hBMjU2LHNlY3AyNTZyMSxlY2RzYV9zZWNwNTIxcjFfc2hhNTEyIiBcCi0gICAgICAgICAiJFBfU1JWIGNydF9maWxlPWRhdGFfZmlsZXMvZWNkc2Ffc2VjcDUyMXIxLmNydCBrZXlfZmlsZT1kYXRhX2ZpbGVzL2VjZHNhX3NlY3A1MjFyMS5rZXkgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTEyOC1DQ00tU0hBMjU2IHNpZ19hbGdzPWVjZHNhX3NlY3A1MjFyMV9zaGE1MTIgZ3JvdXBzPXNlY3AyNTZyMSB0bHMxM19rZXhfbW9kZXM9ZXBoZW1lcmFsIGNvb2tpZXM9MCB0aWNrZXRzPTAiIFwKLSAgICAgICAgICIkT19ORVhUX0NMSV9OT19DRVJUIC1DQWZpbGUgZGF0YV9maWxlcy90ZXN0LWNhMi5jcnQgLWNpcGhlcnN1aXRlcyBUTFNfQUVTXzEyOF9DQ01fU0hBMjU2IC1zaWdhbGdzIGVjZHNhX3NlY3A1MjFyMV9zaGE1MTIgLWdyb3VwcyBQLTI1NiAtbXNnIC10bHMxXzMiIFwKKyAgICAgICAgICIkUF9TUlYgY3J0X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwNTIxcjEuY3J0IGtleV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDUyMXIxLmtleSBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMTI4LUNDTS1TSEEyNTYgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDUyMXIxX3NoYTUxMiBncm91cHM9c2VjcDI1NnIxIHRsczEzX2tleF9tb2Rlcz1lcGhlbWVyYWwgY29va2llcz0wIHRpY2tldHM9MCIgXAorICAgICAgICAgIiRPX05FWFRfQ0xJX05PX0NFUlQgLUNBZmlsZSAkREFUQV9GSUxFU19QQVRIL3Rlc3QtY2EyLmNydCAtY2lwaGVyc3VpdGVzIFRMU19BRVNfMTI4X0NDTV9TSEEyNTYgLXNpZ2FsZ3MgZWNkc2Ffc2VjcDUyMXIxX3NoYTUxMiAtZ3JvdXBzIFAtMjU2IC1tc2cgLXRsczFfMyIgXAogICAgICAgICAgMCBcCiAgICAgICAgICAtcyAiUHJvdG9jb2wgaXMgVExTdjEuMyIgXAogICAgICAgICAgLXMgInNlcnZlciBoZWxsbywgY2hvc2VuIGNpcGhlcnN1aXRlOiBUTFMxLTMtQUVTLTEyOC1DQ00tU0hBMjU2ICggaWQ9NDg2OCApIiBcCkBAIC0xMzI2LDggKzEzMjgsOCBAQAogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgUFNBX1dBTlRfQUxHX0VDREgKIHJlcXVpcmVzX29wZW5zc2xfdGxzMV8zCiBydW5fdGVzdCAiVExTIDEuMyBPLT5tOiBBRVNfMTI4X0NDTV9TSEEyNTYsc2VjcDI1NnIxLHJzYV9wc3NfcnNhZV9zaGEyNTYiIFwKLSAgICAgICAgICIkUF9TUlYgY3J0X2ZpbGU9ZGF0YV9maWxlcy9zZXJ2ZXIyLXNoYTI1Ni5jcnQga2V5X2ZpbGU9ZGF0YV9maWxlcy9zZXJ2ZXIyLmtleSBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMTI4LUNDTS1TSEEyNTYgc2lnX2FsZ3M9cnNhX3Bzc19yc2FlX3NoYTI1NiBncm91cHM9c2VjcDI1NnIxIHRsczEzX2tleF9tb2Rlcz1lcGhlbWVyYWwgY29va2llcz0wIHRpY2tldHM9MCIgXAotICAgICAgICAgIiRPX05FWFRfQ0xJX05PX0NFUlQgLUNBZmlsZSBkYXRhX2ZpbGVzL3Rlc3QtY2FfY2F0MTIuY3J0IC1jaXBoZXJzdWl0ZXMgVExTX0FFU18xMjhfQ0NNX1NIQTI1NiAtc2lnYWxncyByc2FfcHNzX3JzYWVfc2hhMjU2IC1ncm91cHMgUC0yNTYgLW1zZyAtdGxzMV8zIiBcCisgICAgICAgICAiJFBfU1JWIGNydF9maWxlPSREQVRBX0ZJTEVTX1BBVEgvc2VydmVyMi1zaGEyNTYuY3J0IGtleV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvc2VydmVyMi5rZXkgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTEyOC1DQ00tU0hBMjU2IHNpZ19hbGdzPXJzYV9wc3NfcnNhZV9zaGEyNTYgZ3JvdXBzPXNlY3AyNTZyMSB0bHMxM19rZXhfbW9kZXM9ZXBoZW1lcmFsIGNvb2tpZXM9MCB0aWNrZXRzPTAiIFwKKyAgICAgICAgICIkT19ORVhUX0NMSV9OT19DRVJUIC1DQWZpbGUgJERBVEFfRklMRVNfUEFUSC90ZXN0LWNhX2NhdDEyLmNydCAtY2lwaGVyc3VpdGVzIFRMU19BRVNfMTI4X0NDTV9TSEEyNTYgLXNpZ2FsZ3MgcnNhX3Bzc19yc2FlX3NoYTI1NiAtZ3JvdXBzIFAtMjU2IC1tc2cgLXRsczFfMyIgXAogICAgICAgICAgMCBcCiAgICAgICAgICAtcyAiUHJvdG9jb2wgaXMgVExTdjEuMyIgXAogICAgICAgICAgLXMgInNlcnZlciBoZWxsbywgY2hvc2VuIGNpcGhlcnN1aXRlOiBUTFMxLTMtQUVTLTEyOC1DQ00tU0hBMjU2ICggaWQ9NDg2OCApIiBcCkBAIC0xMzQzLDggKzEzNDUsOCBAQAogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgUFNBX1dBTlRfQUxHX0VDREgKIHJlcXVpcmVzX29wZW5zc2xfdGxzMV8zCiBydW5fdGVzdCAiVExTIDEuMyBPLT5tOiBBRVNfMTI4X0NDTV9TSEEyNTYsc2VjcDM4NHIxLGVjZHNhX3NlY3AyNTZyMV9zaGEyNTYiIFwKLSAgICAgICAgICIkUF9TUlYgY3J0X2ZpbGU9ZGF0YV9maWxlcy9lY2RzYV9zZWNwMjU2cjEuY3J0IGtleV9maWxlPWRhdGFfZmlsZXMvZWNkc2Ffc2VjcDI1NnIxLmtleSBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMTI4LUNDTS1TSEEyNTYgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDI1NnIxX3NoYTI1NiBncm91cHM9c2VjcDM4NHIxIHRsczEzX2tleF9tb2Rlcz1lcGhlbWVyYWwgY29va2llcz0wIHRpY2tldHM9MCIgXAotICAgICAgICAgIiRPX05FWFRfQ0xJX05PX0NFUlQgLUNBZmlsZSBkYXRhX2ZpbGVzL3Rlc3QtY2EyLmNydCAtY2lwaGVyc3VpdGVzIFRMU19BRVNfMTI4X0NDTV9TSEEyNTYgLXNpZ2FsZ3MgZWNkc2Ffc2VjcDI1NnIxX3NoYTI1NiAtZ3JvdXBzIFAtMzg0IC1tc2cgLXRsczFfMyIgXAorICAgICAgICAgIiRQX1NSViBjcnRfZmlsZT0kREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3AyNTZyMS5jcnQga2V5X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwMjU2cjEua2V5IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0xMjgtQ0NNLVNIQTI1NiBzaWdfYWxncz1lY2RzYV9zZWNwMjU2cjFfc2hhMjU2IGdyb3Vwcz1zZWNwMzg0cjEgdGxzMTNfa2V4X21vZGVzPWVwaGVtZXJhbCBjb29raWVzPTAgdGlja2V0cz0wIiBcCisgICAgICAgICAiJE9fTkVYVF9DTElfTk9fQ0VSVCAtQ0FmaWxlICREQVRBX0ZJTEVTX1BBVEgvdGVzdC1jYTIuY3J0IC1jaXBoZXJzdWl0ZXMgVExTX0FFU18xMjhfQ0NNX1NIQTI1NiAtc2lnYWxncyBlY2RzYV9zZWNwMjU2cjFfc2hhMjU2IC1ncm91cHMgUC0zODQgLW1zZyAtdGxzMV8zIiBcCiAgICAgICAgICAwIFwKICAgICAgICAgIC1zICJQcm90b2NvbCBpcyBUTFN2MS4zIiBcCiAgICAgICAgICAtcyAic2VydmVyIGhlbGxvLCBjaG9zZW4gY2lwaGVyc3VpdGU6IFRMUzEtMy1BRVMtMTI4LUNDTS1TSEEyNTYgKCBpZD00ODY4ICkiIFwKQEAgLTEzNjAsOCArMTM2Miw4IEBACiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBQU0FfV0FOVF9BTEdfRUNESAogcmVxdWlyZXNfb3BlbnNzbF90bHMxXzMKIHJ1bl90ZXN0ICJUTFMgMS4zIE8tPm06IEFFU18xMjhfQ0NNX1NIQTI1NixzZWNwMzg0cjEsZWNkc2Ffc2VjcDM4NHIxX3NoYTM4NCIgXAotICAgICAgICAgIiRQX1NSViBjcnRfZmlsZT1kYXRhX2ZpbGVzL2VjZHNhX3NlY3AzODRyMS5jcnQga2V5X2ZpbGU9ZGF0YV9maWxlcy9lY2RzYV9zZWNwMzg0cjEua2V5IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0xMjgtQ0NNLVNIQTI1NiBzaWdfYWxncz1lY2RzYV9zZWNwMzg0cjFfc2hhMzg0IGdyb3Vwcz1zZWNwMzg0cjEgdGxzMTNfa2V4X21vZGVzPWVwaGVtZXJhbCBjb29raWVzPTAgdGlja2V0cz0wIiBcCi0gICAgICAgICAiJE9fTkVYVF9DTElfTk9fQ0VSVCAtQ0FmaWxlIGRhdGFfZmlsZXMvdGVzdC1jYTIuY3J0IC1jaXBoZXJzdWl0ZXMgVExTX0FFU18xMjhfQ0NNX1NIQTI1NiAtc2lnYWxncyBlY2RzYV9zZWNwMzg0cjFfc2hhMzg0IC1ncm91cHMgUC0zODQgLW1zZyAtdGxzMV8zIiBcCisgICAgICAgICAiJFBfU1JWIGNydF9maWxlPSREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDM4NHIxLmNydCBrZXlfZmlsZT0kREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3AzODRyMS5rZXkgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTEyOC1DQ00tU0hBMjU2IHNpZ19hbGdzPWVjZHNhX3NlY3AzODRyMV9zaGEzODQgZ3JvdXBzPXNlY3AzODRyMSB0bHMxM19rZXhfbW9kZXM9ZXBoZW1lcmFsIGNvb2tpZXM9MCB0aWNrZXRzPTAiIFwKKyAgICAgICAgICIkT19ORVhUX0NMSV9OT19DRVJUIC1DQWZpbGUgJERBVEFfRklMRVNfUEFUSC90ZXN0LWNhMi5jcnQgLWNpcGhlcnN1aXRlcyBUTFNfQUVTXzEyOF9DQ01fU0hBMjU2IC1zaWdhbGdzIGVjZHNhX3NlY3AzODRyMV9zaGEzODQgLWdyb3VwcyBQLTM4NCAtbXNnIC10bHMxXzMiIFwKICAgICAgICAgIDAgXAogICAgICAgICAgLXMgIlByb3RvY29sIGlzIFRMU3YxLjMiIFwKICAgICAgICAgIC1zICJzZXJ2ZXIgaGVsbG8sIGNob3NlbiBjaXBoZXJzdWl0ZTogVExTMS0zLUFFUy0xMjgtQ0NNLVNIQTI1NiAoIGlkPTQ4NjggKSIgXApAQCAtMTM3Nyw4ICsxMzc5LDggQEAKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIFBTQV9XQU5UX0FMR19FQ0RICiByZXF1aXJlc19vcGVuc3NsX3RsczFfMwogcnVuX3Rlc3QgIlRMUyAxLjMgTy0+bTogQUVTXzEyOF9DQ01fU0hBMjU2LHNlY3AzODRyMSxlY2RzYV9zZWNwNTIxcjFfc2hhNTEyIiBcCi0gICAgICAgICAiJFBfU1JWIGNydF9maWxlPWRhdGFfZmlsZXMvZWNkc2Ffc2VjcDUyMXIxLmNydCBrZXlfZmlsZT1kYXRhX2ZpbGVzL2VjZHNhX3NlY3A1MjFyMS5rZXkgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTEyOC1DQ00tU0hBMjU2IHNpZ19hbGdzPWVjZHNhX3NlY3A1MjFyMV9zaGE1MTIgZ3JvdXBzPXNlY3AzODRyMSB0bHMxM19rZXhfbW9kZXM9ZXBoZW1lcmFsIGNvb2tpZXM9MCB0aWNrZXRzPTAiIFwKLSAgICAgICAgICIkT19ORVhUX0NMSV9OT19DRVJUIC1DQWZpbGUgZGF0YV9maWxlcy90ZXN0LWNhMi5jcnQgLWNpcGhlcnN1aXRlcyBUTFNfQUVTXzEyOF9DQ01fU0hBMjU2IC1zaWdhbGdzIGVjZHNhX3NlY3A1MjFyMV9zaGE1MTIgLWdyb3VwcyBQLTM4NCAtbXNnIC10bHMxXzMiIFwKKyAgICAgICAgICIkUF9TUlYgY3J0X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwNTIxcjEuY3J0IGtleV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDUyMXIxLmtleSBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMTI4LUNDTS1TSEEyNTYgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDUyMXIxX3NoYTUxMiBncm91cHM9c2VjcDM4NHIxIHRsczEzX2tleF9tb2Rlcz1lcGhlbWVyYWwgY29va2llcz0wIHRpY2tldHM9MCIgXAorICAgICAgICAgIiRPX05FWFRfQ0xJX05PX0NFUlQgLUNBZmlsZSAkREFUQV9GSUxFU19QQVRIL3Rlc3QtY2EyLmNydCAtY2lwaGVyc3VpdGVzIFRMU19BRVNfMTI4X0NDTV9TSEEyNTYgLXNpZ2FsZ3MgZWNkc2Ffc2VjcDUyMXIxX3NoYTUxMiAtZ3JvdXBzIFAtMzg0IC1tc2cgLXRsczFfMyIgXAogICAgICAgICAgMCBcCiAgICAgICAgICAtcyAiUHJvdG9jb2wgaXMgVExTdjEuMyIgXAogICAgICAgICAgLXMgInNlcnZlciBoZWxsbywgY2hvc2VuIGNpcGhlcnN1aXRlOiBUTFMxLTMtQUVTLTEyOC1DQ00tU0hBMjU2ICggaWQ9NDg2OCApIiBcCkBAIC0xMzk1LDggKzEzOTcsOCBAQAogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgUFNBX1dBTlRfQUxHX0VDREgKIHJlcXVpcmVzX29wZW5zc2xfdGxzMV8zCiBydW5fdGVzdCAiVExTIDEuMyBPLT5tOiBBRVNfMTI4X0NDTV9TSEEyNTYsc2VjcDM4NHIxLHJzYV9wc3NfcnNhZV9zaGEyNTYiIFwKLSAgICAgICAgICIkUF9TUlYgY3J0X2ZpbGU9ZGF0YV9maWxlcy9zZXJ2ZXIyLXNoYTI1Ni5jcnQga2V5X2ZpbGU9ZGF0YV9maWxlcy9zZXJ2ZXIyLmtleSBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMTI4LUNDTS1TSEEyNTYgc2lnX2FsZ3M9cnNhX3Bzc19yc2FlX3NoYTI1NiBncm91cHM9c2VjcDM4NHIxIHRsczEzX2tleF9tb2Rlcz1lcGhlbWVyYWwgY29va2llcz0wIHRpY2tldHM9MCIgXAotICAgICAgICAgIiRPX05FWFRfQ0xJX05PX0NFUlQgLUNBZmlsZSBkYXRhX2ZpbGVzL3Rlc3QtY2FfY2F0MTIuY3J0IC1jaXBoZXJzdWl0ZXMgVExTX0FFU18xMjhfQ0NNX1NIQTI1NiAtc2lnYWxncyByc2FfcHNzX3JzYWVfc2hhMjU2IC1ncm91cHMgUC0zODQgLW1zZyAtdGxzMV8zIiBcCisgICAgICAgICAiJFBfU1JWIGNydF9maWxlPSREQVRBX0ZJTEVTX1BBVEgvc2VydmVyMi1zaGEyNTYuY3J0IGtleV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvc2VydmVyMi5rZXkgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTEyOC1DQ00tU0hBMjU2IHNpZ19hbGdzPXJzYV9wc3NfcnNhZV9zaGEyNTYgZ3JvdXBzPXNlY3AzODRyMSB0bHMxM19rZXhfbW9kZXM9ZXBoZW1lcmFsIGNvb2tpZXM9MCB0aWNrZXRzPTAiIFwKKyAgICAgICAgICIkT19ORVhUX0NMSV9OT19DRVJUIC1DQWZpbGUgJERBVEFfRklMRVNfUEFUSC90ZXN0LWNhX2NhdDEyLmNydCAtY2lwaGVyc3VpdGVzIFRMU19BRVNfMTI4X0NDTV9TSEEyNTYgLXNpZ2FsZ3MgcnNhX3Bzc19yc2FlX3NoYTI1NiAtZ3JvdXBzIFAtMzg0IC1tc2cgLXRsczFfMyIgXAogICAgICAgICAgMCBcCiAgICAgICAgICAtcyAiUHJvdG9jb2wgaXMgVExTdjEuMyIgXAogICAgICAgICAgLXMgInNlcnZlciBoZWxsbywgY2hvc2VuIGNpcGhlcnN1aXRlOiBUTFMxLTMtQUVTLTEyOC1DQ00tU0hBMjU2ICggaWQ9NDg2OCApIiBcCkBAIC0xNDEyLDggKzE0MTQsOCBAQAogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgUFNBX1dBTlRfQUxHX0VDREgKIHJlcXVpcmVzX29wZW5zc2xfdGxzMV8zCiBydW5fdGVzdCAiVExTIDEuMyBPLT5tOiBBRVNfMTI4X0NDTV9TSEEyNTYsc2VjcDUyMXIxLGVjZHNhX3NlY3AyNTZyMV9zaGEyNTYiIFwKLSAgICAgICAgICIkUF9TUlYgY3J0X2ZpbGU9ZGF0YV9maWxlcy9lY2RzYV9zZWNwMjU2cjEuY3J0IGtleV9maWxlPWRhdGFfZmlsZXMvZWNkc2Ffc2VjcDI1NnIxLmtleSBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMTI4LUNDTS1TSEEyNTYgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDI1NnIxX3NoYTI1NiBncm91cHM9c2VjcDUyMXIxIHRsczEzX2tleF9tb2Rlcz1lcGhlbWVyYWwgY29va2llcz0wIHRpY2tldHM9MCIgXAotICAgICAgICAgIiRPX05FWFRfQ0xJX05PX0NFUlQgLUNBZmlsZSBkYXRhX2ZpbGVzL3Rlc3QtY2EyLmNydCAtY2lwaGVyc3VpdGVzIFRMU19BRVNfMTI4X0NDTV9TSEEyNTYgLXNpZ2FsZ3MgZWNkc2Ffc2VjcDI1NnIxX3NoYTI1NiAtZ3JvdXBzIFAtNTIxIC1tc2cgLXRsczFfMyIgXAorICAgICAgICAgIiRQX1NSViBjcnRfZmlsZT0kREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3AyNTZyMS5jcnQga2V5X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwMjU2cjEua2V5IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0xMjgtQ0NNLVNIQTI1NiBzaWdfYWxncz1lY2RzYV9zZWNwMjU2cjFfc2hhMjU2IGdyb3Vwcz1zZWNwNTIxcjEgdGxzMTNfa2V4X21vZGVzPWVwaGVtZXJhbCBjb29raWVzPTAgdGlja2V0cz0wIiBcCisgICAgICAgICAiJE9fTkVYVF9DTElfTk9fQ0VSVCAtQ0FmaWxlICREQVRBX0ZJTEVTX1BBVEgvdGVzdC1jYTIuY3J0IC1jaXBoZXJzdWl0ZXMgVExTX0FFU18xMjhfQ0NNX1NIQTI1NiAtc2lnYWxncyBlY2RzYV9zZWNwMjU2cjFfc2hhMjU2IC1ncm91cHMgUC01MjEgLW1zZyAtdGxzMV8zIiBcCiAgICAgICAgICAwIFwKICAgICAgICAgIC1zICJQcm90b2NvbCBpcyBUTFN2MS4zIiBcCiAgICAgICAgICAtcyAic2VydmVyIGhlbGxvLCBjaG9zZW4gY2lwaGVyc3VpdGU6IFRMUzEtMy1BRVMtMTI4LUNDTS1TSEEyNTYgKCBpZD00ODY4ICkiIFwKQEAgLTE0MjksOCArMTQzMSw4IEBACiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBQU0FfV0FOVF9BTEdfRUNESAogcmVxdWlyZXNfb3BlbnNzbF90bHMxXzMKIHJ1bl90ZXN0ICJUTFMgMS4zIE8tPm06IEFFU18xMjhfQ0NNX1NIQTI1NixzZWNwNTIxcjEsZWNkc2Ffc2VjcDM4NHIxX3NoYTM4NCIgXAotICAgICAgICAgIiRQX1NSViBjcnRfZmlsZT1kYXRhX2ZpbGVzL2VjZHNhX3NlY3AzODRyMS5jcnQga2V5X2ZpbGU9ZGF0YV9maWxlcy9lY2RzYV9zZWNwMzg0cjEua2V5IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0xMjgtQ0NNLVNIQTI1NiBzaWdfYWxncz1lY2RzYV9zZWNwMzg0cjFfc2hhMzg0IGdyb3Vwcz1zZWNwNTIxcjEgdGxzMTNfa2V4X21vZGVzPWVwaGVtZXJhbCBjb29raWVzPTAgdGlja2V0cz0wIiBcCi0gICAgICAgICAiJE9fTkVYVF9DTElfTk9fQ0VSVCAtQ0FmaWxlIGRhdGFfZmlsZXMvdGVzdC1jYTIuY3J0IC1jaXBoZXJzdWl0ZXMgVExTX0FFU18xMjhfQ0NNX1NIQTI1NiAtc2lnYWxncyBlY2RzYV9zZWNwMzg0cjFfc2hhMzg0IC1ncm91cHMgUC01MjEgLW1zZyAtdGxzMV8zIiBcCisgICAgICAgICAiJFBfU1JWIGNydF9maWxlPSREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDM4NHIxLmNydCBrZXlfZmlsZT0kREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3AzODRyMS5rZXkgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTEyOC1DQ00tU0hBMjU2IHNpZ19hbGdzPWVjZHNhX3NlY3AzODRyMV9zaGEzODQgZ3JvdXBzPXNlY3A1MjFyMSB0bHMxM19rZXhfbW9kZXM9ZXBoZW1lcmFsIGNvb2tpZXM9MCB0aWNrZXRzPTAiIFwKKyAgICAgICAgICIkT19ORVhUX0NMSV9OT19DRVJUIC1DQWZpbGUgJERBVEFfRklMRVNfUEFUSC90ZXN0LWNhMi5jcnQgLWNpcGhlcnN1aXRlcyBUTFNfQUVTXzEyOF9DQ01fU0hBMjU2IC1zaWdhbGdzIGVjZHNhX3NlY3AzODRyMV9zaGEzODQgLWdyb3VwcyBQLTUyMSAtbXNnIC10bHMxXzMiIFwKICAgICAgICAgIDAgXAogICAgICAgICAgLXMgIlByb3RvY29sIGlzIFRMU3YxLjMiIFwKICAgICAgICAgIC1zICJzZXJ2ZXIgaGVsbG8sIGNob3NlbiBjaXBoZXJzdWl0ZTogVExTMS0zLUFFUy0xMjgtQ0NNLVNIQTI1NiAoIGlkPTQ4NjggKSIgXApAQCAtMTQ0Niw4ICsxNDQ4LDggQEAKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIFBTQV9XQU5UX0FMR19FQ0RICiByZXF1aXJlc19vcGVuc3NsX3RsczFfMwogcnVuX3Rlc3QgIlRMUyAxLjMgTy0+bTogQUVTXzEyOF9DQ01fU0hBMjU2LHNlY3A1MjFyMSxlY2RzYV9zZWNwNTIxcjFfc2hhNTEyIiBcCi0gICAgICAgICAiJFBfU1JWIGNydF9maWxlPWRhdGFfZmlsZXMvZWNkc2Ffc2VjcDUyMXIxLmNydCBrZXlfZmlsZT1kYXRhX2ZpbGVzL2VjZHNhX3NlY3A1MjFyMS5rZXkgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTEyOC1DQ00tU0hBMjU2IHNpZ19hbGdzPWVjZHNhX3NlY3A1MjFyMV9zaGE1MTIgZ3JvdXBzPXNlY3A1MjFyMSB0bHMxM19rZXhfbW9kZXM9ZXBoZW1lcmFsIGNvb2tpZXM9MCB0aWNrZXRzPTAiIFwKLSAgICAgICAgICIkT19ORVhUX0NMSV9OT19DRVJUIC1DQWZpbGUgZGF0YV9maWxlcy90ZXN0LWNhMi5jcnQgLWNpcGhlcnN1aXRlcyBUTFNfQUVTXzEyOF9DQ01fU0hBMjU2IC1zaWdhbGdzIGVjZHNhX3NlY3A1MjFyMV9zaGE1MTIgLWdyb3VwcyBQLTUyMSAtbXNnIC10bHMxXzMiIFwKKyAgICAgICAgICIkUF9TUlYgY3J0X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwNTIxcjEuY3J0IGtleV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDUyMXIxLmtleSBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMTI4LUNDTS1TSEEyNTYgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDUyMXIxX3NoYTUxMiBncm91cHM9c2VjcDUyMXIxIHRsczEzX2tleF9tb2Rlcz1lcGhlbWVyYWwgY29va2llcz0wIHRpY2tldHM9MCIgXAorICAgICAgICAgIiRPX05FWFRfQ0xJX05PX0NFUlQgLUNBZmlsZSAkREFUQV9GSUxFU19QQVRIL3Rlc3QtY2EyLmNydCAtY2lwaGVyc3VpdGVzIFRMU19BRVNfMTI4X0NDTV9TSEEyNTYgLXNpZ2FsZ3MgZWNkc2Ffc2VjcDUyMXIxX3NoYTUxMiAtZ3JvdXBzIFAtNTIxIC1tc2cgLXRsczFfMyIgXAogICAgICAgICAgMCBcCiAgICAgICAgICAtcyAiUHJvdG9jb2wgaXMgVExTdjEuMyIgXAogICAgICAgICAgLXMgInNlcnZlciBoZWxsbywgY2hvc2VuIGNpcGhlcnN1aXRlOiBUTFMxLTMtQUVTLTEyOC1DQ00tU0hBMjU2ICggaWQ9NDg2OCApIiBcCkBAIC0xNDY0LDggKzE0NjYsOCBAQAogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgUFNBX1dBTlRfQUxHX0VDREgKIHJlcXVpcmVzX29wZW5zc2xfdGxzMV8zCiBydW5fdGVzdCAiVExTIDEuMyBPLT5tOiBBRVNfMTI4X0NDTV9TSEEyNTYsc2VjcDUyMXIxLHJzYV9wc3NfcnNhZV9zaGEyNTYiIFwKLSAgICAgICAgICIkUF9TUlYgY3J0X2ZpbGU9ZGF0YV9maWxlcy9zZXJ2ZXIyLXNoYTI1Ni5jcnQga2V5X2ZpbGU9ZGF0YV9maWxlcy9zZXJ2ZXIyLmtleSBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMTI4LUNDTS1TSEEyNTYgc2lnX2FsZ3M9cnNhX3Bzc19yc2FlX3NoYTI1NiBncm91cHM9c2VjcDUyMXIxIHRsczEzX2tleF9tb2Rlcz1lcGhlbWVyYWwgY29va2llcz0wIHRpY2tldHM9MCIgXAotICAgICAgICAgIiRPX05FWFRfQ0xJX05PX0NFUlQgLUNBZmlsZSBkYXRhX2ZpbGVzL3Rlc3QtY2FfY2F0MTIuY3J0IC1jaXBoZXJzdWl0ZXMgVExTX0FFU18xMjhfQ0NNX1NIQTI1NiAtc2lnYWxncyByc2FfcHNzX3JzYWVfc2hhMjU2IC1ncm91cHMgUC01MjEgLW1zZyAtdGxzMV8zIiBcCisgICAgICAgICAiJFBfU1JWIGNydF9maWxlPSREQVRBX0ZJTEVTX1BBVEgvc2VydmVyMi1zaGEyNTYuY3J0IGtleV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvc2VydmVyMi5rZXkgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTEyOC1DQ00tU0hBMjU2IHNpZ19hbGdzPXJzYV9wc3NfcnNhZV9zaGEyNTYgZ3JvdXBzPXNlY3A1MjFyMSB0bHMxM19rZXhfbW9kZXM9ZXBoZW1lcmFsIGNvb2tpZXM9MCB0aWNrZXRzPTAiIFwKKyAgICAgICAgICIkT19ORVhUX0NMSV9OT19DRVJUIC1DQWZpbGUgJERBVEFfRklMRVNfUEFUSC90ZXN0LWNhX2NhdDEyLmNydCAtY2lwaGVyc3VpdGVzIFRMU19BRVNfMTI4X0NDTV9TSEEyNTYgLXNpZ2FsZ3MgcnNhX3Bzc19yc2FlX3NoYTI1NiAtZ3JvdXBzIFAtNTIxIC1tc2cgLXRsczFfMyIgXAogICAgICAgICAgMCBcCiAgICAgICAgICAtcyAiUHJvdG9jb2wgaXMgVExTdjEuMyIgXAogICAgICAgICAgLXMgInNlcnZlciBoZWxsbywgY2hvc2VuIGNpcGhlcnN1aXRlOiBUTFMxLTMtQUVTLTEyOC1DQ00tU0hBMjU2ICggaWQ9NDg2OCApIiBcCkBAIC0xNDgxLDggKzE0ODMsOCBAQAogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgUFNBX1dBTlRfQUxHX0VDREgKIHJlcXVpcmVzX29wZW5zc2xfdGxzMV8zCiBydW5fdGVzdCAiVExTIDEuMyBPLT5tOiBBRVNfMTI4X0NDTV9TSEEyNTYseDI1NTE5LGVjZHNhX3NlY3AyNTZyMV9zaGEyNTYiIFwKLSAgICAgICAgICIkUF9TUlYgY3J0X2ZpbGU9ZGF0YV9maWxlcy9lY2RzYV9zZWNwMjU2cjEuY3J0IGtleV9maWxlPWRhdGFfZmlsZXMvZWNkc2Ffc2VjcDI1NnIxLmtleSBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMTI4LUNDTS1TSEEyNTYgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDI1NnIxX3NoYTI1NiBncm91cHM9eDI1NTE5IHRsczEzX2tleF9tb2Rlcz1lcGhlbWVyYWwgY29va2llcz0wIHRpY2tldHM9MCIgXAotICAgICAgICAgIiRPX05FWFRfQ0xJX05PX0NFUlQgLUNBZmlsZSBkYXRhX2ZpbGVzL3Rlc3QtY2EyLmNydCAtY2lwaGVyc3VpdGVzIFRMU19BRVNfMTI4X0NDTV9TSEEyNTYgLXNpZ2FsZ3MgZWNkc2Ffc2VjcDI1NnIxX3NoYTI1NiAtZ3JvdXBzIFgyNTUxOSAtbXNnIC10bHMxXzMiIFwKKyAgICAgICAgICIkUF9TUlYgY3J0X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwMjU2cjEuY3J0IGtleV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDI1NnIxLmtleSBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMTI4LUNDTS1TSEEyNTYgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDI1NnIxX3NoYTI1NiBncm91cHM9eDI1NTE5IHRsczEzX2tleF9tb2Rlcz1lcGhlbWVyYWwgY29va2llcz0wIHRpY2tldHM9MCIgXAorICAgICAgICAgIiRPX05FWFRfQ0xJX05PX0NFUlQgLUNBZmlsZSAkREFUQV9GSUxFU19QQVRIL3Rlc3QtY2EyLmNydCAtY2lwaGVyc3VpdGVzIFRMU19BRVNfMTI4X0NDTV9TSEEyNTYgLXNpZ2FsZ3MgZWNkc2Ffc2VjcDI1NnIxX3NoYTI1NiAtZ3JvdXBzIFgyNTUxOSAtbXNnIC10bHMxXzMiIFwKICAgICAgICAgIDAgXAogICAgICAgICAgLXMgIlByb3RvY29sIGlzIFRMU3YxLjMiIFwKICAgICAgICAgIC1zICJzZXJ2ZXIgaGVsbG8sIGNob3NlbiBjaXBoZXJzdWl0ZTogVExTMS0zLUFFUy0xMjgtQ0NNLVNIQTI1NiAoIGlkPTQ4NjggKSIgXApAQCAtMTQ5OCw4ICsxNTAwLDggQEAKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIFBTQV9XQU5UX0FMR19FQ0RICiByZXF1aXJlc19vcGVuc3NsX3RsczFfMwogcnVuX3Rlc3QgIlRMUyAxLjMgTy0+bTogQUVTXzEyOF9DQ01fU0hBMjU2LHgyNTUxOSxlY2RzYV9zZWNwMzg0cjFfc2hhMzg0IiBcCi0gICAgICAgICAiJFBfU1JWIGNydF9maWxlPWRhdGFfZmlsZXMvZWNkc2Ffc2VjcDM4NHIxLmNydCBrZXlfZmlsZT1kYXRhX2ZpbGVzL2VjZHNhX3NlY3AzODRyMS5rZXkgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTEyOC1DQ00tU0hBMjU2IHNpZ19hbGdzPWVjZHNhX3NlY3AzODRyMV9zaGEzODQgZ3JvdXBzPXgyNTUxOSB0bHMxM19rZXhfbW9kZXM9ZXBoZW1lcmFsIGNvb2tpZXM9MCB0aWNrZXRzPTAiIFwKLSAgICAgICAgICIkT19ORVhUX0NMSV9OT19DRVJUIC1DQWZpbGUgZGF0YV9maWxlcy90ZXN0LWNhMi5jcnQgLWNpcGhlcnN1aXRlcyBUTFNfQUVTXzEyOF9DQ01fU0hBMjU2IC1zaWdhbGdzIGVjZHNhX3NlY3AzODRyMV9zaGEzODQgLWdyb3VwcyBYMjU1MTkgLW1zZyAtdGxzMV8zIiBcCisgICAgICAgICAiJFBfU1JWIGNydF9maWxlPSREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDM4NHIxLmNydCBrZXlfZmlsZT0kREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3AzODRyMS5rZXkgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTEyOC1DQ00tU0hBMjU2IHNpZ19hbGdzPWVjZHNhX3NlY3AzODRyMV9zaGEzODQgZ3JvdXBzPXgyNTUxOSB0bHMxM19rZXhfbW9kZXM9ZXBoZW1lcmFsIGNvb2tpZXM9MCB0aWNrZXRzPTAiIFwKKyAgICAgICAgICIkT19ORVhUX0NMSV9OT19DRVJUIC1DQWZpbGUgJERBVEFfRklMRVNfUEFUSC90ZXN0LWNhMi5jcnQgLWNpcGhlcnN1aXRlcyBUTFNfQUVTXzEyOF9DQ01fU0hBMjU2IC1zaWdhbGdzIGVjZHNhX3NlY3AzODRyMV9zaGEzODQgLWdyb3VwcyBYMjU1MTkgLW1zZyAtdGxzMV8zIiBcCiAgICAgICAgICAwIFwKICAgICAgICAgIC1zICJQcm90b2NvbCBpcyBUTFN2MS4zIiBcCiAgICAgICAgICAtcyAic2VydmVyIGhlbGxvLCBjaG9zZW4gY2lwaGVyc3VpdGU6IFRMUzEtMy1BRVMtMTI4LUNDTS1TSEEyNTYgKCBpZD00ODY4ICkiIFwKQEAgLTE1MTUsOCArMTUxNyw4IEBACiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBQU0FfV0FOVF9BTEdfRUNESAogcmVxdWlyZXNfb3BlbnNzbF90bHMxXzMKIHJ1bl90ZXN0ICJUTFMgMS4zIE8tPm06IEFFU18xMjhfQ0NNX1NIQTI1Nix4MjU1MTksZWNkc2Ffc2VjcDUyMXIxX3NoYTUxMiIgXAotICAgICAgICAgIiRQX1NSViBjcnRfZmlsZT1kYXRhX2ZpbGVzL2VjZHNhX3NlY3A1MjFyMS5jcnQga2V5X2ZpbGU9ZGF0YV9maWxlcy9lY2RzYV9zZWNwNTIxcjEua2V5IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0xMjgtQ0NNLVNIQTI1NiBzaWdfYWxncz1lY2RzYV9zZWNwNTIxcjFfc2hhNTEyIGdyb3Vwcz14MjU1MTkgdGxzMTNfa2V4X21vZGVzPWVwaGVtZXJhbCBjb29raWVzPTAgdGlja2V0cz0wIiBcCi0gICAgICAgICAiJE9fTkVYVF9DTElfTk9fQ0VSVCAtQ0FmaWxlIGRhdGFfZmlsZXMvdGVzdC1jYTIuY3J0IC1jaXBoZXJzdWl0ZXMgVExTX0FFU18xMjhfQ0NNX1NIQTI1NiAtc2lnYWxncyBlY2RzYV9zZWNwNTIxcjFfc2hhNTEyIC1ncm91cHMgWDI1NTE5IC1tc2cgLXRsczFfMyIgXAorICAgICAgICAgIiRQX1NSViBjcnRfZmlsZT0kREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3A1MjFyMS5jcnQga2V5X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwNTIxcjEua2V5IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0xMjgtQ0NNLVNIQTI1NiBzaWdfYWxncz1lY2RzYV9zZWNwNTIxcjFfc2hhNTEyIGdyb3Vwcz14MjU1MTkgdGxzMTNfa2V4X21vZGVzPWVwaGVtZXJhbCBjb29raWVzPTAgdGlja2V0cz0wIiBcCisgICAgICAgICAiJE9fTkVYVF9DTElfTk9fQ0VSVCAtQ0FmaWxlICREQVRBX0ZJTEVTX1BBVEgvdGVzdC1jYTIuY3J0IC1jaXBoZXJzdWl0ZXMgVExTX0FFU18xMjhfQ0NNX1NIQTI1NiAtc2lnYWxncyBlY2RzYV9zZWNwNTIxcjFfc2hhNTEyIC1ncm91cHMgWDI1NTE5IC1tc2cgLXRsczFfMyIgXAogICAgICAgICAgMCBcCiAgICAgICAgICAtcyAiUHJvdG9jb2wgaXMgVExTdjEuMyIgXAogICAgICAgICAgLXMgInNlcnZlciBoZWxsbywgY2hvc2VuIGNpcGhlcnN1aXRlOiBUTFMxLTMtQUVTLTEyOC1DQ00tU0hBMjU2ICggaWQ9NDg2OCApIiBcCkBAIC0xNTMzLDggKzE1MzUsOCBAQAogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgUFNBX1dBTlRfQUxHX0VDREgKIHJlcXVpcmVzX29wZW5zc2xfdGxzMV8zCiBydW5fdGVzdCAiVExTIDEuMyBPLT5tOiBBRVNfMTI4X0NDTV9TSEEyNTYseDI1NTE5LHJzYV9wc3NfcnNhZV9zaGEyNTYiIFwKLSAgICAgICAgICIkUF9TUlYgY3J0X2ZpbGU9ZGF0YV9maWxlcy9zZXJ2ZXIyLXNoYTI1Ni5jcnQga2V5X2ZpbGU9ZGF0YV9maWxlcy9zZXJ2ZXIyLmtleSBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMTI4LUNDTS1TSEEyNTYgc2lnX2FsZ3M9cnNhX3Bzc19yc2FlX3NoYTI1NiBncm91cHM9eDI1NTE5IHRsczEzX2tleF9tb2Rlcz1lcGhlbWVyYWwgY29va2llcz0wIHRpY2tldHM9MCIgXAotICAgICAgICAgIiRPX05FWFRfQ0xJX05PX0NFUlQgLUNBZmlsZSBkYXRhX2ZpbGVzL3Rlc3QtY2FfY2F0MTIuY3J0IC1jaXBoZXJzdWl0ZXMgVExTX0FFU18xMjhfQ0NNX1NIQTI1NiAtc2lnYWxncyByc2FfcHNzX3JzYWVfc2hhMjU2IC1ncm91cHMgWDI1NTE5IC1tc2cgLXRsczFfMyIgXAorICAgICAgICAgIiRQX1NSViBjcnRfZmlsZT0kREFUQV9GSUxFU19QQVRIL3NlcnZlcjItc2hhMjU2LmNydCBrZXlfZmlsZT0kREFUQV9GSUxFU19QQVRIL3NlcnZlcjIua2V5IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0xMjgtQ0NNLVNIQTI1NiBzaWdfYWxncz1yc2FfcHNzX3JzYWVfc2hhMjU2IGdyb3Vwcz14MjU1MTkgdGxzMTNfa2V4X21vZGVzPWVwaGVtZXJhbCBjb29raWVzPTAgdGlja2V0cz0wIiBcCisgICAgICAgICAiJE9fTkVYVF9DTElfTk9fQ0VSVCAtQ0FmaWxlICREQVRBX0ZJTEVTX1BBVEgvdGVzdC1jYV9jYXQxMi5jcnQgLWNpcGhlcnN1aXRlcyBUTFNfQUVTXzEyOF9DQ01fU0hBMjU2IC1zaWdhbGdzIHJzYV9wc3NfcnNhZV9zaGEyNTYgLWdyb3VwcyBYMjU1MTkgLW1zZyAtdGxzMV8zIiBcCiAgICAgICAgICAwIFwKICAgICAgICAgIC1zICJQcm90b2NvbCBpcyBUTFN2MS4zIiBcCiAgICAgICAgICAtcyAic2VydmVyIGhlbGxvLCBjaG9zZW4gY2lwaGVyc3VpdGU6IFRMUzEtMy1BRVMtMTI4LUNDTS1TSEEyNTYgKCBpZD00ODY4ICkiIFwKQEAgLTE1NTAsOCArMTU1Miw4IEBACiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBQU0FfV0FOVF9BTEdfRUNESAogcmVxdWlyZXNfb3BlbnNzbF90bHMxXzMKIHJ1bl90ZXN0ICJUTFMgMS4zIE8tPm06IEFFU18xMjhfQ0NNX1NIQTI1Nix4NDQ4LGVjZHNhX3NlY3AyNTZyMV9zaGEyNTYiIFwKLSAgICAgICAgICIkUF9TUlYgY3J0X2ZpbGU9ZGF0YV9maWxlcy9lY2RzYV9zZWNwMjU2cjEuY3J0IGtleV9maWxlPWRhdGFfZmlsZXMvZWNkc2Ffc2VjcDI1NnIxLmtleSBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMTI4LUNDTS1TSEEyNTYgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDI1NnIxX3NoYTI1NiBncm91cHM9eDQ0OCB0bHMxM19rZXhfbW9kZXM9ZXBoZW1lcmFsIGNvb2tpZXM9MCB0aWNrZXRzPTAiIFwKLSAgICAgICAgICIkT19ORVhUX0NMSV9OT19DRVJUIC1DQWZpbGUgZGF0YV9maWxlcy90ZXN0LWNhMi5jcnQgLWNpcGhlcnN1aXRlcyBUTFNfQUVTXzEyOF9DQ01fU0hBMjU2IC1zaWdhbGdzIGVjZHNhX3NlY3AyNTZyMV9zaGEyNTYgLWdyb3VwcyBYNDQ4IC1tc2cgLXRsczFfMyIgXAorICAgICAgICAgIiRQX1NSViBjcnRfZmlsZT0kREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3AyNTZyMS5jcnQga2V5X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwMjU2cjEua2V5IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0xMjgtQ0NNLVNIQTI1NiBzaWdfYWxncz1lY2RzYV9zZWNwMjU2cjFfc2hhMjU2IGdyb3Vwcz14NDQ4IHRsczEzX2tleF9tb2Rlcz1lcGhlbWVyYWwgY29va2llcz0wIHRpY2tldHM9MCIgXAorICAgICAgICAgIiRPX05FWFRfQ0xJX05PX0NFUlQgLUNBZmlsZSAkREFUQV9GSUxFU19QQVRIL3Rlc3QtY2EyLmNydCAtY2lwaGVyc3VpdGVzIFRMU19BRVNfMTI4X0NDTV9TSEEyNTYgLXNpZ2FsZ3MgZWNkc2Ffc2VjcDI1NnIxX3NoYTI1NiAtZ3JvdXBzIFg0NDggLW1zZyAtdGxzMV8zIiBcCiAgICAgICAgICAwIFwKICAgICAgICAgIC1zICJQcm90b2NvbCBpcyBUTFN2MS4zIiBcCiAgICAgICAgICAtcyAic2VydmVyIGhlbGxvLCBjaG9zZW4gY2lwaGVyc3VpdGU6IFRMUzEtMy1BRVMtMTI4LUNDTS1TSEEyNTYgKCBpZD00ODY4ICkiIFwKQEAgLTE1NjcsOCArMTU2OSw4IEBACiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBQU0FfV0FOVF9BTEdfRUNESAogcmVxdWlyZXNfb3BlbnNzbF90bHMxXzMKIHJ1bl90ZXN0ICJUTFMgMS4zIE8tPm06IEFFU18xMjhfQ0NNX1NIQTI1Nix4NDQ4LGVjZHNhX3NlY3AzODRyMV9zaGEzODQiIFwKLSAgICAgICAgICIkUF9TUlYgY3J0X2ZpbGU9ZGF0YV9maWxlcy9lY2RzYV9zZWNwMzg0cjEuY3J0IGtleV9maWxlPWRhdGFfZmlsZXMvZWNkc2Ffc2VjcDM4NHIxLmtleSBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMTI4LUNDTS1TSEEyNTYgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDM4NHIxX3NoYTM4NCBncm91cHM9eDQ0OCB0bHMxM19rZXhfbW9kZXM9ZXBoZW1lcmFsIGNvb2tpZXM9MCB0aWNrZXRzPTAiIFwKLSAgICAgICAgICIkT19ORVhUX0NMSV9OT19DRVJUIC1DQWZpbGUgZGF0YV9maWxlcy90ZXN0LWNhMi5jcnQgLWNpcGhlcnN1aXRlcyBUTFNfQUVTXzEyOF9DQ01fU0hBMjU2IC1zaWdhbGdzIGVjZHNhX3NlY3AzODRyMV9zaGEzODQgLWdyb3VwcyBYNDQ4IC1tc2cgLXRsczFfMyIgXAorICAgICAgICAgIiRQX1NSViBjcnRfZmlsZT0kREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3AzODRyMS5jcnQga2V5X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwMzg0cjEua2V5IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0xMjgtQ0NNLVNIQTI1NiBzaWdfYWxncz1lY2RzYV9zZWNwMzg0cjFfc2hhMzg0IGdyb3Vwcz14NDQ4IHRsczEzX2tleF9tb2Rlcz1lcGhlbWVyYWwgY29va2llcz0wIHRpY2tldHM9MCIgXAorICAgICAgICAgIiRPX05FWFRfQ0xJX05PX0NFUlQgLUNBZmlsZSAkREFUQV9GSUxFU19QQVRIL3Rlc3QtY2EyLmNydCAtY2lwaGVyc3VpdGVzIFRMU19BRVNfMTI4X0NDTV9TSEEyNTYgLXNpZ2FsZ3MgZWNkc2Ffc2VjcDM4NHIxX3NoYTM4NCAtZ3JvdXBzIFg0NDggLW1zZyAtdGxzMV8zIiBcCiAgICAgICAgICAwIFwKICAgICAgICAgIC1zICJQcm90b2NvbCBpcyBUTFN2MS4zIiBcCiAgICAgICAgICAtcyAic2VydmVyIGhlbGxvLCBjaG9zZW4gY2lwaGVyc3VpdGU6IFRMUzEtMy1BRVMtMTI4LUNDTS1TSEEyNTYgKCBpZD00ODY4ICkiIFwKQEAgLTE1ODQsOCArMTU4Niw4IEBACiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBQU0FfV0FOVF9BTEdfRUNESAogcmVxdWlyZXNfb3BlbnNzbF90bHMxXzMKIHJ1bl90ZXN0ICJUTFMgMS4zIE8tPm06IEFFU18xMjhfQ0NNX1NIQTI1Nix4NDQ4LGVjZHNhX3NlY3A1MjFyMV9zaGE1MTIiIFwKLSAgICAgICAgICIkUF9TUlYgY3J0X2ZpbGU9ZGF0YV9maWxlcy9lY2RzYV9zZWNwNTIxcjEuY3J0IGtleV9maWxlPWRhdGFfZmlsZXMvZWNkc2Ffc2VjcDUyMXIxLmtleSBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMTI4LUNDTS1TSEEyNTYgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDUyMXIxX3NoYTUxMiBncm91cHM9eDQ0OCB0bHMxM19rZXhfbW9kZXM9ZXBoZW1lcmFsIGNvb2tpZXM9MCB0aWNrZXRzPTAiIFwKLSAgICAgICAgICIkT19ORVhUX0NMSV9OT19DRVJUIC1DQWZpbGUgZGF0YV9maWxlcy90ZXN0LWNhMi5jcnQgLWNpcGhlcnN1aXRlcyBUTFNfQUVTXzEyOF9DQ01fU0hBMjU2IC1zaWdhbGdzIGVjZHNhX3NlY3A1MjFyMV9zaGE1MTIgLWdyb3VwcyBYNDQ4IC1tc2cgLXRsczFfMyIgXAorICAgICAgICAgIiRQX1NSViBjcnRfZmlsZT0kREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3A1MjFyMS5jcnQga2V5X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwNTIxcjEua2V5IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0xMjgtQ0NNLVNIQTI1NiBzaWdfYWxncz1lY2RzYV9zZWNwNTIxcjFfc2hhNTEyIGdyb3Vwcz14NDQ4IHRsczEzX2tleF9tb2Rlcz1lcGhlbWVyYWwgY29va2llcz0wIHRpY2tldHM9MCIgXAorICAgICAgICAgIiRPX05FWFRfQ0xJX05PX0NFUlQgLUNBZmlsZSAkREFUQV9GSUxFU19QQVRIL3Rlc3QtY2EyLmNydCAtY2lwaGVyc3VpdGVzIFRMU19BRVNfMTI4X0NDTV9TSEEyNTYgLXNpZ2FsZ3MgZWNkc2Ffc2VjcDUyMXIxX3NoYTUxMiAtZ3JvdXBzIFg0NDggLW1zZyAtdGxzMV8zIiBcCiAgICAgICAgICAwIFwKICAgICAgICAgIC1zICJQcm90b2NvbCBpcyBUTFN2MS4zIiBcCiAgICAgICAgICAtcyAic2VydmVyIGhlbGxvLCBjaG9zZW4gY2lwaGVyc3VpdGU6IFRMUzEtMy1BRVMtMTI4LUNDTS1TSEEyNTYgKCBpZD00ODY4ICkiIFwKQEAgLTE2MDIsOCArMTYwNCw4IEBACiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBQU0FfV0FOVF9BTEdfRUNESAogcmVxdWlyZXNfb3BlbnNzbF90bHMxXzMKIHJ1bl90ZXN0ICJUTFMgMS4zIE8tPm06IEFFU18xMjhfQ0NNX1NIQTI1Nix4NDQ4LHJzYV9wc3NfcnNhZV9zaGEyNTYiIFwKLSAgICAgICAgICIkUF9TUlYgY3J0X2ZpbGU9ZGF0YV9maWxlcy9zZXJ2ZXIyLXNoYTI1Ni5jcnQga2V5X2ZpbGU9ZGF0YV9maWxlcy9zZXJ2ZXIyLmtleSBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMTI4LUNDTS1TSEEyNTYgc2lnX2FsZ3M9cnNhX3Bzc19yc2FlX3NoYTI1NiBncm91cHM9eDQ0OCB0bHMxM19rZXhfbW9kZXM9ZXBoZW1lcmFsIGNvb2tpZXM9MCB0aWNrZXRzPTAiIFwKLSAgICAgICAgICIkT19ORVhUX0NMSV9OT19DRVJUIC1DQWZpbGUgZGF0YV9maWxlcy90ZXN0LWNhX2NhdDEyLmNydCAtY2lwaGVyc3VpdGVzIFRMU19BRVNfMTI4X0NDTV9TSEEyNTYgLXNpZ2FsZ3MgcnNhX3Bzc19yc2FlX3NoYTI1NiAtZ3JvdXBzIFg0NDggLW1zZyAtdGxzMV8zIiBcCisgICAgICAgICAiJFBfU1JWIGNydF9maWxlPSREQVRBX0ZJTEVTX1BBVEgvc2VydmVyMi1zaGEyNTYuY3J0IGtleV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvc2VydmVyMi5rZXkgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTEyOC1DQ00tU0hBMjU2IHNpZ19hbGdzPXJzYV9wc3NfcnNhZV9zaGEyNTYgZ3JvdXBzPXg0NDggdGxzMTNfa2V4X21vZGVzPWVwaGVtZXJhbCBjb29raWVzPTAgdGlja2V0cz0wIiBcCisgICAgICAgICAiJE9fTkVYVF9DTElfTk9fQ0VSVCAtQ0FmaWxlICREQVRBX0ZJTEVTX1BBVEgvdGVzdC1jYV9jYXQxMi5jcnQgLWNpcGhlcnN1aXRlcyBUTFNfQUVTXzEyOF9DQ01fU0hBMjU2IC1zaWdhbGdzIHJzYV9wc3NfcnNhZV9zaGEyNTYgLWdyb3VwcyBYNDQ4IC1tc2cgLXRsczFfMyIgXAogICAgICAgICAgMCBcCiAgICAgICAgICAtcyAiUHJvdG9jb2wgaXMgVExTdjEuMyIgXAogICAgICAgICAgLXMgInNlcnZlciBoZWxsbywgY2hvc2VuIGNpcGhlcnN1aXRlOiBUTFMxLTMtQUVTLTEyOC1DQ00tU0hBMjU2ICggaWQ9NDg2OCApIiBcCkBAIC0xNjIwLDggKzE2MjIsOCBAQAogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgUFNBX1dBTlRfREhfUkZDNzkxOV8yMDQ4CiByZXF1aXJlc19vcGVuc3NsX3RsczFfM193aXRoX2ZmZGgKIHJ1bl90ZXN0ICJUTFMgMS4zIE8tPm06IEFFU18xMjhfQ0NNX1NIQTI1NixmZmRoZTIwNDgsZWNkc2Ffc2VjcDI1NnIxX3NoYTI1NiIgXAotICAgICAgICAgIiRQX1NSViBjcnRfZmlsZT1kYXRhX2ZpbGVzL2VjZHNhX3NlY3AyNTZyMS5jcnQga2V5X2ZpbGU9ZGF0YV9maWxlcy9lY2RzYV9zZWNwMjU2cjEua2V5IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0xMjgtQ0NNLVNIQTI1NiBzaWdfYWxncz1lY2RzYV9zZWNwMjU2cjFfc2hhMjU2IGdyb3Vwcz1mZmRoZTIwNDggdGxzMTNfa2V4X21vZGVzPWVwaGVtZXJhbCBjb29raWVzPTAgdGlja2V0cz0wIiBcCi0gICAgICAgICAiJE9fTkVYVF9DTElfTk9fQ0VSVCAtQ0FmaWxlIGRhdGFfZmlsZXMvdGVzdC1jYTIuY3J0IC1jaXBoZXJzdWl0ZXMgVExTX0FFU18xMjhfQ0NNX1NIQTI1NiAtc2lnYWxncyBlY2RzYV9zZWNwMjU2cjFfc2hhMjU2IC1ncm91cHMgZmZkaGUyMDQ4IC1tc2cgLXRsczFfMyIgXAorICAgICAgICAgIiRQX1NSViBjcnRfZmlsZT0kREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3AyNTZyMS5jcnQga2V5X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwMjU2cjEua2V5IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0xMjgtQ0NNLVNIQTI1NiBzaWdfYWxncz1lY2RzYV9zZWNwMjU2cjFfc2hhMjU2IGdyb3Vwcz1mZmRoZTIwNDggdGxzMTNfa2V4X21vZGVzPWVwaGVtZXJhbCBjb29raWVzPTAgdGlja2V0cz0wIiBcCisgICAgICAgICAiJE9fTkVYVF9DTElfTk9fQ0VSVCAtQ0FmaWxlICREQVRBX0ZJTEVTX1BBVEgvdGVzdC1jYTIuY3J0IC1jaXBoZXJzdWl0ZXMgVExTX0FFU18xMjhfQ0NNX1NIQTI1NiAtc2lnYWxncyBlY2RzYV9zZWNwMjU2cjFfc2hhMjU2IC1ncm91cHMgZmZkaGUyMDQ4IC1tc2cgLXRsczFfMyIgXAogICAgICAgICAgMCBcCiAgICAgICAgICAtcyAiUHJvdG9jb2wgaXMgVExTdjEuMyIgXAogICAgICAgICAgLXMgInNlcnZlciBoZWxsbywgY2hvc2VuIGNpcGhlcnN1aXRlOiBUTFMxLTMtQUVTLTEyOC1DQ00tU0hBMjU2ICggaWQ9NDg2OCApIiBcCkBAIC0xNjM4LDggKzE2NDAsOCBAQAogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgUFNBX1dBTlRfREhfUkZDNzkxOV8yMDQ4CiByZXF1aXJlc19vcGVuc3NsX3RsczFfM193aXRoX2ZmZGgKIHJ1bl90ZXN0ICJUTFMgMS4zIE8tPm06IEFFU18xMjhfQ0NNX1NIQTI1NixmZmRoZTIwNDgsZWNkc2Ffc2VjcDM4NHIxX3NoYTM4NCIgXAotICAgICAgICAgIiRQX1NSViBjcnRfZmlsZT1kYXRhX2ZpbGVzL2VjZHNhX3NlY3AzODRyMS5jcnQga2V5X2ZpbGU9ZGF0YV9maWxlcy9lY2RzYV9zZWNwMzg0cjEua2V5IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0xMjgtQ0NNLVNIQTI1NiBzaWdfYWxncz1lY2RzYV9zZWNwMzg0cjFfc2hhMzg0IGdyb3Vwcz1mZmRoZTIwNDggdGxzMTNfa2V4X21vZGVzPWVwaGVtZXJhbCBjb29raWVzPTAgdGlja2V0cz0wIiBcCi0gICAgICAgICAiJE9fTkVYVF9DTElfTk9fQ0VSVCAtQ0FmaWxlIGRhdGFfZmlsZXMvdGVzdC1jYTIuY3J0IC1jaXBoZXJzdWl0ZXMgVExTX0FFU18xMjhfQ0NNX1NIQTI1NiAtc2lnYWxncyBlY2RzYV9zZWNwMzg0cjFfc2hhMzg0IC1ncm91cHMgZmZkaGUyMDQ4IC1tc2cgLXRsczFfMyIgXAorICAgICAgICAgIiRQX1NSViBjcnRfZmlsZT0kREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3AzODRyMS5jcnQga2V5X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwMzg0cjEua2V5IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0xMjgtQ0NNLVNIQTI1NiBzaWdfYWxncz1lY2RzYV9zZWNwMzg0cjFfc2hhMzg0IGdyb3Vwcz1mZmRoZTIwNDggdGxzMTNfa2V4X21vZGVzPWVwaGVtZXJhbCBjb29raWVzPTAgdGlja2V0cz0wIiBcCisgICAgICAgICAiJE9fTkVYVF9DTElfTk9fQ0VSVCAtQ0FmaWxlICREQVRBX0ZJTEVTX1BBVEgvdGVzdC1jYTIuY3J0IC1jaXBoZXJzdWl0ZXMgVExTX0FFU18xMjhfQ0NNX1NIQTI1NiAtc2lnYWxncyBlY2RzYV9zZWNwMzg0cjFfc2hhMzg0IC1ncm91cHMgZmZkaGUyMDQ4IC1tc2cgLXRsczFfMyIgXAogICAgICAgICAgMCBcCiAgICAgICAgICAtcyAiUHJvdG9jb2wgaXMgVExTdjEuMyIgXAogICAgICAgICAgLXMgInNlcnZlciBoZWxsbywgY2hvc2VuIGNpcGhlcnN1aXRlOiBUTFMxLTMtQUVTLTEyOC1DQ00tU0hBMjU2ICggaWQ9NDg2OCApIiBcCkBAIC0xNjU2LDggKzE2NTgsOCBAQAogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgUFNBX1dBTlRfREhfUkZDNzkxOV8yMDQ4CiByZXF1aXJlc19vcGVuc3NsX3RsczFfM193aXRoX2ZmZGgKIHJ1bl90ZXN0ICJUTFMgMS4zIE8tPm06IEFFU18xMjhfQ0NNX1NIQTI1NixmZmRoZTIwNDgsZWNkc2Ffc2VjcDUyMXIxX3NoYTUxMiIgXAotICAgICAgICAgIiRQX1NSViBjcnRfZmlsZT1kYXRhX2ZpbGVzL2VjZHNhX3NlY3A1MjFyMS5jcnQga2V5X2ZpbGU9ZGF0YV9maWxlcy9lY2RzYV9zZWNwNTIxcjEua2V5IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0xMjgtQ0NNLVNIQTI1NiBzaWdfYWxncz1lY2RzYV9zZWNwNTIxcjFfc2hhNTEyIGdyb3Vwcz1mZmRoZTIwNDggdGxzMTNfa2V4X21vZGVzPWVwaGVtZXJhbCBjb29raWVzPTAgdGlja2V0cz0wIiBcCi0gICAgICAgICAiJE9fTkVYVF9DTElfTk9fQ0VSVCAtQ0FmaWxlIGRhdGFfZmlsZXMvdGVzdC1jYTIuY3J0IC1jaXBoZXJzdWl0ZXMgVExTX0FFU18xMjhfQ0NNX1NIQTI1NiAtc2lnYWxncyBlY2RzYV9zZWNwNTIxcjFfc2hhNTEyIC1ncm91cHMgZmZkaGUyMDQ4IC1tc2cgLXRsczFfMyIgXAorICAgICAgICAgIiRQX1NSViBjcnRfZmlsZT0kREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3A1MjFyMS5jcnQga2V5X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwNTIxcjEua2V5IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0xMjgtQ0NNLVNIQTI1NiBzaWdfYWxncz1lY2RzYV9zZWNwNTIxcjFfc2hhNTEyIGdyb3Vwcz1mZmRoZTIwNDggdGxzMTNfa2V4X21vZGVzPWVwaGVtZXJhbCBjb29raWVzPTAgdGlja2V0cz0wIiBcCisgICAgICAgICAiJE9fTkVYVF9DTElfTk9fQ0VSVCAtQ0FmaWxlICREQVRBX0ZJTEVTX1BBVEgvdGVzdC1jYTIuY3J0IC1jaXBoZXJzdWl0ZXMgVExTX0FFU18xMjhfQ0NNX1NIQTI1NiAtc2lnYWxncyBlY2RzYV9zZWNwNTIxcjFfc2hhNTEyIC1ncm91cHMgZmZkaGUyMDQ4IC1tc2cgLXRsczFfMyIgXAogICAgICAgICAgMCBcCiAgICAgICAgICAtcyAiUHJvdG9jb2wgaXMgVExTdjEuMyIgXAogICAgICAgICAgLXMgInNlcnZlciBoZWxsbywgY2hvc2VuIGNpcGhlcnN1aXRlOiBUTFMxLTMtQUVTLTEyOC1DQ00tU0hBMjU2ICggaWQ9NDg2OCApIiBcCkBAIC0xNjc1LDggKzE2NzcsOCBAQAogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgUFNBX1dBTlRfREhfUkZDNzkxOV8yMDQ4CiByZXF1aXJlc19vcGVuc3NsX3RsczFfM193aXRoX2ZmZGgKIHJ1bl90ZXN0ICJUTFMgMS4zIE8tPm06IEFFU18xMjhfQ0NNX1NIQTI1NixmZmRoZTIwNDgscnNhX3Bzc19yc2FlX3NoYTI1NiIgXAotICAgICAgICAgIiRQX1NSViBjcnRfZmlsZT1kYXRhX2ZpbGVzL3NlcnZlcjItc2hhMjU2LmNydCBrZXlfZmlsZT1kYXRhX2ZpbGVzL3NlcnZlcjIua2V5IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0xMjgtQ0NNLVNIQTI1NiBzaWdfYWxncz1yc2FfcHNzX3JzYWVfc2hhMjU2IGdyb3Vwcz1mZmRoZTIwNDggdGxzMTNfa2V4X21vZGVzPWVwaGVtZXJhbCBjb29raWVzPTAgdGlja2V0cz0wIiBcCi0gICAgICAgICAiJE9fTkVYVF9DTElfTk9fQ0VSVCAtQ0FmaWxlIGRhdGFfZmlsZXMvdGVzdC1jYV9jYXQxMi5jcnQgLWNpcGhlcnN1aXRlcyBUTFNfQUVTXzEyOF9DQ01fU0hBMjU2IC1zaWdhbGdzIHJzYV9wc3NfcnNhZV9zaGEyNTYgLWdyb3VwcyBmZmRoZTIwNDggLW1zZyAtdGxzMV8zIiBcCisgICAgICAgICAiJFBfU1JWIGNydF9maWxlPSREQVRBX0ZJTEVTX1BBVEgvc2VydmVyMi1zaGEyNTYuY3J0IGtleV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvc2VydmVyMi5rZXkgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTEyOC1DQ00tU0hBMjU2IHNpZ19hbGdzPXJzYV9wc3NfcnNhZV9zaGEyNTYgZ3JvdXBzPWZmZGhlMjA0OCB0bHMxM19rZXhfbW9kZXM9ZXBoZW1lcmFsIGNvb2tpZXM9MCB0aWNrZXRzPTAiIFwKKyAgICAgICAgICIkT19ORVhUX0NMSV9OT19DRVJUIC1DQWZpbGUgJERBVEFfRklMRVNfUEFUSC90ZXN0LWNhX2NhdDEyLmNydCAtY2lwaGVyc3VpdGVzIFRMU19BRVNfMTI4X0NDTV9TSEEyNTYgLXNpZ2FsZ3MgcnNhX3Bzc19yc2FlX3NoYTI1NiAtZ3JvdXBzIGZmZGhlMjA0OCAtbXNnIC10bHMxXzMiIFwKICAgICAgICAgIDAgXAogICAgICAgICAgLXMgIlByb3RvY29sIGlzIFRMU3YxLjMiIFwKICAgICAgICAgIC1zICJzZXJ2ZXIgaGVsbG8sIGNob3NlbiBjaXBoZXJzdWl0ZTogVExTMS0zLUFFUy0xMjgtQ0NNLVNIQTI1NiAoIGlkPTQ4NjggKSIgXApAQCAtMTY5Miw4ICsxNjk0LDggQEAKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIFBTQV9XQU5UX0FMR19FQ0RICiByZXF1aXJlc19vcGVuc3NsX3RsczFfMwogcnVuX3Rlc3QgIlRMUyAxLjMgTy0+bTogQUVTXzEyOF9DQ01fOF9TSEEyNTYsc2VjcDI1NnIxLGVjZHNhX3NlY3AyNTZyMV9zaGEyNTYiIFwKLSAgICAgICAgICIkUF9TUlYgY3J0X2ZpbGU9ZGF0YV9maWxlcy9lY2RzYV9zZWNwMjU2cjEuY3J0IGtleV9maWxlPWRhdGFfZmlsZXMvZWNkc2Ffc2VjcDI1NnIxLmtleSBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMTI4LUNDTS04LVNIQTI1NiBzaWdfYWxncz1lY2RzYV9zZWNwMjU2cjFfc2hhMjU2IGdyb3Vwcz1zZWNwMjU2cjEgdGxzMTNfa2V4X21vZGVzPWVwaGVtZXJhbCBjb29raWVzPTAgdGlja2V0cz0wIiBcCi0gICAgICAgICAiJE9fTkVYVF9DTElfTk9fQ0VSVCAtQ0FmaWxlIGRhdGFfZmlsZXMvdGVzdC1jYTIuY3J0IC1jaXBoZXJzdWl0ZXMgVExTX0FFU18xMjhfQ0NNXzhfU0hBMjU2IC1zaWdhbGdzIGVjZHNhX3NlY3AyNTZyMV9zaGEyNTYgLWdyb3VwcyBQLTI1NiAtbXNnIC10bHMxXzMiIFwKKyAgICAgICAgICIkUF9TUlYgY3J0X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwMjU2cjEuY3J0IGtleV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDI1NnIxLmtleSBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMTI4LUNDTS04LVNIQTI1NiBzaWdfYWxncz1lY2RzYV9zZWNwMjU2cjFfc2hhMjU2IGdyb3Vwcz1zZWNwMjU2cjEgdGxzMTNfa2V4X21vZGVzPWVwaGVtZXJhbCBjb29raWVzPTAgdGlja2V0cz0wIiBcCisgICAgICAgICAiJE9fTkVYVF9DTElfTk9fQ0VSVCAtQ0FmaWxlICREQVRBX0ZJTEVTX1BBVEgvdGVzdC1jYTIuY3J0IC1jaXBoZXJzdWl0ZXMgVExTX0FFU18xMjhfQ0NNXzhfU0hBMjU2IC1zaWdhbGdzIGVjZHNhX3NlY3AyNTZyMV9zaGEyNTYgLWdyb3VwcyBQLTI1NiAtbXNnIC10bHMxXzMiIFwKICAgICAgICAgIDAgXAogICAgICAgICAgLXMgIlByb3RvY29sIGlzIFRMU3YxLjMiIFwKICAgICAgICAgIC1zICJzZXJ2ZXIgaGVsbG8sIGNob3NlbiBjaXBoZXJzdWl0ZTogVExTMS0zLUFFUy0xMjgtQ0NNLTgtU0hBMjU2ICggaWQ9NDg2OSApIiBcCkBAIC0xNzA5LDggKzE3MTEsOCBAQAogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgUFNBX1dBTlRfQUxHX0VDREgKIHJlcXVpcmVzX29wZW5zc2xfdGxzMV8zCiBydW5fdGVzdCAiVExTIDEuMyBPLT5tOiBBRVNfMTI4X0NDTV84X1NIQTI1NixzZWNwMjU2cjEsZWNkc2Ffc2VjcDM4NHIxX3NoYTM4NCIgXAotICAgICAgICAgIiRQX1NSViBjcnRfZmlsZT1kYXRhX2ZpbGVzL2VjZHNhX3NlY3AzODRyMS5jcnQga2V5X2ZpbGU9ZGF0YV9maWxlcy9lY2RzYV9zZWNwMzg0cjEua2V5IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0xMjgtQ0NNLTgtU0hBMjU2IHNpZ19hbGdzPWVjZHNhX3NlY3AzODRyMV9zaGEzODQgZ3JvdXBzPXNlY3AyNTZyMSB0bHMxM19rZXhfbW9kZXM9ZXBoZW1lcmFsIGNvb2tpZXM9MCB0aWNrZXRzPTAiIFwKLSAgICAgICAgICIkT19ORVhUX0NMSV9OT19DRVJUIC1DQWZpbGUgZGF0YV9maWxlcy90ZXN0LWNhMi5jcnQgLWNpcGhlcnN1aXRlcyBUTFNfQUVTXzEyOF9DQ01fOF9TSEEyNTYgLXNpZ2FsZ3MgZWNkc2Ffc2VjcDM4NHIxX3NoYTM4NCAtZ3JvdXBzIFAtMjU2IC1tc2cgLXRsczFfMyIgXAorICAgICAgICAgIiRQX1NSViBjcnRfZmlsZT0kREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3AzODRyMS5jcnQga2V5X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwMzg0cjEua2V5IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0xMjgtQ0NNLTgtU0hBMjU2IHNpZ19hbGdzPWVjZHNhX3NlY3AzODRyMV9zaGEzODQgZ3JvdXBzPXNlY3AyNTZyMSB0bHMxM19rZXhfbW9kZXM9ZXBoZW1lcmFsIGNvb2tpZXM9MCB0aWNrZXRzPTAiIFwKKyAgICAgICAgICIkT19ORVhUX0NMSV9OT19DRVJUIC1DQWZpbGUgJERBVEFfRklMRVNfUEFUSC90ZXN0LWNhMi5jcnQgLWNpcGhlcnN1aXRlcyBUTFNfQUVTXzEyOF9DQ01fOF9TSEEyNTYgLXNpZ2FsZ3MgZWNkc2Ffc2VjcDM4NHIxX3NoYTM4NCAtZ3JvdXBzIFAtMjU2IC1tc2cgLXRsczFfMyIgXAogICAgICAgICAgMCBcCiAgICAgICAgICAtcyAiUHJvdG9jb2wgaXMgVExTdjEuMyIgXAogICAgICAgICAgLXMgInNlcnZlciBoZWxsbywgY2hvc2VuIGNpcGhlcnN1aXRlOiBUTFMxLTMtQUVTLTEyOC1DQ00tOC1TSEEyNTYgKCBpZD00ODY5ICkiIFwKQEAgLTE3MjYsOCArMTcyOCw4IEBACiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBQU0FfV0FOVF9BTEdfRUNESAogcmVxdWlyZXNfb3BlbnNzbF90bHMxXzMKIHJ1bl90ZXN0ICJUTFMgMS4zIE8tPm06IEFFU18xMjhfQ0NNXzhfU0hBMjU2LHNlY3AyNTZyMSxlY2RzYV9zZWNwNTIxcjFfc2hhNTEyIiBcCi0gICAgICAgICAiJFBfU1JWIGNydF9maWxlPWRhdGFfZmlsZXMvZWNkc2Ffc2VjcDUyMXIxLmNydCBrZXlfZmlsZT1kYXRhX2ZpbGVzL2VjZHNhX3NlY3A1MjFyMS5rZXkgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTEyOC1DQ00tOC1TSEEyNTYgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDUyMXIxX3NoYTUxMiBncm91cHM9c2VjcDI1NnIxIHRsczEzX2tleF9tb2Rlcz1lcGhlbWVyYWwgY29va2llcz0wIHRpY2tldHM9MCIgXAotICAgICAgICAgIiRPX05FWFRfQ0xJX05PX0NFUlQgLUNBZmlsZSBkYXRhX2ZpbGVzL3Rlc3QtY2EyLmNydCAtY2lwaGVyc3VpdGVzIFRMU19BRVNfMTI4X0NDTV84X1NIQTI1NiAtc2lnYWxncyBlY2RzYV9zZWNwNTIxcjFfc2hhNTEyIC1ncm91cHMgUC0yNTYgLW1zZyAtdGxzMV8zIiBcCisgICAgICAgICAiJFBfU1JWIGNydF9maWxlPSREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDUyMXIxLmNydCBrZXlfZmlsZT0kREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3A1MjFyMS5rZXkgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTEyOC1DQ00tOC1TSEEyNTYgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDUyMXIxX3NoYTUxMiBncm91cHM9c2VjcDI1NnIxIHRsczEzX2tleF9tb2Rlcz1lcGhlbWVyYWwgY29va2llcz0wIHRpY2tldHM9MCIgXAorICAgICAgICAgIiRPX05FWFRfQ0xJX05PX0NFUlQgLUNBZmlsZSAkREFUQV9GSUxFU19QQVRIL3Rlc3QtY2EyLmNydCAtY2lwaGVyc3VpdGVzIFRMU19BRVNfMTI4X0NDTV84X1NIQTI1NiAtc2lnYWxncyBlY2RzYV9zZWNwNTIxcjFfc2hhNTEyIC1ncm91cHMgUC0yNTYgLW1zZyAtdGxzMV8zIiBcCiAgICAgICAgICAwIFwKICAgICAgICAgIC1zICJQcm90b2NvbCBpcyBUTFN2MS4zIiBcCiAgICAgICAgICAtcyAic2VydmVyIGhlbGxvLCBjaG9zZW4gY2lwaGVyc3VpdGU6IFRMUzEtMy1BRVMtMTI4LUNDTS04LVNIQTI1NiAoIGlkPTQ4NjkgKSIgXApAQCAtMTc0NCw4ICsxNzQ2LDggQEAKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIFBTQV9XQU5UX0FMR19FQ0RICiByZXF1aXJlc19vcGVuc3NsX3RsczFfMwogcnVuX3Rlc3QgIlRMUyAxLjMgTy0+bTogQUVTXzEyOF9DQ01fOF9TSEEyNTYsc2VjcDI1NnIxLHJzYV9wc3NfcnNhZV9zaGEyNTYiIFwKLSAgICAgICAgICIkUF9TUlYgY3J0X2ZpbGU9ZGF0YV9maWxlcy9zZXJ2ZXIyLXNoYTI1Ni5jcnQga2V5X2ZpbGU9ZGF0YV9maWxlcy9zZXJ2ZXIyLmtleSBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMTI4LUNDTS04LVNIQTI1NiBzaWdfYWxncz1yc2FfcHNzX3JzYWVfc2hhMjU2IGdyb3Vwcz1zZWNwMjU2cjEgdGxzMTNfa2V4X21vZGVzPWVwaGVtZXJhbCBjb29raWVzPTAgdGlja2V0cz0wIiBcCi0gICAgICAgICAiJE9fTkVYVF9DTElfTk9fQ0VSVCAtQ0FmaWxlIGRhdGFfZmlsZXMvdGVzdC1jYV9jYXQxMi5jcnQgLWNpcGhlcnN1aXRlcyBUTFNfQUVTXzEyOF9DQ01fOF9TSEEyNTYgLXNpZ2FsZ3MgcnNhX3Bzc19yc2FlX3NoYTI1NiAtZ3JvdXBzIFAtMjU2IC1tc2cgLXRsczFfMyIgXAorICAgICAgICAgIiRQX1NSViBjcnRfZmlsZT0kREFUQV9GSUxFU19QQVRIL3NlcnZlcjItc2hhMjU2LmNydCBrZXlfZmlsZT0kREFUQV9GSUxFU19QQVRIL3NlcnZlcjIua2V5IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0xMjgtQ0NNLTgtU0hBMjU2IHNpZ19hbGdzPXJzYV9wc3NfcnNhZV9zaGEyNTYgZ3JvdXBzPXNlY3AyNTZyMSB0bHMxM19rZXhfbW9kZXM9ZXBoZW1lcmFsIGNvb2tpZXM9MCB0aWNrZXRzPTAiIFwKKyAgICAgICAgICIkT19ORVhUX0NMSV9OT19DRVJUIC1DQWZpbGUgJERBVEFfRklMRVNfUEFUSC90ZXN0LWNhX2NhdDEyLmNydCAtY2lwaGVyc3VpdGVzIFRMU19BRVNfMTI4X0NDTV84X1NIQTI1NiAtc2lnYWxncyByc2FfcHNzX3JzYWVfc2hhMjU2IC1ncm91cHMgUC0yNTYgLW1zZyAtdGxzMV8zIiBcCiAgICAgICAgICAwIFwKICAgICAgICAgIC1zICJQcm90b2NvbCBpcyBUTFN2MS4zIiBcCiAgICAgICAgICAtcyAic2VydmVyIGhlbGxvLCBjaG9zZW4gY2lwaGVyc3VpdGU6IFRMUzEtMy1BRVMtMTI4LUNDTS04LVNIQTI1NiAoIGlkPTQ4NjkgKSIgXApAQCAtMTc2MSw4ICsxNzYzLDggQEAKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIFBTQV9XQU5UX0FMR19FQ0RICiByZXF1aXJlc19vcGVuc3NsX3RsczFfMwogcnVuX3Rlc3QgIlRMUyAxLjMgTy0+bTogQUVTXzEyOF9DQ01fOF9TSEEyNTYsc2VjcDM4NHIxLGVjZHNhX3NlY3AyNTZyMV9zaGEyNTYiIFwKLSAgICAgICAgICIkUF9TUlYgY3J0X2ZpbGU9ZGF0YV9maWxlcy9lY2RzYV9zZWNwMjU2cjEuY3J0IGtleV9maWxlPWRhdGFfZmlsZXMvZWNkc2Ffc2VjcDI1NnIxLmtleSBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMTI4LUNDTS04LVNIQTI1NiBzaWdfYWxncz1lY2RzYV9zZWNwMjU2cjFfc2hhMjU2IGdyb3Vwcz1zZWNwMzg0cjEgdGxzMTNfa2V4X21vZGVzPWVwaGVtZXJhbCBjb29raWVzPTAgdGlja2V0cz0wIiBcCi0gICAgICAgICAiJE9fTkVYVF9DTElfTk9fQ0VSVCAtQ0FmaWxlIGRhdGFfZmlsZXMvdGVzdC1jYTIuY3J0IC1jaXBoZXJzdWl0ZXMgVExTX0FFU18xMjhfQ0NNXzhfU0hBMjU2IC1zaWdhbGdzIGVjZHNhX3NlY3AyNTZyMV9zaGEyNTYgLWdyb3VwcyBQLTM4NCAtbXNnIC10bHMxXzMiIFwKKyAgICAgICAgICIkUF9TUlYgY3J0X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwMjU2cjEuY3J0IGtleV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDI1NnIxLmtleSBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMTI4LUNDTS04LVNIQTI1NiBzaWdfYWxncz1lY2RzYV9zZWNwMjU2cjFfc2hhMjU2IGdyb3Vwcz1zZWNwMzg0cjEgdGxzMTNfa2V4X21vZGVzPWVwaGVtZXJhbCBjb29raWVzPTAgdGlja2V0cz0wIiBcCisgICAgICAgICAiJE9fTkVYVF9DTElfTk9fQ0VSVCAtQ0FmaWxlICREQVRBX0ZJTEVTX1BBVEgvdGVzdC1jYTIuY3J0IC1jaXBoZXJzdWl0ZXMgVExTX0FFU18xMjhfQ0NNXzhfU0hBMjU2IC1zaWdhbGdzIGVjZHNhX3NlY3AyNTZyMV9zaGEyNTYgLWdyb3VwcyBQLTM4NCAtbXNnIC10bHMxXzMiIFwKICAgICAgICAgIDAgXAogICAgICAgICAgLXMgIlByb3RvY29sIGlzIFRMU3YxLjMiIFwKICAgICAgICAgIC1zICJzZXJ2ZXIgaGVsbG8sIGNob3NlbiBjaXBoZXJzdWl0ZTogVExTMS0zLUFFUy0xMjgtQ0NNLTgtU0hBMjU2ICggaWQ9NDg2OSApIiBcCkBAIC0xNzc4LDggKzE3ODAsOCBAQAogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgUFNBX1dBTlRfQUxHX0VDREgKIHJlcXVpcmVzX29wZW5zc2xfdGxzMV8zCiBydW5fdGVzdCAiVExTIDEuMyBPLT5tOiBBRVNfMTI4X0NDTV84X1NIQTI1NixzZWNwMzg0cjEsZWNkc2Ffc2VjcDM4NHIxX3NoYTM4NCIgXAotICAgICAgICAgIiRQX1NSViBjcnRfZmlsZT1kYXRhX2ZpbGVzL2VjZHNhX3NlY3AzODRyMS5jcnQga2V5X2ZpbGU9ZGF0YV9maWxlcy9lY2RzYV9zZWNwMzg0cjEua2V5IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0xMjgtQ0NNLTgtU0hBMjU2IHNpZ19hbGdzPWVjZHNhX3NlY3AzODRyMV9zaGEzODQgZ3JvdXBzPXNlY3AzODRyMSB0bHMxM19rZXhfbW9kZXM9ZXBoZW1lcmFsIGNvb2tpZXM9MCB0aWNrZXRzPTAiIFwKLSAgICAgICAgICIkT19ORVhUX0NMSV9OT19DRVJUIC1DQWZpbGUgZGF0YV9maWxlcy90ZXN0LWNhMi5jcnQgLWNpcGhlcnN1aXRlcyBUTFNfQUVTXzEyOF9DQ01fOF9TSEEyNTYgLXNpZ2FsZ3MgZWNkc2Ffc2VjcDM4NHIxX3NoYTM4NCAtZ3JvdXBzIFAtMzg0IC1tc2cgLXRsczFfMyIgXAorICAgICAgICAgIiRQX1NSViBjcnRfZmlsZT0kREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3AzODRyMS5jcnQga2V5X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwMzg0cjEua2V5IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0xMjgtQ0NNLTgtU0hBMjU2IHNpZ19hbGdzPWVjZHNhX3NlY3AzODRyMV9zaGEzODQgZ3JvdXBzPXNlY3AzODRyMSB0bHMxM19rZXhfbW9kZXM9ZXBoZW1lcmFsIGNvb2tpZXM9MCB0aWNrZXRzPTAiIFwKKyAgICAgICAgICIkT19ORVhUX0NMSV9OT19DRVJUIC1DQWZpbGUgJERBVEFfRklMRVNfUEFUSC90ZXN0LWNhMi5jcnQgLWNpcGhlcnN1aXRlcyBUTFNfQUVTXzEyOF9DQ01fOF9TSEEyNTYgLXNpZ2FsZ3MgZWNkc2Ffc2VjcDM4NHIxX3NoYTM4NCAtZ3JvdXBzIFAtMzg0IC1tc2cgLXRsczFfMyIgXAogICAgICAgICAgMCBcCiAgICAgICAgICAtcyAiUHJvdG9jb2wgaXMgVExTdjEuMyIgXAogICAgICAgICAgLXMgInNlcnZlciBoZWxsbywgY2hvc2VuIGNpcGhlcnN1aXRlOiBUTFMxLTMtQUVTLTEyOC1DQ00tOC1TSEEyNTYgKCBpZD00ODY5ICkiIFwKQEAgLTE3OTUsOCArMTc5Nyw4IEBACiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBQU0FfV0FOVF9BTEdfRUNESAogcmVxdWlyZXNfb3BlbnNzbF90bHMxXzMKIHJ1bl90ZXN0ICJUTFMgMS4zIE8tPm06IEFFU18xMjhfQ0NNXzhfU0hBMjU2LHNlY3AzODRyMSxlY2RzYV9zZWNwNTIxcjFfc2hhNTEyIiBcCi0gICAgICAgICAiJFBfU1JWIGNydF9maWxlPWRhdGFfZmlsZXMvZWNkc2Ffc2VjcDUyMXIxLmNydCBrZXlfZmlsZT1kYXRhX2ZpbGVzL2VjZHNhX3NlY3A1MjFyMS5rZXkgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTEyOC1DQ00tOC1TSEEyNTYgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDUyMXIxX3NoYTUxMiBncm91cHM9c2VjcDM4NHIxIHRsczEzX2tleF9tb2Rlcz1lcGhlbWVyYWwgY29va2llcz0wIHRpY2tldHM9MCIgXAotICAgICAgICAgIiRPX05FWFRfQ0xJX05PX0NFUlQgLUNBZmlsZSBkYXRhX2ZpbGVzL3Rlc3QtY2EyLmNydCAtY2lwaGVyc3VpdGVzIFRMU19BRVNfMTI4X0NDTV84X1NIQTI1NiAtc2lnYWxncyBlY2RzYV9zZWNwNTIxcjFfc2hhNTEyIC1ncm91cHMgUC0zODQgLW1zZyAtdGxzMV8zIiBcCisgICAgICAgICAiJFBfU1JWIGNydF9maWxlPSREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDUyMXIxLmNydCBrZXlfZmlsZT0kREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3A1MjFyMS5rZXkgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTEyOC1DQ00tOC1TSEEyNTYgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDUyMXIxX3NoYTUxMiBncm91cHM9c2VjcDM4NHIxIHRsczEzX2tleF9tb2Rlcz1lcGhlbWVyYWwgY29va2llcz0wIHRpY2tldHM9MCIgXAorICAgICAgICAgIiRPX05FWFRfQ0xJX05PX0NFUlQgLUNBZmlsZSAkREFUQV9GSUxFU19QQVRIL3Rlc3QtY2EyLmNydCAtY2lwaGVyc3VpdGVzIFRMU19BRVNfMTI4X0NDTV84X1NIQTI1NiAtc2lnYWxncyBlY2RzYV9zZWNwNTIxcjFfc2hhNTEyIC1ncm91cHMgUC0zODQgLW1zZyAtdGxzMV8zIiBcCiAgICAgICAgICAwIFwKICAgICAgICAgIC1zICJQcm90b2NvbCBpcyBUTFN2MS4zIiBcCiAgICAgICAgICAtcyAic2VydmVyIGhlbGxvLCBjaG9zZW4gY2lwaGVyc3VpdGU6IFRMUzEtMy1BRVMtMTI4LUNDTS04LVNIQTI1NiAoIGlkPTQ4NjkgKSIgXApAQCAtMTgxMyw4ICsxODE1LDggQEAKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIFBTQV9XQU5UX0FMR19FQ0RICiByZXF1aXJlc19vcGVuc3NsX3RsczFfMwogcnVuX3Rlc3QgIlRMUyAxLjMgTy0+bTogQUVTXzEyOF9DQ01fOF9TSEEyNTYsc2VjcDM4NHIxLHJzYV9wc3NfcnNhZV9zaGEyNTYiIFwKLSAgICAgICAgICIkUF9TUlYgY3J0X2ZpbGU9ZGF0YV9maWxlcy9zZXJ2ZXIyLXNoYTI1Ni5jcnQga2V5X2ZpbGU9ZGF0YV9maWxlcy9zZXJ2ZXIyLmtleSBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMTI4LUNDTS04LVNIQTI1NiBzaWdfYWxncz1yc2FfcHNzX3JzYWVfc2hhMjU2IGdyb3Vwcz1zZWNwMzg0cjEgdGxzMTNfa2V4X21vZGVzPWVwaGVtZXJhbCBjb29raWVzPTAgdGlja2V0cz0wIiBcCi0gICAgICAgICAiJE9fTkVYVF9DTElfTk9fQ0VSVCAtQ0FmaWxlIGRhdGFfZmlsZXMvdGVzdC1jYV9jYXQxMi5jcnQgLWNpcGhlcnN1aXRlcyBUTFNfQUVTXzEyOF9DQ01fOF9TSEEyNTYgLXNpZ2FsZ3MgcnNhX3Bzc19yc2FlX3NoYTI1NiAtZ3JvdXBzIFAtMzg0IC1tc2cgLXRsczFfMyIgXAorICAgICAgICAgIiRQX1NSViBjcnRfZmlsZT0kREFUQV9GSUxFU19QQVRIL3NlcnZlcjItc2hhMjU2LmNydCBrZXlfZmlsZT0kREFUQV9GSUxFU19QQVRIL3NlcnZlcjIua2V5IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0xMjgtQ0NNLTgtU0hBMjU2IHNpZ19hbGdzPXJzYV9wc3NfcnNhZV9zaGEyNTYgZ3JvdXBzPXNlY3AzODRyMSB0bHMxM19rZXhfbW9kZXM9ZXBoZW1lcmFsIGNvb2tpZXM9MCB0aWNrZXRzPTAiIFwKKyAgICAgICAgICIkT19ORVhUX0NMSV9OT19DRVJUIC1DQWZpbGUgJERBVEFfRklMRVNfUEFUSC90ZXN0LWNhX2NhdDEyLmNydCAtY2lwaGVyc3VpdGVzIFRMU19BRVNfMTI4X0NDTV84X1NIQTI1NiAtc2lnYWxncyByc2FfcHNzX3JzYWVfc2hhMjU2IC1ncm91cHMgUC0zODQgLW1zZyAtdGxzMV8zIiBcCiAgICAgICAgICAwIFwKICAgICAgICAgIC1zICJQcm90b2NvbCBpcyBUTFN2MS4zIiBcCiAgICAgICAgICAtcyAic2VydmVyIGhlbGxvLCBjaG9zZW4gY2lwaGVyc3VpdGU6IFRMUzEtMy1BRVMtMTI4LUNDTS04LVNIQTI1NiAoIGlkPTQ4NjkgKSIgXApAQCAtMTgzMCw4ICsxODMyLDggQEAKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIFBTQV9XQU5UX0FMR19FQ0RICiByZXF1aXJlc19vcGVuc3NsX3RsczFfMwogcnVuX3Rlc3QgIlRMUyAxLjMgTy0+bTogQUVTXzEyOF9DQ01fOF9TSEEyNTYsc2VjcDUyMXIxLGVjZHNhX3NlY3AyNTZyMV9zaGEyNTYiIFwKLSAgICAgICAgICIkUF9TUlYgY3J0X2ZpbGU9ZGF0YV9maWxlcy9lY2RzYV9zZWNwMjU2cjEuY3J0IGtleV9maWxlPWRhdGFfZmlsZXMvZWNkc2Ffc2VjcDI1NnIxLmtleSBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMTI4LUNDTS04LVNIQTI1NiBzaWdfYWxncz1lY2RzYV9zZWNwMjU2cjFfc2hhMjU2IGdyb3Vwcz1zZWNwNTIxcjEgdGxzMTNfa2V4X21vZGVzPWVwaGVtZXJhbCBjb29raWVzPTAgdGlja2V0cz0wIiBcCi0gICAgICAgICAiJE9fTkVYVF9DTElfTk9fQ0VSVCAtQ0FmaWxlIGRhdGFfZmlsZXMvdGVzdC1jYTIuY3J0IC1jaXBoZXJzdWl0ZXMgVExTX0FFU18xMjhfQ0NNXzhfU0hBMjU2IC1zaWdhbGdzIGVjZHNhX3NlY3AyNTZyMV9zaGEyNTYgLWdyb3VwcyBQLTUyMSAtbXNnIC10bHMxXzMiIFwKKyAgICAgICAgICIkUF9TUlYgY3J0X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwMjU2cjEuY3J0IGtleV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDI1NnIxLmtleSBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMTI4LUNDTS04LVNIQTI1NiBzaWdfYWxncz1lY2RzYV9zZWNwMjU2cjFfc2hhMjU2IGdyb3Vwcz1zZWNwNTIxcjEgdGxzMTNfa2V4X21vZGVzPWVwaGVtZXJhbCBjb29raWVzPTAgdGlja2V0cz0wIiBcCisgICAgICAgICAiJE9fTkVYVF9DTElfTk9fQ0VSVCAtQ0FmaWxlICREQVRBX0ZJTEVTX1BBVEgvdGVzdC1jYTIuY3J0IC1jaXBoZXJzdWl0ZXMgVExTX0FFU18xMjhfQ0NNXzhfU0hBMjU2IC1zaWdhbGdzIGVjZHNhX3NlY3AyNTZyMV9zaGEyNTYgLWdyb3VwcyBQLTUyMSAtbXNnIC10bHMxXzMiIFwKICAgICAgICAgIDAgXAogICAgICAgICAgLXMgIlByb3RvY29sIGlzIFRMU3YxLjMiIFwKICAgICAgICAgIC1zICJzZXJ2ZXIgaGVsbG8sIGNob3NlbiBjaXBoZXJzdWl0ZTogVExTMS0zLUFFUy0xMjgtQ0NNLTgtU0hBMjU2ICggaWQ9NDg2OSApIiBcCkBAIC0xODQ3LDggKzE4NDksOCBAQAogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgUFNBX1dBTlRfQUxHX0VDREgKIHJlcXVpcmVzX29wZW5zc2xfdGxzMV8zCiBydW5fdGVzdCAiVExTIDEuMyBPLT5tOiBBRVNfMTI4X0NDTV84X1NIQTI1NixzZWNwNTIxcjEsZWNkc2Ffc2VjcDM4NHIxX3NoYTM4NCIgXAotICAgICAgICAgIiRQX1NSViBjcnRfZmlsZT1kYXRhX2ZpbGVzL2VjZHNhX3NlY3AzODRyMS5jcnQga2V5X2ZpbGU9ZGF0YV9maWxlcy9lY2RzYV9zZWNwMzg0cjEua2V5IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0xMjgtQ0NNLTgtU0hBMjU2IHNpZ19hbGdzPWVjZHNhX3NlY3AzODRyMV9zaGEzODQgZ3JvdXBzPXNlY3A1MjFyMSB0bHMxM19rZXhfbW9kZXM9ZXBoZW1lcmFsIGNvb2tpZXM9MCB0aWNrZXRzPTAiIFwKLSAgICAgICAgICIkT19ORVhUX0NMSV9OT19DRVJUIC1DQWZpbGUgZGF0YV9maWxlcy90ZXN0LWNhMi5jcnQgLWNpcGhlcnN1aXRlcyBUTFNfQUVTXzEyOF9DQ01fOF9TSEEyNTYgLXNpZ2FsZ3MgZWNkc2Ffc2VjcDM4NHIxX3NoYTM4NCAtZ3JvdXBzIFAtNTIxIC1tc2cgLXRsczFfMyIgXAorICAgICAgICAgIiRQX1NSViBjcnRfZmlsZT0kREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3AzODRyMS5jcnQga2V5X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwMzg0cjEua2V5IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0xMjgtQ0NNLTgtU0hBMjU2IHNpZ19hbGdzPWVjZHNhX3NlY3AzODRyMV9zaGEzODQgZ3JvdXBzPXNlY3A1MjFyMSB0bHMxM19rZXhfbW9kZXM9ZXBoZW1lcmFsIGNvb2tpZXM9MCB0aWNrZXRzPTAiIFwKKyAgICAgICAgICIkT19ORVhUX0NMSV9OT19DRVJUIC1DQWZpbGUgJERBVEFfRklMRVNfUEFUSC90ZXN0LWNhMi5jcnQgLWNpcGhlcnN1aXRlcyBUTFNfQUVTXzEyOF9DQ01fOF9TSEEyNTYgLXNpZ2FsZ3MgZWNkc2Ffc2VjcDM4NHIxX3NoYTM4NCAtZ3JvdXBzIFAtNTIxIC1tc2cgLXRsczFfMyIgXAogICAgICAgICAgMCBcCiAgICAgICAgICAtcyAiUHJvdG9jb2wgaXMgVExTdjEuMyIgXAogICAgICAgICAgLXMgInNlcnZlciBoZWxsbywgY2hvc2VuIGNpcGhlcnN1aXRlOiBUTFMxLTMtQUVTLTEyOC1DQ00tOC1TSEEyNTYgKCBpZD00ODY5ICkiIFwKQEAgLTE4NjQsOCArMTg2Niw4IEBACiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBQU0FfV0FOVF9BTEdfRUNESAogcmVxdWlyZXNfb3BlbnNzbF90bHMxXzMKIHJ1bl90ZXN0ICJUTFMgMS4zIE8tPm06IEFFU18xMjhfQ0NNXzhfU0hBMjU2LHNlY3A1MjFyMSxlY2RzYV9zZWNwNTIxcjFfc2hhNTEyIiBcCi0gICAgICAgICAiJFBfU1JWIGNydF9maWxlPWRhdGFfZmlsZXMvZWNkc2Ffc2VjcDUyMXIxLmNydCBrZXlfZmlsZT1kYXRhX2ZpbGVzL2VjZHNhX3NlY3A1MjFyMS5rZXkgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTEyOC1DQ00tOC1TSEEyNTYgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDUyMXIxX3NoYTUxMiBncm91cHM9c2VjcDUyMXIxIHRsczEzX2tleF9tb2Rlcz1lcGhlbWVyYWwgY29va2llcz0wIHRpY2tldHM9MCIgXAotICAgICAgICAgIiRPX05FWFRfQ0xJX05PX0NFUlQgLUNBZmlsZSBkYXRhX2ZpbGVzL3Rlc3QtY2EyLmNydCAtY2lwaGVyc3VpdGVzIFRMU19BRVNfMTI4X0NDTV84X1NIQTI1NiAtc2lnYWxncyBlY2RzYV9zZWNwNTIxcjFfc2hhNTEyIC1ncm91cHMgUC01MjEgLW1zZyAtdGxzMV8zIiBcCisgICAgICAgICAiJFBfU1JWIGNydF9maWxlPSREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDUyMXIxLmNydCBrZXlfZmlsZT0kREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3A1MjFyMS5rZXkgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTEyOC1DQ00tOC1TSEEyNTYgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDUyMXIxX3NoYTUxMiBncm91cHM9c2VjcDUyMXIxIHRsczEzX2tleF9tb2Rlcz1lcGhlbWVyYWwgY29va2llcz0wIHRpY2tldHM9MCIgXAorICAgICAgICAgIiRPX05FWFRfQ0xJX05PX0NFUlQgLUNBZmlsZSAkREFUQV9GSUxFU19QQVRIL3Rlc3QtY2EyLmNydCAtY2lwaGVyc3VpdGVzIFRMU19BRVNfMTI4X0NDTV84X1NIQTI1NiAtc2lnYWxncyBlY2RzYV9zZWNwNTIxcjFfc2hhNTEyIC1ncm91cHMgUC01MjEgLW1zZyAtdGxzMV8zIiBcCiAgICAgICAgICAwIFwKICAgICAgICAgIC1zICJQcm90b2NvbCBpcyBUTFN2MS4zIiBcCiAgICAgICAgICAtcyAic2VydmVyIGhlbGxvLCBjaG9zZW4gY2lwaGVyc3VpdGU6IFRMUzEtMy1BRVMtMTI4LUNDTS04LVNIQTI1NiAoIGlkPTQ4NjkgKSIgXApAQCAtMTg4Miw4ICsxODg0LDggQEAKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIFBTQV9XQU5UX0FMR19FQ0RICiByZXF1aXJlc19vcGVuc3NsX3RsczFfMwogcnVuX3Rlc3QgIlRMUyAxLjMgTy0+bTogQUVTXzEyOF9DQ01fOF9TSEEyNTYsc2VjcDUyMXIxLHJzYV9wc3NfcnNhZV9zaGEyNTYiIFwKLSAgICAgICAgICIkUF9TUlYgY3J0X2ZpbGU9ZGF0YV9maWxlcy9zZXJ2ZXIyLXNoYTI1Ni5jcnQga2V5X2ZpbGU9ZGF0YV9maWxlcy9zZXJ2ZXIyLmtleSBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMTI4LUNDTS04LVNIQTI1NiBzaWdfYWxncz1yc2FfcHNzX3JzYWVfc2hhMjU2IGdyb3Vwcz1zZWNwNTIxcjEgdGxzMTNfa2V4X21vZGVzPWVwaGVtZXJhbCBjb29raWVzPTAgdGlja2V0cz0wIiBcCi0gICAgICAgICAiJE9fTkVYVF9DTElfTk9fQ0VSVCAtQ0FmaWxlIGRhdGFfZmlsZXMvdGVzdC1jYV9jYXQxMi5jcnQgLWNpcGhlcnN1aXRlcyBUTFNfQUVTXzEyOF9DQ01fOF9TSEEyNTYgLXNpZ2FsZ3MgcnNhX3Bzc19yc2FlX3NoYTI1NiAtZ3JvdXBzIFAtNTIxIC1tc2cgLXRsczFfMyIgXAorICAgICAgICAgIiRQX1NSViBjcnRfZmlsZT0kREFUQV9GSUxFU19QQVRIL3NlcnZlcjItc2hhMjU2LmNydCBrZXlfZmlsZT0kREFUQV9GSUxFU19QQVRIL3NlcnZlcjIua2V5IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0xMjgtQ0NNLTgtU0hBMjU2IHNpZ19hbGdzPXJzYV9wc3NfcnNhZV9zaGEyNTYgZ3JvdXBzPXNlY3A1MjFyMSB0bHMxM19rZXhfbW9kZXM9ZXBoZW1lcmFsIGNvb2tpZXM9MCB0aWNrZXRzPTAiIFwKKyAgICAgICAgICIkT19ORVhUX0NMSV9OT19DRVJUIC1DQWZpbGUgJERBVEFfRklMRVNfUEFUSC90ZXN0LWNhX2NhdDEyLmNydCAtY2lwaGVyc3VpdGVzIFRMU19BRVNfMTI4X0NDTV84X1NIQTI1NiAtc2lnYWxncyByc2FfcHNzX3JzYWVfc2hhMjU2IC1ncm91cHMgUC01MjEgLW1zZyAtdGxzMV8zIiBcCiAgICAgICAgICAwIFwKICAgICAgICAgIC1zICJQcm90b2NvbCBpcyBUTFN2MS4zIiBcCiAgICAgICAgICAtcyAic2VydmVyIGhlbGxvLCBjaG9zZW4gY2lwaGVyc3VpdGU6IFRMUzEtMy1BRVMtMTI4LUNDTS04LVNIQTI1NiAoIGlkPTQ4NjkgKSIgXApAQCAtMTg5OSw4ICsxOTAxLDggQEAKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIFBTQV9XQU5UX0FMR19FQ0RICiByZXF1aXJlc19vcGVuc3NsX3RsczFfMwogcnVuX3Rlc3QgIlRMUyAxLjMgTy0+bTogQUVTXzEyOF9DQ01fOF9TSEEyNTYseDI1NTE5LGVjZHNhX3NlY3AyNTZyMV9zaGEyNTYiIFwKLSAgICAgICAgICIkUF9TUlYgY3J0X2ZpbGU9ZGF0YV9maWxlcy9lY2RzYV9zZWNwMjU2cjEuY3J0IGtleV9maWxlPWRhdGFfZmlsZXMvZWNkc2Ffc2VjcDI1NnIxLmtleSBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMTI4LUNDTS04LVNIQTI1NiBzaWdfYWxncz1lY2RzYV9zZWNwMjU2cjFfc2hhMjU2IGdyb3Vwcz14MjU1MTkgdGxzMTNfa2V4X21vZGVzPWVwaGVtZXJhbCBjb29raWVzPTAgdGlja2V0cz0wIiBcCi0gICAgICAgICAiJE9fTkVYVF9DTElfTk9fQ0VSVCAtQ0FmaWxlIGRhdGFfZmlsZXMvdGVzdC1jYTIuY3J0IC1jaXBoZXJzdWl0ZXMgVExTX0FFU18xMjhfQ0NNXzhfU0hBMjU2IC1zaWdhbGdzIGVjZHNhX3NlY3AyNTZyMV9zaGEyNTYgLWdyb3VwcyBYMjU1MTkgLW1zZyAtdGxzMV8zIiBcCisgICAgICAgICAiJFBfU1JWIGNydF9maWxlPSREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDI1NnIxLmNydCBrZXlfZmlsZT0kREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3AyNTZyMS5rZXkgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTEyOC1DQ00tOC1TSEEyNTYgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDI1NnIxX3NoYTI1NiBncm91cHM9eDI1NTE5IHRsczEzX2tleF9tb2Rlcz1lcGhlbWVyYWwgY29va2llcz0wIHRpY2tldHM9MCIgXAorICAgICAgICAgIiRPX05FWFRfQ0xJX05PX0NFUlQgLUNBZmlsZSAkREFUQV9GSUxFU19QQVRIL3Rlc3QtY2EyLmNydCAtY2lwaGVyc3VpdGVzIFRMU19BRVNfMTI4X0NDTV84X1NIQTI1NiAtc2lnYWxncyBlY2RzYV9zZWNwMjU2cjFfc2hhMjU2IC1ncm91cHMgWDI1NTE5IC1tc2cgLXRsczFfMyIgXAogICAgICAgICAgMCBcCiAgICAgICAgICAtcyAiUHJvdG9jb2wgaXMgVExTdjEuMyIgXAogICAgICAgICAgLXMgInNlcnZlciBoZWxsbywgY2hvc2VuIGNpcGhlcnN1aXRlOiBUTFMxLTMtQUVTLTEyOC1DQ00tOC1TSEEyNTYgKCBpZD00ODY5ICkiIFwKQEAgLTE5MTYsOCArMTkxOCw4IEBACiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBQU0FfV0FOVF9BTEdfRUNESAogcmVxdWlyZXNfb3BlbnNzbF90bHMxXzMKIHJ1bl90ZXN0ICJUTFMgMS4zIE8tPm06IEFFU18xMjhfQ0NNXzhfU0hBMjU2LHgyNTUxOSxlY2RzYV9zZWNwMzg0cjFfc2hhMzg0IiBcCi0gICAgICAgICAiJFBfU1JWIGNydF9maWxlPWRhdGFfZmlsZXMvZWNkc2Ffc2VjcDM4NHIxLmNydCBrZXlfZmlsZT1kYXRhX2ZpbGVzL2VjZHNhX3NlY3AzODRyMS5rZXkgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTEyOC1DQ00tOC1TSEEyNTYgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDM4NHIxX3NoYTM4NCBncm91cHM9eDI1NTE5IHRsczEzX2tleF9tb2Rlcz1lcGhlbWVyYWwgY29va2llcz0wIHRpY2tldHM9MCIgXAotICAgICAgICAgIiRPX05FWFRfQ0xJX05PX0NFUlQgLUNBZmlsZSBkYXRhX2ZpbGVzL3Rlc3QtY2EyLmNydCAtY2lwaGVyc3VpdGVzIFRMU19BRVNfMTI4X0NDTV84X1NIQTI1NiAtc2lnYWxncyBlY2RzYV9zZWNwMzg0cjFfc2hhMzg0IC1ncm91cHMgWDI1NTE5IC1tc2cgLXRsczFfMyIgXAorICAgICAgICAgIiRQX1NSViBjcnRfZmlsZT0kREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3AzODRyMS5jcnQga2V5X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwMzg0cjEua2V5IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0xMjgtQ0NNLTgtU0hBMjU2IHNpZ19hbGdzPWVjZHNhX3NlY3AzODRyMV9zaGEzODQgZ3JvdXBzPXgyNTUxOSB0bHMxM19rZXhfbW9kZXM9ZXBoZW1lcmFsIGNvb2tpZXM9MCB0aWNrZXRzPTAiIFwKKyAgICAgICAgICIkT19ORVhUX0NMSV9OT19DRVJUIC1DQWZpbGUgJERBVEFfRklMRVNfUEFUSC90ZXN0LWNhMi5jcnQgLWNpcGhlcnN1aXRlcyBUTFNfQUVTXzEyOF9DQ01fOF9TSEEyNTYgLXNpZ2FsZ3MgZWNkc2Ffc2VjcDM4NHIxX3NoYTM4NCAtZ3JvdXBzIFgyNTUxOSAtbXNnIC10bHMxXzMiIFwKICAgICAgICAgIDAgXAogICAgICAgICAgLXMgIlByb3RvY29sIGlzIFRMU3YxLjMiIFwKICAgICAgICAgIC1zICJzZXJ2ZXIgaGVsbG8sIGNob3NlbiBjaXBoZXJzdWl0ZTogVExTMS0zLUFFUy0xMjgtQ0NNLTgtU0hBMjU2ICggaWQ9NDg2OSApIiBcCkBAIC0xOTMzLDggKzE5MzUsOCBAQAogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgUFNBX1dBTlRfQUxHX0VDREgKIHJlcXVpcmVzX29wZW5zc2xfdGxzMV8zCiBydW5fdGVzdCAiVExTIDEuMyBPLT5tOiBBRVNfMTI4X0NDTV84X1NIQTI1Nix4MjU1MTksZWNkc2Ffc2VjcDUyMXIxX3NoYTUxMiIgXAotICAgICAgICAgIiRQX1NSViBjcnRfZmlsZT1kYXRhX2ZpbGVzL2VjZHNhX3NlY3A1MjFyMS5jcnQga2V5X2ZpbGU9ZGF0YV9maWxlcy9lY2RzYV9zZWNwNTIxcjEua2V5IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0xMjgtQ0NNLTgtU0hBMjU2IHNpZ19hbGdzPWVjZHNhX3NlY3A1MjFyMV9zaGE1MTIgZ3JvdXBzPXgyNTUxOSB0bHMxM19rZXhfbW9kZXM9ZXBoZW1lcmFsIGNvb2tpZXM9MCB0aWNrZXRzPTAiIFwKLSAgICAgICAgICIkT19ORVhUX0NMSV9OT19DRVJUIC1DQWZpbGUgZGF0YV9maWxlcy90ZXN0LWNhMi5jcnQgLWNpcGhlcnN1aXRlcyBUTFNfQUVTXzEyOF9DQ01fOF9TSEEyNTYgLXNpZ2FsZ3MgZWNkc2Ffc2VjcDUyMXIxX3NoYTUxMiAtZ3JvdXBzIFgyNTUxOSAtbXNnIC10bHMxXzMiIFwKKyAgICAgICAgICIkUF9TUlYgY3J0X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwNTIxcjEuY3J0IGtleV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDUyMXIxLmtleSBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMTI4LUNDTS04LVNIQTI1NiBzaWdfYWxncz1lY2RzYV9zZWNwNTIxcjFfc2hhNTEyIGdyb3Vwcz14MjU1MTkgdGxzMTNfa2V4X21vZGVzPWVwaGVtZXJhbCBjb29raWVzPTAgdGlja2V0cz0wIiBcCisgICAgICAgICAiJE9fTkVYVF9DTElfTk9fQ0VSVCAtQ0FmaWxlICREQVRBX0ZJTEVTX1BBVEgvdGVzdC1jYTIuY3J0IC1jaXBoZXJzdWl0ZXMgVExTX0FFU18xMjhfQ0NNXzhfU0hBMjU2IC1zaWdhbGdzIGVjZHNhX3NlY3A1MjFyMV9zaGE1MTIgLWdyb3VwcyBYMjU1MTkgLW1zZyAtdGxzMV8zIiBcCiAgICAgICAgICAwIFwKICAgICAgICAgIC1zICJQcm90b2NvbCBpcyBUTFN2MS4zIiBcCiAgICAgICAgICAtcyAic2VydmVyIGhlbGxvLCBjaG9zZW4gY2lwaGVyc3VpdGU6IFRMUzEtMy1BRVMtMTI4LUNDTS04LVNIQTI1NiAoIGlkPTQ4NjkgKSIgXApAQCAtMTk1MSw4ICsxOTUzLDggQEAKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIFBTQV9XQU5UX0FMR19FQ0RICiByZXF1aXJlc19vcGVuc3NsX3RsczFfMwogcnVuX3Rlc3QgIlRMUyAxLjMgTy0+bTogQUVTXzEyOF9DQ01fOF9TSEEyNTYseDI1NTE5LHJzYV9wc3NfcnNhZV9zaGEyNTYiIFwKLSAgICAgICAgICIkUF9TUlYgY3J0X2ZpbGU9ZGF0YV9maWxlcy9zZXJ2ZXIyLXNoYTI1Ni5jcnQga2V5X2ZpbGU9ZGF0YV9maWxlcy9zZXJ2ZXIyLmtleSBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMTI4LUNDTS04LVNIQTI1NiBzaWdfYWxncz1yc2FfcHNzX3JzYWVfc2hhMjU2IGdyb3Vwcz14MjU1MTkgdGxzMTNfa2V4X21vZGVzPWVwaGVtZXJhbCBjb29raWVzPTAgdGlja2V0cz0wIiBcCi0gICAgICAgICAiJE9fTkVYVF9DTElfTk9fQ0VSVCAtQ0FmaWxlIGRhdGFfZmlsZXMvdGVzdC1jYV9jYXQxMi5jcnQgLWNpcGhlcnN1aXRlcyBUTFNfQUVTXzEyOF9DQ01fOF9TSEEyNTYgLXNpZ2FsZ3MgcnNhX3Bzc19yc2FlX3NoYTI1NiAtZ3JvdXBzIFgyNTUxOSAtbXNnIC10bHMxXzMiIFwKKyAgICAgICAgICIkUF9TUlYgY3J0X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9zZXJ2ZXIyLXNoYTI1Ni5jcnQga2V5X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9zZXJ2ZXIyLmtleSBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMTI4LUNDTS04LVNIQTI1NiBzaWdfYWxncz1yc2FfcHNzX3JzYWVfc2hhMjU2IGdyb3Vwcz14MjU1MTkgdGxzMTNfa2V4X21vZGVzPWVwaGVtZXJhbCBjb29raWVzPTAgdGlja2V0cz0wIiBcCisgICAgICAgICAiJE9fTkVYVF9DTElfTk9fQ0VSVCAtQ0FmaWxlICREQVRBX0ZJTEVTX1BBVEgvdGVzdC1jYV9jYXQxMi5jcnQgLWNpcGhlcnN1aXRlcyBUTFNfQUVTXzEyOF9DQ01fOF9TSEEyNTYgLXNpZ2FsZ3MgcnNhX3Bzc19yc2FlX3NoYTI1NiAtZ3JvdXBzIFgyNTUxOSAtbXNnIC10bHMxXzMiIFwKICAgICAgICAgIDAgXAogICAgICAgICAgLXMgIlByb3RvY29sIGlzIFRMU3YxLjMiIFwKICAgICAgICAgIC1zICJzZXJ2ZXIgaGVsbG8sIGNob3NlbiBjaXBoZXJzdWl0ZTogVExTMS0zLUFFUy0xMjgtQ0NNLTgtU0hBMjU2ICggaWQ9NDg2OSApIiBcCkBAIC0xOTY4LDggKzE5NzAsOCBAQAogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgUFNBX1dBTlRfQUxHX0VDREgKIHJlcXVpcmVzX29wZW5zc2xfdGxzMV8zCiBydW5fdGVzdCAiVExTIDEuMyBPLT5tOiBBRVNfMTI4X0NDTV84X1NIQTI1Nix4NDQ4LGVjZHNhX3NlY3AyNTZyMV9zaGEyNTYiIFwKLSAgICAgICAgICIkUF9TUlYgY3J0X2ZpbGU9ZGF0YV9maWxlcy9lY2RzYV9zZWNwMjU2cjEuY3J0IGtleV9maWxlPWRhdGFfZmlsZXMvZWNkc2Ffc2VjcDI1NnIxLmtleSBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMTI4LUNDTS04LVNIQTI1NiBzaWdfYWxncz1lY2RzYV9zZWNwMjU2cjFfc2hhMjU2IGdyb3Vwcz14NDQ4IHRsczEzX2tleF9tb2Rlcz1lcGhlbWVyYWwgY29va2llcz0wIHRpY2tldHM9MCIgXAotICAgICAgICAgIiRPX05FWFRfQ0xJX05PX0NFUlQgLUNBZmlsZSBkYXRhX2ZpbGVzL3Rlc3QtY2EyLmNydCAtY2lwaGVyc3VpdGVzIFRMU19BRVNfMTI4X0NDTV84X1NIQTI1NiAtc2lnYWxncyBlY2RzYV9zZWNwMjU2cjFfc2hhMjU2IC1ncm91cHMgWDQ0OCAtbXNnIC10bHMxXzMiIFwKKyAgICAgICAgICIkUF9TUlYgY3J0X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwMjU2cjEuY3J0IGtleV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDI1NnIxLmtleSBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMTI4LUNDTS04LVNIQTI1NiBzaWdfYWxncz1lY2RzYV9zZWNwMjU2cjFfc2hhMjU2IGdyb3Vwcz14NDQ4IHRsczEzX2tleF9tb2Rlcz1lcGhlbWVyYWwgY29va2llcz0wIHRpY2tldHM9MCIgXAorICAgICAgICAgIiRPX05FWFRfQ0xJX05PX0NFUlQgLUNBZmlsZSAkREFUQV9GSUxFU19QQVRIL3Rlc3QtY2EyLmNydCAtY2lwaGVyc3VpdGVzIFRMU19BRVNfMTI4X0NDTV84X1NIQTI1NiAtc2lnYWxncyBlY2RzYV9zZWNwMjU2cjFfc2hhMjU2IC1ncm91cHMgWDQ0OCAtbXNnIC10bHMxXzMiIFwKICAgICAgICAgIDAgXAogICAgICAgICAgLXMgIlByb3RvY29sIGlzIFRMU3YxLjMiIFwKICAgICAgICAgIC1zICJzZXJ2ZXIgaGVsbG8sIGNob3NlbiBjaXBoZXJzdWl0ZTogVExTMS0zLUFFUy0xMjgtQ0NNLTgtU0hBMjU2ICggaWQ9NDg2OSApIiBcCkBAIC0xOTg1LDggKzE5ODcsOCBAQAogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgUFNBX1dBTlRfQUxHX0VDREgKIHJlcXVpcmVzX29wZW5zc2xfdGxzMV8zCiBydW5fdGVzdCAiVExTIDEuMyBPLT5tOiBBRVNfMTI4X0NDTV84X1NIQTI1Nix4NDQ4LGVjZHNhX3NlY3AzODRyMV9zaGEzODQiIFwKLSAgICAgICAgICIkUF9TUlYgY3J0X2ZpbGU9ZGF0YV9maWxlcy9lY2RzYV9zZWNwMzg0cjEuY3J0IGtleV9maWxlPWRhdGFfZmlsZXMvZWNkc2Ffc2VjcDM4NHIxLmtleSBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMTI4LUNDTS04LVNIQTI1NiBzaWdfYWxncz1lY2RzYV9zZWNwMzg0cjFfc2hhMzg0IGdyb3Vwcz14NDQ4IHRsczEzX2tleF9tb2Rlcz1lcGhlbWVyYWwgY29va2llcz0wIHRpY2tldHM9MCIgXAotICAgICAgICAgIiRPX05FWFRfQ0xJX05PX0NFUlQgLUNBZmlsZSBkYXRhX2ZpbGVzL3Rlc3QtY2EyLmNydCAtY2lwaGVyc3VpdGVzIFRMU19BRVNfMTI4X0NDTV84X1NIQTI1NiAtc2lnYWxncyBlY2RzYV9zZWNwMzg0cjFfc2hhMzg0IC1ncm91cHMgWDQ0OCAtbXNnIC10bHMxXzMiIFwKKyAgICAgICAgICIkUF9TUlYgY3J0X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwMzg0cjEuY3J0IGtleV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDM4NHIxLmtleSBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMTI4LUNDTS04LVNIQTI1NiBzaWdfYWxncz1lY2RzYV9zZWNwMzg0cjFfc2hhMzg0IGdyb3Vwcz14NDQ4IHRsczEzX2tleF9tb2Rlcz1lcGhlbWVyYWwgY29va2llcz0wIHRpY2tldHM9MCIgXAorICAgICAgICAgIiRPX05FWFRfQ0xJX05PX0NFUlQgLUNBZmlsZSAkREFUQV9GSUxFU19QQVRIL3Rlc3QtY2EyLmNydCAtY2lwaGVyc3VpdGVzIFRMU19BRVNfMTI4X0NDTV84X1NIQTI1NiAtc2lnYWxncyBlY2RzYV9zZWNwMzg0cjFfc2hhMzg0IC1ncm91cHMgWDQ0OCAtbXNnIC10bHMxXzMiIFwKICAgICAgICAgIDAgXAogICAgICAgICAgLXMgIlByb3RvY29sIGlzIFRMU3YxLjMiIFwKICAgICAgICAgIC1zICJzZXJ2ZXIgaGVsbG8sIGNob3NlbiBjaXBoZXJzdWl0ZTogVExTMS0zLUFFUy0xMjgtQ0NNLTgtU0hBMjU2ICggaWQ9NDg2OSApIiBcCkBAIC0yMDAyLDggKzIwMDQsOCBAQAogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgUFNBX1dBTlRfQUxHX0VDREgKIHJlcXVpcmVzX29wZW5zc2xfdGxzMV8zCiBydW5fdGVzdCAiVExTIDEuMyBPLT5tOiBBRVNfMTI4X0NDTV84X1NIQTI1Nix4NDQ4LGVjZHNhX3NlY3A1MjFyMV9zaGE1MTIiIFwKLSAgICAgICAgICIkUF9TUlYgY3J0X2ZpbGU9ZGF0YV9maWxlcy9lY2RzYV9zZWNwNTIxcjEuY3J0IGtleV9maWxlPWRhdGFfZmlsZXMvZWNkc2Ffc2VjcDUyMXIxLmtleSBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMTI4LUNDTS04LVNIQTI1NiBzaWdfYWxncz1lY2RzYV9zZWNwNTIxcjFfc2hhNTEyIGdyb3Vwcz14NDQ4IHRsczEzX2tleF9tb2Rlcz1lcGhlbWVyYWwgY29va2llcz0wIHRpY2tldHM9MCIgXAotICAgICAgICAgIiRPX05FWFRfQ0xJX05PX0NFUlQgLUNBZmlsZSBkYXRhX2ZpbGVzL3Rlc3QtY2EyLmNydCAtY2lwaGVyc3VpdGVzIFRMU19BRVNfMTI4X0NDTV84X1NIQTI1NiAtc2lnYWxncyBlY2RzYV9zZWNwNTIxcjFfc2hhNTEyIC1ncm91cHMgWDQ0OCAtbXNnIC10bHMxXzMiIFwKKyAgICAgICAgICIkUF9TUlYgY3J0X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwNTIxcjEuY3J0IGtleV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDUyMXIxLmtleSBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMTI4LUNDTS04LVNIQTI1NiBzaWdfYWxncz1lY2RzYV9zZWNwNTIxcjFfc2hhNTEyIGdyb3Vwcz14NDQ4IHRsczEzX2tleF9tb2Rlcz1lcGhlbWVyYWwgY29va2llcz0wIHRpY2tldHM9MCIgXAorICAgICAgICAgIiRPX05FWFRfQ0xJX05PX0NFUlQgLUNBZmlsZSAkREFUQV9GSUxFU19QQVRIL3Rlc3QtY2EyLmNydCAtY2lwaGVyc3VpdGVzIFRMU19BRVNfMTI4X0NDTV84X1NIQTI1NiAtc2lnYWxncyBlY2RzYV9zZWNwNTIxcjFfc2hhNTEyIC1ncm91cHMgWDQ0OCAtbXNnIC10bHMxXzMiIFwKICAgICAgICAgIDAgXAogICAgICAgICAgLXMgIlByb3RvY29sIGlzIFRMU3YxLjMiIFwKICAgICAgICAgIC1zICJzZXJ2ZXIgaGVsbG8sIGNob3NlbiBjaXBoZXJzdWl0ZTogVExTMS0zLUFFUy0xMjgtQ0NNLTgtU0hBMjU2ICggaWQ9NDg2OSApIiBcCkBAIC0yMDIwLDggKzIwMjIsOCBAQAogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgUFNBX1dBTlRfQUxHX0VDREgKIHJlcXVpcmVzX29wZW5zc2xfdGxzMV8zCiBydW5fdGVzdCAiVExTIDEuMyBPLT5tOiBBRVNfMTI4X0NDTV84X1NIQTI1Nix4NDQ4LHJzYV9wc3NfcnNhZV9zaGEyNTYiIFwKLSAgICAgICAgICIkUF9TUlYgY3J0X2ZpbGU9ZGF0YV9maWxlcy9zZXJ2ZXIyLXNoYTI1Ni5jcnQga2V5X2ZpbGU9ZGF0YV9maWxlcy9zZXJ2ZXIyLmtleSBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMTI4LUNDTS04LVNIQTI1NiBzaWdfYWxncz1yc2FfcHNzX3JzYWVfc2hhMjU2IGdyb3Vwcz14NDQ4IHRsczEzX2tleF9tb2Rlcz1lcGhlbWVyYWwgY29va2llcz0wIHRpY2tldHM9MCIgXAotICAgICAgICAgIiRPX05FWFRfQ0xJX05PX0NFUlQgLUNBZmlsZSBkYXRhX2ZpbGVzL3Rlc3QtY2FfY2F0MTIuY3J0IC1jaXBoZXJzdWl0ZXMgVExTX0FFU18xMjhfQ0NNXzhfU0hBMjU2IC1zaWdhbGdzIHJzYV9wc3NfcnNhZV9zaGEyNTYgLWdyb3VwcyBYNDQ4IC1tc2cgLXRsczFfMyIgXAorICAgICAgICAgIiRQX1NSViBjcnRfZmlsZT0kREFUQV9GSUxFU19QQVRIL3NlcnZlcjItc2hhMjU2LmNydCBrZXlfZmlsZT0kREFUQV9GSUxFU19QQVRIL3NlcnZlcjIua2V5IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0xMjgtQ0NNLTgtU0hBMjU2IHNpZ19hbGdzPXJzYV9wc3NfcnNhZV9zaGEyNTYgZ3JvdXBzPXg0NDggdGxzMTNfa2V4X21vZGVzPWVwaGVtZXJhbCBjb29raWVzPTAgdGlja2V0cz0wIiBcCisgICAgICAgICAiJE9fTkVYVF9DTElfTk9fQ0VSVCAtQ0FmaWxlICREQVRBX0ZJTEVTX1BBVEgvdGVzdC1jYV9jYXQxMi5jcnQgLWNpcGhlcnN1aXRlcyBUTFNfQUVTXzEyOF9DQ01fOF9TSEEyNTYgLXNpZ2FsZ3MgcnNhX3Bzc19yc2FlX3NoYTI1NiAtZ3JvdXBzIFg0NDggLW1zZyAtdGxzMV8zIiBcCiAgICAgICAgICAwIFwKICAgICAgICAgIC1zICJQcm90b2NvbCBpcyBUTFN2MS4zIiBcCiAgICAgICAgICAtcyAic2VydmVyIGhlbGxvLCBjaG9zZW4gY2lwaGVyc3VpdGU6IFRMUzEtMy1BRVMtMTI4LUNDTS04LVNIQTI1NiAoIGlkPTQ4NjkgKSIgXApAQCAtMjAzOCw4ICsyMDQwLDggQEAKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIFBTQV9XQU5UX0RIX1JGQzc5MTlfMjA0OAogcmVxdWlyZXNfb3BlbnNzbF90bHMxXzNfd2l0aF9mZmRoCiBydW5fdGVzdCAiVExTIDEuMyBPLT5tOiBBRVNfMTI4X0NDTV84X1NIQTI1NixmZmRoZTIwNDgsZWNkc2Ffc2VjcDI1NnIxX3NoYTI1NiIgXAotICAgICAgICAgIiRQX1NSViBjcnRfZmlsZT1kYXRhX2ZpbGVzL2VjZHNhX3NlY3AyNTZyMS5jcnQga2V5X2ZpbGU9ZGF0YV9maWxlcy9lY2RzYV9zZWNwMjU2cjEua2V5IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0xMjgtQ0NNLTgtU0hBMjU2IHNpZ19hbGdzPWVjZHNhX3NlY3AyNTZyMV9zaGEyNTYgZ3JvdXBzPWZmZGhlMjA0OCB0bHMxM19rZXhfbW9kZXM9ZXBoZW1lcmFsIGNvb2tpZXM9MCB0aWNrZXRzPTAiIFwKLSAgICAgICAgICIkT19ORVhUX0NMSV9OT19DRVJUIC1DQWZpbGUgZGF0YV9maWxlcy90ZXN0LWNhMi5jcnQgLWNpcGhlcnN1aXRlcyBUTFNfQUVTXzEyOF9DQ01fOF9TSEEyNTYgLXNpZ2FsZ3MgZWNkc2Ffc2VjcDI1NnIxX3NoYTI1NiAtZ3JvdXBzIGZmZGhlMjA0OCAtbXNnIC10bHMxXzMiIFwKKyAgICAgICAgICIkUF9TUlYgY3J0X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwMjU2cjEuY3J0IGtleV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDI1NnIxLmtleSBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMTI4LUNDTS04LVNIQTI1NiBzaWdfYWxncz1lY2RzYV9zZWNwMjU2cjFfc2hhMjU2IGdyb3Vwcz1mZmRoZTIwNDggdGxzMTNfa2V4X21vZGVzPWVwaGVtZXJhbCBjb29raWVzPTAgdGlja2V0cz0wIiBcCisgICAgICAgICAiJE9fTkVYVF9DTElfTk9fQ0VSVCAtQ0FmaWxlICREQVRBX0ZJTEVTX1BBVEgvdGVzdC1jYTIuY3J0IC1jaXBoZXJzdWl0ZXMgVExTX0FFU18xMjhfQ0NNXzhfU0hBMjU2IC1zaWdhbGdzIGVjZHNhX3NlY3AyNTZyMV9zaGEyNTYgLWdyb3VwcyBmZmRoZTIwNDggLW1zZyAtdGxzMV8zIiBcCiAgICAgICAgICAwIFwKICAgICAgICAgIC1zICJQcm90b2NvbCBpcyBUTFN2MS4zIiBcCiAgICAgICAgICAtcyAic2VydmVyIGhlbGxvLCBjaG9zZW4gY2lwaGVyc3VpdGU6IFRMUzEtMy1BRVMtMTI4LUNDTS04LVNIQTI1NiAoIGlkPTQ4NjkgKSIgXApAQCAtMjA1Niw4ICsyMDU4LDggQEAKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIFBTQV9XQU5UX0RIX1JGQzc5MTlfMjA0OAogcmVxdWlyZXNfb3BlbnNzbF90bHMxXzNfd2l0aF9mZmRoCiBydW5fdGVzdCAiVExTIDEuMyBPLT5tOiBBRVNfMTI4X0NDTV84X1NIQTI1NixmZmRoZTIwNDgsZWNkc2Ffc2VjcDM4NHIxX3NoYTM4NCIgXAotICAgICAgICAgIiRQX1NSViBjcnRfZmlsZT1kYXRhX2ZpbGVzL2VjZHNhX3NlY3AzODRyMS5jcnQga2V5X2ZpbGU9ZGF0YV9maWxlcy9lY2RzYV9zZWNwMzg0cjEua2V5IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0xMjgtQ0NNLTgtU0hBMjU2IHNpZ19hbGdzPWVjZHNhX3NlY3AzODRyMV9zaGEzODQgZ3JvdXBzPWZmZGhlMjA0OCB0bHMxM19rZXhfbW9kZXM9ZXBoZW1lcmFsIGNvb2tpZXM9MCB0aWNrZXRzPTAiIFwKLSAgICAgICAgICIkT19ORVhUX0NMSV9OT19DRVJUIC1DQWZpbGUgZGF0YV9maWxlcy90ZXN0LWNhMi5jcnQgLWNpcGhlcnN1aXRlcyBUTFNfQUVTXzEyOF9DQ01fOF9TSEEyNTYgLXNpZ2FsZ3MgZWNkc2Ffc2VjcDM4NHIxX3NoYTM4NCAtZ3JvdXBzIGZmZGhlMjA0OCAtbXNnIC10bHMxXzMiIFwKKyAgICAgICAgICIkUF9TUlYgY3J0X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwMzg0cjEuY3J0IGtleV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDM4NHIxLmtleSBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMTI4LUNDTS04LVNIQTI1NiBzaWdfYWxncz1lY2RzYV9zZWNwMzg0cjFfc2hhMzg0IGdyb3Vwcz1mZmRoZTIwNDggdGxzMTNfa2V4X21vZGVzPWVwaGVtZXJhbCBjb29raWVzPTAgdGlja2V0cz0wIiBcCisgICAgICAgICAiJE9fTkVYVF9DTElfTk9fQ0VSVCAtQ0FmaWxlICREQVRBX0ZJTEVTX1BBVEgvdGVzdC1jYTIuY3J0IC1jaXBoZXJzdWl0ZXMgVExTX0FFU18xMjhfQ0NNXzhfU0hBMjU2IC1zaWdhbGdzIGVjZHNhX3NlY3AzODRyMV9zaGEzODQgLWdyb3VwcyBmZmRoZTIwNDggLW1zZyAtdGxzMV8zIiBcCiAgICAgICAgICAwIFwKICAgICAgICAgIC1zICJQcm90b2NvbCBpcyBUTFN2MS4zIiBcCiAgICAgICAgICAtcyAic2VydmVyIGhlbGxvLCBjaG9zZW4gY2lwaGVyc3VpdGU6IFRMUzEtMy1BRVMtMTI4LUNDTS04LVNIQTI1NiAoIGlkPTQ4NjkgKSIgXApAQCAtMjA3NCw4ICsyMDc2LDggQEAKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIFBTQV9XQU5UX0RIX1JGQzc5MTlfMjA0OAogcmVxdWlyZXNfb3BlbnNzbF90bHMxXzNfd2l0aF9mZmRoCiBydW5fdGVzdCAiVExTIDEuMyBPLT5tOiBBRVNfMTI4X0NDTV84X1NIQTI1NixmZmRoZTIwNDgsZWNkc2Ffc2VjcDUyMXIxX3NoYTUxMiIgXAotICAgICAgICAgIiRQX1NSViBjcnRfZmlsZT1kYXRhX2ZpbGVzL2VjZHNhX3NlY3A1MjFyMS5jcnQga2V5X2ZpbGU9ZGF0YV9maWxlcy9lY2RzYV9zZWNwNTIxcjEua2V5IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0xMjgtQ0NNLTgtU0hBMjU2IHNpZ19hbGdzPWVjZHNhX3NlY3A1MjFyMV9zaGE1MTIgZ3JvdXBzPWZmZGhlMjA0OCB0bHMxM19rZXhfbW9kZXM9ZXBoZW1lcmFsIGNvb2tpZXM9MCB0aWNrZXRzPTAiIFwKLSAgICAgICAgICIkT19ORVhUX0NMSV9OT19DRVJUIC1DQWZpbGUgZGF0YV9maWxlcy90ZXN0LWNhMi5jcnQgLWNpcGhlcnN1aXRlcyBUTFNfQUVTXzEyOF9DQ01fOF9TSEEyNTYgLXNpZ2FsZ3MgZWNkc2Ffc2VjcDUyMXIxX3NoYTUxMiAtZ3JvdXBzIGZmZGhlMjA0OCAtbXNnIC10bHMxXzMiIFwKKyAgICAgICAgICIkUF9TUlYgY3J0X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwNTIxcjEuY3J0IGtleV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDUyMXIxLmtleSBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMTI4LUNDTS04LVNIQTI1NiBzaWdfYWxncz1lY2RzYV9zZWNwNTIxcjFfc2hhNTEyIGdyb3Vwcz1mZmRoZTIwNDggdGxzMTNfa2V4X21vZGVzPWVwaGVtZXJhbCBjb29raWVzPTAgdGlja2V0cz0wIiBcCisgICAgICAgICAiJE9fTkVYVF9DTElfTk9fQ0VSVCAtQ0FmaWxlICREQVRBX0ZJTEVTX1BBVEgvdGVzdC1jYTIuY3J0IC1jaXBoZXJzdWl0ZXMgVExTX0FFU18xMjhfQ0NNXzhfU0hBMjU2IC1zaWdhbGdzIGVjZHNhX3NlY3A1MjFyMV9zaGE1MTIgLWdyb3VwcyBmZmRoZTIwNDggLW1zZyAtdGxzMV8zIiBcCiAgICAgICAgICAwIFwKICAgICAgICAgIC1zICJQcm90b2NvbCBpcyBUTFN2MS4zIiBcCiAgICAgICAgICAtcyAic2VydmVyIGhlbGxvLCBjaG9zZW4gY2lwaGVyc3VpdGU6IFRMUzEtMy1BRVMtMTI4LUNDTS04LVNIQTI1NiAoIGlkPTQ4NjkgKSIgXApAQCAtMjA5Myw4ICsyMDk1LDggQEAKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIFBTQV9XQU5UX0RIX1JGQzc5MTlfMjA0OAogcmVxdWlyZXNfb3BlbnNzbF90bHMxXzNfd2l0aF9mZmRoCiBydW5fdGVzdCAiVExTIDEuMyBPLT5tOiBBRVNfMTI4X0NDTV84X1NIQTI1NixmZmRoZTIwNDgscnNhX3Bzc19yc2FlX3NoYTI1NiIgXAotICAgICAgICAgIiRQX1NSViBjcnRfZmlsZT1kYXRhX2ZpbGVzL3NlcnZlcjItc2hhMjU2LmNydCBrZXlfZmlsZT1kYXRhX2ZpbGVzL3NlcnZlcjIua2V5IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0xMjgtQ0NNLTgtU0hBMjU2IHNpZ19hbGdzPXJzYV9wc3NfcnNhZV9zaGEyNTYgZ3JvdXBzPWZmZGhlMjA0OCB0bHMxM19rZXhfbW9kZXM9ZXBoZW1lcmFsIGNvb2tpZXM9MCB0aWNrZXRzPTAiIFwKLSAgICAgICAgICIkT19ORVhUX0NMSV9OT19DRVJUIC1DQWZpbGUgZGF0YV9maWxlcy90ZXN0LWNhX2NhdDEyLmNydCAtY2lwaGVyc3VpdGVzIFRMU19BRVNfMTI4X0NDTV84X1NIQTI1NiAtc2lnYWxncyByc2FfcHNzX3JzYWVfc2hhMjU2IC1ncm91cHMgZmZkaGUyMDQ4IC1tc2cgLXRsczFfMyIgXAorICAgICAgICAgIiRQX1NSViBjcnRfZmlsZT0kREFUQV9GSUxFU19QQVRIL3NlcnZlcjItc2hhMjU2LmNydCBrZXlfZmlsZT0kREFUQV9GSUxFU19QQVRIL3NlcnZlcjIua2V5IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0xMjgtQ0NNLTgtU0hBMjU2IHNpZ19hbGdzPXJzYV9wc3NfcnNhZV9zaGEyNTYgZ3JvdXBzPWZmZGhlMjA0OCB0bHMxM19rZXhfbW9kZXM9ZXBoZW1lcmFsIGNvb2tpZXM9MCB0aWNrZXRzPTAiIFwKKyAgICAgICAgICIkT19ORVhUX0NMSV9OT19DRVJUIC1DQWZpbGUgJERBVEFfRklMRVNfUEFUSC90ZXN0LWNhX2NhdDEyLmNydCAtY2lwaGVyc3VpdGVzIFRMU19BRVNfMTI4X0NDTV84X1NIQTI1NiAtc2lnYWxncyByc2FfcHNzX3JzYWVfc2hhMjU2IC1ncm91cHMgZmZkaGUyMDQ4IC1tc2cgLXRsczFfMyIgXAogICAgICAgICAgMCBcCiAgICAgICAgICAtcyAiUHJvdG9jb2wgaXMgVExTdjEuMyIgXAogICAgICAgICAgLXMgInNlcnZlciBoZWxsbywgY2hvc2VuIGNpcGhlcnN1aXRlOiBUTFMxLTMtQUVTLTEyOC1DQ00tOC1TSEEyNTYgKCBpZD00ODY5ICkiIFwKQEAgLTIxMTIsOCArMjExNCw4IEBACiByZXF1aXJlc19nbnV0bHNfbmV4dF9ub190aWNrZXQKIHJlcXVpcmVzX2dudXRsc19uZXh0X2Rpc2FibGVfdGxzMTNfY29tcGF0CiBydW5fdGVzdCAiVExTIDEuMyBHLT5tOiBBRVNfMTI4X0dDTV9TSEEyNTYsc2VjcDI1NnIxLGVjZHNhX3NlY3AyNTZyMV9zaGEyNTYiIFwKLSAgICAgICAgICIkUF9TUlYgY3J0X2ZpbGU9ZGF0YV9maWxlcy9lY2RzYV9zZWNwMjU2cjEuY3J0IGtleV9maWxlPWRhdGFfZmlsZXMvZWNkc2Ffc2VjcDI1NnIxLmtleSBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMTI4LUdDTS1TSEEyNTYgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDI1NnIxX3NoYTI1NiBncm91cHM9c2VjcDI1NnIxIHRsczEzX2tleF9tb2Rlcz1lcGhlbWVyYWwgY29va2llcz0wIHRpY2tldHM9MCIgXAotICAgICAgICAgIiRHX05FWFRfQ0xJX05PX0NFUlQgLS1kZWJ1Zz00IC0tc2luZ2xlLWtleS1zaGFyZSAtLXg1MDljYWZpbGUgZGF0YV9maWxlcy90ZXN0LWNhMi5jcnQgLS1wcmlvcml0eT1OT05FOitBRVMtMTI4LUdDTTorU0hBMjU2OitBRUFEOitTSUdOLUVDRFNBLVNFQ1AyNTZSMS1TSEEyNTY6K0dST1VQLVNFQ1AyNTZSMTorVkVSUy1UTFMxLjM6JU5PX1RJQ0tFVFMiIFwKKyAgICAgICAgICIkUF9TUlYgY3J0X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwMjU2cjEuY3J0IGtleV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDI1NnIxLmtleSBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMTI4LUdDTS1TSEEyNTYgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDI1NnIxX3NoYTI1NiBncm91cHM9c2VjcDI1NnIxIHRsczEzX2tleF9tb2Rlcz1lcGhlbWVyYWwgY29va2llcz0wIHRpY2tldHM9MCIgXAorICAgICAgICAgIiRHX05FWFRfQ0xJX05PX0NFUlQgLS1kZWJ1Zz00IC0tc2luZ2xlLWtleS1zaGFyZSAtLXg1MDljYWZpbGUgJERBVEFfRklMRVNfUEFUSC90ZXN0LWNhMi5jcnQgLS1wcmlvcml0eT1OT05FOitBRVMtMTI4LUdDTTorU0hBMjU2OitBRUFEOitTSUdOLUVDRFNBLVNFQ1AyNTZSMS1TSEEyNTY6K0dST1VQLVNFQ1AyNTZSMTorVkVSUy1UTFMxLjM6JU5PX1RJQ0tFVFMiIFwKICAgICAgICAgIDAgXAogICAgICAgICAgLXMgIlByb3RvY29sIGlzIFRMU3YxLjMiIFwKICAgICAgICAgIC1zICJzZXJ2ZXIgaGVsbG8sIGNob3NlbiBjaXBoZXJzdWl0ZTogVExTMS0zLUFFUy0xMjgtR0NNLVNIQTI1NiAoIGlkPTQ4NjUgKSIgXApAQCAtMjEzMSw4ICsyMTMzLDggQEAKIHJlcXVpcmVzX2dudXRsc19uZXh0X25vX3RpY2tldAogcmVxdWlyZXNfZ251dGxzX25leHRfZGlzYWJsZV90bHMxM19jb21wYXQKIHJ1bl90ZXN0ICJUTFMgMS4zIEctPm06IEFFU18xMjhfR0NNX1NIQTI1NixzZWNwMjU2cjEsZWNkc2Ffc2VjcDM4NHIxX3NoYTM4NCIgXAotICAgICAgICAgIiRQX1NSViBjcnRfZmlsZT1kYXRhX2ZpbGVzL2VjZHNhX3NlY3AzODRyMS5jcnQga2V5X2ZpbGU9ZGF0YV9maWxlcy9lY2RzYV9zZWNwMzg0cjEua2V5IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0xMjgtR0NNLVNIQTI1NiBzaWdfYWxncz1lY2RzYV9zZWNwMzg0cjFfc2hhMzg0IGdyb3Vwcz1zZWNwMjU2cjEgdGxzMTNfa2V4X21vZGVzPWVwaGVtZXJhbCBjb29raWVzPTAgdGlja2V0cz0wIiBcCi0gICAgICAgICAiJEdfTkVYVF9DTElfTk9fQ0VSVCAtLWRlYnVnPTQgLS1zaW5nbGUta2V5LXNoYXJlIC0teDUwOWNhZmlsZSBkYXRhX2ZpbGVzL3Rlc3QtY2EyLmNydCAtLXByaW9yaXR5PU5PTkU6K0FFUy0xMjgtR0NNOitTSEEyNTY6K0FFQUQ6K1NJR04tRUNEU0EtU0VDUDM4NFIxLVNIQTM4NDorR1JPVVAtU0VDUDI1NlIxOitWRVJTLVRMUzEuMzolTk9fVElDS0VUUyIgXAorICAgICAgICAgIiRQX1NSViBjcnRfZmlsZT0kREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3AzODRyMS5jcnQga2V5X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwMzg0cjEua2V5IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0xMjgtR0NNLVNIQTI1NiBzaWdfYWxncz1lY2RzYV9zZWNwMzg0cjFfc2hhMzg0IGdyb3Vwcz1zZWNwMjU2cjEgdGxzMTNfa2V4X21vZGVzPWVwaGVtZXJhbCBjb29raWVzPTAgdGlja2V0cz0wIiBcCisgICAgICAgICAiJEdfTkVYVF9DTElfTk9fQ0VSVCAtLWRlYnVnPTQgLS1zaW5nbGUta2V5LXNoYXJlIC0teDUwOWNhZmlsZSAkREFUQV9GSUxFU19QQVRIL3Rlc3QtY2EyLmNydCAtLXByaW9yaXR5PU5PTkU6K0FFUy0xMjgtR0NNOitTSEEyNTY6K0FFQUQ6K1NJR04tRUNEU0EtU0VDUDM4NFIxLVNIQTM4NDorR1JPVVAtU0VDUDI1NlIxOitWRVJTLVRMUzEuMzolTk9fVElDS0VUUyIgXAogICAgICAgICAgMCBcCiAgICAgICAgICAtcyAiUHJvdG9jb2wgaXMgVExTdjEuMyIgXAogICAgICAgICAgLXMgInNlcnZlciBoZWxsbywgY2hvc2VuIGNpcGhlcnN1aXRlOiBUTFMxLTMtQUVTLTEyOC1HQ00tU0hBMjU2ICggaWQ9NDg2NSApIiBcCkBAIC0yMTUwLDggKzIxNTIsOCBAQAogcmVxdWlyZXNfZ251dGxzX25leHRfbm9fdGlja2V0CiByZXF1aXJlc19nbnV0bHNfbmV4dF9kaXNhYmxlX3RsczEzX2NvbXBhdAogcnVuX3Rlc3QgIlRMUyAxLjMgRy0+bTogQUVTXzEyOF9HQ01fU0hBMjU2LHNlY3AyNTZyMSxlY2RzYV9zZWNwNTIxcjFfc2hhNTEyIiBcCi0gICAgICAgICAiJFBfU1JWIGNydF9maWxlPWRhdGFfZmlsZXMvZWNkc2Ffc2VjcDUyMXIxLmNydCBrZXlfZmlsZT1kYXRhX2ZpbGVzL2VjZHNhX3NlY3A1MjFyMS5rZXkgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTEyOC1HQ00tU0hBMjU2IHNpZ19hbGdzPWVjZHNhX3NlY3A1MjFyMV9zaGE1MTIgZ3JvdXBzPXNlY3AyNTZyMSB0bHMxM19rZXhfbW9kZXM9ZXBoZW1lcmFsIGNvb2tpZXM9MCB0aWNrZXRzPTAiIFwKLSAgICAgICAgICIkR19ORVhUX0NMSV9OT19DRVJUIC0tZGVidWc9NCAtLXNpbmdsZS1rZXktc2hhcmUgLS14NTA5Y2FmaWxlIGRhdGFfZmlsZXMvdGVzdC1jYTIuY3J0IC0tcHJpb3JpdHk9Tk9ORTorQUVTLTEyOC1HQ006K1NIQTI1NjorQUVBRDorU0lHTi1FQ0RTQS1TRUNQNTIxUjEtU0hBNTEyOitHUk9VUC1TRUNQMjU2UjE6K1ZFUlMtVExTMS4zOiVOT19USUNLRVRTIiBcCisgICAgICAgICAiJFBfU1JWIGNydF9maWxlPSREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDUyMXIxLmNydCBrZXlfZmlsZT0kREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3A1MjFyMS5rZXkgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTEyOC1HQ00tU0hBMjU2IHNpZ19hbGdzPWVjZHNhX3NlY3A1MjFyMV9zaGE1MTIgZ3JvdXBzPXNlY3AyNTZyMSB0bHMxM19rZXhfbW9kZXM9ZXBoZW1lcmFsIGNvb2tpZXM9MCB0aWNrZXRzPTAiIFwKKyAgICAgICAgICIkR19ORVhUX0NMSV9OT19DRVJUIC0tZGVidWc9NCAtLXNpbmdsZS1rZXktc2hhcmUgLS14NTA5Y2FmaWxlICREQVRBX0ZJTEVTX1BBVEgvdGVzdC1jYTIuY3J0IC0tcHJpb3JpdHk9Tk9ORTorQUVTLTEyOC1HQ006K1NIQTI1NjorQUVBRDorU0lHTi1FQ0RTQS1TRUNQNTIxUjEtU0hBNTEyOitHUk9VUC1TRUNQMjU2UjE6K1ZFUlMtVExTMS4zOiVOT19USUNLRVRTIiBcCiAgICAgICAgICAwIFwKICAgICAgICAgIC1zICJQcm90b2NvbCBpcyBUTFN2MS4zIiBcCiAgICAgICAgICAtcyAic2VydmVyIGhlbGxvLCBjaG9zZW4gY2lwaGVyc3VpdGU6IFRMUzEtMy1BRVMtMTI4LUdDTS1TSEEyNTYgKCBpZD00ODY1ICkiIFwKQEAgLTIxNzAsOCArMjE3Miw4IEBACiByZXF1aXJlc19nbnV0bHNfbmV4dF9ub190aWNrZXQKIHJlcXVpcmVzX2dudXRsc19uZXh0X2Rpc2FibGVfdGxzMTNfY29tcGF0CiBydW5fdGVzdCAiVExTIDEuMyBHLT5tOiBBRVNfMTI4X0dDTV9TSEEyNTYsc2VjcDI1NnIxLHJzYV9wc3NfcnNhZV9zaGEyNTYiIFwKLSAgICAgICAgICIkUF9TUlYgY3J0X2ZpbGU9ZGF0YV9maWxlcy9zZXJ2ZXIyLXNoYTI1Ni5jcnQga2V5X2ZpbGU9ZGF0YV9maWxlcy9zZXJ2ZXIyLmtleSBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMTI4LUdDTS1TSEEyNTYgc2lnX2FsZ3M9cnNhX3Bzc19yc2FlX3NoYTI1NiBncm91cHM9c2VjcDI1NnIxIHRsczEzX2tleF9tb2Rlcz1lcGhlbWVyYWwgY29va2llcz0wIHRpY2tldHM9MCIgXAotICAgICAgICAgIiRHX05FWFRfQ0xJX05PX0NFUlQgLS1kZWJ1Zz00IC0tc2luZ2xlLWtleS1zaGFyZSAtLXg1MDljYWZpbGUgZGF0YV9maWxlcy90ZXN0LWNhX2NhdDEyLmNydCAtLXByaW9yaXR5PU5PTkU6K0FFUy0xMjgtR0NNOitTSEEyNTY6K0FFQUQ6K1NJR04tUlNBLVBTUy1SU0FFLVNIQTI1NjorR1JPVVAtU0VDUDI1NlIxOitWRVJTLVRMUzEuMzolTk9fVElDS0VUUyIgXAorICAgICAgICAgIiRQX1NSViBjcnRfZmlsZT0kREFUQV9GSUxFU19QQVRIL3NlcnZlcjItc2hhMjU2LmNydCBrZXlfZmlsZT0kREFUQV9GSUxFU19QQVRIL3NlcnZlcjIua2V5IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0xMjgtR0NNLVNIQTI1NiBzaWdfYWxncz1yc2FfcHNzX3JzYWVfc2hhMjU2IGdyb3Vwcz1zZWNwMjU2cjEgdGxzMTNfa2V4X21vZGVzPWVwaGVtZXJhbCBjb29raWVzPTAgdGlja2V0cz0wIiBcCisgICAgICAgICAiJEdfTkVYVF9DTElfTk9fQ0VSVCAtLWRlYnVnPTQgLS1zaW5nbGUta2V5LXNoYXJlIC0teDUwOWNhZmlsZSAkREFUQV9GSUxFU19QQVRIL3Rlc3QtY2FfY2F0MTIuY3J0IC0tcHJpb3JpdHk9Tk9ORTorQUVTLTEyOC1HQ006K1NIQTI1NjorQUVBRDorU0lHTi1SU0EtUFNTLVJTQUUtU0hBMjU2OitHUk9VUC1TRUNQMjU2UjE6K1ZFUlMtVExTMS4zOiVOT19USUNLRVRTIiBcCiAgICAgICAgICAwIFwKICAgICAgICAgIC1zICJQcm90b2NvbCBpcyBUTFN2MS4zIiBcCiAgICAgICAgICAtcyAic2VydmVyIGhlbGxvLCBjaG9zZW4gY2lwaGVyc3VpdGU6IFRMUzEtMy1BRVMtMTI4LUdDTS1TSEEyNTYgKCBpZD00ODY1ICkiIFwKQEAgLTIxODksOCArMjE5MSw4IEBACiByZXF1aXJlc19nbnV0bHNfbmV4dF9ub190aWNrZXQKIHJlcXVpcmVzX2dudXRsc19uZXh0X2Rpc2FibGVfdGxzMTNfY29tcGF0CiBydW5fdGVzdCAiVExTIDEuMyBHLT5tOiBBRVNfMTI4X0dDTV9TSEEyNTYsc2VjcDM4NHIxLGVjZHNhX3NlY3AyNTZyMV9zaGEyNTYiIFwKLSAgICAgICAgICIkUF9TUlYgY3J0X2ZpbGU9ZGF0YV9maWxlcy9lY2RzYV9zZWNwMjU2cjEuY3J0IGtleV9maWxlPWRhdGFfZmlsZXMvZWNkc2Ffc2VjcDI1NnIxLmtleSBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMTI4LUdDTS1TSEEyNTYgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDI1NnIxX3NoYTI1NiBncm91cHM9c2VjcDM4NHIxIHRsczEzX2tleF9tb2Rlcz1lcGhlbWVyYWwgY29va2llcz0wIHRpY2tldHM9MCIgXAotICAgICAgICAgIiRHX05FWFRfQ0xJX05PX0NFUlQgLS1kZWJ1Zz00IC0tc2luZ2xlLWtleS1zaGFyZSAtLXg1MDljYWZpbGUgZGF0YV9maWxlcy90ZXN0LWNhMi5jcnQgLS1wcmlvcml0eT1OT05FOitBRVMtMTI4LUdDTTorU0hBMjU2OitBRUFEOitTSUdOLUVDRFNBLVNFQ1AyNTZSMS1TSEEyNTY6K0dST1VQLVNFQ1AzODRSMTorVkVSUy1UTFMxLjM6JU5PX1RJQ0tFVFMiIFwKKyAgICAgICAgICIkUF9TUlYgY3J0X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwMjU2cjEuY3J0IGtleV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDI1NnIxLmtleSBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMTI4LUdDTS1TSEEyNTYgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDI1NnIxX3NoYTI1NiBncm91cHM9c2VjcDM4NHIxIHRsczEzX2tleF9tb2Rlcz1lcGhlbWVyYWwgY29va2llcz0wIHRpY2tldHM9MCIgXAorICAgICAgICAgIiRHX05FWFRfQ0xJX05PX0NFUlQgLS1kZWJ1Zz00IC0tc2luZ2xlLWtleS1zaGFyZSAtLXg1MDljYWZpbGUgJERBVEFfRklMRVNfUEFUSC90ZXN0LWNhMi5jcnQgLS1wcmlvcml0eT1OT05FOitBRVMtMTI4LUdDTTorU0hBMjU2OitBRUFEOitTSUdOLUVDRFNBLVNFQ1AyNTZSMS1TSEEyNTY6K0dST1VQLVNFQ1AzODRSMTorVkVSUy1UTFMxLjM6JU5PX1RJQ0tFVFMiIFwKICAgICAgICAgIDAgXAogICAgICAgICAgLXMgIlByb3RvY29sIGlzIFRMU3YxLjMiIFwKICAgICAgICAgIC1zICJzZXJ2ZXIgaGVsbG8sIGNob3NlbiBjaXBoZXJzdWl0ZTogVExTMS0zLUFFUy0xMjgtR0NNLVNIQTI1NiAoIGlkPTQ4NjUgKSIgXApAQCAtMjIwOCw4ICsyMjEwLDggQEAKIHJlcXVpcmVzX2dudXRsc19uZXh0X25vX3RpY2tldAogcmVxdWlyZXNfZ251dGxzX25leHRfZGlzYWJsZV90bHMxM19jb21wYXQKIHJ1bl90ZXN0ICJUTFMgMS4zIEctPm06IEFFU18xMjhfR0NNX1NIQTI1NixzZWNwMzg0cjEsZWNkc2Ffc2VjcDM4NHIxX3NoYTM4NCIgXAotICAgICAgICAgIiRQX1NSViBjcnRfZmlsZT1kYXRhX2ZpbGVzL2VjZHNhX3NlY3AzODRyMS5jcnQga2V5X2ZpbGU9ZGF0YV9maWxlcy9lY2RzYV9zZWNwMzg0cjEua2V5IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0xMjgtR0NNLVNIQTI1NiBzaWdfYWxncz1lY2RzYV9zZWNwMzg0cjFfc2hhMzg0IGdyb3Vwcz1zZWNwMzg0cjEgdGxzMTNfa2V4X21vZGVzPWVwaGVtZXJhbCBjb29raWVzPTAgdGlja2V0cz0wIiBcCi0gICAgICAgICAiJEdfTkVYVF9DTElfTk9fQ0VSVCAtLWRlYnVnPTQgLS1zaW5nbGUta2V5LXNoYXJlIC0teDUwOWNhZmlsZSBkYXRhX2ZpbGVzL3Rlc3QtY2EyLmNydCAtLXByaW9yaXR5PU5PTkU6K0FFUy0xMjgtR0NNOitTSEEyNTY6K0FFQUQ6K1NJR04tRUNEU0EtU0VDUDM4NFIxLVNIQTM4NDorR1JPVVAtU0VDUDM4NFIxOitWRVJTLVRMUzEuMzolTk9fVElDS0VUUyIgXAorICAgICAgICAgIiRQX1NSViBjcnRfZmlsZT0kREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3AzODRyMS5jcnQga2V5X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwMzg0cjEua2V5IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0xMjgtR0NNLVNIQTI1NiBzaWdfYWxncz1lY2RzYV9zZWNwMzg0cjFfc2hhMzg0IGdyb3Vwcz1zZWNwMzg0cjEgdGxzMTNfa2V4X21vZGVzPWVwaGVtZXJhbCBjb29raWVzPTAgdGlja2V0cz0wIiBcCisgICAgICAgICAiJEdfTkVYVF9DTElfTk9fQ0VSVCAtLWRlYnVnPTQgLS1zaW5nbGUta2V5LXNoYXJlIC0teDUwOWNhZmlsZSAkREFUQV9GSUxFU19QQVRIL3Rlc3QtY2EyLmNydCAtLXByaW9yaXR5PU5PTkU6K0FFUy0xMjgtR0NNOitTSEEyNTY6K0FFQUQ6K1NJR04tRUNEU0EtU0VDUDM4NFIxLVNIQTM4NDorR1JPVVAtU0VDUDM4NFIxOitWRVJTLVRMUzEuMzolTk9fVElDS0VUUyIgXAogICAgICAgICAgMCBcCiAgICAgICAgICAtcyAiUHJvdG9jb2wgaXMgVExTdjEuMyIgXAogICAgICAgICAgLXMgInNlcnZlciBoZWxsbywgY2hvc2VuIGNpcGhlcnN1aXRlOiBUTFMxLTMtQUVTLTEyOC1HQ00tU0hBMjU2ICggaWQ9NDg2NSApIiBcCkBAIC0yMjI3LDggKzIyMjksOCBAQAogcmVxdWlyZXNfZ251dGxzX25leHRfbm9fdGlja2V0CiByZXF1aXJlc19nbnV0bHNfbmV4dF9kaXNhYmxlX3RsczEzX2NvbXBhdAogcnVuX3Rlc3QgIlRMUyAxLjMgRy0+bTogQUVTXzEyOF9HQ01fU0hBMjU2LHNlY3AzODRyMSxlY2RzYV9zZWNwNTIxcjFfc2hhNTEyIiBcCi0gICAgICAgICAiJFBfU1JWIGNydF9maWxlPWRhdGFfZmlsZXMvZWNkc2Ffc2VjcDUyMXIxLmNydCBrZXlfZmlsZT1kYXRhX2ZpbGVzL2VjZHNhX3NlY3A1MjFyMS5rZXkgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTEyOC1HQ00tU0hBMjU2IHNpZ19hbGdzPWVjZHNhX3NlY3A1MjFyMV9zaGE1MTIgZ3JvdXBzPXNlY3AzODRyMSB0bHMxM19rZXhfbW9kZXM9ZXBoZW1lcmFsIGNvb2tpZXM9MCB0aWNrZXRzPTAiIFwKLSAgICAgICAgICIkR19ORVhUX0NMSV9OT19DRVJUIC0tZGVidWc9NCAtLXNpbmdsZS1rZXktc2hhcmUgLS14NTA5Y2FmaWxlIGRhdGFfZmlsZXMvdGVzdC1jYTIuY3J0IC0tcHJpb3JpdHk9Tk9ORTorQUVTLTEyOC1HQ006K1NIQTI1NjorQUVBRDorU0lHTi1FQ0RTQS1TRUNQNTIxUjEtU0hBNTEyOitHUk9VUC1TRUNQMzg0UjE6K1ZFUlMtVExTMS4zOiVOT19USUNLRVRTIiBcCisgICAgICAgICAiJFBfU1JWIGNydF9maWxlPSREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDUyMXIxLmNydCBrZXlfZmlsZT0kREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3A1MjFyMS5rZXkgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTEyOC1HQ00tU0hBMjU2IHNpZ19hbGdzPWVjZHNhX3NlY3A1MjFyMV9zaGE1MTIgZ3JvdXBzPXNlY3AzODRyMSB0bHMxM19rZXhfbW9kZXM9ZXBoZW1lcmFsIGNvb2tpZXM9MCB0aWNrZXRzPTAiIFwKKyAgICAgICAgICIkR19ORVhUX0NMSV9OT19DRVJUIC0tZGVidWc9NCAtLXNpbmdsZS1rZXktc2hhcmUgLS14NTA5Y2FmaWxlICREQVRBX0ZJTEVTX1BBVEgvdGVzdC1jYTIuY3J0IC0tcHJpb3JpdHk9Tk9ORTorQUVTLTEyOC1HQ006K1NIQTI1NjorQUVBRDorU0lHTi1FQ0RTQS1TRUNQNTIxUjEtU0hBNTEyOitHUk9VUC1TRUNQMzg0UjE6K1ZFUlMtVExTMS4zOiVOT19USUNLRVRTIiBcCiAgICAgICAgICAwIFwKICAgICAgICAgIC1zICJQcm90b2NvbCBpcyBUTFN2MS4zIiBcCiAgICAgICAgICAtcyAic2VydmVyIGhlbGxvLCBjaG9zZW4gY2lwaGVyc3VpdGU6IFRMUzEtMy1BRVMtMTI4LUdDTS1TSEEyNTYgKCBpZD00ODY1ICkiIFwKQEAgLTIyNDcsOCArMjI0OSw4IEBACiByZXF1aXJlc19nbnV0bHNfbmV4dF9ub190aWNrZXQKIHJlcXVpcmVzX2dudXRsc19uZXh0X2Rpc2FibGVfdGxzMTNfY29tcGF0CiBydW5fdGVzdCAiVExTIDEuMyBHLT5tOiBBRVNfMTI4X0dDTV9TSEEyNTYsc2VjcDM4NHIxLHJzYV9wc3NfcnNhZV9zaGEyNTYiIFwKLSAgICAgICAgICIkUF9TUlYgY3J0X2ZpbGU9ZGF0YV9maWxlcy9zZXJ2ZXIyLXNoYTI1Ni5jcnQga2V5X2ZpbGU9ZGF0YV9maWxlcy9zZXJ2ZXIyLmtleSBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMTI4LUdDTS1TSEEyNTYgc2lnX2FsZ3M9cnNhX3Bzc19yc2FlX3NoYTI1NiBncm91cHM9c2VjcDM4NHIxIHRsczEzX2tleF9tb2Rlcz1lcGhlbWVyYWwgY29va2llcz0wIHRpY2tldHM9MCIgXAotICAgICAgICAgIiRHX05FWFRfQ0xJX05PX0NFUlQgLS1kZWJ1Zz00IC0tc2luZ2xlLWtleS1zaGFyZSAtLXg1MDljYWZpbGUgZGF0YV9maWxlcy90ZXN0LWNhX2NhdDEyLmNydCAtLXByaW9yaXR5PU5PTkU6K0FFUy0xMjgtR0NNOitTSEEyNTY6K0FFQUQ6K1NJR04tUlNBLVBTUy1SU0FFLVNIQTI1NjorR1JPVVAtU0VDUDM4NFIxOitWRVJTLVRMUzEuMzolTk9fVElDS0VUUyIgXAorICAgICAgICAgIiRQX1NSViBjcnRfZmlsZT0kREFUQV9GSUxFU19QQVRIL3NlcnZlcjItc2hhMjU2LmNydCBrZXlfZmlsZT0kREFUQV9GSUxFU19QQVRIL3NlcnZlcjIua2V5IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0xMjgtR0NNLVNIQTI1NiBzaWdfYWxncz1yc2FfcHNzX3JzYWVfc2hhMjU2IGdyb3Vwcz1zZWNwMzg0cjEgdGxzMTNfa2V4X21vZGVzPWVwaGVtZXJhbCBjb29raWVzPTAgdGlja2V0cz0wIiBcCisgICAgICAgICAiJEdfTkVYVF9DTElfTk9fQ0VSVCAtLWRlYnVnPTQgLS1zaW5nbGUta2V5LXNoYXJlIC0teDUwOWNhZmlsZSAkREFUQV9GSUxFU19QQVRIL3Rlc3QtY2FfY2F0MTIuY3J0IC0tcHJpb3JpdHk9Tk9ORTorQUVTLTEyOC1HQ006K1NIQTI1NjorQUVBRDorU0lHTi1SU0EtUFNTLVJTQUUtU0hBMjU2OitHUk9VUC1TRUNQMzg0UjE6K1ZFUlMtVExTMS4zOiVOT19USUNLRVRTIiBcCiAgICAgICAgICAwIFwKICAgICAgICAgIC1zICJQcm90b2NvbCBpcyBUTFN2MS4zIiBcCiAgICAgICAgICAtcyAic2VydmVyIGhlbGxvLCBjaG9zZW4gY2lwaGVyc3VpdGU6IFRMUzEtMy1BRVMtMTI4LUdDTS1TSEEyNTYgKCBpZD00ODY1ICkiIFwKQEAgLTIyNjYsOCArMjI2OCw4IEBACiByZXF1aXJlc19nbnV0bHNfbmV4dF9ub190aWNrZXQKIHJlcXVpcmVzX2dudXRsc19uZXh0X2Rpc2FibGVfdGxzMTNfY29tcGF0CiBydW5fdGVzdCAiVExTIDEuMyBHLT5tOiBBRVNfMTI4X0dDTV9TSEEyNTYsc2VjcDUyMXIxLGVjZHNhX3NlY3AyNTZyMV9zaGEyNTYiIFwKLSAgICAgICAgICIkUF9TUlYgY3J0X2ZpbGU9ZGF0YV9maWxlcy9lY2RzYV9zZWNwMjU2cjEuY3J0IGtleV9maWxlPWRhdGFfZmlsZXMvZWNkc2Ffc2VjcDI1NnIxLmtleSBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMTI4LUdDTS1TSEEyNTYgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDI1NnIxX3NoYTI1NiBncm91cHM9c2VjcDUyMXIxIHRsczEzX2tleF9tb2Rlcz1lcGhlbWVyYWwgY29va2llcz0wIHRpY2tldHM9MCIgXAotICAgICAgICAgIiRHX05FWFRfQ0xJX05PX0NFUlQgLS1kZWJ1Zz00IC0tc2luZ2xlLWtleS1zaGFyZSAtLXg1MDljYWZpbGUgZGF0YV9maWxlcy90ZXN0LWNhMi5jcnQgLS1wcmlvcml0eT1OT05FOitBRVMtMTI4LUdDTTorU0hBMjU2OitBRUFEOitTSUdOLUVDRFNBLVNFQ1AyNTZSMS1TSEEyNTY6K0dST1VQLVNFQ1A1MjFSMTorVkVSUy1UTFMxLjM6JU5PX1RJQ0tFVFMiIFwKKyAgICAgICAgICIkUF9TUlYgY3J0X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwMjU2cjEuY3J0IGtleV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDI1NnIxLmtleSBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMTI4LUdDTS1TSEEyNTYgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDI1NnIxX3NoYTI1NiBncm91cHM9c2VjcDUyMXIxIHRsczEzX2tleF9tb2Rlcz1lcGhlbWVyYWwgY29va2llcz0wIHRpY2tldHM9MCIgXAorICAgICAgICAgIiRHX05FWFRfQ0xJX05PX0NFUlQgLS1kZWJ1Zz00IC0tc2luZ2xlLWtleS1zaGFyZSAtLXg1MDljYWZpbGUgJERBVEFfRklMRVNfUEFUSC90ZXN0LWNhMi5jcnQgLS1wcmlvcml0eT1OT05FOitBRVMtMTI4LUdDTTorU0hBMjU2OitBRUFEOitTSUdOLUVDRFNBLVNFQ1AyNTZSMS1TSEEyNTY6K0dST1VQLVNFQ1A1MjFSMTorVkVSUy1UTFMxLjM6JU5PX1RJQ0tFVFMiIFwKICAgICAgICAgIDAgXAogICAgICAgICAgLXMgIlByb3RvY29sIGlzIFRMU3YxLjMiIFwKICAgICAgICAgIC1zICJzZXJ2ZXIgaGVsbG8sIGNob3NlbiBjaXBoZXJzdWl0ZTogVExTMS0zLUFFUy0xMjgtR0NNLVNIQTI1NiAoIGlkPTQ4NjUgKSIgXApAQCAtMjI4NSw4ICsyMjg3LDggQEAKIHJlcXVpcmVzX2dudXRsc19uZXh0X25vX3RpY2tldAogcmVxdWlyZXNfZ251dGxzX25leHRfZGlzYWJsZV90bHMxM19jb21wYXQKIHJ1bl90ZXN0ICJUTFMgMS4zIEctPm06IEFFU18xMjhfR0NNX1NIQTI1NixzZWNwNTIxcjEsZWNkc2Ffc2VjcDM4NHIxX3NoYTM4NCIgXAotICAgICAgICAgIiRQX1NSViBjcnRfZmlsZT1kYXRhX2ZpbGVzL2VjZHNhX3NlY3AzODRyMS5jcnQga2V5X2ZpbGU9ZGF0YV9maWxlcy9lY2RzYV9zZWNwMzg0cjEua2V5IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0xMjgtR0NNLVNIQTI1NiBzaWdfYWxncz1lY2RzYV9zZWNwMzg0cjFfc2hhMzg0IGdyb3Vwcz1zZWNwNTIxcjEgdGxzMTNfa2V4X21vZGVzPWVwaGVtZXJhbCBjb29raWVzPTAgdGlja2V0cz0wIiBcCi0gICAgICAgICAiJEdfTkVYVF9DTElfTk9fQ0VSVCAtLWRlYnVnPTQgLS1zaW5nbGUta2V5LXNoYXJlIC0teDUwOWNhZmlsZSBkYXRhX2ZpbGVzL3Rlc3QtY2EyLmNydCAtLXByaW9yaXR5PU5PTkU6K0FFUy0xMjgtR0NNOitTSEEyNTY6K0FFQUQ6K1NJR04tRUNEU0EtU0VDUDM4NFIxLVNIQTM4NDorR1JPVVAtU0VDUDUyMVIxOitWRVJTLVRMUzEuMzolTk9fVElDS0VUUyIgXAorICAgICAgICAgIiRQX1NSViBjcnRfZmlsZT0kREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3AzODRyMS5jcnQga2V5X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwMzg0cjEua2V5IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0xMjgtR0NNLVNIQTI1NiBzaWdfYWxncz1lY2RzYV9zZWNwMzg0cjFfc2hhMzg0IGdyb3Vwcz1zZWNwNTIxcjEgdGxzMTNfa2V4X21vZGVzPWVwaGVtZXJhbCBjb29raWVzPTAgdGlja2V0cz0wIiBcCisgICAgICAgICAiJEdfTkVYVF9DTElfTk9fQ0VSVCAtLWRlYnVnPTQgLS1zaW5nbGUta2V5LXNoYXJlIC0teDUwOWNhZmlsZSAkREFUQV9GSUxFU19QQVRIL3Rlc3QtY2EyLmNydCAtLXByaW9yaXR5PU5PTkU6K0FFUy0xMjgtR0NNOitTSEEyNTY6K0FFQUQ6K1NJR04tRUNEU0EtU0VDUDM4NFIxLVNIQTM4NDorR1JPVVAtU0VDUDUyMVIxOitWRVJTLVRMUzEuMzolTk9fVElDS0VUUyIgXAogICAgICAgICAgMCBcCiAgICAgICAgICAtcyAiUHJvdG9jb2wgaXMgVExTdjEuMyIgXAogICAgICAgICAgLXMgInNlcnZlciBoZWxsbywgY2hvc2VuIGNpcGhlcnN1aXRlOiBUTFMxLTMtQUVTLTEyOC1HQ00tU0hBMjU2ICggaWQ9NDg2NSApIiBcCkBAIC0yMzA0LDggKzIzMDYsOCBAQAogcmVxdWlyZXNfZ251dGxzX25leHRfbm9fdGlja2V0CiByZXF1aXJlc19nbnV0bHNfbmV4dF9kaXNhYmxlX3RsczEzX2NvbXBhdAogcnVuX3Rlc3QgIlRMUyAxLjMgRy0+bTogQUVTXzEyOF9HQ01fU0hBMjU2LHNlY3A1MjFyMSxlY2RzYV9zZWNwNTIxcjFfc2hhNTEyIiBcCi0gICAgICAgICAiJFBfU1JWIGNydF9maWxlPWRhdGFfZmlsZXMvZWNkc2Ffc2VjcDUyMXIxLmNydCBrZXlfZmlsZT1kYXRhX2ZpbGVzL2VjZHNhX3NlY3A1MjFyMS5rZXkgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTEyOC1HQ00tU0hBMjU2IHNpZ19hbGdzPWVjZHNhX3NlY3A1MjFyMV9zaGE1MTIgZ3JvdXBzPXNlY3A1MjFyMSB0bHMxM19rZXhfbW9kZXM9ZXBoZW1lcmFsIGNvb2tpZXM9MCB0aWNrZXRzPTAiIFwKLSAgICAgICAgICIkR19ORVhUX0NMSV9OT19DRVJUIC0tZGVidWc9NCAtLXNpbmdsZS1rZXktc2hhcmUgLS14NTA5Y2FmaWxlIGRhdGFfZmlsZXMvdGVzdC1jYTIuY3J0IC0tcHJpb3JpdHk9Tk9ORTorQUVTLTEyOC1HQ006K1NIQTI1NjorQUVBRDorU0lHTi1FQ0RTQS1TRUNQNTIxUjEtU0hBNTEyOitHUk9VUC1TRUNQNTIxUjE6K1ZFUlMtVExTMS4zOiVOT19USUNLRVRTIiBcCisgICAgICAgICAiJFBfU1JWIGNydF9maWxlPSREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDUyMXIxLmNydCBrZXlfZmlsZT0kREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3A1MjFyMS5rZXkgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTEyOC1HQ00tU0hBMjU2IHNpZ19hbGdzPWVjZHNhX3NlY3A1MjFyMV9zaGE1MTIgZ3JvdXBzPXNlY3A1MjFyMSB0bHMxM19rZXhfbW9kZXM9ZXBoZW1lcmFsIGNvb2tpZXM9MCB0aWNrZXRzPTAiIFwKKyAgICAgICAgICIkR19ORVhUX0NMSV9OT19DRVJUIC0tZGVidWc9NCAtLXNpbmdsZS1rZXktc2hhcmUgLS14NTA5Y2FmaWxlICREQVRBX0ZJTEVTX1BBVEgvdGVzdC1jYTIuY3J0IC0tcHJpb3JpdHk9Tk9ORTorQUVTLTEyOC1HQ006K1NIQTI1NjorQUVBRDorU0lHTi1FQ0RTQS1TRUNQNTIxUjEtU0hBNTEyOitHUk9VUC1TRUNQNTIxUjE6K1ZFUlMtVExTMS4zOiVOT19USUNLRVRTIiBcCiAgICAgICAgICAwIFwKICAgICAgICAgIC1zICJQcm90b2NvbCBpcyBUTFN2MS4zIiBcCiAgICAgICAgICAtcyAic2VydmVyIGhlbGxvLCBjaG9zZW4gY2lwaGVyc3VpdGU6IFRMUzEtMy1BRVMtMTI4LUdDTS1TSEEyNTYgKCBpZD00ODY1ICkiIFwKQEAgLTIzMjQsOCArMjMyNiw4IEBACiByZXF1aXJlc19nbnV0bHNfbmV4dF9ub190aWNrZXQKIHJlcXVpcmVzX2dudXRsc19uZXh0X2Rpc2FibGVfdGxzMTNfY29tcGF0CiBydW5fdGVzdCAiVExTIDEuMyBHLT5tOiBBRVNfMTI4X0dDTV9TSEEyNTYsc2VjcDUyMXIxLHJzYV9wc3NfcnNhZV9zaGEyNTYiIFwKLSAgICAgICAgICIkUF9TUlYgY3J0X2ZpbGU9ZGF0YV9maWxlcy9zZXJ2ZXIyLXNoYTI1Ni5jcnQga2V5X2ZpbGU9ZGF0YV9maWxlcy9zZXJ2ZXIyLmtleSBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMTI4LUdDTS1TSEEyNTYgc2lnX2FsZ3M9cnNhX3Bzc19yc2FlX3NoYTI1NiBncm91cHM9c2VjcDUyMXIxIHRsczEzX2tleF9tb2Rlcz1lcGhlbWVyYWwgY29va2llcz0wIHRpY2tldHM9MCIgXAotICAgICAgICAgIiRHX05FWFRfQ0xJX05PX0NFUlQgLS1kZWJ1Zz00IC0tc2luZ2xlLWtleS1zaGFyZSAtLXg1MDljYWZpbGUgZGF0YV9maWxlcy90ZXN0LWNhX2NhdDEyLmNydCAtLXByaW9yaXR5PU5PTkU6K0FFUy0xMjgtR0NNOitTSEEyNTY6K0FFQUQ6K1NJR04tUlNBLVBTUy1SU0FFLVNIQTI1NjorR1JPVVAtU0VDUDUyMVIxOitWRVJTLVRMUzEuMzolTk9fVElDS0VUUyIgXAorICAgICAgICAgIiRQX1NSViBjcnRfZmlsZT0kREFUQV9GSUxFU19QQVRIL3NlcnZlcjItc2hhMjU2LmNydCBrZXlfZmlsZT0kREFUQV9GSUxFU19QQVRIL3NlcnZlcjIua2V5IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0xMjgtR0NNLVNIQTI1NiBzaWdfYWxncz1yc2FfcHNzX3JzYWVfc2hhMjU2IGdyb3Vwcz1zZWNwNTIxcjEgdGxzMTNfa2V4X21vZGVzPWVwaGVtZXJhbCBjb29raWVzPTAgdGlja2V0cz0wIiBcCisgICAgICAgICAiJEdfTkVYVF9DTElfTk9fQ0VSVCAtLWRlYnVnPTQgLS1zaW5nbGUta2V5LXNoYXJlIC0teDUwOWNhZmlsZSAkREFUQV9GSUxFU19QQVRIL3Rlc3QtY2FfY2F0MTIuY3J0IC0tcHJpb3JpdHk9Tk9ORTorQUVTLTEyOC1HQ006K1NIQTI1NjorQUVBRDorU0lHTi1SU0EtUFNTLVJTQUUtU0hBMjU2OitHUk9VUC1TRUNQNTIxUjE6K1ZFUlMtVExTMS4zOiVOT19USUNLRVRTIiBcCiAgICAgICAgICAwIFwKICAgICAgICAgIC1zICJQcm90b2NvbCBpcyBUTFN2MS4zIiBcCiAgICAgICAgICAtcyAic2VydmVyIGhlbGxvLCBjaG9zZW4gY2lwaGVyc3VpdGU6IFRMUzEtMy1BRVMtMTI4LUdDTS1TSEEyNTYgKCBpZD00ODY1ICkiIFwKQEAgLTIzNDMsOCArMjM0NSw4IEBACiByZXF1aXJlc19nbnV0bHNfbmV4dF9ub190aWNrZXQKIHJlcXVpcmVzX2dudXRsc19uZXh0X2Rpc2FibGVfdGxzMTNfY29tcGF0CiBydW5fdGVzdCAiVExTIDEuMyBHLT5tOiBBRVNfMTI4X0dDTV9TSEEyNTYseDI1NTE5LGVjZHNhX3NlY3AyNTZyMV9zaGEyNTYiIFwKLSAgICAgICAgICIkUF9TUlYgY3J0X2ZpbGU9ZGF0YV9maWxlcy9lY2RzYV9zZWNwMjU2cjEuY3J0IGtleV9maWxlPWRhdGFfZmlsZXMvZWNkc2Ffc2VjcDI1NnIxLmtleSBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMTI4LUdDTS1TSEEyNTYgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDI1NnIxX3NoYTI1NiBncm91cHM9eDI1NTE5IHRsczEzX2tleF9tb2Rlcz1lcGhlbWVyYWwgY29va2llcz0wIHRpY2tldHM9MCIgXAotICAgICAgICAgIiRHX05FWFRfQ0xJX05PX0NFUlQgLS1kZWJ1Zz00IC0tc2luZ2xlLWtleS1zaGFyZSAtLXg1MDljYWZpbGUgZGF0YV9maWxlcy90ZXN0LWNhMi5jcnQgLS1wcmlvcml0eT1OT05FOitBRVMtMTI4LUdDTTorU0hBMjU2OitBRUFEOitTSUdOLUVDRFNBLVNFQ1AyNTZSMS1TSEEyNTY6K0dST1VQLVgyNTUxOTorVkVSUy1UTFMxLjM6JU5PX1RJQ0tFVFMiIFwKKyAgICAgICAgICIkUF9TUlYgY3J0X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwMjU2cjEuY3J0IGtleV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDI1NnIxLmtleSBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMTI4LUdDTS1TSEEyNTYgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDI1NnIxX3NoYTI1NiBncm91cHM9eDI1NTE5IHRsczEzX2tleF9tb2Rlcz1lcGhlbWVyYWwgY29va2llcz0wIHRpY2tldHM9MCIgXAorICAgICAgICAgIiRHX05FWFRfQ0xJX05PX0NFUlQgLS1kZWJ1Zz00IC0tc2luZ2xlLWtleS1zaGFyZSAtLXg1MDljYWZpbGUgJERBVEFfRklMRVNfUEFUSC90ZXN0LWNhMi5jcnQgLS1wcmlvcml0eT1OT05FOitBRVMtMTI4LUdDTTorU0hBMjU2OitBRUFEOitTSUdOLUVDRFNBLVNFQ1AyNTZSMS1TSEEyNTY6K0dST1VQLVgyNTUxOTorVkVSUy1UTFMxLjM6JU5PX1RJQ0tFVFMiIFwKICAgICAgICAgIDAgXAogICAgICAgICAgLXMgIlByb3RvY29sIGlzIFRMU3YxLjMiIFwKICAgICAgICAgIC1zICJzZXJ2ZXIgaGVsbG8sIGNob3NlbiBjaXBoZXJzdWl0ZTogVExTMS0zLUFFUy0xMjgtR0NNLVNIQTI1NiAoIGlkPTQ4NjUgKSIgXApAQCAtMjM2Miw4ICsyMzY0LDggQEAKIHJlcXVpcmVzX2dudXRsc19uZXh0X25vX3RpY2tldAogcmVxdWlyZXNfZ251dGxzX25leHRfZGlzYWJsZV90bHMxM19jb21wYXQKIHJ1bl90ZXN0ICJUTFMgMS4zIEctPm06IEFFU18xMjhfR0NNX1NIQTI1Nix4MjU1MTksZWNkc2Ffc2VjcDM4NHIxX3NoYTM4NCIgXAotICAgICAgICAgIiRQX1NSViBjcnRfZmlsZT1kYXRhX2ZpbGVzL2VjZHNhX3NlY3AzODRyMS5jcnQga2V5X2ZpbGU9ZGF0YV9maWxlcy9lY2RzYV9zZWNwMzg0cjEua2V5IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0xMjgtR0NNLVNIQTI1NiBzaWdfYWxncz1lY2RzYV9zZWNwMzg0cjFfc2hhMzg0IGdyb3Vwcz14MjU1MTkgdGxzMTNfa2V4X21vZGVzPWVwaGVtZXJhbCBjb29raWVzPTAgdGlja2V0cz0wIiBcCi0gICAgICAgICAiJEdfTkVYVF9DTElfTk9fQ0VSVCAtLWRlYnVnPTQgLS1zaW5nbGUta2V5LXNoYXJlIC0teDUwOWNhZmlsZSBkYXRhX2ZpbGVzL3Rlc3QtY2EyLmNydCAtLXByaW9yaXR5PU5PTkU6K0FFUy0xMjgtR0NNOitTSEEyNTY6K0FFQUQ6K1NJR04tRUNEU0EtU0VDUDM4NFIxLVNIQTM4NDorR1JPVVAtWDI1NTE5OitWRVJTLVRMUzEuMzolTk9fVElDS0VUUyIgXAorICAgICAgICAgIiRQX1NSViBjcnRfZmlsZT0kREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3AzODRyMS5jcnQga2V5X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwMzg0cjEua2V5IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0xMjgtR0NNLVNIQTI1NiBzaWdfYWxncz1lY2RzYV9zZWNwMzg0cjFfc2hhMzg0IGdyb3Vwcz14MjU1MTkgdGxzMTNfa2V4X21vZGVzPWVwaGVtZXJhbCBjb29raWVzPTAgdGlja2V0cz0wIiBcCisgICAgICAgICAiJEdfTkVYVF9DTElfTk9fQ0VSVCAtLWRlYnVnPTQgLS1zaW5nbGUta2V5LXNoYXJlIC0teDUwOWNhZmlsZSAkREFUQV9GSUxFU19QQVRIL3Rlc3QtY2EyLmNydCAtLXByaW9yaXR5PU5PTkU6K0FFUy0xMjgtR0NNOitTSEEyNTY6K0FFQUQ6K1NJR04tRUNEU0EtU0VDUDM4NFIxLVNIQTM4NDorR1JPVVAtWDI1NTE5OitWRVJTLVRMUzEuMzolTk9fVElDS0VUUyIgXAogICAgICAgICAgMCBcCiAgICAgICAgICAtcyAiUHJvdG9jb2wgaXMgVExTdjEuMyIgXAogICAgICAgICAgLXMgInNlcnZlciBoZWxsbywgY2hvc2VuIGNpcGhlcnN1aXRlOiBUTFMxLTMtQUVTLTEyOC1HQ00tU0hBMjU2ICggaWQ9NDg2NSApIiBcCkBAIC0yMzgxLDggKzIzODMsOCBAQAogcmVxdWlyZXNfZ251dGxzX25leHRfbm9fdGlja2V0CiByZXF1aXJlc19nbnV0bHNfbmV4dF9kaXNhYmxlX3RsczEzX2NvbXBhdAogcnVuX3Rlc3QgIlRMUyAxLjMgRy0+bTogQUVTXzEyOF9HQ01fU0hBMjU2LHgyNTUxOSxlY2RzYV9zZWNwNTIxcjFfc2hhNTEyIiBcCi0gICAgICAgICAiJFBfU1JWIGNydF9maWxlPWRhdGFfZmlsZXMvZWNkc2Ffc2VjcDUyMXIxLmNydCBrZXlfZmlsZT1kYXRhX2ZpbGVzL2VjZHNhX3NlY3A1MjFyMS5rZXkgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTEyOC1HQ00tU0hBMjU2IHNpZ19hbGdzPWVjZHNhX3NlY3A1MjFyMV9zaGE1MTIgZ3JvdXBzPXgyNTUxOSB0bHMxM19rZXhfbW9kZXM9ZXBoZW1lcmFsIGNvb2tpZXM9MCB0aWNrZXRzPTAiIFwKLSAgICAgICAgICIkR19ORVhUX0NMSV9OT19DRVJUIC0tZGVidWc9NCAtLXNpbmdsZS1rZXktc2hhcmUgLS14NTA5Y2FmaWxlIGRhdGFfZmlsZXMvdGVzdC1jYTIuY3J0IC0tcHJpb3JpdHk9Tk9ORTorQUVTLTEyOC1HQ006K1NIQTI1NjorQUVBRDorU0lHTi1FQ0RTQS1TRUNQNTIxUjEtU0hBNTEyOitHUk9VUC1YMjU1MTk6K1ZFUlMtVExTMS4zOiVOT19USUNLRVRTIiBcCisgICAgICAgICAiJFBfU1JWIGNydF9maWxlPSREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDUyMXIxLmNydCBrZXlfZmlsZT0kREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3A1MjFyMS5rZXkgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTEyOC1HQ00tU0hBMjU2IHNpZ19hbGdzPWVjZHNhX3NlY3A1MjFyMV9zaGE1MTIgZ3JvdXBzPXgyNTUxOSB0bHMxM19rZXhfbW9kZXM9ZXBoZW1lcmFsIGNvb2tpZXM9MCB0aWNrZXRzPTAiIFwKKyAgICAgICAgICIkR19ORVhUX0NMSV9OT19DRVJUIC0tZGVidWc9NCAtLXNpbmdsZS1rZXktc2hhcmUgLS14NTA5Y2FmaWxlICREQVRBX0ZJTEVTX1BBVEgvdGVzdC1jYTIuY3J0IC0tcHJpb3JpdHk9Tk9ORTorQUVTLTEyOC1HQ006K1NIQTI1NjorQUVBRDorU0lHTi1FQ0RTQS1TRUNQNTIxUjEtU0hBNTEyOitHUk9VUC1YMjU1MTk6K1ZFUlMtVExTMS4zOiVOT19USUNLRVRTIiBcCiAgICAgICAgICAwIFwKICAgICAgICAgIC1zICJQcm90b2NvbCBpcyBUTFN2MS4zIiBcCiAgICAgICAgICAtcyAic2VydmVyIGhlbGxvLCBjaG9zZW4gY2lwaGVyc3VpdGU6IFRMUzEtMy1BRVMtMTI4LUdDTS1TSEEyNTYgKCBpZD00ODY1ICkiIFwKQEAgLTI0MDEsOCArMjQwMyw4IEBACiByZXF1aXJlc19nbnV0bHNfbmV4dF9ub190aWNrZXQKIHJlcXVpcmVzX2dudXRsc19uZXh0X2Rpc2FibGVfdGxzMTNfY29tcGF0CiBydW5fdGVzdCAiVExTIDEuMyBHLT5tOiBBRVNfMTI4X0dDTV9TSEEyNTYseDI1NTE5LHJzYV9wc3NfcnNhZV9zaGEyNTYiIFwKLSAgICAgICAgICIkUF9TUlYgY3J0X2ZpbGU9ZGF0YV9maWxlcy9zZXJ2ZXIyLXNoYTI1Ni5jcnQga2V5X2ZpbGU9ZGF0YV9maWxlcy9zZXJ2ZXIyLmtleSBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMTI4LUdDTS1TSEEyNTYgc2lnX2FsZ3M9cnNhX3Bzc19yc2FlX3NoYTI1NiBncm91cHM9eDI1NTE5IHRsczEzX2tleF9tb2Rlcz1lcGhlbWVyYWwgY29va2llcz0wIHRpY2tldHM9MCIgXAotICAgICAgICAgIiRHX05FWFRfQ0xJX05PX0NFUlQgLS1kZWJ1Zz00IC0tc2luZ2xlLWtleS1zaGFyZSAtLXg1MDljYWZpbGUgZGF0YV9maWxlcy90ZXN0LWNhX2NhdDEyLmNydCAtLXByaW9yaXR5PU5PTkU6K0FFUy0xMjgtR0NNOitTSEEyNTY6K0FFQUQ6K1NJR04tUlNBLVBTUy1SU0FFLVNIQTI1NjorR1JPVVAtWDI1NTE5OitWRVJTLVRMUzEuMzolTk9fVElDS0VUUyIgXAorICAgICAgICAgIiRQX1NSViBjcnRfZmlsZT0kREFUQV9GSUxFU19QQVRIL3NlcnZlcjItc2hhMjU2LmNydCBrZXlfZmlsZT0kREFUQV9GSUxFU19QQVRIL3NlcnZlcjIua2V5IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0xMjgtR0NNLVNIQTI1NiBzaWdfYWxncz1yc2FfcHNzX3JzYWVfc2hhMjU2IGdyb3Vwcz14MjU1MTkgdGxzMTNfa2V4X21vZGVzPWVwaGVtZXJhbCBjb29raWVzPTAgdGlja2V0cz0wIiBcCisgICAgICAgICAiJEdfTkVYVF9DTElfTk9fQ0VSVCAtLWRlYnVnPTQgLS1zaW5nbGUta2V5LXNoYXJlIC0teDUwOWNhZmlsZSAkREFUQV9GSUxFU19QQVRIL3Rlc3QtY2FfY2F0MTIuY3J0IC0tcHJpb3JpdHk9Tk9ORTorQUVTLTEyOC1HQ006K1NIQTI1NjorQUVBRDorU0lHTi1SU0EtUFNTLVJTQUUtU0hBMjU2OitHUk9VUC1YMjU1MTk6K1ZFUlMtVExTMS4zOiVOT19USUNLRVRTIiBcCiAgICAgICAgICAwIFwKICAgICAgICAgIC1zICJQcm90b2NvbCBpcyBUTFN2MS4zIiBcCiAgICAgICAgICAtcyAic2VydmVyIGhlbGxvLCBjaG9zZW4gY2lwaGVyc3VpdGU6IFRMUzEtMy1BRVMtMTI4LUdDTS1TSEEyNTYgKCBpZD00ODY1ICkiIFwKQEAgLTI0MjAsOCArMjQyMiw4IEBACiByZXF1aXJlc19nbnV0bHNfbmV4dF9ub190aWNrZXQKIHJlcXVpcmVzX2dudXRsc19uZXh0X2Rpc2FibGVfdGxzMTNfY29tcGF0CiBydW5fdGVzdCAiVExTIDEuMyBHLT5tOiBBRVNfMTI4X0dDTV9TSEEyNTYseDQ0OCxlY2RzYV9zZWNwMjU2cjFfc2hhMjU2IiBcCi0gICAgICAgICAiJFBfU1JWIGNydF9maWxlPWRhdGFfZmlsZXMvZWNkc2Ffc2VjcDI1NnIxLmNydCBrZXlfZmlsZT1kYXRhX2ZpbGVzL2VjZHNhX3NlY3AyNTZyMS5rZXkgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTEyOC1HQ00tU0hBMjU2IHNpZ19hbGdzPWVjZHNhX3NlY3AyNTZyMV9zaGEyNTYgZ3JvdXBzPXg0NDggdGxzMTNfa2V4X21vZGVzPWVwaGVtZXJhbCBjb29raWVzPTAgdGlja2V0cz0wIiBcCi0gICAgICAgICAiJEdfTkVYVF9DTElfTk9fQ0VSVCAtLWRlYnVnPTQgLS1zaW5nbGUta2V5LXNoYXJlIC0teDUwOWNhZmlsZSBkYXRhX2ZpbGVzL3Rlc3QtY2EyLmNydCAtLXByaW9yaXR5PU5PTkU6K0FFUy0xMjgtR0NNOitTSEEyNTY6K0FFQUQ6K1NJR04tRUNEU0EtU0VDUDI1NlIxLVNIQTI1NjorR1JPVVAtWDQ0ODorVkVSUy1UTFMxLjM6JU5PX1RJQ0tFVFMiIFwKKyAgICAgICAgICIkUF9TUlYgY3J0X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwMjU2cjEuY3J0IGtleV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDI1NnIxLmtleSBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMTI4LUdDTS1TSEEyNTYgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDI1NnIxX3NoYTI1NiBncm91cHM9eDQ0OCB0bHMxM19rZXhfbW9kZXM9ZXBoZW1lcmFsIGNvb2tpZXM9MCB0aWNrZXRzPTAiIFwKKyAgICAgICAgICIkR19ORVhUX0NMSV9OT19DRVJUIC0tZGVidWc9NCAtLXNpbmdsZS1rZXktc2hhcmUgLS14NTA5Y2FmaWxlICREQVRBX0ZJTEVTX1BBVEgvdGVzdC1jYTIuY3J0IC0tcHJpb3JpdHk9Tk9ORTorQUVTLTEyOC1HQ006K1NIQTI1NjorQUVBRDorU0lHTi1FQ0RTQS1TRUNQMjU2UjEtU0hBMjU2OitHUk9VUC1YNDQ4OitWRVJTLVRMUzEuMzolTk9fVElDS0VUUyIgXAogICAgICAgICAgMCBcCiAgICAgICAgICAtcyAiUHJvdG9jb2wgaXMgVExTdjEuMyIgXAogICAgICAgICAgLXMgInNlcnZlciBoZWxsbywgY2hvc2VuIGNpcGhlcnN1aXRlOiBUTFMxLTMtQUVTLTEyOC1HQ00tU0hBMjU2ICggaWQ9NDg2NSApIiBcCkBAIC0yNDM5LDggKzI0NDEsOCBAQAogcmVxdWlyZXNfZ251dGxzX25leHRfbm9fdGlja2V0CiByZXF1aXJlc19nbnV0bHNfbmV4dF9kaXNhYmxlX3RsczEzX2NvbXBhdAogcnVuX3Rlc3QgIlRMUyAxLjMgRy0+bTogQUVTXzEyOF9HQ01fU0hBMjU2LHg0NDgsZWNkc2Ffc2VjcDM4NHIxX3NoYTM4NCIgXAotICAgICAgICAgIiRQX1NSViBjcnRfZmlsZT1kYXRhX2ZpbGVzL2VjZHNhX3NlY3AzODRyMS5jcnQga2V5X2ZpbGU9ZGF0YV9maWxlcy9lY2RzYV9zZWNwMzg0cjEua2V5IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0xMjgtR0NNLVNIQTI1NiBzaWdfYWxncz1lY2RzYV9zZWNwMzg0cjFfc2hhMzg0IGdyb3Vwcz14NDQ4IHRsczEzX2tleF9tb2Rlcz1lcGhlbWVyYWwgY29va2llcz0wIHRpY2tldHM9MCIgXAotICAgICAgICAgIiRHX05FWFRfQ0xJX05PX0NFUlQgLS1kZWJ1Zz00IC0tc2luZ2xlLWtleS1zaGFyZSAtLXg1MDljYWZpbGUgZGF0YV9maWxlcy90ZXN0LWNhMi5jcnQgLS1wcmlvcml0eT1OT05FOitBRVMtMTI4LUdDTTorU0hBMjU2OitBRUFEOitTSUdOLUVDRFNBLVNFQ1AzODRSMS1TSEEzODQ6K0dST1VQLVg0NDg6K1ZFUlMtVExTMS4zOiVOT19USUNLRVRTIiBcCisgICAgICAgICAiJFBfU1JWIGNydF9maWxlPSREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDM4NHIxLmNydCBrZXlfZmlsZT0kREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3AzODRyMS5rZXkgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTEyOC1HQ00tU0hBMjU2IHNpZ19hbGdzPWVjZHNhX3NlY3AzODRyMV9zaGEzODQgZ3JvdXBzPXg0NDggdGxzMTNfa2V4X21vZGVzPWVwaGVtZXJhbCBjb29raWVzPTAgdGlja2V0cz0wIiBcCisgICAgICAgICAiJEdfTkVYVF9DTElfTk9fQ0VSVCAtLWRlYnVnPTQgLS1zaW5nbGUta2V5LXNoYXJlIC0teDUwOWNhZmlsZSAkREFUQV9GSUxFU19QQVRIL3Rlc3QtY2EyLmNydCAtLXByaW9yaXR5PU5PTkU6K0FFUy0xMjgtR0NNOitTSEEyNTY6K0FFQUQ6K1NJR04tRUNEU0EtU0VDUDM4NFIxLVNIQTM4NDorR1JPVVAtWDQ0ODorVkVSUy1UTFMxLjM6JU5PX1RJQ0tFVFMiIFwKICAgICAgICAgIDAgXAogICAgICAgICAgLXMgIlByb3RvY29sIGlzIFRMU3YxLjMiIFwKICAgICAgICAgIC1zICJzZXJ2ZXIgaGVsbG8sIGNob3NlbiBjaXBoZXJzdWl0ZTogVExTMS0zLUFFUy0xMjgtR0NNLVNIQTI1NiAoIGlkPTQ4NjUgKSIgXApAQCAtMjQ1OCw4ICsyNDYwLDggQEAKIHJlcXVpcmVzX2dudXRsc19uZXh0X25vX3RpY2tldAogcmVxdWlyZXNfZ251dGxzX25leHRfZGlzYWJsZV90bHMxM19jb21wYXQKIHJ1bl90ZXN0ICJUTFMgMS4zIEctPm06IEFFU18xMjhfR0NNX1NIQTI1Nix4NDQ4LGVjZHNhX3NlY3A1MjFyMV9zaGE1MTIiIFwKLSAgICAgICAgICIkUF9TUlYgY3J0X2ZpbGU9ZGF0YV9maWxlcy9lY2RzYV9zZWNwNTIxcjEuY3J0IGtleV9maWxlPWRhdGFfZmlsZXMvZWNkc2Ffc2VjcDUyMXIxLmtleSBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMTI4LUdDTS1TSEEyNTYgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDUyMXIxX3NoYTUxMiBncm91cHM9eDQ0OCB0bHMxM19rZXhfbW9kZXM9ZXBoZW1lcmFsIGNvb2tpZXM9MCB0aWNrZXRzPTAiIFwKLSAgICAgICAgICIkR19ORVhUX0NMSV9OT19DRVJUIC0tZGVidWc9NCAtLXNpbmdsZS1rZXktc2hhcmUgLS14NTA5Y2FmaWxlIGRhdGFfZmlsZXMvdGVzdC1jYTIuY3J0IC0tcHJpb3JpdHk9Tk9ORTorQUVTLTEyOC1HQ006K1NIQTI1NjorQUVBRDorU0lHTi1FQ0RTQS1TRUNQNTIxUjEtU0hBNTEyOitHUk9VUC1YNDQ4OitWRVJTLVRMUzEuMzolTk9fVElDS0VUUyIgXAorICAgICAgICAgIiRQX1NSViBjcnRfZmlsZT0kREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3A1MjFyMS5jcnQga2V5X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwNTIxcjEua2V5IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0xMjgtR0NNLVNIQTI1NiBzaWdfYWxncz1lY2RzYV9zZWNwNTIxcjFfc2hhNTEyIGdyb3Vwcz14NDQ4IHRsczEzX2tleF9tb2Rlcz1lcGhlbWVyYWwgY29va2llcz0wIHRpY2tldHM9MCIgXAorICAgICAgICAgIiRHX05FWFRfQ0xJX05PX0NFUlQgLS1kZWJ1Zz00IC0tc2luZ2xlLWtleS1zaGFyZSAtLXg1MDljYWZpbGUgJERBVEFfRklMRVNfUEFUSC90ZXN0LWNhMi5jcnQgLS1wcmlvcml0eT1OT05FOitBRVMtMTI4LUdDTTorU0hBMjU2OitBRUFEOitTSUdOLUVDRFNBLVNFQ1A1MjFSMS1TSEE1MTI6K0dST1VQLVg0NDg6K1ZFUlMtVExTMS4zOiVOT19USUNLRVRTIiBcCiAgICAgICAgICAwIFwKICAgICAgICAgIC1zICJQcm90b2NvbCBpcyBUTFN2MS4zIiBcCiAgICAgICAgICAtcyAic2VydmVyIGhlbGxvLCBjaG9zZW4gY2lwaGVyc3VpdGU6IFRMUzEtMy1BRVMtMTI4LUdDTS1TSEEyNTYgKCBpZD00ODY1ICkiIFwKQEAgLTI0NzgsOCArMjQ4MCw4IEBACiByZXF1aXJlc19nbnV0bHNfbmV4dF9ub190aWNrZXQKIHJlcXVpcmVzX2dudXRsc19uZXh0X2Rpc2FibGVfdGxzMTNfY29tcGF0CiBydW5fdGVzdCAiVExTIDEuMyBHLT5tOiBBRVNfMTI4X0dDTV9TSEEyNTYseDQ0OCxyc2FfcHNzX3JzYWVfc2hhMjU2IiBcCi0gICAgICAgICAiJFBfU1JWIGNydF9maWxlPWRhdGFfZmlsZXMvc2VydmVyMi1zaGEyNTYuY3J0IGtleV9maWxlPWRhdGFfZmlsZXMvc2VydmVyMi5rZXkgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTEyOC1HQ00tU0hBMjU2IHNpZ19hbGdzPXJzYV9wc3NfcnNhZV9zaGEyNTYgZ3JvdXBzPXg0NDggdGxzMTNfa2V4X21vZGVzPWVwaGVtZXJhbCBjb29raWVzPTAgdGlja2V0cz0wIiBcCi0gICAgICAgICAiJEdfTkVYVF9DTElfTk9fQ0VSVCAtLWRlYnVnPTQgLS1zaW5nbGUta2V5LXNoYXJlIC0teDUwOWNhZmlsZSBkYXRhX2ZpbGVzL3Rlc3QtY2FfY2F0MTIuY3J0IC0tcHJpb3JpdHk9Tk9ORTorQUVTLTEyOC1HQ006K1NIQTI1NjorQUVBRDorU0lHTi1SU0EtUFNTLVJTQUUtU0hBMjU2OitHUk9VUC1YNDQ4OitWRVJTLVRMUzEuMzolTk9fVElDS0VUUyIgXAorICAgICAgICAgIiRQX1NSViBjcnRfZmlsZT0kREFUQV9GSUxFU19QQVRIL3NlcnZlcjItc2hhMjU2LmNydCBrZXlfZmlsZT0kREFUQV9GSUxFU19QQVRIL3NlcnZlcjIua2V5IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0xMjgtR0NNLVNIQTI1NiBzaWdfYWxncz1yc2FfcHNzX3JzYWVfc2hhMjU2IGdyb3Vwcz14NDQ4IHRsczEzX2tleF9tb2Rlcz1lcGhlbWVyYWwgY29va2llcz0wIHRpY2tldHM9MCIgXAorICAgICAgICAgIiRHX05FWFRfQ0xJX05PX0NFUlQgLS1kZWJ1Zz00IC0tc2luZ2xlLWtleS1zaGFyZSAtLXg1MDljYWZpbGUgJERBVEFfRklMRVNfUEFUSC90ZXN0LWNhX2NhdDEyLmNydCAtLXByaW9yaXR5PU5PTkU6K0FFUy0xMjgtR0NNOitTSEEyNTY6K0FFQUQ6K1NJR04tUlNBLVBTUy1SU0FFLVNIQTI1NjorR1JPVVAtWDQ0ODorVkVSUy1UTFMxLjM6JU5PX1RJQ0tFVFMiIFwKICAgICAgICAgIDAgXAogICAgICAgICAgLXMgIlByb3RvY29sIGlzIFRMU3YxLjMiIFwKICAgICAgICAgIC1zICJzZXJ2ZXIgaGVsbG8sIGNob3NlbiBjaXBoZXJzdWl0ZTogVExTMS0zLUFFUy0xMjgtR0NNLVNIQTI1NiAoIGlkPTQ4NjUgKSIgXApAQCAtMjQ5OCw4ICsyNTAwLDggQEAKIHJlcXVpcmVzX2dudXRsc19uZXh0X25vX3RpY2tldAogcmVxdWlyZXNfZ251dGxzX25leHRfZGlzYWJsZV90bHMxM19jb21wYXQKIHJ1bl90ZXN0ICJUTFMgMS4zIEctPm06IEFFU18xMjhfR0NNX1NIQTI1NixmZmRoZTIwNDgsZWNkc2Ffc2VjcDI1NnIxX3NoYTI1NiIgXAotICAgICAgICAgIiRQX1NSViBjcnRfZmlsZT1kYXRhX2ZpbGVzL2VjZHNhX3NlY3AyNTZyMS5jcnQga2V5X2ZpbGU9ZGF0YV9maWxlcy9lY2RzYV9zZWNwMjU2cjEua2V5IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0xMjgtR0NNLVNIQTI1NiBzaWdfYWxncz1lY2RzYV9zZWNwMjU2cjFfc2hhMjU2IGdyb3Vwcz1mZmRoZTIwNDggdGxzMTNfa2V4X21vZGVzPWVwaGVtZXJhbCBjb29raWVzPTAgdGlja2V0cz0wIiBcCi0gICAgICAgICAiJEdfTkVYVF9DTElfTk9fQ0VSVCAtLWRlYnVnPTQgLS1zaW5nbGUta2V5LXNoYXJlIC0teDUwOWNhZmlsZSBkYXRhX2ZpbGVzL3Rlc3QtY2EyLmNydCAtLXByaW9yaXR5PU5PTkU6K0FFUy0xMjgtR0NNOitTSEEyNTY6K0FFQUQ6K1NJR04tRUNEU0EtU0VDUDI1NlIxLVNIQTI1NjorR1JPVVAtRkZESEUyMDQ4OitWRVJTLVRMUzEuMzolTk9fVElDS0VUUyIgXAorICAgICAgICAgIiRQX1NSViBjcnRfZmlsZT0kREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3AyNTZyMS5jcnQga2V5X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwMjU2cjEua2V5IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0xMjgtR0NNLVNIQTI1NiBzaWdfYWxncz1lY2RzYV9zZWNwMjU2cjFfc2hhMjU2IGdyb3Vwcz1mZmRoZTIwNDggdGxzMTNfa2V4X21vZGVzPWVwaGVtZXJhbCBjb29raWVzPTAgdGlja2V0cz0wIiBcCisgICAgICAgICAiJEdfTkVYVF9DTElfTk9fQ0VSVCAtLWRlYnVnPTQgLS1zaW5nbGUta2V5LXNoYXJlIC0teDUwOWNhZmlsZSAkREFUQV9GSUxFU19QQVRIL3Rlc3QtY2EyLmNydCAtLXByaW9yaXR5PU5PTkU6K0FFUy0xMjgtR0NNOitTSEEyNTY6K0FFQUQ6K1NJR04tRUNEU0EtU0VDUDI1NlIxLVNIQTI1NjorR1JPVVAtRkZESEUyMDQ4OitWRVJTLVRMUzEuMzolTk9fVElDS0VUUyIgXAogICAgICAgICAgMCBcCiAgICAgICAgICAtcyAiUHJvdG9jb2wgaXMgVExTdjEuMyIgXAogICAgICAgICAgLXMgInNlcnZlciBoZWxsbywgY2hvc2VuIGNpcGhlcnN1aXRlOiBUTFMxLTMtQUVTLTEyOC1HQ00tU0hBMjU2ICggaWQ9NDg2NSApIiBcCkBAIC0yNTE4LDggKzI1MjAsOCBAQAogcmVxdWlyZXNfZ251dGxzX25leHRfbm9fdGlja2V0CiByZXF1aXJlc19nbnV0bHNfbmV4dF9kaXNhYmxlX3RsczEzX2NvbXBhdAogcnVuX3Rlc3QgIlRMUyAxLjMgRy0+bTogQUVTXzEyOF9HQ01fU0hBMjU2LGZmZGhlMjA0OCxlY2RzYV9zZWNwMzg0cjFfc2hhMzg0IiBcCi0gICAgICAgICAiJFBfU1JWIGNydF9maWxlPWRhdGFfZmlsZXMvZWNkc2Ffc2VjcDM4NHIxLmNydCBrZXlfZmlsZT1kYXRhX2ZpbGVzL2VjZHNhX3NlY3AzODRyMS5rZXkgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTEyOC1HQ00tU0hBMjU2IHNpZ19hbGdzPWVjZHNhX3NlY3AzODRyMV9zaGEzODQgZ3JvdXBzPWZmZGhlMjA0OCB0bHMxM19rZXhfbW9kZXM9ZXBoZW1lcmFsIGNvb2tpZXM9MCB0aWNrZXRzPTAiIFwKLSAgICAgICAgICIkR19ORVhUX0NMSV9OT19DRVJUIC0tZGVidWc9NCAtLXNpbmdsZS1rZXktc2hhcmUgLS14NTA5Y2FmaWxlIGRhdGFfZmlsZXMvdGVzdC1jYTIuY3J0IC0tcHJpb3JpdHk9Tk9ORTorQUVTLTEyOC1HQ006K1NIQTI1NjorQUVBRDorU0lHTi1FQ0RTQS1TRUNQMzg0UjEtU0hBMzg0OitHUk9VUC1GRkRIRTIwNDg6K1ZFUlMtVExTMS4zOiVOT19USUNLRVRTIiBcCisgICAgICAgICAiJFBfU1JWIGNydF9maWxlPSREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDM4NHIxLmNydCBrZXlfZmlsZT0kREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3AzODRyMS5rZXkgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTEyOC1HQ00tU0hBMjU2IHNpZ19hbGdzPWVjZHNhX3NlY3AzODRyMV9zaGEzODQgZ3JvdXBzPWZmZGhlMjA0OCB0bHMxM19rZXhfbW9kZXM9ZXBoZW1lcmFsIGNvb2tpZXM9MCB0aWNrZXRzPTAiIFwKKyAgICAgICAgICIkR19ORVhUX0NMSV9OT19DRVJUIC0tZGVidWc9NCAtLXNpbmdsZS1rZXktc2hhcmUgLS14NTA5Y2FmaWxlICREQVRBX0ZJTEVTX1BBVEgvdGVzdC1jYTIuY3J0IC0tcHJpb3JpdHk9Tk9ORTorQUVTLTEyOC1HQ006K1NIQTI1NjorQUVBRDorU0lHTi1FQ0RTQS1TRUNQMzg0UjEtU0hBMzg0OitHUk9VUC1GRkRIRTIwNDg6K1ZFUlMtVExTMS4zOiVOT19USUNLRVRTIiBcCiAgICAgICAgICAwIFwKICAgICAgICAgIC1zICJQcm90b2NvbCBpcyBUTFN2MS4zIiBcCiAgICAgICAgICAtcyAic2VydmVyIGhlbGxvLCBjaG9zZW4gY2lwaGVyc3VpdGU6IFRMUzEtMy1BRVMtMTI4LUdDTS1TSEEyNTYgKCBpZD00ODY1ICkiIFwKQEAgLTI1MzgsOCArMjU0MCw4IEBACiByZXF1aXJlc19nbnV0bHNfbmV4dF9ub190aWNrZXQKIHJlcXVpcmVzX2dudXRsc19uZXh0X2Rpc2FibGVfdGxzMTNfY29tcGF0CiBydW5fdGVzdCAiVExTIDEuMyBHLT5tOiBBRVNfMTI4X0dDTV9TSEEyNTYsZmZkaGUyMDQ4LGVjZHNhX3NlY3A1MjFyMV9zaGE1MTIiIFwKLSAgICAgICAgICIkUF9TUlYgY3J0X2ZpbGU9ZGF0YV9maWxlcy9lY2RzYV9zZWNwNTIxcjEuY3J0IGtleV9maWxlPWRhdGFfZmlsZXMvZWNkc2Ffc2VjcDUyMXIxLmtleSBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMTI4LUdDTS1TSEEyNTYgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDUyMXIxX3NoYTUxMiBncm91cHM9ZmZkaGUyMDQ4IHRsczEzX2tleF9tb2Rlcz1lcGhlbWVyYWwgY29va2llcz0wIHRpY2tldHM9MCIgXAotICAgICAgICAgIiRHX05FWFRfQ0xJX05PX0NFUlQgLS1kZWJ1Zz00IC0tc2luZ2xlLWtleS1zaGFyZSAtLXg1MDljYWZpbGUgZGF0YV9maWxlcy90ZXN0LWNhMi5jcnQgLS1wcmlvcml0eT1OT05FOitBRVMtMTI4LUdDTTorU0hBMjU2OitBRUFEOitTSUdOLUVDRFNBLVNFQ1A1MjFSMS1TSEE1MTI6K0dST1VQLUZGREhFMjA0ODorVkVSUy1UTFMxLjM6JU5PX1RJQ0tFVFMiIFwKKyAgICAgICAgICIkUF9TUlYgY3J0X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwNTIxcjEuY3J0IGtleV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDUyMXIxLmtleSBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMTI4LUdDTS1TSEEyNTYgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDUyMXIxX3NoYTUxMiBncm91cHM9ZmZkaGUyMDQ4IHRsczEzX2tleF9tb2Rlcz1lcGhlbWVyYWwgY29va2llcz0wIHRpY2tldHM9MCIgXAorICAgICAgICAgIiRHX05FWFRfQ0xJX05PX0NFUlQgLS1kZWJ1Zz00IC0tc2luZ2xlLWtleS1zaGFyZSAtLXg1MDljYWZpbGUgJERBVEFfRklMRVNfUEFUSC90ZXN0LWNhMi5jcnQgLS1wcmlvcml0eT1OT05FOitBRVMtMTI4LUdDTTorU0hBMjU2OitBRUFEOitTSUdOLUVDRFNBLVNFQ1A1MjFSMS1TSEE1MTI6K0dST1VQLUZGREhFMjA0ODorVkVSUy1UTFMxLjM6JU5PX1RJQ0tFVFMiIFwKICAgICAgICAgIDAgXAogICAgICAgICAgLXMgIlByb3RvY29sIGlzIFRMU3YxLjMiIFwKICAgICAgICAgIC1zICJzZXJ2ZXIgaGVsbG8sIGNob3NlbiBjaXBoZXJzdWl0ZTogVExTMS0zLUFFUy0xMjgtR0NNLVNIQTI1NiAoIGlkPTQ4NjUgKSIgXApAQCAtMjU1OSw4ICsyNTYxLDggQEAKIHJlcXVpcmVzX2dudXRsc19uZXh0X25vX3RpY2tldAogcmVxdWlyZXNfZ251dGxzX25leHRfZGlzYWJsZV90bHMxM19jb21wYXQKIHJ1bl90ZXN0ICJUTFMgMS4zIEctPm06IEFFU18xMjhfR0NNX1NIQTI1NixmZmRoZTIwNDgscnNhX3Bzc19yc2FlX3NoYTI1NiIgXAotICAgICAgICAgIiRQX1NSViBjcnRfZmlsZT1kYXRhX2ZpbGVzL3NlcnZlcjItc2hhMjU2LmNydCBrZXlfZmlsZT1kYXRhX2ZpbGVzL3NlcnZlcjIua2V5IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0xMjgtR0NNLVNIQTI1NiBzaWdfYWxncz1yc2FfcHNzX3JzYWVfc2hhMjU2IGdyb3Vwcz1mZmRoZTIwNDggdGxzMTNfa2V4X21vZGVzPWVwaGVtZXJhbCBjb29raWVzPTAgdGlja2V0cz0wIiBcCi0gICAgICAgICAiJEdfTkVYVF9DTElfTk9fQ0VSVCAtLWRlYnVnPTQgLS1zaW5nbGUta2V5LXNoYXJlIC0teDUwOWNhZmlsZSBkYXRhX2ZpbGVzL3Rlc3QtY2FfY2F0MTIuY3J0IC0tcHJpb3JpdHk9Tk9ORTorQUVTLTEyOC1HQ006K1NIQTI1NjorQUVBRDorU0lHTi1SU0EtUFNTLVJTQUUtU0hBMjU2OitHUk9VUC1GRkRIRTIwNDg6K1ZFUlMtVExTMS4zOiVOT19USUNLRVRTIiBcCisgICAgICAgICAiJFBfU1JWIGNydF9maWxlPSREQVRBX0ZJTEVTX1BBVEgvc2VydmVyMi1zaGEyNTYuY3J0IGtleV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvc2VydmVyMi5rZXkgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTEyOC1HQ00tU0hBMjU2IHNpZ19hbGdzPXJzYV9wc3NfcnNhZV9zaGEyNTYgZ3JvdXBzPWZmZGhlMjA0OCB0bHMxM19rZXhfbW9kZXM9ZXBoZW1lcmFsIGNvb2tpZXM9MCB0aWNrZXRzPTAiIFwKKyAgICAgICAgICIkR19ORVhUX0NMSV9OT19DRVJUIC0tZGVidWc9NCAtLXNpbmdsZS1rZXktc2hhcmUgLS14NTA5Y2FmaWxlICREQVRBX0ZJTEVTX1BBVEgvdGVzdC1jYV9jYXQxMi5jcnQgLS1wcmlvcml0eT1OT05FOitBRVMtMTI4LUdDTTorU0hBMjU2OitBRUFEOitTSUdOLVJTQS1QU1MtUlNBRS1TSEEyNTY6K0dST1VQLUZGREhFMjA0ODorVkVSUy1UTFMxLjM6JU5PX1RJQ0tFVFMiIFwKICAgICAgICAgIDAgXAogICAgICAgICAgLXMgIlByb3RvY29sIGlzIFRMU3YxLjMiIFwKICAgICAgICAgIC1zICJzZXJ2ZXIgaGVsbG8sIGNob3NlbiBjaXBoZXJzdWl0ZTogVExTMS0zLUFFUy0xMjgtR0NNLVNIQTI1NiAoIGlkPTQ4NjUgKSIgXApAQCAtMjU3OCw4ICsyNTgwLDggQEAKIHJlcXVpcmVzX2dudXRsc19uZXh0X25vX3RpY2tldAogcmVxdWlyZXNfZ251dGxzX25leHRfZGlzYWJsZV90bHMxM19jb21wYXQKIHJ1bl90ZXN0ICJUTFMgMS4zIEctPm06IEFFU18yNTZfR0NNX1NIQTM4NCxzZWNwMjU2cjEsZWNkc2Ffc2VjcDI1NnIxX3NoYTI1NiIgXAotICAgICAgICAgIiRQX1NSViBjcnRfZmlsZT1kYXRhX2ZpbGVzL2VjZHNhX3NlY3AyNTZyMS5jcnQga2V5X2ZpbGU9ZGF0YV9maWxlcy9lY2RzYV9zZWNwMjU2cjEua2V5IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0yNTYtR0NNLVNIQTM4NCBzaWdfYWxncz1lY2RzYV9zZWNwMjU2cjFfc2hhMjU2IGdyb3Vwcz1zZWNwMjU2cjEgdGxzMTNfa2V4X21vZGVzPWVwaGVtZXJhbCBjb29raWVzPTAgdGlja2V0cz0wIiBcCi0gICAgICAgICAiJEdfTkVYVF9DTElfTk9fQ0VSVCAtLWRlYnVnPTQgLS1zaW5nbGUta2V5LXNoYXJlIC0teDUwOWNhZmlsZSBkYXRhX2ZpbGVzL3Rlc3QtY2EyLmNydCAtLXByaW9yaXR5PU5PTkU6K0FFUy0yNTYtR0NNOitTSEEzODQ6K0FFQUQ6K1NJR04tRUNEU0EtU0VDUDI1NlIxLVNIQTI1NjorR1JPVVAtU0VDUDI1NlIxOitWRVJTLVRMUzEuMzolTk9fVElDS0VUUyIgXAorICAgICAgICAgIiRQX1NSViBjcnRfZmlsZT0kREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3AyNTZyMS5jcnQga2V5X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwMjU2cjEua2V5IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0yNTYtR0NNLVNIQTM4NCBzaWdfYWxncz1lY2RzYV9zZWNwMjU2cjFfc2hhMjU2IGdyb3Vwcz1zZWNwMjU2cjEgdGxzMTNfa2V4X21vZGVzPWVwaGVtZXJhbCBjb29raWVzPTAgdGlja2V0cz0wIiBcCisgICAgICAgICAiJEdfTkVYVF9DTElfTk9fQ0VSVCAtLWRlYnVnPTQgLS1zaW5nbGUta2V5LXNoYXJlIC0teDUwOWNhZmlsZSAkREFUQV9GSUxFU19QQVRIL3Rlc3QtY2EyLmNydCAtLXByaW9yaXR5PU5PTkU6K0FFUy0yNTYtR0NNOitTSEEzODQ6K0FFQUQ6K1NJR04tRUNEU0EtU0VDUDI1NlIxLVNIQTI1NjorR1JPVVAtU0VDUDI1NlIxOitWRVJTLVRMUzEuMzolTk9fVElDS0VUUyIgXAogICAgICAgICAgMCBcCiAgICAgICAgICAtcyAiUHJvdG9jb2wgaXMgVExTdjEuMyIgXAogICAgICAgICAgLXMgInNlcnZlciBoZWxsbywgY2hvc2VuIGNpcGhlcnN1aXRlOiBUTFMxLTMtQUVTLTI1Ni1HQ00tU0hBMzg0ICggaWQ9NDg2NiApIiBcCkBAIC0yNTk3LDggKzI1OTksOCBAQAogcmVxdWlyZXNfZ251dGxzX25leHRfbm9fdGlja2V0CiByZXF1aXJlc19nbnV0bHNfbmV4dF9kaXNhYmxlX3RsczEzX2NvbXBhdAogcnVuX3Rlc3QgIlRMUyAxLjMgRy0+bTogQUVTXzI1Nl9HQ01fU0hBMzg0LHNlY3AyNTZyMSxlY2RzYV9zZWNwMzg0cjFfc2hhMzg0IiBcCi0gICAgICAgICAiJFBfU1JWIGNydF9maWxlPWRhdGFfZmlsZXMvZWNkc2Ffc2VjcDM4NHIxLmNydCBrZXlfZmlsZT1kYXRhX2ZpbGVzL2VjZHNhX3NlY3AzODRyMS5rZXkgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTI1Ni1HQ00tU0hBMzg0IHNpZ19hbGdzPWVjZHNhX3NlY3AzODRyMV9zaGEzODQgZ3JvdXBzPXNlY3AyNTZyMSB0bHMxM19rZXhfbW9kZXM9ZXBoZW1lcmFsIGNvb2tpZXM9MCB0aWNrZXRzPTAiIFwKLSAgICAgICAgICIkR19ORVhUX0NMSV9OT19DRVJUIC0tZGVidWc9NCAtLXNpbmdsZS1rZXktc2hhcmUgLS14NTA5Y2FmaWxlIGRhdGFfZmlsZXMvdGVzdC1jYTIuY3J0IC0tcHJpb3JpdHk9Tk9ORTorQUVTLTI1Ni1HQ006K1NIQTM4NDorQUVBRDorU0lHTi1FQ0RTQS1TRUNQMzg0UjEtU0hBMzg0OitHUk9VUC1TRUNQMjU2UjE6K1ZFUlMtVExTMS4zOiVOT19USUNLRVRTIiBcCisgICAgICAgICAiJFBfU1JWIGNydF9maWxlPSREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDM4NHIxLmNydCBrZXlfZmlsZT0kREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3AzODRyMS5rZXkgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTI1Ni1HQ00tU0hBMzg0IHNpZ19hbGdzPWVjZHNhX3NlY3AzODRyMV9zaGEzODQgZ3JvdXBzPXNlY3AyNTZyMSB0bHMxM19rZXhfbW9kZXM9ZXBoZW1lcmFsIGNvb2tpZXM9MCB0aWNrZXRzPTAiIFwKKyAgICAgICAgICIkR19ORVhUX0NMSV9OT19DRVJUIC0tZGVidWc9NCAtLXNpbmdsZS1rZXktc2hhcmUgLS14NTA5Y2FmaWxlICREQVRBX0ZJTEVTX1BBVEgvdGVzdC1jYTIuY3J0IC0tcHJpb3JpdHk9Tk9ORTorQUVTLTI1Ni1HQ006K1NIQTM4NDorQUVBRDorU0lHTi1FQ0RTQS1TRUNQMzg0UjEtU0hBMzg0OitHUk9VUC1TRUNQMjU2UjE6K1ZFUlMtVExTMS4zOiVOT19USUNLRVRTIiBcCiAgICAgICAgICAwIFwKICAgICAgICAgIC1zICJQcm90b2NvbCBpcyBUTFN2MS4zIiBcCiAgICAgICAgICAtcyAic2VydmVyIGhlbGxvLCBjaG9zZW4gY2lwaGVyc3VpdGU6IFRMUzEtMy1BRVMtMjU2LUdDTS1TSEEzODQgKCBpZD00ODY2ICkiIFwKQEAgLTI2MTYsOCArMjYxOCw4IEBACiByZXF1aXJlc19nbnV0bHNfbmV4dF9ub190aWNrZXQKIHJlcXVpcmVzX2dudXRsc19uZXh0X2Rpc2FibGVfdGxzMTNfY29tcGF0CiBydW5fdGVzdCAiVExTIDEuMyBHLT5tOiBBRVNfMjU2X0dDTV9TSEEzODQsc2VjcDI1NnIxLGVjZHNhX3NlY3A1MjFyMV9zaGE1MTIiIFwKLSAgICAgICAgICIkUF9TUlYgY3J0X2ZpbGU9ZGF0YV9maWxlcy9lY2RzYV9zZWNwNTIxcjEuY3J0IGtleV9maWxlPWRhdGFfZmlsZXMvZWNkc2Ffc2VjcDUyMXIxLmtleSBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMjU2LUdDTS1TSEEzODQgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDUyMXIxX3NoYTUxMiBncm91cHM9c2VjcDI1NnIxIHRsczEzX2tleF9tb2Rlcz1lcGhlbWVyYWwgY29va2llcz0wIHRpY2tldHM9MCIgXAotICAgICAgICAgIiRHX05FWFRfQ0xJX05PX0NFUlQgLS1kZWJ1Zz00IC0tc2luZ2xlLWtleS1zaGFyZSAtLXg1MDljYWZpbGUgZGF0YV9maWxlcy90ZXN0LWNhMi5jcnQgLS1wcmlvcml0eT1OT05FOitBRVMtMjU2LUdDTTorU0hBMzg0OitBRUFEOitTSUdOLUVDRFNBLVNFQ1A1MjFSMS1TSEE1MTI6K0dST1VQLVNFQ1AyNTZSMTorVkVSUy1UTFMxLjM6JU5PX1RJQ0tFVFMiIFwKKyAgICAgICAgICIkUF9TUlYgY3J0X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwNTIxcjEuY3J0IGtleV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDUyMXIxLmtleSBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMjU2LUdDTS1TSEEzODQgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDUyMXIxX3NoYTUxMiBncm91cHM9c2VjcDI1NnIxIHRsczEzX2tleF9tb2Rlcz1lcGhlbWVyYWwgY29va2llcz0wIHRpY2tldHM9MCIgXAorICAgICAgICAgIiRHX05FWFRfQ0xJX05PX0NFUlQgLS1kZWJ1Zz00IC0tc2luZ2xlLWtleS1zaGFyZSAtLXg1MDljYWZpbGUgJERBVEFfRklMRVNfUEFUSC90ZXN0LWNhMi5jcnQgLS1wcmlvcml0eT1OT05FOitBRVMtMjU2LUdDTTorU0hBMzg0OitBRUFEOitTSUdOLUVDRFNBLVNFQ1A1MjFSMS1TSEE1MTI6K0dST1VQLVNFQ1AyNTZSMTorVkVSUy1UTFMxLjM6JU5PX1RJQ0tFVFMiIFwKICAgICAgICAgIDAgXAogICAgICAgICAgLXMgIlByb3RvY29sIGlzIFRMU3YxLjMiIFwKICAgICAgICAgIC1zICJzZXJ2ZXIgaGVsbG8sIGNob3NlbiBjaXBoZXJzdWl0ZTogVExTMS0zLUFFUy0yNTYtR0NNLVNIQTM4NCAoIGlkPTQ4NjYgKSIgXApAQCAtMjYzNiw4ICsyNjM4LDggQEAKIHJlcXVpcmVzX2dudXRsc19uZXh0X25vX3RpY2tldAogcmVxdWlyZXNfZ251dGxzX25leHRfZGlzYWJsZV90bHMxM19jb21wYXQKIHJ1bl90ZXN0ICJUTFMgMS4zIEctPm06IEFFU18yNTZfR0NNX1NIQTM4NCxzZWNwMjU2cjEscnNhX3Bzc19yc2FlX3NoYTI1NiIgXAotICAgICAgICAgIiRQX1NSViBjcnRfZmlsZT1kYXRhX2ZpbGVzL3NlcnZlcjItc2hhMjU2LmNydCBrZXlfZmlsZT1kYXRhX2ZpbGVzL3NlcnZlcjIua2V5IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0yNTYtR0NNLVNIQTM4NCBzaWdfYWxncz1yc2FfcHNzX3JzYWVfc2hhMjU2IGdyb3Vwcz1zZWNwMjU2cjEgdGxzMTNfa2V4X21vZGVzPWVwaGVtZXJhbCBjb29raWVzPTAgdGlja2V0cz0wIiBcCi0gICAgICAgICAiJEdfTkVYVF9DTElfTk9fQ0VSVCAtLWRlYnVnPTQgLS1zaW5nbGUta2V5LXNoYXJlIC0teDUwOWNhZmlsZSBkYXRhX2ZpbGVzL3Rlc3QtY2FfY2F0MTIuY3J0IC0tcHJpb3JpdHk9Tk9ORTorQUVTLTI1Ni1HQ006K1NIQTM4NDorQUVBRDorU0lHTi1SU0EtUFNTLVJTQUUtU0hBMjU2OitHUk9VUC1TRUNQMjU2UjE6K1ZFUlMtVExTMS4zOiVOT19USUNLRVRTIiBcCisgICAgICAgICAiJFBfU1JWIGNydF9maWxlPSREQVRBX0ZJTEVTX1BBVEgvc2VydmVyMi1zaGEyNTYuY3J0IGtleV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvc2VydmVyMi5rZXkgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTI1Ni1HQ00tU0hBMzg0IHNpZ19hbGdzPXJzYV9wc3NfcnNhZV9zaGEyNTYgZ3JvdXBzPXNlY3AyNTZyMSB0bHMxM19rZXhfbW9kZXM9ZXBoZW1lcmFsIGNvb2tpZXM9MCB0aWNrZXRzPTAiIFwKKyAgICAgICAgICIkR19ORVhUX0NMSV9OT19DRVJUIC0tZGVidWc9NCAtLXNpbmdsZS1rZXktc2hhcmUgLS14NTA5Y2FmaWxlICREQVRBX0ZJTEVTX1BBVEgvdGVzdC1jYV9jYXQxMi5jcnQgLS1wcmlvcml0eT1OT05FOitBRVMtMjU2LUdDTTorU0hBMzg0OitBRUFEOitTSUdOLVJTQS1QU1MtUlNBRS1TSEEyNTY6K0dST1VQLVNFQ1AyNTZSMTorVkVSUy1UTFMxLjM6JU5PX1RJQ0tFVFMiIFwKICAgICAgICAgIDAgXAogICAgICAgICAgLXMgIlByb3RvY29sIGlzIFRMU3YxLjMiIFwKICAgICAgICAgIC1zICJzZXJ2ZXIgaGVsbG8sIGNob3NlbiBjaXBoZXJzdWl0ZTogVExTMS0zLUFFUy0yNTYtR0NNLVNIQTM4NCAoIGlkPTQ4NjYgKSIgXApAQCAtMjY1NSw4ICsyNjU3LDggQEAKIHJlcXVpcmVzX2dudXRsc19uZXh0X25vX3RpY2tldAogcmVxdWlyZXNfZ251dGxzX25leHRfZGlzYWJsZV90bHMxM19jb21wYXQKIHJ1bl90ZXN0ICJUTFMgMS4zIEctPm06IEFFU18yNTZfR0NNX1NIQTM4NCxzZWNwMzg0cjEsZWNkc2Ffc2VjcDI1NnIxX3NoYTI1NiIgXAotICAgICAgICAgIiRQX1NSViBjcnRfZmlsZT1kYXRhX2ZpbGVzL2VjZHNhX3NlY3AyNTZyMS5jcnQga2V5X2ZpbGU9ZGF0YV9maWxlcy9lY2RzYV9zZWNwMjU2cjEua2V5IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0yNTYtR0NNLVNIQTM4NCBzaWdfYWxncz1lY2RzYV9zZWNwMjU2cjFfc2hhMjU2IGdyb3Vwcz1zZWNwMzg0cjEgdGxzMTNfa2V4X21vZGVzPWVwaGVtZXJhbCBjb29raWVzPTAgdGlja2V0cz0wIiBcCi0gICAgICAgICAiJEdfTkVYVF9DTElfTk9fQ0VSVCAtLWRlYnVnPTQgLS1zaW5nbGUta2V5LXNoYXJlIC0teDUwOWNhZmlsZSBkYXRhX2ZpbGVzL3Rlc3QtY2EyLmNydCAtLXByaW9yaXR5PU5PTkU6K0FFUy0yNTYtR0NNOitTSEEzODQ6K0FFQUQ6K1NJR04tRUNEU0EtU0VDUDI1NlIxLVNIQTI1NjorR1JPVVAtU0VDUDM4NFIxOitWRVJTLVRMUzEuMzolTk9fVElDS0VUUyIgXAorICAgICAgICAgIiRQX1NSViBjcnRfZmlsZT0kREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3AyNTZyMS5jcnQga2V5X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwMjU2cjEua2V5IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0yNTYtR0NNLVNIQTM4NCBzaWdfYWxncz1lY2RzYV9zZWNwMjU2cjFfc2hhMjU2IGdyb3Vwcz1zZWNwMzg0cjEgdGxzMTNfa2V4X21vZGVzPWVwaGVtZXJhbCBjb29raWVzPTAgdGlja2V0cz0wIiBcCisgICAgICAgICAiJEdfTkVYVF9DTElfTk9fQ0VSVCAtLWRlYnVnPTQgLS1zaW5nbGUta2V5LXNoYXJlIC0teDUwOWNhZmlsZSAkREFUQV9GSUxFU19QQVRIL3Rlc3QtY2EyLmNydCAtLXByaW9yaXR5PU5PTkU6K0FFUy0yNTYtR0NNOitTSEEzODQ6K0FFQUQ6K1NJR04tRUNEU0EtU0VDUDI1NlIxLVNIQTI1NjorR1JPVVAtU0VDUDM4NFIxOitWRVJTLVRMUzEuMzolTk9fVElDS0VUUyIgXAogICAgICAgICAgMCBcCiAgICAgICAgICAtcyAiUHJvdG9jb2wgaXMgVExTdjEuMyIgXAogICAgICAgICAgLXMgInNlcnZlciBoZWxsbywgY2hvc2VuIGNpcGhlcnN1aXRlOiBUTFMxLTMtQUVTLTI1Ni1HQ00tU0hBMzg0ICggaWQ9NDg2NiApIiBcCkBAIC0yNjc0LDggKzI2NzYsOCBAQAogcmVxdWlyZXNfZ251dGxzX25leHRfbm9fdGlja2V0CiByZXF1aXJlc19nbnV0bHNfbmV4dF9kaXNhYmxlX3RsczEzX2NvbXBhdAogcnVuX3Rlc3QgIlRMUyAxLjMgRy0+bTogQUVTXzI1Nl9HQ01fU0hBMzg0LHNlY3AzODRyMSxlY2RzYV9zZWNwMzg0cjFfc2hhMzg0IiBcCi0gICAgICAgICAiJFBfU1JWIGNydF9maWxlPWRhdGFfZmlsZXMvZWNkc2Ffc2VjcDM4NHIxLmNydCBrZXlfZmlsZT1kYXRhX2ZpbGVzL2VjZHNhX3NlY3AzODRyMS5rZXkgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTI1Ni1HQ00tU0hBMzg0IHNpZ19hbGdzPWVjZHNhX3NlY3AzODRyMV9zaGEzODQgZ3JvdXBzPXNlY3AzODRyMSB0bHMxM19rZXhfbW9kZXM9ZXBoZW1lcmFsIGNvb2tpZXM9MCB0aWNrZXRzPTAiIFwKLSAgICAgICAgICIkR19ORVhUX0NMSV9OT19DRVJUIC0tZGVidWc9NCAtLXNpbmdsZS1rZXktc2hhcmUgLS14NTA5Y2FmaWxlIGRhdGFfZmlsZXMvdGVzdC1jYTIuY3J0IC0tcHJpb3JpdHk9Tk9ORTorQUVTLTI1Ni1HQ006K1NIQTM4NDorQUVBRDorU0lHTi1FQ0RTQS1TRUNQMzg0UjEtU0hBMzg0OitHUk9VUC1TRUNQMzg0UjE6K1ZFUlMtVExTMS4zOiVOT19USUNLRVRTIiBcCisgICAgICAgICAiJFBfU1JWIGNydF9maWxlPSREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDM4NHIxLmNydCBrZXlfZmlsZT0kREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3AzODRyMS5rZXkgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTI1Ni1HQ00tU0hBMzg0IHNpZ19hbGdzPWVjZHNhX3NlY3AzODRyMV9zaGEzODQgZ3JvdXBzPXNlY3AzODRyMSB0bHMxM19rZXhfbW9kZXM9ZXBoZW1lcmFsIGNvb2tpZXM9MCB0aWNrZXRzPTAiIFwKKyAgICAgICAgICIkR19ORVhUX0NMSV9OT19DRVJUIC0tZGVidWc9NCAtLXNpbmdsZS1rZXktc2hhcmUgLS14NTA5Y2FmaWxlICREQVRBX0ZJTEVTX1BBVEgvdGVzdC1jYTIuY3J0IC0tcHJpb3JpdHk9Tk9ORTorQUVTLTI1Ni1HQ006K1NIQTM4NDorQUVBRDorU0lHTi1FQ0RTQS1TRUNQMzg0UjEtU0hBMzg0OitHUk9VUC1TRUNQMzg0UjE6K1ZFUlMtVExTMS4zOiVOT19USUNLRVRTIiBcCiAgICAgICAgICAwIFwKICAgICAgICAgIC1zICJQcm90b2NvbCBpcyBUTFN2MS4zIiBcCiAgICAgICAgICAtcyAic2VydmVyIGhlbGxvLCBjaG9zZW4gY2lwaGVyc3VpdGU6IFRMUzEtMy1BRVMtMjU2LUdDTS1TSEEzODQgKCBpZD00ODY2ICkiIFwKQEAgLTI2OTMsOCArMjY5NSw4IEBACiByZXF1aXJlc19nbnV0bHNfbmV4dF9ub190aWNrZXQKIHJlcXVpcmVzX2dudXRsc19uZXh0X2Rpc2FibGVfdGxzMTNfY29tcGF0CiBydW5fdGVzdCAiVExTIDEuMyBHLT5tOiBBRVNfMjU2X0dDTV9TSEEzODQsc2VjcDM4NHIxLGVjZHNhX3NlY3A1MjFyMV9zaGE1MTIiIFwKLSAgICAgICAgICIkUF9TUlYgY3J0X2ZpbGU9ZGF0YV9maWxlcy9lY2RzYV9zZWNwNTIxcjEuY3J0IGtleV9maWxlPWRhdGFfZmlsZXMvZWNkc2Ffc2VjcDUyMXIxLmtleSBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMjU2LUdDTS1TSEEzODQgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDUyMXIxX3NoYTUxMiBncm91cHM9c2VjcDM4NHIxIHRsczEzX2tleF9tb2Rlcz1lcGhlbWVyYWwgY29va2llcz0wIHRpY2tldHM9MCIgXAotICAgICAgICAgIiRHX05FWFRfQ0xJX05PX0NFUlQgLS1kZWJ1Zz00IC0tc2luZ2xlLWtleS1zaGFyZSAtLXg1MDljYWZpbGUgZGF0YV9maWxlcy90ZXN0LWNhMi5jcnQgLS1wcmlvcml0eT1OT05FOitBRVMtMjU2LUdDTTorU0hBMzg0OitBRUFEOitTSUdOLUVDRFNBLVNFQ1A1MjFSMS1TSEE1MTI6K0dST1VQLVNFQ1AzODRSMTorVkVSUy1UTFMxLjM6JU5PX1RJQ0tFVFMiIFwKKyAgICAgICAgICIkUF9TUlYgY3J0X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwNTIxcjEuY3J0IGtleV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDUyMXIxLmtleSBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMjU2LUdDTS1TSEEzODQgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDUyMXIxX3NoYTUxMiBncm91cHM9c2VjcDM4NHIxIHRsczEzX2tleF9tb2Rlcz1lcGhlbWVyYWwgY29va2llcz0wIHRpY2tldHM9MCIgXAorICAgICAgICAgIiRHX05FWFRfQ0xJX05PX0NFUlQgLS1kZWJ1Zz00IC0tc2luZ2xlLWtleS1zaGFyZSAtLXg1MDljYWZpbGUgJERBVEFfRklMRVNfUEFUSC90ZXN0LWNhMi5jcnQgLS1wcmlvcml0eT1OT05FOitBRVMtMjU2LUdDTTorU0hBMzg0OitBRUFEOitTSUdOLUVDRFNBLVNFQ1A1MjFSMS1TSEE1MTI6K0dST1VQLVNFQ1AzODRSMTorVkVSUy1UTFMxLjM6JU5PX1RJQ0tFVFMiIFwKICAgICAgICAgIDAgXAogICAgICAgICAgLXMgIlByb3RvY29sIGlzIFRMU3YxLjMiIFwKICAgICAgICAgIC1zICJzZXJ2ZXIgaGVsbG8sIGNob3NlbiBjaXBoZXJzdWl0ZTogVExTMS0zLUFFUy0yNTYtR0NNLVNIQTM4NCAoIGlkPTQ4NjYgKSIgXApAQCAtMjcxMyw4ICsyNzE1LDggQEAKIHJlcXVpcmVzX2dudXRsc19uZXh0X25vX3RpY2tldAogcmVxdWlyZXNfZ251dGxzX25leHRfZGlzYWJsZV90bHMxM19jb21wYXQKIHJ1bl90ZXN0ICJUTFMgMS4zIEctPm06IEFFU18yNTZfR0NNX1NIQTM4NCxzZWNwMzg0cjEscnNhX3Bzc19yc2FlX3NoYTI1NiIgXAotICAgICAgICAgIiRQX1NSViBjcnRfZmlsZT1kYXRhX2ZpbGVzL3NlcnZlcjItc2hhMjU2LmNydCBrZXlfZmlsZT1kYXRhX2ZpbGVzL3NlcnZlcjIua2V5IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0yNTYtR0NNLVNIQTM4NCBzaWdfYWxncz1yc2FfcHNzX3JzYWVfc2hhMjU2IGdyb3Vwcz1zZWNwMzg0cjEgdGxzMTNfa2V4X21vZGVzPWVwaGVtZXJhbCBjb29raWVzPTAgdGlja2V0cz0wIiBcCi0gICAgICAgICAiJEdfTkVYVF9DTElfTk9fQ0VSVCAtLWRlYnVnPTQgLS1zaW5nbGUta2V5LXNoYXJlIC0teDUwOWNhZmlsZSBkYXRhX2ZpbGVzL3Rlc3QtY2FfY2F0MTIuY3J0IC0tcHJpb3JpdHk9Tk9ORTorQUVTLTI1Ni1HQ006K1NIQTM4NDorQUVBRDorU0lHTi1SU0EtUFNTLVJTQUUtU0hBMjU2OitHUk9VUC1TRUNQMzg0UjE6K1ZFUlMtVExTMS4zOiVOT19USUNLRVRTIiBcCisgICAgICAgICAiJFBfU1JWIGNydF9maWxlPSREQVRBX0ZJTEVTX1BBVEgvc2VydmVyMi1zaGEyNTYuY3J0IGtleV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvc2VydmVyMi5rZXkgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTI1Ni1HQ00tU0hBMzg0IHNpZ19hbGdzPXJzYV9wc3NfcnNhZV9zaGEyNTYgZ3JvdXBzPXNlY3AzODRyMSB0bHMxM19rZXhfbW9kZXM9ZXBoZW1lcmFsIGNvb2tpZXM9MCB0aWNrZXRzPTAiIFwKKyAgICAgICAgICIkR19ORVhUX0NMSV9OT19DRVJUIC0tZGVidWc9NCAtLXNpbmdsZS1rZXktc2hhcmUgLS14NTA5Y2FmaWxlICREQVRBX0ZJTEVTX1BBVEgvdGVzdC1jYV9jYXQxMi5jcnQgLS1wcmlvcml0eT1OT05FOitBRVMtMjU2LUdDTTorU0hBMzg0OitBRUFEOitTSUdOLVJTQS1QU1MtUlNBRS1TSEEyNTY6K0dST1VQLVNFQ1AzODRSMTorVkVSUy1UTFMxLjM6JU5PX1RJQ0tFVFMiIFwKICAgICAgICAgIDAgXAogICAgICAgICAgLXMgIlByb3RvY29sIGlzIFRMU3YxLjMiIFwKICAgICAgICAgIC1zICJzZXJ2ZXIgaGVsbG8sIGNob3NlbiBjaXBoZXJzdWl0ZTogVExTMS0zLUFFUy0yNTYtR0NNLVNIQTM4NCAoIGlkPTQ4NjYgKSIgXApAQCAtMjczMiw4ICsyNzM0LDggQEAKIHJlcXVpcmVzX2dudXRsc19uZXh0X25vX3RpY2tldAogcmVxdWlyZXNfZ251dGxzX25leHRfZGlzYWJsZV90bHMxM19jb21wYXQKIHJ1bl90ZXN0ICJUTFMgMS4zIEctPm06IEFFU18yNTZfR0NNX1NIQTM4NCxzZWNwNTIxcjEsZWNkc2Ffc2VjcDI1NnIxX3NoYTI1NiIgXAotICAgICAgICAgIiRQX1NSViBjcnRfZmlsZT1kYXRhX2ZpbGVzL2VjZHNhX3NlY3AyNTZyMS5jcnQga2V5X2ZpbGU9ZGF0YV9maWxlcy9lY2RzYV9zZWNwMjU2cjEua2V5IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0yNTYtR0NNLVNIQTM4NCBzaWdfYWxncz1lY2RzYV9zZWNwMjU2cjFfc2hhMjU2IGdyb3Vwcz1zZWNwNTIxcjEgdGxzMTNfa2V4X21vZGVzPWVwaGVtZXJhbCBjb29raWVzPTAgdGlja2V0cz0wIiBcCi0gICAgICAgICAiJEdfTkVYVF9DTElfTk9fQ0VSVCAtLWRlYnVnPTQgLS1zaW5nbGUta2V5LXNoYXJlIC0teDUwOWNhZmlsZSBkYXRhX2ZpbGVzL3Rlc3QtY2EyLmNydCAtLXByaW9yaXR5PU5PTkU6K0FFUy0yNTYtR0NNOitTSEEzODQ6K0FFQUQ6K1NJR04tRUNEU0EtU0VDUDI1NlIxLVNIQTI1NjorR1JPVVAtU0VDUDUyMVIxOitWRVJTLVRMUzEuMzolTk9fVElDS0VUUyIgXAorICAgICAgICAgIiRQX1NSViBjcnRfZmlsZT0kREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3AyNTZyMS5jcnQga2V5X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwMjU2cjEua2V5IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0yNTYtR0NNLVNIQTM4NCBzaWdfYWxncz1lY2RzYV9zZWNwMjU2cjFfc2hhMjU2IGdyb3Vwcz1zZWNwNTIxcjEgdGxzMTNfa2V4X21vZGVzPWVwaGVtZXJhbCBjb29raWVzPTAgdGlja2V0cz0wIiBcCisgICAgICAgICAiJEdfTkVYVF9DTElfTk9fQ0VSVCAtLWRlYnVnPTQgLS1zaW5nbGUta2V5LXNoYXJlIC0teDUwOWNhZmlsZSAkREFUQV9GSUxFU19QQVRIL3Rlc3QtY2EyLmNydCAtLXByaW9yaXR5PU5PTkU6K0FFUy0yNTYtR0NNOitTSEEzODQ6K0FFQUQ6K1NJR04tRUNEU0EtU0VDUDI1NlIxLVNIQTI1NjorR1JPVVAtU0VDUDUyMVIxOitWRVJTLVRMUzEuMzolTk9fVElDS0VUUyIgXAogICAgICAgICAgMCBcCiAgICAgICAgICAtcyAiUHJvdG9jb2wgaXMgVExTdjEuMyIgXAogICAgICAgICAgLXMgInNlcnZlciBoZWxsbywgY2hvc2VuIGNpcGhlcnN1aXRlOiBUTFMxLTMtQUVTLTI1Ni1HQ00tU0hBMzg0ICggaWQ9NDg2NiApIiBcCkBAIC0yNzUxLDggKzI3NTMsOCBAQAogcmVxdWlyZXNfZ251dGxzX25leHRfbm9fdGlja2V0CiByZXF1aXJlc19nbnV0bHNfbmV4dF9kaXNhYmxlX3RsczEzX2NvbXBhdAogcnVuX3Rlc3QgIlRMUyAxLjMgRy0+bTogQUVTXzI1Nl9HQ01fU0hBMzg0LHNlY3A1MjFyMSxlY2RzYV9zZWNwMzg0cjFfc2hhMzg0IiBcCi0gICAgICAgICAiJFBfU1JWIGNydF9maWxlPWRhdGFfZmlsZXMvZWNkc2Ffc2VjcDM4NHIxLmNydCBrZXlfZmlsZT1kYXRhX2ZpbGVzL2VjZHNhX3NlY3AzODRyMS5rZXkgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTI1Ni1HQ00tU0hBMzg0IHNpZ19hbGdzPWVjZHNhX3NlY3AzODRyMV9zaGEzODQgZ3JvdXBzPXNlY3A1MjFyMSB0bHMxM19rZXhfbW9kZXM9ZXBoZW1lcmFsIGNvb2tpZXM9MCB0aWNrZXRzPTAiIFwKLSAgICAgICAgICIkR19ORVhUX0NMSV9OT19DRVJUIC0tZGVidWc9NCAtLXNpbmdsZS1rZXktc2hhcmUgLS14NTA5Y2FmaWxlIGRhdGFfZmlsZXMvdGVzdC1jYTIuY3J0IC0tcHJpb3JpdHk9Tk9ORTorQUVTLTI1Ni1HQ006K1NIQTM4NDorQUVBRDorU0lHTi1FQ0RTQS1TRUNQMzg0UjEtU0hBMzg0OitHUk9VUC1TRUNQNTIxUjE6K1ZFUlMtVExTMS4zOiVOT19USUNLRVRTIiBcCisgICAgICAgICAiJFBfU1JWIGNydF9maWxlPSREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDM4NHIxLmNydCBrZXlfZmlsZT0kREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3AzODRyMS5rZXkgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTI1Ni1HQ00tU0hBMzg0IHNpZ19hbGdzPWVjZHNhX3NlY3AzODRyMV9zaGEzODQgZ3JvdXBzPXNlY3A1MjFyMSB0bHMxM19rZXhfbW9kZXM9ZXBoZW1lcmFsIGNvb2tpZXM9MCB0aWNrZXRzPTAiIFwKKyAgICAgICAgICIkR19ORVhUX0NMSV9OT19DRVJUIC0tZGVidWc9NCAtLXNpbmdsZS1rZXktc2hhcmUgLS14NTA5Y2FmaWxlICREQVRBX0ZJTEVTX1BBVEgvdGVzdC1jYTIuY3J0IC0tcHJpb3JpdHk9Tk9ORTorQUVTLTI1Ni1HQ006K1NIQTM4NDorQUVBRDorU0lHTi1FQ0RTQS1TRUNQMzg0UjEtU0hBMzg0OitHUk9VUC1TRUNQNTIxUjE6K1ZFUlMtVExTMS4zOiVOT19USUNLRVRTIiBcCiAgICAgICAgICAwIFwKICAgICAgICAgIC1zICJQcm90b2NvbCBpcyBUTFN2MS4zIiBcCiAgICAgICAgICAtcyAic2VydmVyIGhlbGxvLCBjaG9zZW4gY2lwaGVyc3VpdGU6IFRMUzEtMy1BRVMtMjU2LUdDTS1TSEEzODQgKCBpZD00ODY2ICkiIFwKQEAgLTI3NzAsOCArMjc3Miw4IEBACiByZXF1aXJlc19nbnV0bHNfbmV4dF9ub190aWNrZXQKIHJlcXVpcmVzX2dudXRsc19uZXh0X2Rpc2FibGVfdGxzMTNfY29tcGF0CiBydW5fdGVzdCAiVExTIDEuMyBHLT5tOiBBRVNfMjU2X0dDTV9TSEEzODQsc2VjcDUyMXIxLGVjZHNhX3NlY3A1MjFyMV9zaGE1MTIiIFwKLSAgICAgICAgICIkUF9TUlYgY3J0X2ZpbGU9ZGF0YV9maWxlcy9lY2RzYV9zZWNwNTIxcjEuY3J0IGtleV9maWxlPWRhdGFfZmlsZXMvZWNkc2Ffc2VjcDUyMXIxLmtleSBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMjU2LUdDTS1TSEEzODQgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDUyMXIxX3NoYTUxMiBncm91cHM9c2VjcDUyMXIxIHRsczEzX2tleF9tb2Rlcz1lcGhlbWVyYWwgY29va2llcz0wIHRpY2tldHM9MCIgXAotICAgICAgICAgIiRHX05FWFRfQ0xJX05PX0NFUlQgLS1kZWJ1Zz00IC0tc2luZ2xlLWtleS1zaGFyZSAtLXg1MDljYWZpbGUgZGF0YV9maWxlcy90ZXN0LWNhMi5jcnQgLS1wcmlvcml0eT1OT05FOitBRVMtMjU2LUdDTTorU0hBMzg0OitBRUFEOitTSUdOLUVDRFNBLVNFQ1A1MjFSMS1TSEE1MTI6K0dST1VQLVNFQ1A1MjFSMTorVkVSUy1UTFMxLjM6JU5PX1RJQ0tFVFMiIFwKKyAgICAgICAgICIkUF9TUlYgY3J0X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwNTIxcjEuY3J0IGtleV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDUyMXIxLmtleSBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMjU2LUdDTS1TSEEzODQgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDUyMXIxX3NoYTUxMiBncm91cHM9c2VjcDUyMXIxIHRsczEzX2tleF9tb2Rlcz1lcGhlbWVyYWwgY29va2llcz0wIHRpY2tldHM9MCIgXAorICAgICAgICAgIiRHX05FWFRfQ0xJX05PX0NFUlQgLS1kZWJ1Zz00IC0tc2luZ2xlLWtleS1zaGFyZSAtLXg1MDljYWZpbGUgJERBVEFfRklMRVNfUEFUSC90ZXN0LWNhMi5jcnQgLS1wcmlvcml0eT1OT05FOitBRVMtMjU2LUdDTTorU0hBMzg0OitBRUFEOitTSUdOLUVDRFNBLVNFQ1A1MjFSMS1TSEE1MTI6K0dST1VQLVNFQ1A1MjFSMTorVkVSUy1UTFMxLjM6JU5PX1RJQ0tFVFMiIFwKICAgICAgICAgIDAgXAogICAgICAgICAgLXMgIlByb3RvY29sIGlzIFRMU3YxLjMiIFwKICAgICAgICAgIC1zICJzZXJ2ZXIgaGVsbG8sIGNob3NlbiBjaXBoZXJzdWl0ZTogVExTMS0zLUFFUy0yNTYtR0NNLVNIQTM4NCAoIGlkPTQ4NjYgKSIgXApAQCAtMjc5MCw4ICsyNzkyLDggQEAKIHJlcXVpcmVzX2dudXRsc19uZXh0X25vX3RpY2tldAogcmVxdWlyZXNfZ251dGxzX25leHRfZGlzYWJsZV90bHMxM19jb21wYXQKIHJ1bl90ZXN0ICJUTFMgMS4zIEctPm06IEFFU18yNTZfR0NNX1NIQTM4NCxzZWNwNTIxcjEscnNhX3Bzc19yc2FlX3NoYTI1NiIgXAotICAgICAgICAgIiRQX1NSViBjcnRfZmlsZT1kYXRhX2ZpbGVzL3NlcnZlcjItc2hhMjU2LmNydCBrZXlfZmlsZT1kYXRhX2ZpbGVzL3NlcnZlcjIua2V5IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0yNTYtR0NNLVNIQTM4NCBzaWdfYWxncz1yc2FfcHNzX3JzYWVfc2hhMjU2IGdyb3Vwcz1zZWNwNTIxcjEgdGxzMTNfa2V4X21vZGVzPWVwaGVtZXJhbCBjb29raWVzPTAgdGlja2V0cz0wIiBcCi0gICAgICAgICAiJEdfTkVYVF9DTElfTk9fQ0VSVCAtLWRlYnVnPTQgLS1zaW5nbGUta2V5LXNoYXJlIC0teDUwOWNhZmlsZSBkYXRhX2ZpbGVzL3Rlc3QtY2FfY2F0MTIuY3J0IC0tcHJpb3JpdHk9Tk9ORTorQUVTLTI1Ni1HQ006K1NIQTM4NDorQUVBRDorU0lHTi1SU0EtUFNTLVJTQUUtU0hBMjU2OitHUk9VUC1TRUNQNTIxUjE6K1ZFUlMtVExTMS4zOiVOT19USUNLRVRTIiBcCisgICAgICAgICAiJFBfU1JWIGNydF9maWxlPSREQVRBX0ZJTEVTX1BBVEgvc2VydmVyMi1zaGEyNTYuY3J0IGtleV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvc2VydmVyMi5rZXkgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTI1Ni1HQ00tU0hBMzg0IHNpZ19hbGdzPXJzYV9wc3NfcnNhZV9zaGEyNTYgZ3JvdXBzPXNlY3A1MjFyMSB0bHMxM19rZXhfbW9kZXM9ZXBoZW1lcmFsIGNvb2tpZXM9MCB0aWNrZXRzPTAiIFwKKyAgICAgICAgICIkR19ORVhUX0NMSV9OT19DRVJUIC0tZGVidWc9NCAtLXNpbmdsZS1rZXktc2hhcmUgLS14NTA5Y2FmaWxlICREQVRBX0ZJTEVTX1BBVEgvdGVzdC1jYV9jYXQxMi5jcnQgLS1wcmlvcml0eT1OT05FOitBRVMtMjU2LUdDTTorU0hBMzg0OitBRUFEOitTSUdOLVJTQS1QU1MtUlNBRS1TSEEyNTY6K0dST1VQLVNFQ1A1MjFSMTorVkVSUy1UTFMxLjM6JU5PX1RJQ0tFVFMiIFwKICAgICAgICAgIDAgXAogICAgICAgICAgLXMgIlByb3RvY29sIGlzIFRMU3YxLjMiIFwKICAgICAgICAgIC1zICJzZXJ2ZXIgaGVsbG8sIGNob3NlbiBjaXBoZXJzdWl0ZTogVExTMS0zLUFFUy0yNTYtR0NNLVNIQTM4NCAoIGlkPTQ4NjYgKSIgXApAQCAtMjgwOSw4ICsyODExLDggQEAKIHJlcXVpcmVzX2dudXRsc19uZXh0X25vX3RpY2tldAogcmVxdWlyZXNfZ251dGxzX25leHRfZGlzYWJsZV90bHMxM19jb21wYXQKIHJ1bl90ZXN0ICJUTFMgMS4zIEctPm06IEFFU18yNTZfR0NNX1NIQTM4NCx4MjU1MTksZWNkc2Ffc2VjcDI1NnIxX3NoYTI1NiIgXAotICAgICAgICAgIiRQX1NSViBjcnRfZmlsZT1kYXRhX2ZpbGVzL2VjZHNhX3NlY3AyNTZyMS5jcnQga2V5X2ZpbGU9ZGF0YV9maWxlcy9lY2RzYV9zZWNwMjU2cjEua2V5IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0yNTYtR0NNLVNIQTM4NCBzaWdfYWxncz1lY2RzYV9zZWNwMjU2cjFfc2hhMjU2IGdyb3Vwcz14MjU1MTkgdGxzMTNfa2V4X21vZGVzPWVwaGVtZXJhbCBjb29raWVzPTAgdGlja2V0cz0wIiBcCi0gICAgICAgICAiJEdfTkVYVF9DTElfTk9fQ0VSVCAtLWRlYnVnPTQgLS1zaW5nbGUta2V5LXNoYXJlIC0teDUwOWNhZmlsZSBkYXRhX2ZpbGVzL3Rlc3QtY2EyLmNydCAtLXByaW9yaXR5PU5PTkU6K0FFUy0yNTYtR0NNOitTSEEzODQ6K0FFQUQ6K1NJR04tRUNEU0EtU0VDUDI1NlIxLVNIQTI1NjorR1JPVVAtWDI1NTE5OitWRVJTLVRMUzEuMzolTk9fVElDS0VUUyIgXAorICAgICAgICAgIiRQX1NSViBjcnRfZmlsZT0kREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3AyNTZyMS5jcnQga2V5X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwMjU2cjEua2V5IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0yNTYtR0NNLVNIQTM4NCBzaWdfYWxncz1lY2RzYV9zZWNwMjU2cjFfc2hhMjU2IGdyb3Vwcz14MjU1MTkgdGxzMTNfa2V4X21vZGVzPWVwaGVtZXJhbCBjb29raWVzPTAgdGlja2V0cz0wIiBcCisgICAgICAgICAiJEdfTkVYVF9DTElfTk9fQ0VSVCAtLWRlYnVnPTQgLS1zaW5nbGUta2V5LXNoYXJlIC0teDUwOWNhZmlsZSAkREFUQV9GSUxFU19QQVRIL3Rlc3QtY2EyLmNydCAtLXByaW9yaXR5PU5PTkU6K0FFUy0yNTYtR0NNOitTSEEzODQ6K0FFQUQ6K1NJR04tRUNEU0EtU0VDUDI1NlIxLVNIQTI1NjorR1JPVVAtWDI1NTE5OitWRVJTLVRMUzEuMzolTk9fVElDS0VUUyIgXAogICAgICAgICAgMCBcCiAgICAgICAgICAtcyAiUHJvdG9jb2wgaXMgVExTdjEuMyIgXAogICAgICAgICAgLXMgInNlcnZlciBoZWxsbywgY2hvc2VuIGNpcGhlcnN1aXRlOiBUTFMxLTMtQUVTLTI1Ni1HQ00tU0hBMzg0ICggaWQ9NDg2NiApIiBcCkBAIC0yODI4LDggKzI4MzAsOCBAQAogcmVxdWlyZXNfZ251dGxzX25leHRfbm9fdGlja2V0CiByZXF1aXJlc19nbnV0bHNfbmV4dF9kaXNhYmxlX3RsczEzX2NvbXBhdAogcnVuX3Rlc3QgIlRMUyAxLjMgRy0+bTogQUVTXzI1Nl9HQ01fU0hBMzg0LHgyNTUxOSxlY2RzYV9zZWNwMzg0cjFfc2hhMzg0IiBcCi0gICAgICAgICAiJFBfU1JWIGNydF9maWxlPWRhdGFfZmlsZXMvZWNkc2Ffc2VjcDM4NHIxLmNydCBrZXlfZmlsZT1kYXRhX2ZpbGVzL2VjZHNhX3NlY3AzODRyMS5rZXkgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTI1Ni1HQ00tU0hBMzg0IHNpZ19hbGdzPWVjZHNhX3NlY3AzODRyMV9zaGEzODQgZ3JvdXBzPXgyNTUxOSB0bHMxM19rZXhfbW9kZXM9ZXBoZW1lcmFsIGNvb2tpZXM9MCB0aWNrZXRzPTAiIFwKLSAgICAgICAgICIkR19ORVhUX0NMSV9OT19DRVJUIC0tZGVidWc9NCAtLXNpbmdsZS1rZXktc2hhcmUgLS14NTA5Y2FmaWxlIGRhdGFfZmlsZXMvdGVzdC1jYTIuY3J0IC0tcHJpb3JpdHk9Tk9ORTorQUVTLTI1Ni1HQ006K1NIQTM4NDorQUVBRDorU0lHTi1FQ0RTQS1TRUNQMzg0UjEtU0hBMzg0OitHUk9VUC1YMjU1MTk6K1ZFUlMtVExTMS4zOiVOT19USUNLRVRTIiBcCisgICAgICAgICAiJFBfU1JWIGNydF9maWxlPSREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDM4NHIxLmNydCBrZXlfZmlsZT0kREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3AzODRyMS5rZXkgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTI1Ni1HQ00tU0hBMzg0IHNpZ19hbGdzPWVjZHNhX3NlY3AzODRyMV9zaGEzODQgZ3JvdXBzPXgyNTUxOSB0bHMxM19rZXhfbW9kZXM9ZXBoZW1lcmFsIGNvb2tpZXM9MCB0aWNrZXRzPTAiIFwKKyAgICAgICAgICIkR19ORVhUX0NMSV9OT19DRVJUIC0tZGVidWc9NCAtLXNpbmdsZS1rZXktc2hhcmUgLS14NTA5Y2FmaWxlICREQVRBX0ZJTEVTX1BBVEgvdGVzdC1jYTIuY3J0IC0tcHJpb3JpdHk9Tk9ORTorQUVTLTI1Ni1HQ006K1NIQTM4NDorQUVBRDorU0lHTi1FQ0RTQS1TRUNQMzg0UjEtU0hBMzg0OitHUk9VUC1YMjU1MTk6K1ZFUlMtVExTMS4zOiVOT19USUNLRVRTIiBcCiAgICAgICAgICAwIFwKICAgICAgICAgIC1zICJQcm90b2NvbCBpcyBUTFN2MS4zIiBcCiAgICAgICAgICAtcyAic2VydmVyIGhlbGxvLCBjaG9zZW4gY2lwaGVyc3VpdGU6IFRMUzEtMy1BRVMtMjU2LUdDTS1TSEEzODQgKCBpZD00ODY2ICkiIFwKQEAgLTI4NDcsOCArMjg0OSw4IEBACiByZXF1aXJlc19nbnV0bHNfbmV4dF9ub190aWNrZXQKIHJlcXVpcmVzX2dudXRsc19uZXh0X2Rpc2FibGVfdGxzMTNfY29tcGF0CiBydW5fdGVzdCAiVExTIDEuMyBHLT5tOiBBRVNfMjU2X0dDTV9TSEEzODQseDI1NTE5LGVjZHNhX3NlY3A1MjFyMV9zaGE1MTIiIFwKLSAgICAgICAgICIkUF9TUlYgY3J0X2ZpbGU9ZGF0YV9maWxlcy9lY2RzYV9zZWNwNTIxcjEuY3J0IGtleV9maWxlPWRhdGFfZmlsZXMvZWNkc2Ffc2VjcDUyMXIxLmtleSBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMjU2LUdDTS1TSEEzODQgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDUyMXIxX3NoYTUxMiBncm91cHM9eDI1NTE5IHRsczEzX2tleF9tb2Rlcz1lcGhlbWVyYWwgY29va2llcz0wIHRpY2tldHM9MCIgXAotICAgICAgICAgIiRHX05FWFRfQ0xJX05PX0NFUlQgLS1kZWJ1Zz00IC0tc2luZ2xlLWtleS1zaGFyZSAtLXg1MDljYWZpbGUgZGF0YV9maWxlcy90ZXN0LWNhMi5jcnQgLS1wcmlvcml0eT1OT05FOitBRVMtMjU2LUdDTTorU0hBMzg0OitBRUFEOitTSUdOLUVDRFNBLVNFQ1A1MjFSMS1TSEE1MTI6K0dST1VQLVgyNTUxOTorVkVSUy1UTFMxLjM6JU5PX1RJQ0tFVFMiIFwKKyAgICAgICAgICIkUF9TUlYgY3J0X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwNTIxcjEuY3J0IGtleV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDUyMXIxLmtleSBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMjU2LUdDTS1TSEEzODQgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDUyMXIxX3NoYTUxMiBncm91cHM9eDI1NTE5IHRsczEzX2tleF9tb2Rlcz1lcGhlbWVyYWwgY29va2llcz0wIHRpY2tldHM9MCIgXAorICAgICAgICAgIiRHX05FWFRfQ0xJX05PX0NFUlQgLS1kZWJ1Zz00IC0tc2luZ2xlLWtleS1zaGFyZSAtLXg1MDljYWZpbGUgJERBVEFfRklMRVNfUEFUSC90ZXN0LWNhMi5jcnQgLS1wcmlvcml0eT1OT05FOitBRVMtMjU2LUdDTTorU0hBMzg0OitBRUFEOitTSUdOLUVDRFNBLVNFQ1A1MjFSMS1TSEE1MTI6K0dST1VQLVgyNTUxOTorVkVSUy1UTFMxLjM6JU5PX1RJQ0tFVFMiIFwKICAgICAgICAgIDAgXAogICAgICAgICAgLXMgIlByb3RvY29sIGlzIFRMU3YxLjMiIFwKICAgICAgICAgIC1zICJzZXJ2ZXIgaGVsbG8sIGNob3NlbiBjaXBoZXJzdWl0ZTogVExTMS0zLUFFUy0yNTYtR0NNLVNIQTM4NCAoIGlkPTQ4NjYgKSIgXApAQCAtMjg2Nyw4ICsyODY5LDggQEAKIHJlcXVpcmVzX2dudXRsc19uZXh0X25vX3RpY2tldAogcmVxdWlyZXNfZ251dGxzX25leHRfZGlzYWJsZV90bHMxM19jb21wYXQKIHJ1bl90ZXN0ICJUTFMgMS4zIEctPm06IEFFU18yNTZfR0NNX1NIQTM4NCx4MjU1MTkscnNhX3Bzc19yc2FlX3NoYTI1NiIgXAotICAgICAgICAgIiRQX1NSViBjcnRfZmlsZT1kYXRhX2ZpbGVzL3NlcnZlcjItc2hhMjU2LmNydCBrZXlfZmlsZT1kYXRhX2ZpbGVzL3NlcnZlcjIua2V5IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0yNTYtR0NNLVNIQTM4NCBzaWdfYWxncz1yc2FfcHNzX3JzYWVfc2hhMjU2IGdyb3Vwcz14MjU1MTkgdGxzMTNfa2V4X21vZGVzPWVwaGVtZXJhbCBjb29raWVzPTAgdGlja2V0cz0wIiBcCi0gICAgICAgICAiJEdfTkVYVF9DTElfTk9fQ0VSVCAtLWRlYnVnPTQgLS1zaW5nbGUta2V5LXNoYXJlIC0teDUwOWNhZmlsZSBkYXRhX2ZpbGVzL3Rlc3QtY2FfY2F0MTIuY3J0IC0tcHJpb3JpdHk9Tk9ORTorQUVTLTI1Ni1HQ006K1NIQTM4NDorQUVBRDorU0lHTi1SU0EtUFNTLVJTQUUtU0hBMjU2OitHUk9VUC1YMjU1MTk6K1ZFUlMtVExTMS4zOiVOT19USUNLRVRTIiBcCisgICAgICAgICAiJFBfU1JWIGNydF9maWxlPSREQVRBX0ZJTEVTX1BBVEgvc2VydmVyMi1zaGEyNTYuY3J0IGtleV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvc2VydmVyMi5rZXkgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTI1Ni1HQ00tU0hBMzg0IHNpZ19hbGdzPXJzYV9wc3NfcnNhZV9zaGEyNTYgZ3JvdXBzPXgyNTUxOSB0bHMxM19rZXhfbW9kZXM9ZXBoZW1lcmFsIGNvb2tpZXM9MCB0aWNrZXRzPTAiIFwKKyAgICAgICAgICIkR19ORVhUX0NMSV9OT19DRVJUIC0tZGVidWc9NCAtLXNpbmdsZS1rZXktc2hhcmUgLS14NTA5Y2FmaWxlICREQVRBX0ZJTEVTX1BBVEgvdGVzdC1jYV9jYXQxMi5jcnQgLS1wcmlvcml0eT1OT05FOitBRVMtMjU2LUdDTTorU0hBMzg0OitBRUFEOitTSUdOLVJTQS1QU1MtUlNBRS1TSEEyNTY6K0dST1VQLVgyNTUxOTorVkVSUy1UTFMxLjM6JU5PX1RJQ0tFVFMiIFwKICAgICAgICAgIDAgXAogICAgICAgICAgLXMgIlByb3RvY29sIGlzIFRMU3YxLjMiIFwKICAgICAgICAgIC1zICJzZXJ2ZXIgaGVsbG8sIGNob3NlbiBjaXBoZXJzdWl0ZTogVExTMS0zLUFFUy0yNTYtR0NNLVNIQTM4NCAoIGlkPTQ4NjYgKSIgXApAQCAtMjg4Niw4ICsyODg4LDggQEAKIHJlcXVpcmVzX2dudXRsc19uZXh0X25vX3RpY2tldAogcmVxdWlyZXNfZ251dGxzX25leHRfZGlzYWJsZV90bHMxM19jb21wYXQKIHJ1bl90ZXN0ICJUTFMgMS4zIEctPm06IEFFU18yNTZfR0NNX1NIQTM4NCx4NDQ4LGVjZHNhX3NlY3AyNTZyMV9zaGEyNTYiIFwKLSAgICAgICAgICIkUF9TUlYgY3J0X2ZpbGU9ZGF0YV9maWxlcy9lY2RzYV9zZWNwMjU2cjEuY3J0IGtleV9maWxlPWRhdGFfZmlsZXMvZWNkc2Ffc2VjcDI1NnIxLmtleSBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMjU2LUdDTS1TSEEzODQgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDI1NnIxX3NoYTI1NiBncm91cHM9eDQ0OCB0bHMxM19rZXhfbW9kZXM9ZXBoZW1lcmFsIGNvb2tpZXM9MCB0aWNrZXRzPTAiIFwKLSAgICAgICAgICIkR19ORVhUX0NMSV9OT19DRVJUIC0tZGVidWc9NCAtLXNpbmdsZS1rZXktc2hhcmUgLS14NTA5Y2FmaWxlIGRhdGFfZmlsZXMvdGVzdC1jYTIuY3J0IC0tcHJpb3JpdHk9Tk9ORTorQUVTLTI1Ni1HQ006K1NIQTM4NDorQUVBRDorU0lHTi1FQ0RTQS1TRUNQMjU2UjEtU0hBMjU2OitHUk9VUC1YNDQ4OitWRVJTLVRMUzEuMzolTk9fVElDS0VUUyIgXAorICAgICAgICAgIiRQX1NSViBjcnRfZmlsZT0kREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3AyNTZyMS5jcnQga2V5X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwMjU2cjEua2V5IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0yNTYtR0NNLVNIQTM4NCBzaWdfYWxncz1lY2RzYV9zZWNwMjU2cjFfc2hhMjU2IGdyb3Vwcz14NDQ4IHRsczEzX2tleF9tb2Rlcz1lcGhlbWVyYWwgY29va2llcz0wIHRpY2tldHM9MCIgXAorICAgICAgICAgIiRHX05FWFRfQ0xJX05PX0NFUlQgLS1kZWJ1Zz00IC0tc2luZ2xlLWtleS1zaGFyZSAtLXg1MDljYWZpbGUgJERBVEFfRklMRVNfUEFUSC90ZXN0LWNhMi5jcnQgLS1wcmlvcml0eT1OT05FOitBRVMtMjU2LUdDTTorU0hBMzg0OitBRUFEOitTSUdOLUVDRFNBLVNFQ1AyNTZSMS1TSEEyNTY6K0dST1VQLVg0NDg6K1ZFUlMtVExTMS4zOiVOT19USUNLRVRTIiBcCiAgICAgICAgICAwIFwKICAgICAgICAgIC1zICJQcm90b2NvbCBpcyBUTFN2MS4zIiBcCiAgICAgICAgICAtcyAic2VydmVyIGhlbGxvLCBjaG9zZW4gY2lwaGVyc3VpdGU6IFRMUzEtMy1BRVMtMjU2LUdDTS1TSEEzODQgKCBpZD00ODY2ICkiIFwKQEAgLTI5MDUsOCArMjkwNyw4IEBACiByZXF1aXJlc19nbnV0bHNfbmV4dF9ub190aWNrZXQKIHJlcXVpcmVzX2dudXRsc19uZXh0X2Rpc2FibGVfdGxzMTNfY29tcGF0CiBydW5fdGVzdCAiVExTIDEuMyBHLT5tOiBBRVNfMjU2X0dDTV9TSEEzODQseDQ0OCxlY2RzYV9zZWNwMzg0cjFfc2hhMzg0IiBcCi0gICAgICAgICAiJFBfU1JWIGNydF9maWxlPWRhdGFfZmlsZXMvZWNkc2Ffc2VjcDM4NHIxLmNydCBrZXlfZmlsZT1kYXRhX2ZpbGVzL2VjZHNhX3NlY3AzODRyMS5rZXkgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTI1Ni1HQ00tU0hBMzg0IHNpZ19hbGdzPWVjZHNhX3NlY3AzODRyMV9zaGEzODQgZ3JvdXBzPXg0NDggdGxzMTNfa2V4X21vZGVzPWVwaGVtZXJhbCBjb29raWVzPTAgdGlja2V0cz0wIiBcCi0gICAgICAgICAiJEdfTkVYVF9DTElfTk9fQ0VSVCAtLWRlYnVnPTQgLS1zaW5nbGUta2V5LXNoYXJlIC0teDUwOWNhZmlsZSBkYXRhX2ZpbGVzL3Rlc3QtY2EyLmNydCAtLXByaW9yaXR5PU5PTkU6K0FFUy0yNTYtR0NNOitTSEEzODQ6K0FFQUQ6K1NJR04tRUNEU0EtU0VDUDM4NFIxLVNIQTM4NDorR1JPVVAtWDQ0ODorVkVSUy1UTFMxLjM6JU5PX1RJQ0tFVFMiIFwKKyAgICAgICAgICIkUF9TUlYgY3J0X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwMzg0cjEuY3J0IGtleV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDM4NHIxLmtleSBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMjU2LUdDTS1TSEEzODQgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDM4NHIxX3NoYTM4NCBncm91cHM9eDQ0OCB0bHMxM19rZXhfbW9kZXM9ZXBoZW1lcmFsIGNvb2tpZXM9MCB0aWNrZXRzPTAiIFwKKyAgICAgICAgICIkR19ORVhUX0NMSV9OT19DRVJUIC0tZGVidWc9NCAtLXNpbmdsZS1rZXktc2hhcmUgLS14NTA5Y2FmaWxlICREQVRBX0ZJTEVTX1BBVEgvdGVzdC1jYTIuY3J0IC0tcHJpb3JpdHk9Tk9ORTorQUVTLTI1Ni1HQ006K1NIQTM4NDorQUVBRDorU0lHTi1FQ0RTQS1TRUNQMzg0UjEtU0hBMzg0OitHUk9VUC1YNDQ4OitWRVJTLVRMUzEuMzolTk9fVElDS0VUUyIgXAogICAgICAgICAgMCBcCiAgICAgICAgICAtcyAiUHJvdG9jb2wgaXMgVExTdjEuMyIgXAogICAgICAgICAgLXMgInNlcnZlciBoZWxsbywgY2hvc2VuIGNpcGhlcnN1aXRlOiBUTFMxLTMtQUVTLTI1Ni1HQ00tU0hBMzg0ICggaWQ9NDg2NiApIiBcCkBAIC0yOTI0LDggKzI5MjYsOCBAQAogcmVxdWlyZXNfZ251dGxzX25leHRfbm9fdGlja2V0CiByZXF1aXJlc19nbnV0bHNfbmV4dF9kaXNhYmxlX3RsczEzX2NvbXBhdAogcnVuX3Rlc3QgIlRMUyAxLjMgRy0+bTogQUVTXzI1Nl9HQ01fU0hBMzg0LHg0NDgsZWNkc2Ffc2VjcDUyMXIxX3NoYTUxMiIgXAotICAgICAgICAgIiRQX1NSViBjcnRfZmlsZT1kYXRhX2ZpbGVzL2VjZHNhX3NlY3A1MjFyMS5jcnQga2V5X2ZpbGU9ZGF0YV9maWxlcy9lY2RzYV9zZWNwNTIxcjEua2V5IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0yNTYtR0NNLVNIQTM4NCBzaWdfYWxncz1lY2RzYV9zZWNwNTIxcjFfc2hhNTEyIGdyb3Vwcz14NDQ4IHRsczEzX2tleF9tb2Rlcz1lcGhlbWVyYWwgY29va2llcz0wIHRpY2tldHM9MCIgXAotICAgICAgICAgIiRHX05FWFRfQ0xJX05PX0NFUlQgLS1kZWJ1Zz00IC0tc2luZ2xlLWtleS1zaGFyZSAtLXg1MDljYWZpbGUgZGF0YV9maWxlcy90ZXN0LWNhMi5jcnQgLS1wcmlvcml0eT1OT05FOitBRVMtMjU2LUdDTTorU0hBMzg0OitBRUFEOitTSUdOLUVDRFNBLVNFQ1A1MjFSMS1TSEE1MTI6K0dST1VQLVg0NDg6K1ZFUlMtVExTMS4zOiVOT19USUNLRVRTIiBcCisgICAgICAgICAiJFBfU1JWIGNydF9maWxlPSREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDUyMXIxLmNydCBrZXlfZmlsZT0kREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3A1MjFyMS5rZXkgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTI1Ni1HQ00tU0hBMzg0IHNpZ19hbGdzPWVjZHNhX3NlY3A1MjFyMV9zaGE1MTIgZ3JvdXBzPXg0NDggdGxzMTNfa2V4X21vZGVzPWVwaGVtZXJhbCBjb29raWVzPTAgdGlja2V0cz0wIiBcCisgICAgICAgICAiJEdfTkVYVF9DTElfTk9fQ0VSVCAtLWRlYnVnPTQgLS1zaW5nbGUta2V5LXNoYXJlIC0teDUwOWNhZmlsZSAkREFUQV9GSUxFU19QQVRIL3Rlc3QtY2EyLmNydCAtLXByaW9yaXR5PU5PTkU6K0FFUy0yNTYtR0NNOitTSEEzODQ6K0FFQUQ6K1NJR04tRUNEU0EtU0VDUDUyMVIxLVNIQTUxMjorR1JPVVAtWDQ0ODorVkVSUy1UTFMxLjM6JU5PX1RJQ0tFVFMiIFwKICAgICAgICAgIDAgXAogICAgICAgICAgLXMgIlByb3RvY29sIGlzIFRMU3YxLjMiIFwKICAgICAgICAgIC1zICJzZXJ2ZXIgaGVsbG8sIGNob3NlbiBjaXBoZXJzdWl0ZTogVExTMS0zLUFFUy0yNTYtR0NNLVNIQTM4NCAoIGlkPTQ4NjYgKSIgXApAQCAtMjk0NCw4ICsyOTQ2LDggQEAKIHJlcXVpcmVzX2dudXRsc19uZXh0X25vX3RpY2tldAogcmVxdWlyZXNfZ251dGxzX25leHRfZGlzYWJsZV90bHMxM19jb21wYXQKIHJ1bl90ZXN0ICJUTFMgMS4zIEctPm06IEFFU18yNTZfR0NNX1NIQTM4NCx4NDQ4LHJzYV9wc3NfcnNhZV9zaGEyNTYiIFwKLSAgICAgICAgICIkUF9TUlYgY3J0X2ZpbGU9ZGF0YV9maWxlcy9zZXJ2ZXIyLXNoYTI1Ni5jcnQga2V5X2ZpbGU9ZGF0YV9maWxlcy9zZXJ2ZXIyLmtleSBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMjU2LUdDTS1TSEEzODQgc2lnX2FsZ3M9cnNhX3Bzc19yc2FlX3NoYTI1NiBncm91cHM9eDQ0OCB0bHMxM19rZXhfbW9kZXM9ZXBoZW1lcmFsIGNvb2tpZXM9MCB0aWNrZXRzPTAiIFwKLSAgICAgICAgICIkR19ORVhUX0NMSV9OT19DRVJUIC0tZGVidWc9NCAtLXNpbmdsZS1rZXktc2hhcmUgLS14NTA5Y2FmaWxlIGRhdGFfZmlsZXMvdGVzdC1jYV9jYXQxMi5jcnQgLS1wcmlvcml0eT1OT05FOitBRVMtMjU2LUdDTTorU0hBMzg0OitBRUFEOitTSUdOLVJTQS1QU1MtUlNBRS1TSEEyNTY6K0dST1VQLVg0NDg6K1ZFUlMtVExTMS4zOiVOT19USUNLRVRTIiBcCisgICAgICAgICAiJFBfU1JWIGNydF9maWxlPSREQVRBX0ZJTEVTX1BBVEgvc2VydmVyMi1zaGEyNTYuY3J0IGtleV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvc2VydmVyMi5rZXkgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTI1Ni1HQ00tU0hBMzg0IHNpZ19hbGdzPXJzYV9wc3NfcnNhZV9zaGEyNTYgZ3JvdXBzPXg0NDggdGxzMTNfa2V4X21vZGVzPWVwaGVtZXJhbCBjb29raWVzPTAgdGlja2V0cz0wIiBcCisgICAgICAgICAiJEdfTkVYVF9DTElfTk9fQ0VSVCAtLWRlYnVnPTQgLS1zaW5nbGUta2V5LXNoYXJlIC0teDUwOWNhZmlsZSAkREFUQV9GSUxFU19QQVRIL3Rlc3QtY2FfY2F0MTIuY3J0IC0tcHJpb3JpdHk9Tk9ORTorQUVTLTI1Ni1HQ006K1NIQTM4NDorQUVBRDorU0lHTi1SU0EtUFNTLVJTQUUtU0hBMjU2OitHUk9VUC1YNDQ4OitWRVJTLVRMUzEuMzolTk9fVElDS0VUUyIgXAogICAgICAgICAgMCBcCiAgICAgICAgICAtcyAiUHJvdG9jb2wgaXMgVExTdjEuMyIgXAogICAgICAgICAgLXMgInNlcnZlciBoZWxsbywgY2hvc2VuIGNpcGhlcnN1aXRlOiBUTFMxLTMtQUVTLTI1Ni1HQ00tU0hBMzg0ICggaWQ9NDg2NiApIiBcCkBAIC0yOTY0LDggKzI5NjYsOCBAQAogcmVxdWlyZXNfZ251dGxzX25leHRfbm9fdGlja2V0CiByZXF1aXJlc19nbnV0bHNfbmV4dF9kaXNhYmxlX3RsczEzX2NvbXBhdAogcnVuX3Rlc3QgIlRMUyAxLjMgRy0+bTogQUVTXzI1Nl9HQ01fU0hBMzg0LGZmZGhlMjA0OCxlY2RzYV9zZWNwMjU2cjFfc2hhMjU2IiBcCi0gICAgICAgICAiJFBfU1JWIGNydF9maWxlPWRhdGFfZmlsZXMvZWNkc2Ffc2VjcDI1NnIxLmNydCBrZXlfZmlsZT1kYXRhX2ZpbGVzL2VjZHNhX3NlY3AyNTZyMS5rZXkgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTI1Ni1HQ00tU0hBMzg0IHNpZ19hbGdzPWVjZHNhX3NlY3AyNTZyMV9zaGEyNTYgZ3JvdXBzPWZmZGhlMjA0OCB0bHMxM19rZXhfbW9kZXM9ZXBoZW1lcmFsIGNvb2tpZXM9MCB0aWNrZXRzPTAiIFwKLSAgICAgICAgICIkR19ORVhUX0NMSV9OT19DRVJUIC0tZGVidWc9NCAtLXNpbmdsZS1rZXktc2hhcmUgLS14NTA5Y2FmaWxlIGRhdGFfZmlsZXMvdGVzdC1jYTIuY3J0IC0tcHJpb3JpdHk9Tk9ORTorQUVTLTI1Ni1HQ006K1NIQTM4NDorQUVBRDorU0lHTi1FQ0RTQS1TRUNQMjU2UjEtU0hBMjU2OitHUk9VUC1GRkRIRTIwNDg6K1ZFUlMtVExTMS4zOiVOT19USUNLRVRTIiBcCisgICAgICAgICAiJFBfU1JWIGNydF9maWxlPSREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDI1NnIxLmNydCBrZXlfZmlsZT0kREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3AyNTZyMS5rZXkgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTI1Ni1HQ00tU0hBMzg0IHNpZ19hbGdzPWVjZHNhX3NlY3AyNTZyMV9zaGEyNTYgZ3JvdXBzPWZmZGhlMjA0OCB0bHMxM19rZXhfbW9kZXM9ZXBoZW1lcmFsIGNvb2tpZXM9MCB0aWNrZXRzPTAiIFwKKyAgICAgICAgICIkR19ORVhUX0NMSV9OT19DRVJUIC0tZGVidWc9NCAtLXNpbmdsZS1rZXktc2hhcmUgLS14NTA5Y2FmaWxlICREQVRBX0ZJTEVTX1BBVEgvdGVzdC1jYTIuY3J0IC0tcHJpb3JpdHk9Tk9ORTorQUVTLTI1Ni1HQ006K1NIQTM4NDorQUVBRDorU0lHTi1FQ0RTQS1TRUNQMjU2UjEtU0hBMjU2OitHUk9VUC1GRkRIRTIwNDg6K1ZFUlMtVExTMS4zOiVOT19USUNLRVRTIiBcCiAgICAgICAgICAwIFwKICAgICAgICAgIC1zICJQcm90b2NvbCBpcyBUTFN2MS4zIiBcCiAgICAgICAgICAtcyAic2VydmVyIGhlbGxvLCBjaG9zZW4gY2lwaGVyc3VpdGU6IFRMUzEtMy1BRVMtMjU2LUdDTS1TSEEzODQgKCBpZD00ODY2ICkiIFwKQEAgLTI5ODQsOCArMjk4Niw4IEBACiByZXF1aXJlc19nbnV0bHNfbmV4dF9ub190aWNrZXQKIHJlcXVpcmVzX2dudXRsc19uZXh0X2Rpc2FibGVfdGxzMTNfY29tcGF0CiBydW5fdGVzdCAiVExTIDEuMyBHLT5tOiBBRVNfMjU2X0dDTV9TSEEzODQsZmZkaGUyMDQ4LGVjZHNhX3NlY3AzODRyMV9zaGEzODQiIFwKLSAgICAgICAgICIkUF9TUlYgY3J0X2ZpbGU9ZGF0YV9maWxlcy9lY2RzYV9zZWNwMzg0cjEuY3J0IGtleV9maWxlPWRhdGFfZmlsZXMvZWNkc2Ffc2VjcDM4NHIxLmtleSBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMjU2LUdDTS1TSEEzODQgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDM4NHIxX3NoYTM4NCBncm91cHM9ZmZkaGUyMDQ4IHRsczEzX2tleF9tb2Rlcz1lcGhlbWVyYWwgY29va2llcz0wIHRpY2tldHM9MCIgXAotICAgICAgICAgIiRHX05FWFRfQ0xJX05PX0NFUlQgLS1kZWJ1Zz00IC0tc2luZ2xlLWtleS1zaGFyZSAtLXg1MDljYWZpbGUgZGF0YV9maWxlcy90ZXN0LWNhMi5jcnQgLS1wcmlvcml0eT1OT05FOitBRVMtMjU2LUdDTTorU0hBMzg0OitBRUFEOitTSUdOLUVDRFNBLVNFQ1AzODRSMS1TSEEzODQ6K0dST1VQLUZGREhFMjA0ODorVkVSUy1UTFMxLjM6JU5PX1RJQ0tFVFMiIFwKKyAgICAgICAgICIkUF9TUlYgY3J0X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwMzg0cjEuY3J0IGtleV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDM4NHIxLmtleSBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMjU2LUdDTS1TSEEzODQgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDM4NHIxX3NoYTM4NCBncm91cHM9ZmZkaGUyMDQ4IHRsczEzX2tleF9tb2Rlcz1lcGhlbWVyYWwgY29va2llcz0wIHRpY2tldHM9MCIgXAorICAgICAgICAgIiRHX05FWFRfQ0xJX05PX0NFUlQgLS1kZWJ1Zz00IC0tc2luZ2xlLWtleS1zaGFyZSAtLXg1MDljYWZpbGUgJERBVEFfRklMRVNfUEFUSC90ZXN0LWNhMi5jcnQgLS1wcmlvcml0eT1OT05FOitBRVMtMjU2LUdDTTorU0hBMzg0OitBRUFEOitTSUdOLUVDRFNBLVNFQ1AzODRSMS1TSEEzODQ6K0dST1VQLUZGREhFMjA0ODorVkVSUy1UTFMxLjM6JU5PX1RJQ0tFVFMiIFwKICAgICAgICAgIDAgXAogICAgICAgICAgLXMgIlByb3RvY29sIGlzIFRMU3YxLjMiIFwKICAgICAgICAgIC1zICJzZXJ2ZXIgaGVsbG8sIGNob3NlbiBjaXBoZXJzdWl0ZTogVExTMS0zLUFFUy0yNTYtR0NNLVNIQTM4NCAoIGlkPTQ4NjYgKSIgXApAQCAtMzAwNCw4ICszMDA2LDggQEAKIHJlcXVpcmVzX2dudXRsc19uZXh0X25vX3RpY2tldAogcmVxdWlyZXNfZ251dGxzX25leHRfZGlzYWJsZV90bHMxM19jb21wYXQKIHJ1bl90ZXN0ICJUTFMgMS4zIEctPm06IEFFU18yNTZfR0NNX1NIQTM4NCxmZmRoZTIwNDgsZWNkc2Ffc2VjcDUyMXIxX3NoYTUxMiIgXAotICAgICAgICAgIiRQX1NSViBjcnRfZmlsZT1kYXRhX2ZpbGVzL2VjZHNhX3NlY3A1MjFyMS5jcnQga2V5X2ZpbGU9ZGF0YV9maWxlcy9lY2RzYV9zZWNwNTIxcjEua2V5IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0yNTYtR0NNLVNIQTM4NCBzaWdfYWxncz1lY2RzYV9zZWNwNTIxcjFfc2hhNTEyIGdyb3Vwcz1mZmRoZTIwNDggdGxzMTNfa2V4X21vZGVzPWVwaGVtZXJhbCBjb29raWVzPTAgdGlja2V0cz0wIiBcCi0gICAgICAgICAiJEdfTkVYVF9DTElfTk9fQ0VSVCAtLWRlYnVnPTQgLS1zaW5nbGUta2V5LXNoYXJlIC0teDUwOWNhZmlsZSBkYXRhX2ZpbGVzL3Rlc3QtY2EyLmNydCAtLXByaW9yaXR5PU5PTkU6K0FFUy0yNTYtR0NNOitTSEEzODQ6K0FFQUQ6K1NJR04tRUNEU0EtU0VDUDUyMVIxLVNIQTUxMjorR1JPVVAtRkZESEUyMDQ4OitWRVJTLVRMUzEuMzolTk9fVElDS0VUUyIgXAorICAgICAgICAgIiRQX1NSViBjcnRfZmlsZT0kREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3A1MjFyMS5jcnQga2V5X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwNTIxcjEua2V5IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0yNTYtR0NNLVNIQTM4NCBzaWdfYWxncz1lY2RzYV9zZWNwNTIxcjFfc2hhNTEyIGdyb3Vwcz1mZmRoZTIwNDggdGxzMTNfa2V4X21vZGVzPWVwaGVtZXJhbCBjb29raWVzPTAgdGlja2V0cz0wIiBcCisgICAgICAgICAiJEdfTkVYVF9DTElfTk9fQ0VSVCAtLWRlYnVnPTQgLS1zaW5nbGUta2V5LXNoYXJlIC0teDUwOWNhZmlsZSAkREFUQV9GSUxFU19QQVRIL3Rlc3QtY2EyLmNydCAtLXByaW9yaXR5PU5PTkU6K0FFUy0yNTYtR0NNOitTSEEzODQ6K0FFQUQ6K1NJR04tRUNEU0EtU0VDUDUyMVIxLVNIQTUxMjorR1JPVVAtRkZESEUyMDQ4OitWRVJTLVRMUzEuMzolTk9fVElDS0VUUyIgXAogICAgICAgICAgMCBcCiAgICAgICAgICAtcyAiUHJvdG9jb2wgaXMgVExTdjEuMyIgXAogICAgICAgICAgLXMgInNlcnZlciBoZWxsbywgY2hvc2VuIGNpcGhlcnN1aXRlOiBUTFMxLTMtQUVTLTI1Ni1HQ00tU0hBMzg0ICggaWQ9NDg2NiApIiBcCkBAIC0zMDI1LDggKzMwMjcsOCBAQAogcmVxdWlyZXNfZ251dGxzX25leHRfbm9fdGlja2V0CiByZXF1aXJlc19nbnV0bHNfbmV4dF9kaXNhYmxlX3RsczEzX2NvbXBhdAogcnVuX3Rlc3QgIlRMUyAxLjMgRy0+bTogQUVTXzI1Nl9HQ01fU0hBMzg0LGZmZGhlMjA0OCxyc2FfcHNzX3JzYWVfc2hhMjU2IiBcCi0gICAgICAgICAiJFBfU1JWIGNydF9maWxlPWRhdGFfZmlsZXMvc2VydmVyMi1zaGEyNTYuY3J0IGtleV9maWxlPWRhdGFfZmlsZXMvc2VydmVyMi5rZXkgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTI1Ni1HQ00tU0hBMzg0IHNpZ19hbGdzPXJzYV9wc3NfcnNhZV9zaGEyNTYgZ3JvdXBzPWZmZGhlMjA0OCB0bHMxM19rZXhfbW9kZXM9ZXBoZW1lcmFsIGNvb2tpZXM9MCB0aWNrZXRzPTAiIFwKLSAgICAgICAgICIkR19ORVhUX0NMSV9OT19DRVJUIC0tZGVidWc9NCAtLXNpbmdsZS1rZXktc2hhcmUgLS14NTA5Y2FmaWxlIGRhdGFfZmlsZXMvdGVzdC1jYV9jYXQxMi5jcnQgLS1wcmlvcml0eT1OT05FOitBRVMtMjU2LUdDTTorU0hBMzg0OitBRUFEOitTSUdOLVJTQS1QU1MtUlNBRS1TSEEyNTY6K0dST1VQLUZGREhFMjA0ODorVkVSUy1UTFMxLjM6JU5PX1RJQ0tFVFMiIFwKKyAgICAgICAgICIkUF9TUlYgY3J0X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9zZXJ2ZXIyLXNoYTI1Ni5jcnQga2V5X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9zZXJ2ZXIyLmtleSBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMjU2LUdDTS1TSEEzODQgc2lnX2FsZ3M9cnNhX3Bzc19yc2FlX3NoYTI1NiBncm91cHM9ZmZkaGUyMDQ4IHRsczEzX2tleF9tb2Rlcz1lcGhlbWVyYWwgY29va2llcz0wIHRpY2tldHM9MCIgXAorICAgICAgICAgIiRHX05FWFRfQ0xJX05PX0NFUlQgLS1kZWJ1Zz00IC0tc2luZ2xlLWtleS1zaGFyZSAtLXg1MDljYWZpbGUgJERBVEFfRklMRVNfUEFUSC90ZXN0LWNhX2NhdDEyLmNydCAtLXByaW9yaXR5PU5PTkU6K0FFUy0yNTYtR0NNOitTSEEzODQ6K0FFQUQ6K1NJR04tUlNBLVBTUy1SU0FFLVNIQTI1NjorR1JPVVAtRkZESEUyMDQ4OitWRVJTLVRMUzEuMzolTk9fVElDS0VUUyIgXAogICAgICAgICAgMCBcCiAgICAgICAgICAtcyAiUHJvdG9jb2wgaXMgVExTdjEuMyIgXAogICAgICAgICAgLXMgInNlcnZlciBoZWxsbywgY2hvc2VuIGNpcGhlcnN1aXRlOiBUTFMxLTMtQUVTLTI1Ni1HQ00tU0hBMzg0ICggaWQ9NDg2NiApIiBcCkBAIC0zMDQ0LDggKzMwNDYsOCBAQAogcmVxdWlyZXNfZ251dGxzX25leHRfbm9fdGlja2V0CiByZXF1aXJlc19nbnV0bHNfbmV4dF9kaXNhYmxlX3RsczEzX2NvbXBhdAogcnVuX3Rlc3QgIlRMUyAxLjMgRy0+bTogQ0hBQ0hBMjBfUE9MWTEzMDVfU0hBMjU2LHNlY3AyNTZyMSxlY2RzYV9zZWNwMjU2cjFfc2hhMjU2IiBcCi0gICAgICAgICAiJFBfU1JWIGNydF9maWxlPWRhdGFfZmlsZXMvZWNkc2Ffc2VjcDI1NnIxLmNydCBrZXlfZmlsZT1kYXRhX2ZpbGVzL2VjZHNhX3NlY3AyNTZyMS5rZXkgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQ0hBQ0hBMjAtUE9MWTEzMDUtU0hBMjU2IHNpZ19hbGdzPWVjZHNhX3NlY3AyNTZyMV9zaGEyNTYgZ3JvdXBzPXNlY3AyNTZyMSB0bHMxM19rZXhfbW9kZXM9ZXBoZW1lcmFsIGNvb2tpZXM9MCB0aWNrZXRzPTAiIFwKLSAgICAgICAgICIkR19ORVhUX0NMSV9OT19DRVJUIC0tZGVidWc9NCAtLXNpbmdsZS1rZXktc2hhcmUgLS14NTA5Y2FmaWxlIGRhdGFfZmlsZXMvdGVzdC1jYTIuY3J0IC0tcHJpb3JpdHk9Tk9ORTorQ0hBQ0hBMjAtUE9MWTEzMDU6K1NIQTI1NjorQUVBRDorU0lHTi1FQ0RTQS1TRUNQMjU2UjEtU0hBMjU2OitHUk9VUC1TRUNQMjU2UjE6K1ZFUlMtVExTMS4zOiVOT19USUNLRVRTIiBcCisgICAgICAgICAiJFBfU1JWIGNydF9maWxlPSREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDI1NnIxLmNydCBrZXlfZmlsZT0kREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3AyNTZyMS5rZXkgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQ0hBQ0hBMjAtUE9MWTEzMDUtU0hBMjU2IHNpZ19hbGdzPWVjZHNhX3NlY3AyNTZyMV9zaGEyNTYgZ3JvdXBzPXNlY3AyNTZyMSB0bHMxM19rZXhfbW9kZXM9ZXBoZW1lcmFsIGNvb2tpZXM9MCB0aWNrZXRzPTAiIFwKKyAgICAgICAgICIkR19ORVhUX0NMSV9OT19DRVJUIC0tZGVidWc9NCAtLXNpbmdsZS1rZXktc2hhcmUgLS14NTA5Y2FmaWxlICREQVRBX0ZJTEVTX1BBVEgvdGVzdC1jYTIuY3J0IC0tcHJpb3JpdHk9Tk9ORTorQ0hBQ0hBMjAtUE9MWTEzMDU6K1NIQTI1NjorQUVBRDorU0lHTi1FQ0RTQS1TRUNQMjU2UjEtU0hBMjU2OitHUk9VUC1TRUNQMjU2UjE6K1ZFUlMtVExTMS4zOiVOT19USUNLRVRTIiBcCiAgICAgICAgICAwIFwKICAgICAgICAgIC1zICJQcm90b2NvbCBpcyBUTFN2MS4zIiBcCiAgICAgICAgICAtcyAic2VydmVyIGhlbGxvLCBjaG9zZW4gY2lwaGVyc3VpdGU6IFRMUzEtMy1DSEFDSEEyMC1QT0xZMTMwNS1TSEEyNTYgKCBpZD00ODY3ICkiIFwKQEAgLTMwNjMsOCArMzA2NSw4IEBACiByZXF1aXJlc19nbnV0bHNfbmV4dF9ub190aWNrZXQKIHJlcXVpcmVzX2dudXRsc19uZXh0X2Rpc2FibGVfdGxzMTNfY29tcGF0CiBydW5fdGVzdCAiVExTIDEuMyBHLT5tOiBDSEFDSEEyMF9QT0xZMTMwNV9TSEEyNTYsc2VjcDI1NnIxLGVjZHNhX3NlY3AzODRyMV9zaGEzODQiIFwKLSAgICAgICAgICIkUF9TUlYgY3J0X2ZpbGU9ZGF0YV9maWxlcy9lY2RzYV9zZWNwMzg0cjEuY3J0IGtleV9maWxlPWRhdGFfZmlsZXMvZWNkc2Ffc2VjcDM4NHIxLmtleSBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1DSEFDSEEyMC1QT0xZMTMwNS1TSEEyNTYgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDM4NHIxX3NoYTM4NCBncm91cHM9c2VjcDI1NnIxIHRsczEzX2tleF9tb2Rlcz1lcGhlbWVyYWwgY29va2llcz0wIHRpY2tldHM9MCIgXAotICAgICAgICAgIiRHX05FWFRfQ0xJX05PX0NFUlQgLS1kZWJ1Zz00IC0tc2luZ2xlLWtleS1zaGFyZSAtLXg1MDljYWZpbGUgZGF0YV9maWxlcy90ZXN0LWNhMi5jcnQgLS1wcmlvcml0eT1OT05FOitDSEFDSEEyMC1QT0xZMTMwNTorU0hBMjU2OitBRUFEOitTSUdOLUVDRFNBLVNFQ1AzODRSMS1TSEEzODQ6K0dST1VQLVNFQ1AyNTZSMTorVkVSUy1UTFMxLjM6JU5PX1RJQ0tFVFMiIFwKKyAgICAgICAgICIkUF9TUlYgY3J0X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwMzg0cjEuY3J0IGtleV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDM4NHIxLmtleSBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1DSEFDSEEyMC1QT0xZMTMwNS1TSEEyNTYgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDM4NHIxX3NoYTM4NCBncm91cHM9c2VjcDI1NnIxIHRsczEzX2tleF9tb2Rlcz1lcGhlbWVyYWwgY29va2llcz0wIHRpY2tldHM9MCIgXAorICAgICAgICAgIiRHX05FWFRfQ0xJX05PX0NFUlQgLS1kZWJ1Zz00IC0tc2luZ2xlLWtleS1zaGFyZSAtLXg1MDljYWZpbGUgJERBVEFfRklMRVNfUEFUSC90ZXN0LWNhMi5jcnQgLS1wcmlvcml0eT1OT05FOitDSEFDSEEyMC1QT0xZMTMwNTorU0hBMjU2OitBRUFEOitTSUdOLUVDRFNBLVNFQ1AzODRSMS1TSEEzODQ6K0dST1VQLVNFQ1AyNTZSMTorVkVSUy1UTFMxLjM6JU5PX1RJQ0tFVFMiIFwKICAgICAgICAgIDAgXAogICAgICAgICAgLXMgIlByb3RvY29sIGlzIFRMU3YxLjMiIFwKICAgICAgICAgIC1zICJzZXJ2ZXIgaGVsbG8sIGNob3NlbiBjaXBoZXJzdWl0ZTogVExTMS0zLUNIQUNIQTIwLVBPTFkxMzA1LVNIQTI1NiAoIGlkPTQ4NjcgKSIgXApAQCAtMzA4Miw4ICszMDg0LDggQEAKIHJlcXVpcmVzX2dudXRsc19uZXh0X25vX3RpY2tldAogcmVxdWlyZXNfZ251dGxzX25leHRfZGlzYWJsZV90bHMxM19jb21wYXQKIHJ1bl90ZXN0ICJUTFMgMS4zIEctPm06IENIQUNIQTIwX1BPTFkxMzA1X1NIQTI1NixzZWNwMjU2cjEsZWNkc2Ffc2VjcDUyMXIxX3NoYTUxMiIgXAotICAgICAgICAgIiRQX1NSViBjcnRfZmlsZT1kYXRhX2ZpbGVzL2VjZHNhX3NlY3A1MjFyMS5jcnQga2V5X2ZpbGU9ZGF0YV9maWxlcy9lY2RzYV9zZWNwNTIxcjEua2V5IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUNIQUNIQTIwLVBPTFkxMzA1LVNIQTI1NiBzaWdfYWxncz1lY2RzYV9zZWNwNTIxcjFfc2hhNTEyIGdyb3Vwcz1zZWNwMjU2cjEgdGxzMTNfa2V4X21vZGVzPWVwaGVtZXJhbCBjb29raWVzPTAgdGlja2V0cz0wIiBcCi0gICAgICAgICAiJEdfTkVYVF9DTElfTk9fQ0VSVCAtLWRlYnVnPTQgLS1zaW5nbGUta2V5LXNoYXJlIC0teDUwOWNhZmlsZSBkYXRhX2ZpbGVzL3Rlc3QtY2EyLmNydCAtLXByaW9yaXR5PU5PTkU6K0NIQUNIQTIwLVBPTFkxMzA1OitTSEEyNTY6K0FFQUQ6K1NJR04tRUNEU0EtU0VDUDUyMVIxLVNIQTUxMjorR1JPVVAtU0VDUDI1NlIxOitWRVJTLVRMUzEuMzolTk9fVElDS0VUUyIgXAorICAgICAgICAgIiRQX1NSViBjcnRfZmlsZT0kREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3A1MjFyMS5jcnQga2V5X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwNTIxcjEua2V5IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUNIQUNIQTIwLVBPTFkxMzA1LVNIQTI1NiBzaWdfYWxncz1lY2RzYV9zZWNwNTIxcjFfc2hhNTEyIGdyb3Vwcz1zZWNwMjU2cjEgdGxzMTNfa2V4X21vZGVzPWVwaGVtZXJhbCBjb29raWVzPTAgdGlja2V0cz0wIiBcCisgICAgICAgICAiJEdfTkVYVF9DTElfTk9fQ0VSVCAtLWRlYnVnPTQgLS1zaW5nbGUta2V5LXNoYXJlIC0teDUwOWNhZmlsZSAkREFUQV9GSUxFU19QQVRIL3Rlc3QtY2EyLmNydCAtLXByaW9yaXR5PU5PTkU6K0NIQUNIQTIwLVBPTFkxMzA1OitTSEEyNTY6K0FFQUQ6K1NJR04tRUNEU0EtU0VDUDUyMVIxLVNIQTUxMjorR1JPVVAtU0VDUDI1NlIxOitWRVJTLVRMUzEuMzolTk9fVElDS0VUUyIgXAogICAgICAgICAgMCBcCiAgICAgICAgICAtcyAiUHJvdG9jb2wgaXMgVExTdjEuMyIgXAogICAgICAgICAgLXMgInNlcnZlciBoZWxsbywgY2hvc2VuIGNpcGhlcnN1aXRlOiBUTFMxLTMtQ0hBQ0hBMjAtUE9MWTEzMDUtU0hBMjU2ICggaWQ9NDg2NyApIiBcCkBAIC0zMTAyLDggKzMxMDQsOCBAQAogcmVxdWlyZXNfZ251dGxzX25leHRfbm9fdGlja2V0CiByZXF1aXJlc19nbnV0bHNfbmV4dF9kaXNhYmxlX3RsczEzX2NvbXBhdAogcnVuX3Rlc3QgIlRMUyAxLjMgRy0+bTogQ0hBQ0hBMjBfUE9MWTEzMDVfU0hBMjU2LHNlY3AyNTZyMSxyc2FfcHNzX3JzYWVfc2hhMjU2IiBcCi0gICAgICAgICAiJFBfU1JWIGNydF9maWxlPWRhdGFfZmlsZXMvc2VydmVyMi1zaGEyNTYuY3J0IGtleV9maWxlPWRhdGFfZmlsZXMvc2VydmVyMi5rZXkgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQ0hBQ0hBMjAtUE9MWTEzMDUtU0hBMjU2IHNpZ19hbGdzPXJzYV9wc3NfcnNhZV9zaGEyNTYgZ3JvdXBzPXNlY3AyNTZyMSB0bHMxM19rZXhfbW9kZXM9ZXBoZW1lcmFsIGNvb2tpZXM9MCB0aWNrZXRzPTAiIFwKLSAgICAgICAgICIkR19ORVhUX0NMSV9OT19DRVJUIC0tZGVidWc9NCAtLXNpbmdsZS1rZXktc2hhcmUgLS14NTA5Y2FmaWxlIGRhdGFfZmlsZXMvdGVzdC1jYV9jYXQxMi5jcnQgLS1wcmlvcml0eT1OT05FOitDSEFDSEEyMC1QT0xZMTMwNTorU0hBMjU2OitBRUFEOitTSUdOLVJTQS1QU1MtUlNBRS1TSEEyNTY6K0dST1VQLVNFQ1AyNTZSMTorVkVSUy1UTFMxLjM6JU5PX1RJQ0tFVFMiIFwKKyAgICAgICAgICIkUF9TUlYgY3J0X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9zZXJ2ZXIyLXNoYTI1Ni5jcnQga2V5X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9zZXJ2ZXIyLmtleSBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1DSEFDSEEyMC1QT0xZMTMwNS1TSEEyNTYgc2lnX2FsZ3M9cnNhX3Bzc19yc2FlX3NoYTI1NiBncm91cHM9c2VjcDI1NnIxIHRsczEzX2tleF9tb2Rlcz1lcGhlbWVyYWwgY29va2llcz0wIHRpY2tldHM9MCIgXAorICAgICAgICAgIiRHX05FWFRfQ0xJX05PX0NFUlQgLS1kZWJ1Zz00IC0tc2luZ2xlLWtleS1zaGFyZSAtLXg1MDljYWZpbGUgJERBVEFfRklMRVNfUEFUSC90ZXN0LWNhX2NhdDEyLmNydCAtLXByaW9yaXR5PU5PTkU6K0NIQUNIQTIwLVBPTFkxMzA1OitTSEEyNTY6K0FFQUQ6K1NJR04tUlNBLVBTUy1SU0FFLVNIQTI1NjorR1JPVVAtU0VDUDI1NlIxOitWRVJTLVRMUzEuMzolTk9fVElDS0VUUyIgXAogICAgICAgICAgMCBcCiAgICAgICAgICAtcyAiUHJvdG9jb2wgaXMgVExTdjEuMyIgXAogICAgICAgICAgLXMgInNlcnZlciBoZWxsbywgY2hvc2VuIGNpcGhlcnN1aXRlOiBUTFMxLTMtQ0hBQ0hBMjAtUE9MWTEzMDUtU0hBMjU2ICggaWQ9NDg2NyApIiBcCkBAIC0zMTIxLDggKzMxMjMsOCBAQAogcmVxdWlyZXNfZ251dGxzX25leHRfbm9fdGlja2V0CiByZXF1aXJlc19nbnV0bHNfbmV4dF9kaXNhYmxlX3RsczEzX2NvbXBhdAogcnVuX3Rlc3QgIlRMUyAxLjMgRy0+bTogQ0hBQ0hBMjBfUE9MWTEzMDVfU0hBMjU2LHNlY3AzODRyMSxlY2RzYV9zZWNwMjU2cjFfc2hhMjU2IiBcCi0gICAgICAgICAiJFBfU1JWIGNydF9maWxlPWRhdGFfZmlsZXMvZWNkc2Ffc2VjcDI1NnIxLmNydCBrZXlfZmlsZT1kYXRhX2ZpbGVzL2VjZHNhX3NlY3AyNTZyMS5rZXkgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQ0hBQ0hBMjAtUE9MWTEzMDUtU0hBMjU2IHNpZ19hbGdzPWVjZHNhX3NlY3AyNTZyMV9zaGEyNTYgZ3JvdXBzPXNlY3AzODRyMSB0bHMxM19rZXhfbW9kZXM9ZXBoZW1lcmFsIGNvb2tpZXM9MCB0aWNrZXRzPTAiIFwKLSAgICAgICAgICIkR19ORVhUX0NMSV9OT19DRVJUIC0tZGVidWc9NCAtLXNpbmdsZS1rZXktc2hhcmUgLS14NTA5Y2FmaWxlIGRhdGFfZmlsZXMvdGVzdC1jYTIuY3J0IC0tcHJpb3JpdHk9Tk9ORTorQ0hBQ0hBMjAtUE9MWTEzMDU6K1NIQTI1NjorQUVBRDorU0lHTi1FQ0RTQS1TRUNQMjU2UjEtU0hBMjU2OitHUk9VUC1TRUNQMzg0UjE6K1ZFUlMtVExTMS4zOiVOT19USUNLRVRTIiBcCisgICAgICAgICAiJFBfU1JWIGNydF9maWxlPSREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDI1NnIxLmNydCBrZXlfZmlsZT0kREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3AyNTZyMS5rZXkgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQ0hBQ0hBMjAtUE9MWTEzMDUtU0hBMjU2IHNpZ19hbGdzPWVjZHNhX3NlY3AyNTZyMV9zaGEyNTYgZ3JvdXBzPXNlY3AzODRyMSB0bHMxM19rZXhfbW9kZXM9ZXBoZW1lcmFsIGNvb2tpZXM9MCB0aWNrZXRzPTAiIFwKKyAgICAgICAgICIkR19ORVhUX0NMSV9OT19DRVJUIC0tZGVidWc9NCAtLXNpbmdsZS1rZXktc2hhcmUgLS14NTA5Y2FmaWxlICREQVRBX0ZJTEVTX1BBVEgvdGVzdC1jYTIuY3J0IC0tcHJpb3JpdHk9Tk9ORTorQ0hBQ0hBMjAtUE9MWTEzMDU6K1NIQTI1NjorQUVBRDorU0lHTi1FQ0RTQS1TRUNQMjU2UjEtU0hBMjU2OitHUk9VUC1TRUNQMzg0UjE6K1ZFUlMtVExTMS4zOiVOT19USUNLRVRTIiBcCiAgICAgICAgICAwIFwKICAgICAgICAgIC1zICJQcm90b2NvbCBpcyBUTFN2MS4zIiBcCiAgICAgICAgICAtcyAic2VydmVyIGhlbGxvLCBjaG9zZW4gY2lwaGVyc3VpdGU6IFRMUzEtMy1DSEFDSEEyMC1QT0xZMTMwNS1TSEEyNTYgKCBpZD00ODY3ICkiIFwKQEAgLTMxNDAsOCArMzE0Miw4IEBACiByZXF1aXJlc19nbnV0bHNfbmV4dF9ub190aWNrZXQKIHJlcXVpcmVzX2dudXRsc19uZXh0X2Rpc2FibGVfdGxzMTNfY29tcGF0CiBydW5fdGVzdCAiVExTIDEuMyBHLT5tOiBDSEFDSEEyMF9QT0xZMTMwNV9TSEEyNTYsc2VjcDM4NHIxLGVjZHNhX3NlY3AzODRyMV9zaGEzODQiIFwKLSAgICAgICAgICIkUF9TUlYgY3J0X2ZpbGU9ZGF0YV9maWxlcy9lY2RzYV9zZWNwMzg0cjEuY3J0IGtleV9maWxlPWRhdGFfZmlsZXMvZWNkc2Ffc2VjcDM4NHIxLmtleSBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1DSEFDSEEyMC1QT0xZMTMwNS1TSEEyNTYgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDM4NHIxX3NoYTM4NCBncm91cHM9c2VjcDM4NHIxIHRsczEzX2tleF9tb2Rlcz1lcGhlbWVyYWwgY29va2llcz0wIHRpY2tldHM9MCIgXAotICAgICAgICAgIiRHX05FWFRfQ0xJX05PX0NFUlQgLS1kZWJ1Zz00IC0tc2luZ2xlLWtleS1zaGFyZSAtLXg1MDljYWZpbGUgZGF0YV9maWxlcy90ZXN0LWNhMi5jcnQgLS1wcmlvcml0eT1OT05FOitDSEFDSEEyMC1QT0xZMTMwNTorU0hBMjU2OitBRUFEOitTSUdOLUVDRFNBLVNFQ1AzODRSMS1TSEEzODQ6K0dST1VQLVNFQ1AzODRSMTorVkVSUy1UTFMxLjM6JU5PX1RJQ0tFVFMiIFwKKyAgICAgICAgICIkUF9TUlYgY3J0X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwMzg0cjEuY3J0IGtleV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDM4NHIxLmtleSBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1DSEFDSEEyMC1QT0xZMTMwNS1TSEEyNTYgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDM4NHIxX3NoYTM4NCBncm91cHM9c2VjcDM4NHIxIHRsczEzX2tleF9tb2Rlcz1lcGhlbWVyYWwgY29va2llcz0wIHRpY2tldHM9MCIgXAorICAgICAgICAgIiRHX05FWFRfQ0xJX05PX0NFUlQgLS1kZWJ1Zz00IC0tc2luZ2xlLWtleS1zaGFyZSAtLXg1MDljYWZpbGUgJERBVEFfRklMRVNfUEFUSC90ZXN0LWNhMi5jcnQgLS1wcmlvcml0eT1OT05FOitDSEFDSEEyMC1QT0xZMTMwNTorU0hBMjU2OitBRUFEOitTSUdOLUVDRFNBLVNFQ1AzODRSMS1TSEEzODQ6K0dST1VQLVNFQ1AzODRSMTorVkVSUy1UTFMxLjM6JU5PX1RJQ0tFVFMiIFwKICAgICAgICAgIDAgXAogICAgICAgICAgLXMgIlByb3RvY29sIGlzIFRMU3YxLjMiIFwKICAgICAgICAgIC1zICJzZXJ2ZXIgaGVsbG8sIGNob3NlbiBjaXBoZXJzdWl0ZTogVExTMS0zLUNIQUNIQTIwLVBPTFkxMzA1LVNIQTI1NiAoIGlkPTQ4NjcgKSIgXApAQCAtMzE1OSw4ICszMTYxLDggQEAKIHJlcXVpcmVzX2dudXRsc19uZXh0X25vX3RpY2tldAogcmVxdWlyZXNfZ251dGxzX25leHRfZGlzYWJsZV90bHMxM19jb21wYXQKIHJ1bl90ZXN0ICJUTFMgMS4zIEctPm06IENIQUNIQTIwX1BPTFkxMzA1X1NIQTI1NixzZWNwMzg0cjEsZWNkc2Ffc2VjcDUyMXIxX3NoYTUxMiIgXAotICAgICAgICAgIiRQX1NSViBjcnRfZmlsZT1kYXRhX2ZpbGVzL2VjZHNhX3NlY3A1MjFyMS5jcnQga2V5X2ZpbGU9ZGF0YV9maWxlcy9lY2RzYV9zZWNwNTIxcjEua2V5IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUNIQUNIQTIwLVBPTFkxMzA1LVNIQTI1NiBzaWdfYWxncz1lY2RzYV9zZWNwNTIxcjFfc2hhNTEyIGdyb3Vwcz1zZWNwMzg0cjEgdGxzMTNfa2V4X21vZGVzPWVwaGVtZXJhbCBjb29raWVzPTAgdGlja2V0cz0wIiBcCi0gICAgICAgICAiJEdfTkVYVF9DTElfTk9fQ0VSVCAtLWRlYnVnPTQgLS1zaW5nbGUta2V5LXNoYXJlIC0teDUwOWNhZmlsZSBkYXRhX2ZpbGVzL3Rlc3QtY2EyLmNydCAtLXByaW9yaXR5PU5PTkU6K0NIQUNIQTIwLVBPTFkxMzA1OitTSEEyNTY6K0FFQUQ6K1NJR04tRUNEU0EtU0VDUDUyMVIxLVNIQTUxMjorR1JPVVAtU0VDUDM4NFIxOitWRVJTLVRMUzEuMzolTk9fVElDS0VUUyIgXAorICAgICAgICAgIiRQX1NSViBjcnRfZmlsZT0kREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3A1MjFyMS5jcnQga2V5X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwNTIxcjEua2V5IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUNIQUNIQTIwLVBPTFkxMzA1LVNIQTI1NiBzaWdfYWxncz1lY2RzYV9zZWNwNTIxcjFfc2hhNTEyIGdyb3Vwcz1zZWNwMzg0cjEgdGxzMTNfa2V4X21vZGVzPWVwaGVtZXJhbCBjb29raWVzPTAgdGlja2V0cz0wIiBcCisgICAgICAgICAiJEdfTkVYVF9DTElfTk9fQ0VSVCAtLWRlYnVnPTQgLS1zaW5nbGUta2V5LXNoYXJlIC0teDUwOWNhZmlsZSAkREFUQV9GSUxFU19QQVRIL3Rlc3QtY2EyLmNydCAtLXByaW9yaXR5PU5PTkU6K0NIQUNIQTIwLVBPTFkxMzA1OitTSEEyNTY6K0FFQUQ6K1NJR04tRUNEU0EtU0VDUDUyMVIxLVNIQTUxMjorR1JPVVAtU0VDUDM4NFIxOitWRVJTLVRMUzEuMzolTk9fVElDS0VUUyIgXAogICAgICAgICAgMCBcCiAgICAgICAgICAtcyAiUHJvdG9jb2wgaXMgVExTdjEuMyIgXAogICAgICAgICAgLXMgInNlcnZlciBoZWxsbywgY2hvc2VuIGNpcGhlcnN1aXRlOiBUTFMxLTMtQ0hBQ0hBMjAtUE9MWTEzMDUtU0hBMjU2ICggaWQ9NDg2NyApIiBcCkBAIC0zMTc5LDggKzMxODEsOCBAQAogcmVxdWlyZXNfZ251dGxzX25leHRfbm9fdGlja2V0CiByZXF1aXJlc19nbnV0bHNfbmV4dF9kaXNhYmxlX3RsczEzX2NvbXBhdAogcnVuX3Rlc3QgIlRMUyAxLjMgRy0+bTogQ0hBQ0hBMjBfUE9MWTEzMDVfU0hBMjU2LHNlY3AzODRyMSxyc2FfcHNzX3JzYWVfc2hhMjU2IiBcCi0gICAgICAgICAiJFBfU1JWIGNydF9maWxlPWRhdGFfZmlsZXMvc2VydmVyMi1zaGEyNTYuY3J0IGtleV9maWxlPWRhdGFfZmlsZXMvc2VydmVyMi5rZXkgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQ0hBQ0hBMjAtUE9MWTEzMDUtU0hBMjU2IHNpZ19hbGdzPXJzYV9wc3NfcnNhZV9zaGEyNTYgZ3JvdXBzPXNlY3AzODRyMSB0bHMxM19rZXhfbW9kZXM9ZXBoZW1lcmFsIGNvb2tpZXM9MCB0aWNrZXRzPTAiIFwKLSAgICAgICAgICIkR19ORVhUX0NMSV9OT19DRVJUIC0tZGVidWc9NCAtLXNpbmdsZS1rZXktc2hhcmUgLS14NTA5Y2FmaWxlIGRhdGFfZmlsZXMvdGVzdC1jYV9jYXQxMi5jcnQgLS1wcmlvcml0eT1OT05FOitDSEFDSEEyMC1QT0xZMTMwNTorU0hBMjU2OitBRUFEOitTSUdOLVJTQS1QU1MtUlNBRS1TSEEyNTY6K0dST1VQLVNFQ1AzODRSMTorVkVSUy1UTFMxLjM6JU5PX1RJQ0tFVFMiIFwKKyAgICAgICAgICIkUF9TUlYgY3J0X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9zZXJ2ZXIyLXNoYTI1Ni5jcnQga2V5X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9zZXJ2ZXIyLmtleSBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1DSEFDSEEyMC1QT0xZMTMwNS1TSEEyNTYgc2lnX2FsZ3M9cnNhX3Bzc19yc2FlX3NoYTI1NiBncm91cHM9c2VjcDM4NHIxIHRsczEzX2tleF9tb2Rlcz1lcGhlbWVyYWwgY29va2llcz0wIHRpY2tldHM9MCIgXAorICAgICAgICAgIiRHX05FWFRfQ0xJX05PX0NFUlQgLS1kZWJ1Zz00IC0tc2luZ2xlLWtleS1zaGFyZSAtLXg1MDljYWZpbGUgJERBVEFfRklMRVNfUEFUSC90ZXN0LWNhX2NhdDEyLmNydCAtLXByaW9yaXR5PU5PTkU6K0NIQUNIQTIwLVBPTFkxMzA1OitTSEEyNTY6K0FFQUQ6K1NJR04tUlNBLVBTUy1SU0FFLVNIQTI1NjorR1JPVVAtU0VDUDM4NFIxOitWRVJTLVRMUzEuMzolTk9fVElDS0VUUyIgXAogICAgICAgICAgMCBcCiAgICAgICAgICAtcyAiUHJvdG9jb2wgaXMgVExTdjEuMyIgXAogICAgICAgICAgLXMgInNlcnZlciBoZWxsbywgY2hvc2VuIGNpcGhlcnN1aXRlOiBUTFMxLTMtQ0hBQ0hBMjAtUE9MWTEzMDUtU0hBMjU2ICggaWQ9NDg2NyApIiBcCkBAIC0zMTk4LDggKzMyMDAsOCBAQAogcmVxdWlyZXNfZ251dGxzX25leHRfbm9fdGlja2V0CiByZXF1aXJlc19nbnV0bHNfbmV4dF9kaXNhYmxlX3RsczEzX2NvbXBhdAogcnVuX3Rlc3QgIlRMUyAxLjMgRy0+bTogQ0hBQ0hBMjBfUE9MWTEzMDVfU0hBMjU2LHNlY3A1MjFyMSxlY2RzYV9zZWNwMjU2cjFfc2hhMjU2IiBcCi0gICAgICAgICAiJFBfU1JWIGNydF9maWxlPWRhdGFfZmlsZXMvZWNkc2Ffc2VjcDI1NnIxLmNydCBrZXlfZmlsZT1kYXRhX2ZpbGVzL2VjZHNhX3NlY3AyNTZyMS5rZXkgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQ0hBQ0hBMjAtUE9MWTEzMDUtU0hBMjU2IHNpZ19hbGdzPWVjZHNhX3NlY3AyNTZyMV9zaGEyNTYgZ3JvdXBzPXNlY3A1MjFyMSB0bHMxM19rZXhfbW9kZXM9ZXBoZW1lcmFsIGNvb2tpZXM9MCB0aWNrZXRzPTAiIFwKLSAgICAgICAgICIkR19ORVhUX0NMSV9OT19DRVJUIC0tZGVidWc9NCAtLXNpbmdsZS1rZXktc2hhcmUgLS14NTA5Y2FmaWxlIGRhdGFfZmlsZXMvdGVzdC1jYTIuY3J0IC0tcHJpb3JpdHk9Tk9ORTorQ0hBQ0hBMjAtUE9MWTEzMDU6K1NIQTI1NjorQUVBRDorU0lHTi1FQ0RTQS1TRUNQMjU2UjEtU0hBMjU2OitHUk9VUC1TRUNQNTIxUjE6K1ZFUlMtVExTMS4zOiVOT19USUNLRVRTIiBcCisgICAgICAgICAiJFBfU1JWIGNydF9maWxlPSREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDI1NnIxLmNydCBrZXlfZmlsZT0kREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3AyNTZyMS5rZXkgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQ0hBQ0hBMjAtUE9MWTEzMDUtU0hBMjU2IHNpZ19hbGdzPWVjZHNhX3NlY3AyNTZyMV9zaGEyNTYgZ3JvdXBzPXNlY3A1MjFyMSB0bHMxM19rZXhfbW9kZXM9ZXBoZW1lcmFsIGNvb2tpZXM9MCB0aWNrZXRzPTAiIFwKKyAgICAgICAgICIkR19ORVhUX0NMSV9OT19DRVJUIC0tZGVidWc9NCAtLXNpbmdsZS1rZXktc2hhcmUgLS14NTA5Y2FmaWxlICREQVRBX0ZJTEVTX1BBVEgvdGVzdC1jYTIuY3J0IC0tcHJpb3JpdHk9Tk9ORTorQ0hBQ0hBMjAtUE9MWTEzMDU6K1NIQTI1NjorQUVBRDorU0lHTi1FQ0RTQS1TRUNQMjU2UjEtU0hBMjU2OitHUk9VUC1TRUNQNTIxUjE6K1ZFUlMtVExTMS4zOiVOT19USUNLRVRTIiBcCiAgICAgICAgICAwIFwKICAgICAgICAgIC1zICJQcm90b2NvbCBpcyBUTFN2MS4zIiBcCiAgICAgICAgICAtcyAic2VydmVyIGhlbGxvLCBjaG9zZW4gY2lwaGVyc3VpdGU6IFRMUzEtMy1DSEFDSEEyMC1QT0xZMTMwNS1TSEEyNTYgKCBpZD00ODY3ICkiIFwKQEAgLTMyMTcsOCArMzIxOSw4IEBACiByZXF1aXJlc19nbnV0bHNfbmV4dF9ub190aWNrZXQKIHJlcXVpcmVzX2dudXRsc19uZXh0X2Rpc2FibGVfdGxzMTNfY29tcGF0CiBydW5fdGVzdCAiVExTIDEuMyBHLT5tOiBDSEFDSEEyMF9QT0xZMTMwNV9TSEEyNTYsc2VjcDUyMXIxLGVjZHNhX3NlY3AzODRyMV9zaGEzODQiIFwKLSAgICAgICAgICIkUF9TUlYgY3J0X2ZpbGU9ZGF0YV9maWxlcy9lY2RzYV9zZWNwMzg0cjEuY3J0IGtleV9maWxlPWRhdGFfZmlsZXMvZWNkc2Ffc2VjcDM4NHIxLmtleSBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1DSEFDSEEyMC1QT0xZMTMwNS1TSEEyNTYgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDM4NHIxX3NoYTM4NCBncm91cHM9c2VjcDUyMXIxIHRsczEzX2tleF9tb2Rlcz1lcGhlbWVyYWwgY29va2llcz0wIHRpY2tldHM9MCIgXAotICAgICAgICAgIiRHX05FWFRfQ0xJX05PX0NFUlQgLS1kZWJ1Zz00IC0tc2luZ2xlLWtleS1zaGFyZSAtLXg1MDljYWZpbGUgZGF0YV9maWxlcy90ZXN0LWNhMi5jcnQgLS1wcmlvcml0eT1OT05FOitDSEFDSEEyMC1QT0xZMTMwNTorU0hBMjU2OitBRUFEOitTSUdOLUVDRFNBLVNFQ1AzODRSMS1TSEEzODQ6K0dST1VQLVNFQ1A1MjFSMTorVkVSUy1UTFMxLjM6JU5PX1RJQ0tFVFMiIFwKKyAgICAgICAgICIkUF9TUlYgY3J0X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwMzg0cjEuY3J0IGtleV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDM4NHIxLmtleSBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1DSEFDSEEyMC1QT0xZMTMwNS1TSEEyNTYgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDM4NHIxX3NoYTM4NCBncm91cHM9c2VjcDUyMXIxIHRsczEzX2tleF9tb2Rlcz1lcGhlbWVyYWwgY29va2llcz0wIHRpY2tldHM9MCIgXAorICAgICAgICAgIiRHX05FWFRfQ0xJX05PX0NFUlQgLS1kZWJ1Zz00IC0tc2luZ2xlLWtleS1zaGFyZSAtLXg1MDljYWZpbGUgJERBVEFfRklMRVNfUEFUSC90ZXN0LWNhMi5jcnQgLS1wcmlvcml0eT1OT05FOitDSEFDSEEyMC1QT0xZMTMwNTorU0hBMjU2OitBRUFEOitTSUdOLUVDRFNBLVNFQ1AzODRSMS1TSEEzODQ6K0dST1VQLVNFQ1A1MjFSMTorVkVSUy1UTFMxLjM6JU5PX1RJQ0tFVFMiIFwKICAgICAgICAgIDAgXAogICAgICAgICAgLXMgIlByb3RvY29sIGlzIFRMU3YxLjMiIFwKICAgICAgICAgIC1zICJzZXJ2ZXIgaGVsbG8sIGNob3NlbiBjaXBoZXJzdWl0ZTogVExTMS0zLUNIQUNIQTIwLVBPTFkxMzA1LVNIQTI1NiAoIGlkPTQ4NjcgKSIgXApAQCAtMzIzNiw4ICszMjM4LDggQEAKIHJlcXVpcmVzX2dudXRsc19uZXh0X25vX3RpY2tldAogcmVxdWlyZXNfZ251dGxzX25leHRfZGlzYWJsZV90bHMxM19jb21wYXQKIHJ1bl90ZXN0ICJUTFMgMS4zIEctPm06IENIQUNIQTIwX1BPTFkxMzA1X1NIQTI1NixzZWNwNTIxcjEsZWNkc2Ffc2VjcDUyMXIxX3NoYTUxMiIgXAotICAgICAgICAgIiRQX1NSViBjcnRfZmlsZT1kYXRhX2ZpbGVzL2VjZHNhX3NlY3A1MjFyMS5jcnQga2V5X2ZpbGU9ZGF0YV9maWxlcy9lY2RzYV9zZWNwNTIxcjEua2V5IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUNIQUNIQTIwLVBPTFkxMzA1LVNIQTI1NiBzaWdfYWxncz1lY2RzYV9zZWNwNTIxcjFfc2hhNTEyIGdyb3Vwcz1zZWNwNTIxcjEgdGxzMTNfa2V4X21vZGVzPWVwaGVtZXJhbCBjb29raWVzPTAgdGlja2V0cz0wIiBcCi0gICAgICAgICAiJEdfTkVYVF9DTElfTk9fQ0VSVCAtLWRlYnVnPTQgLS1zaW5nbGUta2V5LXNoYXJlIC0teDUwOWNhZmlsZSBkYXRhX2ZpbGVzL3Rlc3QtY2EyLmNydCAtLXByaW9yaXR5PU5PTkU6K0NIQUNIQTIwLVBPTFkxMzA1OitTSEEyNTY6K0FFQUQ6K1NJR04tRUNEU0EtU0VDUDUyMVIxLVNIQTUxMjorR1JPVVAtU0VDUDUyMVIxOitWRVJTLVRMUzEuMzolTk9fVElDS0VUUyIgXAorICAgICAgICAgIiRQX1NSViBjcnRfZmlsZT0kREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3A1MjFyMS5jcnQga2V5X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwNTIxcjEua2V5IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUNIQUNIQTIwLVBPTFkxMzA1LVNIQTI1NiBzaWdfYWxncz1lY2RzYV9zZWNwNTIxcjFfc2hhNTEyIGdyb3Vwcz1zZWNwNTIxcjEgdGxzMTNfa2V4X21vZGVzPWVwaGVtZXJhbCBjb29raWVzPTAgdGlja2V0cz0wIiBcCisgICAgICAgICAiJEdfTkVYVF9DTElfTk9fQ0VSVCAtLWRlYnVnPTQgLS1zaW5nbGUta2V5LXNoYXJlIC0teDUwOWNhZmlsZSAkREFUQV9GSUxFU19QQVRIL3Rlc3QtY2EyLmNydCAtLXByaW9yaXR5PU5PTkU6K0NIQUNIQTIwLVBPTFkxMzA1OitTSEEyNTY6K0FFQUQ6K1NJR04tRUNEU0EtU0VDUDUyMVIxLVNIQTUxMjorR1JPVVAtU0VDUDUyMVIxOitWRVJTLVRMUzEuMzolTk9fVElDS0VUUyIgXAogICAgICAgICAgMCBcCiAgICAgICAgICAtcyAiUHJvdG9jb2wgaXMgVExTdjEuMyIgXAogICAgICAgICAgLXMgInNlcnZlciBoZWxsbywgY2hvc2VuIGNpcGhlcnN1aXRlOiBUTFMxLTMtQ0hBQ0hBMjAtUE9MWTEzMDUtU0hBMjU2ICggaWQ9NDg2NyApIiBcCkBAIC0zMjU2LDggKzMyNTgsOCBAQAogcmVxdWlyZXNfZ251dGxzX25leHRfbm9fdGlja2V0CiByZXF1aXJlc19nbnV0bHNfbmV4dF9kaXNhYmxlX3RsczEzX2NvbXBhdAogcnVuX3Rlc3QgIlRMUyAxLjMgRy0+bTogQ0hBQ0hBMjBfUE9MWTEzMDVfU0hBMjU2LHNlY3A1MjFyMSxyc2FfcHNzX3JzYWVfc2hhMjU2IiBcCi0gICAgICAgICAiJFBfU1JWIGNydF9maWxlPWRhdGFfZmlsZXMvc2VydmVyMi1zaGEyNTYuY3J0IGtleV9maWxlPWRhdGFfZmlsZXMvc2VydmVyMi5rZXkgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQ0hBQ0hBMjAtUE9MWTEzMDUtU0hBMjU2IHNpZ19hbGdzPXJzYV9wc3NfcnNhZV9zaGEyNTYgZ3JvdXBzPXNlY3A1MjFyMSB0bHMxM19rZXhfbW9kZXM9ZXBoZW1lcmFsIGNvb2tpZXM9MCB0aWNrZXRzPTAiIFwKLSAgICAgICAgICIkR19ORVhUX0NMSV9OT19DRVJUIC0tZGVidWc9NCAtLXNpbmdsZS1rZXktc2hhcmUgLS14NTA5Y2FmaWxlIGRhdGFfZmlsZXMvdGVzdC1jYV9jYXQxMi5jcnQgLS1wcmlvcml0eT1OT05FOitDSEFDSEEyMC1QT0xZMTMwNTorU0hBMjU2OitBRUFEOitTSUdOLVJTQS1QU1MtUlNBRS1TSEEyNTY6K0dST1VQLVNFQ1A1MjFSMTorVkVSUy1UTFMxLjM6JU5PX1RJQ0tFVFMiIFwKKyAgICAgICAgICIkUF9TUlYgY3J0X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9zZXJ2ZXIyLXNoYTI1Ni5jcnQga2V5X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9zZXJ2ZXIyLmtleSBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1DSEFDSEEyMC1QT0xZMTMwNS1TSEEyNTYgc2lnX2FsZ3M9cnNhX3Bzc19yc2FlX3NoYTI1NiBncm91cHM9c2VjcDUyMXIxIHRsczEzX2tleF9tb2Rlcz1lcGhlbWVyYWwgY29va2llcz0wIHRpY2tldHM9MCIgXAorICAgICAgICAgIiRHX05FWFRfQ0xJX05PX0NFUlQgLS1kZWJ1Zz00IC0tc2luZ2xlLWtleS1zaGFyZSAtLXg1MDljYWZpbGUgJERBVEFfRklMRVNfUEFUSC90ZXN0LWNhX2NhdDEyLmNydCAtLXByaW9yaXR5PU5PTkU6K0NIQUNIQTIwLVBPTFkxMzA1OitTSEEyNTY6K0FFQUQ6K1NJR04tUlNBLVBTUy1SU0FFLVNIQTI1NjorR1JPVVAtU0VDUDUyMVIxOitWRVJTLVRMUzEuMzolTk9fVElDS0VUUyIgXAogICAgICAgICAgMCBcCiAgICAgICAgICAtcyAiUHJvdG9jb2wgaXMgVExTdjEuMyIgXAogICAgICAgICAgLXMgInNlcnZlciBoZWxsbywgY2hvc2VuIGNpcGhlcnN1aXRlOiBUTFMxLTMtQ0hBQ0hBMjAtUE9MWTEzMDUtU0hBMjU2ICggaWQ9NDg2NyApIiBcCkBAIC0zMjc1LDggKzMyNzcsOCBAQAogcmVxdWlyZXNfZ251dGxzX25leHRfbm9fdGlja2V0CiByZXF1aXJlc19nbnV0bHNfbmV4dF9kaXNhYmxlX3RsczEzX2NvbXBhdAogcnVuX3Rlc3QgIlRMUyAxLjMgRy0+bTogQ0hBQ0hBMjBfUE9MWTEzMDVfU0hBMjU2LHgyNTUxOSxlY2RzYV9zZWNwMjU2cjFfc2hhMjU2IiBcCi0gICAgICAgICAiJFBfU1JWIGNydF9maWxlPWRhdGFfZmlsZXMvZWNkc2Ffc2VjcDI1NnIxLmNydCBrZXlfZmlsZT1kYXRhX2ZpbGVzL2VjZHNhX3NlY3AyNTZyMS5rZXkgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQ0hBQ0hBMjAtUE9MWTEzMDUtU0hBMjU2IHNpZ19hbGdzPWVjZHNhX3NlY3AyNTZyMV9zaGEyNTYgZ3JvdXBzPXgyNTUxOSB0bHMxM19rZXhfbW9kZXM9ZXBoZW1lcmFsIGNvb2tpZXM9MCB0aWNrZXRzPTAiIFwKLSAgICAgICAgICIkR19ORVhUX0NMSV9OT19DRVJUIC0tZGVidWc9NCAtLXNpbmdsZS1rZXktc2hhcmUgLS14NTA5Y2FmaWxlIGRhdGFfZmlsZXMvdGVzdC1jYTIuY3J0IC0tcHJpb3JpdHk9Tk9ORTorQ0hBQ0hBMjAtUE9MWTEzMDU6K1NIQTI1NjorQUVBRDorU0lHTi1FQ0RTQS1TRUNQMjU2UjEtU0hBMjU2OitHUk9VUC1YMjU1MTk6K1ZFUlMtVExTMS4zOiVOT19USUNLRVRTIiBcCisgICAgICAgICAiJFBfU1JWIGNydF9maWxlPSREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDI1NnIxLmNydCBrZXlfZmlsZT0kREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3AyNTZyMS5rZXkgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQ0hBQ0hBMjAtUE9MWTEzMDUtU0hBMjU2IHNpZ19hbGdzPWVjZHNhX3NlY3AyNTZyMV9zaGEyNTYgZ3JvdXBzPXgyNTUxOSB0bHMxM19rZXhfbW9kZXM9ZXBoZW1lcmFsIGNvb2tpZXM9MCB0aWNrZXRzPTAiIFwKKyAgICAgICAgICIkR19ORVhUX0NMSV9OT19DRVJUIC0tZGVidWc9NCAtLXNpbmdsZS1rZXktc2hhcmUgLS14NTA5Y2FmaWxlICREQVRBX0ZJTEVTX1BBVEgvdGVzdC1jYTIuY3J0IC0tcHJpb3JpdHk9Tk9ORTorQ0hBQ0hBMjAtUE9MWTEzMDU6K1NIQTI1NjorQUVBRDorU0lHTi1FQ0RTQS1TRUNQMjU2UjEtU0hBMjU2OitHUk9VUC1YMjU1MTk6K1ZFUlMtVExTMS4zOiVOT19USUNLRVRTIiBcCiAgICAgICAgICAwIFwKICAgICAgICAgIC1zICJQcm90b2NvbCBpcyBUTFN2MS4zIiBcCiAgICAgICAgICAtcyAic2VydmVyIGhlbGxvLCBjaG9zZW4gY2lwaGVyc3VpdGU6IFRMUzEtMy1DSEFDSEEyMC1QT0xZMTMwNS1TSEEyNTYgKCBpZD00ODY3ICkiIFwKQEAgLTMyOTQsOCArMzI5Niw4IEBACiByZXF1aXJlc19nbnV0bHNfbmV4dF9ub190aWNrZXQKIHJlcXVpcmVzX2dudXRsc19uZXh0X2Rpc2FibGVfdGxzMTNfY29tcGF0CiBydW5fdGVzdCAiVExTIDEuMyBHLT5tOiBDSEFDSEEyMF9QT0xZMTMwNV9TSEEyNTYseDI1NTE5LGVjZHNhX3NlY3AzODRyMV9zaGEzODQiIFwKLSAgICAgICAgICIkUF9TUlYgY3J0X2ZpbGU9ZGF0YV9maWxlcy9lY2RzYV9zZWNwMzg0cjEuY3J0IGtleV9maWxlPWRhdGFfZmlsZXMvZWNkc2Ffc2VjcDM4NHIxLmtleSBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1DSEFDSEEyMC1QT0xZMTMwNS1TSEEyNTYgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDM4NHIxX3NoYTM4NCBncm91cHM9eDI1NTE5IHRsczEzX2tleF9tb2Rlcz1lcGhlbWVyYWwgY29va2llcz0wIHRpY2tldHM9MCIgXAotICAgICAgICAgIiRHX05FWFRfQ0xJX05PX0NFUlQgLS1kZWJ1Zz00IC0tc2luZ2xlLWtleS1zaGFyZSAtLXg1MDljYWZpbGUgZGF0YV9maWxlcy90ZXN0LWNhMi5jcnQgLS1wcmlvcml0eT1OT05FOitDSEFDSEEyMC1QT0xZMTMwNTorU0hBMjU2OitBRUFEOitTSUdOLUVDRFNBLVNFQ1AzODRSMS1TSEEzODQ6K0dST1VQLVgyNTUxOTorVkVSUy1UTFMxLjM6JU5PX1RJQ0tFVFMiIFwKKyAgICAgICAgICIkUF9TUlYgY3J0X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwMzg0cjEuY3J0IGtleV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDM4NHIxLmtleSBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1DSEFDSEEyMC1QT0xZMTMwNS1TSEEyNTYgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDM4NHIxX3NoYTM4NCBncm91cHM9eDI1NTE5IHRsczEzX2tleF9tb2Rlcz1lcGhlbWVyYWwgY29va2llcz0wIHRpY2tldHM9MCIgXAorICAgICAgICAgIiRHX05FWFRfQ0xJX05PX0NFUlQgLS1kZWJ1Zz00IC0tc2luZ2xlLWtleS1zaGFyZSAtLXg1MDljYWZpbGUgJERBVEFfRklMRVNfUEFUSC90ZXN0LWNhMi5jcnQgLS1wcmlvcml0eT1OT05FOitDSEFDSEEyMC1QT0xZMTMwNTorU0hBMjU2OitBRUFEOitTSUdOLUVDRFNBLVNFQ1AzODRSMS1TSEEzODQ6K0dST1VQLVgyNTUxOTorVkVSUy1UTFMxLjM6JU5PX1RJQ0tFVFMiIFwKICAgICAgICAgIDAgXAogICAgICAgICAgLXMgIlByb3RvY29sIGlzIFRMU3YxLjMiIFwKICAgICAgICAgIC1zICJzZXJ2ZXIgaGVsbG8sIGNob3NlbiBjaXBoZXJzdWl0ZTogVExTMS0zLUNIQUNIQTIwLVBPTFkxMzA1LVNIQTI1NiAoIGlkPTQ4NjcgKSIgXApAQCAtMzMxMyw4ICszMzE1LDggQEAKIHJlcXVpcmVzX2dudXRsc19uZXh0X25vX3RpY2tldAogcmVxdWlyZXNfZ251dGxzX25leHRfZGlzYWJsZV90bHMxM19jb21wYXQKIHJ1bl90ZXN0ICJUTFMgMS4zIEctPm06IENIQUNIQTIwX1BPTFkxMzA1X1NIQTI1Nix4MjU1MTksZWNkc2Ffc2VjcDUyMXIxX3NoYTUxMiIgXAotICAgICAgICAgIiRQX1NSViBjcnRfZmlsZT1kYXRhX2ZpbGVzL2VjZHNhX3NlY3A1MjFyMS5jcnQga2V5X2ZpbGU9ZGF0YV9maWxlcy9lY2RzYV9zZWNwNTIxcjEua2V5IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUNIQUNIQTIwLVBPTFkxMzA1LVNIQTI1NiBzaWdfYWxncz1lY2RzYV9zZWNwNTIxcjFfc2hhNTEyIGdyb3Vwcz14MjU1MTkgdGxzMTNfa2V4X21vZGVzPWVwaGVtZXJhbCBjb29raWVzPTAgdGlja2V0cz0wIiBcCi0gICAgICAgICAiJEdfTkVYVF9DTElfTk9fQ0VSVCAtLWRlYnVnPTQgLS1zaW5nbGUta2V5LXNoYXJlIC0teDUwOWNhZmlsZSBkYXRhX2ZpbGVzL3Rlc3QtY2EyLmNydCAtLXByaW9yaXR5PU5PTkU6K0NIQUNIQTIwLVBPTFkxMzA1OitTSEEyNTY6K0FFQUQ6K1NJR04tRUNEU0EtU0VDUDUyMVIxLVNIQTUxMjorR1JPVVAtWDI1NTE5OitWRVJTLVRMUzEuMzolTk9fVElDS0VUUyIgXAorICAgICAgICAgIiRQX1NSViBjcnRfZmlsZT0kREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3A1MjFyMS5jcnQga2V5X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwNTIxcjEua2V5IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUNIQUNIQTIwLVBPTFkxMzA1LVNIQTI1NiBzaWdfYWxncz1lY2RzYV9zZWNwNTIxcjFfc2hhNTEyIGdyb3Vwcz14MjU1MTkgdGxzMTNfa2V4X21vZGVzPWVwaGVtZXJhbCBjb29raWVzPTAgdGlja2V0cz0wIiBcCisgICAgICAgICAiJEdfTkVYVF9DTElfTk9fQ0VSVCAtLWRlYnVnPTQgLS1zaW5nbGUta2V5LXNoYXJlIC0teDUwOWNhZmlsZSAkREFUQV9GSUxFU19QQVRIL3Rlc3QtY2EyLmNydCAtLXByaW9yaXR5PU5PTkU6K0NIQUNIQTIwLVBPTFkxMzA1OitTSEEyNTY6K0FFQUQ6K1NJR04tRUNEU0EtU0VDUDUyMVIxLVNIQTUxMjorR1JPVVAtWDI1NTE5OitWRVJTLVRMUzEuMzolTk9fVElDS0VUUyIgXAogICAgICAgICAgMCBcCiAgICAgICAgICAtcyAiUHJvdG9jb2wgaXMgVExTdjEuMyIgXAogICAgICAgICAgLXMgInNlcnZlciBoZWxsbywgY2hvc2VuIGNpcGhlcnN1aXRlOiBUTFMxLTMtQ0hBQ0hBMjAtUE9MWTEzMDUtU0hBMjU2ICggaWQ9NDg2NyApIiBcCkBAIC0zMzMzLDggKzMzMzUsOCBAQAogcmVxdWlyZXNfZ251dGxzX25leHRfbm9fdGlja2V0CiByZXF1aXJlc19nbnV0bHNfbmV4dF9kaXNhYmxlX3RsczEzX2NvbXBhdAogcnVuX3Rlc3QgIlRMUyAxLjMgRy0+bTogQ0hBQ0hBMjBfUE9MWTEzMDVfU0hBMjU2LHgyNTUxOSxyc2FfcHNzX3JzYWVfc2hhMjU2IiBcCi0gICAgICAgICAiJFBfU1JWIGNydF9maWxlPWRhdGFfZmlsZXMvc2VydmVyMi1zaGEyNTYuY3J0IGtleV9maWxlPWRhdGFfZmlsZXMvc2VydmVyMi5rZXkgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQ0hBQ0hBMjAtUE9MWTEzMDUtU0hBMjU2IHNpZ19hbGdzPXJzYV9wc3NfcnNhZV9zaGEyNTYgZ3JvdXBzPXgyNTUxOSB0bHMxM19rZXhfbW9kZXM9ZXBoZW1lcmFsIGNvb2tpZXM9MCB0aWNrZXRzPTAiIFwKLSAgICAgICAgICIkR19ORVhUX0NMSV9OT19DRVJUIC0tZGVidWc9NCAtLXNpbmdsZS1rZXktc2hhcmUgLS14NTA5Y2FmaWxlIGRhdGFfZmlsZXMvdGVzdC1jYV9jYXQxMi5jcnQgLS1wcmlvcml0eT1OT05FOitDSEFDSEEyMC1QT0xZMTMwNTorU0hBMjU2OitBRUFEOitTSUdOLVJTQS1QU1MtUlNBRS1TSEEyNTY6K0dST1VQLVgyNTUxOTorVkVSUy1UTFMxLjM6JU5PX1RJQ0tFVFMiIFwKKyAgICAgICAgICIkUF9TUlYgY3J0X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9zZXJ2ZXIyLXNoYTI1Ni5jcnQga2V5X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9zZXJ2ZXIyLmtleSBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1DSEFDSEEyMC1QT0xZMTMwNS1TSEEyNTYgc2lnX2FsZ3M9cnNhX3Bzc19yc2FlX3NoYTI1NiBncm91cHM9eDI1NTE5IHRsczEzX2tleF9tb2Rlcz1lcGhlbWVyYWwgY29va2llcz0wIHRpY2tldHM9MCIgXAorICAgICAgICAgIiRHX05FWFRfQ0xJX05PX0NFUlQgLS1kZWJ1Zz00IC0tc2luZ2xlLWtleS1zaGFyZSAtLXg1MDljYWZpbGUgJERBVEFfRklMRVNfUEFUSC90ZXN0LWNhX2NhdDEyLmNydCAtLXByaW9yaXR5PU5PTkU6K0NIQUNIQTIwLVBPTFkxMzA1OitTSEEyNTY6K0FFQUQ6K1NJR04tUlNBLVBTUy1SU0FFLVNIQTI1NjorR1JPVVAtWDI1NTE5OitWRVJTLVRMUzEuMzolTk9fVElDS0VUUyIgXAogICAgICAgICAgMCBcCiAgICAgICAgICAtcyAiUHJvdG9jb2wgaXMgVExTdjEuMyIgXAogICAgICAgICAgLXMgInNlcnZlciBoZWxsbywgY2hvc2VuIGNpcGhlcnN1aXRlOiBUTFMxLTMtQ0hBQ0hBMjAtUE9MWTEzMDUtU0hBMjU2ICggaWQ9NDg2NyApIiBcCkBAIC0zMzUyLDggKzMzNTQsOCBAQAogcmVxdWlyZXNfZ251dGxzX25leHRfbm9fdGlja2V0CiByZXF1aXJlc19nbnV0bHNfbmV4dF9kaXNhYmxlX3RsczEzX2NvbXBhdAogcnVuX3Rlc3QgIlRMUyAxLjMgRy0+bTogQ0hBQ0hBMjBfUE9MWTEzMDVfU0hBMjU2LHg0NDgsZWNkc2Ffc2VjcDI1NnIxX3NoYTI1NiIgXAotICAgICAgICAgIiRQX1NSViBjcnRfZmlsZT1kYXRhX2ZpbGVzL2VjZHNhX3NlY3AyNTZyMS5jcnQga2V5X2ZpbGU9ZGF0YV9maWxlcy9lY2RzYV9zZWNwMjU2cjEua2V5IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUNIQUNIQTIwLVBPTFkxMzA1LVNIQTI1NiBzaWdfYWxncz1lY2RzYV9zZWNwMjU2cjFfc2hhMjU2IGdyb3Vwcz14NDQ4IHRsczEzX2tleF9tb2Rlcz1lcGhlbWVyYWwgY29va2llcz0wIHRpY2tldHM9MCIgXAotICAgICAgICAgIiRHX05FWFRfQ0xJX05PX0NFUlQgLS1kZWJ1Zz00IC0tc2luZ2xlLWtleS1zaGFyZSAtLXg1MDljYWZpbGUgZGF0YV9maWxlcy90ZXN0LWNhMi5jcnQgLS1wcmlvcml0eT1OT05FOitDSEFDSEEyMC1QT0xZMTMwNTorU0hBMjU2OitBRUFEOitTSUdOLUVDRFNBLVNFQ1AyNTZSMS1TSEEyNTY6K0dST1VQLVg0NDg6K1ZFUlMtVExTMS4zOiVOT19USUNLRVRTIiBcCisgICAgICAgICAiJFBfU1JWIGNydF9maWxlPSREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDI1NnIxLmNydCBrZXlfZmlsZT0kREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3AyNTZyMS5rZXkgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQ0hBQ0hBMjAtUE9MWTEzMDUtU0hBMjU2IHNpZ19hbGdzPWVjZHNhX3NlY3AyNTZyMV9zaGEyNTYgZ3JvdXBzPXg0NDggdGxzMTNfa2V4X21vZGVzPWVwaGVtZXJhbCBjb29raWVzPTAgdGlja2V0cz0wIiBcCisgICAgICAgICAiJEdfTkVYVF9DTElfTk9fQ0VSVCAtLWRlYnVnPTQgLS1zaW5nbGUta2V5LXNoYXJlIC0teDUwOWNhZmlsZSAkREFUQV9GSUxFU19QQVRIL3Rlc3QtY2EyLmNydCAtLXByaW9yaXR5PU5PTkU6K0NIQUNIQTIwLVBPTFkxMzA1OitTSEEyNTY6K0FFQUQ6K1NJR04tRUNEU0EtU0VDUDI1NlIxLVNIQTI1NjorR1JPVVAtWDQ0ODorVkVSUy1UTFMxLjM6JU5PX1RJQ0tFVFMiIFwKICAgICAgICAgIDAgXAogICAgICAgICAgLXMgIlByb3RvY29sIGlzIFRMU3YxLjMiIFwKICAgICAgICAgIC1zICJzZXJ2ZXIgaGVsbG8sIGNob3NlbiBjaXBoZXJzdWl0ZTogVExTMS0zLUNIQUNIQTIwLVBPTFkxMzA1LVNIQTI1NiAoIGlkPTQ4NjcgKSIgXApAQCAtMzM3MSw4ICszMzczLDggQEAKIHJlcXVpcmVzX2dudXRsc19uZXh0X25vX3RpY2tldAogcmVxdWlyZXNfZ251dGxzX25leHRfZGlzYWJsZV90bHMxM19jb21wYXQKIHJ1bl90ZXN0ICJUTFMgMS4zIEctPm06IENIQUNIQTIwX1BPTFkxMzA1X1NIQTI1Nix4NDQ4LGVjZHNhX3NlY3AzODRyMV9zaGEzODQiIFwKLSAgICAgICAgICIkUF9TUlYgY3J0X2ZpbGU9ZGF0YV9maWxlcy9lY2RzYV9zZWNwMzg0cjEuY3J0IGtleV9maWxlPWRhdGFfZmlsZXMvZWNkc2Ffc2VjcDM4NHIxLmtleSBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1DSEFDSEEyMC1QT0xZMTMwNS1TSEEyNTYgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDM4NHIxX3NoYTM4NCBncm91cHM9eDQ0OCB0bHMxM19rZXhfbW9kZXM9ZXBoZW1lcmFsIGNvb2tpZXM9MCB0aWNrZXRzPTAiIFwKLSAgICAgICAgICIkR19ORVhUX0NMSV9OT19DRVJUIC0tZGVidWc9NCAtLXNpbmdsZS1rZXktc2hhcmUgLS14NTA5Y2FmaWxlIGRhdGFfZmlsZXMvdGVzdC1jYTIuY3J0IC0tcHJpb3JpdHk9Tk9ORTorQ0hBQ0hBMjAtUE9MWTEzMDU6K1NIQTI1NjorQUVBRDorU0lHTi1FQ0RTQS1TRUNQMzg0UjEtU0hBMzg0OitHUk9VUC1YNDQ4OitWRVJTLVRMUzEuMzolTk9fVElDS0VUUyIgXAorICAgICAgICAgIiRQX1NSViBjcnRfZmlsZT0kREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3AzODRyMS5jcnQga2V5X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwMzg0cjEua2V5IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUNIQUNIQTIwLVBPTFkxMzA1LVNIQTI1NiBzaWdfYWxncz1lY2RzYV9zZWNwMzg0cjFfc2hhMzg0IGdyb3Vwcz14NDQ4IHRsczEzX2tleF9tb2Rlcz1lcGhlbWVyYWwgY29va2llcz0wIHRpY2tldHM9MCIgXAorICAgICAgICAgIiRHX05FWFRfQ0xJX05PX0NFUlQgLS1kZWJ1Zz00IC0tc2luZ2xlLWtleS1zaGFyZSAtLXg1MDljYWZpbGUgJERBVEFfRklMRVNfUEFUSC90ZXN0LWNhMi5jcnQgLS1wcmlvcml0eT1OT05FOitDSEFDSEEyMC1QT0xZMTMwNTorU0hBMjU2OitBRUFEOitTSUdOLUVDRFNBLVNFQ1AzODRSMS1TSEEzODQ6K0dST1VQLVg0NDg6K1ZFUlMtVExTMS4zOiVOT19USUNLRVRTIiBcCiAgICAgICAgICAwIFwKICAgICAgICAgIC1zICJQcm90b2NvbCBpcyBUTFN2MS4zIiBcCiAgICAgICAgICAtcyAic2VydmVyIGhlbGxvLCBjaG9zZW4gY2lwaGVyc3VpdGU6IFRMUzEtMy1DSEFDSEEyMC1QT0xZMTMwNS1TSEEyNTYgKCBpZD00ODY3ICkiIFwKQEAgLTMzOTAsOCArMzM5Miw4IEBACiByZXF1aXJlc19nbnV0bHNfbmV4dF9ub190aWNrZXQKIHJlcXVpcmVzX2dudXRsc19uZXh0X2Rpc2FibGVfdGxzMTNfY29tcGF0CiBydW5fdGVzdCAiVExTIDEuMyBHLT5tOiBDSEFDSEEyMF9QT0xZMTMwNV9TSEEyNTYseDQ0OCxlY2RzYV9zZWNwNTIxcjFfc2hhNTEyIiBcCi0gICAgICAgICAiJFBfU1JWIGNydF9maWxlPWRhdGFfZmlsZXMvZWNkc2Ffc2VjcDUyMXIxLmNydCBrZXlfZmlsZT1kYXRhX2ZpbGVzL2VjZHNhX3NlY3A1MjFyMS5rZXkgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQ0hBQ0hBMjAtUE9MWTEzMDUtU0hBMjU2IHNpZ19hbGdzPWVjZHNhX3NlY3A1MjFyMV9zaGE1MTIgZ3JvdXBzPXg0NDggdGxzMTNfa2V4X21vZGVzPWVwaGVtZXJhbCBjb29raWVzPTAgdGlja2V0cz0wIiBcCi0gICAgICAgICAiJEdfTkVYVF9DTElfTk9fQ0VSVCAtLWRlYnVnPTQgLS1zaW5nbGUta2V5LXNoYXJlIC0teDUwOWNhZmlsZSBkYXRhX2ZpbGVzL3Rlc3QtY2EyLmNydCAtLXByaW9yaXR5PU5PTkU6K0NIQUNIQTIwLVBPTFkxMzA1OitTSEEyNTY6K0FFQUQ6K1NJR04tRUNEU0EtU0VDUDUyMVIxLVNIQTUxMjorR1JPVVAtWDQ0ODorVkVSUy1UTFMxLjM6JU5PX1RJQ0tFVFMiIFwKKyAgICAgICAgICIkUF9TUlYgY3J0X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwNTIxcjEuY3J0IGtleV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDUyMXIxLmtleSBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1DSEFDSEEyMC1QT0xZMTMwNS1TSEEyNTYgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDUyMXIxX3NoYTUxMiBncm91cHM9eDQ0OCB0bHMxM19rZXhfbW9kZXM9ZXBoZW1lcmFsIGNvb2tpZXM9MCB0aWNrZXRzPTAiIFwKKyAgICAgICAgICIkR19ORVhUX0NMSV9OT19DRVJUIC0tZGVidWc9NCAtLXNpbmdsZS1rZXktc2hhcmUgLS14NTA5Y2FmaWxlICREQVRBX0ZJTEVTX1BBVEgvdGVzdC1jYTIuY3J0IC0tcHJpb3JpdHk9Tk9ORTorQ0hBQ0hBMjAtUE9MWTEzMDU6K1NIQTI1NjorQUVBRDorU0lHTi1FQ0RTQS1TRUNQNTIxUjEtU0hBNTEyOitHUk9VUC1YNDQ4OitWRVJTLVRMUzEuMzolTk9fVElDS0VUUyIgXAogICAgICAgICAgMCBcCiAgICAgICAgICAtcyAiUHJvdG9jb2wgaXMgVExTdjEuMyIgXAogICAgICAgICAgLXMgInNlcnZlciBoZWxsbywgY2hvc2VuIGNpcGhlcnN1aXRlOiBUTFMxLTMtQ0hBQ0hBMjAtUE9MWTEzMDUtU0hBMjU2ICggaWQ9NDg2NyApIiBcCkBAIC0zNDEwLDggKzM0MTIsOCBAQAogcmVxdWlyZXNfZ251dGxzX25leHRfbm9fdGlja2V0CiByZXF1aXJlc19nbnV0bHNfbmV4dF9kaXNhYmxlX3RsczEzX2NvbXBhdAogcnVuX3Rlc3QgIlRMUyAxLjMgRy0+bTogQ0hBQ0hBMjBfUE9MWTEzMDVfU0hBMjU2LHg0NDgscnNhX3Bzc19yc2FlX3NoYTI1NiIgXAotICAgICAgICAgIiRQX1NSViBjcnRfZmlsZT1kYXRhX2ZpbGVzL3NlcnZlcjItc2hhMjU2LmNydCBrZXlfZmlsZT1kYXRhX2ZpbGVzL3NlcnZlcjIua2V5IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUNIQUNIQTIwLVBPTFkxMzA1LVNIQTI1NiBzaWdfYWxncz1yc2FfcHNzX3JzYWVfc2hhMjU2IGdyb3Vwcz14NDQ4IHRsczEzX2tleF9tb2Rlcz1lcGhlbWVyYWwgY29va2llcz0wIHRpY2tldHM9MCIgXAotICAgICAgICAgIiRHX05FWFRfQ0xJX05PX0NFUlQgLS1kZWJ1Zz00IC0tc2luZ2xlLWtleS1zaGFyZSAtLXg1MDljYWZpbGUgZGF0YV9maWxlcy90ZXN0LWNhX2NhdDEyLmNydCAtLXByaW9yaXR5PU5PTkU6K0NIQUNIQTIwLVBPTFkxMzA1OitTSEEyNTY6K0FFQUQ6K1NJR04tUlNBLVBTUy1SU0FFLVNIQTI1NjorR1JPVVAtWDQ0ODorVkVSUy1UTFMxLjM6JU5PX1RJQ0tFVFMiIFwKKyAgICAgICAgICIkUF9TUlYgY3J0X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9zZXJ2ZXIyLXNoYTI1Ni5jcnQga2V5X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9zZXJ2ZXIyLmtleSBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1DSEFDSEEyMC1QT0xZMTMwNS1TSEEyNTYgc2lnX2FsZ3M9cnNhX3Bzc19yc2FlX3NoYTI1NiBncm91cHM9eDQ0OCB0bHMxM19rZXhfbW9kZXM9ZXBoZW1lcmFsIGNvb2tpZXM9MCB0aWNrZXRzPTAiIFwKKyAgICAgICAgICIkR19ORVhUX0NMSV9OT19DRVJUIC0tZGVidWc9NCAtLXNpbmdsZS1rZXktc2hhcmUgLS14NTA5Y2FmaWxlICREQVRBX0ZJTEVTX1BBVEgvdGVzdC1jYV9jYXQxMi5jcnQgLS1wcmlvcml0eT1OT05FOitDSEFDSEEyMC1QT0xZMTMwNTorU0hBMjU2OitBRUFEOitTSUdOLVJTQS1QU1MtUlNBRS1TSEEyNTY6K0dST1VQLVg0NDg6K1ZFUlMtVExTMS4zOiVOT19USUNLRVRTIiBcCiAgICAgICAgICAwIFwKICAgICAgICAgIC1zICJQcm90b2NvbCBpcyBUTFN2MS4zIiBcCiAgICAgICAgICAtcyAic2VydmVyIGhlbGxvLCBjaG9zZW4gY2lwaGVyc3VpdGU6IFRMUzEtMy1DSEFDSEEyMC1QT0xZMTMwNS1TSEEyNTYgKCBpZD00ODY3ICkiIFwKQEAgLTM0MzAsOCArMzQzMiw4IEBACiByZXF1aXJlc19nbnV0bHNfbmV4dF9ub190aWNrZXQKIHJlcXVpcmVzX2dudXRsc19uZXh0X2Rpc2FibGVfdGxzMTNfY29tcGF0CiBydW5fdGVzdCAiVExTIDEuMyBHLT5tOiBDSEFDSEEyMF9QT0xZMTMwNV9TSEEyNTYsZmZkaGUyMDQ4LGVjZHNhX3NlY3AyNTZyMV9zaGEyNTYiIFwKLSAgICAgICAgICIkUF9TUlYgY3J0X2ZpbGU9ZGF0YV9maWxlcy9lY2RzYV9zZWNwMjU2cjEuY3J0IGtleV9maWxlPWRhdGFfZmlsZXMvZWNkc2Ffc2VjcDI1NnIxLmtleSBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1DSEFDSEEyMC1QT0xZMTMwNS1TSEEyNTYgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDI1NnIxX3NoYTI1NiBncm91cHM9ZmZkaGUyMDQ4IHRsczEzX2tleF9tb2Rlcz1lcGhlbWVyYWwgY29va2llcz0wIHRpY2tldHM9MCIgXAotICAgICAgICAgIiRHX05FWFRfQ0xJX05PX0NFUlQgLS1kZWJ1Zz00IC0tc2luZ2xlLWtleS1zaGFyZSAtLXg1MDljYWZpbGUgZGF0YV9maWxlcy90ZXN0LWNhMi5jcnQgLS1wcmlvcml0eT1OT05FOitDSEFDSEEyMC1QT0xZMTMwNTorU0hBMjU2OitBRUFEOitTSUdOLUVDRFNBLVNFQ1AyNTZSMS1TSEEyNTY6K0dST1VQLUZGREhFMjA0ODorVkVSUy1UTFMxLjM6JU5PX1RJQ0tFVFMiIFwKKyAgICAgICAgICIkUF9TUlYgY3J0X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwMjU2cjEuY3J0IGtleV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDI1NnIxLmtleSBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1DSEFDSEEyMC1QT0xZMTMwNS1TSEEyNTYgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDI1NnIxX3NoYTI1NiBncm91cHM9ZmZkaGUyMDQ4IHRsczEzX2tleF9tb2Rlcz1lcGhlbWVyYWwgY29va2llcz0wIHRpY2tldHM9MCIgXAorICAgICAgICAgIiRHX05FWFRfQ0xJX05PX0NFUlQgLS1kZWJ1Zz00IC0tc2luZ2xlLWtleS1zaGFyZSAtLXg1MDljYWZpbGUgJERBVEFfRklMRVNfUEFUSC90ZXN0LWNhMi5jcnQgLS1wcmlvcml0eT1OT05FOitDSEFDSEEyMC1QT0xZMTMwNTorU0hBMjU2OitBRUFEOitTSUdOLUVDRFNBLVNFQ1AyNTZSMS1TSEEyNTY6K0dST1VQLUZGREhFMjA0ODorVkVSUy1UTFMxLjM6JU5PX1RJQ0tFVFMiIFwKICAgICAgICAgIDAgXAogICAgICAgICAgLXMgIlByb3RvY29sIGlzIFRMU3YxLjMiIFwKICAgICAgICAgIC1zICJzZXJ2ZXIgaGVsbG8sIGNob3NlbiBjaXBoZXJzdWl0ZTogVExTMS0zLUNIQUNIQTIwLVBPTFkxMzA1LVNIQTI1NiAoIGlkPTQ4NjcgKSIgXApAQCAtMzQ1MCw4ICszNDUyLDggQEAKIHJlcXVpcmVzX2dudXRsc19uZXh0X25vX3RpY2tldAogcmVxdWlyZXNfZ251dGxzX25leHRfZGlzYWJsZV90bHMxM19jb21wYXQKIHJ1bl90ZXN0ICJUTFMgMS4zIEctPm06IENIQUNIQTIwX1BPTFkxMzA1X1NIQTI1NixmZmRoZTIwNDgsZWNkc2Ffc2VjcDM4NHIxX3NoYTM4NCIgXAotICAgICAgICAgIiRQX1NSViBjcnRfZmlsZT1kYXRhX2ZpbGVzL2VjZHNhX3NlY3AzODRyMS5jcnQga2V5X2ZpbGU9ZGF0YV9maWxlcy9lY2RzYV9zZWNwMzg0cjEua2V5IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUNIQUNIQTIwLVBPTFkxMzA1LVNIQTI1NiBzaWdfYWxncz1lY2RzYV9zZWNwMzg0cjFfc2hhMzg0IGdyb3Vwcz1mZmRoZTIwNDggdGxzMTNfa2V4X21vZGVzPWVwaGVtZXJhbCBjb29raWVzPTAgdGlja2V0cz0wIiBcCi0gICAgICAgICAiJEdfTkVYVF9DTElfTk9fQ0VSVCAtLWRlYnVnPTQgLS1zaW5nbGUta2V5LXNoYXJlIC0teDUwOWNhZmlsZSBkYXRhX2ZpbGVzL3Rlc3QtY2EyLmNydCAtLXByaW9yaXR5PU5PTkU6K0NIQUNIQTIwLVBPTFkxMzA1OitTSEEyNTY6K0FFQUQ6K1NJR04tRUNEU0EtU0VDUDM4NFIxLVNIQTM4NDorR1JPVVAtRkZESEUyMDQ4OitWRVJTLVRMUzEuMzolTk9fVElDS0VUUyIgXAorICAgICAgICAgIiRQX1NSViBjcnRfZmlsZT0kREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3AzODRyMS5jcnQga2V5X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwMzg0cjEua2V5IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUNIQUNIQTIwLVBPTFkxMzA1LVNIQTI1NiBzaWdfYWxncz1lY2RzYV9zZWNwMzg0cjFfc2hhMzg0IGdyb3Vwcz1mZmRoZTIwNDggdGxzMTNfa2V4X21vZGVzPWVwaGVtZXJhbCBjb29raWVzPTAgdGlja2V0cz0wIiBcCisgICAgICAgICAiJEdfTkVYVF9DTElfTk9fQ0VSVCAtLWRlYnVnPTQgLS1zaW5nbGUta2V5LXNoYXJlIC0teDUwOWNhZmlsZSAkREFUQV9GSUxFU19QQVRIL3Rlc3QtY2EyLmNydCAtLXByaW9yaXR5PU5PTkU6K0NIQUNIQTIwLVBPTFkxMzA1OitTSEEyNTY6K0FFQUQ6K1NJR04tRUNEU0EtU0VDUDM4NFIxLVNIQTM4NDorR1JPVVAtRkZESEUyMDQ4OitWRVJTLVRMUzEuMzolTk9fVElDS0VUUyIgXAogICAgICAgICAgMCBcCiAgICAgICAgICAtcyAiUHJvdG9jb2wgaXMgVExTdjEuMyIgXAogICAgICAgICAgLXMgInNlcnZlciBoZWxsbywgY2hvc2VuIGNpcGhlcnN1aXRlOiBUTFMxLTMtQ0hBQ0hBMjAtUE9MWTEzMDUtU0hBMjU2ICggaWQ9NDg2NyApIiBcCkBAIC0zNDcwLDggKzM0NzIsOCBAQAogcmVxdWlyZXNfZ251dGxzX25leHRfbm9fdGlja2V0CiByZXF1aXJlc19nbnV0bHNfbmV4dF9kaXNhYmxlX3RsczEzX2NvbXBhdAogcnVuX3Rlc3QgIlRMUyAxLjMgRy0+bTogQ0hBQ0hBMjBfUE9MWTEzMDVfU0hBMjU2LGZmZGhlMjA0OCxlY2RzYV9zZWNwNTIxcjFfc2hhNTEyIiBcCi0gICAgICAgICAiJFBfU1JWIGNydF9maWxlPWRhdGFfZmlsZXMvZWNkc2Ffc2VjcDUyMXIxLmNydCBrZXlfZmlsZT1kYXRhX2ZpbGVzL2VjZHNhX3NlY3A1MjFyMS5rZXkgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQ0hBQ0hBMjAtUE9MWTEzMDUtU0hBMjU2IHNpZ19hbGdzPWVjZHNhX3NlY3A1MjFyMV9zaGE1MTIgZ3JvdXBzPWZmZGhlMjA0OCB0bHMxM19rZXhfbW9kZXM9ZXBoZW1lcmFsIGNvb2tpZXM9MCB0aWNrZXRzPTAiIFwKLSAgICAgICAgICIkR19ORVhUX0NMSV9OT19DRVJUIC0tZGVidWc9NCAtLXNpbmdsZS1rZXktc2hhcmUgLS14NTA5Y2FmaWxlIGRhdGFfZmlsZXMvdGVzdC1jYTIuY3J0IC0tcHJpb3JpdHk9Tk9ORTorQ0hBQ0hBMjAtUE9MWTEzMDU6K1NIQTI1NjorQUVBRDorU0lHTi1FQ0RTQS1TRUNQNTIxUjEtU0hBNTEyOitHUk9VUC1GRkRIRTIwNDg6K1ZFUlMtVExTMS4zOiVOT19USUNLRVRTIiBcCisgICAgICAgICAiJFBfU1JWIGNydF9maWxlPSREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDUyMXIxLmNydCBrZXlfZmlsZT0kREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3A1MjFyMS5rZXkgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQ0hBQ0hBMjAtUE9MWTEzMDUtU0hBMjU2IHNpZ19hbGdzPWVjZHNhX3NlY3A1MjFyMV9zaGE1MTIgZ3JvdXBzPWZmZGhlMjA0OCB0bHMxM19rZXhfbW9kZXM9ZXBoZW1lcmFsIGNvb2tpZXM9MCB0aWNrZXRzPTAiIFwKKyAgICAgICAgICIkR19ORVhUX0NMSV9OT19DRVJUIC0tZGVidWc9NCAtLXNpbmdsZS1rZXktc2hhcmUgLS14NTA5Y2FmaWxlICREQVRBX0ZJTEVTX1BBVEgvdGVzdC1jYTIuY3J0IC0tcHJpb3JpdHk9Tk9ORTorQ0hBQ0hBMjAtUE9MWTEzMDU6K1NIQTI1NjorQUVBRDorU0lHTi1FQ0RTQS1TRUNQNTIxUjEtU0hBNTEyOitHUk9VUC1GRkRIRTIwNDg6K1ZFUlMtVExTMS4zOiVOT19USUNLRVRTIiBcCiAgICAgICAgICAwIFwKICAgICAgICAgIC1zICJQcm90b2NvbCBpcyBUTFN2MS4zIiBcCiAgICAgICAgICAtcyAic2VydmVyIGhlbGxvLCBjaG9zZW4gY2lwaGVyc3VpdGU6IFRMUzEtMy1DSEFDSEEyMC1QT0xZMTMwNS1TSEEyNTYgKCBpZD00ODY3ICkiIFwKQEAgLTM0OTEsOCArMzQ5Myw4IEBACiByZXF1aXJlc19nbnV0bHNfbmV4dF9ub190aWNrZXQKIHJlcXVpcmVzX2dudXRsc19uZXh0X2Rpc2FibGVfdGxzMTNfY29tcGF0CiBydW5fdGVzdCAiVExTIDEuMyBHLT5tOiBDSEFDSEEyMF9QT0xZMTMwNV9TSEEyNTYsZmZkaGUyMDQ4LHJzYV9wc3NfcnNhZV9zaGEyNTYiIFwKLSAgICAgICAgICIkUF9TUlYgY3J0X2ZpbGU9ZGF0YV9maWxlcy9zZXJ2ZXIyLXNoYTI1Ni5jcnQga2V5X2ZpbGU9ZGF0YV9maWxlcy9zZXJ2ZXIyLmtleSBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1DSEFDSEEyMC1QT0xZMTMwNS1TSEEyNTYgc2lnX2FsZ3M9cnNhX3Bzc19yc2FlX3NoYTI1NiBncm91cHM9ZmZkaGUyMDQ4IHRsczEzX2tleF9tb2Rlcz1lcGhlbWVyYWwgY29va2llcz0wIHRpY2tldHM9MCIgXAotICAgICAgICAgIiRHX05FWFRfQ0xJX05PX0NFUlQgLS1kZWJ1Zz00IC0tc2luZ2xlLWtleS1zaGFyZSAtLXg1MDljYWZpbGUgZGF0YV9maWxlcy90ZXN0LWNhX2NhdDEyLmNydCAtLXByaW9yaXR5PU5PTkU6K0NIQUNIQTIwLVBPTFkxMzA1OitTSEEyNTY6K0FFQUQ6K1NJR04tUlNBLVBTUy1SU0FFLVNIQTI1NjorR1JPVVAtRkZESEUyMDQ4OitWRVJTLVRMUzEuMzolTk9fVElDS0VUUyIgXAorICAgICAgICAgIiRQX1NSViBjcnRfZmlsZT0kREFUQV9GSUxFU19QQVRIL3NlcnZlcjItc2hhMjU2LmNydCBrZXlfZmlsZT0kREFUQV9GSUxFU19QQVRIL3NlcnZlcjIua2V5IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUNIQUNIQTIwLVBPTFkxMzA1LVNIQTI1NiBzaWdfYWxncz1yc2FfcHNzX3JzYWVfc2hhMjU2IGdyb3Vwcz1mZmRoZTIwNDggdGxzMTNfa2V4X21vZGVzPWVwaGVtZXJhbCBjb29raWVzPTAgdGlja2V0cz0wIiBcCisgICAgICAgICAiJEdfTkVYVF9DTElfTk9fQ0VSVCAtLWRlYnVnPTQgLS1zaW5nbGUta2V5LXNoYXJlIC0teDUwOWNhZmlsZSAkREFUQV9GSUxFU19QQVRIL3Rlc3QtY2FfY2F0MTIuY3J0IC0tcHJpb3JpdHk9Tk9ORTorQ0hBQ0hBMjAtUE9MWTEzMDU6K1NIQTI1NjorQUVBRDorU0lHTi1SU0EtUFNTLVJTQUUtU0hBMjU2OitHUk9VUC1GRkRIRTIwNDg6K1ZFUlMtVExTMS4zOiVOT19USUNLRVRTIiBcCiAgICAgICAgICAwIFwKICAgICAgICAgIC1zICJQcm90b2NvbCBpcyBUTFN2MS4zIiBcCiAgICAgICAgICAtcyAic2VydmVyIGhlbGxvLCBjaG9zZW4gY2lwaGVyc3VpdGU6IFRMUzEtMy1DSEFDSEEyMC1QT0xZMTMwNS1TSEEyNTYgKCBpZD00ODY3ICkiIFwKQEAgLTM1MTAsOCArMzUxMiw4IEBACiByZXF1aXJlc19nbnV0bHNfbmV4dF9ub190aWNrZXQKIHJlcXVpcmVzX2dudXRsc19uZXh0X2Rpc2FibGVfdGxzMTNfY29tcGF0CiBydW5fdGVzdCAiVExTIDEuMyBHLT5tOiBBRVNfMTI4X0NDTV9TSEEyNTYsc2VjcDI1NnIxLGVjZHNhX3NlY3AyNTZyMV9zaGEyNTYiIFwKLSAgICAgICAgICIkUF9TUlYgY3J0X2ZpbGU9ZGF0YV9maWxlcy9lY2RzYV9zZWNwMjU2cjEuY3J0IGtleV9maWxlPWRhdGFfZmlsZXMvZWNkc2Ffc2VjcDI1NnIxLmtleSBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMTI4LUNDTS1TSEEyNTYgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDI1NnIxX3NoYTI1NiBncm91cHM9c2VjcDI1NnIxIHRsczEzX2tleF9tb2Rlcz1lcGhlbWVyYWwgY29va2llcz0wIHRpY2tldHM9MCIgXAotICAgICAgICAgIiRHX05FWFRfQ0xJX05PX0NFUlQgLS1kZWJ1Zz00IC0tc2luZ2xlLWtleS1zaGFyZSAtLXg1MDljYWZpbGUgZGF0YV9maWxlcy90ZXN0LWNhMi5jcnQgLS1wcmlvcml0eT1OT05FOitBRVMtMTI4LUNDTTorU0hBMjU2OitBRUFEOitTSUdOLUVDRFNBLVNFQ1AyNTZSMS1TSEEyNTY6K0dST1VQLVNFQ1AyNTZSMTorVkVSUy1UTFMxLjM6JU5PX1RJQ0tFVFMiIFwKKyAgICAgICAgICIkUF9TUlYgY3J0X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwMjU2cjEuY3J0IGtleV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDI1NnIxLmtleSBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMTI4LUNDTS1TSEEyNTYgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDI1NnIxX3NoYTI1NiBncm91cHM9c2VjcDI1NnIxIHRsczEzX2tleF9tb2Rlcz1lcGhlbWVyYWwgY29va2llcz0wIHRpY2tldHM9MCIgXAorICAgICAgICAgIiRHX05FWFRfQ0xJX05PX0NFUlQgLS1kZWJ1Zz00IC0tc2luZ2xlLWtleS1zaGFyZSAtLXg1MDljYWZpbGUgJERBVEFfRklMRVNfUEFUSC90ZXN0LWNhMi5jcnQgLS1wcmlvcml0eT1OT05FOitBRVMtMTI4LUNDTTorU0hBMjU2OitBRUFEOitTSUdOLUVDRFNBLVNFQ1AyNTZSMS1TSEEyNTY6K0dST1VQLVNFQ1AyNTZSMTorVkVSUy1UTFMxLjM6JU5PX1RJQ0tFVFMiIFwKICAgICAgICAgIDAgXAogICAgICAgICAgLXMgIlByb3RvY29sIGlzIFRMU3YxLjMiIFwKICAgICAgICAgIC1zICJzZXJ2ZXIgaGVsbG8sIGNob3NlbiBjaXBoZXJzdWl0ZTogVExTMS0zLUFFUy0xMjgtQ0NNLVNIQTI1NiAoIGlkPTQ4NjggKSIgXApAQCAtMzUyOSw4ICszNTMxLDggQEAKIHJlcXVpcmVzX2dudXRsc19uZXh0X25vX3RpY2tldAogcmVxdWlyZXNfZ251dGxzX25leHRfZGlzYWJsZV90bHMxM19jb21wYXQKIHJ1bl90ZXN0ICJUTFMgMS4zIEctPm06IEFFU18xMjhfQ0NNX1NIQTI1NixzZWNwMjU2cjEsZWNkc2Ffc2VjcDM4NHIxX3NoYTM4NCIgXAotICAgICAgICAgIiRQX1NSViBjcnRfZmlsZT1kYXRhX2ZpbGVzL2VjZHNhX3NlY3AzODRyMS5jcnQga2V5X2ZpbGU9ZGF0YV9maWxlcy9lY2RzYV9zZWNwMzg0cjEua2V5IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0xMjgtQ0NNLVNIQTI1NiBzaWdfYWxncz1lY2RzYV9zZWNwMzg0cjFfc2hhMzg0IGdyb3Vwcz1zZWNwMjU2cjEgdGxzMTNfa2V4X21vZGVzPWVwaGVtZXJhbCBjb29raWVzPTAgdGlja2V0cz0wIiBcCi0gICAgICAgICAiJEdfTkVYVF9DTElfTk9fQ0VSVCAtLWRlYnVnPTQgLS1zaW5nbGUta2V5LXNoYXJlIC0teDUwOWNhZmlsZSBkYXRhX2ZpbGVzL3Rlc3QtY2EyLmNydCAtLXByaW9yaXR5PU5PTkU6K0FFUy0xMjgtQ0NNOitTSEEyNTY6K0FFQUQ6K1NJR04tRUNEU0EtU0VDUDM4NFIxLVNIQTM4NDorR1JPVVAtU0VDUDI1NlIxOitWRVJTLVRMUzEuMzolTk9fVElDS0VUUyIgXAorICAgICAgICAgIiRQX1NSViBjcnRfZmlsZT0kREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3AzODRyMS5jcnQga2V5X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwMzg0cjEua2V5IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0xMjgtQ0NNLVNIQTI1NiBzaWdfYWxncz1lY2RzYV9zZWNwMzg0cjFfc2hhMzg0IGdyb3Vwcz1zZWNwMjU2cjEgdGxzMTNfa2V4X21vZGVzPWVwaGVtZXJhbCBjb29raWVzPTAgdGlja2V0cz0wIiBcCisgICAgICAgICAiJEdfTkVYVF9DTElfTk9fQ0VSVCAtLWRlYnVnPTQgLS1zaW5nbGUta2V5LXNoYXJlIC0teDUwOWNhZmlsZSAkREFUQV9GSUxFU19QQVRIL3Rlc3QtY2EyLmNydCAtLXByaW9yaXR5PU5PTkU6K0FFUy0xMjgtQ0NNOitTSEEyNTY6K0FFQUQ6K1NJR04tRUNEU0EtU0VDUDM4NFIxLVNIQTM4NDorR1JPVVAtU0VDUDI1NlIxOitWRVJTLVRMUzEuMzolTk9fVElDS0VUUyIgXAogICAgICAgICAgMCBcCiAgICAgICAgICAtcyAiUHJvdG9jb2wgaXMgVExTdjEuMyIgXAogICAgICAgICAgLXMgInNlcnZlciBoZWxsbywgY2hvc2VuIGNpcGhlcnN1aXRlOiBUTFMxLTMtQUVTLTEyOC1DQ00tU0hBMjU2ICggaWQ9NDg2OCApIiBcCkBAIC0zNTQ4LDggKzM1NTAsOCBAQAogcmVxdWlyZXNfZ251dGxzX25leHRfbm9fdGlja2V0CiByZXF1aXJlc19nbnV0bHNfbmV4dF9kaXNhYmxlX3RsczEzX2NvbXBhdAogcnVuX3Rlc3QgIlRMUyAxLjMgRy0+bTogQUVTXzEyOF9DQ01fU0hBMjU2LHNlY3AyNTZyMSxlY2RzYV9zZWNwNTIxcjFfc2hhNTEyIiBcCi0gICAgICAgICAiJFBfU1JWIGNydF9maWxlPWRhdGFfZmlsZXMvZWNkc2Ffc2VjcDUyMXIxLmNydCBrZXlfZmlsZT1kYXRhX2ZpbGVzL2VjZHNhX3NlY3A1MjFyMS5rZXkgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTEyOC1DQ00tU0hBMjU2IHNpZ19hbGdzPWVjZHNhX3NlY3A1MjFyMV9zaGE1MTIgZ3JvdXBzPXNlY3AyNTZyMSB0bHMxM19rZXhfbW9kZXM9ZXBoZW1lcmFsIGNvb2tpZXM9MCB0aWNrZXRzPTAiIFwKLSAgICAgICAgICIkR19ORVhUX0NMSV9OT19DRVJUIC0tZGVidWc9NCAtLXNpbmdsZS1rZXktc2hhcmUgLS14NTA5Y2FmaWxlIGRhdGFfZmlsZXMvdGVzdC1jYTIuY3J0IC0tcHJpb3JpdHk9Tk9ORTorQUVTLTEyOC1DQ006K1NIQTI1NjorQUVBRDorU0lHTi1FQ0RTQS1TRUNQNTIxUjEtU0hBNTEyOitHUk9VUC1TRUNQMjU2UjE6K1ZFUlMtVExTMS4zOiVOT19USUNLRVRTIiBcCisgICAgICAgICAiJFBfU1JWIGNydF9maWxlPSREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDUyMXIxLmNydCBrZXlfZmlsZT0kREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3A1MjFyMS5rZXkgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTEyOC1DQ00tU0hBMjU2IHNpZ19hbGdzPWVjZHNhX3NlY3A1MjFyMV9zaGE1MTIgZ3JvdXBzPXNlY3AyNTZyMSB0bHMxM19rZXhfbW9kZXM9ZXBoZW1lcmFsIGNvb2tpZXM9MCB0aWNrZXRzPTAiIFwKKyAgICAgICAgICIkR19ORVhUX0NMSV9OT19DRVJUIC0tZGVidWc9NCAtLXNpbmdsZS1rZXktc2hhcmUgLS14NTA5Y2FmaWxlICREQVRBX0ZJTEVTX1BBVEgvdGVzdC1jYTIuY3J0IC0tcHJpb3JpdHk9Tk9ORTorQUVTLTEyOC1DQ006K1NIQTI1NjorQUVBRDorU0lHTi1FQ0RTQS1TRUNQNTIxUjEtU0hBNTEyOitHUk9VUC1TRUNQMjU2UjE6K1ZFUlMtVExTMS4zOiVOT19USUNLRVRTIiBcCiAgICAgICAgICAwIFwKICAgICAgICAgIC1zICJQcm90b2NvbCBpcyBUTFN2MS4zIiBcCiAgICAgICAgICAtcyAic2VydmVyIGhlbGxvLCBjaG9zZW4gY2lwaGVyc3VpdGU6IFRMUzEtMy1BRVMtMTI4LUNDTS1TSEEyNTYgKCBpZD00ODY4ICkiIFwKQEAgLTM1NjgsOCArMzU3MCw4IEBACiByZXF1aXJlc19nbnV0bHNfbmV4dF9ub190aWNrZXQKIHJlcXVpcmVzX2dudXRsc19uZXh0X2Rpc2FibGVfdGxzMTNfY29tcGF0CiBydW5fdGVzdCAiVExTIDEuMyBHLT5tOiBBRVNfMTI4X0NDTV9TSEEyNTYsc2VjcDI1NnIxLHJzYV9wc3NfcnNhZV9zaGEyNTYiIFwKLSAgICAgICAgICIkUF9TUlYgY3J0X2ZpbGU9ZGF0YV9maWxlcy9zZXJ2ZXIyLXNoYTI1Ni5jcnQga2V5X2ZpbGU9ZGF0YV9maWxlcy9zZXJ2ZXIyLmtleSBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMTI4LUNDTS1TSEEyNTYgc2lnX2FsZ3M9cnNhX3Bzc19yc2FlX3NoYTI1NiBncm91cHM9c2VjcDI1NnIxIHRsczEzX2tleF9tb2Rlcz1lcGhlbWVyYWwgY29va2llcz0wIHRpY2tldHM9MCIgXAotICAgICAgICAgIiRHX05FWFRfQ0xJX05PX0NFUlQgLS1kZWJ1Zz00IC0tc2luZ2xlLWtleS1zaGFyZSAtLXg1MDljYWZpbGUgZGF0YV9maWxlcy90ZXN0LWNhX2NhdDEyLmNydCAtLXByaW9yaXR5PU5PTkU6K0FFUy0xMjgtQ0NNOitTSEEyNTY6K0FFQUQ6K1NJR04tUlNBLVBTUy1SU0FFLVNIQTI1NjorR1JPVVAtU0VDUDI1NlIxOitWRVJTLVRMUzEuMzolTk9fVElDS0VUUyIgXAorICAgICAgICAgIiRQX1NSViBjcnRfZmlsZT0kREFUQV9GSUxFU19QQVRIL3NlcnZlcjItc2hhMjU2LmNydCBrZXlfZmlsZT0kREFUQV9GSUxFU19QQVRIL3NlcnZlcjIua2V5IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0xMjgtQ0NNLVNIQTI1NiBzaWdfYWxncz1yc2FfcHNzX3JzYWVfc2hhMjU2IGdyb3Vwcz1zZWNwMjU2cjEgdGxzMTNfa2V4X21vZGVzPWVwaGVtZXJhbCBjb29raWVzPTAgdGlja2V0cz0wIiBcCisgICAgICAgICAiJEdfTkVYVF9DTElfTk9fQ0VSVCAtLWRlYnVnPTQgLS1zaW5nbGUta2V5LXNoYXJlIC0teDUwOWNhZmlsZSAkREFUQV9GSUxFU19QQVRIL3Rlc3QtY2FfY2F0MTIuY3J0IC0tcHJpb3JpdHk9Tk9ORTorQUVTLTEyOC1DQ006K1NIQTI1NjorQUVBRDorU0lHTi1SU0EtUFNTLVJTQUUtU0hBMjU2OitHUk9VUC1TRUNQMjU2UjE6K1ZFUlMtVExTMS4zOiVOT19USUNLRVRTIiBcCiAgICAgICAgICAwIFwKICAgICAgICAgIC1zICJQcm90b2NvbCBpcyBUTFN2MS4zIiBcCiAgICAgICAgICAtcyAic2VydmVyIGhlbGxvLCBjaG9zZW4gY2lwaGVyc3VpdGU6IFRMUzEtMy1BRVMtMTI4LUNDTS1TSEEyNTYgKCBpZD00ODY4ICkiIFwKQEAgLTM1ODcsOCArMzU4OSw4IEBACiByZXF1aXJlc19nbnV0bHNfbmV4dF9ub190aWNrZXQKIHJlcXVpcmVzX2dudXRsc19uZXh0X2Rpc2FibGVfdGxzMTNfY29tcGF0CiBydW5fdGVzdCAiVExTIDEuMyBHLT5tOiBBRVNfMTI4X0NDTV9TSEEyNTYsc2VjcDM4NHIxLGVjZHNhX3NlY3AyNTZyMV9zaGEyNTYiIFwKLSAgICAgICAgICIkUF9TUlYgY3J0X2ZpbGU9ZGF0YV9maWxlcy9lY2RzYV9zZWNwMjU2cjEuY3J0IGtleV9maWxlPWRhdGFfZmlsZXMvZWNkc2Ffc2VjcDI1NnIxLmtleSBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMTI4LUNDTS1TSEEyNTYgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDI1NnIxX3NoYTI1NiBncm91cHM9c2VjcDM4NHIxIHRsczEzX2tleF9tb2Rlcz1lcGhlbWVyYWwgY29va2llcz0wIHRpY2tldHM9MCIgXAotICAgICAgICAgIiRHX05FWFRfQ0xJX05PX0NFUlQgLS1kZWJ1Zz00IC0tc2luZ2xlLWtleS1zaGFyZSAtLXg1MDljYWZpbGUgZGF0YV9maWxlcy90ZXN0LWNhMi5jcnQgLS1wcmlvcml0eT1OT05FOitBRVMtMTI4LUNDTTorU0hBMjU2OitBRUFEOitTSUdOLUVDRFNBLVNFQ1AyNTZSMS1TSEEyNTY6K0dST1VQLVNFQ1AzODRSMTorVkVSUy1UTFMxLjM6JU5PX1RJQ0tFVFMiIFwKKyAgICAgICAgICIkUF9TUlYgY3J0X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwMjU2cjEuY3J0IGtleV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDI1NnIxLmtleSBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMTI4LUNDTS1TSEEyNTYgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDI1NnIxX3NoYTI1NiBncm91cHM9c2VjcDM4NHIxIHRsczEzX2tleF9tb2Rlcz1lcGhlbWVyYWwgY29va2llcz0wIHRpY2tldHM9MCIgXAorICAgICAgICAgIiRHX05FWFRfQ0xJX05PX0NFUlQgLS1kZWJ1Zz00IC0tc2luZ2xlLWtleS1zaGFyZSAtLXg1MDljYWZpbGUgJERBVEFfRklMRVNfUEFUSC90ZXN0LWNhMi5jcnQgLS1wcmlvcml0eT1OT05FOitBRVMtMTI4LUNDTTorU0hBMjU2OitBRUFEOitTSUdOLUVDRFNBLVNFQ1AyNTZSMS1TSEEyNTY6K0dST1VQLVNFQ1AzODRSMTorVkVSUy1UTFMxLjM6JU5PX1RJQ0tFVFMiIFwKICAgICAgICAgIDAgXAogICAgICAgICAgLXMgIlByb3RvY29sIGlzIFRMU3YxLjMiIFwKICAgICAgICAgIC1zICJzZXJ2ZXIgaGVsbG8sIGNob3NlbiBjaXBoZXJzdWl0ZTogVExTMS0zLUFFUy0xMjgtQ0NNLVNIQTI1NiAoIGlkPTQ4NjggKSIgXApAQCAtMzYwNiw4ICszNjA4LDggQEAKIHJlcXVpcmVzX2dudXRsc19uZXh0X25vX3RpY2tldAogcmVxdWlyZXNfZ251dGxzX25leHRfZGlzYWJsZV90bHMxM19jb21wYXQKIHJ1bl90ZXN0ICJUTFMgMS4zIEctPm06IEFFU18xMjhfQ0NNX1NIQTI1NixzZWNwMzg0cjEsZWNkc2Ffc2VjcDM4NHIxX3NoYTM4NCIgXAotICAgICAgICAgIiRQX1NSViBjcnRfZmlsZT1kYXRhX2ZpbGVzL2VjZHNhX3NlY3AzODRyMS5jcnQga2V5X2ZpbGU9ZGF0YV9maWxlcy9lY2RzYV9zZWNwMzg0cjEua2V5IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0xMjgtQ0NNLVNIQTI1NiBzaWdfYWxncz1lY2RzYV9zZWNwMzg0cjFfc2hhMzg0IGdyb3Vwcz1zZWNwMzg0cjEgdGxzMTNfa2V4X21vZGVzPWVwaGVtZXJhbCBjb29raWVzPTAgdGlja2V0cz0wIiBcCi0gICAgICAgICAiJEdfTkVYVF9DTElfTk9fQ0VSVCAtLWRlYnVnPTQgLS1zaW5nbGUta2V5LXNoYXJlIC0teDUwOWNhZmlsZSBkYXRhX2ZpbGVzL3Rlc3QtY2EyLmNydCAtLXByaW9yaXR5PU5PTkU6K0FFUy0xMjgtQ0NNOitTSEEyNTY6K0FFQUQ6K1NJR04tRUNEU0EtU0VDUDM4NFIxLVNIQTM4NDorR1JPVVAtU0VDUDM4NFIxOitWRVJTLVRMUzEuMzolTk9fVElDS0VUUyIgXAorICAgICAgICAgIiRQX1NSViBjcnRfZmlsZT0kREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3AzODRyMS5jcnQga2V5X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwMzg0cjEua2V5IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0xMjgtQ0NNLVNIQTI1NiBzaWdfYWxncz1lY2RzYV9zZWNwMzg0cjFfc2hhMzg0IGdyb3Vwcz1zZWNwMzg0cjEgdGxzMTNfa2V4X21vZGVzPWVwaGVtZXJhbCBjb29raWVzPTAgdGlja2V0cz0wIiBcCisgICAgICAgICAiJEdfTkVYVF9DTElfTk9fQ0VSVCAtLWRlYnVnPTQgLS1zaW5nbGUta2V5LXNoYXJlIC0teDUwOWNhZmlsZSAkREFUQV9GSUxFU19QQVRIL3Rlc3QtY2EyLmNydCAtLXByaW9yaXR5PU5PTkU6K0FFUy0xMjgtQ0NNOitTSEEyNTY6K0FFQUQ6K1NJR04tRUNEU0EtU0VDUDM4NFIxLVNIQTM4NDorR1JPVVAtU0VDUDM4NFIxOitWRVJTLVRMUzEuMzolTk9fVElDS0VUUyIgXAogICAgICAgICAgMCBcCiAgICAgICAgICAtcyAiUHJvdG9jb2wgaXMgVExTdjEuMyIgXAogICAgICAgICAgLXMgInNlcnZlciBoZWxsbywgY2hvc2VuIGNpcGhlcnN1aXRlOiBUTFMxLTMtQUVTLTEyOC1DQ00tU0hBMjU2ICggaWQ9NDg2OCApIiBcCkBAIC0zNjI1LDggKzM2MjcsOCBAQAogcmVxdWlyZXNfZ251dGxzX25leHRfbm9fdGlja2V0CiByZXF1aXJlc19nbnV0bHNfbmV4dF9kaXNhYmxlX3RsczEzX2NvbXBhdAogcnVuX3Rlc3QgIlRMUyAxLjMgRy0+bTogQUVTXzEyOF9DQ01fU0hBMjU2LHNlY3AzODRyMSxlY2RzYV9zZWNwNTIxcjFfc2hhNTEyIiBcCi0gICAgICAgICAiJFBfU1JWIGNydF9maWxlPWRhdGFfZmlsZXMvZWNkc2Ffc2VjcDUyMXIxLmNydCBrZXlfZmlsZT1kYXRhX2ZpbGVzL2VjZHNhX3NlY3A1MjFyMS5rZXkgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTEyOC1DQ00tU0hBMjU2IHNpZ19hbGdzPWVjZHNhX3NlY3A1MjFyMV9zaGE1MTIgZ3JvdXBzPXNlY3AzODRyMSB0bHMxM19rZXhfbW9kZXM9ZXBoZW1lcmFsIGNvb2tpZXM9MCB0aWNrZXRzPTAiIFwKLSAgICAgICAgICIkR19ORVhUX0NMSV9OT19DRVJUIC0tZGVidWc9NCAtLXNpbmdsZS1rZXktc2hhcmUgLS14NTA5Y2FmaWxlIGRhdGFfZmlsZXMvdGVzdC1jYTIuY3J0IC0tcHJpb3JpdHk9Tk9ORTorQUVTLTEyOC1DQ006K1NIQTI1NjorQUVBRDorU0lHTi1FQ0RTQS1TRUNQNTIxUjEtU0hBNTEyOitHUk9VUC1TRUNQMzg0UjE6K1ZFUlMtVExTMS4zOiVOT19USUNLRVRTIiBcCisgICAgICAgICAiJFBfU1JWIGNydF9maWxlPSREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDUyMXIxLmNydCBrZXlfZmlsZT0kREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3A1MjFyMS5rZXkgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTEyOC1DQ00tU0hBMjU2IHNpZ19hbGdzPWVjZHNhX3NlY3A1MjFyMV9zaGE1MTIgZ3JvdXBzPXNlY3AzODRyMSB0bHMxM19rZXhfbW9kZXM9ZXBoZW1lcmFsIGNvb2tpZXM9MCB0aWNrZXRzPTAiIFwKKyAgICAgICAgICIkR19ORVhUX0NMSV9OT19DRVJUIC0tZGVidWc9NCAtLXNpbmdsZS1rZXktc2hhcmUgLS14NTA5Y2FmaWxlICREQVRBX0ZJTEVTX1BBVEgvdGVzdC1jYTIuY3J0IC0tcHJpb3JpdHk9Tk9ORTorQUVTLTEyOC1DQ006K1NIQTI1NjorQUVBRDorU0lHTi1FQ0RTQS1TRUNQNTIxUjEtU0hBNTEyOitHUk9VUC1TRUNQMzg0UjE6K1ZFUlMtVExTMS4zOiVOT19USUNLRVRTIiBcCiAgICAgICAgICAwIFwKICAgICAgICAgIC1zICJQcm90b2NvbCBpcyBUTFN2MS4zIiBcCiAgICAgICAgICAtcyAic2VydmVyIGhlbGxvLCBjaG9zZW4gY2lwaGVyc3VpdGU6IFRMUzEtMy1BRVMtMTI4LUNDTS1TSEEyNTYgKCBpZD00ODY4ICkiIFwKQEAgLTM2NDUsOCArMzY0Nyw4IEBACiByZXF1aXJlc19nbnV0bHNfbmV4dF9ub190aWNrZXQKIHJlcXVpcmVzX2dudXRsc19uZXh0X2Rpc2FibGVfdGxzMTNfY29tcGF0CiBydW5fdGVzdCAiVExTIDEuMyBHLT5tOiBBRVNfMTI4X0NDTV9TSEEyNTYsc2VjcDM4NHIxLHJzYV9wc3NfcnNhZV9zaGEyNTYiIFwKLSAgICAgICAgICIkUF9TUlYgY3J0X2ZpbGU9ZGF0YV9maWxlcy9zZXJ2ZXIyLXNoYTI1Ni5jcnQga2V5X2ZpbGU9ZGF0YV9maWxlcy9zZXJ2ZXIyLmtleSBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMTI4LUNDTS1TSEEyNTYgc2lnX2FsZ3M9cnNhX3Bzc19yc2FlX3NoYTI1NiBncm91cHM9c2VjcDM4NHIxIHRsczEzX2tleF9tb2Rlcz1lcGhlbWVyYWwgY29va2llcz0wIHRpY2tldHM9MCIgXAotICAgICAgICAgIiRHX05FWFRfQ0xJX05PX0NFUlQgLS1kZWJ1Zz00IC0tc2luZ2xlLWtleS1zaGFyZSAtLXg1MDljYWZpbGUgZGF0YV9maWxlcy90ZXN0LWNhX2NhdDEyLmNydCAtLXByaW9yaXR5PU5PTkU6K0FFUy0xMjgtQ0NNOitTSEEyNTY6K0FFQUQ6K1NJR04tUlNBLVBTUy1SU0FFLVNIQTI1NjorR1JPVVAtU0VDUDM4NFIxOitWRVJTLVRMUzEuMzolTk9fVElDS0VUUyIgXAorICAgICAgICAgIiRQX1NSViBjcnRfZmlsZT0kREFUQV9GSUxFU19QQVRIL3NlcnZlcjItc2hhMjU2LmNydCBrZXlfZmlsZT0kREFUQV9GSUxFU19QQVRIL3NlcnZlcjIua2V5IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0xMjgtQ0NNLVNIQTI1NiBzaWdfYWxncz1yc2FfcHNzX3JzYWVfc2hhMjU2IGdyb3Vwcz1zZWNwMzg0cjEgdGxzMTNfa2V4X21vZGVzPWVwaGVtZXJhbCBjb29raWVzPTAgdGlja2V0cz0wIiBcCisgICAgICAgICAiJEdfTkVYVF9DTElfTk9fQ0VSVCAtLWRlYnVnPTQgLS1zaW5nbGUta2V5LXNoYXJlIC0teDUwOWNhZmlsZSAkREFUQV9GSUxFU19QQVRIL3Rlc3QtY2FfY2F0MTIuY3J0IC0tcHJpb3JpdHk9Tk9ORTorQUVTLTEyOC1DQ006K1NIQTI1NjorQUVBRDorU0lHTi1SU0EtUFNTLVJTQUUtU0hBMjU2OitHUk9VUC1TRUNQMzg0UjE6K1ZFUlMtVExTMS4zOiVOT19USUNLRVRTIiBcCiAgICAgICAgICAwIFwKICAgICAgICAgIC1zICJQcm90b2NvbCBpcyBUTFN2MS4zIiBcCiAgICAgICAgICAtcyAic2VydmVyIGhlbGxvLCBjaG9zZW4gY2lwaGVyc3VpdGU6IFRMUzEtMy1BRVMtMTI4LUNDTS1TSEEyNTYgKCBpZD00ODY4ICkiIFwKQEAgLTM2NjQsOCArMzY2Niw4IEBACiByZXF1aXJlc19nbnV0bHNfbmV4dF9ub190aWNrZXQKIHJlcXVpcmVzX2dudXRsc19uZXh0X2Rpc2FibGVfdGxzMTNfY29tcGF0CiBydW5fdGVzdCAiVExTIDEuMyBHLT5tOiBBRVNfMTI4X0NDTV9TSEEyNTYsc2VjcDUyMXIxLGVjZHNhX3NlY3AyNTZyMV9zaGEyNTYiIFwKLSAgICAgICAgICIkUF9TUlYgY3J0X2ZpbGU9ZGF0YV9maWxlcy9lY2RzYV9zZWNwMjU2cjEuY3J0IGtleV9maWxlPWRhdGFfZmlsZXMvZWNkc2Ffc2VjcDI1NnIxLmtleSBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMTI4LUNDTS1TSEEyNTYgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDI1NnIxX3NoYTI1NiBncm91cHM9c2VjcDUyMXIxIHRsczEzX2tleF9tb2Rlcz1lcGhlbWVyYWwgY29va2llcz0wIHRpY2tldHM9MCIgXAotICAgICAgICAgIiRHX05FWFRfQ0xJX05PX0NFUlQgLS1kZWJ1Zz00IC0tc2luZ2xlLWtleS1zaGFyZSAtLXg1MDljYWZpbGUgZGF0YV9maWxlcy90ZXN0LWNhMi5jcnQgLS1wcmlvcml0eT1OT05FOitBRVMtMTI4LUNDTTorU0hBMjU2OitBRUFEOitTSUdOLUVDRFNBLVNFQ1AyNTZSMS1TSEEyNTY6K0dST1VQLVNFQ1A1MjFSMTorVkVSUy1UTFMxLjM6JU5PX1RJQ0tFVFMiIFwKKyAgICAgICAgICIkUF9TUlYgY3J0X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwMjU2cjEuY3J0IGtleV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDI1NnIxLmtleSBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMTI4LUNDTS1TSEEyNTYgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDI1NnIxX3NoYTI1NiBncm91cHM9c2VjcDUyMXIxIHRsczEzX2tleF9tb2Rlcz1lcGhlbWVyYWwgY29va2llcz0wIHRpY2tldHM9MCIgXAorICAgICAgICAgIiRHX05FWFRfQ0xJX05PX0NFUlQgLS1kZWJ1Zz00IC0tc2luZ2xlLWtleS1zaGFyZSAtLXg1MDljYWZpbGUgJERBVEFfRklMRVNfUEFUSC90ZXN0LWNhMi5jcnQgLS1wcmlvcml0eT1OT05FOitBRVMtMTI4LUNDTTorU0hBMjU2OitBRUFEOitTSUdOLUVDRFNBLVNFQ1AyNTZSMS1TSEEyNTY6K0dST1VQLVNFQ1A1MjFSMTorVkVSUy1UTFMxLjM6JU5PX1RJQ0tFVFMiIFwKICAgICAgICAgIDAgXAogICAgICAgICAgLXMgIlByb3RvY29sIGlzIFRMU3YxLjMiIFwKICAgICAgICAgIC1zICJzZXJ2ZXIgaGVsbG8sIGNob3NlbiBjaXBoZXJzdWl0ZTogVExTMS0zLUFFUy0xMjgtQ0NNLVNIQTI1NiAoIGlkPTQ4NjggKSIgXApAQCAtMzY4Myw4ICszNjg1LDggQEAKIHJlcXVpcmVzX2dudXRsc19uZXh0X25vX3RpY2tldAogcmVxdWlyZXNfZ251dGxzX25leHRfZGlzYWJsZV90bHMxM19jb21wYXQKIHJ1bl90ZXN0ICJUTFMgMS4zIEctPm06IEFFU18xMjhfQ0NNX1NIQTI1NixzZWNwNTIxcjEsZWNkc2Ffc2VjcDM4NHIxX3NoYTM4NCIgXAotICAgICAgICAgIiRQX1NSViBjcnRfZmlsZT1kYXRhX2ZpbGVzL2VjZHNhX3NlY3AzODRyMS5jcnQga2V5X2ZpbGU9ZGF0YV9maWxlcy9lY2RzYV9zZWNwMzg0cjEua2V5IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0xMjgtQ0NNLVNIQTI1NiBzaWdfYWxncz1lY2RzYV9zZWNwMzg0cjFfc2hhMzg0IGdyb3Vwcz1zZWNwNTIxcjEgdGxzMTNfa2V4X21vZGVzPWVwaGVtZXJhbCBjb29raWVzPTAgdGlja2V0cz0wIiBcCi0gICAgICAgICAiJEdfTkVYVF9DTElfTk9fQ0VSVCAtLWRlYnVnPTQgLS1zaW5nbGUta2V5LXNoYXJlIC0teDUwOWNhZmlsZSBkYXRhX2ZpbGVzL3Rlc3QtY2EyLmNydCAtLXByaW9yaXR5PU5PTkU6K0FFUy0xMjgtQ0NNOitTSEEyNTY6K0FFQUQ6K1NJR04tRUNEU0EtU0VDUDM4NFIxLVNIQTM4NDorR1JPVVAtU0VDUDUyMVIxOitWRVJTLVRMUzEuMzolTk9fVElDS0VUUyIgXAorICAgICAgICAgIiRQX1NSViBjcnRfZmlsZT0kREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3AzODRyMS5jcnQga2V5X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwMzg0cjEua2V5IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0xMjgtQ0NNLVNIQTI1NiBzaWdfYWxncz1lY2RzYV9zZWNwMzg0cjFfc2hhMzg0IGdyb3Vwcz1zZWNwNTIxcjEgdGxzMTNfa2V4X21vZGVzPWVwaGVtZXJhbCBjb29raWVzPTAgdGlja2V0cz0wIiBcCisgICAgICAgICAiJEdfTkVYVF9DTElfTk9fQ0VSVCAtLWRlYnVnPTQgLS1zaW5nbGUta2V5LXNoYXJlIC0teDUwOWNhZmlsZSAkREFUQV9GSUxFU19QQVRIL3Rlc3QtY2EyLmNydCAtLXByaW9yaXR5PU5PTkU6K0FFUy0xMjgtQ0NNOitTSEEyNTY6K0FFQUQ6K1NJR04tRUNEU0EtU0VDUDM4NFIxLVNIQTM4NDorR1JPVVAtU0VDUDUyMVIxOitWRVJTLVRMUzEuMzolTk9fVElDS0VUUyIgXAogICAgICAgICAgMCBcCiAgICAgICAgICAtcyAiUHJvdG9jb2wgaXMgVExTdjEuMyIgXAogICAgICAgICAgLXMgInNlcnZlciBoZWxsbywgY2hvc2VuIGNpcGhlcnN1aXRlOiBUTFMxLTMtQUVTLTEyOC1DQ00tU0hBMjU2ICggaWQ9NDg2OCApIiBcCkBAIC0zNzAyLDggKzM3MDQsOCBAQAogcmVxdWlyZXNfZ251dGxzX25leHRfbm9fdGlja2V0CiByZXF1aXJlc19nbnV0bHNfbmV4dF9kaXNhYmxlX3RsczEzX2NvbXBhdAogcnVuX3Rlc3QgIlRMUyAxLjMgRy0+bTogQUVTXzEyOF9DQ01fU0hBMjU2LHNlY3A1MjFyMSxlY2RzYV9zZWNwNTIxcjFfc2hhNTEyIiBcCi0gICAgICAgICAiJFBfU1JWIGNydF9maWxlPWRhdGFfZmlsZXMvZWNkc2Ffc2VjcDUyMXIxLmNydCBrZXlfZmlsZT1kYXRhX2ZpbGVzL2VjZHNhX3NlY3A1MjFyMS5rZXkgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTEyOC1DQ00tU0hBMjU2IHNpZ19hbGdzPWVjZHNhX3NlY3A1MjFyMV9zaGE1MTIgZ3JvdXBzPXNlY3A1MjFyMSB0bHMxM19rZXhfbW9kZXM9ZXBoZW1lcmFsIGNvb2tpZXM9MCB0aWNrZXRzPTAiIFwKLSAgICAgICAgICIkR19ORVhUX0NMSV9OT19DRVJUIC0tZGVidWc9NCAtLXNpbmdsZS1rZXktc2hhcmUgLS14NTA5Y2FmaWxlIGRhdGFfZmlsZXMvdGVzdC1jYTIuY3J0IC0tcHJpb3JpdHk9Tk9ORTorQUVTLTEyOC1DQ006K1NIQTI1NjorQUVBRDorU0lHTi1FQ0RTQS1TRUNQNTIxUjEtU0hBNTEyOitHUk9VUC1TRUNQNTIxUjE6K1ZFUlMtVExTMS4zOiVOT19USUNLRVRTIiBcCisgICAgICAgICAiJFBfU1JWIGNydF9maWxlPSREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDUyMXIxLmNydCBrZXlfZmlsZT0kREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3A1MjFyMS5rZXkgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTEyOC1DQ00tU0hBMjU2IHNpZ19hbGdzPWVjZHNhX3NlY3A1MjFyMV9zaGE1MTIgZ3JvdXBzPXNlY3A1MjFyMSB0bHMxM19rZXhfbW9kZXM9ZXBoZW1lcmFsIGNvb2tpZXM9MCB0aWNrZXRzPTAiIFwKKyAgICAgICAgICIkR19ORVhUX0NMSV9OT19DRVJUIC0tZGVidWc9NCAtLXNpbmdsZS1rZXktc2hhcmUgLS14NTA5Y2FmaWxlICREQVRBX0ZJTEVTX1BBVEgvdGVzdC1jYTIuY3J0IC0tcHJpb3JpdHk9Tk9ORTorQUVTLTEyOC1DQ006K1NIQTI1NjorQUVBRDorU0lHTi1FQ0RTQS1TRUNQNTIxUjEtU0hBNTEyOitHUk9VUC1TRUNQNTIxUjE6K1ZFUlMtVExTMS4zOiVOT19USUNLRVRTIiBcCiAgICAgICAgICAwIFwKICAgICAgICAgIC1zICJQcm90b2NvbCBpcyBUTFN2MS4zIiBcCiAgICAgICAgICAtcyAic2VydmVyIGhlbGxvLCBjaG9zZW4gY2lwaGVyc3VpdGU6IFRMUzEtMy1BRVMtMTI4LUNDTS1TSEEyNTYgKCBpZD00ODY4ICkiIFwKQEAgLTM3MjIsOCArMzcyNCw4IEBACiByZXF1aXJlc19nbnV0bHNfbmV4dF9ub190aWNrZXQKIHJlcXVpcmVzX2dudXRsc19uZXh0X2Rpc2FibGVfdGxzMTNfY29tcGF0CiBydW5fdGVzdCAiVExTIDEuMyBHLT5tOiBBRVNfMTI4X0NDTV9TSEEyNTYsc2VjcDUyMXIxLHJzYV9wc3NfcnNhZV9zaGEyNTYiIFwKLSAgICAgICAgICIkUF9TUlYgY3J0X2ZpbGU9ZGF0YV9maWxlcy9zZXJ2ZXIyLXNoYTI1Ni5jcnQga2V5X2ZpbGU9ZGF0YV9maWxlcy9zZXJ2ZXIyLmtleSBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMTI4LUNDTS1TSEEyNTYgc2lnX2FsZ3M9cnNhX3Bzc19yc2FlX3NoYTI1NiBncm91cHM9c2VjcDUyMXIxIHRsczEzX2tleF9tb2Rlcz1lcGhlbWVyYWwgY29va2llcz0wIHRpY2tldHM9MCIgXAotICAgICAgICAgIiRHX05FWFRfQ0xJX05PX0NFUlQgLS1kZWJ1Zz00IC0tc2luZ2xlLWtleS1zaGFyZSAtLXg1MDljYWZpbGUgZGF0YV9maWxlcy90ZXN0LWNhX2NhdDEyLmNydCAtLXByaW9yaXR5PU5PTkU6K0FFUy0xMjgtQ0NNOitTSEEyNTY6K0FFQUQ6K1NJR04tUlNBLVBTUy1SU0FFLVNIQTI1NjorR1JPVVAtU0VDUDUyMVIxOitWRVJTLVRMUzEuMzolTk9fVElDS0VUUyIgXAorICAgICAgICAgIiRQX1NSViBjcnRfZmlsZT0kREFUQV9GSUxFU19QQVRIL3NlcnZlcjItc2hhMjU2LmNydCBrZXlfZmlsZT0kREFUQV9GSUxFU19QQVRIL3NlcnZlcjIua2V5IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0xMjgtQ0NNLVNIQTI1NiBzaWdfYWxncz1yc2FfcHNzX3JzYWVfc2hhMjU2IGdyb3Vwcz1zZWNwNTIxcjEgdGxzMTNfa2V4X21vZGVzPWVwaGVtZXJhbCBjb29raWVzPTAgdGlja2V0cz0wIiBcCisgICAgICAgICAiJEdfTkVYVF9DTElfTk9fQ0VSVCAtLWRlYnVnPTQgLS1zaW5nbGUta2V5LXNoYXJlIC0teDUwOWNhZmlsZSAkREFUQV9GSUxFU19QQVRIL3Rlc3QtY2FfY2F0MTIuY3J0IC0tcHJpb3JpdHk9Tk9ORTorQUVTLTEyOC1DQ006K1NIQTI1NjorQUVBRDorU0lHTi1SU0EtUFNTLVJTQUUtU0hBMjU2OitHUk9VUC1TRUNQNTIxUjE6K1ZFUlMtVExTMS4zOiVOT19USUNLRVRTIiBcCiAgICAgICAgICAwIFwKICAgICAgICAgIC1zICJQcm90b2NvbCBpcyBUTFN2MS4zIiBcCiAgICAgICAgICAtcyAic2VydmVyIGhlbGxvLCBjaG9zZW4gY2lwaGVyc3VpdGU6IFRMUzEtMy1BRVMtMTI4LUNDTS1TSEEyNTYgKCBpZD00ODY4ICkiIFwKQEAgLTM3NDEsOCArMzc0Myw4IEBACiByZXF1aXJlc19nbnV0bHNfbmV4dF9ub190aWNrZXQKIHJlcXVpcmVzX2dudXRsc19uZXh0X2Rpc2FibGVfdGxzMTNfY29tcGF0CiBydW5fdGVzdCAiVExTIDEuMyBHLT5tOiBBRVNfMTI4X0NDTV9TSEEyNTYseDI1NTE5LGVjZHNhX3NlY3AyNTZyMV9zaGEyNTYiIFwKLSAgICAgICAgICIkUF9TUlYgY3J0X2ZpbGU9ZGF0YV9maWxlcy9lY2RzYV9zZWNwMjU2cjEuY3J0IGtleV9maWxlPWRhdGFfZmlsZXMvZWNkc2Ffc2VjcDI1NnIxLmtleSBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMTI4LUNDTS1TSEEyNTYgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDI1NnIxX3NoYTI1NiBncm91cHM9eDI1NTE5IHRsczEzX2tleF9tb2Rlcz1lcGhlbWVyYWwgY29va2llcz0wIHRpY2tldHM9MCIgXAotICAgICAgICAgIiRHX05FWFRfQ0xJX05PX0NFUlQgLS1kZWJ1Zz00IC0tc2luZ2xlLWtleS1zaGFyZSAtLXg1MDljYWZpbGUgZGF0YV9maWxlcy90ZXN0LWNhMi5jcnQgLS1wcmlvcml0eT1OT05FOitBRVMtMTI4LUNDTTorU0hBMjU2OitBRUFEOitTSUdOLUVDRFNBLVNFQ1AyNTZSMS1TSEEyNTY6K0dST1VQLVgyNTUxOTorVkVSUy1UTFMxLjM6JU5PX1RJQ0tFVFMiIFwKKyAgICAgICAgICIkUF9TUlYgY3J0X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwMjU2cjEuY3J0IGtleV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDI1NnIxLmtleSBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMTI4LUNDTS1TSEEyNTYgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDI1NnIxX3NoYTI1NiBncm91cHM9eDI1NTE5IHRsczEzX2tleF9tb2Rlcz1lcGhlbWVyYWwgY29va2llcz0wIHRpY2tldHM9MCIgXAorICAgICAgICAgIiRHX05FWFRfQ0xJX05PX0NFUlQgLS1kZWJ1Zz00IC0tc2luZ2xlLWtleS1zaGFyZSAtLXg1MDljYWZpbGUgJERBVEFfRklMRVNfUEFUSC90ZXN0LWNhMi5jcnQgLS1wcmlvcml0eT1OT05FOitBRVMtMTI4LUNDTTorU0hBMjU2OitBRUFEOitTSUdOLUVDRFNBLVNFQ1AyNTZSMS1TSEEyNTY6K0dST1VQLVgyNTUxOTorVkVSUy1UTFMxLjM6JU5PX1RJQ0tFVFMiIFwKICAgICAgICAgIDAgXAogICAgICAgICAgLXMgIlByb3RvY29sIGlzIFRMU3YxLjMiIFwKICAgICAgICAgIC1zICJzZXJ2ZXIgaGVsbG8sIGNob3NlbiBjaXBoZXJzdWl0ZTogVExTMS0zLUFFUy0xMjgtQ0NNLVNIQTI1NiAoIGlkPTQ4NjggKSIgXApAQCAtMzc2MCw4ICszNzYyLDggQEAKIHJlcXVpcmVzX2dudXRsc19uZXh0X25vX3RpY2tldAogcmVxdWlyZXNfZ251dGxzX25leHRfZGlzYWJsZV90bHMxM19jb21wYXQKIHJ1bl90ZXN0ICJUTFMgMS4zIEctPm06IEFFU18xMjhfQ0NNX1NIQTI1Nix4MjU1MTksZWNkc2Ffc2VjcDM4NHIxX3NoYTM4NCIgXAotICAgICAgICAgIiRQX1NSViBjcnRfZmlsZT1kYXRhX2ZpbGVzL2VjZHNhX3NlY3AzODRyMS5jcnQga2V5X2ZpbGU9ZGF0YV9maWxlcy9lY2RzYV9zZWNwMzg0cjEua2V5IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0xMjgtQ0NNLVNIQTI1NiBzaWdfYWxncz1lY2RzYV9zZWNwMzg0cjFfc2hhMzg0IGdyb3Vwcz14MjU1MTkgdGxzMTNfa2V4X21vZGVzPWVwaGVtZXJhbCBjb29raWVzPTAgdGlja2V0cz0wIiBcCi0gICAgICAgICAiJEdfTkVYVF9DTElfTk9fQ0VSVCAtLWRlYnVnPTQgLS1zaW5nbGUta2V5LXNoYXJlIC0teDUwOWNhZmlsZSBkYXRhX2ZpbGVzL3Rlc3QtY2EyLmNydCAtLXByaW9yaXR5PU5PTkU6K0FFUy0xMjgtQ0NNOitTSEEyNTY6K0FFQUQ6K1NJR04tRUNEU0EtU0VDUDM4NFIxLVNIQTM4NDorR1JPVVAtWDI1NTE5OitWRVJTLVRMUzEuMzolTk9fVElDS0VUUyIgXAorICAgICAgICAgIiRQX1NSViBjcnRfZmlsZT0kREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3AzODRyMS5jcnQga2V5X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwMzg0cjEua2V5IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0xMjgtQ0NNLVNIQTI1NiBzaWdfYWxncz1lY2RzYV9zZWNwMzg0cjFfc2hhMzg0IGdyb3Vwcz14MjU1MTkgdGxzMTNfa2V4X21vZGVzPWVwaGVtZXJhbCBjb29raWVzPTAgdGlja2V0cz0wIiBcCisgICAgICAgICAiJEdfTkVYVF9DTElfTk9fQ0VSVCAtLWRlYnVnPTQgLS1zaW5nbGUta2V5LXNoYXJlIC0teDUwOWNhZmlsZSAkREFUQV9GSUxFU19QQVRIL3Rlc3QtY2EyLmNydCAtLXByaW9yaXR5PU5PTkU6K0FFUy0xMjgtQ0NNOitTSEEyNTY6K0FFQUQ6K1NJR04tRUNEU0EtU0VDUDM4NFIxLVNIQTM4NDorR1JPVVAtWDI1NTE5OitWRVJTLVRMUzEuMzolTk9fVElDS0VUUyIgXAogICAgICAgICAgMCBcCiAgICAgICAgICAtcyAiUHJvdG9jb2wgaXMgVExTdjEuMyIgXAogICAgICAgICAgLXMgInNlcnZlciBoZWxsbywgY2hvc2VuIGNpcGhlcnN1aXRlOiBUTFMxLTMtQUVTLTEyOC1DQ00tU0hBMjU2ICggaWQ9NDg2OCApIiBcCkBAIC0zNzc5LDggKzM3ODEsOCBAQAogcmVxdWlyZXNfZ251dGxzX25leHRfbm9fdGlja2V0CiByZXF1aXJlc19nbnV0bHNfbmV4dF9kaXNhYmxlX3RsczEzX2NvbXBhdAogcnVuX3Rlc3QgIlRMUyAxLjMgRy0+bTogQUVTXzEyOF9DQ01fU0hBMjU2LHgyNTUxOSxlY2RzYV9zZWNwNTIxcjFfc2hhNTEyIiBcCi0gICAgICAgICAiJFBfU1JWIGNydF9maWxlPWRhdGFfZmlsZXMvZWNkc2Ffc2VjcDUyMXIxLmNydCBrZXlfZmlsZT1kYXRhX2ZpbGVzL2VjZHNhX3NlY3A1MjFyMS5rZXkgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTEyOC1DQ00tU0hBMjU2IHNpZ19hbGdzPWVjZHNhX3NlY3A1MjFyMV9zaGE1MTIgZ3JvdXBzPXgyNTUxOSB0bHMxM19rZXhfbW9kZXM9ZXBoZW1lcmFsIGNvb2tpZXM9MCB0aWNrZXRzPTAiIFwKLSAgICAgICAgICIkR19ORVhUX0NMSV9OT19DRVJUIC0tZGVidWc9NCAtLXNpbmdsZS1rZXktc2hhcmUgLS14NTA5Y2FmaWxlIGRhdGFfZmlsZXMvdGVzdC1jYTIuY3J0IC0tcHJpb3JpdHk9Tk9ORTorQUVTLTEyOC1DQ006K1NIQTI1NjorQUVBRDorU0lHTi1FQ0RTQS1TRUNQNTIxUjEtU0hBNTEyOitHUk9VUC1YMjU1MTk6K1ZFUlMtVExTMS4zOiVOT19USUNLRVRTIiBcCisgICAgICAgICAiJFBfU1JWIGNydF9maWxlPSREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDUyMXIxLmNydCBrZXlfZmlsZT0kREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3A1MjFyMS5rZXkgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTEyOC1DQ00tU0hBMjU2IHNpZ19hbGdzPWVjZHNhX3NlY3A1MjFyMV9zaGE1MTIgZ3JvdXBzPXgyNTUxOSB0bHMxM19rZXhfbW9kZXM9ZXBoZW1lcmFsIGNvb2tpZXM9MCB0aWNrZXRzPTAiIFwKKyAgICAgICAgICIkR19ORVhUX0NMSV9OT19DRVJUIC0tZGVidWc9NCAtLXNpbmdsZS1rZXktc2hhcmUgLS14NTA5Y2FmaWxlICREQVRBX0ZJTEVTX1BBVEgvdGVzdC1jYTIuY3J0IC0tcHJpb3JpdHk9Tk9ORTorQUVTLTEyOC1DQ006K1NIQTI1NjorQUVBRDorU0lHTi1FQ0RTQS1TRUNQNTIxUjEtU0hBNTEyOitHUk9VUC1YMjU1MTk6K1ZFUlMtVExTMS4zOiVOT19USUNLRVRTIiBcCiAgICAgICAgICAwIFwKICAgICAgICAgIC1zICJQcm90b2NvbCBpcyBUTFN2MS4zIiBcCiAgICAgICAgICAtcyAic2VydmVyIGhlbGxvLCBjaG9zZW4gY2lwaGVyc3VpdGU6IFRMUzEtMy1BRVMtMTI4LUNDTS1TSEEyNTYgKCBpZD00ODY4ICkiIFwKQEAgLTM3OTksOCArMzgwMSw4IEBACiByZXF1aXJlc19nbnV0bHNfbmV4dF9ub190aWNrZXQKIHJlcXVpcmVzX2dudXRsc19uZXh0X2Rpc2FibGVfdGxzMTNfY29tcGF0CiBydW5fdGVzdCAiVExTIDEuMyBHLT5tOiBBRVNfMTI4X0NDTV9TSEEyNTYseDI1NTE5LHJzYV9wc3NfcnNhZV9zaGEyNTYiIFwKLSAgICAgICAgICIkUF9TUlYgY3J0X2ZpbGU9ZGF0YV9maWxlcy9zZXJ2ZXIyLXNoYTI1Ni5jcnQga2V5X2ZpbGU9ZGF0YV9maWxlcy9zZXJ2ZXIyLmtleSBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMTI4LUNDTS1TSEEyNTYgc2lnX2FsZ3M9cnNhX3Bzc19yc2FlX3NoYTI1NiBncm91cHM9eDI1NTE5IHRsczEzX2tleF9tb2Rlcz1lcGhlbWVyYWwgY29va2llcz0wIHRpY2tldHM9MCIgXAotICAgICAgICAgIiRHX05FWFRfQ0xJX05PX0NFUlQgLS1kZWJ1Zz00IC0tc2luZ2xlLWtleS1zaGFyZSAtLXg1MDljYWZpbGUgZGF0YV9maWxlcy90ZXN0LWNhX2NhdDEyLmNydCAtLXByaW9yaXR5PU5PTkU6K0FFUy0xMjgtQ0NNOitTSEEyNTY6K0FFQUQ6K1NJR04tUlNBLVBTUy1SU0FFLVNIQTI1NjorR1JPVVAtWDI1NTE5OitWRVJTLVRMUzEuMzolTk9fVElDS0VUUyIgXAorICAgICAgICAgIiRQX1NSViBjcnRfZmlsZT0kREFUQV9GSUxFU19QQVRIL3NlcnZlcjItc2hhMjU2LmNydCBrZXlfZmlsZT0kREFUQV9GSUxFU19QQVRIL3NlcnZlcjIua2V5IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0xMjgtQ0NNLVNIQTI1NiBzaWdfYWxncz1yc2FfcHNzX3JzYWVfc2hhMjU2IGdyb3Vwcz14MjU1MTkgdGxzMTNfa2V4X21vZGVzPWVwaGVtZXJhbCBjb29raWVzPTAgdGlja2V0cz0wIiBcCisgICAgICAgICAiJEdfTkVYVF9DTElfTk9fQ0VSVCAtLWRlYnVnPTQgLS1zaW5nbGUta2V5LXNoYXJlIC0teDUwOWNhZmlsZSAkREFUQV9GSUxFU19QQVRIL3Rlc3QtY2FfY2F0MTIuY3J0IC0tcHJpb3JpdHk9Tk9ORTorQUVTLTEyOC1DQ006K1NIQTI1NjorQUVBRDorU0lHTi1SU0EtUFNTLVJTQUUtU0hBMjU2OitHUk9VUC1YMjU1MTk6K1ZFUlMtVExTMS4zOiVOT19USUNLRVRTIiBcCiAgICAgICAgICAwIFwKICAgICAgICAgIC1zICJQcm90b2NvbCBpcyBUTFN2MS4zIiBcCiAgICAgICAgICAtcyAic2VydmVyIGhlbGxvLCBjaG9zZW4gY2lwaGVyc3VpdGU6IFRMUzEtMy1BRVMtMTI4LUNDTS1TSEEyNTYgKCBpZD00ODY4ICkiIFwKQEAgLTM4MTgsOCArMzgyMCw4IEBACiByZXF1aXJlc19nbnV0bHNfbmV4dF9ub190aWNrZXQKIHJlcXVpcmVzX2dudXRsc19uZXh0X2Rpc2FibGVfdGxzMTNfY29tcGF0CiBydW5fdGVzdCAiVExTIDEuMyBHLT5tOiBBRVNfMTI4X0NDTV9TSEEyNTYseDQ0OCxlY2RzYV9zZWNwMjU2cjFfc2hhMjU2IiBcCi0gICAgICAgICAiJFBfU1JWIGNydF9maWxlPWRhdGFfZmlsZXMvZWNkc2Ffc2VjcDI1NnIxLmNydCBrZXlfZmlsZT1kYXRhX2ZpbGVzL2VjZHNhX3NlY3AyNTZyMS5rZXkgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTEyOC1DQ00tU0hBMjU2IHNpZ19hbGdzPWVjZHNhX3NlY3AyNTZyMV9zaGEyNTYgZ3JvdXBzPXg0NDggdGxzMTNfa2V4X21vZGVzPWVwaGVtZXJhbCBjb29raWVzPTAgdGlja2V0cz0wIiBcCi0gICAgICAgICAiJEdfTkVYVF9DTElfTk9fQ0VSVCAtLWRlYnVnPTQgLS1zaW5nbGUta2V5LXNoYXJlIC0teDUwOWNhZmlsZSBkYXRhX2ZpbGVzL3Rlc3QtY2EyLmNydCAtLXByaW9yaXR5PU5PTkU6K0FFUy0xMjgtQ0NNOitTSEEyNTY6K0FFQUQ6K1NJR04tRUNEU0EtU0VDUDI1NlIxLVNIQTI1NjorR1JPVVAtWDQ0ODorVkVSUy1UTFMxLjM6JU5PX1RJQ0tFVFMiIFwKKyAgICAgICAgICIkUF9TUlYgY3J0X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwMjU2cjEuY3J0IGtleV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDI1NnIxLmtleSBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMTI4LUNDTS1TSEEyNTYgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDI1NnIxX3NoYTI1NiBncm91cHM9eDQ0OCB0bHMxM19rZXhfbW9kZXM9ZXBoZW1lcmFsIGNvb2tpZXM9MCB0aWNrZXRzPTAiIFwKKyAgICAgICAgICIkR19ORVhUX0NMSV9OT19DRVJUIC0tZGVidWc9NCAtLXNpbmdsZS1rZXktc2hhcmUgLS14NTA5Y2FmaWxlICREQVRBX0ZJTEVTX1BBVEgvdGVzdC1jYTIuY3J0IC0tcHJpb3JpdHk9Tk9ORTorQUVTLTEyOC1DQ006K1NIQTI1NjorQUVBRDorU0lHTi1FQ0RTQS1TRUNQMjU2UjEtU0hBMjU2OitHUk9VUC1YNDQ4OitWRVJTLVRMUzEuMzolTk9fVElDS0VUUyIgXAogICAgICAgICAgMCBcCiAgICAgICAgICAtcyAiUHJvdG9jb2wgaXMgVExTdjEuMyIgXAogICAgICAgICAgLXMgInNlcnZlciBoZWxsbywgY2hvc2VuIGNpcGhlcnN1aXRlOiBUTFMxLTMtQUVTLTEyOC1DQ00tU0hBMjU2ICggaWQ9NDg2OCApIiBcCkBAIC0zODM3LDggKzM4MzksOCBAQAogcmVxdWlyZXNfZ251dGxzX25leHRfbm9fdGlja2V0CiByZXF1aXJlc19nbnV0bHNfbmV4dF9kaXNhYmxlX3RsczEzX2NvbXBhdAogcnVuX3Rlc3QgIlRMUyAxLjMgRy0+bTogQUVTXzEyOF9DQ01fU0hBMjU2LHg0NDgsZWNkc2Ffc2VjcDM4NHIxX3NoYTM4NCIgXAotICAgICAgICAgIiRQX1NSViBjcnRfZmlsZT1kYXRhX2ZpbGVzL2VjZHNhX3NlY3AzODRyMS5jcnQga2V5X2ZpbGU9ZGF0YV9maWxlcy9lY2RzYV9zZWNwMzg0cjEua2V5IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0xMjgtQ0NNLVNIQTI1NiBzaWdfYWxncz1lY2RzYV9zZWNwMzg0cjFfc2hhMzg0IGdyb3Vwcz14NDQ4IHRsczEzX2tleF9tb2Rlcz1lcGhlbWVyYWwgY29va2llcz0wIHRpY2tldHM9MCIgXAotICAgICAgICAgIiRHX05FWFRfQ0xJX05PX0NFUlQgLS1kZWJ1Zz00IC0tc2luZ2xlLWtleS1zaGFyZSAtLXg1MDljYWZpbGUgZGF0YV9maWxlcy90ZXN0LWNhMi5jcnQgLS1wcmlvcml0eT1OT05FOitBRVMtMTI4LUNDTTorU0hBMjU2OitBRUFEOitTSUdOLUVDRFNBLVNFQ1AzODRSMS1TSEEzODQ6K0dST1VQLVg0NDg6K1ZFUlMtVExTMS4zOiVOT19USUNLRVRTIiBcCisgICAgICAgICAiJFBfU1JWIGNydF9maWxlPSREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDM4NHIxLmNydCBrZXlfZmlsZT0kREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3AzODRyMS5rZXkgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTEyOC1DQ00tU0hBMjU2IHNpZ19hbGdzPWVjZHNhX3NlY3AzODRyMV9zaGEzODQgZ3JvdXBzPXg0NDggdGxzMTNfa2V4X21vZGVzPWVwaGVtZXJhbCBjb29raWVzPTAgdGlja2V0cz0wIiBcCisgICAgICAgICAiJEdfTkVYVF9DTElfTk9fQ0VSVCAtLWRlYnVnPTQgLS1zaW5nbGUta2V5LXNoYXJlIC0teDUwOWNhZmlsZSAkREFUQV9GSUxFU19QQVRIL3Rlc3QtY2EyLmNydCAtLXByaW9yaXR5PU5PTkU6K0FFUy0xMjgtQ0NNOitTSEEyNTY6K0FFQUQ6K1NJR04tRUNEU0EtU0VDUDM4NFIxLVNIQTM4NDorR1JPVVAtWDQ0ODorVkVSUy1UTFMxLjM6JU5PX1RJQ0tFVFMiIFwKICAgICAgICAgIDAgXAogICAgICAgICAgLXMgIlByb3RvY29sIGlzIFRMU3YxLjMiIFwKICAgICAgICAgIC1zICJzZXJ2ZXIgaGVsbG8sIGNob3NlbiBjaXBoZXJzdWl0ZTogVExTMS0zLUFFUy0xMjgtQ0NNLVNIQTI1NiAoIGlkPTQ4NjggKSIgXApAQCAtMzg1Niw4ICszODU4LDggQEAKIHJlcXVpcmVzX2dudXRsc19uZXh0X25vX3RpY2tldAogcmVxdWlyZXNfZ251dGxzX25leHRfZGlzYWJsZV90bHMxM19jb21wYXQKIHJ1bl90ZXN0ICJUTFMgMS4zIEctPm06IEFFU18xMjhfQ0NNX1NIQTI1Nix4NDQ4LGVjZHNhX3NlY3A1MjFyMV9zaGE1MTIiIFwKLSAgICAgICAgICIkUF9TUlYgY3J0X2ZpbGU9ZGF0YV9maWxlcy9lY2RzYV9zZWNwNTIxcjEuY3J0IGtleV9maWxlPWRhdGFfZmlsZXMvZWNkc2Ffc2VjcDUyMXIxLmtleSBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMTI4LUNDTS1TSEEyNTYgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDUyMXIxX3NoYTUxMiBncm91cHM9eDQ0OCB0bHMxM19rZXhfbW9kZXM9ZXBoZW1lcmFsIGNvb2tpZXM9MCB0aWNrZXRzPTAiIFwKLSAgICAgICAgICIkR19ORVhUX0NMSV9OT19DRVJUIC0tZGVidWc9NCAtLXNpbmdsZS1rZXktc2hhcmUgLS14NTA5Y2FmaWxlIGRhdGFfZmlsZXMvdGVzdC1jYTIuY3J0IC0tcHJpb3JpdHk9Tk9ORTorQUVTLTEyOC1DQ006K1NIQTI1NjorQUVBRDorU0lHTi1FQ0RTQS1TRUNQNTIxUjEtU0hBNTEyOitHUk9VUC1YNDQ4OitWRVJTLVRMUzEuMzolTk9fVElDS0VUUyIgXAorICAgICAgICAgIiRQX1NSViBjcnRfZmlsZT0kREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3A1MjFyMS5jcnQga2V5X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwNTIxcjEua2V5IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0xMjgtQ0NNLVNIQTI1NiBzaWdfYWxncz1lY2RzYV9zZWNwNTIxcjFfc2hhNTEyIGdyb3Vwcz14NDQ4IHRsczEzX2tleF9tb2Rlcz1lcGhlbWVyYWwgY29va2llcz0wIHRpY2tldHM9MCIgXAorICAgICAgICAgIiRHX05FWFRfQ0xJX05PX0NFUlQgLS1kZWJ1Zz00IC0tc2luZ2xlLWtleS1zaGFyZSAtLXg1MDljYWZpbGUgJERBVEFfRklMRVNfUEFUSC90ZXN0LWNhMi5jcnQgLS1wcmlvcml0eT1OT05FOitBRVMtMTI4LUNDTTorU0hBMjU2OitBRUFEOitTSUdOLUVDRFNBLVNFQ1A1MjFSMS1TSEE1MTI6K0dST1VQLVg0NDg6K1ZFUlMtVExTMS4zOiVOT19USUNLRVRTIiBcCiAgICAgICAgICAwIFwKICAgICAgICAgIC1zICJQcm90b2NvbCBpcyBUTFN2MS4zIiBcCiAgICAgICAgICAtcyAic2VydmVyIGhlbGxvLCBjaG9zZW4gY2lwaGVyc3VpdGU6IFRMUzEtMy1BRVMtMTI4LUNDTS1TSEEyNTYgKCBpZD00ODY4ICkiIFwKQEAgLTM4NzYsOCArMzg3OCw4IEBACiByZXF1aXJlc19nbnV0bHNfbmV4dF9ub190aWNrZXQKIHJlcXVpcmVzX2dudXRsc19uZXh0X2Rpc2FibGVfdGxzMTNfY29tcGF0CiBydW5fdGVzdCAiVExTIDEuMyBHLT5tOiBBRVNfMTI4X0NDTV9TSEEyNTYseDQ0OCxyc2FfcHNzX3JzYWVfc2hhMjU2IiBcCi0gICAgICAgICAiJFBfU1JWIGNydF9maWxlPWRhdGFfZmlsZXMvc2VydmVyMi1zaGEyNTYuY3J0IGtleV9maWxlPWRhdGFfZmlsZXMvc2VydmVyMi5rZXkgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTEyOC1DQ00tU0hBMjU2IHNpZ19hbGdzPXJzYV9wc3NfcnNhZV9zaGEyNTYgZ3JvdXBzPXg0NDggdGxzMTNfa2V4X21vZGVzPWVwaGVtZXJhbCBjb29raWVzPTAgdGlja2V0cz0wIiBcCi0gICAgICAgICAiJEdfTkVYVF9DTElfTk9fQ0VSVCAtLWRlYnVnPTQgLS1zaW5nbGUta2V5LXNoYXJlIC0teDUwOWNhZmlsZSBkYXRhX2ZpbGVzL3Rlc3QtY2FfY2F0MTIuY3J0IC0tcHJpb3JpdHk9Tk9ORTorQUVTLTEyOC1DQ006K1NIQTI1NjorQUVBRDorU0lHTi1SU0EtUFNTLVJTQUUtU0hBMjU2OitHUk9VUC1YNDQ4OitWRVJTLVRMUzEuMzolTk9fVElDS0VUUyIgXAorICAgICAgICAgIiRQX1NSViBjcnRfZmlsZT0kREFUQV9GSUxFU19QQVRIL3NlcnZlcjItc2hhMjU2LmNydCBrZXlfZmlsZT0kREFUQV9GSUxFU19QQVRIL3NlcnZlcjIua2V5IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0xMjgtQ0NNLVNIQTI1NiBzaWdfYWxncz1yc2FfcHNzX3JzYWVfc2hhMjU2IGdyb3Vwcz14NDQ4IHRsczEzX2tleF9tb2Rlcz1lcGhlbWVyYWwgY29va2llcz0wIHRpY2tldHM9MCIgXAorICAgICAgICAgIiRHX05FWFRfQ0xJX05PX0NFUlQgLS1kZWJ1Zz00IC0tc2luZ2xlLWtleS1zaGFyZSAtLXg1MDljYWZpbGUgJERBVEFfRklMRVNfUEFUSC90ZXN0LWNhX2NhdDEyLmNydCAtLXByaW9yaXR5PU5PTkU6K0FFUy0xMjgtQ0NNOitTSEEyNTY6K0FFQUQ6K1NJR04tUlNBLVBTUy1SU0FFLVNIQTI1NjorR1JPVVAtWDQ0ODorVkVSUy1UTFMxLjM6JU5PX1RJQ0tFVFMiIFwKICAgICAgICAgIDAgXAogICAgICAgICAgLXMgIlByb3RvY29sIGlzIFRMU3YxLjMiIFwKICAgICAgICAgIC1zICJzZXJ2ZXIgaGVsbG8sIGNob3NlbiBjaXBoZXJzdWl0ZTogVExTMS0zLUFFUy0xMjgtQ0NNLVNIQTI1NiAoIGlkPTQ4NjggKSIgXApAQCAtMzg5Niw4ICszODk4LDggQEAKIHJlcXVpcmVzX2dudXRsc19uZXh0X25vX3RpY2tldAogcmVxdWlyZXNfZ251dGxzX25leHRfZGlzYWJsZV90bHMxM19jb21wYXQKIHJ1bl90ZXN0ICJUTFMgMS4zIEctPm06IEFFU18xMjhfQ0NNX1NIQTI1NixmZmRoZTIwNDgsZWNkc2Ffc2VjcDI1NnIxX3NoYTI1NiIgXAotICAgICAgICAgIiRQX1NSViBjcnRfZmlsZT1kYXRhX2ZpbGVzL2VjZHNhX3NlY3AyNTZyMS5jcnQga2V5X2ZpbGU9ZGF0YV9maWxlcy9lY2RzYV9zZWNwMjU2cjEua2V5IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0xMjgtQ0NNLVNIQTI1NiBzaWdfYWxncz1lY2RzYV9zZWNwMjU2cjFfc2hhMjU2IGdyb3Vwcz1mZmRoZTIwNDggdGxzMTNfa2V4X21vZGVzPWVwaGVtZXJhbCBjb29raWVzPTAgdGlja2V0cz0wIiBcCi0gICAgICAgICAiJEdfTkVYVF9DTElfTk9fQ0VSVCAtLWRlYnVnPTQgLS1zaW5nbGUta2V5LXNoYXJlIC0teDUwOWNhZmlsZSBkYXRhX2ZpbGVzL3Rlc3QtY2EyLmNydCAtLXByaW9yaXR5PU5PTkU6K0FFUy0xMjgtQ0NNOitTSEEyNTY6K0FFQUQ6K1NJR04tRUNEU0EtU0VDUDI1NlIxLVNIQTI1NjorR1JPVVAtRkZESEUyMDQ4OitWRVJTLVRMUzEuMzolTk9fVElDS0VUUyIgXAorICAgICAgICAgIiRQX1NSViBjcnRfZmlsZT0kREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3AyNTZyMS5jcnQga2V5X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwMjU2cjEua2V5IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0xMjgtQ0NNLVNIQTI1NiBzaWdfYWxncz1lY2RzYV9zZWNwMjU2cjFfc2hhMjU2IGdyb3Vwcz1mZmRoZTIwNDggdGxzMTNfa2V4X21vZGVzPWVwaGVtZXJhbCBjb29raWVzPTAgdGlja2V0cz0wIiBcCisgICAgICAgICAiJEdfTkVYVF9DTElfTk9fQ0VSVCAtLWRlYnVnPTQgLS1zaW5nbGUta2V5LXNoYXJlIC0teDUwOWNhZmlsZSAkREFUQV9GSUxFU19QQVRIL3Rlc3QtY2EyLmNydCAtLXByaW9yaXR5PU5PTkU6K0FFUy0xMjgtQ0NNOitTSEEyNTY6K0FFQUQ6K1NJR04tRUNEU0EtU0VDUDI1NlIxLVNIQTI1NjorR1JPVVAtRkZESEUyMDQ4OitWRVJTLVRMUzEuMzolTk9fVElDS0VUUyIgXAogICAgICAgICAgMCBcCiAgICAgICAgICAtcyAiUHJvdG9jb2wgaXMgVExTdjEuMyIgXAogICAgICAgICAgLXMgInNlcnZlciBoZWxsbywgY2hvc2VuIGNpcGhlcnN1aXRlOiBUTFMxLTMtQUVTLTEyOC1DQ00tU0hBMjU2ICggaWQ9NDg2OCApIiBcCkBAIC0zOTE2LDggKzM5MTgsOCBAQAogcmVxdWlyZXNfZ251dGxzX25leHRfbm9fdGlja2V0CiByZXF1aXJlc19nbnV0bHNfbmV4dF9kaXNhYmxlX3RsczEzX2NvbXBhdAogcnVuX3Rlc3QgIlRMUyAxLjMgRy0+bTogQUVTXzEyOF9DQ01fU0hBMjU2LGZmZGhlMjA0OCxlY2RzYV9zZWNwMzg0cjFfc2hhMzg0IiBcCi0gICAgICAgICAiJFBfU1JWIGNydF9maWxlPWRhdGFfZmlsZXMvZWNkc2Ffc2VjcDM4NHIxLmNydCBrZXlfZmlsZT1kYXRhX2ZpbGVzL2VjZHNhX3NlY3AzODRyMS5rZXkgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTEyOC1DQ00tU0hBMjU2IHNpZ19hbGdzPWVjZHNhX3NlY3AzODRyMV9zaGEzODQgZ3JvdXBzPWZmZGhlMjA0OCB0bHMxM19rZXhfbW9kZXM9ZXBoZW1lcmFsIGNvb2tpZXM9MCB0aWNrZXRzPTAiIFwKLSAgICAgICAgICIkR19ORVhUX0NMSV9OT19DRVJUIC0tZGVidWc9NCAtLXNpbmdsZS1rZXktc2hhcmUgLS14NTA5Y2FmaWxlIGRhdGFfZmlsZXMvdGVzdC1jYTIuY3J0IC0tcHJpb3JpdHk9Tk9ORTorQUVTLTEyOC1DQ006K1NIQTI1NjorQUVBRDorU0lHTi1FQ0RTQS1TRUNQMzg0UjEtU0hBMzg0OitHUk9VUC1GRkRIRTIwNDg6K1ZFUlMtVExTMS4zOiVOT19USUNLRVRTIiBcCisgICAgICAgICAiJFBfU1JWIGNydF9maWxlPSREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDM4NHIxLmNydCBrZXlfZmlsZT0kREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3AzODRyMS5rZXkgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTEyOC1DQ00tU0hBMjU2IHNpZ19hbGdzPWVjZHNhX3NlY3AzODRyMV9zaGEzODQgZ3JvdXBzPWZmZGhlMjA0OCB0bHMxM19rZXhfbW9kZXM9ZXBoZW1lcmFsIGNvb2tpZXM9MCB0aWNrZXRzPTAiIFwKKyAgICAgICAgICIkR19ORVhUX0NMSV9OT19DRVJUIC0tZGVidWc9NCAtLXNpbmdsZS1rZXktc2hhcmUgLS14NTA5Y2FmaWxlICREQVRBX0ZJTEVTX1BBVEgvdGVzdC1jYTIuY3J0IC0tcHJpb3JpdHk9Tk9ORTorQUVTLTEyOC1DQ006K1NIQTI1NjorQUVBRDorU0lHTi1FQ0RTQS1TRUNQMzg0UjEtU0hBMzg0OitHUk9VUC1GRkRIRTIwNDg6K1ZFUlMtVExTMS4zOiVOT19USUNLRVRTIiBcCiAgICAgICAgICAwIFwKICAgICAgICAgIC1zICJQcm90b2NvbCBpcyBUTFN2MS4zIiBcCiAgICAgICAgICAtcyAic2VydmVyIGhlbGxvLCBjaG9zZW4gY2lwaGVyc3VpdGU6IFRMUzEtMy1BRVMtMTI4LUNDTS1TSEEyNTYgKCBpZD00ODY4ICkiIFwKQEAgLTM5MzYsOCArMzkzOCw4IEBACiByZXF1aXJlc19nbnV0bHNfbmV4dF9ub190aWNrZXQKIHJlcXVpcmVzX2dudXRsc19uZXh0X2Rpc2FibGVfdGxzMTNfY29tcGF0CiBydW5fdGVzdCAiVExTIDEuMyBHLT5tOiBBRVNfMTI4X0NDTV9TSEEyNTYsZmZkaGUyMDQ4LGVjZHNhX3NlY3A1MjFyMV9zaGE1MTIiIFwKLSAgICAgICAgICIkUF9TUlYgY3J0X2ZpbGU9ZGF0YV9maWxlcy9lY2RzYV9zZWNwNTIxcjEuY3J0IGtleV9maWxlPWRhdGFfZmlsZXMvZWNkc2Ffc2VjcDUyMXIxLmtleSBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMTI4LUNDTS1TSEEyNTYgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDUyMXIxX3NoYTUxMiBncm91cHM9ZmZkaGUyMDQ4IHRsczEzX2tleF9tb2Rlcz1lcGhlbWVyYWwgY29va2llcz0wIHRpY2tldHM9MCIgXAotICAgICAgICAgIiRHX05FWFRfQ0xJX05PX0NFUlQgLS1kZWJ1Zz00IC0tc2luZ2xlLWtleS1zaGFyZSAtLXg1MDljYWZpbGUgZGF0YV9maWxlcy90ZXN0LWNhMi5jcnQgLS1wcmlvcml0eT1OT05FOitBRVMtMTI4LUNDTTorU0hBMjU2OitBRUFEOitTSUdOLUVDRFNBLVNFQ1A1MjFSMS1TSEE1MTI6K0dST1VQLUZGREhFMjA0ODorVkVSUy1UTFMxLjM6JU5PX1RJQ0tFVFMiIFwKKyAgICAgICAgICIkUF9TUlYgY3J0X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwNTIxcjEuY3J0IGtleV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDUyMXIxLmtleSBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMTI4LUNDTS1TSEEyNTYgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDUyMXIxX3NoYTUxMiBncm91cHM9ZmZkaGUyMDQ4IHRsczEzX2tleF9tb2Rlcz1lcGhlbWVyYWwgY29va2llcz0wIHRpY2tldHM9MCIgXAorICAgICAgICAgIiRHX05FWFRfQ0xJX05PX0NFUlQgLS1kZWJ1Zz00IC0tc2luZ2xlLWtleS1zaGFyZSAtLXg1MDljYWZpbGUgJERBVEFfRklMRVNfUEFUSC90ZXN0LWNhMi5jcnQgLS1wcmlvcml0eT1OT05FOitBRVMtMTI4LUNDTTorU0hBMjU2OitBRUFEOitTSUdOLUVDRFNBLVNFQ1A1MjFSMS1TSEE1MTI6K0dST1VQLUZGREhFMjA0ODorVkVSUy1UTFMxLjM6JU5PX1RJQ0tFVFMiIFwKICAgICAgICAgIDAgXAogICAgICAgICAgLXMgIlByb3RvY29sIGlzIFRMU3YxLjMiIFwKICAgICAgICAgIC1zICJzZXJ2ZXIgaGVsbG8sIGNob3NlbiBjaXBoZXJzdWl0ZTogVExTMS0zLUFFUy0xMjgtQ0NNLVNIQTI1NiAoIGlkPTQ4NjggKSIgXApAQCAtMzk1Nyw4ICszOTU5LDggQEAKIHJlcXVpcmVzX2dudXRsc19uZXh0X25vX3RpY2tldAogcmVxdWlyZXNfZ251dGxzX25leHRfZGlzYWJsZV90bHMxM19jb21wYXQKIHJ1bl90ZXN0ICJUTFMgMS4zIEctPm06IEFFU18xMjhfQ0NNX1NIQTI1NixmZmRoZTIwNDgscnNhX3Bzc19yc2FlX3NoYTI1NiIgXAotICAgICAgICAgIiRQX1NSViBjcnRfZmlsZT1kYXRhX2ZpbGVzL3NlcnZlcjItc2hhMjU2LmNydCBrZXlfZmlsZT1kYXRhX2ZpbGVzL3NlcnZlcjIua2V5IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0xMjgtQ0NNLVNIQTI1NiBzaWdfYWxncz1yc2FfcHNzX3JzYWVfc2hhMjU2IGdyb3Vwcz1mZmRoZTIwNDggdGxzMTNfa2V4X21vZGVzPWVwaGVtZXJhbCBjb29raWVzPTAgdGlja2V0cz0wIiBcCi0gICAgICAgICAiJEdfTkVYVF9DTElfTk9fQ0VSVCAtLWRlYnVnPTQgLS1zaW5nbGUta2V5LXNoYXJlIC0teDUwOWNhZmlsZSBkYXRhX2ZpbGVzL3Rlc3QtY2FfY2F0MTIuY3J0IC0tcHJpb3JpdHk9Tk9ORTorQUVTLTEyOC1DQ006K1NIQTI1NjorQUVBRDorU0lHTi1SU0EtUFNTLVJTQUUtU0hBMjU2OitHUk9VUC1GRkRIRTIwNDg6K1ZFUlMtVExTMS4zOiVOT19USUNLRVRTIiBcCisgICAgICAgICAiJFBfU1JWIGNydF9maWxlPSREQVRBX0ZJTEVTX1BBVEgvc2VydmVyMi1zaGEyNTYuY3J0IGtleV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvc2VydmVyMi5rZXkgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTEyOC1DQ00tU0hBMjU2IHNpZ19hbGdzPXJzYV9wc3NfcnNhZV9zaGEyNTYgZ3JvdXBzPWZmZGhlMjA0OCB0bHMxM19rZXhfbW9kZXM9ZXBoZW1lcmFsIGNvb2tpZXM9MCB0aWNrZXRzPTAiIFwKKyAgICAgICAgICIkR19ORVhUX0NMSV9OT19DRVJUIC0tZGVidWc9NCAtLXNpbmdsZS1rZXktc2hhcmUgLS14NTA5Y2FmaWxlICREQVRBX0ZJTEVTX1BBVEgvdGVzdC1jYV9jYXQxMi5jcnQgLS1wcmlvcml0eT1OT05FOitBRVMtMTI4LUNDTTorU0hBMjU2OitBRUFEOitTSUdOLVJTQS1QU1MtUlNBRS1TSEEyNTY6K0dST1VQLUZGREhFMjA0ODorVkVSUy1UTFMxLjM6JU5PX1RJQ0tFVFMiIFwKICAgICAgICAgIDAgXAogICAgICAgICAgLXMgIlByb3RvY29sIGlzIFRMU3YxLjMiIFwKICAgICAgICAgIC1zICJzZXJ2ZXIgaGVsbG8sIGNob3NlbiBjaXBoZXJzdWl0ZTogVExTMS0zLUFFUy0xMjgtQ0NNLVNIQTI1NiAoIGlkPTQ4NjggKSIgXApAQCAtMzk3Niw4ICszOTc4LDggQEAKIHJlcXVpcmVzX2dudXRsc19uZXh0X25vX3RpY2tldAogcmVxdWlyZXNfZ251dGxzX25leHRfZGlzYWJsZV90bHMxM19jb21wYXQKIHJ1bl90ZXN0ICJUTFMgMS4zIEctPm06IEFFU18xMjhfQ0NNXzhfU0hBMjU2LHNlY3AyNTZyMSxlY2RzYV9zZWNwMjU2cjFfc2hhMjU2IiBcCi0gICAgICAgICAiJFBfU1JWIGNydF9maWxlPWRhdGFfZmlsZXMvZWNkc2Ffc2VjcDI1NnIxLmNydCBrZXlfZmlsZT1kYXRhX2ZpbGVzL2VjZHNhX3NlY3AyNTZyMS5rZXkgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTEyOC1DQ00tOC1TSEEyNTYgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDI1NnIxX3NoYTI1NiBncm91cHM9c2VjcDI1NnIxIHRsczEzX2tleF9tb2Rlcz1lcGhlbWVyYWwgY29va2llcz0wIHRpY2tldHM9MCIgXAotICAgICAgICAgIiRHX05FWFRfQ0xJX05PX0NFUlQgLS1kZWJ1Zz00IC0tc2luZ2xlLWtleS1zaGFyZSAtLXg1MDljYWZpbGUgZGF0YV9maWxlcy90ZXN0LWNhMi5jcnQgLS1wcmlvcml0eT1OT05FOitBRVMtMTI4LUNDTS04OitTSEEyNTY6K0FFQUQ6K1NJR04tRUNEU0EtU0VDUDI1NlIxLVNIQTI1NjorR1JPVVAtU0VDUDI1NlIxOitWRVJTLVRMUzEuMzolTk9fVElDS0VUUyIgXAorICAgICAgICAgIiRQX1NSViBjcnRfZmlsZT0kREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3AyNTZyMS5jcnQga2V5X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwMjU2cjEua2V5IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0xMjgtQ0NNLTgtU0hBMjU2IHNpZ19hbGdzPWVjZHNhX3NlY3AyNTZyMV9zaGEyNTYgZ3JvdXBzPXNlY3AyNTZyMSB0bHMxM19rZXhfbW9kZXM9ZXBoZW1lcmFsIGNvb2tpZXM9MCB0aWNrZXRzPTAiIFwKKyAgICAgICAgICIkR19ORVhUX0NMSV9OT19DRVJUIC0tZGVidWc9NCAtLXNpbmdsZS1rZXktc2hhcmUgLS14NTA5Y2FmaWxlICREQVRBX0ZJTEVTX1BBVEgvdGVzdC1jYTIuY3J0IC0tcHJpb3JpdHk9Tk9ORTorQUVTLTEyOC1DQ00tODorU0hBMjU2OitBRUFEOitTSUdOLUVDRFNBLVNFQ1AyNTZSMS1TSEEyNTY6K0dST1VQLVNFQ1AyNTZSMTorVkVSUy1UTFMxLjM6JU5PX1RJQ0tFVFMiIFwKICAgICAgICAgIDAgXAogICAgICAgICAgLXMgIlByb3RvY29sIGlzIFRMU3YxLjMiIFwKICAgICAgICAgIC1zICJzZXJ2ZXIgaGVsbG8sIGNob3NlbiBjaXBoZXJzdWl0ZTogVExTMS0zLUFFUy0xMjgtQ0NNLTgtU0hBMjU2ICggaWQ9NDg2OSApIiBcCkBAIC0zOTk1LDggKzM5OTcsOCBAQAogcmVxdWlyZXNfZ251dGxzX25leHRfbm9fdGlja2V0CiByZXF1aXJlc19nbnV0bHNfbmV4dF9kaXNhYmxlX3RsczEzX2NvbXBhdAogcnVuX3Rlc3QgIlRMUyAxLjMgRy0+bTogQUVTXzEyOF9DQ01fOF9TSEEyNTYsc2VjcDI1NnIxLGVjZHNhX3NlY3AzODRyMV9zaGEzODQiIFwKLSAgICAgICAgICIkUF9TUlYgY3J0X2ZpbGU9ZGF0YV9maWxlcy9lY2RzYV9zZWNwMzg0cjEuY3J0IGtleV9maWxlPWRhdGFfZmlsZXMvZWNkc2Ffc2VjcDM4NHIxLmtleSBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMTI4LUNDTS04LVNIQTI1NiBzaWdfYWxncz1lY2RzYV9zZWNwMzg0cjFfc2hhMzg0IGdyb3Vwcz1zZWNwMjU2cjEgdGxzMTNfa2V4X21vZGVzPWVwaGVtZXJhbCBjb29raWVzPTAgdGlja2V0cz0wIiBcCi0gICAgICAgICAiJEdfTkVYVF9DTElfTk9fQ0VSVCAtLWRlYnVnPTQgLS1zaW5nbGUta2V5LXNoYXJlIC0teDUwOWNhZmlsZSBkYXRhX2ZpbGVzL3Rlc3QtY2EyLmNydCAtLXByaW9yaXR5PU5PTkU6K0FFUy0xMjgtQ0NNLTg6K1NIQTI1NjorQUVBRDorU0lHTi1FQ0RTQS1TRUNQMzg0UjEtU0hBMzg0OitHUk9VUC1TRUNQMjU2UjE6K1ZFUlMtVExTMS4zOiVOT19USUNLRVRTIiBcCisgICAgICAgICAiJFBfU1JWIGNydF9maWxlPSREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDM4NHIxLmNydCBrZXlfZmlsZT0kREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3AzODRyMS5rZXkgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTEyOC1DQ00tOC1TSEEyNTYgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDM4NHIxX3NoYTM4NCBncm91cHM9c2VjcDI1NnIxIHRsczEzX2tleF9tb2Rlcz1lcGhlbWVyYWwgY29va2llcz0wIHRpY2tldHM9MCIgXAorICAgICAgICAgIiRHX05FWFRfQ0xJX05PX0NFUlQgLS1kZWJ1Zz00IC0tc2luZ2xlLWtleS1zaGFyZSAtLXg1MDljYWZpbGUgJERBVEFfRklMRVNfUEFUSC90ZXN0LWNhMi5jcnQgLS1wcmlvcml0eT1OT05FOitBRVMtMTI4LUNDTS04OitTSEEyNTY6K0FFQUQ6K1NJR04tRUNEU0EtU0VDUDM4NFIxLVNIQTM4NDorR1JPVVAtU0VDUDI1NlIxOitWRVJTLVRMUzEuMzolTk9fVElDS0VUUyIgXAogICAgICAgICAgMCBcCiAgICAgICAgICAtcyAiUHJvdG9jb2wgaXMgVExTdjEuMyIgXAogICAgICAgICAgLXMgInNlcnZlciBoZWxsbywgY2hvc2VuIGNpcGhlcnN1aXRlOiBUTFMxLTMtQUVTLTEyOC1DQ00tOC1TSEEyNTYgKCBpZD00ODY5ICkiIFwKQEAgLTQwMTQsOCArNDAxNiw4IEBACiByZXF1aXJlc19nbnV0bHNfbmV4dF9ub190aWNrZXQKIHJlcXVpcmVzX2dudXRsc19uZXh0X2Rpc2FibGVfdGxzMTNfY29tcGF0CiBydW5fdGVzdCAiVExTIDEuMyBHLT5tOiBBRVNfMTI4X0NDTV84X1NIQTI1NixzZWNwMjU2cjEsZWNkc2Ffc2VjcDUyMXIxX3NoYTUxMiIgXAotICAgICAgICAgIiRQX1NSViBjcnRfZmlsZT1kYXRhX2ZpbGVzL2VjZHNhX3NlY3A1MjFyMS5jcnQga2V5X2ZpbGU9ZGF0YV9maWxlcy9lY2RzYV9zZWNwNTIxcjEua2V5IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0xMjgtQ0NNLTgtU0hBMjU2IHNpZ19hbGdzPWVjZHNhX3NlY3A1MjFyMV9zaGE1MTIgZ3JvdXBzPXNlY3AyNTZyMSB0bHMxM19rZXhfbW9kZXM9ZXBoZW1lcmFsIGNvb2tpZXM9MCB0aWNrZXRzPTAiIFwKLSAgICAgICAgICIkR19ORVhUX0NMSV9OT19DRVJUIC0tZGVidWc9NCAtLXNpbmdsZS1rZXktc2hhcmUgLS14NTA5Y2FmaWxlIGRhdGFfZmlsZXMvdGVzdC1jYTIuY3J0IC0tcHJpb3JpdHk9Tk9ORTorQUVTLTEyOC1DQ00tODorU0hBMjU2OitBRUFEOitTSUdOLUVDRFNBLVNFQ1A1MjFSMS1TSEE1MTI6K0dST1VQLVNFQ1AyNTZSMTorVkVSUy1UTFMxLjM6JU5PX1RJQ0tFVFMiIFwKKyAgICAgICAgICIkUF9TUlYgY3J0X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwNTIxcjEuY3J0IGtleV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDUyMXIxLmtleSBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMTI4LUNDTS04LVNIQTI1NiBzaWdfYWxncz1lY2RzYV9zZWNwNTIxcjFfc2hhNTEyIGdyb3Vwcz1zZWNwMjU2cjEgdGxzMTNfa2V4X21vZGVzPWVwaGVtZXJhbCBjb29raWVzPTAgdGlja2V0cz0wIiBcCisgICAgICAgICAiJEdfTkVYVF9DTElfTk9fQ0VSVCAtLWRlYnVnPTQgLS1zaW5nbGUta2V5LXNoYXJlIC0teDUwOWNhZmlsZSAkREFUQV9GSUxFU19QQVRIL3Rlc3QtY2EyLmNydCAtLXByaW9yaXR5PU5PTkU6K0FFUy0xMjgtQ0NNLTg6K1NIQTI1NjorQUVBRDorU0lHTi1FQ0RTQS1TRUNQNTIxUjEtU0hBNTEyOitHUk9VUC1TRUNQMjU2UjE6K1ZFUlMtVExTMS4zOiVOT19USUNLRVRTIiBcCiAgICAgICAgICAwIFwKICAgICAgICAgIC1zICJQcm90b2NvbCBpcyBUTFN2MS4zIiBcCiAgICAgICAgICAtcyAic2VydmVyIGhlbGxvLCBjaG9zZW4gY2lwaGVyc3VpdGU6IFRMUzEtMy1BRVMtMTI4LUNDTS04LVNIQTI1NiAoIGlkPTQ4NjkgKSIgXApAQCAtNDAzNCw4ICs0MDM2LDggQEAKIHJlcXVpcmVzX2dudXRsc19uZXh0X25vX3RpY2tldAogcmVxdWlyZXNfZ251dGxzX25leHRfZGlzYWJsZV90bHMxM19jb21wYXQKIHJ1bl90ZXN0ICJUTFMgMS4zIEctPm06IEFFU18xMjhfQ0NNXzhfU0hBMjU2LHNlY3AyNTZyMSxyc2FfcHNzX3JzYWVfc2hhMjU2IiBcCi0gICAgICAgICAiJFBfU1JWIGNydF9maWxlPWRhdGFfZmlsZXMvc2VydmVyMi1zaGEyNTYuY3J0IGtleV9maWxlPWRhdGFfZmlsZXMvc2VydmVyMi5rZXkgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTEyOC1DQ00tOC1TSEEyNTYgc2lnX2FsZ3M9cnNhX3Bzc19yc2FlX3NoYTI1NiBncm91cHM9c2VjcDI1NnIxIHRsczEzX2tleF9tb2Rlcz1lcGhlbWVyYWwgY29va2llcz0wIHRpY2tldHM9MCIgXAotICAgICAgICAgIiRHX05FWFRfQ0xJX05PX0NFUlQgLS1kZWJ1Zz00IC0tc2luZ2xlLWtleS1zaGFyZSAtLXg1MDljYWZpbGUgZGF0YV9maWxlcy90ZXN0LWNhX2NhdDEyLmNydCAtLXByaW9yaXR5PU5PTkU6K0FFUy0xMjgtQ0NNLTg6K1NIQTI1NjorQUVBRDorU0lHTi1SU0EtUFNTLVJTQUUtU0hBMjU2OitHUk9VUC1TRUNQMjU2UjE6K1ZFUlMtVExTMS4zOiVOT19USUNLRVRTIiBcCisgICAgICAgICAiJFBfU1JWIGNydF9maWxlPSREQVRBX0ZJTEVTX1BBVEgvc2VydmVyMi1zaGEyNTYuY3J0IGtleV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvc2VydmVyMi5rZXkgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTEyOC1DQ00tOC1TSEEyNTYgc2lnX2FsZ3M9cnNhX3Bzc19yc2FlX3NoYTI1NiBncm91cHM9c2VjcDI1NnIxIHRsczEzX2tleF9tb2Rlcz1lcGhlbWVyYWwgY29va2llcz0wIHRpY2tldHM9MCIgXAorICAgICAgICAgIiRHX05FWFRfQ0xJX05PX0NFUlQgLS1kZWJ1Zz00IC0tc2luZ2xlLWtleS1zaGFyZSAtLXg1MDljYWZpbGUgJERBVEFfRklMRVNfUEFUSC90ZXN0LWNhX2NhdDEyLmNydCAtLXByaW9yaXR5PU5PTkU6K0FFUy0xMjgtQ0NNLTg6K1NIQTI1NjorQUVBRDorU0lHTi1SU0EtUFNTLVJTQUUtU0hBMjU2OitHUk9VUC1TRUNQMjU2UjE6K1ZFUlMtVExTMS4zOiVOT19USUNLRVRTIiBcCiAgICAgICAgICAwIFwKICAgICAgICAgIC1zICJQcm90b2NvbCBpcyBUTFN2MS4zIiBcCiAgICAgICAgICAtcyAic2VydmVyIGhlbGxvLCBjaG9zZW4gY2lwaGVyc3VpdGU6IFRMUzEtMy1BRVMtMTI4LUNDTS04LVNIQTI1NiAoIGlkPTQ4NjkgKSIgXApAQCAtNDA1Myw4ICs0MDU1LDggQEAKIHJlcXVpcmVzX2dudXRsc19uZXh0X25vX3RpY2tldAogcmVxdWlyZXNfZ251dGxzX25leHRfZGlzYWJsZV90bHMxM19jb21wYXQKIHJ1bl90ZXN0ICJUTFMgMS4zIEctPm06IEFFU18xMjhfQ0NNXzhfU0hBMjU2LHNlY3AzODRyMSxlY2RzYV9zZWNwMjU2cjFfc2hhMjU2IiBcCi0gICAgICAgICAiJFBfU1JWIGNydF9maWxlPWRhdGFfZmlsZXMvZWNkc2Ffc2VjcDI1NnIxLmNydCBrZXlfZmlsZT1kYXRhX2ZpbGVzL2VjZHNhX3NlY3AyNTZyMS5rZXkgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTEyOC1DQ00tOC1TSEEyNTYgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDI1NnIxX3NoYTI1NiBncm91cHM9c2VjcDM4NHIxIHRsczEzX2tleF9tb2Rlcz1lcGhlbWVyYWwgY29va2llcz0wIHRpY2tldHM9MCIgXAotICAgICAgICAgIiRHX05FWFRfQ0xJX05PX0NFUlQgLS1kZWJ1Zz00IC0tc2luZ2xlLWtleS1zaGFyZSAtLXg1MDljYWZpbGUgZGF0YV9maWxlcy90ZXN0LWNhMi5jcnQgLS1wcmlvcml0eT1OT05FOitBRVMtMTI4LUNDTS04OitTSEEyNTY6K0FFQUQ6K1NJR04tRUNEU0EtU0VDUDI1NlIxLVNIQTI1NjorR1JPVVAtU0VDUDM4NFIxOitWRVJTLVRMUzEuMzolTk9fVElDS0VUUyIgXAorICAgICAgICAgIiRQX1NSViBjcnRfZmlsZT0kREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3AyNTZyMS5jcnQga2V5X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwMjU2cjEua2V5IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0xMjgtQ0NNLTgtU0hBMjU2IHNpZ19hbGdzPWVjZHNhX3NlY3AyNTZyMV9zaGEyNTYgZ3JvdXBzPXNlY3AzODRyMSB0bHMxM19rZXhfbW9kZXM9ZXBoZW1lcmFsIGNvb2tpZXM9MCB0aWNrZXRzPTAiIFwKKyAgICAgICAgICIkR19ORVhUX0NMSV9OT19DRVJUIC0tZGVidWc9NCAtLXNpbmdsZS1rZXktc2hhcmUgLS14NTA5Y2FmaWxlICREQVRBX0ZJTEVTX1BBVEgvdGVzdC1jYTIuY3J0IC0tcHJpb3JpdHk9Tk9ORTorQUVTLTEyOC1DQ00tODorU0hBMjU2OitBRUFEOitTSUdOLUVDRFNBLVNFQ1AyNTZSMS1TSEEyNTY6K0dST1VQLVNFQ1AzODRSMTorVkVSUy1UTFMxLjM6JU5PX1RJQ0tFVFMiIFwKICAgICAgICAgIDAgXAogICAgICAgICAgLXMgIlByb3RvY29sIGlzIFRMU3YxLjMiIFwKICAgICAgICAgIC1zICJzZXJ2ZXIgaGVsbG8sIGNob3NlbiBjaXBoZXJzdWl0ZTogVExTMS0zLUFFUy0xMjgtQ0NNLTgtU0hBMjU2ICggaWQ9NDg2OSApIiBcCkBAIC00MDcyLDggKzQwNzQsOCBAQAogcmVxdWlyZXNfZ251dGxzX25leHRfbm9fdGlja2V0CiByZXF1aXJlc19nbnV0bHNfbmV4dF9kaXNhYmxlX3RsczEzX2NvbXBhdAogcnVuX3Rlc3QgIlRMUyAxLjMgRy0+bTogQUVTXzEyOF9DQ01fOF9TSEEyNTYsc2VjcDM4NHIxLGVjZHNhX3NlY3AzODRyMV9zaGEzODQiIFwKLSAgICAgICAgICIkUF9TUlYgY3J0X2ZpbGU9ZGF0YV9maWxlcy9lY2RzYV9zZWNwMzg0cjEuY3J0IGtleV9maWxlPWRhdGFfZmlsZXMvZWNkc2Ffc2VjcDM4NHIxLmtleSBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMTI4LUNDTS04LVNIQTI1NiBzaWdfYWxncz1lY2RzYV9zZWNwMzg0cjFfc2hhMzg0IGdyb3Vwcz1zZWNwMzg0cjEgdGxzMTNfa2V4X21vZGVzPWVwaGVtZXJhbCBjb29raWVzPTAgdGlja2V0cz0wIiBcCi0gICAgICAgICAiJEdfTkVYVF9DTElfTk9fQ0VSVCAtLWRlYnVnPTQgLS1zaW5nbGUta2V5LXNoYXJlIC0teDUwOWNhZmlsZSBkYXRhX2ZpbGVzL3Rlc3QtY2EyLmNydCAtLXByaW9yaXR5PU5PTkU6K0FFUy0xMjgtQ0NNLTg6K1NIQTI1NjorQUVBRDorU0lHTi1FQ0RTQS1TRUNQMzg0UjEtU0hBMzg0OitHUk9VUC1TRUNQMzg0UjE6K1ZFUlMtVExTMS4zOiVOT19USUNLRVRTIiBcCisgICAgICAgICAiJFBfU1JWIGNydF9maWxlPSREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDM4NHIxLmNydCBrZXlfZmlsZT0kREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3AzODRyMS5rZXkgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTEyOC1DQ00tOC1TSEEyNTYgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDM4NHIxX3NoYTM4NCBncm91cHM9c2VjcDM4NHIxIHRsczEzX2tleF9tb2Rlcz1lcGhlbWVyYWwgY29va2llcz0wIHRpY2tldHM9MCIgXAorICAgICAgICAgIiRHX05FWFRfQ0xJX05PX0NFUlQgLS1kZWJ1Zz00IC0tc2luZ2xlLWtleS1zaGFyZSAtLXg1MDljYWZpbGUgJERBVEFfRklMRVNfUEFUSC90ZXN0LWNhMi5jcnQgLS1wcmlvcml0eT1OT05FOitBRVMtMTI4LUNDTS04OitTSEEyNTY6K0FFQUQ6K1NJR04tRUNEU0EtU0VDUDM4NFIxLVNIQTM4NDorR1JPVVAtU0VDUDM4NFIxOitWRVJTLVRMUzEuMzolTk9fVElDS0VUUyIgXAogICAgICAgICAgMCBcCiAgICAgICAgICAtcyAiUHJvdG9jb2wgaXMgVExTdjEuMyIgXAogICAgICAgICAgLXMgInNlcnZlciBoZWxsbywgY2hvc2VuIGNpcGhlcnN1aXRlOiBUTFMxLTMtQUVTLTEyOC1DQ00tOC1TSEEyNTYgKCBpZD00ODY5ICkiIFwKQEAgLTQwOTEsOCArNDA5Myw4IEBACiByZXF1aXJlc19nbnV0bHNfbmV4dF9ub190aWNrZXQKIHJlcXVpcmVzX2dudXRsc19uZXh0X2Rpc2FibGVfdGxzMTNfY29tcGF0CiBydW5fdGVzdCAiVExTIDEuMyBHLT5tOiBBRVNfMTI4X0NDTV84X1NIQTI1NixzZWNwMzg0cjEsZWNkc2Ffc2VjcDUyMXIxX3NoYTUxMiIgXAotICAgICAgICAgIiRQX1NSViBjcnRfZmlsZT1kYXRhX2ZpbGVzL2VjZHNhX3NlY3A1MjFyMS5jcnQga2V5X2ZpbGU9ZGF0YV9maWxlcy9lY2RzYV9zZWNwNTIxcjEua2V5IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0xMjgtQ0NNLTgtU0hBMjU2IHNpZ19hbGdzPWVjZHNhX3NlY3A1MjFyMV9zaGE1MTIgZ3JvdXBzPXNlY3AzODRyMSB0bHMxM19rZXhfbW9kZXM9ZXBoZW1lcmFsIGNvb2tpZXM9MCB0aWNrZXRzPTAiIFwKLSAgICAgICAgICIkR19ORVhUX0NMSV9OT19DRVJUIC0tZGVidWc9NCAtLXNpbmdsZS1rZXktc2hhcmUgLS14NTA5Y2FmaWxlIGRhdGFfZmlsZXMvdGVzdC1jYTIuY3J0IC0tcHJpb3JpdHk9Tk9ORTorQUVTLTEyOC1DQ00tODorU0hBMjU2OitBRUFEOitTSUdOLUVDRFNBLVNFQ1A1MjFSMS1TSEE1MTI6K0dST1VQLVNFQ1AzODRSMTorVkVSUy1UTFMxLjM6JU5PX1RJQ0tFVFMiIFwKKyAgICAgICAgICIkUF9TUlYgY3J0X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwNTIxcjEuY3J0IGtleV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDUyMXIxLmtleSBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMTI4LUNDTS04LVNIQTI1NiBzaWdfYWxncz1lY2RzYV9zZWNwNTIxcjFfc2hhNTEyIGdyb3Vwcz1zZWNwMzg0cjEgdGxzMTNfa2V4X21vZGVzPWVwaGVtZXJhbCBjb29raWVzPTAgdGlja2V0cz0wIiBcCisgICAgICAgICAiJEdfTkVYVF9DTElfTk9fQ0VSVCAtLWRlYnVnPTQgLS1zaW5nbGUta2V5LXNoYXJlIC0teDUwOWNhZmlsZSAkREFUQV9GSUxFU19QQVRIL3Rlc3QtY2EyLmNydCAtLXByaW9yaXR5PU5PTkU6K0FFUy0xMjgtQ0NNLTg6K1NIQTI1NjorQUVBRDorU0lHTi1FQ0RTQS1TRUNQNTIxUjEtU0hBNTEyOitHUk9VUC1TRUNQMzg0UjE6K1ZFUlMtVExTMS4zOiVOT19USUNLRVRTIiBcCiAgICAgICAgICAwIFwKICAgICAgICAgIC1zICJQcm90b2NvbCBpcyBUTFN2MS4zIiBcCiAgICAgICAgICAtcyAic2VydmVyIGhlbGxvLCBjaG9zZW4gY2lwaGVyc3VpdGU6IFRMUzEtMy1BRVMtMTI4LUNDTS04LVNIQTI1NiAoIGlkPTQ4NjkgKSIgXApAQCAtNDExMSw4ICs0MTEzLDggQEAKIHJlcXVpcmVzX2dudXRsc19uZXh0X25vX3RpY2tldAogcmVxdWlyZXNfZ251dGxzX25leHRfZGlzYWJsZV90bHMxM19jb21wYXQKIHJ1bl90ZXN0ICJUTFMgMS4zIEctPm06IEFFU18xMjhfQ0NNXzhfU0hBMjU2LHNlY3AzODRyMSxyc2FfcHNzX3JzYWVfc2hhMjU2IiBcCi0gICAgICAgICAiJFBfU1JWIGNydF9maWxlPWRhdGFfZmlsZXMvc2VydmVyMi1zaGEyNTYuY3J0IGtleV9maWxlPWRhdGFfZmlsZXMvc2VydmVyMi5rZXkgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTEyOC1DQ00tOC1TSEEyNTYgc2lnX2FsZ3M9cnNhX3Bzc19yc2FlX3NoYTI1NiBncm91cHM9c2VjcDM4NHIxIHRsczEzX2tleF9tb2Rlcz1lcGhlbWVyYWwgY29va2llcz0wIHRpY2tldHM9MCIgXAotICAgICAgICAgIiRHX05FWFRfQ0xJX05PX0NFUlQgLS1kZWJ1Zz00IC0tc2luZ2xlLWtleS1zaGFyZSAtLXg1MDljYWZpbGUgZGF0YV9maWxlcy90ZXN0LWNhX2NhdDEyLmNydCAtLXByaW9yaXR5PU5PTkU6K0FFUy0xMjgtQ0NNLTg6K1NIQTI1NjorQUVBRDorU0lHTi1SU0EtUFNTLVJTQUUtU0hBMjU2OitHUk9VUC1TRUNQMzg0UjE6K1ZFUlMtVExTMS4zOiVOT19USUNLRVRTIiBcCisgICAgICAgICAiJFBfU1JWIGNydF9maWxlPSREQVRBX0ZJTEVTX1BBVEgvc2VydmVyMi1zaGEyNTYuY3J0IGtleV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvc2VydmVyMi5rZXkgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTEyOC1DQ00tOC1TSEEyNTYgc2lnX2FsZ3M9cnNhX3Bzc19yc2FlX3NoYTI1NiBncm91cHM9c2VjcDM4NHIxIHRsczEzX2tleF9tb2Rlcz1lcGhlbWVyYWwgY29va2llcz0wIHRpY2tldHM9MCIgXAorICAgICAgICAgIiRHX05FWFRfQ0xJX05PX0NFUlQgLS1kZWJ1Zz00IC0tc2luZ2xlLWtleS1zaGFyZSAtLXg1MDljYWZpbGUgJERBVEFfRklMRVNfUEFUSC90ZXN0LWNhX2NhdDEyLmNydCAtLXByaW9yaXR5PU5PTkU6K0FFUy0xMjgtQ0NNLTg6K1NIQTI1NjorQUVBRDorU0lHTi1SU0EtUFNTLVJTQUUtU0hBMjU2OitHUk9VUC1TRUNQMzg0UjE6K1ZFUlMtVExTMS4zOiVOT19USUNLRVRTIiBcCiAgICAgICAgICAwIFwKICAgICAgICAgIC1zICJQcm90b2NvbCBpcyBUTFN2MS4zIiBcCiAgICAgICAgICAtcyAic2VydmVyIGhlbGxvLCBjaG9zZW4gY2lwaGVyc3VpdGU6IFRMUzEtMy1BRVMtMTI4LUNDTS04LVNIQTI1NiAoIGlkPTQ4NjkgKSIgXApAQCAtNDEzMCw4ICs0MTMyLDggQEAKIHJlcXVpcmVzX2dudXRsc19uZXh0X25vX3RpY2tldAogcmVxdWlyZXNfZ251dGxzX25leHRfZGlzYWJsZV90bHMxM19jb21wYXQKIHJ1bl90ZXN0ICJUTFMgMS4zIEctPm06IEFFU18xMjhfQ0NNXzhfU0hBMjU2LHNlY3A1MjFyMSxlY2RzYV9zZWNwMjU2cjFfc2hhMjU2IiBcCi0gICAgICAgICAiJFBfU1JWIGNydF9maWxlPWRhdGFfZmlsZXMvZWNkc2Ffc2VjcDI1NnIxLmNydCBrZXlfZmlsZT1kYXRhX2ZpbGVzL2VjZHNhX3NlY3AyNTZyMS5rZXkgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTEyOC1DQ00tOC1TSEEyNTYgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDI1NnIxX3NoYTI1NiBncm91cHM9c2VjcDUyMXIxIHRsczEzX2tleF9tb2Rlcz1lcGhlbWVyYWwgY29va2llcz0wIHRpY2tldHM9MCIgXAotICAgICAgICAgIiRHX05FWFRfQ0xJX05PX0NFUlQgLS1kZWJ1Zz00IC0tc2luZ2xlLWtleS1zaGFyZSAtLXg1MDljYWZpbGUgZGF0YV9maWxlcy90ZXN0LWNhMi5jcnQgLS1wcmlvcml0eT1OT05FOitBRVMtMTI4LUNDTS04OitTSEEyNTY6K0FFQUQ6K1NJR04tRUNEU0EtU0VDUDI1NlIxLVNIQTI1NjorR1JPVVAtU0VDUDUyMVIxOitWRVJTLVRMUzEuMzolTk9fVElDS0VUUyIgXAorICAgICAgICAgIiRQX1NSViBjcnRfZmlsZT0kREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3AyNTZyMS5jcnQga2V5X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwMjU2cjEua2V5IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0xMjgtQ0NNLTgtU0hBMjU2IHNpZ19hbGdzPWVjZHNhX3NlY3AyNTZyMV9zaGEyNTYgZ3JvdXBzPXNlY3A1MjFyMSB0bHMxM19rZXhfbW9kZXM9ZXBoZW1lcmFsIGNvb2tpZXM9MCB0aWNrZXRzPTAiIFwKKyAgICAgICAgICIkR19ORVhUX0NMSV9OT19DRVJUIC0tZGVidWc9NCAtLXNpbmdsZS1rZXktc2hhcmUgLS14NTA5Y2FmaWxlICREQVRBX0ZJTEVTX1BBVEgvdGVzdC1jYTIuY3J0IC0tcHJpb3JpdHk9Tk9ORTorQUVTLTEyOC1DQ00tODorU0hBMjU2OitBRUFEOitTSUdOLUVDRFNBLVNFQ1AyNTZSMS1TSEEyNTY6K0dST1VQLVNFQ1A1MjFSMTorVkVSUy1UTFMxLjM6JU5PX1RJQ0tFVFMiIFwKICAgICAgICAgIDAgXAogICAgICAgICAgLXMgIlByb3RvY29sIGlzIFRMU3YxLjMiIFwKICAgICAgICAgIC1zICJzZXJ2ZXIgaGVsbG8sIGNob3NlbiBjaXBoZXJzdWl0ZTogVExTMS0zLUFFUy0xMjgtQ0NNLTgtU0hBMjU2ICggaWQ9NDg2OSApIiBcCkBAIC00MTQ5LDggKzQxNTEsOCBAQAogcmVxdWlyZXNfZ251dGxzX25leHRfbm9fdGlja2V0CiByZXF1aXJlc19nbnV0bHNfbmV4dF9kaXNhYmxlX3RsczEzX2NvbXBhdAogcnVuX3Rlc3QgIlRMUyAxLjMgRy0+bTogQUVTXzEyOF9DQ01fOF9TSEEyNTYsc2VjcDUyMXIxLGVjZHNhX3NlY3AzODRyMV9zaGEzODQiIFwKLSAgICAgICAgICIkUF9TUlYgY3J0X2ZpbGU9ZGF0YV9maWxlcy9lY2RzYV9zZWNwMzg0cjEuY3J0IGtleV9maWxlPWRhdGFfZmlsZXMvZWNkc2Ffc2VjcDM4NHIxLmtleSBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMTI4LUNDTS04LVNIQTI1NiBzaWdfYWxncz1lY2RzYV9zZWNwMzg0cjFfc2hhMzg0IGdyb3Vwcz1zZWNwNTIxcjEgdGxzMTNfa2V4X21vZGVzPWVwaGVtZXJhbCBjb29raWVzPTAgdGlja2V0cz0wIiBcCi0gICAgICAgICAiJEdfTkVYVF9DTElfTk9fQ0VSVCAtLWRlYnVnPTQgLS1zaW5nbGUta2V5LXNoYXJlIC0teDUwOWNhZmlsZSBkYXRhX2ZpbGVzL3Rlc3QtY2EyLmNydCAtLXByaW9yaXR5PU5PTkU6K0FFUy0xMjgtQ0NNLTg6K1NIQTI1NjorQUVBRDorU0lHTi1FQ0RTQS1TRUNQMzg0UjEtU0hBMzg0OitHUk9VUC1TRUNQNTIxUjE6K1ZFUlMtVExTMS4zOiVOT19USUNLRVRTIiBcCisgICAgICAgICAiJFBfU1JWIGNydF9maWxlPSREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDM4NHIxLmNydCBrZXlfZmlsZT0kREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3AzODRyMS5rZXkgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTEyOC1DQ00tOC1TSEEyNTYgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDM4NHIxX3NoYTM4NCBncm91cHM9c2VjcDUyMXIxIHRsczEzX2tleF9tb2Rlcz1lcGhlbWVyYWwgY29va2llcz0wIHRpY2tldHM9MCIgXAorICAgICAgICAgIiRHX05FWFRfQ0xJX05PX0NFUlQgLS1kZWJ1Zz00IC0tc2luZ2xlLWtleS1zaGFyZSAtLXg1MDljYWZpbGUgJERBVEFfRklMRVNfUEFUSC90ZXN0LWNhMi5jcnQgLS1wcmlvcml0eT1OT05FOitBRVMtMTI4LUNDTS04OitTSEEyNTY6K0FFQUQ6K1NJR04tRUNEU0EtU0VDUDM4NFIxLVNIQTM4NDorR1JPVVAtU0VDUDUyMVIxOitWRVJTLVRMUzEuMzolTk9fVElDS0VUUyIgXAogICAgICAgICAgMCBcCiAgICAgICAgICAtcyAiUHJvdG9jb2wgaXMgVExTdjEuMyIgXAogICAgICAgICAgLXMgInNlcnZlciBoZWxsbywgY2hvc2VuIGNpcGhlcnN1aXRlOiBUTFMxLTMtQUVTLTEyOC1DQ00tOC1TSEEyNTYgKCBpZD00ODY5ICkiIFwKQEAgLTQxNjgsOCArNDE3MCw4IEBACiByZXF1aXJlc19nbnV0bHNfbmV4dF9ub190aWNrZXQKIHJlcXVpcmVzX2dudXRsc19uZXh0X2Rpc2FibGVfdGxzMTNfY29tcGF0CiBydW5fdGVzdCAiVExTIDEuMyBHLT5tOiBBRVNfMTI4X0NDTV84X1NIQTI1NixzZWNwNTIxcjEsZWNkc2Ffc2VjcDUyMXIxX3NoYTUxMiIgXAotICAgICAgICAgIiRQX1NSViBjcnRfZmlsZT1kYXRhX2ZpbGVzL2VjZHNhX3NlY3A1MjFyMS5jcnQga2V5X2ZpbGU9ZGF0YV9maWxlcy9lY2RzYV9zZWNwNTIxcjEua2V5IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0xMjgtQ0NNLTgtU0hBMjU2IHNpZ19hbGdzPWVjZHNhX3NlY3A1MjFyMV9zaGE1MTIgZ3JvdXBzPXNlY3A1MjFyMSB0bHMxM19rZXhfbW9kZXM9ZXBoZW1lcmFsIGNvb2tpZXM9MCB0aWNrZXRzPTAiIFwKLSAgICAgICAgICIkR19ORVhUX0NMSV9OT19DRVJUIC0tZGVidWc9NCAtLXNpbmdsZS1rZXktc2hhcmUgLS14NTA5Y2FmaWxlIGRhdGFfZmlsZXMvdGVzdC1jYTIuY3J0IC0tcHJpb3JpdHk9Tk9ORTorQUVTLTEyOC1DQ00tODorU0hBMjU2OitBRUFEOitTSUdOLUVDRFNBLVNFQ1A1MjFSMS1TSEE1MTI6K0dST1VQLVNFQ1A1MjFSMTorVkVSUy1UTFMxLjM6JU5PX1RJQ0tFVFMiIFwKKyAgICAgICAgICIkUF9TUlYgY3J0X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwNTIxcjEuY3J0IGtleV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDUyMXIxLmtleSBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMTI4LUNDTS04LVNIQTI1NiBzaWdfYWxncz1lY2RzYV9zZWNwNTIxcjFfc2hhNTEyIGdyb3Vwcz1zZWNwNTIxcjEgdGxzMTNfa2V4X21vZGVzPWVwaGVtZXJhbCBjb29raWVzPTAgdGlja2V0cz0wIiBcCisgICAgICAgICAiJEdfTkVYVF9DTElfTk9fQ0VSVCAtLWRlYnVnPTQgLS1zaW5nbGUta2V5LXNoYXJlIC0teDUwOWNhZmlsZSAkREFUQV9GSUxFU19QQVRIL3Rlc3QtY2EyLmNydCAtLXByaW9yaXR5PU5PTkU6K0FFUy0xMjgtQ0NNLTg6K1NIQTI1NjorQUVBRDorU0lHTi1FQ0RTQS1TRUNQNTIxUjEtU0hBNTEyOitHUk9VUC1TRUNQNTIxUjE6K1ZFUlMtVExTMS4zOiVOT19USUNLRVRTIiBcCiAgICAgICAgICAwIFwKICAgICAgICAgIC1zICJQcm90b2NvbCBpcyBUTFN2MS4zIiBcCiAgICAgICAgICAtcyAic2VydmVyIGhlbGxvLCBjaG9zZW4gY2lwaGVyc3VpdGU6IFRMUzEtMy1BRVMtMTI4LUNDTS04LVNIQTI1NiAoIGlkPTQ4NjkgKSIgXApAQCAtNDE4OCw4ICs0MTkwLDggQEAKIHJlcXVpcmVzX2dudXRsc19uZXh0X25vX3RpY2tldAogcmVxdWlyZXNfZ251dGxzX25leHRfZGlzYWJsZV90bHMxM19jb21wYXQKIHJ1bl90ZXN0ICJUTFMgMS4zIEctPm06IEFFU18xMjhfQ0NNXzhfU0hBMjU2LHNlY3A1MjFyMSxyc2FfcHNzX3JzYWVfc2hhMjU2IiBcCi0gICAgICAgICAiJFBfU1JWIGNydF9maWxlPWRhdGFfZmlsZXMvc2VydmVyMi1zaGEyNTYuY3J0IGtleV9maWxlPWRhdGFfZmlsZXMvc2VydmVyMi5rZXkgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTEyOC1DQ00tOC1TSEEyNTYgc2lnX2FsZ3M9cnNhX3Bzc19yc2FlX3NoYTI1NiBncm91cHM9c2VjcDUyMXIxIHRsczEzX2tleF9tb2Rlcz1lcGhlbWVyYWwgY29va2llcz0wIHRpY2tldHM9MCIgXAotICAgICAgICAgIiRHX05FWFRfQ0xJX05PX0NFUlQgLS1kZWJ1Zz00IC0tc2luZ2xlLWtleS1zaGFyZSAtLXg1MDljYWZpbGUgZGF0YV9maWxlcy90ZXN0LWNhX2NhdDEyLmNydCAtLXByaW9yaXR5PU5PTkU6K0FFUy0xMjgtQ0NNLTg6K1NIQTI1NjorQUVBRDorU0lHTi1SU0EtUFNTLVJTQUUtU0hBMjU2OitHUk9VUC1TRUNQNTIxUjE6K1ZFUlMtVExTMS4zOiVOT19USUNLRVRTIiBcCisgICAgICAgICAiJFBfU1JWIGNydF9maWxlPSREQVRBX0ZJTEVTX1BBVEgvc2VydmVyMi1zaGEyNTYuY3J0IGtleV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvc2VydmVyMi5rZXkgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTEyOC1DQ00tOC1TSEEyNTYgc2lnX2FsZ3M9cnNhX3Bzc19yc2FlX3NoYTI1NiBncm91cHM9c2VjcDUyMXIxIHRsczEzX2tleF9tb2Rlcz1lcGhlbWVyYWwgY29va2llcz0wIHRpY2tldHM9MCIgXAorICAgICAgICAgIiRHX05FWFRfQ0xJX05PX0NFUlQgLS1kZWJ1Zz00IC0tc2luZ2xlLWtleS1zaGFyZSAtLXg1MDljYWZpbGUgJERBVEFfRklMRVNfUEFUSC90ZXN0LWNhX2NhdDEyLmNydCAtLXByaW9yaXR5PU5PTkU6K0FFUy0xMjgtQ0NNLTg6K1NIQTI1NjorQUVBRDorU0lHTi1SU0EtUFNTLVJTQUUtU0hBMjU2OitHUk9VUC1TRUNQNTIxUjE6K1ZFUlMtVExTMS4zOiVOT19USUNLRVRTIiBcCiAgICAgICAgICAwIFwKICAgICAgICAgIC1zICJQcm90b2NvbCBpcyBUTFN2MS4zIiBcCiAgICAgICAgICAtcyAic2VydmVyIGhlbGxvLCBjaG9zZW4gY2lwaGVyc3VpdGU6IFRMUzEtMy1BRVMtMTI4LUNDTS04LVNIQTI1NiAoIGlkPTQ4NjkgKSIgXApAQCAtNDIwNyw4ICs0MjA5LDggQEAKIHJlcXVpcmVzX2dudXRsc19uZXh0X25vX3RpY2tldAogcmVxdWlyZXNfZ251dGxzX25leHRfZGlzYWJsZV90bHMxM19jb21wYXQKIHJ1bl90ZXN0ICJUTFMgMS4zIEctPm06IEFFU18xMjhfQ0NNXzhfU0hBMjU2LHgyNTUxOSxlY2RzYV9zZWNwMjU2cjFfc2hhMjU2IiBcCi0gICAgICAgICAiJFBfU1JWIGNydF9maWxlPWRhdGFfZmlsZXMvZWNkc2Ffc2VjcDI1NnIxLmNydCBrZXlfZmlsZT1kYXRhX2ZpbGVzL2VjZHNhX3NlY3AyNTZyMS5rZXkgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTEyOC1DQ00tOC1TSEEyNTYgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDI1NnIxX3NoYTI1NiBncm91cHM9eDI1NTE5IHRsczEzX2tleF9tb2Rlcz1lcGhlbWVyYWwgY29va2llcz0wIHRpY2tldHM9MCIgXAotICAgICAgICAgIiRHX05FWFRfQ0xJX05PX0NFUlQgLS1kZWJ1Zz00IC0tc2luZ2xlLWtleS1zaGFyZSAtLXg1MDljYWZpbGUgZGF0YV9maWxlcy90ZXN0LWNhMi5jcnQgLS1wcmlvcml0eT1OT05FOitBRVMtMTI4LUNDTS04OitTSEEyNTY6K0FFQUQ6K1NJR04tRUNEU0EtU0VDUDI1NlIxLVNIQTI1NjorR1JPVVAtWDI1NTE5OitWRVJTLVRMUzEuMzolTk9fVElDS0VUUyIgXAorICAgICAgICAgIiRQX1NSViBjcnRfZmlsZT0kREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3AyNTZyMS5jcnQga2V5X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwMjU2cjEua2V5IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0xMjgtQ0NNLTgtU0hBMjU2IHNpZ19hbGdzPWVjZHNhX3NlY3AyNTZyMV9zaGEyNTYgZ3JvdXBzPXgyNTUxOSB0bHMxM19rZXhfbW9kZXM9ZXBoZW1lcmFsIGNvb2tpZXM9MCB0aWNrZXRzPTAiIFwKKyAgICAgICAgICIkR19ORVhUX0NMSV9OT19DRVJUIC0tZGVidWc9NCAtLXNpbmdsZS1rZXktc2hhcmUgLS14NTA5Y2FmaWxlICREQVRBX0ZJTEVTX1BBVEgvdGVzdC1jYTIuY3J0IC0tcHJpb3JpdHk9Tk9ORTorQUVTLTEyOC1DQ00tODorU0hBMjU2OitBRUFEOitTSUdOLUVDRFNBLVNFQ1AyNTZSMS1TSEEyNTY6K0dST1VQLVgyNTUxOTorVkVSUy1UTFMxLjM6JU5PX1RJQ0tFVFMiIFwKICAgICAgICAgIDAgXAogICAgICAgICAgLXMgIlByb3RvY29sIGlzIFRMU3YxLjMiIFwKICAgICAgICAgIC1zICJzZXJ2ZXIgaGVsbG8sIGNob3NlbiBjaXBoZXJzdWl0ZTogVExTMS0zLUFFUy0xMjgtQ0NNLTgtU0hBMjU2ICggaWQ9NDg2OSApIiBcCkBAIC00MjI2LDggKzQyMjgsOCBAQAogcmVxdWlyZXNfZ251dGxzX25leHRfbm9fdGlja2V0CiByZXF1aXJlc19nbnV0bHNfbmV4dF9kaXNhYmxlX3RsczEzX2NvbXBhdAogcnVuX3Rlc3QgIlRMUyAxLjMgRy0+bTogQUVTXzEyOF9DQ01fOF9TSEEyNTYseDI1NTE5LGVjZHNhX3NlY3AzODRyMV9zaGEzODQiIFwKLSAgICAgICAgICIkUF9TUlYgY3J0X2ZpbGU9ZGF0YV9maWxlcy9lY2RzYV9zZWNwMzg0cjEuY3J0IGtleV9maWxlPWRhdGFfZmlsZXMvZWNkc2Ffc2VjcDM4NHIxLmtleSBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMTI4LUNDTS04LVNIQTI1NiBzaWdfYWxncz1lY2RzYV9zZWNwMzg0cjFfc2hhMzg0IGdyb3Vwcz14MjU1MTkgdGxzMTNfa2V4X21vZGVzPWVwaGVtZXJhbCBjb29raWVzPTAgdGlja2V0cz0wIiBcCi0gICAgICAgICAiJEdfTkVYVF9DTElfTk9fQ0VSVCAtLWRlYnVnPTQgLS1zaW5nbGUta2V5LXNoYXJlIC0teDUwOWNhZmlsZSBkYXRhX2ZpbGVzL3Rlc3QtY2EyLmNydCAtLXByaW9yaXR5PU5PTkU6K0FFUy0xMjgtQ0NNLTg6K1NIQTI1NjorQUVBRDorU0lHTi1FQ0RTQS1TRUNQMzg0UjEtU0hBMzg0OitHUk9VUC1YMjU1MTk6K1ZFUlMtVExTMS4zOiVOT19USUNLRVRTIiBcCisgICAgICAgICAiJFBfU1JWIGNydF9maWxlPSREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDM4NHIxLmNydCBrZXlfZmlsZT0kREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3AzODRyMS5rZXkgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTEyOC1DQ00tOC1TSEEyNTYgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDM4NHIxX3NoYTM4NCBncm91cHM9eDI1NTE5IHRsczEzX2tleF9tb2Rlcz1lcGhlbWVyYWwgY29va2llcz0wIHRpY2tldHM9MCIgXAorICAgICAgICAgIiRHX05FWFRfQ0xJX05PX0NFUlQgLS1kZWJ1Zz00IC0tc2luZ2xlLWtleS1zaGFyZSAtLXg1MDljYWZpbGUgJERBVEFfRklMRVNfUEFUSC90ZXN0LWNhMi5jcnQgLS1wcmlvcml0eT1OT05FOitBRVMtMTI4LUNDTS04OitTSEEyNTY6K0FFQUQ6K1NJR04tRUNEU0EtU0VDUDM4NFIxLVNIQTM4NDorR1JPVVAtWDI1NTE5OitWRVJTLVRMUzEuMzolTk9fVElDS0VUUyIgXAogICAgICAgICAgMCBcCiAgICAgICAgICAtcyAiUHJvdG9jb2wgaXMgVExTdjEuMyIgXAogICAgICAgICAgLXMgInNlcnZlciBoZWxsbywgY2hvc2VuIGNpcGhlcnN1aXRlOiBUTFMxLTMtQUVTLTEyOC1DQ00tOC1TSEEyNTYgKCBpZD00ODY5ICkiIFwKQEAgLTQyNDUsOCArNDI0Nyw4IEBACiByZXF1aXJlc19nbnV0bHNfbmV4dF9ub190aWNrZXQKIHJlcXVpcmVzX2dudXRsc19uZXh0X2Rpc2FibGVfdGxzMTNfY29tcGF0CiBydW5fdGVzdCAiVExTIDEuMyBHLT5tOiBBRVNfMTI4X0NDTV84X1NIQTI1Nix4MjU1MTksZWNkc2Ffc2VjcDUyMXIxX3NoYTUxMiIgXAotICAgICAgICAgIiRQX1NSViBjcnRfZmlsZT1kYXRhX2ZpbGVzL2VjZHNhX3NlY3A1MjFyMS5jcnQga2V5X2ZpbGU9ZGF0YV9maWxlcy9lY2RzYV9zZWNwNTIxcjEua2V5IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0xMjgtQ0NNLTgtU0hBMjU2IHNpZ19hbGdzPWVjZHNhX3NlY3A1MjFyMV9zaGE1MTIgZ3JvdXBzPXgyNTUxOSB0bHMxM19rZXhfbW9kZXM9ZXBoZW1lcmFsIGNvb2tpZXM9MCB0aWNrZXRzPTAiIFwKLSAgICAgICAgICIkR19ORVhUX0NMSV9OT19DRVJUIC0tZGVidWc9NCAtLXNpbmdsZS1rZXktc2hhcmUgLS14NTA5Y2FmaWxlIGRhdGFfZmlsZXMvdGVzdC1jYTIuY3J0IC0tcHJpb3JpdHk9Tk9ORTorQUVTLTEyOC1DQ00tODorU0hBMjU2OitBRUFEOitTSUdOLUVDRFNBLVNFQ1A1MjFSMS1TSEE1MTI6K0dST1VQLVgyNTUxOTorVkVSUy1UTFMxLjM6JU5PX1RJQ0tFVFMiIFwKKyAgICAgICAgICIkUF9TUlYgY3J0X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwNTIxcjEuY3J0IGtleV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDUyMXIxLmtleSBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMTI4LUNDTS04LVNIQTI1NiBzaWdfYWxncz1lY2RzYV9zZWNwNTIxcjFfc2hhNTEyIGdyb3Vwcz14MjU1MTkgdGxzMTNfa2V4X21vZGVzPWVwaGVtZXJhbCBjb29raWVzPTAgdGlja2V0cz0wIiBcCisgICAgICAgICAiJEdfTkVYVF9DTElfTk9fQ0VSVCAtLWRlYnVnPTQgLS1zaW5nbGUta2V5LXNoYXJlIC0teDUwOWNhZmlsZSAkREFUQV9GSUxFU19QQVRIL3Rlc3QtY2EyLmNydCAtLXByaW9yaXR5PU5PTkU6K0FFUy0xMjgtQ0NNLTg6K1NIQTI1NjorQUVBRDorU0lHTi1FQ0RTQS1TRUNQNTIxUjEtU0hBNTEyOitHUk9VUC1YMjU1MTk6K1ZFUlMtVExTMS4zOiVOT19USUNLRVRTIiBcCiAgICAgICAgICAwIFwKICAgICAgICAgIC1zICJQcm90b2NvbCBpcyBUTFN2MS4zIiBcCiAgICAgICAgICAtcyAic2VydmVyIGhlbGxvLCBjaG9zZW4gY2lwaGVyc3VpdGU6IFRMUzEtMy1BRVMtMTI4LUNDTS04LVNIQTI1NiAoIGlkPTQ4NjkgKSIgXApAQCAtNDI2NSw4ICs0MjY3LDggQEAKIHJlcXVpcmVzX2dudXRsc19uZXh0X25vX3RpY2tldAogcmVxdWlyZXNfZ251dGxzX25leHRfZGlzYWJsZV90bHMxM19jb21wYXQKIHJ1bl90ZXN0ICJUTFMgMS4zIEctPm06IEFFU18xMjhfQ0NNXzhfU0hBMjU2LHgyNTUxOSxyc2FfcHNzX3JzYWVfc2hhMjU2IiBcCi0gICAgICAgICAiJFBfU1JWIGNydF9maWxlPWRhdGFfZmlsZXMvc2VydmVyMi1zaGEyNTYuY3J0IGtleV9maWxlPWRhdGFfZmlsZXMvc2VydmVyMi5rZXkgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTEyOC1DQ00tOC1TSEEyNTYgc2lnX2FsZ3M9cnNhX3Bzc19yc2FlX3NoYTI1NiBncm91cHM9eDI1NTE5IHRsczEzX2tleF9tb2Rlcz1lcGhlbWVyYWwgY29va2llcz0wIHRpY2tldHM9MCIgXAotICAgICAgICAgIiRHX05FWFRfQ0xJX05PX0NFUlQgLS1kZWJ1Zz00IC0tc2luZ2xlLWtleS1zaGFyZSAtLXg1MDljYWZpbGUgZGF0YV9maWxlcy90ZXN0LWNhX2NhdDEyLmNydCAtLXByaW9yaXR5PU5PTkU6K0FFUy0xMjgtQ0NNLTg6K1NIQTI1NjorQUVBRDorU0lHTi1SU0EtUFNTLVJTQUUtU0hBMjU2OitHUk9VUC1YMjU1MTk6K1ZFUlMtVExTMS4zOiVOT19USUNLRVRTIiBcCisgICAgICAgICAiJFBfU1JWIGNydF9maWxlPSREQVRBX0ZJTEVTX1BBVEgvc2VydmVyMi1zaGEyNTYuY3J0IGtleV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvc2VydmVyMi5rZXkgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTEyOC1DQ00tOC1TSEEyNTYgc2lnX2FsZ3M9cnNhX3Bzc19yc2FlX3NoYTI1NiBncm91cHM9eDI1NTE5IHRsczEzX2tleF9tb2Rlcz1lcGhlbWVyYWwgY29va2llcz0wIHRpY2tldHM9MCIgXAorICAgICAgICAgIiRHX05FWFRfQ0xJX05PX0NFUlQgLS1kZWJ1Zz00IC0tc2luZ2xlLWtleS1zaGFyZSAtLXg1MDljYWZpbGUgJERBVEFfRklMRVNfUEFUSC90ZXN0LWNhX2NhdDEyLmNydCAtLXByaW9yaXR5PU5PTkU6K0FFUy0xMjgtQ0NNLTg6K1NIQTI1NjorQUVBRDorU0lHTi1SU0EtUFNTLVJTQUUtU0hBMjU2OitHUk9VUC1YMjU1MTk6K1ZFUlMtVExTMS4zOiVOT19USUNLRVRTIiBcCiAgICAgICAgICAwIFwKICAgICAgICAgIC1zICJQcm90b2NvbCBpcyBUTFN2MS4zIiBcCiAgICAgICAgICAtcyAic2VydmVyIGhlbGxvLCBjaG9zZW4gY2lwaGVyc3VpdGU6IFRMUzEtMy1BRVMtMTI4LUNDTS04LVNIQTI1NiAoIGlkPTQ4NjkgKSIgXApAQCAtNDI4NCw4ICs0Mjg2LDggQEAKIHJlcXVpcmVzX2dudXRsc19uZXh0X25vX3RpY2tldAogcmVxdWlyZXNfZ251dGxzX25leHRfZGlzYWJsZV90bHMxM19jb21wYXQKIHJ1bl90ZXN0ICJUTFMgMS4zIEctPm06IEFFU18xMjhfQ0NNXzhfU0hBMjU2LHg0NDgsZWNkc2Ffc2VjcDI1NnIxX3NoYTI1NiIgXAotICAgICAgICAgIiRQX1NSViBjcnRfZmlsZT1kYXRhX2ZpbGVzL2VjZHNhX3NlY3AyNTZyMS5jcnQga2V5X2ZpbGU9ZGF0YV9maWxlcy9lY2RzYV9zZWNwMjU2cjEua2V5IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0xMjgtQ0NNLTgtU0hBMjU2IHNpZ19hbGdzPWVjZHNhX3NlY3AyNTZyMV9zaGEyNTYgZ3JvdXBzPXg0NDggdGxzMTNfa2V4X21vZGVzPWVwaGVtZXJhbCBjb29raWVzPTAgdGlja2V0cz0wIiBcCi0gICAgICAgICAiJEdfTkVYVF9DTElfTk9fQ0VSVCAtLWRlYnVnPTQgLS1zaW5nbGUta2V5LXNoYXJlIC0teDUwOWNhZmlsZSBkYXRhX2ZpbGVzL3Rlc3QtY2EyLmNydCAtLXByaW9yaXR5PU5PTkU6K0FFUy0xMjgtQ0NNLTg6K1NIQTI1NjorQUVBRDorU0lHTi1FQ0RTQS1TRUNQMjU2UjEtU0hBMjU2OitHUk9VUC1YNDQ4OitWRVJTLVRMUzEuMzolTk9fVElDS0VUUyIgXAorICAgICAgICAgIiRQX1NSViBjcnRfZmlsZT0kREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3AyNTZyMS5jcnQga2V5X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwMjU2cjEua2V5IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0xMjgtQ0NNLTgtU0hBMjU2IHNpZ19hbGdzPWVjZHNhX3NlY3AyNTZyMV9zaGEyNTYgZ3JvdXBzPXg0NDggdGxzMTNfa2V4X21vZGVzPWVwaGVtZXJhbCBjb29raWVzPTAgdGlja2V0cz0wIiBcCisgICAgICAgICAiJEdfTkVYVF9DTElfTk9fQ0VSVCAtLWRlYnVnPTQgLS1zaW5nbGUta2V5LXNoYXJlIC0teDUwOWNhZmlsZSAkREFUQV9GSUxFU19QQVRIL3Rlc3QtY2EyLmNydCAtLXByaW9yaXR5PU5PTkU6K0FFUy0xMjgtQ0NNLTg6K1NIQTI1NjorQUVBRDorU0lHTi1FQ0RTQS1TRUNQMjU2UjEtU0hBMjU2OitHUk9VUC1YNDQ4OitWRVJTLVRMUzEuMzolTk9fVElDS0VUUyIgXAogICAgICAgICAgMCBcCiAgICAgICAgICAtcyAiUHJvdG9jb2wgaXMgVExTdjEuMyIgXAogICAgICAgICAgLXMgInNlcnZlciBoZWxsbywgY2hvc2VuIGNpcGhlcnN1aXRlOiBUTFMxLTMtQUVTLTEyOC1DQ00tOC1TSEEyNTYgKCBpZD00ODY5ICkiIFwKQEAgLTQzMDMsOCArNDMwNSw4IEBACiByZXF1aXJlc19nbnV0bHNfbmV4dF9ub190aWNrZXQKIHJlcXVpcmVzX2dudXRsc19uZXh0X2Rpc2FibGVfdGxzMTNfY29tcGF0CiBydW5fdGVzdCAiVExTIDEuMyBHLT5tOiBBRVNfMTI4X0NDTV84X1NIQTI1Nix4NDQ4LGVjZHNhX3NlY3AzODRyMV9zaGEzODQiIFwKLSAgICAgICAgICIkUF9TUlYgY3J0X2ZpbGU9ZGF0YV9maWxlcy9lY2RzYV9zZWNwMzg0cjEuY3J0IGtleV9maWxlPWRhdGFfZmlsZXMvZWNkc2Ffc2VjcDM4NHIxLmtleSBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMTI4LUNDTS04LVNIQTI1NiBzaWdfYWxncz1lY2RzYV9zZWNwMzg0cjFfc2hhMzg0IGdyb3Vwcz14NDQ4IHRsczEzX2tleF9tb2Rlcz1lcGhlbWVyYWwgY29va2llcz0wIHRpY2tldHM9MCIgXAotICAgICAgICAgIiRHX05FWFRfQ0xJX05PX0NFUlQgLS1kZWJ1Zz00IC0tc2luZ2xlLWtleS1zaGFyZSAtLXg1MDljYWZpbGUgZGF0YV9maWxlcy90ZXN0LWNhMi5jcnQgLS1wcmlvcml0eT1OT05FOitBRVMtMTI4LUNDTS04OitTSEEyNTY6K0FFQUQ6K1NJR04tRUNEU0EtU0VDUDM4NFIxLVNIQTM4NDorR1JPVVAtWDQ0ODorVkVSUy1UTFMxLjM6JU5PX1RJQ0tFVFMiIFwKKyAgICAgICAgICIkUF9TUlYgY3J0X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwMzg0cjEuY3J0IGtleV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDM4NHIxLmtleSBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMTI4LUNDTS04LVNIQTI1NiBzaWdfYWxncz1lY2RzYV9zZWNwMzg0cjFfc2hhMzg0IGdyb3Vwcz14NDQ4IHRsczEzX2tleF9tb2Rlcz1lcGhlbWVyYWwgY29va2llcz0wIHRpY2tldHM9MCIgXAorICAgICAgICAgIiRHX05FWFRfQ0xJX05PX0NFUlQgLS1kZWJ1Zz00IC0tc2luZ2xlLWtleS1zaGFyZSAtLXg1MDljYWZpbGUgJERBVEFfRklMRVNfUEFUSC90ZXN0LWNhMi5jcnQgLS1wcmlvcml0eT1OT05FOitBRVMtMTI4LUNDTS04OitTSEEyNTY6K0FFQUQ6K1NJR04tRUNEU0EtU0VDUDM4NFIxLVNIQTM4NDorR1JPVVAtWDQ0ODorVkVSUy1UTFMxLjM6JU5PX1RJQ0tFVFMiIFwKICAgICAgICAgIDAgXAogICAgICAgICAgLXMgIlByb3RvY29sIGlzIFRMU3YxLjMiIFwKICAgICAgICAgIC1zICJzZXJ2ZXIgaGVsbG8sIGNob3NlbiBjaXBoZXJzdWl0ZTogVExTMS0zLUFFUy0xMjgtQ0NNLTgtU0hBMjU2ICggaWQ9NDg2OSApIiBcCkBAIC00MzIyLDggKzQzMjQsOCBAQAogcmVxdWlyZXNfZ251dGxzX25leHRfbm9fdGlja2V0CiByZXF1aXJlc19nbnV0bHNfbmV4dF9kaXNhYmxlX3RsczEzX2NvbXBhdAogcnVuX3Rlc3QgIlRMUyAxLjMgRy0+bTogQUVTXzEyOF9DQ01fOF9TSEEyNTYseDQ0OCxlY2RzYV9zZWNwNTIxcjFfc2hhNTEyIiBcCi0gICAgICAgICAiJFBfU1JWIGNydF9maWxlPWRhdGFfZmlsZXMvZWNkc2Ffc2VjcDUyMXIxLmNydCBrZXlfZmlsZT1kYXRhX2ZpbGVzL2VjZHNhX3NlY3A1MjFyMS5rZXkgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTEyOC1DQ00tOC1TSEEyNTYgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDUyMXIxX3NoYTUxMiBncm91cHM9eDQ0OCB0bHMxM19rZXhfbW9kZXM9ZXBoZW1lcmFsIGNvb2tpZXM9MCB0aWNrZXRzPTAiIFwKLSAgICAgICAgICIkR19ORVhUX0NMSV9OT19DRVJUIC0tZGVidWc9NCAtLXNpbmdsZS1rZXktc2hhcmUgLS14NTA5Y2FmaWxlIGRhdGFfZmlsZXMvdGVzdC1jYTIuY3J0IC0tcHJpb3JpdHk9Tk9ORTorQUVTLTEyOC1DQ00tODorU0hBMjU2OitBRUFEOitTSUdOLUVDRFNBLVNFQ1A1MjFSMS1TSEE1MTI6K0dST1VQLVg0NDg6K1ZFUlMtVExTMS4zOiVOT19USUNLRVRTIiBcCisgICAgICAgICAiJFBfU1JWIGNydF9maWxlPSREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDUyMXIxLmNydCBrZXlfZmlsZT0kREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3A1MjFyMS5rZXkgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTEyOC1DQ00tOC1TSEEyNTYgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDUyMXIxX3NoYTUxMiBncm91cHM9eDQ0OCB0bHMxM19rZXhfbW9kZXM9ZXBoZW1lcmFsIGNvb2tpZXM9MCB0aWNrZXRzPTAiIFwKKyAgICAgICAgICIkR19ORVhUX0NMSV9OT19DRVJUIC0tZGVidWc9NCAtLXNpbmdsZS1rZXktc2hhcmUgLS14NTA5Y2FmaWxlICREQVRBX0ZJTEVTX1BBVEgvdGVzdC1jYTIuY3J0IC0tcHJpb3JpdHk9Tk9ORTorQUVTLTEyOC1DQ00tODorU0hBMjU2OitBRUFEOitTSUdOLUVDRFNBLVNFQ1A1MjFSMS1TSEE1MTI6K0dST1VQLVg0NDg6K1ZFUlMtVExTMS4zOiVOT19USUNLRVRTIiBcCiAgICAgICAgICAwIFwKICAgICAgICAgIC1zICJQcm90b2NvbCBpcyBUTFN2MS4zIiBcCiAgICAgICAgICAtcyAic2VydmVyIGhlbGxvLCBjaG9zZW4gY2lwaGVyc3VpdGU6IFRMUzEtMy1BRVMtMTI4LUNDTS04LVNIQTI1NiAoIGlkPTQ4NjkgKSIgXApAQCAtNDM0Miw4ICs0MzQ0LDggQEAKIHJlcXVpcmVzX2dudXRsc19uZXh0X25vX3RpY2tldAogcmVxdWlyZXNfZ251dGxzX25leHRfZGlzYWJsZV90bHMxM19jb21wYXQKIHJ1bl90ZXN0ICJUTFMgMS4zIEctPm06IEFFU18xMjhfQ0NNXzhfU0hBMjU2LHg0NDgscnNhX3Bzc19yc2FlX3NoYTI1NiIgXAotICAgICAgICAgIiRQX1NSViBjcnRfZmlsZT1kYXRhX2ZpbGVzL3NlcnZlcjItc2hhMjU2LmNydCBrZXlfZmlsZT1kYXRhX2ZpbGVzL3NlcnZlcjIua2V5IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0xMjgtQ0NNLTgtU0hBMjU2IHNpZ19hbGdzPXJzYV9wc3NfcnNhZV9zaGEyNTYgZ3JvdXBzPXg0NDggdGxzMTNfa2V4X21vZGVzPWVwaGVtZXJhbCBjb29raWVzPTAgdGlja2V0cz0wIiBcCi0gICAgICAgICAiJEdfTkVYVF9DTElfTk9fQ0VSVCAtLWRlYnVnPTQgLS1zaW5nbGUta2V5LXNoYXJlIC0teDUwOWNhZmlsZSBkYXRhX2ZpbGVzL3Rlc3QtY2FfY2F0MTIuY3J0IC0tcHJpb3JpdHk9Tk9ORTorQUVTLTEyOC1DQ00tODorU0hBMjU2OitBRUFEOitTSUdOLVJTQS1QU1MtUlNBRS1TSEEyNTY6K0dST1VQLVg0NDg6K1ZFUlMtVExTMS4zOiVOT19USUNLRVRTIiBcCisgICAgICAgICAiJFBfU1JWIGNydF9maWxlPSREQVRBX0ZJTEVTX1BBVEgvc2VydmVyMi1zaGEyNTYuY3J0IGtleV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvc2VydmVyMi5rZXkgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTEyOC1DQ00tOC1TSEEyNTYgc2lnX2FsZ3M9cnNhX3Bzc19yc2FlX3NoYTI1NiBncm91cHM9eDQ0OCB0bHMxM19rZXhfbW9kZXM9ZXBoZW1lcmFsIGNvb2tpZXM9MCB0aWNrZXRzPTAiIFwKKyAgICAgICAgICIkR19ORVhUX0NMSV9OT19DRVJUIC0tZGVidWc9NCAtLXNpbmdsZS1rZXktc2hhcmUgLS14NTA5Y2FmaWxlICREQVRBX0ZJTEVTX1BBVEgvdGVzdC1jYV9jYXQxMi5jcnQgLS1wcmlvcml0eT1OT05FOitBRVMtMTI4LUNDTS04OitTSEEyNTY6K0FFQUQ6K1NJR04tUlNBLVBTUy1SU0FFLVNIQTI1NjorR1JPVVAtWDQ0ODorVkVSUy1UTFMxLjM6JU5PX1RJQ0tFVFMiIFwKICAgICAgICAgIDAgXAogICAgICAgICAgLXMgIlByb3RvY29sIGlzIFRMU3YxLjMiIFwKICAgICAgICAgIC1zICJzZXJ2ZXIgaGVsbG8sIGNob3NlbiBjaXBoZXJzdWl0ZTogVExTMS0zLUFFUy0xMjgtQ0NNLTgtU0hBMjU2ICggaWQ9NDg2OSApIiBcCkBAIC00MzYyLDggKzQzNjQsOCBAQAogcmVxdWlyZXNfZ251dGxzX25leHRfbm9fdGlja2V0CiByZXF1aXJlc19nbnV0bHNfbmV4dF9kaXNhYmxlX3RsczEzX2NvbXBhdAogcnVuX3Rlc3QgIlRMUyAxLjMgRy0+bTogQUVTXzEyOF9DQ01fOF9TSEEyNTYsZmZkaGUyMDQ4LGVjZHNhX3NlY3AyNTZyMV9zaGEyNTYiIFwKLSAgICAgICAgICIkUF9TUlYgY3J0X2ZpbGU9ZGF0YV9maWxlcy9lY2RzYV9zZWNwMjU2cjEuY3J0IGtleV9maWxlPWRhdGFfZmlsZXMvZWNkc2Ffc2VjcDI1NnIxLmtleSBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMTI4LUNDTS04LVNIQTI1NiBzaWdfYWxncz1lY2RzYV9zZWNwMjU2cjFfc2hhMjU2IGdyb3Vwcz1mZmRoZTIwNDggdGxzMTNfa2V4X21vZGVzPWVwaGVtZXJhbCBjb29raWVzPTAgdGlja2V0cz0wIiBcCi0gICAgICAgICAiJEdfTkVYVF9DTElfTk9fQ0VSVCAtLWRlYnVnPTQgLS1zaW5nbGUta2V5LXNoYXJlIC0teDUwOWNhZmlsZSBkYXRhX2ZpbGVzL3Rlc3QtY2EyLmNydCAtLXByaW9yaXR5PU5PTkU6K0FFUy0xMjgtQ0NNLTg6K1NIQTI1NjorQUVBRDorU0lHTi1FQ0RTQS1TRUNQMjU2UjEtU0hBMjU2OitHUk9VUC1GRkRIRTIwNDg6K1ZFUlMtVExTMS4zOiVOT19USUNLRVRTIiBcCisgICAgICAgICAiJFBfU1JWIGNydF9maWxlPSREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDI1NnIxLmNydCBrZXlfZmlsZT0kREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3AyNTZyMS5rZXkgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTEyOC1DQ00tOC1TSEEyNTYgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDI1NnIxX3NoYTI1NiBncm91cHM9ZmZkaGUyMDQ4IHRsczEzX2tleF9tb2Rlcz1lcGhlbWVyYWwgY29va2llcz0wIHRpY2tldHM9MCIgXAorICAgICAgICAgIiRHX05FWFRfQ0xJX05PX0NFUlQgLS1kZWJ1Zz00IC0tc2luZ2xlLWtleS1zaGFyZSAtLXg1MDljYWZpbGUgJERBVEFfRklMRVNfUEFUSC90ZXN0LWNhMi5jcnQgLS1wcmlvcml0eT1OT05FOitBRVMtMTI4LUNDTS04OitTSEEyNTY6K0FFQUQ6K1NJR04tRUNEU0EtU0VDUDI1NlIxLVNIQTI1NjorR1JPVVAtRkZESEUyMDQ4OitWRVJTLVRMUzEuMzolTk9fVElDS0VUUyIgXAogICAgICAgICAgMCBcCiAgICAgICAgICAtcyAiUHJvdG9jb2wgaXMgVExTdjEuMyIgXAogICAgICAgICAgLXMgInNlcnZlciBoZWxsbywgY2hvc2VuIGNpcGhlcnN1aXRlOiBUTFMxLTMtQUVTLTEyOC1DQ00tOC1TSEEyNTYgKCBpZD00ODY5ICkiIFwKQEAgLTQzODIsOCArNDM4NCw4IEBACiByZXF1aXJlc19nbnV0bHNfbmV4dF9ub190aWNrZXQKIHJlcXVpcmVzX2dudXRsc19uZXh0X2Rpc2FibGVfdGxzMTNfY29tcGF0CiBydW5fdGVzdCAiVExTIDEuMyBHLT5tOiBBRVNfMTI4X0NDTV84X1NIQTI1NixmZmRoZTIwNDgsZWNkc2Ffc2VjcDM4NHIxX3NoYTM4NCIgXAotICAgICAgICAgIiRQX1NSViBjcnRfZmlsZT1kYXRhX2ZpbGVzL2VjZHNhX3NlY3AzODRyMS5jcnQga2V5X2ZpbGU9ZGF0YV9maWxlcy9lY2RzYV9zZWNwMzg0cjEua2V5IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0xMjgtQ0NNLTgtU0hBMjU2IHNpZ19hbGdzPWVjZHNhX3NlY3AzODRyMV9zaGEzODQgZ3JvdXBzPWZmZGhlMjA0OCB0bHMxM19rZXhfbW9kZXM9ZXBoZW1lcmFsIGNvb2tpZXM9MCB0aWNrZXRzPTAiIFwKLSAgICAgICAgICIkR19ORVhUX0NMSV9OT19DRVJUIC0tZGVidWc9NCAtLXNpbmdsZS1rZXktc2hhcmUgLS14NTA5Y2FmaWxlIGRhdGFfZmlsZXMvdGVzdC1jYTIuY3J0IC0tcHJpb3JpdHk9Tk9ORTorQUVTLTEyOC1DQ00tODorU0hBMjU2OitBRUFEOitTSUdOLUVDRFNBLVNFQ1AzODRSMS1TSEEzODQ6K0dST1VQLUZGREhFMjA0ODorVkVSUy1UTFMxLjM6JU5PX1RJQ0tFVFMiIFwKKyAgICAgICAgICIkUF9TUlYgY3J0X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwMzg0cjEuY3J0IGtleV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDM4NHIxLmtleSBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMTI4LUNDTS04LVNIQTI1NiBzaWdfYWxncz1lY2RzYV9zZWNwMzg0cjFfc2hhMzg0IGdyb3Vwcz1mZmRoZTIwNDggdGxzMTNfa2V4X21vZGVzPWVwaGVtZXJhbCBjb29raWVzPTAgdGlja2V0cz0wIiBcCisgICAgICAgICAiJEdfTkVYVF9DTElfTk9fQ0VSVCAtLWRlYnVnPTQgLS1zaW5nbGUta2V5LXNoYXJlIC0teDUwOWNhZmlsZSAkREFUQV9GSUxFU19QQVRIL3Rlc3QtY2EyLmNydCAtLXByaW9yaXR5PU5PTkU6K0FFUy0xMjgtQ0NNLTg6K1NIQTI1NjorQUVBRDorU0lHTi1FQ0RTQS1TRUNQMzg0UjEtU0hBMzg0OitHUk9VUC1GRkRIRTIwNDg6K1ZFUlMtVExTMS4zOiVOT19USUNLRVRTIiBcCiAgICAgICAgICAwIFwKICAgICAgICAgIC1zICJQcm90b2NvbCBpcyBUTFN2MS4zIiBcCiAgICAgICAgICAtcyAic2VydmVyIGhlbGxvLCBjaG9zZW4gY2lwaGVyc3VpdGU6IFRMUzEtMy1BRVMtMTI4LUNDTS04LVNIQTI1NiAoIGlkPTQ4NjkgKSIgXApAQCAtNDQwMiw4ICs0NDA0LDggQEAKIHJlcXVpcmVzX2dudXRsc19uZXh0X25vX3RpY2tldAogcmVxdWlyZXNfZ251dGxzX25leHRfZGlzYWJsZV90bHMxM19jb21wYXQKIHJ1bl90ZXN0ICJUTFMgMS4zIEctPm06IEFFU18xMjhfQ0NNXzhfU0hBMjU2LGZmZGhlMjA0OCxlY2RzYV9zZWNwNTIxcjFfc2hhNTEyIiBcCi0gICAgICAgICAiJFBfU1JWIGNydF9maWxlPWRhdGFfZmlsZXMvZWNkc2Ffc2VjcDUyMXIxLmNydCBrZXlfZmlsZT1kYXRhX2ZpbGVzL2VjZHNhX3NlY3A1MjFyMS5rZXkgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTEyOC1DQ00tOC1TSEEyNTYgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDUyMXIxX3NoYTUxMiBncm91cHM9ZmZkaGUyMDQ4IHRsczEzX2tleF9tb2Rlcz1lcGhlbWVyYWwgY29va2llcz0wIHRpY2tldHM9MCIgXAotICAgICAgICAgIiRHX05FWFRfQ0xJX05PX0NFUlQgLS1kZWJ1Zz00IC0tc2luZ2xlLWtleS1zaGFyZSAtLXg1MDljYWZpbGUgZGF0YV9maWxlcy90ZXN0LWNhMi5jcnQgLS1wcmlvcml0eT1OT05FOitBRVMtMTI4LUNDTS04OitTSEEyNTY6K0FFQUQ6K1NJR04tRUNEU0EtU0VDUDUyMVIxLVNIQTUxMjorR1JPVVAtRkZESEUyMDQ4OitWRVJTLVRMUzEuMzolTk9fVElDS0VUUyIgXAorICAgICAgICAgIiRQX1NSViBjcnRfZmlsZT0kREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3A1MjFyMS5jcnQga2V5X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwNTIxcjEua2V5IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0xMjgtQ0NNLTgtU0hBMjU2IHNpZ19hbGdzPWVjZHNhX3NlY3A1MjFyMV9zaGE1MTIgZ3JvdXBzPWZmZGhlMjA0OCB0bHMxM19rZXhfbW9kZXM9ZXBoZW1lcmFsIGNvb2tpZXM9MCB0aWNrZXRzPTAiIFwKKyAgICAgICAgICIkR19ORVhUX0NMSV9OT19DRVJUIC0tZGVidWc9NCAtLXNpbmdsZS1rZXktc2hhcmUgLS14NTA5Y2FmaWxlICREQVRBX0ZJTEVTX1BBVEgvdGVzdC1jYTIuY3J0IC0tcHJpb3JpdHk9Tk9ORTorQUVTLTEyOC1DQ00tODorU0hBMjU2OitBRUFEOitTSUdOLUVDRFNBLVNFQ1A1MjFSMS1TSEE1MTI6K0dST1VQLUZGREhFMjA0ODorVkVSUy1UTFMxLjM6JU5PX1RJQ0tFVFMiIFwKICAgICAgICAgIDAgXAogICAgICAgICAgLXMgIlByb3RvY29sIGlzIFRMU3YxLjMiIFwKICAgICAgICAgIC1zICJzZXJ2ZXIgaGVsbG8sIGNob3NlbiBjaXBoZXJzdWl0ZTogVExTMS0zLUFFUy0xMjgtQ0NNLTgtU0hBMjU2ICggaWQ9NDg2OSApIiBcCkBAIC00NDIzLDggKzQ0MjUsOCBAQAogcmVxdWlyZXNfZ251dGxzX25leHRfbm9fdGlja2V0CiByZXF1aXJlc19nbnV0bHNfbmV4dF9kaXNhYmxlX3RsczEzX2NvbXBhdAogcnVuX3Rlc3QgIlRMUyAxLjMgRy0+bTogQUVTXzEyOF9DQ01fOF9TSEEyNTYsZmZkaGUyMDQ4LHJzYV9wc3NfcnNhZV9zaGEyNTYiIFwKLSAgICAgICAgICIkUF9TUlYgY3J0X2ZpbGU9ZGF0YV9maWxlcy9zZXJ2ZXIyLXNoYTI1Ni5jcnQga2V5X2ZpbGU9ZGF0YV9maWxlcy9zZXJ2ZXIyLmtleSBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMTI4LUNDTS04LVNIQTI1NiBzaWdfYWxncz1yc2FfcHNzX3JzYWVfc2hhMjU2IGdyb3Vwcz1mZmRoZTIwNDggdGxzMTNfa2V4X21vZGVzPWVwaGVtZXJhbCBjb29raWVzPTAgdGlja2V0cz0wIiBcCi0gICAgICAgICAiJEdfTkVYVF9DTElfTk9fQ0VSVCAtLWRlYnVnPTQgLS1zaW5nbGUta2V5LXNoYXJlIC0teDUwOWNhZmlsZSBkYXRhX2ZpbGVzL3Rlc3QtY2FfY2F0MTIuY3J0IC0tcHJpb3JpdHk9Tk9ORTorQUVTLTEyOC1DQ00tODorU0hBMjU2OitBRUFEOitTSUdOLVJTQS1QU1MtUlNBRS1TSEEyNTY6K0dST1VQLUZGREhFMjA0ODorVkVSUy1UTFMxLjM6JU5PX1RJQ0tFVFMiIFwKKyAgICAgICAgICIkUF9TUlYgY3J0X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9zZXJ2ZXIyLXNoYTI1Ni5jcnQga2V5X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9zZXJ2ZXIyLmtleSBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMTI4LUNDTS04LVNIQTI1NiBzaWdfYWxncz1yc2FfcHNzX3JzYWVfc2hhMjU2IGdyb3Vwcz1mZmRoZTIwNDggdGxzMTNfa2V4X21vZGVzPWVwaGVtZXJhbCBjb29raWVzPTAgdGlja2V0cz0wIiBcCisgICAgICAgICAiJEdfTkVYVF9DTElfTk9fQ0VSVCAtLWRlYnVnPTQgLS1zaW5nbGUta2V5LXNoYXJlIC0teDUwOWNhZmlsZSAkREFUQV9GSUxFU19QQVRIL3Rlc3QtY2FfY2F0MTIuY3J0IC0tcHJpb3JpdHk9Tk9ORTorQUVTLTEyOC1DQ00tODorU0hBMjU2OitBRUFEOitTSUdOLVJTQS1QU1MtUlNBRS1TSEEyNTY6K0dST1VQLUZGREhFMjA0ODorVkVSUy1UTFMxLjM6JU5PX1RJQ0tFVFMiIFwKICAgICAgICAgIDAgXAogICAgICAgICAgLXMgIlByb3RvY29sIGlzIFRMU3YxLjMiIFwKICAgICAgICAgIC1zICJzZXJ2ZXIgaGVsbG8sIGNob3NlbiBjaXBoZXJzdWl0ZTogVExTMS0zLUFFUy0xMjgtQ0NNLTgtU0hBMjU2ICggaWQ9NDg2OSApIiBcCkBAIC00NDQwLDggKzQ0NDIsOCBAQAogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgTUJFRFRMU19TU0xfVExTMV8zX0NPTVBBVElCSUxJVFlfTU9ERQogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgUFNBX1dBTlRfQUxHX0VDREgKIHJ1bl90ZXN0ICJUTFMgMS4zIG0tPk86IEFFU18xMjhfR0NNX1NIQTI1NixzZWNwMjU2cjEsZWNkc2Ffc2VjcDI1NnIxX3NoYTI1NiIgXAotICAgICAgICAgIiRPX05FWFRfU1JWX05PX0NFUlQgLWNlcnQgZGF0YV9maWxlcy9lY2RzYV9zZWNwMjU2cjEuY3J0IC1rZXkgZGF0YV9maWxlcy9lY2RzYV9zZWNwMjU2cjEua2V5IC1jaXBoZXJzdWl0ZXMgVExTX0FFU18xMjhfR0NNX1NIQTI1NiAtc2lnYWxncyBlY2RzYV9zZWNwMjU2cjFfc2hhMjU2IC1ncm91cHMgUC0yNTYgLW1zZyAtdGxzMV8zIC1udW1fdGlja2V0cyAwIC1ub19yZXN1bWVfZXBoZW1lcmFsIC1ub19jYWNoZSIgXAotICAgICAgICAgIiRQX0NMSSBjYV9maWxlPWRhdGFfZmlsZXMvdGVzdC1jYTIuY3J0IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0xMjgtR0NNLVNIQTI1NiBzaWdfYWxncz1lY2RzYV9zZWNwMjU2cjFfc2hhMjU2IGdyb3Vwcz1zZWNwMjU2cjEiIFwKKyAgICAgICAgICIkT19ORVhUX1NSVl9OT19DRVJUIC1jZXJ0ICREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDI1NnIxLmNydCAta2V5ICREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDI1NnIxLmtleSAtY2lwaGVyc3VpdGVzIFRMU19BRVNfMTI4X0dDTV9TSEEyNTYgLXNpZ2FsZ3MgZWNkc2Ffc2VjcDI1NnIxX3NoYTI1NiAtZ3JvdXBzIFAtMjU2IC1tc2cgLXRsczFfMyAtbnVtX3RpY2tldHMgMCAtbm9fcmVzdW1lX2VwaGVtZXJhbCAtbm9fY2FjaGUiIFwKKyAgICAgICAgICIkUF9DTEkgY2FfZmlsZT0kREFUQV9GSUxFU19QQVRIL3Rlc3QtY2EyLmNydCBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMTI4LUdDTS1TSEEyNTYgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDI1NnIxX3NoYTI1NiBncm91cHM9c2VjcDI1NnIxIiBcCiAgICAgICAgICAwIFwKICAgICAgICAgIC1jICJIVFRQLzEuMCAyMDAgb2siIFwKICAgICAgICAgIC1jICJQcm90b2NvbCBpcyBUTFN2MS4zIiBcCkBAIC00NDU4LDggKzQ0NjAsOCBAQAogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgTUJFRFRMU19TU0xfVExTMV8zX0NPTVBBVElCSUxJVFlfTU9ERQogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgUFNBX1dBTlRfQUxHX0VDREgKIHJ1bl90ZXN0ICJUTFMgMS4zIG0tPk86IEFFU18xMjhfR0NNX1NIQTI1NixzZWNwMjU2cjEsZWNkc2Ffc2VjcDM4NHIxX3NoYTM4NCIgXAotICAgICAgICAgIiRPX05FWFRfU1JWX05PX0NFUlQgLWNlcnQgZGF0YV9maWxlcy9lY2RzYV9zZWNwMzg0cjEuY3J0IC1rZXkgZGF0YV9maWxlcy9lY2RzYV9zZWNwMzg0cjEua2V5IC1jaXBoZXJzdWl0ZXMgVExTX0FFU18xMjhfR0NNX1NIQTI1NiAtc2lnYWxncyBlY2RzYV9zZWNwMzg0cjFfc2hhMzg0IC1ncm91cHMgUC0yNTYgLW1zZyAtdGxzMV8zIC1udW1fdGlja2V0cyAwIC1ub19yZXN1bWVfZXBoZW1lcmFsIC1ub19jYWNoZSIgXAotICAgICAgICAgIiRQX0NMSSBjYV9maWxlPWRhdGFfZmlsZXMvdGVzdC1jYTIuY3J0IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0xMjgtR0NNLVNIQTI1NiBzaWdfYWxncz1lY2RzYV9zZWNwMzg0cjFfc2hhMzg0IGdyb3Vwcz1zZWNwMjU2cjEiIFwKKyAgICAgICAgICIkT19ORVhUX1NSVl9OT19DRVJUIC1jZXJ0ICREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDM4NHIxLmNydCAta2V5ICREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDM4NHIxLmtleSAtY2lwaGVyc3VpdGVzIFRMU19BRVNfMTI4X0dDTV9TSEEyNTYgLXNpZ2FsZ3MgZWNkc2Ffc2VjcDM4NHIxX3NoYTM4NCAtZ3JvdXBzIFAtMjU2IC1tc2cgLXRsczFfMyAtbnVtX3RpY2tldHMgMCAtbm9fcmVzdW1lX2VwaGVtZXJhbCAtbm9fY2FjaGUiIFwKKyAgICAgICAgICIkUF9DTEkgY2FfZmlsZT0kREFUQV9GSUxFU19QQVRIL3Rlc3QtY2EyLmNydCBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMTI4LUdDTS1TSEEyNTYgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDM4NHIxX3NoYTM4NCBncm91cHM9c2VjcDI1NnIxIiBcCiAgICAgICAgICAwIFwKICAgICAgICAgIC1jICJIVFRQLzEuMCAyMDAgb2siIFwKICAgICAgICAgIC1jICJQcm90b2NvbCBpcyBUTFN2MS4zIiBcCkBAIC00NDc2LDggKzQ0NzgsOCBAQAogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgTUJFRFRMU19TU0xfVExTMV8zX0NPTVBBVElCSUxJVFlfTU9ERQogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgUFNBX1dBTlRfQUxHX0VDREgKIHJ1bl90ZXN0ICJUTFMgMS4zIG0tPk86IEFFU18xMjhfR0NNX1NIQTI1NixzZWNwMjU2cjEsZWNkc2Ffc2VjcDUyMXIxX3NoYTUxMiIgXAotICAgICAgICAgIiRPX05FWFRfU1JWX05PX0NFUlQgLWNlcnQgZGF0YV9maWxlcy9lY2RzYV9zZWNwNTIxcjEuY3J0IC1rZXkgZGF0YV9maWxlcy9lY2RzYV9zZWNwNTIxcjEua2V5IC1jaXBoZXJzdWl0ZXMgVExTX0FFU18xMjhfR0NNX1NIQTI1NiAtc2lnYWxncyBlY2RzYV9zZWNwNTIxcjFfc2hhNTEyIC1ncm91cHMgUC0yNTYgLW1zZyAtdGxzMV8zIC1udW1fdGlja2V0cyAwIC1ub19yZXN1bWVfZXBoZW1lcmFsIC1ub19jYWNoZSIgXAotICAgICAgICAgIiRQX0NMSSBjYV9maWxlPWRhdGFfZmlsZXMvdGVzdC1jYTIuY3J0IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0xMjgtR0NNLVNIQTI1NiBzaWdfYWxncz1lY2RzYV9zZWNwNTIxcjFfc2hhNTEyIGdyb3Vwcz1zZWNwMjU2cjEiIFwKKyAgICAgICAgICIkT19ORVhUX1NSVl9OT19DRVJUIC1jZXJ0ICREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDUyMXIxLmNydCAta2V5ICREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDUyMXIxLmtleSAtY2lwaGVyc3VpdGVzIFRMU19BRVNfMTI4X0dDTV9TSEEyNTYgLXNpZ2FsZ3MgZWNkc2Ffc2VjcDUyMXIxX3NoYTUxMiAtZ3JvdXBzIFAtMjU2IC1tc2cgLXRsczFfMyAtbnVtX3RpY2tldHMgMCAtbm9fcmVzdW1lX2VwaGVtZXJhbCAtbm9fY2FjaGUiIFwKKyAgICAgICAgICIkUF9DTEkgY2FfZmlsZT0kREFUQV9GSUxFU19QQVRIL3Rlc3QtY2EyLmNydCBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMTI4LUdDTS1TSEEyNTYgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDUyMXIxX3NoYTUxMiBncm91cHM9c2VjcDI1NnIxIiBcCiAgICAgICAgICAwIFwKICAgICAgICAgIC1jICJIVFRQLzEuMCAyMDAgb2siIFwKICAgICAgICAgIC1jICJQcm90b2NvbCBpcyBUTFN2MS4zIiBcCkBAIC00NDk1LDggKzQ0OTcsOCBAQAogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgTUJFRFRMU19YNTA5X1JTQVNTQV9QU1NfU1VQUE9SVAogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgUFNBX1dBTlRfQUxHX0VDREgKIHJ1bl90ZXN0ICJUTFMgMS4zIG0tPk86IEFFU18xMjhfR0NNX1NIQTI1NixzZWNwMjU2cjEscnNhX3Bzc19yc2FlX3NoYTI1NiIgXAotICAgICAgICAgIiRPX05FWFRfU1JWX05PX0NFUlQgLWNlcnQgZGF0YV9maWxlcy9zZXJ2ZXIyLXNoYTI1Ni5jcnQgLWtleSBkYXRhX2ZpbGVzL3NlcnZlcjIua2V5IC1jaXBoZXJzdWl0ZXMgVExTX0FFU18xMjhfR0NNX1NIQTI1NiAtc2lnYWxncyByc2FfcHNzX3JzYWVfc2hhMjU2IC1ncm91cHMgUC0yNTYgLW1zZyAtdGxzMV8zIC1udW1fdGlja2V0cyAwIC1ub19yZXN1bWVfZXBoZW1lcmFsIC1ub19jYWNoZSIgXAotICAgICAgICAgIiRQX0NMSSBjYV9maWxlPWRhdGFfZmlsZXMvdGVzdC1jYV9jYXQxMi5jcnQgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTEyOC1HQ00tU0hBMjU2IHNpZ19hbGdzPXJzYV9wc3NfcnNhZV9zaGEyNTYgZ3JvdXBzPXNlY3AyNTZyMSIgXAorICAgICAgICAgIiRPX05FWFRfU1JWX05PX0NFUlQgLWNlcnQgJERBVEFfRklMRVNfUEFUSC9zZXJ2ZXIyLXNoYTI1Ni5jcnQgLWtleSAkREFUQV9GSUxFU19QQVRIL3NlcnZlcjIua2V5IC1jaXBoZXJzdWl0ZXMgVExTX0FFU18xMjhfR0NNX1NIQTI1NiAtc2lnYWxncyByc2FfcHNzX3JzYWVfc2hhMjU2IC1ncm91cHMgUC0yNTYgLW1zZyAtdGxzMV8zIC1udW1fdGlja2V0cyAwIC1ub19yZXN1bWVfZXBoZW1lcmFsIC1ub19jYWNoZSIgXAorICAgICAgICAgIiRQX0NMSSBjYV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvdGVzdC1jYV9jYXQxMi5jcnQgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTEyOC1HQ00tU0hBMjU2IHNpZ19hbGdzPXJzYV9wc3NfcnNhZV9zaGEyNTYgZ3JvdXBzPXNlY3AyNTZyMSIgXAogICAgICAgICAgMCBcCiAgICAgICAgICAtYyAiSFRUUC8xLjAgMjAwIG9rIiBcCiAgICAgICAgICAtYyAiUHJvdG9jb2wgaXMgVExTdjEuMyIgXApAQCAtNDUxMyw4ICs0NTE1LDggQEAKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIE1CRURUTFNfU1NMX1RMUzFfM19DT01QQVRJQklMSVRZX01PREUKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIFBTQV9XQU5UX0FMR19FQ0RICiBydW5fdGVzdCAiVExTIDEuMyBtLT5POiBBRVNfMTI4X0dDTV9TSEEyNTYsc2VjcDM4NHIxLGVjZHNhX3NlY3AyNTZyMV9zaGEyNTYiIFwKLSAgICAgICAgICIkT19ORVhUX1NSVl9OT19DRVJUIC1jZXJ0IGRhdGFfZmlsZXMvZWNkc2Ffc2VjcDI1NnIxLmNydCAta2V5IGRhdGFfZmlsZXMvZWNkc2Ffc2VjcDI1NnIxLmtleSAtY2lwaGVyc3VpdGVzIFRMU19BRVNfMTI4X0dDTV9TSEEyNTYgLXNpZ2FsZ3MgZWNkc2Ffc2VjcDI1NnIxX3NoYTI1NiAtZ3JvdXBzIFAtMzg0IC1tc2cgLXRsczFfMyAtbnVtX3RpY2tldHMgMCAtbm9fcmVzdW1lX2VwaGVtZXJhbCAtbm9fY2FjaGUiIFwKLSAgICAgICAgICIkUF9DTEkgY2FfZmlsZT1kYXRhX2ZpbGVzL3Rlc3QtY2EyLmNydCBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMTI4LUdDTS1TSEEyNTYgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDI1NnIxX3NoYTI1NiBncm91cHM9c2VjcDM4NHIxIiBcCisgICAgICAgICAiJE9fTkVYVF9TUlZfTk9fQ0VSVCAtY2VydCAkREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3AyNTZyMS5jcnQgLWtleSAkREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3AyNTZyMS5rZXkgLWNpcGhlcnN1aXRlcyBUTFNfQUVTXzEyOF9HQ01fU0hBMjU2IC1zaWdhbGdzIGVjZHNhX3NlY3AyNTZyMV9zaGEyNTYgLWdyb3VwcyBQLTM4NCAtbXNnIC10bHMxXzMgLW51bV90aWNrZXRzIDAgLW5vX3Jlc3VtZV9lcGhlbWVyYWwgLW5vX2NhY2hlIiBcCisgICAgICAgICAiJFBfQ0xJIGNhX2ZpbGU9JERBVEFfRklMRVNfUEFUSC90ZXN0LWNhMi5jcnQgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTEyOC1HQ00tU0hBMjU2IHNpZ19hbGdzPWVjZHNhX3NlY3AyNTZyMV9zaGEyNTYgZ3JvdXBzPXNlY3AzODRyMSIgXAogICAgICAgICAgMCBcCiAgICAgICAgICAtYyAiSFRUUC8xLjAgMjAwIG9rIiBcCiAgICAgICAgICAtYyAiUHJvdG9jb2wgaXMgVExTdjEuMyIgXApAQCAtNDUzMSw4ICs0NTMzLDggQEAKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIE1CRURUTFNfU1NMX1RMUzFfM19DT01QQVRJQklMSVRZX01PREUKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIFBTQV9XQU5UX0FMR19FQ0RICiBydW5fdGVzdCAiVExTIDEuMyBtLT5POiBBRVNfMTI4X0dDTV9TSEEyNTYsc2VjcDM4NHIxLGVjZHNhX3NlY3AzODRyMV9zaGEzODQiIFwKLSAgICAgICAgICIkT19ORVhUX1NSVl9OT19DRVJUIC1jZXJ0IGRhdGFfZmlsZXMvZWNkc2Ffc2VjcDM4NHIxLmNydCAta2V5IGRhdGFfZmlsZXMvZWNkc2Ffc2VjcDM4NHIxLmtleSAtY2lwaGVyc3VpdGVzIFRMU19BRVNfMTI4X0dDTV9TSEEyNTYgLXNpZ2FsZ3MgZWNkc2Ffc2VjcDM4NHIxX3NoYTM4NCAtZ3JvdXBzIFAtMzg0IC1tc2cgLXRsczFfMyAtbnVtX3RpY2tldHMgMCAtbm9fcmVzdW1lX2VwaGVtZXJhbCAtbm9fY2FjaGUiIFwKLSAgICAgICAgICIkUF9DTEkgY2FfZmlsZT1kYXRhX2ZpbGVzL3Rlc3QtY2EyLmNydCBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMTI4LUdDTS1TSEEyNTYgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDM4NHIxX3NoYTM4NCBncm91cHM9c2VjcDM4NHIxIiBcCisgICAgICAgICAiJE9fTkVYVF9TUlZfTk9fQ0VSVCAtY2VydCAkREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3AzODRyMS5jcnQgLWtleSAkREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3AzODRyMS5rZXkgLWNpcGhlcnN1aXRlcyBUTFNfQUVTXzEyOF9HQ01fU0hBMjU2IC1zaWdhbGdzIGVjZHNhX3NlY3AzODRyMV9zaGEzODQgLWdyb3VwcyBQLTM4NCAtbXNnIC10bHMxXzMgLW51bV90aWNrZXRzIDAgLW5vX3Jlc3VtZV9lcGhlbWVyYWwgLW5vX2NhY2hlIiBcCisgICAgICAgICAiJFBfQ0xJIGNhX2ZpbGU9JERBVEFfRklMRVNfUEFUSC90ZXN0LWNhMi5jcnQgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTEyOC1HQ00tU0hBMjU2IHNpZ19hbGdzPWVjZHNhX3NlY3AzODRyMV9zaGEzODQgZ3JvdXBzPXNlY3AzODRyMSIgXAogICAgICAgICAgMCBcCiAgICAgICAgICAtYyAiSFRUUC8xLjAgMjAwIG9rIiBcCiAgICAgICAgICAtYyAiUHJvdG9jb2wgaXMgVExTdjEuMyIgXApAQCAtNDU0OSw4ICs0NTUxLDggQEAKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIE1CRURUTFNfU1NMX1RMUzFfM19DT01QQVRJQklMSVRZX01PREUKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIFBTQV9XQU5UX0FMR19FQ0RICiBydW5fdGVzdCAiVExTIDEuMyBtLT5POiBBRVNfMTI4X0dDTV9TSEEyNTYsc2VjcDM4NHIxLGVjZHNhX3NlY3A1MjFyMV9zaGE1MTIiIFwKLSAgICAgICAgICIkT19ORVhUX1NSVl9OT19DRVJUIC1jZXJ0IGRhdGFfZmlsZXMvZWNkc2Ffc2VjcDUyMXIxLmNydCAta2V5IGRhdGFfZmlsZXMvZWNkc2Ffc2VjcDUyMXIxLmtleSAtY2lwaGVyc3VpdGVzIFRMU19BRVNfMTI4X0dDTV9TSEEyNTYgLXNpZ2FsZ3MgZWNkc2Ffc2VjcDUyMXIxX3NoYTUxMiAtZ3JvdXBzIFAtMzg0IC1tc2cgLXRsczFfMyAtbnVtX3RpY2tldHMgMCAtbm9fcmVzdW1lX2VwaGVtZXJhbCAtbm9fY2FjaGUiIFwKLSAgICAgICAgICIkUF9DTEkgY2FfZmlsZT1kYXRhX2ZpbGVzL3Rlc3QtY2EyLmNydCBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMTI4LUdDTS1TSEEyNTYgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDUyMXIxX3NoYTUxMiBncm91cHM9c2VjcDM4NHIxIiBcCisgICAgICAgICAiJE9fTkVYVF9TUlZfTk9fQ0VSVCAtY2VydCAkREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3A1MjFyMS5jcnQgLWtleSAkREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3A1MjFyMS5rZXkgLWNpcGhlcnN1aXRlcyBUTFNfQUVTXzEyOF9HQ01fU0hBMjU2IC1zaWdhbGdzIGVjZHNhX3NlY3A1MjFyMV9zaGE1MTIgLWdyb3VwcyBQLTM4NCAtbXNnIC10bHMxXzMgLW51bV90aWNrZXRzIDAgLW5vX3Jlc3VtZV9lcGhlbWVyYWwgLW5vX2NhY2hlIiBcCisgICAgICAgICAiJFBfQ0xJIGNhX2ZpbGU9JERBVEFfRklMRVNfUEFUSC90ZXN0LWNhMi5jcnQgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTEyOC1HQ00tU0hBMjU2IHNpZ19hbGdzPWVjZHNhX3NlY3A1MjFyMV9zaGE1MTIgZ3JvdXBzPXNlY3AzODRyMSIgXAogICAgICAgICAgMCBcCiAgICAgICAgICAtYyAiSFRUUC8xLjAgMjAwIG9rIiBcCiAgICAgICAgICAtYyAiUHJvdG9jb2wgaXMgVExTdjEuMyIgXApAQCAtNDU2OCw4ICs0NTcwLDggQEAKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIE1CRURUTFNfWDUwOV9SU0FTU0FfUFNTX1NVUFBPUlQKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIFBTQV9XQU5UX0FMR19FQ0RICiBydW5fdGVzdCAiVExTIDEuMyBtLT5POiBBRVNfMTI4X0dDTV9TSEEyNTYsc2VjcDM4NHIxLHJzYV9wc3NfcnNhZV9zaGEyNTYiIFwKLSAgICAgICAgICIkT19ORVhUX1NSVl9OT19DRVJUIC1jZXJ0IGRhdGFfZmlsZXMvc2VydmVyMi1zaGEyNTYuY3J0IC1rZXkgZGF0YV9maWxlcy9zZXJ2ZXIyLmtleSAtY2lwaGVyc3VpdGVzIFRMU19BRVNfMTI4X0dDTV9TSEEyNTYgLXNpZ2FsZ3MgcnNhX3Bzc19yc2FlX3NoYTI1NiAtZ3JvdXBzIFAtMzg0IC1tc2cgLXRsczFfMyAtbnVtX3RpY2tldHMgMCAtbm9fcmVzdW1lX2VwaGVtZXJhbCAtbm9fY2FjaGUiIFwKLSAgICAgICAgICIkUF9DTEkgY2FfZmlsZT1kYXRhX2ZpbGVzL3Rlc3QtY2FfY2F0MTIuY3J0IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0xMjgtR0NNLVNIQTI1NiBzaWdfYWxncz1yc2FfcHNzX3JzYWVfc2hhMjU2IGdyb3Vwcz1zZWNwMzg0cjEiIFwKKyAgICAgICAgICIkT19ORVhUX1NSVl9OT19DRVJUIC1jZXJ0ICREQVRBX0ZJTEVTX1BBVEgvc2VydmVyMi1zaGEyNTYuY3J0IC1rZXkgJERBVEFfRklMRVNfUEFUSC9zZXJ2ZXIyLmtleSAtY2lwaGVyc3VpdGVzIFRMU19BRVNfMTI4X0dDTV9TSEEyNTYgLXNpZ2FsZ3MgcnNhX3Bzc19yc2FlX3NoYTI1NiAtZ3JvdXBzIFAtMzg0IC1tc2cgLXRsczFfMyAtbnVtX3RpY2tldHMgMCAtbm9fcmVzdW1lX2VwaGVtZXJhbCAtbm9fY2FjaGUiIFwKKyAgICAgICAgICIkUF9DTEkgY2FfZmlsZT0kREFUQV9GSUxFU19QQVRIL3Rlc3QtY2FfY2F0MTIuY3J0IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0xMjgtR0NNLVNIQTI1NiBzaWdfYWxncz1yc2FfcHNzX3JzYWVfc2hhMjU2IGdyb3Vwcz1zZWNwMzg0cjEiIFwKICAgICAgICAgIDAgXAogICAgICAgICAgLWMgIkhUVFAvMS4wIDIwMCBvayIgXAogICAgICAgICAgLWMgIlByb3RvY29sIGlzIFRMU3YxLjMiIFwKQEAgLTQ1ODYsOCArNDU4OCw4IEBACiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBNQkVEVExTX1NTTF9UTFMxXzNfQ09NUEFUSUJJTElUWV9NT0RFCiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBQU0FfV0FOVF9BTEdfRUNESAogcnVuX3Rlc3QgIlRMUyAxLjMgbS0+TzogQUVTXzEyOF9HQ01fU0hBMjU2LHNlY3A1MjFyMSxlY2RzYV9zZWNwMjU2cjFfc2hhMjU2IiBcCi0gICAgICAgICAiJE9fTkVYVF9TUlZfTk9fQ0VSVCAtY2VydCBkYXRhX2ZpbGVzL2VjZHNhX3NlY3AyNTZyMS5jcnQgLWtleSBkYXRhX2ZpbGVzL2VjZHNhX3NlY3AyNTZyMS5rZXkgLWNpcGhlcnN1aXRlcyBUTFNfQUVTXzEyOF9HQ01fU0hBMjU2IC1zaWdhbGdzIGVjZHNhX3NlY3AyNTZyMV9zaGEyNTYgLWdyb3VwcyBQLTUyMSAtbXNnIC10bHMxXzMgLW51bV90aWNrZXRzIDAgLW5vX3Jlc3VtZV9lcGhlbWVyYWwgLW5vX2NhY2hlIiBcCi0gICAgICAgICAiJFBfQ0xJIGNhX2ZpbGU9ZGF0YV9maWxlcy90ZXN0LWNhMi5jcnQgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTEyOC1HQ00tU0hBMjU2IHNpZ19hbGdzPWVjZHNhX3NlY3AyNTZyMV9zaGEyNTYgZ3JvdXBzPXNlY3A1MjFyMSIgXAorICAgICAgICAgIiRPX05FWFRfU1JWX05PX0NFUlQgLWNlcnQgJERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwMjU2cjEuY3J0IC1rZXkgJERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwMjU2cjEua2V5IC1jaXBoZXJzdWl0ZXMgVExTX0FFU18xMjhfR0NNX1NIQTI1NiAtc2lnYWxncyBlY2RzYV9zZWNwMjU2cjFfc2hhMjU2IC1ncm91cHMgUC01MjEgLW1zZyAtdGxzMV8zIC1udW1fdGlja2V0cyAwIC1ub19yZXN1bWVfZXBoZW1lcmFsIC1ub19jYWNoZSIgXAorICAgICAgICAgIiRQX0NMSSBjYV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvdGVzdC1jYTIuY3J0IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0xMjgtR0NNLVNIQTI1NiBzaWdfYWxncz1lY2RzYV9zZWNwMjU2cjFfc2hhMjU2IGdyb3Vwcz1zZWNwNTIxcjEiIFwKICAgICAgICAgIDAgXAogICAgICAgICAgLWMgIkhUVFAvMS4wIDIwMCBvayIgXAogICAgICAgICAgLWMgIlByb3RvY29sIGlzIFRMU3YxLjMiIFwKQEAgLTQ2MDQsOCArNDYwNiw4IEBACiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBNQkVEVExTX1NTTF9UTFMxXzNfQ09NUEFUSUJJTElUWV9NT0RFCiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBQU0FfV0FOVF9BTEdfRUNESAogcnVuX3Rlc3QgIlRMUyAxLjMgbS0+TzogQUVTXzEyOF9HQ01fU0hBMjU2LHNlY3A1MjFyMSxlY2RzYV9zZWNwMzg0cjFfc2hhMzg0IiBcCi0gICAgICAgICAiJE9fTkVYVF9TUlZfTk9fQ0VSVCAtY2VydCBkYXRhX2ZpbGVzL2VjZHNhX3NlY3AzODRyMS5jcnQgLWtleSBkYXRhX2ZpbGVzL2VjZHNhX3NlY3AzODRyMS5rZXkgLWNpcGhlcnN1aXRlcyBUTFNfQUVTXzEyOF9HQ01fU0hBMjU2IC1zaWdhbGdzIGVjZHNhX3NlY3AzODRyMV9zaGEzODQgLWdyb3VwcyBQLTUyMSAtbXNnIC10bHMxXzMgLW51bV90aWNrZXRzIDAgLW5vX3Jlc3VtZV9lcGhlbWVyYWwgLW5vX2NhY2hlIiBcCi0gICAgICAgICAiJFBfQ0xJIGNhX2ZpbGU9ZGF0YV9maWxlcy90ZXN0LWNhMi5jcnQgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTEyOC1HQ00tU0hBMjU2IHNpZ19hbGdzPWVjZHNhX3NlY3AzODRyMV9zaGEzODQgZ3JvdXBzPXNlY3A1MjFyMSIgXAorICAgICAgICAgIiRPX05FWFRfU1JWX05PX0NFUlQgLWNlcnQgJERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwMzg0cjEuY3J0IC1rZXkgJERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwMzg0cjEua2V5IC1jaXBoZXJzdWl0ZXMgVExTX0FFU18xMjhfR0NNX1NIQTI1NiAtc2lnYWxncyBlY2RzYV9zZWNwMzg0cjFfc2hhMzg0IC1ncm91cHMgUC01MjEgLW1zZyAtdGxzMV8zIC1udW1fdGlja2V0cyAwIC1ub19yZXN1bWVfZXBoZW1lcmFsIC1ub19jYWNoZSIgXAorICAgICAgICAgIiRQX0NMSSBjYV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvdGVzdC1jYTIuY3J0IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0xMjgtR0NNLVNIQTI1NiBzaWdfYWxncz1lY2RzYV9zZWNwMzg0cjFfc2hhMzg0IGdyb3Vwcz1zZWNwNTIxcjEiIFwKICAgICAgICAgIDAgXAogICAgICAgICAgLWMgIkhUVFAvMS4wIDIwMCBvayIgXAogICAgICAgICAgLWMgIlByb3RvY29sIGlzIFRMU3YxLjMiIFwKQEAgLTQ2MjIsOCArNDYyNCw4IEBACiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBNQkVEVExTX1NTTF9UTFMxXzNfQ09NUEFUSUJJTElUWV9NT0RFCiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBQU0FfV0FOVF9BTEdfRUNESAogcnVuX3Rlc3QgIlRMUyAxLjMgbS0+TzogQUVTXzEyOF9HQ01fU0hBMjU2LHNlY3A1MjFyMSxlY2RzYV9zZWNwNTIxcjFfc2hhNTEyIiBcCi0gICAgICAgICAiJE9fTkVYVF9TUlZfTk9fQ0VSVCAtY2VydCBkYXRhX2ZpbGVzL2VjZHNhX3NlY3A1MjFyMS5jcnQgLWtleSBkYXRhX2ZpbGVzL2VjZHNhX3NlY3A1MjFyMS5rZXkgLWNpcGhlcnN1aXRlcyBUTFNfQUVTXzEyOF9HQ01fU0hBMjU2IC1zaWdhbGdzIGVjZHNhX3NlY3A1MjFyMV9zaGE1MTIgLWdyb3VwcyBQLTUyMSAtbXNnIC10bHMxXzMgLW51bV90aWNrZXRzIDAgLW5vX3Jlc3VtZV9lcGhlbWVyYWwgLW5vX2NhY2hlIiBcCi0gICAgICAgICAiJFBfQ0xJIGNhX2ZpbGU9ZGF0YV9maWxlcy90ZXN0LWNhMi5jcnQgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTEyOC1HQ00tU0hBMjU2IHNpZ19hbGdzPWVjZHNhX3NlY3A1MjFyMV9zaGE1MTIgZ3JvdXBzPXNlY3A1MjFyMSIgXAorICAgICAgICAgIiRPX05FWFRfU1JWX05PX0NFUlQgLWNlcnQgJERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwNTIxcjEuY3J0IC1rZXkgJERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwNTIxcjEua2V5IC1jaXBoZXJzdWl0ZXMgVExTX0FFU18xMjhfR0NNX1NIQTI1NiAtc2lnYWxncyBlY2RzYV9zZWNwNTIxcjFfc2hhNTEyIC1ncm91cHMgUC01MjEgLW1zZyAtdGxzMV8zIC1udW1fdGlja2V0cyAwIC1ub19yZXN1bWVfZXBoZW1lcmFsIC1ub19jYWNoZSIgXAorICAgICAgICAgIiRQX0NMSSBjYV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvdGVzdC1jYTIuY3J0IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0xMjgtR0NNLVNIQTI1NiBzaWdfYWxncz1lY2RzYV9zZWNwNTIxcjFfc2hhNTEyIGdyb3Vwcz1zZWNwNTIxcjEiIFwKICAgICAgICAgIDAgXAogICAgICAgICAgLWMgIkhUVFAvMS4wIDIwMCBvayIgXAogICAgICAgICAgLWMgIlByb3RvY29sIGlzIFRMU3YxLjMiIFwKQEAgLTQ2NDEsOCArNDY0Myw4IEBACiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBNQkVEVExTX1g1MDlfUlNBU1NBX1BTU19TVVBQT1JUCiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBQU0FfV0FOVF9BTEdfRUNESAogcnVuX3Rlc3QgIlRMUyAxLjMgbS0+TzogQUVTXzEyOF9HQ01fU0hBMjU2LHNlY3A1MjFyMSxyc2FfcHNzX3JzYWVfc2hhMjU2IiBcCi0gICAgICAgICAiJE9fTkVYVF9TUlZfTk9fQ0VSVCAtY2VydCBkYXRhX2ZpbGVzL3NlcnZlcjItc2hhMjU2LmNydCAta2V5IGRhdGFfZmlsZXMvc2VydmVyMi5rZXkgLWNpcGhlcnN1aXRlcyBUTFNfQUVTXzEyOF9HQ01fU0hBMjU2IC1zaWdhbGdzIHJzYV9wc3NfcnNhZV9zaGEyNTYgLWdyb3VwcyBQLTUyMSAtbXNnIC10bHMxXzMgLW51bV90aWNrZXRzIDAgLW5vX3Jlc3VtZV9lcGhlbWVyYWwgLW5vX2NhY2hlIiBcCi0gICAgICAgICAiJFBfQ0xJIGNhX2ZpbGU9ZGF0YV9maWxlcy90ZXN0LWNhX2NhdDEyLmNydCBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMTI4LUdDTS1TSEEyNTYgc2lnX2FsZ3M9cnNhX3Bzc19yc2FlX3NoYTI1NiBncm91cHM9c2VjcDUyMXIxIiBcCisgICAgICAgICAiJE9fTkVYVF9TUlZfTk9fQ0VSVCAtY2VydCAkREFUQV9GSUxFU19QQVRIL3NlcnZlcjItc2hhMjU2LmNydCAta2V5ICREQVRBX0ZJTEVTX1BBVEgvc2VydmVyMi5rZXkgLWNpcGhlcnN1aXRlcyBUTFNfQUVTXzEyOF9HQ01fU0hBMjU2IC1zaWdhbGdzIHJzYV9wc3NfcnNhZV9zaGEyNTYgLWdyb3VwcyBQLTUyMSAtbXNnIC10bHMxXzMgLW51bV90aWNrZXRzIDAgLW5vX3Jlc3VtZV9lcGhlbWVyYWwgLW5vX2NhY2hlIiBcCisgICAgICAgICAiJFBfQ0xJIGNhX2ZpbGU9JERBVEFfRklMRVNfUEFUSC90ZXN0LWNhX2NhdDEyLmNydCBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMTI4LUdDTS1TSEEyNTYgc2lnX2FsZ3M9cnNhX3Bzc19yc2FlX3NoYTI1NiBncm91cHM9c2VjcDUyMXIxIiBcCiAgICAgICAgICAwIFwKICAgICAgICAgIC1jICJIVFRQLzEuMCAyMDAgb2siIFwKICAgICAgICAgIC1jICJQcm90b2NvbCBpcyBUTFN2MS4zIiBcCkBAIC00NjU5LDggKzQ2NjEsOCBAQAogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgTUJFRFRMU19TU0xfVExTMV8zX0NPTVBBVElCSUxJVFlfTU9ERQogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgUFNBX1dBTlRfQUxHX0VDREgKIHJ1bl90ZXN0ICJUTFMgMS4zIG0tPk86IEFFU18xMjhfR0NNX1NIQTI1Nix4MjU1MTksZWNkc2Ffc2VjcDI1NnIxX3NoYTI1NiIgXAotICAgICAgICAgIiRPX05FWFRfU1JWX05PX0NFUlQgLWNlcnQgZGF0YV9maWxlcy9lY2RzYV9zZWNwMjU2cjEuY3J0IC1rZXkgZGF0YV9maWxlcy9lY2RzYV9zZWNwMjU2cjEua2V5IC1jaXBoZXJzdWl0ZXMgVExTX0FFU18xMjhfR0NNX1NIQTI1NiAtc2lnYWxncyBlY2RzYV9zZWNwMjU2cjFfc2hhMjU2IC1ncm91cHMgWDI1NTE5IC1tc2cgLXRsczFfMyAtbnVtX3RpY2tldHMgMCAtbm9fcmVzdW1lX2VwaGVtZXJhbCAtbm9fY2FjaGUiIFwKLSAgICAgICAgICIkUF9DTEkgY2FfZmlsZT1kYXRhX2ZpbGVzL3Rlc3QtY2EyLmNydCBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMTI4LUdDTS1TSEEyNTYgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDI1NnIxX3NoYTI1NiBncm91cHM9eDI1NTE5IiBcCisgICAgICAgICAiJE9fTkVYVF9TUlZfTk9fQ0VSVCAtY2VydCAkREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3AyNTZyMS5jcnQgLWtleSAkREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3AyNTZyMS5rZXkgLWNpcGhlcnN1aXRlcyBUTFNfQUVTXzEyOF9HQ01fU0hBMjU2IC1zaWdhbGdzIGVjZHNhX3NlY3AyNTZyMV9zaGEyNTYgLWdyb3VwcyBYMjU1MTkgLW1zZyAtdGxzMV8zIC1udW1fdGlja2V0cyAwIC1ub19yZXN1bWVfZXBoZW1lcmFsIC1ub19jYWNoZSIgXAorICAgICAgICAgIiRQX0NMSSBjYV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvdGVzdC1jYTIuY3J0IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0xMjgtR0NNLVNIQTI1NiBzaWdfYWxncz1lY2RzYV9zZWNwMjU2cjFfc2hhMjU2IGdyb3Vwcz14MjU1MTkiIFwKICAgICAgICAgIDAgXAogICAgICAgICAgLWMgIkhUVFAvMS4wIDIwMCBvayIgXAogICAgICAgICAgLWMgIlByb3RvY29sIGlzIFRMU3YxLjMiIFwKQEAgLTQ2NzcsOCArNDY3OSw4IEBACiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBNQkVEVExTX1NTTF9UTFMxXzNfQ09NUEFUSUJJTElUWV9NT0RFCiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBQU0FfV0FOVF9BTEdfRUNESAogcnVuX3Rlc3QgIlRMUyAxLjMgbS0+TzogQUVTXzEyOF9HQ01fU0hBMjU2LHgyNTUxOSxlY2RzYV9zZWNwMzg0cjFfc2hhMzg0IiBcCi0gICAgICAgICAiJE9fTkVYVF9TUlZfTk9fQ0VSVCAtY2VydCBkYXRhX2ZpbGVzL2VjZHNhX3NlY3AzODRyMS5jcnQgLWtleSBkYXRhX2ZpbGVzL2VjZHNhX3NlY3AzODRyMS5rZXkgLWNpcGhlcnN1aXRlcyBUTFNfQUVTXzEyOF9HQ01fU0hBMjU2IC1zaWdhbGdzIGVjZHNhX3NlY3AzODRyMV9zaGEzODQgLWdyb3VwcyBYMjU1MTkgLW1zZyAtdGxzMV8zIC1udW1fdGlja2V0cyAwIC1ub19yZXN1bWVfZXBoZW1lcmFsIC1ub19jYWNoZSIgXAotICAgICAgICAgIiRQX0NMSSBjYV9maWxlPWRhdGFfZmlsZXMvdGVzdC1jYTIuY3J0IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0xMjgtR0NNLVNIQTI1NiBzaWdfYWxncz1lY2RzYV9zZWNwMzg0cjFfc2hhMzg0IGdyb3Vwcz14MjU1MTkiIFwKKyAgICAgICAgICIkT19ORVhUX1NSVl9OT19DRVJUIC1jZXJ0ICREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDM4NHIxLmNydCAta2V5ICREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDM4NHIxLmtleSAtY2lwaGVyc3VpdGVzIFRMU19BRVNfMTI4X0dDTV9TSEEyNTYgLXNpZ2FsZ3MgZWNkc2Ffc2VjcDM4NHIxX3NoYTM4NCAtZ3JvdXBzIFgyNTUxOSAtbXNnIC10bHMxXzMgLW51bV90aWNrZXRzIDAgLW5vX3Jlc3VtZV9lcGhlbWVyYWwgLW5vX2NhY2hlIiBcCisgICAgICAgICAiJFBfQ0xJIGNhX2ZpbGU9JERBVEFfRklMRVNfUEFUSC90ZXN0LWNhMi5jcnQgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTEyOC1HQ00tU0hBMjU2IHNpZ19hbGdzPWVjZHNhX3NlY3AzODRyMV9zaGEzODQgZ3JvdXBzPXgyNTUxOSIgXAogICAgICAgICAgMCBcCiAgICAgICAgICAtYyAiSFRUUC8xLjAgMjAwIG9rIiBcCiAgICAgICAgICAtYyAiUHJvdG9jb2wgaXMgVExTdjEuMyIgXApAQCAtNDY5NSw4ICs0Njk3LDggQEAKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIE1CRURUTFNfU1NMX1RMUzFfM19DT01QQVRJQklMSVRZX01PREUKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIFBTQV9XQU5UX0FMR19FQ0RICiBydW5fdGVzdCAiVExTIDEuMyBtLT5POiBBRVNfMTI4X0dDTV9TSEEyNTYseDI1NTE5LGVjZHNhX3NlY3A1MjFyMV9zaGE1MTIiIFwKLSAgICAgICAgICIkT19ORVhUX1NSVl9OT19DRVJUIC1jZXJ0IGRhdGFfZmlsZXMvZWNkc2Ffc2VjcDUyMXIxLmNydCAta2V5IGRhdGFfZmlsZXMvZWNkc2Ffc2VjcDUyMXIxLmtleSAtY2lwaGVyc3VpdGVzIFRMU19BRVNfMTI4X0dDTV9TSEEyNTYgLXNpZ2FsZ3MgZWNkc2Ffc2VjcDUyMXIxX3NoYTUxMiAtZ3JvdXBzIFgyNTUxOSAtbXNnIC10bHMxXzMgLW51bV90aWNrZXRzIDAgLW5vX3Jlc3VtZV9lcGhlbWVyYWwgLW5vX2NhY2hlIiBcCi0gICAgICAgICAiJFBfQ0xJIGNhX2ZpbGU9ZGF0YV9maWxlcy90ZXN0LWNhMi5jcnQgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTEyOC1HQ00tU0hBMjU2IHNpZ19hbGdzPWVjZHNhX3NlY3A1MjFyMV9zaGE1MTIgZ3JvdXBzPXgyNTUxOSIgXAorICAgICAgICAgIiRPX05FWFRfU1JWX05PX0NFUlQgLWNlcnQgJERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwNTIxcjEuY3J0IC1rZXkgJERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwNTIxcjEua2V5IC1jaXBoZXJzdWl0ZXMgVExTX0FFU18xMjhfR0NNX1NIQTI1NiAtc2lnYWxncyBlY2RzYV9zZWNwNTIxcjFfc2hhNTEyIC1ncm91cHMgWDI1NTE5IC1tc2cgLXRsczFfMyAtbnVtX3RpY2tldHMgMCAtbm9fcmVzdW1lX2VwaGVtZXJhbCAtbm9fY2FjaGUiIFwKKyAgICAgICAgICIkUF9DTEkgY2FfZmlsZT0kREFUQV9GSUxFU19QQVRIL3Rlc3QtY2EyLmNydCBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMTI4LUdDTS1TSEEyNTYgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDUyMXIxX3NoYTUxMiBncm91cHM9eDI1NTE5IiBcCiAgICAgICAgICAwIFwKICAgICAgICAgIC1jICJIVFRQLzEuMCAyMDAgb2siIFwKICAgICAgICAgIC1jICJQcm90b2NvbCBpcyBUTFN2MS4zIiBcCkBAIC00NzE0LDggKzQ3MTYsOCBAQAogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgTUJFRFRMU19YNTA5X1JTQVNTQV9QU1NfU1VQUE9SVAogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgUFNBX1dBTlRfQUxHX0VDREgKIHJ1bl90ZXN0ICJUTFMgMS4zIG0tPk86IEFFU18xMjhfR0NNX1NIQTI1Nix4MjU1MTkscnNhX3Bzc19yc2FlX3NoYTI1NiIgXAotICAgICAgICAgIiRPX05FWFRfU1JWX05PX0NFUlQgLWNlcnQgZGF0YV9maWxlcy9zZXJ2ZXIyLXNoYTI1Ni5jcnQgLWtleSBkYXRhX2ZpbGVzL3NlcnZlcjIua2V5IC1jaXBoZXJzdWl0ZXMgVExTX0FFU18xMjhfR0NNX1NIQTI1NiAtc2lnYWxncyByc2FfcHNzX3JzYWVfc2hhMjU2IC1ncm91cHMgWDI1NTE5IC1tc2cgLXRsczFfMyAtbnVtX3RpY2tldHMgMCAtbm9fcmVzdW1lX2VwaGVtZXJhbCAtbm9fY2FjaGUiIFwKLSAgICAgICAgICIkUF9DTEkgY2FfZmlsZT1kYXRhX2ZpbGVzL3Rlc3QtY2FfY2F0MTIuY3J0IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0xMjgtR0NNLVNIQTI1NiBzaWdfYWxncz1yc2FfcHNzX3JzYWVfc2hhMjU2IGdyb3Vwcz14MjU1MTkiIFwKKyAgICAgICAgICIkT19ORVhUX1NSVl9OT19DRVJUIC1jZXJ0ICREQVRBX0ZJTEVTX1BBVEgvc2VydmVyMi1zaGEyNTYuY3J0IC1rZXkgJERBVEFfRklMRVNfUEFUSC9zZXJ2ZXIyLmtleSAtY2lwaGVyc3VpdGVzIFRMU19BRVNfMTI4X0dDTV9TSEEyNTYgLXNpZ2FsZ3MgcnNhX3Bzc19yc2FlX3NoYTI1NiAtZ3JvdXBzIFgyNTUxOSAtbXNnIC10bHMxXzMgLW51bV90aWNrZXRzIDAgLW5vX3Jlc3VtZV9lcGhlbWVyYWwgLW5vX2NhY2hlIiBcCisgICAgICAgICAiJFBfQ0xJIGNhX2ZpbGU9JERBVEFfRklMRVNfUEFUSC90ZXN0LWNhX2NhdDEyLmNydCBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMTI4LUdDTS1TSEEyNTYgc2lnX2FsZ3M9cnNhX3Bzc19yc2FlX3NoYTI1NiBncm91cHM9eDI1NTE5IiBcCiAgICAgICAgICAwIFwKICAgICAgICAgIC1jICJIVFRQLzEuMCAyMDAgb2siIFwKICAgICAgICAgIC1jICJQcm90b2NvbCBpcyBUTFN2MS4zIiBcCkBAIC00NzMyLDggKzQ3MzQsOCBAQAogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgTUJFRFRMU19TU0xfVExTMV8zX0NPTVBBVElCSUxJVFlfTU9ERQogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgUFNBX1dBTlRfQUxHX0VDREgKIHJ1bl90ZXN0ICJUTFMgMS4zIG0tPk86IEFFU18xMjhfR0NNX1NIQTI1Nix4NDQ4LGVjZHNhX3NlY3AyNTZyMV9zaGEyNTYiIFwKLSAgICAgICAgICIkT19ORVhUX1NSVl9OT19DRVJUIC1jZXJ0IGRhdGFfZmlsZXMvZWNkc2Ffc2VjcDI1NnIxLmNydCAta2V5IGRhdGFfZmlsZXMvZWNkc2Ffc2VjcDI1NnIxLmtleSAtY2lwaGVyc3VpdGVzIFRMU19BRVNfMTI4X0dDTV9TSEEyNTYgLXNpZ2FsZ3MgZWNkc2Ffc2VjcDI1NnIxX3NoYTI1NiAtZ3JvdXBzIFg0NDggLW1zZyAtdGxzMV8zIC1udW1fdGlja2V0cyAwIC1ub19yZXN1bWVfZXBoZW1lcmFsIC1ub19jYWNoZSIgXAotICAgICAgICAgIiRQX0NMSSBjYV9maWxlPWRhdGFfZmlsZXMvdGVzdC1jYTIuY3J0IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0xMjgtR0NNLVNIQTI1NiBzaWdfYWxncz1lY2RzYV9zZWNwMjU2cjFfc2hhMjU2IGdyb3Vwcz14NDQ4IiBcCisgICAgICAgICAiJE9fTkVYVF9TUlZfTk9fQ0VSVCAtY2VydCAkREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3AyNTZyMS5jcnQgLWtleSAkREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3AyNTZyMS5rZXkgLWNpcGhlcnN1aXRlcyBUTFNfQUVTXzEyOF9HQ01fU0hBMjU2IC1zaWdhbGdzIGVjZHNhX3NlY3AyNTZyMV9zaGEyNTYgLWdyb3VwcyBYNDQ4IC1tc2cgLXRsczFfMyAtbnVtX3RpY2tldHMgMCAtbm9fcmVzdW1lX2VwaGVtZXJhbCAtbm9fY2FjaGUiIFwKKyAgICAgICAgICIkUF9DTEkgY2FfZmlsZT0kREFUQV9GSUxFU19QQVRIL3Rlc3QtY2EyLmNydCBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMTI4LUdDTS1TSEEyNTYgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDI1NnIxX3NoYTI1NiBncm91cHM9eDQ0OCIgXAogICAgICAgICAgMCBcCiAgICAgICAgICAtYyAiSFRUUC8xLjAgMjAwIG9rIiBcCiAgICAgICAgICAtYyAiUHJvdG9jb2wgaXMgVExTdjEuMyIgXApAQCAtNDc1MCw4ICs0NzUyLDggQEAKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIE1CRURUTFNfU1NMX1RMUzFfM19DT01QQVRJQklMSVRZX01PREUKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIFBTQV9XQU5UX0FMR19FQ0RICiBydW5fdGVzdCAiVExTIDEuMyBtLT5POiBBRVNfMTI4X0dDTV9TSEEyNTYseDQ0OCxlY2RzYV9zZWNwMzg0cjFfc2hhMzg0IiBcCi0gICAgICAgICAiJE9fTkVYVF9TUlZfTk9fQ0VSVCAtY2VydCBkYXRhX2ZpbGVzL2VjZHNhX3NlY3AzODRyMS5jcnQgLWtleSBkYXRhX2ZpbGVzL2VjZHNhX3NlY3AzODRyMS5rZXkgLWNpcGhlcnN1aXRlcyBUTFNfQUVTXzEyOF9HQ01fU0hBMjU2IC1zaWdhbGdzIGVjZHNhX3NlY3AzODRyMV9zaGEzODQgLWdyb3VwcyBYNDQ4IC1tc2cgLXRsczFfMyAtbnVtX3RpY2tldHMgMCAtbm9fcmVzdW1lX2VwaGVtZXJhbCAtbm9fY2FjaGUiIFwKLSAgICAgICAgICIkUF9DTEkgY2FfZmlsZT1kYXRhX2ZpbGVzL3Rlc3QtY2EyLmNydCBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMTI4LUdDTS1TSEEyNTYgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDM4NHIxX3NoYTM4NCBncm91cHM9eDQ0OCIgXAorICAgICAgICAgIiRPX05FWFRfU1JWX05PX0NFUlQgLWNlcnQgJERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwMzg0cjEuY3J0IC1rZXkgJERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwMzg0cjEua2V5IC1jaXBoZXJzdWl0ZXMgVExTX0FFU18xMjhfR0NNX1NIQTI1NiAtc2lnYWxncyBlY2RzYV9zZWNwMzg0cjFfc2hhMzg0IC1ncm91cHMgWDQ0OCAtbXNnIC10bHMxXzMgLW51bV90aWNrZXRzIDAgLW5vX3Jlc3VtZV9lcGhlbWVyYWwgLW5vX2NhY2hlIiBcCisgICAgICAgICAiJFBfQ0xJIGNhX2ZpbGU9JERBVEFfRklMRVNfUEFUSC90ZXN0LWNhMi5jcnQgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTEyOC1HQ00tU0hBMjU2IHNpZ19hbGdzPWVjZHNhX3NlY3AzODRyMV9zaGEzODQgZ3JvdXBzPXg0NDgiIFwKICAgICAgICAgIDAgXAogICAgICAgICAgLWMgIkhUVFAvMS4wIDIwMCBvayIgXAogICAgICAgICAgLWMgIlByb3RvY29sIGlzIFRMU3YxLjMiIFwKQEAgLTQ3NjgsOCArNDc3MCw4IEBACiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBNQkVEVExTX1NTTF9UTFMxXzNfQ09NUEFUSUJJTElUWV9NT0RFCiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBQU0FfV0FOVF9BTEdfRUNESAogcnVuX3Rlc3QgIlRMUyAxLjMgbS0+TzogQUVTXzEyOF9HQ01fU0hBMjU2LHg0NDgsZWNkc2Ffc2VjcDUyMXIxX3NoYTUxMiIgXAotICAgICAgICAgIiRPX05FWFRfU1JWX05PX0NFUlQgLWNlcnQgZGF0YV9maWxlcy9lY2RzYV9zZWNwNTIxcjEuY3J0IC1rZXkgZGF0YV9maWxlcy9lY2RzYV9zZWNwNTIxcjEua2V5IC1jaXBoZXJzdWl0ZXMgVExTX0FFU18xMjhfR0NNX1NIQTI1NiAtc2lnYWxncyBlY2RzYV9zZWNwNTIxcjFfc2hhNTEyIC1ncm91cHMgWDQ0OCAtbXNnIC10bHMxXzMgLW51bV90aWNrZXRzIDAgLW5vX3Jlc3VtZV9lcGhlbWVyYWwgLW5vX2NhY2hlIiBcCi0gICAgICAgICAiJFBfQ0xJIGNhX2ZpbGU9ZGF0YV9maWxlcy90ZXN0LWNhMi5jcnQgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTEyOC1HQ00tU0hBMjU2IHNpZ19hbGdzPWVjZHNhX3NlY3A1MjFyMV9zaGE1MTIgZ3JvdXBzPXg0NDgiIFwKKyAgICAgICAgICIkT19ORVhUX1NSVl9OT19DRVJUIC1jZXJ0ICREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDUyMXIxLmNydCAta2V5ICREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDUyMXIxLmtleSAtY2lwaGVyc3VpdGVzIFRMU19BRVNfMTI4X0dDTV9TSEEyNTYgLXNpZ2FsZ3MgZWNkc2Ffc2VjcDUyMXIxX3NoYTUxMiAtZ3JvdXBzIFg0NDggLW1zZyAtdGxzMV8zIC1udW1fdGlja2V0cyAwIC1ub19yZXN1bWVfZXBoZW1lcmFsIC1ub19jYWNoZSIgXAorICAgICAgICAgIiRQX0NMSSBjYV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvdGVzdC1jYTIuY3J0IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0xMjgtR0NNLVNIQTI1NiBzaWdfYWxncz1lY2RzYV9zZWNwNTIxcjFfc2hhNTEyIGdyb3Vwcz14NDQ4IiBcCiAgICAgICAgICAwIFwKICAgICAgICAgIC1jICJIVFRQLzEuMCAyMDAgb2siIFwKICAgICAgICAgIC1jICJQcm90b2NvbCBpcyBUTFN2MS4zIiBcCkBAIC00Nzg3LDggKzQ3ODksOCBAQAogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgTUJFRFRMU19YNTA5X1JTQVNTQV9QU1NfU1VQUE9SVAogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgUFNBX1dBTlRfQUxHX0VDREgKIHJ1bl90ZXN0ICJUTFMgMS4zIG0tPk86IEFFU18xMjhfR0NNX1NIQTI1Nix4NDQ4LHJzYV9wc3NfcnNhZV9zaGEyNTYiIFwKLSAgICAgICAgICIkT19ORVhUX1NSVl9OT19DRVJUIC1jZXJ0IGRhdGFfZmlsZXMvc2VydmVyMi1zaGEyNTYuY3J0IC1rZXkgZGF0YV9maWxlcy9zZXJ2ZXIyLmtleSAtY2lwaGVyc3VpdGVzIFRMU19BRVNfMTI4X0dDTV9TSEEyNTYgLXNpZ2FsZ3MgcnNhX3Bzc19yc2FlX3NoYTI1NiAtZ3JvdXBzIFg0NDggLW1zZyAtdGxzMV8zIC1udW1fdGlja2V0cyAwIC1ub19yZXN1bWVfZXBoZW1lcmFsIC1ub19jYWNoZSIgXAotICAgICAgICAgIiRQX0NMSSBjYV9maWxlPWRhdGFfZmlsZXMvdGVzdC1jYV9jYXQxMi5jcnQgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTEyOC1HQ00tU0hBMjU2IHNpZ19hbGdzPXJzYV9wc3NfcnNhZV9zaGEyNTYgZ3JvdXBzPXg0NDgiIFwKKyAgICAgICAgICIkT19ORVhUX1NSVl9OT19DRVJUIC1jZXJ0ICREQVRBX0ZJTEVTX1BBVEgvc2VydmVyMi1zaGEyNTYuY3J0IC1rZXkgJERBVEFfRklMRVNfUEFUSC9zZXJ2ZXIyLmtleSAtY2lwaGVyc3VpdGVzIFRMU19BRVNfMTI4X0dDTV9TSEEyNTYgLXNpZ2FsZ3MgcnNhX3Bzc19yc2FlX3NoYTI1NiAtZ3JvdXBzIFg0NDggLW1zZyAtdGxzMV8zIC1udW1fdGlja2V0cyAwIC1ub19yZXN1bWVfZXBoZW1lcmFsIC1ub19jYWNoZSIgXAorICAgICAgICAgIiRQX0NMSSBjYV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvdGVzdC1jYV9jYXQxMi5jcnQgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTEyOC1HQ00tU0hBMjU2IHNpZ19hbGdzPXJzYV9wc3NfcnNhZV9zaGEyNTYgZ3JvdXBzPXg0NDgiIFwKICAgICAgICAgIDAgXAogICAgICAgICAgLWMgIkhUVFAvMS4wIDIwMCBvayIgXAogICAgICAgICAgLWMgIlByb3RvY29sIGlzIFRMU3YxLjMiIFwKQEAgLTQ4MDYsOCArNDgwOCw4IEBACiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBQU0FfV0FOVF9BTEdfRkZESAogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgUFNBX1dBTlRfREhfUkZDNzkxOV8yMDQ4CiBydW5fdGVzdCAiVExTIDEuMyBtLT5POiBBRVNfMTI4X0dDTV9TSEEyNTYsZmZkaGUyMDQ4LGVjZHNhX3NlY3AyNTZyMV9zaGEyNTYiIFwKLSAgICAgICAgICIkT19ORVhUX1NSVl9OT19DRVJUIC1jZXJ0IGRhdGFfZmlsZXMvZWNkc2Ffc2VjcDI1NnIxLmNydCAta2V5IGRhdGFfZmlsZXMvZWNkc2Ffc2VjcDI1NnIxLmtleSAtY2lwaGVyc3VpdGVzIFRMU19BRVNfMTI4X0dDTV9TSEEyNTYgLXNpZ2FsZ3MgZWNkc2Ffc2VjcDI1NnIxX3NoYTI1NiAtZ3JvdXBzIGZmZGhlMjA0OCAtbXNnIC10bHMxXzMgLW51bV90aWNrZXRzIDAgLW5vX3Jlc3VtZV9lcGhlbWVyYWwgLW5vX2NhY2hlIiBcCi0gICAgICAgICAiJFBfQ0xJIGNhX2ZpbGU9ZGF0YV9maWxlcy90ZXN0LWNhMi5jcnQgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTEyOC1HQ00tU0hBMjU2IHNpZ19hbGdzPWVjZHNhX3NlY3AyNTZyMV9zaGEyNTYgZ3JvdXBzPWZmZGhlMjA0OCIgXAorICAgICAgICAgIiRPX05FWFRfU1JWX05PX0NFUlQgLWNlcnQgJERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwMjU2cjEuY3J0IC1rZXkgJERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwMjU2cjEua2V5IC1jaXBoZXJzdWl0ZXMgVExTX0FFU18xMjhfR0NNX1NIQTI1NiAtc2lnYWxncyBlY2RzYV9zZWNwMjU2cjFfc2hhMjU2IC1ncm91cHMgZmZkaGUyMDQ4IC1tc2cgLXRsczFfMyAtbnVtX3RpY2tldHMgMCAtbm9fcmVzdW1lX2VwaGVtZXJhbCAtbm9fY2FjaGUiIFwKKyAgICAgICAgICIkUF9DTEkgY2FfZmlsZT0kREFUQV9GSUxFU19QQVRIL3Rlc3QtY2EyLmNydCBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMTI4LUdDTS1TSEEyNTYgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDI1NnIxX3NoYTI1NiBncm91cHM9ZmZkaGUyMDQ4IiBcCiAgICAgICAgICAwIFwKICAgICAgICAgIC1jICJIVFRQLzEuMCAyMDAgb2siIFwKICAgICAgICAgIC1jICJQcm90b2NvbCBpcyBUTFN2MS4zIiBcCkBAIC00ODI1LDggKzQ4MjcsOCBAQAogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgUFNBX1dBTlRfQUxHX0ZGREgKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIFBTQV9XQU5UX0RIX1JGQzc5MTlfMjA0OAogcnVuX3Rlc3QgIlRMUyAxLjMgbS0+TzogQUVTXzEyOF9HQ01fU0hBMjU2LGZmZGhlMjA0OCxlY2RzYV9zZWNwMzg0cjFfc2hhMzg0IiBcCi0gICAgICAgICAiJE9fTkVYVF9TUlZfTk9fQ0VSVCAtY2VydCBkYXRhX2ZpbGVzL2VjZHNhX3NlY3AzODRyMS5jcnQgLWtleSBkYXRhX2ZpbGVzL2VjZHNhX3NlY3AzODRyMS5rZXkgLWNpcGhlcnN1aXRlcyBUTFNfQUVTXzEyOF9HQ01fU0hBMjU2IC1zaWdhbGdzIGVjZHNhX3NlY3AzODRyMV9zaGEzODQgLWdyb3VwcyBmZmRoZTIwNDggLW1zZyAtdGxzMV8zIC1udW1fdGlja2V0cyAwIC1ub19yZXN1bWVfZXBoZW1lcmFsIC1ub19jYWNoZSIgXAotICAgICAgICAgIiRQX0NMSSBjYV9maWxlPWRhdGFfZmlsZXMvdGVzdC1jYTIuY3J0IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0xMjgtR0NNLVNIQTI1NiBzaWdfYWxncz1lY2RzYV9zZWNwMzg0cjFfc2hhMzg0IGdyb3Vwcz1mZmRoZTIwNDgiIFwKKyAgICAgICAgICIkT19ORVhUX1NSVl9OT19DRVJUIC1jZXJ0ICREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDM4NHIxLmNydCAta2V5ICREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDM4NHIxLmtleSAtY2lwaGVyc3VpdGVzIFRMU19BRVNfMTI4X0dDTV9TSEEyNTYgLXNpZ2FsZ3MgZWNkc2Ffc2VjcDM4NHIxX3NoYTM4NCAtZ3JvdXBzIGZmZGhlMjA0OCAtbXNnIC10bHMxXzMgLW51bV90aWNrZXRzIDAgLW5vX3Jlc3VtZV9lcGhlbWVyYWwgLW5vX2NhY2hlIiBcCisgICAgICAgICAiJFBfQ0xJIGNhX2ZpbGU9JERBVEFfRklMRVNfUEFUSC90ZXN0LWNhMi5jcnQgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTEyOC1HQ00tU0hBMjU2IHNpZ19hbGdzPWVjZHNhX3NlY3AzODRyMV9zaGEzODQgZ3JvdXBzPWZmZGhlMjA0OCIgXAogICAgICAgICAgMCBcCiAgICAgICAgICAtYyAiSFRUUC8xLjAgMjAwIG9rIiBcCiAgICAgICAgICAtYyAiUHJvdG9jb2wgaXMgVExTdjEuMyIgXApAQCAtNDg0NCw4ICs0ODQ2LDggQEAKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIFBTQV9XQU5UX0FMR19GRkRICiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBQU0FfV0FOVF9ESF9SRkM3OTE5XzIwNDgKIHJ1bl90ZXN0ICJUTFMgMS4zIG0tPk86IEFFU18xMjhfR0NNX1NIQTI1NixmZmRoZTIwNDgsZWNkc2Ffc2VjcDUyMXIxX3NoYTUxMiIgXAotICAgICAgICAgIiRPX05FWFRfU1JWX05PX0NFUlQgLWNlcnQgZGF0YV9maWxlcy9lY2RzYV9zZWNwNTIxcjEuY3J0IC1rZXkgZGF0YV9maWxlcy9lY2RzYV9zZWNwNTIxcjEua2V5IC1jaXBoZXJzdWl0ZXMgVExTX0FFU18xMjhfR0NNX1NIQTI1NiAtc2lnYWxncyBlY2RzYV9zZWNwNTIxcjFfc2hhNTEyIC1ncm91cHMgZmZkaGUyMDQ4IC1tc2cgLXRsczFfMyAtbnVtX3RpY2tldHMgMCAtbm9fcmVzdW1lX2VwaGVtZXJhbCAtbm9fY2FjaGUiIFwKLSAgICAgICAgICIkUF9DTEkgY2FfZmlsZT1kYXRhX2ZpbGVzL3Rlc3QtY2EyLmNydCBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMTI4LUdDTS1TSEEyNTYgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDUyMXIxX3NoYTUxMiBncm91cHM9ZmZkaGUyMDQ4IiBcCisgICAgICAgICAiJE9fTkVYVF9TUlZfTk9fQ0VSVCAtY2VydCAkREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3A1MjFyMS5jcnQgLWtleSAkREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3A1MjFyMS5rZXkgLWNpcGhlcnN1aXRlcyBUTFNfQUVTXzEyOF9HQ01fU0hBMjU2IC1zaWdhbGdzIGVjZHNhX3NlY3A1MjFyMV9zaGE1MTIgLWdyb3VwcyBmZmRoZTIwNDggLW1zZyAtdGxzMV8zIC1udW1fdGlja2V0cyAwIC1ub19yZXN1bWVfZXBoZW1lcmFsIC1ub19jYWNoZSIgXAorICAgICAgICAgIiRQX0NMSSBjYV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvdGVzdC1jYTIuY3J0IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0xMjgtR0NNLVNIQTI1NiBzaWdfYWxncz1lY2RzYV9zZWNwNTIxcjFfc2hhNTEyIGdyb3Vwcz1mZmRoZTIwNDgiIFwKICAgICAgICAgIDAgXAogICAgICAgICAgLWMgIkhUVFAvMS4wIDIwMCBvayIgXAogICAgICAgICAgLWMgIlByb3RvY29sIGlzIFRMU3YxLjMiIFwKQEAgLTQ4NjQsOCArNDg2Niw4IEBACiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBQU0FfV0FOVF9BTEdfRkZESAogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgUFNBX1dBTlRfREhfUkZDNzkxOV8yMDQ4CiBydW5fdGVzdCAiVExTIDEuMyBtLT5POiBBRVNfMTI4X0dDTV9TSEEyNTYsZmZkaGUyMDQ4LHJzYV9wc3NfcnNhZV9zaGEyNTYiIFwKLSAgICAgICAgICIkT19ORVhUX1NSVl9OT19DRVJUIC1jZXJ0IGRhdGFfZmlsZXMvc2VydmVyMi1zaGEyNTYuY3J0IC1rZXkgZGF0YV9maWxlcy9zZXJ2ZXIyLmtleSAtY2lwaGVyc3VpdGVzIFRMU19BRVNfMTI4X0dDTV9TSEEyNTYgLXNpZ2FsZ3MgcnNhX3Bzc19yc2FlX3NoYTI1NiAtZ3JvdXBzIGZmZGhlMjA0OCAtbXNnIC10bHMxXzMgLW51bV90aWNrZXRzIDAgLW5vX3Jlc3VtZV9lcGhlbWVyYWwgLW5vX2NhY2hlIiBcCi0gICAgICAgICAiJFBfQ0xJIGNhX2ZpbGU9ZGF0YV9maWxlcy90ZXN0LWNhX2NhdDEyLmNydCBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMTI4LUdDTS1TSEEyNTYgc2lnX2FsZ3M9cnNhX3Bzc19yc2FlX3NoYTI1NiBncm91cHM9ZmZkaGUyMDQ4IiBcCisgICAgICAgICAiJE9fTkVYVF9TUlZfTk9fQ0VSVCAtY2VydCAkREFUQV9GSUxFU19QQVRIL3NlcnZlcjItc2hhMjU2LmNydCAta2V5ICREQVRBX0ZJTEVTX1BBVEgvc2VydmVyMi5rZXkgLWNpcGhlcnN1aXRlcyBUTFNfQUVTXzEyOF9HQ01fU0hBMjU2IC1zaWdhbGdzIHJzYV9wc3NfcnNhZV9zaGEyNTYgLWdyb3VwcyBmZmRoZTIwNDggLW1zZyAtdGxzMV8zIC1udW1fdGlja2V0cyAwIC1ub19yZXN1bWVfZXBoZW1lcmFsIC1ub19jYWNoZSIgXAorICAgICAgICAgIiRQX0NMSSBjYV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvdGVzdC1jYV9jYXQxMi5jcnQgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTEyOC1HQ00tU0hBMjU2IHNpZ19hbGdzPXJzYV9wc3NfcnNhZV9zaGEyNTYgZ3JvdXBzPWZmZGhlMjA0OCIgXAogICAgICAgICAgMCBcCiAgICAgICAgICAtYyAiSFRUUC8xLjAgMjAwIG9rIiBcCiAgICAgICAgICAtYyAiUHJvdG9jb2wgaXMgVExTdjEuMyIgXApAQCAtNDg4Miw4ICs0ODg0LDggQEAKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIE1CRURUTFNfU1NMX1RMUzFfM19DT01QQVRJQklMSVRZX01PREUKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIFBTQV9XQU5UX0FMR19FQ0RICiBydW5fdGVzdCAiVExTIDEuMyBtLT5POiBBRVNfMjU2X0dDTV9TSEEzODQsc2VjcDI1NnIxLGVjZHNhX3NlY3AyNTZyMV9zaGEyNTYiIFwKLSAgICAgICAgICIkT19ORVhUX1NSVl9OT19DRVJUIC1jZXJ0IGRhdGFfZmlsZXMvZWNkc2Ffc2VjcDI1NnIxLmNydCAta2V5IGRhdGFfZmlsZXMvZWNkc2Ffc2VjcDI1NnIxLmtleSAtY2lwaGVyc3VpdGVzIFRMU19BRVNfMjU2X0dDTV9TSEEzODQgLXNpZ2FsZ3MgZWNkc2Ffc2VjcDI1NnIxX3NoYTI1NiAtZ3JvdXBzIFAtMjU2IC1tc2cgLXRsczFfMyAtbnVtX3RpY2tldHMgMCAtbm9fcmVzdW1lX2VwaGVtZXJhbCAtbm9fY2FjaGUiIFwKLSAgICAgICAgICIkUF9DTEkgY2FfZmlsZT1kYXRhX2ZpbGVzL3Rlc3QtY2EyLmNydCBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMjU2LUdDTS1TSEEzODQgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDI1NnIxX3NoYTI1NiBncm91cHM9c2VjcDI1NnIxIiBcCisgICAgICAgICAiJE9fTkVYVF9TUlZfTk9fQ0VSVCAtY2VydCAkREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3AyNTZyMS5jcnQgLWtleSAkREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3AyNTZyMS5rZXkgLWNpcGhlcnN1aXRlcyBUTFNfQUVTXzI1Nl9HQ01fU0hBMzg0IC1zaWdhbGdzIGVjZHNhX3NlY3AyNTZyMV9zaGEyNTYgLWdyb3VwcyBQLTI1NiAtbXNnIC10bHMxXzMgLW51bV90aWNrZXRzIDAgLW5vX3Jlc3VtZV9lcGhlbWVyYWwgLW5vX2NhY2hlIiBcCisgICAgICAgICAiJFBfQ0xJIGNhX2ZpbGU9JERBVEFfRklMRVNfUEFUSC90ZXN0LWNhMi5jcnQgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTI1Ni1HQ00tU0hBMzg0IHNpZ19hbGdzPWVjZHNhX3NlY3AyNTZyMV9zaGEyNTYgZ3JvdXBzPXNlY3AyNTZyMSIgXAogICAgICAgICAgMCBcCiAgICAgICAgICAtYyAiSFRUUC8xLjAgMjAwIG9rIiBcCiAgICAgICAgICAtYyAiUHJvdG9jb2wgaXMgVExTdjEuMyIgXApAQCAtNDkwMCw4ICs0OTAyLDggQEAKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIE1CRURUTFNfU1NMX1RMUzFfM19DT01QQVRJQklMSVRZX01PREUKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIFBTQV9XQU5UX0FMR19FQ0RICiBydW5fdGVzdCAiVExTIDEuMyBtLT5POiBBRVNfMjU2X0dDTV9TSEEzODQsc2VjcDI1NnIxLGVjZHNhX3NlY3AzODRyMV9zaGEzODQiIFwKLSAgICAgICAgICIkT19ORVhUX1NSVl9OT19DRVJUIC1jZXJ0IGRhdGFfZmlsZXMvZWNkc2Ffc2VjcDM4NHIxLmNydCAta2V5IGRhdGFfZmlsZXMvZWNkc2Ffc2VjcDM4NHIxLmtleSAtY2lwaGVyc3VpdGVzIFRMU19BRVNfMjU2X0dDTV9TSEEzODQgLXNpZ2FsZ3MgZWNkc2Ffc2VjcDM4NHIxX3NoYTM4NCAtZ3JvdXBzIFAtMjU2IC1tc2cgLXRsczFfMyAtbnVtX3RpY2tldHMgMCAtbm9fcmVzdW1lX2VwaGVtZXJhbCAtbm9fY2FjaGUiIFwKLSAgICAgICAgICIkUF9DTEkgY2FfZmlsZT1kYXRhX2ZpbGVzL3Rlc3QtY2EyLmNydCBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMjU2LUdDTS1TSEEzODQgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDM4NHIxX3NoYTM4NCBncm91cHM9c2VjcDI1NnIxIiBcCisgICAgICAgICAiJE9fTkVYVF9TUlZfTk9fQ0VSVCAtY2VydCAkREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3AzODRyMS5jcnQgLWtleSAkREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3AzODRyMS5rZXkgLWNpcGhlcnN1aXRlcyBUTFNfQUVTXzI1Nl9HQ01fU0hBMzg0IC1zaWdhbGdzIGVjZHNhX3NlY3AzODRyMV9zaGEzODQgLWdyb3VwcyBQLTI1NiAtbXNnIC10bHMxXzMgLW51bV90aWNrZXRzIDAgLW5vX3Jlc3VtZV9lcGhlbWVyYWwgLW5vX2NhY2hlIiBcCisgICAgICAgICAiJFBfQ0xJIGNhX2ZpbGU9JERBVEFfRklMRVNfUEFUSC90ZXN0LWNhMi5jcnQgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTI1Ni1HQ00tU0hBMzg0IHNpZ19hbGdzPWVjZHNhX3NlY3AzODRyMV9zaGEzODQgZ3JvdXBzPXNlY3AyNTZyMSIgXAogICAgICAgICAgMCBcCiAgICAgICAgICAtYyAiSFRUUC8xLjAgMjAwIG9rIiBcCiAgICAgICAgICAtYyAiUHJvdG9jb2wgaXMgVExTdjEuMyIgXApAQCAtNDkxOCw4ICs0OTIwLDggQEAKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIE1CRURUTFNfU1NMX1RMUzFfM19DT01QQVRJQklMSVRZX01PREUKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIFBTQV9XQU5UX0FMR19FQ0RICiBydW5fdGVzdCAiVExTIDEuMyBtLT5POiBBRVNfMjU2X0dDTV9TSEEzODQsc2VjcDI1NnIxLGVjZHNhX3NlY3A1MjFyMV9zaGE1MTIiIFwKLSAgICAgICAgICIkT19ORVhUX1NSVl9OT19DRVJUIC1jZXJ0IGRhdGFfZmlsZXMvZWNkc2Ffc2VjcDUyMXIxLmNydCAta2V5IGRhdGFfZmlsZXMvZWNkc2Ffc2VjcDUyMXIxLmtleSAtY2lwaGVyc3VpdGVzIFRMU19BRVNfMjU2X0dDTV9TSEEzODQgLXNpZ2FsZ3MgZWNkc2Ffc2VjcDUyMXIxX3NoYTUxMiAtZ3JvdXBzIFAtMjU2IC1tc2cgLXRsczFfMyAtbnVtX3RpY2tldHMgMCAtbm9fcmVzdW1lX2VwaGVtZXJhbCAtbm9fY2FjaGUiIFwKLSAgICAgICAgICIkUF9DTEkgY2FfZmlsZT1kYXRhX2ZpbGVzL3Rlc3QtY2EyLmNydCBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMjU2LUdDTS1TSEEzODQgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDUyMXIxX3NoYTUxMiBncm91cHM9c2VjcDI1NnIxIiBcCisgICAgICAgICAiJE9fTkVYVF9TUlZfTk9fQ0VSVCAtY2VydCAkREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3A1MjFyMS5jcnQgLWtleSAkREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3A1MjFyMS5rZXkgLWNpcGhlcnN1aXRlcyBUTFNfQUVTXzI1Nl9HQ01fU0hBMzg0IC1zaWdhbGdzIGVjZHNhX3NlY3A1MjFyMV9zaGE1MTIgLWdyb3VwcyBQLTI1NiAtbXNnIC10bHMxXzMgLW51bV90aWNrZXRzIDAgLW5vX3Jlc3VtZV9lcGhlbWVyYWwgLW5vX2NhY2hlIiBcCisgICAgICAgICAiJFBfQ0xJIGNhX2ZpbGU9JERBVEFfRklMRVNfUEFUSC90ZXN0LWNhMi5jcnQgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTI1Ni1HQ00tU0hBMzg0IHNpZ19hbGdzPWVjZHNhX3NlY3A1MjFyMV9zaGE1MTIgZ3JvdXBzPXNlY3AyNTZyMSIgXAogICAgICAgICAgMCBcCiAgICAgICAgICAtYyAiSFRUUC8xLjAgMjAwIG9rIiBcCiAgICAgICAgICAtYyAiUHJvdG9jb2wgaXMgVExTdjEuMyIgXApAQCAtNDkzNyw4ICs0OTM5LDggQEAKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIE1CRURUTFNfWDUwOV9SU0FTU0FfUFNTX1NVUFBPUlQKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIFBTQV9XQU5UX0FMR19FQ0RICiBydW5fdGVzdCAiVExTIDEuMyBtLT5POiBBRVNfMjU2X0dDTV9TSEEzODQsc2VjcDI1NnIxLHJzYV9wc3NfcnNhZV9zaGEyNTYiIFwKLSAgICAgICAgICIkT19ORVhUX1NSVl9OT19DRVJUIC1jZXJ0IGRhdGFfZmlsZXMvc2VydmVyMi1zaGEyNTYuY3J0IC1rZXkgZGF0YV9maWxlcy9zZXJ2ZXIyLmtleSAtY2lwaGVyc3VpdGVzIFRMU19BRVNfMjU2X0dDTV9TSEEzODQgLXNpZ2FsZ3MgcnNhX3Bzc19yc2FlX3NoYTI1NiAtZ3JvdXBzIFAtMjU2IC1tc2cgLXRsczFfMyAtbnVtX3RpY2tldHMgMCAtbm9fcmVzdW1lX2VwaGVtZXJhbCAtbm9fY2FjaGUiIFwKLSAgICAgICAgICIkUF9DTEkgY2FfZmlsZT1kYXRhX2ZpbGVzL3Rlc3QtY2FfY2F0MTIuY3J0IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0yNTYtR0NNLVNIQTM4NCBzaWdfYWxncz1yc2FfcHNzX3JzYWVfc2hhMjU2IGdyb3Vwcz1zZWNwMjU2cjEiIFwKKyAgICAgICAgICIkT19ORVhUX1NSVl9OT19DRVJUIC1jZXJ0ICREQVRBX0ZJTEVTX1BBVEgvc2VydmVyMi1zaGEyNTYuY3J0IC1rZXkgJERBVEFfRklMRVNfUEFUSC9zZXJ2ZXIyLmtleSAtY2lwaGVyc3VpdGVzIFRMU19BRVNfMjU2X0dDTV9TSEEzODQgLXNpZ2FsZ3MgcnNhX3Bzc19yc2FlX3NoYTI1NiAtZ3JvdXBzIFAtMjU2IC1tc2cgLXRsczFfMyAtbnVtX3RpY2tldHMgMCAtbm9fcmVzdW1lX2VwaGVtZXJhbCAtbm9fY2FjaGUiIFwKKyAgICAgICAgICIkUF9DTEkgY2FfZmlsZT0kREFUQV9GSUxFU19QQVRIL3Rlc3QtY2FfY2F0MTIuY3J0IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0yNTYtR0NNLVNIQTM4NCBzaWdfYWxncz1yc2FfcHNzX3JzYWVfc2hhMjU2IGdyb3Vwcz1zZWNwMjU2cjEiIFwKICAgICAgICAgIDAgXAogICAgICAgICAgLWMgIkhUVFAvMS4wIDIwMCBvayIgXAogICAgICAgICAgLWMgIlByb3RvY29sIGlzIFRMU3YxLjMiIFwKQEAgLTQ5NTUsOCArNDk1Nyw4IEBACiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBNQkVEVExTX1NTTF9UTFMxXzNfQ09NUEFUSUJJTElUWV9NT0RFCiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBQU0FfV0FOVF9BTEdfRUNESAogcnVuX3Rlc3QgIlRMUyAxLjMgbS0+TzogQUVTXzI1Nl9HQ01fU0hBMzg0LHNlY3AzODRyMSxlY2RzYV9zZWNwMjU2cjFfc2hhMjU2IiBcCi0gICAgICAgICAiJE9fTkVYVF9TUlZfTk9fQ0VSVCAtY2VydCBkYXRhX2ZpbGVzL2VjZHNhX3NlY3AyNTZyMS5jcnQgLWtleSBkYXRhX2ZpbGVzL2VjZHNhX3NlY3AyNTZyMS5rZXkgLWNpcGhlcnN1aXRlcyBUTFNfQUVTXzI1Nl9HQ01fU0hBMzg0IC1zaWdhbGdzIGVjZHNhX3NlY3AyNTZyMV9zaGEyNTYgLWdyb3VwcyBQLTM4NCAtbXNnIC10bHMxXzMgLW51bV90aWNrZXRzIDAgLW5vX3Jlc3VtZV9lcGhlbWVyYWwgLW5vX2NhY2hlIiBcCi0gICAgICAgICAiJFBfQ0xJIGNhX2ZpbGU9ZGF0YV9maWxlcy90ZXN0LWNhMi5jcnQgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTI1Ni1HQ00tU0hBMzg0IHNpZ19hbGdzPWVjZHNhX3NlY3AyNTZyMV9zaGEyNTYgZ3JvdXBzPXNlY3AzODRyMSIgXAorICAgICAgICAgIiRPX05FWFRfU1JWX05PX0NFUlQgLWNlcnQgJERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwMjU2cjEuY3J0IC1rZXkgJERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwMjU2cjEua2V5IC1jaXBoZXJzdWl0ZXMgVExTX0FFU18yNTZfR0NNX1NIQTM4NCAtc2lnYWxncyBlY2RzYV9zZWNwMjU2cjFfc2hhMjU2IC1ncm91cHMgUC0zODQgLW1zZyAtdGxzMV8zIC1udW1fdGlja2V0cyAwIC1ub19yZXN1bWVfZXBoZW1lcmFsIC1ub19jYWNoZSIgXAorICAgICAgICAgIiRQX0NMSSBjYV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvdGVzdC1jYTIuY3J0IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0yNTYtR0NNLVNIQTM4NCBzaWdfYWxncz1lY2RzYV9zZWNwMjU2cjFfc2hhMjU2IGdyb3Vwcz1zZWNwMzg0cjEiIFwKICAgICAgICAgIDAgXAogICAgICAgICAgLWMgIkhUVFAvMS4wIDIwMCBvayIgXAogICAgICAgICAgLWMgIlByb3RvY29sIGlzIFRMU3YxLjMiIFwKQEAgLTQ5NzMsOCArNDk3NSw4IEBACiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBNQkVEVExTX1NTTF9UTFMxXzNfQ09NUEFUSUJJTElUWV9NT0RFCiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBQU0FfV0FOVF9BTEdfRUNESAogcnVuX3Rlc3QgIlRMUyAxLjMgbS0+TzogQUVTXzI1Nl9HQ01fU0hBMzg0LHNlY3AzODRyMSxlY2RzYV9zZWNwMzg0cjFfc2hhMzg0IiBcCi0gICAgICAgICAiJE9fTkVYVF9TUlZfTk9fQ0VSVCAtY2VydCBkYXRhX2ZpbGVzL2VjZHNhX3NlY3AzODRyMS5jcnQgLWtleSBkYXRhX2ZpbGVzL2VjZHNhX3NlY3AzODRyMS5rZXkgLWNpcGhlcnN1aXRlcyBUTFNfQUVTXzI1Nl9HQ01fU0hBMzg0IC1zaWdhbGdzIGVjZHNhX3NlY3AzODRyMV9zaGEzODQgLWdyb3VwcyBQLTM4NCAtbXNnIC10bHMxXzMgLW51bV90aWNrZXRzIDAgLW5vX3Jlc3VtZV9lcGhlbWVyYWwgLW5vX2NhY2hlIiBcCi0gICAgICAgICAiJFBfQ0xJIGNhX2ZpbGU9ZGF0YV9maWxlcy90ZXN0LWNhMi5jcnQgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTI1Ni1HQ00tU0hBMzg0IHNpZ19hbGdzPWVjZHNhX3NlY3AzODRyMV9zaGEzODQgZ3JvdXBzPXNlY3AzODRyMSIgXAorICAgICAgICAgIiRPX05FWFRfU1JWX05PX0NFUlQgLWNlcnQgJERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwMzg0cjEuY3J0IC1rZXkgJERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwMzg0cjEua2V5IC1jaXBoZXJzdWl0ZXMgVExTX0FFU18yNTZfR0NNX1NIQTM4NCAtc2lnYWxncyBlY2RzYV9zZWNwMzg0cjFfc2hhMzg0IC1ncm91cHMgUC0zODQgLW1zZyAtdGxzMV8zIC1udW1fdGlja2V0cyAwIC1ub19yZXN1bWVfZXBoZW1lcmFsIC1ub19jYWNoZSIgXAorICAgICAgICAgIiRQX0NMSSBjYV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvdGVzdC1jYTIuY3J0IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0yNTYtR0NNLVNIQTM4NCBzaWdfYWxncz1lY2RzYV9zZWNwMzg0cjFfc2hhMzg0IGdyb3Vwcz1zZWNwMzg0cjEiIFwKICAgICAgICAgIDAgXAogICAgICAgICAgLWMgIkhUVFAvMS4wIDIwMCBvayIgXAogICAgICAgICAgLWMgIlByb3RvY29sIGlzIFRMU3YxLjMiIFwKQEAgLTQ5OTEsOCArNDk5Myw4IEBACiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBNQkVEVExTX1NTTF9UTFMxXzNfQ09NUEFUSUJJTElUWV9NT0RFCiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBQU0FfV0FOVF9BTEdfRUNESAogcnVuX3Rlc3QgIlRMUyAxLjMgbS0+TzogQUVTXzI1Nl9HQ01fU0hBMzg0LHNlY3AzODRyMSxlY2RzYV9zZWNwNTIxcjFfc2hhNTEyIiBcCi0gICAgICAgICAiJE9fTkVYVF9TUlZfTk9fQ0VSVCAtY2VydCBkYXRhX2ZpbGVzL2VjZHNhX3NlY3A1MjFyMS5jcnQgLWtleSBkYXRhX2ZpbGVzL2VjZHNhX3NlY3A1MjFyMS5rZXkgLWNpcGhlcnN1aXRlcyBUTFNfQUVTXzI1Nl9HQ01fU0hBMzg0IC1zaWdhbGdzIGVjZHNhX3NlY3A1MjFyMV9zaGE1MTIgLWdyb3VwcyBQLTM4NCAtbXNnIC10bHMxXzMgLW51bV90aWNrZXRzIDAgLW5vX3Jlc3VtZV9lcGhlbWVyYWwgLW5vX2NhY2hlIiBcCi0gICAgICAgICAiJFBfQ0xJIGNhX2ZpbGU9ZGF0YV9maWxlcy90ZXN0LWNhMi5jcnQgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTI1Ni1HQ00tU0hBMzg0IHNpZ19hbGdzPWVjZHNhX3NlY3A1MjFyMV9zaGE1MTIgZ3JvdXBzPXNlY3AzODRyMSIgXAorICAgICAgICAgIiRPX05FWFRfU1JWX05PX0NFUlQgLWNlcnQgJERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwNTIxcjEuY3J0IC1rZXkgJERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwNTIxcjEua2V5IC1jaXBoZXJzdWl0ZXMgVExTX0FFU18yNTZfR0NNX1NIQTM4NCAtc2lnYWxncyBlY2RzYV9zZWNwNTIxcjFfc2hhNTEyIC1ncm91cHMgUC0zODQgLW1zZyAtdGxzMV8zIC1udW1fdGlja2V0cyAwIC1ub19yZXN1bWVfZXBoZW1lcmFsIC1ub19jYWNoZSIgXAorICAgICAgICAgIiRQX0NMSSBjYV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvdGVzdC1jYTIuY3J0IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0yNTYtR0NNLVNIQTM4NCBzaWdfYWxncz1lY2RzYV9zZWNwNTIxcjFfc2hhNTEyIGdyb3Vwcz1zZWNwMzg0cjEiIFwKICAgICAgICAgIDAgXAogICAgICAgICAgLWMgIkhUVFAvMS4wIDIwMCBvayIgXAogICAgICAgICAgLWMgIlByb3RvY29sIGlzIFRMU3YxLjMiIFwKQEAgLTUwMTAsOCArNTAxMiw4IEBACiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBNQkVEVExTX1g1MDlfUlNBU1NBX1BTU19TVVBQT1JUCiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBQU0FfV0FOVF9BTEdfRUNESAogcnVuX3Rlc3QgIlRMUyAxLjMgbS0+TzogQUVTXzI1Nl9HQ01fU0hBMzg0LHNlY3AzODRyMSxyc2FfcHNzX3JzYWVfc2hhMjU2IiBcCi0gICAgICAgICAiJE9fTkVYVF9TUlZfTk9fQ0VSVCAtY2VydCBkYXRhX2ZpbGVzL3NlcnZlcjItc2hhMjU2LmNydCAta2V5IGRhdGFfZmlsZXMvc2VydmVyMi5rZXkgLWNpcGhlcnN1aXRlcyBUTFNfQUVTXzI1Nl9HQ01fU0hBMzg0IC1zaWdhbGdzIHJzYV9wc3NfcnNhZV9zaGEyNTYgLWdyb3VwcyBQLTM4NCAtbXNnIC10bHMxXzMgLW51bV90aWNrZXRzIDAgLW5vX3Jlc3VtZV9lcGhlbWVyYWwgLW5vX2NhY2hlIiBcCi0gICAgICAgICAiJFBfQ0xJIGNhX2ZpbGU9ZGF0YV9maWxlcy90ZXN0LWNhX2NhdDEyLmNydCBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMjU2LUdDTS1TSEEzODQgc2lnX2FsZ3M9cnNhX3Bzc19yc2FlX3NoYTI1NiBncm91cHM9c2VjcDM4NHIxIiBcCisgICAgICAgICAiJE9fTkVYVF9TUlZfTk9fQ0VSVCAtY2VydCAkREFUQV9GSUxFU19QQVRIL3NlcnZlcjItc2hhMjU2LmNydCAta2V5ICREQVRBX0ZJTEVTX1BBVEgvc2VydmVyMi5rZXkgLWNpcGhlcnN1aXRlcyBUTFNfQUVTXzI1Nl9HQ01fU0hBMzg0IC1zaWdhbGdzIHJzYV9wc3NfcnNhZV9zaGEyNTYgLWdyb3VwcyBQLTM4NCAtbXNnIC10bHMxXzMgLW51bV90aWNrZXRzIDAgLW5vX3Jlc3VtZV9lcGhlbWVyYWwgLW5vX2NhY2hlIiBcCisgICAgICAgICAiJFBfQ0xJIGNhX2ZpbGU9JERBVEFfRklMRVNfUEFUSC90ZXN0LWNhX2NhdDEyLmNydCBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMjU2LUdDTS1TSEEzODQgc2lnX2FsZ3M9cnNhX3Bzc19yc2FlX3NoYTI1NiBncm91cHM9c2VjcDM4NHIxIiBcCiAgICAgICAgICAwIFwKICAgICAgICAgIC1jICJIVFRQLzEuMCAyMDAgb2siIFwKICAgICAgICAgIC1jICJQcm90b2NvbCBpcyBUTFN2MS4zIiBcCkBAIC01MDI4LDggKzUwMzAsOCBAQAogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgTUJFRFRMU19TU0xfVExTMV8zX0NPTVBBVElCSUxJVFlfTU9ERQogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgUFNBX1dBTlRfQUxHX0VDREgKIHJ1bl90ZXN0ICJUTFMgMS4zIG0tPk86IEFFU18yNTZfR0NNX1NIQTM4NCxzZWNwNTIxcjEsZWNkc2Ffc2VjcDI1NnIxX3NoYTI1NiIgXAotICAgICAgICAgIiRPX05FWFRfU1JWX05PX0NFUlQgLWNlcnQgZGF0YV9maWxlcy9lY2RzYV9zZWNwMjU2cjEuY3J0IC1rZXkgZGF0YV9maWxlcy9lY2RzYV9zZWNwMjU2cjEua2V5IC1jaXBoZXJzdWl0ZXMgVExTX0FFU18yNTZfR0NNX1NIQTM4NCAtc2lnYWxncyBlY2RzYV9zZWNwMjU2cjFfc2hhMjU2IC1ncm91cHMgUC01MjEgLW1zZyAtdGxzMV8zIC1udW1fdGlja2V0cyAwIC1ub19yZXN1bWVfZXBoZW1lcmFsIC1ub19jYWNoZSIgXAotICAgICAgICAgIiRQX0NMSSBjYV9maWxlPWRhdGFfZmlsZXMvdGVzdC1jYTIuY3J0IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0yNTYtR0NNLVNIQTM4NCBzaWdfYWxncz1lY2RzYV9zZWNwMjU2cjFfc2hhMjU2IGdyb3Vwcz1zZWNwNTIxcjEiIFwKKyAgICAgICAgICIkT19ORVhUX1NSVl9OT19DRVJUIC1jZXJ0ICREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDI1NnIxLmNydCAta2V5ICREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDI1NnIxLmtleSAtY2lwaGVyc3VpdGVzIFRMU19BRVNfMjU2X0dDTV9TSEEzODQgLXNpZ2FsZ3MgZWNkc2Ffc2VjcDI1NnIxX3NoYTI1NiAtZ3JvdXBzIFAtNTIxIC1tc2cgLXRsczFfMyAtbnVtX3RpY2tldHMgMCAtbm9fcmVzdW1lX2VwaGVtZXJhbCAtbm9fY2FjaGUiIFwKKyAgICAgICAgICIkUF9DTEkgY2FfZmlsZT0kREFUQV9GSUxFU19QQVRIL3Rlc3QtY2EyLmNydCBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMjU2LUdDTS1TSEEzODQgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDI1NnIxX3NoYTI1NiBncm91cHM9c2VjcDUyMXIxIiBcCiAgICAgICAgICAwIFwKICAgICAgICAgIC1jICJIVFRQLzEuMCAyMDAgb2siIFwKICAgICAgICAgIC1jICJQcm90b2NvbCBpcyBUTFN2MS4zIiBcCkBAIC01MDQ2LDggKzUwNDgsOCBAQAogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgTUJFRFRMU19TU0xfVExTMV8zX0NPTVBBVElCSUxJVFlfTU9ERQogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgUFNBX1dBTlRfQUxHX0VDREgKIHJ1bl90ZXN0ICJUTFMgMS4zIG0tPk86IEFFU18yNTZfR0NNX1NIQTM4NCxzZWNwNTIxcjEsZWNkc2Ffc2VjcDM4NHIxX3NoYTM4NCIgXAotICAgICAgICAgIiRPX05FWFRfU1JWX05PX0NFUlQgLWNlcnQgZGF0YV9maWxlcy9lY2RzYV9zZWNwMzg0cjEuY3J0IC1rZXkgZGF0YV9maWxlcy9lY2RzYV9zZWNwMzg0cjEua2V5IC1jaXBoZXJzdWl0ZXMgVExTX0FFU18yNTZfR0NNX1NIQTM4NCAtc2lnYWxncyBlY2RzYV9zZWNwMzg0cjFfc2hhMzg0IC1ncm91cHMgUC01MjEgLW1zZyAtdGxzMV8zIC1udW1fdGlja2V0cyAwIC1ub19yZXN1bWVfZXBoZW1lcmFsIC1ub19jYWNoZSIgXAotICAgICAgICAgIiRQX0NMSSBjYV9maWxlPWRhdGFfZmlsZXMvdGVzdC1jYTIuY3J0IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0yNTYtR0NNLVNIQTM4NCBzaWdfYWxncz1lY2RzYV9zZWNwMzg0cjFfc2hhMzg0IGdyb3Vwcz1zZWNwNTIxcjEiIFwKKyAgICAgICAgICIkT19ORVhUX1NSVl9OT19DRVJUIC1jZXJ0ICREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDM4NHIxLmNydCAta2V5ICREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDM4NHIxLmtleSAtY2lwaGVyc3VpdGVzIFRMU19BRVNfMjU2X0dDTV9TSEEzODQgLXNpZ2FsZ3MgZWNkc2Ffc2VjcDM4NHIxX3NoYTM4NCAtZ3JvdXBzIFAtNTIxIC1tc2cgLXRsczFfMyAtbnVtX3RpY2tldHMgMCAtbm9fcmVzdW1lX2VwaGVtZXJhbCAtbm9fY2FjaGUiIFwKKyAgICAgICAgICIkUF9DTEkgY2FfZmlsZT0kREFUQV9GSUxFU19QQVRIL3Rlc3QtY2EyLmNydCBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMjU2LUdDTS1TSEEzODQgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDM4NHIxX3NoYTM4NCBncm91cHM9c2VjcDUyMXIxIiBcCiAgICAgICAgICAwIFwKICAgICAgICAgIC1jICJIVFRQLzEuMCAyMDAgb2siIFwKICAgICAgICAgIC1jICJQcm90b2NvbCBpcyBUTFN2MS4zIiBcCkBAIC01MDY0LDggKzUwNjYsOCBAQAogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgTUJFRFRMU19TU0xfVExTMV8zX0NPTVBBVElCSUxJVFlfTU9ERQogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgUFNBX1dBTlRfQUxHX0VDREgKIHJ1bl90ZXN0ICJUTFMgMS4zIG0tPk86IEFFU18yNTZfR0NNX1NIQTM4NCxzZWNwNTIxcjEsZWNkc2Ffc2VjcDUyMXIxX3NoYTUxMiIgXAotICAgICAgICAgIiRPX05FWFRfU1JWX05PX0NFUlQgLWNlcnQgZGF0YV9maWxlcy9lY2RzYV9zZWNwNTIxcjEuY3J0IC1rZXkgZGF0YV9maWxlcy9lY2RzYV9zZWNwNTIxcjEua2V5IC1jaXBoZXJzdWl0ZXMgVExTX0FFU18yNTZfR0NNX1NIQTM4NCAtc2lnYWxncyBlY2RzYV9zZWNwNTIxcjFfc2hhNTEyIC1ncm91cHMgUC01MjEgLW1zZyAtdGxzMV8zIC1udW1fdGlja2V0cyAwIC1ub19yZXN1bWVfZXBoZW1lcmFsIC1ub19jYWNoZSIgXAotICAgICAgICAgIiRQX0NMSSBjYV9maWxlPWRhdGFfZmlsZXMvdGVzdC1jYTIuY3J0IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0yNTYtR0NNLVNIQTM4NCBzaWdfYWxncz1lY2RzYV9zZWNwNTIxcjFfc2hhNTEyIGdyb3Vwcz1zZWNwNTIxcjEiIFwKKyAgICAgICAgICIkT19ORVhUX1NSVl9OT19DRVJUIC1jZXJ0ICREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDUyMXIxLmNydCAta2V5ICREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDUyMXIxLmtleSAtY2lwaGVyc3VpdGVzIFRMU19BRVNfMjU2X0dDTV9TSEEzODQgLXNpZ2FsZ3MgZWNkc2Ffc2VjcDUyMXIxX3NoYTUxMiAtZ3JvdXBzIFAtNTIxIC1tc2cgLXRsczFfMyAtbnVtX3RpY2tldHMgMCAtbm9fcmVzdW1lX2VwaGVtZXJhbCAtbm9fY2FjaGUiIFwKKyAgICAgICAgICIkUF9DTEkgY2FfZmlsZT0kREFUQV9GSUxFU19QQVRIL3Rlc3QtY2EyLmNydCBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMjU2LUdDTS1TSEEzODQgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDUyMXIxX3NoYTUxMiBncm91cHM9c2VjcDUyMXIxIiBcCiAgICAgICAgICAwIFwKICAgICAgICAgIC1jICJIVFRQLzEuMCAyMDAgb2siIFwKICAgICAgICAgIC1jICJQcm90b2NvbCBpcyBUTFN2MS4zIiBcCkBAIC01MDgzLDggKzUwODUsOCBAQAogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgTUJFRFRMU19YNTA5X1JTQVNTQV9QU1NfU1VQUE9SVAogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgUFNBX1dBTlRfQUxHX0VDREgKIHJ1bl90ZXN0ICJUTFMgMS4zIG0tPk86IEFFU18yNTZfR0NNX1NIQTM4NCxzZWNwNTIxcjEscnNhX3Bzc19yc2FlX3NoYTI1NiIgXAotICAgICAgICAgIiRPX05FWFRfU1JWX05PX0NFUlQgLWNlcnQgZGF0YV9maWxlcy9zZXJ2ZXIyLXNoYTI1Ni5jcnQgLWtleSBkYXRhX2ZpbGVzL3NlcnZlcjIua2V5IC1jaXBoZXJzdWl0ZXMgVExTX0FFU18yNTZfR0NNX1NIQTM4NCAtc2lnYWxncyByc2FfcHNzX3JzYWVfc2hhMjU2IC1ncm91cHMgUC01MjEgLW1zZyAtdGxzMV8zIC1udW1fdGlja2V0cyAwIC1ub19yZXN1bWVfZXBoZW1lcmFsIC1ub19jYWNoZSIgXAotICAgICAgICAgIiRQX0NMSSBjYV9maWxlPWRhdGFfZmlsZXMvdGVzdC1jYV9jYXQxMi5jcnQgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTI1Ni1HQ00tU0hBMzg0IHNpZ19hbGdzPXJzYV9wc3NfcnNhZV9zaGEyNTYgZ3JvdXBzPXNlY3A1MjFyMSIgXAorICAgICAgICAgIiRPX05FWFRfU1JWX05PX0NFUlQgLWNlcnQgJERBVEFfRklMRVNfUEFUSC9zZXJ2ZXIyLXNoYTI1Ni5jcnQgLWtleSAkREFUQV9GSUxFU19QQVRIL3NlcnZlcjIua2V5IC1jaXBoZXJzdWl0ZXMgVExTX0FFU18yNTZfR0NNX1NIQTM4NCAtc2lnYWxncyByc2FfcHNzX3JzYWVfc2hhMjU2IC1ncm91cHMgUC01MjEgLW1zZyAtdGxzMV8zIC1udW1fdGlja2V0cyAwIC1ub19yZXN1bWVfZXBoZW1lcmFsIC1ub19jYWNoZSIgXAorICAgICAgICAgIiRQX0NMSSBjYV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvdGVzdC1jYV9jYXQxMi5jcnQgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTI1Ni1HQ00tU0hBMzg0IHNpZ19hbGdzPXJzYV9wc3NfcnNhZV9zaGEyNTYgZ3JvdXBzPXNlY3A1MjFyMSIgXAogICAgICAgICAgMCBcCiAgICAgICAgICAtYyAiSFRUUC8xLjAgMjAwIG9rIiBcCiAgICAgICAgICAtYyAiUHJvdG9jb2wgaXMgVExTdjEuMyIgXApAQCAtNTEwMSw4ICs1MTAzLDggQEAKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIE1CRURUTFNfU1NMX1RMUzFfM19DT01QQVRJQklMSVRZX01PREUKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIFBTQV9XQU5UX0FMR19FQ0RICiBydW5fdGVzdCAiVExTIDEuMyBtLT5POiBBRVNfMjU2X0dDTV9TSEEzODQseDI1NTE5LGVjZHNhX3NlY3AyNTZyMV9zaGEyNTYiIFwKLSAgICAgICAgICIkT19ORVhUX1NSVl9OT19DRVJUIC1jZXJ0IGRhdGFfZmlsZXMvZWNkc2Ffc2VjcDI1NnIxLmNydCAta2V5IGRhdGFfZmlsZXMvZWNkc2Ffc2VjcDI1NnIxLmtleSAtY2lwaGVyc3VpdGVzIFRMU19BRVNfMjU2X0dDTV9TSEEzODQgLXNpZ2FsZ3MgZWNkc2Ffc2VjcDI1NnIxX3NoYTI1NiAtZ3JvdXBzIFgyNTUxOSAtbXNnIC10bHMxXzMgLW51bV90aWNrZXRzIDAgLW5vX3Jlc3VtZV9lcGhlbWVyYWwgLW5vX2NhY2hlIiBcCi0gICAgICAgICAiJFBfQ0xJIGNhX2ZpbGU9ZGF0YV9maWxlcy90ZXN0LWNhMi5jcnQgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTI1Ni1HQ00tU0hBMzg0IHNpZ19hbGdzPWVjZHNhX3NlY3AyNTZyMV9zaGEyNTYgZ3JvdXBzPXgyNTUxOSIgXAorICAgICAgICAgIiRPX05FWFRfU1JWX05PX0NFUlQgLWNlcnQgJERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwMjU2cjEuY3J0IC1rZXkgJERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwMjU2cjEua2V5IC1jaXBoZXJzdWl0ZXMgVExTX0FFU18yNTZfR0NNX1NIQTM4NCAtc2lnYWxncyBlY2RzYV9zZWNwMjU2cjFfc2hhMjU2IC1ncm91cHMgWDI1NTE5IC1tc2cgLXRsczFfMyAtbnVtX3RpY2tldHMgMCAtbm9fcmVzdW1lX2VwaGVtZXJhbCAtbm9fY2FjaGUiIFwKKyAgICAgICAgICIkUF9DTEkgY2FfZmlsZT0kREFUQV9GSUxFU19QQVRIL3Rlc3QtY2EyLmNydCBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMjU2LUdDTS1TSEEzODQgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDI1NnIxX3NoYTI1NiBncm91cHM9eDI1NTE5IiBcCiAgICAgICAgICAwIFwKICAgICAgICAgIC1jICJIVFRQLzEuMCAyMDAgb2siIFwKICAgICAgICAgIC1jICJQcm90b2NvbCBpcyBUTFN2MS4zIiBcCkBAIC01MTE5LDggKzUxMjEsOCBAQAogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgTUJFRFRMU19TU0xfVExTMV8zX0NPTVBBVElCSUxJVFlfTU9ERQogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgUFNBX1dBTlRfQUxHX0VDREgKIHJ1bl90ZXN0ICJUTFMgMS4zIG0tPk86IEFFU18yNTZfR0NNX1NIQTM4NCx4MjU1MTksZWNkc2Ffc2VjcDM4NHIxX3NoYTM4NCIgXAotICAgICAgICAgIiRPX05FWFRfU1JWX05PX0NFUlQgLWNlcnQgZGF0YV9maWxlcy9lY2RzYV9zZWNwMzg0cjEuY3J0IC1rZXkgZGF0YV9maWxlcy9lY2RzYV9zZWNwMzg0cjEua2V5IC1jaXBoZXJzdWl0ZXMgVExTX0FFU18yNTZfR0NNX1NIQTM4NCAtc2lnYWxncyBlY2RzYV9zZWNwMzg0cjFfc2hhMzg0IC1ncm91cHMgWDI1NTE5IC1tc2cgLXRsczFfMyAtbnVtX3RpY2tldHMgMCAtbm9fcmVzdW1lX2VwaGVtZXJhbCAtbm9fY2FjaGUiIFwKLSAgICAgICAgICIkUF9DTEkgY2FfZmlsZT1kYXRhX2ZpbGVzL3Rlc3QtY2EyLmNydCBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMjU2LUdDTS1TSEEzODQgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDM4NHIxX3NoYTM4NCBncm91cHM9eDI1NTE5IiBcCisgICAgICAgICAiJE9fTkVYVF9TUlZfTk9fQ0VSVCAtY2VydCAkREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3AzODRyMS5jcnQgLWtleSAkREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3AzODRyMS5rZXkgLWNpcGhlcnN1aXRlcyBUTFNfQUVTXzI1Nl9HQ01fU0hBMzg0IC1zaWdhbGdzIGVjZHNhX3NlY3AzODRyMV9zaGEzODQgLWdyb3VwcyBYMjU1MTkgLW1zZyAtdGxzMV8zIC1udW1fdGlja2V0cyAwIC1ub19yZXN1bWVfZXBoZW1lcmFsIC1ub19jYWNoZSIgXAorICAgICAgICAgIiRQX0NMSSBjYV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvdGVzdC1jYTIuY3J0IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0yNTYtR0NNLVNIQTM4NCBzaWdfYWxncz1lY2RzYV9zZWNwMzg0cjFfc2hhMzg0IGdyb3Vwcz14MjU1MTkiIFwKICAgICAgICAgIDAgXAogICAgICAgICAgLWMgIkhUVFAvMS4wIDIwMCBvayIgXAogICAgICAgICAgLWMgIlByb3RvY29sIGlzIFRMU3YxLjMiIFwKQEAgLTUxMzcsOCArNTEzOSw4IEBACiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBNQkVEVExTX1NTTF9UTFMxXzNfQ09NUEFUSUJJTElUWV9NT0RFCiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBQU0FfV0FOVF9BTEdfRUNESAogcnVuX3Rlc3QgIlRMUyAxLjMgbS0+TzogQUVTXzI1Nl9HQ01fU0hBMzg0LHgyNTUxOSxlY2RzYV9zZWNwNTIxcjFfc2hhNTEyIiBcCi0gICAgICAgICAiJE9fTkVYVF9TUlZfTk9fQ0VSVCAtY2VydCBkYXRhX2ZpbGVzL2VjZHNhX3NlY3A1MjFyMS5jcnQgLWtleSBkYXRhX2ZpbGVzL2VjZHNhX3NlY3A1MjFyMS5rZXkgLWNpcGhlcnN1aXRlcyBUTFNfQUVTXzI1Nl9HQ01fU0hBMzg0IC1zaWdhbGdzIGVjZHNhX3NlY3A1MjFyMV9zaGE1MTIgLWdyb3VwcyBYMjU1MTkgLW1zZyAtdGxzMV8zIC1udW1fdGlja2V0cyAwIC1ub19yZXN1bWVfZXBoZW1lcmFsIC1ub19jYWNoZSIgXAotICAgICAgICAgIiRQX0NMSSBjYV9maWxlPWRhdGFfZmlsZXMvdGVzdC1jYTIuY3J0IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0yNTYtR0NNLVNIQTM4NCBzaWdfYWxncz1lY2RzYV9zZWNwNTIxcjFfc2hhNTEyIGdyb3Vwcz14MjU1MTkiIFwKKyAgICAgICAgICIkT19ORVhUX1NSVl9OT19DRVJUIC1jZXJ0ICREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDUyMXIxLmNydCAta2V5ICREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDUyMXIxLmtleSAtY2lwaGVyc3VpdGVzIFRMU19BRVNfMjU2X0dDTV9TSEEzODQgLXNpZ2FsZ3MgZWNkc2Ffc2VjcDUyMXIxX3NoYTUxMiAtZ3JvdXBzIFgyNTUxOSAtbXNnIC10bHMxXzMgLW51bV90aWNrZXRzIDAgLW5vX3Jlc3VtZV9lcGhlbWVyYWwgLW5vX2NhY2hlIiBcCisgICAgICAgICAiJFBfQ0xJIGNhX2ZpbGU9JERBVEFfRklMRVNfUEFUSC90ZXN0LWNhMi5jcnQgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTI1Ni1HQ00tU0hBMzg0IHNpZ19hbGdzPWVjZHNhX3NlY3A1MjFyMV9zaGE1MTIgZ3JvdXBzPXgyNTUxOSIgXAogICAgICAgICAgMCBcCiAgICAgICAgICAtYyAiSFRUUC8xLjAgMjAwIG9rIiBcCiAgICAgICAgICAtYyAiUHJvdG9jb2wgaXMgVExTdjEuMyIgXApAQCAtNTE1Niw4ICs1MTU4LDggQEAKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIE1CRURUTFNfWDUwOV9SU0FTU0FfUFNTX1NVUFBPUlQKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIFBTQV9XQU5UX0FMR19FQ0RICiBydW5fdGVzdCAiVExTIDEuMyBtLT5POiBBRVNfMjU2X0dDTV9TSEEzODQseDI1NTE5LHJzYV9wc3NfcnNhZV9zaGEyNTYiIFwKLSAgICAgICAgICIkT19ORVhUX1NSVl9OT19DRVJUIC1jZXJ0IGRhdGFfZmlsZXMvc2VydmVyMi1zaGEyNTYuY3J0IC1rZXkgZGF0YV9maWxlcy9zZXJ2ZXIyLmtleSAtY2lwaGVyc3VpdGVzIFRMU19BRVNfMjU2X0dDTV9TSEEzODQgLXNpZ2FsZ3MgcnNhX3Bzc19yc2FlX3NoYTI1NiAtZ3JvdXBzIFgyNTUxOSAtbXNnIC10bHMxXzMgLW51bV90aWNrZXRzIDAgLW5vX3Jlc3VtZV9lcGhlbWVyYWwgLW5vX2NhY2hlIiBcCi0gICAgICAgICAiJFBfQ0xJIGNhX2ZpbGU9ZGF0YV9maWxlcy90ZXN0LWNhX2NhdDEyLmNydCBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMjU2LUdDTS1TSEEzODQgc2lnX2FsZ3M9cnNhX3Bzc19yc2FlX3NoYTI1NiBncm91cHM9eDI1NTE5IiBcCisgICAgICAgICAiJE9fTkVYVF9TUlZfTk9fQ0VSVCAtY2VydCAkREFUQV9GSUxFU19QQVRIL3NlcnZlcjItc2hhMjU2LmNydCAta2V5ICREQVRBX0ZJTEVTX1BBVEgvc2VydmVyMi5rZXkgLWNpcGhlcnN1aXRlcyBUTFNfQUVTXzI1Nl9HQ01fU0hBMzg0IC1zaWdhbGdzIHJzYV9wc3NfcnNhZV9zaGEyNTYgLWdyb3VwcyBYMjU1MTkgLW1zZyAtdGxzMV8zIC1udW1fdGlja2V0cyAwIC1ub19yZXN1bWVfZXBoZW1lcmFsIC1ub19jYWNoZSIgXAorICAgICAgICAgIiRQX0NMSSBjYV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvdGVzdC1jYV9jYXQxMi5jcnQgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTI1Ni1HQ00tU0hBMzg0IHNpZ19hbGdzPXJzYV9wc3NfcnNhZV9zaGEyNTYgZ3JvdXBzPXgyNTUxOSIgXAogICAgICAgICAgMCBcCiAgICAgICAgICAtYyAiSFRUUC8xLjAgMjAwIG9rIiBcCiAgICAgICAgICAtYyAiUHJvdG9jb2wgaXMgVExTdjEuMyIgXApAQCAtNTE3NCw4ICs1MTc2LDggQEAKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIE1CRURUTFNfU1NMX1RMUzFfM19DT01QQVRJQklMSVRZX01PREUKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIFBTQV9XQU5UX0FMR19FQ0RICiBydW5fdGVzdCAiVExTIDEuMyBtLT5POiBBRVNfMjU2X0dDTV9TSEEzODQseDQ0OCxlY2RzYV9zZWNwMjU2cjFfc2hhMjU2IiBcCi0gICAgICAgICAiJE9fTkVYVF9TUlZfTk9fQ0VSVCAtY2VydCBkYXRhX2ZpbGVzL2VjZHNhX3NlY3AyNTZyMS5jcnQgLWtleSBkYXRhX2ZpbGVzL2VjZHNhX3NlY3AyNTZyMS5rZXkgLWNpcGhlcnN1aXRlcyBUTFNfQUVTXzI1Nl9HQ01fU0hBMzg0IC1zaWdhbGdzIGVjZHNhX3NlY3AyNTZyMV9zaGEyNTYgLWdyb3VwcyBYNDQ4IC1tc2cgLXRsczFfMyAtbnVtX3RpY2tldHMgMCAtbm9fcmVzdW1lX2VwaGVtZXJhbCAtbm9fY2FjaGUiIFwKLSAgICAgICAgICIkUF9DTEkgY2FfZmlsZT1kYXRhX2ZpbGVzL3Rlc3QtY2EyLmNydCBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMjU2LUdDTS1TSEEzODQgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDI1NnIxX3NoYTI1NiBncm91cHM9eDQ0OCIgXAorICAgICAgICAgIiRPX05FWFRfU1JWX05PX0NFUlQgLWNlcnQgJERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwMjU2cjEuY3J0IC1rZXkgJERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwMjU2cjEua2V5IC1jaXBoZXJzdWl0ZXMgVExTX0FFU18yNTZfR0NNX1NIQTM4NCAtc2lnYWxncyBlY2RzYV9zZWNwMjU2cjFfc2hhMjU2IC1ncm91cHMgWDQ0OCAtbXNnIC10bHMxXzMgLW51bV90aWNrZXRzIDAgLW5vX3Jlc3VtZV9lcGhlbWVyYWwgLW5vX2NhY2hlIiBcCisgICAgICAgICAiJFBfQ0xJIGNhX2ZpbGU9JERBVEFfRklMRVNfUEFUSC90ZXN0LWNhMi5jcnQgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTI1Ni1HQ00tU0hBMzg0IHNpZ19hbGdzPWVjZHNhX3NlY3AyNTZyMV9zaGEyNTYgZ3JvdXBzPXg0NDgiIFwKICAgICAgICAgIDAgXAogICAgICAgICAgLWMgIkhUVFAvMS4wIDIwMCBvayIgXAogICAgICAgICAgLWMgIlByb3RvY29sIGlzIFRMU3YxLjMiIFwKQEAgLTUxOTIsOCArNTE5NCw4IEBACiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBNQkVEVExTX1NTTF9UTFMxXzNfQ09NUEFUSUJJTElUWV9NT0RFCiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBQU0FfV0FOVF9BTEdfRUNESAogcnVuX3Rlc3QgIlRMUyAxLjMgbS0+TzogQUVTXzI1Nl9HQ01fU0hBMzg0LHg0NDgsZWNkc2Ffc2VjcDM4NHIxX3NoYTM4NCIgXAotICAgICAgICAgIiRPX05FWFRfU1JWX05PX0NFUlQgLWNlcnQgZGF0YV9maWxlcy9lY2RzYV9zZWNwMzg0cjEuY3J0IC1rZXkgZGF0YV9maWxlcy9lY2RzYV9zZWNwMzg0cjEua2V5IC1jaXBoZXJzdWl0ZXMgVExTX0FFU18yNTZfR0NNX1NIQTM4NCAtc2lnYWxncyBlY2RzYV9zZWNwMzg0cjFfc2hhMzg0IC1ncm91cHMgWDQ0OCAtbXNnIC10bHMxXzMgLW51bV90aWNrZXRzIDAgLW5vX3Jlc3VtZV9lcGhlbWVyYWwgLW5vX2NhY2hlIiBcCi0gICAgICAgICAiJFBfQ0xJIGNhX2ZpbGU9ZGF0YV9maWxlcy90ZXN0LWNhMi5jcnQgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTI1Ni1HQ00tU0hBMzg0IHNpZ19hbGdzPWVjZHNhX3NlY3AzODRyMV9zaGEzODQgZ3JvdXBzPXg0NDgiIFwKKyAgICAgICAgICIkT19ORVhUX1NSVl9OT19DRVJUIC1jZXJ0ICREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDM4NHIxLmNydCAta2V5ICREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDM4NHIxLmtleSAtY2lwaGVyc3VpdGVzIFRMU19BRVNfMjU2X0dDTV9TSEEzODQgLXNpZ2FsZ3MgZWNkc2Ffc2VjcDM4NHIxX3NoYTM4NCAtZ3JvdXBzIFg0NDggLW1zZyAtdGxzMV8zIC1udW1fdGlja2V0cyAwIC1ub19yZXN1bWVfZXBoZW1lcmFsIC1ub19jYWNoZSIgXAorICAgICAgICAgIiRQX0NMSSBjYV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvdGVzdC1jYTIuY3J0IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0yNTYtR0NNLVNIQTM4NCBzaWdfYWxncz1lY2RzYV9zZWNwMzg0cjFfc2hhMzg0IGdyb3Vwcz14NDQ4IiBcCiAgICAgICAgICAwIFwKICAgICAgICAgIC1jICJIVFRQLzEuMCAyMDAgb2siIFwKICAgICAgICAgIC1jICJQcm90b2NvbCBpcyBUTFN2MS4zIiBcCkBAIC01MjEwLDggKzUyMTIsOCBAQAogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgTUJFRFRMU19TU0xfVExTMV8zX0NPTVBBVElCSUxJVFlfTU9ERQogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgUFNBX1dBTlRfQUxHX0VDREgKIHJ1bl90ZXN0ICJUTFMgMS4zIG0tPk86IEFFU18yNTZfR0NNX1NIQTM4NCx4NDQ4LGVjZHNhX3NlY3A1MjFyMV9zaGE1MTIiIFwKLSAgICAgICAgICIkT19ORVhUX1NSVl9OT19DRVJUIC1jZXJ0IGRhdGFfZmlsZXMvZWNkc2Ffc2VjcDUyMXIxLmNydCAta2V5IGRhdGFfZmlsZXMvZWNkc2Ffc2VjcDUyMXIxLmtleSAtY2lwaGVyc3VpdGVzIFRMU19BRVNfMjU2X0dDTV9TSEEzODQgLXNpZ2FsZ3MgZWNkc2Ffc2VjcDUyMXIxX3NoYTUxMiAtZ3JvdXBzIFg0NDggLW1zZyAtdGxzMV8zIC1udW1fdGlja2V0cyAwIC1ub19yZXN1bWVfZXBoZW1lcmFsIC1ub19jYWNoZSIgXAotICAgICAgICAgIiRQX0NMSSBjYV9maWxlPWRhdGFfZmlsZXMvdGVzdC1jYTIuY3J0IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0yNTYtR0NNLVNIQTM4NCBzaWdfYWxncz1lY2RzYV9zZWNwNTIxcjFfc2hhNTEyIGdyb3Vwcz14NDQ4IiBcCisgICAgICAgICAiJE9fTkVYVF9TUlZfTk9fQ0VSVCAtY2VydCAkREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3A1MjFyMS5jcnQgLWtleSAkREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3A1MjFyMS5rZXkgLWNpcGhlcnN1aXRlcyBUTFNfQUVTXzI1Nl9HQ01fU0hBMzg0IC1zaWdhbGdzIGVjZHNhX3NlY3A1MjFyMV9zaGE1MTIgLWdyb3VwcyBYNDQ4IC1tc2cgLXRsczFfMyAtbnVtX3RpY2tldHMgMCAtbm9fcmVzdW1lX2VwaGVtZXJhbCAtbm9fY2FjaGUiIFwKKyAgICAgICAgICIkUF9DTEkgY2FfZmlsZT0kREFUQV9GSUxFU19QQVRIL3Rlc3QtY2EyLmNydCBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMjU2LUdDTS1TSEEzODQgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDUyMXIxX3NoYTUxMiBncm91cHM9eDQ0OCIgXAogICAgICAgICAgMCBcCiAgICAgICAgICAtYyAiSFRUUC8xLjAgMjAwIG9rIiBcCiAgICAgICAgICAtYyAiUHJvdG9jb2wgaXMgVExTdjEuMyIgXApAQCAtNTIyOSw4ICs1MjMxLDggQEAKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIE1CRURUTFNfWDUwOV9SU0FTU0FfUFNTX1NVUFBPUlQKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIFBTQV9XQU5UX0FMR19FQ0RICiBydW5fdGVzdCAiVExTIDEuMyBtLT5POiBBRVNfMjU2X0dDTV9TSEEzODQseDQ0OCxyc2FfcHNzX3JzYWVfc2hhMjU2IiBcCi0gICAgICAgICAiJE9fTkVYVF9TUlZfTk9fQ0VSVCAtY2VydCBkYXRhX2ZpbGVzL3NlcnZlcjItc2hhMjU2LmNydCAta2V5IGRhdGFfZmlsZXMvc2VydmVyMi5rZXkgLWNpcGhlcnN1aXRlcyBUTFNfQUVTXzI1Nl9HQ01fU0hBMzg0IC1zaWdhbGdzIHJzYV9wc3NfcnNhZV9zaGEyNTYgLWdyb3VwcyBYNDQ4IC1tc2cgLXRsczFfMyAtbnVtX3RpY2tldHMgMCAtbm9fcmVzdW1lX2VwaGVtZXJhbCAtbm9fY2FjaGUiIFwKLSAgICAgICAgICIkUF9DTEkgY2FfZmlsZT1kYXRhX2ZpbGVzL3Rlc3QtY2FfY2F0MTIuY3J0IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0yNTYtR0NNLVNIQTM4NCBzaWdfYWxncz1yc2FfcHNzX3JzYWVfc2hhMjU2IGdyb3Vwcz14NDQ4IiBcCisgICAgICAgICAiJE9fTkVYVF9TUlZfTk9fQ0VSVCAtY2VydCAkREFUQV9GSUxFU19QQVRIL3NlcnZlcjItc2hhMjU2LmNydCAta2V5ICREQVRBX0ZJTEVTX1BBVEgvc2VydmVyMi5rZXkgLWNpcGhlcnN1aXRlcyBUTFNfQUVTXzI1Nl9HQ01fU0hBMzg0IC1zaWdhbGdzIHJzYV9wc3NfcnNhZV9zaGEyNTYgLWdyb3VwcyBYNDQ4IC1tc2cgLXRsczFfMyAtbnVtX3RpY2tldHMgMCAtbm9fcmVzdW1lX2VwaGVtZXJhbCAtbm9fY2FjaGUiIFwKKyAgICAgICAgICIkUF9DTEkgY2FfZmlsZT0kREFUQV9GSUxFU19QQVRIL3Rlc3QtY2FfY2F0MTIuY3J0IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0yNTYtR0NNLVNIQTM4NCBzaWdfYWxncz1yc2FfcHNzX3JzYWVfc2hhMjU2IGdyb3Vwcz14NDQ4IiBcCiAgICAgICAgICAwIFwKICAgICAgICAgIC1jICJIVFRQLzEuMCAyMDAgb2siIFwKICAgICAgICAgIC1jICJQcm90b2NvbCBpcyBUTFN2MS4zIiBcCkBAIC01MjQ4LDggKzUyNTAsOCBAQAogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgUFNBX1dBTlRfQUxHX0ZGREgKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIFBTQV9XQU5UX0RIX1JGQzc5MTlfMjA0OAogcnVuX3Rlc3QgIlRMUyAxLjMgbS0+TzogQUVTXzI1Nl9HQ01fU0hBMzg0LGZmZGhlMjA0OCxlY2RzYV9zZWNwMjU2cjFfc2hhMjU2IiBcCi0gICAgICAgICAiJE9fTkVYVF9TUlZfTk9fQ0VSVCAtY2VydCBkYXRhX2ZpbGVzL2VjZHNhX3NlY3AyNTZyMS5jcnQgLWtleSBkYXRhX2ZpbGVzL2VjZHNhX3NlY3AyNTZyMS5rZXkgLWNpcGhlcnN1aXRlcyBUTFNfQUVTXzI1Nl9HQ01fU0hBMzg0IC1zaWdhbGdzIGVjZHNhX3NlY3AyNTZyMV9zaGEyNTYgLWdyb3VwcyBmZmRoZTIwNDggLW1zZyAtdGxzMV8zIC1udW1fdGlja2V0cyAwIC1ub19yZXN1bWVfZXBoZW1lcmFsIC1ub19jYWNoZSIgXAotICAgICAgICAgIiRQX0NMSSBjYV9maWxlPWRhdGFfZmlsZXMvdGVzdC1jYTIuY3J0IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0yNTYtR0NNLVNIQTM4NCBzaWdfYWxncz1lY2RzYV9zZWNwMjU2cjFfc2hhMjU2IGdyb3Vwcz1mZmRoZTIwNDgiIFwKKyAgICAgICAgICIkT19ORVhUX1NSVl9OT19DRVJUIC1jZXJ0ICREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDI1NnIxLmNydCAta2V5ICREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDI1NnIxLmtleSAtY2lwaGVyc3VpdGVzIFRMU19BRVNfMjU2X0dDTV9TSEEzODQgLXNpZ2FsZ3MgZWNkc2Ffc2VjcDI1NnIxX3NoYTI1NiAtZ3JvdXBzIGZmZGhlMjA0OCAtbXNnIC10bHMxXzMgLW51bV90aWNrZXRzIDAgLW5vX3Jlc3VtZV9lcGhlbWVyYWwgLW5vX2NhY2hlIiBcCisgICAgICAgICAiJFBfQ0xJIGNhX2ZpbGU9JERBVEFfRklMRVNfUEFUSC90ZXN0LWNhMi5jcnQgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTI1Ni1HQ00tU0hBMzg0IHNpZ19hbGdzPWVjZHNhX3NlY3AyNTZyMV9zaGEyNTYgZ3JvdXBzPWZmZGhlMjA0OCIgXAogICAgICAgICAgMCBcCiAgICAgICAgICAtYyAiSFRUUC8xLjAgMjAwIG9rIiBcCiAgICAgICAgICAtYyAiUHJvdG9jb2wgaXMgVExTdjEuMyIgXApAQCAtNTI2Nyw4ICs1MjY5LDggQEAKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIFBTQV9XQU5UX0FMR19GRkRICiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBQU0FfV0FOVF9ESF9SRkM3OTE5XzIwNDgKIHJ1bl90ZXN0ICJUTFMgMS4zIG0tPk86IEFFU18yNTZfR0NNX1NIQTM4NCxmZmRoZTIwNDgsZWNkc2Ffc2VjcDM4NHIxX3NoYTM4NCIgXAotICAgICAgICAgIiRPX05FWFRfU1JWX05PX0NFUlQgLWNlcnQgZGF0YV9maWxlcy9lY2RzYV9zZWNwMzg0cjEuY3J0IC1rZXkgZGF0YV9maWxlcy9lY2RzYV9zZWNwMzg0cjEua2V5IC1jaXBoZXJzdWl0ZXMgVExTX0FFU18yNTZfR0NNX1NIQTM4NCAtc2lnYWxncyBlY2RzYV9zZWNwMzg0cjFfc2hhMzg0IC1ncm91cHMgZmZkaGUyMDQ4IC1tc2cgLXRsczFfMyAtbnVtX3RpY2tldHMgMCAtbm9fcmVzdW1lX2VwaGVtZXJhbCAtbm9fY2FjaGUiIFwKLSAgICAgICAgICIkUF9DTEkgY2FfZmlsZT1kYXRhX2ZpbGVzL3Rlc3QtY2EyLmNydCBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMjU2LUdDTS1TSEEzODQgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDM4NHIxX3NoYTM4NCBncm91cHM9ZmZkaGUyMDQ4IiBcCisgICAgICAgICAiJE9fTkVYVF9TUlZfTk9fQ0VSVCAtY2VydCAkREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3AzODRyMS5jcnQgLWtleSAkREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3AzODRyMS5rZXkgLWNpcGhlcnN1aXRlcyBUTFNfQUVTXzI1Nl9HQ01fU0hBMzg0IC1zaWdhbGdzIGVjZHNhX3NlY3AzODRyMV9zaGEzODQgLWdyb3VwcyBmZmRoZTIwNDggLW1zZyAtdGxzMV8zIC1udW1fdGlja2V0cyAwIC1ub19yZXN1bWVfZXBoZW1lcmFsIC1ub19jYWNoZSIgXAorICAgICAgICAgIiRQX0NMSSBjYV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvdGVzdC1jYTIuY3J0IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0yNTYtR0NNLVNIQTM4NCBzaWdfYWxncz1lY2RzYV9zZWNwMzg0cjFfc2hhMzg0IGdyb3Vwcz1mZmRoZTIwNDgiIFwKICAgICAgICAgIDAgXAogICAgICAgICAgLWMgIkhUVFAvMS4wIDIwMCBvayIgXAogICAgICAgICAgLWMgIlByb3RvY29sIGlzIFRMU3YxLjMiIFwKQEAgLTUyODYsOCArNTI4OCw4IEBACiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBQU0FfV0FOVF9BTEdfRkZESAogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgUFNBX1dBTlRfREhfUkZDNzkxOV8yMDQ4CiBydW5fdGVzdCAiVExTIDEuMyBtLT5POiBBRVNfMjU2X0dDTV9TSEEzODQsZmZkaGUyMDQ4LGVjZHNhX3NlY3A1MjFyMV9zaGE1MTIiIFwKLSAgICAgICAgICIkT19ORVhUX1NSVl9OT19DRVJUIC1jZXJ0IGRhdGFfZmlsZXMvZWNkc2Ffc2VjcDUyMXIxLmNydCAta2V5IGRhdGFfZmlsZXMvZWNkc2Ffc2VjcDUyMXIxLmtleSAtY2lwaGVyc3VpdGVzIFRMU19BRVNfMjU2X0dDTV9TSEEzODQgLXNpZ2FsZ3MgZWNkc2Ffc2VjcDUyMXIxX3NoYTUxMiAtZ3JvdXBzIGZmZGhlMjA0OCAtbXNnIC10bHMxXzMgLW51bV90aWNrZXRzIDAgLW5vX3Jlc3VtZV9lcGhlbWVyYWwgLW5vX2NhY2hlIiBcCi0gICAgICAgICAiJFBfQ0xJIGNhX2ZpbGU9ZGF0YV9maWxlcy90ZXN0LWNhMi5jcnQgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTI1Ni1HQ00tU0hBMzg0IHNpZ19hbGdzPWVjZHNhX3NlY3A1MjFyMV9zaGE1MTIgZ3JvdXBzPWZmZGhlMjA0OCIgXAorICAgICAgICAgIiRPX05FWFRfU1JWX05PX0NFUlQgLWNlcnQgJERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwNTIxcjEuY3J0IC1rZXkgJERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwNTIxcjEua2V5IC1jaXBoZXJzdWl0ZXMgVExTX0FFU18yNTZfR0NNX1NIQTM4NCAtc2lnYWxncyBlY2RzYV9zZWNwNTIxcjFfc2hhNTEyIC1ncm91cHMgZmZkaGUyMDQ4IC1tc2cgLXRsczFfMyAtbnVtX3RpY2tldHMgMCAtbm9fcmVzdW1lX2VwaGVtZXJhbCAtbm9fY2FjaGUiIFwKKyAgICAgICAgICIkUF9DTEkgY2FfZmlsZT0kREFUQV9GSUxFU19QQVRIL3Rlc3QtY2EyLmNydCBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMjU2LUdDTS1TSEEzODQgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDUyMXIxX3NoYTUxMiBncm91cHM9ZmZkaGUyMDQ4IiBcCiAgICAgICAgICAwIFwKICAgICAgICAgIC1jICJIVFRQLzEuMCAyMDAgb2siIFwKICAgICAgICAgIC1jICJQcm90b2NvbCBpcyBUTFN2MS4zIiBcCkBAIC01MzA2LDggKzUzMDgsOCBAQAogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgUFNBX1dBTlRfQUxHX0ZGREgKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIFBTQV9XQU5UX0RIX1JGQzc5MTlfMjA0OAogcnVuX3Rlc3QgIlRMUyAxLjMgbS0+TzogQUVTXzI1Nl9HQ01fU0hBMzg0LGZmZGhlMjA0OCxyc2FfcHNzX3JzYWVfc2hhMjU2IiBcCi0gICAgICAgICAiJE9fTkVYVF9TUlZfTk9fQ0VSVCAtY2VydCBkYXRhX2ZpbGVzL3NlcnZlcjItc2hhMjU2LmNydCAta2V5IGRhdGFfZmlsZXMvc2VydmVyMi5rZXkgLWNpcGhlcnN1aXRlcyBUTFNfQUVTXzI1Nl9HQ01fU0hBMzg0IC1zaWdhbGdzIHJzYV9wc3NfcnNhZV9zaGEyNTYgLWdyb3VwcyBmZmRoZTIwNDggLW1zZyAtdGxzMV8zIC1udW1fdGlja2V0cyAwIC1ub19yZXN1bWVfZXBoZW1lcmFsIC1ub19jYWNoZSIgXAotICAgICAgICAgIiRQX0NMSSBjYV9maWxlPWRhdGFfZmlsZXMvdGVzdC1jYV9jYXQxMi5jcnQgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTI1Ni1HQ00tU0hBMzg0IHNpZ19hbGdzPXJzYV9wc3NfcnNhZV9zaGEyNTYgZ3JvdXBzPWZmZGhlMjA0OCIgXAorICAgICAgICAgIiRPX05FWFRfU1JWX05PX0NFUlQgLWNlcnQgJERBVEFfRklMRVNfUEFUSC9zZXJ2ZXIyLXNoYTI1Ni5jcnQgLWtleSAkREFUQV9GSUxFU19QQVRIL3NlcnZlcjIua2V5IC1jaXBoZXJzdWl0ZXMgVExTX0FFU18yNTZfR0NNX1NIQTM4NCAtc2lnYWxncyByc2FfcHNzX3JzYWVfc2hhMjU2IC1ncm91cHMgZmZkaGUyMDQ4IC1tc2cgLXRsczFfMyAtbnVtX3RpY2tldHMgMCAtbm9fcmVzdW1lX2VwaGVtZXJhbCAtbm9fY2FjaGUiIFwKKyAgICAgICAgICIkUF9DTEkgY2FfZmlsZT0kREFUQV9GSUxFU19QQVRIL3Rlc3QtY2FfY2F0MTIuY3J0IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0yNTYtR0NNLVNIQTM4NCBzaWdfYWxncz1yc2FfcHNzX3JzYWVfc2hhMjU2IGdyb3Vwcz1mZmRoZTIwNDgiIFwKICAgICAgICAgIDAgXAogICAgICAgICAgLWMgIkhUVFAvMS4wIDIwMCBvayIgXAogICAgICAgICAgLWMgIlByb3RvY29sIGlzIFRMU3YxLjMiIFwKQEAgLTUzMjQsOCArNTMyNiw4IEBACiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBNQkVEVExTX1NTTF9UTFMxXzNfQ09NUEFUSUJJTElUWV9NT0RFCiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBQU0FfV0FOVF9BTEdfRUNESAogcnVuX3Rlc3QgIlRMUyAxLjMgbS0+TzogQ0hBQ0hBMjBfUE9MWTEzMDVfU0hBMjU2LHNlY3AyNTZyMSxlY2RzYV9zZWNwMjU2cjFfc2hhMjU2IiBcCi0gICAgICAgICAiJE9fTkVYVF9TUlZfTk9fQ0VSVCAtY2VydCBkYXRhX2ZpbGVzL2VjZHNhX3NlY3AyNTZyMS5jcnQgLWtleSBkYXRhX2ZpbGVzL2VjZHNhX3NlY3AyNTZyMS5rZXkgLWNpcGhlcnN1aXRlcyBUTFNfQ0hBQ0hBMjBfUE9MWTEzMDVfU0hBMjU2IC1zaWdhbGdzIGVjZHNhX3NlY3AyNTZyMV9zaGEyNTYgLWdyb3VwcyBQLTI1NiAtbXNnIC10bHMxXzMgLW51bV90aWNrZXRzIDAgLW5vX3Jlc3VtZV9lcGhlbWVyYWwgLW5vX2NhY2hlIiBcCi0gICAgICAgICAiJFBfQ0xJIGNhX2ZpbGU9ZGF0YV9maWxlcy90ZXN0LWNhMi5jcnQgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQ0hBQ0hBMjAtUE9MWTEzMDUtU0hBMjU2IHNpZ19hbGdzPWVjZHNhX3NlY3AyNTZyMV9zaGEyNTYgZ3JvdXBzPXNlY3AyNTZyMSIgXAorICAgICAgICAgIiRPX05FWFRfU1JWX05PX0NFUlQgLWNlcnQgJERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwMjU2cjEuY3J0IC1rZXkgJERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwMjU2cjEua2V5IC1jaXBoZXJzdWl0ZXMgVExTX0NIQUNIQTIwX1BPTFkxMzA1X1NIQTI1NiAtc2lnYWxncyBlY2RzYV9zZWNwMjU2cjFfc2hhMjU2IC1ncm91cHMgUC0yNTYgLW1zZyAtdGxzMV8zIC1udW1fdGlja2V0cyAwIC1ub19yZXN1bWVfZXBoZW1lcmFsIC1ub19jYWNoZSIgXAorICAgICAgICAgIiRQX0NMSSBjYV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvdGVzdC1jYTIuY3J0IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUNIQUNIQTIwLVBPTFkxMzA1LVNIQTI1NiBzaWdfYWxncz1lY2RzYV9zZWNwMjU2cjFfc2hhMjU2IGdyb3Vwcz1zZWNwMjU2cjEiIFwKICAgICAgICAgIDAgXAogICAgICAgICAgLWMgIkhUVFAvMS4wIDIwMCBvayIgXAogICAgICAgICAgLWMgIlByb3RvY29sIGlzIFRMU3YxLjMiIFwKQEAgLTUzNDIsOCArNTM0NCw4IEBACiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBNQkVEVExTX1NTTF9UTFMxXzNfQ09NUEFUSUJJTElUWV9NT0RFCiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBQU0FfV0FOVF9BTEdfRUNESAogcnVuX3Rlc3QgIlRMUyAxLjMgbS0+TzogQ0hBQ0hBMjBfUE9MWTEzMDVfU0hBMjU2LHNlY3AyNTZyMSxlY2RzYV9zZWNwMzg0cjFfc2hhMzg0IiBcCi0gICAgICAgICAiJE9fTkVYVF9TUlZfTk9fQ0VSVCAtY2VydCBkYXRhX2ZpbGVzL2VjZHNhX3NlY3AzODRyMS5jcnQgLWtleSBkYXRhX2ZpbGVzL2VjZHNhX3NlY3AzODRyMS5rZXkgLWNpcGhlcnN1aXRlcyBUTFNfQ0hBQ0hBMjBfUE9MWTEzMDVfU0hBMjU2IC1zaWdhbGdzIGVjZHNhX3NlY3AzODRyMV9zaGEzODQgLWdyb3VwcyBQLTI1NiAtbXNnIC10bHMxXzMgLW51bV90aWNrZXRzIDAgLW5vX3Jlc3VtZV9lcGhlbWVyYWwgLW5vX2NhY2hlIiBcCi0gICAgICAgICAiJFBfQ0xJIGNhX2ZpbGU9ZGF0YV9maWxlcy90ZXN0LWNhMi5jcnQgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQ0hBQ0hBMjAtUE9MWTEzMDUtU0hBMjU2IHNpZ19hbGdzPWVjZHNhX3NlY3AzODRyMV9zaGEzODQgZ3JvdXBzPXNlY3AyNTZyMSIgXAorICAgICAgICAgIiRPX05FWFRfU1JWX05PX0NFUlQgLWNlcnQgJERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwMzg0cjEuY3J0IC1rZXkgJERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwMzg0cjEua2V5IC1jaXBoZXJzdWl0ZXMgVExTX0NIQUNIQTIwX1BPTFkxMzA1X1NIQTI1NiAtc2lnYWxncyBlY2RzYV9zZWNwMzg0cjFfc2hhMzg0IC1ncm91cHMgUC0yNTYgLW1zZyAtdGxzMV8zIC1udW1fdGlja2V0cyAwIC1ub19yZXN1bWVfZXBoZW1lcmFsIC1ub19jYWNoZSIgXAorICAgICAgICAgIiRQX0NMSSBjYV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvdGVzdC1jYTIuY3J0IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUNIQUNIQTIwLVBPTFkxMzA1LVNIQTI1NiBzaWdfYWxncz1lY2RzYV9zZWNwMzg0cjFfc2hhMzg0IGdyb3Vwcz1zZWNwMjU2cjEiIFwKICAgICAgICAgIDAgXAogICAgICAgICAgLWMgIkhUVFAvMS4wIDIwMCBvayIgXAogICAgICAgICAgLWMgIlByb3RvY29sIGlzIFRMU3YxLjMiIFwKQEAgLTUzNjAsOCArNTM2Miw4IEBACiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBNQkVEVExTX1NTTF9UTFMxXzNfQ09NUEFUSUJJTElUWV9NT0RFCiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBQU0FfV0FOVF9BTEdfRUNESAogcnVuX3Rlc3QgIlRMUyAxLjMgbS0+TzogQ0hBQ0hBMjBfUE9MWTEzMDVfU0hBMjU2LHNlY3AyNTZyMSxlY2RzYV9zZWNwNTIxcjFfc2hhNTEyIiBcCi0gICAgICAgICAiJE9fTkVYVF9TUlZfTk9fQ0VSVCAtY2VydCBkYXRhX2ZpbGVzL2VjZHNhX3NlY3A1MjFyMS5jcnQgLWtleSBkYXRhX2ZpbGVzL2VjZHNhX3NlY3A1MjFyMS5rZXkgLWNpcGhlcnN1aXRlcyBUTFNfQ0hBQ0hBMjBfUE9MWTEzMDVfU0hBMjU2IC1zaWdhbGdzIGVjZHNhX3NlY3A1MjFyMV9zaGE1MTIgLWdyb3VwcyBQLTI1NiAtbXNnIC10bHMxXzMgLW51bV90aWNrZXRzIDAgLW5vX3Jlc3VtZV9lcGhlbWVyYWwgLW5vX2NhY2hlIiBcCi0gICAgICAgICAiJFBfQ0xJIGNhX2ZpbGU9ZGF0YV9maWxlcy90ZXN0LWNhMi5jcnQgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQ0hBQ0hBMjAtUE9MWTEzMDUtU0hBMjU2IHNpZ19hbGdzPWVjZHNhX3NlY3A1MjFyMV9zaGE1MTIgZ3JvdXBzPXNlY3AyNTZyMSIgXAorICAgICAgICAgIiRPX05FWFRfU1JWX05PX0NFUlQgLWNlcnQgJERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwNTIxcjEuY3J0IC1rZXkgJERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwNTIxcjEua2V5IC1jaXBoZXJzdWl0ZXMgVExTX0NIQUNIQTIwX1BPTFkxMzA1X1NIQTI1NiAtc2lnYWxncyBlY2RzYV9zZWNwNTIxcjFfc2hhNTEyIC1ncm91cHMgUC0yNTYgLW1zZyAtdGxzMV8zIC1udW1fdGlja2V0cyAwIC1ub19yZXN1bWVfZXBoZW1lcmFsIC1ub19jYWNoZSIgXAorICAgICAgICAgIiRQX0NMSSBjYV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvdGVzdC1jYTIuY3J0IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUNIQUNIQTIwLVBPTFkxMzA1LVNIQTI1NiBzaWdfYWxncz1lY2RzYV9zZWNwNTIxcjFfc2hhNTEyIGdyb3Vwcz1zZWNwMjU2cjEiIFwKICAgICAgICAgIDAgXAogICAgICAgICAgLWMgIkhUVFAvMS4wIDIwMCBvayIgXAogICAgICAgICAgLWMgIlByb3RvY29sIGlzIFRMU3YxLjMiIFwKQEAgLTUzNzksOCArNTM4MSw4IEBACiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBNQkVEVExTX1g1MDlfUlNBU1NBX1BTU19TVVBQT1JUCiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBQU0FfV0FOVF9BTEdfRUNESAogcnVuX3Rlc3QgIlRMUyAxLjMgbS0+TzogQ0hBQ0hBMjBfUE9MWTEzMDVfU0hBMjU2LHNlY3AyNTZyMSxyc2FfcHNzX3JzYWVfc2hhMjU2IiBcCi0gICAgICAgICAiJE9fTkVYVF9TUlZfTk9fQ0VSVCAtY2VydCBkYXRhX2ZpbGVzL3NlcnZlcjItc2hhMjU2LmNydCAta2V5IGRhdGFfZmlsZXMvc2VydmVyMi5rZXkgLWNpcGhlcnN1aXRlcyBUTFNfQ0hBQ0hBMjBfUE9MWTEzMDVfU0hBMjU2IC1zaWdhbGdzIHJzYV9wc3NfcnNhZV9zaGEyNTYgLWdyb3VwcyBQLTI1NiAtbXNnIC10bHMxXzMgLW51bV90aWNrZXRzIDAgLW5vX3Jlc3VtZV9lcGhlbWVyYWwgLW5vX2NhY2hlIiBcCi0gICAgICAgICAiJFBfQ0xJIGNhX2ZpbGU9ZGF0YV9maWxlcy90ZXN0LWNhX2NhdDEyLmNydCBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1DSEFDSEEyMC1QT0xZMTMwNS1TSEEyNTYgc2lnX2FsZ3M9cnNhX3Bzc19yc2FlX3NoYTI1NiBncm91cHM9c2VjcDI1NnIxIiBcCisgICAgICAgICAiJE9fTkVYVF9TUlZfTk9fQ0VSVCAtY2VydCAkREFUQV9GSUxFU19QQVRIL3NlcnZlcjItc2hhMjU2LmNydCAta2V5ICREQVRBX0ZJTEVTX1BBVEgvc2VydmVyMi5rZXkgLWNpcGhlcnN1aXRlcyBUTFNfQ0hBQ0hBMjBfUE9MWTEzMDVfU0hBMjU2IC1zaWdhbGdzIHJzYV9wc3NfcnNhZV9zaGEyNTYgLWdyb3VwcyBQLTI1NiAtbXNnIC10bHMxXzMgLW51bV90aWNrZXRzIDAgLW5vX3Jlc3VtZV9lcGhlbWVyYWwgLW5vX2NhY2hlIiBcCisgICAgICAgICAiJFBfQ0xJIGNhX2ZpbGU9JERBVEFfRklMRVNfUEFUSC90ZXN0LWNhX2NhdDEyLmNydCBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1DSEFDSEEyMC1QT0xZMTMwNS1TSEEyNTYgc2lnX2FsZ3M9cnNhX3Bzc19yc2FlX3NoYTI1NiBncm91cHM9c2VjcDI1NnIxIiBcCiAgICAgICAgICAwIFwKICAgICAgICAgIC1jICJIVFRQLzEuMCAyMDAgb2siIFwKICAgICAgICAgIC1jICJQcm90b2NvbCBpcyBUTFN2MS4zIiBcCkBAIC01Mzk3LDggKzUzOTksOCBAQAogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgTUJFRFRMU19TU0xfVExTMV8zX0NPTVBBVElCSUxJVFlfTU9ERQogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgUFNBX1dBTlRfQUxHX0VDREgKIHJ1bl90ZXN0ICJUTFMgMS4zIG0tPk86IENIQUNIQTIwX1BPTFkxMzA1X1NIQTI1NixzZWNwMzg0cjEsZWNkc2Ffc2VjcDI1NnIxX3NoYTI1NiIgXAotICAgICAgICAgIiRPX05FWFRfU1JWX05PX0NFUlQgLWNlcnQgZGF0YV9maWxlcy9lY2RzYV9zZWNwMjU2cjEuY3J0IC1rZXkgZGF0YV9maWxlcy9lY2RzYV9zZWNwMjU2cjEua2V5IC1jaXBoZXJzdWl0ZXMgVExTX0NIQUNIQTIwX1BPTFkxMzA1X1NIQTI1NiAtc2lnYWxncyBlY2RzYV9zZWNwMjU2cjFfc2hhMjU2IC1ncm91cHMgUC0zODQgLW1zZyAtdGxzMV8zIC1udW1fdGlja2V0cyAwIC1ub19yZXN1bWVfZXBoZW1lcmFsIC1ub19jYWNoZSIgXAotICAgICAgICAgIiRQX0NMSSBjYV9maWxlPWRhdGFfZmlsZXMvdGVzdC1jYTIuY3J0IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUNIQUNIQTIwLVBPTFkxMzA1LVNIQTI1NiBzaWdfYWxncz1lY2RzYV9zZWNwMjU2cjFfc2hhMjU2IGdyb3Vwcz1zZWNwMzg0cjEiIFwKKyAgICAgICAgICIkT19ORVhUX1NSVl9OT19DRVJUIC1jZXJ0ICREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDI1NnIxLmNydCAta2V5ICREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDI1NnIxLmtleSAtY2lwaGVyc3VpdGVzIFRMU19DSEFDSEEyMF9QT0xZMTMwNV9TSEEyNTYgLXNpZ2FsZ3MgZWNkc2Ffc2VjcDI1NnIxX3NoYTI1NiAtZ3JvdXBzIFAtMzg0IC1tc2cgLXRsczFfMyAtbnVtX3RpY2tldHMgMCAtbm9fcmVzdW1lX2VwaGVtZXJhbCAtbm9fY2FjaGUiIFwKKyAgICAgICAgICIkUF9DTEkgY2FfZmlsZT0kREFUQV9GSUxFU19QQVRIL3Rlc3QtY2EyLmNydCBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1DSEFDSEEyMC1QT0xZMTMwNS1TSEEyNTYgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDI1NnIxX3NoYTI1NiBncm91cHM9c2VjcDM4NHIxIiBcCiAgICAgICAgICAwIFwKICAgICAgICAgIC1jICJIVFRQLzEuMCAyMDAgb2siIFwKICAgICAgICAgIC1jICJQcm90b2NvbCBpcyBUTFN2MS4zIiBcCkBAIC01NDE1LDggKzU0MTcsOCBAQAogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgTUJFRFRMU19TU0xfVExTMV8zX0NPTVBBVElCSUxJVFlfTU9ERQogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgUFNBX1dBTlRfQUxHX0VDREgKIHJ1bl90ZXN0ICJUTFMgMS4zIG0tPk86IENIQUNIQTIwX1BPTFkxMzA1X1NIQTI1NixzZWNwMzg0cjEsZWNkc2Ffc2VjcDM4NHIxX3NoYTM4NCIgXAotICAgICAgICAgIiRPX05FWFRfU1JWX05PX0NFUlQgLWNlcnQgZGF0YV9maWxlcy9lY2RzYV9zZWNwMzg0cjEuY3J0IC1rZXkgZGF0YV9maWxlcy9lY2RzYV9zZWNwMzg0cjEua2V5IC1jaXBoZXJzdWl0ZXMgVExTX0NIQUNIQTIwX1BPTFkxMzA1X1NIQTI1NiAtc2lnYWxncyBlY2RzYV9zZWNwMzg0cjFfc2hhMzg0IC1ncm91cHMgUC0zODQgLW1zZyAtdGxzMV8zIC1udW1fdGlja2V0cyAwIC1ub19yZXN1bWVfZXBoZW1lcmFsIC1ub19jYWNoZSIgXAotICAgICAgICAgIiRQX0NMSSBjYV9maWxlPWRhdGFfZmlsZXMvdGVzdC1jYTIuY3J0IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUNIQUNIQTIwLVBPTFkxMzA1LVNIQTI1NiBzaWdfYWxncz1lY2RzYV9zZWNwMzg0cjFfc2hhMzg0IGdyb3Vwcz1zZWNwMzg0cjEiIFwKKyAgICAgICAgICIkT19ORVhUX1NSVl9OT19DRVJUIC1jZXJ0ICREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDM4NHIxLmNydCAta2V5ICREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDM4NHIxLmtleSAtY2lwaGVyc3VpdGVzIFRMU19DSEFDSEEyMF9QT0xZMTMwNV9TSEEyNTYgLXNpZ2FsZ3MgZWNkc2Ffc2VjcDM4NHIxX3NoYTM4NCAtZ3JvdXBzIFAtMzg0IC1tc2cgLXRsczFfMyAtbnVtX3RpY2tldHMgMCAtbm9fcmVzdW1lX2VwaGVtZXJhbCAtbm9fY2FjaGUiIFwKKyAgICAgICAgICIkUF9DTEkgY2FfZmlsZT0kREFUQV9GSUxFU19QQVRIL3Rlc3QtY2EyLmNydCBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1DSEFDSEEyMC1QT0xZMTMwNS1TSEEyNTYgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDM4NHIxX3NoYTM4NCBncm91cHM9c2VjcDM4NHIxIiBcCiAgICAgICAgICAwIFwKICAgICAgICAgIC1jICJIVFRQLzEuMCAyMDAgb2siIFwKICAgICAgICAgIC1jICJQcm90b2NvbCBpcyBUTFN2MS4zIiBcCkBAIC01NDMzLDggKzU0MzUsOCBAQAogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgTUJFRFRMU19TU0xfVExTMV8zX0NPTVBBVElCSUxJVFlfTU9ERQogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgUFNBX1dBTlRfQUxHX0VDREgKIHJ1bl90ZXN0ICJUTFMgMS4zIG0tPk86IENIQUNIQTIwX1BPTFkxMzA1X1NIQTI1NixzZWNwMzg0cjEsZWNkc2Ffc2VjcDUyMXIxX3NoYTUxMiIgXAotICAgICAgICAgIiRPX05FWFRfU1JWX05PX0NFUlQgLWNlcnQgZGF0YV9maWxlcy9lY2RzYV9zZWNwNTIxcjEuY3J0IC1rZXkgZGF0YV9maWxlcy9lY2RzYV9zZWNwNTIxcjEua2V5IC1jaXBoZXJzdWl0ZXMgVExTX0NIQUNIQTIwX1BPTFkxMzA1X1NIQTI1NiAtc2lnYWxncyBlY2RzYV9zZWNwNTIxcjFfc2hhNTEyIC1ncm91cHMgUC0zODQgLW1zZyAtdGxzMV8zIC1udW1fdGlja2V0cyAwIC1ub19yZXN1bWVfZXBoZW1lcmFsIC1ub19jYWNoZSIgXAotICAgICAgICAgIiRQX0NMSSBjYV9maWxlPWRhdGFfZmlsZXMvdGVzdC1jYTIuY3J0IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUNIQUNIQTIwLVBPTFkxMzA1LVNIQTI1NiBzaWdfYWxncz1lY2RzYV9zZWNwNTIxcjFfc2hhNTEyIGdyb3Vwcz1zZWNwMzg0cjEiIFwKKyAgICAgICAgICIkT19ORVhUX1NSVl9OT19DRVJUIC1jZXJ0ICREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDUyMXIxLmNydCAta2V5ICREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDUyMXIxLmtleSAtY2lwaGVyc3VpdGVzIFRMU19DSEFDSEEyMF9QT0xZMTMwNV9TSEEyNTYgLXNpZ2FsZ3MgZWNkc2Ffc2VjcDUyMXIxX3NoYTUxMiAtZ3JvdXBzIFAtMzg0IC1tc2cgLXRsczFfMyAtbnVtX3RpY2tldHMgMCAtbm9fcmVzdW1lX2VwaGVtZXJhbCAtbm9fY2FjaGUiIFwKKyAgICAgICAgICIkUF9DTEkgY2FfZmlsZT0kREFUQV9GSUxFU19QQVRIL3Rlc3QtY2EyLmNydCBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1DSEFDSEEyMC1QT0xZMTMwNS1TSEEyNTYgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDUyMXIxX3NoYTUxMiBncm91cHM9c2VjcDM4NHIxIiBcCiAgICAgICAgICAwIFwKICAgICAgICAgIC1jICJIVFRQLzEuMCAyMDAgb2siIFwKICAgICAgICAgIC1jICJQcm90b2NvbCBpcyBUTFN2MS4zIiBcCkBAIC01NDUyLDggKzU0NTQsOCBAQAogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgTUJFRFRMU19YNTA5X1JTQVNTQV9QU1NfU1VQUE9SVAogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgUFNBX1dBTlRfQUxHX0VDREgKIHJ1bl90ZXN0ICJUTFMgMS4zIG0tPk86IENIQUNIQTIwX1BPTFkxMzA1X1NIQTI1NixzZWNwMzg0cjEscnNhX3Bzc19yc2FlX3NoYTI1NiIgXAotICAgICAgICAgIiRPX05FWFRfU1JWX05PX0NFUlQgLWNlcnQgZGF0YV9maWxlcy9zZXJ2ZXIyLXNoYTI1Ni5jcnQgLWtleSBkYXRhX2ZpbGVzL3NlcnZlcjIua2V5IC1jaXBoZXJzdWl0ZXMgVExTX0NIQUNIQTIwX1BPTFkxMzA1X1NIQTI1NiAtc2lnYWxncyByc2FfcHNzX3JzYWVfc2hhMjU2IC1ncm91cHMgUC0zODQgLW1zZyAtdGxzMV8zIC1udW1fdGlja2V0cyAwIC1ub19yZXN1bWVfZXBoZW1lcmFsIC1ub19jYWNoZSIgXAotICAgICAgICAgIiRQX0NMSSBjYV9maWxlPWRhdGFfZmlsZXMvdGVzdC1jYV9jYXQxMi5jcnQgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQ0hBQ0hBMjAtUE9MWTEzMDUtU0hBMjU2IHNpZ19hbGdzPXJzYV9wc3NfcnNhZV9zaGEyNTYgZ3JvdXBzPXNlY3AzODRyMSIgXAorICAgICAgICAgIiRPX05FWFRfU1JWX05PX0NFUlQgLWNlcnQgJERBVEFfRklMRVNfUEFUSC9zZXJ2ZXIyLXNoYTI1Ni5jcnQgLWtleSAkREFUQV9GSUxFU19QQVRIL3NlcnZlcjIua2V5IC1jaXBoZXJzdWl0ZXMgVExTX0NIQUNIQTIwX1BPTFkxMzA1X1NIQTI1NiAtc2lnYWxncyByc2FfcHNzX3JzYWVfc2hhMjU2IC1ncm91cHMgUC0zODQgLW1zZyAtdGxzMV8zIC1udW1fdGlja2V0cyAwIC1ub19yZXN1bWVfZXBoZW1lcmFsIC1ub19jYWNoZSIgXAorICAgICAgICAgIiRQX0NMSSBjYV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvdGVzdC1jYV9jYXQxMi5jcnQgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQ0hBQ0hBMjAtUE9MWTEzMDUtU0hBMjU2IHNpZ19hbGdzPXJzYV9wc3NfcnNhZV9zaGEyNTYgZ3JvdXBzPXNlY3AzODRyMSIgXAogICAgICAgICAgMCBcCiAgICAgICAgICAtYyAiSFRUUC8xLjAgMjAwIG9rIiBcCiAgICAgICAgICAtYyAiUHJvdG9jb2wgaXMgVExTdjEuMyIgXApAQCAtNTQ3MCw4ICs1NDcyLDggQEAKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIE1CRURUTFNfU1NMX1RMUzFfM19DT01QQVRJQklMSVRZX01PREUKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIFBTQV9XQU5UX0FMR19FQ0RICiBydW5fdGVzdCAiVExTIDEuMyBtLT5POiBDSEFDSEEyMF9QT0xZMTMwNV9TSEEyNTYsc2VjcDUyMXIxLGVjZHNhX3NlY3AyNTZyMV9zaGEyNTYiIFwKLSAgICAgICAgICIkT19ORVhUX1NSVl9OT19DRVJUIC1jZXJ0IGRhdGFfZmlsZXMvZWNkc2Ffc2VjcDI1NnIxLmNydCAta2V5IGRhdGFfZmlsZXMvZWNkc2Ffc2VjcDI1NnIxLmtleSAtY2lwaGVyc3VpdGVzIFRMU19DSEFDSEEyMF9QT0xZMTMwNV9TSEEyNTYgLXNpZ2FsZ3MgZWNkc2Ffc2VjcDI1NnIxX3NoYTI1NiAtZ3JvdXBzIFAtNTIxIC1tc2cgLXRsczFfMyAtbnVtX3RpY2tldHMgMCAtbm9fcmVzdW1lX2VwaGVtZXJhbCAtbm9fY2FjaGUiIFwKLSAgICAgICAgICIkUF9DTEkgY2FfZmlsZT1kYXRhX2ZpbGVzL3Rlc3QtY2EyLmNydCBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1DSEFDSEEyMC1QT0xZMTMwNS1TSEEyNTYgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDI1NnIxX3NoYTI1NiBncm91cHM9c2VjcDUyMXIxIiBcCisgICAgICAgICAiJE9fTkVYVF9TUlZfTk9fQ0VSVCAtY2VydCAkREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3AyNTZyMS5jcnQgLWtleSAkREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3AyNTZyMS5rZXkgLWNpcGhlcnN1aXRlcyBUTFNfQ0hBQ0hBMjBfUE9MWTEzMDVfU0hBMjU2IC1zaWdhbGdzIGVjZHNhX3NlY3AyNTZyMV9zaGEyNTYgLWdyb3VwcyBQLTUyMSAtbXNnIC10bHMxXzMgLW51bV90aWNrZXRzIDAgLW5vX3Jlc3VtZV9lcGhlbWVyYWwgLW5vX2NhY2hlIiBcCisgICAgICAgICAiJFBfQ0xJIGNhX2ZpbGU9JERBVEFfRklMRVNfUEFUSC90ZXN0LWNhMi5jcnQgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQ0hBQ0hBMjAtUE9MWTEzMDUtU0hBMjU2IHNpZ19hbGdzPWVjZHNhX3NlY3AyNTZyMV9zaGEyNTYgZ3JvdXBzPXNlY3A1MjFyMSIgXAogICAgICAgICAgMCBcCiAgICAgICAgICAtYyAiSFRUUC8xLjAgMjAwIG9rIiBcCiAgICAgICAgICAtYyAiUHJvdG9jb2wgaXMgVExTdjEuMyIgXApAQCAtNTQ4OCw4ICs1NDkwLDggQEAKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIE1CRURUTFNfU1NMX1RMUzFfM19DT01QQVRJQklMSVRZX01PREUKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIFBTQV9XQU5UX0FMR19FQ0RICiBydW5fdGVzdCAiVExTIDEuMyBtLT5POiBDSEFDSEEyMF9QT0xZMTMwNV9TSEEyNTYsc2VjcDUyMXIxLGVjZHNhX3NlY3AzODRyMV9zaGEzODQiIFwKLSAgICAgICAgICIkT19ORVhUX1NSVl9OT19DRVJUIC1jZXJ0IGRhdGFfZmlsZXMvZWNkc2Ffc2VjcDM4NHIxLmNydCAta2V5IGRhdGFfZmlsZXMvZWNkc2Ffc2VjcDM4NHIxLmtleSAtY2lwaGVyc3VpdGVzIFRMU19DSEFDSEEyMF9QT0xZMTMwNV9TSEEyNTYgLXNpZ2FsZ3MgZWNkc2Ffc2VjcDM4NHIxX3NoYTM4NCAtZ3JvdXBzIFAtNTIxIC1tc2cgLXRsczFfMyAtbnVtX3RpY2tldHMgMCAtbm9fcmVzdW1lX2VwaGVtZXJhbCAtbm9fY2FjaGUiIFwKLSAgICAgICAgICIkUF9DTEkgY2FfZmlsZT1kYXRhX2ZpbGVzL3Rlc3QtY2EyLmNydCBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1DSEFDSEEyMC1QT0xZMTMwNS1TSEEyNTYgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDM4NHIxX3NoYTM4NCBncm91cHM9c2VjcDUyMXIxIiBcCisgICAgICAgICAiJE9fTkVYVF9TUlZfTk9fQ0VSVCAtY2VydCAkREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3AzODRyMS5jcnQgLWtleSAkREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3AzODRyMS5rZXkgLWNpcGhlcnN1aXRlcyBUTFNfQ0hBQ0hBMjBfUE9MWTEzMDVfU0hBMjU2IC1zaWdhbGdzIGVjZHNhX3NlY3AzODRyMV9zaGEzODQgLWdyb3VwcyBQLTUyMSAtbXNnIC10bHMxXzMgLW51bV90aWNrZXRzIDAgLW5vX3Jlc3VtZV9lcGhlbWVyYWwgLW5vX2NhY2hlIiBcCisgICAgICAgICAiJFBfQ0xJIGNhX2ZpbGU9JERBVEFfRklMRVNfUEFUSC90ZXN0LWNhMi5jcnQgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQ0hBQ0hBMjAtUE9MWTEzMDUtU0hBMjU2IHNpZ19hbGdzPWVjZHNhX3NlY3AzODRyMV9zaGEzODQgZ3JvdXBzPXNlY3A1MjFyMSIgXAogICAgICAgICAgMCBcCiAgICAgICAgICAtYyAiSFRUUC8xLjAgMjAwIG9rIiBcCiAgICAgICAgICAtYyAiUHJvdG9jb2wgaXMgVExTdjEuMyIgXApAQCAtNTUwNiw4ICs1NTA4LDggQEAKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIE1CRURUTFNfU1NMX1RMUzFfM19DT01QQVRJQklMSVRZX01PREUKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIFBTQV9XQU5UX0FMR19FQ0RICiBydW5fdGVzdCAiVExTIDEuMyBtLT5POiBDSEFDSEEyMF9QT0xZMTMwNV9TSEEyNTYsc2VjcDUyMXIxLGVjZHNhX3NlY3A1MjFyMV9zaGE1MTIiIFwKLSAgICAgICAgICIkT19ORVhUX1NSVl9OT19DRVJUIC1jZXJ0IGRhdGFfZmlsZXMvZWNkc2Ffc2VjcDUyMXIxLmNydCAta2V5IGRhdGFfZmlsZXMvZWNkc2Ffc2VjcDUyMXIxLmtleSAtY2lwaGVyc3VpdGVzIFRMU19DSEFDSEEyMF9QT0xZMTMwNV9TSEEyNTYgLXNpZ2FsZ3MgZWNkc2Ffc2VjcDUyMXIxX3NoYTUxMiAtZ3JvdXBzIFAtNTIxIC1tc2cgLXRsczFfMyAtbnVtX3RpY2tldHMgMCAtbm9fcmVzdW1lX2VwaGVtZXJhbCAtbm9fY2FjaGUiIFwKLSAgICAgICAgICIkUF9DTEkgY2FfZmlsZT1kYXRhX2ZpbGVzL3Rlc3QtY2EyLmNydCBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1DSEFDSEEyMC1QT0xZMTMwNS1TSEEyNTYgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDUyMXIxX3NoYTUxMiBncm91cHM9c2VjcDUyMXIxIiBcCisgICAgICAgICAiJE9fTkVYVF9TUlZfTk9fQ0VSVCAtY2VydCAkREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3A1MjFyMS5jcnQgLWtleSAkREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3A1MjFyMS5rZXkgLWNpcGhlcnN1aXRlcyBUTFNfQ0hBQ0hBMjBfUE9MWTEzMDVfU0hBMjU2IC1zaWdhbGdzIGVjZHNhX3NlY3A1MjFyMV9zaGE1MTIgLWdyb3VwcyBQLTUyMSAtbXNnIC10bHMxXzMgLW51bV90aWNrZXRzIDAgLW5vX3Jlc3VtZV9lcGhlbWVyYWwgLW5vX2NhY2hlIiBcCisgICAgICAgICAiJFBfQ0xJIGNhX2ZpbGU9JERBVEFfRklMRVNfUEFUSC90ZXN0LWNhMi5jcnQgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQ0hBQ0hBMjAtUE9MWTEzMDUtU0hBMjU2IHNpZ19hbGdzPWVjZHNhX3NlY3A1MjFyMV9zaGE1MTIgZ3JvdXBzPXNlY3A1MjFyMSIgXAogICAgICAgICAgMCBcCiAgICAgICAgICAtYyAiSFRUUC8xLjAgMjAwIG9rIiBcCiAgICAgICAgICAtYyAiUHJvdG9jb2wgaXMgVExTdjEuMyIgXApAQCAtNTUyNSw4ICs1NTI3LDggQEAKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIE1CRURUTFNfWDUwOV9SU0FTU0FfUFNTX1NVUFBPUlQKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIFBTQV9XQU5UX0FMR19FQ0RICiBydW5fdGVzdCAiVExTIDEuMyBtLT5POiBDSEFDSEEyMF9QT0xZMTMwNV9TSEEyNTYsc2VjcDUyMXIxLHJzYV9wc3NfcnNhZV9zaGEyNTYiIFwKLSAgICAgICAgICIkT19ORVhUX1NSVl9OT19DRVJUIC1jZXJ0IGRhdGFfZmlsZXMvc2VydmVyMi1zaGEyNTYuY3J0IC1rZXkgZGF0YV9maWxlcy9zZXJ2ZXIyLmtleSAtY2lwaGVyc3VpdGVzIFRMU19DSEFDSEEyMF9QT0xZMTMwNV9TSEEyNTYgLXNpZ2FsZ3MgcnNhX3Bzc19yc2FlX3NoYTI1NiAtZ3JvdXBzIFAtNTIxIC1tc2cgLXRsczFfMyAtbnVtX3RpY2tldHMgMCAtbm9fcmVzdW1lX2VwaGVtZXJhbCAtbm9fY2FjaGUiIFwKLSAgICAgICAgICIkUF9DTEkgY2FfZmlsZT1kYXRhX2ZpbGVzL3Rlc3QtY2FfY2F0MTIuY3J0IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUNIQUNIQTIwLVBPTFkxMzA1LVNIQTI1NiBzaWdfYWxncz1yc2FfcHNzX3JzYWVfc2hhMjU2IGdyb3Vwcz1zZWNwNTIxcjEiIFwKKyAgICAgICAgICIkT19ORVhUX1NSVl9OT19DRVJUIC1jZXJ0ICREQVRBX0ZJTEVTX1BBVEgvc2VydmVyMi1zaGEyNTYuY3J0IC1rZXkgJERBVEFfRklMRVNfUEFUSC9zZXJ2ZXIyLmtleSAtY2lwaGVyc3VpdGVzIFRMU19DSEFDSEEyMF9QT0xZMTMwNV9TSEEyNTYgLXNpZ2FsZ3MgcnNhX3Bzc19yc2FlX3NoYTI1NiAtZ3JvdXBzIFAtNTIxIC1tc2cgLXRsczFfMyAtbnVtX3RpY2tldHMgMCAtbm9fcmVzdW1lX2VwaGVtZXJhbCAtbm9fY2FjaGUiIFwKKyAgICAgICAgICIkUF9DTEkgY2FfZmlsZT0kREFUQV9GSUxFU19QQVRIL3Rlc3QtY2FfY2F0MTIuY3J0IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUNIQUNIQTIwLVBPTFkxMzA1LVNIQTI1NiBzaWdfYWxncz1yc2FfcHNzX3JzYWVfc2hhMjU2IGdyb3Vwcz1zZWNwNTIxcjEiIFwKICAgICAgICAgIDAgXAogICAgICAgICAgLWMgIkhUVFAvMS4wIDIwMCBvayIgXAogICAgICAgICAgLWMgIlByb3RvY29sIGlzIFRMU3YxLjMiIFwKQEAgLTU1NDMsOCArNTU0NSw4IEBACiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBNQkVEVExTX1NTTF9UTFMxXzNfQ09NUEFUSUJJTElUWV9NT0RFCiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBQU0FfV0FOVF9BTEdfRUNESAogcnVuX3Rlc3QgIlRMUyAxLjMgbS0+TzogQ0hBQ0hBMjBfUE9MWTEzMDVfU0hBMjU2LHgyNTUxOSxlY2RzYV9zZWNwMjU2cjFfc2hhMjU2IiBcCi0gICAgICAgICAiJE9fTkVYVF9TUlZfTk9fQ0VSVCAtY2VydCBkYXRhX2ZpbGVzL2VjZHNhX3NlY3AyNTZyMS5jcnQgLWtleSBkYXRhX2ZpbGVzL2VjZHNhX3NlY3AyNTZyMS5rZXkgLWNpcGhlcnN1aXRlcyBUTFNfQ0hBQ0hBMjBfUE9MWTEzMDVfU0hBMjU2IC1zaWdhbGdzIGVjZHNhX3NlY3AyNTZyMV9zaGEyNTYgLWdyb3VwcyBYMjU1MTkgLW1zZyAtdGxzMV8zIC1udW1fdGlja2V0cyAwIC1ub19yZXN1bWVfZXBoZW1lcmFsIC1ub19jYWNoZSIgXAotICAgICAgICAgIiRQX0NMSSBjYV9maWxlPWRhdGFfZmlsZXMvdGVzdC1jYTIuY3J0IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUNIQUNIQTIwLVBPTFkxMzA1LVNIQTI1NiBzaWdfYWxncz1lY2RzYV9zZWNwMjU2cjFfc2hhMjU2IGdyb3Vwcz14MjU1MTkiIFwKKyAgICAgICAgICIkT19ORVhUX1NSVl9OT19DRVJUIC1jZXJ0ICREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDI1NnIxLmNydCAta2V5ICREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDI1NnIxLmtleSAtY2lwaGVyc3VpdGVzIFRMU19DSEFDSEEyMF9QT0xZMTMwNV9TSEEyNTYgLXNpZ2FsZ3MgZWNkc2Ffc2VjcDI1NnIxX3NoYTI1NiAtZ3JvdXBzIFgyNTUxOSAtbXNnIC10bHMxXzMgLW51bV90aWNrZXRzIDAgLW5vX3Jlc3VtZV9lcGhlbWVyYWwgLW5vX2NhY2hlIiBcCisgICAgICAgICAiJFBfQ0xJIGNhX2ZpbGU9JERBVEFfRklMRVNfUEFUSC90ZXN0LWNhMi5jcnQgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQ0hBQ0hBMjAtUE9MWTEzMDUtU0hBMjU2IHNpZ19hbGdzPWVjZHNhX3NlY3AyNTZyMV9zaGEyNTYgZ3JvdXBzPXgyNTUxOSIgXAogICAgICAgICAgMCBcCiAgICAgICAgICAtYyAiSFRUUC8xLjAgMjAwIG9rIiBcCiAgICAgICAgICAtYyAiUHJvdG9jb2wgaXMgVExTdjEuMyIgXApAQCAtNTU2MSw4ICs1NTYzLDggQEAKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIE1CRURUTFNfU1NMX1RMUzFfM19DT01QQVRJQklMSVRZX01PREUKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIFBTQV9XQU5UX0FMR19FQ0RICiBydW5fdGVzdCAiVExTIDEuMyBtLT5POiBDSEFDSEEyMF9QT0xZMTMwNV9TSEEyNTYseDI1NTE5LGVjZHNhX3NlY3AzODRyMV9zaGEzODQiIFwKLSAgICAgICAgICIkT19ORVhUX1NSVl9OT19DRVJUIC1jZXJ0IGRhdGFfZmlsZXMvZWNkc2Ffc2VjcDM4NHIxLmNydCAta2V5IGRhdGFfZmlsZXMvZWNkc2Ffc2VjcDM4NHIxLmtleSAtY2lwaGVyc3VpdGVzIFRMU19DSEFDSEEyMF9QT0xZMTMwNV9TSEEyNTYgLXNpZ2FsZ3MgZWNkc2Ffc2VjcDM4NHIxX3NoYTM4NCAtZ3JvdXBzIFgyNTUxOSAtbXNnIC10bHMxXzMgLW51bV90aWNrZXRzIDAgLW5vX3Jlc3VtZV9lcGhlbWVyYWwgLW5vX2NhY2hlIiBcCi0gICAgICAgICAiJFBfQ0xJIGNhX2ZpbGU9ZGF0YV9maWxlcy90ZXN0LWNhMi5jcnQgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQ0hBQ0hBMjAtUE9MWTEzMDUtU0hBMjU2IHNpZ19hbGdzPWVjZHNhX3NlY3AzODRyMV9zaGEzODQgZ3JvdXBzPXgyNTUxOSIgXAorICAgICAgICAgIiRPX05FWFRfU1JWX05PX0NFUlQgLWNlcnQgJERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwMzg0cjEuY3J0IC1rZXkgJERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwMzg0cjEua2V5IC1jaXBoZXJzdWl0ZXMgVExTX0NIQUNIQTIwX1BPTFkxMzA1X1NIQTI1NiAtc2lnYWxncyBlY2RzYV9zZWNwMzg0cjFfc2hhMzg0IC1ncm91cHMgWDI1NTE5IC1tc2cgLXRsczFfMyAtbnVtX3RpY2tldHMgMCAtbm9fcmVzdW1lX2VwaGVtZXJhbCAtbm9fY2FjaGUiIFwKKyAgICAgICAgICIkUF9DTEkgY2FfZmlsZT0kREFUQV9GSUxFU19QQVRIL3Rlc3QtY2EyLmNydCBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1DSEFDSEEyMC1QT0xZMTMwNS1TSEEyNTYgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDM4NHIxX3NoYTM4NCBncm91cHM9eDI1NTE5IiBcCiAgICAgICAgICAwIFwKICAgICAgICAgIC1jICJIVFRQLzEuMCAyMDAgb2siIFwKICAgICAgICAgIC1jICJQcm90b2NvbCBpcyBUTFN2MS4zIiBcCkBAIC01NTc5LDggKzU1ODEsOCBAQAogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgTUJFRFRMU19TU0xfVExTMV8zX0NPTVBBVElCSUxJVFlfTU9ERQogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgUFNBX1dBTlRfQUxHX0VDREgKIHJ1bl90ZXN0ICJUTFMgMS4zIG0tPk86IENIQUNIQTIwX1BPTFkxMzA1X1NIQTI1Nix4MjU1MTksZWNkc2Ffc2VjcDUyMXIxX3NoYTUxMiIgXAotICAgICAgICAgIiRPX05FWFRfU1JWX05PX0NFUlQgLWNlcnQgZGF0YV9maWxlcy9lY2RzYV9zZWNwNTIxcjEuY3J0IC1rZXkgZGF0YV9maWxlcy9lY2RzYV9zZWNwNTIxcjEua2V5IC1jaXBoZXJzdWl0ZXMgVExTX0NIQUNIQTIwX1BPTFkxMzA1X1NIQTI1NiAtc2lnYWxncyBlY2RzYV9zZWNwNTIxcjFfc2hhNTEyIC1ncm91cHMgWDI1NTE5IC1tc2cgLXRsczFfMyAtbnVtX3RpY2tldHMgMCAtbm9fcmVzdW1lX2VwaGVtZXJhbCAtbm9fY2FjaGUiIFwKLSAgICAgICAgICIkUF9DTEkgY2FfZmlsZT1kYXRhX2ZpbGVzL3Rlc3QtY2EyLmNydCBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1DSEFDSEEyMC1QT0xZMTMwNS1TSEEyNTYgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDUyMXIxX3NoYTUxMiBncm91cHM9eDI1NTE5IiBcCisgICAgICAgICAiJE9fTkVYVF9TUlZfTk9fQ0VSVCAtY2VydCAkREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3A1MjFyMS5jcnQgLWtleSAkREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3A1MjFyMS5rZXkgLWNpcGhlcnN1aXRlcyBUTFNfQ0hBQ0hBMjBfUE9MWTEzMDVfU0hBMjU2IC1zaWdhbGdzIGVjZHNhX3NlY3A1MjFyMV9zaGE1MTIgLWdyb3VwcyBYMjU1MTkgLW1zZyAtdGxzMV8zIC1udW1fdGlja2V0cyAwIC1ub19yZXN1bWVfZXBoZW1lcmFsIC1ub19jYWNoZSIgXAorICAgICAgICAgIiRQX0NMSSBjYV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvdGVzdC1jYTIuY3J0IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUNIQUNIQTIwLVBPTFkxMzA1LVNIQTI1NiBzaWdfYWxncz1lY2RzYV9zZWNwNTIxcjFfc2hhNTEyIGdyb3Vwcz14MjU1MTkiIFwKICAgICAgICAgIDAgXAogICAgICAgICAgLWMgIkhUVFAvMS4wIDIwMCBvayIgXAogICAgICAgICAgLWMgIlByb3RvY29sIGlzIFRMU3YxLjMiIFwKQEAgLTU1OTgsOCArNTYwMCw4IEBACiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBNQkVEVExTX1g1MDlfUlNBU1NBX1BTU19TVVBQT1JUCiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBQU0FfV0FOVF9BTEdfRUNESAogcnVuX3Rlc3QgIlRMUyAxLjMgbS0+TzogQ0hBQ0hBMjBfUE9MWTEzMDVfU0hBMjU2LHgyNTUxOSxyc2FfcHNzX3JzYWVfc2hhMjU2IiBcCi0gICAgICAgICAiJE9fTkVYVF9TUlZfTk9fQ0VSVCAtY2VydCBkYXRhX2ZpbGVzL3NlcnZlcjItc2hhMjU2LmNydCAta2V5IGRhdGFfZmlsZXMvc2VydmVyMi5rZXkgLWNpcGhlcnN1aXRlcyBUTFNfQ0hBQ0hBMjBfUE9MWTEzMDVfU0hBMjU2IC1zaWdhbGdzIHJzYV9wc3NfcnNhZV9zaGEyNTYgLWdyb3VwcyBYMjU1MTkgLW1zZyAtdGxzMV8zIC1udW1fdGlja2V0cyAwIC1ub19yZXN1bWVfZXBoZW1lcmFsIC1ub19jYWNoZSIgXAotICAgICAgICAgIiRQX0NMSSBjYV9maWxlPWRhdGFfZmlsZXMvdGVzdC1jYV9jYXQxMi5jcnQgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQ0hBQ0hBMjAtUE9MWTEzMDUtU0hBMjU2IHNpZ19hbGdzPXJzYV9wc3NfcnNhZV9zaGEyNTYgZ3JvdXBzPXgyNTUxOSIgXAorICAgICAgICAgIiRPX05FWFRfU1JWX05PX0NFUlQgLWNlcnQgJERBVEFfRklMRVNfUEFUSC9zZXJ2ZXIyLXNoYTI1Ni5jcnQgLWtleSAkREFUQV9GSUxFU19QQVRIL3NlcnZlcjIua2V5IC1jaXBoZXJzdWl0ZXMgVExTX0NIQUNIQTIwX1BPTFkxMzA1X1NIQTI1NiAtc2lnYWxncyByc2FfcHNzX3JzYWVfc2hhMjU2IC1ncm91cHMgWDI1NTE5IC1tc2cgLXRsczFfMyAtbnVtX3RpY2tldHMgMCAtbm9fcmVzdW1lX2VwaGVtZXJhbCAtbm9fY2FjaGUiIFwKKyAgICAgICAgICIkUF9DTEkgY2FfZmlsZT0kREFUQV9GSUxFU19QQVRIL3Rlc3QtY2FfY2F0MTIuY3J0IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUNIQUNIQTIwLVBPTFkxMzA1LVNIQTI1NiBzaWdfYWxncz1yc2FfcHNzX3JzYWVfc2hhMjU2IGdyb3Vwcz14MjU1MTkiIFwKICAgICAgICAgIDAgXAogICAgICAgICAgLWMgIkhUVFAvMS4wIDIwMCBvayIgXAogICAgICAgICAgLWMgIlByb3RvY29sIGlzIFRMU3YxLjMiIFwKQEAgLTU2MTYsOCArNTYxOCw4IEBACiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBNQkVEVExTX1NTTF9UTFMxXzNfQ09NUEFUSUJJTElUWV9NT0RFCiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBQU0FfV0FOVF9BTEdfRUNESAogcnVuX3Rlc3QgIlRMUyAxLjMgbS0+TzogQ0hBQ0hBMjBfUE9MWTEzMDVfU0hBMjU2LHg0NDgsZWNkc2Ffc2VjcDI1NnIxX3NoYTI1NiIgXAotICAgICAgICAgIiRPX05FWFRfU1JWX05PX0NFUlQgLWNlcnQgZGF0YV9maWxlcy9lY2RzYV9zZWNwMjU2cjEuY3J0IC1rZXkgZGF0YV9maWxlcy9lY2RzYV9zZWNwMjU2cjEua2V5IC1jaXBoZXJzdWl0ZXMgVExTX0NIQUNIQTIwX1BPTFkxMzA1X1NIQTI1NiAtc2lnYWxncyBlY2RzYV9zZWNwMjU2cjFfc2hhMjU2IC1ncm91cHMgWDQ0OCAtbXNnIC10bHMxXzMgLW51bV90aWNrZXRzIDAgLW5vX3Jlc3VtZV9lcGhlbWVyYWwgLW5vX2NhY2hlIiBcCi0gICAgICAgICAiJFBfQ0xJIGNhX2ZpbGU9ZGF0YV9maWxlcy90ZXN0LWNhMi5jcnQgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQ0hBQ0hBMjAtUE9MWTEzMDUtU0hBMjU2IHNpZ19hbGdzPWVjZHNhX3NlY3AyNTZyMV9zaGEyNTYgZ3JvdXBzPXg0NDgiIFwKKyAgICAgICAgICIkT19ORVhUX1NSVl9OT19DRVJUIC1jZXJ0ICREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDI1NnIxLmNydCAta2V5ICREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDI1NnIxLmtleSAtY2lwaGVyc3VpdGVzIFRMU19DSEFDSEEyMF9QT0xZMTMwNV9TSEEyNTYgLXNpZ2FsZ3MgZWNkc2Ffc2VjcDI1NnIxX3NoYTI1NiAtZ3JvdXBzIFg0NDggLW1zZyAtdGxzMV8zIC1udW1fdGlja2V0cyAwIC1ub19yZXN1bWVfZXBoZW1lcmFsIC1ub19jYWNoZSIgXAorICAgICAgICAgIiRQX0NMSSBjYV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvdGVzdC1jYTIuY3J0IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUNIQUNIQTIwLVBPTFkxMzA1LVNIQTI1NiBzaWdfYWxncz1lY2RzYV9zZWNwMjU2cjFfc2hhMjU2IGdyb3Vwcz14NDQ4IiBcCiAgICAgICAgICAwIFwKICAgICAgICAgIC1jICJIVFRQLzEuMCAyMDAgb2siIFwKICAgICAgICAgIC1jICJQcm90b2NvbCBpcyBUTFN2MS4zIiBcCkBAIC01NjM0LDggKzU2MzYsOCBAQAogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgTUJFRFRMU19TU0xfVExTMV8zX0NPTVBBVElCSUxJVFlfTU9ERQogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgUFNBX1dBTlRfQUxHX0VDREgKIHJ1bl90ZXN0ICJUTFMgMS4zIG0tPk86IENIQUNIQTIwX1BPTFkxMzA1X1NIQTI1Nix4NDQ4LGVjZHNhX3NlY3AzODRyMV9zaGEzODQiIFwKLSAgICAgICAgICIkT19ORVhUX1NSVl9OT19DRVJUIC1jZXJ0IGRhdGFfZmlsZXMvZWNkc2Ffc2VjcDM4NHIxLmNydCAta2V5IGRhdGFfZmlsZXMvZWNkc2Ffc2VjcDM4NHIxLmtleSAtY2lwaGVyc3VpdGVzIFRMU19DSEFDSEEyMF9QT0xZMTMwNV9TSEEyNTYgLXNpZ2FsZ3MgZWNkc2Ffc2VjcDM4NHIxX3NoYTM4NCAtZ3JvdXBzIFg0NDggLW1zZyAtdGxzMV8zIC1udW1fdGlja2V0cyAwIC1ub19yZXN1bWVfZXBoZW1lcmFsIC1ub19jYWNoZSIgXAotICAgICAgICAgIiRQX0NMSSBjYV9maWxlPWRhdGFfZmlsZXMvdGVzdC1jYTIuY3J0IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUNIQUNIQTIwLVBPTFkxMzA1LVNIQTI1NiBzaWdfYWxncz1lY2RzYV9zZWNwMzg0cjFfc2hhMzg0IGdyb3Vwcz14NDQ4IiBcCisgICAgICAgICAiJE9fTkVYVF9TUlZfTk9fQ0VSVCAtY2VydCAkREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3AzODRyMS5jcnQgLWtleSAkREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3AzODRyMS5rZXkgLWNpcGhlcnN1aXRlcyBUTFNfQ0hBQ0hBMjBfUE9MWTEzMDVfU0hBMjU2IC1zaWdhbGdzIGVjZHNhX3NlY3AzODRyMV9zaGEzODQgLWdyb3VwcyBYNDQ4IC1tc2cgLXRsczFfMyAtbnVtX3RpY2tldHMgMCAtbm9fcmVzdW1lX2VwaGVtZXJhbCAtbm9fY2FjaGUiIFwKKyAgICAgICAgICIkUF9DTEkgY2FfZmlsZT0kREFUQV9GSUxFU19QQVRIL3Rlc3QtY2EyLmNydCBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1DSEFDSEEyMC1QT0xZMTMwNS1TSEEyNTYgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDM4NHIxX3NoYTM4NCBncm91cHM9eDQ0OCIgXAogICAgICAgICAgMCBcCiAgICAgICAgICAtYyAiSFRUUC8xLjAgMjAwIG9rIiBcCiAgICAgICAgICAtYyAiUHJvdG9jb2wgaXMgVExTdjEuMyIgXApAQCAtNTY1Miw4ICs1NjU0LDggQEAKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIE1CRURUTFNfU1NMX1RMUzFfM19DT01QQVRJQklMSVRZX01PREUKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIFBTQV9XQU5UX0FMR19FQ0RICiBydW5fdGVzdCAiVExTIDEuMyBtLT5POiBDSEFDSEEyMF9QT0xZMTMwNV9TSEEyNTYseDQ0OCxlY2RzYV9zZWNwNTIxcjFfc2hhNTEyIiBcCi0gICAgICAgICAiJE9fTkVYVF9TUlZfTk9fQ0VSVCAtY2VydCBkYXRhX2ZpbGVzL2VjZHNhX3NlY3A1MjFyMS5jcnQgLWtleSBkYXRhX2ZpbGVzL2VjZHNhX3NlY3A1MjFyMS5rZXkgLWNpcGhlcnN1aXRlcyBUTFNfQ0hBQ0hBMjBfUE9MWTEzMDVfU0hBMjU2IC1zaWdhbGdzIGVjZHNhX3NlY3A1MjFyMV9zaGE1MTIgLWdyb3VwcyBYNDQ4IC1tc2cgLXRsczFfMyAtbnVtX3RpY2tldHMgMCAtbm9fcmVzdW1lX2VwaGVtZXJhbCAtbm9fY2FjaGUiIFwKLSAgICAgICAgICIkUF9DTEkgY2FfZmlsZT1kYXRhX2ZpbGVzL3Rlc3QtY2EyLmNydCBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1DSEFDSEEyMC1QT0xZMTMwNS1TSEEyNTYgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDUyMXIxX3NoYTUxMiBncm91cHM9eDQ0OCIgXAorICAgICAgICAgIiRPX05FWFRfU1JWX05PX0NFUlQgLWNlcnQgJERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwNTIxcjEuY3J0IC1rZXkgJERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwNTIxcjEua2V5IC1jaXBoZXJzdWl0ZXMgVExTX0NIQUNIQTIwX1BPTFkxMzA1X1NIQTI1NiAtc2lnYWxncyBlY2RzYV9zZWNwNTIxcjFfc2hhNTEyIC1ncm91cHMgWDQ0OCAtbXNnIC10bHMxXzMgLW51bV90aWNrZXRzIDAgLW5vX3Jlc3VtZV9lcGhlbWVyYWwgLW5vX2NhY2hlIiBcCisgICAgICAgICAiJFBfQ0xJIGNhX2ZpbGU9JERBVEFfRklMRVNfUEFUSC90ZXN0LWNhMi5jcnQgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQ0hBQ0hBMjAtUE9MWTEzMDUtU0hBMjU2IHNpZ19hbGdzPWVjZHNhX3NlY3A1MjFyMV9zaGE1MTIgZ3JvdXBzPXg0NDgiIFwKICAgICAgICAgIDAgXAogICAgICAgICAgLWMgIkhUVFAvMS4wIDIwMCBvayIgXAogICAgICAgICAgLWMgIlByb3RvY29sIGlzIFRMU3YxLjMiIFwKQEAgLTU2NzEsOCArNTY3Myw4IEBACiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBNQkVEVExTX1g1MDlfUlNBU1NBX1BTU19TVVBQT1JUCiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBQU0FfV0FOVF9BTEdfRUNESAogcnVuX3Rlc3QgIlRMUyAxLjMgbS0+TzogQ0hBQ0hBMjBfUE9MWTEzMDVfU0hBMjU2LHg0NDgscnNhX3Bzc19yc2FlX3NoYTI1NiIgXAotICAgICAgICAgIiRPX05FWFRfU1JWX05PX0NFUlQgLWNlcnQgZGF0YV9maWxlcy9zZXJ2ZXIyLXNoYTI1Ni5jcnQgLWtleSBkYXRhX2ZpbGVzL3NlcnZlcjIua2V5IC1jaXBoZXJzdWl0ZXMgVExTX0NIQUNIQTIwX1BPTFkxMzA1X1NIQTI1NiAtc2lnYWxncyByc2FfcHNzX3JzYWVfc2hhMjU2IC1ncm91cHMgWDQ0OCAtbXNnIC10bHMxXzMgLW51bV90aWNrZXRzIDAgLW5vX3Jlc3VtZV9lcGhlbWVyYWwgLW5vX2NhY2hlIiBcCi0gICAgICAgICAiJFBfQ0xJIGNhX2ZpbGU9ZGF0YV9maWxlcy90ZXN0LWNhX2NhdDEyLmNydCBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1DSEFDSEEyMC1QT0xZMTMwNS1TSEEyNTYgc2lnX2FsZ3M9cnNhX3Bzc19yc2FlX3NoYTI1NiBncm91cHM9eDQ0OCIgXAorICAgICAgICAgIiRPX05FWFRfU1JWX05PX0NFUlQgLWNlcnQgJERBVEFfRklMRVNfUEFUSC9zZXJ2ZXIyLXNoYTI1Ni5jcnQgLWtleSAkREFUQV9GSUxFU19QQVRIL3NlcnZlcjIua2V5IC1jaXBoZXJzdWl0ZXMgVExTX0NIQUNIQTIwX1BPTFkxMzA1X1NIQTI1NiAtc2lnYWxncyByc2FfcHNzX3JzYWVfc2hhMjU2IC1ncm91cHMgWDQ0OCAtbXNnIC10bHMxXzMgLW51bV90aWNrZXRzIDAgLW5vX3Jlc3VtZV9lcGhlbWVyYWwgLW5vX2NhY2hlIiBcCisgICAgICAgICAiJFBfQ0xJIGNhX2ZpbGU9JERBVEFfRklMRVNfUEFUSC90ZXN0LWNhX2NhdDEyLmNydCBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1DSEFDSEEyMC1QT0xZMTMwNS1TSEEyNTYgc2lnX2FsZ3M9cnNhX3Bzc19yc2FlX3NoYTI1NiBncm91cHM9eDQ0OCIgXAogICAgICAgICAgMCBcCiAgICAgICAgICAtYyAiSFRUUC8xLjAgMjAwIG9rIiBcCiAgICAgICAgICAtYyAiUHJvdG9jb2wgaXMgVExTdjEuMyIgXApAQCAtNTY5MCw4ICs1NjkyLDggQEAKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIFBTQV9XQU5UX0FMR19GRkRICiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBQU0FfV0FOVF9ESF9SRkM3OTE5XzIwNDgKIHJ1bl90ZXN0ICJUTFMgMS4zIG0tPk86IENIQUNIQTIwX1BPTFkxMzA1X1NIQTI1NixmZmRoZTIwNDgsZWNkc2Ffc2VjcDI1NnIxX3NoYTI1NiIgXAotICAgICAgICAgIiRPX05FWFRfU1JWX05PX0NFUlQgLWNlcnQgZGF0YV9maWxlcy9lY2RzYV9zZWNwMjU2cjEuY3J0IC1rZXkgZGF0YV9maWxlcy9lY2RzYV9zZWNwMjU2cjEua2V5IC1jaXBoZXJzdWl0ZXMgVExTX0NIQUNIQTIwX1BPTFkxMzA1X1NIQTI1NiAtc2lnYWxncyBlY2RzYV9zZWNwMjU2cjFfc2hhMjU2IC1ncm91cHMgZmZkaGUyMDQ4IC1tc2cgLXRsczFfMyAtbnVtX3RpY2tldHMgMCAtbm9fcmVzdW1lX2VwaGVtZXJhbCAtbm9fY2FjaGUiIFwKLSAgICAgICAgICIkUF9DTEkgY2FfZmlsZT1kYXRhX2ZpbGVzL3Rlc3QtY2EyLmNydCBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1DSEFDSEEyMC1QT0xZMTMwNS1TSEEyNTYgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDI1NnIxX3NoYTI1NiBncm91cHM9ZmZkaGUyMDQ4IiBcCisgICAgICAgICAiJE9fTkVYVF9TUlZfTk9fQ0VSVCAtY2VydCAkREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3AyNTZyMS5jcnQgLWtleSAkREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3AyNTZyMS5rZXkgLWNpcGhlcnN1aXRlcyBUTFNfQ0hBQ0hBMjBfUE9MWTEzMDVfU0hBMjU2IC1zaWdhbGdzIGVjZHNhX3NlY3AyNTZyMV9zaGEyNTYgLWdyb3VwcyBmZmRoZTIwNDggLW1zZyAtdGxzMV8zIC1udW1fdGlja2V0cyAwIC1ub19yZXN1bWVfZXBoZW1lcmFsIC1ub19jYWNoZSIgXAorICAgICAgICAgIiRQX0NMSSBjYV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvdGVzdC1jYTIuY3J0IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUNIQUNIQTIwLVBPTFkxMzA1LVNIQTI1NiBzaWdfYWxncz1lY2RzYV9zZWNwMjU2cjFfc2hhMjU2IGdyb3Vwcz1mZmRoZTIwNDgiIFwKICAgICAgICAgIDAgXAogICAgICAgICAgLWMgIkhUVFAvMS4wIDIwMCBvayIgXAogICAgICAgICAgLWMgIlByb3RvY29sIGlzIFRMU3YxLjMiIFwKQEAgLTU3MDksOCArNTcxMSw4IEBACiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBQU0FfV0FOVF9BTEdfRkZESAogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgUFNBX1dBTlRfREhfUkZDNzkxOV8yMDQ4CiBydW5fdGVzdCAiVExTIDEuMyBtLT5POiBDSEFDSEEyMF9QT0xZMTMwNV9TSEEyNTYsZmZkaGUyMDQ4LGVjZHNhX3NlY3AzODRyMV9zaGEzODQiIFwKLSAgICAgICAgICIkT19ORVhUX1NSVl9OT19DRVJUIC1jZXJ0IGRhdGFfZmlsZXMvZWNkc2Ffc2VjcDM4NHIxLmNydCAta2V5IGRhdGFfZmlsZXMvZWNkc2Ffc2VjcDM4NHIxLmtleSAtY2lwaGVyc3VpdGVzIFRMU19DSEFDSEEyMF9QT0xZMTMwNV9TSEEyNTYgLXNpZ2FsZ3MgZWNkc2Ffc2VjcDM4NHIxX3NoYTM4NCAtZ3JvdXBzIGZmZGhlMjA0OCAtbXNnIC10bHMxXzMgLW51bV90aWNrZXRzIDAgLW5vX3Jlc3VtZV9lcGhlbWVyYWwgLW5vX2NhY2hlIiBcCi0gICAgICAgICAiJFBfQ0xJIGNhX2ZpbGU9ZGF0YV9maWxlcy90ZXN0LWNhMi5jcnQgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQ0hBQ0hBMjAtUE9MWTEzMDUtU0hBMjU2IHNpZ19hbGdzPWVjZHNhX3NlY3AzODRyMV9zaGEzODQgZ3JvdXBzPWZmZGhlMjA0OCIgXAorICAgICAgICAgIiRPX05FWFRfU1JWX05PX0NFUlQgLWNlcnQgJERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwMzg0cjEuY3J0IC1rZXkgJERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwMzg0cjEua2V5IC1jaXBoZXJzdWl0ZXMgVExTX0NIQUNIQTIwX1BPTFkxMzA1X1NIQTI1NiAtc2lnYWxncyBlY2RzYV9zZWNwMzg0cjFfc2hhMzg0IC1ncm91cHMgZmZkaGUyMDQ4IC1tc2cgLXRsczFfMyAtbnVtX3RpY2tldHMgMCAtbm9fcmVzdW1lX2VwaGVtZXJhbCAtbm9fY2FjaGUiIFwKKyAgICAgICAgICIkUF9DTEkgY2FfZmlsZT0kREFUQV9GSUxFU19QQVRIL3Rlc3QtY2EyLmNydCBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1DSEFDSEEyMC1QT0xZMTMwNS1TSEEyNTYgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDM4NHIxX3NoYTM4NCBncm91cHM9ZmZkaGUyMDQ4IiBcCiAgICAgICAgICAwIFwKICAgICAgICAgIC1jICJIVFRQLzEuMCAyMDAgb2siIFwKICAgICAgICAgIC1jICJQcm90b2NvbCBpcyBUTFN2MS4zIiBcCkBAIC01NzI4LDggKzU3MzAsOCBAQAogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgUFNBX1dBTlRfQUxHX0ZGREgKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIFBTQV9XQU5UX0RIX1JGQzc5MTlfMjA0OAogcnVuX3Rlc3QgIlRMUyAxLjMgbS0+TzogQ0hBQ0hBMjBfUE9MWTEzMDVfU0hBMjU2LGZmZGhlMjA0OCxlY2RzYV9zZWNwNTIxcjFfc2hhNTEyIiBcCi0gICAgICAgICAiJE9fTkVYVF9TUlZfTk9fQ0VSVCAtY2VydCBkYXRhX2ZpbGVzL2VjZHNhX3NlY3A1MjFyMS5jcnQgLWtleSBkYXRhX2ZpbGVzL2VjZHNhX3NlY3A1MjFyMS5rZXkgLWNpcGhlcnN1aXRlcyBUTFNfQ0hBQ0hBMjBfUE9MWTEzMDVfU0hBMjU2IC1zaWdhbGdzIGVjZHNhX3NlY3A1MjFyMV9zaGE1MTIgLWdyb3VwcyBmZmRoZTIwNDggLW1zZyAtdGxzMV8zIC1udW1fdGlja2V0cyAwIC1ub19yZXN1bWVfZXBoZW1lcmFsIC1ub19jYWNoZSIgXAotICAgICAgICAgIiRQX0NMSSBjYV9maWxlPWRhdGFfZmlsZXMvdGVzdC1jYTIuY3J0IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUNIQUNIQTIwLVBPTFkxMzA1LVNIQTI1NiBzaWdfYWxncz1lY2RzYV9zZWNwNTIxcjFfc2hhNTEyIGdyb3Vwcz1mZmRoZTIwNDgiIFwKKyAgICAgICAgICIkT19ORVhUX1NSVl9OT19DRVJUIC1jZXJ0ICREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDUyMXIxLmNydCAta2V5ICREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDUyMXIxLmtleSAtY2lwaGVyc3VpdGVzIFRMU19DSEFDSEEyMF9QT0xZMTMwNV9TSEEyNTYgLXNpZ2FsZ3MgZWNkc2Ffc2VjcDUyMXIxX3NoYTUxMiAtZ3JvdXBzIGZmZGhlMjA0OCAtbXNnIC10bHMxXzMgLW51bV90aWNrZXRzIDAgLW5vX3Jlc3VtZV9lcGhlbWVyYWwgLW5vX2NhY2hlIiBcCisgICAgICAgICAiJFBfQ0xJIGNhX2ZpbGU9JERBVEFfRklMRVNfUEFUSC90ZXN0LWNhMi5jcnQgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQ0hBQ0hBMjAtUE9MWTEzMDUtU0hBMjU2IHNpZ19hbGdzPWVjZHNhX3NlY3A1MjFyMV9zaGE1MTIgZ3JvdXBzPWZmZGhlMjA0OCIgXAogICAgICAgICAgMCBcCiAgICAgICAgICAtYyAiSFRUUC8xLjAgMjAwIG9rIiBcCiAgICAgICAgICAtYyAiUHJvdG9jb2wgaXMgVExTdjEuMyIgXApAQCAtNTc0OCw4ICs1NzUwLDggQEAKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIFBTQV9XQU5UX0FMR19GRkRICiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBQU0FfV0FOVF9ESF9SRkM3OTE5XzIwNDgKIHJ1bl90ZXN0ICJUTFMgMS4zIG0tPk86IENIQUNIQTIwX1BPTFkxMzA1X1NIQTI1NixmZmRoZTIwNDgscnNhX3Bzc19yc2FlX3NoYTI1NiIgXAotICAgICAgICAgIiRPX05FWFRfU1JWX05PX0NFUlQgLWNlcnQgZGF0YV9maWxlcy9zZXJ2ZXIyLXNoYTI1Ni5jcnQgLWtleSBkYXRhX2ZpbGVzL3NlcnZlcjIua2V5IC1jaXBoZXJzdWl0ZXMgVExTX0NIQUNIQTIwX1BPTFkxMzA1X1NIQTI1NiAtc2lnYWxncyByc2FfcHNzX3JzYWVfc2hhMjU2IC1ncm91cHMgZmZkaGUyMDQ4IC1tc2cgLXRsczFfMyAtbnVtX3RpY2tldHMgMCAtbm9fcmVzdW1lX2VwaGVtZXJhbCAtbm9fY2FjaGUiIFwKLSAgICAgICAgICIkUF9DTEkgY2FfZmlsZT1kYXRhX2ZpbGVzL3Rlc3QtY2FfY2F0MTIuY3J0IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUNIQUNIQTIwLVBPTFkxMzA1LVNIQTI1NiBzaWdfYWxncz1yc2FfcHNzX3JzYWVfc2hhMjU2IGdyb3Vwcz1mZmRoZTIwNDgiIFwKKyAgICAgICAgICIkT19ORVhUX1NSVl9OT19DRVJUIC1jZXJ0ICREQVRBX0ZJTEVTX1BBVEgvc2VydmVyMi1zaGEyNTYuY3J0IC1rZXkgJERBVEFfRklMRVNfUEFUSC9zZXJ2ZXIyLmtleSAtY2lwaGVyc3VpdGVzIFRMU19DSEFDSEEyMF9QT0xZMTMwNV9TSEEyNTYgLXNpZ2FsZ3MgcnNhX3Bzc19yc2FlX3NoYTI1NiAtZ3JvdXBzIGZmZGhlMjA0OCAtbXNnIC10bHMxXzMgLW51bV90aWNrZXRzIDAgLW5vX3Jlc3VtZV9lcGhlbWVyYWwgLW5vX2NhY2hlIiBcCisgICAgICAgICAiJFBfQ0xJIGNhX2ZpbGU9JERBVEFfRklMRVNfUEFUSC90ZXN0LWNhX2NhdDEyLmNydCBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1DSEFDSEEyMC1QT0xZMTMwNS1TSEEyNTYgc2lnX2FsZ3M9cnNhX3Bzc19yc2FlX3NoYTI1NiBncm91cHM9ZmZkaGUyMDQ4IiBcCiAgICAgICAgICAwIFwKICAgICAgICAgIC1jICJIVFRQLzEuMCAyMDAgb2siIFwKICAgICAgICAgIC1jICJQcm90b2NvbCBpcyBUTFN2MS4zIiBcCkBAIC01NzY2LDggKzU3NjgsOCBAQAogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgTUJFRFRMU19TU0xfVExTMV8zX0NPTVBBVElCSUxJVFlfTU9ERQogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgUFNBX1dBTlRfQUxHX0VDREgKIHJ1bl90ZXN0ICJUTFMgMS4zIG0tPk86IEFFU18xMjhfQ0NNX1NIQTI1NixzZWNwMjU2cjEsZWNkc2Ffc2VjcDI1NnIxX3NoYTI1NiIgXAotICAgICAgICAgIiRPX05FWFRfU1JWX05PX0NFUlQgLWNlcnQgZGF0YV9maWxlcy9lY2RzYV9zZWNwMjU2cjEuY3J0IC1rZXkgZGF0YV9maWxlcy9lY2RzYV9zZWNwMjU2cjEua2V5IC1jaXBoZXJzdWl0ZXMgVExTX0FFU18xMjhfQ0NNX1NIQTI1NiAtc2lnYWxncyBlY2RzYV9zZWNwMjU2cjFfc2hhMjU2IC1ncm91cHMgUC0yNTYgLW1zZyAtdGxzMV8zIC1udW1fdGlja2V0cyAwIC1ub19yZXN1bWVfZXBoZW1lcmFsIC1ub19jYWNoZSIgXAotICAgICAgICAgIiRQX0NMSSBjYV9maWxlPWRhdGFfZmlsZXMvdGVzdC1jYTIuY3J0IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0xMjgtQ0NNLVNIQTI1NiBzaWdfYWxncz1lY2RzYV9zZWNwMjU2cjFfc2hhMjU2IGdyb3Vwcz1zZWNwMjU2cjEiIFwKKyAgICAgICAgICIkT19ORVhUX1NSVl9OT19DRVJUIC1jZXJ0ICREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDI1NnIxLmNydCAta2V5ICREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDI1NnIxLmtleSAtY2lwaGVyc3VpdGVzIFRMU19BRVNfMTI4X0NDTV9TSEEyNTYgLXNpZ2FsZ3MgZWNkc2Ffc2VjcDI1NnIxX3NoYTI1NiAtZ3JvdXBzIFAtMjU2IC1tc2cgLXRsczFfMyAtbnVtX3RpY2tldHMgMCAtbm9fcmVzdW1lX2VwaGVtZXJhbCAtbm9fY2FjaGUiIFwKKyAgICAgICAgICIkUF9DTEkgY2FfZmlsZT0kREFUQV9GSUxFU19QQVRIL3Rlc3QtY2EyLmNydCBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMTI4LUNDTS1TSEEyNTYgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDI1NnIxX3NoYTI1NiBncm91cHM9c2VjcDI1NnIxIiBcCiAgICAgICAgICAwIFwKICAgICAgICAgIC1jICJIVFRQLzEuMCAyMDAgb2siIFwKICAgICAgICAgIC1jICJQcm90b2NvbCBpcyBUTFN2MS4zIiBcCkBAIC01Nzg0LDggKzU3ODYsOCBAQAogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgTUJFRFRMU19TU0xfVExTMV8zX0NPTVBBVElCSUxJVFlfTU9ERQogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgUFNBX1dBTlRfQUxHX0VDREgKIHJ1bl90ZXN0ICJUTFMgMS4zIG0tPk86IEFFU18xMjhfQ0NNX1NIQTI1NixzZWNwMjU2cjEsZWNkc2Ffc2VjcDM4NHIxX3NoYTM4NCIgXAotICAgICAgICAgIiRPX05FWFRfU1JWX05PX0NFUlQgLWNlcnQgZGF0YV9maWxlcy9lY2RzYV9zZWNwMzg0cjEuY3J0IC1rZXkgZGF0YV9maWxlcy9lY2RzYV9zZWNwMzg0cjEua2V5IC1jaXBoZXJzdWl0ZXMgVExTX0FFU18xMjhfQ0NNX1NIQTI1NiAtc2lnYWxncyBlY2RzYV9zZWNwMzg0cjFfc2hhMzg0IC1ncm91cHMgUC0yNTYgLW1zZyAtdGxzMV8zIC1udW1fdGlja2V0cyAwIC1ub19yZXN1bWVfZXBoZW1lcmFsIC1ub19jYWNoZSIgXAotICAgICAgICAgIiRQX0NMSSBjYV9maWxlPWRhdGFfZmlsZXMvdGVzdC1jYTIuY3J0IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0xMjgtQ0NNLVNIQTI1NiBzaWdfYWxncz1lY2RzYV9zZWNwMzg0cjFfc2hhMzg0IGdyb3Vwcz1zZWNwMjU2cjEiIFwKKyAgICAgICAgICIkT19ORVhUX1NSVl9OT19DRVJUIC1jZXJ0ICREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDM4NHIxLmNydCAta2V5ICREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDM4NHIxLmtleSAtY2lwaGVyc3VpdGVzIFRMU19BRVNfMTI4X0NDTV9TSEEyNTYgLXNpZ2FsZ3MgZWNkc2Ffc2VjcDM4NHIxX3NoYTM4NCAtZ3JvdXBzIFAtMjU2IC1tc2cgLXRsczFfMyAtbnVtX3RpY2tldHMgMCAtbm9fcmVzdW1lX2VwaGVtZXJhbCAtbm9fY2FjaGUiIFwKKyAgICAgICAgICIkUF9DTEkgY2FfZmlsZT0kREFUQV9GSUxFU19QQVRIL3Rlc3QtY2EyLmNydCBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMTI4LUNDTS1TSEEyNTYgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDM4NHIxX3NoYTM4NCBncm91cHM9c2VjcDI1NnIxIiBcCiAgICAgICAgICAwIFwKICAgICAgICAgIC1jICJIVFRQLzEuMCAyMDAgb2siIFwKICAgICAgICAgIC1jICJQcm90b2NvbCBpcyBUTFN2MS4zIiBcCkBAIC01ODAyLDggKzU4MDQsOCBAQAogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgTUJFRFRMU19TU0xfVExTMV8zX0NPTVBBVElCSUxJVFlfTU9ERQogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgUFNBX1dBTlRfQUxHX0VDREgKIHJ1bl90ZXN0ICJUTFMgMS4zIG0tPk86IEFFU18xMjhfQ0NNX1NIQTI1NixzZWNwMjU2cjEsZWNkc2Ffc2VjcDUyMXIxX3NoYTUxMiIgXAotICAgICAgICAgIiRPX05FWFRfU1JWX05PX0NFUlQgLWNlcnQgZGF0YV9maWxlcy9lY2RzYV9zZWNwNTIxcjEuY3J0IC1rZXkgZGF0YV9maWxlcy9lY2RzYV9zZWNwNTIxcjEua2V5IC1jaXBoZXJzdWl0ZXMgVExTX0FFU18xMjhfQ0NNX1NIQTI1NiAtc2lnYWxncyBlY2RzYV9zZWNwNTIxcjFfc2hhNTEyIC1ncm91cHMgUC0yNTYgLW1zZyAtdGxzMV8zIC1udW1fdGlja2V0cyAwIC1ub19yZXN1bWVfZXBoZW1lcmFsIC1ub19jYWNoZSIgXAotICAgICAgICAgIiRQX0NMSSBjYV9maWxlPWRhdGFfZmlsZXMvdGVzdC1jYTIuY3J0IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0xMjgtQ0NNLVNIQTI1NiBzaWdfYWxncz1lY2RzYV9zZWNwNTIxcjFfc2hhNTEyIGdyb3Vwcz1zZWNwMjU2cjEiIFwKKyAgICAgICAgICIkT19ORVhUX1NSVl9OT19DRVJUIC1jZXJ0ICREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDUyMXIxLmNydCAta2V5ICREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDUyMXIxLmtleSAtY2lwaGVyc3VpdGVzIFRMU19BRVNfMTI4X0NDTV9TSEEyNTYgLXNpZ2FsZ3MgZWNkc2Ffc2VjcDUyMXIxX3NoYTUxMiAtZ3JvdXBzIFAtMjU2IC1tc2cgLXRsczFfMyAtbnVtX3RpY2tldHMgMCAtbm9fcmVzdW1lX2VwaGVtZXJhbCAtbm9fY2FjaGUiIFwKKyAgICAgICAgICIkUF9DTEkgY2FfZmlsZT0kREFUQV9GSUxFU19QQVRIL3Rlc3QtY2EyLmNydCBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMTI4LUNDTS1TSEEyNTYgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDUyMXIxX3NoYTUxMiBncm91cHM9c2VjcDI1NnIxIiBcCiAgICAgICAgICAwIFwKICAgICAgICAgIC1jICJIVFRQLzEuMCAyMDAgb2siIFwKICAgICAgICAgIC1jICJQcm90b2NvbCBpcyBUTFN2MS4zIiBcCkBAIC01ODIxLDggKzU4MjMsOCBAQAogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgTUJFRFRMU19YNTA5X1JTQVNTQV9QU1NfU1VQUE9SVAogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgUFNBX1dBTlRfQUxHX0VDREgKIHJ1bl90ZXN0ICJUTFMgMS4zIG0tPk86IEFFU18xMjhfQ0NNX1NIQTI1NixzZWNwMjU2cjEscnNhX3Bzc19yc2FlX3NoYTI1NiIgXAotICAgICAgICAgIiRPX05FWFRfU1JWX05PX0NFUlQgLWNlcnQgZGF0YV9maWxlcy9zZXJ2ZXIyLXNoYTI1Ni5jcnQgLWtleSBkYXRhX2ZpbGVzL3NlcnZlcjIua2V5IC1jaXBoZXJzdWl0ZXMgVExTX0FFU18xMjhfQ0NNX1NIQTI1NiAtc2lnYWxncyByc2FfcHNzX3JzYWVfc2hhMjU2IC1ncm91cHMgUC0yNTYgLW1zZyAtdGxzMV8zIC1udW1fdGlja2V0cyAwIC1ub19yZXN1bWVfZXBoZW1lcmFsIC1ub19jYWNoZSIgXAotICAgICAgICAgIiRQX0NMSSBjYV9maWxlPWRhdGFfZmlsZXMvdGVzdC1jYV9jYXQxMi5jcnQgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTEyOC1DQ00tU0hBMjU2IHNpZ19hbGdzPXJzYV9wc3NfcnNhZV9zaGEyNTYgZ3JvdXBzPXNlY3AyNTZyMSIgXAorICAgICAgICAgIiRPX05FWFRfU1JWX05PX0NFUlQgLWNlcnQgJERBVEFfRklMRVNfUEFUSC9zZXJ2ZXIyLXNoYTI1Ni5jcnQgLWtleSAkREFUQV9GSUxFU19QQVRIL3NlcnZlcjIua2V5IC1jaXBoZXJzdWl0ZXMgVExTX0FFU18xMjhfQ0NNX1NIQTI1NiAtc2lnYWxncyByc2FfcHNzX3JzYWVfc2hhMjU2IC1ncm91cHMgUC0yNTYgLW1zZyAtdGxzMV8zIC1udW1fdGlja2V0cyAwIC1ub19yZXN1bWVfZXBoZW1lcmFsIC1ub19jYWNoZSIgXAorICAgICAgICAgIiRQX0NMSSBjYV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvdGVzdC1jYV9jYXQxMi5jcnQgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTEyOC1DQ00tU0hBMjU2IHNpZ19hbGdzPXJzYV9wc3NfcnNhZV9zaGEyNTYgZ3JvdXBzPXNlY3AyNTZyMSIgXAogICAgICAgICAgMCBcCiAgICAgICAgICAtYyAiSFRUUC8xLjAgMjAwIG9rIiBcCiAgICAgICAgICAtYyAiUHJvdG9jb2wgaXMgVExTdjEuMyIgXApAQCAtNTgzOSw4ICs1ODQxLDggQEAKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIE1CRURUTFNfU1NMX1RMUzFfM19DT01QQVRJQklMSVRZX01PREUKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIFBTQV9XQU5UX0FMR19FQ0RICiBydW5fdGVzdCAiVExTIDEuMyBtLT5POiBBRVNfMTI4X0NDTV9TSEEyNTYsc2VjcDM4NHIxLGVjZHNhX3NlY3AyNTZyMV9zaGEyNTYiIFwKLSAgICAgICAgICIkT19ORVhUX1NSVl9OT19DRVJUIC1jZXJ0IGRhdGFfZmlsZXMvZWNkc2Ffc2VjcDI1NnIxLmNydCAta2V5IGRhdGFfZmlsZXMvZWNkc2Ffc2VjcDI1NnIxLmtleSAtY2lwaGVyc3VpdGVzIFRMU19BRVNfMTI4X0NDTV9TSEEyNTYgLXNpZ2FsZ3MgZWNkc2Ffc2VjcDI1NnIxX3NoYTI1NiAtZ3JvdXBzIFAtMzg0IC1tc2cgLXRsczFfMyAtbnVtX3RpY2tldHMgMCAtbm9fcmVzdW1lX2VwaGVtZXJhbCAtbm9fY2FjaGUiIFwKLSAgICAgICAgICIkUF9DTEkgY2FfZmlsZT1kYXRhX2ZpbGVzL3Rlc3QtY2EyLmNydCBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMTI4LUNDTS1TSEEyNTYgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDI1NnIxX3NoYTI1NiBncm91cHM9c2VjcDM4NHIxIiBcCisgICAgICAgICAiJE9fTkVYVF9TUlZfTk9fQ0VSVCAtY2VydCAkREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3AyNTZyMS5jcnQgLWtleSAkREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3AyNTZyMS5rZXkgLWNpcGhlcnN1aXRlcyBUTFNfQUVTXzEyOF9DQ01fU0hBMjU2IC1zaWdhbGdzIGVjZHNhX3NlY3AyNTZyMV9zaGEyNTYgLWdyb3VwcyBQLTM4NCAtbXNnIC10bHMxXzMgLW51bV90aWNrZXRzIDAgLW5vX3Jlc3VtZV9lcGhlbWVyYWwgLW5vX2NhY2hlIiBcCisgICAgICAgICAiJFBfQ0xJIGNhX2ZpbGU9JERBVEFfRklMRVNfUEFUSC90ZXN0LWNhMi5jcnQgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTEyOC1DQ00tU0hBMjU2IHNpZ19hbGdzPWVjZHNhX3NlY3AyNTZyMV9zaGEyNTYgZ3JvdXBzPXNlY3AzODRyMSIgXAogICAgICAgICAgMCBcCiAgICAgICAgICAtYyAiSFRUUC8xLjAgMjAwIG9rIiBcCiAgICAgICAgICAtYyAiUHJvdG9jb2wgaXMgVExTdjEuMyIgXApAQCAtNTg1Nyw4ICs1ODU5LDggQEAKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIE1CRURUTFNfU1NMX1RMUzFfM19DT01QQVRJQklMSVRZX01PREUKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIFBTQV9XQU5UX0FMR19FQ0RICiBydW5fdGVzdCAiVExTIDEuMyBtLT5POiBBRVNfMTI4X0NDTV9TSEEyNTYsc2VjcDM4NHIxLGVjZHNhX3NlY3AzODRyMV9zaGEzODQiIFwKLSAgICAgICAgICIkT19ORVhUX1NSVl9OT19DRVJUIC1jZXJ0IGRhdGFfZmlsZXMvZWNkc2Ffc2VjcDM4NHIxLmNydCAta2V5IGRhdGFfZmlsZXMvZWNkc2Ffc2VjcDM4NHIxLmtleSAtY2lwaGVyc3VpdGVzIFRMU19BRVNfMTI4X0NDTV9TSEEyNTYgLXNpZ2FsZ3MgZWNkc2Ffc2VjcDM4NHIxX3NoYTM4NCAtZ3JvdXBzIFAtMzg0IC1tc2cgLXRsczFfMyAtbnVtX3RpY2tldHMgMCAtbm9fcmVzdW1lX2VwaGVtZXJhbCAtbm9fY2FjaGUiIFwKLSAgICAgICAgICIkUF9DTEkgY2FfZmlsZT1kYXRhX2ZpbGVzL3Rlc3QtY2EyLmNydCBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMTI4LUNDTS1TSEEyNTYgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDM4NHIxX3NoYTM4NCBncm91cHM9c2VjcDM4NHIxIiBcCisgICAgICAgICAiJE9fTkVYVF9TUlZfTk9fQ0VSVCAtY2VydCAkREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3AzODRyMS5jcnQgLWtleSAkREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3AzODRyMS5rZXkgLWNpcGhlcnN1aXRlcyBUTFNfQUVTXzEyOF9DQ01fU0hBMjU2IC1zaWdhbGdzIGVjZHNhX3NlY3AzODRyMV9zaGEzODQgLWdyb3VwcyBQLTM4NCAtbXNnIC10bHMxXzMgLW51bV90aWNrZXRzIDAgLW5vX3Jlc3VtZV9lcGhlbWVyYWwgLW5vX2NhY2hlIiBcCisgICAgICAgICAiJFBfQ0xJIGNhX2ZpbGU9JERBVEFfRklMRVNfUEFUSC90ZXN0LWNhMi5jcnQgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTEyOC1DQ00tU0hBMjU2IHNpZ19hbGdzPWVjZHNhX3NlY3AzODRyMV9zaGEzODQgZ3JvdXBzPXNlY3AzODRyMSIgXAogICAgICAgICAgMCBcCiAgICAgICAgICAtYyAiSFRUUC8xLjAgMjAwIG9rIiBcCiAgICAgICAgICAtYyAiUHJvdG9jb2wgaXMgVExTdjEuMyIgXApAQCAtNTg3NSw4ICs1ODc3LDggQEAKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIE1CRURUTFNfU1NMX1RMUzFfM19DT01QQVRJQklMSVRZX01PREUKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIFBTQV9XQU5UX0FMR19FQ0RICiBydW5fdGVzdCAiVExTIDEuMyBtLT5POiBBRVNfMTI4X0NDTV9TSEEyNTYsc2VjcDM4NHIxLGVjZHNhX3NlY3A1MjFyMV9zaGE1MTIiIFwKLSAgICAgICAgICIkT19ORVhUX1NSVl9OT19DRVJUIC1jZXJ0IGRhdGFfZmlsZXMvZWNkc2Ffc2VjcDUyMXIxLmNydCAta2V5IGRhdGFfZmlsZXMvZWNkc2Ffc2VjcDUyMXIxLmtleSAtY2lwaGVyc3VpdGVzIFRMU19BRVNfMTI4X0NDTV9TSEEyNTYgLXNpZ2FsZ3MgZWNkc2Ffc2VjcDUyMXIxX3NoYTUxMiAtZ3JvdXBzIFAtMzg0IC1tc2cgLXRsczFfMyAtbnVtX3RpY2tldHMgMCAtbm9fcmVzdW1lX2VwaGVtZXJhbCAtbm9fY2FjaGUiIFwKLSAgICAgICAgICIkUF9DTEkgY2FfZmlsZT1kYXRhX2ZpbGVzL3Rlc3QtY2EyLmNydCBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMTI4LUNDTS1TSEEyNTYgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDUyMXIxX3NoYTUxMiBncm91cHM9c2VjcDM4NHIxIiBcCisgICAgICAgICAiJE9fTkVYVF9TUlZfTk9fQ0VSVCAtY2VydCAkREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3A1MjFyMS5jcnQgLWtleSAkREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3A1MjFyMS5rZXkgLWNpcGhlcnN1aXRlcyBUTFNfQUVTXzEyOF9DQ01fU0hBMjU2IC1zaWdhbGdzIGVjZHNhX3NlY3A1MjFyMV9zaGE1MTIgLWdyb3VwcyBQLTM4NCAtbXNnIC10bHMxXzMgLW51bV90aWNrZXRzIDAgLW5vX3Jlc3VtZV9lcGhlbWVyYWwgLW5vX2NhY2hlIiBcCisgICAgICAgICAiJFBfQ0xJIGNhX2ZpbGU9JERBVEFfRklMRVNfUEFUSC90ZXN0LWNhMi5jcnQgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTEyOC1DQ00tU0hBMjU2IHNpZ19hbGdzPWVjZHNhX3NlY3A1MjFyMV9zaGE1MTIgZ3JvdXBzPXNlY3AzODRyMSIgXAogICAgICAgICAgMCBcCiAgICAgICAgICAtYyAiSFRUUC8xLjAgMjAwIG9rIiBcCiAgICAgICAgICAtYyAiUHJvdG9jb2wgaXMgVExTdjEuMyIgXApAQCAtNTg5NCw4ICs1ODk2LDggQEAKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIE1CRURUTFNfWDUwOV9SU0FTU0FfUFNTX1NVUFBPUlQKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIFBTQV9XQU5UX0FMR19FQ0RICiBydW5fdGVzdCAiVExTIDEuMyBtLT5POiBBRVNfMTI4X0NDTV9TSEEyNTYsc2VjcDM4NHIxLHJzYV9wc3NfcnNhZV9zaGEyNTYiIFwKLSAgICAgICAgICIkT19ORVhUX1NSVl9OT19DRVJUIC1jZXJ0IGRhdGFfZmlsZXMvc2VydmVyMi1zaGEyNTYuY3J0IC1rZXkgZGF0YV9maWxlcy9zZXJ2ZXIyLmtleSAtY2lwaGVyc3VpdGVzIFRMU19BRVNfMTI4X0NDTV9TSEEyNTYgLXNpZ2FsZ3MgcnNhX3Bzc19yc2FlX3NoYTI1NiAtZ3JvdXBzIFAtMzg0IC1tc2cgLXRsczFfMyAtbnVtX3RpY2tldHMgMCAtbm9fcmVzdW1lX2VwaGVtZXJhbCAtbm9fY2FjaGUiIFwKLSAgICAgICAgICIkUF9DTEkgY2FfZmlsZT1kYXRhX2ZpbGVzL3Rlc3QtY2FfY2F0MTIuY3J0IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0xMjgtQ0NNLVNIQTI1NiBzaWdfYWxncz1yc2FfcHNzX3JzYWVfc2hhMjU2IGdyb3Vwcz1zZWNwMzg0cjEiIFwKKyAgICAgICAgICIkT19ORVhUX1NSVl9OT19DRVJUIC1jZXJ0ICREQVRBX0ZJTEVTX1BBVEgvc2VydmVyMi1zaGEyNTYuY3J0IC1rZXkgJERBVEFfRklMRVNfUEFUSC9zZXJ2ZXIyLmtleSAtY2lwaGVyc3VpdGVzIFRMU19BRVNfMTI4X0NDTV9TSEEyNTYgLXNpZ2FsZ3MgcnNhX3Bzc19yc2FlX3NoYTI1NiAtZ3JvdXBzIFAtMzg0IC1tc2cgLXRsczFfMyAtbnVtX3RpY2tldHMgMCAtbm9fcmVzdW1lX2VwaGVtZXJhbCAtbm9fY2FjaGUiIFwKKyAgICAgICAgICIkUF9DTEkgY2FfZmlsZT0kREFUQV9GSUxFU19QQVRIL3Rlc3QtY2FfY2F0MTIuY3J0IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0xMjgtQ0NNLVNIQTI1NiBzaWdfYWxncz1yc2FfcHNzX3JzYWVfc2hhMjU2IGdyb3Vwcz1zZWNwMzg0cjEiIFwKICAgICAgICAgIDAgXAogICAgICAgICAgLWMgIkhUVFAvMS4wIDIwMCBvayIgXAogICAgICAgICAgLWMgIlByb3RvY29sIGlzIFRMU3YxLjMiIFwKQEAgLTU5MTIsOCArNTkxNCw4IEBACiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBNQkVEVExTX1NTTF9UTFMxXzNfQ09NUEFUSUJJTElUWV9NT0RFCiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBQU0FfV0FOVF9BTEdfRUNESAogcnVuX3Rlc3QgIlRMUyAxLjMgbS0+TzogQUVTXzEyOF9DQ01fU0hBMjU2LHNlY3A1MjFyMSxlY2RzYV9zZWNwMjU2cjFfc2hhMjU2IiBcCi0gICAgICAgICAiJE9fTkVYVF9TUlZfTk9fQ0VSVCAtY2VydCBkYXRhX2ZpbGVzL2VjZHNhX3NlY3AyNTZyMS5jcnQgLWtleSBkYXRhX2ZpbGVzL2VjZHNhX3NlY3AyNTZyMS5rZXkgLWNpcGhlcnN1aXRlcyBUTFNfQUVTXzEyOF9DQ01fU0hBMjU2IC1zaWdhbGdzIGVjZHNhX3NlY3AyNTZyMV9zaGEyNTYgLWdyb3VwcyBQLTUyMSAtbXNnIC10bHMxXzMgLW51bV90aWNrZXRzIDAgLW5vX3Jlc3VtZV9lcGhlbWVyYWwgLW5vX2NhY2hlIiBcCi0gICAgICAgICAiJFBfQ0xJIGNhX2ZpbGU9ZGF0YV9maWxlcy90ZXN0LWNhMi5jcnQgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTEyOC1DQ00tU0hBMjU2IHNpZ19hbGdzPWVjZHNhX3NlY3AyNTZyMV9zaGEyNTYgZ3JvdXBzPXNlY3A1MjFyMSIgXAorICAgICAgICAgIiRPX05FWFRfU1JWX05PX0NFUlQgLWNlcnQgJERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwMjU2cjEuY3J0IC1rZXkgJERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwMjU2cjEua2V5IC1jaXBoZXJzdWl0ZXMgVExTX0FFU18xMjhfQ0NNX1NIQTI1NiAtc2lnYWxncyBlY2RzYV9zZWNwMjU2cjFfc2hhMjU2IC1ncm91cHMgUC01MjEgLW1zZyAtdGxzMV8zIC1udW1fdGlja2V0cyAwIC1ub19yZXN1bWVfZXBoZW1lcmFsIC1ub19jYWNoZSIgXAorICAgICAgICAgIiRQX0NMSSBjYV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvdGVzdC1jYTIuY3J0IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0xMjgtQ0NNLVNIQTI1NiBzaWdfYWxncz1lY2RzYV9zZWNwMjU2cjFfc2hhMjU2IGdyb3Vwcz1zZWNwNTIxcjEiIFwKICAgICAgICAgIDAgXAogICAgICAgICAgLWMgIkhUVFAvMS4wIDIwMCBvayIgXAogICAgICAgICAgLWMgIlByb3RvY29sIGlzIFRMU3YxLjMiIFwKQEAgLTU5MzAsOCArNTkzMiw4IEBACiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBNQkVEVExTX1NTTF9UTFMxXzNfQ09NUEFUSUJJTElUWV9NT0RFCiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBQU0FfV0FOVF9BTEdfRUNESAogcnVuX3Rlc3QgIlRMUyAxLjMgbS0+TzogQUVTXzEyOF9DQ01fU0hBMjU2LHNlY3A1MjFyMSxlY2RzYV9zZWNwMzg0cjFfc2hhMzg0IiBcCi0gICAgICAgICAiJE9fTkVYVF9TUlZfTk9fQ0VSVCAtY2VydCBkYXRhX2ZpbGVzL2VjZHNhX3NlY3AzODRyMS5jcnQgLWtleSBkYXRhX2ZpbGVzL2VjZHNhX3NlY3AzODRyMS5rZXkgLWNpcGhlcnN1aXRlcyBUTFNfQUVTXzEyOF9DQ01fU0hBMjU2IC1zaWdhbGdzIGVjZHNhX3NlY3AzODRyMV9zaGEzODQgLWdyb3VwcyBQLTUyMSAtbXNnIC10bHMxXzMgLW51bV90aWNrZXRzIDAgLW5vX3Jlc3VtZV9lcGhlbWVyYWwgLW5vX2NhY2hlIiBcCi0gICAgICAgICAiJFBfQ0xJIGNhX2ZpbGU9ZGF0YV9maWxlcy90ZXN0LWNhMi5jcnQgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTEyOC1DQ00tU0hBMjU2IHNpZ19hbGdzPWVjZHNhX3NlY3AzODRyMV9zaGEzODQgZ3JvdXBzPXNlY3A1MjFyMSIgXAorICAgICAgICAgIiRPX05FWFRfU1JWX05PX0NFUlQgLWNlcnQgJERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwMzg0cjEuY3J0IC1rZXkgJERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwMzg0cjEua2V5IC1jaXBoZXJzdWl0ZXMgVExTX0FFU18xMjhfQ0NNX1NIQTI1NiAtc2lnYWxncyBlY2RzYV9zZWNwMzg0cjFfc2hhMzg0IC1ncm91cHMgUC01MjEgLW1zZyAtdGxzMV8zIC1udW1fdGlja2V0cyAwIC1ub19yZXN1bWVfZXBoZW1lcmFsIC1ub19jYWNoZSIgXAorICAgICAgICAgIiRQX0NMSSBjYV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvdGVzdC1jYTIuY3J0IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0xMjgtQ0NNLVNIQTI1NiBzaWdfYWxncz1lY2RzYV9zZWNwMzg0cjFfc2hhMzg0IGdyb3Vwcz1zZWNwNTIxcjEiIFwKICAgICAgICAgIDAgXAogICAgICAgICAgLWMgIkhUVFAvMS4wIDIwMCBvayIgXAogICAgICAgICAgLWMgIlByb3RvY29sIGlzIFRMU3YxLjMiIFwKQEAgLTU5NDgsOCArNTk1MCw4IEBACiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBNQkVEVExTX1NTTF9UTFMxXzNfQ09NUEFUSUJJTElUWV9NT0RFCiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBQU0FfV0FOVF9BTEdfRUNESAogcnVuX3Rlc3QgIlRMUyAxLjMgbS0+TzogQUVTXzEyOF9DQ01fU0hBMjU2LHNlY3A1MjFyMSxlY2RzYV9zZWNwNTIxcjFfc2hhNTEyIiBcCi0gICAgICAgICAiJE9fTkVYVF9TUlZfTk9fQ0VSVCAtY2VydCBkYXRhX2ZpbGVzL2VjZHNhX3NlY3A1MjFyMS5jcnQgLWtleSBkYXRhX2ZpbGVzL2VjZHNhX3NlY3A1MjFyMS5rZXkgLWNpcGhlcnN1aXRlcyBUTFNfQUVTXzEyOF9DQ01fU0hBMjU2IC1zaWdhbGdzIGVjZHNhX3NlY3A1MjFyMV9zaGE1MTIgLWdyb3VwcyBQLTUyMSAtbXNnIC10bHMxXzMgLW51bV90aWNrZXRzIDAgLW5vX3Jlc3VtZV9lcGhlbWVyYWwgLW5vX2NhY2hlIiBcCi0gICAgICAgICAiJFBfQ0xJIGNhX2ZpbGU9ZGF0YV9maWxlcy90ZXN0LWNhMi5jcnQgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTEyOC1DQ00tU0hBMjU2IHNpZ19hbGdzPWVjZHNhX3NlY3A1MjFyMV9zaGE1MTIgZ3JvdXBzPXNlY3A1MjFyMSIgXAorICAgICAgICAgIiRPX05FWFRfU1JWX05PX0NFUlQgLWNlcnQgJERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwNTIxcjEuY3J0IC1rZXkgJERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwNTIxcjEua2V5IC1jaXBoZXJzdWl0ZXMgVExTX0FFU18xMjhfQ0NNX1NIQTI1NiAtc2lnYWxncyBlY2RzYV9zZWNwNTIxcjFfc2hhNTEyIC1ncm91cHMgUC01MjEgLW1zZyAtdGxzMV8zIC1udW1fdGlja2V0cyAwIC1ub19yZXN1bWVfZXBoZW1lcmFsIC1ub19jYWNoZSIgXAorICAgICAgICAgIiRQX0NMSSBjYV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvdGVzdC1jYTIuY3J0IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0xMjgtQ0NNLVNIQTI1NiBzaWdfYWxncz1lY2RzYV9zZWNwNTIxcjFfc2hhNTEyIGdyb3Vwcz1zZWNwNTIxcjEiIFwKICAgICAgICAgIDAgXAogICAgICAgICAgLWMgIkhUVFAvMS4wIDIwMCBvayIgXAogICAgICAgICAgLWMgIlByb3RvY29sIGlzIFRMU3YxLjMiIFwKQEAgLTU5NjcsOCArNTk2OSw4IEBACiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBNQkVEVExTX1g1MDlfUlNBU1NBX1BTU19TVVBQT1JUCiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBQU0FfV0FOVF9BTEdfRUNESAogcnVuX3Rlc3QgIlRMUyAxLjMgbS0+TzogQUVTXzEyOF9DQ01fU0hBMjU2LHNlY3A1MjFyMSxyc2FfcHNzX3JzYWVfc2hhMjU2IiBcCi0gICAgICAgICAiJE9fTkVYVF9TUlZfTk9fQ0VSVCAtY2VydCBkYXRhX2ZpbGVzL3NlcnZlcjItc2hhMjU2LmNydCAta2V5IGRhdGFfZmlsZXMvc2VydmVyMi5rZXkgLWNpcGhlcnN1aXRlcyBUTFNfQUVTXzEyOF9DQ01fU0hBMjU2IC1zaWdhbGdzIHJzYV9wc3NfcnNhZV9zaGEyNTYgLWdyb3VwcyBQLTUyMSAtbXNnIC10bHMxXzMgLW51bV90aWNrZXRzIDAgLW5vX3Jlc3VtZV9lcGhlbWVyYWwgLW5vX2NhY2hlIiBcCi0gICAgICAgICAiJFBfQ0xJIGNhX2ZpbGU9ZGF0YV9maWxlcy90ZXN0LWNhX2NhdDEyLmNydCBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMTI4LUNDTS1TSEEyNTYgc2lnX2FsZ3M9cnNhX3Bzc19yc2FlX3NoYTI1NiBncm91cHM9c2VjcDUyMXIxIiBcCisgICAgICAgICAiJE9fTkVYVF9TUlZfTk9fQ0VSVCAtY2VydCAkREFUQV9GSUxFU19QQVRIL3NlcnZlcjItc2hhMjU2LmNydCAta2V5ICREQVRBX0ZJTEVTX1BBVEgvc2VydmVyMi5rZXkgLWNpcGhlcnN1aXRlcyBUTFNfQUVTXzEyOF9DQ01fU0hBMjU2IC1zaWdhbGdzIHJzYV9wc3NfcnNhZV9zaGEyNTYgLWdyb3VwcyBQLTUyMSAtbXNnIC10bHMxXzMgLW51bV90aWNrZXRzIDAgLW5vX3Jlc3VtZV9lcGhlbWVyYWwgLW5vX2NhY2hlIiBcCisgICAgICAgICAiJFBfQ0xJIGNhX2ZpbGU9JERBVEFfRklMRVNfUEFUSC90ZXN0LWNhX2NhdDEyLmNydCBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMTI4LUNDTS1TSEEyNTYgc2lnX2FsZ3M9cnNhX3Bzc19yc2FlX3NoYTI1NiBncm91cHM9c2VjcDUyMXIxIiBcCiAgICAgICAgICAwIFwKICAgICAgICAgIC1jICJIVFRQLzEuMCAyMDAgb2siIFwKICAgICAgICAgIC1jICJQcm90b2NvbCBpcyBUTFN2MS4zIiBcCkBAIC01OTg1LDggKzU5ODcsOCBAQAogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgTUJFRFRMU19TU0xfVExTMV8zX0NPTVBBVElCSUxJVFlfTU9ERQogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgUFNBX1dBTlRfQUxHX0VDREgKIHJ1bl90ZXN0ICJUTFMgMS4zIG0tPk86IEFFU18xMjhfQ0NNX1NIQTI1Nix4MjU1MTksZWNkc2Ffc2VjcDI1NnIxX3NoYTI1NiIgXAotICAgICAgICAgIiRPX05FWFRfU1JWX05PX0NFUlQgLWNlcnQgZGF0YV9maWxlcy9lY2RzYV9zZWNwMjU2cjEuY3J0IC1rZXkgZGF0YV9maWxlcy9lY2RzYV9zZWNwMjU2cjEua2V5IC1jaXBoZXJzdWl0ZXMgVExTX0FFU18xMjhfQ0NNX1NIQTI1NiAtc2lnYWxncyBlY2RzYV9zZWNwMjU2cjFfc2hhMjU2IC1ncm91cHMgWDI1NTE5IC1tc2cgLXRsczFfMyAtbnVtX3RpY2tldHMgMCAtbm9fcmVzdW1lX2VwaGVtZXJhbCAtbm9fY2FjaGUiIFwKLSAgICAgICAgICIkUF9DTEkgY2FfZmlsZT1kYXRhX2ZpbGVzL3Rlc3QtY2EyLmNydCBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMTI4LUNDTS1TSEEyNTYgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDI1NnIxX3NoYTI1NiBncm91cHM9eDI1NTE5IiBcCisgICAgICAgICAiJE9fTkVYVF9TUlZfTk9fQ0VSVCAtY2VydCAkREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3AyNTZyMS5jcnQgLWtleSAkREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3AyNTZyMS5rZXkgLWNpcGhlcnN1aXRlcyBUTFNfQUVTXzEyOF9DQ01fU0hBMjU2IC1zaWdhbGdzIGVjZHNhX3NlY3AyNTZyMV9zaGEyNTYgLWdyb3VwcyBYMjU1MTkgLW1zZyAtdGxzMV8zIC1udW1fdGlja2V0cyAwIC1ub19yZXN1bWVfZXBoZW1lcmFsIC1ub19jYWNoZSIgXAorICAgICAgICAgIiRQX0NMSSBjYV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvdGVzdC1jYTIuY3J0IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0xMjgtQ0NNLVNIQTI1NiBzaWdfYWxncz1lY2RzYV9zZWNwMjU2cjFfc2hhMjU2IGdyb3Vwcz14MjU1MTkiIFwKICAgICAgICAgIDAgXAogICAgICAgICAgLWMgIkhUVFAvMS4wIDIwMCBvayIgXAogICAgICAgICAgLWMgIlByb3RvY29sIGlzIFRMU3YxLjMiIFwKQEAgLTYwMDMsOCArNjAwNSw4IEBACiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBNQkVEVExTX1NTTF9UTFMxXzNfQ09NUEFUSUJJTElUWV9NT0RFCiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBQU0FfV0FOVF9BTEdfRUNESAogcnVuX3Rlc3QgIlRMUyAxLjMgbS0+TzogQUVTXzEyOF9DQ01fU0hBMjU2LHgyNTUxOSxlY2RzYV9zZWNwMzg0cjFfc2hhMzg0IiBcCi0gICAgICAgICAiJE9fTkVYVF9TUlZfTk9fQ0VSVCAtY2VydCBkYXRhX2ZpbGVzL2VjZHNhX3NlY3AzODRyMS5jcnQgLWtleSBkYXRhX2ZpbGVzL2VjZHNhX3NlY3AzODRyMS5rZXkgLWNpcGhlcnN1aXRlcyBUTFNfQUVTXzEyOF9DQ01fU0hBMjU2IC1zaWdhbGdzIGVjZHNhX3NlY3AzODRyMV9zaGEzODQgLWdyb3VwcyBYMjU1MTkgLW1zZyAtdGxzMV8zIC1udW1fdGlja2V0cyAwIC1ub19yZXN1bWVfZXBoZW1lcmFsIC1ub19jYWNoZSIgXAotICAgICAgICAgIiRQX0NMSSBjYV9maWxlPWRhdGFfZmlsZXMvdGVzdC1jYTIuY3J0IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0xMjgtQ0NNLVNIQTI1NiBzaWdfYWxncz1lY2RzYV9zZWNwMzg0cjFfc2hhMzg0IGdyb3Vwcz14MjU1MTkiIFwKKyAgICAgICAgICIkT19ORVhUX1NSVl9OT19DRVJUIC1jZXJ0ICREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDM4NHIxLmNydCAta2V5ICREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDM4NHIxLmtleSAtY2lwaGVyc3VpdGVzIFRMU19BRVNfMTI4X0NDTV9TSEEyNTYgLXNpZ2FsZ3MgZWNkc2Ffc2VjcDM4NHIxX3NoYTM4NCAtZ3JvdXBzIFgyNTUxOSAtbXNnIC10bHMxXzMgLW51bV90aWNrZXRzIDAgLW5vX3Jlc3VtZV9lcGhlbWVyYWwgLW5vX2NhY2hlIiBcCisgICAgICAgICAiJFBfQ0xJIGNhX2ZpbGU9JERBVEFfRklMRVNfUEFUSC90ZXN0LWNhMi5jcnQgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTEyOC1DQ00tU0hBMjU2IHNpZ19hbGdzPWVjZHNhX3NlY3AzODRyMV9zaGEzODQgZ3JvdXBzPXgyNTUxOSIgXAogICAgICAgICAgMCBcCiAgICAgICAgICAtYyAiSFRUUC8xLjAgMjAwIG9rIiBcCiAgICAgICAgICAtYyAiUHJvdG9jb2wgaXMgVExTdjEuMyIgXApAQCAtNjAyMSw4ICs2MDIzLDggQEAKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIE1CRURUTFNfU1NMX1RMUzFfM19DT01QQVRJQklMSVRZX01PREUKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIFBTQV9XQU5UX0FMR19FQ0RICiBydW5fdGVzdCAiVExTIDEuMyBtLT5POiBBRVNfMTI4X0NDTV9TSEEyNTYseDI1NTE5LGVjZHNhX3NlY3A1MjFyMV9zaGE1MTIiIFwKLSAgICAgICAgICIkT19ORVhUX1NSVl9OT19DRVJUIC1jZXJ0IGRhdGFfZmlsZXMvZWNkc2Ffc2VjcDUyMXIxLmNydCAta2V5IGRhdGFfZmlsZXMvZWNkc2Ffc2VjcDUyMXIxLmtleSAtY2lwaGVyc3VpdGVzIFRMU19BRVNfMTI4X0NDTV9TSEEyNTYgLXNpZ2FsZ3MgZWNkc2Ffc2VjcDUyMXIxX3NoYTUxMiAtZ3JvdXBzIFgyNTUxOSAtbXNnIC10bHMxXzMgLW51bV90aWNrZXRzIDAgLW5vX3Jlc3VtZV9lcGhlbWVyYWwgLW5vX2NhY2hlIiBcCi0gICAgICAgICAiJFBfQ0xJIGNhX2ZpbGU9ZGF0YV9maWxlcy90ZXN0LWNhMi5jcnQgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTEyOC1DQ00tU0hBMjU2IHNpZ19hbGdzPWVjZHNhX3NlY3A1MjFyMV9zaGE1MTIgZ3JvdXBzPXgyNTUxOSIgXAorICAgICAgICAgIiRPX05FWFRfU1JWX05PX0NFUlQgLWNlcnQgJERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwNTIxcjEuY3J0IC1rZXkgJERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwNTIxcjEua2V5IC1jaXBoZXJzdWl0ZXMgVExTX0FFU18xMjhfQ0NNX1NIQTI1NiAtc2lnYWxncyBlY2RzYV9zZWNwNTIxcjFfc2hhNTEyIC1ncm91cHMgWDI1NTE5IC1tc2cgLXRsczFfMyAtbnVtX3RpY2tldHMgMCAtbm9fcmVzdW1lX2VwaGVtZXJhbCAtbm9fY2FjaGUiIFwKKyAgICAgICAgICIkUF9DTEkgY2FfZmlsZT0kREFUQV9GSUxFU19QQVRIL3Rlc3QtY2EyLmNydCBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMTI4LUNDTS1TSEEyNTYgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDUyMXIxX3NoYTUxMiBncm91cHM9eDI1NTE5IiBcCiAgICAgICAgICAwIFwKICAgICAgICAgIC1jICJIVFRQLzEuMCAyMDAgb2siIFwKICAgICAgICAgIC1jICJQcm90b2NvbCBpcyBUTFN2MS4zIiBcCkBAIC02MDQwLDggKzYwNDIsOCBAQAogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgTUJFRFRMU19YNTA5X1JTQVNTQV9QU1NfU1VQUE9SVAogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgUFNBX1dBTlRfQUxHX0VDREgKIHJ1bl90ZXN0ICJUTFMgMS4zIG0tPk86IEFFU18xMjhfQ0NNX1NIQTI1Nix4MjU1MTkscnNhX3Bzc19yc2FlX3NoYTI1NiIgXAotICAgICAgICAgIiRPX05FWFRfU1JWX05PX0NFUlQgLWNlcnQgZGF0YV9maWxlcy9zZXJ2ZXIyLXNoYTI1Ni5jcnQgLWtleSBkYXRhX2ZpbGVzL3NlcnZlcjIua2V5IC1jaXBoZXJzdWl0ZXMgVExTX0FFU18xMjhfQ0NNX1NIQTI1NiAtc2lnYWxncyByc2FfcHNzX3JzYWVfc2hhMjU2IC1ncm91cHMgWDI1NTE5IC1tc2cgLXRsczFfMyAtbnVtX3RpY2tldHMgMCAtbm9fcmVzdW1lX2VwaGVtZXJhbCAtbm9fY2FjaGUiIFwKLSAgICAgICAgICIkUF9DTEkgY2FfZmlsZT1kYXRhX2ZpbGVzL3Rlc3QtY2FfY2F0MTIuY3J0IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0xMjgtQ0NNLVNIQTI1NiBzaWdfYWxncz1yc2FfcHNzX3JzYWVfc2hhMjU2IGdyb3Vwcz14MjU1MTkiIFwKKyAgICAgICAgICIkT19ORVhUX1NSVl9OT19DRVJUIC1jZXJ0ICREQVRBX0ZJTEVTX1BBVEgvc2VydmVyMi1zaGEyNTYuY3J0IC1rZXkgJERBVEFfRklMRVNfUEFUSC9zZXJ2ZXIyLmtleSAtY2lwaGVyc3VpdGVzIFRMU19BRVNfMTI4X0NDTV9TSEEyNTYgLXNpZ2FsZ3MgcnNhX3Bzc19yc2FlX3NoYTI1NiAtZ3JvdXBzIFgyNTUxOSAtbXNnIC10bHMxXzMgLW51bV90aWNrZXRzIDAgLW5vX3Jlc3VtZV9lcGhlbWVyYWwgLW5vX2NhY2hlIiBcCisgICAgICAgICAiJFBfQ0xJIGNhX2ZpbGU9JERBVEFfRklMRVNfUEFUSC90ZXN0LWNhX2NhdDEyLmNydCBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMTI4LUNDTS1TSEEyNTYgc2lnX2FsZ3M9cnNhX3Bzc19yc2FlX3NoYTI1NiBncm91cHM9eDI1NTE5IiBcCiAgICAgICAgICAwIFwKICAgICAgICAgIC1jICJIVFRQLzEuMCAyMDAgb2siIFwKICAgICAgICAgIC1jICJQcm90b2NvbCBpcyBUTFN2MS4zIiBcCkBAIC02MDU4LDggKzYwNjAsOCBAQAogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgTUJFRFRMU19TU0xfVExTMV8zX0NPTVBBVElCSUxJVFlfTU9ERQogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgUFNBX1dBTlRfQUxHX0VDREgKIHJ1bl90ZXN0ICJUTFMgMS4zIG0tPk86IEFFU18xMjhfQ0NNX1NIQTI1Nix4NDQ4LGVjZHNhX3NlY3AyNTZyMV9zaGEyNTYiIFwKLSAgICAgICAgICIkT19ORVhUX1NSVl9OT19DRVJUIC1jZXJ0IGRhdGFfZmlsZXMvZWNkc2Ffc2VjcDI1NnIxLmNydCAta2V5IGRhdGFfZmlsZXMvZWNkc2Ffc2VjcDI1NnIxLmtleSAtY2lwaGVyc3VpdGVzIFRMU19BRVNfMTI4X0NDTV9TSEEyNTYgLXNpZ2FsZ3MgZWNkc2Ffc2VjcDI1NnIxX3NoYTI1NiAtZ3JvdXBzIFg0NDggLW1zZyAtdGxzMV8zIC1udW1fdGlja2V0cyAwIC1ub19yZXN1bWVfZXBoZW1lcmFsIC1ub19jYWNoZSIgXAotICAgICAgICAgIiRQX0NMSSBjYV9maWxlPWRhdGFfZmlsZXMvdGVzdC1jYTIuY3J0IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0xMjgtQ0NNLVNIQTI1NiBzaWdfYWxncz1lY2RzYV9zZWNwMjU2cjFfc2hhMjU2IGdyb3Vwcz14NDQ4IiBcCisgICAgICAgICAiJE9fTkVYVF9TUlZfTk9fQ0VSVCAtY2VydCAkREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3AyNTZyMS5jcnQgLWtleSAkREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3AyNTZyMS5rZXkgLWNpcGhlcnN1aXRlcyBUTFNfQUVTXzEyOF9DQ01fU0hBMjU2IC1zaWdhbGdzIGVjZHNhX3NlY3AyNTZyMV9zaGEyNTYgLWdyb3VwcyBYNDQ4IC1tc2cgLXRsczFfMyAtbnVtX3RpY2tldHMgMCAtbm9fcmVzdW1lX2VwaGVtZXJhbCAtbm9fY2FjaGUiIFwKKyAgICAgICAgICIkUF9DTEkgY2FfZmlsZT0kREFUQV9GSUxFU19QQVRIL3Rlc3QtY2EyLmNydCBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMTI4LUNDTS1TSEEyNTYgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDI1NnIxX3NoYTI1NiBncm91cHM9eDQ0OCIgXAogICAgICAgICAgMCBcCiAgICAgICAgICAtYyAiSFRUUC8xLjAgMjAwIG9rIiBcCiAgICAgICAgICAtYyAiUHJvdG9jb2wgaXMgVExTdjEuMyIgXApAQCAtNjA3Niw4ICs2MDc4LDggQEAKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIE1CRURUTFNfU1NMX1RMUzFfM19DT01QQVRJQklMSVRZX01PREUKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIFBTQV9XQU5UX0FMR19FQ0RICiBydW5fdGVzdCAiVExTIDEuMyBtLT5POiBBRVNfMTI4X0NDTV9TSEEyNTYseDQ0OCxlY2RzYV9zZWNwMzg0cjFfc2hhMzg0IiBcCi0gICAgICAgICAiJE9fTkVYVF9TUlZfTk9fQ0VSVCAtY2VydCBkYXRhX2ZpbGVzL2VjZHNhX3NlY3AzODRyMS5jcnQgLWtleSBkYXRhX2ZpbGVzL2VjZHNhX3NlY3AzODRyMS5rZXkgLWNpcGhlcnN1aXRlcyBUTFNfQUVTXzEyOF9DQ01fU0hBMjU2IC1zaWdhbGdzIGVjZHNhX3NlY3AzODRyMV9zaGEzODQgLWdyb3VwcyBYNDQ4IC1tc2cgLXRsczFfMyAtbnVtX3RpY2tldHMgMCAtbm9fcmVzdW1lX2VwaGVtZXJhbCAtbm9fY2FjaGUiIFwKLSAgICAgICAgICIkUF9DTEkgY2FfZmlsZT1kYXRhX2ZpbGVzL3Rlc3QtY2EyLmNydCBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMTI4LUNDTS1TSEEyNTYgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDM4NHIxX3NoYTM4NCBncm91cHM9eDQ0OCIgXAorICAgICAgICAgIiRPX05FWFRfU1JWX05PX0NFUlQgLWNlcnQgJERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwMzg0cjEuY3J0IC1rZXkgJERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwMzg0cjEua2V5IC1jaXBoZXJzdWl0ZXMgVExTX0FFU18xMjhfQ0NNX1NIQTI1NiAtc2lnYWxncyBlY2RzYV9zZWNwMzg0cjFfc2hhMzg0IC1ncm91cHMgWDQ0OCAtbXNnIC10bHMxXzMgLW51bV90aWNrZXRzIDAgLW5vX3Jlc3VtZV9lcGhlbWVyYWwgLW5vX2NhY2hlIiBcCisgICAgICAgICAiJFBfQ0xJIGNhX2ZpbGU9JERBVEFfRklMRVNfUEFUSC90ZXN0LWNhMi5jcnQgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTEyOC1DQ00tU0hBMjU2IHNpZ19hbGdzPWVjZHNhX3NlY3AzODRyMV9zaGEzODQgZ3JvdXBzPXg0NDgiIFwKICAgICAgICAgIDAgXAogICAgICAgICAgLWMgIkhUVFAvMS4wIDIwMCBvayIgXAogICAgICAgICAgLWMgIlByb3RvY29sIGlzIFRMU3YxLjMiIFwKQEAgLTYwOTQsOCArNjA5Niw4IEBACiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBNQkVEVExTX1NTTF9UTFMxXzNfQ09NUEFUSUJJTElUWV9NT0RFCiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBQU0FfV0FOVF9BTEdfRUNESAogcnVuX3Rlc3QgIlRMUyAxLjMgbS0+TzogQUVTXzEyOF9DQ01fU0hBMjU2LHg0NDgsZWNkc2Ffc2VjcDUyMXIxX3NoYTUxMiIgXAotICAgICAgICAgIiRPX05FWFRfU1JWX05PX0NFUlQgLWNlcnQgZGF0YV9maWxlcy9lY2RzYV9zZWNwNTIxcjEuY3J0IC1rZXkgZGF0YV9maWxlcy9lY2RzYV9zZWNwNTIxcjEua2V5IC1jaXBoZXJzdWl0ZXMgVExTX0FFU18xMjhfQ0NNX1NIQTI1NiAtc2lnYWxncyBlY2RzYV9zZWNwNTIxcjFfc2hhNTEyIC1ncm91cHMgWDQ0OCAtbXNnIC10bHMxXzMgLW51bV90aWNrZXRzIDAgLW5vX3Jlc3VtZV9lcGhlbWVyYWwgLW5vX2NhY2hlIiBcCi0gICAgICAgICAiJFBfQ0xJIGNhX2ZpbGU9ZGF0YV9maWxlcy90ZXN0LWNhMi5jcnQgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTEyOC1DQ00tU0hBMjU2IHNpZ19hbGdzPWVjZHNhX3NlY3A1MjFyMV9zaGE1MTIgZ3JvdXBzPXg0NDgiIFwKKyAgICAgICAgICIkT19ORVhUX1NSVl9OT19DRVJUIC1jZXJ0ICREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDUyMXIxLmNydCAta2V5ICREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDUyMXIxLmtleSAtY2lwaGVyc3VpdGVzIFRMU19BRVNfMTI4X0NDTV9TSEEyNTYgLXNpZ2FsZ3MgZWNkc2Ffc2VjcDUyMXIxX3NoYTUxMiAtZ3JvdXBzIFg0NDggLW1zZyAtdGxzMV8zIC1udW1fdGlja2V0cyAwIC1ub19yZXN1bWVfZXBoZW1lcmFsIC1ub19jYWNoZSIgXAorICAgICAgICAgIiRQX0NMSSBjYV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvdGVzdC1jYTIuY3J0IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0xMjgtQ0NNLVNIQTI1NiBzaWdfYWxncz1lY2RzYV9zZWNwNTIxcjFfc2hhNTEyIGdyb3Vwcz14NDQ4IiBcCiAgICAgICAgICAwIFwKICAgICAgICAgIC1jICJIVFRQLzEuMCAyMDAgb2siIFwKICAgICAgICAgIC1jICJQcm90b2NvbCBpcyBUTFN2MS4zIiBcCkBAIC02MTEzLDggKzYxMTUsOCBAQAogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgTUJFRFRMU19YNTA5X1JTQVNTQV9QU1NfU1VQUE9SVAogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgUFNBX1dBTlRfQUxHX0VDREgKIHJ1bl90ZXN0ICJUTFMgMS4zIG0tPk86IEFFU18xMjhfQ0NNX1NIQTI1Nix4NDQ4LHJzYV9wc3NfcnNhZV9zaGEyNTYiIFwKLSAgICAgICAgICIkT19ORVhUX1NSVl9OT19DRVJUIC1jZXJ0IGRhdGFfZmlsZXMvc2VydmVyMi1zaGEyNTYuY3J0IC1rZXkgZGF0YV9maWxlcy9zZXJ2ZXIyLmtleSAtY2lwaGVyc3VpdGVzIFRMU19BRVNfMTI4X0NDTV9TSEEyNTYgLXNpZ2FsZ3MgcnNhX3Bzc19yc2FlX3NoYTI1NiAtZ3JvdXBzIFg0NDggLW1zZyAtdGxzMV8zIC1udW1fdGlja2V0cyAwIC1ub19yZXN1bWVfZXBoZW1lcmFsIC1ub19jYWNoZSIgXAotICAgICAgICAgIiRQX0NMSSBjYV9maWxlPWRhdGFfZmlsZXMvdGVzdC1jYV9jYXQxMi5jcnQgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTEyOC1DQ00tU0hBMjU2IHNpZ19hbGdzPXJzYV9wc3NfcnNhZV9zaGEyNTYgZ3JvdXBzPXg0NDgiIFwKKyAgICAgICAgICIkT19ORVhUX1NSVl9OT19DRVJUIC1jZXJ0ICREQVRBX0ZJTEVTX1BBVEgvc2VydmVyMi1zaGEyNTYuY3J0IC1rZXkgJERBVEFfRklMRVNfUEFUSC9zZXJ2ZXIyLmtleSAtY2lwaGVyc3VpdGVzIFRMU19BRVNfMTI4X0NDTV9TSEEyNTYgLXNpZ2FsZ3MgcnNhX3Bzc19yc2FlX3NoYTI1NiAtZ3JvdXBzIFg0NDggLW1zZyAtdGxzMV8zIC1udW1fdGlja2V0cyAwIC1ub19yZXN1bWVfZXBoZW1lcmFsIC1ub19jYWNoZSIgXAorICAgICAgICAgIiRQX0NMSSBjYV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvdGVzdC1jYV9jYXQxMi5jcnQgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTEyOC1DQ00tU0hBMjU2IHNpZ19hbGdzPXJzYV9wc3NfcnNhZV9zaGEyNTYgZ3JvdXBzPXg0NDgiIFwKICAgICAgICAgIDAgXAogICAgICAgICAgLWMgIkhUVFAvMS4wIDIwMCBvayIgXAogICAgICAgICAgLWMgIlByb3RvY29sIGlzIFRMU3YxLjMiIFwKQEAgLTYxMzIsOCArNjEzNCw4IEBACiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBQU0FfV0FOVF9BTEdfRkZESAogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgUFNBX1dBTlRfREhfUkZDNzkxOV8yMDQ4CiBydW5fdGVzdCAiVExTIDEuMyBtLT5POiBBRVNfMTI4X0NDTV9TSEEyNTYsZmZkaGUyMDQ4LGVjZHNhX3NlY3AyNTZyMV9zaGEyNTYiIFwKLSAgICAgICAgICIkT19ORVhUX1NSVl9OT19DRVJUIC1jZXJ0IGRhdGFfZmlsZXMvZWNkc2Ffc2VjcDI1NnIxLmNydCAta2V5IGRhdGFfZmlsZXMvZWNkc2Ffc2VjcDI1NnIxLmtleSAtY2lwaGVyc3VpdGVzIFRMU19BRVNfMTI4X0NDTV9TSEEyNTYgLXNpZ2FsZ3MgZWNkc2Ffc2VjcDI1NnIxX3NoYTI1NiAtZ3JvdXBzIGZmZGhlMjA0OCAtbXNnIC10bHMxXzMgLW51bV90aWNrZXRzIDAgLW5vX3Jlc3VtZV9lcGhlbWVyYWwgLW5vX2NhY2hlIiBcCi0gICAgICAgICAiJFBfQ0xJIGNhX2ZpbGU9ZGF0YV9maWxlcy90ZXN0LWNhMi5jcnQgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTEyOC1DQ00tU0hBMjU2IHNpZ19hbGdzPWVjZHNhX3NlY3AyNTZyMV9zaGEyNTYgZ3JvdXBzPWZmZGhlMjA0OCIgXAorICAgICAgICAgIiRPX05FWFRfU1JWX05PX0NFUlQgLWNlcnQgJERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwMjU2cjEuY3J0IC1rZXkgJERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwMjU2cjEua2V5IC1jaXBoZXJzdWl0ZXMgVExTX0FFU18xMjhfQ0NNX1NIQTI1NiAtc2lnYWxncyBlY2RzYV9zZWNwMjU2cjFfc2hhMjU2IC1ncm91cHMgZmZkaGUyMDQ4IC1tc2cgLXRsczFfMyAtbnVtX3RpY2tldHMgMCAtbm9fcmVzdW1lX2VwaGVtZXJhbCAtbm9fY2FjaGUiIFwKKyAgICAgICAgICIkUF9DTEkgY2FfZmlsZT0kREFUQV9GSUxFU19QQVRIL3Rlc3QtY2EyLmNydCBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMTI4LUNDTS1TSEEyNTYgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDI1NnIxX3NoYTI1NiBncm91cHM9ZmZkaGUyMDQ4IiBcCiAgICAgICAgICAwIFwKICAgICAgICAgIC1jICJIVFRQLzEuMCAyMDAgb2siIFwKICAgICAgICAgIC1jICJQcm90b2NvbCBpcyBUTFN2MS4zIiBcCkBAIC02MTUxLDggKzYxNTMsOCBAQAogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgUFNBX1dBTlRfQUxHX0ZGREgKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIFBTQV9XQU5UX0RIX1JGQzc5MTlfMjA0OAogcnVuX3Rlc3QgIlRMUyAxLjMgbS0+TzogQUVTXzEyOF9DQ01fU0hBMjU2LGZmZGhlMjA0OCxlY2RzYV9zZWNwMzg0cjFfc2hhMzg0IiBcCi0gICAgICAgICAiJE9fTkVYVF9TUlZfTk9fQ0VSVCAtY2VydCBkYXRhX2ZpbGVzL2VjZHNhX3NlY3AzODRyMS5jcnQgLWtleSBkYXRhX2ZpbGVzL2VjZHNhX3NlY3AzODRyMS5rZXkgLWNpcGhlcnN1aXRlcyBUTFNfQUVTXzEyOF9DQ01fU0hBMjU2IC1zaWdhbGdzIGVjZHNhX3NlY3AzODRyMV9zaGEzODQgLWdyb3VwcyBmZmRoZTIwNDggLW1zZyAtdGxzMV8zIC1udW1fdGlja2V0cyAwIC1ub19yZXN1bWVfZXBoZW1lcmFsIC1ub19jYWNoZSIgXAotICAgICAgICAgIiRQX0NMSSBjYV9maWxlPWRhdGFfZmlsZXMvdGVzdC1jYTIuY3J0IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0xMjgtQ0NNLVNIQTI1NiBzaWdfYWxncz1lY2RzYV9zZWNwMzg0cjFfc2hhMzg0IGdyb3Vwcz1mZmRoZTIwNDgiIFwKKyAgICAgICAgICIkT19ORVhUX1NSVl9OT19DRVJUIC1jZXJ0ICREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDM4NHIxLmNydCAta2V5ICREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDM4NHIxLmtleSAtY2lwaGVyc3VpdGVzIFRMU19BRVNfMTI4X0NDTV9TSEEyNTYgLXNpZ2FsZ3MgZWNkc2Ffc2VjcDM4NHIxX3NoYTM4NCAtZ3JvdXBzIGZmZGhlMjA0OCAtbXNnIC10bHMxXzMgLW51bV90aWNrZXRzIDAgLW5vX3Jlc3VtZV9lcGhlbWVyYWwgLW5vX2NhY2hlIiBcCisgICAgICAgICAiJFBfQ0xJIGNhX2ZpbGU9JERBVEFfRklMRVNfUEFUSC90ZXN0LWNhMi5jcnQgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTEyOC1DQ00tU0hBMjU2IHNpZ19hbGdzPWVjZHNhX3NlY3AzODRyMV9zaGEzODQgZ3JvdXBzPWZmZGhlMjA0OCIgXAogICAgICAgICAgMCBcCiAgICAgICAgICAtYyAiSFRUUC8xLjAgMjAwIG9rIiBcCiAgICAgICAgICAtYyAiUHJvdG9jb2wgaXMgVExTdjEuMyIgXApAQCAtNjE3MCw4ICs2MTcyLDggQEAKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIFBTQV9XQU5UX0FMR19GRkRICiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBQU0FfV0FOVF9ESF9SRkM3OTE5XzIwNDgKIHJ1bl90ZXN0ICJUTFMgMS4zIG0tPk86IEFFU18xMjhfQ0NNX1NIQTI1NixmZmRoZTIwNDgsZWNkc2Ffc2VjcDUyMXIxX3NoYTUxMiIgXAotICAgICAgICAgIiRPX05FWFRfU1JWX05PX0NFUlQgLWNlcnQgZGF0YV9maWxlcy9lY2RzYV9zZWNwNTIxcjEuY3J0IC1rZXkgZGF0YV9maWxlcy9lY2RzYV9zZWNwNTIxcjEua2V5IC1jaXBoZXJzdWl0ZXMgVExTX0FFU18xMjhfQ0NNX1NIQTI1NiAtc2lnYWxncyBlY2RzYV9zZWNwNTIxcjFfc2hhNTEyIC1ncm91cHMgZmZkaGUyMDQ4IC1tc2cgLXRsczFfMyAtbnVtX3RpY2tldHMgMCAtbm9fcmVzdW1lX2VwaGVtZXJhbCAtbm9fY2FjaGUiIFwKLSAgICAgICAgICIkUF9DTEkgY2FfZmlsZT1kYXRhX2ZpbGVzL3Rlc3QtY2EyLmNydCBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMTI4LUNDTS1TSEEyNTYgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDUyMXIxX3NoYTUxMiBncm91cHM9ZmZkaGUyMDQ4IiBcCisgICAgICAgICAiJE9fTkVYVF9TUlZfTk9fQ0VSVCAtY2VydCAkREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3A1MjFyMS5jcnQgLWtleSAkREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3A1MjFyMS5rZXkgLWNpcGhlcnN1aXRlcyBUTFNfQUVTXzEyOF9DQ01fU0hBMjU2IC1zaWdhbGdzIGVjZHNhX3NlY3A1MjFyMV9zaGE1MTIgLWdyb3VwcyBmZmRoZTIwNDggLW1zZyAtdGxzMV8zIC1udW1fdGlja2V0cyAwIC1ub19yZXN1bWVfZXBoZW1lcmFsIC1ub19jYWNoZSIgXAorICAgICAgICAgIiRQX0NMSSBjYV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvdGVzdC1jYTIuY3J0IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0xMjgtQ0NNLVNIQTI1NiBzaWdfYWxncz1lY2RzYV9zZWNwNTIxcjFfc2hhNTEyIGdyb3Vwcz1mZmRoZTIwNDgiIFwKICAgICAgICAgIDAgXAogICAgICAgICAgLWMgIkhUVFAvMS4wIDIwMCBvayIgXAogICAgICAgICAgLWMgIlByb3RvY29sIGlzIFRMU3YxLjMiIFwKQEAgLTYxOTAsOCArNjE5Miw4IEBACiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBQU0FfV0FOVF9BTEdfRkZESAogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgUFNBX1dBTlRfREhfUkZDNzkxOV8yMDQ4CiBydW5fdGVzdCAiVExTIDEuMyBtLT5POiBBRVNfMTI4X0NDTV9TSEEyNTYsZmZkaGUyMDQ4LHJzYV9wc3NfcnNhZV9zaGEyNTYiIFwKLSAgICAgICAgICIkT19ORVhUX1NSVl9OT19DRVJUIC1jZXJ0IGRhdGFfZmlsZXMvc2VydmVyMi1zaGEyNTYuY3J0IC1rZXkgZGF0YV9maWxlcy9zZXJ2ZXIyLmtleSAtY2lwaGVyc3VpdGVzIFRMU19BRVNfMTI4X0NDTV9TSEEyNTYgLXNpZ2FsZ3MgcnNhX3Bzc19yc2FlX3NoYTI1NiAtZ3JvdXBzIGZmZGhlMjA0OCAtbXNnIC10bHMxXzMgLW51bV90aWNrZXRzIDAgLW5vX3Jlc3VtZV9lcGhlbWVyYWwgLW5vX2NhY2hlIiBcCi0gICAgICAgICAiJFBfQ0xJIGNhX2ZpbGU9ZGF0YV9maWxlcy90ZXN0LWNhX2NhdDEyLmNydCBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMTI4LUNDTS1TSEEyNTYgc2lnX2FsZ3M9cnNhX3Bzc19yc2FlX3NoYTI1NiBncm91cHM9ZmZkaGUyMDQ4IiBcCisgICAgICAgICAiJE9fTkVYVF9TUlZfTk9fQ0VSVCAtY2VydCAkREFUQV9GSUxFU19QQVRIL3NlcnZlcjItc2hhMjU2LmNydCAta2V5ICREQVRBX0ZJTEVTX1BBVEgvc2VydmVyMi5rZXkgLWNpcGhlcnN1aXRlcyBUTFNfQUVTXzEyOF9DQ01fU0hBMjU2IC1zaWdhbGdzIHJzYV9wc3NfcnNhZV9zaGEyNTYgLWdyb3VwcyBmZmRoZTIwNDggLW1zZyAtdGxzMV8zIC1udW1fdGlja2V0cyAwIC1ub19yZXN1bWVfZXBoZW1lcmFsIC1ub19jYWNoZSIgXAorICAgICAgICAgIiRQX0NMSSBjYV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvdGVzdC1jYV9jYXQxMi5jcnQgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTEyOC1DQ00tU0hBMjU2IHNpZ19hbGdzPXJzYV9wc3NfcnNhZV9zaGEyNTYgZ3JvdXBzPWZmZGhlMjA0OCIgXAogICAgICAgICAgMCBcCiAgICAgICAgICAtYyAiSFRUUC8xLjAgMjAwIG9rIiBcCiAgICAgICAgICAtYyAiUHJvdG9jb2wgaXMgVExTdjEuMyIgXApAQCAtNjIwOCw4ICs2MjEwLDggQEAKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIE1CRURUTFNfU1NMX1RMUzFfM19DT01QQVRJQklMSVRZX01PREUKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIFBTQV9XQU5UX0FMR19FQ0RICiBydW5fdGVzdCAiVExTIDEuMyBtLT5POiBBRVNfMTI4X0NDTV84X1NIQTI1NixzZWNwMjU2cjEsZWNkc2Ffc2VjcDI1NnIxX3NoYTI1NiIgXAotICAgICAgICAgIiRPX05FWFRfU1JWX05PX0NFUlQgLWNlcnQgZGF0YV9maWxlcy9lY2RzYV9zZWNwMjU2cjEuY3J0IC1rZXkgZGF0YV9maWxlcy9lY2RzYV9zZWNwMjU2cjEua2V5IC1jaXBoZXJzdWl0ZXMgVExTX0FFU18xMjhfQ0NNXzhfU0hBMjU2IC1zaWdhbGdzIGVjZHNhX3NlY3AyNTZyMV9zaGEyNTYgLWdyb3VwcyBQLTI1NiAtbXNnIC10bHMxXzMgLW51bV90aWNrZXRzIDAgLW5vX3Jlc3VtZV9lcGhlbWVyYWwgLW5vX2NhY2hlIiBcCi0gICAgICAgICAiJFBfQ0xJIGNhX2ZpbGU9ZGF0YV9maWxlcy90ZXN0LWNhMi5jcnQgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTEyOC1DQ00tOC1TSEEyNTYgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDI1NnIxX3NoYTI1NiBncm91cHM9c2VjcDI1NnIxIiBcCisgICAgICAgICAiJE9fTkVYVF9TUlZfTk9fQ0VSVCAtY2VydCAkREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3AyNTZyMS5jcnQgLWtleSAkREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3AyNTZyMS5rZXkgLWNpcGhlcnN1aXRlcyBUTFNfQUVTXzEyOF9DQ01fOF9TSEEyNTYgLXNpZ2FsZ3MgZWNkc2Ffc2VjcDI1NnIxX3NoYTI1NiAtZ3JvdXBzIFAtMjU2IC1tc2cgLXRsczFfMyAtbnVtX3RpY2tldHMgMCAtbm9fcmVzdW1lX2VwaGVtZXJhbCAtbm9fY2FjaGUiIFwKKyAgICAgICAgICIkUF9DTEkgY2FfZmlsZT0kREFUQV9GSUxFU19QQVRIL3Rlc3QtY2EyLmNydCBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMTI4LUNDTS04LVNIQTI1NiBzaWdfYWxncz1lY2RzYV9zZWNwMjU2cjFfc2hhMjU2IGdyb3Vwcz1zZWNwMjU2cjEiIFwKICAgICAgICAgIDAgXAogICAgICAgICAgLWMgIkhUVFAvMS4wIDIwMCBvayIgXAogICAgICAgICAgLWMgIlByb3RvY29sIGlzIFRMU3YxLjMiIFwKQEAgLTYyMjYsOCArNjIyOCw4IEBACiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBNQkVEVExTX1NTTF9UTFMxXzNfQ09NUEFUSUJJTElUWV9NT0RFCiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBQU0FfV0FOVF9BTEdfRUNESAogcnVuX3Rlc3QgIlRMUyAxLjMgbS0+TzogQUVTXzEyOF9DQ01fOF9TSEEyNTYsc2VjcDI1NnIxLGVjZHNhX3NlY3AzODRyMV9zaGEzODQiIFwKLSAgICAgICAgICIkT19ORVhUX1NSVl9OT19DRVJUIC1jZXJ0IGRhdGFfZmlsZXMvZWNkc2Ffc2VjcDM4NHIxLmNydCAta2V5IGRhdGFfZmlsZXMvZWNkc2Ffc2VjcDM4NHIxLmtleSAtY2lwaGVyc3VpdGVzIFRMU19BRVNfMTI4X0NDTV84X1NIQTI1NiAtc2lnYWxncyBlY2RzYV9zZWNwMzg0cjFfc2hhMzg0IC1ncm91cHMgUC0yNTYgLW1zZyAtdGxzMV8zIC1udW1fdGlja2V0cyAwIC1ub19yZXN1bWVfZXBoZW1lcmFsIC1ub19jYWNoZSIgXAotICAgICAgICAgIiRQX0NMSSBjYV9maWxlPWRhdGFfZmlsZXMvdGVzdC1jYTIuY3J0IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0xMjgtQ0NNLTgtU0hBMjU2IHNpZ19hbGdzPWVjZHNhX3NlY3AzODRyMV9zaGEzODQgZ3JvdXBzPXNlY3AyNTZyMSIgXAorICAgICAgICAgIiRPX05FWFRfU1JWX05PX0NFUlQgLWNlcnQgJERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwMzg0cjEuY3J0IC1rZXkgJERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwMzg0cjEua2V5IC1jaXBoZXJzdWl0ZXMgVExTX0FFU18xMjhfQ0NNXzhfU0hBMjU2IC1zaWdhbGdzIGVjZHNhX3NlY3AzODRyMV9zaGEzODQgLWdyb3VwcyBQLTI1NiAtbXNnIC10bHMxXzMgLW51bV90aWNrZXRzIDAgLW5vX3Jlc3VtZV9lcGhlbWVyYWwgLW5vX2NhY2hlIiBcCisgICAgICAgICAiJFBfQ0xJIGNhX2ZpbGU9JERBVEFfRklMRVNfUEFUSC90ZXN0LWNhMi5jcnQgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTEyOC1DQ00tOC1TSEEyNTYgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDM4NHIxX3NoYTM4NCBncm91cHM9c2VjcDI1NnIxIiBcCiAgICAgICAgICAwIFwKICAgICAgICAgIC1jICJIVFRQLzEuMCAyMDAgb2siIFwKICAgICAgICAgIC1jICJQcm90b2NvbCBpcyBUTFN2MS4zIiBcCkBAIC02MjQ0LDggKzYyNDYsOCBAQAogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgTUJFRFRMU19TU0xfVExTMV8zX0NPTVBBVElCSUxJVFlfTU9ERQogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgUFNBX1dBTlRfQUxHX0VDREgKIHJ1bl90ZXN0ICJUTFMgMS4zIG0tPk86IEFFU18xMjhfQ0NNXzhfU0hBMjU2LHNlY3AyNTZyMSxlY2RzYV9zZWNwNTIxcjFfc2hhNTEyIiBcCi0gICAgICAgICAiJE9fTkVYVF9TUlZfTk9fQ0VSVCAtY2VydCBkYXRhX2ZpbGVzL2VjZHNhX3NlY3A1MjFyMS5jcnQgLWtleSBkYXRhX2ZpbGVzL2VjZHNhX3NlY3A1MjFyMS5rZXkgLWNpcGhlcnN1aXRlcyBUTFNfQUVTXzEyOF9DQ01fOF9TSEEyNTYgLXNpZ2FsZ3MgZWNkc2Ffc2VjcDUyMXIxX3NoYTUxMiAtZ3JvdXBzIFAtMjU2IC1tc2cgLXRsczFfMyAtbnVtX3RpY2tldHMgMCAtbm9fcmVzdW1lX2VwaGVtZXJhbCAtbm9fY2FjaGUiIFwKLSAgICAgICAgICIkUF9DTEkgY2FfZmlsZT1kYXRhX2ZpbGVzL3Rlc3QtY2EyLmNydCBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMTI4LUNDTS04LVNIQTI1NiBzaWdfYWxncz1lY2RzYV9zZWNwNTIxcjFfc2hhNTEyIGdyb3Vwcz1zZWNwMjU2cjEiIFwKKyAgICAgICAgICIkT19ORVhUX1NSVl9OT19DRVJUIC1jZXJ0ICREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDUyMXIxLmNydCAta2V5ICREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDUyMXIxLmtleSAtY2lwaGVyc3VpdGVzIFRMU19BRVNfMTI4X0NDTV84X1NIQTI1NiAtc2lnYWxncyBlY2RzYV9zZWNwNTIxcjFfc2hhNTEyIC1ncm91cHMgUC0yNTYgLW1zZyAtdGxzMV8zIC1udW1fdGlja2V0cyAwIC1ub19yZXN1bWVfZXBoZW1lcmFsIC1ub19jYWNoZSIgXAorICAgICAgICAgIiRQX0NMSSBjYV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvdGVzdC1jYTIuY3J0IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0xMjgtQ0NNLTgtU0hBMjU2IHNpZ19hbGdzPWVjZHNhX3NlY3A1MjFyMV9zaGE1MTIgZ3JvdXBzPXNlY3AyNTZyMSIgXAogICAgICAgICAgMCBcCiAgICAgICAgICAtYyAiSFRUUC8xLjAgMjAwIG9rIiBcCiAgICAgICAgICAtYyAiUHJvdG9jb2wgaXMgVExTdjEuMyIgXApAQCAtNjI2Myw4ICs2MjY1LDggQEAKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIE1CRURUTFNfWDUwOV9SU0FTU0FfUFNTX1NVUFBPUlQKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIFBTQV9XQU5UX0FMR19FQ0RICiBydW5fdGVzdCAiVExTIDEuMyBtLT5POiBBRVNfMTI4X0NDTV84X1NIQTI1NixzZWNwMjU2cjEscnNhX3Bzc19yc2FlX3NoYTI1NiIgXAotICAgICAgICAgIiRPX05FWFRfU1JWX05PX0NFUlQgLWNlcnQgZGF0YV9maWxlcy9zZXJ2ZXIyLXNoYTI1Ni5jcnQgLWtleSBkYXRhX2ZpbGVzL3NlcnZlcjIua2V5IC1jaXBoZXJzdWl0ZXMgVExTX0FFU18xMjhfQ0NNXzhfU0hBMjU2IC1zaWdhbGdzIHJzYV9wc3NfcnNhZV9zaGEyNTYgLWdyb3VwcyBQLTI1NiAtbXNnIC10bHMxXzMgLW51bV90aWNrZXRzIDAgLW5vX3Jlc3VtZV9lcGhlbWVyYWwgLW5vX2NhY2hlIiBcCi0gICAgICAgICAiJFBfQ0xJIGNhX2ZpbGU9ZGF0YV9maWxlcy90ZXN0LWNhX2NhdDEyLmNydCBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMTI4LUNDTS04LVNIQTI1NiBzaWdfYWxncz1yc2FfcHNzX3JzYWVfc2hhMjU2IGdyb3Vwcz1zZWNwMjU2cjEiIFwKKyAgICAgICAgICIkT19ORVhUX1NSVl9OT19DRVJUIC1jZXJ0ICREQVRBX0ZJTEVTX1BBVEgvc2VydmVyMi1zaGEyNTYuY3J0IC1rZXkgJERBVEFfRklMRVNfUEFUSC9zZXJ2ZXIyLmtleSAtY2lwaGVyc3VpdGVzIFRMU19BRVNfMTI4X0NDTV84X1NIQTI1NiAtc2lnYWxncyByc2FfcHNzX3JzYWVfc2hhMjU2IC1ncm91cHMgUC0yNTYgLW1zZyAtdGxzMV8zIC1udW1fdGlja2V0cyAwIC1ub19yZXN1bWVfZXBoZW1lcmFsIC1ub19jYWNoZSIgXAorICAgICAgICAgIiRQX0NMSSBjYV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvdGVzdC1jYV9jYXQxMi5jcnQgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTEyOC1DQ00tOC1TSEEyNTYgc2lnX2FsZ3M9cnNhX3Bzc19yc2FlX3NoYTI1NiBncm91cHM9c2VjcDI1NnIxIiBcCiAgICAgICAgICAwIFwKICAgICAgICAgIC1jICJIVFRQLzEuMCAyMDAgb2siIFwKICAgICAgICAgIC1jICJQcm90b2NvbCBpcyBUTFN2MS4zIiBcCkBAIC02MjgxLDggKzYyODMsOCBAQAogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgTUJFRFRMU19TU0xfVExTMV8zX0NPTVBBVElCSUxJVFlfTU9ERQogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgUFNBX1dBTlRfQUxHX0VDREgKIHJ1bl90ZXN0ICJUTFMgMS4zIG0tPk86IEFFU18xMjhfQ0NNXzhfU0hBMjU2LHNlY3AzODRyMSxlY2RzYV9zZWNwMjU2cjFfc2hhMjU2IiBcCi0gICAgICAgICAiJE9fTkVYVF9TUlZfTk9fQ0VSVCAtY2VydCBkYXRhX2ZpbGVzL2VjZHNhX3NlY3AyNTZyMS5jcnQgLWtleSBkYXRhX2ZpbGVzL2VjZHNhX3NlY3AyNTZyMS5rZXkgLWNpcGhlcnN1aXRlcyBUTFNfQUVTXzEyOF9DQ01fOF9TSEEyNTYgLXNpZ2FsZ3MgZWNkc2Ffc2VjcDI1NnIxX3NoYTI1NiAtZ3JvdXBzIFAtMzg0IC1tc2cgLXRsczFfMyAtbnVtX3RpY2tldHMgMCAtbm9fcmVzdW1lX2VwaGVtZXJhbCAtbm9fY2FjaGUiIFwKLSAgICAgICAgICIkUF9DTEkgY2FfZmlsZT1kYXRhX2ZpbGVzL3Rlc3QtY2EyLmNydCBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMTI4LUNDTS04LVNIQTI1NiBzaWdfYWxncz1lY2RzYV9zZWNwMjU2cjFfc2hhMjU2IGdyb3Vwcz1zZWNwMzg0cjEiIFwKKyAgICAgICAgICIkT19ORVhUX1NSVl9OT19DRVJUIC1jZXJ0ICREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDI1NnIxLmNydCAta2V5ICREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDI1NnIxLmtleSAtY2lwaGVyc3VpdGVzIFRMU19BRVNfMTI4X0NDTV84X1NIQTI1NiAtc2lnYWxncyBlY2RzYV9zZWNwMjU2cjFfc2hhMjU2IC1ncm91cHMgUC0zODQgLW1zZyAtdGxzMV8zIC1udW1fdGlja2V0cyAwIC1ub19yZXN1bWVfZXBoZW1lcmFsIC1ub19jYWNoZSIgXAorICAgICAgICAgIiRQX0NMSSBjYV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvdGVzdC1jYTIuY3J0IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0xMjgtQ0NNLTgtU0hBMjU2IHNpZ19hbGdzPWVjZHNhX3NlY3AyNTZyMV9zaGEyNTYgZ3JvdXBzPXNlY3AzODRyMSIgXAogICAgICAgICAgMCBcCiAgICAgICAgICAtYyAiSFRUUC8xLjAgMjAwIG9rIiBcCiAgICAgICAgICAtYyAiUHJvdG9jb2wgaXMgVExTdjEuMyIgXApAQCAtNjI5OSw4ICs2MzAxLDggQEAKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIE1CRURUTFNfU1NMX1RMUzFfM19DT01QQVRJQklMSVRZX01PREUKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIFBTQV9XQU5UX0FMR19FQ0RICiBydW5fdGVzdCAiVExTIDEuMyBtLT5POiBBRVNfMTI4X0NDTV84X1NIQTI1NixzZWNwMzg0cjEsZWNkc2Ffc2VjcDM4NHIxX3NoYTM4NCIgXAotICAgICAgICAgIiRPX05FWFRfU1JWX05PX0NFUlQgLWNlcnQgZGF0YV9maWxlcy9lY2RzYV9zZWNwMzg0cjEuY3J0IC1rZXkgZGF0YV9maWxlcy9lY2RzYV9zZWNwMzg0cjEua2V5IC1jaXBoZXJzdWl0ZXMgVExTX0FFU18xMjhfQ0NNXzhfU0hBMjU2IC1zaWdhbGdzIGVjZHNhX3NlY3AzODRyMV9zaGEzODQgLWdyb3VwcyBQLTM4NCAtbXNnIC10bHMxXzMgLW51bV90aWNrZXRzIDAgLW5vX3Jlc3VtZV9lcGhlbWVyYWwgLW5vX2NhY2hlIiBcCi0gICAgICAgICAiJFBfQ0xJIGNhX2ZpbGU9ZGF0YV9maWxlcy90ZXN0LWNhMi5jcnQgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTEyOC1DQ00tOC1TSEEyNTYgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDM4NHIxX3NoYTM4NCBncm91cHM9c2VjcDM4NHIxIiBcCisgICAgICAgICAiJE9fTkVYVF9TUlZfTk9fQ0VSVCAtY2VydCAkREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3AzODRyMS5jcnQgLWtleSAkREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3AzODRyMS5rZXkgLWNpcGhlcnN1aXRlcyBUTFNfQUVTXzEyOF9DQ01fOF9TSEEyNTYgLXNpZ2FsZ3MgZWNkc2Ffc2VjcDM4NHIxX3NoYTM4NCAtZ3JvdXBzIFAtMzg0IC1tc2cgLXRsczFfMyAtbnVtX3RpY2tldHMgMCAtbm9fcmVzdW1lX2VwaGVtZXJhbCAtbm9fY2FjaGUiIFwKKyAgICAgICAgICIkUF9DTEkgY2FfZmlsZT0kREFUQV9GSUxFU19QQVRIL3Rlc3QtY2EyLmNydCBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMTI4LUNDTS04LVNIQTI1NiBzaWdfYWxncz1lY2RzYV9zZWNwMzg0cjFfc2hhMzg0IGdyb3Vwcz1zZWNwMzg0cjEiIFwKICAgICAgICAgIDAgXAogICAgICAgICAgLWMgIkhUVFAvMS4wIDIwMCBvayIgXAogICAgICAgICAgLWMgIlByb3RvY29sIGlzIFRMU3YxLjMiIFwKQEAgLTYzMTcsOCArNjMxOSw4IEBACiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBNQkVEVExTX1NTTF9UTFMxXzNfQ09NUEFUSUJJTElUWV9NT0RFCiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBQU0FfV0FOVF9BTEdfRUNESAogcnVuX3Rlc3QgIlRMUyAxLjMgbS0+TzogQUVTXzEyOF9DQ01fOF9TSEEyNTYsc2VjcDM4NHIxLGVjZHNhX3NlY3A1MjFyMV9zaGE1MTIiIFwKLSAgICAgICAgICIkT19ORVhUX1NSVl9OT19DRVJUIC1jZXJ0IGRhdGFfZmlsZXMvZWNkc2Ffc2VjcDUyMXIxLmNydCAta2V5IGRhdGFfZmlsZXMvZWNkc2Ffc2VjcDUyMXIxLmtleSAtY2lwaGVyc3VpdGVzIFRMU19BRVNfMTI4X0NDTV84X1NIQTI1NiAtc2lnYWxncyBlY2RzYV9zZWNwNTIxcjFfc2hhNTEyIC1ncm91cHMgUC0zODQgLW1zZyAtdGxzMV8zIC1udW1fdGlja2V0cyAwIC1ub19yZXN1bWVfZXBoZW1lcmFsIC1ub19jYWNoZSIgXAotICAgICAgICAgIiRQX0NMSSBjYV9maWxlPWRhdGFfZmlsZXMvdGVzdC1jYTIuY3J0IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0xMjgtQ0NNLTgtU0hBMjU2IHNpZ19hbGdzPWVjZHNhX3NlY3A1MjFyMV9zaGE1MTIgZ3JvdXBzPXNlY3AzODRyMSIgXAorICAgICAgICAgIiRPX05FWFRfU1JWX05PX0NFUlQgLWNlcnQgJERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwNTIxcjEuY3J0IC1rZXkgJERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwNTIxcjEua2V5IC1jaXBoZXJzdWl0ZXMgVExTX0FFU18xMjhfQ0NNXzhfU0hBMjU2IC1zaWdhbGdzIGVjZHNhX3NlY3A1MjFyMV9zaGE1MTIgLWdyb3VwcyBQLTM4NCAtbXNnIC10bHMxXzMgLW51bV90aWNrZXRzIDAgLW5vX3Jlc3VtZV9lcGhlbWVyYWwgLW5vX2NhY2hlIiBcCisgICAgICAgICAiJFBfQ0xJIGNhX2ZpbGU9JERBVEFfRklMRVNfUEFUSC90ZXN0LWNhMi5jcnQgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTEyOC1DQ00tOC1TSEEyNTYgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDUyMXIxX3NoYTUxMiBncm91cHM9c2VjcDM4NHIxIiBcCiAgICAgICAgICAwIFwKICAgICAgICAgIC1jICJIVFRQLzEuMCAyMDAgb2siIFwKICAgICAgICAgIC1jICJQcm90b2NvbCBpcyBUTFN2MS4zIiBcCkBAIC02MzM2LDggKzYzMzgsOCBAQAogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgTUJFRFRMU19YNTA5X1JTQVNTQV9QU1NfU1VQUE9SVAogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgUFNBX1dBTlRfQUxHX0VDREgKIHJ1bl90ZXN0ICJUTFMgMS4zIG0tPk86IEFFU18xMjhfQ0NNXzhfU0hBMjU2LHNlY3AzODRyMSxyc2FfcHNzX3JzYWVfc2hhMjU2IiBcCi0gICAgICAgICAiJE9fTkVYVF9TUlZfTk9fQ0VSVCAtY2VydCBkYXRhX2ZpbGVzL3NlcnZlcjItc2hhMjU2LmNydCAta2V5IGRhdGFfZmlsZXMvc2VydmVyMi5rZXkgLWNpcGhlcnN1aXRlcyBUTFNfQUVTXzEyOF9DQ01fOF9TSEEyNTYgLXNpZ2FsZ3MgcnNhX3Bzc19yc2FlX3NoYTI1NiAtZ3JvdXBzIFAtMzg0IC1tc2cgLXRsczFfMyAtbnVtX3RpY2tldHMgMCAtbm9fcmVzdW1lX2VwaGVtZXJhbCAtbm9fY2FjaGUiIFwKLSAgICAgICAgICIkUF9DTEkgY2FfZmlsZT1kYXRhX2ZpbGVzL3Rlc3QtY2FfY2F0MTIuY3J0IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0xMjgtQ0NNLTgtU0hBMjU2IHNpZ19hbGdzPXJzYV9wc3NfcnNhZV9zaGEyNTYgZ3JvdXBzPXNlY3AzODRyMSIgXAorICAgICAgICAgIiRPX05FWFRfU1JWX05PX0NFUlQgLWNlcnQgJERBVEFfRklMRVNfUEFUSC9zZXJ2ZXIyLXNoYTI1Ni5jcnQgLWtleSAkREFUQV9GSUxFU19QQVRIL3NlcnZlcjIua2V5IC1jaXBoZXJzdWl0ZXMgVExTX0FFU18xMjhfQ0NNXzhfU0hBMjU2IC1zaWdhbGdzIHJzYV9wc3NfcnNhZV9zaGEyNTYgLWdyb3VwcyBQLTM4NCAtbXNnIC10bHMxXzMgLW51bV90aWNrZXRzIDAgLW5vX3Jlc3VtZV9lcGhlbWVyYWwgLW5vX2NhY2hlIiBcCisgICAgICAgICAiJFBfQ0xJIGNhX2ZpbGU9JERBVEFfRklMRVNfUEFUSC90ZXN0LWNhX2NhdDEyLmNydCBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMTI4LUNDTS04LVNIQTI1NiBzaWdfYWxncz1yc2FfcHNzX3JzYWVfc2hhMjU2IGdyb3Vwcz1zZWNwMzg0cjEiIFwKICAgICAgICAgIDAgXAogICAgICAgICAgLWMgIkhUVFAvMS4wIDIwMCBvayIgXAogICAgICAgICAgLWMgIlByb3RvY29sIGlzIFRMU3YxLjMiIFwKQEAgLTYzNTQsOCArNjM1Niw4IEBACiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBNQkVEVExTX1NTTF9UTFMxXzNfQ09NUEFUSUJJTElUWV9NT0RFCiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBQU0FfV0FOVF9BTEdfRUNESAogcnVuX3Rlc3QgIlRMUyAxLjMgbS0+TzogQUVTXzEyOF9DQ01fOF9TSEEyNTYsc2VjcDUyMXIxLGVjZHNhX3NlY3AyNTZyMV9zaGEyNTYiIFwKLSAgICAgICAgICIkT19ORVhUX1NSVl9OT19DRVJUIC1jZXJ0IGRhdGFfZmlsZXMvZWNkc2Ffc2VjcDI1NnIxLmNydCAta2V5IGRhdGFfZmlsZXMvZWNkc2Ffc2VjcDI1NnIxLmtleSAtY2lwaGVyc3VpdGVzIFRMU19BRVNfMTI4X0NDTV84X1NIQTI1NiAtc2lnYWxncyBlY2RzYV9zZWNwMjU2cjFfc2hhMjU2IC1ncm91cHMgUC01MjEgLW1zZyAtdGxzMV8zIC1udW1fdGlja2V0cyAwIC1ub19yZXN1bWVfZXBoZW1lcmFsIC1ub19jYWNoZSIgXAotICAgICAgICAgIiRQX0NMSSBjYV9maWxlPWRhdGFfZmlsZXMvdGVzdC1jYTIuY3J0IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0xMjgtQ0NNLTgtU0hBMjU2IHNpZ19hbGdzPWVjZHNhX3NlY3AyNTZyMV9zaGEyNTYgZ3JvdXBzPXNlY3A1MjFyMSIgXAorICAgICAgICAgIiRPX05FWFRfU1JWX05PX0NFUlQgLWNlcnQgJERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwMjU2cjEuY3J0IC1rZXkgJERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwMjU2cjEua2V5IC1jaXBoZXJzdWl0ZXMgVExTX0FFU18xMjhfQ0NNXzhfU0hBMjU2IC1zaWdhbGdzIGVjZHNhX3NlY3AyNTZyMV9zaGEyNTYgLWdyb3VwcyBQLTUyMSAtbXNnIC10bHMxXzMgLW51bV90aWNrZXRzIDAgLW5vX3Jlc3VtZV9lcGhlbWVyYWwgLW5vX2NhY2hlIiBcCisgICAgICAgICAiJFBfQ0xJIGNhX2ZpbGU9JERBVEFfRklMRVNfUEFUSC90ZXN0LWNhMi5jcnQgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTEyOC1DQ00tOC1TSEEyNTYgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDI1NnIxX3NoYTI1NiBncm91cHM9c2VjcDUyMXIxIiBcCiAgICAgICAgICAwIFwKICAgICAgICAgIC1jICJIVFRQLzEuMCAyMDAgb2siIFwKICAgICAgICAgIC1jICJQcm90b2NvbCBpcyBUTFN2MS4zIiBcCkBAIC02MzcyLDggKzYzNzQsOCBAQAogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgTUJFRFRMU19TU0xfVExTMV8zX0NPTVBBVElCSUxJVFlfTU9ERQogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgUFNBX1dBTlRfQUxHX0VDREgKIHJ1bl90ZXN0ICJUTFMgMS4zIG0tPk86IEFFU18xMjhfQ0NNXzhfU0hBMjU2LHNlY3A1MjFyMSxlY2RzYV9zZWNwMzg0cjFfc2hhMzg0IiBcCi0gICAgICAgICAiJE9fTkVYVF9TUlZfTk9fQ0VSVCAtY2VydCBkYXRhX2ZpbGVzL2VjZHNhX3NlY3AzODRyMS5jcnQgLWtleSBkYXRhX2ZpbGVzL2VjZHNhX3NlY3AzODRyMS5rZXkgLWNpcGhlcnN1aXRlcyBUTFNfQUVTXzEyOF9DQ01fOF9TSEEyNTYgLXNpZ2FsZ3MgZWNkc2Ffc2VjcDM4NHIxX3NoYTM4NCAtZ3JvdXBzIFAtNTIxIC1tc2cgLXRsczFfMyAtbnVtX3RpY2tldHMgMCAtbm9fcmVzdW1lX2VwaGVtZXJhbCAtbm9fY2FjaGUiIFwKLSAgICAgICAgICIkUF9DTEkgY2FfZmlsZT1kYXRhX2ZpbGVzL3Rlc3QtY2EyLmNydCBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMTI4LUNDTS04LVNIQTI1NiBzaWdfYWxncz1lY2RzYV9zZWNwMzg0cjFfc2hhMzg0IGdyb3Vwcz1zZWNwNTIxcjEiIFwKKyAgICAgICAgICIkT19ORVhUX1NSVl9OT19DRVJUIC1jZXJ0ICREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDM4NHIxLmNydCAta2V5ICREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDM4NHIxLmtleSAtY2lwaGVyc3VpdGVzIFRMU19BRVNfMTI4X0NDTV84X1NIQTI1NiAtc2lnYWxncyBlY2RzYV9zZWNwMzg0cjFfc2hhMzg0IC1ncm91cHMgUC01MjEgLW1zZyAtdGxzMV8zIC1udW1fdGlja2V0cyAwIC1ub19yZXN1bWVfZXBoZW1lcmFsIC1ub19jYWNoZSIgXAorICAgICAgICAgIiRQX0NMSSBjYV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvdGVzdC1jYTIuY3J0IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0xMjgtQ0NNLTgtU0hBMjU2IHNpZ19hbGdzPWVjZHNhX3NlY3AzODRyMV9zaGEzODQgZ3JvdXBzPXNlY3A1MjFyMSIgXAogICAgICAgICAgMCBcCiAgICAgICAgICAtYyAiSFRUUC8xLjAgMjAwIG9rIiBcCiAgICAgICAgICAtYyAiUHJvdG9jb2wgaXMgVExTdjEuMyIgXApAQCAtNjM5MCw4ICs2MzkyLDggQEAKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIE1CRURUTFNfU1NMX1RMUzFfM19DT01QQVRJQklMSVRZX01PREUKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIFBTQV9XQU5UX0FMR19FQ0RICiBydW5fdGVzdCAiVExTIDEuMyBtLT5POiBBRVNfMTI4X0NDTV84X1NIQTI1NixzZWNwNTIxcjEsZWNkc2Ffc2VjcDUyMXIxX3NoYTUxMiIgXAotICAgICAgICAgIiRPX05FWFRfU1JWX05PX0NFUlQgLWNlcnQgZGF0YV9maWxlcy9lY2RzYV9zZWNwNTIxcjEuY3J0IC1rZXkgZGF0YV9maWxlcy9lY2RzYV9zZWNwNTIxcjEua2V5IC1jaXBoZXJzdWl0ZXMgVExTX0FFU18xMjhfQ0NNXzhfU0hBMjU2IC1zaWdhbGdzIGVjZHNhX3NlY3A1MjFyMV9zaGE1MTIgLWdyb3VwcyBQLTUyMSAtbXNnIC10bHMxXzMgLW51bV90aWNrZXRzIDAgLW5vX3Jlc3VtZV9lcGhlbWVyYWwgLW5vX2NhY2hlIiBcCi0gICAgICAgICAiJFBfQ0xJIGNhX2ZpbGU9ZGF0YV9maWxlcy90ZXN0LWNhMi5jcnQgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTEyOC1DQ00tOC1TSEEyNTYgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDUyMXIxX3NoYTUxMiBncm91cHM9c2VjcDUyMXIxIiBcCisgICAgICAgICAiJE9fTkVYVF9TUlZfTk9fQ0VSVCAtY2VydCAkREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3A1MjFyMS5jcnQgLWtleSAkREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3A1MjFyMS5rZXkgLWNpcGhlcnN1aXRlcyBUTFNfQUVTXzEyOF9DQ01fOF9TSEEyNTYgLXNpZ2FsZ3MgZWNkc2Ffc2VjcDUyMXIxX3NoYTUxMiAtZ3JvdXBzIFAtNTIxIC1tc2cgLXRsczFfMyAtbnVtX3RpY2tldHMgMCAtbm9fcmVzdW1lX2VwaGVtZXJhbCAtbm9fY2FjaGUiIFwKKyAgICAgICAgICIkUF9DTEkgY2FfZmlsZT0kREFUQV9GSUxFU19QQVRIL3Rlc3QtY2EyLmNydCBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMTI4LUNDTS04LVNIQTI1NiBzaWdfYWxncz1lY2RzYV9zZWNwNTIxcjFfc2hhNTEyIGdyb3Vwcz1zZWNwNTIxcjEiIFwKICAgICAgICAgIDAgXAogICAgICAgICAgLWMgIkhUVFAvMS4wIDIwMCBvayIgXAogICAgICAgICAgLWMgIlByb3RvY29sIGlzIFRMU3YxLjMiIFwKQEAgLTY0MDksOCArNjQxMSw4IEBACiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBNQkVEVExTX1g1MDlfUlNBU1NBX1BTU19TVVBQT1JUCiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBQU0FfV0FOVF9BTEdfRUNESAogcnVuX3Rlc3QgIlRMUyAxLjMgbS0+TzogQUVTXzEyOF9DQ01fOF9TSEEyNTYsc2VjcDUyMXIxLHJzYV9wc3NfcnNhZV9zaGEyNTYiIFwKLSAgICAgICAgICIkT19ORVhUX1NSVl9OT19DRVJUIC1jZXJ0IGRhdGFfZmlsZXMvc2VydmVyMi1zaGEyNTYuY3J0IC1rZXkgZGF0YV9maWxlcy9zZXJ2ZXIyLmtleSAtY2lwaGVyc3VpdGVzIFRMU19BRVNfMTI4X0NDTV84X1NIQTI1NiAtc2lnYWxncyByc2FfcHNzX3JzYWVfc2hhMjU2IC1ncm91cHMgUC01MjEgLW1zZyAtdGxzMV8zIC1udW1fdGlja2V0cyAwIC1ub19yZXN1bWVfZXBoZW1lcmFsIC1ub19jYWNoZSIgXAotICAgICAgICAgIiRQX0NMSSBjYV9maWxlPWRhdGFfZmlsZXMvdGVzdC1jYV9jYXQxMi5jcnQgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTEyOC1DQ00tOC1TSEEyNTYgc2lnX2FsZ3M9cnNhX3Bzc19yc2FlX3NoYTI1NiBncm91cHM9c2VjcDUyMXIxIiBcCisgICAgICAgICAiJE9fTkVYVF9TUlZfTk9fQ0VSVCAtY2VydCAkREFUQV9GSUxFU19QQVRIL3NlcnZlcjItc2hhMjU2LmNydCAta2V5ICREQVRBX0ZJTEVTX1BBVEgvc2VydmVyMi5rZXkgLWNpcGhlcnN1aXRlcyBUTFNfQUVTXzEyOF9DQ01fOF9TSEEyNTYgLXNpZ2FsZ3MgcnNhX3Bzc19yc2FlX3NoYTI1NiAtZ3JvdXBzIFAtNTIxIC1tc2cgLXRsczFfMyAtbnVtX3RpY2tldHMgMCAtbm9fcmVzdW1lX2VwaGVtZXJhbCAtbm9fY2FjaGUiIFwKKyAgICAgICAgICIkUF9DTEkgY2FfZmlsZT0kREFUQV9GSUxFU19QQVRIL3Rlc3QtY2FfY2F0MTIuY3J0IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0xMjgtQ0NNLTgtU0hBMjU2IHNpZ19hbGdzPXJzYV9wc3NfcnNhZV9zaGEyNTYgZ3JvdXBzPXNlY3A1MjFyMSIgXAogICAgICAgICAgMCBcCiAgICAgICAgICAtYyAiSFRUUC8xLjAgMjAwIG9rIiBcCiAgICAgICAgICAtYyAiUHJvdG9jb2wgaXMgVExTdjEuMyIgXApAQCAtNjQyNyw4ICs2NDI5LDggQEAKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIE1CRURUTFNfU1NMX1RMUzFfM19DT01QQVRJQklMSVRZX01PREUKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIFBTQV9XQU5UX0FMR19FQ0RICiBydW5fdGVzdCAiVExTIDEuMyBtLT5POiBBRVNfMTI4X0NDTV84X1NIQTI1Nix4MjU1MTksZWNkc2Ffc2VjcDI1NnIxX3NoYTI1NiIgXAotICAgICAgICAgIiRPX05FWFRfU1JWX05PX0NFUlQgLWNlcnQgZGF0YV9maWxlcy9lY2RzYV9zZWNwMjU2cjEuY3J0IC1rZXkgZGF0YV9maWxlcy9lY2RzYV9zZWNwMjU2cjEua2V5IC1jaXBoZXJzdWl0ZXMgVExTX0FFU18xMjhfQ0NNXzhfU0hBMjU2IC1zaWdhbGdzIGVjZHNhX3NlY3AyNTZyMV9zaGEyNTYgLWdyb3VwcyBYMjU1MTkgLW1zZyAtdGxzMV8zIC1udW1fdGlja2V0cyAwIC1ub19yZXN1bWVfZXBoZW1lcmFsIC1ub19jYWNoZSIgXAotICAgICAgICAgIiRQX0NMSSBjYV9maWxlPWRhdGFfZmlsZXMvdGVzdC1jYTIuY3J0IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0xMjgtQ0NNLTgtU0hBMjU2IHNpZ19hbGdzPWVjZHNhX3NlY3AyNTZyMV9zaGEyNTYgZ3JvdXBzPXgyNTUxOSIgXAorICAgICAgICAgIiRPX05FWFRfU1JWX05PX0NFUlQgLWNlcnQgJERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwMjU2cjEuY3J0IC1rZXkgJERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwMjU2cjEua2V5IC1jaXBoZXJzdWl0ZXMgVExTX0FFU18xMjhfQ0NNXzhfU0hBMjU2IC1zaWdhbGdzIGVjZHNhX3NlY3AyNTZyMV9zaGEyNTYgLWdyb3VwcyBYMjU1MTkgLW1zZyAtdGxzMV8zIC1udW1fdGlja2V0cyAwIC1ub19yZXN1bWVfZXBoZW1lcmFsIC1ub19jYWNoZSIgXAorICAgICAgICAgIiRQX0NMSSBjYV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvdGVzdC1jYTIuY3J0IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0xMjgtQ0NNLTgtU0hBMjU2IHNpZ19hbGdzPWVjZHNhX3NlY3AyNTZyMV9zaGEyNTYgZ3JvdXBzPXgyNTUxOSIgXAogICAgICAgICAgMCBcCiAgICAgICAgICAtYyAiSFRUUC8xLjAgMjAwIG9rIiBcCiAgICAgICAgICAtYyAiUHJvdG9jb2wgaXMgVExTdjEuMyIgXApAQCAtNjQ0NSw4ICs2NDQ3LDggQEAKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIE1CRURUTFNfU1NMX1RMUzFfM19DT01QQVRJQklMSVRZX01PREUKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIFBTQV9XQU5UX0FMR19FQ0RICiBydW5fdGVzdCAiVExTIDEuMyBtLT5POiBBRVNfMTI4X0NDTV84X1NIQTI1Nix4MjU1MTksZWNkc2Ffc2VjcDM4NHIxX3NoYTM4NCIgXAotICAgICAgICAgIiRPX05FWFRfU1JWX05PX0NFUlQgLWNlcnQgZGF0YV9maWxlcy9lY2RzYV9zZWNwMzg0cjEuY3J0IC1rZXkgZGF0YV9maWxlcy9lY2RzYV9zZWNwMzg0cjEua2V5IC1jaXBoZXJzdWl0ZXMgVExTX0FFU18xMjhfQ0NNXzhfU0hBMjU2IC1zaWdhbGdzIGVjZHNhX3NlY3AzODRyMV9zaGEzODQgLWdyb3VwcyBYMjU1MTkgLW1zZyAtdGxzMV8zIC1udW1fdGlja2V0cyAwIC1ub19yZXN1bWVfZXBoZW1lcmFsIC1ub19jYWNoZSIgXAotICAgICAgICAgIiRQX0NMSSBjYV9maWxlPWRhdGFfZmlsZXMvdGVzdC1jYTIuY3J0IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0xMjgtQ0NNLTgtU0hBMjU2IHNpZ19hbGdzPWVjZHNhX3NlY3AzODRyMV9zaGEzODQgZ3JvdXBzPXgyNTUxOSIgXAorICAgICAgICAgIiRPX05FWFRfU1JWX05PX0NFUlQgLWNlcnQgJERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwMzg0cjEuY3J0IC1rZXkgJERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwMzg0cjEua2V5IC1jaXBoZXJzdWl0ZXMgVExTX0FFU18xMjhfQ0NNXzhfU0hBMjU2IC1zaWdhbGdzIGVjZHNhX3NlY3AzODRyMV9zaGEzODQgLWdyb3VwcyBYMjU1MTkgLW1zZyAtdGxzMV8zIC1udW1fdGlja2V0cyAwIC1ub19yZXN1bWVfZXBoZW1lcmFsIC1ub19jYWNoZSIgXAorICAgICAgICAgIiRQX0NMSSBjYV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvdGVzdC1jYTIuY3J0IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0xMjgtQ0NNLTgtU0hBMjU2IHNpZ19hbGdzPWVjZHNhX3NlY3AzODRyMV9zaGEzODQgZ3JvdXBzPXgyNTUxOSIgXAogICAgICAgICAgMCBcCiAgICAgICAgICAtYyAiSFRUUC8xLjAgMjAwIG9rIiBcCiAgICAgICAgICAtYyAiUHJvdG9jb2wgaXMgVExTdjEuMyIgXApAQCAtNjQ2Myw4ICs2NDY1LDggQEAKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIE1CRURUTFNfU1NMX1RMUzFfM19DT01QQVRJQklMSVRZX01PREUKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIFBTQV9XQU5UX0FMR19FQ0RICiBydW5fdGVzdCAiVExTIDEuMyBtLT5POiBBRVNfMTI4X0NDTV84X1NIQTI1Nix4MjU1MTksZWNkc2Ffc2VjcDUyMXIxX3NoYTUxMiIgXAotICAgICAgICAgIiRPX05FWFRfU1JWX05PX0NFUlQgLWNlcnQgZGF0YV9maWxlcy9lY2RzYV9zZWNwNTIxcjEuY3J0IC1rZXkgZGF0YV9maWxlcy9lY2RzYV9zZWNwNTIxcjEua2V5IC1jaXBoZXJzdWl0ZXMgVExTX0FFU18xMjhfQ0NNXzhfU0hBMjU2IC1zaWdhbGdzIGVjZHNhX3NlY3A1MjFyMV9zaGE1MTIgLWdyb3VwcyBYMjU1MTkgLW1zZyAtdGxzMV8zIC1udW1fdGlja2V0cyAwIC1ub19yZXN1bWVfZXBoZW1lcmFsIC1ub19jYWNoZSIgXAotICAgICAgICAgIiRQX0NMSSBjYV9maWxlPWRhdGFfZmlsZXMvdGVzdC1jYTIuY3J0IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0xMjgtQ0NNLTgtU0hBMjU2IHNpZ19hbGdzPWVjZHNhX3NlY3A1MjFyMV9zaGE1MTIgZ3JvdXBzPXgyNTUxOSIgXAorICAgICAgICAgIiRPX05FWFRfU1JWX05PX0NFUlQgLWNlcnQgJERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwNTIxcjEuY3J0IC1rZXkgJERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwNTIxcjEua2V5IC1jaXBoZXJzdWl0ZXMgVExTX0FFU18xMjhfQ0NNXzhfU0hBMjU2IC1zaWdhbGdzIGVjZHNhX3NlY3A1MjFyMV9zaGE1MTIgLWdyb3VwcyBYMjU1MTkgLW1zZyAtdGxzMV8zIC1udW1fdGlja2V0cyAwIC1ub19yZXN1bWVfZXBoZW1lcmFsIC1ub19jYWNoZSIgXAorICAgICAgICAgIiRQX0NMSSBjYV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvdGVzdC1jYTIuY3J0IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0xMjgtQ0NNLTgtU0hBMjU2IHNpZ19hbGdzPWVjZHNhX3NlY3A1MjFyMV9zaGE1MTIgZ3JvdXBzPXgyNTUxOSIgXAogICAgICAgICAgMCBcCiAgICAgICAgICAtYyAiSFRUUC8xLjAgMjAwIG9rIiBcCiAgICAgICAgICAtYyAiUHJvdG9jb2wgaXMgVExTdjEuMyIgXApAQCAtNjQ4Miw4ICs2NDg0LDggQEAKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIE1CRURUTFNfWDUwOV9SU0FTU0FfUFNTX1NVUFBPUlQKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIFBTQV9XQU5UX0FMR19FQ0RICiBydW5fdGVzdCAiVExTIDEuMyBtLT5POiBBRVNfMTI4X0NDTV84X1NIQTI1Nix4MjU1MTkscnNhX3Bzc19yc2FlX3NoYTI1NiIgXAotICAgICAgICAgIiRPX05FWFRfU1JWX05PX0NFUlQgLWNlcnQgZGF0YV9maWxlcy9zZXJ2ZXIyLXNoYTI1Ni5jcnQgLWtleSBkYXRhX2ZpbGVzL3NlcnZlcjIua2V5IC1jaXBoZXJzdWl0ZXMgVExTX0FFU18xMjhfQ0NNXzhfU0hBMjU2IC1zaWdhbGdzIHJzYV9wc3NfcnNhZV9zaGEyNTYgLWdyb3VwcyBYMjU1MTkgLW1zZyAtdGxzMV8zIC1udW1fdGlja2V0cyAwIC1ub19yZXN1bWVfZXBoZW1lcmFsIC1ub19jYWNoZSIgXAotICAgICAgICAgIiRQX0NMSSBjYV9maWxlPWRhdGFfZmlsZXMvdGVzdC1jYV9jYXQxMi5jcnQgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTEyOC1DQ00tOC1TSEEyNTYgc2lnX2FsZ3M9cnNhX3Bzc19yc2FlX3NoYTI1NiBncm91cHM9eDI1NTE5IiBcCisgICAgICAgICAiJE9fTkVYVF9TUlZfTk9fQ0VSVCAtY2VydCAkREFUQV9GSUxFU19QQVRIL3NlcnZlcjItc2hhMjU2LmNydCAta2V5ICREQVRBX0ZJTEVTX1BBVEgvc2VydmVyMi5rZXkgLWNpcGhlcnN1aXRlcyBUTFNfQUVTXzEyOF9DQ01fOF9TSEEyNTYgLXNpZ2FsZ3MgcnNhX3Bzc19yc2FlX3NoYTI1NiAtZ3JvdXBzIFgyNTUxOSAtbXNnIC10bHMxXzMgLW51bV90aWNrZXRzIDAgLW5vX3Jlc3VtZV9lcGhlbWVyYWwgLW5vX2NhY2hlIiBcCisgICAgICAgICAiJFBfQ0xJIGNhX2ZpbGU9JERBVEFfRklMRVNfUEFUSC90ZXN0LWNhX2NhdDEyLmNydCBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMTI4LUNDTS04LVNIQTI1NiBzaWdfYWxncz1yc2FfcHNzX3JzYWVfc2hhMjU2IGdyb3Vwcz14MjU1MTkiIFwKICAgICAgICAgIDAgXAogICAgICAgICAgLWMgIkhUVFAvMS4wIDIwMCBvayIgXAogICAgICAgICAgLWMgIlByb3RvY29sIGlzIFRMU3YxLjMiIFwKQEAgLTY1MDAsOCArNjUwMiw4IEBACiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBNQkVEVExTX1NTTF9UTFMxXzNfQ09NUEFUSUJJTElUWV9NT0RFCiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBQU0FfV0FOVF9BTEdfRUNESAogcnVuX3Rlc3QgIlRMUyAxLjMgbS0+TzogQUVTXzEyOF9DQ01fOF9TSEEyNTYseDQ0OCxlY2RzYV9zZWNwMjU2cjFfc2hhMjU2IiBcCi0gICAgICAgICAiJE9fTkVYVF9TUlZfTk9fQ0VSVCAtY2VydCBkYXRhX2ZpbGVzL2VjZHNhX3NlY3AyNTZyMS5jcnQgLWtleSBkYXRhX2ZpbGVzL2VjZHNhX3NlY3AyNTZyMS5rZXkgLWNpcGhlcnN1aXRlcyBUTFNfQUVTXzEyOF9DQ01fOF9TSEEyNTYgLXNpZ2FsZ3MgZWNkc2Ffc2VjcDI1NnIxX3NoYTI1NiAtZ3JvdXBzIFg0NDggLW1zZyAtdGxzMV8zIC1udW1fdGlja2V0cyAwIC1ub19yZXN1bWVfZXBoZW1lcmFsIC1ub19jYWNoZSIgXAotICAgICAgICAgIiRQX0NMSSBjYV9maWxlPWRhdGFfZmlsZXMvdGVzdC1jYTIuY3J0IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0xMjgtQ0NNLTgtU0hBMjU2IHNpZ19hbGdzPWVjZHNhX3NlY3AyNTZyMV9zaGEyNTYgZ3JvdXBzPXg0NDgiIFwKKyAgICAgICAgICIkT19ORVhUX1NSVl9OT19DRVJUIC1jZXJ0ICREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDI1NnIxLmNydCAta2V5ICREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDI1NnIxLmtleSAtY2lwaGVyc3VpdGVzIFRMU19BRVNfMTI4X0NDTV84X1NIQTI1NiAtc2lnYWxncyBlY2RzYV9zZWNwMjU2cjFfc2hhMjU2IC1ncm91cHMgWDQ0OCAtbXNnIC10bHMxXzMgLW51bV90aWNrZXRzIDAgLW5vX3Jlc3VtZV9lcGhlbWVyYWwgLW5vX2NhY2hlIiBcCisgICAgICAgICAiJFBfQ0xJIGNhX2ZpbGU9JERBVEFfRklMRVNfUEFUSC90ZXN0LWNhMi5jcnQgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTEyOC1DQ00tOC1TSEEyNTYgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDI1NnIxX3NoYTI1NiBncm91cHM9eDQ0OCIgXAogICAgICAgICAgMCBcCiAgICAgICAgICAtYyAiSFRUUC8xLjAgMjAwIG9rIiBcCiAgICAgICAgICAtYyAiUHJvdG9jb2wgaXMgVExTdjEuMyIgXApAQCAtNjUxOCw4ICs2NTIwLDggQEAKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIE1CRURUTFNfU1NMX1RMUzFfM19DT01QQVRJQklMSVRZX01PREUKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIFBTQV9XQU5UX0FMR19FQ0RICiBydW5fdGVzdCAiVExTIDEuMyBtLT5POiBBRVNfMTI4X0NDTV84X1NIQTI1Nix4NDQ4LGVjZHNhX3NlY3AzODRyMV9zaGEzODQiIFwKLSAgICAgICAgICIkT19ORVhUX1NSVl9OT19DRVJUIC1jZXJ0IGRhdGFfZmlsZXMvZWNkc2Ffc2VjcDM4NHIxLmNydCAta2V5IGRhdGFfZmlsZXMvZWNkc2Ffc2VjcDM4NHIxLmtleSAtY2lwaGVyc3VpdGVzIFRMU19BRVNfMTI4X0NDTV84X1NIQTI1NiAtc2lnYWxncyBlY2RzYV9zZWNwMzg0cjFfc2hhMzg0IC1ncm91cHMgWDQ0OCAtbXNnIC10bHMxXzMgLW51bV90aWNrZXRzIDAgLW5vX3Jlc3VtZV9lcGhlbWVyYWwgLW5vX2NhY2hlIiBcCi0gICAgICAgICAiJFBfQ0xJIGNhX2ZpbGU9ZGF0YV9maWxlcy90ZXN0LWNhMi5jcnQgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTEyOC1DQ00tOC1TSEEyNTYgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDM4NHIxX3NoYTM4NCBncm91cHM9eDQ0OCIgXAorICAgICAgICAgIiRPX05FWFRfU1JWX05PX0NFUlQgLWNlcnQgJERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwMzg0cjEuY3J0IC1rZXkgJERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwMzg0cjEua2V5IC1jaXBoZXJzdWl0ZXMgVExTX0FFU18xMjhfQ0NNXzhfU0hBMjU2IC1zaWdhbGdzIGVjZHNhX3NlY3AzODRyMV9zaGEzODQgLWdyb3VwcyBYNDQ4IC1tc2cgLXRsczFfMyAtbnVtX3RpY2tldHMgMCAtbm9fcmVzdW1lX2VwaGVtZXJhbCAtbm9fY2FjaGUiIFwKKyAgICAgICAgICIkUF9DTEkgY2FfZmlsZT0kREFUQV9GSUxFU19QQVRIL3Rlc3QtY2EyLmNydCBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMTI4LUNDTS04LVNIQTI1NiBzaWdfYWxncz1lY2RzYV9zZWNwMzg0cjFfc2hhMzg0IGdyb3Vwcz14NDQ4IiBcCiAgICAgICAgICAwIFwKICAgICAgICAgIC1jICJIVFRQLzEuMCAyMDAgb2siIFwKICAgICAgICAgIC1jICJQcm90b2NvbCBpcyBUTFN2MS4zIiBcCkBAIC02NTM2LDggKzY1MzgsOCBAQAogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgTUJFRFRMU19TU0xfVExTMV8zX0NPTVBBVElCSUxJVFlfTU9ERQogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgUFNBX1dBTlRfQUxHX0VDREgKIHJ1bl90ZXN0ICJUTFMgMS4zIG0tPk86IEFFU18xMjhfQ0NNXzhfU0hBMjU2LHg0NDgsZWNkc2Ffc2VjcDUyMXIxX3NoYTUxMiIgXAotICAgICAgICAgIiRPX05FWFRfU1JWX05PX0NFUlQgLWNlcnQgZGF0YV9maWxlcy9lY2RzYV9zZWNwNTIxcjEuY3J0IC1rZXkgZGF0YV9maWxlcy9lY2RzYV9zZWNwNTIxcjEua2V5IC1jaXBoZXJzdWl0ZXMgVExTX0FFU18xMjhfQ0NNXzhfU0hBMjU2IC1zaWdhbGdzIGVjZHNhX3NlY3A1MjFyMV9zaGE1MTIgLWdyb3VwcyBYNDQ4IC1tc2cgLXRsczFfMyAtbnVtX3RpY2tldHMgMCAtbm9fcmVzdW1lX2VwaGVtZXJhbCAtbm9fY2FjaGUiIFwKLSAgICAgICAgICIkUF9DTEkgY2FfZmlsZT1kYXRhX2ZpbGVzL3Rlc3QtY2EyLmNydCBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMTI4LUNDTS04LVNIQTI1NiBzaWdfYWxncz1lY2RzYV9zZWNwNTIxcjFfc2hhNTEyIGdyb3Vwcz14NDQ4IiBcCisgICAgICAgICAiJE9fTkVYVF9TUlZfTk9fQ0VSVCAtY2VydCAkREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3A1MjFyMS5jcnQgLWtleSAkREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3A1MjFyMS5rZXkgLWNpcGhlcnN1aXRlcyBUTFNfQUVTXzEyOF9DQ01fOF9TSEEyNTYgLXNpZ2FsZ3MgZWNkc2Ffc2VjcDUyMXIxX3NoYTUxMiAtZ3JvdXBzIFg0NDggLW1zZyAtdGxzMV8zIC1udW1fdGlja2V0cyAwIC1ub19yZXN1bWVfZXBoZW1lcmFsIC1ub19jYWNoZSIgXAorICAgICAgICAgIiRQX0NMSSBjYV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvdGVzdC1jYTIuY3J0IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0xMjgtQ0NNLTgtU0hBMjU2IHNpZ19hbGdzPWVjZHNhX3NlY3A1MjFyMV9zaGE1MTIgZ3JvdXBzPXg0NDgiIFwKICAgICAgICAgIDAgXAogICAgICAgICAgLWMgIkhUVFAvMS4wIDIwMCBvayIgXAogICAgICAgICAgLWMgIlByb3RvY29sIGlzIFRMU3YxLjMiIFwKQEAgLTY1NTUsOCArNjU1Nyw4IEBACiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBNQkVEVExTX1g1MDlfUlNBU1NBX1BTU19TVVBQT1JUCiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBQU0FfV0FOVF9BTEdfRUNESAogcnVuX3Rlc3QgIlRMUyAxLjMgbS0+TzogQUVTXzEyOF9DQ01fOF9TSEEyNTYseDQ0OCxyc2FfcHNzX3JzYWVfc2hhMjU2IiBcCi0gICAgICAgICAiJE9fTkVYVF9TUlZfTk9fQ0VSVCAtY2VydCBkYXRhX2ZpbGVzL3NlcnZlcjItc2hhMjU2LmNydCAta2V5IGRhdGFfZmlsZXMvc2VydmVyMi5rZXkgLWNpcGhlcnN1aXRlcyBUTFNfQUVTXzEyOF9DQ01fOF9TSEEyNTYgLXNpZ2FsZ3MgcnNhX3Bzc19yc2FlX3NoYTI1NiAtZ3JvdXBzIFg0NDggLW1zZyAtdGxzMV8zIC1udW1fdGlja2V0cyAwIC1ub19yZXN1bWVfZXBoZW1lcmFsIC1ub19jYWNoZSIgXAotICAgICAgICAgIiRQX0NMSSBjYV9maWxlPWRhdGFfZmlsZXMvdGVzdC1jYV9jYXQxMi5jcnQgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTEyOC1DQ00tOC1TSEEyNTYgc2lnX2FsZ3M9cnNhX3Bzc19yc2FlX3NoYTI1NiBncm91cHM9eDQ0OCIgXAorICAgICAgICAgIiRPX05FWFRfU1JWX05PX0NFUlQgLWNlcnQgJERBVEFfRklMRVNfUEFUSC9zZXJ2ZXIyLXNoYTI1Ni5jcnQgLWtleSAkREFUQV9GSUxFU19QQVRIL3NlcnZlcjIua2V5IC1jaXBoZXJzdWl0ZXMgVExTX0FFU18xMjhfQ0NNXzhfU0hBMjU2IC1zaWdhbGdzIHJzYV9wc3NfcnNhZV9zaGEyNTYgLWdyb3VwcyBYNDQ4IC1tc2cgLXRsczFfMyAtbnVtX3RpY2tldHMgMCAtbm9fcmVzdW1lX2VwaGVtZXJhbCAtbm9fY2FjaGUiIFwKKyAgICAgICAgICIkUF9DTEkgY2FfZmlsZT0kREFUQV9GSUxFU19QQVRIL3Rlc3QtY2FfY2F0MTIuY3J0IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0xMjgtQ0NNLTgtU0hBMjU2IHNpZ19hbGdzPXJzYV9wc3NfcnNhZV9zaGEyNTYgZ3JvdXBzPXg0NDgiIFwKICAgICAgICAgIDAgXAogICAgICAgICAgLWMgIkhUVFAvMS4wIDIwMCBvayIgXAogICAgICAgICAgLWMgIlByb3RvY29sIGlzIFRMU3YxLjMiIFwKQEAgLTY1NzQsOCArNjU3Niw4IEBACiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBQU0FfV0FOVF9BTEdfRkZESAogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgUFNBX1dBTlRfREhfUkZDNzkxOV8yMDQ4CiBydW5fdGVzdCAiVExTIDEuMyBtLT5POiBBRVNfMTI4X0NDTV84X1NIQTI1NixmZmRoZTIwNDgsZWNkc2Ffc2VjcDI1NnIxX3NoYTI1NiIgXAotICAgICAgICAgIiRPX05FWFRfU1JWX05PX0NFUlQgLWNlcnQgZGF0YV9maWxlcy9lY2RzYV9zZWNwMjU2cjEuY3J0IC1rZXkgZGF0YV9maWxlcy9lY2RzYV9zZWNwMjU2cjEua2V5IC1jaXBoZXJzdWl0ZXMgVExTX0FFU18xMjhfQ0NNXzhfU0hBMjU2IC1zaWdhbGdzIGVjZHNhX3NlY3AyNTZyMV9zaGEyNTYgLWdyb3VwcyBmZmRoZTIwNDggLW1zZyAtdGxzMV8zIC1udW1fdGlja2V0cyAwIC1ub19yZXN1bWVfZXBoZW1lcmFsIC1ub19jYWNoZSIgXAotICAgICAgICAgIiRQX0NMSSBjYV9maWxlPWRhdGFfZmlsZXMvdGVzdC1jYTIuY3J0IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0xMjgtQ0NNLTgtU0hBMjU2IHNpZ19hbGdzPWVjZHNhX3NlY3AyNTZyMV9zaGEyNTYgZ3JvdXBzPWZmZGhlMjA0OCIgXAorICAgICAgICAgIiRPX05FWFRfU1JWX05PX0NFUlQgLWNlcnQgJERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwMjU2cjEuY3J0IC1rZXkgJERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwMjU2cjEua2V5IC1jaXBoZXJzdWl0ZXMgVExTX0FFU18xMjhfQ0NNXzhfU0hBMjU2IC1zaWdhbGdzIGVjZHNhX3NlY3AyNTZyMV9zaGEyNTYgLWdyb3VwcyBmZmRoZTIwNDggLW1zZyAtdGxzMV8zIC1udW1fdGlja2V0cyAwIC1ub19yZXN1bWVfZXBoZW1lcmFsIC1ub19jYWNoZSIgXAorICAgICAgICAgIiRQX0NMSSBjYV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvdGVzdC1jYTIuY3J0IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0xMjgtQ0NNLTgtU0hBMjU2IHNpZ19hbGdzPWVjZHNhX3NlY3AyNTZyMV9zaGEyNTYgZ3JvdXBzPWZmZGhlMjA0OCIgXAogICAgICAgICAgMCBcCiAgICAgICAgICAtYyAiSFRUUC8xLjAgMjAwIG9rIiBcCiAgICAgICAgICAtYyAiUHJvdG9jb2wgaXMgVExTdjEuMyIgXApAQCAtNjU5Myw4ICs2NTk1LDggQEAKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIFBTQV9XQU5UX0FMR19GRkRICiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBQU0FfV0FOVF9ESF9SRkM3OTE5XzIwNDgKIHJ1bl90ZXN0ICJUTFMgMS4zIG0tPk86IEFFU18xMjhfQ0NNXzhfU0hBMjU2LGZmZGhlMjA0OCxlY2RzYV9zZWNwMzg0cjFfc2hhMzg0IiBcCi0gICAgICAgICAiJE9fTkVYVF9TUlZfTk9fQ0VSVCAtY2VydCBkYXRhX2ZpbGVzL2VjZHNhX3NlY3AzODRyMS5jcnQgLWtleSBkYXRhX2ZpbGVzL2VjZHNhX3NlY3AzODRyMS5rZXkgLWNpcGhlcnN1aXRlcyBUTFNfQUVTXzEyOF9DQ01fOF9TSEEyNTYgLXNpZ2FsZ3MgZWNkc2Ffc2VjcDM4NHIxX3NoYTM4NCAtZ3JvdXBzIGZmZGhlMjA0OCAtbXNnIC10bHMxXzMgLW51bV90aWNrZXRzIDAgLW5vX3Jlc3VtZV9lcGhlbWVyYWwgLW5vX2NhY2hlIiBcCi0gICAgICAgICAiJFBfQ0xJIGNhX2ZpbGU9ZGF0YV9maWxlcy90ZXN0LWNhMi5jcnQgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTEyOC1DQ00tOC1TSEEyNTYgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDM4NHIxX3NoYTM4NCBncm91cHM9ZmZkaGUyMDQ4IiBcCisgICAgICAgICAiJE9fTkVYVF9TUlZfTk9fQ0VSVCAtY2VydCAkREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3AzODRyMS5jcnQgLWtleSAkREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3AzODRyMS5rZXkgLWNpcGhlcnN1aXRlcyBUTFNfQUVTXzEyOF9DQ01fOF9TSEEyNTYgLXNpZ2FsZ3MgZWNkc2Ffc2VjcDM4NHIxX3NoYTM4NCAtZ3JvdXBzIGZmZGhlMjA0OCAtbXNnIC10bHMxXzMgLW51bV90aWNrZXRzIDAgLW5vX3Jlc3VtZV9lcGhlbWVyYWwgLW5vX2NhY2hlIiBcCisgICAgICAgICAiJFBfQ0xJIGNhX2ZpbGU9JERBVEFfRklMRVNfUEFUSC90ZXN0LWNhMi5jcnQgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTEyOC1DQ00tOC1TSEEyNTYgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDM4NHIxX3NoYTM4NCBncm91cHM9ZmZkaGUyMDQ4IiBcCiAgICAgICAgICAwIFwKICAgICAgICAgIC1jICJIVFRQLzEuMCAyMDAgb2siIFwKICAgICAgICAgIC1jICJQcm90b2NvbCBpcyBUTFN2MS4zIiBcCkBAIC02NjEyLDggKzY2MTQsOCBAQAogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgUFNBX1dBTlRfQUxHX0ZGREgKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIFBTQV9XQU5UX0RIX1JGQzc5MTlfMjA0OAogcnVuX3Rlc3QgIlRMUyAxLjMgbS0+TzogQUVTXzEyOF9DQ01fOF9TSEEyNTYsZmZkaGUyMDQ4LGVjZHNhX3NlY3A1MjFyMV9zaGE1MTIiIFwKLSAgICAgICAgICIkT19ORVhUX1NSVl9OT19DRVJUIC1jZXJ0IGRhdGFfZmlsZXMvZWNkc2Ffc2VjcDUyMXIxLmNydCAta2V5IGRhdGFfZmlsZXMvZWNkc2Ffc2VjcDUyMXIxLmtleSAtY2lwaGVyc3VpdGVzIFRMU19BRVNfMTI4X0NDTV84X1NIQTI1NiAtc2lnYWxncyBlY2RzYV9zZWNwNTIxcjFfc2hhNTEyIC1ncm91cHMgZmZkaGUyMDQ4IC1tc2cgLXRsczFfMyAtbnVtX3RpY2tldHMgMCAtbm9fcmVzdW1lX2VwaGVtZXJhbCAtbm9fY2FjaGUiIFwKLSAgICAgICAgICIkUF9DTEkgY2FfZmlsZT1kYXRhX2ZpbGVzL3Rlc3QtY2EyLmNydCBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMTI4LUNDTS04LVNIQTI1NiBzaWdfYWxncz1lY2RzYV9zZWNwNTIxcjFfc2hhNTEyIGdyb3Vwcz1mZmRoZTIwNDgiIFwKKyAgICAgICAgICIkT19ORVhUX1NSVl9OT19DRVJUIC1jZXJ0ICREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDUyMXIxLmNydCAta2V5ICREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDUyMXIxLmtleSAtY2lwaGVyc3VpdGVzIFRMU19BRVNfMTI4X0NDTV84X1NIQTI1NiAtc2lnYWxncyBlY2RzYV9zZWNwNTIxcjFfc2hhNTEyIC1ncm91cHMgZmZkaGUyMDQ4IC1tc2cgLXRsczFfMyAtbnVtX3RpY2tldHMgMCAtbm9fcmVzdW1lX2VwaGVtZXJhbCAtbm9fY2FjaGUiIFwKKyAgICAgICAgICIkUF9DTEkgY2FfZmlsZT0kREFUQV9GSUxFU19QQVRIL3Rlc3QtY2EyLmNydCBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMTI4LUNDTS04LVNIQTI1NiBzaWdfYWxncz1lY2RzYV9zZWNwNTIxcjFfc2hhNTEyIGdyb3Vwcz1mZmRoZTIwNDgiIFwKICAgICAgICAgIDAgXAogICAgICAgICAgLWMgIkhUVFAvMS4wIDIwMCBvayIgXAogICAgICAgICAgLWMgIlByb3RvY29sIGlzIFRMU3YxLjMiIFwKQEAgLTY2MzIsOCArNjYzNCw4IEBACiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBQU0FfV0FOVF9BTEdfRkZESAogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgUFNBX1dBTlRfREhfUkZDNzkxOV8yMDQ4CiBydW5fdGVzdCAiVExTIDEuMyBtLT5POiBBRVNfMTI4X0NDTV84X1NIQTI1NixmZmRoZTIwNDgscnNhX3Bzc19yc2FlX3NoYTI1NiIgXAotICAgICAgICAgIiRPX05FWFRfU1JWX05PX0NFUlQgLWNlcnQgZGF0YV9maWxlcy9zZXJ2ZXIyLXNoYTI1Ni5jcnQgLWtleSBkYXRhX2ZpbGVzL3NlcnZlcjIua2V5IC1jaXBoZXJzdWl0ZXMgVExTX0FFU18xMjhfQ0NNXzhfU0hBMjU2IC1zaWdhbGdzIHJzYV9wc3NfcnNhZV9zaGEyNTYgLWdyb3VwcyBmZmRoZTIwNDggLW1zZyAtdGxzMV8zIC1udW1fdGlja2V0cyAwIC1ub19yZXN1bWVfZXBoZW1lcmFsIC1ub19jYWNoZSIgXAotICAgICAgICAgIiRQX0NMSSBjYV9maWxlPWRhdGFfZmlsZXMvdGVzdC1jYV9jYXQxMi5jcnQgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTEyOC1DQ00tOC1TSEEyNTYgc2lnX2FsZ3M9cnNhX3Bzc19yc2FlX3NoYTI1NiBncm91cHM9ZmZkaGUyMDQ4IiBcCisgICAgICAgICAiJE9fTkVYVF9TUlZfTk9fQ0VSVCAtY2VydCAkREFUQV9GSUxFU19QQVRIL3NlcnZlcjItc2hhMjU2LmNydCAta2V5ICREQVRBX0ZJTEVTX1BBVEgvc2VydmVyMi5rZXkgLWNpcGhlcnN1aXRlcyBUTFNfQUVTXzEyOF9DQ01fOF9TSEEyNTYgLXNpZ2FsZ3MgcnNhX3Bzc19yc2FlX3NoYTI1NiAtZ3JvdXBzIGZmZGhlMjA0OCAtbXNnIC10bHMxXzMgLW51bV90aWNrZXRzIDAgLW5vX3Jlc3VtZV9lcGhlbWVyYWwgLW5vX2NhY2hlIiBcCisgICAgICAgICAiJFBfQ0xJIGNhX2ZpbGU9JERBVEFfRklMRVNfUEFUSC90ZXN0LWNhX2NhdDEyLmNydCBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMTI4LUNDTS04LVNIQTI1NiBzaWdfYWxncz1yc2FfcHNzX3JzYWVfc2hhMjU2IGdyb3Vwcz1mZmRoZTIwNDgiIFwKICAgICAgICAgIDAgXAogICAgICAgICAgLWMgIkhUVFAvMS4wIDIwMCBvayIgXAogICAgICAgICAgLWMgIlByb3RvY29sIGlzIFRMU3YxLjMiIFwKQEAgLTY2NTIsOCArNjY1NCw4IEBACiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBNQkVEVExTX1NTTF9UTFMxXzNfQ09NUEFUSUJJTElUWV9NT0RFCiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBQU0FfV0FOVF9BTEdfRUNESAogcnVuX3Rlc3QgIlRMUyAxLjMgbS0+RzogQUVTXzEyOF9HQ01fU0hBMjU2LHNlY3AyNTZyMSxlY2RzYV9zZWNwMjU2cjFfc2hhMjU2IiBcCi0gICAgICAgICAiJEdfTkVYVF9TUlZfTk9fQ0VSVCAtLWh0dHAgLS1kaXNhYmxlLWNsaWVudC1jZXJ0IC0tZGVidWc9NCAtLXg1MDljZXJ0ZmlsZSBkYXRhX2ZpbGVzL2VjZHNhX3NlY3AyNTZyMS5jcnQgLS14NTA5a2V5ZmlsZSBkYXRhX2ZpbGVzL2VjZHNhX3NlY3AyNTZyMS5rZXkgLS1wcmlvcml0eT1OT05FOitBRVMtMTI4LUdDTTorU0hBMjU2OitBRUFEOitTSUdOLUVDRFNBLVNFQ1AyNTZSMS1TSEEyNTY6K0dST1VQLVNFQ1AyNTZSMTorVkVSUy1UTFMxLjM6JU5PX1RJQ0tFVFMiIFwKLSAgICAgICAgICIkUF9DTEkgY2FfZmlsZT1kYXRhX2ZpbGVzL3Rlc3QtY2EyLmNydCBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMTI4LUdDTS1TSEEyNTYgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDI1NnIxX3NoYTI1NiBncm91cHM9c2VjcDI1NnIxIiBcCisgICAgICAgICAiJEdfTkVYVF9TUlZfTk9fQ0VSVCAtLWh0dHAgLS1kaXNhYmxlLWNsaWVudC1jZXJ0IC0tZGVidWc9NCAtLXg1MDljZXJ0ZmlsZSAkREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3AyNTZyMS5jcnQgLS14NTA5a2V5ZmlsZSAkREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3AyNTZyMS5rZXkgLS1wcmlvcml0eT1OT05FOitBRVMtMTI4LUdDTTorU0hBMjU2OitBRUFEOitTSUdOLUVDRFNBLVNFQ1AyNTZSMS1TSEEyNTY6K0dST1VQLVNFQ1AyNTZSMTorVkVSUy1UTFMxLjM6JU5PX1RJQ0tFVFMiIFwKKyAgICAgICAgICIkUF9DTEkgY2FfZmlsZT0kREFUQV9GSUxFU19QQVRIL3Rlc3QtY2EyLmNydCBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMTI4LUdDTS1TSEEyNTYgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDI1NnIxX3NoYTI1NiBncm91cHM9c2VjcDI1NnIxIiBcCiAgICAgICAgICAwIFwKICAgICAgICAgIC1jICJIVFRQLzEuMCAyMDAgT0siIFwKICAgICAgICAgIC1jICJQcm90b2NvbCBpcyBUTFN2MS4zIiBcCkBAIC02NjcyLDggKzY2NzQsOCBAQAogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgTUJFRFRMU19TU0xfVExTMV8zX0NPTVBBVElCSUxJVFlfTU9ERQogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgUFNBX1dBTlRfQUxHX0VDREgKIHJ1bl90ZXN0ICJUTFMgMS4zIG0tPkc6IEFFU18xMjhfR0NNX1NIQTI1NixzZWNwMjU2cjEsZWNkc2Ffc2VjcDM4NHIxX3NoYTM4NCIgXAotICAgICAgICAgIiRHX05FWFRfU1JWX05PX0NFUlQgLS1odHRwIC0tZGlzYWJsZS1jbGllbnQtY2VydCAtLWRlYnVnPTQgLS14NTA5Y2VydGZpbGUgZGF0YV9maWxlcy9lY2RzYV9zZWNwMzg0cjEuY3J0IC0teDUwOWtleWZpbGUgZGF0YV9maWxlcy9lY2RzYV9zZWNwMzg0cjEua2V5IC0tcHJpb3JpdHk9Tk9ORTorQUVTLTEyOC1HQ006K1NIQTI1NjorQUVBRDorU0lHTi1FQ0RTQS1TRUNQMzg0UjEtU0hBMzg0OitHUk9VUC1TRUNQMjU2UjE6K1ZFUlMtVExTMS4zOiVOT19USUNLRVRTIiBcCi0gICAgICAgICAiJFBfQ0xJIGNhX2ZpbGU9ZGF0YV9maWxlcy90ZXN0LWNhMi5jcnQgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTEyOC1HQ00tU0hBMjU2IHNpZ19hbGdzPWVjZHNhX3NlY3AzODRyMV9zaGEzODQgZ3JvdXBzPXNlY3AyNTZyMSIgXAorICAgICAgICAgIiRHX05FWFRfU1JWX05PX0NFUlQgLS1odHRwIC0tZGlzYWJsZS1jbGllbnQtY2VydCAtLWRlYnVnPTQgLS14NTA5Y2VydGZpbGUgJERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwMzg0cjEuY3J0IC0teDUwOWtleWZpbGUgJERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwMzg0cjEua2V5IC0tcHJpb3JpdHk9Tk9ORTorQUVTLTEyOC1HQ006K1NIQTI1NjorQUVBRDorU0lHTi1FQ0RTQS1TRUNQMzg0UjEtU0hBMzg0OitHUk9VUC1TRUNQMjU2UjE6K1ZFUlMtVExTMS4zOiVOT19USUNLRVRTIiBcCisgICAgICAgICAiJFBfQ0xJIGNhX2ZpbGU9JERBVEFfRklMRVNfUEFUSC90ZXN0LWNhMi5jcnQgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTEyOC1HQ00tU0hBMjU2IHNpZ19hbGdzPWVjZHNhX3NlY3AzODRyMV9zaGEzODQgZ3JvdXBzPXNlY3AyNTZyMSIgXAogICAgICAgICAgMCBcCiAgICAgICAgICAtYyAiSFRUUC8xLjAgMjAwIE9LIiBcCiAgICAgICAgICAtYyAiUHJvdG9jb2wgaXMgVExTdjEuMyIgXApAQCAtNjY5Miw4ICs2Njk0LDggQEAKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIE1CRURUTFNfU1NMX1RMUzFfM19DT01QQVRJQklMSVRZX01PREUKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIFBTQV9XQU5UX0FMR19FQ0RICiBydW5fdGVzdCAiVExTIDEuMyBtLT5HOiBBRVNfMTI4X0dDTV9TSEEyNTYsc2VjcDI1NnIxLGVjZHNhX3NlY3A1MjFyMV9zaGE1MTIiIFwKLSAgICAgICAgICIkR19ORVhUX1NSVl9OT19DRVJUIC0taHR0cCAtLWRpc2FibGUtY2xpZW50LWNlcnQgLS1kZWJ1Zz00IC0teDUwOWNlcnRmaWxlIGRhdGFfZmlsZXMvZWNkc2Ffc2VjcDUyMXIxLmNydCAtLXg1MDlrZXlmaWxlIGRhdGFfZmlsZXMvZWNkc2Ffc2VjcDUyMXIxLmtleSAtLXByaW9yaXR5PU5PTkU6K0FFUy0xMjgtR0NNOitTSEEyNTY6K0FFQUQ6K1NJR04tRUNEU0EtU0VDUDUyMVIxLVNIQTUxMjorR1JPVVAtU0VDUDI1NlIxOitWRVJTLVRMUzEuMzolTk9fVElDS0VUUyIgXAotICAgICAgICAgIiRQX0NMSSBjYV9maWxlPWRhdGFfZmlsZXMvdGVzdC1jYTIuY3J0IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0xMjgtR0NNLVNIQTI1NiBzaWdfYWxncz1lY2RzYV9zZWNwNTIxcjFfc2hhNTEyIGdyb3Vwcz1zZWNwMjU2cjEiIFwKKyAgICAgICAgICIkR19ORVhUX1NSVl9OT19DRVJUIC0taHR0cCAtLWRpc2FibGUtY2xpZW50LWNlcnQgLS1kZWJ1Zz00IC0teDUwOWNlcnRmaWxlICREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDUyMXIxLmNydCAtLXg1MDlrZXlmaWxlICREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDUyMXIxLmtleSAtLXByaW9yaXR5PU5PTkU6K0FFUy0xMjgtR0NNOitTSEEyNTY6K0FFQUQ6K1NJR04tRUNEU0EtU0VDUDUyMVIxLVNIQTUxMjorR1JPVVAtU0VDUDI1NlIxOitWRVJTLVRMUzEuMzolTk9fVElDS0VUUyIgXAorICAgICAgICAgIiRQX0NMSSBjYV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvdGVzdC1jYTIuY3J0IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0xMjgtR0NNLVNIQTI1NiBzaWdfYWxncz1lY2RzYV9zZWNwNTIxcjFfc2hhNTEyIGdyb3Vwcz1zZWNwMjU2cjEiIFwKICAgICAgICAgIDAgXAogICAgICAgICAgLWMgIkhUVFAvMS4wIDIwMCBPSyIgXAogICAgICAgICAgLWMgIlByb3RvY29sIGlzIFRMU3YxLjMiIFwKQEAgLTY3MTMsOCArNjcxNSw4IEBACiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBNQkVEVExTX1g1MDlfUlNBU1NBX1BTU19TVVBQT1JUCiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBQU0FfV0FOVF9BTEdfRUNESAogcnVuX3Rlc3QgIlRMUyAxLjMgbS0+RzogQUVTXzEyOF9HQ01fU0hBMjU2LHNlY3AyNTZyMSxyc2FfcHNzX3JzYWVfc2hhMjU2IiBcCi0gICAgICAgICAiJEdfTkVYVF9TUlZfTk9fQ0VSVCAtLWh0dHAgLS1kaXNhYmxlLWNsaWVudC1jZXJ0IC0tZGVidWc9NCAtLXg1MDljZXJ0ZmlsZSBkYXRhX2ZpbGVzL3NlcnZlcjItc2hhMjU2LmNydCAtLXg1MDlrZXlmaWxlIGRhdGFfZmlsZXMvc2VydmVyMi5rZXkgLS1wcmlvcml0eT1OT05FOitBRVMtMTI4LUdDTTorU0hBMjU2OitBRUFEOitTSUdOLVJTQS1QU1MtUlNBRS1TSEEyNTY6K0dST1VQLVNFQ1AyNTZSMTorVkVSUy1UTFMxLjM6JU5PX1RJQ0tFVFMiIFwKLSAgICAgICAgICIkUF9DTEkgY2FfZmlsZT1kYXRhX2ZpbGVzL3Rlc3QtY2FfY2F0MTIuY3J0IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0xMjgtR0NNLVNIQTI1NiBzaWdfYWxncz1yc2FfcHNzX3JzYWVfc2hhMjU2IGdyb3Vwcz1zZWNwMjU2cjEiIFwKKyAgICAgICAgICIkR19ORVhUX1NSVl9OT19DRVJUIC0taHR0cCAtLWRpc2FibGUtY2xpZW50LWNlcnQgLS1kZWJ1Zz00IC0teDUwOWNlcnRmaWxlICREQVRBX0ZJTEVTX1BBVEgvc2VydmVyMi1zaGEyNTYuY3J0IC0teDUwOWtleWZpbGUgJERBVEFfRklMRVNfUEFUSC9zZXJ2ZXIyLmtleSAtLXByaW9yaXR5PU5PTkU6K0FFUy0xMjgtR0NNOitTSEEyNTY6K0FFQUQ6K1NJR04tUlNBLVBTUy1SU0FFLVNIQTI1NjorR1JPVVAtU0VDUDI1NlIxOitWRVJTLVRMUzEuMzolTk9fVElDS0VUUyIgXAorICAgICAgICAgIiRQX0NMSSBjYV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvdGVzdC1jYV9jYXQxMi5jcnQgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTEyOC1HQ00tU0hBMjU2IHNpZ19hbGdzPXJzYV9wc3NfcnNhZV9zaGEyNTYgZ3JvdXBzPXNlY3AyNTZyMSIgXAogICAgICAgICAgMCBcCiAgICAgICAgICAtYyAiSFRUUC8xLjAgMjAwIE9LIiBcCiAgICAgICAgICAtYyAiUHJvdG9jb2wgaXMgVExTdjEuMyIgXApAQCAtNjczMyw4ICs2NzM1LDggQEAKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIE1CRURUTFNfU1NMX1RMUzFfM19DT01QQVRJQklMSVRZX01PREUKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIFBTQV9XQU5UX0FMR19FQ0RICiBydW5fdGVzdCAiVExTIDEuMyBtLT5HOiBBRVNfMTI4X0dDTV9TSEEyNTYsc2VjcDM4NHIxLGVjZHNhX3NlY3AyNTZyMV9zaGEyNTYiIFwKLSAgICAgICAgICIkR19ORVhUX1NSVl9OT19DRVJUIC0taHR0cCAtLWRpc2FibGUtY2xpZW50LWNlcnQgLS1kZWJ1Zz00IC0teDUwOWNlcnRmaWxlIGRhdGFfZmlsZXMvZWNkc2Ffc2VjcDI1NnIxLmNydCAtLXg1MDlrZXlmaWxlIGRhdGFfZmlsZXMvZWNkc2Ffc2VjcDI1NnIxLmtleSAtLXByaW9yaXR5PU5PTkU6K0FFUy0xMjgtR0NNOitTSEEyNTY6K0FFQUQ6K1NJR04tRUNEU0EtU0VDUDI1NlIxLVNIQTI1NjorR1JPVVAtU0VDUDM4NFIxOitWRVJTLVRMUzEuMzolTk9fVElDS0VUUyIgXAotICAgICAgICAgIiRQX0NMSSBjYV9maWxlPWRhdGFfZmlsZXMvdGVzdC1jYTIuY3J0IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0xMjgtR0NNLVNIQTI1NiBzaWdfYWxncz1lY2RzYV9zZWNwMjU2cjFfc2hhMjU2IGdyb3Vwcz1zZWNwMzg0cjEiIFwKKyAgICAgICAgICIkR19ORVhUX1NSVl9OT19DRVJUIC0taHR0cCAtLWRpc2FibGUtY2xpZW50LWNlcnQgLS1kZWJ1Zz00IC0teDUwOWNlcnRmaWxlICREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDI1NnIxLmNydCAtLXg1MDlrZXlmaWxlICREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDI1NnIxLmtleSAtLXByaW9yaXR5PU5PTkU6K0FFUy0xMjgtR0NNOitTSEEyNTY6K0FFQUQ6K1NJR04tRUNEU0EtU0VDUDI1NlIxLVNIQTI1NjorR1JPVVAtU0VDUDM4NFIxOitWRVJTLVRMUzEuMzolTk9fVElDS0VUUyIgXAorICAgICAgICAgIiRQX0NMSSBjYV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvdGVzdC1jYTIuY3J0IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0xMjgtR0NNLVNIQTI1NiBzaWdfYWxncz1lY2RzYV9zZWNwMjU2cjFfc2hhMjU2IGdyb3Vwcz1zZWNwMzg0cjEiIFwKICAgICAgICAgIDAgXAogICAgICAgICAgLWMgIkhUVFAvMS4wIDIwMCBPSyIgXAogICAgICAgICAgLWMgIlByb3RvY29sIGlzIFRMU3YxLjMiIFwKQEAgLTY3NTMsOCArNjc1NSw4IEBACiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBNQkVEVExTX1NTTF9UTFMxXzNfQ09NUEFUSUJJTElUWV9NT0RFCiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBQU0FfV0FOVF9BTEdfRUNESAogcnVuX3Rlc3QgIlRMUyAxLjMgbS0+RzogQUVTXzEyOF9HQ01fU0hBMjU2LHNlY3AzODRyMSxlY2RzYV9zZWNwMzg0cjFfc2hhMzg0IiBcCi0gICAgICAgICAiJEdfTkVYVF9TUlZfTk9fQ0VSVCAtLWh0dHAgLS1kaXNhYmxlLWNsaWVudC1jZXJ0IC0tZGVidWc9NCAtLXg1MDljZXJ0ZmlsZSBkYXRhX2ZpbGVzL2VjZHNhX3NlY3AzODRyMS5jcnQgLS14NTA5a2V5ZmlsZSBkYXRhX2ZpbGVzL2VjZHNhX3NlY3AzODRyMS5rZXkgLS1wcmlvcml0eT1OT05FOitBRVMtMTI4LUdDTTorU0hBMjU2OitBRUFEOitTSUdOLUVDRFNBLVNFQ1AzODRSMS1TSEEzODQ6K0dST1VQLVNFQ1AzODRSMTorVkVSUy1UTFMxLjM6JU5PX1RJQ0tFVFMiIFwKLSAgICAgICAgICIkUF9DTEkgY2FfZmlsZT1kYXRhX2ZpbGVzL3Rlc3QtY2EyLmNydCBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMTI4LUdDTS1TSEEyNTYgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDM4NHIxX3NoYTM4NCBncm91cHM9c2VjcDM4NHIxIiBcCisgICAgICAgICAiJEdfTkVYVF9TUlZfTk9fQ0VSVCAtLWh0dHAgLS1kaXNhYmxlLWNsaWVudC1jZXJ0IC0tZGVidWc9NCAtLXg1MDljZXJ0ZmlsZSAkREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3AzODRyMS5jcnQgLS14NTA5a2V5ZmlsZSAkREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3AzODRyMS5rZXkgLS1wcmlvcml0eT1OT05FOitBRVMtMTI4LUdDTTorU0hBMjU2OitBRUFEOitTSUdOLUVDRFNBLVNFQ1AzODRSMS1TSEEzODQ6K0dST1VQLVNFQ1AzODRSMTorVkVSUy1UTFMxLjM6JU5PX1RJQ0tFVFMiIFwKKyAgICAgICAgICIkUF9DTEkgY2FfZmlsZT0kREFUQV9GSUxFU19QQVRIL3Rlc3QtY2EyLmNydCBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMTI4LUdDTS1TSEEyNTYgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDM4NHIxX3NoYTM4NCBncm91cHM9c2VjcDM4NHIxIiBcCiAgICAgICAgICAwIFwKICAgICAgICAgIC1jICJIVFRQLzEuMCAyMDAgT0siIFwKICAgICAgICAgIC1jICJQcm90b2NvbCBpcyBUTFN2MS4zIiBcCkBAIC02NzczLDggKzY3NzUsOCBAQAogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgTUJFRFRMU19TU0xfVExTMV8zX0NPTVBBVElCSUxJVFlfTU9ERQogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgUFNBX1dBTlRfQUxHX0VDREgKIHJ1bl90ZXN0ICJUTFMgMS4zIG0tPkc6IEFFU18xMjhfR0NNX1NIQTI1NixzZWNwMzg0cjEsZWNkc2Ffc2VjcDUyMXIxX3NoYTUxMiIgXAotICAgICAgICAgIiRHX05FWFRfU1JWX05PX0NFUlQgLS1odHRwIC0tZGlzYWJsZS1jbGllbnQtY2VydCAtLWRlYnVnPTQgLS14NTA5Y2VydGZpbGUgZGF0YV9maWxlcy9lY2RzYV9zZWNwNTIxcjEuY3J0IC0teDUwOWtleWZpbGUgZGF0YV9maWxlcy9lY2RzYV9zZWNwNTIxcjEua2V5IC0tcHJpb3JpdHk9Tk9ORTorQUVTLTEyOC1HQ006K1NIQTI1NjorQUVBRDorU0lHTi1FQ0RTQS1TRUNQNTIxUjEtU0hBNTEyOitHUk9VUC1TRUNQMzg0UjE6K1ZFUlMtVExTMS4zOiVOT19USUNLRVRTIiBcCi0gICAgICAgICAiJFBfQ0xJIGNhX2ZpbGU9ZGF0YV9maWxlcy90ZXN0LWNhMi5jcnQgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTEyOC1HQ00tU0hBMjU2IHNpZ19hbGdzPWVjZHNhX3NlY3A1MjFyMV9zaGE1MTIgZ3JvdXBzPXNlY3AzODRyMSIgXAorICAgICAgICAgIiRHX05FWFRfU1JWX05PX0NFUlQgLS1odHRwIC0tZGlzYWJsZS1jbGllbnQtY2VydCAtLWRlYnVnPTQgLS14NTA5Y2VydGZpbGUgJERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwNTIxcjEuY3J0IC0teDUwOWtleWZpbGUgJERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwNTIxcjEua2V5IC0tcHJpb3JpdHk9Tk9ORTorQUVTLTEyOC1HQ006K1NIQTI1NjorQUVBRDorU0lHTi1FQ0RTQS1TRUNQNTIxUjEtU0hBNTEyOitHUk9VUC1TRUNQMzg0UjE6K1ZFUlMtVExTMS4zOiVOT19USUNLRVRTIiBcCisgICAgICAgICAiJFBfQ0xJIGNhX2ZpbGU9JERBVEFfRklMRVNfUEFUSC90ZXN0LWNhMi5jcnQgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTEyOC1HQ00tU0hBMjU2IHNpZ19hbGdzPWVjZHNhX3NlY3A1MjFyMV9zaGE1MTIgZ3JvdXBzPXNlY3AzODRyMSIgXAogICAgICAgICAgMCBcCiAgICAgICAgICAtYyAiSFRUUC8xLjAgMjAwIE9LIiBcCiAgICAgICAgICAtYyAiUHJvdG9jb2wgaXMgVExTdjEuMyIgXApAQCAtNjc5NCw4ICs2Nzk2LDggQEAKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIE1CRURUTFNfWDUwOV9SU0FTU0FfUFNTX1NVUFBPUlQKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIFBTQV9XQU5UX0FMR19FQ0RICiBydW5fdGVzdCAiVExTIDEuMyBtLT5HOiBBRVNfMTI4X0dDTV9TSEEyNTYsc2VjcDM4NHIxLHJzYV9wc3NfcnNhZV9zaGEyNTYiIFwKLSAgICAgICAgICIkR19ORVhUX1NSVl9OT19DRVJUIC0taHR0cCAtLWRpc2FibGUtY2xpZW50LWNlcnQgLS1kZWJ1Zz00IC0teDUwOWNlcnRmaWxlIGRhdGFfZmlsZXMvc2VydmVyMi1zaGEyNTYuY3J0IC0teDUwOWtleWZpbGUgZGF0YV9maWxlcy9zZXJ2ZXIyLmtleSAtLXByaW9yaXR5PU5PTkU6K0FFUy0xMjgtR0NNOitTSEEyNTY6K0FFQUQ6K1NJR04tUlNBLVBTUy1SU0FFLVNIQTI1NjorR1JPVVAtU0VDUDM4NFIxOitWRVJTLVRMUzEuMzolTk9fVElDS0VUUyIgXAotICAgICAgICAgIiRQX0NMSSBjYV9maWxlPWRhdGFfZmlsZXMvdGVzdC1jYV9jYXQxMi5jcnQgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTEyOC1HQ00tU0hBMjU2IHNpZ19hbGdzPXJzYV9wc3NfcnNhZV9zaGEyNTYgZ3JvdXBzPXNlY3AzODRyMSIgXAorICAgICAgICAgIiRHX05FWFRfU1JWX05PX0NFUlQgLS1odHRwIC0tZGlzYWJsZS1jbGllbnQtY2VydCAtLWRlYnVnPTQgLS14NTA5Y2VydGZpbGUgJERBVEFfRklMRVNfUEFUSC9zZXJ2ZXIyLXNoYTI1Ni5jcnQgLS14NTA5a2V5ZmlsZSAkREFUQV9GSUxFU19QQVRIL3NlcnZlcjIua2V5IC0tcHJpb3JpdHk9Tk9ORTorQUVTLTEyOC1HQ006K1NIQTI1NjorQUVBRDorU0lHTi1SU0EtUFNTLVJTQUUtU0hBMjU2OitHUk9VUC1TRUNQMzg0UjE6K1ZFUlMtVExTMS4zOiVOT19USUNLRVRTIiBcCisgICAgICAgICAiJFBfQ0xJIGNhX2ZpbGU9JERBVEFfRklMRVNfUEFUSC90ZXN0LWNhX2NhdDEyLmNydCBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMTI4LUdDTS1TSEEyNTYgc2lnX2FsZ3M9cnNhX3Bzc19yc2FlX3NoYTI1NiBncm91cHM9c2VjcDM4NHIxIiBcCiAgICAgICAgICAwIFwKICAgICAgICAgIC1jICJIVFRQLzEuMCAyMDAgT0siIFwKICAgICAgICAgIC1jICJQcm90b2NvbCBpcyBUTFN2MS4zIiBcCkBAIC02ODE0LDggKzY4MTYsOCBAQAogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgTUJFRFRMU19TU0xfVExTMV8zX0NPTVBBVElCSUxJVFlfTU9ERQogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgUFNBX1dBTlRfQUxHX0VDREgKIHJ1bl90ZXN0ICJUTFMgMS4zIG0tPkc6IEFFU18xMjhfR0NNX1NIQTI1NixzZWNwNTIxcjEsZWNkc2Ffc2VjcDI1NnIxX3NoYTI1NiIgXAotICAgICAgICAgIiRHX05FWFRfU1JWX05PX0NFUlQgLS1odHRwIC0tZGlzYWJsZS1jbGllbnQtY2VydCAtLWRlYnVnPTQgLS14NTA5Y2VydGZpbGUgZGF0YV9maWxlcy9lY2RzYV9zZWNwMjU2cjEuY3J0IC0teDUwOWtleWZpbGUgZGF0YV9maWxlcy9lY2RzYV9zZWNwMjU2cjEua2V5IC0tcHJpb3JpdHk9Tk9ORTorQUVTLTEyOC1HQ006K1NIQTI1NjorQUVBRDorU0lHTi1FQ0RTQS1TRUNQMjU2UjEtU0hBMjU2OitHUk9VUC1TRUNQNTIxUjE6K1ZFUlMtVExTMS4zOiVOT19USUNLRVRTIiBcCi0gICAgICAgICAiJFBfQ0xJIGNhX2ZpbGU9ZGF0YV9maWxlcy90ZXN0LWNhMi5jcnQgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTEyOC1HQ00tU0hBMjU2IHNpZ19hbGdzPWVjZHNhX3NlY3AyNTZyMV9zaGEyNTYgZ3JvdXBzPXNlY3A1MjFyMSIgXAorICAgICAgICAgIiRHX05FWFRfU1JWX05PX0NFUlQgLS1odHRwIC0tZGlzYWJsZS1jbGllbnQtY2VydCAtLWRlYnVnPTQgLS14NTA5Y2VydGZpbGUgJERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwMjU2cjEuY3J0IC0teDUwOWtleWZpbGUgJERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwMjU2cjEua2V5IC0tcHJpb3JpdHk9Tk9ORTorQUVTLTEyOC1HQ006K1NIQTI1NjorQUVBRDorU0lHTi1FQ0RTQS1TRUNQMjU2UjEtU0hBMjU2OitHUk9VUC1TRUNQNTIxUjE6K1ZFUlMtVExTMS4zOiVOT19USUNLRVRTIiBcCisgICAgICAgICAiJFBfQ0xJIGNhX2ZpbGU9JERBVEFfRklMRVNfUEFUSC90ZXN0LWNhMi5jcnQgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTEyOC1HQ00tU0hBMjU2IHNpZ19hbGdzPWVjZHNhX3NlY3AyNTZyMV9zaGEyNTYgZ3JvdXBzPXNlY3A1MjFyMSIgXAogICAgICAgICAgMCBcCiAgICAgICAgICAtYyAiSFRUUC8xLjAgMjAwIE9LIiBcCiAgICAgICAgICAtYyAiUHJvdG9jb2wgaXMgVExTdjEuMyIgXApAQCAtNjgzNCw4ICs2ODM2LDggQEAKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIE1CRURUTFNfU1NMX1RMUzFfM19DT01QQVRJQklMSVRZX01PREUKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIFBTQV9XQU5UX0FMR19FQ0RICiBydW5fdGVzdCAiVExTIDEuMyBtLT5HOiBBRVNfMTI4X0dDTV9TSEEyNTYsc2VjcDUyMXIxLGVjZHNhX3NlY3AzODRyMV9zaGEzODQiIFwKLSAgICAgICAgICIkR19ORVhUX1NSVl9OT19DRVJUIC0taHR0cCAtLWRpc2FibGUtY2xpZW50LWNlcnQgLS1kZWJ1Zz00IC0teDUwOWNlcnRmaWxlIGRhdGFfZmlsZXMvZWNkc2Ffc2VjcDM4NHIxLmNydCAtLXg1MDlrZXlmaWxlIGRhdGFfZmlsZXMvZWNkc2Ffc2VjcDM4NHIxLmtleSAtLXByaW9yaXR5PU5PTkU6K0FFUy0xMjgtR0NNOitTSEEyNTY6K0FFQUQ6K1NJR04tRUNEU0EtU0VDUDM4NFIxLVNIQTM4NDorR1JPVVAtU0VDUDUyMVIxOitWRVJTLVRMUzEuMzolTk9fVElDS0VUUyIgXAotICAgICAgICAgIiRQX0NMSSBjYV9maWxlPWRhdGFfZmlsZXMvdGVzdC1jYTIuY3J0IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0xMjgtR0NNLVNIQTI1NiBzaWdfYWxncz1lY2RzYV9zZWNwMzg0cjFfc2hhMzg0IGdyb3Vwcz1zZWNwNTIxcjEiIFwKKyAgICAgICAgICIkR19ORVhUX1NSVl9OT19DRVJUIC0taHR0cCAtLWRpc2FibGUtY2xpZW50LWNlcnQgLS1kZWJ1Zz00IC0teDUwOWNlcnRmaWxlICREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDM4NHIxLmNydCAtLXg1MDlrZXlmaWxlICREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDM4NHIxLmtleSAtLXByaW9yaXR5PU5PTkU6K0FFUy0xMjgtR0NNOitTSEEyNTY6K0FFQUQ6K1NJR04tRUNEU0EtU0VDUDM4NFIxLVNIQTM4NDorR1JPVVAtU0VDUDUyMVIxOitWRVJTLVRMUzEuMzolTk9fVElDS0VUUyIgXAorICAgICAgICAgIiRQX0NMSSBjYV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvdGVzdC1jYTIuY3J0IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0xMjgtR0NNLVNIQTI1NiBzaWdfYWxncz1lY2RzYV9zZWNwMzg0cjFfc2hhMzg0IGdyb3Vwcz1zZWNwNTIxcjEiIFwKICAgICAgICAgIDAgXAogICAgICAgICAgLWMgIkhUVFAvMS4wIDIwMCBPSyIgXAogICAgICAgICAgLWMgIlByb3RvY29sIGlzIFRMU3YxLjMiIFwKQEAgLTY4NTQsOCArNjg1Niw4IEBACiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBNQkVEVExTX1NTTF9UTFMxXzNfQ09NUEFUSUJJTElUWV9NT0RFCiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBQU0FfV0FOVF9BTEdfRUNESAogcnVuX3Rlc3QgIlRMUyAxLjMgbS0+RzogQUVTXzEyOF9HQ01fU0hBMjU2LHNlY3A1MjFyMSxlY2RzYV9zZWNwNTIxcjFfc2hhNTEyIiBcCi0gICAgICAgICAiJEdfTkVYVF9TUlZfTk9fQ0VSVCAtLWh0dHAgLS1kaXNhYmxlLWNsaWVudC1jZXJ0IC0tZGVidWc9NCAtLXg1MDljZXJ0ZmlsZSBkYXRhX2ZpbGVzL2VjZHNhX3NlY3A1MjFyMS5jcnQgLS14NTA5a2V5ZmlsZSBkYXRhX2ZpbGVzL2VjZHNhX3NlY3A1MjFyMS5rZXkgLS1wcmlvcml0eT1OT05FOitBRVMtMTI4LUdDTTorU0hBMjU2OitBRUFEOitTSUdOLUVDRFNBLVNFQ1A1MjFSMS1TSEE1MTI6K0dST1VQLVNFQ1A1MjFSMTorVkVSUy1UTFMxLjM6JU5PX1RJQ0tFVFMiIFwKLSAgICAgICAgICIkUF9DTEkgY2FfZmlsZT1kYXRhX2ZpbGVzL3Rlc3QtY2EyLmNydCBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMTI4LUdDTS1TSEEyNTYgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDUyMXIxX3NoYTUxMiBncm91cHM9c2VjcDUyMXIxIiBcCisgICAgICAgICAiJEdfTkVYVF9TUlZfTk9fQ0VSVCAtLWh0dHAgLS1kaXNhYmxlLWNsaWVudC1jZXJ0IC0tZGVidWc9NCAtLXg1MDljZXJ0ZmlsZSAkREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3A1MjFyMS5jcnQgLS14NTA5a2V5ZmlsZSAkREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3A1MjFyMS5rZXkgLS1wcmlvcml0eT1OT05FOitBRVMtMTI4LUdDTTorU0hBMjU2OitBRUFEOitTSUdOLUVDRFNBLVNFQ1A1MjFSMS1TSEE1MTI6K0dST1VQLVNFQ1A1MjFSMTorVkVSUy1UTFMxLjM6JU5PX1RJQ0tFVFMiIFwKKyAgICAgICAgICIkUF9DTEkgY2FfZmlsZT0kREFUQV9GSUxFU19QQVRIL3Rlc3QtY2EyLmNydCBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMTI4LUdDTS1TSEEyNTYgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDUyMXIxX3NoYTUxMiBncm91cHM9c2VjcDUyMXIxIiBcCiAgICAgICAgICAwIFwKICAgICAgICAgIC1jICJIVFRQLzEuMCAyMDAgT0siIFwKICAgICAgICAgIC1jICJQcm90b2NvbCBpcyBUTFN2MS4zIiBcCkBAIC02ODc1LDggKzY4NzcsOCBAQAogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgTUJFRFRMU19YNTA5X1JTQVNTQV9QU1NfU1VQUE9SVAogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgUFNBX1dBTlRfQUxHX0VDREgKIHJ1bl90ZXN0ICJUTFMgMS4zIG0tPkc6IEFFU18xMjhfR0NNX1NIQTI1NixzZWNwNTIxcjEscnNhX3Bzc19yc2FlX3NoYTI1NiIgXAotICAgICAgICAgIiRHX05FWFRfU1JWX05PX0NFUlQgLS1odHRwIC0tZGlzYWJsZS1jbGllbnQtY2VydCAtLWRlYnVnPTQgLS14NTA5Y2VydGZpbGUgZGF0YV9maWxlcy9zZXJ2ZXIyLXNoYTI1Ni5jcnQgLS14NTA5a2V5ZmlsZSBkYXRhX2ZpbGVzL3NlcnZlcjIua2V5IC0tcHJpb3JpdHk9Tk9ORTorQUVTLTEyOC1HQ006K1NIQTI1NjorQUVBRDorU0lHTi1SU0EtUFNTLVJTQUUtU0hBMjU2OitHUk9VUC1TRUNQNTIxUjE6K1ZFUlMtVExTMS4zOiVOT19USUNLRVRTIiBcCi0gICAgICAgICAiJFBfQ0xJIGNhX2ZpbGU9ZGF0YV9maWxlcy90ZXN0LWNhX2NhdDEyLmNydCBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMTI4LUdDTS1TSEEyNTYgc2lnX2FsZ3M9cnNhX3Bzc19yc2FlX3NoYTI1NiBncm91cHM9c2VjcDUyMXIxIiBcCisgICAgICAgICAiJEdfTkVYVF9TUlZfTk9fQ0VSVCAtLWh0dHAgLS1kaXNhYmxlLWNsaWVudC1jZXJ0IC0tZGVidWc9NCAtLXg1MDljZXJ0ZmlsZSAkREFUQV9GSUxFU19QQVRIL3NlcnZlcjItc2hhMjU2LmNydCAtLXg1MDlrZXlmaWxlICREQVRBX0ZJTEVTX1BBVEgvc2VydmVyMi5rZXkgLS1wcmlvcml0eT1OT05FOitBRVMtMTI4LUdDTTorU0hBMjU2OitBRUFEOitTSUdOLVJTQS1QU1MtUlNBRS1TSEEyNTY6K0dST1VQLVNFQ1A1MjFSMTorVkVSUy1UTFMxLjM6JU5PX1RJQ0tFVFMiIFwKKyAgICAgICAgICIkUF9DTEkgY2FfZmlsZT0kREFUQV9GSUxFU19QQVRIL3Rlc3QtY2FfY2F0MTIuY3J0IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0xMjgtR0NNLVNIQTI1NiBzaWdfYWxncz1yc2FfcHNzX3JzYWVfc2hhMjU2IGdyb3Vwcz1zZWNwNTIxcjEiIFwKICAgICAgICAgIDAgXAogICAgICAgICAgLWMgIkhUVFAvMS4wIDIwMCBPSyIgXAogICAgICAgICAgLWMgIlByb3RvY29sIGlzIFRMU3YxLjMiIFwKQEAgLTY4OTUsOCArNjg5Nyw4IEBACiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBNQkVEVExTX1NTTF9UTFMxXzNfQ09NUEFUSUJJTElUWV9NT0RFCiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBQU0FfV0FOVF9BTEdfRUNESAogcnVuX3Rlc3QgIlRMUyAxLjMgbS0+RzogQUVTXzEyOF9HQ01fU0hBMjU2LHgyNTUxOSxlY2RzYV9zZWNwMjU2cjFfc2hhMjU2IiBcCi0gICAgICAgICAiJEdfTkVYVF9TUlZfTk9fQ0VSVCAtLWh0dHAgLS1kaXNhYmxlLWNsaWVudC1jZXJ0IC0tZGVidWc9NCAtLXg1MDljZXJ0ZmlsZSBkYXRhX2ZpbGVzL2VjZHNhX3NlY3AyNTZyMS5jcnQgLS14NTA5a2V5ZmlsZSBkYXRhX2ZpbGVzL2VjZHNhX3NlY3AyNTZyMS5rZXkgLS1wcmlvcml0eT1OT05FOitBRVMtMTI4LUdDTTorU0hBMjU2OitBRUFEOitTSUdOLUVDRFNBLVNFQ1AyNTZSMS1TSEEyNTY6K0dST1VQLVgyNTUxOTorVkVSUy1UTFMxLjM6JU5PX1RJQ0tFVFMiIFwKLSAgICAgICAgICIkUF9DTEkgY2FfZmlsZT1kYXRhX2ZpbGVzL3Rlc3QtY2EyLmNydCBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMTI4LUdDTS1TSEEyNTYgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDI1NnIxX3NoYTI1NiBncm91cHM9eDI1NTE5IiBcCisgICAgICAgICAiJEdfTkVYVF9TUlZfTk9fQ0VSVCAtLWh0dHAgLS1kaXNhYmxlLWNsaWVudC1jZXJ0IC0tZGVidWc9NCAtLXg1MDljZXJ0ZmlsZSAkREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3AyNTZyMS5jcnQgLS14NTA5a2V5ZmlsZSAkREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3AyNTZyMS5rZXkgLS1wcmlvcml0eT1OT05FOitBRVMtMTI4LUdDTTorU0hBMjU2OitBRUFEOitTSUdOLUVDRFNBLVNFQ1AyNTZSMS1TSEEyNTY6K0dST1VQLVgyNTUxOTorVkVSUy1UTFMxLjM6JU5PX1RJQ0tFVFMiIFwKKyAgICAgICAgICIkUF9DTEkgY2FfZmlsZT0kREFUQV9GSUxFU19QQVRIL3Rlc3QtY2EyLmNydCBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMTI4LUdDTS1TSEEyNTYgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDI1NnIxX3NoYTI1NiBncm91cHM9eDI1NTE5IiBcCiAgICAgICAgICAwIFwKICAgICAgICAgIC1jICJIVFRQLzEuMCAyMDAgT0siIFwKICAgICAgICAgIC1jICJQcm90b2NvbCBpcyBUTFN2MS4zIiBcCkBAIC02OTE1LDggKzY5MTcsOCBAQAogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgTUJFRFRMU19TU0xfVExTMV8zX0NPTVBBVElCSUxJVFlfTU9ERQogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgUFNBX1dBTlRfQUxHX0VDREgKIHJ1bl90ZXN0ICJUTFMgMS4zIG0tPkc6IEFFU18xMjhfR0NNX1NIQTI1Nix4MjU1MTksZWNkc2Ffc2VjcDM4NHIxX3NoYTM4NCIgXAotICAgICAgICAgIiRHX05FWFRfU1JWX05PX0NFUlQgLS1odHRwIC0tZGlzYWJsZS1jbGllbnQtY2VydCAtLWRlYnVnPTQgLS14NTA5Y2VydGZpbGUgZGF0YV9maWxlcy9lY2RzYV9zZWNwMzg0cjEuY3J0IC0teDUwOWtleWZpbGUgZGF0YV9maWxlcy9lY2RzYV9zZWNwMzg0cjEua2V5IC0tcHJpb3JpdHk9Tk9ORTorQUVTLTEyOC1HQ006K1NIQTI1NjorQUVBRDorU0lHTi1FQ0RTQS1TRUNQMzg0UjEtU0hBMzg0OitHUk9VUC1YMjU1MTk6K1ZFUlMtVExTMS4zOiVOT19USUNLRVRTIiBcCi0gICAgICAgICAiJFBfQ0xJIGNhX2ZpbGU9ZGF0YV9maWxlcy90ZXN0LWNhMi5jcnQgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTEyOC1HQ00tU0hBMjU2IHNpZ19hbGdzPWVjZHNhX3NlY3AzODRyMV9zaGEzODQgZ3JvdXBzPXgyNTUxOSIgXAorICAgICAgICAgIiRHX05FWFRfU1JWX05PX0NFUlQgLS1odHRwIC0tZGlzYWJsZS1jbGllbnQtY2VydCAtLWRlYnVnPTQgLS14NTA5Y2VydGZpbGUgJERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwMzg0cjEuY3J0IC0teDUwOWtleWZpbGUgJERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwMzg0cjEua2V5IC0tcHJpb3JpdHk9Tk9ORTorQUVTLTEyOC1HQ006K1NIQTI1NjorQUVBRDorU0lHTi1FQ0RTQS1TRUNQMzg0UjEtU0hBMzg0OitHUk9VUC1YMjU1MTk6K1ZFUlMtVExTMS4zOiVOT19USUNLRVRTIiBcCisgICAgICAgICAiJFBfQ0xJIGNhX2ZpbGU9JERBVEFfRklMRVNfUEFUSC90ZXN0LWNhMi5jcnQgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTEyOC1HQ00tU0hBMjU2IHNpZ19hbGdzPWVjZHNhX3NlY3AzODRyMV9zaGEzODQgZ3JvdXBzPXgyNTUxOSIgXAogICAgICAgICAgMCBcCiAgICAgICAgICAtYyAiSFRUUC8xLjAgMjAwIE9LIiBcCiAgICAgICAgICAtYyAiUHJvdG9jb2wgaXMgVExTdjEuMyIgXApAQCAtNjkzNSw4ICs2OTM3LDggQEAKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIE1CRURUTFNfU1NMX1RMUzFfM19DT01QQVRJQklMSVRZX01PREUKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIFBTQV9XQU5UX0FMR19FQ0RICiBydW5fdGVzdCAiVExTIDEuMyBtLT5HOiBBRVNfMTI4X0dDTV9TSEEyNTYseDI1NTE5LGVjZHNhX3NlY3A1MjFyMV9zaGE1MTIiIFwKLSAgICAgICAgICIkR19ORVhUX1NSVl9OT19DRVJUIC0taHR0cCAtLWRpc2FibGUtY2xpZW50LWNlcnQgLS1kZWJ1Zz00IC0teDUwOWNlcnRmaWxlIGRhdGFfZmlsZXMvZWNkc2Ffc2VjcDUyMXIxLmNydCAtLXg1MDlrZXlmaWxlIGRhdGFfZmlsZXMvZWNkc2Ffc2VjcDUyMXIxLmtleSAtLXByaW9yaXR5PU5PTkU6K0FFUy0xMjgtR0NNOitTSEEyNTY6K0FFQUQ6K1NJR04tRUNEU0EtU0VDUDUyMVIxLVNIQTUxMjorR1JPVVAtWDI1NTE5OitWRVJTLVRMUzEuMzolTk9fVElDS0VUUyIgXAotICAgICAgICAgIiRQX0NMSSBjYV9maWxlPWRhdGFfZmlsZXMvdGVzdC1jYTIuY3J0IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0xMjgtR0NNLVNIQTI1NiBzaWdfYWxncz1lY2RzYV9zZWNwNTIxcjFfc2hhNTEyIGdyb3Vwcz14MjU1MTkiIFwKKyAgICAgICAgICIkR19ORVhUX1NSVl9OT19DRVJUIC0taHR0cCAtLWRpc2FibGUtY2xpZW50LWNlcnQgLS1kZWJ1Zz00IC0teDUwOWNlcnRmaWxlICREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDUyMXIxLmNydCAtLXg1MDlrZXlmaWxlICREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDUyMXIxLmtleSAtLXByaW9yaXR5PU5PTkU6K0FFUy0xMjgtR0NNOitTSEEyNTY6K0FFQUQ6K1NJR04tRUNEU0EtU0VDUDUyMVIxLVNIQTUxMjorR1JPVVAtWDI1NTE5OitWRVJTLVRMUzEuMzolTk9fVElDS0VUUyIgXAorICAgICAgICAgIiRQX0NMSSBjYV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvdGVzdC1jYTIuY3J0IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0xMjgtR0NNLVNIQTI1NiBzaWdfYWxncz1lY2RzYV9zZWNwNTIxcjFfc2hhNTEyIGdyb3Vwcz14MjU1MTkiIFwKICAgICAgICAgIDAgXAogICAgICAgICAgLWMgIkhUVFAvMS4wIDIwMCBPSyIgXAogICAgICAgICAgLWMgIlByb3RvY29sIGlzIFRMU3YxLjMiIFwKQEAgLTY5NTYsOCArNjk1OCw4IEBACiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBNQkVEVExTX1g1MDlfUlNBU1NBX1BTU19TVVBQT1JUCiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBQU0FfV0FOVF9BTEdfRUNESAogcnVuX3Rlc3QgIlRMUyAxLjMgbS0+RzogQUVTXzEyOF9HQ01fU0hBMjU2LHgyNTUxOSxyc2FfcHNzX3JzYWVfc2hhMjU2IiBcCi0gICAgICAgICAiJEdfTkVYVF9TUlZfTk9fQ0VSVCAtLWh0dHAgLS1kaXNhYmxlLWNsaWVudC1jZXJ0IC0tZGVidWc9NCAtLXg1MDljZXJ0ZmlsZSBkYXRhX2ZpbGVzL3NlcnZlcjItc2hhMjU2LmNydCAtLXg1MDlrZXlmaWxlIGRhdGFfZmlsZXMvc2VydmVyMi5rZXkgLS1wcmlvcml0eT1OT05FOitBRVMtMTI4LUdDTTorU0hBMjU2OitBRUFEOitTSUdOLVJTQS1QU1MtUlNBRS1TSEEyNTY6K0dST1VQLVgyNTUxOTorVkVSUy1UTFMxLjM6JU5PX1RJQ0tFVFMiIFwKLSAgICAgICAgICIkUF9DTEkgY2FfZmlsZT1kYXRhX2ZpbGVzL3Rlc3QtY2FfY2F0MTIuY3J0IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0xMjgtR0NNLVNIQTI1NiBzaWdfYWxncz1yc2FfcHNzX3JzYWVfc2hhMjU2IGdyb3Vwcz14MjU1MTkiIFwKKyAgICAgICAgICIkR19ORVhUX1NSVl9OT19DRVJUIC0taHR0cCAtLWRpc2FibGUtY2xpZW50LWNlcnQgLS1kZWJ1Zz00IC0teDUwOWNlcnRmaWxlICREQVRBX0ZJTEVTX1BBVEgvc2VydmVyMi1zaGEyNTYuY3J0IC0teDUwOWtleWZpbGUgJERBVEFfRklMRVNfUEFUSC9zZXJ2ZXIyLmtleSAtLXByaW9yaXR5PU5PTkU6K0FFUy0xMjgtR0NNOitTSEEyNTY6K0FFQUQ6K1NJR04tUlNBLVBTUy1SU0FFLVNIQTI1NjorR1JPVVAtWDI1NTE5OitWRVJTLVRMUzEuMzolTk9fVElDS0VUUyIgXAorICAgICAgICAgIiRQX0NMSSBjYV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvdGVzdC1jYV9jYXQxMi5jcnQgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTEyOC1HQ00tU0hBMjU2IHNpZ19hbGdzPXJzYV9wc3NfcnNhZV9zaGEyNTYgZ3JvdXBzPXgyNTUxOSIgXAogICAgICAgICAgMCBcCiAgICAgICAgICAtYyAiSFRUUC8xLjAgMjAwIE9LIiBcCiAgICAgICAgICAtYyAiUHJvdG9jb2wgaXMgVExTdjEuMyIgXApAQCAtNjk3Niw4ICs2OTc4LDggQEAKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIE1CRURUTFNfU1NMX1RMUzFfM19DT01QQVRJQklMSVRZX01PREUKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIFBTQV9XQU5UX0FMR19FQ0RICiBydW5fdGVzdCAiVExTIDEuMyBtLT5HOiBBRVNfMTI4X0dDTV9TSEEyNTYseDQ0OCxlY2RzYV9zZWNwMjU2cjFfc2hhMjU2IiBcCi0gICAgICAgICAiJEdfTkVYVF9TUlZfTk9fQ0VSVCAtLWh0dHAgLS1kaXNhYmxlLWNsaWVudC1jZXJ0IC0tZGVidWc9NCAtLXg1MDljZXJ0ZmlsZSBkYXRhX2ZpbGVzL2VjZHNhX3NlY3AyNTZyMS5jcnQgLS14NTA5a2V5ZmlsZSBkYXRhX2ZpbGVzL2VjZHNhX3NlY3AyNTZyMS5rZXkgLS1wcmlvcml0eT1OT05FOitBRVMtMTI4LUdDTTorU0hBMjU2OitBRUFEOitTSUdOLUVDRFNBLVNFQ1AyNTZSMS1TSEEyNTY6K0dST1VQLVg0NDg6K1ZFUlMtVExTMS4zOiVOT19USUNLRVRTIiBcCi0gICAgICAgICAiJFBfQ0xJIGNhX2ZpbGU9ZGF0YV9maWxlcy90ZXN0LWNhMi5jcnQgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTEyOC1HQ00tU0hBMjU2IHNpZ19hbGdzPWVjZHNhX3NlY3AyNTZyMV9zaGEyNTYgZ3JvdXBzPXg0NDgiIFwKKyAgICAgICAgICIkR19ORVhUX1NSVl9OT19DRVJUIC0taHR0cCAtLWRpc2FibGUtY2xpZW50LWNlcnQgLS1kZWJ1Zz00IC0teDUwOWNlcnRmaWxlICREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDI1NnIxLmNydCAtLXg1MDlrZXlmaWxlICREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDI1NnIxLmtleSAtLXByaW9yaXR5PU5PTkU6K0FFUy0xMjgtR0NNOitTSEEyNTY6K0FFQUQ6K1NJR04tRUNEU0EtU0VDUDI1NlIxLVNIQTI1NjorR1JPVVAtWDQ0ODorVkVSUy1UTFMxLjM6JU5PX1RJQ0tFVFMiIFwKKyAgICAgICAgICIkUF9DTEkgY2FfZmlsZT0kREFUQV9GSUxFU19QQVRIL3Rlc3QtY2EyLmNydCBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMTI4LUdDTS1TSEEyNTYgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDI1NnIxX3NoYTI1NiBncm91cHM9eDQ0OCIgXAogICAgICAgICAgMCBcCiAgICAgICAgICAtYyAiSFRUUC8xLjAgMjAwIE9LIiBcCiAgICAgICAgICAtYyAiUHJvdG9jb2wgaXMgVExTdjEuMyIgXApAQCAtNjk5Niw4ICs2OTk4LDggQEAKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIE1CRURUTFNfU1NMX1RMUzFfM19DT01QQVRJQklMSVRZX01PREUKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIFBTQV9XQU5UX0FMR19FQ0RICiBydW5fdGVzdCAiVExTIDEuMyBtLT5HOiBBRVNfMTI4X0dDTV9TSEEyNTYseDQ0OCxlY2RzYV9zZWNwMzg0cjFfc2hhMzg0IiBcCi0gICAgICAgICAiJEdfTkVYVF9TUlZfTk9fQ0VSVCAtLWh0dHAgLS1kaXNhYmxlLWNsaWVudC1jZXJ0IC0tZGVidWc9NCAtLXg1MDljZXJ0ZmlsZSBkYXRhX2ZpbGVzL2VjZHNhX3NlY3AzODRyMS5jcnQgLS14NTA5a2V5ZmlsZSBkYXRhX2ZpbGVzL2VjZHNhX3NlY3AzODRyMS5rZXkgLS1wcmlvcml0eT1OT05FOitBRVMtMTI4LUdDTTorU0hBMjU2OitBRUFEOitTSUdOLUVDRFNBLVNFQ1AzODRSMS1TSEEzODQ6K0dST1VQLVg0NDg6K1ZFUlMtVExTMS4zOiVOT19USUNLRVRTIiBcCi0gICAgICAgICAiJFBfQ0xJIGNhX2ZpbGU9ZGF0YV9maWxlcy90ZXN0LWNhMi5jcnQgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTEyOC1HQ00tU0hBMjU2IHNpZ19hbGdzPWVjZHNhX3NlY3AzODRyMV9zaGEzODQgZ3JvdXBzPXg0NDgiIFwKKyAgICAgICAgICIkR19ORVhUX1NSVl9OT19DRVJUIC0taHR0cCAtLWRpc2FibGUtY2xpZW50LWNlcnQgLS1kZWJ1Zz00IC0teDUwOWNlcnRmaWxlICREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDM4NHIxLmNydCAtLXg1MDlrZXlmaWxlICREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDM4NHIxLmtleSAtLXByaW9yaXR5PU5PTkU6K0FFUy0xMjgtR0NNOitTSEEyNTY6K0FFQUQ6K1NJR04tRUNEU0EtU0VDUDM4NFIxLVNIQTM4NDorR1JPVVAtWDQ0ODorVkVSUy1UTFMxLjM6JU5PX1RJQ0tFVFMiIFwKKyAgICAgICAgICIkUF9DTEkgY2FfZmlsZT0kREFUQV9GSUxFU19QQVRIL3Rlc3QtY2EyLmNydCBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMTI4LUdDTS1TSEEyNTYgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDM4NHIxX3NoYTM4NCBncm91cHM9eDQ0OCIgXAogICAgICAgICAgMCBcCiAgICAgICAgICAtYyAiSFRUUC8xLjAgMjAwIE9LIiBcCiAgICAgICAgICAtYyAiUHJvdG9jb2wgaXMgVExTdjEuMyIgXApAQCAtNzAxNiw4ICs3MDE4LDggQEAKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIE1CRURUTFNfU1NMX1RMUzFfM19DT01QQVRJQklMSVRZX01PREUKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIFBTQV9XQU5UX0FMR19FQ0RICiBydW5fdGVzdCAiVExTIDEuMyBtLT5HOiBBRVNfMTI4X0dDTV9TSEEyNTYseDQ0OCxlY2RzYV9zZWNwNTIxcjFfc2hhNTEyIiBcCi0gICAgICAgICAiJEdfTkVYVF9TUlZfTk9fQ0VSVCAtLWh0dHAgLS1kaXNhYmxlLWNsaWVudC1jZXJ0IC0tZGVidWc9NCAtLXg1MDljZXJ0ZmlsZSBkYXRhX2ZpbGVzL2VjZHNhX3NlY3A1MjFyMS5jcnQgLS14NTA5a2V5ZmlsZSBkYXRhX2ZpbGVzL2VjZHNhX3NlY3A1MjFyMS5rZXkgLS1wcmlvcml0eT1OT05FOitBRVMtMTI4LUdDTTorU0hBMjU2OitBRUFEOitTSUdOLUVDRFNBLVNFQ1A1MjFSMS1TSEE1MTI6K0dST1VQLVg0NDg6K1ZFUlMtVExTMS4zOiVOT19USUNLRVRTIiBcCi0gICAgICAgICAiJFBfQ0xJIGNhX2ZpbGU9ZGF0YV9maWxlcy90ZXN0LWNhMi5jcnQgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTEyOC1HQ00tU0hBMjU2IHNpZ19hbGdzPWVjZHNhX3NlY3A1MjFyMV9zaGE1MTIgZ3JvdXBzPXg0NDgiIFwKKyAgICAgICAgICIkR19ORVhUX1NSVl9OT19DRVJUIC0taHR0cCAtLWRpc2FibGUtY2xpZW50LWNlcnQgLS1kZWJ1Zz00IC0teDUwOWNlcnRmaWxlICREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDUyMXIxLmNydCAtLXg1MDlrZXlmaWxlICREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDUyMXIxLmtleSAtLXByaW9yaXR5PU5PTkU6K0FFUy0xMjgtR0NNOitTSEEyNTY6K0FFQUQ6K1NJR04tRUNEU0EtU0VDUDUyMVIxLVNIQTUxMjorR1JPVVAtWDQ0ODorVkVSUy1UTFMxLjM6JU5PX1RJQ0tFVFMiIFwKKyAgICAgICAgICIkUF9DTEkgY2FfZmlsZT0kREFUQV9GSUxFU19QQVRIL3Rlc3QtY2EyLmNydCBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMTI4LUdDTS1TSEEyNTYgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDUyMXIxX3NoYTUxMiBncm91cHM9eDQ0OCIgXAogICAgICAgICAgMCBcCiAgICAgICAgICAtYyAiSFRUUC8xLjAgMjAwIE9LIiBcCiAgICAgICAgICAtYyAiUHJvdG9jb2wgaXMgVExTdjEuMyIgXApAQCAtNzAzNyw4ICs3MDM5LDggQEAKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIE1CRURUTFNfWDUwOV9SU0FTU0FfUFNTX1NVUFBPUlQKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIFBTQV9XQU5UX0FMR19FQ0RICiBydW5fdGVzdCAiVExTIDEuMyBtLT5HOiBBRVNfMTI4X0dDTV9TSEEyNTYseDQ0OCxyc2FfcHNzX3JzYWVfc2hhMjU2IiBcCi0gICAgICAgICAiJEdfTkVYVF9TUlZfTk9fQ0VSVCAtLWh0dHAgLS1kaXNhYmxlLWNsaWVudC1jZXJ0IC0tZGVidWc9NCAtLXg1MDljZXJ0ZmlsZSBkYXRhX2ZpbGVzL3NlcnZlcjItc2hhMjU2LmNydCAtLXg1MDlrZXlmaWxlIGRhdGFfZmlsZXMvc2VydmVyMi5rZXkgLS1wcmlvcml0eT1OT05FOitBRVMtMTI4LUdDTTorU0hBMjU2OitBRUFEOitTSUdOLVJTQS1QU1MtUlNBRS1TSEEyNTY6K0dST1VQLVg0NDg6K1ZFUlMtVExTMS4zOiVOT19USUNLRVRTIiBcCi0gICAgICAgICAiJFBfQ0xJIGNhX2ZpbGU9ZGF0YV9maWxlcy90ZXN0LWNhX2NhdDEyLmNydCBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMTI4LUdDTS1TSEEyNTYgc2lnX2FsZ3M9cnNhX3Bzc19yc2FlX3NoYTI1NiBncm91cHM9eDQ0OCIgXAorICAgICAgICAgIiRHX05FWFRfU1JWX05PX0NFUlQgLS1odHRwIC0tZGlzYWJsZS1jbGllbnQtY2VydCAtLWRlYnVnPTQgLS14NTA5Y2VydGZpbGUgJERBVEFfRklMRVNfUEFUSC9zZXJ2ZXIyLXNoYTI1Ni5jcnQgLS14NTA5a2V5ZmlsZSAkREFUQV9GSUxFU19QQVRIL3NlcnZlcjIua2V5IC0tcHJpb3JpdHk9Tk9ORTorQUVTLTEyOC1HQ006K1NIQTI1NjorQUVBRDorU0lHTi1SU0EtUFNTLVJTQUUtU0hBMjU2OitHUk9VUC1YNDQ4OitWRVJTLVRMUzEuMzolTk9fVElDS0VUUyIgXAorICAgICAgICAgIiRQX0NMSSBjYV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvdGVzdC1jYV9jYXQxMi5jcnQgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTEyOC1HQ00tU0hBMjU2IHNpZ19hbGdzPXJzYV9wc3NfcnNhZV9zaGEyNTYgZ3JvdXBzPXg0NDgiIFwKICAgICAgICAgIDAgXAogICAgICAgICAgLWMgIkhUVFAvMS4wIDIwMCBPSyIgXAogICAgICAgICAgLWMgIlByb3RvY29sIGlzIFRMU3YxLjMiIFwKQEAgLTcwNTgsOCArNzA2MCw4IEBACiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBQU0FfV0FOVF9BTEdfRkZESAogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgUFNBX1dBTlRfREhfUkZDNzkxOV8yMDQ4CiBydW5fdGVzdCAiVExTIDEuMyBtLT5HOiBBRVNfMTI4X0dDTV9TSEEyNTYsZmZkaGUyMDQ4LGVjZHNhX3NlY3AyNTZyMV9zaGEyNTYiIFwKLSAgICAgICAgICIkR19ORVhUX1NSVl9OT19DRVJUIC0taHR0cCAtLWRpc2FibGUtY2xpZW50LWNlcnQgLS1kZWJ1Zz00IC0teDUwOWNlcnRmaWxlIGRhdGFfZmlsZXMvZWNkc2Ffc2VjcDI1NnIxLmNydCAtLXg1MDlrZXlmaWxlIGRhdGFfZmlsZXMvZWNkc2Ffc2VjcDI1NnIxLmtleSAtLXByaW9yaXR5PU5PTkU6K0FFUy0xMjgtR0NNOitTSEEyNTY6K0FFQUQ6K1NJR04tRUNEU0EtU0VDUDI1NlIxLVNIQTI1NjorR1JPVVAtRkZESEUyMDQ4OitWRVJTLVRMUzEuMzolTk9fVElDS0VUUyIgXAotICAgICAgICAgIiRQX0NMSSBjYV9maWxlPWRhdGFfZmlsZXMvdGVzdC1jYTIuY3J0IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0xMjgtR0NNLVNIQTI1NiBzaWdfYWxncz1lY2RzYV9zZWNwMjU2cjFfc2hhMjU2IGdyb3Vwcz1mZmRoZTIwNDgiIFwKKyAgICAgICAgICIkR19ORVhUX1NSVl9OT19DRVJUIC0taHR0cCAtLWRpc2FibGUtY2xpZW50LWNlcnQgLS1kZWJ1Zz00IC0teDUwOWNlcnRmaWxlICREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDI1NnIxLmNydCAtLXg1MDlrZXlmaWxlICREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDI1NnIxLmtleSAtLXByaW9yaXR5PU5PTkU6K0FFUy0xMjgtR0NNOitTSEEyNTY6K0FFQUQ6K1NJR04tRUNEU0EtU0VDUDI1NlIxLVNIQTI1NjorR1JPVVAtRkZESEUyMDQ4OitWRVJTLVRMUzEuMzolTk9fVElDS0VUUyIgXAorICAgICAgICAgIiRQX0NMSSBjYV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvdGVzdC1jYTIuY3J0IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0xMjgtR0NNLVNIQTI1NiBzaWdfYWxncz1lY2RzYV9zZWNwMjU2cjFfc2hhMjU2IGdyb3Vwcz1mZmRoZTIwNDgiIFwKICAgICAgICAgIDAgXAogICAgICAgICAgLWMgIkhUVFAvMS4wIDIwMCBPSyIgXAogICAgICAgICAgLWMgIlByb3RvY29sIGlzIFRMU3YxLjMiIFwKQEAgLTcwNzksOCArNzA4MSw4IEBACiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBQU0FfV0FOVF9BTEdfRkZESAogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgUFNBX1dBTlRfREhfUkZDNzkxOV8yMDQ4CiBydW5fdGVzdCAiVExTIDEuMyBtLT5HOiBBRVNfMTI4X0dDTV9TSEEyNTYsZmZkaGUyMDQ4LGVjZHNhX3NlY3AzODRyMV9zaGEzODQiIFwKLSAgICAgICAgICIkR19ORVhUX1NSVl9OT19DRVJUIC0taHR0cCAtLWRpc2FibGUtY2xpZW50LWNlcnQgLS1kZWJ1Zz00IC0teDUwOWNlcnRmaWxlIGRhdGFfZmlsZXMvZWNkc2Ffc2VjcDM4NHIxLmNydCAtLXg1MDlrZXlmaWxlIGRhdGFfZmlsZXMvZWNkc2Ffc2VjcDM4NHIxLmtleSAtLXByaW9yaXR5PU5PTkU6K0FFUy0xMjgtR0NNOitTSEEyNTY6K0FFQUQ6K1NJR04tRUNEU0EtU0VDUDM4NFIxLVNIQTM4NDorR1JPVVAtRkZESEUyMDQ4OitWRVJTLVRMUzEuMzolTk9fVElDS0VUUyIgXAotICAgICAgICAgIiRQX0NMSSBjYV9maWxlPWRhdGFfZmlsZXMvdGVzdC1jYTIuY3J0IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0xMjgtR0NNLVNIQTI1NiBzaWdfYWxncz1lY2RzYV9zZWNwMzg0cjFfc2hhMzg0IGdyb3Vwcz1mZmRoZTIwNDgiIFwKKyAgICAgICAgICIkR19ORVhUX1NSVl9OT19DRVJUIC0taHR0cCAtLWRpc2FibGUtY2xpZW50LWNlcnQgLS1kZWJ1Zz00IC0teDUwOWNlcnRmaWxlICREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDM4NHIxLmNydCAtLXg1MDlrZXlmaWxlICREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDM4NHIxLmtleSAtLXByaW9yaXR5PU5PTkU6K0FFUy0xMjgtR0NNOitTSEEyNTY6K0FFQUQ6K1NJR04tRUNEU0EtU0VDUDM4NFIxLVNIQTM4NDorR1JPVVAtRkZESEUyMDQ4OitWRVJTLVRMUzEuMzolTk9fVElDS0VUUyIgXAorICAgICAgICAgIiRQX0NMSSBjYV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvdGVzdC1jYTIuY3J0IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0xMjgtR0NNLVNIQTI1NiBzaWdfYWxncz1lY2RzYV9zZWNwMzg0cjFfc2hhMzg0IGdyb3Vwcz1mZmRoZTIwNDgiIFwKICAgICAgICAgIDAgXAogICAgICAgICAgLWMgIkhUVFAvMS4wIDIwMCBPSyIgXAogICAgICAgICAgLWMgIlByb3RvY29sIGlzIFRMU3YxLjMiIFwKQEAgLTcxMDAsOCArNzEwMiw4IEBACiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBQU0FfV0FOVF9BTEdfRkZESAogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgUFNBX1dBTlRfREhfUkZDNzkxOV8yMDQ4CiBydW5fdGVzdCAiVExTIDEuMyBtLT5HOiBBRVNfMTI4X0dDTV9TSEEyNTYsZmZkaGUyMDQ4LGVjZHNhX3NlY3A1MjFyMV9zaGE1MTIiIFwKLSAgICAgICAgICIkR19ORVhUX1NSVl9OT19DRVJUIC0taHR0cCAtLWRpc2FibGUtY2xpZW50LWNlcnQgLS1kZWJ1Zz00IC0teDUwOWNlcnRmaWxlIGRhdGFfZmlsZXMvZWNkc2Ffc2VjcDUyMXIxLmNydCAtLXg1MDlrZXlmaWxlIGRhdGFfZmlsZXMvZWNkc2Ffc2VjcDUyMXIxLmtleSAtLXByaW9yaXR5PU5PTkU6K0FFUy0xMjgtR0NNOitTSEEyNTY6K0FFQUQ6K1NJR04tRUNEU0EtU0VDUDUyMVIxLVNIQTUxMjorR1JPVVAtRkZESEUyMDQ4OitWRVJTLVRMUzEuMzolTk9fVElDS0VUUyIgXAotICAgICAgICAgIiRQX0NMSSBjYV9maWxlPWRhdGFfZmlsZXMvdGVzdC1jYTIuY3J0IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0xMjgtR0NNLVNIQTI1NiBzaWdfYWxncz1lY2RzYV9zZWNwNTIxcjFfc2hhNTEyIGdyb3Vwcz1mZmRoZTIwNDgiIFwKKyAgICAgICAgICIkR19ORVhUX1NSVl9OT19DRVJUIC0taHR0cCAtLWRpc2FibGUtY2xpZW50LWNlcnQgLS1kZWJ1Zz00IC0teDUwOWNlcnRmaWxlICREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDUyMXIxLmNydCAtLXg1MDlrZXlmaWxlICREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDUyMXIxLmtleSAtLXByaW9yaXR5PU5PTkU6K0FFUy0xMjgtR0NNOitTSEEyNTY6K0FFQUQ6K1NJR04tRUNEU0EtU0VDUDUyMVIxLVNIQTUxMjorR1JPVVAtRkZESEUyMDQ4OitWRVJTLVRMUzEuMzolTk9fVElDS0VUUyIgXAorICAgICAgICAgIiRQX0NMSSBjYV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvdGVzdC1jYTIuY3J0IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0xMjgtR0NNLVNIQTI1NiBzaWdfYWxncz1lY2RzYV9zZWNwNTIxcjFfc2hhNTEyIGdyb3Vwcz1mZmRoZTIwNDgiIFwKICAgICAgICAgIDAgXAogICAgICAgICAgLWMgIkhUVFAvMS4wIDIwMCBPSyIgXAogICAgICAgICAgLWMgIlByb3RvY29sIGlzIFRMU3YxLjMiIFwKQEAgLTcxMjIsOCArNzEyNCw4IEBACiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBQU0FfV0FOVF9BTEdfRkZESAogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgUFNBX1dBTlRfREhfUkZDNzkxOV8yMDQ4CiBydW5fdGVzdCAiVExTIDEuMyBtLT5HOiBBRVNfMTI4X0dDTV9TSEEyNTYsZmZkaGUyMDQ4LHJzYV9wc3NfcnNhZV9zaGEyNTYiIFwKLSAgICAgICAgICIkR19ORVhUX1NSVl9OT19DRVJUIC0taHR0cCAtLWRpc2FibGUtY2xpZW50LWNlcnQgLS1kZWJ1Zz00IC0teDUwOWNlcnRmaWxlIGRhdGFfZmlsZXMvc2VydmVyMi1zaGEyNTYuY3J0IC0teDUwOWtleWZpbGUgZGF0YV9maWxlcy9zZXJ2ZXIyLmtleSAtLXByaW9yaXR5PU5PTkU6K0FFUy0xMjgtR0NNOitTSEEyNTY6K0FFQUQ6K1NJR04tUlNBLVBTUy1SU0FFLVNIQTI1NjorR1JPVVAtRkZESEUyMDQ4OitWRVJTLVRMUzEuMzolTk9fVElDS0VUUyIgXAotICAgICAgICAgIiRQX0NMSSBjYV9maWxlPWRhdGFfZmlsZXMvdGVzdC1jYV9jYXQxMi5jcnQgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTEyOC1HQ00tU0hBMjU2IHNpZ19hbGdzPXJzYV9wc3NfcnNhZV9zaGEyNTYgZ3JvdXBzPWZmZGhlMjA0OCIgXAorICAgICAgICAgIiRHX05FWFRfU1JWX05PX0NFUlQgLS1odHRwIC0tZGlzYWJsZS1jbGllbnQtY2VydCAtLWRlYnVnPTQgLS14NTA5Y2VydGZpbGUgJERBVEFfRklMRVNfUEFUSC9zZXJ2ZXIyLXNoYTI1Ni5jcnQgLS14NTA5a2V5ZmlsZSAkREFUQV9GSUxFU19QQVRIL3NlcnZlcjIua2V5IC0tcHJpb3JpdHk9Tk9ORTorQUVTLTEyOC1HQ006K1NIQTI1NjorQUVBRDorU0lHTi1SU0EtUFNTLVJTQUUtU0hBMjU2OitHUk9VUC1GRkRIRTIwNDg6K1ZFUlMtVExTMS4zOiVOT19USUNLRVRTIiBcCisgICAgICAgICAiJFBfQ0xJIGNhX2ZpbGU9JERBVEFfRklMRVNfUEFUSC90ZXN0LWNhX2NhdDEyLmNydCBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMTI4LUdDTS1TSEEyNTYgc2lnX2FsZ3M9cnNhX3Bzc19yc2FlX3NoYTI1NiBncm91cHM9ZmZkaGUyMDQ4IiBcCiAgICAgICAgICAwIFwKICAgICAgICAgIC1jICJIVFRQLzEuMCAyMDAgT0siIFwKICAgICAgICAgIC1jICJQcm90b2NvbCBpcyBUTFN2MS4zIiBcCkBAIC03MTQyLDggKzcxNDQsOCBAQAogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgTUJFRFRMU19TU0xfVExTMV8zX0NPTVBBVElCSUxJVFlfTU9ERQogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgUFNBX1dBTlRfQUxHX0VDREgKIHJ1bl90ZXN0ICJUTFMgMS4zIG0tPkc6IEFFU18yNTZfR0NNX1NIQTM4NCxzZWNwMjU2cjEsZWNkc2Ffc2VjcDI1NnIxX3NoYTI1NiIgXAotICAgICAgICAgIiRHX05FWFRfU1JWX05PX0NFUlQgLS1odHRwIC0tZGlzYWJsZS1jbGllbnQtY2VydCAtLWRlYnVnPTQgLS14NTA5Y2VydGZpbGUgZGF0YV9maWxlcy9lY2RzYV9zZWNwMjU2cjEuY3J0IC0teDUwOWtleWZpbGUgZGF0YV9maWxlcy9lY2RzYV9zZWNwMjU2cjEua2V5IC0tcHJpb3JpdHk9Tk9ORTorQUVTLTI1Ni1HQ006K1NIQTM4NDorQUVBRDorU0lHTi1FQ0RTQS1TRUNQMjU2UjEtU0hBMjU2OitHUk9VUC1TRUNQMjU2UjE6K1ZFUlMtVExTMS4zOiVOT19USUNLRVRTIiBcCi0gICAgICAgICAiJFBfQ0xJIGNhX2ZpbGU9ZGF0YV9maWxlcy90ZXN0LWNhMi5jcnQgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTI1Ni1HQ00tU0hBMzg0IHNpZ19hbGdzPWVjZHNhX3NlY3AyNTZyMV9zaGEyNTYgZ3JvdXBzPXNlY3AyNTZyMSIgXAorICAgICAgICAgIiRHX05FWFRfU1JWX05PX0NFUlQgLS1odHRwIC0tZGlzYWJsZS1jbGllbnQtY2VydCAtLWRlYnVnPTQgLS14NTA5Y2VydGZpbGUgJERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwMjU2cjEuY3J0IC0teDUwOWtleWZpbGUgJERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwMjU2cjEua2V5IC0tcHJpb3JpdHk9Tk9ORTorQUVTLTI1Ni1HQ006K1NIQTM4NDorQUVBRDorU0lHTi1FQ0RTQS1TRUNQMjU2UjEtU0hBMjU2OitHUk9VUC1TRUNQMjU2UjE6K1ZFUlMtVExTMS4zOiVOT19USUNLRVRTIiBcCisgICAgICAgICAiJFBfQ0xJIGNhX2ZpbGU9JERBVEFfRklMRVNfUEFUSC90ZXN0LWNhMi5jcnQgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTI1Ni1HQ00tU0hBMzg0IHNpZ19hbGdzPWVjZHNhX3NlY3AyNTZyMV9zaGEyNTYgZ3JvdXBzPXNlY3AyNTZyMSIgXAogICAgICAgICAgMCBcCiAgICAgICAgICAtYyAiSFRUUC8xLjAgMjAwIE9LIiBcCiAgICAgICAgICAtYyAiUHJvdG9jb2wgaXMgVExTdjEuMyIgXApAQCAtNzE2Miw4ICs3MTY0LDggQEAKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIE1CRURUTFNfU1NMX1RMUzFfM19DT01QQVRJQklMSVRZX01PREUKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIFBTQV9XQU5UX0FMR19FQ0RICiBydW5fdGVzdCAiVExTIDEuMyBtLT5HOiBBRVNfMjU2X0dDTV9TSEEzODQsc2VjcDI1NnIxLGVjZHNhX3NlY3AzODRyMV9zaGEzODQiIFwKLSAgICAgICAgICIkR19ORVhUX1NSVl9OT19DRVJUIC0taHR0cCAtLWRpc2FibGUtY2xpZW50LWNlcnQgLS1kZWJ1Zz00IC0teDUwOWNlcnRmaWxlIGRhdGFfZmlsZXMvZWNkc2Ffc2VjcDM4NHIxLmNydCAtLXg1MDlrZXlmaWxlIGRhdGFfZmlsZXMvZWNkc2Ffc2VjcDM4NHIxLmtleSAtLXByaW9yaXR5PU5PTkU6K0FFUy0yNTYtR0NNOitTSEEzODQ6K0FFQUQ6K1NJR04tRUNEU0EtU0VDUDM4NFIxLVNIQTM4NDorR1JPVVAtU0VDUDI1NlIxOitWRVJTLVRMUzEuMzolTk9fVElDS0VUUyIgXAotICAgICAgICAgIiRQX0NMSSBjYV9maWxlPWRhdGFfZmlsZXMvdGVzdC1jYTIuY3J0IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0yNTYtR0NNLVNIQTM4NCBzaWdfYWxncz1lY2RzYV9zZWNwMzg0cjFfc2hhMzg0IGdyb3Vwcz1zZWNwMjU2cjEiIFwKKyAgICAgICAgICIkR19ORVhUX1NSVl9OT19DRVJUIC0taHR0cCAtLWRpc2FibGUtY2xpZW50LWNlcnQgLS1kZWJ1Zz00IC0teDUwOWNlcnRmaWxlICREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDM4NHIxLmNydCAtLXg1MDlrZXlmaWxlICREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDM4NHIxLmtleSAtLXByaW9yaXR5PU5PTkU6K0FFUy0yNTYtR0NNOitTSEEzODQ6K0FFQUQ6K1NJR04tRUNEU0EtU0VDUDM4NFIxLVNIQTM4NDorR1JPVVAtU0VDUDI1NlIxOitWRVJTLVRMUzEuMzolTk9fVElDS0VUUyIgXAorICAgICAgICAgIiRQX0NMSSBjYV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvdGVzdC1jYTIuY3J0IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0yNTYtR0NNLVNIQTM4NCBzaWdfYWxncz1lY2RzYV9zZWNwMzg0cjFfc2hhMzg0IGdyb3Vwcz1zZWNwMjU2cjEiIFwKICAgICAgICAgIDAgXAogICAgICAgICAgLWMgIkhUVFAvMS4wIDIwMCBPSyIgXAogICAgICAgICAgLWMgIlByb3RvY29sIGlzIFRMU3YxLjMiIFwKQEAgLTcxODIsOCArNzE4NCw4IEBACiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBNQkVEVExTX1NTTF9UTFMxXzNfQ09NUEFUSUJJTElUWV9NT0RFCiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBQU0FfV0FOVF9BTEdfRUNESAogcnVuX3Rlc3QgIlRMUyAxLjMgbS0+RzogQUVTXzI1Nl9HQ01fU0hBMzg0LHNlY3AyNTZyMSxlY2RzYV9zZWNwNTIxcjFfc2hhNTEyIiBcCi0gICAgICAgICAiJEdfTkVYVF9TUlZfTk9fQ0VSVCAtLWh0dHAgLS1kaXNhYmxlLWNsaWVudC1jZXJ0IC0tZGVidWc9NCAtLXg1MDljZXJ0ZmlsZSBkYXRhX2ZpbGVzL2VjZHNhX3NlY3A1MjFyMS5jcnQgLS14NTA5a2V5ZmlsZSBkYXRhX2ZpbGVzL2VjZHNhX3NlY3A1MjFyMS5rZXkgLS1wcmlvcml0eT1OT05FOitBRVMtMjU2LUdDTTorU0hBMzg0OitBRUFEOitTSUdOLUVDRFNBLVNFQ1A1MjFSMS1TSEE1MTI6K0dST1VQLVNFQ1AyNTZSMTorVkVSUy1UTFMxLjM6JU5PX1RJQ0tFVFMiIFwKLSAgICAgICAgICIkUF9DTEkgY2FfZmlsZT1kYXRhX2ZpbGVzL3Rlc3QtY2EyLmNydCBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMjU2LUdDTS1TSEEzODQgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDUyMXIxX3NoYTUxMiBncm91cHM9c2VjcDI1NnIxIiBcCisgICAgICAgICAiJEdfTkVYVF9TUlZfTk9fQ0VSVCAtLWh0dHAgLS1kaXNhYmxlLWNsaWVudC1jZXJ0IC0tZGVidWc9NCAtLXg1MDljZXJ0ZmlsZSAkREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3A1MjFyMS5jcnQgLS14NTA5a2V5ZmlsZSAkREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3A1MjFyMS5rZXkgLS1wcmlvcml0eT1OT05FOitBRVMtMjU2LUdDTTorU0hBMzg0OitBRUFEOitTSUdOLUVDRFNBLVNFQ1A1MjFSMS1TSEE1MTI6K0dST1VQLVNFQ1AyNTZSMTorVkVSUy1UTFMxLjM6JU5PX1RJQ0tFVFMiIFwKKyAgICAgICAgICIkUF9DTEkgY2FfZmlsZT0kREFUQV9GSUxFU19QQVRIL3Rlc3QtY2EyLmNydCBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMjU2LUdDTS1TSEEzODQgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDUyMXIxX3NoYTUxMiBncm91cHM9c2VjcDI1NnIxIiBcCiAgICAgICAgICAwIFwKICAgICAgICAgIC1jICJIVFRQLzEuMCAyMDAgT0siIFwKICAgICAgICAgIC1jICJQcm90b2NvbCBpcyBUTFN2MS4zIiBcCkBAIC03MjAzLDggKzcyMDUsOCBAQAogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgTUJFRFRMU19YNTA5X1JTQVNTQV9QU1NfU1VQUE9SVAogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgUFNBX1dBTlRfQUxHX0VDREgKIHJ1bl90ZXN0ICJUTFMgMS4zIG0tPkc6IEFFU18yNTZfR0NNX1NIQTM4NCxzZWNwMjU2cjEscnNhX3Bzc19yc2FlX3NoYTI1NiIgXAotICAgICAgICAgIiRHX05FWFRfU1JWX05PX0NFUlQgLS1odHRwIC0tZGlzYWJsZS1jbGllbnQtY2VydCAtLWRlYnVnPTQgLS14NTA5Y2VydGZpbGUgZGF0YV9maWxlcy9zZXJ2ZXIyLXNoYTI1Ni5jcnQgLS14NTA5a2V5ZmlsZSBkYXRhX2ZpbGVzL3NlcnZlcjIua2V5IC0tcHJpb3JpdHk9Tk9ORTorQUVTLTI1Ni1HQ006K1NIQTM4NDorQUVBRDorU0lHTi1SU0EtUFNTLVJTQUUtU0hBMjU2OitHUk9VUC1TRUNQMjU2UjE6K1ZFUlMtVExTMS4zOiVOT19USUNLRVRTIiBcCi0gICAgICAgICAiJFBfQ0xJIGNhX2ZpbGU9ZGF0YV9maWxlcy90ZXN0LWNhX2NhdDEyLmNydCBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMjU2LUdDTS1TSEEzODQgc2lnX2FsZ3M9cnNhX3Bzc19yc2FlX3NoYTI1NiBncm91cHM9c2VjcDI1NnIxIiBcCisgICAgICAgICAiJEdfTkVYVF9TUlZfTk9fQ0VSVCAtLWh0dHAgLS1kaXNhYmxlLWNsaWVudC1jZXJ0IC0tZGVidWc9NCAtLXg1MDljZXJ0ZmlsZSAkREFUQV9GSUxFU19QQVRIL3NlcnZlcjItc2hhMjU2LmNydCAtLXg1MDlrZXlmaWxlICREQVRBX0ZJTEVTX1BBVEgvc2VydmVyMi5rZXkgLS1wcmlvcml0eT1OT05FOitBRVMtMjU2LUdDTTorU0hBMzg0OitBRUFEOitTSUdOLVJTQS1QU1MtUlNBRS1TSEEyNTY6K0dST1VQLVNFQ1AyNTZSMTorVkVSUy1UTFMxLjM6JU5PX1RJQ0tFVFMiIFwKKyAgICAgICAgICIkUF9DTEkgY2FfZmlsZT0kREFUQV9GSUxFU19QQVRIL3Rlc3QtY2FfY2F0MTIuY3J0IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0yNTYtR0NNLVNIQTM4NCBzaWdfYWxncz1yc2FfcHNzX3JzYWVfc2hhMjU2IGdyb3Vwcz1zZWNwMjU2cjEiIFwKICAgICAgICAgIDAgXAogICAgICAgICAgLWMgIkhUVFAvMS4wIDIwMCBPSyIgXAogICAgICAgICAgLWMgIlByb3RvY29sIGlzIFRMU3YxLjMiIFwKQEAgLTcyMjMsOCArNzIyNSw4IEBACiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBNQkVEVExTX1NTTF9UTFMxXzNfQ09NUEFUSUJJTElUWV9NT0RFCiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBQU0FfV0FOVF9BTEdfRUNESAogcnVuX3Rlc3QgIlRMUyAxLjMgbS0+RzogQUVTXzI1Nl9HQ01fU0hBMzg0LHNlY3AzODRyMSxlY2RzYV9zZWNwMjU2cjFfc2hhMjU2IiBcCi0gICAgICAgICAiJEdfTkVYVF9TUlZfTk9fQ0VSVCAtLWh0dHAgLS1kaXNhYmxlLWNsaWVudC1jZXJ0IC0tZGVidWc9NCAtLXg1MDljZXJ0ZmlsZSBkYXRhX2ZpbGVzL2VjZHNhX3NlY3AyNTZyMS5jcnQgLS14NTA5a2V5ZmlsZSBkYXRhX2ZpbGVzL2VjZHNhX3NlY3AyNTZyMS5rZXkgLS1wcmlvcml0eT1OT05FOitBRVMtMjU2LUdDTTorU0hBMzg0OitBRUFEOitTSUdOLUVDRFNBLVNFQ1AyNTZSMS1TSEEyNTY6K0dST1VQLVNFQ1AzODRSMTorVkVSUy1UTFMxLjM6JU5PX1RJQ0tFVFMiIFwKLSAgICAgICAgICIkUF9DTEkgY2FfZmlsZT1kYXRhX2ZpbGVzL3Rlc3QtY2EyLmNydCBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMjU2LUdDTS1TSEEzODQgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDI1NnIxX3NoYTI1NiBncm91cHM9c2VjcDM4NHIxIiBcCisgICAgICAgICAiJEdfTkVYVF9TUlZfTk9fQ0VSVCAtLWh0dHAgLS1kaXNhYmxlLWNsaWVudC1jZXJ0IC0tZGVidWc9NCAtLXg1MDljZXJ0ZmlsZSAkREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3AyNTZyMS5jcnQgLS14NTA5a2V5ZmlsZSAkREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3AyNTZyMS5rZXkgLS1wcmlvcml0eT1OT05FOitBRVMtMjU2LUdDTTorU0hBMzg0OitBRUFEOitTSUdOLUVDRFNBLVNFQ1AyNTZSMS1TSEEyNTY6K0dST1VQLVNFQ1AzODRSMTorVkVSUy1UTFMxLjM6JU5PX1RJQ0tFVFMiIFwKKyAgICAgICAgICIkUF9DTEkgY2FfZmlsZT0kREFUQV9GSUxFU19QQVRIL3Rlc3QtY2EyLmNydCBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMjU2LUdDTS1TSEEzODQgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDI1NnIxX3NoYTI1NiBncm91cHM9c2VjcDM4NHIxIiBcCiAgICAgICAgICAwIFwKICAgICAgICAgIC1jICJIVFRQLzEuMCAyMDAgT0siIFwKICAgICAgICAgIC1jICJQcm90b2NvbCBpcyBUTFN2MS4zIiBcCkBAIC03MjQzLDggKzcyNDUsOCBAQAogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgTUJFRFRMU19TU0xfVExTMV8zX0NPTVBBVElCSUxJVFlfTU9ERQogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgUFNBX1dBTlRfQUxHX0VDREgKIHJ1bl90ZXN0ICJUTFMgMS4zIG0tPkc6IEFFU18yNTZfR0NNX1NIQTM4NCxzZWNwMzg0cjEsZWNkc2Ffc2VjcDM4NHIxX3NoYTM4NCIgXAotICAgICAgICAgIiRHX05FWFRfU1JWX05PX0NFUlQgLS1odHRwIC0tZGlzYWJsZS1jbGllbnQtY2VydCAtLWRlYnVnPTQgLS14NTA5Y2VydGZpbGUgZGF0YV9maWxlcy9lY2RzYV9zZWNwMzg0cjEuY3J0IC0teDUwOWtleWZpbGUgZGF0YV9maWxlcy9lY2RzYV9zZWNwMzg0cjEua2V5IC0tcHJpb3JpdHk9Tk9ORTorQUVTLTI1Ni1HQ006K1NIQTM4NDorQUVBRDorU0lHTi1FQ0RTQS1TRUNQMzg0UjEtU0hBMzg0OitHUk9VUC1TRUNQMzg0UjE6K1ZFUlMtVExTMS4zOiVOT19USUNLRVRTIiBcCi0gICAgICAgICAiJFBfQ0xJIGNhX2ZpbGU9ZGF0YV9maWxlcy90ZXN0LWNhMi5jcnQgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTI1Ni1HQ00tU0hBMzg0IHNpZ19hbGdzPWVjZHNhX3NlY3AzODRyMV9zaGEzODQgZ3JvdXBzPXNlY3AzODRyMSIgXAorICAgICAgICAgIiRHX05FWFRfU1JWX05PX0NFUlQgLS1odHRwIC0tZGlzYWJsZS1jbGllbnQtY2VydCAtLWRlYnVnPTQgLS14NTA5Y2VydGZpbGUgJERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwMzg0cjEuY3J0IC0teDUwOWtleWZpbGUgJERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwMzg0cjEua2V5IC0tcHJpb3JpdHk9Tk9ORTorQUVTLTI1Ni1HQ006K1NIQTM4NDorQUVBRDorU0lHTi1FQ0RTQS1TRUNQMzg0UjEtU0hBMzg0OitHUk9VUC1TRUNQMzg0UjE6K1ZFUlMtVExTMS4zOiVOT19USUNLRVRTIiBcCisgICAgICAgICAiJFBfQ0xJIGNhX2ZpbGU9JERBVEFfRklMRVNfUEFUSC90ZXN0LWNhMi5jcnQgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTI1Ni1HQ00tU0hBMzg0IHNpZ19hbGdzPWVjZHNhX3NlY3AzODRyMV9zaGEzODQgZ3JvdXBzPXNlY3AzODRyMSIgXAogICAgICAgICAgMCBcCiAgICAgICAgICAtYyAiSFRUUC8xLjAgMjAwIE9LIiBcCiAgICAgICAgICAtYyAiUHJvdG9jb2wgaXMgVExTdjEuMyIgXApAQCAtNzI2Myw4ICs3MjY1LDggQEAKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIE1CRURUTFNfU1NMX1RMUzFfM19DT01QQVRJQklMSVRZX01PREUKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIFBTQV9XQU5UX0FMR19FQ0RICiBydW5fdGVzdCAiVExTIDEuMyBtLT5HOiBBRVNfMjU2X0dDTV9TSEEzODQsc2VjcDM4NHIxLGVjZHNhX3NlY3A1MjFyMV9zaGE1MTIiIFwKLSAgICAgICAgICIkR19ORVhUX1NSVl9OT19DRVJUIC0taHR0cCAtLWRpc2FibGUtY2xpZW50LWNlcnQgLS1kZWJ1Zz00IC0teDUwOWNlcnRmaWxlIGRhdGFfZmlsZXMvZWNkc2Ffc2VjcDUyMXIxLmNydCAtLXg1MDlrZXlmaWxlIGRhdGFfZmlsZXMvZWNkc2Ffc2VjcDUyMXIxLmtleSAtLXByaW9yaXR5PU5PTkU6K0FFUy0yNTYtR0NNOitTSEEzODQ6K0FFQUQ6K1NJR04tRUNEU0EtU0VDUDUyMVIxLVNIQTUxMjorR1JPVVAtU0VDUDM4NFIxOitWRVJTLVRMUzEuMzolTk9fVElDS0VUUyIgXAotICAgICAgICAgIiRQX0NMSSBjYV9maWxlPWRhdGFfZmlsZXMvdGVzdC1jYTIuY3J0IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0yNTYtR0NNLVNIQTM4NCBzaWdfYWxncz1lY2RzYV9zZWNwNTIxcjFfc2hhNTEyIGdyb3Vwcz1zZWNwMzg0cjEiIFwKKyAgICAgICAgICIkR19ORVhUX1NSVl9OT19DRVJUIC0taHR0cCAtLWRpc2FibGUtY2xpZW50LWNlcnQgLS1kZWJ1Zz00IC0teDUwOWNlcnRmaWxlICREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDUyMXIxLmNydCAtLXg1MDlrZXlmaWxlICREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDUyMXIxLmtleSAtLXByaW9yaXR5PU5PTkU6K0FFUy0yNTYtR0NNOitTSEEzODQ6K0FFQUQ6K1NJR04tRUNEU0EtU0VDUDUyMVIxLVNIQTUxMjorR1JPVVAtU0VDUDM4NFIxOitWRVJTLVRMUzEuMzolTk9fVElDS0VUUyIgXAorICAgICAgICAgIiRQX0NMSSBjYV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvdGVzdC1jYTIuY3J0IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0yNTYtR0NNLVNIQTM4NCBzaWdfYWxncz1lY2RzYV9zZWNwNTIxcjFfc2hhNTEyIGdyb3Vwcz1zZWNwMzg0cjEiIFwKICAgICAgICAgIDAgXAogICAgICAgICAgLWMgIkhUVFAvMS4wIDIwMCBPSyIgXAogICAgICAgICAgLWMgIlByb3RvY29sIGlzIFRMU3YxLjMiIFwKQEAgLTcyODQsOCArNzI4Niw4IEBACiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBNQkVEVExTX1g1MDlfUlNBU1NBX1BTU19TVVBQT1JUCiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBQU0FfV0FOVF9BTEdfRUNESAogcnVuX3Rlc3QgIlRMUyAxLjMgbS0+RzogQUVTXzI1Nl9HQ01fU0hBMzg0LHNlY3AzODRyMSxyc2FfcHNzX3JzYWVfc2hhMjU2IiBcCi0gICAgICAgICAiJEdfTkVYVF9TUlZfTk9fQ0VSVCAtLWh0dHAgLS1kaXNhYmxlLWNsaWVudC1jZXJ0IC0tZGVidWc9NCAtLXg1MDljZXJ0ZmlsZSBkYXRhX2ZpbGVzL3NlcnZlcjItc2hhMjU2LmNydCAtLXg1MDlrZXlmaWxlIGRhdGFfZmlsZXMvc2VydmVyMi5rZXkgLS1wcmlvcml0eT1OT05FOitBRVMtMjU2LUdDTTorU0hBMzg0OitBRUFEOitTSUdOLVJTQS1QU1MtUlNBRS1TSEEyNTY6K0dST1VQLVNFQ1AzODRSMTorVkVSUy1UTFMxLjM6JU5PX1RJQ0tFVFMiIFwKLSAgICAgICAgICIkUF9DTEkgY2FfZmlsZT1kYXRhX2ZpbGVzL3Rlc3QtY2FfY2F0MTIuY3J0IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0yNTYtR0NNLVNIQTM4NCBzaWdfYWxncz1yc2FfcHNzX3JzYWVfc2hhMjU2IGdyb3Vwcz1zZWNwMzg0cjEiIFwKKyAgICAgICAgICIkR19ORVhUX1NSVl9OT19DRVJUIC0taHR0cCAtLWRpc2FibGUtY2xpZW50LWNlcnQgLS1kZWJ1Zz00IC0teDUwOWNlcnRmaWxlICREQVRBX0ZJTEVTX1BBVEgvc2VydmVyMi1zaGEyNTYuY3J0IC0teDUwOWtleWZpbGUgJERBVEFfRklMRVNfUEFUSC9zZXJ2ZXIyLmtleSAtLXByaW9yaXR5PU5PTkU6K0FFUy0yNTYtR0NNOitTSEEzODQ6K0FFQUQ6K1NJR04tUlNBLVBTUy1SU0FFLVNIQTI1NjorR1JPVVAtU0VDUDM4NFIxOitWRVJTLVRMUzEuMzolTk9fVElDS0VUUyIgXAorICAgICAgICAgIiRQX0NMSSBjYV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvdGVzdC1jYV9jYXQxMi5jcnQgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTI1Ni1HQ00tU0hBMzg0IHNpZ19hbGdzPXJzYV9wc3NfcnNhZV9zaGEyNTYgZ3JvdXBzPXNlY3AzODRyMSIgXAogICAgICAgICAgMCBcCiAgICAgICAgICAtYyAiSFRUUC8xLjAgMjAwIE9LIiBcCiAgICAgICAgICAtYyAiUHJvdG9jb2wgaXMgVExTdjEuMyIgXApAQCAtNzMwNCw4ICs3MzA2LDggQEAKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIE1CRURUTFNfU1NMX1RMUzFfM19DT01QQVRJQklMSVRZX01PREUKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIFBTQV9XQU5UX0FMR19FQ0RICiBydW5fdGVzdCAiVExTIDEuMyBtLT5HOiBBRVNfMjU2X0dDTV9TSEEzODQsc2VjcDUyMXIxLGVjZHNhX3NlY3AyNTZyMV9zaGEyNTYiIFwKLSAgICAgICAgICIkR19ORVhUX1NSVl9OT19DRVJUIC0taHR0cCAtLWRpc2FibGUtY2xpZW50LWNlcnQgLS1kZWJ1Zz00IC0teDUwOWNlcnRmaWxlIGRhdGFfZmlsZXMvZWNkc2Ffc2VjcDI1NnIxLmNydCAtLXg1MDlrZXlmaWxlIGRhdGFfZmlsZXMvZWNkc2Ffc2VjcDI1NnIxLmtleSAtLXByaW9yaXR5PU5PTkU6K0FFUy0yNTYtR0NNOitTSEEzODQ6K0FFQUQ6K1NJR04tRUNEU0EtU0VDUDI1NlIxLVNIQTI1NjorR1JPVVAtU0VDUDUyMVIxOitWRVJTLVRMUzEuMzolTk9fVElDS0VUUyIgXAotICAgICAgICAgIiRQX0NMSSBjYV9maWxlPWRhdGFfZmlsZXMvdGVzdC1jYTIuY3J0IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0yNTYtR0NNLVNIQTM4NCBzaWdfYWxncz1lY2RzYV9zZWNwMjU2cjFfc2hhMjU2IGdyb3Vwcz1zZWNwNTIxcjEiIFwKKyAgICAgICAgICIkR19ORVhUX1NSVl9OT19DRVJUIC0taHR0cCAtLWRpc2FibGUtY2xpZW50LWNlcnQgLS1kZWJ1Zz00IC0teDUwOWNlcnRmaWxlICREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDI1NnIxLmNydCAtLXg1MDlrZXlmaWxlICREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDI1NnIxLmtleSAtLXByaW9yaXR5PU5PTkU6K0FFUy0yNTYtR0NNOitTSEEzODQ6K0FFQUQ6K1NJR04tRUNEU0EtU0VDUDI1NlIxLVNIQTI1NjorR1JPVVAtU0VDUDUyMVIxOitWRVJTLVRMUzEuMzolTk9fVElDS0VUUyIgXAorICAgICAgICAgIiRQX0NMSSBjYV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvdGVzdC1jYTIuY3J0IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0yNTYtR0NNLVNIQTM4NCBzaWdfYWxncz1lY2RzYV9zZWNwMjU2cjFfc2hhMjU2IGdyb3Vwcz1zZWNwNTIxcjEiIFwKICAgICAgICAgIDAgXAogICAgICAgICAgLWMgIkhUVFAvMS4wIDIwMCBPSyIgXAogICAgICAgICAgLWMgIlByb3RvY29sIGlzIFRMU3YxLjMiIFwKQEAgLTczMjQsOCArNzMyNiw4IEBACiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBNQkVEVExTX1NTTF9UTFMxXzNfQ09NUEFUSUJJTElUWV9NT0RFCiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBQU0FfV0FOVF9BTEdfRUNESAogcnVuX3Rlc3QgIlRMUyAxLjMgbS0+RzogQUVTXzI1Nl9HQ01fU0hBMzg0LHNlY3A1MjFyMSxlY2RzYV9zZWNwMzg0cjFfc2hhMzg0IiBcCi0gICAgICAgICAiJEdfTkVYVF9TUlZfTk9fQ0VSVCAtLWh0dHAgLS1kaXNhYmxlLWNsaWVudC1jZXJ0IC0tZGVidWc9NCAtLXg1MDljZXJ0ZmlsZSBkYXRhX2ZpbGVzL2VjZHNhX3NlY3AzODRyMS5jcnQgLS14NTA5a2V5ZmlsZSBkYXRhX2ZpbGVzL2VjZHNhX3NlY3AzODRyMS5rZXkgLS1wcmlvcml0eT1OT05FOitBRVMtMjU2LUdDTTorU0hBMzg0OitBRUFEOitTSUdOLUVDRFNBLVNFQ1AzODRSMS1TSEEzODQ6K0dST1VQLVNFQ1A1MjFSMTorVkVSUy1UTFMxLjM6JU5PX1RJQ0tFVFMiIFwKLSAgICAgICAgICIkUF9DTEkgY2FfZmlsZT1kYXRhX2ZpbGVzL3Rlc3QtY2EyLmNydCBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMjU2LUdDTS1TSEEzODQgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDM4NHIxX3NoYTM4NCBncm91cHM9c2VjcDUyMXIxIiBcCisgICAgICAgICAiJEdfTkVYVF9TUlZfTk9fQ0VSVCAtLWh0dHAgLS1kaXNhYmxlLWNsaWVudC1jZXJ0IC0tZGVidWc9NCAtLXg1MDljZXJ0ZmlsZSAkREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3AzODRyMS5jcnQgLS14NTA5a2V5ZmlsZSAkREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3AzODRyMS5rZXkgLS1wcmlvcml0eT1OT05FOitBRVMtMjU2LUdDTTorU0hBMzg0OitBRUFEOitTSUdOLUVDRFNBLVNFQ1AzODRSMS1TSEEzODQ6K0dST1VQLVNFQ1A1MjFSMTorVkVSUy1UTFMxLjM6JU5PX1RJQ0tFVFMiIFwKKyAgICAgICAgICIkUF9DTEkgY2FfZmlsZT0kREFUQV9GSUxFU19QQVRIL3Rlc3QtY2EyLmNydCBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMjU2LUdDTS1TSEEzODQgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDM4NHIxX3NoYTM4NCBncm91cHM9c2VjcDUyMXIxIiBcCiAgICAgICAgICAwIFwKICAgICAgICAgIC1jICJIVFRQLzEuMCAyMDAgT0siIFwKICAgICAgICAgIC1jICJQcm90b2NvbCBpcyBUTFN2MS4zIiBcCkBAIC03MzQ0LDggKzczNDYsOCBAQAogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgTUJFRFRMU19TU0xfVExTMV8zX0NPTVBBVElCSUxJVFlfTU9ERQogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgUFNBX1dBTlRfQUxHX0VDREgKIHJ1bl90ZXN0ICJUTFMgMS4zIG0tPkc6IEFFU18yNTZfR0NNX1NIQTM4NCxzZWNwNTIxcjEsZWNkc2Ffc2VjcDUyMXIxX3NoYTUxMiIgXAotICAgICAgICAgIiRHX05FWFRfU1JWX05PX0NFUlQgLS1odHRwIC0tZGlzYWJsZS1jbGllbnQtY2VydCAtLWRlYnVnPTQgLS14NTA5Y2VydGZpbGUgZGF0YV9maWxlcy9lY2RzYV9zZWNwNTIxcjEuY3J0IC0teDUwOWtleWZpbGUgZGF0YV9maWxlcy9lY2RzYV9zZWNwNTIxcjEua2V5IC0tcHJpb3JpdHk9Tk9ORTorQUVTLTI1Ni1HQ006K1NIQTM4NDorQUVBRDorU0lHTi1FQ0RTQS1TRUNQNTIxUjEtU0hBNTEyOitHUk9VUC1TRUNQNTIxUjE6K1ZFUlMtVExTMS4zOiVOT19USUNLRVRTIiBcCi0gICAgICAgICAiJFBfQ0xJIGNhX2ZpbGU9ZGF0YV9maWxlcy90ZXN0LWNhMi5jcnQgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTI1Ni1HQ00tU0hBMzg0IHNpZ19hbGdzPWVjZHNhX3NlY3A1MjFyMV9zaGE1MTIgZ3JvdXBzPXNlY3A1MjFyMSIgXAorICAgICAgICAgIiRHX05FWFRfU1JWX05PX0NFUlQgLS1odHRwIC0tZGlzYWJsZS1jbGllbnQtY2VydCAtLWRlYnVnPTQgLS14NTA5Y2VydGZpbGUgJERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwNTIxcjEuY3J0IC0teDUwOWtleWZpbGUgJERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwNTIxcjEua2V5IC0tcHJpb3JpdHk9Tk9ORTorQUVTLTI1Ni1HQ006K1NIQTM4NDorQUVBRDorU0lHTi1FQ0RTQS1TRUNQNTIxUjEtU0hBNTEyOitHUk9VUC1TRUNQNTIxUjE6K1ZFUlMtVExTMS4zOiVOT19USUNLRVRTIiBcCisgICAgICAgICAiJFBfQ0xJIGNhX2ZpbGU9JERBVEFfRklMRVNfUEFUSC90ZXN0LWNhMi5jcnQgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTI1Ni1HQ00tU0hBMzg0IHNpZ19hbGdzPWVjZHNhX3NlY3A1MjFyMV9zaGE1MTIgZ3JvdXBzPXNlY3A1MjFyMSIgXAogICAgICAgICAgMCBcCiAgICAgICAgICAtYyAiSFRUUC8xLjAgMjAwIE9LIiBcCiAgICAgICAgICAtYyAiUHJvdG9jb2wgaXMgVExTdjEuMyIgXApAQCAtNzM2NSw4ICs3MzY3LDggQEAKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIE1CRURUTFNfWDUwOV9SU0FTU0FfUFNTX1NVUFBPUlQKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIFBTQV9XQU5UX0FMR19FQ0RICiBydW5fdGVzdCAiVExTIDEuMyBtLT5HOiBBRVNfMjU2X0dDTV9TSEEzODQsc2VjcDUyMXIxLHJzYV9wc3NfcnNhZV9zaGEyNTYiIFwKLSAgICAgICAgICIkR19ORVhUX1NSVl9OT19DRVJUIC0taHR0cCAtLWRpc2FibGUtY2xpZW50LWNlcnQgLS1kZWJ1Zz00IC0teDUwOWNlcnRmaWxlIGRhdGFfZmlsZXMvc2VydmVyMi1zaGEyNTYuY3J0IC0teDUwOWtleWZpbGUgZGF0YV9maWxlcy9zZXJ2ZXIyLmtleSAtLXByaW9yaXR5PU5PTkU6K0FFUy0yNTYtR0NNOitTSEEzODQ6K0FFQUQ6K1NJR04tUlNBLVBTUy1SU0FFLVNIQTI1NjorR1JPVVAtU0VDUDUyMVIxOitWRVJTLVRMUzEuMzolTk9fVElDS0VUUyIgXAotICAgICAgICAgIiRQX0NMSSBjYV9maWxlPWRhdGFfZmlsZXMvdGVzdC1jYV9jYXQxMi5jcnQgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTI1Ni1HQ00tU0hBMzg0IHNpZ19hbGdzPXJzYV9wc3NfcnNhZV9zaGEyNTYgZ3JvdXBzPXNlY3A1MjFyMSIgXAorICAgICAgICAgIiRHX05FWFRfU1JWX05PX0NFUlQgLS1odHRwIC0tZGlzYWJsZS1jbGllbnQtY2VydCAtLWRlYnVnPTQgLS14NTA5Y2VydGZpbGUgJERBVEFfRklMRVNfUEFUSC9zZXJ2ZXIyLXNoYTI1Ni5jcnQgLS14NTA5a2V5ZmlsZSAkREFUQV9GSUxFU19QQVRIL3NlcnZlcjIua2V5IC0tcHJpb3JpdHk9Tk9ORTorQUVTLTI1Ni1HQ006K1NIQTM4NDorQUVBRDorU0lHTi1SU0EtUFNTLVJTQUUtU0hBMjU2OitHUk9VUC1TRUNQNTIxUjE6K1ZFUlMtVExTMS4zOiVOT19USUNLRVRTIiBcCisgICAgICAgICAiJFBfQ0xJIGNhX2ZpbGU9JERBVEFfRklMRVNfUEFUSC90ZXN0LWNhX2NhdDEyLmNydCBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMjU2LUdDTS1TSEEzODQgc2lnX2FsZ3M9cnNhX3Bzc19yc2FlX3NoYTI1NiBncm91cHM9c2VjcDUyMXIxIiBcCiAgICAgICAgICAwIFwKICAgICAgICAgIC1jICJIVFRQLzEuMCAyMDAgT0siIFwKICAgICAgICAgIC1jICJQcm90b2NvbCBpcyBUTFN2MS4zIiBcCkBAIC03Mzg1LDggKzczODcsOCBAQAogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgTUJFRFRMU19TU0xfVExTMV8zX0NPTVBBVElCSUxJVFlfTU9ERQogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgUFNBX1dBTlRfQUxHX0VDREgKIHJ1bl90ZXN0ICJUTFMgMS4zIG0tPkc6IEFFU18yNTZfR0NNX1NIQTM4NCx4MjU1MTksZWNkc2Ffc2VjcDI1NnIxX3NoYTI1NiIgXAotICAgICAgICAgIiRHX05FWFRfU1JWX05PX0NFUlQgLS1odHRwIC0tZGlzYWJsZS1jbGllbnQtY2VydCAtLWRlYnVnPTQgLS14NTA5Y2VydGZpbGUgZGF0YV9maWxlcy9lY2RzYV9zZWNwMjU2cjEuY3J0IC0teDUwOWtleWZpbGUgZGF0YV9maWxlcy9lY2RzYV9zZWNwMjU2cjEua2V5IC0tcHJpb3JpdHk9Tk9ORTorQUVTLTI1Ni1HQ006K1NIQTM4NDorQUVBRDorU0lHTi1FQ0RTQS1TRUNQMjU2UjEtU0hBMjU2OitHUk9VUC1YMjU1MTk6K1ZFUlMtVExTMS4zOiVOT19USUNLRVRTIiBcCi0gICAgICAgICAiJFBfQ0xJIGNhX2ZpbGU9ZGF0YV9maWxlcy90ZXN0LWNhMi5jcnQgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTI1Ni1HQ00tU0hBMzg0IHNpZ19hbGdzPWVjZHNhX3NlY3AyNTZyMV9zaGEyNTYgZ3JvdXBzPXgyNTUxOSIgXAorICAgICAgICAgIiRHX05FWFRfU1JWX05PX0NFUlQgLS1odHRwIC0tZGlzYWJsZS1jbGllbnQtY2VydCAtLWRlYnVnPTQgLS14NTA5Y2VydGZpbGUgJERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwMjU2cjEuY3J0IC0teDUwOWtleWZpbGUgJERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwMjU2cjEua2V5IC0tcHJpb3JpdHk9Tk9ORTorQUVTLTI1Ni1HQ006K1NIQTM4NDorQUVBRDorU0lHTi1FQ0RTQS1TRUNQMjU2UjEtU0hBMjU2OitHUk9VUC1YMjU1MTk6K1ZFUlMtVExTMS4zOiVOT19USUNLRVRTIiBcCisgICAgICAgICAiJFBfQ0xJIGNhX2ZpbGU9JERBVEFfRklMRVNfUEFUSC90ZXN0LWNhMi5jcnQgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTI1Ni1HQ00tU0hBMzg0IHNpZ19hbGdzPWVjZHNhX3NlY3AyNTZyMV9zaGEyNTYgZ3JvdXBzPXgyNTUxOSIgXAogICAgICAgICAgMCBcCiAgICAgICAgICAtYyAiSFRUUC8xLjAgMjAwIE9LIiBcCiAgICAgICAgICAtYyAiUHJvdG9jb2wgaXMgVExTdjEuMyIgXApAQCAtNzQwNSw4ICs3NDA3LDggQEAKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIE1CRURUTFNfU1NMX1RMUzFfM19DT01QQVRJQklMSVRZX01PREUKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIFBTQV9XQU5UX0FMR19FQ0RICiBydW5fdGVzdCAiVExTIDEuMyBtLT5HOiBBRVNfMjU2X0dDTV9TSEEzODQseDI1NTE5LGVjZHNhX3NlY3AzODRyMV9zaGEzODQiIFwKLSAgICAgICAgICIkR19ORVhUX1NSVl9OT19DRVJUIC0taHR0cCAtLWRpc2FibGUtY2xpZW50LWNlcnQgLS1kZWJ1Zz00IC0teDUwOWNlcnRmaWxlIGRhdGFfZmlsZXMvZWNkc2Ffc2VjcDM4NHIxLmNydCAtLXg1MDlrZXlmaWxlIGRhdGFfZmlsZXMvZWNkc2Ffc2VjcDM4NHIxLmtleSAtLXByaW9yaXR5PU5PTkU6K0FFUy0yNTYtR0NNOitTSEEzODQ6K0FFQUQ6K1NJR04tRUNEU0EtU0VDUDM4NFIxLVNIQTM4NDorR1JPVVAtWDI1NTE5OitWRVJTLVRMUzEuMzolTk9fVElDS0VUUyIgXAotICAgICAgICAgIiRQX0NMSSBjYV9maWxlPWRhdGFfZmlsZXMvdGVzdC1jYTIuY3J0IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0yNTYtR0NNLVNIQTM4NCBzaWdfYWxncz1lY2RzYV9zZWNwMzg0cjFfc2hhMzg0IGdyb3Vwcz14MjU1MTkiIFwKKyAgICAgICAgICIkR19ORVhUX1NSVl9OT19DRVJUIC0taHR0cCAtLWRpc2FibGUtY2xpZW50LWNlcnQgLS1kZWJ1Zz00IC0teDUwOWNlcnRmaWxlICREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDM4NHIxLmNydCAtLXg1MDlrZXlmaWxlICREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDM4NHIxLmtleSAtLXByaW9yaXR5PU5PTkU6K0FFUy0yNTYtR0NNOitTSEEzODQ6K0FFQUQ6K1NJR04tRUNEU0EtU0VDUDM4NFIxLVNIQTM4NDorR1JPVVAtWDI1NTE5OitWRVJTLVRMUzEuMzolTk9fVElDS0VUUyIgXAorICAgICAgICAgIiRQX0NMSSBjYV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvdGVzdC1jYTIuY3J0IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0yNTYtR0NNLVNIQTM4NCBzaWdfYWxncz1lY2RzYV9zZWNwMzg0cjFfc2hhMzg0IGdyb3Vwcz14MjU1MTkiIFwKICAgICAgICAgIDAgXAogICAgICAgICAgLWMgIkhUVFAvMS4wIDIwMCBPSyIgXAogICAgICAgICAgLWMgIlByb3RvY29sIGlzIFRMU3YxLjMiIFwKQEAgLTc0MjUsOCArNzQyNyw4IEBACiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBNQkVEVExTX1NTTF9UTFMxXzNfQ09NUEFUSUJJTElUWV9NT0RFCiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBQU0FfV0FOVF9BTEdfRUNESAogcnVuX3Rlc3QgIlRMUyAxLjMgbS0+RzogQUVTXzI1Nl9HQ01fU0hBMzg0LHgyNTUxOSxlY2RzYV9zZWNwNTIxcjFfc2hhNTEyIiBcCi0gICAgICAgICAiJEdfTkVYVF9TUlZfTk9fQ0VSVCAtLWh0dHAgLS1kaXNhYmxlLWNsaWVudC1jZXJ0IC0tZGVidWc9NCAtLXg1MDljZXJ0ZmlsZSBkYXRhX2ZpbGVzL2VjZHNhX3NlY3A1MjFyMS5jcnQgLS14NTA5a2V5ZmlsZSBkYXRhX2ZpbGVzL2VjZHNhX3NlY3A1MjFyMS5rZXkgLS1wcmlvcml0eT1OT05FOitBRVMtMjU2LUdDTTorU0hBMzg0OitBRUFEOitTSUdOLUVDRFNBLVNFQ1A1MjFSMS1TSEE1MTI6K0dST1VQLVgyNTUxOTorVkVSUy1UTFMxLjM6JU5PX1RJQ0tFVFMiIFwKLSAgICAgICAgICIkUF9DTEkgY2FfZmlsZT1kYXRhX2ZpbGVzL3Rlc3QtY2EyLmNydCBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMjU2LUdDTS1TSEEzODQgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDUyMXIxX3NoYTUxMiBncm91cHM9eDI1NTE5IiBcCisgICAgICAgICAiJEdfTkVYVF9TUlZfTk9fQ0VSVCAtLWh0dHAgLS1kaXNhYmxlLWNsaWVudC1jZXJ0IC0tZGVidWc9NCAtLXg1MDljZXJ0ZmlsZSAkREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3A1MjFyMS5jcnQgLS14NTA5a2V5ZmlsZSAkREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3A1MjFyMS5rZXkgLS1wcmlvcml0eT1OT05FOitBRVMtMjU2LUdDTTorU0hBMzg0OitBRUFEOitTSUdOLUVDRFNBLVNFQ1A1MjFSMS1TSEE1MTI6K0dST1VQLVgyNTUxOTorVkVSUy1UTFMxLjM6JU5PX1RJQ0tFVFMiIFwKKyAgICAgICAgICIkUF9DTEkgY2FfZmlsZT0kREFUQV9GSUxFU19QQVRIL3Rlc3QtY2EyLmNydCBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMjU2LUdDTS1TSEEzODQgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDUyMXIxX3NoYTUxMiBncm91cHM9eDI1NTE5IiBcCiAgICAgICAgICAwIFwKICAgICAgICAgIC1jICJIVFRQLzEuMCAyMDAgT0siIFwKICAgICAgICAgIC1jICJQcm90b2NvbCBpcyBUTFN2MS4zIiBcCkBAIC03NDQ2LDggKzc0NDgsOCBAQAogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgTUJFRFRMU19YNTA5X1JTQVNTQV9QU1NfU1VQUE9SVAogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgUFNBX1dBTlRfQUxHX0VDREgKIHJ1bl90ZXN0ICJUTFMgMS4zIG0tPkc6IEFFU18yNTZfR0NNX1NIQTM4NCx4MjU1MTkscnNhX3Bzc19yc2FlX3NoYTI1NiIgXAotICAgICAgICAgIiRHX05FWFRfU1JWX05PX0NFUlQgLS1odHRwIC0tZGlzYWJsZS1jbGllbnQtY2VydCAtLWRlYnVnPTQgLS14NTA5Y2VydGZpbGUgZGF0YV9maWxlcy9zZXJ2ZXIyLXNoYTI1Ni5jcnQgLS14NTA5a2V5ZmlsZSBkYXRhX2ZpbGVzL3NlcnZlcjIua2V5IC0tcHJpb3JpdHk9Tk9ORTorQUVTLTI1Ni1HQ006K1NIQTM4NDorQUVBRDorU0lHTi1SU0EtUFNTLVJTQUUtU0hBMjU2OitHUk9VUC1YMjU1MTk6K1ZFUlMtVExTMS4zOiVOT19USUNLRVRTIiBcCi0gICAgICAgICAiJFBfQ0xJIGNhX2ZpbGU9ZGF0YV9maWxlcy90ZXN0LWNhX2NhdDEyLmNydCBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMjU2LUdDTS1TSEEzODQgc2lnX2FsZ3M9cnNhX3Bzc19yc2FlX3NoYTI1NiBncm91cHM9eDI1NTE5IiBcCisgICAgICAgICAiJEdfTkVYVF9TUlZfTk9fQ0VSVCAtLWh0dHAgLS1kaXNhYmxlLWNsaWVudC1jZXJ0IC0tZGVidWc9NCAtLXg1MDljZXJ0ZmlsZSAkREFUQV9GSUxFU19QQVRIL3NlcnZlcjItc2hhMjU2LmNydCAtLXg1MDlrZXlmaWxlICREQVRBX0ZJTEVTX1BBVEgvc2VydmVyMi5rZXkgLS1wcmlvcml0eT1OT05FOitBRVMtMjU2LUdDTTorU0hBMzg0OitBRUFEOitTSUdOLVJTQS1QU1MtUlNBRS1TSEEyNTY6K0dST1VQLVgyNTUxOTorVkVSUy1UTFMxLjM6JU5PX1RJQ0tFVFMiIFwKKyAgICAgICAgICIkUF9DTEkgY2FfZmlsZT0kREFUQV9GSUxFU19QQVRIL3Rlc3QtY2FfY2F0MTIuY3J0IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0yNTYtR0NNLVNIQTM4NCBzaWdfYWxncz1yc2FfcHNzX3JzYWVfc2hhMjU2IGdyb3Vwcz14MjU1MTkiIFwKICAgICAgICAgIDAgXAogICAgICAgICAgLWMgIkhUVFAvMS4wIDIwMCBPSyIgXAogICAgICAgICAgLWMgIlByb3RvY29sIGlzIFRMU3YxLjMiIFwKQEAgLTc0NjYsOCArNzQ2OCw4IEBACiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBNQkVEVExTX1NTTF9UTFMxXzNfQ09NUEFUSUJJTElUWV9NT0RFCiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBQU0FfV0FOVF9BTEdfRUNESAogcnVuX3Rlc3QgIlRMUyAxLjMgbS0+RzogQUVTXzI1Nl9HQ01fU0hBMzg0LHg0NDgsZWNkc2Ffc2VjcDI1NnIxX3NoYTI1NiIgXAotICAgICAgICAgIiRHX05FWFRfU1JWX05PX0NFUlQgLS1odHRwIC0tZGlzYWJsZS1jbGllbnQtY2VydCAtLWRlYnVnPTQgLS14NTA5Y2VydGZpbGUgZGF0YV9maWxlcy9lY2RzYV9zZWNwMjU2cjEuY3J0IC0teDUwOWtleWZpbGUgZGF0YV9maWxlcy9lY2RzYV9zZWNwMjU2cjEua2V5IC0tcHJpb3JpdHk9Tk9ORTorQUVTLTI1Ni1HQ006K1NIQTM4NDorQUVBRDorU0lHTi1FQ0RTQS1TRUNQMjU2UjEtU0hBMjU2OitHUk9VUC1YNDQ4OitWRVJTLVRMUzEuMzolTk9fVElDS0VUUyIgXAotICAgICAgICAgIiRQX0NMSSBjYV9maWxlPWRhdGFfZmlsZXMvdGVzdC1jYTIuY3J0IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0yNTYtR0NNLVNIQTM4NCBzaWdfYWxncz1lY2RzYV9zZWNwMjU2cjFfc2hhMjU2IGdyb3Vwcz14NDQ4IiBcCisgICAgICAgICAiJEdfTkVYVF9TUlZfTk9fQ0VSVCAtLWh0dHAgLS1kaXNhYmxlLWNsaWVudC1jZXJ0IC0tZGVidWc9NCAtLXg1MDljZXJ0ZmlsZSAkREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3AyNTZyMS5jcnQgLS14NTA5a2V5ZmlsZSAkREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3AyNTZyMS5rZXkgLS1wcmlvcml0eT1OT05FOitBRVMtMjU2LUdDTTorU0hBMzg0OitBRUFEOitTSUdOLUVDRFNBLVNFQ1AyNTZSMS1TSEEyNTY6K0dST1VQLVg0NDg6K1ZFUlMtVExTMS4zOiVOT19USUNLRVRTIiBcCisgICAgICAgICAiJFBfQ0xJIGNhX2ZpbGU9JERBVEFfRklMRVNfUEFUSC90ZXN0LWNhMi5jcnQgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTI1Ni1HQ00tU0hBMzg0IHNpZ19hbGdzPWVjZHNhX3NlY3AyNTZyMV9zaGEyNTYgZ3JvdXBzPXg0NDgiIFwKICAgICAgICAgIDAgXAogICAgICAgICAgLWMgIkhUVFAvMS4wIDIwMCBPSyIgXAogICAgICAgICAgLWMgIlByb3RvY29sIGlzIFRMU3YxLjMiIFwKQEAgLTc0ODYsOCArNzQ4OCw4IEBACiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBNQkVEVExTX1NTTF9UTFMxXzNfQ09NUEFUSUJJTElUWV9NT0RFCiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBQU0FfV0FOVF9BTEdfRUNESAogcnVuX3Rlc3QgIlRMUyAxLjMgbS0+RzogQUVTXzI1Nl9HQ01fU0hBMzg0LHg0NDgsZWNkc2Ffc2VjcDM4NHIxX3NoYTM4NCIgXAotICAgICAgICAgIiRHX05FWFRfU1JWX05PX0NFUlQgLS1odHRwIC0tZGlzYWJsZS1jbGllbnQtY2VydCAtLWRlYnVnPTQgLS14NTA5Y2VydGZpbGUgZGF0YV9maWxlcy9lY2RzYV9zZWNwMzg0cjEuY3J0IC0teDUwOWtleWZpbGUgZGF0YV9maWxlcy9lY2RzYV9zZWNwMzg0cjEua2V5IC0tcHJpb3JpdHk9Tk9ORTorQUVTLTI1Ni1HQ006K1NIQTM4NDorQUVBRDorU0lHTi1FQ0RTQS1TRUNQMzg0UjEtU0hBMzg0OitHUk9VUC1YNDQ4OitWRVJTLVRMUzEuMzolTk9fVElDS0VUUyIgXAotICAgICAgICAgIiRQX0NMSSBjYV9maWxlPWRhdGFfZmlsZXMvdGVzdC1jYTIuY3J0IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0yNTYtR0NNLVNIQTM4NCBzaWdfYWxncz1lY2RzYV9zZWNwMzg0cjFfc2hhMzg0IGdyb3Vwcz14NDQ4IiBcCisgICAgICAgICAiJEdfTkVYVF9TUlZfTk9fQ0VSVCAtLWh0dHAgLS1kaXNhYmxlLWNsaWVudC1jZXJ0IC0tZGVidWc9NCAtLXg1MDljZXJ0ZmlsZSAkREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3AzODRyMS5jcnQgLS14NTA5a2V5ZmlsZSAkREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3AzODRyMS5rZXkgLS1wcmlvcml0eT1OT05FOitBRVMtMjU2LUdDTTorU0hBMzg0OitBRUFEOitTSUdOLUVDRFNBLVNFQ1AzODRSMS1TSEEzODQ6K0dST1VQLVg0NDg6K1ZFUlMtVExTMS4zOiVOT19USUNLRVRTIiBcCisgICAgICAgICAiJFBfQ0xJIGNhX2ZpbGU9JERBVEFfRklMRVNfUEFUSC90ZXN0LWNhMi5jcnQgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTI1Ni1HQ00tU0hBMzg0IHNpZ19hbGdzPWVjZHNhX3NlY3AzODRyMV9zaGEzODQgZ3JvdXBzPXg0NDgiIFwKICAgICAgICAgIDAgXAogICAgICAgICAgLWMgIkhUVFAvMS4wIDIwMCBPSyIgXAogICAgICAgICAgLWMgIlByb3RvY29sIGlzIFRMU3YxLjMiIFwKQEAgLTc1MDYsOCArNzUwOCw4IEBACiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBNQkVEVExTX1NTTF9UTFMxXzNfQ09NUEFUSUJJTElUWV9NT0RFCiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBQU0FfV0FOVF9BTEdfRUNESAogcnVuX3Rlc3QgIlRMUyAxLjMgbS0+RzogQUVTXzI1Nl9HQ01fU0hBMzg0LHg0NDgsZWNkc2Ffc2VjcDUyMXIxX3NoYTUxMiIgXAotICAgICAgICAgIiRHX05FWFRfU1JWX05PX0NFUlQgLS1odHRwIC0tZGlzYWJsZS1jbGllbnQtY2VydCAtLWRlYnVnPTQgLS14NTA5Y2VydGZpbGUgZGF0YV9maWxlcy9lY2RzYV9zZWNwNTIxcjEuY3J0IC0teDUwOWtleWZpbGUgZGF0YV9maWxlcy9lY2RzYV9zZWNwNTIxcjEua2V5IC0tcHJpb3JpdHk9Tk9ORTorQUVTLTI1Ni1HQ006K1NIQTM4NDorQUVBRDorU0lHTi1FQ0RTQS1TRUNQNTIxUjEtU0hBNTEyOitHUk9VUC1YNDQ4OitWRVJTLVRMUzEuMzolTk9fVElDS0VUUyIgXAotICAgICAgICAgIiRQX0NMSSBjYV9maWxlPWRhdGFfZmlsZXMvdGVzdC1jYTIuY3J0IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0yNTYtR0NNLVNIQTM4NCBzaWdfYWxncz1lY2RzYV9zZWNwNTIxcjFfc2hhNTEyIGdyb3Vwcz14NDQ4IiBcCisgICAgICAgICAiJEdfTkVYVF9TUlZfTk9fQ0VSVCAtLWh0dHAgLS1kaXNhYmxlLWNsaWVudC1jZXJ0IC0tZGVidWc9NCAtLXg1MDljZXJ0ZmlsZSAkREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3A1MjFyMS5jcnQgLS14NTA5a2V5ZmlsZSAkREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3A1MjFyMS5rZXkgLS1wcmlvcml0eT1OT05FOitBRVMtMjU2LUdDTTorU0hBMzg0OitBRUFEOitTSUdOLUVDRFNBLVNFQ1A1MjFSMS1TSEE1MTI6K0dST1VQLVg0NDg6K1ZFUlMtVExTMS4zOiVOT19USUNLRVRTIiBcCisgICAgICAgICAiJFBfQ0xJIGNhX2ZpbGU9JERBVEFfRklMRVNfUEFUSC90ZXN0LWNhMi5jcnQgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTI1Ni1HQ00tU0hBMzg0IHNpZ19hbGdzPWVjZHNhX3NlY3A1MjFyMV9zaGE1MTIgZ3JvdXBzPXg0NDgiIFwKICAgICAgICAgIDAgXAogICAgICAgICAgLWMgIkhUVFAvMS4wIDIwMCBPSyIgXAogICAgICAgICAgLWMgIlByb3RvY29sIGlzIFRMU3YxLjMiIFwKQEAgLTc1MjcsOCArNzUyOSw4IEBACiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBNQkVEVExTX1g1MDlfUlNBU1NBX1BTU19TVVBQT1JUCiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBQU0FfV0FOVF9BTEdfRUNESAogcnVuX3Rlc3QgIlRMUyAxLjMgbS0+RzogQUVTXzI1Nl9HQ01fU0hBMzg0LHg0NDgscnNhX3Bzc19yc2FlX3NoYTI1NiIgXAotICAgICAgICAgIiRHX05FWFRfU1JWX05PX0NFUlQgLS1odHRwIC0tZGlzYWJsZS1jbGllbnQtY2VydCAtLWRlYnVnPTQgLS14NTA5Y2VydGZpbGUgZGF0YV9maWxlcy9zZXJ2ZXIyLXNoYTI1Ni5jcnQgLS14NTA5a2V5ZmlsZSBkYXRhX2ZpbGVzL3NlcnZlcjIua2V5IC0tcHJpb3JpdHk9Tk9ORTorQUVTLTI1Ni1HQ006K1NIQTM4NDorQUVBRDorU0lHTi1SU0EtUFNTLVJTQUUtU0hBMjU2OitHUk9VUC1YNDQ4OitWRVJTLVRMUzEuMzolTk9fVElDS0VUUyIgXAotICAgICAgICAgIiRQX0NMSSBjYV9maWxlPWRhdGFfZmlsZXMvdGVzdC1jYV9jYXQxMi5jcnQgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTI1Ni1HQ00tU0hBMzg0IHNpZ19hbGdzPXJzYV9wc3NfcnNhZV9zaGEyNTYgZ3JvdXBzPXg0NDgiIFwKKyAgICAgICAgICIkR19ORVhUX1NSVl9OT19DRVJUIC0taHR0cCAtLWRpc2FibGUtY2xpZW50LWNlcnQgLS1kZWJ1Zz00IC0teDUwOWNlcnRmaWxlICREQVRBX0ZJTEVTX1BBVEgvc2VydmVyMi1zaGEyNTYuY3J0IC0teDUwOWtleWZpbGUgJERBVEFfRklMRVNfUEFUSC9zZXJ2ZXIyLmtleSAtLXByaW9yaXR5PU5PTkU6K0FFUy0yNTYtR0NNOitTSEEzODQ6K0FFQUQ6K1NJR04tUlNBLVBTUy1SU0FFLVNIQTI1NjorR1JPVVAtWDQ0ODorVkVSUy1UTFMxLjM6JU5PX1RJQ0tFVFMiIFwKKyAgICAgICAgICIkUF9DTEkgY2FfZmlsZT0kREFUQV9GSUxFU19QQVRIL3Rlc3QtY2FfY2F0MTIuY3J0IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0yNTYtR0NNLVNIQTM4NCBzaWdfYWxncz1yc2FfcHNzX3JzYWVfc2hhMjU2IGdyb3Vwcz14NDQ4IiBcCiAgICAgICAgICAwIFwKICAgICAgICAgIC1jICJIVFRQLzEuMCAyMDAgT0siIFwKICAgICAgICAgIC1jICJQcm90b2NvbCBpcyBUTFN2MS4zIiBcCkBAIC03NTQ4LDggKzc1NTAsOCBAQAogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgUFNBX1dBTlRfQUxHX0ZGREgKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIFBTQV9XQU5UX0RIX1JGQzc5MTlfMjA0OAogcnVuX3Rlc3QgIlRMUyAxLjMgbS0+RzogQUVTXzI1Nl9HQ01fU0hBMzg0LGZmZGhlMjA0OCxlY2RzYV9zZWNwMjU2cjFfc2hhMjU2IiBcCi0gICAgICAgICAiJEdfTkVYVF9TUlZfTk9fQ0VSVCAtLWh0dHAgLS1kaXNhYmxlLWNsaWVudC1jZXJ0IC0tZGVidWc9NCAtLXg1MDljZXJ0ZmlsZSBkYXRhX2ZpbGVzL2VjZHNhX3NlY3AyNTZyMS5jcnQgLS14NTA5a2V5ZmlsZSBkYXRhX2ZpbGVzL2VjZHNhX3NlY3AyNTZyMS5rZXkgLS1wcmlvcml0eT1OT05FOitBRVMtMjU2LUdDTTorU0hBMzg0OitBRUFEOitTSUdOLUVDRFNBLVNFQ1AyNTZSMS1TSEEyNTY6K0dST1VQLUZGREhFMjA0ODorVkVSUy1UTFMxLjM6JU5PX1RJQ0tFVFMiIFwKLSAgICAgICAgICIkUF9DTEkgY2FfZmlsZT1kYXRhX2ZpbGVzL3Rlc3QtY2EyLmNydCBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMjU2LUdDTS1TSEEzODQgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDI1NnIxX3NoYTI1NiBncm91cHM9ZmZkaGUyMDQ4IiBcCisgICAgICAgICAiJEdfTkVYVF9TUlZfTk9fQ0VSVCAtLWh0dHAgLS1kaXNhYmxlLWNsaWVudC1jZXJ0IC0tZGVidWc9NCAtLXg1MDljZXJ0ZmlsZSAkREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3AyNTZyMS5jcnQgLS14NTA5a2V5ZmlsZSAkREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3AyNTZyMS5rZXkgLS1wcmlvcml0eT1OT05FOitBRVMtMjU2LUdDTTorU0hBMzg0OitBRUFEOitTSUdOLUVDRFNBLVNFQ1AyNTZSMS1TSEEyNTY6K0dST1VQLUZGREhFMjA0ODorVkVSUy1UTFMxLjM6JU5PX1RJQ0tFVFMiIFwKKyAgICAgICAgICIkUF9DTEkgY2FfZmlsZT0kREFUQV9GSUxFU19QQVRIL3Rlc3QtY2EyLmNydCBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMjU2LUdDTS1TSEEzODQgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDI1NnIxX3NoYTI1NiBncm91cHM9ZmZkaGUyMDQ4IiBcCiAgICAgICAgICAwIFwKICAgICAgICAgIC1jICJIVFRQLzEuMCAyMDAgT0siIFwKICAgICAgICAgIC1jICJQcm90b2NvbCBpcyBUTFN2MS4zIiBcCkBAIC03NTY5LDggKzc1NzEsOCBAQAogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgUFNBX1dBTlRfQUxHX0ZGREgKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIFBTQV9XQU5UX0RIX1JGQzc5MTlfMjA0OAogcnVuX3Rlc3QgIlRMUyAxLjMgbS0+RzogQUVTXzI1Nl9HQ01fU0hBMzg0LGZmZGhlMjA0OCxlY2RzYV9zZWNwMzg0cjFfc2hhMzg0IiBcCi0gICAgICAgICAiJEdfTkVYVF9TUlZfTk9fQ0VSVCAtLWh0dHAgLS1kaXNhYmxlLWNsaWVudC1jZXJ0IC0tZGVidWc9NCAtLXg1MDljZXJ0ZmlsZSBkYXRhX2ZpbGVzL2VjZHNhX3NlY3AzODRyMS5jcnQgLS14NTA5a2V5ZmlsZSBkYXRhX2ZpbGVzL2VjZHNhX3NlY3AzODRyMS5rZXkgLS1wcmlvcml0eT1OT05FOitBRVMtMjU2LUdDTTorU0hBMzg0OitBRUFEOitTSUdOLUVDRFNBLVNFQ1AzODRSMS1TSEEzODQ6K0dST1VQLUZGREhFMjA0ODorVkVSUy1UTFMxLjM6JU5PX1RJQ0tFVFMiIFwKLSAgICAgICAgICIkUF9DTEkgY2FfZmlsZT1kYXRhX2ZpbGVzL3Rlc3QtY2EyLmNydCBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMjU2LUdDTS1TSEEzODQgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDM4NHIxX3NoYTM4NCBncm91cHM9ZmZkaGUyMDQ4IiBcCisgICAgICAgICAiJEdfTkVYVF9TUlZfTk9fQ0VSVCAtLWh0dHAgLS1kaXNhYmxlLWNsaWVudC1jZXJ0IC0tZGVidWc9NCAtLXg1MDljZXJ0ZmlsZSAkREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3AzODRyMS5jcnQgLS14NTA5a2V5ZmlsZSAkREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3AzODRyMS5rZXkgLS1wcmlvcml0eT1OT05FOitBRVMtMjU2LUdDTTorU0hBMzg0OitBRUFEOitTSUdOLUVDRFNBLVNFQ1AzODRSMS1TSEEzODQ6K0dST1VQLUZGREhFMjA0ODorVkVSUy1UTFMxLjM6JU5PX1RJQ0tFVFMiIFwKKyAgICAgICAgICIkUF9DTEkgY2FfZmlsZT0kREFUQV9GSUxFU19QQVRIL3Rlc3QtY2EyLmNydCBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMjU2LUdDTS1TSEEzODQgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDM4NHIxX3NoYTM4NCBncm91cHM9ZmZkaGUyMDQ4IiBcCiAgICAgICAgICAwIFwKICAgICAgICAgIC1jICJIVFRQLzEuMCAyMDAgT0siIFwKICAgICAgICAgIC1jICJQcm90b2NvbCBpcyBUTFN2MS4zIiBcCkBAIC03NTkwLDggKzc1OTIsOCBAQAogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgUFNBX1dBTlRfQUxHX0ZGREgKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIFBTQV9XQU5UX0RIX1JGQzc5MTlfMjA0OAogcnVuX3Rlc3QgIlRMUyAxLjMgbS0+RzogQUVTXzI1Nl9HQ01fU0hBMzg0LGZmZGhlMjA0OCxlY2RzYV9zZWNwNTIxcjFfc2hhNTEyIiBcCi0gICAgICAgICAiJEdfTkVYVF9TUlZfTk9fQ0VSVCAtLWh0dHAgLS1kaXNhYmxlLWNsaWVudC1jZXJ0IC0tZGVidWc9NCAtLXg1MDljZXJ0ZmlsZSBkYXRhX2ZpbGVzL2VjZHNhX3NlY3A1MjFyMS5jcnQgLS14NTA5a2V5ZmlsZSBkYXRhX2ZpbGVzL2VjZHNhX3NlY3A1MjFyMS5rZXkgLS1wcmlvcml0eT1OT05FOitBRVMtMjU2LUdDTTorU0hBMzg0OitBRUFEOitTSUdOLUVDRFNBLVNFQ1A1MjFSMS1TSEE1MTI6K0dST1VQLUZGREhFMjA0ODorVkVSUy1UTFMxLjM6JU5PX1RJQ0tFVFMiIFwKLSAgICAgICAgICIkUF9DTEkgY2FfZmlsZT1kYXRhX2ZpbGVzL3Rlc3QtY2EyLmNydCBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMjU2LUdDTS1TSEEzODQgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDUyMXIxX3NoYTUxMiBncm91cHM9ZmZkaGUyMDQ4IiBcCisgICAgICAgICAiJEdfTkVYVF9TUlZfTk9fQ0VSVCAtLWh0dHAgLS1kaXNhYmxlLWNsaWVudC1jZXJ0IC0tZGVidWc9NCAtLXg1MDljZXJ0ZmlsZSAkREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3A1MjFyMS5jcnQgLS14NTA5a2V5ZmlsZSAkREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3A1MjFyMS5rZXkgLS1wcmlvcml0eT1OT05FOitBRVMtMjU2LUdDTTorU0hBMzg0OitBRUFEOitTSUdOLUVDRFNBLVNFQ1A1MjFSMS1TSEE1MTI6K0dST1VQLUZGREhFMjA0ODorVkVSUy1UTFMxLjM6JU5PX1RJQ0tFVFMiIFwKKyAgICAgICAgICIkUF9DTEkgY2FfZmlsZT0kREFUQV9GSUxFU19QQVRIL3Rlc3QtY2EyLmNydCBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMjU2LUdDTS1TSEEzODQgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDUyMXIxX3NoYTUxMiBncm91cHM9ZmZkaGUyMDQ4IiBcCiAgICAgICAgICAwIFwKICAgICAgICAgIC1jICJIVFRQLzEuMCAyMDAgT0siIFwKICAgICAgICAgIC1jICJQcm90b2NvbCBpcyBUTFN2MS4zIiBcCkBAIC03NjEyLDggKzc2MTQsOCBAQAogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgUFNBX1dBTlRfQUxHX0ZGREgKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIFBTQV9XQU5UX0RIX1JGQzc5MTlfMjA0OAogcnVuX3Rlc3QgIlRMUyAxLjMgbS0+RzogQUVTXzI1Nl9HQ01fU0hBMzg0LGZmZGhlMjA0OCxyc2FfcHNzX3JzYWVfc2hhMjU2IiBcCi0gICAgICAgICAiJEdfTkVYVF9TUlZfTk9fQ0VSVCAtLWh0dHAgLS1kaXNhYmxlLWNsaWVudC1jZXJ0IC0tZGVidWc9NCAtLXg1MDljZXJ0ZmlsZSBkYXRhX2ZpbGVzL3NlcnZlcjItc2hhMjU2LmNydCAtLXg1MDlrZXlmaWxlIGRhdGFfZmlsZXMvc2VydmVyMi5rZXkgLS1wcmlvcml0eT1OT05FOitBRVMtMjU2LUdDTTorU0hBMzg0OitBRUFEOitTSUdOLVJTQS1QU1MtUlNBRS1TSEEyNTY6K0dST1VQLUZGREhFMjA0ODorVkVSUy1UTFMxLjM6JU5PX1RJQ0tFVFMiIFwKLSAgICAgICAgICIkUF9DTEkgY2FfZmlsZT1kYXRhX2ZpbGVzL3Rlc3QtY2FfY2F0MTIuY3J0IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0yNTYtR0NNLVNIQTM4NCBzaWdfYWxncz1yc2FfcHNzX3JzYWVfc2hhMjU2IGdyb3Vwcz1mZmRoZTIwNDgiIFwKKyAgICAgICAgICIkR19ORVhUX1NSVl9OT19DRVJUIC0taHR0cCAtLWRpc2FibGUtY2xpZW50LWNlcnQgLS1kZWJ1Zz00IC0teDUwOWNlcnRmaWxlICREQVRBX0ZJTEVTX1BBVEgvc2VydmVyMi1zaGEyNTYuY3J0IC0teDUwOWtleWZpbGUgJERBVEFfRklMRVNfUEFUSC9zZXJ2ZXIyLmtleSAtLXByaW9yaXR5PU5PTkU6K0FFUy0yNTYtR0NNOitTSEEzODQ6K0FFQUQ6K1NJR04tUlNBLVBTUy1SU0FFLVNIQTI1NjorR1JPVVAtRkZESEUyMDQ4OitWRVJTLVRMUzEuMzolTk9fVElDS0VUUyIgXAorICAgICAgICAgIiRQX0NMSSBjYV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvdGVzdC1jYV9jYXQxMi5jcnQgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTI1Ni1HQ00tU0hBMzg0IHNpZ19hbGdzPXJzYV9wc3NfcnNhZV9zaGEyNTYgZ3JvdXBzPWZmZGhlMjA0OCIgXAogICAgICAgICAgMCBcCiAgICAgICAgICAtYyAiSFRUUC8xLjAgMjAwIE9LIiBcCiAgICAgICAgICAtYyAiUHJvdG9jb2wgaXMgVExTdjEuMyIgXApAQCAtNzYzMiw4ICs3NjM0LDggQEAKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIE1CRURUTFNfU1NMX1RMUzFfM19DT01QQVRJQklMSVRZX01PREUKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIFBTQV9XQU5UX0FMR19FQ0RICiBydW5fdGVzdCAiVExTIDEuMyBtLT5HOiBDSEFDSEEyMF9QT0xZMTMwNV9TSEEyNTYsc2VjcDI1NnIxLGVjZHNhX3NlY3AyNTZyMV9zaGEyNTYiIFwKLSAgICAgICAgICIkR19ORVhUX1NSVl9OT19DRVJUIC0taHR0cCAtLWRpc2FibGUtY2xpZW50LWNlcnQgLS1kZWJ1Zz00IC0teDUwOWNlcnRmaWxlIGRhdGFfZmlsZXMvZWNkc2Ffc2VjcDI1NnIxLmNydCAtLXg1MDlrZXlmaWxlIGRhdGFfZmlsZXMvZWNkc2Ffc2VjcDI1NnIxLmtleSAtLXByaW9yaXR5PU5PTkU6K0NIQUNIQTIwLVBPTFkxMzA1OitTSEEyNTY6K0FFQUQ6K1NJR04tRUNEU0EtU0VDUDI1NlIxLVNIQTI1NjorR1JPVVAtU0VDUDI1NlIxOitWRVJTLVRMUzEuMzolTk9fVElDS0VUUyIgXAotICAgICAgICAgIiRQX0NMSSBjYV9maWxlPWRhdGFfZmlsZXMvdGVzdC1jYTIuY3J0IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUNIQUNIQTIwLVBPTFkxMzA1LVNIQTI1NiBzaWdfYWxncz1lY2RzYV9zZWNwMjU2cjFfc2hhMjU2IGdyb3Vwcz1zZWNwMjU2cjEiIFwKKyAgICAgICAgICIkR19ORVhUX1NSVl9OT19DRVJUIC0taHR0cCAtLWRpc2FibGUtY2xpZW50LWNlcnQgLS1kZWJ1Zz00IC0teDUwOWNlcnRmaWxlICREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDI1NnIxLmNydCAtLXg1MDlrZXlmaWxlICREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDI1NnIxLmtleSAtLXByaW9yaXR5PU5PTkU6K0NIQUNIQTIwLVBPTFkxMzA1OitTSEEyNTY6K0FFQUQ6K1NJR04tRUNEU0EtU0VDUDI1NlIxLVNIQTI1NjorR1JPVVAtU0VDUDI1NlIxOitWRVJTLVRMUzEuMzolTk9fVElDS0VUUyIgXAorICAgICAgICAgIiRQX0NMSSBjYV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvdGVzdC1jYTIuY3J0IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUNIQUNIQTIwLVBPTFkxMzA1LVNIQTI1NiBzaWdfYWxncz1lY2RzYV9zZWNwMjU2cjFfc2hhMjU2IGdyb3Vwcz1zZWNwMjU2cjEiIFwKICAgICAgICAgIDAgXAogICAgICAgICAgLWMgIkhUVFAvMS4wIDIwMCBPSyIgXAogICAgICAgICAgLWMgIlByb3RvY29sIGlzIFRMU3YxLjMiIFwKQEAgLTc2NTIsOCArNzY1NCw4IEBACiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBNQkVEVExTX1NTTF9UTFMxXzNfQ09NUEFUSUJJTElUWV9NT0RFCiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBQU0FfV0FOVF9BTEdfRUNESAogcnVuX3Rlc3QgIlRMUyAxLjMgbS0+RzogQ0hBQ0hBMjBfUE9MWTEzMDVfU0hBMjU2LHNlY3AyNTZyMSxlY2RzYV9zZWNwMzg0cjFfc2hhMzg0IiBcCi0gICAgICAgICAiJEdfTkVYVF9TUlZfTk9fQ0VSVCAtLWh0dHAgLS1kaXNhYmxlLWNsaWVudC1jZXJ0IC0tZGVidWc9NCAtLXg1MDljZXJ0ZmlsZSBkYXRhX2ZpbGVzL2VjZHNhX3NlY3AzODRyMS5jcnQgLS14NTA5a2V5ZmlsZSBkYXRhX2ZpbGVzL2VjZHNhX3NlY3AzODRyMS5rZXkgLS1wcmlvcml0eT1OT05FOitDSEFDSEEyMC1QT0xZMTMwNTorU0hBMjU2OitBRUFEOitTSUdOLUVDRFNBLVNFQ1AzODRSMS1TSEEzODQ6K0dST1VQLVNFQ1AyNTZSMTorVkVSUy1UTFMxLjM6JU5PX1RJQ0tFVFMiIFwKLSAgICAgICAgICIkUF9DTEkgY2FfZmlsZT1kYXRhX2ZpbGVzL3Rlc3QtY2EyLmNydCBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1DSEFDSEEyMC1QT0xZMTMwNS1TSEEyNTYgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDM4NHIxX3NoYTM4NCBncm91cHM9c2VjcDI1NnIxIiBcCisgICAgICAgICAiJEdfTkVYVF9TUlZfTk9fQ0VSVCAtLWh0dHAgLS1kaXNhYmxlLWNsaWVudC1jZXJ0IC0tZGVidWc9NCAtLXg1MDljZXJ0ZmlsZSAkREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3AzODRyMS5jcnQgLS14NTA5a2V5ZmlsZSAkREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3AzODRyMS5rZXkgLS1wcmlvcml0eT1OT05FOitDSEFDSEEyMC1QT0xZMTMwNTorU0hBMjU2OitBRUFEOitTSUdOLUVDRFNBLVNFQ1AzODRSMS1TSEEzODQ6K0dST1VQLVNFQ1AyNTZSMTorVkVSUy1UTFMxLjM6JU5PX1RJQ0tFVFMiIFwKKyAgICAgICAgICIkUF9DTEkgY2FfZmlsZT0kREFUQV9GSUxFU19QQVRIL3Rlc3QtY2EyLmNydCBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1DSEFDSEEyMC1QT0xZMTMwNS1TSEEyNTYgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDM4NHIxX3NoYTM4NCBncm91cHM9c2VjcDI1NnIxIiBcCiAgICAgICAgICAwIFwKICAgICAgICAgIC1jICJIVFRQLzEuMCAyMDAgT0siIFwKICAgICAgICAgIC1jICJQcm90b2NvbCBpcyBUTFN2MS4zIiBcCkBAIC03NjcyLDggKzc2NzQsOCBAQAogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgTUJFRFRMU19TU0xfVExTMV8zX0NPTVBBVElCSUxJVFlfTU9ERQogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgUFNBX1dBTlRfQUxHX0VDREgKIHJ1bl90ZXN0ICJUTFMgMS4zIG0tPkc6IENIQUNIQTIwX1BPTFkxMzA1X1NIQTI1NixzZWNwMjU2cjEsZWNkc2Ffc2VjcDUyMXIxX3NoYTUxMiIgXAotICAgICAgICAgIiRHX05FWFRfU1JWX05PX0NFUlQgLS1odHRwIC0tZGlzYWJsZS1jbGllbnQtY2VydCAtLWRlYnVnPTQgLS14NTA5Y2VydGZpbGUgZGF0YV9maWxlcy9lY2RzYV9zZWNwNTIxcjEuY3J0IC0teDUwOWtleWZpbGUgZGF0YV9maWxlcy9lY2RzYV9zZWNwNTIxcjEua2V5IC0tcHJpb3JpdHk9Tk9ORTorQ0hBQ0hBMjAtUE9MWTEzMDU6K1NIQTI1NjorQUVBRDorU0lHTi1FQ0RTQS1TRUNQNTIxUjEtU0hBNTEyOitHUk9VUC1TRUNQMjU2UjE6K1ZFUlMtVExTMS4zOiVOT19USUNLRVRTIiBcCi0gICAgICAgICAiJFBfQ0xJIGNhX2ZpbGU9ZGF0YV9maWxlcy90ZXN0LWNhMi5jcnQgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQ0hBQ0hBMjAtUE9MWTEzMDUtU0hBMjU2IHNpZ19hbGdzPWVjZHNhX3NlY3A1MjFyMV9zaGE1MTIgZ3JvdXBzPXNlY3AyNTZyMSIgXAorICAgICAgICAgIiRHX05FWFRfU1JWX05PX0NFUlQgLS1odHRwIC0tZGlzYWJsZS1jbGllbnQtY2VydCAtLWRlYnVnPTQgLS14NTA5Y2VydGZpbGUgJERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwNTIxcjEuY3J0IC0teDUwOWtleWZpbGUgJERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwNTIxcjEua2V5IC0tcHJpb3JpdHk9Tk9ORTorQ0hBQ0hBMjAtUE9MWTEzMDU6K1NIQTI1NjorQUVBRDorU0lHTi1FQ0RTQS1TRUNQNTIxUjEtU0hBNTEyOitHUk9VUC1TRUNQMjU2UjE6K1ZFUlMtVExTMS4zOiVOT19USUNLRVRTIiBcCisgICAgICAgICAiJFBfQ0xJIGNhX2ZpbGU9JERBVEFfRklMRVNfUEFUSC90ZXN0LWNhMi5jcnQgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQ0hBQ0hBMjAtUE9MWTEzMDUtU0hBMjU2IHNpZ19hbGdzPWVjZHNhX3NlY3A1MjFyMV9zaGE1MTIgZ3JvdXBzPXNlY3AyNTZyMSIgXAogICAgICAgICAgMCBcCiAgICAgICAgICAtYyAiSFRUUC8xLjAgMjAwIE9LIiBcCiAgICAgICAgICAtYyAiUHJvdG9jb2wgaXMgVExTdjEuMyIgXApAQCAtNzY5Myw4ICs3Njk1LDggQEAKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIE1CRURUTFNfWDUwOV9SU0FTU0FfUFNTX1NVUFBPUlQKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIFBTQV9XQU5UX0FMR19FQ0RICiBydW5fdGVzdCAiVExTIDEuMyBtLT5HOiBDSEFDSEEyMF9QT0xZMTMwNV9TSEEyNTYsc2VjcDI1NnIxLHJzYV9wc3NfcnNhZV9zaGEyNTYiIFwKLSAgICAgICAgICIkR19ORVhUX1NSVl9OT19DRVJUIC0taHR0cCAtLWRpc2FibGUtY2xpZW50LWNlcnQgLS1kZWJ1Zz00IC0teDUwOWNlcnRmaWxlIGRhdGFfZmlsZXMvc2VydmVyMi1zaGEyNTYuY3J0IC0teDUwOWtleWZpbGUgZGF0YV9maWxlcy9zZXJ2ZXIyLmtleSAtLXByaW9yaXR5PU5PTkU6K0NIQUNIQTIwLVBPTFkxMzA1OitTSEEyNTY6K0FFQUQ6K1NJR04tUlNBLVBTUy1SU0FFLVNIQTI1NjorR1JPVVAtU0VDUDI1NlIxOitWRVJTLVRMUzEuMzolTk9fVElDS0VUUyIgXAotICAgICAgICAgIiRQX0NMSSBjYV9maWxlPWRhdGFfZmlsZXMvdGVzdC1jYV9jYXQxMi5jcnQgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQ0hBQ0hBMjAtUE9MWTEzMDUtU0hBMjU2IHNpZ19hbGdzPXJzYV9wc3NfcnNhZV9zaGEyNTYgZ3JvdXBzPXNlY3AyNTZyMSIgXAorICAgICAgICAgIiRHX05FWFRfU1JWX05PX0NFUlQgLS1odHRwIC0tZGlzYWJsZS1jbGllbnQtY2VydCAtLWRlYnVnPTQgLS14NTA5Y2VydGZpbGUgJERBVEFfRklMRVNfUEFUSC9zZXJ2ZXIyLXNoYTI1Ni5jcnQgLS14NTA5a2V5ZmlsZSAkREFUQV9GSUxFU19QQVRIL3NlcnZlcjIua2V5IC0tcHJpb3JpdHk9Tk9ORTorQ0hBQ0hBMjAtUE9MWTEzMDU6K1NIQTI1NjorQUVBRDorU0lHTi1SU0EtUFNTLVJTQUUtU0hBMjU2OitHUk9VUC1TRUNQMjU2UjE6K1ZFUlMtVExTMS4zOiVOT19USUNLRVRTIiBcCisgICAgICAgICAiJFBfQ0xJIGNhX2ZpbGU9JERBVEFfRklMRVNfUEFUSC90ZXN0LWNhX2NhdDEyLmNydCBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1DSEFDSEEyMC1QT0xZMTMwNS1TSEEyNTYgc2lnX2FsZ3M9cnNhX3Bzc19yc2FlX3NoYTI1NiBncm91cHM9c2VjcDI1NnIxIiBcCiAgICAgICAgICAwIFwKICAgICAgICAgIC1jICJIVFRQLzEuMCAyMDAgT0siIFwKICAgICAgICAgIC1jICJQcm90b2NvbCBpcyBUTFN2MS4zIiBcCkBAIC03NzEzLDggKzc3MTUsOCBAQAogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgTUJFRFRMU19TU0xfVExTMV8zX0NPTVBBVElCSUxJVFlfTU9ERQogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgUFNBX1dBTlRfQUxHX0VDREgKIHJ1bl90ZXN0ICJUTFMgMS4zIG0tPkc6IENIQUNIQTIwX1BPTFkxMzA1X1NIQTI1NixzZWNwMzg0cjEsZWNkc2Ffc2VjcDI1NnIxX3NoYTI1NiIgXAotICAgICAgICAgIiRHX05FWFRfU1JWX05PX0NFUlQgLS1odHRwIC0tZGlzYWJsZS1jbGllbnQtY2VydCAtLWRlYnVnPTQgLS14NTA5Y2VydGZpbGUgZGF0YV9maWxlcy9lY2RzYV9zZWNwMjU2cjEuY3J0IC0teDUwOWtleWZpbGUgZGF0YV9maWxlcy9lY2RzYV9zZWNwMjU2cjEua2V5IC0tcHJpb3JpdHk9Tk9ORTorQ0hBQ0hBMjAtUE9MWTEzMDU6K1NIQTI1NjorQUVBRDorU0lHTi1FQ0RTQS1TRUNQMjU2UjEtU0hBMjU2OitHUk9VUC1TRUNQMzg0UjE6K1ZFUlMtVExTMS4zOiVOT19USUNLRVRTIiBcCi0gICAgICAgICAiJFBfQ0xJIGNhX2ZpbGU9ZGF0YV9maWxlcy90ZXN0LWNhMi5jcnQgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQ0hBQ0hBMjAtUE9MWTEzMDUtU0hBMjU2IHNpZ19hbGdzPWVjZHNhX3NlY3AyNTZyMV9zaGEyNTYgZ3JvdXBzPXNlY3AzODRyMSIgXAorICAgICAgICAgIiRHX05FWFRfU1JWX05PX0NFUlQgLS1odHRwIC0tZGlzYWJsZS1jbGllbnQtY2VydCAtLWRlYnVnPTQgLS14NTA5Y2VydGZpbGUgJERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwMjU2cjEuY3J0IC0teDUwOWtleWZpbGUgJERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwMjU2cjEua2V5IC0tcHJpb3JpdHk9Tk9ORTorQ0hBQ0hBMjAtUE9MWTEzMDU6K1NIQTI1NjorQUVBRDorU0lHTi1FQ0RTQS1TRUNQMjU2UjEtU0hBMjU2OitHUk9VUC1TRUNQMzg0UjE6K1ZFUlMtVExTMS4zOiVOT19USUNLRVRTIiBcCisgICAgICAgICAiJFBfQ0xJIGNhX2ZpbGU9JERBVEFfRklMRVNfUEFUSC90ZXN0LWNhMi5jcnQgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQ0hBQ0hBMjAtUE9MWTEzMDUtU0hBMjU2IHNpZ19hbGdzPWVjZHNhX3NlY3AyNTZyMV9zaGEyNTYgZ3JvdXBzPXNlY3AzODRyMSIgXAogICAgICAgICAgMCBcCiAgICAgICAgICAtYyAiSFRUUC8xLjAgMjAwIE9LIiBcCiAgICAgICAgICAtYyAiUHJvdG9jb2wgaXMgVExTdjEuMyIgXApAQCAtNzczMyw4ICs3NzM1LDggQEAKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIE1CRURUTFNfU1NMX1RMUzFfM19DT01QQVRJQklMSVRZX01PREUKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIFBTQV9XQU5UX0FMR19FQ0RICiBydW5fdGVzdCAiVExTIDEuMyBtLT5HOiBDSEFDSEEyMF9QT0xZMTMwNV9TSEEyNTYsc2VjcDM4NHIxLGVjZHNhX3NlY3AzODRyMV9zaGEzODQiIFwKLSAgICAgICAgICIkR19ORVhUX1NSVl9OT19DRVJUIC0taHR0cCAtLWRpc2FibGUtY2xpZW50LWNlcnQgLS1kZWJ1Zz00IC0teDUwOWNlcnRmaWxlIGRhdGFfZmlsZXMvZWNkc2Ffc2VjcDM4NHIxLmNydCAtLXg1MDlrZXlmaWxlIGRhdGFfZmlsZXMvZWNkc2Ffc2VjcDM4NHIxLmtleSAtLXByaW9yaXR5PU5PTkU6K0NIQUNIQTIwLVBPTFkxMzA1OitTSEEyNTY6K0FFQUQ6K1NJR04tRUNEU0EtU0VDUDM4NFIxLVNIQTM4NDorR1JPVVAtU0VDUDM4NFIxOitWRVJTLVRMUzEuMzolTk9fVElDS0VUUyIgXAotICAgICAgICAgIiRQX0NMSSBjYV9maWxlPWRhdGFfZmlsZXMvdGVzdC1jYTIuY3J0IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUNIQUNIQTIwLVBPTFkxMzA1LVNIQTI1NiBzaWdfYWxncz1lY2RzYV9zZWNwMzg0cjFfc2hhMzg0IGdyb3Vwcz1zZWNwMzg0cjEiIFwKKyAgICAgICAgICIkR19ORVhUX1NSVl9OT19DRVJUIC0taHR0cCAtLWRpc2FibGUtY2xpZW50LWNlcnQgLS1kZWJ1Zz00IC0teDUwOWNlcnRmaWxlICREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDM4NHIxLmNydCAtLXg1MDlrZXlmaWxlICREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDM4NHIxLmtleSAtLXByaW9yaXR5PU5PTkU6K0NIQUNIQTIwLVBPTFkxMzA1OitTSEEyNTY6K0FFQUQ6K1NJR04tRUNEU0EtU0VDUDM4NFIxLVNIQTM4NDorR1JPVVAtU0VDUDM4NFIxOitWRVJTLVRMUzEuMzolTk9fVElDS0VUUyIgXAorICAgICAgICAgIiRQX0NMSSBjYV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvdGVzdC1jYTIuY3J0IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUNIQUNIQTIwLVBPTFkxMzA1LVNIQTI1NiBzaWdfYWxncz1lY2RzYV9zZWNwMzg0cjFfc2hhMzg0IGdyb3Vwcz1zZWNwMzg0cjEiIFwKICAgICAgICAgIDAgXAogICAgICAgICAgLWMgIkhUVFAvMS4wIDIwMCBPSyIgXAogICAgICAgICAgLWMgIlByb3RvY29sIGlzIFRMU3YxLjMiIFwKQEAgLTc3NTMsOCArNzc1NSw4IEBACiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBNQkVEVExTX1NTTF9UTFMxXzNfQ09NUEFUSUJJTElUWV9NT0RFCiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBQU0FfV0FOVF9BTEdfRUNESAogcnVuX3Rlc3QgIlRMUyAxLjMgbS0+RzogQ0hBQ0hBMjBfUE9MWTEzMDVfU0hBMjU2LHNlY3AzODRyMSxlY2RzYV9zZWNwNTIxcjFfc2hhNTEyIiBcCi0gICAgICAgICAiJEdfTkVYVF9TUlZfTk9fQ0VSVCAtLWh0dHAgLS1kaXNhYmxlLWNsaWVudC1jZXJ0IC0tZGVidWc9NCAtLXg1MDljZXJ0ZmlsZSBkYXRhX2ZpbGVzL2VjZHNhX3NlY3A1MjFyMS5jcnQgLS14NTA5a2V5ZmlsZSBkYXRhX2ZpbGVzL2VjZHNhX3NlY3A1MjFyMS5rZXkgLS1wcmlvcml0eT1OT05FOitDSEFDSEEyMC1QT0xZMTMwNTorU0hBMjU2OitBRUFEOitTSUdOLUVDRFNBLVNFQ1A1MjFSMS1TSEE1MTI6K0dST1VQLVNFQ1AzODRSMTorVkVSUy1UTFMxLjM6JU5PX1RJQ0tFVFMiIFwKLSAgICAgICAgICIkUF9DTEkgY2FfZmlsZT1kYXRhX2ZpbGVzL3Rlc3QtY2EyLmNydCBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1DSEFDSEEyMC1QT0xZMTMwNS1TSEEyNTYgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDUyMXIxX3NoYTUxMiBncm91cHM9c2VjcDM4NHIxIiBcCisgICAgICAgICAiJEdfTkVYVF9TUlZfTk9fQ0VSVCAtLWh0dHAgLS1kaXNhYmxlLWNsaWVudC1jZXJ0IC0tZGVidWc9NCAtLXg1MDljZXJ0ZmlsZSAkREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3A1MjFyMS5jcnQgLS14NTA5a2V5ZmlsZSAkREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3A1MjFyMS5rZXkgLS1wcmlvcml0eT1OT05FOitDSEFDSEEyMC1QT0xZMTMwNTorU0hBMjU2OitBRUFEOitTSUdOLUVDRFNBLVNFQ1A1MjFSMS1TSEE1MTI6K0dST1VQLVNFQ1AzODRSMTorVkVSUy1UTFMxLjM6JU5PX1RJQ0tFVFMiIFwKKyAgICAgICAgICIkUF9DTEkgY2FfZmlsZT0kREFUQV9GSUxFU19QQVRIL3Rlc3QtY2EyLmNydCBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1DSEFDSEEyMC1QT0xZMTMwNS1TSEEyNTYgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDUyMXIxX3NoYTUxMiBncm91cHM9c2VjcDM4NHIxIiBcCiAgICAgICAgICAwIFwKICAgICAgICAgIC1jICJIVFRQLzEuMCAyMDAgT0siIFwKICAgICAgICAgIC1jICJQcm90b2NvbCBpcyBUTFN2MS4zIiBcCkBAIC03Nzc0LDggKzc3NzYsOCBAQAogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgTUJFRFRMU19YNTA5X1JTQVNTQV9QU1NfU1VQUE9SVAogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgUFNBX1dBTlRfQUxHX0VDREgKIHJ1bl90ZXN0ICJUTFMgMS4zIG0tPkc6IENIQUNIQTIwX1BPTFkxMzA1X1NIQTI1NixzZWNwMzg0cjEscnNhX3Bzc19yc2FlX3NoYTI1NiIgXAotICAgICAgICAgIiRHX05FWFRfU1JWX05PX0NFUlQgLS1odHRwIC0tZGlzYWJsZS1jbGllbnQtY2VydCAtLWRlYnVnPTQgLS14NTA5Y2VydGZpbGUgZGF0YV9maWxlcy9zZXJ2ZXIyLXNoYTI1Ni5jcnQgLS14NTA5a2V5ZmlsZSBkYXRhX2ZpbGVzL3NlcnZlcjIua2V5IC0tcHJpb3JpdHk9Tk9ORTorQ0hBQ0hBMjAtUE9MWTEzMDU6K1NIQTI1NjorQUVBRDorU0lHTi1SU0EtUFNTLVJTQUUtU0hBMjU2OitHUk9VUC1TRUNQMzg0UjE6K1ZFUlMtVExTMS4zOiVOT19USUNLRVRTIiBcCi0gICAgICAgICAiJFBfQ0xJIGNhX2ZpbGU9ZGF0YV9maWxlcy90ZXN0LWNhX2NhdDEyLmNydCBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1DSEFDSEEyMC1QT0xZMTMwNS1TSEEyNTYgc2lnX2FsZ3M9cnNhX3Bzc19yc2FlX3NoYTI1NiBncm91cHM9c2VjcDM4NHIxIiBcCisgICAgICAgICAiJEdfTkVYVF9TUlZfTk9fQ0VSVCAtLWh0dHAgLS1kaXNhYmxlLWNsaWVudC1jZXJ0IC0tZGVidWc9NCAtLXg1MDljZXJ0ZmlsZSAkREFUQV9GSUxFU19QQVRIL3NlcnZlcjItc2hhMjU2LmNydCAtLXg1MDlrZXlmaWxlICREQVRBX0ZJTEVTX1BBVEgvc2VydmVyMi5rZXkgLS1wcmlvcml0eT1OT05FOitDSEFDSEEyMC1QT0xZMTMwNTorU0hBMjU2OitBRUFEOitTSUdOLVJTQS1QU1MtUlNBRS1TSEEyNTY6K0dST1VQLVNFQ1AzODRSMTorVkVSUy1UTFMxLjM6JU5PX1RJQ0tFVFMiIFwKKyAgICAgICAgICIkUF9DTEkgY2FfZmlsZT0kREFUQV9GSUxFU19QQVRIL3Rlc3QtY2FfY2F0MTIuY3J0IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUNIQUNIQTIwLVBPTFkxMzA1LVNIQTI1NiBzaWdfYWxncz1yc2FfcHNzX3JzYWVfc2hhMjU2IGdyb3Vwcz1zZWNwMzg0cjEiIFwKICAgICAgICAgIDAgXAogICAgICAgICAgLWMgIkhUVFAvMS4wIDIwMCBPSyIgXAogICAgICAgICAgLWMgIlByb3RvY29sIGlzIFRMU3YxLjMiIFwKQEAgLTc3OTQsOCArNzc5Niw4IEBACiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBNQkVEVExTX1NTTF9UTFMxXzNfQ09NUEFUSUJJTElUWV9NT0RFCiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBQU0FfV0FOVF9BTEdfRUNESAogcnVuX3Rlc3QgIlRMUyAxLjMgbS0+RzogQ0hBQ0hBMjBfUE9MWTEzMDVfU0hBMjU2LHNlY3A1MjFyMSxlY2RzYV9zZWNwMjU2cjFfc2hhMjU2IiBcCi0gICAgICAgICAiJEdfTkVYVF9TUlZfTk9fQ0VSVCAtLWh0dHAgLS1kaXNhYmxlLWNsaWVudC1jZXJ0IC0tZGVidWc9NCAtLXg1MDljZXJ0ZmlsZSBkYXRhX2ZpbGVzL2VjZHNhX3NlY3AyNTZyMS5jcnQgLS14NTA5a2V5ZmlsZSBkYXRhX2ZpbGVzL2VjZHNhX3NlY3AyNTZyMS5rZXkgLS1wcmlvcml0eT1OT05FOitDSEFDSEEyMC1QT0xZMTMwNTorU0hBMjU2OitBRUFEOitTSUdOLUVDRFNBLVNFQ1AyNTZSMS1TSEEyNTY6K0dST1VQLVNFQ1A1MjFSMTorVkVSUy1UTFMxLjM6JU5PX1RJQ0tFVFMiIFwKLSAgICAgICAgICIkUF9DTEkgY2FfZmlsZT1kYXRhX2ZpbGVzL3Rlc3QtY2EyLmNydCBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1DSEFDSEEyMC1QT0xZMTMwNS1TSEEyNTYgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDI1NnIxX3NoYTI1NiBncm91cHM9c2VjcDUyMXIxIiBcCisgICAgICAgICAiJEdfTkVYVF9TUlZfTk9fQ0VSVCAtLWh0dHAgLS1kaXNhYmxlLWNsaWVudC1jZXJ0IC0tZGVidWc9NCAtLXg1MDljZXJ0ZmlsZSAkREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3AyNTZyMS5jcnQgLS14NTA5a2V5ZmlsZSAkREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3AyNTZyMS5rZXkgLS1wcmlvcml0eT1OT05FOitDSEFDSEEyMC1QT0xZMTMwNTorU0hBMjU2OitBRUFEOitTSUdOLUVDRFNBLVNFQ1AyNTZSMS1TSEEyNTY6K0dST1VQLVNFQ1A1MjFSMTorVkVSUy1UTFMxLjM6JU5PX1RJQ0tFVFMiIFwKKyAgICAgICAgICIkUF9DTEkgY2FfZmlsZT0kREFUQV9GSUxFU19QQVRIL3Rlc3QtY2EyLmNydCBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1DSEFDSEEyMC1QT0xZMTMwNS1TSEEyNTYgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDI1NnIxX3NoYTI1NiBncm91cHM9c2VjcDUyMXIxIiBcCiAgICAgICAgICAwIFwKICAgICAgICAgIC1jICJIVFRQLzEuMCAyMDAgT0siIFwKICAgICAgICAgIC1jICJQcm90b2NvbCBpcyBUTFN2MS4zIiBcCkBAIC03ODE0LDggKzc4MTYsOCBAQAogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgTUJFRFRMU19TU0xfVExTMV8zX0NPTVBBVElCSUxJVFlfTU9ERQogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgUFNBX1dBTlRfQUxHX0VDREgKIHJ1bl90ZXN0ICJUTFMgMS4zIG0tPkc6IENIQUNIQTIwX1BPTFkxMzA1X1NIQTI1NixzZWNwNTIxcjEsZWNkc2Ffc2VjcDM4NHIxX3NoYTM4NCIgXAotICAgICAgICAgIiRHX05FWFRfU1JWX05PX0NFUlQgLS1odHRwIC0tZGlzYWJsZS1jbGllbnQtY2VydCAtLWRlYnVnPTQgLS14NTA5Y2VydGZpbGUgZGF0YV9maWxlcy9lY2RzYV9zZWNwMzg0cjEuY3J0IC0teDUwOWtleWZpbGUgZGF0YV9maWxlcy9lY2RzYV9zZWNwMzg0cjEua2V5IC0tcHJpb3JpdHk9Tk9ORTorQ0hBQ0hBMjAtUE9MWTEzMDU6K1NIQTI1NjorQUVBRDorU0lHTi1FQ0RTQS1TRUNQMzg0UjEtU0hBMzg0OitHUk9VUC1TRUNQNTIxUjE6K1ZFUlMtVExTMS4zOiVOT19USUNLRVRTIiBcCi0gICAgICAgICAiJFBfQ0xJIGNhX2ZpbGU9ZGF0YV9maWxlcy90ZXN0LWNhMi5jcnQgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQ0hBQ0hBMjAtUE9MWTEzMDUtU0hBMjU2IHNpZ19hbGdzPWVjZHNhX3NlY3AzODRyMV9zaGEzODQgZ3JvdXBzPXNlY3A1MjFyMSIgXAorICAgICAgICAgIiRHX05FWFRfU1JWX05PX0NFUlQgLS1odHRwIC0tZGlzYWJsZS1jbGllbnQtY2VydCAtLWRlYnVnPTQgLS14NTA5Y2VydGZpbGUgJERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwMzg0cjEuY3J0IC0teDUwOWtleWZpbGUgJERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwMzg0cjEua2V5IC0tcHJpb3JpdHk9Tk9ORTorQ0hBQ0hBMjAtUE9MWTEzMDU6K1NIQTI1NjorQUVBRDorU0lHTi1FQ0RTQS1TRUNQMzg0UjEtU0hBMzg0OitHUk9VUC1TRUNQNTIxUjE6K1ZFUlMtVExTMS4zOiVOT19USUNLRVRTIiBcCisgICAgICAgICAiJFBfQ0xJIGNhX2ZpbGU9JERBVEFfRklMRVNfUEFUSC90ZXN0LWNhMi5jcnQgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQ0hBQ0hBMjAtUE9MWTEzMDUtU0hBMjU2IHNpZ19hbGdzPWVjZHNhX3NlY3AzODRyMV9zaGEzODQgZ3JvdXBzPXNlY3A1MjFyMSIgXAogICAgICAgICAgMCBcCiAgICAgICAgICAtYyAiSFRUUC8xLjAgMjAwIE9LIiBcCiAgICAgICAgICAtYyAiUHJvdG9jb2wgaXMgVExTdjEuMyIgXApAQCAtNzgzNCw4ICs3ODM2LDggQEAKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIE1CRURUTFNfU1NMX1RMUzFfM19DT01QQVRJQklMSVRZX01PREUKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIFBTQV9XQU5UX0FMR19FQ0RICiBydW5fdGVzdCAiVExTIDEuMyBtLT5HOiBDSEFDSEEyMF9QT0xZMTMwNV9TSEEyNTYsc2VjcDUyMXIxLGVjZHNhX3NlY3A1MjFyMV9zaGE1MTIiIFwKLSAgICAgICAgICIkR19ORVhUX1NSVl9OT19DRVJUIC0taHR0cCAtLWRpc2FibGUtY2xpZW50LWNlcnQgLS1kZWJ1Zz00IC0teDUwOWNlcnRmaWxlIGRhdGFfZmlsZXMvZWNkc2Ffc2VjcDUyMXIxLmNydCAtLXg1MDlrZXlmaWxlIGRhdGFfZmlsZXMvZWNkc2Ffc2VjcDUyMXIxLmtleSAtLXByaW9yaXR5PU5PTkU6K0NIQUNIQTIwLVBPTFkxMzA1OitTSEEyNTY6K0FFQUQ6K1NJR04tRUNEU0EtU0VDUDUyMVIxLVNIQTUxMjorR1JPVVAtU0VDUDUyMVIxOitWRVJTLVRMUzEuMzolTk9fVElDS0VUUyIgXAotICAgICAgICAgIiRQX0NMSSBjYV9maWxlPWRhdGFfZmlsZXMvdGVzdC1jYTIuY3J0IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUNIQUNIQTIwLVBPTFkxMzA1LVNIQTI1NiBzaWdfYWxncz1lY2RzYV9zZWNwNTIxcjFfc2hhNTEyIGdyb3Vwcz1zZWNwNTIxcjEiIFwKKyAgICAgICAgICIkR19ORVhUX1NSVl9OT19DRVJUIC0taHR0cCAtLWRpc2FibGUtY2xpZW50LWNlcnQgLS1kZWJ1Zz00IC0teDUwOWNlcnRmaWxlICREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDUyMXIxLmNydCAtLXg1MDlrZXlmaWxlICREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDUyMXIxLmtleSAtLXByaW9yaXR5PU5PTkU6K0NIQUNIQTIwLVBPTFkxMzA1OitTSEEyNTY6K0FFQUQ6K1NJR04tRUNEU0EtU0VDUDUyMVIxLVNIQTUxMjorR1JPVVAtU0VDUDUyMVIxOitWRVJTLVRMUzEuMzolTk9fVElDS0VUUyIgXAorICAgICAgICAgIiRQX0NMSSBjYV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvdGVzdC1jYTIuY3J0IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUNIQUNIQTIwLVBPTFkxMzA1LVNIQTI1NiBzaWdfYWxncz1lY2RzYV9zZWNwNTIxcjFfc2hhNTEyIGdyb3Vwcz1zZWNwNTIxcjEiIFwKICAgICAgICAgIDAgXAogICAgICAgICAgLWMgIkhUVFAvMS4wIDIwMCBPSyIgXAogICAgICAgICAgLWMgIlByb3RvY29sIGlzIFRMU3YxLjMiIFwKQEAgLTc4NTUsOCArNzg1Nyw4IEBACiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBNQkVEVExTX1g1MDlfUlNBU1NBX1BTU19TVVBQT1JUCiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBQU0FfV0FOVF9BTEdfRUNESAogcnVuX3Rlc3QgIlRMUyAxLjMgbS0+RzogQ0hBQ0hBMjBfUE9MWTEzMDVfU0hBMjU2LHNlY3A1MjFyMSxyc2FfcHNzX3JzYWVfc2hhMjU2IiBcCi0gICAgICAgICAiJEdfTkVYVF9TUlZfTk9fQ0VSVCAtLWh0dHAgLS1kaXNhYmxlLWNsaWVudC1jZXJ0IC0tZGVidWc9NCAtLXg1MDljZXJ0ZmlsZSBkYXRhX2ZpbGVzL3NlcnZlcjItc2hhMjU2LmNydCAtLXg1MDlrZXlmaWxlIGRhdGFfZmlsZXMvc2VydmVyMi5rZXkgLS1wcmlvcml0eT1OT05FOitDSEFDSEEyMC1QT0xZMTMwNTorU0hBMjU2OitBRUFEOitTSUdOLVJTQS1QU1MtUlNBRS1TSEEyNTY6K0dST1VQLVNFQ1A1MjFSMTorVkVSUy1UTFMxLjM6JU5PX1RJQ0tFVFMiIFwKLSAgICAgICAgICIkUF9DTEkgY2FfZmlsZT1kYXRhX2ZpbGVzL3Rlc3QtY2FfY2F0MTIuY3J0IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUNIQUNIQTIwLVBPTFkxMzA1LVNIQTI1NiBzaWdfYWxncz1yc2FfcHNzX3JzYWVfc2hhMjU2IGdyb3Vwcz1zZWNwNTIxcjEiIFwKKyAgICAgICAgICIkR19ORVhUX1NSVl9OT19DRVJUIC0taHR0cCAtLWRpc2FibGUtY2xpZW50LWNlcnQgLS1kZWJ1Zz00IC0teDUwOWNlcnRmaWxlICREQVRBX0ZJTEVTX1BBVEgvc2VydmVyMi1zaGEyNTYuY3J0IC0teDUwOWtleWZpbGUgJERBVEFfRklMRVNfUEFUSC9zZXJ2ZXIyLmtleSAtLXByaW9yaXR5PU5PTkU6K0NIQUNIQTIwLVBPTFkxMzA1OitTSEEyNTY6K0FFQUQ6K1NJR04tUlNBLVBTUy1SU0FFLVNIQTI1NjorR1JPVVAtU0VDUDUyMVIxOitWRVJTLVRMUzEuMzolTk9fVElDS0VUUyIgXAorICAgICAgICAgIiRQX0NMSSBjYV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvdGVzdC1jYV9jYXQxMi5jcnQgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQ0hBQ0hBMjAtUE9MWTEzMDUtU0hBMjU2IHNpZ19hbGdzPXJzYV9wc3NfcnNhZV9zaGEyNTYgZ3JvdXBzPXNlY3A1MjFyMSIgXAogICAgICAgICAgMCBcCiAgICAgICAgICAtYyAiSFRUUC8xLjAgMjAwIE9LIiBcCiAgICAgICAgICAtYyAiUHJvdG9jb2wgaXMgVExTdjEuMyIgXApAQCAtNzg3NSw4ICs3ODc3LDggQEAKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIE1CRURUTFNfU1NMX1RMUzFfM19DT01QQVRJQklMSVRZX01PREUKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIFBTQV9XQU5UX0FMR19FQ0RICiBydW5fdGVzdCAiVExTIDEuMyBtLT5HOiBDSEFDSEEyMF9QT0xZMTMwNV9TSEEyNTYseDI1NTE5LGVjZHNhX3NlY3AyNTZyMV9zaGEyNTYiIFwKLSAgICAgICAgICIkR19ORVhUX1NSVl9OT19DRVJUIC0taHR0cCAtLWRpc2FibGUtY2xpZW50LWNlcnQgLS1kZWJ1Zz00IC0teDUwOWNlcnRmaWxlIGRhdGFfZmlsZXMvZWNkc2Ffc2VjcDI1NnIxLmNydCAtLXg1MDlrZXlmaWxlIGRhdGFfZmlsZXMvZWNkc2Ffc2VjcDI1NnIxLmtleSAtLXByaW9yaXR5PU5PTkU6K0NIQUNIQTIwLVBPTFkxMzA1OitTSEEyNTY6K0FFQUQ6K1NJR04tRUNEU0EtU0VDUDI1NlIxLVNIQTI1NjorR1JPVVAtWDI1NTE5OitWRVJTLVRMUzEuMzolTk9fVElDS0VUUyIgXAotICAgICAgICAgIiRQX0NMSSBjYV9maWxlPWRhdGFfZmlsZXMvdGVzdC1jYTIuY3J0IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUNIQUNIQTIwLVBPTFkxMzA1LVNIQTI1NiBzaWdfYWxncz1lY2RzYV9zZWNwMjU2cjFfc2hhMjU2IGdyb3Vwcz14MjU1MTkiIFwKKyAgICAgICAgICIkR19ORVhUX1NSVl9OT19DRVJUIC0taHR0cCAtLWRpc2FibGUtY2xpZW50LWNlcnQgLS1kZWJ1Zz00IC0teDUwOWNlcnRmaWxlICREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDI1NnIxLmNydCAtLXg1MDlrZXlmaWxlICREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDI1NnIxLmtleSAtLXByaW9yaXR5PU5PTkU6K0NIQUNIQTIwLVBPTFkxMzA1OitTSEEyNTY6K0FFQUQ6K1NJR04tRUNEU0EtU0VDUDI1NlIxLVNIQTI1NjorR1JPVVAtWDI1NTE5OitWRVJTLVRMUzEuMzolTk9fVElDS0VUUyIgXAorICAgICAgICAgIiRQX0NMSSBjYV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvdGVzdC1jYTIuY3J0IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUNIQUNIQTIwLVBPTFkxMzA1LVNIQTI1NiBzaWdfYWxncz1lY2RzYV9zZWNwMjU2cjFfc2hhMjU2IGdyb3Vwcz14MjU1MTkiIFwKICAgICAgICAgIDAgXAogICAgICAgICAgLWMgIkhUVFAvMS4wIDIwMCBPSyIgXAogICAgICAgICAgLWMgIlByb3RvY29sIGlzIFRMU3YxLjMiIFwKQEAgLTc4OTUsOCArNzg5Nyw4IEBACiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBNQkVEVExTX1NTTF9UTFMxXzNfQ09NUEFUSUJJTElUWV9NT0RFCiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBQU0FfV0FOVF9BTEdfRUNESAogcnVuX3Rlc3QgIlRMUyAxLjMgbS0+RzogQ0hBQ0hBMjBfUE9MWTEzMDVfU0hBMjU2LHgyNTUxOSxlY2RzYV9zZWNwMzg0cjFfc2hhMzg0IiBcCi0gICAgICAgICAiJEdfTkVYVF9TUlZfTk9fQ0VSVCAtLWh0dHAgLS1kaXNhYmxlLWNsaWVudC1jZXJ0IC0tZGVidWc9NCAtLXg1MDljZXJ0ZmlsZSBkYXRhX2ZpbGVzL2VjZHNhX3NlY3AzODRyMS5jcnQgLS14NTA5a2V5ZmlsZSBkYXRhX2ZpbGVzL2VjZHNhX3NlY3AzODRyMS5rZXkgLS1wcmlvcml0eT1OT05FOitDSEFDSEEyMC1QT0xZMTMwNTorU0hBMjU2OitBRUFEOitTSUdOLUVDRFNBLVNFQ1AzODRSMS1TSEEzODQ6K0dST1VQLVgyNTUxOTorVkVSUy1UTFMxLjM6JU5PX1RJQ0tFVFMiIFwKLSAgICAgICAgICIkUF9DTEkgY2FfZmlsZT1kYXRhX2ZpbGVzL3Rlc3QtY2EyLmNydCBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1DSEFDSEEyMC1QT0xZMTMwNS1TSEEyNTYgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDM4NHIxX3NoYTM4NCBncm91cHM9eDI1NTE5IiBcCisgICAgICAgICAiJEdfTkVYVF9TUlZfTk9fQ0VSVCAtLWh0dHAgLS1kaXNhYmxlLWNsaWVudC1jZXJ0IC0tZGVidWc9NCAtLXg1MDljZXJ0ZmlsZSAkREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3AzODRyMS5jcnQgLS14NTA5a2V5ZmlsZSAkREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3AzODRyMS5rZXkgLS1wcmlvcml0eT1OT05FOitDSEFDSEEyMC1QT0xZMTMwNTorU0hBMjU2OitBRUFEOitTSUdOLUVDRFNBLVNFQ1AzODRSMS1TSEEzODQ6K0dST1VQLVgyNTUxOTorVkVSUy1UTFMxLjM6JU5PX1RJQ0tFVFMiIFwKKyAgICAgICAgICIkUF9DTEkgY2FfZmlsZT0kREFUQV9GSUxFU19QQVRIL3Rlc3QtY2EyLmNydCBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1DSEFDSEEyMC1QT0xZMTMwNS1TSEEyNTYgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDM4NHIxX3NoYTM4NCBncm91cHM9eDI1NTE5IiBcCiAgICAgICAgICAwIFwKICAgICAgICAgIC1jICJIVFRQLzEuMCAyMDAgT0siIFwKICAgICAgICAgIC1jICJQcm90b2NvbCBpcyBUTFN2MS4zIiBcCkBAIC03OTE1LDggKzc5MTcsOCBAQAogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgTUJFRFRMU19TU0xfVExTMV8zX0NPTVBBVElCSUxJVFlfTU9ERQogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgUFNBX1dBTlRfQUxHX0VDREgKIHJ1bl90ZXN0ICJUTFMgMS4zIG0tPkc6IENIQUNIQTIwX1BPTFkxMzA1X1NIQTI1Nix4MjU1MTksZWNkc2Ffc2VjcDUyMXIxX3NoYTUxMiIgXAotICAgICAgICAgIiRHX05FWFRfU1JWX05PX0NFUlQgLS1odHRwIC0tZGlzYWJsZS1jbGllbnQtY2VydCAtLWRlYnVnPTQgLS14NTA5Y2VydGZpbGUgZGF0YV9maWxlcy9lY2RzYV9zZWNwNTIxcjEuY3J0IC0teDUwOWtleWZpbGUgZGF0YV9maWxlcy9lY2RzYV9zZWNwNTIxcjEua2V5IC0tcHJpb3JpdHk9Tk9ORTorQ0hBQ0hBMjAtUE9MWTEzMDU6K1NIQTI1NjorQUVBRDorU0lHTi1FQ0RTQS1TRUNQNTIxUjEtU0hBNTEyOitHUk9VUC1YMjU1MTk6K1ZFUlMtVExTMS4zOiVOT19USUNLRVRTIiBcCi0gICAgICAgICAiJFBfQ0xJIGNhX2ZpbGU9ZGF0YV9maWxlcy90ZXN0LWNhMi5jcnQgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQ0hBQ0hBMjAtUE9MWTEzMDUtU0hBMjU2IHNpZ19hbGdzPWVjZHNhX3NlY3A1MjFyMV9zaGE1MTIgZ3JvdXBzPXgyNTUxOSIgXAorICAgICAgICAgIiRHX05FWFRfU1JWX05PX0NFUlQgLS1odHRwIC0tZGlzYWJsZS1jbGllbnQtY2VydCAtLWRlYnVnPTQgLS14NTA5Y2VydGZpbGUgJERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwNTIxcjEuY3J0IC0teDUwOWtleWZpbGUgJERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwNTIxcjEua2V5IC0tcHJpb3JpdHk9Tk9ORTorQ0hBQ0hBMjAtUE9MWTEzMDU6K1NIQTI1NjorQUVBRDorU0lHTi1FQ0RTQS1TRUNQNTIxUjEtU0hBNTEyOitHUk9VUC1YMjU1MTk6K1ZFUlMtVExTMS4zOiVOT19USUNLRVRTIiBcCisgICAgICAgICAiJFBfQ0xJIGNhX2ZpbGU9JERBVEFfRklMRVNfUEFUSC90ZXN0LWNhMi5jcnQgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQ0hBQ0hBMjAtUE9MWTEzMDUtU0hBMjU2IHNpZ19hbGdzPWVjZHNhX3NlY3A1MjFyMV9zaGE1MTIgZ3JvdXBzPXgyNTUxOSIgXAogICAgICAgICAgMCBcCiAgICAgICAgICAtYyAiSFRUUC8xLjAgMjAwIE9LIiBcCiAgICAgICAgICAtYyAiUHJvdG9jb2wgaXMgVExTdjEuMyIgXApAQCAtNzkzNiw4ICs3OTM4LDggQEAKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIE1CRURUTFNfWDUwOV9SU0FTU0FfUFNTX1NVUFBPUlQKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIFBTQV9XQU5UX0FMR19FQ0RICiBydW5fdGVzdCAiVExTIDEuMyBtLT5HOiBDSEFDSEEyMF9QT0xZMTMwNV9TSEEyNTYseDI1NTE5LHJzYV9wc3NfcnNhZV9zaGEyNTYiIFwKLSAgICAgICAgICIkR19ORVhUX1NSVl9OT19DRVJUIC0taHR0cCAtLWRpc2FibGUtY2xpZW50LWNlcnQgLS1kZWJ1Zz00IC0teDUwOWNlcnRmaWxlIGRhdGFfZmlsZXMvc2VydmVyMi1zaGEyNTYuY3J0IC0teDUwOWtleWZpbGUgZGF0YV9maWxlcy9zZXJ2ZXIyLmtleSAtLXByaW9yaXR5PU5PTkU6K0NIQUNIQTIwLVBPTFkxMzA1OitTSEEyNTY6K0FFQUQ6K1NJR04tUlNBLVBTUy1SU0FFLVNIQTI1NjorR1JPVVAtWDI1NTE5OitWRVJTLVRMUzEuMzolTk9fVElDS0VUUyIgXAotICAgICAgICAgIiRQX0NMSSBjYV9maWxlPWRhdGFfZmlsZXMvdGVzdC1jYV9jYXQxMi5jcnQgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQ0hBQ0hBMjAtUE9MWTEzMDUtU0hBMjU2IHNpZ19hbGdzPXJzYV9wc3NfcnNhZV9zaGEyNTYgZ3JvdXBzPXgyNTUxOSIgXAorICAgICAgICAgIiRHX05FWFRfU1JWX05PX0NFUlQgLS1odHRwIC0tZGlzYWJsZS1jbGllbnQtY2VydCAtLWRlYnVnPTQgLS14NTA5Y2VydGZpbGUgJERBVEFfRklMRVNfUEFUSC9zZXJ2ZXIyLXNoYTI1Ni5jcnQgLS14NTA5a2V5ZmlsZSAkREFUQV9GSUxFU19QQVRIL3NlcnZlcjIua2V5IC0tcHJpb3JpdHk9Tk9ORTorQ0hBQ0hBMjAtUE9MWTEzMDU6K1NIQTI1NjorQUVBRDorU0lHTi1SU0EtUFNTLVJTQUUtU0hBMjU2OitHUk9VUC1YMjU1MTk6K1ZFUlMtVExTMS4zOiVOT19USUNLRVRTIiBcCisgICAgICAgICAiJFBfQ0xJIGNhX2ZpbGU9JERBVEFfRklMRVNfUEFUSC90ZXN0LWNhX2NhdDEyLmNydCBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1DSEFDSEEyMC1QT0xZMTMwNS1TSEEyNTYgc2lnX2FsZ3M9cnNhX3Bzc19yc2FlX3NoYTI1NiBncm91cHM9eDI1NTE5IiBcCiAgICAgICAgICAwIFwKICAgICAgICAgIC1jICJIVFRQLzEuMCAyMDAgT0siIFwKICAgICAgICAgIC1jICJQcm90b2NvbCBpcyBUTFN2MS4zIiBcCkBAIC03OTU2LDggKzc5NTgsOCBAQAogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgTUJFRFRMU19TU0xfVExTMV8zX0NPTVBBVElCSUxJVFlfTU9ERQogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgUFNBX1dBTlRfQUxHX0VDREgKIHJ1bl90ZXN0ICJUTFMgMS4zIG0tPkc6IENIQUNIQTIwX1BPTFkxMzA1X1NIQTI1Nix4NDQ4LGVjZHNhX3NlY3AyNTZyMV9zaGEyNTYiIFwKLSAgICAgICAgICIkR19ORVhUX1NSVl9OT19DRVJUIC0taHR0cCAtLWRpc2FibGUtY2xpZW50LWNlcnQgLS1kZWJ1Zz00IC0teDUwOWNlcnRmaWxlIGRhdGFfZmlsZXMvZWNkc2Ffc2VjcDI1NnIxLmNydCAtLXg1MDlrZXlmaWxlIGRhdGFfZmlsZXMvZWNkc2Ffc2VjcDI1NnIxLmtleSAtLXByaW9yaXR5PU5PTkU6K0NIQUNIQTIwLVBPTFkxMzA1OitTSEEyNTY6K0FFQUQ6K1NJR04tRUNEU0EtU0VDUDI1NlIxLVNIQTI1NjorR1JPVVAtWDQ0ODorVkVSUy1UTFMxLjM6JU5PX1RJQ0tFVFMiIFwKLSAgICAgICAgICIkUF9DTEkgY2FfZmlsZT1kYXRhX2ZpbGVzL3Rlc3QtY2EyLmNydCBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1DSEFDSEEyMC1QT0xZMTMwNS1TSEEyNTYgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDI1NnIxX3NoYTI1NiBncm91cHM9eDQ0OCIgXAorICAgICAgICAgIiRHX05FWFRfU1JWX05PX0NFUlQgLS1odHRwIC0tZGlzYWJsZS1jbGllbnQtY2VydCAtLWRlYnVnPTQgLS14NTA5Y2VydGZpbGUgJERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwMjU2cjEuY3J0IC0teDUwOWtleWZpbGUgJERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwMjU2cjEua2V5IC0tcHJpb3JpdHk9Tk9ORTorQ0hBQ0hBMjAtUE9MWTEzMDU6K1NIQTI1NjorQUVBRDorU0lHTi1FQ0RTQS1TRUNQMjU2UjEtU0hBMjU2OitHUk9VUC1YNDQ4OitWRVJTLVRMUzEuMzolTk9fVElDS0VUUyIgXAorICAgICAgICAgIiRQX0NMSSBjYV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvdGVzdC1jYTIuY3J0IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUNIQUNIQTIwLVBPTFkxMzA1LVNIQTI1NiBzaWdfYWxncz1lY2RzYV9zZWNwMjU2cjFfc2hhMjU2IGdyb3Vwcz14NDQ4IiBcCiAgICAgICAgICAwIFwKICAgICAgICAgIC1jICJIVFRQLzEuMCAyMDAgT0siIFwKICAgICAgICAgIC1jICJQcm90b2NvbCBpcyBUTFN2MS4zIiBcCkBAIC03OTc2LDggKzc5NzgsOCBAQAogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgTUJFRFRMU19TU0xfVExTMV8zX0NPTVBBVElCSUxJVFlfTU9ERQogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgUFNBX1dBTlRfQUxHX0VDREgKIHJ1bl90ZXN0ICJUTFMgMS4zIG0tPkc6IENIQUNIQTIwX1BPTFkxMzA1X1NIQTI1Nix4NDQ4LGVjZHNhX3NlY3AzODRyMV9zaGEzODQiIFwKLSAgICAgICAgICIkR19ORVhUX1NSVl9OT19DRVJUIC0taHR0cCAtLWRpc2FibGUtY2xpZW50LWNlcnQgLS1kZWJ1Zz00IC0teDUwOWNlcnRmaWxlIGRhdGFfZmlsZXMvZWNkc2Ffc2VjcDM4NHIxLmNydCAtLXg1MDlrZXlmaWxlIGRhdGFfZmlsZXMvZWNkc2Ffc2VjcDM4NHIxLmtleSAtLXByaW9yaXR5PU5PTkU6K0NIQUNIQTIwLVBPTFkxMzA1OitTSEEyNTY6K0FFQUQ6K1NJR04tRUNEU0EtU0VDUDM4NFIxLVNIQTM4NDorR1JPVVAtWDQ0ODorVkVSUy1UTFMxLjM6JU5PX1RJQ0tFVFMiIFwKLSAgICAgICAgICIkUF9DTEkgY2FfZmlsZT1kYXRhX2ZpbGVzL3Rlc3QtY2EyLmNydCBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1DSEFDSEEyMC1QT0xZMTMwNS1TSEEyNTYgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDM4NHIxX3NoYTM4NCBncm91cHM9eDQ0OCIgXAorICAgICAgICAgIiRHX05FWFRfU1JWX05PX0NFUlQgLS1odHRwIC0tZGlzYWJsZS1jbGllbnQtY2VydCAtLWRlYnVnPTQgLS14NTA5Y2VydGZpbGUgJERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwMzg0cjEuY3J0IC0teDUwOWtleWZpbGUgJERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwMzg0cjEua2V5IC0tcHJpb3JpdHk9Tk9ORTorQ0hBQ0hBMjAtUE9MWTEzMDU6K1NIQTI1NjorQUVBRDorU0lHTi1FQ0RTQS1TRUNQMzg0UjEtU0hBMzg0OitHUk9VUC1YNDQ4OitWRVJTLVRMUzEuMzolTk9fVElDS0VUUyIgXAorICAgICAgICAgIiRQX0NMSSBjYV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvdGVzdC1jYTIuY3J0IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUNIQUNIQTIwLVBPTFkxMzA1LVNIQTI1NiBzaWdfYWxncz1lY2RzYV9zZWNwMzg0cjFfc2hhMzg0IGdyb3Vwcz14NDQ4IiBcCiAgICAgICAgICAwIFwKICAgICAgICAgIC1jICJIVFRQLzEuMCAyMDAgT0siIFwKICAgICAgICAgIC1jICJQcm90b2NvbCBpcyBUTFN2MS4zIiBcCkBAIC03OTk2LDggKzc5OTgsOCBAQAogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgTUJFRFRMU19TU0xfVExTMV8zX0NPTVBBVElCSUxJVFlfTU9ERQogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgUFNBX1dBTlRfQUxHX0VDREgKIHJ1bl90ZXN0ICJUTFMgMS4zIG0tPkc6IENIQUNIQTIwX1BPTFkxMzA1X1NIQTI1Nix4NDQ4LGVjZHNhX3NlY3A1MjFyMV9zaGE1MTIiIFwKLSAgICAgICAgICIkR19ORVhUX1NSVl9OT19DRVJUIC0taHR0cCAtLWRpc2FibGUtY2xpZW50LWNlcnQgLS1kZWJ1Zz00IC0teDUwOWNlcnRmaWxlIGRhdGFfZmlsZXMvZWNkc2Ffc2VjcDUyMXIxLmNydCAtLXg1MDlrZXlmaWxlIGRhdGFfZmlsZXMvZWNkc2Ffc2VjcDUyMXIxLmtleSAtLXByaW9yaXR5PU5PTkU6K0NIQUNIQTIwLVBPTFkxMzA1OitTSEEyNTY6K0FFQUQ6K1NJR04tRUNEU0EtU0VDUDUyMVIxLVNIQTUxMjorR1JPVVAtWDQ0ODorVkVSUy1UTFMxLjM6JU5PX1RJQ0tFVFMiIFwKLSAgICAgICAgICIkUF9DTEkgY2FfZmlsZT1kYXRhX2ZpbGVzL3Rlc3QtY2EyLmNydCBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1DSEFDSEEyMC1QT0xZMTMwNS1TSEEyNTYgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDUyMXIxX3NoYTUxMiBncm91cHM9eDQ0OCIgXAorICAgICAgICAgIiRHX05FWFRfU1JWX05PX0NFUlQgLS1odHRwIC0tZGlzYWJsZS1jbGllbnQtY2VydCAtLWRlYnVnPTQgLS14NTA5Y2VydGZpbGUgJERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwNTIxcjEuY3J0IC0teDUwOWtleWZpbGUgJERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwNTIxcjEua2V5IC0tcHJpb3JpdHk9Tk9ORTorQ0hBQ0hBMjAtUE9MWTEzMDU6K1NIQTI1NjorQUVBRDorU0lHTi1FQ0RTQS1TRUNQNTIxUjEtU0hBNTEyOitHUk9VUC1YNDQ4OitWRVJTLVRMUzEuMzolTk9fVElDS0VUUyIgXAorICAgICAgICAgIiRQX0NMSSBjYV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvdGVzdC1jYTIuY3J0IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUNIQUNIQTIwLVBPTFkxMzA1LVNIQTI1NiBzaWdfYWxncz1lY2RzYV9zZWNwNTIxcjFfc2hhNTEyIGdyb3Vwcz14NDQ4IiBcCiAgICAgICAgICAwIFwKICAgICAgICAgIC1jICJIVFRQLzEuMCAyMDAgT0siIFwKICAgICAgICAgIC1jICJQcm90b2NvbCBpcyBUTFN2MS4zIiBcCkBAIC04MDE3LDggKzgwMTksOCBAQAogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgTUJFRFRMU19YNTA5X1JTQVNTQV9QU1NfU1VQUE9SVAogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgUFNBX1dBTlRfQUxHX0VDREgKIHJ1bl90ZXN0ICJUTFMgMS4zIG0tPkc6IENIQUNIQTIwX1BPTFkxMzA1X1NIQTI1Nix4NDQ4LHJzYV9wc3NfcnNhZV9zaGEyNTYiIFwKLSAgICAgICAgICIkR19ORVhUX1NSVl9OT19DRVJUIC0taHR0cCAtLWRpc2FibGUtY2xpZW50LWNlcnQgLS1kZWJ1Zz00IC0teDUwOWNlcnRmaWxlIGRhdGFfZmlsZXMvc2VydmVyMi1zaGEyNTYuY3J0IC0teDUwOWtleWZpbGUgZGF0YV9maWxlcy9zZXJ2ZXIyLmtleSAtLXByaW9yaXR5PU5PTkU6K0NIQUNIQTIwLVBPTFkxMzA1OitTSEEyNTY6K0FFQUQ6K1NJR04tUlNBLVBTUy1SU0FFLVNIQTI1NjorR1JPVVAtWDQ0ODorVkVSUy1UTFMxLjM6JU5PX1RJQ0tFVFMiIFwKLSAgICAgICAgICIkUF9DTEkgY2FfZmlsZT1kYXRhX2ZpbGVzL3Rlc3QtY2FfY2F0MTIuY3J0IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUNIQUNIQTIwLVBPTFkxMzA1LVNIQTI1NiBzaWdfYWxncz1yc2FfcHNzX3JzYWVfc2hhMjU2IGdyb3Vwcz14NDQ4IiBcCisgICAgICAgICAiJEdfTkVYVF9TUlZfTk9fQ0VSVCAtLWh0dHAgLS1kaXNhYmxlLWNsaWVudC1jZXJ0IC0tZGVidWc9NCAtLXg1MDljZXJ0ZmlsZSAkREFUQV9GSUxFU19QQVRIL3NlcnZlcjItc2hhMjU2LmNydCAtLXg1MDlrZXlmaWxlICREQVRBX0ZJTEVTX1BBVEgvc2VydmVyMi5rZXkgLS1wcmlvcml0eT1OT05FOitDSEFDSEEyMC1QT0xZMTMwNTorU0hBMjU2OitBRUFEOitTSUdOLVJTQS1QU1MtUlNBRS1TSEEyNTY6K0dST1VQLVg0NDg6K1ZFUlMtVExTMS4zOiVOT19USUNLRVRTIiBcCisgICAgICAgICAiJFBfQ0xJIGNhX2ZpbGU9JERBVEFfRklMRVNfUEFUSC90ZXN0LWNhX2NhdDEyLmNydCBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1DSEFDSEEyMC1QT0xZMTMwNS1TSEEyNTYgc2lnX2FsZ3M9cnNhX3Bzc19yc2FlX3NoYTI1NiBncm91cHM9eDQ0OCIgXAogICAgICAgICAgMCBcCiAgICAgICAgICAtYyAiSFRUUC8xLjAgMjAwIE9LIiBcCiAgICAgICAgICAtYyAiUHJvdG9jb2wgaXMgVExTdjEuMyIgXApAQCAtODAzOCw4ICs4MDQwLDggQEAKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIFBTQV9XQU5UX0FMR19GRkRICiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBQU0FfV0FOVF9ESF9SRkM3OTE5XzIwNDgKIHJ1bl90ZXN0ICJUTFMgMS4zIG0tPkc6IENIQUNIQTIwX1BPTFkxMzA1X1NIQTI1NixmZmRoZTIwNDgsZWNkc2Ffc2VjcDI1NnIxX3NoYTI1NiIgXAotICAgICAgICAgIiRHX05FWFRfU1JWX05PX0NFUlQgLS1odHRwIC0tZGlzYWJsZS1jbGllbnQtY2VydCAtLWRlYnVnPTQgLS14NTA5Y2VydGZpbGUgZGF0YV9maWxlcy9lY2RzYV9zZWNwMjU2cjEuY3J0IC0teDUwOWtleWZpbGUgZGF0YV9maWxlcy9lY2RzYV9zZWNwMjU2cjEua2V5IC0tcHJpb3JpdHk9Tk9ORTorQ0hBQ0hBMjAtUE9MWTEzMDU6K1NIQTI1NjorQUVBRDorU0lHTi1FQ0RTQS1TRUNQMjU2UjEtU0hBMjU2OitHUk9VUC1GRkRIRTIwNDg6K1ZFUlMtVExTMS4zOiVOT19USUNLRVRTIiBcCi0gICAgICAgICAiJFBfQ0xJIGNhX2ZpbGU9ZGF0YV9maWxlcy90ZXN0LWNhMi5jcnQgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQ0hBQ0hBMjAtUE9MWTEzMDUtU0hBMjU2IHNpZ19hbGdzPWVjZHNhX3NlY3AyNTZyMV9zaGEyNTYgZ3JvdXBzPWZmZGhlMjA0OCIgXAorICAgICAgICAgIiRHX05FWFRfU1JWX05PX0NFUlQgLS1odHRwIC0tZGlzYWJsZS1jbGllbnQtY2VydCAtLWRlYnVnPTQgLS14NTA5Y2VydGZpbGUgJERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwMjU2cjEuY3J0IC0teDUwOWtleWZpbGUgJERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwMjU2cjEua2V5IC0tcHJpb3JpdHk9Tk9ORTorQ0hBQ0hBMjAtUE9MWTEzMDU6K1NIQTI1NjorQUVBRDorU0lHTi1FQ0RTQS1TRUNQMjU2UjEtU0hBMjU2OitHUk9VUC1GRkRIRTIwNDg6K1ZFUlMtVExTMS4zOiVOT19USUNLRVRTIiBcCisgICAgICAgICAiJFBfQ0xJIGNhX2ZpbGU9JERBVEFfRklMRVNfUEFUSC90ZXN0LWNhMi5jcnQgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQ0hBQ0hBMjAtUE9MWTEzMDUtU0hBMjU2IHNpZ19hbGdzPWVjZHNhX3NlY3AyNTZyMV9zaGEyNTYgZ3JvdXBzPWZmZGhlMjA0OCIgXAogICAgICAgICAgMCBcCiAgICAgICAgICAtYyAiSFRUUC8xLjAgMjAwIE9LIiBcCiAgICAgICAgICAtYyAiUHJvdG9jb2wgaXMgVExTdjEuMyIgXApAQCAtODA1OSw4ICs4MDYxLDggQEAKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIFBTQV9XQU5UX0FMR19GRkRICiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBQU0FfV0FOVF9ESF9SRkM3OTE5XzIwNDgKIHJ1bl90ZXN0ICJUTFMgMS4zIG0tPkc6IENIQUNIQTIwX1BPTFkxMzA1X1NIQTI1NixmZmRoZTIwNDgsZWNkc2Ffc2VjcDM4NHIxX3NoYTM4NCIgXAotICAgICAgICAgIiRHX05FWFRfU1JWX05PX0NFUlQgLS1odHRwIC0tZGlzYWJsZS1jbGllbnQtY2VydCAtLWRlYnVnPTQgLS14NTA5Y2VydGZpbGUgZGF0YV9maWxlcy9lY2RzYV9zZWNwMzg0cjEuY3J0IC0teDUwOWtleWZpbGUgZGF0YV9maWxlcy9lY2RzYV9zZWNwMzg0cjEua2V5IC0tcHJpb3JpdHk9Tk9ORTorQ0hBQ0hBMjAtUE9MWTEzMDU6K1NIQTI1NjorQUVBRDorU0lHTi1FQ0RTQS1TRUNQMzg0UjEtU0hBMzg0OitHUk9VUC1GRkRIRTIwNDg6K1ZFUlMtVExTMS4zOiVOT19USUNLRVRTIiBcCi0gICAgICAgICAiJFBfQ0xJIGNhX2ZpbGU9ZGF0YV9maWxlcy90ZXN0LWNhMi5jcnQgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQ0hBQ0hBMjAtUE9MWTEzMDUtU0hBMjU2IHNpZ19hbGdzPWVjZHNhX3NlY3AzODRyMV9zaGEzODQgZ3JvdXBzPWZmZGhlMjA0OCIgXAorICAgICAgICAgIiRHX05FWFRfU1JWX05PX0NFUlQgLS1odHRwIC0tZGlzYWJsZS1jbGllbnQtY2VydCAtLWRlYnVnPTQgLS14NTA5Y2VydGZpbGUgJERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwMzg0cjEuY3J0IC0teDUwOWtleWZpbGUgJERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwMzg0cjEua2V5IC0tcHJpb3JpdHk9Tk9ORTorQ0hBQ0hBMjAtUE9MWTEzMDU6K1NIQTI1NjorQUVBRDorU0lHTi1FQ0RTQS1TRUNQMzg0UjEtU0hBMzg0OitHUk9VUC1GRkRIRTIwNDg6K1ZFUlMtVExTMS4zOiVOT19USUNLRVRTIiBcCisgICAgICAgICAiJFBfQ0xJIGNhX2ZpbGU9JERBVEFfRklMRVNfUEFUSC90ZXN0LWNhMi5jcnQgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQ0hBQ0hBMjAtUE9MWTEzMDUtU0hBMjU2IHNpZ19hbGdzPWVjZHNhX3NlY3AzODRyMV9zaGEzODQgZ3JvdXBzPWZmZGhlMjA0OCIgXAogICAgICAgICAgMCBcCiAgICAgICAgICAtYyAiSFRUUC8xLjAgMjAwIE9LIiBcCiAgICAgICAgICAtYyAiUHJvdG9jb2wgaXMgVExTdjEuMyIgXApAQCAtODA4MCw4ICs4MDgyLDggQEAKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIFBTQV9XQU5UX0FMR19GRkRICiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBQU0FfV0FOVF9ESF9SRkM3OTE5XzIwNDgKIHJ1bl90ZXN0ICJUTFMgMS4zIG0tPkc6IENIQUNIQTIwX1BPTFkxMzA1X1NIQTI1NixmZmRoZTIwNDgsZWNkc2Ffc2VjcDUyMXIxX3NoYTUxMiIgXAotICAgICAgICAgIiRHX05FWFRfU1JWX05PX0NFUlQgLS1odHRwIC0tZGlzYWJsZS1jbGllbnQtY2VydCAtLWRlYnVnPTQgLS14NTA5Y2VydGZpbGUgZGF0YV9maWxlcy9lY2RzYV9zZWNwNTIxcjEuY3J0IC0teDUwOWtleWZpbGUgZGF0YV9maWxlcy9lY2RzYV9zZWNwNTIxcjEua2V5IC0tcHJpb3JpdHk9Tk9ORTorQ0hBQ0hBMjAtUE9MWTEzMDU6K1NIQTI1NjorQUVBRDorU0lHTi1FQ0RTQS1TRUNQNTIxUjEtU0hBNTEyOitHUk9VUC1GRkRIRTIwNDg6K1ZFUlMtVExTMS4zOiVOT19USUNLRVRTIiBcCi0gICAgICAgICAiJFBfQ0xJIGNhX2ZpbGU9ZGF0YV9maWxlcy90ZXN0LWNhMi5jcnQgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQ0hBQ0hBMjAtUE9MWTEzMDUtU0hBMjU2IHNpZ19hbGdzPWVjZHNhX3NlY3A1MjFyMV9zaGE1MTIgZ3JvdXBzPWZmZGhlMjA0OCIgXAorICAgICAgICAgIiRHX05FWFRfU1JWX05PX0NFUlQgLS1odHRwIC0tZGlzYWJsZS1jbGllbnQtY2VydCAtLWRlYnVnPTQgLS14NTA5Y2VydGZpbGUgJERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwNTIxcjEuY3J0IC0teDUwOWtleWZpbGUgJERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwNTIxcjEua2V5IC0tcHJpb3JpdHk9Tk9ORTorQ0hBQ0hBMjAtUE9MWTEzMDU6K1NIQTI1NjorQUVBRDorU0lHTi1FQ0RTQS1TRUNQNTIxUjEtU0hBNTEyOitHUk9VUC1GRkRIRTIwNDg6K1ZFUlMtVExTMS4zOiVOT19USUNLRVRTIiBcCisgICAgICAgICAiJFBfQ0xJIGNhX2ZpbGU9JERBVEFfRklMRVNfUEFUSC90ZXN0LWNhMi5jcnQgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQ0hBQ0hBMjAtUE9MWTEzMDUtU0hBMjU2IHNpZ19hbGdzPWVjZHNhX3NlY3A1MjFyMV9zaGE1MTIgZ3JvdXBzPWZmZGhlMjA0OCIgXAogICAgICAgICAgMCBcCiAgICAgICAgICAtYyAiSFRUUC8xLjAgMjAwIE9LIiBcCiAgICAgICAgICAtYyAiUHJvdG9jb2wgaXMgVExTdjEuMyIgXApAQCAtODEwMiw4ICs4MTA0LDggQEAKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIFBTQV9XQU5UX0FMR19GRkRICiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBQU0FfV0FOVF9ESF9SRkM3OTE5XzIwNDgKIHJ1bl90ZXN0ICJUTFMgMS4zIG0tPkc6IENIQUNIQTIwX1BPTFkxMzA1X1NIQTI1NixmZmRoZTIwNDgscnNhX3Bzc19yc2FlX3NoYTI1NiIgXAotICAgICAgICAgIiRHX05FWFRfU1JWX05PX0NFUlQgLS1odHRwIC0tZGlzYWJsZS1jbGllbnQtY2VydCAtLWRlYnVnPTQgLS14NTA5Y2VydGZpbGUgZGF0YV9maWxlcy9zZXJ2ZXIyLXNoYTI1Ni5jcnQgLS14NTA5a2V5ZmlsZSBkYXRhX2ZpbGVzL3NlcnZlcjIua2V5IC0tcHJpb3JpdHk9Tk9ORTorQ0hBQ0hBMjAtUE9MWTEzMDU6K1NIQTI1NjorQUVBRDorU0lHTi1SU0EtUFNTLVJTQUUtU0hBMjU2OitHUk9VUC1GRkRIRTIwNDg6K1ZFUlMtVExTMS4zOiVOT19USUNLRVRTIiBcCi0gICAgICAgICAiJFBfQ0xJIGNhX2ZpbGU9ZGF0YV9maWxlcy90ZXN0LWNhX2NhdDEyLmNydCBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1DSEFDSEEyMC1QT0xZMTMwNS1TSEEyNTYgc2lnX2FsZ3M9cnNhX3Bzc19yc2FlX3NoYTI1NiBncm91cHM9ZmZkaGUyMDQ4IiBcCisgICAgICAgICAiJEdfTkVYVF9TUlZfTk9fQ0VSVCAtLWh0dHAgLS1kaXNhYmxlLWNsaWVudC1jZXJ0IC0tZGVidWc9NCAtLXg1MDljZXJ0ZmlsZSAkREFUQV9GSUxFU19QQVRIL3NlcnZlcjItc2hhMjU2LmNydCAtLXg1MDlrZXlmaWxlICREQVRBX0ZJTEVTX1BBVEgvc2VydmVyMi5rZXkgLS1wcmlvcml0eT1OT05FOitDSEFDSEEyMC1QT0xZMTMwNTorU0hBMjU2OitBRUFEOitTSUdOLVJTQS1QU1MtUlNBRS1TSEEyNTY6K0dST1VQLUZGREhFMjA0ODorVkVSUy1UTFMxLjM6JU5PX1RJQ0tFVFMiIFwKKyAgICAgICAgICIkUF9DTEkgY2FfZmlsZT0kREFUQV9GSUxFU19QQVRIL3Rlc3QtY2FfY2F0MTIuY3J0IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUNIQUNIQTIwLVBPTFkxMzA1LVNIQTI1NiBzaWdfYWxncz1yc2FfcHNzX3JzYWVfc2hhMjU2IGdyb3Vwcz1mZmRoZTIwNDgiIFwKICAgICAgICAgIDAgXAogICAgICAgICAgLWMgIkhUVFAvMS4wIDIwMCBPSyIgXAogICAgICAgICAgLWMgIlByb3RvY29sIGlzIFRMU3YxLjMiIFwKQEAgLTgxMjIsOCArODEyNCw4IEBACiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBNQkVEVExTX1NTTF9UTFMxXzNfQ09NUEFUSUJJTElUWV9NT0RFCiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBQU0FfV0FOVF9BTEdfRUNESAogcnVuX3Rlc3QgIlRMUyAxLjMgbS0+RzogQUVTXzEyOF9DQ01fU0hBMjU2LHNlY3AyNTZyMSxlY2RzYV9zZWNwMjU2cjFfc2hhMjU2IiBcCi0gICAgICAgICAiJEdfTkVYVF9TUlZfTk9fQ0VSVCAtLWh0dHAgLS1kaXNhYmxlLWNsaWVudC1jZXJ0IC0tZGVidWc9NCAtLXg1MDljZXJ0ZmlsZSBkYXRhX2ZpbGVzL2VjZHNhX3NlY3AyNTZyMS5jcnQgLS14NTA5a2V5ZmlsZSBkYXRhX2ZpbGVzL2VjZHNhX3NlY3AyNTZyMS5rZXkgLS1wcmlvcml0eT1OT05FOitBRVMtMTI4LUNDTTorU0hBMjU2OitBRUFEOitTSUdOLUVDRFNBLVNFQ1AyNTZSMS1TSEEyNTY6K0dST1VQLVNFQ1AyNTZSMTorVkVSUy1UTFMxLjM6JU5PX1RJQ0tFVFMiIFwKLSAgICAgICAgICIkUF9DTEkgY2FfZmlsZT1kYXRhX2ZpbGVzL3Rlc3QtY2EyLmNydCBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMTI4LUNDTS1TSEEyNTYgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDI1NnIxX3NoYTI1NiBncm91cHM9c2VjcDI1NnIxIiBcCisgICAgICAgICAiJEdfTkVYVF9TUlZfTk9fQ0VSVCAtLWh0dHAgLS1kaXNhYmxlLWNsaWVudC1jZXJ0IC0tZGVidWc9NCAtLXg1MDljZXJ0ZmlsZSAkREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3AyNTZyMS5jcnQgLS14NTA5a2V5ZmlsZSAkREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3AyNTZyMS5rZXkgLS1wcmlvcml0eT1OT05FOitBRVMtMTI4LUNDTTorU0hBMjU2OitBRUFEOitTSUdOLUVDRFNBLVNFQ1AyNTZSMS1TSEEyNTY6K0dST1VQLVNFQ1AyNTZSMTorVkVSUy1UTFMxLjM6JU5PX1RJQ0tFVFMiIFwKKyAgICAgICAgICIkUF9DTEkgY2FfZmlsZT0kREFUQV9GSUxFU19QQVRIL3Rlc3QtY2EyLmNydCBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMTI4LUNDTS1TSEEyNTYgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDI1NnIxX3NoYTI1NiBncm91cHM9c2VjcDI1NnIxIiBcCiAgICAgICAgICAwIFwKICAgICAgICAgIC1jICJIVFRQLzEuMCAyMDAgT0siIFwKICAgICAgICAgIC1jICJQcm90b2NvbCBpcyBUTFN2MS4zIiBcCkBAIC04MTQyLDggKzgxNDQsOCBAQAogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgTUJFRFRMU19TU0xfVExTMV8zX0NPTVBBVElCSUxJVFlfTU9ERQogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgUFNBX1dBTlRfQUxHX0VDREgKIHJ1bl90ZXN0ICJUTFMgMS4zIG0tPkc6IEFFU18xMjhfQ0NNX1NIQTI1NixzZWNwMjU2cjEsZWNkc2Ffc2VjcDM4NHIxX3NoYTM4NCIgXAotICAgICAgICAgIiRHX05FWFRfU1JWX05PX0NFUlQgLS1odHRwIC0tZGlzYWJsZS1jbGllbnQtY2VydCAtLWRlYnVnPTQgLS14NTA5Y2VydGZpbGUgZGF0YV9maWxlcy9lY2RzYV9zZWNwMzg0cjEuY3J0IC0teDUwOWtleWZpbGUgZGF0YV9maWxlcy9lY2RzYV9zZWNwMzg0cjEua2V5IC0tcHJpb3JpdHk9Tk9ORTorQUVTLTEyOC1DQ006K1NIQTI1NjorQUVBRDorU0lHTi1FQ0RTQS1TRUNQMzg0UjEtU0hBMzg0OitHUk9VUC1TRUNQMjU2UjE6K1ZFUlMtVExTMS4zOiVOT19USUNLRVRTIiBcCi0gICAgICAgICAiJFBfQ0xJIGNhX2ZpbGU9ZGF0YV9maWxlcy90ZXN0LWNhMi5jcnQgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTEyOC1DQ00tU0hBMjU2IHNpZ19hbGdzPWVjZHNhX3NlY3AzODRyMV9zaGEzODQgZ3JvdXBzPXNlY3AyNTZyMSIgXAorICAgICAgICAgIiRHX05FWFRfU1JWX05PX0NFUlQgLS1odHRwIC0tZGlzYWJsZS1jbGllbnQtY2VydCAtLWRlYnVnPTQgLS14NTA5Y2VydGZpbGUgJERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwMzg0cjEuY3J0IC0teDUwOWtleWZpbGUgJERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwMzg0cjEua2V5IC0tcHJpb3JpdHk9Tk9ORTorQUVTLTEyOC1DQ006K1NIQTI1NjorQUVBRDorU0lHTi1FQ0RTQS1TRUNQMzg0UjEtU0hBMzg0OitHUk9VUC1TRUNQMjU2UjE6K1ZFUlMtVExTMS4zOiVOT19USUNLRVRTIiBcCisgICAgICAgICAiJFBfQ0xJIGNhX2ZpbGU9JERBVEFfRklMRVNfUEFUSC90ZXN0LWNhMi5jcnQgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTEyOC1DQ00tU0hBMjU2IHNpZ19hbGdzPWVjZHNhX3NlY3AzODRyMV9zaGEzODQgZ3JvdXBzPXNlY3AyNTZyMSIgXAogICAgICAgICAgMCBcCiAgICAgICAgICAtYyAiSFRUUC8xLjAgMjAwIE9LIiBcCiAgICAgICAgICAtYyAiUHJvdG9jb2wgaXMgVExTdjEuMyIgXApAQCAtODE2Miw4ICs4MTY0LDggQEAKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIE1CRURUTFNfU1NMX1RMUzFfM19DT01QQVRJQklMSVRZX01PREUKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIFBTQV9XQU5UX0FMR19FQ0RICiBydW5fdGVzdCAiVExTIDEuMyBtLT5HOiBBRVNfMTI4X0NDTV9TSEEyNTYsc2VjcDI1NnIxLGVjZHNhX3NlY3A1MjFyMV9zaGE1MTIiIFwKLSAgICAgICAgICIkR19ORVhUX1NSVl9OT19DRVJUIC0taHR0cCAtLWRpc2FibGUtY2xpZW50LWNlcnQgLS1kZWJ1Zz00IC0teDUwOWNlcnRmaWxlIGRhdGFfZmlsZXMvZWNkc2Ffc2VjcDUyMXIxLmNydCAtLXg1MDlrZXlmaWxlIGRhdGFfZmlsZXMvZWNkc2Ffc2VjcDUyMXIxLmtleSAtLXByaW9yaXR5PU5PTkU6K0FFUy0xMjgtQ0NNOitTSEEyNTY6K0FFQUQ6K1NJR04tRUNEU0EtU0VDUDUyMVIxLVNIQTUxMjorR1JPVVAtU0VDUDI1NlIxOitWRVJTLVRMUzEuMzolTk9fVElDS0VUUyIgXAotICAgICAgICAgIiRQX0NMSSBjYV9maWxlPWRhdGFfZmlsZXMvdGVzdC1jYTIuY3J0IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0xMjgtQ0NNLVNIQTI1NiBzaWdfYWxncz1lY2RzYV9zZWNwNTIxcjFfc2hhNTEyIGdyb3Vwcz1zZWNwMjU2cjEiIFwKKyAgICAgICAgICIkR19ORVhUX1NSVl9OT19DRVJUIC0taHR0cCAtLWRpc2FibGUtY2xpZW50LWNlcnQgLS1kZWJ1Zz00IC0teDUwOWNlcnRmaWxlICREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDUyMXIxLmNydCAtLXg1MDlrZXlmaWxlICREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDUyMXIxLmtleSAtLXByaW9yaXR5PU5PTkU6K0FFUy0xMjgtQ0NNOitTSEEyNTY6K0FFQUQ6K1NJR04tRUNEU0EtU0VDUDUyMVIxLVNIQTUxMjorR1JPVVAtU0VDUDI1NlIxOitWRVJTLVRMUzEuMzolTk9fVElDS0VUUyIgXAorICAgICAgICAgIiRQX0NMSSBjYV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvdGVzdC1jYTIuY3J0IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0xMjgtQ0NNLVNIQTI1NiBzaWdfYWxncz1lY2RzYV9zZWNwNTIxcjFfc2hhNTEyIGdyb3Vwcz1zZWNwMjU2cjEiIFwKICAgICAgICAgIDAgXAogICAgICAgICAgLWMgIkhUVFAvMS4wIDIwMCBPSyIgXAogICAgICAgICAgLWMgIlByb3RvY29sIGlzIFRMU3YxLjMiIFwKQEAgLTgxODMsOCArODE4NSw4IEBACiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBNQkVEVExTX1g1MDlfUlNBU1NBX1BTU19TVVBQT1JUCiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBQU0FfV0FOVF9BTEdfRUNESAogcnVuX3Rlc3QgIlRMUyAxLjMgbS0+RzogQUVTXzEyOF9DQ01fU0hBMjU2LHNlY3AyNTZyMSxyc2FfcHNzX3JzYWVfc2hhMjU2IiBcCi0gICAgICAgICAiJEdfTkVYVF9TUlZfTk9fQ0VSVCAtLWh0dHAgLS1kaXNhYmxlLWNsaWVudC1jZXJ0IC0tZGVidWc9NCAtLXg1MDljZXJ0ZmlsZSBkYXRhX2ZpbGVzL3NlcnZlcjItc2hhMjU2LmNydCAtLXg1MDlrZXlmaWxlIGRhdGFfZmlsZXMvc2VydmVyMi5rZXkgLS1wcmlvcml0eT1OT05FOitBRVMtMTI4LUNDTTorU0hBMjU2OitBRUFEOitTSUdOLVJTQS1QU1MtUlNBRS1TSEEyNTY6K0dST1VQLVNFQ1AyNTZSMTorVkVSUy1UTFMxLjM6JU5PX1RJQ0tFVFMiIFwKLSAgICAgICAgICIkUF9DTEkgY2FfZmlsZT1kYXRhX2ZpbGVzL3Rlc3QtY2FfY2F0MTIuY3J0IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0xMjgtQ0NNLVNIQTI1NiBzaWdfYWxncz1yc2FfcHNzX3JzYWVfc2hhMjU2IGdyb3Vwcz1zZWNwMjU2cjEiIFwKKyAgICAgICAgICIkR19ORVhUX1NSVl9OT19DRVJUIC0taHR0cCAtLWRpc2FibGUtY2xpZW50LWNlcnQgLS1kZWJ1Zz00IC0teDUwOWNlcnRmaWxlICREQVRBX0ZJTEVTX1BBVEgvc2VydmVyMi1zaGEyNTYuY3J0IC0teDUwOWtleWZpbGUgJERBVEFfRklMRVNfUEFUSC9zZXJ2ZXIyLmtleSAtLXByaW9yaXR5PU5PTkU6K0FFUy0xMjgtQ0NNOitTSEEyNTY6K0FFQUQ6K1NJR04tUlNBLVBTUy1SU0FFLVNIQTI1NjorR1JPVVAtU0VDUDI1NlIxOitWRVJTLVRMUzEuMzolTk9fVElDS0VUUyIgXAorICAgICAgICAgIiRQX0NMSSBjYV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvdGVzdC1jYV9jYXQxMi5jcnQgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTEyOC1DQ00tU0hBMjU2IHNpZ19hbGdzPXJzYV9wc3NfcnNhZV9zaGEyNTYgZ3JvdXBzPXNlY3AyNTZyMSIgXAogICAgICAgICAgMCBcCiAgICAgICAgICAtYyAiSFRUUC8xLjAgMjAwIE9LIiBcCiAgICAgICAgICAtYyAiUHJvdG9jb2wgaXMgVExTdjEuMyIgXApAQCAtODIwMyw4ICs4MjA1LDggQEAKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIE1CRURUTFNfU1NMX1RMUzFfM19DT01QQVRJQklMSVRZX01PREUKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIFBTQV9XQU5UX0FMR19FQ0RICiBydW5fdGVzdCAiVExTIDEuMyBtLT5HOiBBRVNfMTI4X0NDTV9TSEEyNTYsc2VjcDM4NHIxLGVjZHNhX3NlY3AyNTZyMV9zaGEyNTYiIFwKLSAgICAgICAgICIkR19ORVhUX1NSVl9OT19DRVJUIC0taHR0cCAtLWRpc2FibGUtY2xpZW50LWNlcnQgLS1kZWJ1Zz00IC0teDUwOWNlcnRmaWxlIGRhdGFfZmlsZXMvZWNkc2Ffc2VjcDI1NnIxLmNydCAtLXg1MDlrZXlmaWxlIGRhdGFfZmlsZXMvZWNkc2Ffc2VjcDI1NnIxLmtleSAtLXByaW9yaXR5PU5PTkU6K0FFUy0xMjgtQ0NNOitTSEEyNTY6K0FFQUQ6K1NJR04tRUNEU0EtU0VDUDI1NlIxLVNIQTI1NjorR1JPVVAtU0VDUDM4NFIxOitWRVJTLVRMUzEuMzolTk9fVElDS0VUUyIgXAotICAgICAgICAgIiRQX0NMSSBjYV9maWxlPWRhdGFfZmlsZXMvdGVzdC1jYTIuY3J0IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0xMjgtQ0NNLVNIQTI1NiBzaWdfYWxncz1lY2RzYV9zZWNwMjU2cjFfc2hhMjU2IGdyb3Vwcz1zZWNwMzg0cjEiIFwKKyAgICAgICAgICIkR19ORVhUX1NSVl9OT19DRVJUIC0taHR0cCAtLWRpc2FibGUtY2xpZW50LWNlcnQgLS1kZWJ1Zz00IC0teDUwOWNlcnRmaWxlICREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDI1NnIxLmNydCAtLXg1MDlrZXlmaWxlICREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDI1NnIxLmtleSAtLXByaW9yaXR5PU5PTkU6K0FFUy0xMjgtQ0NNOitTSEEyNTY6K0FFQUQ6K1NJR04tRUNEU0EtU0VDUDI1NlIxLVNIQTI1NjorR1JPVVAtU0VDUDM4NFIxOitWRVJTLVRMUzEuMzolTk9fVElDS0VUUyIgXAorICAgICAgICAgIiRQX0NMSSBjYV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvdGVzdC1jYTIuY3J0IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0xMjgtQ0NNLVNIQTI1NiBzaWdfYWxncz1lY2RzYV9zZWNwMjU2cjFfc2hhMjU2IGdyb3Vwcz1zZWNwMzg0cjEiIFwKICAgICAgICAgIDAgXAogICAgICAgICAgLWMgIkhUVFAvMS4wIDIwMCBPSyIgXAogICAgICAgICAgLWMgIlByb3RvY29sIGlzIFRMU3YxLjMiIFwKQEAgLTgyMjMsOCArODIyNSw4IEBACiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBNQkVEVExTX1NTTF9UTFMxXzNfQ09NUEFUSUJJTElUWV9NT0RFCiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBQU0FfV0FOVF9BTEdfRUNESAogcnVuX3Rlc3QgIlRMUyAxLjMgbS0+RzogQUVTXzEyOF9DQ01fU0hBMjU2LHNlY3AzODRyMSxlY2RzYV9zZWNwMzg0cjFfc2hhMzg0IiBcCi0gICAgICAgICAiJEdfTkVYVF9TUlZfTk9fQ0VSVCAtLWh0dHAgLS1kaXNhYmxlLWNsaWVudC1jZXJ0IC0tZGVidWc9NCAtLXg1MDljZXJ0ZmlsZSBkYXRhX2ZpbGVzL2VjZHNhX3NlY3AzODRyMS5jcnQgLS14NTA5a2V5ZmlsZSBkYXRhX2ZpbGVzL2VjZHNhX3NlY3AzODRyMS5rZXkgLS1wcmlvcml0eT1OT05FOitBRVMtMTI4LUNDTTorU0hBMjU2OitBRUFEOitTSUdOLUVDRFNBLVNFQ1AzODRSMS1TSEEzODQ6K0dST1VQLVNFQ1AzODRSMTorVkVSUy1UTFMxLjM6JU5PX1RJQ0tFVFMiIFwKLSAgICAgICAgICIkUF9DTEkgY2FfZmlsZT1kYXRhX2ZpbGVzL3Rlc3QtY2EyLmNydCBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMTI4LUNDTS1TSEEyNTYgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDM4NHIxX3NoYTM4NCBncm91cHM9c2VjcDM4NHIxIiBcCisgICAgICAgICAiJEdfTkVYVF9TUlZfTk9fQ0VSVCAtLWh0dHAgLS1kaXNhYmxlLWNsaWVudC1jZXJ0IC0tZGVidWc9NCAtLXg1MDljZXJ0ZmlsZSAkREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3AzODRyMS5jcnQgLS14NTA5a2V5ZmlsZSAkREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3AzODRyMS5rZXkgLS1wcmlvcml0eT1OT05FOitBRVMtMTI4LUNDTTorU0hBMjU2OitBRUFEOitTSUdOLUVDRFNBLVNFQ1AzODRSMS1TSEEzODQ6K0dST1VQLVNFQ1AzODRSMTorVkVSUy1UTFMxLjM6JU5PX1RJQ0tFVFMiIFwKKyAgICAgICAgICIkUF9DTEkgY2FfZmlsZT0kREFUQV9GSUxFU19QQVRIL3Rlc3QtY2EyLmNydCBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMTI4LUNDTS1TSEEyNTYgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDM4NHIxX3NoYTM4NCBncm91cHM9c2VjcDM4NHIxIiBcCiAgICAgICAgICAwIFwKICAgICAgICAgIC1jICJIVFRQLzEuMCAyMDAgT0siIFwKICAgICAgICAgIC1jICJQcm90b2NvbCBpcyBUTFN2MS4zIiBcCkBAIC04MjQzLDggKzgyNDUsOCBAQAogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgTUJFRFRMU19TU0xfVExTMV8zX0NPTVBBVElCSUxJVFlfTU9ERQogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgUFNBX1dBTlRfQUxHX0VDREgKIHJ1bl90ZXN0ICJUTFMgMS4zIG0tPkc6IEFFU18xMjhfQ0NNX1NIQTI1NixzZWNwMzg0cjEsZWNkc2Ffc2VjcDUyMXIxX3NoYTUxMiIgXAotICAgICAgICAgIiRHX05FWFRfU1JWX05PX0NFUlQgLS1odHRwIC0tZGlzYWJsZS1jbGllbnQtY2VydCAtLWRlYnVnPTQgLS14NTA5Y2VydGZpbGUgZGF0YV9maWxlcy9lY2RzYV9zZWNwNTIxcjEuY3J0IC0teDUwOWtleWZpbGUgZGF0YV9maWxlcy9lY2RzYV9zZWNwNTIxcjEua2V5IC0tcHJpb3JpdHk9Tk9ORTorQUVTLTEyOC1DQ006K1NIQTI1NjorQUVBRDorU0lHTi1FQ0RTQS1TRUNQNTIxUjEtU0hBNTEyOitHUk9VUC1TRUNQMzg0UjE6K1ZFUlMtVExTMS4zOiVOT19USUNLRVRTIiBcCi0gICAgICAgICAiJFBfQ0xJIGNhX2ZpbGU9ZGF0YV9maWxlcy90ZXN0LWNhMi5jcnQgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTEyOC1DQ00tU0hBMjU2IHNpZ19hbGdzPWVjZHNhX3NlY3A1MjFyMV9zaGE1MTIgZ3JvdXBzPXNlY3AzODRyMSIgXAorICAgICAgICAgIiRHX05FWFRfU1JWX05PX0NFUlQgLS1odHRwIC0tZGlzYWJsZS1jbGllbnQtY2VydCAtLWRlYnVnPTQgLS14NTA5Y2VydGZpbGUgJERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwNTIxcjEuY3J0IC0teDUwOWtleWZpbGUgJERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwNTIxcjEua2V5IC0tcHJpb3JpdHk9Tk9ORTorQUVTLTEyOC1DQ006K1NIQTI1NjorQUVBRDorU0lHTi1FQ0RTQS1TRUNQNTIxUjEtU0hBNTEyOitHUk9VUC1TRUNQMzg0UjE6K1ZFUlMtVExTMS4zOiVOT19USUNLRVRTIiBcCisgICAgICAgICAiJFBfQ0xJIGNhX2ZpbGU9JERBVEFfRklMRVNfUEFUSC90ZXN0LWNhMi5jcnQgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTEyOC1DQ00tU0hBMjU2IHNpZ19hbGdzPWVjZHNhX3NlY3A1MjFyMV9zaGE1MTIgZ3JvdXBzPXNlY3AzODRyMSIgXAogICAgICAgICAgMCBcCiAgICAgICAgICAtYyAiSFRUUC8xLjAgMjAwIE9LIiBcCiAgICAgICAgICAtYyAiUHJvdG9jb2wgaXMgVExTdjEuMyIgXApAQCAtODI2NCw4ICs4MjY2LDggQEAKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIE1CRURUTFNfWDUwOV9SU0FTU0FfUFNTX1NVUFBPUlQKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIFBTQV9XQU5UX0FMR19FQ0RICiBydW5fdGVzdCAiVExTIDEuMyBtLT5HOiBBRVNfMTI4X0NDTV9TSEEyNTYsc2VjcDM4NHIxLHJzYV9wc3NfcnNhZV9zaGEyNTYiIFwKLSAgICAgICAgICIkR19ORVhUX1NSVl9OT19DRVJUIC0taHR0cCAtLWRpc2FibGUtY2xpZW50LWNlcnQgLS1kZWJ1Zz00IC0teDUwOWNlcnRmaWxlIGRhdGFfZmlsZXMvc2VydmVyMi1zaGEyNTYuY3J0IC0teDUwOWtleWZpbGUgZGF0YV9maWxlcy9zZXJ2ZXIyLmtleSAtLXByaW9yaXR5PU5PTkU6K0FFUy0xMjgtQ0NNOitTSEEyNTY6K0FFQUQ6K1NJR04tUlNBLVBTUy1SU0FFLVNIQTI1NjorR1JPVVAtU0VDUDM4NFIxOitWRVJTLVRMUzEuMzolTk9fVElDS0VUUyIgXAotICAgICAgICAgIiRQX0NMSSBjYV9maWxlPWRhdGFfZmlsZXMvdGVzdC1jYV9jYXQxMi5jcnQgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTEyOC1DQ00tU0hBMjU2IHNpZ19hbGdzPXJzYV9wc3NfcnNhZV9zaGEyNTYgZ3JvdXBzPXNlY3AzODRyMSIgXAorICAgICAgICAgIiRHX05FWFRfU1JWX05PX0NFUlQgLS1odHRwIC0tZGlzYWJsZS1jbGllbnQtY2VydCAtLWRlYnVnPTQgLS14NTA5Y2VydGZpbGUgJERBVEFfRklMRVNfUEFUSC9zZXJ2ZXIyLXNoYTI1Ni5jcnQgLS14NTA5a2V5ZmlsZSAkREFUQV9GSUxFU19QQVRIL3NlcnZlcjIua2V5IC0tcHJpb3JpdHk9Tk9ORTorQUVTLTEyOC1DQ006K1NIQTI1NjorQUVBRDorU0lHTi1SU0EtUFNTLVJTQUUtU0hBMjU2OitHUk9VUC1TRUNQMzg0UjE6K1ZFUlMtVExTMS4zOiVOT19USUNLRVRTIiBcCisgICAgICAgICAiJFBfQ0xJIGNhX2ZpbGU9JERBVEFfRklMRVNfUEFUSC90ZXN0LWNhX2NhdDEyLmNydCBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMTI4LUNDTS1TSEEyNTYgc2lnX2FsZ3M9cnNhX3Bzc19yc2FlX3NoYTI1NiBncm91cHM9c2VjcDM4NHIxIiBcCiAgICAgICAgICAwIFwKICAgICAgICAgIC1jICJIVFRQLzEuMCAyMDAgT0siIFwKICAgICAgICAgIC1jICJQcm90b2NvbCBpcyBUTFN2MS4zIiBcCkBAIC04Mjg0LDggKzgyODYsOCBAQAogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgTUJFRFRMU19TU0xfVExTMV8zX0NPTVBBVElCSUxJVFlfTU9ERQogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgUFNBX1dBTlRfQUxHX0VDREgKIHJ1bl90ZXN0ICJUTFMgMS4zIG0tPkc6IEFFU18xMjhfQ0NNX1NIQTI1NixzZWNwNTIxcjEsZWNkc2Ffc2VjcDI1NnIxX3NoYTI1NiIgXAotICAgICAgICAgIiRHX05FWFRfU1JWX05PX0NFUlQgLS1odHRwIC0tZGlzYWJsZS1jbGllbnQtY2VydCAtLWRlYnVnPTQgLS14NTA5Y2VydGZpbGUgZGF0YV9maWxlcy9lY2RzYV9zZWNwMjU2cjEuY3J0IC0teDUwOWtleWZpbGUgZGF0YV9maWxlcy9lY2RzYV9zZWNwMjU2cjEua2V5IC0tcHJpb3JpdHk9Tk9ORTorQUVTLTEyOC1DQ006K1NIQTI1NjorQUVBRDorU0lHTi1FQ0RTQS1TRUNQMjU2UjEtU0hBMjU2OitHUk9VUC1TRUNQNTIxUjE6K1ZFUlMtVExTMS4zOiVOT19USUNLRVRTIiBcCi0gICAgICAgICAiJFBfQ0xJIGNhX2ZpbGU9ZGF0YV9maWxlcy90ZXN0LWNhMi5jcnQgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTEyOC1DQ00tU0hBMjU2IHNpZ19hbGdzPWVjZHNhX3NlY3AyNTZyMV9zaGEyNTYgZ3JvdXBzPXNlY3A1MjFyMSIgXAorICAgICAgICAgIiRHX05FWFRfU1JWX05PX0NFUlQgLS1odHRwIC0tZGlzYWJsZS1jbGllbnQtY2VydCAtLWRlYnVnPTQgLS14NTA5Y2VydGZpbGUgJERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwMjU2cjEuY3J0IC0teDUwOWtleWZpbGUgJERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwMjU2cjEua2V5IC0tcHJpb3JpdHk9Tk9ORTorQUVTLTEyOC1DQ006K1NIQTI1NjorQUVBRDorU0lHTi1FQ0RTQS1TRUNQMjU2UjEtU0hBMjU2OitHUk9VUC1TRUNQNTIxUjE6K1ZFUlMtVExTMS4zOiVOT19USUNLRVRTIiBcCisgICAgICAgICAiJFBfQ0xJIGNhX2ZpbGU9JERBVEFfRklMRVNfUEFUSC90ZXN0LWNhMi5jcnQgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTEyOC1DQ00tU0hBMjU2IHNpZ19hbGdzPWVjZHNhX3NlY3AyNTZyMV9zaGEyNTYgZ3JvdXBzPXNlY3A1MjFyMSIgXAogICAgICAgICAgMCBcCiAgICAgICAgICAtYyAiSFRUUC8xLjAgMjAwIE9LIiBcCiAgICAgICAgICAtYyAiUHJvdG9jb2wgaXMgVExTdjEuMyIgXApAQCAtODMwNCw4ICs4MzA2LDggQEAKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIE1CRURUTFNfU1NMX1RMUzFfM19DT01QQVRJQklMSVRZX01PREUKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIFBTQV9XQU5UX0FMR19FQ0RICiBydW5fdGVzdCAiVExTIDEuMyBtLT5HOiBBRVNfMTI4X0NDTV9TSEEyNTYsc2VjcDUyMXIxLGVjZHNhX3NlY3AzODRyMV9zaGEzODQiIFwKLSAgICAgICAgICIkR19ORVhUX1NSVl9OT19DRVJUIC0taHR0cCAtLWRpc2FibGUtY2xpZW50LWNlcnQgLS1kZWJ1Zz00IC0teDUwOWNlcnRmaWxlIGRhdGFfZmlsZXMvZWNkc2Ffc2VjcDM4NHIxLmNydCAtLXg1MDlrZXlmaWxlIGRhdGFfZmlsZXMvZWNkc2Ffc2VjcDM4NHIxLmtleSAtLXByaW9yaXR5PU5PTkU6K0FFUy0xMjgtQ0NNOitTSEEyNTY6K0FFQUQ6K1NJR04tRUNEU0EtU0VDUDM4NFIxLVNIQTM4NDorR1JPVVAtU0VDUDUyMVIxOitWRVJTLVRMUzEuMzolTk9fVElDS0VUUyIgXAotICAgICAgICAgIiRQX0NMSSBjYV9maWxlPWRhdGFfZmlsZXMvdGVzdC1jYTIuY3J0IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0xMjgtQ0NNLVNIQTI1NiBzaWdfYWxncz1lY2RzYV9zZWNwMzg0cjFfc2hhMzg0IGdyb3Vwcz1zZWNwNTIxcjEiIFwKKyAgICAgICAgICIkR19ORVhUX1NSVl9OT19DRVJUIC0taHR0cCAtLWRpc2FibGUtY2xpZW50LWNlcnQgLS1kZWJ1Zz00IC0teDUwOWNlcnRmaWxlICREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDM4NHIxLmNydCAtLXg1MDlrZXlmaWxlICREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDM4NHIxLmtleSAtLXByaW9yaXR5PU5PTkU6K0FFUy0xMjgtQ0NNOitTSEEyNTY6K0FFQUQ6K1NJR04tRUNEU0EtU0VDUDM4NFIxLVNIQTM4NDorR1JPVVAtU0VDUDUyMVIxOitWRVJTLVRMUzEuMzolTk9fVElDS0VUUyIgXAorICAgICAgICAgIiRQX0NMSSBjYV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvdGVzdC1jYTIuY3J0IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0xMjgtQ0NNLVNIQTI1NiBzaWdfYWxncz1lY2RzYV9zZWNwMzg0cjFfc2hhMzg0IGdyb3Vwcz1zZWNwNTIxcjEiIFwKICAgICAgICAgIDAgXAogICAgICAgICAgLWMgIkhUVFAvMS4wIDIwMCBPSyIgXAogICAgICAgICAgLWMgIlByb3RvY29sIGlzIFRMU3YxLjMiIFwKQEAgLTgzMjQsOCArODMyNiw4IEBACiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBNQkVEVExTX1NTTF9UTFMxXzNfQ09NUEFUSUJJTElUWV9NT0RFCiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBQU0FfV0FOVF9BTEdfRUNESAogcnVuX3Rlc3QgIlRMUyAxLjMgbS0+RzogQUVTXzEyOF9DQ01fU0hBMjU2LHNlY3A1MjFyMSxlY2RzYV9zZWNwNTIxcjFfc2hhNTEyIiBcCi0gICAgICAgICAiJEdfTkVYVF9TUlZfTk9fQ0VSVCAtLWh0dHAgLS1kaXNhYmxlLWNsaWVudC1jZXJ0IC0tZGVidWc9NCAtLXg1MDljZXJ0ZmlsZSBkYXRhX2ZpbGVzL2VjZHNhX3NlY3A1MjFyMS5jcnQgLS14NTA5a2V5ZmlsZSBkYXRhX2ZpbGVzL2VjZHNhX3NlY3A1MjFyMS5rZXkgLS1wcmlvcml0eT1OT05FOitBRVMtMTI4LUNDTTorU0hBMjU2OitBRUFEOitTSUdOLUVDRFNBLVNFQ1A1MjFSMS1TSEE1MTI6K0dST1VQLVNFQ1A1MjFSMTorVkVSUy1UTFMxLjM6JU5PX1RJQ0tFVFMiIFwKLSAgICAgICAgICIkUF9DTEkgY2FfZmlsZT1kYXRhX2ZpbGVzL3Rlc3QtY2EyLmNydCBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMTI4LUNDTS1TSEEyNTYgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDUyMXIxX3NoYTUxMiBncm91cHM9c2VjcDUyMXIxIiBcCisgICAgICAgICAiJEdfTkVYVF9TUlZfTk9fQ0VSVCAtLWh0dHAgLS1kaXNhYmxlLWNsaWVudC1jZXJ0IC0tZGVidWc9NCAtLXg1MDljZXJ0ZmlsZSAkREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3A1MjFyMS5jcnQgLS14NTA5a2V5ZmlsZSAkREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3A1MjFyMS5rZXkgLS1wcmlvcml0eT1OT05FOitBRVMtMTI4LUNDTTorU0hBMjU2OitBRUFEOitTSUdOLUVDRFNBLVNFQ1A1MjFSMS1TSEE1MTI6K0dST1VQLVNFQ1A1MjFSMTorVkVSUy1UTFMxLjM6JU5PX1RJQ0tFVFMiIFwKKyAgICAgICAgICIkUF9DTEkgY2FfZmlsZT0kREFUQV9GSUxFU19QQVRIL3Rlc3QtY2EyLmNydCBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMTI4LUNDTS1TSEEyNTYgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDUyMXIxX3NoYTUxMiBncm91cHM9c2VjcDUyMXIxIiBcCiAgICAgICAgICAwIFwKICAgICAgICAgIC1jICJIVFRQLzEuMCAyMDAgT0siIFwKICAgICAgICAgIC1jICJQcm90b2NvbCBpcyBUTFN2MS4zIiBcCkBAIC04MzQ1LDggKzgzNDcsOCBAQAogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgTUJFRFRMU19YNTA5X1JTQVNTQV9QU1NfU1VQUE9SVAogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgUFNBX1dBTlRfQUxHX0VDREgKIHJ1bl90ZXN0ICJUTFMgMS4zIG0tPkc6IEFFU18xMjhfQ0NNX1NIQTI1NixzZWNwNTIxcjEscnNhX3Bzc19yc2FlX3NoYTI1NiIgXAotICAgICAgICAgIiRHX05FWFRfU1JWX05PX0NFUlQgLS1odHRwIC0tZGlzYWJsZS1jbGllbnQtY2VydCAtLWRlYnVnPTQgLS14NTA5Y2VydGZpbGUgZGF0YV9maWxlcy9zZXJ2ZXIyLXNoYTI1Ni5jcnQgLS14NTA5a2V5ZmlsZSBkYXRhX2ZpbGVzL3NlcnZlcjIua2V5IC0tcHJpb3JpdHk9Tk9ORTorQUVTLTEyOC1DQ006K1NIQTI1NjorQUVBRDorU0lHTi1SU0EtUFNTLVJTQUUtU0hBMjU2OitHUk9VUC1TRUNQNTIxUjE6K1ZFUlMtVExTMS4zOiVOT19USUNLRVRTIiBcCi0gICAgICAgICAiJFBfQ0xJIGNhX2ZpbGU9ZGF0YV9maWxlcy90ZXN0LWNhX2NhdDEyLmNydCBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMTI4LUNDTS1TSEEyNTYgc2lnX2FsZ3M9cnNhX3Bzc19yc2FlX3NoYTI1NiBncm91cHM9c2VjcDUyMXIxIiBcCisgICAgICAgICAiJEdfTkVYVF9TUlZfTk9fQ0VSVCAtLWh0dHAgLS1kaXNhYmxlLWNsaWVudC1jZXJ0IC0tZGVidWc9NCAtLXg1MDljZXJ0ZmlsZSAkREFUQV9GSUxFU19QQVRIL3NlcnZlcjItc2hhMjU2LmNydCAtLXg1MDlrZXlmaWxlICREQVRBX0ZJTEVTX1BBVEgvc2VydmVyMi5rZXkgLS1wcmlvcml0eT1OT05FOitBRVMtMTI4LUNDTTorU0hBMjU2OitBRUFEOitTSUdOLVJTQS1QU1MtUlNBRS1TSEEyNTY6K0dST1VQLVNFQ1A1MjFSMTorVkVSUy1UTFMxLjM6JU5PX1RJQ0tFVFMiIFwKKyAgICAgICAgICIkUF9DTEkgY2FfZmlsZT0kREFUQV9GSUxFU19QQVRIL3Rlc3QtY2FfY2F0MTIuY3J0IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0xMjgtQ0NNLVNIQTI1NiBzaWdfYWxncz1yc2FfcHNzX3JzYWVfc2hhMjU2IGdyb3Vwcz1zZWNwNTIxcjEiIFwKICAgICAgICAgIDAgXAogICAgICAgICAgLWMgIkhUVFAvMS4wIDIwMCBPSyIgXAogICAgICAgICAgLWMgIlByb3RvY29sIGlzIFRMU3YxLjMiIFwKQEAgLTgzNjUsOCArODM2Nyw4IEBACiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBNQkVEVExTX1NTTF9UTFMxXzNfQ09NUEFUSUJJTElUWV9NT0RFCiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBQU0FfV0FOVF9BTEdfRUNESAogcnVuX3Rlc3QgIlRMUyAxLjMgbS0+RzogQUVTXzEyOF9DQ01fU0hBMjU2LHgyNTUxOSxlY2RzYV9zZWNwMjU2cjFfc2hhMjU2IiBcCi0gICAgICAgICAiJEdfTkVYVF9TUlZfTk9fQ0VSVCAtLWh0dHAgLS1kaXNhYmxlLWNsaWVudC1jZXJ0IC0tZGVidWc9NCAtLXg1MDljZXJ0ZmlsZSBkYXRhX2ZpbGVzL2VjZHNhX3NlY3AyNTZyMS5jcnQgLS14NTA5a2V5ZmlsZSBkYXRhX2ZpbGVzL2VjZHNhX3NlY3AyNTZyMS5rZXkgLS1wcmlvcml0eT1OT05FOitBRVMtMTI4LUNDTTorU0hBMjU2OitBRUFEOitTSUdOLUVDRFNBLVNFQ1AyNTZSMS1TSEEyNTY6K0dST1VQLVgyNTUxOTorVkVSUy1UTFMxLjM6JU5PX1RJQ0tFVFMiIFwKLSAgICAgICAgICIkUF9DTEkgY2FfZmlsZT1kYXRhX2ZpbGVzL3Rlc3QtY2EyLmNydCBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMTI4LUNDTS1TSEEyNTYgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDI1NnIxX3NoYTI1NiBncm91cHM9eDI1NTE5IiBcCisgICAgICAgICAiJEdfTkVYVF9TUlZfTk9fQ0VSVCAtLWh0dHAgLS1kaXNhYmxlLWNsaWVudC1jZXJ0IC0tZGVidWc9NCAtLXg1MDljZXJ0ZmlsZSAkREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3AyNTZyMS5jcnQgLS14NTA5a2V5ZmlsZSAkREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3AyNTZyMS5rZXkgLS1wcmlvcml0eT1OT05FOitBRVMtMTI4LUNDTTorU0hBMjU2OitBRUFEOitTSUdOLUVDRFNBLVNFQ1AyNTZSMS1TSEEyNTY6K0dST1VQLVgyNTUxOTorVkVSUy1UTFMxLjM6JU5PX1RJQ0tFVFMiIFwKKyAgICAgICAgICIkUF9DTEkgY2FfZmlsZT0kREFUQV9GSUxFU19QQVRIL3Rlc3QtY2EyLmNydCBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMTI4LUNDTS1TSEEyNTYgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDI1NnIxX3NoYTI1NiBncm91cHM9eDI1NTE5IiBcCiAgICAgICAgICAwIFwKICAgICAgICAgIC1jICJIVFRQLzEuMCAyMDAgT0siIFwKICAgICAgICAgIC1jICJQcm90b2NvbCBpcyBUTFN2MS4zIiBcCkBAIC04Mzg1LDggKzgzODcsOCBAQAogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgTUJFRFRMU19TU0xfVExTMV8zX0NPTVBBVElCSUxJVFlfTU9ERQogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgUFNBX1dBTlRfQUxHX0VDREgKIHJ1bl90ZXN0ICJUTFMgMS4zIG0tPkc6IEFFU18xMjhfQ0NNX1NIQTI1Nix4MjU1MTksZWNkc2Ffc2VjcDM4NHIxX3NoYTM4NCIgXAotICAgICAgICAgIiRHX05FWFRfU1JWX05PX0NFUlQgLS1odHRwIC0tZGlzYWJsZS1jbGllbnQtY2VydCAtLWRlYnVnPTQgLS14NTA5Y2VydGZpbGUgZGF0YV9maWxlcy9lY2RzYV9zZWNwMzg0cjEuY3J0IC0teDUwOWtleWZpbGUgZGF0YV9maWxlcy9lY2RzYV9zZWNwMzg0cjEua2V5IC0tcHJpb3JpdHk9Tk9ORTorQUVTLTEyOC1DQ006K1NIQTI1NjorQUVBRDorU0lHTi1FQ0RTQS1TRUNQMzg0UjEtU0hBMzg0OitHUk9VUC1YMjU1MTk6K1ZFUlMtVExTMS4zOiVOT19USUNLRVRTIiBcCi0gICAgICAgICAiJFBfQ0xJIGNhX2ZpbGU9ZGF0YV9maWxlcy90ZXN0LWNhMi5jcnQgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTEyOC1DQ00tU0hBMjU2IHNpZ19hbGdzPWVjZHNhX3NlY3AzODRyMV9zaGEzODQgZ3JvdXBzPXgyNTUxOSIgXAorICAgICAgICAgIiRHX05FWFRfU1JWX05PX0NFUlQgLS1odHRwIC0tZGlzYWJsZS1jbGllbnQtY2VydCAtLWRlYnVnPTQgLS14NTA5Y2VydGZpbGUgJERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwMzg0cjEuY3J0IC0teDUwOWtleWZpbGUgJERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwMzg0cjEua2V5IC0tcHJpb3JpdHk9Tk9ORTorQUVTLTEyOC1DQ006K1NIQTI1NjorQUVBRDorU0lHTi1FQ0RTQS1TRUNQMzg0UjEtU0hBMzg0OitHUk9VUC1YMjU1MTk6K1ZFUlMtVExTMS4zOiVOT19USUNLRVRTIiBcCisgICAgICAgICAiJFBfQ0xJIGNhX2ZpbGU9JERBVEFfRklMRVNfUEFUSC90ZXN0LWNhMi5jcnQgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTEyOC1DQ00tU0hBMjU2IHNpZ19hbGdzPWVjZHNhX3NlY3AzODRyMV9zaGEzODQgZ3JvdXBzPXgyNTUxOSIgXAogICAgICAgICAgMCBcCiAgICAgICAgICAtYyAiSFRUUC8xLjAgMjAwIE9LIiBcCiAgICAgICAgICAtYyAiUHJvdG9jb2wgaXMgVExTdjEuMyIgXApAQCAtODQwNSw4ICs4NDA3LDggQEAKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIE1CRURUTFNfU1NMX1RMUzFfM19DT01QQVRJQklMSVRZX01PREUKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIFBTQV9XQU5UX0FMR19FQ0RICiBydW5fdGVzdCAiVExTIDEuMyBtLT5HOiBBRVNfMTI4X0NDTV9TSEEyNTYseDI1NTE5LGVjZHNhX3NlY3A1MjFyMV9zaGE1MTIiIFwKLSAgICAgICAgICIkR19ORVhUX1NSVl9OT19DRVJUIC0taHR0cCAtLWRpc2FibGUtY2xpZW50LWNlcnQgLS1kZWJ1Zz00IC0teDUwOWNlcnRmaWxlIGRhdGFfZmlsZXMvZWNkc2Ffc2VjcDUyMXIxLmNydCAtLXg1MDlrZXlmaWxlIGRhdGFfZmlsZXMvZWNkc2Ffc2VjcDUyMXIxLmtleSAtLXByaW9yaXR5PU5PTkU6K0FFUy0xMjgtQ0NNOitTSEEyNTY6K0FFQUQ6K1NJR04tRUNEU0EtU0VDUDUyMVIxLVNIQTUxMjorR1JPVVAtWDI1NTE5OitWRVJTLVRMUzEuMzolTk9fVElDS0VUUyIgXAotICAgICAgICAgIiRQX0NMSSBjYV9maWxlPWRhdGFfZmlsZXMvdGVzdC1jYTIuY3J0IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0xMjgtQ0NNLVNIQTI1NiBzaWdfYWxncz1lY2RzYV9zZWNwNTIxcjFfc2hhNTEyIGdyb3Vwcz14MjU1MTkiIFwKKyAgICAgICAgICIkR19ORVhUX1NSVl9OT19DRVJUIC0taHR0cCAtLWRpc2FibGUtY2xpZW50LWNlcnQgLS1kZWJ1Zz00IC0teDUwOWNlcnRmaWxlICREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDUyMXIxLmNydCAtLXg1MDlrZXlmaWxlICREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDUyMXIxLmtleSAtLXByaW9yaXR5PU5PTkU6K0FFUy0xMjgtQ0NNOitTSEEyNTY6K0FFQUQ6K1NJR04tRUNEU0EtU0VDUDUyMVIxLVNIQTUxMjorR1JPVVAtWDI1NTE5OitWRVJTLVRMUzEuMzolTk9fVElDS0VUUyIgXAorICAgICAgICAgIiRQX0NMSSBjYV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvdGVzdC1jYTIuY3J0IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0xMjgtQ0NNLVNIQTI1NiBzaWdfYWxncz1lY2RzYV9zZWNwNTIxcjFfc2hhNTEyIGdyb3Vwcz14MjU1MTkiIFwKICAgICAgICAgIDAgXAogICAgICAgICAgLWMgIkhUVFAvMS4wIDIwMCBPSyIgXAogICAgICAgICAgLWMgIlByb3RvY29sIGlzIFRMU3YxLjMiIFwKQEAgLTg0MjYsOCArODQyOCw4IEBACiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBNQkVEVExTX1g1MDlfUlNBU1NBX1BTU19TVVBQT1JUCiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBQU0FfV0FOVF9BTEdfRUNESAogcnVuX3Rlc3QgIlRMUyAxLjMgbS0+RzogQUVTXzEyOF9DQ01fU0hBMjU2LHgyNTUxOSxyc2FfcHNzX3JzYWVfc2hhMjU2IiBcCi0gICAgICAgICAiJEdfTkVYVF9TUlZfTk9fQ0VSVCAtLWh0dHAgLS1kaXNhYmxlLWNsaWVudC1jZXJ0IC0tZGVidWc9NCAtLXg1MDljZXJ0ZmlsZSBkYXRhX2ZpbGVzL3NlcnZlcjItc2hhMjU2LmNydCAtLXg1MDlrZXlmaWxlIGRhdGFfZmlsZXMvc2VydmVyMi5rZXkgLS1wcmlvcml0eT1OT05FOitBRVMtMTI4LUNDTTorU0hBMjU2OitBRUFEOitTSUdOLVJTQS1QU1MtUlNBRS1TSEEyNTY6K0dST1VQLVgyNTUxOTorVkVSUy1UTFMxLjM6JU5PX1RJQ0tFVFMiIFwKLSAgICAgICAgICIkUF9DTEkgY2FfZmlsZT1kYXRhX2ZpbGVzL3Rlc3QtY2FfY2F0MTIuY3J0IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0xMjgtQ0NNLVNIQTI1NiBzaWdfYWxncz1yc2FfcHNzX3JzYWVfc2hhMjU2IGdyb3Vwcz14MjU1MTkiIFwKKyAgICAgICAgICIkR19ORVhUX1NSVl9OT19DRVJUIC0taHR0cCAtLWRpc2FibGUtY2xpZW50LWNlcnQgLS1kZWJ1Zz00IC0teDUwOWNlcnRmaWxlICREQVRBX0ZJTEVTX1BBVEgvc2VydmVyMi1zaGEyNTYuY3J0IC0teDUwOWtleWZpbGUgJERBVEFfRklMRVNfUEFUSC9zZXJ2ZXIyLmtleSAtLXByaW9yaXR5PU5PTkU6K0FFUy0xMjgtQ0NNOitTSEEyNTY6K0FFQUQ6K1NJR04tUlNBLVBTUy1SU0FFLVNIQTI1NjorR1JPVVAtWDI1NTE5OitWRVJTLVRMUzEuMzolTk9fVElDS0VUUyIgXAorICAgICAgICAgIiRQX0NMSSBjYV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvdGVzdC1jYV9jYXQxMi5jcnQgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTEyOC1DQ00tU0hBMjU2IHNpZ19hbGdzPXJzYV9wc3NfcnNhZV9zaGEyNTYgZ3JvdXBzPXgyNTUxOSIgXAogICAgICAgICAgMCBcCiAgICAgICAgICAtYyAiSFRUUC8xLjAgMjAwIE9LIiBcCiAgICAgICAgICAtYyAiUHJvdG9jb2wgaXMgVExTdjEuMyIgXApAQCAtODQ0Niw4ICs4NDQ4LDggQEAKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIE1CRURUTFNfU1NMX1RMUzFfM19DT01QQVRJQklMSVRZX01PREUKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIFBTQV9XQU5UX0FMR19FQ0RICiBydW5fdGVzdCAiVExTIDEuMyBtLT5HOiBBRVNfMTI4X0NDTV9TSEEyNTYseDQ0OCxlY2RzYV9zZWNwMjU2cjFfc2hhMjU2IiBcCi0gICAgICAgICAiJEdfTkVYVF9TUlZfTk9fQ0VSVCAtLWh0dHAgLS1kaXNhYmxlLWNsaWVudC1jZXJ0IC0tZGVidWc9NCAtLXg1MDljZXJ0ZmlsZSBkYXRhX2ZpbGVzL2VjZHNhX3NlY3AyNTZyMS5jcnQgLS14NTA5a2V5ZmlsZSBkYXRhX2ZpbGVzL2VjZHNhX3NlY3AyNTZyMS5rZXkgLS1wcmlvcml0eT1OT05FOitBRVMtMTI4LUNDTTorU0hBMjU2OitBRUFEOitTSUdOLUVDRFNBLVNFQ1AyNTZSMS1TSEEyNTY6K0dST1VQLVg0NDg6K1ZFUlMtVExTMS4zOiVOT19USUNLRVRTIiBcCi0gICAgICAgICAiJFBfQ0xJIGNhX2ZpbGU9ZGF0YV9maWxlcy90ZXN0LWNhMi5jcnQgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTEyOC1DQ00tU0hBMjU2IHNpZ19hbGdzPWVjZHNhX3NlY3AyNTZyMV9zaGEyNTYgZ3JvdXBzPXg0NDgiIFwKKyAgICAgICAgICIkR19ORVhUX1NSVl9OT19DRVJUIC0taHR0cCAtLWRpc2FibGUtY2xpZW50LWNlcnQgLS1kZWJ1Zz00IC0teDUwOWNlcnRmaWxlICREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDI1NnIxLmNydCAtLXg1MDlrZXlmaWxlICREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDI1NnIxLmtleSAtLXByaW9yaXR5PU5PTkU6K0FFUy0xMjgtQ0NNOitTSEEyNTY6K0FFQUQ6K1NJR04tRUNEU0EtU0VDUDI1NlIxLVNIQTI1NjorR1JPVVAtWDQ0ODorVkVSUy1UTFMxLjM6JU5PX1RJQ0tFVFMiIFwKKyAgICAgICAgICIkUF9DTEkgY2FfZmlsZT0kREFUQV9GSUxFU19QQVRIL3Rlc3QtY2EyLmNydCBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMTI4LUNDTS1TSEEyNTYgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDI1NnIxX3NoYTI1NiBncm91cHM9eDQ0OCIgXAogICAgICAgICAgMCBcCiAgICAgICAgICAtYyAiSFRUUC8xLjAgMjAwIE9LIiBcCiAgICAgICAgICAtYyAiUHJvdG9jb2wgaXMgVExTdjEuMyIgXApAQCAtODQ2Niw4ICs4NDY4LDggQEAKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIE1CRURUTFNfU1NMX1RMUzFfM19DT01QQVRJQklMSVRZX01PREUKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIFBTQV9XQU5UX0FMR19FQ0RICiBydW5fdGVzdCAiVExTIDEuMyBtLT5HOiBBRVNfMTI4X0NDTV9TSEEyNTYseDQ0OCxlY2RzYV9zZWNwMzg0cjFfc2hhMzg0IiBcCi0gICAgICAgICAiJEdfTkVYVF9TUlZfTk9fQ0VSVCAtLWh0dHAgLS1kaXNhYmxlLWNsaWVudC1jZXJ0IC0tZGVidWc9NCAtLXg1MDljZXJ0ZmlsZSBkYXRhX2ZpbGVzL2VjZHNhX3NlY3AzODRyMS5jcnQgLS14NTA5a2V5ZmlsZSBkYXRhX2ZpbGVzL2VjZHNhX3NlY3AzODRyMS5rZXkgLS1wcmlvcml0eT1OT05FOitBRVMtMTI4LUNDTTorU0hBMjU2OitBRUFEOitTSUdOLUVDRFNBLVNFQ1AzODRSMS1TSEEzODQ6K0dST1VQLVg0NDg6K1ZFUlMtVExTMS4zOiVOT19USUNLRVRTIiBcCi0gICAgICAgICAiJFBfQ0xJIGNhX2ZpbGU9ZGF0YV9maWxlcy90ZXN0LWNhMi5jcnQgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTEyOC1DQ00tU0hBMjU2IHNpZ19hbGdzPWVjZHNhX3NlY3AzODRyMV9zaGEzODQgZ3JvdXBzPXg0NDgiIFwKKyAgICAgICAgICIkR19ORVhUX1NSVl9OT19DRVJUIC0taHR0cCAtLWRpc2FibGUtY2xpZW50LWNlcnQgLS1kZWJ1Zz00IC0teDUwOWNlcnRmaWxlICREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDM4NHIxLmNydCAtLXg1MDlrZXlmaWxlICREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDM4NHIxLmtleSAtLXByaW9yaXR5PU5PTkU6K0FFUy0xMjgtQ0NNOitTSEEyNTY6K0FFQUQ6K1NJR04tRUNEU0EtU0VDUDM4NFIxLVNIQTM4NDorR1JPVVAtWDQ0ODorVkVSUy1UTFMxLjM6JU5PX1RJQ0tFVFMiIFwKKyAgICAgICAgICIkUF9DTEkgY2FfZmlsZT0kREFUQV9GSUxFU19QQVRIL3Rlc3QtY2EyLmNydCBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMTI4LUNDTS1TSEEyNTYgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDM4NHIxX3NoYTM4NCBncm91cHM9eDQ0OCIgXAogICAgICAgICAgMCBcCiAgICAgICAgICAtYyAiSFRUUC8xLjAgMjAwIE9LIiBcCiAgICAgICAgICAtYyAiUHJvdG9jb2wgaXMgVExTdjEuMyIgXApAQCAtODQ4Niw4ICs4NDg4LDggQEAKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIE1CRURUTFNfU1NMX1RMUzFfM19DT01QQVRJQklMSVRZX01PREUKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIFBTQV9XQU5UX0FMR19FQ0RICiBydW5fdGVzdCAiVExTIDEuMyBtLT5HOiBBRVNfMTI4X0NDTV9TSEEyNTYseDQ0OCxlY2RzYV9zZWNwNTIxcjFfc2hhNTEyIiBcCi0gICAgICAgICAiJEdfTkVYVF9TUlZfTk9fQ0VSVCAtLWh0dHAgLS1kaXNhYmxlLWNsaWVudC1jZXJ0IC0tZGVidWc9NCAtLXg1MDljZXJ0ZmlsZSBkYXRhX2ZpbGVzL2VjZHNhX3NlY3A1MjFyMS5jcnQgLS14NTA5a2V5ZmlsZSBkYXRhX2ZpbGVzL2VjZHNhX3NlY3A1MjFyMS5rZXkgLS1wcmlvcml0eT1OT05FOitBRVMtMTI4LUNDTTorU0hBMjU2OitBRUFEOitTSUdOLUVDRFNBLVNFQ1A1MjFSMS1TSEE1MTI6K0dST1VQLVg0NDg6K1ZFUlMtVExTMS4zOiVOT19USUNLRVRTIiBcCi0gICAgICAgICAiJFBfQ0xJIGNhX2ZpbGU9ZGF0YV9maWxlcy90ZXN0LWNhMi5jcnQgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTEyOC1DQ00tU0hBMjU2IHNpZ19hbGdzPWVjZHNhX3NlY3A1MjFyMV9zaGE1MTIgZ3JvdXBzPXg0NDgiIFwKKyAgICAgICAgICIkR19ORVhUX1NSVl9OT19DRVJUIC0taHR0cCAtLWRpc2FibGUtY2xpZW50LWNlcnQgLS1kZWJ1Zz00IC0teDUwOWNlcnRmaWxlICREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDUyMXIxLmNydCAtLXg1MDlrZXlmaWxlICREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDUyMXIxLmtleSAtLXByaW9yaXR5PU5PTkU6K0FFUy0xMjgtQ0NNOitTSEEyNTY6K0FFQUQ6K1NJR04tRUNEU0EtU0VDUDUyMVIxLVNIQTUxMjorR1JPVVAtWDQ0ODorVkVSUy1UTFMxLjM6JU5PX1RJQ0tFVFMiIFwKKyAgICAgICAgICIkUF9DTEkgY2FfZmlsZT0kREFUQV9GSUxFU19QQVRIL3Rlc3QtY2EyLmNydCBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMTI4LUNDTS1TSEEyNTYgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDUyMXIxX3NoYTUxMiBncm91cHM9eDQ0OCIgXAogICAgICAgICAgMCBcCiAgICAgICAgICAtYyAiSFRUUC8xLjAgMjAwIE9LIiBcCiAgICAgICAgICAtYyAiUHJvdG9jb2wgaXMgVExTdjEuMyIgXApAQCAtODUwNyw4ICs4NTA5LDggQEAKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIE1CRURUTFNfWDUwOV9SU0FTU0FfUFNTX1NVUFBPUlQKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIFBTQV9XQU5UX0FMR19FQ0RICiBydW5fdGVzdCAiVExTIDEuMyBtLT5HOiBBRVNfMTI4X0NDTV9TSEEyNTYseDQ0OCxyc2FfcHNzX3JzYWVfc2hhMjU2IiBcCi0gICAgICAgICAiJEdfTkVYVF9TUlZfTk9fQ0VSVCAtLWh0dHAgLS1kaXNhYmxlLWNsaWVudC1jZXJ0IC0tZGVidWc9NCAtLXg1MDljZXJ0ZmlsZSBkYXRhX2ZpbGVzL3NlcnZlcjItc2hhMjU2LmNydCAtLXg1MDlrZXlmaWxlIGRhdGFfZmlsZXMvc2VydmVyMi5rZXkgLS1wcmlvcml0eT1OT05FOitBRVMtMTI4LUNDTTorU0hBMjU2OitBRUFEOitTSUdOLVJTQS1QU1MtUlNBRS1TSEEyNTY6K0dST1VQLVg0NDg6K1ZFUlMtVExTMS4zOiVOT19USUNLRVRTIiBcCi0gICAgICAgICAiJFBfQ0xJIGNhX2ZpbGU9ZGF0YV9maWxlcy90ZXN0LWNhX2NhdDEyLmNydCBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMTI4LUNDTS1TSEEyNTYgc2lnX2FsZ3M9cnNhX3Bzc19yc2FlX3NoYTI1NiBncm91cHM9eDQ0OCIgXAorICAgICAgICAgIiRHX05FWFRfU1JWX05PX0NFUlQgLS1odHRwIC0tZGlzYWJsZS1jbGllbnQtY2VydCAtLWRlYnVnPTQgLS14NTA5Y2VydGZpbGUgJERBVEFfRklMRVNfUEFUSC9zZXJ2ZXIyLXNoYTI1Ni5jcnQgLS14NTA5a2V5ZmlsZSAkREFUQV9GSUxFU19QQVRIL3NlcnZlcjIua2V5IC0tcHJpb3JpdHk9Tk9ORTorQUVTLTEyOC1DQ006K1NIQTI1NjorQUVBRDorU0lHTi1SU0EtUFNTLVJTQUUtU0hBMjU2OitHUk9VUC1YNDQ4OitWRVJTLVRMUzEuMzolTk9fVElDS0VUUyIgXAorICAgICAgICAgIiRQX0NMSSBjYV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvdGVzdC1jYV9jYXQxMi5jcnQgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTEyOC1DQ00tU0hBMjU2IHNpZ19hbGdzPXJzYV9wc3NfcnNhZV9zaGEyNTYgZ3JvdXBzPXg0NDgiIFwKICAgICAgICAgIDAgXAogICAgICAgICAgLWMgIkhUVFAvMS4wIDIwMCBPSyIgXAogICAgICAgICAgLWMgIlByb3RvY29sIGlzIFRMU3YxLjMiIFwKQEAgLTg1MjgsOCArODUzMCw4IEBACiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBQU0FfV0FOVF9BTEdfRkZESAogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgUFNBX1dBTlRfREhfUkZDNzkxOV8yMDQ4CiBydW5fdGVzdCAiVExTIDEuMyBtLT5HOiBBRVNfMTI4X0NDTV9TSEEyNTYsZmZkaGUyMDQ4LGVjZHNhX3NlY3AyNTZyMV9zaGEyNTYiIFwKLSAgICAgICAgICIkR19ORVhUX1NSVl9OT19DRVJUIC0taHR0cCAtLWRpc2FibGUtY2xpZW50LWNlcnQgLS1kZWJ1Zz00IC0teDUwOWNlcnRmaWxlIGRhdGFfZmlsZXMvZWNkc2Ffc2VjcDI1NnIxLmNydCAtLXg1MDlrZXlmaWxlIGRhdGFfZmlsZXMvZWNkc2Ffc2VjcDI1NnIxLmtleSAtLXByaW9yaXR5PU5PTkU6K0FFUy0xMjgtQ0NNOitTSEEyNTY6K0FFQUQ6K1NJR04tRUNEU0EtU0VDUDI1NlIxLVNIQTI1NjorR1JPVVAtRkZESEUyMDQ4OitWRVJTLVRMUzEuMzolTk9fVElDS0VUUyIgXAotICAgICAgICAgIiRQX0NMSSBjYV9maWxlPWRhdGFfZmlsZXMvdGVzdC1jYTIuY3J0IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0xMjgtQ0NNLVNIQTI1NiBzaWdfYWxncz1lY2RzYV9zZWNwMjU2cjFfc2hhMjU2IGdyb3Vwcz1mZmRoZTIwNDgiIFwKKyAgICAgICAgICIkR19ORVhUX1NSVl9OT19DRVJUIC0taHR0cCAtLWRpc2FibGUtY2xpZW50LWNlcnQgLS1kZWJ1Zz00IC0teDUwOWNlcnRmaWxlICREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDI1NnIxLmNydCAtLXg1MDlrZXlmaWxlICREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDI1NnIxLmtleSAtLXByaW9yaXR5PU5PTkU6K0FFUy0xMjgtQ0NNOitTSEEyNTY6K0FFQUQ6K1NJR04tRUNEU0EtU0VDUDI1NlIxLVNIQTI1NjorR1JPVVAtRkZESEUyMDQ4OitWRVJTLVRMUzEuMzolTk9fVElDS0VUUyIgXAorICAgICAgICAgIiRQX0NMSSBjYV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvdGVzdC1jYTIuY3J0IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0xMjgtQ0NNLVNIQTI1NiBzaWdfYWxncz1lY2RzYV9zZWNwMjU2cjFfc2hhMjU2IGdyb3Vwcz1mZmRoZTIwNDgiIFwKICAgICAgICAgIDAgXAogICAgICAgICAgLWMgIkhUVFAvMS4wIDIwMCBPSyIgXAogICAgICAgICAgLWMgIlByb3RvY29sIGlzIFRMU3YxLjMiIFwKQEAgLTg1NDksOCArODU1MSw4IEBACiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBQU0FfV0FOVF9BTEdfRkZESAogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgUFNBX1dBTlRfREhfUkZDNzkxOV8yMDQ4CiBydW5fdGVzdCAiVExTIDEuMyBtLT5HOiBBRVNfMTI4X0NDTV9TSEEyNTYsZmZkaGUyMDQ4LGVjZHNhX3NlY3AzODRyMV9zaGEzODQiIFwKLSAgICAgICAgICIkR19ORVhUX1NSVl9OT19DRVJUIC0taHR0cCAtLWRpc2FibGUtY2xpZW50LWNlcnQgLS1kZWJ1Zz00IC0teDUwOWNlcnRmaWxlIGRhdGFfZmlsZXMvZWNkc2Ffc2VjcDM4NHIxLmNydCAtLXg1MDlrZXlmaWxlIGRhdGFfZmlsZXMvZWNkc2Ffc2VjcDM4NHIxLmtleSAtLXByaW9yaXR5PU5PTkU6K0FFUy0xMjgtQ0NNOitTSEEyNTY6K0FFQUQ6K1NJR04tRUNEU0EtU0VDUDM4NFIxLVNIQTM4NDorR1JPVVAtRkZESEUyMDQ4OitWRVJTLVRMUzEuMzolTk9fVElDS0VUUyIgXAotICAgICAgICAgIiRQX0NMSSBjYV9maWxlPWRhdGFfZmlsZXMvdGVzdC1jYTIuY3J0IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0xMjgtQ0NNLVNIQTI1NiBzaWdfYWxncz1lY2RzYV9zZWNwMzg0cjFfc2hhMzg0IGdyb3Vwcz1mZmRoZTIwNDgiIFwKKyAgICAgICAgICIkR19ORVhUX1NSVl9OT19DRVJUIC0taHR0cCAtLWRpc2FibGUtY2xpZW50LWNlcnQgLS1kZWJ1Zz00IC0teDUwOWNlcnRmaWxlICREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDM4NHIxLmNydCAtLXg1MDlrZXlmaWxlICREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDM4NHIxLmtleSAtLXByaW9yaXR5PU5PTkU6K0FFUy0xMjgtQ0NNOitTSEEyNTY6K0FFQUQ6K1NJR04tRUNEU0EtU0VDUDM4NFIxLVNIQTM4NDorR1JPVVAtRkZESEUyMDQ4OitWRVJTLVRMUzEuMzolTk9fVElDS0VUUyIgXAorICAgICAgICAgIiRQX0NMSSBjYV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvdGVzdC1jYTIuY3J0IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0xMjgtQ0NNLVNIQTI1NiBzaWdfYWxncz1lY2RzYV9zZWNwMzg0cjFfc2hhMzg0IGdyb3Vwcz1mZmRoZTIwNDgiIFwKICAgICAgICAgIDAgXAogICAgICAgICAgLWMgIkhUVFAvMS4wIDIwMCBPSyIgXAogICAgICAgICAgLWMgIlByb3RvY29sIGlzIFRMU3YxLjMiIFwKQEAgLTg1NzAsOCArODU3Miw4IEBACiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBQU0FfV0FOVF9BTEdfRkZESAogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgUFNBX1dBTlRfREhfUkZDNzkxOV8yMDQ4CiBydW5fdGVzdCAiVExTIDEuMyBtLT5HOiBBRVNfMTI4X0NDTV9TSEEyNTYsZmZkaGUyMDQ4LGVjZHNhX3NlY3A1MjFyMV9zaGE1MTIiIFwKLSAgICAgICAgICIkR19ORVhUX1NSVl9OT19DRVJUIC0taHR0cCAtLWRpc2FibGUtY2xpZW50LWNlcnQgLS1kZWJ1Zz00IC0teDUwOWNlcnRmaWxlIGRhdGFfZmlsZXMvZWNkc2Ffc2VjcDUyMXIxLmNydCAtLXg1MDlrZXlmaWxlIGRhdGFfZmlsZXMvZWNkc2Ffc2VjcDUyMXIxLmtleSAtLXByaW9yaXR5PU5PTkU6K0FFUy0xMjgtQ0NNOitTSEEyNTY6K0FFQUQ6K1NJR04tRUNEU0EtU0VDUDUyMVIxLVNIQTUxMjorR1JPVVAtRkZESEUyMDQ4OitWRVJTLVRMUzEuMzolTk9fVElDS0VUUyIgXAotICAgICAgICAgIiRQX0NMSSBjYV9maWxlPWRhdGFfZmlsZXMvdGVzdC1jYTIuY3J0IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0xMjgtQ0NNLVNIQTI1NiBzaWdfYWxncz1lY2RzYV9zZWNwNTIxcjFfc2hhNTEyIGdyb3Vwcz1mZmRoZTIwNDgiIFwKKyAgICAgICAgICIkR19ORVhUX1NSVl9OT19DRVJUIC0taHR0cCAtLWRpc2FibGUtY2xpZW50LWNlcnQgLS1kZWJ1Zz00IC0teDUwOWNlcnRmaWxlICREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDUyMXIxLmNydCAtLXg1MDlrZXlmaWxlICREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDUyMXIxLmtleSAtLXByaW9yaXR5PU5PTkU6K0FFUy0xMjgtQ0NNOitTSEEyNTY6K0FFQUQ6K1NJR04tRUNEU0EtU0VDUDUyMVIxLVNIQTUxMjorR1JPVVAtRkZESEUyMDQ4OitWRVJTLVRMUzEuMzolTk9fVElDS0VUUyIgXAorICAgICAgICAgIiRQX0NMSSBjYV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvdGVzdC1jYTIuY3J0IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0xMjgtQ0NNLVNIQTI1NiBzaWdfYWxncz1lY2RzYV9zZWNwNTIxcjFfc2hhNTEyIGdyb3Vwcz1mZmRoZTIwNDgiIFwKICAgICAgICAgIDAgXAogICAgICAgICAgLWMgIkhUVFAvMS4wIDIwMCBPSyIgXAogICAgICAgICAgLWMgIlByb3RvY29sIGlzIFRMU3YxLjMiIFwKQEAgLTg1OTIsOCArODU5NCw4IEBACiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBQU0FfV0FOVF9BTEdfRkZESAogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgUFNBX1dBTlRfREhfUkZDNzkxOV8yMDQ4CiBydW5fdGVzdCAiVExTIDEuMyBtLT5HOiBBRVNfMTI4X0NDTV9TSEEyNTYsZmZkaGUyMDQ4LHJzYV9wc3NfcnNhZV9zaGEyNTYiIFwKLSAgICAgICAgICIkR19ORVhUX1NSVl9OT19DRVJUIC0taHR0cCAtLWRpc2FibGUtY2xpZW50LWNlcnQgLS1kZWJ1Zz00IC0teDUwOWNlcnRmaWxlIGRhdGFfZmlsZXMvc2VydmVyMi1zaGEyNTYuY3J0IC0teDUwOWtleWZpbGUgZGF0YV9maWxlcy9zZXJ2ZXIyLmtleSAtLXByaW9yaXR5PU5PTkU6K0FFUy0xMjgtQ0NNOitTSEEyNTY6K0FFQUQ6K1NJR04tUlNBLVBTUy1SU0FFLVNIQTI1NjorR1JPVVAtRkZESEUyMDQ4OitWRVJTLVRMUzEuMzolTk9fVElDS0VUUyIgXAotICAgICAgICAgIiRQX0NMSSBjYV9maWxlPWRhdGFfZmlsZXMvdGVzdC1jYV9jYXQxMi5jcnQgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTEyOC1DQ00tU0hBMjU2IHNpZ19hbGdzPXJzYV9wc3NfcnNhZV9zaGEyNTYgZ3JvdXBzPWZmZGhlMjA0OCIgXAorICAgICAgICAgIiRHX05FWFRfU1JWX05PX0NFUlQgLS1odHRwIC0tZGlzYWJsZS1jbGllbnQtY2VydCAtLWRlYnVnPTQgLS14NTA5Y2VydGZpbGUgJERBVEFfRklMRVNfUEFUSC9zZXJ2ZXIyLXNoYTI1Ni5jcnQgLS14NTA5a2V5ZmlsZSAkREFUQV9GSUxFU19QQVRIL3NlcnZlcjIua2V5IC0tcHJpb3JpdHk9Tk9ORTorQUVTLTEyOC1DQ006K1NIQTI1NjorQUVBRDorU0lHTi1SU0EtUFNTLVJTQUUtU0hBMjU2OitHUk9VUC1GRkRIRTIwNDg6K1ZFUlMtVExTMS4zOiVOT19USUNLRVRTIiBcCisgICAgICAgICAiJFBfQ0xJIGNhX2ZpbGU9JERBVEFfRklMRVNfUEFUSC90ZXN0LWNhX2NhdDEyLmNydCBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMTI4LUNDTS1TSEEyNTYgc2lnX2FsZ3M9cnNhX3Bzc19yc2FlX3NoYTI1NiBncm91cHM9ZmZkaGUyMDQ4IiBcCiAgICAgICAgICAwIFwKICAgICAgICAgIC1jICJIVFRQLzEuMCAyMDAgT0siIFwKICAgICAgICAgIC1jICJQcm90b2NvbCBpcyBUTFN2MS4zIiBcCkBAIC04NjEyLDggKzg2MTQsOCBAQAogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgTUJFRFRMU19TU0xfVExTMV8zX0NPTVBBVElCSUxJVFlfTU9ERQogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgUFNBX1dBTlRfQUxHX0VDREgKIHJ1bl90ZXN0ICJUTFMgMS4zIG0tPkc6IEFFU18xMjhfQ0NNXzhfU0hBMjU2LHNlY3AyNTZyMSxlY2RzYV9zZWNwMjU2cjFfc2hhMjU2IiBcCi0gICAgICAgICAiJEdfTkVYVF9TUlZfTk9fQ0VSVCAtLWh0dHAgLS1kaXNhYmxlLWNsaWVudC1jZXJ0IC0tZGVidWc9NCAtLXg1MDljZXJ0ZmlsZSBkYXRhX2ZpbGVzL2VjZHNhX3NlY3AyNTZyMS5jcnQgLS14NTA5a2V5ZmlsZSBkYXRhX2ZpbGVzL2VjZHNhX3NlY3AyNTZyMS5rZXkgLS1wcmlvcml0eT1OT05FOitBRVMtMTI4LUNDTS04OitTSEEyNTY6K0FFQUQ6K1NJR04tRUNEU0EtU0VDUDI1NlIxLVNIQTI1NjorR1JPVVAtU0VDUDI1NlIxOitWRVJTLVRMUzEuMzolTk9fVElDS0VUUyIgXAotICAgICAgICAgIiRQX0NMSSBjYV9maWxlPWRhdGFfZmlsZXMvdGVzdC1jYTIuY3J0IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0xMjgtQ0NNLTgtU0hBMjU2IHNpZ19hbGdzPWVjZHNhX3NlY3AyNTZyMV9zaGEyNTYgZ3JvdXBzPXNlY3AyNTZyMSIgXAorICAgICAgICAgIiRHX05FWFRfU1JWX05PX0NFUlQgLS1odHRwIC0tZGlzYWJsZS1jbGllbnQtY2VydCAtLWRlYnVnPTQgLS14NTA5Y2VydGZpbGUgJERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwMjU2cjEuY3J0IC0teDUwOWtleWZpbGUgJERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwMjU2cjEua2V5IC0tcHJpb3JpdHk9Tk9ORTorQUVTLTEyOC1DQ00tODorU0hBMjU2OitBRUFEOitTSUdOLUVDRFNBLVNFQ1AyNTZSMS1TSEEyNTY6K0dST1VQLVNFQ1AyNTZSMTorVkVSUy1UTFMxLjM6JU5PX1RJQ0tFVFMiIFwKKyAgICAgICAgICIkUF9DTEkgY2FfZmlsZT0kREFUQV9GSUxFU19QQVRIL3Rlc3QtY2EyLmNydCBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMTI4LUNDTS04LVNIQTI1NiBzaWdfYWxncz1lY2RzYV9zZWNwMjU2cjFfc2hhMjU2IGdyb3Vwcz1zZWNwMjU2cjEiIFwKICAgICAgICAgIDAgXAogICAgICAgICAgLWMgIkhUVFAvMS4wIDIwMCBPSyIgXAogICAgICAgICAgLWMgIlByb3RvY29sIGlzIFRMU3YxLjMiIFwKQEAgLTg2MzIsOCArODYzNCw4IEBACiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBNQkVEVExTX1NTTF9UTFMxXzNfQ09NUEFUSUJJTElUWV9NT0RFCiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBQU0FfV0FOVF9BTEdfRUNESAogcnVuX3Rlc3QgIlRMUyAxLjMgbS0+RzogQUVTXzEyOF9DQ01fOF9TSEEyNTYsc2VjcDI1NnIxLGVjZHNhX3NlY3AzODRyMV9zaGEzODQiIFwKLSAgICAgICAgICIkR19ORVhUX1NSVl9OT19DRVJUIC0taHR0cCAtLWRpc2FibGUtY2xpZW50LWNlcnQgLS1kZWJ1Zz00IC0teDUwOWNlcnRmaWxlIGRhdGFfZmlsZXMvZWNkc2Ffc2VjcDM4NHIxLmNydCAtLXg1MDlrZXlmaWxlIGRhdGFfZmlsZXMvZWNkc2Ffc2VjcDM4NHIxLmtleSAtLXByaW9yaXR5PU5PTkU6K0FFUy0xMjgtQ0NNLTg6K1NIQTI1NjorQUVBRDorU0lHTi1FQ0RTQS1TRUNQMzg0UjEtU0hBMzg0OitHUk9VUC1TRUNQMjU2UjE6K1ZFUlMtVExTMS4zOiVOT19USUNLRVRTIiBcCi0gICAgICAgICAiJFBfQ0xJIGNhX2ZpbGU9ZGF0YV9maWxlcy90ZXN0LWNhMi5jcnQgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTEyOC1DQ00tOC1TSEEyNTYgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDM4NHIxX3NoYTM4NCBncm91cHM9c2VjcDI1NnIxIiBcCisgICAgICAgICAiJEdfTkVYVF9TUlZfTk9fQ0VSVCAtLWh0dHAgLS1kaXNhYmxlLWNsaWVudC1jZXJ0IC0tZGVidWc9NCAtLXg1MDljZXJ0ZmlsZSAkREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3AzODRyMS5jcnQgLS14NTA5a2V5ZmlsZSAkREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3AzODRyMS5rZXkgLS1wcmlvcml0eT1OT05FOitBRVMtMTI4LUNDTS04OitTSEEyNTY6K0FFQUQ6K1NJR04tRUNEU0EtU0VDUDM4NFIxLVNIQTM4NDorR1JPVVAtU0VDUDI1NlIxOitWRVJTLVRMUzEuMzolTk9fVElDS0VUUyIgXAorICAgICAgICAgIiRQX0NMSSBjYV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvdGVzdC1jYTIuY3J0IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0xMjgtQ0NNLTgtU0hBMjU2IHNpZ19hbGdzPWVjZHNhX3NlY3AzODRyMV9zaGEzODQgZ3JvdXBzPXNlY3AyNTZyMSIgXAogICAgICAgICAgMCBcCiAgICAgICAgICAtYyAiSFRUUC8xLjAgMjAwIE9LIiBcCiAgICAgICAgICAtYyAiUHJvdG9jb2wgaXMgVExTdjEuMyIgXApAQCAtODY1Miw4ICs4NjU0LDggQEAKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIE1CRURUTFNfU1NMX1RMUzFfM19DT01QQVRJQklMSVRZX01PREUKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIFBTQV9XQU5UX0FMR19FQ0RICiBydW5fdGVzdCAiVExTIDEuMyBtLT5HOiBBRVNfMTI4X0NDTV84X1NIQTI1NixzZWNwMjU2cjEsZWNkc2Ffc2VjcDUyMXIxX3NoYTUxMiIgXAotICAgICAgICAgIiRHX05FWFRfU1JWX05PX0NFUlQgLS1odHRwIC0tZGlzYWJsZS1jbGllbnQtY2VydCAtLWRlYnVnPTQgLS14NTA5Y2VydGZpbGUgZGF0YV9maWxlcy9lY2RzYV9zZWNwNTIxcjEuY3J0IC0teDUwOWtleWZpbGUgZGF0YV9maWxlcy9lY2RzYV9zZWNwNTIxcjEua2V5IC0tcHJpb3JpdHk9Tk9ORTorQUVTLTEyOC1DQ00tODorU0hBMjU2OitBRUFEOitTSUdOLUVDRFNBLVNFQ1A1MjFSMS1TSEE1MTI6K0dST1VQLVNFQ1AyNTZSMTorVkVSUy1UTFMxLjM6JU5PX1RJQ0tFVFMiIFwKLSAgICAgICAgICIkUF9DTEkgY2FfZmlsZT1kYXRhX2ZpbGVzL3Rlc3QtY2EyLmNydCBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMTI4LUNDTS04LVNIQTI1NiBzaWdfYWxncz1lY2RzYV9zZWNwNTIxcjFfc2hhNTEyIGdyb3Vwcz1zZWNwMjU2cjEiIFwKKyAgICAgICAgICIkR19ORVhUX1NSVl9OT19DRVJUIC0taHR0cCAtLWRpc2FibGUtY2xpZW50LWNlcnQgLS1kZWJ1Zz00IC0teDUwOWNlcnRmaWxlICREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDUyMXIxLmNydCAtLXg1MDlrZXlmaWxlICREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDUyMXIxLmtleSAtLXByaW9yaXR5PU5PTkU6K0FFUy0xMjgtQ0NNLTg6K1NIQTI1NjorQUVBRDorU0lHTi1FQ0RTQS1TRUNQNTIxUjEtU0hBNTEyOitHUk9VUC1TRUNQMjU2UjE6K1ZFUlMtVExTMS4zOiVOT19USUNLRVRTIiBcCisgICAgICAgICAiJFBfQ0xJIGNhX2ZpbGU9JERBVEFfRklMRVNfUEFUSC90ZXN0LWNhMi5jcnQgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTEyOC1DQ00tOC1TSEEyNTYgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDUyMXIxX3NoYTUxMiBncm91cHM9c2VjcDI1NnIxIiBcCiAgICAgICAgICAwIFwKICAgICAgICAgIC1jICJIVFRQLzEuMCAyMDAgT0siIFwKICAgICAgICAgIC1jICJQcm90b2NvbCBpcyBUTFN2MS4zIiBcCkBAIC04NjczLDggKzg2NzUsOCBAQAogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgTUJFRFRMU19YNTA5X1JTQVNTQV9QU1NfU1VQUE9SVAogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgUFNBX1dBTlRfQUxHX0VDREgKIHJ1bl90ZXN0ICJUTFMgMS4zIG0tPkc6IEFFU18xMjhfQ0NNXzhfU0hBMjU2LHNlY3AyNTZyMSxyc2FfcHNzX3JzYWVfc2hhMjU2IiBcCi0gICAgICAgICAiJEdfTkVYVF9TUlZfTk9fQ0VSVCAtLWh0dHAgLS1kaXNhYmxlLWNsaWVudC1jZXJ0IC0tZGVidWc9NCAtLXg1MDljZXJ0ZmlsZSBkYXRhX2ZpbGVzL3NlcnZlcjItc2hhMjU2LmNydCAtLXg1MDlrZXlmaWxlIGRhdGFfZmlsZXMvc2VydmVyMi5rZXkgLS1wcmlvcml0eT1OT05FOitBRVMtMTI4LUNDTS04OitTSEEyNTY6K0FFQUQ6K1NJR04tUlNBLVBTUy1SU0FFLVNIQTI1NjorR1JPVVAtU0VDUDI1NlIxOitWRVJTLVRMUzEuMzolTk9fVElDS0VUUyIgXAotICAgICAgICAgIiRQX0NMSSBjYV9maWxlPWRhdGFfZmlsZXMvdGVzdC1jYV9jYXQxMi5jcnQgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTEyOC1DQ00tOC1TSEEyNTYgc2lnX2FsZ3M9cnNhX3Bzc19yc2FlX3NoYTI1NiBncm91cHM9c2VjcDI1NnIxIiBcCisgICAgICAgICAiJEdfTkVYVF9TUlZfTk9fQ0VSVCAtLWh0dHAgLS1kaXNhYmxlLWNsaWVudC1jZXJ0IC0tZGVidWc9NCAtLXg1MDljZXJ0ZmlsZSAkREFUQV9GSUxFU19QQVRIL3NlcnZlcjItc2hhMjU2LmNydCAtLXg1MDlrZXlmaWxlICREQVRBX0ZJTEVTX1BBVEgvc2VydmVyMi5rZXkgLS1wcmlvcml0eT1OT05FOitBRVMtMTI4LUNDTS04OitTSEEyNTY6K0FFQUQ6K1NJR04tUlNBLVBTUy1SU0FFLVNIQTI1NjorR1JPVVAtU0VDUDI1NlIxOitWRVJTLVRMUzEuMzolTk9fVElDS0VUUyIgXAorICAgICAgICAgIiRQX0NMSSBjYV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvdGVzdC1jYV9jYXQxMi5jcnQgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTEyOC1DQ00tOC1TSEEyNTYgc2lnX2FsZ3M9cnNhX3Bzc19yc2FlX3NoYTI1NiBncm91cHM9c2VjcDI1NnIxIiBcCiAgICAgICAgICAwIFwKICAgICAgICAgIC1jICJIVFRQLzEuMCAyMDAgT0siIFwKICAgICAgICAgIC1jICJQcm90b2NvbCBpcyBUTFN2MS4zIiBcCkBAIC04NjkzLDggKzg2OTUsOCBAQAogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgTUJFRFRMU19TU0xfVExTMV8zX0NPTVBBVElCSUxJVFlfTU9ERQogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgUFNBX1dBTlRfQUxHX0VDREgKIHJ1bl90ZXN0ICJUTFMgMS4zIG0tPkc6IEFFU18xMjhfQ0NNXzhfU0hBMjU2LHNlY3AzODRyMSxlY2RzYV9zZWNwMjU2cjFfc2hhMjU2IiBcCi0gICAgICAgICAiJEdfTkVYVF9TUlZfTk9fQ0VSVCAtLWh0dHAgLS1kaXNhYmxlLWNsaWVudC1jZXJ0IC0tZGVidWc9NCAtLXg1MDljZXJ0ZmlsZSBkYXRhX2ZpbGVzL2VjZHNhX3NlY3AyNTZyMS5jcnQgLS14NTA5a2V5ZmlsZSBkYXRhX2ZpbGVzL2VjZHNhX3NlY3AyNTZyMS5rZXkgLS1wcmlvcml0eT1OT05FOitBRVMtMTI4LUNDTS04OitTSEEyNTY6K0FFQUQ6K1NJR04tRUNEU0EtU0VDUDI1NlIxLVNIQTI1NjorR1JPVVAtU0VDUDM4NFIxOitWRVJTLVRMUzEuMzolTk9fVElDS0VUUyIgXAotICAgICAgICAgIiRQX0NMSSBjYV9maWxlPWRhdGFfZmlsZXMvdGVzdC1jYTIuY3J0IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0xMjgtQ0NNLTgtU0hBMjU2IHNpZ19hbGdzPWVjZHNhX3NlY3AyNTZyMV9zaGEyNTYgZ3JvdXBzPXNlY3AzODRyMSIgXAorICAgICAgICAgIiRHX05FWFRfU1JWX05PX0NFUlQgLS1odHRwIC0tZGlzYWJsZS1jbGllbnQtY2VydCAtLWRlYnVnPTQgLS14NTA5Y2VydGZpbGUgJERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwMjU2cjEuY3J0IC0teDUwOWtleWZpbGUgJERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwMjU2cjEua2V5IC0tcHJpb3JpdHk9Tk9ORTorQUVTLTEyOC1DQ00tODorU0hBMjU2OitBRUFEOitTSUdOLUVDRFNBLVNFQ1AyNTZSMS1TSEEyNTY6K0dST1VQLVNFQ1AzODRSMTorVkVSUy1UTFMxLjM6JU5PX1RJQ0tFVFMiIFwKKyAgICAgICAgICIkUF9DTEkgY2FfZmlsZT0kREFUQV9GSUxFU19QQVRIL3Rlc3QtY2EyLmNydCBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMTI4LUNDTS04LVNIQTI1NiBzaWdfYWxncz1lY2RzYV9zZWNwMjU2cjFfc2hhMjU2IGdyb3Vwcz1zZWNwMzg0cjEiIFwKICAgICAgICAgIDAgXAogICAgICAgICAgLWMgIkhUVFAvMS4wIDIwMCBPSyIgXAogICAgICAgICAgLWMgIlByb3RvY29sIGlzIFRMU3YxLjMiIFwKQEAgLTg3MTMsOCArODcxNSw4IEBACiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBNQkVEVExTX1NTTF9UTFMxXzNfQ09NUEFUSUJJTElUWV9NT0RFCiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBQU0FfV0FOVF9BTEdfRUNESAogcnVuX3Rlc3QgIlRMUyAxLjMgbS0+RzogQUVTXzEyOF9DQ01fOF9TSEEyNTYsc2VjcDM4NHIxLGVjZHNhX3NlY3AzODRyMV9zaGEzODQiIFwKLSAgICAgICAgICIkR19ORVhUX1NSVl9OT19DRVJUIC0taHR0cCAtLWRpc2FibGUtY2xpZW50LWNlcnQgLS1kZWJ1Zz00IC0teDUwOWNlcnRmaWxlIGRhdGFfZmlsZXMvZWNkc2Ffc2VjcDM4NHIxLmNydCAtLXg1MDlrZXlmaWxlIGRhdGFfZmlsZXMvZWNkc2Ffc2VjcDM4NHIxLmtleSAtLXByaW9yaXR5PU5PTkU6K0FFUy0xMjgtQ0NNLTg6K1NIQTI1NjorQUVBRDorU0lHTi1FQ0RTQS1TRUNQMzg0UjEtU0hBMzg0OitHUk9VUC1TRUNQMzg0UjE6K1ZFUlMtVExTMS4zOiVOT19USUNLRVRTIiBcCi0gICAgICAgICAiJFBfQ0xJIGNhX2ZpbGU9ZGF0YV9maWxlcy90ZXN0LWNhMi5jcnQgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTEyOC1DQ00tOC1TSEEyNTYgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDM4NHIxX3NoYTM4NCBncm91cHM9c2VjcDM4NHIxIiBcCisgICAgICAgICAiJEdfTkVYVF9TUlZfTk9fQ0VSVCAtLWh0dHAgLS1kaXNhYmxlLWNsaWVudC1jZXJ0IC0tZGVidWc9NCAtLXg1MDljZXJ0ZmlsZSAkREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3AzODRyMS5jcnQgLS14NTA5a2V5ZmlsZSAkREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3AzODRyMS5rZXkgLS1wcmlvcml0eT1OT05FOitBRVMtMTI4LUNDTS04OitTSEEyNTY6K0FFQUQ6K1NJR04tRUNEU0EtU0VDUDM4NFIxLVNIQTM4NDorR1JPVVAtU0VDUDM4NFIxOitWRVJTLVRMUzEuMzolTk9fVElDS0VUUyIgXAorICAgICAgICAgIiRQX0NMSSBjYV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvdGVzdC1jYTIuY3J0IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0xMjgtQ0NNLTgtU0hBMjU2IHNpZ19hbGdzPWVjZHNhX3NlY3AzODRyMV9zaGEzODQgZ3JvdXBzPXNlY3AzODRyMSIgXAogICAgICAgICAgMCBcCiAgICAgICAgICAtYyAiSFRUUC8xLjAgMjAwIE9LIiBcCiAgICAgICAgICAtYyAiUHJvdG9jb2wgaXMgVExTdjEuMyIgXApAQCAtODczMyw4ICs4NzM1LDggQEAKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIE1CRURUTFNfU1NMX1RMUzFfM19DT01QQVRJQklMSVRZX01PREUKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIFBTQV9XQU5UX0FMR19FQ0RICiBydW5fdGVzdCAiVExTIDEuMyBtLT5HOiBBRVNfMTI4X0NDTV84X1NIQTI1NixzZWNwMzg0cjEsZWNkc2Ffc2VjcDUyMXIxX3NoYTUxMiIgXAotICAgICAgICAgIiRHX05FWFRfU1JWX05PX0NFUlQgLS1odHRwIC0tZGlzYWJsZS1jbGllbnQtY2VydCAtLWRlYnVnPTQgLS14NTA5Y2VydGZpbGUgZGF0YV9maWxlcy9lY2RzYV9zZWNwNTIxcjEuY3J0IC0teDUwOWtleWZpbGUgZGF0YV9maWxlcy9lY2RzYV9zZWNwNTIxcjEua2V5IC0tcHJpb3JpdHk9Tk9ORTorQUVTLTEyOC1DQ00tODorU0hBMjU2OitBRUFEOitTSUdOLUVDRFNBLVNFQ1A1MjFSMS1TSEE1MTI6K0dST1VQLVNFQ1AzODRSMTorVkVSUy1UTFMxLjM6JU5PX1RJQ0tFVFMiIFwKLSAgICAgICAgICIkUF9DTEkgY2FfZmlsZT1kYXRhX2ZpbGVzL3Rlc3QtY2EyLmNydCBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMTI4LUNDTS04LVNIQTI1NiBzaWdfYWxncz1lY2RzYV9zZWNwNTIxcjFfc2hhNTEyIGdyb3Vwcz1zZWNwMzg0cjEiIFwKKyAgICAgICAgICIkR19ORVhUX1NSVl9OT19DRVJUIC0taHR0cCAtLWRpc2FibGUtY2xpZW50LWNlcnQgLS1kZWJ1Zz00IC0teDUwOWNlcnRmaWxlICREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDUyMXIxLmNydCAtLXg1MDlrZXlmaWxlICREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDUyMXIxLmtleSAtLXByaW9yaXR5PU5PTkU6K0FFUy0xMjgtQ0NNLTg6K1NIQTI1NjorQUVBRDorU0lHTi1FQ0RTQS1TRUNQNTIxUjEtU0hBNTEyOitHUk9VUC1TRUNQMzg0UjE6K1ZFUlMtVExTMS4zOiVOT19USUNLRVRTIiBcCisgICAgICAgICAiJFBfQ0xJIGNhX2ZpbGU9JERBVEFfRklMRVNfUEFUSC90ZXN0LWNhMi5jcnQgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTEyOC1DQ00tOC1TSEEyNTYgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDUyMXIxX3NoYTUxMiBncm91cHM9c2VjcDM4NHIxIiBcCiAgICAgICAgICAwIFwKICAgICAgICAgIC1jICJIVFRQLzEuMCAyMDAgT0siIFwKICAgICAgICAgIC1jICJQcm90b2NvbCBpcyBUTFN2MS4zIiBcCkBAIC04NzU0LDggKzg3NTYsOCBAQAogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgTUJFRFRMU19YNTA5X1JTQVNTQV9QU1NfU1VQUE9SVAogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgUFNBX1dBTlRfQUxHX0VDREgKIHJ1bl90ZXN0ICJUTFMgMS4zIG0tPkc6IEFFU18xMjhfQ0NNXzhfU0hBMjU2LHNlY3AzODRyMSxyc2FfcHNzX3JzYWVfc2hhMjU2IiBcCi0gICAgICAgICAiJEdfTkVYVF9TUlZfTk9fQ0VSVCAtLWh0dHAgLS1kaXNhYmxlLWNsaWVudC1jZXJ0IC0tZGVidWc9NCAtLXg1MDljZXJ0ZmlsZSBkYXRhX2ZpbGVzL3NlcnZlcjItc2hhMjU2LmNydCAtLXg1MDlrZXlmaWxlIGRhdGFfZmlsZXMvc2VydmVyMi5rZXkgLS1wcmlvcml0eT1OT05FOitBRVMtMTI4LUNDTS04OitTSEEyNTY6K0FFQUQ6K1NJR04tUlNBLVBTUy1SU0FFLVNIQTI1NjorR1JPVVAtU0VDUDM4NFIxOitWRVJTLVRMUzEuMzolTk9fVElDS0VUUyIgXAotICAgICAgICAgIiRQX0NMSSBjYV9maWxlPWRhdGFfZmlsZXMvdGVzdC1jYV9jYXQxMi5jcnQgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTEyOC1DQ00tOC1TSEEyNTYgc2lnX2FsZ3M9cnNhX3Bzc19yc2FlX3NoYTI1NiBncm91cHM9c2VjcDM4NHIxIiBcCisgICAgICAgICAiJEdfTkVYVF9TUlZfTk9fQ0VSVCAtLWh0dHAgLS1kaXNhYmxlLWNsaWVudC1jZXJ0IC0tZGVidWc9NCAtLXg1MDljZXJ0ZmlsZSAkREFUQV9GSUxFU19QQVRIL3NlcnZlcjItc2hhMjU2LmNydCAtLXg1MDlrZXlmaWxlICREQVRBX0ZJTEVTX1BBVEgvc2VydmVyMi5rZXkgLS1wcmlvcml0eT1OT05FOitBRVMtMTI4LUNDTS04OitTSEEyNTY6K0FFQUQ6K1NJR04tUlNBLVBTUy1SU0FFLVNIQTI1NjorR1JPVVAtU0VDUDM4NFIxOitWRVJTLVRMUzEuMzolTk9fVElDS0VUUyIgXAorICAgICAgICAgIiRQX0NMSSBjYV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvdGVzdC1jYV9jYXQxMi5jcnQgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTEyOC1DQ00tOC1TSEEyNTYgc2lnX2FsZ3M9cnNhX3Bzc19yc2FlX3NoYTI1NiBncm91cHM9c2VjcDM4NHIxIiBcCiAgICAgICAgICAwIFwKICAgICAgICAgIC1jICJIVFRQLzEuMCAyMDAgT0siIFwKICAgICAgICAgIC1jICJQcm90b2NvbCBpcyBUTFN2MS4zIiBcCkBAIC04Nzc0LDggKzg3NzYsOCBAQAogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgTUJFRFRMU19TU0xfVExTMV8zX0NPTVBBVElCSUxJVFlfTU9ERQogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgUFNBX1dBTlRfQUxHX0VDREgKIHJ1bl90ZXN0ICJUTFMgMS4zIG0tPkc6IEFFU18xMjhfQ0NNXzhfU0hBMjU2LHNlY3A1MjFyMSxlY2RzYV9zZWNwMjU2cjFfc2hhMjU2IiBcCi0gICAgICAgICAiJEdfTkVYVF9TUlZfTk9fQ0VSVCAtLWh0dHAgLS1kaXNhYmxlLWNsaWVudC1jZXJ0IC0tZGVidWc9NCAtLXg1MDljZXJ0ZmlsZSBkYXRhX2ZpbGVzL2VjZHNhX3NlY3AyNTZyMS5jcnQgLS14NTA5a2V5ZmlsZSBkYXRhX2ZpbGVzL2VjZHNhX3NlY3AyNTZyMS5rZXkgLS1wcmlvcml0eT1OT05FOitBRVMtMTI4LUNDTS04OitTSEEyNTY6K0FFQUQ6K1NJR04tRUNEU0EtU0VDUDI1NlIxLVNIQTI1NjorR1JPVVAtU0VDUDUyMVIxOitWRVJTLVRMUzEuMzolTk9fVElDS0VUUyIgXAotICAgICAgICAgIiRQX0NMSSBjYV9maWxlPWRhdGFfZmlsZXMvdGVzdC1jYTIuY3J0IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0xMjgtQ0NNLTgtU0hBMjU2IHNpZ19hbGdzPWVjZHNhX3NlY3AyNTZyMV9zaGEyNTYgZ3JvdXBzPXNlY3A1MjFyMSIgXAorICAgICAgICAgIiRHX05FWFRfU1JWX05PX0NFUlQgLS1odHRwIC0tZGlzYWJsZS1jbGllbnQtY2VydCAtLWRlYnVnPTQgLS14NTA5Y2VydGZpbGUgJERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwMjU2cjEuY3J0IC0teDUwOWtleWZpbGUgJERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwMjU2cjEua2V5IC0tcHJpb3JpdHk9Tk9ORTorQUVTLTEyOC1DQ00tODorU0hBMjU2OitBRUFEOitTSUdOLUVDRFNBLVNFQ1AyNTZSMS1TSEEyNTY6K0dST1VQLVNFQ1A1MjFSMTorVkVSUy1UTFMxLjM6JU5PX1RJQ0tFVFMiIFwKKyAgICAgICAgICIkUF9DTEkgY2FfZmlsZT0kREFUQV9GSUxFU19QQVRIL3Rlc3QtY2EyLmNydCBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMTI4LUNDTS04LVNIQTI1NiBzaWdfYWxncz1lY2RzYV9zZWNwMjU2cjFfc2hhMjU2IGdyb3Vwcz1zZWNwNTIxcjEiIFwKICAgICAgICAgIDAgXAogICAgICAgICAgLWMgIkhUVFAvMS4wIDIwMCBPSyIgXAogICAgICAgICAgLWMgIlByb3RvY29sIGlzIFRMU3YxLjMiIFwKQEAgLTg3OTQsOCArODc5Niw4IEBACiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBNQkVEVExTX1NTTF9UTFMxXzNfQ09NUEFUSUJJTElUWV9NT0RFCiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBQU0FfV0FOVF9BTEdfRUNESAogcnVuX3Rlc3QgIlRMUyAxLjMgbS0+RzogQUVTXzEyOF9DQ01fOF9TSEEyNTYsc2VjcDUyMXIxLGVjZHNhX3NlY3AzODRyMV9zaGEzODQiIFwKLSAgICAgICAgICIkR19ORVhUX1NSVl9OT19DRVJUIC0taHR0cCAtLWRpc2FibGUtY2xpZW50LWNlcnQgLS1kZWJ1Zz00IC0teDUwOWNlcnRmaWxlIGRhdGFfZmlsZXMvZWNkc2Ffc2VjcDM4NHIxLmNydCAtLXg1MDlrZXlmaWxlIGRhdGFfZmlsZXMvZWNkc2Ffc2VjcDM4NHIxLmtleSAtLXByaW9yaXR5PU5PTkU6K0FFUy0xMjgtQ0NNLTg6K1NIQTI1NjorQUVBRDorU0lHTi1FQ0RTQS1TRUNQMzg0UjEtU0hBMzg0OitHUk9VUC1TRUNQNTIxUjE6K1ZFUlMtVExTMS4zOiVOT19USUNLRVRTIiBcCi0gICAgICAgICAiJFBfQ0xJIGNhX2ZpbGU9ZGF0YV9maWxlcy90ZXN0LWNhMi5jcnQgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTEyOC1DQ00tOC1TSEEyNTYgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDM4NHIxX3NoYTM4NCBncm91cHM9c2VjcDUyMXIxIiBcCisgICAgICAgICAiJEdfTkVYVF9TUlZfTk9fQ0VSVCAtLWh0dHAgLS1kaXNhYmxlLWNsaWVudC1jZXJ0IC0tZGVidWc9NCAtLXg1MDljZXJ0ZmlsZSAkREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3AzODRyMS5jcnQgLS14NTA5a2V5ZmlsZSAkREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3AzODRyMS5rZXkgLS1wcmlvcml0eT1OT05FOitBRVMtMTI4LUNDTS04OitTSEEyNTY6K0FFQUQ6K1NJR04tRUNEU0EtU0VDUDM4NFIxLVNIQTM4NDorR1JPVVAtU0VDUDUyMVIxOitWRVJTLVRMUzEuMzolTk9fVElDS0VUUyIgXAorICAgICAgICAgIiRQX0NMSSBjYV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvdGVzdC1jYTIuY3J0IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0xMjgtQ0NNLTgtU0hBMjU2IHNpZ19hbGdzPWVjZHNhX3NlY3AzODRyMV9zaGEzODQgZ3JvdXBzPXNlY3A1MjFyMSIgXAogICAgICAgICAgMCBcCiAgICAgICAgICAtYyAiSFRUUC8xLjAgMjAwIE9LIiBcCiAgICAgICAgICAtYyAiUHJvdG9jb2wgaXMgVExTdjEuMyIgXApAQCAtODgxNCw4ICs4ODE2LDggQEAKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIE1CRURUTFNfU1NMX1RMUzFfM19DT01QQVRJQklMSVRZX01PREUKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIFBTQV9XQU5UX0FMR19FQ0RICiBydW5fdGVzdCAiVExTIDEuMyBtLT5HOiBBRVNfMTI4X0NDTV84X1NIQTI1NixzZWNwNTIxcjEsZWNkc2Ffc2VjcDUyMXIxX3NoYTUxMiIgXAotICAgICAgICAgIiRHX05FWFRfU1JWX05PX0NFUlQgLS1odHRwIC0tZGlzYWJsZS1jbGllbnQtY2VydCAtLWRlYnVnPTQgLS14NTA5Y2VydGZpbGUgZGF0YV9maWxlcy9lY2RzYV9zZWNwNTIxcjEuY3J0IC0teDUwOWtleWZpbGUgZGF0YV9maWxlcy9lY2RzYV9zZWNwNTIxcjEua2V5IC0tcHJpb3JpdHk9Tk9ORTorQUVTLTEyOC1DQ00tODorU0hBMjU2OitBRUFEOitTSUdOLUVDRFNBLVNFQ1A1MjFSMS1TSEE1MTI6K0dST1VQLVNFQ1A1MjFSMTorVkVSUy1UTFMxLjM6JU5PX1RJQ0tFVFMiIFwKLSAgICAgICAgICIkUF9DTEkgY2FfZmlsZT1kYXRhX2ZpbGVzL3Rlc3QtY2EyLmNydCBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMTI4LUNDTS04LVNIQTI1NiBzaWdfYWxncz1lY2RzYV9zZWNwNTIxcjFfc2hhNTEyIGdyb3Vwcz1zZWNwNTIxcjEiIFwKKyAgICAgICAgICIkR19ORVhUX1NSVl9OT19DRVJUIC0taHR0cCAtLWRpc2FibGUtY2xpZW50LWNlcnQgLS1kZWJ1Zz00IC0teDUwOWNlcnRmaWxlICREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDUyMXIxLmNydCAtLXg1MDlrZXlmaWxlICREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDUyMXIxLmtleSAtLXByaW9yaXR5PU5PTkU6K0FFUy0xMjgtQ0NNLTg6K1NIQTI1NjorQUVBRDorU0lHTi1FQ0RTQS1TRUNQNTIxUjEtU0hBNTEyOitHUk9VUC1TRUNQNTIxUjE6K1ZFUlMtVExTMS4zOiVOT19USUNLRVRTIiBcCisgICAgICAgICAiJFBfQ0xJIGNhX2ZpbGU9JERBVEFfRklMRVNfUEFUSC90ZXN0LWNhMi5jcnQgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTEyOC1DQ00tOC1TSEEyNTYgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDUyMXIxX3NoYTUxMiBncm91cHM9c2VjcDUyMXIxIiBcCiAgICAgICAgICAwIFwKICAgICAgICAgIC1jICJIVFRQLzEuMCAyMDAgT0siIFwKICAgICAgICAgIC1jICJQcm90b2NvbCBpcyBUTFN2MS4zIiBcCkBAIC04ODM1LDggKzg4MzcsOCBAQAogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgTUJFRFRMU19YNTA5X1JTQVNTQV9QU1NfU1VQUE9SVAogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgUFNBX1dBTlRfQUxHX0VDREgKIHJ1bl90ZXN0ICJUTFMgMS4zIG0tPkc6IEFFU18xMjhfQ0NNXzhfU0hBMjU2LHNlY3A1MjFyMSxyc2FfcHNzX3JzYWVfc2hhMjU2IiBcCi0gICAgICAgICAiJEdfTkVYVF9TUlZfTk9fQ0VSVCAtLWh0dHAgLS1kaXNhYmxlLWNsaWVudC1jZXJ0IC0tZGVidWc9NCAtLXg1MDljZXJ0ZmlsZSBkYXRhX2ZpbGVzL3NlcnZlcjItc2hhMjU2LmNydCAtLXg1MDlrZXlmaWxlIGRhdGFfZmlsZXMvc2VydmVyMi5rZXkgLS1wcmlvcml0eT1OT05FOitBRVMtMTI4LUNDTS04OitTSEEyNTY6K0FFQUQ6K1NJR04tUlNBLVBTUy1SU0FFLVNIQTI1NjorR1JPVVAtU0VDUDUyMVIxOitWRVJTLVRMUzEuMzolTk9fVElDS0VUUyIgXAotICAgICAgICAgIiRQX0NMSSBjYV9maWxlPWRhdGFfZmlsZXMvdGVzdC1jYV9jYXQxMi5jcnQgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTEyOC1DQ00tOC1TSEEyNTYgc2lnX2FsZ3M9cnNhX3Bzc19yc2FlX3NoYTI1NiBncm91cHM9c2VjcDUyMXIxIiBcCisgICAgICAgICAiJEdfTkVYVF9TUlZfTk9fQ0VSVCAtLWh0dHAgLS1kaXNhYmxlLWNsaWVudC1jZXJ0IC0tZGVidWc9NCAtLXg1MDljZXJ0ZmlsZSAkREFUQV9GSUxFU19QQVRIL3NlcnZlcjItc2hhMjU2LmNydCAtLXg1MDlrZXlmaWxlICREQVRBX0ZJTEVTX1BBVEgvc2VydmVyMi5rZXkgLS1wcmlvcml0eT1OT05FOitBRVMtMTI4LUNDTS04OitTSEEyNTY6K0FFQUQ6K1NJR04tUlNBLVBTUy1SU0FFLVNIQTI1NjorR1JPVVAtU0VDUDUyMVIxOitWRVJTLVRMUzEuMzolTk9fVElDS0VUUyIgXAorICAgICAgICAgIiRQX0NMSSBjYV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvdGVzdC1jYV9jYXQxMi5jcnQgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTEyOC1DQ00tOC1TSEEyNTYgc2lnX2FsZ3M9cnNhX3Bzc19yc2FlX3NoYTI1NiBncm91cHM9c2VjcDUyMXIxIiBcCiAgICAgICAgICAwIFwKICAgICAgICAgIC1jICJIVFRQLzEuMCAyMDAgT0siIFwKICAgICAgICAgIC1jICJQcm90b2NvbCBpcyBUTFN2MS4zIiBcCkBAIC04ODU1LDggKzg4NTcsOCBAQAogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgTUJFRFRMU19TU0xfVExTMV8zX0NPTVBBVElCSUxJVFlfTU9ERQogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgUFNBX1dBTlRfQUxHX0VDREgKIHJ1bl90ZXN0ICJUTFMgMS4zIG0tPkc6IEFFU18xMjhfQ0NNXzhfU0hBMjU2LHgyNTUxOSxlY2RzYV9zZWNwMjU2cjFfc2hhMjU2IiBcCi0gICAgICAgICAiJEdfTkVYVF9TUlZfTk9fQ0VSVCAtLWh0dHAgLS1kaXNhYmxlLWNsaWVudC1jZXJ0IC0tZGVidWc9NCAtLXg1MDljZXJ0ZmlsZSBkYXRhX2ZpbGVzL2VjZHNhX3NlY3AyNTZyMS5jcnQgLS14NTA5a2V5ZmlsZSBkYXRhX2ZpbGVzL2VjZHNhX3NlY3AyNTZyMS5rZXkgLS1wcmlvcml0eT1OT05FOitBRVMtMTI4LUNDTS04OitTSEEyNTY6K0FFQUQ6K1NJR04tRUNEU0EtU0VDUDI1NlIxLVNIQTI1NjorR1JPVVAtWDI1NTE5OitWRVJTLVRMUzEuMzolTk9fVElDS0VUUyIgXAotICAgICAgICAgIiRQX0NMSSBjYV9maWxlPWRhdGFfZmlsZXMvdGVzdC1jYTIuY3J0IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0xMjgtQ0NNLTgtU0hBMjU2IHNpZ19hbGdzPWVjZHNhX3NlY3AyNTZyMV9zaGEyNTYgZ3JvdXBzPXgyNTUxOSIgXAorICAgICAgICAgIiRHX05FWFRfU1JWX05PX0NFUlQgLS1odHRwIC0tZGlzYWJsZS1jbGllbnQtY2VydCAtLWRlYnVnPTQgLS14NTA5Y2VydGZpbGUgJERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwMjU2cjEuY3J0IC0teDUwOWtleWZpbGUgJERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwMjU2cjEua2V5IC0tcHJpb3JpdHk9Tk9ORTorQUVTLTEyOC1DQ00tODorU0hBMjU2OitBRUFEOitTSUdOLUVDRFNBLVNFQ1AyNTZSMS1TSEEyNTY6K0dST1VQLVgyNTUxOTorVkVSUy1UTFMxLjM6JU5PX1RJQ0tFVFMiIFwKKyAgICAgICAgICIkUF9DTEkgY2FfZmlsZT0kREFUQV9GSUxFU19QQVRIL3Rlc3QtY2EyLmNydCBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMTI4LUNDTS04LVNIQTI1NiBzaWdfYWxncz1lY2RzYV9zZWNwMjU2cjFfc2hhMjU2IGdyb3Vwcz14MjU1MTkiIFwKICAgICAgICAgIDAgXAogICAgICAgICAgLWMgIkhUVFAvMS4wIDIwMCBPSyIgXAogICAgICAgICAgLWMgIlByb3RvY29sIGlzIFRMU3YxLjMiIFwKQEAgLTg4NzUsOCArODg3Nyw4IEBACiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBNQkVEVExTX1NTTF9UTFMxXzNfQ09NUEFUSUJJTElUWV9NT0RFCiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBQU0FfV0FOVF9BTEdfRUNESAogcnVuX3Rlc3QgIlRMUyAxLjMgbS0+RzogQUVTXzEyOF9DQ01fOF9TSEEyNTYseDI1NTE5LGVjZHNhX3NlY3AzODRyMV9zaGEzODQiIFwKLSAgICAgICAgICIkR19ORVhUX1NSVl9OT19DRVJUIC0taHR0cCAtLWRpc2FibGUtY2xpZW50LWNlcnQgLS1kZWJ1Zz00IC0teDUwOWNlcnRmaWxlIGRhdGFfZmlsZXMvZWNkc2Ffc2VjcDM4NHIxLmNydCAtLXg1MDlrZXlmaWxlIGRhdGFfZmlsZXMvZWNkc2Ffc2VjcDM4NHIxLmtleSAtLXByaW9yaXR5PU5PTkU6K0FFUy0xMjgtQ0NNLTg6K1NIQTI1NjorQUVBRDorU0lHTi1FQ0RTQS1TRUNQMzg0UjEtU0hBMzg0OitHUk9VUC1YMjU1MTk6K1ZFUlMtVExTMS4zOiVOT19USUNLRVRTIiBcCi0gICAgICAgICAiJFBfQ0xJIGNhX2ZpbGU9ZGF0YV9maWxlcy90ZXN0LWNhMi5jcnQgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTEyOC1DQ00tOC1TSEEyNTYgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDM4NHIxX3NoYTM4NCBncm91cHM9eDI1NTE5IiBcCisgICAgICAgICAiJEdfTkVYVF9TUlZfTk9fQ0VSVCAtLWh0dHAgLS1kaXNhYmxlLWNsaWVudC1jZXJ0IC0tZGVidWc9NCAtLXg1MDljZXJ0ZmlsZSAkREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3AzODRyMS5jcnQgLS14NTA5a2V5ZmlsZSAkREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3AzODRyMS5rZXkgLS1wcmlvcml0eT1OT05FOitBRVMtMTI4LUNDTS04OitTSEEyNTY6K0FFQUQ6K1NJR04tRUNEU0EtU0VDUDM4NFIxLVNIQTM4NDorR1JPVVAtWDI1NTE5OitWRVJTLVRMUzEuMzolTk9fVElDS0VUUyIgXAorICAgICAgICAgIiRQX0NMSSBjYV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvdGVzdC1jYTIuY3J0IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0xMjgtQ0NNLTgtU0hBMjU2IHNpZ19hbGdzPWVjZHNhX3NlY3AzODRyMV9zaGEzODQgZ3JvdXBzPXgyNTUxOSIgXAogICAgICAgICAgMCBcCiAgICAgICAgICAtYyAiSFRUUC8xLjAgMjAwIE9LIiBcCiAgICAgICAgICAtYyAiUHJvdG9jb2wgaXMgVExTdjEuMyIgXApAQCAtODg5NSw4ICs4ODk3LDggQEAKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIE1CRURUTFNfU1NMX1RMUzFfM19DT01QQVRJQklMSVRZX01PREUKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIFBTQV9XQU5UX0FMR19FQ0RICiBydW5fdGVzdCAiVExTIDEuMyBtLT5HOiBBRVNfMTI4X0NDTV84X1NIQTI1Nix4MjU1MTksZWNkc2Ffc2VjcDUyMXIxX3NoYTUxMiIgXAotICAgICAgICAgIiRHX05FWFRfU1JWX05PX0NFUlQgLS1odHRwIC0tZGlzYWJsZS1jbGllbnQtY2VydCAtLWRlYnVnPTQgLS14NTA5Y2VydGZpbGUgZGF0YV9maWxlcy9lY2RzYV9zZWNwNTIxcjEuY3J0IC0teDUwOWtleWZpbGUgZGF0YV9maWxlcy9lY2RzYV9zZWNwNTIxcjEua2V5IC0tcHJpb3JpdHk9Tk9ORTorQUVTLTEyOC1DQ00tODorU0hBMjU2OitBRUFEOitTSUdOLUVDRFNBLVNFQ1A1MjFSMS1TSEE1MTI6K0dST1VQLVgyNTUxOTorVkVSUy1UTFMxLjM6JU5PX1RJQ0tFVFMiIFwKLSAgICAgICAgICIkUF9DTEkgY2FfZmlsZT1kYXRhX2ZpbGVzL3Rlc3QtY2EyLmNydCBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMTI4LUNDTS04LVNIQTI1NiBzaWdfYWxncz1lY2RzYV9zZWNwNTIxcjFfc2hhNTEyIGdyb3Vwcz14MjU1MTkiIFwKKyAgICAgICAgICIkR19ORVhUX1NSVl9OT19DRVJUIC0taHR0cCAtLWRpc2FibGUtY2xpZW50LWNlcnQgLS1kZWJ1Zz00IC0teDUwOWNlcnRmaWxlICREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDUyMXIxLmNydCAtLXg1MDlrZXlmaWxlICREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDUyMXIxLmtleSAtLXByaW9yaXR5PU5PTkU6K0FFUy0xMjgtQ0NNLTg6K1NIQTI1NjorQUVBRDorU0lHTi1FQ0RTQS1TRUNQNTIxUjEtU0hBNTEyOitHUk9VUC1YMjU1MTk6K1ZFUlMtVExTMS4zOiVOT19USUNLRVRTIiBcCisgICAgICAgICAiJFBfQ0xJIGNhX2ZpbGU9JERBVEFfRklMRVNfUEFUSC90ZXN0LWNhMi5jcnQgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTEyOC1DQ00tOC1TSEEyNTYgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDUyMXIxX3NoYTUxMiBncm91cHM9eDI1NTE5IiBcCiAgICAgICAgICAwIFwKICAgICAgICAgIC1jICJIVFRQLzEuMCAyMDAgT0siIFwKICAgICAgICAgIC1jICJQcm90b2NvbCBpcyBUTFN2MS4zIiBcCkBAIC04OTE2LDggKzg5MTgsOCBAQAogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgTUJFRFRMU19YNTA5X1JTQVNTQV9QU1NfU1VQUE9SVAogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgUFNBX1dBTlRfQUxHX0VDREgKIHJ1bl90ZXN0ICJUTFMgMS4zIG0tPkc6IEFFU18xMjhfQ0NNXzhfU0hBMjU2LHgyNTUxOSxyc2FfcHNzX3JzYWVfc2hhMjU2IiBcCi0gICAgICAgICAiJEdfTkVYVF9TUlZfTk9fQ0VSVCAtLWh0dHAgLS1kaXNhYmxlLWNsaWVudC1jZXJ0IC0tZGVidWc9NCAtLXg1MDljZXJ0ZmlsZSBkYXRhX2ZpbGVzL3NlcnZlcjItc2hhMjU2LmNydCAtLXg1MDlrZXlmaWxlIGRhdGFfZmlsZXMvc2VydmVyMi5rZXkgLS1wcmlvcml0eT1OT05FOitBRVMtMTI4LUNDTS04OitTSEEyNTY6K0FFQUQ6K1NJR04tUlNBLVBTUy1SU0FFLVNIQTI1NjorR1JPVVAtWDI1NTE5OitWRVJTLVRMUzEuMzolTk9fVElDS0VUUyIgXAotICAgICAgICAgIiRQX0NMSSBjYV9maWxlPWRhdGFfZmlsZXMvdGVzdC1jYV9jYXQxMi5jcnQgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTEyOC1DQ00tOC1TSEEyNTYgc2lnX2FsZ3M9cnNhX3Bzc19yc2FlX3NoYTI1NiBncm91cHM9eDI1NTE5IiBcCisgICAgICAgICAiJEdfTkVYVF9TUlZfTk9fQ0VSVCAtLWh0dHAgLS1kaXNhYmxlLWNsaWVudC1jZXJ0IC0tZGVidWc9NCAtLXg1MDljZXJ0ZmlsZSAkREFUQV9GSUxFU19QQVRIL3NlcnZlcjItc2hhMjU2LmNydCAtLXg1MDlrZXlmaWxlICREQVRBX0ZJTEVTX1BBVEgvc2VydmVyMi5rZXkgLS1wcmlvcml0eT1OT05FOitBRVMtMTI4LUNDTS04OitTSEEyNTY6K0FFQUQ6K1NJR04tUlNBLVBTUy1SU0FFLVNIQTI1NjorR1JPVVAtWDI1NTE5OitWRVJTLVRMUzEuMzolTk9fVElDS0VUUyIgXAorICAgICAgICAgIiRQX0NMSSBjYV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvdGVzdC1jYV9jYXQxMi5jcnQgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTEyOC1DQ00tOC1TSEEyNTYgc2lnX2FsZ3M9cnNhX3Bzc19yc2FlX3NoYTI1NiBncm91cHM9eDI1NTE5IiBcCiAgICAgICAgICAwIFwKICAgICAgICAgIC1jICJIVFRQLzEuMCAyMDAgT0siIFwKICAgICAgICAgIC1jICJQcm90b2NvbCBpcyBUTFN2MS4zIiBcCkBAIC04OTM2LDggKzg5MzgsOCBAQAogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgTUJFRFRMU19TU0xfVExTMV8zX0NPTVBBVElCSUxJVFlfTU9ERQogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgUFNBX1dBTlRfQUxHX0VDREgKIHJ1bl90ZXN0ICJUTFMgMS4zIG0tPkc6IEFFU18xMjhfQ0NNXzhfU0hBMjU2LHg0NDgsZWNkc2Ffc2VjcDI1NnIxX3NoYTI1NiIgXAotICAgICAgICAgIiRHX05FWFRfU1JWX05PX0NFUlQgLS1odHRwIC0tZGlzYWJsZS1jbGllbnQtY2VydCAtLWRlYnVnPTQgLS14NTA5Y2VydGZpbGUgZGF0YV9maWxlcy9lY2RzYV9zZWNwMjU2cjEuY3J0IC0teDUwOWtleWZpbGUgZGF0YV9maWxlcy9lY2RzYV9zZWNwMjU2cjEua2V5IC0tcHJpb3JpdHk9Tk9ORTorQUVTLTEyOC1DQ00tODorU0hBMjU2OitBRUFEOitTSUdOLUVDRFNBLVNFQ1AyNTZSMS1TSEEyNTY6K0dST1VQLVg0NDg6K1ZFUlMtVExTMS4zOiVOT19USUNLRVRTIiBcCi0gICAgICAgICAiJFBfQ0xJIGNhX2ZpbGU9ZGF0YV9maWxlcy90ZXN0LWNhMi5jcnQgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTEyOC1DQ00tOC1TSEEyNTYgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDI1NnIxX3NoYTI1NiBncm91cHM9eDQ0OCIgXAorICAgICAgICAgIiRHX05FWFRfU1JWX05PX0NFUlQgLS1odHRwIC0tZGlzYWJsZS1jbGllbnQtY2VydCAtLWRlYnVnPTQgLS14NTA5Y2VydGZpbGUgJERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwMjU2cjEuY3J0IC0teDUwOWtleWZpbGUgJERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwMjU2cjEua2V5IC0tcHJpb3JpdHk9Tk9ORTorQUVTLTEyOC1DQ00tODorU0hBMjU2OitBRUFEOitTSUdOLUVDRFNBLVNFQ1AyNTZSMS1TSEEyNTY6K0dST1VQLVg0NDg6K1ZFUlMtVExTMS4zOiVOT19USUNLRVRTIiBcCisgICAgICAgICAiJFBfQ0xJIGNhX2ZpbGU9JERBVEFfRklMRVNfUEFUSC90ZXN0LWNhMi5jcnQgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTEyOC1DQ00tOC1TSEEyNTYgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDI1NnIxX3NoYTI1NiBncm91cHM9eDQ0OCIgXAogICAgICAgICAgMCBcCiAgICAgICAgICAtYyAiSFRUUC8xLjAgMjAwIE9LIiBcCiAgICAgICAgICAtYyAiUHJvdG9jb2wgaXMgVExTdjEuMyIgXApAQCAtODk1Niw4ICs4OTU4LDggQEAKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIE1CRURUTFNfU1NMX1RMUzFfM19DT01QQVRJQklMSVRZX01PREUKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIFBTQV9XQU5UX0FMR19FQ0RICiBydW5fdGVzdCAiVExTIDEuMyBtLT5HOiBBRVNfMTI4X0NDTV84X1NIQTI1Nix4NDQ4LGVjZHNhX3NlY3AzODRyMV9zaGEzODQiIFwKLSAgICAgICAgICIkR19ORVhUX1NSVl9OT19DRVJUIC0taHR0cCAtLWRpc2FibGUtY2xpZW50LWNlcnQgLS1kZWJ1Zz00IC0teDUwOWNlcnRmaWxlIGRhdGFfZmlsZXMvZWNkc2Ffc2VjcDM4NHIxLmNydCAtLXg1MDlrZXlmaWxlIGRhdGFfZmlsZXMvZWNkc2Ffc2VjcDM4NHIxLmtleSAtLXByaW9yaXR5PU5PTkU6K0FFUy0xMjgtQ0NNLTg6K1NIQTI1NjorQUVBRDorU0lHTi1FQ0RTQS1TRUNQMzg0UjEtU0hBMzg0OitHUk9VUC1YNDQ4OitWRVJTLVRMUzEuMzolTk9fVElDS0VUUyIgXAotICAgICAgICAgIiRQX0NMSSBjYV9maWxlPWRhdGFfZmlsZXMvdGVzdC1jYTIuY3J0IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0xMjgtQ0NNLTgtU0hBMjU2IHNpZ19hbGdzPWVjZHNhX3NlY3AzODRyMV9zaGEzODQgZ3JvdXBzPXg0NDgiIFwKKyAgICAgICAgICIkR19ORVhUX1NSVl9OT19DRVJUIC0taHR0cCAtLWRpc2FibGUtY2xpZW50LWNlcnQgLS1kZWJ1Zz00IC0teDUwOWNlcnRmaWxlICREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDM4NHIxLmNydCAtLXg1MDlrZXlmaWxlICREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDM4NHIxLmtleSAtLXByaW9yaXR5PU5PTkU6K0FFUy0xMjgtQ0NNLTg6K1NIQTI1NjorQUVBRDorU0lHTi1FQ0RTQS1TRUNQMzg0UjEtU0hBMzg0OitHUk9VUC1YNDQ4OitWRVJTLVRMUzEuMzolTk9fVElDS0VUUyIgXAorICAgICAgICAgIiRQX0NMSSBjYV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvdGVzdC1jYTIuY3J0IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0xMjgtQ0NNLTgtU0hBMjU2IHNpZ19hbGdzPWVjZHNhX3NlY3AzODRyMV9zaGEzODQgZ3JvdXBzPXg0NDgiIFwKICAgICAgICAgIDAgXAogICAgICAgICAgLWMgIkhUVFAvMS4wIDIwMCBPSyIgXAogICAgICAgICAgLWMgIlByb3RvY29sIGlzIFRMU3YxLjMiIFwKQEAgLTg5NzYsOCArODk3OCw4IEBACiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBNQkVEVExTX1NTTF9UTFMxXzNfQ09NUEFUSUJJTElUWV9NT0RFCiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBQU0FfV0FOVF9BTEdfRUNESAogcnVuX3Rlc3QgIlRMUyAxLjMgbS0+RzogQUVTXzEyOF9DQ01fOF9TSEEyNTYseDQ0OCxlY2RzYV9zZWNwNTIxcjFfc2hhNTEyIiBcCi0gICAgICAgICAiJEdfTkVYVF9TUlZfTk9fQ0VSVCAtLWh0dHAgLS1kaXNhYmxlLWNsaWVudC1jZXJ0IC0tZGVidWc9NCAtLXg1MDljZXJ0ZmlsZSBkYXRhX2ZpbGVzL2VjZHNhX3NlY3A1MjFyMS5jcnQgLS14NTA5a2V5ZmlsZSBkYXRhX2ZpbGVzL2VjZHNhX3NlY3A1MjFyMS5rZXkgLS1wcmlvcml0eT1OT05FOitBRVMtMTI4LUNDTS04OitTSEEyNTY6K0FFQUQ6K1NJR04tRUNEU0EtU0VDUDUyMVIxLVNIQTUxMjorR1JPVVAtWDQ0ODorVkVSUy1UTFMxLjM6JU5PX1RJQ0tFVFMiIFwKLSAgICAgICAgICIkUF9DTEkgY2FfZmlsZT1kYXRhX2ZpbGVzL3Rlc3QtY2EyLmNydCBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMTI4LUNDTS04LVNIQTI1NiBzaWdfYWxncz1lY2RzYV9zZWNwNTIxcjFfc2hhNTEyIGdyb3Vwcz14NDQ4IiBcCisgICAgICAgICAiJEdfTkVYVF9TUlZfTk9fQ0VSVCAtLWh0dHAgLS1kaXNhYmxlLWNsaWVudC1jZXJ0IC0tZGVidWc9NCAtLXg1MDljZXJ0ZmlsZSAkREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3A1MjFyMS5jcnQgLS14NTA5a2V5ZmlsZSAkREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3A1MjFyMS5rZXkgLS1wcmlvcml0eT1OT05FOitBRVMtMTI4LUNDTS04OitTSEEyNTY6K0FFQUQ6K1NJR04tRUNEU0EtU0VDUDUyMVIxLVNIQTUxMjorR1JPVVAtWDQ0ODorVkVSUy1UTFMxLjM6JU5PX1RJQ0tFVFMiIFwKKyAgICAgICAgICIkUF9DTEkgY2FfZmlsZT0kREFUQV9GSUxFU19QQVRIL3Rlc3QtY2EyLmNydCBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMTI4LUNDTS04LVNIQTI1NiBzaWdfYWxncz1lY2RzYV9zZWNwNTIxcjFfc2hhNTEyIGdyb3Vwcz14NDQ4IiBcCiAgICAgICAgICAwIFwKICAgICAgICAgIC1jICJIVFRQLzEuMCAyMDAgT0siIFwKICAgICAgICAgIC1jICJQcm90b2NvbCBpcyBUTFN2MS4zIiBcCkBAIC04OTk3LDggKzg5OTksOCBAQAogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgTUJFRFRMU19YNTA5X1JTQVNTQV9QU1NfU1VQUE9SVAogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgUFNBX1dBTlRfQUxHX0VDREgKIHJ1bl90ZXN0ICJUTFMgMS4zIG0tPkc6IEFFU18xMjhfQ0NNXzhfU0hBMjU2LHg0NDgscnNhX3Bzc19yc2FlX3NoYTI1NiIgXAotICAgICAgICAgIiRHX05FWFRfU1JWX05PX0NFUlQgLS1odHRwIC0tZGlzYWJsZS1jbGllbnQtY2VydCAtLWRlYnVnPTQgLS14NTA5Y2VydGZpbGUgZGF0YV9maWxlcy9zZXJ2ZXIyLXNoYTI1Ni5jcnQgLS14NTA5a2V5ZmlsZSBkYXRhX2ZpbGVzL3NlcnZlcjIua2V5IC0tcHJpb3JpdHk9Tk9ORTorQUVTLTEyOC1DQ00tODorU0hBMjU2OitBRUFEOitTSUdOLVJTQS1QU1MtUlNBRS1TSEEyNTY6K0dST1VQLVg0NDg6K1ZFUlMtVExTMS4zOiVOT19USUNLRVRTIiBcCi0gICAgICAgICAiJFBfQ0xJIGNhX2ZpbGU9ZGF0YV9maWxlcy90ZXN0LWNhX2NhdDEyLmNydCBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMTI4LUNDTS04LVNIQTI1NiBzaWdfYWxncz1yc2FfcHNzX3JzYWVfc2hhMjU2IGdyb3Vwcz14NDQ4IiBcCisgICAgICAgICAiJEdfTkVYVF9TUlZfTk9fQ0VSVCAtLWh0dHAgLS1kaXNhYmxlLWNsaWVudC1jZXJ0IC0tZGVidWc9NCAtLXg1MDljZXJ0ZmlsZSAkREFUQV9GSUxFU19QQVRIL3NlcnZlcjItc2hhMjU2LmNydCAtLXg1MDlrZXlmaWxlICREQVRBX0ZJTEVTX1BBVEgvc2VydmVyMi5rZXkgLS1wcmlvcml0eT1OT05FOitBRVMtMTI4LUNDTS04OitTSEEyNTY6K0FFQUQ6K1NJR04tUlNBLVBTUy1SU0FFLVNIQTI1NjorR1JPVVAtWDQ0ODorVkVSUy1UTFMxLjM6JU5PX1RJQ0tFVFMiIFwKKyAgICAgICAgICIkUF9DTEkgY2FfZmlsZT0kREFUQV9GSUxFU19QQVRIL3Rlc3QtY2FfY2F0MTIuY3J0IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0xMjgtQ0NNLTgtU0hBMjU2IHNpZ19hbGdzPXJzYV9wc3NfcnNhZV9zaGEyNTYgZ3JvdXBzPXg0NDgiIFwKICAgICAgICAgIDAgXAogICAgICAgICAgLWMgIkhUVFAvMS4wIDIwMCBPSyIgXAogICAgICAgICAgLWMgIlByb3RvY29sIGlzIFRMU3YxLjMiIFwKQEAgLTkwMTgsOCArOTAyMCw4IEBACiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBQU0FfV0FOVF9BTEdfRkZESAogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgUFNBX1dBTlRfREhfUkZDNzkxOV8yMDQ4CiBydW5fdGVzdCAiVExTIDEuMyBtLT5HOiBBRVNfMTI4X0NDTV84X1NIQTI1NixmZmRoZTIwNDgsZWNkc2Ffc2VjcDI1NnIxX3NoYTI1NiIgXAotICAgICAgICAgIiRHX05FWFRfU1JWX05PX0NFUlQgLS1odHRwIC0tZGlzYWJsZS1jbGllbnQtY2VydCAtLWRlYnVnPTQgLS14NTA5Y2VydGZpbGUgZGF0YV9maWxlcy9lY2RzYV9zZWNwMjU2cjEuY3J0IC0teDUwOWtleWZpbGUgZGF0YV9maWxlcy9lY2RzYV9zZWNwMjU2cjEua2V5IC0tcHJpb3JpdHk9Tk9ORTorQUVTLTEyOC1DQ00tODorU0hBMjU2OitBRUFEOitTSUdOLUVDRFNBLVNFQ1AyNTZSMS1TSEEyNTY6K0dST1VQLUZGREhFMjA0ODorVkVSUy1UTFMxLjM6JU5PX1RJQ0tFVFMiIFwKLSAgICAgICAgICIkUF9DTEkgY2FfZmlsZT1kYXRhX2ZpbGVzL3Rlc3QtY2EyLmNydCBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMTI4LUNDTS04LVNIQTI1NiBzaWdfYWxncz1lY2RzYV9zZWNwMjU2cjFfc2hhMjU2IGdyb3Vwcz1mZmRoZTIwNDgiIFwKKyAgICAgICAgICIkR19ORVhUX1NSVl9OT19DRVJUIC0taHR0cCAtLWRpc2FibGUtY2xpZW50LWNlcnQgLS1kZWJ1Zz00IC0teDUwOWNlcnRmaWxlICREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDI1NnIxLmNydCAtLXg1MDlrZXlmaWxlICREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDI1NnIxLmtleSAtLXByaW9yaXR5PU5PTkU6K0FFUy0xMjgtQ0NNLTg6K1NIQTI1NjorQUVBRDorU0lHTi1FQ0RTQS1TRUNQMjU2UjEtU0hBMjU2OitHUk9VUC1GRkRIRTIwNDg6K1ZFUlMtVExTMS4zOiVOT19USUNLRVRTIiBcCisgICAgICAgICAiJFBfQ0xJIGNhX2ZpbGU9JERBVEFfRklMRVNfUEFUSC90ZXN0LWNhMi5jcnQgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTEyOC1DQ00tOC1TSEEyNTYgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDI1NnIxX3NoYTI1NiBncm91cHM9ZmZkaGUyMDQ4IiBcCiAgICAgICAgICAwIFwKICAgICAgICAgIC1jICJIVFRQLzEuMCAyMDAgT0siIFwKICAgICAgICAgIC1jICJQcm90b2NvbCBpcyBUTFN2MS4zIiBcCkBAIC05MDM5LDggKzkwNDEsOCBAQAogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgUFNBX1dBTlRfQUxHX0ZGREgKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIFBTQV9XQU5UX0RIX1JGQzc5MTlfMjA0OAogcnVuX3Rlc3QgIlRMUyAxLjMgbS0+RzogQUVTXzEyOF9DQ01fOF9TSEEyNTYsZmZkaGUyMDQ4LGVjZHNhX3NlY3AzODRyMV9zaGEzODQiIFwKLSAgICAgICAgICIkR19ORVhUX1NSVl9OT19DRVJUIC0taHR0cCAtLWRpc2FibGUtY2xpZW50LWNlcnQgLS1kZWJ1Zz00IC0teDUwOWNlcnRmaWxlIGRhdGFfZmlsZXMvZWNkc2Ffc2VjcDM4NHIxLmNydCAtLXg1MDlrZXlmaWxlIGRhdGFfZmlsZXMvZWNkc2Ffc2VjcDM4NHIxLmtleSAtLXByaW9yaXR5PU5PTkU6K0FFUy0xMjgtQ0NNLTg6K1NIQTI1NjorQUVBRDorU0lHTi1FQ0RTQS1TRUNQMzg0UjEtU0hBMzg0OitHUk9VUC1GRkRIRTIwNDg6K1ZFUlMtVExTMS4zOiVOT19USUNLRVRTIiBcCi0gICAgICAgICAiJFBfQ0xJIGNhX2ZpbGU9ZGF0YV9maWxlcy90ZXN0LWNhMi5jcnQgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTEyOC1DQ00tOC1TSEEyNTYgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDM4NHIxX3NoYTM4NCBncm91cHM9ZmZkaGUyMDQ4IiBcCisgICAgICAgICAiJEdfTkVYVF9TUlZfTk9fQ0VSVCAtLWh0dHAgLS1kaXNhYmxlLWNsaWVudC1jZXJ0IC0tZGVidWc9NCAtLXg1MDljZXJ0ZmlsZSAkREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3AzODRyMS5jcnQgLS14NTA5a2V5ZmlsZSAkREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3AzODRyMS5rZXkgLS1wcmlvcml0eT1OT05FOitBRVMtMTI4LUNDTS04OitTSEEyNTY6K0FFQUQ6K1NJR04tRUNEU0EtU0VDUDM4NFIxLVNIQTM4NDorR1JPVVAtRkZESEUyMDQ4OitWRVJTLVRMUzEuMzolTk9fVElDS0VUUyIgXAorICAgICAgICAgIiRQX0NMSSBjYV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvdGVzdC1jYTIuY3J0IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0xMjgtQ0NNLTgtU0hBMjU2IHNpZ19hbGdzPWVjZHNhX3NlY3AzODRyMV9zaGEzODQgZ3JvdXBzPWZmZGhlMjA0OCIgXAogICAgICAgICAgMCBcCiAgICAgICAgICAtYyAiSFRUUC8xLjAgMjAwIE9LIiBcCiAgICAgICAgICAtYyAiUHJvdG9jb2wgaXMgVExTdjEuMyIgXApAQCAtOTA2MCw4ICs5MDYyLDggQEAKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIFBTQV9XQU5UX0FMR19GRkRICiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBQU0FfV0FOVF9ESF9SRkM3OTE5XzIwNDgKIHJ1bl90ZXN0ICJUTFMgMS4zIG0tPkc6IEFFU18xMjhfQ0NNXzhfU0hBMjU2LGZmZGhlMjA0OCxlY2RzYV9zZWNwNTIxcjFfc2hhNTEyIiBcCi0gICAgICAgICAiJEdfTkVYVF9TUlZfTk9fQ0VSVCAtLWh0dHAgLS1kaXNhYmxlLWNsaWVudC1jZXJ0IC0tZGVidWc9NCAtLXg1MDljZXJ0ZmlsZSBkYXRhX2ZpbGVzL2VjZHNhX3NlY3A1MjFyMS5jcnQgLS14NTA5a2V5ZmlsZSBkYXRhX2ZpbGVzL2VjZHNhX3NlY3A1MjFyMS5rZXkgLS1wcmlvcml0eT1OT05FOitBRVMtMTI4LUNDTS04OitTSEEyNTY6K0FFQUQ6K1NJR04tRUNEU0EtU0VDUDUyMVIxLVNIQTUxMjorR1JPVVAtRkZESEUyMDQ4OitWRVJTLVRMUzEuMzolTk9fVElDS0VUUyIgXAotICAgICAgICAgIiRQX0NMSSBjYV9maWxlPWRhdGFfZmlsZXMvdGVzdC1jYTIuY3J0IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0xMjgtQ0NNLTgtU0hBMjU2IHNpZ19hbGdzPWVjZHNhX3NlY3A1MjFyMV9zaGE1MTIgZ3JvdXBzPWZmZGhlMjA0OCIgXAorICAgICAgICAgIiRHX05FWFRfU1JWX05PX0NFUlQgLS1odHRwIC0tZGlzYWJsZS1jbGllbnQtY2VydCAtLWRlYnVnPTQgLS14NTA5Y2VydGZpbGUgJERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwNTIxcjEuY3J0IC0teDUwOWtleWZpbGUgJERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwNTIxcjEua2V5IC0tcHJpb3JpdHk9Tk9ORTorQUVTLTEyOC1DQ00tODorU0hBMjU2OitBRUFEOitTSUdOLUVDRFNBLVNFQ1A1MjFSMS1TSEE1MTI6K0dST1VQLUZGREhFMjA0ODorVkVSUy1UTFMxLjM6JU5PX1RJQ0tFVFMiIFwKKyAgICAgICAgICIkUF9DTEkgY2FfZmlsZT0kREFUQV9GSUxFU19QQVRIL3Rlc3QtY2EyLmNydCBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMTI4LUNDTS04LVNIQTI1NiBzaWdfYWxncz1lY2RzYV9zZWNwNTIxcjFfc2hhNTEyIGdyb3Vwcz1mZmRoZTIwNDgiIFwKICAgICAgICAgIDAgXAogICAgICAgICAgLWMgIkhUVFAvMS4wIDIwMCBPSyIgXAogICAgICAgICAgLWMgIlByb3RvY29sIGlzIFRMU3YxLjMiIFwKQEAgLTkwODIsOCArOTA4NCw4IEBACiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBQU0FfV0FOVF9BTEdfRkZESAogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgUFNBX1dBTlRfREhfUkZDNzkxOV8yMDQ4CiBydW5fdGVzdCAiVExTIDEuMyBtLT5HOiBBRVNfMTI4X0NDTV84X1NIQTI1NixmZmRoZTIwNDgscnNhX3Bzc19yc2FlX3NoYTI1NiIgXAotICAgICAgICAgIiRHX05FWFRfU1JWX05PX0NFUlQgLS1odHRwIC0tZGlzYWJsZS1jbGllbnQtY2VydCAtLWRlYnVnPTQgLS14NTA5Y2VydGZpbGUgZGF0YV9maWxlcy9zZXJ2ZXIyLXNoYTI1Ni5jcnQgLS14NTA5a2V5ZmlsZSBkYXRhX2ZpbGVzL3NlcnZlcjIua2V5IC0tcHJpb3JpdHk9Tk9ORTorQUVTLTEyOC1DQ00tODorU0hBMjU2OitBRUFEOitTSUdOLVJTQS1QU1MtUlNBRS1TSEEyNTY6K0dST1VQLUZGREhFMjA0ODorVkVSUy1UTFMxLjM6JU5PX1RJQ0tFVFMiIFwKLSAgICAgICAgICIkUF9DTEkgY2FfZmlsZT1kYXRhX2ZpbGVzL3Rlc3QtY2FfY2F0MTIuY3J0IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0xMjgtQ0NNLTgtU0hBMjU2IHNpZ19hbGdzPXJzYV9wc3NfcnNhZV9zaGEyNTYgZ3JvdXBzPWZmZGhlMjA0OCIgXAorICAgICAgICAgIiRHX05FWFRfU1JWX05PX0NFUlQgLS1odHRwIC0tZGlzYWJsZS1jbGllbnQtY2VydCAtLWRlYnVnPTQgLS14NTA5Y2VydGZpbGUgJERBVEFfRklMRVNfUEFUSC9zZXJ2ZXIyLXNoYTI1Ni5jcnQgLS14NTA5a2V5ZmlsZSAkREFUQV9GSUxFU19QQVRIL3NlcnZlcjIua2V5IC0tcHJpb3JpdHk9Tk9ORTorQUVTLTEyOC1DQ00tODorU0hBMjU2OitBRUFEOitTSUdOLVJTQS1QU1MtUlNBRS1TSEEyNTY6K0dST1VQLUZGREhFMjA0ODorVkVSUy1UTFMxLjM6JU5PX1RJQ0tFVFMiIFwKKyAgICAgICAgICIkUF9DTEkgY2FfZmlsZT0kREFUQV9GSUxFU19QQVRIL3Rlc3QtY2FfY2F0MTIuY3J0IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0xMjgtQ0NNLTgtU0hBMjU2IHNpZ19hbGdzPXJzYV9wc3NfcnNhZV9zaGEyNTYgZ3JvdXBzPWZmZGhlMjA0OCIgXAogICAgICAgICAgMCBcCiAgICAgICAgICAtYyAiSFRUUC8xLjAgMjAwIE9LIiBcCiAgICAgICAgICAtYyAiUHJvdG9jb2wgaXMgVExTdjEuMyIgXApAQCAtOTEwNCw4ICs5MTA2LDggQEAKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIE1CRURUTFNfU1NMX1RMUzFfM19DT01QQVRJQklMSVRZX01PREUKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIFBTQV9XQU5UX0FMR19FQ0RICiBydW5fdGVzdCAiVExTIDEuMyBtLT5tOiBBRVNfMTI4X0dDTV9TSEEyNTYsc2VjcDI1NnIxLGVjZHNhX3NlY3AyNTZyMV9zaGEyNTYiIFwKLSAgICAgICAgICIkUF9TUlYgY3J0X2ZpbGU9ZGF0YV9maWxlcy9lY2RzYV9zZWNwMjU2cjEuY3J0IGtleV9maWxlPWRhdGFfZmlsZXMvZWNkc2Ffc2VjcDI1NnIxLmtleSBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMTI4LUdDTS1TSEEyNTYgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDI1NnIxX3NoYTI1NiBncm91cHM9c2VjcDI1NnIxIHRsczEzX2tleF9tb2Rlcz1lcGhlbWVyYWwgY29va2llcz0wIHRpY2tldHM9MCIgXAotICAgICAgICAgIiRQX0NMSSBjYV9maWxlPWRhdGFfZmlsZXMvdGVzdC1jYTIuY3J0IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0xMjgtR0NNLVNIQTI1NiBzaWdfYWxncz1lY2RzYV9zZWNwMjU2cjFfc2hhMjU2IGdyb3Vwcz1zZWNwMjU2cjEiIFwKKyAgICAgICAgICIkUF9TUlYgY3J0X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwMjU2cjEuY3J0IGtleV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDI1NnIxLmtleSBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMTI4LUdDTS1TSEEyNTYgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDI1NnIxX3NoYTI1NiBncm91cHM9c2VjcDI1NnIxIHRsczEzX2tleF9tb2Rlcz1lcGhlbWVyYWwgY29va2llcz0wIHRpY2tldHM9MCIgXAorICAgICAgICAgIiRQX0NMSSBjYV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvdGVzdC1jYTIuY3J0IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0xMjgtR0NNLVNIQTI1NiBzaWdfYWxncz1lY2RzYV9zZWNwMjU2cjFfc2hhMjU2IGdyb3Vwcz1zZWNwMjU2cjEiIFwKICAgICAgICAgIDAgXAogICAgICAgICAgLXMgIlByb3RvY29sIGlzIFRMU3YxLjMiIFwKICAgICAgICAgIC1zICJzZXJ2ZXIgaGVsbG8sIGNob3NlbiBjaXBoZXJzdWl0ZTogVExTMS0zLUFFUy0xMjgtR0NNLVNIQTI1NiAoIGlkPTQ4NjUgKSIgXApAQCAtOTEzMCw4ICs5MTMyLDggQEAKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIE1CRURUTFNfU1NMX1RMUzFfM19DT01QQVRJQklMSVRZX01PREUKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIFBTQV9XQU5UX0FMR19FQ0RICiBydW5fdGVzdCAiVExTIDEuMyBtLT5tOiBBRVNfMTI4X0dDTV9TSEEyNTYsc2VjcDI1NnIxLGVjZHNhX3NlY3AzODRyMV9zaGEzODQiIFwKLSAgICAgICAgICIkUF9TUlYgY3J0X2ZpbGU9ZGF0YV9maWxlcy9lY2RzYV9zZWNwMzg0cjEuY3J0IGtleV9maWxlPWRhdGFfZmlsZXMvZWNkc2Ffc2VjcDM4NHIxLmtleSBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMTI4LUdDTS1TSEEyNTYgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDM4NHIxX3NoYTM4NCBncm91cHM9c2VjcDI1NnIxIHRsczEzX2tleF9tb2Rlcz1lcGhlbWVyYWwgY29va2llcz0wIHRpY2tldHM9MCIgXAotICAgICAgICAgIiRQX0NMSSBjYV9maWxlPWRhdGFfZmlsZXMvdGVzdC1jYTIuY3J0IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0xMjgtR0NNLVNIQTI1NiBzaWdfYWxncz1lY2RzYV9zZWNwMzg0cjFfc2hhMzg0IGdyb3Vwcz1zZWNwMjU2cjEiIFwKKyAgICAgICAgICIkUF9TUlYgY3J0X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwMzg0cjEuY3J0IGtleV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDM4NHIxLmtleSBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMTI4LUdDTS1TSEEyNTYgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDM4NHIxX3NoYTM4NCBncm91cHM9c2VjcDI1NnIxIHRsczEzX2tleF9tb2Rlcz1lcGhlbWVyYWwgY29va2llcz0wIHRpY2tldHM9MCIgXAorICAgICAgICAgIiRQX0NMSSBjYV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvdGVzdC1jYTIuY3J0IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0xMjgtR0NNLVNIQTI1NiBzaWdfYWxncz1lY2RzYV9zZWNwMzg0cjFfc2hhMzg0IGdyb3Vwcz1zZWNwMjU2cjEiIFwKICAgICAgICAgIDAgXAogICAgICAgICAgLXMgIlByb3RvY29sIGlzIFRMU3YxLjMiIFwKICAgICAgICAgIC1zICJzZXJ2ZXIgaGVsbG8sIGNob3NlbiBjaXBoZXJzdWl0ZTogVExTMS0zLUFFUy0xMjgtR0NNLVNIQTI1NiAoIGlkPTQ4NjUgKSIgXApAQCAtOTE1Niw4ICs5MTU4LDggQEAKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIE1CRURUTFNfU1NMX1RMUzFfM19DT01QQVRJQklMSVRZX01PREUKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIFBTQV9XQU5UX0FMR19FQ0RICiBydW5fdGVzdCAiVExTIDEuMyBtLT5tOiBBRVNfMTI4X0dDTV9TSEEyNTYsc2VjcDI1NnIxLGVjZHNhX3NlY3A1MjFyMV9zaGE1MTIiIFwKLSAgICAgICAgICIkUF9TUlYgY3J0X2ZpbGU9ZGF0YV9maWxlcy9lY2RzYV9zZWNwNTIxcjEuY3J0IGtleV9maWxlPWRhdGFfZmlsZXMvZWNkc2Ffc2VjcDUyMXIxLmtleSBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMTI4LUdDTS1TSEEyNTYgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDUyMXIxX3NoYTUxMiBncm91cHM9c2VjcDI1NnIxIHRsczEzX2tleF9tb2Rlcz1lcGhlbWVyYWwgY29va2llcz0wIHRpY2tldHM9MCIgXAotICAgICAgICAgIiRQX0NMSSBjYV9maWxlPWRhdGFfZmlsZXMvdGVzdC1jYTIuY3J0IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0xMjgtR0NNLVNIQTI1NiBzaWdfYWxncz1lY2RzYV9zZWNwNTIxcjFfc2hhNTEyIGdyb3Vwcz1zZWNwMjU2cjEiIFwKKyAgICAgICAgICIkUF9TUlYgY3J0X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwNTIxcjEuY3J0IGtleV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDUyMXIxLmtleSBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMTI4LUdDTS1TSEEyNTYgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDUyMXIxX3NoYTUxMiBncm91cHM9c2VjcDI1NnIxIHRsczEzX2tleF9tb2Rlcz1lcGhlbWVyYWwgY29va2llcz0wIHRpY2tldHM9MCIgXAorICAgICAgICAgIiRQX0NMSSBjYV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvdGVzdC1jYTIuY3J0IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0xMjgtR0NNLVNIQTI1NiBzaWdfYWxncz1lY2RzYV9zZWNwNTIxcjFfc2hhNTEyIGdyb3Vwcz1zZWNwMjU2cjEiIFwKICAgICAgICAgIDAgXAogICAgICAgICAgLXMgIlByb3RvY29sIGlzIFRMU3YxLjMiIFwKICAgICAgICAgIC1zICJzZXJ2ZXIgaGVsbG8sIGNob3NlbiBjaXBoZXJzdWl0ZTogVExTMS0zLUFFUy0xMjgtR0NNLVNIQTI1NiAoIGlkPTQ4NjUgKSIgXApAQCAtOTE4NCw4ICs5MTg2LDggQEAKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIE1CRURUTFNfWDUwOV9SU0FTU0FfUFNTX1NVUFBPUlQKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIFBTQV9XQU5UX0FMR19FQ0RICiBydW5fdGVzdCAiVExTIDEuMyBtLT5tOiBBRVNfMTI4X0dDTV9TSEEyNTYsc2VjcDI1NnIxLHJzYV9wc3NfcnNhZV9zaGEyNTYiIFwKLSAgICAgICAgICIkUF9TUlYgY3J0X2ZpbGU9ZGF0YV9maWxlcy9zZXJ2ZXIyLXNoYTI1Ni5jcnQga2V5X2ZpbGU9ZGF0YV9maWxlcy9zZXJ2ZXIyLmtleSBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMTI4LUdDTS1TSEEyNTYgc2lnX2FsZ3M9cnNhX3Bzc19yc2FlX3NoYTI1NiBncm91cHM9c2VjcDI1NnIxIHRsczEzX2tleF9tb2Rlcz1lcGhlbWVyYWwgY29va2llcz0wIHRpY2tldHM9MCIgXAotICAgICAgICAgIiRQX0NMSSBjYV9maWxlPWRhdGFfZmlsZXMvdGVzdC1jYV9jYXQxMi5jcnQgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTEyOC1HQ00tU0hBMjU2IHNpZ19hbGdzPXJzYV9wc3NfcnNhZV9zaGEyNTYgZ3JvdXBzPXNlY3AyNTZyMSIgXAorICAgICAgICAgIiRQX1NSViBjcnRfZmlsZT0kREFUQV9GSUxFU19QQVRIL3NlcnZlcjItc2hhMjU2LmNydCBrZXlfZmlsZT0kREFUQV9GSUxFU19QQVRIL3NlcnZlcjIua2V5IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0xMjgtR0NNLVNIQTI1NiBzaWdfYWxncz1yc2FfcHNzX3JzYWVfc2hhMjU2IGdyb3Vwcz1zZWNwMjU2cjEgdGxzMTNfa2V4X21vZGVzPWVwaGVtZXJhbCBjb29raWVzPTAgdGlja2V0cz0wIiBcCisgICAgICAgICAiJFBfQ0xJIGNhX2ZpbGU9JERBVEFfRklMRVNfUEFUSC90ZXN0LWNhX2NhdDEyLmNydCBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMTI4LUdDTS1TSEEyNTYgc2lnX2FsZ3M9cnNhX3Bzc19yc2FlX3NoYTI1NiBncm91cHM9c2VjcDI1NnIxIiBcCiAgICAgICAgICAwIFwKICAgICAgICAgIC1zICJQcm90b2NvbCBpcyBUTFN2MS4zIiBcCiAgICAgICAgICAtcyAic2VydmVyIGhlbGxvLCBjaG9zZW4gY2lwaGVyc3VpdGU6IFRMUzEtMy1BRVMtMTI4LUdDTS1TSEEyNTYgKCBpZD00ODY1ICkiIFwKQEAgLTkyMTAsOCArOTIxMiw4IEBACiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBNQkVEVExTX1NTTF9UTFMxXzNfQ09NUEFUSUJJTElUWV9NT0RFCiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBQU0FfV0FOVF9BTEdfRUNESAogcnVuX3Rlc3QgIlRMUyAxLjMgbS0+bTogQUVTXzEyOF9HQ01fU0hBMjU2LHNlY3AzODRyMSxlY2RzYV9zZWNwMjU2cjFfc2hhMjU2IiBcCi0gICAgICAgICAiJFBfU1JWIGNydF9maWxlPWRhdGFfZmlsZXMvZWNkc2Ffc2VjcDI1NnIxLmNydCBrZXlfZmlsZT1kYXRhX2ZpbGVzL2VjZHNhX3NlY3AyNTZyMS5rZXkgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTEyOC1HQ00tU0hBMjU2IHNpZ19hbGdzPWVjZHNhX3NlY3AyNTZyMV9zaGEyNTYgZ3JvdXBzPXNlY3AzODRyMSB0bHMxM19rZXhfbW9kZXM9ZXBoZW1lcmFsIGNvb2tpZXM9MCB0aWNrZXRzPTAiIFwKLSAgICAgICAgICIkUF9DTEkgY2FfZmlsZT1kYXRhX2ZpbGVzL3Rlc3QtY2EyLmNydCBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMTI4LUdDTS1TSEEyNTYgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDI1NnIxX3NoYTI1NiBncm91cHM9c2VjcDM4NHIxIiBcCisgICAgICAgICAiJFBfU1JWIGNydF9maWxlPSREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDI1NnIxLmNydCBrZXlfZmlsZT0kREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3AyNTZyMS5rZXkgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTEyOC1HQ00tU0hBMjU2IHNpZ19hbGdzPWVjZHNhX3NlY3AyNTZyMV9zaGEyNTYgZ3JvdXBzPXNlY3AzODRyMSB0bHMxM19rZXhfbW9kZXM9ZXBoZW1lcmFsIGNvb2tpZXM9MCB0aWNrZXRzPTAiIFwKKyAgICAgICAgICIkUF9DTEkgY2FfZmlsZT0kREFUQV9GSUxFU19QQVRIL3Rlc3QtY2EyLmNydCBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMTI4LUdDTS1TSEEyNTYgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDI1NnIxX3NoYTI1NiBncm91cHM9c2VjcDM4NHIxIiBcCiAgICAgICAgICAwIFwKICAgICAgICAgIC1zICJQcm90b2NvbCBpcyBUTFN2MS4zIiBcCiAgICAgICAgICAtcyAic2VydmVyIGhlbGxvLCBjaG9zZW4gY2lwaGVyc3VpdGU6IFRMUzEtMy1BRVMtMTI4LUdDTS1TSEEyNTYgKCBpZD00ODY1ICkiIFwKQEAgLTkyMzYsOCArOTIzOCw4IEBACiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBNQkVEVExTX1NTTF9UTFMxXzNfQ09NUEFUSUJJTElUWV9NT0RFCiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBQU0FfV0FOVF9BTEdfRUNESAogcnVuX3Rlc3QgIlRMUyAxLjMgbS0+bTogQUVTXzEyOF9HQ01fU0hBMjU2LHNlY3AzODRyMSxlY2RzYV9zZWNwMzg0cjFfc2hhMzg0IiBcCi0gICAgICAgICAiJFBfU1JWIGNydF9maWxlPWRhdGFfZmlsZXMvZWNkc2Ffc2VjcDM4NHIxLmNydCBrZXlfZmlsZT1kYXRhX2ZpbGVzL2VjZHNhX3NlY3AzODRyMS5rZXkgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTEyOC1HQ00tU0hBMjU2IHNpZ19hbGdzPWVjZHNhX3NlY3AzODRyMV9zaGEzODQgZ3JvdXBzPXNlY3AzODRyMSB0bHMxM19rZXhfbW9kZXM9ZXBoZW1lcmFsIGNvb2tpZXM9MCB0aWNrZXRzPTAiIFwKLSAgICAgICAgICIkUF9DTEkgY2FfZmlsZT1kYXRhX2ZpbGVzL3Rlc3QtY2EyLmNydCBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMTI4LUdDTS1TSEEyNTYgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDM4NHIxX3NoYTM4NCBncm91cHM9c2VjcDM4NHIxIiBcCisgICAgICAgICAiJFBfU1JWIGNydF9maWxlPSREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDM4NHIxLmNydCBrZXlfZmlsZT0kREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3AzODRyMS5rZXkgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTEyOC1HQ00tU0hBMjU2IHNpZ19hbGdzPWVjZHNhX3NlY3AzODRyMV9zaGEzODQgZ3JvdXBzPXNlY3AzODRyMSB0bHMxM19rZXhfbW9kZXM9ZXBoZW1lcmFsIGNvb2tpZXM9MCB0aWNrZXRzPTAiIFwKKyAgICAgICAgICIkUF9DTEkgY2FfZmlsZT0kREFUQV9GSUxFU19QQVRIL3Rlc3QtY2EyLmNydCBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMTI4LUdDTS1TSEEyNTYgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDM4NHIxX3NoYTM4NCBncm91cHM9c2VjcDM4NHIxIiBcCiAgICAgICAgICAwIFwKICAgICAgICAgIC1zICJQcm90b2NvbCBpcyBUTFN2MS4zIiBcCiAgICAgICAgICAtcyAic2VydmVyIGhlbGxvLCBjaG9zZW4gY2lwaGVyc3VpdGU6IFRMUzEtMy1BRVMtMTI4LUdDTS1TSEEyNTYgKCBpZD00ODY1ICkiIFwKQEAgLTkyNjIsOCArOTI2NCw4IEBACiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBNQkVEVExTX1NTTF9UTFMxXzNfQ09NUEFUSUJJTElUWV9NT0RFCiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBQU0FfV0FOVF9BTEdfRUNESAogcnVuX3Rlc3QgIlRMUyAxLjMgbS0+bTogQUVTXzEyOF9HQ01fU0hBMjU2LHNlY3AzODRyMSxlY2RzYV9zZWNwNTIxcjFfc2hhNTEyIiBcCi0gICAgICAgICAiJFBfU1JWIGNydF9maWxlPWRhdGFfZmlsZXMvZWNkc2Ffc2VjcDUyMXIxLmNydCBrZXlfZmlsZT1kYXRhX2ZpbGVzL2VjZHNhX3NlY3A1MjFyMS5rZXkgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTEyOC1HQ00tU0hBMjU2IHNpZ19hbGdzPWVjZHNhX3NlY3A1MjFyMV9zaGE1MTIgZ3JvdXBzPXNlY3AzODRyMSB0bHMxM19rZXhfbW9kZXM9ZXBoZW1lcmFsIGNvb2tpZXM9MCB0aWNrZXRzPTAiIFwKLSAgICAgICAgICIkUF9DTEkgY2FfZmlsZT1kYXRhX2ZpbGVzL3Rlc3QtY2EyLmNydCBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMTI4LUdDTS1TSEEyNTYgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDUyMXIxX3NoYTUxMiBncm91cHM9c2VjcDM4NHIxIiBcCisgICAgICAgICAiJFBfU1JWIGNydF9maWxlPSREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDUyMXIxLmNydCBrZXlfZmlsZT0kREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3A1MjFyMS5rZXkgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTEyOC1HQ00tU0hBMjU2IHNpZ19hbGdzPWVjZHNhX3NlY3A1MjFyMV9zaGE1MTIgZ3JvdXBzPXNlY3AzODRyMSB0bHMxM19rZXhfbW9kZXM9ZXBoZW1lcmFsIGNvb2tpZXM9MCB0aWNrZXRzPTAiIFwKKyAgICAgICAgICIkUF9DTEkgY2FfZmlsZT0kREFUQV9GSUxFU19QQVRIL3Rlc3QtY2EyLmNydCBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMTI4LUdDTS1TSEEyNTYgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDUyMXIxX3NoYTUxMiBncm91cHM9c2VjcDM4NHIxIiBcCiAgICAgICAgICAwIFwKICAgICAgICAgIC1zICJQcm90b2NvbCBpcyBUTFN2MS4zIiBcCiAgICAgICAgICAtcyAic2VydmVyIGhlbGxvLCBjaG9zZW4gY2lwaGVyc3VpdGU6IFRMUzEtMy1BRVMtMTI4LUdDTS1TSEEyNTYgKCBpZD00ODY1ICkiIFwKQEAgLTkyOTAsOCArOTI5Miw4IEBACiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBNQkVEVExTX1g1MDlfUlNBU1NBX1BTU19TVVBQT1JUCiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBQU0FfV0FOVF9BTEdfRUNESAogcnVuX3Rlc3QgIlRMUyAxLjMgbS0+bTogQUVTXzEyOF9HQ01fU0hBMjU2LHNlY3AzODRyMSxyc2FfcHNzX3JzYWVfc2hhMjU2IiBcCi0gICAgICAgICAiJFBfU1JWIGNydF9maWxlPWRhdGFfZmlsZXMvc2VydmVyMi1zaGEyNTYuY3J0IGtleV9maWxlPWRhdGFfZmlsZXMvc2VydmVyMi5rZXkgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTEyOC1HQ00tU0hBMjU2IHNpZ19hbGdzPXJzYV9wc3NfcnNhZV9zaGEyNTYgZ3JvdXBzPXNlY3AzODRyMSB0bHMxM19rZXhfbW9kZXM9ZXBoZW1lcmFsIGNvb2tpZXM9MCB0aWNrZXRzPTAiIFwKLSAgICAgICAgICIkUF9DTEkgY2FfZmlsZT1kYXRhX2ZpbGVzL3Rlc3QtY2FfY2F0MTIuY3J0IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0xMjgtR0NNLVNIQTI1NiBzaWdfYWxncz1yc2FfcHNzX3JzYWVfc2hhMjU2IGdyb3Vwcz1zZWNwMzg0cjEiIFwKKyAgICAgICAgICIkUF9TUlYgY3J0X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9zZXJ2ZXIyLXNoYTI1Ni5jcnQga2V5X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9zZXJ2ZXIyLmtleSBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMTI4LUdDTS1TSEEyNTYgc2lnX2FsZ3M9cnNhX3Bzc19yc2FlX3NoYTI1NiBncm91cHM9c2VjcDM4NHIxIHRsczEzX2tleF9tb2Rlcz1lcGhlbWVyYWwgY29va2llcz0wIHRpY2tldHM9MCIgXAorICAgICAgICAgIiRQX0NMSSBjYV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvdGVzdC1jYV9jYXQxMi5jcnQgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTEyOC1HQ00tU0hBMjU2IHNpZ19hbGdzPXJzYV9wc3NfcnNhZV9zaGEyNTYgZ3JvdXBzPXNlY3AzODRyMSIgXAogICAgICAgICAgMCBcCiAgICAgICAgICAtcyAiUHJvdG9jb2wgaXMgVExTdjEuMyIgXAogICAgICAgICAgLXMgInNlcnZlciBoZWxsbywgY2hvc2VuIGNpcGhlcnN1aXRlOiBUTFMxLTMtQUVTLTEyOC1HQ00tU0hBMjU2ICggaWQ9NDg2NSApIiBcCkBAIC05MzE2LDggKzkzMTgsOCBAQAogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgTUJFRFRMU19TU0xfVExTMV8zX0NPTVBBVElCSUxJVFlfTU9ERQogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgUFNBX1dBTlRfQUxHX0VDREgKIHJ1bl90ZXN0ICJUTFMgMS4zIG0tPm06IEFFU18xMjhfR0NNX1NIQTI1NixzZWNwNTIxcjEsZWNkc2Ffc2VjcDI1NnIxX3NoYTI1NiIgXAotICAgICAgICAgIiRQX1NSViBjcnRfZmlsZT1kYXRhX2ZpbGVzL2VjZHNhX3NlY3AyNTZyMS5jcnQga2V5X2ZpbGU9ZGF0YV9maWxlcy9lY2RzYV9zZWNwMjU2cjEua2V5IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0xMjgtR0NNLVNIQTI1NiBzaWdfYWxncz1lY2RzYV9zZWNwMjU2cjFfc2hhMjU2IGdyb3Vwcz1zZWNwNTIxcjEgdGxzMTNfa2V4X21vZGVzPWVwaGVtZXJhbCBjb29raWVzPTAgdGlja2V0cz0wIiBcCi0gICAgICAgICAiJFBfQ0xJIGNhX2ZpbGU9ZGF0YV9maWxlcy90ZXN0LWNhMi5jcnQgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTEyOC1HQ00tU0hBMjU2IHNpZ19hbGdzPWVjZHNhX3NlY3AyNTZyMV9zaGEyNTYgZ3JvdXBzPXNlY3A1MjFyMSIgXAorICAgICAgICAgIiRQX1NSViBjcnRfZmlsZT0kREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3AyNTZyMS5jcnQga2V5X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwMjU2cjEua2V5IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0xMjgtR0NNLVNIQTI1NiBzaWdfYWxncz1lY2RzYV9zZWNwMjU2cjFfc2hhMjU2IGdyb3Vwcz1zZWNwNTIxcjEgdGxzMTNfa2V4X21vZGVzPWVwaGVtZXJhbCBjb29raWVzPTAgdGlja2V0cz0wIiBcCisgICAgICAgICAiJFBfQ0xJIGNhX2ZpbGU9JERBVEFfRklMRVNfUEFUSC90ZXN0LWNhMi5jcnQgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTEyOC1HQ00tU0hBMjU2IHNpZ19hbGdzPWVjZHNhX3NlY3AyNTZyMV9zaGEyNTYgZ3JvdXBzPXNlY3A1MjFyMSIgXAogICAgICAgICAgMCBcCiAgICAgICAgICAtcyAiUHJvdG9jb2wgaXMgVExTdjEuMyIgXAogICAgICAgICAgLXMgInNlcnZlciBoZWxsbywgY2hvc2VuIGNpcGhlcnN1aXRlOiBUTFMxLTMtQUVTLTEyOC1HQ00tU0hBMjU2ICggaWQ9NDg2NSApIiBcCkBAIC05MzQyLDggKzkzNDQsOCBAQAogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgTUJFRFRMU19TU0xfVExTMV8zX0NPTVBBVElCSUxJVFlfTU9ERQogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgUFNBX1dBTlRfQUxHX0VDREgKIHJ1bl90ZXN0ICJUTFMgMS4zIG0tPm06IEFFU18xMjhfR0NNX1NIQTI1NixzZWNwNTIxcjEsZWNkc2Ffc2VjcDM4NHIxX3NoYTM4NCIgXAotICAgICAgICAgIiRQX1NSViBjcnRfZmlsZT1kYXRhX2ZpbGVzL2VjZHNhX3NlY3AzODRyMS5jcnQga2V5X2ZpbGU9ZGF0YV9maWxlcy9lY2RzYV9zZWNwMzg0cjEua2V5IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0xMjgtR0NNLVNIQTI1NiBzaWdfYWxncz1lY2RzYV9zZWNwMzg0cjFfc2hhMzg0IGdyb3Vwcz1zZWNwNTIxcjEgdGxzMTNfa2V4X21vZGVzPWVwaGVtZXJhbCBjb29raWVzPTAgdGlja2V0cz0wIiBcCi0gICAgICAgICAiJFBfQ0xJIGNhX2ZpbGU9ZGF0YV9maWxlcy90ZXN0LWNhMi5jcnQgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTEyOC1HQ00tU0hBMjU2IHNpZ19hbGdzPWVjZHNhX3NlY3AzODRyMV9zaGEzODQgZ3JvdXBzPXNlY3A1MjFyMSIgXAorICAgICAgICAgIiRQX1NSViBjcnRfZmlsZT0kREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3AzODRyMS5jcnQga2V5X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwMzg0cjEua2V5IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0xMjgtR0NNLVNIQTI1NiBzaWdfYWxncz1lY2RzYV9zZWNwMzg0cjFfc2hhMzg0IGdyb3Vwcz1zZWNwNTIxcjEgdGxzMTNfa2V4X21vZGVzPWVwaGVtZXJhbCBjb29raWVzPTAgdGlja2V0cz0wIiBcCisgICAgICAgICAiJFBfQ0xJIGNhX2ZpbGU9JERBVEFfRklMRVNfUEFUSC90ZXN0LWNhMi5jcnQgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTEyOC1HQ00tU0hBMjU2IHNpZ19hbGdzPWVjZHNhX3NlY3AzODRyMV9zaGEzODQgZ3JvdXBzPXNlY3A1MjFyMSIgXAogICAgICAgICAgMCBcCiAgICAgICAgICAtcyAiUHJvdG9jb2wgaXMgVExTdjEuMyIgXAogICAgICAgICAgLXMgInNlcnZlciBoZWxsbywgY2hvc2VuIGNpcGhlcnN1aXRlOiBUTFMxLTMtQUVTLTEyOC1HQ00tU0hBMjU2ICggaWQ9NDg2NSApIiBcCkBAIC05MzY4LDggKzkzNzAsOCBAQAogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgTUJFRFRMU19TU0xfVExTMV8zX0NPTVBBVElCSUxJVFlfTU9ERQogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgUFNBX1dBTlRfQUxHX0VDREgKIHJ1bl90ZXN0ICJUTFMgMS4zIG0tPm06IEFFU18xMjhfR0NNX1NIQTI1NixzZWNwNTIxcjEsZWNkc2Ffc2VjcDUyMXIxX3NoYTUxMiIgXAotICAgICAgICAgIiRQX1NSViBjcnRfZmlsZT1kYXRhX2ZpbGVzL2VjZHNhX3NlY3A1MjFyMS5jcnQga2V5X2ZpbGU9ZGF0YV9maWxlcy9lY2RzYV9zZWNwNTIxcjEua2V5IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0xMjgtR0NNLVNIQTI1NiBzaWdfYWxncz1lY2RzYV9zZWNwNTIxcjFfc2hhNTEyIGdyb3Vwcz1zZWNwNTIxcjEgdGxzMTNfa2V4X21vZGVzPWVwaGVtZXJhbCBjb29raWVzPTAgdGlja2V0cz0wIiBcCi0gICAgICAgICAiJFBfQ0xJIGNhX2ZpbGU9ZGF0YV9maWxlcy90ZXN0LWNhMi5jcnQgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTEyOC1HQ00tU0hBMjU2IHNpZ19hbGdzPWVjZHNhX3NlY3A1MjFyMV9zaGE1MTIgZ3JvdXBzPXNlY3A1MjFyMSIgXAorICAgICAgICAgIiRQX1NSViBjcnRfZmlsZT0kREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3A1MjFyMS5jcnQga2V5X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwNTIxcjEua2V5IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0xMjgtR0NNLVNIQTI1NiBzaWdfYWxncz1lY2RzYV9zZWNwNTIxcjFfc2hhNTEyIGdyb3Vwcz1zZWNwNTIxcjEgdGxzMTNfa2V4X21vZGVzPWVwaGVtZXJhbCBjb29raWVzPTAgdGlja2V0cz0wIiBcCisgICAgICAgICAiJFBfQ0xJIGNhX2ZpbGU9JERBVEFfRklMRVNfUEFUSC90ZXN0LWNhMi5jcnQgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTEyOC1HQ00tU0hBMjU2IHNpZ19hbGdzPWVjZHNhX3NlY3A1MjFyMV9zaGE1MTIgZ3JvdXBzPXNlY3A1MjFyMSIgXAogICAgICAgICAgMCBcCiAgICAgICAgICAtcyAiUHJvdG9jb2wgaXMgVExTdjEuMyIgXAogICAgICAgICAgLXMgInNlcnZlciBoZWxsbywgY2hvc2VuIGNpcGhlcnN1aXRlOiBUTFMxLTMtQUVTLTEyOC1HQ00tU0hBMjU2ICggaWQ9NDg2NSApIiBcCkBAIC05Mzk2LDggKzkzOTgsOCBAQAogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgTUJFRFRMU19YNTA5X1JTQVNTQV9QU1NfU1VQUE9SVAogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgUFNBX1dBTlRfQUxHX0VDREgKIHJ1bl90ZXN0ICJUTFMgMS4zIG0tPm06IEFFU18xMjhfR0NNX1NIQTI1NixzZWNwNTIxcjEscnNhX3Bzc19yc2FlX3NoYTI1NiIgXAotICAgICAgICAgIiRQX1NSViBjcnRfZmlsZT1kYXRhX2ZpbGVzL3NlcnZlcjItc2hhMjU2LmNydCBrZXlfZmlsZT1kYXRhX2ZpbGVzL3NlcnZlcjIua2V5IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0xMjgtR0NNLVNIQTI1NiBzaWdfYWxncz1yc2FfcHNzX3JzYWVfc2hhMjU2IGdyb3Vwcz1zZWNwNTIxcjEgdGxzMTNfa2V4X21vZGVzPWVwaGVtZXJhbCBjb29raWVzPTAgdGlja2V0cz0wIiBcCi0gICAgICAgICAiJFBfQ0xJIGNhX2ZpbGU9ZGF0YV9maWxlcy90ZXN0LWNhX2NhdDEyLmNydCBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMTI4LUdDTS1TSEEyNTYgc2lnX2FsZ3M9cnNhX3Bzc19yc2FlX3NoYTI1NiBncm91cHM9c2VjcDUyMXIxIiBcCisgICAgICAgICAiJFBfU1JWIGNydF9maWxlPSREQVRBX0ZJTEVTX1BBVEgvc2VydmVyMi1zaGEyNTYuY3J0IGtleV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvc2VydmVyMi5rZXkgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTEyOC1HQ00tU0hBMjU2IHNpZ19hbGdzPXJzYV9wc3NfcnNhZV9zaGEyNTYgZ3JvdXBzPXNlY3A1MjFyMSB0bHMxM19rZXhfbW9kZXM9ZXBoZW1lcmFsIGNvb2tpZXM9MCB0aWNrZXRzPTAiIFwKKyAgICAgICAgICIkUF9DTEkgY2FfZmlsZT0kREFUQV9GSUxFU19QQVRIL3Rlc3QtY2FfY2F0MTIuY3J0IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0xMjgtR0NNLVNIQTI1NiBzaWdfYWxncz1yc2FfcHNzX3JzYWVfc2hhMjU2IGdyb3Vwcz1zZWNwNTIxcjEiIFwKICAgICAgICAgIDAgXAogICAgICAgICAgLXMgIlByb3RvY29sIGlzIFRMU3YxLjMiIFwKICAgICAgICAgIC1zICJzZXJ2ZXIgaGVsbG8sIGNob3NlbiBjaXBoZXJzdWl0ZTogVExTMS0zLUFFUy0xMjgtR0NNLVNIQTI1NiAoIGlkPTQ4NjUgKSIgXApAQCAtOTQyMiw4ICs5NDI0LDggQEAKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIE1CRURUTFNfU1NMX1RMUzFfM19DT01QQVRJQklMSVRZX01PREUKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIFBTQV9XQU5UX0FMR19FQ0RICiBydW5fdGVzdCAiVExTIDEuMyBtLT5tOiBBRVNfMTI4X0dDTV9TSEEyNTYseDI1NTE5LGVjZHNhX3NlY3AyNTZyMV9zaGEyNTYiIFwKLSAgICAgICAgICIkUF9TUlYgY3J0X2ZpbGU9ZGF0YV9maWxlcy9lY2RzYV9zZWNwMjU2cjEuY3J0IGtleV9maWxlPWRhdGFfZmlsZXMvZWNkc2Ffc2VjcDI1NnIxLmtleSBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMTI4LUdDTS1TSEEyNTYgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDI1NnIxX3NoYTI1NiBncm91cHM9eDI1NTE5IHRsczEzX2tleF9tb2Rlcz1lcGhlbWVyYWwgY29va2llcz0wIHRpY2tldHM9MCIgXAotICAgICAgICAgIiRQX0NMSSBjYV9maWxlPWRhdGFfZmlsZXMvdGVzdC1jYTIuY3J0IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0xMjgtR0NNLVNIQTI1NiBzaWdfYWxncz1lY2RzYV9zZWNwMjU2cjFfc2hhMjU2IGdyb3Vwcz14MjU1MTkiIFwKKyAgICAgICAgICIkUF9TUlYgY3J0X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwMjU2cjEuY3J0IGtleV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDI1NnIxLmtleSBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMTI4LUdDTS1TSEEyNTYgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDI1NnIxX3NoYTI1NiBncm91cHM9eDI1NTE5IHRsczEzX2tleF9tb2Rlcz1lcGhlbWVyYWwgY29va2llcz0wIHRpY2tldHM9MCIgXAorICAgICAgICAgIiRQX0NMSSBjYV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvdGVzdC1jYTIuY3J0IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0xMjgtR0NNLVNIQTI1NiBzaWdfYWxncz1lY2RzYV9zZWNwMjU2cjFfc2hhMjU2IGdyb3Vwcz14MjU1MTkiIFwKICAgICAgICAgIDAgXAogICAgICAgICAgLXMgIlByb3RvY29sIGlzIFRMU3YxLjMiIFwKICAgICAgICAgIC1zICJzZXJ2ZXIgaGVsbG8sIGNob3NlbiBjaXBoZXJzdWl0ZTogVExTMS0zLUFFUy0xMjgtR0NNLVNIQTI1NiAoIGlkPTQ4NjUgKSIgXApAQCAtOTQ0OCw4ICs5NDUwLDggQEAKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIE1CRURUTFNfU1NMX1RMUzFfM19DT01QQVRJQklMSVRZX01PREUKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIFBTQV9XQU5UX0FMR19FQ0RICiBydW5fdGVzdCAiVExTIDEuMyBtLT5tOiBBRVNfMTI4X0dDTV9TSEEyNTYseDI1NTE5LGVjZHNhX3NlY3AzODRyMV9zaGEzODQiIFwKLSAgICAgICAgICIkUF9TUlYgY3J0X2ZpbGU9ZGF0YV9maWxlcy9lY2RzYV9zZWNwMzg0cjEuY3J0IGtleV9maWxlPWRhdGFfZmlsZXMvZWNkc2Ffc2VjcDM4NHIxLmtleSBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMTI4LUdDTS1TSEEyNTYgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDM4NHIxX3NoYTM4NCBncm91cHM9eDI1NTE5IHRsczEzX2tleF9tb2Rlcz1lcGhlbWVyYWwgY29va2llcz0wIHRpY2tldHM9MCIgXAotICAgICAgICAgIiRQX0NMSSBjYV9maWxlPWRhdGFfZmlsZXMvdGVzdC1jYTIuY3J0IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0xMjgtR0NNLVNIQTI1NiBzaWdfYWxncz1lY2RzYV9zZWNwMzg0cjFfc2hhMzg0IGdyb3Vwcz14MjU1MTkiIFwKKyAgICAgICAgICIkUF9TUlYgY3J0X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwMzg0cjEuY3J0IGtleV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDM4NHIxLmtleSBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMTI4LUdDTS1TSEEyNTYgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDM4NHIxX3NoYTM4NCBncm91cHM9eDI1NTE5IHRsczEzX2tleF9tb2Rlcz1lcGhlbWVyYWwgY29va2llcz0wIHRpY2tldHM9MCIgXAorICAgICAgICAgIiRQX0NMSSBjYV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvdGVzdC1jYTIuY3J0IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0xMjgtR0NNLVNIQTI1NiBzaWdfYWxncz1lY2RzYV9zZWNwMzg0cjFfc2hhMzg0IGdyb3Vwcz14MjU1MTkiIFwKICAgICAgICAgIDAgXAogICAgICAgICAgLXMgIlByb3RvY29sIGlzIFRMU3YxLjMiIFwKICAgICAgICAgIC1zICJzZXJ2ZXIgaGVsbG8sIGNob3NlbiBjaXBoZXJzdWl0ZTogVExTMS0zLUFFUy0xMjgtR0NNLVNIQTI1NiAoIGlkPTQ4NjUgKSIgXApAQCAtOTQ3NCw4ICs5NDc2LDggQEAKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIE1CRURUTFNfU1NMX1RMUzFfM19DT01QQVRJQklMSVRZX01PREUKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIFBTQV9XQU5UX0FMR19FQ0RICiBydW5fdGVzdCAiVExTIDEuMyBtLT5tOiBBRVNfMTI4X0dDTV9TSEEyNTYseDI1NTE5LGVjZHNhX3NlY3A1MjFyMV9zaGE1MTIiIFwKLSAgICAgICAgICIkUF9TUlYgY3J0X2ZpbGU9ZGF0YV9maWxlcy9lY2RzYV9zZWNwNTIxcjEuY3J0IGtleV9maWxlPWRhdGFfZmlsZXMvZWNkc2Ffc2VjcDUyMXIxLmtleSBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMTI4LUdDTS1TSEEyNTYgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDUyMXIxX3NoYTUxMiBncm91cHM9eDI1NTE5IHRsczEzX2tleF9tb2Rlcz1lcGhlbWVyYWwgY29va2llcz0wIHRpY2tldHM9MCIgXAotICAgICAgICAgIiRQX0NMSSBjYV9maWxlPWRhdGFfZmlsZXMvdGVzdC1jYTIuY3J0IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0xMjgtR0NNLVNIQTI1NiBzaWdfYWxncz1lY2RzYV9zZWNwNTIxcjFfc2hhNTEyIGdyb3Vwcz14MjU1MTkiIFwKKyAgICAgICAgICIkUF9TUlYgY3J0X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwNTIxcjEuY3J0IGtleV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDUyMXIxLmtleSBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMTI4LUdDTS1TSEEyNTYgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDUyMXIxX3NoYTUxMiBncm91cHM9eDI1NTE5IHRsczEzX2tleF9tb2Rlcz1lcGhlbWVyYWwgY29va2llcz0wIHRpY2tldHM9MCIgXAorICAgICAgICAgIiRQX0NMSSBjYV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvdGVzdC1jYTIuY3J0IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0xMjgtR0NNLVNIQTI1NiBzaWdfYWxncz1lY2RzYV9zZWNwNTIxcjFfc2hhNTEyIGdyb3Vwcz14MjU1MTkiIFwKICAgICAgICAgIDAgXAogICAgICAgICAgLXMgIlByb3RvY29sIGlzIFRMU3YxLjMiIFwKICAgICAgICAgIC1zICJzZXJ2ZXIgaGVsbG8sIGNob3NlbiBjaXBoZXJzdWl0ZTogVExTMS0zLUFFUy0xMjgtR0NNLVNIQTI1NiAoIGlkPTQ4NjUgKSIgXApAQCAtOTUwMiw4ICs5NTA0LDggQEAKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIE1CRURUTFNfWDUwOV9SU0FTU0FfUFNTX1NVUFBPUlQKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIFBTQV9XQU5UX0FMR19FQ0RICiBydW5fdGVzdCAiVExTIDEuMyBtLT5tOiBBRVNfMTI4X0dDTV9TSEEyNTYseDI1NTE5LHJzYV9wc3NfcnNhZV9zaGEyNTYiIFwKLSAgICAgICAgICIkUF9TUlYgY3J0X2ZpbGU9ZGF0YV9maWxlcy9zZXJ2ZXIyLXNoYTI1Ni5jcnQga2V5X2ZpbGU9ZGF0YV9maWxlcy9zZXJ2ZXIyLmtleSBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMTI4LUdDTS1TSEEyNTYgc2lnX2FsZ3M9cnNhX3Bzc19yc2FlX3NoYTI1NiBncm91cHM9eDI1NTE5IHRsczEzX2tleF9tb2Rlcz1lcGhlbWVyYWwgY29va2llcz0wIHRpY2tldHM9MCIgXAotICAgICAgICAgIiRQX0NMSSBjYV9maWxlPWRhdGFfZmlsZXMvdGVzdC1jYV9jYXQxMi5jcnQgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTEyOC1HQ00tU0hBMjU2IHNpZ19hbGdzPXJzYV9wc3NfcnNhZV9zaGEyNTYgZ3JvdXBzPXgyNTUxOSIgXAorICAgICAgICAgIiRQX1NSViBjcnRfZmlsZT0kREFUQV9GSUxFU19QQVRIL3NlcnZlcjItc2hhMjU2LmNydCBrZXlfZmlsZT0kREFUQV9GSUxFU19QQVRIL3NlcnZlcjIua2V5IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0xMjgtR0NNLVNIQTI1NiBzaWdfYWxncz1yc2FfcHNzX3JzYWVfc2hhMjU2IGdyb3Vwcz14MjU1MTkgdGxzMTNfa2V4X21vZGVzPWVwaGVtZXJhbCBjb29raWVzPTAgdGlja2V0cz0wIiBcCisgICAgICAgICAiJFBfQ0xJIGNhX2ZpbGU9JERBVEFfRklMRVNfUEFUSC90ZXN0LWNhX2NhdDEyLmNydCBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMTI4LUdDTS1TSEEyNTYgc2lnX2FsZ3M9cnNhX3Bzc19yc2FlX3NoYTI1NiBncm91cHM9eDI1NTE5IiBcCiAgICAgICAgICAwIFwKICAgICAgICAgIC1zICJQcm90b2NvbCBpcyBUTFN2MS4zIiBcCiAgICAgICAgICAtcyAic2VydmVyIGhlbGxvLCBjaG9zZW4gY2lwaGVyc3VpdGU6IFRMUzEtMy1BRVMtMTI4LUdDTS1TSEEyNTYgKCBpZD00ODY1ICkiIFwKQEAgLTk1MjgsOCArOTUzMCw4IEBACiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBNQkVEVExTX1NTTF9UTFMxXzNfQ09NUEFUSUJJTElUWV9NT0RFCiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBQU0FfV0FOVF9BTEdfRUNESAogcnVuX3Rlc3QgIlRMUyAxLjMgbS0+bTogQUVTXzEyOF9HQ01fU0hBMjU2LHg0NDgsZWNkc2Ffc2VjcDI1NnIxX3NoYTI1NiIgXAotICAgICAgICAgIiRQX1NSViBjcnRfZmlsZT1kYXRhX2ZpbGVzL2VjZHNhX3NlY3AyNTZyMS5jcnQga2V5X2ZpbGU9ZGF0YV9maWxlcy9lY2RzYV9zZWNwMjU2cjEua2V5IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0xMjgtR0NNLVNIQTI1NiBzaWdfYWxncz1lY2RzYV9zZWNwMjU2cjFfc2hhMjU2IGdyb3Vwcz14NDQ4IHRsczEzX2tleF9tb2Rlcz1lcGhlbWVyYWwgY29va2llcz0wIHRpY2tldHM9MCIgXAotICAgICAgICAgIiRQX0NMSSBjYV9maWxlPWRhdGFfZmlsZXMvdGVzdC1jYTIuY3J0IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0xMjgtR0NNLVNIQTI1NiBzaWdfYWxncz1lY2RzYV9zZWNwMjU2cjFfc2hhMjU2IGdyb3Vwcz14NDQ4IiBcCisgICAgICAgICAiJFBfU1JWIGNydF9maWxlPSREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDI1NnIxLmNydCBrZXlfZmlsZT0kREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3AyNTZyMS5rZXkgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTEyOC1HQ00tU0hBMjU2IHNpZ19hbGdzPWVjZHNhX3NlY3AyNTZyMV9zaGEyNTYgZ3JvdXBzPXg0NDggdGxzMTNfa2V4X21vZGVzPWVwaGVtZXJhbCBjb29raWVzPTAgdGlja2V0cz0wIiBcCisgICAgICAgICAiJFBfQ0xJIGNhX2ZpbGU9JERBVEFfRklMRVNfUEFUSC90ZXN0LWNhMi5jcnQgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTEyOC1HQ00tU0hBMjU2IHNpZ19hbGdzPWVjZHNhX3NlY3AyNTZyMV9zaGEyNTYgZ3JvdXBzPXg0NDgiIFwKICAgICAgICAgIDAgXAogICAgICAgICAgLXMgIlByb3RvY29sIGlzIFRMU3YxLjMiIFwKICAgICAgICAgIC1zICJzZXJ2ZXIgaGVsbG8sIGNob3NlbiBjaXBoZXJzdWl0ZTogVExTMS0zLUFFUy0xMjgtR0NNLVNIQTI1NiAoIGlkPTQ4NjUgKSIgXApAQCAtOTU1NCw4ICs5NTU2LDggQEAKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIE1CRURUTFNfU1NMX1RMUzFfM19DT01QQVRJQklMSVRZX01PREUKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIFBTQV9XQU5UX0FMR19FQ0RICiBydW5fdGVzdCAiVExTIDEuMyBtLT5tOiBBRVNfMTI4X0dDTV9TSEEyNTYseDQ0OCxlY2RzYV9zZWNwMzg0cjFfc2hhMzg0IiBcCi0gICAgICAgICAiJFBfU1JWIGNydF9maWxlPWRhdGFfZmlsZXMvZWNkc2Ffc2VjcDM4NHIxLmNydCBrZXlfZmlsZT1kYXRhX2ZpbGVzL2VjZHNhX3NlY3AzODRyMS5rZXkgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTEyOC1HQ00tU0hBMjU2IHNpZ19hbGdzPWVjZHNhX3NlY3AzODRyMV9zaGEzODQgZ3JvdXBzPXg0NDggdGxzMTNfa2V4X21vZGVzPWVwaGVtZXJhbCBjb29raWVzPTAgdGlja2V0cz0wIiBcCi0gICAgICAgICAiJFBfQ0xJIGNhX2ZpbGU9ZGF0YV9maWxlcy90ZXN0LWNhMi5jcnQgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTEyOC1HQ00tU0hBMjU2IHNpZ19hbGdzPWVjZHNhX3NlY3AzODRyMV9zaGEzODQgZ3JvdXBzPXg0NDgiIFwKKyAgICAgICAgICIkUF9TUlYgY3J0X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwMzg0cjEuY3J0IGtleV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDM4NHIxLmtleSBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMTI4LUdDTS1TSEEyNTYgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDM4NHIxX3NoYTM4NCBncm91cHM9eDQ0OCB0bHMxM19rZXhfbW9kZXM9ZXBoZW1lcmFsIGNvb2tpZXM9MCB0aWNrZXRzPTAiIFwKKyAgICAgICAgICIkUF9DTEkgY2FfZmlsZT0kREFUQV9GSUxFU19QQVRIL3Rlc3QtY2EyLmNydCBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMTI4LUdDTS1TSEEyNTYgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDM4NHIxX3NoYTM4NCBncm91cHM9eDQ0OCIgXAogICAgICAgICAgMCBcCiAgICAgICAgICAtcyAiUHJvdG9jb2wgaXMgVExTdjEuMyIgXAogICAgICAgICAgLXMgInNlcnZlciBoZWxsbywgY2hvc2VuIGNpcGhlcnN1aXRlOiBUTFMxLTMtQUVTLTEyOC1HQ00tU0hBMjU2ICggaWQ9NDg2NSApIiBcCkBAIC05NTgwLDggKzk1ODIsOCBAQAogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgTUJFRFRMU19TU0xfVExTMV8zX0NPTVBBVElCSUxJVFlfTU9ERQogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgUFNBX1dBTlRfQUxHX0VDREgKIHJ1bl90ZXN0ICJUTFMgMS4zIG0tPm06IEFFU18xMjhfR0NNX1NIQTI1Nix4NDQ4LGVjZHNhX3NlY3A1MjFyMV9zaGE1MTIiIFwKLSAgICAgICAgICIkUF9TUlYgY3J0X2ZpbGU9ZGF0YV9maWxlcy9lY2RzYV9zZWNwNTIxcjEuY3J0IGtleV9maWxlPWRhdGFfZmlsZXMvZWNkc2Ffc2VjcDUyMXIxLmtleSBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMTI4LUdDTS1TSEEyNTYgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDUyMXIxX3NoYTUxMiBncm91cHM9eDQ0OCB0bHMxM19rZXhfbW9kZXM9ZXBoZW1lcmFsIGNvb2tpZXM9MCB0aWNrZXRzPTAiIFwKLSAgICAgICAgICIkUF9DTEkgY2FfZmlsZT1kYXRhX2ZpbGVzL3Rlc3QtY2EyLmNydCBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMTI4LUdDTS1TSEEyNTYgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDUyMXIxX3NoYTUxMiBncm91cHM9eDQ0OCIgXAorICAgICAgICAgIiRQX1NSViBjcnRfZmlsZT0kREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3A1MjFyMS5jcnQga2V5X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwNTIxcjEua2V5IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0xMjgtR0NNLVNIQTI1NiBzaWdfYWxncz1lY2RzYV9zZWNwNTIxcjFfc2hhNTEyIGdyb3Vwcz14NDQ4IHRsczEzX2tleF9tb2Rlcz1lcGhlbWVyYWwgY29va2llcz0wIHRpY2tldHM9MCIgXAorICAgICAgICAgIiRQX0NMSSBjYV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvdGVzdC1jYTIuY3J0IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0xMjgtR0NNLVNIQTI1NiBzaWdfYWxncz1lY2RzYV9zZWNwNTIxcjFfc2hhNTEyIGdyb3Vwcz14NDQ4IiBcCiAgICAgICAgICAwIFwKICAgICAgICAgIC1zICJQcm90b2NvbCBpcyBUTFN2MS4zIiBcCiAgICAgICAgICAtcyAic2VydmVyIGhlbGxvLCBjaG9zZW4gY2lwaGVyc3VpdGU6IFRMUzEtMy1BRVMtMTI4LUdDTS1TSEEyNTYgKCBpZD00ODY1ICkiIFwKQEAgLTk2MDgsOCArOTYxMCw4IEBACiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBNQkVEVExTX1g1MDlfUlNBU1NBX1BTU19TVVBQT1JUCiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBQU0FfV0FOVF9BTEdfRUNESAogcnVuX3Rlc3QgIlRMUyAxLjMgbS0+bTogQUVTXzEyOF9HQ01fU0hBMjU2LHg0NDgscnNhX3Bzc19yc2FlX3NoYTI1NiIgXAotICAgICAgICAgIiRQX1NSViBjcnRfZmlsZT1kYXRhX2ZpbGVzL3NlcnZlcjItc2hhMjU2LmNydCBrZXlfZmlsZT1kYXRhX2ZpbGVzL3NlcnZlcjIua2V5IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0xMjgtR0NNLVNIQTI1NiBzaWdfYWxncz1yc2FfcHNzX3JzYWVfc2hhMjU2IGdyb3Vwcz14NDQ4IHRsczEzX2tleF9tb2Rlcz1lcGhlbWVyYWwgY29va2llcz0wIHRpY2tldHM9MCIgXAotICAgICAgICAgIiRQX0NMSSBjYV9maWxlPWRhdGFfZmlsZXMvdGVzdC1jYV9jYXQxMi5jcnQgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTEyOC1HQ00tU0hBMjU2IHNpZ19hbGdzPXJzYV9wc3NfcnNhZV9zaGEyNTYgZ3JvdXBzPXg0NDgiIFwKKyAgICAgICAgICIkUF9TUlYgY3J0X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9zZXJ2ZXIyLXNoYTI1Ni5jcnQga2V5X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9zZXJ2ZXIyLmtleSBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMTI4LUdDTS1TSEEyNTYgc2lnX2FsZ3M9cnNhX3Bzc19yc2FlX3NoYTI1NiBncm91cHM9eDQ0OCB0bHMxM19rZXhfbW9kZXM9ZXBoZW1lcmFsIGNvb2tpZXM9MCB0aWNrZXRzPTAiIFwKKyAgICAgICAgICIkUF9DTEkgY2FfZmlsZT0kREFUQV9GSUxFU19QQVRIL3Rlc3QtY2FfY2F0MTIuY3J0IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0xMjgtR0NNLVNIQTI1NiBzaWdfYWxncz1yc2FfcHNzX3JzYWVfc2hhMjU2IGdyb3Vwcz14NDQ4IiBcCiAgICAgICAgICAwIFwKICAgICAgICAgIC1zICJQcm90b2NvbCBpcyBUTFN2MS4zIiBcCiAgICAgICAgICAtcyAic2VydmVyIGhlbGxvLCBjaG9zZW4gY2lwaGVyc3VpdGU6IFRMUzEtMy1BRVMtMTI4LUdDTS1TSEEyNTYgKCBpZD00ODY1ICkiIFwKQEAgLTk2MzYsOCArOTYzOCw4IEBACiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBQU0FfV0FOVF9BTEdfRkZESAogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgUFNBX1dBTlRfREhfUkZDNzkxOV8yMDQ4CiBydW5fdGVzdCAiVExTIDEuMyBtLT5tOiBBRVNfMTI4X0dDTV9TSEEyNTYsZmZkaGUyMDQ4LGVjZHNhX3NlY3AyNTZyMV9zaGEyNTYiIFwKLSAgICAgICAgICIkUF9TUlYgY3J0X2ZpbGU9ZGF0YV9maWxlcy9lY2RzYV9zZWNwMjU2cjEuY3J0IGtleV9maWxlPWRhdGFfZmlsZXMvZWNkc2Ffc2VjcDI1NnIxLmtleSBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMTI4LUdDTS1TSEEyNTYgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDI1NnIxX3NoYTI1NiBncm91cHM9ZmZkaGUyMDQ4IHRsczEzX2tleF9tb2Rlcz1lcGhlbWVyYWwgY29va2llcz0wIHRpY2tldHM9MCIgXAotICAgICAgICAgIiRQX0NMSSBjYV9maWxlPWRhdGFfZmlsZXMvdGVzdC1jYTIuY3J0IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0xMjgtR0NNLVNIQTI1NiBzaWdfYWxncz1lY2RzYV9zZWNwMjU2cjFfc2hhMjU2IGdyb3Vwcz1mZmRoZTIwNDgiIFwKKyAgICAgICAgICIkUF9TUlYgY3J0X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwMjU2cjEuY3J0IGtleV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDI1NnIxLmtleSBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMTI4LUdDTS1TSEEyNTYgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDI1NnIxX3NoYTI1NiBncm91cHM9ZmZkaGUyMDQ4IHRsczEzX2tleF9tb2Rlcz1lcGhlbWVyYWwgY29va2llcz0wIHRpY2tldHM9MCIgXAorICAgICAgICAgIiRQX0NMSSBjYV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvdGVzdC1jYTIuY3J0IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0xMjgtR0NNLVNIQTI1NiBzaWdfYWxncz1lY2RzYV9zZWNwMjU2cjFfc2hhMjU2IGdyb3Vwcz1mZmRoZTIwNDgiIFwKICAgICAgICAgIDAgXAogICAgICAgICAgLXMgIlByb3RvY29sIGlzIFRMU3YxLjMiIFwKICAgICAgICAgIC1zICJzZXJ2ZXIgaGVsbG8sIGNob3NlbiBjaXBoZXJzdWl0ZTogVExTMS0zLUFFUy0xMjgtR0NNLVNIQTI1NiAoIGlkPTQ4NjUgKSIgXApAQCAtOTY2NCw4ICs5NjY2LDggQEAKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIFBTQV9XQU5UX0FMR19GRkRICiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBQU0FfV0FOVF9ESF9SRkM3OTE5XzIwNDgKIHJ1bl90ZXN0ICJUTFMgMS4zIG0tPm06IEFFU18xMjhfR0NNX1NIQTI1NixmZmRoZTIwNDgsZWNkc2Ffc2VjcDM4NHIxX3NoYTM4NCIgXAotICAgICAgICAgIiRQX1NSViBjcnRfZmlsZT1kYXRhX2ZpbGVzL2VjZHNhX3NlY3AzODRyMS5jcnQga2V5X2ZpbGU9ZGF0YV9maWxlcy9lY2RzYV9zZWNwMzg0cjEua2V5IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0xMjgtR0NNLVNIQTI1NiBzaWdfYWxncz1lY2RzYV9zZWNwMzg0cjFfc2hhMzg0IGdyb3Vwcz1mZmRoZTIwNDggdGxzMTNfa2V4X21vZGVzPWVwaGVtZXJhbCBjb29raWVzPTAgdGlja2V0cz0wIiBcCi0gICAgICAgICAiJFBfQ0xJIGNhX2ZpbGU9ZGF0YV9maWxlcy90ZXN0LWNhMi5jcnQgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTEyOC1HQ00tU0hBMjU2IHNpZ19hbGdzPWVjZHNhX3NlY3AzODRyMV9zaGEzODQgZ3JvdXBzPWZmZGhlMjA0OCIgXAorICAgICAgICAgIiRQX1NSViBjcnRfZmlsZT0kREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3AzODRyMS5jcnQga2V5X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwMzg0cjEua2V5IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0xMjgtR0NNLVNIQTI1NiBzaWdfYWxncz1lY2RzYV9zZWNwMzg0cjFfc2hhMzg0IGdyb3Vwcz1mZmRoZTIwNDggdGxzMTNfa2V4X21vZGVzPWVwaGVtZXJhbCBjb29raWVzPTAgdGlja2V0cz0wIiBcCisgICAgICAgICAiJFBfQ0xJIGNhX2ZpbGU9JERBVEFfRklMRVNfUEFUSC90ZXN0LWNhMi5jcnQgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTEyOC1HQ00tU0hBMjU2IHNpZ19hbGdzPWVjZHNhX3NlY3AzODRyMV9zaGEzODQgZ3JvdXBzPWZmZGhlMjA0OCIgXAogICAgICAgICAgMCBcCiAgICAgICAgICAtcyAiUHJvdG9jb2wgaXMgVExTdjEuMyIgXAogICAgICAgICAgLXMgInNlcnZlciBoZWxsbywgY2hvc2VuIGNpcGhlcnN1aXRlOiBUTFMxLTMtQUVTLTEyOC1HQ00tU0hBMjU2ICggaWQ9NDg2NSApIiBcCkBAIC05NjkyLDggKzk2OTQsOCBAQAogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgUFNBX1dBTlRfQUxHX0ZGREgKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIFBTQV9XQU5UX0RIX1JGQzc5MTlfMjA0OAogcnVuX3Rlc3QgIlRMUyAxLjMgbS0+bTogQUVTXzEyOF9HQ01fU0hBMjU2LGZmZGhlMjA0OCxlY2RzYV9zZWNwNTIxcjFfc2hhNTEyIiBcCi0gICAgICAgICAiJFBfU1JWIGNydF9maWxlPWRhdGFfZmlsZXMvZWNkc2Ffc2VjcDUyMXIxLmNydCBrZXlfZmlsZT1kYXRhX2ZpbGVzL2VjZHNhX3NlY3A1MjFyMS5rZXkgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTEyOC1HQ00tU0hBMjU2IHNpZ19hbGdzPWVjZHNhX3NlY3A1MjFyMV9zaGE1MTIgZ3JvdXBzPWZmZGhlMjA0OCB0bHMxM19rZXhfbW9kZXM9ZXBoZW1lcmFsIGNvb2tpZXM9MCB0aWNrZXRzPTAiIFwKLSAgICAgICAgICIkUF9DTEkgY2FfZmlsZT1kYXRhX2ZpbGVzL3Rlc3QtY2EyLmNydCBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMTI4LUdDTS1TSEEyNTYgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDUyMXIxX3NoYTUxMiBncm91cHM9ZmZkaGUyMDQ4IiBcCisgICAgICAgICAiJFBfU1JWIGNydF9maWxlPSREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDUyMXIxLmNydCBrZXlfZmlsZT0kREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3A1MjFyMS5rZXkgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTEyOC1HQ00tU0hBMjU2IHNpZ19hbGdzPWVjZHNhX3NlY3A1MjFyMV9zaGE1MTIgZ3JvdXBzPWZmZGhlMjA0OCB0bHMxM19rZXhfbW9kZXM9ZXBoZW1lcmFsIGNvb2tpZXM9MCB0aWNrZXRzPTAiIFwKKyAgICAgICAgICIkUF9DTEkgY2FfZmlsZT0kREFUQV9GSUxFU19QQVRIL3Rlc3QtY2EyLmNydCBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMTI4LUdDTS1TSEEyNTYgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDUyMXIxX3NoYTUxMiBncm91cHM9ZmZkaGUyMDQ4IiBcCiAgICAgICAgICAwIFwKICAgICAgICAgIC1zICJQcm90b2NvbCBpcyBUTFN2MS4zIiBcCiAgICAgICAgICAtcyAic2VydmVyIGhlbGxvLCBjaG9zZW4gY2lwaGVyc3VpdGU6IFRMUzEtMy1BRVMtMTI4LUdDTS1TSEEyNTYgKCBpZD00ODY1ICkiIFwKQEAgLTk3MjIsOCArOTcyNCw4IEBACiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBQU0FfV0FOVF9BTEdfRkZESAogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgUFNBX1dBTlRfREhfUkZDNzkxOV8yMDQ4CiBydW5fdGVzdCAiVExTIDEuMyBtLT5tOiBBRVNfMTI4X0dDTV9TSEEyNTYsZmZkaGUyMDQ4LHJzYV9wc3NfcnNhZV9zaGEyNTYiIFwKLSAgICAgICAgICIkUF9TUlYgY3J0X2ZpbGU9ZGF0YV9maWxlcy9zZXJ2ZXIyLXNoYTI1Ni5jcnQga2V5X2ZpbGU9ZGF0YV9maWxlcy9zZXJ2ZXIyLmtleSBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMTI4LUdDTS1TSEEyNTYgc2lnX2FsZ3M9cnNhX3Bzc19yc2FlX3NoYTI1NiBncm91cHM9ZmZkaGUyMDQ4IHRsczEzX2tleF9tb2Rlcz1lcGhlbWVyYWwgY29va2llcz0wIHRpY2tldHM9MCIgXAotICAgICAgICAgIiRQX0NMSSBjYV9maWxlPWRhdGFfZmlsZXMvdGVzdC1jYV9jYXQxMi5jcnQgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTEyOC1HQ00tU0hBMjU2IHNpZ19hbGdzPXJzYV9wc3NfcnNhZV9zaGEyNTYgZ3JvdXBzPWZmZGhlMjA0OCIgXAorICAgICAgICAgIiRQX1NSViBjcnRfZmlsZT0kREFUQV9GSUxFU19QQVRIL3NlcnZlcjItc2hhMjU2LmNydCBrZXlfZmlsZT0kREFUQV9GSUxFU19QQVRIL3NlcnZlcjIua2V5IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0xMjgtR0NNLVNIQTI1NiBzaWdfYWxncz1yc2FfcHNzX3JzYWVfc2hhMjU2IGdyb3Vwcz1mZmRoZTIwNDggdGxzMTNfa2V4X21vZGVzPWVwaGVtZXJhbCBjb29raWVzPTAgdGlja2V0cz0wIiBcCisgICAgICAgICAiJFBfQ0xJIGNhX2ZpbGU9JERBVEFfRklMRVNfUEFUSC90ZXN0LWNhX2NhdDEyLmNydCBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMTI4LUdDTS1TSEEyNTYgc2lnX2FsZ3M9cnNhX3Bzc19yc2FlX3NoYTI1NiBncm91cHM9ZmZkaGUyMDQ4IiBcCiAgICAgICAgICAwIFwKICAgICAgICAgIC1zICJQcm90b2NvbCBpcyBUTFN2MS4zIiBcCiAgICAgICAgICAtcyAic2VydmVyIGhlbGxvLCBjaG9zZW4gY2lwaGVyc3VpdGU6IFRMUzEtMy1BRVMtMTI4LUdDTS1TSEEyNTYgKCBpZD00ODY1ICkiIFwKQEAgLTk3NDgsOCArOTc1MCw4IEBACiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBNQkVEVExTX1NTTF9UTFMxXzNfQ09NUEFUSUJJTElUWV9NT0RFCiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBQU0FfV0FOVF9BTEdfRUNESAogcnVuX3Rlc3QgIlRMUyAxLjMgbS0+bTogQUVTXzI1Nl9HQ01fU0hBMzg0LHNlY3AyNTZyMSxlY2RzYV9zZWNwMjU2cjFfc2hhMjU2IiBcCi0gICAgICAgICAiJFBfU1JWIGNydF9maWxlPWRhdGFfZmlsZXMvZWNkc2Ffc2VjcDI1NnIxLmNydCBrZXlfZmlsZT1kYXRhX2ZpbGVzL2VjZHNhX3NlY3AyNTZyMS5rZXkgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTI1Ni1HQ00tU0hBMzg0IHNpZ19hbGdzPWVjZHNhX3NlY3AyNTZyMV9zaGEyNTYgZ3JvdXBzPXNlY3AyNTZyMSB0bHMxM19rZXhfbW9kZXM9ZXBoZW1lcmFsIGNvb2tpZXM9MCB0aWNrZXRzPTAiIFwKLSAgICAgICAgICIkUF9DTEkgY2FfZmlsZT1kYXRhX2ZpbGVzL3Rlc3QtY2EyLmNydCBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMjU2LUdDTS1TSEEzODQgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDI1NnIxX3NoYTI1NiBncm91cHM9c2VjcDI1NnIxIiBcCisgICAgICAgICAiJFBfU1JWIGNydF9maWxlPSREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDI1NnIxLmNydCBrZXlfZmlsZT0kREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3AyNTZyMS5rZXkgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTI1Ni1HQ00tU0hBMzg0IHNpZ19hbGdzPWVjZHNhX3NlY3AyNTZyMV9zaGEyNTYgZ3JvdXBzPXNlY3AyNTZyMSB0bHMxM19rZXhfbW9kZXM9ZXBoZW1lcmFsIGNvb2tpZXM9MCB0aWNrZXRzPTAiIFwKKyAgICAgICAgICIkUF9DTEkgY2FfZmlsZT0kREFUQV9GSUxFU19QQVRIL3Rlc3QtY2EyLmNydCBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMjU2LUdDTS1TSEEzODQgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDI1NnIxX3NoYTI1NiBncm91cHM9c2VjcDI1NnIxIiBcCiAgICAgICAgICAwIFwKICAgICAgICAgIC1zICJQcm90b2NvbCBpcyBUTFN2MS4zIiBcCiAgICAgICAgICAtcyAic2VydmVyIGhlbGxvLCBjaG9zZW4gY2lwaGVyc3VpdGU6IFRMUzEtMy1BRVMtMjU2LUdDTS1TSEEzODQgKCBpZD00ODY2ICkiIFwKQEAgLTk3NzQsOCArOTc3Niw4IEBACiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBNQkVEVExTX1NTTF9UTFMxXzNfQ09NUEFUSUJJTElUWV9NT0RFCiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBQU0FfV0FOVF9BTEdfRUNESAogcnVuX3Rlc3QgIlRMUyAxLjMgbS0+bTogQUVTXzI1Nl9HQ01fU0hBMzg0LHNlY3AyNTZyMSxlY2RzYV9zZWNwMzg0cjFfc2hhMzg0IiBcCi0gICAgICAgICAiJFBfU1JWIGNydF9maWxlPWRhdGFfZmlsZXMvZWNkc2Ffc2VjcDM4NHIxLmNydCBrZXlfZmlsZT1kYXRhX2ZpbGVzL2VjZHNhX3NlY3AzODRyMS5rZXkgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTI1Ni1HQ00tU0hBMzg0IHNpZ19hbGdzPWVjZHNhX3NlY3AzODRyMV9zaGEzODQgZ3JvdXBzPXNlY3AyNTZyMSB0bHMxM19rZXhfbW9kZXM9ZXBoZW1lcmFsIGNvb2tpZXM9MCB0aWNrZXRzPTAiIFwKLSAgICAgICAgICIkUF9DTEkgY2FfZmlsZT1kYXRhX2ZpbGVzL3Rlc3QtY2EyLmNydCBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMjU2LUdDTS1TSEEzODQgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDM4NHIxX3NoYTM4NCBncm91cHM9c2VjcDI1NnIxIiBcCisgICAgICAgICAiJFBfU1JWIGNydF9maWxlPSREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDM4NHIxLmNydCBrZXlfZmlsZT0kREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3AzODRyMS5rZXkgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTI1Ni1HQ00tU0hBMzg0IHNpZ19hbGdzPWVjZHNhX3NlY3AzODRyMV9zaGEzODQgZ3JvdXBzPXNlY3AyNTZyMSB0bHMxM19rZXhfbW9kZXM9ZXBoZW1lcmFsIGNvb2tpZXM9MCB0aWNrZXRzPTAiIFwKKyAgICAgICAgICIkUF9DTEkgY2FfZmlsZT0kREFUQV9GSUxFU19QQVRIL3Rlc3QtY2EyLmNydCBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMjU2LUdDTS1TSEEzODQgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDM4NHIxX3NoYTM4NCBncm91cHM9c2VjcDI1NnIxIiBcCiAgICAgICAgICAwIFwKICAgICAgICAgIC1zICJQcm90b2NvbCBpcyBUTFN2MS4zIiBcCiAgICAgICAgICAtcyAic2VydmVyIGhlbGxvLCBjaG9zZW4gY2lwaGVyc3VpdGU6IFRMUzEtMy1BRVMtMjU2LUdDTS1TSEEzODQgKCBpZD00ODY2ICkiIFwKQEAgLTk4MDAsOCArOTgwMiw4IEBACiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBNQkVEVExTX1NTTF9UTFMxXzNfQ09NUEFUSUJJTElUWV9NT0RFCiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBQU0FfV0FOVF9BTEdfRUNESAogcnVuX3Rlc3QgIlRMUyAxLjMgbS0+bTogQUVTXzI1Nl9HQ01fU0hBMzg0LHNlY3AyNTZyMSxlY2RzYV9zZWNwNTIxcjFfc2hhNTEyIiBcCi0gICAgICAgICAiJFBfU1JWIGNydF9maWxlPWRhdGFfZmlsZXMvZWNkc2Ffc2VjcDUyMXIxLmNydCBrZXlfZmlsZT1kYXRhX2ZpbGVzL2VjZHNhX3NlY3A1MjFyMS5rZXkgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTI1Ni1HQ00tU0hBMzg0IHNpZ19hbGdzPWVjZHNhX3NlY3A1MjFyMV9zaGE1MTIgZ3JvdXBzPXNlY3AyNTZyMSB0bHMxM19rZXhfbW9kZXM9ZXBoZW1lcmFsIGNvb2tpZXM9MCB0aWNrZXRzPTAiIFwKLSAgICAgICAgICIkUF9DTEkgY2FfZmlsZT1kYXRhX2ZpbGVzL3Rlc3QtY2EyLmNydCBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMjU2LUdDTS1TSEEzODQgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDUyMXIxX3NoYTUxMiBncm91cHM9c2VjcDI1NnIxIiBcCisgICAgICAgICAiJFBfU1JWIGNydF9maWxlPSREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDUyMXIxLmNydCBrZXlfZmlsZT0kREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3A1MjFyMS5rZXkgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTI1Ni1HQ00tU0hBMzg0IHNpZ19hbGdzPWVjZHNhX3NlY3A1MjFyMV9zaGE1MTIgZ3JvdXBzPXNlY3AyNTZyMSB0bHMxM19rZXhfbW9kZXM9ZXBoZW1lcmFsIGNvb2tpZXM9MCB0aWNrZXRzPTAiIFwKKyAgICAgICAgICIkUF9DTEkgY2FfZmlsZT0kREFUQV9GSUxFU19QQVRIL3Rlc3QtY2EyLmNydCBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMjU2LUdDTS1TSEEzODQgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDUyMXIxX3NoYTUxMiBncm91cHM9c2VjcDI1NnIxIiBcCiAgICAgICAgICAwIFwKICAgICAgICAgIC1zICJQcm90b2NvbCBpcyBUTFN2MS4zIiBcCiAgICAgICAgICAtcyAic2VydmVyIGhlbGxvLCBjaG9zZW4gY2lwaGVyc3VpdGU6IFRMUzEtMy1BRVMtMjU2LUdDTS1TSEEzODQgKCBpZD00ODY2ICkiIFwKQEAgLTk4MjgsOCArOTgzMCw4IEBACiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBNQkVEVExTX1g1MDlfUlNBU1NBX1BTU19TVVBQT1JUCiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBQU0FfV0FOVF9BTEdfRUNESAogcnVuX3Rlc3QgIlRMUyAxLjMgbS0+bTogQUVTXzI1Nl9HQ01fU0hBMzg0LHNlY3AyNTZyMSxyc2FfcHNzX3JzYWVfc2hhMjU2IiBcCi0gICAgICAgICAiJFBfU1JWIGNydF9maWxlPWRhdGFfZmlsZXMvc2VydmVyMi1zaGEyNTYuY3J0IGtleV9maWxlPWRhdGFfZmlsZXMvc2VydmVyMi5rZXkgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTI1Ni1HQ00tU0hBMzg0IHNpZ19hbGdzPXJzYV9wc3NfcnNhZV9zaGEyNTYgZ3JvdXBzPXNlY3AyNTZyMSB0bHMxM19rZXhfbW9kZXM9ZXBoZW1lcmFsIGNvb2tpZXM9MCB0aWNrZXRzPTAiIFwKLSAgICAgICAgICIkUF9DTEkgY2FfZmlsZT1kYXRhX2ZpbGVzL3Rlc3QtY2FfY2F0MTIuY3J0IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0yNTYtR0NNLVNIQTM4NCBzaWdfYWxncz1yc2FfcHNzX3JzYWVfc2hhMjU2IGdyb3Vwcz1zZWNwMjU2cjEiIFwKKyAgICAgICAgICIkUF9TUlYgY3J0X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9zZXJ2ZXIyLXNoYTI1Ni5jcnQga2V5X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9zZXJ2ZXIyLmtleSBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMjU2LUdDTS1TSEEzODQgc2lnX2FsZ3M9cnNhX3Bzc19yc2FlX3NoYTI1NiBncm91cHM9c2VjcDI1NnIxIHRsczEzX2tleF9tb2Rlcz1lcGhlbWVyYWwgY29va2llcz0wIHRpY2tldHM9MCIgXAorICAgICAgICAgIiRQX0NMSSBjYV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvdGVzdC1jYV9jYXQxMi5jcnQgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTI1Ni1HQ00tU0hBMzg0IHNpZ19hbGdzPXJzYV9wc3NfcnNhZV9zaGEyNTYgZ3JvdXBzPXNlY3AyNTZyMSIgXAogICAgICAgICAgMCBcCiAgICAgICAgICAtcyAiUHJvdG9jb2wgaXMgVExTdjEuMyIgXAogICAgICAgICAgLXMgInNlcnZlciBoZWxsbywgY2hvc2VuIGNpcGhlcnN1aXRlOiBUTFMxLTMtQUVTLTI1Ni1HQ00tU0hBMzg0ICggaWQ9NDg2NiApIiBcCkBAIC05ODU0LDggKzk4NTYsOCBAQAogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgTUJFRFRMU19TU0xfVExTMV8zX0NPTVBBVElCSUxJVFlfTU9ERQogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgUFNBX1dBTlRfQUxHX0VDREgKIHJ1bl90ZXN0ICJUTFMgMS4zIG0tPm06IEFFU18yNTZfR0NNX1NIQTM4NCxzZWNwMzg0cjEsZWNkc2Ffc2VjcDI1NnIxX3NoYTI1NiIgXAotICAgICAgICAgIiRQX1NSViBjcnRfZmlsZT1kYXRhX2ZpbGVzL2VjZHNhX3NlY3AyNTZyMS5jcnQga2V5X2ZpbGU9ZGF0YV9maWxlcy9lY2RzYV9zZWNwMjU2cjEua2V5IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0yNTYtR0NNLVNIQTM4NCBzaWdfYWxncz1lY2RzYV9zZWNwMjU2cjFfc2hhMjU2IGdyb3Vwcz1zZWNwMzg0cjEgdGxzMTNfa2V4X21vZGVzPWVwaGVtZXJhbCBjb29raWVzPTAgdGlja2V0cz0wIiBcCi0gICAgICAgICAiJFBfQ0xJIGNhX2ZpbGU9ZGF0YV9maWxlcy90ZXN0LWNhMi5jcnQgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTI1Ni1HQ00tU0hBMzg0IHNpZ19hbGdzPWVjZHNhX3NlY3AyNTZyMV9zaGEyNTYgZ3JvdXBzPXNlY3AzODRyMSIgXAorICAgICAgICAgIiRQX1NSViBjcnRfZmlsZT0kREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3AyNTZyMS5jcnQga2V5X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwMjU2cjEua2V5IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0yNTYtR0NNLVNIQTM4NCBzaWdfYWxncz1lY2RzYV9zZWNwMjU2cjFfc2hhMjU2IGdyb3Vwcz1zZWNwMzg0cjEgdGxzMTNfa2V4X21vZGVzPWVwaGVtZXJhbCBjb29raWVzPTAgdGlja2V0cz0wIiBcCisgICAgICAgICAiJFBfQ0xJIGNhX2ZpbGU9JERBVEFfRklMRVNfUEFUSC90ZXN0LWNhMi5jcnQgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTI1Ni1HQ00tU0hBMzg0IHNpZ19hbGdzPWVjZHNhX3NlY3AyNTZyMV9zaGEyNTYgZ3JvdXBzPXNlY3AzODRyMSIgXAogICAgICAgICAgMCBcCiAgICAgICAgICAtcyAiUHJvdG9jb2wgaXMgVExTdjEuMyIgXAogICAgICAgICAgLXMgInNlcnZlciBoZWxsbywgY2hvc2VuIGNpcGhlcnN1aXRlOiBUTFMxLTMtQUVTLTI1Ni1HQ00tU0hBMzg0ICggaWQ9NDg2NiApIiBcCkBAIC05ODgwLDggKzk4ODIsOCBAQAogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgTUJFRFRMU19TU0xfVExTMV8zX0NPTVBBVElCSUxJVFlfTU9ERQogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgUFNBX1dBTlRfQUxHX0VDREgKIHJ1bl90ZXN0ICJUTFMgMS4zIG0tPm06IEFFU18yNTZfR0NNX1NIQTM4NCxzZWNwMzg0cjEsZWNkc2Ffc2VjcDM4NHIxX3NoYTM4NCIgXAotICAgICAgICAgIiRQX1NSViBjcnRfZmlsZT1kYXRhX2ZpbGVzL2VjZHNhX3NlY3AzODRyMS5jcnQga2V5X2ZpbGU9ZGF0YV9maWxlcy9lY2RzYV9zZWNwMzg0cjEua2V5IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0yNTYtR0NNLVNIQTM4NCBzaWdfYWxncz1lY2RzYV9zZWNwMzg0cjFfc2hhMzg0IGdyb3Vwcz1zZWNwMzg0cjEgdGxzMTNfa2V4X21vZGVzPWVwaGVtZXJhbCBjb29raWVzPTAgdGlja2V0cz0wIiBcCi0gICAgICAgICAiJFBfQ0xJIGNhX2ZpbGU9ZGF0YV9maWxlcy90ZXN0LWNhMi5jcnQgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTI1Ni1HQ00tU0hBMzg0IHNpZ19hbGdzPWVjZHNhX3NlY3AzODRyMV9zaGEzODQgZ3JvdXBzPXNlY3AzODRyMSIgXAorICAgICAgICAgIiRQX1NSViBjcnRfZmlsZT0kREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3AzODRyMS5jcnQga2V5X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwMzg0cjEua2V5IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0yNTYtR0NNLVNIQTM4NCBzaWdfYWxncz1lY2RzYV9zZWNwMzg0cjFfc2hhMzg0IGdyb3Vwcz1zZWNwMzg0cjEgdGxzMTNfa2V4X21vZGVzPWVwaGVtZXJhbCBjb29raWVzPTAgdGlja2V0cz0wIiBcCisgICAgICAgICAiJFBfQ0xJIGNhX2ZpbGU9JERBVEFfRklMRVNfUEFUSC90ZXN0LWNhMi5jcnQgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTI1Ni1HQ00tU0hBMzg0IHNpZ19hbGdzPWVjZHNhX3NlY3AzODRyMV9zaGEzODQgZ3JvdXBzPXNlY3AzODRyMSIgXAogICAgICAgICAgMCBcCiAgICAgICAgICAtcyAiUHJvdG9jb2wgaXMgVExTdjEuMyIgXAogICAgICAgICAgLXMgInNlcnZlciBoZWxsbywgY2hvc2VuIGNpcGhlcnN1aXRlOiBUTFMxLTMtQUVTLTI1Ni1HQ00tU0hBMzg0ICggaWQ9NDg2NiApIiBcCkBAIC05OTA2LDggKzk5MDgsOCBAQAogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgTUJFRFRMU19TU0xfVExTMV8zX0NPTVBBVElCSUxJVFlfTU9ERQogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgUFNBX1dBTlRfQUxHX0VDREgKIHJ1bl90ZXN0ICJUTFMgMS4zIG0tPm06IEFFU18yNTZfR0NNX1NIQTM4NCxzZWNwMzg0cjEsZWNkc2Ffc2VjcDUyMXIxX3NoYTUxMiIgXAotICAgICAgICAgIiRQX1NSViBjcnRfZmlsZT1kYXRhX2ZpbGVzL2VjZHNhX3NlY3A1MjFyMS5jcnQga2V5X2ZpbGU9ZGF0YV9maWxlcy9lY2RzYV9zZWNwNTIxcjEua2V5IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0yNTYtR0NNLVNIQTM4NCBzaWdfYWxncz1lY2RzYV9zZWNwNTIxcjFfc2hhNTEyIGdyb3Vwcz1zZWNwMzg0cjEgdGxzMTNfa2V4X21vZGVzPWVwaGVtZXJhbCBjb29raWVzPTAgdGlja2V0cz0wIiBcCi0gICAgICAgICAiJFBfQ0xJIGNhX2ZpbGU9ZGF0YV9maWxlcy90ZXN0LWNhMi5jcnQgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTI1Ni1HQ00tU0hBMzg0IHNpZ19hbGdzPWVjZHNhX3NlY3A1MjFyMV9zaGE1MTIgZ3JvdXBzPXNlY3AzODRyMSIgXAorICAgICAgICAgIiRQX1NSViBjcnRfZmlsZT0kREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3A1MjFyMS5jcnQga2V5X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwNTIxcjEua2V5IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0yNTYtR0NNLVNIQTM4NCBzaWdfYWxncz1lY2RzYV9zZWNwNTIxcjFfc2hhNTEyIGdyb3Vwcz1zZWNwMzg0cjEgdGxzMTNfa2V4X21vZGVzPWVwaGVtZXJhbCBjb29raWVzPTAgdGlja2V0cz0wIiBcCisgICAgICAgICAiJFBfQ0xJIGNhX2ZpbGU9JERBVEFfRklMRVNfUEFUSC90ZXN0LWNhMi5jcnQgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTI1Ni1HQ00tU0hBMzg0IHNpZ19hbGdzPWVjZHNhX3NlY3A1MjFyMV9zaGE1MTIgZ3JvdXBzPXNlY3AzODRyMSIgXAogICAgICAgICAgMCBcCiAgICAgICAgICAtcyAiUHJvdG9jb2wgaXMgVExTdjEuMyIgXAogICAgICAgICAgLXMgInNlcnZlciBoZWxsbywgY2hvc2VuIGNpcGhlcnN1aXRlOiBUTFMxLTMtQUVTLTI1Ni1HQ00tU0hBMzg0ICggaWQ9NDg2NiApIiBcCkBAIC05OTM0LDggKzk5MzYsOCBAQAogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgTUJFRFRMU19YNTA5X1JTQVNTQV9QU1NfU1VQUE9SVAogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgUFNBX1dBTlRfQUxHX0VDREgKIHJ1bl90ZXN0ICJUTFMgMS4zIG0tPm06IEFFU18yNTZfR0NNX1NIQTM4NCxzZWNwMzg0cjEscnNhX3Bzc19yc2FlX3NoYTI1NiIgXAotICAgICAgICAgIiRQX1NSViBjcnRfZmlsZT1kYXRhX2ZpbGVzL3NlcnZlcjItc2hhMjU2LmNydCBrZXlfZmlsZT1kYXRhX2ZpbGVzL3NlcnZlcjIua2V5IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0yNTYtR0NNLVNIQTM4NCBzaWdfYWxncz1yc2FfcHNzX3JzYWVfc2hhMjU2IGdyb3Vwcz1zZWNwMzg0cjEgdGxzMTNfa2V4X21vZGVzPWVwaGVtZXJhbCBjb29raWVzPTAgdGlja2V0cz0wIiBcCi0gICAgICAgICAiJFBfQ0xJIGNhX2ZpbGU9ZGF0YV9maWxlcy90ZXN0LWNhX2NhdDEyLmNydCBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMjU2LUdDTS1TSEEzODQgc2lnX2FsZ3M9cnNhX3Bzc19yc2FlX3NoYTI1NiBncm91cHM9c2VjcDM4NHIxIiBcCisgICAgICAgICAiJFBfU1JWIGNydF9maWxlPSREQVRBX0ZJTEVTX1BBVEgvc2VydmVyMi1zaGEyNTYuY3J0IGtleV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvc2VydmVyMi5rZXkgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTI1Ni1HQ00tU0hBMzg0IHNpZ19hbGdzPXJzYV9wc3NfcnNhZV9zaGEyNTYgZ3JvdXBzPXNlY3AzODRyMSB0bHMxM19rZXhfbW9kZXM9ZXBoZW1lcmFsIGNvb2tpZXM9MCB0aWNrZXRzPTAiIFwKKyAgICAgICAgICIkUF9DTEkgY2FfZmlsZT0kREFUQV9GSUxFU19QQVRIL3Rlc3QtY2FfY2F0MTIuY3J0IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0yNTYtR0NNLVNIQTM4NCBzaWdfYWxncz1yc2FfcHNzX3JzYWVfc2hhMjU2IGdyb3Vwcz1zZWNwMzg0cjEiIFwKICAgICAgICAgIDAgXAogICAgICAgICAgLXMgIlByb3RvY29sIGlzIFRMU3YxLjMiIFwKICAgICAgICAgIC1zICJzZXJ2ZXIgaGVsbG8sIGNob3NlbiBjaXBoZXJzdWl0ZTogVExTMS0zLUFFUy0yNTYtR0NNLVNIQTM4NCAoIGlkPTQ4NjYgKSIgXApAQCAtOTk2MCw4ICs5OTYyLDggQEAKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIE1CRURUTFNfU1NMX1RMUzFfM19DT01QQVRJQklMSVRZX01PREUKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIFBTQV9XQU5UX0FMR19FQ0RICiBydW5fdGVzdCAiVExTIDEuMyBtLT5tOiBBRVNfMjU2X0dDTV9TSEEzODQsc2VjcDUyMXIxLGVjZHNhX3NlY3AyNTZyMV9zaGEyNTYiIFwKLSAgICAgICAgICIkUF9TUlYgY3J0X2ZpbGU9ZGF0YV9maWxlcy9lY2RzYV9zZWNwMjU2cjEuY3J0IGtleV9maWxlPWRhdGFfZmlsZXMvZWNkc2Ffc2VjcDI1NnIxLmtleSBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMjU2LUdDTS1TSEEzODQgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDI1NnIxX3NoYTI1NiBncm91cHM9c2VjcDUyMXIxIHRsczEzX2tleF9tb2Rlcz1lcGhlbWVyYWwgY29va2llcz0wIHRpY2tldHM9MCIgXAotICAgICAgICAgIiRQX0NMSSBjYV9maWxlPWRhdGFfZmlsZXMvdGVzdC1jYTIuY3J0IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0yNTYtR0NNLVNIQTM4NCBzaWdfYWxncz1lY2RzYV9zZWNwMjU2cjFfc2hhMjU2IGdyb3Vwcz1zZWNwNTIxcjEiIFwKKyAgICAgICAgICIkUF9TUlYgY3J0X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwMjU2cjEuY3J0IGtleV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDI1NnIxLmtleSBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMjU2LUdDTS1TSEEzODQgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDI1NnIxX3NoYTI1NiBncm91cHM9c2VjcDUyMXIxIHRsczEzX2tleF9tb2Rlcz1lcGhlbWVyYWwgY29va2llcz0wIHRpY2tldHM9MCIgXAorICAgICAgICAgIiRQX0NMSSBjYV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvdGVzdC1jYTIuY3J0IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0yNTYtR0NNLVNIQTM4NCBzaWdfYWxncz1lY2RzYV9zZWNwMjU2cjFfc2hhMjU2IGdyb3Vwcz1zZWNwNTIxcjEiIFwKICAgICAgICAgIDAgXAogICAgICAgICAgLXMgIlByb3RvY29sIGlzIFRMU3YxLjMiIFwKICAgICAgICAgIC1zICJzZXJ2ZXIgaGVsbG8sIGNob3NlbiBjaXBoZXJzdWl0ZTogVExTMS0zLUFFUy0yNTYtR0NNLVNIQTM4NCAoIGlkPTQ4NjYgKSIgXApAQCAtOTk4Niw4ICs5OTg4LDggQEAKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIE1CRURUTFNfU1NMX1RMUzFfM19DT01QQVRJQklMSVRZX01PREUKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIFBTQV9XQU5UX0FMR19FQ0RICiBydW5fdGVzdCAiVExTIDEuMyBtLT5tOiBBRVNfMjU2X0dDTV9TSEEzODQsc2VjcDUyMXIxLGVjZHNhX3NlY3AzODRyMV9zaGEzODQiIFwKLSAgICAgICAgICIkUF9TUlYgY3J0X2ZpbGU9ZGF0YV9maWxlcy9lY2RzYV9zZWNwMzg0cjEuY3J0IGtleV9maWxlPWRhdGFfZmlsZXMvZWNkc2Ffc2VjcDM4NHIxLmtleSBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMjU2LUdDTS1TSEEzODQgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDM4NHIxX3NoYTM4NCBncm91cHM9c2VjcDUyMXIxIHRsczEzX2tleF9tb2Rlcz1lcGhlbWVyYWwgY29va2llcz0wIHRpY2tldHM9MCIgXAotICAgICAgICAgIiRQX0NMSSBjYV9maWxlPWRhdGFfZmlsZXMvdGVzdC1jYTIuY3J0IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0yNTYtR0NNLVNIQTM4NCBzaWdfYWxncz1lY2RzYV9zZWNwMzg0cjFfc2hhMzg0IGdyb3Vwcz1zZWNwNTIxcjEiIFwKKyAgICAgICAgICIkUF9TUlYgY3J0X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwMzg0cjEuY3J0IGtleV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDM4NHIxLmtleSBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMjU2LUdDTS1TSEEzODQgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDM4NHIxX3NoYTM4NCBncm91cHM9c2VjcDUyMXIxIHRsczEzX2tleF9tb2Rlcz1lcGhlbWVyYWwgY29va2llcz0wIHRpY2tldHM9MCIgXAorICAgICAgICAgIiRQX0NMSSBjYV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvdGVzdC1jYTIuY3J0IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0yNTYtR0NNLVNIQTM4NCBzaWdfYWxncz1lY2RzYV9zZWNwMzg0cjFfc2hhMzg0IGdyb3Vwcz1zZWNwNTIxcjEiIFwKICAgICAgICAgIDAgXAogICAgICAgICAgLXMgIlByb3RvY29sIGlzIFRMU3YxLjMiIFwKICAgICAgICAgIC1zICJzZXJ2ZXIgaGVsbG8sIGNob3NlbiBjaXBoZXJzdWl0ZTogVExTMS0zLUFFUy0yNTYtR0NNLVNIQTM4NCAoIGlkPTQ4NjYgKSIgXApAQCAtMTAwMTIsOCArMTAwMTQsOCBAQAogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgTUJFRFRMU19TU0xfVExTMV8zX0NPTVBBVElCSUxJVFlfTU9ERQogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgUFNBX1dBTlRfQUxHX0VDREgKIHJ1bl90ZXN0ICJUTFMgMS4zIG0tPm06IEFFU18yNTZfR0NNX1NIQTM4NCxzZWNwNTIxcjEsZWNkc2Ffc2VjcDUyMXIxX3NoYTUxMiIgXAotICAgICAgICAgIiRQX1NSViBjcnRfZmlsZT1kYXRhX2ZpbGVzL2VjZHNhX3NlY3A1MjFyMS5jcnQga2V5X2ZpbGU9ZGF0YV9maWxlcy9lY2RzYV9zZWNwNTIxcjEua2V5IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0yNTYtR0NNLVNIQTM4NCBzaWdfYWxncz1lY2RzYV9zZWNwNTIxcjFfc2hhNTEyIGdyb3Vwcz1zZWNwNTIxcjEgdGxzMTNfa2V4X21vZGVzPWVwaGVtZXJhbCBjb29raWVzPTAgdGlja2V0cz0wIiBcCi0gICAgICAgICAiJFBfQ0xJIGNhX2ZpbGU9ZGF0YV9maWxlcy90ZXN0LWNhMi5jcnQgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTI1Ni1HQ00tU0hBMzg0IHNpZ19hbGdzPWVjZHNhX3NlY3A1MjFyMV9zaGE1MTIgZ3JvdXBzPXNlY3A1MjFyMSIgXAorICAgICAgICAgIiRQX1NSViBjcnRfZmlsZT0kREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3A1MjFyMS5jcnQga2V5X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwNTIxcjEua2V5IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0yNTYtR0NNLVNIQTM4NCBzaWdfYWxncz1lY2RzYV9zZWNwNTIxcjFfc2hhNTEyIGdyb3Vwcz1zZWNwNTIxcjEgdGxzMTNfa2V4X21vZGVzPWVwaGVtZXJhbCBjb29raWVzPTAgdGlja2V0cz0wIiBcCisgICAgICAgICAiJFBfQ0xJIGNhX2ZpbGU9JERBVEFfRklMRVNfUEFUSC90ZXN0LWNhMi5jcnQgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTI1Ni1HQ00tU0hBMzg0IHNpZ19hbGdzPWVjZHNhX3NlY3A1MjFyMV9zaGE1MTIgZ3JvdXBzPXNlY3A1MjFyMSIgXAogICAgICAgICAgMCBcCiAgICAgICAgICAtcyAiUHJvdG9jb2wgaXMgVExTdjEuMyIgXAogICAgICAgICAgLXMgInNlcnZlciBoZWxsbywgY2hvc2VuIGNpcGhlcnN1aXRlOiBUTFMxLTMtQUVTLTI1Ni1HQ00tU0hBMzg0ICggaWQ9NDg2NiApIiBcCkBAIC0xMDA0MCw4ICsxMDA0Miw4IEBACiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBNQkVEVExTX1g1MDlfUlNBU1NBX1BTU19TVVBQT1JUCiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBQU0FfV0FOVF9BTEdfRUNESAogcnVuX3Rlc3QgIlRMUyAxLjMgbS0+bTogQUVTXzI1Nl9HQ01fU0hBMzg0LHNlY3A1MjFyMSxyc2FfcHNzX3JzYWVfc2hhMjU2IiBcCi0gICAgICAgICAiJFBfU1JWIGNydF9maWxlPWRhdGFfZmlsZXMvc2VydmVyMi1zaGEyNTYuY3J0IGtleV9maWxlPWRhdGFfZmlsZXMvc2VydmVyMi5rZXkgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTI1Ni1HQ00tU0hBMzg0IHNpZ19hbGdzPXJzYV9wc3NfcnNhZV9zaGEyNTYgZ3JvdXBzPXNlY3A1MjFyMSB0bHMxM19rZXhfbW9kZXM9ZXBoZW1lcmFsIGNvb2tpZXM9MCB0aWNrZXRzPTAiIFwKLSAgICAgICAgICIkUF9DTEkgY2FfZmlsZT1kYXRhX2ZpbGVzL3Rlc3QtY2FfY2F0MTIuY3J0IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0yNTYtR0NNLVNIQTM4NCBzaWdfYWxncz1yc2FfcHNzX3JzYWVfc2hhMjU2IGdyb3Vwcz1zZWNwNTIxcjEiIFwKKyAgICAgICAgICIkUF9TUlYgY3J0X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9zZXJ2ZXIyLXNoYTI1Ni5jcnQga2V5X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9zZXJ2ZXIyLmtleSBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMjU2LUdDTS1TSEEzODQgc2lnX2FsZ3M9cnNhX3Bzc19yc2FlX3NoYTI1NiBncm91cHM9c2VjcDUyMXIxIHRsczEzX2tleF9tb2Rlcz1lcGhlbWVyYWwgY29va2llcz0wIHRpY2tldHM9MCIgXAorICAgICAgICAgIiRQX0NMSSBjYV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvdGVzdC1jYV9jYXQxMi5jcnQgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTI1Ni1HQ00tU0hBMzg0IHNpZ19hbGdzPXJzYV9wc3NfcnNhZV9zaGEyNTYgZ3JvdXBzPXNlY3A1MjFyMSIgXAogICAgICAgICAgMCBcCiAgICAgICAgICAtcyAiUHJvdG9jb2wgaXMgVExTdjEuMyIgXAogICAgICAgICAgLXMgInNlcnZlciBoZWxsbywgY2hvc2VuIGNpcGhlcnN1aXRlOiBUTFMxLTMtQUVTLTI1Ni1HQ00tU0hBMzg0ICggaWQ9NDg2NiApIiBcCkBAIC0xMDA2Niw4ICsxMDA2OCw4IEBACiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBNQkVEVExTX1NTTF9UTFMxXzNfQ09NUEFUSUJJTElUWV9NT0RFCiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBQU0FfV0FOVF9BTEdfRUNESAogcnVuX3Rlc3QgIlRMUyAxLjMgbS0+bTogQUVTXzI1Nl9HQ01fU0hBMzg0LHgyNTUxOSxlY2RzYV9zZWNwMjU2cjFfc2hhMjU2IiBcCi0gICAgICAgICAiJFBfU1JWIGNydF9maWxlPWRhdGFfZmlsZXMvZWNkc2Ffc2VjcDI1NnIxLmNydCBrZXlfZmlsZT1kYXRhX2ZpbGVzL2VjZHNhX3NlY3AyNTZyMS5rZXkgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTI1Ni1HQ00tU0hBMzg0IHNpZ19hbGdzPWVjZHNhX3NlY3AyNTZyMV9zaGEyNTYgZ3JvdXBzPXgyNTUxOSB0bHMxM19rZXhfbW9kZXM9ZXBoZW1lcmFsIGNvb2tpZXM9MCB0aWNrZXRzPTAiIFwKLSAgICAgICAgICIkUF9DTEkgY2FfZmlsZT1kYXRhX2ZpbGVzL3Rlc3QtY2EyLmNydCBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMjU2LUdDTS1TSEEzODQgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDI1NnIxX3NoYTI1NiBncm91cHM9eDI1NTE5IiBcCisgICAgICAgICAiJFBfU1JWIGNydF9maWxlPSREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDI1NnIxLmNydCBrZXlfZmlsZT0kREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3AyNTZyMS5rZXkgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTI1Ni1HQ00tU0hBMzg0IHNpZ19hbGdzPWVjZHNhX3NlY3AyNTZyMV9zaGEyNTYgZ3JvdXBzPXgyNTUxOSB0bHMxM19rZXhfbW9kZXM9ZXBoZW1lcmFsIGNvb2tpZXM9MCB0aWNrZXRzPTAiIFwKKyAgICAgICAgICIkUF9DTEkgY2FfZmlsZT0kREFUQV9GSUxFU19QQVRIL3Rlc3QtY2EyLmNydCBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMjU2LUdDTS1TSEEzODQgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDI1NnIxX3NoYTI1NiBncm91cHM9eDI1NTE5IiBcCiAgICAgICAgICAwIFwKICAgICAgICAgIC1zICJQcm90b2NvbCBpcyBUTFN2MS4zIiBcCiAgICAgICAgICAtcyAic2VydmVyIGhlbGxvLCBjaG9zZW4gY2lwaGVyc3VpdGU6IFRMUzEtMy1BRVMtMjU2LUdDTS1TSEEzODQgKCBpZD00ODY2ICkiIFwKQEAgLTEwMDkyLDggKzEwMDk0LDggQEAKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIE1CRURUTFNfU1NMX1RMUzFfM19DT01QQVRJQklMSVRZX01PREUKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIFBTQV9XQU5UX0FMR19FQ0RICiBydW5fdGVzdCAiVExTIDEuMyBtLT5tOiBBRVNfMjU2X0dDTV9TSEEzODQseDI1NTE5LGVjZHNhX3NlY3AzODRyMV9zaGEzODQiIFwKLSAgICAgICAgICIkUF9TUlYgY3J0X2ZpbGU9ZGF0YV9maWxlcy9lY2RzYV9zZWNwMzg0cjEuY3J0IGtleV9maWxlPWRhdGFfZmlsZXMvZWNkc2Ffc2VjcDM4NHIxLmtleSBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMjU2LUdDTS1TSEEzODQgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDM4NHIxX3NoYTM4NCBncm91cHM9eDI1NTE5IHRsczEzX2tleF9tb2Rlcz1lcGhlbWVyYWwgY29va2llcz0wIHRpY2tldHM9MCIgXAotICAgICAgICAgIiRQX0NMSSBjYV9maWxlPWRhdGFfZmlsZXMvdGVzdC1jYTIuY3J0IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0yNTYtR0NNLVNIQTM4NCBzaWdfYWxncz1lY2RzYV9zZWNwMzg0cjFfc2hhMzg0IGdyb3Vwcz14MjU1MTkiIFwKKyAgICAgICAgICIkUF9TUlYgY3J0X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwMzg0cjEuY3J0IGtleV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDM4NHIxLmtleSBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMjU2LUdDTS1TSEEzODQgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDM4NHIxX3NoYTM4NCBncm91cHM9eDI1NTE5IHRsczEzX2tleF9tb2Rlcz1lcGhlbWVyYWwgY29va2llcz0wIHRpY2tldHM9MCIgXAorICAgICAgICAgIiRQX0NMSSBjYV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvdGVzdC1jYTIuY3J0IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0yNTYtR0NNLVNIQTM4NCBzaWdfYWxncz1lY2RzYV9zZWNwMzg0cjFfc2hhMzg0IGdyb3Vwcz14MjU1MTkiIFwKICAgICAgICAgIDAgXAogICAgICAgICAgLXMgIlByb3RvY29sIGlzIFRMU3YxLjMiIFwKICAgICAgICAgIC1zICJzZXJ2ZXIgaGVsbG8sIGNob3NlbiBjaXBoZXJzdWl0ZTogVExTMS0zLUFFUy0yNTYtR0NNLVNIQTM4NCAoIGlkPTQ4NjYgKSIgXApAQCAtMTAxMTgsOCArMTAxMjAsOCBAQAogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgTUJFRFRMU19TU0xfVExTMV8zX0NPTVBBVElCSUxJVFlfTU9ERQogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgUFNBX1dBTlRfQUxHX0VDREgKIHJ1bl90ZXN0ICJUTFMgMS4zIG0tPm06IEFFU18yNTZfR0NNX1NIQTM4NCx4MjU1MTksZWNkc2Ffc2VjcDUyMXIxX3NoYTUxMiIgXAotICAgICAgICAgIiRQX1NSViBjcnRfZmlsZT1kYXRhX2ZpbGVzL2VjZHNhX3NlY3A1MjFyMS5jcnQga2V5X2ZpbGU9ZGF0YV9maWxlcy9lY2RzYV9zZWNwNTIxcjEua2V5IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0yNTYtR0NNLVNIQTM4NCBzaWdfYWxncz1lY2RzYV9zZWNwNTIxcjFfc2hhNTEyIGdyb3Vwcz14MjU1MTkgdGxzMTNfa2V4X21vZGVzPWVwaGVtZXJhbCBjb29raWVzPTAgdGlja2V0cz0wIiBcCi0gICAgICAgICAiJFBfQ0xJIGNhX2ZpbGU9ZGF0YV9maWxlcy90ZXN0LWNhMi5jcnQgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTI1Ni1HQ00tU0hBMzg0IHNpZ19hbGdzPWVjZHNhX3NlY3A1MjFyMV9zaGE1MTIgZ3JvdXBzPXgyNTUxOSIgXAorICAgICAgICAgIiRQX1NSViBjcnRfZmlsZT0kREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3A1MjFyMS5jcnQga2V5X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwNTIxcjEua2V5IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0yNTYtR0NNLVNIQTM4NCBzaWdfYWxncz1lY2RzYV9zZWNwNTIxcjFfc2hhNTEyIGdyb3Vwcz14MjU1MTkgdGxzMTNfa2V4X21vZGVzPWVwaGVtZXJhbCBjb29raWVzPTAgdGlja2V0cz0wIiBcCisgICAgICAgICAiJFBfQ0xJIGNhX2ZpbGU9JERBVEFfRklMRVNfUEFUSC90ZXN0LWNhMi5jcnQgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTI1Ni1HQ00tU0hBMzg0IHNpZ19hbGdzPWVjZHNhX3NlY3A1MjFyMV9zaGE1MTIgZ3JvdXBzPXgyNTUxOSIgXAogICAgICAgICAgMCBcCiAgICAgICAgICAtcyAiUHJvdG9jb2wgaXMgVExTdjEuMyIgXAogICAgICAgICAgLXMgInNlcnZlciBoZWxsbywgY2hvc2VuIGNpcGhlcnN1aXRlOiBUTFMxLTMtQUVTLTI1Ni1HQ00tU0hBMzg0ICggaWQ9NDg2NiApIiBcCkBAIC0xMDE0Niw4ICsxMDE0OCw4IEBACiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBNQkVEVExTX1g1MDlfUlNBU1NBX1BTU19TVVBQT1JUCiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBQU0FfV0FOVF9BTEdfRUNESAogcnVuX3Rlc3QgIlRMUyAxLjMgbS0+bTogQUVTXzI1Nl9HQ01fU0hBMzg0LHgyNTUxOSxyc2FfcHNzX3JzYWVfc2hhMjU2IiBcCi0gICAgICAgICAiJFBfU1JWIGNydF9maWxlPWRhdGFfZmlsZXMvc2VydmVyMi1zaGEyNTYuY3J0IGtleV9maWxlPWRhdGFfZmlsZXMvc2VydmVyMi5rZXkgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTI1Ni1HQ00tU0hBMzg0IHNpZ19hbGdzPXJzYV9wc3NfcnNhZV9zaGEyNTYgZ3JvdXBzPXgyNTUxOSB0bHMxM19rZXhfbW9kZXM9ZXBoZW1lcmFsIGNvb2tpZXM9MCB0aWNrZXRzPTAiIFwKLSAgICAgICAgICIkUF9DTEkgY2FfZmlsZT1kYXRhX2ZpbGVzL3Rlc3QtY2FfY2F0MTIuY3J0IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0yNTYtR0NNLVNIQTM4NCBzaWdfYWxncz1yc2FfcHNzX3JzYWVfc2hhMjU2IGdyb3Vwcz14MjU1MTkiIFwKKyAgICAgICAgICIkUF9TUlYgY3J0X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9zZXJ2ZXIyLXNoYTI1Ni5jcnQga2V5X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9zZXJ2ZXIyLmtleSBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMjU2LUdDTS1TSEEzODQgc2lnX2FsZ3M9cnNhX3Bzc19yc2FlX3NoYTI1NiBncm91cHM9eDI1NTE5IHRsczEzX2tleF9tb2Rlcz1lcGhlbWVyYWwgY29va2llcz0wIHRpY2tldHM9MCIgXAorICAgICAgICAgIiRQX0NMSSBjYV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvdGVzdC1jYV9jYXQxMi5jcnQgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTI1Ni1HQ00tU0hBMzg0IHNpZ19hbGdzPXJzYV9wc3NfcnNhZV9zaGEyNTYgZ3JvdXBzPXgyNTUxOSIgXAogICAgICAgICAgMCBcCiAgICAgICAgICAtcyAiUHJvdG9jb2wgaXMgVExTdjEuMyIgXAogICAgICAgICAgLXMgInNlcnZlciBoZWxsbywgY2hvc2VuIGNpcGhlcnN1aXRlOiBUTFMxLTMtQUVTLTI1Ni1HQ00tU0hBMzg0ICggaWQ9NDg2NiApIiBcCkBAIC0xMDE3Miw4ICsxMDE3NCw4IEBACiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBNQkVEVExTX1NTTF9UTFMxXzNfQ09NUEFUSUJJTElUWV9NT0RFCiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBQU0FfV0FOVF9BTEdfRUNESAogcnVuX3Rlc3QgIlRMUyAxLjMgbS0+bTogQUVTXzI1Nl9HQ01fU0hBMzg0LHg0NDgsZWNkc2Ffc2VjcDI1NnIxX3NoYTI1NiIgXAotICAgICAgICAgIiRQX1NSViBjcnRfZmlsZT1kYXRhX2ZpbGVzL2VjZHNhX3NlY3AyNTZyMS5jcnQga2V5X2ZpbGU9ZGF0YV9maWxlcy9lY2RzYV9zZWNwMjU2cjEua2V5IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0yNTYtR0NNLVNIQTM4NCBzaWdfYWxncz1lY2RzYV9zZWNwMjU2cjFfc2hhMjU2IGdyb3Vwcz14NDQ4IHRsczEzX2tleF9tb2Rlcz1lcGhlbWVyYWwgY29va2llcz0wIHRpY2tldHM9MCIgXAotICAgICAgICAgIiRQX0NMSSBjYV9maWxlPWRhdGFfZmlsZXMvdGVzdC1jYTIuY3J0IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0yNTYtR0NNLVNIQTM4NCBzaWdfYWxncz1lY2RzYV9zZWNwMjU2cjFfc2hhMjU2IGdyb3Vwcz14NDQ4IiBcCisgICAgICAgICAiJFBfU1JWIGNydF9maWxlPSREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDI1NnIxLmNydCBrZXlfZmlsZT0kREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3AyNTZyMS5rZXkgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTI1Ni1HQ00tU0hBMzg0IHNpZ19hbGdzPWVjZHNhX3NlY3AyNTZyMV9zaGEyNTYgZ3JvdXBzPXg0NDggdGxzMTNfa2V4X21vZGVzPWVwaGVtZXJhbCBjb29raWVzPTAgdGlja2V0cz0wIiBcCisgICAgICAgICAiJFBfQ0xJIGNhX2ZpbGU9JERBVEFfRklMRVNfUEFUSC90ZXN0LWNhMi5jcnQgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTI1Ni1HQ00tU0hBMzg0IHNpZ19hbGdzPWVjZHNhX3NlY3AyNTZyMV9zaGEyNTYgZ3JvdXBzPXg0NDgiIFwKICAgICAgICAgIDAgXAogICAgICAgICAgLXMgIlByb3RvY29sIGlzIFRMU3YxLjMiIFwKICAgICAgICAgIC1zICJzZXJ2ZXIgaGVsbG8sIGNob3NlbiBjaXBoZXJzdWl0ZTogVExTMS0zLUFFUy0yNTYtR0NNLVNIQTM4NCAoIGlkPTQ4NjYgKSIgXApAQCAtMTAxOTgsOCArMTAyMDAsOCBAQAogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgTUJFRFRMU19TU0xfVExTMV8zX0NPTVBBVElCSUxJVFlfTU9ERQogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgUFNBX1dBTlRfQUxHX0VDREgKIHJ1bl90ZXN0ICJUTFMgMS4zIG0tPm06IEFFU18yNTZfR0NNX1NIQTM4NCx4NDQ4LGVjZHNhX3NlY3AzODRyMV9zaGEzODQiIFwKLSAgICAgICAgICIkUF9TUlYgY3J0X2ZpbGU9ZGF0YV9maWxlcy9lY2RzYV9zZWNwMzg0cjEuY3J0IGtleV9maWxlPWRhdGFfZmlsZXMvZWNkc2Ffc2VjcDM4NHIxLmtleSBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMjU2LUdDTS1TSEEzODQgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDM4NHIxX3NoYTM4NCBncm91cHM9eDQ0OCB0bHMxM19rZXhfbW9kZXM9ZXBoZW1lcmFsIGNvb2tpZXM9MCB0aWNrZXRzPTAiIFwKLSAgICAgICAgICIkUF9DTEkgY2FfZmlsZT1kYXRhX2ZpbGVzL3Rlc3QtY2EyLmNydCBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMjU2LUdDTS1TSEEzODQgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDM4NHIxX3NoYTM4NCBncm91cHM9eDQ0OCIgXAorICAgICAgICAgIiRQX1NSViBjcnRfZmlsZT0kREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3AzODRyMS5jcnQga2V5X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwMzg0cjEua2V5IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0yNTYtR0NNLVNIQTM4NCBzaWdfYWxncz1lY2RzYV9zZWNwMzg0cjFfc2hhMzg0IGdyb3Vwcz14NDQ4IHRsczEzX2tleF9tb2Rlcz1lcGhlbWVyYWwgY29va2llcz0wIHRpY2tldHM9MCIgXAorICAgICAgICAgIiRQX0NMSSBjYV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvdGVzdC1jYTIuY3J0IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0yNTYtR0NNLVNIQTM4NCBzaWdfYWxncz1lY2RzYV9zZWNwMzg0cjFfc2hhMzg0IGdyb3Vwcz14NDQ4IiBcCiAgICAgICAgICAwIFwKICAgICAgICAgIC1zICJQcm90b2NvbCBpcyBUTFN2MS4zIiBcCiAgICAgICAgICAtcyAic2VydmVyIGhlbGxvLCBjaG9zZW4gY2lwaGVyc3VpdGU6IFRMUzEtMy1BRVMtMjU2LUdDTS1TSEEzODQgKCBpZD00ODY2ICkiIFwKQEAgLTEwMjI0LDggKzEwMjI2LDggQEAKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIE1CRURUTFNfU1NMX1RMUzFfM19DT01QQVRJQklMSVRZX01PREUKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIFBTQV9XQU5UX0FMR19FQ0RICiBydW5fdGVzdCAiVExTIDEuMyBtLT5tOiBBRVNfMjU2X0dDTV9TSEEzODQseDQ0OCxlY2RzYV9zZWNwNTIxcjFfc2hhNTEyIiBcCi0gICAgICAgICAiJFBfU1JWIGNydF9maWxlPWRhdGFfZmlsZXMvZWNkc2Ffc2VjcDUyMXIxLmNydCBrZXlfZmlsZT1kYXRhX2ZpbGVzL2VjZHNhX3NlY3A1MjFyMS5rZXkgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTI1Ni1HQ00tU0hBMzg0IHNpZ19hbGdzPWVjZHNhX3NlY3A1MjFyMV9zaGE1MTIgZ3JvdXBzPXg0NDggdGxzMTNfa2V4X21vZGVzPWVwaGVtZXJhbCBjb29raWVzPTAgdGlja2V0cz0wIiBcCi0gICAgICAgICAiJFBfQ0xJIGNhX2ZpbGU9ZGF0YV9maWxlcy90ZXN0LWNhMi5jcnQgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTI1Ni1HQ00tU0hBMzg0IHNpZ19hbGdzPWVjZHNhX3NlY3A1MjFyMV9zaGE1MTIgZ3JvdXBzPXg0NDgiIFwKKyAgICAgICAgICIkUF9TUlYgY3J0X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwNTIxcjEuY3J0IGtleV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDUyMXIxLmtleSBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMjU2LUdDTS1TSEEzODQgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDUyMXIxX3NoYTUxMiBncm91cHM9eDQ0OCB0bHMxM19rZXhfbW9kZXM9ZXBoZW1lcmFsIGNvb2tpZXM9MCB0aWNrZXRzPTAiIFwKKyAgICAgICAgICIkUF9DTEkgY2FfZmlsZT0kREFUQV9GSUxFU19QQVRIL3Rlc3QtY2EyLmNydCBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMjU2LUdDTS1TSEEzODQgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDUyMXIxX3NoYTUxMiBncm91cHM9eDQ0OCIgXAogICAgICAgICAgMCBcCiAgICAgICAgICAtcyAiUHJvdG9jb2wgaXMgVExTdjEuMyIgXAogICAgICAgICAgLXMgInNlcnZlciBoZWxsbywgY2hvc2VuIGNpcGhlcnN1aXRlOiBUTFMxLTMtQUVTLTI1Ni1HQ00tU0hBMzg0ICggaWQ9NDg2NiApIiBcCkBAIC0xMDI1Miw4ICsxMDI1NCw4IEBACiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBNQkVEVExTX1g1MDlfUlNBU1NBX1BTU19TVVBQT1JUCiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBQU0FfV0FOVF9BTEdfRUNESAogcnVuX3Rlc3QgIlRMUyAxLjMgbS0+bTogQUVTXzI1Nl9HQ01fU0hBMzg0LHg0NDgscnNhX3Bzc19yc2FlX3NoYTI1NiIgXAotICAgICAgICAgIiRQX1NSViBjcnRfZmlsZT1kYXRhX2ZpbGVzL3NlcnZlcjItc2hhMjU2LmNydCBrZXlfZmlsZT1kYXRhX2ZpbGVzL3NlcnZlcjIua2V5IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0yNTYtR0NNLVNIQTM4NCBzaWdfYWxncz1yc2FfcHNzX3JzYWVfc2hhMjU2IGdyb3Vwcz14NDQ4IHRsczEzX2tleF9tb2Rlcz1lcGhlbWVyYWwgY29va2llcz0wIHRpY2tldHM9MCIgXAotICAgICAgICAgIiRQX0NMSSBjYV9maWxlPWRhdGFfZmlsZXMvdGVzdC1jYV9jYXQxMi5jcnQgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTI1Ni1HQ00tU0hBMzg0IHNpZ19hbGdzPXJzYV9wc3NfcnNhZV9zaGEyNTYgZ3JvdXBzPXg0NDgiIFwKKyAgICAgICAgICIkUF9TUlYgY3J0X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9zZXJ2ZXIyLXNoYTI1Ni5jcnQga2V5X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9zZXJ2ZXIyLmtleSBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMjU2LUdDTS1TSEEzODQgc2lnX2FsZ3M9cnNhX3Bzc19yc2FlX3NoYTI1NiBncm91cHM9eDQ0OCB0bHMxM19rZXhfbW9kZXM9ZXBoZW1lcmFsIGNvb2tpZXM9MCB0aWNrZXRzPTAiIFwKKyAgICAgICAgICIkUF9DTEkgY2FfZmlsZT0kREFUQV9GSUxFU19QQVRIL3Rlc3QtY2FfY2F0MTIuY3J0IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0yNTYtR0NNLVNIQTM4NCBzaWdfYWxncz1yc2FfcHNzX3JzYWVfc2hhMjU2IGdyb3Vwcz14NDQ4IiBcCiAgICAgICAgICAwIFwKICAgICAgICAgIC1zICJQcm90b2NvbCBpcyBUTFN2MS4zIiBcCiAgICAgICAgICAtcyAic2VydmVyIGhlbGxvLCBjaG9zZW4gY2lwaGVyc3VpdGU6IFRMUzEtMy1BRVMtMjU2LUdDTS1TSEEzODQgKCBpZD00ODY2ICkiIFwKQEAgLTEwMjgwLDggKzEwMjgyLDggQEAKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIFBTQV9XQU5UX0FMR19GRkRICiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBQU0FfV0FOVF9ESF9SRkM3OTE5XzIwNDgKIHJ1bl90ZXN0ICJUTFMgMS4zIG0tPm06IEFFU18yNTZfR0NNX1NIQTM4NCxmZmRoZTIwNDgsZWNkc2Ffc2VjcDI1NnIxX3NoYTI1NiIgXAotICAgICAgICAgIiRQX1NSViBjcnRfZmlsZT1kYXRhX2ZpbGVzL2VjZHNhX3NlY3AyNTZyMS5jcnQga2V5X2ZpbGU9ZGF0YV9maWxlcy9lY2RzYV9zZWNwMjU2cjEua2V5IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0yNTYtR0NNLVNIQTM4NCBzaWdfYWxncz1lY2RzYV9zZWNwMjU2cjFfc2hhMjU2IGdyb3Vwcz1mZmRoZTIwNDggdGxzMTNfa2V4X21vZGVzPWVwaGVtZXJhbCBjb29raWVzPTAgdGlja2V0cz0wIiBcCi0gICAgICAgICAiJFBfQ0xJIGNhX2ZpbGU9ZGF0YV9maWxlcy90ZXN0LWNhMi5jcnQgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTI1Ni1HQ00tU0hBMzg0IHNpZ19hbGdzPWVjZHNhX3NlY3AyNTZyMV9zaGEyNTYgZ3JvdXBzPWZmZGhlMjA0OCIgXAorICAgICAgICAgIiRQX1NSViBjcnRfZmlsZT0kREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3AyNTZyMS5jcnQga2V5X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwMjU2cjEua2V5IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0yNTYtR0NNLVNIQTM4NCBzaWdfYWxncz1lY2RzYV9zZWNwMjU2cjFfc2hhMjU2IGdyb3Vwcz1mZmRoZTIwNDggdGxzMTNfa2V4X21vZGVzPWVwaGVtZXJhbCBjb29raWVzPTAgdGlja2V0cz0wIiBcCisgICAgICAgICAiJFBfQ0xJIGNhX2ZpbGU9JERBVEFfRklMRVNfUEFUSC90ZXN0LWNhMi5jcnQgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTI1Ni1HQ00tU0hBMzg0IHNpZ19hbGdzPWVjZHNhX3NlY3AyNTZyMV9zaGEyNTYgZ3JvdXBzPWZmZGhlMjA0OCIgXAogICAgICAgICAgMCBcCiAgICAgICAgICAtcyAiUHJvdG9jb2wgaXMgVExTdjEuMyIgXAogICAgICAgICAgLXMgInNlcnZlciBoZWxsbywgY2hvc2VuIGNpcGhlcnN1aXRlOiBUTFMxLTMtQUVTLTI1Ni1HQ00tU0hBMzg0ICggaWQ9NDg2NiApIiBcCkBAIC0xMDMwOCw4ICsxMDMxMCw4IEBACiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBQU0FfV0FOVF9BTEdfRkZESAogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgUFNBX1dBTlRfREhfUkZDNzkxOV8yMDQ4CiBydW5fdGVzdCAiVExTIDEuMyBtLT5tOiBBRVNfMjU2X0dDTV9TSEEzODQsZmZkaGUyMDQ4LGVjZHNhX3NlY3AzODRyMV9zaGEzODQiIFwKLSAgICAgICAgICIkUF9TUlYgY3J0X2ZpbGU9ZGF0YV9maWxlcy9lY2RzYV9zZWNwMzg0cjEuY3J0IGtleV9maWxlPWRhdGFfZmlsZXMvZWNkc2Ffc2VjcDM4NHIxLmtleSBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMjU2LUdDTS1TSEEzODQgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDM4NHIxX3NoYTM4NCBncm91cHM9ZmZkaGUyMDQ4IHRsczEzX2tleF9tb2Rlcz1lcGhlbWVyYWwgY29va2llcz0wIHRpY2tldHM9MCIgXAotICAgICAgICAgIiRQX0NMSSBjYV9maWxlPWRhdGFfZmlsZXMvdGVzdC1jYTIuY3J0IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0yNTYtR0NNLVNIQTM4NCBzaWdfYWxncz1lY2RzYV9zZWNwMzg0cjFfc2hhMzg0IGdyb3Vwcz1mZmRoZTIwNDgiIFwKKyAgICAgICAgICIkUF9TUlYgY3J0X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwMzg0cjEuY3J0IGtleV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDM4NHIxLmtleSBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMjU2LUdDTS1TSEEzODQgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDM4NHIxX3NoYTM4NCBncm91cHM9ZmZkaGUyMDQ4IHRsczEzX2tleF9tb2Rlcz1lcGhlbWVyYWwgY29va2llcz0wIHRpY2tldHM9MCIgXAorICAgICAgICAgIiRQX0NMSSBjYV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvdGVzdC1jYTIuY3J0IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0yNTYtR0NNLVNIQTM4NCBzaWdfYWxncz1lY2RzYV9zZWNwMzg0cjFfc2hhMzg0IGdyb3Vwcz1mZmRoZTIwNDgiIFwKICAgICAgICAgIDAgXAogICAgICAgICAgLXMgIlByb3RvY29sIGlzIFRMU3YxLjMiIFwKICAgICAgICAgIC1zICJzZXJ2ZXIgaGVsbG8sIGNob3NlbiBjaXBoZXJzdWl0ZTogVExTMS0zLUFFUy0yNTYtR0NNLVNIQTM4NCAoIGlkPTQ4NjYgKSIgXApAQCAtMTAzMzYsOCArMTAzMzgsOCBAQAogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgUFNBX1dBTlRfQUxHX0ZGREgKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIFBTQV9XQU5UX0RIX1JGQzc5MTlfMjA0OAogcnVuX3Rlc3QgIlRMUyAxLjMgbS0+bTogQUVTXzI1Nl9HQ01fU0hBMzg0LGZmZGhlMjA0OCxlY2RzYV9zZWNwNTIxcjFfc2hhNTEyIiBcCi0gICAgICAgICAiJFBfU1JWIGNydF9maWxlPWRhdGFfZmlsZXMvZWNkc2Ffc2VjcDUyMXIxLmNydCBrZXlfZmlsZT1kYXRhX2ZpbGVzL2VjZHNhX3NlY3A1MjFyMS5rZXkgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTI1Ni1HQ00tU0hBMzg0IHNpZ19hbGdzPWVjZHNhX3NlY3A1MjFyMV9zaGE1MTIgZ3JvdXBzPWZmZGhlMjA0OCB0bHMxM19rZXhfbW9kZXM9ZXBoZW1lcmFsIGNvb2tpZXM9MCB0aWNrZXRzPTAiIFwKLSAgICAgICAgICIkUF9DTEkgY2FfZmlsZT1kYXRhX2ZpbGVzL3Rlc3QtY2EyLmNydCBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMjU2LUdDTS1TSEEzODQgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDUyMXIxX3NoYTUxMiBncm91cHM9ZmZkaGUyMDQ4IiBcCisgICAgICAgICAiJFBfU1JWIGNydF9maWxlPSREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDUyMXIxLmNydCBrZXlfZmlsZT0kREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3A1MjFyMS5rZXkgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTI1Ni1HQ00tU0hBMzg0IHNpZ19hbGdzPWVjZHNhX3NlY3A1MjFyMV9zaGE1MTIgZ3JvdXBzPWZmZGhlMjA0OCB0bHMxM19rZXhfbW9kZXM9ZXBoZW1lcmFsIGNvb2tpZXM9MCB0aWNrZXRzPTAiIFwKKyAgICAgICAgICIkUF9DTEkgY2FfZmlsZT0kREFUQV9GSUxFU19QQVRIL3Rlc3QtY2EyLmNydCBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMjU2LUdDTS1TSEEzODQgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDUyMXIxX3NoYTUxMiBncm91cHM9ZmZkaGUyMDQ4IiBcCiAgICAgICAgICAwIFwKICAgICAgICAgIC1zICJQcm90b2NvbCBpcyBUTFN2MS4zIiBcCiAgICAgICAgICAtcyAic2VydmVyIGhlbGxvLCBjaG9zZW4gY2lwaGVyc3VpdGU6IFRMUzEtMy1BRVMtMjU2LUdDTS1TSEEzODQgKCBpZD00ODY2ICkiIFwKQEAgLTEwMzY2LDggKzEwMzY4LDggQEAKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIFBTQV9XQU5UX0FMR19GRkRICiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBQU0FfV0FOVF9ESF9SRkM3OTE5XzIwNDgKIHJ1bl90ZXN0ICJUTFMgMS4zIG0tPm06IEFFU18yNTZfR0NNX1NIQTM4NCxmZmRoZTIwNDgscnNhX3Bzc19yc2FlX3NoYTI1NiIgXAotICAgICAgICAgIiRQX1NSViBjcnRfZmlsZT1kYXRhX2ZpbGVzL3NlcnZlcjItc2hhMjU2LmNydCBrZXlfZmlsZT1kYXRhX2ZpbGVzL3NlcnZlcjIua2V5IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0yNTYtR0NNLVNIQTM4NCBzaWdfYWxncz1yc2FfcHNzX3JzYWVfc2hhMjU2IGdyb3Vwcz1mZmRoZTIwNDggdGxzMTNfa2V4X21vZGVzPWVwaGVtZXJhbCBjb29raWVzPTAgdGlja2V0cz0wIiBcCi0gICAgICAgICAiJFBfQ0xJIGNhX2ZpbGU9ZGF0YV9maWxlcy90ZXN0LWNhX2NhdDEyLmNydCBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMjU2LUdDTS1TSEEzODQgc2lnX2FsZ3M9cnNhX3Bzc19yc2FlX3NoYTI1NiBncm91cHM9ZmZkaGUyMDQ4IiBcCisgICAgICAgICAiJFBfU1JWIGNydF9maWxlPSREQVRBX0ZJTEVTX1BBVEgvc2VydmVyMi1zaGEyNTYuY3J0IGtleV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvc2VydmVyMi5rZXkgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTI1Ni1HQ00tU0hBMzg0IHNpZ19hbGdzPXJzYV9wc3NfcnNhZV9zaGEyNTYgZ3JvdXBzPWZmZGhlMjA0OCB0bHMxM19rZXhfbW9kZXM9ZXBoZW1lcmFsIGNvb2tpZXM9MCB0aWNrZXRzPTAiIFwKKyAgICAgICAgICIkUF9DTEkgY2FfZmlsZT0kREFUQV9GSUxFU19QQVRIL3Rlc3QtY2FfY2F0MTIuY3J0IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0yNTYtR0NNLVNIQTM4NCBzaWdfYWxncz1yc2FfcHNzX3JzYWVfc2hhMjU2IGdyb3Vwcz1mZmRoZTIwNDgiIFwKICAgICAgICAgIDAgXAogICAgICAgICAgLXMgIlByb3RvY29sIGlzIFRMU3YxLjMiIFwKICAgICAgICAgIC1zICJzZXJ2ZXIgaGVsbG8sIGNob3NlbiBjaXBoZXJzdWl0ZTogVExTMS0zLUFFUy0yNTYtR0NNLVNIQTM4NCAoIGlkPTQ4NjYgKSIgXApAQCAtMTAzOTIsOCArMTAzOTQsOCBAQAogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgTUJFRFRMU19TU0xfVExTMV8zX0NPTVBBVElCSUxJVFlfTU9ERQogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgUFNBX1dBTlRfQUxHX0VDREgKIHJ1bl90ZXN0ICJUTFMgMS4zIG0tPm06IENIQUNIQTIwX1BPTFkxMzA1X1NIQTI1NixzZWNwMjU2cjEsZWNkc2Ffc2VjcDI1NnIxX3NoYTI1NiIgXAotICAgICAgICAgIiRQX1NSViBjcnRfZmlsZT1kYXRhX2ZpbGVzL2VjZHNhX3NlY3AyNTZyMS5jcnQga2V5X2ZpbGU9ZGF0YV9maWxlcy9lY2RzYV9zZWNwMjU2cjEua2V5IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUNIQUNIQTIwLVBPTFkxMzA1LVNIQTI1NiBzaWdfYWxncz1lY2RzYV9zZWNwMjU2cjFfc2hhMjU2IGdyb3Vwcz1zZWNwMjU2cjEgdGxzMTNfa2V4X21vZGVzPWVwaGVtZXJhbCBjb29raWVzPTAgdGlja2V0cz0wIiBcCi0gICAgICAgICAiJFBfQ0xJIGNhX2ZpbGU9ZGF0YV9maWxlcy90ZXN0LWNhMi5jcnQgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQ0hBQ0hBMjAtUE9MWTEzMDUtU0hBMjU2IHNpZ19hbGdzPWVjZHNhX3NlY3AyNTZyMV9zaGEyNTYgZ3JvdXBzPXNlY3AyNTZyMSIgXAorICAgICAgICAgIiRQX1NSViBjcnRfZmlsZT0kREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3AyNTZyMS5jcnQga2V5X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwMjU2cjEua2V5IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUNIQUNIQTIwLVBPTFkxMzA1LVNIQTI1NiBzaWdfYWxncz1lY2RzYV9zZWNwMjU2cjFfc2hhMjU2IGdyb3Vwcz1zZWNwMjU2cjEgdGxzMTNfa2V4X21vZGVzPWVwaGVtZXJhbCBjb29raWVzPTAgdGlja2V0cz0wIiBcCisgICAgICAgICAiJFBfQ0xJIGNhX2ZpbGU9JERBVEFfRklMRVNfUEFUSC90ZXN0LWNhMi5jcnQgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQ0hBQ0hBMjAtUE9MWTEzMDUtU0hBMjU2IHNpZ19hbGdzPWVjZHNhX3NlY3AyNTZyMV9zaGEyNTYgZ3JvdXBzPXNlY3AyNTZyMSIgXAogICAgICAgICAgMCBcCiAgICAgICAgICAtcyAiUHJvdG9jb2wgaXMgVExTdjEuMyIgXAogICAgICAgICAgLXMgInNlcnZlciBoZWxsbywgY2hvc2VuIGNpcGhlcnN1aXRlOiBUTFMxLTMtQ0hBQ0hBMjAtUE9MWTEzMDUtU0hBMjU2ICggaWQ9NDg2NyApIiBcCkBAIC0xMDQxOCw4ICsxMDQyMCw4IEBACiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBNQkVEVExTX1NTTF9UTFMxXzNfQ09NUEFUSUJJTElUWV9NT0RFCiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBQU0FfV0FOVF9BTEdfRUNESAogcnVuX3Rlc3QgIlRMUyAxLjMgbS0+bTogQ0hBQ0hBMjBfUE9MWTEzMDVfU0hBMjU2LHNlY3AyNTZyMSxlY2RzYV9zZWNwMzg0cjFfc2hhMzg0IiBcCi0gICAgICAgICAiJFBfU1JWIGNydF9maWxlPWRhdGFfZmlsZXMvZWNkc2Ffc2VjcDM4NHIxLmNydCBrZXlfZmlsZT1kYXRhX2ZpbGVzL2VjZHNhX3NlY3AzODRyMS5rZXkgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQ0hBQ0hBMjAtUE9MWTEzMDUtU0hBMjU2IHNpZ19hbGdzPWVjZHNhX3NlY3AzODRyMV9zaGEzODQgZ3JvdXBzPXNlY3AyNTZyMSB0bHMxM19rZXhfbW9kZXM9ZXBoZW1lcmFsIGNvb2tpZXM9MCB0aWNrZXRzPTAiIFwKLSAgICAgICAgICIkUF9DTEkgY2FfZmlsZT1kYXRhX2ZpbGVzL3Rlc3QtY2EyLmNydCBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1DSEFDSEEyMC1QT0xZMTMwNS1TSEEyNTYgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDM4NHIxX3NoYTM4NCBncm91cHM9c2VjcDI1NnIxIiBcCisgICAgICAgICAiJFBfU1JWIGNydF9maWxlPSREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDM4NHIxLmNydCBrZXlfZmlsZT0kREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3AzODRyMS5rZXkgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQ0hBQ0hBMjAtUE9MWTEzMDUtU0hBMjU2IHNpZ19hbGdzPWVjZHNhX3NlY3AzODRyMV9zaGEzODQgZ3JvdXBzPXNlY3AyNTZyMSB0bHMxM19rZXhfbW9kZXM9ZXBoZW1lcmFsIGNvb2tpZXM9MCB0aWNrZXRzPTAiIFwKKyAgICAgICAgICIkUF9DTEkgY2FfZmlsZT0kREFUQV9GSUxFU19QQVRIL3Rlc3QtY2EyLmNydCBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1DSEFDSEEyMC1QT0xZMTMwNS1TSEEyNTYgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDM4NHIxX3NoYTM4NCBncm91cHM9c2VjcDI1NnIxIiBcCiAgICAgICAgICAwIFwKICAgICAgICAgIC1zICJQcm90b2NvbCBpcyBUTFN2MS4zIiBcCiAgICAgICAgICAtcyAic2VydmVyIGhlbGxvLCBjaG9zZW4gY2lwaGVyc3VpdGU6IFRMUzEtMy1DSEFDSEEyMC1QT0xZMTMwNS1TSEEyNTYgKCBpZD00ODY3ICkiIFwKQEAgLTEwNDQ0LDggKzEwNDQ2LDggQEAKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIE1CRURUTFNfU1NMX1RMUzFfM19DT01QQVRJQklMSVRZX01PREUKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIFBTQV9XQU5UX0FMR19FQ0RICiBydW5fdGVzdCAiVExTIDEuMyBtLT5tOiBDSEFDSEEyMF9QT0xZMTMwNV9TSEEyNTYsc2VjcDI1NnIxLGVjZHNhX3NlY3A1MjFyMV9zaGE1MTIiIFwKLSAgICAgICAgICIkUF9TUlYgY3J0X2ZpbGU9ZGF0YV9maWxlcy9lY2RzYV9zZWNwNTIxcjEuY3J0IGtleV9maWxlPWRhdGFfZmlsZXMvZWNkc2Ffc2VjcDUyMXIxLmtleSBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1DSEFDSEEyMC1QT0xZMTMwNS1TSEEyNTYgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDUyMXIxX3NoYTUxMiBncm91cHM9c2VjcDI1NnIxIHRsczEzX2tleF9tb2Rlcz1lcGhlbWVyYWwgY29va2llcz0wIHRpY2tldHM9MCIgXAotICAgICAgICAgIiRQX0NMSSBjYV9maWxlPWRhdGFfZmlsZXMvdGVzdC1jYTIuY3J0IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUNIQUNIQTIwLVBPTFkxMzA1LVNIQTI1NiBzaWdfYWxncz1lY2RzYV9zZWNwNTIxcjFfc2hhNTEyIGdyb3Vwcz1zZWNwMjU2cjEiIFwKKyAgICAgICAgICIkUF9TUlYgY3J0X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwNTIxcjEuY3J0IGtleV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDUyMXIxLmtleSBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1DSEFDSEEyMC1QT0xZMTMwNS1TSEEyNTYgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDUyMXIxX3NoYTUxMiBncm91cHM9c2VjcDI1NnIxIHRsczEzX2tleF9tb2Rlcz1lcGhlbWVyYWwgY29va2llcz0wIHRpY2tldHM9MCIgXAorICAgICAgICAgIiRQX0NMSSBjYV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvdGVzdC1jYTIuY3J0IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUNIQUNIQTIwLVBPTFkxMzA1LVNIQTI1NiBzaWdfYWxncz1lY2RzYV9zZWNwNTIxcjFfc2hhNTEyIGdyb3Vwcz1zZWNwMjU2cjEiIFwKICAgICAgICAgIDAgXAogICAgICAgICAgLXMgIlByb3RvY29sIGlzIFRMU3YxLjMiIFwKICAgICAgICAgIC1zICJzZXJ2ZXIgaGVsbG8sIGNob3NlbiBjaXBoZXJzdWl0ZTogVExTMS0zLUNIQUNIQTIwLVBPTFkxMzA1LVNIQTI1NiAoIGlkPTQ4NjcgKSIgXApAQCAtMTA0NzIsOCArMTA0NzQsOCBAQAogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgTUJFRFRMU19YNTA5X1JTQVNTQV9QU1NfU1VQUE9SVAogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgUFNBX1dBTlRfQUxHX0VDREgKIHJ1bl90ZXN0ICJUTFMgMS4zIG0tPm06IENIQUNIQTIwX1BPTFkxMzA1X1NIQTI1NixzZWNwMjU2cjEscnNhX3Bzc19yc2FlX3NoYTI1NiIgXAotICAgICAgICAgIiRQX1NSViBjcnRfZmlsZT1kYXRhX2ZpbGVzL3NlcnZlcjItc2hhMjU2LmNydCBrZXlfZmlsZT1kYXRhX2ZpbGVzL3NlcnZlcjIua2V5IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUNIQUNIQTIwLVBPTFkxMzA1LVNIQTI1NiBzaWdfYWxncz1yc2FfcHNzX3JzYWVfc2hhMjU2IGdyb3Vwcz1zZWNwMjU2cjEgdGxzMTNfa2V4X21vZGVzPWVwaGVtZXJhbCBjb29raWVzPTAgdGlja2V0cz0wIiBcCi0gICAgICAgICAiJFBfQ0xJIGNhX2ZpbGU9ZGF0YV9maWxlcy90ZXN0LWNhX2NhdDEyLmNydCBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1DSEFDSEEyMC1QT0xZMTMwNS1TSEEyNTYgc2lnX2FsZ3M9cnNhX3Bzc19yc2FlX3NoYTI1NiBncm91cHM9c2VjcDI1NnIxIiBcCisgICAgICAgICAiJFBfU1JWIGNydF9maWxlPSREQVRBX0ZJTEVTX1BBVEgvc2VydmVyMi1zaGEyNTYuY3J0IGtleV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvc2VydmVyMi5rZXkgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQ0hBQ0hBMjAtUE9MWTEzMDUtU0hBMjU2IHNpZ19hbGdzPXJzYV9wc3NfcnNhZV9zaGEyNTYgZ3JvdXBzPXNlY3AyNTZyMSB0bHMxM19rZXhfbW9kZXM9ZXBoZW1lcmFsIGNvb2tpZXM9MCB0aWNrZXRzPTAiIFwKKyAgICAgICAgICIkUF9DTEkgY2FfZmlsZT0kREFUQV9GSUxFU19QQVRIL3Rlc3QtY2FfY2F0MTIuY3J0IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUNIQUNIQTIwLVBPTFkxMzA1LVNIQTI1NiBzaWdfYWxncz1yc2FfcHNzX3JzYWVfc2hhMjU2IGdyb3Vwcz1zZWNwMjU2cjEiIFwKICAgICAgICAgIDAgXAogICAgICAgICAgLXMgIlByb3RvY29sIGlzIFRMU3YxLjMiIFwKICAgICAgICAgIC1zICJzZXJ2ZXIgaGVsbG8sIGNob3NlbiBjaXBoZXJzdWl0ZTogVExTMS0zLUNIQUNIQTIwLVBPTFkxMzA1LVNIQTI1NiAoIGlkPTQ4NjcgKSIgXApAQCAtMTA0OTgsOCArMTA1MDAsOCBAQAogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgTUJFRFRMU19TU0xfVExTMV8zX0NPTVBBVElCSUxJVFlfTU9ERQogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgUFNBX1dBTlRfQUxHX0VDREgKIHJ1bl90ZXN0ICJUTFMgMS4zIG0tPm06IENIQUNIQTIwX1BPTFkxMzA1X1NIQTI1NixzZWNwMzg0cjEsZWNkc2Ffc2VjcDI1NnIxX3NoYTI1NiIgXAotICAgICAgICAgIiRQX1NSViBjcnRfZmlsZT1kYXRhX2ZpbGVzL2VjZHNhX3NlY3AyNTZyMS5jcnQga2V5X2ZpbGU9ZGF0YV9maWxlcy9lY2RzYV9zZWNwMjU2cjEua2V5IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUNIQUNIQTIwLVBPTFkxMzA1LVNIQTI1NiBzaWdfYWxncz1lY2RzYV9zZWNwMjU2cjFfc2hhMjU2IGdyb3Vwcz1zZWNwMzg0cjEgdGxzMTNfa2V4X21vZGVzPWVwaGVtZXJhbCBjb29raWVzPTAgdGlja2V0cz0wIiBcCi0gICAgICAgICAiJFBfQ0xJIGNhX2ZpbGU9ZGF0YV9maWxlcy90ZXN0LWNhMi5jcnQgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQ0hBQ0hBMjAtUE9MWTEzMDUtU0hBMjU2IHNpZ19hbGdzPWVjZHNhX3NlY3AyNTZyMV9zaGEyNTYgZ3JvdXBzPXNlY3AzODRyMSIgXAorICAgICAgICAgIiRQX1NSViBjcnRfZmlsZT0kREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3AyNTZyMS5jcnQga2V5X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwMjU2cjEua2V5IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUNIQUNIQTIwLVBPTFkxMzA1LVNIQTI1NiBzaWdfYWxncz1lY2RzYV9zZWNwMjU2cjFfc2hhMjU2IGdyb3Vwcz1zZWNwMzg0cjEgdGxzMTNfa2V4X21vZGVzPWVwaGVtZXJhbCBjb29raWVzPTAgdGlja2V0cz0wIiBcCisgICAgICAgICAiJFBfQ0xJIGNhX2ZpbGU9JERBVEFfRklMRVNfUEFUSC90ZXN0LWNhMi5jcnQgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQ0hBQ0hBMjAtUE9MWTEzMDUtU0hBMjU2IHNpZ19hbGdzPWVjZHNhX3NlY3AyNTZyMV9zaGEyNTYgZ3JvdXBzPXNlY3AzODRyMSIgXAogICAgICAgICAgMCBcCiAgICAgICAgICAtcyAiUHJvdG9jb2wgaXMgVExTdjEuMyIgXAogICAgICAgICAgLXMgInNlcnZlciBoZWxsbywgY2hvc2VuIGNpcGhlcnN1aXRlOiBUTFMxLTMtQ0hBQ0hBMjAtUE9MWTEzMDUtU0hBMjU2ICggaWQ9NDg2NyApIiBcCkBAIC0xMDUyNCw4ICsxMDUyNiw4IEBACiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBNQkVEVExTX1NTTF9UTFMxXzNfQ09NUEFUSUJJTElUWV9NT0RFCiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBQU0FfV0FOVF9BTEdfRUNESAogcnVuX3Rlc3QgIlRMUyAxLjMgbS0+bTogQ0hBQ0hBMjBfUE9MWTEzMDVfU0hBMjU2LHNlY3AzODRyMSxlY2RzYV9zZWNwMzg0cjFfc2hhMzg0IiBcCi0gICAgICAgICAiJFBfU1JWIGNydF9maWxlPWRhdGFfZmlsZXMvZWNkc2Ffc2VjcDM4NHIxLmNydCBrZXlfZmlsZT1kYXRhX2ZpbGVzL2VjZHNhX3NlY3AzODRyMS5rZXkgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQ0hBQ0hBMjAtUE9MWTEzMDUtU0hBMjU2IHNpZ19hbGdzPWVjZHNhX3NlY3AzODRyMV9zaGEzODQgZ3JvdXBzPXNlY3AzODRyMSB0bHMxM19rZXhfbW9kZXM9ZXBoZW1lcmFsIGNvb2tpZXM9MCB0aWNrZXRzPTAiIFwKLSAgICAgICAgICIkUF9DTEkgY2FfZmlsZT1kYXRhX2ZpbGVzL3Rlc3QtY2EyLmNydCBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1DSEFDSEEyMC1QT0xZMTMwNS1TSEEyNTYgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDM4NHIxX3NoYTM4NCBncm91cHM9c2VjcDM4NHIxIiBcCisgICAgICAgICAiJFBfU1JWIGNydF9maWxlPSREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDM4NHIxLmNydCBrZXlfZmlsZT0kREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3AzODRyMS5rZXkgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQ0hBQ0hBMjAtUE9MWTEzMDUtU0hBMjU2IHNpZ19hbGdzPWVjZHNhX3NlY3AzODRyMV9zaGEzODQgZ3JvdXBzPXNlY3AzODRyMSB0bHMxM19rZXhfbW9kZXM9ZXBoZW1lcmFsIGNvb2tpZXM9MCB0aWNrZXRzPTAiIFwKKyAgICAgICAgICIkUF9DTEkgY2FfZmlsZT0kREFUQV9GSUxFU19QQVRIL3Rlc3QtY2EyLmNydCBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1DSEFDSEEyMC1QT0xZMTMwNS1TSEEyNTYgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDM4NHIxX3NoYTM4NCBncm91cHM9c2VjcDM4NHIxIiBcCiAgICAgICAgICAwIFwKICAgICAgICAgIC1zICJQcm90b2NvbCBpcyBUTFN2MS4zIiBcCiAgICAgICAgICAtcyAic2VydmVyIGhlbGxvLCBjaG9zZW4gY2lwaGVyc3VpdGU6IFRMUzEtMy1DSEFDSEEyMC1QT0xZMTMwNS1TSEEyNTYgKCBpZD00ODY3ICkiIFwKQEAgLTEwNTUwLDggKzEwNTUyLDggQEAKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIE1CRURUTFNfU1NMX1RMUzFfM19DT01QQVRJQklMSVRZX01PREUKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIFBTQV9XQU5UX0FMR19FQ0RICiBydW5fdGVzdCAiVExTIDEuMyBtLT5tOiBDSEFDSEEyMF9QT0xZMTMwNV9TSEEyNTYsc2VjcDM4NHIxLGVjZHNhX3NlY3A1MjFyMV9zaGE1MTIiIFwKLSAgICAgICAgICIkUF9TUlYgY3J0X2ZpbGU9ZGF0YV9maWxlcy9lY2RzYV9zZWNwNTIxcjEuY3J0IGtleV9maWxlPWRhdGFfZmlsZXMvZWNkc2Ffc2VjcDUyMXIxLmtleSBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1DSEFDSEEyMC1QT0xZMTMwNS1TSEEyNTYgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDUyMXIxX3NoYTUxMiBncm91cHM9c2VjcDM4NHIxIHRsczEzX2tleF9tb2Rlcz1lcGhlbWVyYWwgY29va2llcz0wIHRpY2tldHM9MCIgXAotICAgICAgICAgIiRQX0NMSSBjYV9maWxlPWRhdGFfZmlsZXMvdGVzdC1jYTIuY3J0IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUNIQUNIQTIwLVBPTFkxMzA1LVNIQTI1NiBzaWdfYWxncz1lY2RzYV9zZWNwNTIxcjFfc2hhNTEyIGdyb3Vwcz1zZWNwMzg0cjEiIFwKKyAgICAgICAgICIkUF9TUlYgY3J0X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwNTIxcjEuY3J0IGtleV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDUyMXIxLmtleSBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1DSEFDSEEyMC1QT0xZMTMwNS1TSEEyNTYgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDUyMXIxX3NoYTUxMiBncm91cHM9c2VjcDM4NHIxIHRsczEzX2tleF9tb2Rlcz1lcGhlbWVyYWwgY29va2llcz0wIHRpY2tldHM9MCIgXAorICAgICAgICAgIiRQX0NMSSBjYV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvdGVzdC1jYTIuY3J0IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUNIQUNIQTIwLVBPTFkxMzA1LVNIQTI1NiBzaWdfYWxncz1lY2RzYV9zZWNwNTIxcjFfc2hhNTEyIGdyb3Vwcz1zZWNwMzg0cjEiIFwKICAgICAgICAgIDAgXAogICAgICAgICAgLXMgIlByb3RvY29sIGlzIFRMU3YxLjMiIFwKICAgICAgICAgIC1zICJzZXJ2ZXIgaGVsbG8sIGNob3NlbiBjaXBoZXJzdWl0ZTogVExTMS0zLUNIQUNIQTIwLVBPTFkxMzA1LVNIQTI1NiAoIGlkPTQ4NjcgKSIgXApAQCAtMTA1NzgsOCArMTA1ODAsOCBAQAogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgTUJFRFRMU19YNTA5X1JTQVNTQV9QU1NfU1VQUE9SVAogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgUFNBX1dBTlRfQUxHX0VDREgKIHJ1bl90ZXN0ICJUTFMgMS4zIG0tPm06IENIQUNIQTIwX1BPTFkxMzA1X1NIQTI1NixzZWNwMzg0cjEscnNhX3Bzc19yc2FlX3NoYTI1NiIgXAotICAgICAgICAgIiRQX1NSViBjcnRfZmlsZT1kYXRhX2ZpbGVzL3NlcnZlcjItc2hhMjU2LmNydCBrZXlfZmlsZT1kYXRhX2ZpbGVzL3NlcnZlcjIua2V5IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUNIQUNIQTIwLVBPTFkxMzA1LVNIQTI1NiBzaWdfYWxncz1yc2FfcHNzX3JzYWVfc2hhMjU2IGdyb3Vwcz1zZWNwMzg0cjEgdGxzMTNfa2V4X21vZGVzPWVwaGVtZXJhbCBjb29raWVzPTAgdGlja2V0cz0wIiBcCi0gICAgICAgICAiJFBfQ0xJIGNhX2ZpbGU9ZGF0YV9maWxlcy90ZXN0LWNhX2NhdDEyLmNydCBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1DSEFDSEEyMC1QT0xZMTMwNS1TSEEyNTYgc2lnX2FsZ3M9cnNhX3Bzc19yc2FlX3NoYTI1NiBncm91cHM9c2VjcDM4NHIxIiBcCisgICAgICAgICAiJFBfU1JWIGNydF9maWxlPSREQVRBX0ZJTEVTX1BBVEgvc2VydmVyMi1zaGEyNTYuY3J0IGtleV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvc2VydmVyMi5rZXkgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQ0hBQ0hBMjAtUE9MWTEzMDUtU0hBMjU2IHNpZ19hbGdzPXJzYV9wc3NfcnNhZV9zaGEyNTYgZ3JvdXBzPXNlY3AzODRyMSB0bHMxM19rZXhfbW9kZXM9ZXBoZW1lcmFsIGNvb2tpZXM9MCB0aWNrZXRzPTAiIFwKKyAgICAgICAgICIkUF9DTEkgY2FfZmlsZT0kREFUQV9GSUxFU19QQVRIL3Rlc3QtY2FfY2F0MTIuY3J0IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUNIQUNIQTIwLVBPTFkxMzA1LVNIQTI1NiBzaWdfYWxncz1yc2FfcHNzX3JzYWVfc2hhMjU2IGdyb3Vwcz1zZWNwMzg0cjEiIFwKICAgICAgICAgIDAgXAogICAgICAgICAgLXMgIlByb3RvY29sIGlzIFRMU3YxLjMiIFwKICAgICAgICAgIC1zICJzZXJ2ZXIgaGVsbG8sIGNob3NlbiBjaXBoZXJzdWl0ZTogVExTMS0zLUNIQUNIQTIwLVBPTFkxMzA1LVNIQTI1NiAoIGlkPTQ4NjcgKSIgXApAQCAtMTA2MDQsOCArMTA2MDYsOCBAQAogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgTUJFRFRMU19TU0xfVExTMV8zX0NPTVBBVElCSUxJVFlfTU9ERQogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgUFNBX1dBTlRfQUxHX0VDREgKIHJ1bl90ZXN0ICJUTFMgMS4zIG0tPm06IENIQUNIQTIwX1BPTFkxMzA1X1NIQTI1NixzZWNwNTIxcjEsZWNkc2Ffc2VjcDI1NnIxX3NoYTI1NiIgXAotICAgICAgICAgIiRQX1NSViBjcnRfZmlsZT1kYXRhX2ZpbGVzL2VjZHNhX3NlY3AyNTZyMS5jcnQga2V5X2ZpbGU9ZGF0YV9maWxlcy9lY2RzYV9zZWNwMjU2cjEua2V5IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUNIQUNIQTIwLVBPTFkxMzA1LVNIQTI1NiBzaWdfYWxncz1lY2RzYV9zZWNwMjU2cjFfc2hhMjU2IGdyb3Vwcz1zZWNwNTIxcjEgdGxzMTNfa2V4X21vZGVzPWVwaGVtZXJhbCBjb29raWVzPTAgdGlja2V0cz0wIiBcCi0gICAgICAgICAiJFBfQ0xJIGNhX2ZpbGU9ZGF0YV9maWxlcy90ZXN0LWNhMi5jcnQgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQ0hBQ0hBMjAtUE9MWTEzMDUtU0hBMjU2IHNpZ19hbGdzPWVjZHNhX3NlY3AyNTZyMV9zaGEyNTYgZ3JvdXBzPXNlY3A1MjFyMSIgXAorICAgICAgICAgIiRQX1NSViBjcnRfZmlsZT0kREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3AyNTZyMS5jcnQga2V5X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwMjU2cjEua2V5IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUNIQUNIQTIwLVBPTFkxMzA1LVNIQTI1NiBzaWdfYWxncz1lY2RzYV9zZWNwMjU2cjFfc2hhMjU2IGdyb3Vwcz1zZWNwNTIxcjEgdGxzMTNfa2V4X21vZGVzPWVwaGVtZXJhbCBjb29raWVzPTAgdGlja2V0cz0wIiBcCisgICAgICAgICAiJFBfQ0xJIGNhX2ZpbGU9JERBVEFfRklMRVNfUEFUSC90ZXN0LWNhMi5jcnQgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQ0hBQ0hBMjAtUE9MWTEzMDUtU0hBMjU2IHNpZ19hbGdzPWVjZHNhX3NlY3AyNTZyMV9zaGEyNTYgZ3JvdXBzPXNlY3A1MjFyMSIgXAogICAgICAgICAgMCBcCiAgICAgICAgICAtcyAiUHJvdG9jb2wgaXMgVExTdjEuMyIgXAogICAgICAgICAgLXMgInNlcnZlciBoZWxsbywgY2hvc2VuIGNpcGhlcnN1aXRlOiBUTFMxLTMtQ0hBQ0hBMjAtUE9MWTEzMDUtU0hBMjU2ICggaWQ9NDg2NyApIiBcCkBAIC0xMDYzMCw4ICsxMDYzMiw4IEBACiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBNQkVEVExTX1NTTF9UTFMxXzNfQ09NUEFUSUJJTElUWV9NT0RFCiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBQU0FfV0FOVF9BTEdfRUNESAogcnVuX3Rlc3QgIlRMUyAxLjMgbS0+bTogQ0hBQ0hBMjBfUE9MWTEzMDVfU0hBMjU2LHNlY3A1MjFyMSxlY2RzYV9zZWNwMzg0cjFfc2hhMzg0IiBcCi0gICAgICAgICAiJFBfU1JWIGNydF9maWxlPWRhdGFfZmlsZXMvZWNkc2Ffc2VjcDM4NHIxLmNydCBrZXlfZmlsZT1kYXRhX2ZpbGVzL2VjZHNhX3NlY3AzODRyMS5rZXkgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQ0hBQ0hBMjAtUE9MWTEzMDUtU0hBMjU2IHNpZ19hbGdzPWVjZHNhX3NlY3AzODRyMV9zaGEzODQgZ3JvdXBzPXNlY3A1MjFyMSB0bHMxM19rZXhfbW9kZXM9ZXBoZW1lcmFsIGNvb2tpZXM9MCB0aWNrZXRzPTAiIFwKLSAgICAgICAgICIkUF9DTEkgY2FfZmlsZT1kYXRhX2ZpbGVzL3Rlc3QtY2EyLmNydCBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1DSEFDSEEyMC1QT0xZMTMwNS1TSEEyNTYgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDM4NHIxX3NoYTM4NCBncm91cHM9c2VjcDUyMXIxIiBcCisgICAgICAgICAiJFBfU1JWIGNydF9maWxlPSREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDM4NHIxLmNydCBrZXlfZmlsZT0kREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3AzODRyMS5rZXkgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQ0hBQ0hBMjAtUE9MWTEzMDUtU0hBMjU2IHNpZ19hbGdzPWVjZHNhX3NlY3AzODRyMV9zaGEzODQgZ3JvdXBzPXNlY3A1MjFyMSB0bHMxM19rZXhfbW9kZXM9ZXBoZW1lcmFsIGNvb2tpZXM9MCB0aWNrZXRzPTAiIFwKKyAgICAgICAgICIkUF9DTEkgY2FfZmlsZT0kREFUQV9GSUxFU19QQVRIL3Rlc3QtY2EyLmNydCBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1DSEFDSEEyMC1QT0xZMTMwNS1TSEEyNTYgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDM4NHIxX3NoYTM4NCBncm91cHM9c2VjcDUyMXIxIiBcCiAgICAgICAgICAwIFwKICAgICAgICAgIC1zICJQcm90b2NvbCBpcyBUTFN2MS4zIiBcCiAgICAgICAgICAtcyAic2VydmVyIGhlbGxvLCBjaG9zZW4gY2lwaGVyc3VpdGU6IFRMUzEtMy1DSEFDSEEyMC1QT0xZMTMwNS1TSEEyNTYgKCBpZD00ODY3ICkiIFwKQEAgLTEwNjU2LDggKzEwNjU4LDggQEAKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIE1CRURUTFNfU1NMX1RMUzFfM19DT01QQVRJQklMSVRZX01PREUKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIFBTQV9XQU5UX0FMR19FQ0RICiBydW5fdGVzdCAiVExTIDEuMyBtLT5tOiBDSEFDSEEyMF9QT0xZMTMwNV9TSEEyNTYsc2VjcDUyMXIxLGVjZHNhX3NlY3A1MjFyMV9zaGE1MTIiIFwKLSAgICAgICAgICIkUF9TUlYgY3J0X2ZpbGU9ZGF0YV9maWxlcy9lY2RzYV9zZWNwNTIxcjEuY3J0IGtleV9maWxlPWRhdGFfZmlsZXMvZWNkc2Ffc2VjcDUyMXIxLmtleSBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1DSEFDSEEyMC1QT0xZMTMwNS1TSEEyNTYgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDUyMXIxX3NoYTUxMiBncm91cHM9c2VjcDUyMXIxIHRsczEzX2tleF9tb2Rlcz1lcGhlbWVyYWwgY29va2llcz0wIHRpY2tldHM9MCIgXAotICAgICAgICAgIiRQX0NMSSBjYV9maWxlPWRhdGFfZmlsZXMvdGVzdC1jYTIuY3J0IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUNIQUNIQTIwLVBPTFkxMzA1LVNIQTI1NiBzaWdfYWxncz1lY2RzYV9zZWNwNTIxcjFfc2hhNTEyIGdyb3Vwcz1zZWNwNTIxcjEiIFwKKyAgICAgICAgICIkUF9TUlYgY3J0X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwNTIxcjEuY3J0IGtleV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDUyMXIxLmtleSBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1DSEFDSEEyMC1QT0xZMTMwNS1TSEEyNTYgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDUyMXIxX3NoYTUxMiBncm91cHM9c2VjcDUyMXIxIHRsczEzX2tleF9tb2Rlcz1lcGhlbWVyYWwgY29va2llcz0wIHRpY2tldHM9MCIgXAorICAgICAgICAgIiRQX0NMSSBjYV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvdGVzdC1jYTIuY3J0IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUNIQUNIQTIwLVBPTFkxMzA1LVNIQTI1NiBzaWdfYWxncz1lY2RzYV9zZWNwNTIxcjFfc2hhNTEyIGdyb3Vwcz1zZWNwNTIxcjEiIFwKICAgICAgICAgIDAgXAogICAgICAgICAgLXMgIlByb3RvY29sIGlzIFRMU3YxLjMiIFwKICAgICAgICAgIC1zICJzZXJ2ZXIgaGVsbG8sIGNob3NlbiBjaXBoZXJzdWl0ZTogVExTMS0zLUNIQUNIQTIwLVBPTFkxMzA1LVNIQTI1NiAoIGlkPTQ4NjcgKSIgXApAQCAtMTA2ODQsOCArMTA2ODYsOCBAQAogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgTUJFRFRMU19YNTA5X1JTQVNTQV9QU1NfU1VQUE9SVAogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgUFNBX1dBTlRfQUxHX0VDREgKIHJ1bl90ZXN0ICJUTFMgMS4zIG0tPm06IENIQUNIQTIwX1BPTFkxMzA1X1NIQTI1NixzZWNwNTIxcjEscnNhX3Bzc19yc2FlX3NoYTI1NiIgXAotICAgICAgICAgIiRQX1NSViBjcnRfZmlsZT1kYXRhX2ZpbGVzL3NlcnZlcjItc2hhMjU2LmNydCBrZXlfZmlsZT1kYXRhX2ZpbGVzL3NlcnZlcjIua2V5IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUNIQUNIQTIwLVBPTFkxMzA1LVNIQTI1NiBzaWdfYWxncz1yc2FfcHNzX3JzYWVfc2hhMjU2IGdyb3Vwcz1zZWNwNTIxcjEgdGxzMTNfa2V4X21vZGVzPWVwaGVtZXJhbCBjb29raWVzPTAgdGlja2V0cz0wIiBcCi0gICAgICAgICAiJFBfQ0xJIGNhX2ZpbGU9ZGF0YV9maWxlcy90ZXN0LWNhX2NhdDEyLmNydCBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1DSEFDSEEyMC1QT0xZMTMwNS1TSEEyNTYgc2lnX2FsZ3M9cnNhX3Bzc19yc2FlX3NoYTI1NiBncm91cHM9c2VjcDUyMXIxIiBcCisgICAgICAgICAiJFBfU1JWIGNydF9maWxlPSREQVRBX0ZJTEVTX1BBVEgvc2VydmVyMi1zaGEyNTYuY3J0IGtleV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvc2VydmVyMi5rZXkgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQ0hBQ0hBMjAtUE9MWTEzMDUtU0hBMjU2IHNpZ19hbGdzPXJzYV9wc3NfcnNhZV9zaGEyNTYgZ3JvdXBzPXNlY3A1MjFyMSB0bHMxM19rZXhfbW9kZXM9ZXBoZW1lcmFsIGNvb2tpZXM9MCB0aWNrZXRzPTAiIFwKKyAgICAgICAgICIkUF9DTEkgY2FfZmlsZT0kREFUQV9GSUxFU19QQVRIL3Rlc3QtY2FfY2F0MTIuY3J0IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUNIQUNIQTIwLVBPTFkxMzA1LVNIQTI1NiBzaWdfYWxncz1yc2FfcHNzX3JzYWVfc2hhMjU2IGdyb3Vwcz1zZWNwNTIxcjEiIFwKICAgICAgICAgIDAgXAogICAgICAgICAgLXMgIlByb3RvY29sIGlzIFRMU3YxLjMiIFwKICAgICAgICAgIC1zICJzZXJ2ZXIgaGVsbG8sIGNob3NlbiBjaXBoZXJzdWl0ZTogVExTMS0zLUNIQUNIQTIwLVBPTFkxMzA1LVNIQTI1NiAoIGlkPTQ4NjcgKSIgXApAQCAtMTA3MTAsOCArMTA3MTIsOCBAQAogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgTUJFRFRMU19TU0xfVExTMV8zX0NPTVBBVElCSUxJVFlfTU9ERQogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgUFNBX1dBTlRfQUxHX0VDREgKIHJ1bl90ZXN0ICJUTFMgMS4zIG0tPm06IENIQUNIQTIwX1BPTFkxMzA1X1NIQTI1Nix4MjU1MTksZWNkc2Ffc2VjcDI1NnIxX3NoYTI1NiIgXAotICAgICAgICAgIiRQX1NSViBjcnRfZmlsZT1kYXRhX2ZpbGVzL2VjZHNhX3NlY3AyNTZyMS5jcnQga2V5X2ZpbGU9ZGF0YV9maWxlcy9lY2RzYV9zZWNwMjU2cjEua2V5IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUNIQUNIQTIwLVBPTFkxMzA1LVNIQTI1NiBzaWdfYWxncz1lY2RzYV9zZWNwMjU2cjFfc2hhMjU2IGdyb3Vwcz14MjU1MTkgdGxzMTNfa2V4X21vZGVzPWVwaGVtZXJhbCBjb29raWVzPTAgdGlja2V0cz0wIiBcCi0gICAgICAgICAiJFBfQ0xJIGNhX2ZpbGU9ZGF0YV9maWxlcy90ZXN0LWNhMi5jcnQgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQ0hBQ0hBMjAtUE9MWTEzMDUtU0hBMjU2IHNpZ19hbGdzPWVjZHNhX3NlY3AyNTZyMV9zaGEyNTYgZ3JvdXBzPXgyNTUxOSIgXAorICAgICAgICAgIiRQX1NSViBjcnRfZmlsZT0kREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3AyNTZyMS5jcnQga2V5X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwMjU2cjEua2V5IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUNIQUNIQTIwLVBPTFkxMzA1LVNIQTI1NiBzaWdfYWxncz1lY2RzYV9zZWNwMjU2cjFfc2hhMjU2IGdyb3Vwcz14MjU1MTkgdGxzMTNfa2V4X21vZGVzPWVwaGVtZXJhbCBjb29raWVzPTAgdGlja2V0cz0wIiBcCisgICAgICAgICAiJFBfQ0xJIGNhX2ZpbGU9JERBVEFfRklMRVNfUEFUSC90ZXN0LWNhMi5jcnQgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQ0hBQ0hBMjAtUE9MWTEzMDUtU0hBMjU2IHNpZ19hbGdzPWVjZHNhX3NlY3AyNTZyMV9zaGEyNTYgZ3JvdXBzPXgyNTUxOSIgXAogICAgICAgICAgMCBcCiAgICAgICAgICAtcyAiUHJvdG9jb2wgaXMgVExTdjEuMyIgXAogICAgICAgICAgLXMgInNlcnZlciBoZWxsbywgY2hvc2VuIGNpcGhlcnN1aXRlOiBUTFMxLTMtQ0hBQ0hBMjAtUE9MWTEzMDUtU0hBMjU2ICggaWQ9NDg2NyApIiBcCkBAIC0xMDczNiw4ICsxMDczOCw4IEBACiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBNQkVEVExTX1NTTF9UTFMxXzNfQ09NUEFUSUJJTElUWV9NT0RFCiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBQU0FfV0FOVF9BTEdfRUNESAogcnVuX3Rlc3QgIlRMUyAxLjMgbS0+bTogQ0hBQ0hBMjBfUE9MWTEzMDVfU0hBMjU2LHgyNTUxOSxlY2RzYV9zZWNwMzg0cjFfc2hhMzg0IiBcCi0gICAgICAgICAiJFBfU1JWIGNydF9maWxlPWRhdGFfZmlsZXMvZWNkc2Ffc2VjcDM4NHIxLmNydCBrZXlfZmlsZT1kYXRhX2ZpbGVzL2VjZHNhX3NlY3AzODRyMS5rZXkgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQ0hBQ0hBMjAtUE9MWTEzMDUtU0hBMjU2IHNpZ19hbGdzPWVjZHNhX3NlY3AzODRyMV9zaGEzODQgZ3JvdXBzPXgyNTUxOSB0bHMxM19rZXhfbW9kZXM9ZXBoZW1lcmFsIGNvb2tpZXM9MCB0aWNrZXRzPTAiIFwKLSAgICAgICAgICIkUF9DTEkgY2FfZmlsZT1kYXRhX2ZpbGVzL3Rlc3QtY2EyLmNydCBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1DSEFDSEEyMC1QT0xZMTMwNS1TSEEyNTYgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDM4NHIxX3NoYTM4NCBncm91cHM9eDI1NTE5IiBcCisgICAgICAgICAiJFBfU1JWIGNydF9maWxlPSREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDM4NHIxLmNydCBrZXlfZmlsZT0kREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3AzODRyMS5rZXkgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQ0hBQ0hBMjAtUE9MWTEzMDUtU0hBMjU2IHNpZ19hbGdzPWVjZHNhX3NlY3AzODRyMV9zaGEzODQgZ3JvdXBzPXgyNTUxOSB0bHMxM19rZXhfbW9kZXM9ZXBoZW1lcmFsIGNvb2tpZXM9MCB0aWNrZXRzPTAiIFwKKyAgICAgICAgICIkUF9DTEkgY2FfZmlsZT0kREFUQV9GSUxFU19QQVRIL3Rlc3QtY2EyLmNydCBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1DSEFDSEEyMC1QT0xZMTMwNS1TSEEyNTYgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDM4NHIxX3NoYTM4NCBncm91cHM9eDI1NTE5IiBcCiAgICAgICAgICAwIFwKICAgICAgICAgIC1zICJQcm90b2NvbCBpcyBUTFN2MS4zIiBcCiAgICAgICAgICAtcyAic2VydmVyIGhlbGxvLCBjaG9zZW4gY2lwaGVyc3VpdGU6IFRMUzEtMy1DSEFDSEEyMC1QT0xZMTMwNS1TSEEyNTYgKCBpZD00ODY3ICkiIFwKQEAgLTEwNzYyLDggKzEwNzY0LDggQEAKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIE1CRURUTFNfU1NMX1RMUzFfM19DT01QQVRJQklMSVRZX01PREUKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIFBTQV9XQU5UX0FMR19FQ0RICiBydW5fdGVzdCAiVExTIDEuMyBtLT5tOiBDSEFDSEEyMF9QT0xZMTMwNV9TSEEyNTYseDI1NTE5LGVjZHNhX3NlY3A1MjFyMV9zaGE1MTIiIFwKLSAgICAgICAgICIkUF9TUlYgY3J0X2ZpbGU9ZGF0YV9maWxlcy9lY2RzYV9zZWNwNTIxcjEuY3J0IGtleV9maWxlPWRhdGFfZmlsZXMvZWNkc2Ffc2VjcDUyMXIxLmtleSBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1DSEFDSEEyMC1QT0xZMTMwNS1TSEEyNTYgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDUyMXIxX3NoYTUxMiBncm91cHM9eDI1NTE5IHRsczEzX2tleF9tb2Rlcz1lcGhlbWVyYWwgY29va2llcz0wIHRpY2tldHM9MCIgXAotICAgICAgICAgIiRQX0NMSSBjYV9maWxlPWRhdGFfZmlsZXMvdGVzdC1jYTIuY3J0IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUNIQUNIQTIwLVBPTFkxMzA1LVNIQTI1NiBzaWdfYWxncz1lY2RzYV9zZWNwNTIxcjFfc2hhNTEyIGdyb3Vwcz14MjU1MTkiIFwKKyAgICAgICAgICIkUF9TUlYgY3J0X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwNTIxcjEuY3J0IGtleV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDUyMXIxLmtleSBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1DSEFDSEEyMC1QT0xZMTMwNS1TSEEyNTYgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDUyMXIxX3NoYTUxMiBncm91cHM9eDI1NTE5IHRsczEzX2tleF9tb2Rlcz1lcGhlbWVyYWwgY29va2llcz0wIHRpY2tldHM9MCIgXAorICAgICAgICAgIiRQX0NMSSBjYV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvdGVzdC1jYTIuY3J0IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUNIQUNIQTIwLVBPTFkxMzA1LVNIQTI1NiBzaWdfYWxncz1lY2RzYV9zZWNwNTIxcjFfc2hhNTEyIGdyb3Vwcz14MjU1MTkiIFwKICAgICAgICAgIDAgXAogICAgICAgICAgLXMgIlByb3RvY29sIGlzIFRMU3YxLjMiIFwKICAgICAgICAgIC1zICJzZXJ2ZXIgaGVsbG8sIGNob3NlbiBjaXBoZXJzdWl0ZTogVExTMS0zLUNIQUNIQTIwLVBPTFkxMzA1LVNIQTI1NiAoIGlkPTQ4NjcgKSIgXApAQCAtMTA3OTAsOCArMTA3OTIsOCBAQAogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgTUJFRFRMU19YNTA5X1JTQVNTQV9QU1NfU1VQUE9SVAogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgUFNBX1dBTlRfQUxHX0VDREgKIHJ1bl90ZXN0ICJUTFMgMS4zIG0tPm06IENIQUNIQTIwX1BPTFkxMzA1X1NIQTI1Nix4MjU1MTkscnNhX3Bzc19yc2FlX3NoYTI1NiIgXAotICAgICAgICAgIiRQX1NSViBjcnRfZmlsZT1kYXRhX2ZpbGVzL3NlcnZlcjItc2hhMjU2LmNydCBrZXlfZmlsZT1kYXRhX2ZpbGVzL3NlcnZlcjIua2V5IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUNIQUNIQTIwLVBPTFkxMzA1LVNIQTI1NiBzaWdfYWxncz1yc2FfcHNzX3JzYWVfc2hhMjU2IGdyb3Vwcz14MjU1MTkgdGxzMTNfa2V4X21vZGVzPWVwaGVtZXJhbCBjb29raWVzPTAgdGlja2V0cz0wIiBcCi0gICAgICAgICAiJFBfQ0xJIGNhX2ZpbGU9ZGF0YV9maWxlcy90ZXN0LWNhX2NhdDEyLmNydCBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1DSEFDSEEyMC1QT0xZMTMwNS1TSEEyNTYgc2lnX2FsZ3M9cnNhX3Bzc19yc2FlX3NoYTI1NiBncm91cHM9eDI1NTE5IiBcCisgICAgICAgICAiJFBfU1JWIGNydF9maWxlPSREQVRBX0ZJTEVTX1BBVEgvc2VydmVyMi1zaGEyNTYuY3J0IGtleV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvc2VydmVyMi5rZXkgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQ0hBQ0hBMjAtUE9MWTEzMDUtU0hBMjU2IHNpZ19hbGdzPXJzYV9wc3NfcnNhZV9zaGEyNTYgZ3JvdXBzPXgyNTUxOSB0bHMxM19rZXhfbW9kZXM9ZXBoZW1lcmFsIGNvb2tpZXM9MCB0aWNrZXRzPTAiIFwKKyAgICAgICAgICIkUF9DTEkgY2FfZmlsZT0kREFUQV9GSUxFU19QQVRIL3Rlc3QtY2FfY2F0MTIuY3J0IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUNIQUNIQTIwLVBPTFkxMzA1LVNIQTI1NiBzaWdfYWxncz1yc2FfcHNzX3JzYWVfc2hhMjU2IGdyb3Vwcz14MjU1MTkiIFwKICAgICAgICAgIDAgXAogICAgICAgICAgLXMgIlByb3RvY29sIGlzIFRMU3YxLjMiIFwKICAgICAgICAgIC1zICJzZXJ2ZXIgaGVsbG8sIGNob3NlbiBjaXBoZXJzdWl0ZTogVExTMS0zLUNIQUNIQTIwLVBPTFkxMzA1LVNIQTI1NiAoIGlkPTQ4NjcgKSIgXApAQCAtMTA4MTYsOCArMTA4MTgsOCBAQAogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgTUJFRFRMU19TU0xfVExTMV8zX0NPTVBBVElCSUxJVFlfTU9ERQogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgUFNBX1dBTlRfQUxHX0VDREgKIHJ1bl90ZXN0ICJUTFMgMS4zIG0tPm06IENIQUNIQTIwX1BPTFkxMzA1X1NIQTI1Nix4NDQ4LGVjZHNhX3NlY3AyNTZyMV9zaGEyNTYiIFwKLSAgICAgICAgICIkUF9TUlYgY3J0X2ZpbGU9ZGF0YV9maWxlcy9lY2RzYV9zZWNwMjU2cjEuY3J0IGtleV9maWxlPWRhdGFfZmlsZXMvZWNkc2Ffc2VjcDI1NnIxLmtleSBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1DSEFDSEEyMC1QT0xZMTMwNS1TSEEyNTYgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDI1NnIxX3NoYTI1NiBncm91cHM9eDQ0OCB0bHMxM19rZXhfbW9kZXM9ZXBoZW1lcmFsIGNvb2tpZXM9MCB0aWNrZXRzPTAiIFwKLSAgICAgICAgICIkUF9DTEkgY2FfZmlsZT1kYXRhX2ZpbGVzL3Rlc3QtY2EyLmNydCBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1DSEFDSEEyMC1QT0xZMTMwNS1TSEEyNTYgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDI1NnIxX3NoYTI1NiBncm91cHM9eDQ0OCIgXAorICAgICAgICAgIiRQX1NSViBjcnRfZmlsZT0kREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3AyNTZyMS5jcnQga2V5X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwMjU2cjEua2V5IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUNIQUNIQTIwLVBPTFkxMzA1LVNIQTI1NiBzaWdfYWxncz1lY2RzYV9zZWNwMjU2cjFfc2hhMjU2IGdyb3Vwcz14NDQ4IHRsczEzX2tleF9tb2Rlcz1lcGhlbWVyYWwgY29va2llcz0wIHRpY2tldHM9MCIgXAorICAgICAgICAgIiRQX0NMSSBjYV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvdGVzdC1jYTIuY3J0IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUNIQUNIQTIwLVBPTFkxMzA1LVNIQTI1NiBzaWdfYWxncz1lY2RzYV9zZWNwMjU2cjFfc2hhMjU2IGdyb3Vwcz14NDQ4IiBcCiAgICAgICAgICAwIFwKICAgICAgICAgIC1zICJQcm90b2NvbCBpcyBUTFN2MS4zIiBcCiAgICAgICAgICAtcyAic2VydmVyIGhlbGxvLCBjaG9zZW4gY2lwaGVyc3VpdGU6IFRMUzEtMy1DSEFDSEEyMC1QT0xZMTMwNS1TSEEyNTYgKCBpZD00ODY3ICkiIFwKQEAgLTEwODQyLDggKzEwODQ0LDggQEAKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIE1CRURUTFNfU1NMX1RMUzFfM19DT01QQVRJQklMSVRZX01PREUKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIFBTQV9XQU5UX0FMR19FQ0RICiBydW5fdGVzdCAiVExTIDEuMyBtLT5tOiBDSEFDSEEyMF9QT0xZMTMwNV9TSEEyNTYseDQ0OCxlY2RzYV9zZWNwMzg0cjFfc2hhMzg0IiBcCi0gICAgICAgICAiJFBfU1JWIGNydF9maWxlPWRhdGFfZmlsZXMvZWNkc2Ffc2VjcDM4NHIxLmNydCBrZXlfZmlsZT1kYXRhX2ZpbGVzL2VjZHNhX3NlY3AzODRyMS5rZXkgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQ0hBQ0hBMjAtUE9MWTEzMDUtU0hBMjU2IHNpZ19hbGdzPWVjZHNhX3NlY3AzODRyMV9zaGEzODQgZ3JvdXBzPXg0NDggdGxzMTNfa2V4X21vZGVzPWVwaGVtZXJhbCBjb29raWVzPTAgdGlja2V0cz0wIiBcCi0gICAgICAgICAiJFBfQ0xJIGNhX2ZpbGU9ZGF0YV9maWxlcy90ZXN0LWNhMi5jcnQgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQ0hBQ0hBMjAtUE9MWTEzMDUtU0hBMjU2IHNpZ19hbGdzPWVjZHNhX3NlY3AzODRyMV9zaGEzODQgZ3JvdXBzPXg0NDgiIFwKKyAgICAgICAgICIkUF9TUlYgY3J0X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwMzg0cjEuY3J0IGtleV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDM4NHIxLmtleSBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1DSEFDSEEyMC1QT0xZMTMwNS1TSEEyNTYgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDM4NHIxX3NoYTM4NCBncm91cHM9eDQ0OCB0bHMxM19rZXhfbW9kZXM9ZXBoZW1lcmFsIGNvb2tpZXM9MCB0aWNrZXRzPTAiIFwKKyAgICAgICAgICIkUF9DTEkgY2FfZmlsZT0kREFUQV9GSUxFU19QQVRIL3Rlc3QtY2EyLmNydCBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1DSEFDSEEyMC1QT0xZMTMwNS1TSEEyNTYgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDM4NHIxX3NoYTM4NCBncm91cHM9eDQ0OCIgXAogICAgICAgICAgMCBcCiAgICAgICAgICAtcyAiUHJvdG9jb2wgaXMgVExTdjEuMyIgXAogICAgICAgICAgLXMgInNlcnZlciBoZWxsbywgY2hvc2VuIGNpcGhlcnN1aXRlOiBUTFMxLTMtQ0hBQ0hBMjAtUE9MWTEzMDUtU0hBMjU2ICggaWQ9NDg2NyApIiBcCkBAIC0xMDg2OCw4ICsxMDg3MCw4IEBACiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBNQkVEVExTX1NTTF9UTFMxXzNfQ09NUEFUSUJJTElUWV9NT0RFCiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBQU0FfV0FOVF9BTEdfRUNESAogcnVuX3Rlc3QgIlRMUyAxLjMgbS0+bTogQ0hBQ0hBMjBfUE9MWTEzMDVfU0hBMjU2LHg0NDgsZWNkc2Ffc2VjcDUyMXIxX3NoYTUxMiIgXAotICAgICAgICAgIiRQX1NSViBjcnRfZmlsZT1kYXRhX2ZpbGVzL2VjZHNhX3NlY3A1MjFyMS5jcnQga2V5X2ZpbGU9ZGF0YV9maWxlcy9lY2RzYV9zZWNwNTIxcjEua2V5IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUNIQUNIQTIwLVBPTFkxMzA1LVNIQTI1NiBzaWdfYWxncz1lY2RzYV9zZWNwNTIxcjFfc2hhNTEyIGdyb3Vwcz14NDQ4IHRsczEzX2tleF9tb2Rlcz1lcGhlbWVyYWwgY29va2llcz0wIHRpY2tldHM9MCIgXAotICAgICAgICAgIiRQX0NMSSBjYV9maWxlPWRhdGFfZmlsZXMvdGVzdC1jYTIuY3J0IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUNIQUNIQTIwLVBPTFkxMzA1LVNIQTI1NiBzaWdfYWxncz1lY2RzYV9zZWNwNTIxcjFfc2hhNTEyIGdyb3Vwcz14NDQ4IiBcCisgICAgICAgICAiJFBfU1JWIGNydF9maWxlPSREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDUyMXIxLmNydCBrZXlfZmlsZT0kREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3A1MjFyMS5rZXkgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQ0hBQ0hBMjAtUE9MWTEzMDUtU0hBMjU2IHNpZ19hbGdzPWVjZHNhX3NlY3A1MjFyMV9zaGE1MTIgZ3JvdXBzPXg0NDggdGxzMTNfa2V4X21vZGVzPWVwaGVtZXJhbCBjb29raWVzPTAgdGlja2V0cz0wIiBcCisgICAgICAgICAiJFBfQ0xJIGNhX2ZpbGU9JERBVEFfRklMRVNfUEFUSC90ZXN0LWNhMi5jcnQgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQ0hBQ0hBMjAtUE9MWTEzMDUtU0hBMjU2IHNpZ19hbGdzPWVjZHNhX3NlY3A1MjFyMV9zaGE1MTIgZ3JvdXBzPXg0NDgiIFwKICAgICAgICAgIDAgXAogICAgICAgICAgLXMgIlByb3RvY29sIGlzIFRMU3YxLjMiIFwKICAgICAgICAgIC1zICJzZXJ2ZXIgaGVsbG8sIGNob3NlbiBjaXBoZXJzdWl0ZTogVExTMS0zLUNIQUNIQTIwLVBPTFkxMzA1LVNIQTI1NiAoIGlkPTQ4NjcgKSIgXApAQCAtMTA4OTYsOCArMTA4OTgsOCBAQAogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgTUJFRFRMU19YNTA5X1JTQVNTQV9QU1NfU1VQUE9SVAogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgUFNBX1dBTlRfQUxHX0VDREgKIHJ1bl90ZXN0ICJUTFMgMS4zIG0tPm06IENIQUNIQTIwX1BPTFkxMzA1X1NIQTI1Nix4NDQ4LHJzYV9wc3NfcnNhZV9zaGEyNTYiIFwKLSAgICAgICAgICIkUF9TUlYgY3J0X2ZpbGU9ZGF0YV9maWxlcy9zZXJ2ZXIyLXNoYTI1Ni5jcnQga2V5X2ZpbGU9ZGF0YV9maWxlcy9zZXJ2ZXIyLmtleSBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1DSEFDSEEyMC1QT0xZMTMwNS1TSEEyNTYgc2lnX2FsZ3M9cnNhX3Bzc19yc2FlX3NoYTI1NiBncm91cHM9eDQ0OCB0bHMxM19rZXhfbW9kZXM9ZXBoZW1lcmFsIGNvb2tpZXM9MCB0aWNrZXRzPTAiIFwKLSAgICAgICAgICIkUF9DTEkgY2FfZmlsZT1kYXRhX2ZpbGVzL3Rlc3QtY2FfY2F0MTIuY3J0IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUNIQUNIQTIwLVBPTFkxMzA1LVNIQTI1NiBzaWdfYWxncz1yc2FfcHNzX3JzYWVfc2hhMjU2IGdyb3Vwcz14NDQ4IiBcCisgICAgICAgICAiJFBfU1JWIGNydF9maWxlPSREQVRBX0ZJTEVTX1BBVEgvc2VydmVyMi1zaGEyNTYuY3J0IGtleV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvc2VydmVyMi5rZXkgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQ0hBQ0hBMjAtUE9MWTEzMDUtU0hBMjU2IHNpZ19hbGdzPXJzYV9wc3NfcnNhZV9zaGEyNTYgZ3JvdXBzPXg0NDggdGxzMTNfa2V4X21vZGVzPWVwaGVtZXJhbCBjb29raWVzPTAgdGlja2V0cz0wIiBcCisgICAgICAgICAiJFBfQ0xJIGNhX2ZpbGU9JERBVEFfRklMRVNfUEFUSC90ZXN0LWNhX2NhdDEyLmNydCBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1DSEFDSEEyMC1QT0xZMTMwNS1TSEEyNTYgc2lnX2FsZ3M9cnNhX3Bzc19yc2FlX3NoYTI1NiBncm91cHM9eDQ0OCIgXAogICAgICAgICAgMCBcCiAgICAgICAgICAtcyAiUHJvdG9jb2wgaXMgVExTdjEuMyIgXAogICAgICAgICAgLXMgInNlcnZlciBoZWxsbywgY2hvc2VuIGNpcGhlcnN1aXRlOiBUTFMxLTMtQ0hBQ0hBMjAtUE9MWTEzMDUtU0hBMjU2ICggaWQ9NDg2NyApIiBcCkBAIC0xMDkyNCw4ICsxMDkyNiw4IEBACiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBQU0FfV0FOVF9BTEdfRkZESAogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgUFNBX1dBTlRfREhfUkZDNzkxOV8yMDQ4CiBydW5fdGVzdCAiVExTIDEuMyBtLT5tOiBDSEFDSEEyMF9QT0xZMTMwNV9TSEEyNTYsZmZkaGUyMDQ4LGVjZHNhX3NlY3AyNTZyMV9zaGEyNTYiIFwKLSAgICAgICAgICIkUF9TUlYgY3J0X2ZpbGU9ZGF0YV9maWxlcy9lY2RzYV9zZWNwMjU2cjEuY3J0IGtleV9maWxlPWRhdGFfZmlsZXMvZWNkc2Ffc2VjcDI1NnIxLmtleSBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1DSEFDSEEyMC1QT0xZMTMwNS1TSEEyNTYgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDI1NnIxX3NoYTI1NiBncm91cHM9ZmZkaGUyMDQ4IHRsczEzX2tleF9tb2Rlcz1lcGhlbWVyYWwgY29va2llcz0wIHRpY2tldHM9MCIgXAotICAgICAgICAgIiRQX0NMSSBjYV9maWxlPWRhdGFfZmlsZXMvdGVzdC1jYTIuY3J0IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUNIQUNIQTIwLVBPTFkxMzA1LVNIQTI1NiBzaWdfYWxncz1lY2RzYV9zZWNwMjU2cjFfc2hhMjU2IGdyb3Vwcz1mZmRoZTIwNDgiIFwKKyAgICAgICAgICIkUF9TUlYgY3J0X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwMjU2cjEuY3J0IGtleV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDI1NnIxLmtleSBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1DSEFDSEEyMC1QT0xZMTMwNS1TSEEyNTYgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDI1NnIxX3NoYTI1NiBncm91cHM9ZmZkaGUyMDQ4IHRsczEzX2tleF9tb2Rlcz1lcGhlbWVyYWwgY29va2llcz0wIHRpY2tldHM9MCIgXAorICAgICAgICAgIiRQX0NMSSBjYV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvdGVzdC1jYTIuY3J0IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUNIQUNIQTIwLVBPTFkxMzA1LVNIQTI1NiBzaWdfYWxncz1lY2RzYV9zZWNwMjU2cjFfc2hhMjU2IGdyb3Vwcz1mZmRoZTIwNDgiIFwKICAgICAgICAgIDAgXAogICAgICAgICAgLXMgIlByb3RvY29sIGlzIFRMU3YxLjMiIFwKICAgICAgICAgIC1zICJzZXJ2ZXIgaGVsbG8sIGNob3NlbiBjaXBoZXJzdWl0ZTogVExTMS0zLUNIQUNIQTIwLVBPTFkxMzA1LVNIQTI1NiAoIGlkPTQ4NjcgKSIgXApAQCAtMTA5NTIsOCArMTA5NTQsOCBAQAogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgUFNBX1dBTlRfQUxHX0ZGREgKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIFBTQV9XQU5UX0RIX1JGQzc5MTlfMjA0OAogcnVuX3Rlc3QgIlRMUyAxLjMgbS0+bTogQ0hBQ0hBMjBfUE9MWTEzMDVfU0hBMjU2LGZmZGhlMjA0OCxlY2RzYV9zZWNwMzg0cjFfc2hhMzg0IiBcCi0gICAgICAgICAiJFBfU1JWIGNydF9maWxlPWRhdGFfZmlsZXMvZWNkc2Ffc2VjcDM4NHIxLmNydCBrZXlfZmlsZT1kYXRhX2ZpbGVzL2VjZHNhX3NlY3AzODRyMS5rZXkgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQ0hBQ0hBMjAtUE9MWTEzMDUtU0hBMjU2IHNpZ19hbGdzPWVjZHNhX3NlY3AzODRyMV9zaGEzODQgZ3JvdXBzPWZmZGhlMjA0OCB0bHMxM19rZXhfbW9kZXM9ZXBoZW1lcmFsIGNvb2tpZXM9MCB0aWNrZXRzPTAiIFwKLSAgICAgICAgICIkUF9DTEkgY2FfZmlsZT1kYXRhX2ZpbGVzL3Rlc3QtY2EyLmNydCBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1DSEFDSEEyMC1QT0xZMTMwNS1TSEEyNTYgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDM4NHIxX3NoYTM4NCBncm91cHM9ZmZkaGUyMDQ4IiBcCisgICAgICAgICAiJFBfU1JWIGNydF9maWxlPSREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDM4NHIxLmNydCBrZXlfZmlsZT0kREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3AzODRyMS5rZXkgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQ0hBQ0hBMjAtUE9MWTEzMDUtU0hBMjU2IHNpZ19hbGdzPWVjZHNhX3NlY3AzODRyMV9zaGEzODQgZ3JvdXBzPWZmZGhlMjA0OCB0bHMxM19rZXhfbW9kZXM9ZXBoZW1lcmFsIGNvb2tpZXM9MCB0aWNrZXRzPTAiIFwKKyAgICAgICAgICIkUF9DTEkgY2FfZmlsZT0kREFUQV9GSUxFU19QQVRIL3Rlc3QtY2EyLmNydCBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1DSEFDSEEyMC1QT0xZMTMwNS1TSEEyNTYgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDM4NHIxX3NoYTM4NCBncm91cHM9ZmZkaGUyMDQ4IiBcCiAgICAgICAgICAwIFwKICAgICAgICAgIC1zICJQcm90b2NvbCBpcyBUTFN2MS4zIiBcCiAgICAgICAgICAtcyAic2VydmVyIGhlbGxvLCBjaG9zZW4gY2lwaGVyc3VpdGU6IFRMUzEtMy1DSEFDSEEyMC1QT0xZMTMwNS1TSEEyNTYgKCBpZD00ODY3ICkiIFwKQEAgLTEwOTgwLDggKzEwOTgyLDggQEAKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIFBTQV9XQU5UX0FMR19GRkRICiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBQU0FfV0FOVF9ESF9SRkM3OTE5XzIwNDgKIHJ1bl90ZXN0ICJUTFMgMS4zIG0tPm06IENIQUNIQTIwX1BPTFkxMzA1X1NIQTI1NixmZmRoZTIwNDgsZWNkc2Ffc2VjcDUyMXIxX3NoYTUxMiIgXAotICAgICAgICAgIiRQX1NSViBjcnRfZmlsZT1kYXRhX2ZpbGVzL2VjZHNhX3NlY3A1MjFyMS5jcnQga2V5X2ZpbGU9ZGF0YV9maWxlcy9lY2RzYV9zZWNwNTIxcjEua2V5IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUNIQUNIQTIwLVBPTFkxMzA1LVNIQTI1NiBzaWdfYWxncz1lY2RzYV9zZWNwNTIxcjFfc2hhNTEyIGdyb3Vwcz1mZmRoZTIwNDggdGxzMTNfa2V4X21vZGVzPWVwaGVtZXJhbCBjb29raWVzPTAgdGlja2V0cz0wIiBcCi0gICAgICAgICAiJFBfQ0xJIGNhX2ZpbGU9ZGF0YV9maWxlcy90ZXN0LWNhMi5jcnQgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQ0hBQ0hBMjAtUE9MWTEzMDUtU0hBMjU2IHNpZ19hbGdzPWVjZHNhX3NlY3A1MjFyMV9zaGE1MTIgZ3JvdXBzPWZmZGhlMjA0OCIgXAorICAgICAgICAgIiRQX1NSViBjcnRfZmlsZT0kREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3A1MjFyMS5jcnQga2V5X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwNTIxcjEua2V5IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUNIQUNIQTIwLVBPTFkxMzA1LVNIQTI1NiBzaWdfYWxncz1lY2RzYV9zZWNwNTIxcjFfc2hhNTEyIGdyb3Vwcz1mZmRoZTIwNDggdGxzMTNfa2V4X21vZGVzPWVwaGVtZXJhbCBjb29raWVzPTAgdGlja2V0cz0wIiBcCisgICAgICAgICAiJFBfQ0xJIGNhX2ZpbGU9JERBVEFfRklMRVNfUEFUSC90ZXN0LWNhMi5jcnQgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQ0hBQ0hBMjAtUE9MWTEzMDUtU0hBMjU2IHNpZ19hbGdzPWVjZHNhX3NlY3A1MjFyMV9zaGE1MTIgZ3JvdXBzPWZmZGhlMjA0OCIgXAogICAgICAgICAgMCBcCiAgICAgICAgICAtcyAiUHJvdG9jb2wgaXMgVExTdjEuMyIgXAogICAgICAgICAgLXMgInNlcnZlciBoZWxsbywgY2hvc2VuIGNpcGhlcnN1aXRlOiBUTFMxLTMtQ0hBQ0hBMjAtUE9MWTEzMDUtU0hBMjU2ICggaWQ9NDg2NyApIiBcCkBAIC0xMTAxMCw4ICsxMTAxMiw4IEBACiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBQU0FfV0FOVF9BTEdfRkZESAogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgUFNBX1dBTlRfREhfUkZDNzkxOV8yMDQ4CiBydW5fdGVzdCAiVExTIDEuMyBtLT5tOiBDSEFDSEEyMF9QT0xZMTMwNV9TSEEyNTYsZmZkaGUyMDQ4LHJzYV9wc3NfcnNhZV9zaGEyNTYiIFwKLSAgICAgICAgICIkUF9TUlYgY3J0X2ZpbGU9ZGF0YV9maWxlcy9zZXJ2ZXIyLXNoYTI1Ni5jcnQga2V5X2ZpbGU9ZGF0YV9maWxlcy9zZXJ2ZXIyLmtleSBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1DSEFDSEEyMC1QT0xZMTMwNS1TSEEyNTYgc2lnX2FsZ3M9cnNhX3Bzc19yc2FlX3NoYTI1NiBncm91cHM9ZmZkaGUyMDQ4IHRsczEzX2tleF9tb2Rlcz1lcGhlbWVyYWwgY29va2llcz0wIHRpY2tldHM9MCIgXAotICAgICAgICAgIiRQX0NMSSBjYV9maWxlPWRhdGFfZmlsZXMvdGVzdC1jYV9jYXQxMi5jcnQgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQ0hBQ0hBMjAtUE9MWTEzMDUtU0hBMjU2IHNpZ19hbGdzPXJzYV9wc3NfcnNhZV9zaGEyNTYgZ3JvdXBzPWZmZGhlMjA0OCIgXAorICAgICAgICAgIiRQX1NSViBjcnRfZmlsZT0kREFUQV9GSUxFU19QQVRIL3NlcnZlcjItc2hhMjU2LmNydCBrZXlfZmlsZT0kREFUQV9GSUxFU19QQVRIL3NlcnZlcjIua2V5IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUNIQUNIQTIwLVBPTFkxMzA1LVNIQTI1NiBzaWdfYWxncz1yc2FfcHNzX3JzYWVfc2hhMjU2IGdyb3Vwcz1mZmRoZTIwNDggdGxzMTNfa2V4X21vZGVzPWVwaGVtZXJhbCBjb29raWVzPTAgdGlja2V0cz0wIiBcCisgICAgICAgICAiJFBfQ0xJIGNhX2ZpbGU9JERBVEFfRklMRVNfUEFUSC90ZXN0LWNhX2NhdDEyLmNydCBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1DSEFDSEEyMC1QT0xZMTMwNS1TSEEyNTYgc2lnX2FsZ3M9cnNhX3Bzc19yc2FlX3NoYTI1NiBncm91cHM9ZmZkaGUyMDQ4IiBcCiAgICAgICAgICAwIFwKICAgICAgICAgIC1zICJQcm90b2NvbCBpcyBUTFN2MS4zIiBcCiAgICAgICAgICAtcyAic2VydmVyIGhlbGxvLCBjaG9zZW4gY2lwaGVyc3VpdGU6IFRMUzEtMy1DSEFDSEEyMC1QT0xZMTMwNS1TSEEyNTYgKCBpZD00ODY3ICkiIFwKQEAgLTExMDM2LDggKzExMDM4LDggQEAKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIE1CRURUTFNfU1NMX1RMUzFfM19DT01QQVRJQklMSVRZX01PREUKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIFBTQV9XQU5UX0FMR19FQ0RICiBydW5fdGVzdCAiVExTIDEuMyBtLT5tOiBBRVNfMTI4X0NDTV9TSEEyNTYsc2VjcDI1NnIxLGVjZHNhX3NlY3AyNTZyMV9zaGEyNTYiIFwKLSAgICAgICAgICIkUF9TUlYgY3J0X2ZpbGU9ZGF0YV9maWxlcy9lY2RzYV9zZWNwMjU2cjEuY3J0IGtleV9maWxlPWRhdGFfZmlsZXMvZWNkc2Ffc2VjcDI1NnIxLmtleSBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMTI4LUNDTS1TSEEyNTYgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDI1NnIxX3NoYTI1NiBncm91cHM9c2VjcDI1NnIxIHRsczEzX2tleF9tb2Rlcz1lcGhlbWVyYWwgY29va2llcz0wIHRpY2tldHM9MCIgXAotICAgICAgICAgIiRQX0NMSSBjYV9maWxlPWRhdGFfZmlsZXMvdGVzdC1jYTIuY3J0IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0xMjgtQ0NNLVNIQTI1NiBzaWdfYWxncz1lY2RzYV9zZWNwMjU2cjFfc2hhMjU2IGdyb3Vwcz1zZWNwMjU2cjEiIFwKKyAgICAgICAgICIkUF9TUlYgY3J0X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwMjU2cjEuY3J0IGtleV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDI1NnIxLmtleSBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMTI4LUNDTS1TSEEyNTYgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDI1NnIxX3NoYTI1NiBncm91cHM9c2VjcDI1NnIxIHRsczEzX2tleF9tb2Rlcz1lcGhlbWVyYWwgY29va2llcz0wIHRpY2tldHM9MCIgXAorICAgICAgICAgIiRQX0NMSSBjYV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvdGVzdC1jYTIuY3J0IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0xMjgtQ0NNLVNIQTI1NiBzaWdfYWxncz1lY2RzYV9zZWNwMjU2cjFfc2hhMjU2IGdyb3Vwcz1zZWNwMjU2cjEiIFwKICAgICAgICAgIDAgXAogICAgICAgICAgLXMgIlByb3RvY29sIGlzIFRMU3YxLjMiIFwKICAgICAgICAgIC1zICJzZXJ2ZXIgaGVsbG8sIGNob3NlbiBjaXBoZXJzdWl0ZTogVExTMS0zLUFFUy0xMjgtQ0NNLVNIQTI1NiAoIGlkPTQ4NjggKSIgXApAQCAtMTEwNjIsOCArMTEwNjQsOCBAQAogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgTUJFRFRMU19TU0xfVExTMV8zX0NPTVBBVElCSUxJVFlfTU9ERQogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgUFNBX1dBTlRfQUxHX0VDREgKIHJ1bl90ZXN0ICJUTFMgMS4zIG0tPm06IEFFU18xMjhfQ0NNX1NIQTI1NixzZWNwMjU2cjEsZWNkc2Ffc2VjcDM4NHIxX3NoYTM4NCIgXAotICAgICAgICAgIiRQX1NSViBjcnRfZmlsZT1kYXRhX2ZpbGVzL2VjZHNhX3NlY3AzODRyMS5jcnQga2V5X2ZpbGU9ZGF0YV9maWxlcy9lY2RzYV9zZWNwMzg0cjEua2V5IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0xMjgtQ0NNLVNIQTI1NiBzaWdfYWxncz1lY2RzYV9zZWNwMzg0cjFfc2hhMzg0IGdyb3Vwcz1zZWNwMjU2cjEgdGxzMTNfa2V4X21vZGVzPWVwaGVtZXJhbCBjb29raWVzPTAgdGlja2V0cz0wIiBcCi0gICAgICAgICAiJFBfQ0xJIGNhX2ZpbGU9ZGF0YV9maWxlcy90ZXN0LWNhMi5jcnQgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTEyOC1DQ00tU0hBMjU2IHNpZ19hbGdzPWVjZHNhX3NlY3AzODRyMV9zaGEzODQgZ3JvdXBzPXNlY3AyNTZyMSIgXAorICAgICAgICAgIiRQX1NSViBjcnRfZmlsZT0kREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3AzODRyMS5jcnQga2V5X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwMzg0cjEua2V5IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0xMjgtQ0NNLVNIQTI1NiBzaWdfYWxncz1lY2RzYV9zZWNwMzg0cjFfc2hhMzg0IGdyb3Vwcz1zZWNwMjU2cjEgdGxzMTNfa2V4X21vZGVzPWVwaGVtZXJhbCBjb29raWVzPTAgdGlja2V0cz0wIiBcCisgICAgICAgICAiJFBfQ0xJIGNhX2ZpbGU9JERBVEFfRklMRVNfUEFUSC90ZXN0LWNhMi5jcnQgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTEyOC1DQ00tU0hBMjU2IHNpZ19hbGdzPWVjZHNhX3NlY3AzODRyMV9zaGEzODQgZ3JvdXBzPXNlY3AyNTZyMSIgXAogICAgICAgICAgMCBcCiAgICAgICAgICAtcyAiUHJvdG9jb2wgaXMgVExTdjEuMyIgXAogICAgICAgICAgLXMgInNlcnZlciBoZWxsbywgY2hvc2VuIGNpcGhlcnN1aXRlOiBUTFMxLTMtQUVTLTEyOC1DQ00tU0hBMjU2ICggaWQ9NDg2OCApIiBcCkBAIC0xMTA4OCw4ICsxMTA5MCw4IEBACiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBNQkVEVExTX1NTTF9UTFMxXzNfQ09NUEFUSUJJTElUWV9NT0RFCiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBQU0FfV0FOVF9BTEdfRUNESAogcnVuX3Rlc3QgIlRMUyAxLjMgbS0+bTogQUVTXzEyOF9DQ01fU0hBMjU2LHNlY3AyNTZyMSxlY2RzYV9zZWNwNTIxcjFfc2hhNTEyIiBcCi0gICAgICAgICAiJFBfU1JWIGNydF9maWxlPWRhdGFfZmlsZXMvZWNkc2Ffc2VjcDUyMXIxLmNydCBrZXlfZmlsZT1kYXRhX2ZpbGVzL2VjZHNhX3NlY3A1MjFyMS5rZXkgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTEyOC1DQ00tU0hBMjU2IHNpZ19hbGdzPWVjZHNhX3NlY3A1MjFyMV9zaGE1MTIgZ3JvdXBzPXNlY3AyNTZyMSB0bHMxM19rZXhfbW9kZXM9ZXBoZW1lcmFsIGNvb2tpZXM9MCB0aWNrZXRzPTAiIFwKLSAgICAgICAgICIkUF9DTEkgY2FfZmlsZT1kYXRhX2ZpbGVzL3Rlc3QtY2EyLmNydCBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMTI4LUNDTS1TSEEyNTYgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDUyMXIxX3NoYTUxMiBncm91cHM9c2VjcDI1NnIxIiBcCisgICAgICAgICAiJFBfU1JWIGNydF9maWxlPSREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDUyMXIxLmNydCBrZXlfZmlsZT0kREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3A1MjFyMS5rZXkgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTEyOC1DQ00tU0hBMjU2IHNpZ19hbGdzPWVjZHNhX3NlY3A1MjFyMV9zaGE1MTIgZ3JvdXBzPXNlY3AyNTZyMSB0bHMxM19rZXhfbW9kZXM9ZXBoZW1lcmFsIGNvb2tpZXM9MCB0aWNrZXRzPTAiIFwKKyAgICAgICAgICIkUF9DTEkgY2FfZmlsZT0kREFUQV9GSUxFU19QQVRIL3Rlc3QtY2EyLmNydCBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMTI4LUNDTS1TSEEyNTYgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDUyMXIxX3NoYTUxMiBncm91cHM9c2VjcDI1NnIxIiBcCiAgICAgICAgICAwIFwKICAgICAgICAgIC1zICJQcm90b2NvbCBpcyBUTFN2MS4zIiBcCiAgICAgICAgICAtcyAic2VydmVyIGhlbGxvLCBjaG9zZW4gY2lwaGVyc3VpdGU6IFRMUzEtMy1BRVMtMTI4LUNDTS1TSEEyNTYgKCBpZD00ODY4ICkiIFwKQEAgLTExMTE2LDggKzExMTE4LDggQEAKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIE1CRURUTFNfWDUwOV9SU0FTU0FfUFNTX1NVUFBPUlQKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIFBTQV9XQU5UX0FMR19FQ0RICiBydW5fdGVzdCAiVExTIDEuMyBtLT5tOiBBRVNfMTI4X0NDTV9TSEEyNTYsc2VjcDI1NnIxLHJzYV9wc3NfcnNhZV9zaGEyNTYiIFwKLSAgICAgICAgICIkUF9TUlYgY3J0X2ZpbGU9ZGF0YV9maWxlcy9zZXJ2ZXIyLXNoYTI1Ni5jcnQga2V5X2ZpbGU9ZGF0YV9maWxlcy9zZXJ2ZXIyLmtleSBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMTI4LUNDTS1TSEEyNTYgc2lnX2FsZ3M9cnNhX3Bzc19yc2FlX3NoYTI1NiBncm91cHM9c2VjcDI1NnIxIHRsczEzX2tleF9tb2Rlcz1lcGhlbWVyYWwgY29va2llcz0wIHRpY2tldHM9MCIgXAotICAgICAgICAgIiRQX0NMSSBjYV9maWxlPWRhdGFfZmlsZXMvdGVzdC1jYV9jYXQxMi5jcnQgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTEyOC1DQ00tU0hBMjU2IHNpZ19hbGdzPXJzYV9wc3NfcnNhZV9zaGEyNTYgZ3JvdXBzPXNlY3AyNTZyMSIgXAorICAgICAgICAgIiRQX1NSViBjcnRfZmlsZT0kREFUQV9GSUxFU19QQVRIL3NlcnZlcjItc2hhMjU2LmNydCBrZXlfZmlsZT0kREFUQV9GSUxFU19QQVRIL3NlcnZlcjIua2V5IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0xMjgtQ0NNLVNIQTI1NiBzaWdfYWxncz1yc2FfcHNzX3JzYWVfc2hhMjU2IGdyb3Vwcz1zZWNwMjU2cjEgdGxzMTNfa2V4X21vZGVzPWVwaGVtZXJhbCBjb29raWVzPTAgdGlja2V0cz0wIiBcCisgICAgICAgICAiJFBfQ0xJIGNhX2ZpbGU9JERBVEFfRklMRVNfUEFUSC90ZXN0LWNhX2NhdDEyLmNydCBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMTI4LUNDTS1TSEEyNTYgc2lnX2FsZ3M9cnNhX3Bzc19yc2FlX3NoYTI1NiBncm91cHM9c2VjcDI1NnIxIiBcCiAgICAgICAgICAwIFwKICAgICAgICAgIC1zICJQcm90b2NvbCBpcyBUTFN2MS4zIiBcCiAgICAgICAgICAtcyAic2VydmVyIGhlbGxvLCBjaG9zZW4gY2lwaGVyc3VpdGU6IFRMUzEtMy1BRVMtMTI4LUNDTS1TSEEyNTYgKCBpZD00ODY4ICkiIFwKQEAgLTExMTQyLDggKzExMTQ0LDggQEAKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIE1CRURUTFNfU1NMX1RMUzFfM19DT01QQVRJQklMSVRZX01PREUKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIFBTQV9XQU5UX0FMR19FQ0RICiBydW5fdGVzdCAiVExTIDEuMyBtLT5tOiBBRVNfMTI4X0NDTV9TSEEyNTYsc2VjcDM4NHIxLGVjZHNhX3NlY3AyNTZyMV9zaGEyNTYiIFwKLSAgICAgICAgICIkUF9TUlYgY3J0X2ZpbGU9ZGF0YV9maWxlcy9lY2RzYV9zZWNwMjU2cjEuY3J0IGtleV9maWxlPWRhdGFfZmlsZXMvZWNkc2Ffc2VjcDI1NnIxLmtleSBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMTI4LUNDTS1TSEEyNTYgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDI1NnIxX3NoYTI1NiBncm91cHM9c2VjcDM4NHIxIHRsczEzX2tleF9tb2Rlcz1lcGhlbWVyYWwgY29va2llcz0wIHRpY2tldHM9MCIgXAotICAgICAgICAgIiRQX0NMSSBjYV9maWxlPWRhdGFfZmlsZXMvdGVzdC1jYTIuY3J0IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0xMjgtQ0NNLVNIQTI1NiBzaWdfYWxncz1lY2RzYV9zZWNwMjU2cjFfc2hhMjU2IGdyb3Vwcz1zZWNwMzg0cjEiIFwKKyAgICAgICAgICIkUF9TUlYgY3J0X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwMjU2cjEuY3J0IGtleV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDI1NnIxLmtleSBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMTI4LUNDTS1TSEEyNTYgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDI1NnIxX3NoYTI1NiBncm91cHM9c2VjcDM4NHIxIHRsczEzX2tleF9tb2Rlcz1lcGhlbWVyYWwgY29va2llcz0wIHRpY2tldHM9MCIgXAorICAgICAgICAgIiRQX0NMSSBjYV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvdGVzdC1jYTIuY3J0IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0xMjgtQ0NNLVNIQTI1NiBzaWdfYWxncz1lY2RzYV9zZWNwMjU2cjFfc2hhMjU2IGdyb3Vwcz1zZWNwMzg0cjEiIFwKICAgICAgICAgIDAgXAogICAgICAgICAgLXMgIlByb3RvY29sIGlzIFRMU3YxLjMiIFwKICAgICAgICAgIC1zICJzZXJ2ZXIgaGVsbG8sIGNob3NlbiBjaXBoZXJzdWl0ZTogVExTMS0zLUFFUy0xMjgtQ0NNLVNIQTI1NiAoIGlkPTQ4NjggKSIgXApAQCAtMTExNjgsOCArMTExNzAsOCBAQAogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgTUJFRFRMU19TU0xfVExTMV8zX0NPTVBBVElCSUxJVFlfTU9ERQogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgUFNBX1dBTlRfQUxHX0VDREgKIHJ1bl90ZXN0ICJUTFMgMS4zIG0tPm06IEFFU18xMjhfQ0NNX1NIQTI1NixzZWNwMzg0cjEsZWNkc2Ffc2VjcDM4NHIxX3NoYTM4NCIgXAotICAgICAgICAgIiRQX1NSViBjcnRfZmlsZT1kYXRhX2ZpbGVzL2VjZHNhX3NlY3AzODRyMS5jcnQga2V5X2ZpbGU9ZGF0YV9maWxlcy9lY2RzYV9zZWNwMzg0cjEua2V5IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0xMjgtQ0NNLVNIQTI1NiBzaWdfYWxncz1lY2RzYV9zZWNwMzg0cjFfc2hhMzg0IGdyb3Vwcz1zZWNwMzg0cjEgdGxzMTNfa2V4X21vZGVzPWVwaGVtZXJhbCBjb29raWVzPTAgdGlja2V0cz0wIiBcCi0gICAgICAgICAiJFBfQ0xJIGNhX2ZpbGU9ZGF0YV9maWxlcy90ZXN0LWNhMi5jcnQgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTEyOC1DQ00tU0hBMjU2IHNpZ19hbGdzPWVjZHNhX3NlY3AzODRyMV9zaGEzODQgZ3JvdXBzPXNlY3AzODRyMSIgXAorICAgICAgICAgIiRQX1NSViBjcnRfZmlsZT0kREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3AzODRyMS5jcnQga2V5X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwMzg0cjEua2V5IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0xMjgtQ0NNLVNIQTI1NiBzaWdfYWxncz1lY2RzYV9zZWNwMzg0cjFfc2hhMzg0IGdyb3Vwcz1zZWNwMzg0cjEgdGxzMTNfa2V4X21vZGVzPWVwaGVtZXJhbCBjb29raWVzPTAgdGlja2V0cz0wIiBcCisgICAgICAgICAiJFBfQ0xJIGNhX2ZpbGU9JERBVEFfRklMRVNfUEFUSC90ZXN0LWNhMi5jcnQgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTEyOC1DQ00tU0hBMjU2IHNpZ19hbGdzPWVjZHNhX3NlY3AzODRyMV9zaGEzODQgZ3JvdXBzPXNlY3AzODRyMSIgXAogICAgICAgICAgMCBcCiAgICAgICAgICAtcyAiUHJvdG9jb2wgaXMgVExTdjEuMyIgXAogICAgICAgICAgLXMgInNlcnZlciBoZWxsbywgY2hvc2VuIGNpcGhlcnN1aXRlOiBUTFMxLTMtQUVTLTEyOC1DQ00tU0hBMjU2ICggaWQ9NDg2OCApIiBcCkBAIC0xMTE5NCw4ICsxMTE5Niw4IEBACiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBNQkVEVExTX1NTTF9UTFMxXzNfQ09NUEFUSUJJTElUWV9NT0RFCiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBQU0FfV0FOVF9BTEdfRUNESAogcnVuX3Rlc3QgIlRMUyAxLjMgbS0+bTogQUVTXzEyOF9DQ01fU0hBMjU2LHNlY3AzODRyMSxlY2RzYV9zZWNwNTIxcjFfc2hhNTEyIiBcCi0gICAgICAgICAiJFBfU1JWIGNydF9maWxlPWRhdGFfZmlsZXMvZWNkc2Ffc2VjcDUyMXIxLmNydCBrZXlfZmlsZT1kYXRhX2ZpbGVzL2VjZHNhX3NlY3A1MjFyMS5rZXkgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTEyOC1DQ00tU0hBMjU2IHNpZ19hbGdzPWVjZHNhX3NlY3A1MjFyMV9zaGE1MTIgZ3JvdXBzPXNlY3AzODRyMSB0bHMxM19rZXhfbW9kZXM9ZXBoZW1lcmFsIGNvb2tpZXM9MCB0aWNrZXRzPTAiIFwKLSAgICAgICAgICIkUF9DTEkgY2FfZmlsZT1kYXRhX2ZpbGVzL3Rlc3QtY2EyLmNydCBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMTI4LUNDTS1TSEEyNTYgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDUyMXIxX3NoYTUxMiBncm91cHM9c2VjcDM4NHIxIiBcCisgICAgICAgICAiJFBfU1JWIGNydF9maWxlPSREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDUyMXIxLmNydCBrZXlfZmlsZT0kREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3A1MjFyMS5rZXkgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTEyOC1DQ00tU0hBMjU2IHNpZ19hbGdzPWVjZHNhX3NlY3A1MjFyMV9zaGE1MTIgZ3JvdXBzPXNlY3AzODRyMSB0bHMxM19rZXhfbW9kZXM9ZXBoZW1lcmFsIGNvb2tpZXM9MCB0aWNrZXRzPTAiIFwKKyAgICAgICAgICIkUF9DTEkgY2FfZmlsZT0kREFUQV9GSUxFU19QQVRIL3Rlc3QtY2EyLmNydCBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMTI4LUNDTS1TSEEyNTYgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDUyMXIxX3NoYTUxMiBncm91cHM9c2VjcDM4NHIxIiBcCiAgICAgICAgICAwIFwKICAgICAgICAgIC1zICJQcm90b2NvbCBpcyBUTFN2MS4zIiBcCiAgICAgICAgICAtcyAic2VydmVyIGhlbGxvLCBjaG9zZW4gY2lwaGVyc3VpdGU6IFRMUzEtMy1BRVMtMTI4LUNDTS1TSEEyNTYgKCBpZD00ODY4ICkiIFwKQEAgLTExMjIyLDggKzExMjI0LDggQEAKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIE1CRURUTFNfWDUwOV9SU0FTU0FfUFNTX1NVUFBPUlQKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIFBTQV9XQU5UX0FMR19FQ0RICiBydW5fdGVzdCAiVExTIDEuMyBtLT5tOiBBRVNfMTI4X0NDTV9TSEEyNTYsc2VjcDM4NHIxLHJzYV9wc3NfcnNhZV9zaGEyNTYiIFwKLSAgICAgICAgICIkUF9TUlYgY3J0X2ZpbGU9ZGF0YV9maWxlcy9zZXJ2ZXIyLXNoYTI1Ni5jcnQga2V5X2ZpbGU9ZGF0YV9maWxlcy9zZXJ2ZXIyLmtleSBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMTI4LUNDTS1TSEEyNTYgc2lnX2FsZ3M9cnNhX3Bzc19yc2FlX3NoYTI1NiBncm91cHM9c2VjcDM4NHIxIHRsczEzX2tleF9tb2Rlcz1lcGhlbWVyYWwgY29va2llcz0wIHRpY2tldHM9MCIgXAotICAgICAgICAgIiRQX0NMSSBjYV9maWxlPWRhdGFfZmlsZXMvdGVzdC1jYV9jYXQxMi5jcnQgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTEyOC1DQ00tU0hBMjU2IHNpZ19hbGdzPXJzYV9wc3NfcnNhZV9zaGEyNTYgZ3JvdXBzPXNlY3AzODRyMSIgXAorICAgICAgICAgIiRQX1NSViBjcnRfZmlsZT0kREFUQV9GSUxFU19QQVRIL3NlcnZlcjItc2hhMjU2LmNydCBrZXlfZmlsZT0kREFUQV9GSUxFU19QQVRIL3NlcnZlcjIua2V5IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0xMjgtQ0NNLVNIQTI1NiBzaWdfYWxncz1yc2FfcHNzX3JzYWVfc2hhMjU2IGdyb3Vwcz1zZWNwMzg0cjEgdGxzMTNfa2V4X21vZGVzPWVwaGVtZXJhbCBjb29raWVzPTAgdGlja2V0cz0wIiBcCisgICAgICAgICAiJFBfQ0xJIGNhX2ZpbGU9JERBVEFfRklMRVNfUEFUSC90ZXN0LWNhX2NhdDEyLmNydCBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMTI4LUNDTS1TSEEyNTYgc2lnX2FsZ3M9cnNhX3Bzc19yc2FlX3NoYTI1NiBncm91cHM9c2VjcDM4NHIxIiBcCiAgICAgICAgICAwIFwKICAgICAgICAgIC1zICJQcm90b2NvbCBpcyBUTFN2MS4zIiBcCiAgICAgICAgICAtcyAic2VydmVyIGhlbGxvLCBjaG9zZW4gY2lwaGVyc3VpdGU6IFRMUzEtMy1BRVMtMTI4LUNDTS1TSEEyNTYgKCBpZD00ODY4ICkiIFwKQEAgLTExMjQ4LDggKzExMjUwLDggQEAKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIE1CRURUTFNfU1NMX1RMUzFfM19DT01QQVRJQklMSVRZX01PREUKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIFBTQV9XQU5UX0FMR19FQ0RICiBydW5fdGVzdCAiVExTIDEuMyBtLT5tOiBBRVNfMTI4X0NDTV9TSEEyNTYsc2VjcDUyMXIxLGVjZHNhX3NlY3AyNTZyMV9zaGEyNTYiIFwKLSAgICAgICAgICIkUF9TUlYgY3J0X2ZpbGU9ZGF0YV9maWxlcy9lY2RzYV9zZWNwMjU2cjEuY3J0IGtleV9maWxlPWRhdGFfZmlsZXMvZWNkc2Ffc2VjcDI1NnIxLmtleSBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMTI4LUNDTS1TSEEyNTYgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDI1NnIxX3NoYTI1NiBncm91cHM9c2VjcDUyMXIxIHRsczEzX2tleF9tb2Rlcz1lcGhlbWVyYWwgY29va2llcz0wIHRpY2tldHM9MCIgXAotICAgICAgICAgIiRQX0NMSSBjYV9maWxlPWRhdGFfZmlsZXMvdGVzdC1jYTIuY3J0IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0xMjgtQ0NNLVNIQTI1NiBzaWdfYWxncz1lY2RzYV9zZWNwMjU2cjFfc2hhMjU2IGdyb3Vwcz1zZWNwNTIxcjEiIFwKKyAgICAgICAgICIkUF9TUlYgY3J0X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwMjU2cjEuY3J0IGtleV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDI1NnIxLmtleSBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMTI4LUNDTS1TSEEyNTYgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDI1NnIxX3NoYTI1NiBncm91cHM9c2VjcDUyMXIxIHRsczEzX2tleF9tb2Rlcz1lcGhlbWVyYWwgY29va2llcz0wIHRpY2tldHM9MCIgXAorICAgICAgICAgIiRQX0NMSSBjYV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvdGVzdC1jYTIuY3J0IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0xMjgtQ0NNLVNIQTI1NiBzaWdfYWxncz1lY2RzYV9zZWNwMjU2cjFfc2hhMjU2IGdyb3Vwcz1zZWNwNTIxcjEiIFwKICAgICAgICAgIDAgXAogICAgICAgICAgLXMgIlByb3RvY29sIGlzIFRMU3YxLjMiIFwKICAgICAgICAgIC1zICJzZXJ2ZXIgaGVsbG8sIGNob3NlbiBjaXBoZXJzdWl0ZTogVExTMS0zLUFFUy0xMjgtQ0NNLVNIQTI1NiAoIGlkPTQ4NjggKSIgXApAQCAtMTEyNzQsOCArMTEyNzYsOCBAQAogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgTUJFRFRMU19TU0xfVExTMV8zX0NPTVBBVElCSUxJVFlfTU9ERQogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgUFNBX1dBTlRfQUxHX0VDREgKIHJ1bl90ZXN0ICJUTFMgMS4zIG0tPm06IEFFU18xMjhfQ0NNX1NIQTI1NixzZWNwNTIxcjEsZWNkc2Ffc2VjcDM4NHIxX3NoYTM4NCIgXAotICAgICAgICAgIiRQX1NSViBjcnRfZmlsZT1kYXRhX2ZpbGVzL2VjZHNhX3NlY3AzODRyMS5jcnQga2V5X2ZpbGU9ZGF0YV9maWxlcy9lY2RzYV9zZWNwMzg0cjEua2V5IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0xMjgtQ0NNLVNIQTI1NiBzaWdfYWxncz1lY2RzYV9zZWNwMzg0cjFfc2hhMzg0IGdyb3Vwcz1zZWNwNTIxcjEgdGxzMTNfa2V4X21vZGVzPWVwaGVtZXJhbCBjb29raWVzPTAgdGlja2V0cz0wIiBcCi0gICAgICAgICAiJFBfQ0xJIGNhX2ZpbGU9ZGF0YV9maWxlcy90ZXN0LWNhMi5jcnQgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTEyOC1DQ00tU0hBMjU2IHNpZ19hbGdzPWVjZHNhX3NlY3AzODRyMV9zaGEzODQgZ3JvdXBzPXNlY3A1MjFyMSIgXAorICAgICAgICAgIiRQX1NSViBjcnRfZmlsZT0kREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3AzODRyMS5jcnQga2V5X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwMzg0cjEua2V5IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0xMjgtQ0NNLVNIQTI1NiBzaWdfYWxncz1lY2RzYV9zZWNwMzg0cjFfc2hhMzg0IGdyb3Vwcz1zZWNwNTIxcjEgdGxzMTNfa2V4X21vZGVzPWVwaGVtZXJhbCBjb29raWVzPTAgdGlja2V0cz0wIiBcCisgICAgICAgICAiJFBfQ0xJIGNhX2ZpbGU9JERBVEFfRklMRVNfUEFUSC90ZXN0LWNhMi5jcnQgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTEyOC1DQ00tU0hBMjU2IHNpZ19hbGdzPWVjZHNhX3NlY3AzODRyMV9zaGEzODQgZ3JvdXBzPXNlY3A1MjFyMSIgXAogICAgICAgICAgMCBcCiAgICAgICAgICAtcyAiUHJvdG9jb2wgaXMgVExTdjEuMyIgXAogICAgICAgICAgLXMgInNlcnZlciBoZWxsbywgY2hvc2VuIGNpcGhlcnN1aXRlOiBUTFMxLTMtQUVTLTEyOC1DQ00tU0hBMjU2ICggaWQ9NDg2OCApIiBcCkBAIC0xMTMwMCw4ICsxMTMwMiw4IEBACiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBNQkVEVExTX1NTTF9UTFMxXzNfQ09NUEFUSUJJTElUWV9NT0RFCiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBQU0FfV0FOVF9BTEdfRUNESAogcnVuX3Rlc3QgIlRMUyAxLjMgbS0+bTogQUVTXzEyOF9DQ01fU0hBMjU2LHNlY3A1MjFyMSxlY2RzYV9zZWNwNTIxcjFfc2hhNTEyIiBcCi0gICAgICAgICAiJFBfU1JWIGNydF9maWxlPWRhdGFfZmlsZXMvZWNkc2Ffc2VjcDUyMXIxLmNydCBrZXlfZmlsZT1kYXRhX2ZpbGVzL2VjZHNhX3NlY3A1MjFyMS5rZXkgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTEyOC1DQ00tU0hBMjU2IHNpZ19hbGdzPWVjZHNhX3NlY3A1MjFyMV9zaGE1MTIgZ3JvdXBzPXNlY3A1MjFyMSB0bHMxM19rZXhfbW9kZXM9ZXBoZW1lcmFsIGNvb2tpZXM9MCB0aWNrZXRzPTAiIFwKLSAgICAgICAgICIkUF9DTEkgY2FfZmlsZT1kYXRhX2ZpbGVzL3Rlc3QtY2EyLmNydCBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMTI4LUNDTS1TSEEyNTYgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDUyMXIxX3NoYTUxMiBncm91cHM9c2VjcDUyMXIxIiBcCisgICAgICAgICAiJFBfU1JWIGNydF9maWxlPSREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDUyMXIxLmNydCBrZXlfZmlsZT0kREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3A1MjFyMS5rZXkgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTEyOC1DQ00tU0hBMjU2IHNpZ19hbGdzPWVjZHNhX3NlY3A1MjFyMV9zaGE1MTIgZ3JvdXBzPXNlY3A1MjFyMSB0bHMxM19rZXhfbW9kZXM9ZXBoZW1lcmFsIGNvb2tpZXM9MCB0aWNrZXRzPTAiIFwKKyAgICAgICAgICIkUF9DTEkgY2FfZmlsZT0kREFUQV9GSUxFU19QQVRIL3Rlc3QtY2EyLmNydCBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMTI4LUNDTS1TSEEyNTYgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDUyMXIxX3NoYTUxMiBncm91cHM9c2VjcDUyMXIxIiBcCiAgICAgICAgICAwIFwKICAgICAgICAgIC1zICJQcm90b2NvbCBpcyBUTFN2MS4zIiBcCiAgICAgICAgICAtcyAic2VydmVyIGhlbGxvLCBjaG9zZW4gY2lwaGVyc3VpdGU6IFRMUzEtMy1BRVMtMTI4LUNDTS1TSEEyNTYgKCBpZD00ODY4ICkiIFwKQEAgLTExMzI4LDggKzExMzMwLDggQEAKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIE1CRURUTFNfWDUwOV9SU0FTU0FfUFNTX1NVUFBPUlQKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIFBTQV9XQU5UX0FMR19FQ0RICiBydW5fdGVzdCAiVExTIDEuMyBtLT5tOiBBRVNfMTI4X0NDTV9TSEEyNTYsc2VjcDUyMXIxLHJzYV9wc3NfcnNhZV9zaGEyNTYiIFwKLSAgICAgICAgICIkUF9TUlYgY3J0X2ZpbGU9ZGF0YV9maWxlcy9zZXJ2ZXIyLXNoYTI1Ni5jcnQga2V5X2ZpbGU9ZGF0YV9maWxlcy9zZXJ2ZXIyLmtleSBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMTI4LUNDTS1TSEEyNTYgc2lnX2FsZ3M9cnNhX3Bzc19yc2FlX3NoYTI1NiBncm91cHM9c2VjcDUyMXIxIHRsczEzX2tleF9tb2Rlcz1lcGhlbWVyYWwgY29va2llcz0wIHRpY2tldHM9MCIgXAotICAgICAgICAgIiRQX0NMSSBjYV9maWxlPWRhdGFfZmlsZXMvdGVzdC1jYV9jYXQxMi5jcnQgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTEyOC1DQ00tU0hBMjU2IHNpZ19hbGdzPXJzYV9wc3NfcnNhZV9zaGEyNTYgZ3JvdXBzPXNlY3A1MjFyMSIgXAorICAgICAgICAgIiRQX1NSViBjcnRfZmlsZT0kREFUQV9GSUxFU19QQVRIL3NlcnZlcjItc2hhMjU2LmNydCBrZXlfZmlsZT0kREFUQV9GSUxFU19QQVRIL3NlcnZlcjIua2V5IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0xMjgtQ0NNLVNIQTI1NiBzaWdfYWxncz1yc2FfcHNzX3JzYWVfc2hhMjU2IGdyb3Vwcz1zZWNwNTIxcjEgdGxzMTNfa2V4X21vZGVzPWVwaGVtZXJhbCBjb29raWVzPTAgdGlja2V0cz0wIiBcCisgICAgICAgICAiJFBfQ0xJIGNhX2ZpbGU9JERBVEFfRklMRVNfUEFUSC90ZXN0LWNhX2NhdDEyLmNydCBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMTI4LUNDTS1TSEEyNTYgc2lnX2FsZ3M9cnNhX3Bzc19yc2FlX3NoYTI1NiBncm91cHM9c2VjcDUyMXIxIiBcCiAgICAgICAgICAwIFwKICAgICAgICAgIC1zICJQcm90b2NvbCBpcyBUTFN2MS4zIiBcCiAgICAgICAgICAtcyAic2VydmVyIGhlbGxvLCBjaG9zZW4gY2lwaGVyc3VpdGU6IFRMUzEtMy1BRVMtMTI4LUNDTS1TSEEyNTYgKCBpZD00ODY4ICkiIFwKQEAgLTExMzU0LDggKzExMzU2LDggQEAKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIE1CRURUTFNfU1NMX1RMUzFfM19DT01QQVRJQklMSVRZX01PREUKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIFBTQV9XQU5UX0FMR19FQ0RICiBydW5fdGVzdCAiVExTIDEuMyBtLT5tOiBBRVNfMTI4X0NDTV9TSEEyNTYseDI1NTE5LGVjZHNhX3NlY3AyNTZyMV9zaGEyNTYiIFwKLSAgICAgICAgICIkUF9TUlYgY3J0X2ZpbGU9ZGF0YV9maWxlcy9lY2RzYV9zZWNwMjU2cjEuY3J0IGtleV9maWxlPWRhdGFfZmlsZXMvZWNkc2Ffc2VjcDI1NnIxLmtleSBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMTI4LUNDTS1TSEEyNTYgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDI1NnIxX3NoYTI1NiBncm91cHM9eDI1NTE5IHRsczEzX2tleF9tb2Rlcz1lcGhlbWVyYWwgY29va2llcz0wIHRpY2tldHM9MCIgXAotICAgICAgICAgIiRQX0NMSSBjYV9maWxlPWRhdGFfZmlsZXMvdGVzdC1jYTIuY3J0IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0xMjgtQ0NNLVNIQTI1NiBzaWdfYWxncz1lY2RzYV9zZWNwMjU2cjFfc2hhMjU2IGdyb3Vwcz14MjU1MTkiIFwKKyAgICAgICAgICIkUF9TUlYgY3J0X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwMjU2cjEuY3J0IGtleV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDI1NnIxLmtleSBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMTI4LUNDTS1TSEEyNTYgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDI1NnIxX3NoYTI1NiBncm91cHM9eDI1NTE5IHRsczEzX2tleF9tb2Rlcz1lcGhlbWVyYWwgY29va2llcz0wIHRpY2tldHM9MCIgXAorICAgICAgICAgIiRQX0NMSSBjYV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvdGVzdC1jYTIuY3J0IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0xMjgtQ0NNLVNIQTI1NiBzaWdfYWxncz1lY2RzYV9zZWNwMjU2cjFfc2hhMjU2IGdyb3Vwcz14MjU1MTkiIFwKICAgICAgICAgIDAgXAogICAgICAgICAgLXMgIlByb3RvY29sIGlzIFRMU3YxLjMiIFwKICAgICAgICAgIC1zICJzZXJ2ZXIgaGVsbG8sIGNob3NlbiBjaXBoZXJzdWl0ZTogVExTMS0zLUFFUy0xMjgtQ0NNLVNIQTI1NiAoIGlkPTQ4NjggKSIgXApAQCAtMTEzODAsOCArMTEzODIsOCBAQAogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgTUJFRFRMU19TU0xfVExTMV8zX0NPTVBBVElCSUxJVFlfTU9ERQogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgUFNBX1dBTlRfQUxHX0VDREgKIHJ1bl90ZXN0ICJUTFMgMS4zIG0tPm06IEFFU18xMjhfQ0NNX1NIQTI1Nix4MjU1MTksZWNkc2Ffc2VjcDM4NHIxX3NoYTM4NCIgXAotICAgICAgICAgIiRQX1NSViBjcnRfZmlsZT1kYXRhX2ZpbGVzL2VjZHNhX3NlY3AzODRyMS5jcnQga2V5X2ZpbGU9ZGF0YV9maWxlcy9lY2RzYV9zZWNwMzg0cjEua2V5IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0xMjgtQ0NNLVNIQTI1NiBzaWdfYWxncz1lY2RzYV9zZWNwMzg0cjFfc2hhMzg0IGdyb3Vwcz14MjU1MTkgdGxzMTNfa2V4X21vZGVzPWVwaGVtZXJhbCBjb29raWVzPTAgdGlja2V0cz0wIiBcCi0gICAgICAgICAiJFBfQ0xJIGNhX2ZpbGU9ZGF0YV9maWxlcy90ZXN0LWNhMi5jcnQgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTEyOC1DQ00tU0hBMjU2IHNpZ19hbGdzPWVjZHNhX3NlY3AzODRyMV9zaGEzODQgZ3JvdXBzPXgyNTUxOSIgXAorICAgICAgICAgIiRQX1NSViBjcnRfZmlsZT0kREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3AzODRyMS5jcnQga2V5X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwMzg0cjEua2V5IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0xMjgtQ0NNLVNIQTI1NiBzaWdfYWxncz1lY2RzYV9zZWNwMzg0cjFfc2hhMzg0IGdyb3Vwcz14MjU1MTkgdGxzMTNfa2V4X21vZGVzPWVwaGVtZXJhbCBjb29raWVzPTAgdGlja2V0cz0wIiBcCisgICAgICAgICAiJFBfQ0xJIGNhX2ZpbGU9JERBVEFfRklMRVNfUEFUSC90ZXN0LWNhMi5jcnQgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTEyOC1DQ00tU0hBMjU2IHNpZ19hbGdzPWVjZHNhX3NlY3AzODRyMV9zaGEzODQgZ3JvdXBzPXgyNTUxOSIgXAogICAgICAgICAgMCBcCiAgICAgICAgICAtcyAiUHJvdG9jb2wgaXMgVExTdjEuMyIgXAogICAgICAgICAgLXMgInNlcnZlciBoZWxsbywgY2hvc2VuIGNpcGhlcnN1aXRlOiBUTFMxLTMtQUVTLTEyOC1DQ00tU0hBMjU2ICggaWQ9NDg2OCApIiBcCkBAIC0xMTQwNiw4ICsxMTQwOCw4IEBACiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBNQkVEVExTX1NTTF9UTFMxXzNfQ09NUEFUSUJJTElUWV9NT0RFCiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBQU0FfV0FOVF9BTEdfRUNESAogcnVuX3Rlc3QgIlRMUyAxLjMgbS0+bTogQUVTXzEyOF9DQ01fU0hBMjU2LHgyNTUxOSxlY2RzYV9zZWNwNTIxcjFfc2hhNTEyIiBcCi0gICAgICAgICAiJFBfU1JWIGNydF9maWxlPWRhdGFfZmlsZXMvZWNkc2Ffc2VjcDUyMXIxLmNydCBrZXlfZmlsZT1kYXRhX2ZpbGVzL2VjZHNhX3NlY3A1MjFyMS5rZXkgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTEyOC1DQ00tU0hBMjU2IHNpZ19hbGdzPWVjZHNhX3NlY3A1MjFyMV9zaGE1MTIgZ3JvdXBzPXgyNTUxOSB0bHMxM19rZXhfbW9kZXM9ZXBoZW1lcmFsIGNvb2tpZXM9MCB0aWNrZXRzPTAiIFwKLSAgICAgICAgICIkUF9DTEkgY2FfZmlsZT1kYXRhX2ZpbGVzL3Rlc3QtY2EyLmNydCBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMTI4LUNDTS1TSEEyNTYgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDUyMXIxX3NoYTUxMiBncm91cHM9eDI1NTE5IiBcCisgICAgICAgICAiJFBfU1JWIGNydF9maWxlPSREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDUyMXIxLmNydCBrZXlfZmlsZT0kREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3A1MjFyMS5rZXkgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTEyOC1DQ00tU0hBMjU2IHNpZ19hbGdzPWVjZHNhX3NlY3A1MjFyMV9zaGE1MTIgZ3JvdXBzPXgyNTUxOSB0bHMxM19rZXhfbW9kZXM9ZXBoZW1lcmFsIGNvb2tpZXM9MCB0aWNrZXRzPTAiIFwKKyAgICAgICAgICIkUF9DTEkgY2FfZmlsZT0kREFUQV9GSUxFU19QQVRIL3Rlc3QtY2EyLmNydCBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMTI4LUNDTS1TSEEyNTYgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDUyMXIxX3NoYTUxMiBncm91cHM9eDI1NTE5IiBcCiAgICAgICAgICAwIFwKICAgICAgICAgIC1zICJQcm90b2NvbCBpcyBUTFN2MS4zIiBcCiAgICAgICAgICAtcyAic2VydmVyIGhlbGxvLCBjaG9zZW4gY2lwaGVyc3VpdGU6IFRMUzEtMy1BRVMtMTI4LUNDTS1TSEEyNTYgKCBpZD00ODY4ICkiIFwKQEAgLTExNDM0LDggKzExNDM2LDggQEAKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIE1CRURUTFNfWDUwOV9SU0FTU0FfUFNTX1NVUFBPUlQKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIFBTQV9XQU5UX0FMR19FQ0RICiBydW5fdGVzdCAiVExTIDEuMyBtLT5tOiBBRVNfMTI4X0NDTV9TSEEyNTYseDI1NTE5LHJzYV9wc3NfcnNhZV9zaGEyNTYiIFwKLSAgICAgICAgICIkUF9TUlYgY3J0X2ZpbGU9ZGF0YV9maWxlcy9zZXJ2ZXIyLXNoYTI1Ni5jcnQga2V5X2ZpbGU9ZGF0YV9maWxlcy9zZXJ2ZXIyLmtleSBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMTI4LUNDTS1TSEEyNTYgc2lnX2FsZ3M9cnNhX3Bzc19yc2FlX3NoYTI1NiBncm91cHM9eDI1NTE5IHRsczEzX2tleF9tb2Rlcz1lcGhlbWVyYWwgY29va2llcz0wIHRpY2tldHM9MCIgXAotICAgICAgICAgIiRQX0NMSSBjYV9maWxlPWRhdGFfZmlsZXMvdGVzdC1jYV9jYXQxMi5jcnQgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTEyOC1DQ00tU0hBMjU2IHNpZ19hbGdzPXJzYV9wc3NfcnNhZV9zaGEyNTYgZ3JvdXBzPXgyNTUxOSIgXAorICAgICAgICAgIiRQX1NSViBjcnRfZmlsZT0kREFUQV9GSUxFU19QQVRIL3NlcnZlcjItc2hhMjU2LmNydCBrZXlfZmlsZT0kREFUQV9GSUxFU19QQVRIL3NlcnZlcjIua2V5IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0xMjgtQ0NNLVNIQTI1NiBzaWdfYWxncz1yc2FfcHNzX3JzYWVfc2hhMjU2IGdyb3Vwcz14MjU1MTkgdGxzMTNfa2V4X21vZGVzPWVwaGVtZXJhbCBjb29raWVzPTAgdGlja2V0cz0wIiBcCisgICAgICAgICAiJFBfQ0xJIGNhX2ZpbGU9JERBVEFfRklMRVNfUEFUSC90ZXN0LWNhX2NhdDEyLmNydCBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMTI4LUNDTS1TSEEyNTYgc2lnX2FsZ3M9cnNhX3Bzc19yc2FlX3NoYTI1NiBncm91cHM9eDI1NTE5IiBcCiAgICAgICAgICAwIFwKICAgICAgICAgIC1zICJQcm90b2NvbCBpcyBUTFN2MS4zIiBcCiAgICAgICAgICAtcyAic2VydmVyIGhlbGxvLCBjaG9zZW4gY2lwaGVyc3VpdGU6IFRMUzEtMy1BRVMtMTI4LUNDTS1TSEEyNTYgKCBpZD00ODY4ICkiIFwKQEAgLTExNDYwLDggKzExNDYyLDggQEAKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIE1CRURUTFNfU1NMX1RMUzFfM19DT01QQVRJQklMSVRZX01PREUKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIFBTQV9XQU5UX0FMR19FQ0RICiBydW5fdGVzdCAiVExTIDEuMyBtLT5tOiBBRVNfMTI4X0NDTV9TSEEyNTYseDQ0OCxlY2RzYV9zZWNwMjU2cjFfc2hhMjU2IiBcCi0gICAgICAgICAiJFBfU1JWIGNydF9maWxlPWRhdGFfZmlsZXMvZWNkc2Ffc2VjcDI1NnIxLmNydCBrZXlfZmlsZT1kYXRhX2ZpbGVzL2VjZHNhX3NlY3AyNTZyMS5rZXkgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTEyOC1DQ00tU0hBMjU2IHNpZ19hbGdzPWVjZHNhX3NlY3AyNTZyMV9zaGEyNTYgZ3JvdXBzPXg0NDggdGxzMTNfa2V4X21vZGVzPWVwaGVtZXJhbCBjb29raWVzPTAgdGlja2V0cz0wIiBcCi0gICAgICAgICAiJFBfQ0xJIGNhX2ZpbGU9ZGF0YV9maWxlcy90ZXN0LWNhMi5jcnQgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTEyOC1DQ00tU0hBMjU2IHNpZ19hbGdzPWVjZHNhX3NlY3AyNTZyMV9zaGEyNTYgZ3JvdXBzPXg0NDgiIFwKKyAgICAgICAgICIkUF9TUlYgY3J0X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwMjU2cjEuY3J0IGtleV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDI1NnIxLmtleSBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMTI4LUNDTS1TSEEyNTYgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDI1NnIxX3NoYTI1NiBncm91cHM9eDQ0OCB0bHMxM19rZXhfbW9kZXM9ZXBoZW1lcmFsIGNvb2tpZXM9MCB0aWNrZXRzPTAiIFwKKyAgICAgICAgICIkUF9DTEkgY2FfZmlsZT0kREFUQV9GSUxFU19QQVRIL3Rlc3QtY2EyLmNydCBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMTI4LUNDTS1TSEEyNTYgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDI1NnIxX3NoYTI1NiBncm91cHM9eDQ0OCIgXAogICAgICAgICAgMCBcCiAgICAgICAgICAtcyAiUHJvdG9jb2wgaXMgVExTdjEuMyIgXAogICAgICAgICAgLXMgInNlcnZlciBoZWxsbywgY2hvc2VuIGNpcGhlcnN1aXRlOiBUTFMxLTMtQUVTLTEyOC1DQ00tU0hBMjU2ICggaWQ9NDg2OCApIiBcCkBAIC0xMTQ4Niw4ICsxMTQ4OCw4IEBACiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBNQkVEVExTX1NTTF9UTFMxXzNfQ09NUEFUSUJJTElUWV9NT0RFCiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBQU0FfV0FOVF9BTEdfRUNESAogcnVuX3Rlc3QgIlRMUyAxLjMgbS0+bTogQUVTXzEyOF9DQ01fU0hBMjU2LHg0NDgsZWNkc2Ffc2VjcDM4NHIxX3NoYTM4NCIgXAotICAgICAgICAgIiRQX1NSViBjcnRfZmlsZT1kYXRhX2ZpbGVzL2VjZHNhX3NlY3AzODRyMS5jcnQga2V5X2ZpbGU9ZGF0YV9maWxlcy9lY2RzYV9zZWNwMzg0cjEua2V5IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0xMjgtQ0NNLVNIQTI1NiBzaWdfYWxncz1lY2RzYV9zZWNwMzg0cjFfc2hhMzg0IGdyb3Vwcz14NDQ4IHRsczEzX2tleF9tb2Rlcz1lcGhlbWVyYWwgY29va2llcz0wIHRpY2tldHM9MCIgXAotICAgICAgICAgIiRQX0NMSSBjYV9maWxlPWRhdGFfZmlsZXMvdGVzdC1jYTIuY3J0IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0xMjgtQ0NNLVNIQTI1NiBzaWdfYWxncz1lY2RzYV9zZWNwMzg0cjFfc2hhMzg0IGdyb3Vwcz14NDQ4IiBcCisgICAgICAgICAiJFBfU1JWIGNydF9maWxlPSREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDM4NHIxLmNydCBrZXlfZmlsZT0kREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3AzODRyMS5rZXkgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTEyOC1DQ00tU0hBMjU2IHNpZ19hbGdzPWVjZHNhX3NlY3AzODRyMV9zaGEzODQgZ3JvdXBzPXg0NDggdGxzMTNfa2V4X21vZGVzPWVwaGVtZXJhbCBjb29raWVzPTAgdGlja2V0cz0wIiBcCisgICAgICAgICAiJFBfQ0xJIGNhX2ZpbGU9JERBVEFfRklMRVNfUEFUSC90ZXN0LWNhMi5jcnQgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTEyOC1DQ00tU0hBMjU2IHNpZ19hbGdzPWVjZHNhX3NlY3AzODRyMV9zaGEzODQgZ3JvdXBzPXg0NDgiIFwKICAgICAgICAgIDAgXAogICAgICAgICAgLXMgIlByb3RvY29sIGlzIFRMU3YxLjMiIFwKICAgICAgICAgIC1zICJzZXJ2ZXIgaGVsbG8sIGNob3NlbiBjaXBoZXJzdWl0ZTogVExTMS0zLUFFUy0xMjgtQ0NNLVNIQTI1NiAoIGlkPTQ4NjggKSIgXApAQCAtMTE1MTIsOCArMTE1MTQsOCBAQAogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgTUJFRFRMU19TU0xfVExTMV8zX0NPTVBBVElCSUxJVFlfTU9ERQogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgUFNBX1dBTlRfQUxHX0VDREgKIHJ1bl90ZXN0ICJUTFMgMS4zIG0tPm06IEFFU18xMjhfQ0NNX1NIQTI1Nix4NDQ4LGVjZHNhX3NlY3A1MjFyMV9zaGE1MTIiIFwKLSAgICAgICAgICIkUF9TUlYgY3J0X2ZpbGU9ZGF0YV9maWxlcy9lY2RzYV9zZWNwNTIxcjEuY3J0IGtleV9maWxlPWRhdGFfZmlsZXMvZWNkc2Ffc2VjcDUyMXIxLmtleSBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMTI4LUNDTS1TSEEyNTYgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDUyMXIxX3NoYTUxMiBncm91cHM9eDQ0OCB0bHMxM19rZXhfbW9kZXM9ZXBoZW1lcmFsIGNvb2tpZXM9MCB0aWNrZXRzPTAiIFwKLSAgICAgICAgICIkUF9DTEkgY2FfZmlsZT1kYXRhX2ZpbGVzL3Rlc3QtY2EyLmNydCBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMTI4LUNDTS1TSEEyNTYgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDUyMXIxX3NoYTUxMiBncm91cHM9eDQ0OCIgXAorICAgICAgICAgIiRQX1NSViBjcnRfZmlsZT0kREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3A1MjFyMS5jcnQga2V5X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwNTIxcjEua2V5IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0xMjgtQ0NNLVNIQTI1NiBzaWdfYWxncz1lY2RzYV9zZWNwNTIxcjFfc2hhNTEyIGdyb3Vwcz14NDQ4IHRsczEzX2tleF9tb2Rlcz1lcGhlbWVyYWwgY29va2llcz0wIHRpY2tldHM9MCIgXAorICAgICAgICAgIiRQX0NMSSBjYV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvdGVzdC1jYTIuY3J0IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0xMjgtQ0NNLVNIQTI1NiBzaWdfYWxncz1lY2RzYV9zZWNwNTIxcjFfc2hhNTEyIGdyb3Vwcz14NDQ4IiBcCiAgICAgICAgICAwIFwKICAgICAgICAgIC1zICJQcm90b2NvbCBpcyBUTFN2MS4zIiBcCiAgICAgICAgICAtcyAic2VydmVyIGhlbGxvLCBjaG9zZW4gY2lwaGVyc3VpdGU6IFRMUzEtMy1BRVMtMTI4LUNDTS1TSEEyNTYgKCBpZD00ODY4ICkiIFwKQEAgLTExNTQwLDggKzExNTQyLDggQEAKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIE1CRURUTFNfWDUwOV9SU0FTU0FfUFNTX1NVUFBPUlQKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIFBTQV9XQU5UX0FMR19FQ0RICiBydW5fdGVzdCAiVExTIDEuMyBtLT5tOiBBRVNfMTI4X0NDTV9TSEEyNTYseDQ0OCxyc2FfcHNzX3JzYWVfc2hhMjU2IiBcCi0gICAgICAgICAiJFBfU1JWIGNydF9maWxlPWRhdGFfZmlsZXMvc2VydmVyMi1zaGEyNTYuY3J0IGtleV9maWxlPWRhdGFfZmlsZXMvc2VydmVyMi5rZXkgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTEyOC1DQ00tU0hBMjU2IHNpZ19hbGdzPXJzYV9wc3NfcnNhZV9zaGEyNTYgZ3JvdXBzPXg0NDggdGxzMTNfa2V4X21vZGVzPWVwaGVtZXJhbCBjb29raWVzPTAgdGlja2V0cz0wIiBcCi0gICAgICAgICAiJFBfQ0xJIGNhX2ZpbGU9ZGF0YV9maWxlcy90ZXN0LWNhX2NhdDEyLmNydCBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMTI4LUNDTS1TSEEyNTYgc2lnX2FsZ3M9cnNhX3Bzc19yc2FlX3NoYTI1NiBncm91cHM9eDQ0OCIgXAorICAgICAgICAgIiRQX1NSViBjcnRfZmlsZT0kREFUQV9GSUxFU19QQVRIL3NlcnZlcjItc2hhMjU2LmNydCBrZXlfZmlsZT0kREFUQV9GSUxFU19QQVRIL3NlcnZlcjIua2V5IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0xMjgtQ0NNLVNIQTI1NiBzaWdfYWxncz1yc2FfcHNzX3JzYWVfc2hhMjU2IGdyb3Vwcz14NDQ4IHRsczEzX2tleF9tb2Rlcz1lcGhlbWVyYWwgY29va2llcz0wIHRpY2tldHM9MCIgXAorICAgICAgICAgIiRQX0NMSSBjYV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvdGVzdC1jYV9jYXQxMi5jcnQgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTEyOC1DQ00tU0hBMjU2IHNpZ19hbGdzPXJzYV9wc3NfcnNhZV9zaGEyNTYgZ3JvdXBzPXg0NDgiIFwKICAgICAgICAgIDAgXAogICAgICAgICAgLXMgIlByb3RvY29sIGlzIFRMU3YxLjMiIFwKICAgICAgICAgIC1zICJzZXJ2ZXIgaGVsbG8sIGNob3NlbiBjaXBoZXJzdWl0ZTogVExTMS0zLUFFUy0xMjgtQ0NNLVNIQTI1NiAoIGlkPTQ4NjggKSIgXApAQCAtMTE1NjgsOCArMTE1NzAsOCBAQAogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgUFNBX1dBTlRfQUxHX0ZGREgKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIFBTQV9XQU5UX0RIX1JGQzc5MTlfMjA0OAogcnVuX3Rlc3QgIlRMUyAxLjMgbS0+bTogQUVTXzEyOF9DQ01fU0hBMjU2LGZmZGhlMjA0OCxlY2RzYV9zZWNwMjU2cjFfc2hhMjU2IiBcCi0gICAgICAgICAiJFBfU1JWIGNydF9maWxlPWRhdGFfZmlsZXMvZWNkc2Ffc2VjcDI1NnIxLmNydCBrZXlfZmlsZT1kYXRhX2ZpbGVzL2VjZHNhX3NlY3AyNTZyMS5rZXkgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTEyOC1DQ00tU0hBMjU2IHNpZ19hbGdzPWVjZHNhX3NlY3AyNTZyMV9zaGEyNTYgZ3JvdXBzPWZmZGhlMjA0OCB0bHMxM19rZXhfbW9kZXM9ZXBoZW1lcmFsIGNvb2tpZXM9MCB0aWNrZXRzPTAiIFwKLSAgICAgICAgICIkUF9DTEkgY2FfZmlsZT1kYXRhX2ZpbGVzL3Rlc3QtY2EyLmNydCBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMTI4LUNDTS1TSEEyNTYgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDI1NnIxX3NoYTI1NiBncm91cHM9ZmZkaGUyMDQ4IiBcCisgICAgICAgICAiJFBfU1JWIGNydF9maWxlPSREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDI1NnIxLmNydCBrZXlfZmlsZT0kREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3AyNTZyMS5rZXkgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTEyOC1DQ00tU0hBMjU2IHNpZ19hbGdzPWVjZHNhX3NlY3AyNTZyMV9zaGEyNTYgZ3JvdXBzPWZmZGhlMjA0OCB0bHMxM19rZXhfbW9kZXM9ZXBoZW1lcmFsIGNvb2tpZXM9MCB0aWNrZXRzPTAiIFwKKyAgICAgICAgICIkUF9DTEkgY2FfZmlsZT0kREFUQV9GSUxFU19QQVRIL3Rlc3QtY2EyLmNydCBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMTI4LUNDTS1TSEEyNTYgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDI1NnIxX3NoYTI1NiBncm91cHM9ZmZkaGUyMDQ4IiBcCiAgICAgICAgICAwIFwKICAgICAgICAgIC1zICJQcm90b2NvbCBpcyBUTFN2MS4zIiBcCiAgICAgICAgICAtcyAic2VydmVyIGhlbGxvLCBjaG9zZW4gY2lwaGVyc3VpdGU6IFRMUzEtMy1BRVMtMTI4LUNDTS1TSEEyNTYgKCBpZD00ODY4ICkiIFwKQEAgLTExNTk2LDggKzExNTk4LDggQEAKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIFBTQV9XQU5UX0FMR19GRkRICiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBQU0FfV0FOVF9ESF9SRkM3OTE5XzIwNDgKIHJ1bl90ZXN0ICJUTFMgMS4zIG0tPm06IEFFU18xMjhfQ0NNX1NIQTI1NixmZmRoZTIwNDgsZWNkc2Ffc2VjcDM4NHIxX3NoYTM4NCIgXAotICAgICAgICAgIiRQX1NSViBjcnRfZmlsZT1kYXRhX2ZpbGVzL2VjZHNhX3NlY3AzODRyMS5jcnQga2V5X2ZpbGU9ZGF0YV9maWxlcy9lY2RzYV9zZWNwMzg0cjEua2V5IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0xMjgtQ0NNLVNIQTI1NiBzaWdfYWxncz1lY2RzYV9zZWNwMzg0cjFfc2hhMzg0IGdyb3Vwcz1mZmRoZTIwNDggdGxzMTNfa2V4X21vZGVzPWVwaGVtZXJhbCBjb29raWVzPTAgdGlja2V0cz0wIiBcCi0gICAgICAgICAiJFBfQ0xJIGNhX2ZpbGU9ZGF0YV9maWxlcy90ZXN0LWNhMi5jcnQgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTEyOC1DQ00tU0hBMjU2IHNpZ19hbGdzPWVjZHNhX3NlY3AzODRyMV9zaGEzODQgZ3JvdXBzPWZmZGhlMjA0OCIgXAorICAgICAgICAgIiRQX1NSViBjcnRfZmlsZT0kREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3AzODRyMS5jcnQga2V5X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwMzg0cjEua2V5IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0xMjgtQ0NNLVNIQTI1NiBzaWdfYWxncz1lY2RzYV9zZWNwMzg0cjFfc2hhMzg0IGdyb3Vwcz1mZmRoZTIwNDggdGxzMTNfa2V4X21vZGVzPWVwaGVtZXJhbCBjb29raWVzPTAgdGlja2V0cz0wIiBcCisgICAgICAgICAiJFBfQ0xJIGNhX2ZpbGU9JERBVEFfRklMRVNfUEFUSC90ZXN0LWNhMi5jcnQgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTEyOC1DQ00tU0hBMjU2IHNpZ19hbGdzPWVjZHNhX3NlY3AzODRyMV9zaGEzODQgZ3JvdXBzPWZmZGhlMjA0OCIgXAogICAgICAgICAgMCBcCiAgICAgICAgICAtcyAiUHJvdG9jb2wgaXMgVExTdjEuMyIgXAogICAgICAgICAgLXMgInNlcnZlciBoZWxsbywgY2hvc2VuIGNpcGhlcnN1aXRlOiBUTFMxLTMtQUVTLTEyOC1DQ00tU0hBMjU2ICggaWQ9NDg2OCApIiBcCkBAIC0xMTYyNCw4ICsxMTYyNiw4IEBACiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBQU0FfV0FOVF9BTEdfRkZESAogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgUFNBX1dBTlRfREhfUkZDNzkxOV8yMDQ4CiBydW5fdGVzdCAiVExTIDEuMyBtLT5tOiBBRVNfMTI4X0NDTV9TSEEyNTYsZmZkaGUyMDQ4LGVjZHNhX3NlY3A1MjFyMV9zaGE1MTIiIFwKLSAgICAgICAgICIkUF9TUlYgY3J0X2ZpbGU9ZGF0YV9maWxlcy9lY2RzYV9zZWNwNTIxcjEuY3J0IGtleV9maWxlPWRhdGFfZmlsZXMvZWNkc2Ffc2VjcDUyMXIxLmtleSBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMTI4LUNDTS1TSEEyNTYgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDUyMXIxX3NoYTUxMiBncm91cHM9ZmZkaGUyMDQ4IHRsczEzX2tleF9tb2Rlcz1lcGhlbWVyYWwgY29va2llcz0wIHRpY2tldHM9MCIgXAotICAgICAgICAgIiRQX0NMSSBjYV9maWxlPWRhdGFfZmlsZXMvdGVzdC1jYTIuY3J0IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0xMjgtQ0NNLVNIQTI1NiBzaWdfYWxncz1lY2RzYV9zZWNwNTIxcjFfc2hhNTEyIGdyb3Vwcz1mZmRoZTIwNDgiIFwKKyAgICAgICAgICIkUF9TUlYgY3J0X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwNTIxcjEuY3J0IGtleV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDUyMXIxLmtleSBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMTI4LUNDTS1TSEEyNTYgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDUyMXIxX3NoYTUxMiBncm91cHM9ZmZkaGUyMDQ4IHRsczEzX2tleF9tb2Rlcz1lcGhlbWVyYWwgY29va2llcz0wIHRpY2tldHM9MCIgXAorICAgICAgICAgIiRQX0NMSSBjYV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvdGVzdC1jYTIuY3J0IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0xMjgtQ0NNLVNIQTI1NiBzaWdfYWxncz1lY2RzYV9zZWNwNTIxcjFfc2hhNTEyIGdyb3Vwcz1mZmRoZTIwNDgiIFwKICAgICAgICAgIDAgXAogICAgICAgICAgLXMgIlByb3RvY29sIGlzIFRMU3YxLjMiIFwKICAgICAgICAgIC1zICJzZXJ2ZXIgaGVsbG8sIGNob3NlbiBjaXBoZXJzdWl0ZTogVExTMS0zLUFFUy0xMjgtQ0NNLVNIQTI1NiAoIGlkPTQ4NjggKSIgXApAQCAtMTE2NTQsOCArMTE2NTYsOCBAQAogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgUFNBX1dBTlRfQUxHX0ZGREgKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIFBTQV9XQU5UX0RIX1JGQzc5MTlfMjA0OAogcnVuX3Rlc3QgIlRMUyAxLjMgbS0+bTogQUVTXzEyOF9DQ01fU0hBMjU2LGZmZGhlMjA0OCxyc2FfcHNzX3JzYWVfc2hhMjU2IiBcCi0gICAgICAgICAiJFBfU1JWIGNydF9maWxlPWRhdGFfZmlsZXMvc2VydmVyMi1zaGEyNTYuY3J0IGtleV9maWxlPWRhdGFfZmlsZXMvc2VydmVyMi5rZXkgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTEyOC1DQ00tU0hBMjU2IHNpZ19hbGdzPXJzYV9wc3NfcnNhZV9zaGEyNTYgZ3JvdXBzPWZmZGhlMjA0OCB0bHMxM19rZXhfbW9kZXM9ZXBoZW1lcmFsIGNvb2tpZXM9MCB0aWNrZXRzPTAiIFwKLSAgICAgICAgICIkUF9DTEkgY2FfZmlsZT1kYXRhX2ZpbGVzL3Rlc3QtY2FfY2F0MTIuY3J0IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0xMjgtQ0NNLVNIQTI1NiBzaWdfYWxncz1yc2FfcHNzX3JzYWVfc2hhMjU2IGdyb3Vwcz1mZmRoZTIwNDgiIFwKKyAgICAgICAgICIkUF9TUlYgY3J0X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9zZXJ2ZXIyLXNoYTI1Ni5jcnQga2V5X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9zZXJ2ZXIyLmtleSBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMTI4LUNDTS1TSEEyNTYgc2lnX2FsZ3M9cnNhX3Bzc19yc2FlX3NoYTI1NiBncm91cHM9ZmZkaGUyMDQ4IHRsczEzX2tleF9tb2Rlcz1lcGhlbWVyYWwgY29va2llcz0wIHRpY2tldHM9MCIgXAorICAgICAgICAgIiRQX0NMSSBjYV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvdGVzdC1jYV9jYXQxMi5jcnQgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTEyOC1DQ00tU0hBMjU2IHNpZ19hbGdzPXJzYV9wc3NfcnNhZV9zaGEyNTYgZ3JvdXBzPWZmZGhlMjA0OCIgXAogICAgICAgICAgMCBcCiAgICAgICAgICAtcyAiUHJvdG9jb2wgaXMgVExTdjEuMyIgXAogICAgICAgICAgLXMgInNlcnZlciBoZWxsbywgY2hvc2VuIGNpcGhlcnN1aXRlOiBUTFMxLTMtQUVTLTEyOC1DQ00tU0hBMjU2ICggaWQ9NDg2OCApIiBcCkBAIC0xMTY4MCw4ICsxMTY4Miw4IEBACiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBNQkVEVExTX1NTTF9UTFMxXzNfQ09NUEFUSUJJTElUWV9NT0RFCiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBQU0FfV0FOVF9BTEdfRUNESAogcnVuX3Rlc3QgIlRMUyAxLjMgbS0+bTogQUVTXzEyOF9DQ01fOF9TSEEyNTYsc2VjcDI1NnIxLGVjZHNhX3NlY3AyNTZyMV9zaGEyNTYiIFwKLSAgICAgICAgICIkUF9TUlYgY3J0X2ZpbGU9ZGF0YV9maWxlcy9lY2RzYV9zZWNwMjU2cjEuY3J0IGtleV9maWxlPWRhdGFfZmlsZXMvZWNkc2Ffc2VjcDI1NnIxLmtleSBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMTI4LUNDTS04LVNIQTI1NiBzaWdfYWxncz1lY2RzYV9zZWNwMjU2cjFfc2hhMjU2IGdyb3Vwcz1zZWNwMjU2cjEgdGxzMTNfa2V4X21vZGVzPWVwaGVtZXJhbCBjb29raWVzPTAgdGlja2V0cz0wIiBcCi0gICAgICAgICAiJFBfQ0xJIGNhX2ZpbGU9ZGF0YV9maWxlcy90ZXN0LWNhMi5jcnQgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTEyOC1DQ00tOC1TSEEyNTYgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDI1NnIxX3NoYTI1NiBncm91cHM9c2VjcDI1NnIxIiBcCisgICAgICAgICAiJFBfU1JWIGNydF9maWxlPSREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDI1NnIxLmNydCBrZXlfZmlsZT0kREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3AyNTZyMS5rZXkgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTEyOC1DQ00tOC1TSEEyNTYgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDI1NnIxX3NoYTI1NiBncm91cHM9c2VjcDI1NnIxIHRsczEzX2tleF9tb2Rlcz1lcGhlbWVyYWwgY29va2llcz0wIHRpY2tldHM9MCIgXAorICAgICAgICAgIiRQX0NMSSBjYV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvdGVzdC1jYTIuY3J0IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0xMjgtQ0NNLTgtU0hBMjU2IHNpZ19hbGdzPWVjZHNhX3NlY3AyNTZyMV9zaGEyNTYgZ3JvdXBzPXNlY3AyNTZyMSIgXAogICAgICAgICAgMCBcCiAgICAgICAgICAtcyAiUHJvdG9jb2wgaXMgVExTdjEuMyIgXAogICAgICAgICAgLXMgInNlcnZlciBoZWxsbywgY2hvc2VuIGNpcGhlcnN1aXRlOiBUTFMxLTMtQUVTLTEyOC1DQ00tOC1TSEEyNTYgKCBpZD00ODY5ICkiIFwKQEAgLTExNzA2LDggKzExNzA4LDggQEAKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIE1CRURUTFNfU1NMX1RMUzFfM19DT01QQVRJQklMSVRZX01PREUKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIFBTQV9XQU5UX0FMR19FQ0RICiBydW5fdGVzdCAiVExTIDEuMyBtLT5tOiBBRVNfMTI4X0NDTV84X1NIQTI1NixzZWNwMjU2cjEsZWNkc2Ffc2VjcDM4NHIxX3NoYTM4NCIgXAotICAgICAgICAgIiRQX1NSViBjcnRfZmlsZT1kYXRhX2ZpbGVzL2VjZHNhX3NlY3AzODRyMS5jcnQga2V5X2ZpbGU9ZGF0YV9maWxlcy9lY2RzYV9zZWNwMzg0cjEua2V5IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0xMjgtQ0NNLTgtU0hBMjU2IHNpZ19hbGdzPWVjZHNhX3NlY3AzODRyMV9zaGEzODQgZ3JvdXBzPXNlY3AyNTZyMSB0bHMxM19rZXhfbW9kZXM9ZXBoZW1lcmFsIGNvb2tpZXM9MCB0aWNrZXRzPTAiIFwKLSAgICAgICAgICIkUF9DTEkgY2FfZmlsZT1kYXRhX2ZpbGVzL3Rlc3QtY2EyLmNydCBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMTI4LUNDTS04LVNIQTI1NiBzaWdfYWxncz1lY2RzYV9zZWNwMzg0cjFfc2hhMzg0IGdyb3Vwcz1zZWNwMjU2cjEiIFwKKyAgICAgICAgICIkUF9TUlYgY3J0X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwMzg0cjEuY3J0IGtleV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDM4NHIxLmtleSBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMTI4LUNDTS04LVNIQTI1NiBzaWdfYWxncz1lY2RzYV9zZWNwMzg0cjFfc2hhMzg0IGdyb3Vwcz1zZWNwMjU2cjEgdGxzMTNfa2V4X21vZGVzPWVwaGVtZXJhbCBjb29raWVzPTAgdGlja2V0cz0wIiBcCisgICAgICAgICAiJFBfQ0xJIGNhX2ZpbGU9JERBVEFfRklMRVNfUEFUSC90ZXN0LWNhMi5jcnQgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTEyOC1DQ00tOC1TSEEyNTYgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDM4NHIxX3NoYTM4NCBncm91cHM9c2VjcDI1NnIxIiBcCiAgICAgICAgICAwIFwKICAgICAgICAgIC1zICJQcm90b2NvbCBpcyBUTFN2MS4zIiBcCiAgICAgICAgICAtcyAic2VydmVyIGhlbGxvLCBjaG9zZW4gY2lwaGVyc3VpdGU6IFRMUzEtMy1BRVMtMTI4LUNDTS04LVNIQTI1NiAoIGlkPTQ4NjkgKSIgXApAQCAtMTE3MzIsOCArMTE3MzQsOCBAQAogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgTUJFRFRMU19TU0xfVExTMV8zX0NPTVBBVElCSUxJVFlfTU9ERQogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgUFNBX1dBTlRfQUxHX0VDREgKIHJ1bl90ZXN0ICJUTFMgMS4zIG0tPm06IEFFU18xMjhfQ0NNXzhfU0hBMjU2LHNlY3AyNTZyMSxlY2RzYV9zZWNwNTIxcjFfc2hhNTEyIiBcCi0gICAgICAgICAiJFBfU1JWIGNydF9maWxlPWRhdGFfZmlsZXMvZWNkc2Ffc2VjcDUyMXIxLmNydCBrZXlfZmlsZT1kYXRhX2ZpbGVzL2VjZHNhX3NlY3A1MjFyMS5rZXkgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTEyOC1DQ00tOC1TSEEyNTYgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDUyMXIxX3NoYTUxMiBncm91cHM9c2VjcDI1NnIxIHRsczEzX2tleF9tb2Rlcz1lcGhlbWVyYWwgY29va2llcz0wIHRpY2tldHM9MCIgXAotICAgICAgICAgIiRQX0NMSSBjYV9maWxlPWRhdGFfZmlsZXMvdGVzdC1jYTIuY3J0IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0xMjgtQ0NNLTgtU0hBMjU2IHNpZ19hbGdzPWVjZHNhX3NlY3A1MjFyMV9zaGE1MTIgZ3JvdXBzPXNlY3AyNTZyMSIgXAorICAgICAgICAgIiRQX1NSViBjcnRfZmlsZT0kREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3A1MjFyMS5jcnQga2V5X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwNTIxcjEua2V5IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0xMjgtQ0NNLTgtU0hBMjU2IHNpZ19hbGdzPWVjZHNhX3NlY3A1MjFyMV9zaGE1MTIgZ3JvdXBzPXNlY3AyNTZyMSB0bHMxM19rZXhfbW9kZXM9ZXBoZW1lcmFsIGNvb2tpZXM9MCB0aWNrZXRzPTAiIFwKKyAgICAgICAgICIkUF9DTEkgY2FfZmlsZT0kREFUQV9GSUxFU19QQVRIL3Rlc3QtY2EyLmNydCBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMTI4LUNDTS04LVNIQTI1NiBzaWdfYWxncz1lY2RzYV9zZWNwNTIxcjFfc2hhNTEyIGdyb3Vwcz1zZWNwMjU2cjEiIFwKICAgICAgICAgIDAgXAogICAgICAgICAgLXMgIlByb3RvY29sIGlzIFRMU3YxLjMiIFwKICAgICAgICAgIC1zICJzZXJ2ZXIgaGVsbG8sIGNob3NlbiBjaXBoZXJzdWl0ZTogVExTMS0zLUFFUy0xMjgtQ0NNLTgtU0hBMjU2ICggaWQ9NDg2OSApIiBcCkBAIC0xMTc2MCw4ICsxMTc2Miw4IEBACiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBNQkVEVExTX1g1MDlfUlNBU1NBX1BTU19TVVBQT1JUCiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBQU0FfV0FOVF9BTEdfRUNESAogcnVuX3Rlc3QgIlRMUyAxLjMgbS0+bTogQUVTXzEyOF9DQ01fOF9TSEEyNTYsc2VjcDI1NnIxLHJzYV9wc3NfcnNhZV9zaGEyNTYiIFwKLSAgICAgICAgICIkUF9TUlYgY3J0X2ZpbGU9ZGF0YV9maWxlcy9zZXJ2ZXIyLXNoYTI1Ni5jcnQga2V5X2ZpbGU9ZGF0YV9maWxlcy9zZXJ2ZXIyLmtleSBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMTI4LUNDTS04LVNIQTI1NiBzaWdfYWxncz1yc2FfcHNzX3JzYWVfc2hhMjU2IGdyb3Vwcz1zZWNwMjU2cjEgdGxzMTNfa2V4X21vZGVzPWVwaGVtZXJhbCBjb29raWVzPTAgdGlja2V0cz0wIiBcCi0gICAgICAgICAiJFBfQ0xJIGNhX2ZpbGU9ZGF0YV9maWxlcy90ZXN0LWNhX2NhdDEyLmNydCBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMTI4LUNDTS04LVNIQTI1NiBzaWdfYWxncz1yc2FfcHNzX3JzYWVfc2hhMjU2IGdyb3Vwcz1zZWNwMjU2cjEiIFwKKyAgICAgICAgICIkUF9TUlYgY3J0X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9zZXJ2ZXIyLXNoYTI1Ni5jcnQga2V5X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9zZXJ2ZXIyLmtleSBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMTI4LUNDTS04LVNIQTI1NiBzaWdfYWxncz1yc2FfcHNzX3JzYWVfc2hhMjU2IGdyb3Vwcz1zZWNwMjU2cjEgdGxzMTNfa2V4X21vZGVzPWVwaGVtZXJhbCBjb29raWVzPTAgdGlja2V0cz0wIiBcCisgICAgICAgICAiJFBfQ0xJIGNhX2ZpbGU9JERBVEFfRklMRVNfUEFUSC90ZXN0LWNhX2NhdDEyLmNydCBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMTI4LUNDTS04LVNIQTI1NiBzaWdfYWxncz1yc2FfcHNzX3JzYWVfc2hhMjU2IGdyb3Vwcz1zZWNwMjU2cjEiIFwKICAgICAgICAgIDAgXAogICAgICAgICAgLXMgIlByb3RvY29sIGlzIFRMU3YxLjMiIFwKICAgICAgICAgIC1zICJzZXJ2ZXIgaGVsbG8sIGNob3NlbiBjaXBoZXJzdWl0ZTogVExTMS0zLUFFUy0xMjgtQ0NNLTgtU0hBMjU2ICggaWQ9NDg2OSApIiBcCkBAIC0xMTc4Niw4ICsxMTc4OCw4IEBACiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBNQkVEVExTX1NTTF9UTFMxXzNfQ09NUEFUSUJJTElUWV9NT0RFCiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBQU0FfV0FOVF9BTEdfRUNESAogcnVuX3Rlc3QgIlRMUyAxLjMgbS0+bTogQUVTXzEyOF9DQ01fOF9TSEEyNTYsc2VjcDM4NHIxLGVjZHNhX3NlY3AyNTZyMV9zaGEyNTYiIFwKLSAgICAgICAgICIkUF9TUlYgY3J0X2ZpbGU9ZGF0YV9maWxlcy9lY2RzYV9zZWNwMjU2cjEuY3J0IGtleV9maWxlPWRhdGFfZmlsZXMvZWNkc2Ffc2VjcDI1NnIxLmtleSBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMTI4LUNDTS04LVNIQTI1NiBzaWdfYWxncz1lY2RzYV9zZWNwMjU2cjFfc2hhMjU2IGdyb3Vwcz1zZWNwMzg0cjEgdGxzMTNfa2V4X21vZGVzPWVwaGVtZXJhbCBjb29raWVzPTAgdGlja2V0cz0wIiBcCi0gICAgICAgICAiJFBfQ0xJIGNhX2ZpbGU9ZGF0YV9maWxlcy90ZXN0LWNhMi5jcnQgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTEyOC1DQ00tOC1TSEEyNTYgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDI1NnIxX3NoYTI1NiBncm91cHM9c2VjcDM4NHIxIiBcCisgICAgICAgICAiJFBfU1JWIGNydF9maWxlPSREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDI1NnIxLmNydCBrZXlfZmlsZT0kREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3AyNTZyMS5rZXkgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTEyOC1DQ00tOC1TSEEyNTYgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDI1NnIxX3NoYTI1NiBncm91cHM9c2VjcDM4NHIxIHRsczEzX2tleF9tb2Rlcz1lcGhlbWVyYWwgY29va2llcz0wIHRpY2tldHM9MCIgXAorICAgICAgICAgIiRQX0NMSSBjYV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvdGVzdC1jYTIuY3J0IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0xMjgtQ0NNLTgtU0hBMjU2IHNpZ19hbGdzPWVjZHNhX3NlY3AyNTZyMV9zaGEyNTYgZ3JvdXBzPXNlY3AzODRyMSIgXAogICAgICAgICAgMCBcCiAgICAgICAgICAtcyAiUHJvdG9jb2wgaXMgVExTdjEuMyIgXAogICAgICAgICAgLXMgInNlcnZlciBoZWxsbywgY2hvc2VuIGNpcGhlcnN1aXRlOiBUTFMxLTMtQUVTLTEyOC1DQ00tOC1TSEEyNTYgKCBpZD00ODY5ICkiIFwKQEAgLTExODEyLDggKzExODE0LDggQEAKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIE1CRURUTFNfU1NMX1RMUzFfM19DT01QQVRJQklMSVRZX01PREUKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIFBTQV9XQU5UX0FMR19FQ0RICiBydW5fdGVzdCAiVExTIDEuMyBtLT5tOiBBRVNfMTI4X0NDTV84X1NIQTI1NixzZWNwMzg0cjEsZWNkc2Ffc2VjcDM4NHIxX3NoYTM4NCIgXAotICAgICAgICAgIiRQX1NSViBjcnRfZmlsZT1kYXRhX2ZpbGVzL2VjZHNhX3NlY3AzODRyMS5jcnQga2V5X2ZpbGU9ZGF0YV9maWxlcy9lY2RzYV9zZWNwMzg0cjEua2V5IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0xMjgtQ0NNLTgtU0hBMjU2IHNpZ19hbGdzPWVjZHNhX3NlY3AzODRyMV9zaGEzODQgZ3JvdXBzPXNlY3AzODRyMSB0bHMxM19rZXhfbW9kZXM9ZXBoZW1lcmFsIGNvb2tpZXM9MCB0aWNrZXRzPTAiIFwKLSAgICAgICAgICIkUF9DTEkgY2FfZmlsZT1kYXRhX2ZpbGVzL3Rlc3QtY2EyLmNydCBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMTI4LUNDTS04LVNIQTI1NiBzaWdfYWxncz1lY2RzYV9zZWNwMzg0cjFfc2hhMzg0IGdyb3Vwcz1zZWNwMzg0cjEiIFwKKyAgICAgICAgICIkUF9TUlYgY3J0X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwMzg0cjEuY3J0IGtleV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDM4NHIxLmtleSBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMTI4LUNDTS04LVNIQTI1NiBzaWdfYWxncz1lY2RzYV9zZWNwMzg0cjFfc2hhMzg0IGdyb3Vwcz1zZWNwMzg0cjEgdGxzMTNfa2V4X21vZGVzPWVwaGVtZXJhbCBjb29raWVzPTAgdGlja2V0cz0wIiBcCisgICAgICAgICAiJFBfQ0xJIGNhX2ZpbGU9JERBVEFfRklMRVNfUEFUSC90ZXN0LWNhMi5jcnQgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTEyOC1DQ00tOC1TSEEyNTYgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDM4NHIxX3NoYTM4NCBncm91cHM9c2VjcDM4NHIxIiBcCiAgICAgICAgICAwIFwKICAgICAgICAgIC1zICJQcm90b2NvbCBpcyBUTFN2MS4zIiBcCiAgICAgICAgICAtcyAic2VydmVyIGhlbGxvLCBjaG9zZW4gY2lwaGVyc3VpdGU6IFRMUzEtMy1BRVMtMTI4LUNDTS04LVNIQTI1NiAoIGlkPTQ4NjkgKSIgXApAQCAtMTE4MzgsOCArMTE4NDAsOCBAQAogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgTUJFRFRMU19TU0xfVExTMV8zX0NPTVBBVElCSUxJVFlfTU9ERQogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgUFNBX1dBTlRfQUxHX0VDREgKIHJ1bl90ZXN0ICJUTFMgMS4zIG0tPm06IEFFU18xMjhfQ0NNXzhfU0hBMjU2LHNlY3AzODRyMSxlY2RzYV9zZWNwNTIxcjFfc2hhNTEyIiBcCi0gICAgICAgICAiJFBfU1JWIGNydF9maWxlPWRhdGFfZmlsZXMvZWNkc2Ffc2VjcDUyMXIxLmNydCBrZXlfZmlsZT1kYXRhX2ZpbGVzL2VjZHNhX3NlY3A1MjFyMS5rZXkgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTEyOC1DQ00tOC1TSEEyNTYgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDUyMXIxX3NoYTUxMiBncm91cHM9c2VjcDM4NHIxIHRsczEzX2tleF9tb2Rlcz1lcGhlbWVyYWwgY29va2llcz0wIHRpY2tldHM9MCIgXAotICAgICAgICAgIiRQX0NMSSBjYV9maWxlPWRhdGFfZmlsZXMvdGVzdC1jYTIuY3J0IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0xMjgtQ0NNLTgtU0hBMjU2IHNpZ19hbGdzPWVjZHNhX3NlY3A1MjFyMV9zaGE1MTIgZ3JvdXBzPXNlY3AzODRyMSIgXAorICAgICAgICAgIiRQX1NSViBjcnRfZmlsZT0kREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3A1MjFyMS5jcnQga2V5X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwNTIxcjEua2V5IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0xMjgtQ0NNLTgtU0hBMjU2IHNpZ19hbGdzPWVjZHNhX3NlY3A1MjFyMV9zaGE1MTIgZ3JvdXBzPXNlY3AzODRyMSB0bHMxM19rZXhfbW9kZXM9ZXBoZW1lcmFsIGNvb2tpZXM9MCB0aWNrZXRzPTAiIFwKKyAgICAgICAgICIkUF9DTEkgY2FfZmlsZT0kREFUQV9GSUxFU19QQVRIL3Rlc3QtY2EyLmNydCBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMTI4LUNDTS04LVNIQTI1NiBzaWdfYWxncz1lY2RzYV9zZWNwNTIxcjFfc2hhNTEyIGdyb3Vwcz1zZWNwMzg0cjEiIFwKICAgICAgICAgIDAgXAogICAgICAgICAgLXMgIlByb3RvY29sIGlzIFRMU3YxLjMiIFwKICAgICAgICAgIC1zICJzZXJ2ZXIgaGVsbG8sIGNob3NlbiBjaXBoZXJzdWl0ZTogVExTMS0zLUFFUy0xMjgtQ0NNLTgtU0hBMjU2ICggaWQ9NDg2OSApIiBcCkBAIC0xMTg2Niw4ICsxMTg2OCw4IEBACiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBNQkVEVExTX1g1MDlfUlNBU1NBX1BTU19TVVBQT1JUCiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBQU0FfV0FOVF9BTEdfRUNESAogcnVuX3Rlc3QgIlRMUyAxLjMgbS0+bTogQUVTXzEyOF9DQ01fOF9TSEEyNTYsc2VjcDM4NHIxLHJzYV9wc3NfcnNhZV9zaGEyNTYiIFwKLSAgICAgICAgICIkUF9TUlYgY3J0X2ZpbGU9ZGF0YV9maWxlcy9zZXJ2ZXIyLXNoYTI1Ni5jcnQga2V5X2ZpbGU9ZGF0YV9maWxlcy9zZXJ2ZXIyLmtleSBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMTI4LUNDTS04LVNIQTI1NiBzaWdfYWxncz1yc2FfcHNzX3JzYWVfc2hhMjU2IGdyb3Vwcz1zZWNwMzg0cjEgdGxzMTNfa2V4X21vZGVzPWVwaGVtZXJhbCBjb29raWVzPTAgdGlja2V0cz0wIiBcCi0gICAgICAgICAiJFBfQ0xJIGNhX2ZpbGU9ZGF0YV9maWxlcy90ZXN0LWNhX2NhdDEyLmNydCBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMTI4LUNDTS04LVNIQTI1NiBzaWdfYWxncz1yc2FfcHNzX3JzYWVfc2hhMjU2IGdyb3Vwcz1zZWNwMzg0cjEiIFwKKyAgICAgICAgICIkUF9TUlYgY3J0X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9zZXJ2ZXIyLXNoYTI1Ni5jcnQga2V5X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9zZXJ2ZXIyLmtleSBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMTI4LUNDTS04LVNIQTI1NiBzaWdfYWxncz1yc2FfcHNzX3JzYWVfc2hhMjU2IGdyb3Vwcz1zZWNwMzg0cjEgdGxzMTNfa2V4X21vZGVzPWVwaGVtZXJhbCBjb29raWVzPTAgdGlja2V0cz0wIiBcCisgICAgICAgICAiJFBfQ0xJIGNhX2ZpbGU9JERBVEFfRklMRVNfUEFUSC90ZXN0LWNhX2NhdDEyLmNydCBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMTI4LUNDTS04LVNIQTI1NiBzaWdfYWxncz1yc2FfcHNzX3JzYWVfc2hhMjU2IGdyb3Vwcz1zZWNwMzg0cjEiIFwKICAgICAgICAgIDAgXAogICAgICAgICAgLXMgIlByb3RvY29sIGlzIFRMU3YxLjMiIFwKICAgICAgICAgIC1zICJzZXJ2ZXIgaGVsbG8sIGNob3NlbiBjaXBoZXJzdWl0ZTogVExTMS0zLUFFUy0xMjgtQ0NNLTgtU0hBMjU2ICggaWQ9NDg2OSApIiBcCkBAIC0xMTg5Miw4ICsxMTg5NCw4IEBACiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBNQkVEVExTX1NTTF9UTFMxXzNfQ09NUEFUSUJJTElUWV9NT0RFCiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBQU0FfV0FOVF9BTEdfRUNESAogcnVuX3Rlc3QgIlRMUyAxLjMgbS0+bTogQUVTXzEyOF9DQ01fOF9TSEEyNTYsc2VjcDUyMXIxLGVjZHNhX3NlY3AyNTZyMV9zaGEyNTYiIFwKLSAgICAgICAgICIkUF9TUlYgY3J0X2ZpbGU9ZGF0YV9maWxlcy9lY2RzYV9zZWNwMjU2cjEuY3J0IGtleV9maWxlPWRhdGFfZmlsZXMvZWNkc2Ffc2VjcDI1NnIxLmtleSBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMTI4LUNDTS04LVNIQTI1NiBzaWdfYWxncz1lY2RzYV9zZWNwMjU2cjFfc2hhMjU2IGdyb3Vwcz1zZWNwNTIxcjEgdGxzMTNfa2V4X21vZGVzPWVwaGVtZXJhbCBjb29raWVzPTAgdGlja2V0cz0wIiBcCi0gICAgICAgICAiJFBfQ0xJIGNhX2ZpbGU9ZGF0YV9maWxlcy90ZXN0LWNhMi5jcnQgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTEyOC1DQ00tOC1TSEEyNTYgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDI1NnIxX3NoYTI1NiBncm91cHM9c2VjcDUyMXIxIiBcCisgICAgICAgICAiJFBfU1JWIGNydF9maWxlPSREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDI1NnIxLmNydCBrZXlfZmlsZT0kREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3AyNTZyMS5rZXkgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTEyOC1DQ00tOC1TSEEyNTYgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDI1NnIxX3NoYTI1NiBncm91cHM9c2VjcDUyMXIxIHRsczEzX2tleF9tb2Rlcz1lcGhlbWVyYWwgY29va2llcz0wIHRpY2tldHM9MCIgXAorICAgICAgICAgIiRQX0NMSSBjYV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvdGVzdC1jYTIuY3J0IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0xMjgtQ0NNLTgtU0hBMjU2IHNpZ19hbGdzPWVjZHNhX3NlY3AyNTZyMV9zaGEyNTYgZ3JvdXBzPXNlY3A1MjFyMSIgXAogICAgICAgICAgMCBcCiAgICAgICAgICAtcyAiUHJvdG9jb2wgaXMgVExTdjEuMyIgXAogICAgICAgICAgLXMgInNlcnZlciBoZWxsbywgY2hvc2VuIGNpcGhlcnN1aXRlOiBUTFMxLTMtQUVTLTEyOC1DQ00tOC1TSEEyNTYgKCBpZD00ODY5ICkiIFwKQEAgLTExOTE4LDggKzExOTIwLDggQEAKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIE1CRURUTFNfU1NMX1RMUzFfM19DT01QQVRJQklMSVRZX01PREUKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIFBTQV9XQU5UX0FMR19FQ0RICiBydW5fdGVzdCAiVExTIDEuMyBtLT5tOiBBRVNfMTI4X0NDTV84X1NIQTI1NixzZWNwNTIxcjEsZWNkc2Ffc2VjcDM4NHIxX3NoYTM4NCIgXAotICAgICAgICAgIiRQX1NSViBjcnRfZmlsZT1kYXRhX2ZpbGVzL2VjZHNhX3NlY3AzODRyMS5jcnQga2V5X2ZpbGU9ZGF0YV9maWxlcy9lY2RzYV9zZWNwMzg0cjEua2V5IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0xMjgtQ0NNLTgtU0hBMjU2IHNpZ19hbGdzPWVjZHNhX3NlY3AzODRyMV9zaGEzODQgZ3JvdXBzPXNlY3A1MjFyMSB0bHMxM19rZXhfbW9kZXM9ZXBoZW1lcmFsIGNvb2tpZXM9MCB0aWNrZXRzPTAiIFwKLSAgICAgICAgICIkUF9DTEkgY2FfZmlsZT1kYXRhX2ZpbGVzL3Rlc3QtY2EyLmNydCBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMTI4LUNDTS04LVNIQTI1NiBzaWdfYWxncz1lY2RzYV9zZWNwMzg0cjFfc2hhMzg0IGdyb3Vwcz1zZWNwNTIxcjEiIFwKKyAgICAgICAgICIkUF9TUlYgY3J0X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwMzg0cjEuY3J0IGtleV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDM4NHIxLmtleSBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMTI4LUNDTS04LVNIQTI1NiBzaWdfYWxncz1lY2RzYV9zZWNwMzg0cjFfc2hhMzg0IGdyb3Vwcz1zZWNwNTIxcjEgdGxzMTNfa2V4X21vZGVzPWVwaGVtZXJhbCBjb29raWVzPTAgdGlja2V0cz0wIiBcCisgICAgICAgICAiJFBfQ0xJIGNhX2ZpbGU9JERBVEFfRklMRVNfUEFUSC90ZXN0LWNhMi5jcnQgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTEyOC1DQ00tOC1TSEEyNTYgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDM4NHIxX3NoYTM4NCBncm91cHM9c2VjcDUyMXIxIiBcCiAgICAgICAgICAwIFwKICAgICAgICAgIC1zICJQcm90b2NvbCBpcyBUTFN2MS4zIiBcCiAgICAgICAgICAtcyAic2VydmVyIGhlbGxvLCBjaG9zZW4gY2lwaGVyc3VpdGU6IFRMUzEtMy1BRVMtMTI4LUNDTS04LVNIQTI1NiAoIGlkPTQ4NjkgKSIgXApAQCAtMTE5NDQsOCArMTE5NDYsOCBAQAogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgTUJFRFRMU19TU0xfVExTMV8zX0NPTVBBVElCSUxJVFlfTU9ERQogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgUFNBX1dBTlRfQUxHX0VDREgKIHJ1bl90ZXN0ICJUTFMgMS4zIG0tPm06IEFFU18xMjhfQ0NNXzhfU0hBMjU2LHNlY3A1MjFyMSxlY2RzYV9zZWNwNTIxcjFfc2hhNTEyIiBcCi0gICAgICAgICAiJFBfU1JWIGNydF9maWxlPWRhdGFfZmlsZXMvZWNkc2Ffc2VjcDUyMXIxLmNydCBrZXlfZmlsZT1kYXRhX2ZpbGVzL2VjZHNhX3NlY3A1MjFyMS5rZXkgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTEyOC1DQ00tOC1TSEEyNTYgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDUyMXIxX3NoYTUxMiBncm91cHM9c2VjcDUyMXIxIHRsczEzX2tleF9tb2Rlcz1lcGhlbWVyYWwgY29va2llcz0wIHRpY2tldHM9MCIgXAotICAgICAgICAgIiRQX0NMSSBjYV9maWxlPWRhdGFfZmlsZXMvdGVzdC1jYTIuY3J0IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0xMjgtQ0NNLTgtU0hBMjU2IHNpZ19hbGdzPWVjZHNhX3NlY3A1MjFyMV9zaGE1MTIgZ3JvdXBzPXNlY3A1MjFyMSIgXAorICAgICAgICAgIiRQX1NSViBjcnRfZmlsZT0kREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3A1MjFyMS5jcnQga2V5X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwNTIxcjEua2V5IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0xMjgtQ0NNLTgtU0hBMjU2IHNpZ19hbGdzPWVjZHNhX3NlY3A1MjFyMV9zaGE1MTIgZ3JvdXBzPXNlY3A1MjFyMSB0bHMxM19rZXhfbW9kZXM9ZXBoZW1lcmFsIGNvb2tpZXM9MCB0aWNrZXRzPTAiIFwKKyAgICAgICAgICIkUF9DTEkgY2FfZmlsZT0kREFUQV9GSUxFU19QQVRIL3Rlc3QtY2EyLmNydCBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMTI4LUNDTS04LVNIQTI1NiBzaWdfYWxncz1lY2RzYV9zZWNwNTIxcjFfc2hhNTEyIGdyb3Vwcz1zZWNwNTIxcjEiIFwKICAgICAgICAgIDAgXAogICAgICAgICAgLXMgIlByb3RvY29sIGlzIFRMU3YxLjMiIFwKICAgICAgICAgIC1zICJzZXJ2ZXIgaGVsbG8sIGNob3NlbiBjaXBoZXJzdWl0ZTogVExTMS0zLUFFUy0xMjgtQ0NNLTgtU0hBMjU2ICggaWQ9NDg2OSApIiBcCkBAIC0xMTk3Miw4ICsxMTk3NCw4IEBACiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBNQkVEVExTX1g1MDlfUlNBU1NBX1BTU19TVVBQT1JUCiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBQU0FfV0FOVF9BTEdfRUNESAogcnVuX3Rlc3QgIlRMUyAxLjMgbS0+bTogQUVTXzEyOF9DQ01fOF9TSEEyNTYsc2VjcDUyMXIxLHJzYV9wc3NfcnNhZV9zaGEyNTYiIFwKLSAgICAgICAgICIkUF9TUlYgY3J0X2ZpbGU9ZGF0YV9maWxlcy9zZXJ2ZXIyLXNoYTI1Ni5jcnQga2V5X2ZpbGU9ZGF0YV9maWxlcy9zZXJ2ZXIyLmtleSBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMTI4LUNDTS04LVNIQTI1NiBzaWdfYWxncz1yc2FfcHNzX3JzYWVfc2hhMjU2IGdyb3Vwcz1zZWNwNTIxcjEgdGxzMTNfa2V4X21vZGVzPWVwaGVtZXJhbCBjb29raWVzPTAgdGlja2V0cz0wIiBcCi0gICAgICAgICAiJFBfQ0xJIGNhX2ZpbGU9ZGF0YV9maWxlcy90ZXN0LWNhX2NhdDEyLmNydCBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMTI4LUNDTS04LVNIQTI1NiBzaWdfYWxncz1yc2FfcHNzX3JzYWVfc2hhMjU2IGdyb3Vwcz1zZWNwNTIxcjEiIFwKKyAgICAgICAgICIkUF9TUlYgY3J0X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9zZXJ2ZXIyLXNoYTI1Ni5jcnQga2V5X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9zZXJ2ZXIyLmtleSBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMTI4LUNDTS04LVNIQTI1NiBzaWdfYWxncz1yc2FfcHNzX3JzYWVfc2hhMjU2IGdyb3Vwcz1zZWNwNTIxcjEgdGxzMTNfa2V4X21vZGVzPWVwaGVtZXJhbCBjb29raWVzPTAgdGlja2V0cz0wIiBcCisgICAgICAgICAiJFBfQ0xJIGNhX2ZpbGU9JERBVEFfRklMRVNfUEFUSC90ZXN0LWNhX2NhdDEyLmNydCBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMTI4LUNDTS04LVNIQTI1NiBzaWdfYWxncz1yc2FfcHNzX3JzYWVfc2hhMjU2IGdyb3Vwcz1zZWNwNTIxcjEiIFwKICAgICAgICAgIDAgXAogICAgICAgICAgLXMgIlByb3RvY29sIGlzIFRMU3YxLjMiIFwKICAgICAgICAgIC1zICJzZXJ2ZXIgaGVsbG8sIGNob3NlbiBjaXBoZXJzdWl0ZTogVExTMS0zLUFFUy0xMjgtQ0NNLTgtU0hBMjU2ICggaWQ9NDg2OSApIiBcCkBAIC0xMTk5OCw4ICsxMjAwMCw4IEBACiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBNQkVEVExTX1NTTF9UTFMxXzNfQ09NUEFUSUJJTElUWV9NT0RFCiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBQU0FfV0FOVF9BTEdfRUNESAogcnVuX3Rlc3QgIlRMUyAxLjMgbS0+bTogQUVTXzEyOF9DQ01fOF9TSEEyNTYseDI1NTE5LGVjZHNhX3NlY3AyNTZyMV9zaGEyNTYiIFwKLSAgICAgICAgICIkUF9TUlYgY3J0X2ZpbGU9ZGF0YV9maWxlcy9lY2RzYV9zZWNwMjU2cjEuY3J0IGtleV9maWxlPWRhdGFfZmlsZXMvZWNkc2Ffc2VjcDI1NnIxLmtleSBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMTI4LUNDTS04LVNIQTI1NiBzaWdfYWxncz1lY2RzYV9zZWNwMjU2cjFfc2hhMjU2IGdyb3Vwcz14MjU1MTkgdGxzMTNfa2V4X21vZGVzPWVwaGVtZXJhbCBjb29raWVzPTAgdGlja2V0cz0wIiBcCi0gICAgICAgICAiJFBfQ0xJIGNhX2ZpbGU9ZGF0YV9maWxlcy90ZXN0LWNhMi5jcnQgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTEyOC1DQ00tOC1TSEEyNTYgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDI1NnIxX3NoYTI1NiBncm91cHM9eDI1NTE5IiBcCisgICAgICAgICAiJFBfU1JWIGNydF9maWxlPSREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDI1NnIxLmNydCBrZXlfZmlsZT0kREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3AyNTZyMS5rZXkgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTEyOC1DQ00tOC1TSEEyNTYgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDI1NnIxX3NoYTI1NiBncm91cHM9eDI1NTE5IHRsczEzX2tleF9tb2Rlcz1lcGhlbWVyYWwgY29va2llcz0wIHRpY2tldHM9MCIgXAorICAgICAgICAgIiRQX0NMSSBjYV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvdGVzdC1jYTIuY3J0IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0xMjgtQ0NNLTgtU0hBMjU2IHNpZ19hbGdzPWVjZHNhX3NlY3AyNTZyMV9zaGEyNTYgZ3JvdXBzPXgyNTUxOSIgXAogICAgICAgICAgMCBcCiAgICAgICAgICAtcyAiUHJvdG9jb2wgaXMgVExTdjEuMyIgXAogICAgICAgICAgLXMgInNlcnZlciBoZWxsbywgY2hvc2VuIGNpcGhlcnN1aXRlOiBUTFMxLTMtQUVTLTEyOC1DQ00tOC1TSEEyNTYgKCBpZD00ODY5ICkiIFwKQEAgLTEyMDI0LDggKzEyMDI2LDggQEAKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIE1CRURUTFNfU1NMX1RMUzFfM19DT01QQVRJQklMSVRZX01PREUKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIFBTQV9XQU5UX0FMR19FQ0RICiBydW5fdGVzdCAiVExTIDEuMyBtLT5tOiBBRVNfMTI4X0NDTV84X1NIQTI1Nix4MjU1MTksZWNkc2Ffc2VjcDM4NHIxX3NoYTM4NCIgXAotICAgICAgICAgIiRQX1NSViBjcnRfZmlsZT1kYXRhX2ZpbGVzL2VjZHNhX3NlY3AzODRyMS5jcnQga2V5X2ZpbGU9ZGF0YV9maWxlcy9lY2RzYV9zZWNwMzg0cjEua2V5IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0xMjgtQ0NNLTgtU0hBMjU2IHNpZ19hbGdzPWVjZHNhX3NlY3AzODRyMV9zaGEzODQgZ3JvdXBzPXgyNTUxOSB0bHMxM19rZXhfbW9kZXM9ZXBoZW1lcmFsIGNvb2tpZXM9MCB0aWNrZXRzPTAiIFwKLSAgICAgICAgICIkUF9DTEkgY2FfZmlsZT1kYXRhX2ZpbGVzL3Rlc3QtY2EyLmNydCBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMTI4LUNDTS04LVNIQTI1NiBzaWdfYWxncz1lY2RzYV9zZWNwMzg0cjFfc2hhMzg0IGdyb3Vwcz14MjU1MTkiIFwKKyAgICAgICAgICIkUF9TUlYgY3J0X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwMzg0cjEuY3J0IGtleV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDM4NHIxLmtleSBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMTI4LUNDTS04LVNIQTI1NiBzaWdfYWxncz1lY2RzYV9zZWNwMzg0cjFfc2hhMzg0IGdyb3Vwcz14MjU1MTkgdGxzMTNfa2V4X21vZGVzPWVwaGVtZXJhbCBjb29raWVzPTAgdGlja2V0cz0wIiBcCisgICAgICAgICAiJFBfQ0xJIGNhX2ZpbGU9JERBVEFfRklMRVNfUEFUSC90ZXN0LWNhMi5jcnQgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTEyOC1DQ00tOC1TSEEyNTYgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDM4NHIxX3NoYTM4NCBncm91cHM9eDI1NTE5IiBcCiAgICAgICAgICAwIFwKICAgICAgICAgIC1zICJQcm90b2NvbCBpcyBUTFN2MS4zIiBcCiAgICAgICAgICAtcyAic2VydmVyIGhlbGxvLCBjaG9zZW4gY2lwaGVyc3VpdGU6IFRMUzEtMy1BRVMtMTI4LUNDTS04LVNIQTI1NiAoIGlkPTQ4NjkgKSIgXApAQCAtMTIwNTAsOCArMTIwNTIsOCBAQAogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgTUJFRFRMU19TU0xfVExTMV8zX0NPTVBBVElCSUxJVFlfTU9ERQogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgUFNBX1dBTlRfQUxHX0VDREgKIHJ1bl90ZXN0ICJUTFMgMS4zIG0tPm06IEFFU18xMjhfQ0NNXzhfU0hBMjU2LHgyNTUxOSxlY2RzYV9zZWNwNTIxcjFfc2hhNTEyIiBcCi0gICAgICAgICAiJFBfU1JWIGNydF9maWxlPWRhdGFfZmlsZXMvZWNkc2Ffc2VjcDUyMXIxLmNydCBrZXlfZmlsZT1kYXRhX2ZpbGVzL2VjZHNhX3NlY3A1MjFyMS5rZXkgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTEyOC1DQ00tOC1TSEEyNTYgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDUyMXIxX3NoYTUxMiBncm91cHM9eDI1NTE5IHRsczEzX2tleF9tb2Rlcz1lcGhlbWVyYWwgY29va2llcz0wIHRpY2tldHM9MCIgXAotICAgICAgICAgIiRQX0NMSSBjYV9maWxlPWRhdGFfZmlsZXMvdGVzdC1jYTIuY3J0IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0xMjgtQ0NNLTgtU0hBMjU2IHNpZ19hbGdzPWVjZHNhX3NlY3A1MjFyMV9zaGE1MTIgZ3JvdXBzPXgyNTUxOSIgXAorICAgICAgICAgIiRQX1NSViBjcnRfZmlsZT0kREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3A1MjFyMS5jcnQga2V5X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwNTIxcjEua2V5IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0xMjgtQ0NNLTgtU0hBMjU2IHNpZ19hbGdzPWVjZHNhX3NlY3A1MjFyMV9zaGE1MTIgZ3JvdXBzPXgyNTUxOSB0bHMxM19rZXhfbW9kZXM9ZXBoZW1lcmFsIGNvb2tpZXM9MCB0aWNrZXRzPTAiIFwKKyAgICAgICAgICIkUF9DTEkgY2FfZmlsZT0kREFUQV9GSUxFU19QQVRIL3Rlc3QtY2EyLmNydCBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMTI4LUNDTS04LVNIQTI1NiBzaWdfYWxncz1lY2RzYV9zZWNwNTIxcjFfc2hhNTEyIGdyb3Vwcz14MjU1MTkiIFwKICAgICAgICAgIDAgXAogICAgICAgICAgLXMgIlByb3RvY29sIGlzIFRMU3YxLjMiIFwKICAgICAgICAgIC1zICJzZXJ2ZXIgaGVsbG8sIGNob3NlbiBjaXBoZXJzdWl0ZTogVExTMS0zLUFFUy0xMjgtQ0NNLTgtU0hBMjU2ICggaWQ9NDg2OSApIiBcCkBAIC0xMjA3OCw4ICsxMjA4MCw4IEBACiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBNQkVEVExTX1g1MDlfUlNBU1NBX1BTU19TVVBQT1JUCiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBQU0FfV0FOVF9BTEdfRUNESAogcnVuX3Rlc3QgIlRMUyAxLjMgbS0+bTogQUVTXzEyOF9DQ01fOF9TSEEyNTYseDI1NTE5LHJzYV9wc3NfcnNhZV9zaGEyNTYiIFwKLSAgICAgICAgICIkUF9TUlYgY3J0X2ZpbGU9ZGF0YV9maWxlcy9zZXJ2ZXIyLXNoYTI1Ni5jcnQga2V5X2ZpbGU9ZGF0YV9maWxlcy9zZXJ2ZXIyLmtleSBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMTI4LUNDTS04LVNIQTI1NiBzaWdfYWxncz1yc2FfcHNzX3JzYWVfc2hhMjU2IGdyb3Vwcz14MjU1MTkgdGxzMTNfa2V4X21vZGVzPWVwaGVtZXJhbCBjb29raWVzPTAgdGlja2V0cz0wIiBcCi0gICAgICAgICAiJFBfQ0xJIGNhX2ZpbGU9ZGF0YV9maWxlcy90ZXN0LWNhX2NhdDEyLmNydCBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMTI4LUNDTS04LVNIQTI1NiBzaWdfYWxncz1yc2FfcHNzX3JzYWVfc2hhMjU2IGdyb3Vwcz14MjU1MTkiIFwKKyAgICAgICAgICIkUF9TUlYgY3J0X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9zZXJ2ZXIyLXNoYTI1Ni5jcnQga2V5X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9zZXJ2ZXIyLmtleSBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMTI4LUNDTS04LVNIQTI1NiBzaWdfYWxncz1yc2FfcHNzX3JzYWVfc2hhMjU2IGdyb3Vwcz14MjU1MTkgdGxzMTNfa2V4X21vZGVzPWVwaGVtZXJhbCBjb29raWVzPTAgdGlja2V0cz0wIiBcCisgICAgICAgICAiJFBfQ0xJIGNhX2ZpbGU9JERBVEFfRklMRVNfUEFUSC90ZXN0LWNhX2NhdDEyLmNydCBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMTI4LUNDTS04LVNIQTI1NiBzaWdfYWxncz1yc2FfcHNzX3JzYWVfc2hhMjU2IGdyb3Vwcz14MjU1MTkiIFwKICAgICAgICAgIDAgXAogICAgICAgICAgLXMgIlByb3RvY29sIGlzIFRMU3YxLjMiIFwKICAgICAgICAgIC1zICJzZXJ2ZXIgaGVsbG8sIGNob3NlbiBjaXBoZXJzdWl0ZTogVExTMS0zLUFFUy0xMjgtQ0NNLTgtU0hBMjU2ICggaWQ9NDg2OSApIiBcCkBAIC0xMjEwNCw4ICsxMjEwNiw4IEBACiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBNQkVEVExTX1NTTF9UTFMxXzNfQ09NUEFUSUJJTElUWV9NT0RFCiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBQU0FfV0FOVF9BTEdfRUNESAogcnVuX3Rlc3QgIlRMUyAxLjMgbS0+bTogQUVTXzEyOF9DQ01fOF9TSEEyNTYseDQ0OCxlY2RzYV9zZWNwMjU2cjFfc2hhMjU2IiBcCi0gICAgICAgICAiJFBfU1JWIGNydF9maWxlPWRhdGFfZmlsZXMvZWNkc2Ffc2VjcDI1NnIxLmNydCBrZXlfZmlsZT1kYXRhX2ZpbGVzL2VjZHNhX3NlY3AyNTZyMS5rZXkgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTEyOC1DQ00tOC1TSEEyNTYgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDI1NnIxX3NoYTI1NiBncm91cHM9eDQ0OCB0bHMxM19rZXhfbW9kZXM9ZXBoZW1lcmFsIGNvb2tpZXM9MCB0aWNrZXRzPTAiIFwKLSAgICAgICAgICIkUF9DTEkgY2FfZmlsZT1kYXRhX2ZpbGVzL3Rlc3QtY2EyLmNydCBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMTI4LUNDTS04LVNIQTI1NiBzaWdfYWxncz1lY2RzYV9zZWNwMjU2cjFfc2hhMjU2IGdyb3Vwcz14NDQ4IiBcCisgICAgICAgICAiJFBfU1JWIGNydF9maWxlPSREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDI1NnIxLmNydCBrZXlfZmlsZT0kREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3AyNTZyMS5rZXkgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTEyOC1DQ00tOC1TSEEyNTYgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDI1NnIxX3NoYTI1NiBncm91cHM9eDQ0OCB0bHMxM19rZXhfbW9kZXM9ZXBoZW1lcmFsIGNvb2tpZXM9MCB0aWNrZXRzPTAiIFwKKyAgICAgICAgICIkUF9DTEkgY2FfZmlsZT0kREFUQV9GSUxFU19QQVRIL3Rlc3QtY2EyLmNydCBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMTI4LUNDTS04LVNIQTI1NiBzaWdfYWxncz1lY2RzYV9zZWNwMjU2cjFfc2hhMjU2IGdyb3Vwcz14NDQ4IiBcCiAgICAgICAgICAwIFwKICAgICAgICAgIC1zICJQcm90b2NvbCBpcyBUTFN2MS4zIiBcCiAgICAgICAgICAtcyAic2VydmVyIGhlbGxvLCBjaG9zZW4gY2lwaGVyc3VpdGU6IFRMUzEtMy1BRVMtMTI4LUNDTS04LVNIQTI1NiAoIGlkPTQ4NjkgKSIgXApAQCAtMTIxMzAsOCArMTIxMzIsOCBAQAogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgTUJFRFRMU19TU0xfVExTMV8zX0NPTVBBVElCSUxJVFlfTU9ERQogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgUFNBX1dBTlRfQUxHX0VDREgKIHJ1bl90ZXN0ICJUTFMgMS4zIG0tPm06IEFFU18xMjhfQ0NNXzhfU0hBMjU2LHg0NDgsZWNkc2Ffc2VjcDM4NHIxX3NoYTM4NCIgXAotICAgICAgICAgIiRQX1NSViBjcnRfZmlsZT1kYXRhX2ZpbGVzL2VjZHNhX3NlY3AzODRyMS5jcnQga2V5X2ZpbGU9ZGF0YV9maWxlcy9lY2RzYV9zZWNwMzg0cjEua2V5IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0xMjgtQ0NNLTgtU0hBMjU2IHNpZ19hbGdzPWVjZHNhX3NlY3AzODRyMV9zaGEzODQgZ3JvdXBzPXg0NDggdGxzMTNfa2V4X21vZGVzPWVwaGVtZXJhbCBjb29raWVzPTAgdGlja2V0cz0wIiBcCi0gICAgICAgICAiJFBfQ0xJIGNhX2ZpbGU9ZGF0YV9maWxlcy90ZXN0LWNhMi5jcnQgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTEyOC1DQ00tOC1TSEEyNTYgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDM4NHIxX3NoYTM4NCBncm91cHM9eDQ0OCIgXAorICAgICAgICAgIiRQX1NSViBjcnRfZmlsZT0kREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3AzODRyMS5jcnQga2V5X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwMzg0cjEua2V5IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0xMjgtQ0NNLTgtU0hBMjU2IHNpZ19hbGdzPWVjZHNhX3NlY3AzODRyMV9zaGEzODQgZ3JvdXBzPXg0NDggdGxzMTNfa2V4X21vZGVzPWVwaGVtZXJhbCBjb29raWVzPTAgdGlja2V0cz0wIiBcCisgICAgICAgICAiJFBfQ0xJIGNhX2ZpbGU9JERBVEFfRklMRVNfUEFUSC90ZXN0LWNhMi5jcnQgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTEyOC1DQ00tOC1TSEEyNTYgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDM4NHIxX3NoYTM4NCBncm91cHM9eDQ0OCIgXAogICAgICAgICAgMCBcCiAgICAgICAgICAtcyAiUHJvdG9jb2wgaXMgVExTdjEuMyIgXAogICAgICAgICAgLXMgInNlcnZlciBoZWxsbywgY2hvc2VuIGNpcGhlcnN1aXRlOiBUTFMxLTMtQUVTLTEyOC1DQ00tOC1TSEEyNTYgKCBpZD00ODY5ICkiIFwKQEAgLTEyMTU2LDggKzEyMTU4LDggQEAKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIE1CRURUTFNfU1NMX1RMUzFfM19DT01QQVRJQklMSVRZX01PREUKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIFBTQV9XQU5UX0FMR19FQ0RICiBydW5fdGVzdCAiVExTIDEuMyBtLT5tOiBBRVNfMTI4X0NDTV84X1NIQTI1Nix4NDQ4LGVjZHNhX3NlY3A1MjFyMV9zaGE1MTIiIFwKLSAgICAgICAgICIkUF9TUlYgY3J0X2ZpbGU9ZGF0YV9maWxlcy9lY2RzYV9zZWNwNTIxcjEuY3J0IGtleV9maWxlPWRhdGFfZmlsZXMvZWNkc2Ffc2VjcDUyMXIxLmtleSBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMTI4LUNDTS04LVNIQTI1NiBzaWdfYWxncz1lY2RzYV9zZWNwNTIxcjFfc2hhNTEyIGdyb3Vwcz14NDQ4IHRsczEzX2tleF9tb2Rlcz1lcGhlbWVyYWwgY29va2llcz0wIHRpY2tldHM9MCIgXAotICAgICAgICAgIiRQX0NMSSBjYV9maWxlPWRhdGFfZmlsZXMvdGVzdC1jYTIuY3J0IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0xMjgtQ0NNLTgtU0hBMjU2IHNpZ19hbGdzPWVjZHNhX3NlY3A1MjFyMV9zaGE1MTIgZ3JvdXBzPXg0NDgiIFwKKyAgICAgICAgICIkUF9TUlYgY3J0X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwNTIxcjEuY3J0IGtleV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDUyMXIxLmtleSBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMTI4LUNDTS04LVNIQTI1NiBzaWdfYWxncz1lY2RzYV9zZWNwNTIxcjFfc2hhNTEyIGdyb3Vwcz14NDQ4IHRsczEzX2tleF9tb2Rlcz1lcGhlbWVyYWwgY29va2llcz0wIHRpY2tldHM9MCIgXAorICAgICAgICAgIiRQX0NMSSBjYV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvdGVzdC1jYTIuY3J0IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0xMjgtQ0NNLTgtU0hBMjU2IHNpZ19hbGdzPWVjZHNhX3NlY3A1MjFyMV9zaGE1MTIgZ3JvdXBzPXg0NDgiIFwKICAgICAgICAgIDAgXAogICAgICAgICAgLXMgIlByb3RvY29sIGlzIFRMU3YxLjMiIFwKICAgICAgICAgIC1zICJzZXJ2ZXIgaGVsbG8sIGNob3NlbiBjaXBoZXJzdWl0ZTogVExTMS0zLUFFUy0xMjgtQ0NNLTgtU0hBMjU2ICggaWQ9NDg2OSApIiBcCkBAIC0xMjE4NCw4ICsxMjE4Niw4IEBACiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBNQkVEVExTX1g1MDlfUlNBU1NBX1BTU19TVVBQT1JUCiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBQU0FfV0FOVF9BTEdfRUNESAogcnVuX3Rlc3QgIlRMUyAxLjMgbS0+bTogQUVTXzEyOF9DQ01fOF9TSEEyNTYseDQ0OCxyc2FfcHNzX3JzYWVfc2hhMjU2IiBcCi0gICAgICAgICAiJFBfU1JWIGNydF9maWxlPWRhdGFfZmlsZXMvc2VydmVyMi1zaGEyNTYuY3J0IGtleV9maWxlPWRhdGFfZmlsZXMvc2VydmVyMi5rZXkgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTEyOC1DQ00tOC1TSEEyNTYgc2lnX2FsZ3M9cnNhX3Bzc19yc2FlX3NoYTI1NiBncm91cHM9eDQ0OCB0bHMxM19rZXhfbW9kZXM9ZXBoZW1lcmFsIGNvb2tpZXM9MCB0aWNrZXRzPTAiIFwKLSAgICAgICAgICIkUF9DTEkgY2FfZmlsZT1kYXRhX2ZpbGVzL3Rlc3QtY2FfY2F0MTIuY3J0IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0xMjgtQ0NNLTgtU0hBMjU2IHNpZ19hbGdzPXJzYV9wc3NfcnNhZV9zaGEyNTYgZ3JvdXBzPXg0NDgiIFwKKyAgICAgICAgICIkUF9TUlYgY3J0X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9zZXJ2ZXIyLXNoYTI1Ni5jcnQga2V5X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9zZXJ2ZXIyLmtleSBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMTI4LUNDTS04LVNIQTI1NiBzaWdfYWxncz1yc2FfcHNzX3JzYWVfc2hhMjU2IGdyb3Vwcz14NDQ4IHRsczEzX2tleF9tb2Rlcz1lcGhlbWVyYWwgY29va2llcz0wIHRpY2tldHM9MCIgXAorICAgICAgICAgIiRQX0NMSSBjYV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvdGVzdC1jYV9jYXQxMi5jcnQgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTEyOC1DQ00tOC1TSEEyNTYgc2lnX2FsZ3M9cnNhX3Bzc19yc2FlX3NoYTI1NiBncm91cHM9eDQ0OCIgXAogICAgICAgICAgMCBcCiAgICAgICAgICAtcyAiUHJvdG9jb2wgaXMgVExTdjEuMyIgXAogICAgICAgICAgLXMgInNlcnZlciBoZWxsbywgY2hvc2VuIGNpcGhlcnN1aXRlOiBUTFMxLTMtQUVTLTEyOC1DQ00tOC1TSEEyNTYgKCBpZD00ODY5ICkiIFwKQEAgLTEyMjEyLDggKzEyMjE0LDggQEAKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIFBTQV9XQU5UX0FMR19GRkRICiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBQU0FfV0FOVF9ESF9SRkM3OTE5XzIwNDgKIHJ1bl90ZXN0ICJUTFMgMS4zIG0tPm06IEFFU18xMjhfQ0NNXzhfU0hBMjU2LGZmZGhlMjA0OCxlY2RzYV9zZWNwMjU2cjFfc2hhMjU2IiBcCi0gICAgICAgICAiJFBfU1JWIGNydF9maWxlPWRhdGFfZmlsZXMvZWNkc2Ffc2VjcDI1NnIxLmNydCBrZXlfZmlsZT1kYXRhX2ZpbGVzL2VjZHNhX3NlY3AyNTZyMS5rZXkgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTEyOC1DQ00tOC1TSEEyNTYgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDI1NnIxX3NoYTI1NiBncm91cHM9ZmZkaGUyMDQ4IHRsczEzX2tleF9tb2Rlcz1lcGhlbWVyYWwgY29va2llcz0wIHRpY2tldHM9MCIgXAotICAgICAgICAgIiRQX0NMSSBjYV9maWxlPWRhdGFfZmlsZXMvdGVzdC1jYTIuY3J0IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0xMjgtQ0NNLTgtU0hBMjU2IHNpZ19hbGdzPWVjZHNhX3NlY3AyNTZyMV9zaGEyNTYgZ3JvdXBzPWZmZGhlMjA0OCIgXAorICAgICAgICAgIiRQX1NSViBjcnRfZmlsZT0kREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3AyNTZyMS5jcnQga2V5X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwMjU2cjEua2V5IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0xMjgtQ0NNLTgtU0hBMjU2IHNpZ19hbGdzPWVjZHNhX3NlY3AyNTZyMV9zaGEyNTYgZ3JvdXBzPWZmZGhlMjA0OCB0bHMxM19rZXhfbW9kZXM9ZXBoZW1lcmFsIGNvb2tpZXM9MCB0aWNrZXRzPTAiIFwKKyAgICAgICAgICIkUF9DTEkgY2FfZmlsZT0kREFUQV9GSUxFU19QQVRIL3Rlc3QtY2EyLmNydCBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMTI4LUNDTS04LVNIQTI1NiBzaWdfYWxncz1lY2RzYV9zZWNwMjU2cjFfc2hhMjU2IGdyb3Vwcz1mZmRoZTIwNDgiIFwKICAgICAgICAgIDAgXAogICAgICAgICAgLXMgIlByb3RvY29sIGlzIFRMU3YxLjMiIFwKICAgICAgICAgIC1zICJzZXJ2ZXIgaGVsbG8sIGNob3NlbiBjaXBoZXJzdWl0ZTogVExTMS0zLUFFUy0xMjgtQ0NNLTgtU0hBMjU2ICggaWQ9NDg2OSApIiBcCkBAIC0xMjI0MCw4ICsxMjI0Miw4IEBACiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBQU0FfV0FOVF9BTEdfRkZESAogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgUFNBX1dBTlRfREhfUkZDNzkxOV8yMDQ4CiBydW5fdGVzdCAiVExTIDEuMyBtLT5tOiBBRVNfMTI4X0NDTV84X1NIQTI1NixmZmRoZTIwNDgsZWNkc2Ffc2VjcDM4NHIxX3NoYTM4NCIgXAotICAgICAgICAgIiRQX1NSViBjcnRfZmlsZT1kYXRhX2ZpbGVzL2VjZHNhX3NlY3AzODRyMS5jcnQga2V5X2ZpbGU9ZGF0YV9maWxlcy9lY2RzYV9zZWNwMzg0cjEua2V5IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0xMjgtQ0NNLTgtU0hBMjU2IHNpZ19hbGdzPWVjZHNhX3NlY3AzODRyMV9zaGEzODQgZ3JvdXBzPWZmZGhlMjA0OCB0bHMxM19rZXhfbW9kZXM9ZXBoZW1lcmFsIGNvb2tpZXM9MCB0aWNrZXRzPTAiIFwKLSAgICAgICAgICIkUF9DTEkgY2FfZmlsZT1kYXRhX2ZpbGVzL3Rlc3QtY2EyLmNydCBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMTI4LUNDTS04LVNIQTI1NiBzaWdfYWxncz1lY2RzYV9zZWNwMzg0cjFfc2hhMzg0IGdyb3Vwcz1mZmRoZTIwNDgiIFwKKyAgICAgICAgICIkUF9TUlYgY3J0X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwMzg0cjEuY3J0IGtleV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDM4NHIxLmtleSBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMTI4LUNDTS04LVNIQTI1NiBzaWdfYWxncz1lY2RzYV9zZWNwMzg0cjFfc2hhMzg0IGdyb3Vwcz1mZmRoZTIwNDggdGxzMTNfa2V4X21vZGVzPWVwaGVtZXJhbCBjb29raWVzPTAgdGlja2V0cz0wIiBcCisgICAgICAgICAiJFBfQ0xJIGNhX2ZpbGU9JERBVEFfRklMRVNfUEFUSC90ZXN0LWNhMi5jcnQgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTEyOC1DQ00tOC1TSEEyNTYgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDM4NHIxX3NoYTM4NCBncm91cHM9ZmZkaGUyMDQ4IiBcCiAgICAgICAgICAwIFwKICAgICAgICAgIC1zICJQcm90b2NvbCBpcyBUTFN2MS4zIiBcCiAgICAgICAgICAtcyAic2VydmVyIGhlbGxvLCBjaG9zZW4gY2lwaGVyc3VpdGU6IFRMUzEtMy1BRVMtMTI4LUNDTS04LVNIQTI1NiAoIGlkPTQ4NjkgKSIgXApAQCAtMTIyNjgsOCArMTIyNzAsOCBAQAogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgUFNBX1dBTlRfQUxHX0ZGREgKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIFBTQV9XQU5UX0RIX1JGQzc5MTlfMjA0OAogcnVuX3Rlc3QgIlRMUyAxLjMgbS0+bTogQUVTXzEyOF9DQ01fOF9TSEEyNTYsZmZkaGUyMDQ4LGVjZHNhX3NlY3A1MjFyMV9zaGE1MTIiIFwKLSAgICAgICAgICIkUF9TUlYgY3J0X2ZpbGU9ZGF0YV9maWxlcy9lY2RzYV9zZWNwNTIxcjEuY3J0IGtleV9maWxlPWRhdGFfZmlsZXMvZWNkc2Ffc2VjcDUyMXIxLmtleSBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMTI4LUNDTS04LVNIQTI1NiBzaWdfYWxncz1lY2RzYV9zZWNwNTIxcjFfc2hhNTEyIGdyb3Vwcz1mZmRoZTIwNDggdGxzMTNfa2V4X21vZGVzPWVwaGVtZXJhbCBjb29raWVzPTAgdGlja2V0cz0wIiBcCi0gICAgICAgICAiJFBfQ0xJIGNhX2ZpbGU9ZGF0YV9maWxlcy90ZXN0LWNhMi5jcnQgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTEyOC1DQ00tOC1TSEEyNTYgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDUyMXIxX3NoYTUxMiBncm91cHM9ZmZkaGUyMDQ4IiBcCisgICAgICAgICAiJFBfU1JWIGNydF9maWxlPSREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDUyMXIxLmNydCBrZXlfZmlsZT0kREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3A1MjFyMS5rZXkgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTEyOC1DQ00tOC1TSEEyNTYgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDUyMXIxX3NoYTUxMiBncm91cHM9ZmZkaGUyMDQ4IHRsczEzX2tleF9tb2Rlcz1lcGhlbWVyYWwgY29va2llcz0wIHRpY2tldHM9MCIgXAorICAgICAgICAgIiRQX0NMSSBjYV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvdGVzdC1jYTIuY3J0IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0xMjgtQ0NNLTgtU0hBMjU2IHNpZ19hbGdzPWVjZHNhX3NlY3A1MjFyMV9zaGE1MTIgZ3JvdXBzPWZmZGhlMjA0OCIgXAogICAgICAgICAgMCBcCiAgICAgICAgICAtcyAiUHJvdG9jb2wgaXMgVExTdjEuMyIgXAogICAgICAgICAgLXMgInNlcnZlciBoZWxsbywgY2hvc2VuIGNpcGhlcnN1aXRlOiBUTFMxLTMtQUVTLTEyOC1DQ00tOC1TSEEyNTYgKCBpZD00ODY5ICkiIFwKQEAgLTEyMjk4LDggKzEyMzAwLDggQEAKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIFBTQV9XQU5UX0FMR19GRkRICiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBQU0FfV0FOVF9ESF9SRkM3OTE5XzIwNDgKIHJ1bl90ZXN0ICJUTFMgMS4zIG0tPm06IEFFU18xMjhfQ0NNXzhfU0hBMjU2LGZmZGhlMjA0OCxyc2FfcHNzX3JzYWVfc2hhMjU2IiBcCi0gICAgICAgICAiJFBfU1JWIGNydF9maWxlPWRhdGFfZmlsZXMvc2VydmVyMi1zaGEyNTYuY3J0IGtleV9maWxlPWRhdGFfZmlsZXMvc2VydmVyMi5rZXkgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTEyOC1DQ00tOC1TSEEyNTYgc2lnX2FsZ3M9cnNhX3Bzc19yc2FlX3NoYTI1NiBncm91cHM9ZmZkaGUyMDQ4IHRsczEzX2tleF9tb2Rlcz1lcGhlbWVyYWwgY29va2llcz0wIHRpY2tldHM9MCIgXAotICAgICAgICAgIiRQX0NMSSBjYV9maWxlPWRhdGFfZmlsZXMvdGVzdC1jYV9jYXQxMi5jcnQgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTEyOC1DQ00tOC1TSEEyNTYgc2lnX2FsZ3M9cnNhX3Bzc19yc2FlX3NoYTI1NiBncm91cHM9ZmZkaGUyMDQ4IiBcCisgICAgICAgICAiJFBfU1JWIGNydF9maWxlPSREQVRBX0ZJTEVTX1BBVEgvc2VydmVyMi1zaGEyNTYuY3J0IGtleV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvc2VydmVyMi5rZXkgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTEyOC1DQ00tOC1TSEEyNTYgc2lnX2FsZ3M9cnNhX3Bzc19yc2FlX3NoYTI1NiBncm91cHM9ZmZkaGUyMDQ4IHRsczEzX2tleF9tb2Rlcz1lcGhlbWVyYWwgY29va2llcz0wIHRpY2tldHM9MCIgXAorICAgICAgICAgIiRQX0NMSSBjYV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvdGVzdC1jYV9jYXQxMi5jcnQgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTEyOC1DQ00tOC1TSEEyNTYgc2lnX2FsZ3M9cnNhX3Bzc19yc2FlX3NoYTI1NiBncm91cHM9ZmZkaGUyMDQ4IiBcCiAgICAgICAgICAwIFwKICAgICAgICAgIC1zICJQcm90b2NvbCBpcyBUTFN2MS4zIiBcCiAgICAgICAgICAtcyAic2VydmVyIGhlbGxvLCBjaG9zZW4gY2lwaGVyc3VpdGU6IFRMUzEtMy1BRVMtMTI4LUNDTS04LVNIQTI1NiAoIGlkPTQ4NjkgKSIgXApAQCAtMTIzMjAsOCArMTIzMjIsOCBAQAogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgUFNBX1dBTlRfQUxHX0VDREgKIHJlcXVpcmVzX29wZW5zc2xfdGxzMV8zCiBydW5fdGVzdCAiVExTIDEuMyBPLT5tOiBIUlIgc2VjcDI1NnIxIC0+IHNlY3AzODRyMSIgXAotICAgICAgICAgIiRQX1NSViBjcnRfZmlsZT1kYXRhX2ZpbGVzL2VjZHNhX3NlY3AyNTZyMS5jcnQga2V5X2ZpbGU9ZGF0YV9maWxlcy9lY2RzYV9zZWNwMjU2cjEua2V5IGRlYnVnX2xldmVsPTQgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDI1NnIxX3NoYTI1NiBncm91cHM9c2VjcDM4NHIxIHRsczEzX2tleF9tb2Rlcz1lcGhlbWVyYWwgY29va2llcz0wIHRpY2tldHM9MCIgXAotICAgICAgICAgIiRPX05FWFRfQ0xJX05PX0NFUlQgLUNBZmlsZSBkYXRhX2ZpbGVzL3Rlc3QtY2EyLmNydCAtZ3JvdXBzIFAtMjU2OlAtMzg0IC1tc2cgLXRsczFfMyIgXAorICAgICAgICAgIiRQX1NSViBjcnRfZmlsZT0kREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3AyNTZyMS5jcnQga2V5X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwMjU2cjEua2V5IGRlYnVnX2xldmVsPTQgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDI1NnIxX3NoYTI1NiBncm91cHM9c2VjcDM4NHIxIHRsczEzX2tleF9tb2Rlcz1lcGhlbWVyYWwgY29va2llcz0wIHRpY2tldHM9MCIgXAorICAgICAgICAgIiRPX05FWFRfQ0xJX05PX0NFUlQgLUNBZmlsZSAkREFUQV9GSUxFU19QQVRIL3Rlc3QtY2EyLmNydCAtZ3JvdXBzIFAtMjU2OlAtMzg0IC1tc2cgLXRsczFfMyIgXAogICAgICAgICAgMCBcCiAgICAgICAgICAtcyAiUHJvdG9jb2wgaXMgVExTdjEuMyIgXAogICAgICAgICAgLXMgImdvdCBuYW1lZCBncm91cDogc2VjcDM4NHIxKDAwMTgpIiBcCkBAIC0xMjMzNSw4ICsxMjMzNyw4IEBACiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBQU0FfV0FOVF9BTEdfRUNESAogcmVxdWlyZXNfb3BlbnNzbF90bHMxXzMKIHJ1bl90ZXN0ICJUTFMgMS4zIE8tPm06IEhSUiBzZWNwMjU2cjEgLT4gc2VjcDUyMXIxIiBcCi0gICAgICAgICAiJFBfU1JWIGNydF9maWxlPWRhdGFfZmlsZXMvZWNkc2Ffc2VjcDI1NnIxLmNydCBrZXlfZmlsZT1kYXRhX2ZpbGVzL2VjZHNhX3NlY3AyNTZyMS5rZXkgZGVidWdfbGV2ZWw9NCBzaWdfYWxncz1lY2RzYV9zZWNwMjU2cjFfc2hhMjU2IGdyb3Vwcz1zZWNwNTIxcjEgdGxzMTNfa2V4X21vZGVzPWVwaGVtZXJhbCBjb29raWVzPTAgdGlja2V0cz0wIiBcCi0gICAgICAgICAiJE9fTkVYVF9DTElfTk9fQ0VSVCAtQ0FmaWxlIGRhdGFfZmlsZXMvdGVzdC1jYTIuY3J0IC1ncm91cHMgUC0yNTY6UC01MjEgLW1zZyAtdGxzMV8zIiBcCisgICAgICAgICAiJFBfU1JWIGNydF9maWxlPSREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDI1NnIxLmNydCBrZXlfZmlsZT0kREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3AyNTZyMS5rZXkgZGVidWdfbGV2ZWw9NCBzaWdfYWxncz1lY2RzYV9zZWNwMjU2cjFfc2hhMjU2IGdyb3Vwcz1zZWNwNTIxcjEgdGxzMTNfa2V4X21vZGVzPWVwaGVtZXJhbCBjb29raWVzPTAgdGlja2V0cz0wIiBcCisgICAgICAgICAiJE9fTkVYVF9DTElfTk9fQ0VSVCAtQ0FmaWxlICREQVRBX0ZJTEVTX1BBVEgvdGVzdC1jYTIuY3J0IC1ncm91cHMgUC0yNTY6UC01MjEgLW1zZyAtdGxzMV8zIiBcCiAgICAgICAgICAwIFwKICAgICAgICAgIC1zICJQcm90b2NvbCBpcyBUTFN2MS4zIiBcCiAgICAgICAgICAtcyAiZ290IG5hbWVkIGdyb3VwOiBzZWNwNTIxcjEoMDAxOSkiIFwKQEAgLTEyMzUwLDggKzEyMzUyLDggQEAKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIFBTQV9XQU5UX0FMR19FQ0RICiByZXF1aXJlc19vcGVuc3NsX3RsczFfMwogcnVuX3Rlc3QgIlRMUyAxLjMgTy0+bTogSFJSIHNlY3AyNTZyMSAtPiB4MjU1MTkiIFwKLSAgICAgICAgICIkUF9TUlYgY3J0X2ZpbGU9ZGF0YV9maWxlcy9lY2RzYV9zZWNwMjU2cjEuY3J0IGtleV9maWxlPWRhdGFfZmlsZXMvZWNkc2Ffc2VjcDI1NnIxLmtleSBkZWJ1Z19sZXZlbD00IHNpZ19hbGdzPWVjZHNhX3NlY3AyNTZyMV9zaGEyNTYgZ3JvdXBzPXgyNTUxOSB0bHMxM19rZXhfbW9kZXM9ZXBoZW1lcmFsIGNvb2tpZXM9MCB0aWNrZXRzPTAiIFwKLSAgICAgICAgICIkT19ORVhUX0NMSV9OT19DRVJUIC1DQWZpbGUgZGF0YV9maWxlcy90ZXN0LWNhMi5jcnQgLWdyb3VwcyBQLTI1NjpYMjU1MTkgLW1zZyAtdGxzMV8zIiBcCisgICAgICAgICAiJFBfU1JWIGNydF9maWxlPSREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDI1NnIxLmNydCBrZXlfZmlsZT0kREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3AyNTZyMS5rZXkgZGVidWdfbGV2ZWw9NCBzaWdfYWxncz1lY2RzYV9zZWNwMjU2cjFfc2hhMjU2IGdyb3Vwcz14MjU1MTkgdGxzMTNfa2V4X21vZGVzPWVwaGVtZXJhbCBjb29raWVzPTAgdGlja2V0cz0wIiBcCisgICAgICAgICAiJE9fTkVYVF9DTElfTk9fQ0VSVCAtQ0FmaWxlICREQVRBX0ZJTEVTX1BBVEgvdGVzdC1jYTIuY3J0IC1ncm91cHMgUC0yNTY6WDI1NTE5IC1tc2cgLXRsczFfMyIgXAogICAgICAgICAgMCBcCiAgICAgICAgICAtcyAiUHJvdG9jb2wgaXMgVExTdjEuMyIgXAogICAgICAgICAgLXMgImdvdCBuYW1lZCBncm91cDogeDI1NTE5KDAwMWQpIiBcCkBAIC0xMjM2NSw4ICsxMjM2Nyw4IEBACiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBQU0FfV0FOVF9BTEdfRUNESAogcmVxdWlyZXNfb3BlbnNzbF90bHMxXzMKIHJ1bl90ZXN0ICJUTFMgMS4zIE8tPm06IEhSUiBzZWNwMjU2cjEgLT4geDQ0OCIgXAotICAgICAgICAgIiRQX1NSViBjcnRfZmlsZT1kYXRhX2ZpbGVzL2VjZHNhX3NlY3AyNTZyMS5jcnQga2V5X2ZpbGU9ZGF0YV9maWxlcy9lY2RzYV9zZWNwMjU2cjEua2V5IGRlYnVnX2xldmVsPTQgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDI1NnIxX3NoYTI1NiBncm91cHM9eDQ0OCB0bHMxM19rZXhfbW9kZXM9ZXBoZW1lcmFsIGNvb2tpZXM9MCB0aWNrZXRzPTAiIFwKLSAgICAgICAgICIkT19ORVhUX0NMSV9OT19DRVJUIC1DQWZpbGUgZGF0YV9maWxlcy90ZXN0LWNhMi5jcnQgLWdyb3VwcyBQLTI1NjpYNDQ4IC1tc2cgLXRsczFfMyIgXAorICAgICAgICAgIiRQX1NSViBjcnRfZmlsZT0kREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3AyNTZyMS5jcnQga2V5X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwMjU2cjEua2V5IGRlYnVnX2xldmVsPTQgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDI1NnIxX3NoYTI1NiBncm91cHM9eDQ0OCB0bHMxM19rZXhfbW9kZXM9ZXBoZW1lcmFsIGNvb2tpZXM9MCB0aWNrZXRzPTAiIFwKKyAgICAgICAgICIkT19ORVhUX0NMSV9OT19DRVJUIC1DQWZpbGUgJERBVEFfRklMRVNfUEFUSC90ZXN0LWNhMi5jcnQgLWdyb3VwcyBQLTI1NjpYNDQ4IC1tc2cgLXRsczFfMyIgXAogICAgICAgICAgMCBcCiAgICAgICAgICAtcyAiUHJvdG9jb2wgaXMgVExTdjEuMyIgXAogICAgICAgICAgLXMgImdvdCBuYW1lZCBncm91cDogeDQ0OCgwMDFlKSIgXApAQCAtMTIzODEsOCArMTIzODMsOCBAQAogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgUFNBX1dBTlRfREhfUkZDNzkxOV8yMDQ4CiByZXF1aXJlc19vcGVuc3NsX3RsczFfM193aXRoX2ZmZGgKIHJ1bl90ZXN0ICJUTFMgMS4zIE8tPm06IEhSUiBzZWNwMjU2cjEgLT4gZmZkaGUyMDQ4IiBcCi0gICAgICAgICAiJFBfU1JWIGNydF9maWxlPWRhdGFfZmlsZXMvZWNkc2Ffc2VjcDI1NnIxLmNydCBrZXlfZmlsZT1kYXRhX2ZpbGVzL2VjZHNhX3NlY3AyNTZyMS5rZXkgZGVidWdfbGV2ZWw9NCBzaWdfYWxncz1lY2RzYV9zZWNwMjU2cjFfc2hhMjU2IGdyb3Vwcz1mZmRoZTIwNDggdGxzMTNfa2V4X21vZGVzPWVwaGVtZXJhbCBjb29raWVzPTAgdGlja2V0cz0wIiBcCi0gICAgICAgICAiJE9fTkVYVF9DTElfTk9fQ0VSVCAtQ0FmaWxlIGRhdGFfZmlsZXMvdGVzdC1jYTIuY3J0IC1ncm91cHMgUC0yNTY6ZmZkaGUyMDQ4IC1tc2cgLXRsczFfMyIgXAorICAgICAgICAgIiRQX1NSViBjcnRfZmlsZT0kREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3AyNTZyMS5jcnQga2V5X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwMjU2cjEua2V5IGRlYnVnX2xldmVsPTQgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDI1NnIxX3NoYTI1NiBncm91cHM9ZmZkaGUyMDQ4IHRsczEzX2tleF9tb2Rlcz1lcGhlbWVyYWwgY29va2llcz0wIHRpY2tldHM9MCIgXAorICAgICAgICAgIiRPX05FWFRfQ0xJX05PX0NFUlQgLUNBZmlsZSAkREFUQV9GSUxFU19QQVRIL3Rlc3QtY2EyLmNydCAtZ3JvdXBzIFAtMjU2OmZmZGhlMjA0OCAtbXNnIC10bHMxXzMiIFwKICAgICAgICAgIDAgXAogICAgICAgICAgLXMgIlByb3RvY29sIGlzIFRMU3YxLjMiIFwKICAgICAgICAgIC1zICJnb3QgbmFtZWQgZ3JvdXA6IGZmZGhlMjA0OCgwMTAwKSIgXApAQCAtMTIzOTYsOCArMTIzOTgsOCBAQAogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgUFNBX1dBTlRfQUxHX0VDREgKIHJlcXVpcmVzX29wZW5zc2xfdGxzMV8zCiBydW5fdGVzdCAiVExTIDEuMyBPLT5tOiBIUlIgc2VjcDM4NHIxIC0+IHNlY3AyNTZyMSIgXAotICAgICAgICAgIiRQX1NSViBjcnRfZmlsZT1kYXRhX2ZpbGVzL2VjZHNhX3NlY3AyNTZyMS5jcnQga2V5X2ZpbGU9ZGF0YV9maWxlcy9lY2RzYV9zZWNwMjU2cjEua2V5IGRlYnVnX2xldmVsPTQgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDI1NnIxX3NoYTI1NiBncm91cHM9c2VjcDI1NnIxIHRsczEzX2tleF9tb2Rlcz1lcGhlbWVyYWwgY29va2llcz0wIHRpY2tldHM9MCIgXAotICAgICAgICAgIiRPX05FWFRfQ0xJX05PX0NFUlQgLUNBZmlsZSBkYXRhX2ZpbGVzL3Rlc3QtY2EyLmNydCAtZ3JvdXBzIFAtMzg0OlAtMjU2IC1tc2cgLXRsczFfMyIgXAorICAgICAgICAgIiRQX1NSViBjcnRfZmlsZT0kREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3AyNTZyMS5jcnQga2V5X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwMjU2cjEua2V5IGRlYnVnX2xldmVsPTQgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDI1NnIxX3NoYTI1NiBncm91cHM9c2VjcDI1NnIxIHRsczEzX2tleF9tb2Rlcz1lcGhlbWVyYWwgY29va2llcz0wIHRpY2tldHM9MCIgXAorICAgICAgICAgIiRPX05FWFRfQ0xJX05PX0NFUlQgLUNBZmlsZSAkREFUQV9GSUxFU19QQVRIL3Rlc3QtY2EyLmNydCAtZ3JvdXBzIFAtMzg0OlAtMjU2IC1tc2cgLXRsczFfMyIgXAogICAgICAgICAgMCBcCiAgICAgICAgICAtcyAiUHJvdG9jb2wgaXMgVExTdjEuMyIgXAogICAgICAgICAgLXMgImdvdCBuYW1lZCBncm91cDogc2VjcDI1NnIxKDAwMTcpIiBcCkBAIC0xMjQxMSw4ICsxMjQxMyw4IEBACiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBQU0FfV0FOVF9BTEdfRUNESAogcmVxdWlyZXNfb3BlbnNzbF90bHMxXzMKIHJ1bl90ZXN0ICJUTFMgMS4zIE8tPm06IEhSUiBzZWNwMzg0cjEgLT4gc2VjcDUyMXIxIiBcCi0gICAgICAgICAiJFBfU1JWIGNydF9maWxlPWRhdGFfZmlsZXMvZWNkc2Ffc2VjcDI1NnIxLmNydCBrZXlfZmlsZT1kYXRhX2ZpbGVzL2VjZHNhX3NlY3AyNTZyMS5rZXkgZGVidWdfbGV2ZWw9NCBzaWdfYWxncz1lY2RzYV9zZWNwMjU2cjFfc2hhMjU2IGdyb3Vwcz1zZWNwNTIxcjEgdGxzMTNfa2V4X21vZGVzPWVwaGVtZXJhbCBjb29raWVzPTAgdGlja2V0cz0wIiBcCi0gICAgICAgICAiJE9fTkVYVF9DTElfTk9fQ0VSVCAtQ0FmaWxlIGRhdGFfZmlsZXMvdGVzdC1jYTIuY3J0IC1ncm91cHMgUC0zODQ6UC01MjEgLW1zZyAtdGxzMV8zIiBcCisgICAgICAgICAiJFBfU1JWIGNydF9maWxlPSREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDI1NnIxLmNydCBrZXlfZmlsZT0kREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3AyNTZyMS5rZXkgZGVidWdfbGV2ZWw9NCBzaWdfYWxncz1lY2RzYV9zZWNwMjU2cjFfc2hhMjU2IGdyb3Vwcz1zZWNwNTIxcjEgdGxzMTNfa2V4X21vZGVzPWVwaGVtZXJhbCBjb29raWVzPTAgdGlja2V0cz0wIiBcCisgICAgICAgICAiJE9fTkVYVF9DTElfTk9fQ0VSVCAtQ0FmaWxlICREQVRBX0ZJTEVTX1BBVEgvdGVzdC1jYTIuY3J0IC1ncm91cHMgUC0zODQ6UC01MjEgLW1zZyAtdGxzMV8zIiBcCiAgICAgICAgICAwIFwKICAgICAgICAgIC1zICJQcm90b2NvbCBpcyBUTFN2MS4zIiBcCiAgICAgICAgICAtcyAiZ290IG5hbWVkIGdyb3VwOiBzZWNwNTIxcjEoMDAxOSkiIFwKQEAgLTEyNDI2LDggKzEyNDI4LDggQEAKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIFBTQV9XQU5UX0FMR19FQ0RICiByZXF1aXJlc19vcGVuc3NsX3RsczFfMwogcnVuX3Rlc3QgIlRMUyAxLjMgTy0+bTogSFJSIHNlY3AzODRyMSAtPiB4MjU1MTkiIFwKLSAgICAgICAgICIkUF9TUlYgY3J0X2ZpbGU9ZGF0YV9maWxlcy9lY2RzYV9zZWNwMjU2cjEuY3J0IGtleV9maWxlPWRhdGFfZmlsZXMvZWNkc2Ffc2VjcDI1NnIxLmtleSBkZWJ1Z19sZXZlbD00IHNpZ19hbGdzPWVjZHNhX3NlY3AyNTZyMV9zaGEyNTYgZ3JvdXBzPXgyNTUxOSB0bHMxM19rZXhfbW9kZXM9ZXBoZW1lcmFsIGNvb2tpZXM9MCB0aWNrZXRzPTAiIFwKLSAgICAgICAgICIkT19ORVhUX0NMSV9OT19DRVJUIC1DQWZpbGUgZGF0YV9maWxlcy90ZXN0LWNhMi5jcnQgLWdyb3VwcyBQLTM4NDpYMjU1MTkgLW1zZyAtdGxzMV8zIiBcCisgICAgICAgICAiJFBfU1JWIGNydF9maWxlPSREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDI1NnIxLmNydCBrZXlfZmlsZT0kREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3AyNTZyMS5rZXkgZGVidWdfbGV2ZWw9NCBzaWdfYWxncz1lY2RzYV9zZWNwMjU2cjFfc2hhMjU2IGdyb3Vwcz14MjU1MTkgdGxzMTNfa2V4X21vZGVzPWVwaGVtZXJhbCBjb29raWVzPTAgdGlja2V0cz0wIiBcCisgICAgICAgICAiJE9fTkVYVF9DTElfTk9fQ0VSVCAtQ0FmaWxlICREQVRBX0ZJTEVTX1BBVEgvdGVzdC1jYTIuY3J0IC1ncm91cHMgUC0zODQ6WDI1NTE5IC1tc2cgLXRsczFfMyIgXAogICAgICAgICAgMCBcCiAgICAgICAgICAtcyAiUHJvdG9jb2wgaXMgVExTdjEuMyIgXAogICAgICAgICAgLXMgImdvdCBuYW1lZCBncm91cDogeDI1NTE5KDAwMWQpIiBcCkBAIC0xMjQ0MSw4ICsxMjQ0Myw4IEBACiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBQU0FfV0FOVF9BTEdfRUNESAogcmVxdWlyZXNfb3BlbnNzbF90bHMxXzMKIHJ1bl90ZXN0ICJUTFMgMS4zIE8tPm06IEhSUiBzZWNwMzg0cjEgLT4geDQ0OCIgXAotICAgICAgICAgIiRQX1NSViBjcnRfZmlsZT1kYXRhX2ZpbGVzL2VjZHNhX3NlY3AyNTZyMS5jcnQga2V5X2ZpbGU9ZGF0YV9maWxlcy9lY2RzYV9zZWNwMjU2cjEua2V5IGRlYnVnX2xldmVsPTQgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDI1NnIxX3NoYTI1NiBncm91cHM9eDQ0OCB0bHMxM19rZXhfbW9kZXM9ZXBoZW1lcmFsIGNvb2tpZXM9MCB0aWNrZXRzPTAiIFwKLSAgICAgICAgICIkT19ORVhUX0NMSV9OT19DRVJUIC1DQWZpbGUgZGF0YV9maWxlcy90ZXN0LWNhMi5jcnQgLWdyb3VwcyBQLTM4NDpYNDQ4IC1tc2cgLXRsczFfMyIgXAorICAgICAgICAgIiRQX1NSViBjcnRfZmlsZT0kREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3AyNTZyMS5jcnQga2V5X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwMjU2cjEua2V5IGRlYnVnX2xldmVsPTQgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDI1NnIxX3NoYTI1NiBncm91cHM9eDQ0OCB0bHMxM19rZXhfbW9kZXM9ZXBoZW1lcmFsIGNvb2tpZXM9MCB0aWNrZXRzPTAiIFwKKyAgICAgICAgICIkT19ORVhUX0NMSV9OT19DRVJUIC1DQWZpbGUgJERBVEFfRklMRVNfUEFUSC90ZXN0LWNhMi5jcnQgLWdyb3VwcyBQLTM4NDpYNDQ4IC1tc2cgLXRsczFfMyIgXAogICAgICAgICAgMCBcCiAgICAgICAgICAtcyAiUHJvdG9jb2wgaXMgVExTdjEuMyIgXAogICAgICAgICAgLXMgImdvdCBuYW1lZCBncm91cDogeDQ0OCgwMDFlKSIgXApAQCAtMTI0NTcsOCArMTI0NTksOCBAQAogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgUFNBX1dBTlRfREhfUkZDNzkxOV8yMDQ4CiByZXF1aXJlc19vcGVuc3NsX3RsczFfM193aXRoX2ZmZGgKIHJ1bl90ZXN0ICJUTFMgMS4zIE8tPm06IEhSUiBzZWNwMzg0cjEgLT4gZmZkaGUyMDQ4IiBcCi0gICAgICAgICAiJFBfU1JWIGNydF9maWxlPWRhdGFfZmlsZXMvZWNkc2Ffc2VjcDI1NnIxLmNydCBrZXlfZmlsZT1kYXRhX2ZpbGVzL2VjZHNhX3NlY3AyNTZyMS5rZXkgZGVidWdfbGV2ZWw9NCBzaWdfYWxncz1lY2RzYV9zZWNwMjU2cjFfc2hhMjU2IGdyb3Vwcz1mZmRoZTIwNDggdGxzMTNfa2V4X21vZGVzPWVwaGVtZXJhbCBjb29raWVzPTAgdGlja2V0cz0wIiBcCi0gICAgICAgICAiJE9fTkVYVF9DTElfTk9fQ0VSVCAtQ0FmaWxlIGRhdGFfZmlsZXMvdGVzdC1jYTIuY3J0IC1ncm91cHMgUC0zODQ6ZmZkaGUyMDQ4IC1tc2cgLXRsczFfMyIgXAorICAgICAgICAgIiRQX1NSViBjcnRfZmlsZT0kREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3AyNTZyMS5jcnQga2V5X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwMjU2cjEua2V5IGRlYnVnX2xldmVsPTQgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDI1NnIxX3NoYTI1NiBncm91cHM9ZmZkaGUyMDQ4IHRsczEzX2tleF9tb2Rlcz1lcGhlbWVyYWwgY29va2llcz0wIHRpY2tldHM9MCIgXAorICAgICAgICAgIiRPX05FWFRfQ0xJX05PX0NFUlQgLUNBZmlsZSAkREFUQV9GSUxFU19QQVRIL3Rlc3QtY2EyLmNydCAtZ3JvdXBzIFAtMzg0OmZmZGhlMjA0OCAtbXNnIC10bHMxXzMiIFwKICAgICAgICAgIDAgXAogICAgICAgICAgLXMgIlByb3RvY29sIGlzIFRMU3YxLjMiIFwKICAgICAgICAgIC1zICJnb3QgbmFtZWQgZ3JvdXA6IGZmZGhlMjA0OCgwMTAwKSIgXApAQCAtMTI0NzIsOCArMTI0NzQsOCBAQAogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgUFNBX1dBTlRfQUxHX0VDREgKIHJlcXVpcmVzX29wZW5zc2xfdGxzMV8zCiBydW5fdGVzdCAiVExTIDEuMyBPLT5tOiBIUlIgc2VjcDUyMXIxIC0+IHNlY3AyNTZyMSIgXAotICAgICAgICAgIiRQX1NSViBjcnRfZmlsZT1kYXRhX2ZpbGVzL2VjZHNhX3NlY3AyNTZyMS5jcnQga2V5X2ZpbGU9ZGF0YV9maWxlcy9lY2RzYV9zZWNwMjU2cjEua2V5IGRlYnVnX2xldmVsPTQgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDI1NnIxX3NoYTI1NiBncm91cHM9c2VjcDI1NnIxIHRsczEzX2tleF9tb2Rlcz1lcGhlbWVyYWwgY29va2llcz0wIHRpY2tldHM9MCIgXAotICAgICAgICAgIiRPX05FWFRfQ0xJX05PX0NFUlQgLUNBZmlsZSBkYXRhX2ZpbGVzL3Rlc3QtY2EyLmNydCAtZ3JvdXBzIFAtNTIxOlAtMjU2IC1tc2cgLXRsczFfMyIgXAorICAgICAgICAgIiRQX1NSViBjcnRfZmlsZT0kREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3AyNTZyMS5jcnQga2V5X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwMjU2cjEua2V5IGRlYnVnX2xldmVsPTQgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDI1NnIxX3NoYTI1NiBncm91cHM9c2VjcDI1NnIxIHRsczEzX2tleF9tb2Rlcz1lcGhlbWVyYWwgY29va2llcz0wIHRpY2tldHM9MCIgXAorICAgICAgICAgIiRPX05FWFRfQ0xJX05PX0NFUlQgLUNBZmlsZSAkREFUQV9GSUxFU19QQVRIL3Rlc3QtY2EyLmNydCAtZ3JvdXBzIFAtNTIxOlAtMjU2IC1tc2cgLXRsczFfMyIgXAogICAgICAgICAgMCBcCiAgICAgICAgICAtcyAiUHJvdG9jb2wgaXMgVExTdjEuMyIgXAogICAgICAgICAgLXMgImdvdCBuYW1lZCBncm91cDogc2VjcDI1NnIxKDAwMTcpIiBcCkBAIC0xMjQ4Nyw4ICsxMjQ4OSw4IEBACiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBQU0FfV0FOVF9BTEdfRUNESAogcmVxdWlyZXNfb3BlbnNzbF90bHMxXzMKIHJ1bl90ZXN0ICJUTFMgMS4zIE8tPm06IEhSUiBzZWNwNTIxcjEgLT4gc2VjcDM4NHIxIiBcCi0gICAgICAgICAiJFBfU1JWIGNydF9maWxlPWRhdGFfZmlsZXMvZWNkc2Ffc2VjcDI1NnIxLmNydCBrZXlfZmlsZT1kYXRhX2ZpbGVzL2VjZHNhX3NlY3AyNTZyMS5rZXkgZGVidWdfbGV2ZWw9NCBzaWdfYWxncz1lY2RzYV9zZWNwMjU2cjFfc2hhMjU2IGdyb3Vwcz1zZWNwMzg0cjEgdGxzMTNfa2V4X21vZGVzPWVwaGVtZXJhbCBjb29raWVzPTAgdGlja2V0cz0wIiBcCi0gICAgICAgICAiJE9fTkVYVF9DTElfTk9fQ0VSVCAtQ0FmaWxlIGRhdGFfZmlsZXMvdGVzdC1jYTIuY3J0IC1ncm91cHMgUC01MjE6UC0zODQgLW1zZyAtdGxzMV8zIiBcCisgICAgICAgICAiJFBfU1JWIGNydF9maWxlPSREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDI1NnIxLmNydCBrZXlfZmlsZT0kREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3AyNTZyMS5rZXkgZGVidWdfbGV2ZWw9NCBzaWdfYWxncz1lY2RzYV9zZWNwMjU2cjFfc2hhMjU2IGdyb3Vwcz1zZWNwMzg0cjEgdGxzMTNfa2V4X21vZGVzPWVwaGVtZXJhbCBjb29raWVzPTAgdGlja2V0cz0wIiBcCisgICAgICAgICAiJE9fTkVYVF9DTElfTk9fQ0VSVCAtQ0FmaWxlICREQVRBX0ZJTEVTX1BBVEgvdGVzdC1jYTIuY3J0IC1ncm91cHMgUC01MjE6UC0zODQgLW1zZyAtdGxzMV8zIiBcCiAgICAgICAgICAwIFwKICAgICAgICAgIC1zICJQcm90b2NvbCBpcyBUTFN2MS4zIiBcCiAgICAgICAgICAtcyAiZ290IG5hbWVkIGdyb3VwOiBzZWNwMzg0cjEoMDAxOCkiIFwKQEAgLTEyNTAyLDggKzEyNTA0LDggQEAKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIFBTQV9XQU5UX0FMR19FQ0RICiByZXF1aXJlc19vcGVuc3NsX3RsczFfMwogcnVuX3Rlc3QgIlRMUyAxLjMgTy0+bTogSFJSIHNlY3A1MjFyMSAtPiB4MjU1MTkiIFwKLSAgICAgICAgICIkUF9TUlYgY3J0X2ZpbGU9ZGF0YV9maWxlcy9lY2RzYV9zZWNwMjU2cjEuY3J0IGtleV9maWxlPWRhdGFfZmlsZXMvZWNkc2Ffc2VjcDI1NnIxLmtleSBkZWJ1Z19sZXZlbD00IHNpZ19hbGdzPWVjZHNhX3NlY3AyNTZyMV9zaGEyNTYgZ3JvdXBzPXgyNTUxOSB0bHMxM19rZXhfbW9kZXM9ZXBoZW1lcmFsIGNvb2tpZXM9MCB0aWNrZXRzPTAiIFwKLSAgICAgICAgICIkT19ORVhUX0NMSV9OT19DRVJUIC1DQWZpbGUgZGF0YV9maWxlcy90ZXN0LWNhMi5jcnQgLWdyb3VwcyBQLTUyMTpYMjU1MTkgLW1zZyAtdGxzMV8zIiBcCisgICAgICAgICAiJFBfU1JWIGNydF9maWxlPSREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDI1NnIxLmNydCBrZXlfZmlsZT0kREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3AyNTZyMS5rZXkgZGVidWdfbGV2ZWw9NCBzaWdfYWxncz1lY2RzYV9zZWNwMjU2cjFfc2hhMjU2IGdyb3Vwcz14MjU1MTkgdGxzMTNfa2V4X21vZGVzPWVwaGVtZXJhbCBjb29raWVzPTAgdGlja2V0cz0wIiBcCisgICAgICAgICAiJE9fTkVYVF9DTElfTk9fQ0VSVCAtQ0FmaWxlICREQVRBX0ZJTEVTX1BBVEgvdGVzdC1jYTIuY3J0IC1ncm91cHMgUC01MjE6WDI1NTE5IC1tc2cgLXRsczFfMyIgXAogICAgICAgICAgMCBcCiAgICAgICAgICAtcyAiUHJvdG9jb2wgaXMgVExTdjEuMyIgXAogICAgICAgICAgLXMgImdvdCBuYW1lZCBncm91cDogeDI1NTE5KDAwMWQpIiBcCkBAIC0xMjUxNyw4ICsxMjUxOSw4IEBACiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBQU0FfV0FOVF9BTEdfRUNESAogcmVxdWlyZXNfb3BlbnNzbF90bHMxXzMKIHJ1bl90ZXN0ICJUTFMgMS4zIE8tPm06IEhSUiBzZWNwNTIxcjEgLT4geDQ0OCIgXAotICAgICAgICAgIiRQX1NSViBjcnRfZmlsZT1kYXRhX2ZpbGVzL2VjZHNhX3NlY3AyNTZyMS5jcnQga2V5X2ZpbGU9ZGF0YV9maWxlcy9lY2RzYV9zZWNwMjU2cjEua2V5IGRlYnVnX2xldmVsPTQgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDI1NnIxX3NoYTI1NiBncm91cHM9eDQ0OCB0bHMxM19rZXhfbW9kZXM9ZXBoZW1lcmFsIGNvb2tpZXM9MCB0aWNrZXRzPTAiIFwKLSAgICAgICAgICIkT19ORVhUX0NMSV9OT19DRVJUIC1DQWZpbGUgZGF0YV9maWxlcy90ZXN0LWNhMi5jcnQgLWdyb3VwcyBQLTUyMTpYNDQ4IC1tc2cgLXRsczFfMyIgXAorICAgICAgICAgIiRQX1NSViBjcnRfZmlsZT0kREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3AyNTZyMS5jcnQga2V5X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwMjU2cjEua2V5IGRlYnVnX2xldmVsPTQgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDI1NnIxX3NoYTI1NiBncm91cHM9eDQ0OCB0bHMxM19rZXhfbW9kZXM9ZXBoZW1lcmFsIGNvb2tpZXM9MCB0aWNrZXRzPTAiIFwKKyAgICAgICAgICIkT19ORVhUX0NMSV9OT19DRVJUIC1DQWZpbGUgJERBVEFfRklMRVNfUEFUSC90ZXN0LWNhMi5jcnQgLWdyb3VwcyBQLTUyMTpYNDQ4IC1tc2cgLXRsczFfMyIgXAogICAgICAgICAgMCBcCiAgICAgICAgICAtcyAiUHJvdG9jb2wgaXMgVExTdjEuMyIgXAogICAgICAgICAgLXMgImdvdCBuYW1lZCBncm91cDogeDQ0OCgwMDFlKSIgXApAQCAtMTI1MzMsOCArMTI1MzUsOCBAQAogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgUFNBX1dBTlRfREhfUkZDNzkxOV8yMDQ4CiByZXF1aXJlc19vcGVuc3NsX3RsczFfM193aXRoX2ZmZGgKIHJ1bl90ZXN0ICJUTFMgMS4zIE8tPm06IEhSUiBzZWNwNTIxcjEgLT4gZmZkaGUyMDQ4IiBcCi0gICAgICAgICAiJFBfU1JWIGNydF9maWxlPWRhdGFfZmlsZXMvZWNkc2Ffc2VjcDI1NnIxLmNydCBrZXlfZmlsZT1kYXRhX2ZpbGVzL2VjZHNhX3NlY3AyNTZyMS5rZXkgZGVidWdfbGV2ZWw9NCBzaWdfYWxncz1lY2RzYV9zZWNwMjU2cjFfc2hhMjU2IGdyb3Vwcz1mZmRoZTIwNDggdGxzMTNfa2V4X21vZGVzPWVwaGVtZXJhbCBjb29raWVzPTAgdGlja2V0cz0wIiBcCi0gICAgICAgICAiJE9fTkVYVF9DTElfTk9fQ0VSVCAtQ0FmaWxlIGRhdGFfZmlsZXMvdGVzdC1jYTIuY3J0IC1ncm91cHMgUC01MjE6ZmZkaGUyMDQ4IC1tc2cgLXRsczFfMyIgXAorICAgICAgICAgIiRQX1NSViBjcnRfZmlsZT0kREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3AyNTZyMS5jcnQga2V5X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwMjU2cjEua2V5IGRlYnVnX2xldmVsPTQgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDI1NnIxX3NoYTI1NiBncm91cHM9ZmZkaGUyMDQ4IHRsczEzX2tleF9tb2Rlcz1lcGhlbWVyYWwgY29va2llcz0wIHRpY2tldHM9MCIgXAorICAgICAgICAgIiRPX05FWFRfQ0xJX05PX0NFUlQgLUNBZmlsZSAkREFUQV9GSUxFU19QQVRIL3Rlc3QtY2EyLmNydCAtZ3JvdXBzIFAtNTIxOmZmZGhlMjA0OCAtbXNnIC10bHMxXzMiIFwKICAgICAgICAgIDAgXAogICAgICAgICAgLXMgIlByb3RvY29sIGlzIFRMU3YxLjMiIFwKICAgICAgICAgIC1zICJnb3QgbmFtZWQgZ3JvdXA6IGZmZGhlMjA0OCgwMTAwKSIgXApAQCAtMTI1NDgsOCArMTI1NTAsOCBAQAogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgUFNBX1dBTlRfQUxHX0VDREgKIHJlcXVpcmVzX29wZW5zc2xfdGxzMV8zCiBydW5fdGVzdCAiVExTIDEuMyBPLT5tOiBIUlIgeDI1NTE5IC0+IHNlY3AyNTZyMSIgXAotICAgICAgICAgIiRQX1NSViBjcnRfZmlsZT1kYXRhX2ZpbGVzL2VjZHNhX3NlY3AyNTZyMS5jcnQga2V5X2ZpbGU9ZGF0YV9maWxlcy9lY2RzYV9zZWNwMjU2cjEua2V5IGRlYnVnX2xldmVsPTQgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDI1NnIxX3NoYTI1NiBncm91cHM9c2VjcDI1NnIxIHRsczEzX2tleF9tb2Rlcz1lcGhlbWVyYWwgY29va2llcz0wIHRpY2tldHM9MCIgXAotICAgICAgICAgIiRPX05FWFRfQ0xJX05PX0NFUlQgLUNBZmlsZSBkYXRhX2ZpbGVzL3Rlc3QtY2EyLmNydCAtZ3JvdXBzIFgyNTUxOTpQLTI1NiAtbXNnIC10bHMxXzMiIFwKKyAgICAgICAgICIkUF9TUlYgY3J0X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwMjU2cjEuY3J0IGtleV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDI1NnIxLmtleSBkZWJ1Z19sZXZlbD00IHNpZ19hbGdzPWVjZHNhX3NlY3AyNTZyMV9zaGEyNTYgZ3JvdXBzPXNlY3AyNTZyMSB0bHMxM19rZXhfbW9kZXM9ZXBoZW1lcmFsIGNvb2tpZXM9MCB0aWNrZXRzPTAiIFwKKyAgICAgICAgICIkT19ORVhUX0NMSV9OT19DRVJUIC1DQWZpbGUgJERBVEFfRklMRVNfUEFUSC90ZXN0LWNhMi5jcnQgLWdyb3VwcyBYMjU1MTk6UC0yNTYgLW1zZyAtdGxzMV8zIiBcCiAgICAgICAgICAwIFwKICAgICAgICAgIC1zICJQcm90b2NvbCBpcyBUTFN2MS4zIiBcCiAgICAgICAgICAtcyAiZ290IG5hbWVkIGdyb3VwOiBzZWNwMjU2cjEoMDAxNykiIFwKQEAgLTEyNTYzLDggKzEyNTY1LDggQEAKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIFBTQV9XQU5UX0FMR19FQ0RICiByZXF1aXJlc19vcGVuc3NsX3RsczFfMwogcnVuX3Rlc3QgIlRMUyAxLjMgTy0+bTogSFJSIHgyNTUxOSAtPiBzZWNwMzg0cjEiIFwKLSAgICAgICAgICIkUF9TUlYgY3J0X2ZpbGU9ZGF0YV9maWxlcy9lY2RzYV9zZWNwMjU2cjEuY3J0IGtleV9maWxlPWRhdGFfZmlsZXMvZWNkc2Ffc2VjcDI1NnIxLmtleSBkZWJ1Z19sZXZlbD00IHNpZ19hbGdzPWVjZHNhX3NlY3AyNTZyMV9zaGEyNTYgZ3JvdXBzPXNlY3AzODRyMSB0bHMxM19rZXhfbW9kZXM9ZXBoZW1lcmFsIGNvb2tpZXM9MCB0aWNrZXRzPTAiIFwKLSAgICAgICAgICIkT19ORVhUX0NMSV9OT19DRVJUIC1DQWZpbGUgZGF0YV9maWxlcy90ZXN0LWNhMi5jcnQgLWdyb3VwcyBYMjU1MTk6UC0zODQgLW1zZyAtdGxzMV8zIiBcCisgICAgICAgICAiJFBfU1JWIGNydF9maWxlPSREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDI1NnIxLmNydCBrZXlfZmlsZT0kREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3AyNTZyMS5rZXkgZGVidWdfbGV2ZWw9NCBzaWdfYWxncz1lY2RzYV9zZWNwMjU2cjFfc2hhMjU2IGdyb3Vwcz1zZWNwMzg0cjEgdGxzMTNfa2V4X21vZGVzPWVwaGVtZXJhbCBjb29raWVzPTAgdGlja2V0cz0wIiBcCisgICAgICAgICAiJE9fTkVYVF9DTElfTk9fQ0VSVCAtQ0FmaWxlICREQVRBX0ZJTEVTX1BBVEgvdGVzdC1jYTIuY3J0IC1ncm91cHMgWDI1NTE5OlAtMzg0IC1tc2cgLXRsczFfMyIgXAogICAgICAgICAgMCBcCiAgICAgICAgICAtcyAiUHJvdG9jb2wgaXMgVExTdjEuMyIgXAogICAgICAgICAgLXMgImdvdCBuYW1lZCBncm91cDogc2VjcDM4NHIxKDAwMTgpIiBcCkBAIC0xMjU3OCw4ICsxMjU4MCw4IEBACiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBQU0FfV0FOVF9BTEdfRUNESAogcmVxdWlyZXNfb3BlbnNzbF90bHMxXzMKIHJ1bl90ZXN0ICJUTFMgMS4zIE8tPm06IEhSUiB4MjU1MTkgLT4gc2VjcDUyMXIxIiBcCi0gICAgICAgICAiJFBfU1JWIGNydF9maWxlPWRhdGFfZmlsZXMvZWNkc2Ffc2VjcDI1NnIxLmNydCBrZXlfZmlsZT1kYXRhX2ZpbGVzL2VjZHNhX3NlY3AyNTZyMS5rZXkgZGVidWdfbGV2ZWw9NCBzaWdfYWxncz1lY2RzYV9zZWNwMjU2cjFfc2hhMjU2IGdyb3Vwcz1zZWNwNTIxcjEgdGxzMTNfa2V4X21vZGVzPWVwaGVtZXJhbCBjb29raWVzPTAgdGlja2V0cz0wIiBcCi0gICAgICAgICAiJE9fTkVYVF9DTElfTk9fQ0VSVCAtQ0FmaWxlIGRhdGFfZmlsZXMvdGVzdC1jYTIuY3J0IC1ncm91cHMgWDI1NTE5OlAtNTIxIC1tc2cgLXRsczFfMyIgXAorICAgICAgICAgIiRQX1NSViBjcnRfZmlsZT0kREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3AyNTZyMS5jcnQga2V5X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwMjU2cjEua2V5IGRlYnVnX2xldmVsPTQgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDI1NnIxX3NoYTI1NiBncm91cHM9c2VjcDUyMXIxIHRsczEzX2tleF9tb2Rlcz1lcGhlbWVyYWwgY29va2llcz0wIHRpY2tldHM9MCIgXAorICAgICAgICAgIiRPX05FWFRfQ0xJX05PX0NFUlQgLUNBZmlsZSAkREFUQV9GSUxFU19QQVRIL3Rlc3QtY2EyLmNydCAtZ3JvdXBzIFgyNTUxOTpQLTUyMSAtbXNnIC10bHMxXzMiIFwKICAgICAgICAgIDAgXAogICAgICAgICAgLXMgIlByb3RvY29sIGlzIFRMU3YxLjMiIFwKICAgICAgICAgIC1zICJnb3QgbmFtZWQgZ3JvdXA6IHNlY3A1MjFyMSgwMDE5KSIgXApAQCAtMTI1OTMsOCArMTI1OTUsOCBAQAogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgUFNBX1dBTlRfQUxHX0VDREgKIHJlcXVpcmVzX29wZW5zc2xfdGxzMV8zCiBydW5fdGVzdCAiVExTIDEuMyBPLT5tOiBIUlIgeDI1NTE5IC0+IHg0NDgiIFwKLSAgICAgICAgICIkUF9TUlYgY3J0X2ZpbGU9ZGF0YV9maWxlcy9lY2RzYV9zZWNwMjU2cjEuY3J0IGtleV9maWxlPWRhdGFfZmlsZXMvZWNkc2Ffc2VjcDI1NnIxLmtleSBkZWJ1Z19sZXZlbD00IHNpZ19hbGdzPWVjZHNhX3NlY3AyNTZyMV9zaGEyNTYgZ3JvdXBzPXg0NDggdGxzMTNfa2V4X21vZGVzPWVwaGVtZXJhbCBjb29raWVzPTAgdGlja2V0cz0wIiBcCi0gICAgICAgICAiJE9fTkVYVF9DTElfTk9fQ0VSVCAtQ0FmaWxlIGRhdGFfZmlsZXMvdGVzdC1jYTIuY3J0IC1ncm91cHMgWDI1NTE5Olg0NDggLW1zZyAtdGxzMV8zIiBcCisgICAgICAgICAiJFBfU1JWIGNydF9maWxlPSREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDI1NnIxLmNydCBrZXlfZmlsZT0kREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3AyNTZyMS5rZXkgZGVidWdfbGV2ZWw9NCBzaWdfYWxncz1lY2RzYV9zZWNwMjU2cjFfc2hhMjU2IGdyb3Vwcz14NDQ4IHRsczEzX2tleF9tb2Rlcz1lcGhlbWVyYWwgY29va2llcz0wIHRpY2tldHM9MCIgXAorICAgICAgICAgIiRPX05FWFRfQ0xJX05PX0NFUlQgLUNBZmlsZSAkREFUQV9GSUxFU19QQVRIL3Rlc3QtY2EyLmNydCAtZ3JvdXBzIFgyNTUxOTpYNDQ4IC1tc2cgLXRsczFfMyIgXAogICAgICAgICAgMCBcCiAgICAgICAgICAtcyAiUHJvdG9jb2wgaXMgVExTdjEuMyIgXAogICAgICAgICAgLXMgImdvdCBuYW1lZCBncm91cDogeDQ0OCgwMDFlKSIgXApAQCAtMTI2MDksOCArMTI2MTEsOCBAQAogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgUFNBX1dBTlRfREhfUkZDNzkxOV8yMDQ4CiByZXF1aXJlc19vcGVuc3NsX3RsczFfM193aXRoX2ZmZGgKIHJ1bl90ZXN0ICJUTFMgMS4zIE8tPm06IEhSUiB4MjU1MTkgLT4gZmZkaGUyMDQ4IiBcCi0gICAgICAgICAiJFBfU1JWIGNydF9maWxlPWRhdGFfZmlsZXMvZWNkc2Ffc2VjcDI1NnIxLmNydCBrZXlfZmlsZT1kYXRhX2ZpbGVzL2VjZHNhX3NlY3AyNTZyMS5rZXkgZGVidWdfbGV2ZWw9NCBzaWdfYWxncz1lY2RzYV9zZWNwMjU2cjFfc2hhMjU2IGdyb3Vwcz1mZmRoZTIwNDggdGxzMTNfa2V4X21vZGVzPWVwaGVtZXJhbCBjb29raWVzPTAgdGlja2V0cz0wIiBcCi0gICAgICAgICAiJE9fTkVYVF9DTElfTk9fQ0VSVCAtQ0FmaWxlIGRhdGFfZmlsZXMvdGVzdC1jYTIuY3J0IC1ncm91cHMgWDI1NTE5OmZmZGhlMjA0OCAtbXNnIC10bHMxXzMiIFwKKyAgICAgICAgICIkUF9TUlYgY3J0X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwMjU2cjEuY3J0IGtleV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDI1NnIxLmtleSBkZWJ1Z19sZXZlbD00IHNpZ19hbGdzPWVjZHNhX3NlY3AyNTZyMV9zaGEyNTYgZ3JvdXBzPWZmZGhlMjA0OCB0bHMxM19rZXhfbW9kZXM9ZXBoZW1lcmFsIGNvb2tpZXM9MCB0aWNrZXRzPTAiIFwKKyAgICAgICAgICIkT19ORVhUX0NMSV9OT19DRVJUIC1DQWZpbGUgJERBVEFfRklMRVNfUEFUSC90ZXN0LWNhMi5jcnQgLWdyb3VwcyBYMjU1MTk6ZmZkaGUyMDQ4IC1tc2cgLXRsczFfMyIgXAogICAgICAgICAgMCBcCiAgICAgICAgICAtcyAiUHJvdG9jb2wgaXMgVExTdjEuMyIgXAogICAgICAgICAgLXMgImdvdCBuYW1lZCBncm91cDogZmZkaGUyMDQ4KDAxMDApIiBcCkBAIC0xMjYyNCw4ICsxMjYyNiw4IEBACiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBQU0FfV0FOVF9BTEdfRUNESAogcmVxdWlyZXNfb3BlbnNzbF90bHMxXzMKIHJ1bl90ZXN0ICJUTFMgMS4zIE8tPm06IEhSUiB4NDQ4IC0+IHNlY3AyNTZyMSIgXAotICAgICAgICAgIiRQX1NSViBjcnRfZmlsZT1kYXRhX2ZpbGVzL2VjZHNhX3NlY3AyNTZyMS5jcnQga2V5X2ZpbGU9ZGF0YV9maWxlcy9lY2RzYV9zZWNwMjU2cjEua2V5IGRlYnVnX2xldmVsPTQgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDI1NnIxX3NoYTI1NiBncm91cHM9c2VjcDI1NnIxIHRsczEzX2tleF9tb2Rlcz1lcGhlbWVyYWwgY29va2llcz0wIHRpY2tldHM9MCIgXAotICAgICAgICAgIiRPX05FWFRfQ0xJX05PX0NFUlQgLUNBZmlsZSBkYXRhX2ZpbGVzL3Rlc3QtY2EyLmNydCAtZ3JvdXBzIFg0NDg6UC0yNTYgLW1zZyAtdGxzMV8zIiBcCisgICAgICAgICAiJFBfU1JWIGNydF9maWxlPSREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDI1NnIxLmNydCBrZXlfZmlsZT0kREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3AyNTZyMS5rZXkgZGVidWdfbGV2ZWw9NCBzaWdfYWxncz1lY2RzYV9zZWNwMjU2cjFfc2hhMjU2IGdyb3Vwcz1zZWNwMjU2cjEgdGxzMTNfa2V4X21vZGVzPWVwaGVtZXJhbCBjb29raWVzPTAgdGlja2V0cz0wIiBcCisgICAgICAgICAiJE9fTkVYVF9DTElfTk9fQ0VSVCAtQ0FmaWxlICREQVRBX0ZJTEVTX1BBVEgvdGVzdC1jYTIuY3J0IC1ncm91cHMgWDQ0ODpQLTI1NiAtbXNnIC10bHMxXzMiIFwKICAgICAgICAgIDAgXAogICAgICAgICAgLXMgIlByb3RvY29sIGlzIFRMU3YxLjMiIFwKICAgICAgICAgIC1zICJnb3QgbmFtZWQgZ3JvdXA6IHNlY3AyNTZyMSgwMDE3KSIgXApAQCAtMTI2MzksOCArMTI2NDEsOCBAQAogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgUFNBX1dBTlRfQUxHX0VDREgKIHJlcXVpcmVzX29wZW5zc2xfdGxzMV8zCiBydW5fdGVzdCAiVExTIDEuMyBPLT5tOiBIUlIgeDQ0OCAtPiBzZWNwMzg0cjEiIFwKLSAgICAgICAgICIkUF9TUlYgY3J0X2ZpbGU9ZGF0YV9maWxlcy9lY2RzYV9zZWNwMjU2cjEuY3J0IGtleV9maWxlPWRhdGFfZmlsZXMvZWNkc2Ffc2VjcDI1NnIxLmtleSBkZWJ1Z19sZXZlbD00IHNpZ19hbGdzPWVjZHNhX3NlY3AyNTZyMV9zaGEyNTYgZ3JvdXBzPXNlY3AzODRyMSB0bHMxM19rZXhfbW9kZXM9ZXBoZW1lcmFsIGNvb2tpZXM9MCB0aWNrZXRzPTAiIFwKLSAgICAgICAgICIkT19ORVhUX0NMSV9OT19DRVJUIC1DQWZpbGUgZGF0YV9maWxlcy90ZXN0LWNhMi5jcnQgLWdyb3VwcyBYNDQ4OlAtMzg0IC1tc2cgLXRsczFfMyIgXAorICAgICAgICAgIiRQX1NSViBjcnRfZmlsZT0kREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3AyNTZyMS5jcnQga2V5X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwMjU2cjEua2V5IGRlYnVnX2xldmVsPTQgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDI1NnIxX3NoYTI1NiBncm91cHM9c2VjcDM4NHIxIHRsczEzX2tleF9tb2Rlcz1lcGhlbWVyYWwgY29va2llcz0wIHRpY2tldHM9MCIgXAorICAgICAgICAgIiRPX05FWFRfQ0xJX05PX0NFUlQgLUNBZmlsZSAkREFUQV9GSUxFU19QQVRIL3Rlc3QtY2EyLmNydCAtZ3JvdXBzIFg0NDg6UC0zODQgLW1zZyAtdGxzMV8zIiBcCiAgICAgICAgICAwIFwKICAgICAgICAgIC1zICJQcm90b2NvbCBpcyBUTFN2MS4zIiBcCiAgICAgICAgICAtcyAiZ290IG5hbWVkIGdyb3VwOiBzZWNwMzg0cjEoMDAxOCkiIFwKQEAgLTEyNjU0LDggKzEyNjU2LDggQEAKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIFBTQV9XQU5UX0FMR19FQ0RICiByZXF1aXJlc19vcGVuc3NsX3RsczFfMwogcnVuX3Rlc3QgIlRMUyAxLjMgTy0+bTogSFJSIHg0NDggLT4gc2VjcDUyMXIxIiBcCi0gICAgICAgICAiJFBfU1JWIGNydF9maWxlPWRhdGFfZmlsZXMvZWNkc2Ffc2VjcDI1NnIxLmNydCBrZXlfZmlsZT1kYXRhX2ZpbGVzL2VjZHNhX3NlY3AyNTZyMS5rZXkgZGVidWdfbGV2ZWw9NCBzaWdfYWxncz1lY2RzYV9zZWNwMjU2cjFfc2hhMjU2IGdyb3Vwcz1zZWNwNTIxcjEgdGxzMTNfa2V4X21vZGVzPWVwaGVtZXJhbCBjb29raWVzPTAgdGlja2V0cz0wIiBcCi0gICAgICAgICAiJE9fTkVYVF9DTElfTk9fQ0VSVCAtQ0FmaWxlIGRhdGFfZmlsZXMvdGVzdC1jYTIuY3J0IC1ncm91cHMgWDQ0ODpQLTUyMSAtbXNnIC10bHMxXzMiIFwKKyAgICAgICAgICIkUF9TUlYgY3J0X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwMjU2cjEuY3J0IGtleV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDI1NnIxLmtleSBkZWJ1Z19sZXZlbD00IHNpZ19hbGdzPWVjZHNhX3NlY3AyNTZyMV9zaGEyNTYgZ3JvdXBzPXNlY3A1MjFyMSB0bHMxM19rZXhfbW9kZXM9ZXBoZW1lcmFsIGNvb2tpZXM9MCB0aWNrZXRzPTAiIFwKKyAgICAgICAgICIkT19ORVhUX0NMSV9OT19DRVJUIC1DQWZpbGUgJERBVEFfRklMRVNfUEFUSC90ZXN0LWNhMi5jcnQgLWdyb3VwcyBYNDQ4OlAtNTIxIC1tc2cgLXRsczFfMyIgXAogICAgICAgICAgMCBcCiAgICAgICAgICAtcyAiUHJvdG9jb2wgaXMgVExTdjEuMyIgXAogICAgICAgICAgLXMgImdvdCBuYW1lZCBncm91cDogc2VjcDUyMXIxKDAwMTkpIiBcCkBAIC0xMjY2OSw4ICsxMjY3MSw4IEBACiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBQU0FfV0FOVF9BTEdfRUNESAogcmVxdWlyZXNfb3BlbnNzbF90bHMxXzMKIHJ1bl90ZXN0ICJUTFMgMS4zIE8tPm06IEhSUiB4NDQ4IC0+IHgyNTUxOSIgXAotICAgICAgICAgIiRQX1NSViBjcnRfZmlsZT1kYXRhX2ZpbGVzL2VjZHNhX3NlY3AyNTZyMS5jcnQga2V5X2ZpbGU9ZGF0YV9maWxlcy9lY2RzYV9zZWNwMjU2cjEua2V5IGRlYnVnX2xldmVsPTQgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDI1NnIxX3NoYTI1NiBncm91cHM9eDI1NTE5IHRsczEzX2tleF9tb2Rlcz1lcGhlbWVyYWwgY29va2llcz0wIHRpY2tldHM9MCIgXAotICAgICAgICAgIiRPX05FWFRfQ0xJX05PX0NFUlQgLUNBZmlsZSBkYXRhX2ZpbGVzL3Rlc3QtY2EyLmNydCAtZ3JvdXBzIFg0NDg6WDI1NTE5IC1tc2cgLXRsczFfMyIgXAorICAgICAgICAgIiRQX1NSViBjcnRfZmlsZT0kREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3AyNTZyMS5jcnQga2V5X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwMjU2cjEua2V5IGRlYnVnX2xldmVsPTQgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDI1NnIxX3NoYTI1NiBncm91cHM9eDI1NTE5IHRsczEzX2tleF9tb2Rlcz1lcGhlbWVyYWwgY29va2llcz0wIHRpY2tldHM9MCIgXAorICAgICAgICAgIiRPX05FWFRfQ0xJX05PX0NFUlQgLUNBZmlsZSAkREFUQV9GSUxFU19QQVRIL3Rlc3QtY2EyLmNydCAtZ3JvdXBzIFg0NDg6WDI1NTE5IC1tc2cgLXRsczFfMyIgXAogICAgICAgICAgMCBcCiAgICAgICAgICAtcyAiUHJvdG9jb2wgaXMgVExTdjEuMyIgXAogICAgICAgICAgLXMgImdvdCBuYW1lZCBncm91cDogeDI1NTE5KDAwMWQpIiBcCkBAIC0xMjY4NSw4ICsxMjY4Nyw4IEBACiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBQU0FfV0FOVF9ESF9SRkM3OTE5XzIwNDgKIHJlcXVpcmVzX29wZW5zc2xfdGxzMV8zX3dpdGhfZmZkaAogcnVuX3Rlc3QgIlRMUyAxLjMgTy0+bTogSFJSIHg0NDggLT4gZmZkaGUyMDQ4IiBcCi0gICAgICAgICAiJFBfU1JWIGNydF9maWxlPWRhdGFfZmlsZXMvZWNkc2Ffc2VjcDI1NnIxLmNydCBrZXlfZmlsZT1kYXRhX2ZpbGVzL2VjZHNhX3NlY3AyNTZyMS5rZXkgZGVidWdfbGV2ZWw9NCBzaWdfYWxncz1lY2RzYV9zZWNwMjU2cjFfc2hhMjU2IGdyb3Vwcz1mZmRoZTIwNDggdGxzMTNfa2V4X21vZGVzPWVwaGVtZXJhbCBjb29raWVzPTAgdGlja2V0cz0wIiBcCi0gICAgICAgICAiJE9fTkVYVF9DTElfTk9fQ0VSVCAtQ0FmaWxlIGRhdGFfZmlsZXMvdGVzdC1jYTIuY3J0IC1ncm91cHMgWDQ0ODpmZmRoZTIwNDggLW1zZyAtdGxzMV8zIiBcCisgICAgICAgICAiJFBfU1JWIGNydF9maWxlPSREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDI1NnIxLmNydCBrZXlfZmlsZT0kREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3AyNTZyMS5rZXkgZGVidWdfbGV2ZWw9NCBzaWdfYWxncz1lY2RzYV9zZWNwMjU2cjFfc2hhMjU2IGdyb3Vwcz1mZmRoZTIwNDggdGxzMTNfa2V4X21vZGVzPWVwaGVtZXJhbCBjb29raWVzPTAgdGlja2V0cz0wIiBcCisgICAgICAgICAiJE9fTkVYVF9DTElfTk9fQ0VSVCAtQ0FmaWxlICREQVRBX0ZJTEVTX1BBVEgvdGVzdC1jYTIuY3J0IC1ncm91cHMgWDQ0ODpmZmRoZTIwNDggLW1zZyAtdGxzMV8zIiBcCiAgICAgICAgICAwIFwKICAgICAgICAgIC1zICJQcm90b2NvbCBpcyBUTFN2MS4zIiBcCiAgICAgICAgICAtcyAiZ290IG5hbWVkIGdyb3VwOiBmZmRoZTIwNDgoMDEwMCkiIFwKQEAgLTEyNzAwLDggKzEyNzAyLDggQEAKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIFBTQV9XQU5UX0FMR19FQ0RICiByZXF1aXJlc19vcGVuc3NsX3RsczFfM193aXRoX2ZmZGgKIHJ1bl90ZXN0ICJUTFMgMS4zIE8tPm06IEhSUiBmZmRoZTIwNDggLT4gc2VjcDI1NnIxIiBcCi0gICAgICAgICAiJFBfU1JWIGNydF9maWxlPWRhdGFfZmlsZXMvZWNkc2Ffc2VjcDI1NnIxLmNydCBrZXlfZmlsZT1kYXRhX2ZpbGVzL2VjZHNhX3NlY3AyNTZyMS5rZXkgZGVidWdfbGV2ZWw9NCBzaWdfYWxncz1lY2RzYV9zZWNwMjU2cjFfc2hhMjU2IGdyb3Vwcz1zZWNwMjU2cjEgdGxzMTNfa2V4X21vZGVzPWVwaGVtZXJhbCBjb29raWVzPTAgdGlja2V0cz0wIiBcCi0gICAgICAgICAiJE9fTkVYVF9DTElfTk9fQ0VSVCAtQ0FmaWxlIGRhdGFfZmlsZXMvdGVzdC1jYTIuY3J0IC1ncm91cHMgZmZkaGUyMDQ4OlAtMjU2IC1tc2cgLXRsczFfMyIgXAorICAgICAgICAgIiRQX1NSViBjcnRfZmlsZT0kREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3AyNTZyMS5jcnQga2V5X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwMjU2cjEua2V5IGRlYnVnX2xldmVsPTQgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDI1NnIxX3NoYTI1NiBncm91cHM9c2VjcDI1NnIxIHRsczEzX2tleF9tb2Rlcz1lcGhlbWVyYWwgY29va2llcz0wIHRpY2tldHM9MCIgXAorICAgICAgICAgIiRPX05FWFRfQ0xJX05PX0NFUlQgLUNBZmlsZSAkREFUQV9GSUxFU19QQVRIL3Rlc3QtY2EyLmNydCAtZ3JvdXBzIGZmZGhlMjA0ODpQLTI1NiAtbXNnIC10bHMxXzMiIFwKICAgICAgICAgIDAgXAogICAgICAgICAgLXMgIlByb3RvY29sIGlzIFRMU3YxLjMiIFwKICAgICAgICAgIC1zICJnb3QgbmFtZWQgZ3JvdXA6IHNlY3AyNTZyMSgwMDE3KSIgXApAQCAtMTI3MTUsOCArMTI3MTcsOCBAQAogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgUFNBX1dBTlRfQUxHX0VDREgKIHJlcXVpcmVzX29wZW5zc2xfdGxzMV8zX3dpdGhfZmZkaAogcnVuX3Rlc3QgIlRMUyAxLjMgTy0+bTogSFJSIGZmZGhlMjA0OCAtPiBzZWNwMzg0cjEiIFwKLSAgICAgICAgICIkUF9TUlYgY3J0X2ZpbGU9ZGF0YV9maWxlcy9lY2RzYV9zZWNwMjU2cjEuY3J0IGtleV9maWxlPWRhdGFfZmlsZXMvZWNkc2Ffc2VjcDI1NnIxLmtleSBkZWJ1Z19sZXZlbD00IHNpZ19hbGdzPWVjZHNhX3NlY3AyNTZyMV9zaGEyNTYgZ3JvdXBzPXNlY3AzODRyMSB0bHMxM19rZXhfbW9kZXM9ZXBoZW1lcmFsIGNvb2tpZXM9MCB0aWNrZXRzPTAiIFwKLSAgICAgICAgICIkT19ORVhUX0NMSV9OT19DRVJUIC1DQWZpbGUgZGF0YV9maWxlcy90ZXN0LWNhMi5jcnQgLWdyb3VwcyBmZmRoZTIwNDg6UC0zODQgLW1zZyAtdGxzMV8zIiBcCisgICAgICAgICAiJFBfU1JWIGNydF9maWxlPSREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDI1NnIxLmNydCBrZXlfZmlsZT0kREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3AyNTZyMS5rZXkgZGVidWdfbGV2ZWw9NCBzaWdfYWxncz1lY2RzYV9zZWNwMjU2cjFfc2hhMjU2IGdyb3Vwcz1zZWNwMzg0cjEgdGxzMTNfa2V4X21vZGVzPWVwaGVtZXJhbCBjb29raWVzPTAgdGlja2V0cz0wIiBcCisgICAgICAgICAiJE9fTkVYVF9DTElfTk9fQ0VSVCAtQ0FmaWxlICREQVRBX0ZJTEVTX1BBVEgvdGVzdC1jYTIuY3J0IC1ncm91cHMgZmZkaGUyMDQ4OlAtMzg0IC1tc2cgLXRsczFfMyIgXAogICAgICAgICAgMCBcCiAgICAgICAgICAtcyAiUHJvdG9jb2wgaXMgVExTdjEuMyIgXAogICAgICAgICAgLXMgImdvdCBuYW1lZCBncm91cDogc2VjcDM4NHIxKDAwMTgpIiBcCkBAIC0xMjczMCw4ICsxMjczMiw4IEBACiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBQU0FfV0FOVF9BTEdfRUNESAogcmVxdWlyZXNfb3BlbnNzbF90bHMxXzNfd2l0aF9mZmRoCiBydW5fdGVzdCAiVExTIDEuMyBPLT5tOiBIUlIgZmZkaGUyMDQ4IC0+IHNlY3A1MjFyMSIgXAotICAgICAgICAgIiRQX1NSViBjcnRfZmlsZT1kYXRhX2ZpbGVzL2VjZHNhX3NlY3AyNTZyMS5jcnQga2V5X2ZpbGU9ZGF0YV9maWxlcy9lY2RzYV9zZWNwMjU2cjEua2V5IGRlYnVnX2xldmVsPTQgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDI1NnIxX3NoYTI1NiBncm91cHM9c2VjcDUyMXIxIHRsczEzX2tleF9tb2Rlcz1lcGhlbWVyYWwgY29va2llcz0wIHRpY2tldHM9MCIgXAotICAgICAgICAgIiRPX05FWFRfQ0xJX05PX0NFUlQgLUNBZmlsZSBkYXRhX2ZpbGVzL3Rlc3QtY2EyLmNydCAtZ3JvdXBzIGZmZGhlMjA0ODpQLTUyMSAtbXNnIC10bHMxXzMiIFwKKyAgICAgICAgICIkUF9TUlYgY3J0X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwMjU2cjEuY3J0IGtleV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDI1NnIxLmtleSBkZWJ1Z19sZXZlbD00IHNpZ19hbGdzPWVjZHNhX3NlY3AyNTZyMV9zaGEyNTYgZ3JvdXBzPXNlY3A1MjFyMSB0bHMxM19rZXhfbW9kZXM9ZXBoZW1lcmFsIGNvb2tpZXM9MCB0aWNrZXRzPTAiIFwKKyAgICAgICAgICIkT19ORVhUX0NMSV9OT19DRVJUIC1DQWZpbGUgJERBVEFfRklMRVNfUEFUSC90ZXN0LWNhMi5jcnQgLWdyb3VwcyBmZmRoZTIwNDg6UC01MjEgLW1zZyAtdGxzMV8zIiBcCiAgICAgICAgICAwIFwKICAgICAgICAgIC1zICJQcm90b2NvbCBpcyBUTFN2MS4zIiBcCiAgICAgICAgICAtcyAiZ290IG5hbWVkIGdyb3VwOiBzZWNwNTIxcjEoMDAxOSkiIFwKQEAgLTEyNzQ1LDggKzEyNzQ3LDggQEAKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIFBTQV9XQU5UX0FMR19FQ0RICiByZXF1aXJlc19vcGVuc3NsX3RsczFfM193aXRoX2ZmZGgKIHJ1bl90ZXN0ICJUTFMgMS4zIE8tPm06IEhSUiBmZmRoZTIwNDggLT4geDI1NTE5IiBcCi0gICAgICAgICAiJFBfU1JWIGNydF9maWxlPWRhdGFfZmlsZXMvZWNkc2Ffc2VjcDI1NnIxLmNydCBrZXlfZmlsZT1kYXRhX2ZpbGVzL2VjZHNhX3NlY3AyNTZyMS5rZXkgZGVidWdfbGV2ZWw9NCBzaWdfYWxncz1lY2RzYV9zZWNwMjU2cjFfc2hhMjU2IGdyb3Vwcz14MjU1MTkgdGxzMTNfa2V4X21vZGVzPWVwaGVtZXJhbCBjb29raWVzPTAgdGlja2V0cz0wIiBcCi0gICAgICAgICAiJE9fTkVYVF9DTElfTk9fQ0VSVCAtQ0FmaWxlIGRhdGFfZmlsZXMvdGVzdC1jYTIuY3J0IC1ncm91cHMgZmZkaGUyMDQ4OlgyNTUxOSAtbXNnIC10bHMxXzMiIFwKKyAgICAgICAgICIkUF9TUlYgY3J0X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwMjU2cjEuY3J0IGtleV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDI1NnIxLmtleSBkZWJ1Z19sZXZlbD00IHNpZ19hbGdzPWVjZHNhX3NlY3AyNTZyMV9zaGEyNTYgZ3JvdXBzPXgyNTUxOSB0bHMxM19rZXhfbW9kZXM9ZXBoZW1lcmFsIGNvb2tpZXM9MCB0aWNrZXRzPTAiIFwKKyAgICAgICAgICIkT19ORVhUX0NMSV9OT19DRVJUIC1DQWZpbGUgJERBVEFfRklMRVNfUEFUSC90ZXN0LWNhMi5jcnQgLWdyb3VwcyBmZmRoZTIwNDg6WDI1NTE5IC1tc2cgLXRsczFfMyIgXAogICAgICAgICAgMCBcCiAgICAgICAgICAtcyAiUHJvdG9jb2wgaXMgVExTdjEuMyIgXAogICAgICAgICAgLXMgImdvdCBuYW1lZCBncm91cDogeDI1NTE5KDAwMWQpIiBcCkBAIC0xMjc2MCw4ICsxMjc2Miw4IEBACiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBQU0FfV0FOVF9BTEdfRUNESAogcmVxdWlyZXNfb3BlbnNzbF90bHMxXzNfd2l0aF9mZmRoCiBydW5fdGVzdCAiVExTIDEuMyBPLT5tOiBIUlIgZmZkaGUyMDQ4IC0+IHg0NDgiIFwKLSAgICAgICAgICIkUF9TUlYgY3J0X2ZpbGU9ZGF0YV9maWxlcy9lY2RzYV9zZWNwMjU2cjEuY3J0IGtleV9maWxlPWRhdGFfZmlsZXMvZWNkc2Ffc2VjcDI1NnIxLmtleSBkZWJ1Z19sZXZlbD00IHNpZ19hbGdzPWVjZHNhX3NlY3AyNTZyMV9zaGEyNTYgZ3JvdXBzPXg0NDggdGxzMTNfa2V4X21vZGVzPWVwaGVtZXJhbCBjb29raWVzPTAgdGlja2V0cz0wIiBcCi0gICAgICAgICAiJE9fTkVYVF9DTElfTk9fQ0VSVCAtQ0FmaWxlIGRhdGFfZmlsZXMvdGVzdC1jYTIuY3J0IC1ncm91cHMgZmZkaGUyMDQ4Olg0NDggLW1zZyAtdGxzMV8zIiBcCisgICAgICAgICAiJFBfU1JWIGNydF9maWxlPSREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDI1NnIxLmNydCBrZXlfZmlsZT0kREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3AyNTZyMS5rZXkgZGVidWdfbGV2ZWw9NCBzaWdfYWxncz1lY2RzYV9zZWNwMjU2cjFfc2hhMjU2IGdyb3Vwcz14NDQ4IHRsczEzX2tleF9tb2Rlcz1lcGhlbWVyYWwgY29va2llcz0wIHRpY2tldHM9MCIgXAorICAgICAgICAgIiRPX05FWFRfQ0xJX05PX0NFUlQgLUNBZmlsZSAkREFUQV9GSUxFU19QQVRIL3Rlc3QtY2EyLmNydCAtZ3JvdXBzIGZmZGhlMjA0ODpYNDQ4IC1tc2cgLXRsczFfMyIgXAogICAgICAgICAgMCBcCiAgICAgICAgICAtcyAiUHJvdG9jb2wgaXMgVExTdjEuMyIgXAogICAgICAgICAgLXMgImdvdCBuYW1lZCBncm91cDogeDQ0OCgwMDFlKSIgXApAQCAtMTI3NzcsOCArMTI3NzksOCBAQAogcmVxdWlyZXNfZ251dGxzX25leHRfbm9fdGlja2V0CiByZXF1aXJlc19nbnV0bHNfbmV4dF9kaXNhYmxlX3RsczEzX2NvbXBhdAogcnVuX3Rlc3QgIlRMUyAxLjMgRy0+bTogSFJSIHNlY3AyNTZyMSAtPiBzZWNwMzg0cjEiIFwKLSAgICAgICAgICIkUF9TUlYgY3J0X2ZpbGU9ZGF0YV9maWxlcy9lY2RzYV9zZWNwMjU2cjEuY3J0IGtleV9maWxlPWRhdGFfZmlsZXMvZWNkc2Ffc2VjcDI1NnIxLmtleSBkZWJ1Z19sZXZlbD00IHNpZ19hbGdzPWVjZHNhX3NlY3AyNTZyMV9zaGEyNTYgZ3JvdXBzPXNlY3AzODRyMSB0bHMxM19rZXhfbW9kZXM9ZXBoZW1lcmFsIGNvb2tpZXM9MCB0aWNrZXRzPTAiIFwKLSAgICAgICAgICIkR19ORVhUX0NMSV9OT19DRVJUIC0tZGVidWc9NCAtLXNpbmdsZS1rZXktc2hhcmUgLS14NTA5Y2FmaWxlIGRhdGFfZmlsZXMvdGVzdC1jYTIuY3J0IC0tcHJpb3JpdHk9Tk9ORTorQ0lQSEVSLUFMTDorTUFDLUFMTDorU0lHTi1BTEw6K0dST1VQLVNFQ1AyNTZSMTorR1JPVVAtU0VDUDM4NFIxOitWRVJTLVRMUzEuMzolTk9fVElDS0VUUyIgXAorICAgICAgICAgIiRQX1NSViBjcnRfZmlsZT0kREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3AyNTZyMS5jcnQga2V5X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwMjU2cjEua2V5IGRlYnVnX2xldmVsPTQgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDI1NnIxX3NoYTI1NiBncm91cHM9c2VjcDM4NHIxIHRsczEzX2tleF9tb2Rlcz1lcGhlbWVyYWwgY29va2llcz0wIHRpY2tldHM9MCIgXAorICAgICAgICAgIiRHX05FWFRfQ0xJX05PX0NFUlQgLS1kZWJ1Zz00IC0tc2luZ2xlLWtleS1zaGFyZSAtLXg1MDljYWZpbGUgJERBVEFfRklMRVNfUEFUSC90ZXN0LWNhMi5jcnQgLS1wcmlvcml0eT1OT05FOitDSVBIRVItQUxMOitNQUMtQUxMOitTSUdOLUFMTDorR1JPVVAtU0VDUDI1NlIxOitHUk9VUC1TRUNQMzg0UjE6K1ZFUlMtVExTMS4zOiVOT19USUNLRVRTIiBcCiAgICAgICAgICAwIFwKICAgICAgICAgIC1zICJQcm90b2NvbCBpcyBUTFN2MS4zIiBcCiAgICAgICAgICAtcyAiZ290IG5hbWVkIGdyb3VwOiBzZWNwMzg0cjEoMDAxOCkiIFwKQEAgLTEyNzk0LDggKzEyNzk2LDggQEAKIHJlcXVpcmVzX2dudXRsc19uZXh0X25vX3RpY2tldAogcmVxdWlyZXNfZ251dGxzX25leHRfZGlzYWJsZV90bHMxM19jb21wYXQKIHJ1bl90ZXN0ICJUTFMgMS4zIEctPm06IEhSUiBzZWNwMjU2cjEgLT4gc2VjcDUyMXIxIiBcCi0gICAgICAgICAiJFBfU1JWIGNydF9maWxlPWRhdGFfZmlsZXMvZWNkc2Ffc2VjcDI1NnIxLmNydCBrZXlfZmlsZT1kYXRhX2ZpbGVzL2VjZHNhX3NlY3AyNTZyMS5rZXkgZGVidWdfbGV2ZWw9NCBzaWdfYWxncz1lY2RzYV9zZWNwMjU2cjFfc2hhMjU2IGdyb3Vwcz1zZWNwNTIxcjEgdGxzMTNfa2V4X21vZGVzPWVwaGVtZXJhbCBjb29raWVzPTAgdGlja2V0cz0wIiBcCi0gICAgICAgICAiJEdfTkVYVF9DTElfTk9fQ0VSVCAtLWRlYnVnPTQgLS1zaW5nbGUta2V5LXNoYXJlIC0teDUwOWNhZmlsZSBkYXRhX2ZpbGVzL3Rlc3QtY2EyLmNydCAtLXByaW9yaXR5PU5PTkU6K0NJUEhFUi1BTEw6K01BQy1BTEw6K1NJR04tQUxMOitHUk9VUC1TRUNQMjU2UjE6K0dST1VQLVNFQ1A1MjFSMTorVkVSUy1UTFMxLjM6JU5PX1RJQ0tFVFMiIFwKKyAgICAgICAgICIkUF9TUlYgY3J0X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwMjU2cjEuY3J0IGtleV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDI1NnIxLmtleSBkZWJ1Z19sZXZlbD00IHNpZ19hbGdzPWVjZHNhX3NlY3AyNTZyMV9zaGEyNTYgZ3JvdXBzPXNlY3A1MjFyMSB0bHMxM19rZXhfbW9kZXM9ZXBoZW1lcmFsIGNvb2tpZXM9MCB0aWNrZXRzPTAiIFwKKyAgICAgICAgICIkR19ORVhUX0NMSV9OT19DRVJUIC0tZGVidWc9NCAtLXNpbmdsZS1rZXktc2hhcmUgLS14NTA5Y2FmaWxlICREQVRBX0ZJTEVTX1BBVEgvdGVzdC1jYTIuY3J0IC0tcHJpb3JpdHk9Tk9ORTorQ0lQSEVSLUFMTDorTUFDLUFMTDorU0lHTi1BTEw6K0dST1VQLVNFQ1AyNTZSMTorR1JPVVAtU0VDUDUyMVIxOitWRVJTLVRMUzEuMzolTk9fVElDS0VUUyIgXAogICAgICAgICAgMCBcCiAgICAgICAgICAtcyAiUHJvdG9jb2wgaXMgVExTdjEuMyIgXAogICAgICAgICAgLXMgImdvdCBuYW1lZCBncm91cDogc2VjcDUyMXIxKDAwMTkpIiBcCkBAIC0xMjgxMSw4ICsxMjgxMyw4IEBACiByZXF1aXJlc19nbnV0bHNfbmV4dF9ub190aWNrZXQKIHJlcXVpcmVzX2dudXRsc19uZXh0X2Rpc2FibGVfdGxzMTNfY29tcGF0CiBydW5fdGVzdCAiVExTIDEuMyBHLT5tOiBIUlIgc2VjcDI1NnIxIC0+IHgyNTUxOSIgXAotICAgICAgICAgIiRQX1NSViBjcnRfZmlsZT1kYXRhX2ZpbGVzL2VjZHNhX3NlY3AyNTZyMS5jcnQga2V5X2ZpbGU9ZGF0YV9maWxlcy9lY2RzYV9zZWNwMjU2cjEua2V5IGRlYnVnX2xldmVsPTQgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDI1NnIxX3NoYTI1NiBncm91cHM9eDI1NTE5IHRsczEzX2tleF9tb2Rlcz1lcGhlbWVyYWwgY29va2llcz0wIHRpY2tldHM9MCIgXAotICAgICAgICAgIiRHX05FWFRfQ0xJX05PX0NFUlQgLS1kZWJ1Zz00IC0tc2luZ2xlLWtleS1zaGFyZSAtLXg1MDljYWZpbGUgZGF0YV9maWxlcy90ZXN0LWNhMi5jcnQgLS1wcmlvcml0eT1OT05FOitDSVBIRVItQUxMOitNQUMtQUxMOitTSUdOLUFMTDorR1JPVVAtU0VDUDI1NlIxOitHUk9VUC1YMjU1MTk6K1ZFUlMtVExTMS4zOiVOT19USUNLRVRTIiBcCisgICAgICAgICAiJFBfU1JWIGNydF9maWxlPSREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDI1NnIxLmNydCBrZXlfZmlsZT0kREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3AyNTZyMS5rZXkgZGVidWdfbGV2ZWw9NCBzaWdfYWxncz1lY2RzYV9zZWNwMjU2cjFfc2hhMjU2IGdyb3Vwcz14MjU1MTkgdGxzMTNfa2V4X21vZGVzPWVwaGVtZXJhbCBjb29raWVzPTAgdGlja2V0cz0wIiBcCisgICAgICAgICAiJEdfTkVYVF9DTElfTk9fQ0VSVCAtLWRlYnVnPTQgLS1zaW5nbGUta2V5LXNoYXJlIC0teDUwOWNhZmlsZSAkREFUQV9GSUxFU19QQVRIL3Rlc3QtY2EyLmNydCAtLXByaW9yaXR5PU5PTkU6K0NJUEhFUi1BTEw6K01BQy1BTEw6K1NJR04tQUxMOitHUk9VUC1TRUNQMjU2UjE6K0dST1VQLVgyNTUxOTorVkVSUy1UTFMxLjM6JU5PX1RJQ0tFVFMiIFwKICAgICAgICAgIDAgXAogICAgICAgICAgLXMgIlByb3RvY29sIGlzIFRMU3YxLjMiIFwKICAgICAgICAgIC1zICJnb3QgbmFtZWQgZ3JvdXA6IHgyNTUxOSgwMDFkKSIgXApAQCAtMTI4MjgsOCArMTI4MzAsOCBAQAogcmVxdWlyZXNfZ251dGxzX25leHRfbm9fdGlja2V0CiByZXF1aXJlc19nbnV0bHNfbmV4dF9kaXNhYmxlX3RsczEzX2NvbXBhdAogcnVuX3Rlc3QgIlRMUyAxLjMgRy0+bTogSFJSIHNlY3AyNTZyMSAtPiB4NDQ4IiBcCi0gICAgICAgICAiJFBfU1JWIGNydF9maWxlPWRhdGFfZmlsZXMvZWNkc2Ffc2VjcDI1NnIxLmNydCBrZXlfZmlsZT1kYXRhX2ZpbGVzL2VjZHNhX3NlY3AyNTZyMS5rZXkgZGVidWdfbGV2ZWw9NCBzaWdfYWxncz1lY2RzYV9zZWNwMjU2cjFfc2hhMjU2IGdyb3Vwcz14NDQ4IHRsczEzX2tleF9tb2Rlcz1lcGhlbWVyYWwgY29va2llcz0wIHRpY2tldHM9MCIgXAotICAgICAgICAgIiRHX05FWFRfQ0xJX05PX0NFUlQgLS1kZWJ1Zz00IC0tc2luZ2xlLWtleS1zaGFyZSAtLXg1MDljYWZpbGUgZGF0YV9maWxlcy90ZXN0LWNhMi5jcnQgLS1wcmlvcml0eT1OT05FOitDSVBIRVItQUxMOitNQUMtQUxMOitTSUdOLUFMTDorR1JPVVAtU0VDUDI1NlIxOitHUk9VUC1YNDQ4OitWRVJTLVRMUzEuMzolTk9fVElDS0VUUyIgXAorICAgICAgICAgIiRQX1NSViBjcnRfZmlsZT0kREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3AyNTZyMS5jcnQga2V5X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwMjU2cjEua2V5IGRlYnVnX2xldmVsPTQgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDI1NnIxX3NoYTI1NiBncm91cHM9eDQ0OCB0bHMxM19rZXhfbW9kZXM9ZXBoZW1lcmFsIGNvb2tpZXM9MCB0aWNrZXRzPTAiIFwKKyAgICAgICAgICIkR19ORVhUX0NMSV9OT19DRVJUIC0tZGVidWc9NCAtLXNpbmdsZS1rZXktc2hhcmUgLS14NTA5Y2FmaWxlICREQVRBX0ZJTEVTX1BBVEgvdGVzdC1jYTIuY3J0IC0tcHJpb3JpdHk9Tk9ORTorQ0lQSEVSLUFMTDorTUFDLUFMTDorU0lHTi1BTEw6K0dST1VQLVNFQ1AyNTZSMTorR1JPVVAtWDQ0ODorVkVSUy1UTFMxLjM6JU5PX1RJQ0tFVFMiIFwKICAgICAgICAgIDAgXAogICAgICAgICAgLXMgIlByb3RvY29sIGlzIFRMU3YxLjMiIFwKICAgICAgICAgIC1zICJnb3QgbmFtZWQgZ3JvdXA6IHg0NDgoMDAxZSkiIFwKQEAgLTEyODQ2LDggKzEyODQ4LDggQEAKIHJlcXVpcmVzX2dudXRsc19uZXh0X25vX3RpY2tldAogcmVxdWlyZXNfZ251dGxzX25leHRfZGlzYWJsZV90bHMxM19jb21wYXQKIHJ1bl90ZXN0ICJUTFMgMS4zIEctPm06IEhSUiBzZWNwMjU2cjEgLT4gZmZkaGUyMDQ4IiBcCi0gICAgICAgICAiJFBfU1JWIGNydF9maWxlPWRhdGFfZmlsZXMvZWNkc2Ffc2VjcDI1NnIxLmNydCBrZXlfZmlsZT1kYXRhX2ZpbGVzL2VjZHNhX3NlY3AyNTZyMS5rZXkgZGVidWdfbGV2ZWw9NCBzaWdfYWxncz1lY2RzYV9zZWNwMjU2cjFfc2hhMjU2IGdyb3Vwcz1mZmRoZTIwNDggdGxzMTNfa2V4X21vZGVzPWVwaGVtZXJhbCBjb29raWVzPTAgdGlja2V0cz0wIiBcCi0gICAgICAgICAiJEdfTkVYVF9DTElfTk9fQ0VSVCAtLWRlYnVnPTQgLS1zaW5nbGUta2V5LXNoYXJlIC0teDUwOWNhZmlsZSBkYXRhX2ZpbGVzL3Rlc3QtY2EyLmNydCAtLXByaW9yaXR5PU5PTkU6K0NJUEhFUi1BTEw6K01BQy1BTEw6K1NJR04tQUxMOitHUk9VUC1TRUNQMjU2UjE6K0dST1VQLUZGREhFMjA0ODorVkVSUy1UTFMxLjM6JU5PX1RJQ0tFVFMiIFwKKyAgICAgICAgICIkUF9TUlYgY3J0X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwMjU2cjEuY3J0IGtleV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDI1NnIxLmtleSBkZWJ1Z19sZXZlbD00IHNpZ19hbGdzPWVjZHNhX3NlY3AyNTZyMV9zaGEyNTYgZ3JvdXBzPWZmZGhlMjA0OCB0bHMxM19rZXhfbW9kZXM9ZXBoZW1lcmFsIGNvb2tpZXM9MCB0aWNrZXRzPTAiIFwKKyAgICAgICAgICIkR19ORVhUX0NMSV9OT19DRVJUIC0tZGVidWc9NCAtLXNpbmdsZS1rZXktc2hhcmUgLS14NTA5Y2FmaWxlICREQVRBX0ZJTEVTX1BBVEgvdGVzdC1jYTIuY3J0IC0tcHJpb3JpdHk9Tk9ORTorQ0lQSEVSLUFMTDorTUFDLUFMTDorU0lHTi1BTEw6K0dST1VQLVNFQ1AyNTZSMTorR1JPVVAtRkZESEUyMDQ4OitWRVJTLVRMUzEuMzolTk9fVElDS0VUUyIgXAogICAgICAgICAgMCBcCiAgICAgICAgICAtcyAiUHJvdG9jb2wgaXMgVExTdjEuMyIgXAogICAgICAgICAgLXMgImdvdCBuYW1lZCBncm91cDogZmZkaGUyMDQ4KDAxMDApIiBcCkBAIC0xMjg2Myw4ICsxMjg2NSw4IEBACiByZXF1aXJlc19nbnV0bHNfbmV4dF9ub190aWNrZXQKIHJlcXVpcmVzX2dudXRsc19uZXh0X2Rpc2FibGVfdGxzMTNfY29tcGF0CiBydW5fdGVzdCAiVExTIDEuMyBHLT5tOiBIUlIgc2VjcDM4NHIxIC0+IHNlY3AyNTZyMSIgXAotICAgICAgICAgIiRQX1NSViBjcnRfZmlsZT1kYXRhX2ZpbGVzL2VjZHNhX3NlY3AyNTZyMS5jcnQga2V5X2ZpbGU9ZGF0YV9maWxlcy9lY2RzYV9zZWNwMjU2cjEua2V5IGRlYnVnX2xldmVsPTQgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDI1NnIxX3NoYTI1NiBncm91cHM9c2VjcDI1NnIxIHRsczEzX2tleF9tb2Rlcz1lcGhlbWVyYWwgY29va2llcz0wIHRpY2tldHM9MCIgXAotICAgICAgICAgIiRHX05FWFRfQ0xJX05PX0NFUlQgLS1kZWJ1Zz00IC0tc2luZ2xlLWtleS1zaGFyZSAtLXg1MDljYWZpbGUgZGF0YV9maWxlcy90ZXN0LWNhMi5jcnQgLS1wcmlvcml0eT1OT05FOitDSVBIRVItQUxMOitNQUMtQUxMOitTSUdOLUFMTDorR1JPVVAtU0VDUDM4NFIxOitHUk9VUC1TRUNQMjU2UjE6K1ZFUlMtVExTMS4zOiVOT19USUNLRVRTIiBcCisgICAgICAgICAiJFBfU1JWIGNydF9maWxlPSREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDI1NnIxLmNydCBrZXlfZmlsZT0kREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3AyNTZyMS5rZXkgZGVidWdfbGV2ZWw9NCBzaWdfYWxncz1lY2RzYV9zZWNwMjU2cjFfc2hhMjU2IGdyb3Vwcz1zZWNwMjU2cjEgdGxzMTNfa2V4X21vZGVzPWVwaGVtZXJhbCBjb29raWVzPTAgdGlja2V0cz0wIiBcCisgICAgICAgICAiJEdfTkVYVF9DTElfTk9fQ0VSVCAtLWRlYnVnPTQgLS1zaW5nbGUta2V5LXNoYXJlIC0teDUwOWNhZmlsZSAkREFUQV9GSUxFU19QQVRIL3Rlc3QtY2EyLmNydCAtLXByaW9yaXR5PU5PTkU6K0NJUEhFUi1BTEw6K01BQy1BTEw6K1NJR04tQUxMOitHUk9VUC1TRUNQMzg0UjE6K0dST1VQLVNFQ1AyNTZSMTorVkVSUy1UTFMxLjM6JU5PX1RJQ0tFVFMiIFwKICAgICAgICAgIDAgXAogICAgICAgICAgLXMgIlByb3RvY29sIGlzIFRMU3YxLjMiIFwKICAgICAgICAgIC1zICJnb3QgbmFtZWQgZ3JvdXA6IHNlY3AyNTZyMSgwMDE3KSIgXApAQCAtMTI4ODAsOCArMTI4ODIsOCBAQAogcmVxdWlyZXNfZ251dGxzX25leHRfbm9fdGlja2V0CiByZXF1aXJlc19nbnV0bHNfbmV4dF9kaXNhYmxlX3RsczEzX2NvbXBhdAogcnVuX3Rlc3QgIlRMUyAxLjMgRy0+bTogSFJSIHNlY3AzODRyMSAtPiBzZWNwNTIxcjEiIFwKLSAgICAgICAgICIkUF9TUlYgY3J0X2ZpbGU9ZGF0YV9maWxlcy9lY2RzYV9zZWNwMjU2cjEuY3J0IGtleV9maWxlPWRhdGFfZmlsZXMvZWNkc2Ffc2VjcDI1NnIxLmtleSBkZWJ1Z19sZXZlbD00IHNpZ19hbGdzPWVjZHNhX3NlY3AyNTZyMV9zaGEyNTYgZ3JvdXBzPXNlY3A1MjFyMSB0bHMxM19rZXhfbW9kZXM9ZXBoZW1lcmFsIGNvb2tpZXM9MCB0aWNrZXRzPTAiIFwKLSAgICAgICAgICIkR19ORVhUX0NMSV9OT19DRVJUIC0tZGVidWc9NCAtLXNpbmdsZS1rZXktc2hhcmUgLS14NTA5Y2FmaWxlIGRhdGFfZmlsZXMvdGVzdC1jYTIuY3J0IC0tcHJpb3JpdHk9Tk9ORTorQ0lQSEVSLUFMTDorTUFDLUFMTDorU0lHTi1BTEw6K0dST1VQLVNFQ1AzODRSMTorR1JPVVAtU0VDUDUyMVIxOitWRVJTLVRMUzEuMzolTk9fVElDS0VUUyIgXAorICAgICAgICAgIiRQX1NSViBjcnRfZmlsZT0kREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3AyNTZyMS5jcnQga2V5X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwMjU2cjEua2V5IGRlYnVnX2xldmVsPTQgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDI1NnIxX3NoYTI1NiBncm91cHM9c2VjcDUyMXIxIHRsczEzX2tleF9tb2Rlcz1lcGhlbWVyYWwgY29va2llcz0wIHRpY2tldHM9MCIgXAorICAgICAgICAgIiRHX05FWFRfQ0xJX05PX0NFUlQgLS1kZWJ1Zz00IC0tc2luZ2xlLWtleS1zaGFyZSAtLXg1MDljYWZpbGUgJERBVEFfRklMRVNfUEFUSC90ZXN0LWNhMi5jcnQgLS1wcmlvcml0eT1OT05FOitDSVBIRVItQUxMOitNQUMtQUxMOitTSUdOLUFMTDorR1JPVVAtU0VDUDM4NFIxOitHUk9VUC1TRUNQNTIxUjE6K1ZFUlMtVExTMS4zOiVOT19USUNLRVRTIiBcCiAgICAgICAgICAwIFwKICAgICAgICAgIC1zICJQcm90b2NvbCBpcyBUTFN2MS4zIiBcCiAgICAgICAgICAtcyAiZ290IG5hbWVkIGdyb3VwOiBzZWNwNTIxcjEoMDAxOSkiIFwKQEAgLTEyODk3LDggKzEyODk5LDggQEAKIHJlcXVpcmVzX2dudXRsc19uZXh0X25vX3RpY2tldAogcmVxdWlyZXNfZ251dGxzX25leHRfZGlzYWJsZV90bHMxM19jb21wYXQKIHJ1bl90ZXN0ICJUTFMgMS4zIEctPm06IEhSUiBzZWNwMzg0cjEgLT4geDI1NTE5IiBcCi0gICAgICAgICAiJFBfU1JWIGNydF9maWxlPWRhdGFfZmlsZXMvZWNkc2Ffc2VjcDI1NnIxLmNydCBrZXlfZmlsZT1kYXRhX2ZpbGVzL2VjZHNhX3NlY3AyNTZyMS5rZXkgZGVidWdfbGV2ZWw9NCBzaWdfYWxncz1lY2RzYV9zZWNwMjU2cjFfc2hhMjU2IGdyb3Vwcz14MjU1MTkgdGxzMTNfa2V4X21vZGVzPWVwaGVtZXJhbCBjb29raWVzPTAgdGlja2V0cz0wIiBcCi0gICAgICAgICAiJEdfTkVYVF9DTElfTk9fQ0VSVCAtLWRlYnVnPTQgLS1zaW5nbGUta2V5LXNoYXJlIC0teDUwOWNhZmlsZSBkYXRhX2ZpbGVzL3Rlc3QtY2EyLmNydCAtLXByaW9yaXR5PU5PTkU6K0NJUEhFUi1BTEw6K01BQy1BTEw6K1NJR04tQUxMOitHUk9VUC1TRUNQMzg0UjE6K0dST1VQLVgyNTUxOTorVkVSUy1UTFMxLjM6JU5PX1RJQ0tFVFMiIFwKKyAgICAgICAgICIkUF9TUlYgY3J0X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwMjU2cjEuY3J0IGtleV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDI1NnIxLmtleSBkZWJ1Z19sZXZlbD00IHNpZ19hbGdzPWVjZHNhX3NlY3AyNTZyMV9zaGEyNTYgZ3JvdXBzPXgyNTUxOSB0bHMxM19rZXhfbW9kZXM9ZXBoZW1lcmFsIGNvb2tpZXM9MCB0aWNrZXRzPTAiIFwKKyAgICAgICAgICIkR19ORVhUX0NMSV9OT19DRVJUIC0tZGVidWc9NCAtLXNpbmdsZS1rZXktc2hhcmUgLS14NTA5Y2FmaWxlICREQVRBX0ZJTEVTX1BBVEgvdGVzdC1jYTIuY3J0IC0tcHJpb3JpdHk9Tk9ORTorQ0lQSEVSLUFMTDorTUFDLUFMTDorU0lHTi1BTEw6K0dST1VQLVNFQ1AzODRSMTorR1JPVVAtWDI1NTE5OitWRVJTLVRMUzEuMzolTk9fVElDS0VUUyIgXAogICAgICAgICAgMCBcCiAgICAgICAgICAtcyAiUHJvdG9jb2wgaXMgVExTdjEuMyIgXAogICAgICAgICAgLXMgImdvdCBuYW1lZCBncm91cDogeDI1NTE5KDAwMWQpIiBcCkBAIC0xMjkxNCw4ICsxMjkxNiw4IEBACiByZXF1aXJlc19nbnV0bHNfbmV4dF9ub190aWNrZXQKIHJlcXVpcmVzX2dudXRsc19uZXh0X2Rpc2FibGVfdGxzMTNfY29tcGF0CiBydW5fdGVzdCAiVExTIDEuMyBHLT5tOiBIUlIgc2VjcDM4NHIxIC0+IHg0NDgiIFwKLSAgICAgICAgICIkUF9TUlYgY3J0X2ZpbGU9ZGF0YV9maWxlcy9lY2RzYV9zZWNwMjU2cjEuY3J0IGtleV9maWxlPWRhdGFfZmlsZXMvZWNkc2Ffc2VjcDI1NnIxLmtleSBkZWJ1Z19sZXZlbD00IHNpZ19hbGdzPWVjZHNhX3NlY3AyNTZyMV9zaGEyNTYgZ3JvdXBzPXg0NDggdGxzMTNfa2V4X21vZGVzPWVwaGVtZXJhbCBjb29raWVzPTAgdGlja2V0cz0wIiBcCi0gICAgICAgICAiJEdfTkVYVF9DTElfTk9fQ0VSVCAtLWRlYnVnPTQgLS1zaW5nbGUta2V5LXNoYXJlIC0teDUwOWNhZmlsZSBkYXRhX2ZpbGVzL3Rlc3QtY2EyLmNydCAtLXByaW9yaXR5PU5PTkU6K0NJUEhFUi1BTEw6K01BQy1BTEw6K1NJR04tQUxMOitHUk9VUC1TRUNQMzg0UjE6K0dST1VQLVg0NDg6K1ZFUlMtVExTMS4zOiVOT19USUNLRVRTIiBcCisgICAgICAgICAiJFBfU1JWIGNydF9maWxlPSREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDI1NnIxLmNydCBrZXlfZmlsZT0kREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3AyNTZyMS5rZXkgZGVidWdfbGV2ZWw9NCBzaWdfYWxncz1lY2RzYV9zZWNwMjU2cjFfc2hhMjU2IGdyb3Vwcz14NDQ4IHRsczEzX2tleF9tb2Rlcz1lcGhlbWVyYWwgY29va2llcz0wIHRpY2tldHM9MCIgXAorICAgICAgICAgIiRHX05FWFRfQ0xJX05PX0NFUlQgLS1kZWJ1Zz00IC0tc2luZ2xlLWtleS1zaGFyZSAtLXg1MDljYWZpbGUgJERBVEFfRklMRVNfUEFUSC90ZXN0LWNhMi5jcnQgLS1wcmlvcml0eT1OT05FOitDSVBIRVItQUxMOitNQUMtQUxMOitTSUdOLUFMTDorR1JPVVAtU0VDUDM4NFIxOitHUk9VUC1YNDQ4OitWRVJTLVRMUzEuMzolTk9fVElDS0VUUyIgXAogICAgICAgICAgMCBcCiAgICAgICAgICAtcyAiUHJvdG9jb2wgaXMgVExTdjEuMyIgXAogICAgICAgICAgLXMgImdvdCBuYW1lZCBncm91cDogeDQ0OCgwMDFlKSIgXApAQCAtMTI5MzIsOCArMTI5MzQsOCBAQAogcmVxdWlyZXNfZ251dGxzX25leHRfbm9fdGlja2V0CiByZXF1aXJlc19nbnV0bHNfbmV4dF9kaXNhYmxlX3RsczEzX2NvbXBhdAogcnVuX3Rlc3QgIlRMUyAxLjMgRy0+bTogSFJSIHNlY3AzODRyMSAtPiBmZmRoZTIwNDgiIFwKLSAgICAgICAgICIkUF9TUlYgY3J0X2ZpbGU9ZGF0YV9maWxlcy9lY2RzYV9zZWNwMjU2cjEuY3J0IGtleV9maWxlPWRhdGFfZmlsZXMvZWNkc2Ffc2VjcDI1NnIxLmtleSBkZWJ1Z19sZXZlbD00IHNpZ19hbGdzPWVjZHNhX3NlY3AyNTZyMV9zaGEyNTYgZ3JvdXBzPWZmZGhlMjA0OCB0bHMxM19rZXhfbW9kZXM9ZXBoZW1lcmFsIGNvb2tpZXM9MCB0aWNrZXRzPTAiIFwKLSAgICAgICAgICIkR19ORVhUX0NMSV9OT19DRVJUIC0tZGVidWc9NCAtLXNpbmdsZS1rZXktc2hhcmUgLS14NTA5Y2FmaWxlIGRhdGFfZmlsZXMvdGVzdC1jYTIuY3J0IC0tcHJpb3JpdHk9Tk9ORTorQ0lQSEVSLUFMTDorTUFDLUFMTDorU0lHTi1BTEw6K0dST1VQLVNFQ1AzODRSMTorR1JPVVAtRkZESEUyMDQ4OitWRVJTLVRMUzEuMzolTk9fVElDS0VUUyIgXAorICAgICAgICAgIiRQX1NSViBjcnRfZmlsZT0kREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3AyNTZyMS5jcnQga2V5X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwMjU2cjEua2V5IGRlYnVnX2xldmVsPTQgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDI1NnIxX3NoYTI1NiBncm91cHM9ZmZkaGUyMDQ4IHRsczEzX2tleF9tb2Rlcz1lcGhlbWVyYWwgY29va2llcz0wIHRpY2tldHM9MCIgXAorICAgICAgICAgIiRHX05FWFRfQ0xJX05PX0NFUlQgLS1kZWJ1Zz00IC0tc2luZ2xlLWtleS1zaGFyZSAtLXg1MDljYWZpbGUgJERBVEFfRklMRVNfUEFUSC90ZXN0LWNhMi5jcnQgLS1wcmlvcml0eT1OT05FOitDSVBIRVItQUxMOitNQUMtQUxMOitTSUdOLUFMTDorR1JPVVAtU0VDUDM4NFIxOitHUk9VUC1GRkRIRTIwNDg6K1ZFUlMtVExTMS4zOiVOT19USUNLRVRTIiBcCiAgICAgICAgICAwIFwKICAgICAgICAgIC1zICJQcm90b2NvbCBpcyBUTFN2MS4zIiBcCiAgICAgICAgICAtcyAiZ290IG5hbWVkIGdyb3VwOiBmZmRoZTIwNDgoMDEwMCkiIFwKQEAgLTEyOTQ5LDggKzEyOTUxLDggQEAKIHJlcXVpcmVzX2dudXRsc19uZXh0X25vX3RpY2tldAogcmVxdWlyZXNfZ251dGxzX25leHRfZGlzYWJsZV90bHMxM19jb21wYXQKIHJ1bl90ZXN0ICJUTFMgMS4zIEctPm06IEhSUiBzZWNwNTIxcjEgLT4gc2VjcDI1NnIxIiBcCi0gICAgICAgICAiJFBfU1JWIGNydF9maWxlPWRhdGFfZmlsZXMvZWNkc2Ffc2VjcDI1NnIxLmNydCBrZXlfZmlsZT1kYXRhX2ZpbGVzL2VjZHNhX3NlY3AyNTZyMS5rZXkgZGVidWdfbGV2ZWw9NCBzaWdfYWxncz1lY2RzYV9zZWNwMjU2cjFfc2hhMjU2IGdyb3Vwcz1zZWNwMjU2cjEgdGxzMTNfa2V4X21vZGVzPWVwaGVtZXJhbCBjb29raWVzPTAgdGlja2V0cz0wIiBcCi0gICAgICAgICAiJEdfTkVYVF9DTElfTk9fQ0VSVCAtLWRlYnVnPTQgLS1zaW5nbGUta2V5LXNoYXJlIC0teDUwOWNhZmlsZSBkYXRhX2ZpbGVzL3Rlc3QtY2EyLmNydCAtLXByaW9yaXR5PU5PTkU6K0NJUEhFUi1BTEw6K01BQy1BTEw6K1NJR04tQUxMOitHUk9VUC1TRUNQNTIxUjE6K0dST1VQLVNFQ1AyNTZSMTorVkVSUy1UTFMxLjM6JU5PX1RJQ0tFVFMiIFwKKyAgICAgICAgICIkUF9TUlYgY3J0X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwMjU2cjEuY3J0IGtleV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDI1NnIxLmtleSBkZWJ1Z19sZXZlbD00IHNpZ19hbGdzPWVjZHNhX3NlY3AyNTZyMV9zaGEyNTYgZ3JvdXBzPXNlY3AyNTZyMSB0bHMxM19rZXhfbW9kZXM9ZXBoZW1lcmFsIGNvb2tpZXM9MCB0aWNrZXRzPTAiIFwKKyAgICAgICAgICIkR19ORVhUX0NMSV9OT19DRVJUIC0tZGVidWc9NCAtLXNpbmdsZS1rZXktc2hhcmUgLS14NTA5Y2FmaWxlICREQVRBX0ZJTEVTX1BBVEgvdGVzdC1jYTIuY3J0IC0tcHJpb3JpdHk9Tk9ORTorQ0lQSEVSLUFMTDorTUFDLUFMTDorU0lHTi1BTEw6K0dST1VQLVNFQ1A1MjFSMTorR1JPVVAtU0VDUDI1NlIxOitWRVJTLVRMUzEuMzolTk9fVElDS0VUUyIgXAogICAgICAgICAgMCBcCiAgICAgICAgICAtcyAiUHJvdG9jb2wgaXMgVExTdjEuMyIgXAogICAgICAgICAgLXMgImdvdCBuYW1lZCBncm91cDogc2VjcDI1NnIxKDAwMTcpIiBcCkBAIC0xMjk2Niw4ICsxMjk2OCw4IEBACiByZXF1aXJlc19nbnV0bHNfbmV4dF9ub190aWNrZXQKIHJlcXVpcmVzX2dudXRsc19uZXh0X2Rpc2FibGVfdGxzMTNfY29tcGF0CiBydW5fdGVzdCAiVExTIDEuMyBHLT5tOiBIUlIgc2VjcDUyMXIxIC0+IHNlY3AzODRyMSIgXAotICAgICAgICAgIiRQX1NSViBjcnRfZmlsZT1kYXRhX2ZpbGVzL2VjZHNhX3NlY3AyNTZyMS5jcnQga2V5X2ZpbGU9ZGF0YV9maWxlcy9lY2RzYV9zZWNwMjU2cjEua2V5IGRlYnVnX2xldmVsPTQgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDI1NnIxX3NoYTI1NiBncm91cHM9c2VjcDM4NHIxIHRsczEzX2tleF9tb2Rlcz1lcGhlbWVyYWwgY29va2llcz0wIHRpY2tldHM9MCIgXAotICAgICAgICAgIiRHX05FWFRfQ0xJX05PX0NFUlQgLS1kZWJ1Zz00IC0tc2luZ2xlLWtleS1zaGFyZSAtLXg1MDljYWZpbGUgZGF0YV9maWxlcy90ZXN0LWNhMi5jcnQgLS1wcmlvcml0eT1OT05FOitDSVBIRVItQUxMOitNQUMtQUxMOitTSUdOLUFMTDorR1JPVVAtU0VDUDUyMVIxOitHUk9VUC1TRUNQMzg0UjE6K1ZFUlMtVExTMS4zOiVOT19USUNLRVRTIiBcCisgICAgICAgICAiJFBfU1JWIGNydF9maWxlPSREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDI1NnIxLmNydCBrZXlfZmlsZT0kREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3AyNTZyMS5rZXkgZGVidWdfbGV2ZWw9NCBzaWdfYWxncz1lY2RzYV9zZWNwMjU2cjFfc2hhMjU2IGdyb3Vwcz1zZWNwMzg0cjEgdGxzMTNfa2V4X21vZGVzPWVwaGVtZXJhbCBjb29raWVzPTAgdGlja2V0cz0wIiBcCisgICAgICAgICAiJEdfTkVYVF9DTElfTk9fQ0VSVCAtLWRlYnVnPTQgLS1zaW5nbGUta2V5LXNoYXJlIC0teDUwOWNhZmlsZSAkREFUQV9GSUxFU19QQVRIL3Rlc3QtY2EyLmNydCAtLXByaW9yaXR5PU5PTkU6K0NJUEhFUi1BTEw6K01BQy1BTEw6K1NJR04tQUxMOitHUk9VUC1TRUNQNTIxUjE6K0dST1VQLVNFQ1AzODRSMTorVkVSUy1UTFMxLjM6JU5PX1RJQ0tFVFMiIFwKICAgICAgICAgIDAgXAogICAgICAgICAgLXMgIlByb3RvY29sIGlzIFRMU3YxLjMiIFwKICAgICAgICAgIC1zICJnb3QgbmFtZWQgZ3JvdXA6IHNlY3AzODRyMSgwMDE4KSIgXApAQCAtMTI5ODMsOCArMTI5ODUsOCBAQAogcmVxdWlyZXNfZ251dGxzX25leHRfbm9fdGlja2V0CiByZXF1aXJlc19nbnV0bHNfbmV4dF9kaXNhYmxlX3RsczEzX2NvbXBhdAogcnVuX3Rlc3QgIlRMUyAxLjMgRy0+bTogSFJSIHNlY3A1MjFyMSAtPiB4MjU1MTkiIFwKLSAgICAgICAgICIkUF9TUlYgY3J0X2ZpbGU9ZGF0YV9maWxlcy9lY2RzYV9zZWNwMjU2cjEuY3J0IGtleV9maWxlPWRhdGFfZmlsZXMvZWNkc2Ffc2VjcDI1NnIxLmtleSBkZWJ1Z19sZXZlbD00IHNpZ19hbGdzPWVjZHNhX3NlY3AyNTZyMV9zaGEyNTYgZ3JvdXBzPXgyNTUxOSB0bHMxM19rZXhfbW9kZXM9ZXBoZW1lcmFsIGNvb2tpZXM9MCB0aWNrZXRzPTAiIFwKLSAgICAgICAgICIkR19ORVhUX0NMSV9OT19DRVJUIC0tZGVidWc9NCAtLXNpbmdsZS1rZXktc2hhcmUgLS14NTA5Y2FmaWxlIGRhdGFfZmlsZXMvdGVzdC1jYTIuY3J0IC0tcHJpb3JpdHk9Tk9ORTorQ0lQSEVSLUFMTDorTUFDLUFMTDorU0lHTi1BTEw6K0dST1VQLVNFQ1A1MjFSMTorR1JPVVAtWDI1NTE5OitWRVJTLVRMUzEuMzolTk9fVElDS0VUUyIgXAorICAgICAgICAgIiRQX1NSViBjcnRfZmlsZT0kREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3AyNTZyMS5jcnQga2V5X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwMjU2cjEua2V5IGRlYnVnX2xldmVsPTQgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDI1NnIxX3NoYTI1NiBncm91cHM9eDI1NTE5IHRsczEzX2tleF9tb2Rlcz1lcGhlbWVyYWwgY29va2llcz0wIHRpY2tldHM9MCIgXAorICAgICAgICAgIiRHX05FWFRfQ0xJX05PX0NFUlQgLS1kZWJ1Zz00IC0tc2luZ2xlLWtleS1zaGFyZSAtLXg1MDljYWZpbGUgJERBVEFfRklMRVNfUEFUSC90ZXN0LWNhMi5jcnQgLS1wcmlvcml0eT1OT05FOitDSVBIRVItQUxMOitNQUMtQUxMOitTSUdOLUFMTDorR1JPVVAtU0VDUDUyMVIxOitHUk9VUC1YMjU1MTk6K1ZFUlMtVExTMS4zOiVOT19USUNLRVRTIiBcCiAgICAgICAgICAwIFwKICAgICAgICAgIC1zICJQcm90b2NvbCBpcyBUTFN2MS4zIiBcCiAgICAgICAgICAtcyAiZ290IG5hbWVkIGdyb3VwOiB4MjU1MTkoMDAxZCkiIFwKQEAgLTEzMDAwLDggKzEzMDAyLDggQEAKIHJlcXVpcmVzX2dudXRsc19uZXh0X25vX3RpY2tldAogcmVxdWlyZXNfZ251dGxzX25leHRfZGlzYWJsZV90bHMxM19jb21wYXQKIHJ1bl90ZXN0ICJUTFMgMS4zIEctPm06IEhSUiBzZWNwNTIxcjEgLT4geDQ0OCIgXAotICAgICAgICAgIiRQX1NSViBjcnRfZmlsZT1kYXRhX2ZpbGVzL2VjZHNhX3NlY3AyNTZyMS5jcnQga2V5X2ZpbGU9ZGF0YV9maWxlcy9lY2RzYV9zZWNwMjU2cjEua2V5IGRlYnVnX2xldmVsPTQgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDI1NnIxX3NoYTI1NiBncm91cHM9eDQ0OCB0bHMxM19rZXhfbW9kZXM9ZXBoZW1lcmFsIGNvb2tpZXM9MCB0aWNrZXRzPTAiIFwKLSAgICAgICAgICIkR19ORVhUX0NMSV9OT19DRVJUIC0tZGVidWc9NCAtLXNpbmdsZS1rZXktc2hhcmUgLS14NTA5Y2FmaWxlIGRhdGFfZmlsZXMvdGVzdC1jYTIuY3J0IC0tcHJpb3JpdHk9Tk9ORTorQ0lQSEVSLUFMTDorTUFDLUFMTDorU0lHTi1BTEw6K0dST1VQLVNFQ1A1MjFSMTorR1JPVVAtWDQ0ODorVkVSUy1UTFMxLjM6JU5PX1RJQ0tFVFMiIFwKKyAgICAgICAgICIkUF9TUlYgY3J0X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwMjU2cjEuY3J0IGtleV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDI1NnIxLmtleSBkZWJ1Z19sZXZlbD00IHNpZ19hbGdzPWVjZHNhX3NlY3AyNTZyMV9zaGEyNTYgZ3JvdXBzPXg0NDggdGxzMTNfa2V4X21vZGVzPWVwaGVtZXJhbCBjb29raWVzPTAgdGlja2V0cz0wIiBcCisgICAgICAgICAiJEdfTkVYVF9DTElfTk9fQ0VSVCAtLWRlYnVnPTQgLS1zaW5nbGUta2V5LXNoYXJlIC0teDUwOWNhZmlsZSAkREFUQV9GSUxFU19QQVRIL3Rlc3QtY2EyLmNydCAtLXByaW9yaXR5PU5PTkU6K0NJUEhFUi1BTEw6K01BQy1BTEw6K1NJR04tQUxMOitHUk9VUC1TRUNQNTIxUjE6K0dST1VQLVg0NDg6K1ZFUlMtVExTMS4zOiVOT19USUNLRVRTIiBcCiAgICAgICAgICAwIFwKICAgICAgICAgIC1zICJQcm90b2NvbCBpcyBUTFN2MS4zIiBcCiAgICAgICAgICAtcyAiZ290IG5hbWVkIGdyb3VwOiB4NDQ4KDAwMWUpIiBcCkBAIC0xMzAxOCw4ICsxMzAyMCw4IEBACiByZXF1aXJlc19nbnV0bHNfbmV4dF9ub190aWNrZXQKIHJlcXVpcmVzX2dudXRsc19uZXh0X2Rpc2FibGVfdGxzMTNfY29tcGF0CiBydW5fdGVzdCAiVExTIDEuMyBHLT5tOiBIUlIgc2VjcDUyMXIxIC0+IGZmZGhlMjA0OCIgXAotICAgICAgICAgIiRQX1NSViBjcnRfZmlsZT1kYXRhX2ZpbGVzL2VjZHNhX3NlY3AyNTZyMS5jcnQga2V5X2ZpbGU9ZGF0YV9maWxlcy9lY2RzYV9zZWNwMjU2cjEua2V5IGRlYnVnX2xldmVsPTQgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDI1NnIxX3NoYTI1NiBncm91cHM9ZmZkaGUyMDQ4IHRsczEzX2tleF9tb2Rlcz1lcGhlbWVyYWwgY29va2llcz0wIHRpY2tldHM9MCIgXAotICAgICAgICAgIiRHX05FWFRfQ0xJX05PX0NFUlQgLS1kZWJ1Zz00IC0tc2luZ2xlLWtleS1zaGFyZSAtLXg1MDljYWZpbGUgZGF0YV9maWxlcy90ZXN0LWNhMi5jcnQgLS1wcmlvcml0eT1OT05FOitDSVBIRVItQUxMOitNQUMtQUxMOitTSUdOLUFMTDorR1JPVVAtU0VDUDUyMVIxOitHUk9VUC1GRkRIRTIwNDg6K1ZFUlMtVExTMS4zOiVOT19USUNLRVRTIiBcCisgICAgICAgICAiJFBfU1JWIGNydF9maWxlPSREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDI1NnIxLmNydCBrZXlfZmlsZT0kREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3AyNTZyMS5rZXkgZGVidWdfbGV2ZWw9NCBzaWdfYWxncz1lY2RzYV9zZWNwMjU2cjFfc2hhMjU2IGdyb3Vwcz1mZmRoZTIwNDggdGxzMTNfa2V4X21vZGVzPWVwaGVtZXJhbCBjb29raWVzPTAgdGlja2V0cz0wIiBcCisgICAgICAgICAiJEdfTkVYVF9DTElfTk9fQ0VSVCAtLWRlYnVnPTQgLS1zaW5nbGUta2V5LXNoYXJlIC0teDUwOWNhZmlsZSAkREFUQV9GSUxFU19QQVRIL3Rlc3QtY2EyLmNydCAtLXByaW9yaXR5PU5PTkU6K0NJUEhFUi1BTEw6K01BQy1BTEw6K1NJR04tQUxMOitHUk9VUC1TRUNQNTIxUjE6K0dST1VQLUZGREhFMjA0ODorVkVSUy1UTFMxLjM6JU5PX1RJQ0tFVFMiIFwKICAgICAgICAgIDAgXAogICAgICAgICAgLXMgIlByb3RvY29sIGlzIFRMU3YxLjMiIFwKICAgICAgICAgIC1zICJnb3QgbmFtZWQgZ3JvdXA6IGZmZGhlMjA0OCgwMTAwKSIgXApAQCAtMTMwMzUsOCArMTMwMzcsOCBAQAogcmVxdWlyZXNfZ251dGxzX25leHRfbm9fdGlja2V0CiByZXF1aXJlc19nbnV0bHNfbmV4dF9kaXNhYmxlX3RsczEzX2NvbXBhdAogcnVuX3Rlc3QgIlRMUyAxLjMgRy0+bTogSFJSIHgyNTUxOSAtPiBzZWNwMjU2cjEiIFwKLSAgICAgICAgICIkUF9TUlYgY3J0X2ZpbGU9ZGF0YV9maWxlcy9lY2RzYV9zZWNwMjU2cjEuY3J0IGtleV9maWxlPWRhdGFfZmlsZXMvZWNkc2Ffc2VjcDI1NnIxLmtleSBkZWJ1Z19sZXZlbD00IHNpZ19hbGdzPWVjZHNhX3NlY3AyNTZyMV9zaGEyNTYgZ3JvdXBzPXNlY3AyNTZyMSB0bHMxM19rZXhfbW9kZXM9ZXBoZW1lcmFsIGNvb2tpZXM9MCB0aWNrZXRzPTAiIFwKLSAgICAgICAgICIkR19ORVhUX0NMSV9OT19DRVJUIC0tZGVidWc9NCAtLXNpbmdsZS1rZXktc2hhcmUgLS14NTA5Y2FmaWxlIGRhdGFfZmlsZXMvdGVzdC1jYTIuY3J0IC0tcHJpb3JpdHk9Tk9ORTorQ0lQSEVSLUFMTDorTUFDLUFMTDorU0lHTi1BTEw6K0dST1VQLVgyNTUxOTorR1JPVVAtU0VDUDI1NlIxOitWRVJTLVRMUzEuMzolTk9fVElDS0VUUyIgXAorICAgICAgICAgIiRQX1NSViBjcnRfZmlsZT0kREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3AyNTZyMS5jcnQga2V5X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwMjU2cjEua2V5IGRlYnVnX2xldmVsPTQgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDI1NnIxX3NoYTI1NiBncm91cHM9c2VjcDI1NnIxIHRsczEzX2tleF9tb2Rlcz1lcGhlbWVyYWwgY29va2llcz0wIHRpY2tldHM9MCIgXAorICAgICAgICAgIiRHX05FWFRfQ0xJX05PX0NFUlQgLS1kZWJ1Zz00IC0tc2luZ2xlLWtleS1zaGFyZSAtLXg1MDljYWZpbGUgJERBVEFfRklMRVNfUEFUSC90ZXN0LWNhMi5jcnQgLS1wcmlvcml0eT1OT05FOitDSVBIRVItQUxMOitNQUMtQUxMOitTSUdOLUFMTDorR1JPVVAtWDI1NTE5OitHUk9VUC1TRUNQMjU2UjE6K1ZFUlMtVExTMS4zOiVOT19USUNLRVRTIiBcCiAgICAgICAgICAwIFwKICAgICAgICAgIC1zICJQcm90b2NvbCBpcyBUTFN2MS4zIiBcCiAgICAgICAgICAtcyAiZ290IG5hbWVkIGdyb3VwOiBzZWNwMjU2cjEoMDAxNykiIFwKQEAgLTEzMDUyLDggKzEzMDU0LDggQEAKIHJlcXVpcmVzX2dudXRsc19uZXh0X25vX3RpY2tldAogcmVxdWlyZXNfZ251dGxzX25leHRfZGlzYWJsZV90bHMxM19jb21wYXQKIHJ1bl90ZXN0ICJUTFMgMS4zIEctPm06IEhSUiB4MjU1MTkgLT4gc2VjcDM4NHIxIiBcCi0gICAgICAgICAiJFBfU1JWIGNydF9maWxlPWRhdGFfZmlsZXMvZWNkc2Ffc2VjcDI1NnIxLmNydCBrZXlfZmlsZT1kYXRhX2ZpbGVzL2VjZHNhX3NlY3AyNTZyMS5rZXkgZGVidWdfbGV2ZWw9NCBzaWdfYWxncz1lY2RzYV9zZWNwMjU2cjFfc2hhMjU2IGdyb3Vwcz1zZWNwMzg0cjEgdGxzMTNfa2V4X21vZGVzPWVwaGVtZXJhbCBjb29raWVzPTAgdGlja2V0cz0wIiBcCi0gICAgICAgICAiJEdfTkVYVF9DTElfTk9fQ0VSVCAtLWRlYnVnPTQgLS1zaW5nbGUta2V5LXNoYXJlIC0teDUwOWNhZmlsZSBkYXRhX2ZpbGVzL3Rlc3QtY2EyLmNydCAtLXByaW9yaXR5PU5PTkU6K0NJUEhFUi1BTEw6K01BQy1BTEw6K1NJR04tQUxMOitHUk9VUC1YMjU1MTk6K0dST1VQLVNFQ1AzODRSMTorVkVSUy1UTFMxLjM6JU5PX1RJQ0tFVFMiIFwKKyAgICAgICAgICIkUF9TUlYgY3J0X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwMjU2cjEuY3J0IGtleV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDI1NnIxLmtleSBkZWJ1Z19sZXZlbD00IHNpZ19hbGdzPWVjZHNhX3NlY3AyNTZyMV9zaGEyNTYgZ3JvdXBzPXNlY3AzODRyMSB0bHMxM19rZXhfbW9kZXM9ZXBoZW1lcmFsIGNvb2tpZXM9MCB0aWNrZXRzPTAiIFwKKyAgICAgICAgICIkR19ORVhUX0NMSV9OT19DRVJUIC0tZGVidWc9NCAtLXNpbmdsZS1rZXktc2hhcmUgLS14NTA5Y2FmaWxlICREQVRBX0ZJTEVTX1BBVEgvdGVzdC1jYTIuY3J0IC0tcHJpb3JpdHk9Tk9ORTorQ0lQSEVSLUFMTDorTUFDLUFMTDorU0lHTi1BTEw6K0dST1VQLVgyNTUxOTorR1JPVVAtU0VDUDM4NFIxOitWRVJTLVRMUzEuMzolTk9fVElDS0VUUyIgXAogICAgICAgICAgMCBcCiAgICAgICAgICAtcyAiUHJvdG9jb2wgaXMgVExTdjEuMyIgXAogICAgICAgICAgLXMgImdvdCBuYW1lZCBncm91cDogc2VjcDM4NHIxKDAwMTgpIiBcCkBAIC0xMzA2OSw4ICsxMzA3MSw4IEBACiByZXF1aXJlc19nbnV0bHNfbmV4dF9ub190aWNrZXQKIHJlcXVpcmVzX2dudXRsc19uZXh0X2Rpc2FibGVfdGxzMTNfY29tcGF0CiBydW5fdGVzdCAiVExTIDEuMyBHLT5tOiBIUlIgeDI1NTE5IC0+IHNlY3A1MjFyMSIgXAotICAgICAgICAgIiRQX1NSViBjcnRfZmlsZT1kYXRhX2ZpbGVzL2VjZHNhX3NlY3AyNTZyMS5jcnQga2V5X2ZpbGU9ZGF0YV9maWxlcy9lY2RzYV9zZWNwMjU2cjEua2V5IGRlYnVnX2xldmVsPTQgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDI1NnIxX3NoYTI1NiBncm91cHM9c2VjcDUyMXIxIHRsczEzX2tleF9tb2Rlcz1lcGhlbWVyYWwgY29va2llcz0wIHRpY2tldHM9MCIgXAotICAgICAgICAgIiRHX05FWFRfQ0xJX05PX0NFUlQgLS1kZWJ1Zz00IC0tc2luZ2xlLWtleS1zaGFyZSAtLXg1MDljYWZpbGUgZGF0YV9maWxlcy90ZXN0LWNhMi5jcnQgLS1wcmlvcml0eT1OT05FOitDSVBIRVItQUxMOitNQUMtQUxMOitTSUdOLUFMTDorR1JPVVAtWDI1NTE5OitHUk9VUC1TRUNQNTIxUjE6K1ZFUlMtVExTMS4zOiVOT19USUNLRVRTIiBcCisgICAgICAgICAiJFBfU1JWIGNydF9maWxlPSREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDI1NnIxLmNydCBrZXlfZmlsZT0kREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3AyNTZyMS5rZXkgZGVidWdfbGV2ZWw9NCBzaWdfYWxncz1lY2RzYV9zZWNwMjU2cjFfc2hhMjU2IGdyb3Vwcz1zZWNwNTIxcjEgdGxzMTNfa2V4X21vZGVzPWVwaGVtZXJhbCBjb29raWVzPTAgdGlja2V0cz0wIiBcCisgICAgICAgICAiJEdfTkVYVF9DTElfTk9fQ0VSVCAtLWRlYnVnPTQgLS1zaW5nbGUta2V5LXNoYXJlIC0teDUwOWNhZmlsZSAkREFUQV9GSUxFU19QQVRIL3Rlc3QtY2EyLmNydCAtLXByaW9yaXR5PU5PTkU6K0NJUEhFUi1BTEw6K01BQy1BTEw6K1NJR04tQUxMOitHUk9VUC1YMjU1MTk6K0dST1VQLVNFQ1A1MjFSMTorVkVSUy1UTFMxLjM6JU5PX1RJQ0tFVFMiIFwKICAgICAgICAgIDAgXAogICAgICAgICAgLXMgIlByb3RvY29sIGlzIFRMU3YxLjMiIFwKICAgICAgICAgIC1zICJnb3QgbmFtZWQgZ3JvdXA6IHNlY3A1MjFyMSgwMDE5KSIgXApAQCAtMTMwODYsOCArMTMwODgsOCBAQAogcmVxdWlyZXNfZ251dGxzX25leHRfbm9fdGlja2V0CiByZXF1aXJlc19nbnV0bHNfbmV4dF9kaXNhYmxlX3RsczEzX2NvbXBhdAogcnVuX3Rlc3QgIlRMUyAxLjMgRy0+bTogSFJSIHgyNTUxOSAtPiB4NDQ4IiBcCi0gICAgICAgICAiJFBfU1JWIGNydF9maWxlPWRhdGFfZmlsZXMvZWNkc2Ffc2VjcDI1NnIxLmNydCBrZXlfZmlsZT1kYXRhX2ZpbGVzL2VjZHNhX3NlY3AyNTZyMS5rZXkgZGVidWdfbGV2ZWw9NCBzaWdfYWxncz1lY2RzYV9zZWNwMjU2cjFfc2hhMjU2IGdyb3Vwcz14NDQ4IHRsczEzX2tleF9tb2Rlcz1lcGhlbWVyYWwgY29va2llcz0wIHRpY2tldHM9MCIgXAotICAgICAgICAgIiRHX05FWFRfQ0xJX05PX0NFUlQgLS1kZWJ1Zz00IC0tc2luZ2xlLWtleS1zaGFyZSAtLXg1MDljYWZpbGUgZGF0YV9maWxlcy90ZXN0LWNhMi5jcnQgLS1wcmlvcml0eT1OT05FOitDSVBIRVItQUxMOitNQUMtQUxMOitTSUdOLUFMTDorR1JPVVAtWDI1NTE5OitHUk9VUC1YNDQ4OitWRVJTLVRMUzEuMzolTk9fVElDS0VUUyIgXAorICAgICAgICAgIiRQX1NSViBjcnRfZmlsZT0kREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3AyNTZyMS5jcnQga2V5X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwMjU2cjEua2V5IGRlYnVnX2xldmVsPTQgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDI1NnIxX3NoYTI1NiBncm91cHM9eDQ0OCB0bHMxM19rZXhfbW9kZXM9ZXBoZW1lcmFsIGNvb2tpZXM9MCB0aWNrZXRzPTAiIFwKKyAgICAgICAgICIkR19ORVhUX0NMSV9OT19DRVJUIC0tZGVidWc9NCAtLXNpbmdsZS1rZXktc2hhcmUgLS14NTA5Y2FmaWxlICREQVRBX0ZJTEVTX1BBVEgvdGVzdC1jYTIuY3J0IC0tcHJpb3JpdHk9Tk9ORTorQ0lQSEVSLUFMTDorTUFDLUFMTDorU0lHTi1BTEw6K0dST1VQLVgyNTUxOTorR1JPVVAtWDQ0ODorVkVSUy1UTFMxLjM6JU5PX1RJQ0tFVFMiIFwKICAgICAgICAgIDAgXAogICAgICAgICAgLXMgIlByb3RvY29sIGlzIFRMU3YxLjMiIFwKICAgICAgICAgIC1zICJnb3QgbmFtZWQgZ3JvdXA6IHg0NDgoMDAxZSkiIFwKQEAgLTEzMTA0LDggKzEzMTA2LDggQEAKIHJlcXVpcmVzX2dudXRsc19uZXh0X25vX3RpY2tldAogcmVxdWlyZXNfZ251dGxzX25leHRfZGlzYWJsZV90bHMxM19jb21wYXQKIHJ1bl90ZXN0ICJUTFMgMS4zIEctPm06IEhSUiB4MjU1MTkgLT4gZmZkaGUyMDQ4IiBcCi0gICAgICAgICAiJFBfU1JWIGNydF9maWxlPWRhdGFfZmlsZXMvZWNkc2Ffc2VjcDI1NnIxLmNydCBrZXlfZmlsZT1kYXRhX2ZpbGVzL2VjZHNhX3NlY3AyNTZyMS5rZXkgZGVidWdfbGV2ZWw9NCBzaWdfYWxncz1lY2RzYV9zZWNwMjU2cjFfc2hhMjU2IGdyb3Vwcz1mZmRoZTIwNDggdGxzMTNfa2V4X21vZGVzPWVwaGVtZXJhbCBjb29raWVzPTAgdGlja2V0cz0wIiBcCi0gICAgICAgICAiJEdfTkVYVF9DTElfTk9fQ0VSVCAtLWRlYnVnPTQgLS1zaW5nbGUta2V5LXNoYXJlIC0teDUwOWNhZmlsZSBkYXRhX2ZpbGVzL3Rlc3QtY2EyLmNydCAtLXByaW9yaXR5PU5PTkU6K0NJUEhFUi1BTEw6K01BQy1BTEw6K1NJR04tQUxMOitHUk9VUC1YMjU1MTk6K0dST1VQLUZGREhFMjA0ODorVkVSUy1UTFMxLjM6JU5PX1RJQ0tFVFMiIFwKKyAgICAgICAgICIkUF9TUlYgY3J0X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwMjU2cjEuY3J0IGtleV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDI1NnIxLmtleSBkZWJ1Z19sZXZlbD00IHNpZ19hbGdzPWVjZHNhX3NlY3AyNTZyMV9zaGEyNTYgZ3JvdXBzPWZmZGhlMjA0OCB0bHMxM19rZXhfbW9kZXM9ZXBoZW1lcmFsIGNvb2tpZXM9MCB0aWNrZXRzPTAiIFwKKyAgICAgICAgICIkR19ORVhUX0NMSV9OT19DRVJUIC0tZGVidWc9NCAtLXNpbmdsZS1rZXktc2hhcmUgLS14NTA5Y2FmaWxlICREQVRBX0ZJTEVTX1BBVEgvdGVzdC1jYTIuY3J0IC0tcHJpb3JpdHk9Tk9ORTorQ0lQSEVSLUFMTDorTUFDLUFMTDorU0lHTi1BTEw6K0dST1VQLVgyNTUxOTorR1JPVVAtRkZESEUyMDQ4OitWRVJTLVRMUzEuMzolTk9fVElDS0VUUyIgXAogICAgICAgICAgMCBcCiAgICAgICAgICAtcyAiUHJvdG9jb2wgaXMgVExTdjEuMyIgXAogICAgICAgICAgLXMgImdvdCBuYW1lZCBncm91cDogZmZkaGUyMDQ4KDAxMDApIiBcCkBAIC0xMzEyMSw4ICsxMzEyMyw4IEBACiByZXF1aXJlc19nbnV0bHNfbmV4dF9ub190aWNrZXQKIHJlcXVpcmVzX2dudXRsc19uZXh0X2Rpc2FibGVfdGxzMTNfY29tcGF0CiBydW5fdGVzdCAiVExTIDEuMyBHLT5tOiBIUlIgeDQ0OCAtPiBzZWNwMjU2cjEiIFwKLSAgICAgICAgICIkUF9TUlYgY3J0X2ZpbGU9ZGF0YV9maWxlcy9lY2RzYV9zZWNwMjU2cjEuY3J0IGtleV9maWxlPWRhdGFfZmlsZXMvZWNkc2Ffc2VjcDI1NnIxLmtleSBkZWJ1Z19sZXZlbD00IHNpZ19hbGdzPWVjZHNhX3NlY3AyNTZyMV9zaGEyNTYgZ3JvdXBzPXNlY3AyNTZyMSB0bHMxM19rZXhfbW9kZXM9ZXBoZW1lcmFsIGNvb2tpZXM9MCB0aWNrZXRzPTAiIFwKLSAgICAgICAgICIkR19ORVhUX0NMSV9OT19DRVJUIC0tZGVidWc9NCAtLXNpbmdsZS1rZXktc2hhcmUgLS14NTA5Y2FmaWxlIGRhdGFfZmlsZXMvdGVzdC1jYTIuY3J0IC0tcHJpb3JpdHk9Tk9ORTorQ0lQSEVSLUFMTDorTUFDLUFMTDorU0lHTi1BTEw6K0dST1VQLVg0NDg6K0dST1VQLVNFQ1AyNTZSMTorVkVSUy1UTFMxLjM6JU5PX1RJQ0tFVFMiIFwKKyAgICAgICAgICIkUF9TUlYgY3J0X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwMjU2cjEuY3J0IGtleV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDI1NnIxLmtleSBkZWJ1Z19sZXZlbD00IHNpZ19hbGdzPWVjZHNhX3NlY3AyNTZyMV9zaGEyNTYgZ3JvdXBzPXNlY3AyNTZyMSB0bHMxM19rZXhfbW9kZXM9ZXBoZW1lcmFsIGNvb2tpZXM9MCB0aWNrZXRzPTAiIFwKKyAgICAgICAgICIkR19ORVhUX0NMSV9OT19DRVJUIC0tZGVidWc9NCAtLXNpbmdsZS1rZXktc2hhcmUgLS14NTA5Y2FmaWxlICREQVRBX0ZJTEVTX1BBVEgvdGVzdC1jYTIuY3J0IC0tcHJpb3JpdHk9Tk9ORTorQ0lQSEVSLUFMTDorTUFDLUFMTDorU0lHTi1BTEw6K0dST1VQLVg0NDg6K0dST1VQLVNFQ1AyNTZSMTorVkVSUy1UTFMxLjM6JU5PX1RJQ0tFVFMiIFwKICAgICAgICAgIDAgXAogICAgICAgICAgLXMgIlByb3RvY29sIGlzIFRMU3YxLjMiIFwKICAgICAgICAgIC1zICJnb3QgbmFtZWQgZ3JvdXA6IHNlY3AyNTZyMSgwMDE3KSIgXApAQCAtMTMxMzgsOCArMTMxNDAsOCBAQAogcmVxdWlyZXNfZ251dGxzX25leHRfbm9fdGlja2V0CiByZXF1aXJlc19nbnV0bHNfbmV4dF9kaXNhYmxlX3RsczEzX2NvbXBhdAogcnVuX3Rlc3QgIlRMUyAxLjMgRy0+bTogSFJSIHg0NDggLT4gc2VjcDM4NHIxIiBcCi0gICAgICAgICAiJFBfU1JWIGNydF9maWxlPWRhdGFfZmlsZXMvZWNkc2Ffc2VjcDI1NnIxLmNydCBrZXlfZmlsZT1kYXRhX2ZpbGVzL2VjZHNhX3NlY3AyNTZyMS5rZXkgZGVidWdfbGV2ZWw9NCBzaWdfYWxncz1lY2RzYV9zZWNwMjU2cjFfc2hhMjU2IGdyb3Vwcz1zZWNwMzg0cjEgdGxzMTNfa2V4X21vZGVzPWVwaGVtZXJhbCBjb29raWVzPTAgdGlja2V0cz0wIiBcCi0gICAgICAgICAiJEdfTkVYVF9DTElfTk9fQ0VSVCAtLWRlYnVnPTQgLS1zaW5nbGUta2V5LXNoYXJlIC0teDUwOWNhZmlsZSBkYXRhX2ZpbGVzL3Rlc3QtY2EyLmNydCAtLXByaW9yaXR5PU5PTkU6K0NJUEhFUi1BTEw6K01BQy1BTEw6K1NJR04tQUxMOitHUk9VUC1YNDQ4OitHUk9VUC1TRUNQMzg0UjE6K1ZFUlMtVExTMS4zOiVOT19USUNLRVRTIiBcCisgICAgICAgICAiJFBfU1JWIGNydF9maWxlPSREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDI1NnIxLmNydCBrZXlfZmlsZT0kREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3AyNTZyMS5rZXkgZGVidWdfbGV2ZWw9NCBzaWdfYWxncz1lY2RzYV9zZWNwMjU2cjFfc2hhMjU2IGdyb3Vwcz1zZWNwMzg0cjEgdGxzMTNfa2V4X21vZGVzPWVwaGVtZXJhbCBjb29raWVzPTAgdGlja2V0cz0wIiBcCisgICAgICAgICAiJEdfTkVYVF9DTElfTk9fQ0VSVCAtLWRlYnVnPTQgLS1zaW5nbGUta2V5LXNoYXJlIC0teDUwOWNhZmlsZSAkREFUQV9GSUxFU19QQVRIL3Rlc3QtY2EyLmNydCAtLXByaW9yaXR5PU5PTkU6K0NJUEhFUi1BTEw6K01BQy1BTEw6K1NJR04tQUxMOitHUk9VUC1YNDQ4OitHUk9VUC1TRUNQMzg0UjE6K1ZFUlMtVExTMS4zOiVOT19USUNLRVRTIiBcCiAgICAgICAgICAwIFwKICAgICAgICAgIC1zICJQcm90b2NvbCBpcyBUTFN2MS4zIiBcCiAgICAgICAgICAtcyAiZ290IG5hbWVkIGdyb3VwOiBzZWNwMzg0cjEoMDAxOCkiIFwKQEAgLTEzMTU1LDggKzEzMTU3LDggQEAKIHJlcXVpcmVzX2dudXRsc19uZXh0X25vX3RpY2tldAogcmVxdWlyZXNfZ251dGxzX25leHRfZGlzYWJsZV90bHMxM19jb21wYXQKIHJ1bl90ZXN0ICJUTFMgMS4zIEctPm06IEhSUiB4NDQ4IC0+IHNlY3A1MjFyMSIgXAotICAgICAgICAgIiRQX1NSViBjcnRfZmlsZT1kYXRhX2ZpbGVzL2VjZHNhX3NlY3AyNTZyMS5jcnQga2V5X2ZpbGU9ZGF0YV9maWxlcy9lY2RzYV9zZWNwMjU2cjEua2V5IGRlYnVnX2xldmVsPTQgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDI1NnIxX3NoYTI1NiBncm91cHM9c2VjcDUyMXIxIHRsczEzX2tleF9tb2Rlcz1lcGhlbWVyYWwgY29va2llcz0wIHRpY2tldHM9MCIgXAotICAgICAgICAgIiRHX05FWFRfQ0xJX05PX0NFUlQgLS1kZWJ1Zz00IC0tc2luZ2xlLWtleS1zaGFyZSAtLXg1MDljYWZpbGUgZGF0YV9maWxlcy90ZXN0LWNhMi5jcnQgLS1wcmlvcml0eT1OT05FOitDSVBIRVItQUxMOitNQUMtQUxMOitTSUdOLUFMTDorR1JPVVAtWDQ0ODorR1JPVVAtU0VDUDUyMVIxOitWRVJTLVRMUzEuMzolTk9fVElDS0VUUyIgXAorICAgICAgICAgIiRQX1NSViBjcnRfZmlsZT0kREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3AyNTZyMS5jcnQga2V5X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwMjU2cjEua2V5IGRlYnVnX2xldmVsPTQgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDI1NnIxX3NoYTI1NiBncm91cHM9c2VjcDUyMXIxIHRsczEzX2tleF9tb2Rlcz1lcGhlbWVyYWwgY29va2llcz0wIHRpY2tldHM9MCIgXAorICAgICAgICAgIiRHX05FWFRfQ0xJX05PX0NFUlQgLS1kZWJ1Zz00IC0tc2luZ2xlLWtleS1zaGFyZSAtLXg1MDljYWZpbGUgJERBVEFfRklMRVNfUEFUSC90ZXN0LWNhMi5jcnQgLS1wcmlvcml0eT1OT05FOitDSVBIRVItQUxMOitNQUMtQUxMOitTSUdOLUFMTDorR1JPVVAtWDQ0ODorR1JPVVAtU0VDUDUyMVIxOitWRVJTLVRMUzEuMzolTk9fVElDS0VUUyIgXAogICAgICAgICAgMCBcCiAgICAgICAgICAtcyAiUHJvdG9jb2wgaXMgVExTdjEuMyIgXAogICAgICAgICAgLXMgImdvdCBuYW1lZCBncm91cDogc2VjcDUyMXIxKDAwMTkpIiBcCkBAIC0xMzE3Miw4ICsxMzE3NCw4IEBACiByZXF1aXJlc19nbnV0bHNfbmV4dF9ub190aWNrZXQKIHJlcXVpcmVzX2dudXRsc19uZXh0X2Rpc2FibGVfdGxzMTNfY29tcGF0CiBydW5fdGVzdCAiVExTIDEuMyBHLT5tOiBIUlIgeDQ0OCAtPiB4MjU1MTkiIFwKLSAgICAgICAgICIkUF9TUlYgY3J0X2ZpbGU9ZGF0YV9maWxlcy9lY2RzYV9zZWNwMjU2cjEuY3J0IGtleV9maWxlPWRhdGFfZmlsZXMvZWNkc2Ffc2VjcDI1NnIxLmtleSBkZWJ1Z19sZXZlbD00IHNpZ19hbGdzPWVjZHNhX3NlY3AyNTZyMV9zaGEyNTYgZ3JvdXBzPXgyNTUxOSB0bHMxM19rZXhfbW9kZXM9ZXBoZW1lcmFsIGNvb2tpZXM9MCB0aWNrZXRzPTAiIFwKLSAgICAgICAgICIkR19ORVhUX0NMSV9OT19DRVJUIC0tZGVidWc9NCAtLXNpbmdsZS1rZXktc2hhcmUgLS14NTA5Y2FmaWxlIGRhdGFfZmlsZXMvdGVzdC1jYTIuY3J0IC0tcHJpb3JpdHk9Tk9ORTorQ0lQSEVSLUFMTDorTUFDLUFMTDorU0lHTi1BTEw6K0dST1VQLVg0NDg6K0dST1VQLVgyNTUxOTorVkVSUy1UTFMxLjM6JU5PX1RJQ0tFVFMiIFwKKyAgICAgICAgICIkUF9TUlYgY3J0X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwMjU2cjEuY3J0IGtleV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDI1NnIxLmtleSBkZWJ1Z19sZXZlbD00IHNpZ19hbGdzPWVjZHNhX3NlY3AyNTZyMV9zaGEyNTYgZ3JvdXBzPXgyNTUxOSB0bHMxM19rZXhfbW9kZXM9ZXBoZW1lcmFsIGNvb2tpZXM9MCB0aWNrZXRzPTAiIFwKKyAgICAgICAgICIkR19ORVhUX0NMSV9OT19DRVJUIC0tZGVidWc9NCAtLXNpbmdsZS1rZXktc2hhcmUgLS14NTA5Y2FmaWxlICREQVRBX0ZJTEVTX1BBVEgvdGVzdC1jYTIuY3J0IC0tcHJpb3JpdHk9Tk9ORTorQ0lQSEVSLUFMTDorTUFDLUFMTDorU0lHTi1BTEw6K0dST1VQLVg0NDg6K0dST1VQLVgyNTUxOTorVkVSUy1UTFMxLjM6JU5PX1RJQ0tFVFMiIFwKICAgICAgICAgIDAgXAogICAgICAgICAgLXMgIlByb3RvY29sIGlzIFRMU3YxLjMiIFwKICAgICAgICAgIC1zICJnb3QgbmFtZWQgZ3JvdXA6IHgyNTUxOSgwMDFkKSIgXApAQCAtMTMxOTAsOCArMTMxOTIsOCBAQAogcmVxdWlyZXNfZ251dGxzX25leHRfbm9fdGlja2V0CiByZXF1aXJlc19nbnV0bHNfbmV4dF9kaXNhYmxlX3RsczEzX2NvbXBhdAogcnVuX3Rlc3QgIlRMUyAxLjMgRy0+bTogSFJSIHg0NDggLT4gZmZkaGUyMDQ4IiBcCi0gICAgICAgICAiJFBfU1JWIGNydF9maWxlPWRhdGFfZmlsZXMvZWNkc2Ffc2VjcDI1NnIxLmNydCBrZXlfZmlsZT1kYXRhX2ZpbGVzL2VjZHNhX3NlY3AyNTZyMS5rZXkgZGVidWdfbGV2ZWw9NCBzaWdfYWxncz1lY2RzYV9zZWNwMjU2cjFfc2hhMjU2IGdyb3Vwcz1mZmRoZTIwNDggdGxzMTNfa2V4X21vZGVzPWVwaGVtZXJhbCBjb29raWVzPTAgdGlja2V0cz0wIiBcCi0gICAgICAgICAiJEdfTkVYVF9DTElfTk9fQ0VSVCAtLWRlYnVnPTQgLS1zaW5nbGUta2V5LXNoYXJlIC0teDUwOWNhZmlsZSBkYXRhX2ZpbGVzL3Rlc3QtY2EyLmNydCAtLXByaW9yaXR5PU5PTkU6K0NJUEhFUi1BTEw6K01BQy1BTEw6K1NJR04tQUxMOitHUk9VUC1YNDQ4OitHUk9VUC1GRkRIRTIwNDg6K1ZFUlMtVExTMS4zOiVOT19USUNLRVRTIiBcCisgICAgICAgICAiJFBfU1JWIGNydF9maWxlPSREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDI1NnIxLmNydCBrZXlfZmlsZT0kREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3AyNTZyMS5rZXkgZGVidWdfbGV2ZWw9NCBzaWdfYWxncz1lY2RzYV9zZWNwMjU2cjFfc2hhMjU2IGdyb3Vwcz1mZmRoZTIwNDggdGxzMTNfa2V4X21vZGVzPWVwaGVtZXJhbCBjb29raWVzPTAgdGlja2V0cz0wIiBcCisgICAgICAgICAiJEdfTkVYVF9DTElfTk9fQ0VSVCAtLWRlYnVnPTQgLS1zaW5nbGUta2V5LXNoYXJlIC0teDUwOWNhZmlsZSAkREFUQV9GSUxFU19QQVRIL3Rlc3QtY2EyLmNydCAtLXByaW9yaXR5PU5PTkU6K0NJUEhFUi1BTEw6K01BQy1BTEw6K1NJR04tQUxMOitHUk9VUC1YNDQ4OitHUk9VUC1GRkRIRTIwNDg6K1ZFUlMtVExTMS4zOiVOT19USUNLRVRTIiBcCiAgICAgICAgICAwIFwKICAgICAgICAgIC1zICJQcm90b2NvbCBpcyBUTFN2MS4zIiBcCiAgICAgICAgICAtcyAiZ290IG5hbWVkIGdyb3VwOiBmZmRoZTIwNDgoMDEwMCkiIFwKQEAgLTEzMjA3LDggKzEzMjA5LDggQEAKIHJlcXVpcmVzX2dudXRsc19uZXh0X25vX3RpY2tldAogcmVxdWlyZXNfZ251dGxzX25leHRfZGlzYWJsZV90bHMxM19jb21wYXQKIHJ1bl90ZXN0ICJUTFMgMS4zIEctPm06IEhSUiBmZmRoZTIwNDggLT4gc2VjcDI1NnIxIiBcCi0gICAgICAgICAiJFBfU1JWIGNydF9maWxlPWRhdGFfZmlsZXMvZWNkc2Ffc2VjcDI1NnIxLmNydCBrZXlfZmlsZT1kYXRhX2ZpbGVzL2VjZHNhX3NlY3AyNTZyMS5rZXkgZGVidWdfbGV2ZWw9NCBzaWdfYWxncz1lY2RzYV9zZWNwMjU2cjFfc2hhMjU2IGdyb3Vwcz1zZWNwMjU2cjEgdGxzMTNfa2V4X21vZGVzPWVwaGVtZXJhbCBjb29raWVzPTAgdGlja2V0cz0wIiBcCi0gICAgICAgICAiJEdfTkVYVF9DTElfTk9fQ0VSVCAtLWRlYnVnPTQgLS1zaW5nbGUta2V5LXNoYXJlIC0teDUwOWNhZmlsZSBkYXRhX2ZpbGVzL3Rlc3QtY2EyLmNydCAtLXByaW9yaXR5PU5PTkU6K0NJUEhFUi1BTEw6K01BQy1BTEw6K1NJR04tQUxMOitHUk9VUC1GRkRIRTIwNDg6K0dST1VQLVNFQ1AyNTZSMTorVkVSUy1UTFMxLjM6JU5PX1RJQ0tFVFMiIFwKKyAgICAgICAgICIkUF9TUlYgY3J0X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwMjU2cjEuY3J0IGtleV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDI1NnIxLmtleSBkZWJ1Z19sZXZlbD00IHNpZ19hbGdzPWVjZHNhX3NlY3AyNTZyMV9zaGEyNTYgZ3JvdXBzPXNlY3AyNTZyMSB0bHMxM19rZXhfbW9kZXM9ZXBoZW1lcmFsIGNvb2tpZXM9MCB0aWNrZXRzPTAiIFwKKyAgICAgICAgICIkR19ORVhUX0NMSV9OT19DRVJUIC0tZGVidWc9NCAtLXNpbmdsZS1rZXktc2hhcmUgLS14NTA5Y2FmaWxlICREQVRBX0ZJTEVTX1BBVEgvdGVzdC1jYTIuY3J0IC0tcHJpb3JpdHk9Tk9ORTorQ0lQSEVSLUFMTDorTUFDLUFMTDorU0lHTi1BTEw6K0dST1VQLUZGREhFMjA0ODorR1JPVVAtU0VDUDI1NlIxOitWRVJTLVRMUzEuMzolTk9fVElDS0VUUyIgXAogICAgICAgICAgMCBcCiAgICAgICAgICAtcyAiUHJvdG9jb2wgaXMgVExTdjEuMyIgXAogICAgICAgICAgLXMgImdvdCBuYW1lZCBncm91cDogc2VjcDI1NnIxKDAwMTcpIiBcCkBAIC0xMzIyNCw4ICsxMzIyNiw4IEBACiByZXF1aXJlc19nbnV0bHNfbmV4dF9ub190aWNrZXQKIHJlcXVpcmVzX2dudXRsc19uZXh0X2Rpc2FibGVfdGxzMTNfY29tcGF0CiBydW5fdGVzdCAiVExTIDEuMyBHLT5tOiBIUlIgZmZkaGUyMDQ4IC0+IHNlY3AzODRyMSIgXAotICAgICAgICAgIiRQX1NSViBjcnRfZmlsZT1kYXRhX2ZpbGVzL2VjZHNhX3NlY3AyNTZyMS5jcnQga2V5X2ZpbGU9ZGF0YV9maWxlcy9lY2RzYV9zZWNwMjU2cjEua2V5IGRlYnVnX2xldmVsPTQgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDI1NnIxX3NoYTI1NiBncm91cHM9c2VjcDM4NHIxIHRsczEzX2tleF9tb2Rlcz1lcGhlbWVyYWwgY29va2llcz0wIHRpY2tldHM9MCIgXAotICAgICAgICAgIiRHX05FWFRfQ0xJX05PX0NFUlQgLS1kZWJ1Zz00IC0tc2luZ2xlLWtleS1zaGFyZSAtLXg1MDljYWZpbGUgZGF0YV9maWxlcy90ZXN0LWNhMi5jcnQgLS1wcmlvcml0eT1OT05FOitDSVBIRVItQUxMOitNQUMtQUxMOitTSUdOLUFMTDorR1JPVVAtRkZESEUyMDQ4OitHUk9VUC1TRUNQMzg0UjE6K1ZFUlMtVExTMS4zOiVOT19USUNLRVRTIiBcCisgICAgICAgICAiJFBfU1JWIGNydF9maWxlPSREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDI1NnIxLmNydCBrZXlfZmlsZT0kREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3AyNTZyMS5rZXkgZGVidWdfbGV2ZWw9NCBzaWdfYWxncz1lY2RzYV9zZWNwMjU2cjFfc2hhMjU2IGdyb3Vwcz1zZWNwMzg0cjEgdGxzMTNfa2V4X21vZGVzPWVwaGVtZXJhbCBjb29raWVzPTAgdGlja2V0cz0wIiBcCisgICAgICAgICAiJEdfTkVYVF9DTElfTk9fQ0VSVCAtLWRlYnVnPTQgLS1zaW5nbGUta2V5LXNoYXJlIC0teDUwOWNhZmlsZSAkREFUQV9GSUxFU19QQVRIL3Rlc3QtY2EyLmNydCAtLXByaW9yaXR5PU5PTkU6K0NJUEhFUi1BTEw6K01BQy1BTEw6K1NJR04tQUxMOitHUk9VUC1GRkRIRTIwNDg6K0dST1VQLVNFQ1AzODRSMTorVkVSUy1UTFMxLjM6JU5PX1RJQ0tFVFMiIFwKICAgICAgICAgIDAgXAogICAgICAgICAgLXMgIlByb3RvY29sIGlzIFRMU3YxLjMiIFwKICAgICAgICAgIC1zICJnb3QgbmFtZWQgZ3JvdXA6IHNlY3AzODRyMSgwMDE4KSIgXApAQCAtMTMyNDEsOCArMTMyNDMsOCBAQAogcmVxdWlyZXNfZ251dGxzX25leHRfbm9fdGlja2V0CiByZXF1aXJlc19nbnV0bHNfbmV4dF9kaXNhYmxlX3RsczEzX2NvbXBhdAogcnVuX3Rlc3QgIlRMUyAxLjMgRy0+bTogSFJSIGZmZGhlMjA0OCAtPiBzZWNwNTIxcjEiIFwKLSAgICAgICAgICIkUF9TUlYgY3J0X2ZpbGU9ZGF0YV9maWxlcy9lY2RzYV9zZWNwMjU2cjEuY3J0IGtleV9maWxlPWRhdGFfZmlsZXMvZWNkc2Ffc2VjcDI1NnIxLmtleSBkZWJ1Z19sZXZlbD00IHNpZ19hbGdzPWVjZHNhX3NlY3AyNTZyMV9zaGEyNTYgZ3JvdXBzPXNlY3A1MjFyMSB0bHMxM19rZXhfbW9kZXM9ZXBoZW1lcmFsIGNvb2tpZXM9MCB0aWNrZXRzPTAiIFwKLSAgICAgICAgICIkR19ORVhUX0NMSV9OT19DRVJUIC0tZGVidWc9NCAtLXNpbmdsZS1rZXktc2hhcmUgLS14NTA5Y2FmaWxlIGRhdGFfZmlsZXMvdGVzdC1jYTIuY3J0IC0tcHJpb3JpdHk9Tk9ORTorQ0lQSEVSLUFMTDorTUFDLUFMTDorU0lHTi1BTEw6K0dST1VQLUZGREhFMjA0ODorR1JPVVAtU0VDUDUyMVIxOitWRVJTLVRMUzEuMzolTk9fVElDS0VUUyIgXAorICAgICAgICAgIiRQX1NSViBjcnRfZmlsZT0kREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3AyNTZyMS5jcnQga2V5X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwMjU2cjEua2V5IGRlYnVnX2xldmVsPTQgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDI1NnIxX3NoYTI1NiBncm91cHM9c2VjcDUyMXIxIHRsczEzX2tleF9tb2Rlcz1lcGhlbWVyYWwgY29va2llcz0wIHRpY2tldHM9MCIgXAorICAgICAgICAgIiRHX05FWFRfQ0xJX05PX0NFUlQgLS1kZWJ1Zz00IC0tc2luZ2xlLWtleS1zaGFyZSAtLXg1MDljYWZpbGUgJERBVEFfRklMRVNfUEFUSC90ZXN0LWNhMi5jcnQgLS1wcmlvcml0eT1OT05FOitDSVBIRVItQUxMOitNQUMtQUxMOitTSUdOLUFMTDorR1JPVVAtRkZESEUyMDQ4OitHUk9VUC1TRUNQNTIxUjE6K1ZFUlMtVExTMS4zOiVOT19USUNLRVRTIiBcCiAgICAgICAgICAwIFwKICAgICAgICAgIC1zICJQcm90b2NvbCBpcyBUTFN2MS4zIiBcCiAgICAgICAgICAtcyAiZ290IG5hbWVkIGdyb3VwOiBzZWNwNTIxcjEoMDAxOSkiIFwKQEAgLTEzMjU4LDggKzEzMjYwLDggQEAKIHJlcXVpcmVzX2dudXRsc19uZXh0X25vX3RpY2tldAogcmVxdWlyZXNfZ251dGxzX25leHRfZGlzYWJsZV90bHMxM19jb21wYXQKIHJ1bl90ZXN0ICJUTFMgMS4zIEctPm06IEhSUiBmZmRoZTIwNDggLT4geDI1NTE5IiBcCi0gICAgICAgICAiJFBfU1JWIGNydF9maWxlPWRhdGFfZmlsZXMvZWNkc2Ffc2VjcDI1NnIxLmNydCBrZXlfZmlsZT1kYXRhX2ZpbGVzL2VjZHNhX3NlY3AyNTZyMS5rZXkgZGVidWdfbGV2ZWw9NCBzaWdfYWxncz1lY2RzYV9zZWNwMjU2cjFfc2hhMjU2IGdyb3Vwcz14MjU1MTkgdGxzMTNfa2V4X21vZGVzPWVwaGVtZXJhbCBjb29raWVzPTAgdGlja2V0cz0wIiBcCi0gICAgICAgICAiJEdfTkVYVF9DTElfTk9fQ0VSVCAtLWRlYnVnPTQgLS1zaW5nbGUta2V5LXNoYXJlIC0teDUwOWNhZmlsZSBkYXRhX2ZpbGVzL3Rlc3QtY2EyLmNydCAtLXByaW9yaXR5PU5PTkU6K0NJUEhFUi1BTEw6K01BQy1BTEw6K1NJR04tQUxMOitHUk9VUC1GRkRIRTIwNDg6K0dST1VQLVgyNTUxOTorVkVSUy1UTFMxLjM6JU5PX1RJQ0tFVFMiIFwKKyAgICAgICAgICIkUF9TUlYgY3J0X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwMjU2cjEuY3J0IGtleV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDI1NnIxLmtleSBkZWJ1Z19sZXZlbD00IHNpZ19hbGdzPWVjZHNhX3NlY3AyNTZyMV9zaGEyNTYgZ3JvdXBzPXgyNTUxOSB0bHMxM19rZXhfbW9kZXM9ZXBoZW1lcmFsIGNvb2tpZXM9MCB0aWNrZXRzPTAiIFwKKyAgICAgICAgICIkR19ORVhUX0NMSV9OT19DRVJUIC0tZGVidWc9NCAtLXNpbmdsZS1rZXktc2hhcmUgLS14NTA5Y2FmaWxlICREQVRBX0ZJTEVTX1BBVEgvdGVzdC1jYTIuY3J0IC0tcHJpb3JpdHk9Tk9ORTorQ0lQSEVSLUFMTDorTUFDLUFMTDorU0lHTi1BTEw6K0dST1VQLUZGREhFMjA0ODorR1JPVVAtWDI1NTE5OitWRVJTLVRMUzEuMzolTk9fVElDS0VUUyIgXAogICAgICAgICAgMCBcCiAgICAgICAgICAtcyAiUHJvdG9jb2wgaXMgVExTdjEuMyIgXAogICAgICAgICAgLXMgImdvdCBuYW1lZCBncm91cDogeDI1NTE5KDAwMWQpIiBcCkBAIC0xMzI3NSw4ICsxMzI3Nyw4IEBACiByZXF1aXJlc19nbnV0bHNfbmV4dF9ub190aWNrZXQKIHJlcXVpcmVzX2dudXRsc19uZXh0X2Rpc2FibGVfdGxzMTNfY29tcGF0CiBydW5fdGVzdCAiVExTIDEuMyBHLT5tOiBIUlIgZmZkaGUyMDQ4IC0+IHg0NDgiIFwKLSAgICAgICAgICIkUF9TUlYgY3J0X2ZpbGU9ZGF0YV9maWxlcy9lY2RzYV9zZWNwMjU2cjEuY3J0IGtleV9maWxlPWRhdGFfZmlsZXMvZWNkc2Ffc2VjcDI1NnIxLmtleSBkZWJ1Z19sZXZlbD00IHNpZ19hbGdzPWVjZHNhX3NlY3AyNTZyMV9zaGEyNTYgZ3JvdXBzPXg0NDggdGxzMTNfa2V4X21vZGVzPWVwaGVtZXJhbCBjb29raWVzPTAgdGlja2V0cz0wIiBcCi0gICAgICAgICAiJEdfTkVYVF9DTElfTk9fQ0VSVCAtLWRlYnVnPTQgLS1zaW5nbGUta2V5LXNoYXJlIC0teDUwOWNhZmlsZSBkYXRhX2ZpbGVzL3Rlc3QtY2EyLmNydCAtLXByaW9yaXR5PU5PTkU6K0NJUEhFUi1BTEw6K01BQy1BTEw6K1NJR04tQUxMOitHUk9VUC1GRkRIRTIwNDg6K0dST1VQLVg0NDg6K1ZFUlMtVExTMS4zOiVOT19USUNLRVRTIiBcCisgICAgICAgICAiJFBfU1JWIGNydF9maWxlPSREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDI1NnIxLmNydCBrZXlfZmlsZT0kREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3AyNTZyMS5rZXkgZGVidWdfbGV2ZWw9NCBzaWdfYWxncz1lY2RzYV9zZWNwMjU2cjFfc2hhMjU2IGdyb3Vwcz14NDQ4IHRsczEzX2tleF9tb2Rlcz1lcGhlbWVyYWwgY29va2llcz0wIHRpY2tldHM9MCIgXAorICAgICAgICAgIiRHX05FWFRfQ0xJX05PX0NFUlQgLS1kZWJ1Zz00IC0tc2luZ2xlLWtleS1zaGFyZSAtLXg1MDljYWZpbGUgJERBVEFfRklMRVNfUEFUSC90ZXN0LWNhMi5jcnQgLS1wcmlvcml0eT1OT05FOitDSVBIRVItQUxMOitNQUMtQUxMOitTSUdOLUFMTDorR1JPVVAtRkZESEUyMDQ4OitHUk9VUC1YNDQ4OitWRVJTLVRMUzEuMzolTk9fVElDS0VUUyIgXAogICAgICAgICAgMCBcCiAgICAgICAgICAtcyAiUHJvdG9jb2wgaXMgVExTdjEuMyIgXAogICAgICAgICAgLXMgImdvdCBuYW1lZCBncm91cDogeDQ0OCgwMDFlKSIgXApAQCAtMTMyOTAsOCArMTMyOTIsOCBAQAogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgTUJFRFRMU19TU0xfVExTMV8zX0NPTVBBVElCSUxJVFlfTU9ERQogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgUFNBX1dBTlRfQUxHX0VDREgKIHJ1bl90ZXN0ICJUTFMgMS4zIG0tPk86IEhSUiBzZWNwMjU2cjEgLT4gc2VjcDM4NHIxIiBcCi0gICAgICAgICAiJE9fTkVYVF9TUlZfTk9fQ0VSVCAtY2VydCBkYXRhX2ZpbGVzL2VjZHNhX3NlY3AyNTZyMS5jcnQgLWtleSBkYXRhX2ZpbGVzL2VjZHNhX3NlY3AyNTZyMS5rZXkgLWdyb3VwcyBQLTM4NCAtbXNnIC10bHMxXzMgLW51bV90aWNrZXRzIDAgLW5vX3Jlc3VtZV9lcGhlbWVyYWwgLW5vX2NhY2hlIiBcCi0gICAgICAgICAiJFBfQ0xJIGNhX2ZpbGU9ZGF0YV9maWxlcy90ZXN0LWNhMi5jcnQgZGVidWdfbGV2ZWw9NCBzaWdfYWxncz1lY2RzYV9zZWNwMjU2cjFfc2hhMjU2IGdyb3Vwcz1zZWNwMjU2cjEsc2VjcDM4NHIxIiBcCisgICAgICAgICAiJE9fTkVYVF9TUlZfTk9fQ0VSVCAtY2VydCAkREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3AyNTZyMS5jcnQgLWtleSAkREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3AyNTZyMS5rZXkgLWdyb3VwcyBQLTM4NCAtbXNnIC10bHMxXzMgLW51bV90aWNrZXRzIDAgLW5vX3Jlc3VtZV9lcGhlbWVyYWwgLW5vX2NhY2hlIiBcCisgICAgICAgICAiJFBfQ0xJIGNhX2ZpbGU9JERBVEFfRklMRVNfUEFUSC90ZXN0LWNhMi5jcnQgZGVidWdfbGV2ZWw9NCBzaWdfYWxncz1lY2RzYV9zZWNwMjU2cjFfc2hhMjU2IGdyb3Vwcz1zZWNwMjU2cjEsc2VjcDM4NHIxIiBcCiAgICAgICAgICAwIFwKICAgICAgICAgIC1jICJIVFRQLzEuMCAyMDAgb2siIFwKICAgICAgICAgIC1jICJQcm90b2NvbCBpcyBUTFN2MS4zIiBcCkBAIC0xMzMwOCw4ICsxMzMxMCw4IEBACiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBNQkVEVExTX1NTTF9UTFMxXzNfQ09NUEFUSUJJTElUWV9NT0RFCiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBQU0FfV0FOVF9BTEdfRUNESAogcnVuX3Rlc3QgIlRMUyAxLjMgbS0+TzogSFJSIHNlY3AyNTZyMSAtPiBzZWNwNTIxcjEiIFwKLSAgICAgICAgICIkT19ORVhUX1NSVl9OT19DRVJUIC1jZXJ0IGRhdGFfZmlsZXMvZWNkc2Ffc2VjcDI1NnIxLmNydCAta2V5IGRhdGFfZmlsZXMvZWNkc2Ffc2VjcDI1NnIxLmtleSAtZ3JvdXBzIFAtNTIxIC1tc2cgLXRsczFfMyAtbnVtX3RpY2tldHMgMCAtbm9fcmVzdW1lX2VwaGVtZXJhbCAtbm9fY2FjaGUiIFwKLSAgICAgICAgICIkUF9DTEkgY2FfZmlsZT1kYXRhX2ZpbGVzL3Rlc3QtY2EyLmNydCBkZWJ1Z19sZXZlbD00IHNpZ19hbGdzPWVjZHNhX3NlY3AyNTZyMV9zaGEyNTYgZ3JvdXBzPXNlY3AyNTZyMSxzZWNwNTIxcjEiIFwKKyAgICAgICAgICIkT19ORVhUX1NSVl9OT19DRVJUIC1jZXJ0ICREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDI1NnIxLmNydCAta2V5ICREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDI1NnIxLmtleSAtZ3JvdXBzIFAtNTIxIC1tc2cgLXRsczFfMyAtbnVtX3RpY2tldHMgMCAtbm9fcmVzdW1lX2VwaGVtZXJhbCAtbm9fY2FjaGUiIFwKKyAgICAgICAgICIkUF9DTEkgY2FfZmlsZT0kREFUQV9GSUxFU19QQVRIL3Rlc3QtY2EyLmNydCBkZWJ1Z19sZXZlbD00IHNpZ19hbGdzPWVjZHNhX3NlY3AyNTZyMV9zaGEyNTYgZ3JvdXBzPXNlY3AyNTZyMSxzZWNwNTIxcjEiIFwKICAgICAgICAgIDAgXAogICAgICAgICAgLWMgIkhUVFAvMS4wIDIwMCBvayIgXAogICAgICAgICAgLWMgIlByb3RvY29sIGlzIFRMU3YxLjMiIFwKQEAgLTEzMzI2LDggKzEzMzI4LDggQEAKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIE1CRURUTFNfU1NMX1RMUzFfM19DT01QQVRJQklMSVRZX01PREUKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIFBTQV9XQU5UX0FMR19FQ0RICiBydW5fdGVzdCAiVExTIDEuMyBtLT5POiBIUlIgc2VjcDI1NnIxIC0+IHgyNTUxOSIgXAotICAgICAgICAgIiRPX05FWFRfU1JWX05PX0NFUlQgLWNlcnQgZGF0YV9maWxlcy9lY2RzYV9zZWNwMjU2cjEuY3J0IC1rZXkgZGF0YV9maWxlcy9lY2RzYV9zZWNwMjU2cjEua2V5IC1ncm91cHMgWDI1NTE5IC1tc2cgLXRsczFfMyAtbnVtX3RpY2tldHMgMCAtbm9fcmVzdW1lX2VwaGVtZXJhbCAtbm9fY2FjaGUiIFwKLSAgICAgICAgICIkUF9DTEkgY2FfZmlsZT1kYXRhX2ZpbGVzL3Rlc3QtY2EyLmNydCBkZWJ1Z19sZXZlbD00IHNpZ19hbGdzPWVjZHNhX3NlY3AyNTZyMV9zaGEyNTYgZ3JvdXBzPXNlY3AyNTZyMSx4MjU1MTkiIFwKKyAgICAgICAgICIkT19ORVhUX1NSVl9OT19DRVJUIC1jZXJ0ICREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDI1NnIxLmNydCAta2V5ICREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDI1NnIxLmtleSAtZ3JvdXBzIFgyNTUxOSAtbXNnIC10bHMxXzMgLW51bV90aWNrZXRzIDAgLW5vX3Jlc3VtZV9lcGhlbWVyYWwgLW5vX2NhY2hlIiBcCisgICAgICAgICAiJFBfQ0xJIGNhX2ZpbGU9JERBVEFfRklMRVNfUEFUSC90ZXN0LWNhMi5jcnQgZGVidWdfbGV2ZWw9NCBzaWdfYWxncz1lY2RzYV9zZWNwMjU2cjFfc2hhMjU2IGdyb3Vwcz1zZWNwMjU2cjEseDI1NTE5IiBcCiAgICAgICAgICAwIFwKICAgICAgICAgIC1jICJIVFRQLzEuMCAyMDAgb2siIFwKICAgICAgICAgIC1jICJQcm90b2NvbCBpcyBUTFN2MS4zIiBcCkBAIC0xMzM0NCw4ICsxMzM0Niw4IEBACiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBNQkVEVExTX1NTTF9UTFMxXzNfQ09NUEFUSUJJTElUWV9NT0RFCiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBQU0FfV0FOVF9BTEdfRUNESAogcnVuX3Rlc3QgIlRMUyAxLjMgbS0+TzogSFJSIHNlY3AyNTZyMSAtPiB4NDQ4IiBcCi0gICAgICAgICAiJE9fTkVYVF9TUlZfTk9fQ0VSVCAtY2VydCBkYXRhX2ZpbGVzL2VjZHNhX3NlY3AyNTZyMS5jcnQgLWtleSBkYXRhX2ZpbGVzL2VjZHNhX3NlY3AyNTZyMS5rZXkgLWdyb3VwcyBYNDQ4IC1tc2cgLXRsczFfMyAtbnVtX3RpY2tldHMgMCAtbm9fcmVzdW1lX2VwaGVtZXJhbCAtbm9fY2FjaGUiIFwKLSAgICAgICAgICIkUF9DTEkgY2FfZmlsZT1kYXRhX2ZpbGVzL3Rlc3QtY2EyLmNydCBkZWJ1Z19sZXZlbD00IHNpZ19hbGdzPWVjZHNhX3NlY3AyNTZyMV9zaGEyNTYgZ3JvdXBzPXNlY3AyNTZyMSx4NDQ4IiBcCisgICAgICAgICAiJE9fTkVYVF9TUlZfTk9fQ0VSVCAtY2VydCAkREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3AyNTZyMS5jcnQgLWtleSAkREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3AyNTZyMS5rZXkgLWdyb3VwcyBYNDQ4IC1tc2cgLXRsczFfMyAtbnVtX3RpY2tldHMgMCAtbm9fcmVzdW1lX2VwaGVtZXJhbCAtbm9fY2FjaGUiIFwKKyAgICAgICAgICIkUF9DTEkgY2FfZmlsZT0kREFUQV9GSUxFU19QQVRIL3Rlc3QtY2EyLmNydCBkZWJ1Z19sZXZlbD00IHNpZ19hbGdzPWVjZHNhX3NlY3AyNTZyMV9zaGEyNTYgZ3JvdXBzPXNlY3AyNTZyMSx4NDQ4IiBcCiAgICAgICAgICAwIFwKICAgICAgICAgIC1jICJIVFRQLzEuMCAyMDAgb2siIFwKICAgICAgICAgIC1jICJQcm90b2NvbCBpcyBUTFN2MS4zIiBcCkBAIC0xMzM2NCw4ICsxMzM2Niw4IEBACiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBQU0FfV0FOVF9BTEdfRkZESAogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgUFNBX1dBTlRfREhfUkZDNzkxOV8yMDQ4CiBydW5fdGVzdCAiVExTIDEuMyBtLT5POiBIUlIgc2VjcDI1NnIxIC0+IGZmZGhlMjA0OCIgXAotICAgICAgICAgIiRPX05FWFRfU1JWX05PX0NFUlQgLWNlcnQgZGF0YV9maWxlcy9lY2RzYV9zZWNwMjU2cjEuY3J0IC1rZXkgZGF0YV9maWxlcy9lY2RzYV9zZWNwMjU2cjEua2V5IC1ncm91cHMgZmZkaGUyMDQ4IC1tc2cgLXRsczFfMyAtbnVtX3RpY2tldHMgMCAtbm9fcmVzdW1lX2VwaGVtZXJhbCAtbm9fY2FjaGUiIFwKLSAgICAgICAgICIkUF9DTEkgY2FfZmlsZT1kYXRhX2ZpbGVzL3Rlc3QtY2EyLmNydCBkZWJ1Z19sZXZlbD00IHNpZ19hbGdzPWVjZHNhX3NlY3AyNTZyMV9zaGEyNTYgZ3JvdXBzPXNlY3AyNTZyMSxmZmRoZTIwNDgiIFwKKyAgICAgICAgICIkT19ORVhUX1NSVl9OT19DRVJUIC1jZXJ0ICREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDI1NnIxLmNydCAta2V5ICREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDI1NnIxLmtleSAtZ3JvdXBzIGZmZGhlMjA0OCAtbXNnIC10bHMxXzMgLW51bV90aWNrZXRzIDAgLW5vX3Jlc3VtZV9lcGhlbWVyYWwgLW5vX2NhY2hlIiBcCisgICAgICAgICAiJFBfQ0xJIGNhX2ZpbGU9JERBVEFfRklMRVNfUEFUSC90ZXN0LWNhMi5jcnQgZGVidWdfbGV2ZWw9NCBzaWdfYWxncz1lY2RzYV9zZWNwMjU2cjFfc2hhMjU2IGdyb3Vwcz1zZWNwMjU2cjEsZmZkaGUyMDQ4IiBcCiAgICAgICAgICAwIFwKICAgICAgICAgIC1jICJIVFRQLzEuMCAyMDAgb2siIFwKICAgICAgICAgIC1jICJQcm90b2NvbCBpcyBUTFN2MS4zIiBcCkBAIC0xMzM4Miw4ICsxMzM4NCw4IEBACiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBNQkVEVExTX1NTTF9UTFMxXzNfQ09NUEFUSUJJTElUWV9NT0RFCiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBQU0FfV0FOVF9BTEdfRUNESAogcnVuX3Rlc3QgIlRMUyAxLjMgbS0+TzogSFJSIHNlY3AzODRyMSAtPiBzZWNwMjU2cjEiIFwKLSAgICAgICAgICIkT19ORVhUX1NSVl9OT19DRVJUIC1jZXJ0IGRhdGFfZmlsZXMvZWNkc2Ffc2VjcDI1NnIxLmNydCAta2V5IGRhdGFfZmlsZXMvZWNkc2Ffc2VjcDI1NnIxLmtleSAtZ3JvdXBzIFAtMjU2IC1tc2cgLXRsczFfMyAtbnVtX3RpY2tldHMgMCAtbm9fcmVzdW1lX2VwaGVtZXJhbCAtbm9fY2FjaGUiIFwKLSAgICAgICAgICIkUF9DTEkgY2FfZmlsZT1kYXRhX2ZpbGVzL3Rlc3QtY2EyLmNydCBkZWJ1Z19sZXZlbD00IHNpZ19hbGdzPWVjZHNhX3NlY3AyNTZyMV9zaGEyNTYgZ3JvdXBzPXNlY3AzODRyMSxzZWNwMjU2cjEiIFwKKyAgICAgICAgICIkT19ORVhUX1NSVl9OT19DRVJUIC1jZXJ0ICREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDI1NnIxLmNydCAta2V5ICREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDI1NnIxLmtleSAtZ3JvdXBzIFAtMjU2IC1tc2cgLXRsczFfMyAtbnVtX3RpY2tldHMgMCAtbm9fcmVzdW1lX2VwaGVtZXJhbCAtbm9fY2FjaGUiIFwKKyAgICAgICAgICIkUF9DTEkgY2FfZmlsZT0kREFUQV9GSUxFU19QQVRIL3Rlc3QtY2EyLmNydCBkZWJ1Z19sZXZlbD00IHNpZ19hbGdzPWVjZHNhX3NlY3AyNTZyMV9zaGEyNTYgZ3JvdXBzPXNlY3AzODRyMSxzZWNwMjU2cjEiIFwKICAgICAgICAgIDAgXAogICAgICAgICAgLWMgIkhUVFAvMS4wIDIwMCBvayIgXAogICAgICAgICAgLWMgIlByb3RvY29sIGlzIFRMU3YxLjMiIFwKQEAgLTEzNDAwLDggKzEzNDAyLDggQEAKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIE1CRURUTFNfU1NMX1RMUzFfM19DT01QQVRJQklMSVRZX01PREUKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIFBTQV9XQU5UX0FMR19FQ0RICiBydW5fdGVzdCAiVExTIDEuMyBtLT5POiBIUlIgc2VjcDM4NHIxIC0+IHNlY3A1MjFyMSIgXAotICAgICAgICAgIiRPX05FWFRfU1JWX05PX0NFUlQgLWNlcnQgZGF0YV9maWxlcy9lY2RzYV9zZWNwMjU2cjEuY3J0IC1rZXkgZGF0YV9maWxlcy9lY2RzYV9zZWNwMjU2cjEua2V5IC1ncm91cHMgUC01MjEgLW1zZyAtdGxzMV8zIC1udW1fdGlja2V0cyAwIC1ub19yZXN1bWVfZXBoZW1lcmFsIC1ub19jYWNoZSIgXAotICAgICAgICAgIiRQX0NMSSBjYV9maWxlPWRhdGFfZmlsZXMvdGVzdC1jYTIuY3J0IGRlYnVnX2xldmVsPTQgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDI1NnIxX3NoYTI1NiBncm91cHM9c2VjcDM4NHIxLHNlY3A1MjFyMSIgXAorICAgICAgICAgIiRPX05FWFRfU1JWX05PX0NFUlQgLWNlcnQgJERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwMjU2cjEuY3J0IC1rZXkgJERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwMjU2cjEua2V5IC1ncm91cHMgUC01MjEgLW1zZyAtdGxzMV8zIC1udW1fdGlja2V0cyAwIC1ub19yZXN1bWVfZXBoZW1lcmFsIC1ub19jYWNoZSIgXAorICAgICAgICAgIiRQX0NMSSBjYV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvdGVzdC1jYTIuY3J0IGRlYnVnX2xldmVsPTQgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDI1NnIxX3NoYTI1NiBncm91cHM9c2VjcDM4NHIxLHNlY3A1MjFyMSIgXAogICAgICAgICAgMCBcCiAgICAgICAgICAtYyAiSFRUUC8xLjAgMjAwIG9rIiBcCiAgICAgICAgICAtYyAiUHJvdG9jb2wgaXMgVExTdjEuMyIgXApAQCAtMTM0MTgsOCArMTM0MjAsOCBAQAogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgTUJFRFRMU19TU0xfVExTMV8zX0NPTVBBVElCSUxJVFlfTU9ERQogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgUFNBX1dBTlRfQUxHX0VDREgKIHJ1bl90ZXN0ICJUTFMgMS4zIG0tPk86IEhSUiBzZWNwMzg0cjEgLT4geDI1NTE5IiBcCi0gICAgICAgICAiJE9fTkVYVF9TUlZfTk9fQ0VSVCAtY2VydCBkYXRhX2ZpbGVzL2VjZHNhX3NlY3AyNTZyMS5jcnQgLWtleSBkYXRhX2ZpbGVzL2VjZHNhX3NlY3AyNTZyMS5rZXkgLWdyb3VwcyBYMjU1MTkgLW1zZyAtdGxzMV8zIC1udW1fdGlja2V0cyAwIC1ub19yZXN1bWVfZXBoZW1lcmFsIC1ub19jYWNoZSIgXAotICAgICAgICAgIiRQX0NMSSBjYV9maWxlPWRhdGFfZmlsZXMvdGVzdC1jYTIuY3J0IGRlYnVnX2xldmVsPTQgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDI1NnIxX3NoYTI1NiBncm91cHM9c2VjcDM4NHIxLHgyNTUxOSIgXAorICAgICAgICAgIiRPX05FWFRfU1JWX05PX0NFUlQgLWNlcnQgJERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwMjU2cjEuY3J0IC1rZXkgJERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwMjU2cjEua2V5IC1ncm91cHMgWDI1NTE5IC1tc2cgLXRsczFfMyAtbnVtX3RpY2tldHMgMCAtbm9fcmVzdW1lX2VwaGVtZXJhbCAtbm9fY2FjaGUiIFwKKyAgICAgICAgICIkUF9DTEkgY2FfZmlsZT0kREFUQV9GSUxFU19QQVRIL3Rlc3QtY2EyLmNydCBkZWJ1Z19sZXZlbD00IHNpZ19hbGdzPWVjZHNhX3NlY3AyNTZyMV9zaGEyNTYgZ3JvdXBzPXNlY3AzODRyMSx4MjU1MTkiIFwKICAgICAgICAgIDAgXAogICAgICAgICAgLWMgIkhUVFAvMS4wIDIwMCBvayIgXAogICAgICAgICAgLWMgIlByb3RvY29sIGlzIFRMU3YxLjMiIFwKQEAgLTEzNDM2LDggKzEzNDM4LDggQEAKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIE1CRURUTFNfU1NMX1RMUzFfM19DT01QQVRJQklMSVRZX01PREUKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIFBTQV9XQU5UX0FMR19FQ0RICiBydW5fdGVzdCAiVExTIDEuMyBtLT5POiBIUlIgc2VjcDM4NHIxIC0+IHg0NDgiIFwKLSAgICAgICAgICIkT19ORVhUX1NSVl9OT19DRVJUIC1jZXJ0IGRhdGFfZmlsZXMvZWNkc2Ffc2VjcDI1NnIxLmNydCAta2V5IGRhdGFfZmlsZXMvZWNkc2Ffc2VjcDI1NnIxLmtleSAtZ3JvdXBzIFg0NDggLW1zZyAtdGxzMV8zIC1udW1fdGlja2V0cyAwIC1ub19yZXN1bWVfZXBoZW1lcmFsIC1ub19jYWNoZSIgXAotICAgICAgICAgIiRQX0NMSSBjYV9maWxlPWRhdGFfZmlsZXMvdGVzdC1jYTIuY3J0IGRlYnVnX2xldmVsPTQgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDI1NnIxX3NoYTI1NiBncm91cHM9c2VjcDM4NHIxLHg0NDgiIFwKKyAgICAgICAgICIkT19ORVhUX1NSVl9OT19DRVJUIC1jZXJ0ICREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDI1NnIxLmNydCAta2V5ICREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDI1NnIxLmtleSAtZ3JvdXBzIFg0NDggLW1zZyAtdGxzMV8zIC1udW1fdGlja2V0cyAwIC1ub19yZXN1bWVfZXBoZW1lcmFsIC1ub19jYWNoZSIgXAorICAgICAgICAgIiRQX0NMSSBjYV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvdGVzdC1jYTIuY3J0IGRlYnVnX2xldmVsPTQgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDI1NnIxX3NoYTI1NiBncm91cHM9c2VjcDM4NHIxLHg0NDgiIFwKICAgICAgICAgIDAgXAogICAgICAgICAgLWMgIkhUVFAvMS4wIDIwMCBvayIgXAogICAgICAgICAgLWMgIlByb3RvY29sIGlzIFRMU3YxLjMiIFwKQEAgLTEzNDU2LDggKzEzNDU4LDggQEAKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIFBTQV9XQU5UX0FMR19GRkRICiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBQU0FfV0FOVF9ESF9SRkM3OTE5XzIwNDgKIHJ1bl90ZXN0ICJUTFMgMS4zIG0tPk86IEhSUiBzZWNwMzg0cjEgLT4gZmZkaGUyMDQ4IiBcCi0gICAgICAgICAiJE9fTkVYVF9TUlZfTk9fQ0VSVCAtY2VydCBkYXRhX2ZpbGVzL2VjZHNhX3NlY3AyNTZyMS5jcnQgLWtleSBkYXRhX2ZpbGVzL2VjZHNhX3NlY3AyNTZyMS5rZXkgLWdyb3VwcyBmZmRoZTIwNDggLW1zZyAtdGxzMV8zIC1udW1fdGlja2V0cyAwIC1ub19yZXN1bWVfZXBoZW1lcmFsIC1ub19jYWNoZSIgXAotICAgICAgICAgIiRQX0NMSSBjYV9maWxlPWRhdGFfZmlsZXMvdGVzdC1jYTIuY3J0IGRlYnVnX2xldmVsPTQgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDI1NnIxX3NoYTI1NiBncm91cHM9c2VjcDM4NHIxLGZmZGhlMjA0OCIgXAorICAgICAgICAgIiRPX05FWFRfU1JWX05PX0NFUlQgLWNlcnQgJERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwMjU2cjEuY3J0IC1rZXkgJERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwMjU2cjEua2V5IC1ncm91cHMgZmZkaGUyMDQ4IC1tc2cgLXRsczFfMyAtbnVtX3RpY2tldHMgMCAtbm9fcmVzdW1lX2VwaGVtZXJhbCAtbm9fY2FjaGUiIFwKKyAgICAgICAgICIkUF9DTEkgY2FfZmlsZT0kREFUQV9GSUxFU19QQVRIL3Rlc3QtY2EyLmNydCBkZWJ1Z19sZXZlbD00IHNpZ19hbGdzPWVjZHNhX3NlY3AyNTZyMV9zaGEyNTYgZ3JvdXBzPXNlY3AzODRyMSxmZmRoZTIwNDgiIFwKICAgICAgICAgIDAgXAogICAgICAgICAgLWMgIkhUVFAvMS4wIDIwMCBvayIgXAogICAgICAgICAgLWMgIlByb3RvY29sIGlzIFRMU3YxLjMiIFwKQEAgLTEzNDc0LDggKzEzNDc2LDggQEAKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIE1CRURUTFNfU1NMX1RMUzFfM19DT01QQVRJQklMSVRZX01PREUKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIFBTQV9XQU5UX0FMR19FQ0RICiBydW5fdGVzdCAiVExTIDEuMyBtLT5POiBIUlIgc2VjcDUyMXIxIC0+IHNlY3AyNTZyMSIgXAotICAgICAgICAgIiRPX05FWFRfU1JWX05PX0NFUlQgLWNlcnQgZGF0YV9maWxlcy9lY2RzYV9zZWNwMjU2cjEuY3J0IC1rZXkgZGF0YV9maWxlcy9lY2RzYV9zZWNwMjU2cjEua2V5IC1ncm91cHMgUC0yNTYgLW1zZyAtdGxzMV8zIC1udW1fdGlja2V0cyAwIC1ub19yZXN1bWVfZXBoZW1lcmFsIC1ub19jYWNoZSIgXAotICAgICAgICAgIiRQX0NMSSBjYV9maWxlPWRhdGFfZmlsZXMvdGVzdC1jYTIuY3J0IGRlYnVnX2xldmVsPTQgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDI1NnIxX3NoYTI1NiBncm91cHM9c2VjcDUyMXIxLHNlY3AyNTZyMSIgXAorICAgICAgICAgIiRPX05FWFRfU1JWX05PX0NFUlQgLWNlcnQgJERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwMjU2cjEuY3J0IC1rZXkgJERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwMjU2cjEua2V5IC1ncm91cHMgUC0yNTYgLW1zZyAtdGxzMV8zIC1udW1fdGlja2V0cyAwIC1ub19yZXN1bWVfZXBoZW1lcmFsIC1ub19jYWNoZSIgXAorICAgICAgICAgIiRQX0NMSSBjYV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvdGVzdC1jYTIuY3J0IGRlYnVnX2xldmVsPTQgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDI1NnIxX3NoYTI1NiBncm91cHM9c2VjcDUyMXIxLHNlY3AyNTZyMSIgXAogICAgICAgICAgMCBcCiAgICAgICAgICAtYyAiSFRUUC8xLjAgMjAwIG9rIiBcCiAgICAgICAgICAtYyAiUHJvdG9jb2wgaXMgVExTdjEuMyIgXApAQCAtMTM0OTIsOCArMTM0OTQsOCBAQAogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgTUJFRFRMU19TU0xfVExTMV8zX0NPTVBBVElCSUxJVFlfTU9ERQogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgUFNBX1dBTlRfQUxHX0VDREgKIHJ1bl90ZXN0ICJUTFMgMS4zIG0tPk86IEhSUiBzZWNwNTIxcjEgLT4gc2VjcDM4NHIxIiBcCi0gICAgICAgICAiJE9fTkVYVF9TUlZfTk9fQ0VSVCAtY2VydCBkYXRhX2ZpbGVzL2VjZHNhX3NlY3AyNTZyMS5jcnQgLWtleSBkYXRhX2ZpbGVzL2VjZHNhX3NlY3AyNTZyMS5rZXkgLWdyb3VwcyBQLTM4NCAtbXNnIC10bHMxXzMgLW51bV90aWNrZXRzIDAgLW5vX3Jlc3VtZV9lcGhlbWVyYWwgLW5vX2NhY2hlIiBcCi0gICAgICAgICAiJFBfQ0xJIGNhX2ZpbGU9ZGF0YV9maWxlcy90ZXN0LWNhMi5jcnQgZGVidWdfbGV2ZWw9NCBzaWdfYWxncz1lY2RzYV9zZWNwMjU2cjFfc2hhMjU2IGdyb3Vwcz1zZWNwNTIxcjEsc2VjcDM4NHIxIiBcCisgICAgICAgICAiJE9fTkVYVF9TUlZfTk9fQ0VSVCAtY2VydCAkREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3AyNTZyMS5jcnQgLWtleSAkREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3AyNTZyMS5rZXkgLWdyb3VwcyBQLTM4NCAtbXNnIC10bHMxXzMgLW51bV90aWNrZXRzIDAgLW5vX3Jlc3VtZV9lcGhlbWVyYWwgLW5vX2NhY2hlIiBcCisgICAgICAgICAiJFBfQ0xJIGNhX2ZpbGU9JERBVEFfRklMRVNfUEFUSC90ZXN0LWNhMi5jcnQgZGVidWdfbGV2ZWw9NCBzaWdfYWxncz1lY2RzYV9zZWNwMjU2cjFfc2hhMjU2IGdyb3Vwcz1zZWNwNTIxcjEsc2VjcDM4NHIxIiBcCiAgICAgICAgICAwIFwKICAgICAgICAgIC1jICJIVFRQLzEuMCAyMDAgb2siIFwKICAgICAgICAgIC1jICJQcm90b2NvbCBpcyBUTFN2MS4zIiBcCkBAIC0xMzUxMCw4ICsxMzUxMiw4IEBACiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBNQkVEVExTX1NTTF9UTFMxXzNfQ09NUEFUSUJJTElUWV9NT0RFCiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBQU0FfV0FOVF9BTEdfRUNESAogcnVuX3Rlc3QgIlRMUyAxLjMgbS0+TzogSFJSIHNlY3A1MjFyMSAtPiB4MjU1MTkiIFwKLSAgICAgICAgICIkT19ORVhUX1NSVl9OT19DRVJUIC1jZXJ0IGRhdGFfZmlsZXMvZWNkc2Ffc2VjcDI1NnIxLmNydCAta2V5IGRhdGFfZmlsZXMvZWNkc2Ffc2VjcDI1NnIxLmtleSAtZ3JvdXBzIFgyNTUxOSAtbXNnIC10bHMxXzMgLW51bV90aWNrZXRzIDAgLW5vX3Jlc3VtZV9lcGhlbWVyYWwgLW5vX2NhY2hlIiBcCi0gICAgICAgICAiJFBfQ0xJIGNhX2ZpbGU9ZGF0YV9maWxlcy90ZXN0LWNhMi5jcnQgZGVidWdfbGV2ZWw9NCBzaWdfYWxncz1lY2RzYV9zZWNwMjU2cjFfc2hhMjU2IGdyb3Vwcz1zZWNwNTIxcjEseDI1NTE5IiBcCisgICAgICAgICAiJE9fTkVYVF9TUlZfTk9fQ0VSVCAtY2VydCAkREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3AyNTZyMS5jcnQgLWtleSAkREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3AyNTZyMS5rZXkgLWdyb3VwcyBYMjU1MTkgLW1zZyAtdGxzMV8zIC1udW1fdGlja2V0cyAwIC1ub19yZXN1bWVfZXBoZW1lcmFsIC1ub19jYWNoZSIgXAorICAgICAgICAgIiRQX0NMSSBjYV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvdGVzdC1jYTIuY3J0IGRlYnVnX2xldmVsPTQgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDI1NnIxX3NoYTI1NiBncm91cHM9c2VjcDUyMXIxLHgyNTUxOSIgXAogICAgICAgICAgMCBcCiAgICAgICAgICAtYyAiSFRUUC8xLjAgMjAwIG9rIiBcCiAgICAgICAgICAtYyAiUHJvdG9jb2wgaXMgVExTdjEuMyIgXApAQCAtMTM1MjgsOCArMTM1MzAsOCBAQAogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgTUJFRFRMU19TU0xfVExTMV8zX0NPTVBBVElCSUxJVFlfTU9ERQogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgUFNBX1dBTlRfQUxHX0VDREgKIHJ1bl90ZXN0ICJUTFMgMS4zIG0tPk86IEhSUiBzZWNwNTIxcjEgLT4geDQ0OCIgXAotICAgICAgICAgIiRPX05FWFRfU1JWX05PX0NFUlQgLWNlcnQgZGF0YV9maWxlcy9lY2RzYV9zZWNwMjU2cjEuY3J0IC1rZXkgZGF0YV9maWxlcy9lY2RzYV9zZWNwMjU2cjEua2V5IC1ncm91cHMgWDQ0OCAtbXNnIC10bHMxXzMgLW51bV90aWNrZXRzIDAgLW5vX3Jlc3VtZV9lcGhlbWVyYWwgLW5vX2NhY2hlIiBcCi0gICAgICAgICAiJFBfQ0xJIGNhX2ZpbGU9ZGF0YV9maWxlcy90ZXN0LWNhMi5jcnQgZGVidWdfbGV2ZWw9NCBzaWdfYWxncz1lY2RzYV9zZWNwMjU2cjFfc2hhMjU2IGdyb3Vwcz1zZWNwNTIxcjEseDQ0OCIgXAorICAgICAgICAgIiRPX05FWFRfU1JWX05PX0NFUlQgLWNlcnQgJERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwMjU2cjEuY3J0IC1rZXkgJERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwMjU2cjEua2V5IC1ncm91cHMgWDQ0OCAtbXNnIC10bHMxXzMgLW51bV90aWNrZXRzIDAgLW5vX3Jlc3VtZV9lcGhlbWVyYWwgLW5vX2NhY2hlIiBcCisgICAgICAgICAiJFBfQ0xJIGNhX2ZpbGU9JERBVEFfRklMRVNfUEFUSC90ZXN0LWNhMi5jcnQgZGVidWdfbGV2ZWw9NCBzaWdfYWxncz1lY2RzYV9zZWNwMjU2cjFfc2hhMjU2IGdyb3Vwcz1zZWNwNTIxcjEseDQ0OCIgXAogICAgICAgICAgMCBcCiAgICAgICAgICAtYyAiSFRUUC8xLjAgMjAwIG9rIiBcCiAgICAgICAgICAtYyAiUHJvdG9jb2wgaXMgVExTdjEuMyIgXApAQCAtMTM1NDgsOCArMTM1NTAsOCBAQAogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgUFNBX1dBTlRfQUxHX0ZGREgKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIFBTQV9XQU5UX0RIX1JGQzc5MTlfMjA0OAogcnVuX3Rlc3QgIlRMUyAxLjMgbS0+TzogSFJSIHNlY3A1MjFyMSAtPiBmZmRoZTIwNDgiIFwKLSAgICAgICAgICIkT19ORVhUX1NSVl9OT19DRVJUIC1jZXJ0IGRhdGFfZmlsZXMvZWNkc2Ffc2VjcDI1NnIxLmNydCAta2V5IGRhdGFfZmlsZXMvZWNkc2Ffc2VjcDI1NnIxLmtleSAtZ3JvdXBzIGZmZGhlMjA0OCAtbXNnIC10bHMxXzMgLW51bV90aWNrZXRzIDAgLW5vX3Jlc3VtZV9lcGhlbWVyYWwgLW5vX2NhY2hlIiBcCi0gICAgICAgICAiJFBfQ0xJIGNhX2ZpbGU9ZGF0YV9maWxlcy90ZXN0LWNhMi5jcnQgZGVidWdfbGV2ZWw9NCBzaWdfYWxncz1lY2RzYV9zZWNwMjU2cjFfc2hhMjU2IGdyb3Vwcz1zZWNwNTIxcjEsZmZkaGUyMDQ4IiBcCisgICAgICAgICAiJE9fTkVYVF9TUlZfTk9fQ0VSVCAtY2VydCAkREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3AyNTZyMS5jcnQgLWtleSAkREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3AyNTZyMS5rZXkgLWdyb3VwcyBmZmRoZTIwNDggLW1zZyAtdGxzMV8zIC1udW1fdGlja2V0cyAwIC1ub19yZXN1bWVfZXBoZW1lcmFsIC1ub19jYWNoZSIgXAorICAgICAgICAgIiRQX0NMSSBjYV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvdGVzdC1jYTIuY3J0IGRlYnVnX2xldmVsPTQgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDI1NnIxX3NoYTI1NiBncm91cHM9c2VjcDUyMXIxLGZmZGhlMjA0OCIgXAogICAgICAgICAgMCBcCiAgICAgICAgICAtYyAiSFRUUC8xLjAgMjAwIG9rIiBcCiAgICAgICAgICAtYyAiUHJvdG9jb2wgaXMgVExTdjEuMyIgXApAQCAtMTM1NjYsOCArMTM1NjgsOCBAQAogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgTUJFRFRMU19TU0xfVExTMV8zX0NPTVBBVElCSUxJVFlfTU9ERQogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgUFNBX1dBTlRfQUxHX0VDREgKIHJ1bl90ZXN0ICJUTFMgMS4zIG0tPk86IEhSUiB4MjU1MTkgLT4gc2VjcDI1NnIxIiBcCi0gICAgICAgICAiJE9fTkVYVF9TUlZfTk9fQ0VSVCAtY2VydCBkYXRhX2ZpbGVzL2VjZHNhX3NlY3AyNTZyMS5jcnQgLWtleSBkYXRhX2ZpbGVzL2VjZHNhX3NlY3AyNTZyMS5rZXkgLWdyb3VwcyBQLTI1NiAtbXNnIC10bHMxXzMgLW51bV90aWNrZXRzIDAgLW5vX3Jlc3VtZV9lcGhlbWVyYWwgLW5vX2NhY2hlIiBcCi0gICAgICAgICAiJFBfQ0xJIGNhX2ZpbGU9ZGF0YV9maWxlcy90ZXN0LWNhMi5jcnQgZGVidWdfbGV2ZWw9NCBzaWdfYWxncz1lY2RzYV9zZWNwMjU2cjFfc2hhMjU2IGdyb3Vwcz14MjU1MTksc2VjcDI1NnIxIiBcCisgICAgICAgICAiJE9fTkVYVF9TUlZfTk9fQ0VSVCAtY2VydCAkREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3AyNTZyMS5jcnQgLWtleSAkREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3AyNTZyMS5rZXkgLWdyb3VwcyBQLTI1NiAtbXNnIC10bHMxXzMgLW51bV90aWNrZXRzIDAgLW5vX3Jlc3VtZV9lcGhlbWVyYWwgLW5vX2NhY2hlIiBcCisgICAgICAgICAiJFBfQ0xJIGNhX2ZpbGU9JERBVEFfRklMRVNfUEFUSC90ZXN0LWNhMi5jcnQgZGVidWdfbGV2ZWw9NCBzaWdfYWxncz1lY2RzYV9zZWNwMjU2cjFfc2hhMjU2IGdyb3Vwcz14MjU1MTksc2VjcDI1NnIxIiBcCiAgICAgICAgICAwIFwKICAgICAgICAgIC1jICJIVFRQLzEuMCAyMDAgb2siIFwKICAgICAgICAgIC1jICJQcm90b2NvbCBpcyBUTFN2MS4zIiBcCkBAIC0xMzU4NCw4ICsxMzU4Niw4IEBACiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBNQkVEVExTX1NTTF9UTFMxXzNfQ09NUEFUSUJJTElUWV9NT0RFCiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBQU0FfV0FOVF9BTEdfRUNESAogcnVuX3Rlc3QgIlRMUyAxLjMgbS0+TzogSFJSIHgyNTUxOSAtPiBzZWNwMzg0cjEiIFwKLSAgICAgICAgICIkT19ORVhUX1NSVl9OT19DRVJUIC1jZXJ0IGRhdGFfZmlsZXMvZWNkc2Ffc2VjcDI1NnIxLmNydCAta2V5IGRhdGFfZmlsZXMvZWNkc2Ffc2VjcDI1NnIxLmtleSAtZ3JvdXBzIFAtMzg0IC1tc2cgLXRsczFfMyAtbnVtX3RpY2tldHMgMCAtbm9fcmVzdW1lX2VwaGVtZXJhbCAtbm9fY2FjaGUiIFwKLSAgICAgICAgICIkUF9DTEkgY2FfZmlsZT1kYXRhX2ZpbGVzL3Rlc3QtY2EyLmNydCBkZWJ1Z19sZXZlbD00IHNpZ19hbGdzPWVjZHNhX3NlY3AyNTZyMV9zaGEyNTYgZ3JvdXBzPXgyNTUxOSxzZWNwMzg0cjEiIFwKKyAgICAgICAgICIkT19ORVhUX1NSVl9OT19DRVJUIC1jZXJ0ICREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDI1NnIxLmNydCAta2V5ICREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDI1NnIxLmtleSAtZ3JvdXBzIFAtMzg0IC1tc2cgLXRsczFfMyAtbnVtX3RpY2tldHMgMCAtbm9fcmVzdW1lX2VwaGVtZXJhbCAtbm9fY2FjaGUiIFwKKyAgICAgICAgICIkUF9DTEkgY2FfZmlsZT0kREFUQV9GSUxFU19QQVRIL3Rlc3QtY2EyLmNydCBkZWJ1Z19sZXZlbD00IHNpZ19hbGdzPWVjZHNhX3NlY3AyNTZyMV9zaGEyNTYgZ3JvdXBzPXgyNTUxOSxzZWNwMzg0cjEiIFwKICAgICAgICAgIDAgXAogICAgICAgICAgLWMgIkhUVFAvMS4wIDIwMCBvayIgXAogICAgICAgICAgLWMgIlByb3RvY29sIGlzIFRMU3YxLjMiIFwKQEAgLTEzNjAyLDggKzEzNjA0LDggQEAKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIE1CRURUTFNfU1NMX1RMUzFfM19DT01QQVRJQklMSVRZX01PREUKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIFBTQV9XQU5UX0FMR19FQ0RICiBydW5fdGVzdCAiVExTIDEuMyBtLT5POiBIUlIgeDI1NTE5IC0+IHNlY3A1MjFyMSIgXAotICAgICAgICAgIiRPX05FWFRfU1JWX05PX0NFUlQgLWNlcnQgZGF0YV9maWxlcy9lY2RzYV9zZWNwMjU2cjEuY3J0IC1rZXkgZGF0YV9maWxlcy9lY2RzYV9zZWNwMjU2cjEua2V5IC1ncm91cHMgUC01MjEgLW1zZyAtdGxzMV8zIC1udW1fdGlja2V0cyAwIC1ub19yZXN1bWVfZXBoZW1lcmFsIC1ub19jYWNoZSIgXAotICAgICAgICAgIiRQX0NMSSBjYV9maWxlPWRhdGFfZmlsZXMvdGVzdC1jYTIuY3J0IGRlYnVnX2xldmVsPTQgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDI1NnIxX3NoYTI1NiBncm91cHM9eDI1NTE5LHNlY3A1MjFyMSIgXAorICAgICAgICAgIiRPX05FWFRfU1JWX05PX0NFUlQgLWNlcnQgJERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwMjU2cjEuY3J0IC1rZXkgJERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwMjU2cjEua2V5IC1ncm91cHMgUC01MjEgLW1zZyAtdGxzMV8zIC1udW1fdGlja2V0cyAwIC1ub19yZXN1bWVfZXBoZW1lcmFsIC1ub19jYWNoZSIgXAorICAgICAgICAgIiRQX0NMSSBjYV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvdGVzdC1jYTIuY3J0IGRlYnVnX2xldmVsPTQgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDI1NnIxX3NoYTI1NiBncm91cHM9eDI1NTE5LHNlY3A1MjFyMSIgXAogICAgICAgICAgMCBcCiAgICAgICAgICAtYyAiSFRUUC8xLjAgMjAwIG9rIiBcCiAgICAgICAgICAtYyAiUHJvdG9jb2wgaXMgVExTdjEuMyIgXApAQCAtMTM2MjAsOCArMTM2MjIsOCBAQAogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgTUJFRFRMU19TU0xfVExTMV8zX0NPTVBBVElCSUxJVFlfTU9ERQogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgUFNBX1dBTlRfQUxHX0VDREgKIHJ1bl90ZXN0ICJUTFMgMS4zIG0tPk86IEhSUiB4MjU1MTkgLT4geDQ0OCIgXAotICAgICAgICAgIiRPX05FWFRfU1JWX05PX0NFUlQgLWNlcnQgZGF0YV9maWxlcy9lY2RzYV9zZWNwMjU2cjEuY3J0IC1rZXkgZGF0YV9maWxlcy9lY2RzYV9zZWNwMjU2cjEua2V5IC1ncm91cHMgWDQ0OCAtbXNnIC10bHMxXzMgLW51bV90aWNrZXRzIDAgLW5vX3Jlc3VtZV9lcGhlbWVyYWwgLW5vX2NhY2hlIiBcCi0gICAgICAgICAiJFBfQ0xJIGNhX2ZpbGU9ZGF0YV9maWxlcy90ZXN0LWNhMi5jcnQgZGVidWdfbGV2ZWw9NCBzaWdfYWxncz1lY2RzYV9zZWNwMjU2cjFfc2hhMjU2IGdyb3Vwcz14MjU1MTkseDQ0OCIgXAorICAgICAgICAgIiRPX05FWFRfU1JWX05PX0NFUlQgLWNlcnQgJERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwMjU2cjEuY3J0IC1rZXkgJERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwMjU2cjEua2V5IC1ncm91cHMgWDQ0OCAtbXNnIC10bHMxXzMgLW51bV90aWNrZXRzIDAgLW5vX3Jlc3VtZV9lcGhlbWVyYWwgLW5vX2NhY2hlIiBcCisgICAgICAgICAiJFBfQ0xJIGNhX2ZpbGU9JERBVEFfRklMRVNfUEFUSC90ZXN0LWNhMi5jcnQgZGVidWdfbGV2ZWw9NCBzaWdfYWxncz1lY2RzYV9zZWNwMjU2cjFfc2hhMjU2IGdyb3Vwcz14MjU1MTkseDQ0OCIgXAogICAgICAgICAgMCBcCiAgICAgICAgICAtYyAiSFRUUC8xLjAgMjAwIG9rIiBcCiAgICAgICAgICAtYyAiUHJvdG9jb2wgaXMgVExTdjEuMyIgXApAQCAtMTM2NDAsOCArMTM2NDIsOCBAQAogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgUFNBX1dBTlRfQUxHX0ZGREgKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIFBTQV9XQU5UX0RIX1JGQzc5MTlfMjA0OAogcnVuX3Rlc3QgIlRMUyAxLjMgbS0+TzogSFJSIHgyNTUxOSAtPiBmZmRoZTIwNDgiIFwKLSAgICAgICAgICIkT19ORVhUX1NSVl9OT19DRVJUIC1jZXJ0IGRhdGFfZmlsZXMvZWNkc2Ffc2VjcDI1NnIxLmNydCAta2V5IGRhdGFfZmlsZXMvZWNkc2Ffc2VjcDI1NnIxLmtleSAtZ3JvdXBzIGZmZGhlMjA0OCAtbXNnIC10bHMxXzMgLW51bV90aWNrZXRzIDAgLW5vX3Jlc3VtZV9lcGhlbWVyYWwgLW5vX2NhY2hlIiBcCi0gICAgICAgICAiJFBfQ0xJIGNhX2ZpbGU9ZGF0YV9maWxlcy90ZXN0LWNhMi5jcnQgZGVidWdfbGV2ZWw9NCBzaWdfYWxncz1lY2RzYV9zZWNwMjU2cjFfc2hhMjU2IGdyb3Vwcz14MjU1MTksZmZkaGUyMDQ4IiBcCisgICAgICAgICAiJE9fTkVYVF9TUlZfTk9fQ0VSVCAtY2VydCAkREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3AyNTZyMS5jcnQgLWtleSAkREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3AyNTZyMS5rZXkgLWdyb3VwcyBmZmRoZTIwNDggLW1zZyAtdGxzMV8zIC1udW1fdGlja2V0cyAwIC1ub19yZXN1bWVfZXBoZW1lcmFsIC1ub19jYWNoZSIgXAorICAgICAgICAgIiRQX0NMSSBjYV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvdGVzdC1jYTIuY3J0IGRlYnVnX2xldmVsPTQgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDI1NnIxX3NoYTI1NiBncm91cHM9eDI1NTE5LGZmZGhlMjA0OCIgXAogICAgICAgICAgMCBcCiAgICAgICAgICAtYyAiSFRUUC8xLjAgMjAwIG9rIiBcCiAgICAgICAgICAtYyAiUHJvdG9jb2wgaXMgVExTdjEuMyIgXApAQCAtMTM2NTgsOCArMTM2NjAsOCBAQAogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgTUJFRFRMU19TU0xfVExTMV8zX0NPTVBBVElCSUxJVFlfTU9ERQogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgUFNBX1dBTlRfQUxHX0VDREgKIHJ1bl90ZXN0ICJUTFMgMS4zIG0tPk86IEhSUiB4NDQ4IC0+IHNlY3AyNTZyMSIgXAotICAgICAgICAgIiRPX05FWFRfU1JWX05PX0NFUlQgLWNlcnQgZGF0YV9maWxlcy9lY2RzYV9zZWNwMjU2cjEuY3J0IC1rZXkgZGF0YV9maWxlcy9lY2RzYV9zZWNwMjU2cjEua2V5IC1ncm91cHMgUC0yNTYgLW1zZyAtdGxzMV8zIC1udW1fdGlja2V0cyAwIC1ub19yZXN1bWVfZXBoZW1lcmFsIC1ub19jYWNoZSIgXAotICAgICAgICAgIiRQX0NMSSBjYV9maWxlPWRhdGFfZmlsZXMvdGVzdC1jYTIuY3J0IGRlYnVnX2xldmVsPTQgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDI1NnIxX3NoYTI1NiBncm91cHM9eDQ0OCxzZWNwMjU2cjEiIFwKKyAgICAgICAgICIkT19ORVhUX1NSVl9OT19DRVJUIC1jZXJ0ICREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDI1NnIxLmNydCAta2V5ICREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDI1NnIxLmtleSAtZ3JvdXBzIFAtMjU2IC1tc2cgLXRsczFfMyAtbnVtX3RpY2tldHMgMCAtbm9fcmVzdW1lX2VwaGVtZXJhbCAtbm9fY2FjaGUiIFwKKyAgICAgICAgICIkUF9DTEkgY2FfZmlsZT0kREFUQV9GSUxFU19QQVRIL3Rlc3QtY2EyLmNydCBkZWJ1Z19sZXZlbD00IHNpZ19hbGdzPWVjZHNhX3NlY3AyNTZyMV9zaGEyNTYgZ3JvdXBzPXg0NDgsc2VjcDI1NnIxIiBcCiAgICAgICAgICAwIFwKICAgICAgICAgIC1jICJIVFRQLzEuMCAyMDAgb2siIFwKICAgICAgICAgIC1jICJQcm90b2NvbCBpcyBUTFN2MS4zIiBcCkBAIC0xMzY3Niw4ICsxMzY3OCw4IEBACiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBNQkVEVExTX1NTTF9UTFMxXzNfQ09NUEFUSUJJTElUWV9NT0RFCiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBQU0FfV0FOVF9BTEdfRUNESAogcnVuX3Rlc3QgIlRMUyAxLjMgbS0+TzogSFJSIHg0NDggLT4gc2VjcDM4NHIxIiBcCi0gICAgICAgICAiJE9fTkVYVF9TUlZfTk9fQ0VSVCAtY2VydCBkYXRhX2ZpbGVzL2VjZHNhX3NlY3AyNTZyMS5jcnQgLWtleSBkYXRhX2ZpbGVzL2VjZHNhX3NlY3AyNTZyMS5rZXkgLWdyb3VwcyBQLTM4NCAtbXNnIC10bHMxXzMgLW51bV90aWNrZXRzIDAgLW5vX3Jlc3VtZV9lcGhlbWVyYWwgLW5vX2NhY2hlIiBcCi0gICAgICAgICAiJFBfQ0xJIGNhX2ZpbGU9ZGF0YV9maWxlcy90ZXN0LWNhMi5jcnQgZGVidWdfbGV2ZWw9NCBzaWdfYWxncz1lY2RzYV9zZWNwMjU2cjFfc2hhMjU2IGdyb3Vwcz14NDQ4LHNlY3AzODRyMSIgXAorICAgICAgICAgIiRPX05FWFRfU1JWX05PX0NFUlQgLWNlcnQgJERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwMjU2cjEuY3J0IC1rZXkgJERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwMjU2cjEua2V5IC1ncm91cHMgUC0zODQgLW1zZyAtdGxzMV8zIC1udW1fdGlja2V0cyAwIC1ub19yZXN1bWVfZXBoZW1lcmFsIC1ub19jYWNoZSIgXAorICAgICAgICAgIiRQX0NMSSBjYV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvdGVzdC1jYTIuY3J0IGRlYnVnX2xldmVsPTQgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDI1NnIxX3NoYTI1NiBncm91cHM9eDQ0OCxzZWNwMzg0cjEiIFwKICAgICAgICAgIDAgXAogICAgICAgICAgLWMgIkhUVFAvMS4wIDIwMCBvayIgXAogICAgICAgICAgLWMgIlByb3RvY29sIGlzIFRMU3YxLjMiIFwKQEAgLTEzNjk0LDggKzEzNjk2LDggQEAKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIE1CRURUTFNfU1NMX1RMUzFfM19DT01QQVRJQklMSVRZX01PREUKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIFBTQV9XQU5UX0FMR19FQ0RICiBydW5fdGVzdCAiVExTIDEuMyBtLT5POiBIUlIgeDQ0OCAtPiBzZWNwNTIxcjEiIFwKLSAgICAgICAgICIkT19ORVhUX1NSVl9OT19DRVJUIC1jZXJ0IGRhdGFfZmlsZXMvZWNkc2Ffc2VjcDI1NnIxLmNydCAta2V5IGRhdGFfZmlsZXMvZWNkc2Ffc2VjcDI1NnIxLmtleSAtZ3JvdXBzIFAtNTIxIC1tc2cgLXRsczFfMyAtbnVtX3RpY2tldHMgMCAtbm9fcmVzdW1lX2VwaGVtZXJhbCAtbm9fY2FjaGUiIFwKLSAgICAgICAgICIkUF9DTEkgY2FfZmlsZT1kYXRhX2ZpbGVzL3Rlc3QtY2EyLmNydCBkZWJ1Z19sZXZlbD00IHNpZ19hbGdzPWVjZHNhX3NlY3AyNTZyMV9zaGEyNTYgZ3JvdXBzPXg0NDgsc2VjcDUyMXIxIiBcCisgICAgICAgICAiJE9fTkVYVF9TUlZfTk9fQ0VSVCAtY2VydCAkREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3AyNTZyMS5jcnQgLWtleSAkREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3AyNTZyMS5rZXkgLWdyb3VwcyBQLTUyMSAtbXNnIC10bHMxXzMgLW51bV90aWNrZXRzIDAgLW5vX3Jlc3VtZV9lcGhlbWVyYWwgLW5vX2NhY2hlIiBcCisgICAgICAgICAiJFBfQ0xJIGNhX2ZpbGU9JERBVEFfRklMRVNfUEFUSC90ZXN0LWNhMi5jcnQgZGVidWdfbGV2ZWw9NCBzaWdfYWxncz1lY2RzYV9zZWNwMjU2cjFfc2hhMjU2IGdyb3Vwcz14NDQ4LHNlY3A1MjFyMSIgXAogICAgICAgICAgMCBcCiAgICAgICAgICAtYyAiSFRUUC8xLjAgMjAwIG9rIiBcCiAgICAgICAgICAtYyAiUHJvdG9jb2wgaXMgVExTdjEuMyIgXApAQCAtMTM3MTIsOCArMTM3MTQsOCBAQAogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgTUJFRFRMU19TU0xfVExTMV8zX0NPTVBBVElCSUxJVFlfTU9ERQogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgUFNBX1dBTlRfQUxHX0VDREgKIHJ1bl90ZXN0ICJUTFMgMS4zIG0tPk86IEhSUiB4NDQ4IC0+IHgyNTUxOSIgXAotICAgICAgICAgIiRPX05FWFRfU1JWX05PX0NFUlQgLWNlcnQgZGF0YV9maWxlcy9lY2RzYV9zZWNwMjU2cjEuY3J0IC1rZXkgZGF0YV9maWxlcy9lY2RzYV9zZWNwMjU2cjEua2V5IC1ncm91cHMgWDI1NTE5IC1tc2cgLXRsczFfMyAtbnVtX3RpY2tldHMgMCAtbm9fcmVzdW1lX2VwaGVtZXJhbCAtbm9fY2FjaGUiIFwKLSAgICAgICAgICIkUF9DTEkgY2FfZmlsZT1kYXRhX2ZpbGVzL3Rlc3QtY2EyLmNydCBkZWJ1Z19sZXZlbD00IHNpZ19hbGdzPWVjZHNhX3NlY3AyNTZyMV9zaGEyNTYgZ3JvdXBzPXg0NDgseDI1NTE5IiBcCisgICAgICAgICAiJE9fTkVYVF9TUlZfTk9fQ0VSVCAtY2VydCAkREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3AyNTZyMS5jcnQgLWtleSAkREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3AyNTZyMS5rZXkgLWdyb3VwcyBYMjU1MTkgLW1zZyAtdGxzMV8zIC1udW1fdGlja2V0cyAwIC1ub19yZXN1bWVfZXBoZW1lcmFsIC1ub19jYWNoZSIgXAorICAgICAgICAgIiRQX0NMSSBjYV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvdGVzdC1jYTIuY3J0IGRlYnVnX2xldmVsPTQgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDI1NnIxX3NoYTI1NiBncm91cHM9eDQ0OCx4MjU1MTkiIFwKICAgICAgICAgIDAgXAogICAgICAgICAgLWMgIkhUVFAvMS4wIDIwMCBvayIgXAogICAgICAgICAgLWMgIlByb3RvY29sIGlzIFRMU3YxLjMiIFwKQEAgLTEzNzMyLDggKzEzNzM0LDggQEAKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIFBTQV9XQU5UX0FMR19GRkRICiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBQU0FfV0FOVF9ESF9SRkM3OTE5XzIwNDgKIHJ1bl90ZXN0ICJUTFMgMS4zIG0tPk86IEhSUiB4NDQ4IC0+IGZmZGhlMjA0OCIgXAotICAgICAgICAgIiRPX05FWFRfU1JWX05PX0NFUlQgLWNlcnQgZGF0YV9maWxlcy9lY2RzYV9zZWNwMjU2cjEuY3J0IC1rZXkgZGF0YV9maWxlcy9lY2RzYV9zZWNwMjU2cjEua2V5IC1ncm91cHMgZmZkaGUyMDQ4IC1tc2cgLXRsczFfMyAtbnVtX3RpY2tldHMgMCAtbm9fcmVzdW1lX2VwaGVtZXJhbCAtbm9fY2FjaGUiIFwKLSAgICAgICAgICIkUF9DTEkgY2FfZmlsZT1kYXRhX2ZpbGVzL3Rlc3QtY2EyLmNydCBkZWJ1Z19sZXZlbD00IHNpZ19hbGdzPWVjZHNhX3NlY3AyNTZyMV9zaGEyNTYgZ3JvdXBzPXg0NDgsZmZkaGUyMDQ4IiBcCisgICAgICAgICAiJE9fTkVYVF9TUlZfTk9fQ0VSVCAtY2VydCAkREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3AyNTZyMS5jcnQgLWtleSAkREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3AyNTZyMS5rZXkgLWdyb3VwcyBmZmRoZTIwNDggLW1zZyAtdGxzMV8zIC1udW1fdGlja2V0cyAwIC1ub19yZXN1bWVfZXBoZW1lcmFsIC1ub19jYWNoZSIgXAorICAgICAgICAgIiRQX0NMSSBjYV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvdGVzdC1jYTIuY3J0IGRlYnVnX2xldmVsPTQgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDI1NnIxX3NoYTI1NiBncm91cHM9eDQ0OCxmZmRoZTIwNDgiIFwKICAgICAgICAgIDAgXAogICAgICAgICAgLWMgIkhUVFAvMS4wIDIwMCBvayIgXAogICAgICAgICAgLWMgIlByb3RvY29sIGlzIFRMU3YxLjMiIFwKQEAgLTEzNzUyLDggKzEzNzU0LDggQEAKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIFBTQV9XQU5UX0FMR19GRkRICiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBQU0FfV0FOVF9ESF9SRkM3OTE5XzIwNDgKIHJ1bl90ZXN0ICJUTFMgMS4zIG0tPk86IEhSUiBmZmRoZTIwNDggLT4gc2VjcDI1NnIxIiBcCi0gICAgICAgICAiJE9fTkVYVF9TUlZfTk9fQ0VSVCAtY2VydCBkYXRhX2ZpbGVzL2VjZHNhX3NlY3AyNTZyMS5jcnQgLWtleSBkYXRhX2ZpbGVzL2VjZHNhX3NlY3AyNTZyMS5rZXkgLWdyb3VwcyBQLTI1NiAtbXNnIC10bHMxXzMgLW51bV90aWNrZXRzIDAgLW5vX3Jlc3VtZV9lcGhlbWVyYWwgLW5vX2NhY2hlIiBcCi0gICAgICAgICAiJFBfQ0xJIGNhX2ZpbGU9ZGF0YV9maWxlcy90ZXN0LWNhMi5jcnQgZGVidWdfbGV2ZWw9NCBzaWdfYWxncz1lY2RzYV9zZWNwMjU2cjFfc2hhMjU2IGdyb3Vwcz1mZmRoZTIwNDgsc2VjcDI1NnIxIiBcCisgICAgICAgICAiJE9fTkVYVF9TUlZfTk9fQ0VSVCAtY2VydCAkREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3AyNTZyMS5jcnQgLWtleSAkREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3AyNTZyMS5rZXkgLWdyb3VwcyBQLTI1NiAtbXNnIC10bHMxXzMgLW51bV90aWNrZXRzIDAgLW5vX3Jlc3VtZV9lcGhlbWVyYWwgLW5vX2NhY2hlIiBcCisgICAgICAgICAiJFBfQ0xJIGNhX2ZpbGU9JERBVEFfRklMRVNfUEFUSC90ZXN0LWNhMi5jcnQgZGVidWdfbGV2ZWw9NCBzaWdfYWxncz1lY2RzYV9zZWNwMjU2cjFfc2hhMjU2IGdyb3Vwcz1mZmRoZTIwNDgsc2VjcDI1NnIxIiBcCiAgICAgICAgICAwIFwKICAgICAgICAgIC1jICJIVFRQLzEuMCAyMDAgb2siIFwKICAgICAgICAgIC1jICJQcm90b2NvbCBpcyBUTFN2MS4zIiBcCkBAIC0xMzc3Miw4ICsxMzc3NCw4IEBACiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBQU0FfV0FOVF9BTEdfRkZESAogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgUFNBX1dBTlRfREhfUkZDNzkxOV8yMDQ4CiBydW5fdGVzdCAiVExTIDEuMyBtLT5POiBIUlIgZmZkaGUyMDQ4IC0+IHNlY3AzODRyMSIgXAotICAgICAgICAgIiRPX05FWFRfU1JWX05PX0NFUlQgLWNlcnQgZGF0YV9maWxlcy9lY2RzYV9zZWNwMjU2cjEuY3J0IC1rZXkgZGF0YV9maWxlcy9lY2RzYV9zZWNwMjU2cjEua2V5IC1ncm91cHMgUC0zODQgLW1zZyAtdGxzMV8zIC1udW1fdGlja2V0cyAwIC1ub19yZXN1bWVfZXBoZW1lcmFsIC1ub19jYWNoZSIgXAotICAgICAgICAgIiRQX0NMSSBjYV9maWxlPWRhdGFfZmlsZXMvdGVzdC1jYTIuY3J0IGRlYnVnX2xldmVsPTQgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDI1NnIxX3NoYTI1NiBncm91cHM9ZmZkaGUyMDQ4LHNlY3AzODRyMSIgXAorICAgICAgICAgIiRPX05FWFRfU1JWX05PX0NFUlQgLWNlcnQgJERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwMjU2cjEuY3J0IC1rZXkgJERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwMjU2cjEua2V5IC1ncm91cHMgUC0zODQgLW1zZyAtdGxzMV8zIC1udW1fdGlja2V0cyAwIC1ub19yZXN1bWVfZXBoZW1lcmFsIC1ub19jYWNoZSIgXAorICAgICAgICAgIiRQX0NMSSBjYV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvdGVzdC1jYTIuY3J0IGRlYnVnX2xldmVsPTQgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDI1NnIxX3NoYTI1NiBncm91cHM9ZmZkaGUyMDQ4LHNlY3AzODRyMSIgXAogICAgICAgICAgMCBcCiAgICAgICAgICAtYyAiSFRUUC8xLjAgMjAwIG9rIiBcCiAgICAgICAgICAtYyAiUHJvdG9jb2wgaXMgVExTdjEuMyIgXApAQCAtMTM3OTIsOCArMTM3OTQsOCBAQAogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgUFNBX1dBTlRfQUxHX0ZGREgKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIFBTQV9XQU5UX0RIX1JGQzc5MTlfMjA0OAogcnVuX3Rlc3QgIlRMUyAxLjMgbS0+TzogSFJSIGZmZGhlMjA0OCAtPiBzZWNwNTIxcjEiIFwKLSAgICAgICAgICIkT19ORVhUX1NSVl9OT19DRVJUIC1jZXJ0IGRhdGFfZmlsZXMvZWNkc2Ffc2VjcDI1NnIxLmNydCAta2V5IGRhdGFfZmlsZXMvZWNkc2Ffc2VjcDI1NnIxLmtleSAtZ3JvdXBzIFAtNTIxIC1tc2cgLXRsczFfMyAtbnVtX3RpY2tldHMgMCAtbm9fcmVzdW1lX2VwaGVtZXJhbCAtbm9fY2FjaGUiIFwKLSAgICAgICAgICIkUF9DTEkgY2FfZmlsZT1kYXRhX2ZpbGVzL3Rlc3QtY2EyLmNydCBkZWJ1Z19sZXZlbD00IHNpZ19hbGdzPWVjZHNhX3NlY3AyNTZyMV9zaGEyNTYgZ3JvdXBzPWZmZGhlMjA0OCxzZWNwNTIxcjEiIFwKKyAgICAgICAgICIkT19ORVhUX1NSVl9OT19DRVJUIC1jZXJ0ICREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDI1NnIxLmNydCAta2V5ICREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDI1NnIxLmtleSAtZ3JvdXBzIFAtNTIxIC1tc2cgLXRsczFfMyAtbnVtX3RpY2tldHMgMCAtbm9fcmVzdW1lX2VwaGVtZXJhbCAtbm9fY2FjaGUiIFwKKyAgICAgICAgICIkUF9DTEkgY2FfZmlsZT0kREFUQV9GSUxFU19QQVRIL3Rlc3QtY2EyLmNydCBkZWJ1Z19sZXZlbD00IHNpZ19hbGdzPWVjZHNhX3NlY3AyNTZyMV9zaGEyNTYgZ3JvdXBzPWZmZGhlMjA0OCxzZWNwNTIxcjEiIFwKICAgICAgICAgIDAgXAogICAgICAgICAgLWMgIkhUVFAvMS4wIDIwMCBvayIgXAogICAgICAgICAgLWMgIlByb3RvY29sIGlzIFRMU3YxLjMiIFwKQEAgLTEzODEyLDggKzEzODE0LDggQEAKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIFBTQV9XQU5UX0FMR19GRkRICiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBQU0FfV0FOVF9ESF9SRkM3OTE5XzIwNDgKIHJ1bl90ZXN0ICJUTFMgMS4zIG0tPk86IEhSUiBmZmRoZTIwNDggLT4geDI1NTE5IiBcCi0gICAgICAgICAiJE9fTkVYVF9TUlZfTk9fQ0VSVCAtY2VydCBkYXRhX2ZpbGVzL2VjZHNhX3NlY3AyNTZyMS5jcnQgLWtleSBkYXRhX2ZpbGVzL2VjZHNhX3NlY3AyNTZyMS5rZXkgLWdyb3VwcyBYMjU1MTkgLW1zZyAtdGxzMV8zIC1udW1fdGlja2V0cyAwIC1ub19yZXN1bWVfZXBoZW1lcmFsIC1ub19jYWNoZSIgXAotICAgICAgICAgIiRQX0NMSSBjYV9maWxlPWRhdGFfZmlsZXMvdGVzdC1jYTIuY3J0IGRlYnVnX2xldmVsPTQgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDI1NnIxX3NoYTI1NiBncm91cHM9ZmZkaGUyMDQ4LHgyNTUxOSIgXAorICAgICAgICAgIiRPX05FWFRfU1JWX05PX0NFUlQgLWNlcnQgJERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwMjU2cjEuY3J0IC1rZXkgJERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwMjU2cjEua2V5IC1ncm91cHMgWDI1NTE5IC1tc2cgLXRsczFfMyAtbnVtX3RpY2tldHMgMCAtbm9fcmVzdW1lX2VwaGVtZXJhbCAtbm9fY2FjaGUiIFwKKyAgICAgICAgICIkUF9DTEkgY2FfZmlsZT0kREFUQV9GSUxFU19QQVRIL3Rlc3QtY2EyLmNydCBkZWJ1Z19sZXZlbD00IHNpZ19hbGdzPWVjZHNhX3NlY3AyNTZyMV9zaGEyNTYgZ3JvdXBzPWZmZGhlMjA0OCx4MjU1MTkiIFwKICAgICAgICAgIDAgXAogICAgICAgICAgLWMgIkhUVFAvMS4wIDIwMCBvayIgXAogICAgICAgICAgLWMgIlByb3RvY29sIGlzIFRMU3YxLjMiIFwKQEAgLTEzODMyLDggKzEzODM0LDggQEAKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIFBTQV9XQU5UX0FMR19GRkRICiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBQU0FfV0FOVF9ESF9SRkM3OTE5XzIwNDgKIHJ1bl90ZXN0ICJUTFMgMS4zIG0tPk86IEhSUiBmZmRoZTIwNDggLT4geDQ0OCIgXAotICAgICAgICAgIiRPX05FWFRfU1JWX05PX0NFUlQgLWNlcnQgZGF0YV9maWxlcy9lY2RzYV9zZWNwMjU2cjEuY3J0IC1rZXkgZGF0YV9maWxlcy9lY2RzYV9zZWNwMjU2cjEua2V5IC1ncm91cHMgWDQ0OCAtbXNnIC10bHMxXzMgLW51bV90aWNrZXRzIDAgLW5vX3Jlc3VtZV9lcGhlbWVyYWwgLW5vX2NhY2hlIiBcCi0gICAgICAgICAiJFBfQ0xJIGNhX2ZpbGU9ZGF0YV9maWxlcy90ZXN0LWNhMi5jcnQgZGVidWdfbGV2ZWw9NCBzaWdfYWxncz1lY2RzYV9zZWNwMjU2cjFfc2hhMjU2IGdyb3Vwcz1mZmRoZTIwNDgseDQ0OCIgXAorICAgICAgICAgIiRPX05FWFRfU1JWX05PX0NFUlQgLWNlcnQgJERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwMjU2cjEuY3J0IC1rZXkgJERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwMjU2cjEua2V5IC1ncm91cHMgWDQ0OCAtbXNnIC10bHMxXzMgLW51bV90aWNrZXRzIDAgLW5vX3Jlc3VtZV9lcGhlbWVyYWwgLW5vX2NhY2hlIiBcCisgICAgICAgICAiJFBfQ0xJIGNhX2ZpbGU9JERBVEFfRklMRVNfUEFUSC90ZXN0LWNhMi5jcnQgZGVidWdfbGV2ZWw9NCBzaWdfYWxncz1lY2RzYV9zZWNwMjU2cjFfc2hhMjU2IGdyb3Vwcz1mZmRoZTIwNDgseDQ0OCIgXAogICAgICAgICAgMCBcCiAgICAgICAgICAtYyAiSFRUUC8xLjAgMjAwIG9rIiBcCiAgICAgICAgICAtYyAiUHJvdG9jb2wgaXMgVExTdjEuMyIgXApAQCAtMTM4NTIsOCArMTM4NTQsOCBAQAogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgTUJFRFRMU19TU0xfVExTMV8zX0NPTVBBVElCSUxJVFlfTU9ERQogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgUFNBX1dBTlRfQUxHX0VDREgKIHJ1bl90ZXN0ICJUTFMgMS4zIG0tPkc6IEhSUiBzZWNwMjU2cjEgLT4gc2VjcDM4NHIxIiBcCi0gICAgICAgICAiJEdfTkVYVF9TUlZfTk9fQ0VSVCAtLWh0dHAgLS1kaXNhYmxlLWNsaWVudC1jZXJ0IC0tZGVidWc9NCAtLXg1MDljZXJ0ZmlsZSBkYXRhX2ZpbGVzL2VjZHNhX3NlY3AyNTZyMS5jcnQgLS14NTA5a2V5ZmlsZSBkYXRhX2ZpbGVzL2VjZHNhX3NlY3AyNTZyMS5rZXkgLS1wcmlvcml0eT1OT05FOitDSVBIRVItQUxMOitNQUMtQUxMOitTSUdOLUFMTDorR1JPVVAtU0VDUDM4NFIxOitWRVJTLVRMUzEuMzolTk9fVElDS0VUUyIgXAotICAgICAgICAgIiRQX0NMSSBjYV9maWxlPWRhdGFfZmlsZXMvdGVzdC1jYTIuY3J0IGRlYnVnX2xldmVsPTQgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDI1NnIxX3NoYTI1NiBncm91cHM9c2VjcDI1NnIxLHNlY3AzODRyMSIgXAorICAgICAgICAgIiRHX05FWFRfU1JWX05PX0NFUlQgLS1odHRwIC0tZGlzYWJsZS1jbGllbnQtY2VydCAtLWRlYnVnPTQgLS14NTA5Y2VydGZpbGUgJERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwMjU2cjEuY3J0IC0teDUwOWtleWZpbGUgJERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwMjU2cjEua2V5IC0tcHJpb3JpdHk9Tk9ORTorQ0lQSEVSLUFMTDorTUFDLUFMTDorU0lHTi1BTEw6K0dST1VQLVNFQ1AzODRSMTorVkVSUy1UTFMxLjM6JU5PX1RJQ0tFVFMiIFwKKyAgICAgICAgICIkUF9DTEkgY2FfZmlsZT0kREFUQV9GSUxFU19QQVRIL3Rlc3QtY2EyLmNydCBkZWJ1Z19sZXZlbD00IHNpZ19hbGdzPWVjZHNhX3NlY3AyNTZyMV9zaGEyNTYgZ3JvdXBzPXNlY3AyNTZyMSxzZWNwMzg0cjEiIFwKICAgICAgICAgIDAgXAogICAgICAgICAgLWMgIkhUVFAvMS4wIDIwMCBPSyIgXAogICAgICAgICAgLWMgIlByb3RvY29sIGlzIFRMU3YxLjMiIFwKQEAgLTEzODcyLDggKzEzODc0LDggQEAKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIE1CRURUTFNfU1NMX1RMUzFfM19DT01QQVRJQklMSVRZX01PREUKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIFBTQV9XQU5UX0FMR19FQ0RICiBydW5fdGVzdCAiVExTIDEuMyBtLT5HOiBIUlIgc2VjcDI1NnIxIC0+IHNlY3A1MjFyMSIgXAotICAgICAgICAgIiRHX05FWFRfU1JWX05PX0NFUlQgLS1odHRwIC0tZGlzYWJsZS1jbGllbnQtY2VydCAtLWRlYnVnPTQgLS14NTA5Y2VydGZpbGUgZGF0YV9maWxlcy9lY2RzYV9zZWNwMjU2cjEuY3J0IC0teDUwOWtleWZpbGUgZGF0YV9maWxlcy9lY2RzYV9zZWNwMjU2cjEua2V5IC0tcHJpb3JpdHk9Tk9ORTorQ0lQSEVSLUFMTDorTUFDLUFMTDorU0lHTi1BTEw6K0dST1VQLVNFQ1A1MjFSMTorVkVSUy1UTFMxLjM6JU5PX1RJQ0tFVFMiIFwKLSAgICAgICAgICIkUF9DTEkgY2FfZmlsZT1kYXRhX2ZpbGVzL3Rlc3QtY2EyLmNydCBkZWJ1Z19sZXZlbD00IHNpZ19hbGdzPWVjZHNhX3NlY3AyNTZyMV9zaGEyNTYgZ3JvdXBzPXNlY3AyNTZyMSxzZWNwNTIxcjEiIFwKKyAgICAgICAgICIkR19ORVhUX1NSVl9OT19DRVJUIC0taHR0cCAtLWRpc2FibGUtY2xpZW50LWNlcnQgLS1kZWJ1Zz00IC0teDUwOWNlcnRmaWxlICREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDI1NnIxLmNydCAtLXg1MDlrZXlmaWxlICREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDI1NnIxLmtleSAtLXByaW9yaXR5PU5PTkU6K0NJUEhFUi1BTEw6K01BQy1BTEw6K1NJR04tQUxMOitHUk9VUC1TRUNQNTIxUjE6K1ZFUlMtVExTMS4zOiVOT19USUNLRVRTIiBcCisgICAgICAgICAiJFBfQ0xJIGNhX2ZpbGU9JERBVEFfRklMRVNfUEFUSC90ZXN0LWNhMi5jcnQgZGVidWdfbGV2ZWw9NCBzaWdfYWxncz1lY2RzYV9zZWNwMjU2cjFfc2hhMjU2IGdyb3Vwcz1zZWNwMjU2cjEsc2VjcDUyMXIxIiBcCiAgICAgICAgICAwIFwKICAgICAgICAgIC1jICJIVFRQLzEuMCAyMDAgT0siIFwKICAgICAgICAgIC1jICJQcm90b2NvbCBpcyBUTFN2MS4zIiBcCkBAIC0xMzg5Miw4ICsxMzg5NCw4IEBACiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBNQkVEVExTX1NTTF9UTFMxXzNfQ09NUEFUSUJJTElUWV9NT0RFCiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBQU0FfV0FOVF9BTEdfRUNESAogcnVuX3Rlc3QgIlRMUyAxLjMgbS0+RzogSFJSIHNlY3AyNTZyMSAtPiB4MjU1MTkiIFwKLSAgICAgICAgICIkR19ORVhUX1NSVl9OT19DRVJUIC0taHR0cCAtLWRpc2FibGUtY2xpZW50LWNlcnQgLS1kZWJ1Zz00IC0teDUwOWNlcnRmaWxlIGRhdGFfZmlsZXMvZWNkc2Ffc2VjcDI1NnIxLmNydCAtLXg1MDlrZXlmaWxlIGRhdGFfZmlsZXMvZWNkc2Ffc2VjcDI1NnIxLmtleSAtLXByaW9yaXR5PU5PTkU6K0NJUEhFUi1BTEw6K01BQy1BTEw6K1NJR04tQUxMOitHUk9VUC1YMjU1MTk6K1ZFUlMtVExTMS4zOiVOT19USUNLRVRTIiBcCi0gICAgICAgICAiJFBfQ0xJIGNhX2ZpbGU9ZGF0YV9maWxlcy90ZXN0LWNhMi5jcnQgZGVidWdfbGV2ZWw9NCBzaWdfYWxncz1lY2RzYV9zZWNwMjU2cjFfc2hhMjU2IGdyb3Vwcz1zZWNwMjU2cjEseDI1NTE5IiBcCisgICAgICAgICAiJEdfTkVYVF9TUlZfTk9fQ0VSVCAtLWh0dHAgLS1kaXNhYmxlLWNsaWVudC1jZXJ0IC0tZGVidWc9NCAtLXg1MDljZXJ0ZmlsZSAkREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3AyNTZyMS5jcnQgLS14NTA5a2V5ZmlsZSAkREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3AyNTZyMS5rZXkgLS1wcmlvcml0eT1OT05FOitDSVBIRVItQUxMOitNQUMtQUxMOitTSUdOLUFMTDorR1JPVVAtWDI1NTE5OitWRVJTLVRMUzEuMzolTk9fVElDS0VUUyIgXAorICAgICAgICAgIiRQX0NMSSBjYV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvdGVzdC1jYTIuY3J0IGRlYnVnX2xldmVsPTQgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDI1NnIxX3NoYTI1NiBncm91cHM9c2VjcDI1NnIxLHgyNTUxOSIgXAogICAgICAgICAgMCBcCiAgICAgICAgICAtYyAiSFRUUC8xLjAgMjAwIE9LIiBcCiAgICAgICAgICAtYyAiUHJvdG9jb2wgaXMgVExTdjEuMyIgXApAQCAtMTM5MTIsOCArMTM5MTQsOCBAQAogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgTUJFRFRMU19TU0xfVExTMV8zX0NPTVBBVElCSUxJVFlfTU9ERQogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgUFNBX1dBTlRfQUxHX0VDREgKIHJ1bl90ZXN0ICJUTFMgMS4zIG0tPkc6IEhSUiBzZWNwMjU2cjEgLT4geDQ0OCIgXAotICAgICAgICAgIiRHX05FWFRfU1JWX05PX0NFUlQgLS1odHRwIC0tZGlzYWJsZS1jbGllbnQtY2VydCAtLWRlYnVnPTQgLS14NTA5Y2VydGZpbGUgZGF0YV9maWxlcy9lY2RzYV9zZWNwMjU2cjEuY3J0IC0teDUwOWtleWZpbGUgZGF0YV9maWxlcy9lY2RzYV9zZWNwMjU2cjEua2V5IC0tcHJpb3JpdHk9Tk9ORTorQ0lQSEVSLUFMTDorTUFDLUFMTDorU0lHTi1BTEw6K0dST1VQLVg0NDg6K1ZFUlMtVExTMS4zOiVOT19USUNLRVRTIiBcCi0gICAgICAgICAiJFBfQ0xJIGNhX2ZpbGU9ZGF0YV9maWxlcy90ZXN0LWNhMi5jcnQgZGVidWdfbGV2ZWw9NCBzaWdfYWxncz1lY2RzYV9zZWNwMjU2cjFfc2hhMjU2IGdyb3Vwcz1zZWNwMjU2cjEseDQ0OCIgXAorICAgICAgICAgIiRHX05FWFRfU1JWX05PX0NFUlQgLS1odHRwIC0tZGlzYWJsZS1jbGllbnQtY2VydCAtLWRlYnVnPTQgLS14NTA5Y2VydGZpbGUgJERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwMjU2cjEuY3J0IC0teDUwOWtleWZpbGUgJERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwMjU2cjEua2V5IC0tcHJpb3JpdHk9Tk9ORTorQ0lQSEVSLUFMTDorTUFDLUFMTDorU0lHTi1BTEw6K0dST1VQLVg0NDg6K1ZFUlMtVExTMS4zOiVOT19USUNLRVRTIiBcCisgICAgICAgICAiJFBfQ0xJIGNhX2ZpbGU9JERBVEFfRklMRVNfUEFUSC90ZXN0LWNhMi5jcnQgZGVidWdfbGV2ZWw9NCBzaWdfYWxncz1lY2RzYV9zZWNwMjU2cjFfc2hhMjU2IGdyb3Vwcz1zZWNwMjU2cjEseDQ0OCIgXAogICAgICAgICAgMCBcCiAgICAgICAgICAtYyAiSFRUUC8xLjAgMjAwIE9LIiBcCiAgICAgICAgICAtYyAiUHJvdG9jb2wgaXMgVExTdjEuMyIgXApAQCAtMTM5MzQsOCArMTM5MzYsOCBAQAogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgUFNBX1dBTlRfQUxHX0ZGREgKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIFBTQV9XQU5UX0RIX1JGQzc5MTlfMjA0OAogcnVuX3Rlc3QgIlRMUyAxLjMgbS0+RzogSFJSIHNlY3AyNTZyMSAtPiBmZmRoZTIwNDgiIFwKLSAgICAgICAgICIkR19ORVhUX1NSVl9OT19DRVJUIC0taHR0cCAtLWRpc2FibGUtY2xpZW50LWNlcnQgLS1kZWJ1Zz00IC0teDUwOWNlcnRmaWxlIGRhdGFfZmlsZXMvZWNkc2Ffc2VjcDI1NnIxLmNydCAtLXg1MDlrZXlmaWxlIGRhdGFfZmlsZXMvZWNkc2Ffc2VjcDI1NnIxLmtleSAtLXByaW9yaXR5PU5PTkU6K0NJUEhFUi1BTEw6K01BQy1BTEw6K1NJR04tQUxMOitHUk9VUC1GRkRIRTIwNDg6K1ZFUlMtVExTMS4zOiVOT19USUNLRVRTIiBcCi0gICAgICAgICAiJFBfQ0xJIGNhX2ZpbGU9ZGF0YV9maWxlcy90ZXN0LWNhMi5jcnQgZGVidWdfbGV2ZWw9NCBzaWdfYWxncz1lY2RzYV9zZWNwMjU2cjFfc2hhMjU2IGdyb3Vwcz1zZWNwMjU2cjEsZmZkaGUyMDQ4IiBcCisgICAgICAgICAiJEdfTkVYVF9TUlZfTk9fQ0VSVCAtLWh0dHAgLS1kaXNhYmxlLWNsaWVudC1jZXJ0IC0tZGVidWc9NCAtLXg1MDljZXJ0ZmlsZSAkREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3AyNTZyMS5jcnQgLS14NTA5a2V5ZmlsZSAkREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3AyNTZyMS5rZXkgLS1wcmlvcml0eT1OT05FOitDSVBIRVItQUxMOitNQUMtQUxMOitTSUdOLUFMTDorR1JPVVAtRkZESEUyMDQ4OitWRVJTLVRMUzEuMzolTk9fVElDS0VUUyIgXAorICAgICAgICAgIiRQX0NMSSBjYV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvdGVzdC1jYTIuY3J0IGRlYnVnX2xldmVsPTQgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDI1NnIxX3NoYTI1NiBncm91cHM9c2VjcDI1NnIxLGZmZGhlMjA0OCIgXAogICAgICAgICAgMCBcCiAgICAgICAgICAtYyAiSFRUUC8xLjAgMjAwIE9LIiBcCiAgICAgICAgICAtYyAiUHJvdG9jb2wgaXMgVExTdjEuMyIgXApAQCAtMTM5NTQsOCArMTM5NTYsOCBAQAogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgTUJFRFRMU19TU0xfVExTMV8zX0NPTVBBVElCSUxJVFlfTU9ERQogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgUFNBX1dBTlRfQUxHX0VDREgKIHJ1bl90ZXN0ICJUTFMgMS4zIG0tPkc6IEhSUiBzZWNwMzg0cjEgLT4gc2VjcDI1NnIxIiBcCi0gICAgICAgICAiJEdfTkVYVF9TUlZfTk9fQ0VSVCAtLWh0dHAgLS1kaXNhYmxlLWNsaWVudC1jZXJ0IC0tZGVidWc9NCAtLXg1MDljZXJ0ZmlsZSBkYXRhX2ZpbGVzL2VjZHNhX3NlY3AyNTZyMS5jcnQgLS14NTA5a2V5ZmlsZSBkYXRhX2ZpbGVzL2VjZHNhX3NlY3AyNTZyMS5rZXkgLS1wcmlvcml0eT1OT05FOitDSVBIRVItQUxMOitNQUMtQUxMOitTSUdOLUFMTDorR1JPVVAtU0VDUDI1NlIxOitWRVJTLVRMUzEuMzolTk9fVElDS0VUUyIgXAotICAgICAgICAgIiRQX0NMSSBjYV9maWxlPWRhdGFfZmlsZXMvdGVzdC1jYTIuY3J0IGRlYnVnX2xldmVsPTQgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDI1NnIxX3NoYTI1NiBncm91cHM9c2VjcDM4NHIxLHNlY3AyNTZyMSIgXAorICAgICAgICAgIiRHX05FWFRfU1JWX05PX0NFUlQgLS1odHRwIC0tZGlzYWJsZS1jbGllbnQtY2VydCAtLWRlYnVnPTQgLS14NTA5Y2VydGZpbGUgJERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwMjU2cjEuY3J0IC0teDUwOWtleWZpbGUgJERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwMjU2cjEua2V5IC0tcHJpb3JpdHk9Tk9ORTorQ0lQSEVSLUFMTDorTUFDLUFMTDorU0lHTi1BTEw6K0dST1VQLVNFQ1AyNTZSMTorVkVSUy1UTFMxLjM6JU5PX1RJQ0tFVFMiIFwKKyAgICAgICAgICIkUF9DTEkgY2FfZmlsZT0kREFUQV9GSUxFU19QQVRIL3Rlc3QtY2EyLmNydCBkZWJ1Z19sZXZlbD00IHNpZ19hbGdzPWVjZHNhX3NlY3AyNTZyMV9zaGEyNTYgZ3JvdXBzPXNlY3AzODRyMSxzZWNwMjU2cjEiIFwKICAgICAgICAgIDAgXAogICAgICAgICAgLWMgIkhUVFAvMS4wIDIwMCBPSyIgXAogICAgICAgICAgLWMgIlByb3RvY29sIGlzIFRMU3YxLjMiIFwKQEAgLTEzOTc0LDggKzEzOTc2LDggQEAKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIE1CRURUTFNfU1NMX1RMUzFfM19DT01QQVRJQklMSVRZX01PREUKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIFBTQV9XQU5UX0FMR19FQ0RICiBydW5fdGVzdCAiVExTIDEuMyBtLT5HOiBIUlIgc2VjcDM4NHIxIC0+IHNlY3A1MjFyMSIgXAotICAgICAgICAgIiRHX05FWFRfU1JWX05PX0NFUlQgLS1odHRwIC0tZGlzYWJsZS1jbGllbnQtY2VydCAtLWRlYnVnPTQgLS14NTA5Y2VydGZpbGUgZGF0YV9maWxlcy9lY2RzYV9zZWNwMjU2cjEuY3J0IC0teDUwOWtleWZpbGUgZGF0YV9maWxlcy9lY2RzYV9zZWNwMjU2cjEua2V5IC0tcHJpb3JpdHk9Tk9ORTorQ0lQSEVSLUFMTDorTUFDLUFMTDorU0lHTi1BTEw6K0dST1VQLVNFQ1A1MjFSMTorVkVSUy1UTFMxLjM6JU5PX1RJQ0tFVFMiIFwKLSAgICAgICAgICIkUF9DTEkgY2FfZmlsZT1kYXRhX2ZpbGVzL3Rlc3QtY2EyLmNydCBkZWJ1Z19sZXZlbD00IHNpZ19hbGdzPWVjZHNhX3NlY3AyNTZyMV9zaGEyNTYgZ3JvdXBzPXNlY3AzODRyMSxzZWNwNTIxcjEiIFwKKyAgICAgICAgICIkR19ORVhUX1NSVl9OT19DRVJUIC0taHR0cCAtLWRpc2FibGUtY2xpZW50LWNlcnQgLS1kZWJ1Zz00IC0teDUwOWNlcnRmaWxlICREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDI1NnIxLmNydCAtLXg1MDlrZXlmaWxlICREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDI1NnIxLmtleSAtLXByaW9yaXR5PU5PTkU6K0NJUEhFUi1BTEw6K01BQy1BTEw6K1NJR04tQUxMOitHUk9VUC1TRUNQNTIxUjE6K1ZFUlMtVExTMS4zOiVOT19USUNLRVRTIiBcCisgICAgICAgICAiJFBfQ0xJIGNhX2ZpbGU9JERBVEFfRklMRVNfUEFUSC90ZXN0LWNhMi5jcnQgZGVidWdfbGV2ZWw9NCBzaWdfYWxncz1lY2RzYV9zZWNwMjU2cjFfc2hhMjU2IGdyb3Vwcz1zZWNwMzg0cjEsc2VjcDUyMXIxIiBcCiAgICAgICAgICAwIFwKICAgICAgICAgIC1jICJIVFRQLzEuMCAyMDAgT0siIFwKICAgICAgICAgIC1jICJQcm90b2NvbCBpcyBUTFN2MS4zIiBcCkBAIC0xMzk5NCw4ICsxMzk5Niw4IEBACiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBNQkVEVExTX1NTTF9UTFMxXzNfQ09NUEFUSUJJTElUWV9NT0RFCiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBQU0FfV0FOVF9BTEdfRUNESAogcnVuX3Rlc3QgIlRMUyAxLjMgbS0+RzogSFJSIHNlY3AzODRyMSAtPiB4MjU1MTkiIFwKLSAgICAgICAgICIkR19ORVhUX1NSVl9OT19DRVJUIC0taHR0cCAtLWRpc2FibGUtY2xpZW50LWNlcnQgLS1kZWJ1Zz00IC0teDUwOWNlcnRmaWxlIGRhdGFfZmlsZXMvZWNkc2Ffc2VjcDI1NnIxLmNydCAtLXg1MDlrZXlmaWxlIGRhdGFfZmlsZXMvZWNkc2Ffc2VjcDI1NnIxLmtleSAtLXByaW9yaXR5PU5PTkU6K0NJUEhFUi1BTEw6K01BQy1BTEw6K1NJR04tQUxMOitHUk9VUC1YMjU1MTk6K1ZFUlMtVExTMS4zOiVOT19USUNLRVRTIiBcCi0gICAgICAgICAiJFBfQ0xJIGNhX2ZpbGU9ZGF0YV9maWxlcy90ZXN0LWNhMi5jcnQgZGVidWdfbGV2ZWw9NCBzaWdfYWxncz1lY2RzYV9zZWNwMjU2cjFfc2hhMjU2IGdyb3Vwcz1zZWNwMzg0cjEseDI1NTE5IiBcCisgICAgICAgICAiJEdfTkVYVF9TUlZfTk9fQ0VSVCAtLWh0dHAgLS1kaXNhYmxlLWNsaWVudC1jZXJ0IC0tZGVidWc9NCAtLXg1MDljZXJ0ZmlsZSAkREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3AyNTZyMS5jcnQgLS14NTA5a2V5ZmlsZSAkREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3AyNTZyMS5rZXkgLS1wcmlvcml0eT1OT05FOitDSVBIRVItQUxMOitNQUMtQUxMOitTSUdOLUFMTDorR1JPVVAtWDI1NTE5OitWRVJTLVRMUzEuMzolTk9fVElDS0VUUyIgXAorICAgICAgICAgIiRQX0NMSSBjYV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvdGVzdC1jYTIuY3J0IGRlYnVnX2xldmVsPTQgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDI1NnIxX3NoYTI1NiBncm91cHM9c2VjcDM4NHIxLHgyNTUxOSIgXAogICAgICAgICAgMCBcCiAgICAgICAgICAtYyAiSFRUUC8xLjAgMjAwIE9LIiBcCiAgICAgICAgICAtYyAiUHJvdG9jb2wgaXMgVExTdjEuMyIgXApAQCAtMTQwMTQsOCArMTQwMTYsOCBAQAogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgTUJFRFRMU19TU0xfVExTMV8zX0NPTVBBVElCSUxJVFlfTU9ERQogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgUFNBX1dBTlRfQUxHX0VDREgKIHJ1bl90ZXN0ICJUTFMgMS4zIG0tPkc6IEhSUiBzZWNwMzg0cjEgLT4geDQ0OCIgXAotICAgICAgICAgIiRHX05FWFRfU1JWX05PX0NFUlQgLS1odHRwIC0tZGlzYWJsZS1jbGllbnQtY2VydCAtLWRlYnVnPTQgLS14NTA5Y2VydGZpbGUgZGF0YV9maWxlcy9lY2RzYV9zZWNwMjU2cjEuY3J0IC0teDUwOWtleWZpbGUgZGF0YV9maWxlcy9lY2RzYV9zZWNwMjU2cjEua2V5IC0tcHJpb3JpdHk9Tk9ORTorQ0lQSEVSLUFMTDorTUFDLUFMTDorU0lHTi1BTEw6K0dST1VQLVg0NDg6K1ZFUlMtVExTMS4zOiVOT19USUNLRVRTIiBcCi0gICAgICAgICAiJFBfQ0xJIGNhX2ZpbGU9ZGF0YV9maWxlcy90ZXN0LWNhMi5jcnQgZGVidWdfbGV2ZWw9NCBzaWdfYWxncz1lY2RzYV9zZWNwMjU2cjFfc2hhMjU2IGdyb3Vwcz1zZWNwMzg0cjEseDQ0OCIgXAorICAgICAgICAgIiRHX05FWFRfU1JWX05PX0NFUlQgLS1odHRwIC0tZGlzYWJsZS1jbGllbnQtY2VydCAtLWRlYnVnPTQgLS14NTA5Y2VydGZpbGUgJERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwMjU2cjEuY3J0IC0teDUwOWtleWZpbGUgJERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwMjU2cjEua2V5IC0tcHJpb3JpdHk9Tk9ORTorQ0lQSEVSLUFMTDorTUFDLUFMTDorU0lHTi1BTEw6K0dST1VQLVg0NDg6K1ZFUlMtVExTMS4zOiVOT19USUNLRVRTIiBcCisgICAgICAgICAiJFBfQ0xJIGNhX2ZpbGU9JERBVEFfRklMRVNfUEFUSC90ZXN0LWNhMi5jcnQgZGVidWdfbGV2ZWw9NCBzaWdfYWxncz1lY2RzYV9zZWNwMjU2cjFfc2hhMjU2IGdyb3Vwcz1zZWNwMzg0cjEseDQ0OCIgXAogICAgICAgICAgMCBcCiAgICAgICAgICAtYyAiSFRUUC8xLjAgMjAwIE9LIiBcCiAgICAgICAgICAtYyAiUHJvdG9jb2wgaXMgVExTdjEuMyIgXApAQCAtMTQwMzYsOCArMTQwMzgsOCBAQAogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgUFNBX1dBTlRfQUxHX0ZGREgKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIFBTQV9XQU5UX0RIX1JGQzc5MTlfMjA0OAogcnVuX3Rlc3QgIlRMUyAxLjMgbS0+RzogSFJSIHNlY3AzODRyMSAtPiBmZmRoZTIwNDgiIFwKLSAgICAgICAgICIkR19ORVhUX1NSVl9OT19DRVJUIC0taHR0cCAtLWRpc2FibGUtY2xpZW50LWNlcnQgLS1kZWJ1Zz00IC0teDUwOWNlcnRmaWxlIGRhdGFfZmlsZXMvZWNkc2Ffc2VjcDI1NnIxLmNydCAtLXg1MDlrZXlmaWxlIGRhdGFfZmlsZXMvZWNkc2Ffc2VjcDI1NnIxLmtleSAtLXByaW9yaXR5PU5PTkU6K0NJUEhFUi1BTEw6K01BQy1BTEw6K1NJR04tQUxMOitHUk9VUC1GRkRIRTIwNDg6K1ZFUlMtVExTMS4zOiVOT19USUNLRVRTIiBcCi0gICAgICAgICAiJFBfQ0xJIGNhX2ZpbGU9ZGF0YV9maWxlcy90ZXN0LWNhMi5jcnQgZGVidWdfbGV2ZWw9NCBzaWdfYWxncz1lY2RzYV9zZWNwMjU2cjFfc2hhMjU2IGdyb3Vwcz1zZWNwMzg0cjEsZmZkaGUyMDQ4IiBcCisgICAgICAgICAiJEdfTkVYVF9TUlZfTk9fQ0VSVCAtLWh0dHAgLS1kaXNhYmxlLWNsaWVudC1jZXJ0IC0tZGVidWc9NCAtLXg1MDljZXJ0ZmlsZSAkREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3AyNTZyMS5jcnQgLS14NTA5a2V5ZmlsZSAkREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3AyNTZyMS5rZXkgLS1wcmlvcml0eT1OT05FOitDSVBIRVItQUxMOitNQUMtQUxMOitTSUdOLUFMTDorR1JPVVAtRkZESEUyMDQ4OitWRVJTLVRMUzEuMzolTk9fVElDS0VUUyIgXAorICAgICAgICAgIiRQX0NMSSBjYV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvdGVzdC1jYTIuY3J0IGRlYnVnX2xldmVsPTQgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDI1NnIxX3NoYTI1NiBncm91cHM9c2VjcDM4NHIxLGZmZGhlMjA0OCIgXAogICAgICAgICAgMCBcCiAgICAgICAgICAtYyAiSFRUUC8xLjAgMjAwIE9LIiBcCiAgICAgICAgICAtYyAiUHJvdG9jb2wgaXMgVExTdjEuMyIgXApAQCAtMTQwNTYsOCArMTQwNTgsOCBAQAogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgTUJFRFRMU19TU0xfVExTMV8zX0NPTVBBVElCSUxJVFlfTU9ERQogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgUFNBX1dBTlRfQUxHX0VDREgKIHJ1bl90ZXN0ICJUTFMgMS4zIG0tPkc6IEhSUiBzZWNwNTIxcjEgLT4gc2VjcDI1NnIxIiBcCi0gICAgICAgICAiJEdfTkVYVF9TUlZfTk9fQ0VSVCAtLWh0dHAgLS1kaXNhYmxlLWNsaWVudC1jZXJ0IC0tZGVidWc9NCAtLXg1MDljZXJ0ZmlsZSBkYXRhX2ZpbGVzL2VjZHNhX3NlY3AyNTZyMS5jcnQgLS14NTA5a2V5ZmlsZSBkYXRhX2ZpbGVzL2VjZHNhX3NlY3AyNTZyMS5rZXkgLS1wcmlvcml0eT1OT05FOitDSVBIRVItQUxMOitNQUMtQUxMOitTSUdOLUFMTDorR1JPVVAtU0VDUDI1NlIxOitWRVJTLVRMUzEuMzolTk9fVElDS0VUUyIgXAotICAgICAgICAgIiRQX0NMSSBjYV9maWxlPWRhdGFfZmlsZXMvdGVzdC1jYTIuY3J0IGRlYnVnX2xldmVsPTQgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDI1NnIxX3NoYTI1NiBncm91cHM9c2VjcDUyMXIxLHNlY3AyNTZyMSIgXAorICAgICAgICAgIiRHX05FWFRfU1JWX05PX0NFUlQgLS1odHRwIC0tZGlzYWJsZS1jbGllbnQtY2VydCAtLWRlYnVnPTQgLS14NTA5Y2VydGZpbGUgJERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwMjU2cjEuY3J0IC0teDUwOWtleWZpbGUgJERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwMjU2cjEua2V5IC0tcHJpb3JpdHk9Tk9ORTorQ0lQSEVSLUFMTDorTUFDLUFMTDorU0lHTi1BTEw6K0dST1VQLVNFQ1AyNTZSMTorVkVSUy1UTFMxLjM6JU5PX1RJQ0tFVFMiIFwKKyAgICAgICAgICIkUF9DTEkgY2FfZmlsZT0kREFUQV9GSUxFU19QQVRIL3Rlc3QtY2EyLmNydCBkZWJ1Z19sZXZlbD00IHNpZ19hbGdzPWVjZHNhX3NlY3AyNTZyMV9zaGEyNTYgZ3JvdXBzPXNlY3A1MjFyMSxzZWNwMjU2cjEiIFwKICAgICAgICAgIDAgXAogICAgICAgICAgLWMgIkhUVFAvMS4wIDIwMCBPSyIgXAogICAgICAgICAgLWMgIlByb3RvY29sIGlzIFRMU3YxLjMiIFwKQEAgLTE0MDc2LDggKzE0MDc4LDggQEAKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIE1CRURUTFNfU1NMX1RMUzFfM19DT01QQVRJQklMSVRZX01PREUKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIFBTQV9XQU5UX0FMR19FQ0RICiBydW5fdGVzdCAiVExTIDEuMyBtLT5HOiBIUlIgc2VjcDUyMXIxIC0+IHNlY3AzODRyMSIgXAotICAgICAgICAgIiRHX05FWFRfU1JWX05PX0NFUlQgLS1odHRwIC0tZGlzYWJsZS1jbGllbnQtY2VydCAtLWRlYnVnPTQgLS14NTA5Y2VydGZpbGUgZGF0YV9maWxlcy9lY2RzYV9zZWNwMjU2cjEuY3J0IC0teDUwOWtleWZpbGUgZGF0YV9maWxlcy9lY2RzYV9zZWNwMjU2cjEua2V5IC0tcHJpb3JpdHk9Tk9ORTorQ0lQSEVSLUFMTDorTUFDLUFMTDorU0lHTi1BTEw6K0dST1VQLVNFQ1AzODRSMTorVkVSUy1UTFMxLjM6JU5PX1RJQ0tFVFMiIFwKLSAgICAgICAgICIkUF9DTEkgY2FfZmlsZT1kYXRhX2ZpbGVzL3Rlc3QtY2EyLmNydCBkZWJ1Z19sZXZlbD00IHNpZ19hbGdzPWVjZHNhX3NlY3AyNTZyMV9zaGEyNTYgZ3JvdXBzPXNlY3A1MjFyMSxzZWNwMzg0cjEiIFwKKyAgICAgICAgICIkR19ORVhUX1NSVl9OT19DRVJUIC0taHR0cCAtLWRpc2FibGUtY2xpZW50LWNlcnQgLS1kZWJ1Zz00IC0teDUwOWNlcnRmaWxlICREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDI1NnIxLmNydCAtLXg1MDlrZXlmaWxlICREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDI1NnIxLmtleSAtLXByaW9yaXR5PU5PTkU6K0NJUEhFUi1BTEw6K01BQy1BTEw6K1NJR04tQUxMOitHUk9VUC1TRUNQMzg0UjE6K1ZFUlMtVExTMS4zOiVOT19USUNLRVRTIiBcCisgICAgICAgICAiJFBfQ0xJIGNhX2ZpbGU9JERBVEFfRklMRVNfUEFUSC90ZXN0LWNhMi5jcnQgZGVidWdfbGV2ZWw9NCBzaWdfYWxncz1lY2RzYV9zZWNwMjU2cjFfc2hhMjU2IGdyb3Vwcz1zZWNwNTIxcjEsc2VjcDM4NHIxIiBcCiAgICAgICAgICAwIFwKICAgICAgICAgIC1jICJIVFRQLzEuMCAyMDAgT0siIFwKICAgICAgICAgIC1jICJQcm90b2NvbCBpcyBUTFN2MS4zIiBcCkBAIC0xNDA5Niw4ICsxNDA5OCw4IEBACiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBNQkVEVExTX1NTTF9UTFMxXzNfQ09NUEFUSUJJTElUWV9NT0RFCiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBQU0FfV0FOVF9BTEdfRUNESAogcnVuX3Rlc3QgIlRMUyAxLjMgbS0+RzogSFJSIHNlY3A1MjFyMSAtPiB4MjU1MTkiIFwKLSAgICAgICAgICIkR19ORVhUX1NSVl9OT19DRVJUIC0taHR0cCAtLWRpc2FibGUtY2xpZW50LWNlcnQgLS1kZWJ1Zz00IC0teDUwOWNlcnRmaWxlIGRhdGFfZmlsZXMvZWNkc2Ffc2VjcDI1NnIxLmNydCAtLXg1MDlrZXlmaWxlIGRhdGFfZmlsZXMvZWNkc2Ffc2VjcDI1NnIxLmtleSAtLXByaW9yaXR5PU5PTkU6K0NJUEhFUi1BTEw6K01BQy1BTEw6K1NJR04tQUxMOitHUk9VUC1YMjU1MTk6K1ZFUlMtVExTMS4zOiVOT19USUNLRVRTIiBcCi0gICAgICAgICAiJFBfQ0xJIGNhX2ZpbGU9ZGF0YV9maWxlcy90ZXN0LWNhMi5jcnQgZGVidWdfbGV2ZWw9NCBzaWdfYWxncz1lY2RzYV9zZWNwMjU2cjFfc2hhMjU2IGdyb3Vwcz1zZWNwNTIxcjEseDI1NTE5IiBcCisgICAgICAgICAiJEdfTkVYVF9TUlZfTk9fQ0VSVCAtLWh0dHAgLS1kaXNhYmxlLWNsaWVudC1jZXJ0IC0tZGVidWc9NCAtLXg1MDljZXJ0ZmlsZSAkREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3AyNTZyMS5jcnQgLS14NTA5a2V5ZmlsZSAkREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3AyNTZyMS5rZXkgLS1wcmlvcml0eT1OT05FOitDSVBIRVItQUxMOitNQUMtQUxMOitTSUdOLUFMTDorR1JPVVAtWDI1NTE5OitWRVJTLVRMUzEuMzolTk9fVElDS0VUUyIgXAorICAgICAgICAgIiRQX0NMSSBjYV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvdGVzdC1jYTIuY3J0IGRlYnVnX2xldmVsPTQgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDI1NnIxX3NoYTI1NiBncm91cHM9c2VjcDUyMXIxLHgyNTUxOSIgXAogICAgICAgICAgMCBcCiAgICAgICAgICAtYyAiSFRUUC8xLjAgMjAwIE9LIiBcCiAgICAgICAgICAtYyAiUHJvdG9jb2wgaXMgVExTdjEuMyIgXApAQCAtMTQxMTYsOCArMTQxMTgsOCBAQAogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgTUJFRFRMU19TU0xfVExTMV8zX0NPTVBBVElCSUxJVFlfTU9ERQogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgUFNBX1dBTlRfQUxHX0VDREgKIHJ1bl90ZXN0ICJUTFMgMS4zIG0tPkc6IEhSUiBzZWNwNTIxcjEgLT4geDQ0OCIgXAotICAgICAgICAgIiRHX05FWFRfU1JWX05PX0NFUlQgLS1odHRwIC0tZGlzYWJsZS1jbGllbnQtY2VydCAtLWRlYnVnPTQgLS14NTA5Y2VydGZpbGUgZGF0YV9maWxlcy9lY2RzYV9zZWNwMjU2cjEuY3J0IC0teDUwOWtleWZpbGUgZGF0YV9maWxlcy9lY2RzYV9zZWNwMjU2cjEua2V5IC0tcHJpb3JpdHk9Tk9ORTorQ0lQSEVSLUFMTDorTUFDLUFMTDorU0lHTi1BTEw6K0dST1VQLVg0NDg6K1ZFUlMtVExTMS4zOiVOT19USUNLRVRTIiBcCi0gICAgICAgICAiJFBfQ0xJIGNhX2ZpbGU9ZGF0YV9maWxlcy90ZXN0LWNhMi5jcnQgZGVidWdfbGV2ZWw9NCBzaWdfYWxncz1lY2RzYV9zZWNwMjU2cjFfc2hhMjU2IGdyb3Vwcz1zZWNwNTIxcjEseDQ0OCIgXAorICAgICAgICAgIiRHX05FWFRfU1JWX05PX0NFUlQgLS1odHRwIC0tZGlzYWJsZS1jbGllbnQtY2VydCAtLWRlYnVnPTQgLS14NTA5Y2VydGZpbGUgJERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwMjU2cjEuY3J0IC0teDUwOWtleWZpbGUgJERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwMjU2cjEua2V5IC0tcHJpb3JpdHk9Tk9ORTorQ0lQSEVSLUFMTDorTUFDLUFMTDorU0lHTi1BTEw6K0dST1VQLVg0NDg6K1ZFUlMtVExTMS4zOiVOT19USUNLRVRTIiBcCisgICAgICAgICAiJFBfQ0xJIGNhX2ZpbGU9JERBVEFfRklMRVNfUEFUSC90ZXN0LWNhMi5jcnQgZGVidWdfbGV2ZWw9NCBzaWdfYWxncz1lY2RzYV9zZWNwMjU2cjFfc2hhMjU2IGdyb3Vwcz1zZWNwNTIxcjEseDQ0OCIgXAogICAgICAgICAgMCBcCiAgICAgICAgICAtYyAiSFRUUC8xLjAgMjAwIE9LIiBcCiAgICAgICAgICAtYyAiUHJvdG9jb2wgaXMgVExTdjEuMyIgXApAQCAtMTQxMzgsOCArMTQxNDAsOCBAQAogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgUFNBX1dBTlRfQUxHX0ZGREgKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIFBTQV9XQU5UX0RIX1JGQzc5MTlfMjA0OAogcnVuX3Rlc3QgIlRMUyAxLjMgbS0+RzogSFJSIHNlY3A1MjFyMSAtPiBmZmRoZTIwNDgiIFwKLSAgICAgICAgICIkR19ORVhUX1NSVl9OT19DRVJUIC0taHR0cCAtLWRpc2FibGUtY2xpZW50LWNlcnQgLS1kZWJ1Zz00IC0teDUwOWNlcnRmaWxlIGRhdGFfZmlsZXMvZWNkc2Ffc2VjcDI1NnIxLmNydCAtLXg1MDlrZXlmaWxlIGRhdGFfZmlsZXMvZWNkc2Ffc2VjcDI1NnIxLmtleSAtLXByaW9yaXR5PU5PTkU6K0NJUEhFUi1BTEw6K01BQy1BTEw6K1NJR04tQUxMOitHUk9VUC1GRkRIRTIwNDg6K1ZFUlMtVExTMS4zOiVOT19USUNLRVRTIiBcCi0gICAgICAgICAiJFBfQ0xJIGNhX2ZpbGU9ZGF0YV9maWxlcy90ZXN0LWNhMi5jcnQgZGVidWdfbGV2ZWw9NCBzaWdfYWxncz1lY2RzYV9zZWNwMjU2cjFfc2hhMjU2IGdyb3Vwcz1zZWNwNTIxcjEsZmZkaGUyMDQ4IiBcCisgICAgICAgICAiJEdfTkVYVF9TUlZfTk9fQ0VSVCAtLWh0dHAgLS1kaXNhYmxlLWNsaWVudC1jZXJ0IC0tZGVidWc9NCAtLXg1MDljZXJ0ZmlsZSAkREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3AyNTZyMS5jcnQgLS14NTA5a2V5ZmlsZSAkREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3AyNTZyMS5rZXkgLS1wcmlvcml0eT1OT05FOitDSVBIRVItQUxMOitNQUMtQUxMOitTSUdOLUFMTDorR1JPVVAtRkZESEUyMDQ4OitWRVJTLVRMUzEuMzolTk9fVElDS0VUUyIgXAorICAgICAgICAgIiRQX0NMSSBjYV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvdGVzdC1jYTIuY3J0IGRlYnVnX2xldmVsPTQgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDI1NnIxX3NoYTI1NiBncm91cHM9c2VjcDUyMXIxLGZmZGhlMjA0OCIgXAogICAgICAgICAgMCBcCiAgICAgICAgICAtYyAiSFRUUC8xLjAgMjAwIE9LIiBcCiAgICAgICAgICAtYyAiUHJvdG9jb2wgaXMgVExTdjEuMyIgXApAQCAtMTQxNTgsOCArMTQxNjAsOCBAQAogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgTUJFRFRMU19TU0xfVExTMV8zX0NPTVBBVElCSUxJVFlfTU9ERQogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgUFNBX1dBTlRfQUxHX0VDREgKIHJ1bl90ZXN0ICJUTFMgMS4zIG0tPkc6IEhSUiB4MjU1MTkgLT4gc2VjcDI1NnIxIiBcCi0gICAgICAgICAiJEdfTkVYVF9TUlZfTk9fQ0VSVCAtLWh0dHAgLS1kaXNhYmxlLWNsaWVudC1jZXJ0IC0tZGVidWc9NCAtLXg1MDljZXJ0ZmlsZSBkYXRhX2ZpbGVzL2VjZHNhX3NlY3AyNTZyMS5jcnQgLS14NTA5a2V5ZmlsZSBkYXRhX2ZpbGVzL2VjZHNhX3NlY3AyNTZyMS5rZXkgLS1wcmlvcml0eT1OT05FOitDSVBIRVItQUxMOitNQUMtQUxMOitTSUdOLUFMTDorR1JPVVAtU0VDUDI1NlIxOitWRVJTLVRMUzEuMzolTk9fVElDS0VUUyIgXAotICAgICAgICAgIiRQX0NMSSBjYV9maWxlPWRhdGFfZmlsZXMvdGVzdC1jYTIuY3J0IGRlYnVnX2xldmVsPTQgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDI1NnIxX3NoYTI1NiBncm91cHM9eDI1NTE5LHNlY3AyNTZyMSIgXAorICAgICAgICAgIiRHX05FWFRfU1JWX05PX0NFUlQgLS1odHRwIC0tZGlzYWJsZS1jbGllbnQtY2VydCAtLWRlYnVnPTQgLS14NTA5Y2VydGZpbGUgJERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwMjU2cjEuY3J0IC0teDUwOWtleWZpbGUgJERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwMjU2cjEua2V5IC0tcHJpb3JpdHk9Tk9ORTorQ0lQSEVSLUFMTDorTUFDLUFMTDorU0lHTi1BTEw6K0dST1VQLVNFQ1AyNTZSMTorVkVSUy1UTFMxLjM6JU5PX1RJQ0tFVFMiIFwKKyAgICAgICAgICIkUF9DTEkgY2FfZmlsZT0kREFUQV9GSUxFU19QQVRIL3Rlc3QtY2EyLmNydCBkZWJ1Z19sZXZlbD00IHNpZ19hbGdzPWVjZHNhX3NlY3AyNTZyMV9zaGEyNTYgZ3JvdXBzPXgyNTUxOSxzZWNwMjU2cjEiIFwKICAgICAgICAgIDAgXAogICAgICAgICAgLWMgIkhUVFAvMS4wIDIwMCBPSyIgXAogICAgICAgICAgLWMgIlByb3RvY29sIGlzIFRMU3YxLjMiIFwKQEAgLTE0MTc4LDggKzE0MTgwLDggQEAKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIE1CRURUTFNfU1NMX1RMUzFfM19DT01QQVRJQklMSVRZX01PREUKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIFBTQV9XQU5UX0FMR19FQ0RICiBydW5fdGVzdCAiVExTIDEuMyBtLT5HOiBIUlIgeDI1NTE5IC0+IHNlY3AzODRyMSIgXAotICAgICAgICAgIiRHX05FWFRfU1JWX05PX0NFUlQgLS1odHRwIC0tZGlzYWJsZS1jbGllbnQtY2VydCAtLWRlYnVnPTQgLS14NTA5Y2VydGZpbGUgZGF0YV9maWxlcy9lY2RzYV9zZWNwMjU2cjEuY3J0IC0teDUwOWtleWZpbGUgZGF0YV9maWxlcy9lY2RzYV9zZWNwMjU2cjEua2V5IC0tcHJpb3JpdHk9Tk9ORTorQ0lQSEVSLUFMTDorTUFDLUFMTDorU0lHTi1BTEw6K0dST1VQLVNFQ1AzODRSMTorVkVSUy1UTFMxLjM6JU5PX1RJQ0tFVFMiIFwKLSAgICAgICAgICIkUF9DTEkgY2FfZmlsZT1kYXRhX2ZpbGVzL3Rlc3QtY2EyLmNydCBkZWJ1Z19sZXZlbD00IHNpZ19hbGdzPWVjZHNhX3NlY3AyNTZyMV9zaGEyNTYgZ3JvdXBzPXgyNTUxOSxzZWNwMzg0cjEiIFwKKyAgICAgICAgICIkR19ORVhUX1NSVl9OT19DRVJUIC0taHR0cCAtLWRpc2FibGUtY2xpZW50LWNlcnQgLS1kZWJ1Zz00IC0teDUwOWNlcnRmaWxlICREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDI1NnIxLmNydCAtLXg1MDlrZXlmaWxlICREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDI1NnIxLmtleSAtLXByaW9yaXR5PU5PTkU6K0NJUEhFUi1BTEw6K01BQy1BTEw6K1NJR04tQUxMOitHUk9VUC1TRUNQMzg0UjE6K1ZFUlMtVExTMS4zOiVOT19USUNLRVRTIiBcCisgICAgICAgICAiJFBfQ0xJIGNhX2ZpbGU9JERBVEFfRklMRVNfUEFUSC90ZXN0LWNhMi5jcnQgZGVidWdfbGV2ZWw9NCBzaWdfYWxncz1lY2RzYV9zZWNwMjU2cjFfc2hhMjU2IGdyb3Vwcz14MjU1MTksc2VjcDM4NHIxIiBcCiAgICAgICAgICAwIFwKICAgICAgICAgIC1jICJIVFRQLzEuMCAyMDAgT0siIFwKICAgICAgICAgIC1jICJQcm90b2NvbCBpcyBUTFN2MS4zIiBcCkBAIC0xNDE5OCw4ICsxNDIwMCw4IEBACiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBNQkVEVExTX1NTTF9UTFMxXzNfQ09NUEFUSUJJTElUWV9NT0RFCiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBQU0FfV0FOVF9BTEdfRUNESAogcnVuX3Rlc3QgIlRMUyAxLjMgbS0+RzogSFJSIHgyNTUxOSAtPiBzZWNwNTIxcjEiIFwKLSAgICAgICAgICIkR19ORVhUX1NSVl9OT19DRVJUIC0taHR0cCAtLWRpc2FibGUtY2xpZW50LWNlcnQgLS1kZWJ1Zz00IC0teDUwOWNlcnRmaWxlIGRhdGFfZmlsZXMvZWNkc2Ffc2VjcDI1NnIxLmNydCAtLXg1MDlrZXlmaWxlIGRhdGFfZmlsZXMvZWNkc2Ffc2VjcDI1NnIxLmtleSAtLXByaW9yaXR5PU5PTkU6K0NJUEhFUi1BTEw6K01BQy1BTEw6K1NJR04tQUxMOitHUk9VUC1TRUNQNTIxUjE6K1ZFUlMtVExTMS4zOiVOT19USUNLRVRTIiBcCi0gICAgICAgICAiJFBfQ0xJIGNhX2ZpbGU9ZGF0YV9maWxlcy90ZXN0LWNhMi5jcnQgZGVidWdfbGV2ZWw9NCBzaWdfYWxncz1lY2RzYV9zZWNwMjU2cjFfc2hhMjU2IGdyb3Vwcz14MjU1MTksc2VjcDUyMXIxIiBcCisgICAgICAgICAiJEdfTkVYVF9TUlZfTk9fQ0VSVCAtLWh0dHAgLS1kaXNhYmxlLWNsaWVudC1jZXJ0IC0tZGVidWc9NCAtLXg1MDljZXJ0ZmlsZSAkREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3AyNTZyMS5jcnQgLS14NTA5a2V5ZmlsZSAkREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3AyNTZyMS5rZXkgLS1wcmlvcml0eT1OT05FOitDSVBIRVItQUxMOitNQUMtQUxMOitTSUdOLUFMTDorR1JPVVAtU0VDUDUyMVIxOitWRVJTLVRMUzEuMzolTk9fVElDS0VUUyIgXAorICAgICAgICAgIiRQX0NMSSBjYV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvdGVzdC1jYTIuY3J0IGRlYnVnX2xldmVsPTQgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDI1NnIxX3NoYTI1NiBncm91cHM9eDI1NTE5LHNlY3A1MjFyMSIgXAogICAgICAgICAgMCBcCiAgICAgICAgICAtYyAiSFRUUC8xLjAgMjAwIE9LIiBcCiAgICAgICAgICAtYyAiUHJvdG9jb2wgaXMgVExTdjEuMyIgXApAQCAtMTQyMTgsOCArMTQyMjAsOCBAQAogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgTUJFRFRMU19TU0xfVExTMV8zX0NPTVBBVElCSUxJVFlfTU9ERQogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgUFNBX1dBTlRfQUxHX0VDREgKIHJ1bl90ZXN0ICJUTFMgMS4zIG0tPkc6IEhSUiB4MjU1MTkgLT4geDQ0OCIgXAotICAgICAgICAgIiRHX05FWFRfU1JWX05PX0NFUlQgLS1odHRwIC0tZGlzYWJsZS1jbGllbnQtY2VydCAtLWRlYnVnPTQgLS14NTA5Y2VydGZpbGUgZGF0YV9maWxlcy9lY2RzYV9zZWNwMjU2cjEuY3J0IC0teDUwOWtleWZpbGUgZGF0YV9maWxlcy9lY2RzYV9zZWNwMjU2cjEua2V5IC0tcHJpb3JpdHk9Tk9ORTorQ0lQSEVSLUFMTDorTUFDLUFMTDorU0lHTi1BTEw6K0dST1VQLVg0NDg6K1ZFUlMtVExTMS4zOiVOT19USUNLRVRTIiBcCi0gICAgICAgICAiJFBfQ0xJIGNhX2ZpbGU9ZGF0YV9maWxlcy90ZXN0LWNhMi5jcnQgZGVidWdfbGV2ZWw9NCBzaWdfYWxncz1lY2RzYV9zZWNwMjU2cjFfc2hhMjU2IGdyb3Vwcz14MjU1MTkseDQ0OCIgXAorICAgICAgICAgIiRHX05FWFRfU1JWX05PX0NFUlQgLS1odHRwIC0tZGlzYWJsZS1jbGllbnQtY2VydCAtLWRlYnVnPTQgLS14NTA5Y2VydGZpbGUgJERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwMjU2cjEuY3J0IC0teDUwOWtleWZpbGUgJERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwMjU2cjEua2V5IC0tcHJpb3JpdHk9Tk9ORTorQ0lQSEVSLUFMTDorTUFDLUFMTDorU0lHTi1BTEw6K0dST1VQLVg0NDg6K1ZFUlMtVExTMS4zOiVOT19USUNLRVRTIiBcCisgICAgICAgICAiJFBfQ0xJIGNhX2ZpbGU9JERBVEFfRklMRVNfUEFUSC90ZXN0LWNhMi5jcnQgZGVidWdfbGV2ZWw9NCBzaWdfYWxncz1lY2RzYV9zZWNwMjU2cjFfc2hhMjU2IGdyb3Vwcz14MjU1MTkseDQ0OCIgXAogICAgICAgICAgMCBcCiAgICAgICAgICAtYyAiSFRUUC8xLjAgMjAwIE9LIiBcCiAgICAgICAgICAtYyAiUHJvdG9jb2wgaXMgVExTdjEuMyIgXApAQCAtMTQyNDAsOCArMTQyNDIsOCBAQAogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgUFNBX1dBTlRfQUxHX0ZGREgKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIFBTQV9XQU5UX0RIX1JGQzc5MTlfMjA0OAogcnVuX3Rlc3QgIlRMUyAxLjMgbS0+RzogSFJSIHgyNTUxOSAtPiBmZmRoZTIwNDgiIFwKLSAgICAgICAgICIkR19ORVhUX1NSVl9OT19DRVJUIC0taHR0cCAtLWRpc2FibGUtY2xpZW50LWNlcnQgLS1kZWJ1Zz00IC0teDUwOWNlcnRmaWxlIGRhdGFfZmlsZXMvZWNkc2Ffc2VjcDI1NnIxLmNydCAtLXg1MDlrZXlmaWxlIGRhdGFfZmlsZXMvZWNkc2Ffc2VjcDI1NnIxLmtleSAtLXByaW9yaXR5PU5PTkU6K0NJUEhFUi1BTEw6K01BQy1BTEw6K1NJR04tQUxMOitHUk9VUC1GRkRIRTIwNDg6K1ZFUlMtVExTMS4zOiVOT19USUNLRVRTIiBcCi0gICAgICAgICAiJFBfQ0xJIGNhX2ZpbGU9ZGF0YV9maWxlcy90ZXN0LWNhMi5jcnQgZGVidWdfbGV2ZWw9NCBzaWdfYWxncz1lY2RzYV9zZWNwMjU2cjFfc2hhMjU2IGdyb3Vwcz14MjU1MTksZmZkaGUyMDQ4IiBcCisgICAgICAgICAiJEdfTkVYVF9TUlZfTk9fQ0VSVCAtLWh0dHAgLS1kaXNhYmxlLWNsaWVudC1jZXJ0IC0tZGVidWc9NCAtLXg1MDljZXJ0ZmlsZSAkREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3AyNTZyMS5jcnQgLS14NTA5a2V5ZmlsZSAkREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3AyNTZyMS5rZXkgLS1wcmlvcml0eT1OT05FOitDSVBIRVItQUxMOitNQUMtQUxMOitTSUdOLUFMTDorR1JPVVAtRkZESEUyMDQ4OitWRVJTLVRMUzEuMzolTk9fVElDS0VUUyIgXAorICAgICAgICAgIiRQX0NMSSBjYV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvdGVzdC1jYTIuY3J0IGRlYnVnX2xldmVsPTQgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDI1NnIxX3NoYTI1NiBncm91cHM9eDI1NTE5LGZmZGhlMjA0OCIgXAogICAgICAgICAgMCBcCiAgICAgICAgICAtYyAiSFRUUC8xLjAgMjAwIE9LIiBcCiAgICAgICAgICAtYyAiUHJvdG9jb2wgaXMgVExTdjEuMyIgXApAQCAtMTQyNjAsOCArMTQyNjIsOCBAQAogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgTUJFRFRMU19TU0xfVExTMV8zX0NPTVBBVElCSUxJVFlfTU9ERQogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgUFNBX1dBTlRfQUxHX0VDREgKIHJ1bl90ZXN0ICJUTFMgMS4zIG0tPkc6IEhSUiB4NDQ4IC0+IHNlY3AyNTZyMSIgXAotICAgICAgICAgIiRHX05FWFRfU1JWX05PX0NFUlQgLS1odHRwIC0tZGlzYWJsZS1jbGllbnQtY2VydCAtLWRlYnVnPTQgLS14NTA5Y2VydGZpbGUgZGF0YV9maWxlcy9lY2RzYV9zZWNwMjU2cjEuY3J0IC0teDUwOWtleWZpbGUgZGF0YV9maWxlcy9lY2RzYV9zZWNwMjU2cjEua2V5IC0tcHJpb3JpdHk9Tk9ORTorQ0lQSEVSLUFMTDorTUFDLUFMTDorU0lHTi1BTEw6K0dST1VQLVNFQ1AyNTZSMTorVkVSUy1UTFMxLjM6JU5PX1RJQ0tFVFMiIFwKLSAgICAgICAgICIkUF9DTEkgY2FfZmlsZT1kYXRhX2ZpbGVzL3Rlc3QtY2EyLmNydCBkZWJ1Z19sZXZlbD00IHNpZ19hbGdzPWVjZHNhX3NlY3AyNTZyMV9zaGEyNTYgZ3JvdXBzPXg0NDgsc2VjcDI1NnIxIiBcCisgICAgICAgICAiJEdfTkVYVF9TUlZfTk9fQ0VSVCAtLWh0dHAgLS1kaXNhYmxlLWNsaWVudC1jZXJ0IC0tZGVidWc9NCAtLXg1MDljZXJ0ZmlsZSAkREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3AyNTZyMS5jcnQgLS14NTA5a2V5ZmlsZSAkREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3AyNTZyMS5rZXkgLS1wcmlvcml0eT1OT05FOitDSVBIRVItQUxMOitNQUMtQUxMOitTSUdOLUFMTDorR1JPVVAtU0VDUDI1NlIxOitWRVJTLVRMUzEuMzolTk9fVElDS0VUUyIgXAorICAgICAgICAgIiRQX0NMSSBjYV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvdGVzdC1jYTIuY3J0IGRlYnVnX2xldmVsPTQgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDI1NnIxX3NoYTI1NiBncm91cHM9eDQ0OCxzZWNwMjU2cjEiIFwKICAgICAgICAgIDAgXAogICAgICAgICAgLWMgIkhUVFAvMS4wIDIwMCBPSyIgXAogICAgICAgICAgLWMgIlByb3RvY29sIGlzIFRMU3YxLjMiIFwKQEAgLTE0MjgwLDggKzE0MjgyLDggQEAKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIE1CRURUTFNfU1NMX1RMUzFfM19DT01QQVRJQklMSVRZX01PREUKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIFBTQV9XQU5UX0FMR19FQ0RICiBydW5fdGVzdCAiVExTIDEuMyBtLT5HOiBIUlIgeDQ0OCAtPiBzZWNwMzg0cjEiIFwKLSAgICAgICAgICIkR19ORVhUX1NSVl9OT19DRVJUIC0taHR0cCAtLWRpc2FibGUtY2xpZW50LWNlcnQgLS1kZWJ1Zz00IC0teDUwOWNlcnRmaWxlIGRhdGFfZmlsZXMvZWNkc2Ffc2VjcDI1NnIxLmNydCAtLXg1MDlrZXlmaWxlIGRhdGFfZmlsZXMvZWNkc2Ffc2VjcDI1NnIxLmtleSAtLXByaW9yaXR5PU5PTkU6K0NJUEhFUi1BTEw6K01BQy1BTEw6K1NJR04tQUxMOitHUk9VUC1TRUNQMzg0UjE6K1ZFUlMtVExTMS4zOiVOT19USUNLRVRTIiBcCi0gICAgICAgICAiJFBfQ0xJIGNhX2ZpbGU9ZGF0YV9maWxlcy90ZXN0LWNhMi5jcnQgZGVidWdfbGV2ZWw9NCBzaWdfYWxncz1lY2RzYV9zZWNwMjU2cjFfc2hhMjU2IGdyb3Vwcz14NDQ4LHNlY3AzODRyMSIgXAorICAgICAgICAgIiRHX05FWFRfU1JWX05PX0NFUlQgLS1odHRwIC0tZGlzYWJsZS1jbGllbnQtY2VydCAtLWRlYnVnPTQgLS14NTA5Y2VydGZpbGUgJERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwMjU2cjEuY3J0IC0teDUwOWtleWZpbGUgJERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwMjU2cjEua2V5IC0tcHJpb3JpdHk9Tk9ORTorQ0lQSEVSLUFMTDorTUFDLUFMTDorU0lHTi1BTEw6K0dST1VQLVNFQ1AzODRSMTorVkVSUy1UTFMxLjM6JU5PX1RJQ0tFVFMiIFwKKyAgICAgICAgICIkUF9DTEkgY2FfZmlsZT0kREFUQV9GSUxFU19QQVRIL3Rlc3QtY2EyLmNydCBkZWJ1Z19sZXZlbD00IHNpZ19hbGdzPWVjZHNhX3NlY3AyNTZyMV9zaGEyNTYgZ3JvdXBzPXg0NDgsc2VjcDM4NHIxIiBcCiAgICAgICAgICAwIFwKICAgICAgICAgIC1jICJIVFRQLzEuMCAyMDAgT0siIFwKICAgICAgICAgIC1jICJQcm90b2NvbCBpcyBUTFN2MS4zIiBcCkBAIC0xNDMwMCw4ICsxNDMwMiw4IEBACiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBNQkVEVExTX1NTTF9UTFMxXzNfQ09NUEFUSUJJTElUWV9NT0RFCiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBQU0FfV0FOVF9BTEdfRUNESAogcnVuX3Rlc3QgIlRMUyAxLjMgbS0+RzogSFJSIHg0NDggLT4gc2VjcDUyMXIxIiBcCi0gICAgICAgICAiJEdfTkVYVF9TUlZfTk9fQ0VSVCAtLWh0dHAgLS1kaXNhYmxlLWNsaWVudC1jZXJ0IC0tZGVidWc9NCAtLXg1MDljZXJ0ZmlsZSBkYXRhX2ZpbGVzL2VjZHNhX3NlY3AyNTZyMS5jcnQgLS14NTA5a2V5ZmlsZSBkYXRhX2ZpbGVzL2VjZHNhX3NlY3AyNTZyMS5rZXkgLS1wcmlvcml0eT1OT05FOitDSVBIRVItQUxMOitNQUMtQUxMOitTSUdOLUFMTDorR1JPVVAtU0VDUDUyMVIxOitWRVJTLVRMUzEuMzolTk9fVElDS0VUUyIgXAotICAgICAgICAgIiRQX0NMSSBjYV9maWxlPWRhdGFfZmlsZXMvdGVzdC1jYTIuY3J0IGRlYnVnX2xldmVsPTQgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDI1NnIxX3NoYTI1NiBncm91cHM9eDQ0OCxzZWNwNTIxcjEiIFwKKyAgICAgICAgICIkR19ORVhUX1NSVl9OT19DRVJUIC0taHR0cCAtLWRpc2FibGUtY2xpZW50LWNlcnQgLS1kZWJ1Zz00IC0teDUwOWNlcnRmaWxlICREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDI1NnIxLmNydCAtLXg1MDlrZXlmaWxlICREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDI1NnIxLmtleSAtLXByaW9yaXR5PU5PTkU6K0NJUEhFUi1BTEw6K01BQy1BTEw6K1NJR04tQUxMOitHUk9VUC1TRUNQNTIxUjE6K1ZFUlMtVExTMS4zOiVOT19USUNLRVRTIiBcCisgICAgICAgICAiJFBfQ0xJIGNhX2ZpbGU9JERBVEFfRklMRVNfUEFUSC90ZXN0LWNhMi5jcnQgZGVidWdfbGV2ZWw9NCBzaWdfYWxncz1lY2RzYV9zZWNwMjU2cjFfc2hhMjU2IGdyb3Vwcz14NDQ4LHNlY3A1MjFyMSIgXAogICAgICAgICAgMCBcCiAgICAgICAgICAtYyAiSFRUUC8xLjAgMjAwIE9LIiBcCiAgICAgICAgICAtYyAiUHJvdG9jb2wgaXMgVExTdjEuMyIgXApAQCAtMTQzMjAsOCArMTQzMjIsOCBAQAogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgTUJFRFRMU19TU0xfVExTMV8zX0NPTVBBVElCSUxJVFlfTU9ERQogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgUFNBX1dBTlRfQUxHX0VDREgKIHJ1bl90ZXN0ICJUTFMgMS4zIG0tPkc6IEhSUiB4NDQ4IC0+IHgyNTUxOSIgXAotICAgICAgICAgIiRHX05FWFRfU1JWX05PX0NFUlQgLS1odHRwIC0tZGlzYWJsZS1jbGllbnQtY2VydCAtLWRlYnVnPTQgLS14NTA5Y2VydGZpbGUgZGF0YV9maWxlcy9lY2RzYV9zZWNwMjU2cjEuY3J0IC0teDUwOWtleWZpbGUgZGF0YV9maWxlcy9lY2RzYV9zZWNwMjU2cjEua2V5IC0tcHJpb3JpdHk9Tk9ORTorQ0lQSEVSLUFMTDorTUFDLUFMTDorU0lHTi1BTEw6K0dST1VQLVgyNTUxOTorVkVSUy1UTFMxLjM6JU5PX1RJQ0tFVFMiIFwKLSAgICAgICAgICIkUF9DTEkgY2FfZmlsZT1kYXRhX2ZpbGVzL3Rlc3QtY2EyLmNydCBkZWJ1Z19sZXZlbD00IHNpZ19hbGdzPWVjZHNhX3NlY3AyNTZyMV9zaGEyNTYgZ3JvdXBzPXg0NDgseDI1NTE5IiBcCisgICAgICAgICAiJEdfTkVYVF9TUlZfTk9fQ0VSVCAtLWh0dHAgLS1kaXNhYmxlLWNsaWVudC1jZXJ0IC0tZGVidWc9NCAtLXg1MDljZXJ0ZmlsZSAkREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3AyNTZyMS5jcnQgLS14NTA5a2V5ZmlsZSAkREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3AyNTZyMS5rZXkgLS1wcmlvcml0eT1OT05FOitDSVBIRVItQUxMOitNQUMtQUxMOitTSUdOLUFMTDorR1JPVVAtWDI1NTE5OitWRVJTLVRMUzEuMzolTk9fVElDS0VUUyIgXAorICAgICAgICAgIiRQX0NMSSBjYV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvdGVzdC1jYTIuY3J0IGRlYnVnX2xldmVsPTQgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDI1NnIxX3NoYTI1NiBncm91cHM9eDQ0OCx4MjU1MTkiIFwKICAgICAgICAgIDAgXAogICAgICAgICAgLWMgIkhUVFAvMS4wIDIwMCBPSyIgXAogICAgICAgICAgLWMgIlByb3RvY29sIGlzIFRMU3YxLjMiIFwKQEAgLTE0MzQyLDggKzE0MzQ0LDggQEAKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIFBTQV9XQU5UX0FMR19GRkRICiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBQU0FfV0FOVF9ESF9SRkM3OTE5XzIwNDgKIHJ1bl90ZXN0ICJUTFMgMS4zIG0tPkc6IEhSUiB4NDQ4IC0+IGZmZGhlMjA0OCIgXAotICAgICAgICAgIiRHX05FWFRfU1JWX05PX0NFUlQgLS1odHRwIC0tZGlzYWJsZS1jbGllbnQtY2VydCAtLWRlYnVnPTQgLS14NTA5Y2VydGZpbGUgZGF0YV9maWxlcy9lY2RzYV9zZWNwMjU2cjEuY3J0IC0teDUwOWtleWZpbGUgZGF0YV9maWxlcy9lY2RzYV9zZWNwMjU2cjEua2V5IC0tcHJpb3JpdHk9Tk9ORTorQ0lQSEVSLUFMTDorTUFDLUFMTDorU0lHTi1BTEw6K0dST1VQLUZGREhFMjA0ODorVkVSUy1UTFMxLjM6JU5PX1RJQ0tFVFMiIFwKLSAgICAgICAgICIkUF9DTEkgY2FfZmlsZT1kYXRhX2ZpbGVzL3Rlc3QtY2EyLmNydCBkZWJ1Z19sZXZlbD00IHNpZ19hbGdzPWVjZHNhX3NlY3AyNTZyMV9zaGEyNTYgZ3JvdXBzPXg0NDgsZmZkaGUyMDQ4IiBcCisgICAgICAgICAiJEdfTkVYVF9TUlZfTk9fQ0VSVCAtLWh0dHAgLS1kaXNhYmxlLWNsaWVudC1jZXJ0IC0tZGVidWc9NCAtLXg1MDljZXJ0ZmlsZSAkREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3AyNTZyMS5jcnQgLS14NTA5a2V5ZmlsZSAkREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3AyNTZyMS5rZXkgLS1wcmlvcml0eT1OT05FOitDSVBIRVItQUxMOitNQUMtQUxMOitTSUdOLUFMTDorR1JPVVAtRkZESEUyMDQ4OitWRVJTLVRMUzEuMzolTk9fVElDS0VUUyIgXAorICAgICAgICAgIiRQX0NMSSBjYV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvdGVzdC1jYTIuY3J0IGRlYnVnX2xldmVsPTQgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDI1NnIxX3NoYTI1NiBncm91cHM9eDQ0OCxmZmRoZTIwNDgiIFwKICAgICAgICAgIDAgXAogICAgICAgICAgLWMgIkhUVFAvMS4wIDIwMCBPSyIgXAogICAgICAgICAgLWMgIlByb3RvY29sIGlzIFRMU3YxLjMiIFwKQEAgLTE0MzY0LDggKzE0MzY2LDggQEAKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIFBTQV9XQU5UX0FMR19GRkRICiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBQU0FfV0FOVF9ESF9SRkM3OTE5XzIwNDgKIHJ1bl90ZXN0ICJUTFMgMS4zIG0tPkc6IEhSUiBmZmRoZTIwNDggLT4gc2VjcDI1NnIxIiBcCi0gICAgICAgICAiJEdfTkVYVF9TUlZfTk9fQ0VSVCAtLWh0dHAgLS1kaXNhYmxlLWNsaWVudC1jZXJ0IC0tZGVidWc9NCAtLXg1MDljZXJ0ZmlsZSBkYXRhX2ZpbGVzL2VjZHNhX3NlY3AyNTZyMS5jcnQgLS14NTA5a2V5ZmlsZSBkYXRhX2ZpbGVzL2VjZHNhX3NlY3AyNTZyMS5rZXkgLS1wcmlvcml0eT1OT05FOitDSVBIRVItQUxMOitNQUMtQUxMOitTSUdOLUFMTDorR1JPVVAtU0VDUDI1NlIxOitWRVJTLVRMUzEuMzolTk9fVElDS0VUUyIgXAotICAgICAgICAgIiRQX0NMSSBjYV9maWxlPWRhdGFfZmlsZXMvdGVzdC1jYTIuY3J0IGRlYnVnX2xldmVsPTQgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDI1NnIxX3NoYTI1NiBncm91cHM9ZmZkaGUyMDQ4LHNlY3AyNTZyMSIgXAorICAgICAgICAgIiRHX05FWFRfU1JWX05PX0NFUlQgLS1odHRwIC0tZGlzYWJsZS1jbGllbnQtY2VydCAtLWRlYnVnPTQgLS14NTA5Y2VydGZpbGUgJERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwMjU2cjEuY3J0IC0teDUwOWtleWZpbGUgJERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwMjU2cjEua2V5IC0tcHJpb3JpdHk9Tk9ORTorQ0lQSEVSLUFMTDorTUFDLUFMTDorU0lHTi1BTEw6K0dST1VQLVNFQ1AyNTZSMTorVkVSUy1UTFMxLjM6JU5PX1RJQ0tFVFMiIFwKKyAgICAgICAgICIkUF9DTEkgY2FfZmlsZT0kREFUQV9GSUxFU19QQVRIL3Rlc3QtY2EyLmNydCBkZWJ1Z19sZXZlbD00IHNpZ19hbGdzPWVjZHNhX3NlY3AyNTZyMV9zaGEyNTYgZ3JvdXBzPWZmZGhlMjA0OCxzZWNwMjU2cjEiIFwKICAgICAgICAgIDAgXAogICAgICAgICAgLWMgIkhUVFAvMS4wIDIwMCBPSyIgXAogICAgICAgICAgLWMgIlByb3RvY29sIGlzIFRMU3YxLjMiIFwKQEAgLTE0Mzg2LDggKzE0Mzg4LDggQEAKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIFBTQV9XQU5UX0FMR19GRkRICiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBQU0FfV0FOVF9ESF9SRkM3OTE5XzIwNDgKIHJ1bl90ZXN0ICJUTFMgMS4zIG0tPkc6IEhSUiBmZmRoZTIwNDggLT4gc2VjcDM4NHIxIiBcCi0gICAgICAgICAiJEdfTkVYVF9TUlZfTk9fQ0VSVCAtLWh0dHAgLS1kaXNhYmxlLWNsaWVudC1jZXJ0IC0tZGVidWc9NCAtLXg1MDljZXJ0ZmlsZSBkYXRhX2ZpbGVzL2VjZHNhX3NlY3AyNTZyMS5jcnQgLS14NTA5a2V5ZmlsZSBkYXRhX2ZpbGVzL2VjZHNhX3NlY3AyNTZyMS5rZXkgLS1wcmlvcml0eT1OT05FOitDSVBIRVItQUxMOitNQUMtQUxMOitTSUdOLUFMTDorR1JPVVAtU0VDUDM4NFIxOitWRVJTLVRMUzEuMzolTk9fVElDS0VUUyIgXAotICAgICAgICAgIiRQX0NMSSBjYV9maWxlPWRhdGFfZmlsZXMvdGVzdC1jYTIuY3J0IGRlYnVnX2xldmVsPTQgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDI1NnIxX3NoYTI1NiBncm91cHM9ZmZkaGUyMDQ4LHNlY3AzODRyMSIgXAorICAgICAgICAgIiRHX05FWFRfU1JWX05PX0NFUlQgLS1odHRwIC0tZGlzYWJsZS1jbGllbnQtY2VydCAtLWRlYnVnPTQgLS14NTA5Y2VydGZpbGUgJERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwMjU2cjEuY3J0IC0teDUwOWtleWZpbGUgJERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwMjU2cjEua2V5IC0tcHJpb3JpdHk9Tk9ORTorQ0lQSEVSLUFMTDorTUFDLUFMTDorU0lHTi1BTEw6K0dST1VQLVNFQ1AzODRSMTorVkVSUy1UTFMxLjM6JU5PX1RJQ0tFVFMiIFwKKyAgICAgICAgICIkUF9DTEkgY2FfZmlsZT0kREFUQV9GSUxFU19QQVRIL3Rlc3QtY2EyLmNydCBkZWJ1Z19sZXZlbD00IHNpZ19hbGdzPWVjZHNhX3NlY3AyNTZyMV9zaGEyNTYgZ3JvdXBzPWZmZGhlMjA0OCxzZWNwMzg0cjEiIFwKICAgICAgICAgIDAgXAogICAgICAgICAgLWMgIkhUVFAvMS4wIDIwMCBPSyIgXAogICAgICAgICAgLWMgIlByb3RvY29sIGlzIFRMU3YxLjMiIFwKQEAgLTE0NDA4LDggKzE0NDEwLDggQEAKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIFBTQV9XQU5UX0FMR19GRkRICiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBQU0FfV0FOVF9ESF9SRkM3OTE5XzIwNDgKIHJ1bl90ZXN0ICJUTFMgMS4zIG0tPkc6IEhSUiBmZmRoZTIwNDggLT4gc2VjcDUyMXIxIiBcCi0gICAgICAgICAiJEdfTkVYVF9TUlZfTk9fQ0VSVCAtLWh0dHAgLS1kaXNhYmxlLWNsaWVudC1jZXJ0IC0tZGVidWc9NCAtLXg1MDljZXJ0ZmlsZSBkYXRhX2ZpbGVzL2VjZHNhX3NlY3AyNTZyMS5jcnQgLS14NTA5a2V5ZmlsZSBkYXRhX2ZpbGVzL2VjZHNhX3NlY3AyNTZyMS5rZXkgLS1wcmlvcml0eT1OT05FOitDSVBIRVItQUxMOitNQUMtQUxMOitTSUdOLUFMTDorR1JPVVAtU0VDUDUyMVIxOitWRVJTLVRMUzEuMzolTk9fVElDS0VUUyIgXAotICAgICAgICAgIiRQX0NMSSBjYV9maWxlPWRhdGFfZmlsZXMvdGVzdC1jYTIuY3J0IGRlYnVnX2xldmVsPTQgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDI1NnIxX3NoYTI1NiBncm91cHM9ZmZkaGUyMDQ4LHNlY3A1MjFyMSIgXAorICAgICAgICAgIiRHX05FWFRfU1JWX05PX0NFUlQgLS1odHRwIC0tZGlzYWJsZS1jbGllbnQtY2VydCAtLWRlYnVnPTQgLS14NTA5Y2VydGZpbGUgJERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwMjU2cjEuY3J0IC0teDUwOWtleWZpbGUgJERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwMjU2cjEua2V5IC0tcHJpb3JpdHk9Tk9ORTorQ0lQSEVSLUFMTDorTUFDLUFMTDorU0lHTi1BTEw6K0dST1VQLVNFQ1A1MjFSMTorVkVSUy1UTFMxLjM6JU5PX1RJQ0tFVFMiIFwKKyAgICAgICAgICIkUF9DTEkgY2FfZmlsZT0kREFUQV9GSUxFU19QQVRIL3Rlc3QtY2EyLmNydCBkZWJ1Z19sZXZlbD00IHNpZ19hbGdzPWVjZHNhX3NlY3AyNTZyMV9zaGEyNTYgZ3JvdXBzPWZmZGhlMjA0OCxzZWNwNTIxcjEiIFwKICAgICAgICAgIDAgXAogICAgICAgICAgLWMgIkhUVFAvMS4wIDIwMCBPSyIgXAogICAgICAgICAgLWMgIlByb3RvY29sIGlzIFRMU3YxLjMiIFwKQEAgLTE0NDMwLDggKzE0NDMyLDggQEAKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIFBTQV9XQU5UX0FMR19GRkRICiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBQU0FfV0FOVF9ESF9SRkM3OTE5XzIwNDgKIHJ1bl90ZXN0ICJUTFMgMS4zIG0tPkc6IEhSUiBmZmRoZTIwNDggLT4geDI1NTE5IiBcCi0gICAgICAgICAiJEdfTkVYVF9TUlZfTk9fQ0VSVCAtLWh0dHAgLS1kaXNhYmxlLWNsaWVudC1jZXJ0IC0tZGVidWc9NCAtLXg1MDljZXJ0ZmlsZSBkYXRhX2ZpbGVzL2VjZHNhX3NlY3AyNTZyMS5jcnQgLS14NTA5a2V5ZmlsZSBkYXRhX2ZpbGVzL2VjZHNhX3NlY3AyNTZyMS5rZXkgLS1wcmlvcml0eT1OT05FOitDSVBIRVItQUxMOitNQUMtQUxMOitTSUdOLUFMTDorR1JPVVAtWDI1NTE5OitWRVJTLVRMUzEuMzolTk9fVElDS0VUUyIgXAotICAgICAgICAgIiRQX0NMSSBjYV9maWxlPWRhdGFfZmlsZXMvdGVzdC1jYTIuY3J0IGRlYnVnX2xldmVsPTQgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDI1NnIxX3NoYTI1NiBncm91cHM9ZmZkaGUyMDQ4LHgyNTUxOSIgXAorICAgICAgICAgIiRHX05FWFRfU1JWX05PX0NFUlQgLS1odHRwIC0tZGlzYWJsZS1jbGllbnQtY2VydCAtLWRlYnVnPTQgLS14NTA5Y2VydGZpbGUgJERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwMjU2cjEuY3J0IC0teDUwOWtleWZpbGUgJERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwMjU2cjEua2V5IC0tcHJpb3JpdHk9Tk9ORTorQ0lQSEVSLUFMTDorTUFDLUFMTDorU0lHTi1BTEw6K0dST1VQLVgyNTUxOTorVkVSUy1UTFMxLjM6JU5PX1RJQ0tFVFMiIFwKKyAgICAgICAgICIkUF9DTEkgY2FfZmlsZT0kREFUQV9GSUxFU19QQVRIL3Rlc3QtY2EyLmNydCBkZWJ1Z19sZXZlbD00IHNpZ19hbGdzPWVjZHNhX3NlY3AyNTZyMV9zaGEyNTYgZ3JvdXBzPWZmZGhlMjA0OCx4MjU1MTkiIFwKICAgICAgICAgIDAgXAogICAgICAgICAgLWMgIkhUVFAvMS4wIDIwMCBPSyIgXAogICAgICAgICAgLWMgIlByb3RvY29sIGlzIFRMU3YxLjMiIFwKQEAgLTE0NDUyLDggKzE0NDU0LDggQEAKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIFBTQV9XQU5UX0FMR19GRkRICiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBQU0FfV0FOVF9ESF9SRkM3OTE5XzIwNDgKIHJ1bl90ZXN0ICJUTFMgMS4zIG0tPkc6IEhSUiBmZmRoZTIwNDggLT4geDQ0OCIgXAotICAgICAgICAgIiRHX05FWFRfU1JWX05PX0NFUlQgLS1odHRwIC0tZGlzYWJsZS1jbGllbnQtY2VydCAtLWRlYnVnPTQgLS14NTA5Y2VydGZpbGUgZGF0YV9maWxlcy9lY2RzYV9zZWNwMjU2cjEuY3J0IC0teDUwOWtleWZpbGUgZGF0YV9maWxlcy9lY2RzYV9zZWNwMjU2cjEua2V5IC0tcHJpb3JpdHk9Tk9ORTorQ0lQSEVSLUFMTDorTUFDLUFMTDorU0lHTi1BTEw6K0dST1VQLVg0NDg6K1ZFUlMtVExTMS4zOiVOT19USUNLRVRTIiBcCi0gICAgICAgICAiJFBfQ0xJIGNhX2ZpbGU9ZGF0YV9maWxlcy90ZXN0LWNhMi5jcnQgZGVidWdfbGV2ZWw9NCBzaWdfYWxncz1lY2RzYV9zZWNwMjU2cjFfc2hhMjU2IGdyb3Vwcz1mZmRoZTIwNDgseDQ0OCIgXAorICAgICAgICAgIiRHX05FWFRfU1JWX05PX0NFUlQgLS1odHRwIC0tZGlzYWJsZS1jbGllbnQtY2VydCAtLWRlYnVnPTQgLS14NTA5Y2VydGZpbGUgJERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwMjU2cjEuY3J0IC0teDUwOWtleWZpbGUgJERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwMjU2cjEua2V5IC0tcHJpb3JpdHk9Tk9ORTorQ0lQSEVSLUFMTDorTUFDLUFMTDorU0lHTi1BTEw6K0dST1VQLVg0NDg6K1ZFUlMtVExTMS4zOiVOT19USUNLRVRTIiBcCisgICAgICAgICAiJFBfQ0xJIGNhX2ZpbGU9JERBVEFfRklMRVNfUEFUSC90ZXN0LWNhMi5jcnQgZGVidWdfbGV2ZWw9NCBzaWdfYWxncz1lY2RzYV9zZWNwMjU2cjFfc2hhMjU2IGdyb3Vwcz1mZmRoZTIwNDgseDQ0OCIgXAogICAgICAgICAgMCBcCiAgICAgICAgICAtYyAiSFRUUC8xLjAgMjAwIE9LIiBcCiAgICAgICAgICAtYyAiUHJvdG9jb2wgaXMgVExTdjEuMyIgXApAQCAtMTQ0NzQsOCArMTQ0NzYsOCBAQAogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgTUJFRFRMU19TU0xfVExTMV8zX0NPTVBBVElCSUxJVFlfTU9ERQogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgUFNBX1dBTlRfQUxHX0VDREgKIHJ1bl90ZXN0ICJUTFMgMS4zIG0tPm06IEhSUiBzZWNwMjU2cjEgLT4gc2VjcDM4NHIxIiBcCi0gICAgICAgICAiJFBfU1JWIGNydF9maWxlPWRhdGFfZmlsZXMvZWNkc2Ffc2VjcDI1NnIxLmNydCBrZXlfZmlsZT1kYXRhX2ZpbGVzL2VjZHNhX3NlY3AyNTZyMS5rZXkgZGVidWdfbGV2ZWw9NCBzaWdfYWxncz1lY2RzYV9zZWNwMjU2cjFfc2hhMjU2IGdyb3Vwcz1zZWNwMzg0cjEgdGxzMTNfa2V4X21vZGVzPWVwaGVtZXJhbCBjb29raWVzPTAgdGlja2V0cz0wIiBcCi0gICAgICAgICAiJFBfQ0xJIGNhX2ZpbGU9ZGF0YV9maWxlcy90ZXN0LWNhMi5jcnQgZGVidWdfbGV2ZWw9NCBzaWdfYWxncz1lY2RzYV9zZWNwMjU2cjFfc2hhMjU2IGdyb3Vwcz1zZWNwMjU2cjEsc2VjcDM4NHIxIiBcCisgICAgICAgICAiJFBfU1JWIGNydF9maWxlPSREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDI1NnIxLmNydCBrZXlfZmlsZT0kREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3AyNTZyMS5rZXkgZGVidWdfbGV2ZWw9NCBzaWdfYWxncz1lY2RzYV9zZWNwMjU2cjFfc2hhMjU2IGdyb3Vwcz1zZWNwMzg0cjEgdGxzMTNfa2V4X21vZGVzPWVwaGVtZXJhbCBjb29raWVzPTAgdGlja2V0cz0wIiBcCisgICAgICAgICAiJFBfQ0xJIGNhX2ZpbGU9JERBVEFfRklMRVNfUEFUSC90ZXN0LWNhMi5jcnQgZGVidWdfbGV2ZWw9NCBzaWdfYWxncz1lY2RzYV9zZWNwMjU2cjFfc2hhMjU2IGdyb3Vwcz1zZWNwMjU2cjEsc2VjcDM4NHIxIiBcCiAgICAgICAgICAwIFwKICAgICAgICAgIC1zICJQcm90b2NvbCBpcyBUTFN2MS4zIiBcCiAgICAgICAgICAtcyAiZ290IG5hbWVkIGdyb3VwOiBzZWNwMzg0cjEoMDAxOCkiIFwKQEAgLTE0NDk5LDggKzE0NTAxLDggQEAKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIE1CRURUTFNfU1NMX1RMUzFfM19DT01QQVRJQklMSVRZX01PREUKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIFBTQV9XQU5UX0FMR19FQ0RICiBydW5fdGVzdCAiVExTIDEuMyBtLT5tOiBIUlIgc2VjcDI1NnIxIC0+IHNlY3A1MjFyMSIgXAotICAgICAgICAgIiRQX1NSViBjcnRfZmlsZT1kYXRhX2ZpbGVzL2VjZHNhX3NlY3AyNTZyMS5jcnQga2V5X2ZpbGU9ZGF0YV9maWxlcy9lY2RzYV9zZWNwMjU2cjEua2V5IGRlYnVnX2xldmVsPTQgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDI1NnIxX3NoYTI1NiBncm91cHM9c2VjcDUyMXIxIHRsczEzX2tleF9tb2Rlcz1lcGhlbWVyYWwgY29va2llcz0wIHRpY2tldHM9MCIgXAotICAgICAgICAgIiRQX0NMSSBjYV9maWxlPWRhdGFfZmlsZXMvdGVzdC1jYTIuY3J0IGRlYnVnX2xldmVsPTQgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDI1NnIxX3NoYTI1NiBncm91cHM9c2VjcDI1NnIxLHNlY3A1MjFyMSIgXAorICAgICAgICAgIiRQX1NSViBjcnRfZmlsZT0kREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3AyNTZyMS5jcnQga2V5X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwMjU2cjEua2V5IGRlYnVnX2xldmVsPTQgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDI1NnIxX3NoYTI1NiBncm91cHM9c2VjcDUyMXIxIHRsczEzX2tleF9tb2Rlcz1lcGhlbWVyYWwgY29va2llcz0wIHRpY2tldHM9MCIgXAorICAgICAgICAgIiRQX0NMSSBjYV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvdGVzdC1jYTIuY3J0IGRlYnVnX2xldmVsPTQgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDI1NnIxX3NoYTI1NiBncm91cHM9c2VjcDI1NnIxLHNlY3A1MjFyMSIgXAogICAgICAgICAgMCBcCiAgICAgICAgICAtcyAiUHJvdG9jb2wgaXMgVExTdjEuMyIgXAogICAgICAgICAgLXMgImdvdCBuYW1lZCBncm91cDogc2VjcDUyMXIxKDAwMTkpIiBcCkBAIC0xNDUyNCw4ICsxNDUyNiw4IEBACiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBNQkVEVExTX1NTTF9UTFMxXzNfQ09NUEFUSUJJTElUWV9NT0RFCiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBQU0FfV0FOVF9BTEdfRUNESAogcnVuX3Rlc3QgIlRMUyAxLjMgbS0+bTogSFJSIHNlY3AyNTZyMSAtPiB4MjU1MTkiIFwKLSAgICAgICAgICIkUF9TUlYgY3J0X2ZpbGU9ZGF0YV9maWxlcy9lY2RzYV9zZWNwMjU2cjEuY3J0IGtleV9maWxlPWRhdGFfZmlsZXMvZWNkc2Ffc2VjcDI1NnIxLmtleSBkZWJ1Z19sZXZlbD00IHNpZ19hbGdzPWVjZHNhX3NlY3AyNTZyMV9zaGEyNTYgZ3JvdXBzPXgyNTUxOSB0bHMxM19rZXhfbW9kZXM9ZXBoZW1lcmFsIGNvb2tpZXM9MCB0aWNrZXRzPTAiIFwKLSAgICAgICAgICIkUF9DTEkgY2FfZmlsZT1kYXRhX2ZpbGVzL3Rlc3QtY2EyLmNydCBkZWJ1Z19sZXZlbD00IHNpZ19hbGdzPWVjZHNhX3NlY3AyNTZyMV9zaGEyNTYgZ3JvdXBzPXNlY3AyNTZyMSx4MjU1MTkiIFwKKyAgICAgICAgICIkUF9TUlYgY3J0X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwMjU2cjEuY3J0IGtleV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDI1NnIxLmtleSBkZWJ1Z19sZXZlbD00IHNpZ19hbGdzPWVjZHNhX3NlY3AyNTZyMV9zaGEyNTYgZ3JvdXBzPXgyNTUxOSB0bHMxM19rZXhfbW9kZXM9ZXBoZW1lcmFsIGNvb2tpZXM9MCB0aWNrZXRzPTAiIFwKKyAgICAgICAgICIkUF9DTEkgY2FfZmlsZT0kREFUQV9GSUxFU19QQVRIL3Rlc3QtY2EyLmNydCBkZWJ1Z19sZXZlbD00IHNpZ19hbGdzPWVjZHNhX3NlY3AyNTZyMV9zaGEyNTYgZ3JvdXBzPXNlY3AyNTZyMSx4MjU1MTkiIFwKICAgICAgICAgIDAgXAogICAgICAgICAgLXMgIlByb3RvY29sIGlzIFRMU3YxLjMiIFwKICAgICAgICAgIC1zICJnb3QgbmFtZWQgZ3JvdXA6IHgyNTUxOSgwMDFkKSIgXApAQCAtMTQ1NDksOCArMTQ1NTEsOCBAQAogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgTUJFRFRMU19TU0xfVExTMV8zX0NPTVBBVElCSUxJVFlfTU9ERQogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgUFNBX1dBTlRfQUxHX0VDREgKIHJ1bl90ZXN0ICJUTFMgMS4zIG0tPm06IEhSUiBzZWNwMjU2cjEgLT4geDQ0OCIgXAotICAgICAgICAgIiRQX1NSViBjcnRfZmlsZT1kYXRhX2ZpbGVzL2VjZHNhX3NlY3AyNTZyMS5jcnQga2V5X2ZpbGU9ZGF0YV9maWxlcy9lY2RzYV9zZWNwMjU2cjEua2V5IGRlYnVnX2xldmVsPTQgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDI1NnIxX3NoYTI1NiBncm91cHM9eDQ0OCB0bHMxM19rZXhfbW9kZXM9ZXBoZW1lcmFsIGNvb2tpZXM9MCB0aWNrZXRzPTAiIFwKLSAgICAgICAgICIkUF9DTEkgY2FfZmlsZT1kYXRhX2ZpbGVzL3Rlc3QtY2EyLmNydCBkZWJ1Z19sZXZlbD00IHNpZ19hbGdzPWVjZHNhX3NlY3AyNTZyMV9zaGEyNTYgZ3JvdXBzPXNlY3AyNTZyMSx4NDQ4IiBcCisgICAgICAgICAiJFBfU1JWIGNydF9maWxlPSREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDI1NnIxLmNydCBrZXlfZmlsZT0kREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3AyNTZyMS5rZXkgZGVidWdfbGV2ZWw9NCBzaWdfYWxncz1lY2RzYV9zZWNwMjU2cjFfc2hhMjU2IGdyb3Vwcz14NDQ4IHRsczEzX2tleF9tb2Rlcz1lcGhlbWVyYWwgY29va2llcz0wIHRpY2tldHM9MCIgXAorICAgICAgICAgIiRQX0NMSSBjYV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvdGVzdC1jYTIuY3J0IGRlYnVnX2xldmVsPTQgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDI1NnIxX3NoYTI1NiBncm91cHM9c2VjcDI1NnIxLHg0NDgiIFwKICAgICAgICAgIDAgXAogICAgICAgICAgLXMgIlByb3RvY29sIGlzIFRMU3YxLjMiIFwKICAgICAgICAgIC1zICJnb3QgbmFtZWQgZ3JvdXA6IHg0NDgoMDAxZSkiIFwKQEAgLTE0NTc3LDggKzE0NTc5LDggQEAKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIFBTQV9XQU5UX0FMR19GRkRICiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBQU0FfV0FOVF9ESF9SRkM3OTE5XzIwNDgKIHJ1bl90ZXN0ICJUTFMgMS4zIG0tPm06IEhSUiBzZWNwMjU2cjEgLT4gZmZkaGUyMDQ4IiBcCi0gICAgICAgICAiJFBfU1JWIGNydF9maWxlPWRhdGFfZmlsZXMvZWNkc2Ffc2VjcDI1NnIxLmNydCBrZXlfZmlsZT1kYXRhX2ZpbGVzL2VjZHNhX3NlY3AyNTZyMS5rZXkgZGVidWdfbGV2ZWw9NCBzaWdfYWxncz1lY2RzYV9zZWNwMjU2cjFfc2hhMjU2IGdyb3Vwcz1mZmRoZTIwNDggdGxzMTNfa2V4X21vZGVzPWVwaGVtZXJhbCBjb29raWVzPTAgdGlja2V0cz0wIiBcCi0gICAgICAgICAiJFBfQ0xJIGNhX2ZpbGU9ZGF0YV9maWxlcy90ZXN0LWNhMi5jcnQgZGVidWdfbGV2ZWw9NCBzaWdfYWxncz1lY2RzYV9zZWNwMjU2cjFfc2hhMjU2IGdyb3Vwcz1zZWNwMjU2cjEsZmZkaGUyMDQ4IiBcCisgICAgICAgICAiJFBfU1JWIGNydF9maWxlPSREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDI1NnIxLmNydCBrZXlfZmlsZT0kREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3AyNTZyMS5rZXkgZGVidWdfbGV2ZWw9NCBzaWdfYWxncz1lY2RzYV9zZWNwMjU2cjFfc2hhMjU2IGdyb3Vwcz1mZmRoZTIwNDggdGxzMTNfa2V4X21vZGVzPWVwaGVtZXJhbCBjb29raWVzPTAgdGlja2V0cz0wIiBcCisgICAgICAgICAiJFBfQ0xJIGNhX2ZpbGU9JERBVEFfRklMRVNfUEFUSC90ZXN0LWNhMi5jcnQgZGVidWdfbGV2ZWw9NCBzaWdfYWxncz1lY2RzYV9zZWNwMjU2cjFfc2hhMjU2IGdyb3Vwcz1zZWNwMjU2cjEsZmZkaGUyMDQ4IiBcCiAgICAgICAgICAwIFwKICAgICAgICAgIC1zICJQcm90b2NvbCBpcyBUTFN2MS4zIiBcCiAgICAgICAgICAtcyAiZ290IG5hbWVkIGdyb3VwOiBmZmRoZTIwNDgoMDEwMCkiIFwKQEAgLTE0NjAyLDggKzE0NjA0LDggQEAKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIE1CRURUTFNfU1NMX1RMUzFfM19DT01QQVRJQklMSVRZX01PREUKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIFBTQV9XQU5UX0FMR19FQ0RICiBydW5fdGVzdCAiVExTIDEuMyBtLT5tOiBIUlIgc2VjcDM4NHIxIC0+IHNlY3AyNTZyMSIgXAotICAgICAgICAgIiRQX1NSViBjcnRfZmlsZT1kYXRhX2ZpbGVzL2VjZHNhX3NlY3AyNTZyMS5jcnQga2V5X2ZpbGU9ZGF0YV9maWxlcy9lY2RzYV9zZWNwMjU2cjEua2V5IGRlYnVnX2xldmVsPTQgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDI1NnIxX3NoYTI1NiBncm91cHM9c2VjcDI1NnIxIHRsczEzX2tleF9tb2Rlcz1lcGhlbWVyYWwgY29va2llcz0wIHRpY2tldHM9MCIgXAotICAgICAgICAgIiRQX0NMSSBjYV9maWxlPWRhdGFfZmlsZXMvdGVzdC1jYTIuY3J0IGRlYnVnX2xldmVsPTQgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDI1NnIxX3NoYTI1NiBncm91cHM9c2VjcDM4NHIxLHNlY3AyNTZyMSIgXAorICAgICAgICAgIiRQX1NSViBjcnRfZmlsZT0kREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3AyNTZyMS5jcnQga2V5X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwMjU2cjEua2V5IGRlYnVnX2xldmVsPTQgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDI1NnIxX3NoYTI1NiBncm91cHM9c2VjcDI1NnIxIHRsczEzX2tleF9tb2Rlcz1lcGhlbWVyYWwgY29va2llcz0wIHRpY2tldHM9MCIgXAorICAgICAgICAgIiRQX0NMSSBjYV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvdGVzdC1jYTIuY3J0IGRlYnVnX2xldmVsPTQgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDI1NnIxX3NoYTI1NiBncm91cHM9c2VjcDM4NHIxLHNlY3AyNTZyMSIgXAogICAgICAgICAgMCBcCiAgICAgICAgICAtcyAiUHJvdG9jb2wgaXMgVExTdjEuMyIgXAogICAgICAgICAgLXMgImdvdCBuYW1lZCBncm91cDogc2VjcDI1NnIxKDAwMTcpIiBcCkBAIC0xNDYyNyw4ICsxNDYyOSw4IEBACiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBNQkVEVExTX1NTTF9UTFMxXzNfQ09NUEFUSUJJTElUWV9NT0RFCiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBQU0FfV0FOVF9BTEdfRUNESAogcnVuX3Rlc3QgIlRMUyAxLjMgbS0+bTogSFJSIHNlY3AzODRyMSAtPiBzZWNwNTIxcjEiIFwKLSAgICAgICAgICIkUF9TUlYgY3J0X2ZpbGU9ZGF0YV9maWxlcy9lY2RzYV9zZWNwMjU2cjEuY3J0IGtleV9maWxlPWRhdGFfZmlsZXMvZWNkc2Ffc2VjcDI1NnIxLmtleSBkZWJ1Z19sZXZlbD00IHNpZ19hbGdzPWVjZHNhX3NlY3AyNTZyMV9zaGEyNTYgZ3JvdXBzPXNlY3A1MjFyMSB0bHMxM19rZXhfbW9kZXM9ZXBoZW1lcmFsIGNvb2tpZXM9MCB0aWNrZXRzPTAiIFwKLSAgICAgICAgICIkUF9DTEkgY2FfZmlsZT1kYXRhX2ZpbGVzL3Rlc3QtY2EyLmNydCBkZWJ1Z19sZXZlbD00IHNpZ19hbGdzPWVjZHNhX3NlY3AyNTZyMV9zaGEyNTYgZ3JvdXBzPXNlY3AzODRyMSxzZWNwNTIxcjEiIFwKKyAgICAgICAgICIkUF9TUlYgY3J0X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwMjU2cjEuY3J0IGtleV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDI1NnIxLmtleSBkZWJ1Z19sZXZlbD00IHNpZ19hbGdzPWVjZHNhX3NlY3AyNTZyMV9zaGEyNTYgZ3JvdXBzPXNlY3A1MjFyMSB0bHMxM19rZXhfbW9kZXM9ZXBoZW1lcmFsIGNvb2tpZXM9MCB0aWNrZXRzPTAiIFwKKyAgICAgICAgICIkUF9DTEkgY2FfZmlsZT0kREFUQV9GSUxFU19QQVRIL3Rlc3QtY2EyLmNydCBkZWJ1Z19sZXZlbD00IHNpZ19hbGdzPWVjZHNhX3NlY3AyNTZyMV9zaGEyNTYgZ3JvdXBzPXNlY3AzODRyMSxzZWNwNTIxcjEiIFwKICAgICAgICAgIDAgXAogICAgICAgICAgLXMgIlByb3RvY29sIGlzIFRMU3YxLjMiIFwKICAgICAgICAgIC1zICJnb3QgbmFtZWQgZ3JvdXA6IHNlY3A1MjFyMSgwMDE5KSIgXApAQCAtMTQ2NTIsOCArMTQ2NTQsOCBAQAogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgTUJFRFRMU19TU0xfVExTMV8zX0NPTVBBVElCSUxJVFlfTU9ERQogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgUFNBX1dBTlRfQUxHX0VDREgKIHJ1bl90ZXN0ICJUTFMgMS4zIG0tPm06IEhSUiBzZWNwMzg0cjEgLT4geDI1NTE5IiBcCi0gICAgICAgICAiJFBfU1JWIGNydF9maWxlPWRhdGFfZmlsZXMvZWNkc2Ffc2VjcDI1NnIxLmNydCBrZXlfZmlsZT1kYXRhX2ZpbGVzL2VjZHNhX3NlY3AyNTZyMS5rZXkgZGVidWdfbGV2ZWw9NCBzaWdfYWxncz1lY2RzYV9zZWNwMjU2cjFfc2hhMjU2IGdyb3Vwcz14MjU1MTkgdGxzMTNfa2V4X21vZGVzPWVwaGVtZXJhbCBjb29raWVzPTAgdGlja2V0cz0wIiBcCi0gICAgICAgICAiJFBfQ0xJIGNhX2ZpbGU9ZGF0YV9maWxlcy90ZXN0LWNhMi5jcnQgZGVidWdfbGV2ZWw9NCBzaWdfYWxncz1lY2RzYV9zZWNwMjU2cjFfc2hhMjU2IGdyb3Vwcz1zZWNwMzg0cjEseDI1NTE5IiBcCisgICAgICAgICAiJFBfU1JWIGNydF9maWxlPSREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDI1NnIxLmNydCBrZXlfZmlsZT0kREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3AyNTZyMS5rZXkgZGVidWdfbGV2ZWw9NCBzaWdfYWxncz1lY2RzYV9zZWNwMjU2cjFfc2hhMjU2IGdyb3Vwcz14MjU1MTkgdGxzMTNfa2V4X21vZGVzPWVwaGVtZXJhbCBjb29raWVzPTAgdGlja2V0cz0wIiBcCisgICAgICAgICAiJFBfQ0xJIGNhX2ZpbGU9JERBVEFfRklMRVNfUEFUSC90ZXN0LWNhMi5jcnQgZGVidWdfbGV2ZWw9NCBzaWdfYWxncz1lY2RzYV9zZWNwMjU2cjFfc2hhMjU2IGdyb3Vwcz1zZWNwMzg0cjEseDI1NTE5IiBcCiAgICAgICAgICAwIFwKICAgICAgICAgIC1zICJQcm90b2NvbCBpcyBUTFN2MS4zIiBcCiAgICAgICAgICAtcyAiZ290IG5hbWVkIGdyb3VwOiB4MjU1MTkoMDAxZCkiIFwKQEAgLTE0Njc3LDggKzE0Njc5LDggQEAKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIE1CRURUTFNfU1NMX1RMUzFfM19DT01QQVRJQklMSVRZX01PREUKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIFBTQV9XQU5UX0FMR19FQ0RICiBydW5fdGVzdCAiVExTIDEuMyBtLT5tOiBIUlIgc2VjcDM4NHIxIC0+IHg0NDgiIFwKLSAgICAgICAgICIkUF9TUlYgY3J0X2ZpbGU9ZGF0YV9maWxlcy9lY2RzYV9zZWNwMjU2cjEuY3J0IGtleV9maWxlPWRhdGFfZmlsZXMvZWNkc2Ffc2VjcDI1NnIxLmtleSBkZWJ1Z19sZXZlbD00IHNpZ19hbGdzPWVjZHNhX3NlY3AyNTZyMV9zaGEyNTYgZ3JvdXBzPXg0NDggdGxzMTNfa2V4X21vZGVzPWVwaGVtZXJhbCBjb29raWVzPTAgdGlja2V0cz0wIiBcCi0gICAgICAgICAiJFBfQ0xJIGNhX2ZpbGU9ZGF0YV9maWxlcy90ZXN0LWNhMi5jcnQgZGVidWdfbGV2ZWw9NCBzaWdfYWxncz1lY2RzYV9zZWNwMjU2cjFfc2hhMjU2IGdyb3Vwcz1zZWNwMzg0cjEseDQ0OCIgXAorICAgICAgICAgIiRQX1NSViBjcnRfZmlsZT0kREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3AyNTZyMS5jcnQga2V5X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwMjU2cjEua2V5IGRlYnVnX2xldmVsPTQgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDI1NnIxX3NoYTI1NiBncm91cHM9eDQ0OCB0bHMxM19rZXhfbW9kZXM9ZXBoZW1lcmFsIGNvb2tpZXM9MCB0aWNrZXRzPTAiIFwKKyAgICAgICAgICIkUF9DTEkgY2FfZmlsZT0kREFUQV9GSUxFU19QQVRIL3Rlc3QtY2EyLmNydCBkZWJ1Z19sZXZlbD00IHNpZ19hbGdzPWVjZHNhX3NlY3AyNTZyMV9zaGEyNTYgZ3JvdXBzPXNlY3AzODRyMSx4NDQ4IiBcCiAgICAgICAgICAwIFwKICAgICAgICAgIC1zICJQcm90b2NvbCBpcyBUTFN2MS4zIiBcCiAgICAgICAgICAtcyAiZ290IG5hbWVkIGdyb3VwOiB4NDQ4KDAwMWUpIiBcCkBAIC0xNDcwNSw4ICsxNDcwNyw4IEBACiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBQU0FfV0FOVF9BTEdfRkZESAogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgUFNBX1dBTlRfREhfUkZDNzkxOV8yMDQ4CiBydW5fdGVzdCAiVExTIDEuMyBtLT5tOiBIUlIgc2VjcDM4NHIxIC0+IGZmZGhlMjA0OCIgXAotICAgICAgICAgIiRQX1NSViBjcnRfZmlsZT1kYXRhX2ZpbGVzL2VjZHNhX3NlY3AyNTZyMS5jcnQga2V5X2ZpbGU9ZGF0YV9maWxlcy9lY2RzYV9zZWNwMjU2cjEua2V5IGRlYnVnX2xldmVsPTQgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDI1NnIxX3NoYTI1NiBncm91cHM9ZmZkaGUyMDQ4IHRsczEzX2tleF9tb2Rlcz1lcGhlbWVyYWwgY29va2llcz0wIHRpY2tldHM9MCIgXAotICAgICAgICAgIiRQX0NMSSBjYV9maWxlPWRhdGFfZmlsZXMvdGVzdC1jYTIuY3J0IGRlYnVnX2xldmVsPTQgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDI1NnIxX3NoYTI1NiBncm91cHM9c2VjcDM4NHIxLGZmZGhlMjA0OCIgXAorICAgICAgICAgIiRQX1NSViBjcnRfZmlsZT0kREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3AyNTZyMS5jcnQga2V5X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwMjU2cjEua2V5IGRlYnVnX2xldmVsPTQgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDI1NnIxX3NoYTI1NiBncm91cHM9ZmZkaGUyMDQ4IHRsczEzX2tleF9tb2Rlcz1lcGhlbWVyYWwgY29va2llcz0wIHRpY2tldHM9MCIgXAorICAgICAgICAgIiRQX0NMSSBjYV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvdGVzdC1jYTIuY3J0IGRlYnVnX2xldmVsPTQgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDI1NnIxX3NoYTI1NiBncm91cHM9c2VjcDM4NHIxLGZmZGhlMjA0OCIgXAogICAgICAgICAgMCBcCiAgICAgICAgICAtcyAiUHJvdG9jb2wgaXMgVExTdjEuMyIgXAogICAgICAgICAgLXMgImdvdCBuYW1lZCBncm91cDogZmZkaGUyMDQ4KDAxMDApIiBcCkBAIC0xNDczMCw4ICsxNDczMiw4IEBACiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBNQkVEVExTX1NTTF9UTFMxXzNfQ09NUEFUSUJJTElUWV9NT0RFCiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBQU0FfV0FOVF9BTEdfRUNESAogcnVuX3Rlc3QgIlRMUyAxLjMgbS0+bTogSFJSIHNlY3A1MjFyMSAtPiBzZWNwMjU2cjEiIFwKLSAgICAgICAgICIkUF9TUlYgY3J0X2ZpbGU9ZGF0YV9maWxlcy9lY2RzYV9zZWNwMjU2cjEuY3J0IGtleV9maWxlPWRhdGFfZmlsZXMvZWNkc2Ffc2VjcDI1NnIxLmtleSBkZWJ1Z19sZXZlbD00IHNpZ19hbGdzPWVjZHNhX3NlY3AyNTZyMV9zaGEyNTYgZ3JvdXBzPXNlY3AyNTZyMSB0bHMxM19rZXhfbW9kZXM9ZXBoZW1lcmFsIGNvb2tpZXM9MCB0aWNrZXRzPTAiIFwKLSAgICAgICAgICIkUF9DTEkgY2FfZmlsZT1kYXRhX2ZpbGVzL3Rlc3QtY2EyLmNydCBkZWJ1Z19sZXZlbD00IHNpZ19hbGdzPWVjZHNhX3NlY3AyNTZyMV9zaGEyNTYgZ3JvdXBzPXNlY3A1MjFyMSxzZWNwMjU2cjEiIFwKKyAgICAgICAgICIkUF9TUlYgY3J0X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwMjU2cjEuY3J0IGtleV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDI1NnIxLmtleSBkZWJ1Z19sZXZlbD00IHNpZ19hbGdzPWVjZHNhX3NlY3AyNTZyMV9zaGEyNTYgZ3JvdXBzPXNlY3AyNTZyMSB0bHMxM19rZXhfbW9kZXM9ZXBoZW1lcmFsIGNvb2tpZXM9MCB0aWNrZXRzPTAiIFwKKyAgICAgICAgICIkUF9DTEkgY2FfZmlsZT0kREFUQV9GSUxFU19QQVRIL3Rlc3QtY2EyLmNydCBkZWJ1Z19sZXZlbD00IHNpZ19hbGdzPWVjZHNhX3NlY3AyNTZyMV9zaGEyNTYgZ3JvdXBzPXNlY3A1MjFyMSxzZWNwMjU2cjEiIFwKICAgICAgICAgIDAgXAogICAgICAgICAgLXMgIlByb3RvY29sIGlzIFRMU3YxLjMiIFwKICAgICAgICAgIC1zICJnb3QgbmFtZWQgZ3JvdXA6IHNlY3AyNTZyMSgwMDE3KSIgXApAQCAtMTQ3NTUsOCArMTQ3NTcsOCBAQAogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgTUJFRFRMU19TU0xfVExTMV8zX0NPTVBBVElCSUxJVFlfTU9ERQogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgUFNBX1dBTlRfQUxHX0VDREgKIHJ1bl90ZXN0ICJUTFMgMS4zIG0tPm06IEhSUiBzZWNwNTIxcjEgLT4gc2VjcDM4NHIxIiBcCi0gICAgICAgICAiJFBfU1JWIGNydF9maWxlPWRhdGFfZmlsZXMvZWNkc2Ffc2VjcDI1NnIxLmNydCBrZXlfZmlsZT1kYXRhX2ZpbGVzL2VjZHNhX3NlY3AyNTZyMS5rZXkgZGVidWdfbGV2ZWw9NCBzaWdfYWxncz1lY2RzYV9zZWNwMjU2cjFfc2hhMjU2IGdyb3Vwcz1zZWNwMzg0cjEgdGxzMTNfa2V4X21vZGVzPWVwaGVtZXJhbCBjb29raWVzPTAgdGlja2V0cz0wIiBcCi0gICAgICAgICAiJFBfQ0xJIGNhX2ZpbGU9ZGF0YV9maWxlcy90ZXN0LWNhMi5jcnQgZGVidWdfbGV2ZWw9NCBzaWdfYWxncz1lY2RzYV9zZWNwMjU2cjFfc2hhMjU2IGdyb3Vwcz1zZWNwNTIxcjEsc2VjcDM4NHIxIiBcCisgICAgICAgICAiJFBfU1JWIGNydF9maWxlPSREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDI1NnIxLmNydCBrZXlfZmlsZT0kREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3AyNTZyMS5rZXkgZGVidWdfbGV2ZWw9NCBzaWdfYWxncz1lY2RzYV9zZWNwMjU2cjFfc2hhMjU2IGdyb3Vwcz1zZWNwMzg0cjEgdGxzMTNfa2V4X21vZGVzPWVwaGVtZXJhbCBjb29raWVzPTAgdGlja2V0cz0wIiBcCisgICAgICAgICAiJFBfQ0xJIGNhX2ZpbGU9JERBVEFfRklMRVNfUEFUSC90ZXN0LWNhMi5jcnQgZGVidWdfbGV2ZWw9NCBzaWdfYWxncz1lY2RzYV9zZWNwMjU2cjFfc2hhMjU2IGdyb3Vwcz1zZWNwNTIxcjEsc2VjcDM4NHIxIiBcCiAgICAgICAgICAwIFwKICAgICAgICAgIC1zICJQcm90b2NvbCBpcyBUTFN2MS4zIiBcCiAgICAgICAgICAtcyAiZ290IG5hbWVkIGdyb3VwOiBzZWNwMzg0cjEoMDAxOCkiIFwKQEAgLTE0NzgwLDggKzE0NzgyLDggQEAKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIE1CRURUTFNfU1NMX1RMUzFfM19DT01QQVRJQklMSVRZX01PREUKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIFBTQV9XQU5UX0FMR19FQ0RICiBydW5fdGVzdCAiVExTIDEuMyBtLT5tOiBIUlIgc2VjcDUyMXIxIC0+IHgyNTUxOSIgXAotICAgICAgICAgIiRQX1NSViBjcnRfZmlsZT1kYXRhX2ZpbGVzL2VjZHNhX3NlY3AyNTZyMS5jcnQga2V5X2ZpbGU9ZGF0YV9maWxlcy9lY2RzYV9zZWNwMjU2cjEua2V5IGRlYnVnX2xldmVsPTQgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDI1NnIxX3NoYTI1NiBncm91cHM9eDI1NTE5IHRsczEzX2tleF9tb2Rlcz1lcGhlbWVyYWwgY29va2llcz0wIHRpY2tldHM9MCIgXAotICAgICAgICAgIiRQX0NMSSBjYV9maWxlPWRhdGFfZmlsZXMvdGVzdC1jYTIuY3J0IGRlYnVnX2xldmVsPTQgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDI1NnIxX3NoYTI1NiBncm91cHM9c2VjcDUyMXIxLHgyNTUxOSIgXAorICAgICAgICAgIiRQX1NSViBjcnRfZmlsZT0kREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3AyNTZyMS5jcnQga2V5X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwMjU2cjEua2V5IGRlYnVnX2xldmVsPTQgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDI1NnIxX3NoYTI1NiBncm91cHM9eDI1NTE5IHRsczEzX2tleF9tb2Rlcz1lcGhlbWVyYWwgY29va2llcz0wIHRpY2tldHM9MCIgXAorICAgICAgICAgIiRQX0NMSSBjYV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvdGVzdC1jYTIuY3J0IGRlYnVnX2xldmVsPTQgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDI1NnIxX3NoYTI1NiBncm91cHM9c2VjcDUyMXIxLHgyNTUxOSIgXAogICAgICAgICAgMCBcCiAgICAgICAgICAtcyAiUHJvdG9jb2wgaXMgVExTdjEuMyIgXAogICAgICAgICAgLXMgImdvdCBuYW1lZCBncm91cDogeDI1NTE5KDAwMWQpIiBcCkBAIC0xNDgwNSw4ICsxNDgwNyw4IEBACiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBNQkVEVExTX1NTTF9UTFMxXzNfQ09NUEFUSUJJTElUWV9NT0RFCiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBQU0FfV0FOVF9BTEdfRUNESAogcnVuX3Rlc3QgIlRMUyAxLjMgbS0+bTogSFJSIHNlY3A1MjFyMSAtPiB4NDQ4IiBcCi0gICAgICAgICAiJFBfU1JWIGNydF9maWxlPWRhdGFfZmlsZXMvZWNkc2Ffc2VjcDI1NnIxLmNydCBrZXlfZmlsZT1kYXRhX2ZpbGVzL2VjZHNhX3NlY3AyNTZyMS5rZXkgZGVidWdfbGV2ZWw9NCBzaWdfYWxncz1lY2RzYV9zZWNwMjU2cjFfc2hhMjU2IGdyb3Vwcz14NDQ4IHRsczEzX2tleF9tb2Rlcz1lcGhlbWVyYWwgY29va2llcz0wIHRpY2tldHM9MCIgXAotICAgICAgICAgIiRQX0NMSSBjYV9maWxlPWRhdGFfZmlsZXMvdGVzdC1jYTIuY3J0IGRlYnVnX2xldmVsPTQgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDI1NnIxX3NoYTI1NiBncm91cHM9c2VjcDUyMXIxLHg0NDgiIFwKKyAgICAgICAgICIkUF9TUlYgY3J0X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwMjU2cjEuY3J0IGtleV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDI1NnIxLmtleSBkZWJ1Z19sZXZlbD00IHNpZ19hbGdzPWVjZHNhX3NlY3AyNTZyMV9zaGEyNTYgZ3JvdXBzPXg0NDggdGxzMTNfa2V4X21vZGVzPWVwaGVtZXJhbCBjb29raWVzPTAgdGlja2V0cz0wIiBcCisgICAgICAgICAiJFBfQ0xJIGNhX2ZpbGU9JERBVEFfRklMRVNfUEFUSC90ZXN0LWNhMi5jcnQgZGVidWdfbGV2ZWw9NCBzaWdfYWxncz1lY2RzYV9zZWNwMjU2cjFfc2hhMjU2IGdyb3Vwcz1zZWNwNTIxcjEseDQ0OCIgXAogICAgICAgICAgMCBcCiAgICAgICAgICAtcyAiUHJvdG9jb2wgaXMgVExTdjEuMyIgXAogICAgICAgICAgLXMgImdvdCBuYW1lZCBncm91cDogeDQ0OCgwMDFlKSIgXApAQCAtMTQ4MzMsOCArMTQ4MzUsOCBAQAogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgUFNBX1dBTlRfQUxHX0ZGREgKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIFBTQV9XQU5UX0RIX1JGQzc5MTlfMjA0OAogcnVuX3Rlc3QgIlRMUyAxLjMgbS0+bTogSFJSIHNlY3A1MjFyMSAtPiBmZmRoZTIwNDgiIFwKLSAgICAgICAgICIkUF9TUlYgY3J0X2ZpbGU9ZGF0YV9maWxlcy9lY2RzYV9zZWNwMjU2cjEuY3J0IGtleV9maWxlPWRhdGFfZmlsZXMvZWNkc2Ffc2VjcDI1NnIxLmtleSBkZWJ1Z19sZXZlbD00IHNpZ19hbGdzPWVjZHNhX3NlY3AyNTZyMV9zaGEyNTYgZ3JvdXBzPWZmZGhlMjA0OCB0bHMxM19rZXhfbW9kZXM9ZXBoZW1lcmFsIGNvb2tpZXM9MCB0aWNrZXRzPTAiIFwKLSAgICAgICAgICIkUF9DTEkgY2FfZmlsZT1kYXRhX2ZpbGVzL3Rlc3QtY2EyLmNydCBkZWJ1Z19sZXZlbD00IHNpZ19hbGdzPWVjZHNhX3NlY3AyNTZyMV9zaGEyNTYgZ3JvdXBzPXNlY3A1MjFyMSxmZmRoZTIwNDgiIFwKKyAgICAgICAgICIkUF9TUlYgY3J0X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwMjU2cjEuY3J0IGtleV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDI1NnIxLmtleSBkZWJ1Z19sZXZlbD00IHNpZ19hbGdzPWVjZHNhX3NlY3AyNTZyMV9zaGEyNTYgZ3JvdXBzPWZmZGhlMjA0OCB0bHMxM19rZXhfbW9kZXM9ZXBoZW1lcmFsIGNvb2tpZXM9MCB0aWNrZXRzPTAiIFwKKyAgICAgICAgICIkUF9DTEkgY2FfZmlsZT0kREFUQV9GSUxFU19QQVRIL3Rlc3QtY2EyLmNydCBkZWJ1Z19sZXZlbD00IHNpZ19hbGdzPWVjZHNhX3NlY3AyNTZyMV9zaGEyNTYgZ3JvdXBzPXNlY3A1MjFyMSxmZmRoZTIwNDgiIFwKICAgICAgICAgIDAgXAogICAgICAgICAgLXMgIlByb3RvY29sIGlzIFRMU3YxLjMiIFwKICAgICAgICAgIC1zICJnb3QgbmFtZWQgZ3JvdXA6IGZmZGhlMjA0OCgwMTAwKSIgXApAQCAtMTQ4NTgsOCArMTQ4NjAsOCBAQAogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgTUJFRFRMU19TU0xfVExTMV8zX0NPTVBBVElCSUxJVFlfTU9ERQogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgUFNBX1dBTlRfQUxHX0VDREgKIHJ1bl90ZXN0ICJUTFMgMS4zIG0tPm06IEhSUiB4MjU1MTkgLT4gc2VjcDI1NnIxIiBcCi0gICAgICAgICAiJFBfU1JWIGNydF9maWxlPWRhdGFfZmlsZXMvZWNkc2Ffc2VjcDI1NnIxLmNydCBrZXlfZmlsZT1kYXRhX2ZpbGVzL2VjZHNhX3NlY3AyNTZyMS5rZXkgZGVidWdfbGV2ZWw9NCBzaWdfYWxncz1lY2RzYV9zZWNwMjU2cjFfc2hhMjU2IGdyb3Vwcz1zZWNwMjU2cjEgdGxzMTNfa2V4X21vZGVzPWVwaGVtZXJhbCBjb29raWVzPTAgdGlja2V0cz0wIiBcCi0gICAgICAgICAiJFBfQ0xJIGNhX2ZpbGU9ZGF0YV9maWxlcy90ZXN0LWNhMi5jcnQgZGVidWdfbGV2ZWw9NCBzaWdfYWxncz1lY2RzYV9zZWNwMjU2cjFfc2hhMjU2IGdyb3Vwcz14MjU1MTksc2VjcDI1NnIxIiBcCisgICAgICAgICAiJFBfU1JWIGNydF9maWxlPSREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDI1NnIxLmNydCBrZXlfZmlsZT0kREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3AyNTZyMS5rZXkgZGVidWdfbGV2ZWw9NCBzaWdfYWxncz1lY2RzYV9zZWNwMjU2cjFfc2hhMjU2IGdyb3Vwcz1zZWNwMjU2cjEgdGxzMTNfa2V4X21vZGVzPWVwaGVtZXJhbCBjb29raWVzPTAgdGlja2V0cz0wIiBcCisgICAgICAgICAiJFBfQ0xJIGNhX2ZpbGU9JERBVEFfRklMRVNfUEFUSC90ZXN0LWNhMi5jcnQgZGVidWdfbGV2ZWw9NCBzaWdfYWxncz1lY2RzYV9zZWNwMjU2cjFfc2hhMjU2IGdyb3Vwcz14MjU1MTksc2VjcDI1NnIxIiBcCiAgICAgICAgICAwIFwKICAgICAgICAgIC1zICJQcm90b2NvbCBpcyBUTFN2MS4zIiBcCiAgICAgICAgICAtcyAiZ290IG5hbWVkIGdyb3VwOiBzZWNwMjU2cjEoMDAxNykiIFwKQEAgLTE0ODgzLDggKzE0ODg1LDggQEAKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIE1CRURUTFNfU1NMX1RMUzFfM19DT01QQVRJQklMSVRZX01PREUKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIFBTQV9XQU5UX0FMR19FQ0RICiBydW5fdGVzdCAiVExTIDEuMyBtLT5tOiBIUlIgeDI1NTE5IC0+IHNlY3AzODRyMSIgXAotICAgICAgICAgIiRQX1NSViBjcnRfZmlsZT1kYXRhX2ZpbGVzL2VjZHNhX3NlY3AyNTZyMS5jcnQga2V5X2ZpbGU9ZGF0YV9maWxlcy9lY2RzYV9zZWNwMjU2cjEua2V5IGRlYnVnX2xldmVsPTQgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDI1NnIxX3NoYTI1NiBncm91cHM9c2VjcDM4NHIxIHRsczEzX2tleF9tb2Rlcz1lcGhlbWVyYWwgY29va2llcz0wIHRpY2tldHM9MCIgXAotICAgICAgICAgIiRQX0NMSSBjYV9maWxlPWRhdGFfZmlsZXMvdGVzdC1jYTIuY3J0IGRlYnVnX2xldmVsPTQgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDI1NnIxX3NoYTI1NiBncm91cHM9eDI1NTE5LHNlY3AzODRyMSIgXAorICAgICAgICAgIiRQX1NSViBjcnRfZmlsZT0kREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3AyNTZyMS5jcnQga2V5X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwMjU2cjEua2V5IGRlYnVnX2xldmVsPTQgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDI1NnIxX3NoYTI1NiBncm91cHM9c2VjcDM4NHIxIHRsczEzX2tleF9tb2Rlcz1lcGhlbWVyYWwgY29va2llcz0wIHRpY2tldHM9MCIgXAorICAgICAgICAgIiRQX0NMSSBjYV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvdGVzdC1jYTIuY3J0IGRlYnVnX2xldmVsPTQgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDI1NnIxX3NoYTI1NiBncm91cHM9eDI1NTE5LHNlY3AzODRyMSIgXAogICAgICAgICAgMCBcCiAgICAgICAgICAtcyAiUHJvdG9jb2wgaXMgVExTdjEuMyIgXAogICAgICAgICAgLXMgImdvdCBuYW1lZCBncm91cDogc2VjcDM4NHIxKDAwMTgpIiBcCkBAIC0xNDkwOCw4ICsxNDkxMCw4IEBACiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBNQkVEVExTX1NTTF9UTFMxXzNfQ09NUEFUSUJJTElUWV9NT0RFCiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBQU0FfV0FOVF9BTEdfRUNESAogcnVuX3Rlc3QgIlRMUyAxLjMgbS0+bTogSFJSIHgyNTUxOSAtPiBzZWNwNTIxcjEiIFwKLSAgICAgICAgICIkUF9TUlYgY3J0X2ZpbGU9ZGF0YV9maWxlcy9lY2RzYV9zZWNwMjU2cjEuY3J0IGtleV9maWxlPWRhdGFfZmlsZXMvZWNkc2Ffc2VjcDI1NnIxLmtleSBkZWJ1Z19sZXZlbD00IHNpZ19hbGdzPWVjZHNhX3NlY3AyNTZyMV9zaGEyNTYgZ3JvdXBzPXNlY3A1MjFyMSB0bHMxM19rZXhfbW9kZXM9ZXBoZW1lcmFsIGNvb2tpZXM9MCB0aWNrZXRzPTAiIFwKLSAgICAgICAgICIkUF9DTEkgY2FfZmlsZT1kYXRhX2ZpbGVzL3Rlc3QtY2EyLmNydCBkZWJ1Z19sZXZlbD00IHNpZ19hbGdzPWVjZHNhX3NlY3AyNTZyMV9zaGEyNTYgZ3JvdXBzPXgyNTUxOSxzZWNwNTIxcjEiIFwKKyAgICAgICAgICIkUF9TUlYgY3J0X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwMjU2cjEuY3J0IGtleV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDI1NnIxLmtleSBkZWJ1Z19sZXZlbD00IHNpZ19hbGdzPWVjZHNhX3NlY3AyNTZyMV9zaGEyNTYgZ3JvdXBzPXNlY3A1MjFyMSB0bHMxM19rZXhfbW9kZXM9ZXBoZW1lcmFsIGNvb2tpZXM9MCB0aWNrZXRzPTAiIFwKKyAgICAgICAgICIkUF9DTEkgY2FfZmlsZT0kREFUQV9GSUxFU19QQVRIL3Rlc3QtY2EyLmNydCBkZWJ1Z19sZXZlbD00IHNpZ19hbGdzPWVjZHNhX3NlY3AyNTZyMV9zaGEyNTYgZ3JvdXBzPXgyNTUxOSxzZWNwNTIxcjEiIFwKICAgICAgICAgIDAgXAogICAgICAgICAgLXMgIlByb3RvY29sIGlzIFRMU3YxLjMiIFwKICAgICAgICAgIC1zICJnb3QgbmFtZWQgZ3JvdXA6IHNlY3A1MjFyMSgwMDE5KSIgXApAQCAtMTQ5MzMsOCArMTQ5MzUsOCBAQAogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgTUJFRFRMU19TU0xfVExTMV8zX0NPTVBBVElCSUxJVFlfTU9ERQogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgUFNBX1dBTlRfQUxHX0VDREgKIHJ1bl90ZXN0ICJUTFMgMS4zIG0tPm06IEhSUiB4MjU1MTkgLT4geDQ0OCIgXAotICAgICAgICAgIiRQX1NSViBjcnRfZmlsZT1kYXRhX2ZpbGVzL2VjZHNhX3NlY3AyNTZyMS5jcnQga2V5X2ZpbGU9ZGF0YV9maWxlcy9lY2RzYV9zZWNwMjU2cjEua2V5IGRlYnVnX2xldmVsPTQgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDI1NnIxX3NoYTI1NiBncm91cHM9eDQ0OCB0bHMxM19rZXhfbW9kZXM9ZXBoZW1lcmFsIGNvb2tpZXM9MCB0aWNrZXRzPTAiIFwKLSAgICAgICAgICIkUF9DTEkgY2FfZmlsZT1kYXRhX2ZpbGVzL3Rlc3QtY2EyLmNydCBkZWJ1Z19sZXZlbD00IHNpZ19hbGdzPWVjZHNhX3NlY3AyNTZyMV9zaGEyNTYgZ3JvdXBzPXgyNTUxOSx4NDQ4IiBcCisgICAgICAgICAiJFBfU1JWIGNydF9maWxlPSREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDI1NnIxLmNydCBrZXlfZmlsZT0kREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3AyNTZyMS5rZXkgZGVidWdfbGV2ZWw9NCBzaWdfYWxncz1lY2RzYV9zZWNwMjU2cjFfc2hhMjU2IGdyb3Vwcz14NDQ4IHRsczEzX2tleF9tb2Rlcz1lcGhlbWVyYWwgY29va2llcz0wIHRpY2tldHM9MCIgXAorICAgICAgICAgIiRQX0NMSSBjYV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvdGVzdC1jYTIuY3J0IGRlYnVnX2xldmVsPTQgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDI1NnIxX3NoYTI1NiBncm91cHM9eDI1NTE5LHg0NDgiIFwKICAgICAgICAgIDAgXAogICAgICAgICAgLXMgIlByb3RvY29sIGlzIFRMU3YxLjMiIFwKICAgICAgICAgIC1zICJnb3QgbmFtZWQgZ3JvdXA6IHg0NDgoMDAxZSkiIFwKQEAgLTE0OTYxLDggKzE0OTYzLDggQEAKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIFBTQV9XQU5UX0FMR19GRkRICiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBQU0FfV0FOVF9ESF9SRkM3OTE5XzIwNDgKIHJ1bl90ZXN0ICJUTFMgMS4zIG0tPm06IEhSUiB4MjU1MTkgLT4gZmZkaGUyMDQ4IiBcCi0gICAgICAgICAiJFBfU1JWIGNydF9maWxlPWRhdGFfZmlsZXMvZWNkc2Ffc2VjcDI1NnIxLmNydCBrZXlfZmlsZT1kYXRhX2ZpbGVzL2VjZHNhX3NlY3AyNTZyMS5rZXkgZGVidWdfbGV2ZWw9NCBzaWdfYWxncz1lY2RzYV9zZWNwMjU2cjFfc2hhMjU2IGdyb3Vwcz1mZmRoZTIwNDggdGxzMTNfa2V4X21vZGVzPWVwaGVtZXJhbCBjb29raWVzPTAgdGlja2V0cz0wIiBcCi0gICAgICAgICAiJFBfQ0xJIGNhX2ZpbGU9ZGF0YV9maWxlcy90ZXN0LWNhMi5jcnQgZGVidWdfbGV2ZWw9NCBzaWdfYWxncz1lY2RzYV9zZWNwMjU2cjFfc2hhMjU2IGdyb3Vwcz14MjU1MTksZmZkaGUyMDQ4IiBcCisgICAgICAgICAiJFBfU1JWIGNydF9maWxlPSREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDI1NnIxLmNydCBrZXlfZmlsZT0kREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3AyNTZyMS5rZXkgZGVidWdfbGV2ZWw9NCBzaWdfYWxncz1lY2RzYV9zZWNwMjU2cjFfc2hhMjU2IGdyb3Vwcz1mZmRoZTIwNDggdGxzMTNfa2V4X21vZGVzPWVwaGVtZXJhbCBjb29raWVzPTAgdGlja2V0cz0wIiBcCisgICAgICAgICAiJFBfQ0xJIGNhX2ZpbGU9JERBVEFfRklMRVNfUEFUSC90ZXN0LWNhMi5jcnQgZGVidWdfbGV2ZWw9NCBzaWdfYWxncz1lY2RzYV9zZWNwMjU2cjFfc2hhMjU2IGdyb3Vwcz14MjU1MTksZmZkaGUyMDQ4IiBcCiAgICAgICAgICAwIFwKICAgICAgICAgIC1zICJQcm90b2NvbCBpcyBUTFN2MS4zIiBcCiAgICAgICAgICAtcyAiZ290IG5hbWVkIGdyb3VwOiBmZmRoZTIwNDgoMDEwMCkiIFwKQEAgLTE0OTg2LDggKzE0OTg4LDggQEAKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIE1CRURUTFNfU1NMX1RMUzFfM19DT01QQVRJQklMSVRZX01PREUKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIFBTQV9XQU5UX0FMR19FQ0RICiBydW5fdGVzdCAiVExTIDEuMyBtLT5tOiBIUlIgeDQ0OCAtPiBzZWNwMjU2cjEiIFwKLSAgICAgICAgICIkUF9TUlYgY3J0X2ZpbGU9ZGF0YV9maWxlcy9lY2RzYV9zZWNwMjU2cjEuY3J0IGtleV9maWxlPWRhdGFfZmlsZXMvZWNkc2Ffc2VjcDI1NnIxLmtleSBkZWJ1Z19sZXZlbD00IHNpZ19hbGdzPWVjZHNhX3NlY3AyNTZyMV9zaGEyNTYgZ3JvdXBzPXNlY3AyNTZyMSB0bHMxM19rZXhfbW9kZXM9ZXBoZW1lcmFsIGNvb2tpZXM9MCB0aWNrZXRzPTAiIFwKLSAgICAgICAgICIkUF9DTEkgY2FfZmlsZT1kYXRhX2ZpbGVzL3Rlc3QtY2EyLmNydCBkZWJ1Z19sZXZlbD00IHNpZ19hbGdzPWVjZHNhX3NlY3AyNTZyMV9zaGEyNTYgZ3JvdXBzPXg0NDgsc2VjcDI1NnIxIiBcCisgICAgICAgICAiJFBfU1JWIGNydF9maWxlPSREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDI1NnIxLmNydCBrZXlfZmlsZT0kREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3AyNTZyMS5rZXkgZGVidWdfbGV2ZWw9NCBzaWdfYWxncz1lY2RzYV9zZWNwMjU2cjFfc2hhMjU2IGdyb3Vwcz1zZWNwMjU2cjEgdGxzMTNfa2V4X21vZGVzPWVwaGVtZXJhbCBjb29raWVzPTAgdGlja2V0cz0wIiBcCisgICAgICAgICAiJFBfQ0xJIGNhX2ZpbGU9JERBVEFfRklMRVNfUEFUSC90ZXN0LWNhMi5jcnQgZGVidWdfbGV2ZWw9NCBzaWdfYWxncz1lY2RzYV9zZWNwMjU2cjFfc2hhMjU2IGdyb3Vwcz14NDQ4LHNlY3AyNTZyMSIgXAogICAgICAgICAgMCBcCiAgICAgICAgICAtcyAiUHJvdG9jb2wgaXMgVExTdjEuMyIgXAogICAgICAgICAgLXMgImdvdCBuYW1lZCBncm91cDogc2VjcDI1NnIxKDAwMTcpIiBcCkBAIC0xNTAxMSw4ICsxNTAxMyw4IEBACiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBNQkVEVExTX1NTTF9UTFMxXzNfQ09NUEFUSUJJTElUWV9NT0RFCiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBQU0FfV0FOVF9BTEdfRUNESAogcnVuX3Rlc3QgIlRMUyAxLjMgbS0+bTogSFJSIHg0NDggLT4gc2VjcDM4NHIxIiBcCi0gICAgICAgICAiJFBfU1JWIGNydF9maWxlPWRhdGFfZmlsZXMvZWNkc2Ffc2VjcDI1NnIxLmNydCBrZXlfZmlsZT1kYXRhX2ZpbGVzL2VjZHNhX3NlY3AyNTZyMS5rZXkgZGVidWdfbGV2ZWw9NCBzaWdfYWxncz1lY2RzYV9zZWNwMjU2cjFfc2hhMjU2IGdyb3Vwcz1zZWNwMzg0cjEgdGxzMTNfa2V4X21vZGVzPWVwaGVtZXJhbCBjb29raWVzPTAgdGlja2V0cz0wIiBcCi0gICAgICAgICAiJFBfQ0xJIGNhX2ZpbGU9ZGF0YV9maWxlcy90ZXN0LWNhMi5jcnQgZGVidWdfbGV2ZWw9NCBzaWdfYWxncz1lY2RzYV9zZWNwMjU2cjFfc2hhMjU2IGdyb3Vwcz14NDQ4LHNlY3AzODRyMSIgXAorICAgICAgICAgIiRQX1NSViBjcnRfZmlsZT0kREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3AyNTZyMS5jcnQga2V5X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwMjU2cjEua2V5IGRlYnVnX2xldmVsPTQgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDI1NnIxX3NoYTI1NiBncm91cHM9c2VjcDM4NHIxIHRsczEzX2tleF9tb2Rlcz1lcGhlbWVyYWwgY29va2llcz0wIHRpY2tldHM9MCIgXAorICAgICAgICAgIiRQX0NMSSBjYV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvdGVzdC1jYTIuY3J0IGRlYnVnX2xldmVsPTQgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDI1NnIxX3NoYTI1NiBncm91cHM9eDQ0OCxzZWNwMzg0cjEiIFwKICAgICAgICAgIDAgXAogICAgICAgICAgLXMgIlByb3RvY29sIGlzIFRMU3YxLjMiIFwKICAgICAgICAgIC1zICJnb3QgbmFtZWQgZ3JvdXA6IHNlY3AzODRyMSgwMDE4KSIgXApAQCAtMTUwMzYsOCArMTUwMzgsOCBAQAogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgTUJFRFRMU19TU0xfVExTMV8zX0NPTVBBVElCSUxJVFlfTU9ERQogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgUFNBX1dBTlRfQUxHX0VDREgKIHJ1bl90ZXN0ICJUTFMgMS4zIG0tPm06IEhSUiB4NDQ4IC0+IHNlY3A1MjFyMSIgXAotICAgICAgICAgIiRQX1NSViBjcnRfZmlsZT1kYXRhX2ZpbGVzL2VjZHNhX3NlY3AyNTZyMS5jcnQga2V5X2ZpbGU9ZGF0YV9maWxlcy9lY2RzYV9zZWNwMjU2cjEua2V5IGRlYnVnX2xldmVsPTQgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDI1NnIxX3NoYTI1NiBncm91cHM9c2VjcDUyMXIxIHRsczEzX2tleF9tb2Rlcz1lcGhlbWVyYWwgY29va2llcz0wIHRpY2tldHM9MCIgXAotICAgICAgICAgIiRQX0NMSSBjYV9maWxlPWRhdGFfZmlsZXMvdGVzdC1jYTIuY3J0IGRlYnVnX2xldmVsPTQgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDI1NnIxX3NoYTI1NiBncm91cHM9eDQ0OCxzZWNwNTIxcjEiIFwKKyAgICAgICAgICIkUF9TUlYgY3J0X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwMjU2cjEuY3J0IGtleV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDI1NnIxLmtleSBkZWJ1Z19sZXZlbD00IHNpZ19hbGdzPWVjZHNhX3NlY3AyNTZyMV9zaGEyNTYgZ3JvdXBzPXNlY3A1MjFyMSB0bHMxM19rZXhfbW9kZXM9ZXBoZW1lcmFsIGNvb2tpZXM9MCB0aWNrZXRzPTAiIFwKKyAgICAgICAgICIkUF9DTEkgY2FfZmlsZT0kREFUQV9GSUxFU19QQVRIL3Rlc3QtY2EyLmNydCBkZWJ1Z19sZXZlbD00IHNpZ19hbGdzPWVjZHNhX3NlY3AyNTZyMV9zaGEyNTYgZ3JvdXBzPXg0NDgsc2VjcDUyMXIxIiBcCiAgICAgICAgICAwIFwKICAgICAgICAgIC1zICJQcm90b2NvbCBpcyBUTFN2MS4zIiBcCiAgICAgICAgICAtcyAiZ290IG5hbWVkIGdyb3VwOiBzZWNwNTIxcjEoMDAxOSkiIFwKQEAgLTE1MDYxLDggKzE1MDYzLDggQEAKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIE1CRURUTFNfU1NMX1RMUzFfM19DT01QQVRJQklMSVRZX01PREUKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIFBTQV9XQU5UX0FMR19FQ0RICiBydW5fdGVzdCAiVExTIDEuMyBtLT5tOiBIUlIgeDQ0OCAtPiB4MjU1MTkiIFwKLSAgICAgICAgICIkUF9TUlYgY3J0X2ZpbGU9ZGF0YV9maWxlcy9lY2RzYV9zZWNwMjU2cjEuY3J0IGtleV9maWxlPWRhdGFfZmlsZXMvZWNkc2Ffc2VjcDI1NnIxLmtleSBkZWJ1Z19sZXZlbD00IHNpZ19hbGdzPWVjZHNhX3NlY3AyNTZyMV9zaGEyNTYgZ3JvdXBzPXgyNTUxOSB0bHMxM19rZXhfbW9kZXM9ZXBoZW1lcmFsIGNvb2tpZXM9MCB0aWNrZXRzPTAiIFwKLSAgICAgICAgICIkUF9DTEkgY2FfZmlsZT1kYXRhX2ZpbGVzL3Rlc3QtY2EyLmNydCBkZWJ1Z19sZXZlbD00IHNpZ19hbGdzPWVjZHNhX3NlY3AyNTZyMV9zaGEyNTYgZ3JvdXBzPXg0NDgseDI1NTE5IiBcCisgICAgICAgICAiJFBfU1JWIGNydF9maWxlPSREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDI1NnIxLmNydCBrZXlfZmlsZT0kREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3AyNTZyMS5rZXkgZGVidWdfbGV2ZWw9NCBzaWdfYWxncz1lY2RzYV9zZWNwMjU2cjFfc2hhMjU2IGdyb3Vwcz14MjU1MTkgdGxzMTNfa2V4X21vZGVzPWVwaGVtZXJhbCBjb29raWVzPTAgdGlja2V0cz0wIiBcCisgICAgICAgICAiJFBfQ0xJIGNhX2ZpbGU9JERBVEFfRklMRVNfUEFUSC90ZXN0LWNhMi5jcnQgZGVidWdfbGV2ZWw9NCBzaWdfYWxncz1lY2RzYV9zZWNwMjU2cjFfc2hhMjU2IGdyb3Vwcz14NDQ4LHgyNTUxOSIgXAogICAgICAgICAgMCBcCiAgICAgICAgICAtcyAiUHJvdG9jb2wgaXMgVExTdjEuMyIgXAogICAgICAgICAgLXMgImdvdCBuYW1lZCBncm91cDogeDI1NTE5KDAwMWQpIiBcCkBAIC0xNTA4OSw4ICsxNTA5MSw4IEBACiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBQU0FfV0FOVF9BTEdfRkZESAogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgUFNBX1dBTlRfREhfUkZDNzkxOV8yMDQ4CiBydW5fdGVzdCAiVExTIDEuMyBtLT5tOiBIUlIgeDQ0OCAtPiBmZmRoZTIwNDgiIFwKLSAgICAgICAgICIkUF9TUlYgY3J0X2ZpbGU9ZGF0YV9maWxlcy9lY2RzYV9zZWNwMjU2cjEuY3J0IGtleV9maWxlPWRhdGFfZmlsZXMvZWNkc2Ffc2VjcDI1NnIxLmtleSBkZWJ1Z19sZXZlbD00IHNpZ19hbGdzPWVjZHNhX3NlY3AyNTZyMV9zaGEyNTYgZ3JvdXBzPWZmZGhlMjA0OCB0bHMxM19rZXhfbW9kZXM9ZXBoZW1lcmFsIGNvb2tpZXM9MCB0aWNrZXRzPTAiIFwKLSAgICAgICAgICIkUF9DTEkgY2FfZmlsZT1kYXRhX2ZpbGVzL3Rlc3QtY2EyLmNydCBkZWJ1Z19sZXZlbD00IHNpZ19hbGdzPWVjZHNhX3NlY3AyNTZyMV9zaGEyNTYgZ3JvdXBzPXg0NDgsZmZkaGUyMDQ4IiBcCisgICAgICAgICAiJFBfU1JWIGNydF9maWxlPSREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDI1NnIxLmNydCBrZXlfZmlsZT0kREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3AyNTZyMS5rZXkgZGVidWdfbGV2ZWw9NCBzaWdfYWxncz1lY2RzYV9zZWNwMjU2cjFfc2hhMjU2IGdyb3Vwcz1mZmRoZTIwNDggdGxzMTNfa2V4X21vZGVzPWVwaGVtZXJhbCBjb29raWVzPTAgdGlja2V0cz0wIiBcCisgICAgICAgICAiJFBfQ0xJIGNhX2ZpbGU9JERBVEFfRklMRVNfUEFUSC90ZXN0LWNhMi5jcnQgZGVidWdfbGV2ZWw9NCBzaWdfYWxncz1lY2RzYV9zZWNwMjU2cjFfc2hhMjU2IGdyb3Vwcz14NDQ4LGZmZGhlMjA0OCIgXAogICAgICAgICAgMCBcCiAgICAgICAgICAtcyAiUHJvdG9jb2wgaXMgVExTdjEuMyIgXAogICAgICAgICAgLXMgImdvdCBuYW1lZCBncm91cDogZmZkaGUyMDQ4KDAxMDApIiBcCkBAIC0xNTExNiw4ICsxNTExOCw4IEBACiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBQU0FfV0FOVF9BTEdfRkZESAogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgUFNBX1dBTlRfREhfUkZDNzkxOV8yMDQ4CiBydW5fdGVzdCAiVExTIDEuMyBtLT5tOiBIUlIgZmZkaGUyMDQ4IC0+IHNlY3AyNTZyMSIgXAotICAgICAgICAgIiRQX1NSViBjcnRfZmlsZT1kYXRhX2ZpbGVzL2VjZHNhX3NlY3AyNTZyMS5jcnQga2V5X2ZpbGU9ZGF0YV9maWxlcy9lY2RzYV9zZWNwMjU2cjEua2V5IGRlYnVnX2xldmVsPTQgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDI1NnIxX3NoYTI1NiBncm91cHM9c2VjcDI1NnIxIHRsczEzX2tleF9tb2Rlcz1lcGhlbWVyYWwgY29va2llcz0wIHRpY2tldHM9MCIgXAotICAgICAgICAgIiRQX0NMSSBjYV9maWxlPWRhdGFfZmlsZXMvdGVzdC1jYTIuY3J0IGRlYnVnX2xldmVsPTQgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDI1NnIxX3NoYTI1NiBncm91cHM9ZmZkaGUyMDQ4LHNlY3AyNTZyMSIgXAorICAgICAgICAgIiRQX1NSViBjcnRfZmlsZT0kREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3AyNTZyMS5jcnQga2V5X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwMjU2cjEua2V5IGRlYnVnX2xldmVsPTQgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDI1NnIxX3NoYTI1NiBncm91cHM9c2VjcDI1NnIxIHRsczEzX2tleF9tb2Rlcz1lcGhlbWVyYWwgY29va2llcz0wIHRpY2tldHM9MCIgXAorICAgICAgICAgIiRQX0NMSSBjYV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvdGVzdC1jYTIuY3J0IGRlYnVnX2xldmVsPTQgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDI1NnIxX3NoYTI1NiBncm91cHM9ZmZkaGUyMDQ4LHNlY3AyNTZyMSIgXAogICAgICAgICAgMCBcCiAgICAgICAgICAtcyAiUHJvdG9jb2wgaXMgVExTdjEuMyIgXAogICAgICAgICAgLXMgImdvdCBuYW1lZCBncm91cDogc2VjcDI1NnIxKDAwMTcpIiBcCkBAIC0xNTE0Myw4ICsxNTE0NSw4IEBACiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBQU0FfV0FOVF9BTEdfRkZESAogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgUFNBX1dBTlRfREhfUkZDNzkxOV8yMDQ4CiBydW5fdGVzdCAiVExTIDEuMyBtLT5tOiBIUlIgZmZkaGUyMDQ4IC0+IHNlY3AzODRyMSIgXAotICAgICAgICAgIiRQX1NSViBjcnRfZmlsZT1kYXRhX2ZpbGVzL2VjZHNhX3NlY3AyNTZyMS5jcnQga2V5X2ZpbGU9ZGF0YV9maWxlcy9lY2RzYV9zZWNwMjU2cjEua2V5IGRlYnVnX2xldmVsPTQgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDI1NnIxX3NoYTI1NiBncm91cHM9c2VjcDM4NHIxIHRsczEzX2tleF9tb2Rlcz1lcGhlbWVyYWwgY29va2llcz0wIHRpY2tldHM9MCIgXAotICAgICAgICAgIiRQX0NMSSBjYV9maWxlPWRhdGFfZmlsZXMvdGVzdC1jYTIuY3J0IGRlYnVnX2xldmVsPTQgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDI1NnIxX3NoYTI1NiBncm91cHM9ZmZkaGUyMDQ4LHNlY3AzODRyMSIgXAorICAgICAgICAgIiRQX1NSViBjcnRfZmlsZT0kREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3AyNTZyMS5jcnQga2V5X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwMjU2cjEua2V5IGRlYnVnX2xldmVsPTQgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDI1NnIxX3NoYTI1NiBncm91cHM9c2VjcDM4NHIxIHRsczEzX2tleF9tb2Rlcz1lcGhlbWVyYWwgY29va2llcz0wIHRpY2tldHM9MCIgXAorICAgICAgICAgIiRQX0NMSSBjYV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvdGVzdC1jYTIuY3J0IGRlYnVnX2xldmVsPTQgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDI1NnIxX3NoYTI1NiBncm91cHM9ZmZkaGUyMDQ4LHNlY3AzODRyMSIgXAogICAgICAgICAgMCBcCiAgICAgICAgICAtcyAiUHJvdG9jb2wgaXMgVExTdjEuMyIgXAogICAgICAgICAgLXMgImdvdCBuYW1lZCBncm91cDogc2VjcDM4NHIxKDAwMTgpIiBcCkBAIC0xNTE3MCw4ICsxNTE3Miw4IEBACiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBQU0FfV0FOVF9BTEdfRkZESAogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgUFNBX1dBTlRfREhfUkZDNzkxOV8yMDQ4CiBydW5fdGVzdCAiVExTIDEuMyBtLT5tOiBIUlIgZmZkaGUyMDQ4IC0+IHNlY3A1MjFyMSIgXAotICAgICAgICAgIiRQX1NSViBjcnRfZmlsZT1kYXRhX2ZpbGVzL2VjZHNhX3NlY3AyNTZyMS5jcnQga2V5X2ZpbGU9ZGF0YV9maWxlcy9lY2RzYV9zZWNwMjU2cjEua2V5IGRlYnVnX2xldmVsPTQgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDI1NnIxX3NoYTI1NiBncm91cHM9c2VjcDUyMXIxIHRsczEzX2tleF9tb2Rlcz1lcGhlbWVyYWwgY29va2llcz0wIHRpY2tldHM9MCIgXAotICAgICAgICAgIiRQX0NMSSBjYV9maWxlPWRhdGFfZmlsZXMvdGVzdC1jYTIuY3J0IGRlYnVnX2xldmVsPTQgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDI1NnIxX3NoYTI1NiBncm91cHM9ZmZkaGUyMDQ4LHNlY3A1MjFyMSIgXAorICAgICAgICAgIiRQX1NSViBjcnRfZmlsZT0kREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3AyNTZyMS5jcnQga2V5X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwMjU2cjEua2V5IGRlYnVnX2xldmVsPTQgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDI1NnIxX3NoYTI1NiBncm91cHM9c2VjcDUyMXIxIHRsczEzX2tleF9tb2Rlcz1lcGhlbWVyYWwgY29va2llcz0wIHRpY2tldHM9MCIgXAorICAgICAgICAgIiRQX0NMSSBjYV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvdGVzdC1jYTIuY3J0IGRlYnVnX2xldmVsPTQgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDI1NnIxX3NoYTI1NiBncm91cHM9ZmZkaGUyMDQ4LHNlY3A1MjFyMSIgXAogICAgICAgICAgMCBcCiAgICAgICAgICAtcyAiUHJvdG9jb2wgaXMgVExTdjEuMyIgXAogICAgICAgICAgLXMgImdvdCBuYW1lZCBncm91cDogc2VjcDUyMXIxKDAwMTkpIiBcCkBAIC0xNTE5Nyw4ICsxNTE5OSw4IEBACiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBQU0FfV0FOVF9BTEdfRkZESAogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgUFNBX1dBTlRfREhfUkZDNzkxOV8yMDQ4CiBydW5fdGVzdCAiVExTIDEuMyBtLT5tOiBIUlIgZmZkaGUyMDQ4IC0+IHgyNTUxOSIgXAotICAgICAgICAgIiRQX1NSViBjcnRfZmlsZT1kYXRhX2ZpbGVzL2VjZHNhX3NlY3AyNTZyMS5jcnQga2V5X2ZpbGU9ZGF0YV9maWxlcy9lY2RzYV9zZWNwMjU2cjEua2V5IGRlYnVnX2xldmVsPTQgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDI1NnIxX3NoYTI1NiBncm91cHM9eDI1NTE5IHRsczEzX2tleF9tb2Rlcz1lcGhlbWVyYWwgY29va2llcz0wIHRpY2tldHM9MCIgXAotICAgICAgICAgIiRQX0NMSSBjYV9maWxlPWRhdGFfZmlsZXMvdGVzdC1jYTIuY3J0IGRlYnVnX2xldmVsPTQgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDI1NnIxX3NoYTI1NiBncm91cHM9ZmZkaGUyMDQ4LHgyNTUxOSIgXAorICAgICAgICAgIiRQX1NSViBjcnRfZmlsZT0kREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3AyNTZyMS5jcnQga2V5X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwMjU2cjEua2V5IGRlYnVnX2xldmVsPTQgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDI1NnIxX3NoYTI1NiBncm91cHM9eDI1NTE5IHRsczEzX2tleF9tb2Rlcz1lcGhlbWVyYWwgY29va2llcz0wIHRpY2tldHM9MCIgXAorICAgICAgICAgIiRQX0NMSSBjYV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvdGVzdC1jYTIuY3J0IGRlYnVnX2xldmVsPTQgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDI1NnIxX3NoYTI1NiBncm91cHM9ZmZkaGUyMDQ4LHgyNTUxOSIgXAogICAgICAgICAgMCBcCiAgICAgICAgICAtcyAiUHJvdG9jb2wgaXMgVExTdjEuMyIgXAogICAgICAgICAgLXMgImdvdCBuYW1lZCBncm91cDogeDI1NTE5KDAwMWQpIiBcCkBAIC0xNTIyNCw4ICsxNTIyNiw4IEBACiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBQU0FfV0FOVF9BTEdfRkZESAogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgUFNBX1dBTlRfREhfUkZDNzkxOV8yMDQ4CiBydW5fdGVzdCAiVExTIDEuMyBtLT5tOiBIUlIgZmZkaGUyMDQ4IC0+IHg0NDgiIFwKLSAgICAgICAgICIkUF9TUlYgY3J0X2ZpbGU9ZGF0YV9maWxlcy9lY2RzYV9zZWNwMjU2cjEuY3J0IGtleV9maWxlPWRhdGFfZmlsZXMvZWNkc2Ffc2VjcDI1NnIxLmtleSBkZWJ1Z19sZXZlbD00IHNpZ19hbGdzPWVjZHNhX3NlY3AyNTZyMV9zaGEyNTYgZ3JvdXBzPXg0NDggdGxzMTNfa2V4X21vZGVzPWVwaGVtZXJhbCBjb29raWVzPTAgdGlja2V0cz0wIiBcCi0gICAgICAgICAiJFBfQ0xJIGNhX2ZpbGU9ZGF0YV9maWxlcy90ZXN0LWNhMi5jcnQgZGVidWdfbGV2ZWw9NCBzaWdfYWxncz1lY2RzYV9zZWNwMjU2cjFfc2hhMjU2IGdyb3Vwcz1mZmRoZTIwNDgseDQ0OCIgXAorICAgICAgICAgIiRQX1NSViBjcnRfZmlsZT0kREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3AyNTZyMS5jcnQga2V5X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwMjU2cjEua2V5IGRlYnVnX2xldmVsPTQgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDI1NnIxX3NoYTI1NiBncm91cHM9eDQ0OCB0bHMxM19rZXhfbW9kZXM9ZXBoZW1lcmFsIGNvb2tpZXM9MCB0aWNrZXRzPTAiIFwKKyAgICAgICAgICIkUF9DTEkgY2FfZmlsZT0kREFUQV9GSUxFU19QQVRIL3Rlc3QtY2EyLmNydCBkZWJ1Z19sZXZlbD00IHNpZ19hbGdzPWVjZHNhX3NlY3AyNTZyMV9zaGEyNTYgZ3JvdXBzPWZmZGhlMjA0OCx4NDQ4IiBcCiAgICAgICAgICAwIFwKICAgICAgICAgIC1zICJQcm90b2NvbCBpcyBUTFN2MS4zIiBcCiAgICAgICAgICAtcyAiZ290IG5hbWVkIGdyb3VwOiB4NDQ4KDAwMWUpIiBcCmRpZmYgLS1naXQgYS90ZXN0cy9vcHQtdGVzdGNhc2VzL3RsczEzLWtleC1tb2Rlcy5zaCBiL3Rlc3RzL29wdC10ZXN0Y2FzZXMvdGxzMTMta2V4LW1vZGVzLnNoCmluZGV4IGJkNGY4NzcuLjc4MmJkYTIgMTAwNzU1Ci0tLSBhL3Rlc3RzL29wdC10ZXN0Y2FzZXMvdGxzMTMta2V4LW1vZGVzLnNoCisrKyBiL3Rlc3RzL29wdC10ZXN0Y2FzZXMvdGxzMTMta2V4LW1vZGVzLnNoCkBAIC0yOTUxLDcgKzI5NTEsNyBAQAogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgTUJFRFRMU19TU0xfQ0xJX0MKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIE1CRURUTFNfU1NMX1RMUzFfM19LRVlfRVhDSEFOR0VfTU9ERV9QU0tfRU5BQkxFRAogcnVuX3Rlc3QgICAgIlRMUyAxLjM6IG0tPkc6IHBzay9hbGwsIGdvb2QiIFwKLSAgICAgICAgICAgICIkR19ORVhUX1NSViAtZCA0IC0tcHJpb3JpdHk9Tk9STUFMOi1WRVJTLUFMTDorVkVSUy1UTFMxLjM6LUtYLUFMTDorRUNESEUtUFNLOitESEUtUFNLOitQU0sgLS1wc2twYXNzd2Q9ZGF0YV9maWxlcy9zaW1wbGVwYXNzLnBzayIgXAorICAgICAgICAgICAgIiRHX05FWFRfU1JWIC1kIDQgLS1wcmlvcml0eT1OT1JNQUw6LVZFUlMtQUxMOitWRVJTLVRMUzEuMzotS1gtQUxMOitFQ0RIRS1QU0s6K0RIRS1QU0s6K1BTSyAtLXBza3Bhc3N3ZD0uLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9zaW1wbGVwYXNzLnBzayIgXAogICAgICAgICAgICAgIiRQX0NMSSBkZWJ1Z19sZXZlbD00IHBzaz0wMTAyMDMgcHNrX2lkZW50aXR5PTBhMGIwYyB0bHMxM19rZXhfbW9kZXM9cHNrIiBcCiAgICAgICAgICAgICAwIFwKICAgICAgICAgICAgIC1jICI9PiB3cml0ZSBjbGllbnQgaGVsbG8iIFwKQEAgLTI5NzEsNyArMjk3MSw3IEBACiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBNQkVEVExTX1NTTF9DTElfQwogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgTUJFRFRMU19TU0xfVExTMV8zX0tFWV9FWENIQU5HRV9NT0RFX1BTS19FTkFCTEVECiBydW5fdGVzdCAgICAiVExTIDEuMzogbS0+RzogcHNrL2VwaGVtZXJhbF9hbGwsIGZhaWwgLSBubyBjb21tb24ga2V4IG1vZGUiIFwKLSAgICAgICAgICAgICIkR19ORVhUX1NSViAtZCA0IC0tcHJpb3JpdHk9Tk9STUFMOi1WRVJTLUFMTDorVkVSUy1UTFMxLjM6LUtYLUFMTDorRUNESEUtUFNLOitESEUtUFNLOi1QU0sgLS1wc2twYXNzd2Q9ZGF0YV9maWxlcy9zaW1wbGVwYXNzLnBzayIgXAorICAgICAgICAgICAgIiRHX05FWFRfU1JWIC1kIDQgLS1wcmlvcml0eT1OT1JNQUw6LVZFUlMtQUxMOitWRVJTLVRMUzEuMzotS1gtQUxMOitFQ0RIRS1QU0s6K0RIRS1QU0s6LVBTSyAtLXBza3Bhc3N3ZD0uLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9zaW1wbGVwYXNzLnBzayIgXAogICAgICAgICAgICAgIiRQX0NMSSBkZWJ1Z19sZXZlbD00IHBzaz0wMTAyMDMgcHNrX2lkZW50aXR5PTBhMGIwYyB0bHMxM19rZXhfbW9kZXM9cHNrIiBcCiAgICAgICAgICAgICAxIFwKICAgICAgICAgICAgIC1jICI9PiB3cml0ZSBjbGllbnQgaGVsbG8iIFwKQEAgLTI5OTIsNyArMjk5Miw3IEBACiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBNQkVEVExTX1NTTF9UTFMxXzNfS0VZX0VYQ0hBTkdFX01PREVfUFNLX0VOQUJMRUQKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIE1CRURUTFNfU1NMX1RMUzFfM19LRVlfRVhDSEFOR0VfTU9ERV9QU0tfRVBIRU1FUkFMX0VOQUJMRUQKIHJ1bl90ZXN0ICAgICJUTFMgMS4zOiBtLT5HOiBwc2tfYWxsL2FsbCwgZ29vZCIgXAotICAgICAgICAgICAgIiRHX05FWFRfU1JWIC1kIDQgLS1wcmlvcml0eT1OT1JNQUw6LVZFUlMtQUxMOitWRVJTLVRMUzEuMzotS1gtQUxMOitFQ0RIRS1QU0s6K0RIRS1QU0s6K1BTSyAtLXBza3Bhc3N3ZD1kYXRhX2ZpbGVzL3NpbXBsZXBhc3MucHNrIiBcCisgICAgICAgICAgICAiJEdfTkVYVF9TUlYgLWQgNCAtLXByaW9yaXR5PU5PUk1BTDotVkVSUy1BTEw6K1ZFUlMtVExTMS4zOi1LWC1BTEw6K0VDREhFLVBTSzorREhFLVBTSzorUFNLIC0tcHNrcGFzc3dkPS4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3NpbXBsZXBhc3MucHNrIiBcCiAgICAgICAgICAgICAiJFBfQ0xJIGRlYnVnX2xldmVsPTQgcHNrPTAxMDIwMyBwc2tfaWRlbnRpdHk9MGEwYjBjIHRsczEzX2tleF9tb2Rlcz1wc2tfYWxsIiBcCiAgICAgICAgICAgICAwIFwKICAgICAgICAgICAgIC1jICI9PiB3cml0ZSBjbGllbnQgaGVsbG8iIFwKQEAgLTMwMTMsNyArMzAxMyw3IEBACiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBNQkVEVExTX1NTTF9UTFMxXzNfS0VZX0VYQ0hBTkdFX01PREVfUFNLX0VOQUJMRUQKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIE1CRURUTFNfU1NMX1RMUzFfM19LRVlfRVhDSEFOR0VfTU9ERV9QU0tfRVBIRU1FUkFMX0VOQUJMRUQKIHJ1bl90ZXN0ICAgICJUTFMgMS4zOiBtLT5HOiBwc2tfYWxsL2VwaGVtZXJhbF9hbGwsIGdvb2QiIFwKLSAgICAgICAgICAgICIkR19ORVhUX1NSViAtZCA0IC0tcHJpb3JpdHk9Tk9STUFMOi1WRVJTLUFMTDorVkVSUy1UTFMxLjM6LUtYLUFMTDorRUNESEUtUFNLOitESEUtUFNLOi1QU0sgLS1wc2twYXNzd2Q9ZGF0YV9maWxlcy9zaW1wbGVwYXNzLnBzayIgXAorICAgICAgICAgICAgIiRHX05FWFRfU1JWIC1kIDQgLS1wcmlvcml0eT1OT1JNQUw6LVZFUlMtQUxMOitWRVJTLVRMUzEuMzotS1gtQUxMOitFQ0RIRS1QU0s6K0RIRS1QU0s6LVBTSyAtLXBza3Bhc3N3ZD0uLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9zaW1wbGVwYXNzLnBzayIgXAogICAgICAgICAgICAgIiRQX0NMSSBkZWJ1Z19sZXZlbD00IHBzaz0wMTAyMDMgcHNrX2lkZW50aXR5PTBhMGIwYyB0bHMxM19rZXhfbW9kZXM9cHNrX2FsbCIgXAogICAgICAgICAgICAgMCBcCiAgICAgICAgICAgICAtYyAiPT4gd3JpdGUgY2xpZW50IGhlbGxvIiBcCkBAIC0zMDM0LDcgKzMwMzQsNyBAQAogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgTUJFRFRMU19TU0xfQ0xJX0MKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIE1CRURUTFNfU1NMX1RMUzFfM19LRVlfRVhDSEFOR0VfTU9ERV9QU0tfRVBIRU1FUkFMX0VOQUJMRUQKIHJ1bl90ZXN0ICAgICJUTFMgMS4zOiBtLT5HOiBwc2tfZXBoZW1lcmFsL2FsbCwgZ29vZCIgXAotICAgICAgICAgICAgIiRHX05FWFRfU1JWIC1kIDQgLS1wcmlvcml0eT1OT1JNQUw6LVZFUlMtQUxMOitWRVJTLVRMUzEuMzotS1gtQUxMOitFQ0RIRS1QU0s6K0RIRS1QU0s6K1BTSyAtLXBza3Bhc3N3ZD1kYXRhX2ZpbGVzL3NpbXBsZXBhc3MucHNrIiBcCisgICAgICAgICAgICAiJEdfTkVYVF9TUlYgLWQgNCAtLXByaW9yaXR5PU5PUk1BTDotVkVSUy1BTEw6K1ZFUlMtVExTMS4zOi1LWC1BTEw6K0VDREhFLVBTSzorREhFLVBTSzorUFNLIC0tcHNrcGFzc3dkPS4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3NpbXBsZXBhc3MucHNrIiBcCiAgICAgICAgICAgICAiJFBfQ0xJIGRlYnVnX2xldmVsPTQgcHNrPTAxMDIwMyBwc2tfaWRlbnRpdHk9MGEwYjBjIHRsczEzX2tleF9tb2Rlcz1wc2tfZXBoZW1lcmFsIiBcCiAgICAgICAgICAgICAwIFwKICAgICAgICAgICAgIC1jICI9PiB3cml0ZSBjbGllbnQgaGVsbG8iIFwKQEAgLTMwNTQsNyArMzA1NCw3IEBACiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBNQkVEVExTX1NTTF9DTElfQwogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgTUJFRFRMU19TU0xfVExTMV8zX0tFWV9FWENIQU5HRV9NT0RFX1BTS19FUEhFTUVSQUxfRU5BQkxFRAogcnVuX3Rlc3QgICAgIlRMUyAxLjM6IG0tPkc6IHBza19lcGhlbWVyYWwvZXBoZW1lcmFsX2FsbCwgZ29vZCIgXAotICAgICAgICAgICAgIiRHX05FWFRfU1JWIC1kIDQgLS1wcmlvcml0eT1OT1JNQUw6LVZFUlMtQUxMOitWRVJTLVRMUzEuMzotS1gtQUxMOitFQ0RIRS1QU0s6K0RIRS1QU0s6LVBTSyAtLXBza3Bhc3N3ZD1kYXRhX2ZpbGVzL3NpbXBsZXBhc3MucHNrIiBcCisgICAgICAgICAgICAiJEdfTkVYVF9TUlYgLWQgNCAtLXByaW9yaXR5PU5PUk1BTDotVkVSUy1BTEw6K1ZFUlMtVExTMS4zOi1LWC1BTEw6K0VDREhFLVBTSzorREhFLVBTSzotUFNLIC0tcHNrcGFzc3dkPS4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3NpbXBsZXBhc3MucHNrIiBcCiAgICAgICAgICAgICAiJFBfQ0xJIGRlYnVnX2xldmVsPTQgcHNrPTAxMDIwMyBwc2tfaWRlbnRpdHk9MGEwYjBjIHRsczEzX2tleF9tb2Rlcz1wc2tfZXBoZW1lcmFsIiBcCiAgICAgICAgICAgICAwIFwKICAgICAgICAgICAgIC1jICI9PiB3cml0ZSBjbGllbnQgaGVsbG8iIFwKQEAgLTMwNzUsNyArMzA3NSw3IEBACiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBNQkVEVExTX1NTTF9DTElfQwogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgTUJFRFRMU19TU0xfVExTMV8zX0tFWV9FWENIQU5HRV9NT0RFX0VQSEVNRVJBTF9FTkFCTEVECiBydW5fdGVzdCAgICAiVExTIDEuMzogbS0+RzogZXBoZW1lcmFsL2FsbCwgZ29vZCIgXAotICAgICAgICAgICAgIiRHX05FWFRfU1JWIC1kIDQgLS1wcmlvcml0eT1OT1JNQUw6LVZFUlMtQUxMOitWRVJTLVRMUzEuMzotS1gtQUxMOitFQ0RIRS1QU0s6K0RIRS1QU0s6K1BTSyAtLXBza3Bhc3N3ZD1kYXRhX2ZpbGVzL3NpbXBsZXBhc3MucHNrIiBcCisgICAgICAgICAgICAiJEdfTkVYVF9TUlYgLWQgNCAtLXByaW9yaXR5PU5PUk1BTDotVkVSUy1BTEw6K1ZFUlMtVExTMS4zOi1LWC1BTEw6K0VDREhFLVBTSzorREhFLVBTSzorUFNLIC0tcHNrcGFzc3dkPS4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3NpbXBsZXBhc3MucHNrIiBcCiAgICAgICAgICAgICAiJFBfQ0xJIGRlYnVnX2xldmVsPTQgcHNrPTAxMDIwMyBwc2tfaWRlbnRpdHk9MGEwYjBjIHRsczEzX2tleF9tb2Rlcz1lcGhlbWVyYWwiIFwKICAgICAgICAgICAgIDAgXAogICAgICAgICAgICAgLWMgIlNlbGVjdGVkIGtleSBleGNoYW5nZSBtb2RlOiBlcGhlbWVyYWwiIFwKQEAgLTMwODgsNyArMzA4OCw3IEBACiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBNQkVEVExTX1NTTF9DTElfQwogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgTUJFRFRMU19TU0xfVExTMV8zX0tFWV9FWENIQU5HRV9NT0RFX0VQSEVNRVJBTF9FTkFCTEVECiBydW5fdGVzdCAgICAiVExTIDEuMzogbS0+RzogZXBoZW1lcmFsL2VwaGVtZXJhbF9hbGwsIGdvb2QiIFwKLSAgICAgICAgICAgICIkR19ORVhUX1NSViAtZCA0IC0tcHJpb3JpdHk9Tk9STUFMOi1WRVJTLUFMTDorVkVSUy1UTFMxLjM6LUtYLUFMTDorRUNESEUtUFNLOitESEUtUFNLOi1QU0sgLS1wc2twYXNzd2Q9ZGF0YV9maWxlcy9zaW1wbGVwYXNzLnBzayIgXAorICAgICAgICAgICAgIiRHX05FWFRfU1JWIC1kIDQgLS1wcmlvcml0eT1OT1JNQUw6LVZFUlMtQUxMOitWRVJTLVRMUzEuMzotS1gtQUxMOitFQ0RIRS1QU0s6K0RIRS1QU0s6LVBTSyAtLXBza3Bhc3N3ZD0uLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9zaW1wbGVwYXNzLnBzayIgXAogICAgICAgICAgICAgIiRQX0NMSSBkZWJ1Z19sZXZlbD00IHBzaz0wMTAyMDMgcHNrX2lkZW50aXR5PTBhMGIwYyB0bHMxM19rZXhfbW9kZXM9ZXBoZW1lcmFsIiBcCiAgICAgICAgICAgICAwIFwKICAgICAgICAgICAgIC1jICJTZWxlY3RlZCBrZXkgZXhjaGFuZ2UgbW9kZTogZXBoZW1lcmFsIiBcCkBAIC0zMTAzLDcgKzMxMDMsNyBAQAogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgTUJFRFRMU19TU0xfVExTMV8zX0tFWV9FWENIQU5HRV9NT0RFX0VQSEVNRVJBTF9FTkFCTEVECiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBNQkVEVExTX1NTTF9UTFMxXzNfS0VZX0VYQ0hBTkdFX01PREVfUFNLX0VQSEVNRVJBTF9FTkFCTEVECiBydW5fdGVzdCAgICAiVExTIDEuMzogbS0+RzogZXBoZW1lcmFsX2FsbC9hbGwsIGdvb2QiIFwKLSAgICAgICAgICAgICIkR19ORVhUX1NSViAtZCA0IC0tcHJpb3JpdHk9Tk9STUFMOi1WRVJTLUFMTDorVkVSUy1UTFMxLjM6LUtYLUFMTDorRUNESEUtUFNLOitESEUtUFNLOitQU0sgLS1wc2twYXNzd2Q9ZGF0YV9maWxlcy9zaW1wbGVwYXNzLnBzayIgXAorICAgICAgICAgICAgIiRHX05FWFRfU1JWIC1kIDQgLS1wcmlvcml0eT1OT1JNQUw6LVZFUlMtQUxMOitWRVJTLVRMUzEuMzotS1gtQUxMOitFQ0RIRS1QU0s6K0RIRS1QU0s6K1BTSyAtLXBza3Bhc3N3ZD0uLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9zaW1wbGVwYXNzLnBzayIgXAogICAgICAgICAgICAgIiRQX0NMSSBkZWJ1Z19sZXZlbD00IHBzaz0wMTAyMDMgcHNrX2lkZW50aXR5PTBhMGIwYyB0bHMxM19rZXhfbW9kZXM9ZXBoZW1lcmFsX2FsbCIgXAogICAgICAgICAgICAgMCBcCiAgICAgICAgICAgICAtYyAiPT4gd3JpdGUgY2xpZW50IGhlbGxvIiBcCkBAIC0zMTI0LDcgKzMxMjQsNyBAQAogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgTUJFRFRMU19TU0xfVExTMV8zX0tFWV9FWENIQU5HRV9NT0RFX0VQSEVNRVJBTF9FTkFCTEVECiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBNQkVEVExTX1NTTF9UTFMxXzNfS0VZX0VYQ0hBTkdFX01PREVfUFNLX0VQSEVNRVJBTF9FTkFCTEVECiBydW5fdGVzdCAgICAiVExTIDEuMzogbS0+RzogZXBoZW1lcmFsX2FsbC9lcGhlbWVyYWxfYWxsLCBnb29kIiBcCi0gICAgICAgICAgICAiJEdfTkVYVF9TUlYgLWQgNCAtLXByaW9yaXR5PU5PUk1BTDotVkVSUy1BTEw6K1ZFUlMtVExTMS4zOi1LWC1BTEw6K0VDREhFLVBTSzorREhFLVBTSzotUFNLIC0tcHNrcGFzc3dkPWRhdGFfZmlsZXMvc2ltcGxlcGFzcy5wc2siIFwKKyAgICAgICAgICAgICIkR19ORVhUX1NSViAtZCA0IC0tcHJpb3JpdHk9Tk9STUFMOi1WRVJTLUFMTDorVkVSUy1UTFMxLjM6LUtYLUFMTDorRUNESEUtUFNLOitESEUtUFNLOi1QU0sgLS1wc2twYXNzd2Q9Li4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvc2ltcGxlcGFzcy5wc2siIFwKICAgICAgICAgICAgICIkUF9DTEkgZGVidWdfbGV2ZWw9NCBwc2s9MDEwMjAzIHBza19pZGVudGl0eT0wYTBiMGMgdGxzMTNfa2V4X21vZGVzPWVwaGVtZXJhbF9hbGwiIFwKICAgICAgICAgICAgIDAgXAogICAgICAgICAgICAgLWMgIj0+IHdyaXRlIGNsaWVudCBoZWxsbyIgXApAQCAtMzE0Nyw3ICszMTQ3LDcgQEAKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIE1CRURUTFNfU1NMX1RMUzFfM19LRVlfRVhDSEFOR0VfTU9ERV9FUEhFTUVSQUxfRU5BQkxFRAogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgTUJFRFRMU19TU0xfVExTMV8zX0tFWV9FWENIQU5HRV9NT0RFX1BTS19FUEhFTUVSQUxfRU5BQkxFRAogcnVuX3Rlc3QgICAgIlRMUyAxLjM6IG0tPkc6IGFsbC9hbGwsIGdvb2QiIFwKLSAgICAgICAgICAgICIkR19ORVhUX1NSViAtZCA0IC0tcHJpb3JpdHk9Tk9STUFMOi1WRVJTLUFMTDorVkVSUy1UTFMxLjM6LUtYLUFMTDorRUNESEUtUFNLOitESEUtUFNLOitQU0sgLS1wc2twYXNzd2Q9ZGF0YV9maWxlcy9zaW1wbGVwYXNzLnBzayIgXAorICAgICAgICAgICAgIiRHX05FWFRfU1JWIC1kIDQgLS1wcmlvcml0eT1OT1JNQUw6LVZFUlMtQUxMOitWRVJTLVRMUzEuMzotS1gtQUxMOitFQ0RIRS1QU0s6K0RIRS1QU0s6K1BTSyAtLXBza3Bhc3N3ZD0uLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9zaW1wbGVwYXNzLnBzayIgXAogICAgICAgICAgICAgIiRQX0NMSSBkZWJ1Z19sZXZlbD00IHBzaz0wMTAyMDMgcHNrX2lkZW50aXR5PTBhMGIwYyB0bHMxM19rZXhfbW9kZXM9YWxsIiBcCiAgICAgICAgICAgICAwIFwKICAgICAgICAgICAgIC1jICI9PiB3cml0ZSBjbGllbnQgaGVsbG8iIFwKQEAgLTMxNjksNyArMzE2OSw3IEBACiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBNQkVEVExTX1NTTF9UTFMxXzNfS0VZX0VYQ0hBTkdFX01PREVfRVBIRU1FUkFMX0VOQUJMRUQKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIE1CRURUTFNfU1NMX1RMUzFfM19LRVlfRVhDSEFOR0VfTU9ERV9QU0tfRVBIRU1FUkFMX0VOQUJMRUQKIHJ1bl90ZXN0ICAgICJUTFMgMS4zOiBtLT5HOiBhbGwvZXBoZW1lcmFsX2FsbCwgZ29vZCIgXAotICAgICAgICAgICAgIiRHX05FWFRfU1JWIC1kIDQgLS1wcmlvcml0eT1OT1JNQUw6LVZFUlMtQUxMOitWRVJTLVRMUzEuMzotS1gtQUxMOitFQ0RIRS1QU0s6K0RIRS1QU0s6LVBTSyAtLXBza3Bhc3N3ZD1kYXRhX2ZpbGVzL3NpbXBsZXBhc3MucHNrIiBcCisgICAgICAgICAgICAiJEdfTkVYVF9TUlYgLWQgNCAtLXByaW9yaXR5PU5PUk1BTDotVkVSUy1BTEw6K1ZFUlMtVExTMS4zOi1LWC1BTEw6K0VDREhFLVBTSzorREhFLVBTSzotUFNLIC0tcHNrcGFzc3dkPS4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3NpbXBsZXBhc3MucHNrIiBcCiAgICAgICAgICAgICAiJFBfQ0xJIGRlYnVnX2xldmVsPTQgcHNrPTAxMDIwMyBwc2tfaWRlbnRpdHk9MGEwYjBjIHRsczEzX2tleF9tb2Rlcz1hbGwiIFwKICAgICAgICAgICAgIDAgXAogICAgICAgICAgICAgLWMgIj0+IHdyaXRlIGNsaWVudCBoZWxsbyIgXApkaWZmIC0tZ2l0IGEvdGVzdHMvb3B0LXRlc3RjYXNlcy90bHMxMy1taXNjLnNoIGIvdGVzdHMvb3B0LXRlc3RjYXNlcy90bHMxMy1taXNjLnNoCmluZGV4IDEwYmJmMTkuLjlkNTg3MGQgMTAwNzU1Ci0tLSBhL3Rlc3RzL29wdC10ZXN0Y2FzZXMvdGxzMTMtbWlzYy5zaAorKysgYi90ZXN0cy9vcHQtdGVzdGNhc2VzL3RsczEzLW1pc2Muc2gKQEAgLTE0Niw3ICsxNDYsNyBAQAogcmVxdWlyZXNfYW55X2NvbmZpZ3NfZW5hYmxlZCBNQkVEVExTX1NTTF9UTFMxXzNfS0VZX0VYQ0hBTkdFX01PREVfUFNLX0VOQUJMRUQgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNQkVEVExTX1NTTF9UTFMxXzNfS0VZX0VYQ0hBTkdFX01PREVfUFNLX0VQSEVNRVJBTF9FTkFCTEVECiBydW5fdGVzdCAiVExTIDEuMyBtLT5tOiByZXN1bXB0aW9uIiBcCi0gICAgICAgICAiJFBfU1JWIGRlYnVnX2xldmVsPTIgY3J0X2ZpbGU9ZGF0YV9maWxlcy9zZXJ2ZXI1LmNydCBrZXlfZmlsZT1kYXRhX2ZpbGVzL3NlcnZlcjUua2V5IiBcCisgICAgICAgICAiJFBfU1JWIGRlYnVnX2xldmVsPTIgY3J0X2ZpbGU9Li4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvc2VydmVyNS5jcnQga2V5X2ZpbGU9Li4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvc2VydmVyNS5rZXkiIFwKICAgICAgICAgICIkUF9DTEkgcmVjb19tb2RlPTEgcmVjb25uZWN0PTEiIFwKICAgICAgICAgIDAgXAogICAgICAgICAgLWMgIlByb3RvY29sIGlzIFRMU3YxLjMiIFwKQEAgLTE2NSw4ICsxNjUsOCBAQAogcmVxdWlyZXNfYW55X2NvbmZpZ3NfZW5hYmxlZCBNQkVEVExTX1NTTF9UTFMxXzNfS0VZX0VYQ0hBTkdFX01PREVfUFNLX0VOQUJMRUQgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNQkVEVExTX1NTTF9UTFMxXzNfS0VZX0VYQ0hBTkdFX01PREVfUFNLX0VQSEVNRVJBTF9FTkFCTEVECiBydW5fdGVzdCAiVExTIDEuMyBtLT5tOiByZXN1bXB0aW9uIHdpdGggc2VydmVybmFtZSIgXAotICAgICAgICAgIiRQX1NSViBkZWJ1Z19sZXZlbD0yIGNydF9maWxlPWRhdGFfZmlsZXMvc2VydmVyNS5jcnQga2V5X2ZpbGU9ZGF0YV9maWxlcy9zZXJ2ZXI1LmtleSBcCi0gICAgICAgICAgICBzbmk9bG9jYWxob3N0LGRhdGFfZmlsZXMvc2VydmVyMi5jcnQsZGF0YV9maWxlcy9zZXJ2ZXIyLmtleSwtLC0sLSxwb2xhcnNzbC5leGFtcGxlLGRhdGFfZmlsZXMvc2VydmVyMS1ub3NwYWNlLmNydCxkYXRhX2ZpbGVzL3NlcnZlcjEua2V5LC0sLSwtIiBcCisgICAgICAgICAiJFBfU1JWIGRlYnVnX2xldmVsPTIgY3J0X2ZpbGU9Li4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvc2VydmVyNS5jcnQga2V5X2ZpbGU9Li4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvc2VydmVyNS5rZXkgXAorICAgICAgICAgICAgc25pPWxvY2FsaG9zdCwuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9zZXJ2ZXIyLmNydCwuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9zZXJ2ZXIyLmtleSwtLC0sLSxwb2xhcnNzbC5leGFtcGxlLC4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3NlcnZlcjEtbm9zcGFjZS5jcnQsLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvc2VydmVyMS5rZXksLSwtLC0iIFwKICAgICAgICAgICIkUF9DTEkgc2VydmVyX25hbWU9bG9jYWxob3N0IHJlY29fbW9kZT0xIHJlY29ubmVjdD0xIiBcCiAgICAgICAgICAwIFwKICAgICAgICAgIC1jICJQcm90b2NvbCBpcyBUTFN2MS4zIiBcCkBAIC0xODUsNyArMTg1LDcgQEAKIHJlcXVpcmVzX2FueV9jb25maWdzX2VuYWJsZWQgTUJFRFRMU19TU0xfVExTMV8zX0tFWV9FWENIQU5HRV9NT0RFX1BTS19FTkFCTEVEIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTUJFRFRMU19TU0xfVExTMV8zX0tFWV9FWENIQU5HRV9NT0RFX1BTS19FUEhFTUVSQUxfRU5BQkxFRAogcnVuX3Rlc3QgIlRMUyAxLjMgbS0+bTogcmVzdW1wdGlvbiB3aXRoIHRpY2tldCBtYXggbGlmZXRpbWUgKDdkKSIgXAotICAgICAgICAgIiRQX1NSViBkZWJ1Z19sZXZlbD0yIGNydF9maWxlPWRhdGFfZmlsZXMvc2VydmVyNS5jcnQga2V5X2ZpbGU9ZGF0YV9maWxlcy9zZXJ2ZXI1LmtleSB0aWNrZXRfdGltZW91dD02MDQ4MDAgdGlja2V0cz0xIiBcCisgICAgICAgICAiJFBfU1JWIGRlYnVnX2xldmVsPTIgY3J0X2ZpbGU9Li4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvc2VydmVyNS5jcnQga2V5X2ZpbGU9Li4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvc2VydmVyNS5rZXkgdGlja2V0X3RpbWVvdXQ9NjA0ODAwIHRpY2tldHM9MSIgXAogICAgICAgICAgIiRQX0NMSSByZWNvX21vZGU9MSByZWNvbm5lY3Q9MSIgXAogICAgICAgICAgMCBcCiAgICAgICAgICAtYyAiUHJvdG9jb2wgaXMgVExTdjEuMyIgXApAQCAtMjA1LDcgKzIwNSw3IEBACiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1CRURUTFNfU1NMX1RMUzFfM19LRVlfRVhDSEFOR0VfTU9ERV9QU0tfRVBIRU1FUkFMX0VOQUJMRUQKIHJlcXVpcmVzX2NpcGhlcnN1aXRlX2VuYWJsZWQgVExTMS0zLUFFUy0yNTYtR0NNLVNIQTM4NAogcnVuX3Rlc3QgIlRMUyAxLjMgbS0+bTogcmVzdW1wdGlvbiB3aXRoIEFFUy0yNTYtR0NNLVNIQTM4NCBvbmx5IiBcCi0gICAgICAgICAiJFBfU1JWIGRlYnVnX2xldmVsPTIgY3J0X2ZpbGU9ZGF0YV9maWxlcy9zZXJ2ZXI1LmNydCBrZXlfZmlsZT1kYXRhX2ZpbGVzL3NlcnZlcjUua2V5IiBcCisgICAgICAgICAiJFBfU1JWIGRlYnVnX2xldmVsPTIgY3J0X2ZpbGU9Li4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvc2VydmVyNS5jcnQga2V5X2ZpbGU9Li4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvc2VydmVyNS5rZXkiIFwKICAgICAgICAgICIkUF9DTEkgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0yNTYtR0NNLVNIQTM4NCByZWNvX21vZGU9MSByZWNvbm5lY3Q9MSIgXAogICAgICAgICAgMCBcCiAgICAgICAgICAtYyAiUHJvdG9jb2wgaXMgVExTdjEuMyIgXApAQCAtMjI1LDcgKzIyNSw3IEBACiByZXF1aXJlc19hbnlfY29uZmlnc19lbmFibGVkIE1CRURUTFNfU1NMX1RMUzFfM19LRVlfRVhDSEFOR0VfTU9ERV9QU0tfRU5BQkxFRCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1CRURUTFNfU1NMX1RMUzFfM19LRVlfRVhDSEFOR0VfTU9ERV9QU0tfRVBIRU1FUkFMX0VOQUJMRUQKIHJ1bl90ZXN0ICJUTFMgMS4zIG0tPm06IHJlc3VtcHRpb24gd2l0aCBlYXJseSBkYXRhIiBcCi0gICAgICAgICAiJFBfU1JWIGRlYnVnX2xldmVsPTQgZWFybHlfZGF0YT0xIGNydF9maWxlPWRhdGFfZmlsZXMvc2VydmVyNS5jcnQga2V5X2ZpbGU9ZGF0YV9maWxlcy9zZXJ2ZXI1LmtleSIgXAorICAgICAgICAgIiRQX1NSViBkZWJ1Z19sZXZlbD00IGVhcmx5X2RhdGE9MSBjcnRfZmlsZT0uLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9zZXJ2ZXI1LmNydCBrZXlfZmlsZT0uLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9zZXJ2ZXI1LmtleSIgXAogICAgICAgICAgIiRQX0NMSSBkZWJ1Z19sZXZlbD0zIGVhcmx5X2RhdGE9MSByZWNvX21vZGU9MSByZWNvbm5lY3Q9MSIgXAogICAgICAgICAgMCBcCiAgICAgICAgICAtYyAiUHJvdG9jb2wgaXMgVExTdjEuMyIgXApAQCAtMjU2LDcgKzI1Niw3IEBACiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1CRURUTFNfU1NMX1RMUzFfM19LRVlfRVhDSEFOR0VfTU9ERV9QU0tfRVBIRU1FUkFMX0VOQUJMRUQKIHJlcXVpcmVzX2NpcGhlcnN1aXRlX2VuYWJsZWQgVExTMS0zLUFFUy0yNTYtR0NNLVNIQTM4NAogcnVuX3Rlc3QgIlRMUyAxLjMgbS0+bTogcmVzdW1wdGlvbiB3aXRoIGVhcmx5IGRhdGEsIEFFUy0yNTYtR0NNLVNIQTM4NCBvbmx5IiBcCi0gICAgICAgICAiJFBfU1JWIGRlYnVnX2xldmVsPTQgZWFybHlfZGF0YT0xIGNydF9maWxlPWRhdGFfZmlsZXMvc2VydmVyNS5jcnQga2V5X2ZpbGU9ZGF0YV9maWxlcy9zZXJ2ZXI1LmtleSIgXAorICAgICAgICAgIiRQX1NSViBkZWJ1Z19sZXZlbD00IGVhcmx5X2RhdGE9MSBjcnRfZmlsZT0uLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9zZXJ2ZXI1LmNydCBrZXlfZmlsZT0uLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9zZXJ2ZXI1LmtleSIgXAogICAgICAgICAgIiRQX0NMSSBkZWJ1Z19sZXZlbD0zIGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMjU2LUdDTS1TSEEzODQgZWFybHlfZGF0YT0xIHJlY29fbW9kZT0xIHJlY29ubmVjdD0xIiBcCiAgICAgICAgICAwIFwKICAgICAgICAgIC1jICJQcm90b2NvbCBpcyBUTFN2MS4zIiBcCkBAIC0yODcsNyArMjg3LDcgQEAKIHJlcXVpcmVzX2FueV9jb25maWdzX2VuYWJsZWQgTUJFRFRMU19TU0xfVExTMV8zX0tFWV9FWENIQU5HRV9NT0RFX1BTS19FTkFCTEVEIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTUJFRFRMU19TU0xfVExTMV8zX0tFWV9FWENIQU5HRV9NT0RFX1BTS19FUEhFTUVSQUxfRU5BQkxFRAogcnVuX3Rlc3QgIlRMUyAxLjMgbS0+bTogcmVzdW1wdGlvbiwgZWFybHkgZGF0YSBjbGktZW5hYmxlZC9zcnYtZGVmYXVsdCIgXAotICAgICAgICAgIiRQX1NSViBkZWJ1Z19sZXZlbD00IGNydF9maWxlPWRhdGFfZmlsZXMvc2VydmVyNS5jcnQga2V5X2ZpbGU9ZGF0YV9maWxlcy9zZXJ2ZXI1LmtleSIgXAorICAgICAgICAgIiRQX1NSViBkZWJ1Z19sZXZlbD00IGNydF9maWxlPS4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3NlcnZlcjUuY3J0IGtleV9maWxlPS4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3NlcnZlcjUua2V5IiBcCiAgICAgICAgICAiJFBfQ0xJIGRlYnVnX2xldmVsPTMgZWFybHlfZGF0YT0xIHJlY29fbW9kZT0xIHJlY29ubmVjdD0xIiBcCiAgICAgICAgICAwIFwKICAgICAgICAgIC1jICJQcm90b2NvbCBpcyBUTFN2MS4zIiBcCkBAIC0zMTYsNyArMzE2LDcgQEAKIHJlcXVpcmVzX2FueV9jb25maWdzX2VuYWJsZWQgTUJFRFRMU19TU0xfVExTMV8zX0tFWV9FWENIQU5HRV9NT0RFX1BTS19FTkFCTEVEIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTUJFRFRMU19TU0xfVExTMV8zX0tFWV9FWENIQU5HRV9NT0RFX1BTS19FUEhFTUVSQUxfRU5BQkxFRAogcnVuX3Rlc3QgIlRMUyAxLjMgbS0+bTogcmVzdW1wdGlvbiwgZWFybHkgZGF0YSBjbGktZW5hYmxlZC9zcnYtZGlzYWJsZWQiIFwKLSAgICAgICAgICIkUF9TUlYgZGVidWdfbGV2ZWw9NCBlYXJseV9kYXRhPTAgY3J0X2ZpbGU9ZGF0YV9maWxlcy9zZXJ2ZXI1LmNydCBrZXlfZmlsZT1kYXRhX2ZpbGVzL3NlcnZlcjUua2V5IiBcCisgICAgICAgICAiJFBfU1JWIGRlYnVnX2xldmVsPTQgZWFybHlfZGF0YT0wIGNydF9maWxlPS4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3NlcnZlcjUuY3J0IGtleV9maWxlPS4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3NlcnZlcjUua2V5IiBcCiAgICAgICAgICAiJFBfQ0xJIGRlYnVnX2xldmVsPTMgZWFybHlfZGF0YT0xIHJlY29fbW9kZT0xIHJlY29ubmVjdD0xIiBcCiAgICAgICAgICAwIFwKICAgICAgICAgIC1jICJQcm90b2NvbCBpcyBUTFN2MS4zIiBcCkBAIC0zNDUsNyArMzQ1LDcgQEAKIHJlcXVpcmVzX2FueV9jb25maWdzX2VuYWJsZWQgTUJFRFRMU19TU0xfVExTMV8zX0tFWV9FWENIQU5HRV9NT0RFX1BTS19FTkFCTEVEIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTUJFRFRMU19TU0xfVExTMV8zX0tFWV9FWENIQU5HRV9NT0RFX1BTS19FUEhFTUVSQUxfRU5BQkxFRAogcnVuX3Rlc3QgIlRMUyAxLjMgbS0+bTogcmVzdW1wdGlvbiwgZWFybHkgZGF0YSBjbGktZGVmYXVsdC9zcnYtZW5hYmxlZCIgXAotICAgICAgICAgIiRQX1NSViBkZWJ1Z19sZXZlbD00IGVhcmx5X2RhdGE9MSBjcnRfZmlsZT1kYXRhX2ZpbGVzL3NlcnZlcjUuY3J0IGtleV9maWxlPWRhdGFfZmlsZXMvc2VydmVyNS5rZXkiIFwKKyAgICAgICAgICIkUF9TUlYgZGVidWdfbGV2ZWw9NCBlYXJseV9kYXRhPTEgY3J0X2ZpbGU9Li4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvc2VydmVyNS5jcnQga2V5X2ZpbGU9Li4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvc2VydmVyNS5rZXkiIFwKICAgICAgICAgICIkUF9DTEkgZGVidWdfbGV2ZWw9MyByZWNvX21vZGU9MSByZWNvbm5lY3Q9MSIgXAogICAgICAgICAgMCBcCiAgICAgICAgICAtYyAiUHJvdG9jb2wgaXMgVExTdjEuMyIgXApAQCAtMzc0LDcgKzM3NCw3IEBACiByZXF1aXJlc19hbnlfY29uZmlnc19lbmFibGVkIE1CRURUTFNfU1NMX1RMUzFfM19LRVlfRVhDSEFOR0VfTU9ERV9QU0tfRU5BQkxFRCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1CRURUTFNfU1NMX1RMUzFfM19LRVlfRVhDSEFOR0VfTU9ERV9QU0tfRVBIRU1FUkFMX0VOQUJMRUQKIHJ1bl90ZXN0ICJUTFMgMS4zIG0tPm06IHJlc3VtcHRpb24sIGVhcmx5IGRhdGEgY2xpLWRpc2FibGVkL3Nydi1lbmFibGVkIiBcCi0gICAgICAgICAiJFBfU1JWIGRlYnVnX2xldmVsPTQgZWFybHlfZGF0YT0xIGNydF9maWxlPWRhdGFfZmlsZXMvc2VydmVyNS5jcnQga2V5X2ZpbGU9ZGF0YV9maWxlcy9zZXJ2ZXI1LmtleSIgXAorICAgICAgICAgIiRQX1NSViBkZWJ1Z19sZXZlbD00IGVhcmx5X2RhdGE9MSBjcnRfZmlsZT0uLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9zZXJ2ZXI1LmNydCBrZXlfZmlsZT0uLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9zZXJ2ZXI1LmtleSIgXAogICAgICAgICAgIiRQX0NMSSBkZWJ1Z19sZXZlbD0zIGVhcmx5X2RhdGE9MCByZWNvX21vZGU9MSByZWNvbm5lY3Q9MSIgXAogICAgICAgICAgMCBcCiAgICAgICAgICAtYyAiUHJvdG9jb2wgaXMgVExTdjEuMyIgXApAQCAtNDAzLDcgKzQwMyw3IEBACiByZXF1aXJlc19hbnlfY29uZmlnc19lbmFibGVkIE1CRURUTFNfU1NMX1RMUzFfM19LRVlfRVhDSEFOR0VfTU9ERV9QU0tfRU5BQkxFRCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1CRURUTFNfU1NMX1RMUzFfM19LRVlfRVhDSEFOR0VfTU9ERV9QU0tfRVBIRU1FUkFMX0VOQUJMRUQKIHJ1bl90ZXN0ICJUTFMgMS4zIG0tPm06IHJlc3VtcHRpb24gZmFpbHMsIHRpY2tldCBsaWZldGltZSB0b28gbG9uZyAoN2QgKyAxcykiIFwKLSAgICAgICAgICIkUF9TUlYgZGVidWdfbGV2ZWw9MiBjcnRfZmlsZT1kYXRhX2ZpbGVzL3NlcnZlcjUuY3J0IGtleV9maWxlPWRhdGFfZmlsZXMvc2VydmVyNS5rZXkgdGlja2V0X3RpbWVvdXQ9NjA0ODAxIHRpY2tldHM9MSIgXAorICAgICAgICAgIiRQX1NSViBkZWJ1Z19sZXZlbD0yIGNydF9maWxlPS4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3NlcnZlcjUuY3J0IGtleV9maWxlPS4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3NlcnZlcjUua2V5IHRpY2tldF90aW1lb3V0PTYwNDgwMSB0aWNrZXRzPTEiIFwKICAgICAgICAgICIkUF9DTEkgcmVjb19tb2RlPTEgcmVjb25uZWN0PTEiIFwKICAgICAgICAgIDEgXAogICAgICAgICAgLWMgIlByb3RvY29sIGlzIFRMU3YxLjMiIFwKQEAgLTQyMiw3ICs0MjIsNyBAQAogcmVxdWlyZXNfYW55X2NvbmZpZ3NfZW5hYmxlZCBNQkVEVExTX1NTTF9UTFMxXzNfS0VZX0VYQ0hBTkdFX01PREVfUFNLX0VOQUJMRUQgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNQkVEVExTX1NTTF9UTFMxXzNfS0VZX0VYQ0hBTkdFX01PREVfUFNLX0VQSEVNRVJBTF9FTkFCTEVECiBydW5fdGVzdCAiVExTIDEuMyBtLT5tOiByZXN1bXB0aW9uIGZhaWxzLCB0aWNrZXQgbGlmZXRpbWU9MCIgXAotICAgICAgICAgIiRQX1NSViBkZWJ1Z19sZXZlbD0yIGNydF9maWxlPWRhdGFfZmlsZXMvc2VydmVyNS5jcnQga2V5X2ZpbGU9ZGF0YV9maWxlcy9zZXJ2ZXI1LmtleSB0aWNrZXRfdGltZW91dD0wIHRpY2tldHM9MSIgXAorICAgICAgICAgIiRQX1NSViBkZWJ1Z19sZXZlbD0yIGNydF9maWxlPS4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3NlcnZlcjUuY3J0IGtleV9maWxlPS4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3NlcnZlcjUua2V5IHRpY2tldF90aW1lb3V0PTAgdGlja2V0cz0xIiBcCiAgICAgICAgICAiJFBfQ0xJIGRlYnVnX2xldmVsPTIgcmVjb19tb2RlPTEgcmVjb25uZWN0PTEiIFwKICAgICAgICAgIDEgXAogICAgICAgICAgLWMgIlByb3RvY29sIGlzIFRMU3YxLjMiIFwKQEAgLTQ0MSw4ICs0NDEsOCBAQAogcmVxdWlyZXNfYW55X2NvbmZpZ3NfZW5hYmxlZCBNQkVEVExTX1NTTF9UTFMxXzNfS0VZX0VYQ0hBTkdFX01PREVfUFNLX0VOQUJMRUQgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNQkVEVExTX1NTTF9UTFMxXzNfS0VZX0VYQ0hBTkdFX01PREVfUFNLX0VQSEVNRVJBTF9FTkFCTEVECiBydW5fdGVzdCAiVExTIDEuMyBtLT5tOiByZXN1bXB0aW9uIGZhaWxzLCBzZXJ2ZXJuYW1lIGNoZWNrIGZhaWxlZCIgXAotICAgICAgICAgIiRQX1NSViBkZWJ1Z19sZXZlbD0yIGNydF9maWxlPWRhdGFfZmlsZXMvc2VydmVyNS5jcnQga2V5X2ZpbGU9ZGF0YV9maWxlcy9zZXJ2ZXI1LmtleSBcCi0gICAgICAgICAgICBzbmk9bG9jYWxob3N0LGRhdGFfZmlsZXMvc2VydmVyMi5jcnQsZGF0YV9maWxlcy9zZXJ2ZXIyLmtleSwtLC0sLSxwb2xhcnNzbC5leGFtcGxlLGRhdGFfZmlsZXMvc2VydmVyMS1ub3NwYWNlLmNydCxkYXRhX2ZpbGVzL3NlcnZlcjEua2V5LC0sLSwtIiBcCisgICAgICAgICAiJFBfU1JWIGRlYnVnX2xldmVsPTIgY3J0X2ZpbGU9Li4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvc2VydmVyNS5jcnQga2V5X2ZpbGU9Li4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvc2VydmVyNS5rZXkgXAorICAgICAgICAgICAgc25pPWxvY2FsaG9zdCwuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9zZXJ2ZXIyLmNydCwuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9zZXJ2ZXIyLmtleSwtLC0sLSxwb2xhcnNzbC5leGFtcGxlLC4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3NlcnZlcjEtbm9zcGFjZS5jcnQsLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvc2VydmVyMS5rZXksLSwtLC0iIFwKICAgICAgICAgICIkUF9DTEkgZGVidWdfbGV2ZWw9NCBzZXJ2ZXJfbmFtZT1sb2NhbGhvc3QgcmVjb19zZXJ2ZXJfbmFtZT1yZW1vdGUgcmVjb19tb2RlPTEgcmVjb25uZWN0PTEiIFwKICAgICAgICAgIDEgXAogICAgICAgICAgLWMgIlByb3RvY29sIGlzIFRMU3YxLjMiIFwKQEAgLTQ2MSw3ICs0NjEsNyBAQAogcmVxdWlyZXNfYW55X2NvbmZpZ3NfZW5hYmxlZCBNQkVEVExTX1NTTF9UTFMxXzNfS0VZX0VYQ0hBTkdFX01PREVfUFNLX0VOQUJMRUQgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNQkVEVExTX1NTTF9UTFMxXzNfS0VZX0VYQ0hBTkdFX01PREVfUFNLX0VQSEVNRVJBTF9FTkFCTEVECiBydW5fdGVzdCAiVExTIDEuMyBtLT5tOiByZXN1bXB0aW9uIGZhaWxzLCB0aWNrZXQgYXV0aCBmYWlsZWQuIiBcCi0gICAgICAgICAiJFBfU1JWIGRlYnVnX2xldmVsPTQgY3J0X2ZpbGU9ZGF0YV9maWxlcy9zZXJ2ZXI1LmNydCBrZXlfZmlsZT1kYXRhX2ZpbGVzL3NlcnZlcjUua2V5IHRpY2tldHM9OCBkdW1teV90aWNrZXQ9MSIgXAorICAgICAgICAgIiRQX1NSViBkZWJ1Z19sZXZlbD00IGNydF9maWxlPS4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3NlcnZlcjUuY3J0IGtleV9maWxlPS4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3NlcnZlcjUua2V5IHRpY2tldHM9OCBkdW1teV90aWNrZXQ9MSIgXAogICAgICAgICAgIiRQX0NMSSByZWNvX21vZGU9MSByZWNvbm5lY3Q9MSIgXAogICAgICAgICAgMCBcCiAgICAgICAgICAtYyAiUHJvdG9jb2wgaXMgVExTdjEuMyIgXApAQCAtNDg0LDcgKzQ4NCw3IEBACiByZXF1aXJlc19hbnlfY29uZmlnc19lbmFibGVkIE1CRURUTFNfU1NMX1RMUzFfM19LRVlfRVhDSEFOR0VfTU9ERV9QU0tfRU5BQkxFRCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1CRURUTFNfU1NMX1RMUzFfM19LRVlfRVhDSEFOR0VfTU9ERV9QU0tfRVBIRU1FUkFMX0VOQUJMRUQKIHJ1bl90ZXN0ICJUTFMgMS4zIG0tPm06IHJlc3VtcHRpb24gZmFpbHMsIHRpY2tldCBleHBpcmVkLiIgXAotICAgICAgICAgIiRQX1NSViBkZWJ1Z19sZXZlbD00IGNydF9maWxlPWRhdGFfZmlsZXMvc2VydmVyNS5jcnQga2V5X2ZpbGU9ZGF0YV9maWxlcy9zZXJ2ZXI1LmtleSB0aWNrZXRzPTggZHVtbXlfdGlja2V0PTIiIFwKKyAgICAgICAgICIkUF9TUlYgZGVidWdfbGV2ZWw9NCBjcnRfZmlsZT0uLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9zZXJ2ZXI1LmNydCBrZXlfZmlsZT0uLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9zZXJ2ZXI1LmtleSB0aWNrZXRzPTggZHVtbXlfdGlja2V0PTIiIFwKICAgICAgICAgICIkUF9DTEkgcmVjb19tb2RlPTEgcmVjb25uZWN0PTEiIFwKICAgICAgICAgIDAgXAogICAgICAgICAgLWMgIlByb3RvY29sIGlzIFRMU3YxLjMiIFwKQEAgLTUwNyw3ICs1MDcsNyBAQAogcmVxdWlyZXNfYW55X2NvbmZpZ3NfZW5hYmxlZCBNQkVEVExTX1NTTF9UTFMxXzNfS0VZX0VYQ0hBTkdFX01PREVfUFNLX0VOQUJMRUQgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNQkVEVExTX1NTTF9UTFMxXzNfS0VZX0VYQ0hBTkdFX01PREVfUFNLX0VQSEVNRVJBTF9FTkFCTEVECiBydW5fdGVzdCAiVExTIDEuMyBtLT5tOiByZXN1bXB0aW9uIGZhaWxzLCBpbnZhbGlkIGNyZWF0aW9uIHRpbWUuIiBcCi0gICAgICAgICAiJFBfU1JWIGRlYnVnX2xldmVsPTQgY3J0X2ZpbGU9ZGF0YV9maWxlcy9zZXJ2ZXI1LmNydCBrZXlfZmlsZT1kYXRhX2ZpbGVzL3NlcnZlcjUua2V5IHRpY2tldHM9OCBkdW1teV90aWNrZXQ9MyIgXAorICAgICAgICAgIiRQX1NSViBkZWJ1Z19sZXZlbD00IGNydF9maWxlPS4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3NlcnZlcjUuY3J0IGtleV9maWxlPS4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3NlcnZlcjUua2V5IHRpY2tldHM9OCBkdW1teV90aWNrZXQ9MyIgXAogICAgICAgICAgIiRQX0NMSSBkZWJ1Z19sZXZlbD00IHJlY29fbW9kZT0xIHJlY29ubmVjdD0xIiBcCiAgICAgICAgICAwIFwKICAgICAgICAgIC1jICJQcm90b2NvbCBpcyBUTFN2MS4zIiBcCkBAIC01MzAsNyArNTMwLDcgQEAKIHJlcXVpcmVzX2FueV9jb25maWdzX2VuYWJsZWQgTUJFRFRMU19TU0xfVExTMV8zX0tFWV9FWENIQU5HRV9NT0RFX1BTS19FTkFCTEVEIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTUJFRFRMU19TU0xfVExTMV8zX0tFWV9FWENIQU5HRV9NT0RFX1BTS19FUEhFTUVSQUxfRU5BQkxFRAogcnVuX3Rlc3QgIlRMUyAxLjMgbS0+bTogcmVzdW1wdGlvbiBmYWlscywgdGlja2V0IGV4cGlyZWQsIHRvbyBvbGQiIFwKLSAgICAgICAgICIkUF9TUlYgZGVidWdfbGV2ZWw9NCBjcnRfZmlsZT1kYXRhX2ZpbGVzL3NlcnZlcjUuY3J0IGtleV9maWxlPWRhdGFfZmlsZXMvc2VydmVyNS5rZXkgdGlja2V0cz04IGR1bW15X3RpY2tldD00IiBcCisgICAgICAgICAiJFBfU1JWIGRlYnVnX2xldmVsPTQgY3J0X2ZpbGU9Li4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvc2VydmVyNS5jcnQga2V5X2ZpbGU9Li4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvc2VydmVyNS5rZXkgdGlja2V0cz04IGR1bW15X3RpY2tldD00IiBcCiAgICAgICAgICAiJFBfQ0xJIGRlYnVnX2xldmVsPTQgcmVjb19tb2RlPTEgcmVjb25uZWN0PTEiIFwKICAgICAgICAgIDAgXAogICAgICAgICAgLWMgIlByb3RvY29sIGlzIFRMU3YxLjMiIFwKQEAgLTU1Myw3ICs1NTMsNyBAQAogcmVxdWlyZXNfYW55X2NvbmZpZ3NfZW5hYmxlZCBNQkVEVExTX1NTTF9UTFMxXzNfS0VZX0VYQ0hBTkdFX01PREVfUFNLX0VOQUJMRUQgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNQkVEVExTX1NTTF9UTFMxXzNfS0VZX0VYQ0hBTkdFX01PREVfUFNLX0VQSEVNRVJBTF9FTkFCTEVECiBydW5fdGVzdCAiVExTIDEuMyBtLT5tOiByZXN1bXB0aW9uIGZhaWxzLCBhZ2Ugb3V0c2lkZSB0b2xlcmFuY2Ugd2luZG93LCB0b28geW91bmciIFwKLSAgICAgICAgICIkUF9TUlYgZGVidWdfbGV2ZWw9NCBjcnRfZmlsZT1kYXRhX2ZpbGVzL3NlcnZlcjUuY3J0IGtleV9maWxlPWRhdGFfZmlsZXMvc2VydmVyNS5rZXkgdGlja2V0cz04IGR1bW15X3RpY2tldD01IiBcCisgICAgICAgICAiJFBfU1JWIGRlYnVnX2xldmVsPTQgY3J0X2ZpbGU9Li4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvc2VydmVyNS5jcnQga2V5X2ZpbGU9Li4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvc2VydmVyNS5rZXkgdGlja2V0cz04IGR1bW15X3RpY2tldD01IiBcCiAgICAgICAgICAiJFBfQ0xJIGRlYnVnX2xldmVsPTQgcmVjb19tb2RlPTEgcmVjb25uZWN0PTEiIFwKICAgICAgICAgIDAgXAogICAgICAgICAgLWMgIlByb3RvY29sIGlzIFRMU3YxLjMiIFwKQEAgLTU3Niw3ICs1NzYsNyBAQAogcmVxdWlyZXNfYW55X2NvbmZpZ3NfZW5hYmxlZCBNQkVEVExTX1NTTF9UTFMxXzNfS0VZX0VYQ0hBTkdFX01PREVfUFNLX0VOQUJMRUQgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNQkVEVExTX1NTTF9UTFMxXzNfS0VZX0VYQ0hBTkdFX01PREVfUFNLX0VQSEVNRVJBTF9FTkFCTEVECiBydW5fdGVzdCAiVExTIDEuMyBtLT5tOiByZXN1bXB0aW9uIGZhaWxzLCBhZ2Ugb3V0c2lkZSB0b2xlcmFuY2Ugd2luZG93LCB0b28gb2xkIiBcCi0gICAgICAgICAiJFBfU1JWIGRlYnVnX2xldmVsPTQgY3J0X2ZpbGU9ZGF0YV9maWxlcy9zZXJ2ZXI1LmNydCBrZXlfZmlsZT1kYXRhX2ZpbGVzL3NlcnZlcjUua2V5IHRpY2tldHM9OCBkdW1teV90aWNrZXQ9NiIgXAorICAgICAgICAgIiRQX1NSViBkZWJ1Z19sZXZlbD00IGNydF9maWxlPS4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3NlcnZlcjUuY3J0IGtleV9maWxlPS4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3NlcnZlcjUua2V5IHRpY2tldHM9OCBkdW1teV90aWNrZXQ9NiIgXAogICAgICAgICAgIiRQX0NMSSBkZWJ1Z19sZXZlbD00IHJlY29fbW9kZT0xIHJlY29ubmVjdD0xIiBcCiAgICAgICAgICAwIFwKICAgICAgICAgIC1jICJQcm90b2NvbCBpcyBUTFN2MS4zIiBcCkBAIC01OTgsNyArNTk4LDcgQEAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTUJFRFRMU19TU0xfVExTMV8zX0tFWV9FWENIQU5HRV9NT0RFX0VQSEVNRVJBTF9FTkFCTEVEIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTUJFRFRMU19TU0xfVExTMV8zX0tFWV9FWENIQU5HRV9NT0RFX1BTS19FTkFCTEVECiBydW5fdGVzdCAiVExTIDEuMyBtLT5tOiByZXN1bXB0aW9uIGZhaWxzLCBjbGkvdGt0IGtleCBtb2RlcyBwc2svbm9uZSIgXAotICAgICAgICAgIiRQX1NSViBkZWJ1Z19sZXZlbD00IGNydF9maWxlPWRhdGFfZmlsZXMvc2VydmVyNS5jcnQga2V5X2ZpbGU9ZGF0YV9maWxlcy9zZXJ2ZXI1LmtleSBkdW1teV90aWNrZXQ9NyIgXAorICAgICAgICAgIiRQX1NSViBkZWJ1Z19sZXZlbD00IGNydF9maWxlPS4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3NlcnZlcjUuY3J0IGtleV9maWxlPS4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3NlcnZlcjUua2V5IGR1bW15X3RpY2tldD03IiBcCiAgICAgICAgICAiJFBfQ0xJIGRlYnVnX2xldmVsPTQgdGxzMTNfa2V4X21vZGVzPXBza19vcl9lcGhlbWVyYWwgcmVjb25uZWN0PTEiIFwKICAgICAgICAgIDAgXAogICAgICAgICAgLWMgIlByb3RvY29sIGlzIFRMU3YxLjMiIFwKQEAgLTYxNiw3ICs2MTYsNyBAQAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNQkVEVExTX1NTTF9UTFMxXzNfS0VZX0VYQ0hBTkdFX01PREVfRVBIRU1FUkFMX0VOQUJMRUQgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNQkVEVExTX1NTTF9UTFMxXzNfS0VZX0VYQ0hBTkdFX01PREVfUFNLX0VOQUJMRUQKIHJ1bl90ZXN0ICJUTFMgMS4zIG0tPm06IGVwaGVtZXJhbCBvdmVyIHBzayByZXN1bXB0aW9uLCBjbGkvdGt0IGtleCBtb2RlcyBwc2svcHNrIiBcCi0gICAgICAgICAiJFBfU1JWIGRlYnVnX2xldmVsPTQgY3J0X2ZpbGU9ZGF0YV9maWxlcy9zZXJ2ZXI1LmNydCBrZXlfZmlsZT1kYXRhX2ZpbGVzL3NlcnZlcjUua2V5IGR1bW15X3RpY2tldD04IiBcCisgICAgICAgICAiJFBfU1JWIGRlYnVnX2xldmVsPTQgY3J0X2ZpbGU9Li4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvc2VydmVyNS5jcnQga2V5X2ZpbGU9Li4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvc2VydmVyNS5rZXkgZHVtbXlfdGlja2V0PTgiIFwKICAgICAgICAgICIkUF9DTEkgZGVidWdfbGV2ZWw9NCB0bHMxM19rZXhfbW9kZXM9cHNrX29yX2VwaGVtZXJhbCByZWNvbm5lY3Q9MSIgXAogICAgICAgICAgMCBcCiAgICAgICAgICAtYyAiUHJvdG9jb2wgaXMgVExTdjEuMyIgXApAQCAtNjM0LDcgKzYzNCw3IEBACiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1CRURUTFNfU1NMX1RMUzFfM19LRVlfRVhDSEFOR0VfTU9ERV9FUEhFTUVSQUxfRU5BQkxFRCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1CRURUTFNfU1NMX1RMUzFfM19LRVlfRVhDSEFOR0VfTU9ERV9QU0tfRU5BQkxFRAogcnVuX3Rlc3QgIlRMUyAxLjMgbS0+bTogcmVzdW1wdGlvbiBmYWlscywgY2xpL3RrdCBrZXggbW9kZXMgcHNrL3Bza19lcGhlbWVyYWwiIFwKLSAgICAgICAgICIkUF9TUlYgZGVidWdfbGV2ZWw9NCBjcnRfZmlsZT1kYXRhX2ZpbGVzL3NlcnZlcjUuY3J0IGtleV9maWxlPWRhdGFfZmlsZXMvc2VydmVyNS5rZXkgZHVtbXlfdGlja2V0PTkiIFwKKyAgICAgICAgICIkUF9TUlYgZGVidWdfbGV2ZWw9NCBjcnRfZmlsZT0uLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9zZXJ2ZXI1LmNydCBrZXlfZmlsZT0uLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9zZXJ2ZXI1LmtleSBkdW1teV90aWNrZXQ9OSIgXAogICAgICAgICAgIiRQX0NMSSBkZWJ1Z19sZXZlbD00IHRsczEzX2tleF9tb2Rlcz1wc2tfb3JfZXBoZW1lcmFsIHJlY29ubmVjdD0xIiBcCiAgICAgICAgICAwIFwKICAgICAgICAgIC1jICJQcm90b2NvbCBpcyBUTFN2MS4zIiBcCkBAIC02NTIsNyArNjUyLDcgQEAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTUJFRFRMU19TU0xfVExTMV8zX0tFWV9FWENIQU5HRV9NT0RFX0VQSEVNRVJBTF9FTkFCTEVEIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTUJFRFRMU19TU0xfVExTMV8zX0tFWV9FWENIQU5HRV9NT0RFX1BTS19FTkFCTEVECiBydW5fdGVzdCAiVExTIDEuMyBtLT5tOiBlcGhlbWVyYWwgb3ZlciBwc2sgcmVzdW1wdGlvbiwgY2xpL3RrdCBrZXggbW9kZXMgcHNrL3Bza19hbGwiIFwKLSAgICAgICAgICIkUF9TUlYgZGVidWdfbGV2ZWw9NCBjcnRfZmlsZT1kYXRhX2ZpbGVzL3NlcnZlcjUuY3J0IGtleV9maWxlPWRhdGFfZmlsZXMvc2VydmVyNS5rZXkgZHVtbXlfdGlja2V0PTEwIiBcCisgICAgICAgICAiJFBfU1JWIGRlYnVnX2xldmVsPTQgY3J0X2ZpbGU9Li4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvc2VydmVyNS5jcnQga2V5X2ZpbGU9Li4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvc2VydmVyNS5rZXkgZHVtbXlfdGlja2V0PTEwIiBcCiAgICAgICAgICAiJFBfQ0xJIGRlYnVnX2xldmVsPTQgdGxzMTNfa2V4X21vZGVzPXBza19vcl9lcGhlbWVyYWwgcmVjb25uZWN0PTEiIFwKICAgICAgICAgIDAgXAogICAgICAgICAgLWMgIlByb3RvY29sIGlzIFRMU3YxLjMiIFwKQEAgLTY3MCw3ICs2NzAsNyBAQAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNQkVEVExTX1NTTF9UTFMxXzNfS0VZX0VYQ0hBTkdFX01PREVfRVBIRU1FUkFMX0VOQUJMRUQgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNQkVEVExTX1NTTF9UTFMxXzNfS0VZX0VYQ0hBTkdFX01PREVfUFNLX0VQSEVNRVJBTF9FTkFCTEVECiBydW5fdGVzdCAiVExTIDEuMyBtLT5tOiByZXN1bXB0aW9uIGZhaWxzLCBjbGkvdGt0IGtleCBtb2RlcyBwc2tfZXBoZW1lcmFsL25vbmUiIFwKLSAgICAgICAgICIkUF9TUlYgZGVidWdfbGV2ZWw9NCBjcnRfZmlsZT1kYXRhX2ZpbGVzL3NlcnZlcjUuY3J0IGtleV9maWxlPWRhdGFfZmlsZXMvc2VydmVyNS5rZXkgZHVtbXlfdGlja2V0PTciIFwKKyAgICAgICAgICIkUF9TUlYgZGVidWdfbGV2ZWw9NCBjcnRfZmlsZT0uLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9zZXJ2ZXI1LmNydCBrZXlfZmlsZT0uLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9zZXJ2ZXI1LmtleSBkdW1teV90aWNrZXQ9NyIgXAogICAgICAgICAgIiRQX0NMSSBkZWJ1Z19sZXZlbD00IHRsczEzX2tleF9tb2Rlcz1lcGhlbWVyYWxfYWxsIHJlY29ubmVjdD0xIiBcCiAgICAgICAgICAwIFwKICAgICAgICAgIC1jICJQcm90b2NvbCBpcyBUTFN2MS4zIiBcCkBAIC02ODgsNyArNjg4LDcgQEAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTUJFRFRMU19TU0xfVExTMV8zX0tFWV9FWENIQU5HRV9NT0RFX0VQSEVNRVJBTF9FTkFCTEVEIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTUJFRFRMU19TU0xfVExTMV8zX0tFWV9FWENIQU5HRV9NT0RFX1BTS19FUEhFTUVSQUxfRU5BQkxFRAogcnVuX3Rlc3QgIlRMUyAxLjMgbS0+bTogcmVzdW1wdGlvbiBmYWlscywgY2xpL3RrdCBrZXggbW9kZXMgcHNrX2VwaGVtZXJhbC9wc2siIFwKLSAgICAgICAgICIkUF9TUlYgZGVidWdfbGV2ZWw9NCBjcnRfZmlsZT1kYXRhX2ZpbGVzL3NlcnZlcjUuY3J0IGtleV9maWxlPWRhdGFfZmlsZXMvc2VydmVyNS5rZXkgZHVtbXlfdGlja2V0PTgiIFwKKyAgICAgICAgICIkUF9TUlYgZGVidWdfbGV2ZWw9NCBjcnRfZmlsZT0uLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9zZXJ2ZXI1LmNydCBrZXlfZmlsZT0uLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9zZXJ2ZXI1LmtleSBkdW1teV90aWNrZXQ9OCIgXAogICAgICAgICAgIiRQX0NMSSBkZWJ1Z19sZXZlbD00IHRsczEzX2tleF9tb2Rlcz1lcGhlbWVyYWxfYWxsIHJlY29ubmVjdD0xIiBcCiAgICAgICAgICAwIFwKICAgICAgICAgIC1jICJQcm90b2NvbCBpcyBUTFN2MS4zIiBcCkBAIC03MDYsNyArNzA2LDcgQEAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTUJFRFRMU19TU0xfVExTMV8zX0tFWV9FWENIQU5HRV9NT0RFX0VQSEVNRVJBTF9FTkFCTEVEIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTUJFRFRMU19TU0xfVExTMV8zX0tFWV9FWENIQU5HRV9NT0RFX1BTS19FUEhFTUVSQUxfRU5BQkxFRAogcnVuX3Rlc3QgIlRMUyAxLjMgbS0+bTogcmVzdW1wdGlvbiwgY2xpL3RrdCBrZXggbW9kZXMgcHNrX2VwaGVtZXJhbC9wc2tfZXBoZW1lcmFsIiBcCi0gICAgICAgICAiJFBfU1JWIGRlYnVnX2xldmVsPTQgY3J0X2ZpbGU9ZGF0YV9maWxlcy9zZXJ2ZXI1LmNydCBrZXlfZmlsZT1kYXRhX2ZpbGVzL3NlcnZlcjUua2V5IGR1bW15X3RpY2tldD05IiBcCisgICAgICAgICAiJFBfU1JWIGRlYnVnX2xldmVsPTQgY3J0X2ZpbGU9Li4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvc2VydmVyNS5jcnQga2V5X2ZpbGU9Li4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvc2VydmVyNS5rZXkgZHVtbXlfdGlja2V0PTkiIFwKICAgICAgICAgICIkUF9DTEkgZGVidWdfbGV2ZWw9NCB0bHMxM19rZXhfbW9kZXM9ZXBoZW1lcmFsX2FsbCByZWNvbm5lY3Q9MSIgXAogICAgICAgICAgMCBcCiAgICAgICAgICAtYyAiUHJvdG9jb2wgaXMgVExTdjEuMyIgXApAQCAtNzI0LDcgKzcyNCw3IEBACiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1CRURUTFNfU1NMX1RMUzFfM19LRVlfRVhDSEFOR0VfTU9ERV9FUEhFTUVSQUxfRU5BQkxFRCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1CRURUTFNfU1NMX1RMUzFfM19LRVlfRVhDSEFOR0VfTU9ERV9QU0tfRVBIRU1FUkFMX0VOQUJMRUQKIHJ1bl90ZXN0ICJUTFMgMS4zIG0tPm06IHJlc3VtcHRpb24sIGNsaS90a3Qga2V4IG1vZGVzIHBza19lcGhlbWVyYWwvcHNrX2FsbCIgXAotICAgICAgICAgIiRQX1NSViBkZWJ1Z19sZXZlbD00IGNydF9maWxlPWRhdGFfZmlsZXMvc2VydmVyNS5jcnQga2V5X2ZpbGU9ZGF0YV9maWxlcy9zZXJ2ZXI1LmtleSBkdW1teV90aWNrZXQ9MTAiIFwKKyAgICAgICAgICIkUF9TUlYgZGVidWdfbGV2ZWw9NCBjcnRfZmlsZT0uLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9zZXJ2ZXI1LmNydCBrZXlfZmlsZT0uLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9zZXJ2ZXI1LmtleSBkdW1teV90aWNrZXQ9MTAiIFwKICAgICAgICAgICIkUF9DTEkgZGVidWdfbGV2ZWw9NCB0bHMxM19rZXhfbW9kZXM9ZXBoZW1lcmFsX2FsbCByZWNvbm5lY3Q9MSIgXAogICAgICAgICAgMCBcCiAgICAgICAgICAtYyAiUHJvdG9jb2wgaXMgVExTdjEuMyIgXApAQCAtNzQzLDcgKzc0Myw3IEBACiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1CRURUTFNfU1NMX1RMUzFfM19LRVlfRVhDSEFOR0VfTU9ERV9QU0tfRU5BQkxFRCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1CRURUTFNfU1NMX1RMUzFfM19LRVlfRVhDSEFOR0VfTU9ERV9QU0tfRVBIRU1FUkFMX0VOQUJMRUQKIHJ1bl90ZXN0ICJUTFMgMS4zIG0tPm06IHJlc3VtcHRpb24gZmFpbHMsIGNsaS90a3Qga2V4IG1vZGVzIHBza19hbGwvbm9uZSIgXAotICAgICAgICAgIiRQX1NSViBkZWJ1Z19sZXZlbD00IGNydF9maWxlPWRhdGFfZmlsZXMvc2VydmVyNS5jcnQga2V5X2ZpbGU9ZGF0YV9maWxlcy9zZXJ2ZXI1LmtleSBkdW1teV90aWNrZXQ9NyIgXAorICAgICAgICAgIiRQX1NSViBkZWJ1Z19sZXZlbD00IGNydF9maWxlPS4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3NlcnZlcjUuY3J0IGtleV9maWxlPS4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3NlcnZlcjUua2V5IGR1bW15X3RpY2tldD03IiBcCiAgICAgICAgICAiJFBfQ0xJIGRlYnVnX2xldmVsPTQgdGxzMTNfa2V4X21vZGVzPWFsbCByZWNvbm5lY3Q9MSIgXAogICAgICAgICAgMCBcCiAgICAgICAgICAtYyAiUHJlLWNvbmZpZ3VyZWQgUFNLIG51bWJlciA9IDEiIFwKQEAgLTc2Miw3ICs3NjIsNyBAQAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNQkVEVExTX1NTTF9UTFMxXzNfS0VZX0VYQ0hBTkdFX01PREVfUFNLX0VOQUJMRUQgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNQkVEVExTX1NTTF9UTFMxXzNfS0VZX0VYQ0hBTkdFX01PREVfUFNLX0VQSEVNRVJBTF9FTkFCTEVECiBydW5fdGVzdCAiVExTIDEuMyBtLT5tOiBlcGhlbWVyYWwgb3ZlciBwc2sgcmVzdW1wdGlvbiwgY2xpL3RrdCBrZXggbW9kZXMgcHNrX2FsbC9wc2siIFwKLSAgICAgICAgICIkUF9TUlYgZGVidWdfbGV2ZWw9NCBjcnRfZmlsZT1kYXRhX2ZpbGVzL3NlcnZlcjUuY3J0IGtleV9maWxlPWRhdGFfZmlsZXMvc2VydmVyNS5rZXkgZHVtbXlfdGlja2V0PTgiIFwKKyAgICAgICAgICIkUF9TUlYgZGVidWdfbGV2ZWw9NCBjcnRfZmlsZT0uLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9zZXJ2ZXI1LmNydCBrZXlfZmlsZT0uLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9zZXJ2ZXI1LmtleSBkdW1teV90aWNrZXQ9OCIgXAogICAgICAgICAgIiRQX0NMSSBkZWJ1Z19sZXZlbD00IHRsczEzX2tleF9tb2Rlcz1hbGwgcmVjb25uZWN0PTEiIFwKICAgICAgICAgIDAgXAogICAgICAgICAgLWMgIlByb3RvY29sIGlzIFRMU3YxLjMiIFwKQEAgLTc4MSw3ICs3ODEsNyBAQAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNQkVEVExTX1NTTF9UTFMxXzNfS0VZX0VYQ0hBTkdFX01PREVfUFNLX0VOQUJMRUQgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNQkVEVExTX1NTTF9UTFMxXzNfS0VZX0VYQ0hBTkdFX01PREVfUFNLX0VQSEVNRVJBTF9FTkFCTEVECiBydW5fdGVzdCAiVExTIDEuMyBtLT5tOiByZXN1bXB0aW9uLCBjbGkvdGt0IGtleCBtb2RlcyBwc2tfYWxsL3Bza19lcGhlbWVyYWwiIFwKLSAgICAgICAgICIkUF9TUlYgZGVidWdfbGV2ZWw9NCBjcnRfZmlsZT1kYXRhX2ZpbGVzL3NlcnZlcjUuY3J0IGtleV9maWxlPWRhdGFfZmlsZXMvc2VydmVyNS5rZXkgZHVtbXlfdGlja2V0PTkiIFwKKyAgICAgICAgICIkUF9TUlYgZGVidWdfbGV2ZWw9NCBjcnRfZmlsZT0uLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9zZXJ2ZXI1LmNydCBrZXlfZmlsZT0uLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9zZXJ2ZXI1LmtleSBkdW1teV90aWNrZXQ9OSIgXAogICAgICAgICAgIiRQX0NMSSBkZWJ1Z19sZXZlbD00IHRsczEzX2tleF9tb2Rlcz1hbGwgcmVjb25uZWN0PTEiIFwKICAgICAgICAgIDAgXAogICAgICAgICAgLWMgIlByb3RvY29sIGlzIFRMU3YxLjMiIFwKQEAgLTgwMCw3ICs4MDAsNyBAQAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNQkVEVExTX1NTTF9UTFMxXzNfS0VZX0VYQ0hBTkdFX01PREVfUFNLX0VOQUJMRUQgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNQkVEVExTX1NTTF9UTFMxXzNfS0VZX0VYQ0hBTkdFX01PREVfUFNLX0VQSEVNRVJBTF9FTkFCTEVECiBydW5fdGVzdCAiVExTIDEuMyBtLT5tOiByZXN1bXB0aW9uLCBjbGkvdGt0IGtleCBtb2RlcyBwc2tfYWxsL3Bza19hbGwiIFwKLSAgICAgICAgICIkUF9TUlYgZGVidWdfbGV2ZWw9NCBjcnRfZmlsZT1kYXRhX2ZpbGVzL3NlcnZlcjUuY3J0IGtleV9maWxlPWRhdGFfZmlsZXMvc2VydmVyNS5rZXkgZHVtbXlfdGlja2V0PTEwIiBcCisgICAgICAgICAiJFBfU1JWIGRlYnVnX2xldmVsPTQgY3J0X2ZpbGU9Li4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvc2VydmVyNS5jcnQga2V5X2ZpbGU9Li4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvc2VydmVyNS5rZXkgZHVtbXlfdGlja2V0PTEwIiBcCiAgICAgICAgICAiJFBfQ0xJIGRlYnVnX2xldmVsPTQgdGxzMTNfa2V4X21vZGVzPWFsbCByZWNvbm5lY3Q9MSIgXAogICAgICAgICAgMCBcCiAgICAgICAgICAtYyAiUHJvdG9jb2wgaXMgVExTdjEuMyIgXApkaWZmIC0tZ2l0IGEvdGVzdHMvcHNhLWNsaWVudC1zZXJ2ZXIvcHNhc2ltL01ha2VmaWxlIGIvdGVzdHMvcHNhLWNsaWVudC1zZXJ2ZXIvcHNhc2ltL01ha2VmaWxlCmluZGV4IGE3ZTIyZTEuLmVjNjY5MWYgMTAwNjQ0Ci0tLSBhL3Rlc3RzL3BzYS1jbGllbnQtc2VydmVyL3BzYXNpbS9NYWtlZmlsZQorKysgYi90ZXN0cy9wc2EtY2xpZW50LXNlcnZlci9wc2FzaW0vTWFrZWZpbGUKQEAgLTEsMjUgKzEsMzAgQEAKLU1BSU4gPz0gc3JjL2NsaWVudC5jCi0KIENGTEFHUyArPSAtV2FsbCAtV2Vycm9yIC1zdGQ9Yzk5IC1EX1hPUEVOX1NPVVJDRT0xIC1EX1BPU0lYX0NfU09VUkNFPTIwMDgwOUwKIAogaWZlcSAoJChERUJVRyksMSkKLUNGTEFHUyArPSAtRERFQlVHIC1PMCAtZworb3ZlcnJpZGUgQ0ZMQUdTICs9IC1EREVCVUcgLU8wIC1nCiBlbmRpZgogCi1MSUJQU0FDTElFTlQgOj0gLUxsaWJwc2FjbGllbnQvIC1sbWJlZGNyeXB0byAtbG1iZWR4NTA5IC1sbWJlZHRscwotTElCUFNBU0VSVkVSIDo9IC1MbGlicHNhc2VydmVyLyAtbG1iZWRjcnlwdG8KK0NMSUVOVF9MSUJTIDo9IC1MY2xpZW50X2xpYnMgLWxwc2FjbGllbnQgLWxtYmVkdGxzIC1sbWJlZHg1MDkgLWxtYmVkY3J5cHRvCitTRVJWRVJfTElCUyA6PSAtTHNlcnZlcl9saWJzIC1sbWJlZGNyeXB0bwogCiBNQkVEVExTX1JPT1RfUEFUSCA9IC4uLy4uLy4uCi1DT01NT05fSU5DTFVERSA6PSAtSS4vaW5jbHVkZSAtSSQoTUJFRFRMU19ST09UX1BBVEgpL2luY2x1ZGUgLUkkKE1CRURUTFNfUk9PVF9QQVRIKS90Zi1wc2EtY3J5cHRvL2luY2x1ZGUKK0NPTU1PTl9JTkNMVURFIDo9IC1JLi9pbmNsdWRlIC1JJChNQkVEVExTX1JPT1RfUEFUSCkvaW5jbHVkZSBcCisgICAgICAgICAgICAgICAgICAtSSQoTUJFRFRMU19ST09UX1BBVEgpL3RmLXBzYS1jcnlwdG8vaW5jbHVkZSBcCisgICAgICAgICAgICAgICAgICAtSSQoTUJFRFRMU19ST09UX1BBVEgpL3RmLXBzYS1jcnlwdG8vZHJpdmVycy9idWlsdGluL2luY2x1ZGUKIAogR0VORVJBVEVEX0hfRklMRVMgPQlpbmNsdWRlL3BzYV9tYW5pZmVzdC9tYW5pZmVzdC5oIFwKIAkJCQkJaW5jbHVkZS9wc2FfbWFuaWZlc3QvcGlkLmggXAogCQkJCQlpbmNsdWRlL3BzYV9tYW5pZmVzdC9zaWQuaAogCi1QU0FfQ0xJRU5UX1NSQyA9IHNyYy9wc2FfZmZfY2xpZW50LmMgXAotCQkgJChNQUlOKSBcCi0JCSBzcmMvcHNhX3NpbV9jcnlwdG9fY2xpZW50LmMgXAotCQkgc3JjL3BzYV9zaW1fc2VyaWFsaXNlLmMKK0xJQlBTQUNMSUVOVF9TUkMgPSBzcmMvcHNhX2ZmX2NsaWVudC5jIFwKKwkJIAkJc3JjL3BzYV9zaW1fY3J5cHRvX2NsaWVudC5jIFwKKwkJIAkJc3JjL3BzYV9zaW1fc2VyaWFsaXNlLmMKK0xJQlBTQUNMSUVOVF9PQkpTPSQoTElCUFNBQ0xJRU5UX1NSQzouYz0ubykKKworUFNBX0NMSUVOVF9CQVNFX1NSQyA9ICQoTElCUFNBQ0xJRU5UX1NSQykgc3JjL2NsaWVudC5jCisKK1BTQV9DTElFTlRfRlVMTF9TUkMgPSAkKExJQlBTQUNMSUVOVF9TUkMpIFwKKwkJCQkkKHdpbGRjYXJkIHNyYy9hdXRfKi5jKQogCiBQQVJUSVRJT05fU0VSVkVSX0JPT1RTVFJBUCA9IHNyYy9wc2FfZmZfYm9vdHN0cmFwX1RFU1RfUEFSVElUSU9OLmMKIApAQCAtMjgsMTggKzMzLDI4IEBACiAJCQkJIHNyYy9wc2Ffc2ltX2NyeXB0b19zZXJ2ZXIuYyBcCiAJCQkJIHNyYy9wc2Ffc2ltX3NlcmlhbGlzZS5jCiAKLS5QSE9OWTogYWxsIGNsZWFuIGxpYnBzYWNsaWVudCBsaWJwc2FzZXJ2ZXIKKy5QSE9OWTogYWxsIGNsZWFuIGNsaWVudF9saWJzIHNlcnZlcl9saWJzCiAKIGFsbDoKIAogdGVzdC9zZWVkZmlsZToKIAlkZCBpZj0vZGV2L3VyYW5kb20gb2Y9Li90ZXN0L3NlZWRmaWxlIGJzPTY0IGNvdW50PTEKIAotdGVzdC9wc2FfY2xpZW50OiAkKFBTQV9DTElFTlRfU1JDKSAkKEdFTkVSQVRFRF9IX0ZJTEVTKQotCSQoQ0MpICQoQ09NTU9OX0lOQ0xVREUpICQoQ0ZMQUdTKSAkKFBTQV9DTElFTlRfU1JDKSAkKExJQlBTQUNMSUVOVCkgJChMREZMQUdTKSAtbyAkQAorc3JjLyUubzogc3JjLyUuYyAkKEdFTkVSQVRFRF9IX0ZJTEVTKQorCSQoQ0MpICQoQ09NTU9OX0lOQ0xVREUpICQoQ0ZMQUdTKSAtYyAkPCAkKExERkxBR1MpIC1vICRACiAKLXRlc3QvcHNhX3BhcnRpdGlvbjogJChQU0FfU0VSVkVSX1NSQykgJChHRU5FUkFURURfSF9GSUxFUykgdGVzdC9zZWVkZmlsZQotCSQoQ0MpICQoQ09NTU9OX0lOQ0xVREUpICQoQ0ZMQUdTKSAkKFBTQV9TRVJWRVJfU1JDKSAkKExJQlBTQVNFUlZFUikgJChMREZMQUdTKSAtbyAkQAorY2xpZW50X2xpYnMvbGlicHNhY2xpZW50OiAkKExJQlBTQUNMSUVOVF9PQkpTKQorCW1rZGlyIC1wIGNsaWVudF9saWJzCisJJChBUikgLXNyYyBjbGllbnRfbGlicy9saWJwc2FjbGllbnQuYSAkKExJQlBTQUNMSUVOVF9PQkpTKQorCit0ZXN0L3BzYV9jbGllbnRfYmFzZTogJChQU0FfQ0xJRU5UX0JBU0VfU1JDKSAkKEdFTkVSQVRFRF9IX0ZJTEVTKSB0ZXN0L3NlZWRmaWxlCisJJChDQykgJChDT01NT05fSU5DTFVERSkgJChDRkxBR1MpICQoUFNBX0NMSUVOVF9CQVNFX1NSQykgJChDTElFTlRfTElCUykgJChMREZMQUdTKSAtbyAkQAorCit0ZXN0L3BzYV9jbGllbnRfZnVsbDogJChQU0FfQ0xJRU5UX0ZVTExfU1JDKSAkKEdFTkVSQVRFRF9IX0ZJTEVTKSB0ZXN0L3NlZWRmaWxlCisJJChDQykgJChDT01NT05fSU5DTFVERSkgJChDRkxBR1MpICQoUFNBX0NMSUVOVF9GVUxMX1NSQykgJChDTElFTlRfTElCUykgJChMREZMQUdTKSAtbyAkQAorCit0ZXN0L3BzYV9zZXJ2ZXI6ICQoUFNBX1NFUlZFUl9TUkMpICQoR0VORVJBVEVEX0hfRklMRVMpCisJJChDQykgJChDT01NT05fSU5DTFVERSkgJChDRkxBR1MpICQoUFNBX1NFUlZFUl9TUkMpICQoU0VSVkVSX0xJQlMpICQoTERGTEFHUykgLW8gJEAKIAogJChQQVJUSVRJT05fU0VSVkVSX0JPT1RTVFJBUCkgJChHRU5FUkFURURfSF9GSUxFUyk6IHNyYy9tYW5pZmVzdC5qc29uIHNyYy9zZXJ2ZXIuYwogCXRvb2xzL3BzYV9hdXRvZ2VuLnB5IHNyYy9tYW5pZmVzdC5qc29uCkBAIC00OSwxNyArNjQsMTggQEAKICMKICMgTm90ZTogdGhlc2UgcnVsZXMgYXNzdW1lIHRoYXQgbWJlZHRsc19jb25maWcuaCBpcyBhbHJlYWR5IGNvbmZpZ3VyZWQgYnkgYWxsLnNoLgogIyBJZiBub3QgdXNpbmcgYWxsLnNoIHRoZW4gdGhlIHVzZXIgbXVzdCBkbyBpdCBtYW51YWxseS4KLWxpYnBzYWNsaWVudCBsaWJwc2FzZXJ2ZXI6CitjbGllbnRfbGliczogY2xpZW50X2xpYnMvbGlicHNhY2xpZW50CitjbGllbnRfbGlicyBzZXJ2ZXJfbGliczoKIAkkKE1BS0UpIC1DICQoTUJFRFRMU19ST09UX1BBVEgpL2xpYnJhcnkgQ0ZMQUdTPSIkKENGTEFHUykiIExERkxBR1M9IiQoTERGTEFHUykiIGxpYm1iZWRjcnlwdG8uYSBsaWJtYmVkeDUwOS5hIGxpYm1iZWR0bHMuYQogCW1rZGlyIC1wICRACiAJY3AgJChNQkVEVExTX1JPT1RfUEFUSCkvbGlicmFyeS9saWJtYmVkKi5hICRALwotCSQoTUFLRSkgLUMgJChNQkVEVExTX1JPT1RfUEFUSCkgY2xlYW4KIAotY2xlYW46Ci0Jcm0gLWYgdGVzdC9wc2FfY2xpZW50IHRlc3QvcHNhX3BhcnRpdGlvbgorY2xlYW5fc2VydmVyX2ludGVybWVkaWF0ZV9maWxlczoKIAlybSAtZiAkKFBBUlRJVElPTl9TRVJWRVJfQk9PVFNUUkFQKQotCXJtIC1yZiBsaWJwc2FjbGllbnQgbGlicHNhc2VydmVyCiAJcm0gLXJmIGluY2x1ZGUvcHNhX21hbmlmZXN0Ci0Jcm0gLWYgdGVzdC9wc2Ffc2VydmljZV8qIHRlc3QvcHNhX25vdGlmeV8qCi0Jcm0gLWYgdGVzdC8qLmxvZworCitjbGVhbjogY2xlYW5fc2VydmVyX2ludGVybWVkaWF0ZV9maWxlcworCXJtIC1mIHRlc3QvcHNhX2NsaWVudF9iYXNlIHRlc3QvcHNhX2NsaWVudF9mdWxsIHRlc3QvcHNhX3NlcnZlcgorCXJtIC1yZiBjbGllbnRfbGlicyBzZXJ2ZXJfbGlicworCXJtIC1mIHRlc3QvcHNhX3NlcnZpY2VfKiB0ZXN0L3BzYV9ub3RpZnlfKiB0ZXN0LyoubG9nCiAJcm0gLWYgdGVzdC9zZWVkZmlsZQpkaWZmIC0tZ2l0IGEvdGVzdHMvcHNhLWNsaWVudC1zZXJ2ZXIvcHNhc2ltL3NyYy9hdXRfbWFpbi5jIGIvdGVzdHMvcHNhLWNsaWVudC1zZXJ2ZXIvcHNhc2ltL3NyYy9hdXRfbWFpbi5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmVkMTk4NzkKLS0tIC9kZXYvbnVsbAorKysgYi90ZXN0cy9wc2EtY2xpZW50LXNlcnZlci9wc2FzaW0vc3JjL2F1dF9tYWluLmMKQEAgLTAsMCArMSw3MSBAQAorLyoqCisgKiBUaGlzIGlzIHRoZSBiYXNlIEFVVCB0aGF0IGV4ZWN0dWVzIGFsbCBvdGhlciBBVVRzIG1lYW50IHRvIHRlc3QgUFNBIEFQSXMKKyAqIHRocm91Z2ggUFNBU0lNLgorICovCisKKy8qCisgKiAgQ29weXJpZ2h0IFRoZSBNYmVkIFRMUyBDb250cmlidXRvcnMKKyAqICBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMCBPUiBHUEwtMi4wLW9yLWxhdGVyCisgKi8KKworLyogRmlyc3QgaW5jbHVkZSBNYmVkIFRMUyBoZWFkZXJzIHRvIGdldCB0aGUgTWJlZCBUTFMgY29uZmlndXJhdGlvbiBhbmQKKyAqIHBsYXRmb3JtIGRlZmluaXRpb25zIHRoYXQgd2UnbGwgdXNlIGluIHRoaXMgcHJvZ3JhbS4gQWxzbyBpbmNsdWRlCisgKiBzdGFuZGFyZCBDIGhlYWRlcnMgZm9yIGZ1bmN0aW9ucyB3ZSdsbCB1c2UgaGVyZS4gKi8KKyNpbmNsdWRlICJtYmVkdGxzL2J1aWxkX2luZm8uaCIKKworI2luY2x1ZGUgInBzYS9jcnlwdG8uaCIKKworI2luY2x1ZGUgPHN0ZGxpYi5oPgorI2luY2x1ZGUgPHN0ZGlvLmg+CisjaW5jbHVkZSA8c3RyaW5nLmg+CisKK2ludCBwc2FfaGFzaF9jb21wdXRlX21haW4odm9pZCk7CitpbnQgcHNhX2hhc2hfbWFpbih2b2lkKTsKK2ludCBwc2FfYWVhZF9lbmNyeXB0X21haW4oY2hhciAqY2lwaGVyX25hbWUpOworaW50IHBzYV9hZWFkX2VuY3J5cHRfZGVjcnlwdF9tYWluKHZvaWQpOworaW50IHBzYV9jaXBoZXJfZW5jcnlwdF9kZWNyeXB0X21haW4odm9pZCk7CitpbnQgcHNhX2FzeW1tZXRyaWNfZW5jcnlwdF9kZWNyeXB0X21haW4odm9pZCk7CitpbnQgcHNhX3JhbmRvbV9tYWluKHZvaWQpOworaW50IHBzYV9tYWNfbWFpbih2b2lkKTsKK2ludCBwc2Ffa2V5X2FncmVlbWVudF9tYWluKHZvaWQpOworaW50IHBzYV9zaWduX3ZlcmlmeV9tYWluKHZvaWQpOworaW50IHBzYV9oa2RmX21haW4odm9pZCk7CisKKyNkZWZpbmUgVEVTVF9NT0RVTEUobWFpbl9mdW5jKSBcCisgICAgZG8geyAgICBcCisgICAgICAgIGNoYXIgdGl0bGVbMTI4XSA9IHsgMCB9OyBcCisgICAgICAgIGNoYXIgc2VwYXJhdG9yWzEyOF0gPSB7IDAgfTsgXAorICAgICAgICBpbnQgdGl0bGVfbGVuID0gc25wcmludGYodGl0bGUsIHNpemVvZih0aXRsZSksICI9PT0gVGVzdDogJXMgPT09IiwgI21haW5fZnVuYyk7IFwKKyAgICAgICAgbWVtc2V0KHNlcGFyYXRvciwgJz0nLCB0aXRsZV9sZW4pOyBcCisgICAgICAgIHByaW50ZigiJXNcbiVzXG4lc1xuIiwgc2VwYXJhdG9yLCB0aXRsZSwgc2VwYXJhdG9yKTsgXAorICAgICAgICByZXQgPSBtYWluX2Z1bmM7IFwKKyAgICAgICAgaWYgKHJldCAhPSAwKSB7IFwKKyAgICAgICAgICAgIGdvdG8gZXhpdDsgXAorICAgICAgICB9IFwKKyAgICB9IHdoaWxlICgwKQorCitpbnQgbWFpbigpCit7CisgICAgaW50IHJldDsKKworICAgIFRFU1RfTU9EVUxFKHBzYV9oYXNoX2NvbXB1dGVfbWFpbigpKTsKKyAgICBURVNUX01PRFVMRShwc2FfaGFzaF9tYWluKCkpOworCisgICAgVEVTVF9NT0RVTEUocHNhX2FlYWRfZW5jcnlwdF9tYWluKCJhZXMxMjgtZ2NtIikpOworICAgIFRFU1RfTU9EVUxFKHBzYV9hZWFkX2VuY3J5cHRfbWFpbigiYWVzMjU2LWdjbSIpKTsKKyAgICBURVNUX01PRFVMRShwc2FfYWVhZF9lbmNyeXB0X21haW4oImFlczEyOC1nY21fOCIpKTsKKyAgICBURVNUX01PRFVMRShwc2FfYWVhZF9lbmNyeXB0X21haW4oImNoYWNoYXBvbHkiKSk7CisgICAgVEVTVF9NT0RVTEUocHNhX2FlYWRfZW5jcnlwdF9kZWNyeXB0X21haW4oKSk7CisgICAgVEVTVF9NT0RVTEUocHNhX2NpcGhlcl9lbmNyeXB0X2RlY3J5cHRfbWFpbigpKTsKKyAgICBURVNUX01PRFVMRShwc2FfYXN5bW1ldHJpY19lbmNyeXB0X2RlY3J5cHRfbWFpbigpKTsKKworICAgIFRFU1RfTU9EVUxFKHBzYV9yYW5kb21fbWFpbigpKTsKKworICAgIFRFU1RfTU9EVUxFKHBzYV9tYWNfbWFpbigpKTsKKyAgICBURVNUX01PRFVMRShwc2Ffa2V5X2FncmVlbWVudF9tYWluKCkpOworICAgIFRFU1RfTU9EVUxFKHBzYV9zaWduX3ZlcmlmeV9tYWluKCkpOworICAgIFRFU1RfTU9EVUxFKHBzYV9oa2RmX21haW4oKSk7CisKK2V4aXQ6CisgICAgcmV0dXJuIChyZXQgIT0gMCkgPyAxIDogMDsKK30KZGlmZiAtLWdpdCBhL3Rlc3RzL3BzYS1jbGllbnQtc2VydmVyL3BzYXNpbS9zcmMvYXV0X3BzYV9hZWFkX2RlbW8uYyBiL3Rlc3RzL3BzYS1jbGllbnQtc2VydmVyL3BzYXNpbS9zcmMvYXV0X3BzYV9hZWFkX2RlbW8uYwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNGE0NmM0MC4uMDAwMDAwMAotLS0gYS90ZXN0cy9wc2EtY2xpZW50LXNlcnZlci9wc2FzaW0vc3JjL2F1dF9wc2FfYWVhZF9kZW1vLmMKKysrIC9kZXYvbnVsbApAQCAtMSwyODMgKzAsMCBAQAotLyoqCi0gKiBQU0EgQVBJIG11bHRpLXBhcnQgQUVBRCBkZW1vbnN0cmF0aW9uLgotICoKLSAqIFRoaXMgcHJvZ3JhbSBBRUFELWVuY3J5cHRzIGEgbWVzc2FnZSwgdXNpbmcgdGhlIGFsZ29yaXRobSBhbmQga2V5IHNpemUKLSAqIHNwZWNpZmllZCBvbiB0aGUgY29tbWFuZCBsaW5lLCB1c2luZyB0aGUgbXVsdGktcGFydCBBUEkuCi0gKgotICogSXQgY29tZXMgd2l0aCBhIGNvbXBhbmlvbiBwcm9ncmFtIGNpcGhlci9jaXBoZXJfYWVhZF9kZW1vLmMsIHdoaWNoIGRvZXMgdGhlCi0gKiBzYW1lIG9wZXJhdGlvbnMgd2l0aCB0aGUgbGVnYWN5IENpcGhlciBBUEkuIFRoZSBnb2FsIGlzIHRoYXQgY29tcGFyaW5nIHRoZQotICogdHdvIHByb2dyYW1zIHdpbGwgaGVscCBwZW9wbGUgbWlncmF0aW5nIHRvIHRoZSBQU0EgQ3J5cHRvIEFQSS4KLSAqCi0gKiBXaGVuIHVzZWQgd2l0aCBtdWx0aS1wYXJ0IEFFQUQgb3BlcmF0aW9ucywgdGhlIGBtYmVkdGxzX2NpcGhlcl9jb250ZXh0YAotICogc2VydmVzIGEgdHJpcGxlIHB1cnBvc2UgKDEpIGhvbGQgdGhlIGtleSwgKDIpIHN0b3JlIHRoZSBhbGdvcml0aG0gd2hlbiBubwotICogb3BlcmF0aW9uIGlzIGFjdGl2ZSwgYW5kICgzKSBzYXZlIHByb2dyZXNzIGluZm9ybWF0aW9uIGZvciB0aGUgY3VycmVudAotICogb3BlcmF0aW9uLiBXaXRoIFBTQSB0aG9zZSByb2xlcyBhcmUgaGVsZCBieSBkaXNpbmN0IG9iamVjdHM6ICgxKSBhCi0gKiBwc2Ffa2V5X2lkX3QgdG8gaG9sZCB0aGUga2V5LCBhICgyKSBwc2FfYWxnb3JpdGhtX3QgdG8gcmVwcmVzZW50IHRoZQotICogYWxnb3JpdGhtLCBhbmQgKDMpIGEgcHNhX29wZXJhdGlvbl90IGZvciBtdWx0aS1wYXJ0IHByb2dyZXNzLgotICoKLSAqIE9uIHRoZSBvdGhlciBoYW5kLCB3aXRoIFBTQSwgdGhlIGFsZ29yaXRobXMgZW5jb2RlcyB0aGUgZGVzaXJlZCB0YWcgbGVuZ3RoOwotICogd2l0aCBDaXBoZXIgdGhlIGRlc2lyZWQgdGFnIGxlbmd0aCBuZWVkcyB0byBiZSB0cmFja2VkIHNlcGFyYXRlbHkuCi0gKgotICogVGhpcyBwcm9ncmFtIGFuZCBpdHMgY29tcGFuaW9uIGNpcGhlci9jaXBoZXJfYWVhZF9kZW1vLmMgaWxsdXN0cmF0ZSB0aGlzIGJ5Ci0gKiBkb2luZyB0aGUgc2FtZSBzZXF1ZW5jZSBvZiBtdWx0aS1wYXJ0IEFFQUQgY29tcHV0YXRpb24gd2l0aCBib3RoIEFQSXM7Ci0gKiBsb29raW5nIGF0IHRoZSB0d28gc2lkZSBieSBzaWRlIHNob3VsZCBtYWtlIHRoZSBkaWZmZXJlbmNlcyBhbmQKLSAqIHNpbWlsYXJpdGllcyBjbGVhci4KLSAqLwotCi0vKgotICogIENvcHlyaWdodCBUaGUgTWJlZCBUTFMgQ29udHJpYnV0b3JzCi0gKiAgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjAgT1IgR1BMLTIuMC1vci1sYXRlcgotICovCi0KLS8qIEZpcnN0IGluY2x1ZGUgTWJlZCBUTFMgaGVhZGVycyB0byBnZXQgdGhlIE1iZWQgVExTIGNvbmZpZ3VyYXRpb24gYW5kCi0gKiBwbGF0Zm9ybSBkZWZpbml0aW9ucyB0aGF0IHdlJ2xsIHVzZSBpbiB0aGlzIHByb2dyYW0uIEFsc28gaW5jbHVkZQotICogc3RhbmRhcmQgQyBoZWFkZXJzIGZvciBmdW5jdGlvbnMgd2UnbGwgdXNlIGhlcmUuICovCi0jaW5jbHVkZSAibWJlZHRscy9idWlsZF9pbmZvLmgiCi0KLSNpbmNsdWRlICJwc2EvY3J5cHRvLmgiCi0KLSNpbmNsdWRlIDxzdGRsaWIuaD4KLSNpbmNsdWRlIDxzdGRpby5oPgotI2luY2x1ZGUgPHN0cmluZy5oPgotCi0vKiBJZiB0aGUgYnVpbGQgb3B0aW9ucyB3ZSBuZWVkIGFyZSBub3QgZW5hYmxlZCwgY29tcGlsZSBhIHBsYWNlaG9sZGVyLiAqLwotI2lmICFkZWZpbmVkKE1CRURUTFNfUFNBX0NSWVBUT19DTElFTlQpICYmIFwKLSAgICAoIWRlZmluZWQoTUJFRFRMU19QU0FfQ1JZUFRPX0MpIHx8IFwKLSAgICAhZGVmaW5lZChNQkVEVExTX0FFU19DKSB8fCAhZGVmaW5lZChNQkVEVExTX0dDTV9DKSB8fCBcCi0gICAgIWRlZmluZWQoTUJFRFRMU19DSEFDSEFQT0xZX0MpIHx8IFwKLSAgICBkZWZpbmVkKE1CRURUTFNfUFNBX0NSWVBUT19LRVlfSURfRU5DT0RFU19PV05FUikpCi1pbnQgbWFpbih2b2lkKQotewotICAgIHByaW50ZigiTUJFRFRMU19QU0FfQ1JZUFRPX0NMSUVOVCBvciAiCi0gICAgICAgICAgICJNQkVEVExTX1BTQV9DUllQVE9fQyBhbmQvb3IgIgotICAgICAgICAgICAiTUJFRFRMU19BRVNfQyBhbmQvb3IgTUJFRFRMU19HQ01fQyBhbmQvb3IgIgotICAgICAgICAgICAiTUJFRFRMU19DSEFDSEFQT0xZX0Mgbm90IGRlZmluZWQsIGFuZC9vciAiCi0gICAgICAgICAgICJNQkVEVExTX1BTQV9DUllQVE9fS0VZX0lEX0VOQ09ERVNfT1dORVIgZGVmaW5lZFxyXG4iKTsKLSAgICByZXR1cm4gMDsKLX0KLSNlbHNlCi0KLS8qIFRoZSByZWFsIHByb2dyYW0gc3RhcnRzIGhlcmUuICovCi0KLWNvbnN0IGNoYXIgdXNhZ2VbXSA9Ci0gICAgIlVzYWdlOiBhZWFkX2RlbW8gW2FlczEyOC1nY218YWVzMjU2LWdjbXxhZXMxMjgtZ2NtXzh8Y2hhY2hhcG9seV0iOwotCi0vKiBEdW1teSBkYXRhIGZvciBlbmNyeXB0aW9uOiBJVi9ub25jZSwgYWRkaXRpb25hbCBkYXRhLCAyLXBhcnQgbWVzc2FnZSAqLwotY29uc3QgdW5zaWduZWQgY2hhciBpdjFbMTJdID0geyAweDAwIH07Ci1jb25zdCB1bnNpZ25lZCBjaGFyIGFkZF9kYXRhMVtdID0geyAweDAxLCAweDAyIH07Ci1jb25zdCB1bnNpZ25lZCBjaGFyIG1zZzFfcGFydDFbXSA9IHsgMHgwMywgMHgwNCB9OwotY29uc3QgdW5zaWduZWQgY2hhciBtc2cxX3BhcnQyW10gPSB7IDB4MDUsIDB4MDYsIDB4MDcgfTsKLQotLyogRHVtbXkgZGF0YSAoMm5kIG1lc3NhZ2UpICovCi1jb25zdCB1bnNpZ25lZCBjaGFyIGl2MlsxMl0gPSB7IDB4MTAgfTsKLWNvbnN0IHVuc2lnbmVkIGNoYXIgYWRkX2RhdGEyW10gPSB7IDB4MTEsIDB4MTIgfTsKLWNvbnN0IHVuc2lnbmVkIGNoYXIgbXNnMl9wYXJ0MVtdID0geyAweDEzLCAweDE0IH07Ci1jb25zdCB1bnNpZ25lZCBjaGFyIG1zZzJfcGFydDJbXSA9IHsgMHgxNSwgMHgxNiwgMHgxNyB9OwotCi0vKiBNYXhpbXVtIHRvdGFsIHNpemUgb2YgdGhlIG1lc3NhZ2VzICovCi0jZGVmaW5lIE1TRzFfU0laRSAoc2l6ZW9mKG1zZzFfcGFydDEpICsgc2l6ZW9mKG1zZzFfcGFydDIpKQotI2RlZmluZSBNU0cyX1NJWkUgKHNpemVvZihtc2cyX3BhcnQxKSArIHNpemVvZihtc2cyX3BhcnQyKSkKLSNkZWZpbmUgTVNHX01BWF9TSVpFIChNU0cxX1NJWkUgPiBNU0cyX1NJWkUgPyBNU0cxX1NJWkUgOiBNU0cyX1NJWkUpCi0KLS8qIER1bW15IGtleSBtYXRlcmlhbCAtIG5ldmVyIGRvIHRoaXMgaW4gcHJvZHVjdGlvbiEKLSAqIDMyLWJ5dGUgaXMgZW5vdWdoIHRvIGFsbCB0aGUga2V5IHNpemUgc3VwcG9ydGVkIGJ5IHRoaXMgcHJvZ3JhbS4gKi8KLWNvbnN0IHVuc2lnbmVkIGNoYXIga2V5X2J5dGVzWzMyXSA9IHsgMHgyYSB9OwotCi0vKiBQcmludCB0aGUgY29udGVudHMgb2YgYSBidWZmZXIgaW4gaGV4ICovCi12b2lkIHByaW50X2J1Zihjb25zdCBjaGFyICp0aXRsZSwgdWludDhfdCAqYnVmLCBzaXplX3QgbGVuKQotewotICAgIHByaW50ZigiJXM6IiwgdGl0bGUpOwotICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbGVuOyBpKyspIHsKLSAgICAgICAgcHJpbnRmKCIgJTAyeCIsIGJ1ZltpXSk7Ci0gICAgfQotICAgIHByaW50ZigiXG4iKTsKLX0KLQotLyogUnVuIGEgUFNBIGZ1bmN0aW9uIGFuZCBiYWlsIG91dCBpZiBpdCBmYWlscy4KLSAqIFRoZSBzeW1ib2xpYyBuYW1lIG9mIHRoZSBlcnJvciBjb2RlIGNhbiBiZSByZWNvdmVyZWQgdXNpbmc6Ci0gKiBwcm9ncmFtcy9wc2EvcHNhX2NvbnN0YW50X25hbWUgc3RhdHVzIDx2YWx1ZT4gKi8KLSNkZWZpbmUgUFNBX0NIRUNLKGV4cHIpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIGRvICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgICAgIHN0YXR1cyA9IChleHByKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICAgICAgaWYgKHN0YXR1cyAhPSBQU0FfU1VDQ0VTUykgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICAgICAgeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgICAgICAgICBwcmludGYoIkVycm9yICVkIGF0IGxpbmUgJWQ6ICVzXG4iLCAgICAgICAgICAgICAgICBcCi0gICAgICAgICAgICAgICAgICAgKGludCkgc3RhdHVzLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgICAgICAgICAgICAgICAgX19MSU5FX18sICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgICAgICAgICAgICAgICAgI2V4cHIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICAgICAgICAgIGdvdG8gZXhpdDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgICAgIH0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIH0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICB3aGlsZSAoMCkKLQotLyoKLSAqIFByZXBhcmUgZW5jcnlwdGlvbiBtYXRlcmlhbDoKLSAqIC0gaW50ZXJwcmV0IGNvbW1hbmQtbGluZSBhcmd1bWVudAotICogLSBzZXQgdXAga2V5Ci0gKiAtIG91dHB1dHM6IGtleSBhbmQgYWxnb3JpdGhtLCB3aGljaCB0b2dldGhlciBob2xkIGFsbCB0aGUgaW5mb3JtYXRpb24KLSAqLwotc3RhdGljIHBzYV9zdGF0dXNfdCBhZWFkX3ByZXBhcmUoY29uc3QgY2hhciAqaW5mbywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBzYV9rZXlfaWRfdCAqa2V5LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHNhX2FsZ29yaXRobV90ICphbGcpCi17Ci0gICAgcHNhX3N0YXR1c190IHN0YXR1czsKLQotICAgIC8qIENvbnZlcnQgYXJnIHRvIGFsZyArIGtleV9iaXRzICsga2V5X3R5cGUgKi8KLSAgICBzaXplX3Qga2V5X2JpdHM7Ci0gICAgcHNhX2tleV90eXBlX3Qga2V5X3R5cGU7Ci0gICAgaWYgKHN0cmNtcChpbmZvLCAiYWVzMTI4LWdjbSIpID09IDApIHsKLSAgICAgICAgKmFsZyA9IFBTQV9BTEdfR0NNOwotICAgICAgICBrZXlfYml0cyA9IDEyODsKLSAgICAgICAga2V5X3R5cGUgPSBQU0FfS0VZX1RZUEVfQUVTOwotICAgIH0gZWxzZSBpZiAoc3RyY21wKGluZm8sICJhZXMyNTYtZ2NtIikgPT0gMCkgewotICAgICAgICAqYWxnID0gUFNBX0FMR19HQ007Ci0gICAgICAgIGtleV9iaXRzID0gMjU2OwotICAgICAgICBrZXlfdHlwZSA9IFBTQV9LRVlfVFlQRV9BRVM7Ci0gICAgfSBlbHNlIGlmIChzdHJjbXAoaW5mbywgImFlczEyOC1nY21fOCIpID09IDApIHsKLSAgICAgICAgKmFsZyA9IFBTQV9BTEdfQUVBRF9XSVRIX1NIT1JURU5FRF9UQUcoUFNBX0FMR19HQ00sIDgpOwotICAgICAgICBrZXlfYml0cyA9IDEyODsKLSAgICAgICAga2V5X3R5cGUgPSBQU0FfS0VZX1RZUEVfQUVTOwotICAgIH0gZWxzZSBpZiAoc3RyY21wKGluZm8sICJjaGFjaGFwb2x5IikgPT0gMCkgewotICAgICAgICAqYWxnID0gUFNBX0FMR19DSEFDSEEyMF9QT0xZMTMwNTsKLSAgICAgICAga2V5X2JpdHMgPSAyNTY7Ci0gICAgICAgIGtleV90eXBlID0gUFNBX0tFWV9UWVBFX0NIQUNIQTIwOwotICAgIH0gZWxzZSB7Ci0gICAgICAgIHB1dHModXNhZ2UpOwotICAgICAgICByZXR1cm4gUFNBX0VSUk9SX0lOVkFMSURfQVJHVU1FTlQ7Ci0gICAgfQotCi0gICAgLyogUHJlcGFyZSBrZXkgYXR0cmlidXRlcyAqLwotICAgIHBzYV9rZXlfYXR0cmlidXRlc190IGF0dHJpYnV0ZXMgPSBQU0FfS0VZX0FUVFJJQlVURVNfSU5JVDsKLSAgICBwc2Ffc2V0X2tleV91c2FnZV9mbGFncygmYXR0cmlidXRlcywgUFNBX0tFWV9VU0FHRV9FTkNSWVBUKTsKLSAgICBwc2Ffc2V0X2tleV9hbGdvcml0aG0oJmF0dHJpYnV0ZXMsICphbGcpOwotICAgIHBzYV9zZXRfa2V5X3R5cGUoJmF0dHJpYnV0ZXMsIGtleV90eXBlKTsKLSAgICBwc2Ffc2V0X2tleV9iaXRzKCZhdHRyaWJ1dGVzLCBrZXlfYml0cyk7ICAgLy8gb3B0aW9uYWwKLQotICAgIC8qIEltcG9ydCBrZXkgKi8KLSAgICBQU0FfQ0hFQ0socHNhX2ltcG9ydF9rZXkoJmF0dHJpYnV0ZXMsIGtleV9ieXRlcywga2V5X2JpdHMgLyA4LCBrZXkpKTsKLQotZXhpdDoKLSAgICByZXR1cm4gc3RhdHVzOwotfQotCi0vKgotICogUHJpbnQgb3V0IHNvbWUgaW5mb3JtYXRpb24uCi0gKgotICogQWxsIG9mIHRoaXMgaW5mb3JtYXRpb24gd2FzIHByZXNlbnQgaW4gdGhlIGNvbW1hbmQgbGluZSBhcmd1bWVudCwgYnV0IGhpcwotICogZnVuY3Rpb24gZGVtb25zdHJhdGVzIGhvdyBlYWNoIHBpZWNlIGNhbiBiZSByZWNvdmVyZWQgZnJvbSAoa2V5LCBhbGcpLgotICovCi1zdGF0aWMgdm9pZCBhZWFkX2luZm8ocHNhX2tleV9pZF90IGtleSwgcHNhX2FsZ29yaXRobV90IGFsZykKLXsKLSAgICBwc2Ffa2V5X2F0dHJpYnV0ZXNfdCBhdHRyID0gUFNBX0tFWV9BVFRSSUJVVEVTX0lOSVQ7Ci0gICAgKHZvaWQpIHBzYV9nZXRfa2V5X2F0dHJpYnV0ZXMoa2V5LCAmYXR0cik7Ci0gICAgcHNhX2tleV90eXBlX3Qga2V5X3R5cGUgPSBwc2FfZ2V0X2tleV90eXBlKCZhdHRyKTsKLSAgICBzaXplX3Qga2V5X2JpdHMgPSBwc2FfZ2V0X2tleV9iaXRzKCZhdHRyKTsKLSAgICBwc2FfYWxnb3JpdGhtX3QgYmFzZV9hbGcgPSBQU0FfQUxHX0FFQURfV0lUSF9ERUZBVUxUX0xFTkdUSF9UQUcoYWxnKTsKLSAgICBzaXplX3QgdGFnX2xlbiA9IFBTQV9BRUFEX1RBR19MRU5HVEgoa2V5X3R5cGUsIGtleV9iaXRzLCBhbGcpOwotCi0gICAgY29uc3QgY2hhciAqdHlwZV9zdHIgPSBrZXlfdHlwZSA9PSBQU0FfS0VZX1RZUEVfQUVTID8gIkFFUyIKLSAgICAgICAgICAgICAgICAgICAgICAgICA6IGtleV90eXBlID09IFBTQV9LRVlfVFlQRV9DSEFDSEEyMCA/ICJDaGFjaGEiCi0gICAgICAgICAgICAgICAgICAgICAgICAgOiAiPz8/IjsKLSAgICBjb25zdCBjaGFyICpiYXNlX3N0ciA9IGJhc2VfYWxnID09IFBTQV9BTEdfR0NNID8gIkdDTSIKLSAgICAgICAgICAgICAgICAgICAgICAgICA6IGJhc2VfYWxnID09IFBTQV9BTEdfQ0hBQ0hBMjBfUE9MWTEzMDUgPyAiQ2hhY2hhUG9seSIKLSAgICAgICAgICAgICAgICAgICAgICAgICA6ICI/Pz8iOwotCi0gICAgcHJpbnRmKCIlcywgJXUsICVzLCAldVxuIiwKLSAgICAgICAgICAgdHlwZV9zdHIsICh1bnNpZ25lZCkga2V5X2JpdHMsIGJhc2Vfc3RyLCAodW5zaWduZWQpIHRhZ19sZW4pOwotfQotCi0vKgotICogRW5jcnlwdCBhIDItcGFydCBtZXNzYWdlLgotICovCi1zdGF0aWMgaW50IGFlYWRfZW5jcnlwdChwc2Ffa2V5X2lkX3Qga2V5LCBwc2FfYWxnb3JpdGhtX3QgYWxnLAotICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdW5zaWduZWQgY2hhciAqaXYsIHNpemVfdCBpdl9sZW4sCi0gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1bnNpZ25lZCBjaGFyICphZCwgc2l6ZV90IGFkX2xlbiwKLSAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgKnBhcnQxLCBzaXplX3QgcGFydDFfbGVuLAotICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdW5zaWduZWQgY2hhciAqcGFydDIsIHNpemVfdCBwYXJ0Ml9sZW4pCi17Ci0gICAgcHNhX3N0YXR1c190IHN0YXR1czsKLSAgICBzaXplX3Qgb2xlbiwgb2xlbl90YWc7Ci0gICAgdW5zaWduZWQgY2hhciBvdXRbUFNBX0FFQURfRU5DUllQVF9PVVRQVVRfTUFYX1NJWkUoTVNHX01BWF9TSVpFKV07Ci0gICAgdW5zaWduZWQgY2hhciAqcCA9IG91dCwgKmVuZCA9IG91dCArIHNpemVvZihvdXQpOwotICAgIHVuc2lnbmVkIGNoYXIgdGFnW1BTQV9BRUFEX1RBR19NQVhfU0laRV07Ci0KLSAgICBwc2FfYWVhZF9vcGVyYXRpb25fdCBvcCA9IFBTQV9BRUFEX09QRVJBVElPTl9JTklUOwotICAgIFBTQV9DSEVDSyhwc2FfYWVhZF9lbmNyeXB0X3NldHVwKCZvcCwga2V5LCBhbGcpKTsKLQotICAgIFBTQV9DSEVDSyhwc2FfYWVhZF9zZXRfbm9uY2UoJm9wLCBpdiwgaXZfbGVuKSk7Ci0gICAgUFNBX0NIRUNLKHBzYV9hZWFkX3VwZGF0ZV9hZCgmb3AsIGFkLCBhZF9sZW4pKTsKLSAgICBQU0FfQ0hFQ0socHNhX2FlYWRfdXBkYXRlKCZvcCwgcGFydDEsIHBhcnQxX2xlbiwgcCwgZW5kIC0gcCwgJm9sZW4pKTsKLSAgICBwICs9IG9sZW47Ci0gICAgUFNBX0NIRUNLKHBzYV9hZWFkX3VwZGF0ZSgmb3AsIHBhcnQyLCBwYXJ0Ml9sZW4sIHAsIGVuZCAtIHAsICZvbGVuKSk7Ci0gICAgcCArPSBvbGVuOwotICAgIFBTQV9DSEVDSyhwc2FfYWVhZF9maW5pc2goJm9wLCBwLCBlbmQgLSBwLCAmb2xlbiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhZywgc2l6ZW9mKHRhZyksICZvbGVuX3RhZykpOwotICAgIHAgKz0gb2xlbjsKLSAgICBtZW1jcHkocCwgdGFnLCBvbGVuX3RhZyk7Ci0gICAgcCArPSBvbGVuX3RhZzsKLQotICAgIG9sZW4gPSBwIC0gb3V0OwotICAgIHByaW50X2J1Zigib3V0Iiwgb3V0LCBvbGVuKTsKLQotZXhpdDoKLSAgICBwc2FfYWVhZF9hYm9ydCgmb3ApOyAgIC8vIHJlcXVpcmVkIG9uIGVycm9ycywgaGFybWxlc3Mgb24gc3VjY2VzcwotICAgIHJldHVybiBzdGF0dXM7Ci19Ci0KLS8qCi0gKiBBRUFEIGRlbW86IHNldCB1cCBrZXkvYWxnLCBwcmludCBvdXQgaW5mbywgZW5jcnlwdCBtZXNzYWdlcy4KLSAqLwotc3RhdGljIHBzYV9zdGF0dXNfdCBhZWFkX2RlbW8oY29uc3QgY2hhciAqaW5mbykKLXsKLSAgICBwc2Ffc3RhdHVzX3Qgc3RhdHVzOwotCi0gICAgcHNhX2tleV9pZF90IGtleTsKLSAgICBwc2FfYWxnb3JpdGhtX3QgYWxnOwotCi0gICAgUFNBX0NIRUNLKGFlYWRfcHJlcGFyZShpbmZvLCAma2V5LCAmYWxnKSk7Ci0KLSAgICBhZWFkX2luZm8oa2V5LCBhbGcpOwotCi0gICAgUFNBX0NIRUNLKGFlYWRfZW5jcnlwdChrZXksIGFsZywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIGl2MSwgc2l6ZW9mKGl2MSksIGFkZF9kYXRhMSwgc2l6ZW9mKGFkZF9kYXRhMSksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICBtc2cxX3BhcnQxLCBzaXplb2YobXNnMV9wYXJ0MSksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICBtc2cxX3BhcnQyLCBzaXplb2YobXNnMV9wYXJ0MikpKTsKLSAgICBQU0FfQ0hFQ0soYWVhZF9lbmNyeXB0KGtleSwgYWxnLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgaXYyLCBzaXplb2YoaXYyKSwgYWRkX2RhdGEyLCBzaXplb2YoYWRkX2RhdGEyKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIG1zZzJfcGFydDEsIHNpemVvZihtc2cyX3BhcnQxKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIG1zZzJfcGFydDIsIHNpemVvZihtc2cyX3BhcnQyKSkpOwotCi1leGl0OgotICAgIHBzYV9kZXN0cm95X2tleShrZXkpOwotCi0gICAgcmV0dXJuIHN0YXR1czsKLX0KLQotLyoKLSAqIE1haW4gZnVuY3Rpb24KLSAqLwotaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KQotewotICAgIHBzYV9zdGF0dXNfdCBzdGF0dXMgPSBQU0FfU1VDQ0VTUzsKLQotICAgIC8qIENoZWNrIHVzYWdlICovCi0gICAgaWYgKGFyZ2MgIT0gMikgewotICAgICAgICBwdXRzKHVzYWdlKTsKLSAgICAgICAgcmV0dXJuIEVYSVRfRkFJTFVSRTsKLSAgICB9Ci0KLSAgICAvKiBJbml0aWFsaXplIHRoZSBQU0EgY3J5cHRvIGxpYnJhcnkuICovCi0gICAgUFNBX0NIRUNLKHBzYV9jcnlwdG9faW5pdCgpKTsKLQotICAgIC8qIFJ1biB0aGUgZGVtbyAqLwotICAgIFBTQV9DSEVDSyhhZWFkX2RlbW8oYXJndlsxXSkpOwotCi0gICAgLyogRGVpbml0aWFsaXplIHRoZSBQU0EgY3J5cHRvIGxpYnJhcnkuICovCi0gICAgbWJlZHRsc19wc2FfY3J5cHRvX2ZyZWUoKTsKLQotZXhpdDoKLSAgICByZXR1cm4gc3RhdHVzID09IFBTQV9TVUNDRVNTID8gRVhJVF9TVUNDRVNTIDogRVhJVF9GQUlMVVJFOwotfQotCi0jZW5kaWYKZGlmZiAtLWdpdCBhL3Rlc3RzL3BzYS1jbGllbnQtc2VydmVyL3BzYXNpbS9zcmMvYXV0X3BzYV9hZWFkX2VuY3J5cHQuYyBiL3Rlc3RzL3BzYS1jbGllbnQtc2VydmVyL3BzYXNpbS9zcmMvYXV0X3BzYV9hZWFkX2VuY3J5cHQuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42NDQ2M2Y1Ci0tLSAvZGV2L251bGwKKysrIGIvdGVzdHMvcHNhLWNsaWVudC1zZXJ2ZXIvcHNhc2ltL3NyYy9hdXRfcHNhX2FlYWRfZW5jcnlwdC5jCkBAIC0wLDAgKzEsMjI3IEBACisvKgorICogIENvcHlyaWdodCBUaGUgTWJlZCBUTFMgQ29udHJpYnV0b3JzCisgKiAgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjAgT1IgR1BMLTIuMC1vci1sYXRlcgorICovCisKKyNpbmNsdWRlICJtYmVkdGxzL2J1aWxkX2luZm8uaCIKKworI2luY2x1ZGUgInBzYS9jcnlwdG8uaCIKKworI2luY2x1ZGUgPHN0ZGxpYi5oPgorI2luY2x1ZGUgPHN0ZGlvLmg+CisjaW5jbHVkZSA8c3RyaW5nLmg+CisKK2NvbnN0IGNoYXIgdXNhZ2VbXSA9CisgICAgIlVzYWdlOiBhZWFkX2RlbW8gW2FlczEyOC1nY218YWVzMjU2LWdjbXxhZXMxMjgtZ2NtXzh8Y2hhY2hhcG9seV0iOworCisvKiBEdW1teSBkYXRhIGZvciBlbmNyeXB0aW9uOiBJVi9ub25jZSwgYWRkaXRpb25hbCBkYXRhLCAyLXBhcnQgbWVzc2FnZSAqLworY29uc3QgdW5zaWduZWQgY2hhciBpdjFbMTJdID0geyAweDAwIH07Citjb25zdCB1bnNpZ25lZCBjaGFyIGFkZF9kYXRhMVtdID0geyAweDAxLCAweDAyIH07Citjb25zdCB1bnNpZ25lZCBjaGFyIG1zZzFfcGFydDFbXSA9IHsgMHgwMywgMHgwNCB9OworY29uc3QgdW5zaWduZWQgY2hhciBtc2cxX3BhcnQyW10gPSB7IDB4MDUsIDB4MDYsIDB4MDcgfTsKKworLyogRHVtbXkgZGF0YSAoMm5kIG1lc3NhZ2UpICovCitjb25zdCB1bnNpZ25lZCBjaGFyIGl2MlsxMl0gPSB7IDB4MTAgfTsKK2NvbnN0IHVuc2lnbmVkIGNoYXIgYWRkX2RhdGEyW10gPSB7IDB4MTEsIDB4MTIgfTsKK2NvbnN0IHVuc2lnbmVkIGNoYXIgbXNnMl9wYXJ0MVtdID0geyAweDEzLCAweDE0IH07Citjb25zdCB1bnNpZ25lZCBjaGFyIG1zZzJfcGFydDJbXSA9IHsgMHgxNSwgMHgxNiwgMHgxNyB9OworCisvKiBNYXhpbXVtIHRvdGFsIHNpemUgb2YgdGhlIG1lc3NhZ2VzICovCisjZGVmaW5lIE1TRzFfU0laRSAoc2l6ZW9mKG1zZzFfcGFydDEpICsgc2l6ZW9mKG1zZzFfcGFydDIpKQorI2RlZmluZSBNU0cyX1NJWkUgKHNpemVvZihtc2cyX3BhcnQxKSArIHNpemVvZihtc2cyX3BhcnQyKSkKKyNkZWZpbmUgTVNHX01BWF9TSVpFIChNU0cxX1NJWkUgPiBNU0cyX1NJWkUgPyBNU0cxX1NJWkUgOiBNU0cyX1NJWkUpCisKKy8qIER1bW15IGtleSBtYXRlcmlhbCAtIG5ldmVyIGRvIHRoaXMgaW4gcHJvZHVjdGlvbiEKKyAqIDMyLWJ5dGUgaXMgZW5vdWdoIHRvIGFsbCB0aGUga2V5IHNpemUgc3VwcG9ydGVkIGJ5IHRoaXMgcHJvZ3JhbS4gKi8KK2NvbnN0IHVuc2lnbmVkIGNoYXIga2V5X2J5dGVzWzMyXSA9IHsgMHgyYSB9OworCisvKiBQcmludCB0aGUgY29udGVudHMgb2YgYSBidWZmZXIgaW4gaGV4ICovCit2b2lkIHByaW50X2J1Zihjb25zdCBjaGFyICp0aXRsZSwgdWludDhfdCAqYnVmLCBzaXplX3QgbGVuKQoreworICAgIHByaW50ZigiJXM6IiwgdGl0bGUpOworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbGVuOyBpKyspIHsKKyAgICAgICAgcHJpbnRmKCIgJTAyeCIsIGJ1ZltpXSk7CisgICAgfQorICAgIHByaW50ZigiXG4iKTsKK30KKworLyogUnVuIGEgUFNBIGZ1bmN0aW9uIGFuZCBiYWlsIG91dCBpZiBpdCBmYWlscy4KKyAqIFRoZSBzeW1ib2xpYyBuYW1lIG9mIHRoZSBlcnJvciBjb2RlIGNhbiBiZSByZWNvdmVyZWQgdXNpbmc6CisgKiBwcm9ncmFtcy9wc2EvcHNhX2NvbnN0YW50X25hbWUgc3RhdHVzIDx2YWx1ZT4gKi8KKyNkZWZpbmUgUFNBX0NIRUNLKGV4cHIpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIGRvICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgIHN0YXR1cyA9IChleHByKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgaWYgKHN0YXR1cyAhPSBQU0FfU1VDQ0VTUykgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgICAgICBwcmludGYoIkVycm9yICVkIGF0IGxpbmUgJWQ6ICVzXG4iLCAgICAgICAgICAgICAgICBcCisgICAgICAgICAgICAgICAgICAgKGludCkgc3RhdHVzLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgICAgICAgICAgICAgX19MSU5FX18sICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgICAgICAgICAgICAgI2V4cHIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgICAgIGdvdG8gZXhpdDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgIH0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIH0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICB3aGlsZSAoMCkKKworLyoKKyAqIFByZXBhcmUgZW5jcnlwdGlvbiBtYXRlcmlhbDoKKyAqIC0gaW50ZXJwcmV0IGNvbW1hbmQtbGluZSBhcmd1bWVudAorICogLSBzZXQgdXAga2V5CisgKiAtIG91dHB1dHM6IGtleSBhbmQgYWxnb3JpdGhtLCB3aGljaCB0b2dldGhlciBob2xkIGFsbCB0aGUgaW5mb3JtYXRpb24KKyAqLworc3RhdGljIHBzYV9zdGF0dXNfdCBhZWFkX3ByZXBhcmUoY29uc3QgY2hhciAqaW5mbywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBzYV9rZXlfaWRfdCAqa2V5LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHNhX2FsZ29yaXRobV90ICphbGcpCit7CisgICAgcHNhX3N0YXR1c190IHN0YXR1czsKKworICAgIC8qIENvbnZlcnQgYXJnIHRvIGFsZyArIGtleV9iaXRzICsga2V5X3R5cGUgKi8KKyAgICBzaXplX3Qga2V5X2JpdHM7CisgICAgcHNhX2tleV90eXBlX3Qga2V5X3R5cGU7CisgICAgaWYgKHN0cmNtcChpbmZvLCAiYWVzMTI4LWdjbSIpID09IDApIHsKKyAgICAgICAgKmFsZyA9IFBTQV9BTEdfR0NNOworICAgICAgICBrZXlfYml0cyA9IDEyODsKKyAgICAgICAga2V5X3R5cGUgPSBQU0FfS0VZX1RZUEVfQUVTOworICAgIH0gZWxzZSBpZiAoc3RyY21wKGluZm8sICJhZXMyNTYtZ2NtIikgPT0gMCkgeworICAgICAgICAqYWxnID0gUFNBX0FMR19HQ007CisgICAgICAgIGtleV9iaXRzID0gMjU2OworICAgICAgICBrZXlfdHlwZSA9IFBTQV9LRVlfVFlQRV9BRVM7CisgICAgfSBlbHNlIGlmIChzdHJjbXAoaW5mbywgImFlczEyOC1nY21fOCIpID09IDApIHsKKyAgICAgICAgKmFsZyA9IFBTQV9BTEdfQUVBRF9XSVRIX1NIT1JURU5FRF9UQUcoUFNBX0FMR19HQ00sIDgpOworICAgICAgICBrZXlfYml0cyA9IDEyODsKKyAgICAgICAga2V5X3R5cGUgPSBQU0FfS0VZX1RZUEVfQUVTOworICAgIH0gZWxzZSBpZiAoc3RyY21wKGluZm8sICJjaGFjaGFwb2x5IikgPT0gMCkgeworICAgICAgICAqYWxnID0gUFNBX0FMR19DSEFDSEEyMF9QT0xZMTMwNTsKKyAgICAgICAga2V5X2JpdHMgPSAyNTY7CisgICAgICAgIGtleV90eXBlID0gUFNBX0tFWV9UWVBFX0NIQUNIQTIwOworICAgIH0gZWxzZSB7CisgICAgICAgIHB1dHModXNhZ2UpOworICAgICAgICByZXR1cm4gUFNBX0VSUk9SX0lOVkFMSURfQVJHVU1FTlQ7CisgICAgfQorCisgICAgLyogUHJlcGFyZSBrZXkgYXR0cmlidXRlcyAqLworICAgIHBzYV9rZXlfYXR0cmlidXRlc190IGF0dHJpYnV0ZXMgPSBQU0FfS0VZX0FUVFJJQlVURVNfSU5JVDsKKyAgICBwc2Ffc2V0X2tleV91c2FnZV9mbGFncygmYXR0cmlidXRlcywgUFNBX0tFWV9VU0FHRV9FTkNSWVBUKTsKKyAgICBwc2Ffc2V0X2tleV9hbGdvcml0aG0oJmF0dHJpYnV0ZXMsICphbGcpOworICAgIHBzYV9zZXRfa2V5X3R5cGUoJmF0dHJpYnV0ZXMsIGtleV90eXBlKTsKKyAgICBwc2Ffc2V0X2tleV9iaXRzKCZhdHRyaWJ1dGVzLCBrZXlfYml0cyk7ICAgLy8gb3B0aW9uYWwKKworICAgIC8qIEltcG9ydCBrZXkgKi8KKyAgICBQU0FfQ0hFQ0socHNhX2ltcG9ydF9rZXkoJmF0dHJpYnV0ZXMsIGtleV9ieXRlcywga2V5X2JpdHMgLyA4LCBrZXkpKTsKKworZXhpdDoKKyAgICByZXR1cm4gc3RhdHVzOworfQorCisvKgorICogUHJpbnQgb3V0IHNvbWUgaW5mb3JtYXRpb24uCisgKgorICogQWxsIG9mIHRoaXMgaW5mb3JtYXRpb24gd2FzIHByZXNlbnQgaW4gdGhlIGNvbW1hbmQgbGluZSBhcmd1bWVudCwgYnV0IGhpcworICogZnVuY3Rpb24gZGVtb25zdHJhdGVzIGhvdyBlYWNoIHBpZWNlIGNhbiBiZSByZWNvdmVyZWQgZnJvbSAoa2V5LCBhbGcpLgorICovCitzdGF0aWMgdm9pZCBhZWFkX2luZm8ocHNhX2tleV9pZF90IGtleSwgcHNhX2FsZ29yaXRobV90IGFsZykKK3sKKyAgICBwc2Ffa2V5X2F0dHJpYnV0ZXNfdCBhdHRyID0gUFNBX0tFWV9BVFRSSUJVVEVTX0lOSVQ7CisgICAgKHZvaWQpIHBzYV9nZXRfa2V5X2F0dHJpYnV0ZXMoa2V5LCAmYXR0cik7CisgICAgcHNhX2tleV90eXBlX3Qga2V5X3R5cGUgPSBwc2FfZ2V0X2tleV90eXBlKCZhdHRyKTsKKyAgICBzaXplX3Qga2V5X2JpdHMgPSBwc2FfZ2V0X2tleV9iaXRzKCZhdHRyKTsKKyAgICBwc2FfYWxnb3JpdGhtX3QgYmFzZV9hbGcgPSBQU0FfQUxHX0FFQURfV0lUSF9ERUZBVUxUX0xFTkdUSF9UQUcoYWxnKTsKKyAgICBzaXplX3QgdGFnX2xlbiA9IFBTQV9BRUFEX1RBR19MRU5HVEgoa2V5X3R5cGUsIGtleV9iaXRzLCBhbGcpOworCisgICAgY29uc3QgY2hhciAqdHlwZV9zdHIgPSBrZXlfdHlwZSA9PSBQU0FfS0VZX1RZUEVfQUVTID8gIkFFUyIKKyAgICAgICAgICAgICAgICAgICAgICAgICA6IGtleV90eXBlID09IFBTQV9LRVlfVFlQRV9DSEFDSEEyMCA/ICJDaGFjaGEiCisgICAgICAgICAgICAgICAgICAgICAgICAgOiAiPz8/IjsKKyAgICBjb25zdCBjaGFyICpiYXNlX3N0ciA9IGJhc2VfYWxnID09IFBTQV9BTEdfR0NNID8gIkdDTSIKKyAgICAgICAgICAgICAgICAgICAgICAgICA6IGJhc2VfYWxnID09IFBTQV9BTEdfQ0hBQ0hBMjBfUE9MWTEzMDUgPyAiQ2hhY2hhUG9seSIKKyAgICAgICAgICAgICAgICAgICAgICAgICA6ICI/Pz8iOworCisgICAgcHJpbnRmKCIlcywgJXUsICVzLCAldVxuIiwKKyAgICAgICAgICAgdHlwZV9zdHIsICh1bnNpZ25lZCkga2V5X2JpdHMsIGJhc2Vfc3RyLCAodW5zaWduZWQpIHRhZ19sZW4pOworfQorCisvKgorICogRW5jcnlwdCBhIDItcGFydCBtZXNzYWdlLgorICovCitzdGF0aWMgaW50IGFlYWRfZW5jcnlwdChwc2Ffa2V5X2lkX3Qga2V5LCBwc2FfYWxnb3JpdGhtX3QgYWxnLAorICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdW5zaWduZWQgY2hhciAqaXYsIHNpemVfdCBpdl9sZW4sCisgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1bnNpZ25lZCBjaGFyICphZCwgc2l6ZV90IGFkX2xlbiwKKyAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgKnBhcnQxLCBzaXplX3QgcGFydDFfbGVuLAorICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdW5zaWduZWQgY2hhciAqcGFydDIsIHNpemVfdCBwYXJ0Ml9sZW4pCit7CisgICAgcHNhX3N0YXR1c190IHN0YXR1czsKKyAgICBzaXplX3Qgb2xlbiwgb2xlbl90YWc7CisgICAgdW5zaWduZWQgY2hhciBvdXRbUFNBX0FFQURfRU5DUllQVF9PVVRQVVRfTUFYX1NJWkUoTVNHX01BWF9TSVpFKV07CisgICAgdW5zaWduZWQgY2hhciAqcCA9IG91dCwgKmVuZCA9IG91dCArIHNpemVvZihvdXQpOworICAgIHVuc2lnbmVkIGNoYXIgdGFnW1BTQV9BRUFEX1RBR19NQVhfU0laRV07CisKKyAgICBwc2FfYWVhZF9vcGVyYXRpb25fdCBvcCA9IFBTQV9BRUFEX09QRVJBVElPTl9JTklUOworICAgIFBTQV9DSEVDSyhwc2FfYWVhZF9lbmNyeXB0X3NldHVwKCZvcCwga2V5LCBhbGcpKTsKKworICAgIFBTQV9DSEVDSyhwc2FfYWVhZF9zZXRfbm9uY2UoJm9wLCBpdiwgaXZfbGVuKSk7CisgICAgUFNBX0NIRUNLKHBzYV9hZWFkX3VwZGF0ZV9hZCgmb3AsIGFkLCBhZF9sZW4pKTsKKyAgICBQU0FfQ0hFQ0socHNhX2FlYWRfdXBkYXRlKCZvcCwgcGFydDEsIHBhcnQxX2xlbiwgcCwgZW5kIC0gcCwgJm9sZW4pKTsKKyAgICBwICs9IG9sZW47CisgICAgUFNBX0NIRUNLKHBzYV9hZWFkX3VwZGF0ZSgmb3AsIHBhcnQyLCBwYXJ0Ml9sZW4sIHAsIGVuZCAtIHAsICZvbGVuKSk7CisgICAgcCArPSBvbGVuOworICAgIFBTQV9DSEVDSyhwc2FfYWVhZF9maW5pc2goJm9wLCBwLCBlbmQgLSBwLCAmb2xlbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhZywgc2l6ZW9mKHRhZyksICZvbGVuX3RhZykpOworICAgIHAgKz0gb2xlbjsKKyAgICBtZW1jcHkocCwgdGFnLCBvbGVuX3RhZyk7CisgICAgcCArPSBvbGVuX3RhZzsKKworICAgIG9sZW4gPSBwIC0gb3V0OworICAgIHByaW50X2J1Zigib3V0Iiwgb3V0LCBvbGVuKTsKKworZXhpdDoKKyAgICBwc2FfYWVhZF9hYm9ydCgmb3ApOyAgIC8vIHJlcXVpcmVkIG9uIGVycm9ycywgaGFybWxlc3Mgb24gc3VjY2VzcworICAgIHJldHVybiBzdGF0dXM7Cit9CisKKy8qCisgKiBBRUFEIGRlbW86IHNldCB1cCBrZXkvYWxnLCBwcmludCBvdXQgaW5mbywgZW5jcnlwdCBtZXNzYWdlcy4KKyAqLworc3RhdGljIHBzYV9zdGF0dXNfdCBhZWFkX2RlbW8oY29uc3QgY2hhciAqaW5mbykKK3sKKyAgICBwc2Ffc3RhdHVzX3Qgc3RhdHVzOworCisgICAgcHNhX2tleV9pZF90IGtleTsKKyAgICBwc2FfYWxnb3JpdGhtX3QgYWxnOworCisgICAgUFNBX0NIRUNLKGFlYWRfcHJlcGFyZShpbmZvLCAma2V5LCAmYWxnKSk7CisKKyAgICBhZWFkX2luZm8oa2V5LCBhbGcpOworCisgICAgUFNBX0NIRUNLKGFlYWRfZW5jcnlwdChrZXksIGFsZywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIGl2MSwgc2l6ZW9mKGl2MSksIGFkZF9kYXRhMSwgc2l6ZW9mKGFkZF9kYXRhMSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICBtc2cxX3BhcnQxLCBzaXplb2YobXNnMV9wYXJ0MSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICBtc2cxX3BhcnQyLCBzaXplb2YobXNnMV9wYXJ0MikpKTsKKyAgICBQU0FfQ0hFQ0soYWVhZF9lbmNyeXB0KGtleSwgYWxnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgaXYyLCBzaXplb2YoaXYyKSwgYWRkX2RhdGEyLCBzaXplb2YoYWRkX2RhdGEyKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIG1zZzJfcGFydDEsIHNpemVvZihtc2cyX3BhcnQxKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIG1zZzJfcGFydDIsIHNpemVvZihtc2cyX3BhcnQyKSkpOworCitleGl0OgorICAgIHBzYV9kZXN0cm95X2tleShrZXkpOworCisgICAgcmV0dXJuIHN0YXR1czsKK30KKworLyoKKyAqIE1haW4gZnVuY3Rpb24KKyAqLworaW50IHBzYV9hZWFkX2VuY3J5cHRfbWFpbihjaGFyICpjaXBoZXJfbmFtZSkKK3sKKyAgICBwc2Ffc3RhdHVzX3Qgc3RhdHVzID0gUFNBX1NVQ0NFU1M7CisKKyAgICAvKiBJbml0aWFsaXplIHRoZSBQU0EgY3J5cHRvIGxpYnJhcnkuICovCisgICAgUFNBX0NIRUNLKHBzYV9jcnlwdG9faW5pdCgpKTsKKworICAgIC8qIFJ1biB0aGUgZGVtbyAqLworICAgIFBTQV9DSEVDSyhhZWFkX2RlbW8oY2lwaGVyX25hbWUpKTsKKworICAgIC8qIERlaW5pdGlhbGl6ZSB0aGUgUFNBIGNyeXB0byBsaWJyYXJ5LiAqLworICAgIG1iZWR0bHNfcHNhX2NyeXB0b19mcmVlKCk7CisKK2V4aXQ6CisgICAgcmV0dXJuIHN0YXR1cyA9PSBQU0FfU1VDQ0VTUyA/IEVYSVRfU1VDQ0VTUyA6IEVYSVRfRkFJTFVSRTsKK30KZGlmZiAtLWdpdCBhL3Rlc3RzL3BzYS1jbGllbnQtc2VydmVyL3BzYXNpbS9zcmMvYXV0X3BzYV9hZWFkX2VuY3J5cHRfZGVjcnlwdC5jIGIvdGVzdHMvcHNhLWNsaWVudC1zZXJ2ZXIvcHNhc2ltL3NyYy9hdXRfcHNhX2FlYWRfZW5jcnlwdF9kZWNyeXB0LmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uY2EwOTBjYwotLS0gL2Rldi9udWxsCisrKyBiL3Rlc3RzL3BzYS1jbGllbnQtc2VydmVyL3BzYXNpbS9zcmMvYXV0X3BzYV9hZWFkX2VuY3J5cHRfZGVjcnlwdC5jCkBAIC0wLDAgKzEsMTA5IEBACisvKgorICogIENvcHlyaWdodCBUaGUgTWJlZCBUTFMgQ29udHJpYnV0b3JzCisgKiAgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjAgT1IgR1BMLTIuMC1vci1sYXRlcgorICovCisKKyNpbmNsdWRlICJwc2EvY3J5cHRvLmgiCisjaW5jbHVkZSA8c3RyaW5nLmg+CisjaW5jbHVkZSA8c3RkaW8uaD4KKyNpbmNsdWRlIDxzdGRsaWIuaD4KKworI2RlZmluZSBCVUZGRVJfU0laRSA1MDAKKworc3RhdGljIHZvaWQgcHJpbnRfYnl0ZXN0cihjb25zdCB1aW50OF90ICpieXRlcywgc2l6ZV90IGxlbikKK3sKKyAgICBmb3IgKHVuc2lnbmVkIGludCBpZHggPSAwOyBpZHggPCBsZW47IGlkeCsrKSB7CisgICAgICAgIHByaW50ZigiJTAyWCIsIGJ5dGVzW2lkeF0pOworICAgIH0KK30KKworaW50IHBzYV9hZWFkX2VuY3J5cHRfZGVjcnlwdF9tYWluKHZvaWQpCit7CisgICAgcHNhX3N0YXR1c190IHN0YXR1czsKKyAgICBwc2Ffa2V5X2F0dHJpYnV0ZXNfdCBhdHRyaWJ1dGVzID0gUFNBX0tFWV9BVFRSSUJVVEVTX0lOSVQ7CisgICAgcHNhX2tleV9pZF90IGtleV9pZCA9IDA7CisgICAgdWludDhfdCBlbmNyeXB0W0JVRkZFUl9TSVpFXSA9IHsgMCB9OworICAgIHVpbnQ4X3QgZGVjcnlwdFtCVUZGRVJfU0laRV0gPSB7IDAgfTsKKyAgICBjb25zdCB1aW50OF90IHBsYWludGV4dFtdID0gIkhlbGxvIFdvcmxkISI7CisgICAgY29uc3QgdWludDhfdCBrZXlfYnl0ZXNbMzJdID0gImFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhIjsKKyAgICB1aW50OF90IG5vbmNlW1BTQV9BRUFEX05PTkNFX0xFTkdUSChQU0FfS0VZX1RZUEVfQUVTLCBQU0FfQUxHX0NDTSldOworICAgIHNpemVfdCBub25jZV9sZW5ndGggPSBzaXplb2Yobm9uY2UpOworICAgIHNpemVfdCBjaXBoZXJ0ZXh0X2xlbmd0aDsKKyAgICBzaXplX3QgcGxhaW50ZXh0X2xlbmd0aDsKKworICAgIHN0YXR1cyA9IHBzYV9jcnlwdG9faW5pdCgpOworICAgIGlmIChzdGF0dXMgIT0gUFNBX1NVQ0NFU1MpIHsKKyAgICAgICAgcHJpbnRmKCJwc2FfY3J5cHRvX2luaXQgZmFpbGVkXG4iKTsKKyAgICAgICAgcmV0dXJuIEVYSVRfRkFJTFVSRTsKKyAgICB9CisKKyAgICBwc2Ffc2V0X2tleV91c2FnZV9mbGFncygmYXR0cmlidXRlcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBQU0FfS0VZX1VTQUdFX0VOQ1JZUFQgfCBQU0FfS0VZX1VTQUdFX0RFQ1JZUFQpOworICAgIHBzYV9zZXRfa2V5X2FsZ29yaXRobSgmYXR0cmlidXRlcywgUFNBX0FMR19DQ00pOworICAgIHBzYV9zZXRfa2V5X3R5cGUoJmF0dHJpYnV0ZXMsIFBTQV9LRVlfVFlQRV9BRVMpOworICAgIHBzYV9zZXRfa2V5X2JpdHMoJmF0dHJpYnV0ZXMsIDI1Nik7CisKKyAgICBzdGF0dXMgPSBwc2FfaW1wb3J0X2tleSgmYXR0cmlidXRlcywga2V5X2J5dGVzLCBzaXplb2Yoa2V5X2J5dGVzKSwgJmtleV9pZCk7CisgICAgaWYgKHN0YXR1cyAhPSBQU0FfU1VDQ0VTUykgeworICAgICAgICBwcmludGYoInBzYV9pbXBvcnRfa2V5IGZhaWxlZFxuIik7CisgICAgICAgIHJldHVybiBFWElUX0ZBSUxVUkU7CisgICAgfQorCisgICAgc3RhdHVzID0gcHNhX2dlbmVyYXRlX3JhbmRvbShub25jZSwgbm9uY2VfbGVuZ3RoKTsKKyAgICBpZiAoc3RhdHVzICE9IFBTQV9TVUNDRVNTKSB7CisgICAgICAgIHByaW50ZigicHNhX2dlbmVyYXRlX3JhbmRvbSBmYWlsZWRcbiIpOworICAgICAgICByZXR1cm4gRVhJVF9GQUlMVVJFOworICAgIH0KKworICAgIHN0YXR1cyA9IHBzYV9hZWFkX2VuY3J5cHQoa2V5X2lkLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBrZXkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBTQV9BTEdfQ0NNLCAgICAgICAgICAgICAgICAgICAgICAgLy8gYWxnb3JpdGhtCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub25jZSwgbm9uY2VfbGVuZ3RoLCAgICAgICAgICAgICAgIC8vIG5vbmNlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOVUxMLCAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGFkZGl0aW9uYWwgZGF0YQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGxhaW50ZXh0LCBzaXplb2YocGxhaW50ZXh0KSwgICAgICAvLyBwbGFpbnRleHQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuY3J5cHQsIHNpemVvZihlbmNyeXB0KSwgICAgICAgICAgLy8gY2lwaGVydGV4dAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJmNpcGhlcnRleHRfbGVuZ3RoKTsgICAgICAgICAgICAgICAvLyBsZW5ndGggb2Ygb3V0cHV0CisgICAgaWYgKHN0YXR1cyAhPSBQU0FfU1VDQ0VTUykgeworICAgICAgICBwcmludGYoInBzYV9hZWFkX2VuY3J5cHQgZmFpbGVkXG4iKTsKKyAgICAgICAgcmV0dXJuIEVYSVRfRkFJTFVSRTsKKyAgICB9CisKKyAgICBwcmludGYoIkFFUy1DQ00gZW5jcnlwdGlvbjpcbiIpOworICAgIHByaW50ZigiLSBQbGFpbnRleHQ6ICclcyc6XG4iLCBwbGFpbnRleHQpOworICAgIHByaW50ZigiLSBLZXk6ICIpOworICAgIHByaW50X2J5dGVzdHIoa2V5X2J5dGVzLCBzaXplb2Yoa2V5X2J5dGVzKSk7CisgICAgcHJpbnRmKCJcbi0gTm9uY2U6ICIpOworICAgIHByaW50X2J5dGVzdHIobm9uY2UsIG5vbmNlX2xlbmd0aCk7CisgICAgcHJpbnRmKCJcbi0gTm8gYWRkaXRpb25hbCBkYXRhXG4iKTsKKyAgICBwcmludGYoIi0gQ2lwaGVydGV4dDpcbiIpOworCisgICAgZm9yIChzaXplX3QgaiA9IDA7IGogPCBjaXBoZXJ0ZXh0X2xlbmd0aDsgaisrKSB7CisgICAgICAgIGlmIChqICUgOCA9PSAwKSB7CisgICAgICAgICAgICBwcmludGYoIlxuICAgICIpOworICAgICAgICB9CisgICAgICAgIHByaW50ZigiJTAyeCAiLCBlbmNyeXB0W2pdKTsKKyAgICB9CisKKyAgICBwcmludGYoIlxuIik7CisKKyAgICBzdGF0dXMgPSBwc2FfYWVhZF9kZWNyeXB0KGtleV9pZCwgICAgICAgICAgICAgICAgICAgICAgIC8vIGtleQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUFNBX0FMR19DQ00sICAgICAgICAgICAgICAgICAgLy8gYWxnb3JpdGhtCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub25jZSwgbm9uY2VfbGVuZ3RoLCAgICAgICAgICAvLyBub25jZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCwgMCwgICAgICAgICAgICAgICAgICAgICAgLy8gYWRkaXRpb25hbCBkYXRhCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmNyeXB0LCBjaXBoZXJ0ZXh0X2xlbmd0aCwgICAvLyBjaXBoZXJ0ZXh0CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWNyeXB0LCBzaXplb2YoZGVjcnlwdCksICAgICAvLyBwbGFpbnRleHQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZwbGFpbnRleHRfbGVuZ3RoKTsgICAgICAgICAgIC8vIGxlbmd0aCBvZiBvdXRwdXQKKyAgICBpZiAoc3RhdHVzICE9IFBTQV9TVUNDRVNTKSB7CisgICAgICAgIHByaW50ZigicHNhX2FlYWRfZGVjcnlwdCBmYWlsZWRcbiIpOworICAgICAgICByZXR1cm4gRVhJVF9GQUlMVVJFOworICAgIH0KKworICAgIGlmIChtZW1jbXAocGxhaW50ZXh0LCBkZWNyeXB0LCBzaXplb2YocGxhaW50ZXh0KSkgIT0gMCkgeworICAgICAgICBwcmludGYoIlxuRW5jcnlwdGlvbi9EZWNyeXB0aW9uIGZhaWxlZCFcbiIpOworICAgIH0gZWxzZSB7CisgICAgICAgIHByaW50ZigiXG5FbmNyeXB0aW9uL0RlY3J5cHRpb24gc3VjY2Vzc2Z1bCFcbiIpOworICAgIH0KKworICAgIHBzYV9kZXN0cm95X2tleShrZXlfaWQpOworICAgIG1iZWR0bHNfcHNhX2NyeXB0b19mcmVlKCk7CisgICAgcmV0dXJuIDA7Cit9CmRpZmYgLS1naXQgYS90ZXN0cy9wc2EtY2xpZW50LXNlcnZlci9wc2FzaW0vc3JjL2F1dF9wc2FfYXN5bW1ldHJpY19lbmNyeXB0X2RlY3J5cHQuYyBiL3Rlc3RzL3BzYS1jbGllbnQtc2VydmVyL3BzYXNpbS9zcmMvYXV0X3BzYV9hc3ltbWV0cmljX2VuY3J5cHRfZGVjcnlwdC5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjAyZDhjZjQKLS0tIC9kZXYvbnVsbAorKysgYi90ZXN0cy9wc2EtY2xpZW50LXNlcnZlci9wc2FzaW0vc3JjL2F1dF9wc2FfYXN5bW1ldHJpY19lbmNyeXB0X2RlY3J5cHQuYwpAQCAtMCwwICsxLDgxIEBACisvKgorICogIENvcHlyaWdodCBUaGUgTWJlZCBUTFMgQ29udHJpYnV0b3JzCisgKiAgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjAgT1IgR1BMLTIuMC1vci1sYXRlcgorICovCisKKyNpbmNsdWRlICJwc2EvY3J5cHRvLmgiCisjaW5jbHVkZSA8c3RyaW5nLmg+CisjaW5jbHVkZSA8c3RkaW8uaD4KKyNpbmNsdWRlIDxzdGRsaWIuaD4KKworI2RlZmluZSBLRVlfQklUUyAgICAgICAgNDA5NgorI2RlZmluZSBCVUZGRVJfU0laRSAgICAgUFNBX0JJVFNfVE9fQllURVMoS0VZX0JJVFMpCisKK3N0YXRpYyB2b2lkIHByaW50X2J5dGVzdHIoY29uc3QgdWludDhfdCAqYnl0ZXMsIHNpemVfdCBsZW4pCit7CisgICAgZm9yICh1bnNpZ25lZCBpbnQgaWR4ID0gMDsgaWR4IDwgbGVuOyBpZHgrKykgeworICAgICAgICBwcmludGYoIiUwMlgiLCBieXRlc1tpZHhdKTsKKyAgICB9Cit9CisKK2ludCBwc2FfYXN5bW1ldHJpY19lbmNyeXB0X2RlY3J5cHRfbWFpbih2b2lkKQoreworICAgIHBzYV9zdGF0dXNfdCBzdGF0dXM7CisgICAgcHNhX2tleV9hdHRyaWJ1dGVzX3QgYXR0cmlidXRlcyA9IFBTQV9LRVlfQVRUUklCVVRFU19JTklUOworICAgIHBzYV9rZXlfaWRfdCBrZXlfaWQgPSAwOworICAgIHVpbnQ4X3Qgb3JpZ2luYWxbQlVGRkVSX1NJWkUvMl0gPSB7IDAgfTsKKyAgICB1aW50OF90IGVuY3J5cHRbQlVGRkVSX1NJWkVdID0geyAwIH07CisgICAgdWludDhfdCBkZWNyeXB0W0JVRkZFUl9TSVpFXSA9IHsgMCB9OworICAgIHNpemVfdCBlbmNyeXB0ZWRfbGVuZ3RoOworICAgIHNpemVfdCBkZWNyeXB0ZWRfbGVuZ3RoOworCisgICAgc3RhdHVzID0gcHNhX2NyeXB0b19pbml0KCk7CisgICAgaWYgKHN0YXR1cyAhPSBQU0FfU1VDQ0VTUykgeworICAgICAgICBwcmludGYoInBzYV9jcnlwdG9faW5pdCBmYWlsZWRcbiIpOworICAgICAgICByZXR1cm4gRVhJVF9GQUlMVVJFOworICAgIH0KKworICAgIHN0YXR1cyA9IHBzYV9nZW5lcmF0ZV9yYW5kb20ob3JpZ2luYWwsIHNpemVvZihvcmlnaW5hbCkpOworICAgIGlmIChzdGF0dXMgIT0gUFNBX1NVQ0NFU1MpIHsKKyAgICAgICAgcHJpbnRmKCJwc2FfZ2VuZXJhdGVfcmFuZG9tKCkgZmFpbGVkXG4iKTsKKyAgICAgICAgcmV0dXJuIEVYSVRfRkFJTFVSRTsKKyAgICB9CisKKyAgICBwc2Ffc2V0X2tleV91c2FnZV9mbGFncygmYXR0cmlidXRlcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBQU0FfS0VZX1VTQUdFX0VOQ1JZUFQgfCBQU0FfS0VZX1VTQUdFX0RFQ1JZUFQpOworICAgIHBzYV9zZXRfa2V5X2FsZ29yaXRobSgmYXR0cmlidXRlcywgUFNBX0FMR19SU0FfUEtDUzFWMTVfQ1JZUFQpOworICAgIHBzYV9zZXRfa2V5X3R5cGUoJmF0dHJpYnV0ZXMsIFBTQV9LRVlfVFlQRV9SU0FfS0VZX1BBSVIpOworICAgIHBzYV9zZXRfa2V5X2JpdHMoJmF0dHJpYnV0ZXMsIEtFWV9CSVRTKTsKKworICAgIHN0YXR1cyA9IHBzYV9nZW5lcmF0ZV9rZXkoJmF0dHJpYnV0ZXMsICZrZXlfaWQpOworICAgIGlmIChzdGF0dXMgIT0gUFNBX1NVQ0NFU1MpIHsKKyAgICAgICAgcHJpbnRmKCJwc2FfZ2VuZXJhdGVfa2V5IGZhaWxlZCAoJWQpXG4iLCBzdGF0dXMpOworICAgICAgICByZXR1cm4gRVhJVF9GQUlMVVJFOworICAgIH0KKworICAgIHN0YXR1cyA9IHBzYV9hc3ltbWV0cmljX2VuY3J5cHQoa2V5X2lkLCBQU0FfQUxHX1JTQV9QS0NTMVYxNV9DUllQVCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9yaWdpbmFsLCBzaXplb2Yob3JpZ2luYWwpLCBOVUxMLCAwLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5jcnlwdCwgc2l6ZW9mKGVuY3J5cHQpLCAmZW5jcnlwdGVkX2xlbmd0aCk7CisgICAgaWYgKHN0YXR1cyAhPSBQU0FfU1VDQ0VTUykgeworICAgICAgICBwcmludGYoInBzYV9hc3ltbWV0cmljX2VuY3J5cHQgZmFpbGVkICglZClcbiIsIHN0YXR1cyk7CisgICAgICAgIHJldHVybiBFWElUX0ZBSUxVUkU7CisgICAgfQorCisgICAgc3RhdHVzID0gcHNhX2FzeW1tZXRyaWNfZGVjcnlwdChrZXlfaWQsIFBTQV9BTEdfUlNBX1BLQ1MxVjE1X0NSWVBULAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5jcnlwdCwgZW5jcnlwdGVkX2xlbmd0aCwgTlVMTCwgMCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlY3J5cHQsIHNpemVvZihkZWNyeXB0KSwgJmRlY3J5cHRlZF9sZW5ndGgpOworICAgIGlmIChzdGF0dXMgIT0gUFNBX1NVQ0NFU1MpIHsKKyAgICAgICAgcHJpbnRmKCJwc2FfY2lwaGVyX2RlY3J5cHQgZmFpbGVkICglZClcbiIsIHN0YXR1cyk7CisgICAgICAgIHJldHVybiBFWElUX0ZBSUxVUkU7CisgICAgfQorCisgICAgaWYgKG1lbWNtcChvcmlnaW5hbCwgZGVjcnlwdCwgc2l6ZW9mKG9yaWdpbmFsKSkgIT0gMCkgeworICAgICAgICBwcmludGYoIlxuRW5jcnlwdGlvbi9EZWNyeXB0aW9uIGZhaWxlZCFcbiIpOworICAgIH0gZWxzZSB7CisgICAgICAgIHByaW50ZigiXG5FbmNyeXB0aW9uL0RlY3J5cHRpb24gc3VjY2Vzc2Z1bCFcbiIpOworICAgIH0KKworICAgIHBzYV9kZXN0cm95X2tleShrZXlfaWQpOworICAgIG1iZWR0bHNfcHNhX2NyeXB0b19mcmVlKCk7CisgICAgcmV0dXJuIDA7Cit9CmRpZmYgLS1naXQgYS90ZXN0cy9wc2EtY2xpZW50LXNlcnZlci9wc2FzaW0vc3JjL2F1dF9wc2FfY2lwaGVyX2VuY3J5cHRfZGVjcnlwdC5jIGIvdGVzdHMvcHNhLWNsaWVudC1zZXJ2ZXIvcHNhc2ltL3NyYy9hdXRfcHNhX2NpcGhlcl9lbmNyeXB0X2RlY3J5cHQuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hOTIzZmViCi0tLSAvZGV2L251bGwKKysrIGIvdGVzdHMvcHNhLWNsaWVudC1zZXJ2ZXIvcHNhc2ltL3NyYy9hdXRfcHNhX2NpcGhlcl9lbmNyeXB0X2RlY3J5cHQuYwpAQCAtMCwwICsxLDgxIEBACisvKgorICogIENvcHlyaWdodCBUaGUgTWJlZCBUTFMgQ29udHJpYnV0b3JzCisgKiAgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjAgT1IgR1BMLTIuMC1vci1sYXRlcgorICovCisKKyNpbmNsdWRlICJwc2EvY3J5cHRvLmgiCisjaW5jbHVkZSA8c3RyaW5nLmg+CisjaW5jbHVkZSA8c3RkaW8uaD4KKyNpbmNsdWRlIDxzdGRsaWIuaD4KKworI2RlZmluZSBCVUZGRVJfU0laRSA0MDk2CisKK3N0YXRpYyB2b2lkIHByaW50X2J5dGVzdHIoY29uc3QgdWludDhfdCAqYnl0ZXMsIHNpemVfdCBsZW4pCit7CisgICAgZm9yICh1bnNpZ25lZCBpbnQgaWR4ID0gMDsgaWR4IDwgbGVuOyBpZHgrKykgeworICAgICAgICBwcmludGYoIiUwMlgiLCBieXRlc1tpZHhdKTsKKyAgICB9Cit9CisKK2ludCBwc2FfY2lwaGVyX2VuY3J5cHRfZGVjcnlwdF9tYWluKHZvaWQpCit7CisgICAgcHNhX3N0YXR1c190IHN0YXR1czsKKyAgICBwc2Ffa2V5X2F0dHJpYnV0ZXNfdCBhdHRyaWJ1dGVzID0gUFNBX0tFWV9BVFRSSUJVVEVTX0lOSVQ7CisgICAgcHNhX2tleV9pZF90IGtleV9pZCA9IDA7CisgICAgdWludDhfdCBvcmlnaW5hbFtCVUZGRVJfU0laRV0gPSB7IDAgfTsKKyAgICB1aW50OF90IGVuY3J5cHRbQlVGRkVSX1NJWkVdID0geyAwIH07CisgICAgdWludDhfdCBkZWNyeXB0W0JVRkZFUl9TSVpFXSA9IHsgMCB9OworICAgIGNvbnN0IHVpbnQ4X3Qga2V5X2J5dGVzWzMyXSA9ICJhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYSI7CisgICAgc2l6ZV90IGVuY3J5cHRlZF9sZW5ndGg7CisgICAgc2l6ZV90IGRlY3J5cHRlZF9sZW5ndGg7CisKKyAgICBzdGF0dXMgPSBwc2FfY3J5cHRvX2luaXQoKTsKKyAgICBpZiAoc3RhdHVzICE9IFBTQV9TVUNDRVNTKSB7CisgICAgICAgIHByaW50ZigicHNhX2NyeXB0b19pbml0IGZhaWxlZFxuIik7CisgICAgICAgIHJldHVybiBFWElUX0ZBSUxVUkU7CisgICAgfQorCisgICAgc3RhdHVzID0gcHNhX2dlbmVyYXRlX3JhbmRvbShvcmlnaW5hbCwgc2l6ZW9mKG9yaWdpbmFsKSk7CisgICAgaWYgKHN0YXR1cyAhPSBQU0FfU1VDQ0VTUykgeworICAgICAgICBwcmludGYoInBzYV9nZW5lcmF0ZV9yYW5kb20oKSBmYWlsZWRcbiIpOworICAgICAgICByZXR1cm4gRVhJVF9GQUlMVVJFOworICAgIH0KKworICAgIHBzYV9zZXRfa2V5X3VzYWdlX2ZsYWdzKCZhdHRyaWJ1dGVzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBTQV9LRVlfVVNBR0VfRU5DUllQVCB8IFBTQV9LRVlfVVNBR0VfREVDUllQVCk7CisgICAgcHNhX3NldF9rZXlfYWxnb3JpdGhtKCZhdHRyaWJ1dGVzLCBQU0FfQUxHX0VDQl9OT19QQURESU5HKTsKKyAgICBwc2Ffc2V0X2tleV90eXBlKCZhdHRyaWJ1dGVzLCBQU0FfS0VZX1RZUEVfQUVTKTsKKyAgICBwc2Ffc2V0X2tleV9iaXRzKCZhdHRyaWJ1dGVzLCAyNTYpOworCisgICAgc3RhdHVzID0gcHNhX2ltcG9ydF9rZXkoJmF0dHJpYnV0ZXMsIGtleV9ieXRlcywgc2l6ZW9mKGtleV9ieXRlcyksICZrZXlfaWQpOworICAgIGlmIChzdGF0dXMgIT0gUFNBX1NVQ0NFU1MpIHsKKyAgICAgICAgcHJpbnRmKCJwc2FfaW1wb3J0X2tleSBmYWlsZWRcbiIpOworICAgICAgICByZXR1cm4gRVhJVF9GQUlMVVJFOworICAgIH0KKworICAgIHN0YXR1cyA9IHBzYV9jaXBoZXJfZW5jcnlwdChrZXlfaWQsIFBTQV9BTEdfRUNCX05PX1BBRERJTkcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9yaWdpbmFsLCBzaXplb2Yob3JpZ2luYWwpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmNyeXB0LCBzaXplb2YoZW5jcnlwdCksICZlbmNyeXB0ZWRfbGVuZ3RoKTsKKyAgICBpZiAoc3RhdHVzICE9IFBTQV9TVUNDRVNTKSB7CisgICAgICAgIHByaW50ZigicHNhX2NpcGhlcl9lbmNyeXB0IGZhaWxlZFxuIik7CisgICAgICAgIHJldHVybiBFWElUX0ZBSUxVUkU7CisgICAgfQorCisgICAgc3RhdHVzID0gcHNhX2NpcGhlcl9kZWNyeXB0KGtleV9pZCwgUFNBX0FMR19FQ0JfTk9fUEFERElORywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5jcnlwdCwgZW5jcnlwdGVkX2xlbmd0aCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVjcnlwdCwgc2l6ZW9mKGRlY3J5cHQpLCAmZGVjcnlwdGVkX2xlbmd0aCk7CisgICAgaWYgKHN0YXR1cyAhPSBQU0FfU1VDQ0VTUykgeworICAgICAgICBwcmludGYoInBzYV9jaXBoZXJfZGVjcnlwdCBmYWlsZWRcbiIpOworICAgICAgICByZXR1cm4gRVhJVF9GQUlMVVJFOworICAgIH0KKworICAgIGlmIChtZW1jbXAob3JpZ2luYWwsIGRlY3J5cHQsIHNpemVvZihvcmlnaW5hbCkpICE9IDApIHsKKyAgICAgICAgcHJpbnRmKCJcbkVuY3J5cHRpb24vRGVjcnlwdGlvbiBmYWlsZWQhXG4iKTsKKyAgICB9IGVsc2UgeworICAgICAgICBwcmludGYoIlxuRW5jcnlwdGlvbi9EZWNyeXB0aW9uIHN1Y2Nlc3NmdWwhXG4iKTsKKyAgICB9CisKKyAgICBwc2FfZGVzdHJveV9rZXkoa2V5X2lkKTsKKyAgICBtYmVkdGxzX3BzYV9jcnlwdG9fZnJlZSgpOworICAgIHJldHVybiAwOworfQpkaWZmIC0tZ2l0IGEvdGVzdHMvcHNhLWNsaWVudC1zZXJ2ZXIvcHNhc2ltL3NyYy9hdXRfcHNhX2hhc2guYyBiL3Rlc3RzL3BzYS1jbGllbnQtc2VydmVyL3BzYXNpbS9zcmMvYXV0X3BzYV9oYXNoLmMKaW5kZXggNmMyYzA3ZS4uYjQyOWMwYiAxMDA2NDQKLS0tIGEvdGVzdHMvcHNhLWNsaWVudC1zZXJ2ZXIvcHNhc2ltL3NyYy9hdXRfcHNhX2hhc2guYworKysgYi90ZXN0cy9wc2EtY2xpZW50LXNlcnZlci9wc2FzaW0vc3JjL2F1dF9wc2FfaGFzaC5jCkBAIC0xLDEzICsxLDQgQEAKIC8qCi0gKiAgRXhhbXBsZSBjb21wdXRpbmcgYSBTSEEtMjU2IGhhc2ggdXNpbmcgdGhlIFBTQSBDcnlwdG8gQVBJCi0gKgotICogIFRoZSBleGFtcGxlIGNvbXB1dGVzIHRoZSBTSEEtMjU2IGhhc2ggb2YgYSB0ZXN0IHN0cmluZyB1c2luZyB0aGUKLSAqICBvbmUtc2hvdCBBUEkgY2FsbCBwc2FfaGFzaF9jb21wdXRlKCkgYW5kIHRoZSB1c2luZyBtdWx0aS1wYXJ0Ci0gKiAgb3BlcmF0aW9uLCB3aGljaCByZXF1aXJlcyBwc2FfaGFzaF9zZXR1cCgpLCBwc2FfaGFzaF91cGRhdGUoKSBhbmQKLSAqICBwc2FfaGFzaF9maW5pc2goKS4gVGhlIG11bHRpLXBhcnQgb3BlcmF0aW9uIGlzIHBvcHVsYXIgb24gZW1iZWRkZWQKLSAqICBkZXZpY2VzIHdoZXJlIGEgcm9sbGluZyBoYXNoIG5lZWRzIHRvIGJlIGNvbXB1dGVkLgotICoKLSAqCiAgKiAgQ29weXJpZ2h0IFRoZSBNYmVkIFRMUyBDb250cmlidXRvcnMKICAqICBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMCBPUiBHUEwtMi4wLW9yLWxhdGVyCiAgKi8KQEAgLTIwLDMzICsxMSwxMyBAQAogI2luY2x1ZGUgIm1iZWR0bHMvYnVpbGRfaW5mby5oIgogI2luY2x1ZGUgIm1iZWR0bHMvcGxhdGZvcm0uaCIKIAotLyogSW5mb3JtYXRpb24gYWJvdXQgaGFzaGluZyB3aXRoIHRoZSBQU0EgQVBJIGNhbiBiZQotICogZm91bmQgaGVyZToKLSAqIGh0dHBzOi8vYXJtLXNvZnR3YXJlLmdpdGh1Yi5pby9wc2EtYXBpL2NyeXB0by8xLjEvYXBpL29wcy9oYXNoZXMuaHRtbAotICoKLSAqIFRoZSBhbGdvcml0aG0gdXNlZCBieSB0aGlzIGRlbW8gaXMgU0hBIDI1Ni4KLSAqIFBsZWFzZSBzZWUgaW5jbHVkZS9wc2EvY3J5cHRvX3ZhbHVlcy5oIHRvIHNlZSB0aGUgb3RoZXIKLSAqIGFsZ29yaXRobXMgdGhhdCBhcmUgc3VwcG9ydGVkIGJ5IE1iZWQgVExTLgotICogSWYgeW91IHN3aXRjaCB0byBhIGRpZmZlcmVudCBhbGdvcml0aG0geW91IHdpbGwgbmVlZCB0byB1cGRhdGUKLSAqIHRoZSBoYXNoIGRhdGEgaW4gdGhlIEVYQU1QTEVfSEFTSF9WQUxVRSBtYWNybyBiZWxvdy4gKi8KLQotI2lmICFkZWZpbmVkKE1CRURUTFNfUFNBX0NSWVBUT19DTElFTlQpICYmIFwKLSAgICAoIWRlZmluZWQoTUJFRFRMU19QU0FfQ1JZUFRPX0MpIHx8ICFkZWZpbmVkKFBTQV9XQU5UX0FMR19TSEFfMjU2KSkKLWludCBtYWluKHZvaWQpCi17Ci0gICAgbWJlZHRsc19wcmludGYoIk1CRURUTFNfUFNBX0NSWVBUT19DIGFuZCBQU0FfV0FOVF9BTEdfU0hBXzI1NiIKLSAgICAgICAgICAgICAgICAgICAibm90IGRlZmluZWQsIGFuZCBub3QgTUJFRFRMU19QU0FfQ1JZUFRPX0NMSUVOVC5cclxuIik7Ci0gICAgcmV0dXJuIEVYSVRfU1VDQ0VTUzsKLX0KLSNlbHNlCi0KICNkZWZpbmUgSEFTSF9BTEcgUFNBX0FMR19TSEFfMjU2CiAKLWNvbnN0IHVpbnQ4X3Qgc2FtcGxlX21lc3NhZ2VbXSA9ICJIZWxsbyBXb3JsZCEiOworc3RhdGljIGNvbnN0IHVpbnQ4X3Qgc2FtcGxlX21lc3NhZ2VbXSA9ICJIZWxsbyBXb3JsZCEiOwogLyogc2FtcGxlX21lc3NhZ2UgaXMgdGVybWluYXRlZCB3aXRoIGEgbnVsbCBieXRlIHdoaWNoIGlzIG5vdCBwYXJ0IG9mCiAgKiB0aGUgbWVzc2FnZSBpdHNlbGYgc28gd2UgbWFrZSBzdXJlIHRvIHN1YnRyYWN0IGl0IGluIG9yZGVyIHRvIGdldAogICogdGhlIG1lc3NhZ2UgbGVuZ3RoLiAqLwotY29uc3Qgc2l6ZV90IHNhbXBsZV9tZXNzYWdlX2xlbmd0aCA9IHNpemVvZihzYW1wbGVfbWVzc2FnZSkgLSAxOworc3RhdGljIGNvbnN0IHNpemVfdCBzYW1wbGVfbWVzc2FnZV9sZW5ndGggPSBzaXplb2Yoc2FtcGxlX21lc3NhZ2UpIC0gMTsKIAogI2RlZmluZSBFWFBFQ1RFRF9IQVNIX1ZBTFVFIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAgICAweDdmLCAweDgzLCAweGIxLCAweDY1LCAweDdmLCAweGYxLCAweGZjLCAweDUzLCAweGI5LCAweDJkLCAweGMxLCAweDgxLCBcCkBAIC01NCwxMCArMjUsMTAgQEAKICAgICAgICAgMHg0YSwgMHhkZCwgMHhkMiwgMHgwMCwgMHgxMiwgMHg2ZCwgMHg5MCwgMHg2OSBcCiB9CiAKLWNvbnN0IHVpbnQ4X3QgZXhwZWN0ZWRfaGFzaFtdID0gRVhQRUNURURfSEFTSF9WQUxVRTsKLWNvbnN0IHNpemVfdCBleHBlY3RlZF9oYXNoX2xlbiA9IHNpemVvZihleHBlY3RlZF9oYXNoKTsKK3N0YXRpYyBjb25zdCB1aW50OF90IGV4cGVjdGVkX2hhc2hbXSA9IEVYUEVDVEVEX0hBU0hfVkFMVUU7CitzdGF0aWMgY29uc3Qgc2l6ZV90IGV4cGVjdGVkX2hhc2hfbGVuID0gc2l6ZW9mKGV4cGVjdGVkX2hhc2gpOwogCi1pbnQgbWFpbih2b2lkKQoraW50IHBzYV9oYXNoX21haW4odm9pZCkKIHsKICAgICBwc2Ffc3RhdHVzX3Qgc3RhdHVzOwogICAgIHVpbnQ4X3QgaGFzaFtQU0FfSEFTSF9MRU5HVEgoSEFTSF9BTEcpXTsKQEAgLTExOCw2ICs4OSw0MyBAQAogICAgICAgICBtYmVkdGxzX3ByaW50ZigiTXVsdGktcGFydCBoYXNoIG9wZXJhdGlvbiBzdWNjZXNzZnVsIVxuIik7CiAgICAgfQogCisgICAgLyogQSBiaXQgb2Ygd2hpdGUtYm94IHRlc3Rpbmc6IGVuc3VyZSB0aGF0IHdlIGNhbiBhYm9ydCBhbiBvcGVyYXRpb24gbW9yZQorICAgICAqIHRpbWVzIHRoYW4gdGhlcmUgYXJlIG9wZXJhdGlvbiBzbG90cyBvbiB0aGUgc2ltdWxhdG9yIHNlcnZlci4KKyAgICAgKi8KKyAgICBmb3IgKGludCBpID0gMDsgaSA8IDIwMDsgaSsrKSB7CisgICAgICAgIC8qIFRoaXMgc2hvdWxkIGJlIGEgbm8tb3AgKi8KKyAgICAgICAgc3RhdHVzID0gcHNhX2hhc2hfYWJvcnQoJmhhc2hfb3BlcmF0aW9uKTsKKyAgICAgICAgaWYgKHN0YXR1cyAhPSBQU0FfU1VDQ0VTUykgeworICAgICAgICAgICAgbWJlZHRsc19wcmludGYoInBzYV9oYXNoX2Fib3J0IGZhaWxlZFxuIik7CisgICAgICAgICAgICBnb3RvIGNsZWFudXA7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKiBDb21wdXRlIGhhc2ggdXNpbmcgbXVsdGktcGFydCBvcGVyYXRpb24gdXNpbmcgdGhlIHNhbWUgb3BlcmF0aW9uIHN0cnVjdCAqLworICAgIHN0YXR1cyA9IHBzYV9oYXNoX3NldHVwKCZoYXNoX29wZXJhdGlvbiwgSEFTSF9BTEcpOworICAgIGlmIChzdGF0dXMgPT0gUFNBX0VSUk9SX05PVF9TVVBQT1JURUQpIHsKKyAgICAgICAgbWJlZHRsc19wcmludGYoInVua25vd24gaGFzaCBhbGdvcml0aG0gc3VwcGxpZWRcbiIpOworICAgICAgICBnb3RvIGNsZWFudXA7CisgICAgfSBlbHNlIGlmIChzdGF0dXMgIT0gUFNBX1NVQ0NFU1MpIHsKKyAgICAgICAgbWJlZHRsc19wcmludGYoInBzYV9oYXNoX3NldHVwIGZhaWxlZDogJWRcbiIsIHN0YXR1cyk7CisgICAgICAgIGdvdG8gY2xlYW51cDsKKyAgICB9CisKKyAgICBzdGF0dXMgPSBwc2FfaGFzaF91cGRhdGUoJmhhc2hfb3BlcmF0aW9uLCBzYW1wbGVfbWVzc2FnZSwgc2FtcGxlX21lc3NhZ2VfbGVuZ3RoKTsKKyAgICBpZiAoc3RhdHVzICE9IFBTQV9TVUNDRVNTKSB7CisgICAgICAgIG1iZWR0bHNfcHJpbnRmKCJwc2FfaGFzaF91cGRhdGUgZmFpbGVkXG4iKTsKKyAgICAgICAgZ290byBjbGVhbnVwOworICAgIH0KKworICAgIC8qIERvbid0IHVzZSBwc2FfaGFzaF9maW5pc2goKSB3aGVuIGdvaW5nIHRvIGNoZWNrIGFnYWluc3QgYW4gZXhwZWN0ZWQgcmVzdWx0ICovCisgICAgc3RhdHVzID0gcHNhX2hhc2hfdmVyaWZ5KCZoYXNoX29wZXJhdGlvbiwgZXhwZWN0ZWRfaGFzaCwgZXhwZWN0ZWRfaGFzaF9sZW4pOworICAgIGlmIChzdGF0dXMgIT0gUFNBX1NVQ0NFU1MpIHsKKyAgICAgICAgbWJlZHRsc19wcmludGYoInBzYV9oYXNoX3ZlcmlmeSBmYWlsZWQ6ICVkXG4iLCBzdGF0dXMpOworICAgICAgICBnb3RvIGNsZWFudXA7CisgICAgfSBlbHNlIHsKKyAgICAgICAgbWJlZHRsc19wcmludGYoIlNlY29uZCBtdWx0aS1wYXJ0IGhhc2ggb3BlcmF0aW9uIHN1Y2Nlc3NmdWwhXG4iKTsKKyAgICB9CisKICAgICAvKiBDbGVhciBsb2NhbCB2YXJpYWJsZXMgcHJpb3IgdG8gb25lLXNob3QgaGFzaCBkZW1vICovCiAgICAgbWVtc2V0KGhhc2gsIDAsIHNpemVvZihoYXNoKSk7CiAgICAgaGFzaF9sZW5ndGggPSAwOwpAQCAtMTU3LDQgKzE2NSwzIEBACiAgICAgcHNhX2hhc2hfYWJvcnQoJmNsb25lZF9oYXNoX29wZXJhdGlvbik7CiAgICAgcmV0dXJuIEVYSVRfRkFJTFVSRTsKIH0KLSNlbmRpZiAvKiAhTUJFRFRMU19QU0FfQ1JZUFRPX0MgfHwgIVBTQV9XQU5UX0FMR19TSEFfMjU2ICovCmRpZmYgLS1naXQgYS90ZXN0cy9wc2EtY2xpZW50LXNlcnZlci9wc2FzaW0vc3JjL2F1dF9wc2FfaGFzaF9jb21wdXRlLmMgYi90ZXN0cy9wc2EtY2xpZW50LXNlcnZlci9wc2FzaW0vc3JjL2F1dF9wc2FfaGFzaF9jb21wdXRlLmMKaW5kZXggNzBjM2U1Yi4uOTU5ZTBjMyAxMDA2NDQKLS0tIGEvdGVzdHMvcHNhLWNsaWVudC1zZXJ2ZXIvcHNhc2ltL3NyYy9hdXRfcHNhX2hhc2hfY29tcHV0ZS5jCisrKyBiL3Rlc3RzL3BzYS1jbGllbnQtc2VydmVyL3BzYXNpbS9zcmMvYXV0X3BzYV9oYXNoX2NvbXB1dGUuYwpAQCAtMSwxNSArMSw0IEBACiAvKgotICogIEFQSShzKSB1bmRlciB0ZXN0OiBwc2FfaGFzaF9jb21wdXRlKCkKLSAqCi0gKiAgVGFrZW4gZnJvbSBwcm9ncmFtcy9wc2EvcHNhX2hhc2guYywgYW5kIGNhbGxzIHRvIGFsbCBoYXNoIEFQSXMKLSAqICBidXQgcHNhX2hhc2hfY29tcHV0ZSgpIHJlbW92ZWQuCi0gKgotICogIEV4YW1wbGUgY29tcHV0aW5nIGEgU0hBLTI1NiBoYXNoIHVzaW5nIHRoZSBQU0EgQ3J5cHRvIEFQSQotICoKLSAqICBUaGUgZXhhbXBsZSBjb21wdXRlcyB0aGUgU0hBLTI1NiBoYXNoIG9mIGEgdGVzdCBzdHJpbmcgdXNpbmcgdGhlCi0gKiAgb25lLXNob3QgQVBJIGNhbGwgcHNhX2hhc2hfY29tcHV0ZSgpLgotICoKLSAqCiAgKiAgQ29weXJpZ2h0IFRoZSBNYmVkIFRMUyBDb250cmlidXRvcnMKICAqICBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMCBPUiBHUEwtMi4wLW9yLWxhdGVyCiAgKi8KQEAgLTIyLDMzICsxMSwxMyBAQAogI2luY2x1ZGUgIm1iZWR0bHMvYnVpbGRfaW5mby5oIgogI2luY2x1ZGUgIm1iZWR0bHMvcGxhdGZvcm0uaCIKIAotLyogSW5mb3JtYXRpb24gYWJvdXQgaGFzaGluZyB3aXRoIHRoZSBQU0EgQVBJIGNhbiBiZQotICogZm91bmQgaGVyZToKLSAqIGh0dHBzOi8vYXJtLXNvZnR3YXJlLmdpdGh1Yi5pby9wc2EtYXBpL2NyeXB0by8xLjEvYXBpL29wcy9oYXNoZXMuaHRtbAotICoKLSAqIFRoZSBhbGdvcml0aG0gdXNlZCBieSB0aGlzIGRlbW8gaXMgU0hBIDI1Ni4KLSAqIFBsZWFzZSBzZWUgaW5jbHVkZS9wc2EvY3J5cHRvX3ZhbHVlcy5oIHRvIHNlZSB0aGUgb3RoZXIKLSAqIGFsZ29yaXRobXMgdGhhdCBhcmUgc3VwcG9ydGVkIGJ5IE1iZWQgVExTLgotICogSWYgeW91IHN3aXRjaCB0byBhIGRpZmZlcmVudCBhbGdvcml0aG0geW91IHdpbGwgbmVlZCB0byB1cGRhdGUKLSAqIHRoZSBoYXNoIGRhdGEgaW4gdGhlIEVYQU1QTEVfSEFTSF9WQUxVRSBtYWNybyBiZWxvdy4gKi8KLQotI2lmICFkZWZpbmVkKE1CRURUTFNfUFNBX0NSWVBUT19DTElFTlQpICYmIFwKLSAgICAoIWRlZmluZWQoTUJFRFRMU19QU0FfQ1JZUFRPX0MpIHx8ICFkZWZpbmVkKFBTQV9XQU5UX0FMR19TSEFfMjU2KSkKLWludCBtYWluKHZvaWQpCi17Ci0gICAgbWJlZHRsc19wcmludGYoIk1CRURUTFNfUFNBX0NSWVBUT19DIGFuZCBQU0FfV0FOVF9BTEdfU0hBXzI1NiIKLSAgICAgICAgICAgICAgICAgICAibm90IGRlZmluZWQsIGFuZCBub3QgTUJFRFRMU19QU0FfQ1JZUFRPX0NMSUVOVC5cclxuIik7Ci0gICAgcmV0dXJuIEVYSVRfU1VDQ0VTUzsKLX0KLSNlbHNlCi0KICNkZWZpbmUgSEFTSF9BTEcgUFNBX0FMR19TSEFfMjU2CiAKLWNvbnN0IHVpbnQ4X3Qgc2FtcGxlX21lc3NhZ2VbXSA9ICJIZWxsbyBXb3JsZCEiOworc3RhdGljIGNvbnN0IHVpbnQ4X3Qgc2FtcGxlX21lc3NhZ2VbXSA9ICJIZWxsbyBXb3JsZCEiOwogLyogc2FtcGxlX21lc3NhZ2UgaXMgdGVybWluYXRlZCB3aXRoIGEgbnVsbCBieXRlIHdoaWNoIGlzIG5vdCBwYXJ0IG9mCiAgKiB0aGUgbWVzc2FnZSBpdHNlbGYgc28gd2UgbWFrZSBzdXJlIHRvIHN1YnRyYWN0IGl0IGluIG9yZGVyIHRvIGdldAogICogdGhlIG1lc3NhZ2UgbGVuZ3RoLiAqLwotY29uc3Qgc2l6ZV90IHNhbXBsZV9tZXNzYWdlX2xlbmd0aCA9IHNpemVvZihzYW1wbGVfbWVzc2FnZSkgLSAxOworc3RhdGljIGNvbnN0IHNpemVfdCBzYW1wbGVfbWVzc2FnZV9sZW5ndGggPSBzaXplb2Yoc2FtcGxlX21lc3NhZ2UpIC0gMTsKIAogI2RlZmluZSBFWFBFQ1RFRF9IQVNIX1ZBTFVFIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAgICAweDdmLCAweDgzLCAweGIxLCAweDY1LCAweDdmLCAweGYxLCAweGZjLCAweDUzLCAweGI5LCAweDJkLCAweGMxLCAweDgxLCBcCkBAIC01NiwxMCArMjUsMTAgQEAKICAgICAgICAgMHg0YSwgMHhkZCwgMHhkMiwgMHgwMCwgMHgxMiwgMHg2ZCwgMHg5MCwgMHg2OSBcCiB9CiAKLWNvbnN0IHVpbnQ4X3QgZXhwZWN0ZWRfaGFzaFtdID0gRVhQRUNURURfSEFTSF9WQUxVRTsKLWNvbnN0IHNpemVfdCBleHBlY3RlZF9oYXNoX2xlbiA9IHNpemVvZihleHBlY3RlZF9oYXNoKTsKK3N0YXRpYyBjb25zdCB1aW50OF90IGV4cGVjdGVkX2hhc2hbXSA9IEVYUEVDVEVEX0hBU0hfVkFMVUU7CitzdGF0aWMgY29uc3Qgc2l6ZV90IGV4cGVjdGVkX2hhc2hfbGVuID0gc2l6ZW9mKGV4cGVjdGVkX2hhc2gpOwogCi1pbnQgbWFpbih2b2lkKQoraW50IHBzYV9oYXNoX2NvbXB1dGVfbWFpbih2b2lkKQogewogICAgIHBzYV9zdGF0dXNfdCBzdGF0dXM7CiAgICAgdWludDhfdCBoYXNoW1BTQV9IQVNIX0xFTkdUSChIQVNIX0FMRyldOwpAQCAtMTEwLDQgKzc5LDMgQEAKIGNsZWFudXA6CiAgICAgcmV0dXJuIEVYSVRfRkFJTFVSRTsKIH0KLSNlbmRpZiAvKiAhTUJFRFRMU19QU0FfQ1JZUFRPX0MgfHwgIVBTQV9XQU5UX0FMR19TSEFfMjU2ICovCmRpZmYgLS1naXQgYS90ZXN0cy9wc2EtY2xpZW50LXNlcnZlci9wc2FzaW0vc3JjL2F1dF9wc2FfaGtkZi5jIGIvdGVzdHMvcHNhLWNsaWVudC1zZXJ2ZXIvcHNhc2ltL3NyYy9hdXRfcHNhX2hrZGYuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44OTFmZGIzCi0tLSAvZGV2L251bGwKKysrIGIvdGVzdHMvcHNhLWNsaWVudC1zZXJ2ZXIvcHNhc2ltL3NyYy9hdXRfcHNhX2hrZGYuYwpAQCAtMCwwICsxLDEyMSBAQAorLyoKKyAqICBDb3B5cmlnaHQgVGhlIE1iZWQgVExTIENvbnRyaWJ1dG9ycworICogIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wIE9SIEdQTC0yLjAtb3ItbGF0ZXIKKyAqLworCisjaW5jbHVkZSAicHNhL2NyeXB0by5oIgorI2luY2x1ZGUgPHN0cmluZy5oPgorI2luY2x1ZGUgPHN0ZGlvLmg+CisjaW5jbHVkZSA8c3RkbGliLmg+CisjaW5jbHVkZSAibWJlZHRscy9idWlsZF9pbmZvLmgiCisKK2ludCBwc2FfaGtkZl9tYWluKHZvaWQpCit7CisgICAgcHNhX3N0YXR1c190IHN0YXR1czsKKyAgICBwc2Ffa2V5X2F0dHJpYnV0ZXNfdCBhdHRyaWJ1dGVzID0gUFNBX0tFWV9BVFRSSUJVVEVTX0lOSVQ7CisgICAgcHNhX2tleV9pZF90IGtleV9pZCA9IDA7CisgICAgcHNhX2tleV9kZXJpdmF0aW9uX29wZXJhdGlvbl90IG9wZXJhdGlvbiA9IFBTQV9LRVlfREVSSVZBVElPTl9PUEVSQVRJT05fSU5JVDsKKworICAgIC8qIEV4YW1wbGUgdGVzdCB2ZWN0b3IgZnJvbSBSRkMgNTg2OSAqLworCisgICAgLyogSW5wdXQga2V5aW5nIG1hdGVyaWFsIChJS00pICovCisgICAgdW5zaWduZWQgY2hhciBpa21bXSA9IHsgMHgwYiwgMHgwYiwgMHgwYiwgMHgwYiwgMHgwYiwgMHgwYiwgMHgwYiwgMHgwYiwgMHgwYiwgMHgwYiwgMHgwYiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBiLCAweDBiLCAweDBiLCAweDBiLCAweDBiLCAweDBiLCAweDBiLCAweDBiLCAweDBiLCAweDBiLCAweDBiIH07CisKKyAgICB1bnNpZ25lZCBjaGFyIHNhbHRbXSA9CisgICAgeyAweDAwLCAweDAxLCAweDAyLCAweDAzLCAweDA0LCAweDA1LCAweDA2LCAweDA3LCAweDA4LCAweDA5LCAweDBhLCAweDBiLCAweDBjIH07CisKKyAgICAvKiBDb250ZXh0IGFuZCBhcHBsaWNhdGlvbiBzcGVjaWZpYyBpbmZvcm1hdGlvbiwgd2hpY2ggY2FuIGJlIG9mIHplcm8gbGVuZ3RoICovCisgICAgdW5zaWduZWQgY2hhciBpbmZvW10gPSB7IDB4ZjAsIDB4ZjEsIDB4ZjIsIDB4ZjMsIDB4ZjQsIDB4ZjUsIDB4ZjYsIDB4ZjcsIDB4ZjgsIDB4ZjkgfTsKKworICAgIC8qIEV4cGVjdGVkIE9LTSBiYXNlZCBvbiB0aGUgUkZDIDU4NjktcHJvdmlkZWQgdGVzdCB2ZWN0b3IgKi8KKyAgICB1bnNpZ25lZCBjaGFyIGV4cGVjdGVkX29rbVtdID0geyAweDNjLCAweGIyLCAweDVmLCAweDI1LCAweGZhLCAweGFjLCAweGQ1LCAweDdhLCAweDkwLCAweDQzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NGYsIDB4NjQsIDB4ZDAsIDB4MzYsIDB4MmYsIDB4MmEsIDB4MmQsIDB4MmQsIDB4MGEsIDB4OTAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhjZiwgMHgxYSwgMHg1YSwgMHg0YywgMHg1ZCwgMHhiMCwgMHgyZCwgMHg1NiwgMHhlYywgMHhjNCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGM1LCAweGJmLCAweDM0LCAweDAwLCAweDcyLCAweDA4LCAweGQ1LCAweGI4LCAweDg3LCAweDE4LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NTgsIDB4NjUgfTsKKworICAgIC8qIFRoZSBvdXRwdXQgc2l6ZSBvZiB0aGUgSEtERiBmdW5jdGlvbiBkZXBlbmRzIG9uIHRoZSBoYXNoIGZ1bmN0aW9uIHVzZWQuCisgICAgICogSW4gb3VyIGNhc2Ugd2UgdXNlIFNIQS0yNTYsIHdoaWNoIHByb2R1Y2VzIGEgMzIgYnl0ZSBmaW5nZXJwcmludC4KKyAgICAgKiBUaGVyZWZvcmUsIHdlIGFsbG9jYXRlIGEgYnVmZmVyIG9mIDMyIGJ5dGVzIHRvIGhvbGQgdGhlIG91dHB1dCBrZXlpbmcKKyAgICAgKiBtYXRlcmlhbCAoT0tNKS4KKyAgICAgKi8KKyAgICB1bnNpZ25lZCBjaGFyIG91dHB1dFszMl07CisKKyAgICBwc2FfYWxnb3JpdGhtX3QgYWxnID0gUFNBX0FMR19IS0RGKFBTQV9BTEdfU0hBXzI1Nik7CisKKyAgICBwcmludGYoIlBTQSBDcnlwdG8gQVBJOiBIS0RGIFNIQS0yNTYgZXhhbXBsZVxuXG4iKTsKKworICAgIHN0YXR1cyA9IHBzYV9jcnlwdG9faW5pdCgpOworICAgIGlmIChzdGF0dXMgIT0gUFNBX1NVQ0NFU1MpIHsKKyAgICAgICAgcHJpbnRmKCJwc2FfY3J5cHRvX2luaXQgZmFpbGVkXG4iKTsKKyAgICAgICAgcmV0dXJuIEVYSVRfRkFJTFVSRTsKKyAgICB9CisKKyAgICBwc2Ffc2V0X2tleV91c2FnZV9mbGFncygmYXR0cmlidXRlcywgUFNBX0tFWV9VU0FHRV9ERVJJVkUpOworICAgIHBzYV9zZXRfa2V5X2FsZ29yaXRobSgmYXR0cmlidXRlcywgUFNBX0FMR19IS0RGKFBTQV9BTEdfU0hBXzI1NikpOworICAgIHBzYV9zZXRfa2V5X3R5cGUoJmF0dHJpYnV0ZXMsIFBTQV9LRVlfVFlQRV9ERVJJVkUpOworCisgICAgc3RhdHVzID0gcHNhX2ltcG9ydF9rZXkoJmF0dHJpYnV0ZXMsIGlrbSwgc2l6ZW9mKGlrbSksICZrZXlfaWQpOworICAgIGlmIChzdGF0dXMgIT0gUFNBX1NVQ0NFU1MpIHsKKyAgICAgICAgcHJpbnRmKCJwc2FfaW1wb3J0X2tleSBmYWlsZWRcbiIpOworICAgICAgICByZXR1cm4gRVhJVF9GQUlMVVJFOworICAgIH0KKworICAgIHN0YXR1cyA9IHBzYV9rZXlfZGVyaXZhdGlvbl9zZXR1cCgmb3BlcmF0aW9uLCBhbGcpOworICAgIGlmIChzdGF0dXMgIT0gUFNBX1NVQ0NFU1MpIHsKKyAgICAgICAgcHJpbnRmKCJwc2Ffa2V5X2Rlcml2YXRpb25fc2V0dXAgZmFpbGVkIik7CisgICAgICAgIHJldHVybiBFWElUX0ZBSUxVUkU7CisgICAgfQorCisgICAgc3RhdHVzID0gcHNhX2tleV9kZXJpdmF0aW9uX2lucHV0X2J5dGVzKCZvcGVyYXRpb24sIFBTQV9LRVlfREVSSVZBVElPTl9JTlBVVF9TQUxULAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzYWx0LCBzaXplb2Yoc2FsdCkpOworICAgIGlmIChzdGF0dXMgIT0gUFNBX1NVQ0NFU1MpIHsKKyAgICAgICAgcHJpbnRmKCJwc2Ffa2V5X2Rlcml2YXRpb25faW5wdXRfYnl0ZXMgKHNhbHQpIGZhaWxlZCIpOworICAgICAgICByZXR1cm4gRVhJVF9GQUlMVVJFOworICAgIH0KKworICAgIHN0YXR1cyA9IHBzYV9rZXlfZGVyaXZhdGlvbl9pbnB1dF9rZXkoJm9wZXJhdGlvbiwgUFNBX0tFWV9ERVJJVkFUSU9OX0lOUFVUX1NFQ1JFVCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtleV9pZCk7CisgICAgaWYgKHN0YXR1cyAhPSBQU0FfU1VDQ0VTUykgeworICAgICAgICBwcmludGYoInBzYV9rZXlfZGVyaXZhdGlvbl9pbnB1dF9rZXkgZmFpbGVkIik7CisgICAgICAgIHJldHVybiBFWElUX0ZBSUxVUkU7CisgICAgfQorCisgICAgc3RhdHVzID0gcHNhX2tleV9kZXJpdmF0aW9uX2lucHV0X2J5dGVzKCZvcGVyYXRpb24sIFBTQV9LRVlfREVSSVZBVElPTl9JTlBVVF9JTkZPLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbmZvLCBzaXplb2YoaW5mbykpOworICAgIGlmIChzdGF0dXMgIT0gUFNBX1NVQ0NFU1MpIHsKKyAgICAgICAgcHJpbnRmKCJwc2Ffa2V5X2Rlcml2YXRpb25faW5wdXRfYnl0ZXMgKGluZm8pIGZhaWxlZCIpOworICAgICAgICByZXR1cm4gRVhJVF9GQUlMVVJFOworICAgIH0KKworICAgIHN0YXR1cyA9IHBzYV9rZXlfZGVyaXZhdGlvbl9vdXRwdXRfYnl0ZXMoJm9wZXJhdGlvbiwgb3V0cHV0LCBzaXplb2Yob3V0cHV0KSk7CisgICAgaWYgKHN0YXR1cyAhPSBQU0FfU1VDQ0VTUykgeworICAgICAgICBwcmludGYoInBzYV9rZXlfZGVyaXZhdGlvbl9vdXRwdXRfYnl0ZXMgZmFpbGVkIik7CisgICAgICAgIHJldHVybiBFWElUX0ZBSUxVUkU7CisgICAgfQorCisgICAgc3RhdHVzID0gcHNhX2tleV9kZXJpdmF0aW9uX2Fib3J0KCZvcGVyYXRpb24pOworICAgIGlmIChzdGF0dXMgIT0gUFNBX1NVQ0NFU1MpIHsKKyAgICAgICAgcHJpbnRmKCJwc2Ffa2V5X2Rlcml2YXRpb25fYWJvcnQgZmFpbGVkIik7CisgICAgICAgIHJldHVybiBFWElUX0ZBSUxVUkU7CisgICAgfQorCisgICAgcHJpbnRmKCJPS006IFxuIik7CisKKyAgICBmb3IgKHNpemVfdCBqID0gMDsgaiA8IHNpemVvZihvdXRwdXQpOyBqKyspIHsKKyAgICAgICAgaWYgKG91dHB1dFtqXSAhPSBleHBlY3RlZF9va21bal0pIHsKKyAgICAgICAgICAgIHByaW50ZigiXG4gLS0tIFVuZXhwZWN0ZWQgb3V0Y29tZSFcbiIpOworICAgICAgICAgICAgcmV0dXJuIEVYSVRfRkFJTFVSRTsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChqICUgOCA9PSAwKSB7CisgICAgICAgICAgICBwcmludGYoIlxuICAgICIpOworICAgICAgICB9CisgICAgICAgIHByaW50ZigiJTAyeCAiLCBvdXRwdXRbal0pOworICAgIH0KKworICAgIHByaW50ZigiXG4iKTsKKyAgICBtYmVkdGxzX3BzYV9jcnlwdG9fZnJlZSgpOworICAgIHJldHVybiBFWElUX1NVQ0NFU1M7Cit9CmRpZmYgLS1naXQgYS90ZXN0cy9wc2EtY2xpZW50LXNlcnZlci9wc2FzaW0vc3JjL2F1dF9wc2Ffa2V5X2FncmVlbWVudC5jIGIvdGVzdHMvcHNhLWNsaWVudC1zZXJ2ZXIvcHNhc2ltL3NyYy9hdXRfcHNhX2tleV9hZ3JlZW1lbnQuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40YTBhYWIxCi0tLSAvZGV2L251bGwKKysrIGIvdGVzdHMvcHNhLWNsaWVudC1zZXJ2ZXIvcHNhc2ltL3NyYy9hdXRfcHNhX2tleV9hZ3JlZW1lbnQuYwpAQCAtMCwwICsxLDE0NiBAQAorLyoKKyAqICBDb3B5cmlnaHQgVGhlIE1iZWQgVExTIENvbnRyaWJ1dG9ycworICogIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wIE9SIEdQTC0yLjAtb3ItbGF0ZXIKKyAqLworCisKKyNpbmNsdWRlICJwc2EvY3J5cHRvLmgiCisjaW5jbHVkZSA8c3RyaW5nLmg+CisjaW5jbHVkZSA8c3RkaW8uaD4KKyNpbmNsdWRlIDxzdGRsaWIuaD4KKyNpbmNsdWRlICJtYmVkdGxzL2J1aWxkX2luZm8uaCIKKyNpbmNsdWRlICJtYmVkdGxzL2RlYnVnLmgiCisjaW5jbHVkZSAibWJlZHRscy9wbGF0Zm9ybS5oIgorCisjZGVmaW5lIEJVRkZFUl9TSVpFIDUwMAorCisjZGVmaW5lIFNFUlZFUl9QS19WQUxVRSB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgMHgwNCwgMHhkZSwgMHhhNSwgMHhlNCwgMHg1ZCwgMHgwZSwgMHhhMywgMHg3ZiwgMHhjNSwgXAorICAgICAgICAweDY2LCAweDIzLCAweDJhLCAweDUwLCAweDhmLCAweDRhLCAweGQyLCAweDBlLCAweGExLCBcCisgICAgICAgIDB4M2QsIDB4NDcsIDB4ZTQsIDB4YmYsIDB4NWYsIDB4YTQsIDB4ZDUsIDB4NGEsIDB4NTcsIFwKKyAgICAgICAgMHhhMCwgMHhiYSwgMHgwMSwgMHgyMCwgMHg0MiwgMHgwOCwgMHg3MCwgMHg5NywgMHg0OSwgXAorICAgICAgICAweDZlLCAweGZjLCAweDU4LCAweDNmLCAweGVkLCAweDhiLCAweDI0LCAweGE1LCAweGI5LCBcCisgICAgICAgIDB4YmUsIDB4OWEsIDB4NTEsIDB4ZGUsIDB4MDYsIDB4M2YsIDB4NWEsIDB4MDAsIDB4YTgsIFwKKyAgICAgICAgMHhiNiwgMHg5OCwgMHhhMSwgMHg2ZiwgMHhkNywgMHhmMiwgMHg5YiwgMHg1NCwgMHg4NSwgXAorICAgICAgICAweGYzLCAweDIwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCit9CisKKyNkZWZpbmUgS0VZX0JJVFMgMjU2CisKK2ludCBwc2Ffa2V5X2FncmVlbWVudF9tYWluKHZvaWQpCit7CisgICAgcHNhX3N0YXR1c190IHN0YXR1czsKKyAgICBwc2Ffa2V5X2F0dHJpYnV0ZXNfdCBjbGllbnRfYXR0cmlidXRlcyA9IFBTQV9LRVlfQVRUUklCVVRFU19JTklUOworICAgIHBzYV9rZXlfYXR0cmlidXRlc190IHNlcnZlcl9hdHRyaWJ1dGVzID0gUFNBX0tFWV9BVFRSSUJVVEVTX0lOSVQ7CisgICAgcHNhX2tleV9hdHRyaWJ1dGVzX3QgY2hlY2tfYXR0cmlidXRlcyA9IFBTQV9LRVlfQVRUUklCVVRFU19JTklUOworICAgIHBzYV9rZXlfaWRfdCBjbGllbnRfa2V5X2lkID0gMDsKKyAgICBwc2Ffa2V5X2lkX3Qgc2VydmVyX2tleV9pZCA9IDA7CisgICAgdWludDhfdCBjbGllbnRfcGtbQlVGRkVSX1NJWkVdID0geyAwIH07CisgICAgc2l6ZV90IGNsaWVudF9wa19sZW47CisgICAgc2l6ZV90IGtleV9iaXRzOworICAgIHBzYV9rZXlfdHlwZV90IGtleV90eXBlOworCisgICAgY29uc3QgdWludDhfdCBzZXJ2ZXJfcGtbXSA9IFNFUlZFUl9QS19WQUxVRTsKKyAgICB1aW50OF90IGRlcml2ZWRfa2V5W0JVRkZFUl9TSVpFXSA9IHsgMCB9OworICAgIHNpemVfdCBkZXJpdmVkX2tleV9sZW47CisKKyAgICBzdGF0dXMgPSBwc2FfY3J5cHRvX2luaXQoKTsKKyAgICBpZiAoc3RhdHVzICE9IFBTQV9TVUNDRVNTKSB7CisgICAgICAgIG1iZWR0bHNfcHJpbnRmKCJwc2FfY3J5cHRvX2luaXQgZmFpbGVkXG4iKTsKKyAgICAgICAgcmV0dXJuIEVYSVRfRkFJTFVSRTsKKyAgICB9CisKKyAgICBwc2Ffc2V0X2tleV91c2FnZV9mbGFncygmY2xpZW50X2F0dHJpYnV0ZXMsIFBTQV9LRVlfVVNBR0VfREVSSVZFKTsKKyAgICBwc2Ffc2V0X2tleV9hbGdvcml0aG0oJmNsaWVudF9hdHRyaWJ1dGVzLCBQU0FfQUxHX0VDREgpOworICAgIHBzYV9zZXRfa2V5X3R5cGUoJmNsaWVudF9hdHRyaWJ1dGVzLCBQU0FfS0VZX1RZUEVfRUNDX0tFWV9QQUlSKFBTQV9FQ0NfRkFNSUxZX1NFQ1BfUjEpKTsKKyAgICBwc2Ffc2V0X2tleV9iaXRzKCZjbGllbnRfYXR0cmlidXRlcywgS0VZX0JJVFMpOworCisgICAgLyogR2VuZXJhdGUgZXBoZW1lcmFsIGtleSBwYWlyICovCisgICAgc3RhdHVzID0gcHNhX2dlbmVyYXRlX2tleSgmY2xpZW50X2F0dHJpYnV0ZXMsICZjbGllbnRfa2V5X2lkKTsKKyAgICBpZiAoc3RhdHVzICE9IFBTQV9TVUNDRVNTKSB7CisgICAgICAgIG1iZWR0bHNfcHJpbnRmKCJwc2FfZ2VuZXJhdGVfa2V5IGZhaWxlZFxuIik7CisgICAgICAgIHJldHVybiBFWElUX0ZBSUxVUkU7CisgICAgfQorICAgIHN0YXR1cyA9IHBzYV9leHBvcnRfcHVibGljX2tleShjbGllbnRfa2V5X2lkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGllbnRfcGssIHNpemVvZihjbGllbnRfcGspLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmY2xpZW50X3BrX2xlbik7CisgICAgaWYgKHN0YXR1cyAhPSBQU0FfU1VDQ0VTUykgeworICAgICAgICBtYmVkdGxzX3ByaW50ZigicHNhX2V4cG9ydF9wdWJsaWNfa2V5IGZhaWxlZFxuIik7CisgICAgICAgIHJldHVybiBFWElUX0ZBSUxVUkU7CisgICAgfQorCisgICAgbWJlZHRsc19wcmludGYoIkNsaWVudCBQdWJsaWMgS2V5ICglIiBNQkVEVExTX1BSSU5URl9TSVpFVCAiIGJ5dGVzKTpcbiIsIGNsaWVudF9wa19sZW4pOworCisgICAgZm9yIChzaXplX3QgaiA9IDA7IGogPCBjbGllbnRfcGtfbGVuOyBqKyspIHsKKyAgICAgICAgaWYgKGogJSA4ID09IDApIHsKKyAgICAgICAgICAgIG1iZWR0bHNfcHJpbnRmKCJcbiAgICAiKTsKKyAgICAgICAgfQorICAgICAgICBtYmVkdGxzX3ByaW50ZigiJTAyeCAiLCBjbGllbnRfcGtbal0pOworICAgIH0KKyAgICBtYmVkdGxzX3ByaW50ZigiXG5cbiIpOworCisgICAgcHNhX3NldF9rZXlfdXNhZ2VfZmxhZ3MoJnNlcnZlcl9hdHRyaWJ1dGVzLCBQU0FfS0VZX1VTQUdFX0RFUklWRSB8IFBTQV9LRVlfVVNBR0VfRVhQT1JUKTsKKyAgICBwc2Ffc2V0X2tleV9hbGdvcml0aG0oJnNlcnZlcl9hdHRyaWJ1dGVzLCBQU0FfQUxHX0VDRFNBX0FOWSk7CisgICAgcHNhX3NldF9rZXlfdHlwZSgmc2VydmVyX2F0dHJpYnV0ZXMsIFBTQV9LRVlfVFlQRV9FQ0NfUFVCTElDX0tFWShQU0FfRUNDX0ZBTUlMWV9TRUNQX1IxKSk7CisKKyAgICAvKiBJbXBvcnQgc2VydmVyIHB1YmxpYyBrZXkgKi8KKyAgICBzdGF0dXMgPSBwc2FfaW1wb3J0X2tleSgmc2VydmVyX2F0dHJpYnV0ZXMsIHNlcnZlcl9waywgc2l6ZW9mKHNlcnZlcl9wayksICZzZXJ2ZXJfa2V5X2lkKTsKKyAgICBpZiAoc3RhdHVzICE9IFBTQV9TVUNDRVNTKSB7CisgICAgICAgIG1iZWR0bHNfcHJpbnRmKCJwc2FfaW1wb3J0X2tleSBmYWlsZWRcbiIpOworICAgICAgICByZXR1cm4gRVhJVF9GQUlMVVJFOworICAgIH0KKworICAgIHN0YXR1cyA9IHBzYV9nZXRfa2V5X2F0dHJpYnV0ZXMoc2VydmVyX2tleV9pZCwgJmNoZWNrX2F0dHJpYnV0ZXMpOworICAgIGlmIChzdGF0dXMgIT0gUFNBX1NVQ0NFU1MpIHsKKyAgICAgICAgbWJlZHRsc19wcmludGYoInBzYV9nZXRfa2V5X2F0dHJpYnV0ZXMgZmFpbGVkXG4iKTsKKyAgICAgICAgcmV0dXJuIEVYSVRfRkFJTFVSRTsKKyAgICB9CisKKyAgICBrZXlfYml0cyA9IHBzYV9nZXRfa2V5X2JpdHMoJmNoZWNrX2F0dHJpYnV0ZXMpOworICAgIGlmIChrZXlfYml0cyAhPSAyNTYpIHsKKyAgICAgICAgbWJlZHRsc19wcmludGYoIkluY29tcGF0aWJsZSBrZXkgc2l6ZSFcbiIpOworICAgICAgICByZXR1cm4gRVhJVF9GQUlMVVJFOworICAgIH0KKworICAgIGtleV90eXBlID0gcHNhX2dldF9rZXlfdHlwZSgmY2hlY2tfYXR0cmlidXRlcyk7CisgICAgaWYgKGtleV90eXBlICE9IFBTQV9LRVlfVFlQRV9FQ0NfUFVCTElDX0tFWShQU0FfRUNDX0ZBTUlMWV9TRUNQX1IxKSkgeworICAgICAgICBtYmVkdGxzX3ByaW50ZigiVW5zdXBwb3J0ZWQga2V5IHR5cGUhXG4iKTsKKyAgICAgICAgcmV0dXJuIEVYSVRfRkFJTFVSRTsKKyAgICB9CisKKyAgICBtYmVkdGxzX3ByaW50ZigiU2VydmVyIFB1YmxpYyBLZXkgKCUiIE1CRURUTFNfUFJJTlRGX1NJWkVUICIgYnl0ZXMpOlxuIiwgc2l6ZW9mKHNlcnZlcl9waykpOworCisgICAgZm9yIChzaXplX3QgaiA9IDA7IGogPCBzaXplb2Yoc2VydmVyX3BrKTsgaisrKSB7CisgICAgICAgIGlmIChqICUgOCA9PSAwKSB7CisgICAgICAgICAgICBtYmVkdGxzX3ByaW50ZigiXG4gICAgIik7CisgICAgICAgIH0KKyAgICAgICAgbWJlZHRsc19wcmludGYoIiUwMnggIiwgc2VydmVyX3BrW2pdKTsKKyAgICB9CisgICAgbWJlZHRsc19wcmludGYoIlxuXG4iKTsKKworICAgIC8qIEdlbmVyYXRlIEVDREhFIGRlcml2ZWQga2V5ICovCisgICAgc3RhdHVzID0gcHNhX3Jhd19rZXlfYWdyZWVtZW50KFBTQV9BTEdfRUNESCwgICAgICAgICAgICAgICAgICAgICAgICAvLyBhbGdvcml0aG0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xpZW50X2tleV9pZCwgICAgICAgICAgICAgICAgICAgLy8gY2xpZW50IHNlY3JldCBrZXkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VydmVyX3BrLCBzaXplb2Yoc2VydmVyX3BrKSwgICAgICAgIC8vIHNlcnZlciBwdWJsaWMga2V5CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlcml2ZWRfa2V5LCBzaXplb2YoZGVyaXZlZF9rZXkpLCAgICAvLyBidWZmZXIgdG8gc3RvcmUgZGVyaXZlZCBrZXkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJmRlcml2ZWRfa2V5X2xlbik7CisgICAgaWYgKHN0YXR1cyAhPSBQU0FfU1VDQ0VTUykgeworICAgICAgICBtYmVkdGxzX3ByaW50ZigicHNhX3Jhd19rZXlfYWdyZWVtZW50IGZhaWxlZFxuIik7CisgICAgICAgIHJldHVybiBFWElUX0ZBSUxVUkU7CisgICAgfQorCisgICAgbWJlZHRsc19wcmludGYoIkRlcml2ZWQgS2V5ICglIiBNQkVEVExTX1BSSU5URl9TSVpFVCAiIGJ5dGVzKTpcbiIsIGRlcml2ZWRfa2V5X2xlbik7CisKKyAgICBmb3IgKHNpemVfdCBqID0gMDsgaiA8IGRlcml2ZWRfa2V5X2xlbjsgaisrKSB7CisgICAgICAgIGlmIChqICUgOCA9PSAwKSB7CisgICAgICAgICAgICBtYmVkdGxzX3ByaW50ZigiXG4gICAgIik7CisgICAgICAgIH0KKyAgICAgICAgbWJlZHRsc19wcmludGYoIiUwMnggIiwgZGVyaXZlZF9rZXlbal0pOworICAgIH0KKyAgICBtYmVkdGxzX3ByaW50ZigiXG4iKTsKKworICAgIHBzYV9kZXN0cm95X2tleShzZXJ2ZXJfa2V5X2lkKTsKKyAgICBwc2FfZGVzdHJveV9rZXkoY2xpZW50X2tleV9pZCk7CisgICAgbWJlZHRsc19wc2FfY3J5cHRvX2ZyZWUoKTsKKyAgICByZXR1cm4gRVhJVF9TVUNDRVNTOworfQpkaWZmIC0tZ2l0IGEvdGVzdHMvcHNhLWNsaWVudC1zZXJ2ZXIvcHNhc2ltL3NyYy9hdXRfcHNhX21hYy5jIGIvdGVzdHMvcHNhLWNsaWVudC1zZXJ2ZXIvcHNhc2ltL3NyYy9hdXRfcHNhX21hYy5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjE4YjRiNTcKLS0tIC9kZXYvbnVsbAorKysgYi90ZXN0cy9wc2EtY2xpZW50LXNlcnZlci9wc2FzaW0vc3JjL2F1dF9wc2FfbWFjLmMKQEAgLTAsMCArMSwxNjIgQEAKKy8qCisgKiAgQ29weXJpZ2h0IFRoZSBNYmVkIFRMUyBDb250cmlidXRvcnMKKyAqICBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMCBPUiBHUEwtMi4wLW9yLWxhdGVyCisgKi8KKworI2luY2x1ZGUgInBzYS9jcnlwdG8uaCIKKyNpbmNsdWRlIDxzdHJpbmcuaD4KKyNpbmNsdWRlIDxzdGRpby5oPgorI2luY2x1ZGUgPHN0ZGxpYi5oPgorCisjaW5jbHVkZSAibWJlZHRscy9idWlsZF9pbmZvLmgiCisKKy8qIGNvbnN0YW50LXRpbWUgYnVmZmVyIGNvbXBhcmlzb24gKi8KK3N0YXRpYyBpbmxpbmUgaW50IHNhZmVyX21lbWNtcChjb25zdCB2b2lkICphLCBjb25zdCB2b2lkICpiLCBzaXplX3QgbikKK3sKKyAgICBzaXplX3QgaTsKKyAgICB2b2xhdGlsZSBjb25zdCB1bnNpZ25lZCBjaGFyICpBID0gKHZvbGF0aWxlIGNvbnN0IHVuc2lnbmVkIGNoYXIgKikgYTsKKyAgICB2b2xhdGlsZSBjb25zdCB1bnNpZ25lZCBjaGFyICpCID0gKHZvbGF0aWxlIGNvbnN0IHVuc2lnbmVkIGNoYXIgKikgYjsKKyAgICB2b2xhdGlsZSB1bnNpZ25lZCBjaGFyIGRpZmYgPSAwOworCisgICAgZm9yIChpID0gMDsgaSA8IG47IGkrKykgeworICAgICAgICAvKiBSZWFkIHZvbGF0aWxlIGRhdGEgaW4gb3JkZXIgYmVmb3JlIGNvbXB1dGluZyBkaWZmLgorICAgICAgICAgKiBUaGlzIGF2b2lkcyBJQVIgY29tcGlsZXIgd2FybmluZzoKKyAgICAgICAgICogJ3RoZSBvcmRlciBvZiB2b2xhdGlsZSBhY2Nlc3NlcyBpcyB1bmRlZmluZWQgLi4nICovCisgICAgICAgIHVuc2lnbmVkIGNoYXIgeCA9IEFbaV0sIHkgPSBCW2ldOworICAgICAgICBkaWZmIHw9IHggXiB5OworICAgIH0KKworICAgIHJldHVybiBkaWZmOworfQorCisKK2ludCBwc2FfbWFjX21haW4odm9pZCkKK3sKKyAgICB1aW50OF90IGlucHV0W10gPSAiSGVsbG8gV29ybGQhIjsKKyAgICBwc2Ffc3RhdHVzX3Qgc3RhdHVzOworICAgIHNpemVfdCBtYWNfc2l6ZV9yZWFsID0gMDsKKyAgICBwc2Ffa2V5X2F0dHJpYnV0ZXNfdCBhdHRyaWJ1dGVzID0gUFNBX0tFWV9BVFRSSUJVVEVTX0lOSVQ7CisgICAgcHNhX2tleV9pZF90IGtleV9pZCA9IDA7CisgICAgdWludDhfdCBtYWNbUFNBX01BQ19NQVhfU0laRV07CisgICAgcHNhX21hY19vcGVyYXRpb25fdCBvcGVyYXRpb24gPSBQU0FfTUFDX09QRVJBVElPTl9JTklUOworICAgIGNvbnN0IHVpbnQ4X3Qga2V5X2J5dGVzWzE2XSA9ICJra2tra2tra2tra2tra2trIjsKKyAgICBjb25zdCB1aW50OF90IG1iZWR0bHNfdGVzdF9obWFjX3NoYTI1NltdID0geworICAgICAgICAweGFlLCAweDcyLCAweDM0LCAweDVhLCAweDEwLCAweDM2LCAweGZiLCAweDcxLAorICAgICAgICAweDM1LCAweDNjLCAweDdkLCAweDZjLCAweDgxLCAweDk4LCAweDUyLCAweDg2LAorICAgICAgICAweDAwLCAweDRhLCAweDQzLCAweDdjLCAweDJkLCAweGIzLCAweDFhLCAweGQ4LAorICAgICAgICAweDY3LCAweGIxLCAweGFkLCAweDExLCAweDRkLCAweDE4LCAweDQ5LCAweDhiCisgICAgfTsKKworICAgIHN0YXR1cyA9IHBzYV9jcnlwdG9faW5pdCgpOworICAgIGlmIChzdGF0dXMgIT0gUFNBX1NVQ0NFU1MpIHsKKyAgICAgICAgcHJpbnRmKCJwc2FfY3J5cHRvX2luaXQgZmFpbGVkXG4iKTsKKyAgICAgICAgcmV0dXJuIEVYSVRfRkFJTFVSRTsKKyAgICB9CisKKyAgICBwc2Ffc2V0X2tleV91c2FnZV9mbGFncygmYXR0cmlidXRlcywgUFNBX0tFWV9VU0FHRV9WRVJJRllfTUVTU0FHRSB8CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgUFNBX0tFWV9VU0FHRV9TSUdOX0hBU0ggfAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBTQV9LRVlfVVNBR0VfU0lHTl9NRVNTQUdFKTsKKyAgICBwc2Ffc2V0X2tleV9hbGdvcml0aG0oJmF0dHJpYnV0ZXMsIFBTQV9BTEdfSE1BQyhQU0FfQUxHX1NIQV8yNTYpKTsKKyAgICBwc2Ffc2V0X2tleV90eXBlKCZhdHRyaWJ1dGVzLCBQU0FfS0VZX1RZUEVfSE1BQyk7CisKKyAgICBzdGF0dXMgPSBwc2FfaW1wb3J0X2tleSgmYXR0cmlidXRlcywga2V5X2J5dGVzLCBzaXplb2Yoa2V5X2J5dGVzKSwgJmtleV9pZCk7CisgICAgaWYgKHN0YXR1cyAhPSBQU0FfU1VDQ0VTUykgeworICAgICAgICBwcmludGYoInBzYV9pbXBvcnRfa2V5IGZhaWxlZFxuIik7CisgICAgICAgIHJldHVybiBFWElUX0ZBSUxVUkU7CisgICAgfQorCisgICAgLyogU2luZ2xlLXBhcnQgTUFDIG9wZXJhdGlvbiB3aXRoIHBzYV9tYWNfY29tcHV0ZSgpICovCisgICAgc3RhdHVzID0gcHNhX21hY19jb21wdXRlKGtleV9pZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUFNBX0FMR19ITUFDKFBTQV9BTEdfU0hBXzI1NiksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlucHV0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplb2YoaW5wdXQpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYWMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVvZihtYWMpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmbWFjX3NpemVfcmVhbCk7CisgICAgaWYgKHN0YXR1cyAhPSBQU0FfU1VDQ0VTUykgeworICAgICAgICBwcmludGYoInBzYV9tYWNfY29tcHV0ZSBmYWlsZWRcbiIpOworICAgICAgICByZXR1cm4gRVhJVF9GQUlMVVJFOworICAgIH0KKworICAgIHByaW50ZigiSE1BQy1TSEEtMjU2KCVzKSB3aXRoIHBzYV9tYWNfY29tcHV0ZSgpOlxuIiwgaW5wdXQpOworCisgICAgZm9yIChzaXplX3QgaiA9IDA7IGogPCBtYWNfc2l6ZV9yZWFsOyBqKyspIHsKKyAgICAgICAgaWYgKGogJSA4ID09IDApIHsKKyAgICAgICAgICAgIHByaW50ZigiXG4gICAgIik7CisgICAgICAgIH0KKyAgICAgICAgcHJpbnRmKCIlMDJ4ICIsIG1hY1tqXSk7CisgICAgfQorCisgICAgcHJpbnRmKCJcbiIpOworCisgICAgaWYgKHNhZmVyX21lbWNtcChtYWMsCisgICAgICAgICAgICAgICAgICAgICBtYmVkdGxzX3Rlc3RfaG1hY19zaGEyNTYsCisgICAgICAgICAgICAgICAgICAgICBtYWNfc2l6ZV9yZWFsCisgICAgICAgICAgICAgICAgICAgICApICE9IDApIHsKKyAgICAgICAgcHJpbnRmKCJcbk1BQyB2ZXJpZmllZCBpbmNvcnJlY3RseSFcbiIpOworICAgIH0gZWxzZSB7CisgICAgICAgIHByaW50ZigiXG5NQUMgdmVyaWZpZWQgY29ycmVjdGx5IVxuIik7CisgICAgfQorCisgICAgcHNhX2Rlc3Ryb3lfa2V5KGtleV9pZCk7CisKKyAgICBzdGF0dXMgPSBwc2FfaW1wb3J0X2tleSgmYXR0cmlidXRlcywga2V5X2J5dGVzLCBzaXplb2Yoa2V5X2J5dGVzKSwgJmtleV9pZCk7CisgICAgaWYgKHN0YXR1cyAhPSBQU0FfU1VDQ0VTUykgeworICAgICAgICBwcmludGYoInBzYV9pbXBvcnRfa2V5IGZhaWxlZFxuIik7CisgICAgICAgIHJldHVybiBFWElUX0ZBSUxVUkU7CisgICAgfQorCisgICAgLyogU2luZ2xlLXBhcnQgTUFDIG9wZXJhdGlvbiB3aXRoIHBzYV9tYWNfdmVyaWZ5KCkgKi8KKyAgICBzdGF0dXMgPSBwc2FfbWFjX3ZlcmlmeShrZXlfaWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgUFNBX0FMR19ITUFDKFBTQV9BTEdfU0hBXzI1NiksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5wdXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZW9mKGlucHV0KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYmVkdGxzX3Rlc3RfaG1hY19zaGEyNTYsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZW9mKG1iZWR0bHNfdGVzdF9obWFjX3NoYTI1NikpOworICAgIGlmIChzdGF0dXMgIT0gUFNBX1NVQ0NFU1MpIHsKKyAgICAgICAgcHJpbnRmKCJwc2FfbWFjX3ZlcmlmeSBmYWlsZWRcbiIpOworICAgICAgICByZXR1cm4gRVhJVF9GQUlMVVJFOworICAgIH0gZWxzZSB7CisgICAgICAgIHByaW50ZigicHNhX21hY192ZXJpZnkgcGFzc2VkIHN1Y2Nlc3NmdWxseVxuIik7CisgICAgfQorCisgICAgcHNhX2Rlc3Ryb3lfa2V5KGtleV9pZCk7CisKKyAgICBzdGF0dXMgPSBwc2FfaW1wb3J0X2tleSgmYXR0cmlidXRlcywga2V5X2J5dGVzLCBzaXplb2Yoa2V5X2J5dGVzKSwgJmtleV9pZCk7CisgICAgaWYgKHN0YXR1cyAhPSBQU0FfU1VDQ0VTUykgeworICAgICAgICBwcmludGYoInBzYV9pbXBvcnRfa2V5IGZhaWxlZFxuIik7CisgICAgICAgIHJldHVybiBFWElUX0ZBSUxVUkU7CisgICAgfQorCisgICAgLyogTXVsdGktcGFydCBNQUMgb3BlcmF0aW9uICovCisgICAgc3RhdHVzID0gcHNhX21hY19zaWduX3NldHVwKCZvcGVyYXRpb24sIGtleV9pZCwgUFNBX0FMR19ITUFDKFBTQV9BTEdfU0hBXzI1NikpOworICAgIGlmIChzdGF0dXMgIT0gUFNBX1NVQ0NFU1MpIHsKKyAgICAgICAgcHJpbnRmKCJwc2FfbWFjX3NpZ25fc2V0dXAgZmFpbGVkXG4iKTsKKyAgICAgICAgcmV0dXJuIEVYSVRfRkFJTFVSRTsKKyAgICB9CisKKyAgICBzdGF0dXMgPSBwc2FfbWFjX3VwZGF0ZSgmb3BlcmF0aW9uLCBpbnB1dCwgc2l6ZW9mKGlucHV0KSk7CisgICAgaWYgKHN0YXR1cyAhPSBQU0FfU1VDQ0VTUykgeworICAgICAgICBwcmludGYoInBzYV9tYWNfdXBkYXRlIGZhaWxlZFxuIik7CisgICAgICAgIHJldHVybiBFWElUX0ZBSUxVUkU7CisgICAgfQorCisgICAgc3RhdHVzID0gcHNhX21hY19zaWduX2ZpbmlzaCgmb3BlcmF0aW9uLCBtYWMsIHNpemVvZihtYWMpLCAmbWFjX3NpemVfcmVhbCk7CisgICAgaWYgKHN0YXR1cyAhPSBQU0FfU1VDQ0VTUykgeworICAgICAgICBwcmludGYoInBzYV9tYWNfc2lnbl9maW5pc2ggZmFpbGVkXG4iKTsKKyAgICAgICAgcmV0dXJuIEVYSVRfRkFJTFVSRTsKKyAgICB9CisKKyAgICBpZiAoc2FmZXJfbWVtY21wKG1hYywKKyAgICAgICAgICAgICAgICAgICAgIG1iZWR0bHNfdGVzdF9obWFjX3NoYTI1NiwKKyAgICAgICAgICAgICAgICAgICAgIG1hY19zaXplX3JlYWwKKyAgICAgICAgICAgICAgICAgICAgICkgIT0gMCkgeworICAgICAgICBwcmludGYoIk1BQywgY2FsY3VsYXRlZCB3aXRoIG11bHRpLXBhcnQgTUFDIG9wZXJhdGlvbiwgdmVyaWZpZWQgaW5jb3JyZWN0bHkhXG4iKTsKKyAgICB9IGVsc2UgeworICAgICAgICBwcmludGYoIk1BQywgY2FsY3VsYXRlZCB3aXRoIG11bHRpLXBhcnQgTUFDIG9wZXJhdGlvbiwgdmVyaWZpZWQgY29ycmVjdGx5IVxuIik7CisgICAgfQorCisgICAgcHNhX2Rlc3Ryb3lfa2V5KGtleV9pZCk7CisgICAgbWJlZHRsc19wc2FfY3J5cHRvX2ZyZWUoKTsKKyAgICByZXR1cm4gRVhJVF9TVUNDRVNTOworfQpkaWZmIC0tZ2l0IGEvdGVzdHMvcHNhLWNsaWVudC1zZXJ2ZXIvcHNhc2ltL3NyYy9hdXRfcHNhX3JhbmRvbS5jIGIvdGVzdHMvcHNhLWNsaWVudC1zZXJ2ZXIvcHNhc2ltL3NyYy9hdXRfcHNhX3JhbmRvbS5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjU4ODBjNGQKLS0tIC9kZXYvbnVsbAorKysgYi90ZXN0cy9wc2EtY2xpZW50LXNlcnZlci9wc2FzaW0vc3JjL2F1dF9wc2FfcmFuZG9tLmMKQEAgLTAsMCArMSw0NyBAQAorLyoKKyAqICBDb3B5cmlnaHQgVGhlIE1iZWQgVExTIENvbnRyaWJ1dG9ycworICogIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wIE9SIEdQTC0yLjAtb3ItbGF0ZXIKKyAqLworCisjaW5jbHVkZSAibWJlZHRscy9idWlsZF9pbmZvLmgiCisKKyNpbmNsdWRlIDxwc2EvY3J5cHRvLmg+CisjaW5jbHVkZSA8c3RyaW5nLmg+CisjaW5jbHVkZSA8c3RkaW8uaD4KKyNpbmNsdWRlIDxzdGRsaWIuaD4KKworI2luY2x1ZGUgIm1iZWR0bHMvZW50cm9weS5oIgorCisjZGVmaW5lIEJVRkZFUl9TSVpFIDEwMAorCitpbnQgcHNhX3JhbmRvbV9tYWluKHZvaWQpCit7CisgICAgcHNhX3N0YXR1c190IHN0YXR1czsKKyAgICB1aW50OF90IG91dHB1dFtCVUZGRVJfU0laRV0gPSB7IDAgfTsKKworICAgIHN0YXR1cyA9IHBzYV9jcnlwdG9faW5pdCgpOworICAgIGlmIChzdGF0dXMgIT0gUFNBX1NVQ0NFU1MpIHsKKyAgICAgICAgcHJpbnRmKCJwc2FfY3J5cHRvX2luaXQgZmFpbGVkXG4iKTsKKyAgICAgICAgcmV0dXJuIEVYSVRfRkFJTFVSRTsKKyAgICB9CisKKyAgICBzdGF0dXMgPSBwc2FfZ2VuZXJhdGVfcmFuZG9tKG91dHB1dCwgQlVGRkVSX1NJWkUpOworICAgIGlmIChzdGF0dXMgIT0gUFNBX1NVQ0NFU1MpIHsKKyAgICAgICAgcHJpbnRmKCJwc2FfZ2VuZXJhdGVfcmFuZG9tIGZhaWxlZFxuIik7CisgICAgICAgIHJldHVybiBFWElUX0ZBSUxVUkU7CisgICAgfQorCisgICAgcHJpbnRmKCJSYW5kb20gYnl0ZXMgZ2VuZXJhdGVkOlxuIik7CisKKyAgICBmb3IgKHNpemVfdCBqID0gMDsgaiA8IEJVRkZFUl9TSVpFOyBqKyspIHsKKyAgICAgICAgaWYgKGogJSA4ID09IDApIHsKKyAgICAgICAgICAgIHByaW50ZigiXG4gICAgIik7CisgICAgICAgIH0KKyAgICAgICAgcHJpbnRmKCIlMDJ4ICIsIG91dHB1dFtqXSk7CisgICAgfQorCisgICAgcHJpbnRmKCJcbiIpOworCisgICAgbWJlZHRsc19wc2FfY3J5cHRvX2ZyZWUoKTsKKyAgICByZXR1cm4gMDsKK30KZGlmZiAtLWdpdCBhL3Rlc3RzL3BzYS1jbGllbnQtc2VydmVyL3BzYXNpbS9zcmMvYXV0X3BzYV9zaWduX3ZlcmlmeS5jIGIvdGVzdHMvcHNhLWNsaWVudC1zZXJ2ZXIvcHNhc2ltL3NyYy9hdXRfcHNhX3NpZ25fdmVyaWZ5LmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOThkZjllNQotLS0gL2Rldi9udWxsCisrKyBiL3Rlc3RzL3BzYS1jbGllbnQtc2VydmVyL3BzYXNpbS9zcmMvYXV0X3BzYV9zaWduX3ZlcmlmeS5jCkBAIC0wLDAgKzEsOTMgQEAKKy8qCisgKiAgQ29weXJpZ2h0IFRoZSBNYmVkIFRMUyBDb250cmlidXRvcnMKKyAqICBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMCBPUiBHUEwtMi4wLW9yLWxhdGVyCisgKi8KKworCisjaW5jbHVkZSAicHNhL2NyeXB0by5oIgorI2luY2x1ZGUgPHN0cmluZy5oPgorI2luY2x1ZGUgPHN0ZGlvLmg+CisjaW5jbHVkZSA8c3RkbGliLmg+CisKKyNpbmNsdWRlICJtYmVkdGxzL2J1aWxkX2luZm8uaCIKKyNpbmNsdWRlICJtYmVkdGxzL3BsYXRmb3JtLmgiCisKKyNkZWZpbmUgS0VZX0JZVEVTX1ZBTFVFIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICAweDQ5LCAweGM5LCAweGE4LCAweGMxLCAweDhjLCAweDRiLCAweDg4LCAweDU2LCAweDM4LCAweGM0LCAweDMxLCAweGNmLCBcCisgICAgICAgIDB4MWQsIDB4ZjEsIDB4YzksIDB4OTQsIDB4MTMsIDB4MTYsIDB4MDksIDB4YjUsIDB4ODAsIDB4ZDQsIDB4ZmQsIDB4NDMsIFwKKyAgICAgICAgMHhhMCwgMHhjYSwgMHhiMSwgMHg3ZCwgMHhiMiwgMHhmMSwgMHgzZSwgMHhlZSAgICAgICAgICAgICAgICAgICAgICAgICAgXAorfQorCisjZGVmaW5lIFBMQUlOVEVYVF9WQUxVRSAiSGVsbG8gV29ybGQhIgorCisvKiBTSEEtMjU2KHBsYWludGV4dCkgKi8KKyNkZWZpbmUgSEFTSF9WQUxVRSB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICAweDVhLCAweDA5LCAweGU4LCAweGZhLCAweDljLCAweDc3LCAweDgwLCAweDdiLCAweDI0LCAweGU5LCAweDljLCAweDljLCBcCisgICAgICAgIDB4ZjksIDB4OTksIDB4ZGUsIDB4YmYsIDB4YWQsIDB4ODQsIDB4NDEsIDB4ZTIsIDB4NjksIDB4ZWIsIDB4OTYsIDB4MGUsIFwKKyAgICAgICAgMHgyMCwgMHgxZiwgMHg2MSwgMHhmYywgMHgzZCwgMHhlMiwgMHgwZCwgMHg1YSAgICAgICAgICAgICAgICAgICAgICAgICAgXAorfQorCitpbnQgcHNhX3NpZ25fdmVyaWZ5X21haW4odm9pZCkKK3sKKyAgICBwc2Ffc3RhdHVzX3Qgc3RhdHVzOworICAgIHBzYV9rZXlfaWRfdCBrZXlfaWQgPSAwOworICAgIHBzYV9rZXlfYXR0cmlidXRlc190IGF0dHJpYnV0ZXMgPSBQU0FfS0VZX0FUVFJJQlVURVNfSU5JVDsKKyAgICB1aW50OF90IHNpZ25hdHVyZVtQU0FfU0lHTkFUVVJFX01BWF9TSVpFXSA9IHsgMCB9OworICAgIHNpemVfdCBzaWduYXR1cmVfbGVuZ3RoOworICAgIGNvbnN0IHVpbnQ4X3Qga2V5X2J5dGVzW10gPSBLRVlfQllURVNfVkFMVUU7CisgICAgY29uc3QgdWludDhfdCBwbGFpbnRleHRbXSA9IFBMQUlOVEVYVF9WQUxVRTsKKyAgICBjb25zdCB1aW50OF90IGhhc2hbXSA9IEhBU0hfVkFMVUU7CisKKyAgICBzdGF0dXMgPSBwc2FfY3J5cHRvX2luaXQoKTsKKyAgICBpZiAoc3RhdHVzICE9IFBTQV9TVUNDRVNTKSB7CisgICAgICAgIG1iZWR0bHNfcHJpbnRmKCJwc2FfY3J5cHRvX2luaXQgZmFpbGVkXG4iKTsKKyAgICAgICAgcmV0dXJuIEVYSVRfRkFJTFVSRTsKKyAgICB9CisKKyAgICBwc2Ffc2V0X2tleV91c2FnZV9mbGFncygmYXR0cmlidXRlcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBQU0FfS0VZX1VTQUdFX1NJR05fSEFTSCB8IFBTQV9LRVlfVVNBR0VfVkVSSUZZX0hBU0gpOworICAgIHBzYV9zZXRfa2V5X2FsZ29yaXRobSgmYXR0cmlidXRlcywgUFNBX0FMR19FQ0RTQShQU0FfQUxHX1NIQV8yNTYpKTsKKyAgICBwc2Ffc2V0X2tleV90eXBlKCZhdHRyaWJ1dGVzLCBQU0FfS0VZX1RZUEVfRUNDX0tFWV9QQUlSKFBTQV9FQ0NfRkFNSUxZX1NFQ1BfUjEpKTsKKworICAgIHN0YXR1cyA9IHBzYV9pbXBvcnRfa2V5KCZhdHRyaWJ1dGVzLCBrZXlfYnl0ZXMsIHNpemVvZihrZXlfYnl0ZXMpLCAma2V5X2lkKTsKKyAgICBpZiAoc3RhdHVzICE9IFBTQV9TVUNDRVNTKSB7CisgICAgICAgIG1iZWR0bHNfcHJpbnRmKCJwc2FfaW1wb3J0X2tleSBmYWlsZWRcbiIpOworICAgICAgICByZXR1cm4gRVhJVF9GQUlMVVJFOworICAgIH0KKworICAgIHN0YXR1cyA9IHBzYV9zaWduX2hhc2goa2V5X2lkLCAgICAgICAgICAgICAgICAgICAgICAgICAgLy8ga2V5IGhhbmRsZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgUFNBX0FMR19FQ0RTQShQU0FfQUxHX1NIQV8yNTYpLCAgLy8gc2lnbmF0dXJlIGFsZ29yaXRobQorICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFzaCwgc2l6ZW9mKGhhc2gpLCAgICAgICAgICAgICAgLy8gaGFzaCBvZiB0aGUgbWVzc2FnZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgc2lnbmF0dXJlLCBzaXplb2Yoc2lnbmF0dXJlKSwgICAgLy8gc2lnbmF0dXJlIChhcyBvdXRwdXQpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAmc2lnbmF0dXJlX2xlbmd0aCk7ICAgICAgICAgICAgICAvLyBsZW5ndGggb2Ygc2lnbmF0dXJlIG91dHB1dAorICAgIGlmIChzdGF0dXMgIT0gUFNBX1NVQ0NFU1MpIHsKKyAgICAgICAgbWJlZHRsc19wcmludGYoInBzYV9zaWduX2hhc2ggZmFpbGVkXG4iKTsKKyAgICAgICAgcmV0dXJuIEVYSVRfRkFJTFVSRTsKKyAgICB9CisKKyAgICBtYmVkdGxzX3ByaW50ZigiRUNEU0EtU0hBMjU2IHNpZ25hdHVyZSBvZiBTSEEtMjU2KCclcycpOlxuIiwgcGxhaW50ZXh0KTsKKworICAgIGZvciAoc2l6ZV90IGogPSAwOyBqIDwgc2lnbmF0dXJlX2xlbmd0aDsgaisrKSB7CisgICAgICAgIGlmIChqICUgOCA9PSAwKSB7CisgICAgICAgICAgICBtYmVkdGxzX3ByaW50ZigiXG4gICAgIik7CisgICAgICAgIH0KKyAgICAgICAgbWJlZHRsc19wcmludGYoIiUwMnggIiwgc2lnbmF0dXJlW2pdKTsKKyAgICB9CisKKyAgICBtYmVkdGxzX3ByaW50ZigiXG4iKTsKKworICAgIHN0YXR1cyA9IHBzYV92ZXJpZnlfaGFzaChrZXlfaWQsICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBrZXkgaGFuZGxlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBTQV9BTEdfRUNEU0EoUFNBX0FMR19TSEFfMjU2KSwgIC8vIHNpZ25hdHVyZSBhbGdvcml0aG0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFzaCwgc2l6ZW9mKGhhc2gpLCAgICAgICAgICAgICAgLy8gaGFzaCBvZiBtZXNzYWdlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpZ25hdHVyZSwgc2lnbmF0dXJlX2xlbmd0aCk7ICAgIC8vIHNpZ25hdHVyZQorICAgIGlmIChzdGF0dXMgIT0gUFNBX1NVQ0NFU1MpIHsKKyAgICAgICAgbWJlZHRsc19wcmludGYoInBzYV92ZXJpZnlfaGFzaCBmYWlsZWRcbiIpOworICAgICAgICByZXR1cm4gRVhJVF9GQUlMVVJFOworICAgIH0gZWxzZSB7CisgICAgICAgIG1iZWR0bHNfcHJpbnRmKCJcblNpZ25hdHVyZSB2ZXJpZmljYXRpb24gc3VjY2Vzc2Z1bCFcbiIpOworICAgIH0KKworICAgIHBzYV9kZXN0cm95X2tleShrZXlfaWQpOworICAgIG1iZWR0bHNfcHNhX2NyeXB0b19mcmVlKCk7CisgICAgcmV0dXJuIEVYSVRfU1VDQ0VTUzsKK30KZGlmZiAtLWdpdCBhL3Rlc3RzL3BzYS1jbGllbnQtc2VydmVyL3BzYXNpbS9zcmMvcHNhX2ZmX3NlcnZlci5jIGIvdGVzdHMvcHNhLWNsaWVudC1zZXJ2ZXIvcHNhc2ltL3NyYy9wc2FfZmZfc2VydmVyLmMKaW5kZXggN2Y5N2I5Yi4uYjEwNjA5MiAxMDA2NDQKLS0tIGEvdGVzdHMvcHNhLWNsaWVudC1zZXJ2ZXIvcHNhc2ltL3NyYy9wc2FfZmZfc2VydmVyLmMKKysrIGIvdGVzdHMvcHNhLWNsaWVudC1zZXJ2ZXIvcHNhc2ltL3NyYy9wc2FfZmZfc2VydmVyLmMKQEAgLTI2LDggKzI2LDYgQEAKICNkZWZpbmUgTUFYX0NMSUVOVFMgMTI4CiAjZGVmaW5lIE1BWF9NRVNTQUdFUyAzMgogCi0jZGVmaW5lIFNMRUVQX1VTICAgICAgICAxCi0KIHN0cnVjdCBjb25uZWN0aW9uIHsKICAgICB1aW50MzJfdCBjbGllbnQ7CiAgICAgdm9pZCAqcmhhbmRsZTsKQEAgLTEwNCw5ICsxMDIsNiBAQAogICAgIHVpbnQzMl90IHJlcXVlc3RlZF92ZXJzaW9uOwogICAgIHNzaXplX3QgbGVuOwogICAgIGludCBpZHg7Ci0jaWYgIWRlZmluZWQoUFNBU0lNX1VTRV9VU0xFRVApCi0gICAgY29uc3Qgc3RydWN0IHRpbWVzcGVjIHRzX2RlbGF5ID0geyAudHZfc2VjID0gMCwgLnR2X25zZWMgPSBTTEVFUF9VUyAqIDEwMDAgfTsKLSNlbmRpZgogCiAgICAgaWYgKHRpbWVvdXQgPT0gUFNBX1BPTEwpIHsKICAgICAgICAgSU5GTygicHNhX3dhaXQ6IENhbGxlZCBpbiBwb2xsaW5nIG1vZGUiKTsKQEAgLTI2MSwxMSArMjU2LDYgQEAKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgLyogVGhlcmUgaXMgbm8gJ3NlbGVjdCcgZnVuY3Rpb24gaW4gU3lzViB0byBibG9jayBvbiBtdWx0aXBsZSBxdWV1ZXMsIHNvIGJ1c3ktd2FpdCA6KCAqLwotI2lmIGRlZmluZWQoUFNBU0lNX1VTRV9VU0xFRVApCi0gICAgICAgICAgICB1c2xlZXAoU0xFRVBfVVMpOwotI2Vsc2UgLyogUFNBU0lNX1VTRV9VU0xFRVAgKi8KLSAgICAgICAgICAgIG5hbm9zbGVlcCgmdHNfZGVsYXksIE5VTEwpOwotI2VuZGlmIC8qIFBTQVNJTV9VU0VfVVNMRUVQICovCiAgICAgICAgIH0KICAgICB9IHdoaWxlICh0aW1lb3V0ID09IFBTQV9CTE9DSyk7CiAKQEAgLTQ3NCw3ICs0NjQsNyBAQAogCiAgICAgd2hpbGUgKHNvZmFyIDwgbnVtX2J5dGVzKSB7CiAgICAgICAgIHNpemVfdCBzZW5kaW5nID0gKG51bV9ieXRlcyAtIHNvZmFyKTsKLSAgICAgICAgaWYgKHNlbmRpbmcgPj0gTUFYX0ZSQUdNRU5UX1NJWkUpIHsKKyAgICAgICAgaWYgKHNlbmRpbmcgPiAoTUFYX0ZSQUdNRU5UX1NJWkUgLSAoc2l6ZW9mKHNpemVfdCkgKiAyKSkpIHsKICAgICAgICAgICAgIHNlbmRpbmcgPSBNQVhfRlJBR01FTlRfU0laRSAtIChzaXplb2Yoc2l6ZV90KSAqIDIpOwogICAgICAgICB9CiAKZGlmZiAtLWdpdCBhL3Rlc3RzL3BzYS1jbGllbnQtc2VydmVyL3BzYXNpbS9zcmMvcHNhX2Z1bmN0aW9uc19jb2Rlcy5oIGIvdGVzdHMvcHNhLWNsaWVudC1zZXJ2ZXIvcHNhc2ltL3NyYy9wc2FfZnVuY3Rpb25zX2NvZGVzLmgKaW5kZXggYzY4YjQxNi4uYmMxYjg0NCAxMDA2NDQKLS0tIGEvdGVzdHMvcHNhLWNsaWVudC1zZXJ2ZXIvcHNhc2ltL3NyYy9wc2FfZnVuY3Rpb25zX2NvZGVzLmgKKysrIGIvdGVzdHMvcHNhLWNsaWVudC1zZXJ2ZXIvcHNhc2ltL3NyYy9wc2FfZnVuY3Rpb25zX2NvZGVzLmgKQEAgLTI0LDcgKzI0LDI0IEBACiAgICAgUFNBX0FFQURfVVBEQVRFLAogICAgIFBTQV9BRUFEX1VQREFURV9BRCwKICAgICBQU0FfQUVBRF9WRVJJRlksCisgICAgUFNBX0FTWU1NRVRSSUNfREVDUllQVCwKKyAgICBQU0FfQVNZTU1FVFJJQ19FTkNSWVBULAorICAgIFBTQV9DSVBIRVJfQUJPUlQsCisgICAgUFNBX0NJUEhFUl9ERUNSWVBULAorICAgIFBTQV9DSVBIRVJfREVDUllQVF9TRVRVUCwKKyAgICBQU0FfQ0lQSEVSX0VOQ1JZUFQsCisgICAgUFNBX0NJUEhFUl9FTkNSWVBUX1NFVFVQLAorICAgIFBTQV9DSVBIRVJfRklOSVNILAorICAgIFBTQV9DSVBIRVJfR0VORVJBVEVfSVYsCisgICAgUFNBX0NJUEhFUl9TRVRfSVYsCisgICAgUFNBX0NJUEhFUl9VUERBVEUsCisgICAgUFNBX0NPUFlfS0VZLAogICAgIFBTQV9ERVNUUk9ZX0tFWSwKKyAgICBQU0FfRVhQT1JUX0tFWSwKKyAgICBQU0FfRVhQT1JUX1BVQkxJQ19LRVksCisgICAgUFNBX0dFTkVSQVRFX0tFWSwKKyAgICBQU0FfR0VORVJBVEVfS0VZX0VYVCwKKyAgICBQU0FfR0VORVJBVEVfUkFORE9NLAogICAgIFBTQV9HRVRfS0VZX0FUVFJJQlVURVMsCiAgICAgUFNBX0hBU0hfQUJPUlQsCiAgICAgUFNBX0hBU0hfQ0xPTkUsCkBAIC0zNSw2ICs1Miw0MiBAQAogICAgIFBTQV9IQVNIX1VQREFURSwKICAgICBQU0FfSEFTSF9WRVJJRlksCiAgICAgUFNBX0lNUE9SVF9LRVksCisgICAgUFNBX0lOVEVSUlVQVElCTEVfR0VUX01BWF9PUFMsCisgICAgUFNBX0lOVEVSUlVQVElCTEVfU0VUX01BWF9PUFMsCisgICAgUFNBX0tFWV9ERVJJVkFUSU9OX0FCT1JULAorICAgIFBTQV9LRVlfREVSSVZBVElPTl9HRVRfQ0FQQUNJVFksCisgICAgUFNBX0tFWV9ERVJJVkFUSU9OX0lOUFVUX0JZVEVTLAorICAgIFBTQV9LRVlfREVSSVZBVElPTl9JTlBVVF9JTlRFR0VSLAorICAgIFBTQV9LRVlfREVSSVZBVElPTl9JTlBVVF9LRVksCisgICAgUFNBX0tFWV9ERVJJVkFUSU9OX0tFWV9BR1JFRU1FTlQsCisgICAgUFNBX0tFWV9ERVJJVkFUSU9OX09VVFBVVF9CWVRFUywKKyAgICBQU0FfS0VZX0RFUklWQVRJT05fT1VUUFVUX0tFWSwKKyAgICBQU0FfS0VZX0RFUklWQVRJT05fT1VUUFVUX0tFWV9FWFQsCisgICAgUFNBX0tFWV9ERVJJVkFUSU9OX1NFVF9DQVBBQ0lUWSwKKyAgICBQU0FfS0VZX0RFUklWQVRJT05fU0VUVVAsCisgICAgUFNBX01BQ19BQk9SVCwKKyAgICBQU0FfTUFDX0NPTVBVVEUsCisgICAgUFNBX01BQ19TSUdOX0ZJTklTSCwKKyAgICBQU0FfTUFDX1NJR05fU0VUVVAsCisgICAgUFNBX01BQ19VUERBVEUsCisgICAgUFNBX01BQ19WRVJJRlksCisgICAgUFNBX01BQ19WRVJJRllfRklOSVNILAorICAgIFBTQV9NQUNfVkVSSUZZX1NFVFVQLAorICAgIFBTQV9QVVJHRV9LRVksCisgICAgUFNBX1JBV19LRVlfQUdSRUVNRU5ULAorICAgIFBTQV9SRVNFVF9LRVlfQVRUUklCVVRFUywKKyAgICBQU0FfU0lHTl9IQVNILAorICAgIFBTQV9TSUdOX0hBU0hfQUJPUlQsCisgICAgUFNBX1NJR05fSEFTSF9DT01QTEVURSwKKyAgICBQU0FfU0lHTl9IQVNIX0dFVF9OVU1fT1BTLAorICAgIFBTQV9TSUdOX0hBU0hfU1RBUlQsCisgICAgUFNBX1NJR05fTUVTU0FHRSwKKyAgICBQU0FfVkVSSUZZX0hBU0gsCisgICAgUFNBX1ZFUklGWV9IQVNIX0FCT1JULAorICAgIFBTQV9WRVJJRllfSEFTSF9DT01QTEVURSwKKyAgICBQU0FfVkVSSUZZX0hBU0hfR0VUX05VTV9PUFMsCisgICAgUFNBX1ZFUklGWV9IQVNIX1NUQVJULAorICAgIFBTQV9WRVJJRllfTUVTU0FHRSwKIH07CiAKICNlbmRpZiAvKiAgX1BTQV9GVU5DVElPTlNfQ09ERVNfSF8gKi8KZGlmZiAtLWdpdCBhL3Rlc3RzL3BzYS1jbGllbnQtc2VydmVyL3BzYXNpbS9zcmMvcHNhX3NpbV9jcnlwdG9fY2xpZW50LmMgYi90ZXN0cy9wc2EtY2xpZW50LXNlcnZlci9wc2FzaW0vc3JjL3BzYV9zaW1fY3J5cHRvX2NsaWVudC5jCmluZGV4IDc1OGU5YjIuLjQyMDBmNmMgMTAwNjQ0Ci0tLSBhL3Rlc3RzL3BzYS1jbGllbnQtc2VydmVyL3BzYXNpbS9zcmMvcHNhX3NpbV9jcnlwdG9fY2xpZW50LmMKKysrIGIvdGVzdHMvcHNhLWNsaWVudC1zZXJ2ZXIvcHNhc2ltL3NyYy9wc2Ffc2ltX2NyeXB0b19jbGllbnQuYwpAQCAtNDQsNyArNDQsNyBAQAogICAgIGludmVjLmJhc2UgPSBpbl9wYXJhbXM7CiAgICAgaW52ZWMubGVuID0gaW5fcGFyYW1zX2xlbjsKIAotICAgIHNpemVfdCBtYXhfcmVjZWl2ZSA9IDgxOTI7CisgICAgc2l6ZV90IG1heF9yZWNlaXZlID0gMjQ1NzY7CiAgICAgdWludDhfdCAqcmVjZWl2ZSA9IG1hbGxvYyhtYXhfcmVjZWl2ZSk7CiAgICAgaWYgKHJlY2VpdmUgPT0gTlVMTCkgewogICAgICAgICBmcHJpbnRmKHN0ZGVyciwgIkZBSUxFRCB0byBhbGxvY2F0ZSAldSBieXRlc1xuIiwgKHVuc2lnbmVkKSBtYXhfcmVjZWl2ZSk7CkBAIC0xMTksNiArMTE5LDExIEBACiAKIHZvaWQgbWJlZHRsc19wc2FfY3J5cHRvX2ZyZWUodm9pZCkKIHsKKyAgICAvKiBEbyBub3QgdHJ5IHRvIGNsb3NlIGEgY29ubmVjdGlvbiB0aGF0IHdhcyBuZXZlciBzdGFydGVkLiovCisgICAgaWYgKGhhbmRsZSA9PSAtMSkgeworICAgICAgICByZXR1cm47CisgICAgfQorCiAgICAgQ0xJRU5UX1BSSU5UKCJDbG9zaW5nIGhhbmRsZSIpOwogICAgIHBzYV9jbG9zZShoYW5kbGUpOwogICAgIGhhbmRsZSA9IC0xOwpAQCAtMTI5LDQwICsxMzQsNDMgQEAKICAgICBwc2FfYWVhZF9vcGVyYXRpb25fdCAqb3BlcmF0aW9uCiAgICAgKQogewotICAgIHVpbnQ4X3QgKnBhcmFtcyA9IE5VTEw7Ci0gICAgdWludDhfdCAqcmVzdWx0ID0gTlVMTDsKKyAgICB1aW50OF90ICpzZXJfcGFyYW1zID0gTlVMTDsKKyAgICB1aW50OF90ICpzZXJfcmVzdWx0ID0gTlVMTDsKICAgICBzaXplX3QgcmVzdWx0X2xlbmd0aDsKICAgICBwc2Ffc3RhdHVzX3Qgc3RhdHVzID0gUFNBX0VSUk9SX0NPUlJVUFRJT05fREVURUNURUQ7CiAKLSAgICBzaXplX3QgbmVlZGVkID0gcHNhc2ltX3NlcmlhbGlzZV9iZWdpbl9uZWVkcygpICsKLSAgICAgICAgICAgICAgICAgICAgcHNhc2ltX3NlcmlhbGlzZV9wc2FfYWVhZF9vcGVyYXRpb25fdF9uZWVkcygqb3BlcmF0aW9uKTsKKyAgICBzaXplX3QgbmVlZGVkID0KKyAgICAgICAgcHNhc2ltX3NlcmlhbGlzZV9iZWdpbl9uZWVkcygpICsKKyAgICAgICAgcHNhc2ltX3NlcmlhbGlzZV9wc2FfYWVhZF9vcGVyYXRpb25fdF9uZWVkcygqb3BlcmF0aW9uKTsKIAotICAgIHBhcmFtcyA9IG1hbGxvYyhuZWVkZWQpOwotICAgIGlmIChwYXJhbXMgPT0gTlVMTCkgeworICAgIHNlcl9wYXJhbXMgPSBtYWxsb2MobmVlZGVkKTsKKyAgICBpZiAoc2VyX3BhcmFtcyA9PSBOVUxMKSB7CiAgICAgICAgIHN0YXR1cyA9IFBTQV9FUlJPUl9JTlNVRkZJQ0lFTlRfTUVNT1JZOwogICAgICAgICBnb3RvIGZhaWw7CiAgICAgfQogCi0gICAgdWludDhfdCAqcG9zID0gcGFyYW1zOworICAgIHVpbnQ4X3QgKnBvcyA9IHNlcl9wYXJhbXM7CiAgICAgc2l6ZV90IHJlbWFpbmluZyA9IG5lZWRlZDsKICAgICBpbnQgb2s7CiAgICAgb2sgPSBwc2FzaW1fc2VyaWFsaXNlX2JlZ2luKCZwb3MsICZyZW1haW5pbmcpOwogICAgIGlmICghb2spIHsKICAgICAgICAgZ290byBmYWlsOwogICAgIH0KLSAgICBvayA9IHBzYXNpbV9zZXJpYWxpc2VfcHNhX2FlYWRfb3BlcmF0aW9uX3QoJnBvcywgJnJlbWFpbmluZywgKm9wZXJhdGlvbik7CisgICAgb2sgPSBwc2FzaW1fc2VyaWFsaXNlX3BzYV9hZWFkX29wZXJhdGlvbl90KAorICAgICAgICAmcG9zLCAmcmVtYWluaW5nLAorICAgICAgICAqb3BlcmF0aW9uKTsKICAgICBpZiAoIW9rKSB7CiAgICAgICAgIGdvdG8gZmFpbDsKICAgICB9CiAKICAgICBvayA9IHBzYV9jcnlwdG9fY2FsbChQU0FfQUVBRF9BQk9SVCwKLSAgICAgICAgICAgICAgICAgICAgICAgICBwYXJhbXMsIChzaXplX3QpIChwb3MgLSBwYXJhbXMpLCAmcmVzdWx0LCAmcmVzdWx0X2xlbmd0aCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgc2VyX3BhcmFtcywgKHNpemVfdCkgKHBvcyAtIHNlcl9wYXJhbXMpLCAmc2VyX3Jlc3VsdCwgJnJlc3VsdF9sZW5ndGgpOwogICAgIGlmICghb2spIHsKICAgICAgICAgcHJpbnRmKCJQU0FfQUVBRF9BQk9SVCBzZXJ2ZXIgY2FsbCBmYWlsZWRcbiIpOwogICAgICAgICBnb3RvIGZhaWw7CiAgICAgfQogCi0gICAgdWludDhfdCAqcnBvcyA9IHJlc3VsdDsKKyAgICB1aW50OF90ICpycG9zID0gc2VyX3Jlc3VsdDsKICAgICBzaXplX3QgcnJlbWFpbiA9IHJlc3VsdF9sZW5ndGg7CiAKICAgICBvayA9IHBzYXNpbV9kZXNlcmlhbGlzZV9iZWdpbigmcnBvcywgJnJyZW1haW4pOwpAQCAtMTcwLDE5ICsxNzgsMjMgQEAKICAgICAgICAgZ290byBmYWlsOwogICAgIH0KIAotICAgIG9rID0gcHNhc2ltX2Rlc2VyaWFsaXNlX3BzYV9zdGF0dXNfdCgmcnBvcywgJnJyZW1haW4sICZzdGF0dXMpOworICAgIG9rID0gcHNhc2ltX2Rlc2VyaWFsaXNlX3BzYV9zdGF0dXNfdCgKKyAgICAgICAgJnJwb3MsICZycmVtYWluLAorICAgICAgICAmc3RhdHVzKTsKICAgICBpZiAoIW9rKSB7CiAgICAgICAgIGdvdG8gZmFpbDsKICAgICB9CiAKLSAgICBvayA9IHBzYXNpbV9kZXNlcmlhbGlzZV9wc2FfYWVhZF9vcGVyYXRpb25fdCgmcnBvcywgJnJyZW1haW4sIG9wZXJhdGlvbik7CisgICAgb2sgPSBwc2FzaW1fZGVzZXJpYWxpc2VfcHNhX2FlYWRfb3BlcmF0aW9uX3QoCisgICAgICAgICZycG9zLCAmcnJlbWFpbiwKKyAgICAgICAgb3BlcmF0aW9uKTsKICAgICBpZiAoIW9rKSB7CiAgICAgICAgIGdvdG8gZmFpbDsKICAgICB9CiAKIGZhaWw6Ci0gICAgZnJlZShwYXJhbXMpOwotICAgIGZyZWUocmVzdWx0KTsKKyAgICBmcmVlKHNlcl9wYXJhbXMpOworICAgIGZyZWUoc2VyX3Jlc3VsdCk7CiAKICAgICByZXR1cm4gc3RhdHVzOwogfQpAQCAtMTk4LDcwICsyMTAsODUgQEAKICAgICBzaXplX3QgKnBsYWludGV4dF9sZW5ndGgKICAgICApCiB7Ci0gICAgdWludDhfdCAqcGFyYW1zID0gTlVMTDsKLSAgICB1aW50OF90ICpyZXN1bHQgPSBOVUxMOworICAgIHVpbnQ4X3QgKnNlcl9wYXJhbXMgPSBOVUxMOworICAgIHVpbnQ4X3QgKnNlcl9yZXN1bHQgPSBOVUxMOwogICAgIHNpemVfdCByZXN1bHRfbGVuZ3RoOwogICAgIHBzYV9zdGF0dXNfdCBzdGF0dXMgPSBQU0FfRVJST1JfQ09SUlVQVElPTl9ERVRFQ1RFRDsKIAotICAgIHNpemVfdCBuZWVkZWQgPSBwc2FzaW1fc2VyaWFsaXNlX2JlZ2luX25lZWRzKCkgKwotICAgICAgICAgICAgICAgICAgICBwc2FzaW1fc2VyaWFsaXNlX21iZWR0bHNfc3ZjX2tleV9pZF90X25lZWRzKGtleSkgKwotICAgICAgICAgICAgICAgICAgICBwc2FzaW1fc2VyaWFsaXNlX3BzYV9hbGdvcml0aG1fdF9uZWVkcyhhbGcpICsKLSAgICAgICAgICAgICAgICAgICAgcHNhc2ltX3NlcmlhbGlzZV9idWZmZXJfbmVlZHMobm9uY2UsIG5vbmNlX2xlbmd0aCkgKwotICAgICAgICAgICAgICAgICAgICBwc2FzaW1fc2VyaWFsaXNlX2J1ZmZlcl9uZWVkcyhhZGRpdGlvbmFsX2RhdGEsIGFkZGl0aW9uYWxfZGF0YV9sZW5ndGgpICsKLSAgICAgICAgICAgICAgICAgICAgcHNhc2ltX3NlcmlhbGlzZV9idWZmZXJfbmVlZHMoY2lwaGVydGV4dCwgY2lwaGVydGV4dF9sZW5ndGgpICsKLSAgICAgICAgICAgICAgICAgICAgcHNhc2ltX3NlcmlhbGlzZV9idWZmZXJfbmVlZHMocGxhaW50ZXh0LCBwbGFpbnRleHRfc2l6ZSkgKwotICAgICAgICAgICAgICAgICAgICBwc2FzaW1fc2VyaWFsaXNlX3NpemVfdF9uZWVkcygqcGxhaW50ZXh0X2xlbmd0aCk7CisgICAgc2l6ZV90IG5lZWRlZCA9CisgICAgICAgIHBzYXNpbV9zZXJpYWxpc2VfYmVnaW5fbmVlZHMoKSArCisgICAgICAgIHBzYXNpbV9zZXJpYWxpc2VfbWJlZHRsc19zdmNfa2V5X2lkX3RfbmVlZHMoa2V5KSArCisgICAgICAgIHBzYXNpbV9zZXJpYWxpc2VfcHNhX2FsZ29yaXRobV90X25lZWRzKGFsZykgKworICAgICAgICBwc2FzaW1fc2VyaWFsaXNlX2J1ZmZlcl9uZWVkcyhub25jZSwgbm9uY2VfbGVuZ3RoKSArCisgICAgICAgIHBzYXNpbV9zZXJpYWxpc2VfYnVmZmVyX25lZWRzKGFkZGl0aW9uYWxfZGF0YSwgYWRkaXRpb25hbF9kYXRhX2xlbmd0aCkgKworICAgICAgICBwc2FzaW1fc2VyaWFsaXNlX2J1ZmZlcl9uZWVkcyhjaXBoZXJ0ZXh0LCBjaXBoZXJ0ZXh0X2xlbmd0aCkgKworICAgICAgICBwc2FzaW1fc2VyaWFsaXNlX2J1ZmZlcl9uZWVkcyhwbGFpbnRleHQsIHBsYWludGV4dF9zaXplKSArCisgICAgICAgIHBzYXNpbV9zZXJpYWxpc2Vfc2l6ZV90X25lZWRzKCpwbGFpbnRleHRfbGVuZ3RoKTsKIAotICAgIHBhcmFtcyA9IG1hbGxvYyhuZWVkZWQpOwotICAgIGlmIChwYXJhbXMgPT0gTlVMTCkgeworICAgIHNlcl9wYXJhbXMgPSBtYWxsb2MobmVlZGVkKTsKKyAgICBpZiAoc2VyX3BhcmFtcyA9PSBOVUxMKSB7CiAgICAgICAgIHN0YXR1cyA9IFBTQV9FUlJPUl9JTlNVRkZJQ0lFTlRfTUVNT1JZOwogICAgICAgICBnb3RvIGZhaWw7CiAgICAgfQogCi0gICAgdWludDhfdCAqcG9zID0gcGFyYW1zOworICAgIHVpbnQ4X3QgKnBvcyA9IHNlcl9wYXJhbXM7CiAgICAgc2l6ZV90IHJlbWFpbmluZyA9IG5lZWRlZDsKICAgICBpbnQgb2s7CiAgICAgb2sgPSBwc2FzaW1fc2VyaWFsaXNlX2JlZ2luKCZwb3MsICZyZW1haW5pbmcpOwogICAgIGlmICghb2spIHsKICAgICAgICAgZ290byBmYWlsOwogICAgIH0KLSAgICBvayA9IHBzYXNpbV9zZXJpYWxpc2VfbWJlZHRsc19zdmNfa2V5X2lkX3QoJnBvcywgJnJlbWFpbmluZywga2V5KTsKKyAgICBvayA9IHBzYXNpbV9zZXJpYWxpc2VfbWJlZHRsc19zdmNfa2V5X2lkX3QoCisgICAgICAgICZwb3MsICZyZW1haW5pbmcsCisgICAgICAgIGtleSk7CiAgICAgaWYgKCFvaykgewogICAgICAgICBnb3RvIGZhaWw7CiAgICAgfQotICAgIG9rID0gcHNhc2ltX3NlcmlhbGlzZV9wc2FfYWxnb3JpdGhtX3QoJnBvcywgJnJlbWFpbmluZywgYWxnKTsKKyAgICBvayA9IHBzYXNpbV9zZXJpYWxpc2VfcHNhX2FsZ29yaXRobV90KAorICAgICAgICAmcG9zLCAmcmVtYWluaW5nLAorICAgICAgICBhbGcpOwogICAgIGlmICghb2spIHsKICAgICAgICAgZ290byBmYWlsOwogICAgIH0KLSAgICBvayA9IHBzYXNpbV9zZXJpYWxpc2VfYnVmZmVyKCZwb3MsICZyZW1haW5pbmcsIG5vbmNlLCBub25jZV9sZW5ndGgpOworICAgIG9rID0gcHNhc2ltX3NlcmlhbGlzZV9idWZmZXIoCisgICAgICAgICZwb3MsICZyZW1haW5pbmcsCisgICAgICAgIG5vbmNlLCBub25jZV9sZW5ndGgpOwogICAgIGlmICghb2spIHsKICAgICAgICAgZ290byBmYWlsOwogICAgIH0KLSAgICBvayA9IHBzYXNpbV9zZXJpYWxpc2VfYnVmZmVyKCZwb3MsICZyZW1haW5pbmcsIGFkZGl0aW9uYWxfZGF0YSwgYWRkaXRpb25hbF9kYXRhX2xlbmd0aCk7CisgICAgb2sgPSBwc2FzaW1fc2VyaWFsaXNlX2J1ZmZlcigKKyAgICAgICAgJnBvcywgJnJlbWFpbmluZywKKyAgICAgICAgYWRkaXRpb25hbF9kYXRhLCBhZGRpdGlvbmFsX2RhdGFfbGVuZ3RoKTsKICAgICBpZiAoIW9rKSB7CiAgICAgICAgIGdvdG8gZmFpbDsKICAgICB9Ci0gICAgb2sgPSBwc2FzaW1fc2VyaWFsaXNlX2J1ZmZlcigmcG9zLCAmcmVtYWluaW5nLCBjaXBoZXJ0ZXh0LCBjaXBoZXJ0ZXh0X2xlbmd0aCk7CisgICAgb2sgPSBwc2FzaW1fc2VyaWFsaXNlX2J1ZmZlcigKKyAgICAgICAgJnBvcywgJnJlbWFpbmluZywKKyAgICAgICAgY2lwaGVydGV4dCwgY2lwaGVydGV4dF9sZW5ndGgpOwogICAgIGlmICghb2spIHsKICAgICAgICAgZ290byBmYWlsOwogICAgIH0KLSAgICBvayA9IHBzYXNpbV9zZXJpYWxpc2VfYnVmZmVyKCZwb3MsICZyZW1haW5pbmcsIHBsYWludGV4dCwgcGxhaW50ZXh0X3NpemUpOworICAgIG9rID0gcHNhc2ltX3NlcmlhbGlzZV9idWZmZXIoCisgICAgICAgICZwb3MsICZyZW1haW5pbmcsCisgICAgICAgIHBsYWludGV4dCwgcGxhaW50ZXh0X3NpemUpOwogICAgIGlmICghb2spIHsKICAgICAgICAgZ290byBmYWlsOwogICAgIH0KLSAgICBvayA9IHBzYXNpbV9zZXJpYWxpc2Vfc2l6ZV90KCZwb3MsICZyZW1haW5pbmcsICpwbGFpbnRleHRfbGVuZ3RoKTsKKyAgICBvayA9IHBzYXNpbV9zZXJpYWxpc2Vfc2l6ZV90KAorICAgICAgICAmcG9zLCAmcmVtYWluaW5nLAorICAgICAgICAqcGxhaW50ZXh0X2xlbmd0aCk7CiAgICAgaWYgKCFvaykgewogICAgICAgICBnb3RvIGZhaWw7CiAgICAgfQogCiAgICAgb2sgPSBwc2FfY3J5cHRvX2NhbGwoUFNBX0FFQURfREVDUllQVCwKLSAgICAgICAgICAgICAgICAgICAgICAgICBwYXJhbXMsIChzaXplX3QpIChwb3MgLSBwYXJhbXMpLCAmcmVzdWx0LCAmcmVzdWx0X2xlbmd0aCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgc2VyX3BhcmFtcywgKHNpemVfdCkgKHBvcyAtIHNlcl9wYXJhbXMpLCAmc2VyX3Jlc3VsdCwgJnJlc3VsdF9sZW5ndGgpOwogICAgIGlmICghb2spIHsKICAgICAgICAgcHJpbnRmKCJQU0FfQUVBRF9ERUNSWVBUIHNlcnZlciBjYWxsIGZhaWxlZFxuIik7CiAgICAgICAgIGdvdG8gZmFpbDsKICAgICB9CiAKLSAgICB1aW50OF90ICpycG9zID0gcmVzdWx0OworICAgIHVpbnQ4X3QgKnJwb3MgPSBzZXJfcmVzdWx0OwogICAgIHNpemVfdCBycmVtYWluID0gcmVzdWx0X2xlbmd0aDsKIAogICAgIG9rID0gcHNhc2ltX2Rlc2VyaWFsaXNlX2JlZ2luKCZycG9zLCAmcnJlbWFpbik7CkBAIC0yNjksMjQgKzI5NiwzMCBAQAogICAgICAgICBnb3RvIGZhaWw7CiAgICAgfQogCi0gICAgb2sgPSBwc2FzaW1fZGVzZXJpYWxpc2VfcHNhX3N0YXR1c190KCZycG9zLCAmcnJlbWFpbiwgJnN0YXR1cyk7CisgICAgb2sgPSBwc2FzaW1fZGVzZXJpYWxpc2VfcHNhX3N0YXR1c190KAorICAgICAgICAmcnBvcywgJnJyZW1haW4sCisgICAgICAgICZzdGF0dXMpOwogICAgIGlmICghb2spIHsKICAgICAgICAgZ290byBmYWlsOwogICAgIH0KIAotICAgIG9rID0gcHNhc2ltX2Rlc2VyaWFsaXNlX3JldHVybl9idWZmZXIoJnJwb3MsICZycmVtYWluLCBwbGFpbnRleHQsIHBsYWludGV4dF9zaXplKTsKKyAgICBvayA9IHBzYXNpbV9kZXNlcmlhbGlzZV9yZXR1cm5fYnVmZmVyKAorICAgICAgICAmcnBvcywgJnJyZW1haW4sCisgICAgICAgIHBsYWludGV4dCwgcGxhaW50ZXh0X3NpemUpOwogICAgIGlmICghb2spIHsKICAgICAgICAgZ290byBmYWlsOwogICAgIH0KIAotICAgIG9rID0gcHNhc2ltX2Rlc2VyaWFsaXNlX3NpemVfdCgmcnBvcywgJnJyZW1haW4sIHBsYWludGV4dF9sZW5ndGgpOworICAgIG9rID0gcHNhc2ltX2Rlc2VyaWFsaXNlX3NpemVfdCgKKyAgICAgICAgJnJwb3MsICZycmVtYWluLAorICAgICAgICBwbGFpbnRleHRfbGVuZ3RoKTsKICAgICBpZiAoIW9rKSB7CiAgICAgICAgIGdvdG8gZmFpbDsKICAgICB9CiAKIGZhaWw6Ci0gICAgZnJlZShwYXJhbXMpOwotICAgIGZyZWUocmVzdWx0KTsKKyAgICBmcmVlKHNlcl9wYXJhbXMpOworICAgIGZyZWUoc2VyX3Jlc3VsdCk7CiAKICAgICByZXR1cm4gc3RhdHVzOwogfQpAQCAtMjk4LDUwICszMzEsNTcgQEAKICAgICBwc2FfYWxnb3JpdGhtX3QgYWxnCiAgICAgKQogewotICAgIHVpbnQ4X3QgKnBhcmFtcyA9IE5VTEw7Ci0gICAgdWludDhfdCAqcmVzdWx0ID0gTlVMTDsKKyAgICB1aW50OF90ICpzZXJfcGFyYW1zID0gTlVMTDsKKyAgICB1aW50OF90ICpzZXJfcmVzdWx0ID0gTlVMTDsKICAgICBzaXplX3QgcmVzdWx0X2xlbmd0aDsKICAgICBwc2Ffc3RhdHVzX3Qgc3RhdHVzID0gUFNBX0VSUk9SX0NPUlJVUFRJT05fREVURUNURUQ7CiAKLSAgICBzaXplX3QgbmVlZGVkID0gcHNhc2ltX3NlcmlhbGlzZV9iZWdpbl9uZWVkcygpICsKLSAgICAgICAgICAgICAgICAgICAgcHNhc2ltX3NlcmlhbGlzZV9wc2FfYWVhZF9vcGVyYXRpb25fdF9uZWVkcygqb3BlcmF0aW9uKSArCi0gICAgICAgICAgICAgICAgICAgIHBzYXNpbV9zZXJpYWxpc2VfbWJlZHRsc19zdmNfa2V5X2lkX3RfbmVlZHMoa2V5KSArCi0gICAgICAgICAgICAgICAgICAgIHBzYXNpbV9zZXJpYWxpc2VfcHNhX2FsZ29yaXRobV90X25lZWRzKGFsZyk7CisgICAgc2l6ZV90IG5lZWRlZCA9CisgICAgICAgIHBzYXNpbV9zZXJpYWxpc2VfYmVnaW5fbmVlZHMoKSArCisgICAgICAgIHBzYXNpbV9zZXJpYWxpc2VfcHNhX2FlYWRfb3BlcmF0aW9uX3RfbmVlZHMoKm9wZXJhdGlvbikgKworICAgICAgICBwc2FzaW1fc2VyaWFsaXNlX21iZWR0bHNfc3ZjX2tleV9pZF90X25lZWRzKGtleSkgKworICAgICAgICBwc2FzaW1fc2VyaWFsaXNlX3BzYV9hbGdvcml0aG1fdF9uZWVkcyhhbGcpOwogCi0gICAgcGFyYW1zID0gbWFsbG9jKG5lZWRlZCk7Ci0gICAgaWYgKHBhcmFtcyA9PSBOVUxMKSB7CisgICAgc2VyX3BhcmFtcyA9IG1hbGxvYyhuZWVkZWQpOworICAgIGlmIChzZXJfcGFyYW1zID09IE5VTEwpIHsKICAgICAgICAgc3RhdHVzID0gUFNBX0VSUk9SX0lOU1VGRklDSUVOVF9NRU1PUlk7CiAgICAgICAgIGdvdG8gZmFpbDsKICAgICB9CiAKLSAgICB1aW50OF90ICpwb3MgPSBwYXJhbXM7CisgICAgdWludDhfdCAqcG9zID0gc2VyX3BhcmFtczsKICAgICBzaXplX3QgcmVtYWluaW5nID0gbmVlZGVkOwogICAgIGludCBvazsKICAgICBvayA9IHBzYXNpbV9zZXJpYWxpc2VfYmVnaW4oJnBvcywgJnJlbWFpbmluZyk7CiAgICAgaWYgKCFvaykgewogICAgICAgICBnb3RvIGZhaWw7CiAgICAgfQotICAgIG9rID0gcHNhc2ltX3NlcmlhbGlzZV9wc2FfYWVhZF9vcGVyYXRpb25fdCgmcG9zLCAmcmVtYWluaW5nLCAqb3BlcmF0aW9uKTsKKyAgICBvayA9IHBzYXNpbV9zZXJpYWxpc2VfcHNhX2FlYWRfb3BlcmF0aW9uX3QoCisgICAgICAgICZwb3MsICZyZW1haW5pbmcsCisgICAgICAgICpvcGVyYXRpb24pOwogICAgIGlmICghb2spIHsKICAgICAgICAgZ290byBmYWlsOwogICAgIH0KLSAgICBvayA9IHBzYXNpbV9zZXJpYWxpc2VfbWJlZHRsc19zdmNfa2V5X2lkX3QoJnBvcywgJnJlbWFpbmluZywga2V5KTsKKyAgICBvayA9IHBzYXNpbV9zZXJpYWxpc2VfbWJlZHRsc19zdmNfa2V5X2lkX3QoCisgICAgICAgICZwb3MsICZyZW1haW5pbmcsCisgICAgICAgIGtleSk7CiAgICAgaWYgKCFvaykgewogICAgICAgICBnb3RvIGZhaWw7CiAgICAgfQotICAgIG9rID0gcHNhc2ltX3NlcmlhbGlzZV9wc2FfYWxnb3JpdGhtX3QoJnBvcywgJnJlbWFpbmluZywgYWxnKTsKKyAgICBvayA9IHBzYXNpbV9zZXJpYWxpc2VfcHNhX2FsZ29yaXRobV90KAorICAgICAgICAmcG9zLCAmcmVtYWluaW5nLAorICAgICAgICBhbGcpOwogICAgIGlmICghb2spIHsKICAgICAgICAgZ290byBmYWlsOwogICAgIH0KIAogICAgIG9rID0gcHNhX2NyeXB0b19jYWxsKFBTQV9BRUFEX0RFQ1JZUFRfU0VUVVAsCi0gICAgICAgICAgICAgICAgICAgICAgICAgcGFyYW1zLCAoc2l6ZV90KSAocG9zIC0gcGFyYW1zKSwgJnJlc3VsdCwgJnJlc3VsdF9sZW5ndGgpOworICAgICAgICAgICAgICAgICAgICAgICAgIHNlcl9wYXJhbXMsIChzaXplX3QpIChwb3MgLSBzZXJfcGFyYW1zKSwgJnNlcl9yZXN1bHQsICZyZXN1bHRfbGVuZ3RoKTsKICAgICBpZiAoIW9rKSB7CiAgICAgICAgIHByaW50ZigiUFNBX0FFQURfREVDUllQVF9TRVRVUCBzZXJ2ZXIgY2FsbCBmYWlsZWRcbiIpOwogICAgICAgICBnb3RvIGZhaWw7CiAgICAgfQogCi0gICAgdWludDhfdCAqcnBvcyA9IHJlc3VsdDsKKyAgICB1aW50OF90ICpycG9zID0gc2VyX3Jlc3VsdDsKICAgICBzaXplX3QgcnJlbWFpbiA9IHJlc3VsdF9sZW5ndGg7CiAKICAgICBvayA9IHBzYXNpbV9kZXNlcmlhbGlzZV9iZWdpbigmcnBvcywgJnJyZW1haW4pOwpAQCAtMzQ5LDE5ICszODksMjMgQEAKICAgICAgICAgZ290byBmYWlsOwogICAgIH0KIAotICAgIG9rID0gcHNhc2ltX2Rlc2VyaWFsaXNlX3BzYV9zdGF0dXNfdCgmcnBvcywgJnJyZW1haW4sICZzdGF0dXMpOworICAgIG9rID0gcHNhc2ltX2Rlc2VyaWFsaXNlX3BzYV9zdGF0dXNfdCgKKyAgICAgICAgJnJwb3MsICZycmVtYWluLAorICAgICAgICAmc3RhdHVzKTsKICAgICBpZiAoIW9rKSB7CiAgICAgICAgIGdvdG8gZmFpbDsKICAgICB9CiAKLSAgICBvayA9IHBzYXNpbV9kZXNlcmlhbGlzZV9wc2FfYWVhZF9vcGVyYXRpb25fdCgmcnBvcywgJnJyZW1haW4sIG9wZXJhdGlvbik7CisgICAgb2sgPSBwc2FzaW1fZGVzZXJpYWxpc2VfcHNhX2FlYWRfb3BlcmF0aW9uX3QoCisgICAgICAgICZycG9zLCAmcnJlbWFpbiwKKyAgICAgICAgb3BlcmF0aW9uKTsKICAgICBpZiAoIW9rKSB7CiAgICAgICAgIGdvdG8gZmFpbDsKICAgICB9CiAKIGZhaWw6Ci0gICAgZnJlZShwYXJhbXMpOwotICAgIGZyZWUocmVzdWx0KTsKKyAgICBmcmVlKHNlcl9wYXJhbXMpOworICAgIGZyZWUoc2VyX3Jlc3VsdCk7CiAKICAgICByZXR1cm4gc3RhdHVzOwogfQpAQCAtMzc3LDcwICs0MjEsODUgQEAKICAgICBzaXplX3QgKmNpcGhlcnRleHRfbGVuZ3RoCiAgICAgKQogewotICAgIHVpbnQ4X3QgKnBhcmFtcyA9IE5VTEw7Ci0gICAgdWludDhfdCAqcmVzdWx0ID0gTlVMTDsKKyAgICB1aW50OF90ICpzZXJfcGFyYW1zID0gTlVMTDsKKyAgICB1aW50OF90ICpzZXJfcmVzdWx0ID0gTlVMTDsKICAgICBzaXplX3QgcmVzdWx0X2xlbmd0aDsKICAgICBwc2Ffc3RhdHVzX3Qgc3RhdHVzID0gUFNBX0VSUk9SX0NPUlJVUFRJT05fREVURUNURUQ7CiAKLSAgICBzaXplX3QgbmVlZGVkID0gcHNhc2ltX3NlcmlhbGlzZV9iZWdpbl9uZWVkcygpICsKLSAgICAgICAgICAgICAgICAgICAgcHNhc2ltX3NlcmlhbGlzZV9tYmVkdGxzX3N2Y19rZXlfaWRfdF9uZWVkcyhrZXkpICsKLSAgICAgICAgICAgICAgICAgICAgcHNhc2ltX3NlcmlhbGlzZV9wc2FfYWxnb3JpdGhtX3RfbmVlZHMoYWxnKSArCi0gICAgICAgICAgICAgICAgICAgIHBzYXNpbV9zZXJpYWxpc2VfYnVmZmVyX25lZWRzKG5vbmNlLCBub25jZV9sZW5ndGgpICsKLSAgICAgICAgICAgICAgICAgICAgcHNhc2ltX3NlcmlhbGlzZV9idWZmZXJfbmVlZHMoYWRkaXRpb25hbF9kYXRhLCBhZGRpdGlvbmFsX2RhdGFfbGVuZ3RoKSArCi0gICAgICAgICAgICAgICAgICAgIHBzYXNpbV9zZXJpYWxpc2VfYnVmZmVyX25lZWRzKHBsYWludGV4dCwgcGxhaW50ZXh0X2xlbmd0aCkgKwotICAgICAgICAgICAgICAgICAgICBwc2FzaW1fc2VyaWFsaXNlX2J1ZmZlcl9uZWVkcyhjaXBoZXJ0ZXh0LCBjaXBoZXJ0ZXh0X3NpemUpICsKLSAgICAgICAgICAgICAgICAgICAgcHNhc2ltX3NlcmlhbGlzZV9zaXplX3RfbmVlZHMoKmNpcGhlcnRleHRfbGVuZ3RoKTsKKyAgICBzaXplX3QgbmVlZGVkID0KKyAgICAgICAgcHNhc2ltX3NlcmlhbGlzZV9iZWdpbl9uZWVkcygpICsKKyAgICAgICAgcHNhc2ltX3NlcmlhbGlzZV9tYmVkdGxzX3N2Y19rZXlfaWRfdF9uZWVkcyhrZXkpICsKKyAgICAgICAgcHNhc2ltX3NlcmlhbGlzZV9wc2FfYWxnb3JpdGhtX3RfbmVlZHMoYWxnKSArCisgICAgICAgIHBzYXNpbV9zZXJpYWxpc2VfYnVmZmVyX25lZWRzKG5vbmNlLCBub25jZV9sZW5ndGgpICsKKyAgICAgICAgcHNhc2ltX3NlcmlhbGlzZV9idWZmZXJfbmVlZHMoYWRkaXRpb25hbF9kYXRhLCBhZGRpdGlvbmFsX2RhdGFfbGVuZ3RoKSArCisgICAgICAgIHBzYXNpbV9zZXJpYWxpc2VfYnVmZmVyX25lZWRzKHBsYWludGV4dCwgcGxhaW50ZXh0X2xlbmd0aCkgKworICAgICAgICBwc2FzaW1fc2VyaWFsaXNlX2J1ZmZlcl9uZWVkcyhjaXBoZXJ0ZXh0LCBjaXBoZXJ0ZXh0X3NpemUpICsKKyAgICAgICAgcHNhc2ltX3NlcmlhbGlzZV9zaXplX3RfbmVlZHMoKmNpcGhlcnRleHRfbGVuZ3RoKTsKIAotICAgIHBhcmFtcyA9IG1hbGxvYyhuZWVkZWQpOwotICAgIGlmIChwYXJhbXMgPT0gTlVMTCkgeworICAgIHNlcl9wYXJhbXMgPSBtYWxsb2MobmVlZGVkKTsKKyAgICBpZiAoc2VyX3BhcmFtcyA9PSBOVUxMKSB7CiAgICAgICAgIHN0YXR1cyA9IFBTQV9FUlJPUl9JTlNVRkZJQ0lFTlRfTUVNT1JZOwogICAgICAgICBnb3RvIGZhaWw7CiAgICAgfQogCi0gICAgdWludDhfdCAqcG9zID0gcGFyYW1zOworICAgIHVpbnQ4X3QgKnBvcyA9IHNlcl9wYXJhbXM7CiAgICAgc2l6ZV90IHJlbWFpbmluZyA9IG5lZWRlZDsKICAgICBpbnQgb2s7CiAgICAgb2sgPSBwc2FzaW1fc2VyaWFsaXNlX2JlZ2luKCZwb3MsICZyZW1haW5pbmcpOwogICAgIGlmICghb2spIHsKICAgICAgICAgZ290byBmYWlsOwogICAgIH0KLSAgICBvayA9IHBzYXNpbV9zZXJpYWxpc2VfbWJlZHRsc19zdmNfa2V5X2lkX3QoJnBvcywgJnJlbWFpbmluZywga2V5KTsKKyAgICBvayA9IHBzYXNpbV9zZXJpYWxpc2VfbWJlZHRsc19zdmNfa2V5X2lkX3QoCisgICAgICAgICZwb3MsICZyZW1haW5pbmcsCisgICAgICAgIGtleSk7CiAgICAgaWYgKCFvaykgewogICAgICAgICBnb3RvIGZhaWw7CiAgICAgfQotICAgIG9rID0gcHNhc2ltX3NlcmlhbGlzZV9wc2FfYWxnb3JpdGhtX3QoJnBvcywgJnJlbWFpbmluZywgYWxnKTsKKyAgICBvayA9IHBzYXNpbV9zZXJpYWxpc2VfcHNhX2FsZ29yaXRobV90KAorICAgICAgICAmcG9zLCAmcmVtYWluaW5nLAorICAgICAgICBhbGcpOwogICAgIGlmICghb2spIHsKICAgICAgICAgZ290byBmYWlsOwogICAgIH0KLSAgICBvayA9IHBzYXNpbV9zZXJpYWxpc2VfYnVmZmVyKCZwb3MsICZyZW1haW5pbmcsIG5vbmNlLCBub25jZV9sZW5ndGgpOworICAgIG9rID0gcHNhc2ltX3NlcmlhbGlzZV9idWZmZXIoCisgICAgICAgICZwb3MsICZyZW1haW5pbmcsCisgICAgICAgIG5vbmNlLCBub25jZV9sZW5ndGgpOwogICAgIGlmICghb2spIHsKICAgICAgICAgZ290byBmYWlsOwogICAgIH0KLSAgICBvayA9IHBzYXNpbV9zZXJpYWxpc2VfYnVmZmVyKCZwb3MsICZyZW1haW5pbmcsIGFkZGl0aW9uYWxfZGF0YSwgYWRkaXRpb25hbF9kYXRhX2xlbmd0aCk7CisgICAgb2sgPSBwc2FzaW1fc2VyaWFsaXNlX2J1ZmZlcigKKyAgICAgICAgJnBvcywgJnJlbWFpbmluZywKKyAgICAgICAgYWRkaXRpb25hbF9kYXRhLCBhZGRpdGlvbmFsX2RhdGFfbGVuZ3RoKTsKICAgICBpZiAoIW9rKSB7CiAgICAgICAgIGdvdG8gZmFpbDsKICAgICB9Ci0gICAgb2sgPSBwc2FzaW1fc2VyaWFsaXNlX2J1ZmZlcigmcG9zLCAmcmVtYWluaW5nLCBwbGFpbnRleHQsIHBsYWludGV4dF9sZW5ndGgpOworICAgIG9rID0gcHNhc2ltX3NlcmlhbGlzZV9idWZmZXIoCisgICAgICAgICZwb3MsICZyZW1haW5pbmcsCisgICAgICAgIHBsYWludGV4dCwgcGxhaW50ZXh0X2xlbmd0aCk7CiAgICAgaWYgKCFvaykgewogICAgICAgICBnb3RvIGZhaWw7CiAgICAgfQotICAgIG9rID0gcHNhc2ltX3NlcmlhbGlzZV9idWZmZXIoJnBvcywgJnJlbWFpbmluZywgY2lwaGVydGV4dCwgY2lwaGVydGV4dF9zaXplKTsKKyAgICBvayA9IHBzYXNpbV9zZXJpYWxpc2VfYnVmZmVyKAorICAgICAgICAmcG9zLCAmcmVtYWluaW5nLAorICAgICAgICBjaXBoZXJ0ZXh0LCBjaXBoZXJ0ZXh0X3NpemUpOwogICAgIGlmICghb2spIHsKICAgICAgICAgZ290byBmYWlsOwogICAgIH0KLSAgICBvayA9IHBzYXNpbV9zZXJpYWxpc2Vfc2l6ZV90KCZwb3MsICZyZW1haW5pbmcsICpjaXBoZXJ0ZXh0X2xlbmd0aCk7CisgICAgb2sgPSBwc2FzaW1fc2VyaWFsaXNlX3NpemVfdCgKKyAgICAgICAgJnBvcywgJnJlbWFpbmluZywKKyAgICAgICAgKmNpcGhlcnRleHRfbGVuZ3RoKTsKICAgICBpZiAoIW9rKSB7CiAgICAgICAgIGdvdG8gZmFpbDsKICAgICB9CiAKICAgICBvayA9IHBzYV9jcnlwdG9fY2FsbChQU0FfQUVBRF9FTkNSWVBULAotICAgICAgICAgICAgICAgICAgICAgICAgIHBhcmFtcywgKHNpemVfdCkgKHBvcyAtIHBhcmFtcyksICZyZXN1bHQsICZyZXN1bHRfbGVuZ3RoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICBzZXJfcGFyYW1zLCAoc2l6ZV90KSAocG9zIC0gc2VyX3BhcmFtcyksICZzZXJfcmVzdWx0LCAmcmVzdWx0X2xlbmd0aCk7CiAgICAgaWYgKCFvaykgewogICAgICAgICBwcmludGYoIlBTQV9BRUFEX0VOQ1JZUFQgc2VydmVyIGNhbGwgZmFpbGVkXG4iKTsKICAgICAgICAgZ290byBmYWlsOwogICAgIH0KIAotICAgIHVpbnQ4X3QgKnJwb3MgPSByZXN1bHQ7CisgICAgdWludDhfdCAqcnBvcyA9IHNlcl9yZXN1bHQ7CiAgICAgc2l6ZV90IHJyZW1haW4gPSByZXN1bHRfbGVuZ3RoOwogCiAgICAgb2sgPSBwc2FzaW1fZGVzZXJpYWxpc2VfYmVnaW4oJnJwb3MsICZycmVtYWluKTsKQEAgLTQ0OCwyNCArNTA3LDMwIEBACiAgICAgICAgIGdvdG8gZmFpbDsKICAgICB9CiAKLSAgICBvayA9IHBzYXNpbV9kZXNlcmlhbGlzZV9wc2Ffc3RhdHVzX3QoJnJwb3MsICZycmVtYWluLCAmc3RhdHVzKTsKKyAgICBvayA9IHBzYXNpbV9kZXNlcmlhbGlzZV9wc2Ffc3RhdHVzX3QoCisgICAgICAgICZycG9zLCAmcnJlbWFpbiwKKyAgICAgICAgJnN0YXR1cyk7CiAgICAgaWYgKCFvaykgewogICAgICAgICBnb3RvIGZhaWw7CiAgICAgfQogCi0gICAgb2sgPSBwc2FzaW1fZGVzZXJpYWxpc2VfcmV0dXJuX2J1ZmZlcigmcnBvcywgJnJyZW1haW4sIGNpcGhlcnRleHQsIGNpcGhlcnRleHRfc2l6ZSk7CisgICAgb2sgPSBwc2FzaW1fZGVzZXJpYWxpc2VfcmV0dXJuX2J1ZmZlcigKKyAgICAgICAgJnJwb3MsICZycmVtYWluLAorICAgICAgICBjaXBoZXJ0ZXh0LCBjaXBoZXJ0ZXh0X3NpemUpOwogICAgIGlmICghb2spIHsKICAgICAgICAgZ290byBmYWlsOwogICAgIH0KIAotICAgIG9rID0gcHNhc2ltX2Rlc2VyaWFsaXNlX3NpemVfdCgmcnBvcywgJnJyZW1haW4sIGNpcGhlcnRleHRfbGVuZ3RoKTsKKyAgICBvayA9IHBzYXNpbV9kZXNlcmlhbGlzZV9zaXplX3QoCisgICAgICAgICZycG9zLCAmcnJlbWFpbiwKKyAgICAgICAgY2lwaGVydGV4dF9sZW5ndGgpOwogICAgIGlmICghb2spIHsKICAgICAgICAgZ290byBmYWlsOwogICAgIH0KIAogZmFpbDoKLSAgICBmcmVlKHBhcmFtcyk7Ci0gICAgZnJlZShyZXN1bHQpOworICAgIGZyZWUoc2VyX3BhcmFtcyk7CisgICAgZnJlZShzZXJfcmVzdWx0KTsKIAogICAgIHJldHVybiBzdGF0dXM7CiB9CkBAIC00NzcsNTAgKzU0Miw1NyBAQAogICAgIHBzYV9hbGdvcml0aG1fdCBhbGcKICAgICApCiB7Ci0gICAgdWludDhfdCAqcGFyYW1zID0gTlVMTDsKLSAgICB1aW50OF90ICpyZXN1bHQgPSBOVUxMOworICAgIHVpbnQ4X3QgKnNlcl9wYXJhbXMgPSBOVUxMOworICAgIHVpbnQ4X3QgKnNlcl9yZXN1bHQgPSBOVUxMOwogICAgIHNpemVfdCByZXN1bHRfbGVuZ3RoOwogICAgIHBzYV9zdGF0dXNfdCBzdGF0dXMgPSBQU0FfRVJST1JfQ09SUlVQVElPTl9ERVRFQ1RFRDsKIAotICAgIHNpemVfdCBuZWVkZWQgPSBwc2FzaW1fc2VyaWFsaXNlX2JlZ2luX25lZWRzKCkgKwotICAgICAgICAgICAgICAgICAgICBwc2FzaW1fc2VyaWFsaXNlX3BzYV9hZWFkX29wZXJhdGlvbl90X25lZWRzKCpvcGVyYXRpb24pICsKLSAgICAgICAgICAgICAgICAgICAgcHNhc2ltX3NlcmlhbGlzZV9tYmVkdGxzX3N2Y19rZXlfaWRfdF9uZWVkcyhrZXkpICsKLSAgICAgICAgICAgICAgICAgICAgcHNhc2ltX3NlcmlhbGlzZV9wc2FfYWxnb3JpdGhtX3RfbmVlZHMoYWxnKTsKKyAgICBzaXplX3QgbmVlZGVkID0KKyAgICAgICAgcHNhc2ltX3NlcmlhbGlzZV9iZWdpbl9uZWVkcygpICsKKyAgICAgICAgcHNhc2ltX3NlcmlhbGlzZV9wc2FfYWVhZF9vcGVyYXRpb25fdF9uZWVkcygqb3BlcmF0aW9uKSArCisgICAgICAgIHBzYXNpbV9zZXJpYWxpc2VfbWJlZHRsc19zdmNfa2V5X2lkX3RfbmVlZHMoa2V5KSArCisgICAgICAgIHBzYXNpbV9zZXJpYWxpc2VfcHNhX2FsZ29yaXRobV90X25lZWRzKGFsZyk7CiAKLSAgICBwYXJhbXMgPSBtYWxsb2MobmVlZGVkKTsKLSAgICBpZiAocGFyYW1zID09IE5VTEwpIHsKKyAgICBzZXJfcGFyYW1zID0gbWFsbG9jKG5lZWRlZCk7CisgICAgaWYgKHNlcl9wYXJhbXMgPT0gTlVMTCkgewogICAgICAgICBzdGF0dXMgPSBQU0FfRVJST1JfSU5TVUZGSUNJRU5UX01FTU9SWTsKICAgICAgICAgZ290byBmYWlsOwogICAgIH0KIAotICAgIHVpbnQ4X3QgKnBvcyA9IHBhcmFtczsKKyAgICB1aW50OF90ICpwb3MgPSBzZXJfcGFyYW1zOwogICAgIHNpemVfdCByZW1haW5pbmcgPSBuZWVkZWQ7CiAgICAgaW50IG9rOwogICAgIG9rID0gcHNhc2ltX3NlcmlhbGlzZV9iZWdpbigmcG9zLCAmcmVtYWluaW5nKTsKICAgICBpZiAoIW9rKSB7CiAgICAgICAgIGdvdG8gZmFpbDsKICAgICB9Ci0gICAgb2sgPSBwc2FzaW1fc2VyaWFsaXNlX3BzYV9hZWFkX29wZXJhdGlvbl90KCZwb3MsICZyZW1haW5pbmcsICpvcGVyYXRpb24pOworICAgIG9rID0gcHNhc2ltX3NlcmlhbGlzZV9wc2FfYWVhZF9vcGVyYXRpb25fdCgKKyAgICAgICAgJnBvcywgJnJlbWFpbmluZywKKyAgICAgICAgKm9wZXJhdGlvbik7CiAgICAgaWYgKCFvaykgewogICAgICAgICBnb3RvIGZhaWw7CiAgICAgfQotICAgIG9rID0gcHNhc2ltX3NlcmlhbGlzZV9tYmVkdGxzX3N2Y19rZXlfaWRfdCgmcG9zLCAmcmVtYWluaW5nLCBrZXkpOworICAgIG9rID0gcHNhc2ltX3NlcmlhbGlzZV9tYmVkdGxzX3N2Y19rZXlfaWRfdCgKKyAgICAgICAgJnBvcywgJnJlbWFpbmluZywKKyAgICAgICAga2V5KTsKICAgICBpZiAoIW9rKSB7CiAgICAgICAgIGdvdG8gZmFpbDsKICAgICB9Ci0gICAgb2sgPSBwc2FzaW1fc2VyaWFsaXNlX3BzYV9hbGdvcml0aG1fdCgmcG9zLCAmcmVtYWluaW5nLCBhbGcpOworICAgIG9rID0gcHNhc2ltX3NlcmlhbGlzZV9wc2FfYWxnb3JpdGhtX3QoCisgICAgICAgICZwb3MsICZyZW1haW5pbmcsCisgICAgICAgIGFsZyk7CiAgICAgaWYgKCFvaykgewogICAgICAgICBnb3RvIGZhaWw7CiAgICAgfQogCiAgICAgb2sgPSBwc2FfY3J5cHRvX2NhbGwoUFNBX0FFQURfRU5DUllQVF9TRVRVUCwKLSAgICAgICAgICAgICAgICAgICAgICAgICBwYXJhbXMsIChzaXplX3QpIChwb3MgLSBwYXJhbXMpLCAmcmVzdWx0LCAmcmVzdWx0X2xlbmd0aCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgc2VyX3BhcmFtcywgKHNpemVfdCkgKHBvcyAtIHNlcl9wYXJhbXMpLCAmc2VyX3Jlc3VsdCwgJnJlc3VsdF9sZW5ndGgpOwogICAgIGlmICghb2spIHsKICAgICAgICAgcHJpbnRmKCJQU0FfQUVBRF9FTkNSWVBUX1NFVFVQIHNlcnZlciBjYWxsIGZhaWxlZFxuIik7CiAgICAgICAgIGdvdG8gZmFpbDsKICAgICB9CiAKLSAgICB1aW50OF90ICpycG9zID0gcmVzdWx0OworICAgIHVpbnQ4X3QgKnJwb3MgPSBzZXJfcmVzdWx0OwogICAgIHNpemVfdCBycmVtYWluID0gcmVzdWx0X2xlbmd0aDsKIAogICAgIG9rID0gcHNhc2ltX2Rlc2VyaWFsaXNlX2JlZ2luKCZycG9zLCAmcnJlbWFpbik7CkBAIC01MjgsMTkgKzYwMCwyMyBAQAogICAgICAgICBnb3RvIGZhaWw7CiAgICAgfQogCi0gICAgb2sgPSBwc2FzaW1fZGVzZXJpYWxpc2VfcHNhX3N0YXR1c190KCZycG9zLCAmcnJlbWFpbiwgJnN0YXR1cyk7CisgICAgb2sgPSBwc2FzaW1fZGVzZXJpYWxpc2VfcHNhX3N0YXR1c190KAorICAgICAgICAmcnBvcywgJnJyZW1haW4sCisgICAgICAgICZzdGF0dXMpOwogICAgIGlmICghb2spIHsKICAgICAgICAgZ290byBmYWlsOwogICAgIH0KIAotICAgIG9rID0gcHNhc2ltX2Rlc2VyaWFsaXNlX3BzYV9hZWFkX29wZXJhdGlvbl90KCZycG9zLCAmcnJlbWFpbiwgb3BlcmF0aW9uKTsKKyAgICBvayA9IHBzYXNpbV9kZXNlcmlhbGlzZV9wc2FfYWVhZF9vcGVyYXRpb25fdCgKKyAgICAgICAgJnJwb3MsICZycmVtYWluLAorICAgICAgICBvcGVyYXRpb24pOwogICAgIGlmICghb2spIHsKICAgICAgICAgZ290byBmYWlsOwogICAgIH0KIAogZmFpbDoKLSAgICBmcmVlKHBhcmFtcyk7Ci0gICAgZnJlZShyZXN1bHQpOworICAgIGZyZWUoc2VyX3BhcmFtcyk7CisgICAgZnJlZShzZXJfcmVzdWx0KTsKIAogICAgIHJldHVybiBzdGF0dXM7CiB9CkBAIC01NTQsNjAgKzYzMCw3MSBAQAogICAgIHNpemVfdCAqdGFnX2xlbmd0aAogICAgICkKIHsKLSAgICB1aW50OF90ICpwYXJhbXMgPSBOVUxMOwotICAgIHVpbnQ4X3QgKnJlc3VsdCA9IE5VTEw7CisgICAgdWludDhfdCAqc2VyX3BhcmFtcyA9IE5VTEw7CisgICAgdWludDhfdCAqc2VyX3Jlc3VsdCA9IE5VTEw7CiAgICAgc2l6ZV90IHJlc3VsdF9sZW5ndGg7CiAgICAgcHNhX3N0YXR1c190IHN0YXR1cyA9IFBTQV9FUlJPUl9DT1JSVVBUSU9OX0RFVEVDVEVEOwogCi0gICAgc2l6ZV90IG5lZWRlZCA9IHBzYXNpbV9zZXJpYWxpc2VfYmVnaW5fbmVlZHMoKSArCi0gICAgICAgICAgICAgICAgICAgIHBzYXNpbV9zZXJpYWxpc2VfcHNhX2FlYWRfb3BlcmF0aW9uX3RfbmVlZHMoKm9wZXJhdGlvbikgKwotICAgICAgICAgICAgICAgICAgICBwc2FzaW1fc2VyaWFsaXNlX2J1ZmZlcl9uZWVkcyhjaXBoZXJ0ZXh0LCBjaXBoZXJ0ZXh0X3NpemUpICsKLSAgICAgICAgICAgICAgICAgICAgcHNhc2ltX3NlcmlhbGlzZV9zaXplX3RfbmVlZHMoKmNpcGhlcnRleHRfbGVuZ3RoKSArCi0gICAgICAgICAgICAgICAgICAgIHBzYXNpbV9zZXJpYWxpc2VfYnVmZmVyX25lZWRzKHRhZywgdGFnX3NpemUpICsKLSAgICAgICAgICAgICAgICAgICAgcHNhc2ltX3NlcmlhbGlzZV9zaXplX3RfbmVlZHMoKnRhZ19sZW5ndGgpOworICAgIHNpemVfdCBuZWVkZWQgPQorICAgICAgICBwc2FzaW1fc2VyaWFsaXNlX2JlZ2luX25lZWRzKCkgKworICAgICAgICBwc2FzaW1fc2VyaWFsaXNlX3BzYV9hZWFkX29wZXJhdGlvbl90X25lZWRzKCpvcGVyYXRpb24pICsKKyAgICAgICAgcHNhc2ltX3NlcmlhbGlzZV9idWZmZXJfbmVlZHMoY2lwaGVydGV4dCwgY2lwaGVydGV4dF9zaXplKSArCisgICAgICAgIHBzYXNpbV9zZXJpYWxpc2Vfc2l6ZV90X25lZWRzKCpjaXBoZXJ0ZXh0X2xlbmd0aCkgKworICAgICAgICBwc2FzaW1fc2VyaWFsaXNlX2J1ZmZlcl9uZWVkcyh0YWcsIHRhZ19zaXplKSArCisgICAgICAgIHBzYXNpbV9zZXJpYWxpc2Vfc2l6ZV90X25lZWRzKCp0YWdfbGVuZ3RoKTsKIAotICAgIHBhcmFtcyA9IG1hbGxvYyhuZWVkZWQpOwotICAgIGlmIChwYXJhbXMgPT0gTlVMTCkgeworICAgIHNlcl9wYXJhbXMgPSBtYWxsb2MobmVlZGVkKTsKKyAgICBpZiAoc2VyX3BhcmFtcyA9PSBOVUxMKSB7CiAgICAgICAgIHN0YXR1cyA9IFBTQV9FUlJPUl9JTlNVRkZJQ0lFTlRfTUVNT1JZOwogICAgICAgICBnb3RvIGZhaWw7CiAgICAgfQogCi0gICAgdWludDhfdCAqcG9zID0gcGFyYW1zOworICAgIHVpbnQ4X3QgKnBvcyA9IHNlcl9wYXJhbXM7CiAgICAgc2l6ZV90IHJlbWFpbmluZyA9IG5lZWRlZDsKICAgICBpbnQgb2s7CiAgICAgb2sgPSBwc2FzaW1fc2VyaWFsaXNlX2JlZ2luKCZwb3MsICZyZW1haW5pbmcpOwogICAgIGlmICghb2spIHsKICAgICAgICAgZ290byBmYWlsOwogICAgIH0KLSAgICBvayA9IHBzYXNpbV9zZXJpYWxpc2VfcHNhX2FlYWRfb3BlcmF0aW9uX3QoJnBvcywgJnJlbWFpbmluZywgKm9wZXJhdGlvbik7CisgICAgb2sgPSBwc2FzaW1fc2VyaWFsaXNlX3BzYV9hZWFkX29wZXJhdGlvbl90KAorICAgICAgICAmcG9zLCAmcmVtYWluaW5nLAorICAgICAgICAqb3BlcmF0aW9uKTsKICAgICBpZiAoIW9rKSB7CiAgICAgICAgIGdvdG8gZmFpbDsKICAgICB9Ci0gICAgb2sgPSBwc2FzaW1fc2VyaWFsaXNlX2J1ZmZlcigmcG9zLCAmcmVtYWluaW5nLCBjaXBoZXJ0ZXh0LCBjaXBoZXJ0ZXh0X3NpemUpOworICAgIG9rID0gcHNhc2ltX3NlcmlhbGlzZV9idWZmZXIoCisgICAgICAgICZwb3MsICZyZW1haW5pbmcsCisgICAgICAgIGNpcGhlcnRleHQsIGNpcGhlcnRleHRfc2l6ZSk7CiAgICAgaWYgKCFvaykgewogICAgICAgICBnb3RvIGZhaWw7CiAgICAgfQotICAgIG9rID0gcHNhc2ltX3NlcmlhbGlzZV9zaXplX3QoJnBvcywgJnJlbWFpbmluZywgKmNpcGhlcnRleHRfbGVuZ3RoKTsKKyAgICBvayA9IHBzYXNpbV9zZXJpYWxpc2Vfc2l6ZV90KAorICAgICAgICAmcG9zLCAmcmVtYWluaW5nLAorICAgICAgICAqY2lwaGVydGV4dF9sZW5ndGgpOwogICAgIGlmICghb2spIHsKICAgICAgICAgZ290byBmYWlsOwogICAgIH0KLSAgICBvayA9IHBzYXNpbV9zZXJpYWxpc2VfYnVmZmVyKCZwb3MsICZyZW1haW5pbmcsIHRhZywgdGFnX3NpemUpOworICAgIG9rID0gcHNhc2ltX3NlcmlhbGlzZV9idWZmZXIoCisgICAgICAgICZwb3MsICZyZW1haW5pbmcsCisgICAgICAgIHRhZywgdGFnX3NpemUpOwogICAgIGlmICghb2spIHsKICAgICAgICAgZ290byBmYWlsOwogICAgIH0KLSAgICBvayA9IHBzYXNpbV9zZXJpYWxpc2Vfc2l6ZV90KCZwb3MsICZyZW1haW5pbmcsICp0YWdfbGVuZ3RoKTsKKyAgICBvayA9IHBzYXNpbV9zZXJpYWxpc2Vfc2l6ZV90KAorICAgICAgICAmcG9zLCAmcmVtYWluaW5nLAorICAgICAgICAqdGFnX2xlbmd0aCk7CiAgICAgaWYgKCFvaykgewogICAgICAgICBnb3RvIGZhaWw7CiAgICAgfQogCiAgICAgb2sgPSBwc2FfY3J5cHRvX2NhbGwoUFNBX0FFQURfRklOSVNILAotICAgICAgICAgICAgICAgICAgICAgICAgIHBhcmFtcywgKHNpemVfdCkgKHBvcyAtIHBhcmFtcyksICZyZXN1bHQsICZyZXN1bHRfbGVuZ3RoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICBzZXJfcGFyYW1zLCAoc2l6ZV90KSAocG9zIC0gc2VyX3BhcmFtcyksICZzZXJfcmVzdWx0LCAmcmVzdWx0X2xlbmd0aCk7CiAgICAgaWYgKCFvaykgewogICAgICAgICBwcmludGYoIlBTQV9BRUFEX0ZJTklTSCBzZXJ2ZXIgY2FsbCBmYWlsZWRcbiIpOwogICAgICAgICBnb3RvIGZhaWw7CiAgICAgfQogCi0gICAgdWludDhfdCAqcnBvcyA9IHJlc3VsdDsKKyAgICB1aW50OF90ICpycG9zID0gc2VyX3Jlc3VsdDsKICAgICBzaXplX3QgcnJlbWFpbiA9IHJlc3VsdF9sZW5ndGg7CiAKICAgICBvayA9IHBzYXNpbV9kZXNlcmlhbGlzZV9iZWdpbigmcnBvcywgJnJyZW1haW4pOwpAQCAtNjE1LDM5ICs3MDIsNTEgQEAKICAgICAgICAgZ290byBmYWlsOwogICAgIH0KIAotICAgIG9rID0gcHNhc2ltX2Rlc2VyaWFsaXNlX3BzYV9zdGF0dXNfdCgmcnBvcywgJnJyZW1haW4sICZzdGF0dXMpOworICAgIG9rID0gcHNhc2ltX2Rlc2VyaWFsaXNlX3BzYV9zdGF0dXNfdCgKKyAgICAgICAgJnJwb3MsICZycmVtYWluLAorICAgICAgICAmc3RhdHVzKTsKICAgICBpZiAoIW9rKSB7CiAgICAgICAgIGdvdG8gZmFpbDsKICAgICB9CiAKLSAgICBvayA9IHBzYXNpbV9kZXNlcmlhbGlzZV9wc2FfYWVhZF9vcGVyYXRpb25fdCgmcnBvcywgJnJyZW1haW4sIG9wZXJhdGlvbik7CisgICAgb2sgPSBwc2FzaW1fZGVzZXJpYWxpc2VfcHNhX2FlYWRfb3BlcmF0aW9uX3QoCisgICAgICAgICZycG9zLCAmcnJlbWFpbiwKKyAgICAgICAgb3BlcmF0aW9uKTsKICAgICBpZiAoIW9rKSB7CiAgICAgICAgIGdvdG8gZmFpbDsKICAgICB9CiAKLSAgICBvayA9IHBzYXNpbV9kZXNlcmlhbGlzZV9yZXR1cm5fYnVmZmVyKCZycG9zLCAmcnJlbWFpbiwgY2lwaGVydGV4dCwgY2lwaGVydGV4dF9zaXplKTsKKyAgICBvayA9IHBzYXNpbV9kZXNlcmlhbGlzZV9yZXR1cm5fYnVmZmVyKAorICAgICAgICAmcnBvcywgJnJyZW1haW4sCisgICAgICAgIGNpcGhlcnRleHQsIGNpcGhlcnRleHRfc2l6ZSk7CiAgICAgaWYgKCFvaykgewogICAgICAgICBnb3RvIGZhaWw7CiAgICAgfQogCi0gICAgb2sgPSBwc2FzaW1fZGVzZXJpYWxpc2Vfc2l6ZV90KCZycG9zLCAmcnJlbWFpbiwgY2lwaGVydGV4dF9sZW5ndGgpOworICAgIG9rID0gcHNhc2ltX2Rlc2VyaWFsaXNlX3NpemVfdCgKKyAgICAgICAgJnJwb3MsICZycmVtYWluLAorICAgICAgICBjaXBoZXJ0ZXh0X2xlbmd0aCk7CiAgICAgaWYgKCFvaykgewogICAgICAgICBnb3RvIGZhaWw7CiAgICAgfQogCi0gICAgb2sgPSBwc2FzaW1fZGVzZXJpYWxpc2VfcmV0dXJuX2J1ZmZlcigmcnBvcywgJnJyZW1haW4sIHRhZywgdGFnX3NpemUpOworICAgIG9rID0gcHNhc2ltX2Rlc2VyaWFsaXNlX3JldHVybl9idWZmZXIoCisgICAgICAgICZycG9zLCAmcnJlbWFpbiwKKyAgICAgICAgdGFnLCB0YWdfc2l6ZSk7CiAgICAgaWYgKCFvaykgewogICAgICAgICBnb3RvIGZhaWw7CiAgICAgfQogCi0gICAgb2sgPSBwc2FzaW1fZGVzZXJpYWxpc2Vfc2l6ZV90KCZycG9zLCAmcnJlbWFpbiwgdGFnX2xlbmd0aCk7CisgICAgb2sgPSBwc2FzaW1fZGVzZXJpYWxpc2Vfc2l6ZV90KAorICAgICAgICAmcnBvcywgJnJyZW1haW4sCisgICAgICAgIHRhZ19sZW5ndGgpOwogICAgIGlmICghb2spIHsKICAgICAgICAgZ290byBmYWlsOwogICAgIH0KIAogZmFpbDoKLSAgICBmcmVlKHBhcmFtcyk7Ci0gICAgZnJlZShyZXN1bHQpOworICAgIGZyZWUoc2VyX3BhcmFtcyk7CisgICAgZnJlZShzZXJfcmVzdWx0KTsKIAogICAgIHJldHVybiBzdGF0dXM7CiB9CkBAIC02NTksNTAgKzc1OCw1NyBAQAogICAgIHNpemVfdCAqbm9uY2VfbGVuZ3RoCiAgICAgKQogewotICAgIHVpbnQ4X3QgKnBhcmFtcyA9IE5VTEw7Ci0gICAgdWludDhfdCAqcmVzdWx0ID0gTlVMTDsKKyAgICB1aW50OF90ICpzZXJfcGFyYW1zID0gTlVMTDsKKyAgICB1aW50OF90ICpzZXJfcmVzdWx0ID0gTlVMTDsKICAgICBzaXplX3QgcmVzdWx0X2xlbmd0aDsKICAgICBwc2Ffc3RhdHVzX3Qgc3RhdHVzID0gUFNBX0VSUk9SX0NPUlJVUFRJT05fREVURUNURUQ7CiAKLSAgICBzaXplX3QgbmVlZGVkID0gcHNhc2ltX3NlcmlhbGlzZV9iZWdpbl9uZWVkcygpICsKLSAgICAgICAgICAgICAgICAgICAgcHNhc2ltX3NlcmlhbGlzZV9wc2FfYWVhZF9vcGVyYXRpb25fdF9uZWVkcygqb3BlcmF0aW9uKSArCi0gICAgICAgICAgICAgICAgICAgIHBzYXNpbV9zZXJpYWxpc2VfYnVmZmVyX25lZWRzKG5vbmNlLCBub25jZV9zaXplKSArCi0gICAgICAgICAgICAgICAgICAgIHBzYXNpbV9zZXJpYWxpc2Vfc2l6ZV90X25lZWRzKCpub25jZV9sZW5ndGgpOworICAgIHNpemVfdCBuZWVkZWQgPQorICAgICAgICBwc2FzaW1fc2VyaWFsaXNlX2JlZ2luX25lZWRzKCkgKworICAgICAgICBwc2FzaW1fc2VyaWFsaXNlX3BzYV9hZWFkX29wZXJhdGlvbl90X25lZWRzKCpvcGVyYXRpb24pICsKKyAgICAgICAgcHNhc2ltX3NlcmlhbGlzZV9idWZmZXJfbmVlZHMobm9uY2UsIG5vbmNlX3NpemUpICsKKyAgICAgICAgcHNhc2ltX3NlcmlhbGlzZV9zaXplX3RfbmVlZHMoKm5vbmNlX2xlbmd0aCk7CiAKLSAgICBwYXJhbXMgPSBtYWxsb2MobmVlZGVkKTsKLSAgICBpZiAocGFyYW1zID09IE5VTEwpIHsKKyAgICBzZXJfcGFyYW1zID0gbWFsbG9jKG5lZWRlZCk7CisgICAgaWYgKHNlcl9wYXJhbXMgPT0gTlVMTCkgewogICAgICAgICBzdGF0dXMgPSBQU0FfRVJST1JfSU5TVUZGSUNJRU5UX01FTU9SWTsKICAgICAgICAgZ290byBmYWlsOwogICAgIH0KIAotICAgIHVpbnQ4X3QgKnBvcyA9IHBhcmFtczsKKyAgICB1aW50OF90ICpwb3MgPSBzZXJfcGFyYW1zOwogICAgIHNpemVfdCByZW1haW5pbmcgPSBuZWVkZWQ7CiAgICAgaW50IG9rOwogICAgIG9rID0gcHNhc2ltX3NlcmlhbGlzZV9iZWdpbigmcG9zLCAmcmVtYWluaW5nKTsKICAgICBpZiAoIW9rKSB7CiAgICAgICAgIGdvdG8gZmFpbDsKICAgICB9Ci0gICAgb2sgPSBwc2FzaW1fc2VyaWFsaXNlX3BzYV9hZWFkX29wZXJhdGlvbl90KCZwb3MsICZyZW1haW5pbmcsICpvcGVyYXRpb24pOworICAgIG9rID0gcHNhc2ltX3NlcmlhbGlzZV9wc2FfYWVhZF9vcGVyYXRpb25fdCgKKyAgICAgICAgJnBvcywgJnJlbWFpbmluZywKKyAgICAgICAgKm9wZXJhdGlvbik7CiAgICAgaWYgKCFvaykgewogICAgICAgICBnb3RvIGZhaWw7CiAgICAgfQotICAgIG9rID0gcHNhc2ltX3NlcmlhbGlzZV9idWZmZXIoJnBvcywgJnJlbWFpbmluZywgbm9uY2UsIG5vbmNlX3NpemUpOworICAgIG9rID0gcHNhc2ltX3NlcmlhbGlzZV9idWZmZXIoCisgICAgICAgICZwb3MsICZyZW1haW5pbmcsCisgICAgICAgIG5vbmNlLCBub25jZV9zaXplKTsKICAgICBpZiAoIW9rKSB7CiAgICAgICAgIGdvdG8gZmFpbDsKICAgICB9Ci0gICAgb2sgPSBwc2FzaW1fc2VyaWFsaXNlX3NpemVfdCgmcG9zLCAmcmVtYWluaW5nLCAqbm9uY2VfbGVuZ3RoKTsKKyAgICBvayA9IHBzYXNpbV9zZXJpYWxpc2Vfc2l6ZV90KAorICAgICAgICAmcG9zLCAmcmVtYWluaW5nLAorICAgICAgICAqbm9uY2VfbGVuZ3RoKTsKICAgICBpZiAoIW9rKSB7CiAgICAgICAgIGdvdG8gZmFpbDsKICAgICB9CiAKICAgICBvayA9IHBzYV9jcnlwdG9fY2FsbChQU0FfQUVBRF9HRU5FUkFURV9OT05DRSwKLSAgICAgICAgICAgICAgICAgICAgICAgICBwYXJhbXMsIChzaXplX3QpIChwb3MgLSBwYXJhbXMpLCAmcmVzdWx0LCAmcmVzdWx0X2xlbmd0aCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgc2VyX3BhcmFtcywgKHNpemVfdCkgKHBvcyAtIHNlcl9wYXJhbXMpLCAmc2VyX3Jlc3VsdCwgJnJlc3VsdF9sZW5ndGgpOwogICAgIGlmICghb2spIHsKICAgICAgICAgcHJpbnRmKCJQU0FfQUVBRF9HRU5FUkFURV9OT05DRSBzZXJ2ZXIgY2FsbCBmYWlsZWRcbiIpOwogICAgICAgICBnb3RvIGZhaWw7CiAgICAgfQogCi0gICAgdWludDhfdCAqcnBvcyA9IHJlc3VsdDsKKyAgICB1aW50OF90ICpycG9zID0gc2VyX3Jlc3VsdDsKICAgICBzaXplX3QgcnJlbWFpbiA9IHJlc3VsdF9sZW5ndGg7CiAKICAgICBvayA9IHBzYXNpbV9kZXNlcmlhbGlzZV9iZWdpbigmcnBvcywgJnJyZW1haW4pOwpAQCAtNzEwLDI5ICs4MTYsMzcgQEAKICAgICAgICAgZ290byBmYWlsOwogICAgIH0KIAotICAgIG9rID0gcHNhc2ltX2Rlc2VyaWFsaXNlX3BzYV9zdGF0dXNfdCgmcnBvcywgJnJyZW1haW4sICZzdGF0dXMpOworICAgIG9rID0gcHNhc2ltX2Rlc2VyaWFsaXNlX3BzYV9zdGF0dXNfdCgKKyAgICAgICAgJnJwb3MsICZycmVtYWluLAorICAgICAgICAmc3RhdHVzKTsKICAgICBpZiAoIW9rKSB7CiAgICAgICAgIGdvdG8gZmFpbDsKICAgICB9CiAKLSAgICBvayA9IHBzYXNpbV9kZXNlcmlhbGlzZV9wc2FfYWVhZF9vcGVyYXRpb25fdCgmcnBvcywgJnJyZW1haW4sIG9wZXJhdGlvbik7CisgICAgb2sgPSBwc2FzaW1fZGVzZXJpYWxpc2VfcHNhX2FlYWRfb3BlcmF0aW9uX3QoCisgICAgICAgICZycG9zLCAmcnJlbWFpbiwKKyAgICAgICAgb3BlcmF0aW9uKTsKICAgICBpZiAoIW9rKSB7CiAgICAgICAgIGdvdG8gZmFpbDsKICAgICB9CiAKLSAgICBvayA9IHBzYXNpbV9kZXNlcmlhbGlzZV9yZXR1cm5fYnVmZmVyKCZycG9zLCAmcnJlbWFpbiwgbm9uY2UsIG5vbmNlX3NpemUpOworICAgIG9rID0gcHNhc2ltX2Rlc2VyaWFsaXNlX3JldHVybl9idWZmZXIoCisgICAgICAgICZycG9zLCAmcnJlbWFpbiwKKyAgICAgICAgbm9uY2UsIG5vbmNlX3NpemUpOwogICAgIGlmICghb2spIHsKICAgICAgICAgZ290byBmYWlsOwogICAgIH0KIAotICAgIG9rID0gcHNhc2ltX2Rlc2VyaWFsaXNlX3NpemVfdCgmcnBvcywgJnJyZW1haW4sIG5vbmNlX2xlbmd0aCk7CisgICAgb2sgPSBwc2FzaW1fZGVzZXJpYWxpc2Vfc2l6ZV90KAorICAgICAgICAmcnBvcywgJnJyZW1haW4sCisgICAgICAgIG5vbmNlX2xlbmd0aCk7CiAgICAgaWYgKCFvaykgewogICAgICAgICBnb3RvIGZhaWw7CiAgICAgfQogCiBmYWlsOgotICAgIGZyZWUocGFyYW1zKTsKLSAgICBmcmVlKHJlc3VsdCk7CisgICAgZnJlZShzZXJfcGFyYW1zKTsKKyAgICBmcmVlKHNlcl9yZXN1bHQpOwogCiAgICAgcmV0dXJuIHN0YXR1czsKIH0KQEAgLTc0NCw1MCArODU4LDU3IEBACiAgICAgc2l6ZV90IHBsYWludGV4dF9sZW5ndGgKICAgICApCiB7Ci0gICAgdWludDhfdCAqcGFyYW1zID0gTlVMTDsKLSAgICB1aW50OF90ICpyZXN1bHQgPSBOVUxMOworICAgIHVpbnQ4X3QgKnNlcl9wYXJhbXMgPSBOVUxMOworICAgIHVpbnQ4X3QgKnNlcl9yZXN1bHQgPSBOVUxMOwogICAgIHNpemVfdCByZXN1bHRfbGVuZ3RoOwogICAgIHBzYV9zdGF0dXNfdCBzdGF0dXMgPSBQU0FfRVJST1JfQ09SUlVQVElPTl9ERVRFQ1RFRDsKIAotICAgIHNpemVfdCBuZWVkZWQgPSBwc2FzaW1fc2VyaWFsaXNlX2JlZ2luX25lZWRzKCkgKwotICAgICAgICAgICAgICAgICAgICBwc2FzaW1fc2VyaWFsaXNlX3BzYV9hZWFkX29wZXJhdGlvbl90X25lZWRzKCpvcGVyYXRpb24pICsKLSAgICAgICAgICAgICAgICAgICAgcHNhc2ltX3NlcmlhbGlzZV9zaXplX3RfbmVlZHMoYWRfbGVuZ3RoKSArCi0gICAgICAgICAgICAgICAgICAgIHBzYXNpbV9zZXJpYWxpc2Vfc2l6ZV90X25lZWRzKHBsYWludGV4dF9sZW5ndGgpOworICAgIHNpemVfdCBuZWVkZWQgPQorICAgICAgICBwc2FzaW1fc2VyaWFsaXNlX2JlZ2luX25lZWRzKCkgKworICAgICAgICBwc2FzaW1fc2VyaWFsaXNlX3BzYV9hZWFkX29wZXJhdGlvbl90X25lZWRzKCpvcGVyYXRpb24pICsKKyAgICAgICAgcHNhc2ltX3NlcmlhbGlzZV9zaXplX3RfbmVlZHMoYWRfbGVuZ3RoKSArCisgICAgICAgIHBzYXNpbV9zZXJpYWxpc2Vfc2l6ZV90X25lZWRzKHBsYWludGV4dF9sZW5ndGgpOwogCi0gICAgcGFyYW1zID0gbWFsbG9jKG5lZWRlZCk7Ci0gICAgaWYgKHBhcmFtcyA9PSBOVUxMKSB7CisgICAgc2VyX3BhcmFtcyA9IG1hbGxvYyhuZWVkZWQpOworICAgIGlmIChzZXJfcGFyYW1zID09IE5VTEwpIHsKICAgICAgICAgc3RhdHVzID0gUFNBX0VSUk9SX0lOU1VGRklDSUVOVF9NRU1PUlk7CiAgICAgICAgIGdvdG8gZmFpbDsKICAgICB9CiAKLSAgICB1aW50OF90ICpwb3MgPSBwYXJhbXM7CisgICAgdWludDhfdCAqcG9zID0gc2VyX3BhcmFtczsKICAgICBzaXplX3QgcmVtYWluaW5nID0gbmVlZGVkOwogICAgIGludCBvazsKICAgICBvayA9IHBzYXNpbV9zZXJpYWxpc2VfYmVnaW4oJnBvcywgJnJlbWFpbmluZyk7CiAgICAgaWYgKCFvaykgewogICAgICAgICBnb3RvIGZhaWw7CiAgICAgfQotICAgIG9rID0gcHNhc2ltX3NlcmlhbGlzZV9wc2FfYWVhZF9vcGVyYXRpb25fdCgmcG9zLCAmcmVtYWluaW5nLCAqb3BlcmF0aW9uKTsKKyAgICBvayA9IHBzYXNpbV9zZXJpYWxpc2VfcHNhX2FlYWRfb3BlcmF0aW9uX3QoCisgICAgICAgICZwb3MsICZyZW1haW5pbmcsCisgICAgICAgICpvcGVyYXRpb24pOwogICAgIGlmICghb2spIHsKICAgICAgICAgZ290byBmYWlsOwogICAgIH0KLSAgICBvayA9IHBzYXNpbV9zZXJpYWxpc2Vfc2l6ZV90KCZwb3MsICZyZW1haW5pbmcsIGFkX2xlbmd0aCk7CisgICAgb2sgPSBwc2FzaW1fc2VyaWFsaXNlX3NpemVfdCgKKyAgICAgICAgJnBvcywgJnJlbWFpbmluZywKKyAgICAgICAgYWRfbGVuZ3RoKTsKICAgICBpZiAoIW9rKSB7CiAgICAgICAgIGdvdG8gZmFpbDsKICAgICB9Ci0gICAgb2sgPSBwc2FzaW1fc2VyaWFsaXNlX3NpemVfdCgmcG9zLCAmcmVtYWluaW5nLCBwbGFpbnRleHRfbGVuZ3RoKTsKKyAgICBvayA9IHBzYXNpbV9zZXJpYWxpc2Vfc2l6ZV90KAorICAgICAgICAmcG9zLCAmcmVtYWluaW5nLAorICAgICAgICBwbGFpbnRleHRfbGVuZ3RoKTsKICAgICBpZiAoIW9rKSB7CiAgICAgICAgIGdvdG8gZmFpbDsKICAgICB9CiAKICAgICBvayA9IHBzYV9jcnlwdG9fY2FsbChQU0FfQUVBRF9TRVRfTEVOR1RIUywKLSAgICAgICAgICAgICAgICAgICAgICAgICBwYXJhbXMsIChzaXplX3QpIChwb3MgLSBwYXJhbXMpLCAmcmVzdWx0LCAmcmVzdWx0X2xlbmd0aCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgc2VyX3BhcmFtcywgKHNpemVfdCkgKHBvcyAtIHNlcl9wYXJhbXMpLCAmc2VyX3Jlc3VsdCwgJnJlc3VsdF9sZW5ndGgpOwogICAgIGlmICghb2spIHsKICAgICAgICAgcHJpbnRmKCJQU0FfQUVBRF9TRVRfTEVOR1RIUyBzZXJ2ZXIgY2FsbCBmYWlsZWRcbiIpOwogICAgICAgICBnb3RvIGZhaWw7CiAgICAgfQogCi0gICAgdWludDhfdCAqcnBvcyA9IHJlc3VsdDsKKyAgICB1aW50OF90ICpycG9zID0gc2VyX3Jlc3VsdDsKICAgICBzaXplX3QgcnJlbWFpbiA9IHJlc3VsdF9sZW5ndGg7CiAKICAgICBvayA9IHBzYXNpbV9kZXNlcmlhbGlzZV9iZWdpbigmcnBvcywgJnJyZW1haW4pOwpAQCAtNzk1LDE5ICs5MTYsMjMgQEAKICAgICAgICAgZ290byBmYWlsOwogICAgIH0KIAotICAgIG9rID0gcHNhc2ltX2Rlc2VyaWFsaXNlX3BzYV9zdGF0dXNfdCgmcnBvcywgJnJyZW1haW4sICZzdGF0dXMpOworICAgIG9rID0gcHNhc2ltX2Rlc2VyaWFsaXNlX3BzYV9zdGF0dXNfdCgKKyAgICAgICAgJnJwb3MsICZycmVtYWluLAorICAgICAgICAmc3RhdHVzKTsKICAgICBpZiAoIW9rKSB7CiAgICAgICAgIGdvdG8gZmFpbDsKICAgICB9CiAKLSAgICBvayA9IHBzYXNpbV9kZXNlcmlhbGlzZV9wc2FfYWVhZF9vcGVyYXRpb25fdCgmcnBvcywgJnJyZW1haW4sIG9wZXJhdGlvbik7CisgICAgb2sgPSBwc2FzaW1fZGVzZXJpYWxpc2VfcHNhX2FlYWRfb3BlcmF0aW9uX3QoCisgICAgICAgICZycG9zLCAmcnJlbWFpbiwKKyAgICAgICAgb3BlcmF0aW9uKTsKICAgICBpZiAoIW9rKSB7CiAgICAgICAgIGdvdG8gZmFpbDsKICAgICB9CiAKIGZhaWw6Ci0gICAgZnJlZShwYXJhbXMpOwotICAgIGZyZWUocmVzdWx0KTsKKyAgICBmcmVlKHNlcl9wYXJhbXMpOworICAgIGZyZWUoc2VyX3Jlc3VsdCk7CiAKICAgICByZXR1cm4gc3RhdHVzOwogfQpAQCAtODE4LDQ1ICs5NDMsNTAgQEAKICAgICBjb25zdCB1aW50OF90ICpub25jZSwgc2l6ZV90ICBub25jZV9sZW5ndGgKICAgICApCiB7Ci0gICAgdWludDhfdCAqcGFyYW1zID0gTlVMTDsKLSAgICB1aW50OF90ICpyZXN1bHQgPSBOVUxMOworICAgIHVpbnQ4X3QgKnNlcl9wYXJhbXMgPSBOVUxMOworICAgIHVpbnQ4X3QgKnNlcl9yZXN1bHQgPSBOVUxMOwogICAgIHNpemVfdCByZXN1bHRfbGVuZ3RoOwogICAgIHBzYV9zdGF0dXNfdCBzdGF0dXMgPSBQU0FfRVJST1JfQ09SUlVQVElPTl9ERVRFQ1RFRDsKIAotICAgIHNpemVfdCBuZWVkZWQgPSBwc2FzaW1fc2VyaWFsaXNlX2JlZ2luX25lZWRzKCkgKwotICAgICAgICAgICAgICAgICAgICBwc2FzaW1fc2VyaWFsaXNlX3BzYV9hZWFkX29wZXJhdGlvbl90X25lZWRzKCpvcGVyYXRpb24pICsKLSAgICAgICAgICAgICAgICAgICAgcHNhc2ltX3NlcmlhbGlzZV9idWZmZXJfbmVlZHMobm9uY2UsIG5vbmNlX2xlbmd0aCk7CisgICAgc2l6ZV90IG5lZWRlZCA9CisgICAgICAgIHBzYXNpbV9zZXJpYWxpc2VfYmVnaW5fbmVlZHMoKSArCisgICAgICAgIHBzYXNpbV9zZXJpYWxpc2VfcHNhX2FlYWRfb3BlcmF0aW9uX3RfbmVlZHMoKm9wZXJhdGlvbikgKworICAgICAgICBwc2FzaW1fc2VyaWFsaXNlX2J1ZmZlcl9uZWVkcyhub25jZSwgbm9uY2VfbGVuZ3RoKTsKIAotICAgIHBhcmFtcyA9IG1hbGxvYyhuZWVkZWQpOwotICAgIGlmIChwYXJhbXMgPT0gTlVMTCkgeworICAgIHNlcl9wYXJhbXMgPSBtYWxsb2MobmVlZGVkKTsKKyAgICBpZiAoc2VyX3BhcmFtcyA9PSBOVUxMKSB7CiAgICAgICAgIHN0YXR1cyA9IFBTQV9FUlJPUl9JTlNVRkZJQ0lFTlRfTUVNT1JZOwogICAgICAgICBnb3RvIGZhaWw7CiAgICAgfQogCi0gICAgdWludDhfdCAqcG9zID0gcGFyYW1zOworICAgIHVpbnQ4X3QgKnBvcyA9IHNlcl9wYXJhbXM7CiAgICAgc2l6ZV90IHJlbWFpbmluZyA9IG5lZWRlZDsKICAgICBpbnQgb2s7CiAgICAgb2sgPSBwc2FzaW1fc2VyaWFsaXNlX2JlZ2luKCZwb3MsICZyZW1haW5pbmcpOwogICAgIGlmICghb2spIHsKICAgICAgICAgZ290byBmYWlsOwogICAgIH0KLSAgICBvayA9IHBzYXNpbV9zZXJpYWxpc2VfcHNhX2FlYWRfb3BlcmF0aW9uX3QoJnBvcywgJnJlbWFpbmluZywgKm9wZXJhdGlvbik7CisgICAgb2sgPSBwc2FzaW1fc2VyaWFsaXNlX3BzYV9hZWFkX29wZXJhdGlvbl90KAorICAgICAgICAmcG9zLCAmcmVtYWluaW5nLAorICAgICAgICAqb3BlcmF0aW9uKTsKICAgICBpZiAoIW9rKSB7CiAgICAgICAgIGdvdG8gZmFpbDsKICAgICB9Ci0gICAgb2sgPSBwc2FzaW1fc2VyaWFsaXNlX2J1ZmZlcigmcG9zLCAmcmVtYWluaW5nLCBub25jZSwgbm9uY2VfbGVuZ3RoKTsKKyAgICBvayA9IHBzYXNpbV9zZXJpYWxpc2VfYnVmZmVyKAorICAgICAgICAmcG9zLCAmcmVtYWluaW5nLAorICAgICAgICBub25jZSwgbm9uY2VfbGVuZ3RoKTsKICAgICBpZiAoIW9rKSB7CiAgICAgICAgIGdvdG8gZmFpbDsKICAgICB9CiAKICAgICBvayA9IHBzYV9jcnlwdG9fY2FsbChQU0FfQUVBRF9TRVRfTk9OQ0UsCi0gICAgICAgICAgICAgICAgICAgICAgICAgcGFyYW1zLCAoc2l6ZV90KSAocG9zIC0gcGFyYW1zKSwgJnJlc3VsdCwgJnJlc3VsdF9sZW5ndGgpOworICAgICAgICAgICAgICAgICAgICAgICAgIHNlcl9wYXJhbXMsIChzaXplX3QpIChwb3MgLSBzZXJfcGFyYW1zKSwgJnNlcl9yZXN1bHQsICZyZXN1bHRfbGVuZ3RoKTsKICAgICBpZiAoIW9rKSB7CiAgICAgICAgIHByaW50ZigiUFNBX0FFQURfU0VUX05PTkNFIHNlcnZlciBjYWxsIGZhaWxlZFxuIik7CiAgICAgICAgIGdvdG8gZmFpbDsKICAgICB9CiAKLSAgICB1aW50OF90ICpycG9zID0gcmVzdWx0OworICAgIHVpbnQ4X3QgKnJwb3MgPSBzZXJfcmVzdWx0OwogICAgIHNpemVfdCBycmVtYWluID0gcmVzdWx0X2xlbmd0aDsKIAogICAgIG9rID0gcHNhc2ltX2Rlc2VyaWFsaXNlX2JlZ2luKCZycG9zLCAmcnJlbWFpbik7CkBAIC04NjQsMTkgKzk5NCwyMyBAQAogICAgICAgICBnb3RvIGZhaWw7CiAgICAgfQogCi0gICAgb2sgPSBwc2FzaW1fZGVzZXJpYWxpc2VfcHNhX3N0YXR1c190KCZycG9zLCAmcnJlbWFpbiwgJnN0YXR1cyk7CisgICAgb2sgPSBwc2FzaW1fZGVzZXJpYWxpc2VfcHNhX3N0YXR1c190KAorICAgICAgICAmcnBvcywgJnJyZW1haW4sCisgICAgICAgICZzdGF0dXMpOwogICAgIGlmICghb2spIHsKICAgICAgICAgZ290byBmYWlsOwogICAgIH0KIAotICAgIG9rID0gcHNhc2ltX2Rlc2VyaWFsaXNlX3BzYV9hZWFkX29wZXJhdGlvbl90KCZycG9zLCAmcnJlbWFpbiwgb3BlcmF0aW9uKTsKKyAgICBvayA9IHBzYXNpbV9kZXNlcmlhbGlzZV9wc2FfYWVhZF9vcGVyYXRpb25fdCgKKyAgICAgICAgJnJwb3MsICZycmVtYWluLAorICAgICAgICBvcGVyYXRpb24pOwogICAgIGlmICghb2spIHsKICAgICAgICAgZ290byBmYWlsOwogICAgIH0KIAogZmFpbDoKLSAgICBmcmVlKHBhcmFtcyk7Ci0gICAgZnJlZShyZXN1bHQpOworICAgIGZyZWUoc2VyX3BhcmFtcyk7CisgICAgZnJlZShzZXJfcmVzdWx0KTsKIAogICAgIHJldHVybiBzdGF0dXM7CiB9CkBAIC04ODksNTUgKzEwMjMsNjQgQEAKICAgICBzaXplX3QgKm91dHB1dF9sZW5ndGgKICAgICApCiB7Ci0gICAgdWludDhfdCAqcGFyYW1zID0gTlVMTDsKLSAgICB1aW50OF90ICpyZXN1bHQgPSBOVUxMOworICAgIHVpbnQ4X3QgKnNlcl9wYXJhbXMgPSBOVUxMOworICAgIHVpbnQ4X3QgKnNlcl9yZXN1bHQgPSBOVUxMOwogICAgIHNpemVfdCByZXN1bHRfbGVuZ3RoOwogICAgIHBzYV9zdGF0dXNfdCBzdGF0dXMgPSBQU0FfRVJST1JfQ09SUlVQVElPTl9ERVRFQ1RFRDsKIAotICAgIHNpemVfdCBuZWVkZWQgPSBwc2FzaW1fc2VyaWFsaXNlX2JlZ2luX25lZWRzKCkgKwotICAgICAgICAgICAgICAgICAgICBwc2FzaW1fc2VyaWFsaXNlX3BzYV9hZWFkX29wZXJhdGlvbl90X25lZWRzKCpvcGVyYXRpb24pICsKLSAgICAgICAgICAgICAgICAgICAgcHNhc2ltX3NlcmlhbGlzZV9idWZmZXJfbmVlZHMoaW5wdXQsIGlucHV0X2xlbmd0aCkgKwotICAgICAgICAgICAgICAgICAgICBwc2FzaW1fc2VyaWFsaXNlX2J1ZmZlcl9uZWVkcyhvdXRwdXQsIG91dHB1dF9zaXplKSArCi0gICAgICAgICAgICAgICAgICAgIHBzYXNpbV9zZXJpYWxpc2Vfc2l6ZV90X25lZWRzKCpvdXRwdXRfbGVuZ3RoKTsKKyAgICBzaXplX3QgbmVlZGVkID0KKyAgICAgICAgcHNhc2ltX3NlcmlhbGlzZV9iZWdpbl9uZWVkcygpICsKKyAgICAgICAgcHNhc2ltX3NlcmlhbGlzZV9wc2FfYWVhZF9vcGVyYXRpb25fdF9uZWVkcygqb3BlcmF0aW9uKSArCisgICAgICAgIHBzYXNpbV9zZXJpYWxpc2VfYnVmZmVyX25lZWRzKGlucHV0LCBpbnB1dF9sZW5ndGgpICsKKyAgICAgICAgcHNhc2ltX3NlcmlhbGlzZV9idWZmZXJfbmVlZHMob3V0cHV0LCBvdXRwdXRfc2l6ZSkgKworICAgICAgICBwc2FzaW1fc2VyaWFsaXNlX3NpemVfdF9uZWVkcygqb3V0cHV0X2xlbmd0aCk7CiAKLSAgICBwYXJhbXMgPSBtYWxsb2MobmVlZGVkKTsKLSAgICBpZiAocGFyYW1zID09IE5VTEwpIHsKKyAgICBzZXJfcGFyYW1zID0gbWFsbG9jKG5lZWRlZCk7CisgICAgaWYgKHNlcl9wYXJhbXMgPT0gTlVMTCkgewogICAgICAgICBzdGF0dXMgPSBQU0FfRVJST1JfSU5TVUZGSUNJRU5UX01FTU9SWTsKICAgICAgICAgZ290byBmYWlsOwogICAgIH0KIAotICAgIHVpbnQ4X3QgKnBvcyA9IHBhcmFtczsKKyAgICB1aW50OF90ICpwb3MgPSBzZXJfcGFyYW1zOwogICAgIHNpemVfdCByZW1haW5pbmcgPSBuZWVkZWQ7CiAgICAgaW50IG9rOwogICAgIG9rID0gcHNhc2ltX3NlcmlhbGlzZV9iZWdpbigmcG9zLCAmcmVtYWluaW5nKTsKICAgICBpZiAoIW9rKSB7CiAgICAgICAgIGdvdG8gZmFpbDsKICAgICB9Ci0gICAgb2sgPSBwc2FzaW1fc2VyaWFsaXNlX3BzYV9hZWFkX29wZXJhdGlvbl90KCZwb3MsICZyZW1haW5pbmcsICpvcGVyYXRpb24pOworICAgIG9rID0gcHNhc2ltX3NlcmlhbGlzZV9wc2FfYWVhZF9vcGVyYXRpb25fdCgKKyAgICAgICAgJnBvcywgJnJlbWFpbmluZywKKyAgICAgICAgKm9wZXJhdGlvbik7CiAgICAgaWYgKCFvaykgewogICAgICAgICBnb3RvIGZhaWw7CiAgICAgfQotICAgIG9rID0gcHNhc2ltX3NlcmlhbGlzZV9idWZmZXIoJnBvcywgJnJlbWFpbmluZywgaW5wdXQsIGlucHV0X2xlbmd0aCk7CisgICAgb2sgPSBwc2FzaW1fc2VyaWFsaXNlX2J1ZmZlcigKKyAgICAgICAgJnBvcywgJnJlbWFpbmluZywKKyAgICAgICAgaW5wdXQsIGlucHV0X2xlbmd0aCk7CiAgICAgaWYgKCFvaykgewogICAgICAgICBnb3RvIGZhaWw7CiAgICAgfQotICAgIG9rID0gcHNhc2ltX3NlcmlhbGlzZV9idWZmZXIoJnBvcywgJnJlbWFpbmluZywgb3V0cHV0LCBvdXRwdXRfc2l6ZSk7CisgICAgb2sgPSBwc2FzaW1fc2VyaWFsaXNlX2J1ZmZlcigKKyAgICAgICAgJnBvcywgJnJlbWFpbmluZywKKyAgICAgICAgb3V0cHV0LCBvdXRwdXRfc2l6ZSk7CiAgICAgaWYgKCFvaykgewogICAgICAgICBnb3RvIGZhaWw7CiAgICAgfQotICAgIG9rID0gcHNhc2ltX3NlcmlhbGlzZV9zaXplX3QoJnBvcywgJnJlbWFpbmluZywgKm91dHB1dF9sZW5ndGgpOworICAgIG9rID0gcHNhc2ltX3NlcmlhbGlzZV9zaXplX3QoCisgICAgICAgICZwb3MsICZyZW1haW5pbmcsCisgICAgICAgICpvdXRwdXRfbGVuZ3RoKTsKICAgICBpZiAoIW9rKSB7CiAgICAgICAgIGdvdG8gZmFpbDsKICAgICB9CiAKICAgICBvayA9IHBzYV9jcnlwdG9fY2FsbChQU0FfQUVBRF9VUERBVEUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgcGFyYW1zLCAoc2l6ZV90KSAocG9zIC0gcGFyYW1zKSwgJnJlc3VsdCwgJnJlc3VsdF9sZW5ndGgpOworICAgICAgICAgICAgICAgICAgICAgICAgIHNlcl9wYXJhbXMsIChzaXplX3QpIChwb3MgLSBzZXJfcGFyYW1zKSwgJnNlcl9yZXN1bHQsICZyZXN1bHRfbGVuZ3RoKTsKICAgICBpZiAoIW9rKSB7CiAgICAgICAgIHByaW50ZigiUFNBX0FFQURfVVBEQVRFIHNlcnZlciBjYWxsIGZhaWxlZFxuIik7CiAgICAgICAgIGdvdG8gZmFpbDsKICAgICB9CiAKLSAgICB1aW50OF90ICpycG9zID0gcmVzdWx0OworICAgIHVpbnQ4X3QgKnJwb3MgPSBzZXJfcmVzdWx0OwogICAgIHNpemVfdCBycmVtYWluID0gcmVzdWx0X2xlbmd0aDsKIAogICAgIG9rID0gcHNhc2ltX2Rlc2VyaWFsaXNlX2JlZ2luKCZycG9zLCAmcnJlbWFpbik7CkBAIC05NDUsMjkgKzEwODgsMzcgQEAKICAgICAgICAgZ290byBmYWlsOwogICAgIH0KIAotICAgIG9rID0gcHNhc2ltX2Rlc2VyaWFsaXNlX3BzYV9zdGF0dXNfdCgmcnBvcywgJnJyZW1haW4sICZzdGF0dXMpOworICAgIG9rID0gcHNhc2ltX2Rlc2VyaWFsaXNlX3BzYV9zdGF0dXNfdCgKKyAgICAgICAgJnJwb3MsICZycmVtYWluLAorICAgICAgICAmc3RhdHVzKTsKICAgICBpZiAoIW9rKSB7CiAgICAgICAgIGdvdG8gZmFpbDsKICAgICB9CiAKLSAgICBvayA9IHBzYXNpbV9kZXNlcmlhbGlzZV9wc2FfYWVhZF9vcGVyYXRpb25fdCgmcnBvcywgJnJyZW1haW4sIG9wZXJhdGlvbik7CisgICAgb2sgPSBwc2FzaW1fZGVzZXJpYWxpc2VfcHNhX2FlYWRfb3BlcmF0aW9uX3QoCisgICAgICAgICZycG9zLCAmcnJlbWFpbiwKKyAgICAgICAgb3BlcmF0aW9uKTsKICAgICBpZiAoIW9rKSB7CiAgICAgICAgIGdvdG8gZmFpbDsKICAgICB9CiAKLSAgICBvayA9IHBzYXNpbV9kZXNlcmlhbGlzZV9yZXR1cm5fYnVmZmVyKCZycG9zLCAmcnJlbWFpbiwgb3V0cHV0LCBvdXRwdXRfc2l6ZSk7CisgICAgb2sgPSBwc2FzaW1fZGVzZXJpYWxpc2VfcmV0dXJuX2J1ZmZlcigKKyAgICAgICAgJnJwb3MsICZycmVtYWluLAorICAgICAgICBvdXRwdXQsIG91dHB1dF9zaXplKTsKICAgICBpZiAoIW9rKSB7CiAgICAgICAgIGdvdG8gZmFpbDsKICAgICB9CiAKLSAgICBvayA9IHBzYXNpbV9kZXNlcmlhbGlzZV9zaXplX3QoJnJwb3MsICZycmVtYWluLCBvdXRwdXRfbGVuZ3RoKTsKKyAgICBvayA9IHBzYXNpbV9kZXNlcmlhbGlzZV9zaXplX3QoCisgICAgICAgICZycG9zLCAmcnJlbWFpbiwKKyAgICAgICAgb3V0cHV0X2xlbmd0aCk7CiAgICAgaWYgKCFvaykgewogICAgICAgICBnb3RvIGZhaWw7CiAgICAgfQogCiBmYWlsOgotICAgIGZyZWUocGFyYW1zKTsKLSAgICBmcmVlKHJlc3VsdCk7CisgICAgZnJlZShzZXJfcGFyYW1zKTsKKyAgICBmcmVlKHNlcl9yZXN1bHQpOwogCiAgICAgcmV0dXJuIHN0YXR1czsKIH0KQEAgLTk3OCw0NSArMTEyOSw1MCBAQAogICAgIGNvbnN0IHVpbnQ4X3QgKmlucHV0LCBzaXplX3QgIGlucHV0X2xlbmd0aAogICAgICkKIHsKLSAgICB1aW50OF90ICpwYXJhbXMgPSBOVUxMOwotICAgIHVpbnQ4X3QgKnJlc3VsdCA9IE5VTEw7CisgICAgdWludDhfdCAqc2VyX3BhcmFtcyA9IE5VTEw7CisgICAgdWludDhfdCAqc2VyX3Jlc3VsdCA9IE5VTEw7CiAgICAgc2l6ZV90IHJlc3VsdF9sZW5ndGg7CiAgICAgcHNhX3N0YXR1c190IHN0YXR1cyA9IFBTQV9FUlJPUl9DT1JSVVBUSU9OX0RFVEVDVEVEOwogCi0gICAgc2l6ZV90IG5lZWRlZCA9IHBzYXNpbV9zZXJpYWxpc2VfYmVnaW5fbmVlZHMoKSArCi0gICAgICAgICAgICAgICAgICAgIHBzYXNpbV9zZXJpYWxpc2VfcHNhX2FlYWRfb3BlcmF0aW9uX3RfbmVlZHMoKm9wZXJhdGlvbikgKwotICAgICAgICAgICAgICAgICAgICBwc2FzaW1fc2VyaWFsaXNlX2J1ZmZlcl9uZWVkcyhpbnB1dCwgaW5wdXRfbGVuZ3RoKTsKKyAgICBzaXplX3QgbmVlZGVkID0KKyAgICAgICAgcHNhc2ltX3NlcmlhbGlzZV9iZWdpbl9uZWVkcygpICsKKyAgICAgICAgcHNhc2ltX3NlcmlhbGlzZV9wc2FfYWVhZF9vcGVyYXRpb25fdF9uZWVkcygqb3BlcmF0aW9uKSArCisgICAgICAgIHBzYXNpbV9zZXJpYWxpc2VfYnVmZmVyX25lZWRzKGlucHV0LCBpbnB1dF9sZW5ndGgpOwogCi0gICAgcGFyYW1zID0gbWFsbG9jKG5lZWRlZCk7Ci0gICAgaWYgKHBhcmFtcyA9PSBOVUxMKSB7CisgICAgc2VyX3BhcmFtcyA9IG1hbGxvYyhuZWVkZWQpOworICAgIGlmIChzZXJfcGFyYW1zID09IE5VTEwpIHsKICAgICAgICAgc3RhdHVzID0gUFNBX0VSUk9SX0lOU1VGRklDSUVOVF9NRU1PUlk7CiAgICAgICAgIGdvdG8gZmFpbDsKICAgICB9CiAKLSAgICB1aW50OF90ICpwb3MgPSBwYXJhbXM7CisgICAgdWludDhfdCAqcG9zID0gc2VyX3BhcmFtczsKICAgICBzaXplX3QgcmVtYWluaW5nID0gbmVlZGVkOwogICAgIGludCBvazsKICAgICBvayA9IHBzYXNpbV9zZXJpYWxpc2VfYmVnaW4oJnBvcywgJnJlbWFpbmluZyk7CiAgICAgaWYgKCFvaykgewogICAgICAgICBnb3RvIGZhaWw7CiAgICAgfQotICAgIG9rID0gcHNhc2ltX3NlcmlhbGlzZV9wc2FfYWVhZF9vcGVyYXRpb25fdCgmcG9zLCAmcmVtYWluaW5nLCAqb3BlcmF0aW9uKTsKKyAgICBvayA9IHBzYXNpbV9zZXJpYWxpc2VfcHNhX2FlYWRfb3BlcmF0aW9uX3QoCisgICAgICAgICZwb3MsICZyZW1haW5pbmcsCisgICAgICAgICpvcGVyYXRpb24pOwogICAgIGlmICghb2spIHsKICAgICAgICAgZ290byBmYWlsOwogICAgIH0KLSAgICBvayA9IHBzYXNpbV9zZXJpYWxpc2VfYnVmZmVyKCZwb3MsICZyZW1haW5pbmcsIGlucHV0LCBpbnB1dF9sZW5ndGgpOworICAgIG9rID0gcHNhc2ltX3NlcmlhbGlzZV9idWZmZXIoCisgICAgICAgICZwb3MsICZyZW1haW5pbmcsCisgICAgICAgIGlucHV0LCBpbnB1dF9sZW5ndGgpOwogICAgIGlmICghb2spIHsKICAgICAgICAgZ290byBmYWlsOwogICAgIH0KIAogICAgIG9rID0gcHNhX2NyeXB0b19jYWxsKFBTQV9BRUFEX1VQREFURV9BRCwKLSAgICAgICAgICAgICAgICAgICAgICAgICBwYXJhbXMsIChzaXplX3QpIChwb3MgLSBwYXJhbXMpLCAmcmVzdWx0LCAmcmVzdWx0X2xlbmd0aCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgc2VyX3BhcmFtcywgKHNpemVfdCkgKHBvcyAtIHNlcl9wYXJhbXMpLCAmc2VyX3Jlc3VsdCwgJnJlc3VsdF9sZW5ndGgpOwogICAgIGlmICghb2spIHsKICAgICAgICAgcHJpbnRmKCJQU0FfQUVBRF9VUERBVEVfQUQgc2VydmVyIGNhbGwgZmFpbGVkXG4iKTsKICAgICAgICAgZ290byBmYWlsOwogICAgIH0KIAotICAgIHVpbnQ4X3QgKnJwb3MgPSByZXN1bHQ7CisgICAgdWludDhfdCAqcnBvcyA9IHNlcl9yZXN1bHQ7CiAgICAgc2l6ZV90IHJyZW1haW4gPSByZXN1bHRfbGVuZ3RoOwogCiAgICAgb2sgPSBwc2FzaW1fZGVzZXJpYWxpc2VfYmVnaW4oJnJwb3MsICZycmVtYWluKTsKQEAgLTEwMjQsMTkgKzExODAsMjMgQEAKICAgICAgICAgZ290byBmYWlsOwogICAgIH0KIAotICAgIG9rID0gcHNhc2ltX2Rlc2VyaWFsaXNlX3BzYV9zdGF0dXNfdCgmcnBvcywgJnJyZW1haW4sICZzdGF0dXMpOworICAgIG9rID0gcHNhc2ltX2Rlc2VyaWFsaXNlX3BzYV9zdGF0dXNfdCgKKyAgICAgICAgJnJwb3MsICZycmVtYWluLAorICAgICAgICAmc3RhdHVzKTsKICAgICBpZiAoIW9rKSB7CiAgICAgICAgIGdvdG8gZmFpbDsKICAgICB9CiAKLSAgICBvayA9IHBzYXNpbV9kZXNlcmlhbGlzZV9wc2FfYWVhZF9vcGVyYXRpb25fdCgmcnBvcywgJnJyZW1haW4sIG9wZXJhdGlvbik7CisgICAgb2sgPSBwc2FzaW1fZGVzZXJpYWxpc2VfcHNhX2FlYWRfb3BlcmF0aW9uX3QoCisgICAgICAgICZycG9zLCAmcnJlbWFpbiwKKyAgICAgICAgb3BlcmF0aW9uKTsKICAgICBpZiAoIW9rKSB7CiAgICAgICAgIGdvdG8gZmFpbDsKICAgICB9CiAKIGZhaWw6Ci0gICAgZnJlZShwYXJhbXMpOwotICAgIGZyZWUocmVzdWx0KTsKKyAgICBmcmVlKHNlcl9wYXJhbXMpOworICAgIGZyZWUoc2VyX3Jlc3VsdCk7CiAKICAgICByZXR1cm4gc3RhdHVzOwogfQpAQCAtMTA0OSw1NSArMTIwOSw2NCBAQAogICAgIGNvbnN0IHVpbnQ4X3QgKnRhZywgc2l6ZV90ICB0YWdfbGVuZ3RoCiAgICAgKQogewotICAgIHVpbnQ4X3QgKnBhcmFtcyA9IE5VTEw7Ci0gICAgdWludDhfdCAqcmVzdWx0ID0gTlVMTDsKKyAgICB1aW50OF90ICpzZXJfcGFyYW1zID0gTlVMTDsKKyAgICB1aW50OF90ICpzZXJfcmVzdWx0ID0gTlVMTDsKICAgICBzaXplX3QgcmVzdWx0X2xlbmd0aDsKICAgICBwc2Ffc3RhdHVzX3Qgc3RhdHVzID0gUFNBX0VSUk9SX0NPUlJVUFRJT05fREVURUNURUQ7CiAKLSAgICBzaXplX3QgbmVlZGVkID0gcHNhc2ltX3NlcmlhbGlzZV9iZWdpbl9uZWVkcygpICsKLSAgICAgICAgICAgICAgICAgICAgcHNhc2ltX3NlcmlhbGlzZV9wc2FfYWVhZF9vcGVyYXRpb25fdF9uZWVkcygqb3BlcmF0aW9uKSArCi0gICAgICAgICAgICAgICAgICAgIHBzYXNpbV9zZXJpYWxpc2VfYnVmZmVyX25lZWRzKHBsYWludGV4dCwgcGxhaW50ZXh0X3NpemUpICsKLSAgICAgICAgICAgICAgICAgICAgcHNhc2ltX3NlcmlhbGlzZV9zaXplX3RfbmVlZHMoKnBsYWludGV4dF9sZW5ndGgpICsKLSAgICAgICAgICAgICAgICAgICAgcHNhc2ltX3NlcmlhbGlzZV9idWZmZXJfbmVlZHModGFnLCB0YWdfbGVuZ3RoKTsKKyAgICBzaXplX3QgbmVlZGVkID0KKyAgICAgICAgcHNhc2ltX3NlcmlhbGlzZV9iZWdpbl9uZWVkcygpICsKKyAgICAgICAgcHNhc2ltX3NlcmlhbGlzZV9wc2FfYWVhZF9vcGVyYXRpb25fdF9uZWVkcygqb3BlcmF0aW9uKSArCisgICAgICAgIHBzYXNpbV9zZXJpYWxpc2VfYnVmZmVyX25lZWRzKHBsYWludGV4dCwgcGxhaW50ZXh0X3NpemUpICsKKyAgICAgICAgcHNhc2ltX3NlcmlhbGlzZV9zaXplX3RfbmVlZHMoKnBsYWludGV4dF9sZW5ndGgpICsKKyAgICAgICAgcHNhc2ltX3NlcmlhbGlzZV9idWZmZXJfbmVlZHModGFnLCB0YWdfbGVuZ3RoKTsKIAotICAgIHBhcmFtcyA9IG1hbGxvYyhuZWVkZWQpOwotICAgIGlmIChwYXJhbXMgPT0gTlVMTCkgeworICAgIHNlcl9wYXJhbXMgPSBtYWxsb2MobmVlZGVkKTsKKyAgICBpZiAoc2VyX3BhcmFtcyA9PSBOVUxMKSB7CiAgICAgICAgIHN0YXR1cyA9IFBTQV9FUlJPUl9JTlNVRkZJQ0lFTlRfTUVNT1JZOwogICAgICAgICBnb3RvIGZhaWw7CiAgICAgfQogCi0gICAgdWludDhfdCAqcG9zID0gcGFyYW1zOworICAgIHVpbnQ4X3QgKnBvcyA9IHNlcl9wYXJhbXM7CiAgICAgc2l6ZV90IHJlbWFpbmluZyA9IG5lZWRlZDsKICAgICBpbnQgb2s7CiAgICAgb2sgPSBwc2FzaW1fc2VyaWFsaXNlX2JlZ2luKCZwb3MsICZyZW1haW5pbmcpOwogICAgIGlmICghb2spIHsKICAgICAgICAgZ290byBmYWlsOwogICAgIH0KLSAgICBvayA9IHBzYXNpbV9zZXJpYWxpc2VfcHNhX2FlYWRfb3BlcmF0aW9uX3QoJnBvcywgJnJlbWFpbmluZywgKm9wZXJhdGlvbik7CisgICAgb2sgPSBwc2FzaW1fc2VyaWFsaXNlX3BzYV9hZWFkX29wZXJhdGlvbl90KAorICAgICAgICAmcG9zLCAmcmVtYWluaW5nLAorICAgICAgICAqb3BlcmF0aW9uKTsKICAgICBpZiAoIW9rKSB7CiAgICAgICAgIGdvdG8gZmFpbDsKICAgICB9Ci0gICAgb2sgPSBwc2FzaW1fc2VyaWFsaXNlX2J1ZmZlcigmcG9zLCAmcmVtYWluaW5nLCBwbGFpbnRleHQsIHBsYWludGV4dF9zaXplKTsKKyAgICBvayA9IHBzYXNpbV9zZXJpYWxpc2VfYnVmZmVyKAorICAgICAgICAmcG9zLCAmcmVtYWluaW5nLAorICAgICAgICBwbGFpbnRleHQsIHBsYWludGV4dF9zaXplKTsKICAgICBpZiAoIW9rKSB7CiAgICAgICAgIGdvdG8gZmFpbDsKICAgICB9Ci0gICAgb2sgPSBwc2FzaW1fc2VyaWFsaXNlX3NpemVfdCgmcG9zLCAmcmVtYWluaW5nLCAqcGxhaW50ZXh0X2xlbmd0aCk7CisgICAgb2sgPSBwc2FzaW1fc2VyaWFsaXNlX3NpemVfdCgKKyAgICAgICAgJnBvcywgJnJlbWFpbmluZywKKyAgICAgICAgKnBsYWludGV4dF9sZW5ndGgpOwogICAgIGlmICghb2spIHsKICAgICAgICAgZ290byBmYWlsOwogICAgIH0KLSAgICBvayA9IHBzYXNpbV9zZXJpYWxpc2VfYnVmZmVyKCZwb3MsICZyZW1haW5pbmcsIHRhZywgdGFnX2xlbmd0aCk7CisgICAgb2sgPSBwc2FzaW1fc2VyaWFsaXNlX2J1ZmZlcigKKyAgICAgICAgJnBvcywgJnJlbWFpbmluZywKKyAgICAgICAgdGFnLCB0YWdfbGVuZ3RoKTsKICAgICBpZiAoIW9rKSB7CiAgICAgICAgIGdvdG8gZmFpbDsKICAgICB9CiAKICAgICBvayA9IHBzYV9jcnlwdG9fY2FsbChQU0FfQUVBRF9WRVJJRlksCi0gICAgICAgICAgICAgICAgICAgICAgICAgcGFyYW1zLCAoc2l6ZV90KSAocG9zIC0gcGFyYW1zKSwgJnJlc3VsdCwgJnJlc3VsdF9sZW5ndGgpOworICAgICAgICAgICAgICAgICAgICAgICAgIHNlcl9wYXJhbXMsIChzaXplX3QpIChwb3MgLSBzZXJfcGFyYW1zKSwgJnNlcl9yZXN1bHQsICZyZXN1bHRfbGVuZ3RoKTsKICAgICBpZiAoIW9rKSB7CiAgICAgICAgIHByaW50ZigiUFNBX0FFQURfVkVSSUZZIHNlcnZlciBjYWxsIGZhaWxlZFxuIik7CiAgICAgICAgIGdvdG8gZmFpbDsKICAgICB9CiAKLSAgICB1aW50OF90ICpycG9zID0gcmVzdWx0OworICAgIHVpbnQ4X3QgKnJwb3MgPSBzZXJfcmVzdWx0OwogICAgIHNpemVfdCBycmVtYWluID0gcmVzdWx0X2xlbmd0aDsKIAogICAgIG9rID0gcHNhc2ltX2Rlc2VyaWFsaXNlX2JlZ2luKCZycG9zLCAmcnJlbWFpbik7CkBAIC0xMTA1LDI5ICsxMjc0LDEyMDMgQEAKICAgICAgICAgZ290byBmYWlsOwogICAgIH0KIAotICAgIG9rID0gcHNhc2ltX2Rlc2VyaWFsaXNlX3BzYV9zdGF0dXNfdCgmcnBvcywgJnJyZW1haW4sICZzdGF0dXMpOworICAgIG9rID0gcHNhc2ltX2Rlc2VyaWFsaXNlX3BzYV9zdGF0dXNfdCgKKyAgICAgICAgJnJwb3MsICZycmVtYWluLAorICAgICAgICAmc3RhdHVzKTsKICAgICBpZiAoIW9rKSB7CiAgICAgICAgIGdvdG8gZmFpbDsKICAgICB9CiAKLSAgICBvayA9IHBzYXNpbV9kZXNlcmlhbGlzZV9wc2FfYWVhZF9vcGVyYXRpb25fdCgmcnBvcywgJnJyZW1haW4sIG9wZXJhdGlvbik7CisgICAgb2sgPSBwc2FzaW1fZGVzZXJpYWxpc2VfcHNhX2FlYWRfb3BlcmF0aW9uX3QoCisgICAgICAgICZycG9zLCAmcnJlbWFpbiwKKyAgICAgICAgb3BlcmF0aW9uKTsKICAgICBpZiAoIW9rKSB7CiAgICAgICAgIGdvdG8gZmFpbDsKICAgICB9CiAKLSAgICBvayA9IHBzYXNpbV9kZXNlcmlhbGlzZV9yZXR1cm5fYnVmZmVyKCZycG9zLCAmcnJlbWFpbiwgcGxhaW50ZXh0LCBwbGFpbnRleHRfc2l6ZSk7CisgICAgb2sgPSBwc2FzaW1fZGVzZXJpYWxpc2VfcmV0dXJuX2J1ZmZlcigKKyAgICAgICAgJnJwb3MsICZycmVtYWluLAorICAgICAgICBwbGFpbnRleHQsIHBsYWludGV4dF9zaXplKTsKICAgICBpZiAoIW9rKSB7CiAgICAgICAgIGdvdG8gZmFpbDsKICAgICB9CiAKLSAgICBvayA9IHBzYXNpbV9kZXNlcmlhbGlzZV9zaXplX3QoJnJwb3MsICZycmVtYWluLCBwbGFpbnRleHRfbGVuZ3RoKTsKKyAgICBvayA9IHBzYXNpbV9kZXNlcmlhbGlzZV9zaXplX3QoCisgICAgICAgICZycG9zLCAmcnJlbWFpbiwKKyAgICAgICAgcGxhaW50ZXh0X2xlbmd0aCk7CiAgICAgaWYgKCFvaykgewogICAgICAgICBnb3RvIGZhaWw7CiAgICAgfQogCiBmYWlsOgotICAgIGZyZWUocGFyYW1zKTsKLSAgICBmcmVlKHJlc3VsdCk7CisgICAgZnJlZShzZXJfcGFyYW1zKTsKKyAgICBmcmVlKHNlcl9yZXN1bHQpOworCisgICAgcmV0dXJuIHN0YXR1czsKK30KKworCitwc2Ffc3RhdHVzX3QgcHNhX2FzeW1tZXRyaWNfZGVjcnlwdCgKKyAgICBtYmVkdGxzX3N2Y19rZXlfaWRfdCBrZXksCisgICAgcHNhX2FsZ29yaXRobV90IGFsZywKKyAgICBjb25zdCB1aW50OF90ICppbnB1dCwgc2l6ZV90ICBpbnB1dF9sZW5ndGgsCisgICAgY29uc3QgdWludDhfdCAqc2FsdCwgc2l6ZV90ICBzYWx0X2xlbmd0aCwKKyAgICB1aW50OF90ICpvdXRwdXQsIHNpemVfdCAgb3V0cHV0X3NpemUsCisgICAgc2l6ZV90ICpvdXRwdXRfbGVuZ3RoCisgICAgKQoreworICAgIHVpbnQ4X3QgKnNlcl9wYXJhbXMgPSBOVUxMOworICAgIHVpbnQ4X3QgKnNlcl9yZXN1bHQgPSBOVUxMOworICAgIHNpemVfdCByZXN1bHRfbGVuZ3RoOworICAgIHBzYV9zdGF0dXNfdCBzdGF0dXMgPSBQU0FfRVJST1JfQ09SUlVQVElPTl9ERVRFQ1RFRDsKKworICAgIHNpemVfdCBuZWVkZWQgPQorICAgICAgICBwc2FzaW1fc2VyaWFsaXNlX2JlZ2luX25lZWRzKCkgKworICAgICAgICBwc2FzaW1fc2VyaWFsaXNlX21iZWR0bHNfc3ZjX2tleV9pZF90X25lZWRzKGtleSkgKworICAgICAgICBwc2FzaW1fc2VyaWFsaXNlX3BzYV9hbGdvcml0aG1fdF9uZWVkcyhhbGcpICsKKyAgICAgICAgcHNhc2ltX3NlcmlhbGlzZV9idWZmZXJfbmVlZHMoaW5wdXQsIGlucHV0X2xlbmd0aCkgKworICAgICAgICBwc2FzaW1fc2VyaWFsaXNlX2J1ZmZlcl9uZWVkcyhzYWx0LCBzYWx0X2xlbmd0aCkgKworICAgICAgICBwc2FzaW1fc2VyaWFsaXNlX2J1ZmZlcl9uZWVkcyhvdXRwdXQsIG91dHB1dF9zaXplKSArCisgICAgICAgIHBzYXNpbV9zZXJpYWxpc2Vfc2l6ZV90X25lZWRzKCpvdXRwdXRfbGVuZ3RoKTsKKworICAgIHNlcl9wYXJhbXMgPSBtYWxsb2MobmVlZGVkKTsKKyAgICBpZiAoc2VyX3BhcmFtcyA9PSBOVUxMKSB7CisgICAgICAgIHN0YXR1cyA9IFBTQV9FUlJPUl9JTlNVRkZJQ0lFTlRfTUVNT1JZOworICAgICAgICBnb3RvIGZhaWw7CisgICAgfQorCisgICAgdWludDhfdCAqcG9zID0gc2VyX3BhcmFtczsKKyAgICBzaXplX3QgcmVtYWluaW5nID0gbmVlZGVkOworICAgIGludCBvazsKKyAgICBvayA9IHBzYXNpbV9zZXJpYWxpc2VfYmVnaW4oJnBvcywgJnJlbWFpbmluZyk7CisgICAgaWYgKCFvaykgeworICAgICAgICBnb3RvIGZhaWw7CisgICAgfQorICAgIG9rID0gcHNhc2ltX3NlcmlhbGlzZV9tYmVkdGxzX3N2Y19rZXlfaWRfdCgKKyAgICAgICAgJnBvcywgJnJlbWFpbmluZywKKyAgICAgICAga2V5KTsKKyAgICBpZiAoIW9rKSB7CisgICAgICAgIGdvdG8gZmFpbDsKKyAgICB9CisgICAgb2sgPSBwc2FzaW1fc2VyaWFsaXNlX3BzYV9hbGdvcml0aG1fdCgKKyAgICAgICAgJnBvcywgJnJlbWFpbmluZywKKyAgICAgICAgYWxnKTsKKyAgICBpZiAoIW9rKSB7CisgICAgICAgIGdvdG8gZmFpbDsKKyAgICB9CisgICAgb2sgPSBwc2FzaW1fc2VyaWFsaXNlX2J1ZmZlcigKKyAgICAgICAgJnBvcywgJnJlbWFpbmluZywKKyAgICAgICAgaW5wdXQsIGlucHV0X2xlbmd0aCk7CisgICAgaWYgKCFvaykgeworICAgICAgICBnb3RvIGZhaWw7CisgICAgfQorICAgIG9rID0gcHNhc2ltX3NlcmlhbGlzZV9idWZmZXIoCisgICAgICAgICZwb3MsICZyZW1haW5pbmcsCisgICAgICAgIHNhbHQsIHNhbHRfbGVuZ3RoKTsKKyAgICBpZiAoIW9rKSB7CisgICAgICAgIGdvdG8gZmFpbDsKKyAgICB9CisgICAgb2sgPSBwc2FzaW1fc2VyaWFsaXNlX2J1ZmZlcigKKyAgICAgICAgJnBvcywgJnJlbWFpbmluZywKKyAgICAgICAgb3V0cHV0LCBvdXRwdXRfc2l6ZSk7CisgICAgaWYgKCFvaykgeworICAgICAgICBnb3RvIGZhaWw7CisgICAgfQorICAgIG9rID0gcHNhc2ltX3NlcmlhbGlzZV9zaXplX3QoCisgICAgICAgICZwb3MsICZyZW1haW5pbmcsCisgICAgICAgICpvdXRwdXRfbGVuZ3RoKTsKKyAgICBpZiAoIW9rKSB7CisgICAgICAgIGdvdG8gZmFpbDsKKyAgICB9CisKKyAgICBvayA9IHBzYV9jcnlwdG9fY2FsbChQU0FfQVNZTU1FVFJJQ19ERUNSWVBULAorICAgICAgICAgICAgICAgICAgICAgICAgIHNlcl9wYXJhbXMsIChzaXplX3QpIChwb3MgLSBzZXJfcGFyYW1zKSwgJnNlcl9yZXN1bHQsICZyZXN1bHRfbGVuZ3RoKTsKKyAgICBpZiAoIW9rKSB7CisgICAgICAgIHByaW50ZigiUFNBX0FTWU1NRVRSSUNfREVDUllQVCBzZXJ2ZXIgY2FsbCBmYWlsZWRcbiIpOworICAgICAgICBnb3RvIGZhaWw7CisgICAgfQorCisgICAgdWludDhfdCAqcnBvcyA9IHNlcl9yZXN1bHQ7CisgICAgc2l6ZV90IHJyZW1haW4gPSByZXN1bHRfbGVuZ3RoOworCisgICAgb2sgPSBwc2FzaW1fZGVzZXJpYWxpc2VfYmVnaW4oJnJwb3MsICZycmVtYWluKTsKKyAgICBpZiAoIW9rKSB7CisgICAgICAgIGdvdG8gZmFpbDsKKyAgICB9CisKKyAgICBvayA9IHBzYXNpbV9kZXNlcmlhbGlzZV9wc2Ffc3RhdHVzX3QoCisgICAgICAgICZycG9zLCAmcnJlbWFpbiwKKyAgICAgICAgJnN0YXR1cyk7CisgICAgaWYgKCFvaykgeworICAgICAgICBnb3RvIGZhaWw7CisgICAgfQorCisgICAgb2sgPSBwc2FzaW1fZGVzZXJpYWxpc2VfcmV0dXJuX2J1ZmZlcigKKyAgICAgICAgJnJwb3MsICZycmVtYWluLAorICAgICAgICBvdXRwdXQsIG91dHB1dF9zaXplKTsKKyAgICBpZiAoIW9rKSB7CisgICAgICAgIGdvdG8gZmFpbDsKKyAgICB9CisKKyAgICBvayA9IHBzYXNpbV9kZXNlcmlhbGlzZV9zaXplX3QoCisgICAgICAgICZycG9zLCAmcnJlbWFpbiwKKyAgICAgICAgb3V0cHV0X2xlbmd0aCk7CisgICAgaWYgKCFvaykgeworICAgICAgICBnb3RvIGZhaWw7CisgICAgfQorCitmYWlsOgorICAgIGZyZWUoc2VyX3BhcmFtcyk7CisgICAgZnJlZShzZXJfcmVzdWx0KTsKKworICAgIHJldHVybiBzdGF0dXM7Cit9CisKKworcHNhX3N0YXR1c190IHBzYV9hc3ltbWV0cmljX2VuY3J5cHQoCisgICAgbWJlZHRsc19zdmNfa2V5X2lkX3Qga2V5LAorICAgIHBzYV9hbGdvcml0aG1fdCBhbGcsCisgICAgY29uc3QgdWludDhfdCAqaW5wdXQsIHNpemVfdCAgaW5wdXRfbGVuZ3RoLAorICAgIGNvbnN0IHVpbnQ4X3QgKnNhbHQsIHNpemVfdCAgc2FsdF9sZW5ndGgsCisgICAgdWludDhfdCAqb3V0cHV0LCBzaXplX3QgIG91dHB1dF9zaXplLAorICAgIHNpemVfdCAqb3V0cHV0X2xlbmd0aAorICAgICkKK3sKKyAgICB1aW50OF90ICpzZXJfcGFyYW1zID0gTlVMTDsKKyAgICB1aW50OF90ICpzZXJfcmVzdWx0ID0gTlVMTDsKKyAgICBzaXplX3QgcmVzdWx0X2xlbmd0aDsKKyAgICBwc2Ffc3RhdHVzX3Qgc3RhdHVzID0gUFNBX0VSUk9SX0NPUlJVUFRJT05fREVURUNURUQ7CisKKyAgICBzaXplX3QgbmVlZGVkID0KKyAgICAgICAgcHNhc2ltX3NlcmlhbGlzZV9iZWdpbl9uZWVkcygpICsKKyAgICAgICAgcHNhc2ltX3NlcmlhbGlzZV9tYmVkdGxzX3N2Y19rZXlfaWRfdF9uZWVkcyhrZXkpICsKKyAgICAgICAgcHNhc2ltX3NlcmlhbGlzZV9wc2FfYWxnb3JpdGhtX3RfbmVlZHMoYWxnKSArCisgICAgICAgIHBzYXNpbV9zZXJpYWxpc2VfYnVmZmVyX25lZWRzKGlucHV0LCBpbnB1dF9sZW5ndGgpICsKKyAgICAgICAgcHNhc2ltX3NlcmlhbGlzZV9idWZmZXJfbmVlZHMoc2FsdCwgc2FsdF9sZW5ndGgpICsKKyAgICAgICAgcHNhc2ltX3NlcmlhbGlzZV9idWZmZXJfbmVlZHMob3V0cHV0LCBvdXRwdXRfc2l6ZSkgKworICAgICAgICBwc2FzaW1fc2VyaWFsaXNlX3NpemVfdF9uZWVkcygqb3V0cHV0X2xlbmd0aCk7CisKKyAgICBzZXJfcGFyYW1zID0gbWFsbG9jKG5lZWRlZCk7CisgICAgaWYgKHNlcl9wYXJhbXMgPT0gTlVMTCkgeworICAgICAgICBzdGF0dXMgPSBQU0FfRVJST1JfSU5TVUZGSUNJRU5UX01FTU9SWTsKKyAgICAgICAgZ290byBmYWlsOworICAgIH0KKworICAgIHVpbnQ4X3QgKnBvcyA9IHNlcl9wYXJhbXM7CisgICAgc2l6ZV90IHJlbWFpbmluZyA9IG5lZWRlZDsKKyAgICBpbnQgb2s7CisgICAgb2sgPSBwc2FzaW1fc2VyaWFsaXNlX2JlZ2luKCZwb3MsICZyZW1haW5pbmcpOworICAgIGlmICghb2spIHsKKyAgICAgICAgZ290byBmYWlsOworICAgIH0KKyAgICBvayA9IHBzYXNpbV9zZXJpYWxpc2VfbWJlZHRsc19zdmNfa2V5X2lkX3QoCisgICAgICAgICZwb3MsICZyZW1haW5pbmcsCisgICAgICAgIGtleSk7CisgICAgaWYgKCFvaykgeworICAgICAgICBnb3RvIGZhaWw7CisgICAgfQorICAgIG9rID0gcHNhc2ltX3NlcmlhbGlzZV9wc2FfYWxnb3JpdGhtX3QoCisgICAgICAgICZwb3MsICZyZW1haW5pbmcsCisgICAgICAgIGFsZyk7CisgICAgaWYgKCFvaykgeworICAgICAgICBnb3RvIGZhaWw7CisgICAgfQorICAgIG9rID0gcHNhc2ltX3NlcmlhbGlzZV9idWZmZXIoCisgICAgICAgICZwb3MsICZyZW1haW5pbmcsCisgICAgICAgIGlucHV0LCBpbnB1dF9sZW5ndGgpOworICAgIGlmICghb2spIHsKKyAgICAgICAgZ290byBmYWlsOworICAgIH0KKyAgICBvayA9IHBzYXNpbV9zZXJpYWxpc2VfYnVmZmVyKAorICAgICAgICAmcG9zLCAmcmVtYWluaW5nLAorICAgICAgICBzYWx0LCBzYWx0X2xlbmd0aCk7CisgICAgaWYgKCFvaykgeworICAgICAgICBnb3RvIGZhaWw7CisgICAgfQorICAgIG9rID0gcHNhc2ltX3NlcmlhbGlzZV9idWZmZXIoCisgICAgICAgICZwb3MsICZyZW1haW5pbmcsCisgICAgICAgIG91dHB1dCwgb3V0cHV0X3NpemUpOworICAgIGlmICghb2spIHsKKyAgICAgICAgZ290byBmYWlsOworICAgIH0KKyAgICBvayA9IHBzYXNpbV9zZXJpYWxpc2Vfc2l6ZV90KAorICAgICAgICAmcG9zLCAmcmVtYWluaW5nLAorICAgICAgICAqb3V0cHV0X2xlbmd0aCk7CisgICAgaWYgKCFvaykgeworICAgICAgICBnb3RvIGZhaWw7CisgICAgfQorCisgICAgb2sgPSBwc2FfY3J5cHRvX2NhbGwoUFNBX0FTWU1NRVRSSUNfRU5DUllQVCwKKyAgICAgICAgICAgICAgICAgICAgICAgICBzZXJfcGFyYW1zLCAoc2l6ZV90KSAocG9zIC0gc2VyX3BhcmFtcyksICZzZXJfcmVzdWx0LCAmcmVzdWx0X2xlbmd0aCk7CisgICAgaWYgKCFvaykgeworICAgICAgICBwcmludGYoIlBTQV9BU1lNTUVUUklDX0VOQ1JZUFQgc2VydmVyIGNhbGwgZmFpbGVkXG4iKTsKKyAgICAgICAgZ290byBmYWlsOworICAgIH0KKworICAgIHVpbnQ4X3QgKnJwb3MgPSBzZXJfcmVzdWx0OworICAgIHNpemVfdCBycmVtYWluID0gcmVzdWx0X2xlbmd0aDsKKworICAgIG9rID0gcHNhc2ltX2Rlc2VyaWFsaXNlX2JlZ2luKCZycG9zLCAmcnJlbWFpbik7CisgICAgaWYgKCFvaykgeworICAgICAgICBnb3RvIGZhaWw7CisgICAgfQorCisgICAgb2sgPSBwc2FzaW1fZGVzZXJpYWxpc2VfcHNhX3N0YXR1c190KAorICAgICAgICAmcnBvcywgJnJyZW1haW4sCisgICAgICAgICZzdGF0dXMpOworICAgIGlmICghb2spIHsKKyAgICAgICAgZ290byBmYWlsOworICAgIH0KKworICAgIG9rID0gcHNhc2ltX2Rlc2VyaWFsaXNlX3JldHVybl9idWZmZXIoCisgICAgICAgICZycG9zLCAmcnJlbWFpbiwKKyAgICAgICAgb3V0cHV0LCBvdXRwdXRfc2l6ZSk7CisgICAgaWYgKCFvaykgeworICAgICAgICBnb3RvIGZhaWw7CisgICAgfQorCisgICAgb2sgPSBwc2FzaW1fZGVzZXJpYWxpc2Vfc2l6ZV90KAorICAgICAgICAmcnBvcywgJnJyZW1haW4sCisgICAgICAgIG91dHB1dF9sZW5ndGgpOworICAgIGlmICghb2spIHsKKyAgICAgICAgZ290byBmYWlsOworICAgIH0KKworZmFpbDoKKyAgICBmcmVlKHNlcl9wYXJhbXMpOworICAgIGZyZWUoc2VyX3Jlc3VsdCk7CisKKyAgICByZXR1cm4gc3RhdHVzOworfQorCisKK3BzYV9zdGF0dXNfdCBwc2FfY2lwaGVyX2Fib3J0KAorICAgIHBzYV9jaXBoZXJfb3BlcmF0aW9uX3QgKm9wZXJhdGlvbgorICAgICkKK3sKKyAgICB1aW50OF90ICpzZXJfcGFyYW1zID0gTlVMTDsKKyAgICB1aW50OF90ICpzZXJfcmVzdWx0ID0gTlVMTDsKKyAgICBzaXplX3QgcmVzdWx0X2xlbmd0aDsKKyAgICBwc2Ffc3RhdHVzX3Qgc3RhdHVzID0gUFNBX0VSUk9SX0NPUlJVUFRJT05fREVURUNURUQ7CisKKyAgICBzaXplX3QgbmVlZGVkID0KKyAgICAgICAgcHNhc2ltX3NlcmlhbGlzZV9iZWdpbl9uZWVkcygpICsKKyAgICAgICAgcHNhc2ltX3NlcmlhbGlzZV9wc2FfY2lwaGVyX29wZXJhdGlvbl90X25lZWRzKCpvcGVyYXRpb24pOworCisgICAgc2VyX3BhcmFtcyA9IG1hbGxvYyhuZWVkZWQpOworICAgIGlmIChzZXJfcGFyYW1zID09IE5VTEwpIHsKKyAgICAgICAgc3RhdHVzID0gUFNBX0VSUk9SX0lOU1VGRklDSUVOVF9NRU1PUlk7CisgICAgICAgIGdvdG8gZmFpbDsKKyAgICB9CisKKyAgICB1aW50OF90ICpwb3MgPSBzZXJfcGFyYW1zOworICAgIHNpemVfdCByZW1haW5pbmcgPSBuZWVkZWQ7CisgICAgaW50IG9rOworICAgIG9rID0gcHNhc2ltX3NlcmlhbGlzZV9iZWdpbigmcG9zLCAmcmVtYWluaW5nKTsKKyAgICBpZiAoIW9rKSB7CisgICAgICAgIGdvdG8gZmFpbDsKKyAgICB9CisgICAgb2sgPSBwc2FzaW1fc2VyaWFsaXNlX3BzYV9jaXBoZXJfb3BlcmF0aW9uX3QoCisgICAgICAgICZwb3MsICZyZW1haW5pbmcsCisgICAgICAgICpvcGVyYXRpb24pOworICAgIGlmICghb2spIHsKKyAgICAgICAgZ290byBmYWlsOworICAgIH0KKworICAgIG9rID0gcHNhX2NyeXB0b19jYWxsKFBTQV9DSVBIRVJfQUJPUlQsCisgICAgICAgICAgICAgICAgICAgICAgICAgc2VyX3BhcmFtcywgKHNpemVfdCkgKHBvcyAtIHNlcl9wYXJhbXMpLCAmc2VyX3Jlc3VsdCwgJnJlc3VsdF9sZW5ndGgpOworICAgIGlmICghb2spIHsKKyAgICAgICAgcHJpbnRmKCJQU0FfQ0lQSEVSX0FCT1JUIHNlcnZlciBjYWxsIGZhaWxlZFxuIik7CisgICAgICAgIGdvdG8gZmFpbDsKKyAgICB9CisKKyAgICB1aW50OF90ICpycG9zID0gc2VyX3Jlc3VsdDsKKyAgICBzaXplX3QgcnJlbWFpbiA9IHJlc3VsdF9sZW5ndGg7CisKKyAgICBvayA9IHBzYXNpbV9kZXNlcmlhbGlzZV9iZWdpbigmcnBvcywgJnJyZW1haW4pOworICAgIGlmICghb2spIHsKKyAgICAgICAgZ290byBmYWlsOworICAgIH0KKworICAgIG9rID0gcHNhc2ltX2Rlc2VyaWFsaXNlX3BzYV9zdGF0dXNfdCgKKyAgICAgICAgJnJwb3MsICZycmVtYWluLAorICAgICAgICAmc3RhdHVzKTsKKyAgICBpZiAoIW9rKSB7CisgICAgICAgIGdvdG8gZmFpbDsKKyAgICB9CisKKyAgICBvayA9IHBzYXNpbV9kZXNlcmlhbGlzZV9wc2FfY2lwaGVyX29wZXJhdGlvbl90KAorICAgICAgICAmcnBvcywgJnJyZW1haW4sCisgICAgICAgIG9wZXJhdGlvbik7CisgICAgaWYgKCFvaykgeworICAgICAgICBnb3RvIGZhaWw7CisgICAgfQorCitmYWlsOgorICAgIGZyZWUoc2VyX3BhcmFtcyk7CisgICAgZnJlZShzZXJfcmVzdWx0KTsKKworICAgIHJldHVybiBzdGF0dXM7Cit9CisKKworcHNhX3N0YXR1c190IHBzYV9jaXBoZXJfZGVjcnlwdCgKKyAgICBtYmVkdGxzX3N2Y19rZXlfaWRfdCBrZXksCisgICAgcHNhX2FsZ29yaXRobV90IGFsZywKKyAgICBjb25zdCB1aW50OF90ICppbnB1dCwgc2l6ZV90ICBpbnB1dF9sZW5ndGgsCisgICAgdWludDhfdCAqb3V0cHV0LCBzaXplX3QgIG91dHB1dF9zaXplLAorICAgIHNpemVfdCAqb3V0cHV0X2xlbmd0aAorICAgICkKK3sKKyAgICB1aW50OF90ICpzZXJfcGFyYW1zID0gTlVMTDsKKyAgICB1aW50OF90ICpzZXJfcmVzdWx0ID0gTlVMTDsKKyAgICBzaXplX3QgcmVzdWx0X2xlbmd0aDsKKyAgICBwc2Ffc3RhdHVzX3Qgc3RhdHVzID0gUFNBX0VSUk9SX0NPUlJVUFRJT05fREVURUNURUQ7CisKKyAgICBzaXplX3QgbmVlZGVkID0KKyAgICAgICAgcHNhc2ltX3NlcmlhbGlzZV9iZWdpbl9uZWVkcygpICsKKyAgICAgICAgcHNhc2ltX3NlcmlhbGlzZV9tYmVkdGxzX3N2Y19rZXlfaWRfdF9uZWVkcyhrZXkpICsKKyAgICAgICAgcHNhc2ltX3NlcmlhbGlzZV9wc2FfYWxnb3JpdGhtX3RfbmVlZHMoYWxnKSArCisgICAgICAgIHBzYXNpbV9zZXJpYWxpc2VfYnVmZmVyX25lZWRzKGlucHV0LCBpbnB1dF9sZW5ndGgpICsKKyAgICAgICAgcHNhc2ltX3NlcmlhbGlzZV9idWZmZXJfbmVlZHMob3V0cHV0LCBvdXRwdXRfc2l6ZSkgKworICAgICAgICBwc2FzaW1fc2VyaWFsaXNlX3NpemVfdF9uZWVkcygqb3V0cHV0X2xlbmd0aCk7CisKKyAgICBzZXJfcGFyYW1zID0gbWFsbG9jKG5lZWRlZCk7CisgICAgaWYgKHNlcl9wYXJhbXMgPT0gTlVMTCkgeworICAgICAgICBzdGF0dXMgPSBQU0FfRVJST1JfSU5TVUZGSUNJRU5UX01FTU9SWTsKKyAgICAgICAgZ290byBmYWlsOworICAgIH0KKworICAgIHVpbnQ4X3QgKnBvcyA9IHNlcl9wYXJhbXM7CisgICAgc2l6ZV90IHJlbWFpbmluZyA9IG5lZWRlZDsKKyAgICBpbnQgb2s7CisgICAgb2sgPSBwc2FzaW1fc2VyaWFsaXNlX2JlZ2luKCZwb3MsICZyZW1haW5pbmcpOworICAgIGlmICghb2spIHsKKyAgICAgICAgZ290byBmYWlsOworICAgIH0KKyAgICBvayA9IHBzYXNpbV9zZXJpYWxpc2VfbWJlZHRsc19zdmNfa2V5X2lkX3QoCisgICAgICAgICZwb3MsICZyZW1haW5pbmcsCisgICAgICAgIGtleSk7CisgICAgaWYgKCFvaykgeworICAgICAgICBnb3RvIGZhaWw7CisgICAgfQorICAgIG9rID0gcHNhc2ltX3NlcmlhbGlzZV9wc2FfYWxnb3JpdGhtX3QoCisgICAgICAgICZwb3MsICZyZW1haW5pbmcsCisgICAgICAgIGFsZyk7CisgICAgaWYgKCFvaykgeworICAgICAgICBnb3RvIGZhaWw7CisgICAgfQorICAgIG9rID0gcHNhc2ltX3NlcmlhbGlzZV9idWZmZXIoCisgICAgICAgICZwb3MsICZyZW1haW5pbmcsCisgICAgICAgIGlucHV0LCBpbnB1dF9sZW5ndGgpOworICAgIGlmICghb2spIHsKKyAgICAgICAgZ290byBmYWlsOworICAgIH0KKyAgICBvayA9IHBzYXNpbV9zZXJpYWxpc2VfYnVmZmVyKAorICAgICAgICAmcG9zLCAmcmVtYWluaW5nLAorICAgICAgICBvdXRwdXQsIG91dHB1dF9zaXplKTsKKyAgICBpZiAoIW9rKSB7CisgICAgICAgIGdvdG8gZmFpbDsKKyAgICB9CisgICAgb2sgPSBwc2FzaW1fc2VyaWFsaXNlX3NpemVfdCgKKyAgICAgICAgJnBvcywgJnJlbWFpbmluZywKKyAgICAgICAgKm91dHB1dF9sZW5ndGgpOworICAgIGlmICghb2spIHsKKyAgICAgICAgZ290byBmYWlsOworICAgIH0KKworICAgIG9rID0gcHNhX2NyeXB0b19jYWxsKFBTQV9DSVBIRVJfREVDUllQVCwKKyAgICAgICAgICAgICAgICAgICAgICAgICBzZXJfcGFyYW1zLCAoc2l6ZV90KSAocG9zIC0gc2VyX3BhcmFtcyksICZzZXJfcmVzdWx0LCAmcmVzdWx0X2xlbmd0aCk7CisgICAgaWYgKCFvaykgeworICAgICAgICBwcmludGYoIlBTQV9DSVBIRVJfREVDUllQVCBzZXJ2ZXIgY2FsbCBmYWlsZWRcbiIpOworICAgICAgICBnb3RvIGZhaWw7CisgICAgfQorCisgICAgdWludDhfdCAqcnBvcyA9IHNlcl9yZXN1bHQ7CisgICAgc2l6ZV90IHJyZW1haW4gPSByZXN1bHRfbGVuZ3RoOworCisgICAgb2sgPSBwc2FzaW1fZGVzZXJpYWxpc2VfYmVnaW4oJnJwb3MsICZycmVtYWluKTsKKyAgICBpZiAoIW9rKSB7CisgICAgICAgIGdvdG8gZmFpbDsKKyAgICB9CisKKyAgICBvayA9IHBzYXNpbV9kZXNlcmlhbGlzZV9wc2Ffc3RhdHVzX3QoCisgICAgICAgICZycG9zLCAmcnJlbWFpbiwKKyAgICAgICAgJnN0YXR1cyk7CisgICAgaWYgKCFvaykgeworICAgICAgICBnb3RvIGZhaWw7CisgICAgfQorCisgICAgb2sgPSBwc2FzaW1fZGVzZXJpYWxpc2VfcmV0dXJuX2J1ZmZlcigKKyAgICAgICAgJnJwb3MsICZycmVtYWluLAorICAgICAgICBvdXRwdXQsIG91dHB1dF9zaXplKTsKKyAgICBpZiAoIW9rKSB7CisgICAgICAgIGdvdG8gZmFpbDsKKyAgICB9CisKKyAgICBvayA9IHBzYXNpbV9kZXNlcmlhbGlzZV9zaXplX3QoCisgICAgICAgICZycG9zLCAmcnJlbWFpbiwKKyAgICAgICAgb3V0cHV0X2xlbmd0aCk7CisgICAgaWYgKCFvaykgeworICAgICAgICBnb3RvIGZhaWw7CisgICAgfQorCitmYWlsOgorICAgIGZyZWUoc2VyX3BhcmFtcyk7CisgICAgZnJlZShzZXJfcmVzdWx0KTsKKworICAgIHJldHVybiBzdGF0dXM7Cit9CisKKworcHNhX3N0YXR1c190IHBzYV9jaXBoZXJfZGVjcnlwdF9zZXR1cCgKKyAgICBwc2FfY2lwaGVyX29wZXJhdGlvbl90ICpvcGVyYXRpb24sCisgICAgbWJlZHRsc19zdmNfa2V5X2lkX3Qga2V5LAorICAgIHBzYV9hbGdvcml0aG1fdCBhbGcKKyAgICApCit7CisgICAgdWludDhfdCAqc2VyX3BhcmFtcyA9IE5VTEw7CisgICAgdWludDhfdCAqc2VyX3Jlc3VsdCA9IE5VTEw7CisgICAgc2l6ZV90IHJlc3VsdF9sZW5ndGg7CisgICAgcHNhX3N0YXR1c190IHN0YXR1cyA9IFBTQV9FUlJPUl9DT1JSVVBUSU9OX0RFVEVDVEVEOworCisgICAgc2l6ZV90IG5lZWRlZCA9CisgICAgICAgIHBzYXNpbV9zZXJpYWxpc2VfYmVnaW5fbmVlZHMoKSArCisgICAgICAgIHBzYXNpbV9zZXJpYWxpc2VfcHNhX2NpcGhlcl9vcGVyYXRpb25fdF9uZWVkcygqb3BlcmF0aW9uKSArCisgICAgICAgIHBzYXNpbV9zZXJpYWxpc2VfbWJlZHRsc19zdmNfa2V5X2lkX3RfbmVlZHMoa2V5KSArCisgICAgICAgIHBzYXNpbV9zZXJpYWxpc2VfcHNhX2FsZ29yaXRobV90X25lZWRzKGFsZyk7CisKKyAgICBzZXJfcGFyYW1zID0gbWFsbG9jKG5lZWRlZCk7CisgICAgaWYgKHNlcl9wYXJhbXMgPT0gTlVMTCkgeworICAgICAgICBzdGF0dXMgPSBQU0FfRVJST1JfSU5TVUZGSUNJRU5UX01FTU9SWTsKKyAgICAgICAgZ290byBmYWlsOworICAgIH0KKworICAgIHVpbnQ4X3QgKnBvcyA9IHNlcl9wYXJhbXM7CisgICAgc2l6ZV90IHJlbWFpbmluZyA9IG5lZWRlZDsKKyAgICBpbnQgb2s7CisgICAgb2sgPSBwc2FzaW1fc2VyaWFsaXNlX2JlZ2luKCZwb3MsICZyZW1haW5pbmcpOworICAgIGlmICghb2spIHsKKyAgICAgICAgZ290byBmYWlsOworICAgIH0KKyAgICBvayA9IHBzYXNpbV9zZXJpYWxpc2VfcHNhX2NpcGhlcl9vcGVyYXRpb25fdCgKKyAgICAgICAgJnBvcywgJnJlbWFpbmluZywKKyAgICAgICAgKm9wZXJhdGlvbik7CisgICAgaWYgKCFvaykgeworICAgICAgICBnb3RvIGZhaWw7CisgICAgfQorICAgIG9rID0gcHNhc2ltX3NlcmlhbGlzZV9tYmVkdGxzX3N2Y19rZXlfaWRfdCgKKyAgICAgICAgJnBvcywgJnJlbWFpbmluZywKKyAgICAgICAga2V5KTsKKyAgICBpZiAoIW9rKSB7CisgICAgICAgIGdvdG8gZmFpbDsKKyAgICB9CisgICAgb2sgPSBwc2FzaW1fc2VyaWFsaXNlX3BzYV9hbGdvcml0aG1fdCgKKyAgICAgICAgJnBvcywgJnJlbWFpbmluZywKKyAgICAgICAgYWxnKTsKKyAgICBpZiAoIW9rKSB7CisgICAgICAgIGdvdG8gZmFpbDsKKyAgICB9CisKKyAgICBvayA9IHBzYV9jcnlwdG9fY2FsbChQU0FfQ0lQSEVSX0RFQ1JZUFRfU0VUVVAsCisgICAgICAgICAgICAgICAgICAgICAgICAgc2VyX3BhcmFtcywgKHNpemVfdCkgKHBvcyAtIHNlcl9wYXJhbXMpLCAmc2VyX3Jlc3VsdCwgJnJlc3VsdF9sZW5ndGgpOworICAgIGlmICghb2spIHsKKyAgICAgICAgcHJpbnRmKCJQU0FfQ0lQSEVSX0RFQ1JZUFRfU0VUVVAgc2VydmVyIGNhbGwgZmFpbGVkXG4iKTsKKyAgICAgICAgZ290byBmYWlsOworICAgIH0KKworICAgIHVpbnQ4X3QgKnJwb3MgPSBzZXJfcmVzdWx0OworICAgIHNpemVfdCBycmVtYWluID0gcmVzdWx0X2xlbmd0aDsKKworICAgIG9rID0gcHNhc2ltX2Rlc2VyaWFsaXNlX2JlZ2luKCZycG9zLCAmcnJlbWFpbik7CisgICAgaWYgKCFvaykgeworICAgICAgICBnb3RvIGZhaWw7CisgICAgfQorCisgICAgb2sgPSBwc2FzaW1fZGVzZXJpYWxpc2VfcHNhX3N0YXR1c190KAorICAgICAgICAmcnBvcywgJnJyZW1haW4sCisgICAgICAgICZzdGF0dXMpOworICAgIGlmICghb2spIHsKKyAgICAgICAgZ290byBmYWlsOworICAgIH0KKworICAgIG9rID0gcHNhc2ltX2Rlc2VyaWFsaXNlX3BzYV9jaXBoZXJfb3BlcmF0aW9uX3QoCisgICAgICAgICZycG9zLCAmcnJlbWFpbiwKKyAgICAgICAgb3BlcmF0aW9uKTsKKyAgICBpZiAoIW9rKSB7CisgICAgICAgIGdvdG8gZmFpbDsKKyAgICB9CisKK2ZhaWw6CisgICAgZnJlZShzZXJfcGFyYW1zKTsKKyAgICBmcmVlKHNlcl9yZXN1bHQpOworCisgICAgcmV0dXJuIHN0YXR1czsKK30KKworCitwc2Ffc3RhdHVzX3QgcHNhX2NpcGhlcl9lbmNyeXB0KAorICAgIG1iZWR0bHNfc3ZjX2tleV9pZF90IGtleSwKKyAgICBwc2FfYWxnb3JpdGhtX3QgYWxnLAorICAgIGNvbnN0IHVpbnQ4X3QgKmlucHV0LCBzaXplX3QgIGlucHV0X2xlbmd0aCwKKyAgICB1aW50OF90ICpvdXRwdXQsIHNpemVfdCAgb3V0cHV0X3NpemUsCisgICAgc2l6ZV90ICpvdXRwdXRfbGVuZ3RoCisgICAgKQoreworICAgIHVpbnQ4X3QgKnNlcl9wYXJhbXMgPSBOVUxMOworICAgIHVpbnQ4X3QgKnNlcl9yZXN1bHQgPSBOVUxMOworICAgIHNpemVfdCByZXN1bHRfbGVuZ3RoOworICAgIHBzYV9zdGF0dXNfdCBzdGF0dXMgPSBQU0FfRVJST1JfQ09SUlVQVElPTl9ERVRFQ1RFRDsKKworICAgIHNpemVfdCBuZWVkZWQgPQorICAgICAgICBwc2FzaW1fc2VyaWFsaXNlX2JlZ2luX25lZWRzKCkgKworICAgICAgICBwc2FzaW1fc2VyaWFsaXNlX21iZWR0bHNfc3ZjX2tleV9pZF90X25lZWRzKGtleSkgKworICAgICAgICBwc2FzaW1fc2VyaWFsaXNlX3BzYV9hbGdvcml0aG1fdF9uZWVkcyhhbGcpICsKKyAgICAgICAgcHNhc2ltX3NlcmlhbGlzZV9idWZmZXJfbmVlZHMoaW5wdXQsIGlucHV0X2xlbmd0aCkgKworICAgICAgICBwc2FzaW1fc2VyaWFsaXNlX2J1ZmZlcl9uZWVkcyhvdXRwdXQsIG91dHB1dF9zaXplKSArCisgICAgICAgIHBzYXNpbV9zZXJpYWxpc2Vfc2l6ZV90X25lZWRzKCpvdXRwdXRfbGVuZ3RoKTsKKworICAgIHNlcl9wYXJhbXMgPSBtYWxsb2MobmVlZGVkKTsKKyAgICBpZiAoc2VyX3BhcmFtcyA9PSBOVUxMKSB7CisgICAgICAgIHN0YXR1cyA9IFBTQV9FUlJPUl9JTlNVRkZJQ0lFTlRfTUVNT1JZOworICAgICAgICBnb3RvIGZhaWw7CisgICAgfQorCisgICAgdWludDhfdCAqcG9zID0gc2VyX3BhcmFtczsKKyAgICBzaXplX3QgcmVtYWluaW5nID0gbmVlZGVkOworICAgIGludCBvazsKKyAgICBvayA9IHBzYXNpbV9zZXJpYWxpc2VfYmVnaW4oJnBvcywgJnJlbWFpbmluZyk7CisgICAgaWYgKCFvaykgeworICAgICAgICBnb3RvIGZhaWw7CisgICAgfQorICAgIG9rID0gcHNhc2ltX3NlcmlhbGlzZV9tYmVkdGxzX3N2Y19rZXlfaWRfdCgKKyAgICAgICAgJnBvcywgJnJlbWFpbmluZywKKyAgICAgICAga2V5KTsKKyAgICBpZiAoIW9rKSB7CisgICAgICAgIGdvdG8gZmFpbDsKKyAgICB9CisgICAgb2sgPSBwc2FzaW1fc2VyaWFsaXNlX3BzYV9hbGdvcml0aG1fdCgKKyAgICAgICAgJnBvcywgJnJlbWFpbmluZywKKyAgICAgICAgYWxnKTsKKyAgICBpZiAoIW9rKSB7CisgICAgICAgIGdvdG8gZmFpbDsKKyAgICB9CisgICAgb2sgPSBwc2FzaW1fc2VyaWFsaXNlX2J1ZmZlcigKKyAgICAgICAgJnBvcywgJnJlbWFpbmluZywKKyAgICAgICAgaW5wdXQsIGlucHV0X2xlbmd0aCk7CisgICAgaWYgKCFvaykgeworICAgICAgICBnb3RvIGZhaWw7CisgICAgfQorICAgIG9rID0gcHNhc2ltX3NlcmlhbGlzZV9idWZmZXIoCisgICAgICAgICZwb3MsICZyZW1haW5pbmcsCisgICAgICAgIG91dHB1dCwgb3V0cHV0X3NpemUpOworICAgIGlmICghb2spIHsKKyAgICAgICAgZ290byBmYWlsOworICAgIH0KKyAgICBvayA9IHBzYXNpbV9zZXJpYWxpc2Vfc2l6ZV90KAorICAgICAgICAmcG9zLCAmcmVtYWluaW5nLAorICAgICAgICAqb3V0cHV0X2xlbmd0aCk7CisgICAgaWYgKCFvaykgeworICAgICAgICBnb3RvIGZhaWw7CisgICAgfQorCisgICAgb2sgPSBwc2FfY3J5cHRvX2NhbGwoUFNBX0NJUEhFUl9FTkNSWVBULAorICAgICAgICAgICAgICAgICAgICAgICAgIHNlcl9wYXJhbXMsIChzaXplX3QpIChwb3MgLSBzZXJfcGFyYW1zKSwgJnNlcl9yZXN1bHQsICZyZXN1bHRfbGVuZ3RoKTsKKyAgICBpZiAoIW9rKSB7CisgICAgICAgIHByaW50ZigiUFNBX0NJUEhFUl9FTkNSWVBUIHNlcnZlciBjYWxsIGZhaWxlZFxuIik7CisgICAgICAgIGdvdG8gZmFpbDsKKyAgICB9CisKKyAgICB1aW50OF90ICpycG9zID0gc2VyX3Jlc3VsdDsKKyAgICBzaXplX3QgcnJlbWFpbiA9IHJlc3VsdF9sZW5ndGg7CisKKyAgICBvayA9IHBzYXNpbV9kZXNlcmlhbGlzZV9iZWdpbigmcnBvcywgJnJyZW1haW4pOworICAgIGlmICghb2spIHsKKyAgICAgICAgZ290byBmYWlsOworICAgIH0KKworICAgIG9rID0gcHNhc2ltX2Rlc2VyaWFsaXNlX3BzYV9zdGF0dXNfdCgKKyAgICAgICAgJnJwb3MsICZycmVtYWluLAorICAgICAgICAmc3RhdHVzKTsKKyAgICBpZiAoIW9rKSB7CisgICAgICAgIGdvdG8gZmFpbDsKKyAgICB9CisKKyAgICBvayA9IHBzYXNpbV9kZXNlcmlhbGlzZV9yZXR1cm5fYnVmZmVyKAorICAgICAgICAmcnBvcywgJnJyZW1haW4sCisgICAgICAgIG91dHB1dCwgb3V0cHV0X3NpemUpOworICAgIGlmICghb2spIHsKKyAgICAgICAgZ290byBmYWlsOworICAgIH0KKworICAgIG9rID0gcHNhc2ltX2Rlc2VyaWFsaXNlX3NpemVfdCgKKyAgICAgICAgJnJwb3MsICZycmVtYWluLAorICAgICAgICBvdXRwdXRfbGVuZ3RoKTsKKyAgICBpZiAoIW9rKSB7CisgICAgICAgIGdvdG8gZmFpbDsKKyAgICB9CisKK2ZhaWw6CisgICAgZnJlZShzZXJfcGFyYW1zKTsKKyAgICBmcmVlKHNlcl9yZXN1bHQpOworCisgICAgcmV0dXJuIHN0YXR1czsKK30KKworCitwc2Ffc3RhdHVzX3QgcHNhX2NpcGhlcl9lbmNyeXB0X3NldHVwKAorICAgIHBzYV9jaXBoZXJfb3BlcmF0aW9uX3QgKm9wZXJhdGlvbiwKKyAgICBtYmVkdGxzX3N2Y19rZXlfaWRfdCBrZXksCisgICAgcHNhX2FsZ29yaXRobV90IGFsZworICAgICkKK3sKKyAgICB1aW50OF90ICpzZXJfcGFyYW1zID0gTlVMTDsKKyAgICB1aW50OF90ICpzZXJfcmVzdWx0ID0gTlVMTDsKKyAgICBzaXplX3QgcmVzdWx0X2xlbmd0aDsKKyAgICBwc2Ffc3RhdHVzX3Qgc3RhdHVzID0gUFNBX0VSUk9SX0NPUlJVUFRJT05fREVURUNURUQ7CisKKyAgICBzaXplX3QgbmVlZGVkID0KKyAgICAgICAgcHNhc2ltX3NlcmlhbGlzZV9iZWdpbl9uZWVkcygpICsKKyAgICAgICAgcHNhc2ltX3NlcmlhbGlzZV9wc2FfY2lwaGVyX29wZXJhdGlvbl90X25lZWRzKCpvcGVyYXRpb24pICsKKyAgICAgICAgcHNhc2ltX3NlcmlhbGlzZV9tYmVkdGxzX3N2Y19rZXlfaWRfdF9uZWVkcyhrZXkpICsKKyAgICAgICAgcHNhc2ltX3NlcmlhbGlzZV9wc2FfYWxnb3JpdGhtX3RfbmVlZHMoYWxnKTsKKworICAgIHNlcl9wYXJhbXMgPSBtYWxsb2MobmVlZGVkKTsKKyAgICBpZiAoc2VyX3BhcmFtcyA9PSBOVUxMKSB7CisgICAgICAgIHN0YXR1cyA9IFBTQV9FUlJPUl9JTlNVRkZJQ0lFTlRfTUVNT1JZOworICAgICAgICBnb3RvIGZhaWw7CisgICAgfQorCisgICAgdWludDhfdCAqcG9zID0gc2VyX3BhcmFtczsKKyAgICBzaXplX3QgcmVtYWluaW5nID0gbmVlZGVkOworICAgIGludCBvazsKKyAgICBvayA9IHBzYXNpbV9zZXJpYWxpc2VfYmVnaW4oJnBvcywgJnJlbWFpbmluZyk7CisgICAgaWYgKCFvaykgeworICAgICAgICBnb3RvIGZhaWw7CisgICAgfQorICAgIG9rID0gcHNhc2ltX3NlcmlhbGlzZV9wc2FfY2lwaGVyX29wZXJhdGlvbl90KAorICAgICAgICAmcG9zLCAmcmVtYWluaW5nLAorICAgICAgICAqb3BlcmF0aW9uKTsKKyAgICBpZiAoIW9rKSB7CisgICAgICAgIGdvdG8gZmFpbDsKKyAgICB9CisgICAgb2sgPSBwc2FzaW1fc2VyaWFsaXNlX21iZWR0bHNfc3ZjX2tleV9pZF90KAorICAgICAgICAmcG9zLCAmcmVtYWluaW5nLAorICAgICAgICBrZXkpOworICAgIGlmICghb2spIHsKKyAgICAgICAgZ290byBmYWlsOworICAgIH0KKyAgICBvayA9IHBzYXNpbV9zZXJpYWxpc2VfcHNhX2FsZ29yaXRobV90KAorICAgICAgICAmcG9zLCAmcmVtYWluaW5nLAorICAgICAgICBhbGcpOworICAgIGlmICghb2spIHsKKyAgICAgICAgZ290byBmYWlsOworICAgIH0KKworICAgIG9rID0gcHNhX2NyeXB0b19jYWxsKFBTQV9DSVBIRVJfRU5DUllQVF9TRVRVUCwKKyAgICAgICAgICAgICAgICAgICAgICAgICBzZXJfcGFyYW1zLCAoc2l6ZV90KSAocG9zIC0gc2VyX3BhcmFtcyksICZzZXJfcmVzdWx0LCAmcmVzdWx0X2xlbmd0aCk7CisgICAgaWYgKCFvaykgeworICAgICAgICBwcmludGYoIlBTQV9DSVBIRVJfRU5DUllQVF9TRVRVUCBzZXJ2ZXIgY2FsbCBmYWlsZWRcbiIpOworICAgICAgICBnb3RvIGZhaWw7CisgICAgfQorCisgICAgdWludDhfdCAqcnBvcyA9IHNlcl9yZXN1bHQ7CisgICAgc2l6ZV90IHJyZW1haW4gPSByZXN1bHRfbGVuZ3RoOworCisgICAgb2sgPSBwc2FzaW1fZGVzZXJpYWxpc2VfYmVnaW4oJnJwb3MsICZycmVtYWluKTsKKyAgICBpZiAoIW9rKSB7CisgICAgICAgIGdvdG8gZmFpbDsKKyAgICB9CisKKyAgICBvayA9IHBzYXNpbV9kZXNlcmlhbGlzZV9wc2Ffc3RhdHVzX3QoCisgICAgICAgICZycG9zLCAmcnJlbWFpbiwKKyAgICAgICAgJnN0YXR1cyk7CisgICAgaWYgKCFvaykgeworICAgICAgICBnb3RvIGZhaWw7CisgICAgfQorCisgICAgb2sgPSBwc2FzaW1fZGVzZXJpYWxpc2VfcHNhX2NpcGhlcl9vcGVyYXRpb25fdCgKKyAgICAgICAgJnJwb3MsICZycmVtYWluLAorICAgICAgICBvcGVyYXRpb24pOworICAgIGlmICghb2spIHsKKyAgICAgICAgZ290byBmYWlsOworICAgIH0KKworZmFpbDoKKyAgICBmcmVlKHNlcl9wYXJhbXMpOworICAgIGZyZWUoc2VyX3Jlc3VsdCk7CisKKyAgICByZXR1cm4gc3RhdHVzOworfQorCisKK3BzYV9zdGF0dXNfdCBwc2FfY2lwaGVyX2ZpbmlzaCgKKyAgICBwc2FfY2lwaGVyX29wZXJhdGlvbl90ICpvcGVyYXRpb24sCisgICAgdWludDhfdCAqb3V0cHV0LCBzaXplX3QgIG91dHB1dF9zaXplLAorICAgIHNpemVfdCAqb3V0cHV0X2xlbmd0aAorICAgICkKK3sKKyAgICB1aW50OF90ICpzZXJfcGFyYW1zID0gTlVMTDsKKyAgICB1aW50OF90ICpzZXJfcmVzdWx0ID0gTlVMTDsKKyAgICBzaXplX3QgcmVzdWx0X2xlbmd0aDsKKyAgICBwc2Ffc3RhdHVzX3Qgc3RhdHVzID0gUFNBX0VSUk9SX0NPUlJVUFRJT05fREVURUNURUQ7CisKKyAgICBzaXplX3QgbmVlZGVkID0KKyAgICAgICAgcHNhc2ltX3NlcmlhbGlzZV9iZWdpbl9uZWVkcygpICsKKyAgICAgICAgcHNhc2ltX3NlcmlhbGlzZV9wc2FfY2lwaGVyX29wZXJhdGlvbl90X25lZWRzKCpvcGVyYXRpb24pICsKKyAgICAgICAgcHNhc2ltX3NlcmlhbGlzZV9idWZmZXJfbmVlZHMob3V0cHV0LCBvdXRwdXRfc2l6ZSkgKworICAgICAgICBwc2FzaW1fc2VyaWFsaXNlX3NpemVfdF9uZWVkcygqb3V0cHV0X2xlbmd0aCk7CisKKyAgICBzZXJfcGFyYW1zID0gbWFsbG9jKG5lZWRlZCk7CisgICAgaWYgKHNlcl9wYXJhbXMgPT0gTlVMTCkgeworICAgICAgICBzdGF0dXMgPSBQU0FfRVJST1JfSU5TVUZGSUNJRU5UX01FTU9SWTsKKyAgICAgICAgZ290byBmYWlsOworICAgIH0KKworICAgIHVpbnQ4X3QgKnBvcyA9IHNlcl9wYXJhbXM7CisgICAgc2l6ZV90IHJlbWFpbmluZyA9IG5lZWRlZDsKKyAgICBpbnQgb2s7CisgICAgb2sgPSBwc2FzaW1fc2VyaWFsaXNlX2JlZ2luKCZwb3MsICZyZW1haW5pbmcpOworICAgIGlmICghb2spIHsKKyAgICAgICAgZ290byBmYWlsOworICAgIH0KKyAgICBvayA9IHBzYXNpbV9zZXJpYWxpc2VfcHNhX2NpcGhlcl9vcGVyYXRpb25fdCgKKyAgICAgICAgJnBvcywgJnJlbWFpbmluZywKKyAgICAgICAgKm9wZXJhdGlvbik7CisgICAgaWYgKCFvaykgeworICAgICAgICBnb3RvIGZhaWw7CisgICAgfQorICAgIG9rID0gcHNhc2ltX3NlcmlhbGlzZV9idWZmZXIoCisgICAgICAgICZwb3MsICZyZW1haW5pbmcsCisgICAgICAgIG91dHB1dCwgb3V0cHV0X3NpemUpOworICAgIGlmICghb2spIHsKKyAgICAgICAgZ290byBmYWlsOworICAgIH0KKyAgICBvayA9IHBzYXNpbV9zZXJpYWxpc2Vfc2l6ZV90KAorICAgICAgICAmcG9zLCAmcmVtYWluaW5nLAorICAgICAgICAqb3V0cHV0X2xlbmd0aCk7CisgICAgaWYgKCFvaykgeworICAgICAgICBnb3RvIGZhaWw7CisgICAgfQorCisgICAgb2sgPSBwc2FfY3J5cHRvX2NhbGwoUFNBX0NJUEhFUl9GSU5JU0gsCisgICAgICAgICAgICAgICAgICAgICAgICAgc2VyX3BhcmFtcywgKHNpemVfdCkgKHBvcyAtIHNlcl9wYXJhbXMpLCAmc2VyX3Jlc3VsdCwgJnJlc3VsdF9sZW5ndGgpOworICAgIGlmICghb2spIHsKKyAgICAgICAgcHJpbnRmKCJQU0FfQ0lQSEVSX0ZJTklTSCBzZXJ2ZXIgY2FsbCBmYWlsZWRcbiIpOworICAgICAgICBnb3RvIGZhaWw7CisgICAgfQorCisgICAgdWludDhfdCAqcnBvcyA9IHNlcl9yZXN1bHQ7CisgICAgc2l6ZV90IHJyZW1haW4gPSByZXN1bHRfbGVuZ3RoOworCisgICAgb2sgPSBwc2FzaW1fZGVzZXJpYWxpc2VfYmVnaW4oJnJwb3MsICZycmVtYWluKTsKKyAgICBpZiAoIW9rKSB7CisgICAgICAgIGdvdG8gZmFpbDsKKyAgICB9CisKKyAgICBvayA9IHBzYXNpbV9kZXNlcmlhbGlzZV9wc2Ffc3RhdHVzX3QoCisgICAgICAgICZycG9zLCAmcnJlbWFpbiwKKyAgICAgICAgJnN0YXR1cyk7CisgICAgaWYgKCFvaykgeworICAgICAgICBnb3RvIGZhaWw7CisgICAgfQorCisgICAgb2sgPSBwc2FzaW1fZGVzZXJpYWxpc2VfcHNhX2NpcGhlcl9vcGVyYXRpb25fdCgKKyAgICAgICAgJnJwb3MsICZycmVtYWluLAorICAgICAgICBvcGVyYXRpb24pOworICAgIGlmICghb2spIHsKKyAgICAgICAgZ290byBmYWlsOworICAgIH0KKworICAgIG9rID0gcHNhc2ltX2Rlc2VyaWFsaXNlX3JldHVybl9idWZmZXIoCisgICAgICAgICZycG9zLCAmcnJlbWFpbiwKKyAgICAgICAgb3V0cHV0LCBvdXRwdXRfc2l6ZSk7CisgICAgaWYgKCFvaykgeworICAgICAgICBnb3RvIGZhaWw7CisgICAgfQorCisgICAgb2sgPSBwc2FzaW1fZGVzZXJpYWxpc2Vfc2l6ZV90KAorICAgICAgICAmcnBvcywgJnJyZW1haW4sCisgICAgICAgIG91dHB1dF9sZW5ndGgpOworICAgIGlmICghb2spIHsKKyAgICAgICAgZ290byBmYWlsOworICAgIH0KKworZmFpbDoKKyAgICBmcmVlKHNlcl9wYXJhbXMpOworICAgIGZyZWUoc2VyX3Jlc3VsdCk7CisKKyAgICByZXR1cm4gc3RhdHVzOworfQorCisKK3BzYV9zdGF0dXNfdCBwc2FfY2lwaGVyX2dlbmVyYXRlX2l2KAorICAgIHBzYV9jaXBoZXJfb3BlcmF0aW9uX3QgKm9wZXJhdGlvbiwKKyAgICB1aW50OF90ICppdiwgc2l6ZV90ICBpdl9zaXplLAorICAgIHNpemVfdCAqaXZfbGVuZ3RoCisgICAgKQoreworICAgIHVpbnQ4X3QgKnNlcl9wYXJhbXMgPSBOVUxMOworICAgIHVpbnQ4X3QgKnNlcl9yZXN1bHQgPSBOVUxMOworICAgIHNpemVfdCByZXN1bHRfbGVuZ3RoOworICAgIHBzYV9zdGF0dXNfdCBzdGF0dXMgPSBQU0FfRVJST1JfQ09SUlVQVElPTl9ERVRFQ1RFRDsKKworICAgIHNpemVfdCBuZWVkZWQgPQorICAgICAgICBwc2FzaW1fc2VyaWFsaXNlX2JlZ2luX25lZWRzKCkgKworICAgICAgICBwc2FzaW1fc2VyaWFsaXNlX3BzYV9jaXBoZXJfb3BlcmF0aW9uX3RfbmVlZHMoKm9wZXJhdGlvbikgKworICAgICAgICBwc2FzaW1fc2VyaWFsaXNlX2J1ZmZlcl9uZWVkcyhpdiwgaXZfc2l6ZSkgKworICAgICAgICBwc2FzaW1fc2VyaWFsaXNlX3NpemVfdF9uZWVkcygqaXZfbGVuZ3RoKTsKKworICAgIHNlcl9wYXJhbXMgPSBtYWxsb2MobmVlZGVkKTsKKyAgICBpZiAoc2VyX3BhcmFtcyA9PSBOVUxMKSB7CisgICAgICAgIHN0YXR1cyA9IFBTQV9FUlJPUl9JTlNVRkZJQ0lFTlRfTUVNT1JZOworICAgICAgICBnb3RvIGZhaWw7CisgICAgfQorCisgICAgdWludDhfdCAqcG9zID0gc2VyX3BhcmFtczsKKyAgICBzaXplX3QgcmVtYWluaW5nID0gbmVlZGVkOworICAgIGludCBvazsKKyAgICBvayA9IHBzYXNpbV9zZXJpYWxpc2VfYmVnaW4oJnBvcywgJnJlbWFpbmluZyk7CisgICAgaWYgKCFvaykgeworICAgICAgICBnb3RvIGZhaWw7CisgICAgfQorICAgIG9rID0gcHNhc2ltX3NlcmlhbGlzZV9wc2FfY2lwaGVyX29wZXJhdGlvbl90KAorICAgICAgICAmcG9zLCAmcmVtYWluaW5nLAorICAgICAgICAqb3BlcmF0aW9uKTsKKyAgICBpZiAoIW9rKSB7CisgICAgICAgIGdvdG8gZmFpbDsKKyAgICB9CisgICAgb2sgPSBwc2FzaW1fc2VyaWFsaXNlX2J1ZmZlcigKKyAgICAgICAgJnBvcywgJnJlbWFpbmluZywKKyAgICAgICAgaXYsIGl2X3NpemUpOworICAgIGlmICghb2spIHsKKyAgICAgICAgZ290byBmYWlsOworICAgIH0KKyAgICBvayA9IHBzYXNpbV9zZXJpYWxpc2Vfc2l6ZV90KAorICAgICAgICAmcG9zLCAmcmVtYWluaW5nLAorICAgICAgICAqaXZfbGVuZ3RoKTsKKyAgICBpZiAoIW9rKSB7CisgICAgICAgIGdvdG8gZmFpbDsKKyAgICB9CisKKyAgICBvayA9IHBzYV9jcnlwdG9fY2FsbChQU0FfQ0lQSEVSX0dFTkVSQVRFX0lWLAorICAgICAgICAgICAgICAgICAgICAgICAgIHNlcl9wYXJhbXMsIChzaXplX3QpIChwb3MgLSBzZXJfcGFyYW1zKSwgJnNlcl9yZXN1bHQsICZyZXN1bHRfbGVuZ3RoKTsKKyAgICBpZiAoIW9rKSB7CisgICAgICAgIHByaW50ZigiUFNBX0NJUEhFUl9HRU5FUkFURV9JViBzZXJ2ZXIgY2FsbCBmYWlsZWRcbiIpOworICAgICAgICBnb3RvIGZhaWw7CisgICAgfQorCisgICAgdWludDhfdCAqcnBvcyA9IHNlcl9yZXN1bHQ7CisgICAgc2l6ZV90IHJyZW1haW4gPSByZXN1bHRfbGVuZ3RoOworCisgICAgb2sgPSBwc2FzaW1fZGVzZXJpYWxpc2VfYmVnaW4oJnJwb3MsICZycmVtYWluKTsKKyAgICBpZiAoIW9rKSB7CisgICAgICAgIGdvdG8gZmFpbDsKKyAgICB9CisKKyAgICBvayA9IHBzYXNpbV9kZXNlcmlhbGlzZV9wc2Ffc3RhdHVzX3QoCisgICAgICAgICZycG9zLCAmcnJlbWFpbiwKKyAgICAgICAgJnN0YXR1cyk7CisgICAgaWYgKCFvaykgeworICAgICAgICBnb3RvIGZhaWw7CisgICAgfQorCisgICAgb2sgPSBwc2FzaW1fZGVzZXJpYWxpc2VfcHNhX2NpcGhlcl9vcGVyYXRpb25fdCgKKyAgICAgICAgJnJwb3MsICZycmVtYWluLAorICAgICAgICBvcGVyYXRpb24pOworICAgIGlmICghb2spIHsKKyAgICAgICAgZ290byBmYWlsOworICAgIH0KKworICAgIG9rID0gcHNhc2ltX2Rlc2VyaWFsaXNlX3JldHVybl9idWZmZXIoCisgICAgICAgICZycG9zLCAmcnJlbWFpbiwKKyAgICAgICAgaXYsIGl2X3NpemUpOworICAgIGlmICghb2spIHsKKyAgICAgICAgZ290byBmYWlsOworICAgIH0KKworICAgIG9rID0gcHNhc2ltX2Rlc2VyaWFsaXNlX3NpemVfdCgKKyAgICAgICAgJnJwb3MsICZycmVtYWluLAorICAgICAgICBpdl9sZW5ndGgpOworICAgIGlmICghb2spIHsKKyAgICAgICAgZ290byBmYWlsOworICAgIH0KKworZmFpbDoKKyAgICBmcmVlKHNlcl9wYXJhbXMpOworICAgIGZyZWUoc2VyX3Jlc3VsdCk7CisKKyAgICByZXR1cm4gc3RhdHVzOworfQorCisKK3BzYV9zdGF0dXNfdCBwc2FfY2lwaGVyX3NldF9pdigKKyAgICBwc2FfY2lwaGVyX29wZXJhdGlvbl90ICpvcGVyYXRpb24sCisgICAgY29uc3QgdWludDhfdCAqaXYsIHNpemVfdCAgaXZfbGVuZ3RoCisgICAgKQoreworICAgIHVpbnQ4X3QgKnNlcl9wYXJhbXMgPSBOVUxMOworICAgIHVpbnQ4X3QgKnNlcl9yZXN1bHQgPSBOVUxMOworICAgIHNpemVfdCByZXN1bHRfbGVuZ3RoOworICAgIHBzYV9zdGF0dXNfdCBzdGF0dXMgPSBQU0FfRVJST1JfQ09SUlVQVElPTl9ERVRFQ1RFRDsKKworICAgIHNpemVfdCBuZWVkZWQgPQorICAgICAgICBwc2FzaW1fc2VyaWFsaXNlX2JlZ2luX25lZWRzKCkgKworICAgICAgICBwc2FzaW1fc2VyaWFsaXNlX3BzYV9jaXBoZXJfb3BlcmF0aW9uX3RfbmVlZHMoKm9wZXJhdGlvbikgKworICAgICAgICBwc2FzaW1fc2VyaWFsaXNlX2J1ZmZlcl9uZWVkcyhpdiwgaXZfbGVuZ3RoKTsKKworICAgIHNlcl9wYXJhbXMgPSBtYWxsb2MobmVlZGVkKTsKKyAgICBpZiAoc2VyX3BhcmFtcyA9PSBOVUxMKSB7CisgICAgICAgIHN0YXR1cyA9IFBTQV9FUlJPUl9JTlNVRkZJQ0lFTlRfTUVNT1JZOworICAgICAgICBnb3RvIGZhaWw7CisgICAgfQorCisgICAgdWludDhfdCAqcG9zID0gc2VyX3BhcmFtczsKKyAgICBzaXplX3QgcmVtYWluaW5nID0gbmVlZGVkOworICAgIGludCBvazsKKyAgICBvayA9IHBzYXNpbV9zZXJpYWxpc2VfYmVnaW4oJnBvcywgJnJlbWFpbmluZyk7CisgICAgaWYgKCFvaykgeworICAgICAgICBnb3RvIGZhaWw7CisgICAgfQorICAgIG9rID0gcHNhc2ltX3NlcmlhbGlzZV9wc2FfY2lwaGVyX29wZXJhdGlvbl90KAorICAgICAgICAmcG9zLCAmcmVtYWluaW5nLAorICAgICAgICAqb3BlcmF0aW9uKTsKKyAgICBpZiAoIW9rKSB7CisgICAgICAgIGdvdG8gZmFpbDsKKyAgICB9CisgICAgb2sgPSBwc2FzaW1fc2VyaWFsaXNlX2J1ZmZlcigKKyAgICAgICAgJnBvcywgJnJlbWFpbmluZywKKyAgICAgICAgaXYsIGl2X2xlbmd0aCk7CisgICAgaWYgKCFvaykgeworICAgICAgICBnb3RvIGZhaWw7CisgICAgfQorCisgICAgb2sgPSBwc2FfY3J5cHRvX2NhbGwoUFNBX0NJUEhFUl9TRVRfSVYsCisgICAgICAgICAgICAgICAgICAgICAgICAgc2VyX3BhcmFtcywgKHNpemVfdCkgKHBvcyAtIHNlcl9wYXJhbXMpLCAmc2VyX3Jlc3VsdCwgJnJlc3VsdF9sZW5ndGgpOworICAgIGlmICghb2spIHsKKyAgICAgICAgcHJpbnRmKCJQU0FfQ0lQSEVSX1NFVF9JViBzZXJ2ZXIgY2FsbCBmYWlsZWRcbiIpOworICAgICAgICBnb3RvIGZhaWw7CisgICAgfQorCisgICAgdWludDhfdCAqcnBvcyA9IHNlcl9yZXN1bHQ7CisgICAgc2l6ZV90IHJyZW1haW4gPSByZXN1bHRfbGVuZ3RoOworCisgICAgb2sgPSBwc2FzaW1fZGVzZXJpYWxpc2VfYmVnaW4oJnJwb3MsICZycmVtYWluKTsKKyAgICBpZiAoIW9rKSB7CisgICAgICAgIGdvdG8gZmFpbDsKKyAgICB9CisKKyAgICBvayA9IHBzYXNpbV9kZXNlcmlhbGlzZV9wc2Ffc3RhdHVzX3QoCisgICAgICAgICZycG9zLCAmcnJlbWFpbiwKKyAgICAgICAgJnN0YXR1cyk7CisgICAgaWYgKCFvaykgeworICAgICAgICBnb3RvIGZhaWw7CisgICAgfQorCisgICAgb2sgPSBwc2FzaW1fZGVzZXJpYWxpc2VfcHNhX2NpcGhlcl9vcGVyYXRpb25fdCgKKyAgICAgICAgJnJwb3MsICZycmVtYWluLAorICAgICAgICBvcGVyYXRpb24pOworICAgIGlmICghb2spIHsKKyAgICAgICAgZ290byBmYWlsOworICAgIH0KKworZmFpbDoKKyAgICBmcmVlKHNlcl9wYXJhbXMpOworICAgIGZyZWUoc2VyX3Jlc3VsdCk7CisKKyAgICByZXR1cm4gc3RhdHVzOworfQorCisKK3BzYV9zdGF0dXNfdCBwc2FfY2lwaGVyX3VwZGF0ZSgKKyAgICBwc2FfY2lwaGVyX29wZXJhdGlvbl90ICpvcGVyYXRpb24sCisgICAgY29uc3QgdWludDhfdCAqaW5wdXQsIHNpemVfdCAgaW5wdXRfbGVuZ3RoLAorICAgIHVpbnQ4X3QgKm91dHB1dCwgc2l6ZV90ICBvdXRwdXRfc2l6ZSwKKyAgICBzaXplX3QgKm91dHB1dF9sZW5ndGgKKyAgICApCit7CisgICAgdWludDhfdCAqc2VyX3BhcmFtcyA9IE5VTEw7CisgICAgdWludDhfdCAqc2VyX3Jlc3VsdCA9IE5VTEw7CisgICAgc2l6ZV90IHJlc3VsdF9sZW5ndGg7CisgICAgcHNhX3N0YXR1c190IHN0YXR1cyA9IFBTQV9FUlJPUl9DT1JSVVBUSU9OX0RFVEVDVEVEOworCisgICAgc2l6ZV90IG5lZWRlZCA9CisgICAgICAgIHBzYXNpbV9zZXJpYWxpc2VfYmVnaW5fbmVlZHMoKSArCisgICAgICAgIHBzYXNpbV9zZXJpYWxpc2VfcHNhX2NpcGhlcl9vcGVyYXRpb25fdF9uZWVkcygqb3BlcmF0aW9uKSArCisgICAgICAgIHBzYXNpbV9zZXJpYWxpc2VfYnVmZmVyX25lZWRzKGlucHV0LCBpbnB1dF9sZW5ndGgpICsKKyAgICAgICAgcHNhc2ltX3NlcmlhbGlzZV9idWZmZXJfbmVlZHMob3V0cHV0LCBvdXRwdXRfc2l6ZSkgKworICAgICAgICBwc2FzaW1fc2VyaWFsaXNlX3NpemVfdF9uZWVkcygqb3V0cHV0X2xlbmd0aCk7CisKKyAgICBzZXJfcGFyYW1zID0gbWFsbG9jKG5lZWRlZCk7CisgICAgaWYgKHNlcl9wYXJhbXMgPT0gTlVMTCkgeworICAgICAgICBzdGF0dXMgPSBQU0FfRVJST1JfSU5TVUZGSUNJRU5UX01FTU9SWTsKKyAgICAgICAgZ290byBmYWlsOworICAgIH0KKworICAgIHVpbnQ4X3QgKnBvcyA9IHNlcl9wYXJhbXM7CisgICAgc2l6ZV90IHJlbWFpbmluZyA9IG5lZWRlZDsKKyAgICBpbnQgb2s7CisgICAgb2sgPSBwc2FzaW1fc2VyaWFsaXNlX2JlZ2luKCZwb3MsICZyZW1haW5pbmcpOworICAgIGlmICghb2spIHsKKyAgICAgICAgZ290byBmYWlsOworICAgIH0KKyAgICBvayA9IHBzYXNpbV9zZXJpYWxpc2VfcHNhX2NpcGhlcl9vcGVyYXRpb25fdCgKKyAgICAgICAgJnBvcywgJnJlbWFpbmluZywKKyAgICAgICAgKm9wZXJhdGlvbik7CisgICAgaWYgKCFvaykgeworICAgICAgICBnb3RvIGZhaWw7CisgICAgfQorICAgIG9rID0gcHNhc2ltX3NlcmlhbGlzZV9idWZmZXIoCisgICAgICAgICZwb3MsICZyZW1haW5pbmcsCisgICAgICAgIGlucHV0LCBpbnB1dF9sZW5ndGgpOworICAgIGlmICghb2spIHsKKyAgICAgICAgZ290byBmYWlsOworICAgIH0KKyAgICBvayA9IHBzYXNpbV9zZXJpYWxpc2VfYnVmZmVyKAorICAgICAgICAmcG9zLCAmcmVtYWluaW5nLAorICAgICAgICBvdXRwdXQsIG91dHB1dF9zaXplKTsKKyAgICBpZiAoIW9rKSB7CisgICAgICAgIGdvdG8gZmFpbDsKKyAgICB9CisgICAgb2sgPSBwc2FzaW1fc2VyaWFsaXNlX3NpemVfdCgKKyAgICAgICAgJnBvcywgJnJlbWFpbmluZywKKyAgICAgICAgKm91dHB1dF9sZW5ndGgpOworICAgIGlmICghb2spIHsKKyAgICAgICAgZ290byBmYWlsOworICAgIH0KKworICAgIG9rID0gcHNhX2NyeXB0b19jYWxsKFBTQV9DSVBIRVJfVVBEQVRFLAorICAgICAgICAgICAgICAgICAgICAgICAgIHNlcl9wYXJhbXMsIChzaXplX3QpIChwb3MgLSBzZXJfcGFyYW1zKSwgJnNlcl9yZXN1bHQsICZyZXN1bHRfbGVuZ3RoKTsKKyAgICBpZiAoIW9rKSB7CisgICAgICAgIHByaW50ZigiUFNBX0NJUEhFUl9VUERBVEUgc2VydmVyIGNhbGwgZmFpbGVkXG4iKTsKKyAgICAgICAgZ290byBmYWlsOworICAgIH0KKworICAgIHVpbnQ4X3QgKnJwb3MgPSBzZXJfcmVzdWx0OworICAgIHNpemVfdCBycmVtYWluID0gcmVzdWx0X2xlbmd0aDsKKworICAgIG9rID0gcHNhc2ltX2Rlc2VyaWFsaXNlX2JlZ2luKCZycG9zLCAmcnJlbWFpbik7CisgICAgaWYgKCFvaykgeworICAgICAgICBnb3RvIGZhaWw7CisgICAgfQorCisgICAgb2sgPSBwc2FzaW1fZGVzZXJpYWxpc2VfcHNhX3N0YXR1c190KAorICAgICAgICAmcnBvcywgJnJyZW1haW4sCisgICAgICAgICZzdGF0dXMpOworICAgIGlmICghb2spIHsKKyAgICAgICAgZ290byBmYWlsOworICAgIH0KKworICAgIG9rID0gcHNhc2ltX2Rlc2VyaWFsaXNlX3BzYV9jaXBoZXJfb3BlcmF0aW9uX3QoCisgICAgICAgICZycG9zLCAmcnJlbWFpbiwKKyAgICAgICAgb3BlcmF0aW9uKTsKKyAgICBpZiAoIW9rKSB7CisgICAgICAgIGdvdG8gZmFpbDsKKyAgICB9CisKKyAgICBvayA9IHBzYXNpbV9kZXNlcmlhbGlzZV9yZXR1cm5fYnVmZmVyKAorICAgICAgICAmcnBvcywgJnJyZW1haW4sCisgICAgICAgIG91dHB1dCwgb3V0cHV0X3NpemUpOworICAgIGlmICghb2spIHsKKyAgICAgICAgZ290byBmYWlsOworICAgIH0KKworICAgIG9rID0gcHNhc2ltX2Rlc2VyaWFsaXNlX3NpemVfdCgKKyAgICAgICAgJnJwb3MsICZycmVtYWluLAorICAgICAgICBvdXRwdXRfbGVuZ3RoKTsKKyAgICBpZiAoIW9rKSB7CisgICAgICAgIGdvdG8gZmFpbDsKKyAgICB9CisKK2ZhaWw6CisgICAgZnJlZShzZXJfcGFyYW1zKTsKKyAgICBmcmVlKHNlcl9yZXN1bHQpOworCisgICAgcmV0dXJuIHN0YXR1czsKK30KKworCitwc2Ffc3RhdHVzX3QgcHNhX2NvcHlfa2V5KAorICAgIG1iZWR0bHNfc3ZjX2tleV9pZF90IHNvdXJjZV9rZXksCisgICAgY29uc3QgcHNhX2tleV9hdHRyaWJ1dGVzX3QgKmF0dHJpYnV0ZXMsCisgICAgbWJlZHRsc19zdmNfa2V5X2lkX3QgKnRhcmdldF9rZXkKKyAgICApCit7CisgICAgdWludDhfdCAqc2VyX3BhcmFtcyA9IE5VTEw7CisgICAgdWludDhfdCAqc2VyX3Jlc3VsdCA9IE5VTEw7CisgICAgc2l6ZV90IHJlc3VsdF9sZW5ndGg7CisgICAgcHNhX3N0YXR1c190IHN0YXR1cyA9IFBTQV9FUlJPUl9DT1JSVVBUSU9OX0RFVEVDVEVEOworCisgICAgc2l6ZV90IG5lZWRlZCA9CisgICAgICAgIHBzYXNpbV9zZXJpYWxpc2VfYmVnaW5fbmVlZHMoKSArCisgICAgICAgIHBzYXNpbV9zZXJpYWxpc2VfbWJlZHRsc19zdmNfa2V5X2lkX3RfbmVlZHMoc291cmNlX2tleSkgKworICAgICAgICBwc2FzaW1fc2VyaWFsaXNlX3BzYV9rZXlfYXR0cmlidXRlc190X25lZWRzKCphdHRyaWJ1dGVzKSArCisgICAgICAgIHBzYXNpbV9zZXJpYWxpc2VfbWJlZHRsc19zdmNfa2V5X2lkX3RfbmVlZHMoKnRhcmdldF9rZXkpOworCisgICAgc2VyX3BhcmFtcyA9IG1hbGxvYyhuZWVkZWQpOworICAgIGlmIChzZXJfcGFyYW1zID09IE5VTEwpIHsKKyAgICAgICAgc3RhdHVzID0gUFNBX0VSUk9SX0lOU1VGRklDSUVOVF9NRU1PUlk7CisgICAgICAgIGdvdG8gZmFpbDsKKyAgICB9CisKKyAgICB1aW50OF90ICpwb3MgPSBzZXJfcGFyYW1zOworICAgIHNpemVfdCByZW1haW5pbmcgPSBuZWVkZWQ7CisgICAgaW50IG9rOworICAgIG9rID0gcHNhc2ltX3NlcmlhbGlzZV9iZWdpbigmcG9zLCAmcmVtYWluaW5nKTsKKyAgICBpZiAoIW9rKSB7CisgICAgICAgIGdvdG8gZmFpbDsKKyAgICB9CisgICAgb2sgPSBwc2FzaW1fc2VyaWFsaXNlX21iZWR0bHNfc3ZjX2tleV9pZF90KAorICAgICAgICAmcG9zLCAmcmVtYWluaW5nLAorICAgICAgICBzb3VyY2Vfa2V5KTsKKyAgICBpZiAoIW9rKSB7CisgICAgICAgIGdvdG8gZmFpbDsKKyAgICB9CisgICAgb2sgPSBwc2FzaW1fc2VyaWFsaXNlX3BzYV9rZXlfYXR0cmlidXRlc190KAorICAgICAgICAmcG9zLCAmcmVtYWluaW5nLAorICAgICAgICAqYXR0cmlidXRlcyk7CisgICAgaWYgKCFvaykgeworICAgICAgICBnb3RvIGZhaWw7CisgICAgfQorICAgIG9rID0gcHNhc2ltX3NlcmlhbGlzZV9tYmVkdGxzX3N2Y19rZXlfaWRfdCgKKyAgICAgICAgJnBvcywgJnJlbWFpbmluZywKKyAgICAgICAgKnRhcmdldF9rZXkpOworICAgIGlmICghb2spIHsKKyAgICAgICAgZ290byBmYWlsOworICAgIH0KKworICAgIG9rID0gcHNhX2NyeXB0b19jYWxsKFBTQV9DT1BZX0tFWSwKKyAgICAgICAgICAgICAgICAgICAgICAgICBzZXJfcGFyYW1zLCAoc2l6ZV90KSAocG9zIC0gc2VyX3BhcmFtcyksICZzZXJfcmVzdWx0LCAmcmVzdWx0X2xlbmd0aCk7CisgICAgaWYgKCFvaykgeworICAgICAgICBwcmludGYoIlBTQV9DT1BZX0tFWSBzZXJ2ZXIgY2FsbCBmYWlsZWRcbiIpOworICAgICAgICBnb3RvIGZhaWw7CisgICAgfQorCisgICAgdWludDhfdCAqcnBvcyA9IHNlcl9yZXN1bHQ7CisgICAgc2l6ZV90IHJyZW1haW4gPSByZXN1bHRfbGVuZ3RoOworCisgICAgb2sgPSBwc2FzaW1fZGVzZXJpYWxpc2VfYmVnaW4oJnJwb3MsICZycmVtYWluKTsKKyAgICBpZiAoIW9rKSB7CisgICAgICAgIGdvdG8gZmFpbDsKKyAgICB9CisKKyAgICBvayA9IHBzYXNpbV9kZXNlcmlhbGlzZV9wc2Ffc3RhdHVzX3QoCisgICAgICAgICZycG9zLCAmcnJlbWFpbiwKKyAgICAgICAgJnN0YXR1cyk7CisgICAgaWYgKCFvaykgeworICAgICAgICBnb3RvIGZhaWw7CisgICAgfQorCisgICAgb2sgPSBwc2FzaW1fZGVzZXJpYWxpc2VfbWJlZHRsc19zdmNfa2V5X2lkX3QoCisgICAgICAgICZycG9zLCAmcnJlbWFpbiwKKyAgICAgICAgdGFyZ2V0X2tleSk7CisgICAgaWYgKCFvaykgeworICAgICAgICBnb3RvIGZhaWw7CisgICAgfQorCitmYWlsOgorICAgIGZyZWUoc2VyX3BhcmFtcyk7CisgICAgZnJlZShzZXJfcmVzdWx0KTsKIAogICAgIHJldHVybiBzdGF0dXM7CiB9CkBAIC0xMTM3LDQwICsyNDgwLDQzIEBACiAgICAgbWJlZHRsc19zdmNfa2V5X2lkX3Qga2V5CiAgICAgKQogewotICAgIHVpbnQ4X3QgKnBhcmFtcyA9IE5VTEw7Ci0gICAgdWludDhfdCAqcmVzdWx0ID0gTlVMTDsKKyAgICB1aW50OF90ICpzZXJfcGFyYW1zID0gTlVMTDsKKyAgICB1aW50OF90ICpzZXJfcmVzdWx0ID0gTlVMTDsKICAgICBzaXplX3QgcmVzdWx0X2xlbmd0aDsKICAgICBwc2Ffc3RhdHVzX3Qgc3RhdHVzID0gUFNBX0VSUk9SX0NPUlJVUFRJT05fREVURUNURUQ7CiAKLSAgICBzaXplX3QgbmVlZGVkID0gcHNhc2ltX3NlcmlhbGlzZV9iZWdpbl9uZWVkcygpICsKLSAgICAgICAgICAgICAgICAgICAgcHNhc2ltX3NlcmlhbGlzZV9tYmVkdGxzX3N2Y19rZXlfaWRfdF9uZWVkcyhrZXkpOworICAgIHNpemVfdCBuZWVkZWQgPQorICAgICAgICBwc2FzaW1fc2VyaWFsaXNlX2JlZ2luX25lZWRzKCkgKworICAgICAgICBwc2FzaW1fc2VyaWFsaXNlX21iZWR0bHNfc3ZjX2tleV9pZF90X25lZWRzKGtleSk7CiAKLSAgICBwYXJhbXMgPSBtYWxsb2MobmVlZGVkKTsKLSAgICBpZiAocGFyYW1zID09IE5VTEwpIHsKKyAgICBzZXJfcGFyYW1zID0gbWFsbG9jKG5lZWRlZCk7CisgICAgaWYgKHNlcl9wYXJhbXMgPT0gTlVMTCkgewogICAgICAgICBzdGF0dXMgPSBQU0FfRVJST1JfSU5TVUZGSUNJRU5UX01FTU9SWTsKICAgICAgICAgZ290byBmYWlsOwogICAgIH0KIAotICAgIHVpbnQ4X3QgKnBvcyA9IHBhcmFtczsKKyAgICB1aW50OF90ICpwb3MgPSBzZXJfcGFyYW1zOwogICAgIHNpemVfdCByZW1haW5pbmcgPSBuZWVkZWQ7CiAgICAgaW50IG9rOwogICAgIG9rID0gcHNhc2ltX3NlcmlhbGlzZV9iZWdpbigmcG9zLCAmcmVtYWluaW5nKTsKICAgICBpZiAoIW9rKSB7CiAgICAgICAgIGdvdG8gZmFpbDsKICAgICB9Ci0gICAgb2sgPSBwc2FzaW1fc2VyaWFsaXNlX21iZWR0bHNfc3ZjX2tleV9pZF90KCZwb3MsICZyZW1haW5pbmcsIGtleSk7CisgICAgb2sgPSBwc2FzaW1fc2VyaWFsaXNlX21iZWR0bHNfc3ZjX2tleV9pZF90KAorICAgICAgICAmcG9zLCAmcmVtYWluaW5nLAorICAgICAgICBrZXkpOwogICAgIGlmICghb2spIHsKICAgICAgICAgZ290byBmYWlsOwogICAgIH0KIAogICAgIG9rID0gcHNhX2NyeXB0b19jYWxsKFBTQV9ERVNUUk9ZX0tFWSwKLSAgICAgICAgICAgICAgICAgICAgICAgICBwYXJhbXMsIChzaXplX3QpIChwb3MgLSBwYXJhbXMpLCAmcmVzdWx0LCAmcmVzdWx0X2xlbmd0aCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgc2VyX3BhcmFtcywgKHNpemVfdCkgKHBvcyAtIHNlcl9wYXJhbXMpLCAmc2VyX3Jlc3VsdCwgJnJlc3VsdF9sZW5ndGgpOwogICAgIGlmICghb2spIHsKICAgICAgICAgcHJpbnRmKCJQU0FfREVTVFJPWV9LRVkgc2VydmVyIGNhbGwgZmFpbGVkXG4iKTsKICAgICAgICAgZ290byBmYWlsOwogICAgIH0KIAotICAgIHVpbnQ4X3QgKnJwb3MgPSByZXN1bHQ7CisgICAgdWludDhfdCAqcnBvcyA9IHNlcl9yZXN1bHQ7CiAgICAgc2l6ZV90IHJyZW1haW4gPSByZXN1bHRfbGVuZ3RoOwogCiAgICAgb2sgPSBwc2FzaW1fZGVzZXJpYWxpc2VfYmVnaW4oJnJwb3MsICZycmVtYWluKTsKQEAgLTExNzgsMTQgKzI1MjQsNDM2IEBACiAgICAgICAgIGdvdG8gZmFpbDsKICAgICB9CiAKLSAgICBvayA9IHBzYXNpbV9kZXNlcmlhbGlzZV9wc2Ffc3RhdHVzX3QoJnJwb3MsICZycmVtYWluLCAmc3RhdHVzKTsKKyAgICBvayA9IHBzYXNpbV9kZXNlcmlhbGlzZV9wc2Ffc3RhdHVzX3QoCisgICAgICAgICZycG9zLCAmcnJlbWFpbiwKKyAgICAgICAgJnN0YXR1cyk7CiAgICAgaWYgKCFvaykgewogICAgICAgICBnb3RvIGZhaWw7CiAgICAgfQogCiBmYWlsOgotICAgIGZyZWUocGFyYW1zKTsKLSAgICBmcmVlKHJlc3VsdCk7CisgICAgZnJlZShzZXJfcGFyYW1zKTsKKyAgICBmcmVlKHNlcl9yZXN1bHQpOworCisgICAgcmV0dXJuIHN0YXR1czsKK30KKworCitwc2Ffc3RhdHVzX3QgcHNhX2V4cG9ydF9rZXkoCisgICAgbWJlZHRsc19zdmNfa2V5X2lkX3Qga2V5LAorICAgIHVpbnQ4X3QgKmRhdGEsIHNpemVfdCAgZGF0YV9zaXplLAorICAgIHNpemVfdCAqZGF0YV9sZW5ndGgKKyAgICApCit7CisgICAgdWludDhfdCAqc2VyX3BhcmFtcyA9IE5VTEw7CisgICAgdWludDhfdCAqc2VyX3Jlc3VsdCA9IE5VTEw7CisgICAgc2l6ZV90IHJlc3VsdF9sZW5ndGg7CisgICAgcHNhX3N0YXR1c190IHN0YXR1cyA9IFBTQV9FUlJPUl9DT1JSVVBUSU9OX0RFVEVDVEVEOworCisgICAgc2l6ZV90IG5lZWRlZCA9CisgICAgICAgIHBzYXNpbV9zZXJpYWxpc2VfYmVnaW5fbmVlZHMoKSArCisgICAgICAgIHBzYXNpbV9zZXJpYWxpc2VfbWJlZHRsc19zdmNfa2V5X2lkX3RfbmVlZHMoa2V5KSArCisgICAgICAgIHBzYXNpbV9zZXJpYWxpc2VfYnVmZmVyX25lZWRzKGRhdGEsIGRhdGFfc2l6ZSkgKworICAgICAgICBwc2FzaW1fc2VyaWFsaXNlX3NpemVfdF9uZWVkcygqZGF0YV9sZW5ndGgpOworCisgICAgc2VyX3BhcmFtcyA9IG1hbGxvYyhuZWVkZWQpOworICAgIGlmIChzZXJfcGFyYW1zID09IE5VTEwpIHsKKyAgICAgICAgc3RhdHVzID0gUFNBX0VSUk9SX0lOU1VGRklDSUVOVF9NRU1PUlk7CisgICAgICAgIGdvdG8gZmFpbDsKKyAgICB9CisKKyAgICB1aW50OF90ICpwb3MgPSBzZXJfcGFyYW1zOworICAgIHNpemVfdCByZW1haW5pbmcgPSBuZWVkZWQ7CisgICAgaW50IG9rOworICAgIG9rID0gcHNhc2ltX3NlcmlhbGlzZV9iZWdpbigmcG9zLCAmcmVtYWluaW5nKTsKKyAgICBpZiAoIW9rKSB7CisgICAgICAgIGdvdG8gZmFpbDsKKyAgICB9CisgICAgb2sgPSBwc2FzaW1fc2VyaWFsaXNlX21iZWR0bHNfc3ZjX2tleV9pZF90KAorICAgICAgICAmcG9zLCAmcmVtYWluaW5nLAorICAgICAgICBrZXkpOworICAgIGlmICghb2spIHsKKyAgICAgICAgZ290byBmYWlsOworICAgIH0KKyAgICBvayA9IHBzYXNpbV9zZXJpYWxpc2VfYnVmZmVyKAorICAgICAgICAmcG9zLCAmcmVtYWluaW5nLAorICAgICAgICBkYXRhLCBkYXRhX3NpemUpOworICAgIGlmICghb2spIHsKKyAgICAgICAgZ290byBmYWlsOworICAgIH0KKyAgICBvayA9IHBzYXNpbV9zZXJpYWxpc2Vfc2l6ZV90KAorICAgICAgICAmcG9zLCAmcmVtYWluaW5nLAorICAgICAgICAqZGF0YV9sZW5ndGgpOworICAgIGlmICghb2spIHsKKyAgICAgICAgZ290byBmYWlsOworICAgIH0KKworICAgIG9rID0gcHNhX2NyeXB0b19jYWxsKFBTQV9FWFBPUlRfS0VZLAorICAgICAgICAgICAgICAgICAgICAgICAgIHNlcl9wYXJhbXMsIChzaXplX3QpIChwb3MgLSBzZXJfcGFyYW1zKSwgJnNlcl9yZXN1bHQsICZyZXN1bHRfbGVuZ3RoKTsKKyAgICBpZiAoIW9rKSB7CisgICAgICAgIHByaW50ZigiUFNBX0VYUE9SVF9LRVkgc2VydmVyIGNhbGwgZmFpbGVkXG4iKTsKKyAgICAgICAgZ290byBmYWlsOworICAgIH0KKworICAgIHVpbnQ4X3QgKnJwb3MgPSBzZXJfcmVzdWx0OworICAgIHNpemVfdCBycmVtYWluID0gcmVzdWx0X2xlbmd0aDsKKworICAgIG9rID0gcHNhc2ltX2Rlc2VyaWFsaXNlX2JlZ2luKCZycG9zLCAmcnJlbWFpbik7CisgICAgaWYgKCFvaykgeworICAgICAgICBnb3RvIGZhaWw7CisgICAgfQorCisgICAgb2sgPSBwc2FzaW1fZGVzZXJpYWxpc2VfcHNhX3N0YXR1c190KAorICAgICAgICAmcnBvcywgJnJyZW1haW4sCisgICAgICAgICZzdGF0dXMpOworICAgIGlmICghb2spIHsKKyAgICAgICAgZ290byBmYWlsOworICAgIH0KKworICAgIG9rID0gcHNhc2ltX2Rlc2VyaWFsaXNlX3JldHVybl9idWZmZXIoCisgICAgICAgICZycG9zLCAmcnJlbWFpbiwKKyAgICAgICAgZGF0YSwgZGF0YV9zaXplKTsKKyAgICBpZiAoIW9rKSB7CisgICAgICAgIGdvdG8gZmFpbDsKKyAgICB9CisKKyAgICBvayA9IHBzYXNpbV9kZXNlcmlhbGlzZV9zaXplX3QoCisgICAgICAgICZycG9zLCAmcnJlbWFpbiwKKyAgICAgICAgZGF0YV9sZW5ndGgpOworICAgIGlmICghb2spIHsKKyAgICAgICAgZ290byBmYWlsOworICAgIH0KKworZmFpbDoKKyAgICBmcmVlKHNlcl9wYXJhbXMpOworICAgIGZyZWUoc2VyX3Jlc3VsdCk7CisKKyAgICByZXR1cm4gc3RhdHVzOworfQorCisKK3BzYV9zdGF0dXNfdCBwc2FfZXhwb3J0X3B1YmxpY19rZXkoCisgICAgbWJlZHRsc19zdmNfa2V5X2lkX3Qga2V5LAorICAgIHVpbnQ4X3QgKmRhdGEsIHNpemVfdCAgZGF0YV9zaXplLAorICAgIHNpemVfdCAqZGF0YV9sZW5ndGgKKyAgICApCit7CisgICAgdWludDhfdCAqc2VyX3BhcmFtcyA9IE5VTEw7CisgICAgdWludDhfdCAqc2VyX3Jlc3VsdCA9IE5VTEw7CisgICAgc2l6ZV90IHJlc3VsdF9sZW5ndGg7CisgICAgcHNhX3N0YXR1c190IHN0YXR1cyA9IFBTQV9FUlJPUl9DT1JSVVBUSU9OX0RFVEVDVEVEOworCisgICAgc2l6ZV90IG5lZWRlZCA9CisgICAgICAgIHBzYXNpbV9zZXJpYWxpc2VfYmVnaW5fbmVlZHMoKSArCisgICAgICAgIHBzYXNpbV9zZXJpYWxpc2VfbWJlZHRsc19zdmNfa2V5X2lkX3RfbmVlZHMoa2V5KSArCisgICAgICAgIHBzYXNpbV9zZXJpYWxpc2VfYnVmZmVyX25lZWRzKGRhdGEsIGRhdGFfc2l6ZSkgKworICAgICAgICBwc2FzaW1fc2VyaWFsaXNlX3NpemVfdF9uZWVkcygqZGF0YV9sZW5ndGgpOworCisgICAgc2VyX3BhcmFtcyA9IG1hbGxvYyhuZWVkZWQpOworICAgIGlmIChzZXJfcGFyYW1zID09IE5VTEwpIHsKKyAgICAgICAgc3RhdHVzID0gUFNBX0VSUk9SX0lOU1VGRklDSUVOVF9NRU1PUlk7CisgICAgICAgIGdvdG8gZmFpbDsKKyAgICB9CisKKyAgICB1aW50OF90ICpwb3MgPSBzZXJfcGFyYW1zOworICAgIHNpemVfdCByZW1haW5pbmcgPSBuZWVkZWQ7CisgICAgaW50IG9rOworICAgIG9rID0gcHNhc2ltX3NlcmlhbGlzZV9iZWdpbigmcG9zLCAmcmVtYWluaW5nKTsKKyAgICBpZiAoIW9rKSB7CisgICAgICAgIGdvdG8gZmFpbDsKKyAgICB9CisgICAgb2sgPSBwc2FzaW1fc2VyaWFsaXNlX21iZWR0bHNfc3ZjX2tleV9pZF90KAorICAgICAgICAmcG9zLCAmcmVtYWluaW5nLAorICAgICAgICBrZXkpOworICAgIGlmICghb2spIHsKKyAgICAgICAgZ290byBmYWlsOworICAgIH0KKyAgICBvayA9IHBzYXNpbV9zZXJpYWxpc2VfYnVmZmVyKAorICAgICAgICAmcG9zLCAmcmVtYWluaW5nLAorICAgICAgICBkYXRhLCBkYXRhX3NpemUpOworICAgIGlmICghb2spIHsKKyAgICAgICAgZ290byBmYWlsOworICAgIH0KKyAgICBvayA9IHBzYXNpbV9zZXJpYWxpc2Vfc2l6ZV90KAorICAgICAgICAmcG9zLCAmcmVtYWluaW5nLAorICAgICAgICAqZGF0YV9sZW5ndGgpOworICAgIGlmICghb2spIHsKKyAgICAgICAgZ290byBmYWlsOworICAgIH0KKworICAgIG9rID0gcHNhX2NyeXB0b19jYWxsKFBTQV9FWFBPUlRfUFVCTElDX0tFWSwKKyAgICAgICAgICAgICAgICAgICAgICAgICBzZXJfcGFyYW1zLCAoc2l6ZV90KSAocG9zIC0gc2VyX3BhcmFtcyksICZzZXJfcmVzdWx0LCAmcmVzdWx0X2xlbmd0aCk7CisgICAgaWYgKCFvaykgeworICAgICAgICBwcmludGYoIlBTQV9FWFBPUlRfUFVCTElDX0tFWSBzZXJ2ZXIgY2FsbCBmYWlsZWRcbiIpOworICAgICAgICBnb3RvIGZhaWw7CisgICAgfQorCisgICAgdWludDhfdCAqcnBvcyA9IHNlcl9yZXN1bHQ7CisgICAgc2l6ZV90IHJyZW1haW4gPSByZXN1bHRfbGVuZ3RoOworCisgICAgb2sgPSBwc2FzaW1fZGVzZXJpYWxpc2VfYmVnaW4oJnJwb3MsICZycmVtYWluKTsKKyAgICBpZiAoIW9rKSB7CisgICAgICAgIGdvdG8gZmFpbDsKKyAgICB9CisKKyAgICBvayA9IHBzYXNpbV9kZXNlcmlhbGlzZV9wc2Ffc3RhdHVzX3QoCisgICAgICAgICZycG9zLCAmcnJlbWFpbiwKKyAgICAgICAgJnN0YXR1cyk7CisgICAgaWYgKCFvaykgeworICAgICAgICBnb3RvIGZhaWw7CisgICAgfQorCisgICAgb2sgPSBwc2FzaW1fZGVzZXJpYWxpc2VfcmV0dXJuX2J1ZmZlcigKKyAgICAgICAgJnJwb3MsICZycmVtYWluLAorICAgICAgICBkYXRhLCBkYXRhX3NpemUpOworICAgIGlmICghb2spIHsKKyAgICAgICAgZ290byBmYWlsOworICAgIH0KKworICAgIG9rID0gcHNhc2ltX2Rlc2VyaWFsaXNlX3NpemVfdCgKKyAgICAgICAgJnJwb3MsICZycmVtYWluLAorICAgICAgICBkYXRhX2xlbmd0aCk7CisgICAgaWYgKCFvaykgeworICAgICAgICBnb3RvIGZhaWw7CisgICAgfQorCitmYWlsOgorICAgIGZyZWUoc2VyX3BhcmFtcyk7CisgICAgZnJlZShzZXJfcmVzdWx0KTsKKworICAgIHJldHVybiBzdGF0dXM7Cit9CisKKworcHNhX3N0YXR1c190IHBzYV9nZW5lcmF0ZV9rZXkoCisgICAgY29uc3QgcHNhX2tleV9hdHRyaWJ1dGVzX3QgKmF0dHJpYnV0ZXMsCisgICAgbWJlZHRsc19zdmNfa2V5X2lkX3QgKmtleQorICAgICkKK3sKKyAgICB1aW50OF90ICpzZXJfcGFyYW1zID0gTlVMTDsKKyAgICB1aW50OF90ICpzZXJfcmVzdWx0ID0gTlVMTDsKKyAgICBzaXplX3QgcmVzdWx0X2xlbmd0aDsKKyAgICBwc2Ffc3RhdHVzX3Qgc3RhdHVzID0gUFNBX0VSUk9SX0NPUlJVUFRJT05fREVURUNURUQ7CisKKyAgICBzaXplX3QgbmVlZGVkID0KKyAgICAgICAgcHNhc2ltX3NlcmlhbGlzZV9iZWdpbl9uZWVkcygpICsKKyAgICAgICAgcHNhc2ltX3NlcmlhbGlzZV9wc2Ffa2V5X2F0dHJpYnV0ZXNfdF9uZWVkcygqYXR0cmlidXRlcykgKworICAgICAgICBwc2FzaW1fc2VyaWFsaXNlX21iZWR0bHNfc3ZjX2tleV9pZF90X25lZWRzKCprZXkpOworCisgICAgc2VyX3BhcmFtcyA9IG1hbGxvYyhuZWVkZWQpOworICAgIGlmIChzZXJfcGFyYW1zID09IE5VTEwpIHsKKyAgICAgICAgc3RhdHVzID0gUFNBX0VSUk9SX0lOU1VGRklDSUVOVF9NRU1PUlk7CisgICAgICAgIGdvdG8gZmFpbDsKKyAgICB9CisKKyAgICB1aW50OF90ICpwb3MgPSBzZXJfcGFyYW1zOworICAgIHNpemVfdCByZW1haW5pbmcgPSBuZWVkZWQ7CisgICAgaW50IG9rOworICAgIG9rID0gcHNhc2ltX3NlcmlhbGlzZV9iZWdpbigmcG9zLCAmcmVtYWluaW5nKTsKKyAgICBpZiAoIW9rKSB7CisgICAgICAgIGdvdG8gZmFpbDsKKyAgICB9CisgICAgb2sgPSBwc2FzaW1fc2VyaWFsaXNlX3BzYV9rZXlfYXR0cmlidXRlc190KAorICAgICAgICAmcG9zLCAmcmVtYWluaW5nLAorICAgICAgICAqYXR0cmlidXRlcyk7CisgICAgaWYgKCFvaykgeworICAgICAgICBnb3RvIGZhaWw7CisgICAgfQorICAgIG9rID0gcHNhc2ltX3NlcmlhbGlzZV9tYmVkdGxzX3N2Y19rZXlfaWRfdCgKKyAgICAgICAgJnBvcywgJnJlbWFpbmluZywKKyAgICAgICAgKmtleSk7CisgICAgaWYgKCFvaykgeworICAgICAgICBnb3RvIGZhaWw7CisgICAgfQorCisgICAgb2sgPSBwc2FfY3J5cHRvX2NhbGwoUFNBX0dFTkVSQVRFX0tFWSwKKyAgICAgICAgICAgICAgICAgICAgICAgICBzZXJfcGFyYW1zLCAoc2l6ZV90KSAocG9zIC0gc2VyX3BhcmFtcyksICZzZXJfcmVzdWx0LCAmcmVzdWx0X2xlbmd0aCk7CisgICAgaWYgKCFvaykgeworICAgICAgICBwcmludGYoIlBTQV9HRU5FUkFURV9LRVkgc2VydmVyIGNhbGwgZmFpbGVkXG4iKTsKKyAgICAgICAgZ290byBmYWlsOworICAgIH0KKworICAgIHVpbnQ4X3QgKnJwb3MgPSBzZXJfcmVzdWx0OworICAgIHNpemVfdCBycmVtYWluID0gcmVzdWx0X2xlbmd0aDsKKworICAgIG9rID0gcHNhc2ltX2Rlc2VyaWFsaXNlX2JlZ2luKCZycG9zLCAmcnJlbWFpbik7CisgICAgaWYgKCFvaykgeworICAgICAgICBnb3RvIGZhaWw7CisgICAgfQorCisgICAgb2sgPSBwc2FzaW1fZGVzZXJpYWxpc2VfcHNhX3N0YXR1c190KAorICAgICAgICAmcnBvcywgJnJyZW1haW4sCisgICAgICAgICZzdGF0dXMpOworICAgIGlmICghb2spIHsKKyAgICAgICAgZ290byBmYWlsOworICAgIH0KKworICAgIG9rID0gcHNhc2ltX2Rlc2VyaWFsaXNlX21iZWR0bHNfc3ZjX2tleV9pZF90KAorICAgICAgICAmcnBvcywgJnJyZW1haW4sCisgICAgICAgIGtleSk7CisgICAgaWYgKCFvaykgeworICAgICAgICBnb3RvIGZhaWw7CisgICAgfQorCitmYWlsOgorICAgIGZyZWUoc2VyX3BhcmFtcyk7CisgICAgZnJlZShzZXJfcmVzdWx0KTsKKworICAgIHJldHVybiBzdGF0dXM7Cit9CisKKworcHNhX3N0YXR1c190IHBzYV9nZW5lcmF0ZV9rZXlfZXh0KAorICAgIGNvbnN0IHBzYV9rZXlfYXR0cmlidXRlc190ICphdHRyaWJ1dGVzLAorICAgIGNvbnN0IHBzYV9rZXlfcHJvZHVjdGlvbl9wYXJhbWV0ZXJzX3QgKnBhcmFtcywgc2l6ZV90ICBwYXJhbXNfZGF0YV9sZW5ndGgsCisgICAgbWJlZHRsc19zdmNfa2V5X2lkX3QgKmtleQorICAgICkKK3sKKyAgICB1aW50OF90ICpzZXJfcGFyYW1zID0gTlVMTDsKKyAgICB1aW50OF90ICpzZXJfcmVzdWx0ID0gTlVMTDsKKyAgICBzaXplX3QgcmVzdWx0X2xlbmd0aDsKKyAgICBwc2Ffc3RhdHVzX3Qgc3RhdHVzID0gUFNBX0VSUk9SX0NPUlJVUFRJT05fREVURUNURUQ7CisKKyAgICBzaXplX3QgbmVlZGVkID0KKyAgICAgICAgcHNhc2ltX3NlcmlhbGlzZV9iZWdpbl9uZWVkcygpICsKKyAgICAgICAgcHNhc2ltX3NlcmlhbGlzZV9wc2Ffa2V5X2F0dHJpYnV0ZXNfdF9uZWVkcygqYXR0cmlidXRlcykgKworICAgICAgICBwc2FzaW1fc2VyaWFsaXNlX3BzYV9rZXlfcHJvZHVjdGlvbl9wYXJhbWV0ZXJzX3RfbmVlZHMocGFyYW1zLCBwYXJhbXNfZGF0YV9sZW5ndGgpICsKKyAgICAgICAgcHNhc2ltX3NlcmlhbGlzZV9tYmVkdGxzX3N2Y19rZXlfaWRfdF9uZWVkcygqa2V5KTsKKworICAgIHNlcl9wYXJhbXMgPSBtYWxsb2MobmVlZGVkKTsKKyAgICBpZiAoc2VyX3BhcmFtcyA9PSBOVUxMKSB7CisgICAgICAgIHN0YXR1cyA9IFBTQV9FUlJPUl9JTlNVRkZJQ0lFTlRfTUVNT1JZOworICAgICAgICBnb3RvIGZhaWw7CisgICAgfQorCisgICAgdWludDhfdCAqcG9zID0gc2VyX3BhcmFtczsKKyAgICBzaXplX3QgcmVtYWluaW5nID0gbmVlZGVkOworICAgIGludCBvazsKKyAgICBvayA9IHBzYXNpbV9zZXJpYWxpc2VfYmVnaW4oJnBvcywgJnJlbWFpbmluZyk7CisgICAgaWYgKCFvaykgeworICAgICAgICBnb3RvIGZhaWw7CisgICAgfQorICAgIG9rID0gcHNhc2ltX3NlcmlhbGlzZV9wc2Ffa2V5X2F0dHJpYnV0ZXNfdCgKKyAgICAgICAgJnBvcywgJnJlbWFpbmluZywKKyAgICAgICAgKmF0dHJpYnV0ZXMpOworICAgIGlmICghb2spIHsKKyAgICAgICAgZ290byBmYWlsOworICAgIH0KKyAgICBvayA9IHBzYXNpbV9zZXJpYWxpc2VfcHNhX2tleV9wcm9kdWN0aW9uX3BhcmFtZXRlcnNfdCgKKyAgICAgICAgJnBvcywgJnJlbWFpbmluZywKKyAgICAgICAgcGFyYW1zLCBwYXJhbXNfZGF0YV9sZW5ndGgpOworICAgIGlmICghb2spIHsKKyAgICAgICAgZ290byBmYWlsOworICAgIH0KKyAgICBvayA9IHBzYXNpbV9zZXJpYWxpc2VfbWJlZHRsc19zdmNfa2V5X2lkX3QoCisgICAgICAgICZwb3MsICZyZW1haW5pbmcsCisgICAgICAgICprZXkpOworICAgIGlmICghb2spIHsKKyAgICAgICAgZ290byBmYWlsOworICAgIH0KKworICAgIG9rID0gcHNhX2NyeXB0b19jYWxsKFBTQV9HRU5FUkFURV9LRVlfRVhULAorICAgICAgICAgICAgICAgICAgICAgICAgIHNlcl9wYXJhbXMsIChzaXplX3QpIChwb3MgLSBzZXJfcGFyYW1zKSwgJnNlcl9yZXN1bHQsICZyZXN1bHRfbGVuZ3RoKTsKKyAgICBpZiAoIW9rKSB7CisgICAgICAgIHByaW50ZigiUFNBX0dFTkVSQVRFX0tFWV9FWFQgc2VydmVyIGNhbGwgZmFpbGVkXG4iKTsKKyAgICAgICAgZ290byBmYWlsOworICAgIH0KKworICAgIHVpbnQ4X3QgKnJwb3MgPSBzZXJfcmVzdWx0OworICAgIHNpemVfdCBycmVtYWluID0gcmVzdWx0X2xlbmd0aDsKKworICAgIG9rID0gcHNhc2ltX2Rlc2VyaWFsaXNlX2JlZ2luKCZycG9zLCAmcnJlbWFpbik7CisgICAgaWYgKCFvaykgeworICAgICAgICBnb3RvIGZhaWw7CisgICAgfQorCisgICAgb2sgPSBwc2FzaW1fZGVzZXJpYWxpc2VfcHNhX3N0YXR1c190KAorICAgICAgICAmcnBvcywgJnJyZW1haW4sCisgICAgICAgICZzdGF0dXMpOworICAgIGlmICghb2spIHsKKyAgICAgICAgZ290byBmYWlsOworICAgIH0KKworICAgIG9rID0gcHNhc2ltX2Rlc2VyaWFsaXNlX21iZWR0bHNfc3ZjX2tleV9pZF90KAorICAgICAgICAmcnBvcywgJnJyZW1haW4sCisgICAgICAgIGtleSk7CisgICAgaWYgKCFvaykgeworICAgICAgICBnb3RvIGZhaWw7CisgICAgfQorCitmYWlsOgorICAgIGZyZWUoc2VyX3BhcmFtcyk7CisgICAgZnJlZShzZXJfcmVzdWx0KTsKKworICAgIHJldHVybiBzdGF0dXM7Cit9CisKKworcHNhX3N0YXR1c190IHBzYV9nZW5lcmF0ZV9yYW5kb20oCisgICAgdWludDhfdCAqb3V0cHV0LCBzaXplX3QgIG91dHB1dF9zaXplCisgICAgKQoreworICAgIHVpbnQ4X3QgKnNlcl9wYXJhbXMgPSBOVUxMOworICAgIHVpbnQ4X3QgKnNlcl9yZXN1bHQgPSBOVUxMOworICAgIHNpemVfdCByZXN1bHRfbGVuZ3RoOworICAgIHBzYV9zdGF0dXNfdCBzdGF0dXMgPSBQU0FfRVJST1JfQ09SUlVQVElPTl9ERVRFQ1RFRDsKKworICAgIHNpemVfdCBuZWVkZWQgPQorICAgICAgICBwc2FzaW1fc2VyaWFsaXNlX2JlZ2luX25lZWRzKCkgKworICAgICAgICBwc2FzaW1fc2VyaWFsaXNlX2J1ZmZlcl9uZWVkcyhvdXRwdXQsIG91dHB1dF9zaXplKTsKKworICAgIHNlcl9wYXJhbXMgPSBtYWxsb2MobmVlZGVkKTsKKyAgICBpZiAoc2VyX3BhcmFtcyA9PSBOVUxMKSB7CisgICAgICAgIHN0YXR1cyA9IFBTQV9FUlJPUl9JTlNVRkZJQ0lFTlRfTUVNT1JZOworICAgICAgICBnb3RvIGZhaWw7CisgICAgfQorCisgICAgdWludDhfdCAqcG9zID0gc2VyX3BhcmFtczsKKyAgICBzaXplX3QgcmVtYWluaW5nID0gbmVlZGVkOworICAgIGludCBvazsKKyAgICBvayA9IHBzYXNpbV9zZXJpYWxpc2VfYmVnaW4oJnBvcywgJnJlbWFpbmluZyk7CisgICAgaWYgKCFvaykgeworICAgICAgICBnb3RvIGZhaWw7CisgICAgfQorICAgIG9rID0gcHNhc2ltX3NlcmlhbGlzZV9idWZmZXIoCisgICAgICAgICZwb3MsICZyZW1haW5pbmcsCisgICAgICAgIG91dHB1dCwgb3V0cHV0X3NpemUpOworICAgIGlmICghb2spIHsKKyAgICAgICAgZ290byBmYWlsOworICAgIH0KKworICAgIG9rID0gcHNhX2NyeXB0b19jYWxsKFBTQV9HRU5FUkFURV9SQU5ET00sCisgICAgICAgICAgICAgICAgICAgICAgICAgc2VyX3BhcmFtcywgKHNpemVfdCkgKHBvcyAtIHNlcl9wYXJhbXMpLCAmc2VyX3Jlc3VsdCwgJnJlc3VsdF9sZW5ndGgpOworICAgIGlmICghb2spIHsKKyAgICAgICAgcHJpbnRmKCJQU0FfR0VORVJBVEVfUkFORE9NIHNlcnZlciBjYWxsIGZhaWxlZFxuIik7CisgICAgICAgIGdvdG8gZmFpbDsKKyAgICB9CisKKyAgICB1aW50OF90ICpycG9zID0gc2VyX3Jlc3VsdDsKKyAgICBzaXplX3QgcnJlbWFpbiA9IHJlc3VsdF9sZW5ndGg7CisKKyAgICBvayA9IHBzYXNpbV9kZXNlcmlhbGlzZV9iZWdpbigmcnBvcywgJnJyZW1haW4pOworICAgIGlmICghb2spIHsKKyAgICAgICAgZ290byBmYWlsOworICAgIH0KKworICAgIG9rID0gcHNhc2ltX2Rlc2VyaWFsaXNlX3BzYV9zdGF0dXNfdCgKKyAgICAgICAgJnJwb3MsICZycmVtYWluLAorICAgICAgICAmc3RhdHVzKTsKKyAgICBpZiAoIW9rKSB7CisgICAgICAgIGdvdG8gZmFpbDsKKyAgICB9CisKKyAgICBvayA9IHBzYXNpbV9kZXNlcmlhbGlzZV9yZXR1cm5fYnVmZmVyKAorICAgICAgICAmcnBvcywgJnJyZW1haW4sCisgICAgICAgIG91dHB1dCwgb3V0cHV0X3NpemUpOworICAgIGlmICghb2spIHsKKyAgICAgICAgZ290byBmYWlsOworICAgIH0KKworZmFpbDoKKyAgICBmcmVlKHNlcl9wYXJhbXMpOworICAgIGZyZWUoc2VyX3Jlc3VsdCk7CiAKICAgICByZXR1cm4gc3RhdHVzOwogfQpAQCAtMTE5Niw0NSArMjk2NCw1MCBAQAogICAgIHBzYV9rZXlfYXR0cmlidXRlc190ICphdHRyaWJ1dGVzCiAgICAgKQogewotICAgIHVpbnQ4X3QgKnBhcmFtcyA9IE5VTEw7Ci0gICAgdWludDhfdCAqcmVzdWx0ID0gTlVMTDsKKyAgICB1aW50OF90ICpzZXJfcGFyYW1zID0gTlVMTDsKKyAgICB1aW50OF90ICpzZXJfcmVzdWx0ID0gTlVMTDsKICAgICBzaXplX3QgcmVzdWx0X2xlbmd0aDsKICAgICBwc2Ffc3RhdHVzX3Qgc3RhdHVzID0gUFNBX0VSUk9SX0NPUlJVUFRJT05fREVURUNURUQ7CiAKLSAgICBzaXplX3QgbmVlZGVkID0gcHNhc2ltX3NlcmlhbGlzZV9iZWdpbl9uZWVkcygpICsKLSAgICAgICAgICAgICAgICAgICAgcHNhc2ltX3NlcmlhbGlzZV9tYmVkdGxzX3N2Y19rZXlfaWRfdF9uZWVkcyhrZXkpICsKLSAgICAgICAgICAgICAgICAgICAgcHNhc2ltX3NlcmlhbGlzZV9wc2Ffa2V5X2F0dHJpYnV0ZXNfdF9uZWVkcygqYXR0cmlidXRlcyk7CisgICAgc2l6ZV90IG5lZWRlZCA9CisgICAgICAgIHBzYXNpbV9zZXJpYWxpc2VfYmVnaW5fbmVlZHMoKSArCisgICAgICAgIHBzYXNpbV9zZXJpYWxpc2VfbWJlZHRsc19zdmNfa2V5X2lkX3RfbmVlZHMoa2V5KSArCisgICAgICAgIHBzYXNpbV9zZXJpYWxpc2VfcHNhX2tleV9hdHRyaWJ1dGVzX3RfbmVlZHMoKmF0dHJpYnV0ZXMpOwogCi0gICAgcGFyYW1zID0gbWFsbG9jKG5lZWRlZCk7Ci0gICAgaWYgKHBhcmFtcyA9PSBOVUxMKSB7CisgICAgc2VyX3BhcmFtcyA9IG1hbGxvYyhuZWVkZWQpOworICAgIGlmIChzZXJfcGFyYW1zID09IE5VTEwpIHsKICAgICAgICAgc3RhdHVzID0gUFNBX0VSUk9SX0lOU1VGRklDSUVOVF9NRU1PUlk7CiAgICAgICAgIGdvdG8gZmFpbDsKICAgICB9CiAKLSAgICB1aW50OF90ICpwb3MgPSBwYXJhbXM7CisgICAgdWludDhfdCAqcG9zID0gc2VyX3BhcmFtczsKICAgICBzaXplX3QgcmVtYWluaW5nID0gbmVlZGVkOwogICAgIGludCBvazsKICAgICBvayA9IHBzYXNpbV9zZXJpYWxpc2VfYmVnaW4oJnBvcywgJnJlbWFpbmluZyk7CiAgICAgaWYgKCFvaykgewogICAgICAgICBnb3RvIGZhaWw7CiAgICAgfQotICAgIG9rID0gcHNhc2ltX3NlcmlhbGlzZV9tYmVkdGxzX3N2Y19rZXlfaWRfdCgmcG9zLCAmcmVtYWluaW5nLCBrZXkpOworICAgIG9rID0gcHNhc2ltX3NlcmlhbGlzZV9tYmVkdGxzX3N2Y19rZXlfaWRfdCgKKyAgICAgICAgJnBvcywgJnJlbWFpbmluZywKKyAgICAgICAga2V5KTsKICAgICBpZiAoIW9rKSB7CiAgICAgICAgIGdvdG8gZmFpbDsKICAgICB9Ci0gICAgb2sgPSBwc2FzaW1fc2VyaWFsaXNlX3BzYV9rZXlfYXR0cmlidXRlc190KCZwb3MsICZyZW1haW5pbmcsICphdHRyaWJ1dGVzKTsKKyAgICBvayA9IHBzYXNpbV9zZXJpYWxpc2VfcHNhX2tleV9hdHRyaWJ1dGVzX3QoCisgICAgICAgICZwb3MsICZyZW1haW5pbmcsCisgICAgICAgICphdHRyaWJ1dGVzKTsKICAgICBpZiAoIW9rKSB7CiAgICAgICAgIGdvdG8gZmFpbDsKICAgICB9CiAKICAgICBvayA9IHBzYV9jcnlwdG9fY2FsbChQU0FfR0VUX0tFWV9BVFRSSUJVVEVTLAotICAgICAgICAgICAgICAgICAgICAgICAgIHBhcmFtcywgKHNpemVfdCkgKHBvcyAtIHBhcmFtcyksICZyZXN1bHQsICZyZXN1bHRfbGVuZ3RoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICBzZXJfcGFyYW1zLCAoc2l6ZV90KSAocG9zIC0gc2VyX3BhcmFtcyksICZzZXJfcmVzdWx0LCAmcmVzdWx0X2xlbmd0aCk7CiAgICAgaWYgKCFvaykgewogICAgICAgICBwcmludGYoIlBTQV9HRVRfS0VZX0FUVFJJQlVURVMgc2VydmVyIGNhbGwgZmFpbGVkXG4iKTsKICAgICAgICAgZ290byBmYWlsOwogICAgIH0KIAotICAgIHVpbnQ4X3QgKnJwb3MgPSByZXN1bHQ7CisgICAgdWludDhfdCAqcnBvcyA9IHNlcl9yZXN1bHQ7CiAgICAgc2l6ZV90IHJyZW1haW4gPSByZXN1bHRfbGVuZ3RoOwogCiAgICAgb2sgPSBwc2FzaW1fZGVzZXJpYWxpc2VfYmVnaW4oJnJwb3MsICZycmVtYWluKTsKQEAgLTEyNDIsMTkgKzMwMTUsMjMgQEAKICAgICAgICAgZ290byBmYWlsOwogICAgIH0KIAotICAgIG9rID0gcHNhc2ltX2Rlc2VyaWFsaXNlX3BzYV9zdGF0dXNfdCgmcnBvcywgJnJyZW1haW4sICZzdGF0dXMpOworICAgIG9rID0gcHNhc2ltX2Rlc2VyaWFsaXNlX3BzYV9zdGF0dXNfdCgKKyAgICAgICAgJnJwb3MsICZycmVtYWluLAorICAgICAgICAmc3RhdHVzKTsKICAgICBpZiAoIW9rKSB7CiAgICAgICAgIGdvdG8gZmFpbDsKICAgICB9CiAKLSAgICBvayA9IHBzYXNpbV9kZXNlcmlhbGlzZV9wc2Ffa2V5X2F0dHJpYnV0ZXNfdCgmcnBvcywgJnJyZW1haW4sIGF0dHJpYnV0ZXMpOworICAgIG9rID0gcHNhc2ltX2Rlc2VyaWFsaXNlX3BzYV9rZXlfYXR0cmlidXRlc190KAorICAgICAgICAmcnBvcywgJnJyZW1haW4sCisgICAgICAgIGF0dHJpYnV0ZXMpOwogICAgIGlmICghb2spIHsKICAgICAgICAgZ290byBmYWlsOwogICAgIH0KIAogZmFpbDoKLSAgICBmcmVlKHBhcmFtcyk7Ci0gICAgZnJlZShyZXN1bHQpOworICAgIGZyZWUoc2VyX3BhcmFtcyk7CisgICAgZnJlZShzZXJfcmVzdWx0KTsKIAogICAgIHJldHVybiBzdGF0dXM7CiB9CkBAIC0xMjY0LDQwICszMDQxLDQzIEBACiAgICAgcHNhX2hhc2hfb3BlcmF0aW9uX3QgKm9wZXJhdGlvbgogICAgICkKIHsKLSAgICB1aW50OF90ICpwYXJhbXMgPSBOVUxMOwotICAgIHVpbnQ4X3QgKnJlc3VsdCA9IE5VTEw7CisgICAgdWludDhfdCAqc2VyX3BhcmFtcyA9IE5VTEw7CisgICAgdWludDhfdCAqc2VyX3Jlc3VsdCA9IE5VTEw7CiAgICAgc2l6ZV90IHJlc3VsdF9sZW5ndGg7CiAgICAgcHNhX3N0YXR1c190IHN0YXR1cyA9IFBTQV9FUlJPUl9DT1JSVVBUSU9OX0RFVEVDVEVEOwogCi0gICAgc2l6ZV90IG5lZWRlZCA9IHBzYXNpbV9zZXJpYWxpc2VfYmVnaW5fbmVlZHMoKSArCi0gICAgICAgICAgICAgICAgICAgIHBzYXNpbV9zZXJpYWxpc2VfcHNhX2hhc2hfb3BlcmF0aW9uX3RfbmVlZHMoKm9wZXJhdGlvbik7CisgICAgc2l6ZV90IG5lZWRlZCA9CisgICAgICAgIHBzYXNpbV9zZXJpYWxpc2VfYmVnaW5fbmVlZHMoKSArCisgICAgICAgIHBzYXNpbV9zZXJpYWxpc2VfcHNhX2hhc2hfb3BlcmF0aW9uX3RfbmVlZHMoKm9wZXJhdGlvbik7CiAKLSAgICBwYXJhbXMgPSBtYWxsb2MobmVlZGVkKTsKLSAgICBpZiAocGFyYW1zID09IE5VTEwpIHsKKyAgICBzZXJfcGFyYW1zID0gbWFsbG9jKG5lZWRlZCk7CisgICAgaWYgKHNlcl9wYXJhbXMgPT0gTlVMTCkgewogICAgICAgICBzdGF0dXMgPSBQU0FfRVJST1JfSU5TVUZGSUNJRU5UX01FTU9SWTsKICAgICAgICAgZ290byBmYWlsOwogICAgIH0KIAotICAgIHVpbnQ4X3QgKnBvcyA9IHBhcmFtczsKKyAgICB1aW50OF90ICpwb3MgPSBzZXJfcGFyYW1zOwogICAgIHNpemVfdCByZW1haW5pbmcgPSBuZWVkZWQ7CiAgICAgaW50IG9rOwogICAgIG9rID0gcHNhc2ltX3NlcmlhbGlzZV9iZWdpbigmcG9zLCAmcmVtYWluaW5nKTsKICAgICBpZiAoIW9rKSB7CiAgICAgICAgIGdvdG8gZmFpbDsKICAgICB9Ci0gICAgb2sgPSBwc2FzaW1fc2VyaWFsaXNlX3BzYV9oYXNoX29wZXJhdGlvbl90KCZwb3MsICZyZW1haW5pbmcsICpvcGVyYXRpb24pOworICAgIG9rID0gcHNhc2ltX3NlcmlhbGlzZV9wc2FfaGFzaF9vcGVyYXRpb25fdCgKKyAgICAgICAgJnBvcywgJnJlbWFpbmluZywKKyAgICAgICAgKm9wZXJhdGlvbik7CiAgICAgaWYgKCFvaykgewogICAgICAgICBnb3RvIGZhaWw7CiAgICAgfQogCiAgICAgb2sgPSBwc2FfY3J5cHRvX2NhbGwoUFNBX0hBU0hfQUJPUlQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgcGFyYW1zLCAoc2l6ZV90KSAocG9zIC0gcGFyYW1zKSwgJnJlc3VsdCwgJnJlc3VsdF9sZW5ndGgpOworICAgICAgICAgICAgICAgICAgICAgICAgIHNlcl9wYXJhbXMsIChzaXplX3QpIChwb3MgLSBzZXJfcGFyYW1zKSwgJnNlcl9yZXN1bHQsICZyZXN1bHRfbGVuZ3RoKTsKICAgICBpZiAoIW9rKSB7CiAgICAgICAgIHByaW50ZigiUFNBX0hBU0hfQUJPUlQgc2VydmVyIGNhbGwgZmFpbGVkXG4iKTsKICAgICAgICAgZ290byBmYWlsOwogICAgIH0KIAotICAgIHVpbnQ4X3QgKnJwb3MgPSByZXN1bHQ7CisgICAgdWludDhfdCAqcnBvcyA9IHNlcl9yZXN1bHQ7CiAgICAgc2l6ZV90IHJyZW1haW4gPSByZXN1bHRfbGVuZ3RoOwogCiAgICAgb2sgPSBwc2FzaW1fZGVzZXJpYWxpc2VfYmVnaW4oJnJwb3MsICZycmVtYWluKTsKQEAgLTEzMDUsMTkgKzMwODUsMjMgQEAKICAgICAgICAgZ290byBmYWlsOwogICAgIH0KIAotICAgIG9rID0gcHNhc2ltX2Rlc2VyaWFsaXNlX3BzYV9zdGF0dXNfdCgmcnBvcywgJnJyZW1haW4sICZzdGF0dXMpOworICAgIG9rID0gcHNhc2ltX2Rlc2VyaWFsaXNlX3BzYV9zdGF0dXNfdCgKKyAgICAgICAgJnJwb3MsICZycmVtYWluLAorICAgICAgICAmc3RhdHVzKTsKICAgICBpZiAoIW9rKSB7CiAgICAgICAgIGdvdG8gZmFpbDsKICAgICB9CiAKLSAgICBvayA9IHBzYXNpbV9kZXNlcmlhbGlzZV9wc2FfaGFzaF9vcGVyYXRpb25fdCgmcnBvcywgJnJyZW1haW4sIG9wZXJhdGlvbik7CisgICAgb2sgPSBwc2FzaW1fZGVzZXJpYWxpc2VfcHNhX2hhc2hfb3BlcmF0aW9uX3QoCisgICAgICAgICZycG9zLCAmcnJlbWFpbiwKKyAgICAgICAgb3BlcmF0aW9uKTsKICAgICBpZiAoIW9rKSB7CiAgICAgICAgIGdvdG8gZmFpbDsKICAgICB9CiAKIGZhaWw6Ci0gICAgZnJlZShwYXJhbXMpOwotICAgIGZyZWUocmVzdWx0KTsKKyAgICBmcmVlKHNlcl9wYXJhbXMpOworICAgIGZyZWUoc2VyX3Jlc3VsdCk7CiAKICAgICByZXR1cm4gc3RhdHVzOwogfQpAQCAtMTMyOCw0NSArMzExMiw1MCBAQAogICAgIHBzYV9oYXNoX29wZXJhdGlvbl90ICp0YXJnZXRfb3BlcmF0aW9uCiAgICAgKQogewotICAgIHVpbnQ4X3QgKnBhcmFtcyA9IE5VTEw7Ci0gICAgdWludDhfdCAqcmVzdWx0ID0gTlVMTDsKKyAgICB1aW50OF90ICpzZXJfcGFyYW1zID0gTlVMTDsKKyAgICB1aW50OF90ICpzZXJfcmVzdWx0ID0gTlVMTDsKICAgICBzaXplX3QgcmVzdWx0X2xlbmd0aDsKICAgICBwc2Ffc3RhdHVzX3Qgc3RhdHVzID0gUFNBX0VSUk9SX0NPUlJVUFRJT05fREVURUNURUQ7CiAKLSAgICBzaXplX3QgbmVlZGVkID0gcHNhc2ltX3NlcmlhbGlzZV9iZWdpbl9uZWVkcygpICsKLSAgICAgICAgICAgICAgICAgICAgcHNhc2ltX3NlcmlhbGlzZV9wc2FfaGFzaF9vcGVyYXRpb25fdF9uZWVkcygqc291cmNlX29wZXJhdGlvbikgKwotICAgICAgICAgICAgICAgICAgICBwc2FzaW1fc2VyaWFsaXNlX3BzYV9oYXNoX29wZXJhdGlvbl90X25lZWRzKCp0YXJnZXRfb3BlcmF0aW9uKTsKKyAgICBzaXplX3QgbmVlZGVkID0KKyAgICAgICAgcHNhc2ltX3NlcmlhbGlzZV9iZWdpbl9uZWVkcygpICsKKyAgICAgICAgcHNhc2ltX3NlcmlhbGlzZV9wc2FfaGFzaF9vcGVyYXRpb25fdF9uZWVkcygqc291cmNlX29wZXJhdGlvbikgKworICAgICAgICBwc2FzaW1fc2VyaWFsaXNlX3BzYV9oYXNoX29wZXJhdGlvbl90X25lZWRzKCp0YXJnZXRfb3BlcmF0aW9uKTsKIAotICAgIHBhcmFtcyA9IG1hbGxvYyhuZWVkZWQpOwotICAgIGlmIChwYXJhbXMgPT0gTlVMTCkgeworICAgIHNlcl9wYXJhbXMgPSBtYWxsb2MobmVlZGVkKTsKKyAgICBpZiAoc2VyX3BhcmFtcyA9PSBOVUxMKSB7CiAgICAgICAgIHN0YXR1cyA9IFBTQV9FUlJPUl9JTlNVRkZJQ0lFTlRfTUVNT1JZOwogICAgICAgICBnb3RvIGZhaWw7CiAgICAgfQogCi0gICAgdWludDhfdCAqcG9zID0gcGFyYW1zOworICAgIHVpbnQ4X3QgKnBvcyA9IHNlcl9wYXJhbXM7CiAgICAgc2l6ZV90IHJlbWFpbmluZyA9IG5lZWRlZDsKICAgICBpbnQgb2s7CiAgICAgb2sgPSBwc2FzaW1fc2VyaWFsaXNlX2JlZ2luKCZwb3MsICZyZW1haW5pbmcpOwogICAgIGlmICghb2spIHsKICAgICAgICAgZ290byBmYWlsOwogICAgIH0KLSAgICBvayA9IHBzYXNpbV9zZXJpYWxpc2VfcHNhX2hhc2hfb3BlcmF0aW9uX3QoJnBvcywgJnJlbWFpbmluZywgKnNvdXJjZV9vcGVyYXRpb24pOworICAgIG9rID0gcHNhc2ltX3NlcmlhbGlzZV9wc2FfaGFzaF9vcGVyYXRpb25fdCgKKyAgICAgICAgJnBvcywgJnJlbWFpbmluZywKKyAgICAgICAgKnNvdXJjZV9vcGVyYXRpb24pOwogICAgIGlmICghb2spIHsKICAgICAgICAgZ290byBmYWlsOwogICAgIH0KLSAgICBvayA9IHBzYXNpbV9zZXJpYWxpc2VfcHNhX2hhc2hfb3BlcmF0aW9uX3QoJnBvcywgJnJlbWFpbmluZywgKnRhcmdldF9vcGVyYXRpb24pOworICAgIG9rID0gcHNhc2ltX3NlcmlhbGlzZV9wc2FfaGFzaF9vcGVyYXRpb25fdCgKKyAgICAgICAgJnBvcywgJnJlbWFpbmluZywKKyAgICAgICAgKnRhcmdldF9vcGVyYXRpb24pOwogICAgIGlmICghb2spIHsKICAgICAgICAgZ290byBmYWlsOwogICAgIH0KIAogICAgIG9rID0gcHNhX2NyeXB0b19jYWxsKFBTQV9IQVNIX0NMT05FLAotICAgICAgICAgICAgICAgICAgICAgICAgIHBhcmFtcywgKHNpemVfdCkgKHBvcyAtIHBhcmFtcyksICZyZXN1bHQsICZyZXN1bHRfbGVuZ3RoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICBzZXJfcGFyYW1zLCAoc2l6ZV90KSAocG9zIC0gc2VyX3BhcmFtcyksICZzZXJfcmVzdWx0LCAmcmVzdWx0X2xlbmd0aCk7CiAgICAgaWYgKCFvaykgewogICAgICAgICBwcmludGYoIlBTQV9IQVNIX0NMT05FIHNlcnZlciBjYWxsIGZhaWxlZFxuIik7CiAgICAgICAgIGdvdG8gZmFpbDsKICAgICB9CiAKLSAgICB1aW50OF90ICpycG9zID0gcmVzdWx0OworICAgIHVpbnQ4X3QgKnJwb3MgPSBzZXJfcmVzdWx0OwogICAgIHNpemVfdCBycmVtYWluID0gcmVzdWx0X2xlbmd0aDsKIAogICAgIG9rID0gcHNhc2ltX2Rlc2VyaWFsaXNlX2JlZ2luKCZycG9zLCAmcnJlbWFpbik7CkBAIC0xMzc0LDE5ICszMTYzLDIzIEBACiAgICAgICAgIGdvdG8gZmFpbDsKICAgICB9CiAKLSAgICBvayA9IHBzYXNpbV9kZXNlcmlhbGlzZV9wc2Ffc3RhdHVzX3QoJnJwb3MsICZycmVtYWluLCAmc3RhdHVzKTsKKyAgICBvayA9IHBzYXNpbV9kZXNlcmlhbGlzZV9wc2Ffc3RhdHVzX3QoCisgICAgICAgICZycG9zLCAmcnJlbWFpbiwKKyAgICAgICAgJnN0YXR1cyk7CiAgICAgaWYgKCFvaykgewogICAgICAgICBnb3RvIGZhaWw7CiAgICAgfQogCi0gICAgb2sgPSBwc2FzaW1fZGVzZXJpYWxpc2VfcHNhX2hhc2hfb3BlcmF0aW9uX3QoJnJwb3MsICZycmVtYWluLCB0YXJnZXRfb3BlcmF0aW9uKTsKKyAgICBvayA9IHBzYXNpbV9kZXNlcmlhbGlzZV9wc2FfaGFzaF9vcGVyYXRpb25fdCgKKyAgICAgICAgJnJwb3MsICZycmVtYWluLAorICAgICAgICB0YXJnZXRfb3BlcmF0aW9uKTsKICAgICBpZiAoIW9rKSB7CiAgICAgICAgIGdvdG8gZmFpbDsKICAgICB9CiAKIGZhaWw6Ci0gICAgZnJlZShwYXJhbXMpOwotICAgIGZyZWUocmVzdWx0KTsKKyAgICBmcmVlKHNlcl9wYXJhbXMpOworICAgIGZyZWUoc2VyX3Jlc3VsdCk7CiAKICAgICByZXR1cm4gc3RhdHVzOwogfQpAQCAtMTM5OCw1MCArMzE5MSw1NyBAQAogICAgIGNvbnN0IHVpbnQ4X3QgKmhhc2gsIHNpemVfdCAgaGFzaF9sZW5ndGgKICAgICApCiB7Ci0gICAgdWludDhfdCAqcGFyYW1zID0gTlVMTDsKLSAgICB1aW50OF90ICpyZXN1bHQgPSBOVUxMOworICAgIHVpbnQ4X3QgKnNlcl9wYXJhbXMgPSBOVUxMOworICAgIHVpbnQ4X3QgKnNlcl9yZXN1bHQgPSBOVUxMOwogICAgIHNpemVfdCByZXN1bHRfbGVuZ3RoOwogICAgIHBzYV9zdGF0dXNfdCBzdGF0dXMgPSBQU0FfRVJST1JfQ09SUlVQVElPTl9ERVRFQ1RFRDsKIAotICAgIHNpemVfdCBuZWVkZWQgPSBwc2FzaW1fc2VyaWFsaXNlX2JlZ2luX25lZWRzKCkgKwotICAgICAgICAgICAgICAgICAgICBwc2FzaW1fc2VyaWFsaXNlX3BzYV9hbGdvcml0aG1fdF9uZWVkcyhhbGcpICsKLSAgICAgICAgICAgICAgICAgICAgcHNhc2ltX3NlcmlhbGlzZV9idWZmZXJfbmVlZHMoaW5wdXQsIGlucHV0X2xlbmd0aCkgKwotICAgICAgICAgICAgICAgICAgICBwc2FzaW1fc2VyaWFsaXNlX2J1ZmZlcl9uZWVkcyhoYXNoLCBoYXNoX2xlbmd0aCk7CisgICAgc2l6ZV90IG5lZWRlZCA9CisgICAgICAgIHBzYXNpbV9zZXJpYWxpc2VfYmVnaW5fbmVlZHMoKSArCisgICAgICAgIHBzYXNpbV9zZXJpYWxpc2VfcHNhX2FsZ29yaXRobV90X25lZWRzKGFsZykgKworICAgICAgICBwc2FzaW1fc2VyaWFsaXNlX2J1ZmZlcl9uZWVkcyhpbnB1dCwgaW5wdXRfbGVuZ3RoKSArCisgICAgICAgIHBzYXNpbV9zZXJpYWxpc2VfYnVmZmVyX25lZWRzKGhhc2gsIGhhc2hfbGVuZ3RoKTsKIAotICAgIHBhcmFtcyA9IG1hbGxvYyhuZWVkZWQpOwotICAgIGlmIChwYXJhbXMgPT0gTlVMTCkgeworICAgIHNlcl9wYXJhbXMgPSBtYWxsb2MobmVlZGVkKTsKKyAgICBpZiAoc2VyX3BhcmFtcyA9PSBOVUxMKSB7CiAgICAgICAgIHN0YXR1cyA9IFBTQV9FUlJPUl9JTlNVRkZJQ0lFTlRfTUVNT1JZOwogICAgICAgICBnb3RvIGZhaWw7CiAgICAgfQogCi0gICAgdWludDhfdCAqcG9zID0gcGFyYW1zOworICAgIHVpbnQ4X3QgKnBvcyA9IHNlcl9wYXJhbXM7CiAgICAgc2l6ZV90IHJlbWFpbmluZyA9IG5lZWRlZDsKICAgICBpbnQgb2s7CiAgICAgb2sgPSBwc2FzaW1fc2VyaWFsaXNlX2JlZ2luKCZwb3MsICZyZW1haW5pbmcpOwogICAgIGlmICghb2spIHsKICAgICAgICAgZ290byBmYWlsOwogICAgIH0KLSAgICBvayA9IHBzYXNpbV9zZXJpYWxpc2VfcHNhX2FsZ29yaXRobV90KCZwb3MsICZyZW1haW5pbmcsIGFsZyk7CisgICAgb2sgPSBwc2FzaW1fc2VyaWFsaXNlX3BzYV9hbGdvcml0aG1fdCgKKyAgICAgICAgJnBvcywgJnJlbWFpbmluZywKKyAgICAgICAgYWxnKTsKICAgICBpZiAoIW9rKSB7CiAgICAgICAgIGdvdG8gZmFpbDsKICAgICB9Ci0gICAgb2sgPSBwc2FzaW1fc2VyaWFsaXNlX2J1ZmZlcigmcG9zLCAmcmVtYWluaW5nLCBpbnB1dCwgaW5wdXRfbGVuZ3RoKTsKKyAgICBvayA9IHBzYXNpbV9zZXJpYWxpc2VfYnVmZmVyKAorICAgICAgICAmcG9zLCAmcmVtYWluaW5nLAorICAgICAgICBpbnB1dCwgaW5wdXRfbGVuZ3RoKTsKICAgICBpZiAoIW9rKSB7CiAgICAgICAgIGdvdG8gZmFpbDsKICAgICB9Ci0gICAgb2sgPSBwc2FzaW1fc2VyaWFsaXNlX2J1ZmZlcigmcG9zLCAmcmVtYWluaW5nLCBoYXNoLCBoYXNoX2xlbmd0aCk7CisgICAgb2sgPSBwc2FzaW1fc2VyaWFsaXNlX2J1ZmZlcigKKyAgICAgICAgJnBvcywgJnJlbWFpbmluZywKKyAgICAgICAgaGFzaCwgaGFzaF9sZW5ndGgpOwogICAgIGlmICghb2spIHsKICAgICAgICAgZ290byBmYWlsOwogICAgIH0KIAogICAgIG9rID0gcHNhX2NyeXB0b19jYWxsKFBTQV9IQVNIX0NPTVBBUkUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgcGFyYW1zLCAoc2l6ZV90KSAocG9zIC0gcGFyYW1zKSwgJnJlc3VsdCwgJnJlc3VsdF9sZW5ndGgpOworICAgICAgICAgICAgICAgICAgICAgICAgIHNlcl9wYXJhbXMsIChzaXplX3QpIChwb3MgLSBzZXJfcGFyYW1zKSwgJnNlcl9yZXN1bHQsICZyZXN1bHRfbGVuZ3RoKTsKICAgICBpZiAoIW9rKSB7CiAgICAgICAgIHByaW50ZigiUFNBX0hBU0hfQ09NUEFSRSBzZXJ2ZXIgY2FsbCBmYWlsZWRcbiIpOwogICAgICAgICBnb3RvIGZhaWw7CiAgICAgfQogCi0gICAgdWludDhfdCAqcnBvcyA9IHJlc3VsdDsKKyAgICB1aW50OF90ICpycG9zID0gc2VyX3Jlc3VsdDsKICAgICBzaXplX3QgcnJlbWFpbiA9IHJlc3VsdF9sZW5ndGg7CiAKICAgICBvayA9IHBzYXNpbV9kZXNlcmlhbGlzZV9iZWdpbigmcnBvcywgJnJyZW1haW4pOwpAQCAtMTQ0OSwxNCArMzI0OSwxNiBAQAogICAgICAgICBnb3RvIGZhaWw7CiAgICAgfQogCi0gICAgb2sgPSBwc2FzaW1fZGVzZXJpYWxpc2VfcHNhX3N0YXR1c190KCZycG9zLCAmcnJlbWFpbiwgJnN0YXR1cyk7CisgICAgb2sgPSBwc2FzaW1fZGVzZXJpYWxpc2VfcHNhX3N0YXR1c190KAorICAgICAgICAmcnBvcywgJnJyZW1haW4sCisgICAgICAgICZzdGF0dXMpOwogICAgIGlmICghb2spIHsKICAgICAgICAgZ290byBmYWlsOwogICAgIH0KIAogZmFpbDoKLSAgICBmcmVlKHBhcmFtcyk7Ci0gICAgZnJlZShyZXN1bHQpOworICAgIGZyZWUoc2VyX3BhcmFtcyk7CisgICAgZnJlZShzZXJfcmVzdWx0KTsKIAogICAgIHJldHVybiBzdGF0dXM7CiB9CkBAIC0xNDY5LDU1ICszMjcxLDY0IEBACiAgICAgc2l6ZV90ICpoYXNoX2xlbmd0aAogICAgICkKIHsKLSAgICB1aW50OF90ICpwYXJhbXMgPSBOVUxMOwotICAgIHVpbnQ4X3QgKnJlc3VsdCA9IE5VTEw7CisgICAgdWludDhfdCAqc2VyX3BhcmFtcyA9IE5VTEw7CisgICAgdWludDhfdCAqc2VyX3Jlc3VsdCA9IE5VTEw7CiAgICAgc2l6ZV90IHJlc3VsdF9sZW5ndGg7CiAgICAgcHNhX3N0YXR1c190IHN0YXR1cyA9IFBTQV9FUlJPUl9DT1JSVVBUSU9OX0RFVEVDVEVEOwogCi0gICAgc2l6ZV90IG5lZWRlZCA9IHBzYXNpbV9zZXJpYWxpc2VfYmVnaW5fbmVlZHMoKSArCi0gICAgICAgICAgICAgICAgICAgIHBzYXNpbV9zZXJpYWxpc2VfcHNhX2FsZ29yaXRobV90X25lZWRzKGFsZykgKwotICAgICAgICAgICAgICAgICAgICBwc2FzaW1fc2VyaWFsaXNlX2J1ZmZlcl9uZWVkcyhpbnB1dCwgaW5wdXRfbGVuZ3RoKSArCi0gICAgICAgICAgICAgICAgICAgIHBzYXNpbV9zZXJpYWxpc2VfYnVmZmVyX25lZWRzKGhhc2gsIGhhc2hfc2l6ZSkgKwotICAgICAgICAgICAgICAgICAgICBwc2FzaW1fc2VyaWFsaXNlX3NpemVfdF9uZWVkcygqaGFzaF9sZW5ndGgpOworICAgIHNpemVfdCBuZWVkZWQgPQorICAgICAgICBwc2FzaW1fc2VyaWFsaXNlX2JlZ2luX25lZWRzKCkgKworICAgICAgICBwc2FzaW1fc2VyaWFsaXNlX3BzYV9hbGdvcml0aG1fdF9uZWVkcyhhbGcpICsKKyAgICAgICAgcHNhc2ltX3NlcmlhbGlzZV9idWZmZXJfbmVlZHMoaW5wdXQsIGlucHV0X2xlbmd0aCkgKworICAgICAgICBwc2FzaW1fc2VyaWFsaXNlX2J1ZmZlcl9uZWVkcyhoYXNoLCBoYXNoX3NpemUpICsKKyAgICAgICAgcHNhc2ltX3NlcmlhbGlzZV9zaXplX3RfbmVlZHMoKmhhc2hfbGVuZ3RoKTsKIAotICAgIHBhcmFtcyA9IG1hbGxvYyhuZWVkZWQpOwotICAgIGlmIChwYXJhbXMgPT0gTlVMTCkgeworICAgIHNlcl9wYXJhbXMgPSBtYWxsb2MobmVlZGVkKTsKKyAgICBpZiAoc2VyX3BhcmFtcyA9PSBOVUxMKSB7CiAgICAgICAgIHN0YXR1cyA9IFBTQV9FUlJPUl9JTlNVRkZJQ0lFTlRfTUVNT1JZOwogICAgICAgICBnb3RvIGZhaWw7CiAgICAgfQogCi0gICAgdWludDhfdCAqcG9zID0gcGFyYW1zOworICAgIHVpbnQ4X3QgKnBvcyA9IHNlcl9wYXJhbXM7CiAgICAgc2l6ZV90IHJlbWFpbmluZyA9IG5lZWRlZDsKICAgICBpbnQgb2s7CiAgICAgb2sgPSBwc2FzaW1fc2VyaWFsaXNlX2JlZ2luKCZwb3MsICZyZW1haW5pbmcpOwogICAgIGlmICghb2spIHsKICAgICAgICAgZ290byBmYWlsOwogICAgIH0KLSAgICBvayA9IHBzYXNpbV9zZXJpYWxpc2VfcHNhX2FsZ29yaXRobV90KCZwb3MsICZyZW1haW5pbmcsIGFsZyk7CisgICAgb2sgPSBwc2FzaW1fc2VyaWFsaXNlX3BzYV9hbGdvcml0aG1fdCgKKyAgICAgICAgJnBvcywgJnJlbWFpbmluZywKKyAgICAgICAgYWxnKTsKICAgICBpZiAoIW9rKSB7CiAgICAgICAgIGdvdG8gZmFpbDsKICAgICB9Ci0gICAgb2sgPSBwc2FzaW1fc2VyaWFsaXNlX2J1ZmZlcigmcG9zLCAmcmVtYWluaW5nLCBpbnB1dCwgaW5wdXRfbGVuZ3RoKTsKKyAgICBvayA9IHBzYXNpbV9zZXJpYWxpc2VfYnVmZmVyKAorICAgICAgICAmcG9zLCAmcmVtYWluaW5nLAorICAgICAgICBpbnB1dCwgaW5wdXRfbGVuZ3RoKTsKICAgICBpZiAoIW9rKSB7CiAgICAgICAgIGdvdG8gZmFpbDsKICAgICB9Ci0gICAgb2sgPSBwc2FzaW1fc2VyaWFsaXNlX2J1ZmZlcigmcG9zLCAmcmVtYWluaW5nLCBoYXNoLCBoYXNoX3NpemUpOworICAgIG9rID0gcHNhc2ltX3NlcmlhbGlzZV9idWZmZXIoCisgICAgICAgICZwb3MsICZyZW1haW5pbmcsCisgICAgICAgIGhhc2gsIGhhc2hfc2l6ZSk7CiAgICAgaWYgKCFvaykgewogICAgICAgICBnb3RvIGZhaWw7CiAgICAgfQotICAgIG9rID0gcHNhc2ltX3NlcmlhbGlzZV9zaXplX3QoJnBvcywgJnJlbWFpbmluZywgKmhhc2hfbGVuZ3RoKTsKKyAgICBvayA9IHBzYXNpbV9zZXJpYWxpc2Vfc2l6ZV90KAorICAgICAgICAmcG9zLCAmcmVtYWluaW5nLAorICAgICAgICAqaGFzaF9sZW5ndGgpOwogICAgIGlmICghb2spIHsKICAgICAgICAgZ290byBmYWlsOwogICAgIH0KIAogICAgIG9rID0gcHNhX2NyeXB0b19jYWxsKFBTQV9IQVNIX0NPTVBVVEUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgcGFyYW1zLCAoc2l6ZV90KSAocG9zIC0gcGFyYW1zKSwgJnJlc3VsdCwgJnJlc3VsdF9sZW5ndGgpOworICAgICAgICAgICAgICAgICAgICAgICAgIHNlcl9wYXJhbXMsIChzaXplX3QpIChwb3MgLSBzZXJfcGFyYW1zKSwgJnNlcl9yZXN1bHQsICZyZXN1bHRfbGVuZ3RoKTsKICAgICBpZiAoIW9rKSB7CiAgICAgICAgIHByaW50ZigiUFNBX0hBU0hfQ09NUFVURSBzZXJ2ZXIgY2FsbCBmYWlsZWRcbiIpOwogICAgICAgICBnb3RvIGZhaWw7CiAgICAgfQogCi0gICAgdWludDhfdCAqcnBvcyA9IHJlc3VsdDsKKyAgICB1aW50OF90ICpycG9zID0gc2VyX3Jlc3VsdDsKICAgICBzaXplX3QgcnJlbWFpbiA9IHJlc3VsdF9sZW5ndGg7CiAKICAgICBvayA9IHBzYXNpbV9kZXNlcmlhbGlzZV9iZWdpbigmcnBvcywgJnJyZW1haW4pOwpAQCAtMTUyNSwyNCArMzMzNiwzMCBAQAogICAgICAgICBnb3RvIGZhaWw7CiAgICAgfQogCi0gICAgb2sgPSBwc2FzaW1fZGVzZXJpYWxpc2VfcHNhX3N0YXR1c190KCZycG9zLCAmcnJlbWFpbiwgJnN0YXR1cyk7CisgICAgb2sgPSBwc2FzaW1fZGVzZXJpYWxpc2VfcHNhX3N0YXR1c190KAorICAgICAgICAmcnBvcywgJnJyZW1haW4sCisgICAgICAgICZzdGF0dXMpOwogICAgIGlmICghb2spIHsKICAgICAgICAgZ290byBmYWlsOwogICAgIH0KIAotICAgIG9rID0gcHNhc2ltX2Rlc2VyaWFsaXNlX3JldHVybl9idWZmZXIoJnJwb3MsICZycmVtYWluLCBoYXNoLCBoYXNoX3NpemUpOworICAgIG9rID0gcHNhc2ltX2Rlc2VyaWFsaXNlX3JldHVybl9idWZmZXIoCisgICAgICAgICZycG9zLCAmcnJlbWFpbiwKKyAgICAgICAgaGFzaCwgaGFzaF9zaXplKTsKICAgICBpZiAoIW9rKSB7CiAgICAgICAgIGdvdG8gZmFpbDsKICAgICB9CiAKLSAgICBvayA9IHBzYXNpbV9kZXNlcmlhbGlzZV9zaXplX3QoJnJwb3MsICZycmVtYWluLCBoYXNoX2xlbmd0aCk7CisgICAgb2sgPSBwc2FzaW1fZGVzZXJpYWxpc2Vfc2l6ZV90KAorICAgICAgICAmcnBvcywgJnJyZW1haW4sCisgICAgICAgIGhhc2hfbGVuZ3RoKTsKICAgICBpZiAoIW9rKSB7CiAgICAgICAgIGdvdG8gZmFpbDsKICAgICB9CiAKIGZhaWw6Ci0gICAgZnJlZShwYXJhbXMpOwotICAgIGZyZWUocmVzdWx0KTsKKyAgICBmcmVlKHNlcl9wYXJhbXMpOworICAgIGZyZWUoc2VyX3Jlc3VsdCk7CiAKICAgICByZXR1cm4gc3RhdHVzOwogfQpAQCAtMTU1NCw1MCArMzM3MSw1NyBAQAogICAgIHNpemVfdCAqaGFzaF9sZW5ndGgKICAgICApCiB7Ci0gICAgdWludDhfdCAqcGFyYW1zID0gTlVMTDsKLSAgICB1aW50OF90ICpyZXN1bHQgPSBOVUxMOworICAgIHVpbnQ4X3QgKnNlcl9wYXJhbXMgPSBOVUxMOworICAgIHVpbnQ4X3QgKnNlcl9yZXN1bHQgPSBOVUxMOwogICAgIHNpemVfdCByZXN1bHRfbGVuZ3RoOwogICAgIHBzYV9zdGF0dXNfdCBzdGF0dXMgPSBQU0FfRVJST1JfQ09SUlVQVElPTl9ERVRFQ1RFRDsKIAotICAgIHNpemVfdCBuZWVkZWQgPSBwc2FzaW1fc2VyaWFsaXNlX2JlZ2luX25lZWRzKCkgKwotICAgICAgICAgICAgICAgICAgICBwc2FzaW1fc2VyaWFsaXNlX3BzYV9oYXNoX29wZXJhdGlvbl90X25lZWRzKCpvcGVyYXRpb24pICsKLSAgICAgICAgICAgICAgICAgICAgcHNhc2ltX3NlcmlhbGlzZV9idWZmZXJfbmVlZHMoaGFzaCwgaGFzaF9zaXplKSArCi0gICAgICAgICAgICAgICAgICAgIHBzYXNpbV9zZXJpYWxpc2Vfc2l6ZV90X25lZWRzKCpoYXNoX2xlbmd0aCk7CisgICAgc2l6ZV90IG5lZWRlZCA9CisgICAgICAgIHBzYXNpbV9zZXJpYWxpc2VfYmVnaW5fbmVlZHMoKSArCisgICAgICAgIHBzYXNpbV9zZXJpYWxpc2VfcHNhX2hhc2hfb3BlcmF0aW9uX3RfbmVlZHMoKm9wZXJhdGlvbikgKworICAgICAgICBwc2FzaW1fc2VyaWFsaXNlX2J1ZmZlcl9uZWVkcyhoYXNoLCBoYXNoX3NpemUpICsKKyAgICAgICAgcHNhc2ltX3NlcmlhbGlzZV9zaXplX3RfbmVlZHMoKmhhc2hfbGVuZ3RoKTsKIAotICAgIHBhcmFtcyA9IG1hbGxvYyhuZWVkZWQpOwotICAgIGlmIChwYXJhbXMgPT0gTlVMTCkgeworICAgIHNlcl9wYXJhbXMgPSBtYWxsb2MobmVlZGVkKTsKKyAgICBpZiAoc2VyX3BhcmFtcyA9PSBOVUxMKSB7CiAgICAgICAgIHN0YXR1cyA9IFBTQV9FUlJPUl9JTlNVRkZJQ0lFTlRfTUVNT1JZOwogICAgICAgICBnb3RvIGZhaWw7CiAgICAgfQogCi0gICAgdWludDhfdCAqcG9zID0gcGFyYW1zOworICAgIHVpbnQ4X3QgKnBvcyA9IHNlcl9wYXJhbXM7CiAgICAgc2l6ZV90IHJlbWFpbmluZyA9IG5lZWRlZDsKICAgICBpbnQgb2s7CiAgICAgb2sgPSBwc2FzaW1fc2VyaWFsaXNlX2JlZ2luKCZwb3MsICZyZW1haW5pbmcpOwogICAgIGlmICghb2spIHsKICAgICAgICAgZ290byBmYWlsOwogICAgIH0KLSAgICBvayA9IHBzYXNpbV9zZXJpYWxpc2VfcHNhX2hhc2hfb3BlcmF0aW9uX3QoJnBvcywgJnJlbWFpbmluZywgKm9wZXJhdGlvbik7CisgICAgb2sgPSBwc2FzaW1fc2VyaWFsaXNlX3BzYV9oYXNoX29wZXJhdGlvbl90KAorICAgICAgICAmcG9zLCAmcmVtYWluaW5nLAorICAgICAgICAqb3BlcmF0aW9uKTsKICAgICBpZiAoIW9rKSB7CiAgICAgICAgIGdvdG8gZmFpbDsKICAgICB9Ci0gICAgb2sgPSBwc2FzaW1fc2VyaWFsaXNlX2J1ZmZlcigmcG9zLCAmcmVtYWluaW5nLCBoYXNoLCBoYXNoX3NpemUpOworICAgIG9rID0gcHNhc2ltX3NlcmlhbGlzZV9idWZmZXIoCisgICAgICAgICZwb3MsICZyZW1haW5pbmcsCisgICAgICAgIGhhc2gsIGhhc2hfc2l6ZSk7CiAgICAgaWYgKCFvaykgewogICAgICAgICBnb3RvIGZhaWw7CiAgICAgfQotICAgIG9rID0gcHNhc2ltX3NlcmlhbGlzZV9zaXplX3QoJnBvcywgJnJlbWFpbmluZywgKmhhc2hfbGVuZ3RoKTsKKyAgICBvayA9IHBzYXNpbV9zZXJpYWxpc2Vfc2l6ZV90KAorICAgICAgICAmcG9zLCAmcmVtYWluaW5nLAorICAgICAgICAqaGFzaF9sZW5ndGgpOwogICAgIGlmICghb2spIHsKICAgICAgICAgZ290byBmYWlsOwogICAgIH0KIAogICAgIG9rID0gcHNhX2NyeXB0b19jYWxsKFBTQV9IQVNIX0ZJTklTSCwKLSAgICAgICAgICAgICAgICAgICAgICAgICBwYXJhbXMsIChzaXplX3QpIChwb3MgLSBwYXJhbXMpLCAmcmVzdWx0LCAmcmVzdWx0X2xlbmd0aCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgc2VyX3BhcmFtcywgKHNpemVfdCkgKHBvcyAtIHNlcl9wYXJhbXMpLCAmc2VyX3Jlc3VsdCwgJnJlc3VsdF9sZW5ndGgpOwogICAgIGlmICghb2spIHsKICAgICAgICAgcHJpbnRmKCJQU0FfSEFTSF9GSU5JU0ggc2VydmVyIGNhbGwgZmFpbGVkXG4iKTsKICAgICAgICAgZ290byBmYWlsOwogICAgIH0KIAotICAgIHVpbnQ4X3QgKnJwb3MgPSByZXN1bHQ7CisgICAgdWludDhfdCAqcnBvcyA9IHNlcl9yZXN1bHQ7CiAgICAgc2l6ZV90IHJyZW1haW4gPSByZXN1bHRfbGVuZ3RoOwogCiAgICAgb2sgPSBwc2FzaW1fZGVzZXJpYWxpc2VfYmVnaW4oJnJwb3MsICZycmVtYWluKTsKQEAgLTE2MDUsMjkgKzM0MjksMzcgQEAKICAgICAgICAgZ290byBmYWlsOwogICAgIH0KIAotICAgIG9rID0gcHNhc2ltX2Rlc2VyaWFsaXNlX3BzYV9zdGF0dXNfdCgmcnBvcywgJnJyZW1haW4sICZzdGF0dXMpOworICAgIG9rID0gcHNhc2ltX2Rlc2VyaWFsaXNlX3BzYV9zdGF0dXNfdCgKKyAgICAgICAgJnJwb3MsICZycmVtYWluLAorICAgICAgICAmc3RhdHVzKTsKICAgICBpZiAoIW9rKSB7CiAgICAgICAgIGdvdG8gZmFpbDsKICAgICB9CiAKLSAgICBvayA9IHBzYXNpbV9kZXNlcmlhbGlzZV9wc2FfaGFzaF9vcGVyYXRpb25fdCgmcnBvcywgJnJyZW1haW4sIG9wZXJhdGlvbik7CisgICAgb2sgPSBwc2FzaW1fZGVzZXJpYWxpc2VfcHNhX2hhc2hfb3BlcmF0aW9uX3QoCisgICAgICAgICZycG9zLCAmcnJlbWFpbiwKKyAgICAgICAgb3BlcmF0aW9uKTsKICAgICBpZiAoIW9rKSB7CiAgICAgICAgIGdvdG8gZmFpbDsKICAgICB9CiAKLSAgICBvayA9IHBzYXNpbV9kZXNlcmlhbGlzZV9yZXR1cm5fYnVmZmVyKCZycG9zLCAmcnJlbWFpbiwgaGFzaCwgaGFzaF9zaXplKTsKKyAgICBvayA9IHBzYXNpbV9kZXNlcmlhbGlzZV9yZXR1cm5fYnVmZmVyKAorICAgICAgICAmcnBvcywgJnJyZW1haW4sCisgICAgICAgIGhhc2gsIGhhc2hfc2l6ZSk7CiAgICAgaWYgKCFvaykgewogICAgICAgICBnb3RvIGZhaWw7CiAgICAgfQogCi0gICAgb2sgPSBwc2FzaW1fZGVzZXJpYWxpc2Vfc2l6ZV90KCZycG9zLCAmcnJlbWFpbiwgaGFzaF9sZW5ndGgpOworICAgIG9rID0gcHNhc2ltX2Rlc2VyaWFsaXNlX3NpemVfdCgKKyAgICAgICAgJnJwb3MsICZycmVtYWluLAorICAgICAgICBoYXNoX2xlbmd0aCk7CiAgICAgaWYgKCFvaykgewogICAgICAgICBnb3RvIGZhaWw7CiAgICAgfQogCiBmYWlsOgotICAgIGZyZWUocGFyYW1zKTsKLSAgICBmcmVlKHJlc3VsdCk7CisgICAgZnJlZShzZXJfcGFyYW1zKTsKKyAgICBmcmVlKHNlcl9yZXN1bHQpOwogCiAgICAgcmV0dXJuIHN0YXR1czsKIH0KQEAgLTE2MzgsNDUgKzM0NzAsNTAgQEAKICAgICBwc2FfYWxnb3JpdGhtX3QgYWxnCiAgICAgKQogewotICAgIHVpbnQ4X3QgKnBhcmFtcyA9IE5VTEw7Ci0gICAgdWludDhfdCAqcmVzdWx0ID0gTlVMTDsKKyAgICB1aW50OF90ICpzZXJfcGFyYW1zID0gTlVMTDsKKyAgICB1aW50OF90ICpzZXJfcmVzdWx0ID0gTlVMTDsKICAgICBzaXplX3QgcmVzdWx0X2xlbmd0aDsKICAgICBwc2Ffc3RhdHVzX3Qgc3RhdHVzID0gUFNBX0VSUk9SX0NPUlJVUFRJT05fREVURUNURUQ7CiAKLSAgICBzaXplX3QgbmVlZGVkID0gcHNhc2ltX3NlcmlhbGlzZV9iZWdpbl9uZWVkcygpICsKLSAgICAgICAgICAgICAgICAgICAgcHNhc2ltX3NlcmlhbGlzZV9wc2FfaGFzaF9vcGVyYXRpb25fdF9uZWVkcygqb3BlcmF0aW9uKSArCi0gICAgICAgICAgICAgICAgICAgIHBzYXNpbV9zZXJpYWxpc2VfcHNhX2FsZ29yaXRobV90X25lZWRzKGFsZyk7CisgICAgc2l6ZV90IG5lZWRlZCA9CisgICAgICAgIHBzYXNpbV9zZXJpYWxpc2VfYmVnaW5fbmVlZHMoKSArCisgICAgICAgIHBzYXNpbV9zZXJpYWxpc2VfcHNhX2hhc2hfb3BlcmF0aW9uX3RfbmVlZHMoKm9wZXJhdGlvbikgKworICAgICAgICBwc2FzaW1fc2VyaWFsaXNlX3BzYV9hbGdvcml0aG1fdF9uZWVkcyhhbGcpOwogCi0gICAgcGFyYW1zID0gbWFsbG9jKG5lZWRlZCk7Ci0gICAgaWYgKHBhcmFtcyA9PSBOVUxMKSB7CisgICAgc2VyX3BhcmFtcyA9IG1hbGxvYyhuZWVkZWQpOworICAgIGlmIChzZXJfcGFyYW1zID09IE5VTEwpIHsKICAgICAgICAgc3RhdHVzID0gUFNBX0VSUk9SX0lOU1VGRklDSUVOVF9NRU1PUlk7CiAgICAgICAgIGdvdG8gZmFpbDsKICAgICB9CiAKLSAgICB1aW50OF90ICpwb3MgPSBwYXJhbXM7CisgICAgdWludDhfdCAqcG9zID0gc2VyX3BhcmFtczsKICAgICBzaXplX3QgcmVtYWluaW5nID0gbmVlZGVkOwogICAgIGludCBvazsKICAgICBvayA9IHBzYXNpbV9zZXJpYWxpc2VfYmVnaW4oJnBvcywgJnJlbWFpbmluZyk7CiAgICAgaWYgKCFvaykgewogICAgICAgICBnb3RvIGZhaWw7CiAgICAgfQotICAgIG9rID0gcHNhc2ltX3NlcmlhbGlzZV9wc2FfaGFzaF9vcGVyYXRpb25fdCgmcG9zLCAmcmVtYWluaW5nLCAqb3BlcmF0aW9uKTsKKyAgICBvayA9IHBzYXNpbV9zZXJpYWxpc2VfcHNhX2hhc2hfb3BlcmF0aW9uX3QoCisgICAgICAgICZwb3MsICZyZW1haW5pbmcsCisgICAgICAgICpvcGVyYXRpb24pOwogICAgIGlmICghb2spIHsKICAgICAgICAgZ290byBmYWlsOwogICAgIH0KLSAgICBvayA9IHBzYXNpbV9zZXJpYWxpc2VfcHNhX2FsZ29yaXRobV90KCZwb3MsICZyZW1haW5pbmcsIGFsZyk7CisgICAgb2sgPSBwc2FzaW1fc2VyaWFsaXNlX3BzYV9hbGdvcml0aG1fdCgKKyAgICAgICAgJnBvcywgJnJlbWFpbmluZywKKyAgICAgICAgYWxnKTsKICAgICBpZiAoIW9rKSB7CiAgICAgICAgIGdvdG8gZmFpbDsKICAgICB9CiAKICAgICBvayA9IHBzYV9jcnlwdG9fY2FsbChQU0FfSEFTSF9TRVRVUCwKLSAgICAgICAgICAgICAgICAgICAgICAgICBwYXJhbXMsIChzaXplX3QpIChwb3MgLSBwYXJhbXMpLCAmcmVzdWx0LCAmcmVzdWx0X2xlbmd0aCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgc2VyX3BhcmFtcywgKHNpemVfdCkgKHBvcyAtIHNlcl9wYXJhbXMpLCAmc2VyX3Jlc3VsdCwgJnJlc3VsdF9sZW5ndGgpOwogICAgIGlmICghb2spIHsKICAgICAgICAgcHJpbnRmKCJQU0FfSEFTSF9TRVRVUCBzZXJ2ZXIgY2FsbCBmYWlsZWRcbiIpOwogICAgICAgICBnb3RvIGZhaWw7CiAgICAgfQogCi0gICAgdWludDhfdCAqcnBvcyA9IHJlc3VsdDsKKyAgICB1aW50OF90ICpycG9zID0gc2VyX3Jlc3VsdDsKICAgICBzaXplX3QgcnJlbWFpbiA9IHJlc3VsdF9sZW5ndGg7CiAKICAgICBvayA9IHBzYXNpbV9kZXNlcmlhbGlzZV9iZWdpbigmcnBvcywgJnJyZW1haW4pOwpAQCAtMTY4NCwxOSArMzUyMSwyMyBAQAogICAgICAgICBnb3RvIGZhaWw7CiAgICAgfQogCi0gICAgb2sgPSBwc2FzaW1fZGVzZXJpYWxpc2VfcHNhX3N0YXR1c190KCZycG9zLCAmcnJlbWFpbiwgJnN0YXR1cyk7CisgICAgb2sgPSBwc2FzaW1fZGVzZXJpYWxpc2VfcHNhX3N0YXR1c190KAorICAgICAgICAmcnBvcywgJnJyZW1haW4sCisgICAgICAgICZzdGF0dXMpOwogICAgIGlmICghb2spIHsKICAgICAgICAgZ290byBmYWlsOwogICAgIH0KIAotICAgIG9rID0gcHNhc2ltX2Rlc2VyaWFsaXNlX3BzYV9oYXNoX29wZXJhdGlvbl90KCZycG9zLCAmcnJlbWFpbiwgb3BlcmF0aW9uKTsKKyAgICBvayA9IHBzYXNpbV9kZXNlcmlhbGlzZV9wc2FfaGFzaF9vcGVyYXRpb25fdCgKKyAgICAgICAgJnJwb3MsICZycmVtYWluLAorICAgICAgICBvcGVyYXRpb24pOwogICAgIGlmICghb2spIHsKICAgICAgICAgZ290byBmYWlsOwogICAgIH0KIAogZmFpbDoKLSAgICBmcmVlKHBhcmFtcyk7Ci0gICAgZnJlZShyZXN1bHQpOworICAgIGZyZWUoc2VyX3BhcmFtcyk7CisgICAgZnJlZShzZXJfcmVzdWx0KTsKIAogICAgIHJldHVybiBzdGF0dXM7CiB9CkBAIC0xNzA3LDQ1ICszNTQ4LDUwIEBACiAgICAgY29uc3QgdWludDhfdCAqaW5wdXQsIHNpemVfdCAgaW5wdXRfbGVuZ3RoCiAgICAgKQogewotICAgIHVpbnQ4X3QgKnBhcmFtcyA9IE5VTEw7Ci0gICAgdWludDhfdCAqcmVzdWx0ID0gTlVMTDsKKyAgICB1aW50OF90ICpzZXJfcGFyYW1zID0gTlVMTDsKKyAgICB1aW50OF90ICpzZXJfcmVzdWx0ID0gTlVMTDsKICAgICBzaXplX3QgcmVzdWx0X2xlbmd0aDsKICAgICBwc2Ffc3RhdHVzX3Qgc3RhdHVzID0gUFNBX0VSUk9SX0NPUlJVUFRJT05fREVURUNURUQ7CiAKLSAgICBzaXplX3QgbmVlZGVkID0gcHNhc2ltX3NlcmlhbGlzZV9iZWdpbl9uZWVkcygpICsKLSAgICAgICAgICAgICAgICAgICAgcHNhc2ltX3NlcmlhbGlzZV9wc2FfaGFzaF9vcGVyYXRpb25fdF9uZWVkcygqb3BlcmF0aW9uKSArCi0gICAgICAgICAgICAgICAgICAgIHBzYXNpbV9zZXJpYWxpc2VfYnVmZmVyX25lZWRzKGlucHV0LCBpbnB1dF9sZW5ndGgpOworICAgIHNpemVfdCBuZWVkZWQgPQorICAgICAgICBwc2FzaW1fc2VyaWFsaXNlX2JlZ2luX25lZWRzKCkgKworICAgICAgICBwc2FzaW1fc2VyaWFsaXNlX3BzYV9oYXNoX29wZXJhdGlvbl90X25lZWRzKCpvcGVyYXRpb24pICsKKyAgICAgICAgcHNhc2ltX3NlcmlhbGlzZV9idWZmZXJfbmVlZHMoaW5wdXQsIGlucHV0X2xlbmd0aCk7CiAKLSAgICBwYXJhbXMgPSBtYWxsb2MobmVlZGVkKTsKLSAgICBpZiAocGFyYW1zID09IE5VTEwpIHsKKyAgICBzZXJfcGFyYW1zID0gbWFsbG9jKG5lZWRlZCk7CisgICAgaWYgKHNlcl9wYXJhbXMgPT0gTlVMTCkgewogICAgICAgICBzdGF0dXMgPSBQU0FfRVJST1JfSU5TVUZGSUNJRU5UX01FTU9SWTsKICAgICAgICAgZ290byBmYWlsOwogICAgIH0KIAotICAgIHVpbnQ4X3QgKnBvcyA9IHBhcmFtczsKKyAgICB1aW50OF90ICpwb3MgPSBzZXJfcGFyYW1zOwogICAgIHNpemVfdCByZW1haW5pbmcgPSBuZWVkZWQ7CiAgICAgaW50IG9rOwogICAgIG9rID0gcHNhc2ltX3NlcmlhbGlzZV9iZWdpbigmcG9zLCAmcmVtYWluaW5nKTsKICAgICBpZiAoIW9rKSB7CiAgICAgICAgIGdvdG8gZmFpbDsKICAgICB9Ci0gICAgb2sgPSBwc2FzaW1fc2VyaWFsaXNlX3BzYV9oYXNoX29wZXJhdGlvbl90KCZwb3MsICZyZW1haW5pbmcsICpvcGVyYXRpb24pOworICAgIG9rID0gcHNhc2ltX3NlcmlhbGlzZV9wc2FfaGFzaF9vcGVyYXRpb25fdCgKKyAgICAgICAgJnBvcywgJnJlbWFpbmluZywKKyAgICAgICAgKm9wZXJhdGlvbik7CiAgICAgaWYgKCFvaykgewogICAgICAgICBnb3RvIGZhaWw7CiAgICAgfQotICAgIG9rID0gcHNhc2ltX3NlcmlhbGlzZV9idWZmZXIoJnBvcywgJnJlbWFpbmluZywgaW5wdXQsIGlucHV0X2xlbmd0aCk7CisgICAgb2sgPSBwc2FzaW1fc2VyaWFsaXNlX2J1ZmZlcigKKyAgICAgICAgJnBvcywgJnJlbWFpbmluZywKKyAgICAgICAgaW5wdXQsIGlucHV0X2xlbmd0aCk7CiAgICAgaWYgKCFvaykgewogICAgICAgICBnb3RvIGZhaWw7CiAgICAgfQogCiAgICAgb2sgPSBwc2FfY3J5cHRvX2NhbGwoUFNBX0hBU0hfVVBEQVRFLAotICAgICAgICAgICAgICAgICAgICAgICAgIHBhcmFtcywgKHNpemVfdCkgKHBvcyAtIHBhcmFtcyksICZyZXN1bHQsICZyZXN1bHRfbGVuZ3RoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICBzZXJfcGFyYW1zLCAoc2l6ZV90KSAocG9zIC0gc2VyX3BhcmFtcyksICZzZXJfcmVzdWx0LCAmcmVzdWx0X2xlbmd0aCk7CiAgICAgaWYgKCFvaykgewogICAgICAgICBwcmludGYoIlBTQV9IQVNIX1VQREFURSBzZXJ2ZXIgY2FsbCBmYWlsZWRcbiIpOwogICAgICAgICBnb3RvIGZhaWw7CiAgICAgfQogCi0gICAgdWludDhfdCAqcnBvcyA9IHJlc3VsdDsKKyAgICB1aW50OF90ICpycG9zID0gc2VyX3Jlc3VsdDsKICAgICBzaXplX3QgcnJlbWFpbiA9IHJlc3VsdF9sZW5ndGg7CiAKICAgICBvayA9IHBzYXNpbV9kZXNlcmlhbGlzZV9iZWdpbigmcnBvcywgJnJyZW1haW4pOwpAQCAtMTc1MywxOSArMzU5OSwyMyBAQAogICAgICAgICBnb3RvIGZhaWw7CiAgICAgfQogCi0gICAgb2sgPSBwc2FzaW1fZGVzZXJpYWxpc2VfcHNhX3N0YXR1c190KCZycG9zLCAmcnJlbWFpbiwgJnN0YXR1cyk7CisgICAgb2sgPSBwc2FzaW1fZGVzZXJpYWxpc2VfcHNhX3N0YXR1c190KAorICAgICAgICAmcnBvcywgJnJyZW1haW4sCisgICAgICAgICZzdGF0dXMpOwogICAgIGlmICghb2spIHsKICAgICAgICAgZ290byBmYWlsOwogICAgIH0KIAotICAgIG9rID0gcHNhc2ltX2Rlc2VyaWFsaXNlX3BzYV9oYXNoX29wZXJhdGlvbl90KCZycG9zLCAmcnJlbWFpbiwgb3BlcmF0aW9uKTsKKyAgICBvayA9IHBzYXNpbV9kZXNlcmlhbGlzZV9wc2FfaGFzaF9vcGVyYXRpb25fdCgKKyAgICAgICAgJnJwb3MsICZycmVtYWluLAorICAgICAgICBvcGVyYXRpb24pOwogICAgIGlmICghb2spIHsKICAgICAgICAgZ290byBmYWlsOwogICAgIH0KIAogZmFpbDoKLSAgICBmcmVlKHBhcmFtcyk7Ci0gICAgZnJlZShyZXN1bHQpOworICAgIGZyZWUoc2VyX3BhcmFtcyk7CisgICAgZnJlZShzZXJfcmVzdWx0KTsKIAogICAgIHJldHVybiBzdGF0dXM7CiB9CkBAIC0xNzc2LDQ1ICszNjI2LDUwIEBACiAgICAgY29uc3QgdWludDhfdCAqaGFzaCwgc2l6ZV90ICBoYXNoX2xlbmd0aAogICAgICkKIHsKLSAgICB1aW50OF90ICpwYXJhbXMgPSBOVUxMOwotICAgIHVpbnQ4X3QgKnJlc3VsdCA9IE5VTEw7CisgICAgdWludDhfdCAqc2VyX3BhcmFtcyA9IE5VTEw7CisgICAgdWludDhfdCAqc2VyX3Jlc3VsdCA9IE5VTEw7CiAgICAgc2l6ZV90IHJlc3VsdF9sZW5ndGg7CiAgICAgcHNhX3N0YXR1c190IHN0YXR1cyA9IFBTQV9FUlJPUl9DT1JSVVBUSU9OX0RFVEVDVEVEOwogCi0gICAgc2l6ZV90IG5lZWRlZCA9IHBzYXNpbV9zZXJpYWxpc2VfYmVnaW5fbmVlZHMoKSArCi0gICAgICAgICAgICAgICAgICAgIHBzYXNpbV9zZXJpYWxpc2VfcHNhX2hhc2hfb3BlcmF0aW9uX3RfbmVlZHMoKm9wZXJhdGlvbikgKwotICAgICAgICAgICAgICAgICAgICBwc2FzaW1fc2VyaWFsaXNlX2J1ZmZlcl9uZWVkcyhoYXNoLCBoYXNoX2xlbmd0aCk7CisgICAgc2l6ZV90IG5lZWRlZCA9CisgICAgICAgIHBzYXNpbV9zZXJpYWxpc2VfYmVnaW5fbmVlZHMoKSArCisgICAgICAgIHBzYXNpbV9zZXJpYWxpc2VfcHNhX2hhc2hfb3BlcmF0aW9uX3RfbmVlZHMoKm9wZXJhdGlvbikgKworICAgICAgICBwc2FzaW1fc2VyaWFsaXNlX2J1ZmZlcl9uZWVkcyhoYXNoLCBoYXNoX2xlbmd0aCk7CiAKLSAgICBwYXJhbXMgPSBtYWxsb2MobmVlZGVkKTsKLSAgICBpZiAocGFyYW1zID09IE5VTEwpIHsKKyAgICBzZXJfcGFyYW1zID0gbWFsbG9jKG5lZWRlZCk7CisgICAgaWYgKHNlcl9wYXJhbXMgPT0gTlVMTCkgewogICAgICAgICBzdGF0dXMgPSBQU0FfRVJST1JfSU5TVUZGSUNJRU5UX01FTU9SWTsKICAgICAgICAgZ290byBmYWlsOwogICAgIH0KIAotICAgIHVpbnQ4X3QgKnBvcyA9IHBhcmFtczsKKyAgICB1aW50OF90ICpwb3MgPSBzZXJfcGFyYW1zOwogICAgIHNpemVfdCByZW1haW5pbmcgPSBuZWVkZWQ7CiAgICAgaW50IG9rOwogICAgIG9rID0gcHNhc2ltX3NlcmlhbGlzZV9iZWdpbigmcG9zLCAmcmVtYWluaW5nKTsKICAgICBpZiAoIW9rKSB7CiAgICAgICAgIGdvdG8gZmFpbDsKICAgICB9Ci0gICAgb2sgPSBwc2FzaW1fc2VyaWFsaXNlX3BzYV9oYXNoX29wZXJhdGlvbl90KCZwb3MsICZyZW1haW5pbmcsICpvcGVyYXRpb24pOworICAgIG9rID0gcHNhc2ltX3NlcmlhbGlzZV9wc2FfaGFzaF9vcGVyYXRpb25fdCgKKyAgICAgICAgJnBvcywgJnJlbWFpbmluZywKKyAgICAgICAgKm9wZXJhdGlvbik7CiAgICAgaWYgKCFvaykgewogICAgICAgICBnb3RvIGZhaWw7CiAgICAgfQotICAgIG9rID0gcHNhc2ltX3NlcmlhbGlzZV9idWZmZXIoJnBvcywgJnJlbWFpbmluZywgaGFzaCwgaGFzaF9sZW5ndGgpOworICAgIG9rID0gcHNhc2ltX3NlcmlhbGlzZV9idWZmZXIoCisgICAgICAgICZwb3MsICZyZW1haW5pbmcsCisgICAgICAgIGhhc2gsIGhhc2hfbGVuZ3RoKTsKICAgICBpZiAoIW9rKSB7CiAgICAgICAgIGdvdG8gZmFpbDsKICAgICB9CiAKICAgICBvayA9IHBzYV9jcnlwdG9fY2FsbChQU0FfSEFTSF9WRVJJRlksCi0gICAgICAgICAgICAgICAgICAgICAgICAgcGFyYW1zLCAoc2l6ZV90KSAocG9zIC0gcGFyYW1zKSwgJnJlc3VsdCwgJnJlc3VsdF9sZW5ndGgpOworICAgICAgICAgICAgICAgICAgICAgICAgIHNlcl9wYXJhbXMsIChzaXplX3QpIChwb3MgLSBzZXJfcGFyYW1zKSwgJnNlcl9yZXN1bHQsICZyZXN1bHRfbGVuZ3RoKTsKICAgICBpZiAoIW9rKSB7CiAgICAgICAgIHByaW50ZigiUFNBX0hBU0hfVkVSSUZZIHNlcnZlciBjYWxsIGZhaWxlZFxuIik7CiAgICAgICAgIGdvdG8gZmFpbDsKICAgICB9CiAKLSAgICB1aW50OF90ICpycG9zID0gcmVzdWx0OworICAgIHVpbnQ4X3QgKnJwb3MgPSBzZXJfcmVzdWx0OwogICAgIHNpemVfdCBycmVtYWluID0gcmVzdWx0X2xlbmd0aDsKIAogICAgIG9rID0gcHNhc2ltX2Rlc2VyaWFsaXNlX2JlZ2luKCZycG9zLCAmcnJlbWFpbik7CkBAIC0xODIyLDE5ICszNjc3LDIzIEBACiAgICAgICAgIGdvdG8gZmFpbDsKICAgICB9CiAKLSAgICBvayA9IHBzYXNpbV9kZXNlcmlhbGlzZV9wc2Ffc3RhdHVzX3QoJnJwb3MsICZycmVtYWluLCAmc3RhdHVzKTsKKyAgICBvayA9IHBzYXNpbV9kZXNlcmlhbGlzZV9wc2Ffc3RhdHVzX3QoCisgICAgICAgICZycG9zLCAmcnJlbWFpbiwKKyAgICAgICAgJnN0YXR1cyk7CiAgICAgaWYgKCFvaykgewogICAgICAgICBnb3RvIGZhaWw7CiAgICAgfQogCi0gICAgb2sgPSBwc2FzaW1fZGVzZXJpYWxpc2VfcHNhX2hhc2hfb3BlcmF0aW9uX3QoJnJwb3MsICZycmVtYWluLCBvcGVyYXRpb24pOworICAgIG9rID0gcHNhc2ltX2Rlc2VyaWFsaXNlX3BzYV9oYXNoX29wZXJhdGlvbl90KAorICAgICAgICAmcnBvcywgJnJyZW1haW4sCisgICAgICAgIG9wZXJhdGlvbik7CiAgICAgaWYgKCFvaykgewogICAgICAgICBnb3RvIGZhaWw7CiAgICAgfQogCiBmYWlsOgotICAgIGZyZWUocGFyYW1zKTsKLSAgICBmcmVlKHJlc3VsdCk7CisgICAgZnJlZShzZXJfcGFyYW1zKTsKKyAgICBmcmVlKHNlcl9yZXN1bHQpOwogCiAgICAgcmV0dXJuIHN0YXR1czsKIH0KQEAgLTE4NDYsNTAgKzM3MDUsNTcgQEAKICAgICBtYmVkdGxzX3N2Y19rZXlfaWRfdCAqa2V5CiAgICAgKQogewotICAgIHVpbnQ4X3QgKnBhcmFtcyA9IE5VTEw7Ci0gICAgdWludDhfdCAqcmVzdWx0ID0gTlVMTDsKKyAgICB1aW50OF90ICpzZXJfcGFyYW1zID0gTlVMTDsKKyAgICB1aW50OF90ICpzZXJfcmVzdWx0ID0gTlVMTDsKICAgICBzaXplX3QgcmVzdWx0X2xlbmd0aDsKICAgICBwc2Ffc3RhdHVzX3Qgc3RhdHVzID0gUFNBX0VSUk9SX0NPUlJVUFRJT05fREVURUNURUQ7CiAKLSAgICBzaXplX3QgbmVlZGVkID0gcHNhc2ltX3NlcmlhbGlzZV9iZWdpbl9uZWVkcygpICsKLSAgICAgICAgICAgICAgICAgICAgcHNhc2ltX3NlcmlhbGlzZV9wc2Ffa2V5X2F0dHJpYnV0ZXNfdF9uZWVkcygqYXR0cmlidXRlcykgKwotICAgICAgICAgICAgICAgICAgICBwc2FzaW1fc2VyaWFsaXNlX2J1ZmZlcl9uZWVkcyhkYXRhLCBkYXRhX2xlbmd0aCkgKwotICAgICAgICAgICAgICAgICAgICBwc2FzaW1fc2VyaWFsaXNlX21iZWR0bHNfc3ZjX2tleV9pZF90X25lZWRzKCprZXkpOworICAgIHNpemVfdCBuZWVkZWQgPQorICAgICAgICBwc2FzaW1fc2VyaWFsaXNlX2JlZ2luX25lZWRzKCkgKworICAgICAgICBwc2FzaW1fc2VyaWFsaXNlX3BzYV9rZXlfYXR0cmlidXRlc190X25lZWRzKCphdHRyaWJ1dGVzKSArCisgICAgICAgIHBzYXNpbV9zZXJpYWxpc2VfYnVmZmVyX25lZWRzKGRhdGEsIGRhdGFfbGVuZ3RoKSArCisgICAgICAgIHBzYXNpbV9zZXJpYWxpc2VfbWJlZHRsc19zdmNfa2V5X2lkX3RfbmVlZHMoKmtleSk7CiAKLSAgICBwYXJhbXMgPSBtYWxsb2MobmVlZGVkKTsKLSAgICBpZiAocGFyYW1zID09IE5VTEwpIHsKKyAgICBzZXJfcGFyYW1zID0gbWFsbG9jKG5lZWRlZCk7CisgICAgaWYgKHNlcl9wYXJhbXMgPT0gTlVMTCkgewogICAgICAgICBzdGF0dXMgPSBQU0FfRVJST1JfSU5TVUZGSUNJRU5UX01FTU9SWTsKICAgICAgICAgZ290byBmYWlsOwogICAgIH0KIAotICAgIHVpbnQ4X3QgKnBvcyA9IHBhcmFtczsKKyAgICB1aW50OF90ICpwb3MgPSBzZXJfcGFyYW1zOwogICAgIHNpemVfdCByZW1haW5pbmcgPSBuZWVkZWQ7CiAgICAgaW50IG9rOwogICAgIG9rID0gcHNhc2ltX3NlcmlhbGlzZV9iZWdpbigmcG9zLCAmcmVtYWluaW5nKTsKICAgICBpZiAoIW9rKSB7CiAgICAgICAgIGdvdG8gZmFpbDsKICAgICB9Ci0gICAgb2sgPSBwc2FzaW1fc2VyaWFsaXNlX3BzYV9rZXlfYXR0cmlidXRlc190KCZwb3MsICZyZW1haW5pbmcsICphdHRyaWJ1dGVzKTsKKyAgICBvayA9IHBzYXNpbV9zZXJpYWxpc2VfcHNhX2tleV9hdHRyaWJ1dGVzX3QoCisgICAgICAgICZwb3MsICZyZW1haW5pbmcsCisgICAgICAgICphdHRyaWJ1dGVzKTsKICAgICBpZiAoIW9rKSB7CiAgICAgICAgIGdvdG8gZmFpbDsKICAgICB9Ci0gICAgb2sgPSBwc2FzaW1fc2VyaWFsaXNlX2J1ZmZlcigmcG9zLCAmcmVtYWluaW5nLCBkYXRhLCBkYXRhX2xlbmd0aCk7CisgICAgb2sgPSBwc2FzaW1fc2VyaWFsaXNlX2J1ZmZlcigKKyAgICAgICAgJnBvcywgJnJlbWFpbmluZywKKyAgICAgICAgZGF0YSwgZGF0YV9sZW5ndGgpOwogICAgIGlmICghb2spIHsKICAgICAgICAgZ290byBmYWlsOwogICAgIH0KLSAgICBvayA9IHBzYXNpbV9zZXJpYWxpc2VfbWJlZHRsc19zdmNfa2V5X2lkX3QoJnBvcywgJnJlbWFpbmluZywgKmtleSk7CisgICAgb2sgPSBwc2FzaW1fc2VyaWFsaXNlX21iZWR0bHNfc3ZjX2tleV9pZF90KAorICAgICAgICAmcG9zLCAmcmVtYWluaW5nLAorICAgICAgICAqa2V5KTsKICAgICBpZiAoIW9rKSB7CiAgICAgICAgIGdvdG8gZmFpbDsKICAgICB9CiAKICAgICBvayA9IHBzYV9jcnlwdG9fY2FsbChQU0FfSU1QT1JUX0tFWSwKLSAgICAgICAgICAgICAgICAgICAgICAgICBwYXJhbXMsIChzaXplX3QpIChwb3MgLSBwYXJhbXMpLCAmcmVzdWx0LCAmcmVzdWx0X2xlbmd0aCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgc2VyX3BhcmFtcywgKHNpemVfdCkgKHBvcyAtIHNlcl9wYXJhbXMpLCAmc2VyX3Jlc3VsdCwgJnJlc3VsdF9sZW5ndGgpOwogICAgIGlmICghb2spIHsKICAgICAgICAgcHJpbnRmKCJQU0FfSU1QT1JUX0tFWSBzZXJ2ZXIgY2FsbCBmYWlsZWRcbiIpOwogICAgICAgICBnb3RvIGZhaWw7CiAgICAgfQogCi0gICAgdWludDhfdCAqcnBvcyA9IHJlc3VsdDsKKyAgICB1aW50OF90ICpycG9zID0gc2VyX3Jlc3VsdDsKICAgICBzaXplX3QgcnJlbWFpbiA9IHJlc3VsdF9sZW5ndGg7CiAKICAgICBvayA9IHBzYXNpbV9kZXNlcmlhbGlzZV9iZWdpbigmcnBvcywgJnJyZW1haW4pOwpAQCAtMTg5NywxOSArMzc2MywzMDE2IEBACiAgICAgICAgIGdvdG8gZmFpbDsKICAgICB9CiAKLSAgICBvayA9IHBzYXNpbV9kZXNlcmlhbGlzZV9wc2Ffc3RhdHVzX3QoJnJwb3MsICZycmVtYWluLCAmc3RhdHVzKTsKKyAgICBvayA9IHBzYXNpbV9kZXNlcmlhbGlzZV9wc2Ffc3RhdHVzX3QoCisgICAgICAgICZycG9zLCAmcnJlbWFpbiwKKyAgICAgICAgJnN0YXR1cyk7CiAgICAgaWYgKCFvaykgewogICAgICAgICBnb3RvIGZhaWw7CiAgICAgfQogCi0gICAgb2sgPSBwc2FzaW1fZGVzZXJpYWxpc2VfbWJlZHRsc19zdmNfa2V5X2lkX3QoJnJwb3MsICZycmVtYWluLCBrZXkpOworICAgIG9rID0gcHNhc2ltX2Rlc2VyaWFsaXNlX21iZWR0bHNfc3ZjX2tleV9pZF90KAorICAgICAgICAmcnBvcywgJnJyZW1haW4sCisgICAgICAgIGtleSk7CiAgICAgaWYgKCFvaykgewogICAgICAgICBnb3RvIGZhaWw7CiAgICAgfQogCiBmYWlsOgotICAgIGZyZWUocGFyYW1zKTsKLSAgICBmcmVlKHJlc3VsdCk7CisgICAgZnJlZShzZXJfcGFyYW1zKTsKKyAgICBmcmVlKHNlcl9yZXN1bHQpOworCisgICAgcmV0dXJuIHN0YXR1czsKK30KKworCit1aW50MzJfdCBwc2FfaW50ZXJydXB0aWJsZV9nZXRfbWF4X29wcygKKyAgICB2b2lkCisgICAgKQoreworICAgIHVpbnQ4X3QgKnNlcl9wYXJhbXMgPSBOVUxMOworICAgIHVpbnQ4X3QgKnNlcl9yZXN1bHQgPSBOVUxMOworICAgIHNpemVfdCByZXN1bHRfbGVuZ3RoOworICAgIHVpbnQzMl90IHZhbHVlID0gMDsKKworICAgIHNpemVfdCBuZWVkZWQgPQorICAgICAgICBwc2FzaW1fc2VyaWFsaXNlX2JlZ2luX25lZWRzKCkgKworICAgICAgICAwOworCisgICAgc2VyX3BhcmFtcyA9IG1hbGxvYyhuZWVkZWQpOworICAgIGlmIChzZXJfcGFyYW1zID09IE5VTEwpIHsKKyAgICAgICAgdmFsdWUgPSAwOworICAgICAgICBnb3RvIGZhaWw7CisgICAgfQorCisgICAgdWludDhfdCAqcG9zID0gc2VyX3BhcmFtczsKKyAgICBzaXplX3QgcmVtYWluaW5nID0gbmVlZGVkOworICAgIGludCBvazsKKyAgICBvayA9IHBzYXNpbV9zZXJpYWxpc2VfYmVnaW4oJnBvcywgJnJlbWFpbmluZyk7CisgICAgaWYgKCFvaykgeworICAgICAgICBnb3RvIGZhaWw7CisgICAgfQorCisgICAgb2sgPSBwc2FfY3J5cHRvX2NhbGwoUFNBX0lOVEVSUlVQVElCTEVfR0VUX01BWF9PUFMsCisgICAgICAgICAgICAgICAgICAgICAgICAgc2VyX3BhcmFtcywgKHNpemVfdCkgKHBvcyAtIHNlcl9wYXJhbXMpLCAmc2VyX3Jlc3VsdCwgJnJlc3VsdF9sZW5ndGgpOworICAgIGlmICghb2spIHsKKyAgICAgICAgcHJpbnRmKCJQU0FfSU5URVJSVVBUSUJMRV9HRVRfTUFYX09QUyBzZXJ2ZXIgY2FsbCBmYWlsZWRcbiIpOworICAgICAgICBnb3RvIGZhaWw7CisgICAgfQorCisgICAgdWludDhfdCAqcnBvcyA9IHNlcl9yZXN1bHQ7CisgICAgc2l6ZV90IHJyZW1haW4gPSByZXN1bHRfbGVuZ3RoOworCisgICAgb2sgPSBwc2FzaW1fZGVzZXJpYWxpc2VfYmVnaW4oJnJwb3MsICZycmVtYWluKTsKKyAgICBpZiAoIW9rKSB7CisgICAgICAgIGdvdG8gZmFpbDsKKyAgICB9CisKKyAgICBvayA9IHBzYXNpbV9kZXNlcmlhbGlzZV91aW50MzJfdCgKKyAgICAgICAgJnJwb3MsICZycmVtYWluLAorICAgICAgICAmdmFsdWUpOworICAgIGlmICghb2spIHsKKyAgICAgICAgZ290byBmYWlsOworICAgIH0KKworZmFpbDoKKyAgICBmcmVlKHNlcl9wYXJhbXMpOworICAgIGZyZWUoc2VyX3Jlc3VsdCk7CisKKyAgICByZXR1cm4gdmFsdWU7Cit9CisKKwordm9pZCBwc2FfaW50ZXJydXB0aWJsZV9zZXRfbWF4X29wcygKKyAgICB1aW50MzJfdCBtYXhfb3BzCisgICAgKQoreworICAgIHVpbnQ4X3QgKnNlcl9wYXJhbXMgPSBOVUxMOworICAgIHVpbnQ4X3QgKnNlcl9yZXN1bHQgPSBOVUxMOworICAgIHNpemVfdCByZXN1bHRfbGVuZ3RoOworCisgICAgc2l6ZV90IG5lZWRlZCA9CisgICAgICAgIHBzYXNpbV9zZXJpYWxpc2VfYmVnaW5fbmVlZHMoKSArCisgICAgICAgIHBzYXNpbV9zZXJpYWxpc2VfdWludDMyX3RfbmVlZHMobWF4X29wcyk7CisKKyAgICBzZXJfcGFyYW1zID0gbWFsbG9jKG5lZWRlZCk7CisgICAgaWYgKHNlcl9wYXJhbXMgPT0gTlVMTCkgeworICAgICAgICBnb3RvIGZhaWw7CisgICAgfQorCisgICAgdWludDhfdCAqcG9zID0gc2VyX3BhcmFtczsKKyAgICBzaXplX3QgcmVtYWluaW5nID0gbmVlZGVkOworICAgIGludCBvazsKKyAgICBvayA9IHBzYXNpbV9zZXJpYWxpc2VfYmVnaW4oJnBvcywgJnJlbWFpbmluZyk7CisgICAgaWYgKCFvaykgeworICAgICAgICBnb3RvIGZhaWw7CisgICAgfQorICAgIG9rID0gcHNhc2ltX3NlcmlhbGlzZV91aW50MzJfdCgKKyAgICAgICAgJnBvcywgJnJlbWFpbmluZywKKyAgICAgICAgbWF4X29wcyk7CisgICAgaWYgKCFvaykgeworICAgICAgICBnb3RvIGZhaWw7CisgICAgfQorCisgICAgb2sgPSBwc2FfY3J5cHRvX2NhbGwoUFNBX0lOVEVSUlVQVElCTEVfU0VUX01BWF9PUFMsCisgICAgICAgICAgICAgICAgICAgICAgICAgc2VyX3BhcmFtcywgKHNpemVfdCkgKHBvcyAtIHNlcl9wYXJhbXMpLCAmc2VyX3Jlc3VsdCwgJnJlc3VsdF9sZW5ndGgpOworICAgIGlmICghb2spIHsKKyAgICAgICAgcHJpbnRmKCJQU0FfSU5URVJSVVBUSUJMRV9TRVRfTUFYX09QUyBzZXJ2ZXIgY2FsbCBmYWlsZWRcbiIpOworICAgICAgICBnb3RvIGZhaWw7CisgICAgfQorCisgICAgdWludDhfdCAqcnBvcyA9IHNlcl9yZXN1bHQ7CisgICAgc2l6ZV90IHJyZW1haW4gPSByZXN1bHRfbGVuZ3RoOworCisgICAgb2sgPSBwc2FzaW1fZGVzZXJpYWxpc2VfYmVnaW4oJnJwb3MsICZycmVtYWluKTsKKyAgICBpZiAoIW9rKSB7CisgICAgICAgIGdvdG8gZmFpbDsKKyAgICB9CisKK2ZhaWw6CisgICAgZnJlZShzZXJfcGFyYW1zKTsKKyAgICBmcmVlKHNlcl9yZXN1bHQpOworfQorCisKK3BzYV9zdGF0dXNfdCBwc2Ffa2V5X2Rlcml2YXRpb25fYWJvcnQoCisgICAgcHNhX2tleV9kZXJpdmF0aW9uX29wZXJhdGlvbl90ICpvcGVyYXRpb24KKyAgICApCit7CisgICAgdWludDhfdCAqc2VyX3BhcmFtcyA9IE5VTEw7CisgICAgdWludDhfdCAqc2VyX3Jlc3VsdCA9IE5VTEw7CisgICAgc2l6ZV90IHJlc3VsdF9sZW5ndGg7CisgICAgcHNhX3N0YXR1c190IHN0YXR1cyA9IFBTQV9FUlJPUl9DT1JSVVBUSU9OX0RFVEVDVEVEOworCisgICAgc2l6ZV90IG5lZWRlZCA9CisgICAgICAgIHBzYXNpbV9zZXJpYWxpc2VfYmVnaW5fbmVlZHMoKSArCisgICAgICAgIHBzYXNpbV9zZXJpYWxpc2VfcHNhX2tleV9kZXJpdmF0aW9uX29wZXJhdGlvbl90X25lZWRzKCpvcGVyYXRpb24pOworCisgICAgc2VyX3BhcmFtcyA9IG1hbGxvYyhuZWVkZWQpOworICAgIGlmIChzZXJfcGFyYW1zID09IE5VTEwpIHsKKyAgICAgICAgc3RhdHVzID0gUFNBX0VSUk9SX0lOU1VGRklDSUVOVF9NRU1PUlk7CisgICAgICAgIGdvdG8gZmFpbDsKKyAgICB9CisKKyAgICB1aW50OF90ICpwb3MgPSBzZXJfcGFyYW1zOworICAgIHNpemVfdCByZW1haW5pbmcgPSBuZWVkZWQ7CisgICAgaW50IG9rOworICAgIG9rID0gcHNhc2ltX3NlcmlhbGlzZV9iZWdpbigmcG9zLCAmcmVtYWluaW5nKTsKKyAgICBpZiAoIW9rKSB7CisgICAgICAgIGdvdG8gZmFpbDsKKyAgICB9CisgICAgb2sgPSBwc2FzaW1fc2VyaWFsaXNlX3BzYV9rZXlfZGVyaXZhdGlvbl9vcGVyYXRpb25fdCgKKyAgICAgICAgJnBvcywgJnJlbWFpbmluZywKKyAgICAgICAgKm9wZXJhdGlvbik7CisgICAgaWYgKCFvaykgeworICAgICAgICBnb3RvIGZhaWw7CisgICAgfQorCisgICAgb2sgPSBwc2FfY3J5cHRvX2NhbGwoUFNBX0tFWV9ERVJJVkFUSU9OX0FCT1JULAorICAgICAgICAgICAgICAgICAgICAgICAgIHNlcl9wYXJhbXMsIChzaXplX3QpIChwb3MgLSBzZXJfcGFyYW1zKSwgJnNlcl9yZXN1bHQsICZyZXN1bHRfbGVuZ3RoKTsKKyAgICBpZiAoIW9rKSB7CisgICAgICAgIHByaW50ZigiUFNBX0tFWV9ERVJJVkFUSU9OX0FCT1JUIHNlcnZlciBjYWxsIGZhaWxlZFxuIik7CisgICAgICAgIGdvdG8gZmFpbDsKKyAgICB9CisKKyAgICB1aW50OF90ICpycG9zID0gc2VyX3Jlc3VsdDsKKyAgICBzaXplX3QgcnJlbWFpbiA9IHJlc3VsdF9sZW5ndGg7CisKKyAgICBvayA9IHBzYXNpbV9kZXNlcmlhbGlzZV9iZWdpbigmcnBvcywgJnJyZW1haW4pOworICAgIGlmICghb2spIHsKKyAgICAgICAgZ290byBmYWlsOworICAgIH0KKworICAgIG9rID0gcHNhc2ltX2Rlc2VyaWFsaXNlX3BzYV9zdGF0dXNfdCgKKyAgICAgICAgJnJwb3MsICZycmVtYWluLAorICAgICAgICAmc3RhdHVzKTsKKyAgICBpZiAoIW9rKSB7CisgICAgICAgIGdvdG8gZmFpbDsKKyAgICB9CisKKyAgICBvayA9IHBzYXNpbV9kZXNlcmlhbGlzZV9wc2Ffa2V5X2Rlcml2YXRpb25fb3BlcmF0aW9uX3QoCisgICAgICAgICZycG9zLCAmcnJlbWFpbiwKKyAgICAgICAgb3BlcmF0aW9uKTsKKyAgICBpZiAoIW9rKSB7CisgICAgICAgIGdvdG8gZmFpbDsKKyAgICB9CisKK2ZhaWw6CisgICAgZnJlZShzZXJfcGFyYW1zKTsKKyAgICBmcmVlKHNlcl9yZXN1bHQpOworCisgICAgcmV0dXJuIHN0YXR1czsKK30KKworCitwc2Ffc3RhdHVzX3QgcHNhX2tleV9kZXJpdmF0aW9uX2dldF9jYXBhY2l0eSgKKyAgICBjb25zdCBwc2Ffa2V5X2Rlcml2YXRpb25fb3BlcmF0aW9uX3QgKm9wZXJhdGlvbiwKKyAgICBzaXplX3QgKmNhcGFjaXR5CisgICAgKQoreworICAgIHVpbnQ4X3QgKnNlcl9wYXJhbXMgPSBOVUxMOworICAgIHVpbnQ4X3QgKnNlcl9yZXN1bHQgPSBOVUxMOworICAgIHNpemVfdCByZXN1bHRfbGVuZ3RoOworICAgIHBzYV9zdGF0dXNfdCBzdGF0dXMgPSBQU0FfRVJST1JfQ09SUlVQVElPTl9ERVRFQ1RFRDsKKworICAgIHNpemVfdCBuZWVkZWQgPQorICAgICAgICBwc2FzaW1fc2VyaWFsaXNlX2JlZ2luX25lZWRzKCkgKworICAgICAgICBwc2FzaW1fc2VyaWFsaXNlX3BzYV9rZXlfZGVyaXZhdGlvbl9vcGVyYXRpb25fdF9uZWVkcygqb3BlcmF0aW9uKSArCisgICAgICAgIHBzYXNpbV9zZXJpYWxpc2Vfc2l6ZV90X25lZWRzKCpjYXBhY2l0eSk7CisKKyAgICBzZXJfcGFyYW1zID0gbWFsbG9jKG5lZWRlZCk7CisgICAgaWYgKHNlcl9wYXJhbXMgPT0gTlVMTCkgeworICAgICAgICBzdGF0dXMgPSBQU0FfRVJST1JfSU5TVUZGSUNJRU5UX01FTU9SWTsKKyAgICAgICAgZ290byBmYWlsOworICAgIH0KKworICAgIHVpbnQ4X3QgKnBvcyA9IHNlcl9wYXJhbXM7CisgICAgc2l6ZV90IHJlbWFpbmluZyA9IG5lZWRlZDsKKyAgICBpbnQgb2s7CisgICAgb2sgPSBwc2FzaW1fc2VyaWFsaXNlX2JlZ2luKCZwb3MsICZyZW1haW5pbmcpOworICAgIGlmICghb2spIHsKKyAgICAgICAgZ290byBmYWlsOworICAgIH0KKyAgICBvayA9IHBzYXNpbV9zZXJpYWxpc2VfcHNhX2tleV9kZXJpdmF0aW9uX29wZXJhdGlvbl90KAorICAgICAgICAmcG9zLCAmcmVtYWluaW5nLAorICAgICAgICAqb3BlcmF0aW9uKTsKKyAgICBpZiAoIW9rKSB7CisgICAgICAgIGdvdG8gZmFpbDsKKyAgICB9CisgICAgb2sgPSBwc2FzaW1fc2VyaWFsaXNlX3NpemVfdCgKKyAgICAgICAgJnBvcywgJnJlbWFpbmluZywKKyAgICAgICAgKmNhcGFjaXR5KTsKKyAgICBpZiAoIW9rKSB7CisgICAgICAgIGdvdG8gZmFpbDsKKyAgICB9CisKKyAgICBvayA9IHBzYV9jcnlwdG9fY2FsbChQU0FfS0VZX0RFUklWQVRJT05fR0VUX0NBUEFDSVRZLAorICAgICAgICAgICAgICAgICAgICAgICAgIHNlcl9wYXJhbXMsIChzaXplX3QpIChwb3MgLSBzZXJfcGFyYW1zKSwgJnNlcl9yZXN1bHQsICZyZXN1bHRfbGVuZ3RoKTsKKyAgICBpZiAoIW9rKSB7CisgICAgICAgIHByaW50ZigiUFNBX0tFWV9ERVJJVkFUSU9OX0dFVF9DQVBBQ0lUWSBzZXJ2ZXIgY2FsbCBmYWlsZWRcbiIpOworICAgICAgICBnb3RvIGZhaWw7CisgICAgfQorCisgICAgdWludDhfdCAqcnBvcyA9IHNlcl9yZXN1bHQ7CisgICAgc2l6ZV90IHJyZW1haW4gPSByZXN1bHRfbGVuZ3RoOworCisgICAgb2sgPSBwc2FzaW1fZGVzZXJpYWxpc2VfYmVnaW4oJnJwb3MsICZycmVtYWluKTsKKyAgICBpZiAoIW9rKSB7CisgICAgICAgIGdvdG8gZmFpbDsKKyAgICB9CisKKyAgICBvayA9IHBzYXNpbV9kZXNlcmlhbGlzZV9wc2Ffc3RhdHVzX3QoCisgICAgICAgICZycG9zLCAmcnJlbWFpbiwKKyAgICAgICAgJnN0YXR1cyk7CisgICAgaWYgKCFvaykgeworICAgICAgICBnb3RvIGZhaWw7CisgICAgfQorCisgICAgb2sgPSBwc2FzaW1fZGVzZXJpYWxpc2Vfc2l6ZV90KAorICAgICAgICAmcnBvcywgJnJyZW1haW4sCisgICAgICAgIGNhcGFjaXR5KTsKKyAgICBpZiAoIW9rKSB7CisgICAgICAgIGdvdG8gZmFpbDsKKyAgICB9CisKK2ZhaWw6CisgICAgZnJlZShzZXJfcGFyYW1zKTsKKyAgICBmcmVlKHNlcl9yZXN1bHQpOworCisgICAgcmV0dXJuIHN0YXR1czsKK30KKworCitwc2Ffc3RhdHVzX3QgcHNhX2tleV9kZXJpdmF0aW9uX2lucHV0X2J5dGVzKAorICAgIHBzYV9rZXlfZGVyaXZhdGlvbl9vcGVyYXRpb25fdCAqb3BlcmF0aW9uLAorICAgIHBzYV9rZXlfZGVyaXZhdGlvbl9zdGVwX3Qgc3RlcCwKKyAgICBjb25zdCB1aW50OF90ICpkYXRhLCBzaXplX3QgIGRhdGFfbGVuZ3RoCisgICAgKQoreworICAgIHVpbnQ4X3QgKnNlcl9wYXJhbXMgPSBOVUxMOworICAgIHVpbnQ4X3QgKnNlcl9yZXN1bHQgPSBOVUxMOworICAgIHNpemVfdCByZXN1bHRfbGVuZ3RoOworICAgIHBzYV9zdGF0dXNfdCBzdGF0dXMgPSBQU0FfRVJST1JfQ09SUlVQVElPTl9ERVRFQ1RFRDsKKworICAgIHNpemVfdCBuZWVkZWQgPQorICAgICAgICBwc2FzaW1fc2VyaWFsaXNlX2JlZ2luX25lZWRzKCkgKworICAgICAgICBwc2FzaW1fc2VyaWFsaXNlX3BzYV9rZXlfZGVyaXZhdGlvbl9vcGVyYXRpb25fdF9uZWVkcygqb3BlcmF0aW9uKSArCisgICAgICAgIHBzYXNpbV9zZXJpYWxpc2VfcHNhX2tleV9kZXJpdmF0aW9uX3N0ZXBfdF9uZWVkcyhzdGVwKSArCisgICAgICAgIHBzYXNpbV9zZXJpYWxpc2VfYnVmZmVyX25lZWRzKGRhdGEsIGRhdGFfbGVuZ3RoKTsKKworICAgIHNlcl9wYXJhbXMgPSBtYWxsb2MobmVlZGVkKTsKKyAgICBpZiAoc2VyX3BhcmFtcyA9PSBOVUxMKSB7CisgICAgICAgIHN0YXR1cyA9IFBTQV9FUlJPUl9JTlNVRkZJQ0lFTlRfTUVNT1JZOworICAgICAgICBnb3RvIGZhaWw7CisgICAgfQorCisgICAgdWludDhfdCAqcG9zID0gc2VyX3BhcmFtczsKKyAgICBzaXplX3QgcmVtYWluaW5nID0gbmVlZGVkOworICAgIGludCBvazsKKyAgICBvayA9IHBzYXNpbV9zZXJpYWxpc2VfYmVnaW4oJnBvcywgJnJlbWFpbmluZyk7CisgICAgaWYgKCFvaykgeworICAgICAgICBnb3RvIGZhaWw7CisgICAgfQorICAgIG9rID0gcHNhc2ltX3NlcmlhbGlzZV9wc2Ffa2V5X2Rlcml2YXRpb25fb3BlcmF0aW9uX3QoCisgICAgICAgICZwb3MsICZyZW1haW5pbmcsCisgICAgICAgICpvcGVyYXRpb24pOworICAgIGlmICghb2spIHsKKyAgICAgICAgZ290byBmYWlsOworICAgIH0KKyAgICBvayA9IHBzYXNpbV9zZXJpYWxpc2VfcHNhX2tleV9kZXJpdmF0aW9uX3N0ZXBfdCgKKyAgICAgICAgJnBvcywgJnJlbWFpbmluZywKKyAgICAgICAgc3RlcCk7CisgICAgaWYgKCFvaykgeworICAgICAgICBnb3RvIGZhaWw7CisgICAgfQorICAgIG9rID0gcHNhc2ltX3NlcmlhbGlzZV9idWZmZXIoCisgICAgICAgICZwb3MsICZyZW1haW5pbmcsCisgICAgICAgIGRhdGEsIGRhdGFfbGVuZ3RoKTsKKyAgICBpZiAoIW9rKSB7CisgICAgICAgIGdvdG8gZmFpbDsKKyAgICB9CisKKyAgICBvayA9IHBzYV9jcnlwdG9fY2FsbChQU0FfS0VZX0RFUklWQVRJT05fSU5QVVRfQllURVMsCisgICAgICAgICAgICAgICAgICAgICAgICAgc2VyX3BhcmFtcywgKHNpemVfdCkgKHBvcyAtIHNlcl9wYXJhbXMpLCAmc2VyX3Jlc3VsdCwgJnJlc3VsdF9sZW5ndGgpOworICAgIGlmICghb2spIHsKKyAgICAgICAgcHJpbnRmKCJQU0FfS0VZX0RFUklWQVRJT05fSU5QVVRfQllURVMgc2VydmVyIGNhbGwgZmFpbGVkXG4iKTsKKyAgICAgICAgZ290byBmYWlsOworICAgIH0KKworICAgIHVpbnQ4X3QgKnJwb3MgPSBzZXJfcmVzdWx0OworICAgIHNpemVfdCBycmVtYWluID0gcmVzdWx0X2xlbmd0aDsKKworICAgIG9rID0gcHNhc2ltX2Rlc2VyaWFsaXNlX2JlZ2luKCZycG9zLCAmcnJlbWFpbik7CisgICAgaWYgKCFvaykgeworICAgICAgICBnb3RvIGZhaWw7CisgICAgfQorCisgICAgb2sgPSBwc2FzaW1fZGVzZXJpYWxpc2VfcHNhX3N0YXR1c190KAorICAgICAgICAmcnBvcywgJnJyZW1haW4sCisgICAgICAgICZzdGF0dXMpOworICAgIGlmICghb2spIHsKKyAgICAgICAgZ290byBmYWlsOworICAgIH0KKworICAgIG9rID0gcHNhc2ltX2Rlc2VyaWFsaXNlX3BzYV9rZXlfZGVyaXZhdGlvbl9vcGVyYXRpb25fdCgKKyAgICAgICAgJnJwb3MsICZycmVtYWluLAorICAgICAgICBvcGVyYXRpb24pOworICAgIGlmICghb2spIHsKKyAgICAgICAgZ290byBmYWlsOworICAgIH0KKworZmFpbDoKKyAgICBmcmVlKHNlcl9wYXJhbXMpOworICAgIGZyZWUoc2VyX3Jlc3VsdCk7CisKKyAgICByZXR1cm4gc3RhdHVzOworfQorCisKK3BzYV9zdGF0dXNfdCBwc2Ffa2V5X2Rlcml2YXRpb25faW5wdXRfaW50ZWdlcigKKyAgICBwc2Ffa2V5X2Rlcml2YXRpb25fb3BlcmF0aW9uX3QgKm9wZXJhdGlvbiwKKyAgICBwc2Ffa2V5X2Rlcml2YXRpb25fc3RlcF90IHN0ZXAsCisgICAgdWludDY0X3QgdmFsdWUKKyAgICApCit7CisgICAgdWludDhfdCAqc2VyX3BhcmFtcyA9IE5VTEw7CisgICAgdWludDhfdCAqc2VyX3Jlc3VsdCA9IE5VTEw7CisgICAgc2l6ZV90IHJlc3VsdF9sZW5ndGg7CisgICAgcHNhX3N0YXR1c190IHN0YXR1cyA9IFBTQV9FUlJPUl9DT1JSVVBUSU9OX0RFVEVDVEVEOworCisgICAgc2l6ZV90IG5lZWRlZCA9CisgICAgICAgIHBzYXNpbV9zZXJpYWxpc2VfYmVnaW5fbmVlZHMoKSArCisgICAgICAgIHBzYXNpbV9zZXJpYWxpc2VfcHNhX2tleV9kZXJpdmF0aW9uX29wZXJhdGlvbl90X25lZWRzKCpvcGVyYXRpb24pICsKKyAgICAgICAgcHNhc2ltX3NlcmlhbGlzZV9wc2Ffa2V5X2Rlcml2YXRpb25fc3RlcF90X25lZWRzKHN0ZXApICsKKyAgICAgICAgcHNhc2ltX3NlcmlhbGlzZV91aW50NjRfdF9uZWVkcyh2YWx1ZSk7CisKKyAgICBzZXJfcGFyYW1zID0gbWFsbG9jKG5lZWRlZCk7CisgICAgaWYgKHNlcl9wYXJhbXMgPT0gTlVMTCkgeworICAgICAgICBzdGF0dXMgPSBQU0FfRVJST1JfSU5TVUZGSUNJRU5UX01FTU9SWTsKKyAgICAgICAgZ290byBmYWlsOworICAgIH0KKworICAgIHVpbnQ4X3QgKnBvcyA9IHNlcl9wYXJhbXM7CisgICAgc2l6ZV90IHJlbWFpbmluZyA9IG5lZWRlZDsKKyAgICBpbnQgb2s7CisgICAgb2sgPSBwc2FzaW1fc2VyaWFsaXNlX2JlZ2luKCZwb3MsICZyZW1haW5pbmcpOworICAgIGlmICghb2spIHsKKyAgICAgICAgZ290byBmYWlsOworICAgIH0KKyAgICBvayA9IHBzYXNpbV9zZXJpYWxpc2VfcHNhX2tleV9kZXJpdmF0aW9uX29wZXJhdGlvbl90KAorICAgICAgICAmcG9zLCAmcmVtYWluaW5nLAorICAgICAgICAqb3BlcmF0aW9uKTsKKyAgICBpZiAoIW9rKSB7CisgICAgICAgIGdvdG8gZmFpbDsKKyAgICB9CisgICAgb2sgPSBwc2FzaW1fc2VyaWFsaXNlX3BzYV9rZXlfZGVyaXZhdGlvbl9zdGVwX3QoCisgICAgICAgICZwb3MsICZyZW1haW5pbmcsCisgICAgICAgIHN0ZXApOworICAgIGlmICghb2spIHsKKyAgICAgICAgZ290byBmYWlsOworICAgIH0KKyAgICBvayA9IHBzYXNpbV9zZXJpYWxpc2VfdWludDY0X3QoCisgICAgICAgICZwb3MsICZyZW1haW5pbmcsCisgICAgICAgIHZhbHVlKTsKKyAgICBpZiAoIW9rKSB7CisgICAgICAgIGdvdG8gZmFpbDsKKyAgICB9CisKKyAgICBvayA9IHBzYV9jcnlwdG9fY2FsbChQU0FfS0VZX0RFUklWQVRJT05fSU5QVVRfSU5URUdFUiwKKyAgICAgICAgICAgICAgICAgICAgICAgICBzZXJfcGFyYW1zLCAoc2l6ZV90KSAocG9zIC0gc2VyX3BhcmFtcyksICZzZXJfcmVzdWx0LCAmcmVzdWx0X2xlbmd0aCk7CisgICAgaWYgKCFvaykgeworICAgICAgICBwcmludGYoIlBTQV9LRVlfREVSSVZBVElPTl9JTlBVVF9JTlRFR0VSIHNlcnZlciBjYWxsIGZhaWxlZFxuIik7CisgICAgICAgIGdvdG8gZmFpbDsKKyAgICB9CisKKyAgICB1aW50OF90ICpycG9zID0gc2VyX3Jlc3VsdDsKKyAgICBzaXplX3QgcnJlbWFpbiA9IHJlc3VsdF9sZW5ndGg7CisKKyAgICBvayA9IHBzYXNpbV9kZXNlcmlhbGlzZV9iZWdpbigmcnBvcywgJnJyZW1haW4pOworICAgIGlmICghb2spIHsKKyAgICAgICAgZ290byBmYWlsOworICAgIH0KKworICAgIG9rID0gcHNhc2ltX2Rlc2VyaWFsaXNlX3BzYV9zdGF0dXNfdCgKKyAgICAgICAgJnJwb3MsICZycmVtYWluLAorICAgICAgICAmc3RhdHVzKTsKKyAgICBpZiAoIW9rKSB7CisgICAgICAgIGdvdG8gZmFpbDsKKyAgICB9CisKKyAgICBvayA9IHBzYXNpbV9kZXNlcmlhbGlzZV9wc2Ffa2V5X2Rlcml2YXRpb25fb3BlcmF0aW9uX3QoCisgICAgICAgICZycG9zLCAmcnJlbWFpbiwKKyAgICAgICAgb3BlcmF0aW9uKTsKKyAgICBpZiAoIW9rKSB7CisgICAgICAgIGdvdG8gZmFpbDsKKyAgICB9CisKK2ZhaWw6CisgICAgZnJlZShzZXJfcGFyYW1zKTsKKyAgICBmcmVlKHNlcl9yZXN1bHQpOworCisgICAgcmV0dXJuIHN0YXR1czsKK30KKworCitwc2Ffc3RhdHVzX3QgcHNhX2tleV9kZXJpdmF0aW9uX2lucHV0X2tleSgKKyAgICBwc2Ffa2V5X2Rlcml2YXRpb25fb3BlcmF0aW9uX3QgKm9wZXJhdGlvbiwKKyAgICBwc2Ffa2V5X2Rlcml2YXRpb25fc3RlcF90IHN0ZXAsCisgICAgbWJlZHRsc19zdmNfa2V5X2lkX3Qga2V5CisgICAgKQoreworICAgIHVpbnQ4X3QgKnNlcl9wYXJhbXMgPSBOVUxMOworICAgIHVpbnQ4X3QgKnNlcl9yZXN1bHQgPSBOVUxMOworICAgIHNpemVfdCByZXN1bHRfbGVuZ3RoOworICAgIHBzYV9zdGF0dXNfdCBzdGF0dXMgPSBQU0FfRVJST1JfQ09SUlVQVElPTl9ERVRFQ1RFRDsKKworICAgIHNpemVfdCBuZWVkZWQgPQorICAgICAgICBwc2FzaW1fc2VyaWFsaXNlX2JlZ2luX25lZWRzKCkgKworICAgICAgICBwc2FzaW1fc2VyaWFsaXNlX3BzYV9rZXlfZGVyaXZhdGlvbl9vcGVyYXRpb25fdF9uZWVkcygqb3BlcmF0aW9uKSArCisgICAgICAgIHBzYXNpbV9zZXJpYWxpc2VfcHNhX2tleV9kZXJpdmF0aW9uX3N0ZXBfdF9uZWVkcyhzdGVwKSArCisgICAgICAgIHBzYXNpbV9zZXJpYWxpc2VfbWJlZHRsc19zdmNfa2V5X2lkX3RfbmVlZHMoa2V5KTsKKworICAgIHNlcl9wYXJhbXMgPSBtYWxsb2MobmVlZGVkKTsKKyAgICBpZiAoc2VyX3BhcmFtcyA9PSBOVUxMKSB7CisgICAgICAgIHN0YXR1cyA9IFBTQV9FUlJPUl9JTlNVRkZJQ0lFTlRfTUVNT1JZOworICAgICAgICBnb3RvIGZhaWw7CisgICAgfQorCisgICAgdWludDhfdCAqcG9zID0gc2VyX3BhcmFtczsKKyAgICBzaXplX3QgcmVtYWluaW5nID0gbmVlZGVkOworICAgIGludCBvazsKKyAgICBvayA9IHBzYXNpbV9zZXJpYWxpc2VfYmVnaW4oJnBvcywgJnJlbWFpbmluZyk7CisgICAgaWYgKCFvaykgeworICAgICAgICBnb3RvIGZhaWw7CisgICAgfQorICAgIG9rID0gcHNhc2ltX3NlcmlhbGlzZV9wc2Ffa2V5X2Rlcml2YXRpb25fb3BlcmF0aW9uX3QoCisgICAgICAgICZwb3MsICZyZW1haW5pbmcsCisgICAgICAgICpvcGVyYXRpb24pOworICAgIGlmICghb2spIHsKKyAgICAgICAgZ290byBmYWlsOworICAgIH0KKyAgICBvayA9IHBzYXNpbV9zZXJpYWxpc2VfcHNhX2tleV9kZXJpdmF0aW9uX3N0ZXBfdCgKKyAgICAgICAgJnBvcywgJnJlbWFpbmluZywKKyAgICAgICAgc3RlcCk7CisgICAgaWYgKCFvaykgeworICAgICAgICBnb3RvIGZhaWw7CisgICAgfQorICAgIG9rID0gcHNhc2ltX3NlcmlhbGlzZV9tYmVkdGxzX3N2Y19rZXlfaWRfdCgKKyAgICAgICAgJnBvcywgJnJlbWFpbmluZywKKyAgICAgICAga2V5KTsKKyAgICBpZiAoIW9rKSB7CisgICAgICAgIGdvdG8gZmFpbDsKKyAgICB9CisKKyAgICBvayA9IHBzYV9jcnlwdG9fY2FsbChQU0FfS0VZX0RFUklWQVRJT05fSU5QVVRfS0VZLAorICAgICAgICAgICAgICAgICAgICAgICAgIHNlcl9wYXJhbXMsIChzaXplX3QpIChwb3MgLSBzZXJfcGFyYW1zKSwgJnNlcl9yZXN1bHQsICZyZXN1bHRfbGVuZ3RoKTsKKyAgICBpZiAoIW9rKSB7CisgICAgICAgIHByaW50ZigiUFNBX0tFWV9ERVJJVkFUSU9OX0lOUFVUX0tFWSBzZXJ2ZXIgY2FsbCBmYWlsZWRcbiIpOworICAgICAgICBnb3RvIGZhaWw7CisgICAgfQorCisgICAgdWludDhfdCAqcnBvcyA9IHNlcl9yZXN1bHQ7CisgICAgc2l6ZV90IHJyZW1haW4gPSByZXN1bHRfbGVuZ3RoOworCisgICAgb2sgPSBwc2FzaW1fZGVzZXJpYWxpc2VfYmVnaW4oJnJwb3MsICZycmVtYWluKTsKKyAgICBpZiAoIW9rKSB7CisgICAgICAgIGdvdG8gZmFpbDsKKyAgICB9CisKKyAgICBvayA9IHBzYXNpbV9kZXNlcmlhbGlzZV9wc2Ffc3RhdHVzX3QoCisgICAgICAgICZycG9zLCAmcnJlbWFpbiwKKyAgICAgICAgJnN0YXR1cyk7CisgICAgaWYgKCFvaykgeworICAgICAgICBnb3RvIGZhaWw7CisgICAgfQorCisgICAgb2sgPSBwc2FzaW1fZGVzZXJpYWxpc2VfcHNhX2tleV9kZXJpdmF0aW9uX29wZXJhdGlvbl90KAorICAgICAgICAmcnBvcywgJnJyZW1haW4sCisgICAgICAgIG9wZXJhdGlvbik7CisgICAgaWYgKCFvaykgeworICAgICAgICBnb3RvIGZhaWw7CisgICAgfQorCitmYWlsOgorICAgIGZyZWUoc2VyX3BhcmFtcyk7CisgICAgZnJlZShzZXJfcmVzdWx0KTsKKworICAgIHJldHVybiBzdGF0dXM7Cit9CisKKworcHNhX3N0YXR1c190IHBzYV9rZXlfZGVyaXZhdGlvbl9rZXlfYWdyZWVtZW50KAorICAgIHBzYV9rZXlfZGVyaXZhdGlvbl9vcGVyYXRpb25fdCAqb3BlcmF0aW9uLAorICAgIHBzYV9rZXlfZGVyaXZhdGlvbl9zdGVwX3Qgc3RlcCwKKyAgICBtYmVkdGxzX3N2Y19rZXlfaWRfdCBwcml2YXRlX2tleSwKKyAgICBjb25zdCB1aW50OF90ICpwZWVyX2tleSwgc2l6ZV90ICBwZWVyX2tleV9sZW5ndGgKKyAgICApCit7CisgICAgdWludDhfdCAqc2VyX3BhcmFtcyA9IE5VTEw7CisgICAgdWludDhfdCAqc2VyX3Jlc3VsdCA9IE5VTEw7CisgICAgc2l6ZV90IHJlc3VsdF9sZW5ndGg7CisgICAgcHNhX3N0YXR1c190IHN0YXR1cyA9IFBTQV9FUlJPUl9DT1JSVVBUSU9OX0RFVEVDVEVEOworCisgICAgc2l6ZV90IG5lZWRlZCA9CisgICAgICAgIHBzYXNpbV9zZXJpYWxpc2VfYmVnaW5fbmVlZHMoKSArCisgICAgICAgIHBzYXNpbV9zZXJpYWxpc2VfcHNhX2tleV9kZXJpdmF0aW9uX29wZXJhdGlvbl90X25lZWRzKCpvcGVyYXRpb24pICsKKyAgICAgICAgcHNhc2ltX3NlcmlhbGlzZV9wc2Ffa2V5X2Rlcml2YXRpb25fc3RlcF90X25lZWRzKHN0ZXApICsKKyAgICAgICAgcHNhc2ltX3NlcmlhbGlzZV9tYmVkdGxzX3N2Y19rZXlfaWRfdF9uZWVkcyhwcml2YXRlX2tleSkgKworICAgICAgICBwc2FzaW1fc2VyaWFsaXNlX2J1ZmZlcl9uZWVkcyhwZWVyX2tleSwgcGVlcl9rZXlfbGVuZ3RoKTsKKworICAgIHNlcl9wYXJhbXMgPSBtYWxsb2MobmVlZGVkKTsKKyAgICBpZiAoc2VyX3BhcmFtcyA9PSBOVUxMKSB7CisgICAgICAgIHN0YXR1cyA9IFBTQV9FUlJPUl9JTlNVRkZJQ0lFTlRfTUVNT1JZOworICAgICAgICBnb3RvIGZhaWw7CisgICAgfQorCisgICAgdWludDhfdCAqcG9zID0gc2VyX3BhcmFtczsKKyAgICBzaXplX3QgcmVtYWluaW5nID0gbmVlZGVkOworICAgIGludCBvazsKKyAgICBvayA9IHBzYXNpbV9zZXJpYWxpc2VfYmVnaW4oJnBvcywgJnJlbWFpbmluZyk7CisgICAgaWYgKCFvaykgeworICAgICAgICBnb3RvIGZhaWw7CisgICAgfQorICAgIG9rID0gcHNhc2ltX3NlcmlhbGlzZV9wc2Ffa2V5X2Rlcml2YXRpb25fb3BlcmF0aW9uX3QoCisgICAgICAgICZwb3MsICZyZW1haW5pbmcsCisgICAgICAgICpvcGVyYXRpb24pOworICAgIGlmICghb2spIHsKKyAgICAgICAgZ290byBmYWlsOworICAgIH0KKyAgICBvayA9IHBzYXNpbV9zZXJpYWxpc2VfcHNhX2tleV9kZXJpdmF0aW9uX3N0ZXBfdCgKKyAgICAgICAgJnBvcywgJnJlbWFpbmluZywKKyAgICAgICAgc3RlcCk7CisgICAgaWYgKCFvaykgeworICAgICAgICBnb3RvIGZhaWw7CisgICAgfQorICAgIG9rID0gcHNhc2ltX3NlcmlhbGlzZV9tYmVkdGxzX3N2Y19rZXlfaWRfdCgKKyAgICAgICAgJnBvcywgJnJlbWFpbmluZywKKyAgICAgICAgcHJpdmF0ZV9rZXkpOworICAgIGlmICghb2spIHsKKyAgICAgICAgZ290byBmYWlsOworICAgIH0KKyAgICBvayA9IHBzYXNpbV9zZXJpYWxpc2VfYnVmZmVyKAorICAgICAgICAmcG9zLCAmcmVtYWluaW5nLAorICAgICAgICBwZWVyX2tleSwgcGVlcl9rZXlfbGVuZ3RoKTsKKyAgICBpZiAoIW9rKSB7CisgICAgICAgIGdvdG8gZmFpbDsKKyAgICB9CisKKyAgICBvayA9IHBzYV9jcnlwdG9fY2FsbChQU0FfS0VZX0RFUklWQVRJT05fS0VZX0FHUkVFTUVOVCwKKyAgICAgICAgICAgICAgICAgICAgICAgICBzZXJfcGFyYW1zLCAoc2l6ZV90KSAocG9zIC0gc2VyX3BhcmFtcyksICZzZXJfcmVzdWx0LCAmcmVzdWx0X2xlbmd0aCk7CisgICAgaWYgKCFvaykgeworICAgICAgICBwcmludGYoIlBTQV9LRVlfREVSSVZBVElPTl9LRVlfQUdSRUVNRU5UIHNlcnZlciBjYWxsIGZhaWxlZFxuIik7CisgICAgICAgIGdvdG8gZmFpbDsKKyAgICB9CisKKyAgICB1aW50OF90ICpycG9zID0gc2VyX3Jlc3VsdDsKKyAgICBzaXplX3QgcnJlbWFpbiA9IHJlc3VsdF9sZW5ndGg7CisKKyAgICBvayA9IHBzYXNpbV9kZXNlcmlhbGlzZV9iZWdpbigmcnBvcywgJnJyZW1haW4pOworICAgIGlmICghb2spIHsKKyAgICAgICAgZ290byBmYWlsOworICAgIH0KKworICAgIG9rID0gcHNhc2ltX2Rlc2VyaWFsaXNlX3BzYV9zdGF0dXNfdCgKKyAgICAgICAgJnJwb3MsICZycmVtYWluLAorICAgICAgICAmc3RhdHVzKTsKKyAgICBpZiAoIW9rKSB7CisgICAgICAgIGdvdG8gZmFpbDsKKyAgICB9CisKKyAgICBvayA9IHBzYXNpbV9kZXNlcmlhbGlzZV9wc2Ffa2V5X2Rlcml2YXRpb25fb3BlcmF0aW9uX3QoCisgICAgICAgICZycG9zLCAmcnJlbWFpbiwKKyAgICAgICAgb3BlcmF0aW9uKTsKKyAgICBpZiAoIW9rKSB7CisgICAgICAgIGdvdG8gZmFpbDsKKyAgICB9CisKK2ZhaWw6CisgICAgZnJlZShzZXJfcGFyYW1zKTsKKyAgICBmcmVlKHNlcl9yZXN1bHQpOworCisgICAgcmV0dXJuIHN0YXR1czsKK30KKworCitwc2Ffc3RhdHVzX3QgcHNhX2tleV9kZXJpdmF0aW9uX291dHB1dF9ieXRlcygKKyAgICBwc2Ffa2V5X2Rlcml2YXRpb25fb3BlcmF0aW9uX3QgKm9wZXJhdGlvbiwKKyAgICB1aW50OF90ICpvdXRwdXQsIHNpemVfdCAgb3V0cHV0X2xlbmd0aAorICAgICkKK3sKKyAgICB1aW50OF90ICpzZXJfcGFyYW1zID0gTlVMTDsKKyAgICB1aW50OF90ICpzZXJfcmVzdWx0ID0gTlVMTDsKKyAgICBzaXplX3QgcmVzdWx0X2xlbmd0aDsKKyAgICBwc2Ffc3RhdHVzX3Qgc3RhdHVzID0gUFNBX0VSUk9SX0NPUlJVUFRJT05fREVURUNURUQ7CisKKyAgICBzaXplX3QgbmVlZGVkID0KKyAgICAgICAgcHNhc2ltX3NlcmlhbGlzZV9iZWdpbl9uZWVkcygpICsKKyAgICAgICAgcHNhc2ltX3NlcmlhbGlzZV9wc2Ffa2V5X2Rlcml2YXRpb25fb3BlcmF0aW9uX3RfbmVlZHMoKm9wZXJhdGlvbikgKworICAgICAgICBwc2FzaW1fc2VyaWFsaXNlX2J1ZmZlcl9uZWVkcyhvdXRwdXQsIG91dHB1dF9sZW5ndGgpOworCisgICAgc2VyX3BhcmFtcyA9IG1hbGxvYyhuZWVkZWQpOworICAgIGlmIChzZXJfcGFyYW1zID09IE5VTEwpIHsKKyAgICAgICAgc3RhdHVzID0gUFNBX0VSUk9SX0lOU1VGRklDSUVOVF9NRU1PUlk7CisgICAgICAgIGdvdG8gZmFpbDsKKyAgICB9CisKKyAgICB1aW50OF90ICpwb3MgPSBzZXJfcGFyYW1zOworICAgIHNpemVfdCByZW1haW5pbmcgPSBuZWVkZWQ7CisgICAgaW50IG9rOworICAgIG9rID0gcHNhc2ltX3NlcmlhbGlzZV9iZWdpbigmcG9zLCAmcmVtYWluaW5nKTsKKyAgICBpZiAoIW9rKSB7CisgICAgICAgIGdvdG8gZmFpbDsKKyAgICB9CisgICAgb2sgPSBwc2FzaW1fc2VyaWFsaXNlX3BzYV9rZXlfZGVyaXZhdGlvbl9vcGVyYXRpb25fdCgKKyAgICAgICAgJnBvcywgJnJlbWFpbmluZywKKyAgICAgICAgKm9wZXJhdGlvbik7CisgICAgaWYgKCFvaykgeworICAgICAgICBnb3RvIGZhaWw7CisgICAgfQorICAgIG9rID0gcHNhc2ltX3NlcmlhbGlzZV9idWZmZXIoCisgICAgICAgICZwb3MsICZyZW1haW5pbmcsCisgICAgICAgIG91dHB1dCwgb3V0cHV0X2xlbmd0aCk7CisgICAgaWYgKCFvaykgeworICAgICAgICBnb3RvIGZhaWw7CisgICAgfQorCisgICAgb2sgPSBwc2FfY3J5cHRvX2NhbGwoUFNBX0tFWV9ERVJJVkFUSU9OX09VVFBVVF9CWVRFUywKKyAgICAgICAgICAgICAgICAgICAgICAgICBzZXJfcGFyYW1zLCAoc2l6ZV90KSAocG9zIC0gc2VyX3BhcmFtcyksICZzZXJfcmVzdWx0LCAmcmVzdWx0X2xlbmd0aCk7CisgICAgaWYgKCFvaykgeworICAgICAgICBwcmludGYoIlBTQV9LRVlfREVSSVZBVElPTl9PVVRQVVRfQllURVMgc2VydmVyIGNhbGwgZmFpbGVkXG4iKTsKKyAgICAgICAgZ290byBmYWlsOworICAgIH0KKworICAgIHVpbnQ4X3QgKnJwb3MgPSBzZXJfcmVzdWx0OworICAgIHNpemVfdCBycmVtYWluID0gcmVzdWx0X2xlbmd0aDsKKworICAgIG9rID0gcHNhc2ltX2Rlc2VyaWFsaXNlX2JlZ2luKCZycG9zLCAmcnJlbWFpbik7CisgICAgaWYgKCFvaykgeworICAgICAgICBnb3RvIGZhaWw7CisgICAgfQorCisgICAgb2sgPSBwc2FzaW1fZGVzZXJpYWxpc2VfcHNhX3N0YXR1c190KAorICAgICAgICAmcnBvcywgJnJyZW1haW4sCisgICAgICAgICZzdGF0dXMpOworICAgIGlmICghb2spIHsKKyAgICAgICAgZ290byBmYWlsOworICAgIH0KKworICAgIG9rID0gcHNhc2ltX2Rlc2VyaWFsaXNlX3BzYV9rZXlfZGVyaXZhdGlvbl9vcGVyYXRpb25fdCgKKyAgICAgICAgJnJwb3MsICZycmVtYWluLAorICAgICAgICBvcGVyYXRpb24pOworICAgIGlmICghb2spIHsKKyAgICAgICAgZ290byBmYWlsOworICAgIH0KKworICAgIG9rID0gcHNhc2ltX2Rlc2VyaWFsaXNlX3JldHVybl9idWZmZXIoCisgICAgICAgICZycG9zLCAmcnJlbWFpbiwKKyAgICAgICAgb3V0cHV0LCBvdXRwdXRfbGVuZ3RoKTsKKyAgICBpZiAoIW9rKSB7CisgICAgICAgIGdvdG8gZmFpbDsKKyAgICB9CisKK2ZhaWw6CisgICAgZnJlZShzZXJfcGFyYW1zKTsKKyAgICBmcmVlKHNlcl9yZXN1bHQpOworCisgICAgcmV0dXJuIHN0YXR1czsKK30KKworCitwc2Ffc3RhdHVzX3QgcHNhX2tleV9kZXJpdmF0aW9uX291dHB1dF9rZXkoCisgICAgY29uc3QgcHNhX2tleV9hdHRyaWJ1dGVzX3QgKmF0dHJpYnV0ZXMsCisgICAgcHNhX2tleV9kZXJpdmF0aW9uX29wZXJhdGlvbl90ICpvcGVyYXRpb24sCisgICAgbWJlZHRsc19zdmNfa2V5X2lkX3QgKmtleQorICAgICkKK3sKKyAgICB1aW50OF90ICpzZXJfcGFyYW1zID0gTlVMTDsKKyAgICB1aW50OF90ICpzZXJfcmVzdWx0ID0gTlVMTDsKKyAgICBzaXplX3QgcmVzdWx0X2xlbmd0aDsKKyAgICBwc2Ffc3RhdHVzX3Qgc3RhdHVzID0gUFNBX0VSUk9SX0NPUlJVUFRJT05fREVURUNURUQ7CisKKyAgICBzaXplX3QgbmVlZGVkID0KKyAgICAgICAgcHNhc2ltX3NlcmlhbGlzZV9iZWdpbl9uZWVkcygpICsKKyAgICAgICAgcHNhc2ltX3NlcmlhbGlzZV9wc2Ffa2V5X2F0dHJpYnV0ZXNfdF9uZWVkcygqYXR0cmlidXRlcykgKworICAgICAgICBwc2FzaW1fc2VyaWFsaXNlX3BzYV9rZXlfZGVyaXZhdGlvbl9vcGVyYXRpb25fdF9uZWVkcygqb3BlcmF0aW9uKSArCisgICAgICAgIHBzYXNpbV9zZXJpYWxpc2VfbWJlZHRsc19zdmNfa2V5X2lkX3RfbmVlZHMoKmtleSk7CisKKyAgICBzZXJfcGFyYW1zID0gbWFsbG9jKG5lZWRlZCk7CisgICAgaWYgKHNlcl9wYXJhbXMgPT0gTlVMTCkgeworICAgICAgICBzdGF0dXMgPSBQU0FfRVJST1JfSU5TVUZGSUNJRU5UX01FTU9SWTsKKyAgICAgICAgZ290byBmYWlsOworICAgIH0KKworICAgIHVpbnQ4X3QgKnBvcyA9IHNlcl9wYXJhbXM7CisgICAgc2l6ZV90IHJlbWFpbmluZyA9IG5lZWRlZDsKKyAgICBpbnQgb2s7CisgICAgb2sgPSBwc2FzaW1fc2VyaWFsaXNlX2JlZ2luKCZwb3MsICZyZW1haW5pbmcpOworICAgIGlmICghb2spIHsKKyAgICAgICAgZ290byBmYWlsOworICAgIH0KKyAgICBvayA9IHBzYXNpbV9zZXJpYWxpc2VfcHNhX2tleV9hdHRyaWJ1dGVzX3QoCisgICAgICAgICZwb3MsICZyZW1haW5pbmcsCisgICAgICAgICphdHRyaWJ1dGVzKTsKKyAgICBpZiAoIW9rKSB7CisgICAgICAgIGdvdG8gZmFpbDsKKyAgICB9CisgICAgb2sgPSBwc2FzaW1fc2VyaWFsaXNlX3BzYV9rZXlfZGVyaXZhdGlvbl9vcGVyYXRpb25fdCgKKyAgICAgICAgJnBvcywgJnJlbWFpbmluZywKKyAgICAgICAgKm9wZXJhdGlvbik7CisgICAgaWYgKCFvaykgeworICAgICAgICBnb3RvIGZhaWw7CisgICAgfQorICAgIG9rID0gcHNhc2ltX3NlcmlhbGlzZV9tYmVkdGxzX3N2Y19rZXlfaWRfdCgKKyAgICAgICAgJnBvcywgJnJlbWFpbmluZywKKyAgICAgICAgKmtleSk7CisgICAgaWYgKCFvaykgeworICAgICAgICBnb3RvIGZhaWw7CisgICAgfQorCisgICAgb2sgPSBwc2FfY3J5cHRvX2NhbGwoUFNBX0tFWV9ERVJJVkFUSU9OX09VVFBVVF9LRVksCisgICAgICAgICAgICAgICAgICAgICAgICAgc2VyX3BhcmFtcywgKHNpemVfdCkgKHBvcyAtIHNlcl9wYXJhbXMpLCAmc2VyX3Jlc3VsdCwgJnJlc3VsdF9sZW5ndGgpOworICAgIGlmICghb2spIHsKKyAgICAgICAgcHJpbnRmKCJQU0FfS0VZX0RFUklWQVRJT05fT1VUUFVUX0tFWSBzZXJ2ZXIgY2FsbCBmYWlsZWRcbiIpOworICAgICAgICBnb3RvIGZhaWw7CisgICAgfQorCisgICAgdWludDhfdCAqcnBvcyA9IHNlcl9yZXN1bHQ7CisgICAgc2l6ZV90IHJyZW1haW4gPSByZXN1bHRfbGVuZ3RoOworCisgICAgb2sgPSBwc2FzaW1fZGVzZXJpYWxpc2VfYmVnaW4oJnJwb3MsICZycmVtYWluKTsKKyAgICBpZiAoIW9rKSB7CisgICAgICAgIGdvdG8gZmFpbDsKKyAgICB9CisKKyAgICBvayA9IHBzYXNpbV9kZXNlcmlhbGlzZV9wc2Ffc3RhdHVzX3QoCisgICAgICAgICZycG9zLCAmcnJlbWFpbiwKKyAgICAgICAgJnN0YXR1cyk7CisgICAgaWYgKCFvaykgeworICAgICAgICBnb3RvIGZhaWw7CisgICAgfQorCisgICAgb2sgPSBwc2FzaW1fZGVzZXJpYWxpc2VfcHNhX2tleV9kZXJpdmF0aW9uX29wZXJhdGlvbl90KAorICAgICAgICAmcnBvcywgJnJyZW1haW4sCisgICAgICAgIG9wZXJhdGlvbik7CisgICAgaWYgKCFvaykgeworICAgICAgICBnb3RvIGZhaWw7CisgICAgfQorCisgICAgb2sgPSBwc2FzaW1fZGVzZXJpYWxpc2VfbWJlZHRsc19zdmNfa2V5X2lkX3QoCisgICAgICAgICZycG9zLCAmcnJlbWFpbiwKKyAgICAgICAga2V5KTsKKyAgICBpZiAoIW9rKSB7CisgICAgICAgIGdvdG8gZmFpbDsKKyAgICB9CisKK2ZhaWw6CisgICAgZnJlZShzZXJfcGFyYW1zKTsKKyAgICBmcmVlKHNlcl9yZXN1bHQpOworCisgICAgcmV0dXJuIHN0YXR1czsKK30KKworCitwc2Ffc3RhdHVzX3QgcHNhX2tleV9kZXJpdmF0aW9uX291dHB1dF9rZXlfZXh0KAorICAgIGNvbnN0IHBzYV9rZXlfYXR0cmlidXRlc190ICphdHRyaWJ1dGVzLAorICAgIHBzYV9rZXlfZGVyaXZhdGlvbl9vcGVyYXRpb25fdCAqb3BlcmF0aW9uLAorICAgIGNvbnN0IHBzYV9rZXlfcHJvZHVjdGlvbl9wYXJhbWV0ZXJzX3QgKnBhcmFtcywgc2l6ZV90ICBwYXJhbXNfZGF0YV9sZW5ndGgsCisgICAgbWJlZHRsc19zdmNfa2V5X2lkX3QgKmtleQorICAgICkKK3sKKyAgICB1aW50OF90ICpzZXJfcGFyYW1zID0gTlVMTDsKKyAgICB1aW50OF90ICpzZXJfcmVzdWx0ID0gTlVMTDsKKyAgICBzaXplX3QgcmVzdWx0X2xlbmd0aDsKKyAgICBwc2Ffc3RhdHVzX3Qgc3RhdHVzID0gUFNBX0VSUk9SX0NPUlJVUFRJT05fREVURUNURUQ7CisKKyAgICBzaXplX3QgbmVlZGVkID0KKyAgICAgICAgcHNhc2ltX3NlcmlhbGlzZV9iZWdpbl9uZWVkcygpICsKKyAgICAgICAgcHNhc2ltX3NlcmlhbGlzZV9wc2Ffa2V5X2F0dHJpYnV0ZXNfdF9uZWVkcygqYXR0cmlidXRlcykgKworICAgICAgICBwc2FzaW1fc2VyaWFsaXNlX3BzYV9rZXlfZGVyaXZhdGlvbl9vcGVyYXRpb25fdF9uZWVkcygqb3BlcmF0aW9uKSArCisgICAgICAgIHBzYXNpbV9zZXJpYWxpc2VfcHNhX2tleV9wcm9kdWN0aW9uX3BhcmFtZXRlcnNfdF9uZWVkcyhwYXJhbXMsIHBhcmFtc19kYXRhX2xlbmd0aCkgKworICAgICAgICBwc2FzaW1fc2VyaWFsaXNlX21iZWR0bHNfc3ZjX2tleV9pZF90X25lZWRzKCprZXkpOworCisgICAgc2VyX3BhcmFtcyA9IG1hbGxvYyhuZWVkZWQpOworICAgIGlmIChzZXJfcGFyYW1zID09IE5VTEwpIHsKKyAgICAgICAgc3RhdHVzID0gUFNBX0VSUk9SX0lOU1VGRklDSUVOVF9NRU1PUlk7CisgICAgICAgIGdvdG8gZmFpbDsKKyAgICB9CisKKyAgICB1aW50OF90ICpwb3MgPSBzZXJfcGFyYW1zOworICAgIHNpemVfdCByZW1haW5pbmcgPSBuZWVkZWQ7CisgICAgaW50IG9rOworICAgIG9rID0gcHNhc2ltX3NlcmlhbGlzZV9iZWdpbigmcG9zLCAmcmVtYWluaW5nKTsKKyAgICBpZiAoIW9rKSB7CisgICAgICAgIGdvdG8gZmFpbDsKKyAgICB9CisgICAgb2sgPSBwc2FzaW1fc2VyaWFsaXNlX3BzYV9rZXlfYXR0cmlidXRlc190KAorICAgICAgICAmcG9zLCAmcmVtYWluaW5nLAorICAgICAgICAqYXR0cmlidXRlcyk7CisgICAgaWYgKCFvaykgeworICAgICAgICBnb3RvIGZhaWw7CisgICAgfQorICAgIG9rID0gcHNhc2ltX3NlcmlhbGlzZV9wc2Ffa2V5X2Rlcml2YXRpb25fb3BlcmF0aW9uX3QoCisgICAgICAgICZwb3MsICZyZW1haW5pbmcsCisgICAgICAgICpvcGVyYXRpb24pOworICAgIGlmICghb2spIHsKKyAgICAgICAgZ290byBmYWlsOworICAgIH0KKyAgICBvayA9IHBzYXNpbV9zZXJpYWxpc2VfcHNhX2tleV9wcm9kdWN0aW9uX3BhcmFtZXRlcnNfdCgKKyAgICAgICAgJnBvcywgJnJlbWFpbmluZywKKyAgICAgICAgcGFyYW1zLCBwYXJhbXNfZGF0YV9sZW5ndGgpOworICAgIGlmICghb2spIHsKKyAgICAgICAgZ290byBmYWlsOworICAgIH0KKyAgICBvayA9IHBzYXNpbV9zZXJpYWxpc2VfbWJlZHRsc19zdmNfa2V5X2lkX3QoCisgICAgICAgICZwb3MsICZyZW1haW5pbmcsCisgICAgICAgICprZXkpOworICAgIGlmICghb2spIHsKKyAgICAgICAgZ290byBmYWlsOworICAgIH0KKworICAgIG9rID0gcHNhX2NyeXB0b19jYWxsKFBTQV9LRVlfREVSSVZBVElPTl9PVVRQVVRfS0VZX0VYVCwKKyAgICAgICAgICAgICAgICAgICAgICAgICBzZXJfcGFyYW1zLCAoc2l6ZV90KSAocG9zIC0gc2VyX3BhcmFtcyksICZzZXJfcmVzdWx0LCAmcmVzdWx0X2xlbmd0aCk7CisgICAgaWYgKCFvaykgeworICAgICAgICBwcmludGYoIlBTQV9LRVlfREVSSVZBVElPTl9PVVRQVVRfS0VZX0VYVCBzZXJ2ZXIgY2FsbCBmYWlsZWRcbiIpOworICAgICAgICBnb3RvIGZhaWw7CisgICAgfQorCisgICAgdWludDhfdCAqcnBvcyA9IHNlcl9yZXN1bHQ7CisgICAgc2l6ZV90IHJyZW1haW4gPSByZXN1bHRfbGVuZ3RoOworCisgICAgb2sgPSBwc2FzaW1fZGVzZXJpYWxpc2VfYmVnaW4oJnJwb3MsICZycmVtYWluKTsKKyAgICBpZiAoIW9rKSB7CisgICAgICAgIGdvdG8gZmFpbDsKKyAgICB9CisKKyAgICBvayA9IHBzYXNpbV9kZXNlcmlhbGlzZV9wc2Ffc3RhdHVzX3QoCisgICAgICAgICZycG9zLCAmcnJlbWFpbiwKKyAgICAgICAgJnN0YXR1cyk7CisgICAgaWYgKCFvaykgeworICAgICAgICBnb3RvIGZhaWw7CisgICAgfQorCisgICAgb2sgPSBwc2FzaW1fZGVzZXJpYWxpc2VfcHNhX2tleV9kZXJpdmF0aW9uX29wZXJhdGlvbl90KAorICAgICAgICAmcnBvcywgJnJyZW1haW4sCisgICAgICAgIG9wZXJhdGlvbik7CisgICAgaWYgKCFvaykgeworICAgICAgICBnb3RvIGZhaWw7CisgICAgfQorCisgICAgb2sgPSBwc2FzaW1fZGVzZXJpYWxpc2VfbWJlZHRsc19zdmNfa2V5X2lkX3QoCisgICAgICAgICZycG9zLCAmcnJlbWFpbiwKKyAgICAgICAga2V5KTsKKyAgICBpZiAoIW9rKSB7CisgICAgICAgIGdvdG8gZmFpbDsKKyAgICB9CisKK2ZhaWw6CisgICAgZnJlZShzZXJfcGFyYW1zKTsKKyAgICBmcmVlKHNlcl9yZXN1bHQpOworCisgICAgcmV0dXJuIHN0YXR1czsKK30KKworCitwc2Ffc3RhdHVzX3QgcHNhX2tleV9kZXJpdmF0aW9uX3NldF9jYXBhY2l0eSgKKyAgICBwc2Ffa2V5X2Rlcml2YXRpb25fb3BlcmF0aW9uX3QgKm9wZXJhdGlvbiwKKyAgICBzaXplX3QgY2FwYWNpdHkKKyAgICApCit7CisgICAgdWludDhfdCAqc2VyX3BhcmFtcyA9IE5VTEw7CisgICAgdWludDhfdCAqc2VyX3Jlc3VsdCA9IE5VTEw7CisgICAgc2l6ZV90IHJlc3VsdF9sZW5ndGg7CisgICAgcHNhX3N0YXR1c190IHN0YXR1cyA9IFBTQV9FUlJPUl9DT1JSVVBUSU9OX0RFVEVDVEVEOworCisgICAgc2l6ZV90IG5lZWRlZCA9CisgICAgICAgIHBzYXNpbV9zZXJpYWxpc2VfYmVnaW5fbmVlZHMoKSArCisgICAgICAgIHBzYXNpbV9zZXJpYWxpc2VfcHNhX2tleV9kZXJpdmF0aW9uX29wZXJhdGlvbl90X25lZWRzKCpvcGVyYXRpb24pICsKKyAgICAgICAgcHNhc2ltX3NlcmlhbGlzZV9zaXplX3RfbmVlZHMoY2FwYWNpdHkpOworCisgICAgc2VyX3BhcmFtcyA9IG1hbGxvYyhuZWVkZWQpOworICAgIGlmIChzZXJfcGFyYW1zID09IE5VTEwpIHsKKyAgICAgICAgc3RhdHVzID0gUFNBX0VSUk9SX0lOU1VGRklDSUVOVF9NRU1PUlk7CisgICAgICAgIGdvdG8gZmFpbDsKKyAgICB9CisKKyAgICB1aW50OF90ICpwb3MgPSBzZXJfcGFyYW1zOworICAgIHNpemVfdCByZW1haW5pbmcgPSBuZWVkZWQ7CisgICAgaW50IG9rOworICAgIG9rID0gcHNhc2ltX3NlcmlhbGlzZV9iZWdpbigmcG9zLCAmcmVtYWluaW5nKTsKKyAgICBpZiAoIW9rKSB7CisgICAgICAgIGdvdG8gZmFpbDsKKyAgICB9CisgICAgb2sgPSBwc2FzaW1fc2VyaWFsaXNlX3BzYV9rZXlfZGVyaXZhdGlvbl9vcGVyYXRpb25fdCgKKyAgICAgICAgJnBvcywgJnJlbWFpbmluZywKKyAgICAgICAgKm9wZXJhdGlvbik7CisgICAgaWYgKCFvaykgeworICAgICAgICBnb3RvIGZhaWw7CisgICAgfQorICAgIG9rID0gcHNhc2ltX3NlcmlhbGlzZV9zaXplX3QoCisgICAgICAgICZwb3MsICZyZW1haW5pbmcsCisgICAgICAgIGNhcGFjaXR5KTsKKyAgICBpZiAoIW9rKSB7CisgICAgICAgIGdvdG8gZmFpbDsKKyAgICB9CisKKyAgICBvayA9IHBzYV9jcnlwdG9fY2FsbChQU0FfS0VZX0RFUklWQVRJT05fU0VUX0NBUEFDSVRZLAorICAgICAgICAgICAgICAgICAgICAgICAgIHNlcl9wYXJhbXMsIChzaXplX3QpIChwb3MgLSBzZXJfcGFyYW1zKSwgJnNlcl9yZXN1bHQsICZyZXN1bHRfbGVuZ3RoKTsKKyAgICBpZiAoIW9rKSB7CisgICAgICAgIHByaW50ZigiUFNBX0tFWV9ERVJJVkFUSU9OX1NFVF9DQVBBQ0lUWSBzZXJ2ZXIgY2FsbCBmYWlsZWRcbiIpOworICAgICAgICBnb3RvIGZhaWw7CisgICAgfQorCisgICAgdWludDhfdCAqcnBvcyA9IHNlcl9yZXN1bHQ7CisgICAgc2l6ZV90IHJyZW1haW4gPSByZXN1bHRfbGVuZ3RoOworCisgICAgb2sgPSBwc2FzaW1fZGVzZXJpYWxpc2VfYmVnaW4oJnJwb3MsICZycmVtYWluKTsKKyAgICBpZiAoIW9rKSB7CisgICAgICAgIGdvdG8gZmFpbDsKKyAgICB9CisKKyAgICBvayA9IHBzYXNpbV9kZXNlcmlhbGlzZV9wc2Ffc3RhdHVzX3QoCisgICAgICAgICZycG9zLCAmcnJlbWFpbiwKKyAgICAgICAgJnN0YXR1cyk7CisgICAgaWYgKCFvaykgeworICAgICAgICBnb3RvIGZhaWw7CisgICAgfQorCisgICAgb2sgPSBwc2FzaW1fZGVzZXJpYWxpc2VfcHNhX2tleV9kZXJpdmF0aW9uX29wZXJhdGlvbl90KAorICAgICAgICAmcnBvcywgJnJyZW1haW4sCisgICAgICAgIG9wZXJhdGlvbik7CisgICAgaWYgKCFvaykgeworICAgICAgICBnb3RvIGZhaWw7CisgICAgfQorCitmYWlsOgorICAgIGZyZWUoc2VyX3BhcmFtcyk7CisgICAgZnJlZShzZXJfcmVzdWx0KTsKKworICAgIHJldHVybiBzdGF0dXM7Cit9CisKKworcHNhX3N0YXR1c190IHBzYV9rZXlfZGVyaXZhdGlvbl9zZXR1cCgKKyAgICBwc2Ffa2V5X2Rlcml2YXRpb25fb3BlcmF0aW9uX3QgKm9wZXJhdGlvbiwKKyAgICBwc2FfYWxnb3JpdGhtX3QgYWxnCisgICAgKQoreworICAgIHVpbnQ4X3QgKnNlcl9wYXJhbXMgPSBOVUxMOworICAgIHVpbnQ4X3QgKnNlcl9yZXN1bHQgPSBOVUxMOworICAgIHNpemVfdCByZXN1bHRfbGVuZ3RoOworICAgIHBzYV9zdGF0dXNfdCBzdGF0dXMgPSBQU0FfRVJST1JfQ09SUlVQVElPTl9ERVRFQ1RFRDsKKworICAgIHNpemVfdCBuZWVkZWQgPQorICAgICAgICBwc2FzaW1fc2VyaWFsaXNlX2JlZ2luX25lZWRzKCkgKworICAgICAgICBwc2FzaW1fc2VyaWFsaXNlX3BzYV9rZXlfZGVyaXZhdGlvbl9vcGVyYXRpb25fdF9uZWVkcygqb3BlcmF0aW9uKSArCisgICAgICAgIHBzYXNpbV9zZXJpYWxpc2VfcHNhX2FsZ29yaXRobV90X25lZWRzKGFsZyk7CisKKyAgICBzZXJfcGFyYW1zID0gbWFsbG9jKG5lZWRlZCk7CisgICAgaWYgKHNlcl9wYXJhbXMgPT0gTlVMTCkgeworICAgICAgICBzdGF0dXMgPSBQU0FfRVJST1JfSU5TVUZGSUNJRU5UX01FTU9SWTsKKyAgICAgICAgZ290byBmYWlsOworICAgIH0KKworICAgIHVpbnQ4X3QgKnBvcyA9IHNlcl9wYXJhbXM7CisgICAgc2l6ZV90IHJlbWFpbmluZyA9IG5lZWRlZDsKKyAgICBpbnQgb2s7CisgICAgb2sgPSBwc2FzaW1fc2VyaWFsaXNlX2JlZ2luKCZwb3MsICZyZW1haW5pbmcpOworICAgIGlmICghb2spIHsKKyAgICAgICAgZ290byBmYWlsOworICAgIH0KKyAgICBvayA9IHBzYXNpbV9zZXJpYWxpc2VfcHNhX2tleV9kZXJpdmF0aW9uX29wZXJhdGlvbl90KAorICAgICAgICAmcG9zLCAmcmVtYWluaW5nLAorICAgICAgICAqb3BlcmF0aW9uKTsKKyAgICBpZiAoIW9rKSB7CisgICAgICAgIGdvdG8gZmFpbDsKKyAgICB9CisgICAgb2sgPSBwc2FzaW1fc2VyaWFsaXNlX3BzYV9hbGdvcml0aG1fdCgKKyAgICAgICAgJnBvcywgJnJlbWFpbmluZywKKyAgICAgICAgYWxnKTsKKyAgICBpZiAoIW9rKSB7CisgICAgICAgIGdvdG8gZmFpbDsKKyAgICB9CisKKyAgICBvayA9IHBzYV9jcnlwdG9fY2FsbChQU0FfS0VZX0RFUklWQVRJT05fU0VUVVAsCisgICAgICAgICAgICAgICAgICAgICAgICAgc2VyX3BhcmFtcywgKHNpemVfdCkgKHBvcyAtIHNlcl9wYXJhbXMpLCAmc2VyX3Jlc3VsdCwgJnJlc3VsdF9sZW5ndGgpOworICAgIGlmICghb2spIHsKKyAgICAgICAgcHJpbnRmKCJQU0FfS0VZX0RFUklWQVRJT05fU0VUVVAgc2VydmVyIGNhbGwgZmFpbGVkXG4iKTsKKyAgICAgICAgZ290byBmYWlsOworICAgIH0KKworICAgIHVpbnQ4X3QgKnJwb3MgPSBzZXJfcmVzdWx0OworICAgIHNpemVfdCBycmVtYWluID0gcmVzdWx0X2xlbmd0aDsKKworICAgIG9rID0gcHNhc2ltX2Rlc2VyaWFsaXNlX2JlZ2luKCZycG9zLCAmcnJlbWFpbik7CisgICAgaWYgKCFvaykgeworICAgICAgICBnb3RvIGZhaWw7CisgICAgfQorCisgICAgb2sgPSBwc2FzaW1fZGVzZXJpYWxpc2VfcHNhX3N0YXR1c190KAorICAgICAgICAmcnBvcywgJnJyZW1haW4sCisgICAgICAgICZzdGF0dXMpOworICAgIGlmICghb2spIHsKKyAgICAgICAgZ290byBmYWlsOworICAgIH0KKworICAgIG9rID0gcHNhc2ltX2Rlc2VyaWFsaXNlX3BzYV9rZXlfZGVyaXZhdGlvbl9vcGVyYXRpb25fdCgKKyAgICAgICAgJnJwb3MsICZycmVtYWluLAorICAgICAgICBvcGVyYXRpb24pOworICAgIGlmICghb2spIHsKKyAgICAgICAgZ290byBmYWlsOworICAgIH0KKworZmFpbDoKKyAgICBmcmVlKHNlcl9wYXJhbXMpOworICAgIGZyZWUoc2VyX3Jlc3VsdCk7CisKKyAgICByZXR1cm4gc3RhdHVzOworfQorCisKK3BzYV9zdGF0dXNfdCBwc2FfbWFjX2Fib3J0KAorICAgIHBzYV9tYWNfb3BlcmF0aW9uX3QgKm9wZXJhdGlvbgorICAgICkKK3sKKyAgICB1aW50OF90ICpzZXJfcGFyYW1zID0gTlVMTDsKKyAgICB1aW50OF90ICpzZXJfcmVzdWx0ID0gTlVMTDsKKyAgICBzaXplX3QgcmVzdWx0X2xlbmd0aDsKKyAgICBwc2Ffc3RhdHVzX3Qgc3RhdHVzID0gUFNBX0VSUk9SX0NPUlJVUFRJT05fREVURUNURUQ7CisKKyAgICBzaXplX3QgbmVlZGVkID0KKyAgICAgICAgcHNhc2ltX3NlcmlhbGlzZV9iZWdpbl9uZWVkcygpICsKKyAgICAgICAgcHNhc2ltX3NlcmlhbGlzZV9wc2FfbWFjX29wZXJhdGlvbl90X25lZWRzKCpvcGVyYXRpb24pOworCisgICAgc2VyX3BhcmFtcyA9IG1hbGxvYyhuZWVkZWQpOworICAgIGlmIChzZXJfcGFyYW1zID09IE5VTEwpIHsKKyAgICAgICAgc3RhdHVzID0gUFNBX0VSUk9SX0lOU1VGRklDSUVOVF9NRU1PUlk7CisgICAgICAgIGdvdG8gZmFpbDsKKyAgICB9CisKKyAgICB1aW50OF90ICpwb3MgPSBzZXJfcGFyYW1zOworICAgIHNpemVfdCByZW1haW5pbmcgPSBuZWVkZWQ7CisgICAgaW50IG9rOworICAgIG9rID0gcHNhc2ltX3NlcmlhbGlzZV9iZWdpbigmcG9zLCAmcmVtYWluaW5nKTsKKyAgICBpZiAoIW9rKSB7CisgICAgICAgIGdvdG8gZmFpbDsKKyAgICB9CisgICAgb2sgPSBwc2FzaW1fc2VyaWFsaXNlX3BzYV9tYWNfb3BlcmF0aW9uX3QoCisgICAgICAgICZwb3MsICZyZW1haW5pbmcsCisgICAgICAgICpvcGVyYXRpb24pOworICAgIGlmICghb2spIHsKKyAgICAgICAgZ290byBmYWlsOworICAgIH0KKworICAgIG9rID0gcHNhX2NyeXB0b19jYWxsKFBTQV9NQUNfQUJPUlQsCisgICAgICAgICAgICAgICAgICAgICAgICAgc2VyX3BhcmFtcywgKHNpemVfdCkgKHBvcyAtIHNlcl9wYXJhbXMpLCAmc2VyX3Jlc3VsdCwgJnJlc3VsdF9sZW5ndGgpOworICAgIGlmICghb2spIHsKKyAgICAgICAgcHJpbnRmKCJQU0FfTUFDX0FCT1JUIHNlcnZlciBjYWxsIGZhaWxlZFxuIik7CisgICAgICAgIGdvdG8gZmFpbDsKKyAgICB9CisKKyAgICB1aW50OF90ICpycG9zID0gc2VyX3Jlc3VsdDsKKyAgICBzaXplX3QgcnJlbWFpbiA9IHJlc3VsdF9sZW5ndGg7CisKKyAgICBvayA9IHBzYXNpbV9kZXNlcmlhbGlzZV9iZWdpbigmcnBvcywgJnJyZW1haW4pOworICAgIGlmICghb2spIHsKKyAgICAgICAgZ290byBmYWlsOworICAgIH0KKworICAgIG9rID0gcHNhc2ltX2Rlc2VyaWFsaXNlX3BzYV9zdGF0dXNfdCgKKyAgICAgICAgJnJwb3MsICZycmVtYWluLAorICAgICAgICAmc3RhdHVzKTsKKyAgICBpZiAoIW9rKSB7CisgICAgICAgIGdvdG8gZmFpbDsKKyAgICB9CisKKyAgICBvayA9IHBzYXNpbV9kZXNlcmlhbGlzZV9wc2FfbWFjX29wZXJhdGlvbl90KAorICAgICAgICAmcnBvcywgJnJyZW1haW4sCisgICAgICAgIG9wZXJhdGlvbik7CisgICAgaWYgKCFvaykgeworICAgICAgICBnb3RvIGZhaWw7CisgICAgfQorCitmYWlsOgorICAgIGZyZWUoc2VyX3BhcmFtcyk7CisgICAgZnJlZShzZXJfcmVzdWx0KTsKKworICAgIHJldHVybiBzdGF0dXM7Cit9CisKKworcHNhX3N0YXR1c190IHBzYV9tYWNfY29tcHV0ZSgKKyAgICBtYmVkdGxzX3N2Y19rZXlfaWRfdCBrZXksCisgICAgcHNhX2FsZ29yaXRobV90IGFsZywKKyAgICBjb25zdCB1aW50OF90ICppbnB1dCwgc2l6ZV90ICBpbnB1dF9sZW5ndGgsCisgICAgdWludDhfdCAqbWFjLCBzaXplX3QgIG1hY19zaXplLAorICAgIHNpemVfdCAqbWFjX2xlbmd0aAorICAgICkKK3sKKyAgICB1aW50OF90ICpzZXJfcGFyYW1zID0gTlVMTDsKKyAgICB1aW50OF90ICpzZXJfcmVzdWx0ID0gTlVMTDsKKyAgICBzaXplX3QgcmVzdWx0X2xlbmd0aDsKKyAgICBwc2Ffc3RhdHVzX3Qgc3RhdHVzID0gUFNBX0VSUk9SX0NPUlJVUFRJT05fREVURUNURUQ7CisKKyAgICBzaXplX3QgbmVlZGVkID0KKyAgICAgICAgcHNhc2ltX3NlcmlhbGlzZV9iZWdpbl9uZWVkcygpICsKKyAgICAgICAgcHNhc2ltX3NlcmlhbGlzZV9tYmVkdGxzX3N2Y19rZXlfaWRfdF9uZWVkcyhrZXkpICsKKyAgICAgICAgcHNhc2ltX3NlcmlhbGlzZV9wc2FfYWxnb3JpdGhtX3RfbmVlZHMoYWxnKSArCisgICAgICAgIHBzYXNpbV9zZXJpYWxpc2VfYnVmZmVyX25lZWRzKGlucHV0LCBpbnB1dF9sZW5ndGgpICsKKyAgICAgICAgcHNhc2ltX3NlcmlhbGlzZV9idWZmZXJfbmVlZHMobWFjLCBtYWNfc2l6ZSkgKworICAgICAgICBwc2FzaW1fc2VyaWFsaXNlX3NpemVfdF9uZWVkcygqbWFjX2xlbmd0aCk7CisKKyAgICBzZXJfcGFyYW1zID0gbWFsbG9jKG5lZWRlZCk7CisgICAgaWYgKHNlcl9wYXJhbXMgPT0gTlVMTCkgeworICAgICAgICBzdGF0dXMgPSBQU0FfRVJST1JfSU5TVUZGSUNJRU5UX01FTU9SWTsKKyAgICAgICAgZ290byBmYWlsOworICAgIH0KKworICAgIHVpbnQ4X3QgKnBvcyA9IHNlcl9wYXJhbXM7CisgICAgc2l6ZV90IHJlbWFpbmluZyA9IG5lZWRlZDsKKyAgICBpbnQgb2s7CisgICAgb2sgPSBwc2FzaW1fc2VyaWFsaXNlX2JlZ2luKCZwb3MsICZyZW1haW5pbmcpOworICAgIGlmICghb2spIHsKKyAgICAgICAgZ290byBmYWlsOworICAgIH0KKyAgICBvayA9IHBzYXNpbV9zZXJpYWxpc2VfbWJlZHRsc19zdmNfa2V5X2lkX3QoCisgICAgICAgICZwb3MsICZyZW1haW5pbmcsCisgICAgICAgIGtleSk7CisgICAgaWYgKCFvaykgeworICAgICAgICBnb3RvIGZhaWw7CisgICAgfQorICAgIG9rID0gcHNhc2ltX3NlcmlhbGlzZV9wc2FfYWxnb3JpdGhtX3QoCisgICAgICAgICZwb3MsICZyZW1haW5pbmcsCisgICAgICAgIGFsZyk7CisgICAgaWYgKCFvaykgeworICAgICAgICBnb3RvIGZhaWw7CisgICAgfQorICAgIG9rID0gcHNhc2ltX3NlcmlhbGlzZV9idWZmZXIoCisgICAgICAgICZwb3MsICZyZW1haW5pbmcsCisgICAgICAgIGlucHV0LCBpbnB1dF9sZW5ndGgpOworICAgIGlmICghb2spIHsKKyAgICAgICAgZ290byBmYWlsOworICAgIH0KKyAgICBvayA9IHBzYXNpbV9zZXJpYWxpc2VfYnVmZmVyKAorICAgICAgICAmcG9zLCAmcmVtYWluaW5nLAorICAgICAgICBtYWMsIG1hY19zaXplKTsKKyAgICBpZiAoIW9rKSB7CisgICAgICAgIGdvdG8gZmFpbDsKKyAgICB9CisgICAgb2sgPSBwc2FzaW1fc2VyaWFsaXNlX3NpemVfdCgKKyAgICAgICAgJnBvcywgJnJlbWFpbmluZywKKyAgICAgICAgKm1hY19sZW5ndGgpOworICAgIGlmICghb2spIHsKKyAgICAgICAgZ290byBmYWlsOworICAgIH0KKworICAgIG9rID0gcHNhX2NyeXB0b19jYWxsKFBTQV9NQUNfQ09NUFVURSwKKyAgICAgICAgICAgICAgICAgICAgICAgICBzZXJfcGFyYW1zLCAoc2l6ZV90KSAocG9zIC0gc2VyX3BhcmFtcyksICZzZXJfcmVzdWx0LCAmcmVzdWx0X2xlbmd0aCk7CisgICAgaWYgKCFvaykgeworICAgICAgICBwcmludGYoIlBTQV9NQUNfQ09NUFVURSBzZXJ2ZXIgY2FsbCBmYWlsZWRcbiIpOworICAgICAgICBnb3RvIGZhaWw7CisgICAgfQorCisgICAgdWludDhfdCAqcnBvcyA9IHNlcl9yZXN1bHQ7CisgICAgc2l6ZV90IHJyZW1haW4gPSByZXN1bHRfbGVuZ3RoOworCisgICAgb2sgPSBwc2FzaW1fZGVzZXJpYWxpc2VfYmVnaW4oJnJwb3MsICZycmVtYWluKTsKKyAgICBpZiAoIW9rKSB7CisgICAgICAgIGdvdG8gZmFpbDsKKyAgICB9CisKKyAgICBvayA9IHBzYXNpbV9kZXNlcmlhbGlzZV9wc2Ffc3RhdHVzX3QoCisgICAgICAgICZycG9zLCAmcnJlbWFpbiwKKyAgICAgICAgJnN0YXR1cyk7CisgICAgaWYgKCFvaykgeworICAgICAgICBnb3RvIGZhaWw7CisgICAgfQorCisgICAgb2sgPSBwc2FzaW1fZGVzZXJpYWxpc2VfcmV0dXJuX2J1ZmZlcigKKyAgICAgICAgJnJwb3MsICZycmVtYWluLAorICAgICAgICBtYWMsIG1hY19zaXplKTsKKyAgICBpZiAoIW9rKSB7CisgICAgICAgIGdvdG8gZmFpbDsKKyAgICB9CisKKyAgICBvayA9IHBzYXNpbV9kZXNlcmlhbGlzZV9zaXplX3QoCisgICAgICAgICZycG9zLCAmcnJlbWFpbiwKKyAgICAgICAgbWFjX2xlbmd0aCk7CisgICAgaWYgKCFvaykgeworICAgICAgICBnb3RvIGZhaWw7CisgICAgfQorCitmYWlsOgorICAgIGZyZWUoc2VyX3BhcmFtcyk7CisgICAgZnJlZShzZXJfcmVzdWx0KTsKKworICAgIHJldHVybiBzdGF0dXM7Cit9CisKKworcHNhX3N0YXR1c190IHBzYV9tYWNfc2lnbl9maW5pc2goCisgICAgcHNhX21hY19vcGVyYXRpb25fdCAqb3BlcmF0aW9uLAorICAgIHVpbnQ4X3QgKm1hYywgc2l6ZV90ICBtYWNfc2l6ZSwKKyAgICBzaXplX3QgKm1hY19sZW5ndGgKKyAgICApCit7CisgICAgdWludDhfdCAqc2VyX3BhcmFtcyA9IE5VTEw7CisgICAgdWludDhfdCAqc2VyX3Jlc3VsdCA9IE5VTEw7CisgICAgc2l6ZV90IHJlc3VsdF9sZW5ndGg7CisgICAgcHNhX3N0YXR1c190IHN0YXR1cyA9IFBTQV9FUlJPUl9DT1JSVVBUSU9OX0RFVEVDVEVEOworCisgICAgc2l6ZV90IG5lZWRlZCA9CisgICAgICAgIHBzYXNpbV9zZXJpYWxpc2VfYmVnaW5fbmVlZHMoKSArCisgICAgICAgIHBzYXNpbV9zZXJpYWxpc2VfcHNhX21hY19vcGVyYXRpb25fdF9uZWVkcygqb3BlcmF0aW9uKSArCisgICAgICAgIHBzYXNpbV9zZXJpYWxpc2VfYnVmZmVyX25lZWRzKG1hYywgbWFjX3NpemUpICsKKyAgICAgICAgcHNhc2ltX3NlcmlhbGlzZV9zaXplX3RfbmVlZHMoKm1hY19sZW5ndGgpOworCisgICAgc2VyX3BhcmFtcyA9IG1hbGxvYyhuZWVkZWQpOworICAgIGlmIChzZXJfcGFyYW1zID09IE5VTEwpIHsKKyAgICAgICAgc3RhdHVzID0gUFNBX0VSUk9SX0lOU1VGRklDSUVOVF9NRU1PUlk7CisgICAgICAgIGdvdG8gZmFpbDsKKyAgICB9CisKKyAgICB1aW50OF90ICpwb3MgPSBzZXJfcGFyYW1zOworICAgIHNpemVfdCByZW1haW5pbmcgPSBuZWVkZWQ7CisgICAgaW50IG9rOworICAgIG9rID0gcHNhc2ltX3NlcmlhbGlzZV9iZWdpbigmcG9zLCAmcmVtYWluaW5nKTsKKyAgICBpZiAoIW9rKSB7CisgICAgICAgIGdvdG8gZmFpbDsKKyAgICB9CisgICAgb2sgPSBwc2FzaW1fc2VyaWFsaXNlX3BzYV9tYWNfb3BlcmF0aW9uX3QoCisgICAgICAgICZwb3MsICZyZW1haW5pbmcsCisgICAgICAgICpvcGVyYXRpb24pOworICAgIGlmICghb2spIHsKKyAgICAgICAgZ290byBmYWlsOworICAgIH0KKyAgICBvayA9IHBzYXNpbV9zZXJpYWxpc2VfYnVmZmVyKAorICAgICAgICAmcG9zLCAmcmVtYWluaW5nLAorICAgICAgICBtYWMsIG1hY19zaXplKTsKKyAgICBpZiAoIW9rKSB7CisgICAgICAgIGdvdG8gZmFpbDsKKyAgICB9CisgICAgb2sgPSBwc2FzaW1fc2VyaWFsaXNlX3NpemVfdCgKKyAgICAgICAgJnBvcywgJnJlbWFpbmluZywKKyAgICAgICAgKm1hY19sZW5ndGgpOworICAgIGlmICghb2spIHsKKyAgICAgICAgZ290byBmYWlsOworICAgIH0KKworICAgIG9rID0gcHNhX2NyeXB0b19jYWxsKFBTQV9NQUNfU0lHTl9GSU5JU0gsCisgICAgICAgICAgICAgICAgICAgICAgICAgc2VyX3BhcmFtcywgKHNpemVfdCkgKHBvcyAtIHNlcl9wYXJhbXMpLCAmc2VyX3Jlc3VsdCwgJnJlc3VsdF9sZW5ndGgpOworICAgIGlmICghb2spIHsKKyAgICAgICAgcHJpbnRmKCJQU0FfTUFDX1NJR05fRklOSVNIIHNlcnZlciBjYWxsIGZhaWxlZFxuIik7CisgICAgICAgIGdvdG8gZmFpbDsKKyAgICB9CisKKyAgICB1aW50OF90ICpycG9zID0gc2VyX3Jlc3VsdDsKKyAgICBzaXplX3QgcnJlbWFpbiA9IHJlc3VsdF9sZW5ndGg7CisKKyAgICBvayA9IHBzYXNpbV9kZXNlcmlhbGlzZV9iZWdpbigmcnBvcywgJnJyZW1haW4pOworICAgIGlmICghb2spIHsKKyAgICAgICAgZ290byBmYWlsOworICAgIH0KKworICAgIG9rID0gcHNhc2ltX2Rlc2VyaWFsaXNlX3BzYV9zdGF0dXNfdCgKKyAgICAgICAgJnJwb3MsICZycmVtYWluLAorICAgICAgICAmc3RhdHVzKTsKKyAgICBpZiAoIW9rKSB7CisgICAgICAgIGdvdG8gZmFpbDsKKyAgICB9CisKKyAgICBvayA9IHBzYXNpbV9kZXNlcmlhbGlzZV9wc2FfbWFjX29wZXJhdGlvbl90KAorICAgICAgICAmcnBvcywgJnJyZW1haW4sCisgICAgICAgIG9wZXJhdGlvbik7CisgICAgaWYgKCFvaykgeworICAgICAgICBnb3RvIGZhaWw7CisgICAgfQorCisgICAgb2sgPSBwc2FzaW1fZGVzZXJpYWxpc2VfcmV0dXJuX2J1ZmZlcigKKyAgICAgICAgJnJwb3MsICZycmVtYWluLAorICAgICAgICBtYWMsIG1hY19zaXplKTsKKyAgICBpZiAoIW9rKSB7CisgICAgICAgIGdvdG8gZmFpbDsKKyAgICB9CisKKyAgICBvayA9IHBzYXNpbV9kZXNlcmlhbGlzZV9zaXplX3QoCisgICAgICAgICZycG9zLCAmcnJlbWFpbiwKKyAgICAgICAgbWFjX2xlbmd0aCk7CisgICAgaWYgKCFvaykgeworICAgICAgICBnb3RvIGZhaWw7CisgICAgfQorCitmYWlsOgorICAgIGZyZWUoc2VyX3BhcmFtcyk7CisgICAgZnJlZShzZXJfcmVzdWx0KTsKKworICAgIHJldHVybiBzdGF0dXM7Cit9CisKKworcHNhX3N0YXR1c190IHBzYV9tYWNfc2lnbl9zZXR1cCgKKyAgICBwc2FfbWFjX29wZXJhdGlvbl90ICpvcGVyYXRpb24sCisgICAgbWJlZHRsc19zdmNfa2V5X2lkX3Qga2V5LAorICAgIHBzYV9hbGdvcml0aG1fdCBhbGcKKyAgICApCit7CisgICAgdWludDhfdCAqc2VyX3BhcmFtcyA9IE5VTEw7CisgICAgdWludDhfdCAqc2VyX3Jlc3VsdCA9IE5VTEw7CisgICAgc2l6ZV90IHJlc3VsdF9sZW5ndGg7CisgICAgcHNhX3N0YXR1c190IHN0YXR1cyA9IFBTQV9FUlJPUl9DT1JSVVBUSU9OX0RFVEVDVEVEOworCisgICAgc2l6ZV90IG5lZWRlZCA9CisgICAgICAgIHBzYXNpbV9zZXJpYWxpc2VfYmVnaW5fbmVlZHMoKSArCisgICAgICAgIHBzYXNpbV9zZXJpYWxpc2VfcHNhX21hY19vcGVyYXRpb25fdF9uZWVkcygqb3BlcmF0aW9uKSArCisgICAgICAgIHBzYXNpbV9zZXJpYWxpc2VfbWJlZHRsc19zdmNfa2V5X2lkX3RfbmVlZHMoa2V5KSArCisgICAgICAgIHBzYXNpbV9zZXJpYWxpc2VfcHNhX2FsZ29yaXRobV90X25lZWRzKGFsZyk7CisKKyAgICBzZXJfcGFyYW1zID0gbWFsbG9jKG5lZWRlZCk7CisgICAgaWYgKHNlcl9wYXJhbXMgPT0gTlVMTCkgeworICAgICAgICBzdGF0dXMgPSBQU0FfRVJST1JfSU5TVUZGSUNJRU5UX01FTU9SWTsKKyAgICAgICAgZ290byBmYWlsOworICAgIH0KKworICAgIHVpbnQ4X3QgKnBvcyA9IHNlcl9wYXJhbXM7CisgICAgc2l6ZV90IHJlbWFpbmluZyA9IG5lZWRlZDsKKyAgICBpbnQgb2s7CisgICAgb2sgPSBwc2FzaW1fc2VyaWFsaXNlX2JlZ2luKCZwb3MsICZyZW1haW5pbmcpOworICAgIGlmICghb2spIHsKKyAgICAgICAgZ290byBmYWlsOworICAgIH0KKyAgICBvayA9IHBzYXNpbV9zZXJpYWxpc2VfcHNhX21hY19vcGVyYXRpb25fdCgKKyAgICAgICAgJnBvcywgJnJlbWFpbmluZywKKyAgICAgICAgKm9wZXJhdGlvbik7CisgICAgaWYgKCFvaykgeworICAgICAgICBnb3RvIGZhaWw7CisgICAgfQorICAgIG9rID0gcHNhc2ltX3NlcmlhbGlzZV9tYmVkdGxzX3N2Y19rZXlfaWRfdCgKKyAgICAgICAgJnBvcywgJnJlbWFpbmluZywKKyAgICAgICAga2V5KTsKKyAgICBpZiAoIW9rKSB7CisgICAgICAgIGdvdG8gZmFpbDsKKyAgICB9CisgICAgb2sgPSBwc2FzaW1fc2VyaWFsaXNlX3BzYV9hbGdvcml0aG1fdCgKKyAgICAgICAgJnBvcywgJnJlbWFpbmluZywKKyAgICAgICAgYWxnKTsKKyAgICBpZiAoIW9rKSB7CisgICAgICAgIGdvdG8gZmFpbDsKKyAgICB9CisKKyAgICBvayA9IHBzYV9jcnlwdG9fY2FsbChQU0FfTUFDX1NJR05fU0VUVVAsCisgICAgICAgICAgICAgICAgICAgICAgICAgc2VyX3BhcmFtcywgKHNpemVfdCkgKHBvcyAtIHNlcl9wYXJhbXMpLCAmc2VyX3Jlc3VsdCwgJnJlc3VsdF9sZW5ndGgpOworICAgIGlmICghb2spIHsKKyAgICAgICAgcHJpbnRmKCJQU0FfTUFDX1NJR05fU0VUVVAgc2VydmVyIGNhbGwgZmFpbGVkXG4iKTsKKyAgICAgICAgZ290byBmYWlsOworICAgIH0KKworICAgIHVpbnQ4X3QgKnJwb3MgPSBzZXJfcmVzdWx0OworICAgIHNpemVfdCBycmVtYWluID0gcmVzdWx0X2xlbmd0aDsKKworICAgIG9rID0gcHNhc2ltX2Rlc2VyaWFsaXNlX2JlZ2luKCZycG9zLCAmcnJlbWFpbik7CisgICAgaWYgKCFvaykgeworICAgICAgICBnb3RvIGZhaWw7CisgICAgfQorCisgICAgb2sgPSBwc2FzaW1fZGVzZXJpYWxpc2VfcHNhX3N0YXR1c190KAorICAgICAgICAmcnBvcywgJnJyZW1haW4sCisgICAgICAgICZzdGF0dXMpOworICAgIGlmICghb2spIHsKKyAgICAgICAgZ290byBmYWlsOworICAgIH0KKworICAgIG9rID0gcHNhc2ltX2Rlc2VyaWFsaXNlX3BzYV9tYWNfb3BlcmF0aW9uX3QoCisgICAgICAgICZycG9zLCAmcnJlbWFpbiwKKyAgICAgICAgb3BlcmF0aW9uKTsKKyAgICBpZiAoIW9rKSB7CisgICAgICAgIGdvdG8gZmFpbDsKKyAgICB9CisKK2ZhaWw6CisgICAgZnJlZShzZXJfcGFyYW1zKTsKKyAgICBmcmVlKHNlcl9yZXN1bHQpOworCisgICAgcmV0dXJuIHN0YXR1czsKK30KKworCitwc2Ffc3RhdHVzX3QgcHNhX21hY191cGRhdGUoCisgICAgcHNhX21hY19vcGVyYXRpb25fdCAqb3BlcmF0aW9uLAorICAgIGNvbnN0IHVpbnQ4X3QgKmlucHV0LCBzaXplX3QgIGlucHV0X2xlbmd0aAorICAgICkKK3sKKyAgICB1aW50OF90ICpzZXJfcGFyYW1zID0gTlVMTDsKKyAgICB1aW50OF90ICpzZXJfcmVzdWx0ID0gTlVMTDsKKyAgICBzaXplX3QgcmVzdWx0X2xlbmd0aDsKKyAgICBwc2Ffc3RhdHVzX3Qgc3RhdHVzID0gUFNBX0VSUk9SX0NPUlJVUFRJT05fREVURUNURUQ7CisKKyAgICBzaXplX3QgbmVlZGVkID0KKyAgICAgICAgcHNhc2ltX3NlcmlhbGlzZV9iZWdpbl9uZWVkcygpICsKKyAgICAgICAgcHNhc2ltX3NlcmlhbGlzZV9wc2FfbWFjX29wZXJhdGlvbl90X25lZWRzKCpvcGVyYXRpb24pICsKKyAgICAgICAgcHNhc2ltX3NlcmlhbGlzZV9idWZmZXJfbmVlZHMoaW5wdXQsIGlucHV0X2xlbmd0aCk7CisKKyAgICBzZXJfcGFyYW1zID0gbWFsbG9jKG5lZWRlZCk7CisgICAgaWYgKHNlcl9wYXJhbXMgPT0gTlVMTCkgeworICAgICAgICBzdGF0dXMgPSBQU0FfRVJST1JfSU5TVUZGSUNJRU5UX01FTU9SWTsKKyAgICAgICAgZ290byBmYWlsOworICAgIH0KKworICAgIHVpbnQ4X3QgKnBvcyA9IHNlcl9wYXJhbXM7CisgICAgc2l6ZV90IHJlbWFpbmluZyA9IG5lZWRlZDsKKyAgICBpbnQgb2s7CisgICAgb2sgPSBwc2FzaW1fc2VyaWFsaXNlX2JlZ2luKCZwb3MsICZyZW1haW5pbmcpOworICAgIGlmICghb2spIHsKKyAgICAgICAgZ290byBmYWlsOworICAgIH0KKyAgICBvayA9IHBzYXNpbV9zZXJpYWxpc2VfcHNhX21hY19vcGVyYXRpb25fdCgKKyAgICAgICAgJnBvcywgJnJlbWFpbmluZywKKyAgICAgICAgKm9wZXJhdGlvbik7CisgICAgaWYgKCFvaykgeworICAgICAgICBnb3RvIGZhaWw7CisgICAgfQorICAgIG9rID0gcHNhc2ltX3NlcmlhbGlzZV9idWZmZXIoCisgICAgICAgICZwb3MsICZyZW1haW5pbmcsCisgICAgICAgIGlucHV0LCBpbnB1dF9sZW5ndGgpOworICAgIGlmICghb2spIHsKKyAgICAgICAgZ290byBmYWlsOworICAgIH0KKworICAgIG9rID0gcHNhX2NyeXB0b19jYWxsKFBTQV9NQUNfVVBEQVRFLAorICAgICAgICAgICAgICAgICAgICAgICAgIHNlcl9wYXJhbXMsIChzaXplX3QpIChwb3MgLSBzZXJfcGFyYW1zKSwgJnNlcl9yZXN1bHQsICZyZXN1bHRfbGVuZ3RoKTsKKyAgICBpZiAoIW9rKSB7CisgICAgICAgIHByaW50ZigiUFNBX01BQ19VUERBVEUgc2VydmVyIGNhbGwgZmFpbGVkXG4iKTsKKyAgICAgICAgZ290byBmYWlsOworICAgIH0KKworICAgIHVpbnQ4X3QgKnJwb3MgPSBzZXJfcmVzdWx0OworICAgIHNpemVfdCBycmVtYWluID0gcmVzdWx0X2xlbmd0aDsKKworICAgIG9rID0gcHNhc2ltX2Rlc2VyaWFsaXNlX2JlZ2luKCZycG9zLCAmcnJlbWFpbik7CisgICAgaWYgKCFvaykgeworICAgICAgICBnb3RvIGZhaWw7CisgICAgfQorCisgICAgb2sgPSBwc2FzaW1fZGVzZXJpYWxpc2VfcHNhX3N0YXR1c190KAorICAgICAgICAmcnBvcywgJnJyZW1haW4sCisgICAgICAgICZzdGF0dXMpOworICAgIGlmICghb2spIHsKKyAgICAgICAgZ290byBmYWlsOworICAgIH0KKworICAgIG9rID0gcHNhc2ltX2Rlc2VyaWFsaXNlX3BzYV9tYWNfb3BlcmF0aW9uX3QoCisgICAgICAgICZycG9zLCAmcnJlbWFpbiwKKyAgICAgICAgb3BlcmF0aW9uKTsKKyAgICBpZiAoIW9rKSB7CisgICAgICAgIGdvdG8gZmFpbDsKKyAgICB9CisKK2ZhaWw6CisgICAgZnJlZShzZXJfcGFyYW1zKTsKKyAgICBmcmVlKHNlcl9yZXN1bHQpOworCisgICAgcmV0dXJuIHN0YXR1czsKK30KKworCitwc2Ffc3RhdHVzX3QgcHNhX21hY192ZXJpZnkoCisgICAgbWJlZHRsc19zdmNfa2V5X2lkX3Qga2V5LAorICAgIHBzYV9hbGdvcml0aG1fdCBhbGcsCisgICAgY29uc3QgdWludDhfdCAqaW5wdXQsIHNpemVfdCAgaW5wdXRfbGVuZ3RoLAorICAgIGNvbnN0IHVpbnQ4X3QgKm1hYywgc2l6ZV90ICBtYWNfbGVuZ3RoCisgICAgKQoreworICAgIHVpbnQ4X3QgKnNlcl9wYXJhbXMgPSBOVUxMOworICAgIHVpbnQ4X3QgKnNlcl9yZXN1bHQgPSBOVUxMOworICAgIHNpemVfdCByZXN1bHRfbGVuZ3RoOworICAgIHBzYV9zdGF0dXNfdCBzdGF0dXMgPSBQU0FfRVJST1JfQ09SUlVQVElPTl9ERVRFQ1RFRDsKKworICAgIHNpemVfdCBuZWVkZWQgPQorICAgICAgICBwc2FzaW1fc2VyaWFsaXNlX2JlZ2luX25lZWRzKCkgKworICAgICAgICBwc2FzaW1fc2VyaWFsaXNlX21iZWR0bHNfc3ZjX2tleV9pZF90X25lZWRzKGtleSkgKworICAgICAgICBwc2FzaW1fc2VyaWFsaXNlX3BzYV9hbGdvcml0aG1fdF9uZWVkcyhhbGcpICsKKyAgICAgICAgcHNhc2ltX3NlcmlhbGlzZV9idWZmZXJfbmVlZHMoaW5wdXQsIGlucHV0X2xlbmd0aCkgKworICAgICAgICBwc2FzaW1fc2VyaWFsaXNlX2J1ZmZlcl9uZWVkcyhtYWMsIG1hY19sZW5ndGgpOworCisgICAgc2VyX3BhcmFtcyA9IG1hbGxvYyhuZWVkZWQpOworICAgIGlmIChzZXJfcGFyYW1zID09IE5VTEwpIHsKKyAgICAgICAgc3RhdHVzID0gUFNBX0VSUk9SX0lOU1VGRklDSUVOVF9NRU1PUlk7CisgICAgICAgIGdvdG8gZmFpbDsKKyAgICB9CisKKyAgICB1aW50OF90ICpwb3MgPSBzZXJfcGFyYW1zOworICAgIHNpemVfdCByZW1haW5pbmcgPSBuZWVkZWQ7CisgICAgaW50IG9rOworICAgIG9rID0gcHNhc2ltX3NlcmlhbGlzZV9iZWdpbigmcG9zLCAmcmVtYWluaW5nKTsKKyAgICBpZiAoIW9rKSB7CisgICAgICAgIGdvdG8gZmFpbDsKKyAgICB9CisgICAgb2sgPSBwc2FzaW1fc2VyaWFsaXNlX21iZWR0bHNfc3ZjX2tleV9pZF90KAorICAgICAgICAmcG9zLCAmcmVtYWluaW5nLAorICAgICAgICBrZXkpOworICAgIGlmICghb2spIHsKKyAgICAgICAgZ290byBmYWlsOworICAgIH0KKyAgICBvayA9IHBzYXNpbV9zZXJpYWxpc2VfcHNhX2FsZ29yaXRobV90KAorICAgICAgICAmcG9zLCAmcmVtYWluaW5nLAorICAgICAgICBhbGcpOworICAgIGlmICghb2spIHsKKyAgICAgICAgZ290byBmYWlsOworICAgIH0KKyAgICBvayA9IHBzYXNpbV9zZXJpYWxpc2VfYnVmZmVyKAorICAgICAgICAmcG9zLCAmcmVtYWluaW5nLAorICAgICAgICBpbnB1dCwgaW5wdXRfbGVuZ3RoKTsKKyAgICBpZiAoIW9rKSB7CisgICAgICAgIGdvdG8gZmFpbDsKKyAgICB9CisgICAgb2sgPSBwc2FzaW1fc2VyaWFsaXNlX2J1ZmZlcigKKyAgICAgICAgJnBvcywgJnJlbWFpbmluZywKKyAgICAgICAgbWFjLCBtYWNfbGVuZ3RoKTsKKyAgICBpZiAoIW9rKSB7CisgICAgICAgIGdvdG8gZmFpbDsKKyAgICB9CisKKyAgICBvayA9IHBzYV9jcnlwdG9fY2FsbChQU0FfTUFDX1ZFUklGWSwKKyAgICAgICAgICAgICAgICAgICAgICAgICBzZXJfcGFyYW1zLCAoc2l6ZV90KSAocG9zIC0gc2VyX3BhcmFtcyksICZzZXJfcmVzdWx0LCAmcmVzdWx0X2xlbmd0aCk7CisgICAgaWYgKCFvaykgeworICAgICAgICBwcmludGYoIlBTQV9NQUNfVkVSSUZZIHNlcnZlciBjYWxsIGZhaWxlZFxuIik7CisgICAgICAgIGdvdG8gZmFpbDsKKyAgICB9CisKKyAgICB1aW50OF90ICpycG9zID0gc2VyX3Jlc3VsdDsKKyAgICBzaXplX3QgcnJlbWFpbiA9IHJlc3VsdF9sZW5ndGg7CisKKyAgICBvayA9IHBzYXNpbV9kZXNlcmlhbGlzZV9iZWdpbigmcnBvcywgJnJyZW1haW4pOworICAgIGlmICghb2spIHsKKyAgICAgICAgZ290byBmYWlsOworICAgIH0KKworICAgIG9rID0gcHNhc2ltX2Rlc2VyaWFsaXNlX3BzYV9zdGF0dXNfdCgKKyAgICAgICAgJnJwb3MsICZycmVtYWluLAorICAgICAgICAmc3RhdHVzKTsKKyAgICBpZiAoIW9rKSB7CisgICAgICAgIGdvdG8gZmFpbDsKKyAgICB9CisKK2ZhaWw6CisgICAgZnJlZShzZXJfcGFyYW1zKTsKKyAgICBmcmVlKHNlcl9yZXN1bHQpOworCisgICAgcmV0dXJuIHN0YXR1czsKK30KKworCitwc2Ffc3RhdHVzX3QgcHNhX21hY192ZXJpZnlfZmluaXNoKAorICAgIHBzYV9tYWNfb3BlcmF0aW9uX3QgKm9wZXJhdGlvbiwKKyAgICBjb25zdCB1aW50OF90ICptYWMsIHNpemVfdCAgbWFjX2xlbmd0aAorICAgICkKK3sKKyAgICB1aW50OF90ICpzZXJfcGFyYW1zID0gTlVMTDsKKyAgICB1aW50OF90ICpzZXJfcmVzdWx0ID0gTlVMTDsKKyAgICBzaXplX3QgcmVzdWx0X2xlbmd0aDsKKyAgICBwc2Ffc3RhdHVzX3Qgc3RhdHVzID0gUFNBX0VSUk9SX0NPUlJVUFRJT05fREVURUNURUQ7CisKKyAgICBzaXplX3QgbmVlZGVkID0KKyAgICAgICAgcHNhc2ltX3NlcmlhbGlzZV9iZWdpbl9uZWVkcygpICsKKyAgICAgICAgcHNhc2ltX3NlcmlhbGlzZV9wc2FfbWFjX29wZXJhdGlvbl90X25lZWRzKCpvcGVyYXRpb24pICsKKyAgICAgICAgcHNhc2ltX3NlcmlhbGlzZV9idWZmZXJfbmVlZHMobWFjLCBtYWNfbGVuZ3RoKTsKKworICAgIHNlcl9wYXJhbXMgPSBtYWxsb2MobmVlZGVkKTsKKyAgICBpZiAoc2VyX3BhcmFtcyA9PSBOVUxMKSB7CisgICAgICAgIHN0YXR1cyA9IFBTQV9FUlJPUl9JTlNVRkZJQ0lFTlRfTUVNT1JZOworICAgICAgICBnb3RvIGZhaWw7CisgICAgfQorCisgICAgdWludDhfdCAqcG9zID0gc2VyX3BhcmFtczsKKyAgICBzaXplX3QgcmVtYWluaW5nID0gbmVlZGVkOworICAgIGludCBvazsKKyAgICBvayA9IHBzYXNpbV9zZXJpYWxpc2VfYmVnaW4oJnBvcywgJnJlbWFpbmluZyk7CisgICAgaWYgKCFvaykgeworICAgICAgICBnb3RvIGZhaWw7CisgICAgfQorICAgIG9rID0gcHNhc2ltX3NlcmlhbGlzZV9wc2FfbWFjX29wZXJhdGlvbl90KAorICAgICAgICAmcG9zLCAmcmVtYWluaW5nLAorICAgICAgICAqb3BlcmF0aW9uKTsKKyAgICBpZiAoIW9rKSB7CisgICAgICAgIGdvdG8gZmFpbDsKKyAgICB9CisgICAgb2sgPSBwc2FzaW1fc2VyaWFsaXNlX2J1ZmZlcigKKyAgICAgICAgJnBvcywgJnJlbWFpbmluZywKKyAgICAgICAgbWFjLCBtYWNfbGVuZ3RoKTsKKyAgICBpZiAoIW9rKSB7CisgICAgICAgIGdvdG8gZmFpbDsKKyAgICB9CisKKyAgICBvayA9IHBzYV9jcnlwdG9fY2FsbChQU0FfTUFDX1ZFUklGWV9GSU5JU0gsCisgICAgICAgICAgICAgICAgICAgICAgICAgc2VyX3BhcmFtcywgKHNpemVfdCkgKHBvcyAtIHNlcl9wYXJhbXMpLCAmc2VyX3Jlc3VsdCwgJnJlc3VsdF9sZW5ndGgpOworICAgIGlmICghb2spIHsKKyAgICAgICAgcHJpbnRmKCJQU0FfTUFDX1ZFUklGWV9GSU5JU0ggc2VydmVyIGNhbGwgZmFpbGVkXG4iKTsKKyAgICAgICAgZ290byBmYWlsOworICAgIH0KKworICAgIHVpbnQ4X3QgKnJwb3MgPSBzZXJfcmVzdWx0OworICAgIHNpemVfdCBycmVtYWluID0gcmVzdWx0X2xlbmd0aDsKKworICAgIG9rID0gcHNhc2ltX2Rlc2VyaWFsaXNlX2JlZ2luKCZycG9zLCAmcnJlbWFpbik7CisgICAgaWYgKCFvaykgeworICAgICAgICBnb3RvIGZhaWw7CisgICAgfQorCisgICAgb2sgPSBwc2FzaW1fZGVzZXJpYWxpc2VfcHNhX3N0YXR1c190KAorICAgICAgICAmcnBvcywgJnJyZW1haW4sCisgICAgICAgICZzdGF0dXMpOworICAgIGlmICghb2spIHsKKyAgICAgICAgZ290byBmYWlsOworICAgIH0KKworICAgIG9rID0gcHNhc2ltX2Rlc2VyaWFsaXNlX3BzYV9tYWNfb3BlcmF0aW9uX3QoCisgICAgICAgICZycG9zLCAmcnJlbWFpbiwKKyAgICAgICAgb3BlcmF0aW9uKTsKKyAgICBpZiAoIW9rKSB7CisgICAgICAgIGdvdG8gZmFpbDsKKyAgICB9CisKK2ZhaWw6CisgICAgZnJlZShzZXJfcGFyYW1zKTsKKyAgICBmcmVlKHNlcl9yZXN1bHQpOworCisgICAgcmV0dXJuIHN0YXR1czsKK30KKworCitwc2Ffc3RhdHVzX3QgcHNhX21hY192ZXJpZnlfc2V0dXAoCisgICAgcHNhX21hY19vcGVyYXRpb25fdCAqb3BlcmF0aW9uLAorICAgIG1iZWR0bHNfc3ZjX2tleV9pZF90IGtleSwKKyAgICBwc2FfYWxnb3JpdGhtX3QgYWxnCisgICAgKQoreworICAgIHVpbnQ4X3QgKnNlcl9wYXJhbXMgPSBOVUxMOworICAgIHVpbnQ4X3QgKnNlcl9yZXN1bHQgPSBOVUxMOworICAgIHNpemVfdCByZXN1bHRfbGVuZ3RoOworICAgIHBzYV9zdGF0dXNfdCBzdGF0dXMgPSBQU0FfRVJST1JfQ09SUlVQVElPTl9ERVRFQ1RFRDsKKworICAgIHNpemVfdCBuZWVkZWQgPQorICAgICAgICBwc2FzaW1fc2VyaWFsaXNlX2JlZ2luX25lZWRzKCkgKworICAgICAgICBwc2FzaW1fc2VyaWFsaXNlX3BzYV9tYWNfb3BlcmF0aW9uX3RfbmVlZHMoKm9wZXJhdGlvbikgKworICAgICAgICBwc2FzaW1fc2VyaWFsaXNlX21iZWR0bHNfc3ZjX2tleV9pZF90X25lZWRzKGtleSkgKworICAgICAgICBwc2FzaW1fc2VyaWFsaXNlX3BzYV9hbGdvcml0aG1fdF9uZWVkcyhhbGcpOworCisgICAgc2VyX3BhcmFtcyA9IG1hbGxvYyhuZWVkZWQpOworICAgIGlmIChzZXJfcGFyYW1zID09IE5VTEwpIHsKKyAgICAgICAgc3RhdHVzID0gUFNBX0VSUk9SX0lOU1VGRklDSUVOVF9NRU1PUlk7CisgICAgICAgIGdvdG8gZmFpbDsKKyAgICB9CisKKyAgICB1aW50OF90ICpwb3MgPSBzZXJfcGFyYW1zOworICAgIHNpemVfdCByZW1haW5pbmcgPSBuZWVkZWQ7CisgICAgaW50IG9rOworICAgIG9rID0gcHNhc2ltX3NlcmlhbGlzZV9iZWdpbigmcG9zLCAmcmVtYWluaW5nKTsKKyAgICBpZiAoIW9rKSB7CisgICAgICAgIGdvdG8gZmFpbDsKKyAgICB9CisgICAgb2sgPSBwc2FzaW1fc2VyaWFsaXNlX3BzYV9tYWNfb3BlcmF0aW9uX3QoCisgICAgICAgICZwb3MsICZyZW1haW5pbmcsCisgICAgICAgICpvcGVyYXRpb24pOworICAgIGlmICghb2spIHsKKyAgICAgICAgZ290byBmYWlsOworICAgIH0KKyAgICBvayA9IHBzYXNpbV9zZXJpYWxpc2VfbWJlZHRsc19zdmNfa2V5X2lkX3QoCisgICAgICAgICZwb3MsICZyZW1haW5pbmcsCisgICAgICAgIGtleSk7CisgICAgaWYgKCFvaykgeworICAgICAgICBnb3RvIGZhaWw7CisgICAgfQorICAgIG9rID0gcHNhc2ltX3NlcmlhbGlzZV9wc2FfYWxnb3JpdGhtX3QoCisgICAgICAgICZwb3MsICZyZW1haW5pbmcsCisgICAgICAgIGFsZyk7CisgICAgaWYgKCFvaykgeworICAgICAgICBnb3RvIGZhaWw7CisgICAgfQorCisgICAgb2sgPSBwc2FfY3J5cHRvX2NhbGwoUFNBX01BQ19WRVJJRllfU0VUVVAsCisgICAgICAgICAgICAgICAgICAgICAgICAgc2VyX3BhcmFtcywgKHNpemVfdCkgKHBvcyAtIHNlcl9wYXJhbXMpLCAmc2VyX3Jlc3VsdCwgJnJlc3VsdF9sZW5ndGgpOworICAgIGlmICghb2spIHsKKyAgICAgICAgcHJpbnRmKCJQU0FfTUFDX1ZFUklGWV9TRVRVUCBzZXJ2ZXIgY2FsbCBmYWlsZWRcbiIpOworICAgICAgICBnb3RvIGZhaWw7CisgICAgfQorCisgICAgdWludDhfdCAqcnBvcyA9IHNlcl9yZXN1bHQ7CisgICAgc2l6ZV90IHJyZW1haW4gPSByZXN1bHRfbGVuZ3RoOworCisgICAgb2sgPSBwc2FzaW1fZGVzZXJpYWxpc2VfYmVnaW4oJnJwb3MsICZycmVtYWluKTsKKyAgICBpZiAoIW9rKSB7CisgICAgICAgIGdvdG8gZmFpbDsKKyAgICB9CisKKyAgICBvayA9IHBzYXNpbV9kZXNlcmlhbGlzZV9wc2Ffc3RhdHVzX3QoCisgICAgICAgICZycG9zLCAmcnJlbWFpbiwKKyAgICAgICAgJnN0YXR1cyk7CisgICAgaWYgKCFvaykgeworICAgICAgICBnb3RvIGZhaWw7CisgICAgfQorCisgICAgb2sgPSBwc2FzaW1fZGVzZXJpYWxpc2VfcHNhX21hY19vcGVyYXRpb25fdCgKKyAgICAgICAgJnJwb3MsICZycmVtYWluLAorICAgICAgICBvcGVyYXRpb24pOworICAgIGlmICghb2spIHsKKyAgICAgICAgZ290byBmYWlsOworICAgIH0KKworZmFpbDoKKyAgICBmcmVlKHNlcl9wYXJhbXMpOworICAgIGZyZWUoc2VyX3Jlc3VsdCk7CisKKyAgICByZXR1cm4gc3RhdHVzOworfQorCisKK3BzYV9zdGF0dXNfdCBwc2FfcHVyZ2Vfa2V5KAorICAgIG1iZWR0bHNfc3ZjX2tleV9pZF90IGtleQorICAgICkKK3sKKyAgICB1aW50OF90ICpzZXJfcGFyYW1zID0gTlVMTDsKKyAgICB1aW50OF90ICpzZXJfcmVzdWx0ID0gTlVMTDsKKyAgICBzaXplX3QgcmVzdWx0X2xlbmd0aDsKKyAgICBwc2Ffc3RhdHVzX3Qgc3RhdHVzID0gUFNBX0VSUk9SX0NPUlJVUFRJT05fREVURUNURUQ7CisKKyAgICBzaXplX3QgbmVlZGVkID0KKyAgICAgICAgcHNhc2ltX3NlcmlhbGlzZV9iZWdpbl9uZWVkcygpICsKKyAgICAgICAgcHNhc2ltX3NlcmlhbGlzZV9tYmVkdGxzX3N2Y19rZXlfaWRfdF9uZWVkcyhrZXkpOworCisgICAgc2VyX3BhcmFtcyA9IG1hbGxvYyhuZWVkZWQpOworICAgIGlmIChzZXJfcGFyYW1zID09IE5VTEwpIHsKKyAgICAgICAgc3RhdHVzID0gUFNBX0VSUk9SX0lOU1VGRklDSUVOVF9NRU1PUlk7CisgICAgICAgIGdvdG8gZmFpbDsKKyAgICB9CisKKyAgICB1aW50OF90ICpwb3MgPSBzZXJfcGFyYW1zOworICAgIHNpemVfdCByZW1haW5pbmcgPSBuZWVkZWQ7CisgICAgaW50IG9rOworICAgIG9rID0gcHNhc2ltX3NlcmlhbGlzZV9iZWdpbigmcG9zLCAmcmVtYWluaW5nKTsKKyAgICBpZiAoIW9rKSB7CisgICAgICAgIGdvdG8gZmFpbDsKKyAgICB9CisgICAgb2sgPSBwc2FzaW1fc2VyaWFsaXNlX21iZWR0bHNfc3ZjX2tleV9pZF90KAorICAgICAgICAmcG9zLCAmcmVtYWluaW5nLAorICAgICAgICBrZXkpOworICAgIGlmICghb2spIHsKKyAgICAgICAgZ290byBmYWlsOworICAgIH0KKworICAgIG9rID0gcHNhX2NyeXB0b19jYWxsKFBTQV9QVVJHRV9LRVksCisgICAgICAgICAgICAgICAgICAgICAgICAgc2VyX3BhcmFtcywgKHNpemVfdCkgKHBvcyAtIHNlcl9wYXJhbXMpLCAmc2VyX3Jlc3VsdCwgJnJlc3VsdF9sZW5ndGgpOworICAgIGlmICghb2spIHsKKyAgICAgICAgcHJpbnRmKCJQU0FfUFVSR0VfS0VZIHNlcnZlciBjYWxsIGZhaWxlZFxuIik7CisgICAgICAgIGdvdG8gZmFpbDsKKyAgICB9CisKKyAgICB1aW50OF90ICpycG9zID0gc2VyX3Jlc3VsdDsKKyAgICBzaXplX3QgcnJlbWFpbiA9IHJlc3VsdF9sZW5ndGg7CisKKyAgICBvayA9IHBzYXNpbV9kZXNlcmlhbGlzZV9iZWdpbigmcnBvcywgJnJyZW1haW4pOworICAgIGlmICghb2spIHsKKyAgICAgICAgZ290byBmYWlsOworICAgIH0KKworICAgIG9rID0gcHNhc2ltX2Rlc2VyaWFsaXNlX3BzYV9zdGF0dXNfdCgKKyAgICAgICAgJnJwb3MsICZycmVtYWluLAorICAgICAgICAmc3RhdHVzKTsKKyAgICBpZiAoIW9rKSB7CisgICAgICAgIGdvdG8gZmFpbDsKKyAgICB9CisKK2ZhaWw6CisgICAgZnJlZShzZXJfcGFyYW1zKTsKKyAgICBmcmVlKHNlcl9yZXN1bHQpOworCisgICAgcmV0dXJuIHN0YXR1czsKK30KKworCitwc2Ffc3RhdHVzX3QgcHNhX3Jhd19rZXlfYWdyZWVtZW50KAorICAgIHBzYV9hbGdvcml0aG1fdCBhbGcsCisgICAgbWJlZHRsc19zdmNfa2V5X2lkX3QgcHJpdmF0ZV9rZXksCisgICAgY29uc3QgdWludDhfdCAqcGVlcl9rZXksIHNpemVfdCAgcGVlcl9rZXlfbGVuZ3RoLAorICAgIHVpbnQ4X3QgKm91dHB1dCwgc2l6ZV90ICBvdXRwdXRfc2l6ZSwKKyAgICBzaXplX3QgKm91dHB1dF9sZW5ndGgKKyAgICApCit7CisgICAgdWludDhfdCAqc2VyX3BhcmFtcyA9IE5VTEw7CisgICAgdWludDhfdCAqc2VyX3Jlc3VsdCA9IE5VTEw7CisgICAgc2l6ZV90IHJlc3VsdF9sZW5ndGg7CisgICAgcHNhX3N0YXR1c190IHN0YXR1cyA9IFBTQV9FUlJPUl9DT1JSVVBUSU9OX0RFVEVDVEVEOworCisgICAgc2l6ZV90IG5lZWRlZCA9CisgICAgICAgIHBzYXNpbV9zZXJpYWxpc2VfYmVnaW5fbmVlZHMoKSArCisgICAgICAgIHBzYXNpbV9zZXJpYWxpc2VfcHNhX2FsZ29yaXRobV90X25lZWRzKGFsZykgKworICAgICAgICBwc2FzaW1fc2VyaWFsaXNlX21iZWR0bHNfc3ZjX2tleV9pZF90X25lZWRzKHByaXZhdGVfa2V5KSArCisgICAgICAgIHBzYXNpbV9zZXJpYWxpc2VfYnVmZmVyX25lZWRzKHBlZXJfa2V5LCBwZWVyX2tleV9sZW5ndGgpICsKKyAgICAgICAgcHNhc2ltX3NlcmlhbGlzZV9idWZmZXJfbmVlZHMob3V0cHV0LCBvdXRwdXRfc2l6ZSkgKworICAgICAgICBwc2FzaW1fc2VyaWFsaXNlX3NpemVfdF9uZWVkcygqb3V0cHV0X2xlbmd0aCk7CisKKyAgICBzZXJfcGFyYW1zID0gbWFsbG9jKG5lZWRlZCk7CisgICAgaWYgKHNlcl9wYXJhbXMgPT0gTlVMTCkgeworICAgICAgICBzdGF0dXMgPSBQU0FfRVJST1JfSU5TVUZGSUNJRU5UX01FTU9SWTsKKyAgICAgICAgZ290byBmYWlsOworICAgIH0KKworICAgIHVpbnQ4X3QgKnBvcyA9IHNlcl9wYXJhbXM7CisgICAgc2l6ZV90IHJlbWFpbmluZyA9IG5lZWRlZDsKKyAgICBpbnQgb2s7CisgICAgb2sgPSBwc2FzaW1fc2VyaWFsaXNlX2JlZ2luKCZwb3MsICZyZW1haW5pbmcpOworICAgIGlmICghb2spIHsKKyAgICAgICAgZ290byBmYWlsOworICAgIH0KKyAgICBvayA9IHBzYXNpbV9zZXJpYWxpc2VfcHNhX2FsZ29yaXRobV90KAorICAgICAgICAmcG9zLCAmcmVtYWluaW5nLAorICAgICAgICBhbGcpOworICAgIGlmICghb2spIHsKKyAgICAgICAgZ290byBmYWlsOworICAgIH0KKyAgICBvayA9IHBzYXNpbV9zZXJpYWxpc2VfbWJlZHRsc19zdmNfa2V5X2lkX3QoCisgICAgICAgICZwb3MsICZyZW1haW5pbmcsCisgICAgICAgIHByaXZhdGVfa2V5KTsKKyAgICBpZiAoIW9rKSB7CisgICAgICAgIGdvdG8gZmFpbDsKKyAgICB9CisgICAgb2sgPSBwc2FzaW1fc2VyaWFsaXNlX2J1ZmZlcigKKyAgICAgICAgJnBvcywgJnJlbWFpbmluZywKKyAgICAgICAgcGVlcl9rZXksIHBlZXJfa2V5X2xlbmd0aCk7CisgICAgaWYgKCFvaykgeworICAgICAgICBnb3RvIGZhaWw7CisgICAgfQorICAgIG9rID0gcHNhc2ltX3NlcmlhbGlzZV9idWZmZXIoCisgICAgICAgICZwb3MsICZyZW1haW5pbmcsCisgICAgICAgIG91dHB1dCwgb3V0cHV0X3NpemUpOworICAgIGlmICghb2spIHsKKyAgICAgICAgZ290byBmYWlsOworICAgIH0KKyAgICBvayA9IHBzYXNpbV9zZXJpYWxpc2Vfc2l6ZV90KAorICAgICAgICAmcG9zLCAmcmVtYWluaW5nLAorICAgICAgICAqb3V0cHV0X2xlbmd0aCk7CisgICAgaWYgKCFvaykgeworICAgICAgICBnb3RvIGZhaWw7CisgICAgfQorCisgICAgb2sgPSBwc2FfY3J5cHRvX2NhbGwoUFNBX1JBV19LRVlfQUdSRUVNRU5ULAorICAgICAgICAgICAgICAgICAgICAgICAgIHNlcl9wYXJhbXMsIChzaXplX3QpIChwb3MgLSBzZXJfcGFyYW1zKSwgJnNlcl9yZXN1bHQsICZyZXN1bHRfbGVuZ3RoKTsKKyAgICBpZiAoIW9rKSB7CisgICAgICAgIHByaW50ZigiUFNBX1JBV19LRVlfQUdSRUVNRU5UIHNlcnZlciBjYWxsIGZhaWxlZFxuIik7CisgICAgICAgIGdvdG8gZmFpbDsKKyAgICB9CisKKyAgICB1aW50OF90ICpycG9zID0gc2VyX3Jlc3VsdDsKKyAgICBzaXplX3QgcnJlbWFpbiA9IHJlc3VsdF9sZW5ndGg7CisKKyAgICBvayA9IHBzYXNpbV9kZXNlcmlhbGlzZV9iZWdpbigmcnBvcywgJnJyZW1haW4pOworICAgIGlmICghb2spIHsKKyAgICAgICAgZ290byBmYWlsOworICAgIH0KKworICAgIG9rID0gcHNhc2ltX2Rlc2VyaWFsaXNlX3BzYV9zdGF0dXNfdCgKKyAgICAgICAgJnJwb3MsICZycmVtYWluLAorICAgICAgICAmc3RhdHVzKTsKKyAgICBpZiAoIW9rKSB7CisgICAgICAgIGdvdG8gZmFpbDsKKyAgICB9CisKKyAgICBvayA9IHBzYXNpbV9kZXNlcmlhbGlzZV9yZXR1cm5fYnVmZmVyKAorICAgICAgICAmcnBvcywgJnJyZW1haW4sCisgICAgICAgIG91dHB1dCwgb3V0cHV0X3NpemUpOworICAgIGlmICghb2spIHsKKyAgICAgICAgZ290byBmYWlsOworICAgIH0KKworICAgIG9rID0gcHNhc2ltX2Rlc2VyaWFsaXNlX3NpemVfdCgKKyAgICAgICAgJnJwb3MsICZycmVtYWluLAorICAgICAgICBvdXRwdXRfbGVuZ3RoKTsKKyAgICBpZiAoIW9rKSB7CisgICAgICAgIGdvdG8gZmFpbDsKKyAgICB9CisKK2ZhaWw6CisgICAgZnJlZShzZXJfcGFyYW1zKTsKKyAgICBmcmVlKHNlcl9yZXN1bHQpOworCisgICAgcmV0dXJuIHN0YXR1czsKK30KKworCit2b2lkIHBzYV9yZXNldF9rZXlfYXR0cmlidXRlcygKKyAgICBwc2Ffa2V5X2F0dHJpYnV0ZXNfdCAqYXR0cmlidXRlcworICAgICkKK3sKKyAgICB1aW50OF90ICpzZXJfcGFyYW1zID0gTlVMTDsKKyAgICB1aW50OF90ICpzZXJfcmVzdWx0ID0gTlVMTDsKKyAgICBzaXplX3QgcmVzdWx0X2xlbmd0aDsKKworICAgIHNpemVfdCBuZWVkZWQgPQorICAgICAgICBwc2FzaW1fc2VyaWFsaXNlX2JlZ2luX25lZWRzKCkgKworICAgICAgICBwc2FzaW1fc2VyaWFsaXNlX3BzYV9rZXlfYXR0cmlidXRlc190X25lZWRzKCphdHRyaWJ1dGVzKTsKKworICAgIHNlcl9wYXJhbXMgPSBtYWxsb2MobmVlZGVkKTsKKyAgICBpZiAoc2VyX3BhcmFtcyA9PSBOVUxMKSB7CisgICAgICAgIGdvdG8gZmFpbDsKKyAgICB9CisKKyAgICB1aW50OF90ICpwb3MgPSBzZXJfcGFyYW1zOworICAgIHNpemVfdCByZW1haW5pbmcgPSBuZWVkZWQ7CisgICAgaW50IG9rOworICAgIG9rID0gcHNhc2ltX3NlcmlhbGlzZV9iZWdpbigmcG9zLCAmcmVtYWluaW5nKTsKKyAgICBpZiAoIW9rKSB7CisgICAgICAgIGdvdG8gZmFpbDsKKyAgICB9CisgICAgb2sgPSBwc2FzaW1fc2VyaWFsaXNlX3BzYV9rZXlfYXR0cmlidXRlc190KAorICAgICAgICAmcG9zLCAmcmVtYWluaW5nLAorICAgICAgICAqYXR0cmlidXRlcyk7CisgICAgaWYgKCFvaykgeworICAgICAgICBnb3RvIGZhaWw7CisgICAgfQorCisgICAgb2sgPSBwc2FfY3J5cHRvX2NhbGwoUFNBX1JFU0VUX0tFWV9BVFRSSUJVVEVTLAorICAgICAgICAgICAgICAgICAgICAgICAgIHNlcl9wYXJhbXMsIChzaXplX3QpIChwb3MgLSBzZXJfcGFyYW1zKSwgJnNlcl9yZXN1bHQsICZyZXN1bHRfbGVuZ3RoKTsKKyAgICBpZiAoIW9rKSB7CisgICAgICAgIHByaW50ZigiUFNBX1JFU0VUX0tFWV9BVFRSSUJVVEVTIHNlcnZlciBjYWxsIGZhaWxlZFxuIik7CisgICAgICAgIGdvdG8gZmFpbDsKKyAgICB9CisKKyAgICB1aW50OF90ICpycG9zID0gc2VyX3Jlc3VsdDsKKyAgICBzaXplX3QgcnJlbWFpbiA9IHJlc3VsdF9sZW5ndGg7CisKKyAgICBvayA9IHBzYXNpbV9kZXNlcmlhbGlzZV9iZWdpbigmcnBvcywgJnJyZW1haW4pOworICAgIGlmICghb2spIHsKKyAgICAgICAgZ290byBmYWlsOworICAgIH0KKworICAgIG9rID0gcHNhc2ltX2Rlc2VyaWFsaXNlX3BzYV9rZXlfYXR0cmlidXRlc190KAorICAgICAgICAmcnBvcywgJnJyZW1haW4sCisgICAgICAgIGF0dHJpYnV0ZXMpOworICAgIGlmICghb2spIHsKKyAgICAgICAgZ290byBmYWlsOworICAgIH0KKworZmFpbDoKKyAgICBmcmVlKHNlcl9wYXJhbXMpOworICAgIGZyZWUoc2VyX3Jlc3VsdCk7Cit9CisKKworcHNhX3N0YXR1c190IHBzYV9zaWduX2hhc2goCisgICAgbWJlZHRsc19zdmNfa2V5X2lkX3Qga2V5LAorICAgIHBzYV9hbGdvcml0aG1fdCBhbGcsCisgICAgY29uc3QgdWludDhfdCAqaGFzaCwgc2l6ZV90ICBoYXNoX2xlbmd0aCwKKyAgICB1aW50OF90ICpzaWduYXR1cmUsIHNpemVfdCAgc2lnbmF0dXJlX3NpemUsCisgICAgc2l6ZV90ICpzaWduYXR1cmVfbGVuZ3RoCisgICAgKQoreworICAgIHVpbnQ4X3QgKnNlcl9wYXJhbXMgPSBOVUxMOworICAgIHVpbnQ4X3QgKnNlcl9yZXN1bHQgPSBOVUxMOworICAgIHNpemVfdCByZXN1bHRfbGVuZ3RoOworICAgIHBzYV9zdGF0dXNfdCBzdGF0dXMgPSBQU0FfRVJST1JfQ09SUlVQVElPTl9ERVRFQ1RFRDsKKworICAgIHNpemVfdCBuZWVkZWQgPQorICAgICAgICBwc2FzaW1fc2VyaWFsaXNlX2JlZ2luX25lZWRzKCkgKworICAgICAgICBwc2FzaW1fc2VyaWFsaXNlX21iZWR0bHNfc3ZjX2tleV9pZF90X25lZWRzKGtleSkgKworICAgICAgICBwc2FzaW1fc2VyaWFsaXNlX3BzYV9hbGdvcml0aG1fdF9uZWVkcyhhbGcpICsKKyAgICAgICAgcHNhc2ltX3NlcmlhbGlzZV9idWZmZXJfbmVlZHMoaGFzaCwgaGFzaF9sZW5ndGgpICsKKyAgICAgICAgcHNhc2ltX3NlcmlhbGlzZV9idWZmZXJfbmVlZHMoc2lnbmF0dXJlLCBzaWduYXR1cmVfc2l6ZSkgKworICAgICAgICBwc2FzaW1fc2VyaWFsaXNlX3NpemVfdF9uZWVkcygqc2lnbmF0dXJlX2xlbmd0aCk7CisKKyAgICBzZXJfcGFyYW1zID0gbWFsbG9jKG5lZWRlZCk7CisgICAgaWYgKHNlcl9wYXJhbXMgPT0gTlVMTCkgeworICAgICAgICBzdGF0dXMgPSBQU0FfRVJST1JfSU5TVUZGSUNJRU5UX01FTU9SWTsKKyAgICAgICAgZ290byBmYWlsOworICAgIH0KKworICAgIHVpbnQ4X3QgKnBvcyA9IHNlcl9wYXJhbXM7CisgICAgc2l6ZV90IHJlbWFpbmluZyA9IG5lZWRlZDsKKyAgICBpbnQgb2s7CisgICAgb2sgPSBwc2FzaW1fc2VyaWFsaXNlX2JlZ2luKCZwb3MsICZyZW1haW5pbmcpOworICAgIGlmICghb2spIHsKKyAgICAgICAgZ290byBmYWlsOworICAgIH0KKyAgICBvayA9IHBzYXNpbV9zZXJpYWxpc2VfbWJlZHRsc19zdmNfa2V5X2lkX3QoCisgICAgICAgICZwb3MsICZyZW1haW5pbmcsCisgICAgICAgIGtleSk7CisgICAgaWYgKCFvaykgeworICAgICAgICBnb3RvIGZhaWw7CisgICAgfQorICAgIG9rID0gcHNhc2ltX3NlcmlhbGlzZV9wc2FfYWxnb3JpdGhtX3QoCisgICAgICAgICZwb3MsICZyZW1haW5pbmcsCisgICAgICAgIGFsZyk7CisgICAgaWYgKCFvaykgeworICAgICAgICBnb3RvIGZhaWw7CisgICAgfQorICAgIG9rID0gcHNhc2ltX3NlcmlhbGlzZV9idWZmZXIoCisgICAgICAgICZwb3MsICZyZW1haW5pbmcsCisgICAgICAgIGhhc2gsIGhhc2hfbGVuZ3RoKTsKKyAgICBpZiAoIW9rKSB7CisgICAgICAgIGdvdG8gZmFpbDsKKyAgICB9CisgICAgb2sgPSBwc2FzaW1fc2VyaWFsaXNlX2J1ZmZlcigKKyAgICAgICAgJnBvcywgJnJlbWFpbmluZywKKyAgICAgICAgc2lnbmF0dXJlLCBzaWduYXR1cmVfc2l6ZSk7CisgICAgaWYgKCFvaykgeworICAgICAgICBnb3RvIGZhaWw7CisgICAgfQorICAgIG9rID0gcHNhc2ltX3NlcmlhbGlzZV9zaXplX3QoCisgICAgICAgICZwb3MsICZyZW1haW5pbmcsCisgICAgICAgICpzaWduYXR1cmVfbGVuZ3RoKTsKKyAgICBpZiAoIW9rKSB7CisgICAgICAgIGdvdG8gZmFpbDsKKyAgICB9CisKKyAgICBvayA9IHBzYV9jcnlwdG9fY2FsbChQU0FfU0lHTl9IQVNILAorICAgICAgICAgICAgICAgICAgICAgICAgIHNlcl9wYXJhbXMsIChzaXplX3QpIChwb3MgLSBzZXJfcGFyYW1zKSwgJnNlcl9yZXN1bHQsICZyZXN1bHRfbGVuZ3RoKTsKKyAgICBpZiAoIW9rKSB7CisgICAgICAgIHByaW50ZigiUFNBX1NJR05fSEFTSCBzZXJ2ZXIgY2FsbCBmYWlsZWRcbiIpOworICAgICAgICBnb3RvIGZhaWw7CisgICAgfQorCisgICAgdWludDhfdCAqcnBvcyA9IHNlcl9yZXN1bHQ7CisgICAgc2l6ZV90IHJyZW1haW4gPSByZXN1bHRfbGVuZ3RoOworCisgICAgb2sgPSBwc2FzaW1fZGVzZXJpYWxpc2VfYmVnaW4oJnJwb3MsICZycmVtYWluKTsKKyAgICBpZiAoIW9rKSB7CisgICAgICAgIGdvdG8gZmFpbDsKKyAgICB9CisKKyAgICBvayA9IHBzYXNpbV9kZXNlcmlhbGlzZV9wc2Ffc3RhdHVzX3QoCisgICAgICAgICZycG9zLCAmcnJlbWFpbiwKKyAgICAgICAgJnN0YXR1cyk7CisgICAgaWYgKCFvaykgeworICAgICAgICBnb3RvIGZhaWw7CisgICAgfQorCisgICAgb2sgPSBwc2FzaW1fZGVzZXJpYWxpc2VfcmV0dXJuX2J1ZmZlcigKKyAgICAgICAgJnJwb3MsICZycmVtYWluLAorICAgICAgICBzaWduYXR1cmUsIHNpZ25hdHVyZV9zaXplKTsKKyAgICBpZiAoIW9rKSB7CisgICAgICAgIGdvdG8gZmFpbDsKKyAgICB9CisKKyAgICBvayA9IHBzYXNpbV9kZXNlcmlhbGlzZV9zaXplX3QoCisgICAgICAgICZycG9zLCAmcnJlbWFpbiwKKyAgICAgICAgc2lnbmF0dXJlX2xlbmd0aCk7CisgICAgaWYgKCFvaykgeworICAgICAgICBnb3RvIGZhaWw7CisgICAgfQorCitmYWlsOgorICAgIGZyZWUoc2VyX3BhcmFtcyk7CisgICAgZnJlZShzZXJfcmVzdWx0KTsKKworICAgIHJldHVybiBzdGF0dXM7Cit9CisKKworcHNhX3N0YXR1c190IHBzYV9zaWduX2hhc2hfYWJvcnQoCisgICAgcHNhX3NpZ25faGFzaF9pbnRlcnJ1cHRpYmxlX29wZXJhdGlvbl90ICpvcGVyYXRpb24KKyAgICApCit7CisgICAgdWludDhfdCAqc2VyX3BhcmFtcyA9IE5VTEw7CisgICAgdWludDhfdCAqc2VyX3Jlc3VsdCA9IE5VTEw7CisgICAgc2l6ZV90IHJlc3VsdF9sZW5ndGg7CisgICAgcHNhX3N0YXR1c190IHN0YXR1cyA9IFBTQV9FUlJPUl9DT1JSVVBUSU9OX0RFVEVDVEVEOworCisgICAgc2l6ZV90IG5lZWRlZCA9CisgICAgICAgIHBzYXNpbV9zZXJpYWxpc2VfYmVnaW5fbmVlZHMoKSArCisgICAgICAgIHBzYXNpbV9zZXJpYWxpc2VfcHNhX3NpZ25faGFzaF9pbnRlcnJ1cHRpYmxlX29wZXJhdGlvbl90X25lZWRzKCpvcGVyYXRpb24pOworCisgICAgc2VyX3BhcmFtcyA9IG1hbGxvYyhuZWVkZWQpOworICAgIGlmIChzZXJfcGFyYW1zID09IE5VTEwpIHsKKyAgICAgICAgc3RhdHVzID0gUFNBX0VSUk9SX0lOU1VGRklDSUVOVF9NRU1PUlk7CisgICAgICAgIGdvdG8gZmFpbDsKKyAgICB9CisKKyAgICB1aW50OF90ICpwb3MgPSBzZXJfcGFyYW1zOworICAgIHNpemVfdCByZW1haW5pbmcgPSBuZWVkZWQ7CisgICAgaW50IG9rOworICAgIG9rID0gcHNhc2ltX3NlcmlhbGlzZV9iZWdpbigmcG9zLCAmcmVtYWluaW5nKTsKKyAgICBpZiAoIW9rKSB7CisgICAgICAgIGdvdG8gZmFpbDsKKyAgICB9CisgICAgb2sgPSBwc2FzaW1fc2VyaWFsaXNlX3BzYV9zaWduX2hhc2hfaW50ZXJydXB0aWJsZV9vcGVyYXRpb25fdCgKKyAgICAgICAgJnBvcywgJnJlbWFpbmluZywKKyAgICAgICAgKm9wZXJhdGlvbik7CisgICAgaWYgKCFvaykgeworICAgICAgICBnb3RvIGZhaWw7CisgICAgfQorCisgICAgb2sgPSBwc2FfY3J5cHRvX2NhbGwoUFNBX1NJR05fSEFTSF9BQk9SVCwKKyAgICAgICAgICAgICAgICAgICAgICAgICBzZXJfcGFyYW1zLCAoc2l6ZV90KSAocG9zIC0gc2VyX3BhcmFtcyksICZzZXJfcmVzdWx0LCAmcmVzdWx0X2xlbmd0aCk7CisgICAgaWYgKCFvaykgeworICAgICAgICBwcmludGYoIlBTQV9TSUdOX0hBU0hfQUJPUlQgc2VydmVyIGNhbGwgZmFpbGVkXG4iKTsKKyAgICAgICAgZ290byBmYWlsOworICAgIH0KKworICAgIHVpbnQ4X3QgKnJwb3MgPSBzZXJfcmVzdWx0OworICAgIHNpemVfdCBycmVtYWluID0gcmVzdWx0X2xlbmd0aDsKKworICAgIG9rID0gcHNhc2ltX2Rlc2VyaWFsaXNlX2JlZ2luKCZycG9zLCAmcnJlbWFpbik7CisgICAgaWYgKCFvaykgeworICAgICAgICBnb3RvIGZhaWw7CisgICAgfQorCisgICAgb2sgPSBwc2FzaW1fZGVzZXJpYWxpc2VfcHNhX3N0YXR1c190KAorICAgICAgICAmcnBvcywgJnJyZW1haW4sCisgICAgICAgICZzdGF0dXMpOworICAgIGlmICghb2spIHsKKyAgICAgICAgZ290byBmYWlsOworICAgIH0KKworICAgIG9rID0gcHNhc2ltX2Rlc2VyaWFsaXNlX3BzYV9zaWduX2hhc2hfaW50ZXJydXB0aWJsZV9vcGVyYXRpb25fdCgKKyAgICAgICAgJnJwb3MsICZycmVtYWluLAorICAgICAgICBvcGVyYXRpb24pOworICAgIGlmICghb2spIHsKKyAgICAgICAgZ290byBmYWlsOworICAgIH0KKworZmFpbDoKKyAgICBmcmVlKHNlcl9wYXJhbXMpOworICAgIGZyZWUoc2VyX3Jlc3VsdCk7CisKKyAgICByZXR1cm4gc3RhdHVzOworfQorCisKK3BzYV9zdGF0dXNfdCBwc2Ffc2lnbl9oYXNoX2NvbXBsZXRlKAorICAgIHBzYV9zaWduX2hhc2hfaW50ZXJydXB0aWJsZV9vcGVyYXRpb25fdCAqb3BlcmF0aW9uLAorICAgIHVpbnQ4X3QgKnNpZ25hdHVyZSwgc2l6ZV90ICBzaWduYXR1cmVfc2l6ZSwKKyAgICBzaXplX3QgKnNpZ25hdHVyZV9sZW5ndGgKKyAgICApCit7CisgICAgdWludDhfdCAqc2VyX3BhcmFtcyA9IE5VTEw7CisgICAgdWludDhfdCAqc2VyX3Jlc3VsdCA9IE5VTEw7CisgICAgc2l6ZV90IHJlc3VsdF9sZW5ndGg7CisgICAgcHNhX3N0YXR1c190IHN0YXR1cyA9IFBTQV9FUlJPUl9DT1JSVVBUSU9OX0RFVEVDVEVEOworCisgICAgc2l6ZV90IG5lZWRlZCA9CisgICAgICAgIHBzYXNpbV9zZXJpYWxpc2VfYmVnaW5fbmVlZHMoKSArCisgICAgICAgIHBzYXNpbV9zZXJpYWxpc2VfcHNhX3NpZ25faGFzaF9pbnRlcnJ1cHRpYmxlX29wZXJhdGlvbl90X25lZWRzKCpvcGVyYXRpb24pICsKKyAgICAgICAgcHNhc2ltX3NlcmlhbGlzZV9idWZmZXJfbmVlZHMoc2lnbmF0dXJlLCBzaWduYXR1cmVfc2l6ZSkgKworICAgICAgICBwc2FzaW1fc2VyaWFsaXNlX3NpemVfdF9uZWVkcygqc2lnbmF0dXJlX2xlbmd0aCk7CisKKyAgICBzZXJfcGFyYW1zID0gbWFsbG9jKG5lZWRlZCk7CisgICAgaWYgKHNlcl9wYXJhbXMgPT0gTlVMTCkgeworICAgICAgICBzdGF0dXMgPSBQU0FfRVJST1JfSU5TVUZGSUNJRU5UX01FTU9SWTsKKyAgICAgICAgZ290byBmYWlsOworICAgIH0KKworICAgIHVpbnQ4X3QgKnBvcyA9IHNlcl9wYXJhbXM7CisgICAgc2l6ZV90IHJlbWFpbmluZyA9IG5lZWRlZDsKKyAgICBpbnQgb2s7CisgICAgb2sgPSBwc2FzaW1fc2VyaWFsaXNlX2JlZ2luKCZwb3MsICZyZW1haW5pbmcpOworICAgIGlmICghb2spIHsKKyAgICAgICAgZ290byBmYWlsOworICAgIH0KKyAgICBvayA9IHBzYXNpbV9zZXJpYWxpc2VfcHNhX3NpZ25faGFzaF9pbnRlcnJ1cHRpYmxlX29wZXJhdGlvbl90KAorICAgICAgICAmcG9zLCAmcmVtYWluaW5nLAorICAgICAgICAqb3BlcmF0aW9uKTsKKyAgICBpZiAoIW9rKSB7CisgICAgICAgIGdvdG8gZmFpbDsKKyAgICB9CisgICAgb2sgPSBwc2FzaW1fc2VyaWFsaXNlX2J1ZmZlcigKKyAgICAgICAgJnBvcywgJnJlbWFpbmluZywKKyAgICAgICAgc2lnbmF0dXJlLCBzaWduYXR1cmVfc2l6ZSk7CisgICAgaWYgKCFvaykgeworICAgICAgICBnb3RvIGZhaWw7CisgICAgfQorICAgIG9rID0gcHNhc2ltX3NlcmlhbGlzZV9zaXplX3QoCisgICAgICAgICZwb3MsICZyZW1haW5pbmcsCisgICAgICAgICpzaWduYXR1cmVfbGVuZ3RoKTsKKyAgICBpZiAoIW9rKSB7CisgICAgICAgIGdvdG8gZmFpbDsKKyAgICB9CisKKyAgICBvayA9IHBzYV9jcnlwdG9fY2FsbChQU0FfU0lHTl9IQVNIX0NPTVBMRVRFLAorICAgICAgICAgICAgICAgICAgICAgICAgIHNlcl9wYXJhbXMsIChzaXplX3QpIChwb3MgLSBzZXJfcGFyYW1zKSwgJnNlcl9yZXN1bHQsICZyZXN1bHRfbGVuZ3RoKTsKKyAgICBpZiAoIW9rKSB7CisgICAgICAgIHByaW50ZigiUFNBX1NJR05fSEFTSF9DT01QTEVURSBzZXJ2ZXIgY2FsbCBmYWlsZWRcbiIpOworICAgICAgICBnb3RvIGZhaWw7CisgICAgfQorCisgICAgdWludDhfdCAqcnBvcyA9IHNlcl9yZXN1bHQ7CisgICAgc2l6ZV90IHJyZW1haW4gPSByZXN1bHRfbGVuZ3RoOworCisgICAgb2sgPSBwc2FzaW1fZGVzZXJpYWxpc2VfYmVnaW4oJnJwb3MsICZycmVtYWluKTsKKyAgICBpZiAoIW9rKSB7CisgICAgICAgIGdvdG8gZmFpbDsKKyAgICB9CisKKyAgICBvayA9IHBzYXNpbV9kZXNlcmlhbGlzZV9wc2Ffc3RhdHVzX3QoCisgICAgICAgICZycG9zLCAmcnJlbWFpbiwKKyAgICAgICAgJnN0YXR1cyk7CisgICAgaWYgKCFvaykgeworICAgICAgICBnb3RvIGZhaWw7CisgICAgfQorCisgICAgb2sgPSBwc2FzaW1fZGVzZXJpYWxpc2VfcHNhX3NpZ25faGFzaF9pbnRlcnJ1cHRpYmxlX29wZXJhdGlvbl90KAorICAgICAgICAmcnBvcywgJnJyZW1haW4sCisgICAgICAgIG9wZXJhdGlvbik7CisgICAgaWYgKCFvaykgeworICAgICAgICBnb3RvIGZhaWw7CisgICAgfQorCisgICAgb2sgPSBwc2FzaW1fZGVzZXJpYWxpc2VfcmV0dXJuX2J1ZmZlcigKKyAgICAgICAgJnJwb3MsICZycmVtYWluLAorICAgICAgICBzaWduYXR1cmUsIHNpZ25hdHVyZV9zaXplKTsKKyAgICBpZiAoIW9rKSB7CisgICAgICAgIGdvdG8gZmFpbDsKKyAgICB9CisKKyAgICBvayA9IHBzYXNpbV9kZXNlcmlhbGlzZV9zaXplX3QoCisgICAgICAgICZycG9zLCAmcnJlbWFpbiwKKyAgICAgICAgc2lnbmF0dXJlX2xlbmd0aCk7CisgICAgaWYgKCFvaykgeworICAgICAgICBnb3RvIGZhaWw7CisgICAgfQorCitmYWlsOgorICAgIGZyZWUoc2VyX3BhcmFtcyk7CisgICAgZnJlZShzZXJfcmVzdWx0KTsKKworICAgIHJldHVybiBzdGF0dXM7Cit9CisKKwordWludDMyX3QgcHNhX3NpZ25faGFzaF9nZXRfbnVtX29wcygKKyAgICBjb25zdCBwc2Ffc2lnbl9oYXNoX2ludGVycnVwdGlibGVfb3BlcmF0aW9uX3QgKm9wZXJhdGlvbgorICAgICkKK3sKKyAgICB1aW50OF90ICpzZXJfcGFyYW1zID0gTlVMTDsKKyAgICB1aW50OF90ICpzZXJfcmVzdWx0ID0gTlVMTDsKKyAgICBzaXplX3QgcmVzdWx0X2xlbmd0aDsKKyAgICB1aW50MzJfdCB2YWx1ZSA9IDA7CisKKyAgICBzaXplX3QgbmVlZGVkID0KKyAgICAgICAgcHNhc2ltX3NlcmlhbGlzZV9iZWdpbl9uZWVkcygpICsKKyAgICAgICAgcHNhc2ltX3NlcmlhbGlzZV9wc2Ffc2lnbl9oYXNoX2ludGVycnVwdGlibGVfb3BlcmF0aW9uX3RfbmVlZHMoKm9wZXJhdGlvbik7CisKKyAgICBzZXJfcGFyYW1zID0gbWFsbG9jKG5lZWRlZCk7CisgICAgaWYgKHNlcl9wYXJhbXMgPT0gTlVMTCkgeworICAgICAgICB2YWx1ZSA9IDA7CisgICAgICAgIGdvdG8gZmFpbDsKKyAgICB9CisKKyAgICB1aW50OF90ICpwb3MgPSBzZXJfcGFyYW1zOworICAgIHNpemVfdCByZW1haW5pbmcgPSBuZWVkZWQ7CisgICAgaW50IG9rOworICAgIG9rID0gcHNhc2ltX3NlcmlhbGlzZV9iZWdpbigmcG9zLCAmcmVtYWluaW5nKTsKKyAgICBpZiAoIW9rKSB7CisgICAgICAgIGdvdG8gZmFpbDsKKyAgICB9CisgICAgb2sgPSBwc2FzaW1fc2VyaWFsaXNlX3BzYV9zaWduX2hhc2hfaW50ZXJydXB0aWJsZV9vcGVyYXRpb25fdCgKKyAgICAgICAgJnBvcywgJnJlbWFpbmluZywKKyAgICAgICAgKm9wZXJhdGlvbik7CisgICAgaWYgKCFvaykgeworICAgICAgICBnb3RvIGZhaWw7CisgICAgfQorCisgICAgb2sgPSBwc2FfY3J5cHRvX2NhbGwoUFNBX1NJR05fSEFTSF9HRVRfTlVNX09QUywKKyAgICAgICAgICAgICAgICAgICAgICAgICBzZXJfcGFyYW1zLCAoc2l6ZV90KSAocG9zIC0gc2VyX3BhcmFtcyksICZzZXJfcmVzdWx0LCAmcmVzdWx0X2xlbmd0aCk7CisgICAgaWYgKCFvaykgeworICAgICAgICBwcmludGYoIlBTQV9TSUdOX0hBU0hfR0VUX05VTV9PUFMgc2VydmVyIGNhbGwgZmFpbGVkXG4iKTsKKyAgICAgICAgZ290byBmYWlsOworICAgIH0KKworICAgIHVpbnQ4X3QgKnJwb3MgPSBzZXJfcmVzdWx0OworICAgIHNpemVfdCBycmVtYWluID0gcmVzdWx0X2xlbmd0aDsKKworICAgIG9rID0gcHNhc2ltX2Rlc2VyaWFsaXNlX2JlZ2luKCZycG9zLCAmcnJlbWFpbik7CisgICAgaWYgKCFvaykgeworICAgICAgICBnb3RvIGZhaWw7CisgICAgfQorCisgICAgb2sgPSBwc2FzaW1fZGVzZXJpYWxpc2VfdWludDMyX3QoCisgICAgICAgICZycG9zLCAmcnJlbWFpbiwKKyAgICAgICAgJnZhbHVlKTsKKyAgICBpZiAoIW9rKSB7CisgICAgICAgIGdvdG8gZmFpbDsKKyAgICB9CisKK2ZhaWw6CisgICAgZnJlZShzZXJfcGFyYW1zKTsKKyAgICBmcmVlKHNlcl9yZXN1bHQpOworCisgICAgcmV0dXJuIHZhbHVlOworfQorCisKK3BzYV9zdGF0dXNfdCBwc2Ffc2lnbl9oYXNoX3N0YXJ0KAorICAgIHBzYV9zaWduX2hhc2hfaW50ZXJydXB0aWJsZV9vcGVyYXRpb25fdCAqb3BlcmF0aW9uLAorICAgIG1iZWR0bHNfc3ZjX2tleV9pZF90IGtleSwKKyAgICBwc2FfYWxnb3JpdGhtX3QgYWxnLAorICAgIGNvbnN0IHVpbnQ4X3QgKmhhc2gsIHNpemVfdCAgaGFzaF9sZW5ndGgKKyAgICApCit7CisgICAgdWludDhfdCAqc2VyX3BhcmFtcyA9IE5VTEw7CisgICAgdWludDhfdCAqc2VyX3Jlc3VsdCA9IE5VTEw7CisgICAgc2l6ZV90IHJlc3VsdF9sZW5ndGg7CisgICAgcHNhX3N0YXR1c190IHN0YXR1cyA9IFBTQV9FUlJPUl9DT1JSVVBUSU9OX0RFVEVDVEVEOworCisgICAgc2l6ZV90IG5lZWRlZCA9CisgICAgICAgIHBzYXNpbV9zZXJpYWxpc2VfYmVnaW5fbmVlZHMoKSArCisgICAgICAgIHBzYXNpbV9zZXJpYWxpc2VfcHNhX3NpZ25faGFzaF9pbnRlcnJ1cHRpYmxlX29wZXJhdGlvbl90X25lZWRzKCpvcGVyYXRpb24pICsKKyAgICAgICAgcHNhc2ltX3NlcmlhbGlzZV9tYmVkdGxzX3N2Y19rZXlfaWRfdF9uZWVkcyhrZXkpICsKKyAgICAgICAgcHNhc2ltX3NlcmlhbGlzZV9wc2FfYWxnb3JpdGhtX3RfbmVlZHMoYWxnKSArCisgICAgICAgIHBzYXNpbV9zZXJpYWxpc2VfYnVmZmVyX25lZWRzKGhhc2gsIGhhc2hfbGVuZ3RoKTsKKworICAgIHNlcl9wYXJhbXMgPSBtYWxsb2MobmVlZGVkKTsKKyAgICBpZiAoc2VyX3BhcmFtcyA9PSBOVUxMKSB7CisgICAgICAgIHN0YXR1cyA9IFBTQV9FUlJPUl9JTlNVRkZJQ0lFTlRfTUVNT1JZOworICAgICAgICBnb3RvIGZhaWw7CisgICAgfQorCisgICAgdWludDhfdCAqcG9zID0gc2VyX3BhcmFtczsKKyAgICBzaXplX3QgcmVtYWluaW5nID0gbmVlZGVkOworICAgIGludCBvazsKKyAgICBvayA9IHBzYXNpbV9zZXJpYWxpc2VfYmVnaW4oJnBvcywgJnJlbWFpbmluZyk7CisgICAgaWYgKCFvaykgeworICAgICAgICBnb3RvIGZhaWw7CisgICAgfQorICAgIG9rID0gcHNhc2ltX3NlcmlhbGlzZV9wc2Ffc2lnbl9oYXNoX2ludGVycnVwdGlibGVfb3BlcmF0aW9uX3QoCisgICAgICAgICZwb3MsICZyZW1haW5pbmcsCisgICAgICAgICpvcGVyYXRpb24pOworICAgIGlmICghb2spIHsKKyAgICAgICAgZ290byBmYWlsOworICAgIH0KKyAgICBvayA9IHBzYXNpbV9zZXJpYWxpc2VfbWJlZHRsc19zdmNfa2V5X2lkX3QoCisgICAgICAgICZwb3MsICZyZW1haW5pbmcsCisgICAgICAgIGtleSk7CisgICAgaWYgKCFvaykgeworICAgICAgICBnb3RvIGZhaWw7CisgICAgfQorICAgIG9rID0gcHNhc2ltX3NlcmlhbGlzZV9wc2FfYWxnb3JpdGhtX3QoCisgICAgICAgICZwb3MsICZyZW1haW5pbmcsCisgICAgICAgIGFsZyk7CisgICAgaWYgKCFvaykgeworICAgICAgICBnb3RvIGZhaWw7CisgICAgfQorICAgIG9rID0gcHNhc2ltX3NlcmlhbGlzZV9idWZmZXIoCisgICAgICAgICZwb3MsICZyZW1haW5pbmcsCisgICAgICAgIGhhc2gsIGhhc2hfbGVuZ3RoKTsKKyAgICBpZiAoIW9rKSB7CisgICAgICAgIGdvdG8gZmFpbDsKKyAgICB9CisKKyAgICBvayA9IHBzYV9jcnlwdG9fY2FsbChQU0FfU0lHTl9IQVNIX1NUQVJULAorICAgICAgICAgICAgICAgICAgICAgICAgIHNlcl9wYXJhbXMsIChzaXplX3QpIChwb3MgLSBzZXJfcGFyYW1zKSwgJnNlcl9yZXN1bHQsICZyZXN1bHRfbGVuZ3RoKTsKKyAgICBpZiAoIW9rKSB7CisgICAgICAgIHByaW50ZigiUFNBX1NJR05fSEFTSF9TVEFSVCBzZXJ2ZXIgY2FsbCBmYWlsZWRcbiIpOworICAgICAgICBnb3RvIGZhaWw7CisgICAgfQorCisgICAgdWludDhfdCAqcnBvcyA9IHNlcl9yZXN1bHQ7CisgICAgc2l6ZV90IHJyZW1haW4gPSByZXN1bHRfbGVuZ3RoOworCisgICAgb2sgPSBwc2FzaW1fZGVzZXJpYWxpc2VfYmVnaW4oJnJwb3MsICZycmVtYWluKTsKKyAgICBpZiAoIW9rKSB7CisgICAgICAgIGdvdG8gZmFpbDsKKyAgICB9CisKKyAgICBvayA9IHBzYXNpbV9kZXNlcmlhbGlzZV9wc2Ffc3RhdHVzX3QoCisgICAgICAgICZycG9zLCAmcnJlbWFpbiwKKyAgICAgICAgJnN0YXR1cyk7CisgICAgaWYgKCFvaykgeworICAgICAgICBnb3RvIGZhaWw7CisgICAgfQorCisgICAgb2sgPSBwc2FzaW1fZGVzZXJpYWxpc2VfcHNhX3NpZ25faGFzaF9pbnRlcnJ1cHRpYmxlX29wZXJhdGlvbl90KAorICAgICAgICAmcnBvcywgJnJyZW1haW4sCisgICAgICAgIG9wZXJhdGlvbik7CisgICAgaWYgKCFvaykgeworICAgICAgICBnb3RvIGZhaWw7CisgICAgfQorCitmYWlsOgorICAgIGZyZWUoc2VyX3BhcmFtcyk7CisgICAgZnJlZShzZXJfcmVzdWx0KTsKKworICAgIHJldHVybiBzdGF0dXM7Cit9CisKKworcHNhX3N0YXR1c190IHBzYV9zaWduX21lc3NhZ2UoCisgICAgbWJlZHRsc19zdmNfa2V5X2lkX3Qga2V5LAorICAgIHBzYV9hbGdvcml0aG1fdCBhbGcsCisgICAgY29uc3QgdWludDhfdCAqaW5wdXQsIHNpemVfdCAgaW5wdXRfbGVuZ3RoLAorICAgIHVpbnQ4X3QgKnNpZ25hdHVyZSwgc2l6ZV90ICBzaWduYXR1cmVfc2l6ZSwKKyAgICBzaXplX3QgKnNpZ25hdHVyZV9sZW5ndGgKKyAgICApCit7CisgICAgdWludDhfdCAqc2VyX3BhcmFtcyA9IE5VTEw7CisgICAgdWludDhfdCAqc2VyX3Jlc3VsdCA9IE5VTEw7CisgICAgc2l6ZV90IHJlc3VsdF9sZW5ndGg7CisgICAgcHNhX3N0YXR1c190IHN0YXR1cyA9IFBTQV9FUlJPUl9DT1JSVVBUSU9OX0RFVEVDVEVEOworCisgICAgc2l6ZV90IG5lZWRlZCA9CisgICAgICAgIHBzYXNpbV9zZXJpYWxpc2VfYmVnaW5fbmVlZHMoKSArCisgICAgICAgIHBzYXNpbV9zZXJpYWxpc2VfbWJlZHRsc19zdmNfa2V5X2lkX3RfbmVlZHMoa2V5KSArCisgICAgICAgIHBzYXNpbV9zZXJpYWxpc2VfcHNhX2FsZ29yaXRobV90X25lZWRzKGFsZykgKworICAgICAgICBwc2FzaW1fc2VyaWFsaXNlX2J1ZmZlcl9uZWVkcyhpbnB1dCwgaW5wdXRfbGVuZ3RoKSArCisgICAgICAgIHBzYXNpbV9zZXJpYWxpc2VfYnVmZmVyX25lZWRzKHNpZ25hdHVyZSwgc2lnbmF0dXJlX3NpemUpICsKKyAgICAgICAgcHNhc2ltX3NlcmlhbGlzZV9zaXplX3RfbmVlZHMoKnNpZ25hdHVyZV9sZW5ndGgpOworCisgICAgc2VyX3BhcmFtcyA9IG1hbGxvYyhuZWVkZWQpOworICAgIGlmIChzZXJfcGFyYW1zID09IE5VTEwpIHsKKyAgICAgICAgc3RhdHVzID0gUFNBX0VSUk9SX0lOU1VGRklDSUVOVF9NRU1PUlk7CisgICAgICAgIGdvdG8gZmFpbDsKKyAgICB9CisKKyAgICB1aW50OF90ICpwb3MgPSBzZXJfcGFyYW1zOworICAgIHNpemVfdCByZW1haW5pbmcgPSBuZWVkZWQ7CisgICAgaW50IG9rOworICAgIG9rID0gcHNhc2ltX3NlcmlhbGlzZV9iZWdpbigmcG9zLCAmcmVtYWluaW5nKTsKKyAgICBpZiAoIW9rKSB7CisgICAgICAgIGdvdG8gZmFpbDsKKyAgICB9CisgICAgb2sgPSBwc2FzaW1fc2VyaWFsaXNlX21iZWR0bHNfc3ZjX2tleV9pZF90KAorICAgICAgICAmcG9zLCAmcmVtYWluaW5nLAorICAgICAgICBrZXkpOworICAgIGlmICghb2spIHsKKyAgICAgICAgZ290byBmYWlsOworICAgIH0KKyAgICBvayA9IHBzYXNpbV9zZXJpYWxpc2VfcHNhX2FsZ29yaXRobV90KAorICAgICAgICAmcG9zLCAmcmVtYWluaW5nLAorICAgICAgICBhbGcpOworICAgIGlmICghb2spIHsKKyAgICAgICAgZ290byBmYWlsOworICAgIH0KKyAgICBvayA9IHBzYXNpbV9zZXJpYWxpc2VfYnVmZmVyKAorICAgICAgICAmcG9zLCAmcmVtYWluaW5nLAorICAgICAgICBpbnB1dCwgaW5wdXRfbGVuZ3RoKTsKKyAgICBpZiAoIW9rKSB7CisgICAgICAgIGdvdG8gZmFpbDsKKyAgICB9CisgICAgb2sgPSBwc2FzaW1fc2VyaWFsaXNlX2J1ZmZlcigKKyAgICAgICAgJnBvcywgJnJlbWFpbmluZywKKyAgICAgICAgc2lnbmF0dXJlLCBzaWduYXR1cmVfc2l6ZSk7CisgICAgaWYgKCFvaykgeworICAgICAgICBnb3RvIGZhaWw7CisgICAgfQorICAgIG9rID0gcHNhc2ltX3NlcmlhbGlzZV9zaXplX3QoCisgICAgICAgICZwb3MsICZyZW1haW5pbmcsCisgICAgICAgICpzaWduYXR1cmVfbGVuZ3RoKTsKKyAgICBpZiAoIW9rKSB7CisgICAgICAgIGdvdG8gZmFpbDsKKyAgICB9CisKKyAgICBvayA9IHBzYV9jcnlwdG9fY2FsbChQU0FfU0lHTl9NRVNTQUdFLAorICAgICAgICAgICAgICAgICAgICAgICAgIHNlcl9wYXJhbXMsIChzaXplX3QpIChwb3MgLSBzZXJfcGFyYW1zKSwgJnNlcl9yZXN1bHQsICZyZXN1bHRfbGVuZ3RoKTsKKyAgICBpZiAoIW9rKSB7CisgICAgICAgIHByaW50ZigiUFNBX1NJR05fTUVTU0FHRSBzZXJ2ZXIgY2FsbCBmYWlsZWRcbiIpOworICAgICAgICBnb3RvIGZhaWw7CisgICAgfQorCisgICAgdWludDhfdCAqcnBvcyA9IHNlcl9yZXN1bHQ7CisgICAgc2l6ZV90IHJyZW1haW4gPSByZXN1bHRfbGVuZ3RoOworCisgICAgb2sgPSBwc2FzaW1fZGVzZXJpYWxpc2VfYmVnaW4oJnJwb3MsICZycmVtYWluKTsKKyAgICBpZiAoIW9rKSB7CisgICAgICAgIGdvdG8gZmFpbDsKKyAgICB9CisKKyAgICBvayA9IHBzYXNpbV9kZXNlcmlhbGlzZV9wc2Ffc3RhdHVzX3QoCisgICAgICAgICZycG9zLCAmcnJlbWFpbiwKKyAgICAgICAgJnN0YXR1cyk7CisgICAgaWYgKCFvaykgeworICAgICAgICBnb3RvIGZhaWw7CisgICAgfQorCisgICAgb2sgPSBwc2FzaW1fZGVzZXJpYWxpc2VfcmV0dXJuX2J1ZmZlcigKKyAgICAgICAgJnJwb3MsICZycmVtYWluLAorICAgICAgICBzaWduYXR1cmUsIHNpZ25hdHVyZV9zaXplKTsKKyAgICBpZiAoIW9rKSB7CisgICAgICAgIGdvdG8gZmFpbDsKKyAgICB9CisKKyAgICBvayA9IHBzYXNpbV9kZXNlcmlhbGlzZV9zaXplX3QoCisgICAgICAgICZycG9zLCAmcnJlbWFpbiwKKyAgICAgICAgc2lnbmF0dXJlX2xlbmd0aCk7CisgICAgaWYgKCFvaykgeworICAgICAgICBnb3RvIGZhaWw7CisgICAgfQorCitmYWlsOgorICAgIGZyZWUoc2VyX3BhcmFtcyk7CisgICAgZnJlZShzZXJfcmVzdWx0KTsKKworICAgIHJldHVybiBzdGF0dXM7Cit9CisKKworcHNhX3N0YXR1c190IHBzYV92ZXJpZnlfaGFzaCgKKyAgICBtYmVkdGxzX3N2Y19rZXlfaWRfdCBrZXksCisgICAgcHNhX2FsZ29yaXRobV90IGFsZywKKyAgICBjb25zdCB1aW50OF90ICpoYXNoLCBzaXplX3QgIGhhc2hfbGVuZ3RoLAorICAgIGNvbnN0IHVpbnQ4X3QgKnNpZ25hdHVyZSwgc2l6ZV90ICBzaWduYXR1cmVfbGVuZ3RoCisgICAgKQoreworICAgIHVpbnQ4X3QgKnNlcl9wYXJhbXMgPSBOVUxMOworICAgIHVpbnQ4X3QgKnNlcl9yZXN1bHQgPSBOVUxMOworICAgIHNpemVfdCByZXN1bHRfbGVuZ3RoOworICAgIHBzYV9zdGF0dXNfdCBzdGF0dXMgPSBQU0FfRVJST1JfQ09SUlVQVElPTl9ERVRFQ1RFRDsKKworICAgIHNpemVfdCBuZWVkZWQgPQorICAgICAgICBwc2FzaW1fc2VyaWFsaXNlX2JlZ2luX25lZWRzKCkgKworICAgICAgICBwc2FzaW1fc2VyaWFsaXNlX21iZWR0bHNfc3ZjX2tleV9pZF90X25lZWRzKGtleSkgKworICAgICAgICBwc2FzaW1fc2VyaWFsaXNlX3BzYV9hbGdvcml0aG1fdF9uZWVkcyhhbGcpICsKKyAgICAgICAgcHNhc2ltX3NlcmlhbGlzZV9idWZmZXJfbmVlZHMoaGFzaCwgaGFzaF9sZW5ndGgpICsKKyAgICAgICAgcHNhc2ltX3NlcmlhbGlzZV9idWZmZXJfbmVlZHMoc2lnbmF0dXJlLCBzaWduYXR1cmVfbGVuZ3RoKTsKKworICAgIHNlcl9wYXJhbXMgPSBtYWxsb2MobmVlZGVkKTsKKyAgICBpZiAoc2VyX3BhcmFtcyA9PSBOVUxMKSB7CisgICAgICAgIHN0YXR1cyA9IFBTQV9FUlJPUl9JTlNVRkZJQ0lFTlRfTUVNT1JZOworICAgICAgICBnb3RvIGZhaWw7CisgICAgfQorCisgICAgdWludDhfdCAqcG9zID0gc2VyX3BhcmFtczsKKyAgICBzaXplX3QgcmVtYWluaW5nID0gbmVlZGVkOworICAgIGludCBvazsKKyAgICBvayA9IHBzYXNpbV9zZXJpYWxpc2VfYmVnaW4oJnBvcywgJnJlbWFpbmluZyk7CisgICAgaWYgKCFvaykgeworICAgICAgICBnb3RvIGZhaWw7CisgICAgfQorICAgIG9rID0gcHNhc2ltX3NlcmlhbGlzZV9tYmVkdGxzX3N2Y19rZXlfaWRfdCgKKyAgICAgICAgJnBvcywgJnJlbWFpbmluZywKKyAgICAgICAga2V5KTsKKyAgICBpZiAoIW9rKSB7CisgICAgICAgIGdvdG8gZmFpbDsKKyAgICB9CisgICAgb2sgPSBwc2FzaW1fc2VyaWFsaXNlX3BzYV9hbGdvcml0aG1fdCgKKyAgICAgICAgJnBvcywgJnJlbWFpbmluZywKKyAgICAgICAgYWxnKTsKKyAgICBpZiAoIW9rKSB7CisgICAgICAgIGdvdG8gZmFpbDsKKyAgICB9CisgICAgb2sgPSBwc2FzaW1fc2VyaWFsaXNlX2J1ZmZlcigKKyAgICAgICAgJnBvcywgJnJlbWFpbmluZywKKyAgICAgICAgaGFzaCwgaGFzaF9sZW5ndGgpOworICAgIGlmICghb2spIHsKKyAgICAgICAgZ290byBmYWlsOworICAgIH0KKyAgICBvayA9IHBzYXNpbV9zZXJpYWxpc2VfYnVmZmVyKAorICAgICAgICAmcG9zLCAmcmVtYWluaW5nLAorICAgICAgICBzaWduYXR1cmUsIHNpZ25hdHVyZV9sZW5ndGgpOworICAgIGlmICghb2spIHsKKyAgICAgICAgZ290byBmYWlsOworICAgIH0KKworICAgIG9rID0gcHNhX2NyeXB0b19jYWxsKFBTQV9WRVJJRllfSEFTSCwKKyAgICAgICAgICAgICAgICAgICAgICAgICBzZXJfcGFyYW1zLCAoc2l6ZV90KSAocG9zIC0gc2VyX3BhcmFtcyksICZzZXJfcmVzdWx0LCAmcmVzdWx0X2xlbmd0aCk7CisgICAgaWYgKCFvaykgeworICAgICAgICBwcmludGYoIlBTQV9WRVJJRllfSEFTSCBzZXJ2ZXIgY2FsbCBmYWlsZWRcbiIpOworICAgICAgICBnb3RvIGZhaWw7CisgICAgfQorCisgICAgdWludDhfdCAqcnBvcyA9IHNlcl9yZXN1bHQ7CisgICAgc2l6ZV90IHJyZW1haW4gPSByZXN1bHRfbGVuZ3RoOworCisgICAgb2sgPSBwc2FzaW1fZGVzZXJpYWxpc2VfYmVnaW4oJnJwb3MsICZycmVtYWluKTsKKyAgICBpZiAoIW9rKSB7CisgICAgICAgIGdvdG8gZmFpbDsKKyAgICB9CisKKyAgICBvayA9IHBzYXNpbV9kZXNlcmlhbGlzZV9wc2Ffc3RhdHVzX3QoCisgICAgICAgICZycG9zLCAmcnJlbWFpbiwKKyAgICAgICAgJnN0YXR1cyk7CisgICAgaWYgKCFvaykgeworICAgICAgICBnb3RvIGZhaWw7CisgICAgfQorCitmYWlsOgorICAgIGZyZWUoc2VyX3BhcmFtcyk7CisgICAgZnJlZShzZXJfcmVzdWx0KTsKKworICAgIHJldHVybiBzdGF0dXM7Cit9CisKKworcHNhX3N0YXR1c190IHBzYV92ZXJpZnlfaGFzaF9hYm9ydCgKKyAgICBwc2FfdmVyaWZ5X2hhc2hfaW50ZXJydXB0aWJsZV9vcGVyYXRpb25fdCAqb3BlcmF0aW9uCisgICAgKQoreworICAgIHVpbnQ4X3QgKnNlcl9wYXJhbXMgPSBOVUxMOworICAgIHVpbnQ4X3QgKnNlcl9yZXN1bHQgPSBOVUxMOworICAgIHNpemVfdCByZXN1bHRfbGVuZ3RoOworICAgIHBzYV9zdGF0dXNfdCBzdGF0dXMgPSBQU0FfRVJST1JfQ09SUlVQVElPTl9ERVRFQ1RFRDsKKworICAgIHNpemVfdCBuZWVkZWQgPQorICAgICAgICBwc2FzaW1fc2VyaWFsaXNlX2JlZ2luX25lZWRzKCkgKworICAgICAgICBwc2FzaW1fc2VyaWFsaXNlX3BzYV92ZXJpZnlfaGFzaF9pbnRlcnJ1cHRpYmxlX29wZXJhdGlvbl90X25lZWRzKCpvcGVyYXRpb24pOworCisgICAgc2VyX3BhcmFtcyA9IG1hbGxvYyhuZWVkZWQpOworICAgIGlmIChzZXJfcGFyYW1zID09IE5VTEwpIHsKKyAgICAgICAgc3RhdHVzID0gUFNBX0VSUk9SX0lOU1VGRklDSUVOVF9NRU1PUlk7CisgICAgICAgIGdvdG8gZmFpbDsKKyAgICB9CisKKyAgICB1aW50OF90ICpwb3MgPSBzZXJfcGFyYW1zOworICAgIHNpemVfdCByZW1haW5pbmcgPSBuZWVkZWQ7CisgICAgaW50IG9rOworICAgIG9rID0gcHNhc2ltX3NlcmlhbGlzZV9iZWdpbigmcG9zLCAmcmVtYWluaW5nKTsKKyAgICBpZiAoIW9rKSB7CisgICAgICAgIGdvdG8gZmFpbDsKKyAgICB9CisgICAgb2sgPSBwc2FzaW1fc2VyaWFsaXNlX3BzYV92ZXJpZnlfaGFzaF9pbnRlcnJ1cHRpYmxlX29wZXJhdGlvbl90KAorICAgICAgICAmcG9zLCAmcmVtYWluaW5nLAorICAgICAgICAqb3BlcmF0aW9uKTsKKyAgICBpZiAoIW9rKSB7CisgICAgICAgIGdvdG8gZmFpbDsKKyAgICB9CisKKyAgICBvayA9IHBzYV9jcnlwdG9fY2FsbChQU0FfVkVSSUZZX0hBU0hfQUJPUlQsCisgICAgICAgICAgICAgICAgICAgICAgICAgc2VyX3BhcmFtcywgKHNpemVfdCkgKHBvcyAtIHNlcl9wYXJhbXMpLCAmc2VyX3Jlc3VsdCwgJnJlc3VsdF9sZW5ndGgpOworICAgIGlmICghb2spIHsKKyAgICAgICAgcHJpbnRmKCJQU0FfVkVSSUZZX0hBU0hfQUJPUlQgc2VydmVyIGNhbGwgZmFpbGVkXG4iKTsKKyAgICAgICAgZ290byBmYWlsOworICAgIH0KKworICAgIHVpbnQ4X3QgKnJwb3MgPSBzZXJfcmVzdWx0OworICAgIHNpemVfdCBycmVtYWluID0gcmVzdWx0X2xlbmd0aDsKKworICAgIG9rID0gcHNhc2ltX2Rlc2VyaWFsaXNlX2JlZ2luKCZycG9zLCAmcnJlbWFpbik7CisgICAgaWYgKCFvaykgeworICAgICAgICBnb3RvIGZhaWw7CisgICAgfQorCisgICAgb2sgPSBwc2FzaW1fZGVzZXJpYWxpc2VfcHNhX3N0YXR1c190KAorICAgICAgICAmcnBvcywgJnJyZW1haW4sCisgICAgICAgICZzdGF0dXMpOworICAgIGlmICghb2spIHsKKyAgICAgICAgZ290byBmYWlsOworICAgIH0KKworICAgIG9rID0gcHNhc2ltX2Rlc2VyaWFsaXNlX3BzYV92ZXJpZnlfaGFzaF9pbnRlcnJ1cHRpYmxlX29wZXJhdGlvbl90KAorICAgICAgICAmcnBvcywgJnJyZW1haW4sCisgICAgICAgIG9wZXJhdGlvbik7CisgICAgaWYgKCFvaykgeworICAgICAgICBnb3RvIGZhaWw7CisgICAgfQorCitmYWlsOgorICAgIGZyZWUoc2VyX3BhcmFtcyk7CisgICAgZnJlZShzZXJfcmVzdWx0KTsKKworICAgIHJldHVybiBzdGF0dXM7Cit9CisKKworcHNhX3N0YXR1c190IHBzYV92ZXJpZnlfaGFzaF9jb21wbGV0ZSgKKyAgICBwc2FfdmVyaWZ5X2hhc2hfaW50ZXJydXB0aWJsZV9vcGVyYXRpb25fdCAqb3BlcmF0aW9uCisgICAgKQoreworICAgIHVpbnQ4X3QgKnNlcl9wYXJhbXMgPSBOVUxMOworICAgIHVpbnQ4X3QgKnNlcl9yZXN1bHQgPSBOVUxMOworICAgIHNpemVfdCByZXN1bHRfbGVuZ3RoOworICAgIHBzYV9zdGF0dXNfdCBzdGF0dXMgPSBQU0FfRVJST1JfQ09SUlVQVElPTl9ERVRFQ1RFRDsKKworICAgIHNpemVfdCBuZWVkZWQgPQorICAgICAgICBwc2FzaW1fc2VyaWFsaXNlX2JlZ2luX25lZWRzKCkgKworICAgICAgICBwc2FzaW1fc2VyaWFsaXNlX3BzYV92ZXJpZnlfaGFzaF9pbnRlcnJ1cHRpYmxlX29wZXJhdGlvbl90X25lZWRzKCpvcGVyYXRpb24pOworCisgICAgc2VyX3BhcmFtcyA9IG1hbGxvYyhuZWVkZWQpOworICAgIGlmIChzZXJfcGFyYW1zID09IE5VTEwpIHsKKyAgICAgICAgc3RhdHVzID0gUFNBX0VSUk9SX0lOU1VGRklDSUVOVF9NRU1PUlk7CisgICAgICAgIGdvdG8gZmFpbDsKKyAgICB9CisKKyAgICB1aW50OF90ICpwb3MgPSBzZXJfcGFyYW1zOworICAgIHNpemVfdCByZW1haW5pbmcgPSBuZWVkZWQ7CisgICAgaW50IG9rOworICAgIG9rID0gcHNhc2ltX3NlcmlhbGlzZV9iZWdpbigmcG9zLCAmcmVtYWluaW5nKTsKKyAgICBpZiAoIW9rKSB7CisgICAgICAgIGdvdG8gZmFpbDsKKyAgICB9CisgICAgb2sgPSBwc2FzaW1fc2VyaWFsaXNlX3BzYV92ZXJpZnlfaGFzaF9pbnRlcnJ1cHRpYmxlX29wZXJhdGlvbl90KAorICAgICAgICAmcG9zLCAmcmVtYWluaW5nLAorICAgICAgICAqb3BlcmF0aW9uKTsKKyAgICBpZiAoIW9rKSB7CisgICAgICAgIGdvdG8gZmFpbDsKKyAgICB9CisKKyAgICBvayA9IHBzYV9jcnlwdG9fY2FsbChQU0FfVkVSSUZZX0hBU0hfQ09NUExFVEUsCisgICAgICAgICAgICAgICAgICAgICAgICAgc2VyX3BhcmFtcywgKHNpemVfdCkgKHBvcyAtIHNlcl9wYXJhbXMpLCAmc2VyX3Jlc3VsdCwgJnJlc3VsdF9sZW5ndGgpOworICAgIGlmICghb2spIHsKKyAgICAgICAgcHJpbnRmKCJQU0FfVkVSSUZZX0hBU0hfQ09NUExFVEUgc2VydmVyIGNhbGwgZmFpbGVkXG4iKTsKKyAgICAgICAgZ290byBmYWlsOworICAgIH0KKworICAgIHVpbnQ4X3QgKnJwb3MgPSBzZXJfcmVzdWx0OworICAgIHNpemVfdCBycmVtYWluID0gcmVzdWx0X2xlbmd0aDsKKworICAgIG9rID0gcHNhc2ltX2Rlc2VyaWFsaXNlX2JlZ2luKCZycG9zLCAmcnJlbWFpbik7CisgICAgaWYgKCFvaykgeworICAgICAgICBnb3RvIGZhaWw7CisgICAgfQorCisgICAgb2sgPSBwc2FzaW1fZGVzZXJpYWxpc2VfcHNhX3N0YXR1c190KAorICAgICAgICAmcnBvcywgJnJyZW1haW4sCisgICAgICAgICZzdGF0dXMpOworICAgIGlmICghb2spIHsKKyAgICAgICAgZ290byBmYWlsOworICAgIH0KKworICAgIG9rID0gcHNhc2ltX2Rlc2VyaWFsaXNlX3BzYV92ZXJpZnlfaGFzaF9pbnRlcnJ1cHRpYmxlX29wZXJhdGlvbl90KAorICAgICAgICAmcnBvcywgJnJyZW1haW4sCisgICAgICAgIG9wZXJhdGlvbik7CisgICAgaWYgKCFvaykgeworICAgICAgICBnb3RvIGZhaWw7CisgICAgfQorCitmYWlsOgorICAgIGZyZWUoc2VyX3BhcmFtcyk7CisgICAgZnJlZShzZXJfcmVzdWx0KTsKKworICAgIHJldHVybiBzdGF0dXM7Cit9CisKKwordWludDMyX3QgcHNhX3ZlcmlmeV9oYXNoX2dldF9udW1fb3BzKAorICAgIGNvbnN0IHBzYV92ZXJpZnlfaGFzaF9pbnRlcnJ1cHRpYmxlX29wZXJhdGlvbl90ICpvcGVyYXRpb24KKyAgICApCit7CisgICAgdWludDhfdCAqc2VyX3BhcmFtcyA9IE5VTEw7CisgICAgdWludDhfdCAqc2VyX3Jlc3VsdCA9IE5VTEw7CisgICAgc2l6ZV90IHJlc3VsdF9sZW5ndGg7CisgICAgdWludDMyX3QgdmFsdWUgPSAwOworCisgICAgc2l6ZV90IG5lZWRlZCA9CisgICAgICAgIHBzYXNpbV9zZXJpYWxpc2VfYmVnaW5fbmVlZHMoKSArCisgICAgICAgIHBzYXNpbV9zZXJpYWxpc2VfcHNhX3ZlcmlmeV9oYXNoX2ludGVycnVwdGlibGVfb3BlcmF0aW9uX3RfbmVlZHMoKm9wZXJhdGlvbik7CisKKyAgICBzZXJfcGFyYW1zID0gbWFsbG9jKG5lZWRlZCk7CisgICAgaWYgKHNlcl9wYXJhbXMgPT0gTlVMTCkgeworICAgICAgICB2YWx1ZSA9IDA7CisgICAgICAgIGdvdG8gZmFpbDsKKyAgICB9CisKKyAgICB1aW50OF90ICpwb3MgPSBzZXJfcGFyYW1zOworICAgIHNpemVfdCByZW1haW5pbmcgPSBuZWVkZWQ7CisgICAgaW50IG9rOworICAgIG9rID0gcHNhc2ltX3NlcmlhbGlzZV9iZWdpbigmcG9zLCAmcmVtYWluaW5nKTsKKyAgICBpZiAoIW9rKSB7CisgICAgICAgIGdvdG8gZmFpbDsKKyAgICB9CisgICAgb2sgPSBwc2FzaW1fc2VyaWFsaXNlX3BzYV92ZXJpZnlfaGFzaF9pbnRlcnJ1cHRpYmxlX29wZXJhdGlvbl90KAorICAgICAgICAmcG9zLCAmcmVtYWluaW5nLAorICAgICAgICAqb3BlcmF0aW9uKTsKKyAgICBpZiAoIW9rKSB7CisgICAgICAgIGdvdG8gZmFpbDsKKyAgICB9CisKKyAgICBvayA9IHBzYV9jcnlwdG9fY2FsbChQU0FfVkVSSUZZX0hBU0hfR0VUX05VTV9PUFMsCisgICAgICAgICAgICAgICAgICAgICAgICAgc2VyX3BhcmFtcywgKHNpemVfdCkgKHBvcyAtIHNlcl9wYXJhbXMpLCAmc2VyX3Jlc3VsdCwgJnJlc3VsdF9sZW5ndGgpOworICAgIGlmICghb2spIHsKKyAgICAgICAgcHJpbnRmKCJQU0FfVkVSSUZZX0hBU0hfR0VUX05VTV9PUFMgc2VydmVyIGNhbGwgZmFpbGVkXG4iKTsKKyAgICAgICAgZ290byBmYWlsOworICAgIH0KKworICAgIHVpbnQ4X3QgKnJwb3MgPSBzZXJfcmVzdWx0OworICAgIHNpemVfdCBycmVtYWluID0gcmVzdWx0X2xlbmd0aDsKKworICAgIG9rID0gcHNhc2ltX2Rlc2VyaWFsaXNlX2JlZ2luKCZycG9zLCAmcnJlbWFpbik7CisgICAgaWYgKCFvaykgeworICAgICAgICBnb3RvIGZhaWw7CisgICAgfQorCisgICAgb2sgPSBwc2FzaW1fZGVzZXJpYWxpc2VfdWludDMyX3QoCisgICAgICAgICZycG9zLCAmcnJlbWFpbiwKKyAgICAgICAgJnZhbHVlKTsKKyAgICBpZiAoIW9rKSB7CisgICAgICAgIGdvdG8gZmFpbDsKKyAgICB9CisKK2ZhaWw6CisgICAgZnJlZShzZXJfcGFyYW1zKTsKKyAgICBmcmVlKHNlcl9yZXN1bHQpOworCisgICAgcmV0dXJuIHZhbHVlOworfQorCisKK3BzYV9zdGF0dXNfdCBwc2FfdmVyaWZ5X2hhc2hfc3RhcnQoCisgICAgcHNhX3ZlcmlmeV9oYXNoX2ludGVycnVwdGlibGVfb3BlcmF0aW9uX3QgKm9wZXJhdGlvbiwKKyAgICBtYmVkdGxzX3N2Y19rZXlfaWRfdCBrZXksCisgICAgcHNhX2FsZ29yaXRobV90IGFsZywKKyAgICBjb25zdCB1aW50OF90ICpoYXNoLCBzaXplX3QgIGhhc2hfbGVuZ3RoLAorICAgIGNvbnN0IHVpbnQ4X3QgKnNpZ25hdHVyZSwgc2l6ZV90ICBzaWduYXR1cmVfbGVuZ3RoCisgICAgKQoreworICAgIHVpbnQ4X3QgKnNlcl9wYXJhbXMgPSBOVUxMOworICAgIHVpbnQ4X3QgKnNlcl9yZXN1bHQgPSBOVUxMOworICAgIHNpemVfdCByZXN1bHRfbGVuZ3RoOworICAgIHBzYV9zdGF0dXNfdCBzdGF0dXMgPSBQU0FfRVJST1JfQ09SUlVQVElPTl9ERVRFQ1RFRDsKKworICAgIHNpemVfdCBuZWVkZWQgPQorICAgICAgICBwc2FzaW1fc2VyaWFsaXNlX2JlZ2luX25lZWRzKCkgKworICAgICAgICBwc2FzaW1fc2VyaWFsaXNlX3BzYV92ZXJpZnlfaGFzaF9pbnRlcnJ1cHRpYmxlX29wZXJhdGlvbl90X25lZWRzKCpvcGVyYXRpb24pICsKKyAgICAgICAgcHNhc2ltX3NlcmlhbGlzZV9tYmVkdGxzX3N2Y19rZXlfaWRfdF9uZWVkcyhrZXkpICsKKyAgICAgICAgcHNhc2ltX3NlcmlhbGlzZV9wc2FfYWxnb3JpdGhtX3RfbmVlZHMoYWxnKSArCisgICAgICAgIHBzYXNpbV9zZXJpYWxpc2VfYnVmZmVyX25lZWRzKGhhc2gsIGhhc2hfbGVuZ3RoKSArCisgICAgICAgIHBzYXNpbV9zZXJpYWxpc2VfYnVmZmVyX25lZWRzKHNpZ25hdHVyZSwgc2lnbmF0dXJlX2xlbmd0aCk7CisKKyAgICBzZXJfcGFyYW1zID0gbWFsbG9jKG5lZWRlZCk7CisgICAgaWYgKHNlcl9wYXJhbXMgPT0gTlVMTCkgeworICAgICAgICBzdGF0dXMgPSBQU0FfRVJST1JfSU5TVUZGSUNJRU5UX01FTU9SWTsKKyAgICAgICAgZ290byBmYWlsOworICAgIH0KKworICAgIHVpbnQ4X3QgKnBvcyA9IHNlcl9wYXJhbXM7CisgICAgc2l6ZV90IHJlbWFpbmluZyA9IG5lZWRlZDsKKyAgICBpbnQgb2s7CisgICAgb2sgPSBwc2FzaW1fc2VyaWFsaXNlX2JlZ2luKCZwb3MsICZyZW1haW5pbmcpOworICAgIGlmICghb2spIHsKKyAgICAgICAgZ290byBmYWlsOworICAgIH0KKyAgICBvayA9IHBzYXNpbV9zZXJpYWxpc2VfcHNhX3ZlcmlmeV9oYXNoX2ludGVycnVwdGlibGVfb3BlcmF0aW9uX3QoCisgICAgICAgICZwb3MsICZyZW1haW5pbmcsCisgICAgICAgICpvcGVyYXRpb24pOworICAgIGlmICghb2spIHsKKyAgICAgICAgZ290byBmYWlsOworICAgIH0KKyAgICBvayA9IHBzYXNpbV9zZXJpYWxpc2VfbWJlZHRsc19zdmNfa2V5X2lkX3QoCisgICAgICAgICZwb3MsICZyZW1haW5pbmcsCisgICAgICAgIGtleSk7CisgICAgaWYgKCFvaykgeworICAgICAgICBnb3RvIGZhaWw7CisgICAgfQorICAgIG9rID0gcHNhc2ltX3NlcmlhbGlzZV9wc2FfYWxnb3JpdGhtX3QoCisgICAgICAgICZwb3MsICZyZW1haW5pbmcsCisgICAgICAgIGFsZyk7CisgICAgaWYgKCFvaykgeworICAgICAgICBnb3RvIGZhaWw7CisgICAgfQorICAgIG9rID0gcHNhc2ltX3NlcmlhbGlzZV9idWZmZXIoCisgICAgICAgICZwb3MsICZyZW1haW5pbmcsCisgICAgICAgIGhhc2gsIGhhc2hfbGVuZ3RoKTsKKyAgICBpZiAoIW9rKSB7CisgICAgICAgIGdvdG8gZmFpbDsKKyAgICB9CisgICAgb2sgPSBwc2FzaW1fc2VyaWFsaXNlX2J1ZmZlcigKKyAgICAgICAgJnBvcywgJnJlbWFpbmluZywKKyAgICAgICAgc2lnbmF0dXJlLCBzaWduYXR1cmVfbGVuZ3RoKTsKKyAgICBpZiAoIW9rKSB7CisgICAgICAgIGdvdG8gZmFpbDsKKyAgICB9CisKKyAgICBvayA9IHBzYV9jcnlwdG9fY2FsbChQU0FfVkVSSUZZX0hBU0hfU1RBUlQsCisgICAgICAgICAgICAgICAgICAgICAgICAgc2VyX3BhcmFtcywgKHNpemVfdCkgKHBvcyAtIHNlcl9wYXJhbXMpLCAmc2VyX3Jlc3VsdCwgJnJlc3VsdF9sZW5ndGgpOworICAgIGlmICghb2spIHsKKyAgICAgICAgcHJpbnRmKCJQU0FfVkVSSUZZX0hBU0hfU1RBUlQgc2VydmVyIGNhbGwgZmFpbGVkXG4iKTsKKyAgICAgICAgZ290byBmYWlsOworICAgIH0KKworICAgIHVpbnQ4X3QgKnJwb3MgPSBzZXJfcmVzdWx0OworICAgIHNpemVfdCBycmVtYWluID0gcmVzdWx0X2xlbmd0aDsKKworICAgIG9rID0gcHNhc2ltX2Rlc2VyaWFsaXNlX2JlZ2luKCZycG9zLCAmcnJlbWFpbik7CisgICAgaWYgKCFvaykgeworICAgICAgICBnb3RvIGZhaWw7CisgICAgfQorCisgICAgb2sgPSBwc2FzaW1fZGVzZXJpYWxpc2VfcHNhX3N0YXR1c190KAorICAgICAgICAmcnBvcywgJnJyZW1haW4sCisgICAgICAgICZzdGF0dXMpOworICAgIGlmICghb2spIHsKKyAgICAgICAgZ290byBmYWlsOworICAgIH0KKworICAgIG9rID0gcHNhc2ltX2Rlc2VyaWFsaXNlX3BzYV92ZXJpZnlfaGFzaF9pbnRlcnJ1cHRpYmxlX29wZXJhdGlvbl90KAorICAgICAgICAmcnBvcywgJnJyZW1haW4sCisgICAgICAgIG9wZXJhdGlvbik7CisgICAgaWYgKCFvaykgeworICAgICAgICBnb3RvIGZhaWw7CisgICAgfQorCitmYWlsOgorICAgIGZyZWUoc2VyX3BhcmFtcyk7CisgICAgZnJlZShzZXJfcmVzdWx0KTsKKworICAgIHJldHVybiBzdGF0dXM7Cit9CisKKworcHNhX3N0YXR1c190IHBzYV92ZXJpZnlfbWVzc2FnZSgKKyAgICBtYmVkdGxzX3N2Y19rZXlfaWRfdCBrZXksCisgICAgcHNhX2FsZ29yaXRobV90IGFsZywKKyAgICBjb25zdCB1aW50OF90ICppbnB1dCwgc2l6ZV90ICBpbnB1dF9sZW5ndGgsCisgICAgY29uc3QgdWludDhfdCAqc2lnbmF0dXJlLCBzaXplX3QgIHNpZ25hdHVyZV9sZW5ndGgKKyAgICApCit7CisgICAgdWludDhfdCAqc2VyX3BhcmFtcyA9IE5VTEw7CisgICAgdWludDhfdCAqc2VyX3Jlc3VsdCA9IE5VTEw7CisgICAgc2l6ZV90IHJlc3VsdF9sZW5ndGg7CisgICAgcHNhX3N0YXR1c190IHN0YXR1cyA9IFBTQV9FUlJPUl9DT1JSVVBUSU9OX0RFVEVDVEVEOworCisgICAgc2l6ZV90IG5lZWRlZCA9CisgICAgICAgIHBzYXNpbV9zZXJpYWxpc2VfYmVnaW5fbmVlZHMoKSArCisgICAgICAgIHBzYXNpbV9zZXJpYWxpc2VfbWJlZHRsc19zdmNfa2V5X2lkX3RfbmVlZHMoa2V5KSArCisgICAgICAgIHBzYXNpbV9zZXJpYWxpc2VfcHNhX2FsZ29yaXRobV90X25lZWRzKGFsZykgKworICAgICAgICBwc2FzaW1fc2VyaWFsaXNlX2J1ZmZlcl9uZWVkcyhpbnB1dCwgaW5wdXRfbGVuZ3RoKSArCisgICAgICAgIHBzYXNpbV9zZXJpYWxpc2VfYnVmZmVyX25lZWRzKHNpZ25hdHVyZSwgc2lnbmF0dXJlX2xlbmd0aCk7CisKKyAgICBzZXJfcGFyYW1zID0gbWFsbG9jKG5lZWRlZCk7CisgICAgaWYgKHNlcl9wYXJhbXMgPT0gTlVMTCkgeworICAgICAgICBzdGF0dXMgPSBQU0FfRVJST1JfSU5TVUZGSUNJRU5UX01FTU9SWTsKKyAgICAgICAgZ290byBmYWlsOworICAgIH0KKworICAgIHVpbnQ4X3QgKnBvcyA9IHNlcl9wYXJhbXM7CisgICAgc2l6ZV90IHJlbWFpbmluZyA9IG5lZWRlZDsKKyAgICBpbnQgb2s7CisgICAgb2sgPSBwc2FzaW1fc2VyaWFsaXNlX2JlZ2luKCZwb3MsICZyZW1haW5pbmcpOworICAgIGlmICghb2spIHsKKyAgICAgICAgZ290byBmYWlsOworICAgIH0KKyAgICBvayA9IHBzYXNpbV9zZXJpYWxpc2VfbWJlZHRsc19zdmNfa2V5X2lkX3QoCisgICAgICAgICZwb3MsICZyZW1haW5pbmcsCisgICAgICAgIGtleSk7CisgICAgaWYgKCFvaykgeworICAgICAgICBnb3RvIGZhaWw7CisgICAgfQorICAgIG9rID0gcHNhc2ltX3NlcmlhbGlzZV9wc2FfYWxnb3JpdGhtX3QoCisgICAgICAgICZwb3MsICZyZW1haW5pbmcsCisgICAgICAgIGFsZyk7CisgICAgaWYgKCFvaykgeworICAgICAgICBnb3RvIGZhaWw7CisgICAgfQorICAgIG9rID0gcHNhc2ltX3NlcmlhbGlzZV9idWZmZXIoCisgICAgICAgICZwb3MsICZyZW1haW5pbmcsCisgICAgICAgIGlucHV0LCBpbnB1dF9sZW5ndGgpOworICAgIGlmICghb2spIHsKKyAgICAgICAgZ290byBmYWlsOworICAgIH0KKyAgICBvayA9IHBzYXNpbV9zZXJpYWxpc2VfYnVmZmVyKAorICAgICAgICAmcG9zLCAmcmVtYWluaW5nLAorICAgICAgICBzaWduYXR1cmUsIHNpZ25hdHVyZV9sZW5ndGgpOworICAgIGlmICghb2spIHsKKyAgICAgICAgZ290byBmYWlsOworICAgIH0KKworICAgIG9rID0gcHNhX2NyeXB0b19jYWxsKFBTQV9WRVJJRllfTUVTU0FHRSwKKyAgICAgICAgICAgICAgICAgICAgICAgICBzZXJfcGFyYW1zLCAoc2l6ZV90KSAocG9zIC0gc2VyX3BhcmFtcyksICZzZXJfcmVzdWx0LCAmcmVzdWx0X2xlbmd0aCk7CisgICAgaWYgKCFvaykgeworICAgICAgICBwcmludGYoIlBTQV9WRVJJRllfTUVTU0FHRSBzZXJ2ZXIgY2FsbCBmYWlsZWRcbiIpOworICAgICAgICBnb3RvIGZhaWw7CisgICAgfQorCisgICAgdWludDhfdCAqcnBvcyA9IHNlcl9yZXN1bHQ7CisgICAgc2l6ZV90IHJyZW1haW4gPSByZXN1bHRfbGVuZ3RoOworCisgICAgb2sgPSBwc2FzaW1fZGVzZXJpYWxpc2VfYmVnaW4oJnJwb3MsICZycmVtYWluKTsKKyAgICBpZiAoIW9rKSB7CisgICAgICAgIGdvdG8gZmFpbDsKKyAgICB9CisKKyAgICBvayA9IHBzYXNpbV9kZXNlcmlhbGlzZV9wc2Ffc3RhdHVzX3QoCisgICAgICAgICZycG9zLCAmcnJlbWFpbiwKKyAgICAgICAgJnN0YXR1cyk7CisgICAgaWYgKCFvaykgeworICAgICAgICBnb3RvIGZhaWw7CisgICAgfQorCitmYWlsOgorICAgIGZyZWUoc2VyX3BhcmFtcyk7CisgICAgZnJlZShzZXJfcmVzdWx0KTsKIAogICAgIHJldHVybiBzdGF0dXM7CiB9CmRpZmYgLS1naXQgYS90ZXN0cy9wc2EtY2xpZW50LXNlcnZlci9wc2FzaW0vc3JjL3BzYV9zaW1fY3J5cHRvX3NlcnZlci5jIGIvdGVzdHMvcHNhLWNsaWVudC1zZXJ2ZXIvcHNhc2ltL3NyYy9wc2Ffc2ltX2NyeXB0b19zZXJ2ZXIuYwppbmRleCAzMGQ0YjI2Li5jYWIzMmM0IDEwMDY0NAotLS0gYS90ZXN0cy9wc2EtY2xpZW50LXNlcnZlci9wc2FzaW0vc3JjL3BzYV9zaW1fY3J5cHRvX3NlcnZlci5jCisrKyBiL3Rlc3RzL3BzYS1jbGllbnQtc2VydmVyL3BzYXNpbS9zcmMvcHNhX3NpbV9jcnlwdG9fc2VydmVyLmMKQEAgLTU0LDcgKzU0LDkgQEAKICAgICAgICAgZ290byBmYWlsOwogICAgIH0KIAotICAgIG9rID0gcHNhc2ltX3NlcmlhbGlzZV9wc2Ffc3RhdHVzX3QoJnJwb3MsICZycmVtYWluLCBzdGF0dXMpOworICAgIG9rID0gcHNhc2ltX3NlcmlhbGlzZV9wc2Ffc3RhdHVzX3QoCisgICAgICAgICZycG9zLCAmcnJlbWFpbiwKKyAgICAgICAgc3RhdHVzKTsKICAgICBpZiAoIW9rKSB7CiAgICAgICAgIGdvdG8gZmFpbDsKICAgICB9CkBAIC04OCw3ICs5MCw5IEBACiAgICAgICAgIGdvdG8gZmFpbDsKICAgICB9CiAKLSAgICBvayA9IHBzYXNpbV9zZXJ2ZXJfZGVzZXJpYWxpc2VfcHNhX2FlYWRfb3BlcmF0aW9uX3QoJnBvcywgJnJlbWFpbmluZywgJm9wZXJhdGlvbik7CisgICAgb2sgPSBwc2FzaW1fc2VydmVyX2Rlc2VyaWFsaXNlX3BzYV9hZWFkX29wZXJhdGlvbl90KAorICAgICAgICAmcG9zLCAmcmVtYWluaW5nLAorICAgICAgICAmb3BlcmF0aW9uKTsKICAgICBpZiAoIW9rKSB7CiAgICAgICAgIGdvdG8gZmFpbDsKICAgICB9CkBAIC0xMTgsMTIgKzEyMiwxNiBAQAogICAgICAgICBnb3RvIGZhaWw7CiAgICAgfQogCi0gICAgb2sgPSBwc2FzaW1fc2VyaWFsaXNlX3BzYV9zdGF0dXNfdCgmcnBvcywgJnJyZW1haW4sIHN0YXR1cyk7CisgICAgb2sgPSBwc2FzaW1fc2VyaWFsaXNlX3BzYV9zdGF0dXNfdCgKKyAgICAgICAgJnJwb3MsICZycmVtYWluLAorICAgICAgICBzdGF0dXMpOwogICAgIGlmICghb2spIHsKICAgICAgICAgZ290byBmYWlsOwogICAgIH0KIAotICAgIG9rID0gcHNhc2ltX3NlcnZlcl9zZXJpYWxpc2VfcHNhX2FlYWRfb3BlcmF0aW9uX3QoJnJwb3MsICZycmVtYWluLCBvcGVyYXRpb24pOworICAgIG9rID0gcHNhc2ltX3NlcnZlcl9zZXJpYWxpc2VfcHNhX2FlYWRfb3BlcmF0aW9uX3QoCisgICAgICAgICZycG9zLCAmcnJlbWFpbiwKKyAgICAgICAgb3BlcmF0aW9uLCAxKTsKICAgICBpZiAoIW9rKSB7CiAgICAgICAgIGdvdG8gZmFpbDsKICAgICB9CkBAIC0xNjcsMzcgKzE3NSw1MSBAQAogICAgICAgICBnb3RvIGZhaWw7CiAgICAgfQogCi0gICAgb2sgPSBwc2FzaW1fZGVzZXJpYWxpc2VfbWJlZHRsc19zdmNfa2V5X2lkX3QoJnBvcywgJnJlbWFpbmluZywgJmtleSk7CisgICAgb2sgPSBwc2FzaW1fZGVzZXJpYWxpc2VfbWJlZHRsc19zdmNfa2V5X2lkX3QoCisgICAgICAgICZwb3MsICZyZW1haW5pbmcsCisgICAgICAgICZrZXkpOwogICAgIGlmICghb2spIHsKICAgICAgICAgZ290byBmYWlsOwogICAgIH0KIAotICAgIG9rID0gcHNhc2ltX2Rlc2VyaWFsaXNlX3BzYV9hbGdvcml0aG1fdCgmcG9zLCAmcmVtYWluaW5nLCAmYWxnKTsKKyAgICBvayA9IHBzYXNpbV9kZXNlcmlhbGlzZV9wc2FfYWxnb3JpdGhtX3QoCisgICAgICAgICZwb3MsICZyZW1haW5pbmcsCisgICAgICAgICZhbGcpOwogICAgIGlmICghb2spIHsKICAgICAgICAgZ290byBmYWlsOwogICAgIH0KIAotICAgIG9rID0gcHNhc2ltX2Rlc2VyaWFsaXNlX2J1ZmZlcigmcG9zLCAmcmVtYWluaW5nLCAmbm9uY2UsICZub25jZV9sZW5ndGgpOworICAgIG9rID0gcHNhc2ltX2Rlc2VyaWFsaXNlX2J1ZmZlcigKKyAgICAgICAgJnBvcywgJnJlbWFpbmluZywKKyAgICAgICAgJm5vbmNlLCAmbm9uY2VfbGVuZ3RoKTsKICAgICBpZiAoIW9rKSB7CiAgICAgICAgIGdvdG8gZmFpbDsKICAgICB9CiAKLSAgICBvayA9IHBzYXNpbV9kZXNlcmlhbGlzZV9idWZmZXIoJnBvcywgJnJlbWFpbmluZywgJmFkZGl0aW9uYWxfZGF0YSwgJmFkZGl0aW9uYWxfZGF0YV9sZW5ndGgpOworICAgIG9rID0gcHNhc2ltX2Rlc2VyaWFsaXNlX2J1ZmZlcigKKyAgICAgICAgJnBvcywgJnJlbWFpbmluZywKKyAgICAgICAgJmFkZGl0aW9uYWxfZGF0YSwgJmFkZGl0aW9uYWxfZGF0YV9sZW5ndGgpOwogICAgIGlmICghb2spIHsKICAgICAgICAgZ290byBmYWlsOwogICAgIH0KIAotICAgIG9rID0gcHNhc2ltX2Rlc2VyaWFsaXNlX2J1ZmZlcigmcG9zLCAmcmVtYWluaW5nLCAmY2lwaGVydGV4dCwgJmNpcGhlcnRleHRfbGVuZ3RoKTsKKyAgICBvayA9IHBzYXNpbV9kZXNlcmlhbGlzZV9idWZmZXIoCisgICAgICAgICZwb3MsICZyZW1haW5pbmcsCisgICAgICAgICZjaXBoZXJ0ZXh0LCAmY2lwaGVydGV4dF9sZW5ndGgpOwogICAgIGlmICghb2spIHsKICAgICAgICAgZ290byBmYWlsOwogICAgIH0KIAotICAgIG9rID0gcHNhc2ltX2Rlc2VyaWFsaXNlX2J1ZmZlcigmcG9zLCAmcmVtYWluaW5nLCAmcGxhaW50ZXh0LCAmcGxhaW50ZXh0X3NpemUpOworICAgIG9rID0gcHNhc2ltX2Rlc2VyaWFsaXNlX2J1ZmZlcigKKyAgICAgICAgJnBvcywgJnJlbWFpbmluZywKKyAgICAgICAgJnBsYWludGV4dCwgJnBsYWludGV4dF9zaXplKTsKICAgICBpZiAoIW9rKSB7CiAgICAgICAgIGdvdG8gZmFpbDsKICAgICB9CiAKLSAgICBvayA9IHBzYXNpbV9kZXNlcmlhbGlzZV9zaXplX3QoJnBvcywgJnJlbWFpbmluZywgJnBsYWludGV4dF9sZW5ndGgpOworICAgIG9rID0gcHNhc2ltX2Rlc2VyaWFsaXNlX3NpemVfdCgKKyAgICAgICAgJnBvcywgJnJlbWFpbmluZywKKyAgICAgICAgJnBsYWludGV4dF9sZW5ndGgpOwogICAgIGlmICghb2spIHsKICAgICAgICAgZ290byBmYWlsOwogICAgIH0KQEAgLTIzNCwxNyArMjU2LDIzIEBACiAgICAgICAgIGdvdG8gZmFpbDsKICAgICB9CiAKLSAgICBvayA9IHBzYXNpbV9zZXJpYWxpc2VfcHNhX3N0YXR1c190KCZycG9zLCAmcnJlbWFpbiwgc3RhdHVzKTsKKyAgICBvayA9IHBzYXNpbV9zZXJpYWxpc2VfcHNhX3N0YXR1c190KAorICAgICAgICAmcnBvcywgJnJyZW1haW4sCisgICAgICAgIHN0YXR1cyk7CiAgICAgaWYgKCFvaykgewogICAgICAgICBnb3RvIGZhaWw7CiAgICAgfQogCi0gICAgb2sgPSBwc2FzaW1fc2VyaWFsaXNlX2J1ZmZlcigmcnBvcywgJnJyZW1haW4sIHBsYWludGV4dCwgcGxhaW50ZXh0X3NpemUpOworICAgIG9rID0gcHNhc2ltX3NlcmlhbGlzZV9idWZmZXIoCisgICAgICAgICZycG9zLCAmcnJlbWFpbiwKKyAgICAgICAgcGxhaW50ZXh0LCBwbGFpbnRleHRfc2l6ZSk7CiAgICAgaWYgKCFvaykgewogICAgICAgICBnb3RvIGZhaWw7CiAgICAgfQogCi0gICAgb2sgPSBwc2FzaW1fc2VyaWFsaXNlX3NpemVfdCgmcnBvcywgJnJyZW1haW4sIHBsYWludGV4dF9sZW5ndGgpOworICAgIG9rID0gcHNhc2ltX3NlcmlhbGlzZV9zaXplX3QoCisgICAgICAgICZycG9zLCAmcnJlbWFpbiwKKyAgICAgICAgcGxhaW50ZXh0X2xlbmd0aCk7CiAgICAgaWYgKCFvaykgewogICAgICAgICBnb3RvIGZhaWw7CiAgICAgfQpAQCAtMjkwLDE3ICszMTgsMjMgQEAKICAgICAgICAgZ290byBmYWlsOwogICAgIH0KIAotICAgIG9rID0gcHNhc2ltX3NlcnZlcl9kZXNlcmlhbGlzZV9wc2FfYWVhZF9vcGVyYXRpb25fdCgmcG9zLCAmcmVtYWluaW5nLCAmb3BlcmF0aW9uKTsKKyAgICBvayA9IHBzYXNpbV9zZXJ2ZXJfZGVzZXJpYWxpc2VfcHNhX2FlYWRfb3BlcmF0aW9uX3QoCisgICAgICAgICZwb3MsICZyZW1haW5pbmcsCisgICAgICAgICZvcGVyYXRpb24pOwogICAgIGlmICghb2spIHsKICAgICAgICAgZ290byBmYWlsOwogICAgIH0KIAotICAgIG9rID0gcHNhc2ltX2Rlc2VyaWFsaXNlX21iZWR0bHNfc3ZjX2tleV9pZF90KCZwb3MsICZyZW1haW5pbmcsICZrZXkpOworICAgIG9rID0gcHNhc2ltX2Rlc2VyaWFsaXNlX21iZWR0bHNfc3ZjX2tleV9pZF90KAorICAgICAgICAmcG9zLCAmcmVtYWluaW5nLAorICAgICAgICAma2V5KTsKICAgICBpZiAoIW9rKSB7CiAgICAgICAgIGdvdG8gZmFpbDsKICAgICB9CiAKLSAgICBvayA9IHBzYXNpbV9kZXNlcmlhbGlzZV9wc2FfYWxnb3JpdGhtX3QoJnBvcywgJnJlbWFpbmluZywgJmFsZyk7CisgICAgb2sgPSBwc2FzaW1fZGVzZXJpYWxpc2VfcHNhX2FsZ29yaXRobV90KAorICAgICAgICAmcG9zLCAmcmVtYWluaW5nLAorICAgICAgICAmYWxnKTsKICAgICBpZiAoIW9rKSB7CiAgICAgICAgIGdvdG8gZmFpbDsKICAgICB9CkBAIC0zMzIsMTIgKzM2NiwxNiBAQAogICAgICAgICBnb3RvIGZhaWw7CiAgICAgfQogCi0gICAgb2sgPSBwc2FzaW1fc2VyaWFsaXNlX3BzYV9zdGF0dXNfdCgmcnBvcywgJnJyZW1haW4sIHN0YXR1cyk7CisgICAgb2sgPSBwc2FzaW1fc2VyaWFsaXNlX3BzYV9zdGF0dXNfdCgKKyAgICAgICAgJnJwb3MsICZycmVtYWluLAorICAgICAgICBzdGF0dXMpOwogICAgIGlmICghb2spIHsKICAgICAgICAgZ290byBmYWlsOwogICAgIH0KIAotICAgIG9rID0gcHNhc2ltX3NlcnZlcl9zZXJpYWxpc2VfcHNhX2FlYWRfb3BlcmF0aW9uX3QoJnJwb3MsICZycmVtYWluLCBvcGVyYXRpb24pOworICAgIG9rID0gcHNhc2ltX3NlcnZlcl9zZXJpYWxpc2VfcHNhX2FlYWRfb3BlcmF0aW9uX3QoCisgICAgICAgICZycG9zLCAmcnJlbWFpbiwKKyAgICAgICAgb3BlcmF0aW9uLCAwKTsKICAgICBpZiAoIW9rKSB7CiAgICAgICAgIGdvdG8gZmFpbDsKICAgICB9CkBAIC0zODEsMzcgKzQxOSw1MSBAQAogICAgICAgICBnb3RvIGZhaWw7CiAgICAgfQogCi0gICAgb2sgPSBwc2FzaW1fZGVzZXJpYWxpc2VfbWJlZHRsc19zdmNfa2V5X2lkX3QoJnBvcywgJnJlbWFpbmluZywgJmtleSk7CisgICAgb2sgPSBwc2FzaW1fZGVzZXJpYWxpc2VfbWJlZHRsc19zdmNfa2V5X2lkX3QoCisgICAgICAgICZwb3MsICZyZW1haW5pbmcsCisgICAgICAgICZrZXkpOwogICAgIGlmICghb2spIHsKICAgICAgICAgZ290byBmYWlsOwogICAgIH0KIAotICAgIG9rID0gcHNhc2ltX2Rlc2VyaWFsaXNlX3BzYV9hbGdvcml0aG1fdCgmcG9zLCAmcmVtYWluaW5nLCAmYWxnKTsKKyAgICBvayA9IHBzYXNpbV9kZXNlcmlhbGlzZV9wc2FfYWxnb3JpdGhtX3QoCisgICAgICAgICZwb3MsICZyZW1haW5pbmcsCisgICAgICAgICZhbGcpOwogICAgIGlmICghb2spIHsKICAgICAgICAgZ290byBmYWlsOwogICAgIH0KIAotICAgIG9rID0gcHNhc2ltX2Rlc2VyaWFsaXNlX2J1ZmZlcigmcG9zLCAmcmVtYWluaW5nLCAmbm9uY2UsICZub25jZV9sZW5ndGgpOworICAgIG9rID0gcHNhc2ltX2Rlc2VyaWFsaXNlX2J1ZmZlcigKKyAgICAgICAgJnBvcywgJnJlbWFpbmluZywKKyAgICAgICAgJm5vbmNlLCAmbm9uY2VfbGVuZ3RoKTsKICAgICBpZiAoIW9rKSB7CiAgICAgICAgIGdvdG8gZmFpbDsKICAgICB9CiAKLSAgICBvayA9IHBzYXNpbV9kZXNlcmlhbGlzZV9idWZmZXIoJnBvcywgJnJlbWFpbmluZywgJmFkZGl0aW9uYWxfZGF0YSwgJmFkZGl0aW9uYWxfZGF0YV9sZW5ndGgpOworICAgIG9rID0gcHNhc2ltX2Rlc2VyaWFsaXNlX2J1ZmZlcigKKyAgICAgICAgJnBvcywgJnJlbWFpbmluZywKKyAgICAgICAgJmFkZGl0aW9uYWxfZGF0YSwgJmFkZGl0aW9uYWxfZGF0YV9sZW5ndGgpOwogICAgIGlmICghb2spIHsKICAgICAgICAgZ290byBmYWlsOwogICAgIH0KIAotICAgIG9rID0gcHNhc2ltX2Rlc2VyaWFsaXNlX2J1ZmZlcigmcG9zLCAmcmVtYWluaW5nLCAmcGxhaW50ZXh0LCAmcGxhaW50ZXh0X2xlbmd0aCk7CisgICAgb2sgPSBwc2FzaW1fZGVzZXJpYWxpc2VfYnVmZmVyKAorICAgICAgICAmcG9zLCAmcmVtYWluaW5nLAorICAgICAgICAmcGxhaW50ZXh0LCAmcGxhaW50ZXh0X2xlbmd0aCk7CiAgICAgaWYgKCFvaykgewogICAgICAgICBnb3RvIGZhaWw7CiAgICAgfQogCi0gICAgb2sgPSBwc2FzaW1fZGVzZXJpYWxpc2VfYnVmZmVyKCZwb3MsICZyZW1haW5pbmcsICZjaXBoZXJ0ZXh0LCAmY2lwaGVydGV4dF9zaXplKTsKKyAgICBvayA9IHBzYXNpbV9kZXNlcmlhbGlzZV9idWZmZXIoCisgICAgICAgICZwb3MsICZyZW1haW5pbmcsCisgICAgICAgICZjaXBoZXJ0ZXh0LCAmY2lwaGVydGV4dF9zaXplKTsKICAgICBpZiAoIW9rKSB7CiAgICAgICAgIGdvdG8gZmFpbDsKICAgICB9CiAKLSAgICBvayA9IHBzYXNpbV9kZXNlcmlhbGlzZV9zaXplX3QoJnBvcywgJnJlbWFpbmluZywgJmNpcGhlcnRleHRfbGVuZ3RoKTsKKyAgICBvayA9IHBzYXNpbV9kZXNlcmlhbGlzZV9zaXplX3QoCisgICAgICAgICZwb3MsICZyZW1haW5pbmcsCisgICAgICAgICZjaXBoZXJ0ZXh0X2xlbmd0aCk7CiAgICAgaWYgKCFvaykgewogICAgICAgICBnb3RvIGZhaWw7CiAgICAgfQpAQCAtNDQ4LDE3ICs1MDAsMjMgQEAKICAgICAgICAgZ290byBmYWlsOwogICAgIH0KIAotICAgIG9rID0gcHNhc2ltX3NlcmlhbGlzZV9wc2Ffc3RhdHVzX3QoJnJwb3MsICZycmVtYWluLCBzdGF0dXMpOworICAgIG9rID0gcHNhc2ltX3NlcmlhbGlzZV9wc2Ffc3RhdHVzX3QoCisgICAgICAgICZycG9zLCAmcnJlbWFpbiwKKyAgICAgICAgc3RhdHVzKTsKICAgICBpZiAoIW9rKSB7CiAgICAgICAgIGdvdG8gZmFpbDsKICAgICB9CiAKLSAgICBvayA9IHBzYXNpbV9zZXJpYWxpc2VfYnVmZmVyKCZycG9zLCAmcnJlbWFpbiwgY2lwaGVydGV4dCwgY2lwaGVydGV4dF9zaXplKTsKKyAgICBvayA9IHBzYXNpbV9zZXJpYWxpc2VfYnVmZmVyKAorICAgICAgICAmcnBvcywgJnJyZW1haW4sCisgICAgICAgIGNpcGhlcnRleHQsIGNpcGhlcnRleHRfc2l6ZSk7CiAgICAgaWYgKCFvaykgewogICAgICAgICBnb3RvIGZhaWw7CiAgICAgfQogCi0gICAgb2sgPSBwc2FzaW1fc2VyaWFsaXNlX3NpemVfdCgmcnBvcywgJnJyZW1haW4sIGNpcGhlcnRleHRfbGVuZ3RoKTsKKyAgICBvayA9IHBzYXNpbV9zZXJpYWxpc2Vfc2l6ZV90KAorICAgICAgICAmcnBvcywgJnJyZW1haW4sCisgICAgICAgIGNpcGhlcnRleHRfbGVuZ3RoKTsKICAgICBpZiAoIW9rKSB7CiAgICAgICAgIGdvdG8gZmFpbDsKICAgICB9CkBAIC01MDQsMTcgKzU2MiwyMyBAQAogICAgICAgICBnb3RvIGZhaWw7CiAgICAgfQogCi0gICAgb2sgPSBwc2FzaW1fc2VydmVyX2Rlc2VyaWFsaXNlX3BzYV9hZWFkX29wZXJhdGlvbl90KCZwb3MsICZyZW1haW5pbmcsICZvcGVyYXRpb24pOworICAgIG9rID0gcHNhc2ltX3NlcnZlcl9kZXNlcmlhbGlzZV9wc2FfYWVhZF9vcGVyYXRpb25fdCgKKyAgICAgICAgJnBvcywgJnJlbWFpbmluZywKKyAgICAgICAgJm9wZXJhdGlvbik7CiAgICAgaWYgKCFvaykgewogICAgICAgICBnb3RvIGZhaWw7CiAgICAgfQogCi0gICAgb2sgPSBwc2FzaW1fZGVzZXJpYWxpc2VfbWJlZHRsc19zdmNfa2V5X2lkX3QoJnBvcywgJnJlbWFpbmluZywgJmtleSk7CisgICAgb2sgPSBwc2FzaW1fZGVzZXJpYWxpc2VfbWJlZHRsc19zdmNfa2V5X2lkX3QoCisgICAgICAgICZwb3MsICZyZW1haW5pbmcsCisgICAgICAgICZrZXkpOwogICAgIGlmICghb2spIHsKICAgICAgICAgZ290byBmYWlsOwogICAgIH0KIAotICAgIG9rID0gcHNhc2ltX2Rlc2VyaWFsaXNlX3BzYV9hbGdvcml0aG1fdCgmcG9zLCAmcmVtYWluaW5nLCAmYWxnKTsKKyAgICBvayA9IHBzYXNpbV9kZXNlcmlhbGlzZV9wc2FfYWxnb3JpdGhtX3QoCisgICAgICAgICZwb3MsICZyZW1haW5pbmcsCisgICAgICAgICZhbGcpOwogICAgIGlmICghb2spIHsKICAgICAgICAgZ290byBmYWlsOwogICAgIH0KQEAgLTU0NiwxMiArNjEwLDE2IEBACiAgICAgICAgIGdvdG8gZmFpbDsKICAgICB9CiAKLSAgICBvayA9IHBzYXNpbV9zZXJpYWxpc2VfcHNhX3N0YXR1c190KCZycG9zLCAmcnJlbWFpbiwgc3RhdHVzKTsKKyAgICBvayA9IHBzYXNpbV9zZXJpYWxpc2VfcHNhX3N0YXR1c190KAorICAgICAgICAmcnBvcywgJnJyZW1haW4sCisgICAgICAgIHN0YXR1cyk7CiAgICAgaWYgKCFvaykgewogICAgICAgICBnb3RvIGZhaWw7CiAgICAgfQogCi0gICAgb2sgPSBwc2FzaW1fc2VydmVyX3NlcmlhbGlzZV9wc2FfYWVhZF9vcGVyYXRpb25fdCgmcnBvcywgJnJyZW1haW4sIG9wZXJhdGlvbik7CisgICAgb2sgPSBwc2FzaW1fc2VydmVyX3NlcmlhbGlzZV9wc2FfYWVhZF9vcGVyYXRpb25fdCgKKyAgICAgICAgJnJwb3MsICZycmVtYWluLAorICAgICAgICBvcGVyYXRpb24sIDApOwogICAgIGlmICghb2spIHsKICAgICAgICAgZ290byBmYWlsOwogICAgIH0KQEAgLTU5MSwyNyArNjU5LDM3IEBACiAgICAgICAgIGdvdG8gZmFpbDsKICAgICB9CiAKLSAgICBvayA9IHBzYXNpbV9zZXJ2ZXJfZGVzZXJpYWxpc2VfcHNhX2FlYWRfb3BlcmF0aW9uX3QoJnBvcywgJnJlbWFpbmluZywgJm9wZXJhdGlvbik7CisgICAgb2sgPSBwc2FzaW1fc2VydmVyX2Rlc2VyaWFsaXNlX3BzYV9hZWFkX29wZXJhdGlvbl90KAorICAgICAgICAmcG9zLCAmcmVtYWluaW5nLAorICAgICAgICAmb3BlcmF0aW9uKTsKICAgICBpZiAoIW9rKSB7CiAgICAgICAgIGdvdG8gZmFpbDsKICAgICB9CiAKLSAgICBvayA9IHBzYXNpbV9kZXNlcmlhbGlzZV9idWZmZXIoJnBvcywgJnJlbWFpbmluZywgJmNpcGhlcnRleHQsICZjaXBoZXJ0ZXh0X3NpemUpOworICAgIG9rID0gcHNhc2ltX2Rlc2VyaWFsaXNlX2J1ZmZlcigKKyAgICAgICAgJnBvcywgJnJlbWFpbmluZywKKyAgICAgICAgJmNpcGhlcnRleHQsICZjaXBoZXJ0ZXh0X3NpemUpOwogICAgIGlmICghb2spIHsKICAgICAgICAgZ290byBmYWlsOwogICAgIH0KIAotICAgIG9rID0gcHNhc2ltX2Rlc2VyaWFsaXNlX3NpemVfdCgmcG9zLCAmcmVtYWluaW5nLCAmY2lwaGVydGV4dF9sZW5ndGgpOworICAgIG9rID0gcHNhc2ltX2Rlc2VyaWFsaXNlX3NpemVfdCgKKyAgICAgICAgJnBvcywgJnJlbWFpbmluZywKKyAgICAgICAgJmNpcGhlcnRleHRfbGVuZ3RoKTsKICAgICBpZiAoIW9rKSB7CiAgICAgICAgIGdvdG8gZmFpbDsKICAgICB9CiAKLSAgICBvayA9IHBzYXNpbV9kZXNlcmlhbGlzZV9idWZmZXIoJnBvcywgJnJlbWFpbmluZywgJnRhZywgJnRhZ19zaXplKTsKKyAgICBvayA9IHBzYXNpbV9kZXNlcmlhbGlzZV9idWZmZXIoCisgICAgICAgICZwb3MsICZyZW1haW5pbmcsCisgICAgICAgICZ0YWcsICZ0YWdfc2l6ZSk7CiAgICAgaWYgKCFvaykgewogICAgICAgICBnb3RvIGZhaWw7CiAgICAgfQogCi0gICAgb2sgPSBwc2FzaW1fZGVzZXJpYWxpc2Vfc2l6ZV90KCZwb3MsICZyZW1haW5pbmcsICZ0YWdfbGVuZ3RoKTsKKyAgICBvayA9IHBzYXNpbV9kZXNlcmlhbGlzZV9zaXplX3QoCisgICAgICAgICZwb3MsICZyZW1haW5pbmcsCisgICAgICAgICZ0YWdfbGVuZ3RoKTsKICAgICBpZiAoIW9rKSB7CiAgICAgICAgIGdvdG8gZmFpbDsKICAgICB9CkBAIC02NDksMzIgKzcyNyw0NCBAQAogICAgICAgICBnb3RvIGZhaWw7CiAgICAgfQogCi0gICAgb2sgPSBwc2FzaW1fc2VyaWFsaXNlX3BzYV9zdGF0dXNfdCgmcnBvcywgJnJyZW1haW4sIHN0YXR1cyk7CisgICAgb2sgPSBwc2FzaW1fc2VyaWFsaXNlX3BzYV9zdGF0dXNfdCgKKyAgICAgICAgJnJwb3MsICZycmVtYWluLAorICAgICAgICBzdGF0dXMpOwogICAgIGlmICghb2spIHsKICAgICAgICAgZ290byBmYWlsOwogICAgIH0KIAotICAgIG9rID0gcHNhc2ltX3NlcnZlcl9zZXJpYWxpc2VfcHNhX2FlYWRfb3BlcmF0aW9uX3QoJnJwb3MsICZycmVtYWluLCBvcGVyYXRpb24pOworICAgIG9rID0gcHNhc2ltX3NlcnZlcl9zZXJpYWxpc2VfcHNhX2FlYWRfb3BlcmF0aW9uX3QoCisgICAgICAgICZycG9zLCAmcnJlbWFpbiwKKyAgICAgICAgb3BlcmF0aW9uLCAxKTsKICAgICBpZiAoIW9rKSB7CiAgICAgICAgIGdvdG8gZmFpbDsKICAgICB9CiAKLSAgICBvayA9IHBzYXNpbV9zZXJpYWxpc2VfYnVmZmVyKCZycG9zLCAmcnJlbWFpbiwgY2lwaGVydGV4dCwgY2lwaGVydGV4dF9zaXplKTsKKyAgICBvayA9IHBzYXNpbV9zZXJpYWxpc2VfYnVmZmVyKAorICAgICAgICAmcnBvcywgJnJyZW1haW4sCisgICAgICAgIGNpcGhlcnRleHQsIGNpcGhlcnRleHRfc2l6ZSk7CiAgICAgaWYgKCFvaykgewogICAgICAgICBnb3RvIGZhaWw7CiAgICAgfQogCi0gICAgb2sgPSBwc2FzaW1fc2VyaWFsaXNlX3NpemVfdCgmcnBvcywgJnJyZW1haW4sIGNpcGhlcnRleHRfbGVuZ3RoKTsKKyAgICBvayA9IHBzYXNpbV9zZXJpYWxpc2Vfc2l6ZV90KAorICAgICAgICAmcnBvcywgJnJyZW1haW4sCisgICAgICAgIGNpcGhlcnRleHRfbGVuZ3RoKTsKICAgICBpZiAoIW9rKSB7CiAgICAgICAgIGdvdG8gZmFpbDsKICAgICB9CiAKLSAgICBvayA9IHBzYXNpbV9zZXJpYWxpc2VfYnVmZmVyKCZycG9zLCAmcnJlbWFpbiwgdGFnLCB0YWdfc2l6ZSk7CisgICAgb2sgPSBwc2FzaW1fc2VyaWFsaXNlX2J1ZmZlcigKKyAgICAgICAgJnJwb3MsICZycmVtYWluLAorICAgICAgICB0YWcsIHRhZ19zaXplKTsKICAgICBpZiAoIW9rKSB7CiAgICAgICAgIGdvdG8gZmFpbDsKICAgICB9CiAKLSAgICBvayA9IHBzYXNpbV9zZXJpYWxpc2Vfc2l6ZV90KCZycG9zLCAmcnJlbWFpbiwgdGFnX2xlbmd0aCk7CisgICAgb2sgPSBwc2FzaW1fc2VyaWFsaXNlX3NpemVfdCgKKyAgICAgICAgJnJwb3MsICZycmVtYWluLAorICAgICAgICB0YWdfbGVuZ3RoKTsKICAgICBpZiAoIW9rKSB7CiAgICAgICAgIGdvdG8gZmFpbDsKICAgICB9CkBAIC03MTcsMTcgKzgwNywyMyBAQAogICAgICAgICBnb3RvIGZhaWw7CiAgICAgfQogCi0gICAgb2sgPSBwc2FzaW1fc2VydmVyX2Rlc2VyaWFsaXNlX3BzYV9hZWFkX29wZXJhdGlvbl90KCZwb3MsICZyZW1haW5pbmcsICZvcGVyYXRpb24pOworICAgIG9rID0gcHNhc2ltX3NlcnZlcl9kZXNlcmlhbGlzZV9wc2FfYWVhZF9vcGVyYXRpb25fdCgKKyAgICAgICAgJnBvcywgJnJlbWFpbmluZywKKyAgICAgICAgJm9wZXJhdGlvbik7CiAgICAgaWYgKCFvaykgewogICAgICAgICBnb3RvIGZhaWw7CiAgICAgfQogCi0gICAgb2sgPSBwc2FzaW1fZGVzZXJpYWxpc2VfYnVmZmVyKCZwb3MsICZyZW1haW5pbmcsICZub25jZSwgJm5vbmNlX3NpemUpOworICAgIG9rID0gcHNhc2ltX2Rlc2VyaWFsaXNlX2J1ZmZlcigKKyAgICAgICAgJnBvcywgJnJlbWFpbmluZywKKyAgICAgICAgJm5vbmNlLCAmbm9uY2Vfc2l6ZSk7CiAgICAgaWYgKCFvaykgewogICAgICAgICBnb3RvIGZhaWw7CiAgICAgfQogCi0gICAgb2sgPSBwc2FzaW1fZGVzZXJpYWxpc2Vfc2l6ZV90KCZwb3MsICZyZW1haW5pbmcsICZub25jZV9sZW5ndGgpOworICAgIG9rID0gcHNhc2ltX2Rlc2VyaWFsaXNlX3NpemVfdCgKKyAgICAgICAgJnBvcywgJnJlbWFpbmluZywKKyAgICAgICAgJm5vbmNlX2xlbmd0aCk7CiAgICAgaWYgKCFvaykgewogICAgICAgICBnb3RvIGZhaWw7CiAgICAgfQpAQCAtNzYxLDIyICs4NTcsMzAgQEAKICAgICAgICAgZ290byBmYWlsOwogICAgIH0KIAotICAgIG9rID0gcHNhc2ltX3NlcmlhbGlzZV9wc2Ffc3RhdHVzX3QoJnJwb3MsICZycmVtYWluLCBzdGF0dXMpOworICAgIG9rID0gcHNhc2ltX3NlcmlhbGlzZV9wc2Ffc3RhdHVzX3QoCisgICAgICAgICZycG9zLCAmcnJlbWFpbiwKKyAgICAgICAgc3RhdHVzKTsKICAgICBpZiAoIW9rKSB7CiAgICAgICAgIGdvdG8gZmFpbDsKICAgICB9CiAKLSAgICBvayA9IHBzYXNpbV9zZXJ2ZXJfc2VyaWFsaXNlX3BzYV9hZWFkX29wZXJhdGlvbl90KCZycG9zLCAmcnJlbWFpbiwgb3BlcmF0aW9uKTsKKyAgICBvayA9IHBzYXNpbV9zZXJ2ZXJfc2VyaWFsaXNlX3BzYV9hZWFkX29wZXJhdGlvbl90KAorICAgICAgICAmcnBvcywgJnJyZW1haW4sCisgICAgICAgIG9wZXJhdGlvbiwgMCk7CiAgICAgaWYgKCFvaykgewogICAgICAgICBnb3RvIGZhaWw7CiAgICAgfQogCi0gICAgb2sgPSBwc2FzaW1fc2VyaWFsaXNlX2J1ZmZlcigmcnBvcywgJnJyZW1haW4sIG5vbmNlLCBub25jZV9zaXplKTsKKyAgICBvayA9IHBzYXNpbV9zZXJpYWxpc2VfYnVmZmVyKAorICAgICAgICAmcnBvcywgJnJyZW1haW4sCisgICAgICAgIG5vbmNlLCBub25jZV9zaXplKTsKICAgICBpZiAoIW9rKSB7CiAgICAgICAgIGdvdG8gZmFpbDsKICAgICB9CiAKLSAgICBvayA9IHBzYXNpbV9zZXJpYWxpc2Vfc2l6ZV90KCZycG9zLCAmcnJlbWFpbiwgbm9uY2VfbGVuZ3RoKTsKKyAgICBvayA9IHBzYXNpbV9zZXJpYWxpc2Vfc2l6ZV90KAorICAgICAgICAmcnBvcywgJnJyZW1haW4sCisgICAgICAgIG5vbmNlX2xlbmd0aCk7CiAgICAgaWYgKCFvaykgewogICAgICAgICBnb3RvIGZhaWw7CiAgICAgfQpAQCAtODE2LDE3ICs5MjAsMjMgQEAKICAgICAgICAgZ290byBmYWlsOwogICAgIH0KIAotICAgIG9rID0gcHNhc2ltX3NlcnZlcl9kZXNlcmlhbGlzZV9wc2FfYWVhZF9vcGVyYXRpb25fdCgmcG9zLCAmcmVtYWluaW5nLCAmb3BlcmF0aW9uKTsKKyAgICBvayA9IHBzYXNpbV9zZXJ2ZXJfZGVzZXJpYWxpc2VfcHNhX2FlYWRfb3BlcmF0aW9uX3QoCisgICAgICAgICZwb3MsICZyZW1haW5pbmcsCisgICAgICAgICZvcGVyYXRpb24pOwogICAgIGlmICghb2spIHsKICAgICAgICAgZ290byBmYWlsOwogICAgIH0KIAotICAgIG9rID0gcHNhc2ltX2Rlc2VyaWFsaXNlX3NpemVfdCgmcG9zLCAmcmVtYWluaW5nLCAmYWRfbGVuZ3RoKTsKKyAgICBvayA9IHBzYXNpbV9kZXNlcmlhbGlzZV9zaXplX3QoCisgICAgICAgICZwb3MsICZyZW1haW5pbmcsCisgICAgICAgICZhZF9sZW5ndGgpOwogICAgIGlmICghb2spIHsKICAgICAgICAgZ290byBmYWlsOwogICAgIH0KIAotICAgIG9rID0gcHNhc2ltX2Rlc2VyaWFsaXNlX3NpemVfdCgmcG9zLCAmcmVtYWluaW5nLCAmcGxhaW50ZXh0X2xlbmd0aCk7CisgICAgb2sgPSBwc2FzaW1fZGVzZXJpYWxpc2Vfc2l6ZV90KAorICAgICAgICAmcG9zLCAmcmVtYWluaW5nLAorICAgICAgICAmcGxhaW50ZXh0X2xlbmd0aCk7CiAgICAgaWYgKCFvaykgewogICAgICAgICBnb3RvIGZhaWw7CiAgICAgfQpAQCAtODU4LDEyICs5NjgsMTYgQEAKICAgICAgICAgZ290byBmYWlsOwogICAgIH0KIAotICAgIG9rID0gcHNhc2ltX3NlcmlhbGlzZV9wc2Ffc3RhdHVzX3QoJnJwb3MsICZycmVtYWluLCBzdGF0dXMpOworICAgIG9rID0gcHNhc2ltX3NlcmlhbGlzZV9wc2Ffc3RhdHVzX3QoCisgICAgICAgICZycG9zLCAmcnJlbWFpbiwKKyAgICAgICAgc3RhdHVzKTsKICAgICBpZiAoIW9rKSB7CiAgICAgICAgIGdvdG8gZmFpbDsKICAgICB9CiAKLSAgICBvayA9IHBzYXNpbV9zZXJ2ZXJfc2VyaWFsaXNlX3BzYV9hZWFkX29wZXJhdGlvbl90KCZycG9zLCAmcnJlbWFpbiwgb3BlcmF0aW9uKTsKKyAgICBvayA9IHBzYXNpbV9zZXJ2ZXJfc2VyaWFsaXNlX3BzYV9hZWFkX29wZXJhdGlvbl90KAorICAgICAgICAmcnBvcywgJnJyZW1haW4sCisgICAgICAgIG9wZXJhdGlvbiwgMCk7CiAgICAgaWYgKCFvaykgewogICAgICAgICBnb3RvIGZhaWw7CiAgICAgfQpAQCAtODk5LDEyICsxMDEzLDE2IEBACiAgICAgICAgIGdvdG8gZmFpbDsKICAgICB9CiAKLSAgICBvayA9IHBzYXNpbV9zZXJ2ZXJfZGVzZXJpYWxpc2VfcHNhX2FlYWRfb3BlcmF0aW9uX3QoJnBvcywgJnJlbWFpbmluZywgJm9wZXJhdGlvbik7CisgICAgb2sgPSBwc2FzaW1fc2VydmVyX2Rlc2VyaWFsaXNlX3BzYV9hZWFkX29wZXJhdGlvbl90KAorICAgICAgICAmcG9zLCAmcmVtYWluaW5nLAorICAgICAgICAmb3BlcmF0aW9uKTsKICAgICBpZiAoIW9rKSB7CiAgICAgICAgIGdvdG8gZmFpbDsKICAgICB9CiAKLSAgICBvayA9IHBzYXNpbV9kZXNlcmlhbGlzZV9idWZmZXIoJnBvcywgJnJlbWFpbmluZywgJm5vbmNlLCAmbm9uY2VfbGVuZ3RoKTsKKyAgICBvayA9IHBzYXNpbV9kZXNlcmlhbGlzZV9idWZmZXIoCisgICAgICAgICZwb3MsICZyZW1haW5pbmcsCisgICAgICAgICZub25jZSwgJm5vbmNlX2xlbmd0aCk7CiAgICAgaWYgKCFvaykgewogICAgICAgICBnb3RvIGZhaWw7CiAgICAgfQpAQCAtOTM1LDEyICsxMDUzLDE2IEBACiAgICAgICAgIGdvdG8gZmFpbDsKICAgICB9CiAKLSAgICBvayA9IHBzYXNpbV9zZXJpYWxpc2VfcHNhX3N0YXR1c190KCZycG9zLCAmcnJlbWFpbiwgc3RhdHVzKTsKKyAgICBvayA9IHBzYXNpbV9zZXJpYWxpc2VfcHNhX3N0YXR1c190KAorICAgICAgICAmcnBvcywgJnJyZW1haW4sCisgICAgICAgIHN0YXR1cyk7CiAgICAgaWYgKCFvaykgewogICAgICAgICBnb3RvIGZhaWw7CiAgICAgfQogCi0gICAgb2sgPSBwc2FzaW1fc2VydmVyX3NlcmlhbGlzZV9wc2FfYWVhZF9vcGVyYXRpb25fdCgmcnBvcywgJnJyZW1haW4sIG9wZXJhdGlvbik7CisgICAgb2sgPSBwc2FzaW1fc2VydmVyX3NlcmlhbGlzZV9wc2FfYWVhZF9vcGVyYXRpb25fdCgKKyAgICAgICAgJnJwb3MsICZycmVtYWluLAorICAgICAgICBvcGVyYXRpb24sIDApOwogICAgIGlmICghb2spIHsKICAgICAgICAgZ290byBmYWlsOwogICAgIH0KQEAgLTk4MywyMiArMTEwNSwzMCBAQAogICAgICAgICBnb3RvIGZhaWw7CiAgICAgfQogCi0gICAgb2sgPSBwc2FzaW1fc2VydmVyX2Rlc2VyaWFsaXNlX3BzYV9hZWFkX29wZXJhdGlvbl90KCZwb3MsICZyZW1haW5pbmcsICZvcGVyYXRpb24pOworICAgIG9rID0gcHNhc2ltX3NlcnZlcl9kZXNlcmlhbGlzZV9wc2FfYWVhZF9vcGVyYXRpb25fdCgKKyAgICAgICAgJnBvcywgJnJlbWFpbmluZywKKyAgICAgICAgJm9wZXJhdGlvbik7CiAgICAgaWYgKCFvaykgewogICAgICAgICBnb3RvIGZhaWw7CiAgICAgfQogCi0gICAgb2sgPSBwc2FzaW1fZGVzZXJpYWxpc2VfYnVmZmVyKCZwb3MsICZyZW1haW5pbmcsICZpbnB1dCwgJmlucHV0X2xlbmd0aCk7CisgICAgb2sgPSBwc2FzaW1fZGVzZXJpYWxpc2VfYnVmZmVyKAorICAgICAgICAmcG9zLCAmcmVtYWluaW5nLAorICAgICAgICAmaW5wdXQsICZpbnB1dF9sZW5ndGgpOwogICAgIGlmICghb2spIHsKICAgICAgICAgZ290byBmYWlsOwogICAgIH0KIAotICAgIG9rID0gcHNhc2ltX2Rlc2VyaWFsaXNlX2J1ZmZlcigmcG9zLCAmcmVtYWluaW5nLCAmb3V0cHV0LCAmb3V0cHV0X3NpemUpOworICAgIG9rID0gcHNhc2ltX2Rlc2VyaWFsaXNlX2J1ZmZlcigKKyAgICAgICAgJnBvcywgJnJlbWFpbmluZywKKyAgICAgICAgJm91dHB1dCwgJm91dHB1dF9zaXplKTsKICAgICBpZiAoIW9rKSB7CiAgICAgICAgIGdvdG8gZmFpbDsKICAgICB9CiAKLSAgICBvayA9IHBzYXNpbV9kZXNlcmlhbGlzZV9zaXplX3QoJnBvcywgJnJlbWFpbmluZywgJm91dHB1dF9sZW5ndGgpOworICAgIG9rID0gcHNhc2ltX2Rlc2VyaWFsaXNlX3NpemVfdCgKKyAgICAgICAgJnBvcywgJnJlbWFpbmluZywKKyAgICAgICAgJm91dHB1dF9sZW5ndGgpOwogICAgIGlmICghb2spIHsKICAgICAgICAgZ290byBmYWlsOwogICAgIH0KQEAgLTEwMzMsMjIgKzExNjMsMzAgQEAKICAgICAgICAgZ290byBmYWlsOwogICAgIH0KIAotICAgIG9rID0gcHNhc2ltX3NlcmlhbGlzZV9wc2Ffc3RhdHVzX3QoJnJwb3MsICZycmVtYWluLCBzdGF0dXMpOworICAgIG9rID0gcHNhc2ltX3NlcmlhbGlzZV9wc2Ffc3RhdHVzX3QoCisgICAgICAgICZycG9zLCAmcnJlbWFpbiwKKyAgICAgICAgc3RhdHVzKTsKICAgICBpZiAoIW9rKSB7CiAgICAgICAgIGdvdG8gZmFpbDsKICAgICB9CiAKLSAgICBvayA9IHBzYXNpbV9zZXJ2ZXJfc2VyaWFsaXNlX3BzYV9hZWFkX29wZXJhdGlvbl90KCZycG9zLCAmcnJlbWFpbiwgb3BlcmF0aW9uKTsKKyAgICBvayA9IHBzYXNpbV9zZXJ2ZXJfc2VyaWFsaXNlX3BzYV9hZWFkX29wZXJhdGlvbl90KAorICAgICAgICAmcnBvcywgJnJyZW1haW4sCisgICAgICAgIG9wZXJhdGlvbiwgMCk7CiAgICAgaWYgKCFvaykgewogICAgICAgICBnb3RvIGZhaWw7CiAgICAgfQogCi0gICAgb2sgPSBwc2FzaW1fc2VyaWFsaXNlX2J1ZmZlcigmcnBvcywgJnJyZW1haW4sIG91dHB1dCwgb3V0cHV0X3NpemUpOworICAgIG9rID0gcHNhc2ltX3NlcmlhbGlzZV9idWZmZXIoCisgICAgICAgICZycG9zLCAmcnJlbWFpbiwKKyAgICAgICAgb3V0cHV0LCBvdXRwdXRfc2l6ZSk7CiAgICAgaWYgKCFvaykgewogICAgICAgICBnb3RvIGZhaWw7CiAgICAgfQogCi0gICAgb2sgPSBwc2FzaW1fc2VyaWFsaXNlX3NpemVfdCgmcnBvcywgJnJyZW1haW4sIG91dHB1dF9sZW5ndGgpOworICAgIG9rID0gcHNhc2ltX3NlcmlhbGlzZV9zaXplX3QoCisgICAgICAgICZycG9zLCAmcnJlbWFpbiwKKyAgICAgICAgb3V0cHV0X2xlbmd0aCk7CiAgICAgaWYgKCFvaykgewogICAgICAgICBnb3RvIGZhaWw7CiAgICAgfQpAQCAtMTA5MCwxMiArMTIyOCwxNiBAQAogICAgICAgICBnb3RvIGZhaWw7CiAgICAgfQogCi0gICAgb2sgPSBwc2FzaW1fc2VydmVyX2Rlc2VyaWFsaXNlX3BzYV9hZWFkX29wZXJhdGlvbl90KCZwb3MsICZyZW1haW5pbmcsICZvcGVyYXRpb24pOworICAgIG9rID0gcHNhc2ltX3NlcnZlcl9kZXNlcmlhbGlzZV9wc2FfYWVhZF9vcGVyYXRpb25fdCgKKyAgICAgICAgJnBvcywgJnJlbWFpbmluZywKKyAgICAgICAgJm9wZXJhdGlvbik7CiAgICAgaWYgKCFvaykgewogICAgICAgICBnb3RvIGZhaWw7CiAgICAgfQogCi0gICAgb2sgPSBwc2FzaW1fZGVzZXJpYWxpc2VfYnVmZmVyKCZwb3MsICZyZW1haW5pbmcsICZpbnB1dCwgJmlucHV0X2xlbmd0aCk7CisgICAgb2sgPSBwc2FzaW1fZGVzZXJpYWxpc2VfYnVmZmVyKAorICAgICAgICAmcG9zLCAmcmVtYWluaW5nLAorICAgICAgICAmaW5wdXQsICZpbnB1dF9sZW5ndGgpOwogICAgIGlmICghb2spIHsKICAgICAgICAgZ290byBmYWlsOwogICAgIH0KQEAgLTExMjYsMTIgKzEyNjgsMTYgQEAKICAgICAgICAgZ290byBmYWlsOwogICAgIH0KIAotICAgIG9rID0gcHNhc2ltX3NlcmlhbGlzZV9wc2Ffc3RhdHVzX3QoJnJwb3MsICZycmVtYWluLCBzdGF0dXMpOworICAgIG9rID0gcHNhc2ltX3NlcmlhbGlzZV9wc2Ffc3RhdHVzX3QoCisgICAgICAgICZycG9zLCAmcnJlbWFpbiwKKyAgICAgICAgc3RhdHVzKTsKICAgICBpZiAoIW9rKSB7CiAgICAgICAgIGdvdG8gZmFpbDsKICAgICB9CiAKLSAgICBvayA9IHBzYXNpbV9zZXJ2ZXJfc2VyaWFsaXNlX3BzYV9hZWFkX29wZXJhdGlvbl90KCZycG9zLCAmcnJlbWFpbiwgb3BlcmF0aW9uKTsKKyAgICBvayA9IHBzYXNpbV9zZXJ2ZXJfc2VyaWFsaXNlX3BzYV9hZWFkX29wZXJhdGlvbl90KAorICAgICAgICAmcnBvcywgJnJyZW1haW4sCisgICAgICAgIG9wZXJhdGlvbiwgMCk7CiAgICAgaWYgKCFvaykgewogICAgICAgICBnb3RvIGZhaWw7CiAgICAgfQpAQCAtMTE3NCwyMiArMTMyMCwzMCBAQAogICAgICAgICBnb3RvIGZhaWw7CiAgICAgfQogCi0gICAgb2sgPSBwc2FzaW1fc2VydmVyX2Rlc2VyaWFsaXNlX3BzYV9hZWFkX29wZXJhdGlvbl90KCZwb3MsICZyZW1haW5pbmcsICZvcGVyYXRpb24pOworICAgIG9rID0gcHNhc2ltX3NlcnZlcl9kZXNlcmlhbGlzZV9wc2FfYWVhZF9vcGVyYXRpb25fdCgKKyAgICAgICAgJnBvcywgJnJlbWFpbmluZywKKyAgICAgICAgJm9wZXJhdGlvbik7CiAgICAgaWYgKCFvaykgewogICAgICAgICBnb3RvIGZhaWw7CiAgICAgfQogCi0gICAgb2sgPSBwc2FzaW1fZGVzZXJpYWxpc2VfYnVmZmVyKCZwb3MsICZyZW1haW5pbmcsICZwbGFpbnRleHQsICZwbGFpbnRleHRfc2l6ZSk7CisgICAgb2sgPSBwc2FzaW1fZGVzZXJpYWxpc2VfYnVmZmVyKAorICAgICAgICAmcG9zLCAmcmVtYWluaW5nLAorICAgICAgICAmcGxhaW50ZXh0LCAmcGxhaW50ZXh0X3NpemUpOwogICAgIGlmICghb2spIHsKICAgICAgICAgZ290byBmYWlsOwogICAgIH0KIAotICAgIG9rID0gcHNhc2ltX2Rlc2VyaWFsaXNlX3NpemVfdCgmcG9zLCAmcmVtYWluaW5nLCAmcGxhaW50ZXh0X2xlbmd0aCk7CisgICAgb2sgPSBwc2FzaW1fZGVzZXJpYWxpc2Vfc2l6ZV90KAorICAgICAgICAmcG9zLCAmcmVtYWluaW5nLAorICAgICAgICAmcGxhaW50ZXh0X2xlbmd0aCk7CiAgICAgaWYgKCFvaykgewogICAgICAgICBnb3RvIGZhaWw7CiAgICAgfQogCi0gICAgb2sgPSBwc2FzaW1fZGVzZXJpYWxpc2VfYnVmZmVyKCZwb3MsICZyZW1haW5pbmcsICZ0YWcsICZ0YWdfbGVuZ3RoKTsKKyAgICBvayA9IHBzYXNpbV9kZXNlcmlhbGlzZV9idWZmZXIoCisgICAgICAgICZwb3MsICZyZW1haW5pbmcsCisgICAgICAgICZ0YWcsICZ0YWdfbGVuZ3RoKTsKICAgICBpZiAoIW9rKSB7CiAgICAgICAgIGdvdG8gZmFpbDsKICAgICB9CkBAIC0xMjI0LDIyICsxMzc4LDMwIEBACiAgICAgICAgIGdvdG8gZmFpbDsKICAgICB9CiAKLSAgICBvayA9IHBzYXNpbV9zZXJpYWxpc2VfcHNhX3N0YXR1c190KCZycG9zLCAmcnJlbWFpbiwgc3RhdHVzKTsKKyAgICBvayA9IHBzYXNpbV9zZXJpYWxpc2VfcHNhX3N0YXR1c190KAorICAgICAgICAmcnBvcywgJnJyZW1haW4sCisgICAgICAgIHN0YXR1cyk7CiAgICAgaWYgKCFvaykgewogICAgICAgICBnb3RvIGZhaWw7CiAgICAgfQogCi0gICAgb2sgPSBwc2FzaW1fc2VydmVyX3NlcmlhbGlzZV9wc2FfYWVhZF9vcGVyYXRpb25fdCgmcnBvcywgJnJyZW1haW4sIG9wZXJhdGlvbik7CisgICAgb2sgPSBwc2FzaW1fc2VydmVyX3NlcmlhbGlzZV9wc2FfYWVhZF9vcGVyYXRpb25fdCgKKyAgICAgICAgJnJwb3MsICZycmVtYWluLAorICAgICAgICBvcGVyYXRpb24sIDApOwogICAgIGlmICghb2spIHsKICAgICAgICAgZ290byBmYWlsOwogICAgIH0KIAotICAgIG9rID0gcHNhc2ltX3NlcmlhbGlzZV9idWZmZXIoJnJwb3MsICZycmVtYWluLCBwbGFpbnRleHQsIHBsYWludGV4dF9zaXplKTsKKyAgICBvayA9IHBzYXNpbV9zZXJpYWxpc2VfYnVmZmVyKAorICAgICAgICAmcnBvcywgJnJyZW1haW4sCisgICAgICAgIHBsYWludGV4dCwgcGxhaW50ZXh0X3NpemUpOwogICAgIGlmICghb2spIHsKICAgICAgICAgZ290byBmYWlsOwogICAgIH0KIAotICAgIG9rID0gcHNhc2ltX3NlcmlhbGlzZV9zaXplX3QoJnJwb3MsICZycmVtYWluLCBwbGFpbnRleHRfbGVuZ3RoKTsKKyAgICBvayA9IHBzYXNpbV9zZXJpYWxpc2Vfc2l6ZV90KAorICAgICAgICAmcnBvcywgJnJyZW1haW4sCisgICAgICAgIHBsYWludGV4dF9sZW5ndGgpOwogICAgIGlmICghb2spIHsKICAgICAgICAgZ290byBmYWlsOwogICAgIH0KQEAgLTEyNjIsNiArMTQyNCwxMzM1IEBACiB9CiAKIC8vIFJldHVybnMgMSBmb3Igc3VjY2VzcywgMCBmb3IgZmFpbHVyZQoraW50IHBzYV9hc3ltbWV0cmljX2RlY3J5cHRfd3JhcHBlcigKKyAgICB1aW50OF90ICppbl9wYXJhbXMsIHNpemVfdCBpbl9wYXJhbXNfbGVuLAorICAgIHVpbnQ4X3QgKipvdXRfcGFyYW1zLCBzaXplX3QgKm91dF9wYXJhbXNfbGVuKQoreworICAgIHBzYV9zdGF0dXNfdCBzdGF0dXMgPSBQU0FfRVJST1JfQ09SUlVQVElPTl9ERVRFQ1RFRDsKKyAgICBtYmVkdGxzX3N2Y19rZXlfaWRfdCBrZXk7CisgICAgcHNhX2FsZ29yaXRobV90IGFsZzsKKyAgICB1aW50OF90ICppbnB1dCA9IE5VTEw7CisgICAgc2l6ZV90IGlucHV0X2xlbmd0aDsKKyAgICB1aW50OF90ICpzYWx0ID0gTlVMTDsKKyAgICBzaXplX3Qgc2FsdF9sZW5ndGg7CisgICAgdWludDhfdCAqb3V0cHV0ID0gTlVMTDsKKyAgICBzaXplX3Qgb3V0cHV0X3NpemU7CisgICAgc2l6ZV90IG91dHB1dF9sZW5ndGg7CisKKyAgICB1aW50OF90ICpwb3MgPSBpbl9wYXJhbXM7CisgICAgc2l6ZV90IHJlbWFpbmluZyA9IGluX3BhcmFtc19sZW47CisgICAgdWludDhfdCAqcmVzdWx0ID0gTlVMTDsKKyAgICBpbnQgb2s7CisKKyAgICBvayA9IHBzYXNpbV9kZXNlcmlhbGlzZV9iZWdpbigmcG9zLCAmcmVtYWluaW5nKTsKKyAgICBpZiAoIW9rKSB7CisgICAgICAgIGdvdG8gZmFpbDsKKyAgICB9CisKKyAgICBvayA9IHBzYXNpbV9kZXNlcmlhbGlzZV9tYmVkdGxzX3N2Y19rZXlfaWRfdCgKKyAgICAgICAgJnBvcywgJnJlbWFpbmluZywKKyAgICAgICAgJmtleSk7CisgICAgaWYgKCFvaykgeworICAgICAgICBnb3RvIGZhaWw7CisgICAgfQorCisgICAgb2sgPSBwc2FzaW1fZGVzZXJpYWxpc2VfcHNhX2FsZ29yaXRobV90KAorICAgICAgICAmcG9zLCAmcmVtYWluaW5nLAorICAgICAgICAmYWxnKTsKKyAgICBpZiAoIW9rKSB7CisgICAgICAgIGdvdG8gZmFpbDsKKyAgICB9CisKKyAgICBvayA9IHBzYXNpbV9kZXNlcmlhbGlzZV9idWZmZXIoCisgICAgICAgICZwb3MsICZyZW1haW5pbmcsCisgICAgICAgICZpbnB1dCwgJmlucHV0X2xlbmd0aCk7CisgICAgaWYgKCFvaykgeworICAgICAgICBnb3RvIGZhaWw7CisgICAgfQorCisgICAgb2sgPSBwc2FzaW1fZGVzZXJpYWxpc2VfYnVmZmVyKAorICAgICAgICAmcG9zLCAmcmVtYWluaW5nLAorICAgICAgICAmc2FsdCwgJnNhbHRfbGVuZ3RoKTsKKyAgICBpZiAoIW9rKSB7CisgICAgICAgIGdvdG8gZmFpbDsKKyAgICB9CisKKyAgICBvayA9IHBzYXNpbV9kZXNlcmlhbGlzZV9idWZmZXIoCisgICAgICAgICZwb3MsICZyZW1haW5pbmcsCisgICAgICAgICZvdXRwdXQsICZvdXRwdXRfc2l6ZSk7CisgICAgaWYgKCFvaykgeworICAgICAgICBnb3RvIGZhaWw7CisgICAgfQorCisgICAgb2sgPSBwc2FzaW1fZGVzZXJpYWxpc2Vfc2l6ZV90KAorICAgICAgICAmcG9zLCAmcmVtYWluaW5nLAorICAgICAgICAmb3V0cHV0X2xlbmd0aCk7CisgICAgaWYgKCFvaykgeworICAgICAgICBnb3RvIGZhaWw7CisgICAgfQorCisgICAgLy8gTm93IHdlIGNhbGwgdGhlIGFjdHVhbCB0YXJnZXQgZnVuY3Rpb24KKworICAgIHN0YXR1cyA9IHBzYV9hc3ltbWV0cmljX2RlY3J5cHQoCisgICAgICAgIGtleSwKKyAgICAgICAgYWxnLAorICAgICAgICBpbnB1dCwgaW5wdXRfbGVuZ3RoLAorICAgICAgICBzYWx0LCBzYWx0X2xlbmd0aCwKKyAgICAgICAgb3V0cHV0LCBvdXRwdXRfc2l6ZSwKKyAgICAgICAgJm91dHB1dF9sZW5ndGgKKyAgICAgICAgKTsKKworICAgIC8vIE5PVEU6IFNob3VsZCByZWFsbHkgY2hlY2sgdGhlcmUgaXMgbm8gb3ZlcmZsb3cgYXMgd2UgZ28gYWxvbmcuCisgICAgc2l6ZV90IHJlc3VsdF9zaXplID0KKyAgICAgICAgcHNhc2ltX3NlcmlhbGlzZV9iZWdpbl9uZWVkcygpICsKKyAgICAgICAgcHNhc2ltX3NlcmlhbGlzZV9wc2Ffc3RhdHVzX3RfbmVlZHMoc3RhdHVzKSArCisgICAgICAgIHBzYXNpbV9zZXJpYWxpc2VfYnVmZmVyX25lZWRzKG91dHB1dCwgb3V0cHV0X3NpemUpICsKKyAgICAgICAgcHNhc2ltX3NlcmlhbGlzZV9zaXplX3RfbmVlZHMob3V0cHV0X2xlbmd0aCk7CisKKyAgICByZXN1bHQgPSBtYWxsb2MocmVzdWx0X3NpemUpOworICAgIGlmIChyZXN1bHQgPT0gTlVMTCkgeworICAgICAgICBnb3RvIGZhaWw7CisgICAgfQorCisgICAgdWludDhfdCAqcnBvcyA9IHJlc3VsdDsKKyAgICBzaXplX3QgcnJlbWFpbiA9IHJlc3VsdF9zaXplOworCisgICAgb2sgPSBwc2FzaW1fc2VyaWFsaXNlX2JlZ2luKCZycG9zLCAmcnJlbWFpbik7CisgICAgaWYgKCFvaykgeworICAgICAgICBnb3RvIGZhaWw7CisgICAgfQorCisgICAgb2sgPSBwc2FzaW1fc2VyaWFsaXNlX3BzYV9zdGF0dXNfdCgKKyAgICAgICAgJnJwb3MsICZycmVtYWluLAorICAgICAgICBzdGF0dXMpOworICAgIGlmICghb2spIHsKKyAgICAgICAgZ290byBmYWlsOworICAgIH0KKworICAgIG9rID0gcHNhc2ltX3NlcmlhbGlzZV9idWZmZXIoCisgICAgICAgICZycG9zLCAmcnJlbWFpbiwKKyAgICAgICAgb3V0cHV0LCBvdXRwdXRfc2l6ZSk7CisgICAgaWYgKCFvaykgeworICAgICAgICBnb3RvIGZhaWw7CisgICAgfQorCisgICAgb2sgPSBwc2FzaW1fc2VyaWFsaXNlX3NpemVfdCgKKyAgICAgICAgJnJwb3MsICZycmVtYWluLAorICAgICAgICBvdXRwdXRfbGVuZ3RoKTsKKyAgICBpZiAoIW9rKSB7CisgICAgICAgIGdvdG8gZmFpbDsKKyAgICB9CisKKyAgICAqb3V0X3BhcmFtcyA9IHJlc3VsdDsKKyAgICAqb3V0X3BhcmFtc19sZW4gPSByZXN1bHRfc2l6ZTsKKworICAgIGZyZWUoaW5wdXQpOworICAgIGZyZWUoc2FsdCk7CisgICAgZnJlZShvdXRwdXQpOworCisgICAgcmV0dXJuIDE7ICAgLy8gc3VjY2VzcworCitmYWlsOgorICAgIGZyZWUocmVzdWx0KTsKKworICAgIGZyZWUoaW5wdXQpOworICAgIGZyZWUoc2FsdCk7CisgICAgZnJlZShvdXRwdXQpOworCisgICAgcmV0dXJuIDA7ICAgICAgIC8vIFRoaXMgc2hvdWxkbid0IGhhcHBlbiEKK30KKworLy8gUmV0dXJucyAxIGZvciBzdWNjZXNzLCAwIGZvciBmYWlsdXJlCitpbnQgcHNhX2FzeW1tZXRyaWNfZW5jcnlwdF93cmFwcGVyKAorICAgIHVpbnQ4X3QgKmluX3BhcmFtcywgc2l6ZV90IGluX3BhcmFtc19sZW4sCisgICAgdWludDhfdCAqKm91dF9wYXJhbXMsIHNpemVfdCAqb3V0X3BhcmFtc19sZW4pCit7CisgICAgcHNhX3N0YXR1c190IHN0YXR1cyA9IFBTQV9FUlJPUl9DT1JSVVBUSU9OX0RFVEVDVEVEOworICAgIG1iZWR0bHNfc3ZjX2tleV9pZF90IGtleTsKKyAgICBwc2FfYWxnb3JpdGhtX3QgYWxnOworICAgIHVpbnQ4X3QgKmlucHV0ID0gTlVMTDsKKyAgICBzaXplX3QgaW5wdXRfbGVuZ3RoOworICAgIHVpbnQ4X3QgKnNhbHQgPSBOVUxMOworICAgIHNpemVfdCBzYWx0X2xlbmd0aDsKKyAgICB1aW50OF90ICpvdXRwdXQgPSBOVUxMOworICAgIHNpemVfdCBvdXRwdXRfc2l6ZTsKKyAgICBzaXplX3Qgb3V0cHV0X2xlbmd0aDsKKworICAgIHVpbnQ4X3QgKnBvcyA9IGluX3BhcmFtczsKKyAgICBzaXplX3QgcmVtYWluaW5nID0gaW5fcGFyYW1zX2xlbjsKKyAgICB1aW50OF90ICpyZXN1bHQgPSBOVUxMOworICAgIGludCBvazsKKworICAgIG9rID0gcHNhc2ltX2Rlc2VyaWFsaXNlX2JlZ2luKCZwb3MsICZyZW1haW5pbmcpOworICAgIGlmICghb2spIHsKKyAgICAgICAgZ290byBmYWlsOworICAgIH0KKworICAgIG9rID0gcHNhc2ltX2Rlc2VyaWFsaXNlX21iZWR0bHNfc3ZjX2tleV9pZF90KAorICAgICAgICAmcG9zLCAmcmVtYWluaW5nLAorICAgICAgICAma2V5KTsKKyAgICBpZiAoIW9rKSB7CisgICAgICAgIGdvdG8gZmFpbDsKKyAgICB9CisKKyAgICBvayA9IHBzYXNpbV9kZXNlcmlhbGlzZV9wc2FfYWxnb3JpdGhtX3QoCisgICAgICAgICZwb3MsICZyZW1haW5pbmcsCisgICAgICAgICZhbGcpOworICAgIGlmICghb2spIHsKKyAgICAgICAgZ290byBmYWlsOworICAgIH0KKworICAgIG9rID0gcHNhc2ltX2Rlc2VyaWFsaXNlX2J1ZmZlcigKKyAgICAgICAgJnBvcywgJnJlbWFpbmluZywKKyAgICAgICAgJmlucHV0LCAmaW5wdXRfbGVuZ3RoKTsKKyAgICBpZiAoIW9rKSB7CisgICAgICAgIGdvdG8gZmFpbDsKKyAgICB9CisKKyAgICBvayA9IHBzYXNpbV9kZXNlcmlhbGlzZV9idWZmZXIoCisgICAgICAgICZwb3MsICZyZW1haW5pbmcsCisgICAgICAgICZzYWx0LCAmc2FsdF9sZW5ndGgpOworICAgIGlmICghb2spIHsKKyAgICAgICAgZ290byBmYWlsOworICAgIH0KKworICAgIG9rID0gcHNhc2ltX2Rlc2VyaWFsaXNlX2J1ZmZlcigKKyAgICAgICAgJnBvcywgJnJlbWFpbmluZywKKyAgICAgICAgJm91dHB1dCwgJm91dHB1dF9zaXplKTsKKyAgICBpZiAoIW9rKSB7CisgICAgICAgIGdvdG8gZmFpbDsKKyAgICB9CisKKyAgICBvayA9IHBzYXNpbV9kZXNlcmlhbGlzZV9zaXplX3QoCisgICAgICAgICZwb3MsICZyZW1haW5pbmcsCisgICAgICAgICZvdXRwdXRfbGVuZ3RoKTsKKyAgICBpZiAoIW9rKSB7CisgICAgICAgIGdvdG8gZmFpbDsKKyAgICB9CisKKyAgICAvLyBOb3cgd2UgY2FsbCB0aGUgYWN0dWFsIHRhcmdldCBmdW5jdGlvbgorCisgICAgc3RhdHVzID0gcHNhX2FzeW1tZXRyaWNfZW5jcnlwdCgKKyAgICAgICAga2V5LAorICAgICAgICBhbGcsCisgICAgICAgIGlucHV0LCBpbnB1dF9sZW5ndGgsCisgICAgICAgIHNhbHQsIHNhbHRfbGVuZ3RoLAorICAgICAgICBvdXRwdXQsIG91dHB1dF9zaXplLAorICAgICAgICAmb3V0cHV0X2xlbmd0aAorICAgICAgICApOworCisgICAgLy8gTk9URTogU2hvdWxkIHJlYWxseSBjaGVjayB0aGVyZSBpcyBubyBvdmVyZmxvdyBhcyB3ZSBnbyBhbG9uZy4KKyAgICBzaXplX3QgcmVzdWx0X3NpemUgPQorICAgICAgICBwc2FzaW1fc2VyaWFsaXNlX2JlZ2luX25lZWRzKCkgKworICAgICAgICBwc2FzaW1fc2VyaWFsaXNlX3BzYV9zdGF0dXNfdF9uZWVkcyhzdGF0dXMpICsKKyAgICAgICAgcHNhc2ltX3NlcmlhbGlzZV9idWZmZXJfbmVlZHMob3V0cHV0LCBvdXRwdXRfc2l6ZSkgKworICAgICAgICBwc2FzaW1fc2VyaWFsaXNlX3NpemVfdF9uZWVkcyhvdXRwdXRfbGVuZ3RoKTsKKworICAgIHJlc3VsdCA9IG1hbGxvYyhyZXN1bHRfc2l6ZSk7CisgICAgaWYgKHJlc3VsdCA9PSBOVUxMKSB7CisgICAgICAgIGdvdG8gZmFpbDsKKyAgICB9CisKKyAgICB1aW50OF90ICpycG9zID0gcmVzdWx0OworICAgIHNpemVfdCBycmVtYWluID0gcmVzdWx0X3NpemU7CisKKyAgICBvayA9IHBzYXNpbV9zZXJpYWxpc2VfYmVnaW4oJnJwb3MsICZycmVtYWluKTsKKyAgICBpZiAoIW9rKSB7CisgICAgICAgIGdvdG8gZmFpbDsKKyAgICB9CisKKyAgICBvayA9IHBzYXNpbV9zZXJpYWxpc2VfcHNhX3N0YXR1c190KAorICAgICAgICAmcnBvcywgJnJyZW1haW4sCisgICAgICAgIHN0YXR1cyk7CisgICAgaWYgKCFvaykgeworICAgICAgICBnb3RvIGZhaWw7CisgICAgfQorCisgICAgb2sgPSBwc2FzaW1fc2VyaWFsaXNlX2J1ZmZlcigKKyAgICAgICAgJnJwb3MsICZycmVtYWluLAorICAgICAgICBvdXRwdXQsIG91dHB1dF9zaXplKTsKKyAgICBpZiAoIW9rKSB7CisgICAgICAgIGdvdG8gZmFpbDsKKyAgICB9CisKKyAgICBvayA9IHBzYXNpbV9zZXJpYWxpc2Vfc2l6ZV90KAorICAgICAgICAmcnBvcywgJnJyZW1haW4sCisgICAgICAgIG91dHB1dF9sZW5ndGgpOworICAgIGlmICghb2spIHsKKyAgICAgICAgZ290byBmYWlsOworICAgIH0KKworICAgICpvdXRfcGFyYW1zID0gcmVzdWx0OworICAgICpvdXRfcGFyYW1zX2xlbiA9IHJlc3VsdF9zaXplOworCisgICAgZnJlZShpbnB1dCk7CisgICAgZnJlZShzYWx0KTsKKyAgICBmcmVlKG91dHB1dCk7CisKKyAgICByZXR1cm4gMTsgICAvLyBzdWNjZXNzCisKK2ZhaWw6CisgICAgZnJlZShyZXN1bHQpOworCisgICAgZnJlZShpbnB1dCk7CisgICAgZnJlZShzYWx0KTsKKyAgICBmcmVlKG91dHB1dCk7CisKKyAgICByZXR1cm4gMDsgICAgICAgLy8gVGhpcyBzaG91bGRuJ3QgaGFwcGVuIQorfQorCisvLyBSZXR1cm5zIDEgZm9yIHN1Y2Nlc3MsIDAgZm9yIGZhaWx1cmUKK2ludCBwc2FfY2lwaGVyX2Fib3J0X3dyYXBwZXIoCisgICAgdWludDhfdCAqaW5fcGFyYW1zLCBzaXplX3QgaW5fcGFyYW1zX2xlbiwKKyAgICB1aW50OF90ICoqb3V0X3BhcmFtcywgc2l6ZV90ICpvdXRfcGFyYW1zX2xlbikKK3sKKyAgICBwc2Ffc3RhdHVzX3Qgc3RhdHVzID0gUFNBX0VSUk9SX0NPUlJVUFRJT05fREVURUNURUQ7CisgICAgcHNhX2NpcGhlcl9vcGVyYXRpb25fdCAqb3BlcmF0aW9uOworCisgICAgdWludDhfdCAqcG9zID0gaW5fcGFyYW1zOworICAgIHNpemVfdCByZW1haW5pbmcgPSBpbl9wYXJhbXNfbGVuOworICAgIHVpbnQ4X3QgKnJlc3VsdCA9IE5VTEw7CisgICAgaW50IG9rOworCisgICAgb2sgPSBwc2FzaW1fZGVzZXJpYWxpc2VfYmVnaW4oJnBvcywgJnJlbWFpbmluZyk7CisgICAgaWYgKCFvaykgeworICAgICAgICBnb3RvIGZhaWw7CisgICAgfQorCisgICAgb2sgPSBwc2FzaW1fc2VydmVyX2Rlc2VyaWFsaXNlX3BzYV9jaXBoZXJfb3BlcmF0aW9uX3QoCisgICAgICAgICZwb3MsICZyZW1haW5pbmcsCisgICAgICAgICZvcGVyYXRpb24pOworICAgIGlmICghb2spIHsKKyAgICAgICAgZ290byBmYWlsOworICAgIH0KKworICAgIC8vIE5vdyB3ZSBjYWxsIHRoZSBhY3R1YWwgdGFyZ2V0IGZ1bmN0aW9uCisKKyAgICBzdGF0dXMgPSBwc2FfY2lwaGVyX2Fib3J0KAorICAgICAgICBvcGVyYXRpb24KKyAgICAgICAgKTsKKworICAgIC8vIE5PVEU6IFNob3VsZCByZWFsbHkgY2hlY2sgdGhlcmUgaXMgbm8gb3ZlcmZsb3cgYXMgd2UgZ28gYWxvbmcuCisgICAgc2l6ZV90IHJlc3VsdF9zaXplID0KKyAgICAgICAgcHNhc2ltX3NlcmlhbGlzZV9iZWdpbl9uZWVkcygpICsKKyAgICAgICAgcHNhc2ltX3NlcmlhbGlzZV9wc2Ffc3RhdHVzX3RfbmVlZHMoc3RhdHVzKSArCisgICAgICAgIHBzYXNpbV9zZXJ2ZXJfc2VyaWFsaXNlX3BzYV9jaXBoZXJfb3BlcmF0aW9uX3RfbmVlZHMob3BlcmF0aW9uKTsKKworICAgIHJlc3VsdCA9IG1hbGxvYyhyZXN1bHRfc2l6ZSk7CisgICAgaWYgKHJlc3VsdCA9PSBOVUxMKSB7CisgICAgICAgIGdvdG8gZmFpbDsKKyAgICB9CisKKyAgICB1aW50OF90ICpycG9zID0gcmVzdWx0OworICAgIHNpemVfdCBycmVtYWluID0gcmVzdWx0X3NpemU7CisKKyAgICBvayA9IHBzYXNpbV9zZXJpYWxpc2VfYmVnaW4oJnJwb3MsICZycmVtYWluKTsKKyAgICBpZiAoIW9rKSB7CisgICAgICAgIGdvdG8gZmFpbDsKKyAgICB9CisKKyAgICBvayA9IHBzYXNpbV9zZXJpYWxpc2VfcHNhX3N0YXR1c190KAorICAgICAgICAmcnBvcywgJnJyZW1haW4sCisgICAgICAgIHN0YXR1cyk7CisgICAgaWYgKCFvaykgeworICAgICAgICBnb3RvIGZhaWw7CisgICAgfQorCisgICAgb2sgPSBwc2FzaW1fc2VydmVyX3NlcmlhbGlzZV9wc2FfY2lwaGVyX29wZXJhdGlvbl90KAorICAgICAgICAmcnBvcywgJnJyZW1haW4sCisgICAgICAgIG9wZXJhdGlvbiwgMSk7CisgICAgaWYgKCFvaykgeworICAgICAgICBnb3RvIGZhaWw7CisgICAgfQorCisgICAgKm91dF9wYXJhbXMgPSByZXN1bHQ7CisgICAgKm91dF9wYXJhbXNfbGVuID0gcmVzdWx0X3NpemU7CisKKyAgICByZXR1cm4gMTsgICAvLyBzdWNjZXNzCisKK2ZhaWw6CisgICAgZnJlZShyZXN1bHQpOworCisgICAgcmV0dXJuIDA7ICAgICAgIC8vIFRoaXMgc2hvdWxkbid0IGhhcHBlbiEKK30KKworLy8gUmV0dXJucyAxIGZvciBzdWNjZXNzLCAwIGZvciBmYWlsdXJlCitpbnQgcHNhX2NpcGhlcl9kZWNyeXB0X3dyYXBwZXIoCisgICAgdWludDhfdCAqaW5fcGFyYW1zLCBzaXplX3QgaW5fcGFyYW1zX2xlbiwKKyAgICB1aW50OF90ICoqb3V0X3BhcmFtcywgc2l6ZV90ICpvdXRfcGFyYW1zX2xlbikKK3sKKyAgICBwc2Ffc3RhdHVzX3Qgc3RhdHVzID0gUFNBX0VSUk9SX0NPUlJVUFRJT05fREVURUNURUQ7CisgICAgbWJlZHRsc19zdmNfa2V5X2lkX3Qga2V5OworICAgIHBzYV9hbGdvcml0aG1fdCBhbGc7CisgICAgdWludDhfdCAqaW5wdXQgPSBOVUxMOworICAgIHNpemVfdCBpbnB1dF9sZW5ndGg7CisgICAgdWludDhfdCAqb3V0cHV0ID0gTlVMTDsKKyAgICBzaXplX3Qgb3V0cHV0X3NpemU7CisgICAgc2l6ZV90IG91dHB1dF9sZW5ndGg7CisKKyAgICB1aW50OF90ICpwb3MgPSBpbl9wYXJhbXM7CisgICAgc2l6ZV90IHJlbWFpbmluZyA9IGluX3BhcmFtc19sZW47CisgICAgdWludDhfdCAqcmVzdWx0ID0gTlVMTDsKKyAgICBpbnQgb2s7CisKKyAgICBvayA9IHBzYXNpbV9kZXNlcmlhbGlzZV9iZWdpbigmcG9zLCAmcmVtYWluaW5nKTsKKyAgICBpZiAoIW9rKSB7CisgICAgICAgIGdvdG8gZmFpbDsKKyAgICB9CisKKyAgICBvayA9IHBzYXNpbV9kZXNlcmlhbGlzZV9tYmVkdGxzX3N2Y19rZXlfaWRfdCgKKyAgICAgICAgJnBvcywgJnJlbWFpbmluZywKKyAgICAgICAgJmtleSk7CisgICAgaWYgKCFvaykgeworICAgICAgICBnb3RvIGZhaWw7CisgICAgfQorCisgICAgb2sgPSBwc2FzaW1fZGVzZXJpYWxpc2VfcHNhX2FsZ29yaXRobV90KAorICAgICAgICAmcG9zLCAmcmVtYWluaW5nLAorICAgICAgICAmYWxnKTsKKyAgICBpZiAoIW9rKSB7CisgICAgICAgIGdvdG8gZmFpbDsKKyAgICB9CisKKyAgICBvayA9IHBzYXNpbV9kZXNlcmlhbGlzZV9idWZmZXIoCisgICAgICAgICZwb3MsICZyZW1haW5pbmcsCisgICAgICAgICZpbnB1dCwgJmlucHV0X2xlbmd0aCk7CisgICAgaWYgKCFvaykgeworICAgICAgICBnb3RvIGZhaWw7CisgICAgfQorCisgICAgb2sgPSBwc2FzaW1fZGVzZXJpYWxpc2VfYnVmZmVyKAorICAgICAgICAmcG9zLCAmcmVtYWluaW5nLAorICAgICAgICAmb3V0cHV0LCAmb3V0cHV0X3NpemUpOworICAgIGlmICghb2spIHsKKyAgICAgICAgZ290byBmYWlsOworICAgIH0KKworICAgIG9rID0gcHNhc2ltX2Rlc2VyaWFsaXNlX3NpemVfdCgKKyAgICAgICAgJnBvcywgJnJlbWFpbmluZywKKyAgICAgICAgJm91dHB1dF9sZW5ndGgpOworICAgIGlmICghb2spIHsKKyAgICAgICAgZ290byBmYWlsOworICAgIH0KKworICAgIC8vIE5vdyB3ZSBjYWxsIHRoZSBhY3R1YWwgdGFyZ2V0IGZ1bmN0aW9uCisKKyAgICBzdGF0dXMgPSBwc2FfY2lwaGVyX2RlY3J5cHQoCisgICAgICAgIGtleSwKKyAgICAgICAgYWxnLAorICAgICAgICBpbnB1dCwgaW5wdXRfbGVuZ3RoLAorICAgICAgICBvdXRwdXQsIG91dHB1dF9zaXplLAorICAgICAgICAmb3V0cHV0X2xlbmd0aAorICAgICAgICApOworCisgICAgLy8gTk9URTogU2hvdWxkIHJlYWxseSBjaGVjayB0aGVyZSBpcyBubyBvdmVyZmxvdyBhcyB3ZSBnbyBhbG9uZy4KKyAgICBzaXplX3QgcmVzdWx0X3NpemUgPQorICAgICAgICBwc2FzaW1fc2VyaWFsaXNlX2JlZ2luX25lZWRzKCkgKworICAgICAgICBwc2FzaW1fc2VyaWFsaXNlX3BzYV9zdGF0dXNfdF9uZWVkcyhzdGF0dXMpICsKKyAgICAgICAgcHNhc2ltX3NlcmlhbGlzZV9idWZmZXJfbmVlZHMob3V0cHV0LCBvdXRwdXRfc2l6ZSkgKworICAgICAgICBwc2FzaW1fc2VyaWFsaXNlX3NpemVfdF9uZWVkcyhvdXRwdXRfbGVuZ3RoKTsKKworICAgIHJlc3VsdCA9IG1hbGxvYyhyZXN1bHRfc2l6ZSk7CisgICAgaWYgKHJlc3VsdCA9PSBOVUxMKSB7CisgICAgICAgIGdvdG8gZmFpbDsKKyAgICB9CisKKyAgICB1aW50OF90ICpycG9zID0gcmVzdWx0OworICAgIHNpemVfdCBycmVtYWluID0gcmVzdWx0X3NpemU7CisKKyAgICBvayA9IHBzYXNpbV9zZXJpYWxpc2VfYmVnaW4oJnJwb3MsICZycmVtYWluKTsKKyAgICBpZiAoIW9rKSB7CisgICAgICAgIGdvdG8gZmFpbDsKKyAgICB9CisKKyAgICBvayA9IHBzYXNpbV9zZXJpYWxpc2VfcHNhX3N0YXR1c190KAorICAgICAgICAmcnBvcywgJnJyZW1haW4sCisgICAgICAgIHN0YXR1cyk7CisgICAgaWYgKCFvaykgeworICAgICAgICBnb3RvIGZhaWw7CisgICAgfQorCisgICAgb2sgPSBwc2FzaW1fc2VyaWFsaXNlX2J1ZmZlcigKKyAgICAgICAgJnJwb3MsICZycmVtYWluLAorICAgICAgICBvdXRwdXQsIG91dHB1dF9zaXplKTsKKyAgICBpZiAoIW9rKSB7CisgICAgICAgIGdvdG8gZmFpbDsKKyAgICB9CisKKyAgICBvayA9IHBzYXNpbV9zZXJpYWxpc2Vfc2l6ZV90KAorICAgICAgICAmcnBvcywgJnJyZW1haW4sCisgICAgICAgIG91dHB1dF9sZW5ndGgpOworICAgIGlmICghb2spIHsKKyAgICAgICAgZ290byBmYWlsOworICAgIH0KKworICAgICpvdXRfcGFyYW1zID0gcmVzdWx0OworICAgICpvdXRfcGFyYW1zX2xlbiA9IHJlc3VsdF9zaXplOworCisgICAgZnJlZShpbnB1dCk7CisgICAgZnJlZShvdXRwdXQpOworCisgICAgcmV0dXJuIDE7ICAgLy8gc3VjY2VzcworCitmYWlsOgorICAgIGZyZWUocmVzdWx0KTsKKworICAgIGZyZWUoaW5wdXQpOworICAgIGZyZWUob3V0cHV0KTsKKworICAgIHJldHVybiAwOyAgICAgICAvLyBUaGlzIHNob3VsZG4ndCBoYXBwZW4hCit9CisKKy8vIFJldHVybnMgMSBmb3Igc3VjY2VzcywgMCBmb3IgZmFpbHVyZQoraW50IHBzYV9jaXBoZXJfZGVjcnlwdF9zZXR1cF93cmFwcGVyKAorICAgIHVpbnQ4X3QgKmluX3BhcmFtcywgc2l6ZV90IGluX3BhcmFtc19sZW4sCisgICAgdWludDhfdCAqKm91dF9wYXJhbXMsIHNpemVfdCAqb3V0X3BhcmFtc19sZW4pCit7CisgICAgcHNhX3N0YXR1c190IHN0YXR1cyA9IFBTQV9FUlJPUl9DT1JSVVBUSU9OX0RFVEVDVEVEOworICAgIHBzYV9jaXBoZXJfb3BlcmF0aW9uX3QgKm9wZXJhdGlvbjsKKyAgICBtYmVkdGxzX3N2Y19rZXlfaWRfdCBrZXk7CisgICAgcHNhX2FsZ29yaXRobV90IGFsZzsKKworICAgIHVpbnQ4X3QgKnBvcyA9IGluX3BhcmFtczsKKyAgICBzaXplX3QgcmVtYWluaW5nID0gaW5fcGFyYW1zX2xlbjsKKyAgICB1aW50OF90ICpyZXN1bHQgPSBOVUxMOworICAgIGludCBvazsKKworICAgIG9rID0gcHNhc2ltX2Rlc2VyaWFsaXNlX2JlZ2luKCZwb3MsICZyZW1haW5pbmcpOworICAgIGlmICghb2spIHsKKyAgICAgICAgZ290byBmYWlsOworICAgIH0KKworICAgIG9rID0gcHNhc2ltX3NlcnZlcl9kZXNlcmlhbGlzZV9wc2FfY2lwaGVyX29wZXJhdGlvbl90KAorICAgICAgICAmcG9zLCAmcmVtYWluaW5nLAorICAgICAgICAmb3BlcmF0aW9uKTsKKyAgICBpZiAoIW9rKSB7CisgICAgICAgIGdvdG8gZmFpbDsKKyAgICB9CisKKyAgICBvayA9IHBzYXNpbV9kZXNlcmlhbGlzZV9tYmVkdGxzX3N2Y19rZXlfaWRfdCgKKyAgICAgICAgJnBvcywgJnJlbWFpbmluZywKKyAgICAgICAgJmtleSk7CisgICAgaWYgKCFvaykgeworICAgICAgICBnb3RvIGZhaWw7CisgICAgfQorCisgICAgb2sgPSBwc2FzaW1fZGVzZXJpYWxpc2VfcHNhX2FsZ29yaXRobV90KAorICAgICAgICAmcG9zLCAmcmVtYWluaW5nLAorICAgICAgICAmYWxnKTsKKyAgICBpZiAoIW9rKSB7CisgICAgICAgIGdvdG8gZmFpbDsKKyAgICB9CisKKyAgICAvLyBOb3cgd2UgY2FsbCB0aGUgYWN0dWFsIHRhcmdldCBmdW5jdGlvbgorCisgICAgc3RhdHVzID0gcHNhX2NpcGhlcl9kZWNyeXB0X3NldHVwKAorICAgICAgICBvcGVyYXRpb24sCisgICAgICAgIGtleSwKKyAgICAgICAgYWxnCisgICAgICAgICk7CisKKyAgICAvLyBOT1RFOiBTaG91bGQgcmVhbGx5IGNoZWNrIHRoZXJlIGlzIG5vIG92ZXJmbG93IGFzIHdlIGdvIGFsb25nLgorICAgIHNpemVfdCByZXN1bHRfc2l6ZSA9CisgICAgICAgIHBzYXNpbV9zZXJpYWxpc2VfYmVnaW5fbmVlZHMoKSArCisgICAgICAgIHBzYXNpbV9zZXJpYWxpc2VfcHNhX3N0YXR1c190X25lZWRzKHN0YXR1cykgKworICAgICAgICBwc2FzaW1fc2VydmVyX3NlcmlhbGlzZV9wc2FfY2lwaGVyX29wZXJhdGlvbl90X25lZWRzKG9wZXJhdGlvbik7CisKKyAgICByZXN1bHQgPSBtYWxsb2MocmVzdWx0X3NpemUpOworICAgIGlmIChyZXN1bHQgPT0gTlVMTCkgeworICAgICAgICBnb3RvIGZhaWw7CisgICAgfQorCisgICAgdWludDhfdCAqcnBvcyA9IHJlc3VsdDsKKyAgICBzaXplX3QgcnJlbWFpbiA9IHJlc3VsdF9zaXplOworCisgICAgb2sgPSBwc2FzaW1fc2VyaWFsaXNlX2JlZ2luKCZycG9zLCAmcnJlbWFpbik7CisgICAgaWYgKCFvaykgeworICAgICAgICBnb3RvIGZhaWw7CisgICAgfQorCisgICAgb2sgPSBwc2FzaW1fc2VyaWFsaXNlX3BzYV9zdGF0dXNfdCgKKyAgICAgICAgJnJwb3MsICZycmVtYWluLAorICAgICAgICBzdGF0dXMpOworICAgIGlmICghb2spIHsKKyAgICAgICAgZ290byBmYWlsOworICAgIH0KKworICAgIG9rID0gcHNhc2ltX3NlcnZlcl9zZXJpYWxpc2VfcHNhX2NpcGhlcl9vcGVyYXRpb25fdCgKKyAgICAgICAgJnJwb3MsICZycmVtYWluLAorICAgICAgICBvcGVyYXRpb24sIDApOworICAgIGlmICghb2spIHsKKyAgICAgICAgZ290byBmYWlsOworICAgIH0KKworICAgICpvdXRfcGFyYW1zID0gcmVzdWx0OworICAgICpvdXRfcGFyYW1zX2xlbiA9IHJlc3VsdF9zaXplOworCisgICAgcmV0dXJuIDE7ICAgLy8gc3VjY2VzcworCitmYWlsOgorICAgIGZyZWUocmVzdWx0KTsKKworICAgIHJldHVybiAwOyAgICAgICAvLyBUaGlzIHNob3VsZG4ndCBoYXBwZW4hCit9CisKKy8vIFJldHVybnMgMSBmb3Igc3VjY2VzcywgMCBmb3IgZmFpbHVyZQoraW50IHBzYV9jaXBoZXJfZW5jcnlwdF93cmFwcGVyKAorICAgIHVpbnQ4X3QgKmluX3BhcmFtcywgc2l6ZV90IGluX3BhcmFtc19sZW4sCisgICAgdWludDhfdCAqKm91dF9wYXJhbXMsIHNpemVfdCAqb3V0X3BhcmFtc19sZW4pCit7CisgICAgcHNhX3N0YXR1c190IHN0YXR1cyA9IFBTQV9FUlJPUl9DT1JSVVBUSU9OX0RFVEVDVEVEOworICAgIG1iZWR0bHNfc3ZjX2tleV9pZF90IGtleTsKKyAgICBwc2FfYWxnb3JpdGhtX3QgYWxnOworICAgIHVpbnQ4X3QgKmlucHV0ID0gTlVMTDsKKyAgICBzaXplX3QgaW5wdXRfbGVuZ3RoOworICAgIHVpbnQ4X3QgKm91dHB1dCA9IE5VTEw7CisgICAgc2l6ZV90IG91dHB1dF9zaXplOworICAgIHNpemVfdCBvdXRwdXRfbGVuZ3RoOworCisgICAgdWludDhfdCAqcG9zID0gaW5fcGFyYW1zOworICAgIHNpemVfdCByZW1haW5pbmcgPSBpbl9wYXJhbXNfbGVuOworICAgIHVpbnQ4X3QgKnJlc3VsdCA9IE5VTEw7CisgICAgaW50IG9rOworCisgICAgb2sgPSBwc2FzaW1fZGVzZXJpYWxpc2VfYmVnaW4oJnBvcywgJnJlbWFpbmluZyk7CisgICAgaWYgKCFvaykgeworICAgICAgICBnb3RvIGZhaWw7CisgICAgfQorCisgICAgb2sgPSBwc2FzaW1fZGVzZXJpYWxpc2VfbWJlZHRsc19zdmNfa2V5X2lkX3QoCisgICAgICAgICZwb3MsICZyZW1haW5pbmcsCisgICAgICAgICZrZXkpOworICAgIGlmICghb2spIHsKKyAgICAgICAgZ290byBmYWlsOworICAgIH0KKworICAgIG9rID0gcHNhc2ltX2Rlc2VyaWFsaXNlX3BzYV9hbGdvcml0aG1fdCgKKyAgICAgICAgJnBvcywgJnJlbWFpbmluZywKKyAgICAgICAgJmFsZyk7CisgICAgaWYgKCFvaykgeworICAgICAgICBnb3RvIGZhaWw7CisgICAgfQorCisgICAgb2sgPSBwc2FzaW1fZGVzZXJpYWxpc2VfYnVmZmVyKAorICAgICAgICAmcG9zLCAmcmVtYWluaW5nLAorICAgICAgICAmaW5wdXQsICZpbnB1dF9sZW5ndGgpOworICAgIGlmICghb2spIHsKKyAgICAgICAgZ290byBmYWlsOworICAgIH0KKworICAgIG9rID0gcHNhc2ltX2Rlc2VyaWFsaXNlX2J1ZmZlcigKKyAgICAgICAgJnBvcywgJnJlbWFpbmluZywKKyAgICAgICAgJm91dHB1dCwgJm91dHB1dF9zaXplKTsKKyAgICBpZiAoIW9rKSB7CisgICAgICAgIGdvdG8gZmFpbDsKKyAgICB9CisKKyAgICBvayA9IHBzYXNpbV9kZXNlcmlhbGlzZV9zaXplX3QoCisgICAgICAgICZwb3MsICZyZW1haW5pbmcsCisgICAgICAgICZvdXRwdXRfbGVuZ3RoKTsKKyAgICBpZiAoIW9rKSB7CisgICAgICAgIGdvdG8gZmFpbDsKKyAgICB9CisKKyAgICAvLyBOb3cgd2UgY2FsbCB0aGUgYWN0dWFsIHRhcmdldCBmdW5jdGlvbgorCisgICAgc3RhdHVzID0gcHNhX2NpcGhlcl9lbmNyeXB0KAorICAgICAgICBrZXksCisgICAgICAgIGFsZywKKyAgICAgICAgaW5wdXQsIGlucHV0X2xlbmd0aCwKKyAgICAgICAgb3V0cHV0LCBvdXRwdXRfc2l6ZSwKKyAgICAgICAgJm91dHB1dF9sZW5ndGgKKyAgICAgICAgKTsKKworICAgIC8vIE5PVEU6IFNob3VsZCByZWFsbHkgY2hlY2sgdGhlcmUgaXMgbm8gb3ZlcmZsb3cgYXMgd2UgZ28gYWxvbmcuCisgICAgc2l6ZV90IHJlc3VsdF9zaXplID0KKyAgICAgICAgcHNhc2ltX3NlcmlhbGlzZV9iZWdpbl9uZWVkcygpICsKKyAgICAgICAgcHNhc2ltX3NlcmlhbGlzZV9wc2Ffc3RhdHVzX3RfbmVlZHMoc3RhdHVzKSArCisgICAgICAgIHBzYXNpbV9zZXJpYWxpc2VfYnVmZmVyX25lZWRzKG91dHB1dCwgb3V0cHV0X3NpemUpICsKKyAgICAgICAgcHNhc2ltX3NlcmlhbGlzZV9zaXplX3RfbmVlZHMob3V0cHV0X2xlbmd0aCk7CisKKyAgICByZXN1bHQgPSBtYWxsb2MocmVzdWx0X3NpemUpOworICAgIGlmIChyZXN1bHQgPT0gTlVMTCkgeworICAgICAgICBnb3RvIGZhaWw7CisgICAgfQorCisgICAgdWludDhfdCAqcnBvcyA9IHJlc3VsdDsKKyAgICBzaXplX3QgcnJlbWFpbiA9IHJlc3VsdF9zaXplOworCisgICAgb2sgPSBwc2FzaW1fc2VyaWFsaXNlX2JlZ2luKCZycG9zLCAmcnJlbWFpbik7CisgICAgaWYgKCFvaykgeworICAgICAgICBnb3RvIGZhaWw7CisgICAgfQorCisgICAgb2sgPSBwc2FzaW1fc2VyaWFsaXNlX3BzYV9zdGF0dXNfdCgKKyAgICAgICAgJnJwb3MsICZycmVtYWluLAorICAgICAgICBzdGF0dXMpOworICAgIGlmICghb2spIHsKKyAgICAgICAgZ290byBmYWlsOworICAgIH0KKworICAgIG9rID0gcHNhc2ltX3NlcmlhbGlzZV9idWZmZXIoCisgICAgICAgICZycG9zLCAmcnJlbWFpbiwKKyAgICAgICAgb3V0cHV0LCBvdXRwdXRfc2l6ZSk7CisgICAgaWYgKCFvaykgeworICAgICAgICBnb3RvIGZhaWw7CisgICAgfQorCisgICAgb2sgPSBwc2FzaW1fc2VyaWFsaXNlX3NpemVfdCgKKyAgICAgICAgJnJwb3MsICZycmVtYWluLAorICAgICAgICBvdXRwdXRfbGVuZ3RoKTsKKyAgICBpZiAoIW9rKSB7CisgICAgICAgIGdvdG8gZmFpbDsKKyAgICB9CisKKyAgICAqb3V0X3BhcmFtcyA9IHJlc3VsdDsKKyAgICAqb3V0X3BhcmFtc19sZW4gPSByZXN1bHRfc2l6ZTsKKworICAgIGZyZWUoaW5wdXQpOworICAgIGZyZWUob3V0cHV0KTsKKworICAgIHJldHVybiAxOyAgIC8vIHN1Y2Nlc3MKKworZmFpbDoKKyAgICBmcmVlKHJlc3VsdCk7CisKKyAgICBmcmVlKGlucHV0KTsKKyAgICBmcmVlKG91dHB1dCk7CisKKyAgICByZXR1cm4gMDsgICAgICAgLy8gVGhpcyBzaG91bGRuJ3QgaGFwcGVuIQorfQorCisvLyBSZXR1cm5zIDEgZm9yIHN1Y2Nlc3MsIDAgZm9yIGZhaWx1cmUKK2ludCBwc2FfY2lwaGVyX2VuY3J5cHRfc2V0dXBfd3JhcHBlcigKKyAgICB1aW50OF90ICppbl9wYXJhbXMsIHNpemVfdCBpbl9wYXJhbXNfbGVuLAorICAgIHVpbnQ4X3QgKipvdXRfcGFyYW1zLCBzaXplX3QgKm91dF9wYXJhbXNfbGVuKQoreworICAgIHBzYV9zdGF0dXNfdCBzdGF0dXMgPSBQU0FfRVJST1JfQ09SUlVQVElPTl9ERVRFQ1RFRDsKKyAgICBwc2FfY2lwaGVyX29wZXJhdGlvbl90ICpvcGVyYXRpb247CisgICAgbWJlZHRsc19zdmNfa2V5X2lkX3Qga2V5OworICAgIHBzYV9hbGdvcml0aG1fdCBhbGc7CisKKyAgICB1aW50OF90ICpwb3MgPSBpbl9wYXJhbXM7CisgICAgc2l6ZV90IHJlbWFpbmluZyA9IGluX3BhcmFtc19sZW47CisgICAgdWludDhfdCAqcmVzdWx0ID0gTlVMTDsKKyAgICBpbnQgb2s7CisKKyAgICBvayA9IHBzYXNpbV9kZXNlcmlhbGlzZV9iZWdpbigmcG9zLCAmcmVtYWluaW5nKTsKKyAgICBpZiAoIW9rKSB7CisgICAgICAgIGdvdG8gZmFpbDsKKyAgICB9CisKKyAgICBvayA9IHBzYXNpbV9zZXJ2ZXJfZGVzZXJpYWxpc2VfcHNhX2NpcGhlcl9vcGVyYXRpb25fdCgKKyAgICAgICAgJnBvcywgJnJlbWFpbmluZywKKyAgICAgICAgJm9wZXJhdGlvbik7CisgICAgaWYgKCFvaykgeworICAgICAgICBnb3RvIGZhaWw7CisgICAgfQorCisgICAgb2sgPSBwc2FzaW1fZGVzZXJpYWxpc2VfbWJlZHRsc19zdmNfa2V5X2lkX3QoCisgICAgICAgICZwb3MsICZyZW1haW5pbmcsCisgICAgICAgICZrZXkpOworICAgIGlmICghb2spIHsKKyAgICAgICAgZ290byBmYWlsOworICAgIH0KKworICAgIG9rID0gcHNhc2ltX2Rlc2VyaWFsaXNlX3BzYV9hbGdvcml0aG1fdCgKKyAgICAgICAgJnBvcywgJnJlbWFpbmluZywKKyAgICAgICAgJmFsZyk7CisgICAgaWYgKCFvaykgeworICAgICAgICBnb3RvIGZhaWw7CisgICAgfQorCisgICAgLy8gTm93IHdlIGNhbGwgdGhlIGFjdHVhbCB0YXJnZXQgZnVuY3Rpb24KKworICAgIHN0YXR1cyA9IHBzYV9jaXBoZXJfZW5jcnlwdF9zZXR1cCgKKyAgICAgICAgb3BlcmF0aW9uLAorICAgICAgICBrZXksCisgICAgICAgIGFsZworICAgICAgICApOworCisgICAgLy8gTk9URTogU2hvdWxkIHJlYWxseSBjaGVjayB0aGVyZSBpcyBubyBvdmVyZmxvdyBhcyB3ZSBnbyBhbG9uZy4KKyAgICBzaXplX3QgcmVzdWx0X3NpemUgPQorICAgICAgICBwc2FzaW1fc2VyaWFsaXNlX2JlZ2luX25lZWRzKCkgKworICAgICAgICBwc2FzaW1fc2VyaWFsaXNlX3BzYV9zdGF0dXNfdF9uZWVkcyhzdGF0dXMpICsKKyAgICAgICAgcHNhc2ltX3NlcnZlcl9zZXJpYWxpc2VfcHNhX2NpcGhlcl9vcGVyYXRpb25fdF9uZWVkcyhvcGVyYXRpb24pOworCisgICAgcmVzdWx0ID0gbWFsbG9jKHJlc3VsdF9zaXplKTsKKyAgICBpZiAocmVzdWx0ID09IE5VTEwpIHsKKyAgICAgICAgZ290byBmYWlsOworICAgIH0KKworICAgIHVpbnQ4X3QgKnJwb3MgPSByZXN1bHQ7CisgICAgc2l6ZV90IHJyZW1haW4gPSByZXN1bHRfc2l6ZTsKKworICAgIG9rID0gcHNhc2ltX3NlcmlhbGlzZV9iZWdpbigmcnBvcywgJnJyZW1haW4pOworICAgIGlmICghb2spIHsKKyAgICAgICAgZ290byBmYWlsOworICAgIH0KKworICAgIG9rID0gcHNhc2ltX3NlcmlhbGlzZV9wc2Ffc3RhdHVzX3QoCisgICAgICAgICZycG9zLCAmcnJlbWFpbiwKKyAgICAgICAgc3RhdHVzKTsKKyAgICBpZiAoIW9rKSB7CisgICAgICAgIGdvdG8gZmFpbDsKKyAgICB9CisKKyAgICBvayA9IHBzYXNpbV9zZXJ2ZXJfc2VyaWFsaXNlX3BzYV9jaXBoZXJfb3BlcmF0aW9uX3QoCisgICAgICAgICZycG9zLCAmcnJlbWFpbiwKKyAgICAgICAgb3BlcmF0aW9uLCAwKTsKKyAgICBpZiAoIW9rKSB7CisgICAgICAgIGdvdG8gZmFpbDsKKyAgICB9CisKKyAgICAqb3V0X3BhcmFtcyA9IHJlc3VsdDsKKyAgICAqb3V0X3BhcmFtc19sZW4gPSByZXN1bHRfc2l6ZTsKKworICAgIHJldHVybiAxOyAgIC8vIHN1Y2Nlc3MKKworZmFpbDoKKyAgICBmcmVlKHJlc3VsdCk7CisKKyAgICByZXR1cm4gMDsgICAgICAgLy8gVGhpcyBzaG91bGRuJ3QgaGFwcGVuIQorfQorCisvLyBSZXR1cm5zIDEgZm9yIHN1Y2Nlc3MsIDAgZm9yIGZhaWx1cmUKK2ludCBwc2FfY2lwaGVyX2ZpbmlzaF93cmFwcGVyKAorICAgIHVpbnQ4X3QgKmluX3BhcmFtcywgc2l6ZV90IGluX3BhcmFtc19sZW4sCisgICAgdWludDhfdCAqKm91dF9wYXJhbXMsIHNpemVfdCAqb3V0X3BhcmFtc19sZW4pCit7CisgICAgcHNhX3N0YXR1c190IHN0YXR1cyA9IFBTQV9FUlJPUl9DT1JSVVBUSU9OX0RFVEVDVEVEOworICAgIHBzYV9jaXBoZXJfb3BlcmF0aW9uX3QgKm9wZXJhdGlvbjsKKyAgICB1aW50OF90ICpvdXRwdXQgPSBOVUxMOworICAgIHNpemVfdCBvdXRwdXRfc2l6ZTsKKyAgICBzaXplX3Qgb3V0cHV0X2xlbmd0aDsKKworICAgIHVpbnQ4X3QgKnBvcyA9IGluX3BhcmFtczsKKyAgICBzaXplX3QgcmVtYWluaW5nID0gaW5fcGFyYW1zX2xlbjsKKyAgICB1aW50OF90ICpyZXN1bHQgPSBOVUxMOworICAgIGludCBvazsKKworICAgIG9rID0gcHNhc2ltX2Rlc2VyaWFsaXNlX2JlZ2luKCZwb3MsICZyZW1haW5pbmcpOworICAgIGlmICghb2spIHsKKyAgICAgICAgZ290byBmYWlsOworICAgIH0KKworICAgIG9rID0gcHNhc2ltX3NlcnZlcl9kZXNlcmlhbGlzZV9wc2FfY2lwaGVyX29wZXJhdGlvbl90KAorICAgICAgICAmcG9zLCAmcmVtYWluaW5nLAorICAgICAgICAmb3BlcmF0aW9uKTsKKyAgICBpZiAoIW9rKSB7CisgICAgICAgIGdvdG8gZmFpbDsKKyAgICB9CisKKyAgICBvayA9IHBzYXNpbV9kZXNlcmlhbGlzZV9idWZmZXIoCisgICAgICAgICZwb3MsICZyZW1haW5pbmcsCisgICAgICAgICZvdXRwdXQsICZvdXRwdXRfc2l6ZSk7CisgICAgaWYgKCFvaykgeworICAgICAgICBnb3RvIGZhaWw7CisgICAgfQorCisgICAgb2sgPSBwc2FzaW1fZGVzZXJpYWxpc2Vfc2l6ZV90KAorICAgICAgICAmcG9zLCAmcmVtYWluaW5nLAorICAgICAgICAmb3V0cHV0X2xlbmd0aCk7CisgICAgaWYgKCFvaykgeworICAgICAgICBnb3RvIGZhaWw7CisgICAgfQorCisgICAgLy8gTm93IHdlIGNhbGwgdGhlIGFjdHVhbCB0YXJnZXQgZnVuY3Rpb24KKworICAgIHN0YXR1cyA9IHBzYV9jaXBoZXJfZmluaXNoKAorICAgICAgICBvcGVyYXRpb24sCisgICAgICAgIG91dHB1dCwgb3V0cHV0X3NpemUsCisgICAgICAgICZvdXRwdXRfbGVuZ3RoCisgICAgICAgICk7CisKKyAgICAvLyBOT1RFOiBTaG91bGQgcmVhbGx5IGNoZWNrIHRoZXJlIGlzIG5vIG92ZXJmbG93IGFzIHdlIGdvIGFsb25nLgorICAgIHNpemVfdCByZXN1bHRfc2l6ZSA9CisgICAgICAgIHBzYXNpbV9zZXJpYWxpc2VfYmVnaW5fbmVlZHMoKSArCisgICAgICAgIHBzYXNpbV9zZXJpYWxpc2VfcHNhX3N0YXR1c190X25lZWRzKHN0YXR1cykgKworICAgICAgICBwc2FzaW1fc2VydmVyX3NlcmlhbGlzZV9wc2FfY2lwaGVyX29wZXJhdGlvbl90X25lZWRzKG9wZXJhdGlvbikgKworICAgICAgICBwc2FzaW1fc2VyaWFsaXNlX2J1ZmZlcl9uZWVkcyhvdXRwdXQsIG91dHB1dF9zaXplKSArCisgICAgICAgIHBzYXNpbV9zZXJpYWxpc2Vfc2l6ZV90X25lZWRzKG91dHB1dF9sZW5ndGgpOworCisgICAgcmVzdWx0ID0gbWFsbG9jKHJlc3VsdF9zaXplKTsKKyAgICBpZiAocmVzdWx0ID09IE5VTEwpIHsKKyAgICAgICAgZ290byBmYWlsOworICAgIH0KKworICAgIHVpbnQ4X3QgKnJwb3MgPSByZXN1bHQ7CisgICAgc2l6ZV90IHJyZW1haW4gPSByZXN1bHRfc2l6ZTsKKworICAgIG9rID0gcHNhc2ltX3NlcmlhbGlzZV9iZWdpbigmcnBvcywgJnJyZW1haW4pOworICAgIGlmICghb2spIHsKKyAgICAgICAgZ290byBmYWlsOworICAgIH0KKworICAgIG9rID0gcHNhc2ltX3NlcmlhbGlzZV9wc2Ffc3RhdHVzX3QoCisgICAgICAgICZycG9zLCAmcnJlbWFpbiwKKyAgICAgICAgc3RhdHVzKTsKKyAgICBpZiAoIW9rKSB7CisgICAgICAgIGdvdG8gZmFpbDsKKyAgICB9CisKKyAgICBvayA9IHBzYXNpbV9zZXJ2ZXJfc2VyaWFsaXNlX3BzYV9jaXBoZXJfb3BlcmF0aW9uX3QoCisgICAgICAgICZycG9zLCAmcnJlbWFpbiwKKyAgICAgICAgb3BlcmF0aW9uLCAxKTsKKyAgICBpZiAoIW9rKSB7CisgICAgICAgIGdvdG8gZmFpbDsKKyAgICB9CisKKyAgICBvayA9IHBzYXNpbV9zZXJpYWxpc2VfYnVmZmVyKAorICAgICAgICAmcnBvcywgJnJyZW1haW4sCisgICAgICAgIG91dHB1dCwgb3V0cHV0X3NpemUpOworICAgIGlmICghb2spIHsKKyAgICAgICAgZ290byBmYWlsOworICAgIH0KKworICAgIG9rID0gcHNhc2ltX3NlcmlhbGlzZV9zaXplX3QoCisgICAgICAgICZycG9zLCAmcnJlbWFpbiwKKyAgICAgICAgb3V0cHV0X2xlbmd0aCk7CisgICAgaWYgKCFvaykgeworICAgICAgICBnb3RvIGZhaWw7CisgICAgfQorCisgICAgKm91dF9wYXJhbXMgPSByZXN1bHQ7CisgICAgKm91dF9wYXJhbXNfbGVuID0gcmVzdWx0X3NpemU7CisKKyAgICBmcmVlKG91dHB1dCk7CisKKyAgICByZXR1cm4gMTsgICAvLyBzdWNjZXNzCisKK2ZhaWw6CisgICAgZnJlZShyZXN1bHQpOworCisgICAgZnJlZShvdXRwdXQpOworCisgICAgcmV0dXJuIDA7ICAgICAgIC8vIFRoaXMgc2hvdWxkbid0IGhhcHBlbiEKK30KKworLy8gUmV0dXJucyAxIGZvciBzdWNjZXNzLCAwIGZvciBmYWlsdXJlCitpbnQgcHNhX2NpcGhlcl9nZW5lcmF0ZV9pdl93cmFwcGVyKAorICAgIHVpbnQ4X3QgKmluX3BhcmFtcywgc2l6ZV90IGluX3BhcmFtc19sZW4sCisgICAgdWludDhfdCAqKm91dF9wYXJhbXMsIHNpemVfdCAqb3V0X3BhcmFtc19sZW4pCit7CisgICAgcHNhX3N0YXR1c190IHN0YXR1cyA9IFBTQV9FUlJPUl9DT1JSVVBUSU9OX0RFVEVDVEVEOworICAgIHBzYV9jaXBoZXJfb3BlcmF0aW9uX3QgKm9wZXJhdGlvbjsKKyAgICB1aW50OF90ICppdiA9IE5VTEw7CisgICAgc2l6ZV90IGl2X3NpemU7CisgICAgc2l6ZV90IGl2X2xlbmd0aDsKKworICAgIHVpbnQ4X3QgKnBvcyA9IGluX3BhcmFtczsKKyAgICBzaXplX3QgcmVtYWluaW5nID0gaW5fcGFyYW1zX2xlbjsKKyAgICB1aW50OF90ICpyZXN1bHQgPSBOVUxMOworICAgIGludCBvazsKKworICAgIG9rID0gcHNhc2ltX2Rlc2VyaWFsaXNlX2JlZ2luKCZwb3MsICZyZW1haW5pbmcpOworICAgIGlmICghb2spIHsKKyAgICAgICAgZ290byBmYWlsOworICAgIH0KKworICAgIG9rID0gcHNhc2ltX3NlcnZlcl9kZXNlcmlhbGlzZV9wc2FfY2lwaGVyX29wZXJhdGlvbl90KAorICAgICAgICAmcG9zLCAmcmVtYWluaW5nLAorICAgICAgICAmb3BlcmF0aW9uKTsKKyAgICBpZiAoIW9rKSB7CisgICAgICAgIGdvdG8gZmFpbDsKKyAgICB9CisKKyAgICBvayA9IHBzYXNpbV9kZXNlcmlhbGlzZV9idWZmZXIoCisgICAgICAgICZwb3MsICZyZW1haW5pbmcsCisgICAgICAgICZpdiwgJml2X3NpemUpOworICAgIGlmICghb2spIHsKKyAgICAgICAgZ290byBmYWlsOworICAgIH0KKworICAgIG9rID0gcHNhc2ltX2Rlc2VyaWFsaXNlX3NpemVfdCgKKyAgICAgICAgJnBvcywgJnJlbWFpbmluZywKKyAgICAgICAgJml2X2xlbmd0aCk7CisgICAgaWYgKCFvaykgeworICAgICAgICBnb3RvIGZhaWw7CisgICAgfQorCisgICAgLy8gTm93IHdlIGNhbGwgdGhlIGFjdHVhbCB0YXJnZXQgZnVuY3Rpb24KKworICAgIHN0YXR1cyA9IHBzYV9jaXBoZXJfZ2VuZXJhdGVfaXYoCisgICAgICAgIG9wZXJhdGlvbiwKKyAgICAgICAgaXYsIGl2X3NpemUsCisgICAgICAgICZpdl9sZW5ndGgKKyAgICAgICAgKTsKKworICAgIC8vIE5PVEU6IFNob3VsZCByZWFsbHkgY2hlY2sgdGhlcmUgaXMgbm8gb3ZlcmZsb3cgYXMgd2UgZ28gYWxvbmcuCisgICAgc2l6ZV90IHJlc3VsdF9zaXplID0KKyAgICAgICAgcHNhc2ltX3NlcmlhbGlzZV9iZWdpbl9uZWVkcygpICsKKyAgICAgICAgcHNhc2ltX3NlcmlhbGlzZV9wc2Ffc3RhdHVzX3RfbmVlZHMoc3RhdHVzKSArCisgICAgICAgIHBzYXNpbV9zZXJ2ZXJfc2VyaWFsaXNlX3BzYV9jaXBoZXJfb3BlcmF0aW9uX3RfbmVlZHMob3BlcmF0aW9uKSArCisgICAgICAgIHBzYXNpbV9zZXJpYWxpc2VfYnVmZmVyX25lZWRzKGl2LCBpdl9zaXplKSArCisgICAgICAgIHBzYXNpbV9zZXJpYWxpc2Vfc2l6ZV90X25lZWRzKGl2X2xlbmd0aCk7CisKKyAgICByZXN1bHQgPSBtYWxsb2MocmVzdWx0X3NpemUpOworICAgIGlmIChyZXN1bHQgPT0gTlVMTCkgeworICAgICAgICBnb3RvIGZhaWw7CisgICAgfQorCisgICAgdWludDhfdCAqcnBvcyA9IHJlc3VsdDsKKyAgICBzaXplX3QgcnJlbWFpbiA9IHJlc3VsdF9zaXplOworCisgICAgb2sgPSBwc2FzaW1fc2VyaWFsaXNlX2JlZ2luKCZycG9zLCAmcnJlbWFpbik7CisgICAgaWYgKCFvaykgeworICAgICAgICBnb3RvIGZhaWw7CisgICAgfQorCisgICAgb2sgPSBwc2FzaW1fc2VyaWFsaXNlX3BzYV9zdGF0dXNfdCgKKyAgICAgICAgJnJwb3MsICZycmVtYWluLAorICAgICAgICBzdGF0dXMpOworICAgIGlmICghb2spIHsKKyAgICAgICAgZ290byBmYWlsOworICAgIH0KKworICAgIG9rID0gcHNhc2ltX3NlcnZlcl9zZXJpYWxpc2VfcHNhX2NpcGhlcl9vcGVyYXRpb25fdCgKKyAgICAgICAgJnJwb3MsICZycmVtYWluLAorICAgICAgICBvcGVyYXRpb24sIDApOworICAgIGlmICghb2spIHsKKyAgICAgICAgZ290byBmYWlsOworICAgIH0KKworICAgIG9rID0gcHNhc2ltX3NlcmlhbGlzZV9idWZmZXIoCisgICAgICAgICZycG9zLCAmcnJlbWFpbiwKKyAgICAgICAgaXYsIGl2X3NpemUpOworICAgIGlmICghb2spIHsKKyAgICAgICAgZ290byBmYWlsOworICAgIH0KKworICAgIG9rID0gcHNhc2ltX3NlcmlhbGlzZV9zaXplX3QoCisgICAgICAgICZycG9zLCAmcnJlbWFpbiwKKyAgICAgICAgaXZfbGVuZ3RoKTsKKyAgICBpZiAoIW9rKSB7CisgICAgICAgIGdvdG8gZmFpbDsKKyAgICB9CisKKyAgICAqb3V0X3BhcmFtcyA9IHJlc3VsdDsKKyAgICAqb3V0X3BhcmFtc19sZW4gPSByZXN1bHRfc2l6ZTsKKworICAgIGZyZWUoaXYpOworCisgICAgcmV0dXJuIDE7ICAgLy8gc3VjY2VzcworCitmYWlsOgorICAgIGZyZWUocmVzdWx0KTsKKworICAgIGZyZWUoaXYpOworCisgICAgcmV0dXJuIDA7ICAgICAgIC8vIFRoaXMgc2hvdWxkbid0IGhhcHBlbiEKK30KKworLy8gUmV0dXJucyAxIGZvciBzdWNjZXNzLCAwIGZvciBmYWlsdXJlCitpbnQgcHNhX2NpcGhlcl9zZXRfaXZfd3JhcHBlcigKKyAgICB1aW50OF90ICppbl9wYXJhbXMsIHNpemVfdCBpbl9wYXJhbXNfbGVuLAorICAgIHVpbnQ4X3QgKipvdXRfcGFyYW1zLCBzaXplX3QgKm91dF9wYXJhbXNfbGVuKQoreworICAgIHBzYV9zdGF0dXNfdCBzdGF0dXMgPSBQU0FfRVJST1JfQ09SUlVQVElPTl9ERVRFQ1RFRDsKKyAgICBwc2FfY2lwaGVyX29wZXJhdGlvbl90ICpvcGVyYXRpb247CisgICAgdWludDhfdCAqaXYgPSBOVUxMOworICAgIHNpemVfdCBpdl9sZW5ndGg7CisKKyAgICB1aW50OF90ICpwb3MgPSBpbl9wYXJhbXM7CisgICAgc2l6ZV90IHJlbWFpbmluZyA9IGluX3BhcmFtc19sZW47CisgICAgdWludDhfdCAqcmVzdWx0ID0gTlVMTDsKKyAgICBpbnQgb2s7CisKKyAgICBvayA9IHBzYXNpbV9kZXNlcmlhbGlzZV9iZWdpbigmcG9zLCAmcmVtYWluaW5nKTsKKyAgICBpZiAoIW9rKSB7CisgICAgICAgIGdvdG8gZmFpbDsKKyAgICB9CisKKyAgICBvayA9IHBzYXNpbV9zZXJ2ZXJfZGVzZXJpYWxpc2VfcHNhX2NpcGhlcl9vcGVyYXRpb25fdCgKKyAgICAgICAgJnBvcywgJnJlbWFpbmluZywKKyAgICAgICAgJm9wZXJhdGlvbik7CisgICAgaWYgKCFvaykgeworICAgICAgICBnb3RvIGZhaWw7CisgICAgfQorCisgICAgb2sgPSBwc2FzaW1fZGVzZXJpYWxpc2VfYnVmZmVyKAorICAgICAgICAmcG9zLCAmcmVtYWluaW5nLAorICAgICAgICAmaXYsICZpdl9sZW5ndGgpOworICAgIGlmICghb2spIHsKKyAgICAgICAgZ290byBmYWlsOworICAgIH0KKworICAgIC8vIE5vdyB3ZSBjYWxsIHRoZSBhY3R1YWwgdGFyZ2V0IGZ1bmN0aW9uCisKKyAgICBzdGF0dXMgPSBwc2FfY2lwaGVyX3NldF9pdigKKyAgICAgICAgb3BlcmF0aW9uLAorICAgICAgICBpdiwgaXZfbGVuZ3RoCisgICAgICAgICk7CisKKyAgICAvLyBOT1RFOiBTaG91bGQgcmVhbGx5IGNoZWNrIHRoZXJlIGlzIG5vIG92ZXJmbG93IGFzIHdlIGdvIGFsb25nLgorICAgIHNpemVfdCByZXN1bHRfc2l6ZSA9CisgICAgICAgIHBzYXNpbV9zZXJpYWxpc2VfYmVnaW5fbmVlZHMoKSArCisgICAgICAgIHBzYXNpbV9zZXJpYWxpc2VfcHNhX3N0YXR1c190X25lZWRzKHN0YXR1cykgKworICAgICAgICBwc2FzaW1fc2VydmVyX3NlcmlhbGlzZV9wc2FfY2lwaGVyX29wZXJhdGlvbl90X25lZWRzKG9wZXJhdGlvbik7CisKKyAgICByZXN1bHQgPSBtYWxsb2MocmVzdWx0X3NpemUpOworICAgIGlmIChyZXN1bHQgPT0gTlVMTCkgeworICAgICAgICBnb3RvIGZhaWw7CisgICAgfQorCisgICAgdWludDhfdCAqcnBvcyA9IHJlc3VsdDsKKyAgICBzaXplX3QgcnJlbWFpbiA9IHJlc3VsdF9zaXplOworCisgICAgb2sgPSBwc2FzaW1fc2VyaWFsaXNlX2JlZ2luKCZycG9zLCAmcnJlbWFpbik7CisgICAgaWYgKCFvaykgeworICAgICAgICBnb3RvIGZhaWw7CisgICAgfQorCisgICAgb2sgPSBwc2FzaW1fc2VyaWFsaXNlX3BzYV9zdGF0dXNfdCgKKyAgICAgICAgJnJwb3MsICZycmVtYWluLAorICAgICAgICBzdGF0dXMpOworICAgIGlmICghb2spIHsKKyAgICAgICAgZ290byBmYWlsOworICAgIH0KKworICAgIG9rID0gcHNhc2ltX3NlcnZlcl9zZXJpYWxpc2VfcHNhX2NpcGhlcl9vcGVyYXRpb25fdCgKKyAgICAgICAgJnJwb3MsICZycmVtYWluLAorICAgICAgICBvcGVyYXRpb24sIDApOworICAgIGlmICghb2spIHsKKyAgICAgICAgZ290byBmYWlsOworICAgIH0KKworICAgICpvdXRfcGFyYW1zID0gcmVzdWx0OworICAgICpvdXRfcGFyYW1zX2xlbiA9IHJlc3VsdF9zaXplOworCisgICAgZnJlZShpdik7CisKKyAgICByZXR1cm4gMTsgICAvLyBzdWNjZXNzCisKK2ZhaWw6CisgICAgZnJlZShyZXN1bHQpOworCisgICAgZnJlZShpdik7CisKKyAgICByZXR1cm4gMDsgICAgICAgLy8gVGhpcyBzaG91bGRuJ3QgaGFwcGVuIQorfQorCisvLyBSZXR1cm5zIDEgZm9yIHN1Y2Nlc3MsIDAgZm9yIGZhaWx1cmUKK2ludCBwc2FfY2lwaGVyX3VwZGF0ZV93cmFwcGVyKAorICAgIHVpbnQ4X3QgKmluX3BhcmFtcywgc2l6ZV90IGluX3BhcmFtc19sZW4sCisgICAgdWludDhfdCAqKm91dF9wYXJhbXMsIHNpemVfdCAqb3V0X3BhcmFtc19sZW4pCit7CisgICAgcHNhX3N0YXR1c190IHN0YXR1cyA9IFBTQV9FUlJPUl9DT1JSVVBUSU9OX0RFVEVDVEVEOworICAgIHBzYV9jaXBoZXJfb3BlcmF0aW9uX3QgKm9wZXJhdGlvbjsKKyAgICB1aW50OF90ICppbnB1dCA9IE5VTEw7CisgICAgc2l6ZV90IGlucHV0X2xlbmd0aDsKKyAgICB1aW50OF90ICpvdXRwdXQgPSBOVUxMOworICAgIHNpemVfdCBvdXRwdXRfc2l6ZTsKKyAgICBzaXplX3Qgb3V0cHV0X2xlbmd0aDsKKworICAgIHVpbnQ4X3QgKnBvcyA9IGluX3BhcmFtczsKKyAgICBzaXplX3QgcmVtYWluaW5nID0gaW5fcGFyYW1zX2xlbjsKKyAgICB1aW50OF90ICpyZXN1bHQgPSBOVUxMOworICAgIGludCBvazsKKworICAgIG9rID0gcHNhc2ltX2Rlc2VyaWFsaXNlX2JlZ2luKCZwb3MsICZyZW1haW5pbmcpOworICAgIGlmICghb2spIHsKKyAgICAgICAgZ290byBmYWlsOworICAgIH0KKworICAgIG9rID0gcHNhc2ltX3NlcnZlcl9kZXNlcmlhbGlzZV9wc2FfY2lwaGVyX29wZXJhdGlvbl90KAorICAgICAgICAmcG9zLCAmcmVtYWluaW5nLAorICAgICAgICAmb3BlcmF0aW9uKTsKKyAgICBpZiAoIW9rKSB7CisgICAgICAgIGdvdG8gZmFpbDsKKyAgICB9CisKKyAgICBvayA9IHBzYXNpbV9kZXNlcmlhbGlzZV9idWZmZXIoCisgICAgICAgICZwb3MsICZyZW1haW5pbmcsCisgICAgICAgICZpbnB1dCwgJmlucHV0X2xlbmd0aCk7CisgICAgaWYgKCFvaykgeworICAgICAgICBnb3RvIGZhaWw7CisgICAgfQorCisgICAgb2sgPSBwc2FzaW1fZGVzZXJpYWxpc2VfYnVmZmVyKAorICAgICAgICAmcG9zLCAmcmVtYWluaW5nLAorICAgICAgICAmb3V0cHV0LCAmb3V0cHV0X3NpemUpOworICAgIGlmICghb2spIHsKKyAgICAgICAgZ290byBmYWlsOworICAgIH0KKworICAgIG9rID0gcHNhc2ltX2Rlc2VyaWFsaXNlX3NpemVfdCgKKyAgICAgICAgJnBvcywgJnJlbWFpbmluZywKKyAgICAgICAgJm91dHB1dF9sZW5ndGgpOworICAgIGlmICghb2spIHsKKyAgICAgICAgZ290byBmYWlsOworICAgIH0KKworICAgIC8vIE5vdyB3ZSBjYWxsIHRoZSBhY3R1YWwgdGFyZ2V0IGZ1bmN0aW9uCisKKyAgICBzdGF0dXMgPSBwc2FfY2lwaGVyX3VwZGF0ZSgKKyAgICAgICAgb3BlcmF0aW9uLAorICAgICAgICBpbnB1dCwgaW5wdXRfbGVuZ3RoLAorICAgICAgICBvdXRwdXQsIG91dHB1dF9zaXplLAorICAgICAgICAmb3V0cHV0X2xlbmd0aAorICAgICAgICApOworCisgICAgLy8gTk9URTogU2hvdWxkIHJlYWxseSBjaGVjayB0aGVyZSBpcyBubyBvdmVyZmxvdyBhcyB3ZSBnbyBhbG9uZy4KKyAgICBzaXplX3QgcmVzdWx0X3NpemUgPQorICAgICAgICBwc2FzaW1fc2VyaWFsaXNlX2JlZ2luX25lZWRzKCkgKworICAgICAgICBwc2FzaW1fc2VyaWFsaXNlX3BzYV9zdGF0dXNfdF9uZWVkcyhzdGF0dXMpICsKKyAgICAgICAgcHNhc2ltX3NlcnZlcl9zZXJpYWxpc2VfcHNhX2NpcGhlcl9vcGVyYXRpb25fdF9uZWVkcyhvcGVyYXRpb24pICsKKyAgICAgICAgcHNhc2ltX3NlcmlhbGlzZV9idWZmZXJfbmVlZHMob3V0cHV0LCBvdXRwdXRfc2l6ZSkgKworICAgICAgICBwc2FzaW1fc2VyaWFsaXNlX3NpemVfdF9uZWVkcyhvdXRwdXRfbGVuZ3RoKTsKKworICAgIHJlc3VsdCA9IG1hbGxvYyhyZXN1bHRfc2l6ZSk7CisgICAgaWYgKHJlc3VsdCA9PSBOVUxMKSB7CisgICAgICAgIGdvdG8gZmFpbDsKKyAgICB9CisKKyAgICB1aW50OF90ICpycG9zID0gcmVzdWx0OworICAgIHNpemVfdCBycmVtYWluID0gcmVzdWx0X3NpemU7CisKKyAgICBvayA9IHBzYXNpbV9zZXJpYWxpc2VfYmVnaW4oJnJwb3MsICZycmVtYWluKTsKKyAgICBpZiAoIW9rKSB7CisgICAgICAgIGdvdG8gZmFpbDsKKyAgICB9CisKKyAgICBvayA9IHBzYXNpbV9zZXJpYWxpc2VfcHNhX3N0YXR1c190KAorICAgICAgICAmcnBvcywgJnJyZW1haW4sCisgICAgICAgIHN0YXR1cyk7CisgICAgaWYgKCFvaykgeworICAgICAgICBnb3RvIGZhaWw7CisgICAgfQorCisgICAgb2sgPSBwc2FzaW1fc2VydmVyX3NlcmlhbGlzZV9wc2FfY2lwaGVyX29wZXJhdGlvbl90KAorICAgICAgICAmcnBvcywgJnJyZW1haW4sCisgICAgICAgIG9wZXJhdGlvbiwgMCk7CisgICAgaWYgKCFvaykgeworICAgICAgICBnb3RvIGZhaWw7CisgICAgfQorCisgICAgb2sgPSBwc2FzaW1fc2VyaWFsaXNlX2J1ZmZlcigKKyAgICAgICAgJnJwb3MsICZycmVtYWluLAorICAgICAgICBvdXRwdXQsIG91dHB1dF9zaXplKTsKKyAgICBpZiAoIW9rKSB7CisgICAgICAgIGdvdG8gZmFpbDsKKyAgICB9CisKKyAgICBvayA9IHBzYXNpbV9zZXJpYWxpc2Vfc2l6ZV90KAorICAgICAgICAmcnBvcywgJnJyZW1haW4sCisgICAgICAgIG91dHB1dF9sZW5ndGgpOworICAgIGlmICghb2spIHsKKyAgICAgICAgZ290byBmYWlsOworICAgIH0KKworICAgICpvdXRfcGFyYW1zID0gcmVzdWx0OworICAgICpvdXRfcGFyYW1zX2xlbiA9IHJlc3VsdF9zaXplOworCisgICAgZnJlZShpbnB1dCk7CisgICAgZnJlZShvdXRwdXQpOworCisgICAgcmV0dXJuIDE7ICAgLy8gc3VjY2VzcworCitmYWlsOgorICAgIGZyZWUocmVzdWx0KTsKKworICAgIGZyZWUoaW5wdXQpOworICAgIGZyZWUob3V0cHV0KTsKKworICAgIHJldHVybiAwOyAgICAgICAvLyBUaGlzIHNob3VsZG4ndCBoYXBwZW4hCit9CisKKy8vIFJldHVybnMgMSBmb3Igc3VjY2VzcywgMCBmb3IgZmFpbHVyZQoraW50IHBzYV9jb3B5X2tleV93cmFwcGVyKAorICAgIHVpbnQ4X3QgKmluX3BhcmFtcywgc2l6ZV90IGluX3BhcmFtc19sZW4sCisgICAgdWludDhfdCAqKm91dF9wYXJhbXMsIHNpemVfdCAqb3V0X3BhcmFtc19sZW4pCit7CisgICAgcHNhX3N0YXR1c190IHN0YXR1cyA9IFBTQV9FUlJPUl9DT1JSVVBUSU9OX0RFVEVDVEVEOworICAgIG1iZWR0bHNfc3ZjX2tleV9pZF90IHNvdXJjZV9rZXk7CisgICAgcHNhX2tleV9hdHRyaWJ1dGVzX3QgYXR0cmlidXRlczsKKyAgICBtYmVkdGxzX3N2Y19rZXlfaWRfdCB0YXJnZXRfa2V5OworCisgICAgdWludDhfdCAqcG9zID0gaW5fcGFyYW1zOworICAgIHNpemVfdCByZW1haW5pbmcgPSBpbl9wYXJhbXNfbGVuOworICAgIHVpbnQ4X3QgKnJlc3VsdCA9IE5VTEw7CisgICAgaW50IG9rOworCisgICAgb2sgPSBwc2FzaW1fZGVzZXJpYWxpc2VfYmVnaW4oJnBvcywgJnJlbWFpbmluZyk7CisgICAgaWYgKCFvaykgeworICAgICAgICBnb3RvIGZhaWw7CisgICAgfQorCisgICAgb2sgPSBwc2FzaW1fZGVzZXJpYWxpc2VfbWJlZHRsc19zdmNfa2V5X2lkX3QoCisgICAgICAgICZwb3MsICZyZW1haW5pbmcsCisgICAgICAgICZzb3VyY2Vfa2V5KTsKKyAgICBpZiAoIW9rKSB7CisgICAgICAgIGdvdG8gZmFpbDsKKyAgICB9CisKKyAgICBvayA9IHBzYXNpbV9kZXNlcmlhbGlzZV9wc2Ffa2V5X2F0dHJpYnV0ZXNfdCgKKyAgICAgICAgJnBvcywgJnJlbWFpbmluZywKKyAgICAgICAgJmF0dHJpYnV0ZXMpOworICAgIGlmICghb2spIHsKKyAgICAgICAgZ290byBmYWlsOworICAgIH0KKworICAgIG9rID0gcHNhc2ltX2Rlc2VyaWFsaXNlX21iZWR0bHNfc3ZjX2tleV9pZF90KAorICAgICAgICAmcG9zLCAmcmVtYWluaW5nLAorICAgICAgICAmdGFyZ2V0X2tleSk7CisgICAgaWYgKCFvaykgeworICAgICAgICBnb3RvIGZhaWw7CisgICAgfQorCisgICAgLy8gTm93IHdlIGNhbGwgdGhlIGFjdHVhbCB0YXJnZXQgZnVuY3Rpb24KKworICAgIHN0YXR1cyA9IHBzYV9jb3B5X2tleSgKKyAgICAgICAgc291cmNlX2tleSwKKyAgICAgICAgJmF0dHJpYnV0ZXMsCisgICAgICAgICZ0YXJnZXRfa2V5CisgICAgICAgICk7CisKKyAgICAvLyBOT1RFOiBTaG91bGQgcmVhbGx5IGNoZWNrIHRoZXJlIGlzIG5vIG92ZXJmbG93IGFzIHdlIGdvIGFsb25nLgorICAgIHNpemVfdCByZXN1bHRfc2l6ZSA9CisgICAgICAgIHBzYXNpbV9zZXJpYWxpc2VfYmVnaW5fbmVlZHMoKSArCisgICAgICAgIHBzYXNpbV9zZXJpYWxpc2VfcHNhX3N0YXR1c190X25lZWRzKHN0YXR1cykgKworICAgICAgICBwc2FzaW1fc2VyaWFsaXNlX21iZWR0bHNfc3ZjX2tleV9pZF90X25lZWRzKHRhcmdldF9rZXkpOworCisgICAgcmVzdWx0ID0gbWFsbG9jKHJlc3VsdF9zaXplKTsKKyAgICBpZiAocmVzdWx0ID09IE5VTEwpIHsKKyAgICAgICAgZ290byBmYWlsOworICAgIH0KKworICAgIHVpbnQ4X3QgKnJwb3MgPSByZXN1bHQ7CisgICAgc2l6ZV90IHJyZW1haW4gPSByZXN1bHRfc2l6ZTsKKworICAgIG9rID0gcHNhc2ltX3NlcmlhbGlzZV9iZWdpbigmcnBvcywgJnJyZW1haW4pOworICAgIGlmICghb2spIHsKKyAgICAgICAgZ290byBmYWlsOworICAgIH0KKworICAgIG9rID0gcHNhc2ltX3NlcmlhbGlzZV9wc2Ffc3RhdHVzX3QoCisgICAgICAgICZycG9zLCAmcnJlbWFpbiwKKyAgICAgICAgc3RhdHVzKTsKKyAgICBpZiAoIW9rKSB7CisgICAgICAgIGdvdG8gZmFpbDsKKyAgICB9CisKKyAgICBvayA9IHBzYXNpbV9zZXJpYWxpc2VfbWJlZHRsc19zdmNfa2V5X2lkX3QoCisgICAgICAgICZycG9zLCAmcnJlbWFpbiwKKyAgICAgICAgdGFyZ2V0X2tleSk7CisgICAgaWYgKCFvaykgeworICAgICAgICBnb3RvIGZhaWw7CisgICAgfQorCisgICAgKm91dF9wYXJhbXMgPSByZXN1bHQ7CisgICAgKm91dF9wYXJhbXNfbGVuID0gcmVzdWx0X3NpemU7CisKKyAgICByZXR1cm4gMTsgICAvLyBzdWNjZXNzCisKK2ZhaWw6CisgICAgZnJlZShyZXN1bHQpOworCisgICAgcmV0dXJuIDA7ICAgICAgIC8vIFRoaXMgc2hvdWxkbid0IGhhcHBlbiEKK30KKworLy8gUmV0dXJucyAxIGZvciBzdWNjZXNzLCAwIGZvciBmYWlsdXJlCiBpbnQgcHNhX2Rlc3Ryb3lfa2V5X3dyYXBwZXIoCiAgICAgdWludDhfdCAqaW5fcGFyYW1zLCBzaXplX3QgaW5fcGFyYW1zX2xlbiwKICAgICB1aW50OF90ICoqb3V0X3BhcmFtcywgc2l6ZV90ICpvdXRfcGFyYW1zX2xlbikKQEAgLTEyNzksNyArMjc3MCw5IEBACiAgICAgICAgIGdvdG8gZmFpbDsKICAgICB9CiAKLSAgICBvayA9IHBzYXNpbV9kZXNlcmlhbGlzZV9tYmVkdGxzX3N2Y19rZXlfaWRfdCgmcG9zLCAmcmVtYWluaW5nLCAma2V5KTsKKyAgICBvayA9IHBzYXNpbV9kZXNlcmlhbGlzZV9tYmVkdGxzX3N2Y19rZXlfaWRfdCgKKyAgICAgICAgJnBvcywgJnJlbWFpbmluZywKKyAgICAgICAgJmtleSk7CiAgICAgaWYgKCFvaykgewogICAgICAgICBnb3RvIGZhaWw7CiAgICAgfQpAQCAtMTMwOCw3ICsyODAxLDkgQEAKICAgICAgICAgZ290byBmYWlsOwogICAgIH0KIAotICAgIG9rID0gcHNhc2ltX3NlcmlhbGlzZV9wc2Ffc3RhdHVzX3QoJnJwb3MsICZycmVtYWluLCBzdGF0dXMpOworICAgIG9rID0gcHNhc2ltX3NlcmlhbGlzZV9wc2Ffc3RhdHVzX3QoCisgICAgICAgICZycG9zLCAmcnJlbWFpbiwKKyAgICAgICAgc3RhdHVzKTsKICAgICBpZiAoIW9rKSB7CiAgICAgICAgIGdvdG8gZmFpbDsKICAgICB9CkBAIC0xMzI1LDYgKzI4MjAsNDgwIEBACiB9CiAKIC8vIFJldHVybnMgMSBmb3Igc3VjY2VzcywgMCBmb3IgZmFpbHVyZQoraW50IHBzYV9leHBvcnRfa2V5X3dyYXBwZXIoCisgICAgdWludDhfdCAqaW5fcGFyYW1zLCBzaXplX3QgaW5fcGFyYW1zX2xlbiwKKyAgICB1aW50OF90ICoqb3V0X3BhcmFtcywgc2l6ZV90ICpvdXRfcGFyYW1zX2xlbikKK3sKKyAgICBwc2Ffc3RhdHVzX3Qgc3RhdHVzID0gUFNBX0VSUk9SX0NPUlJVUFRJT05fREVURUNURUQ7CisgICAgbWJlZHRsc19zdmNfa2V5X2lkX3Qga2V5OworICAgIHVpbnQ4X3QgKmRhdGEgPSBOVUxMOworICAgIHNpemVfdCBkYXRhX3NpemU7CisgICAgc2l6ZV90IGRhdGFfbGVuZ3RoOworCisgICAgdWludDhfdCAqcG9zID0gaW5fcGFyYW1zOworICAgIHNpemVfdCByZW1haW5pbmcgPSBpbl9wYXJhbXNfbGVuOworICAgIHVpbnQ4X3QgKnJlc3VsdCA9IE5VTEw7CisgICAgaW50IG9rOworCisgICAgb2sgPSBwc2FzaW1fZGVzZXJpYWxpc2VfYmVnaW4oJnBvcywgJnJlbWFpbmluZyk7CisgICAgaWYgKCFvaykgeworICAgICAgICBnb3RvIGZhaWw7CisgICAgfQorCisgICAgb2sgPSBwc2FzaW1fZGVzZXJpYWxpc2VfbWJlZHRsc19zdmNfa2V5X2lkX3QoCisgICAgICAgICZwb3MsICZyZW1haW5pbmcsCisgICAgICAgICZrZXkpOworICAgIGlmICghb2spIHsKKyAgICAgICAgZ290byBmYWlsOworICAgIH0KKworICAgIG9rID0gcHNhc2ltX2Rlc2VyaWFsaXNlX2J1ZmZlcigKKyAgICAgICAgJnBvcywgJnJlbWFpbmluZywKKyAgICAgICAgJmRhdGEsICZkYXRhX3NpemUpOworICAgIGlmICghb2spIHsKKyAgICAgICAgZ290byBmYWlsOworICAgIH0KKworICAgIG9rID0gcHNhc2ltX2Rlc2VyaWFsaXNlX3NpemVfdCgKKyAgICAgICAgJnBvcywgJnJlbWFpbmluZywKKyAgICAgICAgJmRhdGFfbGVuZ3RoKTsKKyAgICBpZiAoIW9rKSB7CisgICAgICAgIGdvdG8gZmFpbDsKKyAgICB9CisKKyAgICAvLyBOb3cgd2UgY2FsbCB0aGUgYWN0dWFsIHRhcmdldCBmdW5jdGlvbgorCisgICAgc3RhdHVzID0gcHNhX2V4cG9ydF9rZXkoCisgICAgICAgIGtleSwKKyAgICAgICAgZGF0YSwgZGF0YV9zaXplLAorICAgICAgICAmZGF0YV9sZW5ndGgKKyAgICAgICAgKTsKKworICAgIC8vIE5PVEU6IFNob3VsZCByZWFsbHkgY2hlY2sgdGhlcmUgaXMgbm8gb3ZlcmZsb3cgYXMgd2UgZ28gYWxvbmcuCisgICAgc2l6ZV90IHJlc3VsdF9zaXplID0KKyAgICAgICAgcHNhc2ltX3NlcmlhbGlzZV9iZWdpbl9uZWVkcygpICsKKyAgICAgICAgcHNhc2ltX3NlcmlhbGlzZV9wc2Ffc3RhdHVzX3RfbmVlZHMoc3RhdHVzKSArCisgICAgICAgIHBzYXNpbV9zZXJpYWxpc2VfYnVmZmVyX25lZWRzKGRhdGEsIGRhdGFfc2l6ZSkgKworICAgICAgICBwc2FzaW1fc2VyaWFsaXNlX3NpemVfdF9uZWVkcyhkYXRhX2xlbmd0aCk7CisKKyAgICByZXN1bHQgPSBtYWxsb2MocmVzdWx0X3NpemUpOworICAgIGlmIChyZXN1bHQgPT0gTlVMTCkgeworICAgICAgICBnb3RvIGZhaWw7CisgICAgfQorCisgICAgdWludDhfdCAqcnBvcyA9IHJlc3VsdDsKKyAgICBzaXplX3QgcnJlbWFpbiA9IHJlc3VsdF9zaXplOworCisgICAgb2sgPSBwc2FzaW1fc2VyaWFsaXNlX2JlZ2luKCZycG9zLCAmcnJlbWFpbik7CisgICAgaWYgKCFvaykgeworICAgICAgICBnb3RvIGZhaWw7CisgICAgfQorCisgICAgb2sgPSBwc2FzaW1fc2VyaWFsaXNlX3BzYV9zdGF0dXNfdCgKKyAgICAgICAgJnJwb3MsICZycmVtYWluLAorICAgICAgICBzdGF0dXMpOworICAgIGlmICghb2spIHsKKyAgICAgICAgZ290byBmYWlsOworICAgIH0KKworICAgIG9rID0gcHNhc2ltX3NlcmlhbGlzZV9idWZmZXIoCisgICAgICAgICZycG9zLCAmcnJlbWFpbiwKKyAgICAgICAgZGF0YSwgZGF0YV9zaXplKTsKKyAgICBpZiAoIW9rKSB7CisgICAgICAgIGdvdG8gZmFpbDsKKyAgICB9CisKKyAgICBvayA9IHBzYXNpbV9zZXJpYWxpc2Vfc2l6ZV90KAorICAgICAgICAmcnBvcywgJnJyZW1haW4sCisgICAgICAgIGRhdGFfbGVuZ3RoKTsKKyAgICBpZiAoIW9rKSB7CisgICAgICAgIGdvdG8gZmFpbDsKKyAgICB9CisKKyAgICAqb3V0X3BhcmFtcyA9IHJlc3VsdDsKKyAgICAqb3V0X3BhcmFtc19sZW4gPSByZXN1bHRfc2l6ZTsKKworICAgIGZyZWUoZGF0YSk7CisKKyAgICByZXR1cm4gMTsgICAvLyBzdWNjZXNzCisKK2ZhaWw6CisgICAgZnJlZShyZXN1bHQpOworCisgICAgZnJlZShkYXRhKTsKKworICAgIHJldHVybiAwOyAgICAgICAvLyBUaGlzIHNob3VsZG4ndCBoYXBwZW4hCit9CisKKy8vIFJldHVybnMgMSBmb3Igc3VjY2VzcywgMCBmb3IgZmFpbHVyZQoraW50IHBzYV9leHBvcnRfcHVibGljX2tleV93cmFwcGVyKAorICAgIHVpbnQ4X3QgKmluX3BhcmFtcywgc2l6ZV90IGluX3BhcmFtc19sZW4sCisgICAgdWludDhfdCAqKm91dF9wYXJhbXMsIHNpemVfdCAqb3V0X3BhcmFtc19sZW4pCit7CisgICAgcHNhX3N0YXR1c190IHN0YXR1cyA9IFBTQV9FUlJPUl9DT1JSVVBUSU9OX0RFVEVDVEVEOworICAgIG1iZWR0bHNfc3ZjX2tleV9pZF90IGtleTsKKyAgICB1aW50OF90ICpkYXRhID0gTlVMTDsKKyAgICBzaXplX3QgZGF0YV9zaXplOworICAgIHNpemVfdCBkYXRhX2xlbmd0aDsKKworICAgIHVpbnQ4X3QgKnBvcyA9IGluX3BhcmFtczsKKyAgICBzaXplX3QgcmVtYWluaW5nID0gaW5fcGFyYW1zX2xlbjsKKyAgICB1aW50OF90ICpyZXN1bHQgPSBOVUxMOworICAgIGludCBvazsKKworICAgIG9rID0gcHNhc2ltX2Rlc2VyaWFsaXNlX2JlZ2luKCZwb3MsICZyZW1haW5pbmcpOworICAgIGlmICghb2spIHsKKyAgICAgICAgZ290byBmYWlsOworICAgIH0KKworICAgIG9rID0gcHNhc2ltX2Rlc2VyaWFsaXNlX21iZWR0bHNfc3ZjX2tleV9pZF90KAorICAgICAgICAmcG9zLCAmcmVtYWluaW5nLAorICAgICAgICAma2V5KTsKKyAgICBpZiAoIW9rKSB7CisgICAgICAgIGdvdG8gZmFpbDsKKyAgICB9CisKKyAgICBvayA9IHBzYXNpbV9kZXNlcmlhbGlzZV9idWZmZXIoCisgICAgICAgICZwb3MsICZyZW1haW5pbmcsCisgICAgICAgICZkYXRhLCAmZGF0YV9zaXplKTsKKyAgICBpZiAoIW9rKSB7CisgICAgICAgIGdvdG8gZmFpbDsKKyAgICB9CisKKyAgICBvayA9IHBzYXNpbV9kZXNlcmlhbGlzZV9zaXplX3QoCisgICAgICAgICZwb3MsICZyZW1haW5pbmcsCisgICAgICAgICZkYXRhX2xlbmd0aCk7CisgICAgaWYgKCFvaykgeworICAgICAgICBnb3RvIGZhaWw7CisgICAgfQorCisgICAgLy8gTm93IHdlIGNhbGwgdGhlIGFjdHVhbCB0YXJnZXQgZnVuY3Rpb24KKworICAgIHN0YXR1cyA9IHBzYV9leHBvcnRfcHVibGljX2tleSgKKyAgICAgICAga2V5LAorICAgICAgICBkYXRhLCBkYXRhX3NpemUsCisgICAgICAgICZkYXRhX2xlbmd0aAorICAgICAgICApOworCisgICAgLy8gTk9URTogU2hvdWxkIHJlYWxseSBjaGVjayB0aGVyZSBpcyBubyBvdmVyZmxvdyBhcyB3ZSBnbyBhbG9uZy4KKyAgICBzaXplX3QgcmVzdWx0X3NpemUgPQorICAgICAgICBwc2FzaW1fc2VyaWFsaXNlX2JlZ2luX25lZWRzKCkgKworICAgICAgICBwc2FzaW1fc2VyaWFsaXNlX3BzYV9zdGF0dXNfdF9uZWVkcyhzdGF0dXMpICsKKyAgICAgICAgcHNhc2ltX3NlcmlhbGlzZV9idWZmZXJfbmVlZHMoZGF0YSwgZGF0YV9zaXplKSArCisgICAgICAgIHBzYXNpbV9zZXJpYWxpc2Vfc2l6ZV90X25lZWRzKGRhdGFfbGVuZ3RoKTsKKworICAgIHJlc3VsdCA9IG1hbGxvYyhyZXN1bHRfc2l6ZSk7CisgICAgaWYgKHJlc3VsdCA9PSBOVUxMKSB7CisgICAgICAgIGdvdG8gZmFpbDsKKyAgICB9CisKKyAgICB1aW50OF90ICpycG9zID0gcmVzdWx0OworICAgIHNpemVfdCBycmVtYWluID0gcmVzdWx0X3NpemU7CisKKyAgICBvayA9IHBzYXNpbV9zZXJpYWxpc2VfYmVnaW4oJnJwb3MsICZycmVtYWluKTsKKyAgICBpZiAoIW9rKSB7CisgICAgICAgIGdvdG8gZmFpbDsKKyAgICB9CisKKyAgICBvayA9IHBzYXNpbV9zZXJpYWxpc2VfcHNhX3N0YXR1c190KAorICAgICAgICAmcnBvcywgJnJyZW1haW4sCisgICAgICAgIHN0YXR1cyk7CisgICAgaWYgKCFvaykgeworICAgICAgICBnb3RvIGZhaWw7CisgICAgfQorCisgICAgb2sgPSBwc2FzaW1fc2VyaWFsaXNlX2J1ZmZlcigKKyAgICAgICAgJnJwb3MsICZycmVtYWluLAorICAgICAgICBkYXRhLCBkYXRhX3NpemUpOworICAgIGlmICghb2spIHsKKyAgICAgICAgZ290byBmYWlsOworICAgIH0KKworICAgIG9rID0gcHNhc2ltX3NlcmlhbGlzZV9zaXplX3QoCisgICAgICAgICZycG9zLCAmcnJlbWFpbiwKKyAgICAgICAgZGF0YV9sZW5ndGgpOworICAgIGlmICghb2spIHsKKyAgICAgICAgZ290byBmYWlsOworICAgIH0KKworICAgICpvdXRfcGFyYW1zID0gcmVzdWx0OworICAgICpvdXRfcGFyYW1zX2xlbiA9IHJlc3VsdF9zaXplOworCisgICAgZnJlZShkYXRhKTsKKworICAgIHJldHVybiAxOyAgIC8vIHN1Y2Nlc3MKKworZmFpbDoKKyAgICBmcmVlKHJlc3VsdCk7CisKKyAgICBmcmVlKGRhdGEpOworCisgICAgcmV0dXJuIDA7ICAgICAgIC8vIFRoaXMgc2hvdWxkbid0IGhhcHBlbiEKK30KKworLy8gUmV0dXJucyAxIGZvciBzdWNjZXNzLCAwIGZvciBmYWlsdXJlCitpbnQgcHNhX2dlbmVyYXRlX2tleV93cmFwcGVyKAorICAgIHVpbnQ4X3QgKmluX3BhcmFtcywgc2l6ZV90IGluX3BhcmFtc19sZW4sCisgICAgdWludDhfdCAqKm91dF9wYXJhbXMsIHNpemVfdCAqb3V0X3BhcmFtc19sZW4pCit7CisgICAgcHNhX3N0YXR1c190IHN0YXR1cyA9IFBTQV9FUlJPUl9DT1JSVVBUSU9OX0RFVEVDVEVEOworICAgIHBzYV9rZXlfYXR0cmlidXRlc190IGF0dHJpYnV0ZXM7CisgICAgbWJlZHRsc19zdmNfa2V5X2lkX3Qga2V5OworCisgICAgdWludDhfdCAqcG9zID0gaW5fcGFyYW1zOworICAgIHNpemVfdCByZW1haW5pbmcgPSBpbl9wYXJhbXNfbGVuOworICAgIHVpbnQ4X3QgKnJlc3VsdCA9IE5VTEw7CisgICAgaW50IG9rOworCisgICAgb2sgPSBwc2FzaW1fZGVzZXJpYWxpc2VfYmVnaW4oJnBvcywgJnJlbWFpbmluZyk7CisgICAgaWYgKCFvaykgeworICAgICAgICBnb3RvIGZhaWw7CisgICAgfQorCisgICAgb2sgPSBwc2FzaW1fZGVzZXJpYWxpc2VfcHNhX2tleV9hdHRyaWJ1dGVzX3QoCisgICAgICAgICZwb3MsICZyZW1haW5pbmcsCisgICAgICAgICZhdHRyaWJ1dGVzKTsKKyAgICBpZiAoIW9rKSB7CisgICAgICAgIGdvdG8gZmFpbDsKKyAgICB9CisKKyAgICBvayA9IHBzYXNpbV9kZXNlcmlhbGlzZV9tYmVkdGxzX3N2Y19rZXlfaWRfdCgKKyAgICAgICAgJnBvcywgJnJlbWFpbmluZywKKyAgICAgICAgJmtleSk7CisgICAgaWYgKCFvaykgeworICAgICAgICBnb3RvIGZhaWw7CisgICAgfQorCisgICAgLy8gTm93IHdlIGNhbGwgdGhlIGFjdHVhbCB0YXJnZXQgZnVuY3Rpb24KKworICAgIHN0YXR1cyA9IHBzYV9nZW5lcmF0ZV9rZXkoCisgICAgICAgICZhdHRyaWJ1dGVzLAorICAgICAgICAma2V5CisgICAgICAgICk7CisKKyAgICAvLyBOT1RFOiBTaG91bGQgcmVhbGx5IGNoZWNrIHRoZXJlIGlzIG5vIG92ZXJmbG93IGFzIHdlIGdvIGFsb25nLgorICAgIHNpemVfdCByZXN1bHRfc2l6ZSA9CisgICAgICAgIHBzYXNpbV9zZXJpYWxpc2VfYmVnaW5fbmVlZHMoKSArCisgICAgICAgIHBzYXNpbV9zZXJpYWxpc2VfcHNhX3N0YXR1c190X25lZWRzKHN0YXR1cykgKworICAgICAgICBwc2FzaW1fc2VyaWFsaXNlX21iZWR0bHNfc3ZjX2tleV9pZF90X25lZWRzKGtleSk7CisKKyAgICByZXN1bHQgPSBtYWxsb2MocmVzdWx0X3NpemUpOworICAgIGlmIChyZXN1bHQgPT0gTlVMTCkgeworICAgICAgICBnb3RvIGZhaWw7CisgICAgfQorCisgICAgdWludDhfdCAqcnBvcyA9IHJlc3VsdDsKKyAgICBzaXplX3QgcnJlbWFpbiA9IHJlc3VsdF9zaXplOworCisgICAgb2sgPSBwc2FzaW1fc2VyaWFsaXNlX2JlZ2luKCZycG9zLCAmcnJlbWFpbik7CisgICAgaWYgKCFvaykgeworICAgICAgICBnb3RvIGZhaWw7CisgICAgfQorCisgICAgb2sgPSBwc2FzaW1fc2VyaWFsaXNlX3BzYV9zdGF0dXNfdCgKKyAgICAgICAgJnJwb3MsICZycmVtYWluLAorICAgICAgICBzdGF0dXMpOworICAgIGlmICghb2spIHsKKyAgICAgICAgZ290byBmYWlsOworICAgIH0KKworICAgIG9rID0gcHNhc2ltX3NlcmlhbGlzZV9tYmVkdGxzX3N2Y19rZXlfaWRfdCgKKyAgICAgICAgJnJwb3MsICZycmVtYWluLAorICAgICAgICBrZXkpOworICAgIGlmICghb2spIHsKKyAgICAgICAgZ290byBmYWlsOworICAgIH0KKworICAgICpvdXRfcGFyYW1zID0gcmVzdWx0OworICAgICpvdXRfcGFyYW1zX2xlbiA9IHJlc3VsdF9zaXplOworCisgICAgcmV0dXJuIDE7ICAgLy8gc3VjY2VzcworCitmYWlsOgorICAgIGZyZWUocmVzdWx0KTsKKworICAgIHJldHVybiAwOyAgICAgICAvLyBUaGlzIHNob3VsZG4ndCBoYXBwZW4hCit9CisKKy8vIFJldHVybnMgMSBmb3Igc3VjY2VzcywgMCBmb3IgZmFpbHVyZQoraW50IHBzYV9nZW5lcmF0ZV9rZXlfZXh0X3dyYXBwZXIoCisgICAgdWludDhfdCAqaW5fcGFyYW1zLCBzaXplX3QgaW5fcGFyYW1zX2xlbiwKKyAgICB1aW50OF90ICoqb3V0X3BhcmFtcywgc2l6ZV90ICpvdXRfcGFyYW1zX2xlbikKK3sKKyAgICBwc2Ffc3RhdHVzX3Qgc3RhdHVzID0gUFNBX0VSUk9SX0NPUlJVUFRJT05fREVURUNURUQ7CisgICAgcHNhX2tleV9hdHRyaWJ1dGVzX3QgYXR0cmlidXRlczsKKyAgICBwc2Ffa2V5X3Byb2R1Y3Rpb25fcGFyYW1ldGVyc190ICpwYXJhbXMgPSBOVUxMOworICAgIHNpemVfdCBwYXJhbXNfZGF0YV9sZW5ndGg7CisgICAgbWJlZHRsc19zdmNfa2V5X2lkX3Qga2V5OworCisgICAgdWludDhfdCAqcG9zID0gaW5fcGFyYW1zOworICAgIHNpemVfdCByZW1haW5pbmcgPSBpbl9wYXJhbXNfbGVuOworICAgIHVpbnQ4X3QgKnJlc3VsdCA9IE5VTEw7CisgICAgaW50IG9rOworCisgICAgb2sgPSBwc2FzaW1fZGVzZXJpYWxpc2VfYmVnaW4oJnBvcywgJnJlbWFpbmluZyk7CisgICAgaWYgKCFvaykgeworICAgICAgICBnb3RvIGZhaWw7CisgICAgfQorCisgICAgb2sgPSBwc2FzaW1fZGVzZXJpYWxpc2VfcHNhX2tleV9hdHRyaWJ1dGVzX3QoCisgICAgICAgICZwb3MsICZyZW1haW5pbmcsCisgICAgICAgICZhdHRyaWJ1dGVzKTsKKyAgICBpZiAoIW9rKSB7CisgICAgICAgIGdvdG8gZmFpbDsKKyAgICB9CisKKyAgICBvayA9IHBzYXNpbV9kZXNlcmlhbGlzZV9wc2Ffa2V5X3Byb2R1Y3Rpb25fcGFyYW1ldGVyc190KAorICAgICAgICAmcG9zLCAmcmVtYWluaW5nLAorICAgICAgICAmcGFyYW1zLCAmcGFyYW1zX2RhdGFfbGVuZ3RoKTsKKyAgICBpZiAoIW9rKSB7CisgICAgICAgIGdvdG8gZmFpbDsKKyAgICB9CisKKyAgICBvayA9IHBzYXNpbV9kZXNlcmlhbGlzZV9tYmVkdGxzX3N2Y19rZXlfaWRfdCgKKyAgICAgICAgJnBvcywgJnJlbWFpbmluZywKKyAgICAgICAgJmtleSk7CisgICAgaWYgKCFvaykgeworICAgICAgICBnb3RvIGZhaWw7CisgICAgfQorCisgICAgLy8gTm93IHdlIGNhbGwgdGhlIGFjdHVhbCB0YXJnZXQgZnVuY3Rpb24KKworICAgIHN0YXR1cyA9IHBzYV9nZW5lcmF0ZV9rZXlfZXh0KAorICAgICAgICAmYXR0cmlidXRlcywKKyAgICAgICAgcGFyYW1zLCBwYXJhbXNfZGF0YV9sZW5ndGgsCisgICAgICAgICZrZXkKKyAgICAgICAgKTsKKworICAgIC8vIE5PVEU6IFNob3VsZCByZWFsbHkgY2hlY2sgdGhlcmUgaXMgbm8gb3ZlcmZsb3cgYXMgd2UgZ28gYWxvbmcuCisgICAgc2l6ZV90IHJlc3VsdF9zaXplID0KKyAgICAgICAgcHNhc2ltX3NlcmlhbGlzZV9iZWdpbl9uZWVkcygpICsKKyAgICAgICAgcHNhc2ltX3NlcmlhbGlzZV9wc2Ffc3RhdHVzX3RfbmVlZHMoc3RhdHVzKSArCisgICAgICAgIHBzYXNpbV9zZXJpYWxpc2VfbWJlZHRsc19zdmNfa2V5X2lkX3RfbmVlZHMoa2V5KTsKKworICAgIHJlc3VsdCA9IG1hbGxvYyhyZXN1bHRfc2l6ZSk7CisgICAgaWYgKHJlc3VsdCA9PSBOVUxMKSB7CisgICAgICAgIGdvdG8gZmFpbDsKKyAgICB9CisKKyAgICB1aW50OF90ICpycG9zID0gcmVzdWx0OworICAgIHNpemVfdCBycmVtYWluID0gcmVzdWx0X3NpemU7CisKKyAgICBvayA9IHBzYXNpbV9zZXJpYWxpc2VfYmVnaW4oJnJwb3MsICZycmVtYWluKTsKKyAgICBpZiAoIW9rKSB7CisgICAgICAgIGdvdG8gZmFpbDsKKyAgICB9CisKKyAgICBvayA9IHBzYXNpbV9zZXJpYWxpc2VfcHNhX3N0YXR1c190KAorICAgICAgICAmcnBvcywgJnJyZW1haW4sCisgICAgICAgIHN0YXR1cyk7CisgICAgaWYgKCFvaykgeworICAgICAgICBnb3RvIGZhaWw7CisgICAgfQorCisgICAgb2sgPSBwc2FzaW1fc2VyaWFsaXNlX21iZWR0bHNfc3ZjX2tleV9pZF90KAorICAgICAgICAmcnBvcywgJnJyZW1haW4sCisgICAgICAgIGtleSk7CisgICAgaWYgKCFvaykgeworICAgICAgICBnb3RvIGZhaWw7CisgICAgfQorCisgICAgKm91dF9wYXJhbXMgPSByZXN1bHQ7CisgICAgKm91dF9wYXJhbXNfbGVuID0gcmVzdWx0X3NpemU7CisKKyAgICBmcmVlKHBhcmFtcyk7CisKKyAgICByZXR1cm4gMTsgICAvLyBzdWNjZXNzCisKK2ZhaWw6CisgICAgZnJlZShyZXN1bHQpOworCisgICAgZnJlZShwYXJhbXMpOworCisgICAgcmV0dXJuIDA7ICAgICAgIC8vIFRoaXMgc2hvdWxkbid0IGhhcHBlbiEKK30KKworLy8gUmV0dXJucyAxIGZvciBzdWNjZXNzLCAwIGZvciBmYWlsdXJlCitpbnQgcHNhX2dlbmVyYXRlX3JhbmRvbV93cmFwcGVyKAorICAgIHVpbnQ4X3QgKmluX3BhcmFtcywgc2l6ZV90IGluX3BhcmFtc19sZW4sCisgICAgdWludDhfdCAqKm91dF9wYXJhbXMsIHNpemVfdCAqb3V0X3BhcmFtc19sZW4pCit7CisgICAgcHNhX3N0YXR1c190IHN0YXR1cyA9IFBTQV9FUlJPUl9DT1JSVVBUSU9OX0RFVEVDVEVEOworICAgIHVpbnQ4X3QgKm91dHB1dCA9IE5VTEw7CisgICAgc2l6ZV90IG91dHB1dF9zaXplOworCisgICAgdWludDhfdCAqcG9zID0gaW5fcGFyYW1zOworICAgIHNpemVfdCByZW1haW5pbmcgPSBpbl9wYXJhbXNfbGVuOworICAgIHVpbnQ4X3QgKnJlc3VsdCA9IE5VTEw7CisgICAgaW50IG9rOworCisgICAgb2sgPSBwc2FzaW1fZGVzZXJpYWxpc2VfYmVnaW4oJnBvcywgJnJlbWFpbmluZyk7CisgICAgaWYgKCFvaykgeworICAgICAgICBnb3RvIGZhaWw7CisgICAgfQorCisgICAgb2sgPSBwc2FzaW1fZGVzZXJpYWxpc2VfYnVmZmVyKAorICAgICAgICAmcG9zLCAmcmVtYWluaW5nLAorICAgICAgICAmb3V0cHV0LCAmb3V0cHV0X3NpemUpOworICAgIGlmICghb2spIHsKKyAgICAgICAgZ290byBmYWlsOworICAgIH0KKworICAgIC8vIE5vdyB3ZSBjYWxsIHRoZSBhY3R1YWwgdGFyZ2V0IGZ1bmN0aW9uCisKKyAgICBzdGF0dXMgPSBwc2FfZ2VuZXJhdGVfcmFuZG9tKAorICAgICAgICBvdXRwdXQsIG91dHB1dF9zaXplCisgICAgICAgICk7CisKKyAgICAvLyBOT1RFOiBTaG91bGQgcmVhbGx5IGNoZWNrIHRoZXJlIGlzIG5vIG92ZXJmbG93IGFzIHdlIGdvIGFsb25nLgorICAgIHNpemVfdCByZXN1bHRfc2l6ZSA9CisgICAgICAgIHBzYXNpbV9zZXJpYWxpc2VfYmVnaW5fbmVlZHMoKSArCisgICAgICAgIHBzYXNpbV9zZXJpYWxpc2VfcHNhX3N0YXR1c190X25lZWRzKHN0YXR1cykgKworICAgICAgICBwc2FzaW1fc2VyaWFsaXNlX2J1ZmZlcl9uZWVkcyhvdXRwdXQsIG91dHB1dF9zaXplKTsKKworICAgIHJlc3VsdCA9IG1hbGxvYyhyZXN1bHRfc2l6ZSk7CisgICAgaWYgKHJlc3VsdCA9PSBOVUxMKSB7CisgICAgICAgIGdvdG8gZmFpbDsKKyAgICB9CisKKyAgICB1aW50OF90ICpycG9zID0gcmVzdWx0OworICAgIHNpemVfdCBycmVtYWluID0gcmVzdWx0X3NpemU7CisKKyAgICBvayA9IHBzYXNpbV9zZXJpYWxpc2VfYmVnaW4oJnJwb3MsICZycmVtYWluKTsKKyAgICBpZiAoIW9rKSB7CisgICAgICAgIGdvdG8gZmFpbDsKKyAgICB9CisKKyAgICBvayA9IHBzYXNpbV9zZXJpYWxpc2VfcHNhX3N0YXR1c190KAorICAgICAgICAmcnBvcywgJnJyZW1haW4sCisgICAgICAgIHN0YXR1cyk7CisgICAgaWYgKCFvaykgeworICAgICAgICBnb3RvIGZhaWw7CisgICAgfQorCisgICAgb2sgPSBwc2FzaW1fc2VyaWFsaXNlX2J1ZmZlcigKKyAgICAgICAgJnJwb3MsICZycmVtYWluLAorICAgICAgICBvdXRwdXQsIG91dHB1dF9zaXplKTsKKyAgICBpZiAoIW9rKSB7CisgICAgICAgIGdvdG8gZmFpbDsKKyAgICB9CisKKyAgICAqb3V0X3BhcmFtcyA9IHJlc3VsdDsKKyAgICAqb3V0X3BhcmFtc19sZW4gPSByZXN1bHRfc2l6ZTsKKworICAgIGZyZWUob3V0cHV0KTsKKworICAgIHJldHVybiAxOyAgIC8vIHN1Y2Nlc3MKKworZmFpbDoKKyAgICBmcmVlKHJlc3VsdCk7CisKKyAgICBmcmVlKG91dHB1dCk7CisKKyAgICByZXR1cm4gMDsgICAgICAgLy8gVGhpcyBzaG91bGRuJ3QgaGFwcGVuIQorfQorCisvLyBSZXR1cm5zIDEgZm9yIHN1Y2Nlc3MsIDAgZm9yIGZhaWx1cmUKIGludCBwc2FfZ2V0X2tleV9hdHRyaWJ1dGVzX3dyYXBwZXIoCiAgICAgdWludDhfdCAqaW5fcGFyYW1zLCBzaXplX3QgaW5fcGFyYW1zX2xlbiwKICAgICB1aW50OF90ICoqb3V0X3BhcmFtcywgc2l6ZV90ICpvdXRfcGFyYW1zX2xlbikKQEAgLTEzNDMsMTIgKzMzMTIsMTYgQEAKICAgICAgICAgZ290byBmYWlsOwogICAgIH0KIAotICAgIG9rID0gcHNhc2ltX2Rlc2VyaWFsaXNlX21iZWR0bHNfc3ZjX2tleV9pZF90KCZwb3MsICZyZW1haW5pbmcsICZrZXkpOworICAgIG9rID0gcHNhc2ltX2Rlc2VyaWFsaXNlX21iZWR0bHNfc3ZjX2tleV9pZF90KAorICAgICAgICAmcG9zLCAmcmVtYWluaW5nLAorICAgICAgICAma2V5KTsKICAgICBpZiAoIW9rKSB7CiAgICAgICAgIGdvdG8gZmFpbDsKICAgICB9CiAKLSAgICBvayA9IHBzYXNpbV9kZXNlcmlhbGlzZV9wc2Ffa2V5X2F0dHJpYnV0ZXNfdCgmcG9zLCAmcmVtYWluaW5nLCAmYXR0cmlidXRlcyk7CisgICAgb2sgPSBwc2FzaW1fZGVzZXJpYWxpc2VfcHNhX2tleV9hdHRyaWJ1dGVzX3QoCisgICAgICAgICZwb3MsICZyZW1haW5pbmcsCisgICAgICAgICZhdHRyaWJ1dGVzKTsKICAgICBpZiAoIW9rKSB7CiAgICAgICAgIGdvdG8gZmFpbDsKICAgICB9CkBAIC0xMzc5LDEyICszMzUyLDE2IEBACiAgICAgICAgIGdvdG8gZmFpbDsKICAgICB9CiAKLSAgICBvayA9IHBzYXNpbV9zZXJpYWxpc2VfcHNhX3N0YXR1c190KCZycG9zLCAmcnJlbWFpbiwgc3RhdHVzKTsKKyAgICBvayA9IHBzYXNpbV9zZXJpYWxpc2VfcHNhX3N0YXR1c190KAorICAgICAgICAmcnBvcywgJnJyZW1haW4sCisgICAgICAgIHN0YXR1cyk7CiAgICAgaWYgKCFvaykgewogICAgICAgICBnb3RvIGZhaWw7CiAgICAgfQogCi0gICAgb2sgPSBwc2FzaW1fc2VyaWFsaXNlX3BzYV9rZXlfYXR0cmlidXRlc190KCZycG9zLCAmcnJlbWFpbiwgYXR0cmlidXRlcyk7CisgICAgb2sgPSBwc2FzaW1fc2VyaWFsaXNlX3BzYV9rZXlfYXR0cmlidXRlc190KAorICAgICAgICAmcnBvcywgJnJyZW1haW4sCisgICAgICAgIGF0dHJpYnV0ZXMpOwogICAgIGlmICghb2spIHsKICAgICAgICAgZ290byBmYWlsOwogICAgIH0KQEAgLTE0MTgsNyArMzM5NSw5IEBACiAgICAgICAgIGdvdG8gZmFpbDsKICAgICB9CiAKLSAgICBvayA9IHBzYXNpbV9zZXJ2ZXJfZGVzZXJpYWxpc2VfcHNhX2hhc2hfb3BlcmF0aW9uX3QoJnBvcywgJnJlbWFpbmluZywgJm9wZXJhdGlvbik7CisgICAgb2sgPSBwc2FzaW1fc2VydmVyX2Rlc2VyaWFsaXNlX3BzYV9oYXNoX29wZXJhdGlvbl90KAorICAgICAgICAmcG9zLCAmcmVtYWluaW5nLAorICAgICAgICAmb3BlcmF0aW9uKTsKICAgICBpZiAoIW9rKSB7CiAgICAgICAgIGdvdG8gZmFpbDsKICAgICB9CkBAIC0xNDQ4LDEyICszNDI3LDE2IEBACiAgICAgICAgIGdvdG8gZmFpbDsKICAgICB9CiAKLSAgICBvayA9IHBzYXNpbV9zZXJpYWxpc2VfcHNhX3N0YXR1c190KCZycG9zLCAmcnJlbWFpbiwgc3RhdHVzKTsKKyAgICBvayA9IHBzYXNpbV9zZXJpYWxpc2VfcHNhX3N0YXR1c190KAorICAgICAgICAmcnBvcywgJnJyZW1haW4sCisgICAgICAgIHN0YXR1cyk7CiAgICAgaWYgKCFvaykgewogICAgICAgICBnb3RvIGZhaWw7CiAgICAgfQogCi0gICAgb2sgPSBwc2FzaW1fc2VydmVyX3NlcmlhbGlzZV9wc2FfaGFzaF9vcGVyYXRpb25fdCgmcnBvcywgJnJyZW1haW4sIG9wZXJhdGlvbik7CisgICAgb2sgPSBwc2FzaW1fc2VydmVyX3NlcmlhbGlzZV9wc2FfaGFzaF9vcGVyYXRpb25fdCgKKyAgICAgICAgJnJwb3MsICZycmVtYWluLAorICAgICAgICBvcGVyYXRpb24sIDEpOwogICAgIGlmICghb2spIHsKICAgICAgICAgZ290byBmYWlsOwogICAgIH0KQEAgLTE0ODgsMTIgKzM0NzEsMTYgQEAKICAgICAgICAgZ290byBmYWlsOwogICAgIH0KIAotICAgIG9rID0gcHNhc2ltX3NlcnZlcl9kZXNlcmlhbGlzZV9wc2FfaGFzaF9vcGVyYXRpb25fdCgmcG9zLCAmcmVtYWluaW5nLCAmc291cmNlX29wZXJhdGlvbik7CisgICAgb2sgPSBwc2FzaW1fc2VydmVyX2Rlc2VyaWFsaXNlX3BzYV9oYXNoX29wZXJhdGlvbl90KAorICAgICAgICAmcG9zLCAmcmVtYWluaW5nLAorICAgICAgICAmc291cmNlX29wZXJhdGlvbik7CiAgICAgaWYgKCFvaykgewogICAgICAgICBnb3RvIGZhaWw7CiAgICAgfQogCi0gICAgb2sgPSBwc2FzaW1fc2VydmVyX2Rlc2VyaWFsaXNlX3BzYV9oYXNoX29wZXJhdGlvbl90KCZwb3MsICZyZW1haW5pbmcsICZ0YXJnZXRfb3BlcmF0aW9uKTsKKyAgICBvayA9IHBzYXNpbV9zZXJ2ZXJfZGVzZXJpYWxpc2VfcHNhX2hhc2hfb3BlcmF0aW9uX3QoCisgICAgICAgICZwb3MsICZyZW1haW5pbmcsCisgICAgICAgICZ0YXJnZXRfb3BlcmF0aW9uKTsKICAgICBpZiAoIW9rKSB7CiAgICAgICAgIGdvdG8gZmFpbDsKICAgICB9CkBAIC0xNTI0LDEyICszNTExLDE2IEBACiAgICAgICAgIGdvdG8gZmFpbDsKICAgICB9CiAKLSAgICBvayA9IHBzYXNpbV9zZXJpYWxpc2VfcHNhX3N0YXR1c190KCZycG9zLCAmcnJlbWFpbiwgc3RhdHVzKTsKKyAgICBvayA9IHBzYXNpbV9zZXJpYWxpc2VfcHNhX3N0YXR1c190KAorICAgICAgICAmcnBvcywgJnJyZW1haW4sCisgICAgICAgIHN0YXR1cyk7CiAgICAgaWYgKCFvaykgewogICAgICAgICBnb3RvIGZhaWw7CiAgICAgfQogCi0gICAgb2sgPSBwc2FzaW1fc2VydmVyX3NlcmlhbGlzZV9wc2FfaGFzaF9vcGVyYXRpb25fdCgmcnBvcywgJnJyZW1haW4sIHRhcmdldF9vcGVyYXRpb24pOworICAgIG9rID0gcHNhc2ltX3NlcnZlcl9zZXJpYWxpc2VfcHNhX2hhc2hfb3BlcmF0aW9uX3QoCisgICAgICAgICZycG9zLCAmcnJlbWFpbiwKKyAgICAgICAgdGFyZ2V0X29wZXJhdGlvbiwgMCk7CiAgICAgaWYgKCFvaykgewogICAgICAgICBnb3RvIGZhaWw7CiAgICAgfQpAQCAtMTU2NywxNyArMzU1OCwyMyBAQAogICAgICAgICBnb3RvIGZhaWw7CiAgICAgfQogCi0gICAgb2sgPSBwc2FzaW1fZGVzZXJpYWxpc2VfcHNhX2FsZ29yaXRobV90KCZwb3MsICZyZW1haW5pbmcsICZhbGcpOworICAgIG9rID0gcHNhc2ltX2Rlc2VyaWFsaXNlX3BzYV9hbGdvcml0aG1fdCgKKyAgICAgICAgJnBvcywgJnJlbWFpbmluZywKKyAgICAgICAgJmFsZyk7CiAgICAgaWYgKCFvaykgewogICAgICAgICBnb3RvIGZhaWw7CiAgICAgfQogCi0gICAgb2sgPSBwc2FzaW1fZGVzZXJpYWxpc2VfYnVmZmVyKCZwb3MsICZyZW1haW5pbmcsICZpbnB1dCwgJmlucHV0X2xlbmd0aCk7CisgICAgb2sgPSBwc2FzaW1fZGVzZXJpYWxpc2VfYnVmZmVyKAorICAgICAgICAmcG9zLCAmcmVtYWluaW5nLAorICAgICAgICAmaW5wdXQsICZpbnB1dF9sZW5ndGgpOwogICAgIGlmICghb2spIHsKICAgICAgICAgZ290byBmYWlsOwogICAgIH0KIAotICAgIG9rID0gcHNhc2ltX2Rlc2VyaWFsaXNlX2J1ZmZlcigmcG9zLCAmcmVtYWluaW5nLCAmaGFzaCwgJmhhc2hfbGVuZ3RoKTsKKyAgICBvayA9IHBzYXNpbV9kZXNlcmlhbGlzZV9idWZmZXIoCisgICAgICAgICZwb3MsICZyZW1haW5pbmcsCisgICAgICAgICZoYXNoLCAmaGFzaF9sZW5ndGgpOwogICAgIGlmICghb2spIHsKICAgICAgICAgZ290byBmYWlsOwogICAgIH0KQEAgLTE2MDgsNyArMzYwNSw5IEBACiAgICAgICAgIGdvdG8gZmFpbDsKICAgICB9CiAKLSAgICBvayA9IHBzYXNpbV9zZXJpYWxpc2VfcHNhX3N0YXR1c190KCZycG9zLCAmcnJlbWFpbiwgc3RhdHVzKTsKKyAgICBvayA9IHBzYXNpbV9zZXJpYWxpc2VfcHNhX3N0YXR1c190KAorICAgICAgICAmcnBvcywgJnJyZW1haW4sCisgICAgICAgIHN0YXR1cyk7CiAgICAgaWYgKCFvaykgewogICAgICAgICBnb3RvIGZhaWw7CiAgICAgfQpAQCAtMTY1MywyMiArMzY1MiwzMCBAQAogICAgICAgICBnb3RvIGZhaWw7CiAgICAgfQogCi0gICAgb2sgPSBwc2FzaW1fZGVzZXJpYWxpc2VfcHNhX2FsZ29yaXRobV90KCZwb3MsICZyZW1haW5pbmcsICZhbGcpOworICAgIG9rID0gcHNhc2ltX2Rlc2VyaWFsaXNlX3BzYV9hbGdvcml0aG1fdCgKKyAgICAgICAgJnBvcywgJnJlbWFpbmluZywKKyAgICAgICAgJmFsZyk7CiAgICAgaWYgKCFvaykgewogICAgICAgICBnb3RvIGZhaWw7CiAgICAgfQogCi0gICAgb2sgPSBwc2FzaW1fZGVzZXJpYWxpc2VfYnVmZmVyKCZwb3MsICZyZW1haW5pbmcsICZpbnB1dCwgJmlucHV0X2xlbmd0aCk7CisgICAgb2sgPSBwc2FzaW1fZGVzZXJpYWxpc2VfYnVmZmVyKAorICAgICAgICAmcG9zLCAmcmVtYWluaW5nLAorICAgICAgICAmaW5wdXQsICZpbnB1dF9sZW5ndGgpOwogICAgIGlmICghb2spIHsKICAgICAgICAgZ290byBmYWlsOwogICAgIH0KIAotICAgIG9rID0gcHNhc2ltX2Rlc2VyaWFsaXNlX2J1ZmZlcigmcG9zLCAmcmVtYWluaW5nLCAmaGFzaCwgJmhhc2hfc2l6ZSk7CisgICAgb2sgPSBwc2FzaW1fZGVzZXJpYWxpc2VfYnVmZmVyKAorICAgICAgICAmcG9zLCAmcmVtYWluaW5nLAorICAgICAgICAmaGFzaCwgJmhhc2hfc2l6ZSk7CiAgICAgaWYgKCFvaykgewogICAgICAgICBnb3RvIGZhaWw7CiAgICAgfQogCi0gICAgb2sgPSBwc2FzaW1fZGVzZXJpYWxpc2Vfc2l6ZV90KCZwb3MsICZyZW1haW5pbmcsICZoYXNoX2xlbmd0aCk7CisgICAgb2sgPSBwc2FzaW1fZGVzZXJpYWxpc2Vfc2l6ZV90KAorICAgICAgICAmcG9zLCAmcmVtYWluaW5nLAorICAgICAgICAmaGFzaF9sZW5ndGgpOwogICAgIGlmICghb2spIHsKICAgICAgICAgZ290byBmYWlsOwogICAgIH0KQEAgLTE3MDIsMTcgKzM3MDksMjMgQEAKICAgICAgICAgZ290byBmYWlsOwogICAgIH0KIAotICAgIG9rID0gcHNhc2ltX3NlcmlhbGlzZV9wc2Ffc3RhdHVzX3QoJnJwb3MsICZycmVtYWluLCBzdGF0dXMpOworICAgIG9rID0gcHNhc2ltX3NlcmlhbGlzZV9wc2Ffc3RhdHVzX3QoCisgICAgICAgICZycG9zLCAmcnJlbWFpbiwKKyAgICAgICAgc3RhdHVzKTsKICAgICBpZiAoIW9rKSB7CiAgICAgICAgIGdvdG8gZmFpbDsKICAgICB9CiAKLSAgICBvayA9IHBzYXNpbV9zZXJpYWxpc2VfYnVmZmVyKCZycG9zLCAmcnJlbWFpbiwgaGFzaCwgaGFzaF9zaXplKTsKKyAgICBvayA9IHBzYXNpbV9zZXJpYWxpc2VfYnVmZmVyKAorICAgICAgICAmcnBvcywgJnJyZW1haW4sCisgICAgICAgIGhhc2gsIGhhc2hfc2l6ZSk7CiAgICAgaWYgKCFvaykgewogICAgICAgICBnb3RvIGZhaWw7CiAgICAgfQogCi0gICAgb2sgPSBwc2FzaW1fc2VyaWFsaXNlX3NpemVfdCgmcnBvcywgJnJyZW1haW4sIGhhc2hfbGVuZ3RoKTsKKyAgICBvayA9IHBzYXNpbV9zZXJpYWxpc2Vfc2l6ZV90KAorICAgICAgICAmcnBvcywgJnJyZW1haW4sCisgICAgICAgIGhhc2hfbGVuZ3RoKTsKICAgICBpZiAoIW9rKSB7CiAgICAgICAgIGdvdG8gZmFpbDsKICAgICB9CkBAIC0xNzU1LDE3ICszNzY4LDIzIEBACiAgICAgICAgIGdvdG8gZmFpbDsKICAgICB9CiAKLSAgICBvayA9IHBzYXNpbV9zZXJ2ZXJfZGVzZXJpYWxpc2VfcHNhX2hhc2hfb3BlcmF0aW9uX3QoJnBvcywgJnJlbWFpbmluZywgJm9wZXJhdGlvbik7CisgICAgb2sgPSBwc2FzaW1fc2VydmVyX2Rlc2VyaWFsaXNlX3BzYV9oYXNoX29wZXJhdGlvbl90KAorICAgICAgICAmcG9zLCAmcmVtYWluaW5nLAorICAgICAgICAmb3BlcmF0aW9uKTsKICAgICBpZiAoIW9rKSB7CiAgICAgICAgIGdvdG8gZmFpbDsKICAgICB9CiAKLSAgICBvayA9IHBzYXNpbV9kZXNlcmlhbGlzZV9idWZmZXIoJnBvcywgJnJlbWFpbmluZywgJmhhc2gsICZoYXNoX3NpemUpOworICAgIG9rID0gcHNhc2ltX2Rlc2VyaWFsaXNlX2J1ZmZlcigKKyAgICAgICAgJnBvcywgJnJlbWFpbmluZywKKyAgICAgICAgJmhhc2gsICZoYXNoX3NpemUpOwogICAgIGlmICghb2spIHsKICAgICAgICAgZ290byBmYWlsOwogICAgIH0KIAotICAgIG9rID0gcHNhc2ltX2Rlc2VyaWFsaXNlX3NpemVfdCgmcG9zLCAmcmVtYWluaW5nLCAmaGFzaF9sZW5ndGgpOworICAgIG9rID0gcHNhc2ltX2Rlc2VyaWFsaXNlX3NpemVfdCgKKyAgICAgICAgJnBvcywgJnJlbWFpbmluZywKKyAgICAgICAgJmhhc2hfbGVuZ3RoKTsKICAgICBpZiAoIW9rKSB7CiAgICAgICAgIGdvdG8gZmFpbDsKICAgICB9CkBAIC0xNzk5LDIyICszODE4LDMwIEBACiAgICAgICAgIGdvdG8gZmFpbDsKICAgICB9CiAKLSAgICBvayA9IHBzYXNpbV9zZXJpYWxpc2VfcHNhX3N0YXR1c190KCZycG9zLCAmcnJlbWFpbiwgc3RhdHVzKTsKKyAgICBvayA9IHBzYXNpbV9zZXJpYWxpc2VfcHNhX3N0YXR1c190KAorICAgICAgICAmcnBvcywgJnJyZW1haW4sCisgICAgICAgIHN0YXR1cyk7CiAgICAgaWYgKCFvaykgewogICAgICAgICBnb3RvIGZhaWw7CiAgICAgfQogCi0gICAgb2sgPSBwc2FzaW1fc2VydmVyX3NlcmlhbGlzZV9wc2FfaGFzaF9vcGVyYXRpb25fdCgmcnBvcywgJnJyZW1haW4sIG9wZXJhdGlvbik7CisgICAgb2sgPSBwc2FzaW1fc2VydmVyX3NlcmlhbGlzZV9wc2FfaGFzaF9vcGVyYXRpb25fdCgKKyAgICAgICAgJnJwb3MsICZycmVtYWluLAorICAgICAgICBvcGVyYXRpb24sIDEpOwogICAgIGlmICghb2spIHsKICAgICAgICAgZ290byBmYWlsOwogICAgIH0KIAotICAgIG9rID0gcHNhc2ltX3NlcmlhbGlzZV9idWZmZXIoJnJwb3MsICZycmVtYWluLCBoYXNoLCBoYXNoX3NpemUpOworICAgIG9rID0gcHNhc2ltX3NlcmlhbGlzZV9idWZmZXIoCisgICAgICAgICZycG9zLCAmcnJlbWFpbiwKKyAgICAgICAgaGFzaCwgaGFzaF9zaXplKTsKICAgICBpZiAoIW9rKSB7CiAgICAgICAgIGdvdG8gZmFpbDsKICAgICB9CiAKLSAgICBvayA9IHBzYXNpbV9zZXJpYWxpc2Vfc2l6ZV90KCZycG9zLCAmcnJlbWFpbiwgaGFzaF9sZW5ndGgpOworICAgIG9rID0gcHNhc2ltX3NlcmlhbGlzZV9zaXplX3QoCisgICAgICAgICZycG9zLCAmcnJlbWFpbiwKKyAgICAgICAgaGFzaF9sZW5ndGgpOwogICAgIGlmICghb2spIHsKICAgICAgICAgZ290byBmYWlsOwogICAgIH0KQEAgLTE4NTMsMTIgKzM4ODAsMTYgQEAKICAgICAgICAgZ290byBmYWlsOwogICAgIH0KIAotICAgIG9rID0gcHNhc2ltX3NlcnZlcl9kZXNlcmlhbGlzZV9wc2FfaGFzaF9vcGVyYXRpb25fdCgmcG9zLCAmcmVtYWluaW5nLCAmb3BlcmF0aW9uKTsKKyAgICBvayA9IHBzYXNpbV9zZXJ2ZXJfZGVzZXJpYWxpc2VfcHNhX2hhc2hfb3BlcmF0aW9uX3QoCisgICAgICAgICZwb3MsICZyZW1haW5pbmcsCisgICAgICAgICZvcGVyYXRpb24pOwogICAgIGlmICghb2spIHsKICAgICAgICAgZ290byBmYWlsOwogICAgIH0KIAotICAgIG9rID0gcHNhc2ltX2Rlc2VyaWFsaXNlX3BzYV9hbGdvcml0aG1fdCgmcG9zLCAmcmVtYWluaW5nLCAmYWxnKTsKKyAgICBvayA9IHBzYXNpbV9kZXNlcmlhbGlzZV9wc2FfYWxnb3JpdGhtX3QoCisgICAgICAgICZwb3MsICZyZW1haW5pbmcsCisgICAgICAgICZhbGcpOwogICAgIGlmICghb2spIHsKICAgICAgICAgZ290byBmYWlsOwogICAgIH0KQEAgLTE4ODksMTIgKzM5MjAsMTYgQEAKICAgICAgICAgZ290byBmYWlsOwogICAgIH0KIAotICAgIG9rID0gcHNhc2ltX3NlcmlhbGlzZV9wc2Ffc3RhdHVzX3QoJnJwb3MsICZycmVtYWluLCBzdGF0dXMpOworICAgIG9rID0gcHNhc2ltX3NlcmlhbGlzZV9wc2Ffc3RhdHVzX3QoCisgICAgICAgICZycG9zLCAmcnJlbWFpbiwKKyAgICAgICAgc3RhdHVzKTsKICAgICBpZiAoIW9rKSB7CiAgICAgICAgIGdvdG8gZmFpbDsKICAgICB9CiAKLSAgICBvayA9IHBzYXNpbV9zZXJ2ZXJfc2VyaWFsaXNlX3BzYV9oYXNoX29wZXJhdGlvbl90KCZycG9zLCAmcnJlbWFpbiwgb3BlcmF0aW9uKTsKKyAgICBvayA9IHBzYXNpbV9zZXJ2ZXJfc2VyaWFsaXNlX3BzYV9oYXNoX29wZXJhdGlvbl90KAorICAgICAgICAmcnBvcywgJnJyZW1haW4sCisgICAgICAgIG9wZXJhdGlvbiwgMCk7CiAgICAgaWYgKCFvaykgewogICAgICAgICBnb3RvIGZhaWw7CiAgICAgfQpAQCAtMTkzMCwxMiArMzk2NSwxNiBAQAogICAgICAgICBnb3RvIGZhaWw7CiAgICAgfQogCi0gICAgb2sgPSBwc2FzaW1fc2VydmVyX2Rlc2VyaWFsaXNlX3BzYV9oYXNoX29wZXJhdGlvbl90KCZwb3MsICZyZW1haW5pbmcsICZvcGVyYXRpb24pOworICAgIG9rID0gcHNhc2ltX3NlcnZlcl9kZXNlcmlhbGlzZV9wc2FfaGFzaF9vcGVyYXRpb25fdCgKKyAgICAgICAgJnBvcywgJnJlbWFpbmluZywKKyAgICAgICAgJm9wZXJhdGlvbik7CiAgICAgaWYgKCFvaykgewogICAgICAgICBnb3RvIGZhaWw7CiAgICAgfQogCi0gICAgb2sgPSBwc2FzaW1fZGVzZXJpYWxpc2VfYnVmZmVyKCZwb3MsICZyZW1haW5pbmcsICZpbnB1dCwgJmlucHV0X2xlbmd0aCk7CisgICAgb2sgPSBwc2FzaW1fZGVzZXJpYWxpc2VfYnVmZmVyKAorICAgICAgICAmcG9zLCAmcmVtYWluaW5nLAorICAgICAgICAmaW5wdXQsICZpbnB1dF9sZW5ndGgpOwogICAgIGlmICghb2spIHsKICAgICAgICAgZ290byBmYWlsOwogICAgIH0KQEAgLTE5NjYsMTIgKzQwMDUsMTYgQEAKICAgICAgICAgZ290byBmYWlsOwogICAgIH0KIAotICAgIG9rID0gcHNhc2ltX3NlcmlhbGlzZV9wc2Ffc3RhdHVzX3QoJnJwb3MsICZycmVtYWluLCBzdGF0dXMpOworICAgIG9rID0gcHNhc2ltX3NlcmlhbGlzZV9wc2Ffc3RhdHVzX3QoCisgICAgICAgICZycG9zLCAmcnJlbWFpbiwKKyAgICAgICAgc3RhdHVzKTsKICAgICBpZiAoIW9rKSB7CiAgICAgICAgIGdvdG8gZmFpbDsKICAgICB9CiAKLSAgICBvayA9IHBzYXNpbV9zZXJ2ZXJfc2VyaWFsaXNlX3BzYV9oYXNoX29wZXJhdGlvbl90KCZycG9zLCAmcnJlbWFpbiwgb3BlcmF0aW9uKTsKKyAgICBvayA9IHBzYXNpbV9zZXJ2ZXJfc2VyaWFsaXNlX3BzYV9oYXNoX29wZXJhdGlvbl90KAorICAgICAgICAmcnBvcywgJnJyZW1haW4sCisgICAgICAgIG9wZXJhdGlvbiwgMCk7CiAgICAgaWYgKCFvaykgewogICAgICAgICBnb3RvIGZhaWw7CiAgICAgfQpAQCAtMjAxMSwxMiArNDA1NCwxNiBAQAogICAgICAgICBnb3RvIGZhaWw7CiAgICAgfQogCi0gICAgb2sgPSBwc2FzaW1fc2VydmVyX2Rlc2VyaWFsaXNlX3BzYV9oYXNoX29wZXJhdGlvbl90KCZwb3MsICZyZW1haW5pbmcsICZvcGVyYXRpb24pOworICAgIG9rID0gcHNhc2ltX3NlcnZlcl9kZXNlcmlhbGlzZV9wc2FfaGFzaF9vcGVyYXRpb25fdCgKKyAgICAgICAgJnBvcywgJnJlbWFpbmluZywKKyAgICAgICAgJm9wZXJhdGlvbik7CiAgICAgaWYgKCFvaykgewogICAgICAgICBnb3RvIGZhaWw7CiAgICAgfQogCi0gICAgb2sgPSBwc2FzaW1fZGVzZXJpYWxpc2VfYnVmZmVyKCZwb3MsICZyZW1haW5pbmcsICZoYXNoLCAmaGFzaF9sZW5ndGgpOworICAgIG9rID0gcHNhc2ltX2Rlc2VyaWFsaXNlX2J1ZmZlcigKKyAgICAgICAgJnBvcywgJnJlbWFpbmluZywKKyAgICAgICAgJmhhc2gsICZoYXNoX2xlbmd0aCk7CiAgICAgaWYgKCFvaykgewogICAgICAgICBnb3RvIGZhaWw7CiAgICAgfQpAQCAtMjA0NywxMiArNDA5NCwxNiBAQAogICAgICAgICBnb3RvIGZhaWw7CiAgICAgfQogCi0gICAgb2sgPSBwc2FzaW1fc2VyaWFsaXNlX3BzYV9zdGF0dXNfdCgmcnBvcywgJnJyZW1haW4sIHN0YXR1cyk7CisgICAgb2sgPSBwc2FzaW1fc2VyaWFsaXNlX3BzYV9zdGF0dXNfdCgKKyAgICAgICAgJnJwb3MsICZycmVtYWluLAorICAgICAgICBzdGF0dXMpOwogICAgIGlmICghb2spIHsKICAgICAgICAgZ290byBmYWlsOwogICAgIH0KIAotICAgIG9rID0gcHNhc2ltX3NlcnZlcl9zZXJpYWxpc2VfcHNhX2hhc2hfb3BlcmF0aW9uX3QoJnJwb3MsICZycmVtYWluLCBvcGVyYXRpb24pOworICAgIG9rID0gcHNhc2ltX3NlcnZlcl9zZXJpYWxpc2VfcHNhX2hhc2hfb3BlcmF0aW9uX3QoCisgICAgICAgICZycG9zLCAmcnJlbWFpbiwKKyAgICAgICAgb3BlcmF0aW9uLCAxKTsKICAgICBpZiAoIW9rKSB7CiAgICAgICAgIGdvdG8gZmFpbDsKICAgICB9CkBAIC0yMDkzLDE3ICs0MTQ0LDIzIEBACiAgICAgICAgIGdvdG8gZmFpbDsKICAgICB9CiAKLSAgICBvayA9IHBzYXNpbV9kZXNlcmlhbGlzZV9wc2Ffa2V5X2F0dHJpYnV0ZXNfdCgmcG9zLCAmcmVtYWluaW5nLCAmYXR0cmlidXRlcyk7CisgICAgb2sgPSBwc2FzaW1fZGVzZXJpYWxpc2VfcHNhX2tleV9hdHRyaWJ1dGVzX3QoCisgICAgICAgICZwb3MsICZyZW1haW5pbmcsCisgICAgICAgICZhdHRyaWJ1dGVzKTsKICAgICBpZiAoIW9rKSB7CiAgICAgICAgIGdvdG8gZmFpbDsKICAgICB9CiAKLSAgICBvayA9IHBzYXNpbV9kZXNlcmlhbGlzZV9idWZmZXIoJnBvcywgJnJlbWFpbmluZywgJmRhdGEsICZkYXRhX2xlbmd0aCk7CisgICAgb2sgPSBwc2FzaW1fZGVzZXJpYWxpc2VfYnVmZmVyKAorICAgICAgICAmcG9zLCAmcmVtYWluaW5nLAorICAgICAgICAmZGF0YSwgJmRhdGFfbGVuZ3RoKTsKICAgICBpZiAoIW9rKSB7CiAgICAgICAgIGdvdG8gZmFpbDsKICAgICB9CiAKLSAgICBvayA9IHBzYXNpbV9kZXNlcmlhbGlzZV9tYmVkdGxzX3N2Y19rZXlfaWRfdCgmcG9zLCAmcmVtYWluaW5nLCAma2V5KTsKKyAgICBvayA9IHBzYXNpbV9kZXNlcmlhbGlzZV9tYmVkdGxzX3N2Y19rZXlfaWRfdCgKKyAgICAgICAgJnBvcywgJnJlbWFpbmluZywKKyAgICAgICAgJmtleSk7CiAgICAgaWYgKCFvaykgewogICAgICAgICBnb3RvIGZhaWw7CiAgICAgfQpAQCAtMjEzNSwxMiArNDE5MiwxNiBAQAogICAgICAgICBnb3RvIGZhaWw7CiAgICAgfQogCi0gICAgb2sgPSBwc2FzaW1fc2VyaWFsaXNlX3BzYV9zdGF0dXNfdCgmcnBvcywgJnJyZW1haW4sIHN0YXR1cyk7CisgICAgb2sgPSBwc2FzaW1fc2VyaWFsaXNlX3BzYV9zdGF0dXNfdCgKKyAgICAgICAgJnJwb3MsICZycmVtYWluLAorICAgICAgICBzdGF0dXMpOwogICAgIGlmICghb2spIHsKICAgICAgICAgZ290byBmYWlsOwogICAgIH0KIAotICAgIG9rID0gcHNhc2ltX3NlcmlhbGlzZV9tYmVkdGxzX3N2Y19rZXlfaWRfdCgmcnBvcywgJnJyZW1haW4sIGtleSk7CisgICAgb2sgPSBwc2FzaW1fc2VyaWFsaXNlX21iZWR0bHNfc3ZjX2tleV9pZF90KAorICAgICAgICAmcnBvcywgJnJyZW1haW4sCisgICAgICAgIGtleSk7CiAgICAgaWYgKCFvaykgewogICAgICAgICBnb3RvIGZhaWw7CiAgICAgfQpAQCAtMjE2MCw2ICs0MjIxLDMzNDUgQEAKICAgICByZXR1cm4gMDsgICAgICAgLy8gVGhpcyBzaG91bGRuJ3QgaGFwcGVuIQogfQogCisvLyBSZXR1cm5zIDEgZm9yIHN1Y2Nlc3MsIDAgZm9yIGZhaWx1cmUKK2ludCBwc2FfaW50ZXJydXB0aWJsZV9nZXRfbWF4X29wc193cmFwcGVyKAorICAgIHVpbnQ4X3QgKmluX3BhcmFtcywgc2l6ZV90IGluX3BhcmFtc19sZW4sCisgICAgdWludDhfdCAqKm91dF9wYXJhbXMsIHNpemVfdCAqb3V0X3BhcmFtc19sZW4pCit7CisgICAgdWludDMyX3QgdmFsdWUgPSAwOworCisgICAgdWludDhfdCAqcmVzdWx0ID0gTlVMTDsKKyAgICBpbnQgb2s7CisKKyAgICAvLyBOb3cgd2UgY2FsbCB0aGUgYWN0dWFsIHRhcmdldCBmdW5jdGlvbgorCisgICAgdmFsdWUgPSBwc2FfaW50ZXJydXB0aWJsZV9nZXRfbWF4X29wcygKKyAgICAgICAgKTsKKworICAgIC8vIE5PVEU6IFNob3VsZCByZWFsbHkgY2hlY2sgdGhlcmUgaXMgbm8gb3ZlcmZsb3cgYXMgd2UgZ28gYWxvbmcuCisgICAgc2l6ZV90IHJlc3VsdF9zaXplID0KKyAgICAgICAgcHNhc2ltX3NlcmlhbGlzZV9iZWdpbl9uZWVkcygpICsKKyAgICAgICAgcHNhc2ltX3NlcmlhbGlzZV91aW50MzJfdF9uZWVkcyh2YWx1ZSk7CisKKyAgICByZXN1bHQgPSBtYWxsb2MocmVzdWx0X3NpemUpOworICAgIGlmIChyZXN1bHQgPT0gTlVMTCkgeworICAgICAgICBnb3RvIGZhaWw7CisgICAgfQorCisgICAgdWludDhfdCAqcnBvcyA9IHJlc3VsdDsKKyAgICBzaXplX3QgcnJlbWFpbiA9IHJlc3VsdF9zaXplOworCisgICAgb2sgPSBwc2FzaW1fc2VyaWFsaXNlX2JlZ2luKCZycG9zLCAmcnJlbWFpbik7CisgICAgaWYgKCFvaykgeworICAgICAgICBnb3RvIGZhaWw7CisgICAgfQorCisgICAgb2sgPSBwc2FzaW1fc2VyaWFsaXNlX3VpbnQzMl90KAorICAgICAgICAmcnBvcywgJnJyZW1haW4sCisgICAgICAgIHZhbHVlKTsKKyAgICBpZiAoIW9rKSB7CisgICAgICAgIGdvdG8gZmFpbDsKKyAgICB9CisKKyAgICAqb3V0X3BhcmFtcyA9IHJlc3VsdDsKKyAgICAqb3V0X3BhcmFtc19sZW4gPSByZXN1bHRfc2l6ZTsKKworICAgIHJldHVybiAxOyAgIC8vIHN1Y2Nlc3MKKworZmFpbDoKKyAgICBmcmVlKHJlc3VsdCk7CisKKyAgICByZXR1cm4gMDsgICAgICAgLy8gVGhpcyBzaG91bGRuJ3QgaGFwcGVuIQorfQorCisvLyBSZXR1cm5zIDEgZm9yIHN1Y2Nlc3MsIDAgZm9yIGZhaWx1cmUKK2ludCBwc2FfaW50ZXJydXB0aWJsZV9zZXRfbWF4X29wc193cmFwcGVyKAorICAgIHVpbnQ4X3QgKmluX3BhcmFtcywgc2l6ZV90IGluX3BhcmFtc19sZW4sCisgICAgdWludDhfdCAqKm91dF9wYXJhbXMsIHNpemVfdCAqb3V0X3BhcmFtc19sZW4pCit7CisgICAgdWludDMyX3QgbWF4X29wczsKKworICAgIHVpbnQ4X3QgKnBvcyA9IGluX3BhcmFtczsKKyAgICBzaXplX3QgcmVtYWluaW5nID0gaW5fcGFyYW1zX2xlbjsKKyAgICB1aW50OF90ICpyZXN1bHQgPSBOVUxMOworICAgIGludCBvazsKKworICAgIG9rID0gcHNhc2ltX2Rlc2VyaWFsaXNlX2JlZ2luKCZwb3MsICZyZW1haW5pbmcpOworICAgIGlmICghb2spIHsKKyAgICAgICAgZ290byBmYWlsOworICAgIH0KKworICAgIG9rID0gcHNhc2ltX2Rlc2VyaWFsaXNlX3VpbnQzMl90KAorICAgICAgICAmcG9zLCAmcmVtYWluaW5nLAorICAgICAgICAmbWF4X29wcyk7CisgICAgaWYgKCFvaykgeworICAgICAgICBnb3RvIGZhaWw7CisgICAgfQorCisgICAgLy8gTm93IHdlIGNhbGwgdGhlIGFjdHVhbCB0YXJnZXQgZnVuY3Rpb24KKworICAgIHBzYV9pbnRlcnJ1cHRpYmxlX3NldF9tYXhfb3BzKAorICAgICAgICBtYXhfb3BzCisgICAgICAgICk7CisKKyAgICAvLyBOT1RFOiBTaG91bGQgcmVhbGx5IGNoZWNrIHRoZXJlIGlzIG5vIG92ZXJmbG93IGFzIHdlIGdvIGFsb25nLgorICAgIHNpemVfdCByZXN1bHRfc2l6ZSA9CisgICAgICAgIHBzYXNpbV9zZXJpYWxpc2VfYmVnaW5fbmVlZHMoKTsKKworICAgIHJlc3VsdCA9IG1hbGxvYyhyZXN1bHRfc2l6ZSk7CisgICAgaWYgKHJlc3VsdCA9PSBOVUxMKSB7CisgICAgICAgIGdvdG8gZmFpbDsKKyAgICB9CisKKyAgICB1aW50OF90ICpycG9zID0gcmVzdWx0OworICAgIHNpemVfdCBycmVtYWluID0gcmVzdWx0X3NpemU7CisKKyAgICBvayA9IHBzYXNpbV9zZXJpYWxpc2VfYmVnaW4oJnJwb3MsICZycmVtYWluKTsKKyAgICBpZiAoIW9rKSB7CisgICAgICAgIGdvdG8gZmFpbDsKKyAgICB9CisKKyAgICAqb3V0X3BhcmFtcyA9IHJlc3VsdDsKKyAgICAqb3V0X3BhcmFtc19sZW4gPSByZXN1bHRfc2l6ZTsKKworICAgIHJldHVybiAxOyAgIC8vIHN1Y2Nlc3MKKworZmFpbDoKKyAgICBmcmVlKHJlc3VsdCk7CisKKyAgICByZXR1cm4gMDsgICAgICAgLy8gVGhpcyBzaG91bGRuJ3QgaGFwcGVuIQorfQorCisvLyBSZXR1cm5zIDEgZm9yIHN1Y2Nlc3MsIDAgZm9yIGZhaWx1cmUKK2ludCBwc2Ffa2V5X2Rlcml2YXRpb25fYWJvcnRfd3JhcHBlcigKKyAgICB1aW50OF90ICppbl9wYXJhbXMsIHNpemVfdCBpbl9wYXJhbXNfbGVuLAorICAgIHVpbnQ4X3QgKipvdXRfcGFyYW1zLCBzaXplX3QgKm91dF9wYXJhbXNfbGVuKQoreworICAgIHBzYV9zdGF0dXNfdCBzdGF0dXMgPSBQU0FfRVJST1JfQ09SUlVQVElPTl9ERVRFQ1RFRDsKKyAgICBwc2Ffa2V5X2Rlcml2YXRpb25fb3BlcmF0aW9uX3QgKm9wZXJhdGlvbjsKKworICAgIHVpbnQ4X3QgKnBvcyA9IGluX3BhcmFtczsKKyAgICBzaXplX3QgcmVtYWluaW5nID0gaW5fcGFyYW1zX2xlbjsKKyAgICB1aW50OF90ICpyZXN1bHQgPSBOVUxMOworICAgIGludCBvazsKKworICAgIG9rID0gcHNhc2ltX2Rlc2VyaWFsaXNlX2JlZ2luKCZwb3MsICZyZW1haW5pbmcpOworICAgIGlmICghb2spIHsKKyAgICAgICAgZ290byBmYWlsOworICAgIH0KKworICAgIG9rID0gcHNhc2ltX3NlcnZlcl9kZXNlcmlhbGlzZV9wc2Ffa2V5X2Rlcml2YXRpb25fb3BlcmF0aW9uX3QoCisgICAgICAgICZwb3MsICZyZW1haW5pbmcsCisgICAgICAgICZvcGVyYXRpb24pOworICAgIGlmICghb2spIHsKKyAgICAgICAgZ290byBmYWlsOworICAgIH0KKworICAgIC8vIE5vdyB3ZSBjYWxsIHRoZSBhY3R1YWwgdGFyZ2V0IGZ1bmN0aW9uCisKKyAgICBzdGF0dXMgPSBwc2Ffa2V5X2Rlcml2YXRpb25fYWJvcnQoCisgICAgICAgIG9wZXJhdGlvbgorICAgICAgICApOworCisgICAgLy8gTk9URTogU2hvdWxkIHJlYWxseSBjaGVjayB0aGVyZSBpcyBubyBvdmVyZmxvdyBhcyB3ZSBnbyBhbG9uZy4KKyAgICBzaXplX3QgcmVzdWx0X3NpemUgPQorICAgICAgICBwc2FzaW1fc2VyaWFsaXNlX2JlZ2luX25lZWRzKCkgKworICAgICAgICBwc2FzaW1fc2VyaWFsaXNlX3BzYV9zdGF0dXNfdF9uZWVkcyhzdGF0dXMpICsKKyAgICAgICAgcHNhc2ltX3NlcnZlcl9zZXJpYWxpc2VfcHNhX2tleV9kZXJpdmF0aW9uX29wZXJhdGlvbl90X25lZWRzKG9wZXJhdGlvbik7CisKKyAgICByZXN1bHQgPSBtYWxsb2MocmVzdWx0X3NpemUpOworICAgIGlmIChyZXN1bHQgPT0gTlVMTCkgeworICAgICAgICBnb3RvIGZhaWw7CisgICAgfQorCisgICAgdWludDhfdCAqcnBvcyA9IHJlc3VsdDsKKyAgICBzaXplX3QgcnJlbWFpbiA9IHJlc3VsdF9zaXplOworCisgICAgb2sgPSBwc2FzaW1fc2VyaWFsaXNlX2JlZ2luKCZycG9zLCAmcnJlbWFpbik7CisgICAgaWYgKCFvaykgeworICAgICAgICBnb3RvIGZhaWw7CisgICAgfQorCisgICAgb2sgPSBwc2FzaW1fc2VyaWFsaXNlX3BzYV9zdGF0dXNfdCgKKyAgICAgICAgJnJwb3MsICZycmVtYWluLAorICAgICAgICBzdGF0dXMpOworICAgIGlmICghb2spIHsKKyAgICAgICAgZ290byBmYWlsOworICAgIH0KKworICAgIG9rID0gcHNhc2ltX3NlcnZlcl9zZXJpYWxpc2VfcHNhX2tleV9kZXJpdmF0aW9uX29wZXJhdGlvbl90KAorICAgICAgICAmcnBvcywgJnJyZW1haW4sCisgICAgICAgIG9wZXJhdGlvbiwgMSk7CisgICAgaWYgKCFvaykgeworICAgICAgICBnb3RvIGZhaWw7CisgICAgfQorCisgICAgKm91dF9wYXJhbXMgPSByZXN1bHQ7CisgICAgKm91dF9wYXJhbXNfbGVuID0gcmVzdWx0X3NpemU7CisKKyAgICByZXR1cm4gMTsgICAvLyBzdWNjZXNzCisKK2ZhaWw6CisgICAgZnJlZShyZXN1bHQpOworCisgICAgcmV0dXJuIDA7ICAgICAgIC8vIFRoaXMgc2hvdWxkbid0IGhhcHBlbiEKK30KKworLy8gUmV0dXJucyAxIGZvciBzdWNjZXNzLCAwIGZvciBmYWlsdXJlCitpbnQgcHNhX2tleV9kZXJpdmF0aW9uX2dldF9jYXBhY2l0eV93cmFwcGVyKAorICAgIHVpbnQ4X3QgKmluX3BhcmFtcywgc2l6ZV90IGluX3BhcmFtc19sZW4sCisgICAgdWludDhfdCAqKm91dF9wYXJhbXMsIHNpemVfdCAqb3V0X3BhcmFtc19sZW4pCit7CisgICAgcHNhX3N0YXR1c190IHN0YXR1cyA9IFBTQV9FUlJPUl9DT1JSVVBUSU9OX0RFVEVDVEVEOworICAgIHBzYV9rZXlfZGVyaXZhdGlvbl9vcGVyYXRpb25fdCAqb3BlcmF0aW9uOworICAgIHNpemVfdCBjYXBhY2l0eTsKKworICAgIHVpbnQ4X3QgKnBvcyA9IGluX3BhcmFtczsKKyAgICBzaXplX3QgcmVtYWluaW5nID0gaW5fcGFyYW1zX2xlbjsKKyAgICB1aW50OF90ICpyZXN1bHQgPSBOVUxMOworICAgIGludCBvazsKKworICAgIG9rID0gcHNhc2ltX2Rlc2VyaWFsaXNlX2JlZ2luKCZwb3MsICZyZW1haW5pbmcpOworICAgIGlmICghb2spIHsKKyAgICAgICAgZ290byBmYWlsOworICAgIH0KKworICAgIG9rID0gcHNhc2ltX3NlcnZlcl9kZXNlcmlhbGlzZV9wc2Ffa2V5X2Rlcml2YXRpb25fb3BlcmF0aW9uX3QoCisgICAgICAgICZwb3MsICZyZW1haW5pbmcsCisgICAgICAgICZvcGVyYXRpb24pOworICAgIGlmICghb2spIHsKKyAgICAgICAgZ290byBmYWlsOworICAgIH0KKworICAgIG9rID0gcHNhc2ltX2Rlc2VyaWFsaXNlX3NpemVfdCgKKyAgICAgICAgJnBvcywgJnJlbWFpbmluZywKKyAgICAgICAgJmNhcGFjaXR5KTsKKyAgICBpZiAoIW9rKSB7CisgICAgICAgIGdvdG8gZmFpbDsKKyAgICB9CisKKyAgICAvLyBOb3cgd2UgY2FsbCB0aGUgYWN0dWFsIHRhcmdldCBmdW5jdGlvbgorCisgICAgc3RhdHVzID0gcHNhX2tleV9kZXJpdmF0aW9uX2dldF9jYXBhY2l0eSgKKyAgICAgICAgb3BlcmF0aW9uLAorICAgICAgICAmY2FwYWNpdHkKKyAgICAgICAgKTsKKworICAgIC8vIE5PVEU6IFNob3VsZCByZWFsbHkgY2hlY2sgdGhlcmUgaXMgbm8gb3ZlcmZsb3cgYXMgd2UgZ28gYWxvbmcuCisgICAgc2l6ZV90IHJlc3VsdF9zaXplID0KKyAgICAgICAgcHNhc2ltX3NlcmlhbGlzZV9iZWdpbl9uZWVkcygpICsKKyAgICAgICAgcHNhc2ltX3NlcmlhbGlzZV9wc2Ffc3RhdHVzX3RfbmVlZHMoc3RhdHVzKSArCisgICAgICAgIHBzYXNpbV9zZXJpYWxpc2Vfc2l6ZV90X25lZWRzKGNhcGFjaXR5KTsKKworICAgIHJlc3VsdCA9IG1hbGxvYyhyZXN1bHRfc2l6ZSk7CisgICAgaWYgKHJlc3VsdCA9PSBOVUxMKSB7CisgICAgICAgIGdvdG8gZmFpbDsKKyAgICB9CisKKyAgICB1aW50OF90ICpycG9zID0gcmVzdWx0OworICAgIHNpemVfdCBycmVtYWluID0gcmVzdWx0X3NpemU7CisKKyAgICBvayA9IHBzYXNpbV9zZXJpYWxpc2VfYmVnaW4oJnJwb3MsICZycmVtYWluKTsKKyAgICBpZiAoIW9rKSB7CisgICAgICAgIGdvdG8gZmFpbDsKKyAgICB9CisKKyAgICBvayA9IHBzYXNpbV9zZXJpYWxpc2VfcHNhX3N0YXR1c190KAorICAgICAgICAmcnBvcywgJnJyZW1haW4sCisgICAgICAgIHN0YXR1cyk7CisgICAgaWYgKCFvaykgeworICAgICAgICBnb3RvIGZhaWw7CisgICAgfQorCisgICAgb2sgPSBwc2FzaW1fc2VyaWFsaXNlX3NpemVfdCgKKyAgICAgICAgJnJwb3MsICZycmVtYWluLAorICAgICAgICBjYXBhY2l0eSk7CisgICAgaWYgKCFvaykgeworICAgICAgICBnb3RvIGZhaWw7CisgICAgfQorCisgICAgKm91dF9wYXJhbXMgPSByZXN1bHQ7CisgICAgKm91dF9wYXJhbXNfbGVuID0gcmVzdWx0X3NpemU7CisKKyAgICByZXR1cm4gMTsgICAvLyBzdWNjZXNzCisKK2ZhaWw6CisgICAgZnJlZShyZXN1bHQpOworCisgICAgcmV0dXJuIDA7ICAgICAgIC8vIFRoaXMgc2hvdWxkbid0IGhhcHBlbiEKK30KKworLy8gUmV0dXJucyAxIGZvciBzdWNjZXNzLCAwIGZvciBmYWlsdXJlCitpbnQgcHNhX2tleV9kZXJpdmF0aW9uX2lucHV0X2J5dGVzX3dyYXBwZXIoCisgICAgdWludDhfdCAqaW5fcGFyYW1zLCBzaXplX3QgaW5fcGFyYW1zX2xlbiwKKyAgICB1aW50OF90ICoqb3V0X3BhcmFtcywgc2l6ZV90ICpvdXRfcGFyYW1zX2xlbikKK3sKKyAgICBwc2Ffc3RhdHVzX3Qgc3RhdHVzID0gUFNBX0VSUk9SX0NPUlJVUFRJT05fREVURUNURUQ7CisgICAgcHNhX2tleV9kZXJpdmF0aW9uX29wZXJhdGlvbl90ICpvcGVyYXRpb247CisgICAgcHNhX2tleV9kZXJpdmF0aW9uX3N0ZXBfdCBzdGVwOworICAgIHVpbnQ4X3QgKmRhdGEgPSBOVUxMOworICAgIHNpemVfdCBkYXRhX2xlbmd0aDsKKworICAgIHVpbnQ4X3QgKnBvcyA9IGluX3BhcmFtczsKKyAgICBzaXplX3QgcmVtYWluaW5nID0gaW5fcGFyYW1zX2xlbjsKKyAgICB1aW50OF90ICpyZXN1bHQgPSBOVUxMOworICAgIGludCBvazsKKworICAgIG9rID0gcHNhc2ltX2Rlc2VyaWFsaXNlX2JlZ2luKCZwb3MsICZyZW1haW5pbmcpOworICAgIGlmICghb2spIHsKKyAgICAgICAgZ290byBmYWlsOworICAgIH0KKworICAgIG9rID0gcHNhc2ltX3NlcnZlcl9kZXNlcmlhbGlzZV9wc2Ffa2V5X2Rlcml2YXRpb25fb3BlcmF0aW9uX3QoCisgICAgICAgICZwb3MsICZyZW1haW5pbmcsCisgICAgICAgICZvcGVyYXRpb24pOworICAgIGlmICghb2spIHsKKyAgICAgICAgZ290byBmYWlsOworICAgIH0KKworICAgIG9rID0gcHNhc2ltX2Rlc2VyaWFsaXNlX3BzYV9rZXlfZGVyaXZhdGlvbl9zdGVwX3QoCisgICAgICAgICZwb3MsICZyZW1haW5pbmcsCisgICAgICAgICZzdGVwKTsKKyAgICBpZiAoIW9rKSB7CisgICAgICAgIGdvdG8gZmFpbDsKKyAgICB9CisKKyAgICBvayA9IHBzYXNpbV9kZXNlcmlhbGlzZV9idWZmZXIoCisgICAgICAgICZwb3MsICZyZW1haW5pbmcsCisgICAgICAgICZkYXRhLCAmZGF0YV9sZW5ndGgpOworICAgIGlmICghb2spIHsKKyAgICAgICAgZ290byBmYWlsOworICAgIH0KKworICAgIC8vIE5vdyB3ZSBjYWxsIHRoZSBhY3R1YWwgdGFyZ2V0IGZ1bmN0aW9uCisKKyAgICBzdGF0dXMgPSBwc2Ffa2V5X2Rlcml2YXRpb25faW5wdXRfYnl0ZXMoCisgICAgICAgIG9wZXJhdGlvbiwKKyAgICAgICAgc3RlcCwKKyAgICAgICAgZGF0YSwgZGF0YV9sZW5ndGgKKyAgICAgICAgKTsKKworICAgIC8vIE5PVEU6IFNob3VsZCByZWFsbHkgY2hlY2sgdGhlcmUgaXMgbm8gb3ZlcmZsb3cgYXMgd2UgZ28gYWxvbmcuCisgICAgc2l6ZV90IHJlc3VsdF9zaXplID0KKyAgICAgICAgcHNhc2ltX3NlcmlhbGlzZV9iZWdpbl9uZWVkcygpICsKKyAgICAgICAgcHNhc2ltX3NlcmlhbGlzZV9wc2Ffc3RhdHVzX3RfbmVlZHMoc3RhdHVzKSArCisgICAgICAgIHBzYXNpbV9zZXJ2ZXJfc2VyaWFsaXNlX3BzYV9rZXlfZGVyaXZhdGlvbl9vcGVyYXRpb25fdF9uZWVkcyhvcGVyYXRpb24pOworCisgICAgcmVzdWx0ID0gbWFsbG9jKHJlc3VsdF9zaXplKTsKKyAgICBpZiAocmVzdWx0ID09IE5VTEwpIHsKKyAgICAgICAgZ290byBmYWlsOworICAgIH0KKworICAgIHVpbnQ4X3QgKnJwb3MgPSByZXN1bHQ7CisgICAgc2l6ZV90IHJyZW1haW4gPSByZXN1bHRfc2l6ZTsKKworICAgIG9rID0gcHNhc2ltX3NlcmlhbGlzZV9iZWdpbigmcnBvcywgJnJyZW1haW4pOworICAgIGlmICghb2spIHsKKyAgICAgICAgZ290byBmYWlsOworICAgIH0KKworICAgIG9rID0gcHNhc2ltX3NlcmlhbGlzZV9wc2Ffc3RhdHVzX3QoCisgICAgICAgICZycG9zLCAmcnJlbWFpbiwKKyAgICAgICAgc3RhdHVzKTsKKyAgICBpZiAoIW9rKSB7CisgICAgICAgIGdvdG8gZmFpbDsKKyAgICB9CisKKyAgICBvayA9IHBzYXNpbV9zZXJ2ZXJfc2VyaWFsaXNlX3BzYV9rZXlfZGVyaXZhdGlvbl9vcGVyYXRpb25fdCgKKyAgICAgICAgJnJwb3MsICZycmVtYWluLAorICAgICAgICBvcGVyYXRpb24sIDApOworICAgIGlmICghb2spIHsKKyAgICAgICAgZ290byBmYWlsOworICAgIH0KKworICAgICpvdXRfcGFyYW1zID0gcmVzdWx0OworICAgICpvdXRfcGFyYW1zX2xlbiA9IHJlc3VsdF9zaXplOworCisgICAgZnJlZShkYXRhKTsKKworICAgIHJldHVybiAxOyAgIC8vIHN1Y2Nlc3MKKworZmFpbDoKKyAgICBmcmVlKHJlc3VsdCk7CisKKyAgICBmcmVlKGRhdGEpOworCisgICAgcmV0dXJuIDA7ICAgICAgIC8vIFRoaXMgc2hvdWxkbid0IGhhcHBlbiEKK30KKworLy8gUmV0dXJucyAxIGZvciBzdWNjZXNzLCAwIGZvciBmYWlsdXJlCitpbnQgcHNhX2tleV9kZXJpdmF0aW9uX2lucHV0X2ludGVnZXJfd3JhcHBlcigKKyAgICB1aW50OF90ICppbl9wYXJhbXMsIHNpemVfdCBpbl9wYXJhbXNfbGVuLAorICAgIHVpbnQ4X3QgKipvdXRfcGFyYW1zLCBzaXplX3QgKm91dF9wYXJhbXNfbGVuKQoreworICAgIHBzYV9zdGF0dXNfdCBzdGF0dXMgPSBQU0FfRVJST1JfQ09SUlVQVElPTl9ERVRFQ1RFRDsKKyAgICBwc2Ffa2V5X2Rlcml2YXRpb25fb3BlcmF0aW9uX3QgKm9wZXJhdGlvbjsKKyAgICBwc2Ffa2V5X2Rlcml2YXRpb25fc3RlcF90IHN0ZXA7CisgICAgdWludDY0X3QgdmFsdWU7CisKKyAgICB1aW50OF90ICpwb3MgPSBpbl9wYXJhbXM7CisgICAgc2l6ZV90IHJlbWFpbmluZyA9IGluX3BhcmFtc19sZW47CisgICAgdWludDhfdCAqcmVzdWx0ID0gTlVMTDsKKyAgICBpbnQgb2s7CisKKyAgICBvayA9IHBzYXNpbV9kZXNlcmlhbGlzZV9iZWdpbigmcG9zLCAmcmVtYWluaW5nKTsKKyAgICBpZiAoIW9rKSB7CisgICAgICAgIGdvdG8gZmFpbDsKKyAgICB9CisKKyAgICBvayA9IHBzYXNpbV9zZXJ2ZXJfZGVzZXJpYWxpc2VfcHNhX2tleV9kZXJpdmF0aW9uX29wZXJhdGlvbl90KAorICAgICAgICAmcG9zLCAmcmVtYWluaW5nLAorICAgICAgICAmb3BlcmF0aW9uKTsKKyAgICBpZiAoIW9rKSB7CisgICAgICAgIGdvdG8gZmFpbDsKKyAgICB9CisKKyAgICBvayA9IHBzYXNpbV9kZXNlcmlhbGlzZV9wc2Ffa2V5X2Rlcml2YXRpb25fc3RlcF90KAorICAgICAgICAmcG9zLCAmcmVtYWluaW5nLAorICAgICAgICAmc3RlcCk7CisgICAgaWYgKCFvaykgeworICAgICAgICBnb3RvIGZhaWw7CisgICAgfQorCisgICAgb2sgPSBwc2FzaW1fZGVzZXJpYWxpc2VfdWludDY0X3QoCisgICAgICAgICZwb3MsICZyZW1haW5pbmcsCisgICAgICAgICZ2YWx1ZSk7CisgICAgaWYgKCFvaykgeworICAgICAgICBnb3RvIGZhaWw7CisgICAgfQorCisgICAgLy8gTm93IHdlIGNhbGwgdGhlIGFjdHVhbCB0YXJnZXQgZnVuY3Rpb24KKworICAgIHN0YXR1cyA9IHBzYV9rZXlfZGVyaXZhdGlvbl9pbnB1dF9pbnRlZ2VyKAorICAgICAgICBvcGVyYXRpb24sCisgICAgICAgIHN0ZXAsCisgICAgICAgIHZhbHVlCisgICAgICAgICk7CisKKyAgICAvLyBOT1RFOiBTaG91bGQgcmVhbGx5IGNoZWNrIHRoZXJlIGlzIG5vIG92ZXJmbG93IGFzIHdlIGdvIGFsb25nLgorICAgIHNpemVfdCByZXN1bHRfc2l6ZSA9CisgICAgICAgIHBzYXNpbV9zZXJpYWxpc2VfYmVnaW5fbmVlZHMoKSArCisgICAgICAgIHBzYXNpbV9zZXJpYWxpc2VfcHNhX3N0YXR1c190X25lZWRzKHN0YXR1cykgKworICAgICAgICBwc2FzaW1fc2VydmVyX3NlcmlhbGlzZV9wc2Ffa2V5X2Rlcml2YXRpb25fb3BlcmF0aW9uX3RfbmVlZHMob3BlcmF0aW9uKTsKKworICAgIHJlc3VsdCA9IG1hbGxvYyhyZXN1bHRfc2l6ZSk7CisgICAgaWYgKHJlc3VsdCA9PSBOVUxMKSB7CisgICAgICAgIGdvdG8gZmFpbDsKKyAgICB9CisKKyAgICB1aW50OF90ICpycG9zID0gcmVzdWx0OworICAgIHNpemVfdCBycmVtYWluID0gcmVzdWx0X3NpemU7CisKKyAgICBvayA9IHBzYXNpbV9zZXJpYWxpc2VfYmVnaW4oJnJwb3MsICZycmVtYWluKTsKKyAgICBpZiAoIW9rKSB7CisgICAgICAgIGdvdG8gZmFpbDsKKyAgICB9CisKKyAgICBvayA9IHBzYXNpbV9zZXJpYWxpc2VfcHNhX3N0YXR1c190KAorICAgICAgICAmcnBvcywgJnJyZW1haW4sCisgICAgICAgIHN0YXR1cyk7CisgICAgaWYgKCFvaykgeworICAgICAgICBnb3RvIGZhaWw7CisgICAgfQorCisgICAgb2sgPSBwc2FzaW1fc2VydmVyX3NlcmlhbGlzZV9wc2Ffa2V5X2Rlcml2YXRpb25fb3BlcmF0aW9uX3QoCisgICAgICAgICZycG9zLCAmcnJlbWFpbiwKKyAgICAgICAgb3BlcmF0aW9uLCAwKTsKKyAgICBpZiAoIW9rKSB7CisgICAgICAgIGdvdG8gZmFpbDsKKyAgICB9CisKKyAgICAqb3V0X3BhcmFtcyA9IHJlc3VsdDsKKyAgICAqb3V0X3BhcmFtc19sZW4gPSByZXN1bHRfc2l6ZTsKKworICAgIHJldHVybiAxOyAgIC8vIHN1Y2Nlc3MKKworZmFpbDoKKyAgICBmcmVlKHJlc3VsdCk7CisKKyAgICByZXR1cm4gMDsgICAgICAgLy8gVGhpcyBzaG91bGRuJ3QgaGFwcGVuIQorfQorCisvLyBSZXR1cm5zIDEgZm9yIHN1Y2Nlc3MsIDAgZm9yIGZhaWx1cmUKK2ludCBwc2Ffa2V5X2Rlcml2YXRpb25faW5wdXRfa2V5X3dyYXBwZXIoCisgICAgdWludDhfdCAqaW5fcGFyYW1zLCBzaXplX3QgaW5fcGFyYW1zX2xlbiwKKyAgICB1aW50OF90ICoqb3V0X3BhcmFtcywgc2l6ZV90ICpvdXRfcGFyYW1zX2xlbikKK3sKKyAgICBwc2Ffc3RhdHVzX3Qgc3RhdHVzID0gUFNBX0VSUk9SX0NPUlJVUFRJT05fREVURUNURUQ7CisgICAgcHNhX2tleV9kZXJpdmF0aW9uX29wZXJhdGlvbl90ICpvcGVyYXRpb247CisgICAgcHNhX2tleV9kZXJpdmF0aW9uX3N0ZXBfdCBzdGVwOworICAgIG1iZWR0bHNfc3ZjX2tleV9pZF90IGtleTsKKworICAgIHVpbnQ4X3QgKnBvcyA9IGluX3BhcmFtczsKKyAgICBzaXplX3QgcmVtYWluaW5nID0gaW5fcGFyYW1zX2xlbjsKKyAgICB1aW50OF90ICpyZXN1bHQgPSBOVUxMOworICAgIGludCBvazsKKworICAgIG9rID0gcHNhc2ltX2Rlc2VyaWFsaXNlX2JlZ2luKCZwb3MsICZyZW1haW5pbmcpOworICAgIGlmICghb2spIHsKKyAgICAgICAgZ290byBmYWlsOworICAgIH0KKworICAgIG9rID0gcHNhc2ltX3NlcnZlcl9kZXNlcmlhbGlzZV9wc2Ffa2V5X2Rlcml2YXRpb25fb3BlcmF0aW9uX3QoCisgICAgICAgICZwb3MsICZyZW1haW5pbmcsCisgICAgICAgICZvcGVyYXRpb24pOworICAgIGlmICghb2spIHsKKyAgICAgICAgZ290byBmYWlsOworICAgIH0KKworICAgIG9rID0gcHNhc2ltX2Rlc2VyaWFsaXNlX3BzYV9rZXlfZGVyaXZhdGlvbl9zdGVwX3QoCisgICAgICAgICZwb3MsICZyZW1haW5pbmcsCisgICAgICAgICZzdGVwKTsKKyAgICBpZiAoIW9rKSB7CisgICAgICAgIGdvdG8gZmFpbDsKKyAgICB9CisKKyAgICBvayA9IHBzYXNpbV9kZXNlcmlhbGlzZV9tYmVkdGxzX3N2Y19rZXlfaWRfdCgKKyAgICAgICAgJnBvcywgJnJlbWFpbmluZywKKyAgICAgICAgJmtleSk7CisgICAgaWYgKCFvaykgeworICAgICAgICBnb3RvIGZhaWw7CisgICAgfQorCisgICAgLy8gTm93IHdlIGNhbGwgdGhlIGFjdHVhbCB0YXJnZXQgZnVuY3Rpb24KKworICAgIHN0YXR1cyA9IHBzYV9rZXlfZGVyaXZhdGlvbl9pbnB1dF9rZXkoCisgICAgICAgIG9wZXJhdGlvbiwKKyAgICAgICAgc3RlcCwKKyAgICAgICAga2V5CisgICAgICAgICk7CisKKyAgICAvLyBOT1RFOiBTaG91bGQgcmVhbGx5IGNoZWNrIHRoZXJlIGlzIG5vIG92ZXJmbG93IGFzIHdlIGdvIGFsb25nLgorICAgIHNpemVfdCByZXN1bHRfc2l6ZSA9CisgICAgICAgIHBzYXNpbV9zZXJpYWxpc2VfYmVnaW5fbmVlZHMoKSArCisgICAgICAgIHBzYXNpbV9zZXJpYWxpc2VfcHNhX3N0YXR1c190X25lZWRzKHN0YXR1cykgKworICAgICAgICBwc2FzaW1fc2VydmVyX3NlcmlhbGlzZV9wc2Ffa2V5X2Rlcml2YXRpb25fb3BlcmF0aW9uX3RfbmVlZHMob3BlcmF0aW9uKTsKKworICAgIHJlc3VsdCA9IG1hbGxvYyhyZXN1bHRfc2l6ZSk7CisgICAgaWYgKHJlc3VsdCA9PSBOVUxMKSB7CisgICAgICAgIGdvdG8gZmFpbDsKKyAgICB9CisKKyAgICB1aW50OF90ICpycG9zID0gcmVzdWx0OworICAgIHNpemVfdCBycmVtYWluID0gcmVzdWx0X3NpemU7CisKKyAgICBvayA9IHBzYXNpbV9zZXJpYWxpc2VfYmVnaW4oJnJwb3MsICZycmVtYWluKTsKKyAgICBpZiAoIW9rKSB7CisgICAgICAgIGdvdG8gZmFpbDsKKyAgICB9CisKKyAgICBvayA9IHBzYXNpbV9zZXJpYWxpc2VfcHNhX3N0YXR1c190KAorICAgICAgICAmcnBvcywgJnJyZW1haW4sCisgICAgICAgIHN0YXR1cyk7CisgICAgaWYgKCFvaykgeworICAgICAgICBnb3RvIGZhaWw7CisgICAgfQorCisgICAgb2sgPSBwc2FzaW1fc2VydmVyX3NlcmlhbGlzZV9wc2Ffa2V5X2Rlcml2YXRpb25fb3BlcmF0aW9uX3QoCisgICAgICAgICZycG9zLCAmcnJlbWFpbiwKKyAgICAgICAgb3BlcmF0aW9uLCAwKTsKKyAgICBpZiAoIW9rKSB7CisgICAgICAgIGdvdG8gZmFpbDsKKyAgICB9CisKKyAgICAqb3V0X3BhcmFtcyA9IHJlc3VsdDsKKyAgICAqb3V0X3BhcmFtc19sZW4gPSByZXN1bHRfc2l6ZTsKKworICAgIHJldHVybiAxOyAgIC8vIHN1Y2Nlc3MKKworZmFpbDoKKyAgICBmcmVlKHJlc3VsdCk7CisKKyAgICByZXR1cm4gMDsgICAgICAgLy8gVGhpcyBzaG91bGRuJ3QgaGFwcGVuIQorfQorCisvLyBSZXR1cm5zIDEgZm9yIHN1Y2Nlc3MsIDAgZm9yIGZhaWx1cmUKK2ludCBwc2Ffa2V5X2Rlcml2YXRpb25fa2V5X2FncmVlbWVudF93cmFwcGVyKAorICAgIHVpbnQ4X3QgKmluX3BhcmFtcywgc2l6ZV90IGluX3BhcmFtc19sZW4sCisgICAgdWludDhfdCAqKm91dF9wYXJhbXMsIHNpemVfdCAqb3V0X3BhcmFtc19sZW4pCit7CisgICAgcHNhX3N0YXR1c190IHN0YXR1cyA9IFBTQV9FUlJPUl9DT1JSVVBUSU9OX0RFVEVDVEVEOworICAgIHBzYV9rZXlfZGVyaXZhdGlvbl9vcGVyYXRpb25fdCAqb3BlcmF0aW9uOworICAgIHBzYV9rZXlfZGVyaXZhdGlvbl9zdGVwX3Qgc3RlcDsKKyAgICBtYmVkdGxzX3N2Y19rZXlfaWRfdCBwcml2YXRlX2tleTsKKyAgICB1aW50OF90ICpwZWVyX2tleSA9IE5VTEw7CisgICAgc2l6ZV90IHBlZXJfa2V5X2xlbmd0aDsKKworICAgIHVpbnQ4X3QgKnBvcyA9IGluX3BhcmFtczsKKyAgICBzaXplX3QgcmVtYWluaW5nID0gaW5fcGFyYW1zX2xlbjsKKyAgICB1aW50OF90ICpyZXN1bHQgPSBOVUxMOworICAgIGludCBvazsKKworICAgIG9rID0gcHNhc2ltX2Rlc2VyaWFsaXNlX2JlZ2luKCZwb3MsICZyZW1haW5pbmcpOworICAgIGlmICghb2spIHsKKyAgICAgICAgZ290byBmYWlsOworICAgIH0KKworICAgIG9rID0gcHNhc2ltX3NlcnZlcl9kZXNlcmlhbGlzZV9wc2Ffa2V5X2Rlcml2YXRpb25fb3BlcmF0aW9uX3QoCisgICAgICAgICZwb3MsICZyZW1haW5pbmcsCisgICAgICAgICZvcGVyYXRpb24pOworICAgIGlmICghb2spIHsKKyAgICAgICAgZ290byBmYWlsOworICAgIH0KKworICAgIG9rID0gcHNhc2ltX2Rlc2VyaWFsaXNlX3BzYV9rZXlfZGVyaXZhdGlvbl9zdGVwX3QoCisgICAgICAgICZwb3MsICZyZW1haW5pbmcsCisgICAgICAgICZzdGVwKTsKKyAgICBpZiAoIW9rKSB7CisgICAgICAgIGdvdG8gZmFpbDsKKyAgICB9CisKKyAgICBvayA9IHBzYXNpbV9kZXNlcmlhbGlzZV9tYmVkdGxzX3N2Y19rZXlfaWRfdCgKKyAgICAgICAgJnBvcywgJnJlbWFpbmluZywKKyAgICAgICAgJnByaXZhdGVfa2V5KTsKKyAgICBpZiAoIW9rKSB7CisgICAgICAgIGdvdG8gZmFpbDsKKyAgICB9CisKKyAgICBvayA9IHBzYXNpbV9kZXNlcmlhbGlzZV9idWZmZXIoCisgICAgICAgICZwb3MsICZyZW1haW5pbmcsCisgICAgICAgICZwZWVyX2tleSwgJnBlZXJfa2V5X2xlbmd0aCk7CisgICAgaWYgKCFvaykgeworICAgICAgICBnb3RvIGZhaWw7CisgICAgfQorCisgICAgLy8gTm93IHdlIGNhbGwgdGhlIGFjdHVhbCB0YXJnZXQgZnVuY3Rpb24KKworICAgIHN0YXR1cyA9IHBzYV9rZXlfZGVyaXZhdGlvbl9rZXlfYWdyZWVtZW50KAorICAgICAgICBvcGVyYXRpb24sCisgICAgICAgIHN0ZXAsCisgICAgICAgIHByaXZhdGVfa2V5LAorICAgICAgICBwZWVyX2tleSwgcGVlcl9rZXlfbGVuZ3RoCisgICAgICAgICk7CisKKyAgICAvLyBOT1RFOiBTaG91bGQgcmVhbGx5IGNoZWNrIHRoZXJlIGlzIG5vIG92ZXJmbG93IGFzIHdlIGdvIGFsb25nLgorICAgIHNpemVfdCByZXN1bHRfc2l6ZSA9CisgICAgICAgIHBzYXNpbV9zZXJpYWxpc2VfYmVnaW5fbmVlZHMoKSArCisgICAgICAgIHBzYXNpbV9zZXJpYWxpc2VfcHNhX3N0YXR1c190X25lZWRzKHN0YXR1cykgKworICAgICAgICBwc2FzaW1fc2VydmVyX3NlcmlhbGlzZV9wc2Ffa2V5X2Rlcml2YXRpb25fb3BlcmF0aW9uX3RfbmVlZHMob3BlcmF0aW9uKTsKKworICAgIHJlc3VsdCA9IG1hbGxvYyhyZXN1bHRfc2l6ZSk7CisgICAgaWYgKHJlc3VsdCA9PSBOVUxMKSB7CisgICAgICAgIGdvdG8gZmFpbDsKKyAgICB9CisKKyAgICB1aW50OF90ICpycG9zID0gcmVzdWx0OworICAgIHNpemVfdCBycmVtYWluID0gcmVzdWx0X3NpemU7CisKKyAgICBvayA9IHBzYXNpbV9zZXJpYWxpc2VfYmVnaW4oJnJwb3MsICZycmVtYWluKTsKKyAgICBpZiAoIW9rKSB7CisgICAgICAgIGdvdG8gZmFpbDsKKyAgICB9CisKKyAgICBvayA9IHBzYXNpbV9zZXJpYWxpc2VfcHNhX3N0YXR1c190KAorICAgICAgICAmcnBvcywgJnJyZW1haW4sCisgICAgICAgIHN0YXR1cyk7CisgICAgaWYgKCFvaykgeworICAgICAgICBnb3RvIGZhaWw7CisgICAgfQorCisgICAgb2sgPSBwc2FzaW1fc2VydmVyX3NlcmlhbGlzZV9wc2Ffa2V5X2Rlcml2YXRpb25fb3BlcmF0aW9uX3QoCisgICAgICAgICZycG9zLCAmcnJlbWFpbiwKKyAgICAgICAgb3BlcmF0aW9uLCAwKTsKKyAgICBpZiAoIW9rKSB7CisgICAgICAgIGdvdG8gZmFpbDsKKyAgICB9CisKKyAgICAqb3V0X3BhcmFtcyA9IHJlc3VsdDsKKyAgICAqb3V0X3BhcmFtc19sZW4gPSByZXN1bHRfc2l6ZTsKKworICAgIGZyZWUocGVlcl9rZXkpOworCisgICAgcmV0dXJuIDE7ICAgLy8gc3VjY2VzcworCitmYWlsOgorICAgIGZyZWUocmVzdWx0KTsKKworICAgIGZyZWUocGVlcl9rZXkpOworCisgICAgcmV0dXJuIDA7ICAgICAgIC8vIFRoaXMgc2hvdWxkbid0IGhhcHBlbiEKK30KKworLy8gUmV0dXJucyAxIGZvciBzdWNjZXNzLCAwIGZvciBmYWlsdXJlCitpbnQgcHNhX2tleV9kZXJpdmF0aW9uX291dHB1dF9ieXRlc193cmFwcGVyKAorICAgIHVpbnQ4X3QgKmluX3BhcmFtcywgc2l6ZV90IGluX3BhcmFtc19sZW4sCisgICAgdWludDhfdCAqKm91dF9wYXJhbXMsIHNpemVfdCAqb3V0X3BhcmFtc19sZW4pCit7CisgICAgcHNhX3N0YXR1c190IHN0YXR1cyA9IFBTQV9FUlJPUl9DT1JSVVBUSU9OX0RFVEVDVEVEOworICAgIHBzYV9rZXlfZGVyaXZhdGlvbl9vcGVyYXRpb25fdCAqb3BlcmF0aW9uOworICAgIHVpbnQ4X3QgKm91dHB1dCA9IE5VTEw7CisgICAgc2l6ZV90IG91dHB1dF9sZW5ndGg7CisKKyAgICB1aW50OF90ICpwb3MgPSBpbl9wYXJhbXM7CisgICAgc2l6ZV90IHJlbWFpbmluZyA9IGluX3BhcmFtc19sZW47CisgICAgdWludDhfdCAqcmVzdWx0ID0gTlVMTDsKKyAgICBpbnQgb2s7CisKKyAgICBvayA9IHBzYXNpbV9kZXNlcmlhbGlzZV9iZWdpbigmcG9zLCAmcmVtYWluaW5nKTsKKyAgICBpZiAoIW9rKSB7CisgICAgICAgIGdvdG8gZmFpbDsKKyAgICB9CisKKyAgICBvayA9IHBzYXNpbV9zZXJ2ZXJfZGVzZXJpYWxpc2VfcHNhX2tleV9kZXJpdmF0aW9uX29wZXJhdGlvbl90KAorICAgICAgICAmcG9zLCAmcmVtYWluaW5nLAorICAgICAgICAmb3BlcmF0aW9uKTsKKyAgICBpZiAoIW9rKSB7CisgICAgICAgIGdvdG8gZmFpbDsKKyAgICB9CisKKyAgICBvayA9IHBzYXNpbV9kZXNlcmlhbGlzZV9idWZmZXIoCisgICAgICAgICZwb3MsICZyZW1haW5pbmcsCisgICAgICAgICZvdXRwdXQsICZvdXRwdXRfbGVuZ3RoKTsKKyAgICBpZiAoIW9rKSB7CisgICAgICAgIGdvdG8gZmFpbDsKKyAgICB9CisKKyAgICAvLyBOb3cgd2UgY2FsbCB0aGUgYWN0dWFsIHRhcmdldCBmdW5jdGlvbgorCisgICAgc3RhdHVzID0gcHNhX2tleV9kZXJpdmF0aW9uX291dHB1dF9ieXRlcygKKyAgICAgICAgb3BlcmF0aW9uLAorICAgICAgICBvdXRwdXQsIG91dHB1dF9sZW5ndGgKKyAgICAgICAgKTsKKworICAgIC8vIE5PVEU6IFNob3VsZCByZWFsbHkgY2hlY2sgdGhlcmUgaXMgbm8gb3ZlcmZsb3cgYXMgd2UgZ28gYWxvbmcuCisgICAgc2l6ZV90IHJlc3VsdF9zaXplID0KKyAgICAgICAgcHNhc2ltX3NlcmlhbGlzZV9iZWdpbl9uZWVkcygpICsKKyAgICAgICAgcHNhc2ltX3NlcmlhbGlzZV9wc2Ffc3RhdHVzX3RfbmVlZHMoc3RhdHVzKSArCisgICAgICAgIHBzYXNpbV9zZXJ2ZXJfc2VyaWFsaXNlX3BzYV9rZXlfZGVyaXZhdGlvbl9vcGVyYXRpb25fdF9uZWVkcyhvcGVyYXRpb24pICsKKyAgICAgICAgcHNhc2ltX3NlcmlhbGlzZV9idWZmZXJfbmVlZHMob3V0cHV0LCBvdXRwdXRfbGVuZ3RoKTsKKworICAgIHJlc3VsdCA9IG1hbGxvYyhyZXN1bHRfc2l6ZSk7CisgICAgaWYgKHJlc3VsdCA9PSBOVUxMKSB7CisgICAgICAgIGdvdG8gZmFpbDsKKyAgICB9CisKKyAgICB1aW50OF90ICpycG9zID0gcmVzdWx0OworICAgIHNpemVfdCBycmVtYWluID0gcmVzdWx0X3NpemU7CisKKyAgICBvayA9IHBzYXNpbV9zZXJpYWxpc2VfYmVnaW4oJnJwb3MsICZycmVtYWluKTsKKyAgICBpZiAoIW9rKSB7CisgICAgICAgIGdvdG8gZmFpbDsKKyAgICB9CisKKyAgICBvayA9IHBzYXNpbV9zZXJpYWxpc2VfcHNhX3N0YXR1c190KAorICAgICAgICAmcnBvcywgJnJyZW1haW4sCisgICAgICAgIHN0YXR1cyk7CisgICAgaWYgKCFvaykgeworICAgICAgICBnb3RvIGZhaWw7CisgICAgfQorCisgICAgb2sgPSBwc2FzaW1fc2VydmVyX3NlcmlhbGlzZV9wc2Ffa2V5X2Rlcml2YXRpb25fb3BlcmF0aW9uX3QoCisgICAgICAgICZycG9zLCAmcnJlbWFpbiwKKyAgICAgICAgb3BlcmF0aW9uLCAwKTsKKyAgICBpZiAoIW9rKSB7CisgICAgICAgIGdvdG8gZmFpbDsKKyAgICB9CisKKyAgICBvayA9IHBzYXNpbV9zZXJpYWxpc2VfYnVmZmVyKAorICAgICAgICAmcnBvcywgJnJyZW1haW4sCisgICAgICAgIG91dHB1dCwgb3V0cHV0X2xlbmd0aCk7CisgICAgaWYgKCFvaykgeworICAgICAgICBnb3RvIGZhaWw7CisgICAgfQorCisgICAgKm91dF9wYXJhbXMgPSByZXN1bHQ7CisgICAgKm91dF9wYXJhbXNfbGVuID0gcmVzdWx0X3NpemU7CisKKyAgICBmcmVlKG91dHB1dCk7CisKKyAgICByZXR1cm4gMTsgICAvLyBzdWNjZXNzCisKK2ZhaWw6CisgICAgZnJlZShyZXN1bHQpOworCisgICAgZnJlZShvdXRwdXQpOworCisgICAgcmV0dXJuIDA7ICAgICAgIC8vIFRoaXMgc2hvdWxkbid0IGhhcHBlbiEKK30KKworLy8gUmV0dXJucyAxIGZvciBzdWNjZXNzLCAwIGZvciBmYWlsdXJlCitpbnQgcHNhX2tleV9kZXJpdmF0aW9uX291dHB1dF9rZXlfd3JhcHBlcigKKyAgICB1aW50OF90ICppbl9wYXJhbXMsIHNpemVfdCBpbl9wYXJhbXNfbGVuLAorICAgIHVpbnQ4X3QgKipvdXRfcGFyYW1zLCBzaXplX3QgKm91dF9wYXJhbXNfbGVuKQoreworICAgIHBzYV9zdGF0dXNfdCBzdGF0dXMgPSBQU0FfRVJST1JfQ09SUlVQVElPTl9ERVRFQ1RFRDsKKyAgICBwc2Ffa2V5X2F0dHJpYnV0ZXNfdCBhdHRyaWJ1dGVzOworICAgIHBzYV9rZXlfZGVyaXZhdGlvbl9vcGVyYXRpb25fdCAqb3BlcmF0aW9uOworICAgIG1iZWR0bHNfc3ZjX2tleV9pZF90IGtleTsKKworICAgIHVpbnQ4X3QgKnBvcyA9IGluX3BhcmFtczsKKyAgICBzaXplX3QgcmVtYWluaW5nID0gaW5fcGFyYW1zX2xlbjsKKyAgICB1aW50OF90ICpyZXN1bHQgPSBOVUxMOworICAgIGludCBvazsKKworICAgIG9rID0gcHNhc2ltX2Rlc2VyaWFsaXNlX2JlZ2luKCZwb3MsICZyZW1haW5pbmcpOworICAgIGlmICghb2spIHsKKyAgICAgICAgZ290byBmYWlsOworICAgIH0KKworICAgIG9rID0gcHNhc2ltX2Rlc2VyaWFsaXNlX3BzYV9rZXlfYXR0cmlidXRlc190KAorICAgICAgICAmcG9zLCAmcmVtYWluaW5nLAorICAgICAgICAmYXR0cmlidXRlcyk7CisgICAgaWYgKCFvaykgeworICAgICAgICBnb3RvIGZhaWw7CisgICAgfQorCisgICAgb2sgPSBwc2FzaW1fc2VydmVyX2Rlc2VyaWFsaXNlX3BzYV9rZXlfZGVyaXZhdGlvbl9vcGVyYXRpb25fdCgKKyAgICAgICAgJnBvcywgJnJlbWFpbmluZywKKyAgICAgICAgJm9wZXJhdGlvbik7CisgICAgaWYgKCFvaykgeworICAgICAgICBnb3RvIGZhaWw7CisgICAgfQorCisgICAgb2sgPSBwc2FzaW1fZGVzZXJpYWxpc2VfbWJlZHRsc19zdmNfa2V5X2lkX3QoCisgICAgICAgICZwb3MsICZyZW1haW5pbmcsCisgICAgICAgICZrZXkpOworICAgIGlmICghb2spIHsKKyAgICAgICAgZ290byBmYWlsOworICAgIH0KKworICAgIC8vIE5vdyB3ZSBjYWxsIHRoZSBhY3R1YWwgdGFyZ2V0IGZ1bmN0aW9uCisKKyAgICBzdGF0dXMgPSBwc2Ffa2V5X2Rlcml2YXRpb25fb3V0cHV0X2tleSgKKyAgICAgICAgJmF0dHJpYnV0ZXMsCisgICAgICAgIG9wZXJhdGlvbiwKKyAgICAgICAgJmtleQorICAgICAgICApOworCisgICAgLy8gTk9URTogU2hvdWxkIHJlYWxseSBjaGVjayB0aGVyZSBpcyBubyBvdmVyZmxvdyBhcyB3ZSBnbyBhbG9uZy4KKyAgICBzaXplX3QgcmVzdWx0X3NpemUgPQorICAgICAgICBwc2FzaW1fc2VyaWFsaXNlX2JlZ2luX25lZWRzKCkgKworICAgICAgICBwc2FzaW1fc2VyaWFsaXNlX3BzYV9zdGF0dXNfdF9uZWVkcyhzdGF0dXMpICsKKyAgICAgICAgcHNhc2ltX3NlcnZlcl9zZXJpYWxpc2VfcHNhX2tleV9kZXJpdmF0aW9uX29wZXJhdGlvbl90X25lZWRzKG9wZXJhdGlvbikgKworICAgICAgICBwc2FzaW1fc2VyaWFsaXNlX21iZWR0bHNfc3ZjX2tleV9pZF90X25lZWRzKGtleSk7CisKKyAgICByZXN1bHQgPSBtYWxsb2MocmVzdWx0X3NpemUpOworICAgIGlmIChyZXN1bHQgPT0gTlVMTCkgeworICAgICAgICBnb3RvIGZhaWw7CisgICAgfQorCisgICAgdWludDhfdCAqcnBvcyA9IHJlc3VsdDsKKyAgICBzaXplX3QgcnJlbWFpbiA9IHJlc3VsdF9zaXplOworCisgICAgb2sgPSBwc2FzaW1fc2VyaWFsaXNlX2JlZ2luKCZycG9zLCAmcnJlbWFpbik7CisgICAgaWYgKCFvaykgeworICAgICAgICBnb3RvIGZhaWw7CisgICAgfQorCisgICAgb2sgPSBwc2FzaW1fc2VyaWFsaXNlX3BzYV9zdGF0dXNfdCgKKyAgICAgICAgJnJwb3MsICZycmVtYWluLAorICAgICAgICBzdGF0dXMpOworICAgIGlmICghb2spIHsKKyAgICAgICAgZ290byBmYWlsOworICAgIH0KKworICAgIG9rID0gcHNhc2ltX3NlcnZlcl9zZXJpYWxpc2VfcHNhX2tleV9kZXJpdmF0aW9uX29wZXJhdGlvbl90KAorICAgICAgICAmcnBvcywgJnJyZW1haW4sCisgICAgICAgIG9wZXJhdGlvbiwgMCk7CisgICAgaWYgKCFvaykgeworICAgICAgICBnb3RvIGZhaWw7CisgICAgfQorCisgICAgb2sgPSBwc2FzaW1fc2VyaWFsaXNlX21iZWR0bHNfc3ZjX2tleV9pZF90KAorICAgICAgICAmcnBvcywgJnJyZW1haW4sCisgICAgICAgIGtleSk7CisgICAgaWYgKCFvaykgeworICAgICAgICBnb3RvIGZhaWw7CisgICAgfQorCisgICAgKm91dF9wYXJhbXMgPSByZXN1bHQ7CisgICAgKm91dF9wYXJhbXNfbGVuID0gcmVzdWx0X3NpemU7CisKKyAgICByZXR1cm4gMTsgICAvLyBzdWNjZXNzCisKK2ZhaWw6CisgICAgZnJlZShyZXN1bHQpOworCisgICAgcmV0dXJuIDA7ICAgICAgIC8vIFRoaXMgc2hvdWxkbid0IGhhcHBlbiEKK30KKworLy8gUmV0dXJucyAxIGZvciBzdWNjZXNzLCAwIGZvciBmYWlsdXJlCitpbnQgcHNhX2tleV9kZXJpdmF0aW9uX291dHB1dF9rZXlfZXh0X3dyYXBwZXIoCisgICAgdWludDhfdCAqaW5fcGFyYW1zLCBzaXplX3QgaW5fcGFyYW1zX2xlbiwKKyAgICB1aW50OF90ICoqb3V0X3BhcmFtcywgc2l6ZV90ICpvdXRfcGFyYW1zX2xlbikKK3sKKyAgICBwc2Ffc3RhdHVzX3Qgc3RhdHVzID0gUFNBX0VSUk9SX0NPUlJVUFRJT05fREVURUNURUQ7CisgICAgcHNhX2tleV9hdHRyaWJ1dGVzX3QgYXR0cmlidXRlczsKKyAgICBwc2Ffa2V5X2Rlcml2YXRpb25fb3BlcmF0aW9uX3QgKm9wZXJhdGlvbjsKKyAgICBwc2Ffa2V5X3Byb2R1Y3Rpb25fcGFyYW1ldGVyc190ICpwYXJhbXMgPSBOVUxMOworICAgIHNpemVfdCBwYXJhbXNfZGF0YV9sZW5ndGg7CisgICAgbWJlZHRsc19zdmNfa2V5X2lkX3Qga2V5OworCisgICAgdWludDhfdCAqcG9zID0gaW5fcGFyYW1zOworICAgIHNpemVfdCByZW1haW5pbmcgPSBpbl9wYXJhbXNfbGVuOworICAgIHVpbnQ4X3QgKnJlc3VsdCA9IE5VTEw7CisgICAgaW50IG9rOworCisgICAgb2sgPSBwc2FzaW1fZGVzZXJpYWxpc2VfYmVnaW4oJnBvcywgJnJlbWFpbmluZyk7CisgICAgaWYgKCFvaykgeworICAgICAgICBnb3RvIGZhaWw7CisgICAgfQorCisgICAgb2sgPSBwc2FzaW1fZGVzZXJpYWxpc2VfcHNhX2tleV9hdHRyaWJ1dGVzX3QoCisgICAgICAgICZwb3MsICZyZW1haW5pbmcsCisgICAgICAgICZhdHRyaWJ1dGVzKTsKKyAgICBpZiAoIW9rKSB7CisgICAgICAgIGdvdG8gZmFpbDsKKyAgICB9CisKKyAgICBvayA9IHBzYXNpbV9zZXJ2ZXJfZGVzZXJpYWxpc2VfcHNhX2tleV9kZXJpdmF0aW9uX29wZXJhdGlvbl90KAorICAgICAgICAmcG9zLCAmcmVtYWluaW5nLAorICAgICAgICAmb3BlcmF0aW9uKTsKKyAgICBpZiAoIW9rKSB7CisgICAgICAgIGdvdG8gZmFpbDsKKyAgICB9CisKKyAgICBvayA9IHBzYXNpbV9kZXNlcmlhbGlzZV9wc2Ffa2V5X3Byb2R1Y3Rpb25fcGFyYW1ldGVyc190KAorICAgICAgICAmcG9zLCAmcmVtYWluaW5nLAorICAgICAgICAmcGFyYW1zLCAmcGFyYW1zX2RhdGFfbGVuZ3RoKTsKKyAgICBpZiAoIW9rKSB7CisgICAgICAgIGdvdG8gZmFpbDsKKyAgICB9CisKKyAgICBvayA9IHBzYXNpbV9kZXNlcmlhbGlzZV9tYmVkdGxzX3N2Y19rZXlfaWRfdCgKKyAgICAgICAgJnBvcywgJnJlbWFpbmluZywKKyAgICAgICAgJmtleSk7CisgICAgaWYgKCFvaykgeworICAgICAgICBnb3RvIGZhaWw7CisgICAgfQorCisgICAgLy8gTm93IHdlIGNhbGwgdGhlIGFjdHVhbCB0YXJnZXQgZnVuY3Rpb24KKworICAgIHN0YXR1cyA9IHBzYV9rZXlfZGVyaXZhdGlvbl9vdXRwdXRfa2V5X2V4dCgKKyAgICAgICAgJmF0dHJpYnV0ZXMsCisgICAgICAgIG9wZXJhdGlvbiwKKyAgICAgICAgcGFyYW1zLCBwYXJhbXNfZGF0YV9sZW5ndGgsCisgICAgICAgICZrZXkKKyAgICAgICAgKTsKKworICAgIC8vIE5PVEU6IFNob3VsZCByZWFsbHkgY2hlY2sgdGhlcmUgaXMgbm8gb3ZlcmZsb3cgYXMgd2UgZ28gYWxvbmcuCisgICAgc2l6ZV90IHJlc3VsdF9zaXplID0KKyAgICAgICAgcHNhc2ltX3NlcmlhbGlzZV9iZWdpbl9uZWVkcygpICsKKyAgICAgICAgcHNhc2ltX3NlcmlhbGlzZV9wc2Ffc3RhdHVzX3RfbmVlZHMoc3RhdHVzKSArCisgICAgICAgIHBzYXNpbV9zZXJ2ZXJfc2VyaWFsaXNlX3BzYV9rZXlfZGVyaXZhdGlvbl9vcGVyYXRpb25fdF9uZWVkcyhvcGVyYXRpb24pICsKKyAgICAgICAgcHNhc2ltX3NlcmlhbGlzZV9tYmVkdGxzX3N2Y19rZXlfaWRfdF9uZWVkcyhrZXkpOworCisgICAgcmVzdWx0ID0gbWFsbG9jKHJlc3VsdF9zaXplKTsKKyAgICBpZiAocmVzdWx0ID09IE5VTEwpIHsKKyAgICAgICAgZ290byBmYWlsOworICAgIH0KKworICAgIHVpbnQ4X3QgKnJwb3MgPSByZXN1bHQ7CisgICAgc2l6ZV90IHJyZW1haW4gPSByZXN1bHRfc2l6ZTsKKworICAgIG9rID0gcHNhc2ltX3NlcmlhbGlzZV9iZWdpbigmcnBvcywgJnJyZW1haW4pOworICAgIGlmICghb2spIHsKKyAgICAgICAgZ290byBmYWlsOworICAgIH0KKworICAgIG9rID0gcHNhc2ltX3NlcmlhbGlzZV9wc2Ffc3RhdHVzX3QoCisgICAgICAgICZycG9zLCAmcnJlbWFpbiwKKyAgICAgICAgc3RhdHVzKTsKKyAgICBpZiAoIW9rKSB7CisgICAgICAgIGdvdG8gZmFpbDsKKyAgICB9CisKKyAgICBvayA9IHBzYXNpbV9zZXJ2ZXJfc2VyaWFsaXNlX3BzYV9rZXlfZGVyaXZhdGlvbl9vcGVyYXRpb25fdCgKKyAgICAgICAgJnJwb3MsICZycmVtYWluLAorICAgICAgICBvcGVyYXRpb24sIDApOworICAgIGlmICghb2spIHsKKyAgICAgICAgZ290byBmYWlsOworICAgIH0KKworICAgIG9rID0gcHNhc2ltX3NlcmlhbGlzZV9tYmVkdGxzX3N2Y19rZXlfaWRfdCgKKyAgICAgICAgJnJwb3MsICZycmVtYWluLAorICAgICAgICBrZXkpOworICAgIGlmICghb2spIHsKKyAgICAgICAgZ290byBmYWlsOworICAgIH0KKworICAgICpvdXRfcGFyYW1zID0gcmVzdWx0OworICAgICpvdXRfcGFyYW1zX2xlbiA9IHJlc3VsdF9zaXplOworCisgICAgZnJlZShwYXJhbXMpOworCisgICAgcmV0dXJuIDE7ICAgLy8gc3VjY2VzcworCitmYWlsOgorICAgIGZyZWUocmVzdWx0KTsKKworICAgIGZyZWUocGFyYW1zKTsKKworICAgIHJldHVybiAwOyAgICAgICAvLyBUaGlzIHNob3VsZG4ndCBoYXBwZW4hCit9CisKKy8vIFJldHVybnMgMSBmb3Igc3VjY2VzcywgMCBmb3IgZmFpbHVyZQoraW50IHBzYV9rZXlfZGVyaXZhdGlvbl9zZXRfY2FwYWNpdHlfd3JhcHBlcigKKyAgICB1aW50OF90ICppbl9wYXJhbXMsIHNpemVfdCBpbl9wYXJhbXNfbGVuLAorICAgIHVpbnQ4X3QgKipvdXRfcGFyYW1zLCBzaXplX3QgKm91dF9wYXJhbXNfbGVuKQoreworICAgIHBzYV9zdGF0dXNfdCBzdGF0dXMgPSBQU0FfRVJST1JfQ09SUlVQVElPTl9ERVRFQ1RFRDsKKyAgICBwc2Ffa2V5X2Rlcml2YXRpb25fb3BlcmF0aW9uX3QgKm9wZXJhdGlvbjsKKyAgICBzaXplX3QgY2FwYWNpdHk7CisKKyAgICB1aW50OF90ICpwb3MgPSBpbl9wYXJhbXM7CisgICAgc2l6ZV90IHJlbWFpbmluZyA9IGluX3BhcmFtc19sZW47CisgICAgdWludDhfdCAqcmVzdWx0ID0gTlVMTDsKKyAgICBpbnQgb2s7CisKKyAgICBvayA9IHBzYXNpbV9kZXNlcmlhbGlzZV9iZWdpbigmcG9zLCAmcmVtYWluaW5nKTsKKyAgICBpZiAoIW9rKSB7CisgICAgICAgIGdvdG8gZmFpbDsKKyAgICB9CisKKyAgICBvayA9IHBzYXNpbV9zZXJ2ZXJfZGVzZXJpYWxpc2VfcHNhX2tleV9kZXJpdmF0aW9uX29wZXJhdGlvbl90KAorICAgICAgICAmcG9zLCAmcmVtYWluaW5nLAorICAgICAgICAmb3BlcmF0aW9uKTsKKyAgICBpZiAoIW9rKSB7CisgICAgICAgIGdvdG8gZmFpbDsKKyAgICB9CisKKyAgICBvayA9IHBzYXNpbV9kZXNlcmlhbGlzZV9zaXplX3QoCisgICAgICAgICZwb3MsICZyZW1haW5pbmcsCisgICAgICAgICZjYXBhY2l0eSk7CisgICAgaWYgKCFvaykgeworICAgICAgICBnb3RvIGZhaWw7CisgICAgfQorCisgICAgLy8gTm93IHdlIGNhbGwgdGhlIGFjdHVhbCB0YXJnZXQgZnVuY3Rpb24KKworICAgIHN0YXR1cyA9IHBzYV9rZXlfZGVyaXZhdGlvbl9zZXRfY2FwYWNpdHkoCisgICAgICAgIG9wZXJhdGlvbiwKKyAgICAgICAgY2FwYWNpdHkKKyAgICAgICAgKTsKKworICAgIC8vIE5PVEU6IFNob3VsZCByZWFsbHkgY2hlY2sgdGhlcmUgaXMgbm8gb3ZlcmZsb3cgYXMgd2UgZ28gYWxvbmcuCisgICAgc2l6ZV90IHJlc3VsdF9zaXplID0KKyAgICAgICAgcHNhc2ltX3NlcmlhbGlzZV9iZWdpbl9uZWVkcygpICsKKyAgICAgICAgcHNhc2ltX3NlcmlhbGlzZV9wc2Ffc3RhdHVzX3RfbmVlZHMoc3RhdHVzKSArCisgICAgICAgIHBzYXNpbV9zZXJ2ZXJfc2VyaWFsaXNlX3BzYV9rZXlfZGVyaXZhdGlvbl9vcGVyYXRpb25fdF9uZWVkcyhvcGVyYXRpb24pOworCisgICAgcmVzdWx0ID0gbWFsbG9jKHJlc3VsdF9zaXplKTsKKyAgICBpZiAocmVzdWx0ID09IE5VTEwpIHsKKyAgICAgICAgZ290byBmYWlsOworICAgIH0KKworICAgIHVpbnQ4X3QgKnJwb3MgPSByZXN1bHQ7CisgICAgc2l6ZV90IHJyZW1haW4gPSByZXN1bHRfc2l6ZTsKKworICAgIG9rID0gcHNhc2ltX3NlcmlhbGlzZV9iZWdpbigmcnBvcywgJnJyZW1haW4pOworICAgIGlmICghb2spIHsKKyAgICAgICAgZ290byBmYWlsOworICAgIH0KKworICAgIG9rID0gcHNhc2ltX3NlcmlhbGlzZV9wc2Ffc3RhdHVzX3QoCisgICAgICAgICZycG9zLCAmcnJlbWFpbiwKKyAgICAgICAgc3RhdHVzKTsKKyAgICBpZiAoIW9rKSB7CisgICAgICAgIGdvdG8gZmFpbDsKKyAgICB9CisKKyAgICBvayA9IHBzYXNpbV9zZXJ2ZXJfc2VyaWFsaXNlX3BzYV9rZXlfZGVyaXZhdGlvbl9vcGVyYXRpb25fdCgKKyAgICAgICAgJnJwb3MsICZycmVtYWluLAorICAgICAgICBvcGVyYXRpb24sIDApOworICAgIGlmICghb2spIHsKKyAgICAgICAgZ290byBmYWlsOworICAgIH0KKworICAgICpvdXRfcGFyYW1zID0gcmVzdWx0OworICAgICpvdXRfcGFyYW1zX2xlbiA9IHJlc3VsdF9zaXplOworCisgICAgcmV0dXJuIDE7ICAgLy8gc3VjY2VzcworCitmYWlsOgorICAgIGZyZWUocmVzdWx0KTsKKworICAgIHJldHVybiAwOyAgICAgICAvLyBUaGlzIHNob3VsZG4ndCBoYXBwZW4hCit9CisKKy8vIFJldHVybnMgMSBmb3Igc3VjY2VzcywgMCBmb3IgZmFpbHVyZQoraW50IHBzYV9rZXlfZGVyaXZhdGlvbl9zZXR1cF93cmFwcGVyKAorICAgIHVpbnQ4X3QgKmluX3BhcmFtcywgc2l6ZV90IGluX3BhcmFtc19sZW4sCisgICAgdWludDhfdCAqKm91dF9wYXJhbXMsIHNpemVfdCAqb3V0X3BhcmFtc19sZW4pCit7CisgICAgcHNhX3N0YXR1c190IHN0YXR1cyA9IFBTQV9FUlJPUl9DT1JSVVBUSU9OX0RFVEVDVEVEOworICAgIHBzYV9rZXlfZGVyaXZhdGlvbl9vcGVyYXRpb25fdCAqb3BlcmF0aW9uOworICAgIHBzYV9hbGdvcml0aG1fdCBhbGc7CisKKyAgICB1aW50OF90ICpwb3MgPSBpbl9wYXJhbXM7CisgICAgc2l6ZV90IHJlbWFpbmluZyA9IGluX3BhcmFtc19sZW47CisgICAgdWludDhfdCAqcmVzdWx0ID0gTlVMTDsKKyAgICBpbnQgb2s7CisKKyAgICBvayA9IHBzYXNpbV9kZXNlcmlhbGlzZV9iZWdpbigmcG9zLCAmcmVtYWluaW5nKTsKKyAgICBpZiAoIW9rKSB7CisgICAgICAgIGdvdG8gZmFpbDsKKyAgICB9CisKKyAgICBvayA9IHBzYXNpbV9zZXJ2ZXJfZGVzZXJpYWxpc2VfcHNhX2tleV9kZXJpdmF0aW9uX29wZXJhdGlvbl90KAorICAgICAgICAmcG9zLCAmcmVtYWluaW5nLAorICAgICAgICAmb3BlcmF0aW9uKTsKKyAgICBpZiAoIW9rKSB7CisgICAgICAgIGdvdG8gZmFpbDsKKyAgICB9CisKKyAgICBvayA9IHBzYXNpbV9kZXNlcmlhbGlzZV9wc2FfYWxnb3JpdGhtX3QoCisgICAgICAgICZwb3MsICZyZW1haW5pbmcsCisgICAgICAgICZhbGcpOworICAgIGlmICghb2spIHsKKyAgICAgICAgZ290byBmYWlsOworICAgIH0KKworICAgIC8vIE5vdyB3ZSBjYWxsIHRoZSBhY3R1YWwgdGFyZ2V0IGZ1bmN0aW9uCisKKyAgICBzdGF0dXMgPSBwc2Ffa2V5X2Rlcml2YXRpb25fc2V0dXAoCisgICAgICAgIG9wZXJhdGlvbiwKKyAgICAgICAgYWxnCisgICAgICAgICk7CisKKyAgICAvLyBOT1RFOiBTaG91bGQgcmVhbGx5IGNoZWNrIHRoZXJlIGlzIG5vIG92ZXJmbG93IGFzIHdlIGdvIGFsb25nLgorICAgIHNpemVfdCByZXN1bHRfc2l6ZSA9CisgICAgICAgIHBzYXNpbV9zZXJpYWxpc2VfYmVnaW5fbmVlZHMoKSArCisgICAgICAgIHBzYXNpbV9zZXJpYWxpc2VfcHNhX3N0YXR1c190X25lZWRzKHN0YXR1cykgKworICAgICAgICBwc2FzaW1fc2VydmVyX3NlcmlhbGlzZV9wc2Ffa2V5X2Rlcml2YXRpb25fb3BlcmF0aW9uX3RfbmVlZHMob3BlcmF0aW9uKTsKKworICAgIHJlc3VsdCA9IG1hbGxvYyhyZXN1bHRfc2l6ZSk7CisgICAgaWYgKHJlc3VsdCA9PSBOVUxMKSB7CisgICAgICAgIGdvdG8gZmFpbDsKKyAgICB9CisKKyAgICB1aW50OF90ICpycG9zID0gcmVzdWx0OworICAgIHNpemVfdCBycmVtYWluID0gcmVzdWx0X3NpemU7CisKKyAgICBvayA9IHBzYXNpbV9zZXJpYWxpc2VfYmVnaW4oJnJwb3MsICZycmVtYWluKTsKKyAgICBpZiAoIW9rKSB7CisgICAgICAgIGdvdG8gZmFpbDsKKyAgICB9CisKKyAgICBvayA9IHBzYXNpbV9zZXJpYWxpc2VfcHNhX3N0YXR1c190KAorICAgICAgICAmcnBvcywgJnJyZW1haW4sCisgICAgICAgIHN0YXR1cyk7CisgICAgaWYgKCFvaykgeworICAgICAgICBnb3RvIGZhaWw7CisgICAgfQorCisgICAgb2sgPSBwc2FzaW1fc2VydmVyX3NlcmlhbGlzZV9wc2Ffa2V5X2Rlcml2YXRpb25fb3BlcmF0aW9uX3QoCisgICAgICAgICZycG9zLCAmcnJlbWFpbiwKKyAgICAgICAgb3BlcmF0aW9uLCAwKTsKKyAgICBpZiAoIW9rKSB7CisgICAgICAgIGdvdG8gZmFpbDsKKyAgICB9CisKKyAgICAqb3V0X3BhcmFtcyA9IHJlc3VsdDsKKyAgICAqb3V0X3BhcmFtc19sZW4gPSByZXN1bHRfc2l6ZTsKKworICAgIHJldHVybiAxOyAgIC8vIHN1Y2Nlc3MKKworZmFpbDoKKyAgICBmcmVlKHJlc3VsdCk7CisKKyAgICByZXR1cm4gMDsgICAgICAgLy8gVGhpcyBzaG91bGRuJ3QgaGFwcGVuIQorfQorCisvLyBSZXR1cm5zIDEgZm9yIHN1Y2Nlc3MsIDAgZm9yIGZhaWx1cmUKK2ludCBwc2FfbWFjX2Fib3J0X3dyYXBwZXIoCisgICAgdWludDhfdCAqaW5fcGFyYW1zLCBzaXplX3QgaW5fcGFyYW1zX2xlbiwKKyAgICB1aW50OF90ICoqb3V0X3BhcmFtcywgc2l6ZV90ICpvdXRfcGFyYW1zX2xlbikKK3sKKyAgICBwc2Ffc3RhdHVzX3Qgc3RhdHVzID0gUFNBX0VSUk9SX0NPUlJVUFRJT05fREVURUNURUQ7CisgICAgcHNhX21hY19vcGVyYXRpb25fdCAqb3BlcmF0aW9uOworCisgICAgdWludDhfdCAqcG9zID0gaW5fcGFyYW1zOworICAgIHNpemVfdCByZW1haW5pbmcgPSBpbl9wYXJhbXNfbGVuOworICAgIHVpbnQ4X3QgKnJlc3VsdCA9IE5VTEw7CisgICAgaW50IG9rOworCisgICAgb2sgPSBwc2FzaW1fZGVzZXJpYWxpc2VfYmVnaW4oJnBvcywgJnJlbWFpbmluZyk7CisgICAgaWYgKCFvaykgeworICAgICAgICBnb3RvIGZhaWw7CisgICAgfQorCisgICAgb2sgPSBwc2FzaW1fc2VydmVyX2Rlc2VyaWFsaXNlX3BzYV9tYWNfb3BlcmF0aW9uX3QoCisgICAgICAgICZwb3MsICZyZW1haW5pbmcsCisgICAgICAgICZvcGVyYXRpb24pOworICAgIGlmICghb2spIHsKKyAgICAgICAgZ290byBmYWlsOworICAgIH0KKworICAgIC8vIE5vdyB3ZSBjYWxsIHRoZSBhY3R1YWwgdGFyZ2V0IGZ1bmN0aW9uCisKKyAgICBzdGF0dXMgPSBwc2FfbWFjX2Fib3J0KAorICAgICAgICBvcGVyYXRpb24KKyAgICAgICAgKTsKKworICAgIC8vIE5PVEU6IFNob3VsZCByZWFsbHkgY2hlY2sgdGhlcmUgaXMgbm8gb3ZlcmZsb3cgYXMgd2UgZ28gYWxvbmcuCisgICAgc2l6ZV90IHJlc3VsdF9zaXplID0KKyAgICAgICAgcHNhc2ltX3NlcmlhbGlzZV9iZWdpbl9uZWVkcygpICsKKyAgICAgICAgcHNhc2ltX3NlcmlhbGlzZV9wc2Ffc3RhdHVzX3RfbmVlZHMoc3RhdHVzKSArCisgICAgICAgIHBzYXNpbV9zZXJ2ZXJfc2VyaWFsaXNlX3BzYV9tYWNfb3BlcmF0aW9uX3RfbmVlZHMob3BlcmF0aW9uKTsKKworICAgIHJlc3VsdCA9IG1hbGxvYyhyZXN1bHRfc2l6ZSk7CisgICAgaWYgKHJlc3VsdCA9PSBOVUxMKSB7CisgICAgICAgIGdvdG8gZmFpbDsKKyAgICB9CisKKyAgICB1aW50OF90ICpycG9zID0gcmVzdWx0OworICAgIHNpemVfdCBycmVtYWluID0gcmVzdWx0X3NpemU7CisKKyAgICBvayA9IHBzYXNpbV9zZXJpYWxpc2VfYmVnaW4oJnJwb3MsICZycmVtYWluKTsKKyAgICBpZiAoIW9rKSB7CisgICAgICAgIGdvdG8gZmFpbDsKKyAgICB9CisKKyAgICBvayA9IHBzYXNpbV9zZXJpYWxpc2VfcHNhX3N0YXR1c190KAorICAgICAgICAmcnBvcywgJnJyZW1haW4sCisgICAgICAgIHN0YXR1cyk7CisgICAgaWYgKCFvaykgeworICAgICAgICBnb3RvIGZhaWw7CisgICAgfQorCisgICAgb2sgPSBwc2FzaW1fc2VydmVyX3NlcmlhbGlzZV9wc2FfbWFjX29wZXJhdGlvbl90KAorICAgICAgICAmcnBvcywgJnJyZW1haW4sCisgICAgICAgIG9wZXJhdGlvbiwgMSk7CisgICAgaWYgKCFvaykgeworICAgICAgICBnb3RvIGZhaWw7CisgICAgfQorCisgICAgKm91dF9wYXJhbXMgPSByZXN1bHQ7CisgICAgKm91dF9wYXJhbXNfbGVuID0gcmVzdWx0X3NpemU7CisKKyAgICByZXR1cm4gMTsgICAvLyBzdWNjZXNzCisKK2ZhaWw6CisgICAgZnJlZShyZXN1bHQpOworCisgICAgcmV0dXJuIDA7ICAgICAgIC8vIFRoaXMgc2hvdWxkbid0IGhhcHBlbiEKK30KKworLy8gUmV0dXJucyAxIGZvciBzdWNjZXNzLCAwIGZvciBmYWlsdXJlCitpbnQgcHNhX21hY19jb21wdXRlX3dyYXBwZXIoCisgICAgdWludDhfdCAqaW5fcGFyYW1zLCBzaXplX3QgaW5fcGFyYW1zX2xlbiwKKyAgICB1aW50OF90ICoqb3V0X3BhcmFtcywgc2l6ZV90ICpvdXRfcGFyYW1zX2xlbikKK3sKKyAgICBwc2Ffc3RhdHVzX3Qgc3RhdHVzID0gUFNBX0VSUk9SX0NPUlJVUFRJT05fREVURUNURUQ7CisgICAgbWJlZHRsc19zdmNfa2V5X2lkX3Qga2V5OworICAgIHBzYV9hbGdvcml0aG1fdCBhbGc7CisgICAgdWludDhfdCAqaW5wdXQgPSBOVUxMOworICAgIHNpemVfdCBpbnB1dF9sZW5ndGg7CisgICAgdWludDhfdCAqbWFjID0gTlVMTDsKKyAgICBzaXplX3QgbWFjX3NpemU7CisgICAgc2l6ZV90IG1hY19sZW5ndGg7CisKKyAgICB1aW50OF90ICpwb3MgPSBpbl9wYXJhbXM7CisgICAgc2l6ZV90IHJlbWFpbmluZyA9IGluX3BhcmFtc19sZW47CisgICAgdWludDhfdCAqcmVzdWx0ID0gTlVMTDsKKyAgICBpbnQgb2s7CisKKyAgICBvayA9IHBzYXNpbV9kZXNlcmlhbGlzZV9iZWdpbigmcG9zLCAmcmVtYWluaW5nKTsKKyAgICBpZiAoIW9rKSB7CisgICAgICAgIGdvdG8gZmFpbDsKKyAgICB9CisKKyAgICBvayA9IHBzYXNpbV9kZXNlcmlhbGlzZV9tYmVkdGxzX3N2Y19rZXlfaWRfdCgKKyAgICAgICAgJnBvcywgJnJlbWFpbmluZywKKyAgICAgICAgJmtleSk7CisgICAgaWYgKCFvaykgeworICAgICAgICBnb3RvIGZhaWw7CisgICAgfQorCisgICAgb2sgPSBwc2FzaW1fZGVzZXJpYWxpc2VfcHNhX2FsZ29yaXRobV90KAorICAgICAgICAmcG9zLCAmcmVtYWluaW5nLAorICAgICAgICAmYWxnKTsKKyAgICBpZiAoIW9rKSB7CisgICAgICAgIGdvdG8gZmFpbDsKKyAgICB9CisKKyAgICBvayA9IHBzYXNpbV9kZXNlcmlhbGlzZV9idWZmZXIoCisgICAgICAgICZwb3MsICZyZW1haW5pbmcsCisgICAgICAgICZpbnB1dCwgJmlucHV0X2xlbmd0aCk7CisgICAgaWYgKCFvaykgeworICAgICAgICBnb3RvIGZhaWw7CisgICAgfQorCisgICAgb2sgPSBwc2FzaW1fZGVzZXJpYWxpc2VfYnVmZmVyKAorICAgICAgICAmcG9zLCAmcmVtYWluaW5nLAorICAgICAgICAmbWFjLCAmbWFjX3NpemUpOworICAgIGlmICghb2spIHsKKyAgICAgICAgZ290byBmYWlsOworICAgIH0KKworICAgIG9rID0gcHNhc2ltX2Rlc2VyaWFsaXNlX3NpemVfdCgKKyAgICAgICAgJnBvcywgJnJlbWFpbmluZywKKyAgICAgICAgJm1hY19sZW5ndGgpOworICAgIGlmICghb2spIHsKKyAgICAgICAgZ290byBmYWlsOworICAgIH0KKworICAgIC8vIE5vdyB3ZSBjYWxsIHRoZSBhY3R1YWwgdGFyZ2V0IGZ1bmN0aW9uCisKKyAgICBzdGF0dXMgPSBwc2FfbWFjX2NvbXB1dGUoCisgICAgICAgIGtleSwKKyAgICAgICAgYWxnLAorICAgICAgICBpbnB1dCwgaW5wdXRfbGVuZ3RoLAorICAgICAgICBtYWMsIG1hY19zaXplLAorICAgICAgICAmbWFjX2xlbmd0aAorICAgICAgICApOworCisgICAgLy8gTk9URTogU2hvdWxkIHJlYWxseSBjaGVjayB0aGVyZSBpcyBubyBvdmVyZmxvdyBhcyB3ZSBnbyBhbG9uZy4KKyAgICBzaXplX3QgcmVzdWx0X3NpemUgPQorICAgICAgICBwc2FzaW1fc2VyaWFsaXNlX2JlZ2luX25lZWRzKCkgKworICAgICAgICBwc2FzaW1fc2VyaWFsaXNlX3BzYV9zdGF0dXNfdF9uZWVkcyhzdGF0dXMpICsKKyAgICAgICAgcHNhc2ltX3NlcmlhbGlzZV9idWZmZXJfbmVlZHMobWFjLCBtYWNfc2l6ZSkgKworICAgICAgICBwc2FzaW1fc2VyaWFsaXNlX3NpemVfdF9uZWVkcyhtYWNfbGVuZ3RoKTsKKworICAgIHJlc3VsdCA9IG1hbGxvYyhyZXN1bHRfc2l6ZSk7CisgICAgaWYgKHJlc3VsdCA9PSBOVUxMKSB7CisgICAgICAgIGdvdG8gZmFpbDsKKyAgICB9CisKKyAgICB1aW50OF90ICpycG9zID0gcmVzdWx0OworICAgIHNpemVfdCBycmVtYWluID0gcmVzdWx0X3NpemU7CisKKyAgICBvayA9IHBzYXNpbV9zZXJpYWxpc2VfYmVnaW4oJnJwb3MsICZycmVtYWluKTsKKyAgICBpZiAoIW9rKSB7CisgICAgICAgIGdvdG8gZmFpbDsKKyAgICB9CisKKyAgICBvayA9IHBzYXNpbV9zZXJpYWxpc2VfcHNhX3N0YXR1c190KAorICAgICAgICAmcnBvcywgJnJyZW1haW4sCisgICAgICAgIHN0YXR1cyk7CisgICAgaWYgKCFvaykgeworICAgICAgICBnb3RvIGZhaWw7CisgICAgfQorCisgICAgb2sgPSBwc2FzaW1fc2VyaWFsaXNlX2J1ZmZlcigKKyAgICAgICAgJnJwb3MsICZycmVtYWluLAorICAgICAgICBtYWMsIG1hY19zaXplKTsKKyAgICBpZiAoIW9rKSB7CisgICAgICAgIGdvdG8gZmFpbDsKKyAgICB9CisKKyAgICBvayA9IHBzYXNpbV9zZXJpYWxpc2Vfc2l6ZV90KAorICAgICAgICAmcnBvcywgJnJyZW1haW4sCisgICAgICAgIG1hY19sZW5ndGgpOworICAgIGlmICghb2spIHsKKyAgICAgICAgZ290byBmYWlsOworICAgIH0KKworICAgICpvdXRfcGFyYW1zID0gcmVzdWx0OworICAgICpvdXRfcGFyYW1zX2xlbiA9IHJlc3VsdF9zaXplOworCisgICAgZnJlZShpbnB1dCk7CisgICAgZnJlZShtYWMpOworCisgICAgcmV0dXJuIDE7ICAgLy8gc3VjY2VzcworCitmYWlsOgorICAgIGZyZWUocmVzdWx0KTsKKworICAgIGZyZWUoaW5wdXQpOworICAgIGZyZWUobWFjKTsKKworICAgIHJldHVybiAwOyAgICAgICAvLyBUaGlzIHNob3VsZG4ndCBoYXBwZW4hCit9CisKKy8vIFJldHVybnMgMSBmb3Igc3VjY2VzcywgMCBmb3IgZmFpbHVyZQoraW50IHBzYV9tYWNfc2lnbl9maW5pc2hfd3JhcHBlcigKKyAgICB1aW50OF90ICppbl9wYXJhbXMsIHNpemVfdCBpbl9wYXJhbXNfbGVuLAorICAgIHVpbnQ4X3QgKipvdXRfcGFyYW1zLCBzaXplX3QgKm91dF9wYXJhbXNfbGVuKQoreworICAgIHBzYV9zdGF0dXNfdCBzdGF0dXMgPSBQU0FfRVJST1JfQ09SUlVQVElPTl9ERVRFQ1RFRDsKKyAgICBwc2FfbWFjX29wZXJhdGlvbl90ICpvcGVyYXRpb247CisgICAgdWludDhfdCAqbWFjID0gTlVMTDsKKyAgICBzaXplX3QgbWFjX3NpemU7CisgICAgc2l6ZV90IG1hY19sZW5ndGg7CisKKyAgICB1aW50OF90ICpwb3MgPSBpbl9wYXJhbXM7CisgICAgc2l6ZV90IHJlbWFpbmluZyA9IGluX3BhcmFtc19sZW47CisgICAgdWludDhfdCAqcmVzdWx0ID0gTlVMTDsKKyAgICBpbnQgb2s7CisKKyAgICBvayA9IHBzYXNpbV9kZXNlcmlhbGlzZV9iZWdpbigmcG9zLCAmcmVtYWluaW5nKTsKKyAgICBpZiAoIW9rKSB7CisgICAgICAgIGdvdG8gZmFpbDsKKyAgICB9CisKKyAgICBvayA9IHBzYXNpbV9zZXJ2ZXJfZGVzZXJpYWxpc2VfcHNhX21hY19vcGVyYXRpb25fdCgKKyAgICAgICAgJnBvcywgJnJlbWFpbmluZywKKyAgICAgICAgJm9wZXJhdGlvbik7CisgICAgaWYgKCFvaykgeworICAgICAgICBnb3RvIGZhaWw7CisgICAgfQorCisgICAgb2sgPSBwc2FzaW1fZGVzZXJpYWxpc2VfYnVmZmVyKAorICAgICAgICAmcG9zLCAmcmVtYWluaW5nLAorICAgICAgICAmbWFjLCAmbWFjX3NpemUpOworICAgIGlmICghb2spIHsKKyAgICAgICAgZ290byBmYWlsOworICAgIH0KKworICAgIG9rID0gcHNhc2ltX2Rlc2VyaWFsaXNlX3NpemVfdCgKKyAgICAgICAgJnBvcywgJnJlbWFpbmluZywKKyAgICAgICAgJm1hY19sZW5ndGgpOworICAgIGlmICghb2spIHsKKyAgICAgICAgZ290byBmYWlsOworICAgIH0KKworICAgIC8vIE5vdyB3ZSBjYWxsIHRoZSBhY3R1YWwgdGFyZ2V0IGZ1bmN0aW9uCisKKyAgICBzdGF0dXMgPSBwc2FfbWFjX3NpZ25fZmluaXNoKAorICAgICAgICBvcGVyYXRpb24sCisgICAgICAgIG1hYywgbWFjX3NpemUsCisgICAgICAgICZtYWNfbGVuZ3RoCisgICAgICAgICk7CisKKyAgICAvLyBOT1RFOiBTaG91bGQgcmVhbGx5IGNoZWNrIHRoZXJlIGlzIG5vIG92ZXJmbG93IGFzIHdlIGdvIGFsb25nLgorICAgIHNpemVfdCByZXN1bHRfc2l6ZSA9CisgICAgICAgIHBzYXNpbV9zZXJpYWxpc2VfYmVnaW5fbmVlZHMoKSArCisgICAgICAgIHBzYXNpbV9zZXJpYWxpc2VfcHNhX3N0YXR1c190X25lZWRzKHN0YXR1cykgKworICAgICAgICBwc2FzaW1fc2VydmVyX3NlcmlhbGlzZV9wc2FfbWFjX29wZXJhdGlvbl90X25lZWRzKG9wZXJhdGlvbikgKworICAgICAgICBwc2FzaW1fc2VyaWFsaXNlX2J1ZmZlcl9uZWVkcyhtYWMsIG1hY19zaXplKSArCisgICAgICAgIHBzYXNpbV9zZXJpYWxpc2Vfc2l6ZV90X25lZWRzKG1hY19sZW5ndGgpOworCisgICAgcmVzdWx0ID0gbWFsbG9jKHJlc3VsdF9zaXplKTsKKyAgICBpZiAocmVzdWx0ID09IE5VTEwpIHsKKyAgICAgICAgZ290byBmYWlsOworICAgIH0KKworICAgIHVpbnQ4X3QgKnJwb3MgPSByZXN1bHQ7CisgICAgc2l6ZV90IHJyZW1haW4gPSByZXN1bHRfc2l6ZTsKKworICAgIG9rID0gcHNhc2ltX3NlcmlhbGlzZV9iZWdpbigmcnBvcywgJnJyZW1haW4pOworICAgIGlmICghb2spIHsKKyAgICAgICAgZ290byBmYWlsOworICAgIH0KKworICAgIG9rID0gcHNhc2ltX3NlcmlhbGlzZV9wc2Ffc3RhdHVzX3QoCisgICAgICAgICZycG9zLCAmcnJlbWFpbiwKKyAgICAgICAgc3RhdHVzKTsKKyAgICBpZiAoIW9rKSB7CisgICAgICAgIGdvdG8gZmFpbDsKKyAgICB9CisKKyAgICBvayA9IHBzYXNpbV9zZXJ2ZXJfc2VyaWFsaXNlX3BzYV9tYWNfb3BlcmF0aW9uX3QoCisgICAgICAgICZycG9zLCAmcnJlbWFpbiwKKyAgICAgICAgb3BlcmF0aW9uLCAxKTsKKyAgICBpZiAoIW9rKSB7CisgICAgICAgIGdvdG8gZmFpbDsKKyAgICB9CisKKyAgICBvayA9IHBzYXNpbV9zZXJpYWxpc2VfYnVmZmVyKAorICAgICAgICAmcnBvcywgJnJyZW1haW4sCisgICAgICAgIG1hYywgbWFjX3NpemUpOworICAgIGlmICghb2spIHsKKyAgICAgICAgZ290byBmYWlsOworICAgIH0KKworICAgIG9rID0gcHNhc2ltX3NlcmlhbGlzZV9zaXplX3QoCisgICAgICAgICZycG9zLCAmcnJlbWFpbiwKKyAgICAgICAgbWFjX2xlbmd0aCk7CisgICAgaWYgKCFvaykgeworICAgICAgICBnb3RvIGZhaWw7CisgICAgfQorCisgICAgKm91dF9wYXJhbXMgPSByZXN1bHQ7CisgICAgKm91dF9wYXJhbXNfbGVuID0gcmVzdWx0X3NpemU7CisKKyAgICBmcmVlKG1hYyk7CisKKyAgICByZXR1cm4gMTsgICAvLyBzdWNjZXNzCisKK2ZhaWw6CisgICAgZnJlZShyZXN1bHQpOworCisgICAgZnJlZShtYWMpOworCisgICAgcmV0dXJuIDA7ICAgICAgIC8vIFRoaXMgc2hvdWxkbid0IGhhcHBlbiEKK30KKworLy8gUmV0dXJucyAxIGZvciBzdWNjZXNzLCAwIGZvciBmYWlsdXJlCitpbnQgcHNhX21hY19zaWduX3NldHVwX3dyYXBwZXIoCisgICAgdWludDhfdCAqaW5fcGFyYW1zLCBzaXplX3QgaW5fcGFyYW1zX2xlbiwKKyAgICB1aW50OF90ICoqb3V0X3BhcmFtcywgc2l6ZV90ICpvdXRfcGFyYW1zX2xlbikKK3sKKyAgICBwc2Ffc3RhdHVzX3Qgc3RhdHVzID0gUFNBX0VSUk9SX0NPUlJVUFRJT05fREVURUNURUQ7CisgICAgcHNhX21hY19vcGVyYXRpb25fdCAqb3BlcmF0aW9uOworICAgIG1iZWR0bHNfc3ZjX2tleV9pZF90IGtleTsKKyAgICBwc2FfYWxnb3JpdGhtX3QgYWxnOworCisgICAgdWludDhfdCAqcG9zID0gaW5fcGFyYW1zOworICAgIHNpemVfdCByZW1haW5pbmcgPSBpbl9wYXJhbXNfbGVuOworICAgIHVpbnQ4X3QgKnJlc3VsdCA9IE5VTEw7CisgICAgaW50IG9rOworCisgICAgb2sgPSBwc2FzaW1fZGVzZXJpYWxpc2VfYmVnaW4oJnBvcywgJnJlbWFpbmluZyk7CisgICAgaWYgKCFvaykgeworICAgICAgICBnb3RvIGZhaWw7CisgICAgfQorCisgICAgb2sgPSBwc2FzaW1fc2VydmVyX2Rlc2VyaWFsaXNlX3BzYV9tYWNfb3BlcmF0aW9uX3QoCisgICAgICAgICZwb3MsICZyZW1haW5pbmcsCisgICAgICAgICZvcGVyYXRpb24pOworICAgIGlmICghb2spIHsKKyAgICAgICAgZ290byBmYWlsOworICAgIH0KKworICAgIG9rID0gcHNhc2ltX2Rlc2VyaWFsaXNlX21iZWR0bHNfc3ZjX2tleV9pZF90KAorICAgICAgICAmcG9zLCAmcmVtYWluaW5nLAorICAgICAgICAma2V5KTsKKyAgICBpZiAoIW9rKSB7CisgICAgICAgIGdvdG8gZmFpbDsKKyAgICB9CisKKyAgICBvayA9IHBzYXNpbV9kZXNlcmlhbGlzZV9wc2FfYWxnb3JpdGhtX3QoCisgICAgICAgICZwb3MsICZyZW1haW5pbmcsCisgICAgICAgICZhbGcpOworICAgIGlmICghb2spIHsKKyAgICAgICAgZ290byBmYWlsOworICAgIH0KKworICAgIC8vIE5vdyB3ZSBjYWxsIHRoZSBhY3R1YWwgdGFyZ2V0IGZ1bmN0aW9uCisKKyAgICBzdGF0dXMgPSBwc2FfbWFjX3NpZ25fc2V0dXAoCisgICAgICAgIG9wZXJhdGlvbiwKKyAgICAgICAga2V5LAorICAgICAgICBhbGcKKyAgICAgICAgKTsKKworICAgIC8vIE5PVEU6IFNob3VsZCByZWFsbHkgY2hlY2sgdGhlcmUgaXMgbm8gb3ZlcmZsb3cgYXMgd2UgZ28gYWxvbmcuCisgICAgc2l6ZV90IHJlc3VsdF9zaXplID0KKyAgICAgICAgcHNhc2ltX3NlcmlhbGlzZV9iZWdpbl9uZWVkcygpICsKKyAgICAgICAgcHNhc2ltX3NlcmlhbGlzZV9wc2Ffc3RhdHVzX3RfbmVlZHMoc3RhdHVzKSArCisgICAgICAgIHBzYXNpbV9zZXJ2ZXJfc2VyaWFsaXNlX3BzYV9tYWNfb3BlcmF0aW9uX3RfbmVlZHMob3BlcmF0aW9uKTsKKworICAgIHJlc3VsdCA9IG1hbGxvYyhyZXN1bHRfc2l6ZSk7CisgICAgaWYgKHJlc3VsdCA9PSBOVUxMKSB7CisgICAgICAgIGdvdG8gZmFpbDsKKyAgICB9CisKKyAgICB1aW50OF90ICpycG9zID0gcmVzdWx0OworICAgIHNpemVfdCBycmVtYWluID0gcmVzdWx0X3NpemU7CisKKyAgICBvayA9IHBzYXNpbV9zZXJpYWxpc2VfYmVnaW4oJnJwb3MsICZycmVtYWluKTsKKyAgICBpZiAoIW9rKSB7CisgICAgICAgIGdvdG8gZmFpbDsKKyAgICB9CisKKyAgICBvayA9IHBzYXNpbV9zZXJpYWxpc2VfcHNhX3N0YXR1c190KAorICAgICAgICAmcnBvcywgJnJyZW1haW4sCisgICAgICAgIHN0YXR1cyk7CisgICAgaWYgKCFvaykgeworICAgICAgICBnb3RvIGZhaWw7CisgICAgfQorCisgICAgb2sgPSBwc2FzaW1fc2VydmVyX3NlcmlhbGlzZV9wc2FfbWFjX29wZXJhdGlvbl90KAorICAgICAgICAmcnBvcywgJnJyZW1haW4sCisgICAgICAgIG9wZXJhdGlvbiwgMCk7CisgICAgaWYgKCFvaykgeworICAgICAgICBnb3RvIGZhaWw7CisgICAgfQorCisgICAgKm91dF9wYXJhbXMgPSByZXN1bHQ7CisgICAgKm91dF9wYXJhbXNfbGVuID0gcmVzdWx0X3NpemU7CisKKyAgICByZXR1cm4gMTsgICAvLyBzdWNjZXNzCisKK2ZhaWw6CisgICAgZnJlZShyZXN1bHQpOworCisgICAgcmV0dXJuIDA7ICAgICAgIC8vIFRoaXMgc2hvdWxkbid0IGhhcHBlbiEKK30KKworLy8gUmV0dXJucyAxIGZvciBzdWNjZXNzLCAwIGZvciBmYWlsdXJlCitpbnQgcHNhX21hY191cGRhdGVfd3JhcHBlcigKKyAgICB1aW50OF90ICppbl9wYXJhbXMsIHNpemVfdCBpbl9wYXJhbXNfbGVuLAorICAgIHVpbnQ4X3QgKipvdXRfcGFyYW1zLCBzaXplX3QgKm91dF9wYXJhbXNfbGVuKQoreworICAgIHBzYV9zdGF0dXNfdCBzdGF0dXMgPSBQU0FfRVJST1JfQ09SUlVQVElPTl9ERVRFQ1RFRDsKKyAgICBwc2FfbWFjX29wZXJhdGlvbl90ICpvcGVyYXRpb247CisgICAgdWludDhfdCAqaW5wdXQgPSBOVUxMOworICAgIHNpemVfdCBpbnB1dF9sZW5ndGg7CisKKyAgICB1aW50OF90ICpwb3MgPSBpbl9wYXJhbXM7CisgICAgc2l6ZV90IHJlbWFpbmluZyA9IGluX3BhcmFtc19sZW47CisgICAgdWludDhfdCAqcmVzdWx0ID0gTlVMTDsKKyAgICBpbnQgb2s7CisKKyAgICBvayA9IHBzYXNpbV9kZXNlcmlhbGlzZV9iZWdpbigmcG9zLCAmcmVtYWluaW5nKTsKKyAgICBpZiAoIW9rKSB7CisgICAgICAgIGdvdG8gZmFpbDsKKyAgICB9CisKKyAgICBvayA9IHBzYXNpbV9zZXJ2ZXJfZGVzZXJpYWxpc2VfcHNhX21hY19vcGVyYXRpb25fdCgKKyAgICAgICAgJnBvcywgJnJlbWFpbmluZywKKyAgICAgICAgJm9wZXJhdGlvbik7CisgICAgaWYgKCFvaykgeworICAgICAgICBnb3RvIGZhaWw7CisgICAgfQorCisgICAgb2sgPSBwc2FzaW1fZGVzZXJpYWxpc2VfYnVmZmVyKAorICAgICAgICAmcG9zLCAmcmVtYWluaW5nLAorICAgICAgICAmaW5wdXQsICZpbnB1dF9sZW5ndGgpOworICAgIGlmICghb2spIHsKKyAgICAgICAgZ290byBmYWlsOworICAgIH0KKworICAgIC8vIE5vdyB3ZSBjYWxsIHRoZSBhY3R1YWwgdGFyZ2V0IGZ1bmN0aW9uCisKKyAgICBzdGF0dXMgPSBwc2FfbWFjX3VwZGF0ZSgKKyAgICAgICAgb3BlcmF0aW9uLAorICAgICAgICBpbnB1dCwgaW5wdXRfbGVuZ3RoCisgICAgICAgICk7CisKKyAgICAvLyBOT1RFOiBTaG91bGQgcmVhbGx5IGNoZWNrIHRoZXJlIGlzIG5vIG92ZXJmbG93IGFzIHdlIGdvIGFsb25nLgorICAgIHNpemVfdCByZXN1bHRfc2l6ZSA9CisgICAgICAgIHBzYXNpbV9zZXJpYWxpc2VfYmVnaW5fbmVlZHMoKSArCisgICAgICAgIHBzYXNpbV9zZXJpYWxpc2VfcHNhX3N0YXR1c190X25lZWRzKHN0YXR1cykgKworICAgICAgICBwc2FzaW1fc2VydmVyX3NlcmlhbGlzZV9wc2FfbWFjX29wZXJhdGlvbl90X25lZWRzKG9wZXJhdGlvbik7CisKKyAgICByZXN1bHQgPSBtYWxsb2MocmVzdWx0X3NpemUpOworICAgIGlmIChyZXN1bHQgPT0gTlVMTCkgeworICAgICAgICBnb3RvIGZhaWw7CisgICAgfQorCisgICAgdWludDhfdCAqcnBvcyA9IHJlc3VsdDsKKyAgICBzaXplX3QgcnJlbWFpbiA9IHJlc3VsdF9zaXplOworCisgICAgb2sgPSBwc2FzaW1fc2VyaWFsaXNlX2JlZ2luKCZycG9zLCAmcnJlbWFpbik7CisgICAgaWYgKCFvaykgeworICAgICAgICBnb3RvIGZhaWw7CisgICAgfQorCisgICAgb2sgPSBwc2FzaW1fc2VyaWFsaXNlX3BzYV9zdGF0dXNfdCgKKyAgICAgICAgJnJwb3MsICZycmVtYWluLAorICAgICAgICBzdGF0dXMpOworICAgIGlmICghb2spIHsKKyAgICAgICAgZ290byBmYWlsOworICAgIH0KKworICAgIG9rID0gcHNhc2ltX3NlcnZlcl9zZXJpYWxpc2VfcHNhX21hY19vcGVyYXRpb25fdCgKKyAgICAgICAgJnJwb3MsICZycmVtYWluLAorICAgICAgICBvcGVyYXRpb24sIDApOworICAgIGlmICghb2spIHsKKyAgICAgICAgZ290byBmYWlsOworICAgIH0KKworICAgICpvdXRfcGFyYW1zID0gcmVzdWx0OworICAgICpvdXRfcGFyYW1zX2xlbiA9IHJlc3VsdF9zaXplOworCisgICAgZnJlZShpbnB1dCk7CisKKyAgICByZXR1cm4gMTsgICAvLyBzdWNjZXNzCisKK2ZhaWw6CisgICAgZnJlZShyZXN1bHQpOworCisgICAgZnJlZShpbnB1dCk7CisKKyAgICByZXR1cm4gMDsgICAgICAgLy8gVGhpcyBzaG91bGRuJ3QgaGFwcGVuIQorfQorCisvLyBSZXR1cm5zIDEgZm9yIHN1Y2Nlc3MsIDAgZm9yIGZhaWx1cmUKK2ludCBwc2FfbWFjX3ZlcmlmeV93cmFwcGVyKAorICAgIHVpbnQ4X3QgKmluX3BhcmFtcywgc2l6ZV90IGluX3BhcmFtc19sZW4sCisgICAgdWludDhfdCAqKm91dF9wYXJhbXMsIHNpemVfdCAqb3V0X3BhcmFtc19sZW4pCit7CisgICAgcHNhX3N0YXR1c190IHN0YXR1cyA9IFBTQV9FUlJPUl9DT1JSVVBUSU9OX0RFVEVDVEVEOworICAgIG1iZWR0bHNfc3ZjX2tleV9pZF90IGtleTsKKyAgICBwc2FfYWxnb3JpdGhtX3QgYWxnOworICAgIHVpbnQ4X3QgKmlucHV0ID0gTlVMTDsKKyAgICBzaXplX3QgaW5wdXRfbGVuZ3RoOworICAgIHVpbnQ4X3QgKm1hYyA9IE5VTEw7CisgICAgc2l6ZV90IG1hY19sZW5ndGg7CisKKyAgICB1aW50OF90ICpwb3MgPSBpbl9wYXJhbXM7CisgICAgc2l6ZV90IHJlbWFpbmluZyA9IGluX3BhcmFtc19sZW47CisgICAgdWludDhfdCAqcmVzdWx0ID0gTlVMTDsKKyAgICBpbnQgb2s7CisKKyAgICBvayA9IHBzYXNpbV9kZXNlcmlhbGlzZV9iZWdpbigmcG9zLCAmcmVtYWluaW5nKTsKKyAgICBpZiAoIW9rKSB7CisgICAgICAgIGdvdG8gZmFpbDsKKyAgICB9CisKKyAgICBvayA9IHBzYXNpbV9kZXNlcmlhbGlzZV9tYmVkdGxzX3N2Y19rZXlfaWRfdCgKKyAgICAgICAgJnBvcywgJnJlbWFpbmluZywKKyAgICAgICAgJmtleSk7CisgICAgaWYgKCFvaykgeworICAgICAgICBnb3RvIGZhaWw7CisgICAgfQorCisgICAgb2sgPSBwc2FzaW1fZGVzZXJpYWxpc2VfcHNhX2FsZ29yaXRobV90KAorICAgICAgICAmcG9zLCAmcmVtYWluaW5nLAorICAgICAgICAmYWxnKTsKKyAgICBpZiAoIW9rKSB7CisgICAgICAgIGdvdG8gZmFpbDsKKyAgICB9CisKKyAgICBvayA9IHBzYXNpbV9kZXNlcmlhbGlzZV9idWZmZXIoCisgICAgICAgICZwb3MsICZyZW1haW5pbmcsCisgICAgICAgICZpbnB1dCwgJmlucHV0X2xlbmd0aCk7CisgICAgaWYgKCFvaykgeworICAgICAgICBnb3RvIGZhaWw7CisgICAgfQorCisgICAgb2sgPSBwc2FzaW1fZGVzZXJpYWxpc2VfYnVmZmVyKAorICAgICAgICAmcG9zLCAmcmVtYWluaW5nLAorICAgICAgICAmbWFjLCAmbWFjX2xlbmd0aCk7CisgICAgaWYgKCFvaykgeworICAgICAgICBnb3RvIGZhaWw7CisgICAgfQorCisgICAgLy8gTm93IHdlIGNhbGwgdGhlIGFjdHVhbCB0YXJnZXQgZnVuY3Rpb24KKworICAgIHN0YXR1cyA9IHBzYV9tYWNfdmVyaWZ5KAorICAgICAgICBrZXksCisgICAgICAgIGFsZywKKyAgICAgICAgaW5wdXQsIGlucHV0X2xlbmd0aCwKKyAgICAgICAgbWFjLCBtYWNfbGVuZ3RoCisgICAgICAgICk7CisKKyAgICAvLyBOT1RFOiBTaG91bGQgcmVhbGx5IGNoZWNrIHRoZXJlIGlzIG5vIG92ZXJmbG93IGFzIHdlIGdvIGFsb25nLgorICAgIHNpemVfdCByZXN1bHRfc2l6ZSA9CisgICAgICAgIHBzYXNpbV9zZXJpYWxpc2VfYmVnaW5fbmVlZHMoKSArCisgICAgICAgIHBzYXNpbV9zZXJpYWxpc2VfcHNhX3N0YXR1c190X25lZWRzKHN0YXR1cyk7CisKKyAgICByZXN1bHQgPSBtYWxsb2MocmVzdWx0X3NpemUpOworICAgIGlmIChyZXN1bHQgPT0gTlVMTCkgeworICAgICAgICBnb3RvIGZhaWw7CisgICAgfQorCisgICAgdWludDhfdCAqcnBvcyA9IHJlc3VsdDsKKyAgICBzaXplX3QgcnJlbWFpbiA9IHJlc3VsdF9zaXplOworCisgICAgb2sgPSBwc2FzaW1fc2VyaWFsaXNlX2JlZ2luKCZycG9zLCAmcnJlbWFpbik7CisgICAgaWYgKCFvaykgeworICAgICAgICBnb3RvIGZhaWw7CisgICAgfQorCisgICAgb2sgPSBwc2FzaW1fc2VyaWFsaXNlX3BzYV9zdGF0dXNfdCgKKyAgICAgICAgJnJwb3MsICZycmVtYWluLAorICAgICAgICBzdGF0dXMpOworICAgIGlmICghb2spIHsKKyAgICAgICAgZ290byBmYWlsOworICAgIH0KKworICAgICpvdXRfcGFyYW1zID0gcmVzdWx0OworICAgICpvdXRfcGFyYW1zX2xlbiA9IHJlc3VsdF9zaXplOworCisgICAgZnJlZShpbnB1dCk7CisgICAgZnJlZShtYWMpOworCisgICAgcmV0dXJuIDE7ICAgLy8gc3VjY2VzcworCitmYWlsOgorICAgIGZyZWUocmVzdWx0KTsKKworICAgIGZyZWUoaW5wdXQpOworICAgIGZyZWUobWFjKTsKKworICAgIHJldHVybiAwOyAgICAgICAvLyBUaGlzIHNob3VsZG4ndCBoYXBwZW4hCit9CisKKy8vIFJldHVybnMgMSBmb3Igc3VjY2VzcywgMCBmb3IgZmFpbHVyZQoraW50IHBzYV9tYWNfdmVyaWZ5X2ZpbmlzaF93cmFwcGVyKAorICAgIHVpbnQ4X3QgKmluX3BhcmFtcywgc2l6ZV90IGluX3BhcmFtc19sZW4sCisgICAgdWludDhfdCAqKm91dF9wYXJhbXMsIHNpemVfdCAqb3V0X3BhcmFtc19sZW4pCit7CisgICAgcHNhX3N0YXR1c190IHN0YXR1cyA9IFBTQV9FUlJPUl9DT1JSVVBUSU9OX0RFVEVDVEVEOworICAgIHBzYV9tYWNfb3BlcmF0aW9uX3QgKm9wZXJhdGlvbjsKKyAgICB1aW50OF90ICptYWMgPSBOVUxMOworICAgIHNpemVfdCBtYWNfbGVuZ3RoOworCisgICAgdWludDhfdCAqcG9zID0gaW5fcGFyYW1zOworICAgIHNpemVfdCByZW1haW5pbmcgPSBpbl9wYXJhbXNfbGVuOworICAgIHVpbnQ4X3QgKnJlc3VsdCA9IE5VTEw7CisgICAgaW50IG9rOworCisgICAgb2sgPSBwc2FzaW1fZGVzZXJpYWxpc2VfYmVnaW4oJnBvcywgJnJlbWFpbmluZyk7CisgICAgaWYgKCFvaykgeworICAgICAgICBnb3RvIGZhaWw7CisgICAgfQorCisgICAgb2sgPSBwc2FzaW1fc2VydmVyX2Rlc2VyaWFsaXNlX3BzYV9tYWNfb3BlcmF0aW9uX3QoCisgICAgICAgICZwb3MsICZyZW1haW5pbmcsCisgICAgICAgICZvcGVyYXRpb24pOworICAgIGlmICghb2spIHsKKyAgICAgICAgZ290byBmYWlsOworICAgIH0KKworICAgIG9rID0gcHNhc2ltX2Rlc2VyaWFsaXNlX2J1ZmZlcigKKyAgICAgICAgJnBvcywgJnJlbWFpbmluZywKKyAgICAgICAgJm1hYywgJm1hY19sZW5ndGgpOworICAgIGlmICghb2spIHsKKyAgICAgICAgZ290byBmYWlsOworICAgIH0KKworICAgIC8vIE5vdyB3ZSBjYWxsIHRoZSBhY3R1YWwgdGFyZ2V0IGZ1bmN0aW9uCisKKyAgICBzdGF0dXMgPSBwc2FfbWFjX3ZlcmlmeV9maW5pc2goCisgICAgICAgIG9wZXJhdGlvbiwKKyAgICAgICAgbWFjLCBtYWNfbGVuZ3RoCisgICAgICAgICk7CisKKyAgICAvLyBOT1RFOiBTaG91bGQgcmVhbGx5IGNoZWNrIHRoZXJlIGlzIG5vIG92ZXJmbG93IGFzIHdlIGdvIGFsb25nLgorICAgIHNpemVfdCByZXN1bHRfc2l6ZSA9CisgICAgICAgIHBzYXNpbV9zZXJpYWxpc2VfYmVnaW5fbmVlZHMoKSArCisgICAgICAgIHBzYXNpbV9zZXJpYWxpc2VfcHNhX3N0YXR1c190X25lZWRzKHN0YXR1cykgKworICAgICAgICBwc2FzaW1fc2VydmVyX3NlcmlhbGlzZV9wc2FfbWFjX29wZXJhdGlvbl90X25lZWRzKG9wZXJhdGlvbik7CisKKyAgICByZXN1bHQgPSBtYWxsb2MocmVzdWx0X3NpemUpOworICAgIGlmIChyZXN1bHQgPT0gTlVMTCkgeworICAgICAgICBnb3RvIGZhaWw7CisgICAgfQorCisgICAgdWludDhfdCAqcnBvcyA9IHJlc3VsdDsKKyAgICBzaXplX3QgcnJlbWFpbiA9IHJlc3VsdF9zaXplOworCisgICAgb2sgPSBwc2FzaW1fc2VyaWFsaXNlX2JlZ2luKCZycG9zLCAmcnJlbWFpbik7CisgICAgaWYgKCFvaykgeworICAgICAgICBnb3RvIGZhaWw7CisgICAgfQorCisgICAgb2sgPSBwc2FzaW1fc2VyaWFsaXNlX3BzYV9zdGF0dXNfdCgKKyAgICAgICAgJnJwb3MsICZycmVtYWluLAorICAgICAgICBzdGF0dXMpOworICAgIGlmICghb2spIHsKKyAgICAgICAgZ290byBmYWlsOworICAgIH0KKworICAgIG9rID0gcHNhc2ltX3NlcnZlcl9zZXJpYWxpc2VfcHNhX21hY19vcGVyYXRpb25fdCgKKyAgICAgICAgJnJwb3MsICZycmVtYWluLAorICAgICAgICBvcGVyYXRpb24sIDEpOworICAgIGlmICghb2spIHsKKyAgICAgICAgZ290byBmYWlsOworICAgIH0KKworICAgICpvdXRfcGFyYW1zID0gcmVzdWx0OworICAgICpvdXRfcGFyYW1zX2xlbiA9IHJlc3VsdF9zaXplOworCisgICAgZnJlZShtYWMpOworCisgICAgcmV0dXJuIDE7ICAgLy8gc3VjY2VzcworCitmYWlsOgorICAgIGZyZWUocmVzdWx0KTsKKworICAgIGZyZWUobWFjKTsKKworICAgIHJldHVybiAwOyAgICAgICAvLyBUaGlzIHNob3VsZG4ndCBoYXBwZW4hCit9CisKKy8vIFJldHVybnMgMSBmb3Igc3VjY2VzcywgMCBmb3IgZmFpbHVyZQoraW50IHBzYV9tYWNfdmVyaWZ5X3NldHVwX3dyYXBwZXIoCisgICAgdWludDhfdCAqaW5fcGFyYW1zLCBzaXplX3QgaW5fcGFyYW1zX2xlbiwKKyAgICB1aW50OF90ICoqb3V0X3BhcmFtcywgc2l6ZV90ICpvdXRfcGFyYW1zX2xlbikKK3sKKyAgICBwc2Ffc3RhdHVzX3Qgc3RhdHVzID0gUFNBX0VSUk9SX0NPUlJVUFRJT05fREVURUNURUQ7CisgICAgcHNhX21hY19vcGVyYXRpb25fdCAqb3BlcmF0aW9uOworICAgIG1iZWR0bHNfc3ZjX2tleV9pZF90IGtleTsKKyAgICBwc2FfYWxnb3JpdGhtX3QgYWxnOworCisgICAgdWludDhfdCAqcG9zID0gaW5fcGFyYW1zOworICAgIHNpemVfdCByZW1haW5pbmcgPSBpbl9wYXJhbXNfbGVuOworICAgIHVpbnQ4X3QgKnJlc3VsdCA9IE5VTEw7CisgICAgaW50IG9rOworCisgICAgb2sgPSBwc2FzaW1fZGVzZXJpYWxpc2VfYmVnaW4oJnBvcywgJnJlbWFpbmluZyk7CisgICAgaWYgKCFvaykgeworICAgICAgICBnb3RvIGZhaWw7CisgICAgfQorCisgICAgb2sgPSBwc2FzaW1fc2VydmVyX2Rlc2VyaWFsaXNlX3BzYV9tYWNfb3BlcmF0aW9uX3QoCisgICAgICAgICZwb3MsICZyZW1haW5pbmcsCisgICAgICAgICZvcGVyYXRpb24pOworICAgIGlmICghb2spIHsKKyAgICAgICAgZ290byBmYWlsOworICAgIH0KKworICAgIG9rID0gcHNhc2ltX2Rlc2VyaWFsaXNlX21iZWR0bHNfc3ZjX2tleV9pZF90KAorICAgICAgICAmcG9zLCAmcmVtYWluaW5nLAorICAgICAgICAma2V5KTsKKyAgICBpZiAoIW9rKSB7CisgICAgICAgIGdvdG8gZmFpbDsKKyAgICB9CisKKyAgICBvayA9IHBzYXNpbV9kZXNlcmlhbGlzZV9wc2FfYWxnb3JpdGhtX3QoCisgICAgICAgICZwb3MsICZyZW1haW5pbmcsCisgICAgICAgICZhbGcpOworICAgIGlmICghb2spIHsKKyAgICAgICAgZ290byBmYWlsOworICAgIH0KKworICAgIC8vIE5vdyB3ZSBjYWxsIHRoZSBhY3R1YWwgdGFyZ2V0IGZ1bmN0aW9uCisKKyAgICBzdGF0dXMgPSBwc2FfbWFjX3ZlcmlmeV9zZXR1cCgKKyAgICAgICAgb3BlcmF0aW9uLAorICAgICAgICBrZXksCisgICAgICAgIGFsZworICAgICAgICApOworCisgICAgLy8gTk9URTogU2hvdWxkIHJlYWxseSBjaGVjayB0aGVyZSBpcyBubyBvdmVyZmxvdyBhcyB3ZSBnbyBhbG9uZy4KKyAgICBzaXplX3QgcmVzdWx0X3NpemUgPQorICAgICAgICBwc2FzaW1fc2VyaWFsaXNlX2JlZ2luX25lZWRzKCkgKworICAgICAgICBwc2FzaW1fc2VyaWFsaXNlX3BzYV9zdGF0dXNfdF9uZWVkcyhzdGF0dXMpICsKKyAgICAgICAgcHNhc2ltX3NlcnZlcl9zZXJpYWxpc2VfcHNhX21hY19vcGVyYXRpb25fdF9uZWVkcyhvcGVyYXRpb24pOworCisgICAgcmVzdWx0ID0gbWFsbG9jKHJlc3VsdF9zaXplKTsKKyAgICBpZiAocmVzdWx0ID09IE5VTEwpIHsKKyAgICAgICAgZ290byBmYWlsOworICAgIH0KKworICAgIHVpbnQ4X3QgKnJwb3MgPSByZXN1bHQ7CisgICAgc2l6ZV90IHJyZW1haW4gPSByZXN1bHRfc2l6ZTsKKworICAgIG9rID0gcHNhc2ltX3NlcmlhbGlzZV9iZWdpbigmcnBvcywgJnJyZW1haW4pOworICAgIGlmICghb2spIHsKKyAgICAgICAgZ290byBmYWlsOworICAgIH0KKworICAgIG9rID0gcHNhc2ltX3NlcmlhbGlzZV9wc2Ffc3RhdHVzX3QoCisgICAgICAgICZycG9zLCAmcnJlbWFpbiwKKyAgICAgICAgc3RhdHVzKTsKKyAgICBpZiAoIW9rKSB7CisgICAgICAgIGdvdG8gZmFpbDsKKyAgICB9CisKKyAgICBvayA9IHBzYXNpbV9zZXJ2ZXJfc2VyaWFsaXNlX3BzYV9tYWNfb3BlcmF0aW9uX3QoCisgICAgICAgICZycG9zLCAmcnJlbWFpbiwKKyAgICAgICAgb3BlcmF0aW9uLCAwKTsKKyAgICBpZiAoIW9rKSB7CisgICAgICAgIGdvdG8gZmFpbDsKKyAgICB9CisKKyAgICAqb3V0X3BhcmFtcyA9IHJlc3VsdDsKKyAgICAqb3V0X3BhcmFtc19sZW4gPSByZXN1bHRfc2l6ZTsKKworICAgIHJldHVybiAxOyAgIC8vIHN1Y2Nlc3MKKworZmFpbDoKKyAgICBmcmVlKHJlc3VsdCk7CisKKyAgICByZXR1cm4gMDsgICAgICAgLy8gVGhpcyBzaG91bGRuJ3QgaGFwcGVuIQorfQorCisvLyBSZXR1cm5zIDEgZm9yIHN1Y2Nlc3MsIDAgZm9yIGZhaWx1cmUKK2ludCBwc2FfcHVyZ2Vfa2V5X3dyYXBwZXIoCisgICAgdWludDhfdCAqaW5fcGFyYW1zLCBzaXplX3QgaW5fcGFyYW1zX2xlbiwKKyAgICB1aW50OF90ICoqb3V0X3BhcmFtcywgc2l6ZV90ICpvdXRfcGFyYW1zX2xlbikKK3sKKyAgICBwc2Ffc3RhdHVzX3Qgc3RhdHVzID0gUFNBX0VSUk9SX0NPUlJVUFRJT05fREVURUNURUQ7CisgICAgbWJlZHRsc19zdmNfa2V5X2lkX3Qga2V5OworCisgICAgdWludDhfdCAqcG9zID0gaW5fcGFyYW1zOworICAgIHNpemVfdCByZW1haW5pbmcgPSBpbl9wYXJhbXNfbGVuOworICAgIHVpbnQ4X3QgKnJlc3VsdCA9IE5VTEw7CisgICAgaW50IG9rOworCisgICAgb2sgPSBwc2FzaW1fZGVzZXJpYWxpc2VfYmVnaW4oJnBvcywgJnJlbWFpbmluZyk7CisgICAgaWYgKCFvaykgeworICAgICAgICBnb3RvIGZhaWw7CisgICAgfQorCisgICAgb2sgPSBwc2FzaW1fZGVzZXJpYWxpc2VfbWJlZHRsc19zdmNfa2V5X2lkX3QoCisgICAgICAgICZwb3MsICZyZW1haW5pbmcsCisgICAgICAgICZrZXkpOworICAgIGlmICghb2spIHsKKyAgICAgICAgZ290byBmYWlsOworICAgIH0KKworICAgIC8vIE5vdyB3ZSBjYWxsIHRoZSBhY3R1YWwgdGFyZ2V0IGZ1bmN0aW9uCisKKyAgICBzdGF0dXMgPSBwc2FfcHVyZ2Vfa2V5KAorICAgICAgICBrZXkKKyAgICAgICAgKTsKKworICAgIC8vIE5PVEU6IFNob3VsZCByZWFsbHkgY2hlY2sgdGhlcmUgaXMgbm8gb3ZlcmZsb3cgYXMgd2UgZ28gYWxvbmcuCisgICAgc2l6ZV90IHJlc3VsdF9zaXplID0KKyAgICAgICAgcHNhc2ltX3NlcmlhbGlzZV9iZWdpbl9uZWVkcygpICsKKyAgICAgICAgcHNhc2ltX3NlcmlhbGlzZV9wc2Ffc3RhdHVzX3RfbmVlZHMoc3RhdHVzKTsKKworICAgIHJlc3VsdCA9IG1hbGxvYyhyZXN1bHRfc2l6ZSk7CisgICAgaWYgKHJlc3VsdCA9PSBOVUxMKSB7CisgICAgICAgIGdvdG8gZmFpbDsKKyAgICB9CisKKyAgICB1aW50OF90ICpycG9zID0gcmVzdWx0OworICAgIHNpemVfdCBycmVtYWluID0gcmVzdWx0X3NpemU7CisKKyAgICBvayA9IHBzYXNpbV9zZXJpYWxpc2VfYmVnaW4oJnJwb3MsICZycmVtYWluKTsKKyAgICBpZiAoIW9rKSB7CisgICAgICAgIGdvdG8gZmFpbDsKKyAgICB9CisKKyAgICBvayA9IHBzYXNpbV9zZXJpYWxpc2VfcHNhX3N0YXR1c190KAorICAgICAgICAmcnBvcywgJnJyZW1haW4sCisgICAgICAgIHN0YXR1cyk7CisgICAgaWYgKCFvaykgeworICAgICAgICBnb3RvIGZhaWw7CisgICAgfQorCisgICAgKm91dF9wYXJhbXMgPSByZXN1bHQ7CisgICAgKm91dF9wYXJhbXNfbGVuID0gcmVzdWx0X3NpemU7CisKKyAgICByZXR1cm4gMTsgICAvLyBzdWNjZXNzCisKK2ZhaWw6CisgICAgZnJlZShyZXN1bHQpOworCisgICAgcmV0dXJuIDA7ICAgICAgIC8vIFRoaXMgc2hvdWxkbid0IGhhcHBlbiEKK30KKworLy8gUmV0dXJucyAxIGZvciBzdWNjZXNzLCAwIGZvciBmYWlsdXJlCitpbnQgcHNhX3Jhd19rZXlfYWdyZWVtZW50X3dyYXBwZXIoCisgICAgdWludDhfdCAqaW5fcGFyYW1zLCBzaXplX3QgaW5fcGFyYW1zX2xlbiwKKyAgICB1aW50OF90ICoqb3V0X3BhcmFtcywgc2l6ZV90ICpvdXRfcGFyYW1zX2xlbikKK3sKKyAgICBwc2Ffc3RhdHVzX3Qgc3RhdHVzID0gUFNBX0VSUk9SX0NPUlJVUFRJT05fREVURUNURUQ7CisgICAgcHNhX2FsZ29yaXRobV90IGFsZzsKKyAgICBtYmVkdGxzX3N2Y19rZXlfaWRfdCBwcml2YXRlX2tleTsKKyAgICB1aW50OF90ICpwZWVyX2tleSA9IE5VTEw7CisgICAgc2l6ZV90IHBlZXJfa2V5X2xlbmd0aDsKKyAgICB1aW50OF90ICpvdXRwdXQgPSBOVUxMOworICAgIHNpemVfdCBvdXRwdXRfc2l6ZTsKKyAgICBzaXplX3Qgb3V0cHV0X2xlbmd0aDsKKworICAgIHVpbnQ4X3QgKnBvcyA9IGluX3BhcmFtczsKKyAgICBzaXplX3QgcmVtYWluaW5nID0gaW5fcGFyYW1zX2xlbjsKKyAgICB1aW50OF90ICpyZXN1bHQgPSBOVUxMOworICAgIGludCBvazsKKworICAgIG9rID0gcHNhc2ltX2Rlc2VyaWFsaXNlX2JlZ2luKCZwb3MsICZyZW1haW5pbmcpOworICAgIGlmICghb2spIHsKKyAgICAgICAgZ290byBmYWlsOworICAgIH0KKworICAgIG9rID0gcHNhc2ltX2Rlc2VyaWFsaXNlX3BzYV9hbGdvcml0aG1fdCgKKyAgICAgICAgJnBvcywgJnJlbWFpbmluZywKKyAgICAgICAgJmFsZyk7CisgICAgaWYgKCFvaykgeworICAgICAgICBnb3RvIGZhaWw7CisgICAgfQorCisgICAgb2sgPSBwc2FzaW1fZGVzZXJpYWxpc2VfbWJlZHRsc19zdmNfa2V5X2lkX3QoCisgICAgICAgICZwb3MsICZyZW1haW5pbmcsCisgICAgICAgICZwcml2YXRlX2tleSk7CisgICAgaWYgKCFvaykgeworICAgICAgICBnb3RvIGZhaWw7CisgICAgfQorCisgICAgb2sgPSBwc2FzaW1fZGVzZXJpYWxpc2VfYnVmZmVyKAorICAgICAgICAmcG9zLCAmcmVtYWluaW5nLAorICAgICAgICAmcGVlcl9rZXksICZwZWVyX2tleV9sZW5ndGgpOworICAgIGlmICghb2spIHsKKyAgICAgICAgZ290byBmYWlsOworICAgIH0KKworICAgIG9rID0gcHNhc2ltX2Rlc2VyaWFsaXNlX2J1ZmZlcigKKyAgICAgICAgJnBvcywgJnJlbWFpbmluZywKKyAgICAgICAgJm91dHB1dCwgJm91dHB1dF9zaXplKTsKKyAgICBpZiAoIW9rKSB7CisgICAgICAgIGdvdG8gZmFpbDsKKyAgICB9CisKKyAgICBvayA9IHBzYXNpbV9kZXNlcmlhbGlzZV9zaXplX3QoCisgICAgICAgICZwb3MsICZyZW1haW5pbmcsCisgICAgICAgICZvdXRwdXRfbGVuZ3RoKTsKKyAgICBpZiAoIW9rKSB7CisgICAgICAgIGdvdG8gZmFpbDsKKyAgICB9CisKKyAgICAvLyBOb3cgd2UgY2FsbCB0aGUgYWN0dWFsIHRhcmdldCBmdW5jdGlvbgorCisgICAgc3RhdHVzID0gcHNhX3Jhd19rZXlfYWdyZWVtZW50KAorICAgICAgICBhbGcsCisgICAgICAgIHByaXZhdGVfa2V5LAorICAgICAgICBwZWVyX2tleSwgcGVlcl9rZXlfbGVuZ3RoLAorICAgICAgICBvdXRwdXQsIG91dHB1dF9zaXplLAorICAgICAgICAmb3V0cHV0X2xlbmd0aAorICAgICAgICApOworCisgICAgLy8gTk9URTogU2hvdWxkIHJlYWxseSBjaGVjayB0aGVyZSBpcyBubyBvdmVyZmxvdyBhcyB3ZSBnbyBhbG9uZy4KKyAgICBzaXplX3QgcmVzdWx0X3NpemUgPQorICAgICAgICBwc2FzaW1fc2VyaWFsaXNlX2JlZ2luX25lZWRzKCkgKworICAgICAgICBwc2FzaW1fc2VyaWFsaXNlX3BzYV9zdGF0dXNfdF9uZWVkcyhzdGF0dXMpICsKKyAgICAgICAgcHNhc2ltX3NlcmlhbGlzZV9idWZmZXJfbmVlZHMob3V0cHV0LCBvdXRwdXRfc2l6ZSkgKworICAgICAgICBwc2FzaW1fc2VyaWFsaXNlX3NpemVfdF9uZWVkcyhvdXRwdXRfbGVuZ3RoKTsKKworICAgIHJlc3VsdCA9IG1hbGxvYyhyZXN1bHRfc2l6ZSk7CisgICAgaWYgKHJlc3VsdCA9PSBOVUxMKSB7CisgICAgICAgIGdvdG8gZmFpbDsKKyAgICB9CisKKyAgICB1aW50OF90ICpycG9zID0gcmVzdWx0OworICAgIHNpemVfdCBycmVtYWluID0gcmVzdWx0X3NpemU7CisKKyAgICBvayA9IHBzYXNpbV9zZXJpYWxpc2VfYmVnaW4oJnJwb3MsICZycmVtYWluKTsKKyAgICBpZiAoIW9rKSB7CisgICAgICAgIGdvdG8gZmFpbDsKKyAgICB9CisKKyAgICBvayA9IHBzYXNpbV9zZXJpYWxpc2VfcHNhX3N0YXR1c190KAorICAgICAgICAmcnBvcywgJnJyZW1haW4sCisgICAgICAgIHN0YXR1cyk7CisgICAgaWYgKCFvaykgeworICAgICAgICBnb3RvIGZhaWw7CisgICAgfQorCisgICAgb2sgPSBwc2FzaW1fc2VyaWFsaXNlX2J1ZmZlcigKKyAgICAgICAgJnJwb3MsICZycmVtYWluLAorICAgICAgICBvdXRwdXQsIG91dHB1dF9zaXplKTsKKyAgICBpZiAoIW9rKSB7CisgICAgICAgIGdvdG8gZmFpbDsKKyAgICB9CisKKyAgICBvayA9IHBzYXNpbV9zZXJpYWxpc2Vfc2l6ZV90KAorICAgICAgICAmcnBvcywgJnJyZW1haW4sCisgICAgICAgIG91dHB1dF9sZW5ndGgpOworICAgIGlmICghb2spIHsKKyAgICAgICAgZ290byBmYWlsOworICAgIH0KKworICAgICpvdXRfcGFyYW1zID0gcmVzdWx0OworICAgICpvdXRfcGFyYW1zX2xlbiA9IHJlc3VsdF9zaXplOworCisgICAgZnJlZShwZWVyX2tleSk7CisgICAgZnJlZShvdXRwdXQpOworCisgICAgcmV0dXJuIDE7ICAgLy8gc3VjY2VzcworCitmYWlsOgorICAgIGZyZWUocmVzdWx0KTsKKworICAgIGZyZWUocGVlcl9rZXkpOworICAgIGZyZWUob3V0cHV0KTsKKworICAgIHJldHVybiAwOyAgICAgICAvLyBUaGlzIHNob3VsZG4ndCBoYXBwZW4hCit9CisKKy8vIFJldHVybnMgMSBmb3Igc3VjY2VzcywgMCBmb3IgZmFpbHVyZQoraW50IHBzYV9yZXNldF9rZXlfYXR0cmlidXRlc193cmFwcGVyKAorICAgIHVpbnQ4X3QgKmluX3BhcmFtcywgc2l6ZV90IGluX3BhcmFtc19sZW4sCisgICAgdWludDhfdCAqKm91dF9wYXJhbXMsIHNpemVfdCAqb3V0X3BhcmFtc19sZW4pCit7CisgICAgcHNhX2tleV9hdHRyaWJ1dGVzX3QgYXR0cmlidXRlczsKKworICAgIHVpbnQ4X3QgKnBvcyA9IGluX3BhcmFtczsKKyAgICBzaXplX3QgcmVtYWluaW5nID0gaW5fcGFyYW1zX2xlbjsKKyAgICB1aW50OF90ICpyZXN1bHQgPSBOVUxMOworICAgIGludCBvazsKKworICAgIG9rID0gcHNhc2ltX2Rlc2VyaWFsaXNlX2JlZ2luKCZwb3MsICZyZW1haW5pbmcpOworICAgIGlmICghb2spIHsKKyAgICAgICAgZ290byBmYWlsOworICAgIH0KKworICAgIG9rID0gcHNhc2ltX2Rlc2VyaWFsaXNlX3BzYV9rZXlfYXR0cmlidXRlc190KAorICAgICAgICAmcG9zLCAmcmVtYWluaW5nLAorICAgICAgICAmYXR0cmlidXRlcyk7CisgICAgaWYgKCFvaykgeworICAgICAgICBnb3RvIGZhaWw7CisgICAgfQorCisgICAgLy8gTm93IHdlIGNhbGwgdGhlIGFjdHVhbCB0YXJnZXQgZnVuY3Rpb24KKworICAgIHBzYV9yZXNldF9rZXlfYXR0cmlidXRlcygKKyAgICAgICAgJmF0dHJpYnV0ZXMKKyAgICAgICAgKTsKKworICAgIC8vIE5PVEU6IFNob3VsZCByZWFsbHkgY2hlY2sgdGhlcmUgaXMgbm8gb3ZlcmZsb3cgYXMgd2UgZ28gYWxvbmcuCisgICAgc2l6ZV90IHJlc3VsdF9zaXplID0KKyAgICAgICAgcHNhc2ltX3NlcmlhbGlzZV9iZWdpbl9uZWVkcygpICsKKyAgICAgICAgcHNhc2ltX3NlcmlhbGlzZV9wc2Ffa2V5X2F0dHJpYnV0ZXNfdF9uZWVkcyhhdHRyaWJ1dGVzKTsKKworICAgIHJlc3VsdCA9IG1hbGxvYyhyZXN1bHRfc2l6ZSk7CisgICAgaWYgKHJlc3VsdCA9PSBOVUxMKSB7CisgICAgICAgIGdvdG8gZmFpbDsKKyAgICB9CisKKyAgICB1aW50OF90ICpycG9zID0gcmVzdWx0OworICAgIHNpemVfdCBycmVtYWluID0gcmVzdWx0X3NpemU7CisKKyAgICBvayA9IHBzYXNpbV9zZXJpYWxpc2VfYmVnaW4oJnJwb3MsICZycmVtYWluKTsKKyAgICBpZiAoIW9rKSB7CisgICAgICAgIGdvdG8gZmFpbDsKKyAgICB9CisKKyAgICBvayA9IHBzYXNpbV9zZXJpYWxpc2VfcHNhX2tleV9hdHRyaWJ1dGVzX3QoCisgICAgICAgICZycG9zLCAmcnJlbWFpbiwKKyAgICAgICAgYXR0cmlidXRlcyk7CisgICAgaWYgKCFvaykgeworICAgICAgICBnb3RvIGZhaWw7CisgICAgfQorCisgICAgKm91dF9wYXJhbXMgPSByZXN1bHQ7CisgICAgKm91dF9wYXJhbXNfbGVuID0gcmVzdWx0X3NpemU7CisKKyAgICByZXR1cm4gMTsgICAvLyBzdWNjZXNzCisKK2ZhaWw6CisgICAgZnJlZShyZXN1bHQpOworCisgICAgcmV0dXJuIDA7ICAgICAgIC8vIFRoaXMgc2hvdWxkbid0IGhhcHBlbiEKK30KKworLy8gUmV0dXJucyAxIGZvciBzdWNjZXNzLCAwIGZvciBmYWlsdXJlCitpbnQgcHNhX3NpZ25faGFzaF93cmFwcGVyKAorICAgIHVpbnQ4X3QgKmluX3BhcmFtcywgc2l6ZV90IGluX3BhcmFtc19sZW4sCisgICAgdWludDhfdCAqKm91dF9wYXJhbXMsIHNpemVfdCAqb3V0X3BhcmFtc19sZW4pCit7CisgICAgcHNhX3N0YXR1c190IHN0YXR1cyA9IFBTQV9FUlJPUl9DT1JSVVBUSU9OX0RFVEVDVEVEOworICAgIG1iZWR0bHNfc3ZjX2tleV9pZF90IGtleTsKKyAgICBwc2FfYWxnb3JpdGhtX3QgYWxnOworICAgIHVpbnQ4X3QgKmhhc2ggPSBOVUxMOworICAgIHNpemVfdCBoYXNoX2xlbmd0aDsKKyAgICB1aW50OF90ICpzaWduYXR1cmUgPSBOVUxMOworICAgIHNpemVfdCBzaWduYXR1cmVfc2l6ZTsKKyAgICBzaXplX3Qgc2lnbmF0dXJlX2xlbmd0aDsKKworICAgIHVpbnQ4X3QgKnBvcyA9IGluX3BhcmFtczsKKyAgICBzaXplX3QgcmVtYWluaW5nID0gaW5fcGFyYW1zX2xlbjsKKyAgICB1aW50OF90ICpyZXN1bHQgPSBOVUxMOworICAgIGludCBvazsKKworICAgIG9rID0gcHNhc2ltX2Rlc2VyaWFsaXNlX2JlZ2luKCZwb3MsICZyZW1haW5pbmcpOworICAgIGlmICghb2spIHsKKyAgICAgICAgZ290byBmYWlsOworICAgIH0KKworICAgIG9rID0gcHNhc2ltX2Rlc2VyaWFsaXNlX21iZWR0bHNfc3ZjX2tleV9pZF90KAorICAgICAgICAmcG9zLCAmcmVtYWluaW5nLAorICAgICAgICAma2V5KTsKKyAgICBpZiAoIW9rKSB7CisgICAgICAgIGdvdG8gZmFpbDsKKyAgICB9CisKKyAgICBvayA9IHBzYXNpbV9kZXNlcmlhbGlzZV9wc2FfYWxnb3JpdGhtX3QoCisgICAgICAgICZwb3MsICZyZW1haW5pbmcsCisgICAgICAgICZhbGcpOworICAgIGlmICghb2spIHsKKyAgICAgICAgZ290byBmYWlsOworICAgIH0KKworICAgIG9rID0gcHNhc2ltX2Rlc2VyaWFsaXNlX2J1ZmZlcigKKyAgICAgICAgJnBvcywgJnJlbWFpbmluZywKKyAgICAgICAgJmhhc2gsICZoYXNoX2xlbmd0aCk7CisgICAgaWYgKCFvaykgeworICAgICAgICBnb3RvIGZhaWw7CisgICAgfQorCisgICAgb2sgPSBwc2FzaW1fZGVzZXJpYWxpc2VfYnVmZmVyKAorICAgICAgICAmcG9zLCAmcmVtYWluaW5nLAorICAgICAgICAmc2lnbmF0dXJlLCAmc2lnbmF0dXJlX3NpemUpOworICAgIGlmICghb2spIHsKKyAgICAgICAgZ290byBmYWlsOworICAgIH0KKworICAgIG9rID0gcHNhc2ltX2Rlc2VyaWFsaXNlX3NpemVfdCgKKyAgICAgICAgJnBvcywgJnJlbWFpbmluZywKKyAgICAgICAgJnNpZ25hdHVyZV9sZW5ndGgpOworICAgIGlmICghb2spIHsKKyAgICAgICAgZ290byBmYWlsOworICAgIH0KKworICAgIC8vIE5vdyB3ZSBjYWxsIHRoZSBhY3R1YWwgdGFyZ2V0IGZ1bmN0aW9uCisKKyAgICBzdGF0dXMgPSBwc2Ffc2lnbl9oYXNoKAorICAgICAgICBrZXksCisgICAgICAgIGFsZywKKyAgICAgICAgaGFzaCwgaGFzaF9sZW5ndGgsCisgICAgICAgIHNpZ25hdHVyZSwgc2lnbmF0dXJlX3NpemUsCisgICAgICAgICZzaWduYXR1cmVfbGVuZ3RoCisgICAgICAgICk7CisKKyAgICAvLyBOT1RFOiBTaG91bGQgcmVhbGx5IGNoZWNrIHRoZXJlIGlzIG5vIG92ZXJmbG93IGFzIHdlIGdvIGFsb25nLgorICAgIHNpemVfdCByZXN1bHRfc2l6ZSA9CisgICAgICAgIHBzYXNpbV9zZXJpYWxpc2VfYmVnaW5fbmVlZHMoKSArCisgICAgICAgIHBzYXNpbV9zZXJpYWxpc2VfcHNhX3N0YXR1c190X25lZWRzKHN0YXR1cykgKworICAgICAgICBwc2FzaW1fc2VyaWFsaXNlX2J1ZmZlcl9uZWVkcyhzaWduYXR1cmUsIHNpZ25hdHVyZV9zaXplKSArCisgICAgICAgIHBzYXNpbV9zZXJpYWxpc2Vfc2l6ZV90X25lZWRzKHNpZ25hdHVyZV9sZW5ndGgpOworCisgICAgcmVzdWx0ID0gbWFsbG9jKHJlc3VsdF9zaXplKTsKKyAgICBpZiAocmVzdWx0ID09IE5VTEwpIHsKKyAgICAgICAgZ290byBmYWlsOworICAgIH0KKworICAgIHVpbnQ4X3QgKnJwb3MgPSByZXN1bHQ7CisgICAgc2l6ZV90IHJyZW1haW4gPSByZXN1bHRfc2l6ZTsKKworICAgIG9rID0gcHNhc2ltX3NlcmlhbGlzZV9iZWdpbigmcnBvcywgJnJyZW1haW4pOworICAgIGlmICghb2spIHsKKyAgICAgICAgZ290byBmYWlsOworICAgIH0KKworICAgIG9rID0gcHNhc2ltX3NlcmlhbGlzZV9wc2Ffc3RhdHVzX3QoCisgICAgICAgICZycG9zLCAmcnJlbWFpbiwKKyAgICAgICAgc3RhdHVzKTsKKyAgICBpZiAoIW9rKSB7CisgICAgICAgIGdvdG8gZmFpbDsKKyAgICB9CisKKyAgICBvayA9IHBzYXNpbV9zZXJpYWxpc2VfYnVmZmVyKAorICAgICAgICAmcnBvcywgJnJyZW1haW4sCisgICAgICAgIHNpZ25hdHVyZSwgc2lnbmF0dXJlX3NpemUpOworICAgIGlmICghb2spIHsKKyAgICAgICAgZ290byBmYWlsOworICAgIH0KKworICAgIG9rID0gcHNhc2ltX3NlcmlhbGlzZV9zaXplX3QoCisgICAgICAgICZycG9zLCAmcnJlbWFpbiwKKyAgICAgICAgc2lnbmF0dXJlX2xlbmd0aCk7CisgICAgaWYgKCFvaykgeworICAgICAgICBnb3RvIGZhaWw7CisgICAgfQorCisgICAgKm91dF9wYXJhbXMgPSByZXN1bHQ7CisgICAgKm91dF9wYXJhbXNfbGVuID0gcmVzdWx0X3NpemU7CisKKyAgICBmcmVlKGhhc2gpOworICAgIGZyZWUoc2lnbmF0dXJlKTsKKworICAgIHJldHVybiAxOyAgIC8vIHN1Y2Nlc3MKKworZmFpbDoKKyAgICBmcmVlKHJlc3VsdCk7CisKKyAgICBmcmVlKGhhc2gpOworICAgIGZyZWUoc2lnbmF0dXJlKTsKKworICAgIHJldHVybiAwOyAgICAgICAvLyBUaGlzIHNob3VsZG4ndCBoYXBwZW4hCit9CisKKy8vIFJldHVybnMgMSBmb3Igc3VjY2VzcywgMCBmb3IgZmFpbHVyZQoraW50IHBzYV9zaWduX2hhc2hfYWJvcnRfd3JhcHBlcigKKyAgICB1aW50OF90ICppbl9wYXJhbXMsIHNpemVfdCBpbl9wYXJhbXNfbGVuLAorICAgIHVpbnQ4X3QgKipvdXRfcGFyYW1zLCBzaXplX3QgKm91dF9wYXJhbXNfbGVuKQoreworICAgIHBzYV9zdGF0dXNfdCBzdGF0dXMgPSBQU0FfRVJST1JfQ09SUlVQVElPTl9ERVRFQ1RFRDsKKyAgICBwc2Ffc2lnbl9oYXNoX2ludGVycnVwdGlibGVfb3BlcmF0aW9uX3QgKm9wZXJhdGlvbjsKKworICAgIHVpbnQ4X3QgKnBvcyA9IGluX3BhcmFtczsKKyAgICBzaXplX3QgcmVtYWluaW5nID0gaW5fcGFyYW1zX2xlbjsKKyAgICB1aW50OF90ICpyZXN1bHQgPSBOVUxMOworICAgIGludCBvazsKKworICAgIG9rID0gcHNhc2ltX2Rlc2VyaWFsaXNlX2JlZ2luKCZwb3MsICZyZW1haW5pbmcpOworICAgIGlmICghb2spIHsKKyAgICAgICAgZ290byBmYWlsOworICAgIH0KKworICAgIG9rID0gcHNhc2ltX3NlcnZlcl9kZXNlcmlhbGlzZV9wc2Ffc2lnbl9oYXNoX2ludGVycnVwdGlibGVfb3BlcmF0aW9uX3QoCisgICAgICAgICZwb3MsICZyZW1haW5pbmcsCisgICAgICAgICZvcGVyYXRpb24pOworICAgIGlmICghb2spIHsKKyAgICAgICAgZ290byBmYWlsOworICAgIH0KKworICAgIC8vIE5vdyB3ZSBjYWxsIHRoZSBhY3R1YWwgdGFyZ2V0IGZ1bmN0aW9uCisKKyAgICBzdGF0dXMgPSBwc2Ffc2lnbl9oYXNoX2Fib3J0KAorICAgICAgICBvcGVyYXRpb24KKyAgICAgICAgKTsKKworICAgIC8vIE5PVEU6IFNob3VsZCByZWFsbHkgY2hlY2sgdGhlcmUgaXMgbm8gb3ZlcmZsb3cgYXMgd2UgZ28gYWxvbmcuCisgICAgc2l6ZV90IHJlc3VsdF9zaXplID0KKyAgICAgICAgcHNhc2ltX3NlcmlhbGlzZV9iZWdpbl9uZWVkcygpICsKKyAgICAgICAgcHNhc2ltX3NlcmlhbGlzZV9wc2Ffc3RhdHVzX3RfbmVlZHMoc3RhdHVzKSArCisgICAgICAgIHBzYXNpbV9zZXJ2ZXJfc2VyaWFsaXNlX3BzYV9zaWduX2hhc2hfaW50ZXJydXB0aWJsZV9vcGVyYXRpb25fdF9uZWVkcyhvcGVyYXRpb24pOworCisgICAgcmVzdWx0ID0gbWFsbG9jKHJlc3VsdF9zaXplKTsKKyAgICBpZiAocmVzdWx0ID09IE5VTEwpIHsKKyAgICAgICAgZ290byBmYWlsOworICAgIH0KKworICAgIHVpbnQ4X3QgKnJwb3MgPSByZXN1bHQ7CisgICAgc2l6ZV90IHJyZW1haW4gPSByZXN1bHRfc2l6ZTsKKworICAgIG9rID0gcHNhc2ltX3NlcmlhbGlzZV9iZWdpbigmcnBvcywgJnJyZW1haW4pOworICAgIGlmICghb2spIHsKKyAgICAgICAgZ290byBmYWlsOworICAgIH0KKworICAgIG9rID0gcHNhc2ltX3NlcmlhbGlzZV9wc2Ffc3RhdHVzX3QoCisgICAgICAgICZycG9zLCAmcnJlbWFpbiwKKyAgICAgICAgc3RhdHVzKTsKKyAgICBpZiAoIW9rKSB7CisgICAgICAgIGdvdG8gZmFpbDsKKyAgICB9CisKKyAgICBvayA9IHBzYXNpbV9zZXJ2ZXJfc2VyaWFsaXNlX3BzYV9zaWduX2hhc2hfaW50ZXJydXB0aWJsZV9vcGVyYXRpb25fdCgKKyAgICAgICAgJnJwb3MsICZycmVtYWluLAorICAgICAgICBvcGVyYXRpb24sIDEpOworICAgIGlmICghb2spIHsKKyAgICAgICAgZ290byBmYWlsOworICAgIH0KKworICAgICpvdXRfcGFyYW1zID0gcmVzdWx0OworICAgICpvdXRfcGFyYW1zX2xlbiA9IHJlc3VsdF9zaXplOworCisgICAgcmV0dXJuIDE7ICAgLy8gc3VjY2VzcworCitmYWlsOgorICAgIGZyZWUocmVzdWx0KTsKKworICAgIHJldHVybiAwOyAgICAgICAvLyBUaGlzIHNob3VsZG4ndCBoYXBwZW4hCit9CisKKy8vIFJldHVybnMgMSBmb3Igc3VjY2VzcywgMCBmb3IgZmFpbHVyZQoraW50IHBzYV9zaWduX2hhc2hfY29tcGxldGVfd3JhcHBlcigKKyAgICB1aW50OF90ICppbl9wYXJhbXMsIHNpemVfdCBpbl9wYXJhbXNfbGVuLAorICAgIHVpbnQ4X3QgKipvdXRfcGFyYW1zLCBzaXplX3QgKm91dF9wYXJhbXNfbGVuKQoreworICAgIHBzYV9zdGF0dXNfdCBzdGF0dXMgPSBQU0FfRVJST1JfQ09SUlVQVElPTl9ERVRFQ1RFRDsKKyAgICBwc2Ffc2lnbl9oYXNoX2ludGVycnVwdGlibGVfb3BlcmF0aW9uX3QgKm9wZXJhdGlvbjsKKyAgICB1aW50OF90ICpzaWduYXR1cmUgPSBOVUxMOworICAgIHNpemVfdCBzaWduYXR1cmVfc2l6ZTsKKyAgICBzaXplX3Qgc2lnbmF0dXJlX2xlbmd0aDsKKworICAgIHVpbnQ4X3QgKnBvcyA9IGluX3BhcmFtczsKKyAgICBzaXplX3QgcmVtYWluaW5nID0gaW5fcGFyYW1zX2xlbjsKKyAgICB1aW50OF90ICpyZXN1bHQgPSBOVUxMOworICAgIGludCBvazsKKworICAgIG9rID0gcHNhc2ltX2Rlc2VyaWFsaXNlX2JlZ2luKCZwb3MsICZyZW1haW5pbmcpOworICAgIGlmICghb2spIHsKKyAgICAgICAgZ290byBmYWlsOworICAgIH0KKworICAgIG9rID0gcHNhc2ltX3NlcnZlcl9kZXNlcmlhbGlzZV9wc2Ffc2lnbl9oYXNoX2ludGVycnVwdGlibGVfb3BlcmF0aW9uX3QoCisgICAgICAgICZwb3MsICZyZW1haW5pbmcsCisgICAgICAgICZvcGVyYXRpb24pOworICAgIGlmICghb2spIHsKKyAgICAgICAgZ290byBmYWlsOworICAgIH0KKworICAgIG9rID0gcHNhc2ltX2Rlc2VyaWFsaXNlX2J1ZmZlcigKKyAgICAgICAgJnBvcywgJnJlbWFpbmluZywKKyAgICAgICAgJnNpZ25hdHVyZSwgJnNpZ25hdHVyZV9zaXplKTsKKyAgICBpZiAoIW9rKSB7CisgICAgICAgIGdvdG8gZmFpbDsKKyAgICB9CisKKyAgICBvayA9IHBzYXNpbV9kZXNlcmlhbGlzZV9zaXplX3QoCisgICAgICAgICZwb3MsICZyZW1haW5pbmcsCisgICAgICAgICZzaWduYXR1cmVfbGVuZ3RoKTsKKyAgICBpZiAoIW9rKSB7CisgICAgICAgIGdvdG8gZmFpbDsKKyAgICB9CisKKyAgICAvLyBOb3cgd2UgY2FsbCB0aGUgYWN0dWFsIHRhcmdldCBmdW5jdGlvbgorCisgICAgc3RhdHVzID0gcHNhX3NpZ25faGFzaF9jb21wbGV0ZSgKKyAgICAgICAgb3BlcmF0aW9uLAorICAgICAgICBzaWduYXR1cmUsIHNpZ25hdHVyZV9zaXplLAorICAgICAgICAmc2lnbmF0dXJlX2xlbmd0aAorICAgICAgICApOworCisgICAgLy8gTk9URTogU2hvdWxkIHJlYWxseSBjaGVjayB0aGVyZSBpcyBubyBvdmVyZmxvdyBhcyB3ZSBnbyBhbG9uZy4KKyAgICBzaXplX3QgcmVzdWx0X3NpemUgPQorICAgICAgICBwc2FzaW1fc2VyaWFsaXNlX2JlZ2luX25lZWRzKCkgKworICAgICAgICBwc2FzaW1fc2VyaWFsaXNlX3BzYV9zdGF0dXNfdF9uZWVkcyhzdGF0dXMpICsKKyAgICAgICAgcHNhc2ltX3NlcnZlcl9zZXJpYWxpc2VfcHNhX3NpZ25faGFzaF9pbnRlcnJ1cHRpYmxlX29wZXJhdGlvbl90X25lZWRzKG9wZXJhdGlvbikgKworICAgICAgICBwc2FzaW1fc2VyaWFsaXNlX2J1ZmZlcl9uZWVkcyhzaWduYXR1cmUsIHNpZ25hdHVyZV9zaXplKSArCisgICAgICAgIHBzYXNpbV9zZXJpYWxpc2Vfc2l6ZV90X25lZWRzKHNpZ25hdHVyZV9sZW5ndGgpOworCisgICAgcmVzdWx0ID0gbWFsbG9jKHJlc3VsdF9zaXplKTsKKyAgICBpZiAocmVzdWx0ID09IE5VTEwpIHsKKyAgICAgICAgZ290byBmYWlsOworICAgIH0KKworICAgIHVpbnQ4X3QgKnJwb3MgPSByZXN1bHQ7CisgICAgc2l6ZV90IHJyZW1haW4gPSByZXN1bHRfc2l6ZTsKKworICAgIG9rID0gcHNhc2ltX3NlcmlhbGlzZV9iZWdpbigmcnBvcywgJnJyZW1haW4pOworICAgIGlmICghb2spIHsKKyAgICAgICAgZ290byBmYWlsOworICAgIH0KKworICAgIG9rID0gcHNhc2ltX3NlcmlhbGlzZV9wc2Ffc3RhdHVzX3QoCisgICAgICAgICZycG9zLCAmcnJlbWFpbiwKKyAgICAgICAgc3RhdHVzKTsKKyAgICBpZiAoIW9rKSB7CisgICAgICAgIGdvdG8gZmFpbDsKKyAgICB9CisKKyAgICBvayA9IHBzYXNpbV9zZXJ2ZXJfc2VyaWFsaXNlX3BzYV9zaWduX2hhc2hfaW50ZXJydXB0aWJsZV9vcGVyYXRpb25fdCgKKyAgICAgICAgJnJwb3MsICZycmVtYWluLAorICAgICAgICBvcGVyYXRpb24sIDApOworICAgIGlmICghb2spIHsKKyAgICAgICAgZ290byBmYWlsOworICAgIH0KKworICAgIG9rID0gcHNhc2ltX3NlcmlhbGlzZV9idWZmZXIoCisgICAgICAgICZycG9zLCAmcnJlbWFpbiwKKyAgICAgICAgc2lnbmF0dXJlLCBzaWduYXR1cmVfc2l6ZSk7CisgICAgaWYgKCFvaykgeworICAgICAgICBnb3RvIGZhaWw7CisgICAgfQorCisgICAgb2sgPSBwc2FzaW1fc2VyaWFsaXNlX3NpemVfdCgKKyAgICAgICAgJnJwb3MsICZycmVtYWluLAorICAgICAgICBzaWduYXR1cmVfbGVuZ3RoKTsKKyAgICBpZiAoIW9rKSB7CisgICAgICAgIGdvdG8gZmFpbDsKKyAgICB9CisKKyAgICAqb3V0X3BhcmFtcyA9IHJlc3VsdDsKKyAgICAqb3V0X3BhcmFtc19sZW4gPSByZXN1bHRfc2l6ZTsKKworICAgIGZyZWUoc2lnbmF0dXJlKTsKKworICAgIHJldHVybiAxOyAgIC8vIHN1Y2Nlc3MKKworZmFpbDoKKyAgICBmcmVlKHJlc3VsdCk7CisKKyAgICBmcmVlKHNpZ25hdHVyZSk7CisKKyAgICByZXR1cm4gMDsgICAgICAgLy8gVGhpcyBzaG91bGRuJ3QgaGFwcGVuIQorfQorCisvLyBSZXR1cm5zIDEgZm9yIHN1Y2Nlc3MsIDAgZm9yIGZhaWx1cmUKK2ludCBwc2Ffc2lnbl9oYXNoX2dldF9udW1fb3BzX3dyYXBwZXIoCisgICAgdWludDhfdCAqaW5fcGFyYW1zLCBzaXplX3QgaW5fcGFyYW1zX2xlbiwKKyAgICB1aW50OF90ICoqb3V0X3BhcmFtcywgc2l6ZV90ICpvdXRfcGFyYW1zX2xlbikKK3sKKyAgICB1aW50MzJfdCB2YWx1ZSA9IDA7CisgICAgcHNhX3NpZ25faGFzaF9pbnRlcnJ1cHRpYmxlX29wZXJhdGlvbl90ICpvcGVyYXRpb247CisKKyAgICB1aW50OF90ICpwb3MgPSBpbl9wYXJhbXM7CisgICAgc2l6ZV90IHJlbWFpbmluZyA9IGluX3BhcmFtc19sZW47CisgICAgdWludDhfdCAqcmVzdWx0ID0gTlVMTDsKKyAgICBpbnQgb2s7CisKKyAgICBvayA9IHBzYXNpbV9kZXNlcmlhbGlzZV9iZWdpbigmcG9zLCAmcmVtYWluaW5nKTsKKyAgICBpZiAoIW9rKSB7CisgICAgICAgIGdvdG8gZmFpbDsKKyAgICB9CisKKyAgICBvayA9IHBzYXNpbV9zZXJ2ZXJfZGVzZXJpYWxpc2VfcHNhX3NpZ25faGFzaF9pbnRlcnJ1cHRpYmxlX29wZXJhdGlvbl90KAorICAgICAgICAmcG9zLCAmcmVtYWluaW5nLAorICAgICAgICAmb3BlcmF0aW9uKTsKKyAgICBpZiAoIW9rKSB7CisgICAgICAgIGdvdG8gZmFpbDsKKyAgICB9CisKKyAgICAvLyBOb3cgd2UgY2FsbCB0aGUgYWN0dWFsIHRhcmdldCBmdW5jdGlvbgorCisgICAgdmFsdWUgPSBwc2Ffc2lnbl9oYXNoX2dldF9udW1fb3BzKAorICAgICAgICBvcGVyYXRpb24KKyAgICAgICAgKTsKKworICAgIC8vIE5PVEU6IFNob3VsZCByZWFsbHkgY2hlY2sgdGhlcmUgaXMgbm8gb3ZlcmZsb3cgYXMgd2UgZ28gYWxvbmcuCisgICAgc2l6ZV90IHJlc3VsdF9zaXplID0KKyAgICAgICAgcHNhc2ltX3NlcmlhbGlzZV9iZWdpbl9uZWVkcygpICsKKyAgICAgICAgcHNhc2ltX3NlcmlhbGlzZV91aW50MzJfdF9uZWVkcyh2YWx1ZSk7CisKKyAgICByZXN1bHQgPSBtYWxsb2MocmVzdWx0X3NpemUpOworICAgIGlmIChyZXN1bHQgPT0gTlVMTCkgeworICAgICAgICBnb3RvIGZhaWw7CisgICAgfQorCisgICAgdWludDhfdCAqcnBvcyA9IHJlc3VsdDsKKyAgICBzaXplX3QgcnJlbWFpbiA9IHJlc3VsdF9zaXplOworCisgICAgb2sgPSBwc2FzaW1fc2VyaWFsaXNlX2JlZ2luKCZycG9zLCAmcnJlbWFpbik7CisgICAgaWYgKCFvaykgeworICAgICAgICBnb3RvIGZhaWw7CisgICAgfQorCisgICAgb2sgPSBwc2FzaW1fc2VyaWFsaXNlX3VpbnQzMl90KAorICAgICAgICAmcnBvcywgJnJyZW1haW4sCisgICAgICAgIHZhbHVlKTsKKyAgICBpZiAoIW9rKSB7CisgICAgICAgIGdvdG8gZmFpbDsKKyAgICB9CisKKyAgICAqb3V0X3BhcmFtcyA9IHJlc3VsdDsKKyAgICAqb3V0X3BhcmFtc19sZW4gPSByZXN1bHRfc2l6ZTsKKworICAgIHJldHVybiAxOyAgIC8vIHN1Y2Nlc3MKKworZmFpbDoKKyAgICBmcmVlKHJlc3VsdCk7CisKKyAgICByZXR1cm4gMDsgICAgICAgLy8gVGhpcyBzaG91bGRuJ3QgaGFwcGVuIQorfQorCisvLyBSZXR1cm5zIDEgZm9yIHN1Y2Nlc3MsIDAgZm9yIGZhaWx1cmUKK2ludCBwc2Ffc2lnbl9oYXNoX3N0YXJ0X3dyYXBwZXIoCisgICAgdWludDhfdCAqaW5fcGFyYW1zLCBzaXplX3QgaW5fcGFyYW1zX2xlbiwKKyAgICB1aW50OF90ICoqb3V0X3BhcmFtcywgc2l6ZV90ICpvdXRfcGFyYW1zX2xlbikKK3sKKyAgICBwc2Ffc3RhdHVzX3Qgc3RhdHVzID0gUFNBX0VSUk9SX0NPUlJVUFRJT05fREVURUNURUQ7CisgICAgcHNhX3NpZ25faGFzaF9pbnRlcnJ1cHRpYmxlX29wZXJhdGlvbl90ICpvcGVyYXRpb247CisgICAgbWJlZHRsc19zdmNfa2V5X2lkX3Qga2V5OworICAgIHBzYV9hbGdvcml0aG1fdCBhbGc7CisgICAgdWludDhfdCAqaGFzaCA9IE5VTEw7CisgICAgc2l6ZV90IGhhc2hfbGVuZ3RoOworCisgICAgdWludDhfdCAqcG9zID0gaW5fcGFyYW1zOworICAgIHNpemVfdCByZW1haW5pbmcgPSBpbl9wYXJhbXNfbGVuOworICAgIHVpbnQ4X3QgKnJlc3VsdCA9IE5VTEw7CisgICAgaW50IG9rOworCisgICAgb2sgPSBwc2FzaW1fZGVzZXJpYWxpc2VfYmVnaW4oJnBvcywgJnJlbWFpbmluZyk7CisgICAgaWYgKCFvaykgeworICAgICAgICBnb3RvIGZhaWw7CisgICAgfQorCisgICAgb2sgPSBwc2FzaW1fc2VydmVyX2Rlc2VyaWFsaXNlX3BzYV9zaWduX2hhc2hfaW50ZXJydXB0aWJsZV9vcGVyYXRpb25fdCgKKyAgICAgICAgJnBvcywgJnJlbWFpbmluZywKKyAgICAgICAgJm9wZXJhdGlvbik7CisgICAgaWYgKCFvaykgeworICAgICAgICBnb3RvIGZhaWw7CisgICAgfQorCisgICAgb2sgPSBwc2FzaW1fZGVzZXJpYWxpc2VfbWJlZHRsc19zdmNfa2V5X2lkX3QoCisgICAgICAgICZwb3MsICZyZW1haW5pbmcsCisgICAgICAgICZrZXkpOworICAgIGlmICghb2spIHsKKyAgICAgICAgZ290byBmYWlsOworICAgIH0KKworICAgIG9rID0gcHNhc2ltX2Rlc2VyaWFsaXNlX3BzYV9hbGdvcml0aG1fdCgKKyAgICAgICAgJnBvcywgJnJlbWFpbmluZywKKyAgICAgICAgJmFsZyk7CisgICAgaWYgKCFvaykgeworICAgICAgICBnb3RvIGZhaWw7CisgICAgfQorCisgICAgb2sgPSBwc2FzaW1fZGVzZXJpYWxpc2VfYnVmZmVyKAorICAgICAgICAmcG9zLCAmcmVtYWluaW5nLAorICAgICAgICAmaGFzaCwgJmhhc2hfbGVuZ3RoKTsKKyAgICBpZiAoIW9rKSB7CisgICAgICAgIGdvdG8gZmFpbDsKKyAgICB9CisKKyAgICAvLyBOb3cgd2UgY2FsbCB0aGUgYWN0dWFsIHRhcmdldCBmdW5jdGlvbgorCisgICAgc3RhdHVzID0gcHNhX3NpZ25faGFzaF9zdGFydCgKKyAgICAgICAgb3BlcmF0aW9uLAorICAgICAgICBrZXksCisgICAgICAgIGFsZywKKyAgICAgICAgaGFzaCwgaGFzaF9sZW5ndGgKKyAgICAgICAgKTsKKworICAgIC8vIE5PVEU6IFNob3VsZCByZWFsbHkgY2hlY2sgdGhlcmUgaXMgbm8gb3ZlcmZsb3cgYXMgd2UgZ28gYWxvbmcuCisgICAgc2l6ZV90IHJlc3VsdF9zaXplID0KKyAgICAgICAgcHNhc2ltX3NlcmlhbGlzZV9iZWdpbl9uZWVkcygpICsKKyAgICAgICAgcHNhc2ltX3NlcmlhbGlzZV9wc2Ffc3RhdHVzX3RfbmVlZHMoc3RhdHVzKSArCisgICAgICAgIHBzYXNpbV9zZXJ2ZXJfc2VyaWFsaXNlX3BzYV9zaWduX2hhc2hfaW50ZXJydXB0aWJsZV9vcGVyYXRpb25fdF9uZWVkcyhvcGVyYXRpb24pOworCisgICAgcmVzdWx0ID0gbWFsbG9jKHJlc3VsdF9zaXplKTsKKyAgICBpZiAocmVzdWx0ID09IE5VTEwpIHsKKyAgICAgICAgZ290byBmYWlsOworICAgIH0KKworICAgIHVpbnQ4X3QgKnJwb3MgPSByZXN1bHQ7CisgICAgc2l6ZV90IHJyZW1haW4gPSByZXN1bHRfc2l6ZTsKKworICAgIG9rID0gcHNhc2ltX3NlcmlhbGlzZV9iZWdpbigmcnBvcywgJnJyZW1haW4pOworICAgIGlmICghb2spIHsKKyAgICAgICAgZ290byBmYWlsOworICAgIH0KKworICAgIG9rID0gcHNhc2ltX3NlcmlhbGlzZV9wc2Ffc3RhdHVzX3QoCisgICAgICAgICZycG9zLCAmcnJlbWFpbiwKKyAgICAgICAgc3RhdHVzKTsKKyAgICBpZiAoIW9rKSB7CisgICAgICAgIGdvdG8gZmFpbDsKKyAgICB9CisKKyAgICBvayA9IHBzYXNpbV9zZXJ2ZXJfc2VyaWFsaXNlX3BzYV9zaWduX2hhc2hfaW50ZXJydXB0aWJsZV9vcGVyYXRpb25fdCgKKyAgICAgICAgJnJwb3MsICZycmVtYWluLAorICAgICAgICBvcGVyYXRpb24sIDApOworICAgIGlmICghb2spIHsKKyAgICAgICAgZ290byBmYWlsOworICAgIH0KKworICAgICpvdXRfcGFyYW1zID0gcmVzdWx0OworICAgICpvdXRfcGFyYW1zX2xlbiA9IHJlc3VsdF9zaXplOworCisgICAgZnJlZShoYXNoKTsKKworICAgIHJldHVybiAxOyAgIC8vIHN1Y2Nlc3MKKworZmFpbDoKKyAgICBmcmVlKHJlc3VsdCk7CisKKyAgICBmcmVlKGhhc2gpOworCisgICAgcmV0dXJuIDA7ICAgICAgIC8vIFRoaXMgc2hvdWxkbid0IGhhcHBlbiEKK30KKworLy8gUmV0dXJucyAxIGZvciBzdWNjZXNzLCAwIGZvciBmYWlsdXJlCitpbnQgcHNhX3NpZ25fbWVzc2FnZV93cmFwcGVyKAorICAgIHVpbnQ4X3QgKmluX3BhcmFtcywgc2l6ZV90IGluX3BhcmFtc19sZW4sCisgICAgdWludDhfdCAqKm91dF9wYXJhbXMsIHNpemVfdCAqb3V0X3BhcmFtc19sZW4pCit7CisgICAgcHNhX3N0YXR1c190IHN0YXR1cyA9IFBTQV9FUlJPUl9DT1JSVVBUSU9OX0RFVEVDVEVEOworICAgIG1iZWR0bHNfc3ZjX2tleV9pZF90IGtleTsKKyAgICBwc2FfYWxnb3JpdGhtX3QgYWxnOworICAgIHVpbnQ4X3QgKmlucHV0ID0gTlVMTDsKKyAgICBzaXplX3QgaW5wdXRfbGVuZ3RoOworICAgIHVpbnQ4X3QgKnNpZ25hdHVyZSA9IE5VTEw7CisgICAgc2l6ZV90IHNpZ25hdHVyZV9zaXplOworICAgIHNpemVfdCBzaWduYXR1cmVfbGVuZ3RoOworCisgICAgdWludDhfdCAqcG9zID0gaW5fcGFyYW1zOworICAgIHNpemVfdCByZW1haW5pbmcgPSBpbl9wYXJhbXNfbGVuOworICAgIHVpbnQ4X3QgKnJlc3VsdCA9IE5VTEw7CisgICAgaW50IG9rOworCisgICAgb2sgPSBwc2FzaW1fZGVzZXJpYWxpc2VfYmVnaW4oJnBvcywgJnJlbWFpbmluZyk7CisgICAgaWYgKCFvaykgeworICAgICAgICBnb3RvIGZhaWw7CisgICAgfQorCisgICAgb2sgPSBwc2FzaW1fZGVzZXJpYWxpc2VfbWJlZHRsc19zdmNfa2V5X2lkX3QoCisgICAgICAgICZwb3MsICZyZW1haW5pbmcsCisgICAgICAgICZrZXkpOworICAgIGlmICghb2spIHsKKyAgICAgICAgZ290byBmYWlsOworICAgIH0KKworICAgIG9rID0gcHNhc2ltX2Rlc2VyaWFsaXNlX3BzYV9hbGdvcml0aG1fdCgKKyAgICAgICAgJnBvcywgJnJlbWFpbmluZywKKyAgICAgICAgJmFsZyk7CisgICAgaWYgKCFvaykgeworICAgICAgICBnb3RvIGZhaWw7CisgICAgfQorCisgICAgb2sgPSBwc2FzaW1fZGVzZXJpYWxpc2VfYnVmZmVyKAorICAgICAgICAmcG9zLCAmcmVtYWluaW5nLAorICAgICAgICAmaW5wdXQsICZpbnB1dF9sZW5ndGgpOworICAgIGlmICghb2spIHsKKyAgICAgICAgZ290byBmYWlsOworICAgIH0KKworICAgIG9rID0gcHNhc2ltX2Rlc2VyaWFsaXNlX2J1ZmZlcigKKyAgICAgICAgJnBvcywgJnJlbWFpbmluZywKKyAgICAgICAgJnNpZ25hdHVyZSwgJnNpZ25hdHVyZV9zaXplKTsKKyAgICBpZiAoIW9rKSB7CisgICAgICAgIGdvdG8gZmFpbDsKKyAgICB9CisKKyAgICBvayA9IHBzYXNpbV9kZXNlcmlhbGlzZV9zaXplX3QoCisgICAgICAgICZwb3MsICZyZW1haW5pbmcsCisgICAgICAgICZzaWduYXR1cmVfbGVuZ3RoKTsKKyAgICBpZiAoIW9rKSB7CisgICAgICAgIGdvdG8gZmFpbDsKKyAgICB9CisKKyAgICAvLyBOb3cgd2UgY2FsbCB0aGUgYWN0dWFsIHRhcmdldCBmdW5jdGlvbgorCisgICAgc3RhdHVzID0gcHNhX3NpZ25fbWVzc2FnZSgKKyAgICAgICAga2V5LAorICAgICAgICBhbGcsCisgICAgICAgIGlucHV0LCBpbnB1dF9sZW5ndGgsCisgICAgICAgIHNpZ25hdHVyZSwgc2lnbmF0dXJlX3NpemUsCisgICAgICAgICZzaWduYXR1cmVfbGVuZ3RoCisgICAgICAgICk7CisKKyAgICAvLyBOT1RFOiBTaG91bGQgcmVhbGx5IGNoZWNrIHRoZXJlIGlzIG5vIG92ZXJmbG93IGFzIHdlIGdvIGFsb25nLgorICAgIHNpemVfdCByZXN1bHRfc2l6ZSA9CisgICAgICAgIHBzYXNpbV9zZXJpYWxpc2VfYmVnaW5fbmVlZHMoKSArCisgICAgICAgIHBzYXNpbV9zZXJpYWxpc2VfcHNhX3N0YXR1c190X25lZWRzKHN0YXR1cykgKworICAgICAgICBwc2FzaW1fc2VyaWFsaXNlX2J1ZmZlcl9uZWVkcyhzaWduYXR1cmUsIHNpZ25hdHVyZV9zaXplKSArCisgICAgICAgIHBzYXNpbV9zZXJpYWxpc2Vfc2l6ZV90X25lZWRzKHNpZ25hdHVyZV9sZW5ndGgpOworCisgICAgcmVzdWx0ID0gbWFsbG9jKHJlc3VsdF9zaXplKTsKKyAgICBpZiAocmVzdWx0ID09IE5VTEwpIHsKKyAgICAgICAgZ290byBmYWlsOworICAgIH0KKworICAgIHVpbnQ4X3QgKnJwb3MgPSByZXN1bHQ7CisgICAgc2l6ZV90IHJyZW1haW4gPSByZXN1bHRfc2l6ZTsKKworICAgIG9rID0gcHNhc2ltX3NlcmlhbGlzZV9iZWdpbigmcnBvcywgJnJyZW1haW4pOworICAgIGlmICghb2spIHsKKyAgICAgICAgZ290byBmYWlsOworICAgIH0KKworICAgIG9rID0gcHNhc2ltX3NlcmlhbGlzZV9wc2Ffc3RhdHVzX3QoCisgICAgICAgICZycG9zLCAmcnJlbWFpbiwKKyAgICAgICAgc3RhdHVzKTsKKyAgICBpZiAoIW9rKSB7CisgICAgICAgIGdvdG8gZmFpbDsKKyAgICB9CisKKyAgICBvayA9IHBzYXNpbV9zZXJpYWxpc2VfYnVmZmVyKAorICAgICAgICAmcnBvcywgJnJyZW1haW4sCisgICAgICAgIHNpZ25hdHVyZSwgc2lnbmF0dXJlX3NpemUpOworICAgIGlmICghb2spIHsKKyAgICAgICAgZ290byBmYWlsOworICAgIH0KKworICAgIG9rID0gcHNhc2ltX3NlcmlhbGlzZV9zaXplX3QoCisgICAgICAgICZycG9zLCAmcnJlbWFpbiwKKyAgICAgICAgc2lnbmF0dXJlX2xlbmd0aCk7CisgICAgaWYgKCFvaykgeworICAgICAgICBnb3RvIGZhaWw7CisgICAgfQorCisgICAgKm91dF9wYXJhbXMgPSByZXN1bHQ7CisgICAgKm91dF9wYXJhbXNfbGVuID0gcmVzdWx0X3NpemU7CisKKyAgICBmcmVlKGlucHV0KTsKKyAgICBmcmVlKHNpZ25hdHVyZSk7CisKKyAgICByZXR1cm4gMTsgICAvLyBzdWNjZXNzCisKK2ZhaWw6CisgICAgZnJlZShyZXN1bHQpOworCisgICAgZnJlZShpbnB1dCk7CisgICAgZnJlZShzaWduYXR1cmUpOworCisgICAgcmV0dXJuIDA7ICAgICAgIC8vIFRoaXMgc2hvdWxkbid0IGhhcHBlbiEKK30KKworLy8gUmV0dXJucyAxIGZvciBzdWNjZXNzLCAwIGZvciBmYWlsdXJlCitpbnQgcHNhX3ZlcmlmeV9oYXNoX3dyYXBwZXIoCisgICAgdWludDhfdCAqaW5fcGFyYW1zLCBzaXplX3QgaW5fcGFyYW1zX2xlbiwKKyAgICB1aW50OF90ICoqb3V0X3BhcmFtcywgc2l6ZV90ICpvdXRfcGFyYW1zX2xlbikKK3sKKyAgICBwc2Ffc3RhdHVzX3Qgc3RhdHVzID0gUFNBX0VSUk9SX0NPUlJVUFRJT05fREVURUNURUQ7CisgICAgbWJlZHRsc19zdmNfa2V5X2lkX3Qga2V5OworICAgIHBzYV9hbGdvcml0aG1fdCBhbGc7CisgICAgdWludDhfdCAqaGFzaCA9IE5VTEw7CisgICAgc2l6ZV90IGhhc2hfbGVuZ3RoOworICAgIHVpbnQ4X3QgKnNpZ25hdHVyZSA9IE5VTEw7CisgICAgc2l6ZV90IHNpZ25hdHVyZV9sZW5ndGg7CisKKyAgICB1aW50OF90ICpwb3MgPSBpbl9wYXJhbXM7CisgICAgc2l6ZV90IHJlbWFpbmluZyA9IGluX3BhcmFtc19sZW47CisgICAgdWludDhfdCAqcmVzdWx0ID0gTlVMTDsKKyAgICBpbnQgb2s7CisKKyAgICBvayA9IHBzYXNpbV9kZXNlcmlhbGlzZV9iZWdpbigmcG9zLCAmcmVtYWluaW5nKTsKKyAgICBpZiAoIW9rKSB7CisgICAgICAgIGdvdG8gZmFpbDsKKyAgICB9CisKKyAgICBvayA9IHBzYXNpbV9kZXNlcmlhbGlzZV9tYmVkdGxzX3N2Y19rZXlfaWRfdCgKKyAgICAgICAgJnBvcywgJnJlbWFpbmluZywKKyAgICAgICAgJmtleSk7CisgICAgaWYgKCFvaykgeworICAgICAgICBnb3RvIGZhaWw7CisgICAgfQorCisgICAgb2sgPSBwc2FzaW1fZGVzZXJpYWxpc2VfcHNhX2FsZ29yaXRobV90KAorICAgICAgICAmcG9zLCAmcmVtYWluaW5nLAorICAgICAgICAmYWxnKTsKKyAgICBpZiAoIW9rKSB7CisgICAgICAgIGdvdG8gZmFpbDsKKyAgICB9CisKKyAgICBvayA9IHBzYXNpbV9kZXNlcmlhbGlzZV9idWZmZXIoCisgICAgICAgICZwb3MsICZyZW1haW5pbmcsCisgICAgICAgICZoYXNoLCAmaGFzaF9sZW5ndGgpOworICAgIGlmICghb2spIHsKKyAgICAgICAgZ290byBmYWlsOworICAgIH0KKworICAgIG9rID0gcHNhc2ltX2Rlc2VyaWFsaXNlX2J1ZmZlcigKKyAgICAgICAgJnBvcywgJnJlbWFpbmluZywKKyAgICAgICAgJnNpZ25hdHVyZSwgJnNpZ25hdHVyZV9sZW5ndGgpOworICAgIGlmICghb2spIHsKKyAgICAgICAgZ290byBmYWlsOworICAgIH0KKworICAgIC8vIE5vdyB3ZSBjYWxsIHRoZSBhY3R1YWwgdGFyZ2V0IGZ1bmN0aW9uCisKKyAgICBzdGF0dXMgPSBwc2FfdmVyaWZ5X2hhc2goCisgICAgICAgIGtleSwKKyAgICAgICAgYWxnLAorICAgICAgICBoYXNoLCBoYXNoX2xlbmd0aCwKKyAgICAgICAgc2lnbmF0dXJlLCBzaWduYXR1cmVfbGVuZ3RoCisgICAgICAgICk7CisKKyAgICAvLyBOT1RFOiBTaG91bGQgcmVhbGx5IGNoZWNrIHRoZXJlIGlzIG5vIG92ZXJmbG93IGFzIHdlIGdvIGFsb25nLgorICAgIHNpemVfdCByZXN1bHRfc2l6ZSA9CisgICAgICAgIHBzYXNpbV9zZXJpYWxpc2VfYmVnaW5fbmVlZHMoKSArCisgICAgICAgIHBzYXNpbV9zZXJpYWxpc2VfcHNhX3N0YXR1c190X25lZWRzKHN0YXR1cyk7CisKKyAgICByZXN1bHQgPSBtYWxsb2MocmVzdWx0X3NpemUpOworICAgIGlmIChyZXN1bHQgPT0gTlVMTCkgeworICAgICAgICBnb3RvIGZhaWw7CisgICAgfQorCisgICAgdWludDhfdCAqcnBvcyA9IHJlc3VsdDsKKyAgICBzaXplX3QgcnJlbWFpbiA9IHJlc3VsdF9zaXplOworCisgICAgb2sgPSBwc2FzaW1fc2VyaWFsaXNlX2JlZ2luKCZycG9zLCAmcnJlbWFpbik7CisgICAgaWYgKCFvaykgeworICAgICAgICBnb3RvIGZhaWw7CisgICAgfQorCisgICAgb2sgPSBwc2FzaW1fc2VyaWFsaXNlX3BzYV9zdGF0dXNfdCgKKyAgICAgICAgJnJwb3MsICZycmVtYWluLAorICAgICAgICBzdGF0dXMpOworICAgIGlmICghb2spIHsKKyAgICAgICAgZ290byBmYWlsOworICAgIH0KKworICAgICpvdXRfcGFyYW1zID0gcmVzdWx0OworICAgICpvdXRfcGFyYW1zX2xlbiA9IHJlc3VsdF9zaXplOworCisgICAgZnJlZShoYXNoKTsKKyAgICBmcmVlKHNpZ25hdHVyZSk7CisKKyAgICByZXR1cm4gMTsgICAvLyBzdWNjZXNzCisKK2ZhaWw6CisgICAgZnJlZShyZXN1bHQpOworCisgICAgZnJlZShoYXNoKTsKKyAgICBmcmVlKHNpZ25hdHVyZSk7CisKKyAgICByZXR1cm4gMDsgICAgICAgLy8gVGhpcyBzaG91bGRuJ3QgaGFwcGVuIQorfQorCisvLyBSZXR1cm5zIDEgZm9yIHN1Y2Nlc3MsIDAgZm9yIGZhaWx1cmUKK2ludCBwc2FfdmVyaWZ5X2hhc2hfYWJvcnRfd3JhcHBlcigKKyAgICB1aW50OF90ICppbl9wYXJhbXMsIHNpemVfdCBpbl9wYXJhbXNfbGVuLAorICAgIHVpbnQ4X3QgKipvdXRfcGFyYW1zLCBzaXplX3QgKm91dF9wYXJhbXNfbGVuKQoreworICAgIHBzYV9zdGF0dXNfdCBzdGF0dXMgPSBQU0FfRVJST1JfQ09SUlVQVElPTl9ERVRFQ1RFRDsKKyAgICBwc2FfdmVyaWZ5X2hhc2hfaW50ZXJydXB0aWJsZV9vcGVyYXRpb25fdCAqb3BlcmF0aW9uOworCisgICAgdWludDhfdCAqcG9zID0gaW5fcGFyYW1zOworICAgIHNpemVfdCByZW1haW5pbmcgPSBpbl9wYXJhbXNfbGVuOworICAgIHVpbnQ4X3QgKnJlc3VsdCA9IE5VTEw7CisgICAgaW50IG9rOworCisgICAgb2sgPSBwc2FzaW1fZGVzZXJpYWxpc2VfYmVnaW4oJnBvcywgJnJlbWFpbmluZyk7CisgICAgaWYgKCFvaykgeworICAgICAgICBnb3RvIGZhaWw7CisgICAgfQorCisgICAgb2sgPSBwc2FzaW1fc2VydmVyX2Rlc2VyaWFsaXNlX3BzYV92ZXJpZnlfaGFzaF9pbnRlcnJ1cHRpYmxlX29wZXJhdGlvbl90KAorICAgICAgICAmcG9zLCAmcmVtYWluaW5nLAorICAgICAgICAmb3BlcmF0aW9uKTsKKyAgICBpZiAoIW9rKSB7CisgICAgICAgIGdvdG8gZmFpbDsKKyAgICB9CisKKyAgICAvLyBOb3cgd2UgY2FsbCB0aGUgYWN0dWFsIHRhcmdldCBmdW5jdGlvbgorCisgICAgc3RhdHVzID0gcHNhX3ZlcmlmeV9oYXNoX2Fib3J0KAorICAgICAgICBvcGVyYXRpb24KKyAgICAgICAgKTsKKworICAgIC8vIE5PVEU6IFNob3VsZCByZWFsbHkgY2hlY2sgdGhlcmUgaXMgbm8gb3ZlcmZsb3cgYXMgd2UgZ28gYWxvbmcuCisgICAgc2l6ZV90IHJlc3VsdF9zaXplID0KKyAgICAgICAgcHNhc2ltX3NlcmlhbGlzZV9iZWdpbl9uZWVkcygpICsKKyAgICAgICAgcHNhc2ltX3NlcmlhbGlzZV9wc2Ffc3RhdHVzX3RfbmVlZHMoc3RhdHVzKSArCisgICAgICAgIHBzYXNpbV9zZXJ2ZXJfc2VyaWFsaXNlX3BzYV92ZXJpZnlfaGFzaF9pbnRlcnJ1cHRpYmxlX29wZXJhdGlvbl90X25lZWRzKG9wZXJhdGlvbik7CisKKyAgICByZXN1bHQgPSBtYWxsb2MocmVzdWx0X3NpemUpOworICAgIGlmIChyZXN1bHQgPT0gTlVMTCkgeworICAgICAgICBnb3RvIGZhaWw7CisgICAgfQorCisgICAgdWludDhfdCAqcnBvcyA9IHJlc3VsdDsKKyAgICBzaXplX3QgcnJlbWFpbiA9IHJlc3VsdF9zaXplOworCisgICAgb2sgPSBwc2FzaW1fc2VyaWFsaXNlX2JlZ2luKCZycG9zLCAmcnJlbWFpbik7CisgICAgaWYgKCFvaykgeworICAgICAgICBnb3RvIGZhaWw7CisgICAgfQorCisgICAgb2sgPSBwc2FzaW1fc2VyaWFsaXNlX3BzYV9zdGF0dXNfdCgKKyAgICAgICAgJnJwb3MsICZycmVtYWluLAorICAgICAgICBzdGF0dXMpOworICAgIGlmICghb2spIHsKKyAgICAgICAgZ290byBmYWlsOworICAgIH0KKworICAgIG9rID0gcHNhc2ltX3NlcnZlcl9zZXJpYWxpc2VfcHNhX3ZlcmlmeV9oYXNoX2ludGVycnVwdGlibGVfb3BlcmF0aW9uX3QoCisgICAgICAgICZycG9zLCAmcnJlbWFpbiwKKyAgICAgICAgb3BlcmF0aW9uLCAxKTsKKyAgICBpZiAoIW9rKSB7CisgICAgICAgIGdvdG8gZmFpbDsKKyAgICB9CisKKyAgICAqb3V0X3BhcmFtcyA9IHJlc3VsdDsKKyAgICAqb3V0X3BhcmFtc19sZW4gPSByZXN1bHRfc2l6ZTsKKworICAgIHJldHVybiAxOyAgIC8vIHN1Y2Nlc3MKKworZmFpbDoKKyAgICBmcmVlKHJlc3VsdCk7CisKKyAgICByZXR1cm4gMDsgICAgICAgLy8gVGhpcyBzaG91bGRuJ3QgaGFwcGVuIQorfQorCisvLyBSZXR1cm5zIDEgZm9yIHN1Y2Nlc3MsIDAgZm9yIGZhaWx1cmUKK2ludCBwc2FfdmVyaWZ5X2hhc2hfY29tcGxldGVfd3JhcHBlcigKKyAgICB1aW50OF90ICppbl9wYXJhbXMsIHNpemVfdCBpbl9wYXJhbXNfbGVuLAorICAgIHVpbnQ4X3QgKipvdXRfcGFyYW1zLCBzaXplX3QgKm91dF9wYXJhbXNfbGVuKQoreworICAgIHBzYV9zdGF0dXNfdCBzdGF0dXMgPSBQU0FfRVJST1JfQ09SUlVQVElPTl9ERVRFQ1RFRDsKKyAgICBwc2FfdmVyaWZ5X2hhc2hfaW50ZXJydXB0aWJsZV9vcGVyYXRpb25fdCAqb3BlcmF0aW9uOworCisgICAgdWludDhfdCAqcG9zID0gaW5fcGFyYW1zOworICAgIHNpemVfdCByZW1haW5pbmcgPSBpbl9wYXJhbXNfbGVuOworICAgIHVpbnQ4X3QgKnJlc3VsdCA9IE5VTEw7CisgICAgaW50IG9rOworCisgICAgb2sgPSBwc2FzaW1fZGVzZXJpYWxpc2VfYmVnaW4oJnBvcywgJnJlbWFpbmluZyk7CisgICAgaWYgKCFvaykgeworICAgICAgICBnb3RvIGZhaWw7CisgICAgfQorCisgICAgb2sgPSBwc2FzaW1fc2VydmVyX2Rlc2VyaWFsaXNlX3BzYV92ZXJpZnlfaGFzaF9pbnRlcnJ1cHRpYmxlX29wZXJhdGlvbl90KAorICAgICAgICAmcG9zLCAmcmVtYWluaW5nLAorICAgICAgICAmb3BlcmF0aW9uKTsKKyAgICBpZiAoIW9rKSB7CisgICAgICAgIGdvdG8gZmFpbDsKKyAgICB9CisKKyAgICAvLyBOb3cgd2UgY2FsbCB0aGUgYWN0dWFsIHRhcmdldCBmdW5jdGlvbgorCisgICAgc3RhdHVzID0gcHNhX3ZlcmlmeV9oYXNoX2NvbXBsZXRlKAorICAgICAgICBvcGVyYXRpb24KKyAgICAgICAgKTsKKworICAgIC8vIE5PVEU6IFNob3VsZCByZWFsbHkgY2hlY2sgdGhlcmUgaXMgbm8gb3ZlcmZsb3cgYXMgd2UgZ28gYWxvbmcuCisgICAgc2l6ZV90IHJlc3VsdF9zaXplID0KKyAgICAgICAgcHNhc2ltX3NlcmlhbGlzZV9iZWdpbl9uZWVkcygpICsKKyAgICAgICAgcHNhc2ltX3NlcmlhbGlzZV9wc2Ffc3RhdHVzX3RfbmVlZHMoc3RhdHVzKSArCisgICAgICAgIHBzYXNpbV9zZXJ2ZXJfc2VyaWFsaXNlX3BzYV92ZXJpZnlfaGFzaF9pbnRlcnJ1cHRpYmxlX29wZXJhdGlvbl90X25lZWRzKG9wZXJhdGlvbik7CisKKyAgICByZXN1bHQgPSBtYWxsb2MocmVzdWx0X3NpemUpOworICAgIGlmIChyZXN1bHQgPT0gTlVMTCkgeworICAgICAgICBnb3RvIGZhaWw7CisgICAgfQorCisgICAgdWludDhfdCAqcnBvcyA9IHJlc3VsdDsKKyAgICBzaXplX3QgcnJlbWFpbiA9IHJlc3VsdF9zaXplOworCisgICAgb2sgPSBwc2FzaW1fc2VyaWFsaXNlX2JlZ2luKCZycG9zLCAmcnJlbWFpbik7CisgICAgaWYgKCFvaykgeworICAgICAgICBnb3RvIGZhaWw7CisgICAgfQorCisgICAgb2sgPSBwc2FzaW1fc2VyaWFsaXNlX3BzYV9zdGF0dXNfdCgKKyAgICAgICAgJnJwb3MsICZycmVtYWluLAorICAgICAgICBzdGF0dXMpOworICAgIGlmICghb2spIHsKKyAgICAgICAgZ290byBmYWlsOworICAgIH0KKworICAgIG9rID0gcHNhc2ltX3NlcnZlcl9zZXJpYWxpc2VfcHNhX3ZlcmlmeV9oYXNoX2ludGVycnVwdGlibGVfb3BlcmF0aW9uX3QoCisgICAgICAgICZycG9zLCAmcnJlbWFpbiwKKyAgICAgICAgb3BlcmF0aW9uLCAwKTsKKyAgICBpZiAoIW9rKSB7CisgICAgICAgIGdvdG8gZmFpbDsKKyAgICB9CisKKyAgICAqb3V0X3BhcmFtcyA9IHJlc3VsdDsKKyAgICAqb3V0X3BhcmFtc19sZW4gPSByZXN1bHRfc2l6ZTsKKworICAgIHJldHVybiAxOyAgIC8vIHN1Y2Nlc3MKKworZmFpbDoKKyAgICBmcmVlKHJlc3VsdCk7CisKKyAgICByZXR1cm4gMDsgICAgICAgLy8gVGhpcyBzaG91bGRuJ3QgaGFwcGVuIQorfQorCisvLyBSZXR1cm5zIDEgZm9yIHN1Y2Nlc3MsIDAgZm9yIGZhaWx1cmUKK2ludCBwc2FfdmVyaWZ5X2hhc2hfZ2V0X251bV9vcHNfd3JhcHBlcigKKyAgICB1aW50OF90ICppbl9wYXJhbXMsIHNpemVfdCBpbl9wYXJhbXNfbGVuLAorICAgIHVpbnQ4X3QgKipvdXRfcGFyYW1zLCBzaXplX3QgKm91dF9wYXJhbXNfbGVuKQoreworICAgIHVpbnQzMl90IHZhbHVlID0gMDsKKyAgICBwc2FfdmVyaWZ5X2hhc2hfaW50ZXJydXB0aWJsZV9vcGVyYXRpb25fdCAqb3BlcmF0aW9uOworCisgICAgdWludDhfdCAqcG9zID0gaW5fcGFyYW1zOworICAgIHNpemVfdCByZW1haW5pbmcgPSBpbl9wYXJhbXNfbGVuOworICAgIHVpbnQ4X3QgKnJlc3VsdCA9IE5VTEw7CisgICAgaW50IG9rOworCisgICAgb2sgPSBwc2FzaW1fZGVzZXJpYWxpc2VfYmVnaW4oJnBvcywgJnJlbWFpbmluZyk7CisgICAgaWYgKCFvaykgeworICAgICAgICBnb3RvIGZhaWw7CisgICAgfQorCisgICAgb2sgPSBwc2FzaW1fc2VydmVyX2Rlc2VyaWFsaXNlX3BzYV92ZXJpZnlfaGFzaF9pbnRlcnJ1cHRpYmxlX29wZXJhdGlvbl90KAorICAgICAgICAmcG9zLCAmcmVtYWluaW5nLAorICAgICAgICAmb3BlcmF0aW9uKTsKKyAgICBpZiAoIW9rKSB7CisgICAgICAgIGdvdG8gZmFpbDsKKyAgICB9CisKKyAgICAvLyBOb3cgd2UgY2FsbCB0aGUgYWN0dWFsIHRhcmdldCBmdW5jdGlvbgorCisgICAgdmFsdWUgPSBwc2FfdmVyaWZ5X2hhc2hfZ2V0X251bV9vcHMoCisgICAgICAgIG9wZXJhdGlvbgorICAgICAgICApOworCisgICAgLy8gTk9URTogU2hvdWxkIHJlYWxseSBjaGVjayB0aGVyZSBpcyBubyBvdmVyZmxvdyBhcyB3ZSBnbyBhbG9uZy4KKyAgICBzaXplX3QgcmVzdWx0X3NpemUgPQorICAgICAgICBwc2FzaW1fc2VyaWFsaXNlX2JlZ2luX25lZWRzKCkgKworICAgICAgICBwc2FzaW1fc2VyaWFsaXNlX3VpbnQzMl90X25lZWRzKHZhbHVlKTsKKworICAgIHJlc3VsdCA9IG1hbGxvYyhyZXN1bHRfc2l6ZSk7CisgICAgaWYgKHJlc3VsdCA9PSBOVUxMKSB7CisgICAgICAgIGdvdG8gZmFpbDsKKyAgICB9CisKKyAgICB1aW50OF90ICpycG9zID0gcmVzdWx0OworICAgIHNpemVfdCBycmVtYWluID0gcmVzdWx0X3NpemU7CisKKyAgICBvayA9IHBzYXNpbV9zZXJpYWxpc2VfYmVnaW4oJnJwb3MsICZycmVtYWluKTsKKyAgICBpZiAoIW9rKSB7CisgICAgICAgIGdvdG8gZmFpbDsKKyAgICB9CisKKyAgICBvayA9IHBzYXNpbV9zZXJpYWxpc2VfdWludDMyX3QoCisgICAgICAgICZycG9zLCAmcnJlbWFpbiwKKyAgICAgICAgdmFsdWUpOworICAgIGlmICghb2spIHsKKyAgICAgICAgZ290byBmYWlsOworICAgIH0KKworICAgICpvdXRfcGFyYW1zID0gcmVzdWx0OworICAgICpvdXRfcGFyYW1zX2xlbiA9IHJlc3VsdF9zaXplOworCisgICAgcmV0dXJuIDE7ICAgLy8gc3VjY2VzcworCitmYWlsOgorICAgIGZyZWUocmVzdWx0KTsKKworICAgIHJldHVybiAwOyAgICAgICAvLyBUaGlzIHNob3VsZG4ndCBoYXBwZW4hCit9CisKKy8vIFJldHVybnMgMSBmb3Igc3VjY2VzcywgMCBmb3IgZmFpbHVyZQoraW50IHBzYV92ZXJpZnlfaGFzaF9zdGFydF93cmFwcGVyKAorICAgIHVpbnQ4X3QgKmluX3BhcmFtcywgc2l6ZV90IGluX3BhcmFtc19sZW4sCisgICAgdWludDhfdCAqKm91dF9wYXJhbXMsIHNpemVfdCAqb3V0X3BhcmFtc19sZW4pCit7CisgICAgcHNhX3N0YXR1c190IHN0YXR1cyA9IFBTQV9FUlJPUl9DT1JSVVBUSU9OX0RFVEVDVEVEOworICAgIHBzYV92ZXJpZnlfaGFzaF9pbnRlcnJ1cHRpYmxlX29wZXJhdGlvbl90ICpvcGVyYXRpb247CisgICAgbWJlZHRsc19zdmNfa2V5X2lkX3Qga2V5OworICAgIHBzYV9hbGdvcml0aG1fdCBhbGc7CisgICAgdWludDhfdCAqaGFzaCA9IE5VTEw7CisgICAgc2l6ZV90IGhhc2hfbGVuZ3RoOworICAgIHVpbnQ4X3QgKnNpZ25hdHVyZSA9IE5VTEw7CisgICAgc2l6ZV90IHNpZ25hdHVyZV9sZW5ndGg7CisKKyAgICB1aW50OF90ICpwb3MgPSBpbl9wYXJhbXM7CisgICAgc2l6ZV90IHJlbWFpbmluZyA9IGluX3BhcmFtc19sZW47CisgICAgdWludDhfdCAqcmVzdWx0ID0gTlVMTDsKKyAgICBpbnQgb2s7CisKKyAgICBvayA9IHBzYXNpbV9kZXNlcmlhbGlzZV9iZWdpbigmcG9zLCAmcmVtYWluaW5nKTsKKyAgICBpZiAoIW9rKSB7CisgICAgICAgIGdvdG8gZmFpbDsKKyAgICB9CisKKyAgICBvayA9IHBzYXNpbV9zZXJ2ZXJfZGVzZXJpYWxpc2VfcHNhX3ZlcmlmeV9oYXNoX2ludGVycnVwdGlibGVfb3BlcmF0aW9uX3QoCisgICAgICAgICZwb3MsICZyZW1haW5pbmcsCisgICAgICAgICZvcGVyYXRpb24pOworICAgIGlmICghb2spIHsKKyAgICAgICAgZ290byBmYWlsOworICAgIH0KKworICAgIG9rID0gcHNhc2ltX2Rlc2VyaWFsaXNlX21iZWR0bHNfc3ZjX2tleV9pZF90KAorICAgICAgICAmcG9zLCAmcmVtYWluaW5nLAorICAgICAgICAma2V5KTsKKyAgICBpZiAoIW9rKSB7CisgICAgICAgIGdvdG8gZmFpbDsKKyAgICB9CisKKyAgICBvayA9IHBzYXNpbV9kZXNlcmlhbGlzZV9wc2FfYWxnb3JpdGhtX3QoCisgICAgICAgICZwb3MsICZyZW1haW5pbmcsCisgICAgICAgICZhbGcpOworICAgIGlmICghb2spIHsKKyAgICAgICAgZ290byBmYWlsOworICAgIH0KKworICAgIG9rID0gcHNhc2ltX2Rlc2VyaWFsaXNlX2J1ZmZlcigKKyAgICAgICAgJnBvcywgJnJlbWFpbmluZywKKyAgICAgICAgJmhhc2gsICZoYXNoX2xlbmd0aCk7CisgICAgaWYgKCFvaykgeworICAgICAgICBnb3RvIGZhaWw7CisgICAgfQorCisgICAgb2sgPSBwc2FzaW1fZGVzZXJpYWxpc2VfYnVmZmVyKAorICAgICAgICAmcG9zLCAmcmVtYWluaW5nLAorICAgICAgICAmc2lnbmF0dXJlLCAmc2lnbmF0dXJlX2xlbmd0aCk7CisgICAgaWYgKCFvaykgeworICAgICAgICBnb3RvIGZhaWw7CisgICAgfQorCisgICAgLy8gTm93IHdlIGNhbGwgdGhlIGFjdHVhbCB0YXJnZXQgZnVuY3Rpb24KKworICAgIHN0YXR1cyA9IHBzYV92ZXJpZnlfaGFzaF9zdGFydCgKKyAgICAgICAgb3BlcmF0aW9uLAorICAgICAgICBrZXksCisgICAgICAgIGFsZywKKyAgICAgICAgaGFzaCwgaGFzaF9sZW5ndGgsCisgICAgICAgIHNpZ25hdHVyZSwgc2lnbmF0dXJlX2xlbmd0aAorICAgICAgICApOworCisgICAgLy8gTk9URTogU2hvdWxkIHJlYWxseSBjaGVjayB0aGVyZSBpcyBubyBvdmVyZmxvdyBhcyB3ZSBnbyBhbG9uZy4KKyAgICBzaXplX3QgcmVzdWx0X3NpemUgPQorICAgICAgICBwc2FzaW1fc2VyaWFsaXNlX2JlZ2luX25lZWRzKCkgKworICAgICAgICBwc2FzaW1fc2VyaWFsaXNlX3BzYV9zdGF0dXNfdF9uZWVkcyhzdGF0dXMpICsKKyAgICAgICAgcHNhc2ltX3NlcnZlcl9zZXJpYWxpc2VfcHNhX3ZlcmlmeV9oYXNoX2ludGVycnVwdGlibGVfb3BlcmF0aW9uX3RfbmVlZHMob3BlcmF0aW9uKTsKKworICAgIHJlc3VsdCA9IG1hbGxvYyhyZXN1bHRfc2l6ZSk7CisgICAgaWYgKHJlc3VsdCA9PSBOVUxMKSB7CisgICAgICAgIGdvdG8gZmFpbDsKKyAgICB9CisKKyAgICB1aW50OF90ICpycG9zID0gcmVzdWx0OworICAgIHNpemVfdCBycmVtYWluID0gcmVzdWx0X3NpemU7CisKKyAgICBvayA9IHBzYXNpbV9zZXJpYWxpc2VfYmVnaW4oJnJwb3MsICZycmVtYWluKTsKKyAgICBpZiAoIW9rKSB7CisgICAgICAgIGdvdG8gZmFpbDsKKyAgICB9CisKKyAgICBvayA9IHBzYXNpbV9zZXJpYWxpc2VfcHNhX3N0YXR1c190KAorICAgICAgICAmcnBvcywgJnJyZW1haW4sCisgICAgICAgIHN0YXR1cyk7CisgICAgaWYgKCFvaykgeworICAgICAgICBnb3RvIGZhaWw7CisgICAgfQorCisgICAgb2sgPSBwc2FzaW1fc2VydmVyX3NlcmlhbGlzZV9wc2FfdmVyaWZ5X2hhc2hfaW50ZXJydXB0aWJsZV9vcGVyYXRpb25fdCgKKyAgICAgICAgJnJwb3MsICZycmVtYWluLAorICAgICAgICBvcGVyYXRpb24sIDApOworICAgIGlmICghb2spIHsKKyAgICAgICAgZ290byBmYWlsOworICAgIH0KKworICAgICpvdXRfcGFyYW1zID0gcmVzdWx0OworICAgICpvdXRfcGFyYW1zX2xlbiA9IHJlc3VsdF9zaXplOworCisgICAgZnJlZShoYXNoKTsKKyAgICBmcmVlKHNpZ25hdHVyZSk7CisKKyAgICByZXR1cm4gMTsgICAvLyBzdWNjZXNzCisKK2ZhaWw6CisgICAgZnJlZShyZXN1bHQpOworCisgICAgZnJlZShoYXNoKTsKKyAgICBmcmVlKHNpZ25hdHVyZSk7CisKKyAgICByZXR1cm4gMDsgICAgICAgLy8gVGhpcyBzaG91bGRuJ3QgaGFwcGVuIQorfQorCisvLyBSZXR1cm5zIDEgZm9yIHN1Y2Nlc3MsIDAgZm9yIGZhaWx1cmUKK2ludCBwc2FfdmVyaWZ5X21lc3NhZ2Vfd3JhcHBlcigKKyAgICB1aW50OF90ICppbl9wYXJhbXMsIHNpemVfdCBpbl9wYXJhbXNfbGVuLAorICAgIHVpbnQ4X3QgKipvdXRfcGFyYW1zLCBzaXplX3QgKm91dF9wYXJhbXNfbGVuKQoreworICAgIHBzYV9zdGF0dXNfdCBzdGF0dXMgPSBQU0FfRVJST1JfQ09SUlVQVElPTl9ERVRFQ1RFRDsKKyAgICBtYmVkdGxzX3N2Y19rZXlfaWRfdCBrZXk7CisgICAgcHNhX2FsZ29yaXRobV90IGFsZzsKKyAgICB1aW50OF90ICppbnB1dCA9IE5VTEw7CisgICAgc2l6ZV90IGlucHV0X2xlbmd0aDsKKyAgICB1aW50OF90ICpzaWduYXR1cmUgPSBOVUxMOworICAgIHNpemVfdCBzaWduYXR1cmVfbGVuZ3RoOworCisgICAgdWludDhfdCAqcG9zID0gaW5fcGFyYW1zOworICAgIHNpemVfdCByZW1haW5pbmcgPSBpbl9wYXJhbXNfbGVuOworICAgIHVpbnQ4X3QgKnJlc3VsdCA9IE5VTEw7CisgICAgaW50IG9rOworCisgICAgb2sgPSBwc2FzaW1fZGVzZXJpYWxpc2VfYmVnaW4oJnBvcywgJnJlbWFpbmluZyk7CisgICAgaWYgKCFvaykgeworICAgICAgICBnb3RvIGZhaWw7CisgICAgfQorCisgICAgb2sgPSBwc2FzaW1fZGVzZXJpYWxpc2VfbWJlZHRsc19zdmNfa2V5X2lkX3QoCisgICAgICAgICZwb3MsICZyZW1haW5pbmcsCisgICAgICAgICZrZXkpOworICAgIGlmICghb2spIHsKKyAgICAgICAgZ290byBmYWlsOworICAgIH0KKworICAgIG9rID0gcHNhc2ltX2Rlc2VyaWFsaXNlX3BzYV9hbGdvcml0aG1fdCgKKyAgICAgICAgJnBvcywgJnJlbWFpbmluZywKKyAgICAgICAgJmFsZyk7CisgICAgaWYgKCFvaykgeworICAgICAgICBnb3RvIGZhaWw7CisgICAgfQorCisgICAgb2sgPSBwc2FzaW1fZGVzZXJpYWxpc2VfYnVmZmVyKAorICAgICAgICAmcG9zLCAmcmVtYWluaW5nLAorICAgICAgICAmaW5wdXQsICZpbnB1dF9sZW5ndGgpOworICAgIGlmICghb2spIHsKKyAgICAgICAgZ290byBmYWlsOworICAgIH0KKworICAgIG9rID0gcHNhc2ltX2Rlc2VyaWFsaXNlX2J1ZmZlcigKKyAgICAgICAgJnBvcywgJnJlbWFpbmluZywKKyAgICAgICAgJnNpZ25hdHVyZSwgJnNpZ25hdHVyZV9sZW5ndGgpOworICAgIGlmICghb2spIHsKKyAgICAgICAgZ290byBmYWlsOworICAgIH0KKworICAgIC8vIE5vdyB3ZSBjYWxsIHRoZSBhY3R1YWwgdGFyZ2V0IGZ1bmN0aW9uCisKKyAgICBzdGF0dXMgPSBwc2FfdmVyaWZ5X21lc3NhZ2UoCisgICAgICAgIGtleSwKKyAgICAgICAgYWxnLAorICAgICAgICBpbnB1dCwgaW5wdXRfbGVuZ3RoLAorICAgICAgICBzaWduYXR1cmUsIHNpZ25hdHVyZV9sZW5ndGgKKyAgICAgICAgKTsKKworICAgIC8vIE5PVEU6IFNob3VsZCByZWFsbHkgY2hlY2sgdGhlcmUgaXMgbm8gb3ZlcmZsb3cgYXMgd2UgZ28gYWxvbmcuCisgICAgc2l6ZV90IHJlc3VsdF9zaXplID0KKyAgICAgICAgcHNhc2ltX3NlcmlhbGlzZV9iZWdpbl9uZWVkcygpICsKKyAgICAgICAgcHNhc2ltX3NlcmlhbGlzZV9wc2Ffc3RhdHVzX3RfbmVlZHMoc3RhdHVzKTsKKworICAgIHJlc3VsdCA9IG1hbGxvYyhyZXN1bHRfc2l6ZSk7CisgICAgaWYgKHJlc3VsdCA9PSBOVUxMKSB7CisgICAgICAgIGdvdG8gZmFpbDsKKyAgICB9CisKKyAgICB1aW50OF90ICpycG9zID0gcmVzdWx0OworICAgIHNpemVfdCBycmVtYWluID0gcmVzdWx0X3NpemU7CisKKyAgICBvayA9IHBzYXNpbV9zZXJpYWxpc2VfYmVnaW4oJnJwb3MsICZycmVtYWluKTsKKyAgICBpZiAoIW9rKSB7CisgICAgICAgIGdvdG8gZmFpbDsKKyAgICB9CisKKyAgICBvayA9IHBzYXNpbV9zZXJpYWxpc2VfcHNhX3N0YXR1c190KAorICAgICAgICAmcnBvcywgJnJyZW1haW4sCisgICAgICAgIHN0YXR1cyk7CisgICAgaWYgKCFvaykgeworICAgICAgICBnb3RvIGZhaWw7CisgICAgfQorCisgICAgKm91dF9wYXJhbXMgPSByZXN1bHQ7CisgICAgKm91dF9wYXJhbXNfbGVuID0gcmVzdWx0X3NpemU7CisKKyAgICBmcmVlKGlucHV0KTsKKyAgICBmcmVlKHNpZ25hdHVyZSk7CisKKyAgICByZXR1cm4gMTsgICAvLyBzdWNjZXNzCisKK2ZhaWw6CisgICAgZnJlZShyZXN1bHQpOworCisgICAgZnJlZShpbnB1dCk7CisgICAgZnJlZShzaWduYXR1cmUpOworCisgICAgcmV0dXJuIDA7ICAgICAgIC8vIFRoaXMgc2hvdWxkbid0IGhhcHBlbiEKK30KKwogcHNhX3N0YXR1c190IHBzYV9jcnlwdG9fY2FsbChwc2FfbXNnX3QgbXNnKQogewogICAgIGludCBvayA9IDA7CkBAIC0yMjQ4LDEwICs3NjQ4LDc4IEBACiAgICAgICAgICAgICBvayA9IHBzYV9hZWFkX3ZlcmlmeV93cmFwcGVyKGluX3BhcmFtcywgaW5fcGFyYW1zX2xlbiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJm91dF9wYXJhbXMsICZvdXRfcGFyYW1zX2xlbik7CiAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBQU0FfQVNZTU1FVFJJQ19ERUNSWVBUOgorICAgICAgICAgICAgb2sgPSBwc2FfYXN5bW1ldHJpY19kZWNyeXB0X3dyYXBwZXIoaW5fcGFyYW1zLCBpbl9wYXJhbXNfbGVuLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJm91dF9wYXJhbXMsICZvdXRfcGFyYW1zX2xlbik7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBQU0FfQVNZTU1FVFJJQ19FTkNSWVBUOgorICAgICAgICAgICAgb2sgPSBwc2FfYXN5bW1ldHJpY19lbmNyeXB0X3dyYXBwZXIoaW5fcGFyYW1zLCBpbl9wYXJhbXNfbGVuLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJm91dF9wYXJhbXMsICZvdXRfcGFyYW1zX2xlbik7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBQU0FfQ0lQSEVSX0FCT1JUOgorICAgICAgICAgICAgb2sgPSBwc2FfY2lwaGVyX2Fib3J0X3dyYXBwZXIoaW5fcGFyYW1zLCBpbl9wYXJhbXNfbGVuLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJm91dF9wYXJhbXMsICZvdXRfcGFyYW1zX2xlbik7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBQU0FfQ0lQSEVSX0RFQ1JZUFQ6CisgICAgICAgICAgICBvayA9IHBzYV9jaXBoZXJfZGVjcnlwdF93cmFwcGVyKGluX3BhcmFtcywgaW5fcGFyYW1zX2xlbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJm91dF9wYXJhbXMsICZvdXRfcGFyYW1zX2xlbik7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBQU0FfQ0lQSEVSX0RFQ1JZUFRfU0VUVVA6CisgICAgICAgICAgICBvayA9IHBzYV9jaXBoZXJfZGVjcnlwdF9zZXR1cF93cmFwcGVyKGluX3BhcmFtcywgaW5fcGFyYW1zX2xlbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJm91dF9wYXJhbXMsICZvdXRfcGFyYW1zX2xlbik7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBQU0FfQ0lQSEVSX0VOQ1JZUFQ6CisgICAgICAgICAgICBvayA9IHBzYV9jaXBoZXJfZW5jcnlwdF93cmFwcGVyKGluX3BhcmFtcywgaW5fcGFyYW1zX2xlbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJm91dF9wYXJhbXMsICZvdXRfcGFyYW1zX2xlbik7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBQU0FfQ0lQSEVSX0VOQ1JZUFRfU0VUVVA6CisgICAgICAgICAgICBvayA9IHBzYV9jaXBoZXJfZW5jcnlwdF9zZXR1cF93cmFwcGVyKGluX3BhcmFtcywgaW5fcGFyYW1zX2xlbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJm91dF9wYXJhbXMsICZvdXRfcGFyYW1zX2xlbik7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBQU0FfQ0lQSEVSX0ZJTklTSDoKKyAgICAgICAgICAgIG9rID0gcHNhX2NpcGhlcl9maW5pc2hfd3JhcHBlcihpbl9wYXJhbXMsIGluX3BhcmFtc19sZW4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJm91dF9wYXJhbXMsICZvdXRfcGFyYW1zX2xlbik7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBQU0FfQ0lQSEVSX0dFTkVSQVRFX0lWOgorICAgICAgICAgICAgb2sgPSBwc2FfY2lwaGVyX2dlbmVyYXRlX2l2X3dyYXBwZXIoaW5fcGFyYW1zLCBpbl9wYXJhbXNfbGVuLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJm91dF9wYXJhbXMsICZvdXRfcGFyYW1zX2xlbik7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBQU0FfQ0lQSEVSX1NFVF9JVjoKKyAgICAgICAgICAgIG9rID0gcHNhX2NpcGhlcl9zZXRfaXZfd3JhcHBlcihpbl9wYXJhbXMsIGluX3BhcmFtc19sZW4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJm91dF9wYXJhbXMsICZvdXRfcGFyYW1zX2xlbik7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBQU0FfQ0lQSEVSX1VQREFURToKKyAgICAgICAgICAgIG9rID0gcHNhX2NpcGhlcl91cGRhdGVfd3JhcHBlcihpbl9wYXJhbXMsIGluX3BhcmFtc19sZW4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJm91dF9wYXJhbXMsICZvdXRfcGFyYW1zX2xlbik7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBQU0FfQ09QWV9LRVk6CisgICAgICAgICAgICBvayA9IHBzYV9jb3B5X2tleV93cmFwcGVyKGluX3BhcmFtcywgaW5fcGFyYW1zX2xlbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJm91dF9wYXJhbXMsICZvdXRfcGFyYW1zX2xlbik7CisgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBQU0FfREVTVFJPWV9LRVk6CiAgICAgICAgICAgICBvayA9IHBzYV9kZXN0cm95X2tleV93cmFwcGVyKGluX3BhcmFtcywgaW5fcGFyYW1zX2xlbiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJm91dF9wYXJhbXMsICZvdXRfcGFyYW1zX2xlbik7CiAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBQU0FfRVhQT1JUX0tFWToKKyAgICAgICAgICAgIG9rID0gcHNhX2V4cG9ydF9rZXlfd3JhcHBlcihpbl9wYXJhbXMsIGluX3BhcmFtc19sZW4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJm91dF9wYXJhbXMsICZvdXRfcGFyYW1zX2xlbik7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBQU0FfRVhQT1JUX1BVQkxJQ19LRVk6CisgICAgICAgICAgICBvayA9IHBzYV9leHBvcnRfcHVibGljX2tleV93cmFwcGVyKGluX3BhcmFtcywgaW5fcGFyYW1zX2xlbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJm91dF9wYXJhbXMsICZvdXRfcGFyYW1zX2xlbik7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBQU0FfR0VORVJBVEVfS0VZOgorICAgICAgICAgICAgb2sgPSBwc2FfZ2VuZXJhdGVfa2V5X3dyYXBwZXIoaW5fcGFyYW1zLCBpbl9wYXJhbXNfbGVuLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJm91dF9wYXJhbXMsICZvdXRfcGFyYW1zX2xlbik7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBQU0FfR0VORVJBVEVfS0VZX0VYVDoKKyAgICAgICAgICAgIG9rID0gcHNhX2dlbmVyYXRlX2tleV9leHRfd3JhcHBlcihpbl9wYXJhbXMsIGluX3BhcmFtc19sZW4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJm91dF9wYXJhbXMsICZvdXRfcGFyYW1zX2xlbik7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBQU0FfR0VORVJBVEVfUkFORE9NOgorICAgICAgICAgICAgb2sgPSBwc2FfZ2VuZXJhdGVfcmFuZG9tX3dyYXBwZXIoaW5fcGFyYW1zLCBpbl9wYXJhbXNfbGVuLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJm91dF9wYXJhbXMsICZvdXRfcGFyYW1zX2xlbik7CisgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBQU0FfR0VUX0tFWV9BVFRSSUJVVEVTOgogICAgICAgICAgICAgb2sgPSBwc2FfZ2V0X2tleV9hdHRyaWJ1dGVzX3dyYXBwZXIoaW5fcGFyYW1zLCBpbl9wYXJhbXNfbGVuLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJm91dF9wYXJhbXMsICZvdXRfcGFyYW1zX2xlbik7CkBAIC0yMjkyLDYgKzc3NjAsMTUwIEBACiAgICAgICAgICAgICBvayA9IHBzYV9pbXBvcnRfa2V5X3dyYXBwZXIoaW5fcGFyYW1zLCBpbl9wYXJhbXNfbGVuLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZvdXRfcGFyYW1zLCAmb3V0X3BhcmFtc19sZW4pOwogICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgUFNBX0lOVEVSUlVQVElCTEVfR0VUX01BWF9PUFM6CisgICAgICAgICAgICBvayA9IHBzYV9pbnRlcnJ1cHRpYmxlX2dldF9tYXhfb3BzX3dyYXBwZXIoaW5fcGFyYW1zLCBpbl9wYXJhbXNfbGVuLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZvdXRfcGFyYW1zLCAmb3V0X3BhcmFtc19sZW4pOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgUFNBX0lOVEVSUlVQVElCTEVfU0VUX01BWF9PUFM6CisgICAgICAgICAgICBvayA9IHBzYV9pbnRlcnJ1cHRpYmxlX3NldF9tYXhfb3BzX3dyYXBwZXIoaW5fcGFyYW1zLCBpbl9wYXJhbXNfbGVuLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZvdXRfcGFyYW1zLCAmb3V0X3BhcmFtc19sZW4pOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgUFNBX0tFWV9ERVJJVkFUSU9OX0FCT1JUOgorICAgICAgICAgICAgb2sgPSBwc2Ffa2V5X2Rlcml2YXRpb25fYWJvcnRfd3JhcHBlcihpbl9wYXJhbXMsIGluX3BhcmFtc19sZW4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZvdXRfcGFyYW1zLCAmb3V0X3BhcmFtc19sZW4pOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgUFNBX0tFWV9ERVJJVkFUSU9OX0dFVF9DQVBBQ0lUWToKKyAgICAgICAgICAgIG9rID0gcHNhX2tleV9kZXJpdmF0aW9uX2dldF9jYXBhY2l0eV93cmFwcGVyKGluX3BhcmFtcywgaW5fcGFyYW1zX2xlbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZvdXRfcGFyYW1zLCAmb3V0X3BhcmFtc19sZW4pOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgUFNBX0tFWV9ERVJJVkFUSU9OX0lOUFVUX0JZVEVTOgorICAgICAgICAgICAgb2sgPSBwc2Ffa2V5X2Rlcml2YXRpb25faW5wdXRfYnl0ZXNfd3JhcHBlcihpbl9wYXJhbXMsIGluX3BhcmFtc19sZW4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZvdXRfcGFyYW1zLCAmb3V0X3BhcmFtc19sZW4pOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgUFNBX0tFWV9ERVJJVkFUSU9OX0lOUFVUX0lOVEVHRVI6CisgICAgICAgICAgICBvayA9IHBzYV9rZXlfZGVyaXZhdGlvbl9pbnB1dF9pbnRlZ2VyX3dyYXBwZXIoaW5fcGFyYW1zLCBpbl9wYXJhbXNfbGVuLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZvdXRfcGFyYW1zLCAmb3V0X3BhcmFtc19sZW4pOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgUFNBX0tFWV9ERVJJVkFUSU9OX0lOUFVUX0tFWToKKyAgICAgICAgICAgIG9rID0gcHNhX2tleV9kZXJpdmF0aW9uX2lucHV0X2tleV93cmFwcGVyKGluX3BhcmFtcywgaW5fcGFyYW1zX2xlbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZvdXRfcGFyYW1zLCAmb3V0X3BhcmFtc19sZW4pOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgUFNBX0tFWV9ERVJJVkFUSU9OX0tFWV9BR1JFRU1FTlQ6CisgICAgICAgICAgICBvayA9IHBzYV9rZXlfZGVyaXZhdGlvbl9rZXlfYWdyZWVtZW50X3dyYXBwZXIoaW5fcGFyYW1zLCBpbl9wYXJhbXNfbGVuLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZvdXRfcGFyYW1zLCAmb3V0X3BhcmFtc19sZW4pOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgUFNBX0tFWV9ERVJJVkFUSU9OX09VVFBVVF9CWVRFUzoKKyAgICAgICAgICAgIG9rID0gcHNhX2tleV9kZXJpdmF0aW9uX291dHB1dF9ieXRlc193cmFwcGVyKGluX3BhcmFtcywgaW5fcGFyYW1zX2xlbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZvdXRfcGFyYW1zLCAmb3V0X3BhcmFtc19sZW4pOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgUFNBX0tFWV9ERVJJVkFUSU9OX09VVFBVVF9LRVk6CisgICAgICAgICAgICBvayA9IHBzYV9rZXlfZGVyaXZhdGlvbl9vdXRwdXRfa2V5X3dyYXBwZXIoaW5fcGFyYW1zLCBpbl9wYXJhbXNfbGVuLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZvdXRfcGFyYW1zLCAmb3V0X3BhcmFtc19sZW4pOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgUFNBX0tFWV9ERVJJVkFUSU9OX09VVFBVVF9LRVlfRVhUOgorICAgICAgICAgICAgb2sgPSBwc2Ffa2V5X2Rlcml2YXRpb25fb3V0cHV0X2tleV9leHRfd3JhcHBlcihpbl9wYXJhbXMsIGluX3BhcmFtc19sZW4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZvdXRfcGFyYW1zLCAmb3V0X3BhcmFtc19sZW4pOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgUFNBX0tFWV9ERVJJVkFUSU9OX1NFVF9DQVBBQ0lUWToKKyAgICAgICAgICAgIG9rID0gcHNhX2tleV9kZXJpdmF0aW9uX3NldF9jYXBhY2l0eV93cmFwcGVyKGluX3BhcmFtcywgaW5fcGFyYW1zX2xlbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZvdXRfcGFyYW1zLCAmb3V0X3BhcmFtc19sZW4pOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgUFNBX0tFWV9ERVJJVkFUSU9OX1NFVFVQOgorICAgICAgICAgICAgb2sgPSBwc2Ffa2V5X2Rlcml2YXRpb25fc2V0dXBfd3JhcHBlcihpbl9wYXJhbXMsIGluX3BhcmFtc19sZW4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZvdXRfcGFyYW1zLCAmb3V0X3BhcmFtc19sZW4pOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgUFNBX01BQ19BQk9SVDoKKyAgICAgICAgICAgIG9rID0gcHNhX21hY19hYm9ydF93cmFwcGVyKGluX3BhcmFtcywgaW5fcGFyYW1zX2xlbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZvdXRfcGFyYW1zLCAmb3V0X3BhcmFtc19sZW4pOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgUFNBX01BQ19DT01QVVRFOgorICAgICAgICAgICAgb2sgPSBwc2FfbWFjX2NvbXB1dGVfd3JhcHBlcihpbl9wYXJhbXMsIGluX3BhcmFtc19sZW4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZvdXRfcGFyYW1zLCAmb3V0X3BhcmFtc19sZW4pOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgUFNBX01BQ19TSUdOX0ZJTklTSDoKKyAgICAgICAgICAgIG9rID0gcHNhX21hY19zaWduX2ZpbmlzaF93cmFwcGVyKGluX3BhcmFtcywgaW5fcGFyYW1zX2xlbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZvdXRfcGFyYW1zLCAmb3V0X3BhcmFtc19sZW4pOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgUFNBX01BQ19TSUdOX1NFVFVQOgorICAgICAgICAgICAgb2sgPSBwc2FfbWFjX3NpZ25fc2V0dXBfd3JhcHBlcihpbl9wYXJhbXMsIGluX3BhcmFtc19sZW4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZvdXRfcGFyYW1zLCAmb3V0X3BhcmFtc19sZW4pOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgUFNBX01BQ19VUERBVEU6CisgICAgICAgICAgICBvayA9IHBzYV9tYWNfdXBkYXRlX3dyYXBwZXIoaW5fcGFyYW1zLCBpbl9wYXJhbXNfbGVuLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZvdXRfcGFyYW1zLCAmb3V0X3BhcmFtc19sZW4pOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgUFNBX01BQ19WRVJJRlk6CisgICAgICAgICAgICBvayA9IHBzYV9tYWNfdmVyaWZ5X3dyYXBwZXIoaW5fcGFyYW1zLCBpbl9wYXJhbXNfbGVuLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZvdXRfcGFyYW1zLCAmb3V0X3BhcmFtc19sZW4pOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgUFNBX01BQ19WRVJJRllfRklOSVNIOgorICAgICAgICAgICAgb2sgPSBwc2FfbWFjX3ZlcmlmeV9maW5pc2hfd3JhcHBlcihpbl9wYXJhbXMsIGluX3BhcmFtc19sZW4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZvdXRfcGFyYW1zLCAmb3V0X3BhcmFtc19sZW4pOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgUFNBX01BQ19WRVJJRllfU0VUVVA6CisgICAgICAgICAgICBvayA9IHBzYV9tYWNfdmVyaWZ5X3NldHVwX3dyYXBwZXIoaW5fcGFyYW1zLCBpbl9wYXJhbXNfbGVuLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZvdXRfcGFyYW1zLCAmb3V0X3BhcmFtc19sZW4pOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgUFNBX1BVUkdFX0tFWToKKyAgICAgICAgICAgIG9rID0gcHNhX3B1cmdlX2tleV93cmFwcGVyKGluX3BhcmFtcywgaW5fcGFyYW1zX2xlbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZvdXRfcGFyYW1zLCAmb3V0X3BhcmFtc19sZW4pOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgUFNBX1JBV19LRVlfQUdSRUVNRU5UOgorICAgICAgICAgICAgb2sgPSBwc2FfcmF3X2tleV9hZ3JlZW1lbnRfd3JhcHBlcihpbl9wYXJhbXMsIGluX3BhcmFtc19sZW4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZvdXRfcGFyYW1zLCAmb3V0X3BhcmFtc19sZW4pOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgUFNBX1JFU0VUX0tFWV9BVFRSSUJVVEVTOgorICAgICAgICAgICAgb2sgPSBwc2FfcmVzZXRfa2V5X2F0dHJpYnV0ZXNfd3JhcHBlcihpbl9wYXJhbXMsIGluX3BhcmFtc19sZW4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZvdXRfcGFyYW1zLCAmb3V0X3BhcmFtc19sZW4pOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgUFNBX1NJR05fSEFTSDoKKyAgICAgICAgICAgIG9rID0gcHNhX3NpZ25faGFzaF93cmFwcGVyKGluX3BhcmFtcywgaW5fcGFyYW1zX2xlbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZvdXRfcGFyYW1zLCAmb3V0X3BhcmFtc19sZW4pOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgUFNBX1NJR05fSEFTSF9BQk9SVDoKKyAgICAgICAgICAgIG9rID0gcHNhX3NpZ25faGFzaF9hYm9ydF93cmFwcGVyKGluX3BhcmFtcywgaW5fcGFyYW1zX2xlbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZvdXRfcGFyYW1zLCAmb3V0X3BhcmFtc19sZW4pOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgUFNBX1NJR05fSEFTSF9DT01QTEVURToKKyAgICAgICAgICAgIG9rID0gcHNhX3NpZ25faGFzaF9jb21wbGV0ZV93cmFwcGVyKGluX3BhcmFtcywgaW5fcGFyYW1zX2xlbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZvdXRfcGFyYW1zLCAmb3V0X3BhcmFtc19sZW4pOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgUFNBX1NJR05fSEFTSF9HRVRfTlVNX09QUzoKKyAgICAgICAgICAgIG9rID0gcHNhX3NpZ25faGFzaF9nZXRfbnVtX29wc193cmFwcGVyKGluX3BhcmFtcywgaW5fcGFyYW1zX2xlbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZvdXRfcGFyYW1zLCAmb3V0X3BhcmFtc19sZW4pOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgUFNBX1NJR05fSEFTSF9TVEFSVDoKKyAgICAgICAgICAgIG9rID0gcHNhX3NpZ25faGFzaF9zdGFydF93cmFwcGVyKGluX3BhcmFtcywgaW5fcGFyYW1zX2xlbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZvdXRfcGFyYW1zLCAmb3V0X3BhcmFtc19sZW4pOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgUFNBX1NJR05fTUVTU0FHRToKKyAgICAgICAgICAgIG9rID0gcHNhX3NpZ25fbWVzc2FnZV93cmFwcGVyKGluX3BhcmFtcywgaW5fcGFyYW1zX2xlbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZvdXRfcGFyYW1zLCAmb3V0X3BhcmFtc19sZW4pOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgUFNBX1ZFUklGWV9IQVNIOgorICAgICAgICAgICAgb2sgPSBwc2FfdmVyaWZ5X2hhc2hfd3JhcHBlcihpbl9wYXJhbXMsIGluX3BhcmFtc19sZW4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZvdXRfcGFyYW1zLCAmb3V0X3BhcmFtc19sZW4pOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgUFNBX1ZFUklGWV9IQVNIX0FCT1JUOgorICAgICAgICAgICAgb2sgPSBwc2FfdmVyaWZ5X2hhc2hfYWJvcnRfd3JhcHBlcihpbl9wYXJhbXMsIGluX3BhcmFtc19sZW4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZvdXRfcGFyYW1zLCAmb3V0X3BhcmFtc19sZW4pOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgUFNBX1ZFUklGWV9IQVNIX0NPTVBMRVRFOgorICAgICAgICAgICAgb2sgPSBwc2FfdmVyaWZ5X2hhc2hfY29tcGxldGVfd3JhcHBlcihpbl9wYXJhbXMsIGluX3BhcmFtc19sZW4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZvdXRfcGFyYW1zLCAmb3V0X3BhcmFtc19sZW4pOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgUFNBX1ZFUklGWV9IQVNIX0dFVF9OVU1fT1BTOgorICAgICAgICAgICAgb2sgPSBwc2FfdmVyaWZ5X2hhc2hfZ2V0X251bV9vcHNfd3JhcHBlcihpbl9wYXJhbXMsIGluX3BhcmFtc19sZW4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZvdXRfcGFyYW1zLCAmb3V0X3BhcmFtc19sZW4pOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgUFNBX1ZFUklGWV9IQVNIX1NUQVJUOgorICAgICAgICAgICAgb2sgPSBwc2FfdmVyaWZ5X2hhc2hfc3RhcnRfd3JhcHBlcihpbl9wYXJhbXMsIGluX3BhcmFtc19sZW4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZvdXRfcGFyYW1zLCAmb3V0X3BhcmFtc19sZW4pOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgUFNBX1ZFUklGWV9NRVNTQUdFOgorICAgICAgICAgICAgb2sgPSBwc2FfdmVyaWZ5X21lc3NhZ2Vfd3JhcHBlcihpbl9wYXJhbXMsIGluX3BhcmFtc19sZW4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZvdXRfcGFyYW1zLCAmb3V0X3BhcmFtc19sZW4pOworICAgICAgICAgICAgYnJlYWs7CiAgICAgfQogCiAgICAgZnJlZShpbl9wYXJhbXMpOwpkaWZmIC0tZ2l0IGEvdGVzdHMvcHNhLWNsaWVudC1zZXJ2ZXIvcHNhc2ltL3NyYy9wc2Ffc2ltX2dlbmVyYXRlLnBsIGIvdGVzdHMvcHNhLWNsaWVudC1zZXJ2ZXIvcHNhc2ltL3NyYy9wc2Ffc2ltX2dlbmVyYXRlLnBsCmluZGV4IDQzZGUxZGIuLmRkMmZlOWUgMTAwNzU1Ci0tLSBhL3Rlc3RzL3BzYS1jbGllbnQtc2VydmVyL3BzYXNpbS9zcmMvcHNhX3NpbV9nZW5lcmF0ZS5wbAorKysgYi90ZXN0cy9wc2EtY2xpZW50LXNlcnZlci9wc2FzaW0vc3JjL3BzYV9zaW1fZ2VuZXJhdGUucGwKQEAgLTE4LDYgKzE4LDE2IEBACiBteSAlZnVuY3Rpb25zID0gZ2V0X2Z1bmN0aW9ucygpOwogbXkgQGZ1bmN0aW9ucyA9IHNvcnQga2V5cyAlZnVuY3Rpb25zOwogCisjIFdlIGRvbid0IHdhbnQgdGhlc2UgZnVuY3Rpb25zIChlLmcuIGJlY2F1c2UgdGhleSBhcmUgbm90IGltcGxlbWVudGVkLCBldGMpCitteSBAc2tpcF9mdW5jdGlvbnMgPSBxdygKKyAgICBwc2Ffa2V5X2Rlcml2YXRpb25fdmVyaWZ5X2J5dGVzCisgICAgcHNhX2tleV9kZXJpdmF0aW9uX3ZlcmlmeV9rZXkKKyk7CisKKyMgUmVtb3ZlIEBza2lwX2Z1bmN0aW9ucyBmcm9tIEBmdW5jdGlvbnMKK215ICVza2lwX2Z1bmN0aW9ucyA9IG1hcCB7ICRfID0+IDEgfSBAc2tpcF9mdW5jdGlvbnM7CitAZnVuY3Rpb25zID0gZ3JlcCghZXhpc3RzKCRza2lwX2Z1bmN0aW9uc3skX30pLCBAZnVuY3Rpb25zKTsKKwogIyBnZXRfZnVuY3Rpb25zKCksIGNhbGxlZCBhYm92ZSwgcmV0dXJucyBhIGRhdGEgc3RydWN0dXJlIGZvciBlYWNoIGZ1bmN0aW9uCiAjIHRoYXQgd2UgbmVlZCB0byBjcmVhdGUgY2xpZW50IGFuZCBzZXJ2ZXIgc3R1YnMgZm9yLiBJbiB0aGlzIGV4YW1wbGUgUGVybCBzY3JpcHQsCiAjIHRoZSBmdW5jdGlvbiBkZWNsYXJhdGlvbnMgd2Ugd2FudCBhcmUgaW4gdGhlIGRhdGEgc2VjdGlvbiAoYWZ0ZXIgX19FTkRfXyBhdApAQCAtMzM5LDcgKzM0OSw3IEBACiAgICAgaW52ZWMuYmFzZSA9IGluX3BhcmFtczsKICAgICBpbnZlYy5sZW4gPSBpbl9wYXJhbXNfbGVuOwogCi0gICAgc2l6ZV90IG1heF9yZWNlaXZlID0gODE5MjsKKyAgICBzaXplX3QgbWF4X3JlY2VpdmUgPSAyNDU3NjsKICAgICB1aW50OF90ICpyZWNlaXZlID0gbWFsbG9jKG1heF9yZWNlaXZlKTsKICAgICBpZiAocmVjZWl2ZSA9PSBOVUxMKSB7CiAgICAgICAgIGZwcmludGYoc3RkZXJyLCAiRkFJTEVEIHRvIGFsbG9jYXRlICV1IGJ5dGVzXG4iLCAodW5zaWduZWQpIG1heF9yZWNlaXZlKTsKQEAgLTQxNCw2ICs0MjQsMTEgQEAKIAogdm9pZCBtYmVkdGxzX3BzYV9jcnlwdG9fZnJlZSh2b2lkKQogeworICAgIC8qIERvIG5vdCB0cnkgdG8gY2xvc2UgYSBjb25uZWN0aW9uIHRoYXQgd2FzIG5ldmVyIHN0YXJ0ZWQuKi8KKyAgICBpZiAoaGFuZGxlID09IC0xKSB7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKICAgICBDTElFTlRfUFJJTlQoIkNsb3NpbmcgaGFuZGxlIik7CiAgICAgcHNhX2Nsb3NlKGhhbmRsZSk7CiAgICAgaGFuZGxlID0gLTE7CkBAIC01MTksNiArNTM0LDkgQEAKICAgICB1aW50OF90ICppbl9wYXJhbXMsIHNpemVfdCBpbl9wYXJhbXNfbGVuLAogICAgIHVpbnQ4X3QgKipvdXRfcGFyYW1zLCBzaXplX3QgKm91dF9wYXJhbXNfbGVuKQogeworRU9GCisKKyAgICBwcmludCAkZmggPDxFT0YgdW5sZXNzICRyZXRfdHlwZSBlcSAidm9pZCI7CiAgICAgJHJldF90eXBlICRyZXRfbmFtZSA9ICRyZXRfZGVmYXVsdDsKIEVPRgogICAgICMgT3V0cHV0IHRoZSB2YXJpYWJsZXMgd2Ugd2lsbCBuZWVkIHdoZW4gd2UgY2FsbCB0aGUgdGFyZ2V0IGZ1bmN0aW9uCkBAIC01MzgsNiArNTU2LDEzIEBACiAgICAgc2l6ZV90ICRuMjsKIEVPRgogICAgICAgICAgICAgcHVzaChAYnVmZmVycywgJG4xKTsgICAgICAgICMgQWRkIHRvIHRoZSBsaXN0IHRvIGJlIGZyZWUoKWQgYXQgZW5kCisgICAgICAgIH0gZWxzaWYgKCRhcmd0eXBlID1+IC9eKGNvbnN0ICk/cHNhX2tleV9wcm9kdWN0aW9uX3BhcmFtZXRlcnNfdCQvKSB7CisgICAgICAgICAgICBteSAoJG4xLCAkbjIpID0gc3BsaXQoLyxccyovLCAkYXJnbmFtZSk7CisgICAgICAgICAgICBwcmludCAkZmggPDxFT0Y7CisgICAgcHNhX2tleV9wcm9kdWN0aW9uX3BhcmFtZXRlcnNfdCAqJG4xID0gTlVMTDsKKyAgICBzaXplX3QgJG4yOworRU9GCisgICAgICAgICAgICBwdXNoKEBidWZmZXJzLCAkbjEpOyAgICAgICAgIyBBZGQgdG8gdGhlIGxpc3QgdG8gYmUgZnJlZSgpZCBhdCBlbmQKICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICRhcmduYW1lID1+IHMvXlwqLy87ICAgICAgICAjIFJlbW92ZSBhbnkgbGVhZGluZyAqCiAgICAgICAgICAgICBteSAkcG9pbnRlciA9ICgkYXJndHlwZSA9fiAvXnBzYV9cdytfb3BlcmF0aW9uX3QvKSA/ICIqIiA6ICIiOwpAQCAtNTg2LDcgKzYxMSwyMCBAQAogICAgICAgICAgICAgbXkgKCRuMSwgJG4yKSA9IHNwbGl0KC8sXHMqLywgJGFyZ25hbWUpOwogICAgICAgICAgICAgcHJpbnQgJGZoIDw8RU9GOwogCi0gICAgb2sgPSBwc2FzaW1fZGVzZXJpYWxpc2VfJHthcmd0eXBlfSgmcG9zLCAmcmVtYWluaW5nLCAmJG4xLCAmJG4yKTsKKyAgICBvayA9IHBzYXNpbV9kZXNlcmlhbGlzZV8ke2FyZ3R5cGV9KAorICAgICAgICAmcG9zLCAmcmVtYWluaW5nLAorICAgICAgICAmJG4xLCAmJG4yKTsKKyAgICBpZiAoIW9rKSB7CisgICAgICAgIGdvdG8gZmFpbDsKKyAgICB9CitFT0YKKyAgICAgICAgfSBlbHNpZiAoJGFyZ3R5cGUgPX4gL14oY29uc3QgKT9wc2Ffa2V5X3Byb2R1Y3Rpb25fcGFyYW1ldGVyc190JC8pIHsKKyAgICAgICAgICAgIG15ICgkbjEsICRuMikgPSBzcGxpdCgvLFxzKi8sICRhcmduYW1lKTsKKyAgICAgICAgICAgIHByaW50ICRmaCA8PEVPRjsKKworICAgIG9rID0gcHNhc2ltX2Rlc2VyaWFsaXNlXyR7YXJndHlwZX0oCisgICAgICAgICZwb3MsICZyZW1haW5pbmcsCisgICAgICAgICYkbjEsICYkbjIpOwogICAgIGlmICghb2spIHsKICAgICAgICAgZ290byBmYWlsOwogICAgIH0KQEAgLTU5Niw3ICs2MzQsOSBAQAogICAgICAgICAgICAgbXkgJHNlcnZlcl9zcGVjaWZpYyA9ICgkYXJndHlwZSA9fiAvXnBzYV9cdytfb3BlcmF0aW9uX3QvKSA/ICJzZXJ2ZXJfIiA6ICIiOwogICAgICAgICAgICAgcHJpbnQgJGZoIDw8RU9GOwogCi0gICAgb2sgPSBwc2FzaW1fJHtzZXJ2ZXJfc3BlY2lmaWN9ZGVzZXJpYWxpc2VfJHthcmd0eXBlfSgmcG9zLCAmcmVtYWluaW5nLCAmJGFyZ25hbWUpOworICAgIG9rID0gcHNhc2ltXyR7c2VydmVyX3NwZWNpZmljfWRlc2VyaWFsaXNlXyR7YXJndHlwZX0oCisgICAgICAgICZwb3MsICZyZW1haW5pbmcsCisgICAgICAgICYkYXJnbmFtZSk7CiAgICAgaWYgKCFvaykgewogICAgICAgICBnb3RvIGZhaWw7CiAgICAgfQpAQCAtNjEyLDcgKzY1Miw3IEBACiAKICAgICBteSBAb3V0cHV0cyA9IGdyZXAoJF8tPntpc19vdXRwdXR9LCBAJGFyZ3MpOwogCi0gICAgbXkgJHNlcDEgPSAoJHJldF90eXBlIGVxICJ2b2lkIikgPyAiOyIgOiAiICsiOworICAgIG15ICRzZXAxID0gKCgkcmV0X3R5cGUgZXEgInZvaWQiKSBhbmQgKCQjb3V0cHV0cyA8IDApKSA/ICI7IiA6ICIgKyI7CiAKICAgICBwcmludCAkZmggPDxFT0Y7CiAKQEAgLTY2Miw3ICs3MDIsOSBAQAogICAgIGlmICgkcmV0X3R5cGUgbmUgInZvaWQiKSB7CiAgICAgICAgIHByaW50ICRmaCA8PEVPRjsKIAotICAgIG9rID0gcHNhc2ltX3NlcmlhbGlzZV8ke3JldF90eXBlfSgmcnBvcywgJnJyZW1haW4sICRyZXRfbmFtZSk7CisgICAgb2sgPSBwc2FzaW1fc2VyaWFsaXNlXyR7cmV0X3R5cGV9KAorICAgICAgICAmcnBvcywgJnJyZW1haW4sCisgICAgICAgICRyZXRfbmFtZSk7CiAgICAgaWYgKCFvaykgewogICAgICAgICBnb3RvIGZhaWw7CiAgICAgfQpAQCAtNjgyLDcgKzcyNCwxOSBAQAogICAgICAgICBpZiAoJGFyZ3R5cGUgZXEgImJ1ZmZlciIpIHsKICAgICAgICAgICAgIHByaW50ICRmaCA8PEVPRjsKIAotICAgIG9rID0gcHNhc2ltX3NlcmlhbGlzZV9idWZmZXIoJnJwb3MsICZycmVtYWluLCAkYXJnbmFtZSk7CisgICAgb2sgPSBwc2FzaW1fc2VyaWFsaXNlX2J1ZmZlcigKKyAgICAgICAgJnJwb3MsICZycmVtYWluLAorICAgICAgICAkYXJnbmFtZSk7CisgICAgaWYgKCFvaykgeworICAgICAgICBnb3RvIGZhaWw7CisgICAgfQorRU9GCisgICAgICAgIH0gZWxzaWYgKCRhcmd0eXBlIGVxICJwc2Ffa2V5X3Byb2R1Y3Rpb25fcGFyYW1ldGVyc190IikgeworICAgICAgICAgICAgcHJpbnQgJGZoIDw8RU9GOworCisgICAgb2sgPSBwc2FzaW1fc2VyaWFsaXNlX3BzYV9rZXlfcHJvZHVjdGlvbl9wYXJhbWV0ZXJzX3QoCisgICAgICAgICZycG9zLCAmcnJlbWFpbiwKKyAgICAgICAgJGFyZ25hbWUpOwogICAgIGlmICghb2spIHsKICAgICAgICAgZ290byBmYWlsOwogICAgIH0KQEAgLTY5Niw5ICs3NTAsMTkgQEAKIAogICAgICAgICAgICAgbXkgJHNlcnZlcl9zcGVjaWZpYyA9ICgkYXJndHlwZSA9fiAvXnBzYV9cdytfb3BlcmF0aW9uX3QvKSA/ICJzZXJ2ZXJfIiA6ICIiOwogCisgICAgICAgICAgICBteSAkY29tcGxldGVkID0gIiI7ICMgT25seSBuZWVkZWQgb24gc2VydmVyIHNlcmlhbGlzZSBjYWxscworICAgICAgICAgICAgaWYgKGxlbmd0aCgkc2VydmVyX3NwZWNpZmljKSkgeworICAgICAgICAgICAgICAgICMgT24gc2VydmVyIHNlcmlhbGlzYXRpb24sIHdoaWNoIGlzIG9ubHkgZm9yIG9wZXJhdGlvbiB0eXBlcywKKyAgICAgICAgICAgICAgICAjIHdlIG5lZWQgdG8gbWFyayB0aGUgb3BlcmF0aW9uIGFzIGNvbXBsZXRlZCAodmFyaW91c2x5IGNhbGxlZAorICAgICAgICAgICAgICAgICMgdGVybWluYXRlZCBvciBpbmFjdGl2ZSBpbiBwc2EvY3J5cHRvLmgpIG9uIGNlcnRhaW4gY2FsbHMuCisgICAgICAgICAgICAgICAgJGNvbXBsZXRlZCA9ICgkbmFtZSA9fiAvXyhhYm9ydHxmaW5pc2h8aGFzaF92ZXJpZnkpJC8pID8gIiwgMSIgOiAiLCAwIjsKKyAgICAgICAgICAgIH0KKwogICAgICAgICAgICAgcHJpbnQgJGZoIDw8RU9GOwogCi0gICAgb2sgPSBwc2FzaW1fJHtzZXJ2ZXJfc3BlY2lmaWN9c2VyaWFsaXNlXyR7YXJndHlwZX0oJnJwb3MsICZycmVtYWluLCAkYXJnbmFtZSk7CisgICAgb2sgPSBwc2FzaW1fJHtzZXJ2ZXJfc3BlY2lmaWN9c2VyaWFsaXNlXyR7YXJndHlwZX0oCisgICAgICAgICZycG9zLCAmcnJlbWFpbiwKKyAgICAgICAgJGFyZ25hbWUkY29tcGxldGVkKTsKICAgICBpZiAoIW9rKSB7CiAgICAgICAgIGdvdG8gZmFpbDsKICAgICB9CkBAIC03MzgsOSArODAyLDExIEBACiAKICAgICBwcmludCAkZmggPDxFT0Y7CiB7Ci0gICAgdWludDhfdCAqcGFyYW1zID0gTlVMTDsKLSAgICB1aW50OF90ICpyZXN1bHQgPSBOVUxMOworICAgIHVpbnQ4X3QgKnNlcl9wYXJhbXMgPSBOVUxMOworICAgIHVpbnQ4X3QgKnNlcl9yZXN1bHQgPSBOVUxMOwogICAgIHNpemVfdCByZXN1bHRfbGVuZ3RoOworRU9GCisgICAgcHJpbnQgJGZoIDw8RU9GIHVubGVzcyAkcmV0X3R5cGUgZXEgInZvaWQiOwogICAgICRyZXRfdHlwZSAkcmV0X25hbWUgPSAkcmV0X2RlZmF1bHQ7CiBFT0YKIApAQCAtNzUxLDcgKzgxNyw4IEBACiAKICAgICBwcmludCAkZmggPDxFT0Y7CiAKLSAgICBzaXplX3QgbmVlZGVkID0gcHNhc2ltX3NlcmlhbGlzZV9iZWdpbl9uZWVkcygpICsKKyAgICBzaXplX3QgbmVlZGVkID0KKyAgICAgICAgcHNhc2ltX3NlcmlhbGlzZV9iZWdpbl9uZWVkcygpICsKIEVPRgogCiAgICAgbXkgJGFyZ3MgPSAkZi0+e2FyZ3N9OwpAQCAtNzY0LDE5ICs4MzEsMzUgQEAKICAgICAgICAgJGFyZ3R5cGUgPX4gcy9eY29uc3QgLy87CiAKICAgICAgICAgcHJpbnQgJGZoIDw8RU9GOwotICAgICAgICAgICAgICAgICAgICBwc2FzaW1fc2VyaWFsaXNlXyR7YXJndHlwZX1fbmVlZHMoJGFyZ25hbWUpJHNlcAorICAgICAgICBwc2FzaW1fc2VyaWFsaXNlXyR7YXJndHlwZX1fbmVlZHMoJGFyZ25hbWUpJHNlcAorRU9GCisgICAgfQorCisgICAgcHJpbnQgJGZoIDw8RU9GIGlmICQjJGFyZ3MgPCAwOworICAgICAgICAwOworRU9GCisKKyAgICBwcmludCAkZmggPDxFT0Y7CisKKyAgICBzZXJfcGFyYW1zID0gbWFsbG9jKG5lZWRlZCk7CisgICAgaWYgKHNlcl9wYXJhbXMgPT0gTlVMTCkgeworRU9GCisKKyAgICBpZiAoJHJldF90eXBlIGVxICJwc2Ffc3RhdHVzX3QiKSB7CisgICAgICAgIHByaW50ICRmaCA8PEVPRiBpZiAkOworICAgICAgICAkcmV0X25hbWUgPSBQU0FfRVJST1JfSU5TVUZGSUNJRU5UX01FTU9SWTsKK0VPRgorICAgIH0gZWxzaWYgKCRyZXRfdHlwZSBlcSAidWludDMyX3QiKSB7CisgICAgICAgIHByaW50ICRmaCA8PEVPRiBpZiAkOworICAgICAgICAkcmV0X25hbWUgPSAwOwogRU9GCiAgICAgfQogCiAgICAgcHJpbnQgJGZoIDw8RU9GOwotCi0gICAgcGFyYW1zID0gbWFsbG9jKG5lZWRlZCk7Ci0gICAgaWYgKHBhcmFtcyA9PSBOVUxMKSB7Ci0gICAgICAgIHN0YXR1cyA9IFBTQV9FUlJPUl9JTlNVRkZJQ0lFTlRfTUVNT1JZOwogICAgICAgICBnb3RvIGZhaWw7CiAgICAgfQogCi0gICAgdWludDhfdCAqcG9zID0gcGFyYW1zOworICAgIHVpbnQ4X3QgKnBvcyA9IHNlcl9wYXJhbXM7CiAgICAgc2l6ZV90IHJlbWFpbmluZyA9IG5lZWRlZDsKICAgICBpbnQgb2s7CiAgICAgb2sgPSBwc2FzaW1fc2VyaWFsaXNlX2JlZ2luKCZwb3MsICZyZW1haW5pbmcpOwpAQCAtNzkzLDcgKzg3Niw5IEBACiAgICAgICAgICRhcmd0eXBlID1+IHMvXmNvbnN0IC8vOwogCiAgICAgICAgIHByaW50ICRmaCA8PEVPRjsKLSAgICBvayA9IHBzYXNpbV9zZXJpYWxpc2VfJHthcmd0eXBlfSgmcG9zLCAmcmVtYWluaW5nLCAkYXJnbmFtZSk7CisgICAgb2sgPSBwc2FzaW1fc2VyaWFsaXNlXyR7YXJndHlwZX0oCisgICAgICAgICZwb3MsICZyZW1haW5pbmcsCisgICAgICAgICRhcmduYW1lKTsKICAgICBpZiAoIW9rKSB7CiAgICAgICAgIGdvdG8gZmFpbDsKICAgICB9CkBAIC04MDIsOCArODg3LDggQEAKIAogICAgIHByaW50ICRmaCA8PEVPRiBpZiAkZGVidWc7CiAKLSAgICBwcmludGYoImNsaWVudCBzZW5kaW5nICVkOlxcbiIsIChpbnQpKHBvcyAtIHBhcmFtcykpOwotICAgIGR1bXBfYnVmZmVyKHBhcmFtcywgKHNpemVfdCkocG9zIC0gcGFyYW1zKSk7CisgICAgcHJpbnRmKCJjbGllbnQgc2VuZGluZyAlZDpcXG4iLCAoaW50KShwb3MgLSBzZXJfcGFyYW1zKSk7CisgICAgZHVtcF9idWZmZXIoc2VyX3BhcmFtcywgKHNpemVfdCkocG9zIC0gc2VyX3BhcmFtcykpOwogRU9GCiAKICAgICBteSAkZW51bSA9IHVjKCRuYW1lKTsKQEAgLTgxMSw3ICs4OTYsNyBAQAogICAgIHByaW50ICRmaCA8PEVPRjsKIAogICAgIG9rID0gcHNhX2NyeXB0b19jYWxsKCRlbnVtLAotICAgICAgICAgICAgICAgICAgICAgICAgIHBhcmFtcywgKHNpemVfdCkgKHBvcyAtIHBhcmFtcyksICZyZXN1bHQsICZyZXN1bHRfbGVuZ3RoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICBzZXJfcGFyYW1zLCAoc2l6ZV90KSAocG9zIC0gc2VyX3BhcmFtcyksICZzZXJfcmVzdWx0LCAmcmVzdWx0X2xlbmd0aCk7CiAgICAgaWYgKCFvaykgewogICAgICAgICBwcmludGYoIiRlbnVtIHNlcnZlciBjYWxsIGZhaWxlZFxcbiIpOwogICAgICAgICBnb3RvIGZhaWw7CkBAIC04MjEsMTIgKzkwNiwxMiBAQAogICAgIHByaW50ICRmaCA8PEVPRiBpZiAkZGVidWc7CiAKICAgICBwcmludGYoImNsaWVudCByZWNlaXZpbmcgJWQ6XFxuIiwgKGludClyZXN1bHRfbGVuZ3RoKTsKLSAgICBkdW1wX2J1ZmZlcihyZXN1bHQsIHJlc3VsdF9sZW5ndGgpOworICAgIGR1bXBfYnVmZmVyKHNlcl9yZXN1bHQsIHJlc3VsdF9sZW5ndGgpOwogRU9GCiAKICAgICBwcmludCAkZmggPDxFT0Y7CiAKLSAgICB1aW50OF90ICpycG9zID0gcmVzdWx0OworICAgIHVpbnQ4X3QgKnJwb3MgPSBzZXJfcmVzdWx0OwogICAgIHNpemVfdCBycmVtYWluID0gcmVzdWx0X2xlbmd0aDsKIAogICAgIG9rID0gcHNhc2ltX2Rlc2VyaWFsaXNlX2JlZ2luKCZycG9zLCAmcnJlbWFpbik7CkBAIC04MzUsOSArOTIwLDExIEBACiAgICAgfQogRU9GCiAKLSAgICBwcmludCAkZmggPDxFT0Y7CisgICAgcHJpbnQgJGZoIDw8RU9GIGlmICRyZXRfdHlwZSBuZSAidm9pZCI7CiAKLSAgICBvayA9IHBzYXNpbV9kZXNlcmlhbGlzZV8kcmV0X3R5cGUoJnJwb3MsICZycmVtYWluLCAmJHJldF9uYW1lKTsKKyAgICBvayA9IHBzYXNpbV9kZXNlcmlhbGlzZV8kcmV0X3R5cGUoCisgICAgICAgICZycG9zLCAmcnJlbWFpbiwKKyAgICAgICAgJiRyZXRfbmFtZSk7CiAgICAgaWYgKCFvaykgewogICAgICAgICBnb3RvIGZhaWw7CiAgICAgfQpAQCAtODU2LDcgKzk0Myw5IEBACiAgICAgICAgIGlmICgkYXJndHlwZSBlcSAiYnVmZmVyIikgewogICAgICAgICAgICAgcHJpbnQgJGZoIDw8RU9GOwogCi0gICAgb2sgPSBwc2FzaW1fZGVzZXJpYWxpc2VfcmV0dXJuX2J1ZmZlcigmcnBvcywgJnJyZW1haW4sICRhcmduYW1lKTsKKyAgICBvayA9IHBzYXNpbV9kZXNlcmlhbGlzZV9yZXR1cm5fYnVmZmVyKAorICAgICAgICAmcnBvcywgJnJyZW1haW4sCisgICAgICAgICRhcmduYW1lKTsKICAgICBpZiAoIW9rKSB7CiAgICAgICAgIGdvdG8gZmFpbDsKICAgICB9CkBAIC04NzAsNyArOTU5LDkgQEAKIAogICAgICAgICAgICAgcHJpbnQgJGZoIDw8RU9GOwogCi0gICAgb2sgPSBwc2FzaW1fZGVzZXJpYWxpc2VfJHthcmd0eXBlfSgmcnBvcywgJnJyZW1haW4sICRhcmduYW1lKTsKKyAgICBvayA9IHBzYXNpbV9kZXNlcmlhbGlzZV8ke2FyZ3R5cGV9KAorICAgICAgICAmcnBvcywgJnJyZW1haW4sCisgICAgICAgICRhcmduYW1lKTsKICAgICBpZiAoIW9rKSB7CiAgICAgICAgIGdvdG8gZmFpbDsKICAgICB9CkBAIC04ODAsMTAgKzk3MSwxNiBAQAogICAgIHByaW50ICRmaCA8PEVPRjsKIAogZmFpbDoKLSAgICBmcmVlKHBhcmFtcyk7Ci0gICAgZnJlZShyZXN1bHQpOworICAgIGZyZWUoc2VyX3BhcmFtcyk7CisgICAgZnJlZShzZXJfcmVzdWx0KTsKK0VPRgorCisgICAgcHJpbnQgJGZoIDw8RU9GIGlmICRyZXRfdHlwZSBuZSAidm9pZCI7CiAKICAgICByZXR1cm4gJHJldF9uYW1lOworRU9GCisKKyAgICBwcmludCAkZmggPDxFT0Y7CiB9CiBFT0YKIH0KQEAgLTkwNiwxMCArMTAwMywxNSBAQAogewogICAgIG15ICgkZmgsICRmLCAkbmFtZSwgJGlzX3NlcnZlcikgPSBAXzsKIAorICAgIG15ICRyZXRfdHlwZSA9ICRmLT57cmV0dXJufS0+e3R5cGV9OwogICAgIG15ICRyZXRfbmFtZSA9ICRmLT57cmV0dXJufS0+e25hbWV9OwogICAgIG15ICRhcmdzID0gJGYtPnthcmdzfTsKIAotICAgIHByaW50ICRmaCAiXG4gICAgJHJldF9uYW1lID0gJG5hbWUoXG4iOworICAgIGlmICgkcmV0X3R5cGUgZXEgInZvaWQiKSB7CisgICAgICAgIHByaW50ICRmaCAiXG4gICAgJG5hbWUoXG4iOworICAgIH0gZWxzZSB7CisgICAgICAgIHByaW50ICRmaCAiXG4gICAgJHJldF9uYW1lID0gJG5hbWUoXG4iOworICAgIH0KIAogICAgIHByaW50ICRmaCAiICAgICAgICApO1xuIiBpZiAkIyRhcmdzIDwgMDsgIyBJZiBubyBhcmd1bWVudHMsIGVtcHR5IGFyZyBsaXN0CiAKQEAgLTkyMSw2ICsxMDIzLDkgQEAKICAgICAgICAgaWYgKCRhcmd0eXBlID1+IC9eKGNvbnN0ICk/YnVmZmVyJC8pIHsKICAgICAgICAgICAgIG15ICgkbjEsICRuMikgPSBzcGxpdCgvLFxzKi8sICRhcmduYW1lKTsKICAgICAgICAgICAgIHByaW50ICRmaCAiICAgICAgICAkbjEsICRuMiI7CisgICAgICAgIH0gZWxzaWYgKCRhcmd0eXBlID1+IC9eKGNvbnN0ICk/cHNhX2tleV9wcm9kdWN0aW9uX3BhcmFtZXRlcnNfdCQvKSB7CisgICAgICAgICAgICBteSAoJG4xLCAkbjIpID0gc3BsaXQoLyxccyovLCAkYXJnbmFtZSk7CisgICAgICAgICAgICBwcmludCAkZmggIiAgICAgICAgJG4xLCAkbjIiOwogICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgJGFyZ25hbWUgPX4gcy9eXCovXCYvOyAgICAgICMgUmVwbGFjZSBsZWFkaW5nICogd2l0aCAmCiAgICAgICAgICAgICBpZiAoJGlzX3NlcnZlciAmJiAkYXJndHlwZSA9fiAvXnBzYV9cdytfb3BlcmF0aW9uX3QvKSB7CkBAIC05NDQsNyArMTA0OSw3IEBACiAKICAgICBwcmludCAkZmggIlxuJHJldF90eXBlICRuYW1lKFxuIjsKIAotICAgIHByaW50ICRmaCAiICAgIHZvaWRcbilcbiIgaWYgJCMkYXJncyA8IDA7ICAgIyBObyBhcmd1bWVudHMKKyAgICBwcmludCAkZmggIiAgICB2b2lkXG4gICAgKVxuIiBpZiAkIyRhcmdzIDwgMDsgICAjIE5vIGFyZ3VtZW50cwogCiAgICAgZm9yIG15ICRpICgwIC4uICQjJGFyZ3MpIHsKICAgICAgICAgbXkgJGFyZyA9ICRhcmdzLT5bJGldOwpAQCAtOTU2LDYgKzEwNjEsMTAgQEAKICAgICAgICAgICAgIG15ICRjb25zdCA9IGxlbmd0aCgkMSkgPyAiY29uc3QgIiA6ICIiOwogICAgICAgICAgICAgbXkgKCRuMSwgJG4yKSA9IHNwbGl0KC8sLywgJGFyZ25hbWUpOwogICAgICAgICAgICAgcHJpbnQgJGZoICIgICAgJHtjb25zdH11aW50OF90ICokbjEsIHNpemVfdCAkbjIiOworICAgICAgICB9IGVsc2lmICgkYXJndHlwZSA9fiAvXihjb25zdCApP3BzYV9rZXlfcHJvZHVjdGlvbl9wYXJhbWV0ZXJzX3QkLykgeworICAgICAgICAgICAgbXkgJGNvbnN0ID0gbGVuZ3RoKCQxKSA/ICJjb25zdCAiIDogIiI7CisgICAgICAgICAgICBteSAoJG4xLCAkbjIpID0gc3BsaXQoLywvLCAkYXJnbmFtZSk7CisgICAgICAgICAgICBwcmludCAkZmggIiAgICAke2NvbnN0fXBzYV9rZXlfcHJvZHVjdGlvbl9wYXJhbWV0ZXJzX3QgKiRuMSwgc2l6ZV90ICRuMiI7CiAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICBwcmludCAkZmggIiAgICAkY3R5cGVuYW1lJGFyZ25hbWUiOwogICAgICAgICB9CkBAIC05ODQsNyArMTA5Myw3IEBACiAgICAgbXkgJWZ1bmNzID0gKCk7CiAgICAgZm9yIChteSAkaSA9IDA7ICRpIDw9ICQjc3JjOyAkaSsrKSB7CiAgICAgICAgIG15ICRsaW5lID0gJHNyY1skaV07Ci0gICAgICAgIGlmICgkbGluZSA9fiAvXnBzYV9zdGF0dXNfdCAocHNhX1x3KilcKC8pIHsgIyBiZWdpbiBmdW5jdGlvbiBkZWZpbml0aW9uCisgICAgICAgIGlmICgkbGluZSA9fiAvXihwc2Ffc3RhdHVzX3R8dWludDMyX3R8dm9pZCkgKHBzYV9cdyopXCgvKSB7ICMgYmVnaW4gZnVuY3Rpb24gZGVmaW5pdGlvbgogICAgICAgICAgICAgI3ByaW50ICJoYXZlIG9uZSAkbGluZVxuIjsKICAgICAgICAgICAgIHdoaWxlICgkbGluZSAhfiAvOy8pIHsKICAgICAgICAgICAgICAgICAkbGluZSAuPSAkc3JjWyRpICsgMV07CkBAIC0xMDAzLDkgKzExMTIsMTMgQEAKIAogICAgICAgICAgICAgICAgIG15ICRyZXRfbmFtZSA9ICIiOwogICAgICAgICAgICAgICAgICRyZXRfbmFtZSA9ICJzdGF0dXMiIGlmICRyZXRfdHlwZSBlcSAicHNhX3N0YXR1c190IjsKKyAgICAgICAgICAgICAgICAkcmV0X25hbWUgPSAidmFsdWUiIGlmICRyZXRfdHlwZSBlcSAidWludDMyX3QiOworICAgICAgICAgICAgICAgICRyZXRfbmFtZSA9ICIodm9pZCkiIGlmICRyZXRfdHlwZSBlcSAidm9pZCI7CiAgICAgICAgICAgICAgICAgZGllKCJyZXRfbmFtZSBmb3IgJHJldF90eXBlPyIpIHVubGVzcyBsZW5ndGgoJHJldF9uYW1lKTsKICAgICAgICAgICAgICAgICBteSAkcmV0X2RlZmF1bHQgPSAiIjsKICAgICAgICAgICAgICAgICAkcmV0X2RlZmF1bHQgPSAiUFNBX0VSUk9SX0NPUlJVUFRJT05fREVURUNURUQiIGlmICRyZXRfdHlwZSBlcSAicHNhX3N0YXR1c190IjsKKyAgICAgICAgICAgICAgICAkcmV0X2RlZmF1bHQgPSAiMCIgaWYgJHJldF90eXBlIGVxICJ1aW50MzJfdCI7CisgICAgICAgICAgICAgICAgJHJldF9kZWZhdWx0ID0gIih2b2lkKSIgaWYgJHJldF90eXBlIGVxICJ2b2lkIjsKICAgICAgICAgICAgICAgICBkaWUoInJldF9kZWZhdWx0IGZvciAkcmV0X3R5cGU/IikgdW5sZXNzIGxlbmd0aCgkcmV0X2RlZmF1bHQpOwogCiAgICAgICAgICAgICAgICAgI3ByaW50ICJGVU5DICRmdW5jIFJFVF9OQU1FICRyZXRfbmFtZSBSRVRfVFlQRSAkcmV0X3R5cGUgQVJHUyAoIiwgam9pbigiOyAiLCBAYXJncyksICIpXG4iOwpAQCAtMTAzNywxMCArMTE1MCwyOCBAQAogICAgICAgICAgICAgICAgICAgICAgICAgI3ByaW50KCIkYXJnOiAkbmFtZTogbWlnaHQgYmUgYSBidWZmZXI/XG4iKTsKICAgICAgICAgICAgICAgICAgICAgICAgIGRpZSgiJGFyZzogbm90IGEgYnVmZmVyIDEhXG4iKSBpZiAkaSA9PSAkI2FyZ3M7CiAgICAgICAgICAgICAgICAgICAgICAgICBteSAkbmV4dCA9ICRhcmdzWyRpICsgMV07CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoJGZ1bmMgZXEgInBzYV9rZXlfZGVyaXZhdGlvbl92ZXJpZnlfYnl0ZXMiICYmCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGFyZyBlcSAiY29uc3QgdWludDhfdCAqZXhwZWN0ZWRfb3V0cHV0IiAmJgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICRuZXh0IGVxICJzaXplX3Qgb3V0cHV0X2xlbmd0aCIpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAkbmV4dCA9ICJzaXplX3QgZXhwZWN0ZWRfb3V0cHV0X2xlbmd0aCI7ICAgICMgZG9lc24ndCBmb2xsb3cgbmFtaW5nIGNvbnZlbnRpb24sIHNvIG92ZXJyaWRlCisgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICBkaWUoIiRhcmc6IG5vdCBhIGJ1ZmZlciAyIVxuIikgaWYgJG5leHQgIX4gL15zaXplX3RccysoJHtuYW1lfV9cdyspJC87CiAgICAgICAgICAgICAgICAgICAgICAgICAkaSsrOyAgICAgICAgICAgICAgICAgICAjIFdlJ3JlIHVzaW5nIHRoZSBuZXh0IHBhcmFtIGhlcmUKICAgICAgICAgICAgICAgICAgICAgICAgIG15ICRubmFtZSA9ICQxOwogICAgICAgICAgICAgICAgICAgICAgICAgJG5hbWUgLj0gIiwgIiAuICRubmFtZTsKKyAgICAgICAgICAgICAgICAgICAgfSBlbHNpZiAoJGFyZyA9fiAvXigoY29uc3QpXHMrKT9wc2Ffa2V5X3Byb2R1Y3Rpb25fcGFyYW1ldGVyc190XHMqXCpccyooXHcrKSQvKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAkdHlwZSA9ICJwc2Ffa2V5X3Byb2R1Y3Rpb25fcGFyYW1ldGVyc190IjsKKyAgICAgICAgICAgICAgICAgICAgICAgICRpc19vdXRwdXQgPSAobGVuZ3RoKCQxKSA9PSAwKSA/IDEgOiAwOworICAgICAgICAgICAgICAgICAgICAgICAgJHR5cGUgPSAiY29uc3QgcHNhX2tleV9wcm9kdWN0aW9uX3BhcmFtZXRlcnNfdCIgaWYgISRpc19vdXRwdXQ7CisgICAgICAgICAgICAgICAgICAgICAgICAkY3R5cGUgPSAiIjsKKyAgICAgICAgICAgICAgICAgICAgICAgICRuYW1lID0gJDM7CisgICAgICAgICAgICAgICAgICAgICAgICAjcHJpbnQoIiRhcmc6ICRuYW1lOiBtaWdodCBiZSBhIHBzYV9rZXlfcHJvZHVjdGlvbl9wYXJhbWV0ZXJzX3Q/XG4iKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGRpZSgiJGFyZzogbm90IGEgcHNhX2tleV9wcm9kdWN0aW9uX3BhcmFtZXRlcnNfdCAxIVxuIikgaWYgJGkgPT0gJCNhcmdzOworICAgICAgICAgICAgICAgICAgICAgICAgbXkgJG5leHQgPSAkYXJnc1skaSArIDFdOworICAgICAgICAgICAgICAgICAgICAgICAgZGllKCIkYXJnOiAkZnVuYzogJG5hbWU6ICRuZXh0OiBub3QgYSBwc2Ffa2V5X3Byb2R1Y3Rpb25fcGFyYW1ldGVyc190IDIhXG4iKSBpZiAkbmV4dCAhfiAvXnNpemVfdFxzKygke25hbWV9X1x3KykkLzsKKyAgICAgICAgICAgICAgICAgICAgICAgICRpKys7ICAgICAgICAgICAgICAgICAgICMgV2UncmUgdXNpbmcgdGhlIG5leHQgcGFyYW0gaGVyZQorICAgICAgICAgICAgICAgICAgICAgICAgbXkgJG5uYW1lID0gJDE7CisgICAgICAgICAgICAgICAgICAgICAgICAkbmFtZSAuPSAiLCAiIC4gJG5uYW1lOwogICAgICAgICAgICAgICAgICAgICB9IGVsc2lmICgkYXJnID1+IC9eKChjb25zdClccyspPyhcdyspXHMqXCooXHcrKSQvKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAoJHR5cGUsICRuYW1lKSA9ICgkMywgIioiIC4gJDQpOwogICAgICAgICAgICAgICAgICAgICAgICAgJGN0eXBlID0gJDEgLiAkdHlwZSAuICIgIjsKQEAgLTIzNzEsMyArMjUwMiwzMDY4IEBACiAgKiAgICAgICAgIHJlc3VsdHMgaW4gdGhpcyBlcnJvciBjb2RlLgogICovCiBwc2Ffc3RhdHVzX3QgcHNhX2Rlc3Ryb3lfa2V5KG1iZWR0bHNfc3ZjX2tleV9pZF90IGtleSk7CisKKy8qKgorICogXGJyaWVmIEdlbmVyYXRlIHJhbmRvbSBieXRlcy4KKyAqCisgKiBcd2FybmluZyBUaGlzIGZ1bmN0aW9uICoqY2FuKiogZmFpbCEgQ2FsbGVycyBNVVNUIGNoZWNrIHRoZSByZXR1cm4gc3RhdHVzCisgKiAgICAgICAgICBhbmQgTVVTVCBOT1QgdXNlIHRoZSBjb250ZW50IG9mIHRoZSBvdXRwdXQgYnVmZmVyIGlmIHRoZSByZXR1cm4KKyAqICAgICAgICAgIHN0YXR1cyBpcyBub3QgI1BTQV9TVUNDRVNTLgorICoKKyAqIFxub3RlICAgIFRvIGdlbmVyYXRlIGEga2V5LCB1c2UgcHNhX2dlbmVyYXRlX2tleSgpIGluc3RlYWQuCisgKgorICogXHBhcmFtW291dF0gb3V0cHV0ICAgICAgIE91dHB1dCBidWZmZXIgZm9yIHRoZSBnZW5lcmF0ZWQgZGF0YS4KKyAqIFxwYXJhbSBvdXRwdXRfc2l6ZSAgICAgICBOdW1iZXIgb2YgYnl0ZXMgdG8gZ2VuZXJhdGUgYW5kIG91dHB1dC4KKyAqCisgKiBccmV0dmFsICNQU0FfU1VDQ0VTUyBcZW1wdHlkZXNjcmlwdGlvbgorICogXHJldHZhbCAjUFNBX0VSUk9SX05PVF9TVVBQT1JURUQgXGVtcHR5ZGVzY3JpcHRpb24KKyAqIFxyZXR2YWwgI1BTQV9FUlJPUl9JTlNVRkZJQ0lFTlRfRU5UUk9QWSBcZW1wdHlkZXNjcmlwdGlvbgorICogXHJldHZhbCAjUFNBX0VSUk9SX0lOU1VGRklDSUVOVF9NRU1PUlkgXGVtcHR5ZGVzY3JpcHRpb24KKyAqIFxyZXR2YWwgI1BTQV9FUlJPUl9DT01NVU5JQ0FUSU9OX0ZBSUxVUkUgXGVtcHR5ZGVzY3JpcHRpb24KKyAqIFxyZXR2YWwgI1BTQV9FUlJPUl9IQVJEV0FSRV9GQUlMVVJFIFxlbXB0eWRlc2NyaXB0aW9uCisgKiBccmV0dmFsICNQU0FfRVJST1JfQ09SUlVQVElPTl9ERVRFQ1RFRCBcZW1wdHlkZXNjcmlwdGlvbgorICogXHJldHZhbCAjUFNBX0VSUk9SX0JBRF9TVEFURQorICogICAgICAgICBUaGUgbGlicmFyeSBoYXMgbm90IGJlZW4gcHJldmlvdXNseSBpbml0aWFsaXplZCBieSBwc2FfY3J5cHRvX2luaXQoKS4KKyAqICAgICAgICAgSXQgaXMgaW1wbGVtZW50YXRpb24tZGVwZW5kZW50IHdoZXRoZXIgYSBmYWlsdXJlIHRvIGluaXRpYWxpemUKKyAqICAgICAgICAgcmVzdWx0cyBpbiB0aGlzIGVycm9yIGNvZGUuCisgKi8KK3BzYV9zdGF0dXNfdCBwc2FfZ2VuZXJhdGVfcmFuZG9tKHVpbnQ4X3QgKm91dHB1dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBvdXRwdXRfc2l6ZSk7CisKKy8qKiBDYWxjdWxhdGUgdGhlIE1BQyAobWVzc2FnZSBhdXRoZW50aWNhdGlvbiBjb2RlKSBvZiBhIG1lc3NhZ2UuCisgKgorICogXG5vdGUgVG8gdmVyaWZ5IHRoZSBNQUMgb2YgYSBtZXNzYWdlIGFnYWluc3QgYW4KKyAqICAgICAgIGV4cGVjdGVkIHZhbHVlLCB1c2UgcHNhX21hY192ZXJpZnkoKSBpbnN0ZWFkLgorICogICAgICAgQmV3YXJlIHRoYXQgY29tcGFyaW5nIGludGVncml0eSBvciBhdXRoZW50aWNpdHkgZGF0YSBzdWNoIGFzCisgKiAgICAgICBNQUMgdmFsdWVzIHdpdGggYSBmdW5jdGlvbiBzdWNoIGFzIFxjIG1lbWNtcCBpcyByaXNreQorICogICAgICAgYmVjYXVzZSB0aGUgdGltZSB0YWtlbiBieSB0aGUgY29tcGFyaXNvbiBtYXkgbGVhayBpbmZvcm1hdGlvbgorICogICAgICAgYWJvdXQgdGhlIE1BQyB2YWx1ZSB3aGljaCBjb3VsZCBhbGxvdyBhbiBhdHRhY2tlciB0byBndWVzcworICogICAgICAgYSB2YWxpZCBNQUMgYW5kIHRoZXJlYnkgYnlwYXNzIHNlY3VyaXR5IGNvbnRyb2xzLgorICoKKyAqIFxwYXJhbSBrZXkgICAgICAgICAgICAgICBJZGVudGlmaWVyIG9mIHRoZSBrZXkgdG8gdXNlIGZvciB0aGUgb3BlcmF0aW9uLiBJdAorICogICAgICAgICAgICAgICAgICAgICAgICAgIG11c3QgYWxsb3cgdGhlIHVzYWdlIFBTQV9LRVlfVVNBR0VfU0lHTl9NRVNTQUdFLgorICogXHBhcmFtIGFsZyAgICAgICAgICAgICAgIFRoZSBNQUMgYWxnb3JpdGhtIHRvIGNvbXB1dGUgKFxjIFBTQV9BTEdfWFhYIHZhbHVlCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgc3VjaCB0aGF0ICNQU0FfQUxHX0lTX01BQyhccCBhbGcpIGlzIHRydWUpLgorICogXHBhcmFtW2luXSBpbnB1dCAgICAgICAgIEJ1ZmZlciBjb250YWluaW5nIHRoZSBpbnB1dCBtZXNzYWdlLgorICogXHBhcmFtIGlucHV0X2xlbmd0aCAgICAgIFNpemUgb2YgdGhlIFxwIGlucHV0IGJ1ZmZlciBpbiBieXRlcy4KKyAqIFxwYXJhbVtvdXRdIG1hYyAgICAgICAgICBCdWZmZXIgd2hlcmUgdGhlIE1BQyB2YWx1ZSBpcyB0byBiZSB3cml0dGVuLgorICogXHBhcmFtIG1hY19zaXplICAgICAgICAgIFNpemUgb2YgdGhlIFxwIG1hYyBidWZmZXIgaW4gYnl0ZXMuCisgKiBccGFyYW1bb3V0XSBtYWNfbGVuZ3RoICAgT24gc3VjY2VzcywgdGhlIG51bWJlciBvZiBieXRlcworICogICAgICAgICAgICAgICAgICAgICAgICAgIHRoYXQgbWFrZSB1cCB0aGUgTUFDIHZhbHVlLgorICoKKyAqIFxyZXR2YWwgI1BTQV9TVUNDRVNTCisgKiAgICAgICAgIFN1Y2Nlc3MuCisgKiBccmV0dmFsICNQU0FfRVJST1JfSU5WQUxJRF9IQU5ETEUgXGVtcHR5ZGVzY3JpcHRpb24KKyAqIFxyZXR2YWwgI1BTQV9FUlJPUl9OT1RfUEVSTUlUVEVEIFxlbXB0eWRlc2NyaXB0aW9uCisgKiBccmV0dmFsICNQU0FfRVJST1JfSU5WQUxJRF9BUkdVTUVOVAorICogICAgICAgICBccCBrZXkgaXMgbm90IGNvbXBhdGlibGUgd2l0aCBccCBhbGcuCisgKiBccmV0dmFsICNQU0FfRVJST1JfTk9UX1NVUFBPUlRFRAorICogICAgICAgICBccCBhbGcgaXMgbm90IHN1cHBvcnRlZCBvciBpcyBub3QgYSBNQUMgYWxnb3JpdGhtLgorICogXHJldHZhbCAjUFNBX0VSUk9SX0JVRkZFUl9UT09fU01BTEwKKyAqICAgICAgICAgXHAgbWFjX3NpemUgaXMgdG9vIHNtYWxsCisgKiBccmV0dmFsICNQU0FfRVJST1JfSU5TVUZGSUNJRU5UX01FTU9SWSBcZW1wdHlkZXNjcmlwdGlvbgorICogXHJldHZhbCAjUFNBX0VSUk9SX0NPTU1VTklDQVRJT05fRkFJTFVSRSBcZW1wdHlkZXNjcmlwdGlvbgorICogXHJldHZhbCAjUFNBX0VSUk9SX0hBUkRXQVJFX0ZBSUxVUkUgXGVtcHR5ZGVzY3JpcHRpb24KKyAqIFxyZXR2YWwgI1BTQV9FUlJPUl9DT1JSVVBUSU9OX0RFVEVDVEVEIFxlbXB0eWRlc2NyaXB0aW9uCisgKiBccmV0dmFsICNQU0FfRVJST1JfU1RPUkFHRV9GQUlMVVJFCisgKiAgICAgICAgIFRoZSBrZXkgY291bGQgbm90IGJlIHJldHJpZXZlZCBmcm9tIHN0b3JhZ2UuCisgKiBccmV0dmFsICNQU0FfRVJST1JfQkFEX1NUQVRFCisgKiAgICAgICAgIFRoZSBsaWJyYXJ5IGhhcyBub3QgYmVlbiBwcmV2aW91c2x5IGluaXRpYWxpemVkIGJ5IHBzYV9jcnlwdG9faW5pdCgpLgorICogICAgICAgICBJdCBpcyBpbXBsZW1lbnRhdGlvbi1kZXBlbmRlbnQgd2hldGhlciBhIGZhaWx1cmUgdG8gaW5pdGlhbGl6ZQorICogICAgICAgICByZXN1bHRzIGluIHRoaXMgZXJyb3IgY29kZS4KKyAqLworcHNhX3N0YXR1c190IHBzYV9tYWNfY29tcHV0ZShtYmVkdGxzX3N2Y19rZXlfaWRfdCBrZXksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBzYV9hbGdvcml0aG1fdCBhbGcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVpbnQ4X3QgKmlucHV0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgaW5wdXRfbGVuZ3RoLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50OF90ICptYWMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBtYWNfc2l6ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90ICptYWNfbGVuZ3RoKTsKKworLyoqIENhbGN1bGF0ZSB0aGUgTUFDIG9mIGEgbWVzc2FnZSBhbmQgY29tcGFyZSBpdCB3aXRoIGEgcmVmZXJlbmNlIHZhbHVlLgorICoKKyAqIFxwYXJhbSBrZXkgICAgICAgICAgICAgICBJZGVudGlmaWVyIG9mIHRoZSBrZXkgdG8gdXNlIGZvciB0aGUgb3BlcmF0aW9uLiBJdAorICogICAgICAgICAgICAgICAgICAgICAgICAgIG11c3QgYWxsb3cgdGhlIHVzYWdlIFBTQV9LRVlfVVNBR0VfVkVSSUZZX01FU1NBR0UuCisgKiBccGFyYW0gYWxnICAgICAgICAgICAgICAgVGhlIE1BQyBhbGdvcml0aG0gdG8gY29tcHV0ZSAoXGMgUFNBX0FMR19YWFggdmFsdWUKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICBzdWNoIHRoYXQgI1BTQV9BTEdfSVNfTUFDKFxwIGFsZykgaXMgdHJ1ZSkuCisgKiBccGFyYW1baW5dIGlucHV0ICAgICAgICAgQnVmZmVyIGNvbnRhaW5pbmcgdGhlIGlucHV0IG1lc3NhZ2UuCisgKiBccGFyYW0gaW5wdXRfbGVuZ3RoICAgICAgU2l6ZSBvZiB0aGUgXHAgaW5wdXQgYnVmZmVyIGluIGJ5dGVzLgorICogXHBhcmFtW2luXSBtYWMgICAgICAgICAgIEJ1ZmZlciBjb250YWluaW5nIHRoZSBleHBlY3RlZCBNQUMgdmFsdWUuCisgKiBccGFyYW0gbWFjX2xlbmd0aCAgICAgICAgU2l6ZSBvZiB0aGUgXHAgbWFjIGJ1ZmZlciBpbiBieXRlcy4KKyAqCisgKiBccmV0dmFsICNQU0FfU1VDQ0VTUworICogICAgICAgICBUaGUgZXhwZWN0ZWQgTUFDIGlzIGlkZW50aWNhbCB0byB0aGUgYWN0dWFsIE1BQyBvZiB0aGUgaW5wdXQuCisgKiBccmV0dmFsICNQU0FfRVJST1JfSU5WQUxJRF9TSUdOQVRVUkUKKyAqICAgICAgICAgVGhlIE1BQyBvZiB0aGUgbWVzc2FnZSB3YXMgY2FsY3VsYXRlZCBzdWNjZXNzZnVsbHksIGJ1dCBpdAorICogICAgICAgICBkaWZmZXJzIGZyb20gdGhlIGV4cGVjdGVkIHZhbHVlLgorICogXHJldHZhbCAjUFNBX0VSUk9SX0lOVkFMSURfSEFORExFIFxlbXB0eWRlc2NyaXB0aW9uCisgKiBccmV0dmFsICNQU0FfRVJST1JfTk9UX1BFUk1JVFRFRCBcZW1wdHlkZXNjcmlwdGlvbgorICogXHJldHZhbCAjUFNBX0VSUk9SX0lOVkFMSURfQVJHVU1FTlQKKyAqICAgICAgICAgXHAga2V5IGlzIG5vdCBjb21wYXRpYmxlIHdpdGggXHAgYWxnLgorICogXHJldHZhbCAjUFNBX0VSUk9SX05PVF9TVVBQT1JURUQKKyAqICAgICAgICAgXHAgYWxnIGlzIG5vdCBzdXBwb3J0ZWQgb3IgaXMgbm90IGEgTUFDIGFsZ29yaXRobS4KKyAqIFxyZXR2YWwgI1BTQV9FUlJPUl9JTlNVRkZJQ0lFTlRfTUVNT1JZIFxlbXB0eWRlc2NyaXB0aW9uCisgKiBccmV0dmFsICNQU0FfRVJST1JfQ09NTVVOSUNBVElPTl9GQUlMVVJFIFxlbXB0eWRlc2NyaXB0aW9uCisgKiBccmV0dmFsICNQU0FfRVJST1JfSEFSRFdBUkVfRkFJTFVSRSBcZW1wdHlkZXNjcmlwdGlvbgorICogXHJldHZhbCAjUFNBX0VSUk9SX0NPUlJVUFRJT05fREVURUNURUQgXGVtcHR5ZGVzY3JpcHRpb24KKyAqIFxyZXR2YWwgI1BTQV9FUlJPUl9TVE9SQUdFX0ZBSUxVUkUKKyAqICAgICAgICAgVGhlIGtleSBjb3VsZCBub3QgYmUgcmV0cmlldmVkIGZyb20gc3RvcmFnZS4KKyAqIFxyZXR2YWwgI1BTQV9FUlJPUl9CQURfU1RBVEUKKyAqICAgICAgICAgVGhlIGxpYnJhcnkgaGFzIG5vdCBiZWVuIHByZXZpb3VzbHkgaW5pdGlhbGl6ZWQgYnkgcHNhX2NyeXB0b19pbml0KCkuCisgKiAgICAgICAgIEl0IGlzIGltcGxlbWVudGF0aW9uLWRlcGVuZGVudCB3aGV0aGVyIGEgZmFpbHVyZSB0byBpbml0aWFsaXplCisgKiAgICAgICAgIHJlc3VsdHMgaW4gdGhpcyBlcnJvciBjb2RlLgorICovCitwc2Ffc3RhdHVzX3QgcHNhX21hY192ZXJpZnkobWJlZHRsc19zdmNfa2V5X2lkX3Qga2V5LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBzYV9hbGdvcml0aG1fdCBhbGcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdWludDhfdCAqaW5wdXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IGlucHV0X2xlbmd0aCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1aW50OF90ICptYWMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IG1hY19sZW5ndGgpOworCisvKiogVGhlIHR5cGUgb2YgdGhlIHN0YXRlIGRhdGEgc3RydWN0dXJlIGZvciBtdWx0aXBhcnQgTUFDIG9wZXJhdGlvbnMuCisgKgorICogQmVmb3JlIGNhbGxpbmcgYW55IGZ1bmN0aW9uIG9uIGEgTUFDIG9wZXJhdGlvbiBvYmplY3QsIHRoZSBhcHBsaWNhdGlvbiBtdXN0CisgKiBpbml0aWFsaXplIGl0IGJ5IGFueSBvZiB0aGUgZm9sbG93aW5nIG1lYW5zOgorICogLSBTZXQgdGhlIHN0cnVjdHVyZSB0byBhbGwtYml0cy16ZXJvLCBmb3IgZXhhbXBsZToKKyAqICAgXGNvZGUKKyAqICAgcHNhX21hY19vcGVyYXRpb25fdCBvcGVyYXRpb247CisgKiAgIG1lbXNldCgmb3BlcmF0aW9uLCAwLCBzaXplb2Yob3BlcmF0aW9uKSk7CisgKiAgIFxlbmRjb2RlCisgKiAtIEluaXRpYWxpemUgdGhlIHN0cnVjdHVyZSB0byBsb2dpY2FsIHplcm8gdmFsdWVzLCBmb3IgZXhhbXBsZToKKyAqICAgXGNvZGUKKyAqICAgcHNhX21hY19vcGVyYXRpb25fdCBvcGVyYXRpb24gPSB7MH07CisgKiAgIFxlbmRjb2RlCisgKiAtIEluaXRpYWxpemUgdGhlIHN0cnVjdHVyZSB0byB0aGUgaW5pdGlhbGl6ZXIgI1BTQV9NQUNfT1BFUkFUSU9OX0lOSVQsCisgKiAgIGZvciBleGFtcGxlOgorICogICBcY29kZQorICogICBwc2FfbWFjX29wZXJhdGlvbl90IG9wZXJhdGlvbiA9IFBTQV9NQUNfT1BFUkFUSU9OX0lOSVQ7CisgKiAgIFxlbmRjb2RlCisgKiAtIEFzc2lnbiB0aGUgcmVzdWx0IG9mIHRoZSBmdW5jdGlvbiBwc2FfbWFjX29wZXJhdGlvbl9pbml0KCkKKyAqICAgdG8gdGhlIHN0cnVjdHVyZSwgZm9yIGV4YW1wbGU6CisgKiAgIFxjb2RlCisgKiAgIHBzYV9tYWNfb3BlcmF0aW9uX3Qgb3BlcmF0aW9uOworICogICBvcGVyYXRpb24gPSBwc2FfbWFjX29wZXJhdGlvbl9pbml0KCk7CisgKiAgIFxlbmRjb2RlCisgKgorICoKKyAqIFRoaXMgaXMgYW4gaW1wbGVtZW50YXRpb24tZGVmaW5lZCBcYyBzdHJ1Y3QuIEFwcGxpY2F0aW9ucyBzaG91bGQgbm90CisgKiBtYWtlIGFueSBhc3N1bXB0aW9ucyBhYm91dCB0aGUgY29udGVudCBvZiB0aGlzIHN0cnVjdHVyZS4KKyAqIEltcGxlbWVudGF0aW9uIGRldGFpbHMgY2FuIGNoYW5nZSBpbiBmdXR1cmUgdmVyc2lvbnMgd2l0aG91dCBub3RpY2UuICovCit0eXBlZGVmIHN0cnVjdCBwc2FfbWFjX29wZXJhdGlvbl9zIHBzYV9tYWNfb3BlcmF0aW9uX3Q7CisKKy8qKiBcZGVmIFBTQV9NQUNfT1BFUkFUSU9OX0lOSVQKKyAqCisgKiBUaGlzIG1hY3JvIHJldHVybnMgYSBzdWl0YWJsZSBpbml0aWFsaXplciBmb3IgYSBNQUMgb3BlcmF0aW9uIG9iamVjdCBvZiB0eXBlCisgKiAjcHNhX21hY19vcGVyYXRpb25fdC4KKyAqLworCisvKiogUmV0dXJuIGFuIGluaXRpYWwgdmFsdWUgZm9yIGEgTUFDIG9wZXJhdGlvbiBvYmplY3QuCisgKi8KK3N0YXRpYyBwc2FfbWFjX29wZXJhdGlvbl90IHBzYV9tYWNfb3BlcmF0aW9uX2luaXQodm9pZCk7CisKKy8qKiBTZXQgdXAgYSBtdWx0aXBhcnQgTUFDIGNhbGN1bGF0aW9uIG9wZXJhdGlvbi4KKyAqCisgKiBUaGlzIGZ1bmN0aW9uIHNldHMgdXAgdGhlIGNhbGN1bGF0aW9uIG9mIHRoZSBNQUMKKyAqIChtZXNzYWdlIGF1dGhlbnRpY2F0aW9uIGNvZGUpIG9mIGEgYnl0ZSBzdHJpbmcuCisgKiBUbyB2ZXJpZnkgdGhlIE1BQyBvZiBhIG1lc3NhZ2UgYWdhaW5zdCBhbgorICogZXhwZWN0ZWQgdmFsdWUsIHVzZSBwc2FfbWFjX3ZlcmlmeV9zZXR1cCgpIGluc3RlYWQuCisgKgorICogVGhlIHNlcXVlbmNlIG9mIG9wZXJhdGlvbnMgdG8gY2FsY3VsYXRlIGEgTUFDIGlzIGFzIGZvbGxvd3M6CisgKiAtIyBBbGxvY2F0ZSBhbiBvcGVyYXRpb24gb2JqZWN0IHdoaWNoIHdpbGwgYmUgcGFzc2VkIHRvIGFsbCB0aGUgZnVuY3Rpb25zCisgKiAgICBsaXN0ZWQgaGVyZS4KKyAqIC0jIEluaXRpYWxpemUgdGhlIG9wZXJhdGlvbiBvYmplY3Qgd2l0aCBvbmUgb2YgdGhlIG1ldGhvZHMgZGVzY3JpYmVkIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBmb3IgI3BzYV9tYWNfb3BlcmF0aW9uX3QsIGUuZy4gI1BTQV9NQUNfT1BFUkFUSU9OX0lOSVQuCisgKiAtIyBDYWxsIHBzYV9tYWNfc2lnbl9zZXR1cCgpIHRvIHNwZWNpZnkgdGhlIGFsZ29yaXRobSBhbmQga2V5LgorICogLSMgQ2FsbCBwc2FfbWFjX3VwZGF0ZSgpIHplcm8sIG9uZSBvciBtb3JlIHRpbWVzLCBwYXNzaW5nIGEgZnJhZ21lbnQKKyAqICAgIG9mIHRoZSBtZXNzYWdlIGVhY2ggdGltZS4gVGhlIE1BQyB0aGF0IGlzIGNhbGN1bGF0ZWQgaXMgdGhlIE1BQworICogICAgb2YgdGhlIGNvbmNhdGVuYXRpb24gb2YgdGhlc2UgbWVzc2FnZXMgaW4gb3JkZXIuCisgKiAtIyBBdCB0aGUgZW5kIG9mIHRoZSBtZXNzYWdlLCBjYWxsIHBzYV9tYWNfc2lnbl9maW5pc2goKSB0byBmaW5pc2gKKyAqICAgIGNhbGN1bGF0aW5nIHRoZSBNQUMgdmFsdWUgYW5kIHJldHJpZXZlIGl0LgorICoKKyAqIElmIGFuIGVycm9yIG9jY3VycyBhdCBhbnkgc3RlcCBhZnRlciBhIGNhbGwgdG8gcHNhX21hY19zaWduX3NldHVwKCksIHRoZQorICogb3BlcmF0aW9uIHdpbGwgbmVlZCB0byBiZSByZXNldCBieSBhIGNhbGwgdG8gcHNhX21hY19hYm9ydCgpLiBUaGUKKyAqIGFwcGxpY2F0aW9uIG1heSBjYWxsIHBzYV9tYWNfYWJvcnQoKSBhdCBhbnkgdGltZSBhZnRlciB0aGUgb3BlcmF0aW9uCisgKiBoYXMgYmVlbiBpbml0aWFsaXplZC4KKyAqCisgKiBBZnRlciBhIHN1Y2Nlc3NmdWwgY2FsbCB0byBwc2FfbWFjX3NpZ25fc2V0dXAoKSwgdGhlIGFwcGxpY2F0aW9uIG11c3QKKyAqIGV2ZW50dWFsbHkgdGVybWluYXRlIHRoZSBvcGVyYXRpb24gdGhyb3VnaCBvbmUgb2YgdGhlIGZvbGxvd2luZyBtZXRob2RzOgorICogLSBBIHN1Y2Nlc3NmdWwgY2FsbCB0byBwc2FfbWFjX3NpZ25fZmluaXNoKCkuCisgKiAtIEEgY2FsbCB0byBwc2FfbWFjX2Fib3J0KCkuCisgKgorICogXHBhcmFtW2luLG91dF0gb3BlcmF0aW9uIFRoZSBvcGVyYXRpb24gb2JqZWN0IHRvIHNldCB1cC4gSXQgbXVzdCBoYXZlCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgYmVlbiBpbml0aWFsaXplZCBhcyBwZXIgdGhlIGRvY3VtZW50YXRpb24gZm9yCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgI3BzYV9tYWNfb3BlcmF0aW9uX3QgYW5kIG5vdCB5ZXQgaW4gdXNlLgorICogXHBhcmFtIGtleSAgICAgICAgICAgICAgIElkZW50aWZpZXIgb2YgdGhlIGtleSB0byB1c2UgZm9yIHRoZSBvcGVyYXRpb24uIEl0CisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgbXVzdCByZW1haW4gdmFsaWQgdW50aWwgdGhlIG9wZXJhdGlvbiB0ZXJtaW5hdGVzLgorICogICAgICAgICAgICAgICAgICAgICAgICAgIEl0IG11c3QgYWxsb3cgdGhlIHVzYWdlIFBTQV9LRVlfVVNBR0VfU0lHTl9NRVNTQUdFLgorICogXHBhcmFtIGFsZyAgICAgICAgICAgICAgIFRoZSBNQUMgYWxnb3JpdGhtIHRvIGNvbXB1dGUgKFxjIFBTQV9BTEdfWFhYIHZhbHVlCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgc3VjaCB0aGF0ICNQU0FfQUxHX0lTX01BQyhccCBhbGcpIGlzIHRydWUpLgorICoKKyAqIFxyZXR2YWwgI1BTQV9TVUNDRVNTCisgKiAgICAgICAgIFN1Y2Nlc3MuCisgKiBccmV0dmFsICNQU0FfRVJST1JfSU5WQUxJRF9IQU5ETEUgXGVtcHR5ZGVzY3JpcHRpb24KKyAqIFxyZXR2YWwgI1BTQV9FUlJPUl9OT1RfUEVSTUlUVEVEIFxlbXB0eWRlc2NyaXB0aW9uCisgKiBccmV0dmFsICNQU0FfRVJST1JfSU5WQUxJRF9BUkdVTUVOVAorICogICAgICAgICBccCBrZXkgaXMgbm90IGNvbXBhdGlibGUgd2l0aCBccCBhbGcuCisgKiBccmV0dmFsICNQU0FfRVJST1JfTk9UX1NVUFBPUlRFRAorICogICAgICAgICBccCBhbGcgaXMgbm90IHN1cHBvcnRlZCBvciBpcyBub3QgYSBNQUMgYWxnb3JpdGhtLgorICogXHJldHZhbCAjUFNBX0VSUk9SX0lOU1VGRklDSUVOVF9NRU1PUlkgXGVtcHR5ZGVzY3JpcHRpb24KKyAqIFxyZXR2YWwgI1BTQV9FUlJPUl9DT01NVU5JQ0FUSU9OX0ZBSUxVUkUgXGVtcHR5ZGVzY3JpcHRpb24KKyAqIFxyZXR2YWwgI1BTQV9FUlJPUl9IQVJEV0FSRV9GQUlMVVJFIFxlbXB0eWRlc2NyaXB0aW9uCisgKiBccmV0dmFsICNQU0FfRVJST1JfQ09SUlVQVElPTl9ERVRFQ1RFRCBcZW1wdHlkZXNjcmlwdGlvbgorICogXHJldHZhbCAjUFNBX0VSUk9SX1NUT1JBR0VfRkFJTFVSRQorICogICAgICAgICBUaGUga2V5IGNvdWxkIG5vdCBiZSByZXRyaWV2ZWQgZnJvbSBzdG9yYWdlLgorICogXHJldHZhbCAjUFNBX0VSUk9SX0JBRF9TVEFURQorICogICAgICAgICBUaGUgb3BlcmF0aW9uIHN0YXRlIGlzIG5vdCB2YWxpZCAoaXQgbXVzdCBiZSBpbmFjdGl2ZSksIG9yCisgKiAgICAgICAgIHRoZSBsaWJyYXJ5IGhhcyBub3QgYmVlbiBwcmV2aW91c2x5IGluaXRpYWxpemVkIGJ5IHBzYV9jcnlwdG9faW5pdCgpLgorICogICAgICAgICBJdCBpcyBpbXBsZW1lbnRhdGlvbi1kZXBlbmRlbnQgd2hldGhlciBhIGZhaWx1cmUgdG8gaW5pdGlhbGl6ZQorICogICAgICAgICByZXN1bHRzIGluIHRoaXMgZXJyb3IgY29kZS4KKyAqLworcHNhX3N0YXR1c190IHBzYV9tYWNfc2lnbl9zZXR1cChwc2FfbWFjX29wZXJhdGlvbl90ICpvcGVyYXRpb24sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1iZWR0bHNfc3ZjX2tleV9pZF90IGtleSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHNhX2FsZ29yaXRobV90IGFsZyk7CisKKy8qKiBTZXQgdXAgYSBtdWx0aXBhcnQgTUFDIHZlcmlmaWNhdGlvbiBvcGVyYXRpb24uCisgKgorICogVGhpcyBmdW5jdGlvbiBzZXRzIHVwIHRoZSB2ZXJpZmljYXRpb24gb2YgdGhlIE1BQworICogKG1lc3NhZ2UgYXV0aGVudGljYXRpb24gY29kZSkgb2YgYSBieXRlIHN0cmluZyBhZ2FpbnN0IGFuIGV4cGVjdGVkIHZhbHVlLgorICoKKyAqIFRoZSBzZXF1ZW5jZSBvZiBvcGVyYXRpb25zIHRvIHZlcmlmeSBhIE1BQyBpcyBhcyBmb2xsb3dzOgorICogLSMgQWxsb2NhdGUgYW4gb3BlcmF0aW9uIG9iamVjdCB3aGljaCB3aWxsIGJlIHBhc3NlZCB0byBhbGwgdGhlIGZ1bmN0aW9ucworICogICAgbGlzdGVkIGhlcmUuCisgKiAtIyBJbml0aWFsaXplIHRoZSBvcGVyYXRpb24gb2JqZWN0IHdpdGggb25lIG9mIHRoZSBtZXRob2RzIGRlc2NyaWJlZCBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gZm9yICNwc2FfbWFjX29wZXJhdGlvbl90LCBlLmcuICNQU0FfTUFDX09QRVJBVElPTl9JTklULgorICogLSMgQ2FsbCBwc2FfbWFjX3ZlcmlmeV9zZXR1cCgpIHRvIHNwZWNpZnkgdGhlIGFsZ29yaXRobSBhbmQga2V5LgorICogLSMgQ2FsbCBwc2FfbWFjX3VwZGF0ZSgpIHplcm8sIG9uZSBvciBtb3JlIHRpbWVzLCBwYXNzaW5nIGEgZnJhZ21lbnQKKyAqICAgIG9mIHRoZSBtZXNzYWdlIGVhY2ggdGltZS4gVGhlIE1BQyB0aGF0IGlzIGNhbGN1bGF0ZWQgaXMgdGhlIE1BQworICogICAgb2YgdGhlIGNvbmNhdGVuYXRpb24gb2YgdGhlc2UgbWVzc2FnZXMgaW4gb3JkZXIuCisgKiAtIyBBdCB0aGUgZW5kIG9mIHRoZSBtZXNzYWdlLCBjYWxsIHBzYV9tYWNfdmVyaWZ5X2ZpbmlzaCgpIHRvIGZpbmlzaAorICogICAgY2FsY3VsYXRpbmcgdGhlIGFjdHVhbCBNQUMgb2YgdGhlIG1lc3NhZ2UgYW5kIHZlcmlmeSBpdCBhZ2FpbnN0CisgKiAgICB0aGUgZXhwZWN0ZWQgdmFsdWUuCisgKgorICogSWYgYW4gZXJyb3Igb2NjdXJzIGF0IGFueSBzdGVwIGFmdGVyIGEgY2FsbCB0byBwc2FfbWFjX3ZlcmlmeV9zZXR1cCgpLCB0aGUKKyAqIG9wZXJhdGlvbiB3aWxsIG5lZWQgdG8gYmUgcmVzZXQgYnkgYSBjYWxsIHRvIHBzYV9tYWNfYWJvcnQoKS4gVGhlCisgKiBhcHBsaWNhdGlvbiBtYXkgY2FsbCBwc2FfbWFjX2Fib3J0KCkgYXQgYW55IHRpbWUgYWZ0ZXIgdGhlIG9wZXJhdGlvbgorICogaGFzIGJlZW4gaW5pdGlhbGl6ZWQuCisgKgorICogQWZ0ZXIgYSBzdWNjZXNzZnVsIGNhbGwgdG8gcHNhX21hY192ZXJpZnlfc2V0dXAoKSwgdGhlIGFwcGxpY2F0aW9uIG11c3QKKyAqIGV2ZW50dWFsbHkgdGVybWluYXRlIHRoZSBvcGVyYXRpb24gdGhyb3VnaCBvbmUgb2YgdGhlIGZvbGxvd2luZyBtZXRob2RzOgorICogLSBBIHN1Y2Nlc3NmdWwgY2FsbCB0byBwc2FfbWFjX3ZlcmlmeV9maW5pc2goKS4KKyAqIC0gQSBjYWxsIHRvIHBzYV9tYWNfYWJvcnQoKS4KKyAqCisgKiBccGFyYW1baW4sb3V0XSBvcGVyYXRpb24gVGhlIG9wZXJhdGlvbiBvYmplY3QgdG8gc2V0IHVwLiBJdCBtdXN0IGhhdmUKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICBiZWVuIGluaXRpYWxpemVkIGFzIHBlciB0aGUgZG9jdW1lbnRhdGlvbiBmb3IKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAjcHNhX21hY19vcGVyYXRpb25fdCBhbmQgbm90IHlldCBpbiB1c2UuCisgKiBccGFyYW0ga2V5ICAgICAgICAgICAgICAgSWRlbnRpZmllciBvZiB0aGUga2V5IHRvIHVzZSBmb3IgdGhlIG9wZXJhdGlvbi4gSXQKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICBtdXN0IHJlbWFpbiB2YWxpZCB1bnRpbCB0aGUgb3BlcmF0aW9uIHRlcm1pbmF0ZXMuCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgSXQgbXVzdCBhbGxvdyB0aGUgdXNhZ2UKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICBQU0FfS0VZX1VTQUdFX1ZFUklGWV9NRVNTQUdFLgorICogXHBhcmFtIGFsZyAgICAgICAgICAgICAgIFRoZSBNQUMgYWxnb3JpdGhtIHRvIGNvbXB1dGUgKFxjIFBTQV9BTEdfWFhYIHZhbHVlCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgc3VjaCB0aGF0ICNQU0FfQUxHX0lTX01BQyhccCBhbGcpIGlzIHRydWUpLgorICoKKyAqIFxyZXR2YWwgI1BTQV9TVUNDRVNTCisgKiAgICAgICAgIFN1Y2Nlc3MuCisgKiBccmV0dmFsICNQU0FfRVJST1JfSU5WQUxJRF9IQU5ETEUgXGVtcHR5ZGVzY3JpcHRpb24KKyAqIFxyZXR2YWwgI1BTQV9FUlJPUl9OT1RfUEVSTUlUVEVEIFxlbXB0eWRlc2NyaXB0aW9uCisgKiBccmV0dmFsICNQU0FfRVJST1JfSU5WQUxJRF9BUkdVTUVOVAorICogICAgICAgICBcYyBrZXkgaXMgbm90IGNvbXBhdGlibGUgd2l0aCBcYyBhbGcuCisgKiBccmV0dmFsICNQU0FfRVJST1JfTk9UX1NVUFBPUlRFRAorICogICAgICAgICBcYyBhbGcgaXMgbm90IHN1cHBvcnRlZCBvciBpcyBub3QgYSBNQUMgYWxnb3JpdGhtLgorICogXHJldHZhbCAjUFNBX0VSUk9SX0lOU1VGRklDSUVOVF9NRU1PUlkgXGVtcHR5ZGVzY3JpcHRpb24KKyAqIFxyZXR2YWwgI1BTQV9FUlJPUl9DT01NVU5JQ0FUSU9OX0ZBSUxVUkUgXGVtcHR5ZGVzY3JpcHRpb24KKyAqIFxyZXR2YWwgI1BTQV9FUlJPUl9IQVJEV0FSRV9GQUlMVVJFIFxlbXB0eWRlc2NyaXB0aW9uCisgKiBccmV0dmFsICNQU0FfRVJST1JfQ09SUlVQVElPTl9ERVRFQ1RFRCBcZW1wdHlkZXNjcmlwdGlvbgorICogXHJldHZhbCAjUFNBX0VSUk9SX1NUT1JBR0VfRkFJTFVSRQorICogICAgICAgICBUaGUga2V5IGNvdWxkIG5vdCBiZSByZXRyaWV2ZWQgZnJvbSBzdG9yYWdlLgorICogXHJldHZhbCAjUFNBX0VSUk9SX0JBRF9TVEFURQorICogICAgICAgICBUaGUgb3BlcmF0aW9uIHN0YXRlIGlzIG5vdCB2YWxpZCAoaXQgbXVzdCBiZSBpbmFjdGl2ZSksIG9yCisgKiAgICAgICAgIHRoZSBsaWJyYXJ5IGhhcyBub3QgYmVlbiBwcmV2aW91c2x5IGluaXRpYWxpemVkIGJ5IHBzYV9jcnlwdG9faW5pdCgpLgorICogICAgICAgICBJdCBpcyBpbXBsZW1lbnRhdGlvbi1kZXBlbmRlbnQgd2hldGhlciBhIGZhaWx1cmUgdG8gaW5pdGlhbGl6ZQorICogICAgICAgICByZXN1bHRzIGluIHRoaXMgZXJyb3IgY29kZS4KKyAqLworcHNhX3N0YXR1c190IHBzYV9tYWNfdmVyaWZ5X3NldHVwKHBzYV9tYWNfb3BlcmF0aW9uX3QgKm9wZXJhdGlvbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYmVkdGxzX3N2Y19rZXlfaWRfdCBrZXksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHNhX2FsZ29yaXRobV90IGFsZyk7CisKKy8qKiBBZGQgYSBtZXNzYWdlIGZyYWdtZW50IHRvIGEgbXVsdGlwYXJ0IE1BQyBvcGVyYXRpb24uCisgKgorICogVGhlIGFwcGxpY2F0aW9uIG11c3QgY2FsbCBwc2FfbWFjX3NpZ25fc2V0dXAoKSBvciBwc2FfbWFjX3ZlcmlmeV9zZXR1cCgpCisgKiBiZWZvcmUgY2FsbGluZyB0aGlzIGZ1bmN0aW9uLgorICoKKyAqIElmIHRoaXMgZnVuY3Rpb24gcmV0dXJucyBhbiBlcnJvciBzdGF0dXMsIHRoZSBvcGVyYXRpb24gZW50ZXJzIGFuIGVycm9yCisgKiBzdGF0ZSBhbmQgbXVzdCBiZSBhYm9ydGVkIGJ5IGNhbGxpbmcgcHNhX21hY19hYm9ydCgpLgorICoKKyAqIFxwYXJhbVtpbixvdXRdIG9wZXJhdGlvbiBBY3RpdmUgTUFDIG9wZXJhdGlvbi4KKyAqIFxwYXJhbVtpbl0gaW5wdXQgICAgICAgICBCdWZmZXIgY29udGFpbmluZyB0aGUgbWVzc2FnZSBmcmFnbWVudCB0byBhZGQgdG8KKyAqICAgICAgICAgICAgICAgICAgICAgICAgICB0aGUgTUFDIGNhbGN1bGF0aW9uLgorICogXHBhcmFtIGlucHV0X2xlbmd0aCAgICAgIFNpemUgb2YgdGhlIFxwIGlucHV0IGJ1ZmZlciBpbiBieXRlcy4KKyAqCisgKiBccmV0dmFsICNQU0FfU1VDQ0VTUworICogICAgICAgICBTdWNjZXNzLgorICogXHJldHZhbCAjUFNBX0VSUk9SX0lOU1VGRklDSUVOVF9NRU1PUlkgXGVtcHR5ZGVzY3JpcHRpb24KKyAqIFxyZXR2YWwgI1BTQV9FUlJPUl9DT01NVU5JQ0FUSU9OX0ZBSUxVUkUgXGVtcHR5ZGVzY3JpcHRpb24KKyAqIFxyZXR2YWwgI1BTQV9FUlJPUl9IQVJEV0FSRV9GQUlMVVJFIFxlbXB0eWRlc2NyaXB0aW9uCisgKiBccmV0dmFsICNQU0FfRVJST1JfQ09SUlVQVElPTl9ERVRFQ1RFRCBcZW1wdHlkZXNjcmlwdGlvbgorICogXHJldHZhbCAjUFNBX0VSUk9SX1NUT1JBR0VfRkFJTFVSRSBcZW1wdHlkZXNjcmlwdGlvbgorICogXHJldHZhbCAjUFNBX0VSUk9SX0JBRF9TVEFURQorICogICAgICAgICBUaGUgb3BlcmF0aW9uIHN0YXRlIGlzIG5vdCB2YWxpZCAoaXQgbXVzdCBiZSBhY3RpdmUpLCBvcgorICogICAgICAgICB0aGUgbGlicmFyeSBoYXMgbm90IGJlZW4gcHJldmlvdXNseSBpbml0aWFsaXplZCBieSBwc2FfY3J5cHRvX2luaXQoKS4KKyAqICAgICAgICAgSXQgaXMgaW1wbGVtZW50YXRpb24tZGVwZW5kZW50IHdoZXRoZXIgYSBmYWlsdXJlIHRvIGluaXRpYWxpemUKKyAqICAgICAgICAgcmVzdWx0cyBpbiB0aGlzIGVycm9yIGNvZGUuCisgKi8KK3BzYV9zdGF0dXNfdCBwc2FfbWFjX3VwZGF0ZShwc2FfbWFjX29wZXJhdGlvbl90ICpvcGVyYXRpb24sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdWludDhfdCAqaW5wdXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IGlucHV0X2xlbmd0aCk7CisKKy8qKiBGaW5pc2ggdGhlIGNhbGN1bGF0aW9uIG9mIHRoZSBNQUMgb2YgYSBtZXNzYWdlLgorICoKKyAqIFRoZSBhcHBsaWNhdGlvbiBtdXN0IGNhbGwgcHNhX21hY19zaWduX3NldHVwKCkgYmVmb3JlIGNhbGxpbmcgdGhpcyBmdW5jdGlvbi4KKyAqIFRoaXMgZnVuY3Rpb24gY2FsY3VsYXRlcyB0aGUgTUFDIG9mIHRoZSBtZXNzYWdlIGZvcm1lZCBieSBjb25jYXRlbmF0aW5nCisgKiB0aGUgaW5wdXRzIHBhc3NlZCB0byBwcmVjZWRpbmcgY2FsbHMgdG8gcHNhX21hY191cGRhdGUoKS4KKyAqCisgKiBXaGVuIHRoaXMgZnVuY3Rpb24gcmV0dXJucyBzdWNjZXNzZnVsbHksIHRoZSBvcGVyYXRpb24gYmVjb21lcyBpbmFjdGl2ZS4KKyAqIElmIHRoaXMgZnVuY3Rpb24gcmV0dXJucyBhbiBlcnJvciBzdGF0dXMsIHRoZSBvcGVyYXRpb24gZW50ZXJzIGFuIGVycm9yCisgKiBzdGF0ZSBhbmQgbXVzdCBiZSBhYm9ydGVkIGJ5IGNhbGxpbmcgcHNhX21hY19hYm9ydCgpLgorICoKKyAqIFx3YXJuaW5nIEFwcGxpY2F0aW9ucyBzaG91bGQgbm90IGNhbGwgdGhpcyBmdW5jdGlvbiBpZiB0aGV5IGV4cGVjdAorICogICAgICAgICAgYSBzcGVjaWZpYyB2YWx1ZSBmb3IgdGhlIE1BQy4gQ2FsbCBwc2FfbWFjX3ZlcmlmeV9maW5pc2goKSBpbnN0ZWFkLgorICogICAgICAgICAgQmV3YXJlIHRoYXQgY29tcGFyaW5nIGludGVncml0eSBvciBhdXRoZW50aWNpdHkgZGF0YSBzdWNoIGFzCisgKiAgICAgICAgICBNQUMgdmFsdWVzIHdpdGggYSBmdW5jdGlvbiBzdWNoIGFzIFxjIG1lbWNtcCBpcyByaXNreQorICogICAgICAgICAgYmVjYXVzZSB0aGUgdGltZSB0YWtlbiBieSB0aGUgY29tcGFyaXNvbiBtYXkgbGVhayBpbmZvcm1hdGlvbgorICogICAgICAgICAgYWJvdXQgdGhlIE1BQyB2YWx1ZSB3aGljaCBjb3VsZCBhbGxvdyBhbiBhdHRhY2tlciB0byBndWVzcworICogICAgICAgICAgYSB2YWxpZCBNQUMgYW5kIHRoZXJlYnkgYnlwYXNzIHNlY3VyaXR5IGNvbnRyb2xzLgorICoKKyAqIFxwYXJhbVtpbixvdXRdIG9wZXJhdGlvbiBBY3RpdmUgTUFDIG9wZXJhdGlvbi4KKyAqIFxwYXJhbVtvdXRdIG1hYyAgICAgICAgICBCdWZmZXIgd2hlcmUgdGhlIE1BQyB2YWx1ZSBpcyB0byBiZSB3cml0dGVuLgorICogXHBhcmFtIG1hY19zaXplICAgICAgICAgIFNpemUgb2YgdGhlIFxwIG1hYyBidWZmZXIgaW4gYnl0ZXMuCisgKiBccGFyYW1bb3V0XSBtYWNfbGVuZ3RoICAgT24gc3VjY2VzcywgdGhlIG51bWJlciBvZiBieXRlcworICogICAgICAgICAgICAgICAgICAgICAgICAgIHRoYXQgbWFrZSB1cCB0aGUgTUFDIHZhbHVlLiBUaGlzIGlzIGFsd2F5cworICogICAgICAgICAgICAgICAgICAgICAgICAgICNQU0FfTUFDX0xFTkdUSChcYyBrZXlfdHlwZSwgXGMga2V5X2JpdHMsIFxjIGFsZykKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICB3aGVyZSBcYyBrZXlfdHlwZSBhbmQgXGMga2V5X2JpdHMgYXJlIHRoZSB0eXBlIGFuZAorICogICAgICAgICAgICAgICAgICAgICAgICAgIGJpdC1zaXplIHJlc3BlY3RpdmVseSBvZiB0aGUga2V5IGFuZCBcYyBhbGcgaXMgdGhlCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgTUFDIGFsZ29yaXRobSB0aGF0IGlzIGNhbGN1bGF0ZWQuCisgKgorICogXHJldHZhbCAjUFNBX1NVQ0NFU1MKKyAqICAgICAgICAgU3VjY2Vzcy4KKyAqIFxyZXR2YWwgI1BTQV9FUlJPUl9CVUZGRVJfVE9PX1NNQUxMCisgKiAgICAgICAgIFRoZSBzaXplIG9mIHRoZSBccCBtYWMgYnVmZmVyIGlzIHRvbyBzbWFsbC4gWW91IGNhbiBkZXRlcm1pbmUgYQorICogICAgICAgICBzdWZmaWNpZW50IGJ1ZmZlciBzaXplIGJ5IGNhbGxpbmcgUFNBX01BQ19MRU5HVEgoKS4KKyAqIFxyZXR2YWwgI1BTQV9FUlJPUl9JTlNVRkZJQ0lFTlRfTUVNT1JZIFxlbXB0eWRlc2NyaXB0aW9uCisgKiBccmV0dmFsICNQU0FfRVJST1JfQ09NTVVOSUNBVElPTl9GQUlMVVJFIFxlbXB0eWRlc2NyaXB0aW9uCisgKiBccmV0dmFsICNQU0FfRVJST1JfSEFSRFdBUkVfRkFJTFVSRSBcZW1wdHlkZXNjcmlwdGlvbgorICogXHJldHZhbCAjUFNBX0VSUk9SX0NPUlJVUFRJT05fREVURUNURUQgXGVtcHR5ZGVzY3JpcHRpb24KKyAqIFxyZXR2YWwgI1BTQV9FUlJPUl9TVE9SQUdFX0ZBSUxVUkUgXGVtcHR5ZGVzY3JpcHRpb24KKyAqIFxyZXR2YWwgI1BTQV9FUlJPUl9CQURfU1RBVEUKKyAqICAgICAgICAgVGhlIG9wZXJhdGlvbiBzdGF0ZSBpcyBub3QgdmFsaWQgKGl0IG11c3QgYmUgYW4gYWN0aXZlIG1hYyBzaWduCisgKiAgICAgICAgIG9wZXJhdGlvbiksIG9yIHRoZSBsaWJyYXJ5IGhhcyBub3QgYmVlbiBwcmV2aW91c2x5IGluaXRpYWxpemVkCisgKiAgICAgICAgIGJ5IHBzYV9jcnlwdG9faW5pdCgpLgorICogICAgICAgICBJdCBpcyBpbXBsZW1lbnRhdGlvbi1kZXBlbmRlbnQgd2hldGhlciBhIGZhaWx1cmUgdG8gaW5pdGlhbGl6ZQorICogICAgICAgICByZXN1bHRzIGluIHRoaXMgZXJyb3IgY29kZS4KKyAqLworcHNhX3N0YXR1c190IHBzYV9tYWNfc2lnbl9maW5pc2gocHNhX21hY19vcGVyYXRpb25fdCAqb3BlcmF0aW9uLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDhfdCAqbWFjLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IG1hY19zaXplLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90ICptYWNfbGVuZ3RoKTsKKworLyoqIEZpbmlzaCB0aGUgY2FsY3VsYXRpb24gb2YgdGhlIE1BQyBvZiBhIG1lc3NhZ2UgYW5kIGNvbXBhcmUgaXQgd2l0aAorICogYW4gZXhwZWN0ZWQgdmFsdWUuCisgKgorICogVGhlIGFwcGxpY2F0aW9uIG11c3QgY2FsbCBwc2FfbWFjX3ZlcmlmeV9zZXR1cCgpIGJlZm9yZSBjYWxsaW5nIHRoaXMgZnVuY3Rpb24uCisgKiBUaGlzIGZ1bmN0aW9uIGNhbGN1bGF0ZXMgdGhlIE1BQyBvZiB0aGUgbWVzc2FnZSBmb3JtZWQgYnkgY29uY2F0ZW5hdGluZworICogdGhlIGlucHV0cyBwYXNzZWQgdG8gcHJlY2VkaW5nIGNhbGxzIHRvIHBzYV9tYWNfdXBkYXRlKCkuIEl0IHRoZW4KKyAqIGNvbXBhcmVzIHRoZSBjYWxjdWxhdGVkIE1BQyB3aXRoIHRoZSBleHBlY3RlZCBNQUMgcGFzc2VkIGFzIGEKKyAqIHBhcmFtZXRlciB0byB0aGlzIGZ1bmN0aW9uLgorICoKKyAqIFdoZW4gdGhpcyBmdW5jdGlvbiByZXR1cm5zIHN1Y2Nlc3NmdWxseSwgdGhlIG9wZXJhdGlvbiBiZWNvbWVzIGluYWN0aXZlLgorICogSWYgdGhpcyBmdW5jdGlvbiByZXR1cm5zIGFuIGVycm9yIHN0YXR1cywgdGhlIG9wZXJhdGlvbiBlbnRlcnMgYW4gZXJyb3IKKyAqIHN0YXRlIGFuZCBtdXN0IGJlIGFib3J0ZWQgYnkgY2FsbGluZyBwc2FfbWFjX2Fib3J0KCkuCisgKgorICogXG5vdGUgSW1wbGVtZW50YXRpb25zIHNoYWxsIG1ha2UgdGhlIGJlc3QgZWZmb3J0IHRvIGVuc3VyZSB0aGF0IHRoZQorICogY29tcGFyaXNvbiBiZXR3ZWVuIHRoZSBhY3R1YWwgTUFDIGFuZCB0aGUgZXhwZWN0ZWQgTUFDIGlzIHBlcmZvcm1lZAorICogaW4gY29uc3RhbnQgdGltZS4KKyAqCisgKiBccGFyYW1baW4sb3V0XSBvcGVyYXRpb24gQWN0aXZlIE1BQyBvcGVyYXRpb24uCisgKiBccGFyYW1baW5dIG1hYyAgICAgICAgICAgQnVmZmVyIGNvbnRhaW5pbmcgdGhlIGV4cGVjdGVkIE1BQyB2YWx1ZS4KKyAqIFxwYXJhbSBtYWNfbGVuZ3RoICAgICAgICBTaXplIG9mIHRoZSBccCBtYWMgYnVmZmVyIGluIGJ5dGVzLgorICoKKyAqIFxyZXR2YWwgI1BTQV9TVUNDRVNTCisgKiAgICAgICAgIFRoZSBleHBlY3RlZCBNQUMgaXMgaWRlbnRpY2FsIHRvIHRoZSBhY3R1YWwgTUFDIG9mIHRoZSBtZXNzYWdlLgorICogXHJldHZhbCAjUFNBX0VSUk9SX0lOVkFMSURfU0lHTkFUVVJFCisgKiAgICAgICAgIFRoZSBNQUMgb2YgdGhlIG1lc3NhZ2Ugd2FzIGNhbGN1bGF0ZWQgc3VjY2Vzc2Z1bGx5LCBidXQgaXQKKyAqICAgICAgICAgZGlmZmVycyBmcm9tIHRoZSBleHBlY3RlZCBNQUMuCisgKiBccmV0dmFsICNQU0FfRVJST1JfSU5TVUZGSUNJRU5UX01FTU9SWSBcZW1wdHlkZXNjcmlwdGlvbgorICogXHJldHZhbCAjUFNBX0VSUk9SX0NPTU1VTklDQVRJT05fRkFJTFVSRSBcZW1wdHlkZXNjcmlwdGlvbgorICogXHJldHZhbCAjUFNBX0VSUk9SX0hBUkRXQVJFX0ZBSUxVUkUgXGVtcHR5ZGVzY3JpcHRpb24KKyAqIFxyZXR2YWwgI1BTQV9FUlJPUl9DT1JSVVBUSU9OX0RFVEVDVEVEIFxlbXB0eWRlc2NyaXB0aW9uCisgKiBccmV0dmFsICNQU0FfRVJST1JfU1RPUkFHRV9GQUlMVVJFIFxlbXB0eWRlc2NyaXB0aW9uCisgKiBccmV0dmFsICNQU0FfRVJST1JfQkFEX1NUQVRFCisgKiAgICAgICAgIFRoZSBvcGVyYXRpb24gc3RhdGUgaXMgbm90IHZhbGlkIChpdCBtdXN0IGJlIGFuIGFjdGl2ZSBtYWMgdmVyaWZ5CisgKiAgICAgICAgIG9wZXJhdGlvbiksIG9yIHRoZSBsaWJyYXJ5IGhhcyBub3QgYmVlbiBwcmV2aW91c2x5IGluaXRpYWxpemVkCisgKiAgICAgICAgIGJ5IHBzYV9jcnlwdG9faW5pdCgpLgorICogICAgICAgICBJdCBpcyBpbXBsZW1lbnRhdGlvbi1kZXBlbmRlbnQgd2hldGhlciBhIGZhaWx1cmUgdG8gaW5pdGlhbGl6ZQorICogICAgICAgICByZXN1bHRzIGluIHRoaXMgZXJyb3IgY29kZS4KKyAqLworcHNhX3N0YXR1c190IHBzYV9tYWNfdmVyaWZ5X2ZpbmlzaChwc2FfbWFjX29wZXJhdGlvbl90ICpvcGVyYXRpb24sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVpbnQ4X3QgKm1hYywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IG1hY19sZW5ndGgpOworCisvKiogQWJvcnQgYSBNQUMgb3BlcmF0aW9uLgorICoKKyAqIEFib3J0aW5nIGFuIG9wZXJhdGlvbiBmcmVlcyBhbGwgYXNzb2NpYXRlZCByZXNvdXJjZXMgZXhjZXB0IGZvciB0aGUKKyAqIFxwIG9wZXJhdGlvbiBzdHJ1Y3R1cmUgaXRzZWxmLiBPbmNlIGFib3J0ZWQsIHRoZSBvcGVyYXRpb24gb2JqZWN0CisgKiBjYW4gYmUgcmV1c2VkIGZvciBhbm90aGVyIG9wZXJhdGlvbiBieSBjYWxsaW5nCisgKiBwc2FfbWFjX3NpZ25fc2V0dXAoKSBvciBwc2FfbWFjX3ZlcmlmeV9zZXR1cCgpIGFnYWluLgorICoKKyAqIFlvdSBtYXkgY2FsbCB0aGlzIGZ1bmN0aW9uIGFueSB0aW1lIGFmdGVyIHRoZSBvcGVyYXRpb24gb2JqZWN0IGhhcworICogYmVlbiBpbml0aWFsaXplZCBieSBvbmUgb2YgdGhlIG1ldGhvZHMgZGVzY3JpYmVkIGluICNwc2FfbWFjX29wZXJhdGlvbl90LgorICoKKyAqIEluIHBhcnRpY3VsYXIsIGNhbGxpbmcgcHNhX21hY19hYm9ydCgpIGFmdGVyIHRoZSBvcGVyYXRpb24gaGFzIGJlZW4KKyAqIHRlcm1pbmF0ZWQgYnkgYSBjYWxsIHRvIHBzYV9tYWNfYWJvcnQoKSwgcHNhX21hY19zaWduX2ZpbmlzaCgpIG9yCisgKiBwc2FfbWFjX3ZlcmlmeV9maW5pc2goKSBpcyBzYWZlIGFuZCBoYXMgbm8gZWZmZWN0LgorICoKKyAqIFxwYXJhbVtpbixvdXRdIG9wZXJhdGlvbiBJbml0aWFsaXplZCBNQUMgb3BlcmF0aW9uLgorICoKKyAqIFxyZXR2YWwgI1BTQV9TVUNDRVNTIFxlbXB0eWRlc2NyaXB0aW9uCisgKiBccmV0dmFsICNQU0FfRVJST1JfQ09NTVVOSUNBVElPTl9GQUlMVVJFIFxlbXB0eWRlc2NyaXB0aW9uCisgKiBccmV0dmFsICNQU0FfRVJST1JfSEFSRFdBUkVfRkFJTFVSRSBcZW1wdHlkZXNjcmlwdGlvbgorICogXHJldHZhbCAjUFNBX0VSUk9SX0NPUlJVUFRJT05fREVURUNURUQgXGVtcHR5ZGVzY3JpcHRpb24KKyAqIFxyZXR2YWwgI1BTQV9FUlJPUl9CQURfU1RBVEUKKyAqICAgICAgICAgVGhlIGxpYnJhcnkgaGFzIG5vdCBiZWVuIHByZXZpb3VzbHkgaW5pdGlhbGl6ZWQgYnkgcHNhX2NyeXB0b19pbml0KCkuCisgKiAgICAgICAgIEl0IGlzIGltcGxlbWVudGF0aW9uLWRlcGVuZGVudCB3aGV0aGVyIGEgZmFpbHVyZSB0byBpbml0aWFsaXplCisgKiAgICAgICAgIHJlc3VsdHMgaW4gdGhpcyBlcnJvciBjb2RlLgorICovCitwc2Ffc3RhdHVzX3QgcHNhX21hY19hYm9ydChwc2FfbWFjX29wZXJhdGlvbl90ICpvcGVyYXRpb24pOworCisvKiogRW5jcnlwdCBhIG1lc3NhZ2UgdXNpbmcgYSBzeW1tZXRyaWMgY2lwaGVyLgorICoKKyAqIFRoaXMgZnVuY3Rpb24gZW5jcnlwdHMgYSBtZXNzYWdlIHdpdGggYSByYW5kb20gSVYgKGluaXRpYWxpemF0aW9uCisgKiB2ZWN0b3IpLiBVc2UgdGhlIG11bHRpcGFydCBvcGVyYXRpb24gaW50ZXJmYWNlIHdpdGggYQorICogI3BzYV9jaXBoZXJfb3BlcmF0aW9uX3Qgb2JqZWN0IHRvIHByb3ZpZGUgb3RoZXIgZm9ybXMgb2YgSVYuCisgKgorICogXHBhcmFtIGtleSAgICAgICAgICAgICAgICAgICBJZGVudGlmaWVyIG9mIHRoZSBrZXkgdG8gdXNlIGZvciB0aGUgb3BlcmF0aW9uLgorICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJdCBtdXN0IGFsbG93IHRoZSB1c2FnZSAjUFNBX0tFWV9VU0FHRV9FTkNSWVBULgorICogXHBhcmFtIGFsZyAgICAgICAgICAgICAgICAgICBUaGUgY2lwaGVyIGFsZ29yaXRobSB0byBjb21wdXRlCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChcYyBQU0FfQUxHX1hYWCB2YWx1ZSBzdWNoIHRoYXQKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgI1BTQV9BTEdfSVNfQ0lQSEVSKFxwIGFsZykgaXMgdHJ1ZSkuCisgKiBccGFyYW1baW5dIGlucHV0ICAgICAgICAgICAgIEJ1ZmZlciBjb250YWluaW5nIHRoZSBtZXNzYWdlIHRvIGVuY3J5cHQuCisgKiBccGFyYW0gaW5wdXRfbGVuZ3RoICAgICAgICAgIFNpemUgb2YgdGhlIFxwIGlucHV0IGJ1ZmZlciBpbiBieXRlcy4KKyAqIFxwYXJhbVtvdXRdIG91dHB1dCAgICAgICAgICAgQnVmZmVyIHdoZXJlIHRoZSBvdXRwdXQgaXMgdG8gYmUgd3JpdHRlbi4KKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVGhlIG91dHB1dCBjb250YWlucyB0aGUgSVYgZm9sbG93ZWQgYnkKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlIGNpcGhlcnRleHQgcHJvcGVyLgorICogXHBhcmFtIG91dHB1dF9zaXplICAgICAgICAgICBTaXplIG9mIHRoZSBccCBvdXRwdXQgYnVmZmVyIGluIGJ5dGVzLgorICogXHBhcmFtW291dF0gb3V0cHV0X2xlbmd0aCAgICBPbiBzdWNjZXNzLCB0aGUgbnVtYmVyIG9mIGJ5dGVzCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoYXQgbWFrZSB1cCB0aGUgb3V0cHV0LgorICoKKyAqIFxyZXR2YWwgI1BTQV9TVUNDRVNTCisgKiAgICAgICAgIFN1Y2Nlc3MuCisgKiBccmV0dmFsICNQU0FfRVJST1JfSU5WQUxJRF9IQU5ETEUgXGVtcHR5ZGVzY3JpcHRpb24KKyAqIFxyZXR2YWwgI1BTQV9FUlJPUl9OT1RfUEVSTUlUVEVEIFxlbXB0eWRlc2NyaXB0aW9uCisgKiBccmV0dmFsICNQU0FfRVJST1JfSU5WQUxJRF9BUkdVTUVOVAorICogICAgICAgICBccCBrZXkgaXMgbm90IGNvbXBhdGlibGUgd2l0aCBccCBhbGcuCisgKiBccmV0dmFsICNQU0FfRVJST1JfTk9UX1NVUFBPUlRFRAorICogICAgICAgICBccCBhbGcgaXMgbm90IHN1cHBvcnRlZCBvciBpcyBub3QgYSBjaXBoZXIgYWxnb3JpdGhtLgorICogXHJldHZhbCAjUFNBX0VSUk9SX0JVRkZFUl9UT09fU01BTEwgXGVtcHR5ZGVzY3JpcHRpb24KKyAqIFxyZXR2YWwgI1BTQV9FUlJPUl9JTlNVRkZJQ0lFTlRfTUVNT1JZIFxlbXB0eWRlc2NyaXB0aW9uCisgKiBccmV0dmFsICNQU0FfRVJST1JfQ09NTVVOSUNBVElPTl9GQUlMVVJFIFxlbXB0eWRlc2NyaXB0aW9uCisgKiBccmV0dmFsICNQU0FfRVJST1JfSEFSRFdBUkVfRkFJTFVSRSBcZW1wdHlkZXNjcmlwdGlvbgorICogXHJldHZhbCAjUFNBX0VSUk9SX0NPUlJVUFRJT05fREVURUNURUQgXGVtcHR5ZGVzY3JpcHRpb24KKyAqIFxyZXR2YWwgI1BTQV9FUlJPUl9TVE9SQUdFX0ZBSUxVUkUgXGVtcHR5ZGVzY3JpcHRpb24KKyAqIFxyZXR2YWwgI1BTQV9FUlJPUl9CQURfU1RBVEUKKyAqICAgICAgICAgVGhlIGxpYnJhcnkgaGFzIG5vdCBiZWVuIHByZXZpb3VzbHkgaW5pdGlhbGl6ZWQgYnkgcHNhX2NyeXB0b19pbml0KCkuCisgKiAgICAgICAgIEl0IGlzIGltcGxlbWVudGF0aW9uLWRlcGVuZGVudCB3aGV0aGVyIGEgZmFpbHVyZSB0byBpbml0aWFsaXplCisgKiAgICAgICAgIHJlc3VsdHMgaW4gdGhpcyBlcnJvciBjb2RlLgorICovCitwc2Ffc3RhdHVzX3QgcHNhX2NpcGhlcl9lbmNyeXB0KG1iZWR0bHNfc3ZjX2tleV9pZF90IGtleSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHNhX2FsZ29yaXRobV90IGFsZywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdWludDhfdCAqaW5wdXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBpbnB1dF9sZW5ndGgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQ4X3QgKm91dHB1dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IG91dHB1dF9zaXplLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgKm91dHB1dF9sZW5ndGgpOworCisvKiogRGVjcnlwdCBhIG1lc3NhZ2UgdXNpbmcgYSBzeW1tZXRyaWMgY2lwaGVyLgorICoKKyAqIFRoaXMgZnVuY3Rpb24gZGVjcnlwdHMgYSBtZXNzYWdlIGVuY3J5cHRlZCB3aXRoIGEgc3ltbWV0cmljIGNpcGhlci4KKyAqCisgKiBccGFyYW0ga2V5ICAgICAgICAgICAgICAgICAgIElkZW50aWZpZXIgb2YgdGhlIGtleSB0byB1c2UgZm9yIHRoZSBvcGVyYXRpb24uCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEl0IG11c3QgcmVtYWluIHZhbGlkIHVudGlsIHRoZSBvcGVyYXRpb24KKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGVybWluYXRlcy4gSXQgbXVzdCBhbGxvdyB0aGUgdXNhZ2UKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgI1BTQV9LRVlfVVNBR0VfREVDUllQVC4KKyAqIFxwYXJhbSBhbGcgICAgICAgICAgICAgICAgICAgVGhlIGNpcGhlciBhbGdvcml0aG0gdG8gY29tcHV0ZQorICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoXGMgUFNBX0FMR19YWFggdmFsdWUgc3VjaCB0aGF0CisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICNQU0FfQUxHX0lTX0NJUEhFUihccCBhbGcpIGlzIHRydWUpLgorICogXHBhcmFtW2luXSBpbnB1dCAgICAgICAgICAgICBCdWZmZXIgY29udGFpbmluZyB0aGUgbWVzc2FnZSB0byBkZWNyeXB0LgorICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUaGlzIGNvbnNpc3RzIG9mIHRoZSBJViBmb2xsb3dlZCBieSB0aGUKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2lwaGVydGV4dCBwcm9wZXIuCisgKiBccGFyYW0gaW5wdXRfbGVuZ3RoICAgICAgICAgIFNpemUgb2YgdGhlIFxwIGlucHV0IGJ1ZmZlciBpbiBieXRlcy4KKyAqIFxwYXJhbVtvdXRdIG91dHB1dCAgICAgICAgICAgQnVmZmVyIHdoZXJlIHRoZSBwbGFpbnRleHQgaXMgdG8gYmUgd3JpdHRlbi4KKyAqIFxwYXJhbSBvdXRwdXRfc2l6ZSAgICAgICAgICAgU2l6ZSBvZiB0aGUgXHAgb3V0cHV0IGJ1ZmZlciBpbiBieXRlcy4KKyAqIFxwYXJhbVtvdXRdIG91dHB1dF9sZW5ndGggICAgT24gc3VjY2VzcywgdGhlIG51bWJlciBvZiBieXRlcworICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGF0IG1ha2UgdXAgdGhlIG91dHB1dC4KKyAqCisgKiBccmV0dmFsICNQU0FfU1VDQ0VTUworICogICAgICAgICBTdWNjZXNzLgorICogXHJldHZhbCAjUFNBX0VSUk9SX0lOVkFMSURfSEFORExFIFxlbXB0eWRlc2NyaXB0aW9uCisgKiBccmV0dmFsICNQU0FfRVJST1JfTk9UX1BFUk1JVFRFRCBcZW1wdHlkZXNjcmlwdGlvbgorICogXHJldHZhbCAjUFNBX0VSUk9SX0lOVkFMSURfQVJHVU1FTlQKKyAqICAgICAgICAgXHAga2V5IGlzIG5vdCBjb21wYXRpYmxlIHdpdGggXHAgYWxnLgorICogXHJldHZhbCAjUFNBX0VSUk9SX05PVF9TVVBQT1JURUQKKyAqICAgICAgICAgXHAgYWxnIGlzIG5vdCBzdXBwb3J0ZWQgb3IgaXMgbm90IGEgY2lwaGVyIGFsZ29yaXRobS4KKyAqIFxyZXR2YWwgI1BTQV9FUlJPUl9CVUZGRVJfVE9PX1NNQUxMIFxlbXB0eWRlc2NyaXB0aW9uCisgKiBccmV0dmFsICNQU0FfRVJST1JfSU5TVUZGSUNJRU5UX01FTU9SWSBcZW1wdHlkZXNjcmlwdGlvbgorICogXHJldHZhbCAjUFNBX0VSUk9SX0NPTU1VTklDQVRJT05fRkFJTFVSRSBcZW1wdHlkZXNjcmlwdGlvbgorICogXHJldHZhbCAjUFNBX0VSUk9SX0hBUkRXQVJFX0ZBSUxVUkUgXGVtcHR5ZGVzY3JpcHRpb24KKyAqIFxyZXR2YWwgI1BTQV9FUlJPUl9TVE9SQUdFX0ZBSUxVUkUgXGVtcHR5ZGVzY3JpcHRpb24KKyAqIFxyZXR2YWwgI1BTQV9FUlJPUl9DT1JSVVBUSU9OX0RFVEVDVEVEIFxlbXB0eWRlc2NyaXB0aW9uCisgKiBccmV0dmFsICNQU0FfRVJST1JfQkFEX1NUQVRFCisgKiAgICAgICAgIFRoZSBsaWJyYXJ5IGhhcyBub3QgYmVlbiBwcmV2aW91c2x5IGluaXRpYWxpemVkIGJ5IHBzYV9jcnlwdG9faW5pdCgpLgorICogICAgICAgICBJdCBpcyBpbXBsZW1lbnRhdGlvbi1kZXBlbmRlbnQgd2hldGhlciBhIGZhaWx1cmUgdG8gaW5pdGlhbGl6ZQorICogICAgICAgICByZXN1bHRzIGluIHRoaXMgZXJyb3IgY29kZS4KKyAqLworcHNhX3N0YXR1c190IHBzYV9jaXBoZXJfZGVjcnlwdChtYmVkdGxzX3N2Y19rZXlfaWRfdCBrZXksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBzYV9hbGdvcml0aG1fdCBhbGcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVpbnQ4X3QgKmlucHV0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgaW5wdXRfbGVuZ3RoLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50OF90ICpvdXRwdXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBvdXRwdXRfc2l6ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90ICpvdXRwdXRfbGVuZ3RoKTsKKworLyoqIFRoZSB0eXBlIG9mIHRoZSBzdGF0ZSBkYXRhIHN0cnVjdHVyZSBmb3IgbXVsdGlwYXJ0IGNpcGhlciBvcGVyYXRpb25zLgorICoKKyAqIEJlZm9yZSBjYWxsaW5nIGFueSBmdW5jdGlvbiBvbiBhIGNpcGhlciBvcGVyYXRpb24gb2JqZWN0LCB0aGUgYXBwbGljYXRpb24KKyAqIG11c3QgaW5pdGlhbGl6ZSBpdCBieSBhbnkgb2YgdGhlIGZvbGxvd2luZyBtZWFuczoKKyAqIC0gU2V0IHRoZSBzdHJ1Y3R1cmUgdG8gYWxsLWJpdHMtemVybywgZm9yIGV4YW1wbGU6CisgKiAgIFxjb2RlCisgKiAgIHBzYV9jaXBoZXJfb3BlcmF0aW9uX3Qgb3BlcmF0aW9uOworICogICBtZW1zZXQoJm9wZXJhdGlvbiwgMCwgc2l6ZW9mKG9wZXJhdGlvbikpOworICogICBcZW5kY29kZQorICogLSBJbml0aWFsaXplIHRoZSBzdHJ1Y3R1cmUgdG8gbG9naWNhbCB6ZXJvIHZhbHVlcywgZm9yIGV4YW1wbGU6CisgKiAgIFxjb2RlCisgKiAgIHBzYV9jaXBoZXJfb3BlcmF0aW9uX3Qgb3BlcmF0aW9uID0gezB9OworICogICBcZW5kY29kZQorICogLSBJbml0aWFsaXplIHRoZSBzdHJ1Y3R1cmUgdG8gdGhlIGluaXRpYWxpemVyICNQU0FfQ0lQSEVSX09QRVJBVElPTl9JTklULAorICogICBmb3IgZXhhbXBsZToKKyAqICAgXGNvZGUKKyAqICAgcHNhX2NpcGhlcl9vcGVyYXRpb25fdCBvcGVyYXRpb24gPSBQU0FfQ0lQSEVSX09QRVJBVElPTl9JTklUOworICogICBcZW5kY29kZQorICogLSBBc3NpZ24gdGhlIHJlc3VsdCBvZiB0aGUgZnVuY3Rpb24gcHNhX2NpcGhlcl9vcGVyYXRpb25faW5pdCgpCisgKiAgIHRvIHRoZSBzdHJ1Y3R1cmUsIGZvciBleGFtcGxlOgorICogICBcY29kZQorICogICBwc2FfY2lwaGVyX29wZXJhdGlvbl90IG9wZXJhdGlvbjsKKyAqICAgb3BlcmF0aW9uID0gcHNhX2NpcGhlcl9vcGVyYXRpb25faW5pdCgpOworICogICBcZW5kY29kZQorICoKKyAqIFRoaXMgaXMgYW4gaW1wbGVtZW50YXRpb24tZGVmaW5lZCBcYyBzdHJ1Y3QuIEFwcGxpY2F0aW9ucyBzaG91bGQgbm90CisgKiBtYWtlIGFueSBhc3N1bXB0aW9ucyBhYm91dCB0aGUgY29udGVudCBvZiB0aGlzIHN0cnVjdHVyZS4KKyAqIEltcGxlbWVudGF0aW9uIGRldGFpbHMgY2FuIGNoYW5nZSBpbiBmdXR1cmUgdmVyc2lvbnMgd2l0aG91dCBub3RpY2UuICovCit0eXBlZGVmIHN0cnVjdCBwc2FfY2lwaGVyX29wZXJhdGlvbl9zIHBzYV9jaXBoZXJfb3BlcmF0aW9uX3Q7CisKKy8qKiBcZGVmIFBTQV9DSVBIRVJfT1BFUkFUSU9OX0lOSVQKKyAqCisgKiBUaGlzIG1hY3JvIHJldHVybnMgYSBzdWl0YWJsZSBpbml0aWFsaXplciBmb3IgYSBjaXBoZXIgb3BlcmF0aW9uIG9iamVjdCBvZgorICogdHlwZSAjcHNhX2NpcGhlcl9vcGVyYXRpb25fdC4KKyAqLworCisvKiogUmV0dXJuIGFuIGluaXRpYWwgdmFsdWUgZm9yIGEgY2lwaGVyIG9wZXJhdGlvbiBvYmplY3QuCisgKi8KK3N0YXRpYyBwc2FfY2lwaGVyX29wZXJhdGlvbl90IHBzYV9jaXBoZXJfb3BlcmF0aW9uX2luaXQodm9pZCk7CisKKy8qKiBTZXQgdGhlIGtleSBmb3IgYSBtdWx0aXBhcnQgc3ltbWV0cmljIGVuY3J5cHRpb24gb3BlcmF0aW9uLgorICoKKyAqIFRoZSBzZXF1ZW5jZSBvZiBvcGVyYXRpb25zIHRvIGVuY3J5cHQgYSBtZXNzYWdlIHdpdGggYSBzeW1tZXRyaWMgY2lwaGVyCisgKiBpcyBhcyBmb2xsb3dzOgorICogLSMgQWxsb2NhdGUgYW4gb3BlcmF0aW9uIG9iamVjdCB3aGljaCB3aWxsIGJlIHBhc3NlZCB0byBhbGwgdGhlIGZ1bmN0aW9ucworICogICAgbGlzdGVkIGhlcmUuCisgKiAtIyBJbml0aWFsaXplIHRoZSBvcGVyYXRpb24gb2JqZWN0IHdpdGggb25lIG9mIHRoZSBtZXRob2RzIGRlc2NyaWJlZCBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gZm9yICNwc2FfY2lwaGVyX29wZXJhdGlvbl90LCBlLmcuCisgKiAgICAjUFNBX0NJUEhFUl9PUEVSQVRJT05fSU5JVC4KKyAqIC0jIENhbGwgcHNhX2NpcGhlcl9lbmNyeXB0X3NldHVwKCkgdG8gc3BlY2lmeSB0aGUgYWxnb3JpdGhtIGFuZCBrZXkuCisgKiAtIyBDYWxsIGVpdGhlciBwc2FfY2lwaGVyX2dlbmVyYXRlX2l2KCkgb3IgcHNhX2NpcGhlcl9zZXRfaXYoKSB0bworICogICAgZ2VuZXJhdGUgb3Igc2V0IHRoZSBJViAoaW5pdGlhbGl6YXRpb24gdmVjdG9yKS4gWW91IHNob3VsZCB1c2UKKyAqICAgIHBzYV9jaXBoZXJfZ2VuZXJhdGVfaXYoKSB1bmxlc3MgdGhlIHByb3RvY29sIHlvdSBhcmUgaW1wbGVtZW50aW5nCisgKiAgICByZXF1aXJlcyBhIHNwZWNpZmljIElWIHZhbHVlLgorICogLSMgQ2FsbCBwc2FfY2lwaGVyX3VwZGF0ZSgpIHplcm8sIG9uZSBvciBtb3JlIHRpbWVzLCBwYXNzaW5nIGEgZnJhZ21lbnQKKyAqICAgIG9mIHRoZSBtZXNzYWdlIGVhY2ggdGltZS4KKyAqIC0jIENhbGwgcHNhX2NpcGhlcl9maW5pc2goKS4KKyAqCisgKiBJZiBhbiBlcnJvciBvY2N1cnMgYXQgYW55IHN0ZXAgYWZ0ZXIgYSBjYWxsIHRvIHBzYV9jaXBoZXJfZW5jcnlwdF9zZXR1cCgpLAorICogdGhlIG9wZXJhdGlvbiB3aWxsIG5lZWQgdG8gYmUgcmVzZXQgYnkgYSBjYWxsIHRvIHBzYV9jaXBoZXJfYWJvcnQoKS4gVGhlCisgKiBhcHBsaWNhdGlvbiBtYXkgY2FsbCBwc2FfY2lwaGVyX2Fib3J0KCkgYXQgYW55IHRpbWUgYWZ0ZXIgdGhlIG9wZXJhdGlvbgorICogaGFzIGJlZW4gaW5pdGlhbGl6ZWQuCisgKgorICogQWZ0ZXIgYSBzdWNjZXNzZnVsIGNhbGwgdG8gcHNhX2NpcGhlcl9lbmNyeXB0X3NldHVwKCksIHRoZSBhcHBsaWNhdGlvbiBtdXN0CisgKiBldmVudHVhbGx5IHRlcm1pbmF0ZSB0aGUgb3BlcmF0aW9uLiBUaGUgZm9sbG93aW5nIGV2ZW50cyB0ZXJtaW5hdGUgYW4KKyAqIG9wZXJhdGlvbjoKKyAqIC0gQSBzdWNjZXNzZnVsIGNhbGwgdG8gcHNhX2NpcGhlcl9maW5pc2goKS4KKyAqIC0gQSBjYWxsIHRvIHBzYV9jaXBoZXJfYWJvcnQoKS4KKyAqCisgKiBccGFyYW1baW4sb3V0XSBvcGVyYXRpb24gICAgIFRoZSBvcGVyYXRpb24gb2JqZWN0IHRvIHNldCB1cC4gSXQgbXVzdCBoYXZlCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJlZW4gaW5pdGlhbGl6ZWQgYXMgcGVyIHRoZSBkb2N1bWVudGF0aW9uIGZvcgorICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjcHNhX2NpcGhlcl9vcGVyYXRpb25fdCBhbmQgbm90IHlldCBpbiB1c2UuCisgKiBccGFyYW0ga2V5ICAgICAgICAgICAgICAgICAgIElkZW50aWZpZXIgb2YgdGhlIGtleSB0byB1c2UgZm9yIHRoZSBvcGVyYXRpb24uCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEl0IG11c3QgcmVtYWluIHZhbGlkIHVudGlsIHRoZSBvcGVyYXRpb24KKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGVybWluYXRlcy4gSXQgbXVzdCBhbGxvdyB0aGUgdXNhZ2UKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgI1BTQV9LRVlfVVNBR0VfRU5DUllQVC4KKyAqIFxwYXJhbSBhbGcgICAgICAgICAgICAgICAgICAgVGhlIGNpcGhlciBhbGdvcml0aG0gdG8gY29tcHV0ZQorICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoXGMgUFNBX0FMR19YWFggdmFsdWUgc3VjaCB0aGF0CisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICNQU0FfQUxHX0lTX0NJUEhFUihccCBhbGcpIGlzIHRydWUpLgorICoKKyAqIFxyZXR2YWwgI1BTQV9TVUNDRVNTCisgKiAgICAgICAgIFN1Y2Nlc3MuCisgKiBccmV0dmFsICNQU0FfRVJST1JfSU5WQUxJRF9IQU5ETEUgXGVtcHR5ZGVzY3JpcHRpb24KKyAqIFxyZXR2YWwgI1BTQV9FUlJPUl9OT1RfUEVSTUlUVEVEIFxlbXB0eWRlc2NyaXB0aW9uCisgKiBccmV0dmFsICNQU0FfRVJST1JfSU5WQUxJRF9BUkdVTUVOVAorICogICAgICAgICBccCBrZXkgaXMgbm90IGNvbXBhdGlibGUgd2l0aCBccCBhbGcuCisgKiBccmV0dmFsICNQU0FfRVJST1JfTk9UX1NVUFBPUlRFRAorICogICAgICAgICBccCBhbGcgaXMgbm90IHN1cHBvcnRlZCBvciBpcyBub3QgYSBjaXBoZXIgYWxnb3JpdGhtLgorICogXHJldHZhbCAjUFNBX0VSUk9SX0lOU1VGRklDSUVOVF9NRU1PUlkgXGVtcHR5ZGVzY3JpcHRpb24KKyAqIFxyZXR2YWwgI1BTQV9FUlJPUl9DT01NVU5JQ0FUSU9OX0ZBSUxVUkUgXGVtcHR5ZGVzY3JpcHRpb24KKyAqIFxyZXR2YWwgI1BTQV9FUlJPUl9IQVJEV0FSRV9GQUlMVVJFIFxlbXB0eWRlc2NyaXB0aW9uCisgKiBccmV0dmFsICNQU0FfRVJST1JfQ09SUlVQVElPTl9ERVRFQ1RFRCBcZW1wdHlkZXNjcmlwdGlvbgorICogXHJldHZhbCAjUFNBX0VSUk9SX1NUT1JBR0VfRkFJTFVSRSBcZW1wdHlkZXNjcmlwdGlvbgorICogXHJldHZhbCAjUFNBX0VSUk9SX0JBRF9TVEFURQorICogICAgICAgICBUaGUgb3BlcmF0aW9uIHN0YXRlIGlzIG5vdCB2YWxpZCAoaXQgbXVzdCBiZSBpbmFjdGl2ZSksIG9yCisgKiAgICAgICAgIHRoZSBsaWJyYXJ5IGhhcyBub3QgYmVlbiBwcmV2aW91c2x5IGluaXRpYWxpemVkIGJ5IHBzYV9jcnlwdG9faW5pdCgpLgorICogICAgICAgICBJdCBpcyBpbXBsZW1lbnRhdGlvbi1kZXBlbmRlbnQgd2hldGhlciBhIGZhaWx1cmUgdG8gaW5pdGlhbGl6ZQorICogICAgICAgICByZXN1bHRzIGluIHRoaXMgZXJyb3IgY29kZS4KKyAqLworcHNhX3N0YXR1c190IHBzYV9jaXBoZXJfZW5jcnlwdF9zZXR1cChwc2FfY2lwaGVyX29wZXJhdGlvbl90ICpvcGVyYXRpb24sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1iZWR0bHNfc3ZjX2tleV9pZF90IGtleSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHNhX2FsZ29yaXRobV90IGFsZyk7CisKKy8qKiBTZXQgdGhlIGtleSBmb3IgYSBtdWx0aXBhcnQgc3ltbWV0cmljIGRlY3J5cHRpb24gb3BlcmF0aW9uLgorICoKKyAqIFRoZSBzZXF1ZW5jZSBvZiBvcGVyYXRpb25zIHRvIGRlY3J5cHQgYSBtZXNzYWdlIHdpdGggYSBzeW1tZXRyaWMgY2lwaGVyCisgKiBpcyBhcyBmb2xsb3dzOgorICogLSMgQWxsb2NhdGUgYW4gb3BlcmF0aW9uIG9iamVjdCB3aGljaCB3aWxsIGJlIHBhc3NlZCB0byBhbGwgdGhlIGZ1bmN0aW9ucworICogICAgbGlzdGVkIGhlcmUuCisgKiAtIyBJbml0aWFsaXplIHRoZSBvcGVyYXRpb24gb2JqZWN0IHdpdGggb25lIG9mIHRoZSBtZXRob2RzIGRlc2NyaWJlZCBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gZm9yICNwc2FfY2lwaGVyX29wZXJhdGlvbl90LCBlLmcuCisgKiAgICAjUFNBX0NJUEhFUl9PUEVSQVRJT05fSU5JVC4KKyAqIC0jIENhbGwgcHNhX2NpcGhlcl9kZWNyeXB0X3NldHVwKCkgdG8gc3BlY2lmeSB0aGUgYWxnb3JpdGhtIGFuZCBrZXkuCisgKiAtIyBDYWxsIHBzYV9jaXBoZXJfc2V0X2l2KCkgd2l0aCB0aGUgSVYgKGluaXRpYWxpemF0aW9uIHZlY3RvcikgZm9yIHRoZQorICogICAgZGVjcnlwdGlvbi4gSWYgdGhlIElWIGlzIHByZXBlbmRlZCB0byB0aGUgY2lwaGVydGV4dCwgeW91IGNhbiBjYWxsCisgKiAgICBwc2FfY2lwaGVyX3VwZGF0ZSgpIG9uIGEgYnVmZmVyIGNvbnRhaW5pbmcgdGhlIElWIGZvbGxvd2VkIGJ5IHRoZQorICogICAgYmVnaW5uaW5nIG9mIHRoZSBtZXNzYWdlLgorICogLSMgQ2FsbCBwc2FfY2lwaGVyX3VwZGF0ZSgpIHplcm8sIG9uZSBvciBtb3JlIHRpbWVzLCBwYXNzaW5nIGEgZnJhZ21lbnQKKyAqICAgIG9mIHRoZSBtZXNzYWdlIGVhY2ggdGltZS4KKyAqIC0jIENhbGwgcHNhX2NpcGhlcl9maW5pc2goKS4KKyAqCisgKiBJZiBhbiBlcnJvciBvY2N1cnMgYXQgYW55IHN0ZXAgYWZ0ZXIgYSBjYWxsIHRvIHBzYV9jaXBoZXJfZGVjcnlwdF9zZXR1cCgpLAorICogdGhlIG9wZXJhdGlvbiB3aWxsIG5lZWQgdG8gYmUgcmVzZXQgYnkgYSBjYWxsIHRvIHBzYV9jaXBoZXJfYWJvcnQoKS4gVGhlCisgKiBhcHBsaWNhdGlvbiBtYXkgY2FsbCBwc2FfY2lwaGVyX2Fib3J0KCkgYXQgYW55IHRpbWUgYWZ0ZXIgdGhlIG9wZXJhdGlvbgorICogaGFzIGJlZW4gaW5pdGlhbGl6ZWQuCisgKgorICogQWZ0ZXIgYSBzdWNjZXNzZnVsIGNhbGwgdG8gcHNhX2NpcGhlcl9kZWNyeXB0X3NldHVwKCksIHRoZSBhcHBsaWNhdGlvbiBtdXN0CisgKiBldmVudHVhbGx5IHRlcm1pbmF0ZSB0aGUgb3BlcmF0aW9uLiBUaGUgZm9sbG93aW5nIGV2ZW50cyB0ZXJtaW5hdGUgYW4KKyAqIG9wZXJhdGlvbjoKKyAqIC0gQSBzdWNjZXNzZnVsIGNhbGwgdG8gcHNhX2NpcGhlcl9maW5pc2goKS4KKyAqIC0gQSBjYWxsIHRvIHBzYV9jaXBoZXJfYWJvcnQoKS4KKyAqCisgKiBccGFyYW1baW4sb3V0XSBvcGVyYXRpb24gICAgIFRoZSBvcGVyYXRpb24gb2JqZWN0IHRvIHNldCB1cC4gSXQgbXVzdCBoYXZlCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJlZW4gaW5pdGlhbGl6ZWQgYXMgcGVyIHRoZSBkb2N1bWVudGF0aW9uIGZvcgorICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjcHNhX2NpcGhlcl9vcGVyYXRpb25fdCBhbmQgbm90IHlldCBpbiB1c2UuCisgKiBccGFyYW0ga2V5ICAgICAgICAgICAgICAgICAgIElkZW50aWZpZXIgb2YgdGhlIGtleSB0byB1c2UgZm9yIHRoZSBvcGVyYXRpb24uCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEl0IG11c3QgcmVtYWluIHZhbGlkIHVudGlsIHRoZSBvcGVyYXRpb24KKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGVybWluYXRlcy4gSXQgbXVzdCBhbGxvdyB0aGUgdXNhZ2UKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgI1BTQV9LRVlfVVNBR0VfREVDUllQVC4KKyAqIFxwYXJhbSBhbGcgICAgICAgICAgICAgICAgICAgVGhlIGNpcGhlciBhbGdvcml0aG0gdG8gY29tcHV0ZQorICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoXGMgUFNBX0FMR19YWFggdmFsdWUgc3VjaCB0aGF0CisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICNQU0FfQUxHX0lTX0NJUEhFUihccCBhbGcpIGlzIHRydWUpLgorICoKKyAqIFxyZXR2YWwgI1BTQV9TVUNDRVNTCisgKiAgICAgICAgIFN1Y2Nlc3MuCisgKiBccmV0dmFsICNQU0FfRVJST1JfSU5WQUxJRF9IQU5ETEUgXGVtcHR5ZGVzY3JpcHRpb24KKyAqIFxyZXR2YWwgI1BTQV9FUlJPUl9OT1RfUEVSTUlUVEVEIFxlbXB0eWRlc2NyaXB0aW9uCisgKiBccmV0dmFsICNQU0FfRVJST1JfSU5WQUxJRF9BUkdVTUVOVAorICogICAgICAgICBccCBrZXkgaXMgbm90IGNvbXBhdGlibGUgd2l0aCBccCBhbGcuCisgKiBccmV0dmFsICNQU0FfRVJST1JfTk9UX1NVUFBPUlRFRAorICogICAgICAgICBccCBhbGcgaXMgbm90IHN1cHBvcnRlZCBvciBpcyBub3QgYSBjaXBoZXIgYWxnb3JpdGhtLgorICogXHJldHZhbCAjUFNBX0VSUk9SX0lOU1VGRklDSUVOVF9NRU1PUlkgXGVtcHR5ZGVzY3JpcHRpb24KKyAqIFxyZXR2YWwgI1BTQV9FUlJPUl9DT01NVU5JQ0FUSU9OX0ZBSUxVUkUgXGVtcHR5ZGVzY3JpcHRpb24KKyAqIFxyZXR2YWwgI1BTQV9FUlJPUl9IQVJEV0FSRV9GQUlMVVJFIFxlbXB0eWRlc2NyaXB0aW9uCisgKiBccmV0dmFsICNQU0FfRVJST1JfQ09SUlVQVElPTl9ERVRFQ1RFRCBcZW1wdHlkZXNjcmlwdGlvbgorICogXHJldHZhbCAjUFNBX0VSUk9SX1NUT1JBR0VfRkFJTFVSRSBcZW1wdHlkZXNjcmlwdGlvbgorICogXHJldHZhbCAjUFNBX0VSUk9SX0JBRF9TVEFURQorICogICAgICAgICBUaGUgb3BlcmF0aW9uIHN0YXRlIGlzIG5vdCB2YWxpZCAoaXQgbXVzdCBiZSBpbmFjdGl2ZSksIG9yCisgKiAgICAgICAgIHRoZSBsaWJyYXJ5IGhhcyBub3QgYmVlbiBwcmV2aW91c2x5IGluaXRpYWxpemVkIGJ5IHBzYV9jcnlwdG9faW5pdCgpLgorICogICAgICAgICBJdCBpcyBpbXBsZW1lbnRhdGlvbi1kZXBlbmRlbnQgd2hldGhlciBhIGZhaWx1cmUgdG8gaW5pdGlhbGl6ZQorICogICAgICAgICByZXN1bHRzIGluIHRoaXMgZXJyb3IgY29kZS4KKyAqLworcHNhX3N0YXR1c190IHBzYV9jaXBoZXJfZGVjcnlwdF9zZXR1cChwc2FfY2lwaGVyX29wZXJhdGlvbl90ICpvcGVyYXRpb24sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1iZWR0bHNfc3ZjX2tleV9pZF90IGtleSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHNhX2FsZ29yaXRobV90IGFsZyk7CisKKy8qKiBHZW5lcmF0ZSBhbiBJViBmb3IgYSBzeW1tZXRyaWMgZW5jcnlwdGlvbiBvcGVyYXRpb24uCisgKgorICogVGhpcyBmdW5jdGlvbiBnZW5lcmF0ZXMgYSByYW5kb20gSVYgKGluaXRpYWxpemF0aW9uIHZlY3RvciksIG5vbmNlCisgKiBvciBpbml0aWFsIGNvdW50ZXIgdmFsdWUgZm9yIHRoZSBlbmNyeXB0aW9uIG9wZXJhdGlvbiBhcyBhcHByb3ByaWF0ZQorICogZm9yIHRoZSBjaG9zZW4gYWxnb3JpdGhtLCBrZXkgdHlwZSBhbmQga2V5IHNpemUuCisgKgorICogVGhlIGFwcGxpY2F0aW9uIG11c3QgY2FsbCBwc2FfY2lwaGVyX2VuY3J5cHRfc2V0dXAoKSBiZWZvcmUKKyAqIGNhbGxpbmcgdGhpcyBmdW5jdGlvbi4KKyAqCisgKiBJZiB0aGlzIGZ1bmN0aW9uIHJldHVybnMgYW4gZXJyb3Igc3RhdHVzLCB0aGUgb3BlcmF0aW9uIGVudGVycyBhbiBlcnJvcgorICogc3RhdGUgYW5kIG11c3QgYmUgYWJvcnRlZCBieSBjYWxsaW5nIHBzYV9jaXBoZXJfYWJvcnQoKS4KKyAqCisgKiBccGFyYW1baW4sb3V0XSBvcGVyYXRpb24gICAgIEFjdGl2ZSBjaXBoZXIgb3BlcmF0aW9uLgorICogXHBhcmFtW291dF0gaXYgICAgICAgICAgICAgICBCdWZmZXIgd2hlcmUgdGhlIGdlbmVyYXRlZCBJViBpcyB0byBiZSB3cml0dGVuLgorICogXHBhcmFtIGl2X3NpemUgICAgICAgICAgICAgICBTaXplIG9mIHRoZSBccCBpdiBidWZmZXIgaW4gYnl0ZXMuCisgKiBccGFyYW1bb3V0XSBpdl9sZW5ndGggICAgICAgIE9uIHN1Y2Nlc3MsIHRoZSBudW1iZXIgb2YgYnl0ZXMgb2YgdGhlCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdlbmVyYXRlZCBJVi4KKyAqCisgKiBccmV0dmFsICNQU0FfU1VDQ0VTUworICogICAgICAgICBTdWNjZXNzLgorICogXHJldHZhbCAjUFNBX0VSUk9SX0JVRkZFUl9UT09fU01BTEwKKyAqICAgICAgICAgVGhlIHNpemUgb2YgdGhlIFxwIGl2IGJ1ZmZlciBpcyB0b28gc21hbGwuCisgKiBccmV0dmFsICNQU0FfRVJST1JfSU5TVUZGSUNJRU5UX01FTU9SWSBcZW1wdHlkZXNjcmlwdGlvbgorICogXHJldHZhbCAjUFNBX0VSUk9SX0NPTU1VTklDQVRJT05fRkFJTFVSRSBcZW1wdHlkZXNjcmlwdGlvbgorICogXHJldHZhbCAjUFNBX0VSUk9SX0hBUkRXQVJFX0ZBSUxVUkUgXGVtcHR5ZGVzY3JpcHRpb24KKyAqIFxyZXR2YWwgI1BTQV9FUlJPUl9DT1JSVVBUSU9OX0RFVEVDVEVEIFxlbXB0eWRlc2NyaXB0aW9uCisgKiBccmV0dmFsICNQU0FfRVJST1JfU1RPUkFHRV9GQUlMVVJFIFxlbXB0eWRlc2NyaXB0aW9uCisgKiBccmV0dmFsICNQU0FfRVJST1JfQkFEX1NUQVRFCisgKiAgICAgICAgIFRoZSBvcGVyYXRpb24gc3RhdGUgaXMgbm90IHZhbGlkIChpdCBtdXN0IGJlIGFjdGl2ZSwgd2l0aCBubyBJViBzZXQpLAorICogICAgICAgICBvciB0aGUgbGlicmFyeSBoYXMgbm90IGJlZW4gcHJldmlvdXNseSBpbml0aWFsaXplZAorICogICAgICAgICBieSBwc2FfY3J5cHRvX2luaXQoKS4KKyAqICAgICAgICAgSXQgaXMgaW1wbGVtZW50YXRpb24tZGVwZW5kZW50IHdoZXRoZXIgYSBmYWlsdXJlIHRvIGluaXRpYWxpemUKKyAqICAgICAgICAgcmVzdWx0cyBpbiB0aGlzIGVycm9yIGNvZGUuCisgKi8KK3BzYV9zdGF0dXNfdCBwc2FfY2lwaGVyX2dlbmVyYXRlX2l2KHBzYV9jaXBoZXJfb3BlcmF0aW9uX3QgKm9wZXJhdGlvbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQ4X3QgKml2LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IGl2X3NpemUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgKml2X2xlbmd0aCk7CisKKy8qKiBTZXQgdGhlIElWIGZvciBhIHN5bW1ldHJpYyBlbmNyeXB0aW9uIG9yIGRlY3J5cHRpb24gb3BlcmF0aW9uLgorICoKKyAqIFRoaXMgZnVuY3Rpb24gc2V0cyB0aGUgSVYgKGluaXRpYWxpemF0aW9uIHZlY3RvciksIG5vbmNlCisgKiBvciBpbml0aWFsIGNvdW50ZXIgdmFsdWUgZm9yIHRoZSBlbmNyeXB0aW9uIG9yIGRlY3J5cHRpb24gb3BlcmF0aW9uLgorICoKKyAqIFRoZSBhcHBsaWNhdGlvbiBtdXN0IGNhbGwgcHNhX2NpcGhlcl9lbmNyeXB0X3NldHVwKCkgYmVmb3JlCisgKiBjYWxsaW5nIHRoaXMgZnVuY3Rpb24uCisgKgorICogSWYgdGhpcyBmdW5jdGlvbiByZXR1cm5zIGFuIGVycm9yIHN0YXR1cywgdGhlIG9wZXJhdGlvbiBlbnRlcnMgYW4gZXJyb3IKKyAqIHN0YXRlIGFuZCBtdXN0IGJlIGFib3J0ZWQgYnkgY2FsbGluZyBwc2FfY2lwaGVyX2Fib3J0KCkuCisgKgorICogXG5vdGUgV2hlbiBlbmNyeXB0aW5nLCBhcHBsaWNhdGlvbnMgc2hvdWxkIHVzZSBwc2FfY2lwaGVyX2dlbmVyYXRlX2l2KCkKKyAqIGluc3RlYWQgb2YgdGhpcyBmdW5jdGlvbiwgdW5sZXNzIGltcGxlbWVudGluZyBhIHByb3RvY29sIHRoYXQgcmVxdWlyZXMKKyAqIGEgbm9uLXJhbmRvbSBJVi4KKyAqCisgKiBccGFyYW1baW4sb3V0XSBvcGVyYXRpb24gICAgIEFjdGl2ZSBjaXBoZXIgb3BlcmF0aW9uLgorICogXHBhcmFtW2luXSBpdiAgICAgICAgICAgICAgICBCdWZmZXIgY29udGFpbmluZyB0aGUgSVYgdG8gdXNlLgorICogXHBhcmFtIGl2X2xlbmd0aCAgICAgICAgICAgICBTaXplIG9mIHRoZSBJViBpbiBieXRlcy4KKyAqCisgKiBccmV0dmFsICNQU0FfU1VDQ0VTUworICogICAgICAgICBTdWNjZXNzLgorICogXHJldHZhbCAjUFNBX0VSUk9SX0lOVkFMSURfQVJHVU1FTlQKKyAqICAgICAgICAgVGhlIHNpemUgb2YgXHAgaXYgaXMgbm90IGFjY2VwdGFibGUgZm9yIHRoZSBjaG9zZW4gYWxnb3JpdGhtLAorICogICAgICAgICBvciB0aGUgY2hvc2VuIGFsZ29yaXRobSBkb2VzIG5vdCB1c2UgYW4gSVYuCisgKiBccmV0dmFsICNQU0FfRVJST1JfSU5TVUZGSUNJRU5UX01FTU9SWSBcZW1wdHlkZXNjcmlwdGlvbgorICogXHJldHZhbCAjUFNBX0VSUk9SX0NPTU1VTklDQVRJT05fRkFJTFVSRSBcZW1wdHlkZXNjcmlwdGlvbgorICogXHJldHZhbCAjUFNBX0VSUk9SX0hBUkRXQVJFX0ZBSUxVUkUgXGVtcHR5ZGVzY3JpcHRpb24KKyAqIFxyZXR2YWwgI1BTQV9FUlJPUl9DT1JSVVBUSU9OX0RFVEVDVEVEIFxlbXB0eWRlc2NyaXB0aW9uCisgKiBccmV0dmFsICNQU0FfRVJST1JfU1RPUkFHRV9GQUlMVVJFIFxlbXB0eWRlc2NyaXB0aW9uCisgKiBccmV0dmFsICNQU0FfRVJST1JfQkFEX1NUQVRFCisgKiAgICAgICAgIFRoZSBvcGVyYXRpb24gc3RhdGUgaXMgbm90IHZhbGlkIChpdCBtdXN0IGJlIGFuIGFjdGl2ZSBjaXBoZXIKKyAqICAgICAgICAgZW5jcnlwdCBvcGVyYXRpb24sIHdpdGggbm8gSVYgc2V0KSwgb3IgdGhlIGxpYnJhcnkgaGFzIG5vdCBiZWVuCisgKiAgICAgICAgIHByZXZpb3VzbHkgaW5pdGlhbGl6ZWQgYnkgcHNhX2NyeXB0b19pbml0KCkuCisgKiAgICAgICAgIEl0IGlzIGltcGxlbWVudGF0aW9uLWRlcGVuZGVudCB3aGV0aGVyIGEgZmFpbHVyZSB0byBpbml0aWFsaXplCisgKiAgICAgICAgIHJlc3VsdHMgaW4gdGhpcyBlcnJvciBjb2RlLgorICovCitwc2Ffc3RhdHVzX3QgcHNhX2NpcGhlcl9zZXRfaXYocHNhX2NpcGhlcl9vcGVyYXRpb25fdCAqb3BlcmF0aW9uLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVpbnQ4X3QgKml2LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBpdl9sZW5ndGgpOworCisvKiogRW5jcnlwdCBvciBkZWNyeXB0IGEgbWVzc2FnZSBmcmFnbWVudCBpbiBhbiBhY3RpdmUgY2lwaGVyIG9wZXJhdGlvbi4KKyAqCisgKiBCZWZvcmUgY2FsbGluZyB0aGlzIGZ1bmN0aW9uLCB5b3UgbXVzdDoKKyAqIDEuIENhbGwgZWl0aGVyIHBzYV9jaXBoZXJfZW5jcnlwdF9zZXR1cCgpIG9yIHBzYV9jaXBoZXJfZGVjcnlwdF9zZXR1cCgpLgorICogICAgVGhlIGNob2ljZSBvZiBzZXR1cCBmdW5jdGlvbiBkZXRlcm1pbmVzIHdoZXRoZXIgdGhpcyBmdW5jdGlvbgorICogICAgZW5jcnlwdHMgb3IgZGVjcnlwdHMgaXRzIGlucHV0LgorICogMi4gSWYgdGhlIGFsZ29yaXRobSByZXF1aXJlcyBhbiBJViwgY2FsbCBwc2FfY2lwaGVyX2dlbmVyYXRlX2l2KCkKKyAqICAgIChyZWNvbW1lbmRlZCB3aGVuIGVuY3J5cHRpbmcpIG9yIHBzYV9jaXBoZXJfc2V0X2l2KCkuCisgKgorICogSWYgdGhpcyBmdW5jdGlvbiByZXR1cm5zIGFuIGVycm9yIHN0YXR1cywgdGhlIG9wZXJhdGlvbiBlbnRlcnMgYW4gZXJyb3IKKyAqIHN0YXRlIGFuZCBtdXN0IGJlIGFib3J0ZWQgYnkgY2FsbGluZyBwc2FfY2lwaGVyX2Fib3J0KCkuCisgKgorICogXHBhcmFtW2luLG91dF0gb3BlcmF0aW9uICAgICBBY3RpdmUgY2lwaGVyIG9wZXJhdGlvbi4KKyAqIFxwYXJhbVtpbl0gaW5wdXQgICAgICAgICAgICAgQnVmZmVyIGNvbnRhaW5pbmcgdGhlIG1lc3NhZ2UgZnJhZ21lbnQgdG8KKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5jcnlwdCBvciBkZWNyeXB0LgorICogXHBhcmFtIGlucHV0X2xlbmd0aCAgICAgICAgICBTaXplIG9mIHRoZSBccCBpbnB1dCBidWZmZXIgaW4gYnl0ZXMuCisgKiBccGFyYW1bb3V0XSBvdXRwdXQgICAgICAgICAgIEJ1ZmZlciB3aGVyZSB0aGUgb3V0cHV0IGlzIHRvIGJlIHdyaXR0ZW4uCisgKiBccGFyYW0gb3V0cHV0X3NpemUgICAgICAgICAgIFNpemUgb2YgdGhlIFxwIG91dHB1dCBidWZmZXIgaW4gYnl0ZXMuCisgKiBccGFyYW1bb3V0XSBvdXRwdXRfbGVuZ3RoICAgIE9uIHN1Y2Nlc3MsIHRoZSBudW1iZXIgb2YgYnl0ZXMKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhhdCBtYWtlIHVwIHRoZSByZXR1cm5lZCBvdXRwdXQuCisgKgorICogXHJldHZhbCAjUFNBX1NVQ0NFU1MKKyAqICAgICAgICAgU3VjY2Vzcy4KKyAqIFxyZXR2YWwgI1BTQV9FUlJPUl9CVUZGRVJfVE9PX1NNQUxMCisgKiAgICAgICAgIFRoZSBzaXplIG9mIHRoZSBccCBvdXRwdXQgYnVmZmVyIGlzIHRvbyBzbWFsbC4KKyAqIFxyZXR2YWwgI1BTQV9FUlJPUl9JTlNVRkZJQ0lFTlRfTUVNT1JZIFxlbXB0eWRlc2NyaXB0aW9uCisgKiBccmV0dmFsICNQU0FfRVJST1JfQ09NTVVOSUNBVElPTl9GQUlMVVJFIFxlbXB0eWRlc2NyaXB0aW9uCisgKiBccmV0dmFsICNQU0FfRVJST1JfSEFSRFdBUkVfRkFJTFVSRSBcZW1wdHlkZXNjcmlwdGlvbgorICogXHJldHZhbCAjUFNBX0VSUk9SX0NPUlJVUFRJT05fREVURUNURUQgXGVtcHR5ZGVzY3JpcHRpb24KKyAqIFxyZXR2YWwgI1BTQV9FUlJPUl9TVE9SQUdFX0ZBSUxVUkUgXGVtcHR5ZGVzY3JpcHRpb24KKyAqIFxyZXR2YWwgI1BTQV9FUlJPUl9CQURfU1RBVEUKKyAqICAgICAgICAgVGhlIG9wZXJhdGlvbiBzdGF0ZSBpcyBub3QgdmFsaWQgKGl0IG11c3QgYmUgYWN0aXZlLCB3aXRoIGFuIElWIHNldAorICogICAgICAgICBpZiByZXF1aXJlZCBmb3IgdGhlIGFsZ29yaXRobSksIG9yIHRoZSBsaWJyYXJ5IGhhcyBub3QgYmVlbgorICogICAgICAgICBwcmV2aW91c2x5IGluaXRpYWxpemVkIGJ5IHBzYV9jcnlwdG9faW5pdCgpLgorICogICAgICAgICBJdCBpcyBpbXBsZW1lbnRhdGlvbi1kZXBlbmRlbnQgd2hldGhlciBhIGZhaWx1cmUgdG8gaW5pdGlhbGl6ZQorICogICAgICAgICByZXN1bHRzIGluIHRoaXMgZXJyb3IgY29kZS4KKyAqLworcHNhX3N0YXR1c190IHBzYV9jaXBoZXJfdXBkYXRlKHBzYV9jaXBoZXJfb3BlcmF0aW9uX3QgKm9wZXJhdGlvbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1aW50OF90ICppbnB1dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgaW5wdXRfbGVuZ3RoLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQ4X3QgKm91dHB1dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3Qgb3V0cHV0X3NpemUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90ICpvdXRwdXRfbGVuZ3RoKTsKKworLyoqIEZpbmlzaCBlbmNyeXB0aW5nIG9yIGRlY3J5cHRpbmcgYSBtZXNzYWdlIGluIGEgY2lwaGVyIG9wZXJhdGlvbi4KKyAqCisgKiBUaGUgYXBwbGljYXRpb24gbXVzdCBjYWxsIHBzYV9jaXBoZXJfZW5jcnlwdF9zZXR1cCgpIG9yCisgKiBwc2FfY2lwaGVyX2RlY3J5cHRfc2V0dXAoKSBiZWZvcmUgY2FsbGluZyB0aGlzIGZ1bmN0aW9uLiBUaGUgY2hvaWNlCisgKiBvZiBzZXR1cCBmdW5jdGlvbiBkZXRlcm1pbmVzIHdoZXRoZXIgdGhpcyBmdW5jdGlvbiBlbmNyeXB0cyBvcgorICogZGVjcnlwdHMgaXRzIGlucHV0LgorICoKKyAqIFRoaXMgZnVuY3Rpb24gZmluaXNoZXMgdGhlIGVuY3J5cHRpb24gb3IgZGVjcnlwdGlvbiBvZiB0aGUgbWVzc2FnZQorICogZm9ybWVkIGJ5IGNvbmNhdGVuYXRpbmcgdGhlIGlucHV0cyBwYXNzZWQgdG8gcHJlY2VkaW5nIGNhbGxzIHRvCisgKiBwc2FfY2lwaGVyX3VwZGF0ZSgpLgorICoKKyAqIFdoZW4gdGhpcyBmdW5jdGlvbiByZXR1cm5zIHN1Y2Nlc3NmdWxseSwgdGhlIG9wZXJhdGlvbiBiZWNvbWVzIGluYWN0aXZlLgorICogSWYgdGhpcyBmdW5jdGlvbiByZXR1cm5zIGFuIGVycm9yIHN0YXR1cywgdGhlIG9wZXJhdGlvbiBlbnRlcnMgYW4gZXJyb3IKKyAqIHN0YXRlIGFuZCBtdXN0IGJlIGFib3J0ZWQgYnkgY2FsbGluZyBwc2FfY2lwaGVyX2Fib3J0KCkuCisgKgorICogXHBhcmFtW2luLG91dF0gb3BlcmF0aW9uICAgICBBY3RpdmUgY2lwaGVyIG9wZXJhdGlvbi4KKyAqIFxwYXJhbVtvdXRdIG91dHB1dCAgICAgICAgICAgQnVmZmVyIHdoZXJlIHRoZSBvdXRwdXQgaXMgdG8gYmUgd3JpdHRlbi4KKyAqIFxwYXJhbSBvdXRwdXRfc2l6ZSAgICAgICAgICAgU2l6ZSBvZiB0aGUgXHAgb3V0cHV0IGJ1ZmZlciBpbiBieXRlcy4KKyAqIFxwYXJhbVtvdXRdIG91dHB1dF9sZW5ndGggICAgT24gc3VjY2VzcywgdGhlIG51bWJlciBvZiBieXRlcworICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGF0IG1ha2UgdXAgdGhlIHJldHVybmVkIG91dHB1dC4KKyAqCisgKiBccmV0dmFsICNQU0FfU1VDQ0VTUworICogICAgICAgICBTdWNjZXNzLgorICogXHJldHZhbCAjUFNBX0VSUk9SX0lOVkFMSURfQVJHVU1FTlQKKyAqICAgICAgICAgVGhlIHRvdGFsIGlucHV0IHNpemUgcGFzc2VkIHRvIHRoaXMgb3BlcmF0aW9uIGlzIG5vdCB2YWxpZCBmb3IKKyAqICAgICAgICAgdGhpcyBwYXJ0aWN1bGFyIGFsZ29yaXRobS4gRm9yIGV4YW1wbGUsIHRoZSBhbGdvcml0aG0gaXMgYSBiYXNlZAorICogICAgICAgICBvbiBibG9jayBjaXBoZXIgYW5kIHJlcXVpcmVzIGEgd2hvbGUgbnVtYmVyIG9mIGJsb2NrcywgYnV0IHRoZQorICogICAgICAgICB0b3RhbCBpbnB1dCBzaXplIGlzIG5vdCBhIG11bHRpcGxlIG9mIHRoZSBibG9jayBzaXplLgorICogXHJldHZhbCAjUFNBX0VSUk9SX0lOVkFMSURfUEFERElORworICogICAgICAgICBUaGlzIGlzIGEgZGVjcnlwdGlvbiBvcGVyYXRpb24gZm9yIGFuIGFsZ29yaXRobSB0aGF0IGluY2x1ZGVzCisgKiAgICAgICAgIHBhZGRpbmcsIGFuZCB0aGUgY2lwaGVydGV4dCBkb2VzIG5vdCBjb250YWluIHZhbGlkIHBhZGRpbmcuCisgKiBccmV0dmFsICNQU0FfRVJST1JfQlVGRkVSX1RPT19TTUFMTAorICogICAgICAgICBUaGUgc2l6ZSBvZiB0aGUgXHAgb3V0cHV0IGJ1ZmZlciBpcyB0b28gc21hbGwuCisgKiBccmV0dmFsICNQU0FfRVJST1JfSU5TVUZGSUNJRU5UX01FTU9SWSBcZW1wdHlkZXNjcmlwdGlvbgorICogXHJldHZhbCAjUFNBX0VSUk9SX0NPTU1VTklDQVRJT05fRkFJTFVSRSBcZW1wdHlkZXNjcmlwdGlvbgorICogXHJldHZhbCAjUFNBX0VSUk9SX0hBUkRXQVJFX0ZBSUxVUkUgXGVtcHR5ZGVzY3JpcHRpb24KKyAqIFxyZXR2YWwgI1BTQV9FUlJPUl9DT1JSVVBUSU9OX0RFVEVDVEVEIFxlbXB0eWRlc2NyaXB0aW9uCisgKiBccmV0dmFsICNQU0FfRVJST1JfU1RPUkFHRV9GQUlMVVJFIFxlbXB0eWRlc2NyaXB0aW9uCisgKiBccmV0dmFsICNQU0FfRVJST1JfQkFEX1NUQVRFCisgKiAgICAgICAgIFRoZSBvcGVyYXRpb24gc3RhdGUgaXMgbm90IHZhbGlkIChpdCBtdXN0IGJlIGFjdGl2ZSwgd2l0aCBhbiBJViBzZXQKKyAqICAgICAgICAgaWYgcmVxdWlyZWQgZm9yIHRoZSBhbGdvcml0aG0pLCBvciB0aGUgbGlicmFyeSBoYXMgbm90IGJlZW4KKyAqICAgICAgICAgcHJldmlvdXNseSBpbml0aWFsaXplZCBieSBwc2FfY3J5cHRvX2luaXQoKS4KKyAqICAgICAgICAgSXQgaXMgaW1wbGVtZW50YXRpb24tZGVwZW5kZW50IHdoZXRoZXIgYSBmYWlsdXJlIHRvIGluaXRpYWxpemUKKyAqICAgICAgICAgcmVzdWx0cyBpbiB0aGlzIGVycm9yIGNvZGUuCisgKi8KK3BzYV9zdGF0dXNfdCBwc2FfY2lwaGVyX2ZpbmlzaChwc2FfY2lwaGVyX29wZXJhdGlvbl90ICpvcGVyYXRpb24sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDhfdCAqb3V0cHV0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBvdXRwdXRfc2l6ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgKm91dHB1dF9sZW5ndGgpOworCisvKiogQWJvcnQgYSBjaXBoZXIgb3BlcmF0aW9uLgorICoKKyAqIEFib3J0aW5nIGFuIG9wZXJhdGlvbiBmcmVlcyBhbGwgYXNzb2NpYXRlZCByZXNvdXJjZXMgZXhjZXB0IGZvciB0aGUKKyAqIFxwIG9wZXJhdGlvbiBzdHJ1Y3R1cmUgaXRzZWxmLiBPbmNlIGFib3J0ZWQsIHRoZSBvcGVyYXRpb24gb2JqZWN0CisgKiBjYW4gYmUgcmV1c2VkIGZvciBhbm90aGVyIG9wZXJhdGlvbiBieSBjYWxsaW5nCisgKiBwc2FfY2lwaGVyX2VuY3J5cHRfc2V0dXAoKSBvciBwc2FfY2lwaGVyX2RlY3J5cHRfc2V0dXAoKSBhZ2Fpbi4KKyAqCisgKiBZb3UgbWF5IGNhbGwgdGhpcyBmdW5jdGlvbiBhbnkgdGltZSBhZnRlciB0aGUgb3BlcmF0aW9uIG9iamVjdCBoYXMKKyAqIGJlZW4gaW5pdGlhbGl6ZWQgYXMgZGVzY3JpYmVkIGluICNwc2FfY2lwaGVyX29wZXJhdGlvbl90LgorICoKKyAqIEluIHBhcnRpY3VsYXIsIGNhbGxpbmcgcHNhX2NpcGhlcl9hYm9ydCgpIGFmdGVyIHRoZSBvcGVyYXRpb24gaGFzIGJlZW4KKyAqIHRlcm1pbmF0ZWQgYnkgYSBjYWxsIHRvIHBzYV9jaXBoZXJfYWJvcnQoKSBvciBwc2FfY2lwaGVyX2ZpbmlzaCgpCisgKiBpcyBzYWZlIGFuZCBoYXMgbm8gZWZmZWN0LgorICoKKyAqIFxwYXJhbVtpbixvdXRdIG9wZXJhdGlvbiAgICAgSW5pdGlhbGl6ZWQgY2lwaGVyIG9wZXJhdGlvbi4KKyAqCisgKiBccmV0dmFsICNQU0FfU1VDQ0VTUyBcZW1wdHlkZXNjcmlwdGlvbgorICogXHJldHZhbCAjUFNBX0VSUk9SX0NPTU1VTklDQVRJT05fRkFJTFVSRSBcZW1wdHlkZXNjcmlwdGlvbgorICogXHJldHZhbCAjUFNBX0VSUk9SX0hBUkRXQVJFX0ZBSUxVUkUgXGVtcHR5ZGVzY3JpcHRpb24KKyAqIFxyZXR2YWwgI1BTQV9FUlJPUl9DT1JSVVBUSU9OX0RFVEVDVEVEIFxlbXB0eWRlc2NyaXB0aW9uCisgKiBccmV0dmFsICNQU0FfRVJST1JfQkFEX1NUQVRFCisgKiAgICAgICAgIFRoZSBsaWJyYXJ5IGhhcyBub3QgYmVlbiBwcmV2aW91c2x5IGluaXRpYWxpemVkIGJ5IHBzYV9jcnlwdG9faW5pdCgpLgorICogICAgICAgICBJdCBpcyBpbXBsZW1lbnRhdGlvbi1kZXBlbmRlbnQgd2hldGhlciBhIGZhaWx1cmUgdG8gaW5pdGlhbGl6ZQorICogICAgICAgICByZXN1bHRzIGluIHRoaXMgZXJyb3IgY29kZS4KKyAqLworcHNhX3N0YXR1c190IHBzYV9jaXBoZXJfYWJvcnQocHNhX2NpcGhlcl9vcGVyYXRpb25fdCAqb3BlcmF0aW9uKTsKKworLyoqIFxkZWZncm91cCBrZXlfZGVyaXZhdGlvbiBLZXkgZGVyaXZhdGlvbiBhbmQgcHNldWRvcmFuZG9tIGdlbmVyYXRpb24KKyAqIEB7CisgKi8KKworLyoqIFRoZSB0eXBlIG9mIHRoZSBzdGF0ZSBkYXRhIHN0cnVjdHVyZSBmb3Iga2V5IGRlcml2YXRpb24gb3BlcmF0aW9ucy4KKyAqCisgKiBCZWZvcmUgY2FsbGluZyBhbnkgZnVuY3Rpb24gb24gYSBrZXkgZGVyaXZhdGlvbiBvcGVyYXRpb24gb2JqZWN0LCB0aGUKKyAqIGFwcGxpY2F0aW9uIG11c3QgaW5pdGlhbGl6ZSBpdCBieSBhbnkgb2YgdGhlIGZvbGxvd2luZyBtZWFuczoKKyAqIC0gU2V0IHRoZSBzdHJ1Y3R1cmUgdG8gYWxsLWJpdHMtemVybywgZm9yIGV4YW1wbGU6CisgKiAgIFxjb2RlCisgKiAgIHBzYV9rZXlfZGVyaXZhdGlvbl9vcGVyYXRpb25fdCBvcGVyYXRpb247CisgKiAgIG1lbXNldCgmb3BlcmF0aW9uLCAwLCBzaXplb2Yob3BlcmF0aW9uKSk7CisgKiAgIFxlbmRjb2RlCisgKiAtIEluaXRpYWxpemUgdGhlIHN0cnVjdHVyZSB0byBsb2dpY2FsIHplcm8gdmFsdWVzLCBmb3IgZXhhbXBsZToKKyAqICAgXGNvZGUKKyAqICAgcHNhX2tleV9kZXJpdmF0aW9uX29wZXJhdGlvbl90IG9wZXJhdGlvbiA9IHswfTsKKyAqICAgXGVuZGNvZGUKKyAqIC0gSW5pdGlhbGl6ZSB0aGUgc3RydWN0dXJlIHRvIHRoZSBpbml0aWFsaXplciAjUFNBX0tFWV9ERVJJVkFUSU9OX09QRVJBVElPTl9JTklULAorICogICBmb3IgZXhhbXBsZToKKyAqICAgXGNvZGUKKyAqICAgcHNhX2tleV9kZXJpdmF0aW9uX29wZXJhdGlvbl90IG9wZXJhdGlvbiA9IFBTQV9LRVlfREVSSVZBVElPTl9PUEVSQVRJT05fSU5JVDsKKyAqICAgXGVuZGNvZGUKKyAqIC0gQXNzaWduIHRoZSByZXN1bHQgb2YgdGhlIGZ1bmN0aW9uIHBzYV9rZXlfZGVyaXZhdGlvbl9vcGVyYXRpb25faW5pdCgpCisgKiAgIHRvIHRoZSBzdHJ1Y3R1cmUsIGZvciBleGFtcGxlOgorICogICBcY29kZQorICogICBwc2Ffa2V5X2Rlcml2YXRpb25fb3BlcmF0aW9uX3Qgb3BlcmF0aW9uOworICogICBvcGVyYXRpb24gPSBwc2Ffa2V5X2Rlcml2YXRpb25fb3BlcmF0aW9uX2luaXQoKTsKKyAqICAgXGVuZGNvZGUKKyAqCisgKiBUaGlzIGlzIGFuIGltcGxlbWVudGF0aW9uLWRlZmluZWQgXGMgc3RydWN0LiBBcHBsaWNhdGlvbnMgc2hvdWxkIG5vdAorICogbWFrZSBhbnkgYXNzdW1wdGlvbnMgYWJvdXQgdGhlIGNvbnRlbnQgb2YgdGhpcyBzdHJ1Y3R1cmUuCisgKiBJbXBsZW1lbnRhdGlvbiBkZXRhaWxzIGNhbiBjaGFuZ2UgaW4gZnV0dXJlIHZlcnNpb25zIHdpdGhvdXQgbm90aWNlLgorICovCit0eXBlZGVmIHN0cnVjdCBwc2Ffa2V5X2Rlcml2YXRpb25fcyBwc2Ffa2V5X2Rlcml2YXRpb25fb3BlcmF0aW9uX3Q7CisKKy8qKiBcZGVmIFBTQV9LRVlfREVSSVZBVElPTl9PUEVSQVRJT05fSU5JVAorICoKKyAqIFRoaXMgbWFjcm8gcmV0dXJucyBhIHN1aXRhYmxlIGluaXRpYWxpemVyIGZvciBhIGtleSBkZXJpdmF0aW9uIG9wZXJhdGlvbgorICogb2JqZWN0IG9mIHR5cGUgI3BzYV9rZXlfZGVyaXZhdGlvbl9vcGVyYXRpb25fdC4KKyAqLworCisvKiogUmV0dXJuIGFuIGluaXRpYWwgdmFsdWUgZm9yIGEga2V5IGRlcml2YXRpb24gb3BlcmF0aW9uIG9iamVjdC4KKyAqLworc3RhdGljIHBzYV9rZXlfZGVyaXZhdGlvbl9vcGVyYXRpb25fdCBwc2Ffa2V5X2Rlcml2YXRpb25fb3BlcmF0aW9uX2luaXQodm9pZCk7CisKKy8qKiBTZXQgdXAgYSBrZXkgZGVyaXZhdGlvbiBvcGVyYXRpb24uCisgKgorICogQSBrZXkgZGVyaXZhdGlvbiBhbGdvcml0aG0gdGFrZXMgc29tZSBpbnB1dHMgYW5kIHVzZXMgdGhlbSB0byBnZW5lcmF0ZQorICogYSBieXRlIHN0cmVhbSBpbiBhIGRldGVybWluaXN0aWMgd2F5LgorICogVGhpcyBieXRlIHN0cmVhbSBjYW4gYmUgdXNlZCB0byBwcm9kdWNlIGtleXMgYW5kIG90aGVyCisgKiBjcnlwdG9ncmFwaGljIG1hdGVyaWFsLgorICoKKyAqIFRvIGRlcml2ZSBhIGtleToKKyAqIC0jIFN0YXJ0IHdpdGggYW4gaW5pdGlhbGl6ZWQgb2JqZWN0IG9mIHR5cGUgI3BzYV9rZXlfZGVyaXZhdGlvbl9vcGVyYXRpb25fdC4KKyAqIC0jIENhbGwgcHNhX2tleV9kZXJpdmF0aW9uX3NldHVwKCkgdG8gc2VsZWN0IHRoZSBhbGdvcml0aG0uCisgKiAtIyBQcm92aWRlIHRoZSBpbnB1dHMgZm9yIHRoZSBrZXkgZGVyaXZhdGlvbiBieSBjYWxsaW5nCisgKiAgICBwc2Ffa2V5X2Rlcml2YXRpb25faW5wdXRfYnl0ZXMoKSBvciBwc2Ffa2V5X2Rlcml2YXRpb25faW5wdXRfa2V5KCkKKyAqICAgIGFzIGFwcHJvcHJpYXRlLiBXaGljaCBpbnB1dHMgYXJlIG5lZWRlZCwgaW4gd2hhdCBvcmRlciwgYW5kIHdoZXRoZXIKKyAqICAgIHRoZXkgbWF5IGJlIGtleXMgYW5kIGlmIHNvIG9mIHdoYXQgdHlwZSBkZXBlbmRzIG9uIHRoZSBhbGdvcml0aG0uCisgKiAtIyBPcHRpb25hbGx5IHNldCB0aGUgb3BlcmF0aW9uJ3MgbWF4aW11bSBjYXBhY2l0eSB3aXRoCisgKiAgICBwc2Ffa2V5X2Rlcml2YXRpb25fc2V0X2NhcGFjaXR5KCkuIFlvdSBtYXkgZG8gdGhpcyBiZWZvcmUsIGluIHRoZSBtaWRkbGUKKyAqICAgIG9mIG9yIGFmdGVyIHByb3ZpZGluZyBpbnB1dHMuIEZvciBzb21lIGFsZ29yaXRobXMsIHRoaXMgc3RlcCBpcyBtYW5kYXRvcnkKKyAqICAgIGJlY2F1c2UgdGhlIG91dHB1dCBkZXBlbmRzIG9uIHRoZSBtYXhpbXVtIGNhcGFjaXR5LgorICogLSMgVG8gZGVyaXZlIGEga2V5LCBjYWxsIHBzYV9rZXlfZGVyaXZhdGlvbl9vdXRwdXRfa2V5KCkgb3IKKyAqICAgIHBzYV9rZXlfZGVyaXZhdGlvbl9vdXRwdXRfa2V5X2V4dCgpLgorICogICAgVG8gZGVyaXZlIGEgYnl0ZSBzdHJpbmcgZm9yIGEgZGlmZmVyZW50IHB1cnBvc2UsIGNhbGwKKyAqICAgIHBzYV9rZXlfZGVyaXZhdGlvbl9vdXRwdXRfYnl0ZXMoKS4KKyAqICAgIFN1Y2Nlc3NpdmUgY2FsbHMgdG8gdGhlc2UgZnVuY3Rpb25zIHVzZSBzdWNjZXNzaXZlIG91dHB1dCBieXRlcworICogICAgY2FsY3VsYXRlZCBieSB0aGUga2V5IGRlcml2YXRpb24gYWxnb3JpdGhtLgorICogLSMgQ2xlYW4gdXAgdGhlIGtleSBkZXJpdmF0aW9uIG9wZXJhdGlvbiBvYmplY3Qgd2l0aAorICogICAgcHNhX2tleV9kZXJpdmF0aW9uX2Fib3J0KCkuCisgKgorICogSWYgdGhpcyBmdW5jdGlvbiByZXR1cm5zIGFuIGVycm9yLCB0aGUga2V5IGRlcml2YXRpb24gb3BlcmF0aW9uIG9iamVjdCBpcworICogbm90IGNoYW5nZWQuCisgKgorICogSWYgYW4gZXJyb3Igb2NjdXJzIGF0IGFueSBzdGVwIGFmdGVyIGEgY2FsbCB0byBwc2Ffa2V5X2Rlcml2YXRpb25fc2V0dXAoKSwKKyAqIHRoZSBvcGVyYXRpb24gd2lsbCBuZWVkIHRvIGJlIHJlc2V0IGJ5IGEgY2FsbCB0byBwc2Ffa2V5X2Rlcml2YXRpb25fYWJvcnQoKS4KKyAqCisgKiBJbXBsZW1lbnRhdGlvbnMgbXVzdCByZWplY3QgYW4gYXR0ZW1wdCB0byBkZXJpdmUgYSBrZXkgb2Ygc2l6ZSAwLgorICoKKyAqIFxwYXJhbVtpbixvdXRdIG9wZXJhdGlvbiAgICAgICBUaGUga2V5IGRlcml2YXRpb24gb3BlcmF0aW9uIG9iamVjdAorICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvIHNldCB1cC4gSXQgbXVzdAorICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhdmUgYmVlbiBpbml0aWFsaXplZCBidXQgbm90IHNldCB1cCB5ZXQuCisgKiBccGFyYW0gYWxnICAgICAgICAgICAgICAgICAgICAgVGhlIGtleSBkZXJpdmF0aW9uIGFsZ29yaXRobSB0byBjb21wdXRlCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFxjIFBTQV9BTEdfWFhYIHZhbHVlIHN1Y2ggdGhhdAorICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICNQU0FfQUxHX0lTX0tFWV9ERVJJVkFUSU9OKFxwIGFsZykgaXMgdHJ1ZSkuCisgKgorICogXHJldHZhbCAjUFNBX1NVQ0NFU1MKKyAqICAgICAgICAgU3VjY2Vzcy4KKyAqIFxyZXR2YWwgI1BTQV9FUlJPUl9JTlZBTElEX0FSR1VNRU5UCisgKiAgICAgICAgIFxjIGFsZyBpcyBub3QgYSBrZXkgZGVyaXZhdGlvbiBhbGdvcml0aG0uCisgKiBccmV0dmFsICNQU0FfRVJST1JfTk9UX1NVUFBPUlRFRAorICogICAgICAgICBcYyBhbGcgaXMgbm90IHN1cHBvcnRlZCBvciBpcyBub3QgYSBrZXkgZGVyaXZhdGlvbiBhbGdvcml0aG0uCisgKiBccmV0dmFsICNQU0FfRVJST1JfSU5TVUZGSUNJRU5UX01FTU9SWSBcZW1wdHlkZXNjcmlwdGlvbgorICogXHJldHZhbCAjUFNBX0VSUk9SX0NPTU1VTklDQVRJT05fRkFJTFVSRSBcZW1wdHlkZXNjcmlwdGlvbgorICogXHJldHZhbCAjUFNBX0VSUk9SX0hBUkRXQVJFX0ZBSUxVUkUgXGVtcHR5ZGVzY3JpcHRpb24KKyAqIFxyZXR2YWwgI1BTQV9FUlJPUl9DT1JSVVBUSU9OX0RFVEVDVEVEIFxlbXB0eWRlc2NyaXB0aW9uCisgKiBccmV0dmFsICNQU0FfRVJST1JfU1RPUkFHRV9GQUlMVVJFIFxlbXB0eWRlc2NyaXB0aW9uCisgKiBccmV0dmFsICNQU0FfRVJST1JfQkFEX1NUQVRFCisgKiAgICAgICAgIFRoZSBvcGVyYXRpb24gc3RhdGUgaXMgbm90IHZhbGlkIChpdCBtdXN0IGJlIGluYWN0aXZlKSwgb3IKKyAqICAgICAgICAgdGhlIGxpYnJhcnkgaGFzIG5vdCBiZWVuIHByZXZpb3VzbHkgaW5pdGlhbGl6ZWQgYnkgcHNhX2NyeXB0b19pbml0KCkuCisgKiAgICAgICAgIEl0IGlzIGltcGxlbWVudGF0aW9uLWRlcGVuZGVudCB3aGV0aGVyIGEgZmFpbHVyZSB0byBpbml0aWFsaXplCisgKiAgICAgICAgIHJlc3VsdHMgaW4gdGhpcyBlcnJvciBjb2RlLgorICovCitwc2Ffc3RhdHVzX3QgcHNhX2tleV9kZXJpdmF0aW9uX3NldHVwKAorICAgIHBzYV9rZXlfZGVyaXZhdGlvbl9vcGVyYXRpb25fdCAqb3BlcmF0aW9uLAorICAgIHBzYV9hbGdvcml0aG1fdCBhbGcpOworCisvKiogUmV0cmlldmUgdGhlIGN1cnJlbnQgY2FwYWNpdHkgb2YgYSBrZXkgZGVyaXZhdGlvbiBvcGVyYXRpb24uCisgKgorICogVGhlIGNhcGFjaXR5IG9mIGEga2V5IGRlcml2YXRpb24gaXMgdGhlIG1heGltdW0gbnVtYmVyIG9mIGJ5dGVzIHRoYXQgaXQgY2FuCisgKiByZXR1cm4uIFdoZW4geW91IGdldCAqTiogYnl0ZXMgb2Ygb3V0cHV0IGZyb20gYSBrZXkgZGVyaXZhdGlvbiBvcGVyYXRpb24sCisgKiB0aGlzIHJlZHVjZXMgaXRzIGNhcGFjaXR5IGJ5ICpOKi4KKyAqCisgKiBccGFyYW1baW5dIG9wZXJhdGlvbiAgICAgVGhlIG9wZXJhdGlvbiB0byBxdWVyeS4KKyAqIFxwYXJhbVtvdXRdIGNhcGFjaXR5ICAgICBPbiBzdWNjZXNzLCB0aGUgY2FwYWNpdHkgb2YgdGhlIG9wZXJhdGlvbi4KKyAqCisgKiBccmV0dmFsICNQU0FfU1VDQ0VTUyBcZW1wdHlkZXNjcmlwdGlvbgorICogXHJldHZhbCAjUFNBX0VSUk9SX0NPTU1VTklDQVRJT05fRkFJTFVSRSBcZW1wdHlkZXNjcmlwdGlvbgorICogXHJldHZhbCAjUFNBX0VSUk9SX0hBUkRXQVJFX0ZBSUxVUkUgXGVtcHR5ZGVzY3JpcHRpb24KKyAqIFxyZXR2YWwgI1BTQV9FUlJPUl9DT1JSVVBUSU9OX0RFVEVDVEVEIFxlbXB0eWRlc2NyaXB0aW9uCisgKiBccmV0dmFsICNQU0FfRVJST1JfQkFEX1NUQVRFCisgKiAgICAgICAgIFRoZSBvcGVyYXRpb24gc3RhdGUgaXMgbm90IHZhbGlkIChpdCBtdXN0IGJlIGFjdGl2ZSksIG9yCisgKiAgICAgICAgIHRoZSBsaWJyYXJ5IGhhcyBub3QgYmVlbiBwcmV2aW91c2x5IGluaXRpYWxpemVkIGJ5IHBzYV9jcnlwdG9faW5pdCgpLgorICogICAgICAgICBJdCBpcyBpbXBsZW1lbnRhdGlvbi1kZXBlbmRlbnQgd2hldGhlciBhIGZhaWx1cmUgdG8gaW5pdGlhbGl6ZQorICogICAgICAgICByZXN1bHRzIGluIHRoaXMgZXJyb3IgY29kZS4KKyAqLworcHNhX3N0YXR1c190IHBzYV9rZXlfZGVyaXZhdGlvbl9nZXRfY2FwYWNpdHkoCisgICAgY29uc3QgcHNhX2tleV9kZXJpdmF0aW9uX29wZXJhdGlvbl90ICpvcGVyYXRpb24sCisgICAgc2l6ZV90ICpjYXBhY2l0eSk7CisKKy8qKiBTZXQgdGhlIG1heGltdW0gY2FwYWNpdHkgb2YgYSBrZXkgZGVyaXZhdGlvbiBvcGVyYXRpb24uCisgKgorICogVGhlIGNhcGFjaXR5IG9mIGEga2V5IGRlcml2YXRpb24gb3BlcmF0aW9uIGlzIHRoZSBtYXhpbXVtIG51bWJlciBvZiBieXRlcworICogdGhhdCB0aGUga2V5IGRlcml2YXRpb24gb3BlcmF0aW9uIGNhbiByZXR1cm4gZnJvbSB0aGlzIHBvaW50IG9ud2FyZHMuCisgKgorICogXHBhcmFtW2luLG91dF0gb3BlcmF0aW9uIFRoZSBrZXkgZGVyaXZhdGlvbiBvcGVyYXRpb24gb2JqZWN0IHRvIG1vZGlmeS4KKyAqIFxwYXJhbSBjYXBhY2l0eSAgICAgICAgICBUaGUgbmV3IGNhcGFjaXR5IG9mIHRoZSBvcGVyYXRpb24uCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgSXQgbXVzdCBiZSBsZXNzIG9yIGVxdWFsIHRvIHRoZSBvcGVyYXRpb24ncworICogICAgICAgICAgICAgICAgICAgICAgICAgIGN1cnJlbnQgY2FwYWNpdHkuCisgKgorICogXHJldHZhbCAjUFNBX1NVQ0NFU1MgXGVtcHR5ZGVzY3JpcHRpb24KKyAqIFxyZXR2YWwgI1BTQV9FUlJPUl9JTlZBTElEX0FSR1VNRU5UCisgKiAgICAgICAgIFxwIGNhcGFjaXR5IGlzIGxhcmdlciB0aGFuIHRoZSBvcGVyYXRpb24ncyBjdXJyZW50IGNhcGFjaXR5LgorICogICAgICAgICBJbiB0aGlzIGNhc2UsIHRoZSBvcGVyYXRpb24gb2JqZWN0IHJlbWFpbnMgdmFsaWQgYW5kIGl0cyBjYXBhY2l0eQorICogICAgICAgICByZW1haW5zIHVuY2hhbmdlZC4KKyAqIFxyZXR2YWwgI1BTQV9FUlJPUl9DT01NVU5JQ0FUSU9OX0ZBSUxVUkUgXGVtcHR5ZGVzY3JpcHRpb24KKyAqIFxyZXR2YWwgI1BTQV9FUlJPUl9IQVJEV0FSRV9GQUlMVVJFIFxlbXB0eWRlc2NyaXB0aW9uCisgKiBccmV0dmFsICNQU0FfRVJST1JfQ09SUlVQVElPTl9ERVRFQ1RFRCBcZW1wdHlkZXNjcmlwdGlvbgorICogXHJldHZhbCAjUFNBX0VSUk9SX0JBRF9TVEFURQorICogICAgICAgICBUaGUgb3BlcmF0aW9uIHN0YXRlIGlzIG5vdCB2YWxpZCAoaXQgbXVzdCBiZSBhY3RpdmUpLCBvciB0aGUKKyAqICAgICAgICAgbGlicmFyeSBoYXMgbm90IGJlZW4gcHJldmlvdXNseSBpbml0aWFsaXplZCBieSBwc2FfY3J5cHRvX2luaXQoKS4KKyAqICAgICAgICAgSXQgaXMgaW1wbGVtZW50YXRpb24tZGVwZW5kZW50IHdoZXRoZXIgYSBmYWlsdXJlIHRvIGluaXRpYWxpemUKKyAqICAgICAgICAgcmVzdWx0cyBpbiB0aGlzIGVycm9yIGNvZGUuCisgKi8KK3BzYV9zdGF0dXNfdCBwc2Ffa2V5X2Rlcml2YXRpb25fc2V0X2NhcGFjaXR5KAorICAgIHBzYV9rZXlfZGVyaXZhdGlvbl9vcGVyYXRpb25fdCAqb3BlcmF0aW9uLAorICAgIHNpemVfdCBjYXBhY2l0eSk7CisKKy8qKiBVc2UgdGhlIG1heGltdW0gcG9zc2libGUgY2FwYWNpdHkgZm9yIGEga2V5IGRlcml2YXRpb24gb3BlcmF0aW9uLgorICoKKyAqIFVzZSB0aGlzIHZhbHVlIGFzIHRoZSBjYXBhY2l0eSBhcmd1bWVudCB3aGVuIHNldHRpbmcgdXAgYSBrZXkgZGVyaXZhdGlvbgorICogdG8gaW5kaWNhdGUgdGhhdCB0aGUgb3BlcmF0aW9uIHNob3VsZCBoYXZlIHRoZSBtYXhpbXVtIHBvc3NpYmxlIGNhcGFjaXR5LgorICogVGhlIHZhbHVlIG9mIHRoZSBtYXhpbXVtIHBvc3NpYmxlIGNhcGFjaXR5IGRlcGVuZHMgb24gdGhlIGtleSBkZXJpdmF0aW9uCisgKiBhbGdvcml0aG0uCisgKi8KKyNkZWZpbmUgUFNBX0tFWV9ERVJJVkFUSU9OX1VOTElNSVRFRF9DQVBBQ0lUWSAoKHNpemVfdCkgKC0xKSkKKworLyoqIFByb3ZpZGUgYW4gaW5wdXQgZm9yIGtleSBkZXJpdmF0aW9uIG9yIGtleSBhZ3JlZW1lbnQuCisgKgorICogV2hpY2ggaW5wdXRzIGFyZSByZXF1aXJlZCBhbmQgaW4gd2hhdCBvcmRlciBkZXBlbmRzIG9uIHRoZSBhbGdvcml0aG0uCisgKiBSZWZlciB0byB0aGUgZG9jdW1lbnRhdGlvbiBvZiBlYWNoIGtleSBkZXJpdmF0aW9uIG9yIGtleSBhZ3JlZW1lbnQKKyAqIGFsZ29yaXRobSBmb3IgaW5mb3JtYXRpb24uCisgKgorICogVGhpcyBmdW5jdGlvbiBwYXNzZXMgZGlyZWN0IGlucHV0cywgd2hpY2ggaXMgdXN1YWxseSBjb3JyZWN0IGZvcgorICogbm9uLXNlY3JldCBpbnB1dHMuIFRvIHBhc3MgYSBzZWNyZXQgaW5wdXQsIHdoaWNoIHNob3VsZCBiZSBpbiBhIGtleQorICogb2JqZWN0LCBjYWxsIHBzYV9rZXlfZGVyaXZhdGlvbl9pbnB1dF9rZXkoKSBpbnN0ZWFkIG9mIHRoaXMgZnVuY3Rpb24uCisgKiBSZWZlciB0byB0aGUgZG9jdW1lbnRhdGlvbiBvZiBpbmRpdmlkdWFsIHN0ZXAgdHlwZXMKKyAqIChgUFNBX0tFWV9ERVJJVkFUSU9OX0lOUFVUX3h4eGAgdmFsdWVzIG9mIHR5cGUgOjpwc2Ffa2V5X2Rlcml2YXRpb25fc3RlcF90KQorICogZm9yIG1vcmUgaW5mb3JtYXRpb24uCisgKgorICogSWYgdGhpcyBmdW5jdGlvbiByZXR1cm5zIGFuIGVycm9yIHN0YXR1cywgdGhlIG9wZXJhdGlvbiBlbnRlcnMgYW4gZXJyb3IKKyAqIHN0YXRlIGFuZCBtdXN0IGJlIGFib3J0ZWQgYnkgY2FsbGluZyBwc2Ffa2V5X2Rlcml2YXRpb25fYWJvcnQoKS4KKyAqCisgKiBccGFyYW1baW4sb3V0XSBvcGVyYXRpb24gICAgICAgVGhlIGtleSBkZXJpdmF0aW9uIG9wZXJhdGlvbiBvYmplY3QgdG8gdXNlLgorICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEl0IG11c3QgaGF2ZSBiZWVuIHNldCB1cCB3aXRoCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHNhX2tleV9kZXJpdmF0aW9uX3NldHVwKCkgYW5kIG11c3Qgbm90CisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGF2ZSBwcm9kdWNlZCBhbnkgb3V0cHV0IHlldC4KKyAqIFxwYXJhbSBzdGVwICAgICAgICAgICAgICAgICAgICBXaGljaCBzdGVwIHRoZSBpbnB1dCBkYXRhIGlzIGZvci4KKyAqIFxwYXJhbVtpbl0gZGF0YSAgICAgICAgICAgICAgICBJbnB1dCBkYXRhIHRvIHVzZS4KKyAqIFxwYXJhbSBkYXRhX2xlbmd0aCAgICAgICAgICAgICBTaXplIG9mIHRoZSBccCBkYXRhIGJ1ZmZlciBpbiBieXRlcy4KKyAqCisgKiBccmV0dmFsICNQU0FfU1VDQ0VTUworICogICAgICAgICBTdWNjZXNzLgorICogXHJldHZhbCAjUFNBX0VSUk9SX0lOVkFMSURfQVJHVU1FTlQKKyAqICAgICAgICAgXGMgc3RlcCBpcyBub3QgY29tcGF0aWJsZSB3aXRoIHRoZSBvcGVyYXRpb24ncyBhbGdvcml0aG0sIG9yCisgKiAgICAgICAgIFxjIHN0ZXAgZG9lcyBub3QgYWxsb3cgZGlyZWN0IGlucHV0cy4KKyAqIFxyZXR2YWwgI1BTQV9FUlJPUl9JTlNVRkZJQ0lFTlRfTUVNT1JZIFxlbXB0eWRlc2NyaXB0aW9uCisgKiBccmV0dmFsICNQU0FfRVJST1JfQ09NTVVOSUNBVElPTl9GQUlMVVJFIFxlbXB0eWRlc2NyaXB0aW9uCisgKiBccmV0dmFsICNQU0FfRVJST1JfSEFSRFdBUkVfRkFJTFVSRSBcZW1wdHlkZXNjcmlwdGlvbgorICogXHJldHZhbCAjUFNBX0VSUk9SX0NPUlJVUFRJT05fREVURUNURUQgXGVtcHR5ZGVzY3JpcHRpb24KKyAqIFxyZXR2YWwgI1BTQV9FUlJPUl9TVE9SQUdFX0ZBSUxVUkUgXGVtcHR5ZGVzY3JpcHRpb24KKyAqIFxyZXR2YWwgI1BTQV9FUlJPUl9CQURfU1RBVEUKKyAqICAgICAgICAgVGhlIG9wZXJhdGlvbiBzdGF0ZSBpcyBub3QgdmFsaWQgZm9yIHRoaXMgaW5wdXQgXHAgc3RlcCwgb3IKKyAqICAgICAgICAgdGhlIGxpYnJhcnkgaGFzIG5vdCBiZWVuIHByZXZpb3VzbHkgaW5pdGlhbGl6ZWQgYnkgcHNhX2NyeXB0b19pbml0KCkuCisgKiAgICAgICAgIEl0IGlzIGltcGxlbWVudGF0aW9uLWRlcGVuZGVudCB3aGV0aGVyIGEgZmFpbHVyZSB0byBpbml0aWFsaXplCisgKiAgICAgICAgIHJlc3VsdHMgaW4gdGhpcyBlcnJvciBjb2RlLgorICovCitwc2Ffc3RhdHVzX3QgcHNhX2tleV9kZXJpdmF0aW9uX2lucHV0X2J5dGVzKAorICAgIHBzYV9rZXlfZGVyaXZhdGlvbl9vcGVyYXRpb25fdCAqb3BlcmF0aW9uLAorICAgIHBzYV9rZXlfZGVyaXZhdGlvbl9zdGVwX3Qgc3RlcCwKKyAgICBjb25zdCB1aW50OF90ICpkYXRhLAorICAgIHNpemVfdCBkYXRhX2xlbmd0aCk7CisKKy8qKiBQcm92aWRlIGEgbnVtZXJpYyBpbnB1dCBmb3Iga2V5IGRlcml2YXRpb24gb3Iga2V5IGFncmVlbWVudC4KKyAqCisgKiBXaGljaCBpbnB1dHMgYXJlIHJlcXVpcmVkIGFuZCBpbiB3aGF0IG9yZGVyIGRlcGVuZHMgb24gdGhlIGFsZ29yaXRobS4KKyAqIEhvd2V2ZXIsIHdoZW4gYW4gYWxnb3JpdGhtIHJlcXVpcmVzIGEgcGFydGljdWxhciBvcmRlciwgbnVtZXJpYyBpbnB1dHMKKyAqIHVzdWFsbHkgY29tZSBmaXJzdCBhcyB0aGV5IHRlbmQgdG8gYmUgY29uZmlndXJhdGlvbiBwYXJhbWV0ZXJzLgorICogUmVmZXIgdG8gdGhlIGRvY3VtZW50YXRpb24gb2YgZWFjaCBrZXkgZGVyaXZhdGlvbiBvciBrZXkgYWdyZWVtZW50CisgKiBhbGdvcml0aG0gZm9yIGluZm9ybWF0aW9uLgorICoKKyAqIFRoaXMgZnVuY3Rpb24gaXMgdXNlZCBmb3IgaW5wdXRzIHdoaWNoIGFyZSBmaXhlZC1zaXplIG5vbi1uZWdhdGl2ZQorICogaW50ZWdlcnMuCisgKgorICogSWYgdGhpcyBmdW5jdGlvbiByZXR1cm5zIGFuIGVycm9yIHN0YXR1cywgdGhlIG9wZXJhdGlvbiBlbnRlcnMgYW4gZXJyb3IKKyAqIHN0YXRlIGFuZCBtdXN0IGJlIGFib3J0ZWQgYnkgY2FsbGluZyBwc2Ffa2V5X2Rlcml2YXRpb25fYWJvcnQoKS4KKyAqCisgKiBccGFyYW1baW4sb3V0XSBvcGVyYXRpb24gICAgICAgVGhlIGtleSBkZXJpdmF0aW9uIG9wZXJhdGlvbiBvYmplY3QgdG8gdXNlLgorICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEl0IG11c3QgaGF2ZSBiZWVuIHNldCB1cCB3aXRoCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHNhX2tleV9kZXJpdmF0aW9uX3NldHVwKCkgYW5kIG11c3Qgbm90CisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGF2ZSBwcm9kdWNlZCBhbnkgb3V0cHV0IHlldC4KKyAqIFxwYXJhbSBzdGVwICAgICAgICAgICAgICAgICAgICBXaGljaCBzdGVwIHRoZSBpbnB1dCBkYXRhIGlzIGZvci4KKyAqIFxwYXJhbVtpbl0gdmFsdWUgICAgICAgICAgICAgICBUaGUgdmFsdWUgb2YgdGhlIG51bWVyaWMgaW5wdXQuCisgKgorICogXHJldHZhbCAjUFNBX1NVQ0NFU1MKKyAqICAgICAgICAgU3VjY2Vzcy4KKyAqIFxyZXR2YWwgI1BTQV9FUlJPUl9JTlZBTElEX0FSR1VNRU5UCisgKiAgICAgICAgIFxjIHN0ZXAgaXMgbm90IGNvbXBhdGlibGUgd2l0aCB0aGUgb3BlcmF0aW9uJ3MgYWxnb3JpdGhtLCBvcgorICogICAgICAgICBcYyBzdGVwIGRvZXMgbm90IGFsbG93IG51bWVyaWMgaW5wdXRzLgorICogXHJldHZhbCAjUFNBX0VSUk9SX0lOU1VGRklDSUVOVF9NRU1PUlkgXGVtcHR5ZGVzY3JpcHRpb24KKyAqIFxyZXR2YWwgI1BTQV9FUlJPUl9DT01NVU5JQ0FUSU9OX0ZBSUxVUkUgXGVtcHR5ZGVzY3JpcHRpb24KKyAqIFxyZXR2YWwgI1BTQV9FUlJPUl9IQVJEV0FSRV9GQUlMVVJFIFxlbXB0eWRlc2NyaXB0aW9uCisgKiBccmV0dmFsICNQU0FfRVJST1JfQ09SUlVQVElPTl9ERVRFQ1RFRCBcZW1wdHlkZXNjcmlwdGlvbgorICogXHJldHZhbCAjUFNBX0VSUk9SX1NUT1JBR0VfRkFJTFVSRSBcZW1wdHlkZXNjcmlwdGlvbgorICogXHJldHZhbCAjUFNBX0VSUk9SX0JBRF9TVEFURQorICogICAgICAgICBUaGUgb3BlcmF0aW9uIHN0YXRlIGlzIG5vdCB2YWxpZCBmb3IgdGhpcyBpbnB1dCBccCBzdGVwLCBvcgorICogICAgICAgICB0aGUgbGlicmFyeSBoYXMgbm90IGJlZW4gcHJldmlvdXNseSBpbml0aWFsaXplZCBieSBwc2FfY3J5cHRvX2luaXQoKS4KKyAqICAgICAgICAgSXQgaXMgaW1wbGVtZW50YXRpb24tZGVwZW5kZW50IHdoZXRoZXIgYSBmYWlsdXJlIHRvIGluaXRpYWxpemUKKyAqICAgICAgICAgcmVzdWx0cyBpbiB0aGlzIGVycm9yIGNvZGUuCisgKi8KK3BzYV9zdGF0dXNfdCBwc2Ffa2V5X2Rlcml2YXRpb25faW5wdXRfaW50ZWdlcigKKyAgICBwc2Ffa2V5X2Rlcml2YXRpb25fb3BlcmF0aW9uX3QgKm9wZXJhdGlvbiwKKyAgICBwc2Ffa2V5X2Rlcml2YXRpb25fc3RlcF90IHN0ZXAsCisgICAgdWludDY0X3QgdmFsdWUpOworCisvKiogUHJvdmlkZSBhbiBpbnB1dCBmb3Iga2V5IGRlcml2YXRpb24gaW4gdGhlIGZvcm0gb2YgYSBrZXkuCisgKgorICogV2hpY2ggaW5wdXRzIGFyZSByZXF1aXJlZCBhbmQgaW4gd2hhdCBvcmRlciBkZXBlbmRzIG9uIHRoZSBhbGdvcml0aG0uCisgKiBSZWZlciB0byB0aGUgZG9jdW1lbnRhdGlvbiBvZiBlYWNoIGtleSBkZXJpdmF0aW9uIG9yIGtleSBhZ3JlZW1lbnQKKyAqIGFsZ29yaXRobSBmb3IgaW5mb3JtYXRpb24uCisgKgorICogVGhpcyBmdW5jdGlvbiBvYnRhaW5zIGlucHV0IGZyb20gYSBrZXkgb2JqZWN0LCB3aGljaCBpcyB1c3VhbGx5IGNvcnJlY3QgZm9yCisgKiBzZWNyZXQgaW5wdXRzIG9yIGZvciBub24tc2VjcmV0IHBlcnNvbmFsaXphdGlvbiBzdHJpbmdzIGtlcHQgaW4gdGhlIGtleQorICogc3RvcmUuIFRvIHBhc3MgYSBub24tc2VjcmV0IHBhcmFtZXRlciB3aGljaCBpcyBub3QgaW4gdGhlIGtleSBzdG9yZSwKKyAqIGNhbGwgcHNhX2tleV9kZXJpdmF0aW9uX2lucHV0X2J5dGVzKCkgaW5zdGVhZCBvZiB0aGlzIGZ1bmN0aW9uLgorICogUmVmZXIgdG8gdGhlIGRvY3VtZW50YXRpb24gb2YgaW5kaXZpZHVhbCBzdGVwIHR5cGVzCisgKiAoYFBTQV9LRVlfREVSSVZBVElPTl9JTlBVVF94eHhgIHZhbHVlcyBvZiB0eXBlIDo6cHNhX2tleV9kZXJpdmF0aW9uX3N0ZXBfdCkKKyAqIGZvciBtb3JlIGluZm9ybWF0aW9uLgorICoKKyAqIElmIHRoaXMgZnVuY3Rpb24gcmV0dXJucyBhbiBlcnJvciBzdGF0dXMsIHRoZSBvcGVyYXRpb24gZW50ZXJzIGFuIGVycm9yCisgKiBzdGF0ZSBhbmQgbXVzdCBiZSBhYm9ydGVkIGJ5IGNhbGxpbmcgcHNhX2tleV9kZXJpdmF0aW9uX2Fib3J0KCkuCisgKgorICogXHBhcmFtW2luLG91dF0gb3BlcmF0aW9uICAgICAgIFRoZSBrZXkgZGVyaXZhdGlvbiBvcGVyYXRpb24gb2JqZWN0IHRvIHVzZS4KKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJdCBtdXN0IGhhdmUgYmVlbiBzZXQgdXAgd2l0aAorICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBzYV9rZXlfZGVyaXZhdGlvbl9zZXR1cCgpIGFuZCBtdXN0IG5vdAorICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhdmUgcHJvZHVjZWQgYW55IG91dHB1dCB5ZXQuCisgKiBccGFyYW0gc3RlcCAgICAgICAgICAgICAgICAgICAgV2hpY2ggc3RlcCB0aGUgaW5wdXQgZGF0YSBpcyBmb3IuCisgKiBccGFyYW0ga2V5ICAgICAgICAgICAgICAgICAgICAgSWRlbnRpZmllciBvZiB0aGUga2V5LiBJdCBtdXN0IGhhdmUgYW4KKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcHByb3ByaWF0ZSB0eXBlIGZvciBzdGVwIGFuZCBtdXN0IGFsbG93IHRoZQorICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVzYWdlICNQU0FfS0VZX1VTQUdFX0RFUklWRSBvcgorICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICNQU0FfS0VZX1VTQUdFX1ZFUklGWV9ERVJJVkFUSU9OIChzZWUgbm90ZSkKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbmQgdGhlIGFsZ29yaXRobSB1c2VkIGJ5IHRoZSBvcGVyYXRpb24uCisgKgorICogXG5vdGUgT25jZSBhbGwgaW5wdXRzIHN0ZXBzIGFyZSBjb21wbGV0ZWQsIHRoZSBvcGVyYXRpb25zIHdpbGwgYWxsb3c6CisgKiAtIHBzYV9rZXlfZGVyaXZhdGlvbl9vdXRwdXRfYnl0ZXMoKSBpZiBlYWNoIGlucHV0IHdhcyBlaXRoZXIgYSBkaXJlY3QgaW5wdXQKKyAqICAgb3IgIGEga2V5IHdpdGggI1BTQV9LRVlfVVNBR0VfREVSSVZFIHNldDsKKyAqIC0gcHNhX2tleV9kZXJpdmF0aW9uX291dHB1dF9rZXkoKSBvciBwc2Ffa2V5X2Rlcml2YXRpb25fb3V0cHV0X2tleV9leHQoKQorICogICBpZiB0aGUgaW5wdXQgZm9yIHN0ZXAKKyAqICAgI1BTQV9LRVlfREVSSVZBVElPTl9JTlBVVF9TRUNSRVQgb3IgI1BTQV9LRVlfREVSSVZBVElPTl9JTlBVVF9QQVNTV09SRAorICogICB3YXMgZnJvbSBhIGtleSBzbG90IHdpdGggI1BTQV9LRVlfVVNBR0VfREVSSVZFIGFuZCBlYWNoIG90aGVyIGlucHV0IHdhcworICogICBlaXRoZXIgYSBkaXJlY3QgaW5wdXQgb3IgYSBrZXkgd2l0aCAjUFNBX0tFWV9VU0FHRV9ERVJJVkUgc2V0OworICogLSBwc2Ffa2V5X2Rlcml2YXRpb25fdmVyaWZ5X2J5dGVzKCkgaWYgZWFjaCBpbnB1dCB3YXMgZWl0aGVyIGEgZGlyZWN0IGlucHV0CisgKiAgIG9yICBhIGtleSB3aXRoICNQU0FfS0VZX1VTQUdFX1ZFUklGWV9ERVJJVkFUSU9OIHNldDsKKyAqIC0gcHNhX2tleV9kZXJpdmF0aW9uX3ZlcmlmeV9rZXkoKSB1bmRlciB0aGUgc2FtZSBjb25kaXRpb25zIGFzCisgKiAgIHBzYV9rZXlfZGVyaXZhdGlvbl92ZXJpZnlfYnl0ZXMoKS4KKyAqCisgKiBccmV0dmFsICNQU0FfU1VDQ0VTUworICogICAgICAgICBTdWNjZXNzLgorICogXHJldHZhbCAjUFNBX0VSUk9SX0lOVkFMSURfSEFORExFIFxlbXB0eWRlc2NyaXB0aW9uCisgKiBccmV0dmFsICNQU0FfRVJST1JfTk9UX1BFUk1JVFRFRAorICogICAgICAgICBUaGUga2V5IGFsbG93cyBuZWl0aGVyICNQU0FfS0VZX1VTQUdFX0RFUklWRSBub3IKKyAqICAgICAgICAgI1BTQV9LRVlfVVNBR0VfVkVSSUZZX0RFUklWQVRJT04sIG9yIGl0IGRvZXNuJ3QgYWxsb3cgdGhpcworICogICAgICAgICBhbGdvcml0aG0uCisgKiBccmV0dmFsICNQU0FfRVJST1JfSU5WQUxJRF9BUkdVTUVOVAorICogICAgICAgICBcYyBzdGVwIGlzIG5vdCBjb21wYXRpYmxlIHdpdGggdGhlIG9wZXJhdGlvbidzIGFsZ29yaXRobSwgb3IKKyAqICAgICAgICAgXGMgc3RlcCBkb2VzIG5vdCBhbGxvdyBrZXkgaW5wdXRzIG9mIHRoZSBnaXZlbiB0eXBlCisgKiAgICAgICAgIG9yIGRvZXMgbm90IGFsbG93IGtleSBpbnB1dHMgYXQgYWxsLgorICogXHJldHZhbCAjUFNBX0VSUk9SX0lOU1VGRklDSUVOVF9NRU1PUlkgXGVtcHR5ZGVzY3JpcHRpb24KKyAqIFxyZXR2YWwgI1BTQV9FUlJPUl9DT01NVU5JQ0FUSU9OX0ZBSUxVUkUgXGVtcHR5ZGVzY3JpcHRpb24KKyAqIFxyZXR2YWwgI1BTQV9FUlJPUl9IQVJEV0FSRV9GQUlMVVJFIFxlbXB0eWRlc2NyaXB0aW9uCisgKiBccmV0dmFsICNQU0FfRVJST1JfQ09SUlVQVElPTl9ERVRFQ1RFRCBcZW1wdHlkZXNjcmlwdGlvbgorICogXHJldHZhbCAjUFNBX0VSUk9SX1NUT1JBR0VfRkFJTFVSRSBcZW1wdHlkZXNjcmlwdGlvbgorICogXHJldHZhbCAjUFNBX0VSUk9SX0JBRF9TVEFURQorICogICAgICAgICBUaGUgb3BlcmF0aW9uIHN0YXRlIGlzIG5vdCB2YWxpZCBmb3IgdGhpcyBpbnB1dCBccCBzdGVwLCBvcgorICogICAgICAgICB0aGUgbGlicmFyeSBoYXMgbm90IGJlZW4gcHJldmlvdXNseSBpbml0aWFsaXplZCBieSBwc2FfY3J5cHRvX2luaXQoKS4KKyAqICAgICAgICAgSXQgaXMgaW1wbGVtZW50YXRpb24tZGVwZW5kZW50IHdoZXRoZXIgYSBmYWlsdXJlIHRvIGluaXRpYWxpemUKKyAqICAgICAgICAgcmVzdWx0cyBpbiB0aGlzIGVycm9yIGNvZGUuCisgKi8KK3BzYV9zdGF0dXNfdCBwc2Ffa2V5X2Rlcml2YXRpb25faW5wdXRfa2V5KAorICAgIHBzYV9rZXlfZGVyaXZhdGlvbl9vcGVyYXRpb25fdCAqb3BlcmF0aW9uLAorICAgIHBzYV9rZXlfZGVyaXZhdGlvbl9zdGVwX3Qgc3RlcCwKKyAgICBtYmVkdGxzX3N2Y19rZXlfaWRfdCBrZXkpOworCisvKiogUGVyZm9ybSBhIGtleSBhZ3JlZW1lbnQgYW5kIHVzZSB0aGUgc2hhcmVkIHNlY3JldCBhcyBpbnB1dCB0byBhIGtleQorICogZGVyaXZhdGlvbi4KKyAqCisgKiBBIGtleSBhZ3JlZW1lbnQgYWxnb3JpdGhtIHRha2VzIHR3byBpbnB1dHM6IGEgcHJpdmF0ZSBrZXkgXHAgcHJpdmF0ZV9rZXkKKyAqIGEgcHVibGljIGtleSBccCBwZWVyX2tleS4KKyAqIFRoZSByZXN1bHQgb2YgdGhpcyBmdW5jdGlvbiBpcyBwYXNzZWQgYXMgaW5wdXQgdG8gYSBrZXkgZGVyaXZhdGlvbi4KKyAqIFRoZSBvdXRwdXQgb2YgdGhpcyBrZXkgZGVyaXZhdGlvbiBjYW4gYmUgZXh0cmFjdGVkIGJ5IHJlYWRpbmcgZnJvbSB0aGUKKyAqIHJlc3VsdGluZyBvcGVyYXRpb24gdG8gcHJvZHVjZSBrZXlzIGFuZCBvdGhlciBjcnlwdG9ncmFwaGljIG1hdGVyaWFsLgorICoKKyAqIElmIHRoaXMgZnVuY3Rpb24gcmV0dXJucyBhbiBlcnJvciBzdGF0dXMsIHRoZSBvcGVyYXRpb24gZW50ZXJzIGFuIGVycm9yCisgKiBzdGF0ZSBhbmQgbXVzdCBiZSBhYm9ydGVkIGJ5IGNhbGxpbmcgcHNhX2tleV9kZXJpdmF0aW9uX2Fib3J0KCkuCisgKgorICogXHBhcmFtW2luLG91dF0gb3BlcmF0aW9uICAgICAgIFRoZSBrZXkgZGVyaXZhdGlvbiBvcGVyYXRpb24gb2JqZWN0IHRvIHVzZS4KKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJdCBtdXN0IGhhdmUgYmVlbiBzZXQgdXAgd2l0aAorICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBzYV9rZXlfZGVyaXZhdGlvbl9zZXR1cCgpIHdpdGggYQorICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtleSBhZ3JlZW1lbnQgYW5kIGRlcml2YXRpb24gYWxnb3JpdGhtCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXGMgYWxnIChcYyBQU0FfQUxHX1hYWCB2YWx1ZSBzdWNoIHRoYXQKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjUFNBX0FMR19JU19LRVlfQUdSRUVNRU5UKFxjIGFsZykgaXMgdHJ1ZQorICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFuZCAjUFNBX0FMR19JU19SQVdfS0VZX0FHUkVFTUVOVChcYyBhbGcpCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXMgZmFsc2UpLgorICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRoZSBvcGVyYXRpb24gbXVzdCBiZSByZWFkeSBmb3IgYW4KKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnB1dCBvZiB0aGUgdHlwZSBnaXZlbiBieSBccCBzdGVwLgorICogXHBhcmFtIHN0ZXAgICAgICAgICAgICAgICAgICAgIFdoaWNoIHN0ZXAgdGhlIGlucHV0IGRhdGEgaXMgZm9yLgorICogXHBhcmFtIHByaXZhdGVfa2V5ICAgICAgICAgICAgIElkZW50aWZpZXIgb2YgdGhlIHByaXZhdGUga2V5IHRvIHVzZS4gSXQgbXVzdAorICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFsbG93IHRoZSB1c2FnZSAjUFNBX0tFWV9VU0FHRV9ERVJJVkUuCisgKiBccGFyYW1baW5dIHBlZXJfa2V5ICAgICAgUHVibGljIGtleSBvZiB0aGUgcGVlci4gVGhlIHBlZXIga2V5IG11c3QgYmUgaW4gdGhlCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgc2FtZSBmb3JtYXQgdGhhdCBwc2FfaW1wb3J0X2tleSgpIGFjY2VwdHMgZm9yIHRoZQorICogICAgICAgICAgICAgICAgICAgICAgICAgIHB1YmxpYyBrZXkgdHlwZSBjb3JyZXNwb25kaW5nIHRvIHRoZSB0eXBlIG9mCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgcHJpdmF0ZV9rZXkuIFRoYXQgaXMsIHRoaXMgZnVuY3Rpb24gcGVyZm9ybXMgdGhlCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgZXF1aXZhbGVudCBvZgorICogICAgICAgICAgICAgICAgICAgICAgICAgICNwc2FfaW1wb3J0X2tleSguLi4sCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgYHBlZXJfa2V5YCwgYHBlZXJfa2V5X2xlbmd0aGApIHdoZXJlCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aCBrZXkgYXR0cmlidXRlcyBpbmRpY2F0aW5nIHRoZSBwdWJsaWMga2V5CisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZSBjb3JyZXNwb25kaW5nIHRvIHRoZSB0eXBlIG9mIGBwcml2YXRlX2tleWAuCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgRm9yIGV4YW1wbGUsIGZvciBFQyBrZXlzLCB0aGlzIG1lYW5zIHRoYXQgcGVlcl9rZXkKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICBpcyBpbnRlcnByZXRlZCBhcyBhIHBvaW50IG9uIHRoZSBjdXJ2ZSB0aGF0IHRoZQorICogICAgICAgICAgICAgICAgICAgICAgICAgIHByaXZhdGUga2V5IGlzIG9uLiBUaGUgc3RhbmRhcmQgZm9ybWF0cyBmb3IgcHVibGljCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAga2V5cyBhcmUgZG9jdW1lbnRlZCBpbiB0aGUgZG9jdW1lbnRhdGlvbiBvZgorICogICAgICAgICAgICAgICAgICAgICAgICAgIHBzYV9leHBvcnRfcHVibGljX2tleSgpLgorICogXHBhcmFtIHBlZXJfa2V5X2xlbmd0aCAgICAgICAgIFNpemUgb2YgXHAgcGVlcl9rZXkgaW4gYnl0ZXMuCisgKgorICogXHJldHZhbCAjUFNBX1NVQ0NFU1MKKyAqICAgICAgICAgU3VjY2Vzcy4KKyAqIFxyZXR2YWwgI1BTQV9FUlJPUl9JTlZBTElEX0hBTkRMRSBcZW1wdHlkZXNjcmlwdGlvbgorICogXHJldHZhbCAjUFNBX0VSUk9SX05PVF9QRVJNSVRURUQgXGVtcHR5ZGVzY3JpcHRpb24KKyAqIFxyZXR2YWwgI1BTQV9FUlJPUl9JTlZBTElEX0FSR1VNRU5UCisgKiAgICAgICAgIFxjIHByaXZhdGVfa2V5IGlzIG5vdCBjb21wYXRpYmxlIHdpdGggXGMgYWxnLAorICogICAgICAgICBvciBccCBwZWVyX2tleSBpcyBub3QgdmFsaWQgZm9yIFxjIGFsZyBvciBub3QgY29tcGF0aWJsZSB3aXRoCisgKiAgICAgICAgIFxjIHByaXZhdGVfa2V5LCBvciBcYyBzdGVwIGRvZXMgbm90IGFsbG93IGFuIGlucHV0IHJlc3VsdGluZworICogICAgICAgICBmcm9tIGEga2V5IGFncmVlbWVudC4KKyAqIFxyZXR2YWwgI1BTQV9FUlJPUl9OT1RfU1VQUE9SVEVECisgKiAgICAgICAgIFxjIGFsZyBpcyBub3Qgc3VwcG9ydGVkIG9yIGlzIG5vdCBhIGtleSBkZXJpdmF0aW9uIGFsZ29yaXRobS4KKyAqIFxyZXR2YWwgI1BTQV9FUlJPUl9JTlNVRkZJQ0lFTlRfTUVNT1JZIFxlbXB0eWRlc2NyaXB0aW9uCisgKiBccmV0dmFsICNQU0FfRVJST1JfQ09NTVVOSUNBVElPTl9GQUlMVVJFIFxlbXB0eWRlc2NyaXB0aW9uCisgKiBccmV0dmFsICNQU0FfRVJST1JfSEFSRFdBUkVfRkFJTFVSRSBcZW1wdHlkZXNjcmlwdGlvbgorICogXHJldHZhbCAjUFNBX0VSUk9SX0NPUlJVUFRJT05fREVURUNURUQgXGVtcHR5ZGVzY3JpcHRpb24KKyAqIFxyZXR2YWwgI1BTQV9FUlJPUl9TVE9SQUdFX0ZBSUxVUkUgXGVtcHR5ZGVzY3JpcHRpb24KKyAqIFxyZXR2YWwgI1BTQV9FUlJPUl9CQURfU1RBVEUKKyAqICAgICAgICAgVGhlIG9wZXJhdGlvbiBzdGF0ZSBpcyBub3QgdmFsaWQgZm9yIHRoaXMga2V5IGFncmVlbWVudCBccCBzdGVwLAorICogICAgICAgICBvciB0aGUgbGlicmFyeSBoYXMgbm90IGJlZW4gcHJldmlvdXNseSBpbml0aWFsaXplZCBieSBwc2FfY3J5cHRvX2luaXQoKS4KKyAqICAgICAgICAgSXQgaXMgaW1wbGVtZW50YXRpb24tZGVwZW5kZW50IHdoZXRoZXIgYSBmYWlsdXJlIHRvIGluaXRpYWxpemUKKyAqICAgICAgICAgcmVzdWx0cyBpbiB0aGlzIGVycm9yIGNvZGUuCisgKi8KK3BzYV9zdGF0dXNfdCBwc2Ffa2V5X2Rlcml2YXRpb25fa2V5X2FncmVlbWVudCgKKyAgICBwc2Ffa2V5X2Rlcml2YXRpb25fb3BlcmF0aW9uX3QgKm9wZXJhdGlvbiwKKyAgICBwc2Ffa2V5X2Rlcml2YXRpb25fc3RlcF90IHN0ZXAsCisgICAgbWJlZHRsc19zdmNfa2V5X2lkX3QgcHJpdmF0ZV9rZXksCisgICAgY29uc3QgdWludDhfdCAqcGVlcl9rZXksCisgICAgc2l6ZV90IHBlZXJfa2V5X2xlbmd0aCk7CisKKy8qKiBSZWFkIHNvbWUgZGF0YSBmcm9tIGEga2V5IGRlcml2YXRpb24gb3BlcmF0aW9uLgorICoKKyAqIFRoaXMgZnVuY3Rpb24gY2FsY3VsYXRlcyBvdXRwdXQgYnl0ZXMgZnJvbSBhIGtleSBkZXJpdmF0aW9uIGFsZ29yaXRobSBhbmQKKyAqIHJldHVybiB0aG9zZSBieXRlcy4KKyAqIElmIHlvdSB2aWV3IHRoZSBrZXkgZGVyaXZhdGlvbidzIG91dHB1dCBhcyBhIHN0cmVhbSBvZiBieXRlcywgdGhpcworICogZnVuY3Rpb24gZGVzdHJ1Y3RpdmVseSByZWFkcyB0aGUgcmVxdWVzdGVkIG51bWJlciBvZiBieXRlcyBmcm9tIHRoZQorICogc3RyZWFtLgorICogVGhlIG9wZXJhdGlvbidzIGNhcGFjaXR5IGRlY3JlYXNlcyBieSB0aGUgbnVtYmVyIG9mIGJ5dGVzIHJlYWQuCisgKgorICogSWYgdGhpcyBmdW5jdGlvbiByZXR1cm5zIGFuIGVycm9yIHN0YXR1cyBvdGhlciB0aGFuCisgKiAjUFNBX0VSUk9SX0lOU1VGRklDSUVOVF9EQVRBLCB0aGUgb3BlcmF0aW9uIGVudGVycyBhbiBlcnJvcgorICogc3RhdGUgYW5kIG11c3QgYmUgYWJvcnRlZCBieSBjYWxsaW5nIHBzYV9rZXlfZGVyaXZhdGlvbl9hYm9ydCgpLgorICoKKyAqIFxwYXJhbVtpbixvdXRdIG9wZXJhdGlvbiBUaGUga2V5IGRlcml2YXRpb24gb3BlcmF0aW9uIG9iamVjdCB0byByZWFkIGZyb20uCisgKiBccGFyYW1bb3V0XSBvdXRwdXQgICAgICAgQnVmZmVyIHdoZXJlIHRoZSBvdXRwdXQgd2lsbCBiZSB3cml0dGVuLgorICogXHBhcmFtIG91dHB1dF9sZW5ndGggICAgIE51bWJlciBvZiBieXRlcyB0byBvdXRwdXQuCisgKgorICogXHJldHZhbCAjUFNBX1NVQ0NFU1MgXGVtcHR5ZGVzY3JpcHRpb24KKyAqIFxyZXR2YWwgI1BTQV9FUlJPUl9OT1RfUEVSTUlUVEVECisgKiAgICAgICAgIE9uZSBvZiB0aGUgaW5wdXRzIHdhcyBhIGtleSB3aG9zZSBwb2xpY3kgZGlkbid0IGFsbG93CisgKiAgICAgICAgICNQU0FfS0VZX1VTQUdFX0RFUklWRS4KKyAqIFxyZXR2YWwgI1BTQV9FUlJPUl9JTlNVRkZJQ0lFTlRfREFUQQorICogICAgICAgICAgICAgICAgICAgICAgICAgIFRoZSBvcGVyYXRpb24ncyBjYXBhY2l0eSB3YXMgbGVzcyB0aGFuCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgXHAgb3V0cHV0X2xlbmd0aCBieXRlcy4gTm90ZSB0aGF0IGluIHRoaXMgY2FzZSwKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICBubyBvdXRwdXQgaXMgd3JpdHRlbiB0byB0aGUgb3V0cHV0IGJ1ZmZlci4KKyAqICAgICAgICAgICAgICAgICAgICAgICAgICBUaGUgb3BlcmF0aW9uJ3MgY2FwYWNpdHkgaXMgc2V0IHRvIDAsIHRodXMKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICBzdWJzZXF1ZW50IGNhbGxzIHRvIHRoaXMgZnVuY3Rpb24gd2lsbCBub3QKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICBzdWNjZWVkLCBldmVuIHdpdGggYSBzbWFsbGVyIG91dHB1dCBidWZmZXIuCisgKiBccmV0dmFsICNQU0FfRVJST1JfSU5TVUZGSUNJRU5UX01FTU9SWSBcZW1wdHlkZXNjcmlwdGlvbgorICogXHJldHZhbCAjUFNBX0VSUk9SX0NPTU1VTklDQVRJT05fRkFJTFVSRSBcZW1wdHlkZXNjcmlwdGlvbgorICogXHJldHZhbCAjUFNBX0VSUk9SX0hBUkRXQVJFX0ZBSUxVUkUgXGVtcHR5ZGVzY3JpcHRpb24KKyAqIFxyZXR2YWwgI1BTQV9FUlJPUl9DT1JSVVBUSU9OX0RFVEVDVEVEIFxlbXB0eWRlc2NyaXB0aW9uCisgKiBccmV0dmFsICNQU0FfRVJST1JfU1RPUkFHRV9GQUlMVVJFIFxlbXB0eWRlc2NyaXB0aW9uCisgKiBccmV0dmFsICNQU0FfRVJST1JfQkFEX1NUQVRFCisgKiAgICAgICAgIFRoZSBvcGVyYXRpb24gc3RhdGUgaXMgbm90IHZhbGlkIChpdCBtdXN0IGJlIGFjdGl2ZSBhbmQgY29tcGxldGVkCisgKiAgICAgICAgIGFsbCByZXF1aXJlZCBpbnB1dCBzdGVwcyksIG9yIHRoZSBsaWJyYXJ5IGhhcyBub3QgYmVlbiBwcmV2aW91c2x5CisgKiAgICAgICAgIGluaXRpYWxpemVkIGJ5IHBzYV9jcnlwdG9faW5pdCgpLgorICogICAgICAgICBJdCBpcyBpbXBsZW1lbnRhdGlvbi1kZXBlbmRlbnQgd2hldGhlciBhIGZhaWx1cmUgdG8gaW5pdGlhbGl6ZQorICogICAgICAgICByZXN1bHRzIGluIHRoaXMgZXJyb3IgY29kZS4KKyAqLworcHNhX3N0YXR1c190IHBzYV9rZXlfZGVyaXZhdGlvbl9vdXRwdXRfYnl0ZXMoCisgICAgcHNhX2tleV9kZXJpdmF0aW9uX29wZXJhdGlvbl90ICpvcGVyYXRpb24sCisgICAgdWludDhfdCAqb3V0cHV0LAorICAgIHNpemVfdCBvdXRwdXRfbGVuZ3RoKTsKKworLyoqIERlcml2ZSBhIGtleSBmcm9tIGFuIG9uZ29pbmcga2V5IGRlcml2YXRpb24gb3BlcmF0aW9uLgorICoKKyAqIFRoaXMgZnVuY3Rpb24gY2FsY3VsYXRlcyBvdXRwdXQgYnl0ZXMgZnJvbSBhIGtleSBkZXJpdmF0aW9uIGFsZ29yaXRobQorICogYW5kIHVzZXMgdGhvc2UgYnl0ZXMgdG8gZ2VuZXJhdGUgYSBrZXkgZGV0ZXJtaW5pc3RpY2FsbHkuCisgKiBUaGUga2V5J3MgbG9jYXRpb24sIHVzYWdlIHBvbGljeSwgdHlwZSBhbmQgc2l6ZSBhcmUgdGFrZW4gZnJvbQorICogXHAgYXR0cmlidXRlcy4KKyAqCisgKiBJZiB5b3UgdmlldyB0aGUga2V5IGRlcml2YXRpb24ncyBvdXRwdXQgYXMgYSBzdHJlYW0gb2YgYnl0ZXMsIHRoaXMKKyAqIGZ1bmN0aW9uIGRlc3RydWN0aXZlbHkgcmVhZHMgYXMgbWFueSBieXRlcyBhcyByZXF1aXJlZCBmcm9tIHRoZQorICogc3RyZWFtLgorICogVGhlIG9wZXJhdGlvbidzIGNhcGFjaXR5IGRlY3JlYXNlcyBieSB0aGUgbnVtYmVyIG9mIGJ5dGVzIHJlYWQuCisgKgorICogSWYgdGhpcyBmdW5jdGlvbiByZXR1cm5zIGFuIGVycm9yIHN0YXR1cyBvdGhlciB0aGFuCisgKiAjUFNBX0VSUk9SX0lOU1VGRklDSUVOVF9EQVRBLCB0aGUgb3BlcmF0aW9uIGVudGVycyBhbiBlcnJvcgorICogc3RhdGUgYW5kIG11c3QgYmUgYWJvcnRlZCBieSBjYWxsaW5nIHBzYV9rZXlfZGVyaXZhdGlvbl9hYm9ydCgpLgorICoKKyAqIEhvdyBtdWNoIG91dHB1dCBpcyBwcm9kdWNlZCBhbmQgY29uc3VtZWQgZnJvbSB0aGUgb3BlcmF0aW9uLCBhbmQgaG93CisgKiB0aGUga2V5IGlzIGRlcml2ZWQsIGRlcGVuZHMgb24gdGhlIGtleSB0eXBlIGFuZCBvbiB0aGUga2V5IHNpemUKKyAqIChkZW5vdGVkIFxjIGJpdHMgYmVsb3cpOgorICoKKyAqIC0gRm9yIGtleSB0eXBlcyBmb3Igd2hpY2ggdGhlIGtleSBpcyBhbiBhcmJpdHJhcnkgc2VxdWVuY2Ugb2YgYnl0ZXMKKyAqICAgb2YgYSBnaXZlbiBzaXplLCB0aGlzIGZ1bmN0aW9uIGlzIGZ1bmN0aW9uYWxseSBlcXVpdmFsZW50IHRvCisgKiAgIGNhbGxpbmcgI3BzYV9rZXlfZGVyaXZhdGlvbl9vdXRwdXRfYnl0ZXMKKyAqICAgYW5kIHBhc3NpbmcgdGhlIHJlc3VsdGluZyBvdXRwdXQgdG8gI3BzYV9pbXBvcnRfa2V5LgorICogICBIb3dldmVyLCB0aGlzIGZ1bmN0aW9uIGhhcyBhIHNlY3VyaXR5IGJlbmVmaXQ6CisgKiAgIGlmIHRoZSBpbXBsZW1lbnRhdGlvbiBwcm92aWRlcyBhbiBpc29sYXRpb24gYm91bmRhcnkgdGhlbgorICogICB0aGUga2V5IG1hdGVyaWFsIGlzIG5vdCBleHBvc2VkIG91dHNpZGUgdGhlIGlzb2xhdGlvbiBib3VuZGFyeS4KKyAqICAgQXMgYSBjb25zZXF1ZW5jZSwgZm9yIHRoZXNlIGtleSB0eXBlcywgdGhpcyBmdW5jdGlvbiBhbHdheXMgY29uc3VtZXMKKyAqICAgZXhhY3RseSAoXGMgYml0cyAvIDgpIGJ5dGVzIGZyb20gdGhlIG9wZXJhdGlvbi4KKyAqICAgVGhlIGZvbGxvd2luZyBrZXkgdHlwZXMgZGVmaW5lZCBpbiB0aGlzIHNwZWNpZmljYXRpb24gZm9sbG93IHRoaXMgc2NoZW1lOgorICoKKyAqICAgICAtICNQU0FfS0VZX1RZUEVfQUVTOworICogICAgIC0gI1BTQV9LRVlfVFlQRV9BUklBOworICogICAgIC0gI1BTQV9LRVlfVFlQRV9DQU1FTExJQTsKKyAqICAgICAtICNQU0FfS0VZX1RZUEVfREVSSVZFOworICogICAgIC0gI1BTQV9LRVlfVFlQRV9ITUFDOworICogICAgIC0gI1BTQV9LRVlfVFlQRV9QQVNTV09SRF9IQVNILgorICoKKyAqIC0gRm9yIEVDQyBrZXlzIG9uIGEgTW9udGdvbWVyeSBlbGxpcHRpYyBjdXJ2ZQorICogICAoI1BTQV9LRVlfVFlQRV9FQ0NfS0VZX1BBSVIoXGMgY3VydmUpIHdoZXJlIFxjIGN1cnZlIGRlc2lnbmF0ZXMgYQorICogICBNb250Z29tZXJ5IGN1cnZlKSwgdGhpcyBmdW5jdGlvbiBhbHdheXMgZHJhd3MgYSBieXRlIHN0cmluZyB3aG9zZQorICogICBsZW5ndGggaXMgZGV0ZXJtaW5lZCBieSB0aGUgY3VydmUsIGFuZCBzZXRzIHRoZSBtYW5kYXRvcnkgYml0cworICogICBhY2NvcmRpbmdseS4gVGhhdCBpczoKKyAqCisgKiAgICAgLSBDdXJ2ZTI1NTE5ICgjUFNBX0VDQ19GQU1JTFlfTU9OVEdPTUVSWSwgMjU1IGJpdHMpOiBkcmF3IGEgMzItYnl0ZQorICogICAgICAgc3RyaW5nIGFuZCBwcm9jZXNzIGl0IGFzIHNwZWNpZmllZCBpbiBSRkMgNzc0OCAmc2VjdDs1LgorICogICAgIC0gQ3VydmU0NDggKCNQU0FfRUNDX0ZBTUlMWV9NT05UR09NRVJZLCA0NDggYml0cyk6IGRyYXcgYSA1Ni1ieXRlCisgKiAgICAgICBzdHJpbmcgYW5kIHByb2Nlc3MgaXQgYXMgc3BlY2lmaWVkIGluIFJGQyA3NzQ4ICZzZWN0OzUuCisgKgorICogLSBGb3Iga2V5IHR5cGVzIGZvciB3aGljaCB0aGUga2V5IGlzIHJlcHJlc2VudGVkIGJ5IGEgc2luZ2xlIHNlcXVlbmNlIG9mCisgKiAgIFxjIGJpdHMgYml0cyB3aXRoIGNvbnN0cmFpbnRzIGFzIHRvIHdoaWNoIGJpdCBzZXF1ZW5jZXMgYXJlIGFjY2VwdGFibGUsCisgKiAgIHRoaXMgZnVuY3Rpb24gZHJhd3MgYSBieXRlIHN0cmluZyBvZiBsZW5ndGggKFxjIGJpdHMgLyA4KSBieXRlcyByb3VuZGVkCisgKiAgIHVwIHRvIHRoZSBuZWFyZXN0IHdob2xlIG51bWJlciBvZiBieXRlcy4gSWYgdGhlIHJlc3VsdGluZyBieXRlIHN0cmluZworICogICBpcyBhY2NlcHRhYmxlLCBpdCBiZWNvbWVzIHRoZSBrZXksIG90aGVyd2lzZSB0aGUgZHJhd24gYnl0ZXMgYXJlIGRpc2NhcmRlZC4KKyAqICAgVGhpcyBwcm9jZXNzIGlzIHJlcGVhdGVkIHVudGlsIGFuIGFjY2VwdGFibGUgYnl0ZSBzdHJpbmcgaXMgZHJhd24uCisgKiAgIFRoZSBieXRlIHN0cmluZyBkcmF3biBmcm9tIHRoZSBvcGVyYXRpb24gaXMgaW50ZXJwcmV0ZWQgYXMgc3BlY2lmaWVkCisgKiAgIGZvciB0aGUgb3V0cHV0IHByb2R1Y2VkIGJ5IHBzYV9leHBvcnRfa2V5KCkuCisgKiAgIFRoZSBmb2xsb3dpbmcga2V5IHR5cGVzIGRlZmluZWQgaW4gdGhpcyBzcGVjaWZpY2F0aW9uIGZvbGxvdyB0aGlzIHNjaGVtZToKKyAqCisgKiAgICAgLSAjUFNBX0tFWV9UWVBFX0RFUy4KKyAqICAgICAgIEZvcmNlLXNldCB0aGUgcGFyaXR5IGJpdHMsIGJ1dCBkaXNjYXJkIGZvcmJpZGRlbiB3ZWFrIGtleXMuCisgKiAgICAgICBGb3IgMi1rZXkgYW5kIDMta2V5IHRyaXBsZS1ERVMsIHRoZSB0aHJlZSBrZXlzIGFyZSBnZW5lcmF0ZWQKKyAqICAgICAgIHN1Y2Nlc3NpdmVseSAoZm9yIGV4YW1wbGUsIGZvciAzLWtleSB0cmlwbGUtREVTLAorICogICAgICAgaWYgdGhlIGZpcnN0IDggYnl0ZXMgc3BlY2lmeSBhIHdlYWsga2V5IGFuZCB0aGUgbmV4dCA4IGJ5dGVzIGRvIG5vdCwKKyAqICAgICAgIGRpc2NhcmQgdGhlIGZpcnN0IDggYnl0ZXMsIHVzZSB0aGUgbmV4dCA4IGJ5dGVzIGFzIHRoZSBmaXJzdCBrZXksCisgKiAgICAgICBhbmQgY29udGludWUgcmVhZGluZyBvdXRwdXQgZnJvbSB0aGUgb3BlcmF0aW9uIHRvIGRlcml2ZSB0aGUgb3RoZXIKKyAqICAgICAgIHR3byBrZXlzKS4KKyAqICAgICAtIEZpbml0ZS1maWVsZCBEaWZmaWUtSGVsbG1hbiBrZXlzICgjUFNBX0tFWV9UWVBFX0RIX0tFWV9QQUlSKFxjIGdyb3VwKQorICogICAgICAgd2hlcmUgXGMgZ3JvdXAgZGVzaWduYXRlcyBhbnkgRGlmZmllLUhlbGxtYW4gZ3JvdXApIGFuZAorICogICAgICAgRUNDIGtleXMgb24gYSBXZWllcnN0cmFzcyBlbGxpcHRpYyBjdXJ2ZQorICogICAgICAgKCNQU0FfS0VZX1RZUEVfRUNDX0tFWV9QQUlSKFxjIGN1cnZlKSB3aGVyZSBcYyBjdXJ2ZSBkZXNpZ25hdGVzIGEKKyAqICAgICAgIFdlaWVyc3RyYXNzIGN1cnZlKS4KKyAqICAgICAgIEZvciB0aGVzZSBrZXkgdHlwZXMsIGludGVycHJldCB0aGUgYnl0ZSBzdHJpbmcgYXMgaW50ZWdlcgorICogICAgICAgaW4gYmlnLWVuZGlhbiBvcmRlci4gRGlzY2FyZCBpdCBpZiBpdCBpcyBub3QgaW4gdGhlIHJhbmdlCisgKiAgICAgICBbMCwgKk4qIC0gMl0gd2hlcmUgKk4qIGlzIHRoZSBib3VuZGFyeSBvZiB0aGUgcHJpdmF0ZSBrZXkgZG9tYWluCisgKiAgICAgICAodGhlIHByaW1lICpwKiBmb3IgRGlmZmllLUhlbGxtYW4sIHRoZSBzdWJwcmltZSAqcSogZm9yIERTQSwKKyAqICAgICAgIG9yIHRoZSBvcmRlciBvZiB0aGUgY3VydmUncyBiYXNlIHBvaW50IGZvciBFQ0MpLgorICogICAgICAgQWRkIDEgdG8gdGhlIHJlc3VsdGluZyBpbnRlZ2VyIGFuZCB1c2UgdGhpcyBhcyB0aGUgcHJpdmF0ZSBrZXkgKngqLgorICogICAgICAgVGhpcyBtZXRob2QgYWxsb3dzIGNvbXBsaWFuY2UgdG8gTklTVCBzdGFuZGFyZHMsIHNwZWNpZmljYWxseQorICogICAgICAgdGhlIG1ldGhvZHMgdGl0bGVkICJrZXktcGFpciBnZW5lcmF0aW9uIGJ5IHRlc3RpbmcgY2FuZGlkYXRlcyIKKyAqICAgICAgIGluIE5JU1QgU1AgODAwLTU2QSAmc2VjdDs1LjYuMS4xLjQgZm9yIERpZmZpZS1IZWxsbWFuLAorICogICAgICAgaW4gRklQUyAxODYtNCAmc2VjdDtCLjEuMiBmb3IgRFNBLCBhbmQKKyAqICAgICAgIGluIE5JU1QgU1AgODAwLTU2QSAmc2VjdDs1LjYuMS4yLjIgb3IKKyAqICAgICAgIEZJUFMgMTg2LTQgJnNlY3Q7Qi40LjIgZm9yIGVsbGlwdGljIGN1cnZlIGtleXMuCisgKgorICogLSBGb3Igb3RoZXIga2V5IHR5cGVzLCBpbmNsdWRpbmcgI1BTQV9LRVlfVFlQRV9SU0FfS0VZX1BBSVIsCisgKiAgIHRoZSB3YXkgaW4gd2hpY2ggdGhlIG9wZXJhdGlvbiBvdXRwdXQgaXMgY29uc3VtZWQgaXMKKyAqICAgaW1wbGVtZW50YXRpb24tZGVmaW5lZC4KKyAqCisgKiBJbiBhbGwgY2FzZXMsIHRoZSBkYXRhIHRoYXQgaXMgcmVhZCBpcyBkaXNjYXJkZWQgZnJvbSB0aGUgb3BlcmF0aW9uLgorICogVGhlIG9wZXJhdGlvbidzIGNhcGFjaXR5IGlzIGRlY3JlYXNlZCBieSB0aGUgbnVtYmVyIG9mIGJ5dGVzIHJlYWQuCisgKgorICogRm9yIGFsZ29yaXRobXMgdGhhdCB0YWtlIGFuIGlucHV0IHN0ZXAgI1BTQV9LRVlfREVSSVZBVElPTl9JTlBVVF9TRUNSRVQsCisgKiB0aGUgaW5wdXQgdG8gdGhhdCBzdGVwIG11c3QgYmUgcHJvdmlkZWQgd2l0aCBwc2Ffa2V5X2Rlcml2YXRpb25faW5wdXRfa2V5KCkuCisgKiBGdXR1cmUgdmVyc2lvbnMgb2YgdGhpcyBzcGVjaWZpY2F0aW9uIG1heSBpbmNsdWRlIGFkZGl0aW9uYWwgcmVzdHJpY3Rpb25zCisgKiBvbiB0aGUgZGVyaXZlZCBrZXkgYmFzZWQgb24gdGhlIGF0dHJpYnV0ZXMgYW5kIHN0cmVuZ3RoIG9mIHRoZSBzZWNyZXQga2V5LgorICoKKyAqIFxub3RlIFRoaXMgZnVuY3Rpb24gaXMgZXF1aXZhbGVudCB0byBjYWxsaW5nCisgKiAgICAgICBwc2Ffa2V5X2Rlcml2YXRpb25fb3V0cHV0X2tleV9leHQoKQorICogICAgICAgd2l0aCB0aGUgcHJvZHVjdGlvbiBwYXJhbWV0ZXJzICNQU0FfS0VZX1BST0RVQ1RJT05fUEFSQU1FVEVSU19JTklUCisgKiAgICAgICBhbmQgYHBhcmFtc19kYXRhX2xlbmd0aCA9PSAwYCAoaS5lLiBgcGFyYW1zLT5kYXRhYCBpcyBlbXB0eSkuCisgKgorICogXHBhcmFtW2luXSBhdHRyaWJ1dGVzICAgIFRoZSBhdHRyaWJ1dGVzIGZvciB0aGUgbmV3IGtleS4KKyAqICAgICAgICAgICAgICAgICAgICAgICAgICBJZiB0aGUga2V5IHR5cGUgdG8gYmUgY3JlYXRlZCBpcworICogICAgICAgICAgICAgICAgICAgICAgICAgICNQU0FfS0VZX1RZUEVfUEFTU1dPUkRfSEFTSCB0aGVuIHRoZSBhbGdvcml0aG0gaW4KKyAqICAgICAgICAgICAgICAgICAgICAgICAgICB0aGUgcG9saWN5IG11c3QgYmUgdGhlIHNhbWUgYXMgaW4gdGhlIGN1cnJlbnQKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICBvcGVyYXRpb24uCisgKiBccGFyYW1baW4sb3V0XSBvcGVyYXRpb24gVGhlIGtleSBkZXJpdmF0aW9uIG9wZXJhdGlvbiBvYmplY3QgdG8gcmVhZCBmcm9tLgorICogXHBhcmFtW291dF0ga2V5ICAgICAgICAgIE9uIHN1Y2Nlc3MsIGFuIGlkZW50aWZpZXIgZm9yIHRoZSBuZXdseSBjcmVhdGVkCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAga2V5LiBGb3IgcGVyc2lzdGVudCBrZXlzLCB0aGlzIGlzIHRoZSBrZXkKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICBpZGVudGlmaWVyIGRlZmluZWQgaW4gXHAgYXR0cmlidXRlcy4KKyAqICAgICAgICAgICAgICAgICAgICAgICAgICBcYyAwIG9uIGZhaWx1cmUuCisgKgorICogXHJldHZhbCAjUFNBX1NVQ0NFU1MKKyAqICAgICAgICAgU3VjY2Vzcy4KKyAqICAgICAgICAgSWYgdGhlIGtleSBpcyBwZXJzaXN0ZW50LCB0aGUga2V5IG1hdGVyaWFsIGFuZCB0aGUga2V5J3MgbWV0YWRhdGEKKyAqICAgICAgICAgaGF2ZSBiZWVuIHNhdmVkIHRvIHBlcnNpc3RlbnQgc3RvcmFnZS4KKyAqIFxyZXR2YWwgI1BTQV9FUlJPUl9BTFJFQURZX0VYSVNUUworICogICAgICAgICBUaGlzIGlzIGFuIGF0dGVtcHQgdG8gY3JlYXRlIGEgcGVyc2lzdGVudCBrZXksIGFuZCB0aGVyZSBpcworICogICAgICAgICBhbHJlYWR5IGEgcGVyc2lzdGVudCBrZXkgd2l0aCB0aGUgZ2l2ZW4gaWRlbnRpZmllci4KKyAqIFxyZXR2YWwgI1BTQV9FUlJPUl9JTlNVRkZJQ0lFTlRfREFUQQorICogICAgICAgICBUaGVyZSB3YXMgbm90IGVub3VnaCBkYXRhIHRvIGNyZWF0ZSB0aGUgZGVzaXJlZCBrZXkuCisgKiAgICAgICAgIE5vdGUgdGhhdCBpbiB0aGlzIGNhc2UsIG5vIG91dHB1dCBpcyB3cml0dGVuIHRvIHRoZSBvdXRwdXQgYnVmZmVyLgorICogICAgICAgICBUaGUgb3BlcmF0aW9uJ3MgY2FwYWNpdHkgaXMgc2V0IHRvIDAsIHRodXMgc3Vic2VxdWVudCBjYWxscyB0bworICogICAgICAgICB0aGlzIGZ1bmN0aW9uIHdpbGwgbm90IHN1Y2NlZWQsIGV2ZW4gd2l0aCBhIHNtYWxsZXIgb3V0cHV0IGJ1ZmZlci4KKyAqIFxyZXR2YWwgI1BTQV9FUlJPUl9OT1RfU1VQUE9SVEVECisgKiAgICAgICAgIFRoZSBrZXkgdHlwZSBvciBrZXkgc2l6ZSBpcyBub3Qgc3VwcG9ydGVkLCBlaXRoZXIgYnkgdGhlCisgKiAgICAgICAgIGltcGxlbWVudGF0aW9uIGluIGdlbmVyYWwgb3IgaW4gdGhpcyBwYXJ0aWN1bGFyIGxvY2F0aW9uLgorICogXHJldHZhbCAjUFNBX0VSUk9SX0lOVkFMSURfQVJHVU1FTlQKKyAqICAgICAgICAgVGhlIHByb3ZpZGVkIGtleSBhdHRyaWJ1dGVzIGFyZSBub3QgdmFsaWQgZm9yIHRoZSBvcGVyYXRpb24uCisgKiBccmV0dmFsICNQU0FfRVJST1JfTk9UX1BFUk1JVFRFRAorICogICAgICAgICBUaGUgI1BTQV9LRVlfREVSSVZBVElPTl9JTlBVVF9TRUNSRVQgb3IKKyAqICAgICAgICAgI1BTQV9LRVlfREVSSVZBVElPTl9JTlBVVF9QQVNTV09SRCBpbnB1dCB3YXMgbm90IHByb3ZpZGVkIHRocm91Z2ggYQorICogICAgICAgICBrZXk7IG9yIG9uZSBvZiB0aGUgaW5wdXRzIHdhcyBhIGtleSB3aG9zZSBwb2xpY3kgZGlkbid0IGFsbG93CisgKiAgICAgICAgICNQU0FfS0VZX1VTQUdFX0RFUklWRS4KKyAqIFxyZXR2YWwgI1BTQV9FUlJPUl9JTlNVRkZJQ0lFTlRfTUVNT1JZIFxlbXB0eWRlc2NyaXB0aW9uCisgKiBccmV0dmFsICNQU0FfRVJST1JfSU5TVUZGSUNJRU5UX1NUT1JBR0UgXGVtcHR5ZGVzY3JpcHRpb24KKyAqIFxyZXR2YWwgI1BTQV9FUlJPUl9DT01NVU5JQ0FUSU9OX0ZBSUxVUkUgXGVtcHR5ZGVzY3JpcHRpb24KKyAqIFxyZXR2YWwgI1BTQV9FUlJPUl9IQVJEV0FSRV9GQUlMVVJFIFxlbXB0eWRlc2NyaXB0aW9uCisgKiBccmV0dmFsICNQU0FfRVJST1JfQ09SUlVQVElPTl9ERVRFQ1RFRCBcZW1wdHlkZXNjcmlwdGlvbgorICogXHJldHZhbCAjUFNBX0VSUk9SX0RBVEFfSU5WQUxJRCBcZW1wdHlkZXNjcmlwdGlvbgorICogXHJldHZhbCAjUFNBX0VSUk9SX0RBVEFfQ09SUlVQVCBcZW1wdHlkZXNjcmlwdGlvbgorICogXHJldHZhbCAjUFNBX0VSUk9SX1NUT1JBR0VfRkFJTFVSRSBcZW1wdHlkZXNjcmlwdGlvbgorICogXHJldHZhbCAjUFNBX0VSUk9SX0JBRF9TVEFURQorICogICAgICAgICBUaGUgb3BlcmF0aW9uIHN0YXRlIGlzIG5vdCB2YWxpZCAoaXQgbXVzdCBiZSBhY3RpdmUgYW5kIGNvbXBsZXRlZAorICogICAgICAgICBhbGwgcmVxdWlyZWQgaW5wdXQgc3RlcHMpLCBvciB0aGUgbGlicmFyeSBoYXMgbm90IGJlZW4gcHJldmlvdXNseQorICogICAgICAgICBpbml0aWFsaXplZCBieSBwc2FfY3J5cHRvX2luaXQoKS4KKyAqICAgICAgICAgSXQgaXMgaW1wbGVtZW50YXRpb24tZGVwZW5kZW50IHdoZXRoZXIgYSBmYWlsdXJlIHRvIGluaXRpYWxpemUKKyAqICAgICAgICAgcmVzdWx0cyBpbiB0aGlzIGVycm9yIGNvZGUuCisgKi8KK3BzYV9zdGF0dXNfdCBwc2Ffa2V5X2Rlcml2YXRpb25fb3V0cHV0X2tleSgKKyAgICBjb25zdCBwc2Ffa2V5X2F0dHJpYnV0ZXNfdCAqYXR0cmlidXRlcywKKyAgICBwc2Ffa2V5X2Rlcml2YXRpb25fb3BlcmF0aW9uX3QgKm9wZXJhdGlvbiwKKyAgICBtYmVkdGxzX3N2Y19rZXlfaWRfdCAqa2V5KTsKKworLyoqIERlcml2ZSBhIGtleSBmcm9tIGFuIG9uZ29pbmcga2V5IGRlcml2YXRpb24gb3BlcmF0aW9uIHdpdGggY3VzdG9tCisgKiAgcHJvZHVjdGlvbiBwYXJhbWV0ZXJzLgorICoKKyAqIFNlZSB0aGUgZGVzY3JpcHRpb24gb2YgcHNhX2tleV9kZXJpdmF0aW9uX291dF9rZXkoKSBmb3IgdGhlIG9wZXJhdGlvbiBvZgorICogdGhpcyBmdW5jdGlvbiB3aXRoIHRoZSBkZWZhdWx0IHByb2R1Y3Rpb24gcGFyYW1ldGVycy4KKyAqIE1iZWQgVExTIGN1cnJlbnRseSBkb2VzIG5vdCBjdXJyZW50bHkgc3VwcG9ydCBhbnkgbm9uLWRlZmF1bHQgcHJvZHVjdGlvbgorICogcGFyYW1ldGVycy4KKyAqCisgKiBcbm90ZSBUaGlzIGZ1bmN0aW9uIGlzIGV4cGVyaW1lbnRhbCBhbmQgbWF5IGNoYW5nZSBpbiBmdXR1cmUgbWlub3IKKyAqICAgICAgIHZlcnNpb25zIG9mIE1iZWQgVExTLgorICoKKyAqIFxwYXJhbVtpbl0gYXR0cmlidXRlcyAgICBUaGUgYXR0cmlidXRlcyBmb3IgdGhlIG5ldyBrZXkuCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgdGhlIGtleSB0eXBlIHRvIGJlIGNyZWF0ZWQgaXMKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAjUFNBX0tFWV9UWVBFX1BBU1NXT1JEX0hBU0ggdGhlbiB0aGUgYWxnb3JpdGhtIGluCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlIHBvbGljeSBtdXN0IGJlIHRoZSBzYW1lIGFzIGluIHRoZSBjdXJyZW50CisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgb3BlcmF0aW9uLgorICogXHBhcmFtW2luLG91dF0gb3BlcmF0aW9uIFRoZSBrZXkgZGVyaXZhdGlvbiBvcGVyYXRpb24gb2JqZWN0IHRvIHJlYWQgZnJvbS4KKyAqIFxwYXJhbVtpbl0gcGFyYW1zICAgICAgICBDdXN0b21pemF0aW9uIHBhcmFtZXRlcnMgZm9yIHRoZSBrZXkgZGVyaXZhdGlvbi4KKyAqICAgICAgICAgICAgICAgICAgICAgICAgICBXaGVuIHRoaXMgaXMgI1BTQV9LRVlfUFJPRFVDVElPTl9QQVJBTUVURVJTX0lOSVQKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoIFxwIHBhcmFtc19kYXRhX2xlbmd0aCA9IDAsCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcyBmdW5jdGlvbiBpcyBlcXVpdmFsZW50IHRvCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgcHNhX2tleV9kZXJpdmF0aW9uX291dHB1dF9rZXkoKS4KKyAqICAgICAgICAgICAgICAgICAgICAgICAgICBNYmVkIFRMUyBjdXJyZW50bHkgb25seSBzdXBwb3J0cyB0aGUgZGVmYXVsdAorICogICAgICAgICAgICAgICAgICAgICAgICAgIHByb2R1Y3Rpb24gcGFyYW1ldGVycywgaS5lLgorICogICAgICAgICAgICAgICAgICAgICAgICAgICNQU0FfS0VZX1BST0RVQ1RJT05fUEFSQU1FVEVSU19JTklULAorICogICAgICAgICAgICAgICAgICAgICAgICAgIGZvciBhbGwga2V5IHR5cGVzLgorICogXHBhcmFtIHBhcmFtc19kYXRhX2xlbmd0aAorICogICAgICAgICAgICAgICAgICAgICAgICAgIExlbmd0aCBvZiBgcGFyYW1zLT5kYXRhYCBpbiBieXRlcy4KKyAqIFxwYXJhbVtvdXRdIGtleSAgICAgICAgICBPbiBzdWNjZXNzLCBhbiBpZGVudGlmaWVyIGZvciB0aGUgbmV3bHkgY3JlYXRlZAorICogICAgICAgICAgICAgICAgICAgICAgICAgIGtleS4gRm9yIHBlcnNpc3RlbnQga2V5cywgdGhpcyBpcyB0aGUga2V5CisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgaWRlbnRpZmllciBkZWZpbmVkIGluIFxwIGF0dHJpYnV0ZXMuCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgXGMgMCBvbiBmYWlsdXJlLgorICoKKyAqIFxyZXR2YWwgI1BTQV9TVUNDRVNTCisgKiAgICAgICAgIFN1Y2Nlc3MuCisgKiAgICAgICAgIElmIHRoZSBrZXkgaXMgcGVyc2lzdGVudCwgdGhlIGtleSBtYXRlcmlhbCBhbmQgdGhlIGtleSdzIG1ldGFkYXRhCisgKiAgICAgICAgIGhhdmUgYmVlbiBzYXZlZCB0byBwZXJzaXN0ZW50IHN0b3JhZ2UuCisgKiBccmV0dmFsICNQU0FfRVJST1JfQUxSRUFEWV9FWElTVFMKKyAqICAgICAgICAgVGhpcyBpcyBhbiBhdHRlbXB0IHRvIGNyZWF0ZSBhIHBlcnNpc3RlbnQga2V5LCBhbmQgdGhlcmUgaXMKKyAqICAgICAgICAgYWxyZWFkeSBhIHBlcnNpc3RlbnQga2V5IHdpdGggdGhlIGdpdmVuIGlkZW50aWZpZXIuCisgKiBccmV0dmFsICNQU0FfRVJST1JfSU5TVUZGSUNJRU5UX0RBVEEKKyAqICAgICAgICAgVGhlcmUgd2FzIG5vdCBlbm91Z2ggZGF0YSB0byBjcmVhdGUgdGhlIGRlc2lyZWQga2V5LgorICogICAgICAgICBOb3RlIHRoYXQgaW4gdGhpcyBjYXNlLCBubyBvdXRwdXQgaXMgd3JpdHRlbiB0byB0aGUgb3V0cHV0IGJ1ZmZlci4KKyAqICAgICAgICAgVGhlIG9wZXJhdGlvbidzIGNhcGFjaXR5IGlzIHNldCB0byAwLCB0aHVzIHN1YnNlcXVlbnQgY2FsbHMgdG8KKyAqICAgICAgICAgdGhpcyBmdW5jdGlvbiB3aWxsIG5vdCBzdWNjZWVkLCBldmVuIHdpdGggYSBzbWFsbGVyIG91dHB1dCBidWZmZXIuCisgKiBccmV0dmFsICNQU0FfRVJST1JfTk9UX1NVUFBPUlRFRAorICogICAgICAgICBUaGUga2V5IHR5cGUgb3Iga2V5IHNpemUgaXMgbm90IHN1cHBvcnRlZCwgZWl0aGVyIGJ5IHRoZQorICogICAgICAgICBpbXBsZW1lbnRhdGlvbiBpbiBnZW5lcmFsIG9yIGluIHRoaXMgcGFydGljdWxhciBsb2NhdGlvbi4KKyAqIFxyZXR2YWwgI1BTQV9FUlJPUl9JTlZBTElEX0FSR1VNRU5UCisgKiAgICAgICAgIFRoZSBwcm92aWRlZCBrZXkgYXR0cmlidXRlcyBhcmUgbm90IHZhbGlkIGZvciB0aGUgb3BlcmF0aW9uLgorICogXHJldHZhbCAjUFNBX0VSUk9SX05PVF9QRVJNSVRURUQKKyAqICAgICAgICAgVGhlICNQU0FfS0VZX0RFUklWQVRJT05fSU5QVVRfU0VDUkVUIG9yCisgKiAgICAgICAgICNQU0FfS0VZX0RFUklWQVRJT05fSU5QVVRfUEFTU1dPUkQgaW5wdXQgd2FzIG5vdCBwcm92aWRlZCB0aHJvdWdoIGEKKyAqICAgICAgICAga2V5OyBvciBvbmUgb2YgdGhlIGlucHV0cyB3YXMgYSBrZXkgd2hvc2UgcG9saWN5IGRpZG4ndCBhbGxvdworICogICAgICAgICAjUFNBX0tFWV9VU0FHRV9ERVJJVkUuCisgKiBccmV0dmFsICNQU0FfRVJST1JfSU5TVUZGSUNJRU5UX01FTU9SWSBcZW1wdHlkZXNjcmlwdGlvbgorICogXHJldHZhbCAjUFNBX0VSUk9SX0lOU1VGRklDSUVOVF9TVE9SQUdFIFxlbXB0eWRlc2NyaXB0aW9uCisgKiBccmV0dmFsICNQU0FfRVJST1JfQ09NTVVOSUNBVElPTl9GQUlMVVJFIFxlbXB0eWRlc2NyaXB0aW9uCisgKiBccmV0dmFsICNQU0FfRVJST1JfSEFSRFdBUkVfRkFJTFVSRSBcZW1wdHlkZXNjcmlwdGlvbgorICogXHJldHZhbCAjUFNBX0VSUk9SX0NPUlJVUFRJT05fREVURUNURUQgXGVtcHR5ZGVzY3JpcHRpb24KKyAqIFxyZXR2YWwgI1BTQV9FUlJPUl9EQVRBX0lOVkFMSUQgXGVtcHR5ZGVzY3JpcHRpb24KKyAqIFxyZXR2YWwgI1BTQV9FUlJPUl9EQVRBX0NPUlJVUFQgXGVtcHR5ZGVzY3JpcHRpb24KKyAqIFxyZXR2YWwgI1BTQV9FUlJPUl9TVE9SQUdFX0ZBSUxVUkUgXGVtcHR5ZGVzY3JpcHRpb24KKyAqIFxyZXR2YWwgI1BTQV9FUlJPUl9CQURfU1RBVEUKKyAqICAgICAgICAgVGhlIG9wZXJhdGlvbiBzdGF0ZSBpcyBub3QgdmFsaWQgKGl0IG11c3QgYmUgYWN0aXZlIGFuZCBjb21wbGV0ZWQKKyAqICAgICAgICAgYWxsIHJlcXVpcmVkIGlucHV0IHN0ZXBzKSwgb3IgdGhlIGxpYnJhcnkgaGFzIG5vdCBiZWVuIHByZXZpb3VzbHkKKyAqICAgICAgICAgaW5pdGlhbGl6ZWQgYnkgcHNhX2NyeXB0b19pbml0KCkuCisgKiAgICAgICAgIEl0IGlzIGltcGxlbWVudGF0aW9uLWRlcGVuZGVudCB3aGV0aGVyIGEgZmFpbHVyZSB0byBpbml0aWFsaXplCisgKiAgICAgICAgIHJlc3VsdHMgaW4gdGhpcyBlcnJvciBjb2RlLgorICovCitwc2Ffc3RhdHVzX3QgcHNhX2tleV9kZXJpdmF0aW9uX291dHB1dF9rZXlfZXh0KAorICAgIGNvbnN0IHBzYV9rZXlfYXR0cmlidXRlc190ICphdHRyaWJ1dGVzLAorICAgIHBzYV9rZXlfZGVyaXZhdGlvbl9vcGVyYXRpb25fdCAqb3BlcmF0aW9uLAorICAgIGNvbnN0IHBzYV9rZXlfcHJvZHVjdGlvbl9wYXJhbWV0ZXJzX3QgKnBhcmFtcywKKyAgICBzaXplX3QgcGFyYW1zX2RhdGFfbGVuZ3RoLAorICAgIG1iZWR0bHNfc3ZjX2tleV9pZF90ICprZXkpOworCisvKiogQ29tcGFyZSBvdXRwdXQgZGF0YSBmcm9tIGEga2V5IGRlcml2YXRpb24gb3BlcmF0aW9uIHRvIGFuIGV4cGVjdGVkIHZhbHVlLgorICoKKyAqIFRoaXMgZnVuY3Rpb24gY2FsY3VsYXRlcyBvdXRwdXQgYnl0ZXMgZnJvbSBhIGtleSBkZXJpdmF0aW9uIGFsZ29yaXRobSBhbmQKKyAqIGNvbXBhcmVzIHRob3NlIGJ5dGVzIHRvIGFuIGV4cGVjdGVkIHZhbHVlIGluIGNvbnN0YW50IHRpbWUuCisgKiBJZiB5b3UgdmlldyB0aGUga2V5IGRlcml2YXRpb24ncyBvdXRwdXQgYXMgYSBzdHJlYW0gb2YgYnl0ZXMsIHRoaXMKKyAqIGZ1bmN0aW9uIGRlc3RydWN0aXZlbHkgcmVhZHMgdGhlIGV4cGVjdGVkIG51bWJlciBvZiBieXRlcyBmcm9tIHRoZQorICogc3RyZWFtIGJlZm9yZSBjb21wYXJpbmcgdGhlbS4KKyAqIFRoZSBvcGVyYXRpb24ncyBjYXBhY2l0eSBkZWNyZWFzZXMgYnkgdGhlIG51bWJlciBvZiBieXRlcyByZWFkLgorICoKKyAqIFRoaXMgaXMgZnVuY3Rpb25hbGx5IGVxdWl2YWxlbnQgdG8gdGhlIGZvbGxvd2luZyBjb2RlOgorICogXGNvZGUKKyAqIHBzYV9rZXlfZGVyaXZhdGlvbl9vdXRwdXRfYnl0ZXMob3BlcmF0aW9uLCB0bXAsIG91dHB1dF9sZW5ndGgpOworICogaWYgKG1lbWNtcChvdXRwdXQsIHRtcCwgb3V0cHV0X2xlbmd0aCkgIT0gMCkKKyAqICAgICByZXR1cm4gUFNBX0VSUk9SX0lOVkFMSURfU0lHTkFUVVJFOworICogXGVuZGNvZGUKKyAqIGV4Y2VwdCAoMSkgaXQgd29ya3MgZXZlbiBpZiB0aGUga2V5J3MgcG9saWN5IGRvZXMgbm90IGFsbG93IG91dHB1dHRpbmcgdGhlCisgKiBieXRlcywgYW5kICgyKSB0aGUgY29tcGFyaXNvbiB3aWxsIGJlIGRvbmUgaW4gY29uc3RhbnQgdGltZS4KKyAqCisgKiBJZiB0aGlzIGZ1bmN0aW9uIHJldHVybnMgYW4gZXJyb3Igc3RhdHVzIG90aGVyIHRoYW4KKyAqICNQU0FfRVJST1JfSU5TVUZGSUNJRU5UX0RBVEEgb3IgI1BTQV9FUlJPUl9JTlZBTElEX1NJR05BVFVSRSwKKyAqIHRoZSBvcGVyYXRpb24gZW50ZXJzIGFuIGVycm9yIHN0YXRlIGFuZCBtdXN0IGJlIGFib3J0ZWQgYnkgY2FsbGluZworICogcHNhX2tleV9kZXJpdmF0aW9uX2Fib3J0KCkuCisgKgorICogXHBhcmFtW2luLG91dF0gb3BlcmF0aW9uIFRoZSBrZXkgZGVyaXZhdGlvbiBvcGVyYXRpb24gb2JqZWN0IHRvIHJlYWQgZnJvbS4KKyAqIFxwYXJhbVtpbl0gZXhwZWN0ZWRfb3V0cHV0IEJ1ZmZlciBjb250YWluaW5nIHRoZSBleHBlY3RlZCBkZXJpdmF0aW9uIG91dHB1dC4KKyAqIFxwYXJhbSBvdXRwdXRfbGVuZ3RoICAgICBMZW5ndGggb2YgdGhlIGV4cGVjdGVkIG91dHB1dDsgdGhpcyBpcyBhbHNvIHRoZQorICogICAgICAgICAgICAgICAgICAgICAgICAgIG51bWJlciBvZiBieXRlcyB0aGF0IHdpbGwgYmUgcmVhZC4KKyAqCisgKiBccmV0dmFsICNQU0FfU1VDQ0VTUyBcZW1wdHlkZXNjcmlwdGlvbgorICogXHJldHZhbCAjUFNBX0VSUk9SX0lOVkFMSURfU0lHTkFUVVJFCisgKiAgICAgICAgIFRoZSBvdXRwdXQgd2FzIHJlYWQgc3VjY2Vzc2Z1bGx5LCBidXQgaXQgZGlmZmVycyBmcm9tIHRoZSBleHBlY3RlZAorICogICAgICAgICBvdXRwdXQuCisgKiBccmV0dmFsICNQU0FfRVJST1JfTk9UX1BFUk1JVFRFRAorICogICAgICAgICBPbmUgb2YgdGhlIGlucHV0cyB3YXMgYSBrZXkgd2hvc2UgcG9saWN5IGRpZG4ndCBhbGxvdworICogICAgICAgICAjUFNBX0tFWV9VU0FHRV9WRVJJRllfREVSSVZBVElPTi4KKyAqIFxyZXR2YWwgI1BTQV9FUlJPUl9JTlNVRkZJQ0lFTlRfREFUQQorICogICAgICAgICAgICAgICAgICAgICAgICAgIFRoZSBvcGVyYXRpb24ncyBjYXBhY2l0eSB3YXMgbGVzcyB0aGFuCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgXHAgb3V0cHV0X2xlbmd0aCBieXRlcy4gTm90ZSB0aGF0IGluIHRoaXMgY2FzZSwKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICB0aGUgb3BlcmF0aW9uJ3MgY2FwYWNpdHkgaXMgc2V0IHRvIDAsIHRodXMKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICBzdWJzZXF1ZW50IGNhbGxzIHRvIHRoaXMgZnVuY3Rpb24gd2lsbCBub3QKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICBzdWNjZWVkLCBldmVuIHdpdGggYSBzbWFsbGVyIGV4cGVjdGVkIG91dHB1dC4KKyAqIFxyZXR2YWwgI1BTQV9FUlJPUl9JTlNVRkZJQ0lFTlRfTUVNT1JZIFxlbXB0eWRlc2NyaXB0aW9uCisgKiBccmV0dmFsICNQU0FfRVJST1JfQ09NTVVOSUNBVElPTl9GQUlMVVJFIFxlbXB0eWRlc2NyaXB0aW9uCisgKiBccmV0dmFsICNQU0FfRVJST1JfSEFSRFdBUkVfRkFJTFVSRSBcZW1wdHlkZXNjcmlwdGlvbgorICogXHJldHZhbCAjUFNBX0VSUk9SX0NPUlJVUFRJT05fREVURUNURUQgXGVtcHR5ZGVzY3JpcHRpb24KKyAqIFxyZXR2YWwgI1BTQV9FUlJPUl9TVE9SQUdFX0ZBSUxVUkUgXGVtcHR5ZGVzY3JpcHRpb24KKyAqIFxyZXR2YWwgI1BTQV9FUlJPUl9CQURfU1RBVEUKKyAqICAgICAgICAgVGhlIG9wZXJhdGlvbiBzdGF0ZSBpcyBub3QgdmFsaWQgKGl0IG11c3QgYmUgYWN0aXZlIGFuZCBjb21wbGV0ZWQKKyAqICAgICAgICAgYWxsIHJlcXVpcmVkIGlucHV0IHN0ZXBzKSwgb3IgdGhlIGxpYnJhcnkgaGFzIG5vdCBiZWVuIHByZXZpb3VzbHkKKyAqICAgICAgICAgaW5pdGlhbGl6ZWQgYnkgcHNhX2NyeXB0b19pbml0KCkuCisgKiAgICAgICAgIEl0IGlzIGltcGxlbWVudGF0aW9uLWRlcGVuZGVudCB3aGV0aGVyIGEgZmFpbHVyZSB0byBpbml0aWFsaXplCisgKiAgICAgICAgIHJlc3VsdHMgaW4gdGhpcyBlcnJvciBjb2RlLgorICovCitwc2Ffc3RhdHVzX3QgcHNhX2tleV9kZXJpdmF0aW9uX3ZlcmlmeV9ieXRlcygKKyAgICBwc2Ffa2V5X2Rlcml2YXRpb25fb3BlcmF0aW9uX3QgKm9wZXJhdGlvbiwKKyAgICBjb25zdCB1aW50OF90ICpleHBlY3RlZF9vdXRwdXQsCisgICAgc2l6ZV90IG91dHB1dF9sZW5ndGgpOworCisvKiogQ29tcGFyZSBvdXRwdXQgZGF0YSBmcm9tIGEga2V5IGRlcml2YXRpb24gb3BlcmF0aW9uIHRvIGFuIGV4cGVjdGVkIHZhbHVlCisgKiBzdG9yZWQgaW4gYSBrZXkgb2JqZWN0LgorICoKKyAqIFRoaXMgZnVuY3Rpb24gY2FsY3VsYXRlcyBvdXRwdXQgYnl0ZXMgZnJvbSBhIGtleSBkZXJpdmF0aW9uIGFsZ29yaXRobSBhbmQKKyAqIGNvbXBhcmVzIHRob3NlIGJ5dGVzIHRvIGFuIGV4cGVjdGVkIHZhbHVlLCBwcm92aWRlZCBhcyBrZXkgb2YgdHlwZQorICogI1BTQV9LRVlfVFlQRV9QQVNTV09SRF9IQVNILgorICogSWYgeW91IHZpZXcgdGhlIGtleSBkZXJpdmF0aW9uJ3Mgb3V0cHV0IGFzIGEgc3RyZWFtIG9mIGJ5dGVzLCB0aGlzCisgKiBmdW5jdGlvbiBkZXN0cnVjdGl2ZWx5IHJlYWRzIHRoZSBudW1iZXIgb2YgYnl0ZXMgY29ycmVzcG9uZGluZyB0byB0aGUKKyAqIGxlbmd0aCBvZiB0aGUgZXhwZWN0ZWQgdmFsdWUgZnJvbSB0aGUgc3RyZWFtIGJlZm9yZSBjb21wYXJpbmcgdGhlbS4KKyAqIFRoZSBvcGVyYXRpb24ncyBjYXBhY2l0eSBkZWNyZWFzZXMgYnkgdGhlIG51bWJlciBvZiBieXRlcyByZWFkLgorICoKKyAqIFRoaXMgaXMgZnVuY3Rpb25hbGx5IGVxdWl2YWxlbnQgdG8gZXhwb3J0aW5nIHRoZSBrZXkgYW5kIGNhbGxpbmcKKyAqIHBzYV9rZXlfZGVyaXZhdGlvbl92ZXJpZnlfYnl0ZXMoKSBvbiB0aGUgcmVzdWx0LCBleGNlcHQgdGhhdCBpdAorICogd29ya3MgZXZlbiBpZiB0aGUga2V5IGNhbm5vdCBiZSBleHBvcnRlZC4KKyAqCisgKiBJZiB0aGlzIGZ1bmN0aW9uIHJldHVybnMgYW4gZXJyb3Igc3RhdHVzIG90aGVyIHRoYW4KKyAqICNQU0FfRVJST1JfSU5TVUZGSUNJRU5UX0RBVEEgb3IgI1BTQV9FUlJPUl9JTlZBTElEX1NJR05BVFVSRSwKKyAqIHRoZSBvcGVyYXRpb24gZW50ZXJzIGFuIGVycm9yIHN0YXRlIGFuZCBtdXN0IGJlIGFib3J0ZWQgYnkgY2FsbGluZworICogcHNhX2tleV9kZXJpdmF0aW9uX2Fib3J0KCkuCisgKgorICogXHBhcmFtW2luLG91dF0gb3BlcmF0aW9uIFRoZSBrZXkgZGVyaXZhdGlvbiBvcGVyYXRpb24gb2JqZWN0IHRvIHJlYWQgZnJvbS4KKyAqIFxwYXJhbVtpbl0gZXhwZWN0ZWQgICAgICBBIGtleSBvZiB0eXBlICNQU0FfS0VZX1RZUEVfUEFTU1dPUkRfSEFTSAorICogICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRhaW5pbmcgdGhlIGV4cGVjdGVkIG91dHB1dC4gSXRzIHBvbGljeSBtdXN0CisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgaW5jbHVkZSB0aGUgI1BTQV9LRVlfVVNBR0VfVkVSSUZZX0RFUklWQVRJT04gZmxhZworICogICAgICAgICAgICAgICAgICAgICAgICAgIGFuZCB0aGUgcGVybWl0dGVkIGFsZ29yaXRobSBtdXN0IG1hdGNoIHRoZQorICogICAgICAgICAgICAgICAgICAgICAgICAgIG9wZXJhdGlvbi4gVGhlIHZhbHVlIG9mIHRoaXMga2V5IHdhcyBsaWtlbHkKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICBjb21wdXRlZCBieSBhIHByZXZpb3VzIGNhbGwgdG8KKyAqICAgICAgICAgICAgICAgICAgICAgICAgICBwc2Ffa2V5X2Rlcml2YXRpb25fb3V0cHV0X2tleSgpIG9yCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgcHNhX2tleV9kZXJpdmF0aW9uX291dHB1dF9rZXlfZXh0KCkuCisgKgorICogXHJldHZhbCAjUFNBX1NVQ0NFU1MgXGVtcHR5ZGVzY3JpcHRpb24KKyAqIFxyZXR2YWwgI1BTQV9FUlJPUl9JTlZBTElEX1NJR05BVFVSRQorICogICAgICAgICBUaGUgb3V0cHV0IHdhcyByZWFkIHN1Y2Nlc3NmdWxseSwgYnV0IGlmIGRpZmZlcnMgZnJvbSB0aGUgZXhwZWN0ZWQKKyAqICAgICAgICAgb3V0cHV0LgorICogXHJldHZhbCAjUFNBX0VSUk9SX0lOVkFMSURfSEFORExFCisgKiAgICAgICAgIFRoZSBrZXkgcGFzc2VkIGFzIHRoZSBleHBlY3RlZCB2YWx1ZSBkb2VzIG5vdCBleGlzdC4KKyAqIFxyZXR2YWwgI1BTQV9FUlJPUl9JTlZBTElEX0FSR1VNRU5UCisgKiAgICAgICAgIFRoZSBrZXkgcGFzc2VkIGFzIHRoZSBleHBlY3RlZCB2YWx1ZSBoYXMgYW4gaW52YWxpZCB0eXBlLgorICogXHJldHZhbCAjUFNBX0VSUk9SX05PVF9QRVJNSVRURUQKKyAqICAgICAgICAgVGhlIGtleSBwYXNzZWQgYXMgdGhlIGV4cGVjdGVkIHZhbHVlIGRvZXMgbm90IGFsbG93IHRoaXMgdXNhZ2Ugb3IKKyAqICAgICAgICAgdGhpcyBhbGdvcml0aG07IG9yIG9uZSBvZiB0aGUgaW5wdXRzIHdhcyBhIGtleSB3aG9zZSBwb2xpY3kgZGlkbid0CisgKiAgICAgICAgIGFsbG93ICNQU0FfS0VZX1VTQUdFX1ZFUklGWV9ERVJJVkFUSU9OLgorICogXHJldHZhbCAjUFNBX0VSUk9SX0lOU1VGRklDSUVOVF9EQVRBCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgVGhlIG9wZXJhdGlvbidzIGNhcGFjaXR5IHdhcyBsZXNzIHRoYW4KKyAqICAgICAgICAgICAgICAgICAgICAgICAgICB0aGUgbGVuZ3RoIG9mIHRoZSBleHBlY3RlZCB2YWx1ZS4gSW4gdGhpcyBjYXNlLAorICogICAgICAgICAgICAgICAgICAgICAgICAgIHRoZSBvcGVyYXRpb24ncyBjYXBhY2l0eSBpcyBzZXQgdG8gMCwgdGh1cworICogICAgICAgICAgICAgICAgICAgICAgICAgIHN1YnNlcXVlbnQgY2FsbHMgdG8gdGhpcyBmdW5jdGlvbiB3aWxsIG5vdAorICogICAgICAgICAgICAgICAgICAgICAgICAgIHN1Y2NlZWQsIGV2ZW4gd2l0aCBhIHNtYWxsZXIgZXhwZWN0ZWQgb3V0cHV0LgorICogXHJldHZhbCAjUFNBX0VSUk9SX0lOU1VGRklDSUVOVF9NRU1PUlkgXGVtcHR5ZGVzY3JpcHRpb24KKyAqIFxyZXR2YWwgI1BTQV9FUlJPUl9DT01NVU5JQ0FUSU9OX0ZBSUxVUkUgXGVtcHR5ZGVzY3JpcHRpb24KKyAqIFxyZXR2YWwgI1BTQV9FUlJPUl9IQVJEV0FSRV9GQUlMVVJFIFxlbXB0eWRlc2NyaXB0aW9uCisgKiBccmV0dmFsICNQU0FfRVJST1JfQ09SUlVQVElPTl9ERVRFQ1RFRCBcZW1wdHlkZXNjcmlwdGlvbgorICogXHJldHZhbCAjUFNBX0VSUk9SX1NUT1JBR0VfRkFJTFVSRSBcZW1wdHlkZXNjcmlwdGlvbgorICogXHJldHZhbCAjUFNBX0VSUk9SX0JBRF9TVEFURQorICogICAgICAgICBUaGUgb3BlcmF0aW9uIHN0YXRlIGlzIG5vdCB2YWxpZCAoaXQgbXVzdCBiZSBhY3RpdmUgYW5kIGNvbXBsZXRlZAorICogICAgICAgICBhbGwgcmVxdWlyZWQgaW5wdXQgc3RlcHMpLCBvciB0aGUgbGlicmFyeSBoYXMgbm90IGJlZW4gcHJldmlvdXNseQorICogICAgICAgICBpbml0aWFsaXplZCBieSBwc2FfY3J5cHRvX2luaXQoKS4KKyAqICAgICAgICAgSXQgaXMgaW1wbGVtZW50YXRpb24tZGVwZW5kZW50IHdoZXRoZXIgYSBmYWlsdXJlIHRvIGluaXRpYWxpemUKKyAqICAgICAgICAgcmVzdWx0cyBpbiB0aGlzIGVycm9yIGNvZGUuCisgKi8KK3BzYV9zdGF0dXNfdCBwc2Ffa2V5X2Rlcml2YXRpb25fdmVyaWZ5X2tleSgKKyAgICBwc2Ffa2V5X2Rlcml2YXRpb25fb3BlcmF0aW9uX3QgKm9wZXJhdGlvbiwKKyAgICBwc2Ffa2V5X2lkX3QgZXhwZWN0ZWQpOworCisvKiogQWJvcnQgYSBrZXkgZGVyaXZhdGlvbiBvcGVyYXRpb24uCisgKgorICogQWJvcnRpbmcgYW4gb3BlcmF0aW9uIGZyZWVzIGFsbCBhc3NvY2lhdGVkIHJlc291cmNlcyBleGNlcHQgZm9yIHRoZSBcYworICogb3BlcmF0aW9uIHN0cnVjdHVyZSBpdHNlbGYuIE9uY2UgYWJvcnRlZCwgdGhlIG9wZXJhdGlvbiBvYmplY3QgY2FuIGJlIHJldXNlZAorICogZm9yIGFub3RoZXIgb3BlcmF0aW9uIGJ5IGNhbGxpbmcgcHNhX2tleV9kZXJpdmF0aW9uX3NldHVwKCkgYWdhaW4uCisgKgorICogVGhpcyBmdW5jdGlvbiBtYXkgYmUgY2FsbGVkIGF0IGFueSB0aW1lIGFmdGVyIHRoZSBvcGVyYXRpb24KKyAqIG9iamVjdCBoYXMgYmVlbiBpbml0aWFsaXplZCBhcyBkZXNjcmliZWQgaW4gI3BzYV9rZXlfZGVyaXZhdGlvbl9vcGVyYXRpb25fdC4KKyAqCisgKiBJbiBwYXJ0aWN1bGFyLCBpdCBpcyB2YWxpZCB0byBjYWxsIHBzYV9rZXlfZGVyaXZhdGlvbl9hYm9ydCgpIHR3aWNlLCBvciB0bworICogY2FsbCBwc2Ffa2V5X2Rlcml2YXRpb25fYWJvcnQoKSBvbiBhbiBvcGVyYXRpb24gdGhhdCBoYXMgbm90IGJlZW4gc2V0IHVwLgorICoKKyAqIFxwYXJhbVtpbixvdXRdIG9wZXJhdGlvbiAgICBUaGUgb3BlcmF0aW9uIHRvIGFib3J0LgorICoKKyAqIFxyZXR2YWwgI1BTQV9TVUNDRVNTIFxlbXB0eWRlc2NyaXB0aW9uCisgKiBccmV0dmFsICNQU0FfRVJST1JfQ09NTVVOSUNBVElPTl9GQUlMVVJFIFxlbXB0eWRlc2NyaXB0aW9uCisgKiBccmV0dmFsICNQU0FfRVJST1JfSEFSRFdBUkVfRkFJTFVSRSBcZW1wdHlkZXNjcmlwdGlvbgorICogXHJldHZhbCAjUFNBX0VSUk9SX0NPUlJVUFRJT05fREVURUNURUQgXGVtcHR5ZGVzY3JpcHRpb24KKyAqIFxyZXR2YWwgI1BTQV9FUlJPUl9CQURfU1RBVEUKKyAqICAgICAgICAgVGhlIGxpYnJhcnkgaGFzIG5vdCBiZWVuIHByZXZpb3VzbHkgaW5pdGlhbGl6ZWQgYnkgcHNhX2NyeXB0b19pbml0KCkuCisgKiAgICAgICAgIEl0IGlzIGltcGxlbWVudGF0aW9uLWRlcGVuZGVudCB3aGV0aGVyIGEgZmFpbHVyZSB0byBpbml0aWFsaXplCisgKiAgICAgICAgIHJlc3VsdHMgaW4gdGhpcyBlcnJvciBjb2RlLgorICovCitwc2Ffc3RhdHVzX3QgcHNhX2tleV9kZXJpdmF0aW9uX2Fib3J0KAorICAgIHBzYV9rZXlfZGVyaXZhdGlvbl9vcGVyYXRpb25fdCAqb3BlcmF0aW9uKTsKKworLyoqIFBlcmZvcm0gYSBrZXkgYWdyZWVtZW50IGFuZCByZXR1cm4gdGhlIHJhdyBzaGFyZWQgc2VjcmV0LgorICoKKyAqIFx3YXJuaW5nIFRoZSByYXcgcmVzdWx0IG9mIGEga2V5IGFncmVlbWVudCBhbGdvcml0aG0gc3VjaCBhcyBmaW5pdGUtZmllbGQKKyAqIERpZmZpZS1IZWxsbWFuIG9yIGVsbGlwdGljIGN1cnZlIERpZmZpZS1IZWxsbWFuIGhhcyBiaWFzZXMgYW5kIHNob3VsZAorICogbm90IGJlIHVzZWQgZGlyZWN0bHkgYXMga2V5IG1hdGVyaWFsLiBJdCBzaG91bGQgaW5zdGVhZCBiZSBwYXNzZWQgYXMKKyAqIGlucHV0IHRvIGEga2V5IGRlcml2YXRpb24gYWxnb3JpdGhtLiBUbyBjaGFpbiBhIGtleSBhZ3JlZW1lbnQgd2l0aAorICogYSBrZXkgZGVyaXZhdGlvbiwgdXNlIHBzYV9rZXlfZGVyaXZhdGlvbl9rZXlfYWdyZWVtZW50KCkgYW5kIG90aGVyCisgKiBmdW5jdGlvbnMgZnJvbSB0aGUga2V5IGRlcml2YXRpb24gaW50ZXJmYWNlLgorICoKKyAqIFxwYXJhbSBhbGcgICAgICAgICAgICAgICAgICAgICBUaGUga2V5IGFncmVlbWVudCBhbGdvcml0aG0gdG8gY29tcHV0ZQorICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChcYyBQU0FfQUxHX1hYWCB2YWx1ZSBzdWNoIHRoYXQKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjUFNBX0FMR19JU19SQVdfS0VZX0FHUkVFTUVOVChccCBhbGcpCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXMgdHJ1ZSkuCisgKiBccGFyYW0gcHJpdmF0ZV9rZXkgICAgICAgICAgICAgSWRlbnRpZmllciBvZiB0aGUgcHJpdmF0ZSBrZXkgdG8gdXNlLiBJdCBtdXN0CisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWxsb3cgdGhlIHVzYWdlICNQU0FfS0VZX1VTQUdFX0RFUklWRS4KKyAqIFxwYXJhbVtpbl0gcGVlcl9rZXkgICAgICAgICAgICBQdWJsaWMga2V5IG9mIHRoZSBwZWVyLiBJdCBtdXN0IGJlCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gdGhlIHNhbWUgZm9ybWF0IHRoYXQgcHNhX2ltcG9ydF9rZXkoKQorICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFjY2VwdHMuIFRoZSBzdGFuZGFyZCBmb3JtYXRzIGZvciBwdWJsaWMKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXlzIGFyZSBkb2N1bWVudGVkIGluIHRoZSBkb2N1bWVudGF0aW9uCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb2YgcHNhX2V4cG9ydF9wdWJsaWNfa2V5KCkuCisgKiBccGFyYW0gcGVlcl9rZXlfbGVuZ3RoICAgICAgICAgU2l6ZSBvZiBccCBwZWVyX2tleSBpbiBieXRlcy4KKyAqIFxwYXJhbVtvdXRdIG91dHB1dCAgICAgICAgICAgICBCdWZmZXIgd2hlcmUgdGhlIGRlY3J5cHRlZCBtZXNzYWdlIGlzIHRvCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmUgd3JpdHRlbi4KKyAqIFxwYXJhbSBvdXRwdXRfc2l6ZSAgICAgICAgICAgICBTaXplIG9mIHRoZSBcYyBvdXRwdXQgYnVmZmVyIGluIGJ5dGVzLgorICogXHBhcmFtW291dF0gb3V0cHV0X2xlbmd0aCAgICAgIE9uIHN1Y2Nlc3MsIHRoZSBudW1iZXIgb2YgYnl0ZXMKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGF0IG1ha2UgdXAgdGhlIHJldHVybmVkIG91dHB1dC4KKyAqCisgKiBccmV0dmFsICNQU0FfU1VDQ0VTUworICogICAgICAgICBTdWNjZXNzLgorICogXHJldHZhbCAjUFNBX0VSUk9SX0lOVkFMSURfSEFORExFIFxlbXB0eWRlc2NyaXB0aW9uCisgKiBccmV0dmFsICNQU0FfRVJST1JfTk9UX1BFUk1JVFRFRCBcZW1wdHlkZXNjcmlwdGlvbgorICogXHJldHZhbCAjUFNBX0VSUk9SX0lOVkFMSURfQVJHVU1FTlQKKyAqICAgICAgICAgXHAgYWxnIGlzIG5vdCBhIGtleSBhZ3JlZW1lbnQgYWxnb3JpdGhtLCBvcgorICogICAgICAgICBccCBwcml2YXRlX2tleSBpcyBub3QgY29tcGF0aWJsZSB3aXRoIFxwIGFsZywKKyAqICAgICAgICAgb3IgXHAgcGVlcl9rZXkgaXMgbm90IHZhbGlkIGZvciBccCBhbGcgb3Igbm90IGNvbXBhdGlibGUgd2l0aAorICogICAgICAgICBccCBwcml2YXRlX2tleS4KKyAqIFxyZXR2YWwgI1BTQV9FUlJPUl9CVUZGRVJfVE9PX1NNQUxMCisgKiAgICAgICAgIFxwIG91dHB1dF9zaXplIGlzIHRvbyBzbWFsbAorICogXHJldHZhbCAjUFNBX0VSUk9SX05PVF9TVVBQT1JURUQKKyAqICAgICAgICAgXHAgYWxnIGlzIG5vdCBhIHN1cHBvcnRlZCBrZXkgYWdyZWVtZW50IGFsZ29yaXRobS4KKyAqIFxyZXR2YWwgI1BTQV9FUlJPUl9JTlNVRkZJQ0lFTlRfTUVNT1JZIFxlbXB0eWRlc2NyaXB0aW9uCisgKiBccmV0dmFsICNQU0FfRVJST1JfQ09NTVVOSUNBVElPTl9GQUlMVVJFIFxlbXB0eWRlc2NyaXB0aW9uCisgKiBccmV0dmFsICNQU0FfRVJST1JfSEFSRFdBUkVfRkFJTFVSRSBcZW1wdHlkZXNjcmlwdGlvbgorICogXHJldHZhbCAjUFNBX0VSUk9SX0NPUlJVUFRJT05fREVURUNURUQgXGVtcHR5ZGVzY3JpcHRpb24KKyAqIFxyZXR2YWwgI1BTQV9FUlJPUl9TVE9SQUdFX0ZBSUxVUkUgXGVtcHR5ZGVzY3JpcHRpb24KKyAqIFxyZXR2YWwgI1BTQV9FUlJPUl9CQURfU1RBVEUKKyAqICAgICAgICAgVGhlIGxpYnJhcnkgaGFzIG5vdCBiZWVuIHByZXZpb3VzbHkgaW5pdGlhbGl6ZWQgYnkgcHNhX2NyeXB0b19pbml0KCkuCisgKiAgICAgICAgIEl0IGlzIGltcGxlbWVudGF0aW9uLWRlcGVuZGVudCB3aGV0aGVyIGEgZmFpbHVyZSB0byBpbml0aWFsaXplCisgKiAgICAgICAgIHJlc3VsdHMgaW4gdGhpcyBlcnJvciBjb2RlLgorICovCitwc2Ffc3RhdHVzX3QgcHNhX3Jhd19rZXlfYWdyZWVtZW50KHBzYV9hbGdvcml0aG1fdCBhbGcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1iZWR0bHNfc3ZjX2tleV9pZF90IHByaXZhdGVfa2V5LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1aW50OF90ICpwZWVyX2tleSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IHBlZXJfa2V5X2xlbmd0aCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDhfdCAqb3V0cHV0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3Qgb3V0cHV0X3NpemUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCAqb3V0cHV0X2xlbmd0aCk7CisKKy8qKgorICogXGJyaWVmIEdlbmVyYXRlIGEga2V5IG9yIGtleSBwYWlyLgorICoKKyAqIFRoZSBrZXkgaXMgZ2VuZXJhdGVkIHJhbmRvbWx5LgorICogSXRzIGxvY2F0aW9uLCB1c2FnZSBwb2xpY3ksIHR5cGUgYW5kIHNpemUgYXJlIHRha2VuIGZyb20gXHAgYXR0cmlidXRlcy4KKyAqCisgKiBJbXBsZW1lbnRhdGlvbnMgbXVzdCByZWplY3QgYW4gYXR0ZW1wdCB0byBnZW5lcmF0ZSBhIGtleSBvZiBzaXplIDAuCisgKgorICogVGhlIGZvbGxvd2luZyB0eXBlLXNwZWNpZmljIGNvbnNpZGVyYXRpb25zIGFwcGx5OgorICogLSBGb3IgUlNBIGtleXMgKCNQU0FfS0VZX1RZUEVfUlNBX0tFWV9QQUlSKSwKKyAqICAgdGhlIHB1YmxpYyBleHBvbmVudCBpcyA2NTUzNy4KKyAqICAgVGhlIG1vZHVsdXMgaXMgYSBwcm9kdWN0IG9mIHR3byBwcm9iYWJpbGlzdGljIHByaW1lcworICogICBiZXR3ZWVuIDJee24tMX0gYW5kIDJebiB3aGVyZSBuIGlzIHRoZSBiaXQgc2l6ZSBzcGVjaWZpZWQgaW4gdGhlCisgKiAgIGF0dHJpYnV0ZXMuCisgKgorICogXG5vdGUgVGhpcyBmdW5jdGlvbiBpcyBlcXVpdmFsZW50IHRvIGNhbGxpbmcgcHNhX2dlbmVyYXRlX2tleV9leHQoKQorICogICAgICAgd2l0aCB0aGUgcHJvZHVjdGlvbiBwYXJhbWV0ZXJzICNQU0FfS0VZX1BST0RVQ1RJT05fUEFSQU1FVEVSU19JTklUCisgKiAgICAgICBhbmQgYHBhcmFtc19kYXRhX2xlbmd0aCA9PSAwYCAoaS5lLiBgcGFyYW1zLT5kYXRhYCBpcyBlbXB0eSkuCisgKgorICogXHBhcmFtW2luXSBhdHRyaWJ1dGVzICAgIFRoZSBhdHRyaWJ1dGVzIGZvciB0aGUgbmV3IGtleS4KKyAqIFxwYXJhbVtvdXRdIGtleSAgICAgICAgICBPbiBzdWNjZXNzLCBhbiBpZGVudGlmaWVyIGZvciB0aGUgbmV3bHkgY3JlYXRlZAorICogICAgICAgICAgICAgICAgICAgICAgICAgIGtleS4gRm9yIHBlcnNpc3RlbnQga2V5cywgdGhpcyBpcyB0aGUga2V5CisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgaWRlbnRpZmllciBkZWZpbmVkIGluIFxwIGF0dHJpYnV0ZXMuCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgXGMgMCBvbiBmYWlsdXJlLgorICoKKyAqIFxyZXR2YWwgI1BTQV9TVUNDRVNTCisgKiAgICAgICAgIFN1Y2Nlc3MuCisgKiAgICAgICAgIElmIHRoZSBrZXkgaXMgcGVyc2lzdGVudCwgdGhlIGtleSBtYXRlcmlhbCBhbmQgdGhlIGtleSdzIG1ldGFkYXRhCisgKiAgICAgICAgIGhhdmUgYmVlbiBzYXZlZCB0byBwZXJzaXN0ZW50IHN0b3JhZ2UuCisgKiBccmV0dmFsICNQU0FfRVJST1JfQUxSRUFEWV9FWElTVFMKKyAqICAgICAgICAgVGhpcyBpcyBhbiBhdHRlbXB0IHRvIGNyZWF0ZSBhIHBlcnNpc3RlbnQga2V5LCBhbmQgdGhlcmUgaXMKKyAqICAgICAgICAgYWxyZWFkeSBhIHBlcnNpc3RlbnQga2V5IHdpdGggdGhlIGdpdmVuIGlkZW50aWZpZXIuCisgKiBccmV0dmFsICNQU0FfRVJST1JfTk9UX1NVUFBPUlRFRCBcZW1wdHlkZXNjcmlwdGlvbgorICogXHJldHZhbCAjUFNBX0VSUk9SX0lOVkFMSURfQVJHVU1FTlQgXGVtcHR5ZGVzY3JpcHRpb24KKyAqIFxyZXR2YWwgI1BTQV9FUlJPUl9JTlNVRkZJQ0lFTlRfTUVNT1JZIFxlbXB0eWRlc2NyaXB0aW9uCisgKiBccmV0dmFsICNQU0FfRVJST1JfSU5TVUZGSUNJRU5UX0VOVFJPUFkgXGVtcHR5ZGVzY3JpcHRpb24KKyAqIFxyZXR2YWwgI1BTQV9FUlJPUl9DT01NVU5JQ0FUSU9OX0ZBSUxVUkUgXGVtcHR5ZGVzY3JpcHRpb24KKyAqIFxyZXR2YWwgI1BTQV9FUlJPUl9IQVJEV0FSRV9GQUlMVVJFIFxlbXB0eWRlc2NyaXB0aW9uCisgKiBccmV0dmFsICNQU0FfRVJST1JfQ09SUlVQVElPTl9ERVRFQ1RFRCBcZW1wdHlkZXNjcmlwdGlvbgorICogXHJldHZhbCAjUFNBX0VSUk9SX0lOU1VGRklDSUVOVF9TVE9SQUdFIFxlbXB0eWRlc2NyaXB0aW9uCisgKiBccmV0dmFsICNQU0FfRVJST1JfREFUQV9JTlZBTElEIFxlbXB0eWRlc2NyaXB0aW9uCisgKiBccmV0dmFsICNQU0FfRVJST1JfREFUQV9DT1JSVVBUIFxlbXB0eWRlc2NyaXB0aW9uCisgKiBccmV0dmFsICNQU0FfRVJST1JfU1RPUkFHRV9GQUlMVVJFIFxlbXB0eWRlc2NyaXB0aW9uCisgKiBccmV0dmFsICNQU0FfRVJST1JfQkFEX1NUQVRFCisgKiAgICAgICAgIFRoZSBsaWJyYXJ5IGhhcyBub3QgYmVlbiBwcmV2aW91c2x5IGluaXRpYWxpemVkIGJ5IHBzYV9jcnlwdG9faW5pdCgpLgorICogICAgICAgICBJdCBpcyBpbXBsZW1lbnRhdGlvbi1kZXBlbmRlbnQgd2hldGhlciBhIGZhaWx1cmUgdG8gaW5pdGlhbGl6ZQorICogICAgICAgICByZXN1bHRzIGluIHRoaXMgZXJyb3IgY29kZS4KKyAqLworcHNhX3N0YXR1c190IHBzYV9nZW5lcmF0ZV9rZXkoY29uc3QgcHNhX2tleV9hdHRyaWJ1dGVzX3QgKmF0dHJpYnV0ZXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYmVkdGxzX3N2Y19rZXlfaWRfdCAqa2V5KTsKKworLyoqCisgKiBcYnJpZWYgR2VuZXJhdGUgYSBrZXkgb3Iga2V5IHBhaXIgdXNpbmcgY3VzdG9tIHByb2R1Y3Rpb24gcGFyYW1ldGVycy4KKyAqCisgKiBTZWUgdGhlIGRlc2NyaXB0aW9uIG9mIHBzYV9nZW5lcmF0ZV9rZXkoKSBmb3IgdGhlIG9wZXJhdGlvbiBvZiB0aGlzCisgKiBmdW5jdGlvbiB3aXRoIHRoZSBkZWZhdWx0IHByb2R1Y3Rpb24gcGFyYW1ldGVycy4gSW4gYWRkaXRpb24sIHRoaXMgZnVuY3Rpb24KKyAqIHN1cHBvcnRzIHRoZSBmb2xsb3dpbmcgcHJvZHVjdGlvbiBjdXN0b21pemF0aW9ucywgZGVzY3JpYmVkIGluIG1vcmUgZGV0YWlsCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBvZiA6OnBzYV9rZXlfcHJvZHVjdGlvbl9wYXJhbWV0ZXJzX3Q6CisgKgorICogLSBSU0Ega2V5czogZ2VuZXJhdGlvbiB3aXRoIGEgY3VzdG9tIHB1YmxpYyBleHBvbmVudC4KKyAqCisgKiBcbm90ZSBUaGlzIGZ1bmN0aW9uIGlzIGV4cGVyaW1lbnRhbCBhbmQgbWF5IGNoYW5nZSBpbiBmdXR1cmUgbWlub3IKKyAqICAgICAgIHZlcnNpb25zIG9mIE1iZWQgVExTLgorICoKKyAqIFxwYXJhbVtpbl0gYXR0cmlidXRlcyAgICBUaGUgYXR0cmlidXRlcyBmb3IgdGhlIG5ldyBrZXkuCisgKiBccGFyYW1baW5dIHBhcmFtcyAgICAgICAgQ3VzdG9taXphdGlvbiBwYXJhbWV0ZXJzIGZvciB0aGUga2V5IGdlbmVyYXRpb24uCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgV2hlbiB0aGlzIGlzICNQU0FfS0VZX1BST0RVQ1RJT05fUEFSQU1FVEVSU19JTklUCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aCBccCBwYXJhbXNfZGF0YV9sZW5ndGggPSAwLAorICogICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMgZnVuY3Rpb24gaXMgZXF1aXZhbGVudCB0bworICogICAgICAgICAgICAgICAgICAgICAgICAgIHBzYV9nZW5lcmF0ZV9rZXkoKS4KKyAqIFxwYXJhbSBwYXJhbXNfZGF0YV9sZW5ndGgKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICBMZW5ndGggb2YgYHBhcmFtcy0+ZGF0YWAgaW4gYnl0ZXMuCisgKiBccGFyYW1bb3V0XSBrZXkgICAgICAgICAgT24gc3VjY2VzcywgYW4gaWRlbnRpZmllciBmb3IgdGhlIG5ld2x5IGNyZWF0ZWQKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICBrZXkuIEZvciBwZXJzaXN0ZW50IGtleXMsIHRoaXMgaXMgdGhlIGtleQorICogICAgICAgICAgICAgICAgICAgICAgICAgIGlkZW50aWZpZXIgZGVmaW5lZCBpbiBccCBhdHRyaWJ1dGVzLgorICogICAgICAgICAgICAgICAgICAgICAgICAgIFxjIDAgb24gZmFpbHVyZS4KKyAqCisgKiBccmV0dmFsICNQU0FfU1VDQ0VTUworICogICAgICAgICBTdWNjZXNzLgorICogICAgICAgICBJZiB0aGUga2V5IGlzIHBlcnNpc3RlbnQsIHRoZSBrZXkgbWF0ZXJpYWwgYW5kIHRoZSBrZXkncyBtZXRhZGF0YQorICogICAgICAgICBoYXZlIGJlZW4gc2F2ZWQgdG8gcGVyc2lzdGVudCBzdG9yYWdlLgorICogXHJldHZhbCAjUFNBX0VSUk9SX0FMUkVBRFlfRVhJU1RTCisgKiAgICAgICAgIFRoaXMgaXMgYW4gYXR0ZW1wdCB0byBjcmVhdGUgYSBwZXJzaXN0ZW50IGtleSwgYW5kIHRoZXJlIGlzCisgKiAgICAgICAgIGFscmVhZHkgYSBwZXJzaXN0ZW50IGtleSB3aXRoIHRoZSBnaXZlbiBpZGVudGlmaWVyLgorICogXHJldHZhbCAjUFNBX0VSUk9SX05PVF9TVVBQT1JURUQgXGVtcHR5ZGVzY3JpcHRpb24KKyAqIFxyZXR2YWwgI1BTQV9FUlJPUl9JTlZBTElEX0FSR1VNRU5UIFxlbXB0eWRlc2NyaXB0aW9uCisgKiBccmV0dmFsICNQU0FfRVJST1JfSU5TVUZGSUNJRU5UX01FTU9SWSBcZW1wdHlkZXNjcmlwdGlvbgorICogXHJldHZhbCAjUFNBX0VSUk9SX0lOU1VGRklDSUVOVF9FTlRST1BZIFxlbXB0eWRlc2NyaXB0aW9uCisgKiBccmV0dmFsICNQU0FfRVJST1JfQ09NTVVOSUNBVElPTl9GQUlMVVJFIFxlbXB0eWRlc2NyaXB0aW9uCisgKiBccmV0dmFsICNQU0FfRVJST1JfSEFSRFdBUkVfRkFJTFVSRSBcZW1wdHlkZXNjcmlwdGlvbgorICogXHJldHZhbCAjUFNBX0VSUk9SX0NPUlJVUFRJT05fREVURUNURUQgXGVtcHR5ZGVzY3JpcHRpb24KKyAqIFxyZXR2YWwgI1BTQV9FUlJPUl9JTlNVRkZJQ0lFTlRfU1RPUkFHRSBcZW1wdHlkZXNjcmlwdGlvbgorICogXHJldHZhbCAjUFNBX0VSUk9SX0RBVEFfSU5WQUxJRCBcZW1wdHlkZXNjcmlwdGlvbgorICogXHJldHZhbCAjUFNBX0VSUk9SX0RBVEFfQ09SUlVQVCBcZW1wdHlkZXNjcmlwdGlvbgorICogXHJldHZhbCAjUFNBX0VSUk9SX1NUT1JBR0VfRkFJTFVSRSBcZW1wdHlkZXNjcmlwdGlvbgorICogXHJldHZhbCAjUFNBX0VSUk9SX0JBRF9TVEFURQorICogICAgICAgICBUaGUgbGlicmFyeSBoYXMgbm90IGJlZW4gcHJldmlvdXNseSBpbml0aWFsaXplZCBieSBwc2FfY3J5cHRvX2luaXQoKS4KKyAqICAgICAgICAgSXQgaXMgaW1wbGVtZW50YXRpb24tZGVwZW5kZW50IHdoZXRoZXIgYSBmYWlsdXJlIHRvIGluaXRpYWxpemUKKyAqICAgICAgICAgcmVzdWx0cyBpbiB0aGlzIGVycm9yIGNvZGUuCisgKi8KK3BzYV9zdGF0dXNfdCBwc2FfZ2VuZXJhdGVfa2V5X2V4dChjb25zdCBwc2Ffa2V5X2F0dHJpYnV0ZXNfdCAqYXR0cmlidXRlcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBwc2Ffa2V5X3Byb2R1Y3Rpb25fcGFyYW1ldGVyc190ICpwYXJhbXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IHBhcmFtc19kYXRhX2xlbmd0aCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYmVkdGxzX3N2Y19rZXlfaWRfdCAqa2V5KTsKKworLyoqCisgKiBcYnJpZWYgU2lnbiBhIG1lc3NhZ2Ugd2l0aCBhIHByaXZhdGUga2V5LiBGb3IgaGFzaC1hbmQtc2lnbiBhbGdvcml0aG1zLAorICogICAgICAgIHRoaXMgaW5jbHVkZXMgdGhlIGhhc2hpbmcgc3RlcC4KKyAqCisgKiBcbm90ZSBUbyBwZXJmb3JtIGEgbXVsdGktcGFydCBoYXNoLWFuZC1zaWduIHNpZ25hdHVyZSBhbGdvcml0aG0sIGZpcnN0IHVzZQorICogICAgICAgYSBtdWx0aS1wYXJ0IGhhc2ggb3BlcmF0aW9uIGFuZCB0aGVuIHBhc3MgdGhlIHJlc3VsdGluZyBoYXNoIHRvCisgKiAgICAgICBwc2Ffc2lnbl9oYXNoKCkuIFBTQV9BTEdfR0VUX0hBU0goXHAgYWxnKSBjYW4gYmUgdXNlZCB0byBkZXRlcm1pbmUgdGhlCisgKiAgICAgICBoYXNoIGFsZ29yaXRobSB0byB1c2UuCisgKgorICogXHBhcmFtW2luXSAga2V5ICAgICAgICAgICAgICBJZGVudGlmaWVyIG9mIHRoZSBrZXkgdG8gdXNlIGZvciB0aGUgb3BlcmF0aW9uLgorICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJdCBtdXN0IGJlIGFuIGFzeW1tZXRyaWMga2V5IHBhaXIuIFRoZSBrZXkgbXVzdAorICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbGxvdyB0aGUgdXNhZ2UgI1BTQV9LRVlfVVNBR0VfU0lHTl9NRVNTQUdFLgorICogXHBhcmFtW2luXSAgYWxnICAgICAgICAgICAgICBBbiBhc3ltbWV0cmljIHNpZ25hdHVyZSBhbGdvcml0aG0gKFBTQV9BTEdfWFhYCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIHN1Y2ggdGhhdCAjUFNBX0FMR19JU19TSUdOX01FU1NBR0UoXHAgYWxnKQorICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpcyB0cnVlKSwgdGhhdCBpcyBjb21wYXRpYmxlIHdpdGggdGhlIHR5cGUgb2YKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXHAga2V5LgorICogXHBhcmFtW2luXSAgaW5wdXQgICAgICAgICAgICBUaGUgaW5wdXQgbWVzc2FnZSB0byBzaWduLgorICogXHBhcmFtW2luXSAgaW5wdXRfbGVuZ3RoICAgICBTaXplIG9mIHRoZSBccCBpbnB1dCBidWZmZXIgaW4gYnl0ZXMuCisgKiBccGFyYW1bb3V0XSBzaWduYXR1cmUgICAgICAgIEJ1ZmZlciB3aGVyZSB0aGUgc2lnbmF0dXJlIGlzIHRvIGJlIHdyaXR0ZW4uCisgKiBccGFyYW1baW5dICBzaWduYXR1cmVfc2l6ZSAgIFNpemUgb2YgdGhlIFxwIHNpZ25hdHVyZSBidWZmZXIgaW4gYnl0ZXMuIFRoaXMKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbXVzdCBiZSBhcHByb3ByaWF0ZSBmb3IgdGhlIHNlbGVjdGVkCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFsZ29yaXRobSBhbmQga2V5OgorICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtIFRoZSByZXF1aXJlZCBzaWduYXR1cmUgc2l6ZSBpcworICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICNQU0FfU0lHTl9PVVRQVVRfU0laRShcYyBrZXlfdHlwZSwgXGMga2V5X2JpdHMsIFxwIGFsZykKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aGVyZSBcYyBrZXlfdHlwZSBhbmQgXGMga2V5X2JpdHMgYXJlIHRoZSB0eXBlIGFuZAorICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJpdC1zaXplIHJlc3BlY3RpdmVseSBvZiBrZXkuCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0gI1BTQV9TSUdOQVRVUkVfTUFYX1NJWkUgZXZhbHVhdGVzIHRvIHRoZQorICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1heGltdW0gc2lnbmF0dXJlIHNpemUgb2YgYW55IHN1cHBvcnRlZAorICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpZ25hdHVyZSBhbGdvcml0aG0uCisgKiBccGFyYW1bb3V0XSBzaWduYXR1cmVfbGVuZ3RoIE9uIHN1Y2Nlc3MsIHRoZSBudW1iZXIgb2YgYnl0ZXMgdGhhdCBtYWtlIHVwCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoZSByZXR1cm5lZCBzaWduYXR1cmUgdmFsdWUuCisgKgorICogXHJldHZhbCAjUFNBX1NVQ0NFU1MgXGVtcHR5ZGVzY3JpcHRpb24KKyAqIFxyZXR2YWwgI1BTQV9FUlJPUl9JTlZBTElEX0hBTkRMRSBcZW1wdHlkZXNjcmlwdGlvbgorICogXHJldHZhbCAjUFNBX0VSUk9SX05PVF9QRVJNSVRURUQKKyAqICAgICAgICAgVGhlIGtleSBkb2VzIG5vdCBoYXZlIHRoZSAjUFNBX0tFWV9VU0FHRV9TSUdOX01FU1NBR0UgZmxhZywKKyAqICAgICAgICAgb3IgaXQgZG9lcyBub3QgcGVybWl0IHRoZSByZXF1ZXN0ZWQgYWxnb3JpdGhtLgorICogXHJldHZhbCAjUFNBX0VSUk9SX0JVRkZFUl9UT09fU01BTEwKKyAqICAgICAgICAgVGhlIHNpemUgb2YgdGhlIFxwIHNpZ25hdHVyZSBidWZmZXIgaXMgdG9vIHNtYWxsLiBZb3UgY2FuCisgKiAgICAgICAgIGRldGVybWluZSBhIHN1ZmZpY2llbnQgYnVmZmVyIHNpemUgYnkgY2FsbGluZworICogICAgICAgICAjUFNBX1NJR05fT1VUUFVUX1NJWkUoXGMga2V5X3R5cGUsIFxjIGtleV9iaXRzLCBccCBhbGcpCisgKiAgICAgICAgIHdoZXJlIFxjIGtleV90eXBlIGFuZCBcYyBrZXlfYml0cyBhcmUgdGhlIHR5cGUgYW5kIGJpdC1zaXplCisgKiAgICAgICAgIHJlc3BlY3RpdmVseSBvZiBccCBrZXkuCisgKiBccmV0dmFsICNQU0FfRVJST1JfTk9UX1NVUFBPUlRFRCBcZW1wdHlkZXNjcmlwdGlvbgorICogXHJldHZhbCAjUFNBX0VSUk9SX0lOVkFMSURfQVJHVU1FTlQgXGVtcHR5ZGVzY3JpcHRpb24KKyAqIFxyZXR2YWwgI1BTQV9FUlJPUl9JTlNVRkZJQ0lFTlRfTUVNT1JZIFxlbXB0eWRlc2NyaXB0aW9uCisgKiBccmV0dmFsICNQU0FfRVJST1JfQ09NTVVOSUNBVElPTl9GQUlMVVJFIFxlbXB0eWRlc2NyaXB0aW9uCisgKiBccmV0dmFsICNQU0FfRVJST1JfSEFSRFdBUkVfRkFJTFVSRSBcZW1wdHlkZXNjcmlwdGlvbgorICogXHJldHZhbCAjUFNBX0VSUk9SX0NPUlJVUFRJT05fREVURUNURUQgXGVtcHR5ZGVzY3JpcHRpb24KKyAqIFxyZXR2YWwgI1BTQV9FUlJPUl9TVE9SQUdFX0ZBSUxVUkUgXGVtcHR5ZGVzY3JpcHRpb24KKyAqIFxyZXR2YWwgI1BTQV9FUlJPUl9EQVRBX0NPUlJVUFQgXGVtcHR5ZGVzY3JpcHRpb24KKyAqIFxyZXR2YWwgI1BTQV9FUlJPUl9EQVRBX0lOVkFMSUQgXGVtcHR5ZGVzY3JpcHRpb24KKyAqIFxyZXR2YWwgI1BTQV9FUlJPUl9JTlNVRkZJQ0lFTlRfRU5UUk9QWSBcZW1wdHlkZXNjcmlwdGlvbgorICogXHJldHZhbCAjUFNBX0VSUk9SX0JBRF9TVEFURQorICogICAgICAgICBUaGUgbGlicmFyeSBoYXMgbm90IGJlZW4gcHJldmlvdXNseSBpbml0aWFsaXplZCBieSBwc2FfY3J5cHRvX2luaXQoKS4KKyAqICAgICAgICAgSXQgaXMgaW1wbGVtZW50YXRpb24tZGVwZW5kZW50IHdoZXRoZXIgYSBmYWlsdXJlIHRvIGluaXRpYWxpemUKKyAqICAgICAgICAgcmVzdWx0cyBpbiB0aGlzIGVycm9yIGNvZGUuCisgKi8KK3BzYV9zdGF0dXNfdCBwc2Ffc2lnbl9tZXNzYWdlKG1iZWR0bHNfc3ZjX2tleV9pZF90IGtleSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBzYV9hbGdvcml0aG1fdCBhbGcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1aW50OF90ICppbnB1dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBpbnB1dF9sZW5ndGgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50OF90ICpzaWduYXR1cmUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3Qgc2lnbmF0dXJlX3NpemUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgKnNpZ25hdHVyZV9sZW5ndGgpOworCisvKiogXGJyaWVmIFZlcmlmeSB0aGUgc2lnbmF0dXJlIG9mIGEgbWVzc2FnZSB3aXRoIGEgcHVibGljIGtleSwgdXNpbmcKKyAqICAgICAgICAgYSBoYXNoLWFuZC1zaWduIHZlcmlmaWNhdGlvbiBhbGdvcml0aG0uCisgKgorICogXG5vdGUgVG8gcGVyZm9ybSBhIG11bHRpLXBhcnQgaGFzaC1hbmQtc2lnbiBzaWduYXR1cmUgdmVyaWZpY2F0aW9uCisgKiAgICAgICBhbGdvcml0aG0sIGZpcnN0IHVzZSBhIG11bHRpLXBhcnQgaGFzaCBvcGVyYXRpb24gdG8gaGFzaCB0aGUgbWVzc2FnZQorICogICAgICAgYW5kIHRoZW4gcGFzcyB0aGUgcmVzdWx0aW5nIGhhc2ggdG8gcHNhX3ZlcmlmeV9oYXNoKCkuCisgKiAgICAgICBQU0FfQUxHX0dFVF9IQVNIKFxwIGFsZykgY2FuIGJlIHVzZWQgdG8gZGV0ZXJtaW5lIHRoZSBoYXNoIGFsZ29yaXRobQorICogICAgICAgdG8gdXNlLgorICoKKyAqIFxwYXJhbVtpbl0gIGtleSAgICAgICAgICAgICAgSWRlbnRpZmllciBvZiB0aGUga2V5IHRvIHVzZSBmb3IgdGhlIG9wZXJhdGlvbi4KKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSXQgbXVzdCBiZSBhIHB1YmxpYyBrZXkgb3IgYW4gYXN5bW1ldHJpYyBrZXkKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFpci4gVGhlIGtleSBtdXN0IGFsbG93IHRoZSB1c2FnZQorICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjUFNBX0tFWV9VU0FHRV9WRVJJRllfTUVTU0FHRS4KKyAqIFxwYXJhbVtpbl0gIGFsZyAgICAgICAgICAgICAgQW4gYXN5bW1ldHJpYyBzaWduYXR1cmUgYWxnb3JpdGhtIChQU0FfQUxHX1hYWAorICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBzdWNoIHRoYXQgI1BTQV9BTEdfSVNfU0lHTl9NRVNTQUdFKFxwIGFsZykKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXMgdHJ1ZSksIHRoYXQgaXMgY29tcGF0aWJsZSB3aXRoIHRoZSB0eXBlIG9mCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxwIGtleS4KKyAqIFxwYXJhbVtpbl0gIGlucHV0ICAgICAgICAgICAgVGhlIG1lc3NhZ2Ugd2hvc2Ugc2lnbmF0dXJlIGlzIHRvIGJlIHZlcmlmaWVkLgorICogXHBhcmFtW2luXSAgaW5wdXRfbGVuZ3RoICAgICBTaXplIG9mIHRoZSBccCBpbnB1dCBidWZmZXIgaW4gYnl0ZXMuCisgKiBccGFyYW1baW5dIHNpZ25hdHVyZSAgICAgICAgIEJ1ZmZlciBjb250YWluaW5nIHRoZSBzaWduYXR1cmUgdG8gdmVyaWZ5LgorICogXHBhcmFtW2luXSAgc2lnbmF0dXJlX2xlbmd0aCBTaXplIG9mIHRoZSBccCBzaWduYXR1cmUgYnVmZmVyIGluIGJ5dGVzLgorICoKKyAqIFxyZXR2YWwgI1BTQV9TVUNDRVNTIFxlbXB0eWRlc2NyaXB0aW9uCisgKiBccmV0dmFsICNQU0FfRVJST1JfSU5WQUxJRF9IQU5ETEUgXGVtcHR5ZGVzY3JpcHRpb24KKyAqIFxyZXR2YWwgI1BTQV9FUlJPUl9OT1RfUEVSTUlUVEVECisgKiAgICAgICAgIFRoZSBrZXkgZG9lcyBub3QgaGF2ZSB0aGUgI1BTQV9LRVlfVVNBR0VfU0lHTl9NRVNTQUdFIGZsYWcsCisgKiAgICAgICAgIG9yIGl0IGRvZXMgbm90IHBlcm1pdCB0aGUgcmVxdWVzdGVkIGFsZ29yaXRobS4KKyAqIFxyZXR2YWwgI1BTQV9FUlJPUl9JTlZBTElEX1NJR05BVFVSRQorICogICAgICAgICBUaGUgY2FsY3VsYXRpb24gd2FzIHBlcmZvcm1lZCBzdWNjZXNzZnVsbHksIGJ1dCB0aGUgcGFzc2VkIHNpZ25hdHVyZQorICogICAgICAgICBpcyBub3QgYSB2YWxpZCBzaWduYXR1cmUuCisgKiBccmV0dmFsICNQU0FfRVJST1JfTk9UX1NVUFBPUlRFRCBcZW1wdHlkZXNjcmlwdGlvbgorICogXHJldHZhbCAjUFNBX0VSUk9SX0lOVkFMSURfQVJHVU1FTlQgXGVtcHR5ZGVzY3JpcHRpb24KKyAqIFxyZXR2YWwgI1BTQV9FUlJPUl9JTlNVRkZJQ0lFTlRfTUVNT1JZIFxlbXB0eWRlc2NyaXB0aW9uCisgKiBccmV0dmFsICNQU0FfRVJST1JfQ09NTVVOSUNBVElPTl9GQUlMVVJFIFxlbXB0eWRlc2NyaXB0aW9uCisgKiBccmV0dmFsICNQU0FfRVJST1JfSEFSRFdBUkVfRkFJTFVSRSBcZW1wdHlkZXNjcmlwdGlvbgorICogXHJldHZhbCAjUFNBX0VSUk9SX0NPUlJVUFRJT05fREVURUNURUQgXGVtcHR5ZGVzY3JpcHRpb24KKyAqIFxyZXR2YWwgI1BTQV9FUlJPUl9TVE9SQUdFX0ZBSUxVUkUgXGVtcHR5ZGVzY3JpcHRpb24KKyAqIFxyZXR2YWwgI1BTQV9FUlJPUl9EQVRBX0NPUlJVUFQgXGVtcHR5ZGVzY3JpcHRpb24KKyAqIFxyZXR2YWwgI1BTQV9FUlJPUl9EQVRBX0lOVkFMSUQgXGVtcHR5ZGVzY3JpcHRpb24KKyAqIFxyZXR2YWwgI1BTQV9FUlJPUl9CQURfU1RBVEUKKyAqICAgICAgICAgVGhlIGxpYnJhcnkgaGFzIG5vdCBiZWVuIHByZXZpb3VzbHkgaW5pdGlhbGl6ZWQgYnkgcHNhX2NyeXB0b19pbml0KCkuCisgKiAgICAgICAgIEl0IGlzIGltcGxlbWVudGF0aW9uLWRlcGVuZGVudCB3aGV0aGVyIGEgZmFpbHVyZSB0byBpbml0aWFsaXplCisgKiAgICAgICAgIHJlc3VsdHMgaW4gdGhpcyBlcnJvciBjb2RlLgorICovCitwc2Ffc3RhdHVzX3QgcHNhX3ZlcmlmeV9tZXNzYWdlKG1iZWR0bHNfc3ZjX2tleV9pZF90IGtleSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHNhX2FsZ29yaXRobV90IGFsZywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdWludDhfdCAqaW5wdXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBpbnB1dF9sZW5ndGgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVpbnQ4X3QgKnNpZ25hdHVyZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IHNpZ25hdHVyZV9sZW5ndGgpOworCisvKioKKyAqIFxicmllZiBTaWduIGEgaGFzaCBvciBzaG9ydCBtZXNzYWdlIHdpdGggYSBwcml2YXRlIGtleS4KKyAqCisgKiBOb3RlIHRoYXQgdG8gcGVyZm9ybSBhIGhhc2gtYW5kLXNpZ24gc2lnbmF0dXJlIGFsZ29yaXRobSwgeW91IG11c3QKKyAqIGZpcnN0IGNhbGN1bGF0ZSB0aGUgaGFzaCBieSBjYWxsaW5nIHBzYV9oYXNoX3NldHVwKCksIHBzYV9oYXNoX3VwZGF0ZSgpCisgKiBhbmQgcHNhX2hhc2hfZmluaXNoKCksIG9yIGFsdGVybmF0aXZlbHkgYnkgY2FsbGluZyBwc2FfaGFzaF9jb21wdXRlKCkuCisgKiBUaGVuIHBhc3MgdGhlIHJlc3VsdGluZyBoYXNoIGFzIHRoZSBccCBoYXNoCisgKiBwYXJhbWV0ZXIgdG8gdGhpcyBmdW5jdGlvbi4gWW91IGNhbiB1c2UgI1BTQV9BTEdfU0lHTl9HRVRfSEFTSChccCBhbGcpCisgKiB0byBkZXRlcm1pbmUgdGhlIGhhc2ggYWxnb3JpdGhtIHRvIHVzZS4KKyAqCisgKiBccGFyYW0ga2V5ICAgICAgICAgICAgICAgICAgIElkZW50aWZpZXIgb2YgdGhlIGtleSB0byB1c2UgZm9yIHRoZSBvcGVyYXRpb24uCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEl0IG11c3QgYmUgYW4gYXN5bW1ldHJpYyBrZXkgcGFpci4gVGhlIGtleSBtdXN0CisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFsbG93IHRoZSB1c2FnZSAjUFNBX0tFWV9VU0FHRV9TSUdOX0hBU0guCisgKiBccGFyYW0gYWxnICAgICAgICAgICAgICAgICAgIEEgc2lnbmF0dXJlIGFsZ29yaXRobSAoUFNBX0FMR19YWFgKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgc3VjaCB0aGF0ICNQU0FfQUxHX0lTX1NJR05fSEFTSChccCBhbGcpCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzIHRydWUpLCB0aGF0IGlzIGNvbXBhdGlibGUgd2l0aAorICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGUgdHlwZSBvZiBccCBrZXkuCisgKiBccGFyYW1baW5dIGhhc2ggICAgICAgICAgICAgIFRoZSBoYXNoIG9yIG1lc3NhZ2UgdG8gc2lnbi4KKyAqIFxwYXJhbSBoYXNoX2xlbmd0aCAgICAgICAgICAgU2l6ZSBvZiB0aGUgXHAgaGFzaCBidWZmZXIgaW4gYnl0ZXMuCisgKiBccGFyYW1bb3V0XSBzaWduYXR1cmUgICAgICAgIEJ1ZmZlciB3aGVyZSB0aGUgc2lnbmF0dXJlIGlzIHRvIGJlIHdyaXR0ZW4uCisgKiBccGFyYW0gc2lnbmF0dXJlX3NpemUgICAgICAgIFNpemUgb2YgdGhlIFxwIHNpZ25hdHVyZSBidWZmZXIgaW4gYnl0ZXMuCisgKiBccGFyYW1bb3V0XSBzaWduYXR1cmVfbGVuZ3RoIE9uIHN1Y2Nlc3MsIHRoZSBudW1iZXIgb2YgYnl0ZXMKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhhdCBtYWtlIHVwIHRoZSByZXR1cm5lZCBzaWduYXR1cmUgdmFsdWUuCisgKgorICogXHJldHZhbCAjUFNBX1NVQ0NFU1MgXGVtcHR5ZGVzY3JpcHRpb24KKyAqIFxyZXR2YWwgI1BTQV9FUlJPUl9JTlZBTElEX0hBTkRMRSBcZW1wdHlkZXNjcmlwdGlvbgorICogXHJldHZhbCAjUFNBX0VSUk9SX05PVF9QRVJNSVRURUQgXGVtcHR5ZGVzY3JpcHRpb24KKyAqIFxyZXR2YWwgI1BTQV9FUlJPUl9CVUZGRVJfVE9PX1NNQUxMCisgKiAgICAgICAgIFRoZSBzaXplIG9mIHRoZSBccCBzaWduYXR1cmUgYnVmZmVyIGlzIHRvbyBzbWFsbC4gWW91IGNhbgorICogICAgICAgICBkZXRlcm1pbmUgYSBzdWZmaWNpZW50IGJ1ZmZlciBzaXplIGJ5IGNhbGxpbmcKKyAqICAgICAgICAgI1BTQV9TSUdOX09VVFBVVF9TSVpFKFxjIGtleV90eXBlLCBcYyBrZXlfYml0cywgXHAgYWxnKQorICogICAgICAgICB3aGVyZSBcYyBrZXlfdHlwZSBhbmQgXGMga2V5X2JpdHMgYXJlIHRoZSB0eXBlIGFuZCBiaXQtc2l6ZQorICogICAgICAgICByZXNwZWN0aXZlbHkgb2YgXHAga2V5LgorICogXHJldHZhbCAjUFNBX0VSUk9SX05PVF9TVVBQT1JURUQgXGVtcHR5ZGVzY3JpcHRpb24KKyAqIFxyZXR2YWwgI1BTQV9FUlJPUl9JTlZBTElEX0FSR1VNRU5UIFxlbXB0eWRlc2NyaXB0aW9uCisgKiBccmV0dmFsICNQU0FfRVJST1JfSU5TVUZGSUNJRU5UX01FTU9SWSBcZW1wdHlkZXNjcmlwdGlvbgorICogXHJldHZhbCAjUFNBX0VSUk9SX0NPTU1VTklDQVRJT05fRkFJTFVSRSBcZW1wdHlkZXNjcmlwdGlvbgorICogXHJldHZhbCAjUFNBX0VSUk9SX0hBUkRXQVJFX0ZBSUxVUkUgXGVtcHR5ZGVzY3JpcHRpb24KKyAqIFxyZXR2YWwgI1BTQV9FUlJPUl9DT1JSVVBUSU9OX0RFVEVDVEVEIFxlbXB0eWRlc2NyaXB0aW9uCisgKiBccmV0dmFsICNQU0FfRVJST1JfU1RPUkFHRV9GQUlMVVJFIFxlbXB0eWRlc2NyaXB0aW9uCisgKiBccmV0dmFsICNQU0FfRVJST1JfSU5TVUZGSUNJRU5UX0VOVFJPUFkgXGVtcHR5ZGVzY3JpcHRpb24KKyAqIFxyZXR2YWwgI1BTQV9FUlJPUl9CQURfU1RBVEUKKyAqICAgICAgICAgVGhlIGxpYnJhcnkgaGFzIG5vdCBiZWVuIHByZXZpb3VzbHkgaW5pdGlhbGl6ZWQgYnkgcHNhX2NyeXB0b19pbml0KCkuCisgKiAgICAgICAgIEl0IGlzIGltcGxlbWVudGF0aW9uLWRlcGVuZGVudCB3aGV0aGVyIGEgZmFpbHVyZSB0byBpbml0aWFsaXplCisgKiAgICAgICAgIHJlc3VsdHMgaW4gdGhpcyBlcnJvciBjb2RlLgorICovCitwc2Ffc3RhdHVzX3QgcHNhX3NpZ25faGFzaChtYmVkdGxzX3N2Y19rZXlfaWRfdCBrZXksCisgICAgICAgICAgICAgICAgICAgICAgICAgICBwc2FfYWxnb3JpdGhtX3QgYWxnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdWludDhfdCAqaGFzaCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBoYXNoX2xlbmd0aCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQ4X3QgKnNpZ25hdHVyZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBzaWduYXR1cmVfc2l6ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCAqc2lnbmF0dXJlX2xlbmd0aCk7CisKKy8qKgorICogXGJyaWVmIFZlcmlmeSB0aGUgc2lnbmF0dXJlIG9mIGEgaGFzaCBvciBzaG9ydCBtZXNzYWdlIHVzaW5nIGEgcHVibGljIGtleS4KKyAqCisgKiBOb3RlIHRoYXQgdG8gcGVyZm9ybSBhIGhhc2gtYW5kLXNpZ24gc2lnbmF0dXJlIGFsZ29yaXRobSwgeW91IG11c3QKKyAqIGZpcnN0IGNhbGN1bGF0ZSB0aGUgaGFzaCBieSBjYWxsaW5nIHBzYV9oYXNoX3NldHVwKCksIHBzYV9oYXNoX3VwZGF0ZSgpCisgKiBhbmQgcHNhX2hhc2hfZmluaXNoKCksIG9yIGFsdGVybmF0aXZlbHkgYnkgY2FsbGluZyBwc2FfaGFzaF9jb21wdXRlKCkuCisgKiBUaGVuIHBhc3MgdGhlIHJlc3VsdGluZyBoYXNoIGFzIHRoZSBccCBoYXNoCisgKiBwYXJhbWV0ZXIgdG8gdGhpcyBmdW5jdGlvbi4gWW91IGNhbiB1c2UgI1BTQV9BTEdfU0lHTl9HRVRfSEFTSChccCBhbGcpCisgKiB0byBkZXRlcm1pbmUgdGhlIGhhc2ggYWxnb3JpdGhtIHRvIHVzZS4KKyAqCisgKiBccGFyYW0ga2V5ICAgICAgICAgICAgICAgSWRlbnRpZmllciBvZiB0aGUga2V5IHRvIHVzZSBmb3IgdGhlIG9wZXJhdGlvbi4gSXQKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICBtdXN0IGJlIGEgcHVibGljIGtleSBvciBhbiBhc3ltbWV0cmljIGtleSBwYWlyLiBUaGUKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICBrZXkgbXVzdCBhbGxvdyB0aGUgdXNhZ2UKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAjUFNBX0tFWV9VU0FHRV9WRVJJRllfSEFTSC4KKyAqIFxwYXJhbSBhbGcgICAgICAgICAgICAgICBBIHNpZ25hdHVyZSBhbGdvcml0aG0gKFBTQV9BTEdfWFhYCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgc3VjaCB0aGF0ICNQU0FfQUxHX0lTX1NJR05fSEFTSChccCBhbGcpCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgaXMgdHJ1ZSksIHRoYXQgaXMgY29tcGF0aWJsZSB3aXRoCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlIHR5cGUgb2YgXHAga2V5LgorICogXHBhcmFtW2luXSBoYXNoICAgICAgICAgIFRoZSBoYXNoIG9yIG1lc3NhZ2Ugd2hvc2Ugc2lnbmF0dXJlIGlzIHRvIGJlCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgdmVyaWZpZWQuCisgKiBccGFyYW0gaGFzaF9sZW5ndGggICAgICAgU2l6ZSBvZiB0aGUgXHAgaGFzaCBidWZmZXIgaW4gYnl0ZXMuCisgKiBccGFyYW1baW5dIHNpZ25hdHVyZSAgICAgQnVmZmVyIGNvbnRhaW5pbmcgdGhlIHNpZ25hdHVyZSB0byB2ZXJpZnkuCisgKiBccGFyYW0gc2lnbmF0dXJlX2xlbmd0aCAgU2l6ZSBvZiB0aGUgXHAgc2lnbmF0dXJlIGJ1ZmZlciBpbiBieXRlcy4KKyAqCisgKiBccmV0dmFsICNQU0FfU1VDQ0VTUworICogICAgICAgICBUaGUgc2lnbmF0dXJlIGlzIHZhbGlkLgorICogXHJldHZhbCAjUFNBX0VSUk9SX0lOVkFMSURfSEFORExFIFxlbXB0eWRlc2NyaXB0aW9uCisgKiBccmV0dmFsICNQU0FfRVJST1JfTk9UX1BFUk1JVFRFRCBcZW1wdHlkZXNjcmlwdGlvbgorICogXHJldHZhbCAjUFNBX0VSUk9SX0lOVkFMSURfU0lHTkFUVVJFCisgKiAgICAgICAgIFRoZSBjYWxjdWxhdGlvbiB3YXMgcGVyZm9ybWVkIHN1Y2Nlc3NmdWxseSwgYnV0IHRoZSBwYXNzZWQKKyAqICAgICAgICAgc2lnbmF0dXJlIGlzIG5vdCBhIHZhbGlkIHNpZ25hdHVyZS4KKyAqIFxyZXR2YWwgI1BTQV9FUlJPUl9OT1RfU1VQUE9SVEVEIFxlbXB0eWRlc2NyaXB0aW9uCisgKiBccmV0dmFsICNQU0FfRVJST1JfSU5WQUxJRF9BUkdVTUVOVCBcZW1wdHlkZXNjcmlwdGlvbgorICogXHJldHZhbCAjUFNBX0VSUk9SX0lOU1VGRklDSUVOVF9NRU1PUlkgXGVtcHR5ZGVzY3JpcHRpb24KKyAqIFxyZXR2YWwgI1BTQV9FUlJPUl9DT01NVU5JQ0FUSU9OX0ZBSUxVUkUgXGVtcHR5ZGVzY3JpcHRpb24KKyAqIFxyZXR2YWwgI1BTQV9FUlJPUl9IQVJEV0FSRV9GQUlMVVJFIFxlbXB0eWRlc2NyaXB0aW9uCisgKiBccmV0dmFsICNQU0FfRVJST1JfQ09SUlVQVElPTl9ERVRFQ1RFRCBcZW1wdHlkZXNjcmlwdGlvbgorICogXHJldHZhbCAjUFNBX0VSUk9SX1NUT1JBR0VfRkFJTFVSRSBcZW1wdHlkZXNjcmlwdGlvbgorICogXHJldHZhbCAjUFNBX0VSUk9SX0JBRF9TVEFURQorICogICAgICAgICBUaGUgbGlicmFyeSBoYXMgbm90IGJlZW4gcHJldmlvdXNseSBpbml0aWFsaXplZCBieSBwc2FfY3J5cHRvX2luaXQoKS4KKyAqICAgICAgICAgSXQgaXMgaW1wbGVtZW50YXRpb24tZGVwZW5kZW50IHdoZXRoZXIgYSBmYWlsdXJlIHRvIGluaXRpYWxpemUKKyAqICAgICAgICAgcmVzdWx0cyBpbiB0aGlzIGVycm9yIGNvZGUuCisgKi8KK3BzYV9zdGF0dXNfdCBwc2FfdmVyaWZ5X2hhc2gobWJlZHRsc19zdmNfa2V5X2lkX3Qga2V5LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwc2FfYWxnb3JpdGhtX3QgYWxnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1aW50OF90ICpoYXNoLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgaGFzaF9sZW5ndGgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVpbnQ4X3QgKnNpZ25hdHVyZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IHNpZ25hdHVyZV9sZW5ndGgpOworCisvKioKKyAqIFxicmllZiBFbmNyeXB0IGEgc2hvcnQgbWVzc2FnZSB3aXRoIGEgcHVibGljIGtleS4KKyAqCisgKiBccGFyYW0ga2V5ICAgICAgICAgICAgICAgICAgIElkZW50aWZpZXIgb2YgdGhlIGtleSB0byB1c2UgZm9yIHRoZSBvcGVyYXRpb24uCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEl0IG11c3QgYmUgYSBwdWJsaWMga2V5IG9yIGFuIGFzeW1tZXRyaWMga2V5CisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhaXIuIEl0IG11c3QgYWxsb3cgdGhlIHVzYWdlCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICNQU0FfS0VZX1VTQUdFX0VOQ1JZUFQuCisgKiBccGFyYW0gYWxnICAgICAgICAgICAgICAgICAgIEFuIGFzeW1tZXRyaWMgZW5jcnlwdGlvbiBhbGdvcml0aG0gdGhhdCBpcworICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb21wYXRpYmxlIHdpdGggdGhlIHR5cGUgb2YgXHAga2V5LgorICogXHBhcmFtW2luXSBpbnB1dCAgICAgICAgICAgICBUaGUgbWVzc2FnZSB0byBlbmNyeXB0LgorICogXHBhcmFtIGlucHV0X2xlbmd0aCAgICAgICAgICBTaXplIG9mIHRoZSBccCBpbnB1dCBidWZmZXIgaW4gYnl0ZXMuCisgKiBccGFyYW1baW5dIHNhbHQgICAgICAgICAgICAgIEEgc2FsdCBvciBsYWJlbCwgaWYgc3VwcG9ydGVkIGJ5IHRoZQorICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmNyeXB0aW9uIGFsZ29yaXRobS4KKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgdGhlIGFsZ29yaXRobSBkb2VzIG5vdCBzdXBwb3J0IGEKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2FsdCwgcGFzcyBcYyBOVUxMLgorICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiB0aGUgYWxnb3JpdGhtIHN1cHBvcnRzIGFuIG9wdGlvbmFsCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNhbHQgYW5kIHlvdSBkbyBub3Qgd2FudCB0byBwYXNzIGEgc2FsdCwKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFzcyBcYyBOVUxMLgorICoKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLSBGb3IgI1BTQV9BTEdfUlNBX1BLQ1MxVjE1X0NSWVBULCBubyBzYWx0IGlzCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3VwcG9ydGVkLgorICogXHBhcmFtIHNhbHRfbGVuZ3RoICAgICAgICAgICBTaXplIG9mIHRoZSBccCBzYWx0IGJ1ZmZlciBpbiBieXRlcy4KKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgXHAgc2FsdCBpcyBcYyBOVUxMLCBwYXNzIDAuCisgKiBccGFyYW1bb3V0XSBvdXRwdXQgICAgICAgICAgIEJ1ZmZlciB3aGVyZSB0aGUgZW5jcnlwdGVkIG1lc3NhZ2UgaXMgdG8KKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmUgd3JpdHRlbi4KKyAqIFxwYXJhbSBvdXRwdXRfc2l6ZSAgICAgICAgICAgU2l6ZSBvZiB0aGUgXHAgb3V0cHV0IGJ1ZmZlciBpbiBieXRlcy4KKyAqIFxwYXJhbVtvdXRdIG91dHB1dF9sZW5ndGggICAgT24gc3VjY2VzcywgdGhlIG51bWJlciBvZiBieXRlcworICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGF0IG1ha2UgdXAgdGhlIHJldHVybmVkIG91dHB1dC4KKyAqCisgKiBccmV0dmFsICNQU0FfU1VDQ0VTUyBcZW1wdHlkZXNjcmlwdGlvbgorICogXHJldHZhbCAjUFNBX0VSUk9SX0lOVkFMSURfSEFORExFIFxlbXB0eWRlc2NyaXB0aW9uCisgKiBccmV0dmFsICNQU0FfRVJST1JfTk9UX1BFUk1JVFRFRCBcZW1wdHlkZXNjcmlwdGlvbgorICogXHJldHZhbCAjUFNBX0VSUk9SX0JVRkZFUl9UT09fU01BTEwKKyAqICAgICAgICAgVGhlIHNpemUgb2YgdGhlIFxwIG91dHB1dCBidWZmZXIgaXMgdG9vIHNtYWxsLiBZb3UgY2FuCisgKiAgICAgICAgIGRldGVybWluZSBhIHN1ZmZpY2llbnQgYnVmZmVyIHNpemUgYnkgY2FsbGluZworICogICAgICAgICAjUFNBX0FTWU1NRVRSSUNfRU5DUllQVF9PVVRQVVRfU0laRShcYyBrZXlfdHlwZSwgXGMga2V5X2JpdHMsIFxwIGFsZykKKyAqICAgICAgICAgd2hlcmUgXGMga2V5X3R5cGUgYW5kIFxjIGtleV9iaXRzIGFyZSB0aGUgdHlwZSBhbmQgYml0LXNpemUKKyAqICAgICAgICAgcmVzcGVjdGl2ZWx5IG9mIFxwIGtleS4KKyAqIFxyZXR2YWwgI1BTQV9FUlJPUl9OT1RfU1VQUE9SVEVEIFxlbXB0eWRlc2NyaXB0aW9uCisgKiBccmV0dmFsICNQU0FfRVJST1JfSU5WQUxJRF9BUkdVTUVOVCBcZW1wdHlkZXNjcmlwdGlvbgorICogXHJldHZhbCAjUFNBX0VSUk9SX0lOU1VGRklDSUVOVF9NRU1PUlkgXGVtcHR5ZGVzY3JpcHRpb24KKyAqIFxyZXR2YWwgI1BTQV9FUlJPUl9DT01NVU5JQ0FUSU9OX0ZBSUxVUkUgXGVtcHR5ZGVzY3JpcHRpb24KKyAqIFxyZXR2YWwgI1BTQV9FUlJPUl9IQVJEV0FSRV9GQUlMVVJFIFxlbXB0eWRlc2NyaXB0aW9uCisgKiBccmV0dmFsICNQU0FfRVJST1JfQ09SUlVQVElPTl9ERVRFQ1RFRCBcZW1wdHlkZXNjcmlwdGlvbgorICogXHJldHZhbCAjUFNBX0VSUk9SX1NUT1JBR0VfRkFJTFVSRSBcZW1wdHlkZXNjcmlwdGlvbgorICogXHJldHZhbCAjUFNBX0VSUk9SX0lOU1VGRklDSUVOVF9FTlRST1BZIFxlbXB0eWRlc2NyaXB0aW9uCisgKiBccmV0dmFsICNQU0FfRVJST1JfQkFEX1NUQVRFCisgKiAgICAgICAgIFRoZSBsaWJyYXJ5IGhhcyBub3QgYmVlbiBwcmV2aW91c2x5IGluaXRpYWxpemVkIGJ5IHBzYV9jcnlwdG9faW5pdCgpLgorICogICAgICAgICBJdCBpcyBpbXBsZW1lbnRhdGlvbi1kZXBlbmRlbnQgd2hldGhlciBhIGZhaWx1cmUgdG8gaW5pdGlhbGl6ZQorICogICAgICAgICByZXN1bHRzIGluIHRoaXMgZXJyb3IgY29kZS4KKyAqLworcHNhX3N0YXR1c190IHBzYV9hc3ltbWV0cmljX2VuY3J5cHQobWJlZHRsc19zdmNfa2V5X2lkX3Qga2V5LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHNhX2FsZ29yaXRobV90IGFsZywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVpbnQ4X3QgKmlucHV0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IGlucHV0X2xlbmd0aCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVpbnQ4X3QgKnNhbHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3Qgc2FsdF9sZW5ndGgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50OF90ICpvdXRwdXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3Qgb3V0cHV0X3NpemUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgKm91dHB1dF9sZW5ndGgpOworCisvKioKKyAqIFxicmllZiBEZWNyeXB0IGEgc2hvcnQgbWVzc2FnZSB3aXRoIGEgcHJpdmF0ZSBrZXkuCisgKgorICogXHBhcmFtIGtleSAgICAgICAgICAgICAgICAgICBJZGVudGlmaWVyIG9mIHRoZSBrZXkgdG8gdXNlIGZvciB0aGUgb3BlcmF0aW9uLgorICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJdCBtdXN0IGJlIGFuIGFzeW1tZXRyaWMga2V5IHBhaXIuIEl0IG11c3QKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWxsb3cgdGhlIHVzYWdlICNQU0FfS0VZX1VTQUdFX0RFQ1JZUFQuCisgKiBccGFyYW0gYWxnICAgICAgICAgICAgICAgICAgIEFuIGFzeW1tZXRyaWMgZW5jcnlwdGlvbiBhbGdvcml0aG0gdGhhdCBpcworICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb21wYXRpYmxlIHdpdGggdGhlIHR5cGUgb2YgXHAga2V5LgorICogXHBhcmFtW2luXSBpbnB1dCAgICAgICAgICAgICBUaGUgbWVzc2FnZSB0byBkZWNyeXB0LgorICogXHBhcmFtIGlucHV0X2xlbmd0aCAgICAgICAgICBTaXplIG9mIHRoZSBccCBpbnB1dCBidWZmZXIgaW4gYnl0ZXMuCisgKiBccGFyYW1baW5dIHNhbHQgICAgICAgICAgICAgIEEgc2FsdCBvciBsYWJlbCwgaWYgc3VwcG9ydGVkIGJ5IHRoZQorICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmNyeXB0aW9uIGFsZ29yaXRobS4KKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgdGhlIGFsZ29yaXRobSBkb2VzIG5vdCBzdXBwb3J0IGEKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2FsdCwgcGFzcyBcYyBOVUxMLgorICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiB0aGUgYWxnb3JpdGhtIHN1cHBvcnRzIGFuIG9wdGlvbmFsCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNhbHQgYW5kIHlvdSBkbyBub3Qgd2FudCB0byBwYXNzIGEgc2FsdCwKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFzcyBcYyBOVUxMLgorICoKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLSBGb3IgI1BTQV9BTEdfUlNBX1BLQ1MxVjE1X0NSWVBULCBubyBzYWx0IGlzCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3VwcG9ydGVkLgorICogXHBhcmFtIHNhbHRfbGVuZ3RoICAgICAgICAgICBTaXplIG9mIHRoZSBccCBzYWx0IGJ1ZmZlciBpbiBieXRlcy4KKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgXHAgc2FsdCBpcyBcYyBOVUxMLCBwYXNzIDAuCisgKiBccGFyYW1bb3V0XSBvdXRwdXQgICAgICAgICAgIEJ1ZmZlciB3aGVyZSB0aGUgZGVjcnlwdGVkIG1lc3NhZ2UgaXMgdG8KKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmUgd3JpdHRlbi4KKyAqIFxwYXJhbSBvdXRwdXRfc2l6ZSAgICAgICAgICAgU2l6ZSBvZiB0aGUgXGMgb3V0cHV0IGJ1ZmZlciBpbiBieXRlcy4KKyAqIFxwYXJhbVtvdXRdIG91dHB1dF9sZW5ndGggICAgT24gc3VjY2VzcywgdGhlIG51bWJlciBvZiBieXRlcworICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGF0IG1ha2UgdXAgdGhlIHJldHVybmVkIG91dHB1dC4KKyAqCisgKiBccmV0dmFsICNQU0FfU1VDQ0VTUyBcZW1wdHlkZXNjcmlwdGlvbgorICogXHJldHZhbCAjUFNBX0VSUk9SX0lOVkFMSURfSEFORExFIFxlbXB0eWRlc2NyaXB0aW9uCisgKiBccmV0dmFsICNQU0FfRVJST1JfTk9UX1BFUk1JVFRFRCBcZW1wdHlkZXNjcmlwdGlvbgorICogXHJldHZhbCAjUFNBX0VSUk9SX0JVRkZFUl9UT09fU01BTEwKKyAqICAgICAgICAgVGhlIHNpemUgb2YgdGhlIFxwIG91dHB1dCBidWZmZXIgaXMgdG9vIHNtYWxsLiBZb3UgY2FuCisgKiAgICAgICAgIGRldGVybWluZSBhIHN1ZmZpY2llbnQgYnVmZmVyIHNpemUgYnkgY2FsbGluZworICogICAgICAgICAjUFNBX0FTWU1NRVRSSUNfREVDUllQVF9PVVRQVVRfU0laRShcYyBrZXlfdHlwZSwgXGMga2V5X2JpdHMsIFxwIGFsZykKKyAqICAgICAgICAgd2hlcmUgXGMga2V5X3R5cGUgYW5kIFxjIGtleV9iaXRzIGFyZSB0aGUgdHlwZSBhbmQgYml0LXNpemUKKyAqICAgICAgICAgcmVzcGVjdGl2ZWx5IG9mIFxwIGtleS4KKyAqIFxyZXR2YWwgI1BTQV9FUlJPUl9OT1RfU1VQUE9SVEVEIFxlbXB0eWRlc2NyaXB0aW9uCisgKiBccmV0dmFsICNQU0FfRVJST1JfSU5WQUxJRF9BUkdVTUVOVCBcZW1wdHlkZXNjcmlwdGlvbgorICogXHJldHZhbCAjUFNBX0VSUk9SX0lOU1VGRklDSUVOVF9NRU1PUlkgXGVtcHR5ZGVzY3JpcHRpb24KKyAqIFxyZXR2YWwgI1BTQV9FUlJPUl9DT01NVU5JQ0FUSU9OX0ZBSUxVUkUgXGVtcHR5ZGVzY3JpcHRpb24KKyAqIFxyZXR2YWwgI1BTQV9FUlJPUl9IQVJEV0FSRV9GQUlMVVJFIFxlbXB0eWRlc2NyaXB0aW9uCisgKiBccmV0dmFsICNQU0FfRVJST1JfQ09SUlVQVElPTl9ERVRFQ1RFRCBcZW1wdHlkZXNjcmlwdGlvbgorICogXHJldHZhbCAjUFNBX0VSUk9SX1NUT1JBR0VfRkFJTFVSRSBcZW1wdHlkZXNjcmlwdGlvbgorICogXHJldHZhbCAjUFNBX0VSUk9SX0lOU1VGRklDSUVOVF9FTlRST1BZIFxlbXB0eWRlc2NyaXB0aW9uCisgKiBccmV0dmFsICNQU0FfRVJST1JfSU5WQUxJRF9QQURESU5HIFxlbXB0eWRlc2NyaXB0aW9uCisgKiBccmV0dmFsICNQU0FfRVJST1JfQkFEX1NUQVRFCisgKiAgICAgICAgIFRoZSBsaWJyYXJ5IGhhcyBub3QgYmVlbiBwcmV2aW91c2x5IGluaXRpYWxpemVkIGJ5IHBzYV9jcnlwdG9faW5pdCgpLgorICogICAgICAgICBJdCBpcyBpbXBsZW1lbnRhdGlvbi1kZXBlbmRlbnQgd2hldGhlciBhIGZhaWx1cmUgdG8gaW5pdGlhbGl6ZQorICogICAgICAgICByZXN1bHRzIGluIHRoaXMgZXJyb3IgY29kZS4KKyAqLworcHNhX3N0YXR1c190IHBzYV9hc3ltbWV0cmljX2RlY3J5cHQobWJlZHRsc19zdmNfa2V5X2lkX3Qga2V5LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHNhX2FsZ29yaXRobV90IGFsZywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVpbnQ4X3QgKmlucHV0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IGlucHV0X2xlbmd0aCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVpbnQ4X3QgKnNhbHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3Qgc2FsdF9sZW5ndGgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50OF90ICpvdXRwdXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3Qgb3V0cHV0X3NpemUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgKm91dHB1dF9sZW5ndGgpOworCisvKiogUmVtb3ZlIG5vbi1lc3NlbnRpYWwgY29waWVzIG9mIGtleSBtYXRlcmlhbCBmcm9tIG1lbW9yeS4KKyAqCisgKiBJZiB0aGUga2V5IGlkZW50aWZpZXIgZGVzaWduYXRlcyBhIHZvbGF0aWxlIGtleSwgdGhpcyBmdW5jdGlvbnMgZG9lcyBub3QgZG8KKyAqIGFueXRoaW5nIGFuZCByZXR1cm5zIHN1Y2Nlc3NmdWxseS4KKyAqCisgKiBJZiB0aGUga2V5IGlkZW50aWZpZXIgZGVzaWduYXRlcyBhIHBlcnNpc3RlbnQga2V5LCB0aGVuIHRoaXMgZnVuY3Rpb24gd2lsbAorICogZnJlZSBhbGwgcmVzb3VyY2VzIGFzc29jaWF0ZWQgd2l0aCB0aGUga2V5IGluIHZvbGF0aWxlIG1lbW9yeS4gVGhlIGtleQorICogZGF0YSBpbiBwZXJzaXN0ZW50IHN0b3JhZ2UgaXMgbm90IGFmZmVjdGVkIGFuZCB0aGUga2V5IGNhbiBzdGlsbCBiZSB1c2VkLgorICoKKyAqIFxwYXJhbSBrZXkgSWRlbnRpZmllciBvZiB0aGUga2V5IHRvIHB1cmdlLgorICoKKyAqIFxyZXR2YWwgI1BTQV9TVUNDRVNTCisgKiAgICAgICAgIFRoZSBrZXkgbWF0ZXJpYWwgd2lsbCBoYXZlIGJlZW4gcmVtb3ZlZCBmcm9tIG1lbW9yeSBpZiBpdCBpcyBub3QKKyAqICAgICAgICAgY3VycmVudGx5IHJlcXVpcmVkLgorICogXHJldHZhbCAjUFNBX0VSUk9SX0lOVkFMSURfQVJHVU1FTlQKKyAqICAgICAgICAgXHAga2V5IGlzIG5vdCBhIHZhbGlkIGtleSBpZGVudGlmaWVyLgorICogXHJldHZhbCAjUFNBX0VSUk9SX0JBRF9TVEFURQorICogICAgICAgICBUaGUgbGlicmFyeSBoYXMgbm90IGJlZW4gcHJldmlvdXNseSBpbml0aWFsaXplZCBieSBwc2FfY3J5cHRvX2luaXQoKS4KKyAqICAgICAgICAgSXQgaXMgaW1wbGVtZW50YXRpb24tZGVwZW5kZW50IHdoZXRoZXIgYSBmYWlsdXJlIHRvIGluaXRpYWxpemUKKyAqICAgICAgICAgcmVzdWx0cyBpbiB0aGlzIGVycm9yIGNvZGUuCisgKi8KK3BzYV9zdGF0dXNfdCBwc2FfcHVyZ2Vfa2V5KG1iZWR0bHNfc3ZjX2tleV9pZF90IGtleSk7CisKKy8qKgorICogXGJyaWVmIEV4cG9ydCBhIGtleSBpbiBiaW5hcnkgZm9ybWF0LgorICoKKyAqIFRoZSBvdXRwdXQgb2YgdGhpcyBmdW5jdGlvbiBjYW4gYmUgcGFzc2VkIHRvIHBzYV9pbXBvcnRfa2V5KCkgdG8KKyAqIGNyZWF0ZSBhbiBlcXVpdmFsZW50IG9iamVjdC4KKyAqCisgKiBJZiB0aGUgaW1wbGVtZW50YXRpb24gb2YgcHNhX2ltcG9ydF9rZXkoKSBzdXBwb3J0cyBvdGhlciBmb3JtYXRzCisgKiBiZXlvbmQgdGhlIGZvcm1hdCBzcGVjaWZpZWQgaGVyZSwgdGhlIG91dHB1dCBmcm9tIHBzYV9leHBvcnRfa2V5KCkKKyAqIG11c3QgdXNlIHRoZSByZXByZXNlbnRhdGlvbiBzcGVjaWZpZWQgaGVyZSwgbm90IHRoZSBvcmlnaW5hbAorICogcmVwcmVzZW50YXRpb24uCisgKgorICogRm9yIHN0YW5kYXJkIGtleSB0eXBlcywgdGhlIG91dHB1dCBmb3JtYXQgaXMgYXMgZm9sbG93czoKKyAqCisgKiAtIEZvciBzeW1tZXRyaWMga2V5cyAoaW5jbHVkaW5nIE1BQyBrZXlzKSwgdGhlIGZvcm1hdCBpcyB0aGUKKyAqICAgcmF3IGJ5dGVzIG9mIHRoZSBrZXkuCisgKiAtIEZvciBERVMsIHRoZSBrZXkgZGF0YSBjb25zaXN0cyBvZiA4IGJ5dGVzLiBUaGUgcGFyaXR5IGJpdHMgbXVzdCBiZQorICogICBjb3JyZWN0LgorICogLSBGb3IgVHJpcGxlLURFUywgdGhlIGZvcm1hdCBpcyB0aGUgY29uY2F0ZW5hdGlvbiBvZiB0aGUKKyAqICAgdHdvIG9yIHRocmVlIERFUyBrZXlzLgorICogLSBGb3IgUlNBIGtleSBwYWlycyAoI1BTQV9LRVlfVFlQRV9SU0FfS0VZX1BBSVIpLCB0aGUgZm9ybWF0CisgKiAgIGlzIHRoZSBub24tZW5jcnlwdGVkIERFUiBlbmNvZGluZyBvZiB0aGUgcmVwcmVzZW50YXRpb24gZGVmaW5lZCBieQorICogICBQS0NTXCMxIChSRkMgODAxNykgYXMgYFJTQVByaXZhdGVLZXlgLCB2ZXJzaW9uIDAuCisgKiAgIGBgYAorICogICBSU0FQcml2YXRlS2V5IDo6PSBTRVFVRU5DRSB7CisgKiAgICAgICB2ZXJzaW9uICAgICAgICAgICAgIElOVEVHRVIsICAtLSBtdXN0IGJlIDAKKyAqICAgICAgIG1vZHVsdXMgICAgICAgICAgICAgSU5URUdFUiwgIC0tIG4KKyAqICAgICAgIHB1YmxpY0V4cG9uZW50ICAgICAgSU5URUdFUiwgIC0tIGUKKyAqICAgICAgIHByaXZhdGVFeHBvbmVudCAgICAgSU5URUdFUiwgIC0tIGQKKyAqICAgICAgIHByaW1lMSAgICAgICAgICAgICAgSU5URUdFUiwgIC0tIHAKKyAqICAgICAgIHByaW1lMiAgICAgICAgICAgICAgSU5URUdFUiwgIC0tIHEKKyAqICAgICAgIGV4cG9uZW50MSAgICAgICAgICAgSU5URUdFUiwgIC0tIGQgbW9kIChwLTEpCisgKiAgICAgICBleHBvbmVudDIgICAgICAgICAgIElOVEVHRVIsICAtLSBkIG1vZCAocS0xKQorICogICAgICAgY29lZmZpY2llbnQgICAgICAgICBJTlRFR0VSLCAgLS0gKGludmVyc2Ugb2YgcSkgbW9kIHAKKyAqICAgfQorICogICBgYGAKKyAqIC0gRm9yIGVsbGlwdGljIGN1cnZlIGtleSBwYWlycyAoa2V5IHR5cGVzIGZvciB3aGljaAorICogICAjUFNBX0tFWV9UWVBFX0lTX0VDQ19LRVlfUEFJUiBpcyB0cnVlKSwgdGhlIGZvcm1hdCBpcworICogICBhIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBwcml2YXRlIHZhbHVlIGFzIGEgYGNlaWxpbmcobS84KWAtYnl0ZSBzdHJpbmcKKyAqICAgd2hlcmUgYG1gIGlzIHRoZSBiaXQgc2l6ZSBhc3NvY2lhdGVkIHdpdGggdGhlIGN1cnZlLCBpLmUuIHRoZSBiaXQgc2l6ZQorICogICBvZiB0aGUgb3JkZXIgb2YgdGhlIGN1cnZlJ3MgY29vcmRpbmF0ZSBmaWVsZC4gVGhpcyBieXRlIHN0cmluZyBpcworICogICBpbiBsaXR0bGUtZW5kaWFuIG9yZGVyIGZvciBNb250Z29tZXJ5IGN1cnZlcyAoY3VydmUgdHlwZXMKKyAqICAgYFBTQV9FQ0NfRkFNSUxZX0NVUlZFWFhYYCksIGFuZCBpbiBiaWctZW5kaWFuIG9yZGVyIGZvciBXZWllcnN0cmFzcworICogICBjdXJ2ZXMgKGN1cnZlIHR5cGVzIGBQU0FfRUNDX0ZBTUlMWV9TRUNUWFhYYCwgYFBTQV9FQ0NfRkFNSUxZX1NFQ1BYWFhgCisgKiAgIGFuZCBgUFNBX0VDQ19GQU1JTFlfQlJBSU5QT09MX1BYWFhgKS4KKyAqICAgRm9yIFdlaWVyc3RyYXNzIGN1cnZlcywgdGhpcyBpcyB0aGUgY29udGVudCBvZiB0aGUgYHByaXZhdGVLZXlgIGZpZWxkIG9mCisgKiAgIHRoZSBgRUNQcml2YXRlS2V5YCBmb3JtYXQgZGVmaW5lZCBieSBSRkMgNTkxNS4gIEZvciBNb250Z29tZXJ5IGN1cnZlcywKKyAqICAgdGhlIGZvcm1hdCBpcyBkZWZpbmVkIGJ5IFJGQyA3NzQ4LCBhbmQgb3V0cHV0IGlzIG1hc2tlZCBhY2NvcmRpbmcgdG8gwqc1LgorICogICBGb3IgdHdpc3RlZCBFZHdhcmRzIGN1cnZlcywgdGhlIHByaXZhdGUga2V5IGlzIGFzIGRlZmluZWQgYnkgUkZDIDgwMzIKKyAqICAgKGEgMzItYnl0ZSBzdHJpbmcgZm9yIEVkd2FyZHMyNTUxOSwgYSA1Ny1ieXRlIHN0cmluZyBmb3IgRWR3YXJkczQ0OCkuCisgKiAtIEZvciBEaWZmaWUtSGVsbG1hbiBrZXkgZXhjaGFuZ2Uga2V5IHBhaXJzIChrZXkgdHlwZXMgZm9yIHdoaWNoCisgKiAgICNQU0FfS0VZX1RZUEVfSVNfREhfS0VZX1BBSVIgaXMgdHJ1ZSksIHRoZQorICogICBmb3JtYXQgaXMgdGhlIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBwcml2YXRlIGtleSBgeGAgYXMgYSBiaWctZW5kaWFuIGJ5dGUKKyAqICAgc3RyaW5nLiBUaGUgbGVuZ3RoIG9mIHRoZSBieXRlIHN0cmluZyBpcyB0aGUgcHJpdmF0ZSBrZXkgc2l6ZSBpbiBieXRlcworICogICAobGVhZGluZyB6ZXJvZXMgYXJlIG5vdCBzdHJpcHBlZCkuCisgKiAtIEZvciBwdWJsaWMga2V5cyAoa2V5IHR5cGVzIGZvciB3aGljaCAjUFNBX0tFWV9UWVBFX0lTX1BVQkxJQ19LRVkgaXMKKyAqICAgdHJ1ZSksIHRoZSBmb3JtYXQgaXMgdGhlIHNhbWUgYXMgZm9yIHBzYV9leHBvcnRfcHVibGljX2tleSgpLgorICoKKyAqIFRoZSBwb2xpY3kgb24gdGhlIGtleSBtdXN0IGhhdmUgdGhlIHVzYWdlIGZsYWcgI1BTQV9LRVlfVVNBR0VfRVhQT1JUIHNldC4KKyAqCisgKiBccGFyYW0ga2V5ICAgICAgICAgICAgICAgSWRlbnRpZmllciBvZiB0aGUga2V5IHRvIGV4cG9ydC4gSXQgbXVzdCBhbGxvdyB0aGUKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICB1c2FnZSAjUFNBX0tFWV9VU0FHRV9FWFBPUlQsIHVubGVzcyBpdCBpcyBhIHB1YmxpYworICogICAgICAgICAgICAgICAgICAgICAgICAgIGtleS4KKyAqIFxwYXJhbVtvdXRdIGRhdGEgICAgICAgICBCdWZmZXIgd2hlcmUgdGhlIGtleSBkYXRhIGlzIHRvIGJlIHdyaXR0ZW4uCisgKiBccGFyYW0gZGF0YV9zaXplICAgICAgICAgU2l6ZSBvZiB0aGUgXHAgZGF0YSBidWZmZXIgaW4gYnl0ZXMuCisgKiBccGFyYW1bb3V0XSBkYXRhX2xlbmd0aCAgT24gc3VjY2VzcywgdGhlIG51bWJlciBvZiBieXRlcworICogICAgICAgICAgICAgICAgICAgICAgICAgIHRoYXQgbWFrZSB1cCB0aGUga2V5IGRhdGEuCisgKgorICogXHJldHZhbCAjUFNBX1NVQ0NFU1MgXGVtcHR5ZGVzY3JpcHRpb24KKyAqIFxyZXR2YWwgI1BTQV9FUlJPUl9JTlZBTElEX0hBTkRMRSBcZW1wdHlkZXNjcmlwdGlvbgorICogXHJldHZhbCAjUFNBX0VSUk9SX05PVF9QRVJNSVRURUQKKyAqICAgICAgICAgVGhlIGtleSBkb2VzIG5vdCBoYXZlIHRoZSAjUFNBX0tFWV9VU0FHRV9FWFBPUlQgZmxhZy4KKyAqIFxyZXR2YWwgI1BTQV9FUlJPUl9OT1RfU1VQUE9SVEVEIFxlbXB0eWRlc2NyaXB0aW9uCisgKiBccmV0dmFsICNQU0FfRVJST1JfQlVGRkVSX1RPT19TTUFMTAorICogICAgICAgICBUaGUgc2l6ZSBvZiB0aGUgXHAgZGF0YSBidWZmZXIgaXMgdG9vIHNtYWxsLiBZb3UgY2FuIGRldGVybWluZSBhCisgKiAgICAgICAgIHN1ZmZpY2llbnQgYnVmZmVyIHNpemUgYnkgY2FsbGluZworICogICAgICAgICAjUFNBX0VYUE9SVF9LRVlfT1VUUFVUX1NJWkUoXGMgdHlwZSwgXGMgYml0cykKKyAqICAgICAgICAgd2hlcmUgXGMgdHlwZSBpcyB0aGUga2V5IHR5cGUKKyAqICAgICAgICAgYW5kIFxjIGJpdHMgaXMgdGhlIGtleSBzaXplIGluIGJpdHMuCisgKiBccmV0dmFsICNQU0FfRVJST1JfQ09NTVVOSUNBVElPTl9GQUlMVVJFIFxlbXB0eWRlc2NyaXB0aW9uCisgKiBccmV0dmFsICNQU0FfRVJST1JfSEFSRFdBUkVfRkFJTFVSRSBcZW1wdHlkZXNjcmlwdGlvbgorICogXHJldHZhbCAjUFNBX0VSUk9SX0NPUlJVUFRJT05fREVURUNURUQgXGVtcHR5ZGVzY3JpcHRpb24KKyAqIFxyZXR2YWwgI1BTQV9FUlJPUl9TVE9SQUdFX0ZBSUxVUkUgXGVtcHR5ZGVzY3JpcHRpb24KKyAqIFxyZXR2YWwgI1BTQV9FUlJPUl9JTlNVRkZJQ0lFTlRfTUVNT1JZIFxlbXB0eWRlc2NyaXB0aW9uCisgKiBccmV0dmFsICNQU0FfRVJST1JfQkFEX1NUQVRFCisgKiAgICAgICAgIFRoZSBsaWJyYXJ5IGhhcyBub3QgYmVlbiBwcmV2aW91c2x5IGluaXRpYWxpemVkIGJ5IHBzYV9jcnlwdG9faW5pdCgpLgorICogICAgICAgICBJdCBpcyBpbXBsZW1lbnRhdGlvbi1kZXBlbmRlbnQgd2hldGhlciBhIGZhaWx1cmUgdG8gaW5pdGlhbGl6ZQorICogICAgICAgICByZXN1bHRzIGluIHRoaXMgZXJyb3IgY29kZS4KKyAqLworcHNhX3N0YXR1c190IHBzYV9leHBvcnRfa2V5KG1iZWR0bHNfc3ZjX2tleV9pZF90IGtleSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50OF90ICpkYXRhLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBkYXRhX3NpemUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90ICpkYXRhX2xlbmd0aCk7CisKKy8qKgorICogXGJyaWVmIEV4cG9ydCBhIHB1YmxpYyBrZXkgb3IgdGhlIHB1YmxpYyBwYXJ0IG9mIGEga2V5IHBhaXIgaW4gYmluYXJ5IGZvcm1hdC4KKyAqCisgKiBUaGUgb3V0cHV0IG9mIHRoaXMgZnVuY3Rpb24gY2FuIGJlIHBhc3NlZCB0byBwc2FfaW1wb3J0X2tleSgpIHRvCisgKiBjcmVhdGUgYW4gb2JqZWN0IHRoYXQgaXMgZXF1aXZhbGVudCB0byB0aGUgcHVibGljIGtleS4KKyAqCisgKiBUaGlzIHNwZWNpZmljYXRpb24gc3VwcG9ydHMgYSBzaW5nbGUgZm9ybWF0IGZvciBlYWNoIGtleSB0eXBlLgorICogSW1wbGVtZW50YXRpb25zIG1heSBzdXBwb3J0IG90aGVyIGZvcm1hdHMgYXMgbG9uZyBhcyB0aGUgc3RhbmRhcmQKKyAqIGZvcm1hdCBpcyBzdXBwb3J0ZWQuIEltcGxlbWVudGF0aW9ucyB0aGF0IHN1cHBvcnQgb3RoZXIgZm9ybWF0cworICogc2hvdWxkIGVuc3VyZSB0aGF0IHRoZSBmb3JtYXRzIGFyZSBjbGVhcmx5IHVuYW1iaWd1b3VzIHNvIGFzIHRvCisgKiBtaW5pbWl6ZSB0aGUgcmlzayB0aGF0IGFuIGludmFsaWQgaW5wdXQgaXMgYWNjaWRlbnRhbGx5IGludGVycHJldGVkCisgKiBhY2NvcmRpbmcgdG8gYSBkaWZmZXJlbnQgZm9ybWF0LgorICoKKyAqIEZvciBzdGFuZGFyZCBrZXkgdHlwZXMsIHRoZSBvdXRwdXQgZm9ybWF0IGlzIGFzIGZvbGxvd3M6CisgKiAtIEZvciBSU0EgcHVibGljIGtleXMgKCNQU0FfS0VZX1RZUEVfUlNBX1BVQkxJQ19LRVkpLCB0aGUgREVSIGVuY29kaW5nIG9mCisgKiAgIHRoZSByZXByZXNlbnRhdGlvbiBkZWZpbmVkIGJ5IFJGQyAzMjc5ICZzZWN0OzIuMy4xIGFzIGBSU0FQdWJsaWNLZXlgLgorICogICBgYGAKKyAqICAgUlNBUHVibGljS2V5IDo6PSBTRVFVRU5DRSB7CisgKiAgICAgIG1vZHVsdXMgICAgICAgICAgICBJTlRFR0VSLCAgICAtLSBuCisgKiAgICAgIHB1YmxpY0V4cG9uZW50ICAgICBJTlRFR0VSICB9ICAtLSBlCisgKiAgIGBgYAorICogLSBGb3IgZWxsaXB0aWMgY3VydmUga2V5cyBvbiBhIHR3aXN0ZWQgRWR3YXJkcyBjdXJ2ZSAoa2V5IHR5cGVzIGZvciB3aGljaAorICogICAjUFNBX0tFWV9UWVBFX0lTX0VDQ19QVUJMSUNfS0VZIGlzIHRydWUgYW5kICNQU0FfS0VZX1RZUEVfRUNDX0dFVF9GQU1JTFkKKyAqICAgcmV0dXJucyAjUFNBX0VDQ19GQU1JTFlfVFdJU1RFRF9FRFdBUkRTKSwgdGhlIHB1YmxpYyBrZXkgaXMgYXMgZGVmaW5lZAorICogICBieSBSRkMgODAzMgorICogICAoYSAzMi1ieXRlIHN0cmluZyBmb3IgRWR3YXJkczI1NTE5LCBhIDU3LWJ5dGUgc3RyaW5nIGZvciBFZHdhcmRzNDQ4KS4KKyAqIC0gRm9yIG90aGVyIGVsbGlwdGljIGN1cnZlIHB1YmxpYyBrZXlzIChrZXkgdHlwZXMgZm9yIHdoaWNoCisgKiAgICNQU0FfS0VZX1RZUEVfSVNfRUNDX1BVQkxJQ19LRVkgaXMgdHJ1ZSksIHRoZSBmb3JtYXQgaXMgdGhlIHVuY29tcHJlc3NlZAorICogICByZXByZXNlbnRhdGlvbiBkZWZpbmVkIGJ5IFNFQzEgJnNlY3Q7Mi4zLjMgYXMgdGhlIGNvbnRlbnQgb2YgYW4gRUNQb2ludC4KKyAqICAgTGV0IGBtYCBiZSB0aGUgYml0IHNpemUgYXNzb2NpYXRlZCB3aXRoIHRoZSBjdXJ2ZSwgaS5lLiB0aGUgYml0IHNpemUgb2YKKyAqICAgYHFgIGZvciBhIGN1cnZlIG92ZXIgYEZfcWAuIFRoZSByZXByZXNlbnRhdGlvbiBjb25zaXN0cyBvZjoKKyAqICAgICAgLSBUaGUgYnl0ZSAweDA0OworICogICAgICAtIGB4X1BgIGFzIGEgYGNlaWxpbmcobS84KWAtYnl0ZSBzdHJpbmcsIGJpZy1lbmRpYW47CisgKiAgICAgIC0gYHlfUGAgYXMgYSBgY2VpbGluZyhtLzgpYC1ieXRlIHN0cmluZywgYmlnLWVuZGlhbi4KKyAqIC0gRm9yIERpZmZpZS1IZWxsbWFuIGtleSBleGNoYW5nZSBwdWJsaWMga2V5cyAoa2V5IHR5cGVzIGZvciB3aGljaAorICogICAjUFNBX0tFWV9UWVBFX0lTX0RIX1BVQkxJQ19LRVkgaXMgdHJ1ZSksCisgKiAgIHRoZSBmb3JtYXQgaXMgdGhlIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBwdWJsaWMga2V5IGB5ID0gZ154IG1vZCBwYCBhcyBhCisgKiAgIGJpZy1lbmRpYW4gYnl0ZSBzdHJpbmcuIFRoZSBsZW5ndGggb2YgdGhlIGJ5dGUgc3RyaW5nIGlzIHRoZSBsZW5ndGggb2YgdGhlCisgKiAgIGJhc2UgcHJpbWUgYHBgIGluIGJ5dGVzLgorICoKKyAqIEV4cG9ydGluZyBhIHB1YmxpYyBrZXkgb2JqZWN0IG9yIHRoZSBwdWJsaWMgcGFydCBvZiBhIGtleSBwYWlyIGlzCisgKiBhbHdheXMgcGVybWl0dGVkLCByZWdhcmRsZXNzIG9mIHRoZSBrZXkncyB1c2FnZSBmbGFncy4KKyAqCisgKiBccGFyYW0ga2V5ICAgICAgICAgICAgICAgSWRlbnRpZmllciBvZiB0aGUga2V5IHRvIGV4cG9ydC4KKyAqIFxwYXJhbVtvdXRdIGRhdGEgICAgICAgICBCdWZmZXIgd2hlcmUgdGhlIGtleSBkYXRhIGlzIHRvIGJlIHdyaXR0ZW4uCisgKiBccGFyYW0gZGF0YV9zaXplICAgICAgICAgU2l6ZSBvZiB0aGUgXHAgZGF0YSBidWZmZXIgaW4gYnl0ZXMuCisgKiBccGFyYW1bb3V0XSBkYXRhX2xlbmd0aCAgT24gc3VjY2VzcywgdGhlIG51bWJlciBvZiBieXRlcworICogICAgICAgICAgICAgICAgICAgICAgICAgIHRoYXQgbWFrZSB1cCB0aGUga2V5IGRhdGEuCisgKgorICogXHJldHZhbCAjUFNBX1NVQ0NFU1MgXGVtcHR5ZGVzY3JpcHRpb24KKyAqIFxyZXR2YWwgI1BTQV9FUlJPUl9JTlZBTElEX0hBTkRMRSBcZW1wdHlkZXNjcmlwdGlvbgorICogXHJldHZhbCAjUFNBX0VSUk9SX0lOVkFMSURfQVJHVU1FTlQKKyAqICAgICAgICAgVGhlIGtleSBpcyBuZWl0aGVyIGEgcHVibGljIGtleSBub3IgYSBrZXkgcGFpci4KKyAqIFxyZXR2YWwgI1BTQV9FUlJPUl9OT1RfU1VQUE9SVEVEIFxlbXB0eWRlc2NyaXB0aW9uCisgKiBccmV0dmFsICNQU0FfRVJST1JfQlVGRkVSX1RPT19TTUFMTAorICogICAgICAgICBUaGUgc2l6ZSBvZiB0aGUgXHAgZGF0YSBidWZmZXIgaXMgdG9vIHNtYWxsLiBZb3UgY2FuIGRldGVybWluZSBhCisgKiAgICAgICAgIHN1ZmZpY2llbnQgYnVmZmVyIHNpemUgYnkgY2FsbGluZworICogICAgICAgICAjUFNBX0VYUE9SVF9LRVlfT1VUUFVUX1NJWkUoI1BTQV9LRVlfVFlQRV9QVUJMSUNfS0VZX09GX0tFWV9QQUlSKFxjIHR5cGUpLCBcYyBiaXRzKQorICogICAgICAgICB3aGVyZSBcYyB0eXBlIGlzIHRoZSBrZXkgdHlwZQorICogICAgICAgICBhbmQgXGMgYml0cyBpcyB0aGUga2V5IHNpemUgaW4gYml0cy4KKyAqIFxyZXR2YWwgI1BTQV9FUlJPUl9DT01NVU5JQ0FUSU9OX0ZBSUxVUkUgXGVtcHR5ZGVzY3JpcHRpb24KKyAqIFxyZXR2YWwgI1BTQV9FUlJPUl9IQVJEV0FSRV9GQUlMVVJFIFxlbXB0eWRlc2NyaXB0aW9uCisgKiBccmV0dmFsICNQU0FfRVJST1JfQ09SUlVQVElPTl9ERVRFQ1RFRCBcZW1wdHlkZXNjcmlwdGlvbgorICogXHJldHZhbCAjUFNBX0VSUk9SX1NUT1JBR0VfRkFJTFVSRSBcZW1wdHlkZXNjcmlwdGlvbgorICogXHJldHZhbCAjUFNBX0VSUk9SX0lOU1VGRklDSUVOVF9NRU1PUlkgXGVtcHR5ZGVzY3JpcHRpb24KKyAqIFxyZXR2YWwgI1BTQV9FUlJPUl9CQURfU1RBVEUKKyAqICAgICAgICAgVGhlIGxpYnJhcnkgaGFzIG5vdCBiZWVuIHByZXZpb3VzbHkgaW5pdGlhbGl6ZWQgYnkgcHNhX2NyeXB0b19pbml0KCkuCisgKiAgICAgICAgIEl0IGlzIGltcGxlbWVudGF0aW9uLWRlcGVuZGVudCB3aGV0aGVyIGEgZmFpbHVyZSB0byBpbml0aWFsaXplCisgKiAgICAgICAgIHJlc3VsdHMgaW4gdGhpcyBlcnJvciBjb2RlLgorICovCitwc2Ffc3RhdHVzX3QgcHNhX2V4cG9ydF9wdWJsaWNfa2V5KG1iZWR0bHNfc3ZjX2tleV9pZF90IGtleSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDhfdCAqZGF0YSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IGRhdGFfc2l6ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90ICpkYXRhX2xlbmd0aCk7CisKKy8qKgorICogXGJyaWVmICAgICAgICAgICAgICAgICAgICAgICBTZXQgdGhlIG1heGltdW0gbnVtYmVyIG9mIG9wcyBhbGxvd2VkIHRvIGJlCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4ZWN1dGVkIGJ5IGFuIGludGVycnVwdGlibGUgZnVuY3Rpb24gaW4gYQorICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaW5nbGUgY2FsbC4KKyAqCisgKiBcd2FybmluZyAgICAgICAgICAgICAgICAgICAgIFRoaXMgaXMgYSBiZXRhIEFQSSwgYW5kIHRodXMgc3ViamVjdCB0byBjaGFuZ2UKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXQgYW55IHBvaW50LiBJdCBpcyBub3QgYm91bmQgYnkgdGhlIHVzdWFsCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludGVyZmFjZSBzdGFiaWxpdHkgcHJvbWlzZXMuCisgKgorICogXG5vdGUgICAgICAgICAgICAgICAgICAgICAgICBUaGUgdGltZSB0YWtlbiB0byBleGVjdXRlIGEgc2luZ2xlIG9wIGlzCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGltcGxlbWVudGF0aW9uIHNwZWNpZmljIGFuZCBkZXBlbmRzIG9uCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNvZnR3YXJlLCBoYXJkd2FyZSwgdGhlIGFsZ29yaXRobSwga2V5IHR5cGUgYW5kCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGN1cnZlIGNob3Nlbi4gRXZlbiB3aXRoaW4gYSBzaW5nbGUgb3BlcmF0aW9uLAorICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdWNjZXNzaXZlIG9wcyBjYW4gdGFrZSBkaWZmZXJpbmcgYW1vdW50cyBvZgorICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aW1lLiBUaGUgb25seSBndWFyYW50ZWUgaXMgdGhhdCBsb3dlciB2YWx1ZXMKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yIFxwIG1heF9vcHMgbWVhbnMgZnVuY3Rpb25zIHdpbGwgYmxvY2sgZm9yIGEKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGVzc2VyIG1heGltdW0gYW1vdW50IG9mIHRpbWUuIFRoZSBmdW5jdGlvbnMKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXGMgcHNhX3NpZ25faW50ZXJydXB0aWJsZV9nZXRfbnVtX29wcygpIGFuZAorICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcYyBwc2FfdmVyaWZ5X2ludGVycnVwdGlibGVfZ2V0X251bV9vcHMoKSBhcmUKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvdmlkZWQgdG8gaGVscCB3aXRoIHR1bmluZyB0aGlzIHZhbHVlLgorICoKKyAqIFxub3RlICAgICAgICAgICAgICAgICAgICAgICAgVGhpcyB2YWx1ZSBkZWZhdWx0cyB0bworICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjUFNBX0lOVEVSUlVQVElCTEVfTUFYX09QU19VTkxJTUlURUQsIHdoaWNoCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1lYW5zIHRoZSB3aG9sZSBvcGVyYXRpb24gd2lsbCBiZSBkb25lIGluIG9uZQorICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnbywgcmVnYXJkbGVzcyBvZiB0aGUgbnVtYmVyIG9mIG9wcyByZXF1aXJlZC4KKyAqCisgKiBcbm90ZSAgICAgICAgICAgICAgICAgICAgICAgIElmIG1vcmUgb3BzIGFyZSBuZWVkZWQgdG8gY29tcGxldGUgYQorICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb21wdXRhdGlvbiwgI1BTQV9PUEVSQVRJT05fSU5DT01QTEVURSB3aWxsIGJlCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybmVkIGJ5IHRoZSBmdW5jdGlvbiBwZXJmb3JtaW5nIHRoZQorICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb21wdXRhdGlvbi4gSXQgaXMgdGhlbiB0aGUgY2FsbGVyJ3MKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzcG9uc2liaWxpdHkgdG8gZWl0aGVyIGNhbGwgYWdhaW4gd2l0aCB0aGUKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2FtZSBvcGVyYXRpb24gY29udGV4dCB1bnRpbCBpdCByZXR1cm5zIDAgb3IgYW4KKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3IgY29kZTsgb3IgdG8gY2FsbCB0aGUgcmVsZXZhbnQgYWJvcnQKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZnVuY3Rpb24gaWYgdGhlIGFuc3dlciBpcyBubyBsb25nZXIgcmVxdWlyZWQuCisgKgorICogXG5vdGUgICAgICAgICAgICAgICAgICAgICAgICBUaGUgaW50ZXJwcmV0YXRpb24gb2YgXHAgbWF4X29wcyBpcyBhbHNvCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGltcGxlbWVudGF0aW9uIGRlZmluZWQuIE9uIGEgaGFyZCByZWFsIHRpbWUKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3lzdGVtLCB0aGlzIGNhbiBpbmRpY2F0ZSBhIGhhcmQgZGVhZGxpbmUsIGFzIGEKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVhbC10aW1lIHN5c3RlbSBuZWVkcyBhIGd1YXJhbnRlZSBvZiBub3QKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3BlbmRpbmcgbW9yZSB0aGFuIFggdGltZSwgaG93ZXZlciBjYXJlIG11c3QgYmUKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFrZW4gaW4gc3VjaCBhbiBpbXBsZW1lbnRhdGlvbiB0byBhdm9pZCB0aGUKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l0dWF0aW9uIHdoZXJlYnkgY2FsbHMganVzdCByZXR1cm4sIG5vdCBiZWluZworICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhYmxlIHRvIGRvIGFueSBhY3R1YWwgd29yayB3aXRoaW4gdGhlIGFsbG90dGVkCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpbWUuICBPbiBhIG5vbi1yZWFsLXRpbWUgc3lzdGVtLCB0aGUKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW1wbGVtZW50YXRpb24gY2FuIGJlIG1vcmUgcmVsYXhlZCwgYnV0IGFnYWluCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdoZXRoZXIgdGhpcyBudW1iZXIgc2hvdWxkIGJlIGludGVycHJldGVkIGFzIGFzCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhcmQgb3Igc29mdCBsaW1pdCBvciBldmVuIHdoZXRoZXIgYSBsZXNzIHRoYW4KKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3IgZXF1YWxzIGFzIHJlZ2FyZHMgdG8gb3BzIGV4ZWN1dGVkIGluIGEKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2luZ2xlIGNhbGwgaXMgaW1wbGVtZW50YXRpb24gZGVmaW5lZC4KKyAqCisgKiBcbm90ZSAgICAgICAgICAgICAgICAgICAgICAgIEZvciBrZXlzIGluIGxvY2FsIHN0b3JhZ2Ugd2hlbiBubyBhY2NlbGVyYXRvcgorICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkcml2ZXIgYXBwbGllcywgcGxlYXNlIHNlZSBhbHNvIHRoZQorICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkb2N1bWVudGF0aW9uIGZvciBcYyBtYmVkdGxzX2VjcF9zZXRfbWF4X29wcygpLAorICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aGljaCBpcyB0aGUgaW50ZXJuYWwgaW1wbGVtZW50YXRpb24gaW4gdGhlc2UKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FzZXMuCisgKgorICogXHdhcm5pbmcgICAgICAgICAgICAgICAgICAgICBXaXRoIGltcGxlbWVudGF0aW9ucyB0aGF0IGludGVycHJldCB0aGlzIG51bWJlcgorICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcyBhIGhhcmQgbGltaXQsIHNldHRpbmcgdGhpcyBudW1iZXIgdG9vIHNtYWxsCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1heSByZXN1bHQgaW4gYW4gaW5maW5pdGUgbG9vcCwgd2hlcmVieSBlYWNoCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhbGwgcmVzdWx0cyBpbiBpbW1lZGlhdGUgcmV0dXJuIHdpdGggbm8gb3BzCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRvbmUgKGFzIHRoZXJlIGlzIG5vdCBlbm91Z2ggdGltZSB0byBleGVjdXRlCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFueSksIGFuZCB0aHVzIG5vIHJlc3VsdCB3aWxsIGV2ZXIgYmUgYWNoaWV2ZWQuCisgKgorICogXG5vdGUgICAgICAgICAgICAgICAgICAgICAgICBUaGlzIG9ubHkgYXBwbGllcyB0byBmdW5jdGlvbnMgd2hvc2UKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnRhdGlvbiBtZW50aW9ucyB0aGV5IG1heSByZXR1cm4KKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgI1BTQV9PUEVSQVRJT05fSU5DT01QTEVURS4KKyAqCisgKiBccGFyYW0gbWF4X29wcyAgICAgICAgICAgICAgIFRoZSBtYXhpbXVtIG51bWJlciBvZiBvcHMgdG8gYmUgZXhlY3V0ZWQgaW4gYQorICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaW5nbGUgY2FsbC4gVGhpcyBjYW4gYmUgYSBudW1iZXIgZnJvbSAwIHRvCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICNQU0FfSU5URVJSVVBUSUJMRV9NQVhfT1BTX1VOTElNSVRFRCwgd2hlcmUgMAorICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpcyB0aGUgbGVhc3QgYW1vdW50IG9mIHdvcmsgZG9uZSBwZXIgY2FsbC4KKyAqLwordm9pZCBwc2FfaW50ZXJydXB0aWJsZV9zZXRfbWF4X29wcyh1aW50MzJfdCBtYXhfb3BzKTsKKworLyoqCisgKiBcYnJpZWYgICAgICAgICAgICAgICAgICAgICAgIEdldCB0aGUgbWF4aW11bSBudW1iZXIgb2Ygb3BzIGFsbG93ZWQgdG8gYmUKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXhlY3V0ZWQgYnkgYW4gaW50ZXJydXB0aWJsZSBmdW5jdGlvbiBpbiBhCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpbmdsZSBjYWxsLiBUaGlzIHdpbGwgcmV0dXJuIHRoZSBsYXN0CisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIHNldCBieQorICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcYyBwc2FfaW50ZXJydXB0aWJsZV9zZXRfbWF4X29wcygpIG9yCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICNQU0FfSU5URVJSVVBUSUJMRV9NQVhfT1BTX1VOTElNSVRFRCBpZgorICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGF0IGZ1bmN0aW9uIGhhcyBuZXZlciBiZWVuIGNhbGxlZC4KKyAqCisgKiBcd2FybmluZyAgICAgICAgICAgICAgICAgICAgIFRoaXMgaXMgYSBiZXRhIEFQSSwgYW5kIHRodXMgc3ViamVjdCB0byBjaGFuZ2UKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXQgYW55IHBvaW50LiBJdCBpcyBub3QgYm91bmQgYnkgdGhlIHVzdWFsCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludGVyZmFjZSBzdGFiaWxpdHkgcHJvbWlzZXMuCisgKgorICogXHJldHVybiAgICAgICAgICAgICAgICAgICAgICBNYXhpbXVtIG51bWJlciBvZiBvcHMgYWxsb3dlZCB0byBiZQorICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBleGVjdXRlZCBieSBhbiBpbnRlcnJ1cHRpYmxlIGZ1bmN0aW9uIGluIGEKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2luZ2xlIGNhbGwuCisgKi8KK3VpbnQzMl90IHBzYV9pbnRlcnJ1cHRpYmxlX2dldF9tYXhfb3BzKHZvaWQpOworCisvKioKKyAqIFxicmllZiAgICAgICAgICAgICAgICAgICAgICAgR2V0IHRoZSBudW1iZXIgb2Ygb3BzIHRoYXQgYSBoYXNoIHNpZ25pbmcKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3BlcmF0aW9uIGhhcyB0YWtlbiBzbyBmYXIuIElmIHRoZSBvcGVyYXRpb24KKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFzIGNvbXBsZXRlZCwgdGhlbiB0aGlzIHdpbGwgcmVwcmVzZW50IHRoZQorICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBudW1iZXIgb2Ygb3BzIHJlcXVpcmVkIGZvciB0aGUgZW50aXJlCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wZXJhdGlvbi4gQWZ0ZXIgaW5pdGlhbGl6YXRpb24gb3IgY2FsbGluZworICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcYyBwc2Ffc2lnbl9oYXNoX2ludGVycnVwdGlibGVfYWJvcnQoKSBvbgorICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGUgb3BlcmF0aW9uLCBhIHZhbHVlIG9mIDAgd2lsbCBiZSByZXR1cm5lZC4KKyAqCisgKiBcbm90ZSAgICAgICAgICAgICAgICAgICAgICAgIFRoaXMgaW50ZXJmYWNlIGlzIGd1YXJhbnRlZWQgcmUtZW50cmFudCBhbmQKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGh1cyBtYXkgYmUgY2FsbGVkIGZyb20gZHJpdmVyIGNvZGUuCisgKgorICogXHdhcm5pbmcgICAgICAgICAgICAgICAgICAgICBUaGlzIGlzIGEgYmV0YSBBUEksIGFuZCB0aHVzIHN1YmplY3QgdG8gY2hhbmdlCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF0IGFueSBwb2ludC4gSXQgaXMgbm90IGJvdW5kIGJ5IHRoZSB1c3VhbAorICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnRlcmZhY2Ugc3RhYmlsaXR5IHByb21pc2VzLgorICoKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVGhpcyBpcyBhIGhlbHBlciBwcm92aWRlZCB0byBoZWxwIHlvdSB0dW5lIHRoZQorICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBwYXNzZWQgdG8gXGMKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHNhX2ludGVycnVwdGlibGVfc2V0X21heF9vcHMoKS4KKyAqCisgKiBccGFyYW0gb3BlcmF0aW9uICAgICAgICAgICAgIFRoZSBcYyBwc2Ffc2lnbl9oYXNoX2ludGVycnVwdGlibGVfb3BlcmF0aW9uX3QKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG8gdXNlLiBUaGlzIG11c3QgYmUgaW5pdGlhbGl6ZWQgZmlyc3QuCisgKgorICogXHJldHVybiAgICAgICAgICAgICAgICAgICAgICBOdW1iZXIgb2Ygb3BzIHRoYXQgdGhlIG9wZXJhdGlvbiBoYXMgdGFrZW4gc28KKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFyLgorICovCit1aW50MzJfdCBwc2Ffc2lnbl9oYXNoX2dldF9udW1fb3BzKAorICAgIGNvbnN0IHBzYV9zaWduX2hhc2hfaW50ZXJydXB0aWJsZV9vcGVyYXRpb25fdCAqb3BlcmF0aW9uKTsKKworLyoqCisgKiBcYnJpZWYgICAgICAgICAgICAgICAgICAgICAgIEdldCB0aGUgbnVtYmVyIG9mIG9wcyB0aGF0IGEgaGFzaCB2ZXJpZmljYXRpb24KKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3BlcmF0aW9uIGhhcyB0YWtlbiBzbyBmYXIuIElmIHRoZSBvcGVyYXRpb24KKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFzIGNvbXBsZXRlZCwgdGhlbiB0aGlzIHdpbGwgcmVwcmVzZW50IHRoZQorICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBudW1iZXIgb2Ygb3BzIHJlcXVpcmVkIGZvciB0aGUgZW50aXJlCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wZXJhdGlvbi4gQWZ0ZXIgaW5pdGlhbGl6YXRpb24gb3IgY2FsbGluZyBcYworICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwc2FfdmVyaWZ5X2hhc2hfaW50ZXJydXB0aWJsZV9hYm9ydCgpIG9uIHRoZQorICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcGVyYXRpb24sIGEgdmFsdWUgb2YgMCB3aWxsIGJlIHJldHVybmVkLgorICoKKyAqIFx3YXJuaW5nICAgICAgICAgICAgICAgICAgICAgVGhpcyBpcyBhIGJldGEgQVBJLCBhbmQgdGh1cyBzdWJqZWN0IHRvIGNoYW5nZQorICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdCBhbnkgcG9pbnQuIEl0IGlzIG5vdCBib3VuZCBieSB0aGUgdXN1YWwKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50ZXJmYWNlIHN0YWJpbGl0eSBwcm9taXNlcy4KKyAqCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRoaXMgaXMgYSBoZWxwZXIgcHJvdmlkZWQgdG8gaGVscCB5b3UgdHVuZSB0aGUKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgcGFzc2VkIHRvIFxjCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBzYV9pbnRlcnJ1cHRpYmxlX3NldF9tYXhfb3BzKCkuCisgKgorICogXHBhcmFtIG9wZXJhdGlvbiAgICAgICAgICAgICBUaGUgXGMKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHNhX3ZlcmlmeV9oYXNoX2ludGVycnVwdGlibGVfb3BlcmF0aW9uX3QgdG8KKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXNlLiBUaGlzIG11c3QgYmUgaW5pdGlhbGl6ZWQgZmlyc3QuCisgKgorICogXHJldHVybiAgICAgICAgICAgICAgICAgICAgICBOdW1iZXIgb2Ygb3BzIHRoYXQgdGhlIG9wZXJhdGlvbiBoYXMgdGFrZW4gc28KKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFyLgorICovCit1aW50MzJfdCBwc2FfdmVyaWZ5X2hhc2hfZ2V0X251bV9vcHMoCisgICAgY29uc3QgcHNhX3ZlcmlmeV9oYXNoX2ludGVycnVwdGlibGVfb3BlcmF0aW9uX3QgKm9wZXJhdGlvbik7CisKKy8qKgorICogXGJyaWVmICAgICAgICAgICAgICAgICAgICAgICBTdGFydCBzaWduaW5nIGEgaGFzaCBvciBzaG9ydCBtZXNzYWdlIHdpdGggYQorICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcml2YXRlIGtleSwgaW4gYW4gaW50ZXJydXB0aWJsZSBtYW5uZXIuCisgKgorICogXHNlZSAgICAgICAgICAgICAgICAgICAgICAgICBcYyBwc2Ffc2lnbl9oYXNoX2NvbXBsZXRlKCkKKyAqCisgKiBcd2FybmluZyAgICAgICAgICAgICAgICAgICAgIFRoaXMgaXMgYSBiZXRhIEFQSSwgYW5kIHRodXMgc3ViamVjdCB0byBjaGFuZ2UKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXQgYW55IHBvaW50LiBJdCBpcyBub3QgYm91bmQgYnkgdGhlIHVzdWFsCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludGVyZmFjZSBzdGFiaWxpdHkgcHJvbWlzZXMuCisgKgorICogXG5vdGUgICAgICAgICAgICAgICAgICAgICAgICBUaGlzIGZ1bmN0aW9uIGNvbWJpbmVkIHdpdGggXGMKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHNhX3NpZ25faGFzaF9jb21wbGV0ZSgpIGlzIGVxdWl2YWxlbnQgdG8KKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXGMgcHNhX3NpZ25faGFzaCgpIGJ1dAorICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcYyBwc2Ffc2lnbl9oYXNoX2NvbXBsZXRlKCkgY2FuIHJldHVybiBlYXJseSBhbmQKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzdW1lIGFjY29yZGluZyB0byB0aGUgbGltaXQgc2V0IHdpdGggXGMKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHNhX2ludGVycnVwdGlibGVfc2V0X21heF9vcHMoKSB0byByZWR1Y2UgdGhlCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1heGltdW0gdGltZSBzcGVudCBpbiBhIGZ1bmN0aW9uIGNhbGwuCisgKgorICogXG5vdGUgICAgICAgICAgICAgICAgICAgICAgICBVc2VycyBzaG91bGQgY2FsbCBcYyBwc2Ffc2lnbl9oYXNoX2NvbXBsZXRlKCkKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVwZWF0ZWRseSBvbiB0aGUgc2FtZSBjb250ZXh0IGFmdGVyIGEKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3VjY2Vzc2Z1bCBjYWxsIHRvIHRoaXMgZnVuY3Rpb24gdW50aWwgXGMKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHNhX3NpZ25faGFzaF9jb21wbGV0ZSgpIGVpdGhlciByZXR1cm5zIDAgb3IgYW4KKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3IuIFxjIHBzYV9zaWduX2hhc2hfY29tcGxldGUoKSB3aWxsIHJldHVybgorICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjUFNBX09QRVJBVElPTl9JTkNPTVBMRVRFIGlmIHRoZXJlIGlzIG1vcmUgd29yaworICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0byBkby4gQWx0ZXJuYXRpdmVseSB1c2VycyBjYW4gY2FsbAorICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcYyBwc2Ffc2lnbl9oYXNoX2Fib3J0KCkgYXQgYW55IHBvaW50IGlmIHRoZXkgbm8KKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZ2VyIHdhbnQgdGhlIHJlc3VsdC4KKyAqCisgKiBcbm90ZSAgICAgICAgICAgICAgICAgICAgICAgIElmIHRoaXMgZnVuY3Rpb24gcmV0dXJucyBhbiBlcnJvciBzdGF0dXMsIHRoZQorICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcGVyYXRpb24gZW50ZXJzIGFuIGVycm9yIHN0YXRlIGFuZCBtdXN0IGJlCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFib3J0ZWQgYnkgY2FsbGluZyBcYyBwc2Ffc2lnbl9oYXNoX2Fib3J0KCkuCisgKgorICogXHBhcmFtW2luLCBvdXRdIG9wZXJhdGlvbiAgICBUaGUgXGMgcHNhX3NpZ25faGFzaF9pbnRlcnJ1cHRpYmxlX29wZXJhdGlvbl90CisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvIHVzZS4gVGhpcyBtdXN0IGJlIGluaXRpYWxpemVkIGZpcnN0LgorICoKKyAqIFxwYXJhbSBrZXkgICAgICAgICAgICAgICAgICAgSWRlbnRpZmllciBvZiB0aGUga2V5IHRvIHVzZSBmb3IgdGhlIG9wZXJhdGlvbi4KKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSXQgbXVzdCBiZSBhbiBhc3ltbWV0cmljIGtleSBwYWlyLiBUaGUga2V5IG11c3QKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWxsb3cgdGhlIHVzYWdlICNQU0FfS0VZX1VTQUdFX1NJR05fSEFTSC4KKyAqIFxwYXJhbSBhbGcgICAgICAgICAgICAgICAgICAgQSBzaWduYXR1cmUgYWxnb3JpdGhtIChcYyBQU0FfQUxHX1hYWAorICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBzdWNoIHRoYXQgI1BTQV9BTEdfSVNfU0lHTl9IQVNIKFxwIGFsZykKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXMgdHJ1ZSksIHRoYXQgaXMgY29tcGF0aWJsZSB3aXRoCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoZSB0eXBlIG9mIFxwIGtleS4KKyAqIFxwYXJhbVtpbl0gaGFzaCAgICAgICAgICAgICAgVGhlIGhhc2ggb3IgbWVzc2FnZSB0byBzaWduLgorICogXHBhcmFtIGhhc2hfbGVuZ3RoICAgICAgICAgICBTaXplIG9mIHRoZSBccCBoYXNoIGJ1ZmZlciBpbiBieXRlcy4KKyAqCisgKiBccmV0dmFsICNQU0FfU1VDQ0VTUworICogICAgICAgICBUaGUgb3BlcmF0aW9uIHN0YXJ0ZWQgc3VjY2Vzc2Z1bGx5IC0gY2FsbCBcYyBwc2Ffc2lnbl9oYXNoX2NvbXBsZXRlKCkKKyAqICAgICAgICAgd2l0aCB0aGUgc2FtZSBjb250ZXh0IHRvIGNvbXBsZXRlIHRoZSBvcGVyYXRpb24KKyAqCisgKiBccmV0dmFsICNQU0FfRVJST1JfSU5WQUxJRF9IQU5ETEUgXGVtcHR5ZGVzY3JpcHRpb24KKyAqIFxyZXR2YWwgI1BTQV9FUlJPUl9OT1RfUEVSTUlUVEVECisgKiAgICAgICAgIFRoZSBrZXkgZG9lcyBub3QgaGF2ZSB0aGUgI1BTQV9LRVlfVVNBR0VfU0lHTl9IQVNIIGZsYWcsIG9yIGl0IGRvZXMKKyAqICAgICAgICAgbm90IHBlcm1pdCB0aGUgcmVxdWVzdGVkIGFsZ29yaXRobS4KKyAqIFxyZXR2YWwgI1BTQV9FUlJPUl9CQURfU1RBVEUKKyAqICAgICAgICAgQW4gb3BlcmF0aW9uIGhhcyBwcmV2aW91c2x5IGJlZW4gc3RhcnRlZCBvbiB0aGlzIGNvbnRleHQsIGFuZCBpcworICogICAgICAgICBzdGlsbCBpbiBwcm9ncmVzcy4KKyAqIFxyZXR2YWwgI1BTQV9FUlJPUl9OT1RfU1VQUE9SVEVEIFxlbXB0eWRlc2NyaXB0aW9uCisgKiBccmV0dmFsICNQU0FfRVJST1JfSU5WQUxJRF9BUkdVTUVOVCBcZW1wdHlkZXNjcmlwdGlvbgorICogXHJldHZhbCAjUFNBX0VSUk9SX0lOU1VGRklDSUVOVF9NRU1PUlkgXGVtcHR5ZGVzY3JpcHRpb24KKyAqIFxyZXR2YWwgI1BTQV9FUlJPUl9DT01NVU5JQ0FUSU9OX0ZBSUxVUkUgXGVtcHR5ZGVzY3JpcHRpb24KKyAqIFxyZXR2YWwgI1BTQV9FUlJPUl9IQVJEV0FSRV9GQUlMVVJFIFxlbXB0eWRlc2NyaXB0aW9uCisgKiBccmV0dmFsICNQU0FfRVJST1JfQ09SUlVQVElPTl9ERVRFQ1RFRCBcZW1wdHlkZXNjcmlwdGlvbgorICogXHJldHZhbCAjUFNBX0VSUk9SX1NUT1JBR0VfRkFJTFVSRSBcZW1wdHlkZXNjcmlwdGlvbgorICogXHJldHZhbCAjUFNBX0VSUk9SX0RBVEFfQ09SUlVQVCBcZW1wdHlkZXNjcmlwdGlvbgorICogXHJldHZhbCAjUFNBX0VSUk9SX0RBVEFfSU5WQUxJRCBcZW1wdHlkZXNjcmlwdGlvbgorICogXHJldHZhbCAjUFNBX0VSUk9SX0lOU1VGRklDSUVOVF9FTlRST1BZIFxlbXB0eWRlc2NyaXB0aW9uCisgKiBccmV0dmFsICNQU0FfRVJST1JfQkFEX1NUQVRFCisgKiAgICAgICAgIFRoZSBsaWJyYXJ5IGhhcyBub3QgYmVlbiBwcmV2aW91c2x5IGluaXRpYWxpemVkIGJ5IHBzYV9jcnlwdG9faW5pdCgpLgorICogICAgICAgICBJdCBpcyBpbXBsZW1lbnRhdGlvbi1kZXBlbmRlbnQgd2hldGhlciBhIGZhaWx1cmUgdG8gaW5pdGlhbGl6ZQorICogICAgICAgICByZXN1bHRzIGluIHRoaXMgZXJyb3IgY29kZS4KKyAqLworcHNhX3N0YXR1c190IHBzYV9zaWduX2hhc2hfc3RhcnQoCisgICAgcHNhX3NpZ25faGFzaF9pbnRlcnJ1cHRpYmxlX29wZXJhdGlvbl90ICpvcGVyYXRpb24sCisgICAgbWJlZHRsc19zdmNfa2V5X2lkX3Qga2V5LCBwc2FfYWxnb3JpdGhtX3QgYWxnLAorICAgIGNvbnN0IHVpbnQ4X3QgKmhhc2gsIHNpemVfdCBoYXNoX2xlbmd0aCk7CisKKy8qKgorICogXGJyaWVmICAgICAgICAgICAgICAgICAgICAgICBDb250aW51ZSBhbmQgZXZlbnR1YWxseSBjb21wbGV0ZSB0aGUgYWN0aW9uIG9mCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpZ25pbmcgYSBoYXNoIG9yIHNob3J0IG1lc3NhZ2Ugd2l0aCBhIHByaXZhdGUKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga2V5LCBpbiBhbiBpbnRlcnJ1cHRpYmxlIG1hbm5lci4KKyAqCisgKiBcc2VlICAgICAgICAgICAgICAgICAgICAgICAgIFxjIHBzYV9zaWduX2hhc2hfc3RhcnQoKQorICoKKyAqIFx3YXJuaW5nICAgICAgICAgICAgICAgICAgICAgVGhpcyBpcyBhIGJldGEgQVBJLCBhbmQgdGh1cyBzdWJqZWN0IHRvIGNoYW5nZQorICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdCBhbnkgcG9pbnQuIEl0IGlzIG5vdCBib3VuZCBieSB0aGUgdXN1YWwKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50ZXJmYWNlIHN0YWJpbGl0eSBwcm9taXNlcy4KKyAqCisgKiBcbm90ZSAgICAgICAgICAgICAgICAgICAgICAgIFRoaXMgZnVuY3Rpb24gY29tYmluZWQgd2l0aCBcYworICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwc2Ffc2lnbl9oYXNoX3N0YXJ0KCkgaXMgZXF1aXZhbGVudCB0bworICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcYyBwc2Ffc2lnbl9oYXNoKCkgYnV0IHRoaXMgZnVuY3Rpb24gY2FuIHJldHVybgorICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlYXJseSBhbmQgcmVzdW1lIGFjY29yZGluZyB0byB0aGUgbGltaXQgc2V0IHdpdGgKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXGMgcHNhX2ludGVycnVwdGlibGVfc2V0X21heF9vcHMoKSB0byByZWR1Y2UgdGhlCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1heGltdW0gdGltZSBzcGVudCBpbiBhIGZ1bmN0aW9uIGNhbGwuCisgKgorICogXG5vdGUgICAgICAgICAgICAgICAgICAgICAgICBVc2VycyBzaG91bGQgY2FsbCB0aGlzIGZ1bmN0aW9uIG9uIHRoZSBzYW1lCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wZXJhdGlvbiBvYmplY3QgcmVwZWF0ZWRseSB1bnRpbCBpdCBlaXRoZXIKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJucyAwIG9yIGFuIGVycm9yLiBUaGlzIGZ1bmN0aW9uIHdpbGwgcmV0dXJuCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICNQU0FfT1BFUkFUSU9OX0lOQ09NUExFVEUgaWYgdGhlcmUgaXMgbW9yZSB3b3JrCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvIGRvLiBBbHRlcm5hdGl2ZWx5IHVzZXJzIGNhbiBjYWxsCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxjIHBzYV9zaWduX2hhc2hfYWJvcnQoKSBhdCBhbnkgcG9pbnQgaWYgdGhleSBubworICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nZXIgd2FudCB0aGUgcmVzdWx0LgorICoKKyAqIFxub3RlICAgICAgICAgICAgICAgICAgICAgICAgV2hlbiB0aGlzIGZ1bmN0aW9uIHJldHVybnMgc3VjY2Vzc2Z1bGx5LCB0aGUKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3BlcmF0aW9uIGJlY29tZXMgaW5hY3RpdmUuIElmIHRoaXMgZnVuY3Rpb24KKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJucyBhbiBlcnJvciBzdGF0dXMsIHRoZSBvcGVyYXRpb24gZW50ZXJzIGFuCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVycm9yIHN0YXRlIGFuZCBtdXN0IGJlIGFib3J0ZWQgYnkgY2FsbGluZworICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcYyBwc2Ffc2lnbl9oYXNoX2Fib3J0KCkuCisgKgorICogXHBhcmFtW2luLCBvdXRdIG9wZXJhdGlvbiAgICBUaGUgXGMgcHNhX3NpZ25faGFzaF9pbnRlcnJ1cHRpYmxlX29wZXJhdGlvbl90CisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvIHVzZS4gVGhpcyBtdXN0IGJlIGluaXRpYWxpemVkIGZpcnN0LCBhbmQgaGF2ZQorICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYWQgXGMgcHNhX3NpZ25faGFzaF9zdGFydCgpIGNhbGxlZCB3aXRoIGl0CisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpcnN0LgorICoKKyAqIFxwYXJhbVtvdXRdIHNpZ25hdHVyZSAgICAgICAgQnVmZmVyIHdoZXJlIHRoZSBzaWduYXR1cmUgaXMgdG8gYmUgd3JpdHRlbi4KKyAqIFxwYXJhbSBzaWduYXR1cmVfc2l6ZSAgICAgICAgU2l6ZSBvZiB0aGUgXHAgc2lnbmF0dXJlIGJ1ZmZlciBpbiBieXRlcy4gVGhpcworICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtdXN0IGJlIGFwcHJvcHJpYXRlIGZvciB0aGUgc2VsZWN0ZWQKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWxnb3JpdGhtIGFuZCBrZXk6CisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0gVGhlIHJlcXVpcmVkIHNpZ25hdHVyZSBzaXplIGlzCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgI1BTQV9TSUdOX09VVFBVVF9TSVpFKFxjIGtleV90eXBlLCBcYworICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtleV9iaXRzLCBcYyBhbGcpIHdoZXJlIFxjIGtleV90eXBlIGFuZCBcYworICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtleV9iaXRzIGFyZSB0aGUgdHlwZSBhbmQgYml0LXNpemUKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXNwZWN0aXZlbHkgb2Yga2V5LgorICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtICNQU0FfU0lHTkFUVVJFX01BWF9TSVpFIGV2YWx1YXRlcyB0byB0aGUKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXhpbXVtIHNpZ25hdHVyZSBzaXplIG9mIGFueSBzdXBwb3J0ZWQKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaWduYXR1cmUgYWxnb3JpdGhtLgorICogXHBhcmFtW291dF0gc2lnbmF0dXJlX2xlbmd0aCBPbiBzdWNjZXNzLCB0aGUgbnVtYmVyIG9mIGJ5dGVzIHRoYXQgbWFrZSB1cAorICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGUgcmV0dXJuZWQgc2lnbmF0dXJlIHZhbHVlLgorICoKKyAqIFxyZXR2YWwgI1BTQV9TVUNDRVNTCisgKiAgICAgICAgIE9wZXJhdGlvbiBjb21wbGV0ZWQgc3VjY2Vzc2Z1bGx5CisgKgorICogXHJldHZhbCAjUFNBX09QRVJBVElPTl9JTkNPTVBMRVRFCisgKiAgICAgICAgIE9wZXJhdGlvbiB3YXMgaW50ZXJydXB0ZWQgZHVlIHRvIHRoZSBzZXR0aW5nIG9mIFxjCisgKiAgICAgICAgIHBzYV9pbnRlcnJ1cHRpYmxlX3NldF9tYXhfb3BzKCkuIFRoZXJlIGlzIHN0aWxsIHdvcmsgdG8gYmUgZG9uZS4KKyAqICAgICAgICAgQ2FsbCB0aGlzIGZ1bmN0aW9uIGFnYWluIHdpdGggdGhlIHNhbWUgb3BlcmF0aW9uIG9iamVjdC4KKyAqCisgKiBccmV0dmFsICNQU0FfRVJST1JfQlVGRkVSX1RPT19TTUFMTAorICogICAgICAgICBUaGUgc2l6ZSBvZiB0aGUgXHAgc2lnbmF0dXJlIGJ1ZmZlciBpcyB0b28gc21hbGwuIFlvdSBjYW4KKyAqICAgICAgICAgZGV0ZXJtaW5lIGEgc3VmZmljaWVudCBidWZmZXIgc2l6ZSBieSBjYWxsaW5nCisgKiAgICAgICAgICNQU0FfU0lHTl9PVVRQVVRfU0laRShcYyBrZXlfdHlwZSwgXGMga2V5X2JpdHMsIFxjIGFsZykKKyAqICAgICAgICAgd2hlcmUgXGMga2V5X3R5cGUgYW5kIFxjIGtleV9iaXRzIGFyZSB0aGUgdHlwZSBhbmQgYml0LXNpemUKKyAqICAgICAgICAgcmVzcGVjdGl2ZWx5IG9mIFxjIGtleS4KKyAqCisgKiBccmV0dmFsICNQU0FfRVJST1JfQkFEX1NUQVRFCisgKiAgICAgICAgIEFuIG9wZXJhdGlvbiB3YXMgbm90IHByZXZpb3VzbHkgc3RhcnRlZCBvbiB0aGlzIGNvbnRleHQgdmlhCisgKiAgICAgICAgIFxjIHBzYV9zaWduX2hhc2hfc3RhcnQoKS4KKyAqCisgKiBccmV0dmFsICNQU0FfRVJST1JfTk9UX1NVUFBPUlRFRCBcZW1wdHlkZXNjcmlwdGlvbgorICogXHJldHZhbCAjUFNBX0VSUk9SX0lOVkFMSURfQVJHVU1FTlQgXGVtcHR5ZGVzY3JpcHRpb24KKyAqIFxyZXR2YWwgI1BTQV9FUlJPUl9JTlNVRkZJQ0lFTlRfTUVNT1JZIFxlbXB0eWRlc2NyaXB0aW9uCisgKiBccmV0dmFsICNQU0FfRVJST1JfQ09NTVVOSUNBVElPTl9GQUlMVVJFIFxlbXB0eWRlc2NyaXB0aW9uCisgKiBccmV0dmFsICNQU0FfRVJST1JfSEFSRFdBUkVfRkFJTFVSRSBcZW1wdHlkZXNjcmlwdGlvbgorICogXHJldHZhbCAjUFNBX0VSUk9SX0NPUlJVUFRJT05fREVURUNURUQgXGVtcHR5ZGVzY3JpcHRpb24KKyAqIFxyZXR2YWwgI1BTQV9FUlJPUl9TVE9SQUdFX0ZBSUxVUkUgXGVtcHR5ZGVzY3JpcHRpb24KKyAqIFxyZXR2YWwgI1BTQV9FUlJPUl9EQVRBX0NPUlJVUFQgXGVtcHR5ZGVzY3JpcHRpb24KKyAqIFxyZXR2YWwgI1BTQV9FUlJPUl9EQVRBX0lOVkFMSUQgXGVtcHR5ZGVzY3JpcHRpb24KKyAqIFxyZXR2YWwgI1BTQV9FUlJPUl9JTlNVRkZJQ0lFTlRfRU5UUk9QWSBcZW1wdHlkZXNjcmlwdGlvbgorICogXHJldHZhbCAjUFNBX0VSUk9SX0JBRF9TVEFURQorICogICAgICAgICBUaGUgbGlicmFyeSBoYXMgZWl0aGVyIG5vdCBiZWVuIHByZXZpb3VzbHkgaW5pdGlhbGl6ZWQgYnkKKyAqICAgICAgICAgcHNhX2NyeXB0b19pbml0KCkgb3IgeW91IGRpZCBub3QgcHJldmlvdXNseSBjYWxsCisgKiAgICAgICAgIHBzYV9zaWduX2hhc2hfc3RhcnQoKSB3aXRoIHRoaXMgb3BlcmF0aW9uIG9iamVjdC4gSXQgaXMKKyAqICAgICAgICAgaW1wbGVtZW50YXRpb24tZGVwZW5kZW50IHdoZXRoZXIgYSBmYWlsdXJlIHRvIGluaXRpYWxpemUgcmVzdWx0cyBpbgorICogICAgICAgICB0aGlzIGVycm9yIGNvZGUuCisgKi8KK3BzYV9zdGF0dXNfdCBwc2Ffc2lnbl9oYXNoX2NvbXBsZXRlKAorICAgIHBzYV9zaWduX2hhc2hfaW50ZXJydXB0aWJsZV9vcGVyYXRpb25fdCAqb3BlcmF0aW9uLAorICAgIHVpbnQ4X3QgKnNpZ25hdHVyZSwgc2l6ZV90IHNpZ25hdHVyZV9zaXplLAorICAgIHNpemVfdCAqc2lnbmF0dXJlX2xlbmd0aCk7CisKKy8qKgorICogXGJyaWVmICAgICAgICAgICAgICAgICAgICAgICBBYm9ydCBhIHNpZ24gaGFzaCBvcGVyYXRpb24uCisgKgorICogXHdhcm5pbmcgICAgICAgICAgICAgICAgICAgICBUaGlzIGlzIGEgYmV0YSBBUEksIGFuZCB0aHVzIHN1YmplY3QgdG8gY2hhbmdlCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF0IGFueSBwb2ludC4gSXQgaXMgbm90IGJvdW5kIGJ5IHRoZSB1c3VhbAorICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnRlcmZhY2Ugc3RhYmlsaXR5IHByb21pc2VzLgorICoKKyAqIFxub3RlICAgICAgICAgICAgICAgICAgICAgICAgVGhpcyBmdW5jdGlvbiBpcyB0aGUgb25seSBmdW5jdGlvbiB0aGF0IGNsZWFycworICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGUgbnVtYmVyIG9mIG9wcyBjb21wbGV0ZWQgYXMgcGFydCBvZiB0aGUKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3BlcmF0aW9uLiBQbGVhc2UgZW5zdXJlIHlvdSBjb3B5IHRoaXMgdmFsdWUgdmlhCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxjIHBzYV9zaWduX2hhc2hfZ2V0X251bV9vcHMoKSBpZiByZXF1aXJlZAorICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiZWZvcmUgY2FsbGluZy4KKyAqCisgKiBcbm90ZSAgICAgICAgICAgICAgICAgICAgICAgIEFib3J0aW5nIGFuIG9wZXJhdGlvbiBmcmVlcyBhbGwgYXNzb2NpYXRlZAorICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXNvdXJjZXMgZXhjZXB0IGZvciB0aGUgXHAgb3BlcmF0aW9uIHN0cnVjdHVyZQorICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpdHNlbGYuIE9uY2UgYWJvcnRlZCwgdGhlIG9wZXJhdGlvbiBvYmplY3QgY2FuCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJlIHJldXNlZCBmb3IgYW5vdGhlciBvcGVyYXRpb24gYnkgY2FsbGluZyBcYworICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwc2Ffc2lnbl9oYXNoX3N0YXJ0KCkgYWdhaW4uCisgKgorICogXG5vdGUgICAgICAgICAgICAgICAgICAgICAgICBZb3UgbWF5IGNhbGwgdGhpcyBmdW5jdGlvbiBhbnkgdGltZSBhZnRlciB0aGUKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3BlcmF0aW9uIG9iamVjdCBoYXMgYmVlbiBpbml0aWFsaXplZC4gSW4KKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFydGljdWxhciwgY2FsbGluZyBcYyBwc2Ffc2lnbl9oYXNoX2Fib3J0KCkKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWZ0ZXIgdGhlIG9wZXJhdGlvbiBoYXMgYWxyZWFkeSBiZWVuIHRlcm1pbmF0ZWQKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnkgYSBjYWxsIHRvIFxjIHBzYV9zaWduX2hhc2hfYWJvcnQoKSBvcgorICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwc2Ffc2lnbl9oYXNoX2NvbXBsZXRlKCkgaXMgc2FmZS4KKyAqCisgKiBccGFyYW1baW4sb3V0XSBvcGVyYXRpb24gICAgIEluaXRpYWxpemVkIHNpZ24gaGFzaCBvcGVyYXRpb24uCisgKgorICogXHJldHZhbCAjUFNBX1NVQ0NFU1MKKyAqICAgICAgICAgVGhlIG9wZXJhdGlvbiB3YXMgYWJvcnRlZCBzdWNjZXNzZnVsbHkuCisgKgorICogXHJldHZhbCAjUFNBX0VSUk9SX05PVF9TVVBQT1JURUQgXGVtcHR5ZGVzY3JpcHRpb24KKyAqIFxyZXR2YWwgI1BTQV9FUlJPUl9CQURfU1RBVEUKKyAqICAgICAgICAgVGhlIGxpYnJhcnkgaGFzIG5vdCBiZWVuIHByZXZpb3VzbHkgaW5pdGlhbGl6ZWQgYnkgcHNhX2NyeXB0b19pbml0KCkuCisgKiAgICAgICAgIEl0IGlzIGltcGxlbWVudGF0aW9uLWRlcGVuZGVudCB3aGV0aGVyIGEgZmFpbHVyZSB0byBpbml0aWFsaXplCisgKiAgICAgICAgIHJlc3VsdHMgaW4gdGhpcyBlcnJvciBjb2RlLgorICovCitwc2Ffc3RhdHVzX3QgcHNhX3NpZ25faGFzaF9hYm9ydCgKKyAgICBwc2Ffc2lnbl9oYXNoX2ludGVycnVwdGlibGVfb3BlcmF0aW9uX3QgKm9wZXJhdGlvbik7CisKKy8qKgorICogXGJyaWVmICAgICAgICAgICAgICAgICAgICAgICBTdGFydCByZWFkaW5nIGFuZCB2ZXJpZnlpbmcgYSBoYXNoIG9yIHNob3J0CisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1lc3NhZ2UsIGluIGFuIGludGVycnVwdGlibGUgbWFubmVyLgorICoKKyAqIFxzZWUgICAgICAgICAgICAgICAgICAgICAgICAgXGMgcHNhX3ZlcmlmeV9oYXNoX2NvbXBsZXRlKCkKKyAqCisgKiBcd2FybmluZyAgICAgICAgICAgICAgICAgICAgIFRoaXMgaXMgYSBiZXRhIEFQSSwgYW5kIHRodXMgc3ViamVjdCB0byBjaGFuZ2UKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXQgYW55IHBvaW50LiBJdCBpcyBub3QgYm91bmQgYnkgdGhlIHVzdWFsCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludGVyZmFjZSBzdGFiaWxpdHkgcHJvbWlzZXMuCisgKgorICogXG5vdGUgICAgICAgICAgICAgICAgICAgICAgICBUaGlzIGZ1bmN0aW9uIGNvbWJpbmVkIHdpdGggXGMKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHNhX3ZlcmlmeV9oYXNoX2NvbXBsZXRlKCkgaXMgZXF1aXZhbGVudCB0bworICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcYyBwc2FfdmVyaWZ5X2hhc2goKSBidXQgXGMKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHNhX3ZlcmlmeV9oYXNoX2NvbXBsZXRlKCkgY2FuIHJldHVybiBlYXJseSBhbmQKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzdW1lIGFjY29yZGluZyB0byB0aGUgbGltaXQgc2V0IHdpdGggXGMKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHNhX2ludGVycnVwdGlibGVfc2V0X21heF9vcHMoKSB0byByZWR1Y2UgdGhlCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1heGltdW0gdGltZSBzcGVudCBpbiBhIGZ1bmN0aW9uLgorICoKKyAqIFxub3RlICAgICAgICAgICAgICAgICAgICAgICAgVXNlcnMgc2hvdWxkIGNhbGwgXGMgcHNhX3ZlcmlmeV9oYXNoX2NvbXBsZXRlKCkKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVwZWF0ZWRseSBvbiB0aGUgc2FtZSBvcGVyYXRpb24gb2JqZWN0IGFmdGVyIGEKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3VjY2Vzc2Z1bCBjYWxsIHRvIHRoaXMgZnVuY3Rpb24gdW50aWwgXGMKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHNhX3ZlcmlmeV9oYXNoX2NvbXBsZXRlKCkgZWl0aGVyIHJldHVybnMgMCBvcgorICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbiBlcnJvci4gXGMgcHNhX3ZlcmlmeV9oYXNoX2NvbXBsZXRlKCkgd2lsbAorICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gI1BTQV9PUEVSQVRJT05fSU5DT01QTEVURSBpZiB0aGVyZSBpcworICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtb3JlIHdvcmsgdG8gZG8uIEFsdGVybmF0aXZlbHkgdXNlcnMgY2FuIGNhbGwKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXGMgcHNhX3ZlcmlmeV9oYXNoX2Fib3J0KCkgYXQgYW55IHBvaW50IGlmIHRoZXkKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm8gbG9uZ2VyIHdhbnQgdGhlIHJlc3VsdC4KKyAqCisgKiBcbm90ZSAgICAgICAgICAgICAgICAgICAgICAgIElmIHRoaXMgZnVuY3Rpb24gcmV0dXJucyBhbiBlcnJvciBzdGF0dXMsIHRoZQorICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcGVyYXRpb24gZW50ZXJzIGFuIGVycm9yIHN0YXRlIGFuZCBtdXN0IGJlCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFib3J0ZWQgYnkgY2FsbGluZyBcYyBwc2FfdmVyaWZ5X2hhc2hfYWJvcnQoKS4KKyAqCisgKiBccGFyYW1baW4sIG91dF0gb3BlcmF0aW9uICAgIFRoZSBcYyBwc2FfdmVyaWZ5X2hhc2hfaW50ZXJydXB0aWJsZV9vcGVyYXRpb25fdAorICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0byB1c2UuIFRoaXMgbXVzdCBiZSBpbml0aWFsaXplZCBmaXJzdC4KKyAqCisgKiBccGFyYW0ga2V5ICAgICAgICAgICAgICAgICAgIElkZW50aWZpZXIgb2YgdGhlIGtleSB0byB1c2UgZm9yIHRoZSBvcGVyYXRpb24uCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRoZSBrZXkgbXVzdCBhbGxvdyB0aGUgdXNhZ2UKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgI1BTQV9LRVlfVVNBR0VfVkVSSUZZX0hBU0guCisgKiBccGFyYW0gYWxnICAgICAgICAgICAgICAgICAgIEEgc2lnbmF0dXJlIGFsZ29yaXRobSAoXGMgUFNBX0FMR19YWFgKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgc3VjaCB0aGF0ICNQU0FfQUxHX0lTX1NJR05fSEFTSChccCBhbGcpCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzIHRydWUpLCB0aGF0IGlzIGNvbXBhdGlibGUgd2l0aAorICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGUgdHlwZSBvZiBccCBrZXkuCisgKiBccGFyYW1baW5dIGhhc2ggICAgICAgICAgICAgIFRoZSBoYXNoIHdob3NlIHNpZ25hdHVyZSBpcyB0byBiZSB2ZXJpZmllZC4KKyAqIFxwYXJhbSBoYXNoX2xlbmd0aCAgICAgICAgICAgU2l6ZSBvZiB0aGUgXHAgaGFzaCBidWZmZXIgaW4gYnl0ZXMuCisgKiBccGFyYW1baW5dIHNpZ25hdHVyZSAgICAgICAgIEJ1ZmZlciBjb250YWluaW5nIHRoZSBzaWduYXR1cmUgdG8gdmVyaWZ5LgorICogXHBhcmFtIHNpZ25hdHVyZV9sZW5ndGggICAgICBTaXplIG9mIHRoZSBccCBzaWduYXR1cmUgYnVmZmVyIGluIGJ5dGVzLgorICoKKyAqIFxyZXR2YWwgI1BTQV9TVUNDRVNTCisgKiAgICAgICAgIFRoZSBvcGVyYXRpb24gc3RhcnRlZCBzdWNjZXNzZnVsbHkgLSBwbGVhc2UgY2FsbCBcYworICogICAgICAgICBwc2FfdmVyaWZ5X2hhc2hfY29tcGxldGUoKSB3aXRoIHRoZSBzYW1lIGNvbnRleHQgdG8gY29tcGxldGUgdGhlCisgKiAgICAgICAgIG9wZXJhdGlvbi4KKyAqCisgKiBccmV0dmFsICNQU0FfRVJST1JfQkFEX1NUQVRFCisgKiAgICAgICAgIEFub3RoZXIgb3BlcmF0aW9uIGhhcyBhbHJlYWR5IGJlZW4gc3RhcnRlZCBvbiB0aGlzIGNvbnRleHQsIGFuZCBpcworICogICAgICAgICBzdGlsbCBpbiBwcm9ncmVzcy4KKyAqCisgKiBccmV0dmFsICNQU0FfRVJST1JfTk9UX1BFUk1JVFRFRAorICogICAgICAgICBUaGUga2V5IGRvZXMgbm90IGhhdmUgdGhlICNQU0FfS0VZX1VTQUdFX1ZFUklGWV9IQVNIIGZsYWcsIG9yIGl0IGRvZXMKKyAqICAgICAgICAgbm90IHBlcm1pdCB0aGUgcmVxdWVzdGVkIGFsZ29yaXRobS4KKyAqCisgKiBccmV0dmFsICNQU0FfRVJST1JfTk9UX1NVUFBPUlRFRCBcZW1wdHlkZXNjcmlwdGlvbgorICogXHJldHZhbCAjUFNBX0VSUk9SX0lOVkFMSURfQVJHVU1FTlQgXGVtcHR5ZGVzY3JpcHRpb24KKyAqIFxyZXR2YWwgI1BTQV9FUlJPUl9JTlNVRkZJQ0lFTlRfTUVNT1JZIFxlbXB0eWRlc2NyaXB0aW9uCisgKiBccmV0dmFsICNQU0FfRVJST1JfQ09NTVVOSUNBVElPTl9GQUlMVVJFIFxlbXB0eWRlc2NyaXB0aW9uCisgKiBccmV0dmFsICNQU0FfRVJST1JfSEFSRFdBUkVfRkFJTFVSRSBcZW1wdHlkZXNjcmlwdGlvbgorICogXHJldHZhbCAjUFNBX0VSUk9SX0NPUlJVUFRJT05fREVURUNURUQgXGVtcHR5ZGVzY3JpcHRpb24KKyAqIFxyZXR2YWwgI1BTQV9FUlJPUl9TVE9SQUdFX0ZBSUxVUkUgXGVtcHR5ZGVzY3JpcHRpb24KKyAqIFxyZXR2YWwgUFNBX0VSUk9SX0RBVEFfQ09SUlVQVCBcZW1wdHlkZXNjcmlwdGlvbgorICogXHJldHZhbCBQU0FfRVJST1JfREFUQV9JTlZBTElEIFxlbXB0eWRlc2NyaXB0aW9uCisgKiBccmV0dmFsICNQU0FfRVJST1JfQkFEX1NUQVRFCisgKiAgICAgICAgIFRoZSBsaWJyYXJ5IGhhcyBub3QgYmVlbiBwcmV2aW91c2x5IGluaXRpYWxpemVkIGJ5IHBzYV9jcnlwdG9faW5pdCgpLgorICogICAgICAgICBJdCBpcyBpbXBsZW1lbnRhdGlvbi1kZXBlbmRlbnQgd2hldGhlciBhIGZhaWx1cmUgdG8gaW5pdGlhbGl6ZQorICogICAgICAgICByZXN1bHRzIGluIHRoaXMgZXJyb3IgY29kZS4KKyAqLworcHNhX3N0YXR1c190IHBzYV92ZXJpZnlfaGFzaF9zdGFydCgKKyAgICBwc2FfdmVyaWZ5X2hhc2hfaW50ZXJydXB0aWJsZV9vcGVyYXRpb25fdCAqb3BlcmF0aW9uLAorICAgIG1iZWR0bHNfc3ZjX2tleV9pZF90IGtleSwgcHNhX2FsZ29yaXRobV90IGFsZywKKyAgICBjb25zdCB1aW50OF90ICpoYXNoLCBzaXplX3QgaGFzaF9sZW5ndGgsCisgICAgY29uc3QgdWludDhfdCAqc2lnbmF0dXJlLCBzaXplX3Qgc2lnbmF0dXJlX2xlbmd0aCk7CisKKy8qKgorICogXGJyaWVmICAgICAgICAgICAgICAgICAgICAgICBDb250aW51ZSBhbmQgZXZlbnR1YWxseSBjb21wbGV0ZSB0aGUgYWN0aW9uIG9mCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlYWRpbmcgYW5kIHZlcmlmeWluZyBhIGhhc2ggb3Igc2hvcnQgbWVzc2FnZQorICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaWduZWQgd2l0aCBhIHByaXZhdGUga2V5LCBpbiBhbiBpbnRlcnJ1cHRpYmxlCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hbm5lci4KKyAqCisgKiBcc2VlICAgICAgICAgICAgICAgICAgICAgICAgIFxjIHBzYV92ZXJpZnlfaGFzaF9zdGFydCgpCisgKgorICogXHdhcm5pbmcgICAgICAgICAgICAgICAgICAgICBUaGlzIGlzIGEgYmV0YSBBUEksIGFuZCB0aHVzIHN1YmplY3QgdG8gY2hhbmdlCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF0IGFueSBwb2ludC4gSXQgaXMgbm90IGJvdW5kIGJ5IHRoZSB1c3VhbAorICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnRlcmZhY2Ugc3RhYmlsaXR5IHByb21pc2VzLgorICoKKyAqIFxub3RlICAgICAgICAgICAgICAgICAgICAgICAgVGhpcyBmdW5jdGlvbiBjb21iaW5lZCB3aXRoIFxjCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBzYV92ZXJpZnlfaGFzaF9zdGFydCgpIGlzIGVxdWl2YWxlbnQgdG8KKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXGMgcHNhX3ZlcmlmeV9oYXNoKCkgYnV0IHRoaXMgZnVuY3Rpb24gY2FuCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBlYXJseSBhbmQgcmVzdW1lIGFjY29yZGluZyB0byB0aGUgbGltaXQKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0IHdpdGggXGMgcHNhX2ludGVycnVwdGlibGVfc2V0X21heF9vcHMoKSB0bworICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWR1Y2UgdGhlIG1heGltdW0gdGltZSBzcGVudCBpbiBhIGZ1bmN0aW9uCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhbGwuCisgKgorICogXG5vdGUgICAgICAgICAgICAgICAgICAgICAgICBVc2VycyBzaG91bGQgY2FsbCB0aGlzIGZ1bmN0aW9uIG9uIHRoZSBzYW1lCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wZXJhdGlvbiBvYmplY3QgcmVwZWF0ZWRseSB1bnRpbCBpdCBlaXRoZXIKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJucyAwIG9yIGFuIGVycm9yLiBUaGlzIGZ1bmN0aW9uIHdpbGwgcmV0dXJuCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICNQU0FfT1BFUkFUSU9OX0lOQ09NUExFVEUgaWYgdGhlcmUgaXMgbW9yZSB3b3JrCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvIGRvLiBBbHRlcm5hdGl2ZWx5IHVzZXJzIGNhbiBjYWxsCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxjIHBzYV92ZXJpZnlfaGFzaF9hYm9ydCgpIGF0IGFueSBwb2ludCBpZiB0aGV5CisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vIGxvbmdlciB3YW50IHRoZSByZXN1bHQuCisgKgorICogXG5vdGUgICAgICAgICAgICAgICAgICAgICAgICBXaGVuIHRoaXMgZnVuY3Rpb24gcmV0dXJucyBzdWNjZXNzZnVsbHksIHRoZQorICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcGVyYXRpb24gYmVjb21lcyBpbmFjdGl2ZS4gSWYgdGhpcyBmdW5jdGlvbgorICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm5zIGFuIGVycm9yIHN0YXR1cywgdGhlIG9wZXJhdGlvbiBlbnRlcnMgYW4KKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3Igc3RhdGUgYW5kIG11c3QgYmUgYWJvcnRlZCBieSBjYWxsaW5nCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxjIHBzYV92ZXJpZnlfaGFzaF9hYm9ydCgpLgorICoKKyAqIFxwYXJhbVtpbiwgb3V0XSBvcGVyYXRpb24gICAgVGhlIFxjIHBzYV92ZXJpZnlfaGFzaF9pbnRlcnJ1cHRpYmxlX29wZXJhdGlvbl90CisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvIHVzZS4gVGhpcyBtdXN0IGJlIGluaXRpYWxpemVkIGZpcnN0LCBhbmQgaGF2ZQorICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYWQgXGMgcHNhX3ZlcmlmeV9oYXNoX3N0YXJ0KCkgY2FsbGVkIHdpdGggaXQKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlyc3QuCisgKgorICogXHJldHZhbCAjUFNBX1NVQ0NFU1MKKyAqICAgICAgICAgT3BlcmF0aW9uIGNvbXBsZXRlZCBzdWNjZXNzZnVsbHksIGFuZCB0aGUgcGFzc2VkIHNpZ25hdHVyZSBpcyB2YWxpZC4KKyAqCisgKiBccmV0dmFsICNQU0FfT1BFUkFUSU9OX0lOQ09NUExFVEUKKyAqICAgICAgICAgT3BlcmF0aW9uIHdhcyBpbnRlcnJ1cHRlZCBkdWUgdG8gdGhlIHNldHRpbmcgb2YgXGMKKyAqICAgICAgICAgcHNhX2ludGVycnVwdGlibGVfc2V0X21heF9vcHMoKS4gVGhlcmUgaXMgc3RpbGwgd29yayB0byBiZSBkb25lLgorICogICAgICAgICBDYWxsIHRoaXMgZnVuY3Rpb24gYWdhaW4gd2l0aCB0aGUgc2FtZSBvcGVyYXRpb24gb2JqZWN0LgorICoKKyAqIFxyZXR2YWwgI1BTQV9FUlJPUl9JTlZBTElEX0hBTkRMRSBcZW1wdHlkZXNjcmlwdGlvbgorICogXHJldHZhbCAjUFNBX0VSUk9SX0lOVkFMSURfU0lHTkFUVVJFCisgKiAgICAgICAgIFRoZSBjYWxjdWxhdGlvbiB3YXMgcGVyZm9ybWVkIHN1Y2Nlc3NmdWxseSwgYnV0IHRoZSBwYXNzZWQKKyAqICAgICAgICAgc2lnbmF0dXJlIGlzIG5vdCBhIHZhbGlkIHNpZ25hdHVyZS4KKyAqIFxyZXR2YWwgI1BTQV9FUlJPUl9CQURfU1RBVEUKKyAqICAgICAgICAgQW4gb3BlcmF0aW9uIHdhcyBub3QgcHJldmlvdXNseSBzdGFydGVkIG9uIHRoaXMgY29udGV4dCB2aWEKKyAqICAgICAgICAgXGMgcHNhX3ZlcmlmeV9oYXNoX3N0YXJ0KCkuCisgKiBccmV0dmFsICNQU0FfRVJST1JfTk9UX1NVUFBPUlRFRCBcZW1wdHlkZXNjcmlwdGlvbgorICogXHJldHZhbCAjUFNBX0VSUk9SX0lOVkFMSURfQVJHVU1FTlQgXGVtcHR5ZGVzY3JpcHRpb24KKyAqIFxyZXR2YWwgI1BTQV9FUlJPUl9JTlNVRkZJQ0lFTlRfTUVNT1JZIFxlbXB0eWRlc2NyaXB0aW9uCisgKiBccmV0dmFsICNQU0FfRVJST1JfQ09NTVVOSUNBVElPTl9GQUlMVVJFIFxlbXB0eWRlc2NyaXB0aW9uCisgKiBccmV0dmFsICNQU0FfRVJST1JfSEFSRFdBUkVfRkFJTFVSRSBcZW1wdHlkZXNjcmlwdGlvbgorICogXHJldHZhbCAjUFNBX0VSUk9SX0NPUlJVUFRJT05fREVURUNURUQgXGVtcHR5ZGVzY3JpcHRpb24KKyAqIFxyZXR2YWwgI1BTQV9FUlJPUl9TVE9SQUdFX0ZBSUxVUkUgXGVtcHR5ZGVzY3JpcHRpb24KKyAqIFxyZXR2YWwgI1BTQV9FUlJPUl9EQVRBX0NPUlJVUFQgXGVtcHR5ZGVzY3JpcHRpb24KKyAqIFxyZXR2YWwgI1BTQV9FUlJPUl9EQVRBX0lOVkFMSUQgXGVtcHR5ZGVzY3JpcHRpb24KKyAqIFxyZXR2YWwgI1BTQV9FUlJPUl9JTlNVRkZJQ0lFTlRfRU5UUk9QWSBcZW1wdHlkZXNjcmlwdGlvbgorICogXHJldHZhbCAjUFNBX0VSUk9SX0JBRF9TVEFURQorICogICAgICAgICBUaGUgbGlicmFyeSBoYXMgZWl0aGVyIG5vdCBiZWVuIHByZXZpb3VzbHkgaW5pdGlhbGl6ZWQgYnkKKyAqICAgICAgICAgcHNhX2NyeXB0b19pbml0KCkgb3IgeW91IGRpZCBub3QgcHJldmlvdXNseSBjYWxsCisgKiAgICAgICAgIHBzYV92ZXJpZnlfaGFzaF9zdGFydCgpIG9uIHRoaXMgb2JqZWN0LiBJdCBpcworICogICAgICAgICBpbXBsZW1lbnRhdGlvbi1kZXBlbmRlbnQgd2hldGhlciBhIGZhaWx1cmUgdG8gaW5pdGlhbGl6ZSByZXN1bHRzIGluCisgKiAgICAgICAgIHRoaXMgZXJyb3IgY29kZS4KKyAqLworcHNhX3N0YXR1c190IHBzYV92ZXJpZnlfaGFzaF9jb21wbGV0ZSgKKyAgICBwc2FfdmVyaWZ5X2hhc2hfaW50ZXJydXB0aWJsZV9vcGVyYXRpb25fdCAqb3BlcmF0aW9uKTsKKworLyoqCisgKiBcYnJpZWYgICAgICAgICAgICAgICAgICAgICBBYm9ydCBhIHZlcmlmeSBoYXNoIG9wZXJhdGlvbi4KKyAqCisgKiBcd2FybmluZyAgICAgICAgICAgICAgICAgICBUaGlzIGlzIGEgYmV0YSBBUEksIGFuZCB0aHVzIHN1YmplY3QgdG8gY2hhbmdlIGF0CisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbnkgcG9pbnQuIEl0IGlzIG5vdCBib3VuZCBieSB0aGUgdXN1YWwgaW50ZXJmYWNlCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFiaWxpdHkgcHJvbWlzZXMuCisgKgorICogXG5vdGUgICAgICAgICAgICAgICAgICAgICAgVGhpcyBmdW5jdGlvbiBpcyB0aGUgb25seSBmdW5jdGlvbiB0aGF0IGNsZWFycyB0aGUKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgIG51bWJlciBvZiBvcHMgY29tcGxldGVkIGFzIHBhcnQgb2YgdGhlIG9wZXJhdGlvbi4KKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBsZWFzZSBlbnN1cmUgeW91IGNvcHkgdGhpcyB2YWx1ZSB2aWEKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxjIHBzYV92ZXJpZnlfaGFzaF9nZXRfbnVtX29wcygpIGlmIHJlcXVpcmVkCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICBiZWZvcmUgY2FsbGluZy4KKyAqCisgKiBcbm90ZSAgICAgICAgICAgICAgICAgICAgICBBYm9ydGluZyBhbiBvcGVyYXRpb24gZnJlZXMgYWxsIGFzc29jaWF0ZWQKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc291cmNlcyBleGNlcHQgZm9yIHRoZSBvcGVyYXRpb24gc3RydWN0dXJlCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpdHNlbGYuIE9uY2UgYWJvcnRlZCwgdGhlIG9wZXJhdGlvbiBvYmplY3QgY2FuIGJlCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXVzZWQgZm9yIGFub3RoZXIgb3BlcmF0aW9uIGJ5IGNhbGxpbmcgXGMKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBzYV92ZXJpZnlfaGFzaF9zdGFydCgpIGFnYWluLgorICoKKyAqIFxub3RlICAgICAgICAgICAgICAgICAgICAgIFlvdSBtYXkgY2FsbCB0aGlzIGZ1bmN0aW9uIGFueSB0aW1lIGFmdGVyIHRoZQorICogICAgICAgICAgICAgICAgICAgICAgICAgICAgb3BlcmF0aW9uIG9iamVjdCBoYXMgYmVlbiBpbml0aWFsaXplZC4KKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgIEluIHBhcnRpY3VsYXIsIGNhbGxpbmcgXGMgcHNhX3ZlcmlmeV9oYXNoX2Fib3J0KCkKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFmdGVyIHRoZSBvcGVyYXRpb24gaGFzIGFscmVhZHkgYmVlbiB0ZXJtaW5hdGVkIGJ5CisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhIGNhbGwgdG8gXGMgcHNhX3ZlcmlmeV9oYXNoX2Fib3J0KCkgb3IKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBzYV92ZXJpZnlfaGFzaF9jb21wbGV0ZSgpIGlzIHNhZmUuCisgKgorICogXHBhcmFtW2luLG91dF0gb3BlcmF0aW9uICAgSW5pdGlhbGl6ZWQgdmVyaWZ5IGhhc2ggb3BlcmF0aW9uLgorICoKKyAqIFxyZXR2YWwgI1BTQV9TVUNDRVNTCisgKiAgICAgICAgIFRoZSBvcGVyYXRpb24gd2FzIGFib3J0ZWQgc3VjY2Vzc2Z1bGx5LgorICoKKyAqIFxyZXR2YWwgI1BTQV9FUlJPUl9OT1RfU1VQUE9SVEVEIFxlbXB0eWRlc2NyaXB0aW9uCisgKiBccmV0dmFsICNQU0FfRVJST1JfQkFEX1NUQVRFCisgKiAgICAgICAgIFRoZSBsaWJyYXJ5IGhhcyBub3QgYmVlbiBwcmV2aW91c2x5IGluaXRpYWxpemVkIGJ5IHBzYV9jcnlwdG9faW5pdCgpLgorICogICAgICAgICBJdCBpcyBpbXBsZW1lbnRhdGlvbi1kZXBlbmRlbnQgd2hldGhlciBhIGZhaWx1cmUgdG8gaW5pdGlhbGl6ZQorICogICAgICAgICByZXN1bHRzIGluIHRoaXMgZXJyb3IgY29kZS4KKyAqLworcHNhX3N0YXR1c190IHBzYV92ZXJpZnlfaGFzaF9hYm9ydCgKKyAgICBwc2FfdmVyaWZ5X2hhc2hfaW50ZXJydXB0aWJsZV9vcGVyYXRpb25fdCAqb3BlcmF0aW9uKTsKKworLyoqIE1ha2UgYSBjb3B5IG9mIGEga2V5LgorICoKKyAqIENvcHkga2V5IG1hdGVyaWFsIGZyb20gb25lIGxvY2F0aW9uIHRvIGFub3RoZXIuCisgKgorICogVGhpcyBmdW5jdGlvbiBpcyBwcmltYXJpbHkgdXNlZnVsIHRvIGNvcHkgYSBrZXkgZnJvbSBvbmUgbG9jYXRpb24KKyAqIHRvIGFub3RoZXIsIHNpbmNlIGl0IHBvcHVsYXRlcyBhIGtleSB1c2luZyB0aGUgbWF0ZXJpYWwgZnJvbQorICogYW5vdGhlciBrZXkgd2hpY2ggbWF5IGhhdmUgYSBkaWZmZXJlbnQgbGlmZXRpbWUuCisgKgorICogVGhpcyBmdW5jdGlvbiBtYXkgYmUgdXNlZCB0byBzaGFyZSBhIGtleSB3aXRoIGEgZGlmZmVyZW50IHBhcnR5LAorICogc3ViamVjdCB0byBpbXBsZW1lbnRhdGlvbi1kZWZpbmVkIHJlc3RyaWN0aW9ucyBvbiBrZXkgc2hhcmluZy4KKyAqCisgKiBUaGUgcG9saWN5IG9uIHRoZSBzb3VyY2Uga2V5IG11c3QgaGF2ZSB0aGUgdXNhZ2UgZmxhZworICogI1BTQV9LRVlfVVNBR0VfQ09QWSBzZXQuCisgKiBUaGlzIGZsYWcgaXMgc3VmZmljaWVudCB0byBwZXJtaXQgdGhlIGNvcHkgaWYgdGhlIGtleSBoYXMgdGhlIGxpZmV0aW1lCisgKiAjUFNBX0tFWV9MSUZFVElNRV9WT0xBVElMRSBvciAjUFNBX0tFWV9MSUZFVElNRV9QRVJTSVNURU5ULgorICogU29tZSBzZWN1cmUgZWxlbWVudHMgZG8gbm90IHByb3ZpZGUgYSB3YXkgdG8gY29weSBhIGtleSB3aXRob3V0CisgKiBtYWtpbmcgaXQgZXh0cmFjdGFibGUgZnJvbSB0aGUgc2VjdXJlIGVsZW1lbnQuIElmIGEga2V5IGlzIGxvY2F0ZWQKKyAqIGluIHN1Y2ggYSBzZWN1cmUgZWxlbWVudCwgdGhlbiB0aGUga2V5IG11c3QgaGF2ZSBib3RoIHVzYWdlIGZsYWdzCisgKiAjUFNBX0tFWV9VU0FHRV9DT1BZIGFuZCAjUFNBX0tFWV9VU0FHRV9FWFBPUlQgaW4gb3JkZXIgdG8gbWFrZQorICogYSBjb3B5IG9mIHRoZSBrZXkgb3V0c2lkZSB0aGUgc2VjdXJlIGVsZW1lbnQuCisgKgorICogVGhlIHJlc3VsdGluZyBrZXkgbWF5IG9ubHkgYmUgdXNlZCBpbiBhIHdheSB0aGF0IGNvbmZvcm1zIHRvCisgKiBib3RoIHRoZSBwb2xpY3kgb2YgdGhlIG9yaWdpbmFsIGtleSBhbmQgdGhlIHBvbGljeSBzcGVjaWZpZWQgaW4KKyAqIHRoZSBccCBhdHRyaWJ1dGVzIHBhcmFtZXRlcjoKKyAqIC0gVGhlIHVzYWdlIGZsYWdzIG9uIHRoZSByZXN1bHRpbmcga2V5IGFyZSB0aGUgYml0d2lzZS1hbmQgb2YgdGhlCisgKiAgIHVzYWdlIGZsYWdzIG9uIHRoZSBzb3VyY2UgcG9saWN5IGFuZCB0aGUgdXNhZ2UgZmxhZ3MgaW4gXHAgYXR0cmlidXRlcy4KKyAqIC0gSWYgYm90aCBhbGxvdyB0aGUgc2FtZSBhbGdvcml0aG0gb3Igd2lsZGNhcmQtYmFzZWQKKyAqICAgYWxnb3JpdGhtIHBvbGljeSwgdGhlIHJlc3VsdGluZyBrZXkgaGFzIHRoZSBzYW1lIGFsZ29yaXRobSBwb2xpY3kuCisgKiAtIElmIGVpdGhlciBvZiB0aGUgcG9saWNpZXMgYWxsb3dzIGFuIGFsZ29yaXRobSBhbmQgdGhlIG90aGVyIHBvbGljeQorICogICBhbGxvd3MgYSB3aWxkY2FyZC1iYXNlZCBhbGdvcml0aG0gcG9saWN5IHRoYXQgaW5jbHVkZXMgdGhpcyBhbGdvcml0aG0sCisgKiAgIHRoZSByZXN1bHRpbmcga2V5IGFsbG93cyB0aGUgc2FtZSBhbGdvcml0aG0uCisgKiAtIElmIHRoZSBwb2xpY2llcyBkbyBub3QgYWxsb3cgYW55IGFsZ29yaXRobSBpbiBjb21tb24sIHRoaXMgZnVuY3Rpb24KKyAqICAgZmFpbHMgd2l0aCB0aGUgc3RhdHVzICNQU0FfRVJST1JfSU5WQUxJRF9BUkdVTUVOVC4KKyAqCisgKiBUaGUgZWZmZWN0IG9mIHRoaXMgZnVuY3Rpb24gb24gaW1wbGVtZW50YXRpb24tZGVmaW5lZCBhdHRyaWJ1dGVzIGlzCisgKiBpbXBsZW1lbnRhdGlvbi1kZWZpbmVkLgorICoKKyAqIFxwYXJhbSBzb3VyY2Vfa2V5ICAgICAgICBUaGUga2V5IHRvIGNvcHkuIEl0IG11c3QgYWxsb3cgdGhlIHVzYWdlCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgI1BTQV9LRVlfVVNBR0VfQ09QWS4gSWYgYSBwcml2YXRlIG9yIHNlY3JldCBrZXkgaXMKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICBiZWluZyBjb3BpZWQgb3V0c2lkZSBvZiBhIHNlY3VyZSBlbGVtZW50IGl0IG11c3QKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICBhbHNvIGFsbG93ICNQU0FfS0VZX1VTQUdFX0VYUE9SVC4KKyAqIFxwYXJhbVtpbl0gYXR0cmlidXRlcyAgICBUaGUgYXR0cmlidXRlcyBmb3IgdGhlIG5ldyBrZXkuCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgVGhleSBhcmUgdXNlZCBhcyBmb2xsb3dzOgorICogICAgICAgICAgICAgICAgICAgICAgICAgIC0gVGhlIGtleSB0eXBlIGFuZCBzaXplIG1heSBiZSAwLiBJZiBlaXRoZXIgaXMKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbnplcm8sIGl0IG11c3QgbWF0Y2ggdGhlIGNvcnJlc3BvbmRpbmcKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBvZiB0aGUgc291cmNlIGtleS4KKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAtIFRoZSBrZXkgbG9jYXRpb24gKHRoZSBsaWZldGltZSBhbmQsIGZvcgorICogICAgICAgICAgICAgICAgICAgICAgICAgICAgcGVyc2lzdGVudCBrZXlzLCB0aGUga2V5IGlkZW50aWZpZXIpIGlzCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICB1c2VkIGRpcmVjdGx5LgorICogICAgICAgICAgICAgICAgICAgICAgICAgIC0gVGhlIHBvbGljeSBjb25zdHJhaW50cyAodXNhZ2UgZmxhZ3MgYW5kCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbGdvcml0aG0gcG9saWN5KSBhcmUgY29tYmluZWQgZnJvbQorICogICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlIHNvdXJjZSBrZXkgYW5kIFxwIGF0dHJpYnV0ZXMgc28gdGhhdAorICogICAgICAgICAgICAgICAgICAgICAgICAgICAgYm90aCBzZXRzIG9mIHJlc3RyaWN0aW9ucyBhcHBseSwgYXMKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlc2NyaWJlZCBpbiB0aGUgZG9jdW1lbnRhdGlvbiBvZiB0aGlzIGZ1bmN0aW9uLgorICogXHBhcmFtW291dF0gdGFyZ2V0X2tleSAgIE9uIHN1Y2Nlc3MsIGFuIGlkZW50aWZpZXIgZm9yIHRoZSBuZXdseSBjcmVhdGVkCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAga2V5LiBGb3IgcGVyc2lzdGVudCBrZXlzLCB0aGlzIGlzIHRoZSBrZXkKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICBpZGVudGlmaWVyIGRlZmluZWQgaW4gXHAgYXR0cmlidXRlcy4KKyAqICAgICAgICAgICAgICAgICAgICAgICAgICBcYyAwIG9uIGZhaWx1cmUuCisgKgorICogXHJldHZhbCAjUFNBX1NVQ0NFU1MgXGVtcHR5ZGVzY3JpcHRpb24KKyAqIFxyZXR2YWwgI1BTQV9FUlJPUl9JTlZBTElEX0hBTkRMRQorICogICAgICAgICBccCBzb3VyY2Vfa2V5IGlzIGludmFsaWQuCisgKiBccmV0dmFsICNQU0FfRVJST1JfQUxSRUFEWV9FWElTVFMKKyAqICAgICAgICAgVGhpcyBpcyBhbiBhdHRlbXB0IHRvIGNyZWF0ZSBhIHBlcnNpc3RlbnQga2V5LCBhbmQgdGhlcmUgaXMKKyAqICAgICAgICAgYWxyZWFkeSBhIHBlcnNpc3RlbnQga2V5IHdpdGggdGhlIGdpdmVuIGlkZW50aWZpZXIuCisgKiBccmV0dmFsICNQU0FfRVJST1JfSU5WQUxJRF9BUkdVTUVOVAorICogICAgICAgICBUaGUgbGlmZXRpbWUgb3IgaWRlbnRpZmllciBpbiBccCBhdHRyaWJ1dGVzIGFyZSBpbnZhbGlkLCBvcgorICogICAgICAgICB0aGUgcG9saWN5IGNvbnN0cmFpbnRzIG9uIHRoZSBzb3VyY2UgYW5kIHNwZWNpZmllZCBpbgorICogICAgICAgICBccCBhdHRyaWJ1dGVzIGFyZSBpbmNvbXBhdGlibGUsIG9yCisgKiAgICAgICAgIFxwIGF0dHJpYnV0ZXMgc3BlY2lmaWVzIGEga2V5IHR5cGUgb3Iga2V5IHNpemUKKyAqICAgICAgICAgd2hpY2ggZG9lcyBub3QgbWF0Y2ggdGhlIGF0dHJpYnV0ZXMgb2YgdGhlIHNvdXJjZSBrZXkuCisgKiBccmV0dmFsICNQU0FfRVJST1JfTk9UX1BFUk1JVFRFRAorICogICAgICAgICBUaGUgc291cmNlIGtleSBkb2VzIG5vdCBoYXZlIHRoZSAjUFNBX0tFWV9VU0FHRV9DT1BZIHVzYWdlIGZsYWcsIG9yCisgKiAgICAgICAgIHRoZSBzb3VyY2Uga2V5IGlzIG5vdCBleHBvcnRhYmxlIGFuZCBpdHMgbGlmZXRpbWUgZG9lcyBub3QKKyAqICAgICAgICAgYWxsb3cgY29weWluZyBpdCB0byB0aGUgdGFyZ2V0J3MgbGlmZXRpbWUuCisgKiBccmV0dmFsICNQU0FfRVJST1JfSU5TVUZGSUNJRU5UX01FTU9SWSBcZW1wdHlkZXNjcmlwdGlvbgorICogXHJldHZhbCAjUFNBX0VSUk9SX0lOU1VGRklDSUVOVF9TVE9SQUdFIFxlbXB0eWRlc2NyaXB0aW9uCisgKiBccmV0dmFsICNQU0FfRVJST1JfQ09NTVVOSUNBVElPTl9GQUlMVVJFIFxlbXB0eWRlc2NyaXB0aW9uCisgKiBccmV0dmFsICNQU0FfRVJST1JfSEFSRFdBUkVfRkFJTFVSRSBcZW1wdHlkZXNjcmlwdGlvbgorICogXHJldHZhbCAjUFNBX0VSUk9SX0RBVEFfSU5WQUxJRCBcZW1wdHlkZXNjcmlwdGlvbgorICogXHJldHZhbCAjUFNBX0VSUk9SX0RBVEFfQ09SUlVQVCBcZW1wdHlkZXNjcmlwdGlvbgorICogXHJldHZhbCAjUFNBX0VSUk9SX1NUT1JBR0VfRkFJTFVSRSBcZW1wdHlkZXNjcmlwdGlvbgorICogXHJldHZhbCAjUFNBX0VSUk9SX0NPUlJVUFRJT05fREVURUNURUQgXGVtcHR5ZGVzY3JpcHRpb24KKyAqIFxyZXR2YWwgI1BTQV9FUlJPUl9CQURfU1RBVEUKKyAqICAgICAgICAgVGhlIGxpYnJhcnkgaGFzIG5vdCBiZWVuIHByZXZpb3VzbHkgaW5pdGlhbGl6ZWQgYnkgcHNhX2NyeXB0b19pbml0KCkuCisgKiAgICAgICAgIEl0IGlzIGltcGxlbWVudGF0aW9uLWRlcGVuZGVudCB3aGV0aGVyIGEgZmFpbHVyZSB0byBpbml0aWFsaXplCisgKiAgICAgICAgIHJlc3VsdHMgaW4gdGhpcyBlcnJvciBjb2RlLgorICovCitwc2Ffc3RhdHVzX3QgcHNhX2NvcHlfa2V5KG1iZWR0bHNfc3ZjX2tleV9pZF90IHNvdXJjZV9rZXksCisgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHBzYV9rZXlfYXR0cmlidXRlc190ICphdHRyaWJ1dGVzLAorICAgICAgICAgICAgICAgICAgICAgICAgICBtYmVkdGxzX3N2Y19rZXlfaWRfdCAqdGFyZ2V0X2tleSk7CisKKy8qKiBSZXNldCBhIGtleSBhdHRyaWJ1dGUgc3RydWN0dXJlIHRvIGEgZnJlc2hseSBpbml0aWFsaXplZCBzdGF0ZS4KKyAqCisgKiBZb3UgbXVzdCBpbml0aWFsaXplIHRoZSBhdHRyaWJ1dGUgc3RydWN0dXJlIGFzIGRlc2NyaWJlZCBpbiB0aGUKKyAqIGRvY3VtZW50YXRpb24gb2YgdGhlIHR5cGUgI3BzYV9rZXlfYXR0cmlidXRlc190IGJlZm9yZSBjYWxsaW5nIHRoaXMKKyAqIGZ1bmN0aW9uLiBPbmNlIHRoZSBzdHJ1Y3R1cmUgaGFzIGJlZW4gaW5pdGlhbGl6ZWQsIHlvdSBtYXkgY2FsbCB0aGlzCisgKiBmdW5jdGlvbiBhdCBhbnkgdGltZS4KKyAqCisgKiBUaGlzIGZ1bmN0aW9uIGZyZWVzIGFueSBhdXhpbGlhcnkgcmVzb3VyY2VzIHRoYXQgdGhlIHN0cnVjdHVyZQorICogbWF5IGNvbnRhaW4uCisgKgorICogXHBhcmFtW2luLG91dF0gYXR0cmlidXRlcyAgICBUaGUgYXR0cmlidXRlIHN0cnVjdHVyZSB0byByZXNldC4KKyAqLwordm9pZCBwc2FfcmVzZXRfa2V5X2F0dHJpYnV0ZXMocHNhX2tleV9hdHRyaWJ1dGVzX3QgKmF0dHJpYnV0ZXMpOwpkaWZmIC0tZ2l0IGEvdGVzdHMvcHNhLWNsaWVudC1zZXJ2ZXIvcHNhc2ltL3NyYy9wc2Ffc2ltX3NlcmlhbGlzZS5jIGIvdGVzdHMvcHNhLWNsaWVudC1zZXJ2ZXIvcHNhc2ltL3NyYy9wc2Ffc2ltX3NlcmlhbGlzZS5jCmluZGV4IDY1MWUwNDYuLjkyZWNkZDIgMTAwNjQ0Ci0tLSBhL3Rlc3RzL3BzYS1jbGllbnQtc2VydmVyL3BzYXNpbS9zcmMvcHNhX3NpbV9zZXJpYWxpc2UuYworKysgYi90ZXN0cy9wc2EtY2xpZW50LXNlcnZlci9wc2FzaW0vc3JjL3BzYV9zaW1fc2VyaWFsaXNlLmMKQEAgLTYzLDggKzYzLDEwIEBACiAKICNkZWZpbmUgTUFYX0xJVkVfSEFORExFU19QRVJfQ0xBU1MgICAxMDAgICAgICAgIC8qIHRoaXMgbWFueSBzbG90cyAqLwogCi1zdGF0aWMgcHNhX2hhc2hfb3BlcmF0aW9uX3QgaGFzaF9vcGVyYXRpb25zW01BWF9MSVZFX0hBTkRMRVNfUEVSX0NMQVNTXTsKLXN0YXRpYyBwc2FzaW1fY2xpZW50X2hhbmRsZV90IGhhc2hfb3BlcmF0aW9uX2hhbmRsZXNbTUFYX0xJVkVfSEFORExFU19QRVJfQ0xBU1NdOworc3RhdGljIHBzYV9oYXNoX29wZXJhdGlvbl90IGhhc2hfb3BlcmF0aW9uc1sKKyAgICBNQVhfTElWRV9IQU5ETEVTX1BFUl9DTEFTU107CitzdGF0aWMgcHNhc2ltX2NsaWVudF9oYW5kbGVfdCBoYXNoX29wZXJhdGlvbl9oYW5kbGVzWworICAgIE1BWF9MSVZFX0hBTkRMRVNfUEVSX0NMQVNTXTsKIHN0YXRpYyBwc2FzaW1fY2xpZW50X2hhbmRsZV90IG5leHRfaGFzaF9vcGVyYXRpb25faGFuZGxlID0gMTsKIAogLyogR2V0IGEgZnJlZSBzbG90ICovCkBAIC0xMDEsOCArMTAzLDEwIEBACiAgICAgcmV0dXJuIC0xOyAgLyogbm90IGZvdW5kICovCiB9CiAKLXN0YXRpYyBwc2FfYWVhZF9vcGVyYXRpb25fdCBhZWFkX29wZXJhdGlvbnNbTUFYX0xJVkVfSEFORExFU19QRVJfQ0xBU1NdOwotc3RhdGljIHBzYXNpbV9jbGllbnRfaGFuZGxlX3QgYWVhZF9vcGVyYXRpb25faGFuZGxlc1tNQVhfTElWRV9IQU5ETEVTX1BFUl9DTEFTU107CitzdGF0aWMgcHNhX2FlYWRfb3BlcmF0aW9uX3QgYWVhZF9vcGVyYXRpb25zWworICAgIE1BWF9MSVZFX0hBTkRMRVNfUEVSX0NMQVNTXTsKK3N0YXRpYyBwc2FzaW1fY2xpZW50X2hhbmRsZV90IGFlYWRfb3BlcmF0aW9uX2hhbmRsZXNbCisgICAgTUFYX0xJVkVfSEFORExFU19QRVJfQ0xBU1NdOwogc3RhdGljIHBzYXNpbV9jbGllbnRfaGFuZGxlX3QgbmV4dF9hZWFkX29wZXJhdGlvbl9oYW5kbGUgPSAxOwogCiAvKiBHZXQgYSBmcmVlIHNsb3QgKi8KQEAgLTEzOSw2ICsxNDMsMjA2IEBACiAgICAgcmV0dXJuIC0xOyAgLyogbm90IGZvdW5kICovCiB9CiAKK3N0YXRpYyBwc2FfbWFjX29wZXJhdGlvbl90IG1hY19vcGVyYXRpb25zWworICAgIE1BWF9MSVZFX0hBTkRMRVNfUEVSX0NMQVNTXTsKK3N0YXRpYyBwc2FzaW1fY2xpZW50X2hhbmRsZV90IG1hY19vcGVyYXRpb25faGFuZGxlc1sKKyAgICBNQVhfTElWRV9IQU5ETEVTX1BFUl9DTEFTU107CitzdGF0aWMgcHNhc2ltX2NsaWVudF9oYW5kbGVfdCBuZXh0X21hY19vcGVyYXRpb25faGFuZGxlID0gMTsKKworLyogR2V0IGEgZnJlZSBzbG90ICovCitzdGF0aWMgc3NpemVfdCBhbGxvY2F0ZV9tYWNfb3BlcmF0aW9uX3Nsb3Qodm9pZCkKK3sKKyAgICBwc2FzaW1fY2xpZW50X2hhbmRsZV90IGhhbmRsZSA9IG5leHRfbWFjX29wZXJhdGlvbl9oYW5kbGUrKzsKKyAgICBpZiAobmV4dF9tYWNfb3BlcmF0aW9uX2hhbmRsZSA9PSAwKSB7ICAgICAgLyogd3JhcHBlZCBhcm91bmQgKi8KKyAgICAgICAgRkFUQUwoIk1hYyBvcGVyYXRpb24gaGFuZGxlIHdyYXBwZWQiKTsKKyAgICB9CisKKyAgICBmb3IgKHNzaXplX3QgaSA9IDA7IGkgPCBNQVhfTElWRV9IQU5ETEVTX1BFUl9DTEFTUzsgaSsrKSB7CisgICAgICAgIGlmIChtYWNfb3BlcmF0aW9uX2hhbmRsZXNbaV0gPT0gMCkgeworICAgICAgICAgICAgbWFjX29wZXJhdGlvbl9oYW5kbGVzW2ldID0gaGFuZGxlOworICAgICAgICAgICAgcmV0dXJuIGk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBFUlJPUigiQWxsIHNsb3RzIGFyZSBjdXJyZW50bHkgdXNlZC4gVW5hYmxlIHRvIGFsbG9jYXRlIGEgbmV3IG9uZS4iKTsKKworICAgIHJldHVybiAtMTsgIC8qIGFsbCBpbiB1c2UgKi8KK30KKworLyogRmluZCB0aGUgc2xvdCBnaXZlbiB0aGUgaGFuZGxlICovCitzdGF0aWMgc3NpemVfdCBmaW5kX21hY19zbG90X2J5X2hhbmRsZShwc2FzaW1fY2xpZW50X2hhbmRsZV90IGhhbmRsZSkKK3sKKyAgICBmb3IgKHNzaXplX3QgaSA9IDA7IGkgPCBNQVhfTElWRV9IQU5ETEVTX1BFUl9DTEFTUzsgaSsrKSB7CisgICAgICAgIGlmIChtYWNfb3BlcmF0aW9uX2hhbmRsZXNbaV0gPT0gaGFuZGxlKSB7CisgICAgICAgICAgICByZXR1cm4gaTsKKyAgICAgICAgfQorICAgIH0KKworICAgIEVSUk9SKCJVbmFibGUgdG8gZmluZCBzbG90IGJ5IGhhbmRsZSAldSIsIGhhbmRsZSk7CisKKyAgICByZXR1cm4gLTE7ICAvKiBub3QgZm91bmQgKi8KK30KKworc3RhdGljIHBzYV9jaXBoZXJfb3BlcmF0aW9uX3QgY2lwaGVyX29wZXJhdGlvbnNbCisgICAgTUFYX0xJVkVfSEFORExFU19QRVJfQ0xBU1NdOworc3RhdGljIHBzYXNpbV9jbGllbnRfaGFuZGxlX3QgY2lwaGVyX29wZXJhdGlvbl9oYW5kbGVzWworICAgIE1BWF9MSVZFX0hBTkRMRVNfUEVSX0NMQVNTXTsKK3N0YXRpYyBwc2FzaW1fY2xpZW50X2hhbmRsZV90IG5leHRfY2lwaGVyX29wZXJhdGlvbl9oYW5kbGUgPSAxOworCisvKiBHZXQgYSBmcmVlIHNsb3QgKi8KK3N0YXRpYyBzc2l6ZV90IGFsbG9jYXRlX2NpcGhlcl9vcGVyYXRpb25fc2xvdCh2b2lkKQoreworICAgIHBzYXNpbV9jbGllbnRfaGFuZGxlX3QgaGFuZGxlID0gbmV4dF9jaXBoZXJfb3BlcmF0aW9uX2hhbmRsZSsrOworICAgIGlmIChuZXh0X2NpcGhlcl9vcGVyYXRpb25faGFuZGxlID09IDApIHsgICAgICAvKiB3cmFwcGVkIGFyb3VuZCAqLworICAgICAgICBGQVRBTCgiQ2lwaGVyIG9wZXJhdGlvbiBoYW5kbGUgd3JhcHBlZCIpOworICAgIH0KKworICAgIGZvciAoc3NpemVfdCBpID0gMDsgaSA8IE1BWF9MSVZFX0hBTkRMRVNfUEVSX0NMQVNTOyBpKyspIHsKKyAgICAgICAgaWYgKGNpcGhlcl9vcGVyYXRpb25faGFuZGxlc1tpXSA9PSAwKSB7CisgICAgICAgICAgICBjaXBoZXJfb3BlcmF0aW9uX2hhbmRsZXNbaV0gPSBoYW5kbGU7CisgICAgICAgICAgICByZXR1cm4gaTsKKyAgICAgICAgfQorICAgIH0KKworICAgIEVSUk9SKCJBbGwgc2xvdHMgYXJlIGN1cnJlbnRseSB1c2VkLiBVbmFibGUgdG8gYWxsb2NhdGUgYSBuZXcgb25lLiIpOworCisgICAgcmV0dXJuIC0xOyAgLyogYWxsIGluIHVzZSAqLworfQorCisvKiBGaW5kIHRoZSBzbG90IGdpdmVuIHRoZSBoYW5kbGUgKi8KK3N0YXRpYyBzc2l6ZV90IGZpbmRfY2lwaGVyX3Nsb3RfYnlfaGFuZGxlKHBzYXNpbV9jbGllbnRfaGFuZGxlX3QgaGFuZGxlKQoreworICAgIGZvciAoc3NpemVfdCBpID0gMDsgaSA8IE1BWF9MSVZFX0hBTkRMRVNfUEVSX0NMQVNTOyBpKyspIHsKKyAgICAgICAgaWYgKGNpcGhlcl9vcGVyYXRpb25faGFuZGxlc1tpXSA9PSBoYW5kbGUpIHsKKyAgICAgICAgICAgIHJldHVybiBpOworICAgICAgICB9CisgICAgfQorCisgICAgRVJST1IoIlVuYWJsZSB0byBmaW5kIHNsb3QgYnkgaGFuZGxlICV1IiwgaGFuZGxlKTsKKworICAgIHJldHVybiAtMTsgIC8qIG5vdCBmb3VuZCAqLworfQorCitzdGF0aWMgcHNhX2tleV9kZXJpdmF0aW9uX29wZXJhdGlvbl90IGtleV9kZXJpdmF0aW9uX29wZXJhdGlvbnNbCisgICAgTUFYX0xJVkVfSEFORExFU19QRVJfQ0xBU1NdOworc3RhdGljIHBzYXNpbV9jbGllbnRfaGFuZGxlX3Qga2V5X2Rlcml2YXRpb25fb3BlcmF0aW9uX2hhbmRsZXNbCisgICAgTUFYX0xJVkVfSEFORExFU19QRVJfQ0xBU1NdOworc3RhdGljIHBzYXNpbV9jbGllbnRfaGFuZGxlX3QgbmV4dF9rZXlfZGVyaXZhdGlvbl9vcGVyYXRpb25faGFuZGxlID0gMTsKKworLyogR2V0IGEgZnJlZSBzbG90ICovCitzdGF0aWMgc3NpemVfdCBhbGxvY2F0ZV9rZXlfZGVyaXZhdGlvbl9vcGVyYXRpb25fc2xvdCh2b2lkKQoreworICAgIHBzYXNpbV9jbGllbnRfaGFuZGxlX3QgaGFuZGxlID0gbmV4dF9rZXlfZGVyaXZhdGlvbl9vcGVyYXRpb25faGFuZGxlKys7CisgICAgaWYgKG5leHRfa2V5X2Rlcml2YXRpb25fb3BlcmF0aW9uX2hhbmRsZSA9PSAwKSB7ICAgICAgLyogd3JhcHBlZCBhcm91bmQgKi8KKyAgICAgICAgRkFUQUwoIktleV9kZXJpdmF0aW9uIG9wZXJhdGlvbiBoYW5kbGUgd3JhcHBlZCIpOworICAgIH0KKworICAgIGZvciAoc3NpemVfdCBpID0gMDsgaSA8IE1BWF9MSVZFX0hBTkRMRVNfUEVSX0NMQVNTOyBpKyspIHsKKyAgICAgICAgaWYgKGtleV9kZXJpdmF0aW9uX29wZXJhdGlvbl9oYW5kbGVzW2ldID09IDApIHsKKyAgICAgICAgICAgIGtleV9kZXJpdmF0aW9uX29wZXJhdGlvbl9oYW5kbGVzW2ldID0gaGFuZGxlOworICAgICAgICAgICAgcmV0dXJuIGk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBFUlJPUigiQWxsIHNsb3RzIGFyZSBjdXJyZW50bHkgdXNlZC4gVW5hYmxlIHRvIGFsbG9jYXRlIGEgbmV3IG9uZS4iKTsKKworICAgIHJldHVybiAtMTsgIC8qIGFsbCBpbiB1c2UgKi8KK30KKworLyogRmluZCB0aGUgc2xvdCBnaXZlbiB0aGUgaGFuZGxlICovCitzdGF0aWMgc3NpemVfdCBmaW5kX2tleV9kZXJpdmF0aW9uX3Nsb3RfYnlfaGFuZGxlKHBzYXNpbV9jbGllbnRfaGFuZGxlX3QgaGFuZGxlKQoreworICAgIGZvciAoc3NpemVfdCBpID0gMDsgaSA8IE1BWF9MSVZFX0hBTkRMRVNfUEVSX0NMQVNTOyBpKyspIHsKKyAgICAgICAgaWYgKGtleV9kZXJpdmF0aW9uX29wZXJhdGlvbl9oYW5kbGVzW2ldID09IGhhbmRsZSkgeworICAgICAgICAgICAgcmV0dXJuIGk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBFUlJPUigiVW5hYmxlIHRvIGZpbmQgc2xvdCBieSBoYW5kbGUgJXUiLCBoYW5kbGUpOworCisgICAgcmV0dXJuIC0xOyAgLyogbm90IGZvdW5kICovCit9CisKK3N0YXRpYyBwc2Ffc2lnbl9oYXNoX2ludGVycnVwdGlibGVfb3BlcmF0aW9uX3Qgc2lnbl9oYXNoX2ludGVycnVwdGlibGVfb3BlcmF0aW9uc1sKKyAgICBNQVhfTElWRV9IQU5ETEVTX1BFUl9DTEFTU107CitzdGF0aWMgcHNhc2ltX2NsaWVudF9oYW5kbGVfdCBzaWduX2hhc2hfaW50ZXJydXB0aWJsZV9vcGVyYXRpb25faGFuZGxlc1sKKyAgICBNQVhfTElWRV9IQU5ETEVTX1BFUl9DTEFTU107CitzdGF0aWMgcHNhc2ltX2NsaWVudF9oYW5kbGVfdCBuZXh0X3NpZ25faGFzaF9pbnRlcnJ1cHRpYmxlX29wZXJhdGlvbl9oYW5kbGUgPSAxOworCisvKiBHZXQgYSBmcmVlIHNsb3QgKi8KK3N0YXRpYyBzc2l6ZV90IGFsbG9jYXRlX3NpZ25faGFzaF9pbnRlcnJ1cHRpYmxlX29wZXJhdGlvbl9zbG90KHZvaWQpCit7CisgICAgcHNhc2ltX2NsaWVudF9oYW5kbGVfdCBoYW5kbGUgPSBuZXh0X3NpZ25faGFzaF9pbnRlcnJ1cHRpYmxlX29wZXJhdGlvbl9oYW5kbGUrKzsKKyAgICBpZiAobmV4dF9zaWduX2hhc2hfaW50ZXJydXB0aWJsZV9vcGVyYXRpb25faGFuZGxlID09IDApIHsgICAgICAvKiB3cmFwcGVkIGFyb3VuZCAqLworICAgICAgICBGQVRBTCgiU2lnbl9oYXNoX2ludGVycnVwdGlibGUgb3BlcmF0aW9uIGhhbmRsZSB3cmFwcGVkIik7CisgICAgfQorCisgICAgZm9yIChzc2l6ZV90IGkgPSAwOyBpIDwgTUFYX0xJVkVfSEFORExFU19QRVJfQ0xBU1M7IGkrKykgeworICAgICAgICBpZiAoc2lnbl9oYXNoX2ludGVycnVwdGlibGVfb3BlcmF0aW9uX2hhbmRsZXNbaV0gPT0gMCkgeworICAgICAgICAgICAgc2lnbl9oYXNoX2ludGVycnVwdGlibGVfb3BlcmF0aW9uX2hhbmRsZXNbaV0gPSBoYW5kbGU7CisgICAgICAgICAgICByZXR1cm4gaTsKKyAgICAgICAgfQorICAgIH0KKworICAgIEVSUk9SKCJBbGwgc2xvdHMgYXJlIGN1cnJlbnRseSB1c2VkLiBVbmFibGUgdG8gYWxsb2NhdGUgYSBuZXcgb25lLiIpOworCisgICAgcmV0dXJuIC0xOyAgLyogYWxsIGluIHVzZSAqLworfQorCisvKiBGaW5kIHRoZSBzbG90IGdpdmVuIHRoZSBoYW5kbGUgKi8KK3N0YXRpYyBzc2l6ZV90IGZpbmRfc2lnbl9oYXNoX2ludGVycnVwdGlibGVfc2xvdF9ieV9oYW5kbGUocHNhc2ltX2NsaWVudF9oYW5kbGVfdCBoYW5kbGUpCit7CisgICAgZm9yIChzc2l6ZV90IGkgPSAwOyBpIDwgTUFYX0xJVkVfSEFORExFU19QRVJfQ0xBU1M7IGkrKykgeworICAgICAgICBpZiAoc2lnbl9oYXNoX2ludGVycnVwdGlibGVfb3BlcmF0aW9uX2hhbmRsZXNbaV0gPT0gaGFuZGxlKSB7CisgICAgICAgICAgICByZXR1cm4gaTsKKyAgICAgICAgfQorICAgIH0KKworICAgIEVSUk9SKCJVbmFibGUgdG8gZmluZCBzbG90IGJ5IGhhbmRsZSAldSIsIGhhbmRsZSk7CisKKyAgICByZXR1cm4gLTE7ICAvKiBub3QgZm91bmQgKi8KK30KKworc3RhdGljIHBzYV92ZXJpZnlfaGFzaF9pbnRlcnJ1cHRpYmxlX29wZXJhdGlvbl90IHZlcmlmeV9oYXNoX2ludGVycnVwdGlibGVfb3BlcmF0aW9uc1sKKyAgICBNQVhfTElWRV9IQU5ETEVTX1BFUl9DTEFTU107CitzdGF0aWMgcHNhc2ltX2NsaWVudF9oYW5kbGVfdCB2ZXJpZnlfaGFzaF9pbnRlcnJ1cHRpYmxlX29wZXJhdGlvbl9oYW5kbGVzWworICAgIE1BWF9MSVZFX0hBTkRMRVNfUEVSX0NMQVNTXTsKK3N0YXRpYyBwc2FzaW1fY2xpZW50X2hhbmRsZV90IG5leHRfdmVyaWZ5X2hhc2hfaW50ZXJydXB0aWJsZV9vcGVyYXRpb25faGFuZGxlID0gMTsKKworLyogR2V0IGEgZnJlZSBzbG90ICovCitzdGF0aWMgc3NpemVfdCBhbGxvY2F0ZV92ZXJpZnlfaGFzaF9pbnRlcnJ1cHRpYmxlX29wZXJhdGlvbl9zbG90KHZvaWQpCit7CisgICAgcHNhc2ltX2NsaWVudF9oYW5kbGVfdCBoYW5kbGUgPSBuZXh0X3ZlcmlmeV9oYXNoX2ludGVycnVwdGlibGVfb3BlcmF0aW9uX2hhbmRsZSsrOworICAgIGlmIChuZXh0X3ZlcmlmeV9oYXNoX2ludGVycnVwdGlibGVfb3BlcmF0aW9uX2hhbmRsZSA9PSAwKSB7ICAgICAgLyogd3JhcHBlZCBhcm91bmQgKi8KKyAgICAgICAgRkFUQUwoIlZlcmlmeV9oYXNoX2ludGVycnVwdGlibGUgb3BlcmF0aW9uIGhhbmRsZSB3cmFwcGVkIik7CisgICAgfQorCisgICAgZm9yIChzc2l6ZV90IGkgPSAwOyBpIDwgTUFYX0xJVkVfSEFORExFU19QRVJfQ0xBU1M7IGkrKykgeworICAgICAgICBpZiAodmVyaWZ5X2hhc2hfaW50ZXJydXB0aWJsZV9vcGVyYXRpb25faGFuZGxlc1tpXSA9PSAwKSB7CisgICAgICAgICAgICB2ZXJpZnlfaGFzaF9pbnRlcnJ1cHRpYmxlX29wZXJhdGlvbl9oYW5kbGVzW2ldID0gaGFuZGxlOworICAgICAgICAgICAgcmV0dXJuIGk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBFUlJPUigiQWxsIHNsb3RzIGFyZSBjdXJyZW50bHkgdXNlZC4gVW5hYmxlIHRvIGFsbG9jYXRlIGEgbmV3IG9uZS4iKTsKKworICAgIHJldHVybiAtMTsgIC8qIGFsbCBpbiB1c2UgKi8KK30KKworLyogRmluZCB0aGUgc2xvdCBnaXZlbiB0aGUgaGFuZGxlICovCitzdGF0aWMgc3NpemVfdCBmaW5kX3ZlcmlmeV9oYXNoX2ludGVycnVwdGlibGVfc2xvdF9ieV9oYW5kbGUocHNhc2ltX2NsaWVudF9oYW5kbGVfdCBoYW5kbGUpCit7CisgICAgZm9yIChzc2l6ZV90IGkgPSAwOyBpIDwgTUFYX0xJVkVfSEFORExFU19QRVJfQ0xBU1M7IGkrKykgeworICAgICAgICBpZiAodmVyaWZ5X2hhc2hfaW50ZXJydXB0aWJsZV9vcGVyYXRpb25faGFuZGxlc1tpXSA9PSBoYW5kbGUpIHsKKyAgICAgICAgICAgIHJldHVybiBpOworICAgICAgICB9CisgICAgfQorCisgICAgRVJST1IoIlVuYWJsZSB0byBmaW5kIHNsb3QgYnkgaGFuZGxlICV1IiwgaGFuZGxlKTsKKworICAgIHJldHVybiAtMTsgIC8qIG5vdCBmb3VuZCAqLworfQorCiBzaXplX3QgcHNhc2ltX3NlcmlhbGlzZV9iZWdpbl9uZWVkcyh2b2lkKQogewogICAgIC8qIFRoZSBzZXJpYWxpc2F0aW9uIGJ1ZmZlciB3aWxsCkBAIC0yMTMsNyArNDE3LDggQEAKICAgICByZXR1cm4gMTsKIH0KIAotc2l6ZV90IHBzYXNpbV9zZXJpYWxpc2VfdW5zaWduZWRfaW50X25lZWRzKHVuc2lnbmVkIGludCB2YWx1ZSkKK3NpemVfdCBwc2FzaW1fc2VyaWFsaXNlX3Vuc2lnbmVkX2ludF9uZWVkcygKKyAgICB1bnNpZ25lZCBpbnQgdmFsdWUpCiB7CiAgICAgcmV0dXJuIHNpemVvZih2YWx1ZSk7CiB9CkBAIC0yNDgsNyArNDUzLDggQEAKICAgICByZXR1cm4gMTsKIH0KIAotc2l6ZV90IHBzYXNpbV9zZXJpYWxpc2VfaW50X25lZWRzKGludCB2YWx1ZSkKK3NpemVfdCBwc2FzaW1fc2VyaWFsaXNlX2ludF9uZWVkcygKKyAgICBpbnQgdmFsdWUpCiB7CiAgICAgcmV0dXJuIHNpemVvZih2YWx1ZSk7CiB9CkBAIC0yODMsNyArNDg5LDggQEAKICAgICByZXR1cm4gMTsKIH0KIAotc2l6ZV90IHBzYXNpbV9zZXJpYWxpc2Vfc2l6ZV90X25lZWRzKHNpemVfdCB2YWx1ZSkKK3NpemVfdCBwc2FzaW1fc2VyaWFsaXNlX3NpemVfdF9uZWVkcygKKyAgICBzaXplX3QgdmFsdWUpCiB7CiAgICAgcmV0dXJuIHNpemVvZih2YWx1ZSk7CiB9CkBAIC0zMTgsNiArNTI1LDExNCBAQAogICAgIHJldHVybiAxOwogfQogCitzaXplX3QgcHNhc2ltX3NlcmlhbGlzZV91aW50MTZfdF9uZWVkcygKKyAgICB1aW50MTZfdCB2YWx1ZSkKK3sKKyAgICByZXR1cm4gc2l6ZW9mKHZhbHVlKTsKK30KKworaW50IHBzYXNpbV9zZXJpYWxpc2VfdWludDE2X3QodWludDhfdCAqKnBvcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCAqcmVtYWluaW5nLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDE2X3QgdmFsdWUpCit7CisgICAgaWYgKCpyZW1haW5pbmcgPCBzaXplb2YodmFsdWUpKSB7CisgICAgICAgIHJldHVybiAwOworICAgIH0KKworICAgIG1lbWNweSgqcG9zLCAmdmFsdWUsIHNpemVvZih2YWx1ZSkpOworICAgICpwb3MgKz0gc2l6ZW9mKHZhbHVlKTsKKworICAgIHJldHVybiAxOworfQorCitpbnQgcHNhc2ltX2Rlc2VyaWFsaXNlX3VpbnQxNl90KHVpbnQ4X3QgKipwb3MsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCAqcmVtYWluaW5nLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50MTZfdCAqdmFsdWUpCit7CisgICAgaWYgKCpyZW1haW5pbmcgPCBzaXplb2YoKnZhbHVlKSkgeworICAgICAgICByZXR1cm4gMDsKKyAgICB9CisKKyAgICBtZW1jcHkodmFsdWUsICpwb3MsIHNpemVvZigqdmFsdWUpKTsKKworICAgICpwb3MgKz0gc2l6ZW9mKCp2YWx1ZSk7CisgICAgKnJlbWFpbmluZyAtPSBzaXplb2YoKnZhbHVlKTsKKworICAgIHJldHVybiAxOworfQorCitzaXplX3QgcHNhc2ltX3NlcmlhbGlzZV91aW50MzJfdF9uZWVkcygKKyAgICB1aW50MzJfdCB2YWx1ZSkKK3sKKyAgICByZXR1cm4gc2l6ZW9mKHZhbHVlKTsKK30KKworaW50IHBzYXNpbV9zZXJpYWxpc2VfdWludDMyX3QodWludDhfdCAqKnBvcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCAqcmVtYWluaW5nLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDMyX3QgdmFsdWUpCit7CisgICAgaWYgKCpyZW1haW5pbmcgPCBzaXplb2YodmFsdWUpKSB7CisgICAgICAgIHJldHVybiAwOworICAgIH0KKworICAgIG1lbWNweSgqcG9zLCAmdmFsdWUsIHNpemVvZih2YWx1ZSkpOworICAgICpwb3MgKz0gc2l6ZW9mKHZhbHVlKTsKKworICAgIHJldHVybiAxOworfQorCitpbnQgcHNhc2ltX2Rlc2VyaWFsaXNlX3VpbnQzMl90KHVpbnQ4X3QgKipwb3MsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCAqcmVtYWluaW5nLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCAqdmFsdWUpCit7CisgICAgaWYgKCpyZW1haW5pbmcgPCBzaXplb2YoKnZhbHVlKSkgeworICAgICAgICByZXR1cm4gMDsKKyAgICB9CisKKyAgICBtZW1jcHkodmFsdWUsICpwb3MsIHNpemVvZigqdmFsdWUpKTsKKworICAgICpwb3MgKz0gc2l6ZW9mKCp2YWx1ZSk7CisgICAgKnJlbWFpbmluZyAtPSBzaXplb2YoKnZhbHVlKTsKKworICAgIHJldHVybiAxOworfQorCitzaXplX3QgcHNhc2ltX3NlcmlhbGlzZV91aW50NjRfdF9uZWVkcygKKyAgICB1aW50NjRfdCB2YWx1ZSkKK3sKKyAgICByZXR1cm4gc2l6ZW9mKHZhbHVlKTsKK30KKworaW50IHBzYXNpbV9zZXJpYWxpc2VfdWludDY0X3QodWludDhfdCAqKnBvcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCAqcmVtYWluaW5nLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDY0X3QgdmFsdWUpCit7CisgICAgaWYgKCpyZW1haW5pbmcgPCBzaXplb2YodmFsdWUpKSB7CisgICAgICAgIHJldHVybiAwOworICAgIH0KKworICAgIG1lbWNweSgqcG9zLCAmdmFsdWUsIHNpemVvZih2YWx1ZSkpOworICAgICpwb3MgKz0gc2l6ZW9mKHZhbHVlKTsKKworICAgIHJldHVybiAxOworfQorCitpbnQgcHNhc2ltX2Rlc2VyaWFsaXNlX3VpbnQ2NF90KHVpbnQ4X3QgKipwb3MsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCAqcmVtYWluaW5nLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50NjRfdCAqdmFsdWUpCit7CisgICAgaWYgKCpyZW1haW5pbmcgPCBzaXplb2YoKnZhbHVlKSkgeworICAgICAgICByZXR1cm4gMDsKKyAgICB9CisKKyAgICBtZW1jcHkodmFsdWUsICpwb3MsIHNpemVvZigqdmFsdWUpKTsKKworICAgICpwb3MgKz0gc2l6ZW9mKCp2YWx1ZSk7CisgICAgKnJlbWFpbmluZyAtPSBzaXplb2YoKnZhbHVlKTsKKworICAgIHJldHVybiAxOworfQorCiBzaXplX3QgcHNhc2ltX3NlcmlhbGlzZV9idWZmZXJfbmVlZHMoY29uc3QgdWludDhfdCAqYnVmZmVyLCBzaXplX3QgYnVmZmVyX3NpemUpCiB7CiAgICAgKHZvaWQpIGJ1ZmZlcjsKQEAgLTQyMCw3ICs3MzUsMTAyIEBACiAgICAgcmV0dXJuIDE7CiB9CiAKLXNpemVfdCBwc2FzaW1fc2VyaWFsaXNlX3BzYV9zdGF0dXNfdF9uZWVkcyhwc2Ffc3RhdHVzX3QgdmFsdWUpCisjZGVmaW5lIFNFUl9UQUdfU0laRSAgICAgICAgNAorCitzaXplX3QgcHNhc2ltX3NlcmlhbGlzZV9wc2Ffa2V5X3Byb2R1Y3Rpb25fcGFyYW1ldGVyc190X25lZWRzKAorICAgIGNvbnN0IHBzYV9rZXlfcHJvZHVjdGlvbl9wYXJhbWV0ZXJzX3QgKnBhcmFtcywKKyAgICBzaXplX3QgZGF0YV9sZW5ndGgpCit7CisgICAgLyogV2Ugd2lsbCBzZXJpYWxpc2Ugd2l0aCA0LWJ5dGUgdGFnID0gIlBLUFAiICsgNC1ieXRlIG92ZXJhbGwgbGVuZ3RoIGF0IHRoZSBiZWdpbm5pbmcsCisgICAgICogZm9sbG93ZWQgYnkgc2l6ZV90IGRhdGFfbGVuZ3RoLCB0aGVuIHRoZSBhY3R1YWwgZGF0YSBmcm9tIHRoZSBzdHJ1Y3R1cmUuCisgICAgICovCisgICAgcmV0dXJuIFNFUl9UQUdfU0laRSArIHNpemVvZih1aW50MzJfdCkgKyBzaXplb2YoZGF0YV9sZW5ndGgpICsgc2l6ZW9mKCpwYXJhbXMpICsgZGF0YV9sZW5ndGg7Cit9CisKK2ludCBwc2FzaW1fc2VyaWFsaXNlX3BzYV9rZXlfcHJvZHVjdGlvbl9wYXJhbWV0ZXJzX3QodWludDhfdCAqKnBvcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90ICpyZW1haW5pbmcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHBzYV9rZXlfcHJvZHVjdGlvbl9wYXJhbWV0ZXJzX3QgKnBhcmFtcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IGRhdGFfbGVuZ3RoKQoreworICAgIGlmIChkYXRhX2xlbmd0aCA+IFVJTlQzMl9NQVggLyAyKSB7ICAgICAgIC8qIGFyYml0cmFyeSBsaW1pdCAqLworICAgICAgICByZXR1cm4gMDsgICAgICAgLyogdG9vIGJpZyB0byBzZXJpYWxpc2UgKi8KKyAgICB9CisKKyAgICAvKiBXZSB1c2UgMzItYml0IGxlbmd0aHMsIHdoaWNoIHNob3VsZCBiZSBlbm91Z2ggZm9yIGFueSByZWFzb25hYmxlIHVzYWdlIDopICovCisgICAgLyogKHRoZSBVSU5UMzJfTUFYIC8gMiBhYm92ZSBpcyBhbiBldmVuIG1vcmUgY29uc2VydmF0aXZlIGNoZWNrIHRvIGF2b2lkIG92ZXJmbG93IGhlcmUpICovCisgICAgdWludDMyX3QgbGVuID0gKHVpbnQzMl90KSAoc2l6ZW9mKGRhdGFfbGVuZ3RoKSArIHNpemVvZigqcGFyYW1zKSArIGRhdGFfbGVuZ3RoKTsKKyAgICBpZiAoKnJlbWFpbmluZyA8IFNFUl9UQUdfU0laRSArIHNpemVvZih1aW50MzJfdCkgKyBsZW4pIHsKKyAgICAgICAgcmV0dXJuIDA7CisgICAgfQorCisgICAgY2hhciB0YWdbU0VSX1RBR19TSVpFXSA9ICJQS1BQIjsKKworICAgIG1lbWNweSgqcG9zLCB0YWcsIHNpemVvZih0YWcpKTsKKyAgICBtZW1jcHkoKnBvcyArIHNpemVvZih0YWcpLCAmbGVuLCBzaXplb2YobGVuKSk7CisgICAgKnBvcyArPSBzaXplb2YodGFnKSArIHNpemVvZihsZW4pOworICAgICpyZW1haW5pbmcgLT0gc2l6ZW9mKHRhZykgKyBzaXplb2YobGVuKTsKKworICAgIG1lbWNweSgqcG9zLCAmZGF0YV9sZW5ndGgsIHNpemVvZihkYXRhX2xlbmd0aCkpOworICAgIG1lbWNweSgqcG9zICsgc2l6ZW9mKGRhdGFfbGVuZ3RoKSwgcGFyYW1zLCBzaXplb2YoKnBhcmFtcykgKyBkYXRhX2xlbmd0aCk7CisgICAgKnBvcyArPSBzaXplb2YoZGF0YV9sZW5ndGgpICsgc2l6ZW9mKCpwYXJhbXMpICsgZGF0YV9sZW5ndGg7CisgICAgKnJlbWFpbmluZyAtPSBzaXplb2YoZGF0YV9sZW5ndGgpICsgc2l6ZW9mKCpwYXJhbXMpICsgZGF0YV9sZW5ndGg7CisKKyAgICByZXR1cm4gMTsKK30KKworaW50IHBzYXNpbV9kZXNlcmlhbGlzZV9wc2Ffa2V5X3Byb2R1Y3Rpb25fcGFyYW1ldGVyc190KHVpbnQ4X3QgKipwb3MsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90ICpyZW1haW5pbmcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHNhX2tleV9wcm9kdWN0aW9uX3BhcmFtZXRlcnNfdCAqKnBhcmFtcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgKmRhdGFfbGVuZ3RoKQoreworICAgIGlmICgqcmVtYWluaW5nIDwgU0VSX1RBR19TSVpFICsgc2l6ZW9mKHVpbnQzMl90KSkgeworICAgICAgICByZXR1cm4gMDsgICAgICAgLyogY2FuJ3QgZXZlbiBiZSBhbiBlbXB0eSBzZXJpYWxpc2F0aW9uICovCisgICAgfQorCisgICAgY2hhciB0YWdbU0VSX1RBR19TSVpFXSA9ICJQS1BQIjsgICAgLyogZXhwZWN0ZWQgKi8KKyAgICB1aW50MzJfdCBsZW47CisKKyAgICBtZW1jcHkoJmxlbiwgKnBvcyArIHNpemVvZih0YWcpLCBzaXplb2YobGVuKSk7CisKKyAgICBpZiAobWVtY21wKCpwb3MsIHRhZywgc2l6ZW9mKHRhZykpICE9IDApIHsKKyAgICAgICAgcmV0dXJuIDA7ICAgICAgIC8qIHdyb25nIHRhZyAqLworICAgIH0KKworICAgICpwb3MgKz0gc2l6ZW9mKHRhZykgKyBzaXplb2YobGVuKTsKKyAgICAqcmVtYWluaW5nIC09IHNpemVvZih0YWcpICsgc2l6ZW9mKGxlbik7CisKKyAgICBpZiAoKnJlbWFpbmluZyA8IHNpemVvZigqZGF0YV9sZW5ndGgpKSB7CisgICAgICAgIHJldHVybiAwOyAgICAgICAvKiBtaXNzaW5nIGRhdGFfbGVuZ3RoICovCisgICAgfQorICAgIG1lbWNweShkYXRhX2xlbmd0aCwgKnBvcywgc2l6ZW9mKCpkYXRhX2xlbmd0aCkpOworCisgICAgaWYgKChzaXplX3QpIGxlbiAhPSAoc2l6ZW9mKGRhdGFfbGVuZ3RoKSArIHNpemVvZigqKnBhcmFtcykgKyAqZGF0YV9sZW5ndGgpKSB7CisgICAgICAgIHJldHVybiAwOyAgICAgICAvKiB3cm9uZyBsZW5ndGggKi8KKyAgICB9CisKKyAgICBpZiAoKnJlbWFpbmluZyA8IHNpemVvZigqZGF0YV9sZW5ndGgpICsgc2l6ZW9mKCoqcGFyYW1zKSArICpkYXRhX2xlbmd0aCkgeworICAgICAgICByZXR1cm4gMDsgICAgICAgLyogbm90IGVub3VnaCBkYXRhIHByb3ZpZGVkICovCisgICAgfQorCisgICAgKnBvcyArPSBzaXplb2YoZGF0YV9sZW5ndGgpOworICAgICpyZW1haW5pbmcgLT0gc2l6ZW9mKGRhdGFfbGVuZ3RoKTsKKworICAgIHBzYV9rZXlfcHJvZHVjdGlvbl9wYXJhbWV0ZXJzX3QgKm91dCA9IG1hbGxvYyhzaXplb2YoKipwYXJhbXMpICsgKmRhdGFfbGVuZ3RoKTsKKyAgICBpZiAob3V0ID09IE5VTEwpIHsKKyAgICAgICAgcmV0dXJuIDA7ICAgICAgIC8qIGFsbG9jYXRpb24gZmFpbHVyZSAqLworICAgIH0KKworICAgIG1lbWNweShvdXQsICpwb3MsIHNpemVvZigqb3V0KSArICpkYXRhX2xlbmd0aCk7CisgICAgKnBvcyArPSBzaXplb2YoKm91dCkgKyAqZGF0YV9sZW5ndGg7CisgICAgKnJlbWFpbmluZyAtPSBzaXplb2YoKm91dCkgKyAqZGF0YV9sZW5ndGg7CisKKyAgICAqcGFyYW1zID0gb3V0OworCisgICAgcmV0dXJuIDE7Cit9CisKK3NpemVfdCBwc2FzaW1fc2VyaWFsaXNlX3BzYV9zdGF0dXNfdF9uZWVkcygKKyAgICBwc2Ffc3RhdHVzX3QgdmFsdWUpCiB7CiAgICAgcmV0dXJuIHBzYXNpbV9zZXJpYWxpc2VfaW50X25lZWRzKHZhbHVlKTsKIH0KQEAgLTQzOSw3ICs4NDksOCBAQAogICAgIHJldHVybiBwc2FzaW1fZGVzZXJpYWxpc2VfaW50KHBvcywgcmVtYWluaW5nLCB2YWx1ZSk7CiB9CiAKLXNpemVfdCBwc2FzaW1fc2VyaWFsaXNlX3BzYV9hbGdvcml0aG1fdF9uZWVkcyhwc2FfYWxnb3JpdGhtX3QgdmFsdWUpCitzaXplX3QgcHNhc2ltX3NlcmlhbGlzZV9wc2FfYWxnb3JpdGhtX3RfbmVlZHMoCisgICAgcHNhX2FsZ29yaXRobV90IHZhbHVlKQogewogICAgIHJldHVybiBwc2FzaW1fc2VyaWFsaXNlX3Vuc2lnbmVkX2ludF9uZWVkcyh2YWx1ZSk7CiB9CkBAIC00NTgsNyArODY5LDI4IEBACiAgICAgcmV0dXJuIHBzYXNpbV9kZXNlcmlhbGlzZV91bnNpZ25lZF9pbnQocG9zLCByZW1haW5pbmcsIHZhbHVlKTsKIH0KIAotc2l6ZV90IHBzYXNpbV9zZXJpYWxpc2VfcHNhX2hhc2hfb3BlcmF0aW9uX3RfbmVlZHMocHNhX2hhc2hfb3BlcmF0aW9uX3QgdmFsdWUpCitzaXplX3QgcHNhc2ltX3NlcmlhbGlzZV9wc2Ffa2V5X2Rlcml2YXRpb25fc3RlcF90X25lZWRzKAorICAgIHBzYV9rZXlfZGVyaXZhdGlvbl9zdGVwX3QgdmFsdWUpCit7CisgICAgcmV0dXJuIHBzYXNpbV9zZXJpYWxpc2VfdWludDE2X3RfbmVlZHModmFsdWUpOworfQorCitpbnQgcHNhc2ltX3NlcmlhbGlzZV9wc2Ffa2V5X2Rlcml2YXRpb25fc3RlcF90KHVpbnQ4X3QgKipwb3MsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCAqcmVtYWluaW5nLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwc2Ffa2V5X2Rlcml2YXRpb25fc3RlcF90IHZhbHVlKQoreworICAgIHJldHVybiBwc2FzaW1fc2VyaWFsaXNlX3VpbnQxNl90KHBvcywgcmVtYWluaW5nLCB2YWx1ZSk7Cit9CisKK2ludCBwc2FzaW1fZGVzZXJpYWxpc2VfcHNhX2tleV9kZXJpdmF0aW9uX3N0ZXBfdCh1aW50OF90ICoqcG9zLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCAqcmVtYWluaW5nLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBzYV9rZXlfZGVyaXZhdGlvbl9zdGVwX3QgKnZhbHVlKQoreworICAgIHJldHVybiBwc2FzaW1fZGVzZXJpYWxpc2VfdWludDE2X3QocG9zLCByZW1haW5pbmcsIHZhbHVlKTsKK30KKworc2l6ZV90IHBzYXNpbV9zZXJpYWxpc2VfcHNhX2hhc2hfb3BlcmF0aW9uX3RfbmVlZHMoCisgICAgcHNhX2hhc2hfb3BlcmF0aW9uX3QgdmFsdWUpCiB7CiAgICAgcmV0dXJuIHNpemVvZih2YWx1ZSk7CiB9CkBAIC00OTMsNyArOTI1LDggQEAKICAgICByZXR1cm4gMTsKIH0KIAotc2l6ZV90IHBzYXNpbV9zZXJ2ZXJfc2VyaWFsaXNlX3BzYV9oYXNoX29wZXJhdGlvbl90X25lZWRzKHBzYV9oYXNoX29wZXJhdGlvbl90ICpvcGVyYXRpb24pCitzaXplX3QgcHNhc2ltX3NlcnZlcl9zZXJpYWxpc2VfcHNhX2hhc2hfb3BlcmF0aW9uX3RfbmVlZHMoCisgICAgcHNhX2hhc2hfb3BlcmF0aW9uX3QgKm9wZXJhdGlvbikKIHsKICAgICAodm9pZCkgb3BlcmF0aW9uOwogCkBAIC01MDMsNyArOTM2LDggQEAKIAogaW50IHBzYXNpbV9zZXJ2ZXJfc2VyaWFsaXNlX3BzYV9oYXNoX29wZXJhdGlvbl90KHVpbnQ4X3QgKipwb3MsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90ICpyZW1haW5pbmcsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHNhX2hhc2hfb3BlcmF0aW9uX3QgKm9wZXJhdGlvbikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwc2FfaGFzaF9vcGVyYXRpb25fdCAqb3BlcmF0aW9uLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBjb21wbGV0ZWQpCiB7CiAgICAgcHNhc2ltX29wZXJhdGlvbl90IGNsaWVudF9vcGVyYXRpb247CiAKQEAgLTUxMyw2ICs5NDcsMTMgQEAKIAogICAgIHNzaXplX3Qgc2xvdCA9IG9wZXJhdGlvbiAtIGhhc2hfb3BlcmF0aW9uczsKIAorICAgIGlmIChjb21wbGV0ZWQpIHsKKyAgICAgICAgbWVtc2V0KCZoYXNoX29wZXJhdGlvbnNbc2xvdF0sCisgICAgICAgICAgICAgICAwLAorICAgICAgICAgICAgICAgc2l6ZW9mKHBzYV9oYXNoX29wZXJhdGlvbl90KSk7CisgICAgICAgIGhhc2hfb3BlcmF0aW9uX2hhbmRsZXNbc2xvdF0gPSAwOworICAgIH0KKwogICAgIGNsaWVudF9vcGVyYXRpb24uaGFuZGxlID0gaGFzaF9vcGVyYXRpb25faGFuZGxlc1tzbG90XTsKIAogICAgIG1lbWNweSgqcG9zLCAmY2xpZW50X29wZXJhdGlvbiwgc2l6ZW9mKGNsaWVudF9vcGVyYXRpb24pKTsKQEAgLTU1MSw3ICs5OTIsOCBAQAogICAgIHJldHVybiAxOwogfQogCi1zaXplX3QgcHNhc2ltX3NlcmlhbGlzZV9wc2FfYWVhZF9vcGVyYXRpb25fdF9uZWVkcyhwc2FfYWVhZF9vcGVyYXRpb25fdCB2YWx1ZSkKK3NpemVfdCBwc2FzaW1fc2VyaWFsaXNlX3BzYV9hZWFkX29wZXJhdGlvbl90X25lZWRzKAorICAgIHBzYV9hZWFkX29wZXJhdGlvbl90IHZhbHVlKQogewogICAgIHJldHVybiBzaXplb2YodmFsdWUpOwogfQpAQCAtNTg2LDcgKzEwMjgsOCBAQAogICAgIHJldHVybiAxOwogfQogCi1zaXplX3QgcHNhc2ltX3NlcnZlcl9zZXJpYWxpc2VfcHNhX2FlYWRfb3BlcmF0aW9uX3RfbmVlZHMocHNhX2FlYWRfb3BlcmF0aW9uX3QgKm9wZXJhdGlvbikKK3NpemVfdCBwc2FzaW1fc2VydmVyX3NlcmlhbGlzZV9wc2FfYWVhZF9vcGVyYXRpb25fdF9uZWVkcygKKyAgICBwc2FfYWVhZF9vcGVyYXRpb25fdCAqb3BlcmF0aW9uKQogewogICAgICh2b2lkKSBvcGVyYXRpb247CiAKQEAgLTU5Niw3ICsxMDM5LDggQEAKIAogaW50IHBzYXNpbV9zZXJ2ZXJfc2VyaWFsaXNlX3BzYV9hZWFkX29wZXJhdGlvbl90KHVpbnQ4X3QgKipwb3MsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90ICpyZW1haW5pbmcsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHNhX2FlYWRfb3BlcmF0aW9uX3QgKm9wZXJhdGlvbikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwc2FfYWVhZF9vcGVyYXRpb25fdCAqb3BlcmF0aW9uLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBjb21wbGV0ZWQpCiB7CiAgICAgcHNhc2ltX29wZXJhdGlvbl90IGNsaWVudF9vcGVyYXRpb247CiAKQEAgLTYwNiw2ICsxMDUwLDEzIEBACiAKICAgICBzc2l6ZV90IHNsb3QgPSBvcGVyYXRpb24gLSBhZWFkX29wZXJhdGlvbnM7CiAKKyAgICBpZiAoY29tcGxldGVkKSB7CisgICAgICAgIG1lbXNldCgmYWVhZF9vcGVyYXRpb25zW3Nsb3RdLAorICAgICAgICAgICAgICAgMCwKKyAgICAgICAgICAgICAgIHNpemVvZihwc2FfYWVhZF9vcGVyYXRpb25fdCkpOworICAgICAgICBhZWFkX29wZXJhdGlvbl9oYW5kbGVzW3Nsb3RdID0gMDsKKyAgICB9CisKICAgICBjbGllbnRfb3BlcmF0aW9uLmhhbmRsZSA9IGFlYWRfb3BlcmF0aW9uX2hhbmRsZXNbc2xvdF07CiAKICAgICBtZW1jcHkoKnBvcywgJmNsaWVudF9vcGVyYXRpb24sIHNpemVvZihjbGllbnRfb3BlcmF0aW9uKSk7CkBAIC02NDQsNyArMTA5NSw4IEBACiAgICAgcmV0dXJuIDE7CiB9CiAKLXNpemVfdCBwc2FzaW1fc2VyaWFsaXNlX3BzYV9rZXlfYXR0cmlidXRlc190X25lZWRzKHBzYV9rZXlfYXR0cmlidXRlc190IHZhbHVlKQorc2l6ZV90IHBzYXNpbV9zZXJpYWxpc2VfcHNhX2tleV9hdHRyaWJ1dGVzX3RfbmVlZHMoCisgICAgcHNhX2tleV9hdHRyaWJ1dGVzX3QgdmFsdWUpCiB7CiAgICAgcmV0dXJuIHNpemVvZih2YWx1ZSk7CiB9CkBAIC02NzksNyArMTEzMSw1MjMgQEAKICAgICByZXR1cm4gMTsKIH0KIAotc2l6ZV90IHBzYXNpbV9zZXJpYWxpc2VfbWJlZHRsc19zdmNfa2V5X2lkX3RfbmVlZHMobWJlZHRsc19zdmNfa2V5X2lkX3QgdmFsdWUpCitzaXplX3QgcHNhc2ltX3NlcmlhbGlzZV9wc2FfbWFjX29wZXJhdGlvbl90X25lZWRzKAorICAgIHBzYV9tYWNfb3BlcmF0aW9uX3QgdmFsdWUpCit7CisgICAgcmV0dXJuIHNpemVvZih2YWx1ZSk7Cit9CisKK2ludCBwc2FzaW1fc2VyaWFsaXNlX3BzYV9tYWNfb3BlcmF0aW9uX3QodWludDhfdCAqKnBvcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90ICpyZW1haW5pbmcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBzYV9tYWNfb3BlcmF0aW9uX3QgdmFsdWUpCit7CisgICAgaWYgKCpyZW1haW5pbmcgPCBzaXplb2YodmFsdWUpKSB7CisgICAgICAgIHJldHVybiAwOworICAgIH0KKworICAgIG1lbWNweSgqcG9zLCAmdmFsdWUsIHNpemVvZih2YWx1ZSkpOworICAgICpwb3MgKz0gc2l6ZW9mKHZhbHVlKTsKKworICAgIHJldHVybiAxOworfQorCitpbnQgcHNhc2ltX2Rlc2VyaWFsaXNlX3BzYV9tYWNfb3BlcmF0aW9uX3QodWludDhfdCAqKnBvcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgKnJlbWFpbmluZywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwc2FfbWFjX29wZXJhdGlvbl90ICp2YWx1ZSkKK3sKKyAgICBpZiAoKnJlbWFpbmluZyA8IHNpemVvZigqdmFsdWUpKSB7CisgICAgICAgIHJldHVybiAwOworICAgIH0KKworICAgIG1lbWNweSh2YWx1ZSwgKnBvcywgc2l6ZW9mKCp2YWx1ZSkpOworCisgICAgKnBvcyArPSBzaXplb2YoKnZhbHVlKTsKKyAgICAqcmVtYWluaW5nIC09IHNpemVvZigqdmFsdWUpOworCisgICAgcmV0dXJuIDE7Cit9CisKK3NpemVfdCBwc2FzaW1fc2VydmVyX3NlcmlhbGlzZV9wc2FfbWFjX29wZXJhdGlvbl90X25lZWRzKAorICAgIHBzYV9tYWNfb3BlcmF0aW9uX3QgKm9wZXJhdGlvbikKK3sKKyAgICAodm9pZCkgb3BlcmF0aW9uOworCisgICAgLyogV2Ugd2lsbCBhY3R1YWxseSByZXR1cm4gYSBoYW5kbGUgKi8KKyAgICByZXR1cm4gc2l6ZW9mKHBzYXNpbV9vcGVyYXRpb25fdCk7Cit9CisKK2ludCBwc2FzaW1fc2VydmVyX3NlcmlhbGlzZV9wc2FfbWFjX29wZXJhdGlvbl90KHVpbnQ4X3QgKipwb3MsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgKnJlbWFpbmluZywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBzYV9tYWNfb3BlcmF0aW9uX3QgKm9wZXJhdGlvbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBjb21wbGV0ZWQpCit7CisgICAgcHNhc2ltX29wZXJhdGlvbl90IGNsaWVudF9vcGVyYXRpb247CisKKyAgICBpZiAoKnJlbWFpbmluZyA8IHNpemVvZihjbGllbnRfb3BlcmF0aW9uKSkgeworICAgICAgICByZXR1cm4gMDsKKyAgICB9CisKKyAgICBzc2l6ZV90IHNsb3QgPSBvcGVyYXRpb24gLSBtYWNfb3BlcmF0aW9uczsKKworICAgIGlmIChjb21wbGV0ZWQpIHsKKyAgICAgICAgbWVtc2V0KCZtYWNfb3BlcmF0aW9uc1tzbG90XSwKKyAgICAgICAgICAgICAgIDAsCisgICAgICAgICAgICAgICBzaXplb2YocHNhX21hY19vcGVyYXRpb25fdCkpOworICAgICAgICBtYWNfb3BlcmF0aW9uX2hhbmRsZXNbc2xvdF0gPSAwOworICAgIH0KKworICAgIGNsaWVudF9vcGVyYXRpb24uaGFuZGxlID0gbWFjX29wZXJhdGlvbl9oYW5kbGVzW3Nsb3RdOworCisgICAgbWVtY3B5KCpwb3MsICZjbGllbnRfb3BlcmF0aW9uLCBzaXplb2YoY2xpZW50X29wZXJhdGlvbikpOworICAgICpwb3MgKz0gc2l6ZW9mKGNsaWVudF9vcGVyYXRpb24pOworCisgICAgcmV0dXJuIDE7Cit9CisKK2ludCBwc2FzaW1fc2VydmVyX2Rlc2VyaWFsaXNlX3BzYV9tYWNfb3BlcmF0aW9uX3QodWludDhfdCAqKnBvcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90ICpyZW1haW5pbmcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBzYV9tYWNfb3BlcmF0aW9uX3QgKipvcGVyYXRpb24pCit7CisgICAgcHNhc2ltX29wZXJhdGlvbl90IGNsaWVudF9vcGVyYXRpb247CisKKyAgICBpZiAoKnJlbWFpbmluZyA8IHNpemVvZihwc2FzaW1fb3BlcmF0aW9uX3QpKSB7CisgICAgICAgIHJldHVybiAwOworICAgIH0KKworICAgIG1lbWNweSgmY2xpZW50X29wZXJhdGlvbiwgKnBvcywgc2l6ZW9mKHBzYXNpbV9vcGVyYXRpb25fdCkpOworICAgICpwb3MgKz0gc2l6ZW9mKHBzYXNpbV9vcGVyYXRpb25fdCk7CisgICAgKnJlbWFpbmluZyAtPSBzaXplb2YocHNhc2ltX29wZXJhdGlvbl90KTsKKworICAgIHNzaXplX3Qgc2xvdDsKKyAgICBpZiAoY2xpZW50X29wZXJhdGlvbi5oYW5kbGUgPT0gMCkgeyAgICAgICAgIC8qIFdlIG5lZWQgYSBuZXcgaGFuZGxlICovCisgICAgICAgIHNsb3QgPSBhbGxvY2F0ZV9tYWNfb3BlcmF0aW9uX3Nsb3QoKTsKKyAgICB9IGVsc2UgeworICAgICAgICBzbG90ID0gZmluZF9tYWNfc2xvdF9ieV9oYW5kbGUoY2xpZW50X29wZXJhdGlvbi5oYW5kbGUpOworICAgIH0KKworICAgIGlmIChzbG90IDwgMCkgeworICAgICAgICByZXR1cm4gMDsKKyAgICB9CisKKyAgICAqb3BlcmF0aW9uID0gJm1hY19vcGVyYXRpb25zW3Nsb3RdOworCisgICAgcmV0dXJuIDE7Cit9CisKK3NpemVfdCBwc2FzaW1fc2VyaWFsaXNlX3BzYV9jaXBoZXJfb3BlcmF0aW9uX3RfbmVlZHMoCisgICAgcHNhX2NpcGhlcl9vcGVyYXRpb25fdCB2YWx1ZSkKK3sKKyAgICByZXR1cm4gc2l6ZW9mKHZhbHVlKTsKK30KKworaW50IHBzYXNpbV9zZXJpYWxpc2VfcHNhX2NpcGhlcl9vcGVyYXRpb25fdCh1aW50OF90ICoqcG9zLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgKnJlbWFpbmluZywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHNhX2NpcGhlcl9vcGVyYXRpb25fdCB2YWx1ZSkKK3sKKyAgICBpZiAoKnJlbWFpbmluZyA8IHNpemVvZih2YWx1ZSkpIHsKKyAgICAgICAgcmV0dXJuIDA7CisgICAgfQorCisgICAgbWVtY3B5KCpwb3MsICZ2YWx1ZSwgc2l6ZW9mKHZhbHVlKSk7CisgICAgKnBvcyArPSBzaXplb2YodmFsdWUpOworCisgICAgcmV0dXJuIDE7Cit9CisKK2ludCBwc2FzaW1fZGVzZXJpYWxpc2VfcHNhX2NpcGhlcl9vcGVyYXRpb25fdCh1aW50OF90ICoqcG9zLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCAqcmVtYWluaW5nLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBzYV9jaXBoZXJfb3BlcmF0aW9uX3QgKnZhbHVlKQoreworICAgIGlmICgqcmVtYWluaW5nIDwgc2l6ZW9mKCp2YWx1ZSkpIHsKKyAgICAgICAgcmV0dXJuIDA7CisgICAgfQorCisgICAgbWVtY3B5KHZhbHVlLCAqcG9zLCBzaXplb2YoKnZhbHVlKSk7CisKKyAgICAqcG9zICs9IHNpemVvZigqdmFsdWUpOworICAgICpyZW1haW5pbmcgLT0gc2l6ZW9mKCp2YWx1ZSk7CisKKyAgICByZXR1cm4gMTsKK30KKworc2l6ZV90IHBzYXNpbV9zZXJ2ZXJfc2VyaWFsaXNlX3BzYV9jaXBoZXJfb3BlcmF0aW9uX3RfbmVlZHMoCisgICAgcHNhX2NpcGhlcl9vcGVyYXRpb25fdCAqb3BlcmF0aW9uKQoreworICAgICh2b2lkKSBvcGVyYXRpb247CisKKyAgICAvKiBXZSB3aWxsIGFjdHVhbGx5IHJldHVybiBhIGhhbmRsZSAqLworICAgIHJldHVybiBzaXplb2YocHNhc2ltX29wZXJhdGlvbl90KTsKK30KKworaW50IHBzYXNpbV9zZXJ2ZXJfc2VyaWFsaXNlX3BzYV9jaXBoZXJfb3BlcmF0aW9uX3QodWludDhfdCAqKnBvcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCAqcmVtYWluaW5nLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHNhX2NpcGhlcl9vcGVyYXRpb25fdCAqb3BlcmF0aW9uLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGNvbXBsZXRlZCkKK3sKKyAgICBwc2FzaW1fb3BlcmF0aW9uX3QgY2xpZW50X29wZXJhdGlvbjsKKworICAgIGlmICgqcmVtYWluaW5nIDwgc2l6ZW9mKGNsaWVudF9vcGVyYXRpb24pKSB7CisgICAgICAgIHJldHVybiAwOworICAgIH0KKworICAgIHNzaXplX3Qgc2xvdCA9IG9wZXJhdGlvbiAtIGNpcGhlcl9vcGVyYXRpb25zOworCisgICAgaWYgKGNvbXBsZXRlZCkgeworICAgICAgICBtZW1zZXQoJmNpcGhlcl9vcGVyYXRpb25zW3Nsb3RdLAorICAgICAgICAgICAgICAgMCwKKyAgICAgICAgICAgICAgIHNpemVvZihwc2FfY2lwaGVyX29wZXJhdGlvbl90KSk7CisgICAgICAgIGNpcGhlcl9vcGVyYXRpb25faGFuZGxlc1tzbG90XSA9IDA7CisgICAgfQorCisgICAgY2xpZW50X29wZXJhdGlvbi5oYW5kbGUgPSBjaXBoZXJfb3BlcmF0aW9uX2hhbmRsZXNbc2xvdF07CisKKyAgICBtZW1jcHkoKnBvcywgJmNsaWVudF9vcGVyYXRpb24sIHNpemVvZihjbGllbnRfb3BlcmF0aW9uKSk7CisgICAgKnBvcyArPSBzaXplb2YoY2xpZW50X29wZXJhdGlvbik7CisKKyAgICByZXR1cm4gMTsKK30KKworaW50IHBzYXNpbV9zZXJ2ZXJfZGVzZXJpYWxpc2VfcHNhX2NpcGhlcl9vcGVyYXRpb25fdCh1aW50OF90ICoqcG9zLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgKnJlbWFpbmluZywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHNhX2NpcGhlcl9vcGVyYXRpb25fdCAqKm9wZXJhdGlvbikKK3sKKyAgICBwc2FzaW1fb3BlcmF0aW9uX3QgY2xpZW50X29wZXJhdGlvbjsKKworICAgIGlmICgqcmVtYWluaW5nIDwgc2l6ZW9mKHBzYXNpbV9vcGVyYXRpb25fdCkpIHsKKyAgICAgICAgcmV0dXJuIDA7CisgICAgfQorCisgICAgbWVtY3B5KCZjbGllbnRfb3BlcmF0aW9uLCAqcG9zLCBzaXplb2YocHNhc2ltX29wZXJhdGlvbl90KSk7CisgICAgKnBvcyArPSBzaXplb2YocHNhc2ltX29wZXJhdGlvbl90KTsKKyAgICAqcmVtYWluaW5nIC09IHNpemVvZihwc2FzaW1fb3BlcmF0aW9uX3QpOworCisgICAgc3NpemVfdCBzbG90OworICAgIGlmIChjbGllbnRfb3BlcmF0aW9uLmhhbmRsZSA9PSAwKSB7ICAgICAgICAgLyogV2UgbmVlZCBhIG5ldyBoYW5kbGUgKi8KKyAgICAgICAgc2xvdCA9IGFsbG9jYXRlX2NpcGhlcl9vcGVyYXRpb25fc2xvdCgpOworICAgIH0gZWxzZSB7CisgICAgICAgIHNsb3QgPSBmaW5kX2NpcGhlcl9zbG90X2J5X2hhbmRsZShjbGllbnRfb3BlcmF0aW9uLmhhbmRsZSk7CisgICAgfQorCisgICAgaWYgKHNsb3QgPCAwKSB7CisgICAgICAgIHJldHVybiAwOworICAgIH0KKworICAgICpvcGVyYXRpb24gPSAmY2lwaGVyX29wZXJhdGlvbnNbc2xvdF07CisKKyAgICByZXR1cm4gMTsKK30KKworc2l6ZV90IHBzYXNpbV9zZXJpYWxpc2VfcHNhX2tleV9kZXJpdmF0aW9uX29wZXJhdGlvbl90X25lZWRzKAorICAgIHBzYV9rZXlfZGVyaXZhdGlvbl9vcGVyYXRpb25fdCB2YWx1ZSkKK3sKKyAgICByZXR1cm4gc2l6ZW9mKHZhbHVlKTsKK30KKworaW50IHBzYXNpbV9zZXJpYWxpc2VfcHNhX2tleV9kZXJpdmF0aW9uX29wZXJhdGlvbl90KHVpbnQ4X3QgKipwb3MsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90ICpyZW1haW5pbmcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHNhX2tleV9kZXJpdmF0aW9uX29wZXJhdGlvbl90IHZhbHVlKQoreworICAgIGlmICgqcmVtYWluaW5nIDwgc2l6ZW9mKHZhbHVlKSkgeworICAgICAgICByZXR1cm4gMDsKKyAgICB9CisKKyAgICBtZW1jcHkoKnBvcywgJnZhbHVlLCBzaXplb2YodmFsdWUpKTsKKyAgICAqcG9zICs9IHNpemVvZih2YWx1ZSk7CisKKyAgICByZXR1cm4gMTsKK30KKworaW50IHBzYXNpbV9kZXNlcmlhbGlzZV9wc2Ffa2V5X2Rlcml2YXRpb25fb3BlcmF0aW9uX3QodWludDhfdCAqKnBvcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCAqcmVtYWluaW5nLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHNhX2tleV9kZXJpdmF0aW9uX29wZXJhdGlvbl90ICp2YWx1ZSkKK3sKKyAgICBpZiAoKnJlbWFpbmluZyA8IHNpemVvZigqdmFsdWUpKSB7CisgICAgICAgIHJldHVybiAwOworICAgIH0KKworICAgIG1lbWNweSh2YWx1ZSwgKnBvcywgc2l6ZW9mKCp2YWx1ZSkpOworCisgICAgKnBvcyArPSBzaXplb2YoKnZhbHVlKTsKKyAgICAqcmVtYWluaW5nIC09IHNpemVvZigqdmFsdWUpOworCisgICAgcmV0dXJuIDE7Cit9CisKK3NpemVfdCBwc2FzaW1fc2VydmVyX3NlcmlhbGlzZV9wc2Ffa2V5X2Rlcml2YXRpb25fb3BlcmF0aW9uX3RfbmVlZHMoCisgICAgcHNhX2tleV9kZXJpdmF0aW9uX29wZXJhdGlvbl90ICpvcGVyYXRpb24pCit7CisgICAgKHZvaWQpIG9wZXJhdGlvbjsKKworICAgIC8qIFdlIHdpbGwgYWN0dWFsbHkgcmV0dXJuIGEgaGFuZGxlICovCisgICAgcmV0dXJuIHNpemVvZihwc2FzaW1fb3BlcmF0aW9uX3QpOworfQorCitpbnQgcHNhc2ltX3NlcnZlcl9zZXJpYWxpc2VfcHNhX2tleV9kZXJpdmF0aW9uX29wZXJhdGlvbl90KHVpbnQ4X3QgKipwb3MsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCAqcmVtYWluaW5nLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwc2Ffa2V5X2Rlcml2YXRpb25fb3BlcmF0aW9uX3QgKm9wZXJhdGlvbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGNvbXBsZXRlZCkKK3sKKyAgICBwc2FzaW1fb3BlcmF0aW9uX3QgY2xpZW50X29wZXJhdGlvbjsKKworICAgIGlmICgqcmVtYWluaW5nIDwgc2l6ZW9mKGNsaWVudF9vcGVyYXRpb24pKSB7CisgICAgICAgIHJldHVybiAwOworICAgIH0KKworICAgIHNzaXplX3Qgc2xvdCA9IG9wZXJhdGlvbiAtIGtleV9kZXJpdmF0aW9uX29wZXJhdGlvbnM7CisKKyAgICBpZiAoY29tcGxldGVkKSB7CisgICAgICAgIG1lbXNldCgma2V5X2Rlcml2YXRpb25fb3BlcmF0aW9uc1tzbG90XSwKKyAgICAgICAgICAgICAgIDAsCisgICAgICAgICAgICAgICBzaXplb2YocHNhX2tleV9kZXJpdmF0aW9uX29wZXJhdGlvbl90KSk7CisgICAgICAgIGtleV9kZXJpdmF0aW9uX29wZXJhdGlvbl9oYW5kbGVzW3Nsb3RdID0gMDsKKyAgICB9CisKKyAgICBjbGllbnRfb3BlcmF0aW9uLmhhbmRsZSA9IGtleV9kZXJpdmF0aW9uX29wZXJhdGlvbl9oYW5kbGVzW3Nsb3RdOworCisgICAgbWVtY3B5KCpwb3MsICZjbGllbnRfb3BlcmF0aW9uLCBzaXplb2YoY2xpZW50X29wZXJhdGlvbikpOworICAgICpwb3MgKz0gc2l6ZW9mKGNsaWVudF9vcGVyYXRpb24pOworCisgICAgcmV0dXJuIDE7Cit9CisKK2ludCBwc2FzaW1fc2VydmVyX2Rlc2VyaWFsaXNlX3BzYV9rZXlfZGVyaXZhdGlvbl9vcGVyYXRpb25fdCh1aW50OF90ICoqcG9zLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCAqcmVtYWluaW5nLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBzYV9rZXlfZGVyaXZhdGlvbl9vcGVyYXRpb25fdCAqKm9wZXJhdGlvbikKK3sKKyAgICBwc2FzaW1fb3BlcmF0aW9uX3QgY2xpZW50X29wZXJhdGlvbjsKKworICAgIGlmICgqcmVtYWluaW5nIDwgc2l6ZW9mKHBzYXNpbV9vcGVyYXRpb25fdCkpIHsKKyAgICAgICAgcmV0dXJuIDA7CisgICAgfQorCisgICAgbWVtY3B5KCZjbGllbnRfb3BlcmF0aW9uLCAqcG9zLCBzaXplb2YocHNhc2ltX29wZXJhdGlvbl90KSk7CisgICAgKnBvcyArPSBzaXplb2YocHNhc2ltX29wZXJhdGlvbl90KTsKKyAgICAqcmVtYWluaW5nIC09IHNpemVvZihwc2FzaW1fb3BlcmF0aW9uX3QpOworCisgICAgc3NpemVfdCBzbG90OworICAgIGlmIChjbGllbnRfb3BlcmF0aW9uLmhhbmRsZSA9PSAwKSB7ICAgICAgICAgLyogV2UgbmVlZCBhIG5ldyBoYW5kbGUgKi8KKyAgICAgICAgc2xvdCA9IGFsbG9jYXRlX2tleV9kZXJpdmF0aW9uX29wZXJhdGlvbl9zbG90KCk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgc2xvdCA9IGZpbmRfa2V5X2Rlcml2YXRpb25fc2xvdF9ieV9oYW5kbGUoY2xpZW50X29wZXJhdGlvbi5oYW5kbGUpOworICAgIH0KKworICAgIGlmIChzbG90IDwgMCkgeworICAgICAgICByZXR1cm4gMDsKKyAgICB9CisKKyAgICAqb3BlcmF0aW9uID0gJmtleV9kZXJpdmF0aW9uX29wZXJhdGlvbnNbc2xvdF07CisKKyAgICByZXR1cm4gMTsKK30KKworc2l6ZV90IHBzYXNpbV9zZXJpYWxpc2VfcHNhX3NpZ25faGFzaF9pbnRlcnJ1cHRpYmxlX29wZXJhdGlvbl90X25lZWRzKAorICAgIHBzYV9zaWduX2hhc2hfaW50ZXJydXB0aWJsZV9vcGVyYXRpb25fdCB2YWx1ZSkKK3sKKyAgICByZXR1cm4gc2l6ZW9mKHZhbHVlKTsKK30KKworaW50IHBzYXNpbV9zZXJpYWxpc2VfcHNhX3NpZ25faGFzaF9pbnRlcnJ1cHRpYmxlX29wZXJhdGlvbl90KHVpbnQ4X3QgKipwb3MsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90ICpyZW1haW5pbmcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHNhX3NpZ25faGFzaF9pbnRlcnJ1cHRpYmxlX29wZXJhdGlvbl90IHZhbHVlKQoreworICAgIGlmICgqcmVtYWluaW5nIDwgc2l6ZW9mKHZhbHVlKSkgeworICAgICAgICByZXR1cm4gMDsKKyAgICB9CisKKyAgICBtZW1jcHkoKnBvcywgJnZhbHVlLCBzaXplb2YodmFsdWUpKTsKKyAgICAqcG9zICs9IHNpemVvZih2YWx1ZSk7CisKKyAgICByZXR1cm4gMTsKK30KKworaW50IHBzYXNpbV9kZXNlcmlhbGlzZV9wc2Ffc2lnbl9oYXNoX2ludGVycnVwdGlibGVfb3BlcmF0aW9uX3QodWludDhfdCAqKnBvcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCAqcmVtYWluaW5nLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHNhX3NpZ25faGFzaF9pbnRlcnJ1cHRpYmxlX29wZXJhdGlvbl90ICp2YWx1ZSkKK3sKKyAgICBpZiAoKnJlbWFpbmluZyA8IHNpemVvZigqdmFsdWUpKSB7CisgICAgICAgIHJldHVybiAwOworICAgIH0KKworICAgIG1lbWNweSh2YWx1ZSwgKnBvcywgc2l6ZW9mKCp2YWx1ZSkpOworCisgICAgKnBvcyArPSBzaXplb2YoKnZhbHVlKTsKKyAgICAqcmVtYWluaW5nIC09IHNpemVvZigqdmFsdWUpOworCisgICAgcmV0dXJuIDE7Cit9CisKK3NpemVfdCBwc2FzaW1fc2VydmVyX3NlcmlhbGlzZV9wc2Ffc2lnbl9oYXNoX2ludGVycnVwdGlibGVfb3BlcmF0aW9uX3RfbmVlZHMoCisgICAgcHNhX3NpZ25faGFzaF9pbnRlcnJ1cHRpYmxlX29wZXJhdGlvbl90ICpvcGVyYXRpb24pCit7CisgICAgKHZvaWQpIG9wZXJhdGlvbjsKKworICAgIC8qIFdlIHdpbGwgYWN0dWFsbHkgcmV0dXJuIGEgaGFuZGxlICovCisgICAgcmV0dXJuIHNpemVvZihwc2FzaW1fb3BlcmF0aW9uX3QpOworfQorCitpbnQgcHNhc2ltX3NlcnZlcl9zZXJpYWxpc2VfcHNhX3NpZ25faGFzaF9pbnRlcnJ1cHRpYmxlX29wZXJhdGlvbl90KHVpbnQ4X3QgKipwb3MsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCAqcmVtYWluaW5nLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwc2Ffc2lnbl9oYXNoX2ludGVycnVwdGlibGVfb3BlcmF0aW9uX3QgKm9wZXJhdGlvbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGNvbXBsZXRlZCkKK3sKKyAgICBwc2FzaW1fb3BlcmF0aW9uX3QgY2xpZW50X29wZXJhdGlvbjsKKworICAgIGlmICgqcmVtYWluaW5nIDwgc2l6ZW9mKGNsaWVudF9vcGVyYXRpb24pKSB7CisgICAgICAgIHJldHVybiAwOworICAgIH0KKworICAgIHNzaXplX3Qgc2xvdCA9IG9wZXJhdGlvbiAtIHNpZ25faGFzaF9pbnRlcnJ1cHRpYmxlX29wZXJhdGlvbnM7CisKKyAgICBpZiAoY29tcGxldGVkKSB7CisgICAgICAgIG1lbXNldCgmc2lnbl9oYXNoX2ludGVycnVwdGlibGVfb3BlcmF0aW9uc1tzbG90XSwKKyAgICAgICAgICAgICAgIDAsCisgICAgICAgICAgICAgICBzaXplb2YocHNhX3NpZ25faGFzaF9pbnRlcnJ1cHRpYmxlX29wZXJhdGlvbl90KSk7CisgICAgICAgIHNpZ25faGFzaF9pbnRlcnJ1cHRpYmxlX29wZXJhdGlvbl9oYW5kbGVzW3Nsb3RdID0gMDsKKyAgICB9CisKKyAgICBjbGllbnRfb3BlcmF0aW9uLmhhbmRsZSA9IHNpZ25faGFzaF9pbnRlcnJ1cHRpYmxlX29wZXJhdGlvbl9oYW5kbGVzW3Nsb3RdOworCisgICAgbWVtY3B5KCpwb3MsICZjbGllbnRfb3BlcmF0aW9uLCBzaXplb2YoY2xpZW50X29wZXJhdGlvbikpOworICAgICpwb3MgKz0gc2l6ZW9mKGNsaWVudF9vcGVyYXRpb24pOworCisgICAgcmV0dXJuIDE7Cit9CisKK2ludCBwc2FzaW1fc2VydmVyX2Rlc2VyaWFsaXNlX3BzYV9zaWduX2hhc2hfaW50ZXJydXB0aWJsZV9vcGVyYXRpb25fdCh1aW50OF90ICoqcG9zLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCAqcmVtYWluaW5nLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBzYV9zaWduX2hhc2hfaW50ZXJydXB0aWJsZV9vcGVyYXRpb25fdCAqKm9wZXJhdGlvbikKK3sKKyAgICBwc2FzaW1fb3BlcmF0aW9uX3QgY2xpZW50X29wZXJhdGlvbjsKKworICAgIGlmICgqcmVtYWluaW5nIDwgc2l6ZW9mKHBzYXNpbV9vcGVyYXRpb25fdCkpIHsKKyAgICAgICAgcmV0dXJuIDA7CisgICAgfQorCisgICAgbWVtY3B5KCZjbGllbnRfb3BlcmF0aW9uLCAqcG9zLCBzaXplb2YocHNhc2ltX29wZXJhdGlvbl90KSk7CisgICAgKnBvcyArPSBzaXplb2YocHNhc2ltX29wZXJhdGlvbl90KTsKKyAgICAqcmVtYWluaW5nIC09IHNpemVvZihwc2FzaW1fb3BlcmF0aW9uX3QpOworCisgICAgc3NpemVfdCBzbG90OworICAgIGlmIChjbGllbnRfb3BlcmF0aW9uLmhhbmRsZSA9PSAwKSB7ICAgICAgICAgLyogV2UgbmVlZCBhIG5ldyBoYW5kbGUgKi8KKyAgICAgICAgc2xvdCA9IGFsbG9jYXRlX3NpZ25faGFzaF9pbnRlcnJ1cHRpYmxlX29wZXJhdGlvbl9zbG90KCk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgc2xvdCA9IGZpbmRfc2lnbl9oYXNoX2ludGVycnVwdGlibGVfc2xvdF9ieV9oYW5kbGUoY2xpZW50X29wZXJhdGlvbi5oYW5kbGUpOworICAgIH0KKworICAgIGlmIChzbG90IDwgMCkgeworICAgICAgICByZXR1cm4gMDsKKyAgICB9CisKKyAgICAqb3BlcmF0aW9uID0gJnNpZ25faGFzaF9pbnRlcnJ1cHRpYmxlX29wZXJhdGlvbnNbc2xvdF07CisKKyAgICByZXR1cm4gMTsKK30KKworc2l6ZV90IHBzYXNpbV9zZXJpYWxpc2VfcHNhX3ZlcmlmeV9oYXNoX2ludGVycnVwdGlibGVfb3BlcmF0aW9uX3RfbmVlZHMoCisgICAgcHNhX3ZlcmlmeV9oYXNoX2ludGVycnVwdGlibGVfb3BlcmF0aW9uX3QgdmFsdWUpCit7CisgICAgcmV0dXJuIHNpemVvZih2YWx1ZSk7Cit9CisKK2ludCBwc2FzaW1fc2VyaWFsaXNlX3BzYV92ZXJpZnlfaGFzaF9pbnRlcnJ1cHRpYmxlX29wZXJhdGlvbl90KHVpbnQ4X3QgKipwb3MsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgKnJlbWFpbmluZywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBzYV92ZXJpZnlfaGFzaF9pbnRlcnJ1cHRpYmxlX29wZXJhdGlvbl90IHZhbHVlKQoreworICAgIGlmICgqcmVtYWluaW5nIDwgc2l6ZW9mKHZhbHVlKSkgeworICAgICAgICByZXR1cm4gMDsKKyAgICB9CisKKyAgICBtZW1jcHkoKnBvcywgJnZhbHVlLCBzaXplb2YodmFsdWUpKTsKKyAgICAqcG9zICs9IHNpemVvZih2YWx1ZSk7CisKKyAgICByZXR1cm4gMTsKK30KKworaW50IHBzYXNpbV9kZXNlcmlhbGlzZV9wc2FfdmVyaWZ5X2hhc2hfaW50ZXJydXB0aWJsZV9vcGVyYXRpb25fdCh1aW50OF90ICoqcG9zLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgKnJlbWFpbmluZywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHNhX3ZlcmlmeV9oYXNoX2ludGVycnVwdGlibGVfb3BlcmF0aW9uX3QgKnZhbHVlKQoreworICAgIGlmICgqcmVtYWluaW5nIDwgc2l6ZW9mKCp2YWx1ZSkpIHsKKyAgICAgICAgcmV0dXJuIDA7CisgICAgfQorCisgICAgbWVtY3B5KHZhbHVlLCAqcG9zLCBzaXplb2YoKnZhbHVlKSk7CisKKyAgICAqcG9zICs9IHNpemVvZigqdmFsdWUpOworICAgICpyZW1haW5pbmcgLT0gc2l6ZW9mKCp2YWx1ZSk7CisKKyAgICByZXR1cm4gMTsKK30KKworc2l6ZV90IHBzYXNpbV9zZXJ2ZXJfc2VyaWFsaXNlX3BzYV92ZXJpZnlfaGFzaF9pbnRlcnJ1cHRpYmxlX29wZXJhdGlvbl90X25lZWRzKAorICAgIHBzYV92ZXJpZnlfaGFzaF9pbnRlcnJ1cHRpYmxlX29wZXJhdGlvbl90ICpvcGVyYXRpb24pCit7CisgICAgKHZvaWQpIG9wZXJhdGlvbjsKKworICAgIC8qIFdlIHdpbGwgYWN0dWFsbHkgcmV0dXJuIGEgaGFuZGxlICovCisgICAgcmV0dXJuIHNpemVvZihwc2FzaW1fb3BlcmF0aW9uX3QpOworfQorCitpbnQgcHNhc2ltX3NlcnZlcl9zZXJpYWxpc2VfcHNhX3ZlcmlmeV9oYXNoX2ludGVycnVwdGlibGVfb3BlcmF0aW9uX3QodWludDhfdCAqKnBvcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgKnJlbWFpbmluZywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwc2FfdmVyaWZ5X2hhc2hfaW50ZXJydXB0aWJsZV9vcGVyYXRpb25fdCAqb3BlcmF0aW9uLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBjb21wbGV0ZWQpCit7CisgICAgcHNhc2ltX29wZXJhdGlvbl90IGNsaWVudF9vcGVyYXRpb247CisKKyAgICBpZiAoKnJlbWFpbmluZyA8IHNpemVvZihjbGllbnRfb3BlcmF0aW9uKSkgeworICAgICAgICByZXR1cm4gMDsKKyAgICB9CisKKyAgICBzc2l6ZV90IHNsb3QgPSBvcGVyYXRpb24gLSB2ZXJpZnlfaGFzaF9pbnRlcnJ1cHRpYmxlX29wZXJhdGlvbnM7CisKKyAgICBpZiAoY29tcGxldGVkKSB7CisgICAgICAgIG1lbXNldCgmdmVyaWZ5X2hhc2hfaW50ZXJydXB0aWJsZV9vcGVyYXRpb25zW3Nsb3RdLAorICAgICAgICAgICAgICAgMCwKKyAgICAgICAgICAgICAgIHNpemVvZihwc2FfdmVyaWZ5X2hhc2hfaW50ZXJydXB0aWJsZV9vcGVyYXRpb25fdCkpOworICAgICAgICB2ZXJpZnlfaGFzaF9pbnRlcnJ1cHRpYmxlX29wZXJhdGlvbl9oYW5kbGVzW3Nsb3RdID0gMDsKKyAgICB9CisKKyAgICBjbGllbnRfb3BlcmF0aW9uLmhhbmRsZSA9IHZlcmlmeV9oYXNoX2ludGVycnVwdGlibGVfb3BlcmF0aW9uX2hhbmRsZXNbc2xvdF07CisKKyAgICBtZW1jcHkoKnBvcywgJmNsaWVudF9vcGVyYXRpb24sIHNpemVvZihjbGllbnRfb3BlcmF0aW9uKSk7CisgICAgKnBvcyArPSBzaXplb2YoY2xpZW50X29wZXJhdGlvbik7CisKKyAgICByZXR1cm4gMTsKK30KKworaW50IHBzYXNpbV9zZXJ2ZXJfZGVzZXJpYWxpc2VfcHNhX3ZlcmlmeV9oYXNoX2ludGVycnVwdGlibGVfb3BlcmF0aW9uX3QodWludDhfdCAqKnBvcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCAqcmVtYWluaW5nLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHNhX3ZlcmlmeV9oYXNoX2ludGVycnVwdGlibGVfb3BlcmF0aW9uX3QgKipvcGVyYXRpb24pCit7CisgICAgcHNhc2ltX29wZXJhdGlvbl90IGNsaWVudF9vcGVyYXRpb247CisKKyAgICBpZiAoKnJlbWFpbmluZyA8IHNpemVvZihwc2FzaW1fb3BlcmF0aW9uX3QpKSB7CisgICAgICAgIHJldHVybiAwOworICAgIH0KKworICAgIG1lbWNweSgmY2xpZW50X29wZXJhdGlvbiwgKnBvcywgc2l6ZW9mKHBzYXNpbV9vcGVyYXRpb25fdCkpOworICAgICpwb3MgKz0gc2l6ZW9mKHBzYXNpbV9vcGVyYXRpb25fdCk7CisgICAgKnJlbWFpbmluZyAtPSBzaXplb2YocHNhc2ltX29wZXJhdGlvbl90KTsKKworICAgIHNzaXplX3Qgc2xvdDsKKyAgICBpZiAoY2xpZW50X29wZXJhdGlvbi5oYW5kbGUgPT0gMCkgeyAgICAgICAgIC8qIFdlIG5lZWQgYSBuZXcgaGFuZGxlICovCisgICAgICAgIHNsb3QgPSBhbGxvY2F0ZV92ZXJpZnlfaGFzaF9pbnRlcnJ1cHRpYmxlX29wZXJhdGlvbl9zbG90KCk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgc2xvdCA9IGZpbmRfdmVyaWZ5X2hhc2hfaW50ZXJydXB0aWJsZV9zbG90X2J5X2hhbmRsZShjbGllbnRfb3BlcmF0aW9uLmhhbmRsZSk7CisgICAgfQorCisgICAgaWYgKHNsb3QgPCAwKSB7CisgICAgICAgIHJldHVybiAwOworICAgIH0KKworICAgICpvcGVyYXRpb24gPSAmdmVyaWZ5X2hhc2hfaW50ZXJydXB0aWJsZV9vcGVyYXRpb25zW3Nsb3RdOworCisgICAgcmV0dXJuIDE7Cit9CisKK3NpemVfdCBwc2FzaW1fc2VyaWFsaXNlX21iZWR0bHNfc3ZjX2tleV9pZF90X25lZWRzKAorICAgIG1iZWR0bHNfc3ZjX2tleV9pZF90IHZhbHVlKQogewogICAgIHJldHVybiBzaXplb2YodmFsdWUpOwogfQpAQCAtNzE2LDggKzE2ODQsMzIgQEAKIAogdm9pZCBwc2Ffc2ltX3NlcmlhbGl6ZV9yZXNldCh2b2lkKQogewotICAgIG1lbXNldChoYXNoX29wZXJhdGlvbl9oYW5kbGVzLCAwLCBzaXplb2YoaGFzaF9vcGVyYXRpb25faGFuZGxlcykpOwotICAgIG1lbXNldChoYXNoX29wZXJhdGlvbnMsIDAsIHNpemVvZihoYXNoX29wZXJhdGlvbnMpKTsKLSAgICBtZW1zZXQoYWVhZF9vcGVyYXRpb25faGFuZGxlcywgMCwgc2l6ZW9mKGFlYWRfb3BlcmF0aW9uX2hhbmRsZXMpKTsKLSAgICBtZW1zZXQoYWVhZF9vcGVyYXRpb25zLCAwLCBzaXplb2YoYWVhZF9vcGVyYXRpb25zKSk7CisgICAgbWVtc2V0KGhhc2hfb3BlcmF0aW9uX2hhbmRsZXMsIDAsCisgICAgICAgICAgIHNpemVvZihoYXNoX29wZXJhdGlvbl9oYW5kbGVzKSk7CisgICAgbWVtc2V0KGhhc2hfb3BlcmF0aW9ucywgMCwKKyAgICAgICAgICAgc2l6ZW9mKGhhc2hfb3BlcmF0aW9ucykpOworICAgIG1lbXNldChhZWFkX29wZXJhdGlvbl9oYW5kbGVzLCAwLAorICAgICAgICAgICBzaXplb2YoYWVhZF9vcGVyYXRpb25faGFuZGxlcykpOworICAgIG1lbXNldChhZWFkX29wZXJhdGlvbnMsIDAsCisgICAgICAgICAgIHNpemVvZihhZWFkX29wZXJhdGlvbnMpKTsKKyAgICBtZW1zZXQobWFjX29wZXJhdGlvbl9oYW5kbGVzLCAwLAorICAgICAgICAgICBzaXplb2YobWFjX29wZXJhdGlvbl9oYW5kbGVzKSk7CisgICAgbWVtc2V0KG1hY19vcGVyYXRpb25zLCAwLAorICAgICAgICAgICBzaXplb2YobWFjX29wZXJhdGlvbnMpKTsKKyAgICBtZW1zZXQoY2lwaGVyX29wZXJhdGlvbl9oYW5kbGVzLCAwLAorICAgICAgICAgICBzaXplb2YoY2lwaGVyX29wZXJhdGlvbl9oYW5kbGVzKSk7CisgICAgbWVtc2V0KGNpcGhlcl9vcGVyYXRpb25zLCAwLAorICAgICAgICAgICBzaXplb2YoY2lwaGVyX29wZXJhdGlvbnMpKTsKKyAgICBtZW1zZXQoa2V5X2Rlcml2YXRpb25fb3BlcmF0aW9uX2hhbmRsZXMsIDAsCisgICAgICAgICAgIHNpemVvZihrZXlfZGVyaXZhdGlvbl9vcGVyYXRpb25faGFuZGxlcykpOworICAgIG1lbXNldChrZXlfZGVyaXZhdGlvbl9vcGVyYXRpb25zLCAwLAorICAgICAgICAgICBzaXplb2Yoa2V5X2Rlcml2YXRpb25fb3BlcmF0aW9ucykpOworICAgIG1lbXNldChzaWduX2hhc2hfaW50ZXJydXB0aWJsZV9vcGVyYXRpb25faGFuZGxlcywgMCwKKyAgICAgICAgICAgc2l6ZW9mKHNpZ25faGFzaF9pbnRlcnJ1cHRpYmxlX29wZXJhdGlvbl9oYW5kbGVzKSk7CisgICAgbWVtc2V0KHNpZ25faGFzaF9pbnRlcnJ1cHRpYmxlX29wZXJhdGlvbnMsIDAsCisgICAgICAgICAgIHNpemVvZihzaWduX2hhc2hfaW50ZXJydXB0aWJsZV9vcGVyYXRpb25zKSk7CisgICAgbWVtc2V0KHZlcmlmeV9oYXNoX2ludGVycnVwdGlibGVfb3BlcmF0aW9uX2hhbmRsZXMsIDAsCisgICAgICAgICAgIHNpemVvZih2ZXJpZnlfaGFzaF9pbnRlcnJ1cHRpYmxlX29wZXJhdGlvbl9oYW5kbGVzKSk7CisgICAgbWVtc2V0KHZlcmlmeV9oYXNoX2ludGVycnVwdGlibGVfb3BlcmF0aW9ucywgMCwKKyAgICAgICAgICAgc2l6ZW9mKHZlcmlmeV9oYXNoX2ludGVycnVwdGlibGVfb3BlcmF0aW9ucykpOwogfQpkaWZmIC0tZ2l0IGEvdGVzdHMvcHNhLWNsaWVudC1zZXJ2ZXIvcHNhc2ltL3NyYy9wc2Ffc2ltX3NlcmlhbGlzZS5oIGIvdGVzdHMvcHNhLWNsaWVudC1zZXJ2ZXIvcHNhc2ltL3NyYy9wc2Ffc2ltX3NlcmlhbGlzZS5oCmluZGV4IDUzNzczMGMuLmY2MGUzNzEgMTAwNjQ0Ci0tLSBhL3Rlc3RzL3BzYS1jbGllbnQtc2VydmVyL3BzYXNpbS9zcmMvcHNhX3NpbV9zZXJpYWxpc2UuaAorKysgYi90ZXN0cy9wc2EtY2xpZW50LXNlcnZlci9wc2FzaW0vc3JjL3BzYV9zaW1fc2VyaWFsaXNlLmgKQEAgLTEwNyw3ICsxMDcsOCBAQAogICogICAgICAgICAgICAgICAgICAgICAgICAgICBcYyBwc2FzaW1fc2VyaWFsaXNlX3Vuc2lnbmVkX2ludCgpIHRvIHNlcmlhbGlzZQogICogICAgICAgICAgICAgICAgICAgICAgICAgICB0aGUgZ2l2ZW4gdmFsdWUuCiAgKi8KLXNpemVfdCBwc2FzaW1fc2VyaWFsaXNlX3Vuc2lnbmVkX2ludF9uZWVkcyh1bnNpZ25lZCBpbnQgdmFsdWUpOworc2l6ZV90IHBzYXNpbV9zZXJpYWxpc2VfdW5zaWduZWRfaW50X25lZWRzKAorICAgIHVuc2lnbmVkIGludCB2YWx1ZSk7CiAKIC8qKiBTZXJpYWxpc2UgYW4gYHVuc2lnbmVkIGludGAgaW50byBhIGJ1ZmZlci4KICAqCkBAIC0xNDksNyArMTUwLDggQEAKICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgXGMgcHNhc2ltX3NlcmlhbGlzZV9pbnQoKSB0byBzZXJpYWxpc2UKICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlIGdpdmVuIHZhbHVlLgogICovCi1zaXplX3QgcHNhc2ltX3NlcmlhbGlzZV9pbnRfbmVlZHMoaW50IHZhbHVlKTsKK3NpemVfdCBwc2FzaW1fc2VyaWFsaXNlX2ludF9uZWVkcygKKyAgICBpbnQgdmFsdWUpOwogCiAvKiogU2VyaWFsaXNlIGFuIGBpbnRgIGludG8gYSBidWZmZXIuCiAgKgpAQCAtMTkxLDcgKzE5Myw4IEBACiAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgIFxjIHBzYXNpbV9zZXJpYWxpc2Vfc2l6ZV90KCkgdG8gc2VyaWFsaXNlCiAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoZSBnaXZlbiB2YWx1ZS4KICAqLwotc2l6ZV90IHBzYXNpbV9zZXJpYWxpc2Vfc2l6ZV90X25lZWRzKHNpemVfdCB2YWx1ZSk7CitzaXplX3QgcHNhc2ltX3NlcmlhbGlzZV9zaXplX3RfbmVlZHMoCisgICAgc2l6ZV90IHZhbHVlKTsKIAogLyoqIFNlcmlhbGlzZSBhIGBzaXplX3RgIGludG8gYSBidWZmZXIuCiAgKgpAQCAtMjIyLDYgKzIyNSwxMzUgQEAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCAqcmVtYWluaW5nLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90ICp2YWx1ZSk7CiAKKy8qKiBSZXR1cm4gaG93IG11Y2ggYnVmZmVyIHNwYWNlIGlzIG5lZWRlZCBieSBcYyBwc2FzaW1fc2VyaWFsaXNlX3VpbnQxNl90KCkKKyAqICB0byBzZXJpYWxpc2UgYW4gYHVpbnQxNl90YC4KKyAqCisgKiBccGFyYW0gdmFsdWUgICAgICAgICAgICAgIFRoZSB2YWx1ZSB0aGF0IHdpbGwgYmUgc2VyaWFsaXNlZCBpbnRvIHRoZSBidWZmZXIKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgKG5lZWRlZCBpbiBjYXNlIHNvbWUgc2VyaWFsaXNhdGlvbnMgYXJlIHZhbHVlLQorICogICAgICAgICAgICAgICAgICAgICAgICAgICBkZXBlbmRlbnQpLgorICoKKyAqIFxyZXR1cm4gICAgICAgICAgICAgICAgICAgVGhlIG51bWJlciBvZiBieXRlcyBuZWVkZWQgaW4gdGhlIGJ1ZmZlciBieQorICogICAgICAgICAgICAgICAgICAgICAgICAgICBcYyBwc2FzaW1fc2VyaWFsaXNlX3VpbnQxNl90KCkgdG8gc2VyaWFsaXNlCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoZSBnaXZlbiB2YWx1ZS4KKyAqLworc2l6ZV90IHBzYXNpbV9zZXJpYWxpc2VfdWludDE2X3RfbmVlZHMoCisgICAgdWludDE2X3QgdmFsdWUpOworCisvKiogU2VyaWFsaXNlIGFuIGB1aW50MTZfdGAgaW50byBhIGJ1ZmZlci4KKyAqCisgKiBccGFyYW0gcG9zW2luLG91dF0gICAgICAgIFBvaW50ZXIgdG8gYSBgdWludDhfdCAqYCBob2xkaW5nIGN1cnJlbnQgcG9zaXRpb24KKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gdGhlIGJ1ZmZlci4KKyAqIFxwYXJhbSByZW1haW5pbmdbaW4sb3V0XSAgUG9pbnRlciB0byBhIGBzaXplX3RgIGhvbGRpbmcgbnVtYmVyIG9mIGJ5dGVzCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlbWFpbmluZyBpbiB0aGUgYnVmZmVyLgorICogXHBhcmFtIHZhbHVlICAgICAgICAgICAgICBUaGUgdmFsdWUgdG8gc2VyaWFsaXNlIGludG8gdGhlIGJ1ZmZlci4KKyAqCisgKiBccmV0dXJuICAgICAgICAgICAgICAgICAgIFxjIDEgb24gc3VjY2VzcyAoIm9rYXkiKSwgXGMgMCBvbiBlcnJvci4KKyAqLworaW50IHBzYXNpbV9zZXJpYWxpc2VfdWludDE2X3QodWludDhfdCAqKnBvcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCAqcmVtYWluaW5nLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDE2X3QgdmFsdWUpOworCisvKiogRGVzZXJpYWxpc2UgYW4gYHVpbnQxNl90YCBmcm9tIGEgYnVmZmVyLgorICoKKyAqIFxwYXJhbSBwb3NbaW4sb3V0XSAgICAgICAgUG9pbnRlciB0byBhIGB1aW50OF90ICpgIGhvbGRpbmcgY3VycmVudCBwb3NpdGlvbgorICogICAgICAgICAgICAgICAgICAgICAgICAgICBpbiB0aGUgYnVmZmVyLgorICogXHBhcmFtIHJlbWFpbmluZ1tpbixvdXRdICBQb2ludGVyIHRvIGEgYHNpemVfdGAgaG9sZGluZyBudW1iZXIgb2YgYnl0ZXMKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVtYWluaW5nIGluIHRoZSBidWZmZXIuCisgKiBccGFyYW0gdmFsdWUgICAgICAgICAgICAgIFBvaW50ZXIgdG8gYW4gYHVpbnQxNl90YCB0byByZWNlaXZlIHRoZSB2YWx1ZQorICogICAgICAgICAgICAgICAgICAgICAgICAgICBkZXNlcmlhbGlzZWQgZnJvbSB0aGUgYnVmZmVyLgorICoKKyAqIFxyZXR1cm4gICAgICAgICAgICAgICAgICAgXGMgMSBvbiBzdWNjZXNzICgib2theSIpLCBcYyAwIG9uIGVycm9yLgorICovCitpbnQgcHNhc2ltX2Rlc2VyaWFsaXNlX3VpbnQxNl90KHVpbnQ4X3QgKipwb3MsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCAqcmVtYWluaW5nLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50MTZfdCAqdmFsdWUpOworCisvKiogUmV0dXJuIGhvdyBtdWNoIGJ1ZmZlciBzcGFjZSBpcyBuZWVkZWQgYnkgXGMgcHNhc2ltX3NlcmlhbGlzZV91aW50MzJfdCgpCisgKiAgdG8gc2VyaWFsaXNlIGFuIGB1aW50MzJfdGAuCisgKgorICogXHBhcmFtIHZhbHVlICAgICAgICAgICAgICBUaGUgdmFsdWUgdGhhdCB3aWxsIGJlIHNlcmlhbGlzZWQgaW50byB0aGUgYnVmZmVyCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgIChuZWVkZWQgaW4gY2FzZSBzb21lIHNlcmlhbGlzYXRpb25zIGFyZSB2YWx1ZS0KKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVwZW5kZW50KS4KKyAqCisgKiBccmV0dXJuICAgICAgICAgICAgICAgICAgIFRoZSBudW1iZXIgb2YgYnl0ZXMgbmVlZGVkIGluIHRoZSBidWZmZXIgYnkKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgXGMgcHNhc2ltX3NlcmlhbGlzZV91aW50MzJfdCgpIHRvIHNlcmlhbGlzZQorICogICAgICAgICAgICAgICAgICAgICAgICAgICB0aGUgZ2l2ZW4gdmFsdWUuCisgKi8KK3NpemVfdCBwc2FzaW1fc2VyaWFsaXNlX3VpbnQzMl90X25lZWRzKAorICAgIHVpbnQzMl90IHZhbHVlKTsKKworLyoqIFNlcmlhbGlzZSBhbiBgdWludDMyX3RgIGludG8gYSBidWZmZXIuCisgKgorICogXHBhcmFtIHBvc1tpbixvdXRdICAgICAgICBQb2ludGVyIHRvIGEgYHVpbnQ4X3QgKmAgaG9sZGluZyBjdXJyZW50IHBvc2l0aW9uCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIHRoZSBidWZmZXIuCisgKiBccGFyYW0gcmVtYWluaW5nW2luLG91dF0gIFBvaW50ZXIgdG8gYSBgc2l6ZV90YCBob2xkaW5nIG51bWJlciBvZiBieXRlcworICogICAgICAgICAgICAgICAgICAgICAgICAgICByZW1haW5pbmcgaW4gdGhlIGJ1ZmZlci4KKyAqIFxwYXJhbSB2YWx1ZSAgICAgICAgICAgICAgVGhlIHZhbHVlIHRvIHNlcmlhbGlzZSBpbnRvIHRoZSBidWZmZXIuCisgKgorICogXHJldHVybiAgICAgICAgICAgICAgICAgICBcYyAxIG9uIHN1Y2Nlc3MgKCJva2F5IiksIFxjIDAgb24gZXJyb3IuCisgKi8KK2ludCBwc2FzaW1fc2VyaWFsaXNlX3VpbnQzMl90KHVpbnQ4X3QgKipwb3MsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgKnJlbWFpbmluZywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQzMl90IHZhbHVlKTsKKworLyoqIERlc2VyaWFsaXNlIGFuIGB1aW50MzJfdGAgZnJvbSBhIGJ1ZmZlci4KKyAqCisgKiBccGFyYW0gcG9zW2luLG91dF0gICAgICAgIFBvaW50ZXIgdG8gYSBgdWludDhfdCAqYCBob2xkaW5nIGN1cnJlbnQgcG9zaXRpb24KKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gdGhlIGJ1ZmZlci4KKyAqIFxwYXJhbSByZW1haW5pbmdbaW4sb3V0XSAgUG9pbnRlciB0byBhIGBzaXplX3RgIGhvbGRpbmcgbnVtYmVyIG9mIGJ5dGVzCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlbWFpbmluZyBpbiB0aGUgYnVmZmVyLgorICogXHBhcmFtIHZhbHVlICAgICAgICAgICAgICBQb2ludGVyIHRvIGFuIGB1aW50MzJfdGAgdG8gcmVjZWl2ZSB0aGUgdmFsdWUKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVzZXJpYWxpc2VkIGZyb20gdGhlIGJ1ZmZlci4KKyAqCisgKiBccmV0dXJuICAgICAgICAgICAgICAgICAgIFxjIDEgb24gc3VjY2VzcyAoIm9rYXkiKSwgXGMgMCBvbiBlcnJvci4KKyAqLworaW50IHBzYXNpbV9kZXNlcmlhbGlzZV91aW50MzJfdCh1aW50OF90ICoqcG9zLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgKnJlbWFpbmluZywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDMyX3QgKnZhbHVlKTsKKworLyoqIFJldHVybiBob3cgbXVjaCBidWZmZXIgc3BhY2UgaXMgbmVlZGVkIGJ5IFxjIHBzYXNpbV9zZXJpYWxpc2VfdWludDY0X3QoKQorICogIHRvIHNlcmlhbGlzZSBhbiBgdWludDY0X3RgLgorICoKKyAqIFxwYXJhbSB2YWx1ZSAgICAgICAgICAgICAgVGhlIHZhbHVlIHRoYXQgd2lsbCBiZSBzZXJpYWxpc2VkIGludG8gdGhlIGJ1ZmZlcgorICogICAgICAgICAgICAgICAgICAgICAgICAgICAobmVlZGVkIGluIGNhc2Ugc29tZSBzZXJpYWxpc2F0aW9ucyBhcmUgdmFsdWUtCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlcGVuZGVudCkuCisgKgorICogXHJldHVybiAgICAgICAgICAgICAgICAgICBUaGUgbnVtYmVyIG9mIGJ5dGVzIG5lZWRlZCBpbiB0aGUgYnVmZmVyIGJ5CisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgIFxjIHBzYXNpbV9zZXJpYWxpc2VfdWludDY0X3QoKSB0byBzZXJpYWxpc2UKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlIGdpdmVuIHZhbHVlLgorICovCitzaXplX3QgcHNhc2ltX3NlcmlhbGlzZV91aW50NjRfdF9uZWVkcygKKyAgICB1aW50NjRfdCB2YWx1ZSk7CisKKy8qKiBTZXJpYWxpc2UgYW4gYHVpbnQ2NF90YCBpbnRvIGEgYnVmZmVyLgorICoKKyAqIFxwYXJhbSBwb3NbaW4sb3V0XSAgICAgICAgUG9pbnRlciB0byBhIGB1aW50OF90ICpgIGhvbGRpbmcgY3VycmVudCBwb3NpdGlvbgorICogICAgICAgICAgICAgICAgICAgICAgICAgICBpbiB0aGUgYnVmZmVyLgorICogXHBhcmFtIHJlbWFpbmluZ1tpbixvdXRdICBQb2ludGVyIHRvIGEgYHNpemVfdGAgaG9sZGluZyBudW1iZXIgb2YgYnl0ZXMKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVtYWluaW5nIGluIHRoZSBidWZmZXIuCisgKiBccGFyYW0gdmFsdWUgICAgICAgICAgICAgIFRoZSB2YWx1ZSB0byBzZXJpYWxpc2UgaW50byB0aGUgYnVmZmVyLgorICoKKyAqIFxyZXR1cm4gICAgICAgICAgICAgICAgICAgXGMgMSBvbiBzdWNjZXNzICgib2theSIpLCBcYyAwIG9uIGVycm9yLgorICovCitpbnQgcHNhc2ltX3NlcmlhbGlzZV91aW50NjRfdCh1aW50OF90ICoqcG9zLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90ICpyZW1haW5pbmcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50NjRfdCB2YWx1ZSk7CisKKy8qKiBEZXNlcmlhbGlzZSBhbiBgdWludDY0X3RgIGZyb20gYSBidWZmZXIuCisgKgorICogXHBhcmFtIHBvc1tpbixvdXRdICAgICAgICBQb2ludGVyIHRvIGEgYHVpbnQ4X3QgKmAgaG9sZGluZyBjdXJyZW50IHBvc2l0aW9uCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIHRoZSBidWZmZXIuCisgKiBccGFyYW0gcmVtYWluaW5nW2luLG91dF0gIFBvaW50ZXIgdG8gYSBgc2l6ZV90YCBob2xkaW5nIG51bWJlciBvZiBieXRlcworICogICAgICAgICAgICAgICAgICAgICAgICAgICByZW1haW5pbmcgaW4gdGhlIGJ1ZmZlci4KKyAqIFxwYXJhbSB2YWx1ZSAgICAgICAgICAgICAgUG9pbnRlciB0byBhbiBgdWludDY0X3RgIHRvIHJlY2VpdmUgdGhlIHZhbHVlCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlc2VyaWFsaXNlZCBmcm9tIHRoZSBidWZmZXIuCisgKgorICogXHJldHVybiAgICAgICAgICAgICAgICAgICBcYyAxIG9uIHN1Y2Nlc3MgKCJva2F5IiksIFxjIDAgb24gZXJyb3IuCisgKi8KK2ludCBwc2FzaW1fZGVzZXJpYWxpc2VfdWludDY0X3QodWludDhfdCAqKnBvcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90ICpyZW1haW5pbmcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQ2NF90ICp2YWx1ZSk7CisKIC8qKiBSZXR1cm4gaG93IG11Y2ggc3BhY2UgaXMgbmVlZGVkIGJ5IFxjIHBzYXNpbV9zZXJpYWxpc2VfYnVmZmVyKCkKICAqICB0byBzZXJpYWxpc2UgYSBidWZmZXI6IGEgKGB1aW50OF90ICpgLCBgc2l6ZV90YCkgcGFpci4KICAqCkBAIC0yODksNiArNDIxLDU2IEBACiBpbnQgcHNhc2ltX2Rlc2VyaWFsaXNlX3JldHVybl9idWZmZXIodWludDhfdCAqKnBvcywgc2l6ZV90ICpyZW1haW5pbmcsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDhfdCAqYnVmZmVyLCBzaXplX3QgYnVmZmVyX2xlbmd0aCk7CiAKKy8qKiBSZXR1cm4gaG93IG11Y2ggc3BhY2UgaXMgbmVlZGVkIGJ5IFxjIHBzYXNpbV9zZXJpYWxpc2VfcHNhX2tleV9wcm9kdWN0aW9uX3BhcmFtZXRlcnNfdCgpCisgKiAgdG8gc2VyaWFsaXNlIGEgcHNhX2tleV9wcm9kdWN0aW9uX3BhcmFtZXRlcnNfdCAoYSBzdHJ1Y3R1cmUgd2l0aCBhIGZsZXhpYmxlIGFycmF5IG1lbWJlcikuCisgKgorICogXHBhcmFtIHBhcmFtcyAgICAgICAgICAgICBQb2ludGVyIHRvIHRoZSBzdHJ1Y3QgdG8gYmUgc2VyaWFsaXNlZAorICogICAgICAgICAgICAgICAgICAgICAgICAgICAobmVlZGVkIGluIGNhc2Ugc29tZSBzZXJpYWxpc2F0aW9ucyBhcmUgdmFsdWUtCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlcGVuZGVudCkuCisgKiBccGFyYW0gZGF0YV9sZW5ndGggICAgICAgIE51bWJlciBvZiBieXRlcyBpbiB0aGUgZGF0YVtdIG9mIHRoZSBzdHJ1Y3QgdG8gYmUgc2VyaWFsaXNlZC4KKyAqCisgKiBccmV0dXJuICAgICAgICAgICAgICAgICAgIFRoZSBudW1iZXIgb2YgYnl0ZXMgbmVlZGVkIGluIHRoZSBzZXJpYWxpc2F0aW9uIGJ1ZmZlciBieQorICogICAgICAgICAgICAgICAgICAgICAgICAgICBcYyBwc2FzaW1fc2VyaWFsaXNlX3BzYV9rZXlfcHJvZHVjdGlvbl9wYXJhbWV0ZXJzX3QoKSB0byBzZXJpYWxpc2UKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlIHNwZWNpZmllZCBzdHJ1Y3R1cmUuCisgKi8KK3NpemVfdCBwc2FzaW1fc2VyaWFsaXNlX3BzYV9rZXlfcHJvZHVjdGlvbl9wYXJhbWV0ZXJzX3RfbmVlZHMoCisgICAgY29uc3QgcHNhX2tleV9wcm9kdWN0aW9uX3BhcmFtZXRlcnNfdCAqcGFyYW1zLAorICAgIHNpemVfdCBidWZmZXJfc2l6ZSk7CisKKy8qKiBTZXJpYWxpc2UgYSBwc2Ffa2V5X3Byb2R1Y3Rpb25fcGFyYW1ldGVyc190LgorICoKKyAqIFxwYXJhbSBwb3NbaW4sb3V0XSAgICAgICAgUG9pbnRlciB0byBhIGB1aW50OF90ICpgIGhvbGRpbmcgY3VycmVudCBwb3NpdGlvbgorICogICAgICAgICAgICAgICAgICAgICAgICAgICBpbiB0aGUgYnVmZmVyLgorICogXHBhcmFtIHJlbWFpbmluZ1tpbixvdXRdICBQb2ludGVyIHRvIGEgYHNpemVfdGAgaG9sZGluZyBudW1iZXIgb2YgYnl0ZXMKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVtYWluaW5nIGluIHRoZSBidWZmZXIuCisgKiBccGFyYW0gcGFyYW1zICAgICAgICAgICAgIFBvaW50ZXIgdG8gdGhlIHN0cnVjdHVyZSB0byBiZSBzZXJpYWxpc2VkLgorICogXHBhcmFtIGRhdGFfbGVuZ3RoICAgICAgICBOdW1iZXIgb2YgYnl0ZXMgaW4gdGhlIGRhdGFbXSBvZiB0aGUgc3RydWN0IHRvIGJlIHNlcmlhbGlzZWQuCisgKgorICogXHJldHVybiAgICAgICAgICAgICAgICAgICBcYyAxIG9uIHN1Y2Nlc3MgKCJva2F5IiksIFxjIDAgb24gZXJyb3IuCisgKi8KK2ludCBwc2FzaW1fc2VyaWFsaXNlX3BzYV9rZXlfcHJvZHVjdGlvbl9wYXJhbWV0ZXJzX3QodWludDhfdCAqKnBvcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90ICpyZW1haW5pbmcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHBzYV9rZXlfcHJvZHVjdGlvbl9wYXJhbWV0ZXJzX3QgKnBhcmFtcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IGRhdGFfbGVuZ3RoKTsKKworLyoqIERlc2VyaWFsaXNlIGEgcHNhX2tleV9wcm9kdWN0aW9uX3BhcmFtZXRlcnNfdC4KKyAqCisgKiBccGFyYW0gcG9zW2luLG91dF0gICAgICAgIFBvaW50ZXIgdG8gYSBgdWludDhfdCAqYCBob2xkaW5nIGN1cnJlbnQgcG9zaXRpb24KKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gdGhlIHNlcmlhbGlzYXRpb24gYnVmZmVyLgorICogXHBhcmFtIHJlbWFpbmluZ1tpbixvdXRdICBQb2ludGVyIHRvIGEgYHNpemVfdGAgaG9sZGluZyBudW1iZXIgb2YgYnl0ZXMKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVtYWluaW5nIGluIHRoZSBzZXJpYWxpc2F0aW9uIGJ1ZmZlci4KKyAqIFxwYXJhbSBwYXJhbXMgICAgICAgICAgICAgUG9pbnRlciB0byBhIGBwc2Ffa2V5X3Byb2R1Y3Rpb25fcGFyYW1ldGVyc190ICpgIHRvCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlY2VpdmUgdGhlIGFkZHJlc3Mgb2YgYSBuZXdseS1hbGxvY2F0ZWQgc3RydWN0dXJlLAorICogICAgICAgICAgICAgICAgICAgICAgICAgICB3aGljaCB0aGUgY2FsbGVyIG11c3QgYGZyZWUoKWAuCisgKiBccGFyYW0gZGF0YV9sZW5ndGggICAgICAgIFBvaW50ZXIgdG8gYSBgc2l6ZV90YCB0byByZWNlaXZlIHRoZSBudW1iZXIgb2YKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgYnl0ZXMgaW4gdGhlIGRhdGFbXSBtZW1iZXIgb2YgdGhlIHN0cnVjdHVyZSBkZXNlcmlhbGlzZWQuCisgKgorICogXHJldHVybiAgICAgICAgICAgICAgICAgICBcYyAxIG9uIHN1Y2Nlc3MgKCJva2F5IiksIFxjIDAgb24gZXJyb3IuCisgKi8KK2ludCBwc2FzaW1fZGVzZXJpYWxpc2VfcHNhX2tleV9wcm9kdWN0aW9uX3BhcmFtZXRlcnNfdCh1aW50OF90ICoqcG9zLCBzaXplX3QgKnJlbWFpbmluZywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwc2Ffa2V5X3Byb2R1Y3Rpb25fcGFyYW1ldGVyc190ICoqcGFyYW1zLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCAqYnVmZmVyX2xlbmd0aCk7CisKIC8qKiBSZXR1cm4gaG93IG11Y2ggYnVmZmVyIHNwYWNlIGlzIG5lZWRlZCBieSBcYyBwc2FzaW1fc2VyaWFsaXNlX3BzYV9zdGF0dXNfdCgpCiAgKiAgdG8gc2VyaWFsaXNlIGEgYHBzYV9zdGF0dXNfdGAuCiAgKgpAQCAtMzAwLDcgKzQ4Miw4IEBACiAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgIFxjIHBzYXNpbV9zZXJpYWxpc2VfcHNhX3N0YXR1c190KCkgdG8gc2VyaWFsaXNlCiAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoZSBnaXZlbiB2YWx1ZS4KICAqLwotc2l6ZV90IHBzYXNpbV9zZXJpYWxpc2VfcHNhX3N0YXR1c190X25lZWRzKHBzYV9zdGF0dXNfdCB2YWx1ZSk7CitzaXplX3QgcHNhc2ltX3NlcmlhbGlzZV9wc2Ffc3RhdHVzX3RfbmVlZHMoCisgICAgcHNhX3N0YXR1c190IHZhbHVlKTsKIAogLyoqIFNlcmlhbGlzZSBhIGBwc2Ffc3RhdHVzX3RgIGludG8gYSBidWZmZXIuCiAgKgpAQCAtMzQyLDcgKzUyNSw4IEBACiAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgIFxjIHBzYXNpbV9zZXJpYWxpc2VfcHNhX2FsZ29yaXRobV90KCkgdG8gc2VyaWFsaXNlCiAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoZSBnaXZlbiB2YWx1ZS4KICAqLwotc2l6ZV90IHBzYXNpbV9zZXJpYWxpc2VfcHNhX2FsZ29yaXRobV90X25lZWRzKHBzYV9hbGdvcml0aG1fdCB2YWx1ZSk7CitzaXplX3QgcHNhc2ltX3NlcmlhbGlzZV9wc2FfYWxnb3JpdGhtX3RfbmVlZHMoCisgICAgcHNhX2FsZ29yaXRobV90IHZhbHVlKTsKIAogLyoqIFNlcmlhbGlzZSBhIGBwc2FfYWxnb3JpdGhtX3RgIGludG8gYSBidWZmZXIuCiAgKgpAQCAtMzczLDYgKzU1Nyw0OSBAQAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90ICpyZW1haW5pbmcsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwc2FfYWxnb3JpdGhtX3QgKnZhbHVlKTsKIAorLyoqIFJldHVybiBob3cgbXVjaCBidWZmZXIgc3BhY2UgaXMgbmVlZGVkIGJ5IFxjIHBzYXNpbV9zZXJpYWxpc2VfcHNhX2tleV9kZXJpdmF0aW9uX3N0ZXBfdCgpCisgKiAgdG8gc2VyaWFsaXNlIGEgYHBzYV9rZXlfZGVyaXZhdGlvbl9zdGVwX3RgLgorICoKKyAqIFxwYXJhbSB2YWx1ZSAgICAgICAgICAgICAgVGhlIHZhbHVlIHRoYXQgd2lsbCBiZSBzZXJpYWxpc2VkIGludG8gdGhlIGJ1ZmZlcgorICogICAgICAgICAgICAgICAgICAgICAgICAgICAobmVlZGVkIGluIGNhc2Ugc29tZSBzZXJpYWxpc2F0aW9ucyBhcmUgdmFsdWUtCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlcGVuZGVudCkuCisgKgorICogXHJldHVybiAgICAgICAgICAgICAgICAgICBUaGUgbnVtYmVyIG9mIGJ5dGVzIG5lZWRlZCBpbiB0aGUgYnVmZmVyIGJ5CisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgIFxjIHBzYXNpbV9zZXJpYWxpc2VfcHNhX2tleV9kZXJpdmF0aW9uX3N0ZXBfdCgpIHRvIHNlcmlhbGlzZQorICogICAgICAgICAgICAgICAgICAgICAgICAgICB0aGUgZ2l2ZW4gdmFsdWUuCisgKi8KK3NpemVfdCBwc2FzaW1fc2VyaWFsaXNlX3BzYV9rZXlfZGVyaXZhdGlvbl9zdGVwX3RfbmVlZHMoCisgICAgcHNhX2tleV9kZXJpdmF0aW9uX3N0ZXBfdCB2YWx1ZSk7CisKKy8qKiBTZXJpYWxpc2UgYSBgcHNhX2tleV9kZXJpdmF0aW9uX3N0ZXBfdGAgaW50byBhIGJ1ZmZlci4KKyAqCisgKiBccGFyYW0gcG9zW2luLG91dF0gICAgICAgIFBvaW50ZXIgdG8gYSBgdWludDhfdCAqYCBob2xkaW5nIGN1cnJlbnQgcG9zaXRpb24KKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gdGhlIGJ1ZmZlci4KKyAqIFxwYXJhbSByZW1haW5pbmdbaW4sb3V0XSAgUG9pbnRlciB0byBhIGBzaXplX3RgIGhvbGRpbmcgbnVtYmVyIG9mIGJ5dGVzCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlbWFpbmluZyBpbiB0aGUgYnVmZmVyLgorICogXHBhcmFtIHZhbHVlICAgICAgICAgICAgICBUaGUgdmFsdWUgdG8gc2VyaWFsaXNlIGludG8gdGhlIGJ1ZmZlci4KKyAqCisgKiBccmV0dXJuICAgICAgICAgICAgICAgICAgIFxjIDEgb24gc3VjY2VzcyAoIm9rYXkiKSwgXGMgMCBvbiBlcnJvci4KKyAqLworaW50IHBzYXNpbV9zZXJpYWxpc2VfcHNhX2tleV9kZXJpdmF0aW9uX3N0ZXBfdCh1aW50OF90ICoqcG9zLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgKnJlbWFpbmluZywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHNhX2tleV9kZXJpdmF0aW9uX3N0ZXBfdCB2YWx1ZSk7CisKKy8qKiBEZXNlcmlhbGlzZSBhIGBwc2Ffa2V5X2Rlcml2YXRpb25fc3RlcF90YCBmcm9tIGEgYnVmZmVyLgorICoKKyAqIFxwYXJhbSBwb3NbaW4sb3V0XSAgICAgICAgUG9pbnRlciB0byBhIGB1aW50OF90ICpgIGhvbGRpbmcgY3VycmVudCBwb3NpdGlvbgorICogICAgICAgICAgICAgICAgICAgICAgICAgICBpbiB0aGUgYnVmZmVyLgorICogXHBhcmFtIHJlbWFpbmluZ1tpbixvdXRdICBQb2ludGVyIHRvIGEgYHNpemVfdGAgaG9sZGluZyBudW1iZXIgb2YgYnl0ZXMKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVtYWluaW5nIGluIHRoZSBidWZmZXIuCisgKiBccGFyYW0gdmFsdWUgICAgICAgICAgICAgIFBvaW50ZXIgdG8gYSBgcHNhX2tleV9kZXJpdmF0aW9uX3N0ZXBfdGAgdG8gcmVjZWl2ZSB0aGUgdmFsdWUKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVzZXJpYWxpc2VkIGZyb20gdGhlIGJ1ZmZlci4KKyAqCisgKiBccmV0dXJuICAgICAgICAgICAgICAgICAgIFxjIDEgb24gc3VjY2VzcyAoIm9rYXkiKSwgXGMgMCBvbiBlcnJvci4KKyAqLworaW50IHBzYXNpbV9kZXNlcmlhbGlzZV9wc2Ffa2V5X2Rlcml2YXRpb25fc3RlcF90KHVpbnQ4X3QgKipwb3MsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90ICpyZW1haW5pbmcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHNhX2tleV9kZXJpdmF0aW9uX3N0ZXBfdCAqdmFsdWUpOworCiAvKiogUmV0dXJuIGhvdyBtdWNoIGJ1ZmZlciBzcGFjZSBpcyBuZWVkZWQgYnkgXGMgcHNhc2ltX3NlcmlhbGlzZV9wc2FfaGFzaF9vcGVyYXRpb25fdCgpCiAgKiAgdG8gc2VyaWFsaXNlIGEgYHBzYV9oYXNoX29wZXJhdGlvbl90YC4KICAqCkBAIC0zODQsNyArNjExLDggQEAKICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgXGMgcHNhc2ltX3NlcmlhbGlzZV9wc2FfaGFzaF9vcGVyYXRpb25fdCgpIHRvIHNlcmlhbGlzZQogICogICAgICAgICAgICAgICAgICAgICAgICAgICB0aGUgZ2l2ZW4gdmFsdWUuCiAgKi8KLXNpemVfdCBwc2FzaW1fc2VyaWFsaXNlX3BzYV9oYXNoX29wZXJhdGlvbl90X25lZWRzKHBzYV9oYXNoX29wZXJhdGlvbl90IHZhbHVlKTsKK3NpemVfdCBwc2FzaW1fc2VyaWFsaXNlX3BzYV9oYXNoX29wZXJhdGlvbl90X25lZWRzKAorICAgIHBzYV9oYXNoX29wZXJhdGlvbl90IHZhbHVlKTsKIAogLyoqIFNlcmlhbGlzZSBhIGBwc2FfaGFzaF9vcGVyYXRpb25fdGAgaW50byBhIGJ1ZmZlci4KICAqCkBAIC00MjYsNyArNjU0LDggQEAKICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgXGMgcHNhc2ltX3NlcmlhbGlzZV9wc2FfaGFzaF9vcGVyYXRpb25fdCgpIHRvIHNlcmlhbGlzZQogICogICAgICAgICAgICAgICAgICAgICAgICAgICB0aGUgZ2l2ZW4gdmFsdWUuCiAgKi8KLXNpemVfdCBwc2FzaW1fc2VydmVyX3NlcmlhbGlzZV9wc2FfaGFzaF9vcGVyYXRpb25fdF9uZWVkcyhwc2FfaGFzaF9vcGVyYXRpb25fdCAqdmFsdWUpOworc2l6ZV90IHBzYXNpbV9zZXJ2ZXJfc2VyaWFsaXNlX3BzYV9oYXNoX29wZXJhdGlvbl90X25lZWRzKAorICAgIHBzYV9oYXNoX29wZXJhdGlvbl90ICp2YWx1ZSk7CiAKIC8qKiBTZXJpYWxpc2UgYSBgcHNhX2hhc2hfb3BlcmF0aW9uX3RgIGludG8gYSBidWZmZXIgb24gdGhlIHNlcnZlciBzaWRlLgogICoKQEAgLTQzNSwxMiArNjY0LDE1IEBACiAgKiBccGFyYW0gcmVtYWluaW5nW2luLG91dF0gIFBvaW50ZXIgdG8gYSBgc2l6ZV90YCBob2xkaW5nIG51bWJlciBvZiBieXRlcwogICogICAgICAgICAgICAgICAgICAgICAgICAgICByZW1haW5pbmcgaW4gdGhlIGJ1ZmZlci4KICAqIFxwYXJhbSB2YWx1ZSAgICAgICAgICAgICAgVGhlIHZhbHVlIHRvIHNlcmlhbGlzZSBpbnRvIHRoZSBidWZmZXIuCisgKiBccGFyYW0gY29tcGxldGVkICAgICAgICAgIE5vbi16ZXJvIGlmIHRoZSBvcGVyYXRpb24gaXMgbm93IGNvbXBsZXRlZCAoc2V0IGJ5CisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbmlzaCBhbmQgYWJvcnQgY2FsbHMpLgogICoKICAqIFxyZXR1cm4gICAgICAgICAgICAgICAgICAgXGMgMSBvbiBzdWNjZXNzICgib2theSIpLCBcYyAwIG9uIGVycm9yLgogICovCiBpbnQgcHNhc2ltX3NlcnZlcl9zZXJpYWxpc2VfcHNhX2hhc2hfb3BlcmF0aW9uX3QodWludDhfdCAqKnBvcywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgKnJlbWFpbmluZywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwc2FfaGFzaF9vcGVyYXRpb25fdCAqdmFsdWUpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBzYV9oYXNoX29wZXJhdGlvbl90ICp2YWx1ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgY29tcGxldGVkKTsKIAogLyoqIERlc2VyaWFsaXNlIGEgYHBzYV9oYXNoX29wZXJhdGlvbl90YCBmcm9tIGEgYnVmZmVyIG9uIHRoZSBzZXJ2ZXIgc2lkZS4KICAqCkBAIC00NjgsNyArNzAwLDggQEAKICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgXGMgcHNhc2ltX3NlcmlhbGlzZV9wc2FfYWVhZF9vcGVyYXRpb25fdCgpIHRvIHNlcmlhbGlzZQogICogICAgICAgICAgICAgICAgICAgICAgICAgICB0aGUgZ2l2ZW4gdmFsdWUuCiAgKi8KLXNpemVfdCBwc2FzaW1fc2VyaWFsaXNlX3BzYV9hZWFkX29wZXJhdGlvbl90X25lZWRzKHBzYV9hZWFkX29wZXJhdGlvbl90IHZhbHVlKTsKK3NpemVfdCBwc2FzaW1fc2VyaWFsaXNlX3BzYV9hZWFkX29wZXJhdGlvbl90X25lZWRzKAorICAgIHBzYV9hZWFkX29wZXJhdGlvbl90IHZhbHVlKTsKIAogLyoqIFNlcmlhbGlzZSBhIGBwc2FfYWVhZF9vcGVyYXRpb25fdGAgaW50byBhIGJ1ZmZlci4KICAqCkBAIC01MTAsNyArNzQzLDggQEAKICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgXGMgcHNhc2ltX3NlcmlhbGlzZV9wc2FfYWVhZF9vcGVyYXRpb25fdCgpIHRvIHNlcmlhbGlzZQogICogICAgICAgICAgICAgICAgICAgICAgICAgICB0aGUgZ2l2ZW4gdmFsdWUuCiAgKi8KLXNpemVfdCBwc2FzaW1fc2VydmVyX3NlcmlhbGlzZV9wc2FfYWVhZF9vcGVyYXRpb25fdF9uZWVkcyhwc2FfYWVhZF9vcGVyYXRpb25fdCAqdmFsdWUpOworc2l6ZV90IHBzYXNpbV9zZXJ2ZXJfc2VyaWFsaXNlX3BzYV9hZWFkX29wZXJhdGlvbl90X25lZWRzKAorICAgIHBzYV9hZWFkX29wZXJhdGlvbl90ICp2YWx1ZSk7CiAKIC8qKiBTZXJpYWxpc2UgYSBgcHNhX2FlYWRfb3BlcmF0aW9uX3RgIGludG8gYSBidWZmZXIgb24gdGhlIHNlcnZlciBzaWRlLgogICoKQEAgLTUxOSwxMiArNzUzLDE1IEBACiAgKiBccGFyYW0gcmVtYWluaW5nW2luLG91dF0gIFBvaW50ZXIgdG8gYSBgc2l6ZV90YCBob2xkaW5nIG51bWJlciBvZiBieXRlcwogICogICAgICAgICAgICAgICAgICAgICAgICAgICByZW1haW5pbmcgaW4gdGhlIGJ1ZmZlci4KICAqIFxwYXJhbSB2YWx1ZSAgICAgICAgICAgICAgVGhlIHZhbHVlIHRvIHNlcmlhbGlzZSBpbnRvIHRoZSBidWZmZXIuCisgKiBccGFyYW0gY29tcGxldGVkICAgICAgICAgIE5vbi16ZXJvIGlmIHRoZSBvcGVyYXRpb24gaXMgbm93IGNvbXBsZXRlZCAoc2V0IGJ5CisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbmlzaCBhbmQgYWJvcnQgY2FsbHMpLgogICoKICAqIFxyZXR1cm4gICAgICAgICAgICAgICAgICAgXGMgMSBvbiBzdWNjZXNzICgib2theSIpLCBcYyAwIG9uIGVycm9yLgogICovCiBpbnQgcHNhc2ltX3NlcnZlcl9zZXJpYWxpc2VfcHNhX2FlYWRfb3BlcmF0aW9uX3QodWludDhfdCAqKnBvcywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgKnJlbWFpbmluZywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwc2FfYWVhZF9vcGVyYXRpb25fdCAqdmFsdWUpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBzYV9hZWFkX29wZXJhdGlvbl90ICp2YWx1ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgY29tcGxldGVkKTsKIAogLyoqIERlc2VyaWFsaXNlIGEgYHBzYV9hZWFkX29wZXJhdGlvbl90YCBmcm9tIGEgYnVmZmVyIG9uIHRoZSBzZXJ2ZXIgc2lkZS4KICAqCkBAIC01NTIsNyArNzg5LDggQEAKICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgXGMgcHNhc2ltX3NlcmlhbGlzZV9wc2Ffa2V5X2F0dHJpYnV0ZXNfdCgpIHRvIHNlcmlhbGlzZQogICogICAgICAgICAgICAgICAgICAgICAgICAgICB0aGUgZ2l2ZW4gdmFsdWUuCiAgKi8KLXNpemVfdCBwc2FzaW1fc2VyaWFsaXNlX3BzYV9rZXlfYXR0cmlidXRlc190X25lZWRzKHBzYV9rZXlfYXR0cmlidXRlc190IHZhbHVlKTsKK3NpemVfdCBwc2FzaW1fc2VyaWFsaXNlX3BzYV9rZXlfYXR0cmlidXRlc190X25lZWRzKAorICAgIHBzYV9rZXlfYXR0cmlidXRlc190IHZhbHVlKTsKIAogLyoqIFNlcmlhbGlzZSBhIGBwc2Ffa2V5X2F0dHJpYnV0ZXNfdGAgaW50byBhIGJ1ZmZlci4KICAqCkBAIC01ODMsNiArODIxLDQ1MSBAQAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgKnJlbWFpbmluZywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHNhX2tleV9hdHRyaWJ1dGVzX3QgKnZhbHVlKTsKIAorLyoqIFJldHVybiBob3cgbXVjaCBidWZmZXIgc3BhY2UgaXMgbmVlZGVkIGJ5IFxjIHBzYXNpbV9zZXJpYWxpc2VfcHNhX21hY19vcGVyYXRpb25fdCgpCisgKiAgdG8gc2VyaWFsaXNlIGEgYHBzYV9tYWNfb3BlcmF0aW9uX3RgLgorICoKKyAqIFxwYXJhbSB2YWx1ZSAgICAgICAgICAgICAgVGhlIHZhbHVlIHRoYXQgd2lsbCBiZSBzZXJpYWxpc2VkIGludG8gdGhlIGJ1ZmZlcgorICogICAgICAgICAgICAgICAgICAgICAgICAgICAobmVlZGVkIGluIGNhc2Ugc29tZSBzZXJpYWxpc2F0aW9ucyBhcmUgdmFsdWUtCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlcGVuZGVudCkuCisgKgorICogXHJldHVybiAgICAgICAgICAgICAgICAgICBUaGUgbnVtYmVyIG9mIGJ5dGVzIG5lZWRlZCBpbiB0aGUgYnVmZmVyIGJ5CisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgIFxjIHBzYXNpbV9zZXJpYWxpc2VfcHNhX21hY19vcGVyYXRpb25fdCgpIHRvIHNlcmlhbGlzZQorICogICAgICAgICAgICAgICAgICAgICAgICAgICB0aGUgZ2l2ZW4gdmFsdWUuCisgKi8KK3NpemVfdCBwc2FzaW1fc2VyaWFsaXNlX3BzYV9tYWNfb3BlcmF0aW9uX3RfbmVlZHMoCisgICAgcHNhX21hY19vcGVyYXRpb25fdCB2YWx1ZSk7CisKKy8qKiBTZXJpYWxpc2UgYSBgcHNhX21hY19vcGVyYXRpb25fdGAgaW50byBhIGJ1ZmZlci4KKyAqCisgKiBccGFyYW0gcG9zW2luLG91dF0gICAgICAgIFBvaW50ZXIgdG8gYSBgdWludDhfdCAqYCBob2xkaW5nIGN1cnJlbnQgcG9zaXRpb24KKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gdGhlIGJ1ZmZlci4KKyAqIFxwYXJhbSByZW1haW5pbmdbaW4sb3V0XSAgUG9pbnRlciB0byBhIGBzaXplX3RgIGhvbGRpbmcgbnVtYmVyIG9mIGJ5dGVzCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlbWFpbmluZyBpbiB0aGUgYnVmZmVyLgorICogXHBhcmFtIHZhbHVlICAgICAgICAgICAgICBUaGUgdmFsdWUgdG8gc2VyaWFsaXNlIGludG8gdGhlIGJ1ZmZlci4KKyAqCisgKiBccmV0dXJuICAgICAgICAgICAgICAgICAgIFxjIDEgb24gc3VjY2VzcyAoIm9rYXkiKSwgXGMgMCBvbiBlcnJvci4KKyAqLworaW50IHBzYXNpbV9zZXJpYWxpc2VfcHNhX21hY19vcGVyYXRpb25fdCh1aW50OF90ICoqcG9zLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgKnJlbWFpbmluZywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHNhX21hY19vcGVyYXRpb25fdCB2YWx1ZSk7CisKKy8qKiBEZXNlcmlhbGlzZSBhIGBwc2FfbWFjX29wZXJhdGlvbl90YCBmcm9tIGEgYnVmZmVyLgorICoKKyAqIFxwYXJhbSBwb3NbaW4sb3V0XSAgICAgICAgUG9pbnRlciB0byBhIGB1aW50OF90ICpgIGhvbGRpbmcgY3VycmVudCBwb3NpdGlvbgorICogICAgICAgICAgICAgICAgICAgICAgICAgICBpbiB0aGUgYnVmZmVyLgorICogXHBhcmFtIHJlbWFpbmluZ1tpbixvdXRdICBQb2ludGVyIHRvIGEgYHNpemVfdGAgaG9sZGluZyBudW1iZXIgb2YgYnl0ZXMKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVtYWluaW5nIGluIHRoZSBidWZmZXIuCisgKiBccGFyYW0gdmFsdWUgICAgICAgICAgICAgIFBvaW50ZXIgdG8gYSBgcHNhX21hY19vcGVyYXRpb25fdGAgdG8gcmVjZWl2ZSB0aGUgdmFsdWUKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVzZXJpYWxpc2VkIGZyb20gdGhlIGJ1ZmZlci4KKyAqCisgKiBccmV0dXJuICAgICAgICAgICAgICAgICAgIFxjIDEgb24gc3VjY2VzcyAoIm9rYXkiKSwgXGMgMCBvbiBlcnJvci4KKyAqLworaW50IHBzYXNpbV9kZXNlcmlhbGlzZV9wc2FfbWFjX29wZXJhdGlvbl90KHVpbnQ4X3QgKipwb3MsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90ICpyZW1haW5pbmcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHNhX21hY19vcGVyYXRpb25fdCAqdmFsdWUpOworCisvKiogUmV0dXJuIGhvdyBtdWNoIGJ1ZmZlciBzcGFjZSBpcyBuZWVkZWQgYnkgXGMgcHNhc2ltX3NlcnZlcl9zZXJpYWxpc2VfcHNhX21hY19vcGVyYXRpb25fdCgpCisgKiAgdG8gc2VyaWFsaXNlIGEgYHBzYV9tYWNfb3BlcmF0aW9uX3RgLgorICoKKyAqIFxwYXJhbSB2YWx1ZSAgICAgICAgICAgICAgVGhlIHZhbHVlIHRoYXQgd2lsbCBiZSBzZXJpYWxpc2VkIGludG8gdGhlIGJ1ZmZlcgorICogICAgICAgICAgICAgICAgICAgICAgICAgICAobmVlZGVkIGluIGNhc2Ugc29tZSBzZXJpYWxpc2F0aW9ucyBhcmUgdmFsdWUtCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlcGVuZGVudCkuCisgKgorICogXHJldHVybiAgICAgICAgICAgICAgICAgICBUaGUgbnVtYmVyIG9mIGJ5dGVzIG5lZWRlZCBpbiB0aGUgYnVmZmVyIGJ5CisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgIFxjIHBzYXNpbV9zZXJpYWxpc2VfcHNhX21hY19vcGVyYXRpb25fdCgpIHRvIHNlcmlhbGlzZQorICogICAgICAgICAgICAgICAgICAgICAgICAgICB0aGUgZ2l2ZW4gdmFsdWUuCisgKi8KK3NpemVfdCBwc2FzaW1fc2VydmVyX3NlcmlhbGlzZV9wc2FfbWFjX29wZXJhdGlvbl90X25lZWRzKAorICAgIHBzYV9tYWNfb3BlcmF0aW9uX3QgKnZhbHVlKTsKKworLyoqIFNlcmlhbGlzZSBhIGBwc2FfbWFjX29wZXJhdGlvbl90YCBpbnRvIGEgYnVmZmVyIG9uIHRoZSBzZXJ2ZXIgc2lkZS4KKyAqCisgKiBccGFyYW0gcG9zW2luLG91dF0gICAgICAgIFBvaW50ZXIgdG8gYSBgdWludDhfdCAqYCBob2xkaW5nIGN1cnJlbnQgcG9zaXRpb24KKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gdGhlIGJ1ZmZlci4KKyAqIFxwYXJhbSByZW1haW5pbmdbaW4sb3V0XSAgUG9pbnRlciB0byBhIGBzaXplX3RgIGhvbGRpbmcgbnVtYmVyIG9mIGJ5dGVzCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlbWFpbmluZyBpbiB0aGUgYnVmZmVyLgorICogXHBhcmFtIHZhbHVlICAgICAgICAgICAgICBUaGUgdmFsdWUgdG8gc2VyaWFsaXNlIGludG8gdGhlIGJ1ZmZlci4KKyAqIFxwYXJhbSBjb21wbGV0ZWQgICAgICAgICAgTm9uLXplcm8gaWYgdGhlIG9wZXJhdGlvbiBpcyBub3cgY29tcGxldGVkIChzZXQgYnkKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgZmluaXNoIGFuZCBhYm9ydCBjYWxscykuCisgKgorICogXHJldHVybiAgICAgICAgICAgICAgICAgICBcYyAxIG9uIHN1Y2Nlc3MgKCJva2F5IiksIFxjIDAgb24gZXJyb3IuCisgKi8KK2ludCBwc2FzaW1fc2VydmVyX3NlcmlhbGlzZV9wc2FfbWFjX29wZXJhdGlvbl90KHVpbnQ4X3QgKipwb3MsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgKnJlbWFpbmluZywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBzYV9tYWNfb3BlcmF0aW9uX3QgKnZhbHVlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGNvbXBsZXRlZCk7CisKKy8qKiBEZXNlcmlhbGlzZSBhIGBwc2FfbWFjX29wZXJhdGlvbl90YCBmcm9tIGEgYnVmZmVyIG9uIHRoZSBzZXJ2ZXIgc2lkZS4KKyAqCisgKiBccGFyYW0gcG9zW2luLG91dF0gICAgICAgIFBvaW50ZXIgdG8gYSBgdWludDhfdCAqYCBob2xkaW5nIGN1cnJlbnQgcG9zaXRpb24KKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gdGhlIGJ1ZmZlci4KKyAqIFxwYXJhbSByZW1haW5pbmdbaW4sb3V0XSAgUG9pbnRlciB0byBhIGBzaXplX3RgIGhvbGRpbmcgbnVtYmVyIG9mIGJ5dGVzCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlbWFpbmluZyBpbiB0aGUgYnVmZmVyLgorICogXHBhcmFtIHZhbHVlICAgICAgICAgICAgICBQb2ludGVyIHRvIGEgYHBzYV9tYWNfb3BlcmF0aW9uX3RgIHRvIHJlY2VpdmUgdGhlIHZhbHVlCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlc2VyaWFsaXNlZCBmcm9tIHRoZSBidWZmZXIuCisgKgorICogXHJldHVybiAgICAgICAgICAgICAgICAgICBcYyAxIG9uIHN1Y2Nlc3MgKCJva2F5IiksIFxjIDAgb24gZXJyb3IuCisgKi8KK2ludCBwc2FzaW1fc2VydmVyX2Rlc2VyaWFsaXNlX3BzYV9tYWNfb3BlcmF0aW9uX3QodWludDhfdCAqKnBvcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90ICpyZW1haW5pbmcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBzYV9tYWNfb3BlcmF0aW9uX3QgKip2YWx1ZSk7CisKKy8qKiBSZXR1cm4gaG93IG11Y2ggYnVmZmVyIHNwYWNlIGlzIG5lZWRlZCBieSBcYyBwc2FzaW1fc2VyaWFsaXNlX3BzYV9jaXBoZXJfb3BlcmF0aW9uX3QoKQorICogIHRvIHNlcmlhbGlzZSBhIGBwc2FfY2lwaGVyX29wZXJhdGlvbl90YC4KKyAqCisgKiBccGFyYW0gdmFsdWUgICAgICAgICAgICAgIFRoZSB2YWx1ZSB0aGF0IHdpbGwgYmUgc2VyaWFsaXNlZCBpbnRvIHRoZSBidWZmZXIKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgKG5lZWRlZCBpbiBjYXNlIHNvbWUgc2VyaWFsaXNhdGlvbnMgYXJlIHZhbHVlLQorICogICAgICAgICAgICAgICAgICAgICAgICAgICBkZXBlbmRlbnQpLgorICoKKyAqIFxyZXR1cm4gICAgICAgICAgICAgICAgICAgVGhlIG51bWJlciBvZiBieXRlcyBuZWVkZWQgaW4gdGhlIGJ1ZmZlciBieQorICogICAgICAgICAgICAgICAgICAgICAgICAgICBcYyBwc2FzaW1fc2VyaWFsaXNlX3BzYV9jaXBoZXJfb3BlcmF0aW9uX3QoKSB0byBzZXJpYWxpc2UKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlIGdpdmVuIHZhbHVlLgorICovCitzaXplX3QgcHNhc2ltX3NlcmlhbGlzZV9wc2FfY2lwaGVyX29wZXJhdGlvbl90X25lZWRzKAorICAgIHBzYV9jaXBoZXJfb3BlcmF0aW9uX3QgdmFsdWUpOworCisvKiogU2VyaWFsaXNlIGEgYHBzYV9jaXBoZXJfb3BlcmF0aW9uX3RgIGludG8gYSBidWZmZXIuCisgKgorICogXHBhcmFtIHBvc1tpbixvdXRdICAgICAgICBQb2ludGVyIHRvIGEgYHVpbnQ4X3QgKmAgaG9sZGluZyBjdXJyZW50IHBvc2l0aW9uCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIHRoZSBidWZmZXIuCisgKiBccGFyYW0gcmVtYWluaW5nW2luLG91dF0gIFBvaW50ZXIgdG8gYSBgc2l6ZV90YCBob2xkaW5nIG51bWJlciBvZiBieXRlcworICogICAgICAgICAgICAgICAgICAgICAgICAgICByZW1haW5pbmcgaW4gdGhlIGJ1ZmZlci4KKyAqIFxwYXJhbSB2YWx1ZSAgICAgICAgICAgICAgVGhlIHZhbHVlIHRvIHNlcmlhbGlzZSBpbnRvIHRoZSBidWZmZXIuCisgKgorICogXHJldHVybiAgICAgICAgICAgICAgICAgICBcYyAxIG9uIHN1Y2Nlc3MgKCJva2F5IiksIFxjIDAgb24gZXJyb3IuCisgKi8KK2ludCBwc2FzaW1fc2VyaWFsaXNlX3BzYV9jaXBoZXJfb3BlcmF0aW9uX3QodWludDhfdCAqKnBvcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90ICpyZW1haW5pbmcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBzYV9jaXBoZXJfb3BlcmF0aW9uX3QgdmFsdWUpOworCisvKiogRGVzZXJpYWxpc2UgYSBgcHNhX2NpcGhlcl9vcGVyYXRpb25fdGAgZnJvbSBhIGJ1ZmZlci4KKyAqCisgKiBccGFyYW0gcG9zW2luLG91dF0gICAgICAgIFBvaW50ZXIgdG8gYSBgdWludDhfdCAqYCBob2xkaW5nIGN1cnJlbnQgcG9zaXRpb24KKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gdGhlIGJ1ZmZlci4KKyAqIFxwYXJhbSByZW1haW5pbmdbaW4sb3V0XSAgUG9pbnRlciB0byBhIGBzaXplX3RgIGhvbGRpbmcgbnVtYmVyIG9mIGJ5dGVzCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlbWFpbmluZyBpbiB0aGUgYnVmZmVyLgorICogXHBhcmFtIHZhbHVlICAgICAgICAgICAgICBQb2ludGVyIHRvIGEgYHBzYV9jaXBoZXJfb3BlcmF0aW9uX3RgIHRvIHJlY2VpdmUgdGhlIHZhbHVlCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlc2VyaWFsaXNlZCBmcm9tIHRoZSBidWZmZXIuCisgKgorICogXHJldHVybiAgICAgICAgICAgICAgICAgICBcYyAxIG9uIHN1Y2Nlc3MgKCJva2F5IiksIFxjIDAgb24gZXJyb3IuCisgKi8KK2ludCBwc2FzaW1fZGVzZXJpYWxpc2VfcHNhX2NpcGhlcl9vcGVyYXRpb25fdCh1aW50OF90ICoqcG9zLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCAqcmVtYWluaW5nLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBzYV9jaXBoZXJfb3BlcmF0aW9uX3QgKnZhbHVlKTsKKworLyoqIFJldHVybiBob3cgbXVjaCBidWZmZXIgc3BhY2UgaXMgbmVlZGVkIGJ5IFxjIHBzYXNpbV9zZXJ2ZXJfc2VyaWFsaXNlX3BzYV9jaXBoZXJfb3BlcmF0aW9uX3QoKQorICogIHRvIHNlcmlhbGlzZSBhIGBwc2FfY2lwaGVyX29wZXJhdGlvbl90YC4KKyAqCisgKiBccGFyYW0gdmFsdWUgICAgICAgICAgICAgIFRoZSB2YWx1ZSB0aGF0IHdpbGwgYmUgc2VyaWFsaXNlZCBpbnRvIHRoZSBidWZmZXIKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgKG5lZWRlZCBpbiBjYXNlIHNvbWUgc2VyaWFsaXNhdGlvbnMgYXJlIHZhbHVlLQorICogICAgICAgICAgICAgICAgICAgICAgICAgICBkZXBlbmRlbnQpLgorICoKKyAqIFxyZXR1cm4gICAgICAgICAgICAgICAgICAgVGhlIG51bWJlciBvZiBieXRlcyBuZWVkZWQgaW4gdGhlIGJ1ZmZlciBieQorICogICAgICAgICAgICAgICAgICAgICAgICAgICBcYyBwc2FzaW1fc2VyaWFsaXNlX3BzYV9jaXBoZXJfb3BlcmF0aW9uX3QoKSB0byBzZXJpYWxpc2UKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlIGdpdmVuIHZhbHVlLgorICovCitzaXplX3QgcHNhc2ltX3NlcnZlcl9zZXJpYWxpc2VfcHNhX2NpcGhlcl9vcGVyYXRpb25fdF9uZWVkcygKKyAgICBwc2FfY2lwaGVyX29wZXJhdGlvbl90ICp2YWx1ZSk7CisKKy8qKiBTZXJpYWxpc2UgYSBgcHNhX2NpcGhlcl9vcGVyYXRpb25fdGAgaW50byBhIGJ1ZmZlciBvbiB0aGUgc2VydmVyIHNpZGUuCisgKgorICogXHBhcmFtIHBvc1tpbixvdXRdICAgICAgICBQb2ludGVyIHRvIGEgYHVpbnQ4X3QgKmAgaG9sZGluZyBjdXJyZW50IHBvc2l0aW9uCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIHRoZSBidWZmZXIuCisgKiBccGFyYW0gcmVtYWluaW5nW2luLG91dF0gIFBvaW50ZXIgdG8gYSBgc2l6ZV90YCBob2xkaW5nIG51bWJlciBvZiBieXRlcworICogICAgICAgICAgICAgICAgICAgICAgICAgICByZW1haW5pbmcgaW4gdGhlIGJ1ZmZlci4KKyAqIFxwYXJhbSB2YWx1ZSAgICAgICAgICAgICAgVGhlIHZhbHVlIHRvIHNlcmlhbGlzZSBpbnRvIHRoZSBidWZmZXIuCisgKiBccGFyYW0gY29tcGxldGVkICAgICAgICAgIE5vbi16ZXJvIGlmIHRoZSBvcGVyYXRpb24gaXMgbm93IGNvbXBsZXRlZCAoc2V0IGJ5CisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbmlzaCBhbmQgYWJvcnQgY2FsbHMpLgorICoKKyAqIFxyZXR1cm4gICAgICAgICAgICAgICAgICAgXGMgMSBvbiBzdWNjZXNzICgib2theSIpLCBcYyAwIG9uIGVycm9yLgorICovCitpbnQgcHNhc2ltX3NlcnZlcl9zZXJpYWxpc2VfcHNhX2NpcGhlcl9vcGVyYXRpb25fdCh1aW50OF90ICoqcG9zLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90ICpyZW1haW5pbmcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwc2FfY2lwaGVyX29wZXJhdGlvbl90ICp2YWx1ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBjb21wbGV0ZWQpOworCisvKiogRGVzZXJpYWxpc2UgYSBgcHNhX2NpcGhlcl9vcGVyYXRpb25fdGAgZnJvbSBhIGJ1ZmZlciBvbiB0aGUgc2VydmVyIHNpZGUuCisgKgorICogXHBhcmFtIHBvc1tpbixvdXRdICAgICAgICBQb2ludGVyIHRvIGEgYHVpbnQ4X3QgKmAgaG9sZGluZyBjdXJyZW50IHBvc2l0aW9uCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIHRoZSBidWZmZXIuCisgKiBccGFyYW0gcmVtYWluaW5nW2luLG91dF0gIFBvaW50ZXIgdG8gYSBgc2l6ZV90YCBob2xkaW5nIG51bWJlciBvZiBieXRlcworICogICAgICAgICAgICAgICAgICAgICAgICAgICByZW1haW5pbmcgaW4gdGhlIGJ1ZmZlci4KKyAqIFxwYXJhbSB2YWx1ZSAgICAgICAgICAgICAgUG9pbnRlciB0byBhIGBwc2FfY2lwaGVyX29wZXJhdGlvbl90YCB0byByZWNlaXZlIHRoZSB2YWx1ZQorICogICAgICAgICAgICAgICAgICAgICAgICAgICBkZXNlcmlhbGlzZWQgZnJvbSB0aGUgYnVmZmVyLgorICoKKyAqIFxyZXR1cm4gICAgICAgICAgICAgICAgICAgXGMgMSBvbiBzdWNjZXNzICgib2theSIpLCBcYyAwIG9uIGVycm9yLgorICovCitpbnQgcHNhc2ltX3NlcnZlcl9kZXNlcmlhbGlzZV9wc2FfY2lwaGVyX29wZXJhdGlvbl90KHVpbnQ4X3QgKipwb3MsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCAqcmVtYWluaW5nLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwc2FfY2lwaGVyX29wZXJhdGlvbl90ICoqdmFsdWUpOworCisvKiogUmV0dXJuIGhvdyBtdWNoIGJ1ZmZlciBzcGFjZSBpcyBuZWVkZWQgYnkgXGMgcHNhc2ltX3NlcmlhbGlzZV9wc2Ffa2V5X2Rlcml2YXRpb25fb3BlcmF0aW9uX3QoKQorICogIHRvIHNlcmlhbGlzZSBhIGBwc2Ffa2V5X2Rlcml2YXRpb25fb3BlcmF0aW9uX3RgLgorICoKKyAqIFxwYXJhbSB2YWx1ZSAgICAgICAgICAgICAgVGhlIHZhbHVlIHRoYXQgd2lsbCBiZSBzZXJpYWxpc2VkIGludG8gdGhlIGJ1ZmZlcgorICogICAgICAgICAgICAgICAgICAgICAgICAgICAobmVlZGVkIGluIGNhc2Ugc29tZSBzZXJpYWxpc2F0aW9ucyBhcmUgdmFsdWUtCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlcGVuZGVudCkuCisgKgorICogXHJldHVybiAgICAgICAgICAgICAgICAgICBUaGUgbnVtYmVyIG9mIGJ5dGVzIG5lZWRlZCBpbiB0aGUgYnVmZmVyIGJ5CisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgIFxjIHBzYXNpbV9zZXJpYWxpc2VfcHNhX2tleV9kZXJpdmF0aW9uX29wZXJhdGlvbl90KCkgdG8gc2VyaWFsaXNlCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoZSBnaXZlbiB2YWx1ZS4KKyAqLworc2l6ZV90IHBzYXNpbV9zZXJpYWxpc2VfcHNhX2tleV9kZXJpdmF0aW9uX29wZXJhdGlvbl90X25lZWRzKAorICAgIHBzYV9rZXlfZGVyaXZhdGlvbl9vcGVyYXRpb25fdCB2YWx1ZSk7CisKKy8qKiBTZXJpYWxpc2UgYSBgcHNhX2tleV9kZXJpdmF0aW9uX29wZXJhdGlvbl90YCBpbnRvIGEgYnVmZmVyLgorICoKKyAqIFxwYXJhbSBwb3NbaW4sb3V0XSAgICAgICAgUG9pbnRlciB0byBhIGB1aW50OF90ICpgIGhvbGRpbmcgY3VycmVudCBwb3NpdGlvbgorICogICAgICAgICAgICAgICAgICAgICAgICAgICBpbiB0aGUgYnVmZmVyLgorICogXHBhcmFtIHJlbWFpbmluZ1tpbixvdXRdICBQb2ludGVyIHRvIGEgYHNpemVfdGAgaG9sZGluZyBudW1iZXIgb2YgYnl0ZXMKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVtYWluaW5nIGluIHRoZSBidWZmZXIuCisgKiBccGFyYW0gdmFsdWUgICAgICAgICAgICAgIFRoZSB2YWx1ZSB0byBzZXJpYWxpc2UgaW50byB0aGUgYnVmZmVyLgorICoKKyAqIFxyZXR1cm4gICAgICAgICAgICAgICAgICAgXGMgMSBvbiBzdWNjZXNzICgib2theSIpLCBcYyAwIG9uIGVycm9yLgorICovCitpbnQgcHNhc2ltX3NlcmlhbGlzZV9wc2Ffa2V5X2Rlcml2YXRpb25fb3BlcmF0aW9uX3QodWludDhfdCAqKnBvcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgKnJlbWFpbmluZywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwc2Ffa2V5X2Rlcml2YXRpb25fb3BlcmF0aW9uX3QgdmFsdWUpOworCisvKiogRGVzZXJpYWxpc2UgYSBgcHNhX2tleV9kZXJpdmF0aW9uX29wZXJhdGlvbl90YCBmcm9tIGEgYnVmZmVyLgorICoKKyAqIFxwYXJhbSBwb3NbaW4sb3V0XSAgICAgICAgUG9pbnRlciB0byBhIGB1aW50OF90ICpgIGhvbGRpbmcgY3VycmVudCBwb3NpdGlvbgorICogICAgICAgICAgICAgICAgICAgICAgICAgICBpbiB0aGUgYnVmZmVyLgorICogXHBhcmFtIHJlbWFpbmluZ1tpbixvdXRdICBQb2ludGVyIHRvIGEgYHNpemVfdGAgaG9sZGluZyBudW1iZXIgb2YgYnl0ZXMKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVtYWluaW5nIGluIHRoZSBidWZmZXIuCisgKiBccGFyYW0gdmFsdWUgICAgICAgICAgICAgIFBvaW50ZXIgdG8gYSBgcHNhX2tleV9kZXJpdmF0aW9uX29wZXJhdGlvbl90YCB0byByZWNlaXZlIHRoZSB2YWx1ZQorICogICAgICAgICAgICAgICAgICAgICAgICAgICBkZXNlcmlhbGlzZWQgZnJvbSB0aGUgYnVmZmVyLgorICoKKyAqIFxyZXR1cm4gICAgICAgICAgICAgICAgICAgXGMgMSBvbiBzdWNjZXNzICgib2theSIpLCBcYyAwIG9uIGVycm9yLgorICovCitpbnQgcHNhc2ltX2Rlc2VyaWFsaXNlX3BzYV9rZXlfZGVyaXZhdGlvbl9vcGVyYXRpb25fdCh1aW50OF90ICoqcG9zLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90ICpyZW1haW5pbmcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwc2Ffa2V5X2Rlcml2YXRpb25fb3BlcmF0aW9uX3QgKnZhbHVlKTsKKworLyoqIFJldHVybiBob3cgbXVjaCBidWZmZXIgc3BhY2UgaXMgbmVlZGVkIGJ5IFxjIHBzYXNpbV9zZXJ2ZXJfc2VyaWFsaXNlX3BzYV9rZXlfZGVyaXZhdGlvbl9vcGVyYXRpb25fdCgpCisgKiAgdG8gc2VyaWFsaXNlIGEgYHBzYV9rZXlfZGVyaXZhdGlvbl9vcGVyYXRpb25fdGAuCisgKgorICogXHBhcmFtIHZhbHVlICAgICAgICAgICAgICBUaGUgdmFsdWUgdGhhdCB3aWxsIGJlIHNlcmlhbGlzZWQgaW50byB0aGUgYnVmZmVyCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgIChuZWVkZWQgaW4gY2FzZSBzb21lIHNlcmlhbGlzYXRpb25zIGFyZSB2YWx1ZS0KKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVwZW5kZW50KS4KKyAqCisgKiBccmV0dXJuICAgICAgICAgICAgICAgICAgIFRoZSBudW1iZXIgb2YgYnl0ZXMgbmVlZGVkIGluIHRoZSBidWZmZXIgYnkKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgXGMgcHNhc2ltX3NlcmlhbGlzZV9wc2Ffa2V5X2Rlcml2YXRpb25fb3BlcmF0aW9uX3QoKSB0byBzZXJpYWxpc2UKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlIGdpdmVuIHZhbHVlLgorICovCitzaXplX3QgcHNhc2ltX3NlcnZlcl9zZXJpYWxpc2VfcHNhX2tleV9kZXJpdmF0aW9uX29wZXJhdGlvbl90X25lZWRzKAorICAgIHBzYV9rZXlfZGVyaXZhdGlvbl9vcGVyYXRpb25fdCAqdmFsdWUpOworCisvKiogU2VyaWFsaXNlIGEgYHBzYV9rZXlfZGVyaXZhdGlvbl9vcGVyYXRpb25fdGAgaW50byBhIGJ1ZmZlciBvbiB0aGUgc2VydmVyIHNpZGUuCisgKgorICogXHBhcmFtIHBvc1tpbixvdXRdICAgICAgICBQb2ludGVyIHRvIGEgYHVpbnQ4X3QgKmAgaG9sZGluZyBjdXJyZW50IHBvc2l0aW9uCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIHRoZSBidWZmZXIuCisgKiBccGFyYW0gcmVtYWluaW5nW2luLG91dF0gIFBvaW50ZXIgdG8gYSBgc2l6ZV90YCBob2xkaW5nIG51bWJlciBvZiBieXRlcworICogICAgICAgICAgICAgICAgICAgICAgICAgICByZW1haW5pbmcgaW4gdGhlIGJ1ZmZlci4KKyAqIFxwYXJhbSB2YWx1ZSAgICAgICAgICAgICAgVGhlIHZhbHVlIHRvIHNlcmlhbGlzZSBpbnRvIHRoZSBidWZmZXIuCisgKiBccGFyYW0gY29tcGxldGVkICAgICAgICAgIE5vbi16ZXJvIGlmIHRoZSBvcGVyYXRpb24gaXMgbm93IGNvbXBsZXRlZCAoc2V0IGJ5CisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbmlzaCBhbmQgYWJvcnQgY2FsbHMpLgorICoKKyAqIFxyZXR1cm4gICAgICAgICAgICAgICAgICAgXGMgMSBvbiBzdWNjZXNzICgib2theSIpLCBcYyAwIG9uIGVycm9yLgorICovCitpbnQgcHNhc2ltX3NlcnZlcl9zZXJpYWxpc2VfcHNhX2tleV9kZXJpdmF0aW9uX29wZXJhdGlvbl90KHVpbnQ4X3QgKipwb3MsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCAqcmVtYWluaW5nLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwc2Ffa2V5X2Rlcml2YXRpb25fb3BlcmF0aW9uX3QgKnZhbHVlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgY29tcGxldGVkKTsKKworLyoqIERlc2VyaWFsaXNlIGEgYHBzYV9rZXlfZGVyaXZhdGlvbl9vcGVyYXRpb25fdGAgZnJvbSBhIGJ1ZmZlciBvbiB0aGUgc2VydmVyIHNpZGUuCisgKgorICogXHBhcmFtIHBvc1tpbixvdXRdICAgICAgICBQb2ludGVyIHRvIGEgYHVpbnQ4X3QgKmAgaG9sZGluZyBjdXJyZW50IHBvc2l0aW9uCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIHRoZSBidWZmZXIuCisgKiBccGFyYW0gcmVtYWluaW5nW2luLG91dF0gIFBvaW50ZXIgdG8gYSBgc2l6ZV90YCBob2xkaW5nIG51bWJlciBvZiBieXRlcworICogICAgICAgICAgICAgICAgICAgICAgICAgICByZW1haW5pbmcgaW4gdGhlIGJ1ZmZlci4KKyAqIFxwYXJhbSB2YWx1ZSAgICAgICAgICAgICAgUG9pbnRlciB0byBhIGBwc2Ffa2V5X2Rlcml2YXRpb25fb3BlcmF0aW9uX3RgIHRvIHJlY2VpdmUgdGhlIHZhbHVlCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlc2VyaWFsaXNlZCBmcm9tIHRoZSBidWZmZXIuCisgKgorICogXHJldHVybiAgICAgICAgICAgICAgICAgICBcYyAxIG9uIHN1Y2Nlc3MgKCJva2F5IiksIFxjIDAgb24gZXJyb3IuCisgKi8KK2ludCBwc2FzaW1fc2VydmVyX2Rlc2VyaWFsaXNlX3BzYV9rZXlfZGVyaXZhdGlvbl9vcGVyYXRpb25fdCh1aW50OF90ICoqcG9zLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCAqcmVtYWluaW5nLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBzYV9rZXlfZGVyaXZhdGlvbl9vcGVyYXRpb25fdCAqKnZhbHVlKTsKKworLyoqIFJldHVybiBob3cgbXVjaCBidWZmZXIgc3BhY2UgaXMgbmVlZGVkIGJ5IFxjIHBzYXNpbV9zZXJpYWxpc2VfcHNhX3NpZ25faGFzaF9pbnRlcnJ1cHRpYmxlX29wZXJhdGlvbl90KCkKKyAqICB0byBzZXJpYWxpc2UgYSBgcHNhX3NpZ25faGFzaF9pbnRlcnJ1cHRpYmxlX29wZXJhdGlvbl90YC4KKyAqCisgKiBccGFyYW0gdmFsdWUgICAgICAgICAgICAgIFRoZSB2YWx1ZSB0aGF0IHdpbGwgYmUgc2VyaWFsaXNlZCBpbnRvIHRoZSBidWZmZXIKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgKG5lZWRlZCBpbiBjYXNlIHNvbWUgc2VyaWFsaXNhdGlvbnMgYXJlIHZhbHVlLQorICogICAgICAgICAgICAgICAgICAgICAgICAgICBkZXBlbmRlbnQpLgorICoKKyAqIFxyZXR1cm4gICAgICAgICAgICAgICAgICAgVGhlIG51bWJlciBvZiBieXRlcyBuZWVkZWQgaW4gdGhlIGJ1ZmZlciBieQorICogICAgICAgICAgICAgICAgICAgICAgICAgICBcYyBwc2FzaW1fc2VyaWFsaXNlX3BzYV9zaWduX2hhc2hfaW50ZXJydXB0aWJsZV9vcGVyYXRpb25fdCgpIHRvIHNlcmlhbGlzZQorICogICAgICAgICAgICAgICAgICAgICAgICAgICB0aGUgZ2l2ZW4gdmFsdWUuCisgKi8KK3NpemVfdCBwc2FzaW1fc2VyaWFsaXNlX3BzYV9zaWduX2hhc2hfaW50ZXJydXB0aWJsZV9vcGVyYXRpb25fdF9uZWVkcygKKyAgICBwc2Ffc2lnbl9oYXNoX2ludGVycnVwdGlibGVfb3BlcmF0aW9uX3QgdmFsdWUpOworCisvKiogU2VyaWFsaXNlIGEgYHBzYV9zaWduX2hhc2hfaW50ZXJydXB0aWJsZV9vcGVyYXRpb25fdGAgaW50byBhIGJ1ZmZlci4KKyAqCisgKiBccGFyYW0gcG9zW2luLG91dF0gICAgICAgIFBvaW50ZXIgdG8gYSBgdWludDhfdCAqYCBob2xkaW5nIGN1cnJlbnQgcG9zaXRpb24KKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gdGhlIGJ1ZmZlci4KKyAqIFxwYXJhbSByZW1haW5pbmdbaW4sb3V0XSAgUG9pbnRlciB0byBhIGBzaXplX3RgIGhvbGRpbmcgbnVtYmVyIG9mIGJ5dGVzCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlbWFpbmluZyBpbiB0aGUgYnVmZmVyLgorICogXHBhcmFtIHZhbHVlICAgICAgICAgICAgICBUaGUgdmFsdWUgdG8gc2VyaWFsaXNlIGludG8gdGhlIGJ1ZmZlci4KKyAqCisgKiBccmV0dXJuICAgICAgICAgICAgICAgICAgIFxjIDEgb24gc3VjY2VzcyAoIm9rYXkiKSwgXGMgMCBvbiBlcnJvci4KKyAqLworaW50IHBzYXNpbV9zZXJpYWxpc2VfcHNhX3NpZ25faGFzaF9pbnRlcnJ1cHRpYmxlX29wZXJhdGlvbl90KHVpbnQ4X3QgKipwb3MsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90ICpyZW1haW5pbmcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHNhX3NpZ25faGFzaF9pbnRlcnJ1cHRpYmxlX29wZXJhdGlvbl90IHZhbHVlKTsKKworLyoqIERlc2VyaWFsaXNlIGEgYHBzYV9zaWduX2hhc2hfaW50ZXJydXB0aWJsZV9vcGVyYXRpb25fdGAgZnJvbSBhIGJ1ZmZlci4KKyAqCisgKiBccGFyYW0gcG9zW2luLG91dF0gICAgICAgIFBvaW50ZXIgdG8gYSBgdWludDhfdCAqYCBob2xkaW5nIGN1cnJlbnQgcG9zaXRpb24KKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gdGhlIGJ1ZmZlci4KKyAqIFxwYXJhbSByZW1haW5pbmdbaW4sb3V0XSAgUG9pbnRlciB0byBhIGBzaXplX3RgIGhvbGRpbmcgbnVtYmVyIG9mIGJ5dGVzCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlbWFpbmluZyBpbiB0aGUgYnVmZmVyLgorICogXHBhcmFtIHZhbHVlICAgICAgICAgICAgICBQb2ludGVyIHRvIGEgYHBzYV9zaWduX2hhc2hfaW50ZXJydXB0aWJsZV9vcGVyYXRpb25fdGAgdG8gcmVjZWl2ZSB0aGUgdmFsdWUKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVzZXJpYWxpc2VkIGZyb20gdGhlIGJ1ZmZlci4KKyAqCisgKiBccmV0dXJuICAgICAgICAgICAgICAgICAgIFxjIDEgb24gc3VjY2VzcyAoIm9rYXkiKSwgXGMgMCBvbiBlcnJvci4KKyAqLworaW50IHBzYXNpbV9kZXNlcmlhbGlzZV9wc2Ffc2lnbl9oYXNoX2ludGVycnVwdGlibGVfb3BlcmF0aW9uX3QodWludDhfdCAqKnBvcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCAqcmVtYWluaW5nLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHNhX3NpZ25faGFzaF9pbnRlcnJ1cHRpYmxlX29wZXJhdGlvbl90ICp2YWx1ZSk7CisKKy8qKiBSZXR1cm4gaG93IG11Y2ggYnVmZmVyIHNwYWNlIGlzIG5lZWRlZCBieSBcYyBwc2FzaW1fc2VydmVyX3NlcmlhbGlzZV9wc2Ffc2lnbl9oYXNoX2ludGVycnVwdGlibGVfb3BlcmF0aW9uX3QoKQorICogIHRvIHNlcmlhbGlzZSBhIGBwc2Ffc2lnbl9oYXNoX2ludGVycnVwdGlibGVfb3BlcmF0aW9uX3RgLgorICoKKyAqIFxwYXJhbSB2YWx1ZSAgICAgICAgICAgICAgVGhlIHZhbHVlIHRoYXQgd2lsbCBiZSBzZXJpYWxpc2VkIGludG8gdGhlIGJ1ZmZlcgorICogICAgICAgICAgICAgICAgICAgICAgICAgICAobmVlZGVkIGluIGNhc2Ugc29tZSBzZXJpYWxpc2F0aW9ucyBhcmUgdmFsdWUtCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlcGVuZGVudCkuCisgKgorICogXHJldHVybiAgICAgICAgICAgICAgICAgICBUaGUgbnVtYmVyIG9mIGJ5dGVzIG5lZWRlZCBpbiB0aGUgYnVmZmVyIGJ5CisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgIFxjIHBzYXNpbV9zZXJpYWxpc2VfcHNhX3NpZ25faGFzaF9pbnRlcnJ1cHRpYmxlX29wZXJhdGlvbl90KCkgdG8gc2VyaWFsaXNlCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoZSBnaXZlbiB2YWx1ZS4KKyAqLworc2l6ZV90IHBzYXNpbV9zZXJ2ZXJfc2VyaWFsaXNlX3BzYV9zaWduX2hhc2hfaW50ZXJydXB0aWJsZV9vcGVyYXRpb25fdF9uZWVkcygKKyAgICBwc2Ffc2lnbl9oYXNoX2ludGVycnVwdGlibGVfb3BlcmF0aW9uX3QgKnZhbHVlKTsKKworLyoqIFNlcmlhbGlzZSBhIGBwc2Ffc2lnbl9oYXNoX2ludGVycnVwdGlibGVfb3BlcmF0aW9uX3RgIGludG8gYSBidWZmZXIgb24gdGhlIHNlcnZlciBzaWRlLgorICoKKyAqIFxwYXJhbSBwb3NbaW4sb3V0XSAgICAgICAgUG9pbnRlciB0byBhIGB1aW50OF90ICpgIGhvbGRpbmcgY3VycmVudCBwb3NpdGlvbgorICogICAgICAgICAgICAgICAgICAgICAgICAgICBpbiB0aGUgYnVmZmVyLgorICogXHBhcmFtIHJlbWFpbmluZ1tpbixvdXRdICBQb2ludGVyIHRvIGEgYHNpemVfdGAgaG9sZGluZyBudW1iZXIgb2YgYnl0ZXMKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVtYWluaW5nIGluIHRoZSBidWZmZXIuCisgKiBccGFyYW0gdmFsdWUgICAgICAgICAgICAgIFRoZSB2YWx1ZSB0byBzZXJpYWxpc2UgaW50byB0aGUgYnVmZmVyLgorICogXHBhcmFtIGNvbXBsZXRlZCAgICAgICAgICBOb24temVybyBpZiB0aGUgb3BlcmF0aW9uIGlzIG5vdyBjb21wbGV0ZWQgKHNldCBieQorICogICAgICAgICAgICAgICAgICAgICAgICAgICBmaW5pc2ggYW5kIGFib3J0IGNhbGxzKS4KKyAqCisgKiBccmV0dXJuICAgICAgICAgICAgICAgICAgIFxjIDEgb24gc3VjY2VzcyAoIm9rYXkiKSwgXGMgMCBvbiBlcnJvci4KKyAqLworaW50IHBzYXNpbV9zZXJ2ZXJfc2VyaWFsaXNlX3BzYV9zaWduX2hhc2hfaW50ZXJydXB0aWJsZV9vcGVyYXRpb25fdCh1aW50OF90ICoqcG9zLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgKnJlbWFpbmluZywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHNhX3NpZ25faGFzaF9pbnRlcnJ1cHRpYmxlX29wZXJhdGlvbl90ICp2YWx1ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGNvbXBsZXRlZCk7CisKKy8qKiBEZXNlcmlhbGlzZSBhIGBwc2Ffc2lnbl9oYXNoX2ludGVycnVwdGlibGVfb3BlcmF0aW9uX3RgIGZyb20gYSBidWZmZXIgb24gdGhlIHNlcnZlciBzaWRlLgorICoKKyAqIFxwYXJhbSBwb3NbaW4sb3V0XSAgICAgICAgUG9pbnRlciB0byBhIGB1aW50OF90ICpgIGhvbGRpbmcgY3VycmVudCBwb3NpdGlvbgorICogICAgICAgICAgICAgICAgICAgICAgICAgICBpbiB0aGUgYnVmZmVyLgorICogXHBhcmFtIHJlbWFpbmluZ1tpbixvdXRdICBQb2ludGVyIHRvIGEgYHNpemVfdGAgaG9sZGluZyBudW1iZXIgb2YgYnl0ZXMKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVtYWluaW5nIGluIHRoZSBidWZmZXIuCisgKiBccGFyYW0gdmFsdWUgICAgICAgICAgICAgIFBvaW50ZXIgdG8gYSBgcHNhX3NpZ25faGFzaF9pbnRlcnJ1cHRpYmxlX29wZXJhdGlvbl90YCB0byByZWNlaXZlIHRoZSB2YWx1ZQorICogICAgICAgICAgICAgICAgICAgICAgICAgICBkZXNlcmlhbGlzZWQgZnJvbSB0aGUgYnVmZmVyLgorICoKKyAqIFxyZXR1cm4gICAgICAgICAgICAgICAgICAgXGMgMSBvbiBzdWNjZXNzICgib2theSIpLCBcYyAwIG9uIGVycm9yLgorICovCitpbnQgcHNhc2ltX3NlcnZlcl9kZXNlcmlhbGlzZV9wc2Ffc2lnbl9oYXNoX2ludGVycnVwdGlibGVfb3BlcmF0aW9uX3QodWludDhfdCAqKnBvcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgKnJlbWFpbmluZywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwc2Ffc2lnbl9oYXNoX2ludGVycnVwdGlibGVfb3BlcmF0aW9uX3QgKip2YWx1ZSk7CisKKy8qKiBSZXR1cm4gaG93IG11Y2ggYnVmZmVyIHNwYWNlIGlzIG5lZWRlZCBieSBcYyBwc2FzaW1fc2VyaWFsaXNlX3BzYV92ZXJpZnlfaGFzaF9pbnRlcnJ1cHRpYmxlX29wZXJhdGlvbl90KCkKKyAqICB0byBzZXJpYWxpc2UgYSBgcHNhX3ZlcmlmeV9oYXNoX2ludGVycnVwdGlibGVfb3BlcmF0aW9uX3RgLgorICoKKyAqIFxwYXJhbSB2YWx1ZSAgICAgICAgICAgICAgVGhlIHZhbHVlIHRoYXQgd2lsbCBiZSBzZXJpYWxpc2VkIGludG8gdGhlIGJ1ZmZlcgorICogICAgICAgICAgICAgICAgICAgICAgICAgICAobmVlZGVkIGluIGNhc2Ugc29tZSBzZXJpYWxpc2F0aW9ucyBhcmUgdmFsdWUtCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlcGVuZGVudCkuCisgKgorICogXHJldHVybiAgICAgICAgICAgICAgICAgICBUaGUgbnVtYmVyIG9mIGJ5dGVzIG5lZWRlZCBpbiB0aGUgYnVmZmVyIGJ5CisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgIFxjIHBzYXNpbV9zZXJpYWxpc2VfcHNhX3ZlcmlmeV9oYXNoX2ludGVycnVwdGlibGVfb3BlcmF0aW9uX3QoKSB0byBzZXJpYWxpc2UKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlIGdpdmVuIHZhbHVlLgorICovCitzaXplX3QgcHNhc2ltX3NlcmlhbGlzZV9wc2FfdmVyaWZ5X2hhc2hfaW50ZXJydXB0aWJsZV9vcGVyYXRpb25fdF9uZWVkcygKKyAgICBwc2FfdmVyaWZ5X2hhc2hfaW50ZXJydXB0aWJsZV9vcGVyYXRpb25fdCB2YWx1ZSk7CisKKy8qKiBTZXJpYWxpc2UgYSBgcHNhX3ZlcmlmeV9oYXNoX2ludGVycnVwdGlibGVfb3BlcmF0aW9uX3RgIGludG8gYSBidWZmZXIuCisgKgorICogXHBhcmFtIHBvc1tpbixvdXRdICAgICAgICBQb2ludGVyIHRvIGEgYHVpbnQ4X3QgKmAgaG9sZGluZyBjdXJyZW50IHBvc2l0aW9uCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIHRoZSBidWZmZXIuCisgKiBccGFyYW0gcmVtYWluaW5nW2luLG91dF0gIFBvaW50ZXIgdG8gYSBgc2l6ZV90YCBob2xkaW5nIG51bWJlciBvZiBieXRlcworICogICAgICAgICAgICAgICAgICAgICAgICAgICByZW1haW5pbmcgaW4gdGhlIGJ1ZmZlci4KKyAqIFxwYXJhbSB2YWx1ZSAgICAgICAgICAgICAgVGhlIHZhbHVlIHRvIHNlcmlhbGlzZSBpbnRvIHRoZSBidWZmZXIuCisgKgorICogXHJldHVybiAgICAgICAgICAgICAgICAgICBcYyAxIG9uIHN1Y2Nlc3MgKCJva2F5IiksIFxjIDAgb24gZXJyb3IuCisgKi8KK2ludCBwc2FzaW1fc2VyaWFsaXNlX3BzYV92ZXJpZnlfaGFzaF9pbnRlcnJ1cHRpYmxlX29wZXJhdGlvbl90KHVpbnQ4X3QgKipwb3MsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgKnJlbWFpbmluZywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBzYV92ZXJpZnlfaGFzaF9pbnRlcnJ1cHRpYmxlX29wZXJhdGlvbl90IHZhbHVlKTsKKworLyoqIERlc2VyaWFsaXNlIGEgYHBzYV92ZXJpZnlfaGFzaF9pbnRlcnJ1cHRpYmxlX29wZXJhdGlvbl90YCBmcm9tIGEgYnVmZmVyLgorICoKKyAqIFxwYXJhbSBwb3NbaW4sb3V0XSAgICAgICAgUG9pbnRlciB0byBhIGB1aW50OF90ICpgIGhvbGRpbmcgY3VycmVudCBwb3NpdGlvbgorICogICAgICAgICAgICAgICAgICAgICAgICAgICBpbiB0aGUgYnVmZmVyLgorICogXHBhcmFtIHJlbWFpbmluZ1tpbixvdXRdICBQb2ludGVyIHRvIGEgYHNpemVfdGAgaG9sZGluZyBudW1iZXIgb2YgYnl0ZXMKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVtYWluaW5nIGluIHRoZSBidWZmZXIuCisgKiBccGFyYW0gdmFsdWUgICAgICAgICAgICAgIFBvaW50ZXIgdG8gYSBgcHNhX3ZlcmlmeV9oYXNoX2ludGVycnVwdGlibGVfb3BlcmF0aW9uX3RgIHRvIHJlY2VpdmUgdGhlIHZhbHVlCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlc2VyaWFsaXNlZCBmcm9tIHRoZSBidWZmZXIuCisgKgorICogXHJldHVybiAgICAgICAgICAgICAgICAgICBcYyAxIG9uIHN1Y2Nlc3MgKCJva2F5IiksIFxjIDAgb24gZXJyb3IuCisgKi8KK2ludCBwc2FzaW1fZGVzZXJpYWxpc2VfcHNhX3ZlcmlmeV9oYXNoX2ludGVycnVwdGlibGVfb3BlcmF0aW9uX3QodWludDhfdCAqKnBvcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90ICpyZW1haW5pbmcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBzYV92ZXJpZnlfaGFzaF9pbnRlcnJ1cHRpYmxlX29wZXJhdGlvbl90ICp2YWx1ZSk7CisKKy8qKiBSZXR1cm4gaG93IG11Y2ggYnVmZmVyIHNwYWNlIGlzIG5lZWRlZCBieSBcYyBwc2FzaW1fc2VydmVyX3NlcmlhbGlzZV9wc2FfdmVyaWZ5X2hhc2hfaW50ZXJydXB0aWJsZV9vcGVyYXRpb25fdCgpCisgKiAgdG8gc2VyaWFsaXNlIGEgYHBzYV92ZXJpZnlfaGFzaF9pbnRlcnJ1cHRpYmxlX29wZXJhdGlvbl90YC4KKyAqCisgKiBccGFyYW0gdmFsdWUgICAgICAgICAgICAgIFRoZSB2YWx1ZSB0aGF0IHdpbGwgYmUgc2VyaWFsaXNlZCBpbnRvIHRoZSBidWZmZXIKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgKG5lZWRlZCBpbiBjYXNlIHNvbWUgc2VyaWFsaXNhdGlvbnMgYXJlIHZhbHVlLQorICogICAgICAgICAgICAgICAgICAgICAgICAgICBkZXBlbmRlbnQpLgorICoKKyAqIFxyZXR1cm4gICAgICAgICAgICAgICAgICAgVGhlIG51bWJlciBvZiBieXRlcyBuZWVkZWQgaW4gdGhlIGJ1ZmZlciBieQorICogICAgICAgICAgICAgICAgICAgICAgICAgICBcYyBwc2FzaW1fc2VyaWFsaXNlX3BzYV92ZXJpZnlfaGFzaF9pbnRlcnJ1cHRpYmxlX29wZXJhdGlvbl90KCkgdG8gc2VyaWFsaXNlCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoZSBnaXZlbiB2YWx1ZS4KKyAqLworc2l6ZV90IHBzYXNpbV9zZXJ2ZXJfc2VyaWFsaXNlX3BzYV92ZXJpZnlfaGFzaF9pbnRlcnJ1cHRpYmxlX29wZXJhdGlvbl90X25lZWRzKAorICAgIHBzYV92ZXJpZnlfaGFzaF9pbnRlcnJ1cHRpYmxlX29wZXJhdGlvbl90ICp2YWx1ZSk7CisKKy8qKiBTZXJpYWxpc2UgYSBgcHNhX3ZlcmlmeV9oYXNoX2ludGVycnVwdGlibGVfb3BlcmF0aW9uX3RgIGludG8gYSBidWZmZXIgb24gdGhlIHNlcnZlciBzaWRlLgorICoKKyAqIFxwYXJhbSBwb3NbaW4sb3V0XSAgICAgICAgUG9pbnRlciB0byBhIGB1aW50OF90ICpgIGhvbGRpbmcgY3VycmVudCBwb3NpdGlvbgorICogICAgICAgICAgICAgICAgICAgICAgICAgICBpbiB0aGUgYnVmZmVyLgorICogXHBhcmFtIHJlbWFpbmluZ1tpbixvdXRdICBQb2ludGVyIHRvIGEgYHNpemVfdGAgaG9sZGluZyBudW1iZXIgb2YgYnl0ZXMKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVtYWluaW5nIGluIHRoZSBidWZmZXIuCisgKiBccGFyYW0gdmFsdWUgICAgICAgICAgICAgIFRoZSB2YWx1ZSB0byBzZXJpYWxpc2UgaW50byB0aGUgYnVmZmVyLgorICogXHBhcmFtIGNvbXBsZXRlZCAgICAgICAgICBOb24temVybyBpZiB0aGUgb3BlcmF0aW9uIGlzIG5vdyBjb21wbGV0ZWQgKHNldCBieQorICogICAgICAgICAgICAgICAgICAgICAgICAgICBmaW5pc2ggYW5kIGFib3J0IGNhbGxzKS4KKyAqCisgKiBccmV0dXJuICAgICAgICAgICAgICAgICAgIFxjIDEgb24gc3VjY2VzcyAoIm9rYXkiKSwgXGMgMCBvbiBlcnJvci4KKyAqLworaW50IHBzYXNpbV9zZXJ2ZXJfc2VyaWFsaXNlX3BzYV92ZXJpZnlfaGFzaF9pbnRlcnJ1cHRpYmxlX29wZXJhdGlvbl90KHVpbnQ4X3QgKipwb3MsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90ICpyZW1haW5pbmcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHNhX3ZlcmlmeV9oYXNoX2ludGVycnVwdGlibGVfb3BlcmF0aW9uX3QgKnZhbHVlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBjb21wbGV0ZWQpOworCisvKiogRGVzZXJpYWxpc2UgYSBgcHNhX3ZlcmlmeV9oYXNoX2ludGVycnVwdGlibGVfb3BlcmF0aW9uX3RgIGZyb20gYSBidWZmZXIgb24gdGhlIHNlcnZlciBzaWRlLgorICoKKyAqIFxwYXJhbSBwb3NbaW4sb3V0XSAgICAgICAgUG9pbnRlciB0byBhIGB1aW50OF90ICpgIGhvbGRpbmcgY3VycmVudCBwb3NpdGlvbgorICogICAgICAgICAgICAgICAgICAgICAgICAgICBpbiB0aGUgYnVmZmVyLgorICogXHBhcmFtIHJlbWFpbmluZ1tpbixvdXRdICBQb2ludGVyIHRvIGEgYHNpemVfdGAgaG9sZGluZyBudW1iZXIgb2YgYnl0ZXMKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVtYWluaW5nIGluIHRoZSBidWZmZXIuCisgKiBccGFyYW0gdmFsdWUgICAgICAgICAgICAgIFBvaW50ZXIgdG8gYSBgcHNhX3ZlcmlmeV9oYXNoX2ludGVycnVwdGlibGVfb3BlcmF0aW9uX3RgIHRvIHJlY2VpdmUgdGhlIHZhbHVlCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlc2VyaWFsaXNlZCBmcm9tIHRoZSBidWZmZXIuCisgKgorICogXHJldHVybiAgICAgICAgICAgICAgICAgICBcYyAxIG9uIHN1Y2Nlc3MgKCJva2F5IiksIFxjIDAgb24gZXJyb3IuCisgKi8KK2ludCBwc2FzaW1fc2VydmVyX2Rlc2VyaWFsaXNlX3BzYV92ZXJpZnlfaGFzaF9pbnRlcnJ1cHRpYmxlX29wZXJhdGlvbl90KHVpbnQ4X3QgKipwb3MsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgKnJlbWFpbmluZywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBzYV92ZXJpZnlfaGFzaF9pbnRlcnJ1cHRpYmxlX29wZXJhdGlvbl90ICoqdmFsdWUpOworCiAvKiogUmV0dXJuIGhvdyBtdWNoIGJ1ZmZlciBzcGFjZSBpcyBuZWVkZWQgYnkgXGMgcHNhc2ltX3NlcmlhbGlzZV9tYmVkdGxzX3N2Y19rZXlfaWRfdCgpCiAgKiAgdG8gc2VyaWFsaXNlIGEgYG1iZWR0bHNfc3ZjX2tleV9pZF90YC4KICAqCkBAIC01OTQsNyArMTI3Nyw4IEBACiAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgIFxjIHBzYXNpbV9zZXJpYWxpc2VfbWJlZHRsc19zdmNfa2V5X2lkX3QoKSB0byBzZXJpYWxpc2UKICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlIGdpdmVuIHZhbHVlLgogICovCi1zaXplX3QgcHNhc2ltX3NlcmlhbGlzZV9tYmVkdGxzX3N2Y19rZXlfaWRfdF9uZWVkcyhtYmVkdGxzX3N2Y19rZXlfaWRfdCB2YWx1ZSk7CitzaXplX3QgcHNhc2ltX3NlcmlhbGlzZV9tYmVkdGxzX3N2Y19rZXlfaWRfdF9uZWVkcygKKyAgICBtYmVkdGxzX3N2Y19rZXlfaWRfdCB2YWx1ZSk7CiAKIC8qKiBTZXJpYWxpc2UgYSBgbWJlZHRsc19zdmNfa2V5X2lkX3RgIGludG8gYSBidWZmZXIuCiAgKgpkaWZmIC0tZ2l0IGEvdGVzdHMvcHNhLWNsaWVudC1zZXJ2ZXIvcHNhc2ltL3NyYy9wc2Ffc2ltX3NlcmlhbGlzZS5wbCBiL3Rlc3RzL3BzYS1jbGllbnQtc2VydmVyL3BzYXNpbS9zcmMvcHNhX3NpbV9zZXJpYWxpc2UucGwKaW5kZXggZTg5ZmFmZS4uNzVlNmNkMCAxMDA3NTUKLS0tIGEvdGVzdHMvcHNhLWNsaWVudC1zZXJ2ZXIvcHNhc2ltL3NyYy9wc2Ffc2ltX3NlcmlhbGlzZS5wbAorKysgYi90ZXN0cy9wc2EtY2xpZW50LXNlcnZlci9wc2FzaW0vc3JjL3BzYV9zaW1fc2VyaWFsaXNlLnBsCkBAIC0zNiwxMSArMzYsMTggQEAKICMgYXJlKS4KICMKIG15IEB0eXBlcyA9IHF3KHVuc2lnbmVkLWludCBpbnQgc2l6ZV90CisgICAgICAgICAgICAgICB1aW50MTZfdCB1aW50MzJfdCB1aW50NjRfdAogICAgICAgICAgICAgICAgYnVmZmVyCi0gICAgICAgICAgICAgICBwc2Ffc3RhdHVzX3QgcHNhX2FsZ29yaXRobV90CisgICAgICAgICAgICAgICBwc2Ffa2V5X3Byb2R1Y3Rpb25fcGFyYW1ldGVyc190CisgICAgICAgICAgICAgICBwc2Ffc3RhdHVzX3QgcHNhX2FsZ29yaXRobV90IHBzYV9rZXlfZGVyaXZhdGlvbl9zdGVwX3QKICAgICAgICAgICAgICAgIHBzYV9oYXNoX29wZXJhdGlvbl90CiAgICAgICAgICAgICAgICBwc2FfYWVhZF9vcGVyYXRpb25fdAogICAgICAgICAgICAgICAgcHNhX2tleV9hdHRyaWJ1dGVzX3QKKyAgICAgICAgICAgICAgIHBzYV9tYWNfb3BlcmF0aW9uX3QKKyAgICAgICAgICAgICAgIHBzYV9jaXBoZXJfb3BlcmF0aW9uX3QKKyAgICAgICAgICAgICAgIHBzYV9rZXlfZGVyaXZhdGlvbl9vcGVyYXRpb25fdAorICAgICAgICAgICAgICAgcHNhX3NpZ25faGFzaF9pbnRlcnJ1cHRpYmxlX29wZXJhdGlvbl90CisgICAgICAgICAgICAgICBwc2FfdmVyaWZ5X2hhc2hfaW50ZXJydXB0aWJsZV9vcGVyYXRpb25fdAogICAgICAgICAgICAgICAgbWJlZHRsc19zdmNfa2V5X2lkX3QpOwogCiBncmVwKHMvLS8gL2csIEB0eXBlcyk7CkBAIC00OSw2ICs1Niw3IEBACiBteSAlaXNhID0gKAogICAgICJwc2Ffc3RhdHVzX3QiID0+ICJpbnQiLAogICAgICJwc2FfYWxnb3JpdGhtX3QiID0+ICJ1bnNpZ25lZCBpbnQiLAorICAgICJwc2Ffa2V5X2Rlcml2YXRpb25fc3RlcF90IiA9PiAidWludDE2X3QiLAogKTsKIAogaWYgKCR3aGljaCBlcSAiaCIpIHsKQEAgLTU4LDYgKzY2LDggQEAKICAgICBmb3IgbXkgJHR5cGUgKEB0eXBlcykgewogICAgICAgICBpZiAoJHR5cGUgZXEgImJ1ZmZlciIpIHsKICAgICAgICAgICAgIHByaW50IGRlY2xhcmVfYnVmZmVyX2Z1bmN0aW9ucygpOworICAgICAgICB9IGVsc2lmICgkdHlwZSBlcSAicHNhX2tleV9wcm9kdWN0aW9uX3BhcmFtZXRlcnNfdCIpIHsKKyAgICAgICAgICAgIHByaW50IGRlY2xhcmVfcHNhX2tleV9wcm9kdWN0aW9uX3BhcmFtZXRlcnNfdF9mdW5jdGlvbnMoKTsKICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgIHByaW50IGRlY2xhcmVfbmVlZHMoJHR5cGUsICIiKTsKICAgICAgICAgICAgIHByaW50IGRlY2xhcmVfc2VyaWFsaXNlKCR0eXBlLCAiIik7CkBAIC04OCw2ICs5OCw4IEBACiAgICAgZm9yIG15ICR0eXBlIChAdHlwZXMpIHsKICAgICAgICAgaWYgKCR0eXBlIGVxICJidWZmZXIiKSB7CiAgICAgICAgICAgICBwcmludCBkZWZpbmVfYnVmZmVyX2Z1bmN0aW9ucygpOworICAgICAgICB9IGVsc2lmICgkdHlwZSBlcSAicHNhX2tleV9wcm9kdWN0aW9uX3BhcmFtZXRlcnNfdCIpIHsKKyAgICAgICAgICAgIHByaW50IGRlZmluZV9wc2Ffa2V5X3Byb2R1Y3Rpb25fcGFyYW1ldGVyc190X2Z1bmN0aW9ucygpOwogICAgICAgICB9IGVsc2lmIChleGlzdHMoJGlzYXskdHlwZX0pKSB7CiAgICAgICAgICAgICBwcmludCBkZWZpbmVfbmVlZHNfaXNhKCR0eXBlLCAkaXNheyR0eXBlfSk7CiAgICAgICAgICAgICBwcmludCBkZWZpbmVfc2VyaWFsaXNlX2lzYSgkdHlwZSwgJGlzYXskdHlwZX0pOwpAQCAtMTMzLDcgKzE0NSw4IEBACiAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgIFxcYyBwc2FzaW1fc2VyaWFsaXNlXyR0eXBlX2QoKSB0byBzZXJpYWxpc2UKICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlIGdpdmVuIHZhbHVlLgogICovCi1zaXplX3QgcHNhc2ltXyR7c2VydmVyfXNlcmlhbGlzZV8ke3R5cGVfZH1fbmVlZHMoJHR5cGUgJHtwdHJ9dmFsdWUpOworc2l6ZV90IHBzYXNpbV8ke3NlcnZlcn1zZXJpYWxpc2VfJHt0eXBlX2R9X25lZWRzKAorICAgICR0eXBlICR7cHRyfXZhbHVlKTsKIEVPRgogfQogCkBAIC0xNDUsMTEgKzE1OCwxNSBAQAogICAgIG15ICR0eXBlX2QgPSAkdHlwZTsKICAgICAkdHlwZV9kID1+IHMvIC9fL2c7CiAKKyAgICBpZiAobGVuZ3RoKCRzZXJ2ZXIpICYmICR0eXBlICF+IC9ecHNhXyhcdyspX29wZXJhdGlvbl90JC8pIHsKKyAgICAgICAgZGllKCIkMDogZGVjbGFyZV9zZXJ2ZXJfc2VyaWFsaXNlOiAkdHlwZTogbm90IHN1cHBvcnRlZFxuIik7CisgICAgfQorCiAgICAgbXkgJHNlcnZlcl9zaWRlID0gKGxlbmd0aCgkc2VydmVyKSkgPyAiIG9uIHRoZSBzZXJ2ZXIgc2lkZSIgOiAiIjsKIAogICAgIG15ICRwdHIgPSAobGVuZ3RoKCRzZXJ2ZXIpKSA/ICIqIiA6ICIiOwogCi0gICAgcmV0dXJuIGFsaWduX2RlY2xhcmF0aW9uKDw8RU9GKTsKKyAgICBteSAkY29kZSA9IDw8RU9GOwogCiAvKiogU2VyaWFsaXNlICRhbiBgJHR5cGVgIGludG8gYSBidWZmZXIke3NlcnZlcl9zaWRlfS4KICAqCkBAIC0xNTgsMTMgKzE3NSwyOSBAQAogICogXFxwYXJhbSByZW1haW5pbmdbaW4sb3V0XSAgUG9pbnRlciB0byBhIGBzaXplX3RgIGhvbGRpbmcgbnVtYmVyIG9mIGJ5dGVzCiAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlbWFpbmluZyBpbiB0aGUgYnVmZmVyLgogICogXFxwYXJhbSB2YWx1ZSAgICAgICAgICAgICAgVGhlIHZhbHVlIHRvIHNlcmlhbGlzZSBpbnRvIHRoZSBidWZmZXIuCitFT0YKKworICAgICRjb2RlIC49IDw8RU9GIGlmIGxlbmd0aCgkc2VydmVyKTsKKyAqIFxccGFyYW0gY29tcGxldGVkICAgICAgICAgIE5vbi16ZXJvIGlmIHRoZSBvcGVyYXRpb24gaXMgbm93IGNvbXBsZXRlZCAoc2V0IGJ5CisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbmlzaCBhbmQgYWJvcnQgY2FsbHMpLgorRU9GCisKKyAgICBteSAkdmFsdWVfc2VwID0gKGxlbmd0aCgkc2VydmVyKSkgPyAiLCIgOiAiKTsiOworCisgICAgJGNvZGUgLj0gPDxFT0Y7CiAgKgogICogXFxyZXR1cm4gICAgICAgICAgICAgICAgICAgXFxjIDEgb24gc3VjY2VzcyAoIm9rYXkiKSwgXFxjIDAgb24gZXJyb3IuCiAgKi8KIGludCBwc2FzaW1fJHtzZXJ2ZXJ9c2VyaWFsaXNlXyR0eXBlX2QodWludDhfdCAqKnBvcywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90ICpyZW1haW5pbmcsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICR0eXBlICR7cHRyfXZhbHVlKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHR5cGUgJHtwdHJ9dmFsdWUkdmFsdWVfc2VwCiBFT0YKKworICAgICRjb2RlIC49IDw8RU9GIGlmIGxlbmd0aCgkc2VydmVyKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGNvbXBsZXRlZCk7CitFT0YKKworICAgIHJldHVybiBhbGlnbl9kZWNsYXJhdGlvbigkY29kZSk7CiB9CiAKIHN1YiBkZWNsYXJlX2Rlc2VyaWFsaXNlCkBAIC0yNzEsNiArMzA0LDYyIEBACiBFT0YKIH0KIAorc3ViIGRlY2xhcmVfcHNhX2tleV9wcm9kdWN0aW9uX3BhcmFtZXRlcnNfdF9mdW5jdGlvbnMKK3sKKyAgICByZXR1cm4gPDwnRU9GJzsKKworLyoqIFJldHVybiBob3cgbXVjaCBzcGFjZSBpcyBuZWVkZWQgYnkgXGMgcHNhc2ltX3NlcmlhbGlzZV9wc2Ffa2V5X3Byb2R1Y3Rpb25fcGFyYW1ldGVyc190KCkKKyAqICB0byBzZXJpYWxpc2UgYSBwc2Ffa2V5X3Byb2R1Y3Rpb25fcGFyYW1ldGVyc190IChhIHN0cnVjdHVyZSB3aXRoIGEgZmxleGlibGUgYXJyYXkgbWVtYmVyKS4KKyAqCisgKiBccGFyYW0gcGFyYW1zICAgICAgICAgICAgIFBvaW50ZXIgdG8gdGhlIHN0cnVjdCB0byBiZSBzZXJpYWxpc2VkCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgIChuZWVkZWQgaW4gY2FzZSBzb21lIHNlcmlhbGlzYXRpb25zIGFyZSB2YWx1ZS0KKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVwZW5kZW50KS4KKyAqIFxwYXJhbSBkYXRhX2xlbmd0aCAgICAgICAgTnVtYmVyIG9mIGJ5dGVzIGluIHRoZSBkYXRhW10gb2YgdGhlIHN0cnVjdCB0byBiZSBzZXJpYWxpc2VkLgorICoKKyAqIFxyZXR1cm4gICAgICAgICAgICAgICAgICAgVGhlIG51bWJlciBvZiBieXRlcyBuZWVkZWQgaW4gdGhlIHNlcmlhbGlzYXRpb24gYnVmZmVyIGJ5CisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgIFxjIHBzYXNpbV9zZXJpYWxpc2VfcHNhX2tleV9wcm9kdWN0aW9uX3BhcmFtZXRlcnNfdCgpIHRvIHNlcmlhbGlzZQorICogICAgICAgICAgICAgICAgICAgICAgICAgICB0aGUgc3BlY2lmaWVkIHN0cnVjdHVyZS4KKyAqLworc2l6ZV90IHBzYXNpbV9zZXJpYWxpc2VfcHNhX2tleV9wcm9kdWN0aW9uX3BhcmFtZXRlcnNfdF9uZWVkcygKKyAgICBjb25zdCBwc2Ffa2V5X3Byb2R1Y3Rpb25fcGFyYW1ldGVyc190ICpwYXJhbXMsCisgICAgc2l6ZV90IGJ1ZmZlcl9zaXplKTsKKworLyoqIFNlcmlhbGlzZSBhIHBzYV9rZXlfcHJvZHVjdGlvbl9wYXJhbWV0ZXJzX3QuCisgKgorICogXHBhcmFtIHBvc1tpbixvdXRdICAgICAgICBQb2ludGVyIHRvIGEgYHVpbnQ4X3QgKmAgaG9sZGluZyBjdXJyZW50IHBvc2l0aW9uCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIHRoZSBidWZmZXIuCisgKiBccGFyYW0gcmVtYWluaW5nW2luLG91dF0gIFBvaW50ZXIgdG8gYSBgc2l6ZV90YCBob2xkaW5nIG51bWJlciBvZiBieXRlcworICogICAgICAgICAgICAgICAgICAgICAgICAgICByZW1haW5pbmcgaW4gdGhlIGJ1ZmZlci4KKyAqIFxwYXJhbSBwYXJhbXMgICAgICAgICAgICAgUG9pbnRlciB0byB0aGUgc3RydWN0dXJlIHRvIGJlIHNlcmlhbGlzZWQuCisgKiBccGFyYW0gZGF0YV9sZW5ndGggICAgICAgIE51bWJlciBvZiBieXRlcyBpbiB0aGUgZGF0YVtdIG9mIHRoZSBzdHJ1Y3QgdG8gYmUgc2VyaWFsaXNlZC4KKyAqCisgKiBccmV0dXJuICAgICAgICAgICAgICAgICAgIFxjIDEgb24gc3VjY2VzcyAoIm9rYXkiKSwgXGMgMCBvbiBlcnJvci4KKyAqLworaW50IHBzYXNpbV9zZXJpYWxpc2VfcHNhX2tleV9wcm9kdWN0aW9uX3BhcmFtZXRlcnNfdCh1aW50OF90ICoqcG9zLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgKnJlbWFpbmluZywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgcHNhX2tleV9wcm9kdWN0aW9uX3BhcmFtZXRlcnNfdCAqcGFyYW1zLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgZGF0YV9sZW5ndGgpOworCisvKiogRGVzZXJpYWxpc2UgYSBwc2Ffa2V5X3Byb2R1Y3Rpb25fcGFyYW1ldGVyc190LgorICoKKyAqIFxwYXJhbSBwb3NbaW4sb3V0XSAgICAgICAgUG9pbnRlciB0byBhIGB1aW50OF90ICpgIGhvbGRpbmcgY3VycmVudCBwb3NpdGlvbgorICogICAgICAgICAgICAgICAgICAgICAgICAgICBpbiB0aGUgc2VyaWFsaXNhdGlvbiBidWZmZXIuCisgKiBccGFyYW0gcmVtYWluaW5nW2luLG91dF0gIFBvaW50ZXIgdG8gYSBgc2l6ZV90YCBob2xkaW5nIG51bWJlciBvZiBieXRlcworICogICAgICAgICAgICAgICAgICAgICAgICAgICByZW1haW5pbmcgaW4gdGhlIHNlcmlhbGlzYXRpb24gYnVmZmVyLgorICogXHBhcmFtIHBhcmFtcyAgICAgICAgICAgICBQb2ludGVyIHRvIGEgYHBzYV9rZXlfcHJvZHVjdGlvbl9wYXJhbWV0ZXJzX3QgKmAgdG8KKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVjZWl2ZSB0aGUgYWRkcmVzcyBvZiBhIG5ld2x5LWFsbG9jYXRlZCBzdHJ1Y3R1cmUsCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgIHdoaWNoIHRoZSBjYWxsZXIgbXVzdCBgZnJlZSgpYC4KKyAqIFxwYXJhbSBkYXRhX2xlbmd0aCAgICAgICAgUG9pbnRlciB0byBhIGBzaXplX3RgIHRvIHJlY2VpdmUgdGhlIG51bWJlciBvZgorICogICAgICAgICAgICAgICAgICAgICAgICAgICBieXRlcyBpbiB0aGUgZGF0YVtdIG1lbWJlciBvZiB0aGUgc3RydWN0dXJlIGRlc2VyaWFsaXNlZC4KKyAqCisgKiBccmV0dXJuICAgICAgICAgICAgICAgICAgIFxjIDEgb24gc3VjY2VzcyAoIm9rYXkiKSwgXGMgMCBvbiBlcnJvci4KKyAqLworaW50IHBzYXNpbV9kZXNlcmlhbGlzZV9wc2Ffa2V5X3Byb2R1Y3Rpb25fcGFyYW1ldGVyc190KHVpbnQ4X3QgKipwb3MsIHNpemVfdCAqcmVtYWluaW5nLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBzYV9rZXlfcHJvZHVjdGlvbl9wYXJhbWV0ZXJzX3QgKipwYXJhbXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90ICpidWZmZXJfbGVuZ3RoKTsKK0VPRgorfQorCiBzdWIgaF9oZWFkZXIKIHsKICAgICByZXR1cm4gPDwnRU9GJzsKQEAgLTM4Myw3ICs0NzIsOCBAQAogCiAgICAgcmV0dXJuIDw8RU9GOwogCi1zaXplX3QgcHNhc2ltX3NlcmlhbGlzZV8ke3R5cGVfZH1fbmVlZHMoJHR5cGUgdmFsdWUpCitzaXplX3QgcHNhc2ltX3NlcmlhbGlzZV8ke3R5cGVfZH1fbmVlZHMoCisgICAgJHR5cGUgdmFsdWUpCiB7CiAgICAgcmV0dXJuIHNpemVvZih2YWx1ZSk7CiB9CkBAIC0zOTksNyArNDg5LDggQEAKIAogICAgIHJldHVybiA8PEVPRjsKIAotc2l6ZV90IHBzYXNpbV9zZXJ2ZXJfc2VyaWFsaXNlXyR7dHlwZV9kfV9uZWVkcygkdHlwZSAqb3BlcmF0aW9uKQorc2l6ZV90IHBzYXNpbV9zZXJ2ZXJfc2VyaWFsaXNlXyR7dHlwZV9kfV9uZWVkcygKKyAgICAkdHlwZSAqb3BlcmF0aW9uKQogewogICAgICh2b2lkKSBvcGVyYXRpb247CiAKQEAgLTQyMSw3ICs1MTIsOCBAQAogCiAgICAgcmV0dXJuIDw8RU9GOwogCi1zaXplX3QgcHNhc2ltX3NlcmlhbGlzZV8ke3R5cGVfZH1fbmVlZHMoJHR5cGUgdmFsdWUpCitzaXplX3QgcHNhc2ltX3NlcmlhbGlzZV8ke3R5cGVfZH1fbmVlZHMoCisgICAgJHR5cGUgdmFsdWUpCiB7CiAgICAgcmV0dXJuIHBzYXNpbV9zZXJpYWxpc2VfJHtpc2FfZH1fbmVlZHModmFsdWUpOwogfQpAQCAtNDcxLDcgKzU2Myw4IEBACiAKIGludCBwc2FzaW1fc2VydmVyX3NlcmlhbGlzZV8kdHlwZV9kKHVpbnQ4X3QgKipwb3MsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCAqcmVtYWluaW5nLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkdHlwZSAqb3BlcmF0aW9uKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkdHlwZSAqb3BlcmF0aW9uLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgY29tcGxldGVkKQogewogICAgIHBzYXNpbV9vcGVyYXRpb25fdCBjbGllbnRfb3BlcmF0aW9uOwogCkBAIC00ODEsNiArNTc0LDEzIEBACiAKICAgICBzc2l6ZV90IHNsb3QgPSBvcGVyYXRpb24gLSAke3R9X29wZXJhdGlvbnM7CiAKKyAgICBpZiAoY29tcGxldGVkKSB7CisgICAgICAgIG1lbXNldCgmJHt0fV9vcGVyYXRpb25zW3Nsb3RdLAorICAgICAgICAgICAgICAgMCwKKyAgICAgICAgICAgICAgIHNpemVvZigkdHlwZV9kKSk7CisgICAgICAgICR7dH1fb3BlcmF0aW9uX2hhbmRsZXNbc2xvdF0gPSAwOworICAgIH0KKwogICAgIGNsaWVudF9vcGVyYXRpb24uaGFuZGxlID0gJHt0fV9vcGVyYXRpb25faGFuZGxlc1tzbG90XTsKIAogICAgIG1lbWNweSgqcG9zLCAmY2xpZW50X29wZXJhdGlvbiwgc2l6ZW9mKGNsaWVudF9vcGVyYXRpb24pKTsKQEAgLTU0Nyw3ICs2NDcsNyBAQAogICAgIGlmICgkdHlwZSA9fiAvXnBzYV8oXHcrKV9vcGVyYXRpb25fdCQvKSB7CiAgICAgICAgICR0ID0gJDE7CiAgICAgfSBlbHNlIHsKLSAgICAgICAgZGllKCIkMDogZGVmaW5lX3NlcnZlcl9zZXJpYWxpc2U6ICR0eXBlOiBub3Qgc3VwcG9ydGVkXG4iKTsKKyAgICAgICAgZGllKCIkMDogZGVmaW5lX3NlcnZlcl9kZXNlcmlhbGlzZTogJHR5cGU6IG5vdCBzdXBwb3J0ZWRcbiIpOwogICAgIH0KIAogICAgIG15ICR0eXBlX2QgPSAkdHlwZTsKQEAgLTcxNiw2ICs4MTYsMTA2IEBACiBFT0YKIH0KIAorc3ViIGRlZmluZV9wc2Ffa2V5X3Byb2R1Y3Rpb25fcGFyYW1ldGVyc190X2Z1bmN0aW9ucworeworICAgIHJldHVybiA8PCdFT0YnOworCisjZGVmaW5lIFNFUl9UQUdfU0laRSAgICAgICAgNAorCitzaXplX3QgcHNhc2ltX3NlcmlhbGlzZV9wc2Ffa2V5X3Byb2R1Y3Rpb25fcGFyYW1ldGVyc190X25lZWRzKAorICAgIGNvbnN0IHBzYV9rZXlfcHJvZHVjdGlvbl9wYXJhbWV0ZXJzX3QgKnBhcmFtcywKKyAgICBzaXplX3QgZGF0YV9sZW5ndGgpCit7CisgICAgLyogV2Ugd2lsbCBzZXJpYWxpc2Ugd2l0aCA0LWJ5dGUgdGFnID0gIlBLUFAiICsgNC1ieXRlIG92ZXJhbGwgbGVuZ3RoIGF0IHRoZSBiZWdpbm5pbmcsCisgICAgICogZm9sbG93ZWQgYnkgc2l6ZV90IGRhdGFfbGVuZ3RoLCB0aGVuIHRoZSBhY3R1YWwgZGF0YSBmcm9tIHRoZSBzdHJ1Y3R1cmUuCisgICAgICovCisgICAgcmV0dXJuIFNFUl9UQUdfU0laRSArIHNpemVvZih1aW50MzJfdCkgKyBzaXplb2YoZGF0YV9sZW5ndGgpICsgc2l6ZW9mKCpwYXJhbXMpICsgZGF0YV9sZW5ndGg7Cit9CisKK2ludCBwc2FzaW1fc2VyaWFsaXNlX3BzYV9rZXlfcHJvZHVjdGlvbl9wYXJhbWV0ZXJzX3QodWludDhfdCAqKnBvcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90ICpyZW1haW5pbmcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHBzYV9rZXlfcHJvZHVjdGlvbl9wYXJhbWV0ZXJzX3QgKnBhcmFtcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IGRhdGFfbGVuZ3RoKQoreworICAgIGlmIChkYXRhX2xlbmd0aCA+IFVJTlQzMl9NQVggLyAyKSB7ICAgICAgIC8qIGFyYml0cmFyeSBsaW1pdCAqLworICAgICAgICByZXR1cm4gMDsgICAgICAgLyogdG9vIGJpZyB0byBzZXJpYWxpc2UgKi8KKyAgICB9CisKKyAgICAvKiBXZSB1c2UgMzItYml0IGxlbmd0aHMsIHdoaWNoIHNob3VsZCBiZSBlbm91Z2ggZm9yIGFueSByZWFzb25hYmxlIHVzYWdlIDopICovCisgICAgLyogKHRoZSBVSU5UMzJfTUFYIC8gMiBhYm92ZSBpcyBhbiBldmVuIG1vcmUgY29uc2VydmF0aXZlIGNoZWNrIHRvIGF2b2lkIG92ZXJmbG93IGhlcmUpICovCisgICAgdWludDMyX3QgbGVuID0gKHVpbnQzMl90KSAoc2l6ZW9mKGRhdGFfbGVuZ3RoKSArIHNpemVvZigqcGFyYW1zKSArIGRhdGFfbGVuZ3RoKTsKKyAgICBpZiAoKnJlbWFpbmluZyA8IFNFUl9UQUdfU0laRSArIHNpemVvZih1aW50MzJfdCkgKyBsZW4pIHsKKyAgICAgICAgcmV0dXJuIDA7CisgICAgfQorCisgICAgY2hhciB0YWdbU0VSX1RBR19TSVpFXSA9ICJQS1BQIjsKKworICAgIG1lbWNweSgqcG9zLCB0YWcsIHNpemVvZih0YWcpKTsKKyAgICBtZW1jcHkoKnBvcyArIHNpemVvZih0YWcpLCAmbGVuLCBzaXplb2YobGVuKSk7CisgICAgKnBvcyArPSBzaXplb2YodGFnKSArIHNpemVvZihsZW4pOworICAgICpyZW1haW5pbmcgLT0gc2l6ZW9mKHRhZykgKyBzaXplb2YobGVuKTsKKworICAgIG1lbWNweSgqcG9zLCAmZGF0YV9sZW5ndGgsIHNpemVvZihkYXRhX2xlbmd0aCkpOworICAgIG1lbWNweSgqcG9zICsgc2l6ZW9mKGRhdGFfbGVuZ3RoKSwgcGFyYW1zLCBzaXplb2YoKnBhcmFtcykgKyBkYXRhX2xlbmd0aCk7CisgICAgKnBvcyArPSBzaXplb2YoZGF0YV9sZW5ndGgpICsgc2l6ZW9mKCpwYXJhbXMpICsgZGF0YV9sZW5ndGg7CisgICAgKnJlbWFpbmluZyAtPSBzaXplb2YoZGF0YV9sZW5ndGgpICsgc2l6ZW9mKCpwYXJhbXMpICsgZGF0YV9sZW5ndGg7CisKKyAgICByZXR1cm4gMTsKK30KKworaW50IHBzYXNpbV9kZXNlcmlhbGlzZV9wc2Ffa2V5X3Byb2R1Y3Rpb25fcGFyYW1ldGVyc190KHVpbnQ4X3QgKipwb3MsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90ICpyZW1haW5pbmcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHNhX2tleV9wcm9kdWN0aW9uX3BhcmFtZXRlcnNfdCAqKnBhcmFtcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgKmRhdGFfbGVuZ3RoKQoreworICAgIGlmICgqcmVtYWluaW5nIDwgU0VSX1RBR19TSVpFICsgc2l6ZW9mKHVpbnQzMl90KSkgeworICAgICAgICByZXR1cm4gMDsgICAgICAgLyogY2FuJ3QgZXZlbiBiZSBhbiBlbXB0eSBzZXJpYWxpc2F0aW9uICovCisgICAgfQorCisgICAgY2hhciB0YWdbU0VSX1RBR19TSVpFXSA9ICJQS1BQIjsgICAgLyogZXhwZWN0ZWQgKi8KKyAgICB1aW50MzJfdCBsZW47CisKKyAgICBtZW1jcHkoJmxlbiwgKnBvcyArIHNpemVvZih0YWcpLCBzaXplb2YobGVuKSk7CisKKyAgICBpZiAobWVtY21wKCpwb3MsIHRhZywgc2l6ZW9mKHRhZykpICE9IDApIHsKKyAgICAgICAgcmV0dXJuIDA7ICAgICAgIC8qIHdyb25nIHRhZyAqLworICAgIH0KKworICAgICpwb3MgKz0gc2l6ZW9mKHRhZykgKyBzaXplb2YobGVuKTsKKyAgICAqcmVtYWluaW5nIC09IHNpemVvZih0YWcpICsgc2l6ZW9mKGxlbik7CisKKyAgICBpZiAoKnJlbWFpbmluZyA8IHNpemVvZigqZGF0YV9sZW5ndGgpKSB7CisgICAgICAgIHJldHVybiAwOyAgICAgICAvKiBtaXNzaW5nIGRhdGFfbGVuZ3RoICovCisgICAgfQorICAgIG1lbWNweShkYXRhX2xlbmd0aCwgKnBvcywgc2l6ZW9mKCpkYXRhX2xlbmd0aCkpOworCisgICAgaWYgKChzaXplX3QpIGxlbiAhPSAoc2l6ZW9mKGRhdGFfbGVuZ3RoKSArIHNpemVvZigqKnBhcmFtcykgKyAqZGF0YV9sZW5ndGgpKSB7CisgICAgICAgIHJldHVybiAwOyAgICAgICAvKiB3cm9uZyBsZW5ndGggKi8KKyAgICB9CisKKyAgICBpZiAoKnJlbWFpbmluZyA8IHNpemVvZigqZGF0YV9sZW5ndGgpICsgc2l6ZW9mKCoqcGFyYW1zKSArICpkYXRhX2xlbmd0aCkgeworICAgICAgICByZXR1cm4gMDsgICAgICAgLyogbm90IGVub3VnaCBkYXRhIHByb3ZpZGVkICovCisgICAgfQorCisgICAgKnBvcyArPSBzaXplb2YoZGF0YV9sZW5ndGgpOworICAgICpyZW1haW5pbmcgLT0gc2l6ZW9mKGRhdGFfbGVuZ3RoKTsKKworICAgIHBzYV9rZXlfcHJvZHVjdGlvbl9wYXJhbWV0ZXJzX3QgKm91dCA9IG1hbGxvYyhzaXplb2YoKipwYXJhbXMpICsgKmRhdGFfbGVuZ3RoKTsKKyAgICBpZiAob3V0ID09IE5VTEwpIHsKKyAgICAgICAgcmV0dXJuIDA7ICAgICAgIC8qIGFsbG9jYXRpb24gZmFpbHVyZSAqLworICAgIH0KKworICAgIG1lbWNweShvdXQsICpwb3MsIHNpemVvZigqb3V0KSArICpkYXRhX2xlbmd0aCk7CisgICAgKnBvcyArPSBzaXplb2YoKm91dCkgKyAqZGF0YV9sZW5ndGg7CisgICAgKnJlbWFpbmluZyAtPSBzaXplb2YoKm91dCkgKyAqZGF0YV9sZW5ndGg7CisKKyAgICAqcGFyYW1zID0gb3V0OworCisgICAgcmV0dXJuIDE7Cit9CitFT0YKK30KKwogc3ViIGNfaGVhZGVyCiB7CiAgICAgcmV0dXJuIDw8J0VPRic7CkBAIC04MDAsOCArMTAwMCwxMCBAQAogCiAgICAgcmV0dXJuIDw8RU9GOwogCi1zdGF0aWMgcHNhXyR7dHlwZX1fb3BlcmF0aW9uX3QgJHt0eXBlfV9vcGVyYXRpb25zW01BWF9MSVZFX0hBTkRMRVNfUEVSX0NMQVNTXTsKLXN0YXRpYyBwc2FzaW1fY2xpZW50X2hhbmRsZV90ICR7dHlwZX1fb3BlcmF0aW9uX2hhbmRsZXNbTUFYX0xJVkVfSEFORExFU19QRVJfQ0xBU1NdOworc3RhdGljIHBzYV8ke3R5cGV9X29wZXJhdGlvbl90ICR7dHlwZX1fb3BlcmF0aW9uc1sKKyAgICBNQVhfTElWRV9IQU5ETEVTX1BFUl9DTEFTU107CitzdGF0aWMgcHNhc2ltX2NsaWVudF9oYW5kbGVfdCAke3R5cGV9X29wZXJhdGlvbl9oYW5kbGVzWworICAgIE1BWF9MSVZFX0hBTkRMRVNfUEVSX0NMQVNTXTsKIHN0YXRpYyBwc2FzaW1fY2xpZW50X2hhbmRsZV90IG5leHRfJHt0eXBlfV9vcGVyYXRpb25faGFuZGxlID0gMTsKIAogLyogR2V0IGEgZnJlZSBzbG90ICovCkBAIC05MzcsOCArMTEzOSwxMCBAQAogICAgICAgICBteSAkd2hhdCA9ICQxOyAgIyBlLmcuICJoYXNoX29wZXJhdGlvbiIKIAogICAgICAgICAkY29kZSAuPSA8PEVPRjsKLSAgICBtZW1zZXQoJHt3aGF0fV9oYW5kbGVzLCAwLCBzaXplb2YoJHt3aGF0fV9oYW5kbGVzKSk7Ci0gICAgbWVtc2V0KCR7d2hhdH1zLCAwLCBzaXplb2YoJHt3aGF0fXMpKTsKKyAgICBtZW1zZXQoJHt3aGF0fV9oYW5kbGVzLCAwLAorICAgICAgICAgICBzaXplb2YoJHt3aGF0fV9oYW5kbGVzKSk7CisgICAgbWVtc2V0KCR7d2hhdH1zLCAwLAorICAgICAgICAgICBzaXplb2YoJHt3aGF0fXMpKTsKIEVPRgogICAgIH0KIApAQCAtOTQ3LDggKzExNTEsOCBAQAogRU9GCiB9CiAKLSMgSG9ycmlibGUgd2F5IHRvIGFsaWduIGZpcnN0LCBzZWNvbmQgYW5kIHRoaXJkIGxpbmVzIG9mIGZ1bmN0aW9uIHNpZ25hdHVyZSB0bwotIyBhcHBlYXNlIHVuY3J1c3RpZnkgKHRoZXNlIGFyZSB0aGUgMm5kLTR0aCBsaW5lcyBvZiBjb2RlLCBpbmRpY2VzIDEsIDIgYW5kIDMpCisjIEhvcnJpYmxlIHdheSB0byBhbGlnbiBmaXJzdCBmZXcgbGluZXMgb2YgZnVuY3Rpb24gc2lnbmF0dXJlIHRvIGFwcGVhc2UKKyMgdW5jcnVzdGlmeSAodGhlc2UgYXJlIHVzdWFsbHkgdGhlIDJuZC00dGggbGluZXMgb2YgY29kZSwgaW5kaWNlcyAxLCAyIGFuZCAzKQogIwogc3ViIGFsaWduX3NpZ25hdHVyZQogewpAQCAtOTU2LDEzICsxMTYwLDE3IEBACiAKICAgICBteSBAY29kZSA9IHNwbGl0KC9cbi8sICRjb2RlKTsKIAorICAgIG15ICRpID0gMTsKICAgICAjIEZpbmQgd2hlcmUgdGhlICggaXMKLSAgICBteSAkaWR4ID0gaW5kZXgoJGNvZGVbMV0sICIoIik7CisgICAgbXkgJGlkeCA9IGluZGV4KCRjb2RlWyRpXSwgIigiKTsKICAgICBkaWUoImNhbid0IGZpbmQgKCIpIGlmICRpZHggPCAwOwogCiAgICAgbXkgJGluZGVudCA9ICIgIiB4ICgkaWR4ICsgMSk7Ci0gICAgJGNvZGVbMl0gPX4gcy9eXHMrLyRpbmRlbnQvOwotICAgICRjb2RlWzNdID1+IHMvXlxzKy8kaW5kZW50LzsKKworICAgIGRvIHsKKyAgICAgICAgIyBJbmRlbnQgZWFjaCBsaW5lIHVwIHVudGlsIHRoZSBvbmUgdGhhdCBlbmRzIHdpdGggKQorICAgICAgICAkY29kZVsrKyRpXSA9fiBzL15ccysvJGluZGVudC87CisgICAgfSB3aGlsZSAkY29kZVskaV0gIX4gL1wpJC87CiAKICAgICByZXR1cm4gam9pbigiXG4iLCBAY29kZSkgLiAiXG4iOwogfQpAQCAtOTg3LDggKzExOTUsMTAgQEAKICAgICBkaWUoImNhbid0IGZpbmQgKCIpIGlmICRpZHggPCAwOwogCiAgICAgbXkgJGluZGVudCA9ICIgIiB4ICgkaWR4ICsgMSk7Ci0gICAgJGNvZGVbJGkgKyAxXSA9fiBzL15ccysvJGluZGVudC87Ci0gICAgJGNvZGVbJGkgKyAyXSA9fiBzL15ccysvJGluZGVudC87CisgICAgZG8geworICAgICAgICAjIEluZGVudCBlYWNoIGxpbmUgdXAgdW50aWwgdGhlIG9uZSB3aXRoIHRoZSA7IG9uIGl0CisgICAgICAgICRjb2RlWysrJGldID1+IHMvXlxzKy8kaW5kZW50LzsKKyAgICB9IHdoaWxlICgkY29kZVskaV0gIX4gLzsvKTsKIAogICAgIHJldHVybiBqb2luKCJcbiIsIEBjb2RlKSAuICJcbiI7CiB9CmRpZmYgLS1naXQgYS90ZXN0cy9wc2EtY2xpZW50LXNlcnZlci9wc2FzaW0vdGVzdC9raWxsX3NlcnZlci5zaCBiL3Rlc3RzL3BzYS1jbGllbnQtc2VydmVyL3BzYXNpbS90ZXN0L2tpbGxfc2VydmVyLnNoCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjdhYmE1YTMKLS0tIC9kZXYvbnVsbAorKysgYi90ZXN0cy9wc2EtY2xpZW50LXNlcnZlci9wc2FzaW0vdGVzdC9raWxsX3NlcnZlci5zaApAQCAtMCwwICsxLDE2IEBACisjIS9iaW4vYmFzaAorCisjIENvcHlyaWdodCBUaGUgTWJlZCBUTFMgQ29udHJpYnV0b3JzCisjIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wIE9SIEdQTC0yLjAtb3ItbGF0ZXIKKworc2V0IC1lCisKK3BraWxsIHBzYV9zZXJ2ZXIgfHwgdHJ1ZQorCisjIFJlbW92ZSB0ZW1wb3JhcnkgZmlsZXMgYW5kIGxvZ3MKK3JtIC1mIHBzYV9ub3RpZnlfKgorcm0gLWYgcHNhX3NlcnZpY2VfKgorcm0gLWYgcHNhX3NlcnZlci5sb2cKKworIyBSZW1vdmUgYWxsIElQQ3MKK2lwY3MgLXEgfCBhd2sgJ3sgcHJpbnRmICIgLXEgIiAkMiB9JyB8IHhhcmdzIGlwY3JtID4gL2Rldi9udWxsIDI+JjEgfHwgdHJ1ZQpkaWZmIC0tZ2l0IGEvdGVzdHMvcHNhLWNsaWVudC1zZXJ2ZXIvcHNhc2ltL3Rlc3QvcnVuX3Rlc3Quc2ggYi90ZXN0cy9wc2EtY2xpZW50LXNlcnZlci9wc2FzaW0vdGVzdC9ydW5fdGVzdC5zaAppbmRleCA0NWEzMTdhLi5hYzljNGM4IDEwMDc1NQotLS0gYS90ZXN0cy9wc2EtY2xpZW50LXNlcnZlci9wc2FzaW0vdGVzdC9ydW5fdGVzdC5zaAorKysgYi90ZXN0cy9wc2EtY2xpZW50LXNlcnZlci9wc2FzaW0vdGVzdC9ydW5fdGVzdC5zaApAQCAtMSwzNyArMSwyNSBAQAogIyEvYmluL2Jhc2gKIAorIyBDb3B5cmlnaHQgVGhlIE1iZWQgVExTIENvbnRyaWJ1dG9ycworIyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMCBPUiBHUEwtMi4wLW9yLWxhdGVyCisKICMgVGhpcyBpcyBhIHNpbXBsZSBiYXNoIHNjcmlwdCB0aGF0IHRlc3RzIHBzYV9jbGllbnQvcHNhX3NlcnZlciBpbnRlcmFjdGlvbi4KICMgVGhpcyBzY3JpcHQgaXMgYXV0b21hdGljYWxseSBleGVjdXRlZCB3aGVuICJtYWtlIHJ1biIgaXMgbGF1bmNoZWQgYnkgdGhlCiAjICJwc2FzaW0iIHJvb3QgZm9sZGVyLiBUaGUgc2NyaXB0IGNhbiBhbHNvIGJlIGxhdW5jaGVkIG1hbnVhbGx5IG9uY2UKICMgYmluYXJ5IGZpbGVzIGFyZSBidWlsdCAoaS5lLiBhZnRlciAibWFrZSB0ZXN0IiBpcyBleGVjdXRlZCBmcm9tIHRoZSAicHNhc2ltIgogIyByb290IGZvbGRlcikuCi0jCi0jIENvcHlyaWdodCBUaGUgTWJlZCBUTFMgQ29udHJpYnV0b3JzCi0jIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wIE9SIEdQTC0yLjAtb3ItbGF0ZXIKIAogc2V0IC1lCiAKIGNkICIkKGRpcm5hbWUgIiQwIikiCiAKLWZ1bmN0aW9uIGNsZWFuX3J1bigpIHsKLSAgICBybSAtZiBwc2Ffbm90aWZ5XyoKLSAgICBwa2lsbCBwc2FfcGFydGl0aW9uIHx8IHRydWUKLSAgICBwa2lsbCBwc2FfY2xpZW50IHx8IHRydWUKLSAgICBpcGNzIHwgZ3JlcCBxIHwgYXdrICd7IHByaW50ZiAiIC1xICIgJDIgfScgfCB4YXJncyBpcGNybSA+IC9kZXYvbnVsbCAyPiYxIHx8IHRydWUKLX0KK0NMSUVOVF9CSU49JDEKK3NoaWZ0CiAKLSMgVGhlIHNlcnZlciBjcmVhdGVzIHNvbWUgbG9jYWwgZmlsZXMgd2hlbiBpdCBzdGFydHMgdXAgc28gd2UgY2FuIHdhaXQgZm9yIHRoaXMKLSMgZXZlbnQgYXMgc2lnbmFsIHRoYXQgdGhlIHNlcnZlciBpcyByZWFkeSBzbyB0aGF0IHdlIGNhbiBzdGFydCBjbGllbnQocykuCi1mdW5jdGlvbiB3YWl0X2Zvcl9zZXJ2ZXJfc3RhcnR1cCgpIHsKLSAgICB3aGlsZSBbICEgLWYgLi9wc2Ffbm90aWZ5XyogXTsgZG8KLSAgICAgICAgc2xlZXAgMC4xCi0gICAgZG9uZQotfQoraXBjcyB8IGdyZXAgcSB8IGF3ayAneyBwcmludGYgIiAtcSAiICQyIH0nIHwgeGFyZ3MgaXBjcm0gPiAvZGV2L251bGwgMj4mMSB8fCB0cnVlCiAKLWNsZWFuX3J1bgorLi9zdGFydF9zZXJ2ZXIuc2gKKy4vJENMSUVOVF9CSU4gIiRAIgogCi0uL3BzYV9wYXJ0aXRpb24gLWsgJgotU0VSVl9QSUQ9JCEKLXdhaXRfZm9yX3NlcnZlcl9zdGFydHVwCi0uL3BzYV9jbGllbnQgIiRAIgotd2FpdCAkU0VSVl9QSUQKKyMgS2lsbCBzZXJ2ZXIgb25jZSBjbGllbnQgZXhpdGVkCitwa2lsbCBwc2Ffc2VydmVyCmRpZmYgLS1naXQgYS90ZXN0cy9wc2EtY2xpZW50LXNlcnZlci9wc2FzaW0vdGVzdC9zdGFydF9zZXJ2ZXIuc2ggYi90ZXN0cy9wc2EtY2xpZW50LXNlcnZlci9wc2FzaW0vdGVzdC9zdGFydF9zZXJ2ZXIuc2gKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZmNjOGE5NwotLS0gL2Rldi9udWxsCisrKyBiL3Rlc3RzL3BzYS1jbGllbnQtc2VydmVyL3BzYXNpbS90ZXN0L3N0YXJ0X3NlcnZlci5zaApAQCAtMCwwICsxLDE5IEBACisjIS9iaW4vYmFzaAorCisjIENvcHlyaWdodCBUaGUgTWJlZCBUTFMgQ29udHJpYnV0b3JzCisjIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wIE9SIEdQTC0yLjAtb3ItbGF0ZXIKKworc2V0IC1lCisKKyMgVGhlIHNlcnZlciBjcmVhdGVzIHNvbWUgbG9jYWwgZmlsZXMgd2hlbiBpdCBzdGFydHMgdXAgc28gd2UgY2FuIHdhaXQgZm9yIHRoaXMKKyMgZXZlbnQgYXMgc2lnbmFsIHRoYXQgdGhlIHNlcnZlciBpcyByZWFkeSBzbyB0aGF0IHdlIGNhbiBzdGFydCBjbGllbnQocykuCitmdW5jdGlvbiB3YWl0X2Zvcl9zZXJ2ZXJfc3RhcnR1cCgpIHsKKyAgICB3aGlsZSBbICQoZmluZCAuIC1uYW1lICJwc2Ffbm90aWZ5XyoiIHwgd2MgLWwpIC1lcSAwIF07IGRvCisgICAgICAgIHNsZWVwIDAuMQorICAgIGRvbmUKK30KKworJChkaXJuYW1lICIkMCIpL2tpbGxfc2VydmVyLnNoCisKKyQoZGlybmFtZSAiJDAiKS9wc2Ffc2VydmVyICYKK3dhaXRfZm9yX3NlcnZlcl9zdGFydHVwCmRpZmYgLS1naXQgYS90ZXN0cy9zY3JpcHRzL2FsbC5zaCBiL3Rlc3RzL3NjcmlwdHMvYWxsLnNoCmluZGV4IDEzMjhlZWIuLmIyZjZiZjIgMTAwNzU1Ci0tLSBhL3Rlc3RzL3NjcmlwdHMvYWxsLnNoCisrKyBiL3Rlc3RzL3NjcmlwdHMvYWxsLnNoCkBAIC0xMzMsMTAgKzEzMywxOCBAQAogcHJlX2luaXRpYWxpemVfdmFyaWFibGVzICgpIHsKICAgICBpZiBpbl9tYmVkdGxzX3JlcG87IHRoZW4KICAgICAgICAgQ09ORklHX0g9J2luY2x1ZGUvbWJlZHRscy9tYmVkdGxzX2NvbmZpZy5oJwotICAgICAgICBDUllQVE9fQ09ORklHX0g9J3RmLXBzYS1jcnlwdG8vaW5jbHVkZS9wc2EvY3J5cHRvX2NvbmZpZy5oJworICAgICAgICBpZiBbIC1kIHRmLXBzYS1jcnlwdG8gXTsgdGhlbgorICAgICAgICAgICAgQ1JZUFRPX0NPTkZJR19IPSd0Zi1wc2EtY3J5cHRvL2luY2x1ZGUvcHNhL2NyeXB0b19jb25maWcuaCcKKyAgICAgICAgICAgIFBTQV9DT1JFX1BBVEg9J3RmLXBzYS1jcnlwdG8vY29yZScKKyAgICAgICAgICAgIEJVSUxUSU5fU1JDX1BBVEg9J3RmLXBzYS1jcnlwdG8vZHJpdmVycy9idWlsdGluL3NyYycKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgQ1JZUFRPX0NPTkZJR19IPSdpbmNsdWRlL3BzYS9jcnlwdG9fY29uZmlnLmgnCisgICAgICAgIGZpCiAgICAgZWxzZQogICAgICAgICBDT05GSUdfSD0nZHJpdmVycy9idWlsdGluL2luY2x1ZGUvbWJlZHRscy9tYmVkdGxzX2NvbmZpZy5oJwogICAgICAgICBDUllQVE9fQ09ORklHX0g9J2luY2x1ZGUvcHNhL2NyeXB0b19jb25maWcuaCcKKyAgICAgICAgUFNBX0NPUkVfUEFUSD0nY29yZScKKyAgICAgICAgQlVJTFRJTl9TUkNfUEFUSD0nZHJpdmVycy9idWlsdGluL3NyYycKICAgICBmaQogICAgIENPTkZJR19URVNUX0RSSVZFUl9IPSd0ZXN0cy9pbmNsdWRlL3Rlc3QvZHJpdmVycy9jb25maWdfdGVzdF9kcml2ZXIuaCcKIApAQCAtMjE3LDYgKzIyNSw4IEBACiAgICAgIyBkZWZpbmVkIGluIHRoaXMgc2NyaXB0IHdob3NlIG5hbWUgc3RhcnRzIHdpdGggImNvbXBvbmVudF8iLgogICAgIEFMTF9DT01QT05FTlRTPSQoY29tcGdlbiAtQSBmdW5jdGlvbiBjb21wb25lbnRfIHwgc2VkICdzL2NvbXBvbmVudF8vLycpCiAKKyAgICBQU0FTSU1fUEFUSD0ndGVzdHMvcHNhLWNsaWVudC1zZXJ2ZXIvcHNhc2ltLycKKwogICAgICMgRGVsYXkgZGV0ZXJtaW5pbmcgU1VQUE9SVEVEX0NPTVBPTkVOVFMgdW50aWwgdGhlIGNvbW1hbmQgbGluZSBvcHRpb25zIGhhdmUgYSBjaGFuY2UgdG8gb3ZlcnJpZGUKICAgICAjIHRoZSBjb21tYW5kcyBzZXQgYnkgdGhlIGVudmlyb25tZW50CiB9CkBAIC0zMjksOSArMzM5LDE0IEBACiAgICAgICAgICAgICAgIC1pbmFtZSBDTWFrZUNhY2hlLnR4dCAtbyBcCiAgICAgICAgICAgICAgIC1wYXRoICcuL2NtYWtlLyouY21ha2UnIFwpIC1leGVjIHJtIC1mIHt9IFwrCiAgICAgIyBSZW1vdmUgTWFrZWZpbGVzIGdlbmVyYXRlZCBieSBpbi10cmVlIENNYWtlIGJ1aWxkcwotICAgIHJtIC1mIDNyZHBhcnR5L01ha2VmaWxlIDNyZHBhcnR5LyovTWFrZWZpbGUgcGtnY29uZmlnL01ha2VmaWxlIGZyYW1ld29yay9NYWtlZmlsZQorICAgIHJtIC1mIHBrZ2NvbmZpZy9NYWtlZmlsZSBmcmFtZXdvcmsvTWFrZWZpbGUKICAgICBybSAtZiBpbmNsdWRlL01ha2VmaWxlIHByb2dyYW1zLyEoZnV6eikvTWFrZWZpbGUKICAgICBybSAtZiB0Zi1wc2EtY3J5cHRvL01ha2VmaWxlIHRmLXBzYS1jcnlwdG8vaW5jbHVkZS9NYWtlZmlsZQorICAgIHJtIC1mIHRmLXBzYS1jcnlwdG8vY29yZS9NYWtlZmlsZSB0Zi1wc2EtY3J5cHRvL2RyaXZlcnMvTWFrZWZpbGUKKyAgICBybSAtZiB0Zi1wc2EtY3J5cHRvL2RyaXZlcnMvZXZlcmVzdC9NYWtlZmlsZQorICAgIHJtIC1mIHRmLXBzYS1jcnlwdG8vZHJpdmVycy9wMjU2LW0vTWFrZWZpbGUKKyAgICBybSAtZiB0Zi1wc2EtY3J5cHRvL2RyaXZlcnMvYnVpbHRpbi9NYWtlZmlsZQorICAgIHJtIC1mIHRmLXBzYS1jcnlwdG8vZHJpdmVycy9idWlsdGluL3NyYy9NYWtlZmlsZQogCiAgICAgIyBSZW1vdmUgYW55IGFydGlmYWN0cyBmcm9tIHRoZSBjb21wb25lbnRfdGVzdF9jbWFrZV9hc19zdWJkaXJlY3RvcnkgdGVzdC4KICAgICBybSAtcmYgcHJvZ3JhbXMvdGVzdC9jbWFrZV9zdWJwcm9qZWN0L2J1aWxkCkBAIC0zNTYsNiArMzcxLDI0IEBACiAgICAgZG9uZQogfQogCisjIFRoaXMgaXMgYSBoZWxwZXIgZnVuY3Rpb24gdG8gYmUgdXNlZCBpbiBwc2FzaW0gYnVpbGRzLiBJdCBpcyBtZWFudCB0byBjbGVhbgorIyB1cCB0aGUgbGlicmFyeSdzIHdvcmtzcGFjZSBhZnRlciB0aGUgc2VydmVyIGJ1aWxkIGFuZCBiZWZvcmUgdGhlIGNsaWVudAorIyBidWlsZC4gQnVpbHQgbGlicmFyaWVzIChtYmVkY3J5cHRvLCBtYmVkeDUwOSBhbmQgbWJlZHRscykgYXJlIHN1cHBvc2VkIHRvIGJlCisjIGFscmVhZHkgY29waWVkIHRvIHBzYXNpbSBmb2xkZXIgYXQgdGhpcyBwb2ludC4KK2hlbHBlcl9wc2FzaW1fY2xlYW51cF9iZWZvcmVfY2xpZW50KCkgeworICAgICMgQ2xlYW4gdXAgbGlicmFyeSBmaWxlcworICAgIG1ha2UgLUMgbGlicmFyeSBjbGVhbgorICAgICMgQ2xlYW4gdXAgaW50ZXJtZWRpYXRlIGZpbGVzIHRoYXQgd2VyZSB1c2VkIHRvIGJ1aWxkIHRoZSBzZXJ2ZXIKKyAgICBtYWtlIC1DICRQU0FTSU1fUEFUSCBjbGVhbl9zZXJ2ZXJfaW50ZXJtZWRpYXRlX2ZpbGVzCisgICAgIyBSZXN0b3JlIGZpbGVzIHRoYXQgd2VyZSBiYWNrdXAgYmVmb3JlIGJ1aWxkaW5nIGxpYnJhcnkgZmlsZXMuIFRoaXMKKyAgICAjIGluY2x1ZGVzICRDT05GSUdfSCBhbmQgJENSWVBUT19DT05GSUdfSC4KKyAgICBmb3IgeCBpbiAkZmlsZXNfdG9fYmFja191cDsgZG8KKyAgICAgICAgaWYgW1sgLWUgIiR4JGJhY2t1cF9zdWZmaXgiIF1dOyB0aGVuCisgICAgICAgICAgICBjcCAtcCAiJHgkYmFja3VwX3N1ZmZpeCIgIiR4IgorICAgICAgICBmaQorICAgIGRvbmUKK30KKwogIyBGaW5hbCBjbGVhbnVwIHdoZW4gdGhpcyBzY3JpcHQgZXhpdHMgKGV4Y2VwdCB3aGVuIGV4aXRpbmcgb24gYSBmYWlsdXJlCiAjIGluIG5vbi1rZWVwLWdvaW5nIG1vZGUpLgogZmluYWxfY2xlYW51cCAoKSB7CkBAIC00MjQsNiArNDU3LDEyIEBACiAKICAgICBtc2cgInNpemU6IEFSTSBDb21waWxlciA2ICgkRkxBR1MpIgogICAgICIkQVJNQzZfRlJPTUVMRiIgLXogbGlicmFyeS8qLm8KKyAgICBpZiBbIC1uICR7UFNBX0NPUkVfUEFUSH0gXTsgdGhlbgorICAgICAgICAiJEFSTUM2X0ZST01FTEYiIC16ICR7UFNBX0NPUkVfUEFUSH0vKi5vCisgICAgZmkKKyAgICBpZiBbIC1uICR7QlVJTFRJTl9TUkNfUEFUSH0gXTsgdGhlbgorICAgICAgICAiJEFSTUM2X0ZST01FTEYiIC16ICR7QlVJTFRJTl9TUkNfUEFUSH0vKi5vCisgICAgZmkKIH0KIAogZXJyX21zZygpCkBAIC05NDgsMTEgKzk4NywxMSBAQAogICAgIG1ha2UgQ0M9JEFTQU5fQ0MgQ0ZMQUdTPSIkQVNBTl9DRkxBR1MgLUkuLi90ZXN0cy9pbmNsdWRlIC1JLi4vdGVzdHMgLUkuLi8uLi90ZXN0cyAtRFBTQV9DUllQVE9fRFJJVkVSX1RFU1QgLURNQkVEVExTX1RFU1RfTElCVEVTVERSSVZFUjEgJGxvY19hY2NlbF9mbGFncyIgTERGTEFHUz0iLWx0ZXN0ZHJpdmVyMSAkQVNBTl9DRkxBR1MiICIkQCIKIH0KIAotIyAkMTogdGFyZ2V0IHdoaWNoIGNhbiBiZSAiY2xpZW50IiBvciAic2VydmVyIgotaGVscGVyX2NyeXB0b19jbGllbnRfYnVpbGQoKSB7CisjIFNldCBzb21lIGRlZmF1bHQgdmFsdWVzICRDT05GSUdfSCBpbiBvcmRlciB0byBidWlsZCBzZXJ2ZXIgb3IgY2xpZW50IHNpZGVzCisjIGluIFBTQVNJTS4gVGhlcmUgaXMgb25seSAxIG1hbmRhdG9yeSBwYXJhbWV0ZXI6CisjIC0gJDE6IHRhcmdldCB3aGljaCBjYW4gYmUgImNsaWVudCIgb3IgInNlcnZlciIKK2hlbHBlcl9wc2FzaW1fY29uZmlnKCkgewogICAgIFRBUkdFVD0kMQotICAgIHNoaWZ0Ci0gICAgVEFSR0VUX0xJQj1saWJwc2EkVEFSR0VUCiAKICAgICBpZiBbICIkVEFSR0VUIiA9PSAiY2xpZW50IiBdOyB0aGVuCiAgICAgICAgIHNjcmlwdHMvY29uZmlnLnB5IGZ1bGwKQEAgLTk3Niw4ICsxMDE1LDIzIEBACiAgICAgICAgICMgQWxzbyBlbnN1cmUgTUJFRFRMU19QU0FfQ1JZUFRPX0tFWV9JRF9FTkNPREVTX09XTkVSIG5vdCBzZXQgKHRvIG1hdGNoIGNsaWVudCkKICAgICAgICAgc2NyaXB0cy9jb25maWcucHkgdW5zZXQgTUJFRFRMU19QU0FfQ1JZUFRPX0tFWV9JRF9FTkNPREVTX09XTkVSCiAgICAgZmkKK30KIAotICAgIG1ha2UgLUMgdGVzdHMvcHNhLWNsaWVudC1zZXJ2ZXIvcHNhc2ltLyBDRkxBR1M9IiRBU0FOX0NGTEFHUyIgTERGTEFHUz0iJEFTQU5fQ0ZMQUdTIiAkVEFSR0VUX0xJQiAiJEAiCisjIEhlbHBlciB0byBidWlsZCB0aGUgbGlicmFyaWVzIGZvciBjbGllbnQvc2VydmVyIGluIFBTQVNJTS4gSWYgdGhlIHNlcnZlciBpcworIyBiZWluZyBidWlsdCwgdGhlbiBpdCBidWlsZHMgYWxzbyB0aGUgZmluYWwgZXhlY3V0YWJsZS4KKyMgVGhlcmUgaXMgb25seSAxIG1hbmRhdG9yeSBwYXJhbWV0ZXI6CisjIC0gJDE6IHRhcmdldCB3aGljaCBjYW4gYmUgImNsaWVudCIgb3IgInNlcnZlciIKK2hlbHBlcl9wc2FzaW1fYnVpbGQoKSB7CisgICAgVEFSR0VUPSQxCisgICAgc2hpZnQKKyAgICBUQVJHRVRfTElCPSR7VEFSR0VUfV9saWJzCisKKyAgICBtYWtlIC1DICRQU0FTSU1fUEFUSCBDRkxBR1M9IiRBU0FOX0NGTEFHUyIgTERGTEFHUz0iJEFTQU5fQ0ZMQUdTIiAkVEFSR0VUX0xJQiAiJEAiCisKKyAgICAjIEJ1aWxkIGFsc28gdGhlIHNlcnZlciBhcHBsaWNhdGlvbiBhZnRlciBpdHMgbGlicmFyaWVzIGhhdmUgYmVlbiBidWlsdC4KKyAgICBpZiBbICIkVEFSR0VUIiA9PSAic2VydmVyIiBdOyB0aGVuCisgICAgICAgIG1ha2UgLUMgJFBTQVNJTV9QQVRIIENGTEFHUz0iJEFTQU5fQ0ZMQUdTIiBMREZMQUdTPSIkQVNBTl9DRkxBR1MiIHRlc3QvcHNhX3NlcnZlcgorICAgIGZpCiB9CiAKICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKQEAgLTEwMzcsNiArMTA5MSwyNCBAQAogICAgIGVjaG8gIiRsb2NfbGlzdCIKIH0KIAorIyBIZWxwZXIgZnVuY3Rpb24gZm9yIGNvbnRyb2xsaW5nIChzdGFydCAmIHN0b3ApIHRoZSBwc2FzaW0gc2VydmVyLgoraGVscGVyX3BzYXNpbV9zZXJ2ZXIoKSB7CisgICAgT1BFUkFUSU9OPSQxCisgICAgaWYgWyAiJE9QRVJBVElPTiIgPT0gInN0YXJ0IiBdOyB0aGVuCisgICAgKAorICAgICAgICBjZCB0ZXN0cworICAgICAgICBtc2cgInN0YXJ0IHNlcnZlciIKKyAgICAgICAgcHNhLWNsaWVudC1zZXJ2ZXIvcHNhc2ltL3Rlc3Qvc3RhcnRfc2VydmVyLnNoCisgICAgKQorICAgIGVsc2UKKyAgICAoCisgICAgICAgIGNkIHRlc3RzCisgICAgICAgIG1zZyAidGVybWluYXRlIHNlcnZlciBhbmQgY2xlYW51cCIKKyAgICAgICAgcHNhLWNsaWVudC1zZXJ2ZXIvcHNhc2ltLy90ZXN0L2tpbGxfc2VydmVyLnNoCisgICAgKQorICAgIGZpCit9CisKICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKICMjIyMgQmFzaWMgY2hlY2tzCiAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCkBAIC0xMDU1LDYgKzExMjcsOCBAQAogY29tcG9uZW50X2NoZWNrX3JlY3Vyc2lvbiAoKSB7CiAgICAgbXNnICJDaGVjazogcmVjdXJzaW9uLnBsIiAjIDwgMXMKICAgICB0ZXN0cy9zY3JpcHRzL3JlY3Vyc2lvbi5wbCBsaWJyYXJ5LyouYworICAgIHRlc3RzL3NjcmlwdHMvcmVjdXJzaW9uLnBsICR7UFNBX0NPUkVfUEFUSH0vKi5jCisgICAgdGVzdHMvc2NyaXB0cy9yZWN1cnNpb24ucGwgJHtCVUlMVElOX1NSQ19QQVRIfS8qLmMKIH0KIAogY29tcG9uZW50X2NoZWNrX2dlbmVyYXRlZF9maWxlcyAoKSB7CkBAIC0xMzQ5LDY4ICsxNDIzLDYgQEAKICAgICBjaGVja19yZW5hbWVkX3N5bWJvbHMgdGVzdHMvaW5jbHVkZS9zcGUvY3J5cHRvX3NwZS5oIGxpYnJhcnkvbGlibWJlZGNyeXB0by5hCiB9CiAKLSMgR2V0IGEgbGlzdCBvZiBsaWJyYXJ5LXdpc2UgdW5kZWZpbmVkIHN5bWJvbHMgYW5kIGVuc3VyZSB0aGF0IHRoZXkgb25seQotIyBiZWxvbmcgdG8gcHNhX3h4eCgpIGZ1bmN0aW9ucyBhbmQgbm90IHRvIG1iZWR0bHNfeXl5KCkgb25lcy4KLSMgVGhpcyBmdW5jdGlvbiBpcyBhIGNvbW1vbiBoZWxwZXIgdXNlZCBieSBib3RoOgotIyAtIGNvbXBvbmVudF90ZXN0X2RlZmF1bHRfcHNhX2NyeXB0b19jbGllbnRfd2l0aG91dF9jcnlwdG9fcHJvdmlkZXIKLSMgLSBjb21wb25lbnRfYnVpbGRfZnVsbF9wc2FfY3J5cHRvX2NsaWVudF93aXRob3V0X2NyeXB0b19wcm92aWRlci4KLWNvbW1vbl9jaGVja19tYmVkdGxzX21pc3Npbmdfc3ltYm9scygpIHsKLSAgICBubSBsaWJyYXJ5L2xpYm1iZWRjcnlwdG8uYSB8IGdyZXAgJyBbVFJyRENdICcgfCBncmVwIC1FbyAnKG1iZWR0bHNffHBzYV8pLionIHwgc29ydCAtdSA+IHN5bV9kZWYudHh0Ci0gICAgbm0gbGlicmFyeS9saWJtYmVkY3J5cHRvLmEgfCBncmVwICcgVSAnIHwgZ3JlcCAtRW8gJyhtYmVkdGxzX3xwc2FfKS4qJyB8IHNvcnQgLXUgPiBzeW1fdW5kZWYudHh0Ci0gICAgY29tbSBzeW1fZGVmLnR4dCBzeW1fdW5kZWYudHh0IC0xMyA+IGxpbmtpbmdfZXJyb3JzLnR4dAotICAgIG5vdCBncmVwIG1iZWR0bHNfIGxpbmtpbmdfZXJyb3JzLnR4dAotCi0gICAgcm0gc3ltX2RlZi50eHQgc3ltX3VuZGVmLnR4dCBsaW5raW5nX2Vycm9ycy50eHQKLX0KLQotY29tcG9uZW50X3Rlc3RfZGVmYXVsdF9wc2FfY3J5cHRvX2NsaWVudF93aXRob3V0X2NyeXB0b19wcm92aWRlciAoKSB7Ci0gICAgbXNnICJidWlsZDogZGVmYXVsdCBjb25maWcgLSBQU0FfQ1JZUFRPX0MgKyBQU0FfQ1JZUFRPX0NMSUVOVCIKLQotICAgIHNjcmlwdHMvY29uZmlnLnB5IHVuc2V0IE1CRURUTFNfUFNBX0NSWVBUT19DCi0gICAgc2NyaXB0cy9jb25maWcucHkgdW5zZXQgTUJFRFRMU19QU0FfQ1JZUFRPX1NUT1JBR0VfQwotICAgIHNjcmlwdHMvY29uZmlnLnB5IHVuc2V0IE1CRURUTFNfUFNBX0lUU19GSUxFX0MKLSAgICBzY3JpcHRzL2NvbmZpZy5weSB1bnNldCBNQkVEVExTX1NTTF9QUk9UT19UTFMxXzMKLSAgICBzY3JpcHRzL2NvbmZpZy5weSBzZXQgTUJFRFRMU19QU0FfQ1JZUFRPX0NMSUVOVAotICAgIHNjcmlwdHMvY29uZmlnLnB5IHVuc2V0IE1CRURUTFNfTE1TX0MKLQotICAgIG1ha2UKLQotICAgIG1zZyAiY2hlY2sgbWlzc2luZyBzeW1ib2xzOiBkZWZhdWx0IGNvbmZpZyAtIFBTQV9DUllQVE9fQyArIFBTQV9DUllQVE9fQ0xJRU5UIgotICAgIGNvbW1vbl9jaGVja19tYmVkdGxzX21pc3Npbmdfc3ltYm9scwotCi0gICAgbXNnICJ0ZXN0OiBkZWZhdWx0IGNvbmZpZyAtIFBTQV9DUllQVE9fQyArIFBTQV9DUllQVE9fQ0xJRU5UIgotICAgIG1ha2UgdGVzdAotfQotCi1jb21wb25lbnRfYnVpbGRfZnVsbF9wc2FfY3J5cHRvX2NsaWVudF93aXRob3V0X2NyeXB0b19wcm92aWRlciAoKSB7Ci0gICAgbXNnICJidWlsZDogZnVsbCBjb25maWcgLSBQU0FfQ1JZUFRPX0MiCi0KLSAgICAjIFVzZSBmdWxsIGNvbmZpZyB3aGljaCBpbmNsdWRlcyBVU0VfUFNBIGFuZCBDUllQVE9fQ0xJRU5ULgotICAgIHNjcmlwdHMvY29uZmlnLnB5IGZ1bGwKLQotICAgIHNjcmlwdHMvY29uZmlnLnB5IHVuc2V0IE1CRURUTFNfUFNBX0NSWVBUT19DCi0gICAgc2NyaXB0cy9jb25maWcucHkgdW5zZXQgTUJFRFRMU19QU0FfQ1JZUFRPX1NUT1JBR0VfQwotICAgICMgRHluYW1pYyBzZWN1cmUgZWxlbWVudCBzdXBwb3J0IGlzIGEgZGVwcmVjYXRlZCBmZWF0dXJlIGFuZCBpdCBpcyBub3QKLSAgICAjIGF2YWlsYWJsZSB3aGVuIENSWVBUT19DIGFuZCBQU0FfQ1JZUFRPX1NUT1JBR0VfQyBhcmUgZGlzYWJsZWQuCi0gICAgc2NyaXB0cy9jb25maWcucHkgdW5zZXQgTUJFRFRMU19QU0FfQ1JZUFRPX1NFX0MKLQotICAgICMgU2luY2UgdGhlcmUgaXMgbm8gY3J5cHRvIHByb3ZpZGVyIGluIHRoaXMgYnVpbGQgaXQgaXMgbm90IHBvc3NpYmxlIHRvCi0gICAgIyBidWlsZCBhbGwgdGhlIHRlc3QgZXhlY3V0YWJsZXMgYW5kIHByb2dyZW1zIGR1ZSB0byBtaXNzaW5nIFBTQSBmdW5jdGlvbnMKLSAgICAjIGF0IGxpbmsgdGltZS4gVGhlcmVmb3JlIHdlIHdpbGwganVzdCBidWlsZCBsaWJyYXJpZXMgYW5kIHdlJ2xsIGNoZWNrCi0gICAgIyB0aGF0IHN5bWJvbHMgb2YgaW50ZXJlc3QgYXJlIHRoZXJlLgotICAgIG1ha2UgbGliCi0KLSAgICBtc2cgImNoZWNrIG1pc3Npbmcgc3ltYm9sczogZnVsbCBjb25maWcgLSBQU0FfQ1JZUFRPX0MiCi0KLSAgICBjb21tb25fY2hlY2tfbWJlZHRsc19taXNzaW5nX3N5bWJvbHMKLQotICAgICMgRW5zdXJlIHRoYXQgZGVzaXJlZCBmdW5jdGlvbnMgYXJlIGluY2x1ZGVkIGludG8gdGhlIGJ1aWxkIChleHRlbmQgdGhlCi0gICAgIyBmb2xsb3dpbmcgbGlzdCBhcyByZXF1aXJlZCkuCi0gICAgZ3JlcCBtYmVkdGxzX3BrX2dldF9wc2FfYXR0cmlidXRlcyBsaWJyYXJ5L2xpYm1iZWRjcnlwdG8uYQotICAgIGdyZXAgbWJlZHRsc19wa19pbXBvcnRfaW50b19wc2EgbGlicmFyeS9saWJtYmVkY3J5cHRvLmEKLSAgICBncmVwIG1iZWR0bHNfcGtfY29weV9mcm9tX3BzYSBsaWJyYXJ5L2xpYm1iZWRjcnlwdG8uYQotfQotCiBjb21wb25lbnRfdGVzdF9ub19yc2Ffa2V5X3BhaXJfZ2VuZXJhdGlvbigpIHsKICAgICBtc2cgImJ1aWxkOiBkZWZhdWx0IGNvbmZpZyBtaW51cyBQU0FfV0FOVF9LRVlfVFlQRV9SU0FfS0VZX1BBSVJfR0VORVJBVEUiCiAgICAgc2NyaXB0cy9jb25maWcucHkgc2V0IE1CRURUTFNfUFNBX0NSWVBUT19DT05GSUcKQEAgLTE2NzksOCArMTY5MSw4IEBACiAgICAgbWFrZSBDRkxBR1M9IiRBU0FOX0NGTEFHUyIgTERGTEFHUz0iJEFTQU5fQ0ZMQUdTIgogCiAgICAgIyBFbnN1cmUgdGhhdCBQS19bUEFSU0V8V1JJVEVdX0Mgd2VyZSBub3QgcmUtZW5hYmxlZCBhY2NpZGVudGFsbHkgKGFkZGl0aXZlIGNvbmZpZykuCi0gICAgbm90IGdyZXAgbWJlZHRsc19wa19wYXJzZV9rZXkgbGlicmFyeS9wa3BhcnNlLm8KLSAgICBub3QgZ3JlcCBtYmVkdGxzX3BrX3dyaXRlX2tleV9kZXIgbGlicmFyeS9wa3dyaXRlLm8KKyAgICBub3QgZ3JlcCBtYmVkdGxzX3BrX3BhcnNlX2tleSAke0JVSUxUSU5fU1JDX1BBVEh9L3BrcGFyc2UubworICAgIG5vdCBncmVwIG1iZWR0bHNfcGtfd3JpdGVfa2V5X2RlciAke0JVSUxUSU5fU1JDX1BBVEh9L3Brd3JpdGUubwogCiAgICAgbXNnICJ0ZXN0OiBmdWxsIHdpdGhvdXQgcGtwYXJzZSBhbmQgcGt3cml0ZSIKICAgICBtYWtlIHRlc3QKQEAgLTE2ODksNyArMTcwMSw3IEBACiBjb21wb25lbnRfdGVzdF9jcnlwdG9fZnVsbF9tZF9saWdodF9vbmx5ICgpIHsKICAgICBtc2cgImJ1aWxkOiBjcnlwdG9fZnVsbCB3aXRoIG9ubHkgdGhlIGxpZ2h0IHN1YnNldCBvZiBNRCIKICAgICBzY3JpcHRzL2NvbmZpZy5weSBjcnlwdG9fZnVsbAotICAgIHNjcmlwdHMvY29uZmlnLnB5IHVuc2V0IE1CRURUTFNfUFNBX0NSWVBUT19DT05GSUcKKwogICAgICMgRGlzYWJsZSBNRAogICAgIHNjcmlwdHMvY29uZmlnLnB5IHVuc2V0IE1CRURUTFNfTURfQwogICAgICMgRGlzYWJsZSBkaXJlY3QgZGVwZW5kZW5jaWVzIG9mIE1EX0MKQEAgLTE2OTgsNiArMTcxMCw3IEBACiAgICAgc2NyaXB0cy9jb25maWcucHkgdW5zZXQgTUJFRFRMU19QS0NTN19DCiAgICAgIyBEaXNhYmxlIGluZGlyZWN0IGRlcGVuZGVuY2llcyBvZiBNRF9DCiAgICAgc2NyaXB0cy9jb25maWcucHkgdW5zZXQgTUJFRFRMU19FQ0RTQV9ERVRFUk1JTklTVElDICMgbmVlZHMgSE1BQ19EUkJHCisgICAgc2NyaXB0cy9jb25maWcucHkgLWYgJENSWVBUT19DT05GSUdfSCB1bnNldCBQU0FfV0FOVF9BTEdfREVURVJNSU5JU1RJQ19FQ0RTQQogICAgICMgRGlzYWJsZSB0aGluZ3MgdGhhdCB3b3VsZCBhdXRvLWVuYWJsZSBNRF9DCiAgICAgc2NyaXB0cy9jb25maWcucHkgdW5zZXQgTUJFRFRMU19QS0NTNV9DCiAKQEAgLTE3MDYsNzYgKzE3MTksMzUgQEAKICAgICBtYWtlIENDPSRBU0FOX0NDIENGTEFHUz0iJEFTQU5fQ0ZMQUdTIiBMREZMQUdTPSIkQVNBTl9DRkxBR1MiCiAKICAgICAjIE1ha2Ugc3VyZSB3ZSBkb24ndCBoYXZlIHRoZSBITUFDIGZ1bmN0aW9ucywgYnV0IHRoZSBoYXNoaW5nIGZ1bmN0aW9ucwotICAgIG5vdCBncmVwIG1iZWR0bHNfbWRfaG1hYyBsaWJyYXJ5L21kLm8KLSAgICBncmVwIG1iZWR0bHNfbWQgbGlicmFyeS9tZC5vCisgICAgbm90IGdyZXAgbWJlZHRsc19tZF9obWFjICR7QlVJTFRJTl9TUkNfUEFUSH0vbWQubworICAgIGdyZXAgbWJlZHRsc19tZCAke0JVSUxUSU5fU1JDX1BBVEh9L21kLm8KIAogICAgIG1zZyAidGVzdDogY3J5cHRvX2Z1bGwgd2l0aCBvbmx5IHRoZSBsaWdodCBzdWJzZXQgb2YgTUQiCiAgICAgbWFrZSB0ZXN0CiB9CiAKLWNvbXBvbmVudF90ZXN0X2Z1bGxfbm9fY2lwaGVyX25vX3BzYV9jcnlwdG8gKCkgewotICAgIG1zZyAiYnVpbGQ6IGZ1bGwgbm8gQ0lQSEVSIG5vIFBTQV9DUllQVE9fQyIKLSAgICBzY3JpcHRzL2NvbmZpZy5weSBmdWxsCi0gICAgc2NyaXB0cy9jb25maWcucHkgdW5zZXQgTUJFRFRMU19DSVBIRVJfQwotICAgICMgRG9uJ3QgcHVsbCBpbiBjaXBoZXIgdmlhIFBTQSBtZWNoYW5pc21zCi0gICAgIyAoY3VycmVudGx5IGlnbm9yZWQgYW55d2F5IGJlY2F1c2Ugd2UgY29tcGxldGVseSBkaXNhYmxlIFBTQSkKLSAgICBzY3JpcHRzL2NvbmZpZy5weSB1bnNldCBNQkVEVExTX1BTQV9DUllQVE9fQ09ORklHCi0gICAgIyBEaXNhYmxlIGZlYXR1cmVzIHRoYXQgZGVwZW5kIG9uIENJUEhFUl9DCi0gICAgc2NyaXB0cy9jb25maWcucHkgdW5zZXQgTUJFRFRMU19DTUFDX0MKLSAgICBzY3JpcHRzL2NvbmZpZy5weSB1bnNldCBNQkVEVExTX05JU1RfS1dfQwotICAgIHNjcmlwdHMvY29uZmlnLnB5IHVuc2V0IE1CRURUTFNfUFNBX0NSWVBUT19DCi0gICAgc2NyaXB0cy9jb25maWcucHkgdW5zZXQgTUJFRFRMU19QU0FfQ1JZUFRPX0NMSUVOVAotICAgIHNjcmlwdHMvY29uZmlnLnB5IHVuc2V0IE1CRURUTFNfU1NMX1RMU19DCi0gICAgc2NyaXB0cy9jb25maWcucHkgdW5zZXQgTUJFRFRMU19TU0xfVElDS0VUX0MKLSAgICAjIERpc2FibGUgZmVhdHVyZXMgdGhhdCBkZXBlbmQgb24gUFNBX0NSWVBUT19DCi0gICAgc2NyaXB0cy9jb25maWcucHkgdW5zZXQgTUJFRFRMU19QU0FfQ1JZUFRPX1NFX0MKLSAgICBzY3JpcHRzL2NvbmZpZy5weSB1bnNldCBNQkVEVExTX1BTQV9DUllQVE9fU1RPUkFHRV9DCi0gICAgc2NyaXB0cy9jb25maWcucHkgdW5zZXQgTUJFRFRMU19VU0VfUFNBX0NSWVBUTwotICAgIHNjcmlwdHMvY29uZmlnLnB5IHVuc2V0IE1CRURUTFNfTE1TX0MKLSAgICBzY3JpcHRzL2NvbmZpZy5weSB1bnNldCBNQkVEVExTX0xNU19QUklWQVRFCi0KLSAgICBtc2cgInRlc3Q6IGZ1bGwgbm8gQ0lQSEVSIG5vIFBTQV9DUllQVE9fQyIKLSAgICBtYWtlIHRlc3QKLX0KLQotIyBUaGlzIGlzIGEgY29tbW9uIGNvbmZpZ3VyYXRvciBhbmQgdGVzdCBmdW5jdGlvbiB0aGF0IGlzIHVzZWQgaW46Ci0jIC0gY29tcG9uZW50X3Rlc3RfZnVsbF9ub19jaXBoZXJfd2l0aF9wc2FfY3J5cHRvCi0jIC0gY29tcG9uZW50X3Rlc3RfZnVsbF9ub19jaXBoZXJfd2l0aF9wc2FfY3J5cHRvX2NvbmZpZwotIyBJdCBhY2NlcHRzIDIgaW5wdXQgcGFyYW1ldGVyczoKLSMgLSAkMTogYm9vbGVhbiB2YWx1ZSB3aGljaCBiYXNpY2FsbHkgcmVmbGVjdHMgc3RhdHVzIG9mIE1CRURUTFNfUFNBX0NSWVBUT19DT05GSUcKLSMgLSAkMjogYSB0ZXh0IHN0cmluZyB3aGljaCBkZXNjcmliZXMgdGhlIHRlc3QgY29tcG9uZW50Ci1jb21tb25fdGVzdF9mdWxsX25vX2NpcGhlcl93aXRoX3BzYV9jcnlwdG8gKCkgewotICAgIFVTRV9DUllQVE9fQ09ORklHPSIkMSIKLSAgICBDT01QT05FTlRfREVTQ1JJUFRJT049IiQyIgotCi0gICAgbXNnICJidWlsZDogJENPTVBPTkVOVF9ERVNDUklQVElPTiIKK2NvbXBvbmVudF90ZXN0X2Z1bGxfbm9fY2lwaGVyICgpIHsKKyAgICBtc2cgImJ1aWxkOiBmdWxsIG5vIENJUEhFUiIKIAogICAgIHNjcmlwdHMvY29uZmlnLnB5IGZ1bGwKICAgICBzY3JpcHRzL2NvbmZpZy5weSB1bnNldCBNQkVEVExTX0NJUEhFUl9DCiAKLSAgICBpZiBbICIkVVNFX0NSWVBUT19DT05GSUciIC1lcSAxIF07IHRoZW4KLSAgICAgICAgIyBUaGUgYnVpbHQtaW4gaW1wbGVtZW50YXRpb24gb2YgdGhlIGZvbGxvd2luZyBhbGdzL2tleS10eXBlcyBkZXBlbmRzCi0gICAgICAgICMgb24gQ0lQSEVSX0Mgc28gd2UgZGlzYWJsZSB0aGVtLgotICAgICAgICAjIFRoaXMgZG9lcyBub3QgaG9sZCBmb3IgS0VZX1RZUEVfQ0hBQ0hBMjAgYW5kIEFMR19DSEFDSEEyMF9QT0xZMTMwNQotICAgICAgICAjIHNvIHdlIGtlZXAgdGhlbSBlbmFibGVkLgotICAgICAgICBzY3JpcHRzL2NvbmZpZy5weSAtZiAkQ1JZUFRPX0NPTkZJR19IIHVuc2V0IFBTQV9XQU5UX0FMR19DQ01fU1RBUl9OT19UQUcKLSAgICAgICAgc2NyaXB0cy9jb25maWcucHkgLWYgJENSWVBUT19DT05GSUdfSCB1bnNldCBQU0FfV0FOVF9BTEdfQ01BQwotICAgICAgICBzY3JpcHRzL2NvbmZpZy5weSAtZiAkQ1JZUFRPX0NPTkZJR19IIHVuc2V0IFBTQV9XQU5UX0FMR19DQkNfTk9fUEFERElORwotICAgICAgICBzY3JpcHRzL2NvbmZpZy5weSAtZiAkQ1JZUFRPX0NPTkZJR19IIHVuc2V0IFBTQV9XQU5UX0FMR19DQkNfUEtDUzcKLSAgICAgICAgc2NyaXB0cy9jb25maWcucHkgLWYgJENSWVBUT19DT05GSUdfSCB1bnNldCBQU0FfV0FOVF9BTEdfQ0ZCCi0gICAgICAgIHNjcmlwdHMvY29uZmlnLnB5IC1mICRDUllQVE9fQ09ORklHX0ggdW5zZXQgUFNBX1dBTlRfQUxHX0NUUgotICAgICAgICBzY3JpcHRzL2NvbmZpZy5weSAtZiAkQ1JZUFRPX0NPTkZJR19IIHVuc2V0IFBTQV9XQU5UX0FMR19FQ0JfTk9fUEFERElORwotICAgICAgICBzY3JpcHRzL2NvbmZpZy5weSAtZiAkQ1JZUFRPX0NPTkZJR19IIHVuc2V0IFBTQV9XQU5UX0FMR19PRkIKLSAgICAgICAgc2NyaXB0cy9jb25maWcucHkgLWYgJENSWVBUT19DT05GSUdfSCB1bnNldCBQU0FfV0FOVF9BTEdfUEJLREYyX0FFU19DTUFDX1BSRl8xMjgKLSAgICAgICAgc2NyaXB0cy9jb25maWcucHkgLWYgJENSWVBUT19DT05GSUdfSCB1bnNldCBQU0FfV0FOVF9BTEdfU1RSRUFNX0NJUEhFUgotICAgICAgICBzY3JpcHRzL2NvbmZpZy5weSAtZiAkQ1JZUFRPX0NPTkZJR19IIHVuc2V0IFBTQV9XQU5UX0tFWV9UWVBFX0RFUwotICAgIGVsc2UKLSAgICAgICAgIyBEb24ndCBwdWxsIGluIGNpcGhlciB2aWEgUFNBIG1lY2hhbmlzbXMKLSAgICAgICAgc2NyaXB0cy9jb25maWcucHkgdW5zZXQgTUJFRFRMU19QU0FfQ1JZUFRPX0NPTkZJRwotICAgICAgICAjIERpc2FibGUgY2lwaGVyIG1vZGVzL2tleXMgdGhhdCBtYWtlIFBTQSBkZXBlbmQgb24gQ0lQSEVSX0MuCi0gICAgICAgICMgS2VlcCBDSEFDSEEyMCBhbmQgQ0hBQ0hBUE9MWSBlbmFibGVkIHNpbmNlIHRoZXkgZG8gbm90IGRlcGVuZCBvbiBDSVBIRVJfQy4KLSAgICAgICAgc2NyaXB0cy9jb25maWcucHkgdW5zZXQtYWxsIE1CRURUTFNfQ0lQSEVSX01PREUKLSAgICBmaQorICAgICMgVGhlIGJ1aWx0LWluIGltcGxlbWVudGF0aW9uIG9mIHRoZSBmb2xsb3dpbmcgYWxncy9rZXktdHlwZXMgZGVwZW5kcworICAgICMgb24gQ0lQSEVSX0Mgc28gd2UgZGlzYWJsZSB0aGVtLgorICAgICMgVGhpcyBkb2VzIG5vdCBob2xkIGZvciBLRVlfVFlQRV9DSEFDSEEyMCBhbmQgQUxHX0NIQUNIQTIwX1BPTFkxMzA1CisgICAgIyBzbyB3ZSBrZWVwIHRoZW0gZW5hYmxlZC4KKyAgICBzY3JpcHRzL2NvbmZpZy5weSAtZiAkQ1JZUFRPX0NPTkZJR19IIHVuc2V0IFBTQV9XQU5UX0FMR19DQ01fU1RBUl9OT19UQUcKKyAgICBzY3JpcHRzL2NvbmZpZy5weSAtZiAkQ1JZUFRPX0NPTkZJR19IIHVuc2V0IFBTQV9XQU5UX0FMR19DTUFDCisgICAgc2NyaXB0cy9jb25maWcucHkgLWYgJENSWVBUT19DT05GSUdfSCB1bnNldCBQU0FfV0FOVF9BTEdfQ0JDX05PX1BBRERJTkcKKyAgICBzY3JpcHRzL2NvbmZpZy5weSAtZiAkQ1JZUFRPX0NPTkZJR19IIHVuc2V0IFBTQV9XQU5UX0FMR19DQkNfUEtDUzcKKyAgICBzY3JpcHRzL2NvbmZpZy5weSAtZiAkQ1JZUFRPX0NPTkZJR19IIHVuc2V0IFBTQV9XQU5UX0FMR19DRkIKKyAgICBzY3JpcHRzL2NvbmZpZy5weSAtZiAkQ1JZUFRPX0NPTkZJR19IIHVuc2V0IFBTQV9XQU5UX0FMR19DVFIKKyAgICBzY3JpcHRzL2NvbmZpZy5weSAtZiAkQ1JZUFRPX0NPTkZJR19IIHVuc2V0IFBTQV9XQU5UX0FMR19FQ0JfTk9fUEFERElORworICAgIHNjcmlwdHMvY29uZmlnLnB5IC1mICRDUllQVE9fQ09ORklHX0ggdW5zZXQgUFNBX1dBTlRfQUxHX09GQgorICAgIHNjcmlwdHMvY29uZmlnLnB5IC1mICRDUllQVE9fQ09ORklHX0ggdW5zZXQgUFNBX1dBTlRfQUxHX1BCS0RGMl9BRVNfQ01BQ19QUkZfMTI4CisgICAgc2NyaXB0cy9jb25maWcucHkgLWYgJENSWVBUT19DT05GSUdfSCB1bnNldCBQU0FfV0FOVF9BTEdfU1RSRUFNX0NJUEhFUgorICAgIHNjcmlwdHMvY29uZmlnLnB5IC1mICRDUllQVE9fQ09ORklHX0ggdW5zZXQgUFNBX1dBTlRfS0VZX1RZUEVfREVTCisKICAgICAjIFRoZSBmb2xsb3dpbmcgbW9kdWxlcyBkaXJlY3RseSBkZXBlbmRzIG9uIENJUEhFUl9DCiAgICAgc2NyaXB0cy9jb25maWcucHkgdW5zZXQgTUJFRFRMU19DTUFDX0MKICAgICBzY3JpcHRzL2NvbmZpZy5weSB1bnNldCBNQkVEVExTX05JU1RfS1dfQwpAQCAtMTc4MywyMCArMTc1NSwxMiBAQAogICAgIG1ha2UKIAogICAgICMgRW5zdXJlIHRoYXQgQ0lQSEVSX0Mgd2FzIG5vdCByZS1lbmFibGVkCi0gICAgbm90IGdyZXAgbWJlZHRsc19jaXBoZXJfaW5pdCBsaWJyYXJ5L2NpcGhlci5vCisgICAgbm90IGdyZXAgbWJlZHRsc19jaXBoZXJfaW5pdCAke0JVSUxUSU5fU1JDX1BBVEh9L2NpcGhlci5vCiAKLSAgICBtc2cgInRlc3Q6ICRDT01QT05FTlRfREVTQ1JJUFRJT04iCisgICAgbXNnICJ0ZXN0OiBmdWxsIG5vIENJUEhFUiIKICAgICBtYWtlIHRlc3QKIH0KIAotY29tcG9uZW50X3Rlc3RfZnVsbF9ub19jaXBoZXJfd2l0aF9wc2FfY3J5cHRvKCkgewotICAgIGNvbW1vbl90ZXN0X2Z1bGxfbm9fY2lwaGVyX3dpdGhfcHNhX2NyeXB0byAwICJmdWxsIG5vIENJUEhFUiBubyBDUllQVE9fQ09ORklHIgotfQotCi1jb21wb25lbnRfdGVzdF9mdWxsX25vX2NpcGhlcl93aXRoX3BzYV9jcnlwdG9fY29uZmlnKCkgewotICAgIGNvbW1vbl90ZXN0X2Z1bGxfbm9fY2lwaGVyX3dpdGhfcHNhX2NyeXB0byAxICJmdWxsIG5vIENJUEhFUiIKLX0KLQogY29tcG9uZW50X3Rlc3RfZnVsbF9ub19jY20oKSB7CiAgICAgbXNnICJidWlsZDogZnVsbCBubyBQU0FfV0FOVF9BTEdfQ0NNIgogCkBAIC0xODQ0LDY2ICsxODA4LDEyIEBACiAgICAgbWFrZQogCiAgICAgIyBFbnN1cmUgTUJFRFRMU19QU0FfQlVJTFRJTl9DSVBIRVIgd2FzIG5vdCBlbmFibGVkCi0gICAgbm90IGdyZXAgbWJlZHRsc19wc2FfY2lwaGVyIGxpYnJhcnkvcHNhX2NyeXB0b19jaXBoZXIubworICAgIG5vdCBncmVwIG1iZWR0bHNfcHNhX2NpcGhlciAke1BTQV9DT1JFX1BBVEh9L3BzYV9jcnlwdG9fY2lwaGVyLm8KIAogICAgIG1zZyAidGVzdDogZnVsbCBubyBQU0FfV0FOVF9BTEdfQ0NNX1NUQVJfTk9fVEFHIgogICAgIG1ha2UgdGVzdAogfQogCi1jb21wb25lbnRfdGVzdF9mdWxsX25vX2JpZ251bSAoKSB7Ci0gICAgbXNnICJidWlsZDogZnVsbCBtaW51cyBiaWdudW0iCi0gICAgc2NyaXB0cy9jb25maWcucHkgZnVsbAotICAgIHNjcmlwdHMvY29uZmlnLnB5IHVuc2V0IE1CRURUTFNfQklHTlVNX0MKLSAgICAjIERpcmVjdCBkZXBlbmRlbmNpZXMgb2YgYmlnbnVtCi0gICAgc2NyaXB0cy9jb25maWcucHkgdW5zZXQgTUJFRFRMU19FQ1BfQwotICAgIHNjcmlwdHMvY29uZmlnLnB5IHVuc2V0IE1CRURUTFNfUlNBX0MKLSAgICBzY3JpcHRzL2NvbmZpZy5weSB1bnNldCBNQkVEVExTX0RITV9DCi0gICAgIyBEaXJlY3QgZGVwZW5kZW5jaWVzIG9mIEVDUAotICAgIHNjcmlwdHMvY29uZmlnLnB5IHVuc2V0IE1CRURUTFNfRUNESF9DCi0gICAgc2NyaXB0cy9jb25maWcucHkgdW5zZXQgTUJFRFRMU19FQ0RTQV9DCi0gICAgc2NyaXB0cy9jb25maWcucHkgdW5zZXQgTUJFRFRMU19FQ0pQQUtFX0MKLSAgICBzY3JpcHRzL2NvbmZpZy5weSB1bnNldCBNQkVEVExTX0VDUF9SRVNUQVJUQUJMRQotICAgICMgRGlzYWJsZSB3aGF0IGF1dG8tZW5hYmxlcyBFQ1BfTElHSFQKLSAgICBzY3JpcHRzL2NvbmZpZy5weSB1bnNldCBNQkVEVExTX1BLX1BBUlNFX0VDX0VYVEVOREVECi0gICAgc2NyaXB0cy9jb25maWcucHkgdW5zZXQgTUJFRFRMU19QS19QQVJTRV9FQ19DT01QUkVTU0VECi0gICAgIyBJbmRpcmVjdCBkZXBlbmRlbmNpZXMgb2YgRUNQCi0gICAgc2NyaXB0cy9jb25maWcucHkgdW5zZXQgTUJFRFRMU19LRVlfRVhDSEFOR0VfRUNESF9FQ0RTQV9FTkFCTEVECi0gICAgc2NyaXB0cy9jb25maWcucHkgdW5zZXQgTUJFRFRMU19LRVlfRVhDSEFOR0VfRUNESF9SU0FfRU5BQkxFRAotICAgIHNjcmlwdHMvY29uZmlnLnB5IHVuc2V0IE1CRURUTFNfS0VZX0VYQ0hBTkdFX0VDREhFX1BTS19FTkFCTEVECi0gICAgc2NyaXB0cy9jb25maWcucHkgdW5zZXQgTUJFRFRMU19LRVlfRVhDSEFOR0VfRUNESEVfUlNBX0VOQUJMRUQKLSAgICBzY3JpcHRzL2NvbmZpZy5weSB1bnNldCBNQkVEVExTX0tFWV9FWENIQU5HRV9FQ0RIRV9FQ0RTQV9FTkFCTEVECi0gICAgc2NyaXB0cy9jb25maWcucHkgdW5zZXQgTUJFRFRMU19LRVlfRVhDSEFOR0VfRUNKUEFLRV9FTkFCTEVECi0gICAgc2NyaXB0cy9jb25maWcucHkgdW5zZXQgTUJFRFRMU19TU0xfVExTMV8zX0tFWV9FWENIQU5HRV9NT0RFX0VQSEVNRVJBTF9FTkFCTEVECi0gICAgc2NyaXB0cy9jb25maWcucHkgdW5zZXQgTUJFRFRMU19TU0xfVExTMV8zX0tFWV9FWENIQU5HRV9NT0RFX1BTS19FUEhFTUVSQUxfRU5BQkxFRAotICAgICMgRGlyZWN0IGRlcGVuZGVuY2llcyBvZiBESE0KLSAgICBzY3JpcHRzL2NvbmZpZy5weSB1bnNldCBNQkVEVExTX0tFWV9FWENIQU5HRV9ESEVfUFNLX0VOQUJMRUQKLSAgICAjIERpcmVjdCBkZXBlbmRlbmNpZXMgb2YgUlNBCi0gICAgc2NyaXB0cy9jb25maWcucHkgdW5zZXQgTUJFRFRMU19LRVlfRVhDSEFOR0VfREhFX1JTQV9FTkFCTEVECi0gICAgc2NyaXB0cy9jb25maWcucHkgdW5zZXQgTUJFRFRMU19LRVlfRVhDSEFOR0VfUlNBX1BTS19FTkFCTEVECi0gICAgc2NyaXB0cy9jb25maWcucHkgdW5zZXQgTUJFRFRMU19LRVlfRVhDSEFOR0VfUlNBX0VOQUJMRUQKLSAgICBzY3JpcHRzL2NvbmZpZy5weSB1bnNldCBNQkVEVExTX1g1MDlfUlNBU1NBX1BTU19TVVBQT1JUCi0gICAgIyBQSyBhbmQgaXRzIGRlcGVuZGVuY2llcwotICAgIHNjcmlwdHMvY29uZmlnLnB5IHVuc2V0IE1CRURUTFNfUEtfQwotICAgIHNjcmlwdHMvY29uZmlnLnB5IHVuc2V0IE1CRURUTFNfUEtfUEFSU0VfQwotICAgIHNjcmlwdHMvY29uZmlnLnB5IHVuc2V0IE1CRURUTFNfUEtfV1JJVEVfQwotICAgIHNjcmlwdHMvY29uZmlnLnB5IHVuc2V0IE1CRURUTFNfWDUwOV9VU0VfQwotICAgIHNjcmlwdHMvY29uZmlnLnB5IHVuc2V0IE1CRURUTFNfWDUwOV9DUlRfUEFSU0VfQwotICAgIHNjcmlwdHMvY29uZmlnLnB5IHVuc2V0IE1CRURUTFNfWDUwOV9DUkxfUEFSU0VfQwotICAgIHNjcmlwdHMvY29uZmlnLnB5IHVuc2V0IE1CRURUTFNfWDUwOV9DU1JfUEFSU0VfQwotICAgIHNjcmlwdHMvY29uZmlnLnB5IHVuc2V0IE1CRURUTFNfWDUwOV9DUkVBVEVfQwotICAgIHNjcmlwdHMvY29uZmlnLnB5IHVuc2V0IE1CRURUTFNfWDUwOV9DUlRfV1JJVEVfQwotICAgIHNjcmlwdHMvY29uZmlnLnB5IHVuc2V0IE1CRURUTFNfWDUwOV9DU1JfV1JJVEVfQwotICAgIHNjcmlwdHMvY29uZmlnLnB5IHVuc2V0IE1CRURUTFNfUEtDUzdfQwotICAgIHNjcmlwdHMvY29uZmlnLnB5IHVuc2V0IE1CRURUTFNfU1NMX1NFUlZFUl9OQU1FX0lORElDQVRJT04KLSAgICBzY3JpcHRzL2NvbmZpZy5weSB1bnNldCBNQkVEVExTX1NTTF9BU1lOQ19QUklWQVRFCi0gICAgc2NyaXB0cy9jb25maWcucHkgdW5zZXQgTUJFRFRMU19YNTA5X1RSVVNURURfQ0VSVElGSUNBVEVfQ0FMTEJBQ0sKLQotICAgIG1ha2UKLQotICAgIG1zZyAidGVzdDogZnVsbCBtaW51cyBiaWdudW0iCi0gICAgbWFrZSB0ZXN0Ci19Ci0KIGNvbXBvbmVudF90ZXN0X3RsczFfMl9kZWZhdWx0X3N0cmVhbV9jaXBoZXJfb25seSAoKSB7CiAgICAgbXNnICJidWlsZDogZGVmYXVsdCB3aXRoIG9ubHkgc3RyZWFtIGNpcGhlciB1c2UgcHNhIgogCkBAIC0yNTQyLDkgKzI0NTIsOCBAQAogICAgIHNjcmlwdHMvY29uZmlnLnB5IGZ1bGwKIAogICAgICMgRGlzYWJsZSBvcHRpb25zIHRoYXQgYXJlIGluY29tcGF0aWJsZSB3aXRoIHNvbWUgQUxUIGltcGxlbWVudGF0aW9uczoKLSAgICAjIGFlc25pLmMgYW5kIHBhZGxvY2suYyByZWZlcmVuY2UgbWJlZHRsc19hZXNfY29udGV4dCBmaWVsZHMgZGlyZWN0bHkuCisgICAgIyBhZXNuaS5jIHJlZmVyZW5jZXMgbWJlZHRsc19hZXNfY29udGV4dCBmaWVsZHMgZGlyZWN0bHkuCiAgICAgc2NyaXB0cy9jb25maWcucHkgdW5zZXQgTUJFRFRMU19BRVNOSV9DCi0gICAgc2NyaXB0cy9jb25maWcucHkgdW5zZXQgTUJFRFRMU19QQURMT0NLX0MKICAgICBzY3JpcHRzL2NvbmZpZy5weSB1bnNldCBNQkVEVExTX0FFU0NFX0MKICAgICAjIE1CRURUTFNfRUNQX1JFU1RBUlRBQkxFIGlzIGRvY3VtZW50ZWQgYXMgaW5jb21wYXRpYmxlLgogICAgIHNjcmlwdHMvY29uZmlnLnB5IHVuc2V0IE1CRURUTFNfRUNQX1JFU1RBUlRBQkxFCkBAIC0yNTYzLDI0ICsyNDcyLDEyIEBACiAgICAgIyBFbmFibGUgYWxsIE1CRURUTFNfWFhYX0FMVCBmb3Igd2hvbGUgbW9kdWxlcy4gRG8gbm90IGVuYWJsZQogICAgICMgTUJFRFRMU19YWFhfWVlZX0FMVCB3aGljaCBhcmUgZm9yIHNpbmdsZSBmdW5jdGlvbnMuCiAgICAgc2NyaXB0cy9jb25maWcucHkgc2V0LWFsbCAnTUJFRFRMU18oW0EtWjAtOV0qfE5JU1RfS1cpX0FMVCcKLSAgICBzY3JpcHRzL2NvbmZpZy5weSB1bnNldCBNQkVEVExTX0RITV9BTFQgI2luY29tcGF0aWJsZSB3aXRoIE1CRURUTFNfREVCVUdfQwogCiAgICAgIyBXZSBjYW4gb25seSBjb21waWxlLCBub3QgbGluaywgc2luY2Ugd2UgZG9uJ3QgaGF2ZSBhbnkgaW1wbGVtZW50YXRpb25zCiAgICAgIyBzdWl0YWJsZSBmb3IgdGVzdGluZyB3aXRoIHRoZSBkdW1teSBhbHQgaGVhZGVycy4KICAgICBtYWtlIENGTEFHUz0nLVdlcnJvciAtV2FsbCAtV2V4dHJhIC1JLi4vdGVzdHMvaW5jbHVkZS9hbHQtZHVtbXknIGxpYgogfQogCi1jb21wb25lbnRfYnVpbGRfZGhtX2FsdCAoKSB7Ci0gICAgbXNnICJidWlsZDogTUJFRFRMU19ESE1fQUxUIiAjIH4zMHMKLSAgICBzY3JpcHRzL2NvbmZpZy5weSBmdWxsCi0gICAgc2NyaXB0cy9jb25maWcucHkgc2V0IE1CRURUTFNfREhNX0FMVAotICAgICMgZGVidWcuYyBjdXJyZW50bHkgcmVmZXJlbmNlcyBtYmVkdGxzX2RobV9jb250ZXh0IGZpZWxkcyBkaXJlY3RseS4KLSAgICBzY3JpcHRzL2NvbmZpZy5weSB1bnNldCBNQkVEVExTX0RFQlVHX0MKLSAgICAjIFdlIGNhbiBvbmx5IGNvbXBpbGUsIG5vdCBsaW5rLCBzaW5jZSB3ZSBkb24ndCBoYXZlIGFueSBpbXBsZW1lbnRhdGlvbnMKLSAgICAjIHN1aXRhYmxlIGZvciB0ZXN0aW5nIHdpdGggdGhlIGR1bW15IGFsdCBoZWFkZXJzLgotICAgIG1ha2UgQ0ZMQUdTPSctV2Vycm9yIC1XYWxsIC1XZXh0cmEgLUkuLi90ZXN0cy9pbmNsdWRlL2FsdC1kdW1teScgbGliCi19Ci0KIGNvbXBvbmVudF90ZXN0X25vX3BzYV9jcnlwdG9fZnVsbF9jbWFrZV9hc2FuKCkgewogICAgICMgZnVsbCBtaW51cyBNQkVEVExTX1BTQV9DUllQVE9fQzogcnVuIHRoZSBzYW1lIHNldCBvZiB0ZXN0cyBhcyBiYXNpYy1idWlsZC10ZXN0LnNoCiAgICAgbXNnICJidWlsZDogY21ha2UsIGZ1bGwgY29uZmlnIG1pbnVzIFBTQSBjcnlwdG8sIEFTYW4iCkBAIC0yNjQ4LDcgKzI1NDUsNyBAQAogICAgIGhlbHBlcl9saWJ0ZXN0ZHJpdmVyMV9tYWtlX21haW4gIiRsb2NfYWNjZWxfbGlzdCIKIAogICAgICMgTWFrZSBzdXJlIHRoaXMgd2FzIG5vdCByZS1lbmFibGVkIGJ5IGFjY2lkZW50IChhZGRpdGl2ZSBjb25maWcpCi0gICAgbm90IGdyZXAgbWJlZHRsc19lY2RzYV8gbGlicmFyeS9lY2RzYS5vCisgICAgbm90IGdyZXAgbWJlZHRsc19lY2RzYV8gJHtCVUlMVElOX1NSQ19QQVRIfS9lY2RzYS5vCiAKICAgICAjIFJ1biB0aGUgdGVzdHMKICAgICAjIC0tLS0tLS0tLS0tLS0KQEAgLTI2ODksNyArMjU4Niw3IEBACiAgICAgaGVscGVyX2xpYnRlc3Rkcml2ZXIxX21ha2VfbWFpbiAiJGxvY19hY2NlbF9saXN0IgogCiAgICAgIyBNYWtlIHN1cmUgdGhpcyB3YXMgbm90IHJlLWVuYWJsZWQgYnkgYWNjaWRlbnQgKGFkZGl0aXZlIGNvbmZpZykKLSAgICBub3QgZ3JlcCBtYmVkdGxzX2VjZGhfIGxpYnJhcnkvZWNkaC5vCisgICAgbm90IGdyZXAgbWJlZHRsc19lY2RoXyAke0JVSUxUSU5fU1JDX1BBVEh9L2VjZGgubwogCiAgICAgIyBSdW4gdGhlIHRlc3RzCiAgICAgIyAtLS0tLS0tLS0tLS0tCkBAIC0yNzI3LDcgKzI2MjQsNyBAQAogICAgIGhlbHBlcl9saWJ0ZXN0ZHJpdmVyMV9tYWtlX21haW4gIiRsb2NfYWNjZWxfbGlzdCIKIAogICAgICMgTWFrZSBzdXJlIHRoaXMgd2FzIG5vdCByZS1lbmFibGVkIGJ5IGFjY2lkZW50IChhZGRpdGl2ZSBjb25maWcpCi0gICAgbm90IGdyZXAgbWJlZHRsc19kaG1fIGxpYnJhcnkvZGhtLm8KKyAgICBub3QgZ3JlcCBtYmVkdGxzX2RobV8gJHtCVUlMVElOX1NSQ19QQVRIfS9kaG0ubwogCiAgICAgIyBSdW4gdGhlIHRlc3RzCiAgICAgIyAtLS0tLS0tLS0tLS0tCkBAIC0yNzgxLDcgKzI2NzgsNyBAQAogICAgIGhlbHBlcl9saWJ0ZXN0ZHJpdmVyMV9tYWtlX21haW4gIiRsb2NfYWNjZWxfbGlzdCIKIAogICAgICMgTWFrZSBzdXJlIHRoaXMgd2FzIG5vdCByZS1lbmFibGVkIGJ5IGFjY2lkZW50IChhZGRpdGl2ZSBjb25maWcpCi0gICAgbm90IGdyZXAgbWJlZHRsc19lY2pwYWtlX2luaXQgbGlicmFyeS9lY2pwYWtlLm8KKyAgICBub3QgZ3JlcCBtYmVkdGxzX2VjanBha2VfaW5pdCAke0JVSUxUSU5fU1JDX1BBVEh9L2VjanBha2UubwogCiAgICAgIyBSdW4gdGhlIHRlc3RzCiAgICAgIyAtLS0tLS0tLS0tLS0tCkBAIC0yODM4LDEwICsyNzM1LDEwIEBACiAgICAgaGVscGVyX2xpYnRlc3Rkcml2ZXIxX21ha2VfbWFpbiAiJGxvY19hY2NlbF9saXN0IgogCiAgICAgIyBFQ1Agc2hvdWxkIGJlIHJlLWVuYWJsZWQgYnV0IG5vdCB0aGUgb3RoZXJzCi0gICAgbm90IGdyZXAgbWJlZHRsc19lY2RoXyBsaWJyYXJ5L2VjZGgubwotICAgIG5vdCBncmVwIG1iZWR0bHNfZWNkc2EgbGlicmFyeS9lY2RzYS5vCi0gICAgbm90IGdyZXAgbWJlZHRsc19lY2pwYWtlICBsaWJyYXJ5L2VjanBha2UubwotICAgIGdyZXAgbWJlZHRsc19lY3AgbGlicmFyeS9lY3AubworICAgIG5vdCBncmVwIG1iZWR0bHNfZWNkaF8gJHtCVUlMVElOX1NSQ19QQVRIfS9lY2RoLm8KKyAgICBub3QgZ3JlcCBtYmVkdGxzX2VjZHNhICR7QlVJTFRJTl9TUkNfUEFUSH0vZWNkc2EubworICAgIG5vdCBncmVwIG1iZWR0bHNfZWNqcGFrZSAgJHtCVUlMVElOX1NSQ19QQVRIfS9lY2pwYWtlLm8KKyAgICBncmVwIG1iZWR0bHNfZWNwICR7QlVJTFRJTl9TUkNfUEFUSH0vZWNwLm8KIAogICAgICMgUnVuIHRoZSB0ZXN0cwogICAgICMgLS0tLS0tLS0tLS0tLQpAQCAtMjkzMiwyNyArMjgyOSwyNyBAQAogICAgIGhlbHBlcl9saWJ0ZXN0ZHJpdmVyMV9tYWtlX21haW4gIiRsb2NfYWNjZWxfbGlzdCIKIAogICAgICMgV2UgZXhwZWN0IEVDREggdG8gYmUgcmUtZW5hYmxlZCBmb3IgdGhlIG1pc3NpbmcgY3VydmVzCi0gICAgZ3JlcCBtYmVkdGxzX2VjZGhfIGxpYnJhcnkvZWNkaC5vCisgICAgZ3JlcCBtYmVkdGxzX2VjZGhfICR7QlVJTFRJTl9TUkNfUEFUSH0vZWNkaC5vCiAgICAgIyBXZSBleHBlY3QgRUNQIHRvIGJlIHJlLWVuYWJsZWQsIGhvd2V2ZXIgdGhlIHBhcnRzIHNwZWNpZmljIHRvIHRoZQogICAgICMgZmFtaWxpZXMgb2YgY3VydmVzIHRoYXQgYXJlIGFjY2VsZXJhdGVkIHNob3VsZCBiZSBvbW1pdGVkLgogICAgICMgLSBmdW5jdGlvbnMgd2l0aCBteHogaW4gdGhlIG5hbWUgYXJlIHNwZWNpZmljIHRvIE1vbnRnb21lcnkgY3VydmVzCiAgICAgIyAtIGVjcF9tdWxhZGQgaXMgc3BlY2lmaWMgdG8gV2VpZXJzdHJhc3MgY3VydmVzCi0gICAgIyNubSBsaWJyYXJ5L2VjcC5vIHwgdGVlIGVjcC5zeW1zCisgICAgIyNubSAke0JVSUxUSU5fU1JDX1BBVEh9L2VjcC5vIHwgdGVlIGVjcC5zeW1zCiAgICAgaWYgWyAkd2VpZXJzdHJhc3MgLWVxIDEgXTsgdGhlbgotICAgICAgICBub3QgZ3JlcCBtYmVkdGxzX2VjcF9tdWxhZGQgbGlicmFyeS9lY3AubwotICAgICAgICBncmVwIG14eiBsaWJyYXJ5L2VjcC5vCisgICAgICAgIG5vdCBncmVwIG1iZWR0bHNfZWNwX211bGFkZCAke0JVSUxUSU5fU1JDX1BBVEh9L2VjcC5vCisgICAgICAgIGdyZXAgbXh6ICR7QlVJTFRJTl9TUkNfUEFUSH0vZWNwLm8KICAgICBlbHNlCi0gICAgICAgIGdyZXAgbWJlZHRsc19lY3BfbXVsYWRkIGxpYnJhcnkvZWNwLm8KLSAgICAgICAgbm90IGdyZXAgbXh6IGxpYnJhcnkvZWNwLm8KKyAgICAgICAgZ3JlcCBtYmVkdGxzX2VjcF9tdWxhZGQgJHtCVUlMVElOX1NSQ19QQVRIfS9lY3AubworICAgICAgICBub3QgZ3JlcCBteHogJHtCVUlMVElOX1NSQ19QQVRIfS9lY3AubwogICAgIGZpCiAgICAgIyBXZSBleHBlY3QgRUNEU0EgYW5kIEVDSlBBS0UgdG8gYmUgcmUtZW5hYmxlZCBvbmx5IHdoZW4KICAgICAjIFdlaWVyc3RyYXNzIGN1cnZlcyBhcmUgbm90IGFjY2VsZXJhdGVkCiAgICAgaWYgWyAkd2VpZXJzdHJhc3MgLWVxIDEgXTsgdGhlbgotICAgICAgICBub3QgZ3JlcCBtYmVkdGxzX2VjZHNhIGxpYnJhcnkvZWNkc2EubwotICAgICAgICBub3QgZ3JlcCBtYmVkdGxzX2VjanBha2UgIGxpYnJhcnkvZWNqcGFrZS5vCisgICAgICAgIG5vdCBncmVwIG1iZWR0bHNfZWNkc2EgJHtCVUlMVElOX1NSQ19QQVRIfS9lY2RzYS5vCisgICAgICAgIG5vdCBncmVwIG1iZWR0bHNfZWNqcGFrZSAgJHtCVUlMVElOX1NSQ19QQVRIfS9lY2pwYWtlLm8KICAgICBlbHNlCi0gICAgICAgIGdyZXAgbWJlZHRsc19lY2RzYSBsaWJyYXJ5L2VjZHNhLm8KLSAgICAgICAgZ3JlcCBtYmVkdGxzX2VjanBha2UgIGxpYnJhcnkvZWNqcGFrZS5vCisgICAgICAgIGdyZXAgbWJlZHRsc19lY2RzYSAke0JVSUxUSU5fU1JDX1BBVEh9L2VjZHNhLm8KKyAgICAgICAgZ3JlcCBtYmVkdGxzX2VjanBha2UgICR7QlVJTFRJTl9TUkNfUEFUSH0vZWNqcGFrZS5vCiAgICAgZmkKIAogICAgICMgUnVuIHRoZSB0ZXN0cwpAQCAtMzAzMSwxMCArMjkyOCwxMCBAQAogICAgIGhlbHBlcl9saWJ0ZXN0ZHJpdmVyMV9tYWtlX21haW4gIiRsb2NfYWNjZWxfbGlzdCIKIAogICAgICMgTWFrZSBzdXJlIGFueSBidWlsdC1pbiBFQyBhbGcgd2FzIG5vdCByZS1lbmFibGVkIGJ5IGFjY2lkZW50IChhZGRpdGl2ZSBjb25maWcpCi0gICAgbm90IGdyZXAgbWJlZHRsc19lY2RzYV8gbGlicmFyeS9lY2RzYS5vCi0gICAgbm90IGdyZXAgbWJlZHRsc19lY2RoXyBsaWJyYXJ5L2VjZGgubwotICAgIG5vdCBncmVwIG1iZWR0bHNfZWNqcGFrZV8gbGlicmFyeS9lY2pwYWtlLm8KLSAgICBub3QgZ3JlcCBtYmVkdGxzX2VjcF9tdWwgbGlicmFyeS9lY3AubworICAgIG5vdCBncmVwIG1iZWR0bHNfZWNkc2FfICR7QlVJTFRJTl9TUkNfUEFUSH0vZWNkc2EubworICAgIG5vdCBncmVwIG1iZWR0bHNfZWNkaF8gJHtCVUlMVElOX1NSQ19QQVRIfS9lY2RoLm8KKyAgICBub3QgZ3JlcCBtYmVkdGxzX2VjanBha2VfICR7QlVJTFRJTl9TUkNfUEFUSH0vZWNqcGFrZS5vCisgICAgbm90IGdyZXAgbWJlZHRsc19lY3BfbXVsICR7QlVJTFRJTl9TUkNfUEFUSH0vZWNwLm8KIAogICAgICMgUnVuIHRoZSB0ZXN0cwogICAgICMgLS0tLS0tLS0tLS0tLQpAQCAtMzEzNSwxMSArMzAzMiwxMSBAQAogICAgIGhlbHBlcl9saWJ0ZXN0ZHJpdmVyMV9tYWtlX21haW4gIiRsb2NfYWNjZWxfbGlzdCIKIAogICAgICMgTWFrZSBzdXJlIGFueSBidWlsdC1pbiBFQyBhbGcgd2FzIG5vdCByZS1lbmFibGVkIGJ5IGFjY2lkZW50IChhZGRpdGl2ZSBjb25maWcpCi0gICAgbm90IGdyZXAgbWJlZHRsc19lY2RzYV8gbGlicmFyeS9lY2RzYS5vCi0gICAgbm90IGdyZXAgbWJlZHRsc19lY2RoXyBsaWJyYXJ5L2VjZGgubwotICAgIG5vdCBncmVwIG1iZWR0bHNfZWNqcGFrZV8gbGlicmFyeS9lY2pwYWtlLm8KKyAgICBub3QgZ3JlcCBtYmVkdGxzX2VjZHNhXyAke0JVSUxUSU5fU1JDX1BBVEh9L2VjZHNhLm8KKyAgICBub3QgZ3JlcCBtYmVkdGxzX2VjZGhfICR7QlVJTFRJTl9TUkNfUEFUSH0vZWNkaC5vCisgICAgbm90IGdyZXAgbWJlZHRsc19lY2pwYWtlXyAke0JVSUxUSU5fU1JDX1BBVEh9L2VjanBha2UubwogICAgICMgQWxzbyBlbnN1cmUgdGhhdCBFQ1AgbW9kdWxlIHdhcyBub3QgcmUtZW5hYmxlZAotICAgIG5vdCBncmVwIG1iZWR0bHNfZWNwXyBsaWJyYXJ5L2VjcC5vCisgICAgbm90IGdyZXAgbWJlZHRsc19lY3BfICR7QlVJTFRJTl9TUkNfUEFUSH0vZWNwLm8KIAogICAgICMgUnVuIHRoZSB0ZXN0cwogICAgICMgLS0tLS0tLS0tLS0tLQpAQCAtMzMxMCwxNCArMzIwNywxNCBAQAogICAgIGhlbHBlcl9saWJ0ZXN0ZHJpdmVyMV9tYWtlX21haW4gIiRsb2NfYWNjZWxfbGlzdCIKIAogICAgICMgTWFrZSBzdXJlIGFueSBidWlsdC1pbiBFQyBhbGcgd2FzIG5vdCByZS1lbmFibGVkIGJ5IGFjY2lkZW50IChhZGRpdGl2ZSBjb25maWcpCi0gICAgbm90IGdyZXAgbWJlZHRsc19lY2RzYV8gbGlicmFyeS9lY2RzYS5vCi0gICAgbm90IGdyZXAgbWJlZHRsc19lY2RoXyBsaWJyYXJ5L2VjZGgubwotICAgIG5vdCBncmVwIG1iZWR0bHNfZWNqcGFrZV8gbGlicmFyeS9lY2pwYWtlLm8KKyAgICBub3QgZ3JlcCBtYmVkdGxzX2VjZHNhXyAke0JVSUxUSU5fU1JDX1BBVEh9L2VjZHNhLm8KKyAgICBub3QgZ3JlcCBtYmVkdGxzX2VjZGhfICR7QlVJTFRJTl9TUkNfUEFUSH0vZWNkaC5vCisgICAgbm90IGdyZXAgbWJlZHRsc19lY2pwYWtlXyAke0JVSUxUSU5fU1JDX1BBVEh9L2VjanBha2UubwogICAgICMgQWxzbyBlbnN1cmUgdGhhdCBFQ1AsIFJTQSwgW0RITV0gb3IgQklHTlVNIG1vZHVsZXMgd2VyZSBub3QgcmUtZW5hYmxlZAotICAgIG5vdCBncmVwIG1iZWR0bHNfZWNwXyBsaWJyYXJ5L2VjcC5vCi0gICAgbm90IGdyZXAgbWJlZHRsc19yc2FfIGxpYnJhcnkvcnNhLm8KLSAgICBub3QgZ3JlcCBtYmVkdGxzX21waV8gbGlicmFyeS9iaWdudW0ubwotICAgIG5vdCBncmVwIG1iZWR0bHNfZGhtXyBsaWJyYXJ5L2RobS5vCisgICAgbm90IGdyZXAgbWJlZHRsc19lY3BfICR7QlVJTFRJTl9TUkNfUEFUSH0vZWNwLm8KKyAgICBub3QgZ3JlcCBtYmVkdGxzX3JzYV8gJHtCVUlMVElOX1NSQ19QQVRIfS9yc2EubworICAgIG5vdCBncmVwIG1iZWR0bHNfbXBpXyAke0JVSUxUSU5fU1JDX1BBVEh9L2JpZ251bS5vCisgICAgbm90IGdyZXAgbWJlZHRsc19kaG1fICR7QlVJTFRJTl9TUkNfUEFUSH0vZGhtLm8KIAogICAgICMgUnVuIHRoZSB0ZXN0cwogICAgICMgLS0tLS0tLS0tLS0tLQpAQCAtMzQxMywyMCArMzMxMCwyMCBAQAogICAgIG1ha2UgQ0M9JEFTQU5fQ0MgQ0ZMQUdTPSIkQVNBTl9DRkxBR1MgLUkuLi90ZXN0cy9pbmNsdWRlL3NwZSIgTERGTEFHUz0iJEFTQU5fQ0ZMQUdTIgogCiAgICAgIyBNYWtlIHN1cmUgYW55IGJ1aWx0LWluIEVDIGFsZyB3YXMgbm90IHJlLWVuYWJsZWQgYnkgYWNjaWRlbnQgKGFkZGl0aXZlIGNvbmZpZykKLSAgICBub3QgZ3JlcCBtYmVkdGxzX2VjZHNhXyBsaWJyYXJ5L2VjZHNhLm8KLSAgICBub3QgZ3JlcCBtYmVkdGxzX2VjZGhfIGxpYnJhcnkvZWNkaC5vCi0gICAgbm90IGdyZXAgbWJlZHRsc19lY2pwYWtlXyBsaWJyYXJ5L2VjanBha2UubworICAgIG5vdCBncmVwIG1iZWR0bHNfZWNkc2FfICR7QlVJTFRJTl9TUkNfUEFUSH0vZWNkc2EubworICAgIG5vdCBncmVwIG1iZWR0bHNfZWNkaF8gJHtCVUlMVElOX1NSQ19QQVRIfS9lY2RoLm8KKyAgICBub3QgZ3JlcCBtYmVkdGxzX2VjanBha2VfICR7QlVJTFRJTl9TUkNfUEFUSH0vZWNqcGFrZS5vCiAgICAgIyBBbHNvIGVuc3VyZSB0aGF0IEVDUCwgUlNBLCBESE0gb3IgQklHTlVNIG1vZHVsZXMgd2VyZSBub3QgcmUtZW5hYmxlZAotICAgIG5vdCBncmVwIG1iZWR0bHNfZWNwXyBsaWJyYXJ5L2VjcC5vCi0gICAgbm90IGdyZXAgbWJlZHRsc19yc2FfIGxpYnJhcnkvcnNhLm8KLSAgICBub3QgZ3JlcCBtYmVkdGxzX2RobV8gbGlicmFyeS9kaG0ubwotICAgIG5vdCBncmVwIG1iZWR0bHNfbXBpXyBsaWJyYXJ5L2JpZ251bS5vCisgICAgbm90IGdyZXAgbWJlZHRsc19lY3BfICR7QlVJTFRJTl9TUkNfUEFUSH0vZWNwLm8KKyAgICBub3QgZ3JlcCBtYmVkdGxzX3JzYV8gJHtCVUlMVElOX1NSQ19QQVRIfS9yc2EubworICAgIG5vdCBncmVwIG1iZWR0bHNfZGhtXyAke0JVSUxUSU5fU1JDX1BBVEh9L2RobS5vCisgICAgbm90IGdyZXAgbWJlZHRsc19tcGlfICR7QlVJTFRJTl9TUkNfUEFUSH0vYmlnbnVtLm8KICAgICAjIENoZWNrIHRoYXQgcDI1Nm0gd2FzIGJ1aWx0CiAgICAgZ3JlcCAtcSBwMjU2X2VjZHNhXyBsaWJyYXJ5L2xpYm1iZWRjcnlwdG8uYQogCiAgICAgIyBJbiAiY29uZmlnLXRmbS5oIiB3ZSBkaXNhYmxlZCBDSVBIRVJfQyB0d2Vha2luZyBURi1NJ3MgY29uZmlndXJhdGlvbgogICAgICMgZmlsZXMsIHNvIHdlIHdhbnQgdG8gZW5zdXJlIHRoYXQgaXQgaGFzIG5vdCBiZSByZS1lbmFibGVkIGFjY2lkZW50YWxseS4KLSAgICBub3QgZ3JlcCBtYmVkdGxzX2NpcGhlciBsaWJyYXJ5L2NpcGhlci5vCisgICAgbm90IGdyZXAgbWJlZHRsc19jaXBoZXIgJHtCVUlMVElOX1NSQ19QQVRIfS9jaXBoZXIubwogCiAgICAgIyBSdW4gdGhlIHRlc3RzCiAgICAgbXNnICJ0ZXN0OiBURi1NIGNvbmZpZyArIHAyNTZtIGRyaXZlciArIGFjY2VsIEVDREgoRSkvRUNEU0EiCkBAIC0zNDUxLDcgKzMzNDgsNyBAQAogCiAgICAgIyBJbiAiY29uZmlnLXRmbS5oIiB3ZSBkaXNhYmxlZCBDSVBIRVJfQyB0d2Vha2luZyBURi1NJ3MgY29uZmlndXJhdGlvbgogICAgICMgZmlsZXMsIHNvIHdlIHdhbnQgdG8gZW5zdXJlIHRoYXQgaXQgaGFzIG5vdCBiZSByZS1lbmFibGVkIGFjY2lkZW50YWxseS4KLSAgICBub3QgZ3JlcCBtYmVkdGxzX2NpcGhlciBsaWJyYXJ5L2NpcGhlci5vCisgICAgbm90IGdyZXAgbWJlZHRsc19jaXBoZXIgJHtCVUlMVElOX1NSQ19QQVRIfS9jaXBoZXIubwogCiAgICAgbXNnICJ0ZXN0OiBURi1NIGNvbmZpZyIKICAgICBtYWtlIHRlc3QKQEAgLTM1NzMsNyArMzQ3MCw3IEBACiAgICAgaGVscGVyX2xpYnRlc3Rkcml2ZXIxX21ha2VfbWFpbiAiJGxvY19hY2NlbF9saXN0IgogCiAgICAgIyBNYWtlIHN1cmUgdGhpcyB3YXMgbm90IHJlLWVuYWJsZWQgYnkgYWNjaWRlbnQgKGFkZGl0aXZlIGNvbmZpZykKLSAgICBub3QgZ3JlcCBtYmVkdGxzX3JzYSBsaWJyYXJ5L3JzYS5vCisgICAgbm90IGdyZXAgbWJlZHRsc19yc2EgJHtCVUlMVElOX1NSQ19QQVRIfS9yc2EubwogCiAgICAgIyBSdW4gdGhlIHRlc3RzCiAgICAgIyAtLS0tLS0tLS0tLS0tCkBAIC0zNjgzLDExICszNTgwLDExIEBACiAKICAgICAjIFRoZXJlJ3MgYSByaXNrIG9mIHNvbWV0aGluZyBnZXR0aW5nIHJlLWVuYWJsZWQgdmlhIGNvbmZpZ19wc2EuaDsKICAgICAjIG1ha2Ugc3VyZSBpdCBkaWQgbm90IGhhcHBlbi4gTm90ZTogaXQncyBPSyBmb3IgTURfQyB0byBiZSBlbmFibGVkLgotICAgIG5vdCBncmVwIG1iZWR0bHNfbWQ1IGxpYnJhcnkvbWQ1Lm8KLSAgICBub3QgZ3JlcCBtYmVkdGxzX3NoYTEgbGlicmFyeS9zaGExLm8KLSAgICBub3QgZ3JlcCBtYmVkdGxzX3NoYTI1NiBsaWJyYXJ5L3NoYTI1Ni5vCi0gICAgbm90IGdyZXAgbWJlZHRsc19zaGE1MTIgbGlicmFyeS9zaGE1MTIubwotICAgIG5vdCBncmVwIG1iZWR0bHNfcmlwZW1kMTYwIGxpYnJhcnkvcmlwZW1kMTYwLm8KKyAgICBub3QgZ3JlcCBtYmVkdGxzX21kNSAke0JVSUxUSU5fU1JDX1BBVEh9L21kNS5vCisgICAgbm90IGdyZXAgbWJlZHRsc19zaGExICR7QlVJTFRJTl9TUkNfUEFUSH0vc2hhMS5vCisgICAgbm90IGdyZXAgbWJlZHRsc19zaGEyNTYgJHtCVUlMVElOX1NSQ19QQVRIfS9zaGEyNTYubworICAgIG5vdCBncmVwIG1iZWR0bHNfc2hhNTEyICR7QlVJTFRJTl9TUkNfUEFUSH0vc2hhNTEyLm8KKyAgICBub3QgZ3JlcCBtYmVkdGxzX3JpcGVtZDE2MCAke0JVSUxUSU5fU1JDX1BBVEh9L3JpcGVtZDE2MC5vCiAKICAgICAjIFJ1biB0aGUgdGVzdHMKICAgICAjIC0tLS0tLS0tLS0tLS0KQEAgLTM3NDAsMTEgKzM2MzcsMTEgQEAKIAogICAgICMgVGhlcmUncyBhIHJpc2sgb2Ygc29tZXRoaW5nIGdldHRpbmcgcmUtZW5hYmxlZCB2aWEgY29uZmlnX3BzYS5oOwogICAgICMgbWFrZSBzdXJlIGl0IGRpZCBub3QgaGFwcGVuLiBOb3RlOiBpdCdzIE9LIGZvciBNRF9DIHRvIGJlIGVuYWJsZWQuCi0gICAgbm90IGdyZXAgbWJlZHRsc19tZDUgbGlicmFyeS9tZDUubwotICAgIG5vdCBncmVwIG1iZWR0bHNfc2hhMSBsaWJyYXJ5L3NoYTEubwotICAgIG5vdCBncmVwIG1iZWR0bHNfc2hhMjU2IGxpYnJhcnkvc2hhMjU2Lm8KLSAgICBub3QgZ3JlcCBtYmVkdGxzX3NoYTUxMiBsaWJyYXJ5L3NoYTUxMi5vCi0gICAgbm90IGdyZXAgbWJlZHRsc19yaXBlbWQxNjAgbGlicmFyeS9yaXBlbWQxNjAubworICAgIG5vdCBncmVwIG1iZWR0bHNfbWQ1ICR7QlVJTFRJTl9TUkNfUEFUSH0vbWQ1Lm8KKyAgICBub3QgZ3JlcCBtYmVkdGxzX3NoYTEgJHtCVUlMVElOX1NSQ19QQVRIfS9zaGExLm8KKyAgICBub3QgZ3JlcCBtYmVkdGxzX3NoYTI1NiAke0JVSUxUSU5fU1JDX1BBVEh9L3NoYTI1Ni5vCisgICAgbm90IGdyZXAgbWJlZHRsc19zaGE1MTIgJHtCVUlMVElOX1NSQ19QQVRIfS9zaGE1MTIubworICAgIG5vdCBncmVwIG1iZWR0bHNfcmlwZW1kMTYwICR7QlVJTFRJTl9TUkNfUEFUSH0vcmlwZW1kMTYwLm8KIAogICAgICMgUnVuIHRoZSB0ZXN0cwogICAgICMgLS0tLS0tLS0tLS0tLQpAQCAtMzgzMSw3ICszNzI4LDcgQEAKICAgICBoZWxwZXJfbGlidGVzdGRyaXZlcjFfbWFrZV9tYWluICIkbG9jX2FjY2VsX2xpc3QiCiAKICAgICAjIEVuc3VyZSB0aGF0IGJ1aWx0LWluIHN1cHBvcnQgZm9yIEhNQUMgaXMgZGlzYWJsZWQuCi0gICAgbm90IGdyZXAgbWJlZHRsc19tZF9obWFjIGxpYnJhcnkvbWQubworICAgIG5vdCBncmVwIG1iZWR0bHNfbWRfaG1hYyAke0JVSUxUSU5fU1JDX1BBVEh9L21kLm8KIAogICAgICMgUnVuIHRoZSB0ZXN0cwogICAgICMgLS0tLS0tLS0tLS0tLQpAQCAtMzg4OSw3ICszNzg2LDcgQEAKICAgICBoZWxwZXJfbGlidGVzdGRyaXZlcjFfbWFrZV9tYWluICIkbG9jX2FjY2VsX2xpc3QiCiAKICAgICAjIE1ha2Ugc3VyZSB0aGlzIHdhcyBub3QgcmUtZW5hYmxlZCBieSBhY2NpZGVudCAoYWRkaXRpdmUgY29uZmlnKQotICAgIG5vdCBncmVwIG1iZWR0bHNfZGVzKiBsaWJyYXJ5L2Rlcy5vCisgICAgbm90IGdyZXAgbWJlZHRsc19kZXMqICR7QlVJTFRJTl9TUkNfUEFUSH0vZGVzLm8KIAogICAgICMgUnVuIHRoZSB0ZXN0cwogICAgICMgLS0tLS0tLS0tLS0tLQpAQCAtMzkyNiw5ICszODIzLDkgQEAKICAgICBoZWxwZXJfbGlidGVzdGRyaXZlcjFfbWFrZV9tYWluICIkbG9jX2FjY2VsX2xpc3QiCiAKICAgICAjIE1ha2Ugc3VyZSB0aGlzIHdhcyBub3QgcmUtZW5hYmxlZCBieSBhY2NpZGVudCAoYWRkaXRpdmUgY29uZmlnKQotICAgIG5vdCBncmVwIG1iZWR0bHNfY2NtIGxpYnJhcnkvY2NtLm8KLSAgICBub3QgZ3JlcCBtYmVkdGxzX2djbSBsaWJyYXJ5L2djbS5vCi0gICAgbm90IGdyZXAgbWJlZHRsc19jaGFjaGFwb2x5IGxpYnJhcnkvY2hhY2hhcG9seS5vCisgICAgbm90IGdyZXAgbWJlZHRsc19jY20gJHtCVUlMVElOX1NSQ19QQVRIfS9jY20ubworICAgIG5vdCBncmVwIG1iZWR0bHNfZ2NtICR7QlVJTFRJTl9TUkNfUEFUSH0vZ2NtLm8KKyAgICBub3QgZ3JlcCBtYmVkdGxzX2NoYWNoYXBvbHkgJHtCVUlMVElOX1NSQ19QQVRIfS9jaGFjaGFwb2x5Lm8KIAogICAgICMgUnVuIHRoZSB0ZXN0cwogICAgICMgLS0tLS0tLS0tLS0tLQpAQCAtMzk5NCwxNSArMzg5MSwxNSBAQAogICAgIGhlbHBlcl9saWJ0ZXN0ZHJpdmVyMV9tYWtlX21haW4gIiRsb2NfYWNjZWxfbGlzdCIKIAogICAgICMgTWFrZSBzdXJlIHRoaXMgd2FzIG5vdCByZS1lbmFibGVkIGJ5IGFjY2lkZW50IChhZGRpdGl2ZSBjb25maWcpCi0gICAgbm90IGdyZXAgbWJlZHRsc19jaXBoZXIgbGlicmFyeS9jaXBoZXIubwotICAgIG5vdCBncmVwIG1iZWR0bHNfZGVzIGxpYnJhcnkvZGVzLm8KLSAgICBub3QgZ3JlcCBtYmVkdGxzX2FlcyBsaWJyYXJ5L2Flcy5vCi0gICAgbm90IGdyZXAgbWJlZHRsc19hcmlhIGxpYnJhcnkvYXJpYS5vCi0gICAgbm90IGdyZXAgbWJlZHRsc19jYW1lbGxpYSBsaWJyYXJ5L2NhbWVsbGlhLm8KLSAgICBub3QgZ3JlcCBtYmVkdGxzX2NjbSBsaWJyYXJ5L2NjbS5vCi0gICAgbm90IGdyZXAgbWJlZHRsc19nY20gbGlicmFyeS9nY20ubwotICAgIG5vdCBncmVwIG1iZWR0bHNfY2hhY2hhcG9seSBsaWJyYXJ5L2NoYWNoYXBvbHkubwotICAgIG5vdCBncmVwIG1iZWR0bHNfY21hYyBsaWJyYXJ5L2NtYWMubworICAgIG5vdCBncmVwIG1iZWR0bHNfY2lwaGVyICR7QlVJTFRJTl9TUkNfUEFUSH0vY2lwaGVyLm8KKyAgICBub3QgZ3JlcCBtYmVkdGxzX2RlcyAke0JVSUxUSU5fU1JDX1BBVEh9L2Rlcy5vCisgICAgbm90IGdyZXAgbWJlZHRsc19hZXMgJHtCVUlMVElOX1NSQ19QQVRIfS9hZXMubworICAgIG5vdCBncmVwIG1iZWR0bHNfYXJpYSAke0JVSUxUSU5fU1JDX1BBVEh9L2FyaWEubworICAgIG5vdCBncmVwIG1iZWR0bHNfY2FtZWxsaWEgJHtCVUlMVElOX1NSQ19QQVRIfS9jYW1lbGxpYS5vCisgICAgbm90IGdyZXAgbWJlZHRsc19jY20gJHtCVUlMVElOX1NSQ19QQVRIfS9jY20ubworICAgIG5vdCBncmVwIG1iZWR0bHNfZ2NtICR7QlVJTFRJTl9TUkNfUEFUSH0vZ2NtLm8KKyAgICBub3QgZ3JlcCBtYmVkdGxzX2NoYWNoYXBvbHkgJHtCVUlMVElOX1NSQ19QQVRIfS9jaGFjaGFwb2x5Lm8KKyAgICBub3QgZ3JlcCBtYmVkdGxzX2NtYWMgJHtCVUlMVElOX1NSQ19QQVRIfS9jbWFjLm8KIAogICAgICMgUnVuIHRoZSB0ZXN0cwogICAgICMgLS0tLS0tLS0tLS0tLQpAQCAtNDA5MSw5ICszOTg4LDkgQEAKIAogICAgICMgTWFrZSBzdXJlIGRpc2FibGVkIGNvbXBvbmVudHMgd2VyZSBub3QgcmUtZW5hYmxlZCBieSBhY2NpZGVudCAoYWRkaXRpdmUKICAgICAjIGNvbmZpZykKLSAgICBub3QgZ3JlcCBtYmVkdGxzX2Flc18gbGlicmFyeS9hZXMubwotICAgIG5vdCBncmVwIG1iZWR0bHNfYXJpYV8gbGlicmFyeS9hcmlhLm8KLSAgICBub3QgZ3JlcCBtYmVkdGxzX2NhbWVsbGlhXyBsaWJyYXJ5L2NhbWVsbGlhLm8KKyAgICBub3QgZ3JlcCBtYmVkdGxzX2Flc18gJHtCVUlMVElOX1NSQ19QQVRIfS9hZXMubworICAgIG5vdCBncmVwIG1iZWR0bHNfYXJpYV8gJHtCVUlMVElOX1NSQ19QQVRIfS9hcmlhLm8KKyAgICBub3QgZ3JlcCBtYmVkdGxzX2NhbWVsbGlhXyAke0JVSUxUSU5fU1JDX1BBVEh9L2NhbWVsbGlhLm8KIAogICAgICMgUnVuIHRoZSB0ZXN0cwogICAgICMgLS0tLS0tLS0tLS0tLQpAQCAtNDE5OCw5ICs0MDk1LDggQEAKICAgICAgICAgLi9zY3JpcHRzL2NvbmZpZy5weSB1bnNldCAke29wdH0KICAgICBkb25lCiAKLSAgICAjIGVudGVyIHRoZSBkaXJlY3RvcnkgY29udGFpbmluZyB0aGUgdGFyZ2V0IGZpbGUgJiBzdHJpcCB0aGUgZGlyIGZyb20gdGhlIGZpbGVuYW1lCi0gICAgY2QgJChkaXJuYW1lICR7ZmlsZX0pCi0gICAgZmlsZT0kKGJhc2VuYW1lICR7ZmlsZX0pCisgICAgIyBlbnRlciB0aGUgbGlicmFyeSBkaXJlY3RvcnkKKyAgICBjZCBsaWJyYXJ5CiAKICAgICAjIFRoZSBtb3N0IGNvbW1vbiBpc3N1ZSBpcyB1bnVzZWQgdmFyaWFibGVzL2Z1bmN0aW9ucywgc28gZW5zdXJlIC1XdW51c2VkIGlzIHNldC4KICAgICB3YXJuaW5nX2ZsYWdzPSItV2Vycm9yIC1XYWxsIC1XZXh0cmEgLVd3cml0ZS1zdHJpbmdzIC1XcG9pbnRlci1hcml0aCAtV2ltcGxpY2l0LWZhbGx0aHJvdWdoIC1Xc2hhZG93IC1XdmxhIC1XZm9ybWF0PTIgLVduby1mb3JtYXQtbm9ubGl0ZXJhbCAtV3NoYWRvdyAtV2FzbS1vcGVyYW5kLXdpZHRocyAtV3VudXNlZCIKQEAgLTQyMTUsNyArNDExMSw3IEBACiAgICAgZGVwcz0iIgogCiAgICAgbGVuPSR7I29wdGlvbnNbQF19Ci0gICAgc291cmNlX2ZpbGU9JHtmaWxlJS5vfS5jCisgICAgc291cmNlX2ZpbGU9Li4vJHtmaWxlJS5vfS5jCiAKICAgICB0YXJnZXRzPTAKICAgICBlY2hvICdpbmNsdWRlIE1ha2VmaWxlJyA+JHttYWtlZmlsZX0KQEAgLTQyNTUsOSArNDE1MSw2IEBACiAKIHZhbGlkYXRlX2Flc19jb25maWdfdmFyaWF0aW9ucygpIHsKICAgICBpZiBbWyAiJDEiID09ICoiTUJFRFRMU19BRVNfVVNFX0hBUkRXQVJFX09OTFkiKiBdXTsgdGhlbgotICAgICAgICBpZiBbWyAiJDEiID09ICoiTUJFRFRMU19QQURMT0NLX0MiKiBdXTsgdGhlbgotICAgICAgICAgICAgcmV0dXJuIDEKLSAgICAgICAgZmkKICAgICAgICAgaWYgW1sgISgoIiRIT1NUVFlQRSIgPT0gImFhcmNoNjQiICYmICIkMSIgIT0gKiJNQkVEVExTX0FFU0NFX0MiKikgfHwgXAogICAgICAgICAgICAgICAgICgiJEhPU1RUWVBFIiA9PSAieDg2XzY0IiAgJiYgIiQxIiAhPSAqIk1CRURUTFNfQUVTTklfQyIqKSkgXV07IHRoZW4KICAgICAgICAgICAgIHJldHVybiAxCkBAIC00Mjc1LDEwICs0MTY4LDEwIEBACiAgICAgTUJFRFRMU19ST09UX0RJUj0iJFBXRCIKICAgICBtc2cgImJ1aWxkOiBhZXMubyBmb3IgYWxsIGNvbWJpbmF0aW9ucyBvZiByZWxldmFudCBjb25maWcgb3B0aW9ucyIKIAotICAgIGJ1aWxkX3Rlc3RfY29uZmlnX2NvbWJvcyBsaWJyYXJ5L2Flcy5vIHZhbGlkYXRlX2Flc19jb25maWdfdmFyaWF0aW9ucyBcCisgICAgYnVpbGRfdGVzdF9jb25maWdfY29tYm9zICR7QlVJTFRJTl9TUkNfUEFUSH0vYWVzLm8gdmFsaWRhdGVfYWVzX2NvbmZpZ192YXJpYXRpb25zIFwKICAgICAgICAgIk1CRURUTFNfQUVTX1NFVEtFWV9FTkNfQUxUIiAiTUJFRFRMU19BRVNfREVDUllQVF9BTFQiIFwKICAgICAgICAgIk1CRURUTFNfQUVTX1JPTV9UQUJMRVMiICJNQkVEVExTX0FFU19FTkNSWVBUX0FMVCIgIk1CRURUTFNfQUVTX1NFVEtFWV9ERUNfQUxUIiBcCi0gICAgICAgICJNQkVEVExTX0FFU19GRVdFUl9UQUJMRVMiICJNQkVEVExTX1BBRExPQ0tfQyIgIk1CRURUTFNfQUVTX1VTRV9IQVJEV0FSRV9PTkxZIiBcCisgICAgICAgICJNQkVEVExTX0FFU19GRVdFUl9UQUJMRVMiICJNQkVEVExTX0FFU19VU0VfSEFSRFdBUkVfT05MWSIgXAogICAgICAgICAiTUJFRFRMU19BRVNOSV9DIiAiTUJFRFRMU19BRVNDRV9DIiAiTUJFRFRMU19BRVNfT05MWV8xMjhfQklUX0tFWV9MRU5HVEgiCiAKICAgICBjZCAiJE1CRURUTFNfUk9PVF9ESVIiCkBAIC00MjkyLDEwICs0MTg1LDEwIEBACiAgICAgc2NyaXB0cy9jb25maWcucHkgdW5zZXQgTUJFRFRMU19DSVBIRVJfTU9ERV9YVFMKICAgICBzY3JpcHRzL2NvbmZpZy5weSB1bnNldCBNQkVEVExTX0RFU19DCiAgICAgc2NyaXB0cy9jb25maWcucHkgdW5zZXQgTUJFRFRMU19OSVNUX0tXX0MKLSAgICBidWlsZF90ZXN0X2NvbmZpZ19jb21ib3MgbGlicmFyeS9hZXMubyB2YWxpZGF0ZV9hZXNfY29uZmlnX3ZhcmlhdGlvbnMgXAorICAgIGJ1aWxkX3Rlc3RfY29uZmlnX2NvbWJvcyAke0JVSUxUSU5fU1JDX1BBVEh9L2Flcy5vIHZhbGlkYXRlX2Flc19jb25maWdfdmFyaWF0aW9ucyBcCiAgICAgICAgICJNQkVEVExTX0FFU19TRVRLRVlfRU5DX0FMVCIgIk1CRURUTFNfQUVTX0RFQ1JZUFRfQUxUIiBcCiAgICAgICAgICJNQkVEVExTX0FFU19ST01fVEFCTEVTIiAiTUJFRFRMU19BRVNfRU5DUllQVF9BTFQiICJNQkVEVExTX0FFU19TRVRLRVlfREVDX0FMVCIgXAotICAgICAgICAiTUJFRFRMU19BRVNfRkVXRVJfVEFCTEVTIiAiTUJFRFRMU19QQURMT0NLX0MiICJNQkVEVExTX0FFU19VU0VfSEFSRFdBUkVfT05MWSIgXAorICAgICAgICAiTUJFRFRMU19BRVNfRkVXRVJfVEFCTEVTIiAiTUJFRFRMU19BRVNfVVNFX0hBUkRXQVJFX09OTFkiIFwKICAgICAgICAgIk1CRURUTFNfQUVTTklfQyIgIk1CRURUTFNfQUVTQ0VfQyIgIk1CRURUTFNfQUVTX09OTFlfMTI4X0JJVF9LRVlfTEVOR1RIIgogfQogCkBAIC00NDc5LDE1ICs0MzcyLDIyIEBACiAKIGNvbXBvbmVudF90ZXN0X3doZW5fbm9fY2lwaGVyc3VpdGVzX2hhdmVfbWFjICgpIHsKICAgICBtc2cgImJ1aWxkOiB3aGVuIG5vIGNpcGhlcnN1aXRlcyBoYXZlIE1BQyIKKyAgICBzY3JpcHRzL2NvbmZpZy5weSBzZXQgTUJFRFRMU19QU0FfQ1JZUFRPX0NPTkZJRworICAgIHNjcmlwdHMvY29uZmlnLnB5IC1mICIkQ1JZUFRPX0NPTkZJR19IIiB1bnNldCBQU0FfV0FOVF9BTEdfQ0JDX05PX1BBRERJTkcKKyAgICBzY3JpcHRzL2NvbmZpZy5weSAtZiAiJENSWVBUT19DT05GSUdfSCIgdW5zZXQgUFNBX1dBTlRfQUxHX0NCQ19QS0NTNworICAgIHNjcmlwdHMvY29uZmlnLnB5IC1mICIkQ1JZUFRPX0NPTkZJR19IIiB1bnNldCBQU0FfV0FOVF9BTEdfQ01BQworICAgIHNjcmlwdHMvY29uZmlnLnB5IC1mICIkQ1JZUFRPX0NPTkZJR19IIiB1bnNldCBQU0FfV0FOVF9BTEdfUEJLREYyX0FFU19DTUFDX1BSRl8xMjgKKwogICAgIHNjcmlwdHMvY29uZmlnLnB5IHVuc2V0IE1CRURUTFNfQ0lQSEVSX05VTExfQ0lQSEVSCiAgICAgc2NyaXB0cy9jb25maWcucHkgdW5zZXQgTUJFRFRMU19DSVBIRVJfTU9ERV9DQkMKICAgICBzY3JpcHRzL2NvbmZpZy5weSB1bnNldCBNQkVEVExTX0NNQUNfQworCiAgICAgbWFrZQogCi0gICAgbXNnICJ0ZXN0OiAhTUJFRFRMU19TU0xfU09NRV9NT0RFU19VU0VfTUFDIgorICAgIG1zZyAidGVzdDogIU1CRURUTFNfU1NMX1NPTUVfU1VJVEVTX1VTRV9NQUMiCiAgICAgbWFrZSB0ZXN0CiAKLSAgICBtc2cgInRlc3Qgc3NsLW9wdC5zaDogIU1CRURUTFNfU1NMX1NPTUVfTU9ERVNfVVNFX01BQyIKKyAgICBtc2cgInRlc3Qgc3NsLW9wdC5zaDogIU1CRURUTFNfU1NMX1NPTUVfU1VJVEVTX1VTRV9NQUMiCiAgICAgdGVzdHMvc3NsLW9wdC5zaCAtZiAnRGVmYXVsdFx8RXRNJyAtZSAnd2l0aG91dCBFdE0nCiB9CiAKQEAgLTQ2MzEsNyArNDUzMSw2IEBACiAKICAgICBtc2cgImJ1aWxkOiBkZWZhdWx0IGNvbmZpZyB3aXRoIGRpZmZlcmVudCBBRVMgaW1wbGVtZW50YXRpb25zIgogICAgIHNjcmlwdHMvY29uZmlnLnB5IHNldCBNQkVEVExTX0FFU05JX0MKLSAgICBzY3JpcHRzL2NvbmZpZy5weSBzZXQgTUJFRFRMU19QQURMT0NLX0MKICAgICBzY3JpcHRzL2NvbmZpZy5weSB1bnNldCBNQkVEVExTX0FFU19VU0VfSEFSRFdBUkVfT05MWQogICAgIHNjcmlwdHMvY29uZmlnLnB5IHNldCBNQkVEVExTX0hBVkVfQVNNCiAKQEAgLTQ2NDMsMTEgKzQ1NDIsOSBAQAogICAgIC4vcHJvZ3JhbXMvdGVzdC9zZWxmdGVzdCBhZXMgfCBncmVwICJBRVNOSSBjb2RlIiB8IGdyZXAgLXEgImludHJpbnNpY3MiCiAgICAgZ3JlcCAtcSAiQUVTIG5vdGU6IHVzaW5nIEFFU05JIiAuL3Byb2dyYW1zL3Rlc3Qvc2VsZnRlc3QKICAgICBncmVwIC1xICJBRVMgbm90ZTogYnVpbHQtaW4gaW1wbGVtZW50YXRpb24uIiAuL3Byb2dyYW1zL3Rlc3Qvc2VsZnRlc3QKLSAgICBncmVwIC1xICJBRVMgbm90ZTogdXNpbmcgVklBIFBhZGxvY2siIC4vcHJvZ3JhbXMvdGVzdC9zZWxmdGVzdAogICAgIGdyZXAgLXEgbWJlZHRsc19hZXNuaV9oYXNfc3VwcG9ydCAuL3Byb2dyYW1zL3Rlc3Qvc2VsZnRlc3QKIAogICAgIHNjcmlwdHMvY29uZmlnLnB5IHNldCBNQkVEVExTX0FFU05JX0MKLSAgICBzY3JpcHRzL2NvbmZpZy5weSB1bnNldCBNQkVEVExTX1BBRExPQ0tfQwogICAgIHNjcmlwdHMvY29uZmlnLnB5IHNldCBNQkVEVExTX0FFU19VU0VfSEFSRFdBUkVfT05MWQogICAgIG1zZyAiQUVTIHRlc3RzLCB0ZXN0IEFFU05JIG9ubHkiCiAgICAgbWFrZSBjbGVhbgpAQCAtNDY1Niw3ICs0NTUzLDYgQEAKICAgICAuL3Byb2dyYW1zL3Rlc3Qvc2VsZnRlc3QgYWVzIHwgbm90IGdyZXAgLXEgIkFFUyBub3RlOiBidWlsdC1pbiBpbXBsZW1lbnRhdGlvbi4iCiAgICAgZ3JlcCAtcSAiQUVTIG5vdGU6IHVzaW5nIEFFU05JIiAuL3Byb2dyYW1zL3Rlc3Qvc2VsZnRlc3QKICAgICBub3QgZ3JlcCAtcSAiQUVTIG5vdGU6IGJ1aWx0LWluIGltcGxlbWVudGF0aW9uLiIgLi9wcm9ncmFtcy90ZXN0L3NlbGZ0ZXN0Ci0gICAgbm90IGdyZXAgLXEgIkFFUyBub3RlOiB1c2luZyBWSUEgUGFkbG9jayIgLi9wcm9ncmFtcy90ZXN0L3NlbGZ0ZXN0CiAgICAgbm90IGdyZXAgLXEgbWJlZHRsc19hZXNuaV9oYXNfc3VwcG9ydCAuL3Byb2dyYW1zL3Rlc3Qvc2VsZnRlc3QKIH0KIApAQCAtNDY2OCw3ICs0NTY0LDYgQEAKIGNvbXBvbmVudF90ZXN0X2Flc25pX20zMl9jbGFuZygpIHsKIAogICAgIHNjcmlwdHMvY29uZmlnLnB5IHNldCBNQkVEVExTX0FFU05JX0MKLSAgICBzY3JpcHRzL2NvbmZpZy5weSBzZXQgTUJFRFRMU19QQURMT0NLX0MKICAgICBzY3JpcHRzL2NvbmZpZy5weSB1bnNldCBNQkVEVExTX0FFU19VU0VfSEFSRFdBUkVfT05MWQogICAgIHNjcmlwdHMvY29uZmlnLnB5IHNldCBNQkVEVExTX0hBVkVfQVNNCiAKQEAgLTQ2ODAsNyArNDU3NSw2IEBACiAgICAgLi9wcm9ncmFtcy90ZXN0L3NlbGZ0ZXN0IGFlcyB8IGdyZXAgIkFFU05JIGNvZGUiIHwgZ3JlcCAtcSAiaW50cmluc2ljcyIKICAgICBncmVwIC1xICJBRVMgbm90ZTogdXNpbmcgQUVTTkkiIC4vcHJvZ3JhbXMvdGVzdC9zZWxmdGVzdAogICAgIGdyZXAgLXEgIkFFUyBub3RlOiBidWlsdC1pbiBpbXBsZW1lbnRhdGlvbi4iIC4vcHJvZ3JhbXMvdGVzdC9zZWxmdGVzdAotICAgIGdyZXAgLXEgIkFFUyBub3RlOiB1c2luZyBWSUEgUGFkbG9jayIgLi9wcm9ncmFtcy90ZXN0L3NlbGZ0ZXN0CiAgICAgZ3JlcCAtcSBtYmVkdGxzX2Flc25pX2hhc19zdXBwb3J0IC4vcHJvZ3JhbXMvdGVzdC9zZWxmdGVzdAogfQogCkBAIC00NzIzLDQ5ICs0NjE3LDQ5IEBACiAgICAgc2NyaXB0cy9jb25maWcucHkgc2V0IE1CRURUTFNfQUVTX1VTRV9IQVJEV0FSRV9PTkxZCiAKICAgICBtc2cgIk1CRURUTFNfQUVTX1VTRV9IQVJEV0FSRV9PTkxZLCBjbGFuZywgYWFyY2g2NCIKLSAgICBtYWtlIC1CIGxpYnJhcnkvYWVzY2UubyBDQz1jbGFuZyBDRkxBR1M9Ii0tdGFyZ2V0PWFhcmNoNjQtbGludXgtZ251IC1tYXJjaD1hcm12OC1hK2NyeXB0byIKKyAgICBtYWtlIC1CIGxpYnJhcnkvLi4vJHtCVUlMVElOX1NSQ19QQVRIfS9hZXNjZS5vIENDPWNsYW5nIENGTEFHUz0iLS10YXJnZXQ9YWFyY2g2NC1saW51eC1nbnUgLW1hcmNoPWFybXY4LWErY3J5cHRvIgogCiAgICAgbXNnICJNQkVEVExTX0FFU19VU0VfSEFSRFdBUkVfT05MWSwgY2xhbmcsIGFybSIKLSAgICBtYWtlIC1CIGxpYnJhcnkvYWVzY2UubyBDQz1jbGFuZyBDRkxBR1M9Ii0tdGFyZ2V0PWFybS1saW51eC1nbnVlYWJpaGYgLW1jcHU9Y29ydGV4LWE3MitjcnlwdG8gLW1hcm0iCisgICAgbWFrZSAtQiBsaWJyYXJ5Ly4uLyR7QlVJTFRJTl9TUkNfUEFUSH0vYWVzY2UubyBDQz1jbGFuZyBDRkxBR1M9Ii0tdGFyZ2V0PWFybS1saW51eC1nbnVlYWJpaGYgLW1jcHU9Y29ydGV4LWE3MitjcnlwdG8gLW1hcm0iCiAKICAgICBtc2cgIk1CRURUTFNfQUVTX1VTRV9IQVJEV0FSRV9PTkxZLCBjbGFuZywgdGh1bWIiCi0gICAgbWFrZSAtQiBsaWJyYXJ5L2Flc2NlLm8gQ0M9Y2xhbmcgQ0ZMQUdTPSItLXRhcmdldD1hcm0tbGludXgtZ251ZWFiaWhmIC1tY3B1PWNvcnRleC1hMzIrY3J5cHRvIC1tdGh1bWIiCisgICAgbWFrZSAtQiBsaWJyYXJ5Ly4uLyR7QlVJTFRJTl9TUkNfUEFUSH0vYWVzY2UubyBDQz1jbGFuZyBDRkxBR1M9Ii0tdGFyZ2V0PWFybS1saW51eC1nbnVlYWJpaGYgLW1jcHU9Y29ydGV4LWEzMitjcnlwdG8gLW10aHVtYiIKIAogICAgIHNjcmlwdHMvY29uZmlnLnB5IHVuc2V0IE1CRURUTFNfQUVTX1VTRV9IQVJEV0FSRV9PTkxZCiAKICAgICBtc2cgIm5vIE1CRURUTFNfQUVTX1VTRV9IQVJEV0FSRV9PTkxZLCBjbGFuZywgYWFyY2g2NCIKLSAgICBtYWtlIC1CIGxpYnJhcnkvYWVzY2UubyBDQz1jbGFuZyBDRkxBR1M9Ii0tdGFyZ2V0PWFhcmNoNjQtbGludXgtZ251IC1tYXJjaD1hcm12OC1hK2NyeXB0byIKKyAgICBtYWtlIC1CIGxpYnJhcnkvLi4vJHtCVUlMVElOX1NSQ19QQVRIfS9hZXNjZS5vIENDPWNsYW5nIENGTEFHUz0iLS10YXJnZXQ9YWFyY2g2NC1saW51eC1nbnUgLW1hcmNoPWFybXY4LWErY3J5cHRvIgogCiAgICAgbXNnICJubyBNQkVEVExTX0FFU19VU0VfSEFSRFdBUkVfT05MWSwgY2xhbmcsIGFybSIKLSAgICBtYWtlIC1CIGxpYnJhcnkvYWVzY2UubyBDQz1jbGFuZyBDRkxBR1M9Ii0tdGFyZ2V0PWFybS1saW51eC1nbnVlYWJpaGYgLW1jcHU9Y29ydGV4LWE3MitjcnlwdG8gLW1hcm0iCisgICAgbWFrZSAtQiBsaWJyYXJ5Ly4uLyR7QlVJTFRJTl9TUkNfUEFUSH0vYWVzY2UubyBDQz1jbGFuZyBDRkxBR1M9Ii0tdGFyZ2V0PWFybS1saW51eC1nbnVlYWJpaGYgLW1jcHU9Y29ydGV4LWE3MitjcnlwdG8gLW1hcm0iCiAKICAgICBtc2cgIm5vIE1CRURUTFNfQUVTX1VTRV9IQVJEV0FSRV9PTkxZLCBjbGFuZywgdGh1bWIiCi0gICAgbWFrZSAtQiBsaWJyYXJ5L2Flc2NlLm8gQ0M9Y2xhbmcgQ0ZMQUdTPSItLXRhcmdldD1hcm0tbGludXgtZ251ZWFiaWhmIC1tY3B1PWNvcnRleC1hMzIrY3J5cHRvIC1tdGh1bWIiCisgICAgbWFrZSAtQiBsaWJyYXJ5Ly4uLyR7QlVJTFRJTl9TUkNfUEFUSH0vYWVzY2UubyBDQz1jbGFuZyBDRkxBR1M9Ii0tdGFyZ2V0PWFybS1saW51eC1nbnVlYWJpaGYgLW1jcHU9Y29ydGV4LWEzMitjcnlwdG8gLW10aHVtYiIKIAogICAgICMgdGVzdCBmb3IgcHJlc2VuY2Ugb2YgQUVTIGluc3RydWN0aW9ucwogICAgIHNjcmlwdHMvY29uZmlnLnB5IHNldCBNQkVEVExTX0FFU19VU0VfSEFSRFdBUkVfT05MWQogICAgIG1zZyAiY2xhbmcsIHRlc3QgQTMyIGNyeXB0byBpbnN0cnVjdGlvbnMgYnVpbHQiCi0gICAgbWFrZSAtQiBsaWJyYXJ5L2Flc2NlLm8gQ0M9Y2xhbmcgQ0ZMQUdTPSItLXRhcmdldD1hcm0tbGludXgtZ251ZWFiaWhmIC1tY3B1PWNvcnRleC1hNzIrY3J5cHRvIC1tYXJtIC1TIgotICAgIGdyZXAgLUUgJ2Flc1swLTlhLXpdKy5bMC05XVxzKltxdl0nIGxpYnJhcnkvYWVzY2UubworICAgIG1ha2UgLUIgbGlicmFyeS8uLi8ke0JVSUxUSU5fU1JDX1BBVEh9L2Flc2NlLm8gQ0M9Y2xhbmcgQ0ZMQUdTPSItLXRhcmdldD1hcm0tbGludXgtZ251ZWFiaWhmIC1tY3B1PWNvcnRleC1hNzIrY3J5cHRvIC1tYXJtIC1TIgorICAgIGdyZXAgLUUgJ2Flc1swLTlhLXpdKy5bMC05XVxzKltxdl0nICR7QlVJTFRJTl9TUkNfUEFUSH0vYWVzY2UubwogICAgIG1zZyAiY2xhbmcsIHRlc3QgVDMyIGNyeXB0byBpbnN0cnVjdGlvbnMgYnVpbHQiCi0gICAgbWFrZSAtQiBsaWJyYXJ5L2Flc2NlLm8gQ0M9Y2xhbmcgQ0ZMQUdTPSItLXRhcmdldD1hcm0tbGludXgtZ251ZWFiaWhmIC1tY3B1PWNvcnRleC1hMzIrY3J5cHRvIC1tdGh1bWIgLVMiCi0gICAgZ3JlcCAtRSAnYWVzWzAtOWEtel0rLlswLTldXHMqW3F2XScgbGlicmFyeS9hZXNjZS5vCisgICAgbWFrZSAtQiBsaWJyYXJ5Ly4uLyR7QlVJTFRJTl9TUkNfUEFUSH0vYWVzY2UubyBDQz1jbGFuZyBDRkxBR1M9Ii0tdGFyZ2V0PWFybS1saW51eC1nbnVlYWJpaGYgLW1jcHU9Y29ydGV4LWEzMitjcnlwdG8gLW10aHVtYiAtUyIKKyAgICBncmVwIC1FICdhZXNbMC05YS16XSsuWzAtOV1ccypbcXZdJyAke0JVSUxUSU5fU1JDX1BBVEh9L2Flc2NlLm8KICAgICBtc2cgImNsYW5nLCB0ZXN0IGFhcmNoNjQgY3J5cHRvIGluc3RydWN0aW9ucyBidWlsdCIKLSAgICBtYWtlIC1CIGxpYnJhcnkvYWVzY2UubyBDQz1jbGFuZyBDRkxBR1M9Ii0tdGFyZ2V0PWFhcmNoNjQtbGludXgtZ251IC1tYXJjaD1hcm12OC1hIC1TIgotICAgIGdyZXAgLUUgJ2Flc1thLXpdK1xzKltxdl0nIGxpYnJhcnkvYWVzY2UubworICAgIG1ha2UgLUIgbGlicmFyeS8uLi8ke0JVSUxUSU5fU1JDX1BBVEh9L2Flc2NlLm8gQ0M9Y2xhbmcgQ0ZMQUdTPSItLXRhcmdldD1hYXJjaDY0LWxpbnV4LWdudSAtbWFyY2g9YXJtdjgtYSAtUyIKKyAgICBncmVwIC1FICdhZXNbYS16XStccypbcXZdJyAke0JVSUxUSU5fU1JDX1BBVEh9L2Flc2NlLm8KIAogICAgICMgdGVzdCBmb3IgYWJzZW5jZSBvZiBBRVMgaW5zdHJ1Y3Rpb25zCiAgICAgc2NyaXB0cy9jb25maWcucHkgdW5zZXQgTUJFRFRMU19BRVNfVVNFX0hBUkRXQVJFX09OTFkKICAgICBzY3JpcHRzL2NvbmZpZy5weSB1bnNldCBNQkVEVExTX0FFU0NFX0MKICAgICBtc2cgImNsYW5nLCB0ZXN0IEEzMiBjcnlwdG8gaW5zdHJ1Y3Rpb25zIG5vdCBidWlsdCIKLSAgICBtYWtlIC1CIGxpYnJhcnkvYWVzY2UubyBDQz1jbGFuZyBDRkxBR1M9Ii0tdGFyZ2V0PWFybS1saW51eC1nbnVlYWJpaGYgLW1jcHU9Y29ydGV4LWE3MitjcnlwdG8gLW1hcm0gLVMiCi0gICAgbm90IGdyZXAgLUUgJ2Flc1swLTlhLXpdKy5bMC05XVxzKltxdl0nIGxpYnJhcnkvYWVzY2UubworICAgIG1ha2UgLUIgbGlicmFyeS8uLi8ke0JVSUxUSU5fU1JDX1BBVEh9L2Flc2NlLm8gQ0M9Y2xhbmcgQ0ZMQUdTPSItLXRhcmdldD1hcm0tbGludXgtZ251ZWFiaWhmIC1tY3B1PWNvcnRleC1hNzIrY3J5cHRvIC1tYXJtIC1TIgorICAgIG5vdCBncmVwIC1FICdhZXNbMC05YS16XSsuWzAtOV1ccypbcXZdJyAke0JVSUxUSU5fU1JDX1BBVEh9L2Flc2NlLm8KICAgICBtc2cgImNsYW5nLCB0ZXN0IFQzMiBjcnlwdG8gaW5zdHJ1Y3Rpb25zIG5vdCBidWlsdCIKLSAgICBtYWtlIC1CIGxpYnJhcnkvYWVzY2UubyBDQz1jbGFuZyBDRkxBR1M9Ii0tdGFyZ2V0PWFybS1saW51eC1nbnVlYWJpaGYgLW1jcHU9Y29ydGV4LWEzMitjcnlwdG8gLW10aHVtYiAtUyIKLSAgICBub3QgZ3JlcCAtRSAnYWVzWzAtOWEtel0rLlswLTldXHMqW3F2XScgbGlicmFyeS9hZXNjZS5vCisgICAgbWFrZSAtQiBsaWJyYXJ5Ly4uLyR7QlVJTFRJTl9TUkNfUEFUSH0vYWVzY2UubyBDQz1jbGFuZyBDRkxBR1M9Ii0tdGFyZ2V0PWFybS1saW51eC1nbnVlYWJpaGYgLW1jcHU9Y29ydGV4LWEzMitjcnlwdG8gLW10aHVtYiAtUyIKKyAgICBub3QgZ3JlcCAtRSAnYWVzWzAtOWEtel0rLlswLTldXHMqW3F2XScgJHtCVUlMVElOX1NSQ19QQVRIfS9hZXNjZS5vCiAgICAgbXNnICJjbGFuZywgdGVzdCBhYXJjaDY0IGNyeXB0byBpbnN0cnVjdGlvbnMgbm90IGJ1aWx0IgotICAgIG1ha2UgLUIgbGlicmFyeS9hZXNjZS5vIENDPWNsYW5nIENGTEFHUz0iLS10YXJnZXQ9YWFyY2g2NC1saW51eC1nbnUgLW1hcmNoPWFybXY4LWEgLVMiCi0gICAgbm90IGdyZXAgLUUgJ2Flc1thLXpdK1xzKltxdl0nIGxpYnJhcnkvYWVzY2UubworICAgIG1ha2UgLUIgbGlicmFyeS8uLi8ke0JVSUxUSU5fU1JDX1BBVEh9L2Flc2NlLm8gQ0M9Y2xhbmcgQ0ZMQUdTPSItLXRhcmdldD1hYXJjaDY0LWxpbnV4LWdudSAtbWFyY2g9YXJtdjgtYSAtUyIKKyAgICBub3QgZ3JlcCAtRSAnYWVzW2Etel0rXHMqW3F2XScgJHtCVUlMVElOX1NSQ19QQVRIfS9hZXNjZS5vCiB9CiAKIHN1cHBvcnRfYnVpbGRfc2hhX2FybWNlKCkgewpAQCAtNDc4MCwzMCArNDY3NCwzMCBAQAogICAgICMgVGVzdCB2YXJpYXRpb25zIG9mIFNIQTI1NiBBcm12OCBjcnlwdG8gZXh0ZW5zaW9ucwogICAgIHNjcmlwdHMvY29uZmlnLnB5IHNldCBNQkVEVExTX1NIQTI1Nl9VU0VfQVJNVjhfQV9DUllQVE9fT05MWQogICAgICAgICBtc2cgIk1CRURUTFNfU0hBMjU2X1VTRV9BUk1WOF9BX0NSWVBUT19PTkxZIGNsYW5nLCBhYXJjaDY0IgotICAgICAgICBtYWtlIC1CIGxpYnJhcnkvc2hhMjU2Lm8gQ0M9Y2xhbmcgQ0ZMQUdTPSItLXRhcmdldD1hYXJjaDY0LWxpbnV4LWdudSAtbWFyY2g9YXJtdjgtYSIKKyAgICAgICAgbWFrZSAtQiBsaWJyYXJ5Ly4uLyR7QlVJTFRJTl9TUkNfUEFUSH0vc2hhMjU2Lm8gQ0M9Y2xhbmcgQ0ZMQUdTPSItLXRhcmdldD1hYXJjaDY0LWxpbnV4LWdudSAtbWFyY2g9YXJtdjgtYSIKICAgICAgICAgbXNnICJNQkVEVExTX1NIQTI1Nl9VU0VfQVJNVjhfQV9DUllQVE9fT05MWSBjbGFuZywgYXJtIgotICAgICAgICBtYWtlIC1CIGxpYnJhcnkvc2hhMjU2Lm8gQ0M9Y2xhbmcgQ0ZMQUdTPSItLXRhcmdldD1hcm0tbGludXgtZ251ZWFiaWhmIC1tY3B1PWNvcnRleC1hNzIrY3J5cHRvIC1tYXJtIgorICAgICAgICBtYWtlIC1CIGxpYnJhcnkvLi4vJHtCVUlMVElOX1NSQ19QQVRIfS9zaGEyNTYubyBDQz1jbGFuZyBDRkxBR1M9Ii0tdGFyZ2V0PWFybS1saW51eC1nbnVlYWJpaGYgLW1jcHU9Y29ydGV4LWE3MitjcnlwdG8gLW1hcm0iCiAgICAgc2NyaXB0cy9jb25maWcucHkgdW5zZXQgTUJFRFRMU19TSEEyNTZfVVNFX0FSTVY4X0FfQ1JZUFRPX09OTFkKIAogCiAgICAgIyB0ZXN0IHRoZSBkZXByZWNhdGVkIGZvcm0gb2YgdGhlIGNvbmZpZyBvcHRpb24KICAgICBzY3JpcHRzL2NvbmZpZy5weSBzZXQgTUJFRFRMU19TSEEyNTZfVVNFX0E2NF9DUllQVE9fT05MWQogICAgICAgICBtc2cgIk1CRURUTFNfU0hBMjU2X1VTRV9BNjRfQ1JZUFRPX09OTFkgY2xhbmcsIHRodW1iIgotICAgICAgICBtYWtlIC1CIGxpYnJhcnkvc2hhMjU2Lm8gQ0M9Y2xhbmcgQ0ZMQUdTPSItLXRhcmdldD1hcm0tbGludXgtZ251ZWFiaWhmIC1tY3B1PWNvcnRleC1hMzIrY3J5cHRvIC1tdGh1bWIiCisgICAgICAgIG1ha2UgLUIgbGlicmFyeS8uLi8ke0JVSUxUSU5fU1JDX1BBVEh9L3NoYTI1Ni5vIENDPWNsYW5nIENGTEFHUz0iLS10YXJnZXQ9YXJtLWxpbnV4LWdudWVhYmloZiAtbWNwdT1jb3J0ZXgtYTMyK2NyeXB0byAtbXRodW1iIgogICAgIHNjcmlwdHMvY29uZmlnLnB5IHVuc2V0IE1CRURUTFNfU0hBMjU2X1VTRV9BNjRfQ1JZUFRPX09OTFkKIAogICAgIHNjcmlwdHMvY29uZmlnLnB5IHNldCBNQkVEVExTX1NIQTI1Nl9VU0VfQVJNVjhfQV9DUllQVE9fSUZfUFJFU0VOVAogICAgICAgICBtc2cgIk1CRURUTFNfU0hBMjU2X1VTRV9BUk1WOF9BX0NSWVBUT19JRl9QUkVTRU5UIGNsYW5nLCBhYXJjaDY0IgotICAgICAgICBtYWtlIC1CIGxpYnJhcnkvc2hhMjU2Lm8gQ0M9Y2xhbmcgQ0ZMQUdTPSItLXRhcmdldD1hYXJjaDY0LWxpbnV4LWdudSAtbWFyY2g9YXJtdjgtYSIKKyAgICAgICAgbWFrZSAtQiBsaWJyYXJ5Ly4uLyR7QlVJTFRJTl9TUkNfUEFUSH0vc2hhMjU2Lm8gQ0M9Y2xhbmcgQ0ZMQUdTPSItLXRhcmdldD1hYXJjaDY0LWxpbnV4LWdudSAtbWFyY2g9YXJtdjgtYSIKICAgICBzY3JpcHRzL2NvbmZpZy5weSB1bnNldCBNQkVEVExTX1NIQTI1Nl9VU0VfQVJNVjhfQV9DUllQVE9fSUZfUFJFU0VOVAogCiAKICAgICAjIHRlc3QgdGhlIGRlcHJlY2F0ZWQgZm9ybSBvZiB0aGUgY29uZmlnIG9wdGlvbgogICAgIHNjcmlwdHMvY29uZmlnLnB5IHNldCBNQkVEVExTX1NIQTI1Nl9VU0VfQTY0X0NSWVBUT19JRl9QUkVTRU5UCiAgICAgICAgIG1zZyAiTUJFRFRMU19TSEEyNTZfVVNFX0E2NF9DUllQVE9fSUZfUFJFU0VOVCBjbGFuZywgYXJtIgotICAgICAgICBtYWtlIC1CIGxpYnJhcnkvc2hhMjU2Lm8gQ0M9Y2xhbmcgQ0ZMQUdTPSItLXRhcmdldD1hcm0tbGludXgtZ251ZWFiaWhmIC1tY3B1PWNvcnRleC1hNzIrY3J5cHRvIC1tYXJtIC1zdGQ9Yzk5IgorICAgICAgICBtYWtlIC1CIGxpYnJhcnkvLi4vJHtCVUlMVElOX1NSQ19QQVRIfS9zaGEyNTYubyBDQz1jbGFuZyBDRkxBR1M9Ii0tdGFyZ2V0PWFybS1saW51eC1nbnVlYWJpaGYgLW1jcHU9Y29ydGV4LWE3MitjcnlwdG8gLW1hcm0gLXN0ZD1jOTkiCiAgICAgICAgIG1zZyAiTUJFRFRMU19TSEEyNTZfVVNFX0E2NF9DUllQVE9fSUZfUFJFU0VOVCBjbGFuZywgdGh1bWIiCi0gICAgICAgIG1ha2UgLUIgbGlicmFyeS9zaGEyNTYubyBDQz1jbGFuZyBDRkxBR1M9Ii0tdGFyZ2V0PWFybS1saW51eC1nbnVlYWJpaGYgLW1jcHU9Y29ydGV4LWEzMitjcnlwdG8gLW10aHVtYiIKKyAgICAgICAgbWFrZSAtQiBsaWJyYXJ5Ly4uLyR7QlVJTFRJTl9TUkNfUEFUSH0vc2hhMjU2Lm8gQ0M9Y2xhbmcgQ0ZMQUdTPSItLXRhcmdldD1hcm0tbGludXgtZ251ZWFiaWhmIC1tY3B1PWNvcnRleC1hMzIrY3J5cHRvIC1tdGh1bWIiCiAgICAgc2NyaXB0cy9jb25maWcucHkgdW5zZXQgTUJFRFRMU19TSEEyNTZfVVNFX0E2NF9DUllQVE9fSUZfUFJFU0VOVAogCiAKQEAgLTQ4MTEsNTAgKzQ3MDUsMzIgQEAKICAgICBmb3Igb3B0IGluIE1CRURUTFNfU0hBMjU2X1VTRV9BUk1WOF9BX0NSWVBUT19PTkxZIE1CRURUTFNfU0hBMjU2X1VTRV9BUk1WOF9BX0NSWVBUT19JRl9QUkVTRU5UOyBkbwogICAgICAgICBzY3JpcHRzL2NvbmZpZy5weSBzZXQgJHtvcHR9CiAgICAgICAgICAgICBtc2cgIiR7b3B0fSBjbGFuZywgdGVzdCBBMzIgY3J5cHRvIGluc3RydWN0aW9ucyBidWlsdCIKLSAgICAgICAgICAgIG1ha2UgLUIgbGlicmFyeS9zaGEyNTYubyBDQz1jbGFuZyBDRkxBR1M9Ii0tdGFyZ2V0PWFybS1saW51eC1nbnVlYWJpaGYgLW1jcHU9Y29ydGV4LWE3MitjcnlwdG8gLW1hcm0gLVMiCi0gICAgICAgICAgICBncmVwIC1FICdzaGEyNTZbYS16MC05XSsuMzJccytbcXZdJyBsaWJyYXJ5L3NoYTI1Ni5vCisgICAgICAgICAgICBtYWtlIC1CIGxpYnJhcnkvLi4vJHtCVUlMVElOX1NSQ19QQVRIfS9zaGEyNTYubyBDQz1jbGFuZyBDRkxBR1M9Ii0tdGFyZ2V0PWFybS1saW51eC1nbnVlYWJpaGYgLW1jcHU9Y29ydGV4LWE3MitjcnlwdG8gLW1hcm0gLVMiCisgICAgICAgICAgICBncmVwIC1FICdzaGEyNTZbYS16MC05XSsuMzJccytbcXZdJyAke0JVSUxUSU5fU1JDX1BBVEh9L3NoYTI1Ni5vCiAKICAgICAgICAgICAgIG1zZyAiJHtvcHR9IGNsYW5nLCB0ZXN0IFQzMiBjcnlwdG8gaW5zdHJ1Y3Rpb25zIGJ1aWx0IgotICAgICAgICAgICAgbWFrZSAtQiBsaWJyYXJ5L3NoYTI1Ni5vIENDPWNsYW5nIENGTEFHUz0iLS10YXJnZXQ9YXJtLWxpbnV4LWdudWVhYmloZiAtbWNwdT1jb3J0ZXgtYTMyK2NyeXB0byAtbXRodW1iIC1TIgotICAgICAgICAgICAgZ3JlcCAtRSAnc2hhMjU2W2EtejAtOV0rLjMyXHMrW3F2XScgbGlicmFyeS9zaGEyNTYubworICAgICAgICAgICAgbWFrZSAtQiBsaWJyYXJ5Ly4uLyR7QlVJTFRJTl9TUkNfUEFUSH0vc2hhMjU2Lm8gQ0M9Y2xhbmcgQ0ZMQUdTPSItLXRhcmdldD1hcm0tbGludXgtZ251ZWFiaWhmIC1tY3B1PWNvcnRleC1hMzIrY3J5cHRvIC1tdGh1bWIgLVMiCisgICAgICAgICAgICBncmVwIC1FICdzaGEyNTZbYS16MC05XSsuMzJccytbcXZdJyAke0JVSUxUSU5fU1JDX1BBVEh9L3NoYTI1Ni5vCiAKICAgICAgICAgICAgIG1zZyAiJHtvcHR9IGNsYW5nLCB0ZXN0IGFhcmNoNjQgY3J5cHRvIGluc3RydWN0aW9ucyBidWlsdCIKLSAgICAgICAgICAgIG1ha2UgLUIgbGlicmFyeS9zaGEyNTYubyBDQz1jbGFuZyBDRkxBR1M9Ii0tdGFyZ2V0PWFhcmNoNjQtbGludXgtZ251IC1tYXJjaD1hcm12OC1hIC1TIgotICAgICAgICAgICAgZ3JlcCAtRSAnc2hhMjU2W2EtejAtOV0rXHMrW3F2XScgbGlicmFyeS9zaGEyNTYubworICAgICAgICAgICAgbWFrZSAtQiBsaWJyYXJ5Ly4uLyR7QlVJTFRJTl9TUkNfUEFUSH0vc2hhMjU2Lm8gQ0M9Y2xhbmcgQ0ZMQUdTPSItLXRhcmdldD1hYXJjaDY0LWxpbnV4LWdudSAtbWFyY2g9YXJtdjgtYSAtUyIKKyAgICAgICAgICAgIGdyZXAgLUUgJ3NoYTI1NlthLXowLTldK1xzK1txdl0nICR7QlVJTFRJTl9TUkNfUEFUSH0vc2hhMjU2Lm8KICAgICAgICAgc2NyaXB0cy9jb25maWcucHkgdW5zZXQgJHtvcHR9CiAgICAgZG9uZQogCiAKICAgICAjIGV4YW1pbmUgdGhlIGRpc2Fzc2VtYmx5IGZvciBhYnNlbmNlIG9mIFNIQSBpbnN0cnVjdGlvbnMKICAgICBtc2cgImNsYW5nLCB0ZXN0IEEzMiBjcnlwdG8gaW5zdHJ1Y3Rpb25zIG5vdCBidWlsdCIKLSAgICBtYWtlIC1CIGxpYnJhcnkvc2hhMjU2Lm8gQ0M9Y2xhbmcgQ0ZMQUdTPSItLXRhcmdldD1hcm0tbGludXgtZ251ZWFiaWhmIC1tY3B1PWNvcnRleC1hNzIrY3J5cHRvIC1tYXJtIC1TIgotICAgIG5vdCBncmVwIC1FICdzaGEyNTZbYS16MC05XSsuMzJccytbcXZdJyBsaWJyYXJ5L3NoYTI1Ni5vCisgICAgbWFrZSAtQiBsaWJyYXJ5Ly4uLyR7QlVJTFRJTl9TUkNfUEFUSH0vc2hhMjU2Lm8gQ0M9Y2xhbmcgQ0ZMQUdTPSItLXRhcmdldD1hcm0tbGludXgtZ251ZWFiaWhmIC1tY3B1PWNvcnRleC1hNzIrY3J5cHRvIC1tYXJtIC1TIgorICAgIG5vdCBncmVwIC1FICdzaGEyNTZbYS16MC05XSsuMzJccytbcXZdJyAke0JVSUxUSU5fU1JDX1BBVEh9L3NoYTI1Ni5vCiAKICAgICBtc2cgImNsYW5nLCB0ZXN0IFQzMiBjcnlwdG8gaW5zdHJ1Y3Rpb25zIG5vdCBidWlsdCIKLSAgICBtYWtlIC1CIGxpYnJhcnkvc2hhMjU2Lm8gQ0M9Y2xhbmcgQ0ZMQUdTPSItLXRhcmdldD1hcm0tbGludXgtZ251ZWFiaWhmIC1tY3B1PWNvcnRleC1hMzIrY3J5cHRvIC1tdGh1bWIgLVMiCi0gICAgbm90IGdyZXAgLUUgJ3NoYTI1NlthLXowLTldKy4zMlxzK1txdl0nIGxpYnJhcnkvc2hhMjU2Lm8KKyAgICBtYWtlIC1CIGxpYnJhcnkvLi4vJHtCVUlMVElOX1NSQ19QQVRIfS9zaGEyNTYubyBDQz1jbGFuZyBDRkxBR1M9Ii0tdGFyZ2V0PWFybS1saW51eC1nbnVlYWJpaGYgLW1jcHU9Y29ydGV4LWEzMitjcnlwdG8gLW10aHVtYiAtUyIKKyAgICBub3QgZ3JlcCAtRSAnc2hhMjU2W2EtejAtOV0rLjMyXHMrW3F2XScgJHtCVUlMVElOX1NSQ19QQVRIfS9zaGEyNTYubwogCiAgICAgbXNnICJjbGFuZywgdGVzdCBhYXJjaDY0IGNyeXB0byBpbnN0cnVjdGlvbnMgbm90IGJ1aWx0IgotICAgIG1ha2UgLUIgbGlicmFyeS9zaGEyNTYubyBDQz1jbGFuZyBDRkxBR1M9Ii0tdGFyZ2V0PWFhcmNoNjQtbGludXgtZ251IC1tYXJjaD1hcm12OC1hIC1TIgotICAgIG5vdCBncmVwIC1FICdzaGEyNTZbYS16MC05XStccytbcXZdJyBsaWJyYXJ5L3NoYTI1Ni5vCi19Ci0KLSMgRm9yIHRpbWViZWluZywgbm8gVklBIFBhZGxvY2sgcGxhdGZvcm0gYXZhaWxhYmxlLgotY29tcG9uZW50X2J1aWxkX2Flc192aWFfcGFkbG9jayAoKSB7Ci0KLSAgICBtc2cgIkFFUzpWSUEgUGFkTG9jaywgYnVpbGQgd2l0aCBkZWZhdWx0IGNvbmZpZ3VyYXRpb24uIgotICAgIHNjcmlwdHMvY29uZmlnLnB5IHVuc2V0IE1CRURUTFNfQUVTTklfQwotICAgIHNjcmlwdHMvY29uZmlnLnB5IHNldCBNQkVEVExTX1BBRExPQ0tfQwotICAgIHNjcmlwdHMvY29uZmlnLnB5IHVuc2V0IE1CRURUTFNfQUVTX1VTRV9IQVJEV0FSRV9PTkxZCi0gICAgbWFrZSBDQz1nY2MgQ0ZMQUdTPSIkQVNBTl9DRkxBR1MgLW0zMiIgTERGTEFHUz0iLW0zMiAkQVNBTl9DRkxBR1MiCi0gICAgZ3JlcCAtcSBtYmVkdGxzX3BhZGxvY2tfaGFzX3N1cHBvcnQgLi9wcm9ncmFtcy90ZXN0L3NlbGZ0ZXN0Ci0KLX0KLQotc3VwcG9ydF9idWlsZF9hZXNfdmlhX3BhZGxvY2tfb25seSAoKSB7Ci0gICAgKCBbICIkTUJFRFRMU19URVNUX1BMQVRGT1JNIiA9PSAiTGludXgteDg2XzY0IiBdIHx8IFwKLSAgICAgICAgWyAiJE1CRURUTFNfVEVTVF9QTEFURk9STSIgPT0gIkxpbnV4LWFtZDY0IiBdICkgJiYgXAotICAgIFsgImBkcGtnIC0tcHJpbnQtZm9yZWlnbi1hcmNoaXRlY3R1cmVzYCIgPT0gImkzODYiIF0KKyAgICBtYWtlIC1CIGxpYnJhcnkvLi4vJHtCVUlMVElOX1NSQ19QQVRIfS9zaGEyNTYubyBDQz1jbGFuZyBDRkxBR1M9Ii0tdGFyZ2V0PWFhcmNoNjQtbGludXgtZ251IC1tYXJjaD1hcm12OC1hIC1TIgorICAgIG5vdCBncmVwIC1FICdzaGEyNTZbYS16MC05XStccytbcXZdJyAke0JVSUxUSU5fU1JDX1BBVEh9L3NoYTI1Ni5vCiB9CiAKIHN1cHBvcnRfYnVpbGRfYWVzX2Flc2NlX2FybWNjICgpIHsKQEAgLTQ4NjQsNyArNDc0MCw2IEBACiBjb21wb25lbnRfdGVzdF9hZXNfb25seV8xMjhfYml0X2tleXMgKCkgewogICAgIG1zZyAiYnVpbGQ6IGRlZmF1bHQgY29uZmlnICsgQUVTX09OTFlfMTI4X0JJVF9LRVlfTEVOR1RIIgogICAgIHNjcmlwdHMvY29uZmlnLnB5IHNldCBNQkVEVExTX0FFU19PTkxZXzEyOF9CSVRfS0VZX0xFTkdUSAotICAgIHNjcmlwdHMvY29uZmlnLnB5IHVuc2V0IE1CRURUTFNfUEFETE9DS19DCiAKICAgICBtYWtlIENGTEFHUz0nLU8yIC1XZXJyb3IgLVdhbGwgLVdleHRyYScKIApAQCAtNDg3Niw3ICs0NzUxLDYgQEAKICAgICBtc2cgImJ1aWxkOiBkZWZhdWx0IGNvbmZpZyArIEFFU19PTkxZXzEyOF9CSVRfS0VZX0xFTkdUSCAtIENUUl9EUkJHX0MiCiAgICAgc2NyaXB0cy9jb25maWcucHkgc2V0IE1CRURUTFNfQUVTX09OTFlfMTI4X0JJVF9LRVlfTEVOR1RICiAgICAgc2NyaXB0cy9jb25maWcucHkgdW5zZXQgTUJFRFRMU19DVFJfRFJCR19DCi0gICAgc2NyaXB0cy9jb25maWcucHkgdW5zZXQgTUJFRFRMU19QQURMT0NLX0MKIAogICAgIG1ha2UgQ0M9Y2xhbmcgQ0ZMQUdTPSctV2Vycm9yIC1XYWxsIC1XZXh0cmEnCiAKQEAgLTQ4ODcsNyArNDc2MSw2IEBACiBjb21wb25lbnRfdGVzdF9hZXNfb25seV8xMjhfYml0X2tleXNfaGF2ZV9idWlsdGlucyAoKSB7CiAgICAgbXNnICJidWlsZDogZGVmYXVsdCBjb25maWcgKyBBRVNfT05MWV8xMjhfQklUX0tFWV9MRU5HVEggLSBBRVNOSV9DIC0gQUVTQ0VfQyIKICAgICBzY3JpcHRzL2NvbmZpZy5weSBzZXQgTUJFRFRMU19BRVNfT05MWV8xMjhfQklUX0tFWV9MRU5HVEgKLSAgICBzY3JpcHRzL2NvbmZpZy5weSB1bnNldCBNQkVEVExTX1BBRExPQ0tfQwogICAgIHNjcmlwdHMvY29uZmlnLnB5IHVuc2V0IE1CRURUTFNfQUVTTklfQwogICAgIHNjcmlwdHMvY29uZmlnLnB5IHVuc2V0IE1CRURUTFNfQUVTQ0VfQwogCkBAIC00OTAzLDcgKzQ3NzYsNiBAQAogY29tcG9uZW50X3Rlc3RfZ2NtX2xhcmdldGFibGUgKCkgewogICAgIG1zZyAiYnVpbGQ6IGRlZmF1bHQgY29uZmlnICsgR0NNX0xBUkdFX1RBQkxFIC0gQUVTTklfQyAtIEFFU0NFX0MiCiAgICAgc2NyaXB0cy9jb25maWcucHkgc2V0IE1CRURUTFNfR0NNX0xBUkdFX1RBQkxFCi0gICAgc2NyaXB0cy9jb25maWcucHkgdW5zZXQgTUJFRFRMU19QQURMT0NLX0MKICAgICBzY3JpcHRzL2NvbmZpZy5weSB1bnNldCBNQkVEVExTX0FFU05JX0MKICAgICBzY3JpcHRzL2NvbmZpZy5weSB1bnNldCBNQkVEVExTX0FFU0NFX0MKIApAQCAtNDk4MCwxMyArNDg1MiwxMyBAQAogICAgIG1ha2UgQ0ZMQUdTPSItTzIgJGNmbGFncyIgTERGTEFHUz0iJGxkZmxhZ3MiCiAKICAgICAjIE1ha2Ugc3VyZSB3ZSBkb24ndCBoYXZlIG1iZWR0bHNfeHh4X3NldGtleV9kZWMgaW4gQUVTL0FSSUEvQ0FNRUxMSUEKLSAgICBub3QgZ3JlcCBtYmVkdGxzX2Flc19zZXRrZXlfZGVjIGxpYnJhcnkvYWVzLm8KLSAgICBub3QgZ3JlcCBtYmVkdGxzX2FyaWFfc2V0a2V5X2RlYyBsaWJyYXJ5L2FyaWEubwotICAgIG5vdCBncmVwIG1iZWR0bHNfY2FtZWxsaWFfc2V0a2V5X2RlYyBsaWJyYXJ5L2NhbWVsbGlhLm8KKyAgICBub3QgZ3JlcCBtYmVkdGxzX2Flc19zZXRrZXlfZGVjICR7QlVJTFRJTl9TUkNfUEFUSH0vYWVzLm8KKyAgICBub3QgZ3JlcCBtYmVkdGxzX2FyaWFfc2V0a2V5X2RlYyAke0JVSUxUSU5fU1JDX1BBVEh9L2FyaWEubworICAgIG5vdCBncmVwIG1iZWR0bHNfY2FtZWxsaWFfc2V0a2V5X2RlYyAke0JVSUxUSU5fU1JDX1BBVEh9L2NhbWVsbGlhLm8KICAgICAjIE1ha2Ugc3VyZSB3ZSBkb24ndCBoYXZlIG1iZWR0bHNfaW50ZXJuYWxfYWVzX2RlY3J5cHQgaW4gQUVTCi0gICAgbm90IGdyZXAgbWJlZHRsc19pbnRlcm5hbF9hZXNfZGVjcnlwdCBsaWJyYXJ5L2Flcy5vCisgICAgbm90IGdyZXAgbWJlZHRsc19pbnRlcm5hbF9hZXNfZGVjcnlwdCAke0JVSUxUSU5fU1JDX1BBVEh9L2Flcy5vCiAgICAgIyBNYWtlIHN1cmUgd2UgZG9uJ3QgaGF2ZSBtYmVkdGxzX2Flc25pX2ludmVyc2Vfa2V5IGluIEFFU05JCi0gICAgbm90IGdyZXAgbWJlZHRsc19hZXNuaV9pbnZlcnNlX2tleSBsaWJyYXJ5L2Flc25pLm8KKyAgICBub3QgZ3JlcCBtYmVkdGxzX2Flc25pX2ludmVyc2Vfa2V5ICR7QlVJTFRJTl9TUkNfUEFUSH0vYWVzbmkubwogCiAgICAgbXNnICJ0ZXN0OiBkZWZhdWx0IGNvbmZpZyArIEJMT0NLX0NJUEhFUl9OT19ERUNSWVBUJHtzZXRfb3B0czorICsgJHNldF9vcHRzfSR7dW5zZXRfb3B0czorIC0gJHVuc2V0X29wdHN9IHdpdGggJGNmbGFncyR7bGRmbGFnczorLCAkbGRmbGFnc30iCiAgICAgbWFrZSB0ZXN0CkBAIC01MDg3LDE0ICs0OTU5LDE0IEBACiAgICAgYXJtYzZfYnVpbGRfdGVzdCAiLU8xIC0tdGFyZ2V0PWFhcmNoNjQtYXJtLW5vbmUtZWFiaSAtbWFyY2g9YXJtdjgtYStjcnlwdG8gLVdlcnJvciAtV2FsbCAtV2V4dHJhIgogCiAgICAgIyBNYWtlIHN1cmUgd2UgZG9uJ3QgaGF2ZSBtYmVkdGxzX3h4eF9zZXRrZXlfZGVjIGluIEFFUy9BUklBL0NBTUVMTElBCi0gICAgbm90IGdyZXAgbWJlZHRsc19hZXNfc2V0a2V5X2RlYyBsaWJyYXJ5L2Flcy5vCi0gICAgbm90IGdyZXAgbWJlZHRsc19hcmlhX3NldGtleV9kZWMgbGlicmFyeS9hcmlhLm8KLSAgICBub3QgZ3JlcCBtYmVkdGxzX2NhbWVsbGlhX3NldGtleV9kZWMgbGlicmFyeS9jYW1lbGxpYS5vCisgICAgbm90IGdyZXAgbWJlZHRsc19hZXNfc2V0a2V5X2RlYyAke0JVSUxUSU5fU1JDX1BBVEh9L2Flcy5vCisgICAgbm90IGdyZXAgbWJlZHRsc19hcmlhX3NldGtleV9kZWMgJHtCVUlMVElOX1NSQ19QQVRIfS9hcmlhLm8KKyAgICBub3QgZ3JlcCBtYmVkdGxzX2NhbWVsbGlhX3NldGtleV9kZWMgJHtCVUlMVElOX1NSQ19QQVRIfS9jYW1lbGxpYS5vCiAgICAgIyBNYWtlIHN1cmUgd2UgZG9uJ3QgaGF2ZSBtYmVkdGxzX2ludGVybmFsX2Flc19kZWNyeXB0IGluIEFFUwotICAgIG5vdCBncmVwIG1iZWR0bHNfaW50ZXJuYWxfYWVzX2RlY3J5cHQgbGlicmFyeS9hZXMubworICAgIG5vdCBncmVwIG1iZWR0bHNfaW50ZXJuYWxfYWVzX2RlY3J5cHQgJHtCVUlMVElOX1NSQ19QQVRIfS9hZXMubwogICAgICMgTWFrZSBzdXJlIHdlIGRvbid0IGhhdmUgbWJlZHRsc19hZXNjZV9pbnZlcnNlX2tleSBhbmQgYWVzY2VfZGVjcnlwdF9ibG9jayBpbiBBRVNDRQotICAgIG5vdCBncmVwIG1iZWR0bHNfYWVzY2VfaW52ZXJzZV9rZXkgbGlicmFyeS9hZXNjZS5vCi0gICAgbm90IGdyZXAgYWVzY2VfZGVjcnlwdF9ibG9jayBsaWJyYXJ5L2Flc2NlLm8KKyAgICBub3QgZ3JlcCBtYmVkdGxzX2Flc2NlX2ludmVyc2Vfa2V5ICR7QlVJTFRJTl9TUkNfUEFUSH0vYWVzY2UubworICAgIG5vdCBncmVwIGFlc2NlX2RlY3J5cHRfYmxvY2sgJHtCVUlMVElOX1NSQ19QQVRIfS9hZXNjZS5vCiB9CiAKIGNvbXBvbmVudF90ZXN0X2N0cl9kcmJnX2Flc18yNTZfc2hhXzI1NiAoKSB7CkBAIC01MzAxLDcgKzUxNzMsNiBAQAogICAgIG1zZyAiYnVpbGQ6IGkzODYsIG1ha2UsIGdjYywgbm8gYXNtIChBU2FuIGJ1aWxkKSIgIyB+IDMwcwogICAgIHNjcmlwdHMvY29uZmlnLnB5IGZ1bGwKICAgICBzY3JpcHRzL2NvbmZpZy5weSB1bnNldCBNQkVEVExTX0hBVkVfQVNNCi0gICAgc2NyaXB0cy9jb25maWcucHkgdW5zZXQgTUJFRFRMU19QQURMT0NLX0MKICAgICBzY3JpcHRzL2NvbmZpZy5weSB1bnNldCBNQkVEVExTX0FFU05JX0MgIyBBRVNOSSBmb3IgMzItYml0IGlzIHRlc3RlZCBpbiB0ZXN0X2Flc25pX20zMgogICAgIG1ha2UgQ0M9Z2NjIENGTEFHUz0iJEFTQU5fQ0ZMQUdTIC1tMzIiIExERkxBR1M9Ii1tMzIgJEFTQU5fQ0ZMQUdTIgogCkBAIC01MzgyLDcgKzUyNTMsNiBAQAogICAgIG1zZyAiYnVpbGQ6IGdjYywgZm9yY2UgMzItYml0IGJpZ251bSBsaW1icyIKICAgICBzY3JpcHRzL2NvbmZpZy5weSB1bnNldCBNQkVEVExTX0hBVkVfQVNNCiAgICAgc2NyaXB0cy9jb25maWcucHkgdW5zZXQgTUJFRFRMU19BRVNOSV9DCi0gICAgc2NyaXB0cy9jb25maWcucHkgdW5zZXQgTUJFRFRMU19QQURMT0NLX0MKICAgICBzY3JpcHRzL2NvbmZpZy5weSB1bnNldCBNQkVEVExTX0FFU0NFX0MKICAgICBtYWtlIENDPWdjYyBDRkxBR1M9Jy1PMiAtV2Vycm9yIC1XYWxsIC1XZXh0cmEgLURNQkVEVExTX0hBVkVfSU5UMzInCiAKQEAgLTUzOTQsNyArNTI2NCw2IEBACiAgICAgbXNnICJidWlsZDogZ2NjLCBmb3JjZSA2NC1iaXQgYmlnbnVtIGxpbWJzIgogICAgIHNjcmlwdHMvY29uZmlnLnB5IHVuc2V0IE1CRURUTFNfSEFWRV9BU00KICAgICBzY3JpcHRzL2NvbmZpZy5weSB1bnNldCBNQkVEVExTX0FFU05JX0MKLSAgICBzY3JpcHRzL2NvbmZpZy5weSB1bnNldCBNQkVEVExTX1BBRExPQ0tfQwogICAgIHNjcmlwdHMvY29uZmlnLnB5IHVuc2V0IE1CRURUTFNfQUVTQ0VfQwogICAgIG1ha2UgQ0M9Z2NjIENGTEFHUz0nLU8yIC1XZXJyb3IgLVdhbGwgLVdleHRyYSAtRE1CRURUTFNfSEFWRV9JTlQ2NCcKIApAQCAtNTQwNiw3ICs1Mjc1LDYgQEAKICAgICBtc2cgImJ1aWxkOiBnY2MsIGZvcmNlIDMyLWJpdCBiaWdudW0gbGltYnMsIG5ldyBiaWdudW0gaW50ZXJmYWNlLCB0ZXN0IGhvb2tzIChBU2FuIGJ1aWxkKSIKICAgICBzY3JpcHRzL2NvbmZpZy5weSB1bnNldCBNQkVEVExTX0hBVkVfQVNNCiAgICAgc2NyaXB0cy9jb25maWcucHkgdW5zZXQgTUJFRFRMU19BRVNOSV9DCi0gICAgc2NyaXB0cy9jb25maWcucHkgdW5zZXQgTUJFRFRMU19QQURMT0NLX0MKICAgICBzY3JpcHRzL2NvbmZpZy5weSB1bnNldCBNQkVEVExTX0FFU0NFX0MKICAgICBzY3JpcHRzL2NvbmZpZy5weSBzZXQgTUJFRFRMU19URVNUX0hPT0tTCiAgICAgc2NyaXB0cy9jb25maWcucHkgc2V0IE1CRURUTFNfRUNQX1dJVEhfTVBJX1VJTlQKQEAgLTU0NzEsNiArNTMzOSw4IEBACiAKICAgICBtc2cgInNpemU6ICR7QVJNX05PTkVfRUFCSV9HQ0NfUFJFRklYfWdjYyAtTzEsIGJhcmVtZXRhbCtkZWJ1ZyIKICAgICAke0FSTV9OT05FX0VBQklfR0NDX1BSRUZJWH1zaXplIC10IGxpYnJhcnkvKi5vCisgICAgJHtBUk1fTk9ORV9FQUJJX0dDQ19QUkVGSVh9c2l6ZSAtdCAke1BTQV9DT1JFX1BBVEh9LyoubworICAgICR7QVJNX05PTkVfRUFCSV9HQ0NfUFJFRklYfXNpemUgLXQgJHtCVUlMVElOX1NSQ19QQVRIfS8qLm8KIH0KIAogY29tcG9uZW50X2J1aWxkX2FybV9saW51eF9nbnVlYWJpX2djY19hcm01dnRlICgpIHsKQEAgLTU0ODUsNiArNTM1NSw4IEBACiAKICAgICBtc2cgInNpemU6ICR7QVJNX0xJTlVYX0dOVUVBQklfR0NDX1BSRUZJWH1nY2MgLW1hcmNoPWFybXY1dGUgLU8xLCBiYXJlbWV0YWwrZGVidWciCiAgICAgJHtBUk1fTElOVVhfR05VRUFCSV9HQ0NfUFJFRklYfXNpemUgLXQgbGlicmFyeS8qLm8KKyAgICAke0FSTV9MSU5VWF9HTlVFQUJJX0dDQ19QUkVGSVh9c2l6ZSAtdCAke1BTQV9DT1JFX1BBVEh9LyoubworICAgICR7QVJNX0xJTlVYX0dOVUVBQklfR0NDX1BSRUZJWH1zaXplIC10ICR7QlVJTFRJTl9TUkNfUEFUSH0vKi5vCiB9CiBzdXBwb3J0X2J1aWxkX2FybV9saW51eF9nbnVlYWJpX2djY19hcm01dnRlICgpIHsKICAgICB0eXBlICR7QVJNX0xJTlVYX0dOVUVBQklfR0NDX1BSRUZJWH1nY2MgPi9kZXYvbnVsbCAyPiYxCkBAIC01NTAwLDYgKzUzNzIsOCBAQAogCiAgICAgbXNnICJzaXplOiAke0FSTV9OT05FX0VBQklfR0NDX1BSRUZJWH1nY2MgLW1hcmNoPWFybXY1dGUgLU8xLCBiYXJlbWV0YWwrZGVidWciCiAgICAgJHtBUk1fTk9ORV9FQUJJX0dDQ19QUkVGSVh9c2l6ZSAtdCBsaWJyYXJ5LyoubworICAgICR7QVJNX05PTkVfRUFCSV9HQ0NfUFJFRklYfXNpemUgLXQgJHtQU0FfQ09SRV9QQVRIfS8qLm8KKyAgICAke0FSTV9OT05FX0VBQklfR0NDX1BSRUZJWH1zaXplIC10ICR7QlVJTFRJTl9TUkNfUEFUSH0vKi5vCiB9CiAKIGNvbXBvbmVudF9idWlsZF9hcm1fbm9uZV9lYWJpX2djY19tMHBsdXMgKCkgewpAQCAtNTUwOSw2ICs1MzgzLDggQEAKIAogICAgIG1zZyAic2l6ZTogJHtBUk1fTk9ORV9FQUJJX0dDQ19QUkVGSVh9Z2NjIC1tdGh1bWIgLW1jcHU9Y29ydGV4LW0wcGx1cyAtT3MsIGJhcmVtZXRhbF9zaXplIgogICAgICR7QVJNX05PTkVfRUFCSV9HQ0NfUFJFRklYfXNpemUgLXQgbGlicmFyeS8qLm8KKyAgICAke0FSTV9OT05FX0VBQklfR0NDX1BSRUZJWH1zaXplIC10ICR7UFNBX0NPUkVfUEFUSH0vKi5vCisgICAgJHtBUk1fTk9ORV9FQUJJX0dDQ19QUkVGSVh9c2l6ZSAtdCAke0JVSUxUSU5fU1JDX1BBVEh9LyoubwogICAgIGZvciBsaWIgaW4gbGlicmFyeS8qLmE7IGRvCiAgICAgICAgIGVjaG8gIiRsaWI6IgogICAgICAgICAke0FSTV9OT05FX0VBQklfR0NDX1BSRUZJWH1zaXplIC10ICRsaWIgfCBncmVwIFRPVEFMUwpAQCAtNTUyMiw2ICs1Mzk4LDggQEAKICAgICBtYWtlIENDPSIke0FSTV9OT05FX0VBQklfR0NDX1BSRUZJWH1nY2MiIEFSPSIke0FSTV9OT05FX0VBQklfR0NDX1BSRUZJWH1hciIgTEQ9IiR7QVJNX05PTkVfRUFCSV9HQ0NfUFJFRklYfWxkIiBDRkxBR1M9Jy1zdGQ9Yzk5IC1XZXJyb3IgLVdhbGwgLVdleHRyYScgbGliCiAgICAgZWNobyAiQ2hlY2tpbmcgdGhhdCBzb2Z0d2FyZSA2NC1iaXQgZGl2aXNpb24gaXMgbm90IHJlcXVpcmVkIgogICAgIG5vdCBncmVwIF9fYWVhYmlfdWxkaXYgbGlicmFyeS8qLm8KKyAgICBub3QgZ3JlcCBfX2FlYWJpX3VsZGl2ICR7UFNBX0NPUkVfUEFUSH0vKi5vCisgICAgbm90IGdyZXAgX19hZWFiaV91bGRpdiAke0JVSUxUSU5fU1JDX1BBVEh9LyoubwogfQogCiBjb21wb25lbnRfYnVpbGRfYXJtX25vbmVfZWFiaV9nY2Nfbm9fNjRiaXRfbXVsdGlwbGljYXRpb24gKCkgewpAQCAtNTUzMSw2ICs1NDA5LDggQEAKICAgICBtYWtlIENDPSIke0FSTV9OT05FX0VBQklfR0NDX1BSRUZJWH1nY2MiIEFSPSIke0FSTV9OT05FX0VBQklfR0NDX1BSRUZJWH1hciIgTEQ9IiR7QVJNX05PTkVfRUFCSV9HQ0NfUFJFRklYfWxkIiBDRkxBR1M9Jy1zdGQ9Yzk5IC1XZXJyb3IgLU8xIC1tYXJjaD1hcm12Ni1tIC1tdGh1bWInIGxpYgogICAgIGVjaG8gIkNoZWNraW5nIHRoYXQgc29mdHdhcmUgNjQtYml0IG11bHRpcGxpY2F0aW9uIGlzIG5vdCByZXF1aXJlZCIKICAgICBub3QgZ3JlcCBfX2FlYWJpX2xtdWwgbGlicmFyeS8qLm8KKyAgICBub3QgZ3JlcCBfX2FlYWJpX2xtdWwgJHtQU0FfQ09SRV9QQVRIfS8qLm8KKyAgICBub3QgZ3JlcCBfX2FlYWJpX2xtdWwgJHtCVUlMVElOX1NSQ19QQVRIfS8qLm8KIH0KIAogY29tcG9uZW50X2J1aWxkX2FybV9jbGFuZ190aHVtYiAoKSB7CkBAIC01NTc1LDYgKzU0NTUsOCBAQAogCiAgICAgbXNnICJzaXplOiBBUk0gQ29tcGlsZXIgNSIKICAgICAiJEFSTUM1X0ZST01FTEYiIC16IGxpYnJhcnkvKi5vCisgICAgIiRBUk1DNV9GUk9NRUxGIiAteiAke1BTQV9DT1JFX1BBVEh9LyoubworICAgICIkQVJNQzVfRlJPTUVMRiIgLXogJHtCVUlMVElOX1NSQ19QQVRIfS8qLm8KIAogICAgICMgQ29tcGlsZSBtb3N0bHkgd2l0aCAtTzEgc2luY2Ugc29tZSBBcm0gaW5saW5lIGFzc2VtYmx5IGlzIGRpc2FibGVkIGZvciAtTzAuCiAKQEAgLTYxNjAsNjUgKzYwNDIsNjIgQEAKIH0KIAogY29tcG9uZW50X3Rlc3RfcHNhc2ltKCkgewotICAgIG1zZyAiYnVpbGQgbGlicmFyeSBmb3Igc2VydmVyIgorICAgIG1zZyAiYnVpbGQgc2VydmVyIGxpYnJhcnkgYW5kIGFwcGxpY2F0aW9uIgogICAgIHNjcmlwdHMvY29uZmlnLnB5IGNyeXB0bwotICAgIGhlbHBlcl9jcnlwdG9fY2xpZW50X2J1aWxkIHNlcnZlcgorICAgIGhlbHBlcl9wc2FzaW1fY29uZmlnIHNlcnZlcgorICAgIGhlbHBlcl9wc2FzaW1fYnVpbGQgc2VydmVyCiAKLSAgICBtc2cgImJ1aWxkIHNlcnZlciIKLSAgICBtYWtlIC1DIHRlc3RzL3BzYS1jbGllbnQtc2VydmVyL3BzYXNpbSBDRkxBR1M9IiRBU0FOX0NGTEFHUyIgTERGTEFHUz0iJEFTQU5fQ0ZMQUdTIiB0ZXN0L3BzYV9wYXJ0aXRpb24KLQotICAgICMgY2xlYW51cCgpIHdpbGwgcmVzdG9yZSBzb21lIGJhY2tlZC11cCBmaWxlcyB3aGljaCBpbmNsdWRlICRDT05GSUdfSCBhbmQKLSAgICAjICRDUllQVE9fQ09ORklHX0guIEJ1aWx0IGxpYnJhcmllcyB3ZXJlIGFscmVhZHkgY29waWVkIHRvIHBzYXNpbSBhdCB0aGlzCi0gICAgIyBwb2ludC4KLSAgICBjbGVhbnVwCisgICAgaGVscGVyX3BzYXNpbV9jbGVhbnVwX2JlZm9yZV9jbGllbnQKIAogICAgIG1zZyAiYnVpbGQgbGlicmFyeSBmb3IgY2xpZW50IgotICAgIGhlbHBlcl9jcnlwdG9fY2xpZW50X2J1aWxkIGNsaWVudAorICAgIGhlbHBlcl9wc2FzaW1fY29uZmlnIGNsaWVudAorICAgIGhlbHBlcl9wc2FzaW1fYnVpbGQgY2xpZW50CiAKLSAgICBtc2cgImJ1aWxkIHBzYXNpbSB0byB0ZXN0IHBzYV9jbGllbnQiCi0gICAgcm0gLWYgdGVzdHMvcHNhLWNsaWVudC1zZXJ2ZXIvcHNhc2ltL3Rlc3QvcHNhX2NsaWVudCAgICAgICAgIyBJbiBjYXNlIGxlZnQgYmVoaW5kCi0gICAgbWFrZSAtQyB0ZXN0cy9wc2EtY2xpZW50LXNlcnZlci9wc2FzaW0gQ0ZMQUdTPSIkQVNBTl9DRkxBR1MiIExERkxBR1M9IiRBU0FOX0NGTEFHUyIgdGVzdC9wc2FfY2xpZW50CisgICAgbXNnICJidWlsZCBiYXNpYyBwc2FzaW0gY2xpZW50IgorICAgIG1ha2UgLUMgdGVzdHMvcHNhLWNsaWVudC1zZXJ2ZXIvcHNhc2ltIENGTEFHUz0iJEFTQU5fQ0ZMQUdTIiBMREZMQUdTPSIkQVNBTl9DRkxBR1MiIHRlc3QvcHNhX2NsaWVudF9iYXNlCisgICAgbXNnICJ0ZXN0IGJhc2ljIHBzYXNpbSBjbGllbnQiCisgICAgdGVzdHMvcHNhLWNsaWVudC1zZXJ2ZXIvcHNhc2ltL3Rlc3QvcnVuX3Rlc3Quc2ggcHNhX2NsaWVudF9iYXNlCiAKLSAgICBtc2cgInRlc3QgcHNhc2ltIgotICAgIHRlc3RzL3BzYS1jbGllbnQtc2VydmVyL3BzYXNpbS90ZXN0L3J1bl90ZXN0LnNoCisgICAgbXNnICJidWlsZCBmdWxsIHBzYXNpbSBjbGllbnQiCisgICAgbWFrZSAtQyB0ZXN0cy9wc2EtY2xpZW50LXNlcnZlci9wc2FzaW0gQ0ZMQUdTPSIkQVNBTl9DRkxBR1MiIExERkxBR1M9IiRBU0FOX0NGTEFHUyIgdGVzdC9wc2FfY2xpZW50X2Z1bGwKKyAgICBtc2cgInRlc3QgZnVsbCBwc2FzaW0gY2xpZW50IgorICAgIHRlc3RzL3BzYS1jbGllbnQtc2VydmVyL3BzYXNpbS90ZXN0L3J1bl90ZXN0LnNoIHBzYV9jbGllbnRfZnVsbAogCi0KLSAgICBtc2cgImJ1aWxkIHBzYXNpbSB0byB0ZXN0IHBzYV9oYXNoX2NvbXB1dGUiCi0gICAgIyBEZWxldGUgdGhlIGV4ZWN1dGFibGUgdG8gZW5zdXJlIHdlIGJ1aWxkIHVzaW5nIHRoZSByaWdodCBNQUlOCi0gICAgcm0gdGVzdHMvcHNhLWNsaWVudC1zZXJ2ZXIvcHNhc2ltL3Rlc3QvcHNhX2NsaWVudAotICAgICMgQVBJIHVuZGVyIHRlc3Q6IHBzYV9oYXNoX2NvbXB1dGUoKQotICAgIG1ha2UgLUMgdGVzdHMvcHNhLWNsaWVudC1zZXJ2ZXIvcHNhc2ltIENGTEFHUz0iJEFTQU5fQ0ZMQUdTIiBMREZMQUdTPSIkQVNBTl9DRkxBR1MiIE1BSU49InNyYy9hdXRfcHNhX2hhc2hfY29tcHV0ZS5jIiB0ZXN0L3BzYV9jbGllbnQKLQotICAgIG1zZyAidGVzdCBwc2FzaW0gcnVubmluZyBwc2FfaGFzaF9jb21wdXRlIgotICAgIHRlc3RzL3BzYS1jbGllbnQtc2VydmVyL3BzYXNpbS90ZXN0L3J1bl90ZXN0LnNoCi0KLQotICAgICMgTmV4dCBBUElzIHVuZGVyIHRlc3Q6IHBzYV9oYXNoXyooKS4gVXNlIG91ciBjb3B5IG9mIHRoZSBQU0EgaGFzaCBleGFtcGxlLgotICAgIG1zZyAiYnVpbGQgcHNhc2ltIHRvIHRlc3QgYWxsIHBzYV9oYXNoXyogQVBJcyIKLSAgICAjIERlbGV0ZSB0aGUgZXhlY3V0YWJsZSB0byBlbnN1cmUgd2UgYnVpbGQgdXNpbmcgdGhlIHJpZ2h0IE1BSU4KLSAgICBybSB0ZXN0cy9wc2EtY2xpZW50LXNlcnZlci9wc2FzaW0vdGVzdC9wc2FfY2xpZW50Ci0gICAgbWFrZSAtQyB0ZXN0cy9wc2EtY2xpZW50LXNlcnZlci9wc2FzaW0gQ0ZMQUdTPSIkQVNBTl9DRkxBR1MiIExERkxBR1M9IiRBU0FOX0NGTEFHUyIgTUFJTj0ic3JjL2F1dF9wc2FfaGFzaC5jIiB0ZXN0L3BzYV9jbGllbnQKLQotICAgIG1zZyAidGVzdCBwc2FzaW0gcnVubmluZyBwc2FfaGFzaCBzYW1wbGUiCi0gICAgdGVzdHMvcHNhLWNsaWVudC1zZXJ2ZXIvcHNhc2ltL3Rlc3QvcnVuX3Rlc3Quc2gKLQotCi0gICAgIyBOZXh0IEFQSXMgdW5kZXIgdGVzdDogcHNhX2FlYWRfKigpLiBVc2Ugb3VyIGNvcHkgb2YgdGhlIFBTQSBhZWFkIGV4YW1wbGUuCi0gICAgbXNnICJidWlsZCBwc2FzaW0gdG8gdGVzdCBhbGwgcHNhX2FlYWRfKiBBUElzIgotICAgICMgRGVsZXRlIHRoZSBleGVjdXRhYmxlIHRvIGVuc3VyZSB3ZSBidWlsZCB1c2luZyB0aGUgcmlnaHQgTUFJTgotICAgIHJtIHRlc3RzL3BzYS1jbGllbnQtc2VydmVyL3BzYXNpbS90ZXN0L3BzYV9jbGllbnQKLSAgICBtYWtlIC1DIHRlc3RzL3BzYS1jbGllbnQtc2VydmVyL3BzYXNpbSBDRkxBR1M9IiRBU0FOX0NGTEFHUyIgTERGTEFHUz0iJEFTQU5fQ0ZMQUdTIiBNQUlOPSJzcmMvYXV0X3BzYV9hZWFkX2RlbW8uYyIgdGVzdC9wc2FfY2xpZW50Ci0KLSAgICBtc2cgInRlc3QgcHNhc2ltIHJ1bm5pbmcgcHNhX2FlYWRfZGVtbyBzYW1wbGUiCi0gICAgdGVzdHMvcHNhLWNsaWVudC1zZXJ2ZXIvcHNhc2ltL3Rlc3QvcnVuX3Rlc3Quc2ggYWVzMTI4LWdjbQotICAgIHRlc3RzL3BzYS1jbGllbnQtc2VydmVyL3BzYXNpbS90ZXN0L3J1bl90ZXN0LnNoIGFlczI1Ni1nY20KLSAgICB0ZXN0cy9wc2EtY2xpZW50LXNlcnZlci9wc2FzaW0vdGVzdC9ydW5fdGVzdC5zaCBhZXMxMjgtZ2NtXzgKLSAgICB0ZXN0cy9wc2EtY2xpZW50LXNlcnZlci9wc2FzaW0vdGVzdC9ydW5fdGVzdC5zaCBjaGFjaGFwb2x5Ci0KLSAgICBtc2cgImNsZWFuIHBzYXNpbSIKICAgICBtYWtlIC1DIHRlc3RzL3BzYS1jbGllbnQtc2VydmVyL3BzYXNpbSBjbGVhbgogfQogCitjb21wb25lbnRfdGVzdF9zdWl0ZV93aXRoX3BzYXNpbSgpCit7CisgICAgbXNnICJidWlsZCBzZXJ2ZXIgbGlicmFyeSBhbmQgYXBwbGljYXRpb24iCisgICAgaGVscGVyX3BzYXNpbV9jb25maWcgc2VydmVyCisgICAgIyBNb2RpZnkgc2VydmVyJ3MgbGlicmFyeSBjb25maWd1cmF0aW9uIGhlcmUgKGlmIG5lZWRlZCkKKyAgICBoZWxwZXJfcHNhc2ltX2J1aWxkIHNlcnZlcgorCisgICAgaGVscGVyX3BzYXNpbV9jbGVhbnVwX2JlZm9yZV9jbGllbnQKKworICAgIG1zZyAiYnVpbGQgY2xpZW50IGxpYnJhcnkiCisgICAgaGVscGVyX3BzYXNpbV9jb25maWcgY2xpZW50CisgICAgIyBQQUtFIGZ1bmN0aW9ucyBhcmUgc3RpbGwgdW5zdXBwb3J0ZWQgZnJvbSBQU0FTSU0KKyAgICBzY3JpcHRzL2NvbmZpZy5weSAtZiAkQ1JZUFRPX0NPTkZJR19IIHVuc2V0IFBTQV9XQU5UX0FMR19KUEFLRQorICAgIHNjcmlwdHMvY29uZmlnLnB5IHVuc2V0IE1CRURUTFNfS0VZX0VYQ0hBTkdFX0VDSlBBS0VfRU5BQkxFRAorICAgIGhlbHBlcl9wc2FzaW1fYnVpbGQgY2xpZW50CisKKyAgICBtc2cgImJ1aWxkIHRlc3Qgc3VpdGVzIgorICAgIG1ha2UgUFNBU0lNPTEgQ0ZMQUdTPSIkQVNBTl9DRkxBR1MiIExERkxBR1M9IiRBU0FOX0NGTEFHUyIgdGVzdHMKKworICAgIGhlbHBlcl9wc2FzaW1fc2VydmVyIHN0YXJ0CisKKyAgICAjIHBzYXNpbSB0YWtlcyBhbiBleHRyZW1lbHkgbG9uZyBleGVjdXRpb24gdGltZSBvbiBzb21lIHRlc3Qgc3VpdGVzIHNvIHdlCisgICAgIyBleGNsdWRlIHRoZW0gZnJvbSB0aGUgbGlzdC4KKyAgICBTS0lQX1RFU1RfU1VJVEVTPSJjb25zdGFudF90aW1lX2htYWMsbG1vdHMsbG1zIgorICAgIGV4cG9ydCBTS0lQX1RFU1RfU1VJVEVTCisKKyAgICBtc2cgInJ1biB0ZXN0IHN1aXRlcyIKKyAgICBtYWtlIFBTQVNJTT0xIHRlc3QKKworICAgIGhlbHBlcl9wc2FzaW1fc2VydmVyIGtpbGwKK30KKwogIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwogIyMjIyBUZXJtaW5hdGlvbgogIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwpkaWZmIC0tZ2l0IGEvdGVzdHMvc2NyaXB0cy9hbmFseXplX291dGNvbWVzLnB5IGIvdGVzdHMvc2NyaXB0cy9hbmFseXplX291dGNvbWVzLnB5CmluZGV4IDE0ZGFmOWQuLjk5M2UyM2MgMTAwNzU1Ci0tLSBhL3Rlc3RzL3NjcmlwdHMvYW5hbHl6ZV9vdXRjb21lcy5weQorKysgYi90ZXN0cy9zY3JpcHRzL2FuYWx5emVfb3V0Y29tZXMucHkKQEAgLTE2MCwxMCArMTYwLDEwIEBACiAgICAgICAgICMgZG9uJ3QgaXNzdWUgYW4gZXJyb3IgaWYgdGhleSdyZSBza2lwcGVkIHdpdGggZHJpdmVycywKICAgICAgICAgIyBidXQgaXNzdWUgYW4gZXJyb3IgaWYgdGhleSdyZSBub3QgKG1lYW5zIHdlIGhhdmUgYSBiYWQgZW50cnkpLgogICAgICAgICBpZ25vcmVkID0gRmFsc2UKLSAgICAgICAgaWYgZnVsbF90ZXN0X3N1aXRlIGluIGlnbm9yZWRfdGVzdHM6Ci0gICAgICAgICAgICBmb3Igc3RyX29yX3JlIGluIGlnbm9yZWRfdGVzdHNbZnVsbF90ZXN0X3N1aXRlXToKLSAgICAgICAgICAgICAgICBpZiBuYW1lX21hdGNoZXNfcGF0dGVybih0ZXN0X3N0cmluZywgc3RyX29yX3JlKToKLSAgICAgICAgICAgICAgICAgICAgaWdub3JlZCA9IFRydWUKKyAgICAgICAgZm9yIHN0cl9vcl9yZSBpbiAoaWdub3JlZF90ZXN0cy5nZXQoZnVsbF90ZXN0X3N1aXRlLCBbXSkgKworICAgICAgICAgICAgICAgICAgICAgICAgICBpZ25vcmVkX3Rlc3RzLmdldCh0ZXN0X3N1aXRlLCBbXSkpOgorICAgICAgICAgICAgaWYgbmFtZV9tYXRjaGVzX3BhdHRlcm4odGVzdF9zdHJpbmcsIHN0cl9vcl9yZSk6CisgICAgICAgICAgICAgICAgaWdub3JlZCA9IFRydWUKIAogICAgICAgICBpZiBub3QgaWdub3JlZCBhbmQgbm90IHN1aXRlX2Nhc2UgaW4gZHJpdmVyX291dGNvbWVzLnN1Y2Nlc3NlczoKICAgICAgICAgICAgIHJlc3VsdHMuZXJyb3IoIlBBU1MgLT4gU0tJUC9GQUlMOiB7fSIsIHN1aXRlX2Nhc2UpCkBAIC0yNDIsNiArMjQyLDkgQEAKICAgICAgICAgICAgICAgICAncHNhX2NyeXB0b19sb3dfaGFzaC5nZW5lcmF0ZWQnLCAjIHRlc3RpbmcgdGhlIGJ1aWx0aW5zCiAgICAgICAgICAgICBdLAogICAgICAgICAgICAgJ2lnbm9yZWRfdGVzdHMnOiB7CisgICAgICAgICAgICAgICAgJ3Rlc3Rfc3VpdGVfY29uZmlnJzogWworICAgICAgICAgICAgICAgICAgICByZS5jb21waWxlKHInLipcYk1CRURUTFNfKE1ENXxSSVBFTUQxNjB8U0hBWzAtOV0rKV8uKicpLAorICAgICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAgICAgJ3Rlc3Rfc3VpdGVfcGxhdGZvcm0nOiBbCiAgICAgICAgICAgICAgICAgICAgICMgSW5jb21wYXRpYmxlIHdpdGggc2FuaXRpemVycyAoZS5nLiBBU2FuKS4gSWYgdGhlIGRyaXZlcgogICAgICAgICAgICAgICAgICAgICAjIGNvbXBvbmVudCB1c2VzIGEgc2FuaXRpemVyIGJ1dCB0aGUgcmVmZXJlbmNlIGNvbXBvbmVudApAQCAtMjY1LDYgKzI2OCwxMCBAQAogICAgICAgICAgICAgICAgICdwc2FfY3J5cHRvX2xvd19oYXNoLmdlbmVyYXRlZCcsCiAgICAgICAgICAgICBdLAogICAgICAgICAgICAgJ2lnbm9yZWRfdGVzdHMnOiB7CisgICAgICAgICAgICAgICAgJ3Rlc3Rfc3VpdGVfY29uZmlnJzogWworICAgICAgICAgICAgICAgICAgICByZS5jb21waWxlKHInLipcYk1CRURUTFNfKE1ENXxSSVBFTUQxNjB8U0hBWzAtOV0rKV8uKicpLAorICAgICAgICAgICAgICAgICAgICByZS5jb21waWxlKHInLipcYk1CRURUTFNfTURfQ1xiJykKKyAgICAgICAgICAgICAgICBdLAogICAgICAgICAgICAgICAgICd0ZXN0X3N1aXRlX21kJzogWwogICAgICAgICAgICAgICAgICAgICAjIEJ1aWx0aW4gSE1BQyBpcyBub3Qgc3VwcG9ydGVkIGluIHRoZSBhY2NlbGVyYXRlIGNvbXBvbmVudC4KICAgICAgICAgICAgICAgICAgICAgcmUuY29tcGlsZSgnLipITUFDLionKSwKQEAgLTMwNCw2ICszMTEsMTIgQEAKICAgICAgICAgICAgICAgICAnY2lwaGVyJywKICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAnaWdub3JlZF90ZXN0cyc6IHsKKyAgICAgICAgICAgICAgICAndGVzdF9zdWl0ZV9jb25maWcnOiBbCisgICAgICAgICAgICAgICAgICAgIHJlLmNvbXBpbGUocicuKlxiTUJFRFRMU18oQUVTfEFSSUF8Q0FNRUxMSUF8Q0hBQ0hBMjB8REVTKV8uKicpLAorICAgICAgICAgICAgICAgICAgICByZS5jb21waWxlKHInLipcYk1CRURUTFNfKENDTXxDSEFDSEFQT0xZfENNQUN8R0NNKV8uKicpLAorICAgICAgICAgICAgICAgICAgICByZS5jb21waWxlKHInLipcYk1CRURUTFNfQUVTKFx3KylfQ1xiLionKSwKKyAgICAgICAgICAgICAgICAgICAgcmUuY29tcGlsZShyJy4qXGJNQkVEVExTX0NJUEhFUl8uKicpLAorICAgICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAgICAgIyBQRU0gZGVjcnlwdGlvbiBpcyBub3Qgc3VwcG9ydGVkIHNvIGZhci4KICAgICAgICAgICAgICAgICAjIFRoZSByZXN0IG9mIFBFTSAod3JpdGUsIHVuZW5jcnlwdGVkIHJlYWQpIHdvcmtzIHRob3VnaC4KICAgICAgICAgICAgICAgICAndGVzdF9zdWl0ZV9wZW0nOiBbCkBAIC0zNjMsNiArMzc2LDkgQEAKICAgICAgICAgICAgICAgICAnZWNkc2EnLCAnZWNkaCcsICdlY2pwYWtlJywKICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAnaWdub3JlZF90ZXN0cyc6IHsKKyAgICAgICAgICAgICAgICAndGVzdF9zdWl0ZV9jb25maWcnOiBbCisgICAgICAgICAgICAgICAgICAgIHJlLmNvbXBpbGUocicuKlxiTUJFRFRMU18oRUNESHxFQ0RTQXxFQ0pQQUtFfEVDUClfLionKSwKKyAgICAgICAgICAgICAgICBdLAogICAgICAgICAgICAgICAgICd0ZXN0X3N1aXRlX3BsYXRmb3JtJzogWwogICAgICAgICAgICAgICAgICAgICAjIEluY29tcGF0aWJsZSB3aXRoIHNhbml0aXplcnMgKGUuZy4gQVNhbikuIElmIHRoZSBkcml2ZXIKICAgICAgICAgICAgICAgICAgICAgIyBjb21wb25lbnQgdXNlcyBhIHNhbml0aXplciBidXQgdGhlIHJlZmVyZW5jZSBjb21wb25lbnQKQEAgLTQwMyw2ICs0MTksMTAgQEAKICAgICAgICAgICAgICAgICAnZWNwJywgJ2VjZHNhJywgJ2VjZGgnLCAnZWNqcGFrZScsCiAgICAgICAgICAgICBdLAogICAgICAgICAgICAgJ2lnbm9yZWRfdGVzdHMnOiB7CisgICAgICAgICAgICAgICAgJ3Rlc3Rfc3VpdGVfY29uZmlnJzogWworICAgICAgICAgICAgICAgICAgICByZS5jb21waWxlKHInLipcYk1CRURUTFNfKEVDREh8RUNEU0F8RUNKUEFLRXxFQ1ApXy4qJyksCisgICAgICAgICAgICAgICAgICAgIHJlLmNvbXBpbGUocicuKlxiTUJFRFRMU19QS19QQVJTRV9FQ19DT01QUkVTU0VEXGIuKicpLAorICAgICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAgICAgJ3Rlc3Rfc3VpdGVfcGxhdGZvcm0nOiBbCiAgICAgICAgICAgICAgICAgICAgICMgSW5jb21wYXRpYmxlIHdpdGggc2FuaXRpemVycyAoZS5nLiBBU2FuKS4gSWYgdGhlIGRyaXZlcgogICAgICAgICAgICAgICAgICAgICAjIGNvbXBvbmVudCB1c2VzIGEgc2FuaXRpemVyIGJ1dCB0aGUgcmVmZXJlbmNlIGNvbXBvbmVudApAQCAtNDQyLDYgKzQ2MiwxMSBAQAogICAgICAgICAgICAgICAgICdiaWdudW0uZ2VuZXJhdGVkJywgJ2JpZ251bS5taXNjJywKICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAnaWdub3JlZF90ZXN0cyc6IHsKKyAgICAgICAgICAgICAgICAndGVzdF9zdWl0ZV9jb25maWcnOiBbCisgICAgICAgICAgICAgICAgICAgIHJlLmNvbXBpbGUocicuKlxiTUJFRFRMU19CSUdOVU1fQ1xiLionKSwKKyAgICAgICAgICAgICAgICAgICAgcmUuY29tcGlsZShyJy4qXGJNQkVEVExTXyhFQ0RIfEVDRFNBfEVDSlBBS0V8RUNQKV8uKicpLAorICAgICAgICAgICAgICAgICAgICByZS5jb21waWxlKHInLipcYk1CRURUTFNfUEtfUEFSU0VfRUNfQ09NUFJFU1NFRFxiLionKSwKKyAgICAgICAgICAgICAgICBdLAogICAgICAgICAgICAgICAgICd0ZXN0X3N1aXRlX3BsYXRmb3JtJzogWwogICAgICAgICAgICAgICAgICAgICAjIEluY29tcGF0aWJsZSB3aXRoIHNhbml0aXplcnMgKGUuZy4gQVNhbikuIElmIHRoZSBkcml2ZXIKICAgICAgICAgICAgICAgICAgICAgIyBjb21wb25lbnQgdXNlcyBhIHNhbml0aXplciBidXQgdGhlIHJlZmVyZW5jZSBjb21wb25lbnQKQEAgLTQ5MSw2ICs1MTYsMTMgQEAKICAgICAgICAgICAgICAgICAgICAgIyBwcm92aWRlKSwgZXZlbiB3aXRoIE1CRURUTFNfVVNFX1BTQV9DUllQVE8uCiAgICAgICAgICAgICAgICAgICAgIHJlLmNvbXBpbGUocidQU0sgY2FsbGJhY2s6LipcYmRoZS1wc2tcYi4qJyksCiAgICAgICAgICAgICAgICAgXSwKKyAgICAgICAgICAgICAgICAndGVzdF9zdWl0ZV9jb25maWcnOiBbCisgICAgICAgICAgICAgICAgICAgIHJlLmNvbXBpbGUocicuKlxiTUJFRFRMU19CSUdOVU1fQ1xiLionKSwKKyAgICAgICAgICAgICAgICAgICAgcmUuY29tcGlsZShyJy4qXGJNQkVEVExTX0RITV9DXGIuKicpLAorICAgICAgICAgICAgICAgICAgICByZS5jb21waWxlKHInLipcYk1CRURUTFNfKEVDREh8RUNEU0F8RUNKUEFLRXxFQ1ApXy4qJyksCisgICAgICAgICAgICAgICAgICAgIHJlLmNvbXBpbGUocicuKlxiTUJFRFRMU19LRVlfRVhDSEFOR0VfREhFX1BTS19FTkFCTEVEXGIuKicpLAorICAgICAgICAgICAgICAgICAgICByZS5jb21waWxlKHInLipcYk1CRURUTFNfUEtfUEFSU0VfRUNfQ09NUFJFU1NFRFxiLionKSwKKyAgICAgICAgICAgICAgICBdLAogICAgICAgICAgICAgICAgICd0ZXN0X3N1aXRlX3BsYXRmb3JtJzogWwogICAgICAgICAgICAgICAgICAgICAjIEluY29tcGF0aWJsZSB3aXRoIHNhbml0aXplcnMgKGUuZy4gQVNhbikuIElmIHRoZSBkcml2ZXIKICAgICAgICAgICAgICAgICAgICAgIyBjb21wb25lbnQgdXNlcyBhIHNhbml0aXplciBidXQgdGhlIHJlZmVyZW5jZSBjb21wb25lbnQKQEAgLTUyOSw2ICs1NjEsOSBAQAogICAgICAgICAgICAgJ2NvbXBvbmVudF9kcml2ZXInOiAndGVzdF9wc2FfY3J5cHRvX2NvbmZpZ19hY2NlbF9mZmRoJywKICAgICAgICAgICAgICdpZ25vcmVkX3N1aXRlcyc6IFsnZGhtJ10sCiAgICAgICAgICAgICAnaWdub3JlZF90ZXN0cyc6IHsKKyAgICAgICAgICAgICAgICAndGVzdF9zdWl0ZV9jb25maWcnOiBbCisgICAgICAgICAgICAgICAgICAgIHJlLmNvbXBpbGUocicuKlxiTUJFRFRMU19ESE1fQ1xiLionKSwKKyAgICAgICAgICAgICAgICBdLAogICAgICAgICAgICAgICAgICd0ZXN0X3N1aXRlX3BsYXRmb3JtJzogWwogICAgICAgICAgICAgICAgICAgICAjIEluY29tcGF0aWJsZSB3aXRoIHNhbml0aXplcnMgKGUuZy4gQVNhbikuIElmIHRoZSBkcml2ZXIKICAgICAgICAgICAgICAgICAgICAgIyBjb21wb25lbnQgdXNlcyBhIHNhbml0aXplciBidXQgdGhlIHJlZmVyZW5jZSBjb21wb25lbnQKQEAgLTU1MSw2ICs1ODYsMTUgQEAKICAgICAgICAgICAgICAgICAnYmlnbnVtLmdlbmVyYXRlZCcsICdiaWdudW0ubWlzYycsCiAgICAgICAgICAgICBdLAogICAgICAgICAgICAgJ2lnbm9yZWRfdGVzdHMnOiB7CisgICAgICAgICAgICAgICAgJ3Rlc3Rfc3VpdGVfY29uZmlnJzogWworICAgICAgICAgICAgICAgICAgICByZS5jb21waWxlKHInLipcYk1CRURUTFNfQklHTlVNX0NcYi4qJyksCisgICAgICAgICAgICAgICAgICAgIHJlLmNvbXBpbGUocicuKlxiTUJFRFRMU18oQVNOMVx3KylfQ1xiLionKSwKKyAgICAgICAgICAgICAgICAgICAgcmUuY29tcGlsZShyJy4qXGJNQkVEVExTXyhFQ0RIfEVDRFNBfEVDUClfLionKSwKKyAgICAgICAgICAgICAgICAgICAgcmUuY29tcGlsZShyJy4qXGJNQkVEVExTX1BTQV9QMjU2TV9EUklWRVJfRU5BQkxFRFxiLionKQorICAgICAgICAgICAgICAgIF0sCisgICAgICAgICAgICAgICAgJ3Rlc3Rfc3VpdGVfY29uZmlnLmNyeXB0b19jb21iaW5hdGlvbnMnOiBbCisgICAgICAgICAgICAgICAgICAgICdDb25maWc6IEVDQzogV2VpZXJzdHJhc3MgY3VydmVzIG9ubHknLAorICAgICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAgICAgJ3Rlc3Rfc3VpdGVfcGxhdGZvcm0nOiBbCiAgICAgICAgICAgICAgICAgICAgICMgSW5jb21wYXRpYmxlIHdpdGggc2FuaXRpemVycyAoZS5nLiBBU2FuKS4gSWYgdGhlIGRyaXZlcgogICAgICAgICAgICAgICAgICAgICAjIGNvbXBvbmVudCB1c2VzIGEgc2FuaXRpemVyIGJ1dCB0aGUgcmVmZXJlbmNlIGNvbXBvbmVudApAQCAtNTc2LDYgKzYyMCwxMCBAQAogICAgICAgICAgICAgICAgICdwaycsICdwa3dyaXRlJywgJ3BrcGFyc2UnCiAgICAgICAgICAgICBdLAogICAgICAgICAgICAgJ2lnbm9yZWRfdGVzdHMnOiB7CisgICAgICAgICAgICAgICAgJ3Rlc3Rfc3VpdGVfY29uZmlnJzogWworICAgICAgICAgICAgICAgICAgICByZS5jb21waWxlKHInLipcYk1CRURUTFNfKFBLQ1MxfFJTQSlfLionKSwKKyAgICAgICAgICAgICAgICAgICAgcmUuY29tcGlsZShyJy4qXGJNQkVEVExTX0dFTlBSSU1FXGIuKicpCisgICAgICAgICAgICAgICAgXSwKICAgICAgICAgICAgICAgICAndGVzdF9zdWl0ZV9wbGF0Zm9ybSc6IFsKICAgICAgICAgICAgICAgICAgICAgIyBJbmNvbXBhdGlibGUgd2l0aCBzYW5pdGl6ZXJzIChlLmcuIEFTYW4pLiBJZiB0aGUgZHJpdmVyCiAgICAgICAgICAgICAgICAgICAgICMgY29tcG9uZW50IHVzZXMgYSBzYW5pdGl6ZXIgYnV0IHRoZSByZWZlcmVuY2UgY29tcG9uZW50CkBAIC02MTcsNiArNjY1LDEwIEBACiAgICAgICAgICAgICAgICAgJ2NpcGhlci5jYW1lbGxpYScsCiAgICAgICAgICAgICBdLAogICAgICAgICAgICAgJ2lnbm9yZWRfdGVzdHMnOiB7CisgICAgICAgICAgICAgICAgJ3Rlc3Rfc3VpdGVfY29uZmlnJzogWworICAgICAgICAgICAgICAgICAgICByZS5jb21waWxlKHInLipcYk1CRURUTFNfKEFFU3xBUklBfENBTUVMTElBKV8uKicpLAorICAgICAgICAgICAgICAgICAgICByZS5jb21waWxlKHInLipcYk1CRURUTFNfQUVTKFx3KylfQ1xiLionKSwKKyAgICAgICAgICAgICAgICBdLAogICAgICAgICAgICAgICAgICd0ZXN0X3N1aXRlX2NtYWMnOiBbCiAgICAgICAgICAgICAgICAgICAgICMgRm9sbG93aW5nIHRlc3RzIHJlcXVpcmUgQUVTX0MvQVJJQV9DL0NBTUVMTElBX0MgdG8gYmUgZW5hYmxlZCwKICAgICAgICAgICAgICAgICAgICAgIyBidXQgdGhlc2UgYXJlIG5vdCBhdmFpbGFibGUgaW4gdGhlIGFjY2VsZXJhdGVkIGNvbXBvbmVudC4KZGlmZiAtLWdpdCBhL3Rlc3RzL3NjcmlwdHMvYXVkaXQtdmFsaWRpdHktZGF0ZXMucHkgYi90ZXN0cy9zY3JpcHRzL2F1ZGl0LXZhbGlkaXR5LWRhdGVzLnB5CmluZGV4IDQ0YjA4M2QuLjNkMDkyNDYgMTAwNzU1Ci0tLSBhL3Rlc3RzL3NjcmlwdHMvYXVkaXQtdmFsaWRpdHktZGF0ZXMucHkKKysrIGIvdGVzdHMvc2NyaXB0cy9hdWRpdC12YWxpZGl0eS1kYXRlcy5weQpAQCAtOCw3ICs4LDcgQEAKIFRoaXMgc2NyaXB0IGlzIHVzZWQgdG8gYXVkaXQgdGhlIHZhbGlkaXR5IGRhdGUgb2YgY3J0L2NybC9jc3IgdXNlZCBmb3IgdGVzdGluZy4KIEl0IHByaW50cyB0aGUgaW5mb3JtYXRpb24gYWJvdXQgWC41MDkgb2JqZWN0cyBleGNsdWRpbmcgdGhlIG9iamVjdHMgdGhhdAogYXJlIHZhbGlkIHRocm91Z2hvdXQgdGhlIGRlc2lyZWQgdmFsaWRpdHkgcGVyaW9kLiBUaGUgZGF0YSBhcmUgY29sbGVjdGVkCi1mcm9tIHRlc3RzL2RhdGFfZmlsZXMvIGFuZCB0ZXN0cy9zdWl0ZXMvKi5kYXRhIGZpbGVzIGJ5IGRlZmF1bHQuCitmcm9tIGZyYW1ld29yay9kYXRhX2ZpbGVzLyBhbmQgdGVzdHMvc3VpdGVzLyouZGF0YSBmaWxlcyBieSBkZWZhdWx0LgogIiIiCiAKIGltcG9ydCBvcwpAQCAtMjY5LDEyICsyNjksMTIgQEAKIAogCiBjbGFzcyBUZXN0RGF0YUF1ZGl0b3IoQXVkaXRvcik6Ci0gICAgIiIiQ2xhc3MgZm9yIGF1ZGl0aW5nIGZpbGVzIGluIGB0ZXN0cy9kYXRhX2ZpbGVzL2AiIiIKKyAgICAiIiJDbGFzcyBmb3IgYXVkaXRpbmcgZmlsZXMgaW4gYGZyYW1ld29yay9kYXRhX2ZpbGVzL2AiIiIKIAogICAgIGRlZiBjb2xsZWN0X2RlZmF1bHRfZmlsZXMoc2VsZik6Ci0gICAgICAgICIiIkNvbGxlY3QgYWxsIGZpbGVzIGluIGB0ZXN0cy9kYXRhX2ZpbGVzL2AiIiIKLSAgICAgICAgdGVzdF9kaXIgPSBzZWxmLmZpbmRfdGVzdF9kaXIoKQotICAgICAgICB0ZXN0X2RhdGFfZ2xvYiA9IG9zLnBhdGguam9pbih0ZXN0X2RpciwgJ2RhdGFfZmlsZXMvKionKQorICAgICAgICAiIiJDb2xsZWN0IGFsbCBmaWxlcyBpbiBgZnJhbWV3b3JrL2RhdGFfZmlsZXMvYCIiIgorICAgICAgICB0ZXN0X2RhdGFfZ2xvYiA9IG9zLnBhdGguam9pbihidWlsZF90cmVlLmd1ZXNzX21iZWR0bHNfcm9vdCgpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZnJhbWV3b3JrJywgJ2RhdGFfZmlsZXMvKionKQogICAgICAgICBkYXRhX2ZpbGVzID0gW2YgZm9yIGYgaW4gZ2xvYi5nbG9iKHRlc3RfZGF0YV9nbG9iLCByZWN1cnNpdmU9VHJ1ZSkKICAgICAgICAgICAgICAgICAgICAgICBpZiBvcy5wYXRoLmlzZmlsZShmKV0KICAgICAgICAgcmV0dXJuIGRhdGFfZmlsZXMKZGlmZiAtLWdpdCBhL3Rlc3RzL3NjcmlwdHMvY2hlY2stZ2VuZXJhdGVkLWZpbGVzLnNoIGIvdGVzdHMvc2NyaXB0cy9jaGVjay1nZW5lcmF0ZWQtZmlsZXMuc2gKaW5kZXggZTc0MGYzMy4uNTZkNDg4NCAxMDA3NTUKLS0tIGEvdGVzdHMvc2NyaXB0cy9jaGVjay1nZW5lcmF0ZWQtZmlsZXMuc2gKKysrIGIvdGVzdHMvc2NyaXB0cy9jaGVjay1nZW5lcmF0ZWQtZmlsZXMuc2gKQEAgLTMxLDkgKzMxLDE2IEBACiB9CiAKIGlmIGluX21iZWR0bHNfcmVwbzsgdGhlbgotICAgIGxpYnJhcnlfZGlyPSdsaWJyYXJ5JworICAgIGlmIFsgLWQgdGYtcHNhLWNyeXB0byBdOyB0aGVuCisgICAgICAgIGNyeXB0b19jb3JlX2Rpcj0ndGYtcHNhLWNyeXB0by9jb3JlJworICAgICAgICBidWlsdGluX2RyaXZlcnNfZGlyPSd0Zi1wc2EtY3J5cHRvL2RyaXZlcnMvYnVpbHRpbi9zcmMnCisgICAgZWxzZQorICAgICAgICBjcnlwdG9fY29yZV9kaXI9J2xpYnJhcnknCisgICAgICAgIGJ1aWx0aW5fZHJpdmVyc19kaXI9J2xpYnJhcnknCisgICAgZmkKIGVsaWYgaW5fdGZfcHNhX2NyeXB0b19yZXBvOyB0aGVuCi0gICAgbGlicmFyeV9kaXI9J2NvcmUnCisgICAgY3J5cHRvX2NvcmVfZGlyPSdjb3JlJworICAgIGJ1aWx0aW5fZHJpdmVyc19kaXI9J2RyaXZlcnMvYnVpbHRpbi9zcmMvJwogZWxzZQogICAgIGVjaG8gIk11c3QgYmUgcnVuIGZyb20gTWJlZCBUTFMgcm9vdCBvciBURi1QU0EtQ3J5cHRvIHJvb3QiID4mMgogICAgIGV4aXQgMQpAQCAtMTI5LDE2ICsxMzYsMTggQEAKICMgVGhlc2UgY2hlY2tzIGFyZSBjb21tb24gdG8gTWJlZCBUTFMgYW5kIFRGLVBTQS1DcnlwdG8KIGNoZWNrIHNjcmlwdHMvZ2VuZXJhdGVfcHNhX2NvbnN0YW50cy5weSBwcm9ncmFtcy9wc2EvcHNhX2NvbnN0YW50X25hbWVzX2dlbmVyYXRlZC5jCiBjaGVjayBmcmFtZXdvcmsvc2NyaXB0cy9nZW5lcmF0ZV9iaWdudW1fdGVzdHMucHkgJChmcmFtZXdvcmsvc2NyaXB0cy9nZW5lcmF0ZV9iaWdudW1fdGVzdHMucHkgLS1saXN0KQorY2hlY2sgZnJhbWV3b3JrL3NjcmlwdHMvZ2VuZXJhdGVfY29uZmlnX3Rlc3RzLnB5ICQoZnJhbWV3b3JrL3NjcmlwdHMvZ2VuZXJhdGVfY29uZmlnX3Rlc3RzLnB5IC0tbGlzdCkKIGNoZWNrIGZyYW1ld29yay9zY3JpcHRzL2dlbmVyYXRlX2VjcF90ZXN0cy5weSAkKGZyYW1ld29yay9zY3JpcHRzL2dlbmVyYXRlX2VjcF90ZXN0cy5weSAtLWxpc3QpCiBjaGVjayBmcmFtZXdvcmsvc2NyaXB0cy9nZW5lcmF0ZV9wc2FfdGVzdHMucHkgJChmcmFtZXdvcmsvc2NyaXB0cy9nZW5lcmF0ZV9wc2FfdGVzdHMucHkgLS1saXN0KQogY2hlY2sgZnJhbWV3b3JrL3NjcmlwdHMvZ2VuZXJhdGVfdGVzdF9rZXlzLnB5IHRlc3RzL3NyYy90ZXN0X2tleXMuaAotY2hlY2sgc2NyaXB0cy9nZW5lcmF0ZV9kcml2ZXJfd3JhcHBlcnMucHkgJGxpYnJhcnlfZGlyL3BzYV9jcnlwdG9fZHJpdmVyX3dyYXBwZXJzLmggJGxpYnJhcnlfZGlyL3BzYV9jcnlwdG9fZHJpdmVyX3dyYXBwZXJzX25vX3N0YXRpYy5jCitjaGVjayBzY3JpcHRzL2dlbmVyYXRlX2RyaXZlcl93cmFwcGVycy5weSAke2NyeXB0b19jb3JlX2Rpcn0vcHNhX2NyeXB0b19kcml2ZXJfd3JhcHBlcnMuaCBcCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAke2NyeXB0b19jb3JlX2Rpcn0vcHNhX2NyeXB0b19kcml2ZXJfd3JhcHBlcnNfbm9fc3RhdGljLmMKIAogIyBBZGRpdGlvbmFsIGNoZWNrcyBmb3IgTWJlZCBUTFMgb25seQogaWYgaW5fbWJlZHRsc19yZXBvOyB0aGVuCi0gICAgY2hlY2sgc2NyaXB0cy9nZW5lcmF0ZV9lcnJvcnMucGwgbGlicmFyeS9lcnJvci5jCisgICAgY2hlY2sgc2NyaXB0cy9nZW5lcmF0ZV9lcnJvcnMucGwgJHtidWlsdGluX2RyaXZlcnNfZGlyfS9lcnJvci5jCiAgICAgY2hlY2sgc2NyaXB0cy9nZW5lcmF0ZV9xdWVyeV9jb25maWcucGwgcHJvZ3JhbXMvdGVzdC9xdWVyeV9jb25maWcuYwotICAgIGNoZWNrIHNjcmlwdHMvZ2VuZXJhdGVfZmVhdHVyZXMucGwgbGlicmFyeS92ZXJzaW9uX2ZlYXR1cmVzLmMKKyAgICBjaGVjayBzY3JpcHRzL2dlbmVyYXRlX2ZlYXR1cmVzLnBsICR7YnVpbHRpbl9kcml2ZXJzX2Rpcn0vdmVyc2lvbl9mZWF0dXJlcy5jCiAgICAgY2hlY2sgc2NyaXB0cy9nZW5lcmF0ZV9zc2xfZGVidWdfaGVscGVycy5weSBsaWJyYXJ5L3NzbF9kZWJ1Z19oZWxwZXJzX2dlbmVyYXRlZC5jCiAgICAgY2hlY2sgZnJhbWV3b3JrL3NjcmlwdHMvZ2VuZXJhdGVfdGVzdF9jZXJ0X21hY3Jvcy5weSB0ZXN0cy9zcmMvdGVzdF9jZXJ0cy5oCiAgICAgIyBnZW5lcmF0ZV92aXN1YWxjX2ZpbGVzIGVudW1lcmF0ZXMgc291cmNlIGZpbGVzIChsaWJyYXJ5LyouYykuIEl0IGRvZXNuJ3QKZGlmZiAtLWdpdCBhL3Rlc3RzL3NjcmlwdHMvY2hlY2tfZmlsZXMucHkgYi90ZXN0cy9zY3JpcHRzL2NoZWNrX2ZpbGVzLnB5CmluZGV4IDVlOWVhN2QuLmU5MzcyMDIgMTAwNzU1Ci0tLSBhL3Rlc3RzL3NjcmlwdHMvY2hlY2tfZmlsZXMucHkKKysrIGIvdGVzdHMvc2NyaXB0cy9jaGVja19maWxlcy5weQpAQCAtMTA3LDEyICsxMDcsMTIgQEAKICAgICByJ2RvY3MvLipcLnBkZlxaJywKICAgICByJ2RvY3MvLipcLnBuZ1xaJywKICAgICByJ3Byb2dyYW1zL2Z1enovY29ycHVzZXMvW14uXStcWicsCi0gICAgcid0ZXN0cy9kYXRhX2ZpbGVzL1teLl0rXFonLAotICAgIHIndGVzdHMvZGF0YV9maWxlcy8uKlwuKGNydHxjc3J8ZGJ8ZGVyfGtleXxwdWJrZXkpXFonLAotICAgIHIndGVzdHMvZGF0YV9maWxlcy8uKlwucmVxXC5bXi9dK1xaJywKLSAgICByJ3Rlc3RzL2RhdGFfZmlsZXMvLiptYWxmb3JtZWRbXi9dK1xaJywKLSAgICByJ3Rlc3RzL2RhdGFfZmlsZXMvZm9ybWF0X3BrY3MxMlwuZm10XFonLAotICAgIHIndGVzdHMvZGF0YV9maWxlcy8uKlwuYmluXFonLAorICAgIHInZnJhbWV3b3JrL2RhdGFfZmlsZXMvW14uXStcWicsCisgICAgcidmcmFtZXdvcmsvZGF0YV9maWxlcy8uKlwuKGNydHxjc3J8ZGJ8ZGVyfGtleXxwdWJrZXkpXFonLAorICAgIHInZnJhbWV3b3JrL2RhdGFfZmlsZXMvLipcLnJlcVwuW14vXStcWicsCisgICAgcidmcmFtZXdvcmsvZGF0YV9maWxlcy8uKm1hbGZvcm1lZFteL10rXFonLAorICAgIHInZnJhbWV3b3JrL2RhdGFfZmlsZXMvZm9ybWF0X3BrY3MxMlwuZm10XFonLAorICAgIHInZnJhbWV3b3JrL2RhdGFfZmlsZXMvLipcLmJpblxaJywKIF0KIEJJTkFSWV9GSUxFX1BBVEhfUkUgPSByZS5jb21waWxlKCd8Jy5qb2luKEJJTkFSWV9GSUxFX1BBVEhfUkVfTElTVCkpCiAKQEAgLTM2OCw5ICszNjgsOCBAQAogICAgIGhlYWRpbmcgPSAiTGljZW5zZSBpc3N1ZToiCiAKICAgICBMSUNFTlNFX0VYRU1QVElPTl9SRV9MSVNUID0gWwotICAgICAgICAjIFRoaXJkLXBhcnR5IGNvZGUsIG90aGVyIHRoYW4gd2hpdGVsaXN0ZWQgdGhpcmQtcGFydHkgbW9kdWxlcywKLSAgICAgICAgIyBtYXkgYmUgdW5kZXIgYSBkaWZmZXJlbnQgbGljZW5zZS4KLSAgICAgICAgciczcmRwYXJ0eS8oPyEocDI1Ni1tKS8uKiknLAorICAgICAgICAjIEV4ZW1wdCB0aGlyZC1wYXJ0eSBkcml2ZXJzIHdoaWNoIG1heSBiZSB1bmRlciBhIGRpZmZlcmVudCBsaWNlbnNlCisgICAgICAgIHIndGYtcHNhLWNyeXB0by9kcml2ZXJzLyg/PShldmVyZXN0KS8uKiknLAogICAgICAgICAjIERvY3VtZW50YXRpb24gZXhwbGFpbmluZyB0aGUgbGljZW5zZSBtYXkgaGF2ZSBhY2NpZGVudGFsCiAgICAgICAgICMgZmFsc2UgcG9zaXRpdmVzLgogICAgICAgICByJyhDaGFuZ2VMb2d8TElDRU5TRXxmcmFtZXdvcmtcL0xJQ0VOU0V8Wy0wLTlBLVpfYS16XStcLm1kKVxaJywKZGlmZiAtLWdpdCBhL3Rlc3RzL3NjcmlwdHMvY2hlY2tfbmFtZXMucHkgYi90ZXN0cy9zY3JpcHRzL2NoZWNrX25hbWVzLnB5CmluZGV4IDAxYzNmM2MuLjRmNTAzZTQgMTAwNzU1Ci0tLSBhL3Rlc3RzL3NjcmlwdHMvY2hlY2tfbmFtZXMucHkKKysrIGIvdGVzdHMvc2NyaXB0cy9jaGVja19uYW1lcy5weQpAQCAtMjM5LDQ0ICsyMzksNjIgQEAKICAgICAgICAgICAgICJpbmNsdWRlL21iZWR0bHMvKi5oIiwKICAgICAgICAgICAgICJpbmNsdWRlL3BzYS8qLmgiLAogICAgICAgICAgICAgInRmLXBzYS1jcnlwdG8vaW5jbHVkZS9wc2EvKi5oIiwKLSAgICAgICAgICAgICIzcmRwYXJ0eS9ldmVyZXN0L2luY2x1ZGUvZXZlcmVzdC9ldmVyZXN0LmgiLAotICAgICAgICAgICAgIjNyZHBhcnR5L2V2ZXJlc3QvaW5jbHVkZS9ldmVyZXN0L3gyNTUxOS5oIgorICAgICAgICAgICAgInRmLXBzYS1jcnlwdG8vZHJpdmVycy9idWlsdGluL2luY2x1ZGUvbWJlZHRscy8qLmgiLAorICAgICAgICAgICAgInRmLXBzYS1jcnlwdG8vZHJpdmVycy9ldmVyZXN0L2luY2x1ZGUvZXZlcmVzdC9ldmVyZXN0LmgiLAorICAgICAgICAgICAgInRmLXBzYS1jcnlwdG8vZHJpdmVycy9ldmVyZXN0L2luY2x1ZGUvZXZlcmVzdC94MjU1MTkuaCIKICAgICAgICAgXSkKICAgICAgICAgYWxsX21hY3Jvc1siaW50ZXJuYWwiXSA9IHNlbGYucGFyc2VfbWFjcm9zKFsKICAgICAgICAgICAgICJsaWJyYXJ5LyouaCIsCisgICAgICAgICAgICAidGYtcHNhLWNyeXB0by9jb3JlLyouaCIsCisgICAgICAgICAgICAidGYtcHNhLWNyeXB0by9kcml2ZXJzL2J1aWx0aW4vc3JjLyouaCIsCiAgICAgICAgICAgICAidGVzdHMvaW5jbHVkZS90ZXN0L2RyaXZlcnMvKi5oIiwKICAgICAgICAgXSkKICAgICAgICAgYWxsX21hY3Jvc1sicHJpdmF0ZSJdID0gc2VsZi5wYXJzZV9tYWNyb3MoWwogICAgICAgICAgICAgImxpYnJhcnkvKi5jIiwKKyAgICAgICAgICAgICJ0Zi1wc2EtY3J5cHRvL2NvcmUvKi5jIiwKKyAgICAgICAgICAgICJ0Zi1wc2EtY3J5cHRvL2RyaXZlcnMvYnVpbHRpbi9zcmMvKi5jIiwKICAgICAgICAgXSkKICAgICAgICAgZW51bV9jb25zdHMgPSBzZWxmLnBhcnNlX2VudW1fY29uc3RzKFsKICAgICAgICAgICAgICJpbmNsdWRlL21iZWR0bHMvKi5oIiwKICAgICAgICAgICAgICJpbmNsdWRlL3BzYS8qLmgiLAogICAgICAgICAgICAgInRmLXBzYS1jcnlwdG8vaW5jbHVkZS9wc2EvKi5oIiwKKyAgICAgICAgICAgICJ0Zi1wc2EtY3J5cHRvL2RyaXZlcnMvYnVpbHRpbi9pbmNsdWRlL21iZWR0bHMvKi5oIiwKICAgICAgICAgICAgICJsaWJyYXJ5LyouaCIsCisgICAgICAgICAgICAidGYtcHNhLWNyeXB0by9jb3JlLyouaCIsCisgICAgICAgICAgICAidGYtcHNhLWNyeXB0by9kcml2ZXJzL2J1aWx0aW4vc3JjLyouaCIsCiAgICAgICAgICAgICAibGlicmFyeS8qLmMiLAotICAgICAgICAgICAgIjNyZHBhcnR5L2V2ZXJlc3QvaW5jbHVkZS9ldmVyZXN0L2V2ZXJlc3QuaCIsCi0gICAgICAgICAgICAiM3JkcGFydHkvZXZlcmVzdC9pbmNsdWRlL2V2ZXJlc3QveDI1NTE5LmgiCisgICAgICAgICAgICAidGYtcHNhLWNyeXB0by9jb3JlLyouYyIsCisgICAgICAgICAgICAidGYtcHNhLWNyeXB0by9kcml2ZXJzL2J1aWx0aW4vc3JjLyouYyIsCisgICAgICAgICAgICAidGYtcHNhLWNyeXB0by9kcml2ZXJzL2V2ZXJlc3QvaW5jbHVkZS9ldmVyZXN0L2V2ZXJlc3QuaCIsCisgICAgICAgICAgICAidGYtcHNhLWNyeXB0by9kcml2ZXJzL2V2ZXJlc3QvaW5jbHVkZS9ldmVyZXN0L3gyNTUxOS5oIgogICAgICAgICBdKQogICAgICAgICBpZGVudGlmaWVycywgZXhjbHVkZWRfaWRlbnRpZmllcnMgPSBzZWxmLnBhcnNlX2lkZW50aWZpZXJzKFsKICAgICAgICAgICAgICJpbmNsdWRlL21iZWR0bHMvKi5oIiwKICAgICAgICAgICAgICJpbmNsdWRlL3BzYS8qLmgiLAogICAgICAgICAgICAgInRmLXBzYS1jcnlwdG8vaW5jbHVkZS9wc2EvKi5oIiwKKyAgICAgICAgICAgICJ0Zi1wc2EtY3J5cHRvL2RyaXZlcnMvYnVpbHRpbi9pbmNsdWRlL21iZWR0bHMvKi5oIiwKICAgICAgICAgICAgICJsaWJyYXJ5LyouaCIsCi0gICAgICAgICAgICAiM3JkcGFydHkvZXZlcmVzdC9pbmNsdWRlL2V2ZXJlc3QvZXZlcmVzdC5oIiwKLSAgICAgICAgICAgICIzcmRwYXJ0eS9ldmVyZXN0L2luY2x1ZGUvZXZlcmVzdC94MjU1MTkuaCIKLSAgICAgICAgXSwgWyIzcmRwYXJ0eS9wMjU2LW0vcDI1Ni1tL3AyNTYtbS5oIl0pCisgICAgICAgICAgICAidGYtcHNhLWNyeXB0by9jb3JlLyouaCIsCisgICAgICAgICAgICAidGYtcHNhLWNyeXB0by9kcml2ZXJzL2J1aWx0aW4vc3JjLyouaCIsCisgICAgICAgICAgICAidGYtcHNhLWNyeXB0by9kcml2ZXJzL2V2ZXJlc3QvaW5jbHVkZS9ldmVyZXN0L2V2ZXJlc3QuaCIsCisgICAgICAgICAgICAidGYtcHNhLWNyeXB0by9kcml2ZXJzL2V2ZXJlc3QvaW5jbHVkZS9ldmVyZXN0L3gyNTUxOS5oIgorICAgICAgICBdLCBbInRmLXBzYS1jcnlwdG8vZHJpdmVycy9wMjU2LW0vcDI1Ni1tL3AyNTYtbS5oIl0pCiAgICAgICAgIG1iZWRfcHNhX3dvcmRzID0gc2VsZi5wYXJzZV9tYmVkX3BzYV93b3JkcyhbCiAgICAgICAgICAgICAiaW5jbHVkZS9tYmVkdGxzLyouaCIsCiAgICAgICAgICAgICAiaW5jbHVkZS9wc2EvKi5oIiwKICAgICAgICAgICAgICJ0Zi1wc2EtY3J5cHRvL2luY2x1ZGUvcHNhLyouaCIsCisgICAgICAgICAgICAidGYtcHNhLWNyeXB0by9kcml2ZXJzL2J1aWx0aW4vaW5jbHVkZS9tYmVkdGxzLyouaCIsCiAgICAgICAgICAgICAibGlicmFyeS8qLmgiLAotICAgICAgICAgICAgIjNyZHBhcnR5L2V2ZXJlc3QvaW5jbHVkZS9ldmVyZXN0L2V2ZXJlc3QuaCIsCi0gICAgICAgICAgICAiM3JkcGFydHkvZXZlcmVzdC9pbmNsdWRlL2V2ZXJlc3QveDI1NTE5LmgiLAorICAgICAgICAgICAgInRmLXBzYS1jcnlwdG8vY29yZS8qLmgiLAorICAgICAgICAgICAgInRmLXBzYS1jcnlwdG8vZHJpdmVycy9idWlsdGluL3NyYy8qLmgiLAorICAgICAgICAgICAgInRmLXBzYS1jcnlwdG8vZHJpdmVycy9ldmVyZXN0L2luY2x1ZGUvZXZlcmVzdC9ldmVyZXN0LmgiLAorICAgICAgICAgICAgInRmLXBzYS1jcnlwdG8vZHJpdmVycy9ldmVyZXN0L2luY2x1ZGUvZXZlcmVzdC94MjU1MTkuaCIsCiAgICAgICAgICAgICAibGlicmFyeS8qLmMiLAotICAgICAgICAgICAgIjNyZHBhcnR5L2V2ZXJlc3QvbGlicmFyeS9ldmVyZXN0LmMiLAotICAgICAgICAgICAgIjNyZHBhcnR5L2V2ZXJlc3QvbGlicmFyeS94MjU1MTkuYyIKLSAgICAgICAgXSwgWyJsaWJyYXJ5L3BzYV9jcnlwdG9fZHJpdmVyX3dyYXBwZXJzLmgiXSkKKyAgICAgICAgICAgICJ0Zi1wc2EtY3J5cHRvL2NvcmUvKi5jIiwKKyAgICAgICAgICAgICJ0Zi1wc2EtY3J5cHRvL2RyaXZlcnMvYnVpbHRpbi9zcmMvKi5jIiwKKyAgICAgICAgICAgICJ0Zi1wc2EtY3J5cHRvL2RyaXZlcnMvZXZlcmVzdC9saWJyYXJ5L2V2ZXJlc3QuYyIsCisgICAgICAgICAgICAidGYtcHNhLWNyeXB0by9kcml2ZXJzL2V2ZXJlc3QvbGlicmFyeS94MjU1MTkuYyIKKyAgICAgICAgXSwgWyJ0Zi1wc2EtY3J5cHRvL2NvcmUvcHNhX2NyeXB0b19kcml2ZXJfd3JhcHBlcnMuaCJdKQogICAgICAgICBzeW1ib2xzID0gc2VsZi5wYXJzZV9zeW1ib2xzKCkKIAogICAgICAgICAjIFJlbW92ZSBpZGVudGlmaWVyIG1hY3JvcyBsaWtlIG1iZWR0bHNfcHJpbnRmIG9yIG1iZWR0bHNfY2FsbG9jCmRpZmYgLS1naXQgYS90ZXN0cy9zY3JpcHRzL2RlcGVuZHMucHkgYi90ZXN0cy9zY3JpcHRzL2RlcGVuZHMucHkKaW5kZXggMTk5MGNkMi4uZmExN2UxMyAxMDA3NTUKLS0tIGEvdGVzdHMvc2NyaXB0cy9kZXBlbmRzLnB5CisrKyBiL3Rlc3RzL3NjcmlwdHMvZGVwZW5kcy5weQpAQCAtMzY5LDcgKzM2OSwxMSBAQAogICAgICIiIkNvbGxlY3QgZGF0YSBhYm91dCBjaXBoZXIuaC4iIiIKICAgICBkZWYgX19pbml0X18oc2VsZik6CiAgICAgICAgIHNlbGYuYmFzZV9zeW1ib2xzID0gc2V0KCkKLSAgICAgICAgd2l0aCBvcGVuKCdpbmNsdWRlL21iZWR0bHMvY2lwaGVyLmgnLCBlbmNvZGluZz0idXRmLTgiKSBhcyBmaDoKKyAgICAgICAgaWYgb3MucGF0aC5pc2RpcigndGYtcHNhLWNyeXB0bycpOgorICAgICAgICAgICAgY2lwaGVyX2hfcGF0aCA9ICd0Zi1wc2EtY3J5cHRvL2RyaXZlcnMvYnVpbHRpbi9pbmNsdWRlL21iZWR0bHMvY2lwaGVyLmgnCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBjaXBoZXJfaF9wYXRoID0gJ2luY2x1ZGUvbWJlZHRscy9jaXBoZXIuaCcKKyAgICAgICAgd2l0aCBvcGVuKGNpcGhlcl9oX3BhdGgsIGVuY29kaW5nPSJ1dGYtOCIpIGFzIGZoOgogICAgICAgICAgICAgZm9yIGxpbmUgaW4gZmg6CiAgICAgICAgICAgICAgICAgbSA9IHJlLm1hdGNoKHInICpNQkVEVExTX0NJUEhFUl9JRF8oXHcrKSwnLCBsaW5lKQogICAgICAgICAgICAgICAgIGlmIG0gYW5kIG0uZ3JvdXAoMSkgbm90IGluIFsnTk9ORScsICdOVUxMJywgJzNERVMnXToKZGlmZiAtLWdpdCBhL3Rlc3RzL3NjcmlwdHMvZ2VuZXJhdGVfdGxzMTNfY29tcGF0X3Rlc3RzLnB5IGIvdGVzdHMvc2NyaXB0cy9nZW5lcmF0ZV90bHMxM19jb21wYXRfdGVzdHMucHkKaW5kZXggOGIyODU5MC4uZGRlMzdiNyAxMDA3NTUKLS0tIGEvdGVzdHMvc2NyaXB0cy9nZW5lcmF0ZV90bHMxM19jb21wYXRfdGVzdHMucHkKKysrIGIvdGVzdHMvc2NyaXB0cy9nZW5lcmF0ZV90bHMxM19jb21wYXRfdGVzdHMucHkKQEAgLTIwLDE4ICsyMCwxOCBAQAogQ2VydGlmaWNhdGUgPSBuYW1lZHR1cGxlKCJDZXJ0aWZpY2F0ZSIsIFsnY2FmaWxlJywgJ2NlcnRmaWxlJywgJ2tleWZpbGUnXSkKICMgZGVmaW5lIHRoZSBjZXJ0aWZpY2F0ZSBwYXJhbWV0ZXJzIGZvciBzaWduYXR1cmUgYWxnb3JpdGhtcwogQ0VSVElGSUNBVEVTID0gewotICAgICdlY2RzYV9zZWNwMjU2cjFfc2hhMjU2JzogQ2VydGlmaWNhdGUoJ2RhdGFfZmlsZXMvdGVzdC1jYTIuY3J0JywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdkYXRhX2ZpbGVzL2VjZHNhX3NlY3AyNTZyMS5jcnQnLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2RhdGFfZmlsZXMvZWNkc2Ffc2VjcDI1NnIxLmtleScpLAotICAgICdlY2RzYV9zZWNwMzg0cjFfc2hhMzg0JzogQ2VydGlmaWNhdGUoJ2RhdGFfZmlsZXMvdGVzdC1jYTIuY3J0JywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdkYXRhX2ZpbGVzL2VjZHNhX3NlY3AzODRyMS5jcnQnLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2RhdGFfZmlsZXMvZWNkc2Ffc2VjcDM4NHIxLmtleScpLAotICAgICdlY2RzYV9zZWNwNTIxcjFfc2hhNTEyJzogQ2VydGlmaWNhdGUoJ2RhdGFfZmlsZXMvdGVzdC1jYTIuY3J0JywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdkYXRhX2ZpbGVzL2VjZHNhX3NlY3A1MjFyMS5jcnQnLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2RhdGFfZmlsZXMvZWNkc2Ffc2VjcDUyMXIxLmtleScpLAotICAgICdyc2FfcHNzX3JzYWVfc2hhMjU2JzogQ2VydGlmaWNhdGUoJ2RhdGFfZmlsZXMvdGVzdC1jYV9jYXQxMi5jcnQnLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2RhdGFfZmlsZXMvc2VydmVyMi1zaGEyNTYuY3J0JywgJ2RhdGFfZmlsZXMvc2VydmVyMi5rZXknCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApCisgICAgJ2VjZHNhX3NlY3AyNTZyMV9zaGEyNTYnOiBDZXJ0aWZpY2F0ZSgnJERBVEFfRklMRVNfUEFUSC90ZXN0LWNhMi5jcnQnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJyREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDI1NnIxLmNydCcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnJERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwMjU2cjEua2V5JyksCisgICAgJ2VjZHNhX3NlY3AzODRyMV9zaGEzODQnOiBDZXJ0aWZpY2F0ZSgnJERBVEFfRklMRVNfUEFUSC90ZXN0LWNhMi5jcnQnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJyREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDM4NHIxLmNydCcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnJERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwMzg0cjEua2V5JyksCisgICAgJ2VjZHNhX3NlY3A1MjFyMV9zaGE1MTInOiBDZXJ0aWZpY2F0ZSgnJERBVEFfRklMRVNfUEFUSC90ZXN0LWNhMi5jcnQnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJyREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDUyMXIxLmNydCcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnJERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwNTIxcjEua2V5JyksCisgICAgJ3JzYV9wc3NfcnNhZV9zaGEyNTYnOiBDZXJ0aWZpY2F0ZSgnJERBVEFfRklMRVNfUEFUSC90ZXN0LWNhX2NhdDEyLmNydCcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnJERBVEFfRklMRVNfUEFUSC9zZXJ2ZXIyLXNoYTI1Ni5jcnQnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJyREQVRBX0ZJTEVTX1BBVEgvc2VydmVyMi5rZXknKQogfQogCiBDSVBIRVJfU1VJVEVfSUFOQV9WQUxVRSA9IHsKQEAgLTU0OSw2ICs1NDksOSBAQAogIyBBTkQgUkVHRU5FUkFURSBUSElTIEZJTEUuCiAjCiAnJycKK0RBVEFfRklMRVNfUEFUSF9WQVIgPSAnJycKK0RBVEFfRklMRVNfUEFUSD0uLi9mcmFtZXdvcmsvZGF0YV9maWxlcworJycnCiAKIGRlZiBtYWluKCk6CiAgICAgIiIiCkBAIC02MjgsNiArNjMxLDcgQEAKICAgICAgICAgICAgIHdpdGggb3BlbihhcmdzLm91dHB1dCwgJ3cnLCBlbmNvZGluZz0idXRmLTgiKSBhcyBmOgogICAgICAgICAgICAgICAgIGYud3JpdGUoU1NMX09VVFBVVF9IRUFERVIuZm9ybWF0KAogICAgICAgICAgICAgICAgICAgICBmaWxlbmFtZT1vcy5wYXRoLmJhc2VuYW1lKGFyZ3Mub3V0cHV0KSwgY21kPScgJy5qb2luKHN5cy5hcmd2KSkpCisgICAgICAgICAgICAgICAgZi53cml0ZShEQVRBX0ZJTEVTX1BBVEhfVkFSKQogICAgICAgICAgICAgICAgIGYud3JpdGUoJ1xuXG4nLmpvaW4oZ2V0X2FsbF90ZXN0X2Nhc2VzKCkpKQogICAgICAgICAgICAgICAgIGYud3JpdGUoJ1xuJykKICAgICAgICAgZWxzZToKZGlmZiAtLWdpdCBhL3Rlc3RzL3NjcmlwdHMvbGlzdF9pbnRlcm5hbF9pZGVudGlmaWVycy5weSBiL3Rlc3RzL3NjcmlwdHMvbGlzdF9pbnRlcm5hbF9pZGVudGlmaWVycy5weQppbmRleCBiNjQ4Y2UyLi4wNTJmZWNhIDEwMDc1NQotLS0gYS90ZXN0cy9zY3JpcHRzL2xpc3RfaW50ZXJuYWxfaWRlbnRpZmllcnMucHkKKysrIGIvdGVzdHMvc2NyaXB0cy9saXN0X2ludGVybmFsX2lkZW50aWZpZXJzLnB5CkBAIC0zMyw3ICszMyw5IEBACiAgICAgbmFtZV9jaGVjayA9IENvZGVQYXJzZXIobG9nZ2luZy5nZXRMb2dnZXIoKSkKICAgICByZXN1bHQgPSBuYW1lX2NoZWNrLnBhcnNlX2lkZW50aWZpZXJzKFsKICAgICAgICAgImluY2x1ZGUvbWJlZHRscy8qX2ludGVybmFsLmgiLAotICAgICAgICAibGlicmFyeS8qLmgiCisgICAgICAgICJsaWJyYXJ5LyouaCIsCisgICAgICAgICJ0Zi1wc2EtY3J5cHRvL2NvcmUvKi5oIiwKKyAgICAgICAgInRmLXBzYS1jcnlwdG8vZHJpdmVycy9idWlsdGluL3NyYy8qLmgiCiAgICAgXSlbMF0KICAgICByZXN1bHQuc29ydChrZXk9bGFtYmRhIHg6IHgubmFtZSkKIApkaWZmIC0tZ2l0IGEvdGVzdHMvc2NyaXB0cy90ZXN0LXJlZi1jb25maWdzLnBsIGIvdGVzdHMvc2NyaXB0cy90ZXN0LXJlZi1jb25maWdzLnBsCmluZGV4IDU1NTdkZTMuLjkxOTgyOTMgMTAwNzU1Ci0tLSBhL3Rlc3RzL3NjcmlwdHMvdGVzdC1yZWYtY29uZmlncy5wbAorKysgYi90ZXN0cy9zY3JpcHRzL3Rlc3QtcmVmLWNvbmZpZ3MucGwKQEAgLTI0LDggKzI0LDYgQEAKICAgICAgICAgJ29wdCcgPT4gJyAnLAogICAgICAgICAnb3B0X25lZWRzX2RlYnVnJyA9PiAxLAogICAgIH0sCi0gICAgJ2NvbmZpZy1uby1lbnRyb3B5LmgnID0+IHsKLSAgICB9LAogICAgICdjb25maWctc3VpdGUtYi5oJyA9PiB7CiAgICAgICAgICdjb21wYXQnID0+ICItbSB0bHMxMiAtZiAnRUNESEVfRUNEU0EuKkFFUy4qR0NNJyAtcCBtYmVkVExTIiwKICAgICAgICAgJ29wdCcgPT4gJyAnLApkaWZmIC0tZ2l0IGEvdGVzdHMvc2NyaXB0cy90ZXN0X3BzYV9jb21wbGlhbmNlLnB5IGIvdGVzdHMvc2NyaXB0cy90ZXN0X3BzYV9jb21wbGlhbmNlLnB5CmluZGV4IGI1MDBmZTUuLjdjMDlhZmMgMTAwNzU1Ci0tLSBhL3Rlc3RzL3NjcmlwdHMvdGVzdF9wc2FfY29tcGxpYW5jZS5weQorKysgYi90ZXN0cy9zY3JpcHRzL3Rlc3RfcHNhX2NvbXBsaWFuY2UucHkKQEAgLTM5LDcgKzM5LDE0IEBACiAgICAgaW5fdGZfcHNhX2NyeXB0b19yZXBvID0gYnVpbGRfdHJlZS5sb29rc19saWtlX3RmX3BzYV9jcnlwdG9fcm9vdChyb290X2RpcikKIAogICAgIGNyeXB0b19uYW1lID0gYnVpbGRfdHJlZS5jcnlwdG9fbGlicmFyeV9maWxlbmFtZShyb290X2RpcikKLSAgICBsaWJyYXJ5X3N1YmRpciA9IGJ1aWxkX3RyZWUuY3J5cHRvX2NvcmVfZGlyZWN0b3J5KHJvb3RfZGlyLCByZWxhdGl2ZT1UcnVlKQorCisgICAgIyBUZW1wb3JhcnksIHdoaWxlIHRoZSBjcnlwdG8gbGlicmFyeSBpcyBzdGlsbCBsb2NhdGVkIGluIHRoZSBsaWJyYXJ5CisgICAgIyBkaXJlY3RvcnkuIFRoaXMgd2lsbCBub3QgYmUgdGhlIGNhc2UgYW55bW9yZSB3aGVuIGl0IHdpbGwgYmUgYnVpbHQgYnkKKyAgICAjIHRoZSBURi1QU0EtQ3J5cHRvIGJ1aWxkIHN5c3RlbS4KKyAgICBpZiBpbl90Zl9wc2FfY3J5cHRvX3JlcG86CisgICAgICAgIGxpYnJhcnlfc3ViZGlyID0gYnVpbGRfdHJlZS5jcnlwdG9fY29yZV9kaXJlY3Rvcnkocm9vdF9kaXIsIHJlbGF0aXZlPVRydWUpCisgICAgZWxzZToKKyAgICAgICAgbGlicmFyeV9zdWJkaXIgPSAnbGlicmFyeScKIAogICAgIGNyeXB0b19saWJfZmlsZW5hbWUgPSAobGlicmFyeV9idWlsZF9kaXIgKyAnLycgKwogICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlicmFyeV9zdWJkaXIgKyAnLycgKwpAQCAtNzMsOSArODAsMTQgQEAKICAgICAgICAgb3MubWtkaXIoYnVpbGRfZGlyKQogICAgICAgICBvcy5jaGRpcihidWlsZF9kaXIpCiAKLSAgICAgICAgZXh0cmFfaW5jbHVkZXMgPSAoJzt7fS9kcml2ZXJzL2J1aWx0aW4vaW5jbHVkZScuZm9ybWF0KHJvb3RfZGlyKQotICAgICAgICAgICAgICAgICAgICAgICAgICBpZiBpbl90Zl9wc2FfY3J5cHRvX3JlcG8gZWxzZQotICAgICAgICAgICAgICAgICAgICAgICAgICAnO3t9L3RmLXBzYS1jcnlwdG8vaW5jbHVkZScuZm9ybWF0KHJvb3RfZGlyKSkKKyAgICAgICAgIyBUZW1wb3Jhcnkgd2hpbGUgdGhlIFBTQSBjb21wbGlhbmNlIHRlc3Qgc3VpdGUgaXMgc3RpbGwgcnVuIGFzIHBhcnQKKyAgICAgICAgIyBvZiBNYmVkIFRMUyB0ZXN0aW5nLiBXaGVuIGl0IGlzIG5vdCB0aGUgY2FzZSBhbnltb3JlLCB0aGUgc2Vjb25kIGNhc2UKKyAgICAgICAgIyBjYW4gYmUgcmVtb3ZlZC4KKyAgICAgICAgaWYgaW5fdGZfcHNhX2NyeXB0b19yZXBvOgorICAgICAgICAgICAgZXh0cmFfaW5jbHVkZXMgPSAnO3t9L2RyaXZlcnMvYnVpbHRpbi9pbmNsdWRlJy5mb3JtYXQocm9vdF9kaXIpCisgICAgICAgIGVsaWYgb3MucGF0aC5pc2Rpcihvcy5wYXRoLmpvaW4ocm9vdF9kaXIsICd0Zi1wc2EtY3J5cHRvJykpOgorICAgICAgICAgICAgZXh0cmFfaW5jbHVkZXMgPSAnO3t9L3RmLXBzYS1jcnlwdG8vaW5jbHVkZScuZm9ybWF0KHJvb3RfZGlyKSArIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCc7e30vdGYtcHNhLWNyeXB0by9kcml2ZXJzL2J1aWx0aW4vaW5jbHVkZScuZm9ybWF0KHJvb3RfZGlyKSkKIAogICAgICAgICAjcHlsaW50OiBkaXNhYmxlPWJhZC1jb250aW51YXRpb24KICAgICAgICAgc3VicHJvY2Vzcy5jaGVja19jYWxsKFsKZGlmZiAtLWdpdCBhL3Rlc3RzL3NjcmlwdHMvdGVzdF9wc2FfY29uc3RhbnRfbmFtZXMucHkgYi90ZXN0cy9zY3JpcHRzL3Rlc3RfcHNhX2NvbnN0YW50X25hbWVzLnB5CmluZGV4IDZjOWQ5MDUuLmYzNTM1MWMgMTAwNzU1Ci0tLSBhL3Rlc3RzL3NjcmlwdHMvdGVzdF9wc2FfY29uc3RhbnRfbmFtZXMucHkKKysrIGIvdGVzdHMvc2NyaXB0cy90ZXN0X3BzYV9jb25zdGFudF9uYW1lcy5weQpAQCAtMTYxLDcgKzE2MSw5IEBACiBkZWYgbWFpbigpOgogICAgIHBhcnNlciA9IGFyZ3BhcnNlLkFyZ3VtZW50UGFyc2VyKGRlc2NyaXB0aW9uPWdsb2JhbHMoKVsnX19kb2NfXyddKQogICAgIHBhcnNlci5hZGRfYXJndW1lbnQoJy0taW5jbHVkZScsICctSScsCi0gICAgICAgICAgICAgICAgICAgICAgICBhY3Rpb249J2FwcGVuZCcsIGRlZmF1bHQ9Wyd0Zi1wc2EtY3J5cHRvL2luY2x1ZGUnLCAnaW5jbHVkZSddLAorICAgICAgICAgICAgICAgICAgICAgICAgYWN0aW9uPSdhcHBlbmQnLCBkZWZhdWx0PVsndGYtcHNhLWNyeXB0by9pbmNsdWRlJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3RmLXBzYS1jcnlwdG8vZHJpdmVycy9idWlsdGluL2luY2x1ZGUnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnaW5jbHVkZSddLAogICAgICAgICAgICAgICAgICAgICAgICAgaGVscD0nRGlyZWN0b3J5IGZvciBoZWFkZXIgZmlsZXMnKQogICAgIHBhcnNlci5hZGRfYXJndW1lbnQoJy0ta2VlcC1jJywKICAgICAgICAgICAgICAgICAgICAgICAgIGFjdGlvbj0nc3RvcmVfdHJ1ZScsIGRlc3Q9J2tlZXBfYycsIGRlZmF1bHQ9RmFsc2UsCmRpZmYgLS1naXQgYS90ZXN0cy9zcmMvY2VydHMuYyBiL3Rlc3RzL3NyYy9jZXJ0cy5jCmluZGV4IDg3OWYwODguLjU2YzU2YjUgMTAwNjQ0Ci0tLSBhL3Rlc3RzL3NyYy9jZXJ0cy5jCisrKyBiL3Rlc3RzL3NyYy9jZXJ0cy5jCkBAIC0zMDEsMTMgKzMwMSwxMyBAQAogICogRGlzcGF0Y2ggYmV0d2VlbiBTSEEtMSBhbmQgU0hBLTI1NgogICovCiAKLSNpZiBkZWZpbmVkKE1CRURUTFNfTURfQ0FOX1NIQTI1NikKKyNpZiBkZWZpbmVkKFBTQV9XQU5UX0FMR19TSEFfMjU2KQogI2RlZmluZSBURVNUX0NBX0NSVF9SU0EgIFRFU1RfQ0FfQ1JUX1JTQV9TSEEyNTYKICNkZWZpbmUgVEVTVF9TUlZfQ1JUX1JTQSBURVNUX1NSVl9DUlRfUlNBX1NIQTI1NgogI2Vsc2UKICNkZWZpbmUgVEVTVF9DQV9DUlRfUlNBICBURVNUX0NBX0NSVF9SU0FfU0hBMQogI2RlZmluZSBURVNUX1NSVl9DUlRfUlNBIFRFU1RfU1JWX0NSVF9SU0FfU0hBMQotI2VuZGlmIC8qIE1CRURUTFNfTURfQ0FOX1NIQTI1NiAqLworI2VuZGlmIC8qIFBTQV9XQU5UX0FMR19TSEFfMjU2ICovCiAKIGNvbnN0IGNoYXIgbWJlZHRsc190ZXN0X2NhX2NydF9yc2FbXSAgPSBURVNUX0NBX0NSVF9SU0E7CiBjb25zdCBjaGFyIG1iZWR0bHNfdGVzdF9zcnZfY3J0X3JzYVtdID0gVEVTVF9TUlZfQ1JUX1JTQTsKQEAgLTQwOSw3ICs0MDksNyBAQAogI2lmIGRlZmluZWQoTUJFRFRMU19SU0FfQykgJiYgZGVmaW5lZChNQkVEVExTX01EX0NBTl9TSEExKQogICAgIG1iZWR0bHNfdGVzdF9jYV9jcnRfcnNhX3NoYTEsCiAjZW5kaWYKLSNpZiBkZWZpbmVkKE1CRURUTFNfUlNBX0MpICYmIGRlZmluZWQoTUJFRFRMU19NRF9DQU5fU0hBMjU2KQorI2lmIGRlZmluZWQoTUJFRFRMU19SU0FfQykgJiYgZGVmaW5lZChQU0FfV0FOVF9BTEdfU0hBXzI1NikKICAgICBtYmVkdGxzX3Rlc3RfY2FfY3J0X3JzYV9zaGEyNTYsCiAjZW5kaWYKICNpZiBkZWZpbmVkKE1CRURUTFNfUEtfQ0FOX0VDRFNBX1NPTUUpCkBAIC00MjEsNyArNDIxLDcgQEAKICNpZiBkZWZpbmVkKE1CRURUTFNfUlNBX0MpICYmIGRlZmluZWQoTUJFRFRMU19NRF9DQU5fU0hBMSkKICAgICBzaXplb2YobWJlZHRsc190ZXN0X2NhX2NydF9yc2Ffc2hhMSksCiAjZW5kaWYKLSNpZiBkZWZpbmVkKE1CRURUTFNfUlNBX0MpICYmIGRlZmluZWQoTUJFRFRMU19NRF9DQU5fU0hBMjU2KQorI2lmIGRlZmluZWQoTUJFRFRMU19SU0FfQykgJiYgZGVmaW5lZChQU0FfV0FOVF9BTEdfU0hBXzI1NikKICAgICBzaXplb2YobWJlZHRsc190ZXN0X2NhX2NydF9yc2Ffc2hhMjU2KSwKICNlbmRpZgogI2lmIGRlZmluZWQoTUJFRFRMU19QS19DQU5fRUNEU0FfU09NRSkKQEAgLTQzMyw5ICs0MzMsOSBAQAogLyogTGlzdCBvZiBhbGwgYXZhaWxhYmxlIENBIGNlcnRpZmljYXRlcyBpbiBERVIgZm9ybWF0ICovCiBjb25zdCB1bnNpZ25lZCBjaGFyICptYmVkdGxzX3Rlc3RfY2FzX2RlcltdID0gewogI2lmIGRlZmluZWQoTUJFRFRMU19SU0FfQykKLSNpZiBkZWZpbmVkKE1CRURUTFNfTURfQ0FOX1NIQTI1NikKKyNpZiBkZWZpbmVkKFBTQV9XQU5UX0FMR19TSEFfMjU2KQogICAgIG1iZWR0bHNfdGVzdF9jYV9jcnRfcnNhX3NoYTI1Nl9kZXIsCi0jZW5kaWYgLyogTUJFRFRMU19NRF9DQU5fU0hBMjU2ICovCisjZW5kaWYgLyogUFNBX1dBTlRfQUxHX1NIQV8yNTYgKi8KICNpZiBkZWZpbmVkKE1CRURUTFNfTURfQ0FOX1NIQTEpCiAgICAgbWJlZHRsc190ZXN0X2NhX2NydF9yc2Ffc2hhMV9kZXIsCiAjZW5kaWYgLyogTUJFRFRMU19NRF9DQU5fU0hBMSAqLwpAQCAtNDQ4LDkgKzQ0OCw5IEBACiAKIGNvbnN0IHNpemVfdCBtYmVkdGxzX3Rlc3RfY2FzX2Rlcl9sZW5bXSA9IHsKICNpZiBkZWZpbmVkKE1CRURUTFNfUlNBX0MpCi0jaWYgZGVmaW5lZChNQkVEVExTX01EX0NBTl9TSEEyNTYpCisjaWYgZGVmaW5lZChQU0FfV0FOVF9BTEdfU0hBXzI1NikKICAgICBzaXplb2YobWJlZHRsc190ZXN0X2NhX2NydF9yc2Ffc2hhMjU2X2RlciksCi0jZW5kaWYgLyogTUJFRFRMU19NRF9DQU5fU0hBMjU2ICovCisjZW5kaWYgLyogUFNBX1dBTlRfQUxHX1NIQV8yNTYgKi8KICNpZiBkZWZpbmVkKE1CRURUTFNfTURfQ0FOX1NIQTEpCiAgICAgc2l6ZW9mKG1iZWR0bHNfdGVzdF9jYV9jcnRfcnNhX3NoYTFfZGVyKSwKICNlbmRpZiAvKiBNQkVEVExTX01EX0NBTl9TSEExICovCkBAIC00NjUsOSArNDY1LDkgQEAKICNpZiBkZWZpbmVkKE1CRURUTFNfUEVNX1BBUlNFX0MpCiBjb25zdCBjaGFyIG1iZWR0bHNfdGVzdF9jYXNfcGVtW10gPQogI2lmIGRlZmluZWQoTUJFRFRMU19SU0FfQykKLSNpZiBkZWZpbmVkKE1CRURUTFNfTURfQ0FOX1NIQTI1NikKKyNpZiBkZWZpbmVkKFBTQV9XQU5UX0FMR19TSEFfMjU2KQogICAgIFRFU1RfQ0FfQ1JUX1JTQV9TSEEyNTZfUEVNCi0jZW5kaWYgLyogTUJFRFRMU19NRF9DQU5fU0hBMjU2ICovCisjZW5kaWYgLyogUFNBX1dBTlRfQUxHX1NIQV8yNTYgKi8KICNpZiBkZWZpbmVkKE1CRURUTFNfTURfQ0FOX1NIQTEpCiAgICAgVEVTVF9DQV9DUlRfUlNBX1NIQTFfUEVNCiAjZW5kaWYgLyogTUJFRFRMU19NRF9DQU5fU0hBMSAqLwpkaWZmIC0tZ2l0IGEvdGVzdHMvc3JjL2RyaXZlcnMvaGFzaC5jIGIvdGVzdHMvc3JjL2RyaXZlcnMvaGFzaC5jCmluZGV4IDc2ZWMxMmEuLjI0MTZiYTggMTAwNjQ0Ci0tLSBhL3Rlc3RzL3NyYy9kcml2ZXJzL2hhc2guYworKysgYi90ZXN0cy9zcmMvZHJpdmVycy9oYXNoLmMKQEAgLTEzLDcgKzEzLDcgQEAKICNpbmNsdWRlICJ0ZXN0L2RyaXZlcnMvaGFzaC5oIgogCiAjaWYgZGVmaW5lZChNQkVEVExTX1RFU1RfTElCVEVTVERSSVZFUjEpCi0jaW5jbHVkZSAibGlidGVzdGRyaXZlcjEvbGlicmFyeS9wc2FfY3J5cHRvX2hhc2guaCIKKyNpbmNsdWRlICJsaWJ0ZXN0ZHJpdmVyMS90Zi1wc2EtY3J5cHRvL2NvcmUvcHNhX2NyeXB0b19oYXNoLmgiCiAjZW5kaWYKIAogbWJlZHRsc190ZXN0X2RyaXZlcl9oYXNoX2hvb2tzX3QKZGlmZiAtLWdpdCBhL3Rlc3RzL3NyYy9kcml2ZXJzL3Rlc3RfZHJpdmVyX2FlYWQuYyBiL3Rlc3RzL3NyYy9kcml2ZXJzL3Rlc3RfZHJpdmVyX2FlYWQuYwppbmRleCAzMTRjZTgzLi4wODBiNGRiIDEwMDY0NAotLS0gYS90ZXN0cy9zcmMvZHJpdmVycy90ZXN0X2RyaXZlcl9hZWFkLmMKKysrIGIvdGVzdHMvc3JjL2RyaXZlcnMvdGVzdF9kcml2ZXJfYWVhZC5jCkBAIC0xNiw3ICsxNiw3IEBACiAjaW5jbHVkZSAibWJlZHRscy9jb25zdGFudF90aW1lLmgiCiAKICNpZiBkZWZpbmVkKE1CRURUTFNfVEVTVF9MSUJURVNURFJJVkVSMSkKLSNpbmNsdWRlICJsaWJ0ZXN0ZHJpdmVyMS9saWJyYXJ5L3BzYV9jcnlwdG9fYWVhZC5oIgorI2luY2x1ZGUgImxpYnRlc3Rkcml2ZXIxL3RmLXBzYS1jcnlwdG8vY29yZS9wc2FfY3J5cHRvX2FlYWQuaCIKICNlbmRpZgogCiBtYmVkdGxzX3Rlc3RfZHJpdmVyX2FlYWRfaG9va3NfdApkaWZmIC0tZ2l0IGEvdGVzdHMvc3JjL2RyaXZlcnMvdGVzdF9kcml2ZXJfYXN5bW1ldHJpY19lbmNyeXB0aW9uLmMgYi90ZXN0cy9zcmMvZHJpdmVycy90ZXN0X2RyaXZlcl9hc3ltbWV0cmljX2VuY3J5cHRpb24uYwppbmRleCA0ZmM4YzlkLi41NWUwOWIyIDEwMDY0NAotLS0gYS90ZXN0cy9zcmMvZHJpdmVycy90ZXN0X2RyaXZlcl9hc3ltbWV0cmljX2VuY3J5cHRpb24uYworKysgYi90ZXN0cy9zcmMvZHJpdmVycy90ZXN0X2RyaXZlcl9hc3ltbWV0cmljX2VuY3J5cHRpb24uYwpAQCAtMTYsNyArMTYsNyBAQAogI2luY2x1ZGUgInRlc3QvZHJpdmVycy9rZXlfbWFuYWdlbWVudC5oIgogCiAjaWYgZGVmaW5lZChNQkVEVExTX1RFU1RfTElCVEVTVERSSVZFUjEpCi0jaW5jbHVkZSAibGlidGVzdGRyaXZlcjEvbGlicmFyeS9wc2FfY3J5cHRvX3JzYS5oIgorI2luY2x1ZGUgImxpYnRlc3Rkcml2ZXIxL3RmLXBzYS1jcnlwdG8vY29yZS9wc2FfY3J5cHRvX3JzYS5oIgogI2VuZGlmCiAKICNkZWZpbmUgUFNBX1JTQV9LRVlfUEFJUl9NQVhfU0laRSBcCmRpZmYgLS1naXQgYS90ZXN0cy9zcmMvZHJpdmVycy90ZXN0X2RyaXZlcl9jaXBoZXIuYyBiL3Rlc3RzL3NyYy9kcml2ZXJzL3Rlc3RfZHJpdmVyX2NpcGhlci5jCmluZGV4IDJiYzc1MWEuLmFjZTBlZDMgMTAwNjQ0Ci0tLSBhL3Rlc3RzL3NyYy9kcml2ZXJzL3Rlc3RfZHJpdmVyX2NpcGhlci5jCisrKyBiL3Rlc3RzL3NyYy9kcml2ZXJzL3Rlc3RfZHJpdmVyX2NpcGhlci5jCkBAIC0xOSw3ICsxOSw3IEBACiAjaW5jbHVkZSAidGVzdC9yYW5kb20uaCIKIAogI2lmIGRlZmluZWQoTUJFRFRMU19URVNUX0xJQlRFU1REUklWRVIxKQotI2luY2x1ZGUgImxpYnRlc3Rkcml2ZXIxL2xpYnJhcnkvcHNhX2NyeXB0b19jaXBoZXIuaCIKKyNpbmNsdWRlICJsaWJ0ZXN0ZHJpdmVyMS90Zi1wc2EtY3J5cHRvL2NvcmUvcHNhX2NyeXB0b19jaXBoZXIuaCIKICNlbmRpZgogCiAjaW5jbHVkZSA8c3RyaW5nLmg+CmRpZmYgLS1naXQgYS90ZXN0cy9zcmMvZHJpdmVycy90ZXN0X2RyaXZlcl9rZXlfYWdyZWVtZW50LmMgYi90ZXN0cy9zcmMvZHJpdmVycy90ZXN0X2RyaXZlcl9rZXlfYWdyZWVtZW50LmMKaW5kZXggNTk0ZmNkNS4uOGE4ZTNhOCAxMDA2NDQKLS0tIGEvdGVzdHMvc3JjL2RyaXZlcnMvdGVzdF9kcml2ZXJfa2V5X2FncmVlbWVudC5jCisrKyBiL3Rlc3RzL3NyYy9kcml2ZXJzL3Rlc3RfZHJpdmVyX2tleV9hZ3JlZW1lbnQuYwpAQCAtMjEsOCArMjEsOCBAQAogCiAjaWYgZGVmaW5lZChNQkVEVExTX1RFU1RfTElCVEVTVERSSVZFUjEpCiAjaW5jbHVkZSAibGlidGVzdGRyaXZlcjEvdGYtcHNhLWNyeXB0by9pbmNsdWRlL3BzYS9jcnlwdG8uaCIKLSNpbmNsdWRlICJsaWJ0ZXN0ZHJpdmVyMS9saWJyYXJ5L3BzYV9jcnlwdG9fZWNwLmgiCi0jaW5jbHVkZSAibGlidGVzdGRyaXZlcjEvbGlicmFyeS9wc2FfY3J5cHRvX2ZmZGguaCIKKyNpbmNsdWRlICJsaWJ0ZXN0ZHJpdmVyMS90Zi1wc2EtY3J5cHRvL2NvcmUvcHNhX2NyeXB0b19lY3AuaCIKKyNpbmNsdWRlICJsaWJ0ZXN0ZHJpdmVyMS90Zi1wc2EtY3J5cHRvL2NvcmUvcHNhX2NyeXB0b19mZmRoLmgiCiAjZW5kaWYKIAogbWJlZHRsc190ZXN0X2RyaXZlcl9rZXlfYWdyZWVtZW50X2hvb2tzX3QKZGlmZiAtLWdpdCBhL3Rlc3RzL3NyYy9kcml2ZXJzL3Rlc3RfZHJpdmVyX2tleV9tYW5hZ2VtZW50LmMgYi90ZXN0cy9zcmMvZHJpdmVycy90ZXN0X2RyaXZlcl9rZXlfbWFuYWdlbWVudC5jCmluZGV4IDJhODc4OTkuLmMwODY5ZjEgMTAwNjQ0Ci0tLSBhL3Rlc3RzL3NyYy9kcml2ZXJzL3Rlc3RfZHJpdmVyX2tleV9tYW5hZ2VtZW50LmMKKysrIGIvdGVzdHMvc3JjL2RyaXZlcnMvdGVzdF9kcml2ZXJfa2V5X21hbmFnZW1lbnQuYwpAQCAtMjMsOSArMjMsOSBAQAogI2luY2x1ZGUgInRlc3QvcmFuZG9tLmgiCiAKICNpZiBkZWZpbmVkKE1CRURUTFNfVEVTVF9MSUJURVNURFJJVkVSMSkKLSNpbmNsdWRlICJsaWJ0ZXN0ZHJpdmVyMS9saWJyYXJ5L3BzYV9jcnlwdG9fZWNwLmgiCi0jaW5jbHVkZSAibGlidGVzdGRyaXZlcjEvbGlicmFyeS9wc2FfY3J5cHRvX3JzYS5oIgotI2luY2x1ZGUgImxpYnRlc3Rkcml2ZXIxL2xpYnJhcnkvcHNhX2NyeXB0b19mZmRoLmgiCisjaW5jbHVkZSAibGlidGVzdGRyaXZlcjEvdGYtcHNhLWNyeXB0by9jb3JlL3BzYV9jcnlwdG9fZWNwLmgiCisjaW5jbHVkZSAibGlidGVzdGRyaXZlcjEvdGYtcHNhLWNyeXB0by9jb3JlL3BzYV9jcnlwdG9fcnNhLmgiCisjaW5jbHVkZSAibGlidGVzdGRyaXZlcjEvdGYtcHNhLWNyeXB0by9jb3JlL3BzYV9jcnlwdG9fZmZkaC5oIgogI2VuZGlmCiAKICNpbmNsdWRlIDxzdHJpbmcuaD4KZGlmZiAtLWdpdCBhL3Rlc3RzL3NyYy9kcml2ZXJzL3Rlc3RfZHJpdmVyX21hYy5jIGIvdGVzdHMvc3JjL2RyaXZlcnMvdGVzdF9kcml2ZXJfbWFjLmMKaW5kZXggOWY4MTIwYi4uZGU0M2U0OSAxMDA2NDQKLS0tIGEvdGVzdHMvc3JjL2RyaXZlcnMvdGVzdF9kcml2ZXJfbWFjLmMKKysrIGIvdGVzdHMvc3JjL2RyaXZlcnMvdGVzdF9kcml2ZXJfbWFjLmMKQEAgLTEzLDcgKzEzLDcgQEAKICNpbmNsdWRlICJ0ZXN0L2RyaXZlcnMvbWFjLmgiCiAKICNpZiBkZWZpbmVkKE1CRURUTFNfVEVTVF9MSUJURVNURFJJVkVSMSkKLSNpbmNsdWRlICJsaWJ0ZXN0ZHJpdmVyMS9saWJyYXJ5L3BzYV9jcnlwdG9fbWFjLmgiCisjaW5jbHVkZSAibGlidGVzdGRyaXZlcjEvdGYtcHNhLWNyeXB0by9jb3JlL3BzYV9jcnlwdG9fbWFjLmgiCiAjZW5kaWYKIAogbWJlZHRsc190ZXN0X2RyaXZlcl9tYWNfaG9va3NfdCBtYmVkdGxzX3Rlc3RfZHJpdmVyX21hY19ob29rcyA9CmRpZmYgLS1naXQgYS90ZXN0cy9zcmMvZHJpdmVycy90ZXN0X2RyaXZlcl9wYWtlLmMgYi90ZXN0cy9zcmMvZHJpdmVycy90ZXN0X2RyaXZlcl9wYWtlLmMKaW5kZXggNTIzOTVlNC4uOTYzMTEwMSAxMDA2NDQKLS0tIGEvdGVzdHMvc3JjL2RyaXZlcnMvdGVzdF9kcml2ZXJfcGFrZS5jCisrKyBiL3Rlc3RzL3NyYy9kcml2ZXJzL3Rlc3RfZHJpdmVyX3Bha2UuYwpAQCAtMTQsNyArMTQsNyBAQAogI2luY2x1ZGUgInN0cmluZy5oIgogCiAjaWYgZGVmaW5lZChNQkVEVExTX1RFU1RfTElCVEVTVERSSVZFUjEpCi0jaW5jbHVkZSAibGlidGVzdGRyaXZlcjEvbGlicmFyeS9wc2FfY3J5cHRvX3Bha2UuaCIKKyNpbmNsdWRlICJsaWJ0ZXN0ZHJpdmVyMS90Zi1wc2EtY3J5cHRvL2NvcmUvcHNhX2NyeXB0b19wYWtlLmgiCiAjZW5kaWYKIAogbWJlZHRsc190ZXN0X2RyaXZlcl9wYWtlX2hvb2tzX3QgbWJlZHRsc190ZXN0X2RyaXZlcl9wYWtlX2hvb2tzID0KZGlmZiAtLWdpdCBhL3Rlc3RzL3NyYy9kcml2ZXJzL3Rlc3RfZHJpdmVyX3NpZ25hdHVyZS5jIGIvdGVzdHMvc3JjL2RyaXZlcnMvdGVzdF9kcml2ZXJfc2lnbmF0dXJlLmMKaW5kZXggNGZjYTVkMS4uMDJjNjI5OCAxMDA2NDQKLS0tIGEvdGVzdHMvc3JjL2RyaXZlcnMvdGVzdF9kcml2ZXJfc2lnbmF0dXJlLmMKKysrIGIvdGVzdHMvc3JjL2RyaXZlcnMvdGVzdF9kcml2ZXJfc2lnbmF0dXJlLmMKQEAgLTI2LDkgKzI2LDkgQEAKICNpbmNsdWRlICJ0ZXN0L3JhbmRvbS5oIgogCiAjaWYgZGVmaW5lZChNQkVEVExTX1RFU1RfTElCVEVTVERSSVZFUjEpCi0jaW5jbHVkZSAibGlidGVzdGRyaXZlcjEvbGlicmFyeS9wc2FfY3J5cHRvX2VjcC5oIgotI2luY2x1ZGUgImxpYnRlc3Rkcml2ZXIxL2xpYnJhcnkvcHNhX2NyeXB0b19oYXNoLmgiCi0jaW5jbHVkZSAibGlidGVzdGRyaXZlcjEvbGlicmFyeS9wc2FfY3J5cHRvX3JzYS5oIgorI2luY2x1ZGUgImxpYnRlc3Rkcml2ZXIxL3RmLXBzYS1jcnlwdG8vY29yZS9wc2FfY3J5cHRvX2VjcC5oIgorI2luY2x1ZGUgImxpYnRlc3Rkcml2ZXIxL3RmLXBzYS1jcnlwdG8vY29yZS9wc2FfY3J5cHRvX2hhc2guaCIKKyNpbmNsdWRlICJsaWJ0ZXN0ZHJpdmVyMS90Zi1wc2EtY3J5cHRvL2NvcmUvcHNhX2NyeXB0b19yc2EuaCIKICNlbmRpZgogCiAjaW5jbHVkZSA8c3RyaW5nLmg+CmRpZmYgLS1naXQgYS90ZXN0cy9zcmMvcHNhX2V4ZXJjaXNlX2tleS5jIGIvdGVzdHMvc3JjL3BzYV9leGVyY2lzZV9rZXkuYwppbmRleCA5MzdiZDQ1Li5iMjIzMjc2IDEwMDY0NAotLS0gYS90ZXN0cy9zcmMvcHNhX2V4ZXJjaXNlX2tleS5jCisrKyBiL3Rlc3RzL3NyYy9wc2FfZXhlcmNpc2Vfa2V5LmMKQEAgLTExLDcgKzExLDcgQEAKICNpbmNsdWRlIDx0ZXN0L21hY3Jvcy5oPgogI2luY2x1ZGUgPHRlc3QvcHNhX2V4ZXJjaXNlX2tleS5oPgogCi0jaWYgZGVmaW5lZChNQkVEVExTX1BTQV9DUllQVE9fQykKKyNpZiBkZWZpbmVkKE1CRURUTFNfUFNBX0NSWVBUT19DTElFTlQpCiAKICNpbmNsdWRlIDxtYmVkdGxzL2FzbjEuaD4KICNpbmNsdWRlIDxwc2EvY3J5cHRvLmg+CkBAIC0xMzMyLDQgKzEzMzIsNCBAQAogfQogI2VuZGlmIC8qIE1CRURUTFNfUEtfQyAqLwogCi0jZW5kaWYgLyogTUJFRFRMU19QU0FfQ1JZUFRPX0MgKi8KKyNlbmRpZiAvKiBNQkVEVExTX1BTQV9DUllQVE9fQ0xJRU5UICovCmRpZmYgLS1naXQgYS90ZXN0cy9zcmMvcHNhX3Rlc3Rfd3JhcHBlcnMuYyBiL3Rlc3RzL3NyYy9wc2FfdGVzdF93cmFwcGVycy5jCmluZGV4IDgwOWYxY2QuLjI0ZTA1YzggMTAwNjQ0Ci0tLSBhL3Rlc3RzL3NyYy9wc2FfdGVzdF93cmFwcGVycy5jCisrKyBiL3Rlc3RzL3NyYy9wc2FfdGVzdF93cmFwcGVycy5jCkBAIC00NjUsNiArNDY1LDcgQEAKIH0KIAogLyogV3JhcHBlciBmb3IgcHNhX2NyeXB0b19kcml2ZXJfcGFrZV9nZXRfY2lwaGVyX3N1aXRlICovCisjaWYgZGVmaW5lZChQU0FfV0FOVF9BTEdfU09NRV9QQUtFKQogcHNhX3N0YXR1c190IG1iZWR0bHNfdGVzdF93cmFwX3BzYV9jcnlwdG9fZHJpdmVyX3Bha2VfZ2V0X2NpcGhlcl9zdWl0ZSgKICAgICBjb25zdCBwc2FfY3J5cHRvX2RyaXZlcl9wYWtlX2lucHV0c190ICphcmcwX2lucHV0cywKICAgICBwc2FfcGFrZV9jaXBoZXJfc3VpdGVfdCAqYXJnMV9jaXBoZXJfc3VpdGUpCkBAIC00NzIsOCArNDczLDEwIEBACiAgICAgcHNhX3N0YXR1c190IHN0YXR1cyA9IChwc2FfY3J5cHRvX2RyaXZlcl9wYWtlX2dldF9jaXBoZXJfc3VpdGUpKGFyZzBfaW5wdXRzLCBhcmcxX2NpcGhlcl9zdWl0ZSk7CiAgICAgcmV0dXJuIHN0YXR1czsKIH0KKyNlbmRpZiAvKiBkZWZpbmVkKFBTQV9XQU5UX0FMR19TT01FX1BBS0UpICovCiAKIC8qIFdyYXBwZXIgZm9yIHBzYV9jcnlwdG9fZHJpdmVyX3Bha2VfZ2V0X3Bhc3N3b3JkICovCisjaWYgZGVmaW5lZChQU0FfV0FOVF9BTEdfU09NRV9QQUtFKQogcHNhX3N0YXR1c190IG1iZWR0bHNfdGVzdF93cmFwX3BzYV9jcnlwdG9fZHJpdmVyX3Bha2VfZ2V0X3Bhc3N3b3JkKAogICAgIGNvbnN0IHBzYV9jcnlwdG9fZHJpdmVyX3Bha2VfaW5wdXRzX3QgKmFyZzBfaW5wdXRzLAogICAgIHVpbnQ4X3QgKmFyZzFfYnVmZmVyLApAQCAtNDgzLDggKzQ4NiwxMCBAQAogICAgIHBzYV9zdGF0dXNfdCBzdGF0dXMgPSAocHNhX2NyeXB0b19kcml2ZXJfcGFrZV9nZXRfcGFzc3dvcmQpKGFyZzBfaW5wdXRzLCBhcmcxX2J1ZmZlciwgYXJnMl9idWZmZXJfc2l6ZSwgYXJnM19idWZmZXJfbGVuZ3RoKTsKICAgICByZXR1cm4gc3RhdHVzOwogfQorI2VuZGlmIC8qIGRlZmluZWQoUFNBX1dBTlRfQUxHX1NPTUVfUEFLRSkgKi8KIAogLyogV3JhcHBlciBmb3IgcHNhX2NyeXB0b19kcml2ZXJfcGFrZV9nZXRfcGFzc3dvcmRfbGVuICovCisjaWYgZGVmaW5lZChQU0FfV0FOVF9BTEdfU09NRV9QQUtFKQogcHNhX3N0YXR1c190IG1iZWR0bHNfdGVzdF93cmFwX3BzYV9jcnlwdG9fZHJpdmVyX3Bha2VfZ2V0X3Bhc3N3b3JkX2xlbigKICAgICBjb25zdCBwc2FfY3J5cHRvX2RyaXZlcl9wYWtlX2lucHV0c190ICphcmcwX2lucHV0cywKICAgICBzaXplX3QgKmFyZzFfcGFzc3dvcmRfbGVuKQpAQCAtNDkyLDggKzQ5NywxMCBAQAogICAgIHBzYV9zdGF0dXNfdCBzdGF0dXMgPSAocHNhX2NyeXB0b19kcml2ZXJfcGFrZV9nZXRfcGFzc3dvcmRfbGVuKShhcmcwX2lucHV0cywgYXJnMV9wYXNzd29yZF9sZW4pOwogICAgIHJldHVybiBzdGF0dXM7CiB9CisjZW5kaWYgLyogZGVmaW5lZChQU0FfV0FOVF9BTEdfU09NRV9QQUtFKSAqLwogCiAvKiBXcmFwcGVyIGZvciBwc2FfY3J5cHRvX2RyaXZlcl9wYWtlX2dldF9wZWVyICovCisjaWYgZGVmaW5lZChQU0FfV0FOVF9BTEdfU09NRV9QQUtFKQogcHNhX3N0YXR1c190IG1iZWR0bHNfdGVzdF93cmFwX3BzYV9jcnlwdG9fZHJpdmVyX3Bha2VfZ2V0X3BlZXIoCiAgICAgY29uc3QgcHNhX2NyeXB0b19kcml2ZXJfcGFrZV9pbnB1dHNfdCAqYXJnMF9pbnB1dHMsCiAgICAgdWludDhfdCAqYXJnMV9wZWVyX2lkLApAQCAtNTAzLDggKzUxMCwxMCBAQAogICAgIHBzYV9zdGF0dXNfdCBzdGF0dXMgPSAocHNhX2NyeXB0b19kcml2ZXJfcGFrZV9nZXRfcGVlcikoYXJnMF9pbnB1dHMsIGFyZzFfcGVlcl9pZCwgYXJnMl9wZWVyX2lkX3NpemUsIGFyZzNfcGVlcl9pZF9sZW5ndGgpOwogICAgIHJldHVybiBzdGF0dXM7CiB9CisjZW5kaWYgLyogZGVmaW5lZChQU0FfV0FOVF9BTEdfU09NRV9QQUtFKSAqLwogCiAvKiBXcmFwcGVyIGZvciBwc2FfY3J5cHRvX2RyaXZlcl9wYWtlX2dldF9wZWVyX2xlbiAqLworI2lmIGRlZmluZWQoUFNBX1dBTlRfQUxHX1NPTUVfUEFLRSkKIHBzYV9zdGF0dXNfdCBtYmVkdGxzX3Rlc3Rfd3JhcF9wc2FfY3J5cHRvX2RyaXZlcl9wYWtlX2dldF9wZWVyX2xlbigKICAgICBjb25zdCBwc2FfY3J5cHRvX2RyaXZlcl9wYWtlX2lucHV0c190ICphcmcwX2lucHV0cywKICAgICBzaXplX3QgKmFyZzFfcGVlcl9sZW4pCkBAIC01MTIsOCArNTIxLDEwIEBACiAgICAgcHNhX3N0YXR1c190IHN0YXR1cyA9IChwc2FfY3J5cHRvX2RyaXZlcl9wYWtlX2dldF9wZWVyX2xlbikoYXJnMF9pbnB1dHMsIGFyZzFfcGVlcl9sZW4pOwogICAgIHJldHVybiBzdGF0dXM7CiB9CisjZW5kaWYgLyogZGVmaW5lZChQU0FfV0FOVF9BTEdfU09NRV9QQUtFKSAqLwogCiAvKiBXcmFwcGVyIGZvciBwc2FfY3J5cHRvX2RyaXZlcl9wYWtlX2dldF91c2VyICovCisjaWYgZGVmaW5lZChQU0FfV0FOVF9BTEdfU09NRV9QQUtFKQogcHNhX3N0YXR1c190IG1iZWR0bHNfdGVzdF93cmFwX3BzYV9jcnlwdG9fZHJpdmVyX3Bha2VfZ2V0X3VzZXIoCiAgICAgY29uc3QgcHNhX2NyeXB0b19kcml2ZXJfcGFrZV9pbnB1dHNfdCAqYXJnMF9pbnB1dHMsCiAgICAgdWludDhfdCAqYXJnMV91c2VyX2lkLApAQCAtNTIzLDggKzUzNCwxMCBAQAogICAgIHBzYV9zdGF0dXNfdCBzdGF0dXMgPSAocHNhX2NyeXB0b19kcml2ZXJfcGFrZV9nZXRfdXNlcikoYXJnMF9pbnB1dHMsIGFyZzFfdXNlcl9pZCwgYXJnMl91c2VyX2lkX3NpemUsIGFyZzNfdXNlcl9pZF9sZW4pOwogICAgIHJldHVybiBzdGF0dXM7CiB9CisjZW5kaWYgLyogZGVmaW5lZChQU0FfV0FOVF9BTEdfU09NRV9QQUtFKSAqLwogCiAvKiBXcmFwcGVyIGZvciBwc2FfY3J5cHRvX2RyaXZlcl9wYWtlX2dldF91c2VyX2xlbiAqLworI2lmIGRlZmluZWQoUFNBX1dBTlRfQUxHX1NPTUVfUEFLRSkKIHBzYV9zdGF0dXNfdCBtYmVkdGxzX3Rlc3Rfd3JhcF9wc2FfY3J5cHRvX2RyaXZlcl9wYWtlX2dldF91c2VyX2xlbigKICAgICBjb25zdCBwc2FfY3J5cHRvX2RyaXZlcl9wYWtlX2lucHV0c190ICphcmcwX2lucHV0cywKICAgICBzaXplX3QgKmFyZzFfdXNlcl9sZW4pCkBAIC01MzIsNiArNTQ1LDcgQEAKICAgICBwc2Ffc3RhdHVzX3Qgc3RhdHVzID0gKHBzYV9jcnlwdG9fZHJpdmVyX3Bha2VfZ2V0X3VzZXJfbGVuKShhcmcwX2lucHV0cywgYXJnMV91c2VyX2xlbik7CiAgICAgcmV0dXJuIHN0YXR1czsKIH0KKyNlbmRpZiAvKiBkZWZpbmVkKFBTQV9XQU5UX0FMR19TT01FX1BBS0UpICovCiAKIC8qIFdyYXBwZXIgZm9yIHBzYV9jcnlwdG9faW5pdCAqLwogcHNhX3N0YXR1c190IG1iZWR0bHNfdGVzdF93cmFwX3BzYV9jcnlwdG9faW5pdCh2b2lkKQpAQCAtMTAwOCwxNCArMTAyMiwxNyBAQAogfQogCiAvKiBXcmFwcGVyIGZvciBwc2FfcGFrZV9hYm9ydCAqLworI2lmIGRlZmluZWQoUFNBX1dBTlRfQUxHX1NPTUVfUEFLRSkKIHBzYV9zdGF0dXNfdCBtYmVkdGxzX3Rlc3Rfd3JhcF9wc2FfcGFrZV9hYm9ydCgKICAgICBwc2FfcGFrZV9vcGVyYXRpb25fdCAqYXJnMF9vcGVyYXRpb24pCiB7CiAgICAgcHNhX3N0YXR1c190IHN0YXR1cyA9IChwc2FfcGFrZV9hYm9ydCkoYXJnMF9vcGVyYXRpb24pOwogICAgIHJldHVybiBzdGF0dXM7CiB9CisjZW5kaWYgLyogZGVmaW5lZChQU0FfV0FOVF9BTEdfU09NRV9QQUtFKSAqLwogCiAvKiBXcmFwcGVyIGZvciBwc2FfcGFrZV9nZXRfaW1wbGljaXRfa2V5ICovCisjaWYgZGVmaW5lZChQU0FfV0FOVF9BTEdfU09NRV9QQUtFKQogcHNhX3N0YXR1c190IG1iZWR0bHNfdGVzdF93cmFwX3BzYV9wYWtlX2dldF9pbXBsaWNpdF9rZXkoCiAgICAgcHNhX3Bha2Vfb3BlcmF0aW9uX3QgKmFyZzBfb3BlcmF0aW9uLAogICAgIHBzYV9rZXlfZGVyaXZhdGlvbl9vcGVyYXRpb25fdCAqYXJnMV9vdXRwdXQpCkBAIC0xMDIzLDggKzEwNDAsMTAgQEAKICAgICBwc2Ffc3RhdHVzX3Qgc3RhdHVzID0gKHBzYV9wYWtlX2dldF9pbXBsaWNpdF9rZXkpKGFyZzBfb3BlcmF0aW9uLCBhcmcxX291dHB1dCk7CiAgICAgcmV0dXJuIHN0YXR1czsKIH0KKyNlbmRpZiAvKiBkZWZpbmVkKFBTQV9XQU5UX0FMR19TT01FX1BBS0UpICovCiAKIC8qIFdyYXBwZXIgZm9yIHBzYV9wYWtlX2lucHV0ICovCisjaWYgZGVmaW5lZChQU0FfV0FOVF9BTEdfU09NRV9QQUtFKQogcHNhX3N0YXR1c190IG1iZWR0bHNfdGVzdF93cmFwX3BzYV9wYWtlX2lucHV0KAogICAgIHBzYV9wYWtlX29wZXJhdGlvbl90ICphcmcwX29wZXJhdGlvbiwKICAgICBwc2FfcGFrZV9zdGVwX3QgYXJnMV9zdGVwLApAQCAtMTA0MCw4ICsxMDU5LDEwIEBACiAjZW5kaWYgLyogIWRlZmluZWQoTUJFRFRMU19QU0FfQVNTVU1FX0VYQ0xVU0lWRV9CVUZGRVJTKSAqLwogICAgIHJldHVybiBzdGF0dXM7CiB9CisjZW5kaWYgLyogZGVmaW5lZChQU0FfV0FOVF9BTEdfU09NRV9QQUtFKSAqLwogCiAvKiBXcmFwcGVyIGZvciBwc2FfcGFrZV9vdXRwdXQgKi8KKyNpZiBkZWZpbmVkKFBTQV9XQU5UX0FMR19TT01FX1BBS0UpCiBwc2Ffc3RhdHVzX3QgbWJlZHRsc190ZXN0X3dyYXBfcHNhX3Bha2Vfb3V0cHV0KAogICAgIHBzYV9wYWtlX29wZXJhdGlvbl90ICphcmcwX29wZXJhdGlvbiwKICAgICBwc2FfcGFrZV9zdGVwX3QgYXJnMV9zdGVwLApAQCAtMTA1OCw4ICsxMDc5LDEwIEBACiAjZW5kaWYgLyogIWRlZmluZWQoTUJFRFRMU19QU0FfQVNTVU1FX0VYQ0xVU0lWRV9CVUZGRVJTKSAqLwogICAgIHJldHVybiBzdGF0dXM7CiB9CisjZW5kaWYgLyogZGVmaW5lZChQU0FfV0FOVF9BTEdfU09NRV9QQUtFKSAqLwogCiAvKiBXcmFwcGVyIGZvciBwc2FfcGFrZV9zZXRfcGFzc3dvcmRfa2V5ICovCisjaWYgZGVmaW5lZChQU0FfV0FOVF9BTEdfU09NRV9QQUtFKQogcHNhX3N0YXR1c190IG1iZWR0bHNfdGVzdF93cmFwX3BzYV9wYWtlX3NldF9wYXNzd29yZF9rZXkoCiAgICAgcHNhX3Bha2Vfb3BlcmF0aW9uX3QgKmFyZzBfb3BlcmF0aW9uLAogICAgIG1iZWR0bHNfc3ZjX2tleV9pZF90IGFyZzFfcGFzc3dvcmQpCkBAIC0xMDY3LDggKzEwOTAsMTAgQEAKICAgICBwc2Ffc3RhdHVzX3Qgc3RhdHVzID0gKHBzYV9wYWtlX3NldF9wYXNzd29yZF9rZXkpKGFyZzBfb3BlcmF0aW9uLCBhcmcxX3Bhc3N3b3JkKTsKICAgICByZXR1cm4gc3RhdHVzOwogfQorI2VuZGlmIC8qIGRlZmluZWQoUFNBX1dBTlRfQUxHX1NPTUVfUEFLRSkgKi8KIAogLyogV3JhcHBlciBmb3IgcHNhX3Bha2Vfc2V0X3BlZXIgKi8KKyNpZiBkZWZpbmVkKFBTQV9XQU5UX0FMR19TT01FX1BBS0UpCiBwc2Ffc3RhdHVzX3QgbWJlZHRsc190ZXN0X3dyYXBfcHNhX3Bha2Vfc2V0X3BlZXIoCiAgICAgcHNhX3Bha2Vfb3BlcmF0aW9uX3QgKmFyZzBfb3BlcmF0aW9uLAogICAgIGNvbnN0IHVpbnQ4X3QgKmFyZzFfcGVlcl9pZCwKQEAgLTEwODMsOCArMTEwOCwxMCBAQAogI2VuZGlmIC8qICFkZWZpbmVkKE1CRURUTFNfUFNBX0FTU1VNRV9FWENMVVNJVkVfQlVGRkVSUykgKi8KICAgICByZXR1cm4gc3RhdHVzOwogfQorI2VuZGlmIC8qIGRlZmluZWQoUFNBX1dBTlRfQUxHX1NPTUVfUEFLRSkgKi8KIAogLyogV3JhcHBlciBmb3IgcHNhX3Bha2Vfc2V0X3JvbGUgKi8KKyNpZiBkZWZpbmVkKFBTQV9XQU5UX0FMR19TT01FX1BBS0UpCiBwc2Ffc3RhdHVzX3QgbWJlZHRsc190ZXN0X3dyYXBfcHNhX3Bha2Vfc2V0X3JvbGUoCiAgICAgcHNhX3Bha2Vfb3BlcmF0aW9uX3QgKmFyZzBfb3BlcmF0aW9uLAogICAgIHBzYV9wYWtlX3JvbGVfdCBhcmcxX3JvbGUpCkBAIC0xMDkyLDggKzExMTksMTAgQEAKICAgICBwc2Ffc3RhdHVzX3Qgc3RhdHVzID0gKHBzYV9wYWtlX3NldF9yb2xlKShhcmcwX29wZXJhdGlvbiwgYXJnMV9yb2xlKTsKICAgICByZXR1cm4gc3RhdHVzOwogfQorI2VuZGlmIC8qIGRlZmluZWQoUFNBX1dBTlRfQUxHX1NPTUVfUEFLRSkgKi8KIAogLyogV3JhcHBlciBmb3IgcHNhX3Bha2Vfc2V0X3VzZXIgKi8KKyNpZiBkZWZpbmVkKFBTQV9XQU5UX0FMR19TT01FX1BBS0UpCiBwc2Ffc3RhdHVzX3QgbWJlZHRsc190ZXN0X3dyYXBfcHNhX3Bha2Vfc2V0X3VzZXIoCiAgICAgcHNhX3Bha2Vfb3BlcmF0aW9uX3QgKmFyZzBfb3BlcmF0aW9uLAogICAgIGNvbnN0IHVpbnQ4X3QgKmFyZzFfdXNlcl9pZCwKQEAgLTExMDgsOCArMTEzNywxMCBAQAogI2VuZGlmIC8qICFkZWZpbmVkKE1CRURUTFNfUFNBX0FTU1VNRV9FWENMVVNJVkVfQlVGRkVSUykgKi8KICAgICByZXR1cm4gc3RhdHVzOwogfQorI2VuZGlmIC8qIGRlZmluZWQoUFNBX1dBTlRfQUxHX1NPTUVfUEFLRSkgKi8KIAogLyogV3JhcHBlciBmb3IgcHNhX3Bha2Vfc2V0dXAgKi8KKyNpZiBkZWZpbmVkKFBTQV9XQU5UX0FMR19TT01FX1BBS0UpCiBwc2Ffc3RhdHVzX3QgbWJlZHRsc190ZXN0X3dyYXBfcHNhX3Bha2Vfc2V0dXAoCiAgICAgcHNhX3Bha2Vfb3BlcmF0aW9uX3QgKmFyZzBfb3BlcmF0aW9uLAogICAgIGNvbnN0IHBzYV9wYWtlX2NpcGhlcl9zdWl0ZV90ICphcmcxX2NpcGhlcl9zdWl0ZSkKQEAgLTExMTcsNiArMTE0OCw3IEBACiAgICAgcHNhX3N0YXR1c190IHN0YXR1cyA9IChwc2FfcGFrZV9zZXR1cCkoYXJnMF9vcGVyYXRpb24sIGFyZzFfY2lwaGVyX3N1aXRlKTsKICAgICByZXR1cm4gc3RhdHVzOwogfQorI2VuZGlmIC8qIGRlZmluZWQoUFNBX1dBTlRfQUxHX1NPTUVfUEFLRSkgKi8KIAogLyogV3JhcHBlciBmb3IgcHNhX3B1cmdlX2tleSAqLwogcHNhX3N0YXR1c190IG1iZWR0bHNfdGVzdF93cmFwX3BzYV9wdXJnZV9rZXkoCmRpZmYgLS1naXQgYS90ZXN0cy9zc2wtb3B0LnNoIGIvdGVzdHMvc3NsLW9wdC5zaAppbmRleCA3OGY2YTk1Li4wYjhmMTI5IDEwMDc1NQotLS0gYS90ZXN0cy9zc2wtb3B0LnNoCisrKyBiL3Rlc3RzL3NzbC1vcHQuc2gKQEAgLTI5LDYgKzI5LDggQEAKICAgICBleGl0IDEyNQogZmkKIAorREFUQV9GSUxFU19QQVRIPS4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzCisKICMgZGVmYXVsdCB2YWx1ZXMsIGNhbiBiZSBvdmVycmlkZGVuIGJ5IHRoZSBlbnZpcm9ubWVudAogOiAke1BfU1JWOj0uLi9wcm9ncmFtcy9zc2wvc3NsX3NlcnZlcjJ9CiA6ICR7UF9DTEk6PS4uL3Byb2dyYW1zL3NzbC9zc2xfY2xpZW50Mn0KQEAgLTYwLDEyICs2MiwxMiBAQAogOiAke01CRURUTFNfVEVTVF9PVVRDT01FX0ZJTEU9fQogOiAke01CRURUTFNfVEVTVF9DT05GSUdVUkFUSU9OOj0iJChndWVzc19jb25maWdfbmFtZSkifQogOiAke01CRURUTFNfVEVTVF9QTEFURk9STTo9IiQodW5hbWUgLXMgfCB0ciAtYyBcXG4wLTlBLVphLXogXyktJCh1bmFtZSAtbSB8IHRyIC1jIFxcbjAtOUEtWmEteiBfKSJ9Ci06ICR7RUFSTFlfREFUQV9JTlBVVDo9ZGF0YV9maWxlcy90bHMxM19lYXJseV9kYXRhLnR4dH0KKzogJHtFQVJMWV9EQVRBX0lOUFVUOj0iJERBVEFfRklMRVNfUEFUSC90bHMxM19lYXJseV9kYXRhLnR4dCJ9CiAKLU9fU1JWPSIkT1BFTlNTTCBzX3NlcnZlciAtd3d3IC1jZXJ0IGRhdGFfZmlsZXMvc2VydmVyNS5jcnQgLWtleSBkYXRhX2ZpbGVzL3NlcnZlcjUua2V5IgorT19TUlY9IiRPUEVOU1NMIHNfc2VydmVyIC13d3cgLWNlcnQgJERBVEFfRklMRVNfUEFUSC9zZXJ2ZXI1LmNydCAta2V5ICREQVRBX0ZJTEVTX1BBVEgvc2VydmVyNS5rZXkiCiBPX0NMST0iZWNobyAnR0VUIC8gSFRUUC8xLjAnIHwgJE9QRU5TU0wgc19jbGllbnQiCi1HX1NSVj0iJEdOVVRMU19TRVJWIC0teDUwOWNlcnRmaWxlIGRhdGFfZmlsZXMvc2VydmVyNS5jcnQgLS14NTA5a2V5ZmlsZSBkYXRhX2ZpbGVzL3NlcnZlcjUua2V5IgotR19DTEk9ImVjaG8gJ0dFVCAvIEhUVFAvMS4wJyB8ICRHTlVUTFNfQ0xJIC0teDUwOWNhZmlsZSBkYXRhX2ZpbGVzL3Rlc3QtY2FfY2F0MTIuY3J0IgorR19TUlY9IiRHTlVUTFNfU0VSViAtLXg1MDljZXJ0ZmlsZSAkREFUQV9GSUxFU19QQVRIL3NlcnZlcjUuY3J0IC0teDUwOWtleWZpbGUgJERBVEFfRklMRVNfUEFUSC9zZXJ2ZXI1LmtleSIKK0dfQ0xJPSJlY2hvICdHRVQgLyBIVFRQLzEuMCcgfCAkR05VVExTX0NMSSAtLXg1MDljYWZpbGUgJERBVEFfRklMRVNfUEFUSC90ZXN0LWNhX2NhdDEyLmNydCIKIFRDUF9DTElFTlQ9IiRQRVJMIHNjcmlwdHMvdGNwX2NsaWVudC5wbCIKIAogIyBhbHRlcm5hdGl2ZSB2ZXJzaW9ucyBvZiBPcGVuU1NMIGFuZCBHbnVUTFMgKG5vIGRlZmF1bHQgcGF0aCkKQEAgLTk3LDEwICs5OSwxMCBAQAogZmkKIAogaWYgWyAtbiAiJHtPUEVOU1NMX05FWFQ6LX0iIF07IHRoZW4KLSAgICBPX05FWFRfU1JWPSIkT1BFTlNTTF9ORVhUIHNfc2VydmVyIC13d3cgLWNlcnQgZGF0YV9maWxlcy9zZXJ2ZXI1LmNydCAta2V5IGRhdGFfZmlsZXMvc2VydmVyNS5rZXkiCi0gICAgT19ORVhUX1NSVl9FQVJMWV9EQVRBPSIkT1BFTlNTTF9ORVhUIHNfc2VydmVyIC1lYXJseV9kYXRhIC1jZXJ0IGRhdGFfZmlsZXMvc2VydmVyNS5jcnQgLWtleSBkYXRhX2ZpbGVzL3NlcnZlcjUua2V5IgorICAgIE9fTkVYVF9TUlY9IiRPUEVOU1NMX05FWFQgc19zZXJ2ZXIgLXd3dyAtY2VydCAkREFUQV9GSUxFU19QQVRIL3NlcnZlcjUuY3J0IC1rZXkgJERBVEFfRklMRVNfUEFUSC9zZXJ2ZXI1LmtleSIKKyAgICBPX05FWFRfU1JWX0VBUkxZX0RBVEE9IiRPUEVOU1NMX05FWFQgc19zZXJ2ZXIgLWVhcmx5X2RhdGEgLWNlcnQgJERBVEFfRklMRVNfUEFUSC9zZXJ2ZXI1LmNydCAta2V5ICREQVRBX0ZJTEVTX1BBVEgvc2VydmVyNS5rZXkiCiAgICAgT19ORVhUX1NSVl9OT19DRVJUPSIkT1BFTlNTTF9ORVhUIHNfc2VydmVyIC13d3cgIgotICAgIE9fTkVYVF9DTEk9ImVjaG8gJ0dFVCAvIEhUVFAvMS4wJyB8ICRPUEVOU1NMX05FWFQgc19jbGllbnQgLUNBZmlsZSBkYXRhX2ZpbGVzL3Rlc3QtY2FfY2F0MTIuY3J0IgorICAgIE9fTkVYVF9DTEk9ImVjaG8gJ0dFVCAvIEhUVFAvMS4wJyB8ICRPUEVOU1NMX05FWFQgc19jbGllbnQgLUNBZmlsZSAkREFUQV9GSUxFU19QQVRIL3Rlc3QtY2FfY2F0MTIuY3J0IgogICAgIE9fTkVYVF9DTElfTk9fQ0VSVD0iZWNobyAnR0VUIC8gSFRUUC8xLjAnIHwgJE9QRU5TU0xfTkVYVCBzX2NsaWVudCIKIGVsc2UKICAgICBPX05FWFRfU1JWPWZhbHNlCkBAIC0xMTEsNyArMTEzLDcgQEAKIGZpCiAKIGlmIFsgLW4gIiR7R05VVExTX05FWFRfU0VSVjotfSIgXTsgdGhlbgotICAgIEdfTkVYVF9TUlY9IiRHTlVUTFNfTkVYVF9TRVJWIC0teDUwOWNlcnRmaWxlIGRhdGFfZmlsZXMvc2VydmVyNS5jcnQgLS14NTA5a2V5ZmlsZSBkYXRhX2ZpbGVzL3NlcnZlcjUua2V5IgorICAgIEdfTkVYVF9TUlY9IiRHTlVUTFNfTkVYVF9TRVJWIC0teDUwOWNlcnRmaWxlICREQVRBX0ZJTEVTX1BBVEgvc2VydmVyNS5jcnQgLS14NTA5a2V5ZmlsZSAkREFUQV9GSUxFU19QQVRIL3NlcnZlcjUua2V5IgogICAgIEdfTkVYVF9TUlZfTk9fQ0VSVD0iJEdOVVRMU19ORVhUX1NFUlYiCiBlbHNlCiAgICAgR19ORVhUX1NSVj1mYWxzZQpAQCAtMTE5LDcgKzEyMSw3IEBACiBmaQogCiBpZiBbIC1uICIke0dOVVRMU19ORVhUX0NMSTotfSIgXTsgdGhlbgotICAgIEdfTkVYVF9DTEk9ImVjaG8gJ0dFVCAvIEhUVFAvMS4wJyB8ICRHTlVUTFNfTkVYVF9DTEkgLS14NTA5Y2FmaWxlIGRhdGFfZmlsZXMvdGVzdC1jYV9jYXQxMi5jcnQiCisgICAgR19ORVhUX0NMST0iZWNobyAnR0VUIC8gSFRUUC8xLjAnIHwgJEdOVVRMU19ORVhUX0NMSSAtLXg1MDljYWZpbGUgJERBVEFfRklMRVNfUEFUSC90ZXN0LWNhX2NhdDEyLmNydCIKICAgICBHX05FWFRfQ0xJX05PX0NFUlQ9ImVjaG8gJ0dFVCAvIEhUVFAvMS4wJyB8ICRHTlVUTFNfTkVYVF9DTEkiCiBlbHNlCiAgICAgR19ORVhUX0NMST1mYWxzZQpAQCAtMTcwOSw3ICsxNzExLDcgQEAKIAogICAgICMgQ2hlY2sgaWYgdGVzdCB1c2VzIGZpbGVzCiAgICAgY2FzZSAiJFNSVl9DTUQgJENMSV9DTUQiIGluCi0gICAgICAgICpkYXRhX2ZpbGVzLyopCisgICAgICAgICokREFUQV9GSUxFU19QQVRILyopCiAgICAgICAgICAgICByZXF1aXJlc19jb25maWdfZW5hYmxlZCBNQkVEVExTX0ZTX0lPOzsKICAgICBlc2FjCiAKQEAgLTE4MTcsNyArMTgxOSw3IEBACiAjIGEgbWF4aW11bSBmcmFnbWVudCBsZW5ndGguCiAjICBmaXJzdCBhcmd1bWVudCAoJDEpIGlzIE1GTCBmb3IgU1NMIGNsaWVudAogIyAgc2Vjb25kIGFyZ3VtZW50ICgkMikgaXMgbWVtb3J5IHVzYWdlIGZvciBTU0wgY2xpZW50IHdpdGggZGVmYXVsdCBNRkwgKDE2aykKLXJ1bl90ZXN0X21lbW9yeV9hZnRlcl9oYW5zaGFrZV93aXRoX21mbCgpCitydW5fdGVzdF9tZW1vcnlfYWZ0ZXJfaGFuZHNoYWtlX3dpdGhfbWZsKCkKIHsKICAgICAjIFRoZSB0ZXN0IHBhc3NlcyBpZiB0aGUgZGlmZmVyZW5jZSBpcyBhcm91bmQgMiooMTZrLU1GTCkKICAgICBNRU1PUllfVVNBR0VfTElNSVQ9IiQoKCAkMiAtICggMiAqICggMTYzODQgLSAkMSApKSApKSIKQEAgLTE4MjgsNyArMTgzMCw3IEBACiAgICAgcnVuX3Rlc3QgICAgIkhhbmRzaGFrZSBtZW1vcnkgdXNhZ2UgKE1GTCAkMSkiIFwKICAgICAgICAgICAgICAgICAiJFBfU1JWIGRlYnVnX2xldmVsPTMgYXV0aF9tb2RlPXJlcXVpcmVkIGZvcmNlX3ZlcnNpb249dGxzMTIiIFwKICAgICAgICAgICAgICAgICAiJFBfQ0xJIGRlYnVnX2xldmVsPTMgXAotICAgICAgICAgICAgICAgICAgICBjcnRfZmlsZT1kYXRhX2ZpbGVzL3NlcnZlcjUuY3J0IGtleV9maWxlPWRhdGFfZmlsZXMvc2VydmVyNS5rZXkgXAorICAgICAgICAgICAgICAgICAgICBjcnRfZmlsZT0kREFUQV9GSUxFU19QQVRIL3NlcnZlcjUuY3J0IGtleV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvc2VydmVyNS5rZXkgXAogICAgICAgICAgICAgICAgICAgICBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMtRUNESEUtRUNEU0EtV0lUSC1BRVMtMTI4LUNDTSBtYXhfZnJhZ19sZW49JDEiIFwKICAgICAgICAgICAgICAgICAwIFwKICAgICAgICAgICAgICAgICAtRiAiaGFuZHNoYWtlX21lbW9yeV9jaGVjayAkTUVNT1JZX1VTQUdFX0xJTUlUIgpAQCAtMTgzNyw3ICsxODM5LDcgQEAKIAogIyBUZXN0IHRoYXQgdGhlIHNlcnZlcidzIG1lbW9yeSB1c2FnZSBhZnRlciBhIGhhbmRzaGFrZSBpcyByZWR1Y2VkIHdoZW4gYSBjbGllbnQgc3BlY2lmaWVzCiAjIGRpZmZlcmVudCB2YWx1ZXMgb2YgTWF4aW11bSBGcmFnbWVudCBMZW5ndGg6IGRlZmF1bHQgKDE2ayksIDRrLCAyaywgMWsgYW5kIDUxMiBieXRlcwotcnVuX3Rlc3RzX21lbW9yeV9hZnRlcl9oYW5zaGFrZSgpCitydW5fdGVzdHNfbWVtb3J5X2FmdGVyX2hhbmRzaGFrZSgpCiB7CiAgICAgIyBhbGwgdGVzdHMgaW4gdGhpcyBzZXF1ZW5jZSByZXF1aXJlcyB0aGUgc2FtZSBjb25maWd1cmF0aW9uIChzZWUgcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQoKSkKICAgICBTS0lQX1RISVNfVEVTVFM9IiRTS0lQX05FWFQiCkBAIC0xODQ3LDIyICsxODQ5LDIyIEBACiAgICAgcnVuX3Rlc3QgICAgIkhhbmRzaGFrZSBtZW1vcnkgdXNhZ2UgaW5pdGlhbCAoTUZMIDE2Mzg0IC0gZGVmYXVsdCkiIFwKICAgICAgICAgICAgICAgICAiJFBfU1JWIGRlYnVnX2xldmVsPTMgYXV0aF9tb2RlPXJlcXVpcmVkIGZvcmNlX3ZlcnNpb249dGxzMTIiIFwKICAgICAgICAgICAgICAgICAiJFBfQ0xJIGRlYnVnX2xldmVsPTMgXAotICAgICAgICAgICAgICAgICAgICBjcnRfZmlsZT1kYXRhX2ZpbGVzL3NlcnZlcjUuY3J0IGtleV9maWxlPWRhdGFfZmlsZXMvc2VydmVyNS5rZXkgXAorICAgICAgICAgICAgICAgICAgICBjcnRfZmlsZT0kREFUQV9GSUxFU19QQVRIL3NlcnZlcjUuY3J0IGtleV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvc2VydmVyNS5rZXkgXAogICAgICAgICAgICAgICAgICAgICBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMtRUNESEUtRUNEU0EtV0lUSC1BRVMtMTI4LUNDTSIgXAogICAgICAgICAgICAgICAgIDAgXAogICAgICAgICAgICAgICAgIC1GICJoYW5kc2hha2VfbWVtb3J5X2dldCBNRU1PUllfVVNBR0VfTUZMXzE2SyIKIAogICAgIFNLSVBfTkVYVD0iJFNLSVBfVEhJU19URVNUUyIKLSAgICBydW5fdGVzdF9tZW1vcnlfYWZ0ZXJfaGFuc2hha2Vfd2l0aF9tZmwgNDA5NiAiJE1FTU9SWV9VU0FHRV9NRkxfMTZLIgorICAgIHJ1bl90ZXN0X21lbW9yeV9hZnRlcl9oYW5kc2hha2Vfd2l0aF9tZmwgNDA5NiAiJE1FTU9SWV9VU0FHRV9NRkxfMTZLIgogCiAgICAgU0tJUF9ORVhUPSIkU0tJUF9USElTX1RFU1RTIgotICAgIHJ1bl90ZXN0X21lbW9yeV9hZnRlcl9oYW5zaGFrZV93aXRoX21mbCAyMDQ4ICIkTUVNT1JZX1VTQUdFX01GTF8xNksiCisgICAgcnVuX3Rlc3RfbWVtb3J5X2FmdGVyX2hhbmRzaGFrZV93aXRoX21mbCAyMDQ4ICIkTUVNT1JZX1VTQUdFX01GTF8xNksiCiAKICAgICBTS0lQX05FWFQ9IiRTS0lQX1RISVNfVEVTVFMiCi0gICAgcnVuX3Rlc3RfbWVtb3J5X2FmdGVyX2hhbnNoYWtlX3dpdGhfbWZsIDEwMjQgIiRNRU1PUllfVVNBR0VfTUZMXzE2SyIKKyAgICBydW5fdGVzdF9tZW1vcnlfYWZ0ZXJfaGFuZHNoYWtlX3dpdGhfbWZsIDEwMjQgIiRNRU1PUllfVVNBR0VfTUZMXzE2SyIKIAogICAgIFNLSVBfTkVYVD0iJFNLSVBfVEhJU19URVNUUyIKLSAgICBydW5fdGVzdF9tZW1vcnlfYWZ0ZXJfaGFuc2hha2Vfd2l0aF9tZmwgNTEyICIkTUVNT1JZX1VTQUdFX01GTF8xNksiCisgICAgcnVuX3Rlc3RfbWVtb3J5X2FmdGVyX2hhbmRzaGFrZV93aXRoX21mbCA1MTIgIiRNRU1PUllfVVNBR0VfTUZMXzE2SyIKIH0KIAogY2xlYW51cCgpIHsKQEAgLTIxMjAsNyArMjEyMiw3IEBACiByZXF1aXJlc19oYXNoX2FsZyBTSEFfMjU2CiBydW5fdGVzdCAgICAiVExTOiBwYXNzd29yZCBwcm90ZWN0ZWQgY2xpZW50IGtleSIgXAogICAgICAgICAgICAgIiRQX1NSViBmb3JjZV92ZXJzaW9uPXRsczEyIGF1dGhfbW9kZT1yZXF1aXJlZCIgXAotICAgICAgICAgICAgIiRQX0NMSSBjcnRfZmlsZT1kYXRhX2ZpbGVzL3NlcnZlcjUuY3J0IGtleV9maWxlPWRhdGFfZmlsZXMvc2VydmVyNS5rZXkuZW5jIGtleV9wd2Q9UG9sYXJTU0xUZXN0IiBcCisgICAgICAgICAgICAiJFBfQ0xJIGNydF9maWxlPSREQVRBX0ZJTEVTX1BBVEgvc2VydmVyNS5jcnQga2V5X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9zZXJ2ZXI1LmtleS5lbmMga2V5X3B3ZD1Qb2xhclNTTFRlc3QiIFwKICAgICAgICAgICAgIDAKIAogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgTUJFRFRMU19YNTA5X0NSVF9QQVJTRV9DCkBAIC0yMTMxLDcgKzIxMzMsNyBAQAogcmVxdWlyZXNfaGFzaF9hbGcgTUQ1CiByZXF1aXJlc19oYXNoX2FsZyBTSEFfMjU2CiBydW5fdGVzdCAgICAiVExTOiBwYXNzd29yZCBwcm90ZWN0ZWQgc2VydmVyIGtleSIgXAotICAgICAgICAgICAgIiRQX1NSViBjcnRfZmlsZT1kYXRhX2ZpbGVzL3NlcnZlcjUuY3J0IGtleV9maWxlPWRhdGFfZmlsZXMvc2VydmVyNS5rZXkuZW5jIGtleV9wd2Q9UG9sYXJTU0xUZXN0IiBcCisgICAgICAgICAgICAiJFBfU1JWIGNydF9maWxlPSREQVRBX0ZJTEVTX1BBVEgvc2VydmVyNS5jcnQga2V5X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9zZXJ2ZXI1LmtleS5lbmMga2V5X3B3ZD1Qb2xhclNTTFRlc3QiIFwKICAgICAgICAgICAgICIkUF9DTEkgZm9yY2VfdmVyc2lvbj10bHMxMiIgXAogICAgICAgICAgICAgMAogCkBAIC0yMTQ1LDggKzIxNDcsOCBAQAogcmVxdWlyZXNfaGFzaF9hbGcgU0hBXzI1NgogcnVuX3Rlc3QgICAgIlRMUzogcGFzc3dvcmQgcHJvdGVjdGVkIHNlcnZlciBrZXksIHR3byBjZXJ0aWZpY2F0ZXMiIFwKICAgICAgICAgICAgICIkUF9TUlYgZm9yY2VfdmVyc2lvbj10bHMxMlwKLSAgICAgICAgICAgICAga2V5X2ZpbGU9ZGF0YV9maWxlcy9zZXJ2ZXI1LmtleS5lbmMga2V5X3B3ZD1Qb2xhclNTTFRlc3QgY3J0X2ZpbGU9ZGF0YV9maWxlcy9zZXJ2ZXI1LmNydCBcCi0gICAgICAgICAgICAgIGtleV9maWxlMj1kYXRhX2ZpbGVzL3NlcnZlcjIua2V5LmVuYyBrZXlfcHdkMj1Qb2xhclNTTFRlc3QgY3J0X2ZpbGUyPWRhdGFfZmlsZXMvc2VydmVyMi5jcnQiIFwKKyAgICAgICAgICAgICAga2V5X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9zZXJ2ZXI1LmtleS5lbmMga2V5X3B3ZD1Qb2xhclNTTFRlc3QgY3J0X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9zZXJ2ZXI1LmNydCBcCisgICAgICAgICAgICAgIGtleV9maWxlMj0kREFUQV9GSUxFU19QQVRIL3NlcnZlcjIua2V5LmVuYyBrZXlfcHdkMj1Qb2xhclNTTFRlc3QgY3J0X2ZpbGUyPSREQVRBX0ZJTEVTX1BBVEgvc2VydmVyMi5jcnQiIFwKICAgICAgICAgICAgICIkUF9DTEkiIFwKICAgICAgICAgICAgIDAKIApAQCAtMjE2NCw4ICsyMTY2LDggQEAKIHJlcXVpcmVzX2hhc2hfYWxnIFNIQV8yNTYKIHJ1bl90ZXN0ICAgICJDQSBjYWxsYmFjayBvbiBzZXJ2ZXIiIFwKICAgICAgICAgICAgICIkUF9TUlYgZm9yY2VfdmVyc2lvbj10bHMxMiBhdXRoX21vZGU9cmVxdWlyZWQiIFwKLSAgICAgICAgICAgICIkUF9DTEkgY2FfY2FsbGJhY2s9MSBkZWJ1Z19sZXZlbD0zIGNydF9maWxlPWRhdGFfZmlsZXMvc2VydmVyNS5jcnQgXAotICAgICAgICAgICAgIGtleV9maWxlPWRhdGFfZmlsZXMvc2VydmVyNS5rZXkiIFwKKyAgICAgICAgICAgICIkUF9DTEkgY2FfY2FsbGJhY2s9MSBkZWJ1Z19sZXZlbD0zIGNydF9maWxlPSREQVRBX0ZJTEVTX1BBVEgvc2VydmVyNS5jcnQgXAorICAgICAgICAgICAgIGtleV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvc2VydmVyNS5rZXkiIFwKICAgICAgICAgICAgIDAgXAogICAgICAgICAgICAgLWMgInVzZSBDQSBjYWxsYmFjayBmb3IgWC41MDkgQ1JUIHZlcmlmaWNhdGlvbiIgXAogICAgICAgICAgICAgLXMgIlZlcmlmeWluZyBwZWVyIFguNTA5IGNlcnRpZmljYXRlLi4uIG9rIiBcCkBAIC0yMTc4LDEwICsyMTgwLDEwIEBACiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBNQkVEVExTX0tFWV9FWENIQU5HRV9FQ0RIRV9FQ0RTQV9FTkFCTEVECiByZXF1aXJlc19oYXNoX2FsZyBTSEFfMjU2CiBydW5fdGVzdCAgICAiT3BhcXVlIGtleSBmb3IgY2xpZW50IGF1dGhlbnRpY2F0aW9uOiBFQ0RIRS1FQ0RTQSIgXAotICAgICAgICAgICAgIiRQX1NSViBmb3JjZV92ZXJzaW9uPXRsczEyIGF1dGhfbW9kZT1yZXF1aXJlZCBjcnRfZmlsZT1kYXRhX2ZpbGVzL3NlcnZlcjUuY3J0IFwKLSAgICAgICAgICAgICBrZXlfZmlsZT1kYXRhX2ZpbGVzL3NlcnZlcjUua2V5IiBcCi0gICAgICAgICAgICAiJFBfQ0xJIGtleV9vcGFxdWU9MSBjcnRfZmlsZT1kYXRhX2ZpbGVzL3NlcnZlcjUuY3J0IFwKLSAgICAgICAgICAgICBrZXlfZmlsZT1kYXRhX2ZpbGVzL3NlcnZlcjUua2V5IGtleV9vcGFxdWVfYWxncz1lY2RzYS1zaWduLG5vbmUiIFwKKyAgICAgICAgICAgICIkUF9TUlYgZm9yY2VfdmVyc2lvbj10bHMxMiBhdXRoX21vZGU9cmVxdWlyZWQgY3J0X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9zZXJ2ZXI1LmNydCBcCisgICAgICAgICAgICAga2V5X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9zZXJ2ZXI1LmtleSIgXAorICAgICAgICAgICAgIiRQX0NMSSBrZXlfb3BhcXVlPTEgY3J0X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9zZXJ2ZXI1LmNydCBcCisgICAgICAgICAgICAga2V5X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9zZXJ2ZXI1LmtleSBrZXlfb3BhcXVlX2FsZ3M9ZWNkc2Etc2lnbixub25lIiBcCiAgICAgICAgICAgICAwIFwKICAgICAgICAgICAgIC1jICJrZXkgdHlwZTogT3BhcXVlIiBcCiAgICAgICAgICAgICAtYyAiQ2lwaGVyc3VpdGUgaXMgVExTLUVDREhFLUVDRFNBIiBcCkBAIC0yMTk3LDEwICsyMTk5LDEwIEBACiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBNQkVEVExTX0tFWV9FWENIQU5HRV9FQ0RIRV9SU0FfRU5BQkxFRAogcmVxdWlyZXNfaGFzaF9hbGcgU0hBXzI1NgogcnVuX3Rlc3QgICAgIk9wYXF1ZSBrZXkgZm9yIGNsaWVudCBhdXRoZW50aWNhdGlvbjogRUNESEUtUlNBIiBcCi0gICAgICAgICAgICAiJFBfU1JWIGZvcmNlX3ZlcnNpb249dGxzMTIgYXV0aF9tb2RlPXJlcXVpcmVkIGNydF9maWxlPWRhdGFfZmlsZXMvc2VydmVyMi1zaGEyNTYuY3J0IFwKLSAgICAgICAgICAgICBrZXlfZmlsZT1kYXRhX2ZpbGVzL3NlcnZlcjIua2V5IiBcCi0gICAgICAgICAgICAiJFBfQ0xJIGtleV9vcGFxdWU9MSBjcnRfZmlsZT1kYXRhX2ZpbGVzL3NlcnZlcjItc2hhMjU2LmNydCBcCi0gICAgICAgICAgICAga2V5X2ZpbGU9ZGF0YV9maWxlcy9zZXJ2ZXIyLmtleSBrZXlfb3BhcXVlX2FsZ3M9cnNhLXNpZ24tcGtjczEsbm9uZSIgXAorICAgICAgICAgICAgIiRQX1NSViBmb3JjZV92ZXJzaW9uPXRsczEyIGF1dGhfbW9kZT1yZXF1aXJlZCBjcnRfZmlsZT0kREFUQV9GSUxFU19QQVRIL3NlcnZlcjItc2hhMjU2LmNydCBcCisgICAgICAgICAgICAga2V5X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9zZXJ2ZXIyLmtleSIgXAorICAgICAgICAgICAgIiRQX0NMSSBrZXlfb3BhcXVlPTEgY3J0X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9zZXJ2ZXIyLXNoYTI1Ni5jcnQgXAorICAgICAgICAgICAgIGtleV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvc2VydmVyMi5rZXkga2V5X29wYXF1ZV9hbGdzPXJzYS1zaWduLXBrY3MxLG5vbmUiIFwKICAgICAgICAgICAgIDAgXAogICAgICAgICAgICAgLWMgImtleSB0eXBlOiBPcGFxdWUiIFwKICAgICAgICAgICAgIC1jICJDaXBoZXJzdWl0ZSBpcyBUTFMtRUNESEUtUlNBIiBcCkBAIC0yMjE0LDEwICsyMjE2LDEwIEBACiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBNQkVEVExTX1JTQV9DCiByZXF1aXJlc19oYXNoX2FsZyBTSEFfMjU2CiBydW5fdGVzdCAgICAiT3BhcXVlIGtleSBmb3IgY2xpZW50IGF1dGhlbnRpY2F0aW9uOiBESEUtUlNBIiBcCi0gICAgICAgICAgICAiJFBfU1JWIGZvcmNlX3ZlcnNpb249dGxzMTIgYXV0aF9tb2RlPXJlcXVpcmVkIGNydF9maWxlPWRhdGFfZmlsZXMvc2VydmVyMi1zaGEyNTYuY3J0IFwKLSAgICAgICAgICAgICBrZXlfZmlsZT1kYXRhX2ZpbGVzL3NlcnZlcjIua2V5IiBcCi0gICAgICAgICAgICAiJFBfQ0xJIGtleV9vcGFxdWU9MSBjcnRfZmlsZT1kYXRhX2ZpbGVzL3NlcnZlcjItc2hhMjU2LmNydCBcCi0gICAgICAgICAgICAga2V5X2ZpbGU9ZGF0YV9maWxlcy9zZXJ2ZXIyLmtleSBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMtREhFLVJTQS1XSVRILUFFUy0xMjgtQ0JDLVNIQSBcCisgICAgICAgICAgICAiJFBfU1JWIGZvcmNlX3ZlcnNpb249dGxzMTIgYXV0aF9tb2RlPXJlcXVpcmVkIGNydF9maWxlPSREQVRBX0ZJTEVTX1BBVEgvc2VydmVyMi1zaGEyNTYuY3J0IFwKKyAgICAgICAgICAgICBrZXlfZmlsZT0kREFUQV9GSUxFU19QQVRIL3NlcnZlcjIua2V5IiBcCisgICAgICAgICAgICAiJFBfQ0xJIGtleV9vcGFxdWU9MSBjcnRfZmlsZT0kREFUQV9GSUxFU19QQVRIL3NlcnZlcjItc2hhMjU2LmNydCBcCisgICAgICAgICAgICAga2V5X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9zZXJ2ZXIyLmtleSBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMtREhFLVJTQS1XSVRILUFFUy0xMjgtQ0JDLVNIQSBcCiAgICAgICAgICAgICAga2V5X29wYXF1ZV9hbGdzPXJzYS1zaWduLXBrY3MxLG5vbmUiIFwKICAgICAgICAgICAgIDAgXAogICAgICAgICAgICAgLWMgImtleSB0eXBlOiBPcGFxdWUiIFwKQEAgLTIyMzMsOCArMjIzNSw4IEBACiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBNQkVEVExTX0tFWV9FWENIQU5HRV9FQ0RIRV9FQ0RTQV9FTkFCTEVECiByZXF1aXJlc19oYXNoX2FsZyBTSEFfMjU2CiBydW5fdGVzdCAgICAiT3BhcXVlIGtleSBmb3Igc2VydmVyIGF1dGhlbnRpY2F0aW9uOiBFQ0RIRS1FQ0RTQSIgXAotICAgICAgICAgICAgIiRQX1NSViBrZXlfb3BhcXVlPTEgY3J0X2ZpbGU9ZGF0YV9maWxlcy9zZXJ2ZXI1LmNydCBcCi0gICAgICAgICAgICAga2V5X2ZpbGU9ZGF0YV9maWxlcy9zZXJ2ZXI1LmtleSAga2V5X29wYXF1ZV9hbGdzPWVjZHNhLXNpZ24sbm9uZSIgXAorICAgICAgICAgICAgIiRQX1NSViBrZXlfb3BhcXVlPTEgY3J0X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9zZXJ2ZXI1LmNydCBcCisgICAgICAgICAgICAga2V5X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9zZXJ2ZXI1LmtleSAga2V5X29wYXF1ZV9hbGdzPWVjZHNhLXNpZ24sbm9uZSIgXAogICAgICAgICAgICAgIiRQX0NMSSBmb3JjZV92ZXJzaW9uPXRsczEyIiBcCiAgICAgICAgICAgICAwIFwKICAgICAgICAgICAgIC1jICJWZXJpZnlpbmcgcGVlciBYLjUwOSBjZXJ0aWZpY2F0ZS4uLiBvayIgXApAQCAtMjI0OSw4ICsyMjUxLDggQEAKIHJlcXVpcmVzX2hhc2hfYWxnIFNIQV8yNTYKIHJ1bl90ZXN0ICAgICJPcGFxdWUga2V5IGZvciBzZXJ2ZXIgYXV0aGVudGljYXRpb246IEVDREgtIiBcCiAgICAgICAgICAgICAiJFBfU1JWIGF1dGhfbW9kZT1yZXF1aXJlZCBrZXlfb3BhcXVlPTFcCi0gICAgICAgICAgICAgY3J0X2ZpbGU9ZGF0YV9maWxlcy9zZXJ2ZXI1Lmt1LWthLmNydFwKLSAgICAgICAgICAgICBrZXlfZmlsZT1kYXRhX2ZpbGVzL3NlcnZlcjUua2V5IGtleV9vcGFxdWVfYWxncz1lY2RoLG5vbmUiIFwKKyAgICAgICAgICAgICBjcnRfZmlsZT0kREFUQV9GSUxFU19QQVRIL3NlcnZlcjUua3Uta2EuY3J0XAorICAgICAgICAgICAgIGtleV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvc2VydmVyNS5rZXkga2V5X29wYXF1ZV9hbGdzPWVjZGgsbm9uZSIgXAogICAgICAgICAgICAgIiRQX0NMSSBmb3JjZV92ZXJzaW9uPXRsczEyIiBcCiAgICAgICAgICAgICAwIFwKICAgICAgICAgICAgIC1jICJWZXJpZnlpbmcgcGVlciBYLjUwOSBjZXJ0aWZpY2F0ZS4uLiBvayIgXApAQCAtMjI2NSw4ICsyMjY3LDggQEAKIHJlcXVpcmVzX2NvbmZpZ19kaXNhYmxlZCBNQkVEVExTX1NTTF9BU1lOQ19QUklWQVRFCiByZXF1aXJlc19oYXNoX2FsZyBTSEFfMjU2CiBydW5fdGVzdCAgICAiT3BhcXVlIGtleSBmb3Igc2VydmVyIGF1dGhlbnRpY2F0aW9uOiBpbnZhbGlkIGtleTogZGVjcnlwdCB3aXRoIEVDQyBrZXksIG5vIGFzeW5jIiBcCi0gICAgICAgICAgICAiJFBfU1JWIGtleV9vcGFxdWU9MSBjcnRfZmlsZT1kYXRhX2ZpbGVzL3NlcnZlcjUuY3J0IFwKLSAgICAgICAgICAgICBrZXlfZmlsZT1kYXRhX2ZpbGVzL3NlcnZlcjUua2V5IGtleV9vcGFxdWVfYWxncz1yc2EtZGVjcnlwdCxub25lIFwKKyAgICAgICAgICAgICIkUF9TUlYga2V5X29wYXF1ZT0xIGNydF9maWxlPSREQVRBX0ZJTEVTX1BBVEgvc2VydmVyNS5jcnQgXAorICAgICAgICAgICAgIGtleV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvc2VydmVyNS5rZXkga2V5X29wYXF1ZV9hbGdzPXJzYS1kZWNyeXB0LG5vbmUgXAogICAgICAgICAgICAgIGRlYnVnX2xldmVsPTEiIFwKICAgICAgICAgICAgICIkUF9DTEkgZm9yY2VfdmVyc2lvbj10bHMxMiIgXAogICAgICAgICAgICAgMSBcCkBAIC0yMjgyLDggKzIyODQsOCBAQAogcmVxdWlyZXNfY29uZmlnX2Rpc2FibGVkIE1CRURUTFNfU1NMX0FTWU5DX1BSSVZBVEUKIHJlcXVpcmVzX2hhc2hfYWxnIFNIQV8yNTYKIHJ1bl90ZXN0ICAgICJPcGFxdWUga2V5IGZvciBzZXJ2ZXIgYXV0aGVudGljYXRpb246IGludmFsaWQga2V5OiBlY2RoIHdpdGggUlNBIGtleSwgbm8gYXN5bmMiIFwKLSAgICAgICAgICAgICIkUF9TUlYga2V5X29wYXF1ZT0xIGNydF9maWxlPWRhdGFfZmlsZXMvc2VydmVyMi1zaGEyNTYuY3J0IFwKLSAgICAgICAgICAgICBrZXlfZmlsZT1kYXRhX2ZpbGVzL3NlcnZlcjIua2V5IGtleV9vcGFxdWVfYWxncz1lY2RoLG5vbmUgXAorICAgICAgICAgICAgIiRQX1NSViBrZXlfb3BhcXVlPTEgY3J0X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9zZXJ2ZXIyLXNoYTI1Ni5jcnQgXAorICAgICAgICAgICAgIGtleV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvc2VydmVyMi5rZXkga2V5X29wYXF1ZV9hbGdzPWVjZGgsbm9uZSBcCiAgICAgICAgICAgICAgZGVidWdfbGV2ZWw9MSIgXAogICAgICAgICAgICAgIiRQX0NMSSBmb3JjZV92ZXJzaW9uPXRsczEyIiBcCiAgICAgICAgICAgICAxIFwKQEAgLTIyOTcsOCArMjI5OSw4IEBACiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBNQkVEVExTX1NTTF9BU1lOQ19QUklWQVRFCiByZXF1aXJlc19oYXNoX2FsZyBTSEFfMjU2CiBydW5fdGVzdCAgICAiT3BhcXVlIGtleSBmb3Igc2VydmVyIGF1dGhlbnRpY2F0aW9uOiBpbnZhbGlkIGFsZzogZGVjcnlwdCB3aXRoIEVDQyBrZXksIGFzeW5jIiBcCi0gICAgICAgICAgICAiJFBfU1JWIGtleV9vcGFxdWU9MSBjcnRfZmlsZT1kYXRhX2ZpbGVzL3NlcnZlcjUuY3J0IFwKLSAgICAgICAgICAgICBrZXlfZmlsZT1kYXRhX2ZpbGVzL3NlcnZlcjUua2V5IGtleV9vcGFxdWVfYWxncz1yc2EtZGVjcnlwdCxub25lIFwKKyAgICAgICAgICAgICIkUF9TUlYga2V5X29wYXF1ZT0xIGNydF9maWxlPSREQVRBX0ZJTEVTX1BBVEgvc2VydmVyNS5jcnQgXAorICAgICAgICAgICAgIGtleV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvc2VydmVyNS5rZXkga2V5X29wYXF1ZV9hbGdzPXJzYS1kZWNyeXB0LG5vbmUgXAogICAgICAgICAgICAgIGRlYnVnX2xldmVsPTEiIFwKICAgICAgICAgICAgICIkUF9DTEkgZm9yY2VfdmVyc2lvbj10bHMxMiIgXAogICAgICAgICAgICAgMSBcCkBAIC0yMzEzLDggKzIzMTUsOCBAQAogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgTUJFRFRMU19TU0xfQVNZTkNfUFJJVkFURQogcmVxdWlyZXNfaGFzaF9hbGcgU0hBXzI1NgogcnVuX3Rlc3QgICAgIk9wYXF1ZSBrZXkgZm9yIHNlcnZlciBhdXRoZW50aWNhdGlvbjogaW52YWxpZCBhbGc6IGVjZGggd2l0aCBSU0Ega2V5LCBhc3luYyIgXAotICAgICAgICAgICAgIiRQX1NSViBrZXlfb3BhcXVlPTEgY3J0X2ZpbGU9ZGF0YV9maWxlcy9zZXJ2ZXIyLXNoYTI1Ni5jcnQgXAotICAgICAgICAgICAgIGtleV9maWxlPWRhdGFfZmlsZXMvc2VydmVyMi5rZXkga2V5X29wYXF1ZV9hbGdzPWVjZGgsbm9uZSBcCisgICAgICAgICAgICAiJFBfU1JWIGtleV9vcGFxdWU9MSBjcnRfZmlsZT0kREFUQV9GSUxFU19QQVRIL3NlcnZlcjItc2hhMjU2LmNydCBcCisgICAgICAgICAgICAga2V5X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9zZXJ2ZXIyLmtleSBrZXlfb3BhcXVlX2FsZ3M9ZWNkaCxub25lIFwKICAgICAgICAgICAgICBkZWJ1Z19sZXZlbD0xIiBcCiAgICAgICAgICAgICAiJFBfQ0xJIGZvcmNlX3ZlcnNpb249dGxzMTIiIFwKICAgICAgICAgICAgIDEgXApAQCAtMjMyNyw4ICsyMzI5LDggQEAKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIE1CRURUTFNfWDUwOV9DUlRfUEFSU0VfQwogcmVxdWlyZXNfaGFzaF9hbGcgU0hBXzI1NgogcnVuX3Rlc3QgICAgIk9wYXF1ZSBrZXkgZm9yIHNlcnZlciBhdXRoZW50aWNhdGlvbjogaW52YWxpZCBhbGc6IEVDREhFLUVDRFNBIHdpdGggZWNkaCIgXAotICAgICAgICAgICAgIiRQX1NSViBrZXlfb3BhcXVlPTEgY3J0X2ZpbGU9ZGF0YV9maWxlcy9zZXJ2ZXI1LmNydCBcCi0gICAgICAgICAgICAga2V5X2ZpbGU9ZGF0YV9maWxlcy9zZXJ2ZXI1LmtleSBrZXlfb3BhcXVlX2FsZ3M9ZWNkaCxub25lIFwKKyAgICAgICAgICAgICIkUF9TUlYga2V5X29wYXF1ZT0xIGNydF9maWxlPSREQVRBX0ZJTEVTX1BBVEgvc2VydmVyNS5jcnQgXAorICAgICAgICAgICAgIGtleV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvc2VydmVyNS5rZXkga2V5X29wYXF1ZV9hbGdzPWVjZGgsbm9uZSBcCiAgICAgICAgICAgICAgZGVidWdfbGV2ZWw9MSIgXAogICAgICAgICAgICAgIiRQX0NMSSBmb3JjZV92ZXJzaW9uPXRsczEyIGZvcmNlX2NpcGhlcnN1aXRlPVRMUy1FQ0RIRS1FQ0RTQS1XSVRILUFFUy0yNTYtQ0NNIiBcCiAgICAgICAgICAgICAxIFwKQEAgLTIzNDMsOSArMjM0NSw5IEBACiByZXF1aXJlc19oYXNoX2FsZyBTSEFfMjU2CiByZXF1aXJlc19jb25maWdfZGlzYWJsZWQgTUJFRFRMU19YNTA5X1JFTU9WRV9JTkZPCiBydW5fdGVzdCAgICAiT3BhcXVlIGtleXMgZm9yIHNlcnZlciBhdXRoZW50aWNhdGlvbjogRUMga2V5cyB3aXRoIGRpZmZlcmVudCBhbGdzLCBmb3JjZSBFQ0RIRS1FQ0RTQSIgXAotICAgICAgICAgICAgIiRQX1NSViBmb3JjZV92ZXJzaW9uPXRsczEyIGtleV9vcGFxdWU9MSBjcnRfZmlsZT1kYXRhX2ZpbGVzL3NlcnZlcjcuY3J0IFwKLSAgICAgICAgICAgICBrZXlfZmlsZT1kYXRhX2ZpbGVzL3NlcnZlcjcua2V5IGtleV9vcGFxdWVfYWxncz1lY2RoLG5vbmUgXAotICAgICAgICAgICAgIGNydF9maWxlMj1kYXRhX2ZpbGVzL3NlcnZlcjUuY3J0IGtleV9maWxlMj1kYXRhX2ZpbGVzL3NlcnZlcjUua2V5IFwKKyAgICAgICAgICAgICIkUF9TUlYgZm9yY2VfdmVyc2lvbj10bHMxMiBrZXlfb3BhcXVlPTEgY3J0X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9zZXJ2ZXI3LmNydCBcCisgICAgICAgICAgICAga2V5X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9zZXJ2ZXI3LmtleSBrZXlfb3BhcXVlX2FsZ3M9ZWNkaCxub25lIFwKKyAgICAgICAgICAgICBjcnRfZmlsZTI9JERBVEFfRklMRVNfUEFUSC9zZXJ2ZXI1LmNydCBrZXlfZmlsZTI9JERBVEFfRklMRVNfUEFUSC9zZXJ2ZXI1LmtleSBcCiAgICAgICAgICAgICAga2V5X29wYXF1ZV9hbGdzMj1lY2RzYS1zaWduLG5vbmUiIFwKICAgICAgICAgICAgICIkUF9DTEkgZm9yY2VfdmVyc2lvbj10bHMxMiIgXAogICAgICAgICAgICAgMCBcCkBAIC0yMzYyLDkgKzIzNjQsOSBAQAogcmVxdWlyZXNfaGFzaF9hbGcgU0hBXzM4NAogcmVxdWlyZXNfY29uZmlnX2Rpc2FibGVkIE1CRURUTFNfWDUwOV9SRU1PVkVfSU5GTwogcnVuX3Rlc3QgICAgIk9wYXF1ZSBrZXlzIGZvciBzZXJ2ZXIgYXV0aGVudGljYXRpb246IEVDIGtleXMgd2l0aCBkaWZmZXJlbnQgYWxncywgZm9yY2UgRUNESC1FQ0RTQSIgXAotICAgICAgICAgICAgIiRQX1NSViBrZXlfb3BhcXVlPTEgY3J0X2ZpbGU9ZGF0YV9maWxlcy9zZXJ2ZXI3LmNydCBcCi0gICAgICAgICAgICAga2V5X2ZpbGU9ZGF0YV9maWxlcy9zZXJ2ZXI3LmtleSBrZXlfb3BhcXVlX2FsZ3M9ZWNkc2Etc2lnbixub25lIFwKLSAgICAgICAgICAgICBjcnRfZmlsZTI9ZGF0YV9maWxlcy9zZXJ2ZXI1LmNydCBrZXlfZmlsZTI9ZGF0YV9maWxlcy9zZXJ2ZXI1LmtleSBcCisgICAgICAgICAgICAiJFBfU1JWIGtleV9vcGFxdWU9MSBjcnRfZmlsZT0kREFUQV9GSUxFU19QQVRIL3NlcnZlcjcuY3J0IFwKKyAgICAgICAgICAgICBrZXlfZmlsZT0kREFUQV9GSUxFU19QQVRIL3NlcnZlcjcua2V5IGtleV9vcGFxdWVfYWxncz1lY2RzYS1zaWduLG5vbmUgXAorICAgICAgICAgICAgIGNydF9maWxlMj0kREFUQV9GSUxFU19QQVRIL3NlcnZlcjUuY3J0IGtleV9maWxlMj0kREFUQV9GSUxFU19QQVRIL3NlcnZlcjUua2V5IFwKICAgICAgICAgICAgICBrZXlfb3BhcXVlX2FsZ3MyPWVjZGgsbm9uZSBkZWJ1Z19sZXZlbD0zIiBcCiAgICAgICAgICAgICAiJFBfQ0xJIGZvcmNlX3ZlcnNpb249dGxzMTIgZm9yY2VfY2lwaGVyc3VpdGU9VExTLUVDREgtRUNEU0EtV0lUSC1DQU1FTExJQS0yNTYtQ0JDLVNIQTM4NCIgXAogICAgICAgICAgICAgMCBcCkBAIC0yMzgxLDEwICsyMzgzLDEwIEBACiByZXF1aXJlc19oYXNoX2FsZyBTSEFfMzg0CiByZXF1aXJlc19jb25maWdfZGlzYWJsZWQgTUJFRFRMU19YNTA5X1JFTU9WRV9JTkZPCiBydW5fdGVzdCAgICAiT3BhcXVlIGtleXMgZm9yIHNlcnZlciBhdXRoZW50aWNhdGlvbjogRUMgKyBSU0EsIGZvcmNlIEVDREhFLUVDRFNBIiBcCi0gICAgICAgICAgICAiJFBfU1JWIGtleV9vcGFxdWU9MSBjcnRfZmlsZT1kYXRhX2ZpbGVzL3NlcnZlcjUuY3J0IFwKLSAgICAgICAgICAgICBrZXlfZmlsZT1kYXRhX2ZpbGVzL3NlcnZlcjUua2V5IGtleV9vcGFxdWVfYWxncz1lY2RzYS1zaWduLG5vbmUgXAotICAgICAgICAgICAgIGNydF9maWxlMj1kYXRhX2ZpbGVzL3NlcnZlcjItc2hhMjU2LmNydCBcCi0gICAgICAgICAgICAga2V5X2ZpbGUyPWRhdGFfZmlsZXMvc2VydmVyMi5rZXkga2V5X29wYXF1ZV9hbGdzMj1yc2Etc2lnbi1wa2NzMSxub25lIiBcCisgICAgICAgICAgICAiJFBfU1JWIGtleV9vcGFxdWU9MSBjcnRfZmlsZT0kREFUQV9GSUxFU19QQVRIL3NlcnZlcjUuY3J0IFwKKyAgICAgICAgICAgICBrZXlfZmlsZT0kREFUQV9GSUxFU19QQVRIL3NlcnZlcjUua2V5IGtleV9vcGFxdWVfYWxncz1lY2RzYS1zaWduLG5vbmUgXAorICAgICAgICAgICAgIGNydF9maWxlMj0kREFUQV9GSUxFU19QQVRIL3NlcnZlcjItc2hhMjU2LmNydCBcCisgICAgICAgICAgICAga2V5X2ZpbGUyPSREQVRBX0ZJTEVTX1BBVEgvc2VydmVyMi5rZXkga2V5X29wYXF1ZV9hbGdzMj1yc2Etc2lnbi1wa2NzMSxub25lIiBcCiAgICAgICAgICAgICAiJFBfQ0xJIGZvcmNlX3ZlcnNpb249dGxzMTIgZm9yY2VfY2lwaGVyc3VpdGU9VExTLUVDREhFLUVDRFNBLVdJVEgtQUVTLTI1Ni1DQ00iIFwKICAgICAgICAgICAgIDAgXAogICAgICAgICAgICAgLWMgIlZlcmlmeWluZyBwZWVyIFguNTA5IGNlcnRpZmljYXRlLi4uIG9rIiBcCkBAIC0yNDU5LDggKzI0NjEsOCBAQAogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgTUJFRFRMU19LRVlfRVhDSEFOR0VfRUNESEVfUlNBX0VOQUJMRUQKIHJlcXVpcmVzX2hhc2hfYWxnIFNIQV8yNTYKIHJ1bl90ZXN0ICAgICJPcGFxdWUga2V5IGZvciBzZXJ2ZXIgYXV0aGVudGljYXRpb246IEVDREhFLVJTQSIgXAotICAgICAgICAgICAgIiRQX1NSViBrZXlfb3BhcXVlPTEgY3J0X2ZpbGU9ZGF0YV9maWxlcy9zZXJ2ZXIyLXNoYTI1Ni5jcnQgXAotICAgICAgICAgICAgIGtleV9maWxlPWRhdGFfZmlsZXMvc2VydmVyMi5rZXkga2V5X29wYXF1ZV9hbGdzPXJzYS1zaWduLXBrY3MxLG5vbmUiIFwKKyAgICAgICAgICAgICIkUF9TUlYga2V5X29wYXF1ZT0xIGNydF9maWxlPSREQVRBX0ZJTEVTX1BBVEgvc2VydmVyMi1zaGEyNTYuY3J0IFwKKyAgICAgICAgICAgICBrZXlfZmlsZT0kREFUQV9GSUxFU19QQVRIL3NlcnZlcjIua2V5IGtleV9vcGFxdWVfYWxncz1yc2Etc2lnbi1wa2NzMSxub25lIiBcCiAgICAgICAgICAgICAiJFBfQ0xJIGZvcmNlX3ZlcnNpb249dGxzMTIiIFwKICAgICAgICAgICAgIDAgXAogICAgICAgICAgICAgLWMgIlZlcmlmeWluZyBwZWVyIFguNTA5IGNlcnRpZmljYXRlLi4uIG9rIiBcCkBAIC0yNDc1LDggKzI0NzcsOCBAQAogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgTUJFRFRMU19SU0FfQwogcmVxdWlyZXNfaGFzaF9hbGcgU0hBXzI1NgogcnVuX3Rlc3QgICAgIk9wYXF1ZSBrZXkgZm9yIHNlcnZlciBhdXRoZW50aWNhdGlvbjogREhFLVJTQSIgXAotICAgICAgICAgICAgIiRQX1NSViBrZXlfb3BhcXVlPTEgY3J0X2ZpbGU9ZGF0YV9maWxlcy9zZXJ2ZXIyLXNoYTI1Ni5jcnQgXAotICAgICAgICAgICAgIGtleV9maWxlPWRhdGFfZmlsZXMvc2VydmVyMi5rZXkga2V5X29wYXF1ZV9hbGdzPXJzYS1zaWduLXBrY3MxLG5vbmUiIFwKKyAgICAgICAgICAgICIkUF9TUlYga2V5X29wYXF1ZT0xIGNydF9maWxlPSREQVRBX0ZJTEVTX1BBVEgvc2VydmVyMi1zaGEyNTYuY3J0IFwKKyAgICAgICAgICAgICBrZXlfZmlsZT0kREFUQV9GSUxFU19QQVRIL3NlcnZlcjIua2V5IGtleV9vcGFxdWVfYWxncz1yc2Etc2lnbi1wa2NzMSxub25lIiBcCiAgICAgICAgICAgICAiJFBfQ0xJIGZvcmNlX3ZlcnNpb249dGxzMTIgZm9yY2VfY2lwaGVyc3VpdGU9VExTLURIRS1SU0EtV0lUSC1BRVMtMTI4LUNCQy1TSEEiIFwKICAgICAgICAgICAgIDAgXAogICAgICAgICAgICAgLWMgIlZlcmlmeWluZyBwZWVyIFguNTA5IGNlcnRpZmljYXRlLi4uIG9rIiBcCkBAIC0yNTIzLDEwICsyNTI1LDEwIEBACiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBNQkVEVExTX1JTQV9DCiByZXF1aXJlc19oYXNoX2FsZyBTSEFfMjU2CiBydW5fdGVzdCAgICAiT3BhcXVlIGtleSBmb3Igc2VydmVyIGF1dGhlbnRpY2F0aW9uOiBESEUtUlNBLCBQU1MgaW5zdGVhZCBvZiBQS0NTMSIgXAotICAgICAgICAgICAgIiRQX1NSViBhdXRoX21vZGU9cmVxdWlyZWQga2V5X29wYXF1ZT0xIGNydF9maWxlPWRhdGFfZmlsZXMvc2VydmVyMi1zaGEyNTYuY3J0IFwKLSAgICAgICAgICAgICBrZXlfZmlsZT1kYXRhX2ZpbGVzL3NlcnZlcjIua2V5IGtleV9vcGFxdWVfYWxncz1yc2Etc2lnbi1wc3Msbm9uZSBkZWJ1Z19sZXZlbD0xIiBcCi0gICAgICAgICAgICAiJFBfQ0xJIGNydF9maWxlPWRhdGFfZmlsZXMvc2VydmVyMi1zaGEyNTYuY3J0IFwKLSAgICAgICAgICAgICBrZXlfZmlsZT1kYXRhX2ZpbGVzL3NlcnZlcjIua2V5IGZvcmNlX2NpcGhlcnN1aXRlPVRMUy1ESEUtUlNBLVdJVEgtQUVTLTEyOC1DQkMtU0hBIiBcCisgICAgICAgICAgICAiJFBfU1JWIGF1dGhfbW9kZT1yZXF1aXJlZCBrZXlfb3BhcXVlPTEgY3J0X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9zZXJ2ZXIyLXNoYTI1Ni5jcnQgXAorICAgICAgICAgICAgIGtleV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvc2VydmVyMi5rZXkga2V5X29wYXF1ZV9hbGdzPXJzYS1zaWduLXBzcyxub25lIGRlYnVnX2xldmVsPTEiIFwKKyAgICAgICAgICAgICIkUF9DTEkgY3J0X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9zZXJ2ZXIyLXNoYTI1Ni5jcnQgXAorICAgICAgICAgICAgIGtleV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvc2VydmVyMi5rZXkgZm9yY2VfY2lwaGVyc3VpdGU9VExTLURIRS1SU0EtV0lUSC1BRVMtMTI4LUNCQy1TSEEiIFwKICAgICAgICAgICAgIDEgXAogICAgICAgICAgICAgLXMgImtleSB0eXBlczogT3BhcXVlLCBub25lIiBcCiAgICAgICAgICAgICAtcyAiZ290IGNpcGhlcnN1aXRlcyBpbiBjb21tb24sIGJ1dCBub25lIG9mIHRoZW0gdXNhYmxlIiBcCkBAIC0yNTQwLDEwICsyNTQyLDEwIEBACiByZXF1aXJlc19jb25maWdfZGlzYWJsZWQgTUJFRFRMU19YNTA5X1JFTU9WRV9JTkZPCiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBNQkVEVExTX0tFWV9FWENIQU5HRV9FQ0RIRV9SU0FfRU5BQkxFRAogcnVuX3Rlc3QgICAgIk9wYXF1ZSBrZXlzIGZvciBzZXJ2ZXIgYXV0aGVudGljYXRpb246IFJTQSBrZXlzIHdpdGggZGlmZmVyZW50IGFsZ3MiIFwKLSAgICAgICAgICAgICIkUF9TUlYgZm9yY2VfdmVyc2lvbj10bHMxMiBhdXRoX21vZGU9cmVxdWlyZWQga2V5X29wYXF1ZT0xIGNydF9maWxlPWRhdGFfZmlsZXMvc2VydmVyMi1zaGEyNTYuY3J0IFwKLSAgICAgICAgICAgICBrZXlfZmlsZT1kYXRhX2ZpbGVzL3NlcnZlcjIua2V5IGtleV9vcGFxdWVfYWxncz1yc2Etc2lnbi1wc3Msbm9uZSBcCi0gICAgICAgICAgICAgY3J0X2ZpbGUyPWRhdGFfZmlsZXMvc2VydmVyNC5jcnQgXAotICAgICAgICAgICAgIGtleV9maWxlMj1kYXRhX2ZpbGVzL3NlcnZlcjQua2V5IGtleV9vcGFxdWVfYWxnczI9cnNhLXNpZ24tcGtjczEsbm9uZSIgXAorICAgICAgICAgICAgIiRQX1NSViBmb3JjZV92ZXJzaW9uPXRsczEyIGF1dGhfbW9kZT1yZXF1aXJlZCBrZXlfb3BhcXVlPTEgY3J0X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9zZXJ2ZXIyLXNoYTI1Ni5jcnQgXAorICAgICAgICAgICAgIGtleV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvc2VydmVyMi5rZXkga2V5X29wYXF1ZV9hbGdzPXJzYS1zaWduLXBzcyxub25lIFwKKyAgICAgICAgICAgICBjcnRfZmlsZTI9JERBVEFfRklMRVNfUEFUSC9zZXJ2ZXI0LmNydCBcCisgICAgICAgICAgICAga2V5X2ZpbGUyPSREQVRBX0ZJTEVTX1BBVEgvc2VydmVyNC5rZXkga2V5X29wYXF1ZV9hbGdzMj1yc2Etc2lnbi1wa2NzMSxub25lIiBcCiAgICAgICAgICAgICAiJFBfQ0xJIGZvcmNlX3ZlcnNpb249dGxzMTIiIFwKICAgICAgICAgICAgIDAgXAogICAgICAgICAgICAgLWMgIlZlcmlmeWluZyBwZWVyIFguNTA5IGNlcnRpZmljYXRlLi4uIG9rIiBcCkBAIC0yNTYwLDEwICsyNTYyLDEwIEBACiByZXF1aXJlc19oYXNoX2FsZyBTSEFfMzg0CiByZXF1aXJlc19jb25maWdfZGlzYWJsZWQgTUJFRFRMU19YNTA5X1JFTU9WRV9JTkZPCiBydW5fdGVzdCAgICAiT3BhcXVlIGtleXMgZm9yIHNlcnZlciBhdXRoZW50aWNhdGlvbjogRUMgKyBSU0EsIGZvcmNlIERIRS1SU0EiIFwKLSAgICAgICAgICAgICIkUF9TUlYgYXV0aF9tb2RlPXJlcXVpcmVkIGtleV9vcGFxdWU9MSBjcnRfZmlsZT1kYXRhX2ZpbGVzL3NlcnZlcjUuY3J0IFwKLSAgICAgICAgICAgICBrZXlfZmlsZT1kYXRhX2ZpbGVzL3NlcnZlcjUua2V5IGtleV9vcGFxdWVfYWxncz1lY2RzYS1zaWduLG5vbmUgXAotICAgICAgICAgICAgIGNydF9maWxlMj1kYXRhX2ZpbGVzL3NlcnZlcjQuY3J0IFwKLSAgICAgICAgICAgICBrZXlfZmlsZTI9ZGF0YV9maWxlcy9zZXJ2ZXI0LmtleSBrZXlfb3BhcXVlX2FsZ3MyPXJzYS1zaWduLXBrY3MxLG5vbmUiIFwKKyAgICAgICAgICAgICIkUF9TUlYgYXV0aF9tb2RlPXJlcXVpcmVkIGtleV9vcGFxdWU9MSBjcnRfZmlsZT0kREFUQV9GSUxFU19QQVRIL3NlcnZlcjUuY3J0IFwKKyAgICAgICAgICAgICBrZXlfZmlsZT0kREFUQV9GSUxFU19QQVRIL3NlcnZlcjUua2V5IGtleV9vcGFxdWVfYWxncz1lY2RzYS1zaWduLG5vbmUgXAorICAgICAgICAgICAgIGNydF9maWxlMj0kREFUQV9GSUxFU19QQVRIL3NlcnZlcjQuY3J0IFwKKyAgICAgICAgICAgICBrZXlfZmlsZTI9JERBVEFfRklMRVNfUEFUSC9zZXJ2ZXI0LmtleSBrZXlfb3BhcXVlX2FsZ3MyPXJzYS1zaWduLXBrY3MxLG5vbmUiIFwKICAgICAgICAgICAgICIkUF9DTEkgZm9yY2VfY2lwaGVyc3VpdGU9VExTLURIRS1SU0EtV0lUSC1BRVMtMTI4LUNCQy1TSEEiIFwKICAgICAgICAgICAgIDAgXAogICAgICAgICAgICAgLWMgIlZlcmlmeWluZyBwZWVyIFguNTA5IGNlcnRpZmljYXRlLi4uIG9rIiBcCkBAIC0yNTgwLDEwICsyNTgyLDEwIEBACiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBNQkVEVExTX0tFWV9FWENIQU5HRV9FQ0RIRV9FQ0RTQV9FTkFCTEVECiByZXF1aXJlc19oYXNoX2FsZyBTSEFfMjU2CiBydW5fdGVzdCAgICAiT3BhcXVlIGtleSBmb3IgY2xpZW50L3NlcnZlciBhdXRoZW50aWNhdGlvbjogRUNESEUtRUNEU0EiIFwKLSAgICAgICAgICAgICIkUF9TUlYgZm9yY2VfdmVyc2lvbj10bHMxMiBhdXRoX21vZGU9cmVxdWlyZWQga2V5X29wYXF1ZT0xIGNydF9maWxlPWRhdGFfZmlsZXMvc2VydmVyNS5jcnQgXAotICAgICAgICAgICAgIGtleV9maWxlPWRhdGFfZmlsZXMvc2VydmVyNS5rZXkga2V5X29wYXF1ZV9hbGdzPWVjZHNhLXNpZ24sbm9uZSIgXAotICAgICAgICAgICAgIiRQX0NMSSBrZXlfb3BhcXVlPTEgY3J0X2ZpbGU9ZGF0YV9maWxlcy9zZXJ2ZXI1LmNydCBcCi0gICAgICAgICAgICAga2V5X2ZpbGU9ZGF0YV9maWxlcy9zZXJ2ZXI1LmtleSBrZXlfb3BhcXVlX2FsZ3M9ZWNkc2Etc2lnbixub25lIiBcCisgICAgICAgICAgICAiJFBfU1JWIGZvcmNlX3ZlcnNpb249dGxzMTIgYXV0aF9tb2RlPXJlcXVpcmVkIGtleV9vcGFxdWU9MSBjcnRfZmlsZT0kREFUQV9GSUxFU19QQVRIL3NlcnZlcjUuY3J0IFwKKyAgICAgICAgICAgICBrZXlfZmlsZT0kREFUQV9GSUxFU19QQVRIL3NlcnZlcjUua2V5IGtleV9vcGFxdWVfYWxncz1lY2RzYS1zaWduLG5vbmUiIFwKKyAgICAgICAgICAgICIkUF9DTEkga2V5X29wYXF1ZT0xIGNydF9maWxlPSREQVRBX0ZJTEVTX1BBVEgvc2VydmVyNS5jcnQgXAorICAgICAgICAgICAgIGtleV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvc2VydmVyNS5rZXkga2V5X29wYXF1ZV9hbGdzPWVjZHNhLXNpZ24sbm9uZSIgXAogICAgICAgICAgICAgMCBcCiAgICAgICAgICAgICAtYyAia2V5IHR5cGU6IE9wYXF1ZSIgXAogICAgICAgICAgICAgLWMgIlZlcmlmeWluZyBwZWVyIFguNTA5IGNlcnRpZmljYXRlLi4uIG9rIiBcCkBAIC0yNjAxLDEwICsyNjAzLDEwIEBACiByZXF1aXJlc19oYXNoX2FsZyBTSEFfMjU2CiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBNQkVEVExTX0tFWV9FWENIQU5HRV9FQ0RIRV9SU0FfRU5BQkxFRAogcnVuX3Rlc3QgICAgIk9wYXF1ZSBrZXkgZm9yIGNsaWVudC9zZXJ2ZXIgYXV0aGVudGljYXRpb246IEVDREhFLVJTQSIgXAotICAgICAgICAgICAgIiRQX1NSViBhdXRoX21vZGU9cmVxdWlyZWQga2V5X29wYXF1ZT0xIGNydF9maWxlPWRhdGFfZmlsZXMvc2VydmVyMi1zaGEyNTYuY3J0IFwKLSAgICAgICAgICAgICBrZXlfZmlsZT1kYXRhX2ZpbGVzL3NlcnZlcjIua2V5ICBrZXlfb3BhcXVlX2FsZ3M9cnNhLXNpZ24tcGtjczEsbm9uZSIgXAotICAgICAgICAgICAgIiRQX0NMSSBmb3JjZV92ZXJzaW9uPXRsczEyIGtleV9vcGFxdWU9MSBjcnRfZmlsZT1kYXRhX2ZpbGVzL3NlcnZlcjItc2hhMjU2LmNydCBcCi0gICAgICAgICAgICAga2V5X2ZpbGU9ZGF0YV9maWxlcy9zZXJ2ZXIyLmtleSAga2V5X29wYXF1ZV9hbGdzPXJzYS1zaWduLXBrY3MxLG5vbmUiIFwKKyAgICAgICAgICAgICIkUF9TUlYgYXV0aF9tb2RlPXJlcXVpcmVkIGtleV9vcGFxdWU9MSBjcnRfZmlsZT0kREFUQV9GSUxFU19QQVRIL3NlcnZlcjItc2hhMjU2LmNydCBcCisgICAgICAgICAgICAga2V5X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9zZXJ2ZXIyLmtleSAga2V5X29wYXF1ZV9hbGdzPXJzYS1zaWduLXBrY3MxLG5vbmUiIFwKKyAgICAgICAgICAgICIkUF9DTEkgZm9yY2VfdmVyc2lvbj10bHMxMiBrZXlfb3BhcXVlPTEgY3J0X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9zZXJ2ZXIyLXNoYTI1Ni5jcnQgXAorICAgICAgICAgICAgIGtleV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvc2VydmVyMi5rZXkgIGtleV9vcGFxdWVfYWxncz1yc2Etc2lnbi1wa2NzMSxub25lIiBcCiAgICAgICAgICAgICAwIFwKICAgICAgICAgICAgIC1jICJrZXkgdHlwZTogT3BhcXVlIiBcCiAgICAgICAgICAgICAtYyAiVmVyaWZ5aW5nIHBlZXIgWC41MDkgY2VydGlmaWNhdGUuLi4gb2siIFwKQEAgLTI2MjAsMTAgKzI2MjIsMTAgQEAKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIE1CRURUTFNfUlNBX0MKIHJlcXVpcmVzX2hhc2hfYWxnIFNIQV8yNTYKIHJ1bl90ZXN0ICAgICJPcGFxdWUga2V5IGZvciBjbGllbnQvc2VydmVyIGF1dGhlbnRpY2F0aW9uOiBESEUtUlNBIiBcCi0gICAgICAgICAgICAiJFBfU1JWIGF1dGhfbW9kZT1yZXF1aXJlZCBrZXlfb3BhcXVlPTEgY3J0X2ZpbGU9ZGF0YV9maWxlcy9zZXJ2ZXIyLXNoYTI1Ni5jcnQgXAotICAgICAgICAgICAgIGtleV9maWxlPWRhdGFfZmlsZXMvc2VydmVyMi5rZXkgIGtleV9vcGFxdWVfYWxncz1yc2Etc2lnbi1wa2NzMSxub25lIiBcCi0gICAgICAgICAgICAiJFBfQ0xJIGtleV9vcGFxdWU9MSBjcnRfZmlsZT1kYXRhX2ZpbGVzL3NlcnZlcjItc2hhMjU2LmNydCBcCi0gICAgICAgICAgICAga2V5X2ZpbGU9ZGF0YV9maWxlcy9zZXJ2ZXIyLmtleSAga2V5X29wYXF1ZV9hbGdzPXJzYS1zaWduLXBrY3MxLG5vbmUgXAorICAgICAgICAgICAgIiRQX1NSViBhdXRoX21vZGU9cmVxdWlyZWQga2V5X29wYXF1ZT0xIGNydF9maWxlPSREQVRBX0ZJTEVTX1BBVEgvc2VydmVyMi1zaGEyNTYuY3J0IFwKKyAgICAgICAgICAgICBrZXlfZmlsZT0kREFUQV9GSUxFU19QQVRIL3NlcnZlcjIua2V5ICBrZXlfb3BhcXVlX2FsZ3M9cnNhLXNpZ24tcGtjczEsbm9uZSIgXAorICAgICAgICAgICAgIiRQX0NMSSBrZXlfb3BhcXVlPTEgY3J0X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9zZXJ2ZXIyLXNoYTI1Ni5jcnQgXAorICAgICAgICAgICAgIGtleV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvc2VydmVyMi5rZXkgIGtleV9vcGFxdWVfYWxncz1yc2Etc2lnbi1wa2NzMSxub25lIFwKICAgICAgICAgICAgICBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMtREhFLVJTQS1XSVRILUFFUy0xMjgtQ0JDLVNIQSIgXAogICAgICAgICAgICAgMCBcCiAgICAgICAgICAgICAtYyAia2V5IHR5cGU6IE9wYXF1ZSIgXApAQCAtMjcxNSw4ICsyNzE3LDggQEAKIHJlcXVpcmVzX2hhc2hfYWxnIFNIQV8yNTYKIHJ1bl90ZXN0ICAgICJTaW5nbGUgc3VwcG9ydGVkIGFsZ29yaXRobSBzZW5kaW5nOiBvcGVuc3NsIGNsaWVudCIgXAogICAgICAgICAgICAgIiRQX1NSViBzaWdfYWxncz1lY2RzYV9zZWNwMjU2cjFfc2hhMjU2IGF1dGhfbW9kZT1yZXF1aXJlZCIgXAotICAgICAgICAgICAgIiRPX0NMSSAtY2VydCBkYXRhX2ZpbGVzL3NlcnZlcjYuY3J0IFwKLSAgICAgICAgICAgICAgICAgICAgLWtleSBkYXRhX2ZpbGVzL3NlcnZlcjYua2V5IiBcCisgICAgICAgICAgICAiJE9fQ0xJIC1jZXJ0ICREQVRBX0ZJTEVTX1BBVEgvc2VydmVyNi5jcnQgXAorICAgICAgICAgICAgICAgICAgICAta2V5ICREQVRBX0ZJTEVTX1BBVEgvc2VydmVyNi5rZXkiIFwKICAgICAgICAgICAgIDAKIAogIyBUZXN0cyBmb3IgY2VydGlmaWNhdGUgdmVyaWZpY2F0aW9uIGNhbGxiYWNrCkBAIC0yNzQzLDE5ICsyNzQ1LDE5IEBACiAjIFRlc3RzIGZvciBTSEEtMSBzdXBwb3J0CiByZXF1aXJlc19oYXNoX2FsZyBTSEFfMQogcnVuX3Rlc3QgICAgIlNIQS0xIGZvcmJpZGRlbiBieSBkZWZhdWx0IGluIHNlcnZlciBjZXJ0aWZpY2F0ZSIgXAotICAgICAgICAgICAgIiRQX1NSViBrZXlfZmlsZT1kYXRhX2ZpbGVzL3NlcnZlcjIua2V5IGNydF9maWxlPWRhdGFfZmlsZXMvc2VydmVyMi5jcnQiIFwKKyAgICAgICAgICAgICIkUF9TUlYga2V5X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9zZXJ2ZXIyLmtleSBjcnRfZmlsZT0kREFUQV9GSUxFU19QQVRIL3NlcnZlcjIuY3J0IiBcCiAgICAgICAgICAgICAiJFBfQ0xJIGRlYnVnX2xldmVsPTIgZm9yY2VfdmVyc2lvbj10bHMxMiBhbGxvd19zaGExPTAiIFwKICAgICAgICAgICAgIDEgXAogICAgICAgICAgICAgLWMgIlRoZSBjZXJ0aWZpY2F0ZSBpcyBzaWduZWQgd2l0aCBhbiB1bmFjY2VwdGFibGUgaGFzaCIKIAogcmVxdWlyZXNfaGFzaF9hbGcgU0hBXzEKIHJ1bl90ZXN0ICAgICJTSEEtMSBleHBsaWNpdGx5IGFsbG93ZWQgaW4gc2VydmVyIGNlcnRpZmljYXRlIiBcCi0gICAgICAgICAgICAiJFBfU1JWIGtleV9maWxlPWRhdGFfZmlsZXMvc2VydmVyMi5rZXkgY3J0X2ZpbGU9ZGF0YV9maWxlcy9zZXJ2ZXIyLmNydCIgXAorICAgICAgICAgICAgIiRQX1NSViBrZXlfZmlsZT0kREFUQV9GSUxFU19QQVRIL3NlcnZlcjIua2V5IGNydF9maWxlPSREQVRBX0ZJTEVTX1BBVEgvc2VydmVyMi5jcnQiIFwKICAgICAgICAgICAgICIkUF9DTEkgZm9yY2VfdmVyc2lvbj10bHMxMiBhbGxvd19zaGExPTEiIFwKICAgICAgICAgICAgIDAKIAogcnVuX3Rlc3QgICAgIlNIQS0yNTYgYWxsb3dlZCBieSBkZWZhdWx0IGluIHNlcnZlciBjZXJ0aWZpY2F0ZSIgXAotICAgICAgICAgICAgIiRQX1NSViBrZXlfZmlsZT1kYXRhX2ZpbGVzL3NlcnZlcjIua2V5IGNydF9maWxlPWRhdGFfZmlsZXMvc2VydmVyMi1zaGEyNTYuY3J0IiBcCisgICAgICAgICAgICAiJFBfU1JWIGtleV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvc2VydmVyMi5rZXkgY3J0X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9zZXJ2ZXIyLXNoYTI1Ni5jcnQiIFwKICAgICAgICAgICAgICIkUF9DTEkgZm9yY2VfdmVyc2lvbj10bHMxMiBhbGxvd19zaGExPTAiIFwKICAgICAgICAgICAgIDAKIApAQCAtMjc2Myw3ICsyNzY1LDcgQEAKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIE1CRURUTFNfUlNBX0MKIHJ1bl90ZXN0ICAgICJTSEEtMSBmb3JiaWRkZW4gYnkgZGVmYXVsdCBpbiBjbGllbnQgY2VydGlmaWNhdGUiIFwKICAgICAgICAgICAgICIkUF9TUlYgZm9yY2VfdmVyc2lvbj10bHMxMiBhdXRoX21vZGU9cmVxdWlyZWQgYWxsb3dfc2hhMT0wIiBcCi0gICAgICAgICAgICAiJFBfQ0xJIGtleV9maWxlPWRhdGFfZmlsZXMvY2xpLXJzYS5rZXkgY3J0X2ZpbGU9ZGF0YV9maWxlcy9jbGktcnNhLXNoYTEuY3J0IiBcCisgICAgICAgICAgICAiJFBfQ0xJIGtleV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvY2xpLXJzYS5rZXkgY3J0X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9jbGktcnNhLXNoYTEuY3J0IiBcCiAgICAgICAgICAgICAxIFwKICAgICAgICAgICAgIC1zICJUaGUgY2VydGlmaWNhdGUgaXMgc2lnbmVkIHdpdGggYW4gdW5hY2NlcHRhYmxlIGhhc2giCiAKQEAgLTI3NzEsMTQgKzI3NzMsMTQgQEAKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIE1CRURUTFNfUlNBX0MKIHJ1bl90ZXN0ICAgICJTSEEtMSBleHBsaWNpdGx5IGFsbG93ZWQgaW4gY2xpZW50IGNlcnRpZmljYXRlIiBcCiAgICAgICAgICAgICAiJFBfU1JWIGZvcmNlX3ZlcnNpb249dGxzMTIgYXV0aF9tb2RlPXJlcXVpcmVkIGFsbG93X3NoYTE9MSIgXAotICAgICAgICAgICAgIiRQX0NMSSBrZXlfZmlsZT1kYXRhX2ZpbGVzL2NsaS1yc2Eua2V5IGNydF9maWxlPWRhdGFfZmlsZXMvY2xpLXJzYS1zaGExLmNydCIgXAorICAgICAgICAgICAgIiRQX0NMSSBrZXlfZmlsZT0kREFUQV9GSUxFU19QQVRIL2NsaS1yc2Eua2V5IGNydF9maWxlPSREQVRBX0ZJTEVTX1BBVEgvY2xpLXJzYS1zaGExLmNydCIgXAogICAgICAgICAgICAgMAogCiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBNQkVEVExTX1JTQV9DCiByZXF1aXJlc19oYXNoX2FsZyBTSEFfMjU2CiBydW5fdGVzdCAgICAiU0hBLTI1NiBhbGxvd2VkIGJ5IGRlZmF1bHQgaW4gY2xpZW50IGNlcnRpZmljYXRlIiBcCiAgICAgICAgICAgICAiJFBfU1JWIGZvcmNlX3ZlcnNpb249dGxzMTIgYXV0aF9tb2RlPXJlcXVpcmVkIGFsbG93X3NoYTE9MCIgXAotICAgICAgICAgICAgIiRQX0NMSSBrZXlfZmlsZT1kYXRhX2ZpbGVzL2NsaS1yc2Eua2V5IGNydF9maWxlPWRhdGFfZmlsZXMvY2xpLXJzYS1zaGEyNTYuY3J0IiBcCisgICAgICAgICAgICAiJFBfQ0xJIGtleV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvY2xpLXJzYS5rZXkgY3J0X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9jbGktcnNhLXNoYTI1Ni5jcnQiIFwKICAgICAgICAgICAgIDAKIAogIyBUZXN0cyBmb3IgZGF0YWdyYW0gcGFja2luZwpAQCAtNTU1Miw3ICs1NTU0LDcgQEAKICAgICAgICAgICAgIC1jICJjbGllbnQgaGVsbG8sIGFkZGluZyByZW5lZ290aWF0aW9uIGV4dGVuc2lvbiIgXAogICAgICAgICAgICAgLWMgImZvdW5kIHJlbmVnb3RpYXRpb24gZXh0ZW5zaW9uIiBcCiAgICAgICAgICAgICAtYyAiPT4gcmVuZWdvdGlhdGUiIFwKLSAgICAgICAgICAgIC1DICJzc2xfaGFuc2hha2UoKSByZXR1cm5lZCIgXAorICAgICAgICAgICAgLUMgInNzbF9oYW5kc2hha2UoKSByZXR1cm5lZCIgXAogICAgICAgICAgICAgLUMgImVycm9yIiBcCiAgICAgICAgICAgICAtYyAiSFRUUC8xLjAgMjAwIFtPb11bS2tdIgogCkBAIC01NTY2LDcgKzU1NjgsNyBAQAogICAgICAgICAgICAgLWMgImNsaWVudCBoZWxsbywgYWRkaW5nIHJlbmVnb3RpYXRpb24gZXh0ZW5zaW9uIiBcCiAgICAgICAgICAgICAtYyAiZm91bmQgcmVuZWdvdGlhdGlvbiBleHRlbnNpb24iIFwKICAgICAgICAgICAgIC1jICI9PiByZW5lZ290aWF0ZSIgXAotICAgICAgICAgICAgLUMgInNzbF9oYW5zaGFrZSgpIHJldHVybmVkIiBcCisgICAgICAgICAgICAtQyAic3NsX2hhbmRzaGFrZSgpIHJldHVybmVkIiBcCiAgICAgICAgICAgICAtQyAiZXJyb3IiIFwKICAgICAgICAgICAgIC1jICJIVFRQLzEuMCAyMDAgW09vXVtLa10iCiAKQEAgLTU2MTAsNyArNTYxMiw3IEBACiAgICAgICAgICAgICAtYyAiY2xpZW50IGhlbGxvLCBhZGRpbmcgcmVuZWdvdGlhdGlvbiBleHRlbnNpb24iIFwKICAgICAgICAgICAgIC1DICJmb3VuZCByZW5lZ290aWF0aW9uIGV4dGVuc2lvbiIgXAogICAgICAgICAgICAgLWMgIj0+IHJlbmVnb3RpYXRlIiBcCi0gICAgICAgICAgICAtQyAic3NsX2hhbnNoYWtlKCkgcmV0dXJuZWQiIFwKKyAgICAgICAgICAgIC1DICJzc2xfaGFuZHNoYWtlKCkgcmV0dXJuZWQiIFwKICAgICAgICAgICAgIC1DICJlcnJvciIgXAogICAgICAgICAgICAgLWMgIkhUVFAvMS4wIDIwMCBbT29dW0trXSIKIApAQCAtNTc0NCw4ICs1NzQ2LDggQEAKIHJlcXVpcmVzX2dudXRscwogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgTUJFRFRMU19TU0xfUFJPVE9fVExTMV8yCiBydW5fdGVzdCAgICAiREVSIGZvcm1hdDogbm8gdHJhaWxpbmcgYnl0ZXMiIFwKLSAgICAgICAgICAgICIkUF9TUlYgY3J0X2ZpbGU9ZGF0YV9maWxlcy9zZXJ2ZXI1LWRlcjAuY3J0IFwKLSAgICAgICAgICAgICBrZXlfZmlsZT1kYXRhX2ZpbGVzL3NlcnZlcjUua2V5IiBcCisgICAgICAgICAgICAiJFBfU1JWIGNydF9maWxlPSREQVRBX0ZJTEVTX1BBVEgvc2VydmVyNS1kZXIwLmNydCBcCisgICAgICAgICAgICAga2V5X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9zZXJ2ZXI1LmtleSIgXAogICAgICAgICAgICAgIiRHX0NMSSBsb2NhbGhvc3QiIFwKICAgICAgICAgICAgIDAgXAogICAgICAgICAgICAgLWMgIkhhbmRzaGFrZSB3YXMgY29tcGxldGVkIiBcCkBAIC01NzUzLDggKzU3NTUsOCBAQAogcmVxdWlyZXNfZ251dGxzCiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBNQkVEVExTX1NTTF9QUk9UT19UTFMxXzIKIHJ1bl90ZXN0ICAgICJERVIgZm9ybWF0OiB3aXRoIGEgdHJhaWxpbmcgemVybyBieXRlIiBcCi0gICAgICAgICAgICAiJFBfU1JWIGNydF9maWxlPWRhdGFfZmlsZXMvc2VydmVyNS1kZXIxYS5jcnQgXAotICAgICAgICAgICAgIGtleV9maWxlPWRhdGFfZmlsZXMvc2VydmVyNS5rZXkiIFwKKyAgICAgICAgICAgICIkUF9TUlYgY3J0X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9zZXJ2ZXI1LWRlcjFhLmNydCBcCisgICAgICAgICAgICAga2V5X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9zZXJ2ZXI1LmtleSIgXAogICAgICAgICAgICAgIiRHX0NMSSBsb2NhbGhvc3QiIFwKICAgICAgICAgICAgIDAgXAogICAgICAgICAgICAgLWMgIkhhbmRzaGFrZSB3YXMgY29tcGxldGVkIiBcCkBAIC01NzYyLDggKzU3NjQsOCBAQAogcmVxdWlyZXNfZ251dGxzCiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBNQkVEVExTX1NTTF9QUk9UT19UTFMxXzIKIHJ1bl90ZXN0ICAgICJERVIgZm9ybWF0OiB3aXRoIGEgdHJhaWxpbmcgcmFuZG9tIGJ5dGUiIFwKLSAgICAgICAgICAgICIkUF9TUlYgY3J0X2ZpbGU9ZGF0YV9maWxlcy9zZXJ2ZXI1LWRlcjFiLmNydCBcCi0gICAgICAgICAgICAga2V5X2ZpbGU9ZGF0YV9maWxlcy9zZXJ2ZXI1LmtleSIgXAorICAgICAgICAgICAgIiRQX1NSViBjcnRfZmlsZT0kREFUQV9GSUxFU19QQVRIL3NlcnZlcjUtZGVyMWIuY3J0IFwKKyAgICAgICAgICAgICBrZXlfZmlsZT0kREFUQV9GSUxFU19QQVRIL3NlcnZlcjUua2V5IiBcCiAgICAgICAgICAgICAiJEdfQ0xJIGxvY2FsaG9zdCIgXAogICAgICAgICAgICAgMCBcCiAgICAgICAgICAgICAtYyAiSGFuZHNoYWtlIHdhcyBjb21wbGV0ZWQiIFwKQEAgLTU3NzEsOCArNTc3Myw4IEBACiByZXF1aXJlc19nbnV0bHMKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIE1CRURUTFNfU1NMX1BST1RPX1RMUzFfMgogcnVuX3Rlc3QgICAgIkRFUiBmb3JtYXQ6IHdpdGggMiB0cmFpbGluZyByYW5kb20gYnl0ZXMiIFwKLSAgICAgICAgICAgICIkUF9TUlYgY3J0X2ZpbGU9ZGF0YV9maWxlcy9zZXJ2ZXI1LWRlcjIuY3J0IFwKLSAgICAgICAgICAgICBrZXlfZmlsZT1kYXRhX2ZpbGVzL3NlcnZlcjUua2V5IiBcCisgICAgICAgICAgICAiJFBfU1JWIGNydF9maWxlPSREQVRBX0ZJTEVTX1BBVEgvc2VydmVyNS1kZXIyLmNydCBcCisgICAgICAgICAgICAga2V5X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9zZXJ2ZXI1LmtleSIgXAogICAgICAgICAgICAgIiRHX0NMSSBsb2NhbGhvc3QiIFwKICAgICAgICAgICAgIDAgXAogICAgICAgICAgICAgLWMgIkhhbmRzaGFrZSB3YXMgY29tcGxldGVkIiBcCkBAIC01NzgwLDggKzU3ODIsOCBAQAogcmVxdWlyZXNfZ251dGxzCiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBNQkVEVExTX1NTTF9QUk9UT19UTFMxXzIKIHJ1bl90ZXN0ICAgICJERVIgZm9ybWF0OiB3aXRoIDQgdHJhaWxpbmcgcmFuZG9tIGJ5dGVzIiBcCi0gICAgICAgICAgICAiJFBfU1JWIGNydF9maWxlPWRhdGFfZmlsZXMvc2VydmVyNS1kZXI0LmNydCBcCi0gICAgICAgICAgICAga2V5X2ZpbGU9ZGF0YV9maWxlcy9zZXJ2ZXI1LmtleSIgXAorICAgICAgICAgICAgIiRQX1NSViBjcnRfZmlsZT0kREFUQV9GSUxFU19QQVRIL3NlcnZlcjUtZGVyNC5jcnQgXAorICAgICAgICAgICAgIGtleV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvc2VydmVyNS5rZXkiIFwKICAgICAgICAgICAgICIkR19DTEkgbG9jYWxob3N0IiBcCiAgICAgICAgICAgICAwIFwKICAgICAgICAgICAgIC1jICJIYW5kc2hha2Ugd2FzIGNvbXBsZXRlZCIgXApAQCAtNTc4OSw4ICs1NzkxLDggQEAKIHJlcXVpcmVzX2dudXRscwogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgTUJFRFRMU19TU0xfUFJPVE9fVExTMV8yCiBydW5fdGVzdCAgICAiREVSIGZvcm1hdDogd2l0aCA4IHRyYWlsaW5nIHJhbmRvbSBieXRlcyIgXAotICAgICAgICAgICAgIiRQX1NSViBjcnRfZmlsZT1kYXRhX2ZpbGVzL3NlcnZlcjUtZGVyOC5jcnQgXAotICAgICAgICAgICAgIGtleV9maWxlPWRhdGFfZmlsZXMvc2VydmVyNS5rZXkiIFwKKyAgICAgICAgICAgICIkUF9TUlYgY3J0X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9zZXJ2ZXI1LWRlcjguY3J0IFwKKyAgICAgICAgICAgICBrZXlfZmlsZT0kREFUQV9GSUxFU19QQVRIL3NlcnZlcjUua2V5IiBcCiAgICAgICAgICAgICAiJEdfQ0xJIGxvY2FsaG9zdCIgXAogICAgICAgICAgICAgMCBcCiAgICAgICAgICAgICAtYyAiSGFuZHNoYWtlIHdhcyBjb21wbGV0ZWQiIFwKQEAgLTU3OTgsOCArNTgwMCw4IEBACiByZXF1aXJlc19nbnV0bHMKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIE1CRURUTFNfU1NMX1BST1RPX1RMUzFfMgogcnVuX3Rlc3QgICAgIkRFUiBmb3JtYXQ6IHdpdGggOSB0cmFpbGluZyByYW5kb20gYnl0ZXMiIFwKLSAgICAgICAgICAgICIkUF9TUlYgY3J0X2ZpbGU9ZGF0YV9maWxlcy9zZXJ2ZXI1LWRlcjkuY3J0IFwKLSAgICAgICAgICAgICBrZXlfZmlsZT1kYXRhX2ZpbGVzL3NlcnZlcjUua2V5IiBcCisgICAgICAgICAgICAiJFBfU1JWIGNydF9maWxlPSREQVRBX0ZJTEVTX1BBVEgvc2VydmVyNS1kZXI5LmNydCBcCisgICAgICAgICAgICAga2V5X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9zZXJ2ZXI1LmtleSIgXAogICAgICAgICAgICAgIiRHX0NMSSBsb2NhbGhvc3QiIFwKICAgICAgICAgICAgIDAgXAogICAgICAgICAgICAgLWMgIkhhbmRzaGFrZSB3YXMgY29tcGxldGVkIiBcCkBAIC01ODA5LDggKzU4MTEsOCBAQAogCiByZXF1aXJlc19rZXlfZXhjaGFuZ2Vfd2l0aF9jZXJ0X2luX3RsczEyX29yX3RsczEzX2VuYWJsZWQKIHJ1bl90ZXN0ICAgICJBdXRoZW50aWNhdGlvbjogc2VydmVyIGJhZGNlcnQsIGNsaWVudCByZXF1aXJlZCIgXAotICAgICAgICAgICAgIiRQX1NSViBjcnRfZmlsZT1kYXRhX2ZpbGVzL3NlcnZlcjUtYmFkc2lnbi5jcnQgXAotICAgICAgICAgICAgIGtleV9maWxlPWRhdGFfZmlsZXMvc2VydmVyNS5rZXkiIFwKKyAgICAgICAgICAgICIkUF9TUlYgY3J0X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9zZXJ2ZXI1LWJhZHNpZ24uY3J0IFwKKyAgICAgICAgICAgICBrZXlfZmlsZT0kREFUQV9GSUxFU19QQVRIL3NlcnZlcjUua2V5IiBcCiAgICAgICAgICAgICAiJFBfQ0xJIGRlYnVnX2xldmVsPTEgYXV0aF9tb2RlPXJlcXVpcmVkIiBcCiAgICAgICAgICAgICAxIFwKICAgICAgICAgICAgIC1jICJ4NTA5X3ZlcmlmeV9jZXJ0KCkgcmV0dXJuZWQiIFwKQEAgLTU4MTksOCArNTgyMSw4IEBACiAgICAgICAgICAgICAtYyAiWDUwOSAtIENlcnRpZmljYXRlIHZlcmlmaWNhdGlvbiBmYWlsZWQiCiAKIHJ1bl90ZXN0ICAgICJBdXRoZW50aWNhdGlvbjogc2VydmVyIGJhZGNlcnQsIGNsaWVudCBvcHRpb25hbCIgXAotICAgICAgICAgICAgIiRQX1NSViBjcnRfZmlsZT1kYXRhX2ZpbGVzL3NlcnZlcjUtYmFkc2lnbi5jcnQgXAotICAgICAgICAgICAgIGtleV9maWxlPWRhdGFfZmlsZXMvc2VydmVyNS5rZXkiIFwKKyAgICAgICAgICAgICIkUF9TUlYgY3J0X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9zZXJ2ZXI1LWJhZHNpZ24uY3J0IFwKKyAgICAgICAgICAgICBrZXlfZmlsZT0kREFUQV9GSUxFU19QQVRIL3NlcnZlcjUua2V5IiBcCiAgICAgICAgICAgICAiJFBfQ0xJIGZvcmNlX3ZlcnNpb249dGxzMTIgZGVidWdfbGV2ZWw9MSBhdXRoX21vZGU9b3B0aW9uYWwiIFwKICAgICAgICAgICAgIDAgXAogICAgICAgICAgICAgLWMgIng1MDlfdmVyaWZ5X2NlcnQoKSByZXR1cm5lZCIgXApAQCAtNTg1OSw4ICs1ODYxLDggQEAKICMgZGlmZmVyZW50IG1lYW5zIHRvIGhhdmUgdGhlIHNlcnZlciBpZ25vcmluZyB0aGUgY2xpZW50J3Mgc3VwcG9ydGVkIGN1cnZlIGxpc3QuCiAKIHJ1bl90ZXN0ICAgICJBdXRoZW50aWNhdGlvbjogc2VydmVyIEVDREggcDI1NnYxLCBjbGllbnQgcmVxdWlyZWQsIHAyNTZ2MSB1bnN1cHBvcnRlZCIgXAotICAgICAgICAgICAgIiRQX1NSViBkZWJ1Z19sZXZlbD0xIGtleV9maWxlPWRhdGFfZmlsZXMvc2VydmVyNS5rZXkgXAotICAgICAgICAgICAgIGNydF9maWxlPWRhdGFfZmlsZXMvc2VydmVyNS5rdS1rYS5jcnQiIFwKKyAgICAgICAgICAgICIkUF9TUlYgZGVidWdfbGV2ZWw9MSBrZXlfZmlsZT0kREFUQV9GSUxFU19QQVRIL3NlcnZlcjUua2V5IFwKKyAgICAgICAgICAgICBjcnRfZmlsZT0kREFUQV9GSUxFU19QQVRIL3NlcnZlcjUua3Uta2EuY3J0IiBcCiAgICAgICAgICAgICAiJFBfQ0xJIGZvcmNlX3ZlcnNpb249dGxzMTIgZGVidWdfbGV2ZWw9MyBhdXRoX21vZGU9cmVxdWlyZWQgZ3JvdXBzPXNlY3A1MjFyMSIgXAogICAgICAgICAgICAgMSBcCiAgICAgICAgICAgICAtYyAiYmFkIGNlcnRpZmljYXRlIChFQyBrZXkgY3VydmUpIlwKQEAgLTU4NjgsOCArNTg3MCw4IEBACiAgICAgICAgICAgICAtQyAiYmFkIHNlcnZlciBjZXJ0aWZpY2F0ZSAoRUNESCBjdXJ2ZSkiICMgRXhwZWN0IGZhaWx1cmUgYXQgZWFybGllciB2ZXJpZmljYXRpb24gc3RhZ2UKIAogcnVuX3Rlc3QgICAgIkF1dGhlbnRpY2F0aW9uOiBzZXJ2ZXIgRUNESCBwMjU2djEsIGNsaWVudCBvcHRpb25hbCwgcDI1NnYxIHVuc3VwcG9ydGVkIiBcCi0gICAgICAgICAgICAiJFBfU1JWIGRlYnVnX2xldmVsPTEga2V5X2ZpbGU9ZGF0YV9maWxlcy9zZXJ2ZXI1LmtleSBcCi0gICAgICAgICAgICAgY3J0X2ZpbGU9ZGF0YV9maWxlcy9zZXJ2ZXI1Lmt1LWthLmNydCIgXAorICAgICAgICAgICAgIiRQX1NSViBkZWJ1Z19sZXZlbD0xIGtleV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvc2VydmVyNS5rZXkgXAorICAgICAgICAgICAgIGNydF9maWxlPSREQVRBX0ZJTEVTX1BBVEgvc2VydmVyNS5rdS1rYS5jcnQiIFwKICAgICAgICAgICAgICIkUF9DTEkgZm9yY2VfdmVyc2lvbj10bHMxMiBkZWJ1Z19sZXZlbD0zIGF1dGhfbW9kZT1vcHRpb25hbCBncm91cHM9c2VjcDUyMXIxIiBcCiAgICAgICAgICAgICAxIFwKICAgICAgICAgICAgIC1jICJiYWQgY2VydGlmaWNhdGUgKEVDIGtleSBjdXJ2ZSkiXApAQCAtNTg3Nyw4ICs1ODc5LDggQEAKICAgICAgICAgICAgIC1jICJiYWQgc2VydmVyIGNlcnRpZmljYXRlIChFQ0RIIGN1cnZlKSIgIyBFeHBlY3QgZmFpbHVyZSBvbmx5IGF0IEVDREggcGFyYW1zIGNoZWNrCiAKIHJ1bl90ZXN0ICAgICJBdXRoZW50aWNhdGlvbjogc2VydmVyIGJhZGNlcnQsIGNsaWVudCBub25lIiBcCi0gICAgICAgICAgICAiJFBfU1JWIGNydF9maWxlPWRhdGFfZmlsZXMvc2VydmVyNS1iYWRzaWduLmNydCBcCi0gICAgICAgICAgICAga2V5X2ZpbGU9ZGF0YV9maWxlcy9zZXJ2ZXI1LmtleSIgXAorICAgICAgICAgICAgIiRQX1NSViBjcnRfZmlsZT0kREFUQV9GSUxFU19QQVRIL3NlcnZlcjUtYmFkc2lnbi5jcnQgXAorICAgICAgICAgICAgIGtleV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvc2VydmVyNS5rZXkiIFwKICAgICAgICAgICAgICIkUF9DTEkgZm9yY2VfdmVyc2lvbj10bHMxMiBkZWJ1Z19sZXZlbD0xIGF1dGhfbW9kZT1ub25lIiBcCiAgICAgICAgICAgICAwIFwKICAgICAgICAgICAgIC1DICJ4NTA5X3ZlcmlmeV9jZXJ0KCkgcmV0dXJuZWQiIFwKQEAgLTU4ODksOCArNTg5MSw4IEBACiByZXF1aXJlc19hbnlfY29uZmlnc19lbmFibGVkICRUTFMxXzJfS0VZX0VYQ0hBTkdFU19XSVRIX0NFUlQKIHJ1bl90ZXN0ICAgICJBdXRoZW50aWNhdGlvbjogY2xpZW50IFNIQTI1Niwgc2VydmVyIHJlcXVpcmVkIiBcCiAgICAgICAgICAgICAiJFBfU1JWIGF1dGhfbW9kZT1yZXF1aXJlZCIgXAotICAgICAgICAgICAgIiRQX0NMSSBkZWJ1Z19sZXZlbD0zIGNydF9maWxlPWRhdGFfZmlsZXMvc2VydmVyNi5jcnQgXAotICAgICAgICAgICAgIGtleV9maWxlPWRhdGFfZmlsZXMvc2VydmVyNi5rZXkgXAorICAgICAgICAgICAgIiRQX0NMSSBkZWJ1Z19sZXZlbD0zIGNydF9maWxlPSREQVRBX0ZJTEVTX1BBVEgvc2VydmVyNi5jcnQgXAorICAgICAgICAgICAgIGtleV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvc2VydmVyNi5rZXkgXAogICAgICAgICAgICAgIGZvcmNlX2NpcGhlcnN1aXRlPVRMUy1FQ0RIRS1FQ0RTQS1XSVRILUFFUy0yNTYtR0NNLVNIQTM4NCIgXAogICAgICAgICAgICAgMCBcCiAgICAgICAgICAgICAtYyAiU3VwcG9ydGVkIFNpZ25hdHVyZSBBbGdvcml0aG0gZm91bmQ6IDA0ICIgXApAQCAtNTg5OSw4ICs1OTAxLDggQEAKIHJlcXVpcmVzX2FueV9jb25maWdzX2VuYWJsZWQgJFRMUzFfMl9LRVlfRVhDSEFOR0VTX1dJVEhfQ0VSVAogcnVuX3Rlc3QgICAgIkF1dGhlbnRpY2F0aW9uOiBjbGllbnQgU0hBMzg0LCBzZXJ2ZXIgcmVxdWlyZWQiIFwKICAgICAgICAgICAgICIkUF9TUlYgYXV0aF9tb2RlPXJlcXVpcmVkIiBcCi0gICAgICAgICAgICAiJFBfQ0xJIGRlYnVnX2xldmVsPTMgY3J0X2ZpbGU9ZGF0YV9maWxlcy9zZXJ2ZXI2LmNydCBcCi0gICAgICAgICAgICAga2V5X2ZpbGU9ZGF0YV9maWxlcy9zZXJ2ZXI2LmtleSBcCisgICAgICAgICAgICAiJFBfQ0xJIGRlYnVnX2xldmVsPTMgY3J0X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9zZXJ2ZXI2LmNydCBcCisgICAgICAgICAgICAga2V5X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9zZXJ2ZXI2LmtleSBcCiAgICAgICAgICAgICAgZm9yY2VfY2lwaGVyc3VpdGU9VExTLUVDREhFLUVDRFNBLVdJVEgtQUVTLTEyOC1HQ00tU0hBMjU2IiBcCiAgICAgICAgICAgICAwIFwKICAgICAgICAgICAgIC1jICJTdXBwb3J0ZWQgU2lnbmF0dXJlIEFsZ29yaXRobSBmb3VuZDogMDQgIiBcCkBAIC01OTEwLDcgKzU5MTIsNyBAQAogcnVuX3Rlc3QgICAgIkF1dGhlbnRpY2F0aW9uOiBjbGllbnQgaGFzIG5vIGNlcnQsIHNlcnZlciByZXF1aXJlZCAoVExTKSIgXAogICAgICAgICAgICAgIiRQX1NSViBkZWJ1Z19sZXZlbD0zIGF1dGhfbW9kZT1yZXF1aXJlZCIgXAogICAgICAgICAgICAgIiRQX0NMSSBkZWJ1Z19sZXZlbD0zIGNydF9maWxlPW5vbmUgXAotICAgICAgICAgICAgIGtleV9maWxlPWRhdGFfZmlsZXMvc2VydmVyNS5rZXkiIFwKKyAgICAgICAgICAgICBrZXlfZmlsZT0kREFUQV9GSUxFU19QQVRIL3NlcnZlcjUua2V5IiBcCiAgICAgICAgICAgICAxIFwKICAgICAgICAgICAgIC1TICJza2lwIHdyaXRlIGNlcnRpZmljYXRlIHJlcXVlc3QiIFwKICAgICAgICAgICAgIC1DICJza2lwIHBhcnNlIGNlcnRpZmljYXRlIHJlcXVlc3QiIFwKQEAgLTU5MjUsOCArNTkyNyw4IEBACiByZXF1aXJlc19rZXlfZXhjaGFuZ2Vfd2l0aF9jZXJ0X2luX3RsczEyX29yX3RsczEzX2VuYWJsZWQKIHJ1bl90ZXN0ICAgICJBdXRoZW50aWNhdGlvbjogY2xpZW50IGJhZGNlcnQsIHNlcnZlciByZXF1aXJlZCIgXAogICAgICAgICAgICAgIiRQX1NSViBkZWJ1Z19sZXZlbD0zIGF1dGhfbW9kZT1yZXF1aXJlZCIgXAotICAgICAgICAgICAgIiRQX0NMSSBkZWJ1Z19sZXZlbD0zIGNydF9maWxlPWRhdGFfZmlsZXMvc2VydmVyNS1iYWRzaWduLmNydCBcCi0gICAgICAgICAgICAga2V5X2ZpbGU9ZGF0YV9maWxlcy9zZXJ2ZXI1LmtleSIgXAorICAgICAgICAgICAgIiRQX0NMSSBkZWJ1Z19sZXZlbD0zIGNydF9maWxlPSREQVRBX0ZJTEVTX1BBVEgvc2VydmVyNS1iYWRzaWduLmNydCBcCisgICAgICAgICAgICAga2V5X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9zZXJ2ZXI1LmtleSIgXAogICAgICAgICAgICAgMSBcCiAgICAgICAgICAgICAtUyAic2tpcCB3cml0ZSBjZXJ0aWZpY2F0ZSByZXF1ZXN0IiBcCiAgICAgICAgICAgICAtQyAic2tpcCBwYXJzZSBjZXJ0aWZpY2F0ZSByZXF1ZXN0IiBcCkBAIC01OTQ1LDkgKzU5NDcsOSBAQAogCiByZXF1aXJlc19rZXlfZXhjaGFuZ2Vfd2l0aF9jZXJ0X2luX3RsczEyX29yX3RsczEzX2VuYWJsZWQKIHJ1bl90ZXN0ICAgICJBdXRoZW50aWNhdGlvbjogY2xpZW50IGNlcnQgc2VsZi1zaWduZWQgYW5kIHRydXN0ZWQsIHNlcnZlciByZXF1aXJlZCIgXAotICAgICAgICAgICAgIiRQX1NSViBkZWJ1Z19sZXZlbD0zIGF1dGhfbW9kZT1yZXF1aXJlZCBjYV9maWxlPWRhdGFfZmlsZXMvc2VydmVyNS1zZWxmc2lnbmVkLmNydCIgXAotICAgICAgICAgICAgIiRQX0NMSSBkZWJ1Z19sZXZlbD0zIGNydF9maWxlPWRhdGFfZmlsZXMvc2VydmVyNS1zZWxmc2lnbmVkLmNydCBcCi0gICAgICAgICAgICAga2V5X2ZpbGU9ZGF0YV9maWxlcy9zZXJ2ZXI1LmtleSIgXAorICAgICAgICAgICAgIiRQX1NSViBkZWJ1Z19sZXZlbD0zIGF1dGhfbW9kZT1yZXF1aXJlZCBjYV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvc2VydmVyNS1zZWxmc2lnbmVkLmNydCIgXAorICAgICAgICAgICAgIiRQX0NMSSBkZWJ1Z19sZXZlbD0zIGNydF9maWxlPSREQVRBX0ZJTEVTX1BBVEgvc2VydmVyNS1zZWxmc2lnbmVkLmNydCBcCisgICAgICAgICAgICAga2V5X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9zZXJ2ZXI1LmtleSIgXAogICAgICAgICAgICAgMCBcCiAgICAgICAgICAgICAtUyAic2tpcCB3cml0ZSBjZXJ0aWZpY2F0ZSByZXF1ZXN0IiBcCiAgICAgICAgICAgICAtQyAic2tpcCBwYXJzZSBjZXJ0aWZpY2F0ZSByZXF1ZXN0IiBcCkBAIC01OTYyLDggKzU5NjQsOCBAQAogcmVxdWlyZXNfa2V5X2V4Y2hhbmdlX3dpdGhfY2VydF9pbl90bHMxMl9vcl90bHMxM19lbmFibGVkCiBydW5fdGVzdCAgICAiQXV0aGVudGljYXRpb246IGNsaWVudCBjZXJ0IG5vdCB0cnVzdGVkLCBzZXJ2ZXIgcmVxdWlyZWQiIFwKICAgICAgICAgICAgICIkUF9TUlYgZGVidWdfbGV2ZWw9MyBhdXRoX21vZGU9cmVxdWlyZWQiIFwKLSAgICAgICAgICAgICIkUF9DTEkgZGVidWdfbGV2ZWw9MyBjcnRfZmlsZT1kYXRhX2ZpbGVzL3NlcnZlcjUtc2VsZnNpZ25lZC5jcnQgXAotICAgICAgICAgICAgIGtleV9maWxlPWRhdGFfZmlsZXMvc2VydmVyNS5rZXkiIFwKKyAgICAgICAgICAgICIkUF9DTEkgZGVidWdfbGV2ZWw9MyBjcnRfZmlsZT0kREFUQV9GSUxFU19QQVRIL3NlcnZlcjUtc2VsZnNpZ25lZC5jcnQgXAorICAgICAgICAgICAgIGtleV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvc2VydmVyNS5rZXkiIFwKICAgICAgICAgICAgIDEgXAogICAgICAgICAgICAgLVMgInNraXAgd3JpdGUgY2VydGlmaWNhdGUgcmVxdWVzdCIgXAogICAgICAgICAgICAgLUMgInNraXAgcGFyc2UgY2VydGlmaWNhdGUgcmVxdWVzdCIgXApAQCAtNTk3OSw4ICs1OTgxLDggQEAKIHJlcXVpcmVzX2tleV9leGNoYW5nZV93aXRoX2NlcnRfaW5fdGxzMTJfb3JfdGxzMTNfZW5hYmxlZAogcnVuX3Rlc3QgICAgIkF1dGhlbnRpY2F0aW9uOiBjbGllbnQgYmFkY2VydCwgc2VydmVyIG9wdGlvbmFsIiBcCiAgICAgICAgICAgICAiJFBfU1JWIGRlYnVnX2xldmVsPTMgYXV0aF9tb2RlPW9wdGlvbmFsIiBcCi0gICAgICAgICAgICAiJFBfQ0xJIGRlYnVnX2xldmVsPTMgY3J0X2ZpbGU9ZGF0YV9maWxlcy9zZXJ2ZXI1LWJhZHNpZ24uY3J0IFwKLSAgICAgICAgICAgICBrZXlfZmlsZT1kYXRhX2ZpbGVzL3NlcnZlcjUua2V5IiBcCisgICAgICAgICAgICAiJFBfQ0xJIGRlYnVnX2xldmVsPTMgY3J0X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9zZXJ2ZXI1LWJhZHNpZ24uY3J0IFwKKyAgICAgICAgICAgICBrZXlfZmlsZT0kREFUQV9GSUxFU19QQVRIL3NlcnZlcjUua2V5IiBcCiAgICAgICAgICAgICAwIFwKICAgICAgICAgICAgIC1TICJza2lwIHdyaXRlIGNlcnRpZmljYXRlIHJlcXVlc3QiIFwKICAgICAgICAgICAgIC1DICJza2lwIHBhcnNlIGNlcnRpZmljYXRlIHJlcXVlc3QiIFwKQEAgLTU5OTcsOCArNTk5OSw4IEBACiByZXF1aXJlc19rZXlfZXhjaGFuZ2Vfd2l0aF9jZXJ0X2luX3RsczEyX29yX3RsczEzX2VuYWJsZWQKIHJ1bl90ZXN0ICAgICJBdXRoZW50aWNhdGlvbjogY2xpZW50IGJhZGNlcnQsIHNlcnZlciBub25lIiBcCiAgICAgICAgICAgICAiJFBfU1JWIGRlYnVnX2xldmVsPTMgYXV0aF9tb2RlPW5vbmUiIFwKLSAgICAgICAgICAgICIkUF9DTEkgZGVidWdfbGV2ZWw9MyBjcnRfZmlsZT1kYXRhX2ZpbGVzL3NlcnZlcjUtYmFkc2lnbi5jcnQgXAotICAgICAgICAgICAgIGtleV9maWxlPWRhdGFfZmlsZXMvc2VydmVyNS5rZXkiIFwKKyAgICAgICAgICAgICIkUF9DTEkgZGVidWdfbGV2ZWw9MyBjcnRfZmlsZT0kREFUQV9GSUxFU19QQVRIL3NlcnZlcjUtYmFkc2lnbi5jcnQgXAorICAgICAgICAgICAgIGtleV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvc2VydmVyNS5rZXkiIFwKICAgICAgICAgICAgIDAgXAogICAgICAgICAgICAgLXMgInNraXAgd3JpdGUgY2VydGlmaWNhdGUgcmVxdWVzdCIgXAogICAgICAgICAgICAgLUMgInNraXAgcGFyc2UgY2VydGlmaWNhdGUgcmVxdWVzdCIgXApAQCAtNjA3NiwyNyArNjA3OCwyNyBAQAogcmVxdWlyZXNfY29uZmlnX3ZhbHVlX2VxdWFscyAiTUJFRFRMU19YNTA5X01BWF9JTlRFUk1FRElBVEVfQ0EiICRNQVhfSU1fQ0EKIHJlcXVpcmVzX2Z1bGxfc2l6ZV9vdXRwdXRfYnVmZmVyCiBydW5fdGVzdCAgICAiQXV0aGVudGljYXRpb246IHNlcnZlciBtYXhfaW50IGNoYWluLCBjbGllbnQgZGVmYXVsdCIgXAotICAgICAgICAgICAgIiRQX1NSViBjcnRfZmlsZT1kYXRhX2ZpbGVzL2Rpci1tYXhwYXRoL2MwOS5wZW0gXAotICAgICAgICAgICAgICAgICAgICBrZXlfZmlsZT1kYXRhX2ZpbGVzL2Rpci1tYXhwYXRoLzA5LmtleSIgXAotICAgICAgICAgICAgIiRQX0NMSSBzZXJ2ZXJfbmFtZT1DQTA5IGNhX2ZpbGU9ZGF0YV9maWxlcy9kaXItbWF4cGF0aC8wMC5jcnQiIFwKKyAgICAgICAgICAgICIkUF9TUlYgY3J0X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9kaXItbWF4cGF0aC9jMDkucGVtIFwKKyAgICAgICAgICAgICAgICAgICAga2V5X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9kaXItbWF4cGF0aC8wOS5rZXkiIFwKKyAgICAgICAgICAgICIkUF9DTEkgc2VydmVyX25hbWU9Q0EwOSBjYV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvZGlyLW1heHBhdGgvMDAuY3J0IiBcCiAgICAgICAgICAgICAwIFwKICAgICAgICAgICAgIC1DICJYNTA5IC0gQSBmYXRhbCBlcnJvciBvY2N1cnJlZCIKIAogcmVxdWlyZXNfY29uZmlnX3ZhbHVlX2VxdWFscyAiTUJFRFRMU19YNTA5X01BWF9JTlRFUk1FRElBVEVfQ0EiICRNQVhfSU1fQ0EKIHJlcXVpcmVzX2Z1bGxfc2l6ZV9vdXRwdXRfYnVmZmVyCiBydW5fdGVzdCAgICAiQXV0aGVudGljYXRpb246IHNlcnZlciBtYXhfaW50KzEgY2hhaW4sIGNsaWVudCBkZWZhdWx0IiBcCi0gICAgICAgICAgICAiJFBfU1JWIGNydF9maWxlPWRhdGFfZmlsZXMvZGlyLW1heHBhdGgvYzEwLnBlbSBcCi0gICAgICAgICAgICAgICAgICAgIGtleV9maWxlPWRhdGFfZmlsZXMvZGlyLW1heHBhdGgvMTAua2V5IiBcCi0gICAgICAgICAgICAiJFBfQ0xJIHNlcnZlcl9uYW1lPUNBMTAgY2FfZmlsZT1kYXRhX2ZpbGVzL2Rpci1tYXhwYXRoLzAwLmNydCIgXAorICAgICAgICAgICAgIiRQX1NSViBjcnRfZmlsZT0kREFUQV9GSUxFU19QQVRIL2Rpci1tYXhwYXRoL2MxMC5wZW0gXAorICAgICAgICAgICAgICAgICAgICBrZXlfZmlsZT0kREFUQV9GSUxFU19QQVRIL2Rpci1tYXhwYXRoLzEwLmtleSIgXAorICAgICAgICAgICAgIiRQX0NMSSBzZXJ2ZXJfbmFtZT1DQTEwIGNhX2ZpbGU9JERBVEFfRklMRVNfUEFUSC9kaXItbWF4cGF0aC8wMC5jcnQiIFwKICAgICAgICAgICAgIDEgXAogICAgICAgICAgICAgLWMgIlg1MDkgLSBBIGZhdGFsIGVycm9yIG9jY3VycmVkIgogCiByZXF1aXJlc19jb25maWdfdmFsdWVfZXF1YWxzICJNQkVEVExTX1g1MDlfTUFYX0lOVEVSTUVESUFURV9DQSIgJE1BWF9JTV9DQQogcmVxdWlyZXNfZnVsbF9zaXplX291dHB1dF9idWZmZXIKIHJ1bl90ZXN0ICAgICJBdXRoZW50aWNhdGlvbjogc2VydmVyIG1heF9pbnQrMSBjaGFpbiwgY2xpZW50IG9wdGlvbmFsIiBcCi0gICAgICAgICAgICAiJFBfU1JWIGNydF9maWxlPWRhdGFfZmlsZXMvZGlyLW1heHBhdGgvYzEwLnBlbSBcCi0gICAgICAgICAgICAgICAgICAgIGtleV9maWxlPWRhdGFfZmlsZXMvZGlyLW1heHBhdGgvMTAua2V5IiBcCi0gICAgICAgICAgICAiJFBfQ0xJIGZvcmNlX3ZlcnNpb249dGxzMTIgc2VydmVyX25hbWU9Q0ExMCBjYV9maWxlPWRhdGFfZmlsZXMvZGlyLW1heHBhdGgvMDAuY3J0IFwKKyAgICAgICAgICAgICIkUF9TUlYgY3J0X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9kaXItbWF4cGF0aC9jMTAucGVtIFwKKyAgICAgICAgICAgICAgICAgICAga2V5X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9kaXItbWF4cGF0aC8xMC5rZXkiIFwKKyAgICAgICAgICAgICIkUF9DTEkgZm9yY2VfdmVyc2lvbj10bHMxMiBzZXJ2ZXJfbmFtZT1DQTEwIGNhX2ZpbGU9JERBVEFfRklMRVNfUEFUSC9kaXItbWF4cGF0aC8wMC5jcnQgXAogICAgICAgICAgICAgICAgICAgICBhdXRoX21vZGU9b3B0aW9uYWwiIFwKICAgICAgICAgICAgIDEgXAogICAgICAgICAgICAgLWMgIlg1MDkgLSBBIGZhdGFsIGVycm9yIG9jY3VycmVkIgpAQCAtNjEwNCw5ICs2MTA2LDkgQEAKIHJlcXVpcmVzX2NvbmZpZ192YWx1ZV9lcXVhbHMgIk1CRURUTFNfWDUwOV9NQVhfSU5URVJNRURJQVRFX0NBIiAkTUFYX0lNX0NBCiByZXF1aXJlc19mdWxsX3NpemVfb3V0cHV0X2J1ZmZlcgogcnVuX3Rlc3QgICAgIkF1dGhlbnRpY2F0aW9uOiBzZXJ2ZXIgbWF4X2ludCsxIGNoYWluLCBjbGllbnQgbm9uZSIgXAotICAgICAgICAgICAgIiRQX1NSViBjcnRfZmlsZT1kYXRhX2ZpbGVzL2Rpci1tYXhwYXRoL2MxMC5wZW0gXAotICAgICAgICAgICAgICAgICAgICBrZXlfZmlsZT1kYXRhX2ZpbGVzL2Rpci1tYXhwYXRoLzEwLmtleSIgXAotICAgICAgICAgICAgIiRQX0NMSSBmb3JjZV92ZXJzaW9uPXRsczEyIHNlcnZlcl9uYW1lPUNBMTAgY2FfZmlsZT1kYXRhX2ZpbGVzL2Rpci1tYXhwYXRoLzAwLmNydCBcCisgICAgICAgICAgICAiJFBfU1JWIGNydF9maWxlPSREQVRBX0ZJTEVTX1BBVEgvZGlyLW1heHBhdGgvYzEwLnBlbSBcCisgICAgICAgICAgICAgICAgICAgIGtleV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvZGlyLW1heHBhdGgvMTAua2V5IiBcCisgICAgICAgICAgICAiJFBfQ0xJIGZvcmNlX3ZlcnNpb249dGxzMTIgc2VydmVyX25hbWU9Q0ExMCBjYV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvZGlyLW1heHBhdGgvMDAuY3J0IFwKICAgICAgICAgICAgICAgICAgICAgYXV0aF9tb2RlPW5vbmUiIFwKICAgICAgICAgICAgIDAgXAogICAgICAgICAgICAgLUMgIlg1MDkgLSBBIGZhdGFsIGVycm9yIG9jY3VycmVkIgpAQCAtNjExNCwzNiArNjExNiwzNiBAQAogcmVxdWlyZXNfY29uZmlnX3ZhbHVlX2VxdWFscyAiTUJFRFRMU19YNTA5X01BWF9JTlRFUk1FRElBVEVfQ0EiICRNQVhfSU1fQ0EKIHJlcXVpcmVzX2Z1bGxfc2l6ZV9vdXRwdXRfYnVmZmVyCiBydW5fdGVzdCAgICAiQXV0aGVudGljYXRpb246IGNsaWVudCBtYXhfaW50KzEgY2hhaW4sIHNlcnZlciBkZWZhdWx0IiBcCi0gICAgICAgICAgICAiJFBfU1JWIGNhX2ZpbGU9ZGF0YV9maWxlcy9kaXItbWF4cGF0aC8wMC5jcnQiIFwKLSAgICAgICAgICAgICIkUF9DTEkgY3J0X2ZpbGU9ZGF0YV9maWxlcy9kaXItbWF4cGF0aC9jMTAucGVtIFwKLSAgICAgICAgICAgICAgICAgICAga2V5X2ZpbGU9ZGF0YV9maWxlcy9kaXItbWF4cGF0aC8xMC5rZXkiIFwKKyAgICAgICAgICAgICIkUF9TUlYgY2FfZmlsZT0kREFUQV9GSUxFU19QQVRIL2Rpci1tYXhwYXRoLzAwLmNydCIgXAorICAgICAgICAgICAgIiRQX0NMSSBjcnRfZmlsZT0kREFUQV9GSUxFU19QQVRIL2Rpci1tYXhwYXRoL2MxMC5wZW0gXAorICAgICAgICAgICAgICAgICAgICBrZXlfZmlsZT0kREFUQV9GSUxFU19QQVRIL2Rpci1tYXhwYXRoLzEwLmtleSIgXAogICAgICAgICAgICAgMCBcCiAgICAgICAgICAgICAtUyAiWDUwOSAtIEEgZmF0YWwgZXJyb3Igb2NjdXJyZWQiCiAKIHJlcXVpcmVzX2NvbmZpZ192YWx1ZV9lcXVhbHMgIk1CRURUTFNfWDUwOV9NQVhfSU5URVJNRURJQVRFX0NBIiAkTUFYX0lNX0NBCiByZXF1aXJlc19mdWxsX3NpemVfb3V0cHV0X2J1ZmZlcgogcnVuX3Rlc3QgICAgIkF1dGhlbnRpY2F0aW9uOiBjbGllbnQgbWF4X2ludCsxIGNoYWluLCBzZXJ2ZXIgb3B0aW9uYWwiIFwKLSAgICAgICAgICAgICIkUF9TUlYgY2FfZmlsZT1kYXRhX2ZpbGVzL2Rpci1tYXhwYXRoLzAwLmNydCBhdXRoX21vZGU9b3B0aW9uYWwiIFwKLSAgICAgICAgICAgICIkUF9DTEkgY3J0X2ZpbGU9ZGF0YV9maWxlcy9kaXItbWF4cGF0aC9jMTAucGVtIFwKLSAgICAgICAgICAgICAgICAgICAga2V5X2ZpbGU9ZGF0YV9maWxlcy9kaXItbWF4cGF0aC8xMC5rZXkiIFwKKyAgICAgICAgICAgICIkUF9TUlYgY2FfZmlsZT0kREFUQV9GSUxFU19QQVRIL2Rpci1tYXhwYXRoLzAwLmNydCBhdXRoX21vZGU9b3B0aW9uYWwiIFwKKyAgICAgICAgICAgICIkUF9DTEkgY3J0X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9kaXItbWF4cGF0aC9jMTAucGVtIFwKKyAgICAgICAgICAgICAgICAgICAga2V5X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9kaXItbWF4cGF0aC8xMC5rZXkiIFwKICAgICAgICAgICAgIDEgXAogICAgICAgICAgICAgLXMgIlg1MDkgLSBBIGZhdGFsIGVycm9yIG9jY3VycmVkIgogCiByZXF1aXJlc19jb25maWdfdmFsdWVfZXF1YWxzICJNQkVEVExTX1g1MDlfTUFYX0lOVEVSTUVESUFURV9DQSIgJE1BWF9JTV9DQQogcmVxdWlyZXNfZnVsbF9zaXplX291dHB1dF9idWZmZXIKIHJ1bl90ZXN0ICAgICJBdXRoZW50aWNhdGlvbjogY2xpZW50IG1heF9pbnQrMSBjaGFpbiwgc2VydmVyIHJlcXVpcmVkIiBcCi0gICAgICAgICAgICAiJFBfU1JWIGNhX2ZpbGU9ZGF0YV9maWxlcy9kaXItbWF4cGF0aC8wMC5jcnQgYXV0aF9tb2RlPXJlcXVpcmVkIiBcCi0gICAgICAgICAgICAiJFBfQ0xJIGNydF9maWxlPWRhdGFfZmlsZXMvZGlyLW1heHBhdGgvYzEwLnBlbSBcCi0gICAgICAgICAgICAgICAgICAgIGtleV9maWxlPWRhdGFfZmlsZXMvZGlyLW1heHBhdGgvMTAua2V5IiBcCisgICAgICAgICAgICAiJFBfU1JWIGNhX2ZpbGU9JERBVEFfRklMRVNfUEFUSC9kaXItbWF4cGF0aC8wMC5jcnQgYXV0aF9tb2RlPXJlcXVpcmVkIiBcCisgICAgICAgICAgICAiJFBfQ0xJIGNydF9maWxlPSREQVRBX0ZJTEVTX1BBVEgvZGlyLW1heHBhdGgvYzEwLnBlbSBcCisgICAgICAgICAgICAgICAgICAgIGtleV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvZGlyLW1heHBhdGgvMTAua2V5IiBcCiAgICAgICAgICAgICAxIFwKICAgICAgICAgICAgIC1zICJYNTA5IC0gQSBmYXRhbCBlcnJvciBvY2N1cnJlZCIKIAogcmVxdWlyZXNfY29uZmlnX3ZhbHVlX2VxdWFscyAiTUJFRFRMU19YNTA5X01BWF9JTlRFUk1FRElBVEVfQ0EiICRNQVhfSU1fQ0EKIHJlcXVpcmVzX2Z1bGxfc2l6ZV9vdXRwdXRfYnVmZmVyCiBydW5fdGVzdCAgICAiQXV0aGVudGljYXRpb246IGNsaWVudCBtYXhfaW50IGNoYWluLCBzZXJ2ZXIgcmVxdWlyZWQiIFwKLSAgICAgICAgICAgICIkUF9TUlYgY2FfZmlsZT1kYXRhX2ZpbGVzL2Rpci1tYXhwYXRoLzAwLmNydCBhdXRoX21vZGU9cmVxdWlyZWQiIFwKLSAgICAgICAgICAgICIkUF9DTEkgY3J0X2ZpbGU9ZGF0YV9maWxlcy9kaXItbWF4cGF0aC9jMDkucGVtIFwKLSAgICAgICAgICAgICAgICAgICAga2V5X2ZpbGU9ZGF0YV9maWxlcy9kaXItbWF4cGF0aC8wOS5rZXkiIFwKKyAgICAgICAgICAgICIkUF9TUlYgY2FfZmlsZT0kREFUQV9GSUxFU19QQVRIL2Rpci1tYXhwYXRoLzAwLmNydCBhdXRoX21vZGU9cmVxdWlyZWQiIFwKKyAgICAgICAgICAgICIkUF9DTEkgY3J0X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9kaXItbWF4cGF0aC9jMDkucGVtIFwKKyAgICAgICAgICAgICAgICAgICAga2V5X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9kaXItbWF4cGF0aC8wOS5rZXkiIFwKICAgICAgICAgICAgIDAgXAogICAgICAgICAgICAgLVMgIlg1MDkgLSBBIGZhdGFsIGVycm9yIG9jY3VycmVkIgogCkBAIC02MTUyLDIzICs2MTU0LDIzIEBACiByZXF1aXJlc19hbnlfY29uZmlnc19lbmFibGVkICRUTFMxXzJfS0VZX0VYQ0hBTkdFU19XSVRIX0NFUlQKIHJ1bl90ZXN0ICAgICJBdXRoZW50aWNhdGlvbjogc2VuZCBDQSBsaXN0IGluIENlcnRpZmljYXRlUmVxdWVzdCAgKGRlZmF1bHQpIiBcCiAgICAgICAgICAgICAiJFBfU1JWIGRlYnVnX2xldmVsPTMgYXV0aF9tb2RlPXJlcXVpcmVkIiBcCi0gICAgICAgICAgICAiJFBfQ0xJIGZvcmNlX3ZlcnNpb249dGxzMTIgY3J0X2ZpbGU9ZGF0YV9maWxlcy9zZXJ2ZXI2LmNydCBcCi0gICAgICAgICAgICAga2V5X2ZpbGU9ZGF0YV9maWxlcy9zZXJ2ZXI2LmtleSIgXAorICAgICAgICAgICAgIiRQX0NMSSBmb3JjZV92ZXJzaW9uPXRsczEyIGNydF9maWxlPSREQVRBX0ZJTEVTX1BBVEgvc2VydmVyNi5jcnQgXAorICAgICAgICAgICAgIGtleV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvc2VydmVyNi5rZXkiIFwKICAgICAgICAgICAgIDAgXAogICAgICAgICAgICAgLXMgInJlcXVlc3RlZCBETiIKIAogcmVxdWlyZXNfYW55X2NvbmZpZ3NfZW5hYmxlZCAkVExTMV8yX0tFWV9FWENIQU5HRVNfV0lUSF9DRVJUCiBydW5fdGVzdCAgICAiQXV0aGVudGljYXRpb246IGRvIG5vdCBzZW5kIENBIGxpc3QgaW4gQ2VydGlmaWNhdGVSZXF1ZXN0IiBcCiAgICAgICAgICAgICAiJFBfU1JWIGRlYnVnX2xldmVsPTMgYXV0aF9tb2RlPXJlcXVpcmVkIGNlcnRfcmVxX2NhX2xpc3Q9MCIgXAotICAgICAgICAgICAgIiRQX0NMSSBmb3JjZV92ZXJzaW9uPXRsczEyIGNydF9maWxlPWRhdGFfZmlsZXMvc2VydmVyNi5jcnQgXAotICAgICAgICAgICAgIGtleV9maWxlPWRhdGFfZmlsZXMvc2VydmVyNi5rZXkiIFwKKyAgICAgICAgICAgICIkUF9DTEkgZm9yY2VfdmVyc2lvbj10bHMxMiBjcnRfZmlsZT0kREFUQV9GSUxFU19QQVRIL3NlcnZlcjYuY3J0IFwKKyAgICAgICAgICAgICBrZXlfZmlsZT0kREFUQV9GSUxFU19QQVRIL3NlcnZlcjYua2V5IiBcCiAgICAgICAgICAgICAwIFwKICAgICAgICAgICAgIC1TICJyZXF1ZXN0ZWQgRE4iCiAKIHJ1bl90ZXN0ICAgICJBdXRoZW50aWNhdGlvbjogc2VuZCBDQSBsaXN0IGluIENlcnRpZmljYXRlUmVxdWVzdCwgY2xpZW50IHNlbGYgc2lnbmVkIiBcCiAgICAgICAgICAgICAiJFBfU1JWIGZvcmNlX3ZlcnNpb249dGxzMTIgZGVidWdfbGV2ZWw9MyBhdXRoX21vZGU9cmVxdWlyZWQgY2VydF9yZXFfY2FfbGlzdD0wIiBcCi0gICAgICAgICAgICAiJFBfQ0xJIGRlYnVnX2xldmVsPTMgY3J0X2ZpbGU9ZGF0YV9maWxlcy9zZXJ2ZXI1LXNlbGZzaWduZWQuY3J0IFwKLSAgICAgICAgICAgICBrZXlfZmlsZT1kYXRhX2ZpbGVzL3NlcnZlcjUua2V5IiBcCisgICAgICAgICAgICAiJFBfQ0xJIGRlYnVnX2xldmVsPTMgY3J0X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9zZXJ2ZXI1LXNlbGZzaWduZWQuY3J0IFwKKyAgICAgICAgICAgICBrZXlfZmlsZT0kREFUQV9GSUxFU19QQVRIL3NlcnZlcjUua2V5IiBcCiAgICAgICAgICAgICAxIFwKICAgICAgICAgICAgIC1TICJyZXF1ZXN0ZWQgRE4iIFwKICAgICAgICAgICAgIC1zICJ4NTA5X3ZlcmlmeV9jZXJ0KCkgcmV0dXJuZWQiIFwKQEAgLTYxODAsMzMgKzYxODIsMzMgQEAKIHJlcXVpcmVzX2FueV9jb25maWdzX2VuYWJsZWQgJFRMUzFfMl9LRVlfRVhDSEFOR0VTX1dJVEhfQ0VSVAogcnVuX3Rlc3QgICAgIkF1dGhlbnRpY2F0aW9uOiBzZW5kIGFsdCBjb25mIEROIGhpbnRzIGluIENlcnRpZmljYXRlUmVxdWVzdCIgXAogICAgICAgICAgICAgIiRQX1NSViBkZWJ1Z19sZXZlbD0zIGF1dGhfbW9kZT1vcHRpb25hbCBjZXJ0X3JlcV9jYV9saXN0PTIgXAotICAgICAgICAgICAgIGNydF9maWxlMj1kYXRhX2ZpbGVzL3NlcnZlcjEuY3J0IFwKLSAgICAgICAgICAgICBrZXlfZmlsZTI9ZGF0YV9maWxlcy9zZXJ2ZXIxLmtleSIgXAorICAgICAgICAgICAgIGNydF9maWxlMj0kREFUQV9GSUxFU19QQVRIL3NlcnZlcjEuY3J0IFwKKyAgICAgICAgICAgICBrZXlfZmlsZTI9JERBVEFfRklMRVNfUEFUSC9zZXJ2ZXIxLmtleSIgXAogICAgICAgICAgICAgIiRQX0NMSSBmb3JjZV92ZXJzaW9uPXRsczEyIGRlYnVnX2xldmVsPTMgYXV0aF9tb2RlPW9wdGlvbmFsIFwKLSAgICAgICAgICAgICBjcnRfZmlsZT1kYXRhX2ZpbGVzL3NlcnZlcjYuY3J0IFwKLSAgICAgICAgICAgICBrZXlfZmlsZT1kYXRhX2ZpbGVzL3NlcnZlcjYua2V5IiBcCisgICAgICAgICAgICAgY3J0X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9zZXJ2ZXI2LmNydCBcCisgICAgICAgICAgICAga2V5X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9zZXJ2ZXI2LmtleSIgXAogICAgICAgICAgICAgMCBcCiAgICAgICAgICAgICAtYyAiRE4gaGludDogQz1OTCwgTz1Qb2xhclNTTCwgQ049UG9sYXJTU0wgU2VydmVyIDEiCiAKIHJlcXVpcmVzX2FueV9jb25maWdzX2VuYWJsZWQgJFRMUzFfMl9LRVlfRVhDSEFOR0VTX1dJVEhfQ0VSVAogcnVuX3Rlc3QgICAgIkF1dGhlbnRpY2F0aW9uOiBzZW5kIGFsdCBjb25mIEROIGhpbnRzIGluIENlcnRpZmljYXRlUmVxdWVzdCAoMikiIFwKICAgICAgICAgICAgICIkUF9TUlYgZGVidWdfbGV2ZWw9MyBhdXRoX21vZGU9b3B0aW9uYWwgY2VydF9yZXFfY2FfbGlzdD0yIFwKLSAgICAgICAgICAgICBjcnRfZmlsZTI9ZGF0YV9maWxlcy9zZXJ2ZXIyLmNydCBcCi0gICAgICAgICAgICAga2V5X2ZpbGUyPWRhdGFfZmlsZXMvc2VydmVyMi5rZXkiIFwKKyAgICAgICAgICAgICBjcnRfZmlsZTI9JERBVEFfRklMRVNfUEFUSC9zZXJ2ZXIyLmNydCBcCisgICAgICAgICAgICAga2V5X2ZpbGUyPSREQVRBX0ZJTEVTX1BBVEgvc2VydmVyMi5rZXkiIFwKICAgICAgICAgICAgICIkUF9DTEkgZm9yY2VfdmVyc2lvbj10bHMxMiBkZWJ1Z19sZXZlbD0zIGF1dGhfbW9kZT1vcHRpb25hbCBcCi0gICAgICAgICAgICAgY3J0X2ZpbGU9ZGF0YV9maWxlcy9zZXJ2ZXI2LmNydCBcCi0gICAgICAgICAgICAga2V5X2ZpbGU9ZGF0YV9maWxlcy9zZXJ2ZXI2LmtleSIgXAorICAgICAgICAgICAgIGNydF9maWxlPSREQVRBX0ZJTEVTX1BBVEgvc2VydmVyNi5jcnQgXAorICAgICAgICAgICAgIGtleV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvc2VydmVyNi5rZXkiIFwKICAgICAgICAgICAgIDAgXAogICAgICAgICAgICAgLWMgIkROIGhpbnQ6IEM9TkwsIE89UG9sYXJTU0wsIENOPWxvY2FsaG9zdCIKIAogcmVxdWlyZXNfYW55X2NvbmZpZ3NfZW5hYmxlZCAkVExTMV8yX0tFWV9FWENIQU5HRVNfV0lUSF9DRVJUCiBydW5fdGVzdCAgICAiQXV0aGVudGljYXRpb246IHNlbmQgYWx0IGhzIEROIGhpbnRzIGluIENlcnRpZmljYXRlUmVxdWVzdCIgXAogICAgICAgICAgICAgIiRQX1NSViBkZWJ1Z19sZXZlbD0zIGF1dGhfbW9kZT1vcHRpb25hbCBjZXJ0X3JlcV9jYV9saXN0PTMgXAotICAgICAgICAgICAgIGNydF9maWxlMj1kYXRhX2ZpbGVzL3NlcnZlcjEuY3J0IFwKLSAgICAgICAgICAgICBrZXlfZmlsZTI9ZGF0YV9maWxlcy9zZXJ2ZXIxLmtleSIgXAorICAgICAgICAgICAgIGNydF9maWxlMj0kREFUQV9GSUxFU19QQVRIL3NlcnZlcjEuY3J0IFwKKyAgICAgICAgICAgICBrZXlfZmlsZTI9JERBVEFfRklMRVNfUEFUSC9zZXJ2ZXIxLmtleSIgXAogICAgICAgICAgICAgIiRQX0NMSSBmb3JjZV92ZXJzaW9uPXRsczEyIGRlYnVnX2xldmVsPTMgYXV0aF9tb2RlPW9wdGlvbmFsIFwKLSAgICAgICAgICAgICBjcnRfZmlsZT1kYXRhX2ZpbGVzL3NlcnZlcjYuY3J0IFwKLSAgICAgICAgICAgICBrZXlfZmlsZT1kYXRhX2ZpbGVzL3NlcnZlcjYua2V5IiBcCisgICAgICAgICAgICAgY3J0X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9zZXJ2ZXI2LmNydCBcCisgICAgICAgICAgICAga2V5X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9zZXJ2ZXI2LmtleSIgXAogICAgICAgICAgICAgMCBcCiAgICAgICAgICAgICAtYyAiRE4gaGludDogQz1OTCwgTz1Qb2xhclNTTCwgQ049UG9sYXJTU0wgU2VydmVyIDEiCiAKQEAgLTYyMTUsOCArNjIxNyw4IEBACiAKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIE1CRURUTFNfWDUwOV9UUlVTVEVEX0NFUlRJRklDQVRFX0NBTExCQUNLCiBydW5fdGVzdCAgICAiQXV0aGVudGljYXRpb24sIENBIGNhbGxiYWNrOiBzZXJ2ZXIgYmFkY2VydCwgY2xpZW50IHJlcXVpcmVkIiBcCi0gICAgICAgICAgICAiJFBfU1JWIGNydF9maWxlPWRhdGFfZmlsZXMvc2VydmVyNS1iYWRzaWduLmNydCBcCi0gICAgICAgICAgICAga2V5X2ZpbGU9ZGF0YV9maWxlcy9zZXJ2ZXI1LmtleSIgXAorICAgICAgICAgICAgIiRQX1NSViBjcnRfZmlsZT0kREFUQV9GSUxFU19QQVRIL3NlcnZlcjUtYmFkc2lnbi5jcnQgXAorICAgICAgICAgICAgIGtleV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvc2VydmVyNS5rZXkiIFwKICAgICAgICAgICAgICIkUF9DTEkgZm9yY2VfdmVyc2lvbj10bHMxMiBjYV9jYWxsYmFjaz0xIGRlYnVnX2xldmVsPTMgYXV0aF9tb2RlPXJlcXVpcmVkIiBcCiAgICAgICAgICAgICAxIFwKICAgICAgICAgICAgIC1jICJ1c2UgQ0EgY2FsbGJhY2sgZm9yIFguNTA5IENSVCB2ZXJpZmljYXRpb24iIFwKQEAgLTYyMjcsOCArNjIyOSw4IEBACiAKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIE1CRURUTFNfWDUwOV9UUlVTVEVEX0NFUlRJRklDQVRFX0NBTExCQUNLCiBydW5fdGVzdCAgICAiQXV0aGVudGljYXRpb24sIENBIGNhbGxiYWNrOiBzZXJ2ZXIgYmFkY2VydCwgY2xpZW50IG9wdGlvbmFsIiBcCi0gICAgICAgICAgICAiJFBfU1JWIGNydF9maWxlPWRhdGFfZmlsZXMvc2VydmVyNS1iYWRzaWduLmNydCBcCi0gICAgICAgICAgICAga2V5X2ZpbGU9ZGF0YV9maWxlcy9zZXJ2ZXI1LmtleSIgXAorICAgICAgICAgICAgIiRQX1NSViBjcnRfZmlsZT0kREFUQV9GSUxFU19QQVRIL3NlcnZlcjUtYmFkc2lnbi5jcnQgXAorICAgICAgICAgICAgIGtleV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvc2VydmVyNS5rZXkiIFwKICAgICAgICAgICAgICIkUF9DTEkgZm9yY2VfdmVyc2lvbj10bHMxMiBjYV9jYWxsYmFjaz0xIGRlYnVnX2xldmVsPTMgYXV0aF9tb2RlPW9wdGlvbmFsIiBcCiAgICAgICAgICAgICAwIFwKICAgICAgICAgICAgIC1jICJ1c2UgQ0EgY2FsbGJhY2sgZm9yIFguNTA5IENSVCB2ZXJpZmljYXRpb24iIFwKQEAgLTYyNDYsOCArNjI0OCw4IEBACiAKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIE1CRURUTFNfWDUwOV9UUlVTVEVEX0NFUlRJRklDQVRFX0NBTExCQUNLCiBydW5fdGVzdCAgICAiQXV0aGVudGljYXRpb24sIENBIGNhbGxiYWNrOiBzZXJ2ZXIgRUNESCBwMjU2djEsIGNsaWVudCByZXF1aXJlZCwgcDI1NnYxIHVuc3VwcG9ydGVkIiBcCi0gICAgICAgICAgICAiJFBfU1JWIGRlYnVnX2xldmVsPTEga2V5X2ZpbGU9ZGF0YV9maWxlcy9zZXJ2ZXI1LmtleSBcCi0gICAgICAgICAgICAgY3J0X2ZpbGU9ZGF0YV9maWxlcy9zZXJ2ZXI1Lmt1LWthLmNydCIgXAorICAgICAgICAgICAgIiRQX1NSViBkZWJ1Z19sZXZlbD0xIGtleV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvc2VydmVyNS5rZXkgXAorICAgICAgICAgICAgIGNydF9maWxlPSREQVRBX0ZJTEVTX1BBVEgvc2VydmVyNS5rdS1rYS5jcnQiIFwKICAgICAgICAgICAgICIkUF9DTEkgZm9yY2VfdmVyc2lvbj10bHMxMiBjYV9jYWxsYmFjaz0xIGRlYnVnX2xldmVsPTMgYXV0aF9tb2RlPXJlcXVpcmVkIGdyb3Vwcz1zZWNwNTIxcjEiIFwKICAgICAgICAgICAgIDEgXAogICAgICAgICAgICAgLWMgInVzZSBDQSBjYWxsYmFjayBmb3IgWC41MDkgQ1JUIHZlcmlmaWNhdGlvbiIgXApAQCAtNjI1Nyw4ICs2MjU5LDggQEAKIAogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgTUJFRFRMU19YNTA5X1RSVVNURURfQ0VSVElGSUNBVEVfQ0FMTEJBQ0sKIHJ1bl90ZXN0ICAgICJBdXRoZW50aWNhdGlvbiwgQ0EgY2FsbGJhY2s6IHNlcnZlciBFQ0RIIHAyNTZ2MSwgY2xpZW50IG9wdGlvbmFsLCBwMjU2djEgdW5zdXBwb3J0ZWQiIFwKLSAgICAgICAgICAgICIkUF9TUlYgZGVidWdfbGV2ZWw9MSBrZXlfZmlsZT1kYXRhX2ZpbGVzL3NlcnZlcjUua2V5IFwKLSAgICAgICAgICAgICBjcnRfZmlsZT1kYXRhX2ZpbGVzL3NlcnZlcjUua3Uta2EuY3J0IiBcCisgICAgICAgICAgICAiJFBfU1JWIGRlYnVnX2xldmVsPTEga2V5X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9zZXJ2ZXI1LmtleSBcCisgICAgICAgICAgICAgY3J0X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9zZXJ2ZXI1Lmt1LWthLmNydCIgXAogICAgICAgICAgICAgIiRQX0NMSSBmb3JjZV92ZXJzaW9uPXRsczEyIGNhX2NhbGxiYWNrPTEgZGVidWdfbGV2ZWw9MyBhdXRoX21vZGU9b3B0aW9uYWwgZ3JvdXBzPXNlY3A1MjFyMSIgXAogICAgICAgICAgICAgMSBcCiAgICAgICAgICAgICAtYyAidXNlIENBIGNhbGxiYWNrIGZvciBYLjUwOSBDUlQgdmVyaWZpY2F0aW9uIiBcCkBAIC02MjcwLDggKzYyNzIsOCBAQAogcmVxdWlyZXNfYW55X2NvbmZpZ3NfZW5hYmxlZCAkVExTMV8yX0tFWV9FWENIQU5HRVNfV0lUSF9DRVJUCiBydW5fdGVzdCAgICAiQXV0aGVudGljYXRpb24sIENBIGNhbGxiYWNrOiBjbGllbnQgU0hBMjU2LCBzZXJ2ZXIgcmVxdWlyZWQiIFwKICAgICAgICAgICAgICIkUF9TUlYgY2FfY2FsbGJhY2s9MSBkZWJ1Z19sZXZlbD0zIGF1dGhfbW9kZT1yZXF1aXJlZCIgXAotICAgICAgICAgICAgIiRQX0NMSSBkZWJ1Z19sZXZlbD0zIGNydF9maWxlPWRhdGFfZmlsZXMvc2VydmVyNi5jcnQgXAotICAgICAgICAgICAgIGtleV9maWxlPWRhdGFfZmlsZXMvc2VydmVyNi5rZXkgXAorICAgICAgICAgICAgIiRQX0NMSSBkZWJ1Z19sZXZlbD0zIGNydF9maWxlPSREQVRBX0ZJTEVTX1BBVEgvc2VydmVyNi5jcnQgXAorICAgICAgICAgICAgIGtleV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvc2VydmVyNi5rZXkgXAogICAgICAgICAgICAgIGZvcmNlX2NpcGhlcnN1aXRlPVRMUy1FQ0RIRS1FQ0RTQS1XSVRILUFFUy0yNTYtR0NNLVNIQTM4NCIgXAogICAgICAgICAgICAgMCBcCiAgICAgICAgICAgICAtcyAidXNlIENBIGNhbGxiYWNrIGZvciBYLjUwOSBDUlQgdmVyaWZpY2F0aW9uIiBcCkBAIC02MjgyLDggKzYyODQsOCBAQAogcmVxdWlyZXNfYW55X2NvbmZpZ3NfZW5hYmxlZCAkVExTMV8yX0tFWV9FWENIQU5HRVNfV0lUSF9DRVJUCiBydW5fdGVzdCAgICAiQXV0aGVudGljYXRpb24sIENBIGNhbGxiYWNrOiBjbGllbnQgU0hBMzg0LCBzZXJ2ZXIgcmVxdWlyZWQiIFwKICAgICAgICAgICAgICIkUF9TUlYgY2FfY2FsbGJhY2s9MSBkZWJ1Z19sZXZlbD0zIGF1dGhfbW9kZT1yZXF1aXJlZCIgXAotICAgICAgICAgICAgIiRQX0NMSSBkZWJ1Z19sZXZlbD0zIGNydF9maWxlPWRhdGFfZmlsZXMvc2VydmVyNi5jcnQgXAotICAgICAgICAgICAgIGtleV9maWxlPWRhdGFfZmlsZXMvc2VydmVyNi5rZXkgXAorICAgICAgICAgICAgIiRQX0NMSSBkZWJ1Z19sZXZlbD0zIGNydF9maWxlPSREQVRBX0ZJTEVTX1BBVEgvc2VydmVyNi5jcnQgXAorICAgICAgICAgICAgIGtleV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvc2VydmVyNi5rZXkgXAogICAgICAgICAgICAgIGZvcmNlX2NpcGhlcnN1aXRlPVRMUy1FQ0RIRS1FQ0RTQS1XSVRILUFFUy0xMjgtR0NNLVNIQTI1NiIgXAogICAgICAgICAgICAgMCBcCiAgICAgICAgICAgICAtcyAidXNlIENBIGNhbGxiYWNrIGZvciBYLjUwOSBDUlQgdmVyaWZpY2F0aW9uIiBcCkBAIC02MjkzLDggKzYyOTUsOCBAQAogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgTUJFRFRMU19YNTA5X1RSVVNURURfQ0VSVElGSUNBVEVfQ0FMTEJBQ0sKIHJ1bl90ZXN0ICAgICJBdXRoZW50aWNhdGlvbiwgQ0EgY2FsbGJhY2s6IGNsaWVudCBiYWRjZXJ0LCBzZXJ2ZXIgcmVxdWlyZWQiIFwKICAgICAgICAgICAgICIkUF9TUlYgZm9yY2VfdmVyc2lvbj10bHMxMiBjYV9jYWxsYmFjaz0xIGRlYnVnX2xldmVsPTMgYXV0aF9tb2RlPXJlcXVpcmVkIiBcCi0gICAgICAgICAgICAiJFBfQ0xJIGRlYnVnX2xldmVsPTMgY3J0X2ZpbGU9ZGF0YV9maWxlcy9zZXJ2ZXI1LWJhZHNpZ24uY3J0IFwKLSAgICAgICAgICAgICBrZXlfZmlsZT1kYXRhX2ZpbGVzL3NlcnZlcjUua2V5IiBcCisgICAgICAgICAgICAiJFBfQ0xJIGRlYnVnX2xldmVsPTMgY3J0X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9zZXJ2ZXI1LWJhZHNpZ24uY3J0IFwKKyAgICAgICAgICAgICBrZXlfZmlsZT0kREFUQV9GSUxFU19QQVRIL3NlcnZlcjUua2V5IiBcCiAgICAgICAgICAgICAxIFwKICAgICAgICAgICAgIC1zICJ1c2UgQ0EgY2FsbGJhY2sgZm9yIFguNTA5IENSVCB2ZXJpZmljYXRpb24iIFwKICAgICAgICAgICAgIC1TICJza2lwIHdyaXRlIGNlcnRpZmljYXRlIHJlcXVlc3QiIFwKQEAgLTYzMTYsOCArNjMxOCw4IEBACiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBNQkVEVExTX1g1MDlfVFJVU1RFRF9DRVJUSUZJQ0FURV9DQUxMQkFDSwogcnVuX3Rlc3QgICAgIkF1dGhlbnRpY2F0aW9uLCBDQSBjYWxsYmFjazogY2xpZW50IGNlcnQgbm90IHRydXN0ZWQsIHNlcnZlciByZXF1aXJlZCIgXAogICAgICAgICAgICAgIiRQX1NSViBmb3JjZV92ZXJzaW9uPXRsczEyIGNhX2NhbGxiYWNrPTEgZGVidWdfbGV2ZWw9MyBhdXRoX21vZGU9cmVxdWlyZWQiIFwKLSAgICAgICAgICAgICIkUF9DTEkgZGVidWdfbGV2ZWw9MyBjcnRfZmlsZT1kYXRhX2ZpbGVzL3NlcnZlcjUtc2VsZnNpZ25lZC5jcnQgXAotICAgICAgICAgICAgIGtleV9maWxlPWRhdGFfZmlsZXMvc2VydmVyNS5rZXkiIFwKKyAgICAgICAgICAgICIkUF9DTEkgZGVidWdfbGV2ZWw9MyBjcnRfZmlsZT0kREFUQV9GSUxFU19QQVRIL3NlcnZlcjUtc2VsZnNpZ25lZC5jcnQgXAorICAgICAgICAgICAgIGtleV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvc2VydmVyNS5rZXkiIFwKICAgICAgICAgICAgIDEgXAogICAgICAgICAgICAgLXMgInVzZSBDQSBjYWxsYmFjayBmb3IgWC41MDkgQ1JUIHZlcmlmaWNhdGlvbiIgXAogICAgICAgICAgICAgLVMgInNraXAgd3JpdGUgY2VydGlmaWNhdGUgcmVxdWVzdCIgXApAQCAtNjMzNSw4ICs2MzM3LDggQEAKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIE1CRURUTFNfWDUwOV9UUlVTVEVEX0NFUlRJRklDQVRFX0NBTExCQUNLCiBydW5fdGVzdCAgICAiQXV0aGVudGljYXRpb24sIENBIGNhbGxiYWNrOiBjbGllbnQgYmFkY2VydCwgc2VydmVyIG9wdGlvbmFsIiBcCiAgICAgICAgICAgICAiJFBfU1JWIGZvcmNlX3ZlcnNpb249dGxzMTIgY2FfY2FsbGJhY2s9MSBkZWJ1Z19sZXZlbD0zIGF1dGhfbW9kZT1vcHRpb25hbCIgXAotICAgICAgICAgICAgIiRQX0NMSSBkZWJ1Z19sZXZlbD0zIGNydF9maWxlPWRhdGFfZmlsZXMvc2VydmVyNS1iYWRzaWduLmNydCBcCi0gICAgICAgICAgICAga2V5X2ZpbGU9ZGF0YV9maWxlcy9zZXJ2ZXI1LmtleSIgXAorICAgICAgICAgICAgIiRQX0NMSSBkZWJ1Z19sZXZlbD0zIGNydF9maWxlPSREQVRBX0ZJTEVTX1BBVEgvc2VydmVyNS1iYWRzaWduLmNydCBcCisgICAgICAgICAgICAga2V5X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9zZXJ2ZXI1LmtleSIgXAogICAgICAgICAgICAgMCBcCiAgICAgICAgICAgICAtcyAidXNlIENBIGNhbGxiYWNrIGZvciBYLjUwOSBDUlQgdmVyaWZpY2F0aW9uIiBcCiAgICAgICAgICAgICAtUyAic2tpcCB3cml0ZSBjZXJ0aWZpY2F0ZSByZXF1ZXN0IiBcCkBAIC02MzU1LDkgKzYzNTcsOSBAQAogcmVxdWlyZXNfZnVsbF9zaXplX291dHB1dF9idWZmZXIKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIE1CRURUTFNfWDUwOV9UUlVTVEVEX0NFUlRJRklDQVRFX0NBTExCQUNLCiBydW5fdGVzdCAgICAiQXV0aGVudGljYXRpb24sIENBIGNhbGxiYWNrOiBzZXJ2ZXIgbWF4X2ludCBjaGFpbiwgY2xpZW50IGRlZmF1bHQiIFwKLSAgICAgICAgICAgICIkUF9TUlYgY3J0X2ZpbGU9ZGF0YV9maWxlcy9kaXItbWF4cGF0aC9jMDkucGVtIFwKLSAgICAgICAgICAgICAgICAgICAga2V5X2ZpbGU9ZGF0YV9maWxlcy9kaXItbWF4cGF0aC8wOS5rZXkiIFwKLSAgICAgICAgICAgICIkUF9DTEkgZm9yY2VfdmVyc2lvbj10bHMxMiBjYV9jYWxsYmFjaz0xIGRlYnVnX2xldmVsPTMgc2VydmVyX25hbWU9Q0EwOSBjYV9maWxlPWRhdGFfZmlsZXMvZGlyLW1heHBhdGgvMDAuY3J0IiBcCisgICAgICAgICAgICAiJFBfU1JWIGNydF9maWxlPSREQVRBX0ZJTEVTX1BBVEgvZGlyLW1heHBhdGgvYzA5LnBlbSBcCisgICAgICAgICAgICAgICAgICAgIGtleV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvZGlyLW1heHBhdGgvMDkua2V5IiBcCisgICAgICAgICAgICAiJFBfQ0xJIGZvcmNlX3ZlcnNpb249dGxzMTIgY2FfY2FsbGJhY2s9MSBkZWJ1Z19sZXZlbD0zIHNlcnZlcl9uYW1lPUNBMDkgY2FfZmlsZT0kREFUQV9GSUxFU19QQVRIL2Rpci1tYXhwYXRoLzAwLmNydCIgXAogICAgICAgICAgICAgMCBcCiAgICAgICAgICAgICAtYyAidXNlIENBIGNhbGxiYWNrIGZvciBYLjUwOSBDUlQgdmVyaWZpY2F0aW9uIiBcCiAgICAgICAgICAgICAtQyAiWDUwOSAtIEEgZmF0YWwgZXJyb3Igb2NjdXJyZWQiCkBAIC02MzY2LDkgKzYzNjgsOSBAQAogcmVxdWlyZXNfZnVsbF9zaXplX291dHB1dF9idWZmZXIKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIE1CRURUTFNfWDUwOV9UUlVTVEVEX0NFUlRJRklDQVRFX0NBTExCQUNLCiBydW5fdGVzdCAgICAiQXV0aGVudGljYXRpb24sIENBIGNhbGxiYWNrOiBzZXJ2ZXIgbWF4X2ludCsxIGNoYWluLCBjbGllbnQgZGVmYXVsdCIgXAotICAgICAgICAgICAgIiRQX1NSViBjcnRfZmlsZT1kYXRhX2ZpbGVzL2Rpci1tYXhwYXRoL2MxMC5wZW0gXAotICAgICAgICAgICAgICAgICAgICBrZXlfZmlsZT1kYXRhX2ZpbGVzL2Rpci1tYXhwYXRoLzEwLmtleSIgXAotICAgICAgICAgICAgIiRQX0NMSSBmb3JjZV92ZXJzaW9uPXRsczEyIGRlYnVnX2xldmVsPTMgY2FfY2FsbGJhY2s9MSBzZXJ2ZXJfbmFtZT1DQTEwIGNhX2ZpbGU9ZGF0YV9maWxlcy9kaXItbWF4cGF0aC8wMC5jcnQiIFwKKyAgICAgICAgICAgICIkUF9TUlYgY3J0X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9kaXItbWF4cGF0aC9jMTAucGVtIFwKKyAgICAgICAgICAgICAgICAgICAga2V5X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9kaXItbWF4cGF0aC8xMC5rZXkiIFwKKyAgICAgICAgICAgICIkUF9DTEkgZm9yY2VfdmVyc2lvbj10bHMxMiBkZWJ1Z19sZXZlbD0zIGNhX2NhbGxiYWNrPTEgc2VydmVyX25hbWU9Q0ExMCBjYV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvZGlyLW1heHBhdGgvMDAuY3J0IiBcCiAgICAgICAgICAgICAxIFwKICAgICAgICAgICAgIC1jICJ1c2UgQ0EgY2FsbGJhY2sgZm9yIFguNTA5IENSVCB2ZXJpZmljYXRpb24iIFwKICAgICAgICAgICAgIC1jICJYNTA5IC0gQSBmYXRhbCBlcnJvciBvY2N1cnJlZCIKQEAgLTYzNzcsOSArNjM3OSw5IEBACiByZXF1aXJlc19mdWxsX3NpemVfb3V0cHV0X2J1ZmZlcgogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgTUJFRFRMU19YNTA5X1RSVVNURURfQ0VSVElGSUNBVEVfQ0FMTEJBQ0sKIHJ1bl90ZXN0ICAgICJBdXRoZW50aWNhdGlvbiwgQ0EgY2FsbGJhY2s6IHNlcnZlciBtYXhfaW50KzEgY2hhaW4sIGNsaWVudCBvcHRpb25hbCIgXAotICAgICAgICAgICAgIiRQX1NSViBjcnRfZmlsZT1kYXRhX2ZpbGVzL2Rpci1tYXhwYXRoL2MxMC5wZW0gXAotICAgICAgICAgICAgICAgICAgICBrZXlfZmlsZT1kYXRhX2ZpbGVzL2Rpci1tYXhwYXRoLzEwLmtleSIgXAotICAgICAgICAgICAgIiRQX0NMSSBmb3JjZV92ZXJzaW9uPXRsczEyIGNhX2NhbGxiYWNrPTEgc2VydmVyX25hbWU9Q0ExMCBjYV9maWxlPWRhdGFfZmlsZXMvZGlyLW1heHBhdGgvMDAuY3J0IFwKKyAgICAgICAgICAgICIkUF9TUlYgY3J0X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9kaXItbWF4cGF0aC9jMTAucGVtIFwKKyAgICAgICAgICAgICAgICAgICAga2V5X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9kaXItbWF4cGF0aC8xMC5rZXkiIFwKKyAgICAgICAgICAgICIkUF9DTEkgZm9yY2VfdmVyc2lvbj10bHMxMiBjYV9jYWxsYmFjaz0xIHNlcnZlcl9uYW1lPUNBMTAgY2FfZmlsZT0kREFUQV9GSUxFU19QQVRIL2Rpci1tYXhwYXRoLzAwLmNydCBcCiAgICAgICAgICAgICAgICAgICAgIGRlYnVnX2xldmVsPTMgYXV0aF9tb2RlPW9wdGlvbmFsIiBcCiAgICAgICAgICAgICAxIFwKICAgICAgICAgICAgIC1jICJ1c2UgQ0EgY2FsbGJhY2sgZm9yIFguNTA5IENSVCB2ZXJpZmljYXRpb24iIFwKQEAgLTYzODksOSArNjM5MSw5IEBACiByZXF1aXJlc19mdWxsX3NpemVfb3V0cHV0X2J1ZmZlcgogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgTUJFRFRMU19YNTA5X1RSVVNURURfQ0VSVElGSUNBVEVfQ0FMTEJBQ0sKIHJ1bl90ZXN0ICAgICJBdXRoZW50aWNhdGlvbiwgQ0EgY2FsbGJhY2s6IGNsaWVudCBtYXhfaW50KzEgY2hhaW4sIHNlcnZlciBvcHRpb25hbCIgXAotICAgICAgICAgICAgIiRQX1NSViBmb3JjZV92ZXJzaW9uPXRsczEyIGNhX2NhbGxiYWNrPTEgZGVidWdfbGV2ZWw9MyBjYV9maWxlPWRhdGFfZmlsZXMvZGlyLW1heHBhdGgvMDAuY3J0IGF1dGhfbW9kZT1vcHRpb25hbCIgXAotICAgICAgICAgICAgIiRQX0NMSSBjcnRfZmlsZT1kYXRhX2ZpbGVzL2Rpci1tYXhwYXRoL2MxMC5wZW0gXAotICAgICAgICAgICAgICAgICAgICBrZXlfZmlsZT1kYXRhX2ZpbGVzL2Rpci1tYXhwYXRoLzEwLmtleSIgXAorICAgICAgICAgICAgIiRQX1NSViBmb3JjZV92ZXJzaW9uPXRsczEyIGNhX2NhbGxiYWNrPTEgZGVidWdfbGV2ZWw9MyBjYV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvZGlyLW1heHBhdGgvMDAuY3J0IGF1dGhfbW9kZT1vcHRpb25hbCIgXAorICAgICAgICAgICAgIiRQX0NMSSBjcnRfZmlsZT0kREFUQV9GSUxFU19QQVRIL2Rpci1tYXhwYXRoL2MxMC5wZW0gXAorICAgICAgICAgICAgICAgICAgICBrZXlfZmlsZT0kREFUQV9GSUxFU19QQVRIL2Rpci1tYXhwYXRoLzEwLmtleSIgXAogICAgICAgICAgICAgMSBcCiAgICAgICAgICAgICAtcyAidXNlIENBIGNhbGxiYWNrIGZvciBYLjUwOSBDUlQgdmVyaWZpY2F0aW9uIiBcCiAgICAgICAgICAgICAtcyAiWDUwOSAtIEEgZmF0YWwgZXJyb3Igb2NjdXJyZWQiCkBAIC02NDAwLDkgKzY0MDIsOSBAQAogcmVxdWlyZXNfZnVsbF9zaXplX291dHB1dF9idWZmZXIKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIE1CRURUTFNfWDUwOV9UUlVTVEVEX0NFUlRJRklDQVRFX0NBTExCQUNLCiBydW5fdGVzdCAgICAiQXV0aGVudGljYXRpb24sIENBIGNhbGxiYWNrOiBjbGllbnQgbWF4X2ludCsxIGNoYWluLCBzZXJ2ZXIgcmVxdWlyZWQiIFwKLSAgICAgICAgICAgICIkUF9TUlYgZm9yY2VfdmVyc2lvbj10bHMxMiBjYV9jYWxsYmFjaz0xIGRlYnVnX2xldmVsPTMgY2FfZmlsZT1kYXRhX2ZpbGVzL2Rpci1tYXhwYXRoLzAwLmNydCBhdXRoX21vZGU9cmVxdWlyZWQiIFwKLSAgICAgICAgICAgICIkUF9DTEkgY3J0X2ZpbGU9ZGF0YV9maWxlcy9kaXItbWF4cGF0aC9jMTAucGVtIFwKLSAgICAgICAgICAgICAgICAgICAga2V5X2ZpbGU9ZGF0YV9maWxlcy9kaXItbWF4cGF0aC8xMC5rZXkiIFwKKyAgICAgICAgICAgICIkUF9TUlYgZm9yY2VfdmVyc2lvbj10bHMxMiBjYV9jYWxsYmFjaz0xIGRlYnVnX2xldmVsPTMgY2FfZmlsZT0kREFUQV9GSUxFU19QQVRIL2Rpci1tYXhwYXRoLzAwLmNydCBhdXRoX21vZGU9cmVxdWlyZWQiIFwKKyAgICAgICAgICAgICIkUF9DTEkgY3J0X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9kaXItbWF4cGF0aC9jMTAucGVtIFwKKyAgICAgICAgICAgICAgICAgICAga2V5X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9kaXItbWF4cGF0aC8xMC5rZXkiIFwKICAgICAgICAgICAgIDEgXAogICAgICAgICAgICAgLXMgInVzZSBDQSBjYWxsYmFjayBmb3IgWC41MDkgQ1JUIHZlcmlmaWNhdGlvbiIgXAogICAgICAgICAgICAgLXMgIlg1MDkgLSBBIGZhdGFsIGVycm9yIG9jY3VycmVkIgpAQCAtNjQxMSw5ICs2NDEzLDkgQEAKIHJlcXVpcmVzX2Z1bGxfc2l6ZV9vdXRwdXRfYnVmZmVyCiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBNQkVEVExTX1g1MDlfVFJVU1RFRF9DRVJUSUZJQ0FURV9DQUxMQkFDSwogcnVuX3Rlc3QgICAgIkF1dGhlbnRpY2F0aW9uLCBDQSBjYWxsYmFjazogY2xpZW50IG1heF9pbnQgY2hhaW4sIHNlcnZlciByZXF1aXJlZCIgXAotICAgICAgICAgICAgIiRQX1NSViBmb3JjZV92ZXJzaW9uPXRsczEyIGNhX2NhbGxiYWNrPTEgZGVidWdfbGV2ZWw9MyBjYV9maWxlPWRhdGFfZmlsZXMvZGlyLW1heHBhdGgvMDAuY3J0IGF1dGhfbW9kZT1yZXF1aXJlZCIgXAotICAgICAgICAgICAgIiRQX0NMSSBjcnRfZmlsZT1kYXRhX2ZpbGVzL2Rpci1tYXhwYXRoL2MwOS5wZW0gXAotICAgICAgICAgICAgICAgICAgICBrZXlfZmlsZT1kYXRhX2ZpbGVzL2Rpci1tYXhwYXRoLzA5LmtleSIgXAorICAgICAgICAgICAgIiRQX1NSViBmb3JjZV92ZXJzaW9uPXRsczEyIGNhX2NhbGxiYWNrPTEgZGVidWdfbGV2ZWw9MyBjYV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvZGlyLW1heHBhdGgvMDAuY3J0IGF1dGhfbW9kZT1yZXF1aXJlZCIgXAorICAgICAgICAgICAgIiRQX0NMSSBjcnRfZmlsZT0kREFUQV9GSUxFU19QQVRIL2Rpci1tYXhwYXRoL2MwOS5wZW0gXAorICAgICAgICAgICAgICAgICAgICBrZXlfZmlsZT0kREFUQV9GSUxFU19QQVRIL2Rpci1tYXhwYXRoLzA5LmtleSIgXAogICAgICAgICAgICAgMCBcCiAgICAgICAgICAgICAtcyAidXNlIENBIGNhbGxiYWNrIGZvciBYLjUwOSBDUlQgdmVyaWZpY2F0aW9uIiBcCiAgICAgICAgICAgICAtUyAiWDUwOSAtIEEgZmF0YWwgZXJyb3Igb2NjdXJyZWQiCkBAIC02NDIyLDEwICs2NDI0LDEwIEBACiAKIHJlcXVpcmVzX2NvbmZpZ19kaXNhYmxlZCBNQkVEVExTX1g1MDlfUkVNT1ZFX0lORk8KIHJ1bl90ZXN0ICAgICJDZXJ0aWZpY2F0ZSBoYXNoOiBjbGllbnQgVExTIDEuMiAtPiBTSEEtMiIgXAotICAgICAgICAgICAgIiRQX1NSViBmb3JjZV92ZXJzaW9uPXRsczEyIGNydF9maWxlPWRhdGFfZmlsZXMvc2VydmVyNS5jcnQgXAotICAgICAgICAgICAgICAgICAgICBrZXlfZmlsZT1kYXRhX2ZpbGVzL3NlcnZlcjUua2V5IFwKLSAgICAgICAgICAgICAgICAgICAgY3J0X2ZpbGUyPWRhdGFfZmlsZXMvc2VydmVyNS1zaGExLmNydCBcCi0gICAgICAgICAgICAgICAgICAgIGtleV9maWxlMj1kYXRhX2ZpbGVzL3NlcnZlcjUua2V5IiBcCisgICAgICAgICAgICAiJFBfU1JWIGZvcmNlX3ZlcnNpb249dGxzMTIgY3J0X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9zZXJ2ZXI1LmNydCBcCisgICAgICAgICAgICAgICAgICAgIGtleV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvc2VydmVyNS5rZXkgXAorICAgICAgICAgICAgICAgICAgICBjcnRfZmlsZTI9JERBVEFfRklMRVNfUEFUSC9zZXJ2ZXI1LXNoYTEuY3J0IFwKKyAgICAgICAgICAgICAgICAgICAga2V5X2ZpbGUyPSREQVRBX0ZJTEVTX1BBVEgvc2VydmVyNS5rZXkiIFwKICAgICAgICAgICAgICIkUF9DTEkiIFwKICAgICAgICAgICAgIDAgXAogICAgICAgICAgICAgLWMgInNpZ25lZCB1c2luZy4qRUNEU0Egd2l0aCBTSEEyNTYiIFwKQEAgLTY0MzcsNyArNjQzOSw3IEBACiByZXF1aXJlc19rZXlfZXhjaGFuZ2Vfd2l0aF9jZXJ0X2luX3RsczEyX29yX3RsczEzX2VuYWJsZWQKIHJ1bl90ZXN0ICAgICJTTkk6IG5vIFNOSSBjYWxsYmFjayIgXAogICAgICAgICAgICAgIiRQX1NSViBkZWJ1Z19sZXZlbD0zIFwKLSAgICAgICAgICAgICBjcnRfZmlsZT1kYXRhX2ZpbGVzL3NlcnZlcjUuY3J0IGtleV9maWxlPWRhdGFfZmlsZXMvc2VydmVyNS5rZXkiIFwKKyAgICAgICAgICAgICBjcnRfZmlsZT0kREFUQV9GSUxFU19QQVRIL3NlcnZlcjUuY3J0IGtleV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvc2VydmVyNS5rZXkiIFwKICAgICAgICAgICAgICIkUF9DTEkgc2VydmVyX25hbWU9bG9jYWxob3N0IiBcCiAgICAgICAgICAgICAwIFwKICAgICAgICAgICAgIC1jICJpc3N1ZXIgbmFtZSAqOiBDPU5MLCBPPVBvbGFyU1NMLCBDTj1Qb2xhcnNzbCBUZXN0IEVDIENBIiBcCkBAIC02NDQ3LDggKzY0NDksOCBAQAogcmVxdWlyZXNfa2V5X2V4Y2hhbmdlX3dpdGhfY2VydF9pbl90bHMxMl9vcl90bHMxM19lbmFibGVkCiBydW5fdGVzdCAgICAiU05JOiBtYXRjaGluZyBjZXJ0IDEiIFwKICAgICAgICAgICAgICIkUF9TUlYgZGVidWdfbGV2ZWw9MyBcCi0gICAgICAgICAgICAgY3J0X2ZpbGU9ZGF0YV9maWxlcy9zZXJ2ZXI1LmNydCBrZXlfZmlsZT1kYXRhX2ZpbGVzL3NlcnZlcjUua2V5IFwKLSAgICAgICAgICAgICBzbmk9bG9jYWxob3N0LGRhdGFfZmlsZXMvc2VydmVyMi5jcnQsZGF0YV9maWxlcy9zZXJ2ZXIyLmtleSwtLC0sLSxwb2xhcnNzbC5leGFtcGxlLGRhdGFfZmlsZXMvc2VydmVyMS1ub3NwYWNlLmNydCxkYXRhX2ZpbGVzL3NlcnZlcjEua2V5LC0sLSwtIiBcCisgICAgICAgICAgICAgY3J0X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9zZXJ2ZXI1LmNydCBrZXlfZmlsZT0kREFUQV9GSUxFU19QQVRIL3NlcnZlcjUua2V5IFwKKyAgICAgICAgICAgICBzbmk9bG9jYWxob3N0LCREQVRBX0ZJTEVTX1BBVEgvc2VydmVyMi5jcnQsJERBVEFfRklMRVNfUEFUSC9zZXJ2ZXIyLmtleSwtLC0sLSxwb2xhcnNzbC5leGFtcGxlLCREQVRBX0ZJTEVTX1BBVEgvc2VydmVyMS1ub3NwYWNlLmNydCwkREFUQV9GSUxFU19QQVRIL3NlcnZlcjEua2V5LC0sLSwtIiBcCiAgICAgICAgICAgICAiJFBfQ0xJIHNlcnZlcl9uYW1lPWxvY2FsaG9zdCIgXAogICAgICAgICAgICAgMCBcCiAgICAgICAgICAgICAtcyAicGFyc2UgU2VydmVyTmFtZSBleHRlbnNpb24iIFwKQEAgLTY0NTksOCArNjQ2MSw4IEBACiByZXF1aXJlc19rZXlfZXhjaGFuZ2Vfd2l0aF9jZXJ0X2luX3RsczEyX29yX3RsczEzX2VuYWJsZWQKIHJ1bl90ZXN0ICAgICJTTkk6IG1hdGNoaW5nIGNlcnQgMiIgXAogICAgICAgICAgICAgIiRQX1NSViBkZWJ1Z19sZXZlbD0zIFwKLSAgICAgICAgICAgICBjcnRfZmlsZT1kYXRhX2ZpbGVzL3NlcnZlcjUuY3J0IGtleV9maWxlPWRhdGFfZmlsZXMvc2VydmVyNS5rZXkgXAotICAgICAgICAgICAgIHNuaT1sb2NhbGhvc3QsZGF0YV9maWxlcy9zZXJ2ZXIyLmNydCxkYXRhX2ZpbGVzL3NlcnZlcjIua2V5LC0sLSwtLHBvbGFyc3NsLmV4YW1wbGUsZGF0YV9maWxlcy9zZXJ2ZXIxLW5vc3BhY2UuY3J0LGRhdGFfZmlsZXMvc2VydmVyMS5rZXksLSwtLC0iIFwKKyAgICAgICAgICAgICBjcnRfZmlsZT0kREFUQV9GSUxFU19QQVRIL3NlcnZlcjUuY3J0IGtleV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvc2VydmVyNS5rZXkgXAorICAgICAgICAgICAgIHNuaT1sb2NhbGhvc3QsJERBVEFfRklMRVNfUEFUSC9zZXJ2ZXIyLmNydCwkREFUQV9GSUxFU19QQVRIL3NlcnZlcjIua2V5LC0sLSwtLHBvbGFyc3NsLmV4YW1wbGUsJERBVEFfRklMRVNfUEFUSC9zZXJ2ZXIxLW5vc3BhY2UuY3J0LCREQVRBX0ZJTEVTX1BBVEgvc2VydmVyMS5rZXksLSwtLC0iIFwKICAgICAgICAgICAgICIkUF9DTEkgc2VydmVyX25hbWU9cG9sYXJzc2wuZXhhbXBsZSIgXAogICAgICAgICAgICAgMCBcCiAgICAgICAgICAgICAtcyAicGFyc2UgU2VydmVyTmFtZSBleHRlbnNpb24iIFwKQEAgLTY0NzEsOCArNjQ3Myw4IEBACiByZXF1aXJlc19rZXlfZXhjaGFuZ2Vfd2l0aF9jZXJ0X2luX3RsczEyX29yX3RsczEzX2VuYWJsZWQKIHJ1bl90ZXN0ICAgICJTTkk6IG5vIG1hdGNoaW5nIGNlcnQiIFwKICAgICAgICAgICAgICIkUF9TUlYgZGVidWdfbGV2ZWw9MyBcCi0gICAgICAgICAgICAgY3J0X2ZpbGU9ZGF0YV9maWxlcy9zZXJ2ZXI1LmNydCBrZXlfZmlsZT1kYXRhX2ZpbGVzL3NlcnZlcjUua2V5IFwKLSAgICAgICAgICAgICBzbmk9bG9jYWxob3N0LGRhdGFfZmlsZXMvc2VydmVyMi5jcnQsZGF0YV9maWxlcy9zZXJ2ZXIyLmtleSwtLC0sLSxwb2xhcnNzbC5leGFtcGxlLGRhdGFfZmlsZXMvc2VydmVyMS1ub3NwYWNlLmNydCxkYXRhX2ZpbGVzL3NlcnZlcjEua2V5LC0sLSwtIiBcCisgICAgICAgICAgICAgY3J0X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9zZXJ2ZXI1LmNydCBrZXlfZmlsZT0kREFUQV9GSUxFU19QQVRIL3NlcnZlcjUua2V5IFwKKyAgICAgICAgICAgICBzbmk9bG9jYWxob3N0LCREQVRBX0ZJTEVTX1BBVEgvc2VydmVyMi5jcnQsJERBVEFfRklMRVNfUEFUSC9zZXJ2ZXIyLmtleSwtLC0sLSxwb2xhcnNzbC5leGFtcGxlLCREQVRBX0ZJTEVTX1BBVEgvc2VydmVyMS1ub3NwYWNlLmNydCwkREFUQV9GSUxFU19QQVRIL3NlcnZlcjEua2V5LC0sLSwtIiBcCiAgICAgICAgICAgICAiJFBfQ0xJIHNlcnZlcl9uYW1lPW5vbmVzdWNoLmV4YW1wbGUiIFwKICAgICAgICAgICAgIDEgXAogICAgICAgICAgICAgLXMgInBhcnNlIFNlcnZlck5hbWUgZXh0ZW5zaW9uIiBcCkBAIC02NDg0LDggKzY0ODYsOCBAQAogcmVxdWlyZXNfa2V5X2V4Y2hhbmdlX3dpdGhfY2VydF9pbl90bHMxMl9vcl90bHMxM19lbmFibGVkCiBydW5fdGVzdCAgICAiU05JOiBjbGllbnQgYXV0aCBubyBvdmVycmlkZTogb3B0aW9uYWwiIFwKICAgICAgICAgICAgICIkUF9TUlYgZGVidWdfbGV2ZWw9MyBhdXRoX21vZGU9b3B0aW9uYWwgXAotICAgICAgICAgICAgIGNydF9maWxlPWRhdGFfZmlsZXMvc2VydmVyNS5jcnQga2V5X2ZpbGU9ZGF0YV9maWxlcy9zZXJ2ZXI1LmtleSBcCi0gICAgICAgICAgICAgc25pPWxvY2FsaG9zdCxkYXRhX2ZpbGVzL3NlcnZlcjIuY3J0LGRhdGFfZmlsZXMvc2VydmVyMi5rZXksLSwtLC0iIFwKKyAgICAgICAgICAgICBjcnRfZmlsZT0kREFUQV9GSUxFU19QQVRIL3NlcnZlcjUuY3J0IGtleV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvc2VydmVyNS5rZXkgXAorICAgICAgICAgICAgIHNuaT1sb2NhbGhvc3QsJERBVEFfRklMRVNfUEFUSC9zZXJ2ZXIyLmNydCwkREFUQV9GSUxFU19QQVRIL3NlcnZlcjIua2V5LC0sLSwtIiBcCiAgICAgICAgICAgICAiJFBfQ0xJIGRlYnVnX2xldmVsPTMgc2VydmVyX25hbWU9bG9jYWxob3N0IiBcCiAgICAgICAgICAgICAwIFwKICAgICAgICAgICAgIC1TICJza2lwIHdyaXRlIGNlcnRpZmljYXRlIHJlcXVlc3QiIFwKQEAgLTY0OTgsOCArNjUwMCw4IEBACiByZXF1aXJlc19rZXlfZXhjaGFuZ2Vfd2l0aF9jZXJ0X2luX3RsczEyX29yX3RsczEzX2VuYWJsZWQKIHJ1bl90ZXN0ICAgICJTTkk6IGNsaWVudCBhdXRoIG92ZXJyaWRlOiBub25lIC0+IG9wdGlvbmFsIiBcCiAgICAgICAgICAgICAiJFBfU1JWIGRlYnVnX2xldmVsPTMgYXV0aF9tb2RlPW5vbmUgXAotICAgICAgICAgICAgIGNydF9maWxlPWRhdGFfZmlsZXMvc2VydmVyNS5jcnQga2V5X2ZpbGU9ZGF0YV9maWxlcy9zZXJ2ZXI1LmtleSBcCi0gICAgICAgICAgICAgc25pPWxvY2FsaG9zdCxkYXRhX2ZpbGVzL3NlcnZlcjIuY3J0LGRhdGFfZmlsZXMvc2VydmVyMi5rZXksLSwtLG9wdGlvbmFsIiBcCisgICAgICAgICAgICAgY3J0X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9zZXJ2ZXI1LmNydCBrZXlfZmlsZT0kREFUQV9GSUxFU19QQVRIL3NlcnZlcjUua2V5IFwKKyAgICAgICAgICAgICBzbmk9bG9jYWxob3N0LCREQVRBX0ZJTEVTX1BBVEgvc2VydmVyMi5jcnQsJERBVEFfRklMRVNfUEFUSC9zZXJ2ZXIyLmtleSwtLC0sb3B0aW9uYWwiIFwKICAgICAgICAgICAgICIkUF9DTEkgZGVidWdfbGV2ZWw9MyBzZXJ2ZXJfbmFtZT1sb2NhbGhvc3QiIFwKICAgICAgICAgICAgIDAgXAogICAgICAgICAgICAgLVMgInNraXAgd3JpdGUgY2VydGlmaWNhdGUgcmVxdWVzdCIgXApAQCAtNjUxMiw4ICs2NTE0LDggQEAKIHJlcXVpcmVzX2tleV9leGNoYW5nZV93aXRoX2NlcnRfaW5fdGxzMTJfb3JfdGxzMTNfZW5hYmxlZAogcnVuX3Rlc3QgICAgIlNOSTogY2xpZW50IGF1dGggb3ZlcnJpZGU6IG9wdGlvbmFsIC0+IG5vbmUiIFwKICAgICAgICAgICAgICIkUF9TUlYgZGVidWdfbGV2ZWw9MyBhdXRoX21vZGU9b3B0aW9uYWwgXAotICAgICAgICAgICAgIGNydF9maWxlPWRhdGFfZmlsZXMvc2VydmVyNS5jcnQga2V5X2ZpbGU9ZGF0YV9maWxlcy9zZXJ2ZXI1LmtleSBcCi0gICAgICAgICAgICAgc25pPWxvY2FsaG9zdCxkYXRhX2ZpbGVzL3NlcnZlcjIuY3J0LGRhdGFfZmlsZXMvc2VydmVyMi5rZXksLSwtLG5vbmUiIFwKKyAgICAgICAgICAgICBjcnRfZmlsZT0kREFUQV9GSUxFU19QQVRIL3NlcnZlcjUuY3J0IGtleV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvc2VydmVyNS5rZXkgXAorICAgICAgICAgICAgIHNuaT1sb2NhbGhvc3QsJERBVEFfRklMRVNfUEFUSC9zZXJ2ZXIyLmNydCwkREFUQV9GSUxFU19QQVRIL3NlcnZlcjIua2V5LC0sLSxub25lIiBcCiAgICAgICAgICAgICAiJFBfQ0xJIGRlYnVnX2xldmVsPTMgc2VydmVyX25hbWU9bG9jYWxob3N0IiBcCiAgICAgICAgICAgICAwIFwKICAgICAgICAgICAgIC1zICJza2lwIHdyaXRlIGNlcnRpZmljYXRlIHJlcXVlc3QiIFwKQEAgLTY1MjQsMTEgKzY1MjYsMTEgQEAKIHJlcXVpcmVzX2tleV9leGNoYW5nZV93aXRoX2NlcnRfaW5fdGxzMTJfb3JfdGxzMTNfZW5hYmxlZAogcnVuX3Rlc3QgICAgIlNOSTogQ0Egbm8gb3ZlcnJpZGUiIFwKICAgICAgICAgICAgICIkUF9TUlYgZGVidWdfbGV2ZWw9MyBhdXRoX21vZGU9b3B0aW9uYWwgXAotICAgICAgICAgICAgIGNydF9maWxlPWRhdGFfZmlsZXMvc2VydmVyNS5jcnQga2V5X2ZpbGU9ZGF0YV9maWxlcy9zZXJ2ZXI1LmtleSBcCi0gICAgICAgICAgICAgY2FfZmlsZT1kYXRhX2ZpbGVzL3Rlc3QtY2EuY3J0IFwKLSAgICAgICAgICAgICBzbmk9bG9jYWxob3N0LGRhdGFfZmlsZXMvc2VydmVyMi5jcnQsZGF0YV9maWxlcy9zZXJ2ZXIyLmtleSwtLC0scmVxdWlyZWQiIFwKKyAgICAgICAgICAgICBjcnRfZmlsZT0kREFUQV9GSUxFU19QQVRIL3NlcnZlcjUuY3J0IGtleV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvc2VydmVyNS5rZXkgXAorICAgICAgICAgICAgIGNhX2ZpbGU9JERBVEFfRklMRVNfUEFUSC90ZXN0LWNhLmNydCBcCisgICAgICAgICAgICAgc25pPWxvY2FsaG9zdCwkREFUQV9GSUxFU19QQVRIL3NlcnZlcjIuY3J0LCREQVRBX0ZJTEVTX1BBVEgvc2VydmVyMi5rZXksLSwtLHJlcXVpcmVkIiBcCiAgICAgICAgICAgICAiJFBfQ0xJIGRlYnVnX2xldmVsPTMgc2VydmVyX25hbWU9bG9jYWxob3N0IFwKLSAgICAgICAgICAgICBjcnRfZmlsZT1kYXRhX2ZpbGVzL3NlcnZlcjYuY3J0IGtleV9maWxlPWRhdGFfZmlsZXMvc2VydmVyNi5rZXkiIFwKKyAgICAgICAgICAgICBjcnRfZmlsZT0kREFUQV9GSUxFU19QQVRIL3NlcnZlcjYuY3J0IGtleV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvc2VydmVyNi5rZXkiIFwKICAgICAgICAgICAgIDEgXAogICAgICAgICAgICAgLVMgInNraXAgd3JpdGUgY2VydGlmaWNhdGUgcmVxdWVzdCIgXAogICAgICAgICAgICAgLUMgInNraXAgcGFyc2UgY2VydGlmaWNhdGUgcmVxdWVzdCIgXApAQCAtNjU0MywxMSArNjU0NSwxMSBAQAogcmVxdWlyZXNfa2V5X2V4Y2hhbmdlX3dpdGhfY2VydF9pbl90bHMxMl9vcl90bHMxM19lbmFibGVkCiBydW5fdGVzdCAgICAiU05JOiBDQSBvdmVycmlkZSIgXAogICAgICAgICAgICAgIiRQX1NSViBkZWJ1Z19sZXZlbD0zIGF1dGhfbW9kZT1vcHRpb25hbCBcCi0gICAgICAgICAgICAgY3J0X2ZpbGU9ZGF0YV9maWxlcy9zZXJ2ZXI1LmNydCBrZXlfZmlsZT1kYXRhX2ZpbGVzL3NlcnZlcjUua2V5IFwKLSAgICAgICAgICAgICBjYV9maWxlPWRhdGFfZmlsZXMvdGVzdC1jYS5jcnQgXAotICAgICAgICAgICAgIHNuaT1sb2NhbGhvc3QsZGF0YV9maWxlcy9zZXJ2ZXIyLmNydCxkYXRhX2ZpbGVzL3NlcnZlcjIua2V5LGRhdGFfZmlsZXMvdGVzdC1jYTIuY3J0LC0scmVxdWlyZWQiIFwKKyAgICAgICAgICAgICBjcnRfZmlsZT0kREFUQV9GSUxFU19QQVRIL3NlcnZlcjUuY3J0IGtleV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvc2VydmVyNS5rZXkgXAorICAgICAgICAgICAgIGNhX2ZpbGU9JERBVEFfRklMRVNfUEFUSC90ZXN0LWNhLmNydCBcCisgICAgICAgICAgICAgc25pPWxvY2FsaG9zdCwkREFUQV9GSUxFU19QQVRIL3NlcnZlcjIuY3J0LCREQVRBX0ZJTEVTX1BBVEgvc2VydmVyMi5rZXksJERBVEFfRklMRVNfUEFUSC90ZXN0LWNhMi5jcnQsLSxyZXF1aXJlZCIgXAogICAgICAgICAgICAgIiRQX0NMSSBkZWJ1Z19sZXZlbD0zIHNlcnZlcl9uYW1lPWxvY2FsaG9zdCBcCi0gICAgICAgICAgICAgY3J0X2ZpbGU9ZGF0YV9maWxlcy9zZXJ2ZXI2LmNydCBrZXlfZmlsZT1kYXRhX2ZpbGVzL3NlcnZlcjYua2V5IiBcCisgICAgICAgICAgICAgY3J0X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9zZXJ2ZXI2LmNydCBrZXlfZmlsZT0kREFUQV9GSUxFU19QQVRIL3NlcnZlcjYua2V5IiBcCiAgICAgICAgICAgICAwIFwKICAgICAgICAgICAgIC1TICJza2lwIHdyaXRlIGNlcnRpZmljYXRlIHJlcXVlc3QiIFwKICAgICAgICAgICAgIC1DICJza2lwIHBhcnNlIGNlcnRpZmljYXRlIHJlcXVlc3QiIFwKQEAgLTY1NjIsMTEgKzY1NjQsMTEgQEAKIHJlcXVpcmVzX2tleV9leGNoYW5nZV93aXRoX2NlcnRfaW5fdGxzMTJfb3JfdGxzMTNfZW5hYmxlZAogcnVuX3Rlc3QgICAgIlNOSTogQ0Egb3ZlcnJpZGUgd2l0aCBDUkwiIFwKICAgICAgICAgICAgICIkUF9TUlYgZGVidWdfbGV2ZWw9MyBhdXRoX21vZGU9b3B0aW9uYWwgXAotICAgICAgICAgICAgIGNydF9maWxlPWRhdGFfZmlsZXMvc2VydmVyNS5jcnQga2V5X2ZpbGU9ZGF0YV9maWxlcy9zZXJ2ZXI1LmtleSBcCi0gICAgICAgICAgICAgY2FfZmlsZT1kYXRhX2ZpbGVzL3Rlc3QtY2EuY3J0IFwKLSAgICAgICAgICAgICBzbmk9bG9jYWxob3N0LGRhdGFfZmlsZXMvc2VydmVyMi5jcnQsZGF0YV9maWxlcy9zZXJ2ZXIyLmtleSxkYXRhX2ZpbGVzL3Rlc3QtY2EyLmNydCxkYXRhX2ZpbGVzL2NybC1lYy1zaGEyNTYucGVtLHJlcXVpcmVkIiBcCisgICAgICAgICAgICAgY3J0X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9zZXJ2ZXI1LmNydCBrZXlfZmlsZT0kREFUQV9GSUxFU19QQVRIL3NlcnZlcjUua2V5IFwKKyAgICAgICAgICAgICBjYV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvdGVzdC1jYS5jcnQgXAorICAgICAgICAgICAgIHNuaT1sb2NhbGhvc3QsJERBVEFfRklMRVNfUEFUSC9zZXJ2ZXIyLmNydCwkREFUQV9GSUxFU19QQVRIL3NlcnZlcjIua2V5LCREQVRBX0ZJTEVTX1BBVEgvdGVzdC1jYTIuY3J0LCREQVRBX0ZJTEVTX1BBVEgvY3JsLWVjLXNoYTI1Ni5wZW0scmVxdWlyZWQiIFwKICAgICAgICAgICAgICIkUF9DTEkgZGVidWdfbGV2ZWw9MyBzZXJ2ZXJfbmFtZT1sb2NhbGhvc3QgXAotICAgICAgICAgICAgIGNydF9maWxlPWRhdGFfZmlsZXMvc2VydmVyNi5jcnQga2V5X2ZpbGU9ZGF0YV9maWxlcy9zZXJ2ZXI2LmtleSIgXAorICAgICAgICAgICAgIGNydF9maWxlPSREQVRBX0ZJTEVTX1BBVEgvc2VydmVyNi5jcnQga2V5X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9zZXJ2ZXI2LmtleSIgXAogICAgICAgICAgICAgMSBcCiAgICAgICAgICAgICAtUyAic2tpcCB3cml0ZSBjZXJ0aWZpY2F0ZSByZXF1ZXN0IiBcCiAgICAgICAgICAgICAtQyAic2tpcCBwYXJzZSBjZXJ0aWZpY2F0ZSByZXF1ZXN0IiBcCkBAIC02NTg0LDcgKzY1ODYsNyBAQAogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgTUJFRFRMU19TU0xfUFJPVE9fVExTMV8yCiBydW5fdGVzdCAgICAiU05JOiBEVExTLCBubyBTTkkgY2FsbGJhY2siIFwKICAgICAgICAgICAgICIkUF9TUlYgZGVidWdfbGV2ZWw9MyBkdGxzPTEgXAotICAgICAgICAgICAgIGNydF9maWxlPWRhdGFfZmlsZXMvc2VydmVyNS5jcnQga2V5X2ZpbGU9ZGF0YV9maWxlcy9zZXJ2ZXI1LmtleSIgXAorICAgICAgICAgICAgIGNydF9maWxlPSREQVRBX0ZJTEVTX1BBVEgvc2VydmVyNS5jcnQga2V5X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9zZXJ2ZXI1LmtleSIgXAogICAgICAgICAgICAgIiRQX0NMSSBzZXJ2ZXJfbmFtZT1sb2NhbGhvc3QgZHRscz0xIiBcCiAgICAgICAgICAgICAwIFwKICAgICAgICAgICAgIC1jICJpc3N1ZXIgbmFtZSAqOiBDPU5MLCBPPVBvbGFyU1NMLCBDTj1Qb2xhcnNzbCBUZXN0IEVDIENBIiBcCkBAIC02NTk0LDggKzY1OTYsOCBAQAogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgTUJFRFRMU19TU0xfUFJPVE9fVExTMV8yCiBydW5fdGVzdCAgICAiU05JOiBEVExTLCBtYXRjaGluZyBjZXJ0IDEiIFwKICAgICAgICAgICAgICIkUF9TUlYgZGVidWdfbGV2ZWw9MyBkdGxzPTEgXAotICAgICAgICAgICAgIGNydF9maWxlPWRhdGFfZmlsZXMvc2VydmVyNS5jcnQga2V5X2ZpbGU9ZGF0YV9maWxlcy9zZXJ2ZXI1LmtleSBcCi0gICAgICAgICAgICAgc25pPWxvY2FsaG9zdCxkYXRhX2ZpbGVzL3NlcnZlcjIuY3J0LGRhdGFfZmlsZXMvc2VydmVyMi5rZXksLSwtLC0scG9sYXJzc2wuZXhhbXBsZSxkYXRhX2ZpbGVzL3NlcnZlcjEtbm9zcGFjZS5jcnQsZGF0YV9maWxlcy9zZXJ2ZXIxLmtleSwtLC0sLSIgXAorICAgICAgICAgICAgIGNydF9maWxlPSREQVRBX0ZJTEVTX1BBVEgvc2VydmVyNS5jcnQga2V5X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9zZXJ2ZXI1LmtleSBcCisgICAgICAgICAgICAgc25pPWxvY2FsaG9zdCwkREFUQV9GSUxFU19QQVRIL3NlcnZlcjIuY3J0LCREQVRBX0ZJTEVTX1BBVEgvc2VydmVyMi5rZXksLSwtLC0scG9sYXJzc2wuZXhhbXBsZSwkREFUQV9GSUxFU19QQVRIL3NlcnZlcjEtbm9zcGFjZS5jcnQsJERBVEFfRklMRVNfUEFUSC9zZXJ2ZXIxLmtleSwtLC0sLSIgXAogICAgICAgICAgICAgIiRQX0NMSSBzZXJ2ZXJfbmFtZT1sb2NhbGhvc3QgZHRscz0xIiBcCiAgICAgICAgICAgICAwIFwKICAgICAgICAgICAgIC1zICJwYXJzZSBTZXJ2ZXJOYW1lIGV4dGVuc2lvbiIgXApAQCAtNjYwNiw4ICs2NjA4LDggQEAKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIE1CRURUTFNfU1NMX1BST1RPX1RMUzFfMgogcnVuX3Rlc3QgICAgIlNOSTogRFRMUywgbWF0Y2hpbmcgY2VydCAyIiBcCiAgICAgICAgICAgICAiJFBfU1JWIGRlYnVnX2xldmVsPTMgZHRscz0xIFwKLSAgICAgICAgICAgICBjcnRfZmlsZT1kYXRhX2ZpbGVzL3NlcnZlcjUuY3J0IGtleV9maWxlPWRhdGFfZmlsZXMvc2VydmVyNS5rZXkgXAotICAgICAgICAgICAgIHNuaT1sb2NhbGhvc3QsZGF0YV9maWxlcy9zZXJ2ZXIyLmNydCxkYXRhX2ZpbGVzL3NlcnZlcjIua2V5LC0sLSwtLHBvbGFyc3NsLmV4YW1wbGUsZGF0YV9maWxlcy9zZXJ2ZXIxLW5vc3BhY2UuY3J0LGRhdGFfZmlsZXMvc2VydmVyMS5rZXksLSwtLC0iIFwKKyAgICAgICAgICAgICBjcnRfZmlsZT0kREFUQV9GSUxFU19QQVRIL3NlcnZlcjUuY3J0IGtleV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvc2VydmVyNS5rZXkgXAorICAgICAgICAgICAgIHNuaT1sb2NhbGhvc3QsJERBVEFfRklMRVNfUEFUSC9zZXJ2ZXIyLmNydCwkREFUQV9GSUxFU19QQVRIL3NlcnZlcjIua2V5LC0sLSwtLHBvbGFyc3NsLmV4YW1wbGUsJERBVEFfRklMRVNfUEFUSC9zZXJ2ZXIxLW5vc3BhY2UuY3J0LCREQVRBX0ZJTEVTX1BBVEgvc2VydmVyMS5rZXksLSwtLC0iIFwKICAgICAgICAgICAgICIkUF9DTEkgc2VydmVyX25hbWU9cG9sYXJzc2wuZXhhbXBsZSBkdGxzPTEiIFwKICAgICAgICAgICAgIDAgXAogICAgICAgICAgICAgLXMgInBhcnNlIFNlcnZlck5hbWUgZXh0ZW5zaW9uIiBcCkBAIC02NjE3LDggKzY2MTksOCBAQAogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgTUJFRFRMU19TU0xfUFJPVE9fVExTMV8yCiBydW5fdGVzdCAgICAiU05JOiBEVExTLCBubyBtYXRjaGluZyBjZXJ0IiBcCiAgICAgICAgICAgICAiJFBfU1JWIGRlYnVnX2xldmVsPTMgZHRscz0xIFwKLSAgICAgICAgICAgICBjcnRfZmlsZT1kYXRhX2ZpbGVzL3NlcnZlcjUuY3J0IGtleV9maWxlPWRhdGFfZmlsZXMvc2VydmVyNS5rZXkgXAotICAgICAgICAgICAgIHNuaT1sb2NhbGhvc3QsZGF0YV9maWxlcy9zZXJ2ZXIyLmNydCxkYXRhX2ZpbGVzL3NlcnZlcjIua2V5LC0sLSwtLHBvbGFyc3NsLmV4YW1wbGUsZGF0YV9maWxlcy9zZXJ2ZXIxLW5vc3BhY2UuY3J0LGRhdGFfZmlsZXMvc2VydmVyMS5rZXksLSwtLC0iIFwKKyAgICAgICAgICAgICBjcnRfZmlsZT0kREFUQV9GSUxFU19QQVRIL3NlcnZlcjUuY3J0IGtleV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvc2VydmVyNS5rZXkgXAorICAgICAgICAgICAgIHNuaT1sb2NhbGhvc3QsJERBVEFfRklMRVNfUEFUSC9zZXJ2ZXIyLmNydCwkREFUQV9GSUxFU19QQVRIL3NlcnZlcjIua2V5LC0sLSwtLHBvbGFyc3NsLmV4YW1wbGUsJERBVEFfRklMRVNfUEFUSC9zZXJ2ZXIxLW5vc3BhY2UuY3J0LCREQVRBX0ZJTEVTX1BBVEgvc2VydmVyMS5rZXksLSwtLC0iIFwKICAgICAgICAgICAgICIkUF9DTEkgc2VydmVyX25hbWU9bm9uZXN1Y2guZXhhbXBsZSBkdGxzPTEiIFwKICAgICAgICAgICAgIDEgXAogICAgICAgICAgICAgLXMgInBhcnNlIFNlcnZlck5hbWUgZXh0ZW5zaW9uIiBcCkBAIC02NjMwLDggKzY2MzIsOCBAQAogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgTUJFRFRMU19TU0xfUFJPVE9fVExTMV8yCiBydW5fdGVzdCAgICAiU05JOiBEVExTLCBjbGllbnQgYXV0aCBubyBvdmVycmlkZTogb3B0aW9uYWwiIFwKICAgICAgICAgICAgICIkUF9TUlYgZGVidWdfbGV2ZWw9MyBhdXRoX21vZGU9b3B0aW9uYWwgZHRscz0xIFwKLSAgICAgICAgICAgICBjcnRfZmlsZT1kYXRhX2ZpbGVzL3NlcnZlcjUuY3J0IGtleV9maWxlPWRhdGFfZmlsZXMvc2VydmVyNS5rZXkgXAotICAgICAgICAgICAgIHNuaT1sb2NhbGhvc3QsZGF0YV9maWxlcy9zZXJ2ZXIyLmNydCxkYXRhX2ZpbGVzL3NlcnZlcjIua2V5LC0sLSwtIiBcCisgICAgICAgICAgICAgY3J0X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9zZXJ2ZXI1LmNydCBrZXlfZmlsZT0kREFUQV9GSUxFU19QQVRIL3NlcnZlcjUua2V5IFwKKyAgICAgICAgICAgICBzbmk9bG9jYWxob3N0LCREQVRBX0ZJTEVTX1BBVEgvc2VydmVyMi5jcnQsJERBVEFfRklMRVNfUEFUSC9zZXJ2ZXIyLmtleSwtLC0sLSIgXAogICAgICAgICAgICAgIiRQX0NMSSBkZWJ1Z19sZXZlbD0zIHNlcnZlcl9uYW1lPWxvY2FsaG9zdCBkdGxzPTEiIFwKICAgICAgICAgICAgIDAgXAogICAgICAgICAgICAgLVMgInNraXAgd3JpdGUgY2VydGlmaWNhdGUgcmVxdWVzdCIgXApAQCAtNjY0NCw4ICs2NjQ2LDggQEAKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIE1CRURUTFNfU1NMX1BST1RPX1RMUzFfMgogcnVuX3Rlc3QgICAgIlNOSTogRFRMUywgY2xpZW50IGF1dGggb3ZlcnJpZGU6IG5vbmUgLT4gb3B0aW9uYWwiIFwKICAgICAgICAgICAgICIkUF9TUlYgZGVidWdfbGV2ZWw9MyBhdXRoX21vZGU9bm9uZSBkdGxzPTEgXAotICAgICAgICAgICAgIGNydF9maWxlPWRhdGFfZmlsZXMvc2VydmVyNS5jcnQga2V5X2ZpbGU9ZGF0YV9maWxlcy9zZXJ2ZXI1LmtleSBcCi0gICAgICAgICAgICAgc25pPWxvY2FsaG9zdCxkYXRhX2ZpbGVzL3NlcnZlcjIuY3J0LGRhdGFfZmlsZXMvc2VydmVyMi5rZXksLSwtLG9wdGlvbmFsIiBcCisgICAgICAgICAgICAgY3J0X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9zZXJ2ZXI1LmNydCBrZXlfZmlsZT0kREFUQV9GSUxFU19QQVRIL3NlcnZlcjUua2V5IFwKKyAgICAgICAgICAgICBzbmk9bG9jYWxob3N0LCREQVRBX0ZJTEVTX1BBVEgvc2VydmVyMi5jcnQsJERBVEFfRklMRVNfUEFUSC9zZXJ2ZXIyLmtleSwtLC0sb3B0aW9uYWwiIFwKICAgICAgICAgICAgICIkUF9DTEkgZGVidWdfbGV2ZWw9MyBzZXJ2ZXJfbmFtZT1sb2NhbGhvc3QgZHRscz0xIiBcCiAgICAgICAgICAgICAwIFwKICAgICAgICAgICAgIC1TICJza2lwIHdyaXRlIGNlcnRpZmljYXRlIHJlcXVlc3QiIFwKQEAgLTY2NTgsOCArNjY2MCw4IEBACiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBNQkVEVExTX1NTTF9QUk9UT19UTFMxXzIKIHJ1bl90ZXN0ICAgICJTTkk6IERUTFMsIGNsaWVudCBhdXRoIG92ZXJyaWRlOiBvcHRpb25hbCAtPiBub25lIiBcCiAgICAgICAgICAgICAiJFBfU1JWIGRlYnVnX2xldmVsPTMgYXV0aF9tb2RlPW9wdGlvbmFsIGR0bHM9MSBcCi0gICAgICAgICAgICAgY3J0X2ZpbGU9ZGF0YV9maWxlcy9zZXJ2ZXI1LmNydCBrZXlfZmlsZT1kYXRhX2ZpbGVzL3NlcnZlcjUua2V5IFwKLSAgICAgICAgICAgICBzbmk9bG9jYWxob3N0LGRhdGFfZmlsZXMvc2VydmVyMi5jcnQsZGF0YV9maWxlcy9zZXJ2ZXIyLmtleSwtLC0sbm9uZSIgXAorICAgICAgICAgICAgIGNydF9maWxlPSREQVRBX0ZJTEVTX1BBVEgvc2VydmVyNS5jcnQga2V5X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9zZXJ2ZXI1LmtleSBcCisgICAgICAgICAgICAgc25pPWxvY2FsaG9zdCwkREFUQV9GSUxFU19QQVRIL3NlcnZlcjIuY3J0LCREQVRBX0ZJTEVTX1BBVEgvc2VydmVyMi5rZXksLSwtLG5vbmUiIFwKICAgICAgICAgICAgICIkUF9DTEkgZGVidWdfbGV2ZWw9MyBzZXJ2ZXJfbmFtZT1sb2NhbGhvc3QgZHRscz0xIiBcCiAgICAgICAgICAgICAwIFwKICAgICAgICAgICAgIC1zICJza2lwIHdyaXRlIGNlcnRpZmljYXRlIHJlcXVlc3QiIFwKQEAgLTY2NzIsMTEgKzY2NzQsMTEgQEAKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIE1CRURUTFNfU1NMX1BST1RPX1RMUzFfMgogcnVuX3Rlc3QgICAgIlNOSTogRFRMUywgQ0Egbm8gb3ZlcnJpZGUiIFwKICAgICAgICAgICAgICIkUF9TUlYgZGVidWdfbGV2ZWw9MyBhdXRoX21vZGU9b3B0aW9uYWwgZHRscz0xIFwKLSAgICAgICAgICAgICBjcnRfZmlsZT1kYXRhX2ZpbGVzL3NlcnZlcjUuY3J0IGtleV9maWxlPWRhdGFfZmlsZXMvc2VydmVyNS5rZXkgXAotICAgICAgICAgICAgIGNhX2ZpbGU9ZGF0YV9maWxlcy90ZXN0LWNhLmNydCBcCi0gICAgICAgICAgICAgc25pPWxvY2FsaG9zdCxkYXRhX2ZpbGVzL3NlcnZlcjIuY3J0LGRhdGFfZmlsZXMvc2VydmVyMi5rZXksLSwtLHJlcXVpcmVkIiBcCisgICAgICAgICAgICAgY3J0X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9zZXJ2ZXI1LmNydCBrZXlfZmlsZT0kREFUQV9GSUxFU19QQVRIL3NlcnZlcjUua2V5IFwKKyAgICAgICAgICAgICBjYV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvdGVzdC1jYS5jcnQgXAorICAgICAgICAgICAgIHNuaT1sb2NhbGhvc3QsJERBVEFfRklMRVNfUEFUSC9zZXJ2ZXIyLmNydCwkREFUQV9GSUxFU19QQVRIL3NlcnZlcjIua2V5LC0sLSxyZXF1aXJlZCIgXAogICAgICAgICAgICAgIiRQX0NMSSBkZWJ1Z19sZXZlbD0zIHNlcnZlcl9uYW1lPWxvY2FsaG9zdCBkdGxzPTEgXAotICAgICAgICAgICAgIGNydF9maWxlPWRhdGFfZmlsZXMvc2VydmVyNi5jcnQga2V5X2ZpbGU9ZGF0YV9maWxlcy9zZXJ2ZXI2LmtleSIgXAorICAgICAgICAgICAgIGNydF9maWxlPSREQVRBX0ZJTEVTX1BBVEgvc2VydmVyNi5jcnQga2V5X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9zZXJ2ZXI2LmtleSIgXAogICAgICAgICAgICAgMSBcCiAgICAgICAgICAgICAtUyAic2tpcCB3cml0ZSBjZXJ0aWZpY2F0ZSByZXF1ZXN0IiBcCiAgICAgICAgICAgICAtQyAic2tpcCBwYXJzZSBjZXJ0aWZpY2F0ZSByZXF1ZXN0IiBcCkBAIC02NjkxLDExICs2NjkzLDExIEBACiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBNQkVEVExTX1NTTF9QUk9UT19UTFMxXzIKIHJ1bl90ZXN0ICAgICJTTkk6IERUTFMsIENBIG92ZXJyaWRlIiBcCiAgICAgICAgICAgICAiJFBfU1JWIGRlYnVnX2xldmVsPTMgYXV0aF9tb2RlPW9wdGlvbmFsIGR0bHM9MSBcCi0gICAgICAgICAgICAgY3J0X2ZpbGU9ZGF0YV9maWxlcy9zZXJ2ZXI1LmNydCBrZXlfZmlsZT1kYXRhX2ZpbGVzL3NlcnZlcjUua2V5IFwKLSAgICAgICAgICAgICBjYV9maWxlPWRhdGFfZmlsZXMvdGVzdC1jYS5jcnQgXAotICAgICAgICAgICAgIHNuaT1sb2NhbGhvc3QsZGF0YV9maWxlcy9zZXJ2ZXIyLmNydCxkYXRhX2ZpbGVzL3NlcnZlcjIua2V5LGRhdGFfZmlsZXMvdGVzdC1jYTIuY3J0LC0scmVxdWlyZWQiIFwKKyAgICAgICAgICAgICBjcnRfZmlsZT0kREFUQV9GSUxFU19QQVRIL3NlcnZlcjUuY3J0IGtleV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvc2VydmVyNS5rZXkgXAorICAgICAgICAgICAgIGNhX2ZpbGU9JERBVEFfRklMRVNfUEFUSC90ZXN0LWNhLmNydCBcCisgICAgICAgICAgICAgc25pPWxvY2FsaG9zdCwkREFUQV9GSUxFU19QQVRIL3NlcnZlcjIuY3J0LCREQVRBX0ZJTEVTX1BBVEgvc2VydmVyMi5rZXksJERBVEFfRklMRVNfUEFUSC90ZXN0LWNhMi5jcnQsLSxyZXF1aXJlZCIgXAogICAgICAgICAgICAgIiRQX0NMSSBkZWJ1Z19sZXZlbD0zIHNlcnZlcl9uYW1lPWxvY2FsaG9zdCBkdGxzPTEgXAotICAgICAgICAgICAgIGNydF9maWxlPWRhdGFfZmlsZXMvc2VydmVyNi5jcnQga2V5X2ZpbGU9ZGF0YV9maWxlcy9zZXJ2ZXI2LmtleSIgXAorICAgICAgICAgICAgIGNydF9maWxlPSREQVRBX0ZJTEVTX1BBVEgvc2VydmVyNi5jcnQga2V5X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9zZXJ2ZXI2LmtleSIgXAogICAgICAgICAgICAgMCBcCiAgICAgICAgICAgICAtUyAic2tpcCB3cml0ZSBjZXJ0aWZpY2F0ZSByZXF1ZXN0IiBcCiAgICAgICAgICAgICAtQyAic2tpcCBwYXJzZSBjZXJ0aWZpY2F0ZSByZXF1ZXN0IiBcCkBAIC02NzEwLDExICs2NzEyLDExIEBACiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBNQkVEVExTX1NTTF9QUk9UT19UTFMxXzIKIHJ1bl90ZXN0ICAgICJTTkk6IERUTFMsIENBIG92ZXJyaWRlIHdpdGggQ1JMIiBcCiAgICAgICAgICAgICAiJFBfU1JWIGRlYnVnX2xldmVsPTMgYXV0aF9tb2RlPW9wdGlvbmFsIFwKLSAgICAgICAgICAgICBjcnRfZmlsZT1kYXRhX2ZpbGVzL3NlcnZlcjUuY3J0IGtleV9maWxlPWRhdGFfZmlsZXMvc2VydmVyNS5rZXkgZHRscz0xIFwKLSAgICAgICAgICAgICBjYV9maWxlPWRhdGFfZmlsZXMvdGVzdC1jYS5jcnQgXAotICAgICAgICAgICAgIHNuaT1sb2NhbGhvc3QsZGF0YV9maWxlcy9zZXJ2ZXIyLmNydCxkYXRhX2ZpbGVzL3NlcnZlcjIua2V5LGRhdGFfZmlsZXMvdGVzdC1jYTIuY3J0LGRhdGFfZmlsZXMvY3JsLWVjLXNoYTI1Ni5wZW0scmVxdWlyZWQiIFwKKyAgICAgICAgICAgICBjcnRfZmlsZT0kREFUQV9GSUxFU19QQVRIL3NlcnZlcjUuY3J0IGtleV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvc2VydmVyNS5rZXkgZHRscz0xIFwKKyAgICAgICAgICAgICBjYV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvdGVzdC1jYS5jcnQgXAorICAgICAgICAgICAgIHNuaT1sb2NhbGhvc3QsJERBVEFfRklMRVNfUEFUSC9zZXJ2ZXIyLmNydCwkREFUQV9GSUxFU19QQVRIL3NlcnZlcjIua2V5LCREQVRBX0ZJTEVTX1BBVEgvdGVzdC1jYTIuY3J0LCREQVRBX0ZJTEVTX1BBVEgvY3JsLWVjLXNoYTI1Ni5wZW0scmVxdWlyZWQiIFwKICAgICAgICAgICAgICIkUF9DTEkgZGVidWdfbGV2ZWw9MyBzZXJ2ZXJfbmFtZT1sb2NhbGhvc3QgZHRscz0xIFwKLSAgICAgICAgICAgICBjcnRfZmlsZT1kYXRhX2ZpbGVzL3NlcnZlcjYuY3J0IGtleV9maWxlPWRhdGFfZmlsZXMvc2VydmVyNi5rZXkiIFwKKyAgICAgICAgICAgICBjcnRfZmlsZT0kREFUQV9GSUxFU19QQVRIL3NlcnZlcjYuY3J0IGtleV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvc2VydmVyNi5rZXkiIFwKICAgICAgICAgICAgIDEgXAogICAgICAgICAgICAgLVMgInNraXAgd3JpdGUgY2VydGlmaWNhdGUgcmVxdWVzdCIgXAogICAgICAgICAgICAgLUMgInNraXAgcGFyc2UgY2VydGlmaWNhdGUgcmVxdWVzdCIgXApAQCAtNzY0MCw0NSArNzY0Miw0NSBAQAogIyBzZXJ2ZXItc2lkZSBjZXJ0aWZpY2F0ZS9zdWl0ZSBzZWxlY3Rpb24KIAogcnVuX3Rlc3QgICAgImtleVVzYWdlIHNydjogUlNBLCBkaWdpdGFsU2lnbmF0dXJlIC0+IChFQylESEUtUlNBIiBcCi0gICAgICAgICAgICAiJFBfU1JWIGZvcmNlX3ZlcnNpb249dGxzMTIga2V5X2ZpbGU9ZGF0YV9maWxlcy9zZXJ2ZXIyLmtleSBcCi0gICAgICAgICAgICAgY3J0X2ZpbGU9ZGF0YV9maWxlcy9zZXJ2ZXIyLmt1LWRzLmNydCIgXAorICAgICAgICAgICAgIiRQX1NSViBmb3JjZV92ZXJzaW9uPXRsczEyIGtleV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvc2VydmVyMi5rZXkgXAorICAgICAgICAgICAgIGNydF9maWxlPSREQVRBX0ZJTEVTX1BBVEgvc2VydmVyMi5rdS1kcy5jcnQiIFwKICAgICAgICAgICAgICIkUF9DTEkiIFwKICAgICAgICAgICAgIDAgXAogICAgICAgICAgICAgLWMgIkNpcGhlcnN1aXRlIGlzIFRMUy1bRUNdKkRIRS1SU0EtV0lUSC0iCiAKIHJ1bl90ZXN0ICAgICJrZXlVc2FnZSBzcnY6IFJTQSwga2V5RW5jaXBoZXJtZW50IC0+IFJTQSIgXAotICAgICAgICAgICAgIiRQX1NSViBmb3JjZV92ZXJzaW9uPXRsczEyIGtleV9maWxlPWRhdGFfZmlsZXMvc2VydmVyMi5rZXkgXAotICAgICAgICAgICAgIGNydF9maWxlPWRhdGFfZmlsZXMvc2VydmVyMi5rdS1rZS5jcnQiIFwKKyAgICAgICAgICAgICIkUF9TUlYgZm9yY2VfdmVyc2lvbj10bHMxMiBrZXlfZmlsZT0kREFUQV9GSUxFU19QQVRIL3NlcnZlcjIua2V5IFwKKyAgICAgICAgICAgICBjcnRfZmlsZT0kREFUQV9GSUxFU19QQVRIL3NlcnZlcjIua3Uta2UuY3J0IiBcCiAgICAgICAgICAgICAiJFBfQ0xJIiBcCiAgICAgICAgICAgICAwIFwKICAgICAgICAgICAgIC1jICJDaXBoZXJzdWl0ZSBpcyBUTFMtUlNBLVdJVEgtIgogCiBydW5fdGVzdCAgICAia2V5VXNhZ2Ugc3J2OiBSU0EsIGtleUFncmVlbWVudCAtPiBmYWlsIiBcCi0gICAgICAgICAgICAiJFBfU1JWIGZvcmNlX3ZlcnNpb249dGxzMTIga2V5X2ZpbGU9ZGF0YV9maWxlcy9zZXJ2ZXIyLmtleSBcCi0gICAgICAgICAgICAgY3J0X2ZpbGU9ZGF0YV9maWxlcy9zZXJ2ZXIyLmt1LWthLmNydCIgXAorICAgICAgICAgICAgIiRQX1NSViBmb3JjZV92ZXJzaW9uPXRsczEyIGtleV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvc2VydmVyMi5rZXkgXAorICAgICAgICAgICAgIGNydF9maWxlPSREQVRBX0ZJTEVTX1BBVEgvc2VydmVyMi5rdS1rYS5jcnQiIFwKICAgICAgICAgICAgICIkUF9DTEkiIFwKICAgICAgICAgICAgIDEgXAogICAgICAgICAgICAgLUMgIkNpcGhlcnN1aXRlIGlzICIKIAogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgTUJFRFRMU19LRVlfRVhDSEFOR0VfRUNESEVfRUNEU0FfRU5BQkxFRAogcnVuX3Rlc3QgICAgImtleVVzYWdlIHNydjogRUNEU0EsIGRpZ2l0YWxTaWduYXR1cmUgLT4gRUNESEUtRUNEU0EiIFwKLSAgICAgICAgICAgICIkUF9TUlYgZm9yY2VfdmVyc2lvbj10bHMxMiBrZXlfZmlsZT1kYXRhX2ZpbGVzL3NlcnZlcjUua2V5IFwKLSAgICAgICAgICAgICBjcnRfZmlsZT1kYXRhX2ZpbGVzL3NlcnZlcjUua3UtZHMuY3J0IiBcCisgICAgICAgICAgICAiJFBfU1JWIGZvcmNlX3ZlcnNpb249dGxzMTIga2V5X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9zZXJ2ZXI1LmtleSBcCisgICAgICAgICAgICAgY3J0X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9zZXJ2ZXI1Lmt1LWRzLmNydCIgXAogICAgICAgICAgICAgIiRQX0NMSSIgXAogICAgICAgICAgICAgMCBcCiAgICAgICAgICAgICAtYyAiQ2lwaGVyc3VpdGUgaXMgVExTLUVDREhFLUVDRFNBLVdJVEgtIgogCiAKIHJ1bl90ZXN0ICAgICJrZXlVc2FnZSBzcnY6IEVDRFNBLCBrZXlBZ3JlZW1lbnQgLT4gRUNESC0iIFwKLSAgICAgICAgICAgICIkUF9TUlYgZm9yY2VfdmVyc2lvbj10bHMxMiBrZXlfZmlsZT1kYXRhX2ZpbGVzL3NlcnZlcjUua2V5IFwKLSAgICAgICAgICAgICBjcnRfZmlsZT1kYXRhX2ZpbGVzL3NlcnZlcjUua3Uta2EuY3J0IiBcCisgICAgICAgICAgICAiJFBfU1JWIGZvcmNlX3ZlcnNpb249dGxzMTIga2V5X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9zZXJ2ZXI1LmtleSBcCisgICAgICAgICAgICAgY3J0X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9zZXJ2ZXI1Lmt1LWthLmNydCIgXAogICAgICAgICAgICAgIiRQX0NMSSIgXAogICAgICAgICAgICAgMCBcCiAgICAgICAgICAgICAtYyAiQ2lwaGVyc3VpdGUgaXMgVExTLUVDREgtIgogCiBydW5fdGVzdCAgICAia2V5VXNhZ2Ugc3J2OiBFQ0RTQSwga2V5RW5jaXBoZXJtZW50IC0+IGZhaWwiIFwKLSAgICAgICAgICAgICIkUF9TUlYgZm9yY2VfdmVyc2lvbj10bHMxMiBrZXlfZmlsZT1kYXRhX2ZpbGVzL3NlcnZlcjUua2V5IFwKLSAgICAgICAgICAgICBjcnRfZmlsZT1kYXRhX2ZpbGVzL3NlcnZlcjUua3Uta2UuY3J0IiBcCisgICAgICAgICAgICAiJFBfU1JWIGZvcmNlX3ZlcnNpb249dGxzMTIga2V5X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9zZXJ2ZXI1LmtleSBcCisgICAgICAgICAgICAgY3J0X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9zZXJ2ZXI1Lmt1LWtlLmNydCIgXAogICAgICAgICAgICAgIiRQX0NMSSIgXAogICAgICAgICAgICAgMSBcCiAgICAgICAgICAgICAtQyAiQ2lwaGVyc3VpdGUgaXMgIgpAQCAtNzY4Nyw4ICs3Njg5LDggQEAKICMgY2xpZW50LXNpZGUgY2hlY2tpbmcgb2Ygc2VydmVyIGNlcnQKIAogcnVuX3Rlc3QgICAgImtleVVzYWdlIGNsaTogRGlnaXRhbFNpZ25hdHVyZStLZXlFbmNpcGhlcm1lbnQsIFJTQTogT0siIFwKLSAgICAgICAgICAgICIkT19TUlYgLXRsczFfMiAta2V5IGRhdGFfZmlsZXMvc2VydmVyMi5rZXkgXAotICAgICAgICAgICAgIC1jZXJ0IGRhdGFfZmlsZXMvc2VydmVyMi5rdS1kc19rZS5jcnQiIFwKKyAgICAgICAgICAgICIkT19TUlYgLXRsczFfMiAta2V5ICREQVRBX0ZJTEVTX1BBVEgvc2VydmVyMi5rZXkgXAorICAgICAgICAgICAgIC1jZXJ0ICREQVRBX0ZJTEVTX1BBVEgvc2VydmVyMi5rdS1kc19rZS5jcnQiIFwKICAgICAgICAgICAgICIkUF9DTEkgZGVidWdfbGV2ZWw9MSBcCiAgICAgICAgICAgICAgZm9yY2VfY2lwaGVyc3VpdGU9VExTLVJTQS1XSVRILUFFUy0xMjgtQ0JDLVNIQSIgXAogICAgICAgICAgICAgMCBcCkBAIC03Njk3LDggKzc2OTksOCBAQAogICAgICAgICAgICAgLWMgIkNpcGhlcnN1aXRlIGlzIFRMUy0iCiAKIHJ1bl90ZXN0ICAgICJrZXlVc2FnZSBjbGk6IERpZ2l0YWxTaWduYXR1cmUrS2V5RW5jaXBoZXJtZW50LCBESEUtUlNBOiBPSyIgXAotICAgICAgICAgICAgIiRPX1NSViAtdGxzMV8yIC1rZXkgZGF0YV9maWxlcy9zZXJ2ZXIyLmtleSBcCi0gICAgICAgICAgICAgLWNlcnQgZGF0YV9maWxlcy9zZXJ2ZXIyLmt1LWRzX2tlLmNydCIgXAorICAgICAgICAgICAgIiRPX1NSViAtdGxzMV8yIC1rZXkgJERBVEFfRklMRVNfUEFUSC9zZXJ2ZXIyLmtleSBcCisgICAgICAgICAgICAgLWNlcnQgJERBVEFfRklMRVNfUEFUSC9zZXJ2ZXIyLmt1LWRzX2tlLmNydCIgXAogICAgICAgICAgICAgIiRQX0NMSSBkZWJ1Z19sZXZlbD0xIFwKICAgICAgICAgICAgICBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMtREhFLVJTQS1XSVRILUFFUy0xMjgtQ0JDLVNIQSIgXAogICAgICAgICAgICAgMCBcCkBAIC03NzA3LDggKzc3MDksOCBAQAogICAgICAgICAgICAgLWMgIkNpcGhlcnN1aXRlIGlzIFRMUy0iCiAKIHJ1bl90ZXN0ICAgICJrZXlVc2FnZSBjbGk6IEtleUVuY2lwaGVybWVudCwgUlNBOiBPSyIgXAotICAgICAgICAgICAgIiRPX1NSViAtdGxzMV8yIC1rZXkgZGF0YV9maWxlcy9zZXJ2ZXIyLmtleSBcCi0gICAgICAgICAgICAgLWNlcnQgZGF0YV9maWxlcy9zZXJ2ZXIyLmt1LWtlLmNydCIgXAorICAgICAgICAgICAgIiRPX1NSViAtdGxzMV8yIC1rZXkgJERBVEFfRklMRVNfUEFUSC9zZXJ2ZXIyLmtleSBcCisgICAgICAgICAgICAgLWNlcnQgJERBVEFfRklMRVNfUEFUSC9zZXJ2ZXIyLmt1LWtlLmNydCIgXAogICAgICAgICAgICAgIiRQX0NMSSBkZWJ1Z19sZXZlbD0xIFwKICAgICAgICAgICAgICBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMtUlNBLVdJVEgtQUVTLTEyOC1DQkMtU0hBIiBcCiAgICAgICAgICAgICAwIFwKQEAgLTc3MTcsOCArNzcxOSw4IEBACiAgICAgICAgICAgICAtYyAiQ2lwaGVyc3VpdGUgaXMgVExTLSIKIAogcnVuX3Rlc3QgICAgImtleVVzYWdlIGNsaTogS2V5RW5jaXBoZXJtZW50LCBESEUtUlNBOiBmYWlsIiBcCi0gICAgICAgICAgICAiJE9fU1JWIC10bHMxXzIgLWtleSBkYXRhX2ZpbGVzL3NlcnZlcjIua2V5IFwKLSAgICAgICAgICAgICAtY2VydCBkYXRhX2ZpbGVzL3NlcnZlcjIua3Uta2UuY3J0IiBcCisgICAgICAgICAgICAiJE9fU1JWIC10bHMxXzIgLWtleSAkREFUQV9GSUxFU19QQVRIL3NlcnZlcjIua2V5IFwKKyAgICAgICAgICAgICAtY2VydCAkREFUQV9GSUxFU19QQVRIL3NlcnZlcjIua3Uta2UuY3J0IiBcCiAgICAgICAgICAgICAiJFBfQ0xJIGRlYnVnX2xldmVsPTEgXAogICAgICAgICAgICAgIGZvcmNlX2NpcGhlcnN1aXRlPVRMUy1ESEUtUlNBLVdJVEgtQUVTLTEyOC1DQkMtU0hBIiBcCiAgICAgICAgICAgICAxIFwKQEAgLTc3MjcsOCArNzcyOSw4IEBACiAgICAgICAgICAgICAtQyAiQ2lwaGVyc3VpdGUgaXMgVExTLSIKIAogcnVuX3Rlc3QgICAgImtleVVzYWdlIGNsaTogS2V5RW5jaXBoZXJtZW50LCBESEUtUlNBOiBmYWlsLCBzb2Z0IiBcCi0gICAgICAgICAgICAiJE9fU1JWIC10bHMxXzIgLWtleSBkYXRhX2ZpbGVzL3NlcnZlcjIua2V5IFwKLSAgICAgICAgICAgICAtY2VydCBkYXRhX2ZpbGVzL3NlcnZlcjIua3Uta2UuY3J0IiBcCisgICAgICAgICAgICAiJE9fU1JWIC10bHMxXzIgLWtleSAkREFUQV9GSUxFU19QQVRIL3NlcnZlcjIua2V5IFwKKyAgICAgICAgICAgICAtY2VydCAkREFUQV9GSUxFU19QQVRIL3NlcnZlcjIua3Uta2UuY3J0IiBcCiAgICAgICAgICAgICAiJFBfQ0xJIGRlYnVnX2xldmVsPTEgYXV0aF9tb2RlPW9wdGlvbmFsIFwKICAgICAgICAgICAgICBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMtREhFLVJTQS1XSVRILUFFUy0xMjgtQ0JDLVNIQSIgXAogICAgICAgICAgICAgMCBcCkBAIC03NzM4LDggKzc3NDAsOCBAQAogICAgICAgICAgICAgLWMgIiEgVXNhZ2UgZG9lcyBub3QgbWF0Y2ggdGhlIGtleVVzYWdlIGV4dGVuc2lvbiIKIAogcnVuX3Rlc3QgICAgImtleVVzYWdlIGNsaTogRGlnaXRhbFNpZ25hdHVyZSwgREhFLVJTQTogT0siIFwKLSAgICAgICAgICAgICIkT19TUlYgLXRsczFfMiAta2V5IGRhdGFfZmlsZXMvc2VydmVyMi5rZXkgXAotICAgICAgICAgICAgIC1jZXJ0IGRhdGFfZmlsZXMvc2VydmVyMi5rdS1kcy5jcnQiIFwKKyAgICAgICAgICAgICIkT19TUlYgLXRsczFfMiAta2V5ICREQVRBX0ZJTEVTX1BBVEgvc2VydmVyMi5rZXkgXAorICAgICAgICAgICAgIC1jZXJ0ICREQVRBX0ZJTEVTX1BBVEgvc2VydmVyMi5rdS1kcy5jcnQiIFwKICAgICAgICAgICAgICIkUF9DTEkgZGVidWdfbGV2ZWw9MSBcCiAgICAgICAgICAgICAgZm9yY2VfY2lwaGVyc3VpdGU9VExTLURIRS1SU0EtV0lUSC1BRVMtMTI4LUNCQy1TSEEiIFwKICAgICAgICAgICAgIDAgXApAQCAtNzc0OCw4ICs3NzUwLDggQEAKICAgICAgICAgICAgIC1jICJDaXBoZXJzdWl0ZSBpcyBUTFMtIgogCiBydW5fdGVzdCAgICAia2V5VXNhZ2UgY2xpOiBEaWdpdGFsU2lnbmF0dXJlLCBSU0E6IGZhaWwiIFwKLSAgICAgICAgICAgICIkT19TUlYgLXRsczFfMiAta2V5IGRhdGFfZmlsZXMvc2VydmVyMi5rZXkgXAotICAgICAgICAgICAgIC1jZXJ0IGRhdGFfZmlsZXMvc2VydmVyMi5rdS1kcy5jcnQiIFwKKyAgICAgICAgICAgICIkT19TUlYgLXRsczFfMiAta2V5ICREQVRBX0ZJTEVTX1BBVEgvc2VydmVyMi5rZXkgXAorICAgICAgICAgICAgIC1jZXJ0ICREQVRBX0ZJTEVTX1BBVEgvc2VydmVyMi5rdS1kcy5jcnQiIFwKICAgICAgICAgICAgICIkUF9DTEkgZGVidWdfbGV2ZWw9MSBcCiAgICAgICAgICAgICAgZm9yY2VfY2lwaGVyc3VpdGU9VExTLVJTQS1XSVRILUFFUy0xMjgtQ0JDLVNIQSIgXAogICAgICAgICAgICAgMSBcCkBAIC03NzU4LDggKzc3NjAsOCBAQAogICAgICAgICAgICAgLUMgIkNpcGhlcnN1aXRlIGlzIFRMUy0iCiAKIHJ1bl90ZXN0ICAgICJrZXlVc2FnZSBjbGk6IERpZ2l0YWxTaWduYXR1cmUsIFJTQTogZmFpbCwgc29mdCIgXAotICAgICAgICAgICAgIiRPX1NSViAtdGxzMV8yIC1rZXkgZGF0YV9maWxlcy9zZXJ2ZXIyLmtleSBcCi0gICAgICAgICAgICAgLWNlcnQgZGF0YV9maWxlcy9zZXJ2ZXIyLmt1LWRzLmNydCIgXAorICAgICAgICAgICAgIiRPX1NSViAtdGxzMV8yIC1rZXkgJERBVEFfRklMRVNfUEFUSC9zZXJ2ZXIyLmtleSBcCisgICAgICAgICAgICAgLWNlcnQgJERBVEFfRklMRVNfUEFUSC9zZXJ2ZXIyLmt1LWRzLmNydCIgXAogICAgICAgICAgICAgIiRQX0NMSSBkZWJ1Z19sZXZlbD0xIGF1dGhfbW9kZT1vcHRpb25hbCBcCiAgICAgICAgICAgICAgZm9yY2VfY2lwaGVyc3VpdGU9VExTLVJTQS1XSVRILUFFUy0xMjgtQ0JDLVNIQSIgXAogICAgICAgICAgICAgMCBcCkBAIC03NzcyLDggKzc3NzQsOCBAQAogcmVxdWlyZXNfYWxsX2NvbmZpZ3NfZW5hYmxlZCBNQkVEVExTX1NTTF9UTFMxXzNfQ09NUEFUSUJJTElUWV9NT0RFIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTUJFRFRMU19TU0xfVExTMV8zX0tFWV9FWENIQU5HRV9NT0RFX0VQSEVNRVJBTF9FTkFCTEVECiBydW5fdGVzdCAgICAia2V5VXNhZ2UgY2xpIDEuMzogRGlnaXRhbFNpZ25hdHVyZStLZXlFbmNpcGhlcm1lbnQsIFJTQTogT0siIFwKLSAgICAgICAgICAgICIkT19ORVhUX1NSVl9OT19DRVJUIC10bHMxXzMgLW51bV90aWNrZXRzPTAgLWtleSBkYXRhX2ZpbGVzL3NlcnZlcjIua2V5IFwKLSAgICAgICAgICAgICAtY2VydCBkYXRhX2ZpbGVzL3NlcnZlcjItc2hhMjU2Lmt1LWRzX2tlLmNydCIgXAorICAgICAgICAgICAgIiRPX05FWFRfU1JWX05PX0NFUlQgLXRsczFfMyAtbnVtX3RpY2tldHM9MCAta2V5ICREQVRBX0ZJTEVTX1BBVEgvc2VydmVyMi5rZXkgXAorICAgICAgICAgICAgIC1jZXJ0ICREQVRBX0ZJTEVTX1BBVEgvc2VydmVyMi1zaGEyNTYua3UtZHNfa2UuY3J0IiBcCiAgICAgICAgICAgICAiJFBfQ0xJIGRlYnVnX2xldmVsPTMiIFwKICAgICAgICAgICAgIDAgXAogICAgICAgICAgICAgLUMgImJhZCBjZXJ0aWZpY2F0ZSAodXNhZ2UgZXh0ZW5zaW9ucykiIFwKQEAgLTc3ODQsOCArNzc4Niw4IEBACiByZXF1aXJlc19hbGxfY29uZmlnc19lbmFibGVkIE1CRURUTFNfU1NMX1RMUzFfM19DT01QQVRJQklMSVRZX01PREUgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNQkVEVExTX1NTTF9UTFMxXzNfS0VZX0VYQ0hBTkdFX01PREVfRVBIRU1FUkFMX0VOQUJMRUQKIHJ1bl90ZXN0ICAgICJrZXlVc2FnZSBjbGkgMS4zOiBLZXlFbmNpcGhlcm1lbnQsIFJTQTogZmFpbCIgXAotICAgICAgICAgICAgIiRPX05FWFRfU1JWX05PX0NFUlQgLXRsczFfMyAtbnVtX3RpY2tldHM9MCAta2V5IGRhdGFfZmlsZXMvc2VydmVyMi5rZXkgXAotICAgICAgICAgICAgIC1jZXJ0IGRhdGFfZmlsZXMvc2VydmVyMi1zaGEyNTYua3Uta2UuY3J0IiBcCisgICAgICAgICAgICAiJE9fTkVYVF9TUlZfTk9fQ0VSVCAtdGxzMV8zIC1udW1fdGlja2V0cz0wIC1rZXkgJERBVEFfRklMRVNfUEFUSC9zZXJ2ZXIyLmtleSBcCisgICAgICAgICAgICAgLWNlcnQgJERBVEFfRklMRVNfUEFUSC9zZXJ2ZXIyLXNoYTI1Ni5rdS1rZS5jcnQiIFwKICAgICAgICAgICAgICIkUF9DTEkgZGVidWdfbGV2ZWw9MSIgXAogICAgICAgICAgICAgMSBcCiAgICAgICAgICAgICAtYyAiYmFkIGNlcnRpZmljYXRlICh1c2FnZSBleHRlbnNpb25zKSIgXApAQCAtNzc5Niw4ICs3Nzk4LDggQEAKIHJlcXVpcmVzX2FsbF9jb25maWdzX2VuYWJsZWQgTUJFRFRMU19TU0xfVExTMV8zX0NPTVBBVElCSUxJVFlfTU9ERSBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1CRURUTFNfU1NMX1RMUzFfM19LRVlfRVhDSEFOR0VfTU9ERV9FUEhFTUVSQUxfRU5BQkxFRAogcnVuX3Rlc3QgICAgImtleVVzYWdlIGNsaSAxLjM6IEtleUFncmVlbWVudCwgUlNBOiBmYWlsIiBcCi0gICAgICAgICAgICAiJE9fTkVYVF9TUlZfTk9fQ0VSVCAtdGxzMV8zIC1udW1fdGlja2V0cz0wIC1rZXkgZGF0YV9maWxlcy9zZXJ2ZXIyLmtleSBcCi0gICAgICAgICAgICAgLWNlcnQgZGF0YV9maWxlcy9zZXJ2ZXIyLXNoYTI1Ni5rdS1rYS5jcnQiIFwKKyAgICAgICAgICAgICIkT19ORVhUX1NSVl9OT19DRVJUIC10bHMxXzMgLW51bV90aWNrZXRzPTAgLWtleSAkREFUQV9GSUxFU19QQVRIL3NlcnZlcjIua2V5IFwKKyAgICAgICAgICAgICAtY2VydCAkREFUQV9GSUxFU19QQVRIL3NlcnZlcjItc2hhMjU2Lmt1LWthLmNydCIgXAogICAgICAgICAgICAgIiRQX0NMSSBkZWJ1Z19sZXZlbD0xIiBcCiAgICAgICAgICAgICAxIFwKICAgICAgICAgICAgIC1jICJiYWQgY2VydGlmaWNhdGUgKHVzYWdlIGV4dGVuc2lvbnMpIiBcCkBAIC03ODA4LDggKzc4MTAsOCBAQAogcmVxdWlyZXNfYWxsX2NvbmZpZ3NfZW5hYmxlZCBNQkVEVExTX1NTTF9UTFMxXzNfQ09NUEFUSUJJTElUWV9NT0RFIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTUJFRFRMU19TU0xfVExTMV8zX0tFWV9FWENIQU5HRV9NT0RFX0VQSEVNRVJBTF9FTkFCTEVECiBydW5fdGVzdCAgICAia2V5VXNhZ2UgY2xpIDEuMzogRGlnaXRhbFNpZ25hdHVyZSwgRUNEU0E6IE9LIiBcCi0gICAgICAgICAgICAiJE9fTkVYVF9TUlZfTk9fQ0VSVCAtdGxzMV8zIC1udW1fdGlja2V0cz0wIC1rZXkgZGF0YV9maWxlcy9zZXJ2ZXI1LmtleSBcCi0gICAgICAgICAgICAgLWNlcnQgZGF0YV9maWxlcy9zZXJ2ZXI1Lmt1LWRzLmNydCIgXAorICAgICAgICAgICAgIiRPX05FWFRfU1JWX05PX0NFUlQgLXRsczFfMyAtbnVtX3RpY2tldHM9MCAta2V5ICREQVRBX0ZJTEVTX1BBVEgvc2VydmVyNS5rZXkgXAorICAgICAgICAgICAgIC1jZXJ0ICREQVRBX0ZJTEVTX1BBVEgvc2VydmVyNS5rdS1kcy5jcnQiIFwKICAgICAgICAgICAgICIkUF9DTEkgZGVidWdfbGV2ZWw9MyIgXAogICAgICAgICAgICAgMCBcCiAgICAgICAgICAgICAtQyAiYmFkIGNlcnRpZmljYXRlICh1c2FnZSBleHRlbnNpb25zKSIgXApAQCAtNzgyMCw4ICs3ODIyLDggQEAKIHJlcXVpcmVzX2FsbF9jb25maWdzX2VuYWJsZWQgTUJFRFRMU19TU0xfVExTMV8zX0NPTVBBVElCSUxJVFlfTU9ERSBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1CRURUTFNfU1NMX1RMUzFfM19LRVlfRVhDSEFOR0VfTU9ERV9FUEhFTUVSQUxfRU5BQkxFRAogcnVuX3Rlc3QgICAgImtleVVzYWdlIGNsaSAxLjM6IEtleUVuY2lwaGVybWVudCwgRUNEU0E6IGZhaWwiIFwKLSAgICAgICAgICAgICIkT19ORVhUX1NSVl9OT19DRVJUIC10bHMxXzMgLW51bV90aWNrZXRzPTAgLWtleSBkYXRhX2ZpbGVzL3NlcnZlcjUua2V5IFwKLSAgICAgICAgICAgICAtY2VydCBkYXRhX2ZpbGVzL3NlcnZlcjUua3Uta2UuY3J0IiBcCisgICAgICAgICAgICAiJE9fTkVYVF9TUlZfTk9fQ0VSVCAtdGxzMV8zIC1udW1fdGlja2V0cz0wIC1rZXkgJERBVEFfRklMRVNfUEFUSC9zZXJ2ZXI1LmtleSBcCisgICAgICAgICAgICAgLWNlcnQgJERBVEFfRklMRVNfUEFUSC9zZXJ2ZXI1Lmt1LWtlLmNydCIgXAogICAgICAgICAgICAgIiRQX0NMSSBkZWJ1Z19sZXZlbD0xIiBcCiAgICAgICAgICAgICAxIFwKICAgICAgICAgICAgIC1jICJiYWQgY2VydGlmaWNhdGUgKHVzYWdlIGV4dGVuc2lvbnMpIiBcCkBAIC03ODMyLDggKzc4MzQsOCBAQAogcmVxdWlyZXNfYWxsX2NvbmZpZ3NfZW5hYmxlZCBNQkVEVExTX1NTTF9UTFMxXzNfQ09NUEFUSUJJTElUWV9NT0RFIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTUJFRFRMU19TU0xfVExTMV8zX0tFWV9FWENIQU5HRV9NT0RFX0VQSEVNRVJBTF9FTkFCTEVECiBydW5fdGVzdCAgICAia2V5VXNhZ2UgY2xpIDEuMzogS2V5QWdyZWVtZW50LCBFQ0RTQTogZmFpbCIgXAotICAgICAgICAgICAgIiRPX05FWFRfU1JWX05PX0NFUlQgLXRsczFfMyAtbnVtX3RpY2tldHM9MCAta2V5IGRhdGFfZmlsZXMvc2VydmVyNS5rZXkgXAotICAgICAgICAgICAgIC1jZXJ0IGRhdGFfZmlsZXMvc2VydmVyNS5rdS1rYS5jcnQiIFwKKyAgICAgICAgICAgICIkT19ORVhUX1NSVl9OT19DRVJUIC10bHMxXzMgLW51bV90aWNrZXRzPTAgLWtleSAkREFUQV9GSUxFU19QQVRIL3NlcnZlcjUua2V5IFwKKyAgICAgICAgICAgICAtY2VydCAkREFUQV9GSUxFU19QQVRIL3NlcnZlcjUua3Uta2EuY3J0IiBcCiAgICAgICAgICAgICAiJFBfQ0xJIGRlYnVnX2xldmVsPTEiIFwKICAgICAgICAgICAgIDEgXAogICAgICAgICAgICAgLWMgImJhZCBjZXJ0aWZpY2F0ZSAodXNhZ2UgZXh0ZW5zaW9ucykiIFwKQEAgLTc4NDYsOCArNzg0OCw4IEBACiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBNQkVEVExTX1NTTF9QUk9UT19UTFMxXzIKIHJ1bl90ZXN0ICAgICJrZXlVc2FnZSBjbGktYXV0aDogUlNBLCBEaWdpdGFsU2lnbmF0dXJlOiBPSyIgXAogICAgICAgICAgICAgIiRQX1NSViBkZWJ1Z19sZXZlbD0xIGF1dGhfbW9kZT1vcHRpb25hbCIgXAotICAgICAgICAgICAgIiRPX0NMSSAtdGxzMV8yIC1rZXkgZGF0YV9maWxlcy9zZXJ2ZXIyLmtleSBcCi0gICAgICAgICAgICAgLWNlcnQgZGF0YV9maWxlcy9zZXJ2ZXIyLmt1LWRzLmNydCIgXAorICAgICAgICAgICAgIiRPX0NMSSAtdGxzMV8yIC1rZXkgJERBVEFfRklMRVNfUEFUSC9zZXJ2ZXIyLmtleSBcCisgICAgICAgICAgICAgLWNlcnQgJERBVEFfRklMRVNfUEFUSC9zZXJ2ZXIyLmt1LWRzLmNydCIgXAogICAgICAgICAgICAgMCBcCiAgICAgICAgICAgICAtcyAiVmVyaWZ5aW5nIHBlZXIgWC41MDkgY2VydGlmaWNhdGUuLi4gb2siIFwKICAgICAgICAgICAgIC1TICJiYWQgY2VydGlmaWNhdGUgKHVzYWdlIGV4dGVuc2lvbnMpIiBcCkBAIC03ODU2LDggKzc4NTgsOCBAQAogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgTUJFRFRMU19TU0xfUFJPVE9fVExTMV8yCiBydW5fdGVzdCAgICAia2V5VXNhZ2UgY2xpLWF1dGg6IFJTQSwgS2V5RW5jaXBoZXJtZW50OiBmYWlsIChzb2Z0KSIgXAogICAgICAgICAgICAgIiRQX1NSViBkZWJ1Z19sZXZlbD0xIGF1dGhfbW9kZT1vcHRpb25hbCIgXAotICAgICAgICAgICAgIiRPX0NMSSAtdGxzMV8yIC1rZXkgZGF0YV9maWxlcy9zZXJ2ZXIyLmtleSBcCi0gICAgICAgICAgICAgLWNlcnQgZGF0YV9maWxlcy9zZXJ2ZXIyLmt1LWtlLmNydCIgXAorICAgICAgICAgICAgIiRPX0NMSSAtdGxzMV8yIC1rZXkgJERBVEFfRklMRVNfUEFUSC9zZXJ2ZXIyLmtleSBcCisgICAgICAgICAgICAgLWNlcnQgJERBVEFfRklMRVNfUEFUSC9zZXJ2ZXIyLmt1LWtlLmNydCIgXAogICAgICAgICAgICAgMCBcCiAgICAgICAgICAgICAtcyAiYmFkIGNlcnRpZmljYXRlICh1c2FnZSBleHRlbnNpb25zKSIgXAogICAgICAgICAgICAgLVMgIlByb2Nlc3Npbmcgb2YgdGhlIENlcnRpZmljYXRlIGhhbmRzaGFrZSBtZXNzYWdlIGZhaWxlZCIKQEAgLTc4NjUsOCArNzg2Nyw4IEBACiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBNQkVEVExTX1NTTF9QUk9UT19UTFMxXzIKIHJ1bl90ZXN0ICAgICJrZXlVc2FnZSBjbGktYXV0aDogUlNBLCBLZXlFbmNpcGhlcm1lbnQ6IGZhaWwgKGhhcmQpIiBcCiAgICAgICAgICAgICAiJFBfU1JWIGRlYnVnX2xldmVsPTEgZm9yY2VfdmVyc2lvbj10bHMxMiBhdXRoX21vZGU9cmVxdWlyZWQiIFwKLSAgICAgICAgICAgICIkT19DTEkgLXRsczFfMiAta2V5IGRhdGFfZmlsZXMvc2VydmVyMi5rZXkgXAotICAgICAgICAgICAgIC1jZXJ0IGRhdGFfZmlsZXMvc2VydmVyMi5rdS1rZS5jcnQiIFwKKyAgICAgICAgICAgICIkT19DTEkgLXRsczFfMiAta2V5ICREQVRBX0ZJTEVTX1BBVEgvc2VydmVyMi5rZXkgXAorICAgICAgICAgICAgIC1jZXJ0ICREQVRBX0ZJTEVTX1BBVEgvc2VydmVyMi5rdS1rZS5jcnQiIFwKICAgICAgICAgICAgIDEgXAogICAgICAgICAgICAgLXMgImJhZCBjZXJ0aWZpY2F0ZSAodXNhZ2UgZXh0ZW5zaW9ucykiIFwKICAgICAgICAgICAgIC1zICJQcm9jZXNzaW5nIG9mIHRoZSBDZXJ0aWZpY2F0ZSBoYW5kc2hha2UgbWVzc2FnZSBmYWlsZWQiCkBAIC03ODc0LDggKzc4NzYsOCBAQAogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgTUJFRFRMU19TU0xfUFJPVE9fVExTMV8yCiBydW5fdGVzdCAgICAia2V5VXNhZ2UgY2xpLWF1dGg6IEVDRFNBLCBEaWdpdGFsU2lnbmF0dXJlOiBPSyIgXAogICAgICAgICAgICAgIiRQX1NSViBkZWJ1Z19sZXZlbD0xIGF1dGhfbW9kZT1vcHRpb25hbCIgXAotICAgICAgICAgICAgIiRPX0NMSSAtdGxzMV8yIC1rZXkgZGF0YV9maWxlcy9zZXJ2ZXI1LmtleSBcCi0gICAgICAgICAgICAgLWNlcnQgZGF0YV9maWxlcy9zZXJ2ZXI1Lmt1LWRzLmNydCIgXAorICAgICAgICAgICAgIiRPX0NMSSAtdGxzMV8yIC1rZXkgJERBVEFfRklMRVNfUEFUSC9zZXJ2ZXI1LmtleSBcCisgICAgICAgICAgICAgLWNlcnQgJERBVEFfRklMRVNfUEFUSC9zZXJ2ZXI1Lmt1LWRzLmNydCIgXAogICAgICAgICAgICAgMCBcCiAgICAgICAgICAgICAtcyAiVmVyaWZ5aW5nIHBlZXIgWC41MDkgY2VydGlmaWNhdGUuLi4gb2siIFwKICAgICAgICAgICAgIC1TICJiYWQgY2VydGlmaWNhdGUgKHVzYWdlIGV4dGVuc2lvbnMpIiBcCkBAIC03ODg0LDggKzc4ODYsOCBAQAogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgTUJFRFRMU19TU0xfUFJPVE9fVExTMV8yCiBydW5fdGVzdCAgICAia2V5VXNhZ2UgY2xpLWF1dGg6IEVDRFNBLCBLZXlBZ3JlZW1lbnQ6IGZhaWwgKHNvZnQpIiBcCiAgICAgICAgICAgICAiJFBfU1JWIGRlYnVnX2xldmVsPTEgYXV0aF9tb2RlPW9wdGlvbmFsIiBcCi0gICAgICAgICAgICAiJE9fQ0xJIC10bHMxXzIgLWtleSBkYXRhX2ZpbGVzL3NlcnZlcjUua2V5IFwKLSAgICAgICAgICAgICAtY2VydCBkYXRhX2ZpbGVzL3NlcnZlcjUua3Uta2EuY3J0IiBcCisgICAgICAgICAgICAiJE9fQ0xJIC10bHMxXzIgLWtleSAkREFUQV9GSUxFU19QQVRIL3NlcnZlcjUua2V5IFwKKyAgICAgICAgICAgICAtY2VydCAkREFUQV9GSUxFU19QQVRIL3NlcnZlcjUua3Uta2EuY3J0IiBcCiAgICAgICAgICAgICAwIFwKICAgICAgICAgICAgIC1zICJiYWQgY2VydGlmaWNhdGUgKHVzYWdlIGV4dGVuc2lvbnMpIiBcCiAgICAgICAgICAgICAtUyAiUHJvY2Vzc2luZyBvZiB0aGUgQ2VydGlmaWNhdGUgaGFuZHNoYWtlIG1lc3NhZ2UgZmFpbGVkIgpAQCAtNzg5NSw4ICs3ODk3LDggQEAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTUJFRFRMU19TU0xfVExTMV8zX0tFWV9FWENIQU5HRV9NT0RFX0VQSEVNRVJBTF9FTkFCTEVECiBydW5fdGVzdCAgICAia2V5VXNhZ2UgY2xpLWF1dGggMS4zOiBSU0EsIERpZ2l0YWxTaWduYXR1cmU6IE9LIiBcCiAgICAgICAgICAgICAiJFBfU1JWIGRlYnVnX2xldmVsPTEgZm9yY2VfdmVyc2lvbj10bHMxMyBhdXRoX21vZGU9b3B0aW9uYWwiIFwKLSAgICAgICAgICAgICIkT19ORVhUX0NMSV9OT19DRVJUIC1rZXkgZGF0YV9maWxlcy9zZXJ2ZXIyLmtleSBcCi0gICAgICAgICAgICAgLWNlcnQgZGF0YV9maWxlcy9zZXJ2ZXIyLXNoYTI1Ni5rdS1kcy5jcnQiIFwKKyAgICAgICAgICAgICIkT19ORVhUX0NMSV9OT19DRVJUIC1rZXkgJERBVEFfRklMRVNfUEFUSC9zZXJ2ZXIyLmtleSBcCisgICAgICAgICAgICAgLWNlcnQgJERBVEFfRklMRVNfUEFUSC9zZXJ2ZXIyLXNoYTI1Ni5rdS1kcy5jcnQiIFwKICAgICAgICAgICAgIDAgXAogICAgICAgICAgICAgLXMgIlZlcmlmeWluZyBwZWVyIFguNTA5IGNlcnRpZmljYXRlLi4uIG9rIiBcCiAgICAgICAgICAgICAtUyAiYmFkIGNlcnRpZmljYXRlICh1c2FnZSBleHRlbnNpb25zKSIgXApAQCAtNzkwNyw4ICs3OTA5LDggQEAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTUJFRFRMU19TU0xfVExTMV8zX0tFWV9FWENIQU5HRV9NT0RFX0VQSEVNRVJBTF9FTkFCTEVECiBydW5fdGVzdCAgICAia2V5VXNhZ2UgY2xpLWF1dGggMS4zOiBSU0EsIEtleUVuY2lwaGVybWVudDogZmFpbCAoc29mdCkiIFwKICAgICAgICAgICAgICIkUF9TUlYgZGVidWdfbGV2ZWw9MSBmb3JjZV92ZXJzaW9uPXRsczEzIGF1dGhfbW9kZT1vcHRpb25hbCIgXAotICAgICAgICAgICAgIiRPX05FWFRfQ0xJX05PX0NFUlQgLWtleSBkYXRhX2ZpbGVzL3NlcnZlcjIua2V5IFwKLSAgICAgICAgICAgICAtY2VydCBkYXRhX2ZpbGVzL3NlcnZlcjItc2hhMjU2Lmt1LWtlLmNydCIgXAorICAgICAgICAgICAgIiRPX05FWFRfQ0xJX05PX0NFUlQgLWtleSAkREFUQV9GSUxFU19QQVRIL3NlcnZlcjIua2V5IFwKKyAgICAgICAgICAgICAtY2VydCAkREFUQV9GSUxFU19QQVRIL3NlcnZlcjItc2hhMjU2Lmt1LWtlLmNydCIgXAogICAgICAgICAgICAgMCBcCiAgICAgICAgICAgICAtcyAiYmFkIGNlcnRpZmljYXRlICh1c2FnZSBleHRlbnNpb25zKSIgXAogICAgICAgICAgICAgLVMgIlByb2Nlc3Npbmcgb2YgdGhlIENlcnRpZmljYXRlIGhhbmRzaGFrZSBtZXNzYWdlIGZhaWxlZCIKQEAgLTc5MTgsOCArNzkyMCw4IEBACiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1CRURUTFNfU1NMX1RMUzFfM19LRVlfRVhDSEFOR0VfTU9ERV9FUEhFTUVSQUxfRU5BQkxFRAogcnVuX3Rlc3QgICAgImtleVVzYWdlIGNsaS1hdXRoIDEuMzogRUNEU0EsIERpZ2l0YWxTaWduYXR1cmU6IE9LIiBcCiAgICAgICAgICAgICAiJFBfU1JWIGRlYnVnX2xldmVsPTEgZm9yY2VfdmVyc2lvbj10bHMxMyBhdXRoX21vZGU9b3B0aW9uYWwiIFwKLSAgICAgICAgICAgICIkT19ORVhUX0NMSV9OT19DRVJUIC1rZXkgZGF0YV9maWxlcy9zZXJ2ZXI1LmtleSBcCi0gICAgICAgICAgICAgLWNlcnQgZGF0YV9maWxlcy9zZXJ2ZXI1Lmt1LWRzLmNydCIgXAorICAgICAgICAgICAgIiRPX05FWFRfQ0xJX05PX0NFUlQgLWtleSAkREFUQV9GSUxFU19QQVRIL3NlcnZlcjUua2V5IFwKKyAgICAgICAgICAgICAtY2VydCAkREFUQV9GSUxFU19QQVRIL3NlcnZlcjUua3UtZHMuY3J0IiBcCiAgICAgICAgICAgICAwIFwKICAgICAgICAgICAgIC1zICJWZXJpZnlpbmcgcGVlciBYLjUwOSBjZXJ0aWZpY2F0ZS4uLiBvayIgXAogICAgICAgICAgICAgLVMgImJhZCBjZXJ0aWZpY2F0ZSAodXNhZ2UgZXh0ZW5zaW9ucykiIFwKQEAgLTc5MzAsOCArNzkzMiw4IEBACiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1CRURUTFNfU1NMX1RMUzFfM19LRVlfRVhDSEFOR0VfTU9ERV9FUEhFTUVSQUxfRU5BQkxFRAogcnVuX3Rlc3QgICAgImtleVVzYWdlIGNsaS1hdXRoIDEuMzogRUNEU0EsIEtleUFncmVlbWVudDogZmFpbCAoc29mdCkiIFwKICAgICAgICAgICAgICIkUF9TUlYgZGVidWdfbGV2ZWw9MSBmb3JjZV92ZXJzaW9uPXRsczEzIGF1dGhfbW9kZT1vcHRpb25hbCIgXAotICAgICAgICAgICAgIiRPX05FWFRfQ0xJX05PX0NFUlQgLWtleSBkYXRhX2ZpbGVzL3NlcnZlcjUua2V5IFwKLSAgICAgICAgICAgICAtY2VydCBkYXRhX2ZpbGVzL3NlcnZlcjUua3Uta2EuY3J0IiBcCisgICAgICAgICAgICAiJE9fTkVYVF9DTElfTk9fQ0VSVCAta2V5ICREQVRBX0ZJTEVTX1BBVEgvc2VydmVyNS5rZXkgXAorICAgICAgICAgICAgIC1jZXJ0ICREQVRBX0ZJTEVTX1BBVEgvc2VydmVyNS5rdS1rYS5jcnQiIFwKICAgICAgICAgICAgIDAgXAogICAgICAgICAgICAgLXMgImJhZCBjZXJ0aWZpY2F0ZSAodXNhZ2UgZXh0ZW5zaW9ucykiIFwKICAgICAgICAgICAgIC1TICJQcm9jZXNzaW5nIG9mIHRoZSBDZXJ0aWZpY2F0ZSBoYW5kc2hha2UgbWVzc2FnZSBmYWlsZWQiCkBAIC03OTQwLDI5ICs3OTQyLDI5IEBACiAKIHJlcXVpcmVzX2tleV9leGNoYW5nZV93aXRoX2NlcnRfaW5fdGxzMTJfb3JfdGxzMTNfZW5hYmxlZAogcnVuX3Rlc3QgICAgImV4dEtleVVzYWdlIHNydjogc2VydmVyQXV0aCAtPiBPSyIgXAotICAgICAgICAgICAgIiRQX1NSViBrZXlfZmlsZT1kYXRhX2ZpbGVzL3NlcnZlcjUua2V5IFwKLSAgICAgICAgICAgICBjcnRfZmlsZT1kYXRhX2ZpbGVzL3NlcnZlcjUuZWt1LXNydi5jcnQiIFwKKyAgICAgICAgICAgICIkUF9TUlYga2V5X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9zZXJ2ZXI1LmtleSBcCisgICAgICAgICAgICAgY3J0X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9zZXJ2ZXI1LmVrdS1zcnYuY3J0IiBcCiAgICAgICAgICAgICAiJFBfQ0xJIiBcCiAgICAgICAgICAgICAwCiAKIHJlcXVpcmVzX2tleV9leGNoYW5nZV93aXRoX2NlcnRfaW5fdGxzMTJfb3JfdGxzMTNfZW5hYmxlZAogcnVuX3Rlc3QgICAgImV4dEtleVVzYWdlIHNydjogc2VydmVyQXV0aCxjbGllbnRBdXRoIC0+IE9LIiBcCi0gICAgICAgICAgICAiJFBfU1JWIGtleV9maWxlPWRhdGFfZmlsZXMvc2VydmVyNS5rZXkgXAotICAgICAgICAgICAgIGNydF9maWxlPWRhdGFfZmlsZXMvc2VydmVyNS5la3Utc3J2LmNydCIgXAorICAgICAgICAgICAgIiRQX1NSViBrZXlfZmlsZT0kREFUQV9GSUxFU19QQVRIL3NlcnZlcjUua2V5IFwKKyAgICAgICAgICAgICBjcnRfZmlsZT0kREFUQV9GSUxFU19QQVRIL3NlcnZlcjUuZWt1LXNydi5jcnQiIFwKICAgICAgICAgICAgICIkUF9DTEkiIFwKICAgICAgICAgICAgIDAKIAogcmVxdWlyZXNfa2V5X2V4Y2hhbmdlX3dpdGhfY2VydF9pbl90bHMxMl9vcl90bHMxM19lbmFibGVkCiBydW5fdGVzdCAgICAiZXh0S2V5VXNhZ2Ugc3J2OiBjb2RlU2lnbixhbnlFS1UgLT4gT0siIFwKLSAgICAgICAgICAgICIkUF9TUlYga2V5X2ZpbGU9ZGF0YV9maWxlcy9zZXJ2ZXI1LmtleSBcCi0gICAgICAgICAgICAgY3J0X2ZpbGU9ZGF0YV9maWxlcy9zZXJ2ZXI1LmVrdS1jc19hbnkuY3J0IiBcCisgICAgICAgICAgICAiJFBfU1JWIGtleV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvc2VydmVyNS5rZXkgXAorICAgICAgICAgICAgIGNydF9maWxlPSREQVRBX0ZJTEVTX1BBVEgvc2VydmVyNS5la3UtY3NfYW55LmNydCIgXAogICAgICAgICAgICAgIiRQX0NMSSIgXAogICAgICAgICAgICAgMAogCiByZXF1aXJlc19rZXlfZXhjaGFuZ2Vfd2l0aF9jZXJ0X2luX3RsczEyX29yX3RsczEzX2VuYWJsZWQKIHJ1bl90ZXN0ICAgICJleHRLZXlVc2FnZSBzcnY6IGNvZGVTaWduIC0+IGZhaWwiIFwKLSAgICAgICAgICAgICIkUF9TUlYga2V5X2ZpbGU9ZGF0YV9maWxlcy9zZXJ2ZXI1LmtleSBcCi0gICAgICAgICAgICAgY3J0X2ZpbGU9ZGF0YV9maWxlcy9zZXJ2ZXI1LmVrdS1jbGkuY3J0IiBcCisgICAgICAgICAgICAiJFBfU1JWIGtleV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvc2VydmVyNS5rZXkgXAorICAgICAgICAgICAgIGNydF9maWxlPSREQVRBX0ZJTEVTX1BBVEgvc2VydmVyNS5la3UtY2xpLmNydCIgXAogICAgICAgICAgICAgIiRQX0NMSSIgXAogICAgICAgICAgICAgMQogCkBAIC03OTcwLDggKzc5NzIsOCBAQAogCiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBNQkVEVExTX1NTTF9QUk9UT19UTFMxXzIKIHJ1bl90ZXN0ICAgICJleHRLZXlVc2FnZSBjbGk6IHNlcnZlckF1dGggLT4gT0siIFwKLSAgICAgICAgICAgICIkT19TUlYgLXRsczFfMiAta2V5IGRhdGFfZmlsZXMvc2VydmVyNS5rZXkgXAotICAgICAgICAgICAgIC1jZXJ0IGRhdGFfZmlsZXMvc2VydmVyNS5la3Utc3J2LmNydCIgXAorICAgICAgICAgICAgIiRPX1NSViAtdGxzMV8yIC1rZXkgJERBVEFfRklMRVNfUEFUSC9zZXJ2ZXI1LmtleSBcCisgICAgICAgICAgICAgLWNlcnQgJERBVEFfRklMRVNfUEFUSC9zZXJ2ZXI1LmVrdS1zcnYuY3J0IiBcCiAgICAgICAgICAgICAiJFBfQ0xJIGRlYnVnX2xldmVsPTEiIFwKICAgICAgICAgICAgIDAgXAogICAgICAgICAgICAgLUMgImJhZCBjZXJ0aWZpY2F0ZSAodXNhZ2UgZXh0ZW5zaW9ucykiIFwKQEAgLTc5ODAsOCArNzk4Miw4IEBACiAKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIE1CRURUTFNfU1NMX1BST1RPX1RMUzFfMgogcnVuX3Rlc3QgICAgImV4dEtleVVzYWdlIGNsaTogc2VydmVyQXV0aCxjbGllbnRBdXRoIC0+IE9LIiBcCi0gICAgICAgICAgICAiJE9fU1JWIC10bHMxXzIgLWtleSBkYXRhX2ZpbGVzL3NlcnZlcjUua2V5IFwKLSAgICAgICAgICAgICAtY2VydCBkYXRhX2ZpbGVzL3NlcnZlcjUuZWt1LXNydl9jbGkuY3J0IiBcCisgICAgICAgICAgICAiJE9fU1JWIC10bHMxXzIgLWtleSAkREFUQV9GSUxFU19QQVRIL3NlcnZlcjUua2V5IFwKKyAgICAgICAgICAgICAtY2VydCAkREFUQV9GSUxFU19QQVRIL3NlcnZlcjUuZWt1LXNydl9jbGkuY3J0IiBcCiAgICAgICAgICAgICAiJFBfQ0xJIGRlYnVnX2xldmVsPTEiIFwKICAgICAgICAgICAgIDAgXAogICAgICAgICAgICAgLUMgImJhZCBjZXJ0aWZpY2F0ZSAodXNhZ2UgZXh0ZW5zaW9ucykiIFwKQEAgLTc5OTAsOCArNzk5Miw4IEBACiAKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIE1CRURUTFNfU1NMX1BST1RPX1RMUzFfMgogcnVuX3Rlc3QgICAgImV4dEtleVVzYWdlIGNsaTogY29kZVNpZ24sYW55RUtVIC0+IE9LIiBcCi0gICAgICAgICAgICAiJE9fU1JWIC10bHMxXzIgLWtleSBkYXRhX2ZpbGVzL3NlcnZlcjUua2V5IFwKLSAgICAgICAgICAgICAtY2VydCBkYXRhX2ZpbGVzL3NlcnZlcjUuZWt1LWNzX2FueS5jcnQiIFwKKyAgICAgICAgICAgICIkT19TUlYgLXRsczFfMiAta2V5ICREQVRBX0ZJTEVTX1BBVEgvc2VydmVyNS5rZXkgXAorICAgICAgICAgICAgIC1jZXJ0ICREQVRBX0ZJTEVTX1BBVEgvc2VydmVyNS5la3UtY3NfYW55LmNydCIgXAogICAgICAgICAgICAgIiRQX0NMSSBkZWJ1Z19sZXZlbD0xIiBcCiAgICAgICAgICAgICAwIFwKICAgICAgICAgICAgIC1DICJiYWQgY2VydGlmaWNhdGUgKHVzYWdlIGV4dGVuc2lvbnMpIiBcCkBAIC04MDAwLDggKzgwMDIsOCBAQAogCiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBNQkVEVExTX1NTTF9QUk9UT19UTFMxXzIKIHJ1bl90ZXN0ICAgICJleHRLZXlVc2FnZSBjbGk6IGNvZGVTaWduIC0+IGZhaWwiIFwKLSAgICAgICAgICAgICIkT19TUlYgLXRsczFfMiAta2V5IGRhdGFfZmlsZXMvc2VydmVyNS5rZXkgXAotICAgICAgICAgICAgIC1jZXJ0IGRhdGFfZmlsZXMvc2VydmVyNS5la3UtY3MuY3J0IiBcCisgICAgICAgICAgICAiJE9fU1JWIC10bHMxXzIgLWtleSAkREFUQV9GSUxFU19QQVRIL3NlcnZlcjUua2V5IFwKKyAgICAgICAgICAgICAtY2VydCAkREFUQV9GSUxFU19QQVRIL3NlcnZlcjUuZWt1LWNzLmNydCIgXAogICAgICAgICAgICAgIiRQX0NMSSBkZWJ1Z19sZXZlbD0xIiBcCiAgICAgICAgICAgICAxIFwKICAgICAgICAgICAgIC1jICJiYWQgY2VydGlmaWNhdGUgKHVzYWdlIGV4dGVuc2lvbnMpIiBcCkBAIC04MDEyLDggKzgwMTQsOCBAQAogcmVxdWlyZXNfYWxsX2NvbmZpZ3NfZW5hYmxlZCBNQkVEVExTX1NTTF9UTFMxXzNfQ09NUEFUSUJJTElUWV9NT0RFIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTUJFRFRMU19TU0xfVExTMV8zX0tFWV9FWENIQU5HRV9NT0RFX0VQSEVNRVJBTF9FTkFCTEVECiBydW5fdGVzdCAgICAiZXh0S2V5VXNhZ2UgY2xpIDEuMzogc2VydmVyQXV0aCAtPiBPSyIgXAotICAgICAgICAgICAgIiRPX05FWFRfU1JWX05PX0NFUlQgLXRsczFfMyAtbnVtX3RpY2tldHM9MCAta2V5IGRhdGFfZmlsZXMvc2VydmVyNS5rZXkgXAotICAgICAgICAgICAgIC1jZXJ0IGRhdGFfZmlsZXMvc2VydmVyNS5la3Utc3J2LmNydCIgXAorICAgICAgICAgICAgIiRPX05FWFRfU1JWX05PX0NFUlQgLXRsczFfMyAtbnVtX3RpY2tldHM9MCAta2V5ICREQVRBX0ZJTEVTX1BBVEgvc2VydmVyNS5rZXkgXAorICAgICAgICAgICAgIC1jZXJ0ICREQVRBX0ZJTEVTX1BBVEgvc2VydmVyNS5la3Utc3J2LmNydCIgXAogICAgICAgICAgICAgIiRQX0NMSSBkZWJ1Z19sZXZlbD0xIiBcCiAgICAgICAgICAgICAwIFwKICAgICAgICAgICAgIC1DICJiYWQgY2VydGlmaWNhdGUgKHVzYWdlIGV4dGVuc2lvbnMpIiBcCkBAIC04MDI0LDggKzgwMjYsOCBAQAogcmVxdWlyZXNfYWxsX2NvbmZpZ3NfZW5hYmxlZCBNQkVEVExTX1NTTF9UTFMxXzNfQ09NUEFUSUJJTElUWV9NT0RFIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTUJFRFRMU19TU0xfVExTMV8zX0tFWV9FWENIQU5HRV9NT0RFX0VQSEVNRVJBTF9FTkFCTEVECiBydW5fdGVzdCAgICAiZXh0S2V5VXNhZ2UgY2xpIDEuMzogc2VydmVyQXV0aCxjbGllbnRBdXRoIC0+IE9LIiBcCi0gICAgICAgICAgICAiJE9fTkVYVF9TUlZfTk9fQ0VSVCAtdGxzMV8zIC1udW1fdGlja2V0cz0wIC1rZXkgZGF0YV9maWxlcy9zZXJ2ZXI1LmtleSBcCi0gICAgICAgICAgICAgLWNlcnQgZGF0YV9maWxlcy9zZXJ2ZXI1LmVrdS1zcnZfY2xpLmNydCIgXAorICAgICAgICAgICAgIiRPX05FWFRfU1JWX05PX0NFUlQgLXRsczFfMyAtbnVtX3RpY2tldHM9MCAta2V5ICREQVRBX0ZJTEVTX1BBVEgvc2VydmVyNS5rZXkgXAorICAgICAgICAgICAgIC1jZXJ0ICREQVRBX0ZJTEVTX1BBVEgvc2VydmVyNS5la3Utc3J2X2NsaS5jcnQiIFwKICAgICAgICAgICAgICIkUF9DTEkgZGVidWdfbGV2ZWw9MSIgXAogICAgICAgICAgICAgMCBcCiAgICAgICAgICAgICAtQyAiYmFkIGNlcnRpZmljYXRlICh1c2FnZSBleHRlbnNpb25zKSIgXApAQCAtODAzNiw4ICs4MDM4LDggQEAKIHJlcXVpcmVzX2FsbF9jb25maWdzX2VuYWJsZWQgTUJFRFRMU19TU0xfVExTMV8zX0NPTVBBVElCSUxJVFlfTU9ERSBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1CRURUTFNfU1NMX1RMUzFfM19LRVlfRVhDSEFOR0VfTU9ERV9FUEhFTUVSQUxfRU5BQkxFRAogcnVuX3Rlc3QgICAgImV4dEtleVVzYWdlIGNsaSAxLjM6IGNvZGVTaWduLGFueUVLVSAtPiBPSyIgXAotICAgICAgICAgICAgIiRPX05FWFRfU1JWX05PX0NFUlQgLXRsczFfMyAtbnVtX3RpY2tldHM9MCAta2V5IGRhdGFfZmlsZXMvc2VydmVyNS5rZXkgXAotICAgICAgICAgICAgIC1jZXJ0IGRhdGFfZmlsZXMvc2VydmVyNS5la3UtY3NfYW55LmNydCIgXAorICAgICAgICAgICAgIiRPX05FWFRfU1JWX05PX0NFUlQgLXRsczFfMyAtbnVtX3RpY2tldHM9MCAta2V5ICREQVRBX0ZJTEVTX1BBVEgvc2VydmVyNS5rZXkgXAorICAgICAgICAgICAgIC1jZXJ0ICREQVRBX0ZJTEVTX1BBVEgvc2VydmVyNS5la3UtY3NfYW55LmNydCIgXAogICAgICAgICAgICAgIiRQX0NMSSBkZWJ1Z19sZXZlbD0xIiBcCiAgICAgICAgICAgICAwIFwKICAgICAgICAgICAgIC1DICJiYWQgY2VydGlmaWNhdGUgKHVzYWdlIGV4dGVuc2lvbnMpIiBcCkBAIC04MDQ4LDggKzgwNTAsOCBAQAogcmVxdWlyZXNfYWxsX2NvbmZpZ3NfZW5hYmxlZCBNQkVEVExTX1NTTF9UTFMxXzNfQ09NUEFUSUJJTElUWV9NT0RFIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTUJFRFRMU19TU0xfVExTMV8zX0tFWV9FWENIQU5HRV9NT0RFX0VQSEVNRVJBTF9FTkFCTEVECiBydW5fdGVzdCAgICAiZXh0S2V5VXNhZ2UgY2xpIDEuMzogY29kZVNpZ24gLT4gZmFpbCIgXAotICAgICAgICAgICAgIiRPX05FWFRfU1JWX05PX0NFUlQgLXRsczFfMyAtbnVtX3RpY2tldHM9MCAta2V5IGRhdGFfZmlsZXMvc2VydmVyNS5rZXkgXAotICAgICAgICAgICAgIC1jZXJ0IGRhdGFfZmlsZXMvc2VydmVyNS5la3UtY3MuY3J0IiBcCisgICAgICAgICAgICAiJE9fTkVYVF9TUlZfTk9fQ0VSVCAtdGxzMV8zIC1udW1fdGlja2V0cz0wIC1rZXkgJERBVEFfRklMRVNfUEFUSC9zZXJ2ZXI1LmtleSBcCisgICAgICAgICAgICAgLWNlcnQgJERBVEFfRklMRVNfUEFUSC9zZXJ2ZXI1LmVrdS1jcy5jcnQiIFwKICAgICAgICAgICAgICIkUF9DTEkgZGVidWdfbGV2ZWw9MSIgXAogICAgICAgICAgICAgMSBcCiAgICAgICAgICAgICAtYyAiYmFkIGNlcnRpZmljYXRlICh1c2FnZSBleHRlbnNpb25zKSIgXApAQCAtODA2MSw4ICs4MDYzLDggQEAKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIE1CRURUTFNfU1NMX1BST1RPX1RMUzFfMgogcnVuX3Rlc3QgICAgImV4dEtleVVzYWdlIGNsaS1hdXRoOiBjbGllbnRBdXRoIC0+IE9LIiBcCiAgICAgICAgICAgICAiJFBfU1JWIGRlYnVnX2xldmVsPTEgYXV0aF9tb2RlPW9wdGlvbmFsIiBcCi0gICAgICAgICAgICAiJE9fQ0xJIC10bHMxXzIgLWtleSBkYXRhX2ZpbGVzL3NlcnZlcjUua2V5IFwKLSAgICAgICAgICAgICAtY2VydCBkYXRhX2ZpbGVzL3NlcnZlcjUuZWt1LWNsaS5jcnQiIFwKKyAgICAgICAgICAgICIkT19DTEkgLXRsczFfMiAta2V5ICREQVRBX0ZJTEVTX1BBVEgvc2VydmVyNS5rZXkgXAorICAgICAgICAgICAgIC1jZXJ0ICREQVRBX0ZJTEVTX1BBVEgvc2VydmVyNS5la3UtY2xpLmNydCIgXAogICAgICAgICAgICAgMCBcCiAgICAgICAgICAgICAtUyAiYmFkIGNlcnRpZmljYXRlICh1c2FnZSBleHRlbnNpb25zKSIgXAogICAgICAgICAgICAgLVMgIlByb2Nlc3Npbmcgb2YgdGhlIENlcnRpZmljYXRlIGhhbmRzaGFrZSBtZXNzYWdlIGZhaWxlZCIKQEAgLTgwNzAsOCArODA3Miw4IEBACiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBNQkVEVExTX1NTTF9QUk9UT19UTFMxXzIKIHJ1bl90ZXN0ICAgICJleHRLZXlVc2FnZSBjbGktYXV0aDogc2VydmVyQXV0aCxjbGllbnRBdXRoIC0+IE9LIiBcCiAgICAgICAgICAgICAiJFBfU1JWIGRlYnVnX2xldmVsPTEgYXV0aF9tb2RlPW9wdGlvbmFsIiBcCi0gICAgICAgICAgICAiJE9fQ0xJIC10bHMxXzIgLWtleSBkYXRhX2ZpbGVzL3NlcnZlcjUua2V5IFwKLSAgICAgICAgICAgICAtY2VydCBkYXRhX2ZpbGVzL3NlcnZlcjUuZWt1LXNydl9jbGkuY3J0IiBcCisgICAgICAgICAgICAiJE9fQ0xJIC10bHMxXzIgLWtleSAkREFUQV9GSUxFU19QQVRIL3NlcnZlcjUua2V5IFwKKyAgICAgICAgICAgICAtY2VydCAkREFUQV9GSUxFU19QQVRIL3NlcnZlcjUuZWt1LXNydl9jbGkuY3J0IiBcCiAgICAgICAgICAgICAwIFwKICAgICAgICAgICAgIC1TICJiYWQgY2VydGlmaWNhdGUgKHVzYWdlIGV4dGVuc2lvbnMpIiBcCiAgICAgICAgICAgICAtUyAiUHJvY2Vzc2luZyBvZiB0aGUgQ2VydGlmaWNhdGUgaGFuZHNoYWtlIG1lc3NhZ2UgZmFpbGVkIgpAQCAtODA3OSw4ICs4MDgxLDggQEAKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIE1CRURUTFNfU1NMX1BST1RPX1RMUzFfMgogcnVuX3Rlc3QgICAgImV4dEtleVVzYWdlIGNsaS1hdXRoOiBjb2RlU2lnbixhbnlFS1UgLT4gT0siIFwKICAgICAgICAgICAgICIkUF9TUlYgZGVidWdfbGV2ZWw9MSBhdXRoX21vZGU9b3B0aW9uYWwiIFwKLSAgICAgICAgICAgICIkT19DTEkgLXRsczFfMiAta2V5IGRhdGFfZmlsZXMvc2VydmVyNS5rZXkgXAotICAgICAgICAgICAgIC1jZXJ0IGRhdGFfZmlsZXMvc2VydmVyNS5la3UtY3NfYW55LmNydCIgXAorICAgICAgICAgICAgIiRPX0NMSSAtdGxzMV8yIC1rZXkgJERBVEFfRklMRVNfUEFUSC9zZXJ2ZXI1LmtleSBcCisgICAgICAgICAgICAgLWNlcnQgJERBVEFfRklMRVNfUEFUSC9zZXJ2ZXI1LmVrdS1jc19hbnkuY3J0IiBcCiAgICAgICAgICAgICAwIFwKICAgICAgICAgICAgIC1TICJiYWQgY2VydGlmaWNhdGUgKHVzYWdlIGV4dGVuc2lvbnMpIiBcCiAgICAgICAgICAgICAtUyAiUHJvY2Vzc2luZyBvZiB0aGUgQ2VydGlmaWNhdGUgaGFuZHNoYWtlIG1lc3NhZ2UgZmFpbGVkIgpAQCAtODA4OCw4ICs4MDkwLDggQEAKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIE1CRURUTFNfU1NMX1BST1RPX1RMUzFfMgogcnVuX3Rlc3QgICAgImV4dEtleVVzYWdlIGNsaS1hdXRoOiBjb2RlU2lnbiAtPiBmYWlsIChzb2Z0KSIgXAogICAgICAgICAgICAgIiRQX1NSViBkZWJ1Z19sZXZlbD0xIGF1dGhfbW9kZT1vcHRpb25hbCIgXAotICAgICAgICAgICAgIiRPX0NMSSAtdGxzMV8yIC1rZXkgZGF0YV9maWxlcy9zZXJ2ZXI1LmtleSBcCi0gICAgICAgICAgICAgLWNlcnQgZGF0YV9maWxlcy9zZXJ2ZXI1LmVrdS1jcy5jcnQiIFwKKyAgICAgICAgICAgICIkT19DTEkgLXRsczFfMiAta2V5ICREQVRBX0ZJTEVTX1BBVEgvc2VydmVyNS5rZXkgXAorICAgICAgICAgICAgIC1jZXJ0ICREQVRBX0ZJTEVTX1BBVEgvc2VydmVyNS5la3UtY3MuY3J0IiBcCiAgICAgICAgICAgICAwIFwKICAgICAgICAgICAgIC1zICJiYWQgY2VydGlmaWNhdGUgKHVzYWdlIGV4dGVuc2lvbnMpIiBcCiAgICAgICAgICAgICAtUyAiUHJvY2Vzc2luZyBvZiB0aGUgQ2VydGlmaWNhdGUgaGFuZHNoYWtlIG1lc3NhZ2UgZmFpbGVkIgpAQCAtODA5Nyw4ICs4MDk5LDggQEAKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIE1CRURUTFNfU1NMX1BST1RPX1RMUzFfMgogcnVuX3Rlc3QgICAgImV4dEtleVVzYWdlIGNsaS1hdXRoOiBjb2RlU2lnbiAtPiBmYWlsIChoYXJkKSIgXAogICAgICAgICAgICAgIiRQX1NSViBkZWJ1Z19sZXZlbD0xIGF1dGhfbW9kZT1yZXF1aXJlZCIgXAotICAgICAgICAgICAgIiRPX0NMSSAtdGxzMV8yIC1rZXkgZGF0YV9maWxlcy9zZXJ2ZXI1LmtleSBcCi0gICAgICAgICAgICAgLWNlcnQgZGF0YV9maWxlcy9zZXJ2ZXI1LmVrdS1jcy5jcnQiIFwKKyAgICAgICAgICAgICIkT19DTEkgLXRsczFfMiAta2V5ICREQVRBX0ZJTEVTX1BBVEgvc2VydmVyNS5rZXkgXAorICAgICAgICAgICAgIC1jZXJ0ICREQVRBX0ZJTEVTX1BBVEgvc2VydmVyNS5la3UtY3MuY3J0IiBcCiAgICAgICAgICAgICAxIFwKICAgICAgICAgICAgIC1zICJiYWQgY2VydGlmaWNhdGUgKHVzYWdlIGV4dGVuc2lvbnMpIiBcCiAgICAgICAgICAgICAtcyAiUHJvY2Vzc2luZyBvZiB0aGUgQ2VydGlmaWNhdGUgaGFuZHNoYWtlIG1lc3NhZ2UgZmFpbGVkIgpAQCAtODEwOCw4ICs4MTEwLDggQEAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTUJFRFRMU19TU0xfVExTMV8zX0tFWV9FWENIQU5HRV9NT0RFX0VQSEVNRVJBTF9FTkFCTEVECiBydW5fdGVzdCAgICAiZXh0S2V5VXNhZ2UgY2xpLWF1dGggMS4zOiBjbGllbnRBdXRoIC0+IE9LIiBcCiAgICAgICAgICAgICAiJFBfU1JWIGRlYnVnX2xldmVsPTEgZm9yY2VfdmVyc2lvbj10bHMxMyBhdXRoX21vZGU9b3B0aW9uYWwiIFwKLSAgICAgICAgICAgICIkT19ORVhUX0NMSV9OT19DRVJUIC1rZXkgZGF0YV9maWxlcy9zZXJ2ZXI1LmtleSBcCi0gICAgICAgICAgICAgLWNlcnQgZGF0YV9maWxlcy9zZXJ2ZXI1LmVrdS1jbGkuY3J0IiBcCisgICAgICAgICAgICAiJE9fTkVYVF9DTElfTk9fQ0VSVCAta2V5ICREQVRBX0ZJTEVTX1BBVEgvc2VydmVyNS5rZXkgXAorICAgICAgICAgICAgIC1jZXJ0ICREQVRBX0ZJTEVTX1BBVEgvc2VydmVyNS5la3UtY2xpLmNydCIgXAogICAgICAgICAgICAgMCBcCiAgICAgICAgICAgICAtUyAiYmFkIGNlcnRpZmljYXRlICh1c2FnZSBleHRlbnNpb25zKSIgXAogICAgICAgICAgICAgLVMgIlByb2Nlc3Npbmcgb2YgdGhlIENlcnRpZmljYXRlIGhhbmRzaGFrZSBtZXNzYWdlIGZhaWxlZCIKQEAgLTgxMTksOCArODEyMSw4IEBACiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1CRURUTFNfU1NMX1RMUzFfM19LRVlfRVhDSEFOR0VfTU9ERV9FUEhFTUVSQUxfRU5BQkxFRAogcnVuX3Rlc3QgICAgImV4dEtleVVzYWdlIGNsaS1hdXRoIDEuMzogc2VydmVyQXV0aCxjbGllbnRBdXRoIC0+IE9LIiBcCiAgICAgICAgICAgICAiJFBfU1JWIGRlYnVnX2xldmVsPTEgZm9yY2VfdmVyc2lvbj10bHMxMyBhdXRoX21vZGU9b3B0aW9uYWwiIFwKLSAgICAgICAgICAgICIkT19ORVhUX0NMSV9OT19DRVJUIC1rZXkgZGF0YV9maWxlcy9zZXJ2ZXI1LmtleSBcCi0gICAgICAgICAgICAgLWNlcnQgZGF0YV9maWxlcy9zZXJ2ZXI1LmVrdS1zcnZfY2xpLmNydCIgXAorICAgICAgICAgICAgIiRPX05FWFRfQ0xJX05PX0NFUlQgLWtleSAkREFUQV9GSUxFU19QQVRIL3NlcnZlcjUua2V5IFwKKyAgICAgICAgICAgICAtY2VydCAkREFUQV9GSUxFU19QQVRIL3NlcnZlcjUuZWt1LXNydl9jbGkuY3J0IiBcCiAgICAgICAgICAgICAwIFwKICAgICAgICAgICAgIC1TICJiYWQgY2VydGlmaWNhdGUgKHVzYWdlIGV4dGVuc2lvbnMpIiBcCiAgICAgICAgICAgICAtUyAiUHJvY2Vzc2luZyBvZiB0aGUgQ2VydGlmaWNhdGUgaGFuZHNoYWtlIG1lc3NhZ2UgZmFpbGVkIgpAQCAtODEzMCw4ICs4MTMyLDggQEAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTUJFRFRMU19TU0xfVExTMV8zX0tFWV9FWENIQU5HRV9NT0RFX0VQSEVNRVJBTF9FTkFCTEVECiBydW5fdGVzdCAgICAiZXh0S2V5VXNhZ2UgY2xpLWF1dGggMS4zOiBjb2RlU2lnbixhbnlFS1UgLT4gT0siIFwKICAgICAgICAgICAgICIkUF9TUlYgZGVidWdfbGV2ZWw9MSBmb3JjZV92ZXJzaW9uPXRsczEzIGF1dGhfbW9kZT1vcHRpb25hbCIgXAotICAgICAgICAgICAgIiRPX05FWFRfQ0xJX05PX0NFUlQgLWtleSBkYXRhX2ZpbGVzL3NlcnZlcjUua2V5IFwKLSAgICAgICAgICAgICAtY2VydCBkYXRhX2ZpbGVzL3NlcnZlcjUuZWt1LWNzX2FueS5jcnQiIFwKKyAgICAgICAgICAgICIkT19ORVhUX0NMSV9OT19DRVJUIC1rZXkgJERBVEFfRklMRVNfUEFUSC9zZXJ2ZXI1LmtleSBcCisgICAgICAgICAgICAgLWNlcnQgJERBVEFfRklMRVNfUEFUSC9zZXJ2ZXI1LmVrdS1jc19hbnkuY3J0IiBcCiAgICAgICAgICAgICAwIFwKICAgICAgICAgICAgIC1TICJiYWQgY2VydGlmaWNhdGUgKHVzYWdlIGV4dGVuc2lvbnMpIiBcCiAgICAgICAgICAgICAtUyAiUHJvY2Vzc2luZyBvZiB0aGUgQ2VydGlmaWNhdGUgaGFuZHNoYWtlIG1lc3NhZ2UgZmFpbGVkIgpAQCAtODE0MSw4ICs4MTQzLDggQEAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTUJFRFRMU19TU0xfVExTMV8zX0tFWV9FWENIQU5HRV9NT0RFX0VQSEVNRVJBTF9FTkFCTEVECiBydW5fdGVzdCAgICAiZXh0S2V5VXNhZ2UgY2xpLWF1dGggMS4zOiBjb2RlU2lnbiAtPiBmYWlsIChzb2Z0KSIgXAogICAgICAgICAgICAgIiRQX1NSViBkZWJ1Z19sZXZlbD0xIGZvcmNlX3ZlcnNpb249dGxzMTMgYXV0aF9tb2RlPW9wdGlvbmFsIiBcCi0gICAgICAgICAgICAiJE9fTkVYVF9DTElfTk9fQ0VSVCAta2V5IGRhdGFfZmlsZXMvc2VydmVyNS5rZXkgXAotICAgICAgICAgICAgIC1jZXJ0IGRhdGFfZmlsZXMvc2VydmVyNS5la3UtY3MuY3J0IiBcCisgICAgICAgICAgICAiJE9fTkVYVF9DTElfTk9fQ0VSVCAta2V5ICREQVRBX0ZJTEVTX1BBVEgvc2VydmVyNS5rZXkgXAorICAgICAgICAgICAgIC1jZXJ0ICREQVRBX0ZJTEVTX1BBVEgvc2VydmVyNS5la3UtY3MuY3J0IiBcCiAgICAgICAgICAgICAwIFwKICAgICAgICAgICAgIC1zICJiYWQgY2VydGlmaWNhdGUgKHVzYWdlIGV4dGVuc2lvbnMpIiBcCiAgICAgICAgICAgICAtUyAiUHJvY2Vzc2luZyBvZiB0aGUgQ2VydGlmaWNhdGUgaGFuZHNoYWtlIG1lc3NhZ2UgZmFpbGVkIgpAQCAtODE1OCw3ICs4MTYwLDcgQEAKICAgICAgICAgICAgIC1jICJ2YWx1ZSBvZiAnREhNOiBHICcgKDIgYml0cykiCiAKIHJ1bl90ZXN0ICAgICJESE0gcGFyYW1ldGVyczogb3RoZXIgcGFyYW1ldGVycyIgXAotICAgICAgICAgICAgIiRQX1NSViBkaG1fZmlsZT1kYXRhX2ZpbGVzL2RocGFyYW1zLnBlbSIgXAorICAgICAgICAgICAgIiRQX1NSViBkaG1fZmlsZT0kREFUQV9GSUxFU19QQVRIL2RocGFyYW1zLnBlbSIgXAogICAgICAgICAgICAgIiRQX0NMSSBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMtREhFLVJTQS1XSVRILUFFUy0xMjgtQ0JDLVNIQSBcCiAgICAgICAgICAgICAgICAgICAgIGRlYnVnX2xldmVsPTMiIFwKICAgICAgICAgICAgIDAgXApAQCAtODE4Miw0OSArODE4NCw0OSBAQAogICAgICAgICAgICAgLUMgIkRITSBwcmltZSB0b28gc2hvcnQ6IgogCiBydW5fdGVzdCAgICAiREhNIHNpemU6IHNlcnZlciAxMDI0LCBjbGllbnQgZGVmYXVsdCwgT0siIFwKLSAgICAgICAgICAgICIkUF9TUlYgZGhtX2ZpbGU9ZGF0YV9maWxlcy9kaHBhcmFtcy5wZW0iIFwKKyAgICAgICAgICAgICIkUF9TUlYgZGhtX2ZpbGU9JERBVEFfRklMRVNfUEFUSC9kaHBhcmFtcy5wZW0iIFwKICAgICAgICAgICAgICIkUF9DTEkgZm9yY2VfY2lwaGVyc3VpdGU9VExTLURIRS1SU0EtV0lUSC1BRVMtMTI4LUNCQy1TSEEgXAogICAgICAgICAgICAgICAgICAgICBkZWJ1Z19sZXZlbD0xIiBcCiAgICAgICAgICAgICAwIFwKICAgICAgICAgICAgIC1DICJESE0gcHJpbWUgdG9vIHNob3J0OiIKIAogcnVuX3Rlc3QgICAgIkRITSBzaXplOiBzZXJ2ZXIgOTk5LCBjbGllbnQgOTk5LCBPSyIgXAotICAgICAgICAgICAgIiRQX1NSViBkaG1fZmlsZT1kYXRhX2ZpbGVzL2RoLjk5OS5wZW0iIFwKKyAgICAgICAgICAgICIkUF9TUlYgZGhtX2ZpbGU9JERBVEFfRklMRVNfUEFUSC9kaC45OTkucGVtIiBcCiAgICAgICAgICAgICAiJFBfQ0xJIGZvcmNlX2NpcGhlcnN1aXRlPVRMUy1ESEUtUlNBLVdJVEgtQUVTLTEyOC1DQkMtU0hBIFwKICAgICAgICAgICAgICAgICAgICAgZGVidWdfbGV2ZWw9MSBkaG1sZW49OTk5IiBcCiAgICAgICAgICAgICAwIFwKICAgICAgICAgICAgIC1DICJESE0gcHJpbWUgdG9vIHNob3J0OiIKIAogcnVuX3Rlc3QgICAgIkRITSBzaXplOiBzZXJ2ZXIgMTAwMCwgY2xpZW50IDEwMDAsIE9LIiBcCi0gICAgICAgICAgICAiJFBfU1JWIGRobV9maWxlPWRhdGFfZmlsZXMvZGguMTAwMC5wZW0iIFwKKyAgICAgICAgICAgICIkUF9TUlYgZGhtX2ZpbGU9JERBVEFfRklMRVNfUEFUSC9kaC4xMDAwLnBlbSIgXAogICAgICAgICAgICAgIiRQX0NMSSBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMtREhFLVJTQS1XSVRILUFFUy0xMjgtQ0JDLVNIQSBcCiAgICAgICAgICAgICAgICAgICAgIGRlYnVnX2xldmVsPTEgZGhtbGVuPTEwMDAiIFwKICAgICAgICAgICAgIDAgXAogICAgICAgICAgICAgLUMgIkRITSBwcmltZSB0b28gc2hvcnQ6IgogCiBydW5fdGVzdCAgICAiREhNIHNpemU6IHNlcnZlciAxMDAwLCBjbGllbnQgZGVmYXVsdCwgcmVqZWN0ZWQiIFwKLSAgICAgICAgICAgICIkUF9TUlYgZGhtX2ZpbGU9ZGF0YV9maWxlcy9kaC4xMDAwLnBlbSIgXAorICAgICAgICAgICAgIiRQX1NSViBkaG1fZmlsZT0kREFUQV9GSUxFU19QQVRIL2RoLjEwMDAucGVtIiBcCiAgICAgICAgICAgICAiJFBfQ0xJIGZvcmNlX2NpcGhlcnN1aXRlPVRMUy1ESEUtUlNBLVdJVEgtQUVTLTEyOC1DQkMtU0hBIFwKICAgICAgICAgICAgICAgICAgICAgZGVidWdfbGV2ZWw9MSIgXAogICAgICAgICAgICAgMSBcCiAgICAgICAgICAgICAtYyAiREhNIHByaW1lIHRvbyBzaG9ydDoiCiAKIHJ1bl90ZXN0ICAgICJESE0gc2l6ZTogc2VydmVyIDEwMDAsIGNsaWVudCAxMDAxLCByZWplY3RlZCIgXAotICAgICAgICAgICAgIiRQX1NSViBkaG1fZmlsZT1kYXRhX2ZpbGVzL2RoLjEwMDAucGVtIiBcCisgICAgICAgICAgICAiJFBfU1JWIGRobV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvZGguMTAwMC5wZW0iIFwKICAgICAgICAgICAgICIkUF9DTEkgZm9yY2VfY2lwaGVyc3VpdGU9VExTLURIRS1SU0EtV0lUSC1BRVMtMTI4LUNCQy1TSEEgXAogICAgICAgICAgICAgICAgICAgICBkZWJ1Z19sZXZlbD0xIGRobWxlbj0xMDAxIiBcCiAgICAgICAgICAgICAxIFwKICAgICAgICAgICAgIC1jICJESE0gcHJpbWUgdG9vIHNob3J0OiIKIAogcnVuX3Rlc3QgICAgIkRITSBzaXplOiBzZXJ2ZXIgOTk5LCBjbGllbnQgMTAwMCwgcmVqZWN0ZWQiIFwKLSAgICAgICAgICAgICIkUF9TUlYgZGhtX2ZpbGU9ZGF0YV9maWxlcy9kaC45OTkucGVtIiBcCisgICAgICAgICAgICAiJFBfU1JWIGRobV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvZGguOTk5LnBlbSIgXAogICAgICAgICAgICAgIiRQX0NMSSBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMtREhFLVJTQS1XSVRILUFFUy0xMjgtQ0JDLVNIQSBcCiAgICAgICAgICAgICAgICAgICAgIGRlYnVnX2xldmVsPTEgZGhtbGVuPTEwMDAiIFwKICAgICAgICAgICAgIDEgXAogICAgICAgICAgICAgLWMgIkRITSBwcmltZSB0b28gc2hvcnQ6IgogCiBydW5fdGVzdCAgICAiREhNIHNpemU6IHNlcnZlciA5OTgsIGNsaWVudCA5OTksIHJlamVjdGVkIiBcCi0gICAgICAgICAgICAiJFBfU1JWIGRobV9maWxlPWRhdGFfZmlsZXMvZGguOTk4LnBlbSIgXAorICAgICAgICAgICAgIiRQX1NSViBkaG1fZmlsZT0kREFUQV9GSUxFU19QQVRIL2RoLjk5OC5wZW0iIFwKICAgICAgICAgICAgICIkUF9DTEkgZm9yY2VfY2lwaGVyc3VpdGU9VExTLURIRS1SU0EtV0lUSC1BRVMtMTI4LUNCQy1TSEEgXAogICAgICAgICAgICAgICAgICAgICBkZWJ1Z19sZXZlbD0xIGRobWxlbj05OTkiIFwKICAgICAgICAgICAgIDEgXApAQCAtOTQ0MCw3ICs5NDQyLDcgQEAKIHJ1bl90ZXN0ICAgICJFQyByZXN0YXJ0OiBUTFMsIGRlZmF1bHQiIFwKICAgICAgICAgICAgICIkUF9TUlYgZ3JvdXBzPXNlY3AyNTZyMSBhdXRoX21vZGU9cmVxdWlyZWQiIFwKICAgICAgICAgICAgICIkUF9DTEkgZm9yY2VfY2lwaGVyc3VpdGU9VExTLUVDREhFLUVDRFNBLVdJVEgtQUVTLTEyOC1HQ00tU0hBMjU2IFwKLSAgICAgICAgICAgICBrZXlfZmlsZT1kYXRhX2ZpbGVzL3NlcnZlcjUua2V5IGNydF9maWxlPWRhdGFfZmlsZXMvc2VydmVyNS5jcnQgIFwKKyAgICAgICAgICAgICBrZXlfZmlsZT0kREFUQV9GSUxFU19QQVRIL3NlcnZlcjUua2V5IGNydF9maWxlPSREQVRBX0ZJTEVTX1BBVEgvc2VydmVyNS5jcnQgIFwKICAgICAgICAgICAgICBkZWJ1Z19sZXZlbD0xIiBcCiAgICAgICAgICAgICAwIFwKICAgICAgICAgICAgIC1DICJ4NTA5X3ZlcmlmeV9jZXJ0Lio0YjAwIiBcCkBAIC05NDUzLDcgKzk0NTUsNyBAQAogcnVuX3Rlc3QgICAgIkVDIHJlc3RhcnQ6IFRMUywgbWF4X29wcz0wIiBcCiAgICAgICAgICAgICAiJFBfU1JWIGdyb3Vwcz1zZWNwMjU2cjEgYXV0aF9tb2RlPXJlcXVpcmVkIiBcCiAgICAgICAgICAgICAiJFBfQ0xJIGZvcmNlX2NpcGhlcnN1aXRlPVRMUy1FQ0RIRS1FQ0RTQS1XSVRILUFFUy0xMjgtR0NNLVNIQTI1NiBcCi0gICAgICAgICAgICAga2V5X2ZpbGU9ZGF0YV9maWxlcy9zZXJ2ZXI1LmtleSBjcnRfZmlsZT1kYXRhX2ZpbGVzL3NlcnZlcjUuY3J0ICBcCisgICAgICAgICAgICAga2V5X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9zZXJ2ZXI1LmtleSBjcnRfZmlsZT0kREFUQV9GSUxFU19QQVRIL3NlcnZlcjUuY3J0ICBcCiAgICAgICAgICAgICAgZGVidWdfbGV2ZWw9MSBlY19tYXhfb3BzPTAiIFwKICAgICAgICAgICAgIDAgXAogICAgICAgICAgICAgLUMgIng1MDlfdmVyaWZ5X2NlcnQuKjRiMDAiIFwKQEAgLTk0NjYsNyArOTQ2OCw3IEBACiBydW5fdGVzdCAgICAiRUMgcmVzdGFydDogVExTLCBtYXhfb3BzPTY1NTM1IiBcCiAgICAgICAgICAgICAiJFBfU1JWIGdyb3Vwcz1zZWNwMjU2cjEgYXV0aF9tb2RlPXJlcXVpcmVkIiBcCiAgICAgICAgICAgICAiJFBfQ0xJIGZvcmNlX2NpcGhlcnN1aXRlPVRMUy1FQ0RIRS1FQ0RTQS1XSVRILUFFUy0xMjgtR0NNLVNIQTI1NiBcCi0gICAgICAgICAgICAga2V5X2ZpbGU9ZGF0YV9maWxlcy9zZXJ2ZXI1LmtleSBjcnRfZmlsZT1kYXRhX2ZpbGVzL3NlcnZlcjUuY3J0ICBcCisgICAgICAgICAgICAga2V5X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9zZXJ2ZXI1LmtleSBjcnRfZmlsZT0kREFUQV9GSUxFU19QQVRIL3NlcnZlcjUuY3J0ICBcCiAgICAgICAgICAgICAgZGVidWdfbGV2ZWw9MSBlY19tYXhfb3BzPTY1NTM1IiBcCiAgICAgICAgICAgICAwIFwKICAgICAgICAgICAgIC1DICJ4NTA5X3ZlcmlmeV9jZXJ0Lio0YjAwIiBcCkBAIC05NDgxLDcgKzk0ODMsNyBAQAogcnVuX3Rlc3QgICAgIkVDIHJlc3RhcnQ6IFRMUywgbWF4X29wcz0xMDAwIChubyBVU0VfUFNBKSIgXAogICAgICAgICAgICAgIiRQX1NSViBncm91cHM9c2VjcDI1NnIxIGF1dGhfbW9kZT1yZXF1aXJlZCIgXAogICAgICAgICAgICAgIiRQX0NMSSBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMtRUNESEUtRUNEU0EtV0lUSC1BRVMtMTI4LUdDTS1TSEEyNTYgXAotICAgICAgICAgICAgIGtleV9maWxlPWRhdGFfZmlsZXMvc2VydmVyNS5rZXkgY3J0X2ZpbGU9ZGF0YV9maWxlcy9zZXJ2ZXI1LmNydCAgXAorICAgICAgICAgICAgIGtleV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvc2VydmVyNS5rZXkgY3J0X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9zZXJ2ZXI1LmNydCAgXAogICAgICAgICAgICAgIGRlYnVnX2xldmVsPTEgZWNfbWF4X29wcz0xMDAwIiBcCiAgICAgICAgICAgICAwIFwKICAgICAgICAgICAgIC1jICJ4NTA5X3ZlcmlmeV9jZXJ0Lio0YjAwIiBcCkBAIC05NDk3LDcgKzk0OTksNyBAQAogcnVuX3Rlc3QgICAgIkVDIHJlc3RhcnQ6IFRMUywgbWF4X29wcz0xMDAwIChVU0VfUFNBKSIgXAogICAgICAgICAgICAgIiRQX1NSViBncm91cHM9c2VjcDI1NnIxIGF1dGhfbW9kZT1yZXF1aXJlZCIgXAogICAgICAgICAgICAgIiRQX0NMSSBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMtRUNESEUtRUNEU0EtV0lUSC1BRVMtMTI4LUdDTS1TSEEyNTYgXAotICAgICAgICAgICAgIGtleV9maWxlPWRhdGFfZmlsZXMvc2VydmVyNS5rZXkgY3J0X2ZpbGU9ZGF0YV9maWxlcy9zZXJ2ZXI1LmNydCAgXAorICAgICAgICAgICAgIGtleV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvc2VydmVyNS5rZXkgY3J0X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9zZXJ2ZXI1LmNydCAgXAogICAgICAgICAgICAgIGRlYnVnX2xldmVsPTEgZWNfbWF4X29wcz0xMDAwIiBcCiAgICAgICAgICAgICAwIFwKICAgICAgICAgICAgIC1jICJ4NTA5X3ZlcmlmeV9jZXJ0Lio0YjAwIiBcCkBAIC05NTExLDEwICs5NTEzLDEwIEBACiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBNQkVEVExTX0VDUF9EUF9TRUNQMjU2UjFfRU5BQkxFRAogcnVuX3Rlc3QgICAgIkVDIHJlc3RhcnQ6IFRMUywgbWF4X29wcz0xMDAwLCBiYWRzaWduIiBcCiAgICAgICAgICAgICAiJFBfU1JWIGdyb3Vwcz1zZWNwMjU2cjEgYXV0aF9tb2RlPXJlcXVpcmVkIFwKLSAgICAgICAgICAgICBjcnRfZmlsZT1kYXRhX2ZpbGVzL3NlcnZlcjUtYmFkc2lnbi5jcnQgXAotICAgICAgICAgICAgIGtleV9maWxlPWRhdGFfZmlsZXMvc2VydmVyNS5rZXkiIFwKKyAgICAgICAgICAgICBjcnRfZmlsZT0kREFUQV9GSUxFU19QQVRIL3NlcnZlcjUtYmFkc2lnbi5jcnQgXAorICAgICAgICAgICAgIGtleV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvc2VydmVyNS5rZXkiIFwKICAgICAgICAgICAgICIkUF9DTEkgZm9yY2VfY2lwaGVyc3VpdGU9VExTLUVDREhFLUVDRFNBLVdJVEgtQUVTLTEyOC1HQ00tU0hBMjU2IFwKLSAgICAgICAgICAgICBrZXlfZmlsZT1kYXRhX2ZpbGVzL3NlcnZlcjUua2V5IGNydF9maWxlPWRhdGFfZmlsZXMvc2VydmVyNS5jcnQgIFwKKyAgICAgICAgICAgICBrZXlfZmlsZT0kREFUQV9GSUxFU19QQVRIL3NlcnZlcjUua2V5IGNydF9maWxlPSREQVRBX0ZJTEVTX1BBVEgvc2VydmVyNS5jcnQgIFwKICAgICAgICAgICAgICBkZWJ1Z19sZXZlbD0xIGVjX21heF9vcHM9MTAwMCIgXAogICAgICAgICAgICAgMSBcCiAgICAgICAgICAgICAtYyAieDUwOV92ZXJpZnlfY2VydC4qNGIwMCIgXApAQCAtOTUzMSwxMCArOTUzMywxMCBAQAogcmVxdWlyZXNfY29uZmlnX2Rpc2FibGVkIE1CRURUTFNfVVNFX1BTQV9DUllQVE8KIHJ1bl90ZXN0ICAgICJFQyByZXN0YXJ0OiBUTFMsIG1heF9vcHM9MTAwMCwgYXV0aF9tb2RlPW9wdGlvbmFsIGJhZHNpZ24gKG5vIFVTRV9QU0EpIiBcCiAgICAgICAgICAgICAiJFBfU1JWIGdyb3Vwcz1zZWNwMjU2cjEgYXV0aF9tb2RlPXJlcXVpcmVkIFwKLSAgICAgICAgICAgICBjcnRfZmlsZT1kYXRhX2ZpbGVzL3NlcnZlcjUtYmFkc2lnbi5jcnQgXAotICAgICAgICAgICAgIGtleV9maWxlPWRhdGFfZmlsZXMvc2VydmVyNS5rZXkiIFwKKyAgICAgICAgICAgICBjcnRfZmlsZT0kREFUQV9GSUxFU19QQVRIL3NlcnZlcjUtYmFkc2lnbi5jcnQgXAorICAgICAgICAgICAgIGtleV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvc2VydmVyNS5rZXkiIFwKICAgICAgICAgICAgICIkUF9DTEkgZm9yY2VfY2lwaGVyc3VpdGU9VExTLUVDREhFLUVDRFNBLVdJVEgtQUVTLTEyOC1HQ00tU0hBMjU2IFwKLSAgICAgICAgICAgICBrZXlfZmlsZT1kYXRhX2ZpbGVzL3NlcnZlcjUua2V5IGNydF9maWxlPWRhdGFfZmlsZXMvc2VydmVyNS5jcnQgIFwKKyAgICAgICAgICAgICBrZXlfZmlsZT0kREFUQV9GSUxFU19QQVRIL3NlcnZlcjUua2V5IGNydF9maWxlPSREQVRBX0ZJTEVTX1BBVEgvc2VydmVyNS5jcnQgIFwKICAgICAgICAgICAgICBkZWJ1Z19sZXZlbD0xIGVjX21heF9vcHM9MTAwMCBhdXRoX21vZGU9b3B0aW9uYWwiIFwKICAgICAgICAgICAgIDAgXAogICAgICAgICAgICAgLWMgIng1MDlfdmVyaWZ5X2NlcnQuKjRiMDAiIFwKQEAgLTk1NTIsMTAgKzk1NTQsMTAgQEAKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIE1CRURUTFNfVVNFX1BTQV9DUllQVE8KIHJ1bl90ZXN0ICAgICJFQyByZXN0YXJ0OiBUTFMsIG1heF9vcHM9MTAwMCwgYXV0aF9tb2RlPW9wdGlvbmFsIGJhZHNpZ24gKFVTRV9QU0EpIiBcCiAgICAgICAgICAgICAiJFBfU1JWIGdyb3Vwcz1zZWNwMjU2cjEgYXV0aF9tb2RlPXJlcXVpcmVkIFwKLSAgICAgICAgICAgICBjcnRfZmlsZT1kYXRhX2ZpbGVzL3NlcnZlcjUtYmFkc2lnbi5jcnQgXAotICAgICAgICAgICAgIGtleV9maWxlPWRhdGFfZmlsZXMvc2VydmVyNS5rZXkiIFwKKyAgICAgICAgICAgICBjcnRfZmlsZT0kREFUQV9GSUxFU19QQVRIL3NlcnZlcjUtYmFkc2lnbi5jcnQgXAorICAgICAgICAgICAgIGtleV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvc2VydmVyNS5rZXkiIFwKICAgICAgICAgICAgICIkUF9DTEkgZm9yY2VfY2lwaGVyc3VpdGU9VExTLUVDREhFLUVDRFNBLVdJVEgtQUVTLTEyOC1HQ00tU0hBMjU2IFwKLSAgICAgICAgICAgICBrZXlfZmlsZT1kYXRhX2ZpbGVzL3NlcnZlcjUua2V5IGNydF9maWxlPWRhdGFfZmlsZXMvc2VydmVyNS5jcnQgIFwKKyAgICAgICAgICAgICBrZXlfZmlsZT0kREFUQV9GSUxFU19QQVRIL3NlcnZlcjUua2V5IGNydF9maWxlPSREQVRBX0ZJTEVTX1BBVEgvc2VydmVyNS5jcnQgIFwKICAgICAgICAgICAgICBkZWJ1Z19sZXZlbD0xIGVjX21heF9vcHM9MTAwMCBhdXRoX21vZGU9b3B0aW9uYWwiIFwKICAgICAgICAgICAgIDAgXAogICAgICAgICAgICAgLWMgIng1MDlfdmVyaWZ5X2NlcnQuKjRiMDAiIFwKQEAgLTk1NzIsMTAgKzk1NzQsMTAgQEAKIHJlcXVpcmVzX2NvbmZpZ19kaXNhYmxlZCBNQkVEVExTX1VTRV9QU0FfQ1JZUFRPCiBydW5fdGVzdCAgICAiRUMgcmVzdGFydDogVExTLCBtYXhfb3BzPTEwMDAsIGF1dGhfbW9kZT1ub25lIGJhZHNpZ24gKG5vIFVTRV9QU0EpIiBcCiAgICAgICAgICAgICAiJFBfU1JWIGdyb3Vwcz1zZWNwMjU2cjEgYXV0aF9tb2RlPXJlcXVpcmVkIFwKLSAgICAgICAgICAgICBjcnRfZmlsZT1kYXRhX2ZpbGVzL3NlcnZlcjUtYmFkc2lnbi5jcnQgXAotICAgICAgICAgICAgIGtleV9maWxlPWRhdGFfZmlsZXMvc2VydmVyNS5rZXkiIFwKKyAgICAgICAgICAgICBjcnRfZmlsZT0kREFUQV9GSUxFU19QQVRIL3NlcnZlcjUtYmFkc2lnbi5jcnQgXAorICAgICAgICAgICAgIGtleV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvc2VydmVyNS5rZXkiIFwKICAgICAgICAgICAgICIkUF9DTEkgZm9yY2VfY2lwaGVyc3VpdGU9VExTLUVDREhFLUVDRFNBLVdJVEgtQUVTLTEyOC1HQ00tU0hBMjU2IFwKLSAgICAgICAgICAgICBrZXlfZmlsZT1kYXRhX2ZpbGVzL3NlcnZlcjUua2V5IGNydF9maWxlPWRhdGFfZmlsZXMvc2VydmVyNS5jcnQgIFwKKyAgICAgICAgICAgICBrZXlfZmlsZT0kREFUQV9GSUxFU19QQVRIL3NlcnZlcjUua2V5IGNydF9maWxlPSREQVRBX0ZJTEVTX1BBVEgvc2VydmVyNS5jcnQgIFwKICAgICAgICAgICAgICBkZWJ1Z19sZXZlbD0xIGVjX21heF9vcHM9MTAwMCBhdXRoX21vZGU9bm9uZSIgXAogICAgICAgICAgICAgMCBcCiAgICAgICAgICAgICAtQyAieDUwOV92ZXJpZnlfY2VydC4qNGIwMCIgXApAQCAtOTU5MywxMCArOTU5NSwxMCBAQAogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgTUJFRFRMU19VU0VfUFNBX0NSWVBUTwogcnVuX3Rlc3QgICAgIkVDIHJlc3RhcnQ6IFRMUywgbWF4X29wcz0xMDAwLCBhdXRoX21vZGU9bm9uZSBiYWRzaWduIChVU0VfUFNBKSIgXAogICAgICAgICAgICAgIiRQX1NSViBncm91cHM9c2VjcDI1NnIxIGF1dGhfbW9kZT1yZXF1aXJlZCBcCi0gICAgICAgICAgICAgY3J0X2ZpbGU9ZGF0YV9maWxlcy9zZXJ2ZXI1LWJhZHNpZ24uY3J0IFwKLSAgICAgICAgICAgICBrZXlfZmlsZT1kYXRhX2ZpbGVzL3NlcnZlcjUua2V5IiBcCisgICAgICAgICAgICAgY3J0X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9zZXJ2ZXI1LWJhZHNpZ24uY3J0IFwKKyAgICAgICAgICAgICBrZXlfZmlsZT0kREFUQV9GSUxFU19QQVRIL3NlcnZlcjUua2V5IiBcCiAgICAgICAgICAgICAiJFBfQ0xJIGZvcmNlX2NpcGhlcnN1aXRlPVRMUy1FQ0RIRS1FQ0RTQS1XSVRILUFFUy0xMjgtR0NNLVNIQTI1NiBcCi0gICAgICAgICAgICAga2V5X2ZpbGU9ZGF0YV9maWxlcy9zZXJ2ZXI1LmtleSBjcnRfZmlsZT1kYXRhX2ZpbGVzL3NlcnZlcjUuY3J0ICBcCisgICAgICAgICAgICAga2V5X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9zZXJ2ZXI1LmtleSBjcnRfZmlsZT0kREFUQV9GSUxFU19QQVRIL3NlcnZlcjUuY3J0ICBcCiAgICAgICAgICAgICAgZGVidWdfbGV2ZWw9MSBlY19tYXhfb3BzPTEwMDAgYXV0aF9tb2RlPW5vbmUiIFwKICAgICAgICAgICAgIDAgXAogICAgICAgICAgICAgLUMgIng1MDlfdmVyaWZ5X2NlcnQuKjRiMDAiIFwKQEAgLTk2MTQsNyArOTYxNiw3IEBACiBydW5fdGVzdCAgICAiRUMgcmVzdGFydDogRFRMUywgbWF4X29wcz0xMDAwIChubyBVU0VfUFNBKSIgXAogICAgICAgICAgICAgIiRQX1NSViBncm91cHM9c2VjcDI1NnIxIGF1dGhfbW9kZT1yZXF1aXJlZCBkdGxzPTEiIFwKICAgICAgICAgICAgICIkUF9DTEkgZm9yY2VfY2lwaGVyc3VpdGU9VExTLUVDREhFLUVDRFNBLVdJVEgtQUVTLTEyOC1HQ00tU0hBMjU2IFwKLSAgICAgICAgICAgICBrZXlfZmlsZT1kYXRhX2ZpbGVzL3NlcnZlcjUua2V5IGNydF9maWxlPWRhdGFfZmlsZXMvc2VydmVyNS5jcnQgIFwKKyAgICAgICAgICAgICBrZXlfZmlsZT0kREFUQV9GSUxFU19QQVRIL3NlcnZlcjUua2V5IGNydF9maWxlPSREQVRBX0ZJTEVTX1BBVEgvc2VydmVyNS5jcnQgIFwKICAgICAgICAgICAgICBkdGxzPTEgZGVidWdfbGV2ZWw9MSBlY19tYXhfb3BzPTEwMDAiIFwKICAgICAgICAgICAgIDAgXAogICAgICAgICAgICAgLWMgIng1MDlfdmVyaWZ5X2NlcnQuKjRiMDAiIFwKQEAgLTk2MzAsNyArOTYzMiw3IEBACiBydW5fdGVzdCAgICAiRUMgcmVzdGFydDogRFRMUywgbWF4X29wcz0xMDAwIChVU0VfUFNBKSIgXAogICAgICAgICAgICAgIiRQX1NSViBncm91cHM9c2VjcDI1NnIxIGF1dGhfbW9kZT1yZXF1aXJlZCBkdGxzPTEiIFwKICAgICAgICAgICAgICIkUF9DTEkgZm9yY2VfY2lwaGVyc3VpdGU9VExTLUVDREhFLUVDRFNBLVdJVEgtQUVTLTEyOC1HQ00tU0hBMjU2IFwKLSAgICAgICAgICAgICBrZXlfZmlsZT1kYXRhX2ZpbGVzL3NlcnZlcjUua2V5IGNydF9maWxlPWRhdGFfZmlsZXMvc2VydmVyNS5jcnQgIFwKKyAgICAgICAgICAgICBrZXlfZmlsZT0kREFUQV9GSUxFU19QQVRIL3NlcnZlcjUua2V5IGNydF9maWxlPSREQVRBX0ZJTEVTX1BBVEgvc2VydmVyNS5jcnQgIFwKICAgICAgICAgICAgICBkdGxzPTEgZGVidWdfbGV2ZWw9MSBlY19tYXhfb3BzPTEwMDAiIFwKICAgICAgICAgICAgIDAgXAogICAgICAgICAgICAgLWMgIng1MDlfdmVyaWZ5X2NlcnQuKjRiMDAiIFwKQEAgLTk2NzcsNyArOTY3OSw3IEBACiBydW5fdGVzdCAgICAiRUMgcmVzdGFydDogVExTLCBtYXhfb3BzPTEwMDAsIEVDREhFLVJTQSIgXAogICAgICAgICAgICAgIiRQX1NSViBncm91cHM9c2VjcDI1NnIxIGF1dGhfbW9kZT1yZXF1aXJlZCIgXAogICAgICAgICAgICAgIiRQX0NMSSBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMtRUNESEUtUlNBLVdJVEgtQUVTLTEyOC1HQ00tU0hBMjU2IFwKLSAgICAgICAgICAgICBrZXlfZmlsZT1kYXRhX2ZpbGVzL3NlcnZlcjUua2V5IGNydF9maWxlPWRhdGFfZmlsZXMvc2VydmVyNS5jcnQgIFwKKyAgICAgICAgICAgICBrZXlfZmlsZT0kREFUQV9GSUxFU19QQVRIL3NlcnZlcjUua2V5IGNydF9maWxlPSREQVRBX0ZJTEVTX1BBVEgvc2VydmVyNS5jcnQgIFwKICAgICAgICAgICAgICBkZWJ1Z19sZXZlbD0xIGVjX21heF9vcHM9MTAwMCIgXAogICAgICAgICAgICAgMCBcCiAgICAgICAgICAgICAtQyAieDUwOV92ZXJpZnlfY2VydC4qNGIwMCIgXApAQCAtOTcyMyw4ICs5NzI1LDggQEAKIHJ1bl90ZXN0ICAgICJTU0wgYXN5bmMgcHJpdmF0ZTogc2lnbiwgU05JIiBcCiAgICAgICAgICAgICAiJFBfU1JWIGZvcmNlX3ZlcnNpb249dGxzMTIgZGVidWdfbGV2ZWw9MyBcCiAgICAgICAgICAgICAgYXN5bmNfb3BlcmF0aW9ucz1zIGFzeW5jX3ByaXZhdGVfZGVsYXkxPTAgYXN5bmNfcHJpdmF0ZV9kZWxheTI9MCBcCi0gICAgICAgICAgICAgY3J0X2ZpbGU9ZGF0YV9maWxlcy9zZXJ2ZXI1LmNydCBrZXlfZmlsZT1kYXRhX2ZpbGVzL3NlcnZlcjUua2V5IFwKLSAgICAgICAgICAgICBzbmk9bG9jYWxob3N0LGRhdGFfZmlsZXMvc2VydmVyMi5jcnQsZGF0YV9maWxlcy9zZXJ2ZXIyLmtleSwtLC0sLSxwb2xhcnNzbC5leGFtcGxlLGRhdGFfZmlsZXMvc2VydmVyMS1ub3NwYWNlLmNydCxkYXRhX2ZpbGVzL3NlcnZlcjEua2V5LC0sLSwtIiBcCisgICAgICAgICAgICAgY3J0X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9zZXJ2ZXI1LmNydCBrZXlfZmlsZT0kREFUQV9GSUxFU19QQVRIL3NlcnZlcjUua2V5IFwKKyAgICAgICAgICAgICBzbmk9bG9jYWxob3N0LCREQVRBX0ZJTEVTX1BBVEgvc2VydmVyMi5jcnQsJERBVEFfRklMRVNfUEFUSC9zZXJ2ZXIyLmtleSwtLC0sLSxwb2xhcnNzbC5leGFtcGxlLCREQVRBX0ZJTEVTX1BBVEgvc2VydmVyMS1ub3NwYWNlLmNydCwkREFUQV9GSUxFU19QQVRIL3NlcnZlcjEua2V5LC0sLSwtIiBcCiAgICAgICAgICAgICAiJFBfQ0xJIHNlcnZlcl9uYW1lPXBvbGFyc3NsLmV4YW1wbGUiIFwKICAgICAgICAgICAgIDAgXAogICAgICAgICAgICAgLXMgIkFzeW5jIHNpZ24gY2FsbGJhY2s6IHVzaW5nIGtleSBzbG90ICIgXApAQCAtOTgwNCw4ICs5ODA2LDggQEAKIHJ1bl90ZXN0ICAgICJTU0wgYXN5bmMgcHJpdmF0ZTogc2xvdCAwIHVzZWQgd2l0aCBrZXkxIiBcCiAgICAgICAgICAgICAiJFBfU1JWIFwKICAgICAgICAgICAgICBhc3luY19vcGVyYXRpb25zPXMgYXN5bmNfcHJpdmF0ZV9kZWxheTE9MSBcCi0gICAgICAgICAgICAga2V5X2ZpbGU9ZGF0YV9maWxlcy9zZXJ2ZXI1LmtleSBjcnRfZmlsZT1kYXRhX2ZpbGVzL3NlcnZlcjUuY3J0IFwKLSAgICAgICAgICAgICBrZXlfZmlsZTI9ZGF0YV9maWxlcy9zZXJ2ZXIyLmtleSBjcnRfZmlsZTI9ZGF0YV9maWxlcy9zZXJ2ZXIyLmNydCIgXAorICAgICAgICAgICAgIGtleV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvc2VydmVyNS5rZXkgY3J0X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9zZXJ2ZXI1LmNydCBcCisgICAgICAgICAgICAga2V5X2ZpbGUyPSREQVRBX0ZJTEVTX1BBVEgvc2VydmVyMi5rZXkgY3J0X2ZpbGUyPSREQVRBX0ZJTEVTX1BBVEgvc2VydmVyMi5jcnQiIFwKICAgICAgICAgICAgICIkUF9DTEkgZm9yY2VfY2lwaGVyc3VpdGU9VExTLUVDREhFLUVDRFNBLVdJVEgtQUVTLTEyOC1DQkMtU0hBMjU2IiBcCiAgICAgICAgICAgICAwIFwKICAgICAgICAgICAgIC1zICJBc3luYyBzaWduIGNhbGxiYWNrOiB1c2luZyBrZXkgc2xvdCAwLCIgXApAQCAtOTgxNyw4ICs5ODE5LDggQEAKIHJ1bl90ZXN0ICAgICJTU0wgYXN5bmMgcHJpdmF0ZTogc2xvdCAwIHVzZWQgd2l0aCBrZXkyIiBcCiAgICAgICAgICAgICAiJFBfU1JWIFwKICAgICAgICAgICAgICBhc3luY19vcGVyYXRpb25zPXMgYXN5bmNfcHJpdmF0ZV9kZWxheTI9MSBcCi0gICAgICAgICAgICAga2V5X2ZpbGU9ZGF0YV9maWxlcy9zZXJ2ZXI1LmtleSBjcnRfZmlsZT1kYXRhX2ZpbGVzL3NlcnZlcjUuY3J0IFwKLSAgICAgICAgICAgICBrZXlfZmlsZTI9ZGF0YV9maWxlcy9zZXJ2ZXIyLmtleSBjcnRfZmlsZTI9ZGF0YV9maWxlcy9zZXJ2ZXIyLmNydCIgXAorICAgICAgICAgICAgIGtleV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvc2VydmVyNS5rZXkgY3J0X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9zZXJ2ZXI1LmNydCBcCisgICAgICAgICAgICAga2V5X2ZpbGUyPSREQVRBX0ZJTEVTX1BBVEgvc2VydmVyMi5rZXkgY3J0X2ZpbGUyPSREQVRBX0ZJTEVTX1BBVEgvc2VydmVyMi5jcnQiIFwKICAgICAgICAgICAgICIkUF9DTEkgZm9yY2VfY2lwaGVyc3VpdGU9VExTLUVDREhFLVJTQS1XSVRILUFFUy0xMjgtQ0JDLVNIQTI1NiIgXAogICAgICAgICAgICAgMCBcCiAgICAgICAgICAgICAtcyAiQXN5bmMgc2lnbiBjYWxsYmFjazogdXNpbmcga2V5IHNsb3QgMCwiIFwKQEAgLTk4MzAsOCArOTgzMiw4IEBACiBydW5fdGVzdCAgICAiU1NMIGFzeW5jIHByaXZhdGU6IHNsb3QgMSB1c2VkIHdpdGgga2V5MiIgXAogICAgICAgICAgICAgIiRQX1NSViBcCiAgICAgICAgICAgICAgYXN5bmNfb3BlcmF0aW9ucz1zIGFzeW5jX3ByaXZhdGVfZGVsYXkxPTEgYXN5bmNfcHJpdmF0ZV9kZWxheTI9MSBcCi0gICAgICAgICAgICAga2V5X2ZpbGU9ZGF0YV9maWxlcy9zZXJ2ZXI1LmtleSBjcnRfZmlsZT1kYXRhX2ZpbGVzL3NlcnZlcjUuY3J0IFwKLSAgICAgICAgICAgICBrZXlfZmlsZTI9ZGF0YV9maWxlcy9zZXJ2ZXIyLmtleSBjcnRfZmlsZTI9ZGF0YV9maWxlcy9zZXJ2ZXIyLmNydCIgXAorICAgICAgICAgICAgIGtleV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvc2VydmVyNS5rZXkgY3J0X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9zZXJ2ZXI1LmNydCBcCisgICAgICAgICAgICAga2V5X2ZpbGUyPSREQVRBX0ZJTEVTX1BBVEgvc2VydmVyMi5rZXkgY3J0X2ZpbGUyPSREQVRBX0ZJTEVTX1BBVEgvc2VydmVyMi5jcnQiIFwKICAgICAgICAgICAgICIkUF9DTEkgZm9yY2VfY2lwaGVyc3VpdGU9VExTLUVDREhFLVJTQS1XSVRILUFFUy0xMjgtQ0JDLVNIQTI1NiIgXAogICAgICAgICAgICAgMCBcCiAgICAgICAgICAgICAtcyAiQXN5bmMgc2lnbiBjYWxsYmFjazogdXNpbmcga2V5IHNsb3QgMSwiIFwKQEAgLTk4NDMsOCArOTg0NSw4IEBACiBydW5fdGVzdCAgICAiU1NMIGFzeW5jIHByaXZhdGU6IGZhbGwgYmFjayB0byB0cmFuc3BhcmVudCBrZXkiIFwKICAgICAgICAgICAgICIkUF9TUlYgXAogICAgICAgICAgICAgIGFzeW5jX29wZXJhdGlvbnM9cyBhc3luY19wcml2YXRlX2RlbGF5MT0xIFwKLSAgICAgICAgICAgICBrZXlfZmlsZT1kYXRhX2ZpbGVzL3NlcnZlcjUua2V5IGNydF9maWxlPWRhdGFfZmlsZXMvc2VydmVyNS5jcnQgXAotICAgICAgICAgICAgIGtleV9maWxlMj1kYXRhX2ZpbGVzL3NlcnZlcjIua2V5IGNydF9maWxlMj1kYXRhX2ZpbGVzL3NlcnZlcjIuY3J0ICIgXAorICAgICAgICAgICAgIGtleV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvc2VydmVyNS5rZXkgY3J0X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9zZXJ2ZXI1LmNydCBcCisgICAgICAgICAgICAga2V5X2ZpbGUyPSREQVRBX0ZJTEVTX1BBVEgvc2VydmVyMi5rZXkgY3J0X2ZpbGUyPSREQVRBX0ZJTEVTX1BBVEgvc2VydmVyMi5jcnQgIiBcCiAgICAgICAgICAgICAiJFBfQ0xJIGZvcmNlX2NpcGhlcnN1aXRlPVRMUy1FQ0RIRS1SU0EtV0lUSC1BRVMtMTI4LUNCQy1TSEEyNTYiIFwKICAgICAgICAgICAgIDAgXAogICAgICAgICAgICAgLXMgIkFzeW5jIHNpZ24gY2FsbGJhY2s6IG5vIGtleSBtYXRjaGVzIHRoaXMgY2VydGlmaWNhdGUuIgpAQCAtOTk1MSw4ICs5OTUzLDggQEAKIHJ1bl90ZXN0ICAgICJTU0wgYXN5bmMgcHJpdmF0ZTogY2FuY2VsIGFmdGVyIHN0YXJ0IHRoZW4gZmFsbCBiYWNrIHRvIHRyYW5zcGFyZW50IGtleSIgXAogICAgICAgICAgICAgIiRQX1NSViBcCiAgICAgICAgICAgICAgYXN5bmNfb3BlcmF0aW9ucz1zIGFzeW5jX3ByaXZhdGVfZGVsYXkxPTEgYXN5bmNfcHJpdmF0ZV9lcnJvcj0tMiBcCi0gICAgICAgICAgICAga2V5X2ZpbGU9ZGF0YV9maWxlcy9zZXJ2ZXI1LmtleSBjcnRfZmlsZT1kYXRhX2ZpbGVzL3NlcnZlcjUuY3J0IFwKLSAgICAgICAgICAgICBrZXlfZmlsZTI9ZGF0YV9maWxlcy9zZXJ2ZXIyLmtleSBjcnRfZmlsZTI9ZGF0YV9maWxlcy9zZXJ2ZXIyLmNydCIgXAorICAgICAgICAgICAgIGtleV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvc2VydmVyNS5rZXkgY3J0X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9zZXJ2ZXI1LmNydCBcCisgICAgICAgICAgICAga2V5X2ZpbGUyPSREQVRBX0ZJTEVTX1BBVEgvc2VydmVyMi5rZXkgY3J0X2ZpbGUyPSREQVRBX0ZJTEVTX1BBVEgvc2VydmVyMi5jcnQiIFwKICAgICAgICAgICAgICIkUF9DTEkgZm9yY2VfY2lwaGVyc3VpdGU9VExTLUVDREhFLUVDRFNBLVdJVEgtQUVTLTEyOC1DQkMtU0hBMjU2OwogICAgICAgICAgICAgIFsgXCQ/IC1lcSAxIF0gJiYKICAgICAgICAgICAgICAkUF9DTEkgZm9yY2VfY2lwaGVyc3VpdGU9VExTLUVDREhFLVJTQS1XSVRILUFFUy0xMjgtQ0JDLVNIQTI1NiIgXApAQCAtOTk3Myw4ICs5OTc1LDggQEAKIHJ1bl90ZXN0ICAgICJTU0wgYXN5bmMgcHJpdmF0ZTogc2lnbiwgZXJyb3IgaW4gcmVzdW1lIHRoZW4gZmFsbCBiYWNrIHRvIHRyYW5zcGFyZW50IGtleSIgXAogICAgICAgICAgICAgIiRQX1NSViBcCiAgICAgICAgICAgICAgYXN5bmNfb3BlcmF0aW9ucz1zIGFzeW5jX3ByaXZhdGVfZGVsYXkxPTEgYXN5bmNfcHJpdmF0ZV9lcnJvcj0tMyBcCi0gICAgICAgICAgICAga2V5X2ZpbGU9ZGF0YV9maWxlcy9zZXJ2ZXI1LmtleSBjcnRfZmlsZT1kYXRhX2ZpbGVzL3NlcnZlcjUuY3J0IFwKLSAgICAgICAgICAgICBrZXlfZmlsZTI9ZGF0YV9maWxlcy9zZXJ2ZXIyLmtleSBjcnRfZmlsZTI9ZGF0YV9maWxlcy9zZXJ2ZXIyLmNydCIgXAorICAgICAgICAgICAgIGtleV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvc2VydmVyNS5rZXkgY3J0X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9zZXJ2ZXI1LmNydCBcCisgICAgICAgICAgICAga2V5X2ZpbGUyPSREQVRBX0ZJTEVTX1BBVEgvc2VydmVyMi5rZXkgY3J0X2ZpbGUyPSREQVRBX0ZJTEVTX1BBVEgvc2VydmVyMi5jcnQiIFwKICAgICAgICAgICAgICIkUF9DTEkgZm9yY2VfY2lwaGVyc3VpdGU9VExTLUVDREhFLUVDRFNBLVdJVEgtQUVTLTEyOC1DQkMtU0hBMjU2OwogICAgICAgICAgICAgIFsgXCQ/IC1lcSAxIF0gJiYKICAgICAgICAgICAgICAkUF9DTEkgZm9yY2VfY2lwaGVyc3VpdGU9VExTLUVDREhFLVJTQS1XSVRILUFFUy0xMjgtQ0JDLVNIQTI1NiIgXApAQCAtMTAzNDEsMTMgKzEwMzQzLDEzIEBACiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBNQkVEVExTX1NTTF9QUk9UT19UTFMxXzIKIHJ1bl90ZXN0ICAgICJEVExTIGZyYWdtZW50aW5nOiBub25lIChmb3IgcmVmZXJlbmNlKSIgXAogICAgICAgICAgICAgIiRQX1NSViBkdGxzPTEgZGVidWdfbGV2ZWw9MiBhdXRoX21vZGU9cmVxdWlyZWQgXAotICAgICAgICAgICAgIGNydF9maWxlPWRhdGFfZmlsZXMvc2VydmVyN19pbnQtY2EuY3J0IFwKLSAgICAgICAgICAgICBrZXlfZmlsZT1kYXRhX2ZpbGVzL3NlcnZlcjcua2V5IFwKKyAgICAgICAgICAgICBjcnRfZmlsZT0kREFUQV9GSUxFU19QQVRIL3NlcnZlcjdfaW50LWNhLmNydCBcCisgICAgICAgICAgICAga2V5X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9zZXJ2ZXI3LmtleSBcCiAgICAgICAgICAgICAgaHNfdGltZW91dD0yNTAwLTYwMDAwIFwKICAgICAgICAgICAgICBtYXhfZnJhZ19sZW49NDA5NiIgXAogICAgICAgICAgICAgIiRQX0NMSSBkdGxzPTEgZGVidWdfbGV2ZWw9MiBcCi0gICAgICAgICAgICAgY3J0X2ZpbGU9ZGF0YV9maWxlcy9zZXJ2ZXI4X2ludC1jYTIuY3J0IFwKLSAgICAgICAgICAgICBrZXlfZmlsZT1kYXRhX2ZpbGVzL3NlcnZlcjgua2V5IFwKKyAgICAgICAgICAgICBjcnRfZmlsZT0kREFUQV9GSUxFU19QQVRIL3NlcnZlcjhfaW50LWNhMi5jcnQgXAorICAgICAgICAgICAgIGtleV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvc2VydmVyOC5rZXkgXAogICAgICAgICAgICAgIGhzX3RpbWVvdXQ9MjUwMC02MDAwMCBcCiAgICAgICAgICAgICAgbWF4X2ZyYWdfbGVuPTQwOTYiIFwKICAgICAgICAgICAgIDAgXApAQCAtMTAzNjIsMTMgKzEwMzY0LDEzIEBACiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBNQkVEVExTX1NTTF9QUk9UT19UTFMxXzIKIHJ1bl90ZXN0ICAgICJEVExTIGZyYWdtZW50aW5nOiBzZXJ2ZXIgb25seSAobWF4X2ZyYWdfbGVuKSIgXAogICAgICAgICAgICAgIiRQX1NSViBkdGxzPTEgZGVidWdfbGV2ZWw9MiBhdXRoX21vZGU9cmVxdWlyZWQgXAotICAgICAgICAgICAgIGNydF9maWxlPWRhdGFfZmlsZXMvc2VydmVyN19pbnQtY2EuY3J0IFwKLSAgICAgICAgICAgICBrZXlfZmlsZT1kYXRhX2ZpbGVzL3NlcnZlcjcua2V5IFwKKyAgICAgICAgICAgICBjcnRfZmlsZT0kREFUQV9GSUxFU19QQVRIL3NlcnZlcjdfaW50LWNhLmNydCBcCisgICAgICAgICAgICAga2V5X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9zZXJ2ZXI3LmtleSBcCiAgICAgICAgICAgICAgaHNfdGltZW91dD0yNTAwLTYwMDAwIFwKICAgICAgICAgICAgICBtYXhfZnJhZ19sZW49MTAyNCIgXAogICAgICAgICAgICAgIiRQX0NMSSBkdGxzPTEgZGVidWdfbGV2ZWw9MiBcCi0gICAgICAgICAgICAgY3J0X2ZpbGU9ZGF0YV9maWxlcy9zZXJ2ZXI4X2ludC1jYTIuY3J0IFwKLSAgICAgICAgICAgICBrZXlfZmlsZT1kYXRhX2ZpbGVzL3NlcnZlcjgua2V5IFwKKyAgICAgICAgICAgICBjcnRfZmlsZT0kREFUQV9GSUxFU19QQVRIL3NlcnZlcjhfaW50LWNhMi5jcnQgXAorICAgICAgICAgICAgIGtleV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvc2VydmVyOC5rZXkgXAogICAgICAgICAgICAgIGhzX3RpbWVvdXQ9MjUwMC02MDAwMCBcCiAgICAgICAgICAgICAgbWF4X2ZyYWdfbGVuPTIwNDgiIFwKICAgICAgICAgICAgIDAgXApAQCAtMTAzODcsMTMgKzEwMzg5LDEzIEBACiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBNQkVEVExTX1NTTF9QUk9UT19UTFMxXzIKIHJ1bl90ZXN0ICAgICJEVExTIGZyYWdtZW50aW5nOiBzZXJ2ZXIgb25seSAobW9yZSkgKG1heF9mcmFnX2xlbikiIFwKICAgICAgICAgICAgICIkUF9TUlYgZHRscz0xIGRlYnVnX2xldmVsPTIgYXV0aF9tb2RlPXJlcXVpcmVkIFwKLSAgICAgICAgICAgICBjcnRfZmlsZT1kYXRhX2ZpbGVzL3NlcnZlcjdfaW50LWNhLmNydCBcCi0gICAgICAgICAgICAga2V5X2ZpbGU9ZGF0YV9maWxlcy9zZXJ2ZXI3LmtleSBcCisgICAgICAgICAgICAgY3J0X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9zZXJ2ZXI3X2ludC1jYS5jcnQgXAorICAgICAgICAgICAgIGtleV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvc2VydmVyNy5rZXkgXAogICAgICAgICAgICAgIGhzX3RpbWVvdXQ9MjUwMC02MDAwMCBcCiAgICAgICAgICAgICAgbWF4X2ZyYWdfbGVuPTUxMiIgXAogICAgICAgICAgICAgIiRQX0NMSSBkdGxzPTEgZGVidWdfbGV2ZWw9MiBcCi0gICAgICAgICAgICAgY3J0X2ZpbGU9ZGF0YV9maWxlcy9zZXJ2ZXI4X2ludC1jYTIuY3J0IFwKLSAgICAgICAgICAgICBrZXlfZmlsZT1kYXRhX2ZpbGVzL3NlcnZlcjgua2V5IFwKKyAgICAgICAgICAgICBjcnRfZmlsZT0kREFUQV9GSUxFU19QQVRIL3NlcnZlcjhfaW50LWNhMi5jcnQgXAorICAgICAgICAgICAgIGtleV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvc2VydmVyOC5rZXkgXAogICAgICAgICAgICAgIGhzX3RpbWVvdXQ9MjUwMC02MDAwMCBcCiAgICAgICAgICAgICAgbWF4X2ZyYWdfbGVuPTQwOTYiIFwKICAgICAgICAgICAgIDAgXApAQCAtMTA0MDgsMTMgKzEwNDEwLDEzIEBACiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBNQkVEVExTX1NTTF9QUk9UT19UTFMxXzIKIHJ1bl90ZXN0ICAgICJEVExTIGZyYWdtZW50aW5nOiBjbGllbnQtaW5pdGlhdGVkLCBzZXJ2ZXIgb25seSAobWF4X2ZyYWdfbGVuKSIgXAogICAgICAgICAgICAgIiRQX1NSViBkdGxzPTEgZGVidWdfbGV2ZWw9MiBhdXRoX21vZGU9bm9uZSBcCi0gICAgICAgICAgICAgY3J0X2ZpbGU9ZGF0YV9maWxlcy9zZXJ2ZXI3X2ludC1jYS5jcnQgXAotICAgICAgICAgICAgIGtleV9maWxlPWRhdGFfZmlsZXMvc2VydmVyNy5rZXkgXAorICAgICAgICAgICAgIGNydF9maWxlPSREQVRBX0ZJTEVTX1BBVEgvc2VydmVyN19pbnQtY2EuY3J0IFwKKyAgICAgICAgICAgICBrZXlfZmlsZT0kREFUQV9GSUxFU19QQVRIL3NlcnZlcjcua2V5IFwKICAgICAgICAgICAgICBoc190aW1lb3V0PTI1MDAtNjAwMDAgXAogICAgICAgICAgICAgIG1heF9mcmFnX2xlbj0yMDQ4IiBcCiAgICAgICAgICAgICAiJFBfQ0xJIGR0bHM9MSBkZWJ1Z19sZXZlbD0yIFwKLSAgICAgICAgICAgICBjcnRfZmlsZT1kYXRhX2ZpbGVzL3NlcnZlcjhfaW50LWNhMi5jcnQgXAotICAgICAgICAgICAgIGtleV9maWxlPWRhdGFfZmlsZXMvc2VydmVyOC5rZXkgXAorICAgICAgICAgICAgIGNydF9maWxlPSREQVRBX0ZJTEVTX1BBVEgvc2VydmVyOF9pbnQtY2EyLmNydCBcCisgICAgICAgICAgICAga2V5X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9zZXJ2ZXI4LmtleSBcCiAgICAgICAgICAgICAgaHNfdGltZW91dD0yNTAwLTYwMDAwIFwKICAgICAgICAgICAgICBtYXhfZnJhZ19sZW49MTAyNCIgXAogICAgICAgICAgICAgIDAgXApAQCAtMTA0MzcsMTMgKzEwNDM5LDEzIEBACiBydW5fdGVzdCAgICAiRFRMUyBmcmFnbWVudGluZzogY2xpZW50LWluaXRpYXRlZCwgc2VydmVyIG9ubHkgKG1heF9mcmFnX2xlbiksIHByb3h5IE1UVSIgXAogICAgICAgICAgICAgLXAgIiRQX1BYWSBtdHU9MTExMCIgXAogICAgICAgICAgICAgIiRQX1NSViBkdGxzPTEgZGVidWdfbGV2ZWw9MiBhdXRoX21vZGU9bm9uZSBcCi0gICAgICAgICAgICAgY3J0X2ZpbGU9ZGF0YV9maWxlcy9zZXJ2ZXI3X2ludC1jYS5jcnQgXAotICAgICAgICAgICAgIGtleV9maWxlPWRhdGFfZmlsZXMvc2VydmVyNy5rZXkgXAorICAgICAgICAgICAgIGNydF9maWxlPSREQVRBX0ZJTEVTX1BBVEgvc2VydmVyN19pbnQtY2EuY3J0IFwKKyAgICAgICAgICAgICBrZXlfZmlsZT0kREFUQV9GSUxFU19QQVRIL3NlcnZlcjcua2V5IFwKICAgICAgICAgICAgICBoc190aW1lb3V0PTI1MDAtNjAwMDAgXAogICAgICAgICAgICAgIG1heF9mcmFnX2xlbj0yMDQ4IiBcCiAgICAgICAgICAgICAiJFBfQ0xJIGR0bHM9MSBkZWJ1Z19sZXZlbD0yIFwKLSAgICAgICAgICAgICBjcnRfZmlsZT1kYXRhX2ZpbGVzL3NlcnZlcjhfaW50LWNhMi5jcnQgXAotICAgICAgICAgICAgIGtleV9maWxlPWRhdGFfZmlsZXMvc2VydmVyOC5rZXkgXAorICAgICAgICAgICAgIGNydF9maWxlPSREQVRBX0ZJTEVTX1BBVEgvc2VydmVyOF9pbnQtY2EyLmNydCBcCisgICAgICAgICAgICAga2V5X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9zZXJ2ZXI4LmtleSBcCiAgICAgICAgICAgICAgaHNfdGltZW91dD0yNTAwLTYwMDAwIFwKICAgICAgICAgICAgICBtYXhfZnJhZ19sZW49MTAyNCIgXAogICAgICAgICAgICAgMCBcCkBAIC0xMDQ1OCwxMyArMTA0NjAsMTMgQEAKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIE1CRURUTFNfU1NMX1BST1RPX1RMUzFfMgogcnVuX3Rlc3QgICAgIkRUTFMgZnJhZ21lbnRpbmc6IGNsaWVudC1pbml0aWF0ZWQsIGJvdGggKG1heF9mcmFnX2xlbikiIFwKICAgICAgICAgICAgICIkUF9TUlYgZHRscz0xIGRlYnVnX2xldmVsPTIgYXV0aF9tb2RlPXJlcXVpcmVkIFwKLSAgICAgICAgICAgICBjcnRfZmlsZT1kYXRhX2ZpbGVzL3NlcnZlcjdfaW50LWNhLmNydCBcCi0gICAgICAgICAgICAga2V5X2ZpbGU9ZGF0YV9maWxlcy9zZXJ2ZXI3LmtleSBcCisgICAgICAgICAgICAgY3J0X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9zZXJ2ZXI3X2ludC1jYS5jcnQgXAorICAgICAgICAgICAgIGtleV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvc2VydmVyNy5rZXkgXAogICAgICAgICAgICAgIGhzX3RpbWVvdXQ9MjUwMC02MDAwMCBcCiAgICAgICAgICAgICAgbWF4X2ZyYWdfbGVuPTIwNDgiIFwKICAgICAgICAgICAgICIkUF9DTEkgZHRscz0xIGRlYnVnX2xldmVsPTIgXAotICAgICAgICAgICAgIGNydF9maWxlPWRhdGFfZmlsZXMvc2VydmVyOF9pbnQtY2EyLmNydCBcCi0gICAgICAgICAgICAga2V5X2ZpbGU9ZGF0YV9maWxlcy9zZXJ2ZXI4LmtleSBcCisgICAgICAgICAgICAgY3J0X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9zZXJ2ZXI4X2ludC1jYTIuY3J0IFwKKyAgICAgICAgICAgICBrZXlfZmlsZT0kREFUQV9GSUxFU19QQVRIL3NlcnZlcjgua2V5IFwKICAgICAgICAgICAgICBoc190aW1lb3V0PTI1MDAtNjAwMDAgXAogICAgICAgICAgICAgIG1heF9mcmFnX2xlbj0xMDI0IiBcCiAgICAgICAgICAgICAwIFwKQEAgLTEwNDg3LDEzICsxMDQ4OSwxMyBAQAogcnVuX3Rlc3QgICAgIkRUTFMgZnJhZ21lbnRpbmc6IGNsaWVudC1pbml0aWF0ZWQsIGJvdGggKG1heF9mcmFnX2xlbiksIHByb3h5IE1UVSIgXAogICAgICAgICAgICAgLXAgIiRQX1BYWSBtdHU9MTExMCIgXAogICAgICAgICAgICAgIiRQX1NSViBkdGxzPTEgZGVidWdfbGV2ZWw9MiBhdXRoX21vZGU9cmVxdWlyZWQgXAotICAgICAgICAgICAgIGNydF9maWxlPWRhdGFfZmlsZXMvc2VydmVyN19pbnQtY2EuY3J0IFwKLSAgICAgICAgICAgICBrZXlfZmlsZT1kYXRhX2ZpbGVzL3NlcnZlcjcua2V5IFwKKyAgICAgICAgICAgICBjcnRfZmlsZT0kREFUQV9GSUxFU19QQVRIL3NlcnZlcjdfaW50LWNhLmNydCBcCisgICAgICAgICAgICAga2V5X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9zZXJ2ZXI3LmtleSBcCiAgICAgICAgICAgICAgaHNfdGltZW91dD0yNTAwLTYwMDAwIFwKICAgICAgICAgICAgICBtYXhfZnJhZ19sZW49MjA0OCIgXAogICAgICAgICAgICAgIiRQX0NMSSBkdGxzPTEgZGVidWdfbGV2ZWw9MiBcCi0gICAgICAgICAgICAgY3J0X2ZpbGU9ZGF0YV9maWxlcy9zZXJ2ZXI4X2ludC1jYTIuY3J0IFwKLSAgICAgICAgICAgICBrZXlfZmlsZT1kYXRhX2ZpbGVzL3NlcnZlcjgua2V5IFwKKyAgICAgICAgICAgICBjcnRfZmlsZT0kREFUQV9GSUxFU19QQVRIL3NlcnZlcjhfaW50LWNhMi5jcnQgXAorICAgICAgICAgICAgIGtleV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvc2VydmVyOC5rZXkgXAogICAgICAgICAgICAgIGhzX3RpbWVvdXQ9MjUwMC02MDAwMCBcCiAgICAgICAgICAgICAgbWF4X2ZyYWdfbGVuPTEwMjQiIFwKICAgICAgICAgICAgIDAgXApAQCAtMTA1MDcsMTMgKzEwNTA5LDEzIEBACiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBNQkVEVExTX1NTTF9QUk9UT19UTFMxXzIKIHJ1bl90ZXN0ICAgICJEVExTIGZyYWdtZW50aW5nOiBub25lIChmb3IgcmVmZXJlbmNlKSAoTVRVKSIgXAogICAgICAgICAgICAgIiRQX1NSViBkdGxzPTEgZGVidWdfbGV2ZWw9MiBhdXRoX21vZGU9cmVxdWlyZWQgXAotICAgICAgICAgICAgIGNydF9maWxlPWRhdGFfZmlsZXMvc2VydmVyN19pbnQtY2EuY3J0IFwKLSAgICAgICAgICAgICBrZXlfZmlsZT1kYXRhX2ZpbGVzL3NlcnZlcjcua2V5IFwKKyAgICAgICAgICAgICBjcnRfZmlsZT0kREFUQV9GSUxFU19QQVRIL3NlcnZlcjdfaW50LWNhLmNydCBcCisgICAgICAgICAgICAga2V5X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9zZXJ2ZXI3LmtleSBcCiAgICAgICAgICAgICAgaHNfdGltZW91dD0yNTAwLTYwMDAwIFwKICAgICAgICAgICAgICBtdHU9NDA5NiIgXAogICAgICAgICAgICAgIiRQX0NMSSBkdGxzPTEgZGVidWdfbGV2ZWw9MiBcCi0gICAgICAgICAgICAgY3J0X2ZpbGU9ZGF0YV9maWxlcy9zZXJ2ZXI4X2ludC1jYTIuY3J0IFwKLSAgICAgICAgICAgICBrZXlfZmlsZT1kYXRhX2ZpbGVzL3NlcnZlcjgua2V5IFwKKyAgICAgICAgICAgICBjcnRfZmlsZT0kREFUQV9GSUxFU19QQVRIL3NlcnZlcjhfaW50LWNhMi5jcnQgXAorICAgICAgICAgICAgIGtleV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvc2VydmVyOC5rZXkgXAogICAgICAgICAgICAgIGhzX3RpbWVvdXQ9MjUwMC02MDAwMCBcCiAgICAgICAgICAgICAgbXR1PTQwOTYiIFwKICAgICAgICAgICAgIDAgXApAQCAtMTA1MjcsMTMgKzEwNTI5LDEzIEBACiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBNQkVEVExTX1NTTF9QUk9UT19UTFMxXzIKIHJ1bl90ZXN0ICAgICJEVExTIGZyYWdtZW50aW5nOiBjbGllbnQgKE1UVSkiIFwKICAgICAgICAgICAgICIkUF9TUlYgZHRscz0xIGRlYnVnX2xldmVsPTIgYXV0aF9tb2RlPXJlcXVpcmVkIFwKLSAgICAgICAgICAgICBjcnRfZmlsZT1kYXRhX2ZpbGVzL3NlcnZlcjdfaW50LWNhLmNydCBcCi0gICAgICAgICAgICAga2V5X2ZpbGU9ZGF0YV9maWxlcy9zZXJ2ZXI3LmtleSBcCisgICAgICAgICAgICAgY3J0X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9zZXJ2ZXI3X2ludC1jYS5jcnQgXAorICAgICAgICAgICAgIGtleV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvc2VydmVyNy5rZXkgXAogICAgICAgICAgICAgIGhzX3RpbWVvdXQ9MzUwMC02MDAwMCBcCiAgICAgICAgICAgICAgbXR1PTQwOTYiIFwKICAgICAgICAgICAgICIkUF9DTEkgZHRscz0xIGRlYnVnX2xldmVsPTIgXAotICAgICAgICAgICAgIGNydF9maWxlPWRhdGFfZmlsZXMvc2VydmVyOF9pbnQtY2EyLmNydCBcCi0gICAgICAgICAgICAga2V5X2ZpbGU9ZGF0YV9maWxlcy9zZXJ2ZXI4LmtleSBcCisgICAgICAgICAgICAgY3J0X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9zZXJ2ZXI4X2ludC1jYTIuY3J0IFwKKyAgICAgICAgICAgICBrZXlfZmlsZT0kREFUQV9GSUxFU19QQVRIL3NlcnZlcjgua2V5IFwKICAgICAgICAgICAgICBoc190aW1lb3V0PTM1MDAtNjAwMDAgXAogICAgICAgICAgICAgIG10dT0xMDI0IiBcCiAgICAgICAgICAgICAwIFwKQEAgLTEwNTQ3LDEzICsxMDU0OSwxMyBAQAogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgTUJFRFRMU19TU0xfUFJPVE9fVExTMV8yCiBydW5fdGVzdCAgICAiRFRMUyBmcmFnbWVudGluZzogc2VydmVyIChNVFUpIiBcCiAgICAgICAgICAgICAiJFBfU1JWIGR0bHM9MSBkZWJ1Z19sZXZlbD0yIGF1dGhfbW9kZT1yZXF1aXJlZCBcCi0gICAgICAgICAgICAgY3J0X2ZpbGU9ZGF0YV9maWxlcy9zZXJ2ZXI3X2ludC1jYS5jcnQgXAotICAgICAgICAgICAgIGtleV9maWxlPWRhdGFfZmlsZXMvc2VydmVyNy5rZXkgXAorICAgICAgICAgICAgIGNydF9maWxlPSREQVRBX0ZJTEVTX1BBVEgvc2VydmVyN19pbnQtY2EuY3J0IFwKKyAgICAgICAgICAgICBrZXlfZmlsZT0kREFUQV9GSUxFU19QQVRIL3NlcnZlcjcua2V5IFwKICAgICAgICAgICAgICBoc190aW1lb3V0PTI1MDAtNjAwMDAgXAogICAgICAgICAgICAgIG10dT01MTIiIFwKICAgICAgICAgICAgICIkUF9DTEkgZHRscz0xIGRlYnVnX2xldmVsPTIgXAotICAgICAgICAgICAgIGNydF9maWxlPWRhdGFfZmlsZXMvc2VydmVyOF9pbnQtY2EyLmNydCBcCi0gICAgICAgICAgICAga2V5X2ZpbGU9ZGF0YV9maWxlcy9zZXJ2ZXI4LmtleSBcCisgICAgICAgICAgICAgY3J0X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9zZXJ2ZXI4X2ludC1jYTIuY3J0IFwKKyAgICAgICAgICAgICBrZXlfZmlsZT0kREFUQV9GSUxFU19QQVRIL3NlcnZlcjgua2V5IFwKICAgICAgICAgICAgICBoc190aW1lb3V0PTI1MDAtNjAwMDAgXAogICAgICAgICAgICAgIG10dT0yMDQ4IiBcCiAgICAgICAgICAgICAwIFwKQEAgLTEwNTY4LDEzICsxMDU3MCwxMyBAQAogcnVuX3Rlc3QgICAgIkRUTFMgZnJhZ21lbnRpbmc6IGJvdGggKE1UVT0xMDI0KSIgXAogICAgICAgICAgICAgLXAgIiRQX1BYWSBtdHU9MTAyNCIgXAogICAgICAgICAgICAgIiRQX1NSViBkdGxzPTEgZGVidWdfbGV2ZWw9MiBhdXRoX21vZGU9cmVxdWlyZWQgXAotICAgICAgICAgICAgIGNydF9maWxlPWRhdGFfZmlsZXMvc2VydmVyN19pbnQtY2EuY3J0IFwKLSAgICAgICAgICAgICBrZXlfZmlsZT1kYXRhX2ZpbGVzL3NlcnZlcjcua2V5IFwKKyAgICAgICAgICAgICBjcnRfZmlsZT0kREFUQV9GSUxFU19QQVRIL3NlcnZlcjdfaW50LWNhLmNydCBcCisgICAgICAgICAgICAga2V5X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9zZXJ2ZXI3LmtleSBcCiAgICAgICAgICAgICAgaHNfdGltZW91dD0yNTAwLTYwMDAwIFwKICAgICAgICAgICAgICBtdHU9MTAyNCIgXAogICAgICAgICAgICAgIiRQX0NMSSBkdGxzPTEgZGVidWdfbGV2ZWw9MiBcCi0gICAgICAgICAgICAgY3J0X2ZpbGU9ZGF0YV9maWxlcy9zZXJ2ZXI4X2ludC1jYTIuY3J0IFwKLSAgICAgICAgICAgICBrZXlfZmlsZT1kYXRhX2ZpbGVzL3NlcnZlcjgua2V5IFwKKyAgICAgICAgICAgICBjcnRfZmlsZT0kREFUQV9GSUxFU19QQVRIL3NlcnZlcjhfaW50LWNhMi5jcnQgXAorICAgICAgICAgICAgIGtleV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvc2VydmVyOC5rZXkgXAogICAgICAgICAgICAgIGhzX3RpbWVvdXQ9MjUwMC02MDAwMCBcCiAgICAgICAgICAgICAgbXR1PTEwMjQiIFwKICAgICAgICAgICAgIDAgXApAQCAtMTA1OTAsMTMgKzEwNTkyLDEzIEBACiBydW5fdGVzdCAgICAiRFRMUyBmcmFnbWVudGluZzogYm90aCAoTVRVPTUxMikiIFwKICAgICAgICAgICAgIC1wICIkUF9QWFkgbXR1PTUxMiIgXAogICAgICAgICAgICAgIiRQX1NSViBkdGxzPTEgZGVidWdfbGV2ZWw9MiBhdXRoX21vZGU9cmVxdWlyZWQgXAotICAgICAgICAgICAgIGNydF9maWxlPWRhdGFfZmlsZXMvc2VydmVyN19pbnQtY2EuY3J0IFwKLSAgICAgICAgICAgICBrZXlfZmlsZT1kYXRhX2ZpbGVzL3NlcnZlcjcua2V5IFwKKyAgICAgICAgICAgICBjcnRfZmlsZT0kREFUQV9GSUxFU19QQVRIL3NlcnZlcjdfaW50LWNhLmNydCBcCisgICAgICAgICAgICAga2V5X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9zZXJ2ZXI3LmtleSBcCiAgICAgICAgICAgICAgaHNfdGltZW91dD0yNTAwLTYwMDAwIFwKICAgICAgICAgICAgICBtdHU9NTEyIiBcCiAgICAgICAgICAgICAiJFBfQ0xJIGR0bHM9MSBkZWJ1Z19sZXZlbD0yIFwKLSAgICAgICAgICAgICBjcnRfZmlsZT1kYXRhX2ZpbGVzL3NlcnZlcjhfaW50LWNhMi5jcnQgXAotICAgICAgICAgICAgIGtleV9maWxlPWRhdGFfZmlsZXMvc2VydmVyOC5rZXkgXAorICAgICAgICAgICAgIGNydF9maWxlPSREQVRBX0ZJTEVTX1BBVEgvc2VydmVyOF9pbnQtY2EyLmNydCBcCisgICAgICAgICAgICAga2V5X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9zZXJ2ZXI4LmtleSBcCiAgICAgICAgICAgICAgZm9yY2VfY2lwaGVyc3VpdGU9VExTLUVDREhFLUVDRFNBLVdJVEgtQUVTLTEyOC1HQ00tU0hBMjU2IFwKICAgICAgICAgICAgICBoc190aW1lb3V0PTI1MDAtNjAwMDAgXAogICAgICAgICAgICAgIG10dT01MTIiIFwKQEAgLTEwNjE4LDEyICsxMDYyMCwxMiBAQAogcnVuX3Rlc3QgICAgIkRUTFMgZnJhZ21lbnRpbmc6IHByb3h5IE1UVTogYXV0by1yZWR1Y3Rpb24gKG5vdCB2YWxncmluZCkiIFwKICAgICAgICAgICAgIC1wICIkUF9QWFkgbXR1PTUwOCIgXAogICAgICAgICAgICAgIiRQX1NSViBkdGxzPTEgZGVidWdfbGV2ZWw9MiBhdXRoX21vZGU9cmVxdWlyZWQgXAotICAgICAgICAgICAgIGNydF9maWxlPWRhdGFfZmlsZXMvc2VydmVyN19pbnQtY2EuY3J0IFwKLSAgICAgICAgICAgICBrZXlfZmlsZT1kYXRhX2ZpbGVzL3NlcnZlcjcua2V5IFwKKyAgICAgICAgICAgICBjcnRfZmlsZT0kREFUQV9GSUxFU19QQVRIL3NlcnZlcjdfaW50LWNhLmNydCBcCisgICAgICAgICAgICAga2V5X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9zZXJ2ZXI3LmtleSBcCiAgICAgICAgICAgICAgaHNfdGltZW91dD00MDAtMzIwMCIgXAogICAgICAgICAgICAgIiRQX0NMSSBkdGxzPTEgZGVidWdfbGV2ZWw9MiBcCi0gICAgICAgICAgICAgY3J0X2ZpbGU9ZGF0YV9maWxlcy9zZXJ2ZXI4X2ludC1jYTIuY3J0IFwKLSAgICAgICAgICAgICBrZXlfZmlsZT1kYXRhX2ZpbGVzL3NlcnZlcjgua2V5IFwKKyAgICAgICAgICAgICBjcnRfZmlsZT0kREFUQV9GSUxFU19QQVRIL3NlcnZlcjhfaW50LWNhMi5jcnQgXAorICAgICAgICAgICAgIGtleV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvc2VydmVyOC5rZXkgXAogICAgICAgICAgICAgIGZvcmNlX2NpcGhlcnN1aXRlPVRMUy1FQ0RIRS1FQ0RTQS1XSVRILUFFUy0xMjgtR0NNLVNIQTI1NiBcCiAgICAgICAgICAgICAgaHNfdGltZW91dD00MDAtMzIwMCIgXAogICAgICAgICAgICAgMCBcCkBAIC0xMDYzOSwxMiArMTA2NDEsMTIgQEAKIHJ1bl90ZXN0ICAgICJEVExTIGZyYWdtZW50aW5nOiBwcm94eSBNVFU6IGF1dG8tcmVkdWN0aW9uICh3aXRoIHZhbGdyaW5kKSIgXAogICAgICAgICAgICAgLXAgIiRQX1BYWSBtdHU9NTA4IiBcCiAgICAgICAgICAgICAiJFBfU1JWIGR0bHM9MSBkZWJ1Z19sZXZlbD0yIGF1dGhfbW9kZT1yZXF1aXJlZCBcCi0gICAgICAgICAgICAgY3J0X2ZpbGU9ZGF0YV9maWxlcy9zZXJ2ZXI3X2ludC1jYS5jcnQgXAotICAgICAgICAgICAgIGtleV9maWxlPWRhdGFfZmlsZXMvc2VydmVyNy5rZXkgXAorICAgICAgICAgICAgIGNydF9maWxlPSREQVRBX0ZJTEVTX1BBVEgvc2VydmVyN19pbnQtY2EuY3J0IFwKKyAgICAgICAgICAgICBrZXlfZmlsZT0kREFUQV9GSUxFU19QQVRIL3NlcnZlcjcua2V5IFwKICAgICAgICAgICAgICBoc190aW1lb3V0PTI1MC0xMDAwMCIgXAogICAgICAgICAgICAgIiRQX0NMSSBkdGxzPTEgZGVidWdfbGV2ZWw9MiBcCi0gICAgICAgICAgICAgY3J0X2ZpbGU9ZGF0YV9maWxlcy9zZXJ2ZXI4X2ludC1jYTIuY3J0IFwKLSAgICAgICAgICAgICBrZXlfZmlsZT1kYXRhX2ZpbGVzL3NlcnZlcjgua2V5IFwKKyAgICAgICAgICAgICBjcnRfZmlsZT0kREFUQV9GSUxFU19QQVRIL3NlcnZlcjhfaW50LWNhMi5jcnQgXAorICAgICAgICAgICAgIGtleV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvc2VydmVyOC5rZXkgXAogICAgICAgICAgICAgIGZvcmNlX2NpcGhlcnN1aXRlPVRMUy1FQ0RIRS1FQ0RTQS1XSVRILUFFUy0xMjgtR0NNLVNIQTI1NiBcCiAgICAgICAgICAgICAgaHNfdGltZW91dD0yNTAtMTAwMDAiIFwKICAgICAgICAgICAgIDAgXApAQCAtMTA2NjMsMTMgKzEwNjY1LDEzIEBACiBydW5fdGVzdCAgICAiRFRMUyBmcmFnbWVudGluZzogcHJveHkgTVRVLCBzaW1wbGUgaGFuZHNoYWtlIChNVFU9MTAyNCkiIFwKICAgICAgICAgICAgIC1wICIkUF9QWFkgbXR1PTEwMjQiIFwKICAgICAgICAgICAgICIkUF9TUlYgZHRscz0xIGRlYnVnX2xldmVsPTIgYXV0aF9tb2RlPXJlcXVpcmVkIFwKLSAgICAgICAgICAgICBjcnRfZmlsZT1kYXRhX2ZpbGVzL3NlcnZlcjdfaW50LWNhLmNydCBcCi0gICAgICAgICAgICAga2V5X2ZpbGU9ZGF0YV9maWxlcy9zZXJ2ZXI3LmtleSBcCisgICAgICAgICAgICAgY3J0X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9zZXJ2ZXI3X2ludC1jYS5jcnQgXAorICAgICAgICAgICAgIGtleV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvc2VydmVyNy5rZXkgXAogICAgICAgICAgICAgIGhzX3RpbWVvdXQ9MTAwMDAtNjAwMDAgXAogICAgICAgICAgICAgIG10dT0xMDI0IiBcCiAgICAgICAgICAgICAiJFBfQ0xJIGR0bHM9MSBkZWJ1Z19sZXZlbD0yIFwKLSAgICAgICAgICAgICBjcnRfZmlsZT1kYXRhX2ZpbGVzL3NlcnZlcjhfaW50LWNhMi5jcnQgXAotICAgICAgICAgICAgIGtleV9maWxlPWRhdGFfZmlsZXMvc2VydmVyOC5rZXkgXAorICAgICAgICAgICAgIGNydF9maWxlPSREQVRBX0ZJTEVTX1BBVEgvc2VydmVyOF9pbnQtY2EyLmNydCBcCisgICAgICAgICAgICAga2V5X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9zZXJ2ZXI4LmtleSBcCiAgICAgICAgICAgICAgaHNfdGltZW91dD0xMDAwMC02MDAwMCBcCiAgICAgICAgICAgICAgbXR1PTEwMjQiIFwKICAgICAgICAgICAgIDAgXApAQCAtMTA2ODksMTMgKzEwNjkxLDEzIEBACiBydW5fdGVzdCAgICAiRFRMUyBmcmFnbWVudGluZzogcHJveHkgTVRVLCBzaW1wbGUgaGFuZHNoYWtlIChNVFU9NTEyKSIgXAogICAgICAgICAgICAgLXAgIiRQX1BYWSBtdHU9NTEyIiBcCiAgICAgICAgICAgICAiJFBfU1JWIGR0bHM9MSBkZWJ1Z19sZXZlbD0yIGF1dGhfbW9kZT1yZXF1aXJlZCBcCi0gICAgICAgICAgICAgY3J0X2ZpbGU9ZGF0YV9maWxlcy9zZXJ2ZXI3X2ludC1jYS5jcnQgXAotICAgICAgICAgICAgIGtleV9maWxlPWRhdGFfZmlsZXMvc2VydmVyNy5rZXkgXAorICAgICAgICAgICAgIGNydF9maWxlPSREQVRBX0ZJTEVTX1BBVEgvc2VydmVyN19pbnQtY2EuY3J0IFwKKyAgICAgICAgICAgICBrZXlfZmlsZT0kREFUQV9GSUxFU19QQVRIL3NlcnZlcjcua2V5IFwKICAgICAgICAgICAgICBoc190aW1lb3V0PTEwMDAwLTYwMDAwIFwKICAgICAgICAgICAgICBtdHU9NTEyIiBcCiAgICAgICAgICAgICAiJFBfQ0xJIGR0bHM9MSBkZWJ1Z19sZXZlbD0yIFwKLSAgICAgICAgICAgICBjcnRfZmlsZT1kYXRhX2ZpbGVzL3NlcnZlcjhfaW50LWNhMi5jcnQgXAotICAgICAgICAgICAgIGtleV9maWxlPWRhdGFfZmlsZXMvc2VydmVyOC5rZXkgXAorICAgICAgICAgICAgIGNydF9maWxlPSREQVRBX0ZJTEVTX1BBVEgvc2VydmVyOF9pbnQtY2EyLmNydCBcCisgICAgICAgICAgICAga2V5X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9zZXJ2ZXI4LmtleSBcCiAgICAgICAgICAgICAgZm9yY2VfY2lwaGVyc3VpdGU9VExTLUVDREhFLUVDRFNBLVdJVEgtQUVTLTEyOC1HQ00tU0hBMjU2IFwKICAgICAgICAgICAgICBoc190aW1lb3V0PTEwMDAwLTYwMDAwIFwKICAgICAgICAgICAgICBtdHU9NTEyIiBcCkBAIC0xMDcxMywxMyArMTA3MTUsMTMgQEAKIHJ1bl90ZXN0ICAgICJEVExTIGZyYWdtZW50aW5nOiBwcm94eSBNVFUsIHNpbXBsZSBoYW5kc2hha2UsIG5iaW8gKE1UVT0xMDI0KSIgXAogICAgICAgICAgICAgLXAgIiRQX1BYWSBtdHU9MTAyNCIgXAogICAgICAgICAgICAgIiRQX1NSViBkdGxzPTEgZGVidWdfbGV2ZWw9MiBhdXRoX21vZGU9cmVxdWlyZWQgXAotICAgICAgICAgICAgIGNydF9maWxlPWRhdGFfZmlsZXMvc2VydmVyN19pbnQtY2EuY3J0IFwKLSAgICAgICAgICAgICBrZXlfZmlsZT1kYXRhX2ZpbGVzL3NlcnZlcjcua2V5IFwKKyAgICAgICAgICAgICBjcnRfZmlsZT0kREFUQV9GSUxFU19QQVRIL3NlcnZlcjdfaW50LWNhLmNydCBcCisgICAgICAgICAgICAga2V5X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9zZXJ2ZXI3LmtleSBcCiAgICAgICAgICAgICAgaHNfdGltZW91dD0xMDAwMC02MDAwMCBcCiAgICAgICAgICAgICAgbXR1PTEwMjQgbmJpbz0yIiBcCiAgICAgICAgICAgICAiJFBfQ0xJIGR0bHM9MSBkZWJ1Z19sZXZlbD0yIFwKLSAgICAgICAgICAgICBjcnRfZmlsZT1kYXRhX2ZpbGVzL3NlcnZlcjhfaW50LWNhMi5jcnQgXAotICAgICAgICAgICAgIGtleV9maWxlPWRhdGFfZmlsZXMvc2VydmVyOC5rZXkgXAorICAgICAgICAgICAgIGNydF9maWxlPSREQVRBX0ZJTEVTX1BBVEgvc2VydmVyOF9pbnQtY2EyLmNydCBcCisgICAgICAgICAgICAga2V5X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9zZXJ2ZXI4LmtleSBcCiAgICAgICAgICAgICAgaHNfdGltZW91dD0xMDAwMC02MDAwMCBcCiAgICAgICAgICAgICAgbXR1PTEwMjQgbmJpbz0yIiBcCiAgICAgICAgICAgICAwIFwKQEAgLTEwNzM2LDEzICsxMDczOCwxMyBAQAogcnVuX3Rlc3QgICAgIkRUTFMgZnJhZ21lbnRpbmc6IHByb3h5IE1UVSwgc2ltcGxlIGhhbmRzaGFrZSwgbmJpbyAoTVRVPTUxMikiIFwKICAgICAgICAgICAgIC1wICIkUF9QWFkgbXR1PTUxMiIgXAogICAgICAgICAgICAgIiRQX1NSViBkdGxzPTEgZGVidWdfbGV2ZWw9MiBhdXRoX21vZGU9cmVxdWlyZWQgXAotICAgICAgICAgICAgIGNydF9maWxlPWRhdGFfZmlsZXMvc2VydmVyN19pbnQtY2EuY3J0IFwKLSAgICAgICAgICAgICBrZXlfZmlsZT1kYXRhX2ZpbGVzL3NlcnZlcjcua2V5IFwKKyAgICAgICAgICAgICBjcnRfZmlsZT0kREFUQV9GSUxFU19QQVRIL3NlcnZlcjdfaW50LWNhLmNydCBcCisgICAgICAgICAgICAga2V5X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9zZXJ2ZXI3LmtleSBcCiAgICAgICAgICAgICAgaHNfdGltZW91dD0xMDAwMC02MDAwMCBcCiAgICAgICAgICAgICAgbXR1PTUxMiBuYmlvPTIiIFwKICAgICAgICAgICAgICIkUF9DTEkgZHRscz0xIGRlYnVnX2xldmVsPTIgXAotICAgICAgICAgICAgIGNydF9maWxlPWRhdGFfZmlsZXMvc2VydmVyOF9pbnQtY2EyLmNydCBcCi0gICAgICAgICAgICAga2V5X2ZpbGU9ZGF0YV9maWxlcy9zZXJ2ZXI4LmtleSBcCisgICAgICAgICAgICAgY3J0X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9zZXJ2ZXI4X2ludC1jYTIuY3J0IFwKKyAgICAgICAgICAgICBrZXlfZmlsZT0kREFUQV9GSUxFU19QQVRIL3NlcnZlcjgua2V5IFwKICAgICAgICAgICAgICBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMtRUNESEUtRUNEU0EtV0lUSC1BRVMtMTI4LUdDTS1TSEEyNTYgXAogICAgICAgICAgICAgIGhzX3RpbWVvdXQ9MTAwMDAtNjAwMDAgXAogICAgICAgICAgICAgIG10dT01MTIgbmJpbz0yIiBcCkBAIC0xMDc2OSwxMyArMTA3NzEsMTMgQEAKIHJ1bl90ZXN0ICAgICJEVExTIGZyYWdtZW50aW5nOiBwcm94eSBNVFUsIHJlc3VtZWQgaGFuZHNoYWtlIiBcCiAgICAgICAgICAgICAtcCAiJFBfUFhZIG10dT0xNDUwIiBcCiAgICAgICAgICAgICAiJFBfU1JWIGR0bHM9MSBkZWJ1Z19sZXZlbD0yIGF1dGhfbW9kZT1yZXF1aXJlZCBcCi0gICAgICAgICAgICAgY3J0X2ZpbGU9ZGF0YV9maWxlcy9zZXJ2ZXI3X2ludC1jYS5jcnQgXAotICAgICAgICAgICAgIGtleV9maWxlPWRhdGFfZmlsZXMvc2VydmVyNy5rZXkgXAorICAgICAgICAgICAgIGNydF9maWxlPSREQVRBX0ZJTEVTX1BBVEgvc2VydmVyN19pbnQtY2EuY3J0IFwKKyAgICAgICAgICAgICBrZXlfZmlsZT0kREFUQV9GSUxFU19QQVRIL3NlcnZlcjcua2V5IFwKICAgICAgICAgICAgICBoc190aW1lb3V0PTEwMDAwLTYwMDAwIFwKICAgICAgICAgICAgICBtdHU9MTQ1MCIgXAogICAgICAgICAgICAgIiRQX0NMSSBkdGxzPTEgZGVidWdfbGV2ZWw9MiBcCi0gICAgICAgICAgICAgY3J0X2ZpbGU9ZGF0YV9maWxlcy9zZXJ2ZXI4X2ludC1jYTIuY3J0IFwKLSAgICAgICAgICAgICBrZXlfZmlsZT1kYXRhX2ZpbGVzL3NlcnZlcjgua2V5IFwKKyAgICAgICAgICAgICBjcnRfZmlsZT0kREFUQV9GSUxFU19QQVRIL3NlcnZlcjhfaW50LWNhMi5jcnQgXAorICAgICAgICAgICAgIGtleV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvc2VydmVyOC5rZXkgXAogICAgICAgICAgICAgIGhzX3RpbWVvdXQ9MTAwMDAtNjAwMDAgXAogICAgICAgICAgICAgIGZvcmNlX2NpcGhlcnN1aXRlPVRMUy1FQ0RIRS1FQ0RTQS1XSVRILUFFUy0xMjgtR0NNLVNIQTI1NiBcCiAgICAgICAgICAgICAgbXR1PTE0NTAgcmVjb25uZWN0PTEgc2tpcF9jbG9zZV9ub3RpZnk9MSByZWNvX2RlbGF5PTEwMDAiIFwKQEAgLTEwNzk2LDE0ICsxMDc5OCwxNCBAQAogcnVuX3Rlc3QgICAgIkRUTFMgZnJhZ21lbnRpbmc6IHByb3h5IE1UVSwgQ2hhY2hhUG9seSByZW5lZ28iIFwKICAgICAgICAgICAgIC1wICIkUF9QWFkgbXR1PTUxMiIgXAogICAgICAgICAgICAgIiRQX1NSViBkdGxzPTEgZGVidWdfbGV2ZWw9MiBhdXRoX21vZGU9cmVxdWlyZWQgXAotICAgICAgICAgICAgIGNydF9maWxlPWRhdGFfZmlsZXMvc2VydmVyN19pbnQtY2EuY3J0IFwKLSAgICAgICAgICAgICBrZXlfZmlsZT1kYXRhX2ZpbGVzL3NlcnZlcjcua2V5IFwKKyAgICAgICAgICAgICBjcnRfZmlsZT0kREFUQV9GSUxFU19QQVRIL3NlcnZlcjdfaW50LWNhLmNydCBcCisgICAgICAgICAgICAga2V5X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9zZXJ2ZXI3LmtleSBcCiAgICAgICAgICAgICAgZXhjaGFuZ2VzPTIgcmVuZWdvdGlhdGlvbj0xIFwKICAgICAgICAgICAgICBoc190aW1lb3V0PTEwMDAwLTYwMDAwIFwKICAgICAgICAgICAgICBtdHU9NTEyIiBcCiAgICAgICAgICAgICAiJFBfQ0xJIGR0bHM9MSBkZWJ1Z19sZXZlbD0yIFwKLSAgICAgICAgICAgICBjcnRfZmlsZT1kYXRhX2ZpbGVzL3NlcnZlcjhfaW50LWNhMi5jcnQgXAotICAgICAgICAgICAgIGtleV9maWxlPWRhdGFfZmlsZXMvc2VydmVyOC5rZXkgXAorICAgICAgICAgICAgIGNydF9maWxlPSREQVRBX0ZJTEVTX1BBVEgvc2VydmVyOF9pbnQtY2EyLmNydCBcCisgICAgICAgICAgICAga2V5X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9zZXJ2ZXI4LmtleSBcCiAgICAgICAgICAgICAgZXhjaGFuZ2VzPTIgcmVuZWdvdGlhdGlvbj0xIHJlbmVnb3RpYXRlPTEgXAogICAgICAgICAgICAgIGZvcmNlX2NpcGhlcnN1aXRlPVRMUy1FQ0RIRS1FQ0RTQS1XSVRILUNIQUNIQTIwLVBPTFkxMzA1LVNIQTI1NiBcCiAgICAgICAgICAgICAgaHNfdGltZW91dD0xMDAwMC02MDAwMCBcCkBAIC0xMDgyNSwxNCArMTA4MjcsMTQgQEAKIHJ1bl90ZXN0ICAgICJEVExTIGZyYWdtZW50aW5nOiBwcm94eSBNVFUsIEFFUy1HQ00gcmVuZWdvIiBcCiAgICAgICAgICAgICAtcCAiJFBfUFhZIG10dT01MTIiIFwKICAgICAgICAgICAgICIkUF9TUlYgZHRscz0xIGRlYnVnX2xldmVsPTIgYXV0aF9tb2RlPXJlcXVpcmVkIFwKLSAgICAgICAgICAgICBjcnRfZmlsZT1kYXRhX2ZpbGVzL3NlcnZlcjdfaW50LWNhLmNydCBcCi0gICAgICAgICAgICAga2V5X2ZpbGU9ZGF0YV9maWxlcy9zZXJ2ZXI3LmtleSBcCisgICAgICAgICAgICAgY3J0X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9zZXJ2ZXI3X2ludC1jYS5jcnQgXAorICAgICAgICAgICAgIGtleV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvc2VydmVyNy5rZXkgXAogICAgICAgICAgICAgIGV4Y2hhbmdlcz0yIHJlbmVnb3RpYXRpb249MSBcCiAgICAgICAgICAgICAgaHNfdGltZW91dD0xMDAwMC02MDAwMCBcCiAgICAgICAgICAgICAgbXR1PTUxMiIgXAogICAgICAgICAgICAgIiRQX0NMSSBkdGxzPTEgZGVidWdfbGV2ZWw9MiBcCi0gICAgICAgICAgICAgY3J0X2ZpbGU9ZGF0YV9maWxlcy9zZXJ2ZXI4X2ludC1jYTIuY3J0IFwKLSAgICAgICAgICAgICBrZXlfZmlsZT1kYXRhX2ZpbGVzL3NlcnZlcjgua2V5IFwKKyAgICAgICAgICAgICBjcnRfZmlsZT0kREFUQV9GSUxFU19QQVRIL3NlcnZlcjhfaW50LWNhMi5jcnQgXAorICAgICAgICAgICAgIGtleV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvc2VydmVyOC5rZXkgXAogICAgICAgICAgICAgIGV4Y2hhbmdlcz0yIHJlbmVnb3RpYXRpb249MSByZW5lZ290aWF0ZT0xIFwKICAgICAgICAgICAgICBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMtRUNESEUtRUNEU0EtV0lUSC1BRVMtMTI4LUdDTS1TSEEyNTYgXAogICAgICAgICAgICAgIGhzX3RpbWVvdXQ9MTAwMDAtNjAwMDAgXApAQCAtMTA4NTQsMTUgKzEwODU2LDE1IEBACiBydW5fdGVzdCAgICAiRFRMUyBmcmFnbWVudGluZzogcHJveHkgTVRVLCBBRVMtQ0NNIHJlbmVnbyIgXAogICAgICAgICAgICAgLXAgIiRQX1BYWSBtdHU9MTAyNCIgXAogICAgICAgICAgICAgIiRQX1NSViBkdGxzPTEgZGVidWdfbGV2ZWw9MiBhdXRoX21vZGU9cmVxdWlyZWQgXAotICAgICAgICAgICAgIGNydF9maWxlPWRhdGFfZmlsZXMvc2VydmVyN19pbnQtY2EuY3J0IFwKLSAgICAgICAgICAgICBrZXlfZmlsZT1kYXRhX2ZpbGVzL3NlcnZlcjcua2V5IFwKKyAgICAgICAgICAgICBjcnRfZmlsZT0kREFUQV9GSUxFU19QQVRIL3NlcnZlcjdfaW50LWNhLmNydCBcCisgICAgICAgICAgICAga2V5X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9zZXJ2ZXI3LmtleSBcCiAgICAgICAgICAgICAgZXhjaGFuZ2VzPTIgcmVuZWdvdGlhdGlvbj0xIFwKICAgICAgICAgICAgICBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMtRUNESEUtRUNEU0EtV0lUSC1BRVMtMTI4LUNDTS04IFwKICAgICAgICAgICAgICBoc190aW1lb3V0PTEwMDAwLTYwMDAwIFwKICAgICAgICAgICAgICBtdHU9MTAyNCIgXAogICAgICAgICAgICAgIiRQX0NMSSBkdGxzPTEgZGVidWdfbGV2ZWw9MiBcCi0gICAgICAgICAgICAgY3J0X2ZpbGU9ZGF0YV9maWxlcy9zZXJ2ZXI4X2ludC1jYTIuY3J0IFwKLSAgICAgICAgICAgICBrZXlfZmlsZT1kYXRhX2ZpbGVzL3NlcnZlcjgua2V5IFwKKyAgICAgICAgICAgICBjcnRfZmlsZT0kREFUQV9GSUxFU19QQVRIL3NlcnZlcjhfaW50LWNhMi5jcnQgXAorICAgICAgICAgICAgIGtleV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvc2VydmVyOC5rZXkgXAogICAgICAgICAgICAgIGV4Y2hhbmdlcz0yIHJlbmVnb3RpYXRpb249MSByZW5lZ290aWF0ZT0xIFwKICAgICAgICAgICAgICBoc190aW1lb3V0PTEwMDAwLTYwMDAwIFwKICAgICAgICAgICAgICBtdHU9MTAyNCIgXApAQCAtMTA4ODQsMTUgKzEwODg2LDE1IEBACiBydW5fdGVzdCAgICAiRFRMUyBmcmFnbWVudGluZzogcHJveHkgTVRVLCBBRVMtQ0JDIEV0TSByZW5lZ28iIFwKICAgICAgICAgICAgIC1wICIkUF9QWFkgbXR1PTEwMjQiIFwKICAgICAgICAgICAgICIkUF9TUlYgZHRscz0xIGRlYnVnX2xldmVsPTIgYXV0aF9tb2RlPXJlcXVpcmVkIFwKLSAgICAgICAgICAgICBjcnRfZmlsZT1kYXRhX2ZpbGVzL3NlcnZlcjdfaW50LWNhLmNydCBcCi0gICAgICAgICAgICAga2V5X2ZpbGU9ZGF0YV9maWxlcy9zZXJ2ZXI3LmtleSBcCisgICAgICAgICAgICAgY3J0X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9zZXJ2ZXI3X2ludC1jYS5jcnQgXAorICAgICAgICAgICAgIGtleV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvc2VydmVyNy5rZXkgXAogICAgICAgICAgICAgIGV4Y2hhbmdlcz0yIHJlbmVnb3RpYXRpb249MSBcCiAgICAgICAgICAgICAgZm9yY2VfY2lwaGVyc3VpdGU9VExTLUVDREhFLUVDRFNBLVdJVEgtQUVTLTEyOC1DQkMtU0hBMjU2IFwKICAgICAgICAgICAgICBoc190aW1lb3V0PTEwMDAwLTYwMDAwIFwKICAgICAgICAgICAgICBtdHU9MTAyNCIgXAogICAgICAgICAgICAgIiRQX0NMSSBkdGxzPTEgZGVidWdfbGV2ZWw9MiBcCi0gICAgICAgICAgICAgY3J0X2ZpbGU9ZGF0YV9maWxlcy9zZXJ2ZXI4X2ludC1jYTIuY3J0IFwKLSAgICAgICAgICAgICBrZXlfZmlsZT1kYXRhX2ZpbGVzL3NlcnZlcjgua2V5IFwKKyAgICAgICAgICAgICBjcnRfZmlsZT0kREFUQV9GSUxFU19QQVRIL3NlcnZlcjhfaW50LWNhMi5jcnQgXAorICAgICAgICAgICAgIGtleV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvc2VydmVyOC5rZXkgXAogICAgICAgICAgICAgIGV4Y2hhbmdlcz0yIHJlbmVnb3RpYXRpb249MSByZW5lZ290aWF0ZT0xIFwKICAgICAgICAgICAgICBoc190aW1lb3V0PTEwMDAwLTYwMDAwIFwKICAgICAgICAgICAgICBtdHU9MTAyNCIgXApAQCAtMTA5MTMsMTUgKzEwOTE1LDE1IEBACiBydW5fdGVzdCAgICAiRFRMUyBmcmFnbWVudGluZzogcHJveHkgTVRVLCBBRVMtQ0JDIG5vbi1FdE0gcmVuZWdvIiBcCiAgICAgICAgICAgICAtcCAiJFBfUFhZIG10dT0xMDI0IiBcCiAgICAgICAgICAgICAiJFBfU1JWIGR0bHM9MSBkZWJ1Z19sZXZlbD0yIGF1dGhfbW9kZT1yZXF1aXJlZCBcCi0gICAgICAgICAgICAgY3J0X2ZpbGU9ZGF0YV9maWxlcy9zZXJ2ZXI3X2ludC1jYS5jcnQgXAotICAgICAgICAgICAgIGtleV9maWxlPWRhdGFfZmlsZXMvc2VydmVyNy5rZXkgXAorICAgICAgICAgICAgIGNydF9maWxlPSREQVRBX0ZJTEVTX1BBVEgvc2VydmVyN19pbnQtY2EuY3J0IFwKKyAgICAgICAgICAgICBrZXlfZmlsZT0kREFUQV9GSUxFU19QQVRIL3NlcnZlcjcua2V5IFwKICAgICAgICAgICAgICBleGNoYW5nZXM9MiByZW5lZ290aWF0aW9uPTEgXAogICAgICAgICAgICAgIGZvcmNlX2NpcGhlcnN1aXRlPVRMUy1FQ0RIRS1FQ0RTQS1XSVRILUFFUy0xMjgtQ0JDLVNIQTI1NiBldG09MCBcCiAgICAgICAgICAgICAgaHNfdGltZW91dD0xMDAwMC02MDAwMCBcCiAgICAgICAgICAgICAgbXR1PTEwMjQiIFwKICAgICAgICAgICAgICIkUF9DTEkgZHRscz0xIGRlYnVnX2xldmVsPTIgXAotICAgICAgICAgICAgIGNydF9maWxlPWRhdGFfZmlsZXMvc2VydmVyOF9pbnQtY2EyLmNydCBcCi0gICAgICAgICAgICAga2V5X2ZpbGU9ZGF0YV9maWxlcy9zZXJ2ZXI4LmtleSBcCisgICAgICAgICAgICAgY3J0X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9zZXJ2ZXI4X2ludC1jYTIuY3J0IFwKKyAgICAgICAgICAgICBrZXlfZmlsZT0kREFUQV9GSUxFU19QQVRIL3NlcnZlcjgua2V5IFwKICAgICAgICAgICAgICBleGNoYW5nZXM9MiByZW5lZ290aWF0aW9uPTEgcmVuZWdvdGlhdGU9MSBcCiAgICAgICAgICAgICAgaHNfdGltZW91dD0xMDAwMC02MDAwMCBcCiAgICAgICAgICAgICAgbXR1PTEwMjQiIFwKQEAgLTEwOTM5LDEyICsxMDk0MSwxMiBAQAogcnVuX3Rlc3QgICAgIkRUTFMgZnJhZ21lbnRpbmc6IHByb3h5IE1UVSArIDNkIiBcCiAgICAgICAgICAgICAtcCAiJFBfUFhZIG10dT01MTIgZHJvcD04IGRlbGF5PTggZHVwbGljYXRlPTgiIFwKICAgICAgICAgICAgICIkUF9TUlYgZGdyYW1fcGFja2luZz0wIGR0bHM9MSBkZWJ1Z19sZXZlbD0yIGF1dGhfbW9kZT1yZXF1aXJlZCBcCi0gICAgICAgICAgICAgY3J0X2ZpbGU9ZGF0YV9maWxlcy9zZXJ2ZXI3X2ludC1jYS5jcnQgXAotICAgICAgICAgICAgIGtleV9maWxlPWRhdGFfZmlsZXMvc2VydmVyNy5rZXkgXAorICAgICAgICAgICAgIGNydF9maWxlPSREQVRBX0ZJTEVTX1BBVEgvc2VydmVyN19pbnQtY2EuY3J0IFwKKyAgICAgICAgICAgICBrZXlfZmlsZT0kREFUQV9GSUxFU19QQVRIL3NlcnZlcjcua2V5IFwKICAgICAgICAgICAgICBoc190aW1lb3V0PTI1MC0xMDAwMCBtdHU9NTEyIiBcCiAgICAgICAgICAgICAiJFBfQ0xJIGRncmFtX3BhY2tpbmc9MCBkdGxzPTEgZGVidWdfbGV2ZWw9MiBcCi0gICAgICAgICAgICAgY3J0X2ZpbGU9ZGF0YV9maWxlcy9zZXJ2ZXI4X2ludC1jYTIuY3J0IFwKLSAgICAgICAgICAgICBrZXlfZmlsZT1kYXRhX2ZpbGVzL3NlcnZlcjgua2V5IFwKKyAgICAgICAgICAgICBjcnRfZmlsZT0kREFUQV9GSUxFU19QQVRIL3NlcnZlcjhfaW50LWNhMi5jcnQgXAorICAgICAgICAgICAgIGtleV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvc2VydmVyOC5rZXkgXAogICAgICAgICAgICAgIGZvcmNlX2NpcGhlcnN1aXRlPVRMUy1FQ0RIRS1FQ0RTQS1XSVRILUFFUy0xMjgtR0NNLVNIQTI1NiBcCiAgICAgICAgICAgICAgaHNfdGltZW91dD0yNTAtMTAwMDAgbXR1PTUxMiIgXAogICAgICAgICAgICAgMCBcCkBAIC0xMDk2MCwxMiArMTA5NjIsMTIgQEAKIHJ1bl90ZXN0ICAgICJEVExTIGZyYWdtZW50aW5nOiBwcm94eSBNVFUgKyAzZCwgbmJpbyIgXAogICAgICAgICAgICAgLXAgIiRQX1BYWSBtdHU9NTEyIGRyb3A9OCBkZWxheT04IGR1cGxpY2F0ZT04IiBcCiAgICAgICAgICAgICAiJFBfU1JWIGR0bHM9MSBkZWJ1Z19sZXZlbD0yIGF1dGhfbW9kZT1yZXF1aXJlZCBcCi0gICAgICAgICAgICAgY3J0X2ZpbGU9ZGF0YV9maWxlcy9zZXJ2ZXI3X2ludC1jYS5jcnQgXAotICAgICAgICAgICAgIGtleV9maWxlPWRhdGFfZmlsZXMvc2VydmVyNy5rZXkgXAorICAgICAgICAgICAgIGNydF9maWxlPSREQVRBX0ZJTEVTX1BBVEgvc2VydmVyN19pbnQtY2EuY3J0IFwKKyAgICAgICAgICAgICBrZXlfZmlsZT0kREFUQV9GSUxFU19QQVRIL3NlcnZlcjcua2V5IFwKICAgICAgICAgICAgICBoc190aW1lb3V0PTI1MC0xMDAwMCBtdHU9NTEyIG5iaW89MiIgXAogICAgICAgICAgICAgIiRQX0NMSSBkdGxzPTEgZGVidWdfbGV2ZWw9MiBcCi0gICAgICAgICAgICAgY3J0X2ZpbGU9ZGF0YV9maWxlcy9zZXJ2ZXI4X2ludC1jYTIuY3J0IFwKLSAgICAgICAgICAgICBrZXlfZmlsZT1kYXRhX2ZpbGVzL3NlcnZlcjgua2V5IFwKKyAgICAgICAgICAgICBjcnRfZmlsZT0kREFUQV9GSUxFU19QQVRIL3NlcnZlcjhfaW50LWNhMi5jcnQgXAorICAgICAgICAgICAgIGtleV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvc2VydmVyOC5rZXkgXAogICAgICAgICAgICAgIGZvcmNlX2NpcGhlcnN1aXRlPVRMUy1FQ0RIRS1FQ0RTQS1XSVRILUFFUy0xMjgtR0NNLVNIQTI1NiBcCiAgICAgICAgICAgICAgaHNfdGltZW91dD0yNTAtMTAwMDAgbXR1PTUxMiBuYmlvPTIiIFwKICAgICAgICAgICAgIDAgXApAQCAtMTA5ODQsOCArMTA5ODYsOCBAQAogcnVuX3Rlc3QgICAgIkRUTFMgZnJhZ21lbnRpbmc6IGdudXRscyBzZXJ2ZXIsIERUTFMgMS4yIiBcCiAgICAgICAgICAgICAiJEdfU1JWIC11IiBcCiAgICAgICAgICAgICAiJFBfQ0xJIGR0bHM9MSBkZWJ1Z19sZXZlbD0yIFwKLSAgICAgICAgICAgICBjcnRfZmlsZT1kYXRhX2ZpbGVzL3NlcnZlcjhfaW50LWNhMi5jcnQgXAotICAgICAgICAgICAgIGtleV9maWxlPWRhdGFfZmlsZXMvc2VydmVyOC5rZXkgXAorICAgICAgICAgICAgIGNydF9maWxlPSREQVRBX0ZJTEVTX1BBVEgvc2VydmVyOF9pbnQtY2EyLmNydCBcCisgICAgICAgICAgICAga2V5X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9zZXJ2ZXI4LmtleSBcCiAgICAgICAgICAgICAgbXR1PTUxMiBmb3JjZV92ZXJzaW9uPWR0bHMxMiIgXAogICAgICAgICAgICAgMCBcCiAgICAgICAgICAgICAtYyAiZnJhZ21lbnRpbmcgaGFuZHNoYWtlIG1lc3NhZ2UiIFwKQEAgLTExMDA1LDggKzExMDA3LDggQEAKIHJlcXVpcmVzX21heF9jb250ZW50X2xlbiAyMDQ4CiBydW5fdGVzdCAgICAiRFRMUyBmcmFnbWVudGluZzogZ251dGxzIGNsaWVudCwgRFRMUyAxLjIiIFwKICAgICAgICAgICAgICIkUF9TUlYgZHRscz0xIGRlYnVnX2xldmVsPTIgXAotICAgICAgICAgICAgIGNydF9maWxlPWRhdGFfZmlsZXMvc2VydmVyN19pbnQtY2EuY3J0IFwKLSAgICAgICAgICAgICBrZXlfZmlsZT1kYXRhX2ZpbGVzL3NlcnZlcjcua2V5IFwKKyAgICAgICAgICAgICBjcnRfZmlsZT0kREFUQV9GSUxFU19QQVRIL3NlcnZlcjdfaW50LWNhLmNydCBcCisgICAgICAgICAgICAga2V5X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9zZXJ2ZXI3LmtleSBcCiAgICAgICAgICAgICAgbXR1PTUxMiBmb3JjZV92ZXJzaW9uPWR0bHMxMiIgXAogICAgICAgICAgICAgIiRHX0NMSSAtdSAtLWluc2VjdXJlIDEyNy4wLjAuMSIgXAogICAgICAgICAgICAgMCBcCkBAIC0xMTAxOCw4ICsxMTAyMCw4IEBACiBydW5fdGVzdCAgICAiRFRMUyBmcmFnbWVudGluZzogb3BlbnNzbCBzZXJ2ZXIsIERUTFMgMS4yIiBcCiAgICAgICAgICAgICAiJE9fU1JWIC1kdGxzMV8yIC12ZXJpZnkgMTAiIFwKICAgICAgICAgICAgICIkUF9DTEkgZHRscz0xIGRlYnVnX2xldmVsPTIgXAotICAgICAgICAgICAgIGNydF9maWxlPWRhdGFfZmlsZXMvc2VydmVyOF9pbnQtY2EyLmNydCBcCi0gICAgICAgICAgICAga2V5X2ZpbGU9ZGF0YV9maWxlcy9zZXJ2ZXI4LmtleSBcCisgICAgICAgICAgICAgY3J0X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9zZXJ2ZXI4X2ludC1jYTIuY3J0IFwKKyAgICAgICAgICAgICBrZXlfZmlsZT0kREFUQV9GSUxFU19QQVRIL3NlcnZlcjgua2V5IFwKICAgICAgICAgICAgICBtdHU9NTEyIGZvcmNlX3ZlcnNpb249ZHRsczEyIiBcCiAgICAgICAgICAgICAwIFwKICAgICAgICAgICAgIC1jICJmcmFnbWVudGluZyBoYW5kc2hha2UgbWVzc2FnZSIgXApAQCAtMTEwMzAsOCArMTEwMzIsOCBAQAogcmVxdWlyZXNfbWF4X2NvbnRlbnRfbGVuIDIwNDgKIHJ1bl90ZXN0ICAgICJEVExTIGZyYWdtZW50aW5nOiBvcGVuc3NsIGNsaWVudCwgRFRMUyAxLjIiIFwKICAgICAgICAgICAgICIkUF9TUlYgZHRscz0xIGRlYnVnX2xldmVsPTIgXAotICAgICAgICAgICAgIGNydF9maWxlPWRhdGFfZmlsZXMvc2VydmVyN19pbnQtY2EuY3J0IFwKLSAgICAgICAgICAgICBrZXlfZmlsZT1kYXRhX2ZpbGVzL3NlcnZlcjcua2V5IFwKKyAgICAgICAgICAgICBjcnRfZmlsZT0kREFUQV9GSUxFU19QQVRIL3NlcnZlcjdfaW50LWNhLmNydCBcCisgICAgICAgICAgICAga2V5X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9zZXJ2ZXI3LmtleSBcCiAgICAgICAgICAgICAgbXR1PTUxMiBmb3JjZV92ZXJzaW9uPWR0bHMxMiIgXAogICAgICAgICAgICAgIiRPX0NMSSAtZHRsczFfMiIgXAogICAgICAgICAgICAgMCBcCkBAIC0xMTA1MCw4ICsxMTA1Miw4IEBACiAgICAgICAgICAgICAtcCAiJFBfUFhZIGRyb3A9OCBkZWxheT04IGR1cGxpY2F0ZT04IiBcCiAgICAgICAgICAgICAiJEdfTkVYVF9TUlYgLXUiIFwKICAgICAgICAgICAgICIkUF9DTEkgZGdyYW1fcGFja2luZz0wIGR0bHM9MSBkZWJ1Z19sZXZlbD0yIFwKLSAgICAgICAgICAgICBjcnRfZmlsZT1kYXRhX2ZpbGVzL3NlcnZlcjhfaW50LWNhMi5jcnQgXAotICAgICAgICAgICAgIGtleV9maWxlPWRhdGFfZmlsZXMvc2VydmVyOC5rZXkgXAorICAgICAgICAgICAgIGNydF9maWxlPSREQVRBX0ZJTEVTX1BBVEgvc2VydmVyOF9pbnQtY2EyLmNydCBcCisgICAgICAgICAgICAga2V5X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9zZXJ2ZXI4LmtleSBcCiAgICAgICAgICAgICAgaHNfdGltZW91dD0yNTAtNjAwMDAgbXR1PTUxMiBmb3JjZV92ZXJzaW9uPWR0bHMxMiIgXAogICAgICAgICAgICAgMCBcCiAgICAgICAgICAgICAtYyAiZnJhZ21lbnRpbmcgaGFuZHNoYWtlIG1lc3NhZ2UiIFwKQEAgLTExMDY1LDggKzExMDY3LDggQEAKIHJ1bl90ZXN0ICAgICJEVExTIGZyYWdtZW50aW5nOiAzZCwgZ251dGxzIGNsaWVudCwgRFRMUyAxLjIiIFwKICAgICAgICAgICAgIC1wICIkUF9QWFkgZHJvcD04IGRlbGF5PTggZHVwbGljYXRlPTgiIFwKICAgICAgICAgICAgICIkUF9TUlYgZHRscz0xIGRlYnVnX2xldmVsPTIgXAotICAgICAgICAgICAgIGNydF9maWxlPWRhdGFfZmlsZXMvc2VydmVyN19pbnQtY2EuY3J0IFwKLSAgICAgICAgICAgICBrZXlfZmlsZT1kYXRhX2ZpbGVzL3NlcnZlcjcua2V5IFwKKyAgICAgICAgICAgICBjcnRfZmlsZT0kREFUQV9GSUxFU19QQVRIL3NlcnZlcjdfaW50LWNhLmNydCBcCisgICAgICAgICAgICAga2V5X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9zZXJ2ZXI3LmtleSBcCiAgICAgICAgICAgICAgaHNfdGltZW91dD0yNTAtNjAwMDAgbXR1PTUxMiBmb3JjZV92ZXJzaW9uPWR0bHMxMiIgXAogICAgICAgICAgICAiJEdfTkVYVF9DTEkgLXUgLS1pbnNlY3VyZSAxMjcuMC4wLjEiIFwKICAgICAgICAgICAgIDAgXApAQCAtMTEwODMsOCArMTEwODUsOCBAQAogICAgICAgICAgICAgLXAgIiRQX1BYWSBkcm9wPTggZGVsYXk9OCBkdXBsaWNhdGU9OCIgXAogICAgICAgICAgICAgIiRPX05FWFRfU1JWIC1kdGxzMV8yIC12ZXJpZnkgMTAiIFwKICAgICAgICAgICAgICIkUF9DTEkgZHRscz0xIGRlYnVnX2xldmVsPTIgXAotICAgICAgICAgICAgIGNydF9maWxlPWRhdGFfZmlsZXMvc2VydmVyOF9pbnQtY2EyLmNydCBcCi0gICAgICAgICAgICAga2V5X2ZpbGU9ZGF0YV9maWxlcy9zZXJ2ZXI4LmtleSBcCisgICAgICAgICAgICAgY3J0X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9zZXJ2ZXI4X2ludC1jYTIuY3J0IFwKKyAgICAgICAgICAgICBrZXlfZmlsZT0kREFUQV9GSUxFU19QQVRIL3NlcnZlcjgua2V5IFwKICAgICAgICAgICAgICBoc190aW1lb3V0PTI1MC02MDAwMCBtdHU9NTEyIGZvcmNlX3ZlcnNpb249ZHRsczEyIiBcCiAgICAgICAgICAgICAwIFwKICAgICAgICAgICAgIC1jICJmcmFnbWVudGluZyBoYW5kc2hha2UgbWVzc2FnZSIgXApAQCAtMTExMDAsOCArMTExMDIsOCBAQAogcnVuX3Rlc3QgICAgIkRUTFMgZnJhZ21lbnRpbmc6IDNkLCBvcGVuc3NsIGNsaWVudCwgRFRMUyAxLjIiIFwKICAgICAgICAgICAgIC1wICIkUF9QWFkgZHJvcD04IGRlbGF5PTggZHVwbGljYXRlPTgiIFwKICAgICAgICAgICAgICIkUF9TUlYgZHRscz0xIGRlYnVnX2xldmVsPTIgXAotICAgICAgICAgICAgIGNydF9maWxlPWRhdGFfZmlsZXMvc2VydmVyN19pbnQtY2EuY3J0IFwKLSAgICAgICAgICAgICBrZXlfZmlsZT1kYXRhX2ZpbGVzL3NlcnZlcjcua2V5IFwKKyAgICAgICAgICAgICBjcnRfZmlsZT0kREFUQV9GSUxFU19QQVRIL3NlcnZlcjdfaW50LWNhLmNydCBcCisgICAgICAgICAgICAga2V5X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9zZXJ2ZXI3LmtleSBcCiAgICAgICAgICAgICAgaHNfdGltZW91dD0yNTAtNjAwMDAgbXR1PTUxMiBmb3JjZV92ZXJzaW9uPWR0bHMxMiIgXAogICAgICAgICAgICAgIiRPX0NMSSAtZHRsczFfMiIgXAogICAgICAgICAgICAgMCBcCkBAIC0xMjI3Miw3ICsxMjI3NCw3IEBACiByZXF1aXJlc19hbnlfY29uZmlnc19lbmFibGVkICJQU0FfV0FOVF9FQ0NfTU9OVEdPTUVSWV8yNTUiCiByZXF1aXJlc19hbnlfY29uZmlnc19lbmFibGVkICJQU0FfV0FOVF9FQ0NfU0VDUF9SMV8yNTYiCiBydW5fdGVzdCAgICAiVExTIDEuMzogRGVmYXVsdCIgXAotICAgICAgICAgICAgIiRQX1NSViBhbGxvd19zaGExPTAgZGVidWdfbGV2ZWw9MyBjcnRfZmlsZT1kYXRhX2ZpbGVzL3NlcnZlcjUuY3J0IGtleV9maWxlPWRhdGFfZmlsZXMvc2VydmVyNS5rZXkgZm9yY2VfdmVyc2lvbj10bHMxMyIgXAorICAgICAgICAgICAgIiRQX1NSViBhbGxvd19zaGExPTAgZGVidWdfbGV2ZWw9MyBjcnRfZmlsZT0kREFUQV9GSUxFU19QQVRIL3NlcnZlcjUuY3J0IGtleV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvc2VydmVyNS5rZXkgZm9yY2VfdmVyc2lvbj10bHMxMyIgXAogICAgICAgICAgICAgIiRQX0NMSSBhbGxvd19zaGExPTAiIFwKICAgICAgICAgICAgIDAgXAogICAgICAgICAgICAgLXMgIlByb3RvY29sIGlzIFRMU3YxLjMiIFwKQEAgLTEyNDQ2LDcgKzEyNDQ4LDcgQEAKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIE1CRURUTFNfU1NMX0FMUE4KIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIE1CRURUTFNfU1NMX1RMUzFfM19LRVlfRVhDSEFOR0VfTU9ERV9FUEhFTUVSQUxfRU5BQkxFRAogcnVuX3Rlc3QgICAgIlRMUyAxLjM6IHNlcnZlciBhbHBuIC0gb3BlbnNzbCIgXAotICAgICAgICAgICAgIiRQX1NSViBkZWJ1Z19sZXZlbD0zIHRpY2tldHM9MCBjcnRfZmlsZT1kYXRhX2ZpbGVzL3NlcnZlcjUuY3J0IGtleV9maWxlPWRhdGFfZmlsZXMvc2VydmVyNS5rZXkgYWxwbj1oMiIgXAorICAgICAgICAgICAgIiRQX1NSViBkZWJ1Z19sZXZlbD0zIHRpY2tldHM9MCBjcnRfZmlsZT0kREFUQV9GSUxFU19QQVRIL3NlcnZlcjUuY3J0IGtleV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvc2VydmVyNS5rZXkgYWxwbj1oMiIgXAogICAgICAgICAgICAgIiRPX05FWFRfQ0xJIC1tc2cgLXRsczFfMyAtbm9fbWlkZGxlYm94IC1hbHBuIGgyIiBcCiAgICAgICAgICAgICAwIFwKICAgICAgICAgICAgIC1zICJmb3VuZCBhbHBuIGV4dGVuc2lvbiIgXApAQCAtMTI0NjEsNyArMTI0NjMsNyBAQAogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgTUJFRFRMU19TU0xfQUxQTgogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgTUJFRFRMU19TU0xfVExTMV8zX0tFWV9FWENIQU5HRV9NT0RFX0VQSEVNRVJBTF9FTkFCTEVECiBydW5fdGVzdCAgICAiVExTIDEuMzogc2VydmVyIGFscG4gLSBnbnV0bHMiIFwKLSAgICAgICAgICAgICIkUF9TUlYgZGVidWdfbGV2ZWw9MyB0aWNrZXRzPTAgY3J0X2ZpbGU9ZGF0YV9maWxlcy9zZXJ2ZXI1LmNydCBrZXlfZmlsZT1kYXRhX2ZpbGVzL3NlcnZlcjUua2V5IGFscG49aDIiIFwKKyAgICAgICAgICAgICIkUF9TUlYgZGVidWdfbGV2ZWw9MyB0aWNrZXRzPTAgY3J0X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9zZXJ2ZXI1LmNydCBrZXlfZmlsZT0kREFUQV9GSUxFU19QQVRIL3NlcnZlcjUua2V5IGFscG49aDIiIFwKICAgICAgICAgICAgICIkR19ORVhUX0NMSSBsb2NhbGhvc3QgLWQgNCAtLXByaW9yaXR5PU5PUk1BTDotVkVSUy1BTEw6K1ZFUlMtVExTMS4zOiVOT19USUNLRVRTOiVESVNBQkxFX1RMUzEzX0NPTVBBVF9NT0RFIC1WIC0tYWxwbiBoMiIgXAogICAgICAgICAgICAgMCBcCiAgICAgICAgICAgICAtcyAiZm91bmQgYWxwbiBleHRlbnNpb24iIFwKQEAgLTEyNTA4LDcgKzEyNTEwLDcgQEAKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIE1CRURUTFNfU1NMX1RMUzFfM19LRVlfRVhDSEFOR0VfTU9ERV9FUEhFTUVSQUxfRU5BQkxFRAogcnVuX3Rlc3QgICAgIlRMUyAxLjM6IENsaWVudCBhdXRoZW50aWNhdGlvbiwgbm8gc2VydmVyIG1pZGRsZWJveCBjb21wYXQgLSBvcGVuc3NsIiBcCiAgICAgICAgICAgICAiJE9fTkVYVF9TUlYgLW1zZyAtdGxzMV8zIC1udW1fdGlja2V0cyAwIC1ub19yZXN1bWVfZXBoZW1lcmFsIC1ub19jYWNoZSAtVmVyaWZ5IDEwIC1ub19taWRkbGVib3giIFwKLSAgICAgICAgICAgICIkUF9DTEkgZGVidWdfbGV2ZWw9NCBjcnRfZmlsZT1kYXRhX2ZpbGVzL2NsaTIuY3J0IGtleV9maWxlPWRhdGFfZmlsZXMvY2xpMi5rZXkiIFwKKyAgICAgICAgICAgICIkUF9DTEkgZGVidWdfbGV2ZWw9NCBjcnRfZmlsZT0kREFUQV9GSUxFU19QQVRIL2NsaTIuY3J0IGtleV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvY2xpMi5rZXkiIFwKICAgICAgICAgICAgIDAgXAogICAgICAgICAgICAgLWMgImdvdCBhIGNlcnRpZmljYXRlIHJlcXVlc3QiIFwKICAgICAgICAgICAgIC1jICJjbGllbnQgc3RhdGU6IE1CRURUTFNfU1NMX0NMSUVOVF9DRVJUSUZJQ0FURSIgXApAQCAtMTI1MjIsOCArMTI1MjQsOCBAQAogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgTUJFRFRMU19TU0xfVExTMV8zX0tFWV9FWENIQU5HRV9NT0RFX0VQSEVNRVJBTF9FTkFCTEVECiBydW5fdGVzdCAgICAiVExTIDEuMzogQ2xpZW50IGF1dGhlbnRpY2F0aW9uLCBubyBzZXJ2ZXIgbWlkZGxlYm94IGNvbXBhdCAtIGdudXRscyIgXAogICAgICAgICAgICAgIiRHX05FWFRfU1JWIC0tZGVidWc9NCAtLXByaW9yaXR5PU5PUk1BTDotVkVSUy1BTEw6K1ZFUlMtVExTMS4zOitDSVBIRVItQUxMOiVOT19USUNLRVRTOiVESVNBQkxFX1RMUzEzX0NPTVBBVF9NT0RFIiBcCi0gICAgICAgICAgICAiJFBfQ0xJIGRlYnVnX2xldmVsPTMgY3J0X2ZpbGU9ZGF0YV9maWxlcy9jbGkyLmNydCBcCi0gICAgICAgICAgICAgICAgICAgIGtleV9maWxlPWRhdGFfZmlsZXMvY2xpMi5rZXkiIFwKKyAgICAgICAgICAgICIkUF9DTEkgZGVidWdfbGV2ZWw9MyBjcnRfZmlsZT0kREFUQV9GSUxFU19QQVRIL2NsaTIuY3J0IFwKKyAgICAgICAgICAgICAgICAgICAga2V5X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9jbGkyLmtleSIgXAogICAgICAgICAgICAgMCBcCiAgICAgICAgICAgICAtYyAiZ290IGEgY2VydGlmaWNhdGUgcmVxdWVzdCIgXAogICAgICAgICAgICAgLWMgImNsaWVudCBzdGF0ZTogTUJFRFRMU19TU0xfQ0xJRU5UX0NFUlRJRklDQVRFIiBcCkBAIC0xMjUzNyw4ICsxMjUzOSw4IEBACiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1CRURUTFNfU1NMX1RMUzFfM19LRVlfRVhDSEFOR0VfTU9ERV9FUEhFTUVSQUxfRU5BQkxFRAogcnVuX3Rlc3QgICAgIlRMUyAxLjM6IENsaWVudCBhdXRoZW50aWNhdGlvbiwgZWNkc2Ffc2VjcDI1NnIxX3NoYTI1NiAtIG9wZW5zc2wiIFwKICAgICAgICAgICAgICIkT19ORVhUX1NSViAtbXNnIC10bHMxXzMgLW51bV90aWNrZXRzIDAgLW5vX3Jlc3VtZV9lcGhlbWVyYWwgLW5vX2NhY2hlIC1WZXJpZnkgMTAiIFwKLSAgICAgICAgICAgICIkUF9DTEkgZGVidWdfbGV2ZWw9NCBjcnRfZmlsZT1kYXRhX2ZpbGVzL2VjZHNhX3NlY3AyNTZyMS5jcnQgXAotICAgICAgICAgICAgICAgICAgICBrZXlfZmlsZT1kYXRhX2ZpbGVzL2VjZHNhX3NlY3AyNTZyMS5rZXkiIFwKKyAgICAgICAgICAgICIkUF9DTEkgZGVidWdfbGV2ZWw9NCBjcnRfZmlsZT0kREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3AyNTZyMS5jcnQgXAorICAgICAgICAgICAgICAgICAgICBrZXlfZmlsZT0kREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3AyNTZyMS5rZXkiIFwKICAgICAgICAgICAgIDAgXAogICAgICAgICAgICAgLWMgImdvdCBhIGNlcnRpZmljYXRlIHJlcXVlc3QiIFwKICAgICAgICAgICAgIC1jICJjbGllbnQgc3RhdGU6IE1CRURUTFNfU1NMX0NMSUVOVF9DRVJUSUZJQ0FURSIgXApAQCAtMTI1NTMsOCArMTI1NTUsOCBAQAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNQkVEVExTX1NTTF9UTFMxXzNfS0VZX0VYQ0hBTkdFX01PREVfRVBIRU1FUkFMX0VOQUJMRUQKIHJ1bl90ZXN0ICAgICJUTFMgMS4zOiBDbGllbnQgYXV0aGVudGljYXRpb24sIGVjZHNhX3NlY3AyNTZyMV9zaGEyNTYgLSBnbnV0bHMiIFwKICAgICAgICAgICAgICIkR19ORVhUX1NSViAtLWRlYnVnPTQgLS1wcmlvcml0eT1OT1JNQUw6LVZFUlMtQUxMOitWRVJTLVRMUzEuMzorQ0lQSEVSLUFMTDolTk9fVElDS0VUUyIgXAotICAgICAgICAgICAgIiRQX0NMSSBkZWJ1Z19sZXZlbD0zIGNydF9maWxlPWRhdGFfZmlsZXMvZWNkc2Ffc2VjcDI1NnIxLmNydCBcCi0gICAgICAgICAgICAgICAgICAgIGtleV9maWxlPWRhdGFfZmlsZXMvZWNkc2Ffc2VjcDI1NnIxLmtleSIgXAorICAgICAgICAgICAgIiRQX0NMSSBkZWJ1Z19sZXZlbD0zIGNydF9maWxlPSREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDI1NnIxLmNydCBcCisgICAgICAgICAgICAgICAgICAgIGtleV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDI1NnIxLmtleSIgXAogICAgICAgICAgICAgMCBcCiAgICAgICAgICAgICAtYyAiZ290IGEgY2VydGlmaWNhdGUgcmVxdWVzdCIgXAogICAgICAgICAgICAgLWMgImNsaWVudCBzdGF0ZTogTUJFRFRMU19TU0xfQ0xJRU5UX0NFUlRJRklDQVRFIiBcCkBAIC0xMjU2OCw4ICsxMjU3MCw4IEBACiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1CRURUTFNfU1NMX1RMUzFfM19LRVlfRVhDSEFOR0VfTU9ERV9FUEhFTUVSQUxfRU5BQkxFRAogcnVuX3Rlc3QgICAgIlRMUyAxLjM6IENsaWVudCBhdXRoZW50aWNhdGlvbiwgZWNkc2Ffc2VjcDM4NHIxX3NoYTM4NCAtIG9wZW5zc2wiIFwKICAgICAgICAgICAgICIkT19ORVhUX1NSViAtbXNnIC10bHMxXzMgLW51bV90aWNrZXRzIDAgLW5vX3Jlc3VtZV9lcGhlbWVyYWwgLW5vX2NhY2hlIC1WZXJpZnkgMTAiIFwKLSAgICAgICAgICAgICIkUF9DTEkgZGVidWdfbGV2ZWw9NCBjcnRfZmlsZT1kYXRhX2ZpbGVzL2VjZHNhX3NlY3AzODRyMS5jcnQgXAotICAgICAgICAgICAgICAgICAgICBrZXlfZmlsZT1kYXRhX2ZpbGVzL2VjZHNhX3NlY3AzODRyMS5rZXkiIFwKKyAgICAgICAgICAgICIkUF9DTEkgZGVidWdfbGV2ZWw9NCBjcnRfZmlsZT0kREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3AzODRyMS5jcnQgXAorICAgICAgICAgICAgICAgICAgICBrZXlfZmlsZT0kREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3AzODRyMS5rZXkiIFwKICAgICAgICAgICAgIDAgXAogICAgICAgICAgICAgLWMgImdvdCBhIGNlcnRpZmljYXRlIHJlcXVlc3QiIFwKICAgICAgICAgICAgIC1jICJjbGllbnQgc3RhdGU6IE1CRURUTFNfU1NMX0NMSUVOVF9DRVJUSUZJQ0FURSIgXApAQCAtMTI1ODQsOCArMTI1ODYsOCBAQAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNQkVEVExTX1NTTF9UTFMxXzNfS0VZX0VYQ0hBTkdFX01PREVfRVBIRU1FUkFMX0VOQUJMRUQKIHJ1bl90ZXN0ICAgICJUTFMgMS4zOiBDbGllbnQgYXV0aGVudGljYXRpb24sIGVjZHNhX3NlY3AzODRyMV9zaGEzODQgLSBnbnV0bHMiIFwKICAgICAgICAgICAgICIkR19ORVhUX1NSViAtLWRlYnVnPTQgLS1wcmlvcml0eT1OT1JNQUw6LVZFUlMtQUxMOitWRVJTLVRMUzEuMzorQ0lQSEVSLUFMTDolTk9fVElDS0VUUyIgXAotICAgICAgICAgICAgIiRQX0NMSSBkZWJ1Z19sZXZlbD0zIGNydF9maWxlPWRhdGFfZmlsZXMvZWNkc2Ffc2VjcDM4NHIxLmNydCBcCi0gICAgICAgICAgICAgICAgICAgIGtleV9maWxlPWRhdGFfZmlsZXMvZWNkc2Ffc2VjcDM4NHIxLmtleSIgXAorICAgICAgICAgICAgIiRQX0NMSSBkZWJ1Z19sZXZlbD0zIGNydF9maWxlPSREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDM4NHIxLmNydCBcCisgICAgICAgICAgICAgICAgICAgIGtleV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDM4NHIxLmtleSIgXAogICAgICAgICAgICAgMCBcCiAgICAgICAgICAgICAtYyAiZ290IGEgY2VydGlmaWNhdGUgcmVxdWVzdCIgXAogICAgICAgICAgICAgLWMgImNsaWVudCBzdGF0ZTogTUJFRFRMU19TU0xfQ0xJRU5UX0NFUlRJRklDQVRFIiBcCkBAIC0xMjU5OSw4ICsxMjYwMSw4IEBACiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1CRURUTFNfU1NMX1RMUzFfM19LRVlfRVhDSEFOR0VfTU9ERV9FUEhFTUVSQUxfRU5BQkxFRAogcnVuX3Rlc3QgICAgIlRMUyAxLjM6IENsaWVudCBhdXRoZW50aWNhdGlvbiwgZWNkc2Ffc2VjcDUyMXIxX3NoYTUxMiAtIG9wZW5zc2wiIFwKICAgICAgICAgICAgICIkT19ORVhUX1NSViAtbXNnIC10bHMxXzMgLW51bV90aWNrZXRzIDAgLW5vX3Jlc3VtZV9lcGhlbWVyYWwgLW5vX2NhY2hlIC1WZXJpZnkgMTAiIFwKLSAgICAgICAgICAgICIkUF9DTEkgZGVidWdfbGV2ZWw9NCBjcnRfZmlsZT1kYXRhX2ZpbGVzL2VjZHNhX3NlY3A1MjFyMS5jcnQgXAotICAgICAgICAgICAgICAgICAgICBrZXlfZmlsZT1kYXRhX2ZpbGVzL2VjZHNhX3NlY3A1MjFyMS5rZXkiIFwKKyAgICAgICAgICAgICIkUF9DTEkgZGVidWdfbGV2ZWw9NCBjcnRfZmlsZT0kREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3A1MjFyMS5jcnQgXAorICAgICAgICAgICAgICAgICAgICBrZXlfZmlsZT0kREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3A1MjFyMS5rZXkiIFwKICAgICAgICAgICAgIDAgXAogICAgICAgICAgICAgLWMgImdvdCBhIGNlcnRpZmljYXRlIHJlcXVlc3QiIFwKICAgICAgICAgICAgIC1jICJjbGllbnQgc3RhdGU6IE1CRURUTFNfU1NMX0NMSUVOVF9DRVJUSUZJQ0FURSIgXApAQCAtMTI2MTUsOCArMTI2MTcsOCBAQAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNQkVEVExTX1NTTF9UTFMxXzNfS0VZX0VYQ0hBTkdFX01PREVfRVBIRU1FUkFMX0VOQUJMRUQKIHJ1bl90ZXN0ICAgICJUTFMgMS4zOiBDbGllbnQgYXV0aGVudGljYXRpb24sIGVjZHNhX3NlY3A1MjFyMV9zaGE1MTIgLSBnbnV0bHMiIFwKICAgICAgICAgICAgICIkR19ORVhUX1NSViAtLWRlYnVnPTQgLS1wcmlvcml0eT1OT1JNQUw6LVZFUlMtQUxMOitWRVJTLVRMUzEuMzorQ0lQSEVSLUFMTDolTk9fVElDS0VUUyIgXAotICAgICAgICAgICAgIiRQX0NMSSBkZWJ1Z19sZXZlbD0zIGNydF9maWxlPWRhdGFfZmlsZXMvZWNkc2Ffc2VjcDUyMXIxLmNydCBcCi0gICAgICAgICAgICAgICAgICAgIGtleV9maWxlPWRhdGFfZmlsZXMvZWNkc2Ffc2VjcDUyMXIxLmtleSIgXAorICAgICAgICAgICAgIiRQX0NMSSBkZWJ1Z19sZXZlbD0zIGNydF9maWxlPSREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDUyMXIxLmNydCBcCisgICAgICAgICAgICAgICAgICAgIGtleV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDUyMXIxLmtleSIgXAogICAgICAgICAgICAgMCBcCiAgICAgICAgICAgICAtYyAiZ290IGEgY2VydGlmaWNhdGUgcmVxdWVzdCIgXAogICAgICAgICAgICAgLWMgImNsaWVudCBzdGF0ZTogTUJFRFRMU19TU0xfQ0xJRU5UX0NFUlRJRklDQVRFIiBcCkBAIC0xMjYzMSw4ICsxMjYzMyw4IEBACiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1CRURUTFNfU1NMX1RMUzFfM19LRVlfRVhDSEFOR0VfTU9ERV9FUEhFTUVSQUxfRU5BQkxFRAogcnVuX3Rlc3QgICAgIlRMUyAxLjM6IENsaWVudCBhdXRoZW50aWNhdGlvbiwgcnNhX3Bzc19yc2FlX3NoYTI1NiAtIG9wZW5zc2wiIFwKICAgICAgICAgICAgICIkT19ORVhUX1NSViAtbXNnIC10bHMxXzMgLW51bV90aWNrZXRzIDAgLW5vX3Jlc3VtZV9lcGhlbWVyYWwgLW5vX2NhY2hlIC1WZXJpZnkgMTAiIFwKLSAgICAgICAgICAgICIkUF9DTEkgZGVidWdfbGV2ZWw9NCBjcnRfZmlsZT1kYXRhX2ZpbGVzL2NlcnRfc2hhMjU2LmNydCBcCi0gICAgICAgICAgICAgICAgICAgIGtleV9maWxlPWRhdGFfZmlsZXMvc2VydmVyMS5rZXkgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDI1NnIxX3NoYTI1Nixyc2FfcHNzX3JzYWVfc2hhMjU2IiBcCisgICAgICAgICAgICAiJFBfQ0xJIGRlYnVnX2xldmVsPTQgY3J0X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9jZXJ0X3NoYTI1Ni5jcnQgXAorICAgICAgICAgICAgICAgICAgICBrZXlfZmlsZT0kREFUQV9GSUxFU19QQVRIL3NlcnZlcjEua2V5IHNpZ19hbGdzPWVjZHNhX3NlY3AyNTZyMV9zaGEyNTYscnNhX3Bzc19yc2FlX3NoYTI1NiIgXAogICAgICAgICAgICAgMCBcCiAgICAgICAgICAgICAtYyAiZ290IGEgY2VydGlmaWNhdGUgcmVxdWVzdCIgXAogICAgICAgICAgICAgLWMgImNsaWVudCBzdGF0ZTogTUJFRFRMU19TU0xfQ0xJRU5UX0NFUlRJRklDQVRFIiBcCkBAIC0xMjY0OCw4ICsxMjY1MCw4IEBACiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1CRURUTFNfU1NMX1RMUzFfM19LRVlfRVhDSEFOR0VfTU9ERV9FUEhFTUVSQUxfRU5BQkxFRAogcnVuX3Rlc3QgICAgIlRMUyAxLjM6IENsaWVudCBhdXRoZW50aWNhdGlvbiwgcnNhX3Bzc19yc2FlX3NoYTI1NiAtIGdudXRscyIgXAogICAgICAgICAgICAgIiRHX05FWFRfU1JWIC0tZGVidWc9NCAtLXByaW9yaXR5PU5PUk1BTDotVkVSUy1BTEw6K1ZFUlMtVExTMS4zOitDSVBIRVItQUxMOiVOT19USUNLRVRTIiBcCi0gICAgICAgICAgICAiJFBfQ0xJIGRlYnVnX2xldmVsPTMgY3J0X2ZpbGU9ZGF0YV9maWxlcy9zZXJ2ZXIyLXNoYTI1Ni5jcnQgXAotICAgICAgICAgICAgICAgICAgICBrZXlfZmlsZT1kYXRhX2ZpbGVzL3NlcnZlcjIua2V5IHNpZ19hbGdzPWVjZHNhX3NlY3AyNTZyMV9zaGEyNTYscnNhX3Bzc19yc2FlX3NoYTI1NiIgXAorICAgICAgICAgICAgIiRQX0NMSSBkZWJ1Z19sZXZlbD0zIGNydF9maWxlPSREQVRBX0ZJTEVTX1BBVEgvc2VydmVyMi1zaGEyNTYuY3J0IFwKKyAgICAgICAgICAgICAgICAgICAga2V5X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9zZXJ2ZXIyLmtleSBzaWdfYWxncz1lY2RzYV9zZWNwMjU2cjFfc2hhMjU2LHJzYV9wc3NfcnNhZV9zaGEyNTYiIFwKICAgICAgICAgICAgIDAgXAogICAgICAgICAgICAgLWMgImdvdCBhIGNlcnRpZmljYXRlIHJlcXVlc3QiIFwKICAgICAgICAgICAgIC1jICJjbGllbnQgc3RhdGU6IE1CRURUTFNfU1NMX0NMSUVOVF9DRVJUSUZJQ0FURSIgXApAQCAtMTI2NjQsOCArMTI2NjYsOCBAQAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNQkVEVExTX1NTTF9UTFMxXzNfS0VZX0VYQ0hBTkdFX01PREVfRVBIRU1FUkFMX0VOQUJMRUQKIHJ1bl90ZXN0ICAgICJUTFMgMS4zOiBDbGllbnQgYXV0aGVudGljYXRpb24sIHJzYV9wc3NfcnNhZV9zaGEzODQgLSBvcGVuc3NsIiBcCiAgICAgICAgICAgICAiJE9fTkVYVF9TUlYgLW1zZyAtdGxzMV8zIC1udW1fdGlja2V0cyAwIC1ub19yZXN1bWVfZXBoZW1lcmFsIC1ub19jYWNoZSAtVmVyaWZ5IDEwIiBcCi0gICAgICAgICAgICAiJFBfQ0xJIGRlYnVnX2xldmVsPTQgY3J0X2ZpbGU9ZGF0YV9maWxlcy9jZXJ0X3NoYTI1Ni5jcnQgXAotICAgICAgICAgICAgICAgICAgICBrZXlfZmlsZT1kYXRhX2ZpbGVzL3NlcnZlcjEua2V5IHNpZ19hbGdzPWVjZHNhX3NlY3AyNTZyMV9zaGEyNTYscnNhX3Bzc19yc2FlX3NoYTM4NCIgXAorICAgICAgICAgICAgIiRQX0NMSSBkZWJ1Z19sZXZlbD00IGNydF9maWxlPSREQVRBX0ZJTEVTX1BBVEgvY2VydF9zaGEyNTYuY3J0IFwKKyAgICAgICAgICAgICAgICAgICAga2V5X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9zZXJ2ZXIxLmtleSBzaWdfYWxncz1lY2RzYV9zZWNwMjU2cjFfc2hhMjU2LHJzYV9wc3NfcnNhZV9zaGEzODQiIFwKICAgICAgICAgICAgIDAgXAogICAgICAgICAgICAgLWMgImdvdCBhIGNlcnRpZmljYXRlIHJlcXVlc3QiIFwKICAgICAgICAgICAgIC1jICJjbGllbnQgc3RhdGU6IE1CRURUTFNfU1NMX0NMSUVOVF9DRVJUSUZJQ0FURSIgXApAQCAtMTI2ODEsOCArMTI2ODMsOCBAQAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNQkVEVExTX1NTTF9UTFMxXzNfS0VZX0VYQ0hBTkdFX01PREVfRVBIRU1FUkFMX0VOQUJMRUQKIHJ1bl90ZXN0ICAgICJUTFMgMS4zOiBDbGllbnQgYXV0aGVudGljYXRpb24sIHJzYV9wc3NfcnNhZV9zaGEzODQgLSBnbnV0bHMiIFwKICAgICAgICAgICAgICIkR19ORVhUX1NSViAtLWRlYnVnPTQgLS1wcmlvcml0eT1OT1JNQUw6LVZFUlMtQUxMOitWRVJTLVRMUzEuMzorQ0lQSEVSLUFMTDolTk9fVElDS0VUUyIgXAotICAgICAgICAgICAgIiRQX0NMSSBkZWJ1Z19sZXZlbD0zIGNydF9maWxlPWRhdGFfZmlsZXMvc2VydmVyMi1zaGEyNTYuY3J0IFwKLSAgICAgICAgICAgICAgICAgICAga2V5X2ZpbGU9ZGF0YV9maWxlcy9zZXJ2ZXIyLmtleSBzaWdfYWxncz1lY2RzYV9zZWNwMjU2cjFfc2hhMjU2LHJzYV9wc3NfcnNhZV9zaGEzODQiIFwKKyAgICAgICAgICAgICIkUF9DTEkgZGVidWdfbGV2ZWw9MyBjcnRfZmlsZT0kREFUQV9GSUxFU19QQVRIL3NlcnZlcjItc2hhMjU2LmNydCBcCisgICAgICAgICAgICAgICAgICAgIGtleV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvc2VydmVyMi5rZXkgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDI1NnIxX3NoYTI1Nixyc2FfcHNzX3JzYWVfc2hhMzg0IiBcCiAgICAgICAgICAgICAwIFwKICAgICAgICAgICAgIC1jICJnb3QgYSBjZXJ0aWZpY2F0ZSByZXF1ZXN0IiBcCiAgICAgICAgICAgICAtYyAiY2xpZW50IHN0YXRlOiBNQkVEVExTX1NTTF9DTElFTlRfQ0VSVElGSUNBVEUiIFwKQEAgLTEyNjk3LDggKzEyNjk5LDggQEAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTUJFRFRMU19TU0xfVExTMV8zX0tFWV9FWENIQU5HRV9NT0RFX0VQSEVNRVJBTF9FTkFCTEVECiBydW5fdGVzdCAgICAiVExTIDEuMzogQ2xpZW50IGF1dGhlbnRpY2F0aW9uLCByc2FfcHNzX3JzYWVfc2hhNTEyIC0gb3BlbnNzbCIgXAogICAgICAgICAgICAgIiRPX05FWFRfU1JWIC1tc2cgLXRsczFfMyAtbnVtX3RpY2tldHMgMCAtbm9fcmVzdW1lX2VwaGVtZXJhbCAtbm9fY2FjaGUgLVZlcmlmeSAxMCIgXAotICAgICAgICAgICAgIiRQX0NMSSBkZWJ1Z19sZXZlbD00IGNydF9maWxlPWRhdGFfZmlsZXMvY2VydF9zaGEyNTYuY3J0IFwKLSAgICAgICAgICAgICAgICAgICAga2V5X2ZpbGU9ZGF0YV9maWxlcy9zZXJ2ZXIxLmtleSBzaWdfYWxncz1lY2RzYV9zZWNwMjU2cjFfc2hhMjU2LHJzYV9wc3NfcnNhZV9zaGE1MTIiIFwKKyAgICAgICAgICAgICIkUF9DTEkgZGVidWdfbGV2ZWw9NCBjcnRfZmlsZT0kREFUQV9GSUxFU19QQVRIL2NlcnRfc2hhMjU2LmNydCBcCisgICAgICAgICAgICAgICAgICAgIGtleV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvc2VydmVyMS5rZXkgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDI1NnIxX3NoYTI1Nixyc2FfcHNzX3JzYWVfc2hhNTEyIiBcCiAgICAgICAgICAgICAwIFwKICAgICAgICAgICAgIC1jICJnb3QgYSBjZXJ0aWZpY2F0ZSByZXF1ZXN0IiBcCiAgICAgICAgICAgICAtYyAiY2xpZW50IHN0YXRlOiBNQkVEVExTX1NTTF9DTElFTlRfQ0VSVElGSUNBVEUiIFwKQEAgLTEyNzE0LDggKzEyNzE2LDggQEAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTUJFRFRMU19TU0xfVExTMV8zX0tFWV9FWENIQU5HRV9NT0RFX0VQSEVNRVJBTF9FTkFCTEVECiBydW5fdGVzdCAgICAiVExTIDEuMzogQ2xpZW50IGF1dGhlbnRpY2F0aW9uLCByc2FfcHNzX3JzYWVfc2hhNTEyIC0gZ251dGxzIiBcCiAgICAgICAgICAgICAiJEdfTkVYVF9TUlYgLS1kZWJ1Zz00IC0tcHJpb3JpdHk9Tk9STUFMOi1WRVJTLUFMTDorVkVSUy1UTFMxLjM6K0NJUEhFUi1BTEw6JU5PX1RJQ0tFVFMiIFwKLSAgICAgICAgICAgICIkUF9DTEkgZGVidWdfbGV2ZWw9MyBjcnRfZmlsZT1kYXRhX2ZpbGVzL3NlcnZlcjItc2hhMjU2LmNydCBcCi0gICAgICAgICAgICAgICAgICAgIGtleV9maWxlPWRhdGFfZmlsZXMvc2VydmVyMi5rZXkgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDI1NnIxX3NoYTI1Nixyc2FfcHNzX3JzYWVfc2hhNTEyIiBcCisgICAgICAgICAgICAiJFBfQ0xJIGRlYnVnX2xldmVsPTMgY3J0X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9zZXJ2ZXIyLXNoYTI1Ni5jcnQgXAorICAgICAgICAgICAgICAgICAgICBrZXlfZmlsZT0kREFUQV9GSUxFU19QQVRIL3NlcnZlcjIua2V5IHNpZ19hbGdzPWVjZHNhX3NlY3AyNTZyMV9zaGEyNTYscnNhX3Bzc19yc2FlX3NoYTUxMiIgXAogICAgICAgICAgICAgMCBcCiAgICAgICAgICAgICAtYyAiZ290IGEgY2VydGlmaWNhdGUgcmVxdWVzdCIgXAogICAgICAgICAgICAgLWMgImNsaWVudCBzdGF0ZTogTUJFRFRMU19TU0xfQ0xJRU5UX0NFUlRJRklDQVRFIiBcCkBAIC0xMjczMSw4ICsxMjczMyw4IEBACiBydW5fdGVzdCAgICAiVExTIDEuMzogQ2xpZW50IGF1dGhlbnRpY2F0aW9uLCBjbGllbnQgYWxnIG5vdCBpbiBzZXJ2ZXIgbGlzdCAtIG9wZW5zc2wiIFwKICAgICAgICAgICAgICIkT19ORVhUX1NSViAtbXNnIC10bHMxXzMgLW51bV90aWNrZXRzIDAgLW5vX3Jlc3VtZV9lcGhlbWVyYWwgLW5vX2NhY2hlIC1WZXJpZnkgMTAKICAgICAgICAgICAgICAgICAtc2lnYWxncyBlY2RzYV9zZWNwMjU2cjFfc2hhMjU2IiBcCi0gICAgICAgICAgICAiJFBfQ0xJIGRlYnVnX2xldmVsPTMgY3J0X2ZpbGU9ZGF0YV9maWxlcy9lY2RzYV9zZWNwNTIxcjEuY3J0IFwKLSAgICAgICAgICAgICAgICAgICAga2V5X2ZpbGU9ZGF0YV9maWxlcy9lY2RzYV9zZWNwNTIxcjEua2V5IHNpZ19hbGdzPWVjZHNhX3NlY3AyNTZyMV9zaGEyNTYsZWNkc2Ffc2VjcDUyMXIxX3NoYTUxMiIgXAorICAgICAgICAgICAgIiRQX0NMSSBkZWJ1Z19sZXZlbD0zIGNydF9maWxlPSREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDUyMXIxLmNydCBcCisgICAgICAgICAgICAgICAgICAgIGtleV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDUyMXIxLmtleSBzaWdfYWxncz1lY2RzYV9zZWNwMjU2cjFfc2hhMjU2LGVjZHNhX3NlY3A1MjFyMV9zaGE1MTIiIFwKICAgICAgICAgICAgIDEgXAogICAgICAgICAgICAgLWMgImdvdCBhIGNlcnRpZmljYXRlIHJlcXVlc3QiIFwKICAgICAgICAgICAgIC1jICJjbGllbnQgc3RhdGU6IE1CRURUTFNfU1NMX0NMSUVOVF9DRVJUSUZJQ0FURSIgXApAQCAtMTI3NDgsOCArMTI3NTAsOCBAQAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNQkVEVExTX1NTTF9UTFMxXzNfS0VZX0VYQ0hBTkdFX01PREVfRVBIRU1FUkFMX0VOQUJMRUQKIHJ1bl90ZXN0ICAgICJUTFMgMS4zOiBDbGllbnQgYXV0aGVudGljYXRpb24sIGNsaWVudCBhbGcgbm90IGluIHNlcnZlciBsaXN0IC0gZ251dGxzIiBcCiAgICAgICAgICAgICAiJEdfTkVYVF9TUlYgLS1kZWJ1Zz00IC0tcHJpb3JpdHk9Tk9STUFMOi1WRVJTLUFMTDorVkVSUy1UTFMxLjM6K0NJUEhFUi1BTEw6LVNJR04tQUxMOitTSUdOLUVDRFNBLVNFQ1AyNTZSMS1TSEEyNTY6JU5PX1RJQ0tFVFMiIFwKLSAgICAgICAgICAgICIkUF9DTEkgZGVidWdfbGV2ZWw9MyBjcnRfZmlsZT1kYXRhX2ZpbGVzL2VjZHNhX3NlY3A1MjFyMS5jcnQgXAotICAgICAgICAgICAgICAgICAgICBrZXlfZmlsZT1kYXRhX2ZpbGVzL2VjZHNhX3NlY3A1MjFyMS5rZXkgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDI1NnIxX3NoYTI1NixlY2RzYV9zZWNwNTIxcjFfc2hhNTEyIiBcCisgICAgICAgICAgICAiJFBfQ0xJIGRlYnVnX2xldmVsPTMgY3J0X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwNTIxcjEuY3J0IFwKKyAgICAgICAgICAgICAgICAgICAga2V5X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwNTIxcjEua2V5IHNpZ19hbGdzPWVjZHNhX3NlY3AyNTZyMV9zaGEyNTYsZWNkc2Ffc2VjcDUyMXIxX3NoYTUxMiIgXAogICAgICAgICAgICAgMSBcCiAgICAgICAgICAgICAtYyAiZ290IGEgY2VydGlmaWNhdGUgcmVxdWVzdCIgXAogICAgICAgICAgICAgLWMgImNsaWVudCBzdGF0ZTogTUJFRFRMU19TU0xfQ0xJRU5UX0NFUlRJRklDQVRFIiBcCkBAIC0xMjc2NCw3ICsxMjc2Niw3IEBACiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBNQkVEVExTX1NTTF9UTFMxXzNfS0VZX0VYQ0hBTkdFX01PREVfRVBIRU1FUkFMX0VOQUJMRUQKIHJ1bl90ZXN0ICAgICJUTFMgMS4zOiBDbGllbnQgYXV0aGVudGljYXRpb24gLSBvcGFxdWUga2V5LCBubyBzZXJ2ZXIgbWlkZGxlYm94IGNvbXBhdCAtIG9wZW5zc2wiIFwKICAgICAgICAgICAgICIkT19ORVhUX1NSViAtbXNnIC10bHMxXzMgLW51bV90aWNrZXRzIDAgLW5vX3Jlc3VtZV9lcGhlbWVyYWwgLW5vX2NhY2hlIC1WZXJpZnkgMTAgLW5vX21pZGRsZWJveCIgXAotICAgICAgICAgICAgIiRQX0NMSSBkZWJ1Z19sZXZlbD00IGNydF9maWxlPWRhdGFfZmlsZXMvY2xpMi5jcnQga2V5X2ZpbGU9ZGF0YV9maWxlcy9jbGkyLmtleSBrZXlfb3BhcXVlPTEiIFwKKyAgICAgICAgICAgICIkUF9DTEkgZGVidWdfbGV2ZWw9NCBjcnRfZmlsZT0kREFUQV9GSUxFU19QQVRIL2NsaTIuY3J0IGtleV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvY2xpMi5rZXkga2V5X29wYXF1ZT0xIiBcCiAgICAgICAgICAgICAwIFwKICAgICAgICAgICAgIC1jICJnb3QgYSBjZXJ0aWZpY2F0ZSByZXF1ZXN0IiBcCiAgICAgICAgICAgICAtYyAiY2xpZW50IHN0YXRlOiBNQkVEVExTX1NTTF9DTElFTlRfQ0VSVElGSUNBVEUiIFwKQEAgLTEyNzc5LDggKzEyNzgxLDggQEAKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIE1CRURUTFNfU1NMX1RMUzFfM19LRVlfRVhDSEFOR0VfTU9ERV9FUEhFTUVSQUxfRU5BQkxFRAogcnVuX3Rlc3QgICAgIlRMUyAxLjM6IENsaWVudCBhdXRoZW50aWNhdGlvbiAtIG9wYXF1ZSBrZXksIG5vIHNlcnZlciBtaWRkbGVib3ggY29tcGF0IC0gZ251dGxzIiBcCiAgICAgICAgICAgICAiJEdfTkVYVF9TUlYgLS1kZWJ1Zz00IC0tcHJpb3JpdHk9Tk9STUFMOi1WRVJTLUFMTDorVkVSUy1UTFMxLjM6K0NJUEhFUi1BTEw6JU5PX1RJQ0tFVFM6JURJU0FCTEVfVExTMTNfQ09NUEFUX01PREUiIFwKLSAgICAgICAgICAgICIkUF9DTEkgZGVidWdfbGV2ZWw9MyBjcnRfZmlsZT1kYXRhX2ZpbGVzL2NsaTIuY3J0IFwKLSAgICAgICAgICAgICAgICAgICAga2V5X2ZpbGU9ZGF0YV9maWxlcy9jbGkyLmtleSBrZXlfb3BhcXVlPTEiIFwKKyAgICAgICAgICAgICIkUF9DTEkgZGVidWdfbGV2ZWw9MyBjcnRfZmlsZT0kREFUQV9GSUxFU19QQVRIL2NsaTIuY3J0IFwKKyAgICAgICAgICAgICAgICAgICAga2V5X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9jbGkyLmtleSBrZXlfb3BhcXVlPTEiIFwKICAgICAgICAgICAgIDAgXAogICAgICAgICAgICAgLWMgImdvdCBhIGNlcnRpZmljYXRlIHJlcXVlc3QiIFwKICAgICAgICAgICAgIC1jICJjbGllbnQgc3RhdGU6IE1CRURUTFNfU1NMX0NMSUVOVF9DRVJUSUZJQ0FURSIgXApAQCAtMTI3OTUsOCArMTI3OTcsOCBAQAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNQkVEVExTX1NTTF9UTFMxXzNfS0VZX0VYQ0hBTkdFX01PREVfRVBIRU1FUkFMX0VOQUJMRUQKIHJ1bl90ZXN0ICAgICJUTFMgMS4zOiBDbGllbnQgYXV0aGVudGljYXRpb24gLSBvcGFxdWUga2V5LCBlY2RzYV9zZWNwMjU2cjFfc2hhMjU2IC0gb3BlbnNzbCIgXAogICAgICAgICAgICAgIiRPX05FWFRfU1JWIC1tc2cgLXRsczFfMyAtbnVtX3RpY2tldHMgMCAtbm9fcmVzdW1lX2VwaGVtZXJhbCAtbm9fY2FjaGUgLVZlcmlmeSAxMCIgXAotICAgICAgICAgICAgIiRQX0NMSSBkZWJ1Z19sZXZlbD00IGNydF9maWxlPWRhdGFfZmlsZXMvZWNkc2Ffc2VjcDI1NnIxLmNydCBcCi0gICAgICAgICAgICAgICAgICAgIGtleV9maWxlPWRhdGFfZmlsZXMvZWNkc2Ffc2VjcDI1NnIxLmtleSBrZXlfb3BhcXVlPTEiIFwKKyAgICAgICAgICAgICIkUF9DTEkgZGVidWdfbGV2ZWw9NCBjcnRfZmlsZT0kREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3AyNTZyMS5jcnQgXAorICAgICAgICAgICAgICAgICAgICBrZXlfZmlsZT0kREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3AyNTZyMS5rZXkga2V5X29wYXF1ZT0xIiBcCiAgICAgICAgICAgICAwIFwKICAgICAgICAgICAgIC1jICJnb3QgYSBjZXJ0aWZpY2F0ZSByZXF1ZXN0IiBcCiAgICAgICAgICAgICAtYyAiY2xpZW50IHN0YXRlOiBNQkVEVExTX1NTTF9DTElFTlRfQ0VSVElGSUNBVEUiIFwKQEAgLTEyODEyLDggKzEyODE0LDggQEAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTUJFRFRMU19TU0xfVExTMV8zX0tFWV9FWENIQU5HRV9NT0RFX0VQSEVNRVJBTF9FTkFCTEVECiBydW5fdGVzdCAgICAiVExTIDEuMzogQ2xpZW50IGF1dGhlbnRpY2F0aW9uIC0gb3BhcXVlIGtleSwgZWNkc2Ffc2VjcDI1NnIxX3NoYTI1NiAtIGdudXRscyIgXAogICAgICAgICAgICAgIiRHX05FWFRfU1JWIC0tZGVidWc9NCAtLXByaW9yaXR5PU5PUk1BTDotVkVSUy1BTEw6K1ZFUlMtVExTMS4zOitDSVBIRVItQUxMOiVOT19USUNLRVRTIiBcCi0gICAgICAgICAgICAiJFBfQ0xJIGRlYnVnX2xldmVsPTMgY3J0X2ZpbGU9ZGF0YV9maWxlcy9lY2RzYV9zZWNwMjU2cjEuY3J0IFwKLSAgICAgICAgICAgICAgICAgICAga2V5X2ZpbGU9ZGF0YV9maWxlcy9lY2RzYV9zZWNwMjU2cjEua2V5IGtleV9vcGFxdWU9MSIgXAorICAgICAgICAgICAgIiRQX0NMSSBkZWJ1Z19sZXZlbD0zIGNydF9maWxlPSREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDI1NnIxLmNydCBcCisgICAgICAgICAgICAgICAgICAgIGtleV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDI1NnIxLmtleSBrZXlfb3BhcXVlPTEiIFwKICAgICAgICAgICAgIDAgXAogICAgICAgICAgICAgLWMgImdvdCBhIGNlcnRpZmljYXRlIHJlcXVlc3QiIFwKICAgICAgICAgICAgIC1jICJjbGllbnQgc3RhdGU6IE1CRURUTFNfU1NMX0NMSUVOVF9DRVJUSUZJQ0FURSIgXApAQCAtMTI4MjgsOCArMTI4MzAsOCBAQAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNQkVEVExTX1NTTF9UTFMxXzNfS0VZX0VYQ0hBTkdFX01PREVfRVBIRU1FUkFMX0VOQUJMRUQKIHJ1bl90ZXN0ICAgICJUTFMgMS4zOiBDbGllbnQgYXV0aGVudGljYXRpb24gLSBvcGFxdWUga2V5LCBlY2RzYV9zZWNwMzg0cjFfc2hhMzg0IC0gb3BlbnNzbCIgXAogICAgICAgICAgICAgIiRPX05FWFRfU1JWIC1tc2cgLXRsczFfMyAtbnVtX3RpY2tldHMgMCAtbm9fcmVzdW1lX2VwaGVtZXJhbCAtbm9fY2FjaGUgLVZlcmlmeSAxMCIgXAotICAgICAgICAgICAgIiRQX0NMSSBkZWJ1Z19sZXZlbD00IGNydF9maWxlPWRhdGFfZmlsZXMvZWNkc2Ffc2VjcDM4NHIxLmNydCBcCi0gICAgICAgICAgICAgICAgICAgIGtleV9maWxlPWRhdGFfZmlsZXMvZWNkc2Ffc2VjcDM4NHIxLmtleSBrZXlfb3BhcXVlPTEiIFwKKyAgICAgICAgICAgICIkUF9DTEkgZGVidWdfbGV2ZWw9NCBjcnRfZmlsZT0kREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3AzODRyMS5jcnQgXAorICAgICAgICAgICAgICAgICAgICBrZXlfZmlsZT0kREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3AzODRyMS5rZXkga2V5X29wYXF1ZT0xIiBcCiAgICAgICAgICAgICAwIFwKICAgICAgICAgICAgIC1jICJnb3QgYSBjZXJ0aWZpY2F0ZSByZXF1ZXN0IiBcCiAgICAgICAgICAgICAtYyAiY2xpZW50IHN0YXRlOiBNQkVEVExTX1NTTF9DTElFTlRfQ0VSVElGSUNBVEUiIFwKQEAgLTEyODQ1LDggKzEyODQ3LDggQEAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTUJFRFRMU19TU0xfVExTMV8zX0tFWV9FWENIQU5HRV9NT0RFX0VQSEVNRVJBTF9FTkFCTEVECiBydW5fdGVzdCAgICAiVExTIDEuMzogQ2xpZW50IGF1dGhlbnRpY2F0aW9uIC0gb3BhcXVlIGtleSwgZWNkc2Ffc2VjcDM4NHIxX3NoYTM4NCAtIGdudXRscyIgXAogICAgICAgICAgICAgIiRHX05FWFRfU1JWIC0tZGVidWc9NCAtLXByaW9yaXR5PU5PUk1BTDotVkVSUy1BTEw6K1ZFUlMtVExTMS4zOitDSVBIRVItQUxMOiVOT19USUNLRVRTIiBcCi0gICAgICAgICAgICAiJFBfQ0xJIGRlYnVnX2xldmVsPTMgY3J0X2ZpbGU9ZGF0YV9maWxlcy9lY2RzYV9zZWNwMzg0cjEuY3J0IFwKLSAgICAgICAgICAgICAgICAgICAga2V5X2ZpbGU9ZGF0YV9maWxlcy9lY2RzYV9zZWNwMzg0cjEua2V5IGtleV9vcGFxdWU9MSIgXAorICAgICAgICAgICAgIiRQX0NMSSBkZWJ1Z19sZXZlbD0zIGNydF9maWxlPSREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDM4NHIxLmNydCBcCisgICAgICAgICAgICAgICAgICAgIGtleV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDM4NHIxLmtleSBrZXlfb3BhcXVlPTEiIFwKICAgICAgICAgICAgIDAgXAogICAgICAgICAgICAgLWMgImdvdCBhIGNlcnRpZmljYXRlIHJlcXVlc3QiIFwKICAgICAgICAgICAgIC1jICJjbGllbnQgc3RhdGU6IE1CRURUTFNfU1NMX0NMSUVOVF9DRVJUSUZJQ0FURSIgXApAQCAtMTI4NjEsOCArMTI4NjMsOCBAQAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNQkVEVExTX1NTTF9UTFMxXzNfS0VZX0VYQ0hBTkdFX01PREVfRVBIRU1FUkFMX0VOQUJMRUQKIHJ1bl90ZXN0ICAgICJUTFMgMS4zOiBDbGllbnQgYXV0aGVudGljYXRpb24gLSBvcGFxdWUga2V5LCBlY2RzYV9zZWNwNTIxcjFfc2hhNTEyIC0gb3BlbnNzbCIgXAogICAgICAgICAgICAgIiRPX05FWFRfU1JWIC1tc2cgLXRsczFfMyAtbnVtX3RpY2tldHMgMCAtbm9fcmVzdW1lX2VwaGVtZXJhbCAtbm9fY2FjaGUgLVZlcmlmeSAxMCIgXAotICAgICAgICAgICAgIiRQX0NMSSBkZWJ1Z19sZXZlbD00IGNydF9maWxlPWRhdGFfZmlsZXMvZWNkc2Ffc2VjcDUyMXIxLmNydCBcCi0gICAgICAgICAgICAgICAgICAgIGtleV9maWxlPWRhdGFfZmlsZXMvZWNkc2Ffc2VjcDUyMXIxLmtleSBrZXlfb3BhcXVlPTEiIFwKKyAgICAgICAgICAgICIkUF9DTEkgZGVidWdfbGV2ZWw9NCBjcnRfZmlsZT0kREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3A1MjFyMS5jcnQgXAorICAgICAgICAgICAgICAgICAgICBrZXlfZmlsZT0kREFUQV9GSUxFU19QQVRIL2VjZHNhX3NlY3A1MjFyMS5rZXkga2V5X29wYXF1ZT0xIiBcCiAgICAgICAgICAgICAwIFwKICAgICAgICAgICAgIC1jICJnb3QgYSBjZXJ0aWZpY2F0ZSByZXF1ZXN0IiBcCiAgICAgICAgICAgICAtYyAiY2xpZW50IHN0YXRlOiBNQkVEVExTX1NTTF9DTElFTlRfQ0VSVElGSUNBVEUiIFwKQEAgLTEyODc4LDggKzEyODgwLDggQEAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTUJFRFRMU19TU0xfVExTMV8zX0tFWV9FWENIQU5HRV9NT0RFX0VQSEVNRVJBTF9FTkFCTEVECiBydW5fdGVzdCAgICAiVExTIDEuMzogQ2xpZW50IGF1dGhlbnRpY2F0aW9uIC0gb3BhcXVlIGtleSwgZWNkc2Ffc2VjcDUyMXIxX3NoYTUxMiAtIGdudXRscyIgXAogICAgICAgICAgICAgIiRHX05FWFRfU1JWIC0tZGVidWc9NCAtLXByaW9yaXR5PU5PUk1BTDotVkVSUy1BTEw6K1ZFUlMtVExTMS4zOitDSVBIRVItQUxMOiVOT19USUNLRVRTIiBcCi0gICAgICAgICAgICAiJFBfQ0xJIGRlYnVnX2xldmVsPTMgY3J0X2ZpbGU9ZGF0YV9maWxlcy9lY2RzYV9zZWNwNTIxcjEuY3J0IFwKLSAgICAgICAgICAgICAgICAgICAga2V5X2ZpbGU9ZGF0YV9maWxlcy9lY2RzYV9zZWNwNTIxcjEua2V5IGtleV9vcGFxdWU9MSIgXAorICAgICAgICAgICAgIiRQX0NMSSBkZWJ1Z19sZXZlbD0zIGNydF9maWxlPSREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDUyMXIxLmNydCBcCisgICAgICAgICAgICAgICAgICAgIGtleV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDUyMXIxLmtleSBrZXlfb3BhcXVlPTEiIFwKICAgICAgICAgICAgIDAgXAogICAgICAgICAgICAgLWMgImdvdCBhIGNlcnRpZmljYXRlIHJlcXVlc3QiIFwKICAgICAgICAgICAgIC1jICJjbGllbnQgc3RhdGU6IE1CRURUTFNfU1NMX0NMSUVOVF9DRVJUSUZJQ0FURSIgXApAQCAtMTI4OTUsOCArMTI4OTcsOCBAQAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNQkVEVExTX1NTTF9UTFMxXzNfS0VZX0VYQ0hBTkdFX01PREVfRVBIRU1FUkFMX0VOQUJMRUQKIHJ1bl90ZXN0ICAgICJUTFMgMS4zOiBDbGllbnQgYXV0aGVudGljYXRpb24gLSBvcGFxdWUga2V5LCByc2FfcHNzX3JzYWVfc2hhMjU2IC0gb3BlbnNzbCIgXAogICAgICAgICAgICAgIiRPX05FWFRfU1JWIC1tc2cgLXRsczFfMyAtbnVtX3RpY2tldHMgMCAtbm9fcmVzdW1lX2VwaGVtZXJhbCAtbm9fY2FjaGUgLVZlcmlmeSAxMCIgXAotICAgICAgICAgICAgIiRQX0NMSSBkZWJ1Z19sZXZlbD00IGNydF9maWxlPWRhdGFfZmlsZXMvY2VydF9zaGEyNTYuY3J0IFwKLSAgICAgICAgICAgICAgICAgICAga2V5X2ZpbGU9ZGF0YV9maWxlcy9zZXJ2ZXIxLmtleSBzaWdfYWxncz1lY2RzYV9zZWNwMjU2cjFfc2hhMjU2LHJzYV9wc3NfcnNhZV9zaGEyNTYga2V5X29wYXF1ZT0xIiBcCisgICAgICAgICAgICAiJFBfQ0xJIGRlYnVnX2xldmVsPTQgY3J0X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9jZXJ0X3NoYTI1Ni5jcnQgXAorICAgICAgICAgICAgICAgICAgICBrZXlfZmlsZT0kREFUQV9GSUxFU19QQVRIL3NlcnZlcjEua2V5IHNpZ19hbGdzPWVjZHNhX3NlY3AyNTZyMV9zaGEyNTYscnNhX3Bzc19yc2FlX3NoYTI1NiBrZXlfb3BhcXVlPTEiIFwKICAgICAgICAgICAgIDAgXAogICAgICAgICAgICAgLWMgImdvdCBhIGNlcnRpZmljYXRlIHJlcXVlc3QiIFwKICAgICAgICAgICAgIC1jICJjbGllbnQgc3RhdGU6IE1CRURUTFNfU1NMX0NMSUVOVF9DRVJUSUZJQ0FURSIgXApAQCAtMTI5MTMsOCArMTI5MTUsOCBAQAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNQkVEVExTX1NTTF9UTFMxXzNfS0VZX0VYQ0hBTkdFX01PREVfRVBIRU1FUkFMX0VOQUJMRUQKIHJ1bl90ZXN0ICAgICJUTFMgMS4zOiBDbGllbnQgYXV0aGVudGljYXRpb24gLSBvcGFxdWUga2V5LCByc2FfcHNzX3JzYWVfc2hhMjU2IC0gZ251dGxzIiBcCiAgICAgICAgICAgICAiJEdfTkVYVF9TUlYgLS1kZWJ1Zz00IC0tcHJpb3JpdHk9Tk9STUFMOi1WRVJTLUFMTDorVkVSUy1UTFMxLjM6K0NJUEhFUi1BTEw6JU5PX1RJQ0tFVFMiIFwKLSAgICAgICAgICAgICIkUF9DTEkgZGVidWdfbGV2ZWw9MyBjcnRfZmlsZT1kYXRhX2ZpbGVzL3NlcnZlcjItc2hhMjU2LmNydCBcCi0gICAgICAgICAgICAgICAgICAgIGtleV9maWxlPWRhdGFfZmlsZXMvc2VydmVyMi5rZXkgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDI1NnIxX3NoYTI1Nixyc2FfcHNzX3JzYWVfc2hhMjU2IGtleV9vcGFxdWU9MSIgXAorICAgICAgICAgICAgIiRQX0NMSSBkZWJ1Z19sZXZlbD0zIGNydF9maWxlPSREQVRBX0ZJTEVTX1BBVEgvc2VydmVyMi1zaGEyNTYuY3J0IFwKKyAgICAgICAgICAgICAgICAgICAga2V5X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9zZXJ2ZXIyLmtleSBzaWdfYWxncz1lY2RzYV9zZWNwMjU2cjFfc2hhMjU2LHJzYV9wc3NfcnNhZV9zaGEyNTYga2V5X29wYXF1ZT0xIiBcCiAgICAgICAgICAgICAwIFwKICAgICAgICAgICAgIC1jICJnb3QgYSBjZXJ0aWZpY2F0ZSByZXF1ZXN0IiBcCiAgICAgICAgICAgICAtYyAiY2xpZW50IHN0YXRlOiBNQkVEVExTX1NTTF9DTElFTlRfQ0VSVElGSUNBVEUiIFwKQEAgLTEyOTMwLDggKzEyOTMyLDggQEAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTUJFRFRMU19TU0xfVExTMV8zX0tFWV9FWENIQU5HRV9NT0RFX0VQSEVNRVJBTF9FTkFCTEVECiBydW5fdGVzdCAgICAiVExTIDEuMzogQ2xpZW50IGF1dGhlbnRpY2F0aW9uIC0gb3BhcXVlIGtleSwgcnNhX3Bzc19yc2FlX3NoYTM4NCAtIG9wZW5zc2wiIFwKICAgICAgICAgICAgICIkT19ORVhUX1NSViAtbXNnIC10bHMxXzMgLW51bV90aWNrZXRzIDAgLW5vX3Jlc3VtZV9lcGhlbWVyYWwgLW5vX2NhY2hlIC1WZXJpZnkgMTAiIFwKLSAgICAgICAgICAgICIkUF9DTEkgZGVidWdfbGV2ZWw9NCBjcnRfZmlsZT1kYXRhX2ZpbGVzL2NlcnRfc2hhMjU2LmNydCBcCi0gICAgICAgICAgICAgICAgICAgIGtleV9maWxlPWRhdGFfZmlsZXMvc2VydmVyMS5rZXkgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDI1NnIxX3NoYTI1Nixyc2FfcHNzX3JzYWVfc2hhMzg0IGtleV9vcGFxdWU9MSIgXAorICAgICAgICAgICAgIiRQX0NMSSBkZWJ1Z19sZXZlbD00IGNydF9maWxlPSREQVRBX0ZJTEVTX1BBVEgvY2VydF9zaGEyNTYuY3J0IFwKKyAgICAgICAgICAgICAgICAgICAga2V5X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9zZXJ2ZXIxLmtleSBzaWdfYWxncz1lY2RzYV9zZWNwMjU2cjFfc2hhMjU2LHJzYV9wc3NfcnNhZV9zaGEzODQga2V5X29wYXF1ZT0xIiBcCiAgICAgICAgICAgICAwIFwKICAgICAgICAgICAgIC1jICJnb3QgYSBjZXJ0aWZpY2F0ZSByZXF1ZXN0IiBcCiAgICAgICAgICAgICAtYyAiY2xpZW50IHN0YXRlOiBNQkVEVExTX1NTTF9DTElFTlRfQ0VSVElGSUNBVEUiIFwKQEAgLTEyOTQ4LDggKzEyOTUwLDggQEAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTUJFRFRMU19TU0xfVExTMV8zX0tFWV9FWENIQU5HRV9NT0RFX0VQSEVNRVJBTF9FTkFCTEVECiBydW5fdGVzdCAgICAiVExTIDEuMzogQ2xpZW50IGF1dGhlbnRpY2F0aW9uIC0gb3BhcXVlIGtleSwgcnNhX3Bzc19yc2FlX3NoYTM4NCAtIGdudXRscyIgXAogICAgICAgICAgICAgIiRHX05FWFRfU1JWIC0tZGVidWc9NCAtLXByaW9yaXR5PU5PUk1BTDotVkVSUy1BTEw6K1ZFUlMtVExTMS4zOitDSVBIRVItQUxMOiVOT19USUNLRVRTIiBcCi0gICAgICAgICAgICAiJFBfQ0xJIGRlYnVnX2xldmVsPTMgY3J0X2ZpbGU9ZGF0YV9maWxlcy9zZXJ2ZXIyLXNoYTI1Ni5jcnQgXAotICAgICAgICAgICAgICAgICAgICBrZXlfZmlsZT1kYXRhX2ZpbGVzL3NlcnZlcjIua2V5IHNpZ19hbGdzPWVjZHNhX3NlY3AyNTZyMV9zaGEyNTYscnNhX3Bzc19yc2FlX3NoYTM4NCBrZXlfb3BhcXVlPTEiIFwKKyAgICAgICAgICAgICIkUF9DTEkgZGVidWdfbGV2ZWw9MyBjcnRfZmlsZT0kREFUQV9GSUxFU19QQVRIL3NlcnZlcjItc2hhMjU2LmNydCBcCisgICAgICAgICAgICAgICAgICAgIGtleV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvc2VydmVyMi5rZXkgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDI1NnIxX3NoYTI1Nixyc2FfcHNzX3JzYWVfc2hhMzg0IGtleV9vcGFxdWU9MSIgXAogICAgICAgICAgICAgMCBcCiAgICAgICAgICAgICAtYyAiZ290IGEgY2VydGlmaWNhdGUgcmVxdWVzdCIgXAogICAgICAgICAgICAgLWMgImNsaWVudCBzdGF0ZTogTUJFRFRMU19TU0xfQ0xJRU5UX0NFUlRJRklDQVRFIiBcCkBAIC0xMjk2NSw4ICsxMjk2Nyw4IEBACiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1CRURUTFNfU1NMX1RMUzFfM19LRVlfRVhDSEFOR0VfTU9ERV9FUEhFTUVSQUxfRU5BQkxFRAogcnVuX3Rlc3QgICAgIlRMUyAxLjM6IENsaWVudCBhdXRoZW50aWNhdGlvbiAtIG9wYXF1ZSBrZXksIHJzYV9wc3NfcnNhZV9zaGE1MTIgLSBvcGVuc3NsIiBcCiAgICAgICAgICAgICAiJE9fTkVYVF9TUlYgLW1zZyAtdGxzMV8zIC1udW1fdGlja2V0cyAwIC1ub19yZXN1bWVfZXBoZW1lcmFsIC1ub19jYWNoZSAtVmVyaWZ5IDEwIiBcCi0gICAgICAgICAgICAiJFBfQ0xJIGRlYnVnX2xldmVsPTQgY3J0X2ZpbGU9ZGF0YV9maWxlcy9jZXJ0X3NoYTI1Ni5jcnQgXAotICAgICAgICAgICAgICAgICAgICBrZXlfZmlsZT1kYXRhX2ZpbGVzL3NlcnZlcjEua2V5IHNpZ19hbGdzPWVjZHNhX3NlY3AyNTZyMV9zaGEyNTYscnNhX3Bzc19yc2FlX3NoYTUxMiBrZXlfb3BhcXVlPTEiIFwKKyAgICAgICAgICAgICIkUF9DTEkgZGVidWdfbGV2ZWw9NCBjcnRfZmlsZT0kREFUQV9GSUxFU19QQVRIL2NlcnRfc2hhMjU2LmNydCBcCisgICAgICAgICAgICAgICAgICAgIGtleV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvc2VydmVyMS5rZXkgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDI1NnIxX3NoYTI1Nixyc2FfcHNzX3JzYWVfc2hhNTEyIGtleV9vcGFxdWU9MSIgXAogICAgICAgICAgICAgMCBcCiAgICAgICAgICAgICAtYyAiZ290IGEgY2VydGlmaWNhdGUgcmVxdWVzdCIgXAogICAgICAgICAgICAgLWMgImNsaWVudCBzdGF0ZTogTUJFRFRMU19TU0xfQ0xJRU5UX0NFUlRJRklDQVRFIiBcCkBAIC0xMjk4Myw4ICsxMjk4NSw4IEBACiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1CRURUTFNfU1NMX1RMUzFfM19LRVlfRVhDSEFOR0VfTU9ERV9FUEhFTUVSQUxfRU5BQkxFRAogcnVuX3Rlc3QgICAgIlRMUyAxLjM6IENsaWVudCBhdXRoZW50aWNhdGlvbiAtIG9wYXF1ZSBrZXksIHJzYV9wc3NfcnNhZV9zaGE1MTIgLSBnbnV0bHMiIFwKICAgICAgICAgICAgICIkR19ORVhUX1NSViAtLWRlYnVnPTQgLS1wcmlvcml0eT1OT1JNQUw6LVZFUlMtQUxMOitWRVJTLVRMUzEuMzorQ0lQSEVSLUFMTDolTk9fVElDS0VUUyIgXAotICAgICAgICAgICAgIiRQX0NMSSBkZWJ1Z19sZXZlbD0zIGNydF9maWxlPWRhdGFfZmlsZXMvc2VydmVyMi1zaGEyNTYuY3J0IFwKLSAgICAgICAgICAgICAgICAgICAga2V5X2ZpbGU9ZGF0YV9maWxlcy9zZXJ2ZXIyLmtleSBzaWdfYWxncz1lY2RzYV9zZWNwMjU2cjFfc2hhMjU2LHJzYV9wc3NfcnNhZV9zaGE1MTIga2V5X29wYXF1ZT0xIiBcCisgICAgICAgICAgICAiJFBfQ0xJIGRlYnVnX2xldmVsPTMgY3J0X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9zZXJ2ZXIyLXNoYTI1Ni5jcnQgXAorICAgICAgICAgICAgICAgICAgICBrZXlfZmlsZT0kREFUQV9GSUxFU19QQVRIL3NlcnZlcjIua2V5IHNpZ19hbGdzPWVjZHNhX3NlY3AyNTZyMV9zaGEyNTYscnNhX3Bzc19yc2FlX3NoYTUxMiBrZXlfb3BhcXVlPTEiIFwKICAgICAgICAgICAgIDAgXAogICAgICAgICAgICAgLWMgImdvdCBhIGNlcnRpZmljYXRlIHJlcXVlc3QiIFwKICAgICAgICAgICAgIC1jICJjbGllbnQgc3RhdGU6IE1CRURUTFNfU1NMX0NMSUVOVF9DRVJUSUZJQ0FURSIgXApAQCAtMTMwMDEsOCArMTMwMDMsOCBAQAogcnVuX3Rlc3QgICAgIlRMUyAxLjM6IENsaWVudCBhdXRoZW50aWNhdGlvbiAtIG9wYXF1ZSBrZXksIGNsaWVudCBhbGcgbm90IGluIHNlcnZlciBsaXN0IC0gb3BlbnNzbCIgXAogICAgICAgICAgICAgIiRPX05FWFRfU1JWIC1tc2cgLXRsczFfMyAtbnVtX3RpY2tldHMgMCAtbm9fcmVzdW1lX2VwaGVtZXJhbCAtbm9fY2FjaGUgLVZlcmlmeSAxMAogICAgICAgICAgICAgICAgIC1zaWdhbGdzIGVjZHNhX3NlY3AyNTZyMV9zaGEyNTYiIFwKLSAgICAgICAgICAgICIkUF9DTEkgZGVidWdfbGV2ZWw9MyBjcnRfZmlsZT1kYXRhX2ZpbGVzL2VjZHNhX3NlY3A1MjFyMS5jcnQgXAotICAgICAgICAgICAgICAgICAgICBrZXlfZmlsZT1kYXRhX2ZpbGVzL2VjZHNhX3NlY3A1MjFyMS5rZXkgc2lnX2FsZ3M9ZWNkc2Ffc2VjcDI1NnIxX3NoYTI1NixlY2RzYV9zZWNwNTIxcjFfc2hhNTEyIGtleV9vcGFxdWU9MSIgXAorICAgICAgICAgICAgIiRQX0NMSSBkZWJ1Z19sZXZlbD0zIGNydF9maWxlPSREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDUyMXIxLmNydCBcCisgICAgICAgICAgICAgICAgICAgIGtleV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvZWNkc2Ffc2VjcDUyMXIxLmtleSBzaWdfYWxncz1lY2RzYV9zZWNwMjU2cjFfc2hhMjU2LGVjZHNhX3NlY3A1MjFyMV9zaGE1MTIga2V5X29wYXF1ZT0xIiBcCiAgICAgICAgICAgICAxIFwKICAgICAgICAgICAgIC1jICJnb3QgYSBjZXJ0aWZpY2F0ZSByZXF1ZXN0IiBcCiAgICAgICAgICAgICAtYyAiY2xpZW50IHN0YXRlOiBNQkVEVExTX1NTTF9DTElFTlRfQ0VSVElGSUNBVEUiIFwKQEAgLTEzMDE5LDggKzEzMDIxLDggQEAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTUJFRFRMU19TU0xfVExTMV8zX0tFWV9FWENIQU5HRV9NT0RFX0VQSEVNRVJBTF9FTkFCTEVECiBydW5fdGVzdCAgICAiVExTIDEuMzogQ2xpZW50IGF1dGhlbnRpY2F0aW9uIC0gb3BhcXVlIGtleSwgY2xpZW50IGFsZyBub3QgaW4gc2VydmVyIGxpc3QgLSBnbnV0bHMiIFwKICAgICAgICAgICAgICIkR19ORVhUX1NSViAtLWRlYnVnPTQgLS1wcmlvcml0eT1OT1JNQUw6LVZFUlMtQUxMOitWRVJTLVRMUzEuMzorQ0lQSEVSLUFMTDotU0lHTi1BTEw6K1NJR04tRUNEU0EtU0VDUDI1NlIxLVNIQTI1NjolTk9fVElDS0VUUyIgXAotICAgICAgICAgICAgIiRQX0NMSSBkZWJ1Z19sZXZlbD0zIGNydF9maWxlPWRhdGFfZmlsZXMvZWNkc2Ffc2VjcDUyMXIxLmNydCBcCi0gICAgICAgICAgICAgICAgICAgIGtleV9maWxlPWRhdGFfZmlsZXMvZWNkc2Ffc2VjcDUyMXIxLmtleSBzaWdfYWxncz1lY2RzYV9zZWNwMjU2cjFfc2hhMjU2LGVjZHNhX3NlY3A1MjFyMV9zaGE1MTIga2V5X29wYXF1ZT0xIiBcCisgICAgICAgICAgICAiJFBfQ0xJIGRlYnVnX2xldmVsPTMgY3J0X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwNTIxcjEuY3J0IFwKKyAgICAgICAgICAgICAgICAgICAga2V5X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9lY2RzYV9zZWNwNTIxcjEua2V5IHNpZ19hbGdzPWVjZHNhX3NlY3AyNTZyMV9zaGEyNTYsZWNkc2Ffc2VjcDUyMXIxX3NoYTUxMiBrZXlfb3BhcXVlPTEiIFwKICAgICAgICAgICAgIDEgXAogICAgICAgICAgICAgLWMgImdvdCBhIGNlcnRpZmljYXRlIHJlcXVlc3QiIFwKICAgICAgICAgICAgIC1jICJjbGllbnQgc3RhdGU6IE1CRURUTFNfU1NMX0NMSUVOVF9DRVJUSUZJQ0FURSIgXApAQCAtMTMwOTYsNyArMTMwOTgsNyBAQAogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgTUJFRFRMU19TU0xfU1JWX0MKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIE1CRURUTFNfU1NMX1RMUzFfM19LRVlfRVhDSEFOR0VfTU9ERV9FUEhFTUVSQUxfRU5BQkxFRAogcnVuX3Rlc3QgICAgIlRMUyAxLjM6IFNlcnZlciBzaWRlIGNoZWNrIC0gb3BlbnNzbCIgXAotICAgICAgICAgICAgIiRQX1NSViBkZWJ1Z19sZXZlbD00IGNydF9maWxlPWRhdGFfZmlsZXMvc2VydmVyNS5jcnQga2V5X2ZpbGU9ZGF0YV9maWxlcy9zZXJ2ZXI1LmtleSB0aWNrZXRzPTAiIFwKKyAgICAgICAgICAgICIkUF9TUlYgZGVidWdfbGV2ZWw9NCBjcnRfZmlsZT0kREFUQV9GSUxFU19QQVRIL3NlcnZlcjUuY3J0IGtleV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvc2VydmVyNS5rZXkgdGlja2V0cz0wIiBcCiAgICAgICAgICAgICAiJE9fTkVYVF9DTEkgLW1zZyAtZGVidWcgLXRsczFfMyAtbm9fbWlkZGxlYm94IiBcCiAgICAgICAgICAgICAwIFwKICAgICAgICAgICAgIC1zICJ0bHMxMyBzZXJ2ZXIgc3RhdGU6IE1CRURUTFNfU1NMX0NMSUVOVF9IRUxMTyIgXApAQCAtMTMxMTMsOCArMTMxMTUsOCBAQAogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgTUJFRFRMU19TU0xfU1JWX0MKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIE1CRURUTFNfU1NMX1RMUzFfM19LRVlfRVhDSEFOR0VfTU9ERV9FUEhFTUVSQUxfRU5BQkxFRAogcnVuX3Rlc3QgICAgIlRMUyAxLjM6IFNlcnZlciBzaWRlIGNoZWNrIC0gb3BlbnNzbCB3aXRoIGNsaWVudCBhdXRoZW50aWNhdGlvbiIgXAotICAgICAgICAgICAgIiRQX1NSViBkZWJ1Z19sZXZlbD00IGF1dGhfbW9kZT1yZXF1aXJlZCBjcnRfZmlsZT1kYXRhX2ZpbGVzL3NlcnZlcjUuY3J0IGtleV9maWxlPWRhdGFfZmlsZXMvc2VydmVyNS5rZXkgdGlja2V0cz0wIiBcCi0gICAgICAgICAgICAiJE9fTkVYVF9DTEkgLW1zZyAtZGVidWcgLWNlcnQgZGF0YV9maWxlcy9zZXJ2ZXI1LmNydCAta2V5IGRhdGFfZmlsZXMvc2VydmVyNS5rZXkgLXRsczFfMyAtbm9fbWlkZGxlYm94IiBcCisgICAgICAgICAgICAiJFBfU1JWIGRlYnVnX2xldmVsPTQgYXV0aF9tb2RlPXJlcXVpcmVkIGNydF9maWxlPSREQVRBX0ZJTEVTX1BBVEgvc2VydmVyNS5jcnQga2V5X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9zZXJ2ZXI1LmtleSB0aWNrZXRzPTAiIFwKKyAgICAgICAgICAgICIkT19ORVhUX0NMSSAtbXNnIC1kZWJ1ZyAtY2VydCAkREFUQV9GSUxFU19QQVRIL3NlcnZlcjUuY3J0IC1rZXkgJERBVEFfRklMRVNfUEFUSC9zZXJ2ZXI1LmtleSAtdGxzMV8zIC1ub19taWRkbGVib3giIFwKICAgICAgICAgICAgIDAgXAogICAgICAgICAgICAgLXMgInRsczEzIHNlcnZlciBzdGF0ZTogTUJFRFRMU19TU0xfQ0xJRU5UX0hFTExPIiBcCiAgICAgICAgICAgICAtcyAidGxzMTMgc2VydmVyIHN0YXRlOiBNQkVEVExTX1NTTF9TRVJWRVJfSEVMTE8iIFwKQEAgLTEzMTMzLDcgKzEzMTM1LDcgQEAKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIE1CRURUTFNfU1NMX1NSVl9DCiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBNQkVEVExTX1NTTF9UTFMxXzNfS0VZX0VYQ0hBTkdFX01PREVfRVBIRU1FUkFMX0VOQUJMRUQKIHJ1bl90ZXN0ICAgICJUTFMgMS4zOiBTZXJ2ZXIgc2lkZSBjaGVjayAtIGdudXRscyIgXAotICAgICAgICAgICAgIiRQX1NSViBkZWJ1Z19sZXZlbD00IGNydF9maWxlPWRhdGFfZmlsZXMvc2VydmVyNS5jcnQga2V5X2ZpbGU9ZGF0YV9maWxlcy9zZXJ2ZXI1LmtleSB0aWNrZXRzPTAiIFwKKyAgICAgICAgICAgICIkUF9TUlYgZGVidWdfbGV2ZWw9NCBjcnRfZmlsZT0kREFUQV9GSUxFU19QQVRIL3NlcnZlcjUuY3J0IGtleV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvc2VydmVyNS5rZXkgdGlja2V0cz0wIiBcCiAgICAgICAgICAgICAiJEdfTkVYVF9DTEkgbG9jYWxob3N0IC1kIDQgLS1wcmlvcml0eT1OT1JNQUw6LVZFUlMtQUxMOitWRVJTLVRMUzEuMzolTk9fVElDS0VUUzolRElTQUJMRV9UTFMxM19DT01QQVRfTU9ERSAtViIgXAogICAgICAgICAgICAgMCBcCiAgICAgICAgICAgICAtcyAidGxzMTMgc2VydmVyIHN0YXRlOiBNQkVEVExTX1NTTF9DTElFTlRfSEVMTE8iIFwKQEAgLTEzMTUyLDggKzEzMTU0LDggQEAKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIE1CRURUTFNfU1NMX1NSVl9DCiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBNQkVEVExTX1NTTF9UTFMxXzNfS0VZX0VYQ0hBTkdFX01PREVfRVBIRU1FUkFMX0VOQUJMRUQKIHJ1bl90ZXN0ICAgICJUTFMgMS4zOiBTZXJ2ZXIgc2lkZSBjaGVjayAtIGdudXRscyB3aXRoIGNsaWVudCBhdXRoZW50aWNhdGlvbiIgXAotICAgICAgICAgICAgIiRQX1NSViBkZWJ1Z19sZXZlbD00IGF1dGhfbW9kZT1yZXF1aXJlZCBjcnRfZmlsZT1kYXRhX2ZpbGVzL3NlcnZlcjUuY3J0IGtleV9maWxlPWRhdGFfZmlsZXMvc2VydmVyNS5rZXkgdGlja2V0cz0wIiBcCi0gICAgICAgICAgICAiJEdfTkVYVF9DTEkgbG9jYWxob3N0IC1kIDQgLS14NTA5Y2VydGZpbGUgZGF0YV9maWxlcy9zZXJ2ZXI1LmNydCAtLXg1MDlrZXlmaWxlIGRhdGFfZmlsZXMvc2VydmVyNS5rZXkgLS1wcmlvcml0eT1OT1JNQUw6LVZFUlMtQUxMOitWRVJTLVRMUzEuMzolTk9fVElDS0VUUzolRElTQUJMRV9UTFMxM19DT01QQVRfTU9ERSAtViIgXAorICAgICAgICAgICAgIiRQX1NSViBkZWJ1Z19sZXZlbD00IGF1dGhfbW9kZT1yZXF1aXJlZCBjcnRfZmlsZT0kREFUQV9GSUxFU19QQVRIL3NlcnZlcjUuY3J0IGtleV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvc2VydmVyNS5rZXkgdGlja2V0cz0wIiBcCisgICAgICAgICAgICAiJEdfTkVYVF9DTEkgbG9jYWxob3N0IC1kIDQgLS14NTA5Y2VydGZpbGUgJERBVEFfRklMRVNfUEFUSC9zZXJ2ZXI1LmNydCAtLXg1MDlrZXlmaWxlICREQVRBX0ZJTEVTX1BBVEgvc2VydmVyNS5rZXkgLS1wcmlvcml0eT1OT1JNQUw6LVZFUlMtQUxMOitWRVJTLVRMUzEuMzolTk9fVElDS0VUUzolRElTQUJMRV9UTFMxM19DT01QQVRfTU9ERSAtViIgXAogICAgICAgICAgICAgMCBcCiAgICAgICAgICAgICAtcyAidGxzMTMgc2VydmVyIHN0YXRlOiBNQkVEVExTX1NTTF9DTElFTlRfSEVMTE8iIFwKICAgICAgICAgICAgIC1zICJ0bHMxMyBzZXJ2ZXIgc3RhdGU6IE1CRURUTFNfU1NMX1NFUlZFUl9IRUxMTyIgXApAQCAtMTMxNzEsNyArMTMxNzMsNyBAQAogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgTUJFRFRMU19TU0xfQ0xJX0MKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIE1CRURUTFNfU1NMX1RMUzFfM19LRVlfRVhDSEFOR0VfTU9ERV9FUEhFTUVSQUxfRU5BQkxFRAogcnVuX3Rlc3QgICAgIlRMUyAxLjM6IFNlcnZlciBzaWRlIGNoZWNrIC0gbWJlZHRscyIgXAotICAgICAgICAgICAgIiRQX1NSViBkZWJ1Z19sZXZlbD00IGNydF9maWxlPWRhdGFfZmlsZXMvc2VydmVyNS5jcnQga2V5X2ZpbGU9ZGF0YV9maWxlcy9zZXJ2ZXI1LmtleSB0aWNrZXRzPTAiIFwKKyAgICAgICAgICAgICIkUF9TUlYgZGVidWdfbGV2ZWw9NCBjcnRfZmlsZT0kREFUQV9GSUxFU19QQVRIL3NlcnZlcjUuY3J0IGtleV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvc2VydmVyNS5rZXkgdGlja2V0cz0wIiBcCiAgICAgICAgICAgICAiJFBfQ0xJIGRlYnVnX2xldmVsPTQiIFwKICAgICAgICAgICAgIDAgXAogICAgICAgICAgICAgLXMgInRsczEzIHNlcnZlciBzdGF0ZTogTUJFRFRMU19TU0xfQ0xJRU5UX0hFTExPIiBcCkBAIC0xMzE5MCw4ICsxMzE5Miw4IEBACiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBNQkVEVExTX1NTTF9DTElfQwogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgTUJFRFRMU19TU0xfVExTMV8zX0tFWV9FWENIQU5HRV9NT0RFX0VQSEVNRVJBTF9FTkFCTEVECiBydW5fdGVzdCAgICAiVExTIDEuMzogU2VydmVyIHNpZGUgY2hlY2sgLSBtYmVkdGxzIHdpdGggY2xpZW50IGF1dGhlbnRpY2F0aW9uIiBcCi0gICAgICAgICAgICAiJFBfU1JWIGRlYnVnX2xldmVsPTQgYXV0aF9tb2RlPXJlcXVpcmVkIGNydF9maWxlPWRhdGFfZmlsZXMvc2VydmVyNS5jcnQga2V5X2ZpbGU9ZGF0YV9maWxlcy9zZXJ2ZXI1LmtleSB0aWNrZXRzPTAiIFwKLSAgICAgICAgICAgICIkUF9DTEkgZGVidWdfbGV2ZWw9NCBjcnRfZmlsZT1kYXRhX2ZpbGVzL3NlcnZlcjUuY3J0IGtleV9maWxlPWRhdGFfZmlsZXMvc2VydmVyNS5rZXkiIFwKKyAgICAgICAgICAgICIkUF9TUlYgZGVidWdfbGV2ZWw9NCBhdXRoX21vZGU9cmVxdWlyZWQgY3J0X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9zZXJ2ZXI1LmNydCBrZXlfZmlsZT0kREFUQV9GSUxFU19QQVRIL3NlcnZlcjUua2V5IHRpY2tldHM9MCIgXAorICAgICAgICAgICAgIiRQX0NMSSBkZWJ1Z19sZXZlbD00IGNydF9maWxlPSREQVRBX0ZJTEVTX1BBVEgvc2VydmVyNS5jcnQga2V5X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9zZXJ2ZXI1LmtleSIgXAogICAgICAgICAgICAgMCBcCiAgICAgICAgICAgICAtcyAidGxzMTMgc2VydmVyIHN0YXRlOiBNQkVEVExTX1NTTF9DTElFTlRfSEVMTE8iIFwKICAgICAgICAgICAgIC1zICJ0bHMxMyBzZXJ2ZXIgc3RhdGU6IE1CRURUTFNfU1NMX1NFUlZFUl9IRUxMTyIgXApAQCAtMTMyMDcsNyArMTMyMDksNyBAQAogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgTUJFRFRMU19TU0xfQ0xJX0MKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIE1CRURUTFNfU1NMX1RMUzFfM19LRVlfRVhDSEFOR0VfTU9ERV9FUEhFTUVSQUxfRU5BQkxFRAogcnVuX3Rlc3QgICAgIlRMUyAxLjM6IFNlcnZlciBzaWRlIGNoZWNrIC0gbWJlZHRscyB3aXRoIGNsaWVudCBlbXB0eSBjZXJ0aWZpY2F0ZSIgXAotICAgICAgICAgICAgIiRQX1NSViBkZWJ1Z19sZXZlbD00IGF1dGhfbW9kZT1yZXF1aXJlZCBjcnRfZmlsZT1kYXRhX2ZpbGVzL3NlcnZlcjUuY3J0IGtleV9maWxlPWRhdGFfZmlsZXMvc2VydmVyNS5rZXkgdGlja2V0cz0wIiBcCisgICAgICAgICAgICAiJFBfU1JWIGRlYnVnX2xldmVsPTQgYXV0aF9tb2RlPXJlcXVpcmVkIGNydF9maWxlPSREQVRBX0ZJTEVTX1BBVEgvc2VydmVyNS5jcnQga2V5X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9zZXJ2ZXI1LmtleSB0aWNrZXRzPTAiIFwKICAgICAgICAgICAgICIkUF9DTEkgZGVidWdfbGV2ZWw9NCBjcnRfZmlsZT1ub25lIGtleV9maWxlPW5vbmUiIFwKICAgICAgICAgICAgIDEgXAogICAgICAgICAgICAgLXMgInRsczEzIHNlcnZlciBzdGF0ZTogTUJFRFRMU19TU0xfQ0xJRU5UX0hFTExPIiBcCkBAIC0xMzIyNSw3ICsxMzIyNyw3IEBACiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBNQkVEVExTX1NTTF9DTElfQwogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgTUJFRFRMU19TU0xfVExTMV8zX0tFWV9FWENIQU5HRV9NT0RFX0VQSEVNRVJBTF9FTkFCTEVECiBydW5fdGVzdCAgICAiVExTIDEuMzogU2VydmVyIHNpZGUgY2hlY2sgLSBtYmVkdGxzIHdpdGggb3B0aW9uYWwgY2xpZW50IGF1dGhlbnRpY2F0aW9uIiBcCi0gICAgICAgICAgICAiJFBfU1JWIGRlYnVnX2xldmVsPTQgYXV0aF9tb2RlPW9wdGlvbmFsIGNydF9maWxlPWRhdGFfZmlsZXMvc2VydmVyNS5jcnQga2V5X2ZpbGU9ZGF0YV9maWxlcy9zZXJ2ZXI1LmtleSB0aWNrZXRzPTAiIFwKKyAgICAgICAgICAgICIkUF9TUlYgZGVidWdfbGV2ZWw9NCBhdXRoX21vZGU9b3B0aW9uYWwgY3J0X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9zZXJ2ZXI1LmNydCBrZXlfZmlsZT0kREFUQV9GSUxFU19QQVRIL3NlcnZlcjUua2V5IHRpY2tldHM9MCIgXAogICAgICAgICAgICAgIiRQX0NMSSBkZWJ1Z19sZXZlbD00IGNydF9maWxlPW5vbmUga2V5X2ZpbGU9bm9uZSIgXAogICAgICAgICAgICAgMCBcCiAgICAgICAgICAgICAtcyAidGxzMTMgc2VydmVyIHN0YXRlOiBNQkVEVExTX1NTTF9DTElFTlRfSEVMTE8iIFwKQEAgLTEzMjcyLDkgKzEzMjc0LDkgQEAKIHJlcXVpcmVzX2FsbF9jb25maWdzX2VuYWJsZWQgTUJFRFRMU19TU0xfVExTMV8zX0NPTVBBVElCSUxJVFlfTU9ERSBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1CRURUTFNfU1NMX1RMUzFfM19LRVlfRVhDSEFOR0VfTU9ERV9FUEhFTUVSQUxfRU5BQkxFRAogcnVuX3Rlc3QgICAgIlRMUyAxLjM6IFNlcnZlciBzaWRlIGNoZWNrIC0gb3BlbnNzbCB3aXRoIHNuaSIgXAotICAgICAgICAgICAgIiRQX1NSViBkZWJ1Z19sZXZlbD00IGF1dGhfbW9kZT1yZXF1aXJlZCBjcnRfZmlsZT1kYXRhX2ZpbGVzL3NlcnZlcjUuY3J0IGtleV9maWxlPWRhdGFfZmlsZXMvc2VydmVyNS5rZXkgdGlja2V0cz0wIFwKLSAgICAgICAgICAgICBzbmk9bG9jYWxob3N0LGRhdGFfZmlsZXMvc2VydmVyNS5jcnQsZGF0YV9maWxlcy9zZXJ2ZXI1LmtleSxkYXRhX2ZpbGVzL3Rlc3QtY2FfY2F0MTIuY3J0LC0sLSxwb2xhcnNzbC5leGFtcGxlLGRhdGFfZmlsZXMvc2VydmVyMS1ub3NwYWNlLmNydCxkYXRhX2ZpbGVzL3NlcnZlcjEua2V5LC0sLSwtIiBcCi0gICAgICAgICAgICAiJE9fTkVYVF9DTEkgLW1zZyAtZGVidWcgLXNlcnZlcm5hbWUgbG9jYWxob3N0IC1DQWZpbGUgZGF0YV9maWxlcy90ZXN0LWNhX2NhdDEyLmNydCAtY2VydCBkYXRhX2ZpbGVzL3NlcnZlcjUuY3J0IC1rZXkgZGF0YV9maWxlcy9zZXJ2ZXI1LmtleSAtdGxzMV8zIiBcCisgICAgICAgICAgICAiJFBfU1JWIGRlYnVnX2xldmVsPTQgYXV0aF9tb2RlPXJlcXVpcmVkIGNydF9maWxlPSREQVRBX0ZJTEVTX1BBVEgvc2VydmVyNS5jcnQga2V5X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9zZXJ2ZXI1LmtleSB0aWNrZXRzPTAgXAorICAgICAgICAgICAgIHNuaT1sb2NhbGhvc3QsJERBVEFfRklMRVNfUEFUSC9zZXJ2ZXI1LmNydCwkREFUQV9GSUxFU19QQVRIL3NlcnZlcjUua2V5LCREQVRBX0ZJTEVTX1BBVEgvdGVzdC1jYV9jYXQxMi5jcnQsLSwtLHBvbGFyc3NsLmV4YW1wbGUsJERBVEFfRklMRVNfUEFUSC9zZXJ2ZXIxLW5vc3BhY2UuY3J0LCREQVRBX0ZJTEVTX1BBVEgvc2VydmVyMS5rZXksLSwtLC0iIFwKKyAgICAgICAgICAgICIkT19ORVhUX0NMSSAtbXNnIC1kZWJ1ZyAtc2VydmVybmFtZSBsb2NhbGhvc3QgLUNBZmlsZSAkREFUQV9GSUxFU19QQVRIL3Rlc3QtY2FfY2F0MTIuY3J0IC1jZXJ0ICREQVRBX0ZJTEVTX1BBVEgvc2VydmVyNS5jcnQgLWtleSAkREFUQV9GSUxFU19QQVRIL3NlcnZlcjUua2V5IC10bHMxXzMiIFwKICAgICAgICAgICAgIDAgXAogICAgICAgICAgICAgLXMgInBhcnNlIFNlcnZlck5hbWUgZXh0ZW5zaW9uIiBcCiAgICAgICAgICAgICAtcyAiSFRUUC8xLjAgMjAwIE9LIgpAQCAtMTMyODUsOSArMTMyODcsOSBAQAogcmVxdWlyZXNfYWxsX2NvbmZpZ3NfZW5hYmxlZCBNQkVEVExTX1NTTF9UTFMxXzNfQ09NUEFUSUJJTElUWV9NT0RFIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTUJFRFRMU19TU0xfVExTMV8zX0tFWV9FWENIQU5HRV9NT0RFX0VQSEVNRVJBTF9FTkFCTEVECiBydW5fdGVzdCAgICAiVExTIDEuMzogU2VydmVyIHNpZGUgY2hlY2sgLSBnbnV0bHMgd2l0aCBzbmkiIFwKLSAgICAgICAgICAgICIkUF9TUlYgZGVidWdfbGV2ZWw9NCBhdXRoX21vZGU9cmVxdWlyZWQgY3J0X2ZpbGU9ZGF0YV9maWxlcy9zZXJ2ZXI1LmNydCBrZXlfZmlsZT1kYXRhX2ZpbGVzL3NlcnZlcjUua2V5IHRpY2tldHM9MCBcCi0gICAgICAgICAgICAgc25pPWxvY2FsaG9zdCxkYXRhX2ZpbGVzL3NlcnZlcjUuY3J0LGRhdGFfZmlsZXMvc2VydmVyNS5rZXksZGF0YV9maWxlcy90ZXN0LWNhX2NhdDEyLmNydCwtLC0scG9sYXJzc2wuZXhhbXBsZSxkYXRhX2ZpbGVzL3NlcnZlcjEtbm9zcGFjZS5jcnQsZGF0YV9maWxlcy9zZXJ2ZXIxLmtleSwtLC0sLSIgXAotICAgICAgICAgICAgIiRHX05FWFRfQ0xJIGxvY2FsaG9zdCAtZCA0IC0tc25pLWhvc3RuYW1lPWxvY2FsaG9zdCAtLXg1MDljZXJ0ZmlsZSBkYXRhX2ZpbGVzL3NlcnZlcjUuY3J0IC0teDUwOWtleWZpbGUgZGF0YV9maWxlcy9zZXJ2ZXI1LmtleSAtLXByaW9yaXR5PU5PUk1BTDotVkVSUy1BTEw6K1ZFUlMtVExTMS4zOiVOT19USUNLRVRTIC1WIiBcCisgICAgICAgICAgICAiJFBfU1JWIGRlYnVnX2xldmVsPTQgYXV0aF9tb2RlPXJlcXVpcmVkIGNydF9maWxlPSREQVRBX0ZJTEVTX1BBVEgvc2VydmVyNS5jcnQga2V5X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9zZXJ2ZXI1LmtleSB0aWNrZXRzPTAgXAorICAgICAgICAgICAgIHNuaT1sb2NhbGhvc3QsJERBVEFfRklMRVNfUEFUSC9zZXJ2ZXI1LmNydCwkREFUQV9GSUxFU19QQVRIL3NlcnZlcjUua2V5LCREQVRBX0ZJTEVTX1BBVEgvdGVzdC1jYV9jYXQxMi5jcnQsLSwtLHBvbGFyc3NsLmV4YW1wbGUsJERBVEFfRklMRVNfUEFUSC9zZXJ2ZXIxLW5vc3BhY2UuY3J0LCREQVRBX0ZJTEVTX1BBVEgvc2VydmVyMS5rZXksLSwtLC0iIFwKKyAgICAgICAgICAgICIkR19ORVhUX0NMSSBsb2NhbGhvc3QgLWQgNCAtLXNuaS1ob3N0bmFtZT1sb2NhbGhvc3QgLS14NTA5Y2VydGZpbGUgJERBVEFfRklMRVNfUEFUSC9zZXJ2ZXI1LmNydCAtLXg1MDlrZXlmaWxlICREQVRBX0ZJTEVTX1BBVEgvc2VydmVyNS5rZXkgLS1wcmlvcml0eT1OT1JNQUw6LVZFUlMtQUxMOitWRVJTLVRMUzEuMzolTk9fVElDS0VUUyAtViIgXAogICAgICAgICAgICAgMCBcCiAgICAgICAgICAgICAtcyAicGFyc2UgU2VydmVyTmFtZSBleHRlbnNpb24iIFwKICAgICAgICAgICAgIC1zICJIVFRQLzEuMCAyMDAgT0siCkBAIC0xMzI5OCw5ICsxMzMwMCw5IEBACiByZXF1aXJlc19hbGxfY29uZmlnc19lbmFibGVkIE1CRURUTFNfU1NMX1RMUzFfM19DT01QQVRJQklMSVRZX01PREUgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNQkVEVExTX1NTTF9UTFMxXzNfS0VZX0VYQ0hBTkdFX01PREVfRVBIRU1FUkFMX0VOQUJMRUQKIHJ1bl90ZXN0ICAgICJUTFMgMS4zOiBTZXJ2ZXIgc2lkZSBjaGVjayAtIG1iZWR0bHMgd2l0aCBzbmkiIFwKLSAgICAgICAgICAgICIkUF9TUlYgZGVidWdfbGV2ZWw9NCBhdXRoX21vZGU9cmVxdWlyZWQgY3J0X2ZpbGU9ZGF0YV9maWxlcy9zZXJ2ZXI1LmNydCBrZXlfZmlsZT1kYXRhX2ZpbGVzL3NlcnZlcjUua2V5IHRpY2tldHM9MCBcCi0gICAgICAgICAgICAgc25pPWxvY2FsaG9zdCxkYXRhX2ZpbGVzL3NlcnZlcjIuY3J0LGRhdGFfZmlsZXMvc2VydmVyMi5rZXksLSwtLC0scG9sYXJzc2wuZXhhbXBsZSxkYXRhX2ZpbGVzL3NlcnZlcjEtbm9zcGFjZS5jcnQsZGF0YV9maWxlcy9zZXJ2ZXIxLmtleSwtLC0sLSIgXAotICAgICAgICAgICAgIiRQX0NMSSBkZWJ1Z19sZXZlbD00IHNlcnZlcl9uYW1lPWxvY2FsaG9zdCBjcnRfZmlsZT1kYXRhX2ZpbGVzL3NlcnZlcjUuY3J0IGtleV9maWxlPWRhdGFfZmlsZXMvc2VydmVyNS5rZXkiIFwKKyAgICAgICAgICAgICIkUF9TUlYgZGVidWdfbGV2ZWw9NCBhdXRoX21vZGU9cmVxdWlyZWQgY3J0X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9zZXJ2ZXI1LmNydCBrZXlfZmlsZT0kREFUQV9GSUxFU19QQVRIL3NlcnZlcjUua2V5IHRpY2tldHM9MCBcCisgICAgICAgICAgICAgc25pPWxvY2FsaG9zdCwkREFUQV9GSUxFU19QQVRIL3NlcnZlcjIuY3J0LCREQVRBX0ZJTEVTX1BBVEgvc2VydmVyMi5rZXksLSwtLC0scG9sYXJzc2wuZXhhbXBsZSwkREFUQV9GSUxFU19QQVRIL3NlcnZlcjEtbm9zcGFjZS5jcnQsJERBVEFfRklMRVNfUEFUSC9zZXJ2ZXIxLmtleSwtLC0sLSIgXAorICAgICAgICAgICAgIiRQX0NMSSBkZWJ1Z19sZXZlbD00IHNlcnZlcl9uYW1lPWxvY2FsaG9zdCBjcnRfZmlsZT0kREFUQV9GSUxFU19QQVRIL3NlcnZlcjUuY3J0IGtleV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvc2VydmVyNS5rZXkiIFwKICAgICAgICAgICAgIDAgXAogICAgICAgICAgICAgLXMgInBhcnNlIFNlcnZlck5hbWUgZXh0ZW5zaW9uIiBcCiAgICAgICAgICAgICAtcyAiSFRUUC8xLjAgMjAwIE9LIgpAQCAtMTM0MjQsNyArMTM0MjYsNyBAQAogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgTUJFRFRMU19TU0xfU1JWX0MKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIE1CRURUTFNfU1NMX1RMUzFfM19LRVlfRVhDSEFOR0VfTU9ERV9FUEhFTUVSQUxfRU5BQkxFRAogcnVuX3Rlc3QgICAgIlRMUyAxLjMgTy0+bSBib3RoIHBlZXJzIGRvIG5vdCBzdXBwb3J0IG1pZGRsZWJveCBjb21wYXRpYmlsaXR5IiBcCi0gICAgICAgICAgICAiJFBfU1JWIGRlYnVnX2xldmVsPTQgY3J0X2ZpbGU9ZGF0YV9maWxlcy9zZXJ2ZXI1LmNydCBrZXlfZmlsZT1kYXRhX2ZpbGVzL3NlcnZlcjUua2V5IHRpY2tldHM9MCIgXAorICAgICAgICAgICAgIiRQX1NSViBkZWJ1Z19sZXZlbD00IGNydF9maWxlPSREQVRBX0ZJTEVTX1BBVEgvc2VydmVyNS5jcnQga2V5X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9zZXJ2ZXI1LmtleSB0aWNrZXRzPTAiIFwKICAgICAgICAgICAgICIkT19ORVhUX0NMSSAtbXNnIC1kZWJ1ZyAtbm9fbWlkZGxlYm94IiBcCiAgICAgICAgICAgICAwIFwKICAgICAgICAgICAgIC1zICJQcm90b2NvbCBpcyBUTFN2MS4zIiBcCkBAIC0xMzQzNyw3ICsxMzQzOSw3IEBACiByZXF1aXJlc19hbGxfY29uZmlnc19lbmFibGVkIE1CRURUTFNfU1NMX1RMUzFfM19DT01QQVRJQklMSVRZX01PREUgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNQkVEVExTX1NTTF9UTFMxXzNfS0VZX0VYQ0hBTkdFX01PREVfRVBIRU1FUkFMX0VOQUJMRUQKIHJ1bl90ZXN0ICAgICJUTFMgMS4zIE8tPm0gc2VydmVyIHdpdGggbWlkZGxlYm94IGNvbXBhdCBzdXBwb3J0LCBub3QgY2xpZW50IiBcCi0gICAgICAgICAgICAiJFBfU1JWIGRlYnVnX2xldmVsPTQgY3J0X2ZpbGU9ZGF0YV9maWxlcy9zZXJ2ZXI1LmNydCBrZXlfZmlsZT1kYXRhX2ZpbGVzL3NlcnZlcjUua2V5IHRpY2tldHM9MCIgXAorICAgICAgICAgICAgIiRQX1NSViBkZWJ1Z19sZXZlbD00IGNydF9maWxlPSREQVRBX0ZJTEVTX1BBVEgvc2VydmVyNS5jcnQga2V5X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9zZXJ2ZXI1LmtleSB0aWNrZXRzPTAiIFwKICAgICAgICAgICAgICIkT19ORVhUX0NMSSAtbXNnIC1kZWJ1ZyAtbm9fbWlkZGxlYm94IiBcCiAgICAgICAgICAgICAwIFwKICAgICAgICAgICAgIC1zICJQcm90b2NvbCBpcyBUTFN2MS4zIiBcCkBAIC0xMzQ0OSw3ICsxMzQ1MSw3IEBACiByZXF1aXJlc19hbGxfY29uZmlnc19lbmFibGVkIE1CRURUTFNfU1NMX1RMUzFfM19DT01QQVRJQklMSVRZX01PREUgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNQkVEVExTX1NTTF9UTFMxXzNfS0VZX0VYQ0hBTkdFX01PREVfRVBIRU1FUkFMX0VOQUJMRUQKIHJ1bl90ZXN0ICAgICJUTFMgMS4zIE8tPm0gYm90aCB3aXRoIG1pZGRsZWJveCBjb21wYXQgc3VwcG9ydCIgXAotICAgICAgICAgICAgIiRQX1NSViBkZWJ1Z19sZXZlbD00IGNydF9maWxlPWRhdGFfZmlsZXMvc2VydmVyNS5jcnQga2V5X2ZpbGU9ZGF0YV9maWxlcy9zZXJ2ZXI1LmtleSB0aWNrZXRzPTAiIFwKKyAgICAgICAgICAgICIkUF9TUlYgZGVidWdfbGV2ZWw9NCBjcnRfZmlsZT0kREFUQV9GSUxFU19QQVRIL3NlcnZlcjUuY3J0IGtleV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvc2VydmVyNS5rZXkgdGlja2V0cz0wIiBcCiAgICAgICAgICAgICAiJE9fTkVYVF9DTEkgLW1zZyAtZGVidWciIFwKICAgICAgICAgICAgIDAgXAogICAgICAgICAgICAgLXMgIlByb3RvY29sIGlzIFRMU3YxLjMiIFwKQEAgLTEzNDY0LDcgKzEzNDY2LDcgQEAKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIE1CRURUTFNfU1NMX1NSVl9DCiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBNQkVEVExTX1NTTF9UTFMxXzNfS0VZX0VYQ0hBTkdFX01PREVfRVBIRU1FUkFMX0VOQUJMRUQKIHJ1bl90ZXN0ICAgICJUTFMgMS4zIEctPm0gYm90aCBwZWVycyBkbyBub3Qgc3VwcG9ydCBtaWRkbGVib3ggY29tcGF0aWJpbGl0eSIgXAotICAgICAgICAgICAgIiRQX1NSViBkZWJ1Z19sZXZlbD00IGNydF9maWxlPWRhdGFfZmlsZXMvc2VydmVyNS5jcnQga2V5X2ZpbGU9ZGF0YV9maWxlcy9zZXJ2ZXI1LmtleSB0aWNrZXRzPTAiIFwKKyAgICAgICAgICAgICIkUF9TUlYgZGVidWdfbGV2ZWw9NCBjcnRfZmlsZT0kREFUQV9GSUxFU19QQVRIL3NlcnZlcjUuY3J0IGtleV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvc2VydmVyNS5rZXkgdGlja2V0cz0wIiBcCiAgICAgICAgICAgICAiJEdfTkVYVF9DTEkgbG9jYWxob3N0IC0tcHJpb3JpdHk9Tk9STUFMOiVOT19USUNLRVRTOiVESVNBQkxFX1RMUzEzX0NPTVBBVF9NT0RFIC1WIiBcCiAgICAgICAgICAgICAwIFwKICAgICAgICAgICAgIC1zICJQcm90b2NvbCBpcyBUTFN2MS4zIiBcCkBAIC0xMzQ3OSw3ICsxMzQ4MSw3IEBACiByZXF1aXJlc19hbGxfY29uZmlnc19lbmFibGVkIE1CRURUTFNfU1NMX1RMUzFfM19DT01QQVRJQklMSVRZX01PREUgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNQkVEVExTX1NTTF9UTFMxXzNfS0VZX0VYQ0hBTkdFX01PREVfRVBIRU1FUkFMX0VOQUJMRUQKIHJ1bl90ZXN0ICAgICJUTFMgMS4zIEctPm0gc2VydmVyIHdpdGggbWlkZGxlYm94IGNvbXBhdCBzdXBwb3J0LCBub3QgY2xpZW50IiBcCi0gICAgICAgICAgICAiJFBfU1JWIGRlYnVnX2xldmVsPTQgY3J0X2ZpbGU9ZGF0YV9maWxlcy9zZXJ2ZXI1LmNydCBrZXlfZmlsZT1kYXRhX2ZpbGVzL3NlcnZlcjUua2V5IHRpY2tldHM9MCIgXAorICAgICAgICAgICAgIiRQX1NSViBkZWJ1Z19sZXZlbD00IGNydF9maWxlPSREQVRBX0ZJTEVTX1BBVEgvc2VydmVyNS5jcnQga2V5X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9zZXJ2ZXI1LmtleSB0aWNrZXRzPTAiIFwKICAgICAgICAgICAgICIkR19ORVhUX0NMSSBsb2NhbGhvc3QgLS1kZWJ1Zz0xMCAtLXByaW9yaXR5PU5PUk1BTDolTk9fVElDS0VUUzolRElTQUJMRV9UTFMxM19DT01QQVRfTU9ERSAtViIgXAogICAgICAgICAgICAgMCBcCiAgICAgICAgICAgICAtcyAiUHJvdG9jb2wgaXMgVExTdjEuMyIgXApAQCAtMTM0OTUsNyArMTM0OTcsNyBAQAogcmVxdWlyZXNfYWxsX2NvbmZpZ3NfZW5hYmxlZCBNQkVEVExTX1NTTF9UTFMxXzNfQ09NUEFUSUJJTElUWV9NT0RFIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTUJFRFRMU19TU0xfVExTMV8zX0tFWV9FWENIQU5HRV9NT0RFX0VQSEVNRVJBTF9FTkFCTEVECiBydW5fdGVzdCAgICAiVExTIDEuMyBHLT5tIGJvdGggd2l0aCBtaWRkbGVib3ggY29tcGF0IHN1cHBvcnQiIFwKLSAgICAgICAgICAgICIkUF9TUlYgZGVidWdfbGV2ZWw9NCBjcnRfZmlsZT1kYXRhX2ZpbGVzL3NlcnZlcjUuY3J0IGtleV9maWxlPWRhdGFfZmlsZXMvc2VydmVyNS5rZXkgdGlja2V0cz0wIiBcCisgICAgICAgICAgICAiJFBfU1JWIGRlYnVnX2xldmVsPTQgY3J0X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9zZXJ2ZXI1LmNydCBrZXlfZmlsZT0kREFUQV9GSUxFU19QQVRIL3NlcnZlcjUua2V5IHRpY2tldHM9MCIgXAogICAgICAgICAgICAgIiRHX05FWFRfQ0xJIGxvY2FsaG9zdCAtLWRlYnVnPTEwIC0tcHJpb3JpdHk9Tk9STUFMOiVOT19USUNLRVRTOiVESVNBQkxFX1RMUzEzX0NPTVBBVF9NT0RFIC1WIiBcCiAgICAgICAgICAgICAwIFwKICAgICAgICAgICAgIC1zICJQcm90b2NvbCBpcyBUTFN2MS4zIiBcCkBAIC0xMzYyMCw3ICsxMzYyMiw3IEBACiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBNQkVEVExTX1NTTF9TUlZfQwogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgTUJFRFRMU19TU0xfVExTMV8zX0tFWV9FWENIQU5HRV9NT0RFX0VQSEVNRVJBTF9FTkFCTEVECiBydW5fdGVzdCAgICAiVExTIDEuMyBPLT5tIEhSUiBib3RoIHBlZXJzIGRvIG5vdCBzdXBwb3J0IG1pZGRsZWJveCBjb21wYXRpYmlsaXR5IiBcCi0gICAgICAgICAgICAiJFBfU1JWIGRlYnVnX2xldmVsPTQgY3J0X2ZpbGU9ZGF0YV9maWxlcy9zZXJ2ZXI1LmNydCBrZXlfZmlsZT1kYXRhX2ZpbGVzL3NlcnZlcjUua2V5IGdyb3Vwcz1zZWNwMzg0cjEgdGlja2V0cz0wIiBcCisgICAgICAgICAgICAiJFBfU1JWIGRlYnVnX2xldmVsPTQgY3J0X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9zZXJ2ZXI1LmNydCBrZXlfZmlsZT0kREFUQV9GSUxFU19QQVRIL3NlcnZlcjUua2V5IGdyb3Vwcz1zZWNwMzg0cjEgdGlja2V0cz0wIiBcCiAgICAgICAgICAgICAiJE9fTkVYVF9DTEkgLW1zZyAtZGVidWcgLWdyb3VwcyBQLTI1NjpQLTM4NCAtbm9fbWlkZGxlYm94IiBcCiAgICAgICAgICAgICAwIFwKICAgICAgICAgICAgIC1zICJQcm90b2NvbCBpcyBUTFN2MS4zIiBcCkBAIC0xMzYzMyw3ICsxMzYzNSw3IEBACiByZXF1aXJlc19hbGxfY29uZmlnc19lbmFibGVkIE1CRURUTFNfU1NMX1RMUzFfM19DT01QQVRJQklMSVRZX01PREUgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNQkVEVExTX1NTTF9UTFMxXzNfS0VZX0VYQ0hBTkdFX01PREVfRVBIRU1FUkFMX0VOQUJMRUQKIHJ1bl90ZXN0ICAgICJUTFMgMS4zIE8tPm0gSFJSIHNlcnZlciB3aXRoIG1pZGRsZWJveCBjb21wYXQgc3VwcG9ydCwgbm90IGNsaWVudCIgXAotICAgICAgICAgICAgIiRQX1NSViBkZWJ1Z19sZXZlbD00IGNydF9maWxlPWRhdGFfZmlsZXMvc2VydmVyNS5jcnQga2V5X2ZpbGU9ZGF0YV9maWxlcy9zZXJ2ZXI1LmtleSBncm91cHM9c2VjcDM4NHIxIHRpY2tldHM9MCIgXAorICAgICAgICAgICAgIiRQX1NSViBkZWJ1Z19sZXZlbD00IGNydF9maWxlPSREQVRBX0ZJTEVTX1BBVEgvc2VydmVyNS5jcnQga2V5X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9zZXJ2ZXI1LmtleSBncm91cHM9c2VjcDM4NHIxIHRpY2tldHM9MCIgXAogICAgICAgICAgICAgIiRPX05FWFRfQ0xJIC1tc2cgLWRlYnVnIC1ncm91cHMgUC0yNTY6UC0zODQgLW5vX21pZGRsZWJveCIgXAogICAgICAgICAgICAgMCBcCiAgICAgICAgICAgICAtcyAiUHJvdG9jb2wgaXMgVExTdjEuMyIgXApAQCAtMTM2NDUsNyArMTM2NDcsNyBAQAogcmVxdWlyZXNfYWxsX2NvbmZpZ3NfZW5hYmxlZCBNQkVEVExTX1NTTF9UTFMxXzNfQ09NUEFUSUJJTElUWV9NT0RFIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTUJFRFRMU19TU0xfVExTMV8zX0tFWV9FWENIQU5HRV9NT0RFX0VQSEVNRVJBTF9FTkFCTEVECiBydW5fdGVzdCAgICAiVExTIDEuMyBPLT5tIEhSUiBib3RoIHdpdGggbWlkZGxlYm94IGNvbXBhdCBzdXBwb3J0IiBcCi0gICAgICAgICAgICAiJFBfU1JWIGRlYnVnX2xldmVsPTQgY3J0X2ZpbGU9ZGF0YV9maWxlcy9zZXJ2ZXI1LmNydCBrZXlfZmlsZT1kYXRhX2ZpbGVzL3NlcnZlcjUua2V5IGdyb3Vwcz1zZWNwMzg0cjEgdGlja2V0cz0wIiBcCisgICAgICAgICAgICAiJFBfU1JWIGRlYnVnX2xldmVsPTQgY3J0X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9zZXJ2ZXI1LmNydCBrZXlfZmlsZT0kREFUQV9GSUxFU19QQVRIL3NlcnZlcjUua2V5IGdyb3Vwcz1zZWNwMzg0cjEgdGlja2V0cz0wIiBcCiAgICAgICAgICAgICAiJE9fTkVYVF9DTEkgLW1zZyAtZGVidWcgLWdyb3VwcyBQLTI1NjpQLTM4NCIgXAogICAgICAgICAgICAgMCBcCiAgICAgICAgICAgICAtcyAiUHJvdG9jb2wgaXMgVExTdjEuMyIgXApAQCAtMTM2NjAsNyArMTM2NjIsNyBAQAogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgTUJFRFRMU19TU0xfU1JWX0MKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIE1CRURUTFNfU1NMX1RMUzFfM19LRVlfRVhDSEFOR0VfTU9ERV9FUEhFTUVSQUxfRU5BQkxFRAogcnVuX3Rlc3QgICAgIlRMUyAxLjMgRy0+bSBIUlIgYm90aCBwZWVycyBkbyBub3Qgc3VwcG9ydCBtaWRkbGVib3ggY29tcGF0aWJpbGl0eSIgXAotICAgICAgICAgICAgIiRQX1NSViBkZWJ1Z19sZXZlbD00IGNydF9maWxlPWRhdGFfZmlsZXMvc2VydmVyNS5jcnQga2V5X2ZpbGU9ZGF0YV9maWxlcy9zZXJ2ZXI1LmtleSBncm91cHM9c2VjcDM4NHIxIHRpY2tldHM9MCIgXAorICAgICAgICAgICAgIiRQX1NSViBkZWJ1Z19sZXZlbD00IGNydF9maWxlPSREQVRBX0ZJTEVTX1BBVEgvc2VydmVyNS5jcnQga2V5X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9zZXJ2ZXI1LmtleSBncm91cHM9c2VjcDM4NHIxIHRpY2tldHM9MCIgXAogICAgICAgICAgICAgIiRHX05FWFRfQ0xJIGxvY2FsaG9zdCAtLXByaW9yaXR5PU5PUk1BTDotR1JPVVAtQUxMOitHUk9VUC1TRUNQMjU2UjE6K0dST1VQLVNFQ1AzODRSMTolTk9fVElDS0VUUzolRElTQUJMRV9UTFMxM19DT01QQVRfTU9ERSAtViIgXAogICAgICAgICAgICAgMCBcCiAgICAgICAgICAgICAtcyAiUHJvdG9jb2wgaXMgVExTdjEuMyIgXApAQCAtMTM2NzYsNyArMTM2NzgsNyBAQAogcmVxdWlyZXNfYWxsX2NvbmZpZ3NfZW5hYmxlZCBNQkVEVExTX1NTTF9UTFMxXzNfQ09NUEFUSUJJTElUWV9NT0RFIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTUJFRFRMU19TU0xfVExTMV8zX0tFWV9FWENIQU5HRV9NT0RFX0VQSEVNRVJBTF9FTkFCTEVECiBydW5fdGVzdCAgICAiVExTIDEuMyBHLT5tIEhSUiBzZXJ2ZXIgd2l0aCBtaWRkbGVib3ggY29tcGF0IHN1cHBvcnQsIG5vdCBjbGllbnQiIFwKLSAgICAgICAgICAgICIkUF9TUlYgZGVidWdfbGV2ZWw9NCBjcnRfZmlsZT1kYXRhX2ZpbGVzL3NlcnZlcjUuY3J0IGtleV9maWxlPWRhdGFfZmlsZXMvc2VydmVyNS5rZXkgZ3JvdXBzPXNlY3AzODRyMSB0aWNrZXRzPTAiIFwKKyAgICAgICAgICAgICIkUF9TUlYgZGVidWdfbGV2ZWw9NCBjcnRfZmlsZT0kREFUQV9GSUxFU19QQVRIL3NlcnZlcjUuY3J0IGtleV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvc2VydmVyNS5rZXkgZ3JvdXBzPXNlY3AzODRyMSB0aWNrZXRzPTAiIFwKICAgICAgICAgICAgICIkR19ORVhUX0NMSSBsb2NhbGhvc3QgLS1kZWJ1Zz0xMCAtLXByaW9yaXR5PU5PUk1BTDotR1JPVVAtQUxMOitHUk9VUC1TRUNQMjU2UjE6K0dST1VQLVNFQ1AzODRSMTolTk9fVElDS0VUUzolRElTQUJMRV9UTFMxM19DT01QQVRfTU9ERSAtViIgXAogICAgICAgICAgICAgMCBcCiAgICAgICAgICAgICAtcyAiUHJvdG9jb2wgaXMgVExTdjEuMyIgXApAQCAtMTM2OTMsNyArMTM2OTUsNyBAQAogcmVxdWlyZXNfYWxsX2NvbmZpZ3NfZW5hYmxlZCBNQkVEVExTX1NTTF9UTFMxXzNfQ09NUEFUSUJJTElUWV9NT0RFIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTUJFRFRMU19TU0xfVExTMV8zX0tFWV9FWENIQU5HRV9NT0RFX0VQSEVNRVJBTF9FTkFCTEVECiBydW5fdGVzdCAgICAiVExTIDEuMyBHLT5tIEhSUiBib3RoIHdpdGggbWlkZGxlYm94IGNvbXBhdCBzdXBwb3J0IiBcCi0gICAgICAgICAgICAiJFBfU1JWIGRlYnVnX2xldmVsPTQgY3J0X2ZpbGU9ZGF0YV9maWxlcy9zZXJ2ZXI1LmNydCBrZXlfZmlsZT1kYXRhX2ZpbGVzL3NlcnZlcjUua2V5IGdyb3Vwcz1zZWNwMzg0cjEgdGlja2V0cz0wIiBcCisgICAgICAgICAgICAiJFBfU1JWIGRlYnVnX2xldmVsPTQgY3J0X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9zZXJ2ZXI1LmNydCBrZXlfZmlsZT0kREFUQV9GSUxFU19QQVRIL3NlcnZlcjUua2V5IGdyb3Vwcz1zZWNwMzg0cjEgdGlja2V0cz0wIiBcCiAgICAgICAgICAgICAiJEdfTkVYVF9DTEkgbG9jYWxob3N0IC0tZGVidWc9MTAgLS1wcmlvcml0eT1OT1JNQUw6LUdST1VQLUFMTDorR1JPVVAtU0VDUDI1NlIxOitHUk9VUC1TRUNQMzg0UjE6JU5PX1RJQ0tFVFM6JURJU0FCTEVfVExTMTNfQ09NUEFUX01PREUgLVYiIFwKICAgICAgICAgICAgIDAgXAogICAgICAgICAgICAgLXMgIlByb3RvY29sIGlzIFRMU3YxLjMiIFwKQEAgLTEzNzA2LDEwICsxMzcwOCwxMCBAQAogcmVxdWlyZXNfYWxsX2NvbmZpZ3NfZW5hYmxlZCBNQkVEVExTX1NTTF9UTFMxXzNfQ09NUEFUSUJJTElUWV9NT0RFIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTUJFRFRMU19TU0xfVExTMV8zX0tFWV9FWENIQU5HRV9NT0RFX0VQSEVNRVJBTF9FTkFCTEVECiBydW5fdGVzdCAgICAiVExTIDEuMzogQ2hlY2sgc2lnbmF0dXJlIGFsZ29yaXRobSBvcmRlciwgbS0+TyIgXAotICAgICAgICAgICAgIiRPX05FWFRfU1JWX05PX0NFUlQgLWNlcnQgZGF0YV9maWxlcy9zZXJ2ZXIyLXNoYTI1Ni5jcnQgLWtleSBkYXRhX2ZpbGVzL3NlcnZlcjIua2V5CisgICAgICAgICAgICAiJE9fTkVYVF9TUlZfTk9fQ0VSVCAtY2VydCAkREFUQV9GSUxFU19QQVRIL3NlcnZlcjItc2hhMjU2LmNydCAta2V5ICREQVRBX0ZJTEVTX1BBVEgvc2VydmVyMi5rZXkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC1tc2cgLXRsczFfMyAtbnVtX3RpY2tldHMgMCAtbm9fcmVzdW1lX2VwaGVtZXJhbCAtbm9fY2FjaGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC1WZXJpZnkgMTAgLXNpZ2FsZ3MgcnNhX3BrY3MxX3NoYTUxMjpyc2FfcHNzX3JzYWVfc2hhNTEyOnJzYV9wc3NfcnNhZV9zaGEzODQ6ZWNkc2Ffc2VjcDI1NnIxX3NoYTI1NiIgXAotICAgICAgICAgICAgIiRQX0NMSSBkZWJ1Z19sZXZlbD00IGNydF9maWxlPWRhdGFfZmlsZXMvc2VydmVyMi1zaGEyNTYuY3J0IGtleV9maWxlPWRhdGFfZmlsZXMvc2VydmVyMi5rZXkgXAorICAgICAgICAgICAgIiRQX0NMSSBkZWJ1Z19sZXZlbD00IGNydF9maWxlPSREQVRBX0ZJTEVTX1BBVEgvc2VydmVyMi1zaGEyNTYuY3J0IGtleV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvc2VydmVyMi5rZXkgXAogICAgICAgICAgICAgICAgICAgICBzaWdfYWxncz1yc2FfcGtjczFfc2hhNTEyLHJzYV9wc3NfcnNhZV9zaGE1MTIscnNhX3Bzc19yc2FlX3NoYTM4NCxlY2RzYV9zZWNwMjU2cjFfc2hhMjU2IiBcCiAgICAgICAgICAgICAwIFwKICAgICAgICAgICAgIC1jICJQcm90b2NvbCBpcyBUTFN2MS4zIiBcCkBAIC0xMzcyMiwxMCArMTM3MjQsMTAgQEAKIHJlcXVpcmVzX2FsbF9jb25maWdzX2VuYWJsZWQgTUJFRFRMU19TU0xfVExTMV8zX0NPTVBBVElCSUxJVFlfTU9ERSBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1CRURUTFNfU1NMX1RMUzFfM19LRVlfRVhDSEFOR0VfTU9ERV9FUEhFTUVSQUxfRU5BQkxFRAogcnVuX3Rlc3QgICAgIlRMUyAxLjM6IENoZWNrIHNpZ25hdHVyZSBhbGdvcml0aG0gb3JkZXIsIG0tPkciIFwKLSAgICAgICAgICAgICIkR19ORVhUX1NSVl9OT19DRVJUIC0teDUwOWNlcnRmaWxlIGRhdGFfZmlsZXMvc2VydmVyMi1zaGEyNTYuY3J0IC0teDUwOWtleWZpbGUgZGF0YV9maWxlcy9zZXJ2ZXIyLmtleQorICAgICAgICAgICAgIiRHX05FWFRfU1JWX05PX0NFUlQgLS14NTA5Y2VydGZpbGUgJERBVEFfRklMRVNfUEFUSC9zZXJ2ZXIyLXNoYTI1Ni5jcnQgLS14NTA5a2V5ZmlsZSAkREFUQV9GSUxFU19QQVRIL3NlcnZlcjIua2V5CiAgICAgICAgICAgICAgICAgICAgIC1kIDQKICAgICAgICAgICAgICAgICAgICAgLS1wcmlvcml0eT1OT1JNQUw6LVZFUlMtQUxMOi1TSUdOLUFMTDorU0lHTi1SU0EtU0hBNTEyOitTSUdOLVJTQS1QU1MtUlNBRS1TSEE1MTI6K1NJR04tUlNBLVBTUy1SU0FFLVNIQTM4NDorVkVSUy1UTFMxLjM6K0NJUEhFUi1BTEw6JU5PX1RJQ0tFVFMgIiBcCi0gICAgICAgICAgICAiJFBfQ0xJIGRlYnVnX2xldmVsPTQgY3J0X2ZpbGU9ZGF0YV9maWxlcy9zZXJ2ZXIyLXNoYTI1Ni5jcnQga2V5X2ZpbGU9ZGF0YV9maWxlcy9zZXJ2ZXIyLmtleSBcCisgICAgICAgICAgICAiJFBfQ0xJIGRlYnVnX2xldmVsPTQgY3J0X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9zZXJ2ZXIyLXNoYTI1Ni5jcnQga2V5X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9zZXJ2ZXIyLmtleSBcCiAgICAgICAgICAgICAgICAgICAgIHNpZ19hbGdzPXJzYV9wa2NzMV9zaGE1MTIscnNhX3Bzc19yc2FlX3NoYTUxMixyc2FfcHNzX3JzYWVfc2hhMzg0LGVjZHNhX3NlY3AyNTZyMV9zaGEyNTYiIFwKICAgICAgICAgICAgIDAgXAogICAgICAgICAgICAgLWMgIlByb3RvY29sIGlzIFRMU3YxLjMiIFwKQEAgLTEzNzM5LDEwICsxMzc0MSwxMCBAQAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNQkVEVExTX1NTTF9UTFMxXzNfS0VZX0VYQ0hBTkdFX01PREVfRVBIRU1FUkFMX0VOQUJMRUQKIHJ1bl90ZXN0ICAgICJUTFMgMS4zOiBDaGVjayBzaWduYXR1cmUgYWxnb3JpdGhtIG9yZGVyLCBtLT5tIiBcCiAgICAgICAgICAgICAiJFBfU1JWIGRlYnVnX2xldmVsPTQgYXV0aF9tb2RlPXJlcXVpcmVkCi0gICAgICAgICAgICAgICAgICAgIGNydF9maWxlMj1kYXRhX2ZpbGVzL3NlcnZlcjItc2hhMjU2LmNydCBrZXlfZmlsZTI9ZGF0YV9maWxlcy9zZXJ2ZXIyLmtleQotICAgICAgICAgICAgICAgICAgICBjcnRfZmlsZT1kYXRhX2ZpbGVzL3NlcnZlcjUuY3J0IGtleV9maWxlPWRhdGFfZmlsZXMvc2VydmVyNS5rZXkKKyAgICAgICAgICAgICAgICAgICAgY3J0X2ZpbGUyPSREQVRBX0ZJTEVTX1BBVEgvc2VydmVyMi1zaGEyNTYuY3J0IGtleV9maWxlMj0kREFUQV9GSUxFU19QQVRIL3NlcnZlcjIua2V5CisgICAgICAgICAgICAgICAgICAgIGNydF9maWxlPSREQVRBX0ZJTEVTX1BBVEgvc2VydmVyNS5jcnQga2V5X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9zZXJ2ZXI1LmtleQogICAgICAgICAgICAgICAgICAgICBzaWdfYWxncz1yc2FfcGtjczFfc2hhNTEyLHJzYV9wc3NfcnNhZV9zaGE1MTIscnNhX3Bzc19yc2FlX3NoYTM4NCxlY2RzYV9zZWNwMjU2cjFfc2hhMjU2ICIgXAotICAgICAgICAgICAgIiRQX0NMSSBkZWJ1Z19sZXZlbD00IGNydF9maWxlPWRhdGFfZmlsZXMvc2VydmVyMi1zaGEyNTYuY3J0IGtleV9maWxlPWRhdGFfZmlsZXMvc2VydmVyMi5rZXkgXAorICAgICAgICAgICAgIiRQX0NMSSBkZWJ1Z19sZXZlbD00IGNydF9maWxlPSREQVRBX0ZJTEVTX1BBVEgvc2VydmVyMi1zaGEyNTYuY3J0IGtleV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvc2VydmVyMi5rZXkgXAogICAgICAgICAgICAgICAgICAgICBzaWdfYWxncz1yc2FfcGtjczFfc2hhNTEyLHJzYV9wc3NfcnNhZV9zaGE1MTIscnNhX3Bzc19yc2FlX3NoYTM4NCxlY2RzYV9zZWNwMjU2cjFfc2hhMjU2IiBcCiAgICAgICAgICAgICAwIFwKICAgICAgICAgICAgIC1jICJQcm90b2NvbCBpcyBUTFN2MS4zIiBcCkBAIC0xMzc1OCwxMSArMTM3NjAsMTEgQEAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTUJFRFRMU19TU0xfVExTMV8zX0tFWV9FWENIQU5HRV9NT0RFX0VQSEVNRVJBTF9FTkFCTEVECiBydW5fdGVzdCAgICAiVExTIDEuMzogQ2hlY2sgc2lnbmF0dXJlIGFsZ29yaXRobSBvcmRlciwgTy0+bSIgXAogICAgICAgICAgICAgIiRQX1NSViBkZWJ1Z19sZXZlbD00IGF1dGhfbW9kZT1yZXF1aXJlZAotICAgICAgICAgICAgICAgICAgICBjcnRfZmlsZTI9ZGF0YV9maWxlcy9zZXJ2ZXIyLXNoYTI1Ni5jcnQga2V5X2ZpbGUyPWRhdGFfZmlsZXMvc2VydmVyMi5rZXkKLSAgICAgICAgICAgICAgICAgICAgY3J0X2ZpbGU9ZGF0YV9maWxlcy9zZXJ2ZXI1LmNydCBrZXlfZmlsZT1kYXRhX2ZpbGVzL3NlcnZlcjUua2V5CisgICAgICAgICAgICAgICAgICAgIGNydF9maWxlMj0kREFUQV9GSUxFU19QQVRIL3NlcnZlcjItc2hhMjU2LmNydCBrZXlfZmlsZTI9JERBVEFfRklMRVNfUEFUSC9zZXJ2ZXIyLmtleQorICAgICAgICAgICAgICAgICAgICBjcnRfZmlsZT0kREFUQV9GSUxFU19QQVRIL3NlcnZlcjUuY3J0IGtleV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvc2VydmVyNS5rZXkKICAgICAgICAgICAgICAgICAgICAgc2lnX2FsZ3M9cnNhX3BrY3MxX3NoYTUxMixyc2FfcHNzX3JzYWVfc2hhNTEyLHJzYV9wc3NfcnNhZV9zaGEzODQsZWNkc2Ffc2VjcDI1NnIxX3NoYTI1NiAiIFwKLSAgICAgICAgICAgICIkT19ORVhUX0NMSV9OT19DRVJUIC1tc2cgLUNBZmlsZSBkYXRhX2ZpbGVzL3Rlc3QtY2FfY2F0MTIuY3J0IFwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC1jZXJ0IGRhdGFfZmlsZXMvc2VydmVyMi1zaGEyNTYuY3J0IC1rZXkgZGF0YV9maWxlcy9zZXJ2ZXIyLmtleSBcCisgICAgICAgICAgICAiJE9fTkVYVF9DTElfTk9fQ0VSVCAtbXNnIC1DQWZpbGUgJERBVEFfRklMRVNfUEFUSC90ZXN0LWNhX2NhdDEyLmNydCBcCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtY2VydCAkREFUQV9GSUxFU19QQVRIL3NlcnZlcjItc2hhMjU2LmNydCAta2V5ICREQVRBX0ZJTEVTX1BBVEgvc2VydmVyMi5rZXkgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLXNpZ2FsZ3MgcnNhX3BrY3MxX3NoYTUxMjpyc2FfcHNzX3JzYWVfc2hhNTEyOnJzYV9wc3NfcnNhZV9zaGEzODQ6ZWNkc2Ffc2VjcDI1NnIxX3NoYTI1NiIgIFwKICAgICAgICAgICAgIDAgXAogICAgICAgICAgICAgLWMgIlRMU3YxLjMiIFwKQEAgLTEzNzc2LDExICsxMzc3OCwxMSBAQAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNQkVEVExTX1NTTF9UTFMxXzNfS0VZX0VYQ0hBTkdFX01PREVfRVBIRU1FUkFMX0VOQUJMRUQKIHJ1bl90ZXN0ICAgICJUTFMgMS4zOiBDaGVjayBzaWduYXR1cmUgYWxnb3JpdGhtIG9yZGVyLCBHLT5tIiBcCiAgICAgICAgICAgICAiJFBfU1JWIGRlYnVnX2xldmVsPTQgYXV0aF9tb2RlPXJlcXVpcmVkCi0gICAgICAgICAgICAgICAgICAgIGNydF9maWxlMj1kYXRhX2ZpbGVzL3NlcnZlcjItc2hhMjU2LmNydCBrZXlfZmlsZTI9ZGF0YV9maWxlcy9zZXJ2ZXIyLmtleQotICAgICAgICAgICAgICAgICAgICBjcnRfZmlsZT1kYXRhX2ZpbGVzL3NlcnZlcjUuY3J0IGtleV9maWxlPWRhdGFfZmlsZXMvc2VydmVyNS5rZXkKKyAgICAgICAgICAgICAgICAgICAgY3J0X2ZpbGUyPSREQVRBX0ZJTEVTX1BBVEgvc2VydmVyMi1zaGEyNTYuY3J0IGtleV9maWxlMj0kREFUQV9GSUxFU19QQVRIL3NlcnZlcjIua2V5CisgICAgICAgICAgICAgICAgICAgIGNydF9maWxlPSREQVRBX0ZJTEVTX1BBVEgvc2VydmVyNS5jcnQga2V5X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9zZXJ2ZXI1LmtleQogICAgICAgICAgICAgICAgICAgICBzaWdfYWxncz1yc2FfcGtjczFfc2hhNTEyLHJzYV9wc3NfcnNhZV9zaGE1MTIscnNhX3Bzc19yc2FlX3NoYTM4NCxlY2RzYV9zZWNwMjU2cjFfc2hhMjU2ICIgXAotICAgICAgICAgICAgIiRHX05FWFRfQ0xJX05PX0NFUlQgbG9jYWxob3N0IC1kIDQgLS14NTA5Y2FmaWxlIGRhdGFfZmlsZXMvdGVzdC1jYV9jYXQxMi5jcnQgXAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS14NTA5Y2VydGZpbGUgZGF0YV9maWxlcy9zZXJ2ZXIyLXNoYTI1Ni5jcnQgLS14NTA5a2V5ZmlsZSBkYXRhX2ZpbGVzL3NlcnZlcjIua2V5IFwKKyAgICAgICAgICAgICIkR19ORVhUX0NMSV9OT19DRVJUIGxvY2FsaG9zdCAtZCA0IC0teDUwOWNhZmlsZSAkREFUQV9GSUxFU19QQVRIL3Rlc3QtY2FfY2F0MTIuY3J0IFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0teDUwOWNlcnRmaWxlICREQVRBX0ZJTEVTX1BBVEgvc2VydmVyMi1zaGEyNTYuY3J0IC0teDUwOWtleWZpbGUgJERBVEFfRklMRVNfUEFUSC9zZXJ2ZXIyLmtleSBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtLXByaW9yaXR5PU5PUk1BTDotU0lHTi1BTEw6K1NJR04tUlNBLVNIQTUxMjorU0lHTi1SU0EtUFNTLVJTQUUtU0hBNTEyOitTSUdOLVJTQS1QU1MtUlNBRS1TSEEzODQiICBcCiAgICAgICAgICAgICAwIFwKICAgICAgICAgICAgIC1jICJOZWdvdGlhdGVkIHZlcnNpb246IDMuNCIgXApAQCAtMTM3OTUsMTEgKzEzNzk3LDExIEBACiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1CRURUTFNfU1NMX1RMUzFfM19LRVlfRVhDSEFOR0VfTU9ERV9FUEhFTUVSQUxfRU5BQkxFRAogcnVuX3Rlc3QgICAgIlRMUyAxLjM6IENoZWNrIHNlcnZlciBubyBzdWl0YWJsZSBzaWduYXR1cmUgYWxnb3JpdGhtLCBHLT5tIiBcCiAgICAgICAgICAgICAiJFBfU1JWIGRlYnVnX2xldmVsPTQgYXV0aF9tb2RlPXJlcXVpcmVkCi0gICAgICAgICAgICAgICAgICAgIGNydF9maWxlMj1kYXRhX2ZpbGVzL3NlcnZlcjItc2hhMjU2LmNydCBrZXlfZmlsZTI9ZGF0YV9maWxlcy9zZXJ2ZXIyLmtleQotICAgICAgICAgICAgICAgICAgICBjcnRfZmlsZT1kYXRhX2ZpbGVzL3NlcnZlcjUuY3J0IGtleV9maWxlPWRhdGFfZmlsZXMvc2VydmVyNS5rZXkKKyAgICAgICAgICAgICAgICAgICAgY3J0X2ZpbGUyPSREQVRBX0ZJTEVTX1BBVEgvc2VydmVyMi1zaGEyNTYuY3J0IGtleV9maWxlMj0kREFUQV9GSUxFU19QQVRIL3NlcnZlcjIua2V5CisgICAgICAgICAgICAgICAgICAgIGNydF9maWxlPSREQVRBX0ZJTEVTX1BBVEgvc2VydmVyNS5jcnQga2V5X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9zZXJ2ZXI1LmtleQogICAgICAgICAgICAgICAgICAgICBzaWdfYWxncz1yc2FfcGtjczFfc2hhNTEyLGVjZHNhX3NlY3AyNTZyMV9zaGEyNTYgIiBcCi0gICAgICAgICAgICAiJEdfTkVYVF9DTElfTk9fQ0VSVCBsb2NhbGhvc3QgLWQgNCAtLXg1MDljYWZpbGUgZGF0YV9maWxlcy90ZXN0LWNhX2NhdDEyLmNydCBcCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtLXg1MDljZXJ0ZmlsZSBkYXRhX2ZpbGVzL3NlcnZlcjItc2hhMjU2LmNydCAtLXg1MDlrZXlmaWxlIGRhdGFfZmlsZXMvc2VydmVyMi5rZXkgXAorICAgICAgICAgICAgIiRHX05FWFRfQ0xJX05PX0NFUlQgbG9jYWxob3N0IC1kIDQgLS14NTA5Y2FmaWxlICREQVRBX0ZJTEVTX1BBVEgvdGVzdC1jYV9jYXQxMi5jcnQgXAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS14NTA5Y2VydGZpbGUgJERBVEFfRklMRVNfUEFUSC9zZXJ2ZXIyLXNoYTI1Ni5jcnQgLS14NTA5a2V5ZmlsZSAkREFUQV9GSUxFU19QQVRIL3NlcnZlcjIua2V5IFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0tcHJpb3JpdHk9Tk9STUFMOi1TSUdOLUFMTDorU0lHTi1SU0EtU0hBNTEyOitTSUdOLVJTQS1QU1MtUlNBRS1TSEE1MTI6K1NJR04tRUNEU0EtU0VDUDUyMVIxLVNIQTUxMiIgIFwKICAgICAgICAgICAgIDEgXAogICAgICAgICAgICAgLVMgInNzbF90bHMxM19waWNrX2tleV9jZXJ0OmNoZWNrIHNpZ25hdHVyZSBhbGdvcml0aG0iCkBAIC0xMzgxMSwxMSArMTM4MTMsMTEgQEAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTUJFRFRMU19TU0xfVExTMV8zX0tFWV9FWENIQU5HRV9NT0RFX0VQSEVNRVJBTF9FTkFCTEVECiBydW5fdGVzdCAgICAiVExTIDEuMzogQ2hlY2sgc2VydmVyIG5vIHN1aXRhYmxlIHNpZ25hdHVyZSBhbGdvcml0aG0sIE8tPm0iIFwKICAgICAgICAgICAgICIkUF9TUlYgZGVidWdfbGV2ZWw9NCBhdXRoX21vZGU9cmVxdWlyZWQKLSAgICAgICAgICAgICAgICAgICAgY3J0X2ZpbGUyPWRhdGFfZmlsZXMvc2VydmVyMi1zaGEyNTYuY3J0IGtleV9maWxlMj1kYXRhX2ZpbGVzL3NlcnZlcjIua2V5Ci0gICAgICAgICAgICAgICAgICAgIGNydF9maWxlPWRhdGFfZmlsZXMvc2VydmVyNS5jcnQga2V5X2ZpbGU9ZGF0YV9maWxlcy9zZXJ2ZXI1LmtleQorICAgICAgICAgICAgICAgICAgICBjcnRfZmlsZTI9JERBVEFfRklMRVNfUEFUSC9zZXJ2ZXIyLXNoYTI1Ni5jcnQga2V5X2ZpbGUyPSREQVRBX0ZJTEVTX1BBVEgvc2VydmVyMi5rZXkKKyAgICAgICAgICAgICAgICAgICAgY3J0X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9zZXJ2ZXI1LmNydCBrZXlfZmlsZT0kREFUQV9GSUxFU19QQVRIL3NlcnZlcjUua2V5CiAgICAgICAgICAgICAgICAgICAgIHNpZ19hbGdzPXJzYV9wa2NzMV9zaGE1MTIsZWNkc2Ffc2VjcDI1NnIxX3NoYTI1NiIgXAotICAgICAgICAgICAgIiRPX05FWFRfQ0xJX05PX0NFUlQgLW1zZyAtQ0FmaWxlIGRhdGFfZmlsZXMvdGVzdC1jYV9jYXQxMi5jcnQgXAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLWNlcnQgZGF0YV9maWxlcy9zZXJ2ZXIyLXNoYTI1Ni5jcnQgLWtleSBkYXRhX2ZpbGVzL3NlcnZlcjIua2V5IFwKKyAgICAgICAgICAgICIkT19ORVhUX0NMSV9OT19DRVJUIC1tc2cgLUNBZmlsZSAkREFUQV9GSUxFU19QQVRIL3Rlc3QtY2FfY2F0MTIuY3J0IFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC1jZXJ0ICREQVRBX0ZJTEVTX1BBVEgvc2VydmVyMi1zaGEyNTYuY3J0IC1rZXkgJERBVEFfRklMRVNfUEFUSC9zZXJ2ZXIyLmtleSBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtc2lnYWxncyByc2FfcGtjczFfc2hhNTEyOnJzYV9wc3NfcnNhZV9zaGE1MTI6ZWNkc2Ffc2VjcDUyMXIxX3NoYTUxMiIgIFwKICAgICAgICAgICAgIDEgXAogICAgICAgICAgICAgLVMgInNzbF90bHMxM19waWNrX2tleV9jZXJ0OmNoZWNrIHNpZ25hdHVyZSBhbGdvcml0aG0iCkBAIC0xMzgyNywxMCArMTM4MjksMTAgQEAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTUJFRFRMU19TU0xfVExTMV8zX0tFWV9FWENIQU5HRV9NT0RFX0VQSEVNRVJBTF9FTkFCTEVECiBydW5fdGVzdCAgICAiVExTIDEuMzogQ2hlY2sgc2VydmVyIG5vIHN1aXRhYmxlIHNpZ25hdHVyZSBhbGdvcml0aG0sIG0tPm0iIFwKICAgICAgICAgICAgICIkUF9TUlYgZGVidWdfbGV2ZWw9NCBhdXRoX21vZGU9cmVxdWlyZWQKLSAgICAgICAgICAgICAgICAgICAgY3J0X2ZpbGUyPWRhdGFfZmlsZXMvc2VydmVyMi1zaGEyNTYuY3J0IGtleV9maWxlMj1kYXRhX2ZpbGVzL3NlcnZlcjIua2V5Ci0gICAgICAgICAgICAgICAgICAgIGNydF9maWxlPWRhdGFfZmlsZXMvc2VydmVyNS5jcnQga2V5X2ZpbGU9ZGF0YV9maWxlcy9zZXJ2ZXI1LmtleQorICAgICAgICAgICAgICAgICAgICBjcnRfZmlsZTI9JERBVEFfRklMRVNfUEFUSC9zZXJ2ZXIyLXNoYTI1Ni5jcnQga2V5X2ZpbGUyPSREQVRBX0ZJTEVTX1BBVEgvc2VydmVyMi5rZXkKKyAgICAgICAgICAgICAgICAgICAgY3J0X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9zZXJ2ZXI1LmNydCBrZXlfZmlsZT0kREFUQV9GSUxFU19QQVRIL3NlcnZlcjUua2V5CiAgICAgICAgICAgICAgICAgICAgIHNpZ19hbGdzPXJzYV9wa2NzMV9zaGE1MTIsZWNkc2Ffc2VjcDI1NnIxX3NoYTI1NiAiIFwKLSAgICAgICAgICAgICIkUF9DTEkgYWxsb3dfc2hhMT0wIGRlYnVnX2xldmVsPTQgY3J0X2ZpbGU9ZGF0YV9maWxlcy9zZXJ2ZXIyLXNoYTI1Ni5jcnQga2V5X2ZpbGU9ZGF0YV9maWxlcy9zZXJ2ZXIyLmtleSBcCisgICAgICAgICAgICAiJFBfQ0xJIGFsbG93X3NoYTE9MCBkZWJ1Z19sZXZlbD00IGNydF9maWxlPSREQVRBX0ZJTEVTX1BBVEgvc2VydmVyMi1zaGEyNTYuY3J0IGtleV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvc2VydmVyMi5rZXkgXAogICAgICAgICAgICAgICAgICAgICBzaWdfYWxncz1yc2FfcGtjczFfc2hhNTEyLHJzYV9wc3NfcnNhZV9zaGE1MTIsZWNkc2Ffc2VjcDUyMXIxX3NoYTUxMiIgXAogICAgICAgICAgICAgMSBcCiAgICAgICAgICAgICAtUyAic3NsX3RsczEzX3BpY2tfa2V5X2NlcnQ6Y2hlY2sgc2lnbmF0dXJlIGFsZ29yaXRobSIKQEAgLTEzODQyLDkgKzEzODQ0LDkgQEAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTUJFRFRMU19TU0xfVExTMV8zX0tFWV9FWENIQU5HRV9NT0RFX0VQSEVNRVJBTF9FTkFCTEVECiBydW5fdGVzdCAgICAiVExTIDEuMzogQ2hlY2sgc2VydmVyIG5vIHN1aXRhYmxlIGNlcnRpZmljYXRlLCBHLT5tIiBcCiAgICAgICAgICAgICAiJFBfU1JWIGRlYnVnX2xldmVsPTQKLSAgICAgICAgICAgICAgICAgICAgY3J0X2ZpbGU9ZGF0YV9maWxlcy9zZXJ2ZXIyLXNoYTI1Ni5jcnQga2V5X2ZpbGU9ZGF0YV9maWxlcy9zZXJ2ZXIyLmtleQorICAgICAgICAgICAgICAgICAgICBjcnRfZmlsZT0kREFUQV9GSUxFU19QQVRIL3NlcnZlcjItc2hhMjU2LmNydCBrZXlfZmlsZT0kREFUQV9GSUxFU19QQVRIL3NlcnZlcjIua2V5CiAgICAgICAgICAgICAgICAgICAgIHNpZ19hbGdzPXJzYV9wa2NzMV9zaGE1MTIscnNhX3Bzc19yc2FlX3NoYTUxMixyc2FfcHNzX3JzYWVfc2hhMzg0LGVjZHNhX3NlY3AyNTZyMV9zaGEyNTYgIiBcCi0gICAgICAgICAgICAiJEdfTkVYVF9DTElfTk9fQ0VSVCBsb2NhbGhvc3QgLWQgNCAtLXg1MDljYWZpbGUgZGF0YV9maWxlcy90ZXN0LWNhX2NhdDEyLmNydCBcCisgICAgICAgICAgICAiJEdfTkVYVF9DTElfTk9fQ0VSVCBsb2NhbGhvc3QgLWQgNCAtLXg1MDljYWZpbGUgJERBVEFfRklMRVNfUEFUSC90ZXN0LWNhX2NhdDEyLmNydCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtLXByaW9yaXR5PU5PUk1BTDotU0lHTi1BTEw6K1NJR04tRUNEU0EtU0VDUDUyMVIxLVNIQTUxMjorU0lHTi1FQ0RTQS1TRUNQMjU2UjEtU0hBMjU2IiAgXAogICAgICAgICAgICAgMSBcCiAgICAgICAgICAgICAtcyAic3NsX3RsczEzX3BpY2tfa2V5X2NlcnQ6bm8gc3VpdGFibGUgY2VydGlmaWNhdGUgZm91bmQiCkBAIC0xMzg1Niw5ICsxMzg1OCw5IEBACiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1CRURUTFNfU1NMX1RMUzFfM19LRVlfRVhDSEFOR0VfTU9ERV9FUEhFTUVSQUxfRU5BQkxFRAogcnVuX3Rlc3QgICAgIlRMUyAxLjM6IENoZWNrIHNlcnZlciBubyBzdWl0YWJsZSBjZXJ0aWZpY2F0ZSwgTy0+bSIgXAogICAgICAgICAgICAgIiRQX1NSViBkZWJ1Z19sZXZlbD00Ci0gICAgICAgICAgICAgICAgICAgIGNydF9maWxlPWRhdGFfZmlsZXMvc2VydmVyMi1zaGEyNTYuY3J0IGtleV9maWxlPWRhdGFfZmlsZXMvc2VydmVyMi5rZXkKKyAgICAgICAgICAgICAgICAgICAgY3J0X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9zZXJ2ZXIyLXNoYTI1Ni5jcnQga2V5X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9zZXJ2ZXIyLmtleQogICAgICAgICAgICAgICAgICAgICBzaWdfYWxncz1yc2FfcGtjczFfc2hhNTEyLHJzYV9wc3NfcnNhZV9zaGE1MTIscnNhX3Bzc19yc2FlX3NoYTM4NCxlY2RzYV9zZWNwMjU2cjFfc2hhMjU2ICIgXAotICAgICAgICAgICAgIiRPX05FWFRfQ0xJX05PX0NFUlQgLW1zZyAtQ0FmaWxlIGRhdGFfZmlsZXMvdGVzdC1jYV9jYXQxMi5jcnQgXAorICAgICAgICAgICAgIiRPX05FWFRfQ0xJX05PX0NFUlQgLW1zZyAtQ0FmaWxlICREQVRBX0ZJTEVTX1BBVEgvdGVzdC1jYV9jYXQxMi5jcnQgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLXNpZ2FsZ3MgZWNkc2Ffc2VjcDUyMXIxX3NoYTUxMjplY2RzYV9zZWNwMjU2cjFfc2hhMjU2IiAgXAogICAgICAgICAgICAgMSBcCiAgICAgICAgICAgICAtcyAic3NsX3RsczEzX3BpY2tfa2V5X2NlcnQ6bm8gc3VpdGFibGUgY2VydGlmaWNhdGUgZm91bmQiCkBAIC0xMzg3MCw3ICsxMzg3Miw3IEBACiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1CRURUTFNfU1NMX1RMUzFfM19LRVlfRVhDSEFOR0VfTU9ERV9FUEhFTUVSQUxfRU5BQkxFRAogcnVuX3Rlc3QgICAgIlRMUyAxLjM6IENoZWNrIHNlcnZlciBubyBzdWl0YWJsZSBjZXJ0aWZpY2F0ZSwgbS0+bSIgXAogICAgICAgICAgICAgIiRQX1NSViBkZWJ1Z19sZXZlbD00Ci0gICAgICAgICAgICAgICAgICAgIGNydF9maWxlPWRhdGFfZmlsZXMvc2VydmVyMi1zaGEyNTYuY3J0IGtleV9maWxlPWRhdGFfZmlsZXMvc2VydmVyMi5rZXkKKyAgICAgICAgICAgICAgICAgICAgY3J0X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9zZXJ2ZXIyLXNoYTI1Ni5jcnQga2V5X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9zZXJ2ZXIyLmtleQogICAgICAgICAgICAgICAgICAgICBzaWdfYWxncz1yc2FfcGtjczFfc2hhNTEyLHJzYV9wc3NfcnNhZV9zaGE1MTIscnNhX3Bzc19yc2FlX3NoYTM4NCxlY2RzYV9zZWNwMjU2cjFfc2hhMjU2ICIgXAogICAgICAgICAgICAgIiRQX0NMSSBhbGxvd19zaGExPTAgZGVidWdfbGV2ZWw9NCBcCiAgICAgICAgICAgICAgICAgICAgIHNpZ19hbGdzPWVjZHNhX3NlY3A1MjFyMV9zaGE1MTIsZWNkc2Ffc2VjcDI1NnIxX3NoYTI1NiIgXApAQCAtMTM4ODMsMTAgKzEzODg1LDEwIEBACiByZXF1aXJlc19hbGxfY29uZmlnc19lbmFibGVkIE1CRURUTFNfU1NMX1RMUzFfM19DT01QQVRJQklMSVRZX01PREUgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNQkVEVExTX1NTTF9UTFMxXzNfS0VZX0VYQ0hBTkdFX01PREVfRVBIRU1FUkFMX0VOQUJMRUQKIHJ1bl90ZXN0ICAgICJUTFMgMS4zOiBDaGVjayBjbGllbnQgbm8gc2lnbmF0dXJlIGFsZ29yaXRobSwgbS0+TyIgXAotICAgICAgICAgICAgIiRPX05FWFRfU1JWX05PX0NFUlQgLWNlcnQgZGF0YV9maWxlcy9zZXJ2ZXIyLXNoYTI1Ni5jcnQgLWtleSBkYXRhX2ZpbGVzL3NlcnZlcjIua2V5CisgICAgICAgICAgICAiJE9fTkVYVF9TUlZfTk9fQ0VSVCAtY2VydCAkREFUQV9GSUxFU19QQVRIL3NlcnZlcjItc2hhMjU2LmNydCAta2V5ICREQVRBX0ZJTEVTX1BBVEgvc2VydmVyMi5rZXkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC1tc2cgLXRsczFfMyAtbnVtX3RpY2tldHMgMCAtbm9fcmVzdW1lX2VwaGVtZXJhbCAtbm9fY2FjaGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC1WZXJpZnkgMTAgLXNpZ2FsZ3MgcnNhX3BrY3MxX3NoYTUxMjpyc2FfcHNzX3JzYWVfc2hhNTEyOnJzYV9wc3NfcnNhZV9zaGEzODQ6ZWNkc2Ffc2VjcDUyMXIxX3NoYTUxMiIgXAotICAgICAgICAgICAgIiRQX0NMSSBkZWJ1Z19sZXZlbD00IGNydF9maWxlPWRhdGFfZmlsZXMvc2VydmVyNS5jcnQga2V5X2ZpbGU9ZGF0YV9maWxlcy9zZXJ2ZXI1LmtleSBcCisgICAgICAgICAgICAiJFBfQ0xJIGRlYnVnX2xldmVsPTQgY3J0X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9zZXJ2ZXI1LmNydCBrZXlfZmlsZT0kREFUQV9GSUxFU19QQVRIL3NlcnZlcjUua2V5IFwKICAgICAgICAgICAgICAgICAgICAgc2lnX2FsZ3M9cnNhX3BrY3MxX3NoYTUxMixyc2FfcHNzX3JzYWVfc2hhNTEyLHJzYV9wc3NfcnNhZV9zaGEzODQsZWNkc2Ffc2VjcDI1NnIxX3NoYTI1NiIgXAogICAgICAgICAgICAgMSBcCiAgICAgICAgICAgICAtYyAibm8gc3VpdGFibGUgc2lnbmF0dXJlIGFsZ29yaXRobSIKQEAgLTEzODk3LDEwICsxMzg5OSwxMCBAQAogcmVxdWlyZXNfYWxsX2NvbmZpZ3NfZW5hYmxlZCBNQkVEVExTX1NTTF9UTFMxXzNfQ09NUEFUSUJJTElUWV9NT0RFIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTUJFRFRMU19TU0xfVExTMV8zX0tFWV9FWENIQU5HRV9NT0RFX0VQSEVNRVJBTF9FTkFCTEVECiBydW5fdGVzdCAgICAiVExTIDEuMzogQ2hlY2sgY2xpZW50IG5vIHNpZ25hdHVyZSBhbGdvcml0aG0sIG0tPkciIFwKLSAgICAgICAgICAgICIkR19ORVhUX1NSVl9OT19DRVJUIC0teDUwOWNlcnRmaWxlIGRhdGFfZmlsZXMvc2VydmVyMi1zaGEyNTYuY3J0IC0teDUwOWtleWZpbGUgZGF0YV9maWxlcy9zZXJ2ZXIyLmtleQorICAgICAgICAgICAgIiRHX05FWFRfU1JWX05PX0NFUlQgLS14NTA5Y2VydGZpbGUgJERBVEFfRklMRVNfUEFUSC9zZXJ2ZXIyLXNoYTI1Ni5jcnQgLS14NTA5a2V5ZmlsZSAkREFUQV9GSUxFU19QQVRIL3NlcnZlcjIua2V5CiAgICAgICAgICAgICAgICAgICAgIC1kIDQKICAgICAgICAgICAgICAgICAgICAgLS1wcmlvcml0eT1OT1JNQUw6LVZFUlMtQUxMOi1TSUdOLUFMTDorU0lHTi1SU0EtU0hBNTEyOitTSUdOLVJTQS1QU1MtUlNBRS1TSEE1MTI6K1NJR04tUlNBLVBTUy1SU0FFLVNIQTM4NDorVkVSUy1UTFMxLjM6K0NJUEhFUi1BTEw6JU5PX1RJQ0tFVFMgIiBcCi0gICAgICAgICAgICAiJFBfQ0xJIGRlYnVnX2xldmVsPTQgY3J0X2ZpbGU9ZGF0YV9maWxlcy9zZXJ2ZXI1LmNydCBrZXlfZmlsZT1kYXRhX2ZpbGVzL3NlcnZlcjUua2V5IFwKKyAgICAgICAgICAgICIkUF9DTEkgZGVidWdfbGV2ZWw9NCBjcnRfZmlsZT0kREFUQV9GSUxFU19QQVRIL3NlcnZlcjUuY3J0IGtleV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvc2VydmVyNS5rZXkgXAogICAgICAgICAgICAgICAgICAgICBzaWdfYWxncz1yc2FfcGtjczFfc2hhNTEyLHJzYV9wc3NfcnNhZV9zaGE1MTIscnNhX3Bzc19yc2FlX3NoYTM4NCxlY2RzYV9zZWNwMjU2cjFfc2hhMjU2IiBcCiAgICAgICAgICAgICAxIFwKICAgICAgICAgICAgIC1jICJubyBzdWl0YWJsZSBzaWduYXR1cmUgYWxnb3JpdGhtIgpAQCAtMTM5MTIsMTAgKzEzOTE0LDEwIEBACiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1CRURUTFNfU1NMX1RMUzFfM19LRVlfRVhDSEFOR0VfTU9ERV9FUEhFTUVSQUxfRU5BQkxFRAogcnVuX3Rlc3QgICAgIlRMUyAxLjM6IENoZWNrIGNsaWVudCBubyBzaWduYXR1cmUgYWxnb3JpdGhtLCBtLT5tIiBcCiAgICAgICAgICAgICAiJFBfU1JWIGRlYnVnX2xldmVsPTQgYXV0aF9tb2RlPXJlcXVpcmVkCi0gICAgICAgICAgICAgICAgICAgIGNydF9maWxlMj1kYXRhX2ZpbGVzL3NlcnZlcjItc2hhMjU2LmNydCBrZXlfZmlsZTI9ZGF0YV9maWxlcy9zZXJ2ZXIyLmtleQotICAgICAgICAgICAgICAgICAgICBjcnRfZmlsZT1kYXRhX2ZpbGVzL3NlcnZlcjUuY3J0IGtleV9maWxlPWRhdGFfZmlsZXMvc2VydmVyNS5rZXkKKyAgICAgICAgICAgICAgICAgICAgY3J0X2ZpbGUyPSREQVRBX0ZJTEVTX1BBVEgvc2VydmVyMi1zaGEyNTYuY3J0IGtleV9maWxlMj0kREFUQV9GSUxFU19QQVRIL3NlcnZlcjIua2V5CisgICAgICAgICAgICAgICAgICAgIGNydF9maWxlPSREQVRBX0ZJTEVTX1BBVEgvc2VydmVyNS5jcnQga2V5X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9zZXJ2ZXI1LmtleQogICAgICAgICAgICAgICAgICAgICBzaWdfYWxncz1yc2FfcGtjczFfc2hhNTEyLHJzYV9wc3NfcnNhZV9zaGE1MTIscnNhX3Bzc19yc2FlX3NoYTM4NCxlY2RzYV9zZWNwNTIxcjFfc2hhNTEyIiBcCi0gICAgICAgICAgICAiJFBfQ0xJIGRlYnVnX2xldmVsPTQgY3J0X2ZpbGU9ZGF0YV9maWxlcy9zZXJ2ZXI1LmNydCBrZXlfZmlsZT1kYXRhX2ZpbGVzL3NlcnZlcjUua2V5IFwKKyAgICAgICAgICAgICIkUF9DTEkgZGVidWdfbGV2ZWw9NCBjcnRfZmlsZT0kREFUQV9GSUxFU19QQVRIL3NlcnZlcjUuY3J0IGtleV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvc2VydmVyNS5rZXkgXAogICAgICAgICAgICAgICAgICAgICBzaWdfYWxncz1yc2FfcGtjczFfc2hhNTEyLHJzYV9wc3NfcnNhZV9zaGE1MTIscnNhX3Bzc19yc2FlX3NoYTM4NCxlY2RzYV9zZWNwMjU2cjFfc2hhMjU2IiBcCiAgICAgICAgICAgICAxIFwKICAgICAgICAgICAgIC1jICJubyBzdWl0YWJsZSBzaWduYXR1cmUgYWxnb3JpdGhtIgpAQCAtMTM5MjUsMTAgKzEzOTI3LDEwIEBACiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBNQkVEVExTX0RFQlVHX0MKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIE1CRURUTFNfU1NMX0NMSV9DCiBydW5fdGVzdCAgICAiVExTIDEuMjogQ2hlY2sgcnNhX3Bzc19yc2FlIGNvbXBhdGliaWxpdHkgaXNzdWUsIG0tPk8iIFwKLSAgICAgICAgICAgICIkT19ORVhUX1NSVl9OT19DRVJUIC1jZXJ0IGRhdGFfZmlsZXMvc2VydmVyMi1zaGEyNTYuY3J0IC1rZXkgZGF0YV9maWxlcy9zZXJ2ZXIyLmtleQorICAgICAgICAgICAgIiRPX05FWFRfU1JWX05PX0NFUlQgLWNlcnQgJERBVEFfRklMRVNfUEFUSC9zZXJ2ZXIyLXNoYTI1Ni5jcnQgLWtleSAkREFUQV9GSUxFU19QQVRIL3NlcnZlcjIua2V5CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtbXNnIC10bHMxXzIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC1WZXJpZnkgMTAgIiBcCi0gICAgICAgICAgICAiJFBfQ0xJIGRlYnVnX2xldmVsPTQgY3J0X2ZpbGU9ZGF0YV9maWxlcy9zZXJ2ZXIyLXNoYTI1Ni5jcnQga2V5X2ZpbGU9ZGF0YV9maWxlcy9zZXJ2ZXIyLmtleQorICAgICAgICAgICAgIiRQX0NMSSBkZWJ1Z19sZXZlbD00IGNydF9maWxlPSREQVRBX0ZJTEVTX1BBVEgvc2VydmVyMi1zaGEyNTYuY3J0IGtleV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvc2VydmVyMi5rZXkKICAgICAgICAgICAgICAgICAgICAgc2lnX2FsZ3M9cnNhX3Bzc19yc2FlX3NoYTUxMixyc2FfcGtjczFfc2hhNTEyCiAgICAgICAgICAgICAgICAgICAgIG1pbl92ZXJzaW9uPXRsczEyIG1heF92ZXJzaW9uPXRsczEzICIgXAogICAgICAgICAgICAgMCBcCkBAIC0xMzk0MSwxMCArMTM5NDMsMTAgQEAKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIE1CRURUTFNfREVCVUdfQwogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgTUJFRFRMU19TU0xfQ0xJX0MKIHJ1bl90ZXN0ICAgICJUTFMgMS4yOiBDaGVjayByc2FfcHNzX3JzYWUgY29tcGF0aWJpbGl0eSBpc3N1ZSwgbS0+RyIgXAotICAgICAgICAgICAgIiRHX05FWFRfU1JWX05PX0NFUlQgLS14NTA5Y2VydGZpbGUgZGF0YV9maWxlcy9zZXJ2ZXIyLXNoYTI1Ni5jcnQgLS14NTA5a2V5ZmlsZSBkYXRhX2ZpbGVzL3NlcnZlcjIua2V5CisgICAgICAgICAgICAiJEdfTkVYVF9TUlZfTk9fQ0VSVCAtLXg1MDljZXJ0ZmlsZSAkREFUQV9GSUxFU19QQVRIL3NlcnZlcjItc2hhMjU2LmNydCAtLXg1MDlrZXlmaWxlICREQVRBX0ZJTEVTX1BBVEgvc2VydmVyMi5rZXkKICAgICAgICAgICAgICAgICAgICAgLWQgNAogICAgICAgICAgICAgICAgICAgICAtLXByaW9yaXR5PU5PUk1BTDotVkVSUy1BTEw6K1ZFUlMtVExTMS4yIiBcCi0gICAgICAgICAgICAiJFBfQ0xJIGRlYnVnX2xldmVsPTQgY3J0X2ZpbGU9ZGF0YV9maWxlcy9zZXJ2ZXIyLXNoYTI1Ni5jcnQga2V5X2ZpbGU9ZGF0YV9maWxlcy9zZXJ2ZXIyLmtleQorICAgICAgICAgICAgIiRQX0NMSSBkZWJ1Z19sZXZlbD00IGNydF9maWxlPSREQVRBX0ZJTEVTX1BBVEgvc2VydmVyMi1zaGEyNTYuY3J0IGtleV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvc2VydmVyMi5rZXkKICAgICAgICAgICAgICAgICAgICAgc2lnX2FsZ3M9cnNhX3Bzc19yc2FlX3NoYTUxMixyc2FfcGtjczFfc2hhNTEyCiAgICAgICAgICAgICAgICAgICAgIG1pbl92ZXJzaW9uPXRsczEyIG1heF92ZXJzaW9uPXRsczEzICIgXAogICAgICAgICAgICAgMCBcCkBAIC0xMzk2Miw4ICsxMzk2NCw4IEBACiByZXF1aXJlc19nbnV0bHNfbmV4dF9ub190aWNrZXQKIHJlcXVpcmVzX2dudXRsc19uZXh0X2Rpc2FibGVfdGxzMTNfY29tcGF0CiBydW5fdGVzdCAiVExTIDEuMyBHLT5tOiBBRVNfMTI4X0dDTV9TSEEyNTYsZmZkaGUzMDcyLHJzYV9wc3NfcnNhZV9zaGEyNTYiIFwKLSAgICAgICAgICIkUF9TUlYgY3J0X2ZpbGU9ZGF0YV9maWxlcy9zZXJ2ZXIyLXNoYTI1Ni5jcnQga2V5X2ZpbGU9ZGF0YV9maWxlcy9zZXJ2ZXIyLmtleSBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMTI4LUdDTS1TSEEyNTYgc2lnX2FsZ3M9cnNhX3Bzc19yc2FlX3NoYTI1NiBncm91cHM9ZmZkaGUzMDcyIHRsczEzX2tleF9tb2Rlcz1lcGhlbWVyYWwgY29va2llcz0wIHRpY2tldHM9MCIgXAotICAgICAgICAgIiRHX05FWFRfQ0xJX05PX0NFUlQgLS1kZWJ1Zz00IC0tc2luZ2xlLWtleS1zaGFyZSAtLXg1MDljYWZpbGUgZGF0YV9maWxlcy90ZXN0LWNhX2NhdDEyLmNydCAtLXByaW9yaXR5PU5PTkU6K0FFUy0xMjgtR0NNOitTSEEyNTY6K0FFQUQ6K1NJR04tUlNBLVBTUy1SU0FFLVNIQTI1NjorR1JPVVAtRkZESEUzMDcyOitWRVJTLVRMUzEuMzolTk9fVElDS0VUUyIgXAorICAgICAgICAgIiRQX1NSViBjcnRfZmlsZT0kREFUQV9GSUxFU19QQVRIL3NlcnZlcjItc2hhMjU2LmNydCBrZXlfZmlsZT0kREFUQV9GSUxFU19QQVRIL3NlcnZlcjIua2V5IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0xMjgtR0NNLVNIQTI1NiBzaWdfYWxncz1yc2FfcHNzX3JzYWVfc2hhMjU2IGdyb3Vwcz1mZmRoZTMwNzIgdGxzMTNfa2V4X21vZGVzPWVwaGVtZXJhbCBjb29raWVzPTAgdGlja2V0cz0wIiBcCisgICAgICAgICAiJEdfTkVYVF9DTElfTk9fQ0VSVCAtLWRlYnVnPTQgLS1zaW5nbGUta2V5LXNoYXJlIC0teDUwOWNhZmlsZSAkREFUQV9GSUxFU19QQVRIL3Rlc3QtY2FfY2F0MTIuY3J0IC0tcHJpb3JpdHk9Tk9ORTorQUVTLTEyOC1HQ006K1NIQTI1NjorQUVBRDorU0lHTi1SU0EtUFNTLVJTQUUtU0hBMjU2OitHUk9VUC1GRkRIRTMwNzI6K1ZFUlMtVExTMS4zOiVOT19USUNLRVRTIiBcCiAgICAgICAgICAwIFwKICAgICAgICAgIC1zICJQcm90b2NvbCBpcyBUTFN2MS4zIiBcCiAgICAgICAgICAtcyAic2VydmVyIGhlbGxvLCBjaG9zZW4gY2lwaGVyc3VpdGU6IFRMUzEtMy1BRVMtMTI4LUdDTS1TSEEyNTYgKCBpZD00ODY1ICkiIFwKQEAgLTEzOTg0LDggKzEzOTg2LDggQEAKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIFBTQV9XQU5UX0FMR19GRkRICiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBQU0FfV0FOVF9ESF9SRkM3OTE5XzMwNzIKIHJ1bl90ZXN0ICJUTFMgMS4zIG0tPkc6IEFFU18xMjhfR0NNX1NIQTI1NixmZmRoZTMwNzIscnNhX3Bzc19yc2FlX3NoYTI1NiIgXAotICAgICAgICAgIiRHX05FWFRfU1JWX05PX0NFUlQgLS1odHRwIC0tZGlzYWJsZS1jbGllbnQtY2VydCAtLWRlYnVnPTQgLS14NTA5Y2VydGZpbGUgZGF0YV9maWxlcy9zZXJ2ZXIyLXNoYTI1Ni5jcnQgLS14NTA5a2V5ZmlsZSBkYXRhX2ZpbGVzL3NlcnZlcjIua2V5IC0tcHJpb3JpdHk9Tk9ORTorQUVTLTEyOC1HQ006K1NIQTI1NjorQUVBRDorU0lHTi1SU0EtUFNTLVJTQUUtU0hBMjU2OitHUk9VUC1GRkRIRTMwNzI6K1ZFUlMtVExTMS4zOiVOT19USUNLRVRTIiBcCi0gICAgICAgICAiJFBfQ0xJIGNhX2ZpbGU9ZGF0YV9maWxlcy90ZXN0LWNhX2NhdDEyLmNydCBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMTI4LUdDTS1TSEEyNTYgc2lnX2FsZ3M9cnNhX3Bzc19yc2FlX3NoYTI1NiBncm91cHM9ZmZkaGUzMDcyIiBcCisgICAgICAgICAiJEdfTkVYVF9TUlZfTk9fQ0VSVCAtLWh0dHAgLS1kaXNhYmxlLWNsaWVudC1jZXJ0IC0tZGVidWc9NCAtLXg1MDljZXJ0ZmlsZSAkREFUQV9GSUxFU19QQVRIL3NlcnZlcjItc2hhMjU2LmNydCAtLXg1MDlrZXlmaWxlICREQVRBX0ZJTEVTX1BBVEgvc2VydmVyMi5rZXkgLS1wcmlvcml0eT1OT05FOitBRVMtMTI4LUdDTTorU0hBMjU2OitBRUFEOitTSUdOLVJTQS1QU1MtUlNBRS1TSEEyNTY6K0dST1VQLUZGREhFMzA3MjorVkVSUy1UTFMxLjM6JU5PX1RJQ0tFVFMiIFwKKyAgICAgICAgICIkUF9DTEkgY2FfZmlsZT0kREFUQV9GSUxFU19QQVRIL3Rlc3QtY2FfY2F0MTIuY3J0IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0xMjgtR0NNLVNIQTI1NiBzaWdfYWxncz1yc2FfcHNzX3JzYWVfc2hhMjU2IGdyb3Vwcz1mZmRoZTMwNzIiIFwKICAgICAgICAgIDAgXAogICAgICAgICAgLWMgIkhUVFAvMS4wIDIwMCBPSyIgXAogICAgICAgICAgLWMgIlByb3RvY29sIGlzIFRMU3YxLjMiIFwKQEAgLTE0MDA2LDggKzE0MDA4LDggQEAKIHJlcXVpcmVzX2dudXRsc19uZXh0X25vX3RpY2tldAogcmVxdWlyZXNfZ251dGxzX25leHRfZGlzYWJsZV90bHMxM19jb21wYXQKIHJ1bl90ZXN0ICJUTFMgMS4zIEctPm06IEFFU18xMjhfR0NNX1NIQTI1NixmZmRoZTQwOTYscnNhX3Bzc19yc2FlX3NoYTI1NiIgXAotICAgICAgICAgIiRQX1NSViBjcnRfZmlsZT1kYXRhX2ZpbGVzL3NlcnZlcjItc2hhMjU2LmNydCBrZXlfZmlsZT1kYXRhX2ZpbGVzL3NlcnZlcjIua2V5IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0xMjgtR0NNLVNIQTI1NiBzaWdfYWxncz1yc2FfcHNzX3JzYWVfc2hhMjU2IGdyb3Vwcz1mZmRoZTQwOTYgdGxzMTNfa2V4X21vZGVzPWVwaGVtZXJhbCBjb29raWVzPTAgdGlja2V0cz0wIiBcCi0gICAgICAgICAiJEdfTkVYVF9DTElfTk9fQ0VSVCAtLWRlYnVnPTQgLS1zaW5nbGUta2V5LXNoYXJlIC0teDUwOWNhZmlsZSBkYXRhX2ZpbGVzL3Rlc3QtY2FfY2F0MTIuY3J0IC0tcHJpb3JpdHk9Tk9ORTorQUVTLTEyOC1HQ006K1NIQTI1NjorQUVBRDorU0lHTi1SU0EtUFNTLVJTQUUtU0hBMjU2OitHUk9VUC1GRkRIRTQwOTY6K1ZFUlMtVExTMS4zOiVOT19USUNLRVRTIiBcCisgICAgICAgICAiJFBfU1JWIGNydF9maWxlPSREQVRBX0ZJTEVTX1BBVEgvc2VydmVyMi1zaGEyNTYuY3J0IGtleV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvc2VydmVyMi5rZXkgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTEyOC1HQ00tU0hBMjU2IHNpZ19hbGdzPXJzYV9wc3NfcnNhZV9zaGEyNTYgZ3JvdXBzPWZmZGhlNDA5NiB0bHMxM19rZXhfbW9kZXM9ZXBoZW1lcmFsIGNvb2tpZXM9MCB0aWNrZXRzPTAiIFwKKyAgICAgICAgICIkR19ORVhUX0NMSV9OT19DRVJUIC0tZGVidWc9NCAtLXNpbmdsZS1rZXktc2hhcmUgLS14NTA5Y2FmaWxlICREQVRBX0ZJTEVTX1BBVEgvdGVzdC1jYV9jYXQxMi5jcnQgLS1wcmlvcml0eT1OT05FOitBRVMtMTI4LUdDTTorU0hBMjU2OitBRUFEOitTSUdOLVJTQS1QU1MtUlNBRS1TSEEyNTY6K0dST1VQLUZGREhFNDA5NjorVkVSUy1UTFMxLjM6JU5PX1RJQ0tFVFMiIFwKICAgICAgICAgIDAgXAogICAgICAgICAgLXMgIlByb3RvY29sIGlzIFRMU3YxLjMiIFwKICAgICAgICAgIC1zICJzZXJ2ZXIgaGVsbG8sIGNob3NlbiBjaXBoZXJzdWl0ZTogVExTMS0zLUFFUy0xMjgtR0NNLVNIQTI1NiAoIGlkPTQ4NjUgKSIgXApAQCAtMTQwMjgsOCArMTQwMzAsOCBAQAogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgUFNBX1dBTlRfQUxHX0ZGREgKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIFBTQV9XQU5UX0RIX1JGQzc5MTlfNDA5NgogcnVuX3Rlc3QgIlRMUyAxLjMgbS0+RzogQUVTXzEyOF9HQ01fU0hBMjU2LGZmZGhlNDA5Nixyc2FfcHNzX3JzYWVfc2hhMjU2IiBcCi0gICAgICAgICAiJEdfTkVYVF9TUlZfTk9fQ0VSVCAtLWh0dHAgLS1kaXNhYmxlLWNsaWVudC1jZXJ0IC0tZGVidWc9NCAtLXg1MDljZXJ0ZmlsZSBkYXRhX2ZpbGVzL3NlcnZlcjItc2hhMjU2LmNydCAtLXg1MDlrZXlmaWxlIGRhdGFfZmlsZXMvc2VydmVyMi5rZXkgLS1wcmlvcml0eT1OT05FOitBRVMtMTI4LUdDTTorU0hBMjU2OitBRUFEOitTSUdOLVJTQS1QU1MtUlNBRS1TSEEyNTY6K0dST1VQLUZGREhFNDA5NjorVkVSUy1UTFMxLjM6JU5PX1RJQ0tFVFMiIFwKLSAgICAgICAgICIkUF9DTEkgY2FfZmlsZT1kYXRhX2ZpbGVzL3Rlc3QtY2FfY2F0MTIuY3J0IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0xMjgtR0NNLVNIQTI1NiBzaWdfYWxncz1yc2FfcHNzX3JzYWVfc2hhMjU2IGdyb3Vwcz1mZmRoZTQwOTYiIFwKKyAgICAgICAgICIkR19ORVhUX1NSVl9OT19DRVJUIC0taHR0cCAtLWRpc2FibGUtY2xpZW50LWNlcnQgLS1kZWJ1Zz00IC0teDUwOWNlcnRmaWxlICREQVRBX0ZJTEVTX1BBVEgvc2VydmVyMi1zaGEyNTYuY3J0IC0teDUwOWtleWZpbGUgJERBVEFfRklMRVNfUEFUSC9zZXJ2ZXIyLmtleSAtLXByaW9yaXR5PU5PTkU6K0FFUy0xMjgtR0NNOitTSEEyNTY6K0FFQUQ6K1NJR04tUlNBLVBTUy1SU0FFLVNIQTI1NjorR1JPVVAtRkZESEU0MDk2OitWRVJTLVRMUzEuMzolTk9fVElDS0VUUyIgXAorICAgICAgICAgIiRQX0NMSSBjYV9maWxlPSREQVRBX0ZJTEVTX1BBVEgvdGVzdC1jYV9jYXQxMi5jcnQgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTEyOC1HQ00tU0hBMjU2IHNpZ19hbGdzPXJzYV9wc3NfcnNhZV9zaGEyNTYgZ3JvdXBzPWZmZGhlNDA5NiIgXAogICAgICAgICAgMCBcCiAgICAgICAgICAtYyAiSFRUUC8xLjAgMjAwIE9LIiBcCiAgICAgICAgICAtYyAiUHJvdG9jb2wgaXMgVExTdjEuMyIgXApAQCAtMTQwNTAsOCArMTQwNTIsOCBAQAogcmVxdWlyZXNfZ251dGxzX25leHRfbm9fdGlja2V0CiByZXF1aXJlc19nbnV0bHNfbmV4dF9kaXNhYmxlX3RsczEzX2NvbXBhdAogcnVuX3Rlc3QgIlRMUyAxLjMgRy0+bTogQUVTXzEyOF9HQ01fU0hBMjU2LGZmZGhlNjE0NCxyc2FfcHNzX3JzYWVfc2hhMjU2IiBcCi0gICAgICAgICAiJFBfU1JWIGNydF9maWxlPWRhdGFfZmlsZXMvc2VydmVyMi1zaGEyNTYuY3J0IGtleV9maWxlPWRhdGFfZmlsZXMvc2VydmVyMi5rZXkgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTEyOC1HQ00tU0hBMjU2IHNpZ19hbGdzPXJzYV9wc3NfcnNhZV9zaGEyNTYgZ3JvdXBzPWZmZGhlNjE0NCB0bHMxM19rZXhfbW9kZXM9ZXBoZW1lcmFsIGNvb2tpZXM9MCB0aWNrZXRzPTAiIFwKLSAgICAgICAgICIkR19ORVhUX0NMSV9OT19DRVJUIC0tZGVidWc9NCAtLXNpbmdsZS1rZXktc2hhcmUgLS14NTA5Y2FmaWxlIGRhdGFfZmlsZXMvdGVzdC1jYV9jYXQxMi5jcnQgLS1wcmlvcml0eT1OT05FOitBRVMtMTI4LUdDTTorU0hBMjU2OitBRUFEOitTSUdOLVJTQS1QU1MtUlNBRS1TSEEyNTY6K0dST1VQLUZGREhFNjE0NDorVkVSUy1UTFMxLjM6JU5PX1RJQ0tFVFMiIFwKKyAgICAgICAgICIkUF9TUlYgY3J0X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9zZXJ2ZXIyLXNoYTI1Ni5jcnQga2V5X2ZpbGU9JERBVEFfRklMRVNfUEFUSC9zZXJ2ZXIyLmtleSBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMTI4LUdDTS1TSEEyNTYgc2lnX2FsZ3M9cnNhX3Bzc19yc2FlX3NoYTI1NiBncm91cHM9ZmZkaGU2MTQ0IHRsczEzX2tleF9tb2Rlcz1lcGhlbWVyYWwgY29va2llcz0wIHRpY2tldHM9MCIgXAorICAgICAgICAgIiRHX05FWFRfQ0xJX05PX0NFUlQgLS1kZWJ1Zz00IC0tc2luZ2xlLWtleS1zaGFyZSAtLXg1MDljYWZpbGUgJERBVEFfRklMRVNfUEFUSC90ZXN0LWNhX2NhdDEyLmNydCAtLXByaW9yaXR5PU5PTkU6K0FFUy0xMjgtR0NNOitTSEEyNTY6K0FFQUQ6K1NJR04tUlNBLVBTUy1SU0FFLVNIQTI1NjorR1JPVVAtRkZESEU2MTQ0OitWRVJTLVRMUzEuMzolTk9fVElDS0VUUyIgXAogICAgICAgICAgMCBcCiAgICAgICAgICAtcyAiUHJvdG9jb2wgaXMgVExTdjEuMyIgXAogICAgICAgICAgLXMgInNlcnZlciBoZWxsbywgY2hvc2VuIGNpcGhlcnN1aXRlOiBUTFMxLTMtQUVTLTEyOC1HQ00tU0hBMjU2ICggaWQ9NDg2NSApIiBcCkBAIC0xNDA3MSw4ICsxNDA3Myw4IEBACiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBQU0FfV0FOVF9BTEdfRkZESAogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgUFNBX1dBTlRfREhfUkZDNzkxOV82MTQ0CiBydW5fdGVzdCAiVExTIDEuMyBtLT5HOiBBRVNfMTI4X0dDTV9TSEEyNTYsZmZkaGU2MTQ0LHJzYV9wc3NfcnNhZV9zaGEyNTYiIFwKLSAgICAgICAgICIkR19ORVhUX1NSVl9OT19DRVJUIC0taHR0cCAtLWRpc2FibGUtY2xpZW50LWNlcnQgLS1kZWJ1Zz00IC0teDUwOWNlcnRmaWxlIGRhdGFfZmlsZXMvc2VydmVyMi1zaGEyNTYuY3J0IC0teDUwOWtleWZpbGUgZGF0YV9maWxlcy9zZXJ2ZXIyLmtleSAtLXByaW9yaXR5PU5PTkU6K0FFUy0xMjgtR0NNOitTSEEyNTY6K0FFQUQ6K1NJR04tUlNBLVBTUy1SU0FFLVNIQTI1NjorR1JPVVAtRkZESEU2MTQ0OitWRVJTLVRMUzEuMzolTk9fVElDS0VUUyIgXAotICAgICAgICAgIiRQX0NMSSBjYV9maWxlPWRhdGFfZmlsZXMvdGVzdC1jYV9jYXQxMi5jcnQgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTEyOC1HQ00tU0hBMjU2IHNpZ19hbGdzPXJzYV9wc3NfcnNhZV9zaGEyNTYgZ3JvdXBzPWZmZGhlNjE0NCIgXAorICAgICAgICAgIiRHX05FWFRfU1JWX05PX0NFUlQgLS1odHRwIC0tZGlzYWJsZS1jbGllbnQtY2VydCAtLWRlYnVnPTQgLS14NTA5Y2VydGZpbGUgJERBVEFfRklMRVNfUEFUSC9zZXJ2ZXIyLXNoYTI1Ni5jcnQgLS14NTA5a2V5ZmlsZSAkREFUQV9GSUxFU19QQVRIL3NlcnZlcjIua2V5IC0tcHJpb3JpdHk9Tk9ORTorQUVTLTEyOC1HQ006K1NIQTI1NjorQUVBRDorU0lHTi1SU0EtUFNTLVJTQUUtU0hBMjU2OitHUk9VUC1GRkRIRTYxNDQ6K1ZFUlMtVExTMS4zOiVOT19USUNLRVRTIiBcCisgICAgICAgICAiJFBfQ0xJIGNhX2ZpbGU9JERBVEFfRklMRVNfUEFUSC90ZXN0LWNhX2NhdDEyLmNydCBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMTI4LUdDTS1TSEEyNTYgc2lnX2FsZ3M9cnNhX3Bzc19yc2FlX3NoYTI1NiBncm91cHM9ZmZkaGU2MTQ0IiBcCiAgICAgICAgICAwIFwKICAgICAgICAgIC1jICJIVFRQLzEuMCAyMDAgT0siIFwKICAgICAgICAgIC1jICJQcm90b2NvbCBpcyBUTFN2MS4zIiBcCkBAIC0xNDA5NCw4ICsxNDA5Niw4IEBACiByZXF1aXJlc19nbnV0bHNfbmV4dF9kaXNhYmxlX3RsczEzX2NvbXBhdAogY2xpZW50X25lZWRzX21vcmVfdGltZSA0CiBydW5fdGVzdCAiVExTIDEuMyBHLT5tOiBBRVNfMTI4X0dDTV9TSEEyNTYsZmZkaGU4MTkyLHJzYV9wc3NfcnNhZV9zaGEyNTYiIFwKLSAgICAgICAgICIkUF9TUlYgY3J0X2ZpbGU9ZGF0YV9maWxlcy9zZXJ2ZXIyLXNoYTI1Ni5jcnQga2V5X2ZpbGU9ZGF0YV9maWxlcy9zZXJ2ZXIyLmtleSBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMTI4LUdDTS1TSEEyNTYgc2lnX2FsZ3M9cnNhX3Bzc19yc2FlX3NoYTI1NiBncm91cHM9ZmZkaGU4MTkyIHRsczEzX2tleF9tb2Rlcz1lcGhlbWVyYWwgY29va2llcz0wIHRpY2tldHM9MCIgXAotICAgICAgICAgIiRHX05FWFRfQ0xJX05PX0NFUlQgLS1kZWJ1Zz00IC0tc2luZ2xlLWtleS1zaGFyZSAtLXg1MDljYWZpbGUgZGF0YV9maWxlcy90ZXN0LWNhX2NhdDEyLmNydCAtLXByaW9yaXR5PU5PTkU6K0FFUy0xMjgtR0NNOitTSEEyNTY6K0FFQUQ6K1NJR04tUlNBLVBTUy1SU0FFLVNIQTI1NjorR1JPVVAtRkZESEU4MTkyOitWRVJTLVRMUzEuMzolTk9fVElDS0VUUyIgXAorICAgICAgICAgIiRQX1NSViBjcnRfZmlsZT0kREFUQV9GSUxFU19QQVRIL3NlcnZlcjItc2hhMjU2LmNydCBrZXlfZmlsZT0kREFUQV9GSUxFU19QQVRIL3NlcnZlcjIua2V5IGRlYnVnX2xldmVsPTQgZm9yY2VfY2lwaGVyc3VpdGU9VExTMS0zLUFFUy0xMjgtR0NNLVNIQTI1NiBzaWdfYWxncz1yc2FfcHNzX3JzYWVfc2hhMjU2IGdyb3Vwcz1mZmRoZTgxOTIgdGxzMTNfa2V4X21vZGVzPWVwaGVtZXJhbCBjb29raWVzPTAgdGlja2V0cz0wIiBcCisgICAgICAgICAiJEdfTkVYVF9DTElfTk9fQ0VSVCAtLWRlYnVnPTQgLS1zaW5nbGUta2V5LXNoYXJlIC0teDUwOWNhZmlsZSAkREFUQV9GSUxFU19QQVRIL3Rlc3QtY2FfY2F0MTIuY3J0IC0tcHJpb3JpdHk9Tk9ORTorQUVTLTEyOC1HQ006K1NIQTI1NjorQUVBRDorU0lHTi1SU0EtUFNTLVJTQUUtU0hBMjU2OitHUk9VUC1GRkRIRTgxOTI6K1ZFUlMtVExTMS4zOiVOT19USUNLRVRTIiBcCiAgICAgICAgICAwIFwKICAgICAgICAgIC1zICJQcm90b2NvbCBpcyBUTFN2MS4zIiBcCiAgICAgICAgICAtcyAic2VydmVyIGhlbGxvLCBjaG9zZW4gY2lwaGVyc3VpdGU6IFRMUzEtMy1BRVMtMTI4LUdDTS1TSEEyNTYgKCBpZD00ODY1ICkiIFwKQEAgLTE0MTE2LDggKzE0MTE4LDggQEAKIHJlcXVpcmVzX2NvbmZpZ19lbmFibGVkIFBTQV9XQU5UX0RIX1JGQzc5MTlfODE5MgogY2xpZW50X25lZWRzX21vcmVfdGltZSA0CiBydW5fdGVzdCAiVExTIDEuMyBtLT5HOiBBRVNfMTI4X0dDTV9TSEEyNTYsZmZkaGU4MTkyLHJzYV9wc3NfcnNhZV9zaGEyNTYiIFwKLSAgICAgICAgICIkR19ORVhUX1NSVl9OT19DRVJUIC0taHR0cCAtLWRpc2FibGUtY2xpZW50LWNlcnQgLS1kZWJ1Zz00IC0teDUwOWNlcnRmaWxlIGRhdGFfZmlsZXMvc2VydmVyMi1zaGEyNTYuY3J0IC0teDUwOWtleWZpbGUgZGF0YV9maWxlcy9zZXJ2ZXIyLmtleSAtLXByaW9yaXR5PU5PTkU6K0FFUy0xMjgtR0NNOitTSEEyNTY6K0FFQUQ6K1NJR04tUlNBLVBTUy1SU0FFLVNIQTI1NjorR1JPVVAtRkZESEU4MTkyOitWRVJTLVRMUzEuMzolTk9fVElDS0VUUyIgXAotICAgICAgICAgIiRQX0NMSSBjYV9maWxlPWRhdGFfZmlsZXMvdGVzdC1jYV9jYXQxMi5jcnQgZGVidWdfbGV2ZWw9NCBmb3JjZV9jaXBoZXJzdWl0ZT1UTFMxLTMtQUVTLTEyOC1HQ00tU0hBMjU2IHNpZ19hbGdzPXJzYV9wc3NfcnNhZV9zaGEyNTYgZ3JvdXBzPWZmZGhlODE5MiIgXAorICAgICAgICAgIiRHX05FWFRfU1JWX05PX0NFUlQgLS1odHRwIC0tZGlzYWJsZS1jbGllbnQtY2VydCAtLWRlYnVnPTQgLS14NTA5Y2VydGZpbGUgJERBVEFfRklMRVNfUEFUSC9zZXJ2ZXIyLXNoYTI1Ni5jcnQgLS14NTA5a2V5ZmlsZSAkREFUQV9GSUxFU19QQVRIL3NlcnZlcjIua2V5IC0tcHJpb3JpdHk9Tk9ORTorQUVTLTEyOC1HQ006K1NIQTI1NjorQUVBRDorU0lHTi1SU0EtUFNTLVJTQUUtU0hBMjU2OitHUk9VUC1GRkRIRTgxOTI6K1ZFUlMtVExTMS4zOiVOT19USUNLRVRTIiBcCisgICAgICAgICAiJFBfQ0xJIGNhX2ZpbGU9JERBVEFfRklMRVNfUEFUSC90ZXN0LWNhX2NhdDEyLmNydCBkZWJ1Z19sZXZlbD00IGZvcmNlX2NpcGhlcnN1aXRlPVRMUzEtMy1BRVMtMTI4LUdDTS1TSEEyNTYgc2lnX2FsZ3M9cnNhX3Bzc19yc2FlX3NoYTI1NiBncm91cHM9ZmZkaGU4MTkyIiBcCiAgICAgICAgICAwIFwKICAgICAgICAgIC1jICJIVFRQLzEuMCAyMDAgT0siIFwKICAgICAgICAgIC1jICJQcm90b2NvbCBpcyBUTFN2MS4zIiBcCkBAIC0xNDE0Niw3ICsxNDE0OCw3IEBACiByZXF1aXJlc19jb25maWdfZW5hYmxlZCBNQkVEVExTX01FTU9SWV9CVUZGRVJfQUxMT0NfQwogcmVxdWlyZXNfY29uZmlnX2VuYWJsZWQgTUJFRFRMU19TU0xfTUFYX0ZSQUdNRU5UX0xFTkdUSAogcmVxdWlyZXNfbWF4X2NvbnRlbnRfbGVuIDE2Mzg0Ci1ydW5fdGVzdHNfbWVtb3J5X2FmdGVyX2hhbnNoYWtlCitydW5fdGVzdHNfbWVtb3J5X2FmdGVyX2hhbmRzaGFrZQogCiBpZiBbICIkTElTVF9URVNUUyIgLWVxIDAgXTsgdGhlbgogCmRpZmYgLS1naXQgYS90ZXN0cy9zdWl0ZXMvbWFpbl90ZXN0LmZ1bmN0aW9uIGIvdGVzdHMvc3VpdGVzL21haW5fdGVzdC5mdW5jdGlvbgppbmRleCBlZjE4OThiLi5mMzI3YTAzIDEwMDY0NAotLS0gYS90ZXN0cy9zdWl0ZXMvbWFpbl90ZXN0LmZ1bmN0aW9uCisrKyBiL3Rlc3RzL3N1aXRlcy9tYWluX3Rlc3QuZnVuY3Rpb24KQEAgLTI0MSw3ICsyNDEsNyBAQAogICAgICAqIHVzaW5nIHRoZSBkZWZhdWx0IGRhdGEgZmlsZS4gVGhpcyBhbGxvd3MgcnVubmluZyB0aGUgZXhlY3V0YWJsZQogICAgICAqIGZyb20gYW5vdGhlciBkaXJlY3RvcnkgKGUuZy4gdGhlIHByb2plY3Qgcm9vdCkgYW5kIHN0aWxsIGFjY2VzcwogICAgICAqIHRoZSAuZGF0YXggZmlsZSBhcyB3ZWxsIGFzIGRhdGEgZmlsZXMgdXNlZCBieSB0ZXN0IGNhc2VzCi0gICAgICogKHR5cGljYWxseSBmcm9tIHRlc3RzL2RhdGFfZmlsZXMpLgorICAgICAqICh0eXBpY2FsbHkgZnJvbSBmcmFtZXdvcmsvZGF0YV9maWxlcykuCiAgICAgICoKICAgICAgKiBOb3RlIHRoYXQgd2UgZG8gdGhpcyBiZWZvcmUgdGhlIHBsYXRmb3JtIHNldHVwICh3aGljaCBtYXkgYWNjZXNzCiAgICAgICogZmlsZXMgc3VjaCBhcyBhIHJhbmRvbSBzZWVkKS4gV2UgYWxzbyBkbyB0aGlzIGJlZm9yZSBhY2Nlc3NpbmcKZGlmZiAtLWdpdCBhL3Rlc3RzL3N1aXRlcy90ZXN0X3N1aXRlX2JpZ251bS5taXNjLmRhdGEgYi90ZXN0cy9zdWl0ZXMvdGVzdF9zdWl0ZV9iaWdudW0ubWlzYy5kYXRhCmluZGV4IGViNTVkYmUuLmMxNmM2ODkgMTAwNjQ0Ci0tLSBhL3Rlc3RzL3N1aXRlcy90ZXN0X3N1aXRlX2JpZ251bS5taXNjLmRhdGEKKysrIGIvdGVzdHMvc3VpdGVzL3Rlc3Rfc3VpdGVfYmlnbnVtLm1pc2MuZGF0YQpAQCAtMTEwLDE5ICsxMTAsMTkgQEAKIG1waV93cml0ZV9iaW5hcnlfbGU6IjEyMzEyMzEyMzEyMzEyMzEyMzEyMzEyMzEyMyI6IjIzMzExMjIzMzExMjIzMzExMjIzMzExMjIzIjoxMzpNQkVEVExTX0VSUl9NUElfQlVGRkVSX1RPT19TTUFMTAogCiBCYXNlIHRlc3QgbWJlZHRsc19tcGlfcmVhZF9maWxlICMxCi1tcGlfcmVhZF9maWxlOiJkYXRhX2ZpbGVzL21waV8xNiI6IjAxZjU1MzMyYzNhNDhiOTEwZjk5NDJmNmM5MTRlNThiZWYzN2E0N2VlNDVjYjE2NGE1YjZiOGQxMDA2YmY1OWEwNTljMjE0NDk5MzllYmViZmRmNTE3ZDJlMWRiYWM4ODAxMGQ3YjFmMTQxZTk5N2JkNjgwMWRkYWVjOWQwNTkxMGY0ZjJkZTJiMmM0ZDcxNGUyYzE0YTcyZmM3ZjE3YWE0MjhkNTljNTMxNjI3ZjA5IjowCittcGlfcmVhZF9maWxlOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9tcGlfMTYiOiIwMWY1NTMzMmMzYTQ4YjkxMGY5OTQyZjZjOTE0ZTU4YmVmMzdhNDdlZTQ1Y2IxNjRhNWI2YjhkMTAwNmJmNTlhMDU5YzIxNDQ5OTM5ZWJlYmZkZjUxN2QyZTFkYmFjODgwMTBkN2IxZjE0MWU5OTdiZDY4MDFkZGFlYzlkMDU5MTBmNGYyZGUyYjJjNGQ3MTRlMmMxNGE3MmZjN2YxN2FhNDI4ZDU5YzUzMTYyN2YwOSI6MAogCiBUZXN0IG1iZWR0bHNfbXBpX3JlYWRfZmlsZSAjMSAoRW1wdHkgZmlsZSkKLW1waV9yZWFkX2ZpbGU6ImRhdGFfZmlsZXMvaGFzaF9maWxlXzQiOiIiOk1CRURUTFNfRVJSX01QSV9GSUxFX0lPX0VSUk9SCittcGlfcmVhZF9maWxlOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9oYXNoX2ZpbGVfNCI6IiI6TUJFRFRMU19FUlJfTVBJX0ZJTEVfSU9fRVJST1IKIAogVGVzdCBtYmVkdGxzX21waV9yZWFkX2ZpbGUgIzIgKElsbGVnYWwgaW5wdXQpCi1tcGlfcmVhZF9maWxlOiJkYXRhX2ZpbGVzL2hhc2hfZmlsZV8yIjoiIjowCittcGlfcmVhZF9maWxlOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9oYXNoX2ZpbGVfMiI6IiI6MAogCiBUZXN0IG1iZWR0bHNfbXBpX3JlYWRfZmlsZSAjMyAoSW5wdXQgdG9vIGJpZykKLW1waV9yZWFkX2ZpbGU6ImRhdGFfZmlsZXMvbXBpX3Rvb19iaWciOiIiOk1CRURUTFNfRVJSX01QSV9CVUZGRVJfVE9PX1NNQUxMCittcGlfcmVhZF9maWxlOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9tcGlfdG9vX2JpZyI6IiI6TUJFRFRMU19FUlJfTVBJX0JVRkZFUl9UT09fU01BTEwKIAogQmFzZSB0ZXN0IG1iZWR0bHNfbXBpX3dyaXRlX2ZpbGUgIzEKLW1waV93cml0ZV9maWxlOiI5NDEzNzlkMDBmZWQxNDkxZmUxNWRmMjg0ZGZkZTRhMTQyZjY4YWE4ZDQxMjAyMzE5NWNlZTY2ODgzZTYyOTBmZmU3MDNmNGVhNTk2M2JmMjEyNzEzY2VlNDZiMTA3YzA5MTgyYjVlZGNkOTU1YWRhYzQxOGJmNDkxOGUyODg5YWY0OGUxMDk5ZDUxMzgzMGNlYzg1YzI2YWMxZTE1OGI1MjYyMGUzM2JhODY5MmY4OTNlZmJiMmY5NThiNDQyNCI6ImRhdGFfZmlsZXMvbXBpX3dyaXRlIgorbXBpX3dyaXRlX2ZpbGU6Ijk0MTM3OWQwMGZlZDE0OTFmZTE1ZGYyODRkZmRlNGExNDJmNjhhYThkNDEyMDIzMTk1Y2VlNjY4ODNlNjI5MGZmZTcwM2Y0ZWE1OTYzYmYyMTI3MTNjZWU0NmIxMDdjMDkxODJiNWVkY2Q5NTVhZGFjNDE4YmY0OTE4ZTI4ODlhZjQ4ZTEwOTlkNTEzODMwY2VjODVjMjZhYzFlMTU4YjUyNjIwZTMzYmE4NjkyZjg5M2VmYmIyZjk1OGI0NDI0IjoiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvbXBpX3dyaXRlIgogCiBUZXN0IG1iZWR0bHNfbXBpX2xzYjogMCAobnVsbCkKIG1waV9sc2I6IiI6MApkaWZmIC0tZ2l0IGEvdGVzdHMvc3VpdGVzL3Rlc3Rfc3VpdGVfY2NtLmRhdGEgYi90ZXN0cy9zdWl0ZXMvdGVzdF9zdWl0ZV9jY20uZGF0YQppbmRleCAyMjE1MGY3Li5lNjgxOGU3IDEwMDY0NAotLS0gYS90ZXN0cy9zdWl0ZXMvdGVzdF9zdWl0ZV9jY20uZGF0YQorKysgYi90ZXN0cy9zdWl0ZXMvdGVzdF9zdWl0ZV9jY20uZGF0YQpAQCAtMzYsNyArMzYsNiBAQAogY2NtX2xlbmd0aHM6NToxMDo1Ojc6TUJFRFRMU19FUlJfQ0NNX0JBRF9JTlBVVAogCiBDQ00gbGVuZ3RocyAjNyBBRCB0b28gbG9uZyAoMl4xNiAtIDJeOCkKLWRlcGVuZHNfb246IU1CRURUTFNfQ0NNX0FMVAogY2NtX2xlbmd0aHM6NToxMDo2NTI4MDo4Ok1CRURUTFNfRVJSX0NDTV9CQURfSU5QVVQKIAogQ0NNIGxlbmd0aHMgIzggbXNnIHRvbyBsb25nIGZvciB0aGlzIElWIGxlbmd0aCAoMl4xNiwgcSA9IDIpCmRpZmYgLS1naXQgYS90ZXN0cy9zdWl0ZXMvdGVzdF9zdWl0ZV9jaXBoZXIuZnVuY3Rpb24gYi90ZXN0cy9zdWl0ZXMvdGVzdF9zdWl0ZV9jaXBoZXIuZnVuY3Rpb24KaW5kZXggYWNhNDE1MC4uOGU0OWQyZCAxMDA2NDQKLS0tIGEvdGVzdHMvc3VpdGVzL3Rlc3Rfc3VpdGVfY2lwaGVyLmZ1bmN0aW9uCisrKyBiL3Rlc3RzL3N1aXRlcy90ZXN0X3N1aXRlX2NpcGhlci5mdW5jdGlvbgpAQCAtNTQ5LDYgKzU0OSwxMCBAQAogICAgIC8qIGVuY29kZSBsZW5ndGggbnVtYmVyIG9mIGJ5dGVzIGZyb20gaW5idWYgKi8KICAgICBURVNUX0FTU0VSVCgwID09IG1iZWR0bHNfY2lwaGVyX3VwZGF0ZSgmY3R4LCBpbmJ1ZiwgbGVuZ3RoLCBlbmNidWYsICZvdXRsZW4pKTsKICAgICBURVNUX0FTU0VSVChyZXQgPT0gbWJlZHRsc19jaXBoZXJfZmluaXNoKCZjdHgsIGVuY2J1ZiArIG91dGxlbiwgJm91dGxlbikpOworICAgIGlmICgwICE9IHJldCkgeworICAgICAgICAvKiBDaGVjayBvdXRwdXQgcGFyYW1ldGVyIGlzIHNldCB0byB0aGUgbGVhc3QtaGFybWZ1bCB2YWx1ZSBvbiBlcnJvciAqLworICAgICAgICBURVNUX0FTU0VSVCgwID09IG91dGxlbik7CisgICAgfQogCiAgICAgLyogZG9uZSAqLwogZXhpdDoKQEAgLTgyNiw2ICs4MzAsMTAgQEAKICAgICB0b3RhbF9sZW4gKz0gb3V0bGVuOwogICAgIFRFU1RfQVNTRVJUKGZpbmlzaF9yZXN1bHQgPT0gbWJlZHRsc19jaXBoZXJfZmluaXNoKCZjdHgsIG91dHB1dCArIG91dGxlbiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmb3V0bGVuKSk7CisgICAgaWYgKDAgIT0gZmluaXNoX3Jlc3VsdCkgeworICAgICAgICAvKiBDaGVjayBvdXRwdXQgcGFyYW1ldGVyIGlzIHNldCB0byB0aGUgbGVhc3QtaGFybWZ1bCB2YWx1ZSBvbiBlcnJvciAqLworICAgICAgICBURVNUX0FTU0VSVCgwID09IG91dGxlbik7CisgICAgfQogICAgIHRvdGFsX2xlbiArPSBvdXRsZW47CiAjaWYgZGVmaW5lZChNQkVEVExTX0dDTV9DKSB8fCBkZWZpbmVkKE1CRURUTFNfQ0hBQ0hBUE9MWV9DKQogICAgIGludCB0YWdfZXhwZWN0ZWQgPSAoY3R4LmNpcGhlcl9pbmZvLT5tb2RlID09IE1CRURUTFNfTU9ERV9HQ00gfHwKZGlmZiAtLWdpdCBhL3Rlc3RzL3N1aXRlcy90ZXN0X3N1aXRlX2NvbmZpZy5jcnlwdG9fY29tYmluYXRpb25zLmRhdGEgYi90ZXN0cy9zdWl0ZXMvdGVzdF9zdWl0ZV9jb25maWcuY3J5cHRvX2NvbWJpbmF0aW9ucy5kYXRhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQzMjg3ZDIKLS0tIC9kZXYvbnVsbAorKysgYi90ZXN0cy9zdWl0ZXMvdGVzdF9zdWl0ZV9jb25maWcuY3J5cHRvX2NvbWJpbmF0aW9ucy5kYXRhCkBAIC0wLDAgKzEsOSBAQAorIyBJbnRlcmVzdGluZyBjb21iaW5hdGlvbnMgb2YgbG93LWxldmVsIGNyeXB0byBvcHRpb25zCisKK0NvbmZpZzogRUNDOiBXZWllcnN0cmFzcyBjdXJ2ZXMgb25seQorZGVwZW5kc19vbjpNQkVEVExTX0VDUF9TSE9SVF9XRUlFUlNUUkFTU19FTkFCTEVEOiFNQkVEVExTX0VDUF9NT05UR09NRVJZX0VOQUJMRUQKK3Bhc3M6CisKK0NvbmZpZzogRUNDOiBNb250Z29tZXJ5IGN1cnZlcyBvbmx5CitkZXBlbmRzX29uOiFNQkVEVExTX0VDUF9TSE9SVF9XRUlFUlNUUkFTU19FTkFCTEVEOk1CRURUTFNfRUNQX01PTlRHT01FUllfRU5BQkxFRAorcGFzczoKZGlmZiAtLWdpdCBhL3Rlc3RzL3N1aXRlcy90ZXN0X3N1aXRlX2NvbmZpZy5mdW5jdGlvbiBiL3Rlc3RzL3N1aXRlcy90ZXN0X3N1aXRlX2NvbmZpZy5mdW5jdGlvbgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45ZTlkZDAxCi0tLSAvZGV2L251bGwKKysrIGIvdGVzdHMvc3VpdGVzL3Rlc3Rfc3VpdGVfY29uZmlnLmZ1bmN0aW9uCkBAIC0wLDAgKzEsMTQgQEAKKy8qIEJFR0lOX0hFQURFUiAqLworCisvKiBFTkRfSEVBREVSICovCisKKy8qIEJFR0lOX0NBU0UgKi8KKy8qIFRoaXMgdGVzdCBjYXNlIGFsd2F5cyBwYXNzZXMuIEl0IGlzIGludGVuZGVkIHNvbGVseSBmb3IgY29uZmlndXJhdGlvbgorICogcmVwb3J0aW5nIGluIHRoZSBvdXRjb21lIGZpbGUuIFdyaXRlIHRlc3QgY2FzZXMgdXNpbmcgdGhpcyBmdW5jdGlvbgorICogd2l0aCBkZXBlbmRlbmNpZXMgdG8gcmVjb3JkIGluIHdoaWNoIGNvbmZpZ3VyYXRpb25zIHRoZSBkZXBlbmRlbmNpZXMKKyAqIGFyZSBtZXQuICovCit2b2lkIHBhc3MoKQoreworICAgIGdvdG8gZXhpdDsKK30KKy8qIEVORF9DQVNFICovCmRpZmYgLS1naXQgYS90ZXN0cy9zdWl0ZXMvdGVzdF9zdWl0ZV9jb25maWcucHNhX2NvbWJpbmF0aW9ucy5kYXRhIGIvdGVzdHMvc3VpdGVzL3Rlc3Rfc3VpdGVfY29uZmlnLnBzYV9jb21iaW5hdGlvbnMuZGF0YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xMDM1YWYyCi0tLSAvZGV2L251bGwKKysrIGIvdGVzdHMvc3VpdGVzL3Rlc3Rfc3VpdGVfY29uZmlnLnBzYV9jb21iaW5hdGlvbnMuZGF0YQpAQCAtMCwwICsxLDkgQEAKKyMgSW50ZXJlc3RpbmcgY29tYmluYXRpb25zIG9mIFBTQSBvcHRpb25zCisKK0NvbmZpZzogUFNBX1dBTlRfQUxHX0VDRFNBIHdpdGhvdXQgUFNBX1dBTlRfQUxHX0RFVEVSTUlOSVNUSUNfRUNEU0EKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX0VDRFNBOiFQU0FfV0FOVF9BTEdfREVURVJNSU5JU1RJQ19FQ0RTQQorcGFzczoKKworQ29uZmlnOiBQU0FfV0FOVF9BTEdfREVURVJNSU5TVElDX0VDRFNBIHdpdGhvdXQgUFNBX1dBTlRfQUxHX0VDRFNBCitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19ERVRFUk1JTklTVElDX0VDRFNBOiFQU0FfV0FOVF9BTEdfRUNEU0EKK3Bhc3M6CmRpZmYgLS1naXQgYS90ZXN0cy9zdWl0ZXMvdGVzdF9zdWl0ZV9jb25maWcudGxzX2NvbWJpbmF0aW9ucy5kYXRhIGIvdGVzdHMvc3VpdGVzL3Rlc3Rfc3VpdGVfY29uZmlnLnRsc19jb21iaW5hdGlvbnMuZGF0YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jYmM1N2Q2Ci0tLSAvZGV2L251bGwKKysrIGIvdGVzdHMvc3VpdGVzL3Rlc3Rfc3VpdGVfY29uZmlnLnRsc19jb21iaW5hdGlvbnMuZGF0YQpAQCAtMCwwICsxLDkgQEAKKyMgSW50ZXJlc3RpbmcgY29tYmluYXRpb25zIG9mIFRMUyBvcHRpb25zCisKK0NvbmZpZzogVExTIDEuMiB3aXRob3V0IFRMUyAxLjMKK2RlcGVuZHNfb246TUJFRFRMU19TU0xfUFJPVE9fVExTMV8yOiFNQkVEVExTX1NTTF9QUk9UT19UTFMxXzMKK3Bhc3M6CisKK0NvbmZpZzogVExTIDEuMyB3aXRob3V0IFRMUyAxLjIKK2RlcGVuZHNfb246TUJFRFRMU19TU0xfUFJPVE9fVExTMV8zOiFNQkVEVExTX1NTTF9QUk9UT19UTFMxXzIKK3Bhc3M6CmRpZmYgLS1naXQgYS90ZXN0cy9zdWl0ZXMvdGVzdF9zdWl0ZV9jb25zdGFudF90aW1lLmZ1bmN0aW9uIGIvdGVzdHMvc3VpdGVzL3Rlc3Rfc3VpdGVfY29uc3RhbnRfdGltZS5mdW5jdGlvbgppbmRleCAzMTI3MzY1Li5iYTg0Mzk3IDEwMDY0NAotLS0gYS90ZXN0cy9zdWl0ZXMvdGVzdF9zdWl0ZV9jb25zdGFudF90aW1lLmZ1bmN0aW9uCisrKyBiL3Rlc3RzL3N1aXRlcy90ZXN0X3N1aXRlX2NvbnN0YW50X3RpbWUuZnVuY3Rpb24KQEAgLTE3MSw3ICsxNzEsNyBAQAogfQogLyogRU5EX0NBU0UgKi8KIAotLyogQkVHSU5fQ0FTRSBkZXBlbmRzX29uOk1CRURUTFNfUEtDUzFfVjE1Ok1CRURUTFNfUlNBX0M6IU1CRURUTFNfUlNBX0FMVCAqLworLyogQkVHSU5fQ0FTRSBkZXBlbmRzX29uOk1CRURUTFNfUEtDUzFfVjE1Ok1CRURUTFNfUlNBX0MgKi8KIHZvaWQgbWJlZHRsc19jdF96ZXJvaXplX2lmKGNoYXIgKmNfc3RyLCBpbnQgbGVuKQogewogICAgIHVpbnQ4X3QgKmJ1ZiA9IE5VTEw7CkBAIC00MzEsNyArNDMxLDcgQEAKIH0KIC8qIEVORF9DQVNFICovCiAKLS8qIEJFR0lOX0NBU0UgZGVwZW5kc19vbjpNQkVEVExTX1BLQ1MxX1YxNTpNQkVEVExTX1JTQV9DOiFNQkVEVExTX1JTQV9BTFQgKi8KKy8qIEJFR0lOX0NBU0UgZGVwZW5kc19vbjpNQkVEVExTX1BLQ1MxX1YxNTpNQkVEVExTX1JTQV9DICovCiB2b2lkIG1iZWR0bHNfY3RfbWVtbW92ZV9sZWZ0KGludCBsZW4sIGludCBvZmZzZXQpCiB7CiAgICAgc2l6ZV90IGwgPSAoc2l6ZV90KSBsZW47CmRpZmYgLS1naXQgYS90ZXN0cy9zdWl0ZXMvdGVzdF9zdWl0ZV9jb25zdGFudF90aW1lX2htYWMuZGF0YSBiL3Rlc3RzL3N1aXRlcy90ZXN0X3N1aXRlX2NvbnN0YW50X3RpbWVfaG1hYy5kYXRhCmluZGV4IDZhMTE4YjguLjYyMWQzY2QgMTAwNjQ0Ci0tLSBhL3Rlc3RzL3N1aXRlcy90ZXN0X3N1aXRlX2NvbnN0YW50X3RpbWVfaG1hYy5kYXRhCisrKyBiL3Rlc3RzL3N1aXRlcy90ZXN0X3N1aXRlX2NvbnN0YW50X3RpbWVfaG1hYy5kYXRhCkBAIC03LDkgKzcsOSBAQAogc3NsX2NmX2htYWM6TUJFRFRMU19NRF9TSEExCiAKIENvbnN0YW50LWZsb3cgSE1BQzogU0hBMjU2Ci1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1Ngogc3NsX2NmX2htYWM6TUJFRFRMU19NRF9TSEEyNTYKIAogQ29uc3RhbnQtZmxvdyBITUFDOiBTSEEzODQKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMzg0CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMzg0CiBzc2xfY2ZfaG1hYzpNQkVEVExTX01EX1NIQTM4NApkaWZmIC0tZ2l0IGEvdGVzdHMvc3VpdGVzL3Rlc3Rfc3VpdGVfY3RyX2RyYmcuZGF0YSBiL3Rlc3RzL3N1aXRlcy90ZXN0X3N1aXRlX2N0cl9kcmJnLmRhdGEKaW5kZXggODlkZmI5Ny4uMTBlOWJkMCAxMDA2NDQKLS0tIGEvdGVzdHMvc3VpdGVzL3Rlc3Rfc3VpdGVfY3RyX2RyYmcuZGF0YQorKysgYi90ZXN0cy9zdWl0ZXMvdGVzdF9zdWl0ZV9jdHJfZHJiZy5kYXRhCkBAIC0xMDg4LDcgKzEwODgsNyBAQAogY3RyX2RyYmdfZW50cm9weV9zdHJlbmd0aDoyNTYKIAogQ1RSX0RSQkcgd3JpdGUvdXBkYXRlIHNlZWQgZmlsZSBbIzFdCi1jdHJfZHJiZ19zZWVkX2ZpbGU6ImRhdGFfZmlsZXMvY3RyX2RyYmdfc2VlZCI6MAorY3RyX2RyYmdfc2VlZF9maWxlOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9jdHJfZHJiZ19zZWVkIjowCiAKIENUUl9EUkJHIHdyaXRlL3VwZGF0ZSBzZWVkIGZpbGUgWyMyXQogY3RyX2RyYmdfc2VlZF9maWxlOiJub19zdWNoX2Rpci9maWxlIjpNQkVEVExTX0VSUl9DVFJfRFJCR19GSUxFX0lPX0VSUk9SCmRpZmYgLS1naXQgYS90ZXN0cy9zdWl0ZXMvdGVzdF9zdWl0ZV9kZWJ1Zy5kYXRhIGIvdGVzdHMvc3VpdGVzL3Rlc3Rfc3VpdGVfZGVidWcuZGF0YQppbmRleCA1MTJhMDRhLi4xYTkwMDc5IDEwMDY0NAotLS0gYS90ZXN0cy9zdWl0ZXMvdGVzdF9zdWl0ZV9kZWJ1Zy5kYXRhCisrKyBiL3Rlc3RzL3N1aXRlcy90ZXN0X3N1aXRlX2RlYnVnLmRhdGEKQEAgLTYwLDggKzYwLDggQEAKIAogRGVidWcgcHJpbnQgY2VydGlmaWNhdGUgIzEgKFJTQSkKIGRlcGVuZHNfb246TUJFRFRMU19QRU1fUEFSU0VfQzpNQkVEVExTX0JBU0U2NF9DOk1CRURUTFNfUlNBX0M6TUJFRFRMU19NRF9DQU5fU0hBMTohTUJFRFRMU19YNTA5X1JFTU9WRV9JTkZPCi1tYmVkdGxzX2RlYnVnX3ByaW50X2NydDoiZGF0YV9maWxlcy9zZXJ2ZXIxLmNydCI6Ik15RmlsZSI6OTk5OiJQUkVGSVhfIjoiTXlGaWxlKDA5OTkpXDogUFJFRklYXyAjMVw6XG5NeUZpbGUoMDk5OSlcOiBjZXJ0LiB2ZXJzaW9uICAgICBcOiAzXG5NeUZpbGUoMDk5OSlcOiBzZXJpYWwgbnVtYmVyICAgICBcOiAwMVxuTXlGaWxlKDA5OTkpXDogaXNzdWVyIG5hbWUgICAgICAgXDogQz1OTCwgTz1Qb2xhclNTTCwgQ049UG9sYXJTU0wgVGVzdCBDQVxuTXlGaWxlKDA5OTkpXDogc3ViamVjdCBuYW1lICAgICAgXDogQz1OTCwgTz1Qb2xhclNTTCwgQ049UG9sYXJTU0wgU2VydmVyIDFcbk15RmlsZSgwOTk5KVw6IGlzc3VlZCAgb24gICAgICAgIFw6IDIwMTktMDItMTAgMTRcOjQ0XDowNlxuTXlGaWxlKDA5OTkpXDogZXhwaXJlcyBvbiAgICAgICAgXDogMjAyOS0wMi0xMCAxNFw6NDRcOjA2XG5NeUZpbGUoMDk5OSlcOiBzaWduZWQgdXNpbmcgICAgICBcOiBSU0Egd2l0aCBTSEExXG5NeUZpbGUoMDk5OSlcOiBSU0Ega2V5IHNpemUgICAgICBcOiAyMDQ4IGJpdHNcbk15RmlsZSgwOTk5KVw6IGJhc2ljIGNvbnN0cmFpbnRzIFw6IENBPWZhbHNlXG5NeUZpbGUoMDk5OSlcOiB2YWx1ZSBvZiAnY3J0LT5yc2EuTicgKDIwNDggYml0cykgaXNcOlxuTXlGaWxlKDA5OTkpXDogIGE5IDAyIDFmIDNkIDQwIDZhIGQ1IDU1IDUzIDhiIGZkIDM2IGVlIDgyIDY1IDJlXG5NeUZpbGUoMDk5OSlcOiAgMTUgNjEgNWUgODkgYmYgYjggZTggNDUgOTAgZGIgZWUgODggMTYgNTIgZDMgZjFcbk15RmlsZSgwOTk5KVw6ICA0MyA1MCA0NyA5NiAxMiA1OSA2NCA4NyA2YiBmZCAyYiBlMCA0NiBmOSA3MyBiZVxuTXlGaWxlKDA5OTkpXDogIGRkIGNmIDkyIGUxIDkxIDViIGVkIDY2IGEwIDZmIDg5IDI5IDc5IDQ1IDgwIGQwXG5NeUZpbGUoMDk5OSlcOiAgODMgNmEgZDUgNDEgNDMgNzcgNWYgMzkgN2MgMDkgMDQgNDcgODIgYjAgNTcgMzlcbk15RmlsZSgwOTk5KVw6ICA3MCBlZCBhMyBlYyAxNSAxOSAxZSBhOCAzMyAwOCA0NyBjMSAwNSA0MiBhOSBmZFxuTXlGaWxlKDA5OTkpXDogIDRjIGMzIGI0IGRmIGRkIDA2IDFmIDRkIDEwIDUxIDQwIDY3IDczIDEzIDBmIDQwXG5NeUZpbGUoMDk5OSlcOiAgZjggNmQgODEgMjUgNWYgMGEgYjEgNTMgYzYgMzAgN2UgMTUgMzkgYWMgZjkgNWFcbk15RmlsZSgwOTk5KVw6ICBlZSA3ZiA5MiA5ZSBhNiAwNSA1YiBlNyAxMyA5NyA4NSBiNSAyMyA5MiBkOSBkNFxuTXlGaWxlKDA5OTkpXDogIDI0IDA2IGQ1IDA5IDI1IDg5IDc1IDA3IGRkIGE2IDFhIDhmIDNmIDA5IDE5IGJlXG5NeUZpbGUoMDk5OSlcOiAgYWQgNjUgMmMgNjQgZWIgOTUgOWIgZGMgZmUgNDEgNWUgMTcgYTYgZGEgNmMgNWJcbk15RmlsZSgwOTk5KVw6ICA2OSBjYyAwMiBiYSAxNCAyYyAxNiAyNCA5YyA0YSBkYyBjZCBkMCBmNyA1MiA2N1xuTXlGaWxlKDA5OTkpXDogIDczIGYxIDJkIGEwIDIzIGZkIDdlIGY0IDMxIGNhIDJkIDcwIGNhIDg5IDBiIDA0XG5NeUZpbGUoMDk5OSlcOiAgZGIgMmUgYTYgNGYgNzAgNmUgOWUgY2UgYmQgNTggODkgZTIgNTMgNTkgOWUgNmVcbk15RmlsZSgwOTk5KVw6ICA1YSA5MiA2NSBlMiA4OCAzZiAwYyA5NCAxOSBhMyBkZCBlNSBlOCA5ZCA5NSAxM1xuTXlGaWxlKDA5OTkpXDogIGVkIDI5IGRiIGFiIDcwIDEyIGRjIDVhIGNhIDZiIDE3IGFiIDUyIDgyIDU0IGIxXG5NeUZpbGUoMDk5OSlcOiB2YWx1ZSBvZiAnY3J0LT5yc2EuRScgKDE3IGJpdHMpIGlzXDpcbk15RmlsZSgwOTk5KVw6ICAwMSAwMCAwMVxuIgorbWJlZHRsc19kZWJ1Z19wcmludF9jcnQ6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3NlcnZlcjEuY3J0IjoiTXlGaWxlIjo5OTk6IlBSRUZJWF8iOiJNeUZpbGUoMDk5OSlcOiBQUkVGSVhfICMxXDpcbk15RmlsZSgwOTk5KVw6IGNlcnQuIHZlcnNpb24gICAgIFw6IDNcbk15RmlsZSgwOTk5KVw6IHNlcmlhbCBudW1iZXIgICAgIFw6IDAxXG5NeUZpbGUoMDk5OSlcOiBpc3N1ZXIgbmFtZSAgICAgICBcOiBDPU5MLCBPPVBvbGFyU1NMLCBDTj1Qb2xhclNTTCBUZXN0IENBXG5NeUZpbGUoMDk5OSlcOiBzdWJqZWN0IG5hbWUgICAgICBcOiBDPU5MLCBPPVBvbGFyU1NMLCBDTj1Qb2xhclNTTCBTZXJ2ZXIgMVxuTXlGaWxlKDA5OTkpXDogaXNzdWVkICBvbiAgICAgICAgXDogMjAxOS0wMi0xMCAxNFw6NDRcOjA2XG5NeUZpbGUoMDk5OSlcOiBleHBpcmVzIG9uICAgICAgICBcOiAyMDI5LTAyLTEwIDE0XDo0NFw6MDZcbk15RmlsZSgwOTk5KVw6IHNpZ25lZCB1c2luZyAgICAgIFw6IFJTQSB3aXRoIFNIQTFcbk15RmlsZSgwOTk5KVw6IFJTQSBrZXkgc2l6ZSAgICAgIFw6IDIwNDggYml0c1xuTXlGaWxlKDA5OTkpXDogYmFzaWMgY29uc3RyYWludHMgXDogQ0E9ZmFsc2Vcbk15RmlsZSgwOTk5KVw6IHZhbHVlIG9mICdjcnQtPnJzYS5OJyAoMjA0OCBiaXRzKSBpc1w6XG5NeUZpbGUoMDk5OSlcOiAgYTkgMDIgMWYgM2QgNDAgNmEgZDUgNTUgNTMgOGIgZmQgMzYgZWUgODIgNjUgMmVcbk15RmlsZSgwOTk5KVw6ICAxNSA2MSA1ZSA4OSBiZiBiOCBlOCA0NSA5MCBkYiBlZSA4OCAxNiA1MiBkMyBmMVxuTXlGaWxlKDA5OTkpXDogIDQzIDUwIDQ3IDk2IDEyIDU5IDY0IDg3IDZiIGZkIDJiIGUwIDQ2IGY5IDczIGJlXG5NeUZpbGUoMDk5OSlcOiAgZGQgY2YgOTIgZTEgOTEgNWIgZWQgNjYgYTAgNmYgODkgMjkgNzkgNDUgODAgZDBcbk15RmlsZSgwOTk5KVw6ICA4MyA2YSBkNSA0MSA0MyA3NyA1ZiAzOSA3YyAwOSAwNCA0NyA4MiBiMCA1NyAzOVxuTXlGaWxlKDA5OTkpXDogIDcwIGVkIGEzIGVjIDE1IDE5IDFlIGE4IDMzIDA4IDQ3IGMxIDA1IDQyIGE5IGZkXG5NeUZpbGUoMDk5OSlcOiAgNGMgYzMgYjQgZGYgZGQgMDYgMWYgNGQgMTAgNTEgNDAgNjcgNzMgMTMgMGYgNDBcbk15RmlsZSgwOTk5KVw6ICBmOCA2ZCA4MSAyNSA1ZiAwYSBiMSA1MyBjNiAzMCA3ZSAxNSAzOSBhYyBmOSA1YVxuTXlGaWxlKDA5OTkpXDogIGVlIDdmIDkyIDllIGE2IDA1IDViIGU3IDEzIDk3IDg1IGI1IDIzIDkyIGQ5IGQ0XG5NeUZpbGUoMDk5OSlcOiAgMjQgMDYgZDUgMDkgMjUgODkgNzUgMDcgZGQgYTYgMWEgOGYgM2YgMDkgMTkgYmVcbk15RmlsZSgwOTk5KVw6ICBhZCA2NSAyYyA2NCBlYiA5NSA5YiBkYyBmZSA0MSA1ZSAxNyBhNiBkYSA2YyA1YlxuTXlGaWxlKDA5OTkpXDogIDY5IGNjIDAyIGJhIDE0IDJjIDE2IDI0IDljIDRhIGRjIGNkIGQwIGY3IDUyIDY3XG5NeUZpbGUoMDk5OSlcOiAgNzMgZjEgMmQgYTAgMjMgZmQgN2UgZjQgMzEgY2EgMmQgNzAgY2EgODkgMGIgMDRcbk15RmlsZSgwOTk5KVw6ICBkYiAyZSBhNiA0ZiA3MCA2ZSA5ZSBjZSBiZCA1OCA4OSBlMiA1MyA1OSA5ZSA2ZVxuTXlGaWxlKDA5OTkpXDogIDVhIDkyIDY1IGUyIDg4IDNmIDBjIDk0IDE5IGEzIGRkIGU1IGU4IDlkIDk1IDEzXG5NeUZpbGUoMDk5OSlcOiAgZWQgMjkgZGIgYWIgNzAgMTIgZGMgNWEgY2EgNmIgMTcgYWIgNTIgODIgNTQgYjFcbk15RmlsZSgwOTk5KVw6IHZhbHVlIG9mICdjcnQtPnJzYS5FJyAoMTcgYml0cykgaXNcOlxuTXlGaWxlKDA5OTkpXDogIDAxIDAwIDAxXG4iCiAKIERlYnVnIHByaW50IGNlcnRpZmljYXRlICMyIChFQykKLWRlcGVuZHNfb246TUJFRFRMU19QRU1fUEFSU0VfQzpNQkVEVExTX0JBU0U2NF9DOk1CRURUTFNfUEtfQ0FOX0VDRFNBX1NPTUU6TUJFRFRMU19QS19IQVZFX0VDQ19LRVlTOk1CRURUTFNfRUNQX0hBVkVfU0VDUDM4NFIxOk1CRURUTFNfTURfQ0FOX1NIQTI1NjohTUJFRFRMU19YNTA5X1JFTU9WRV9JTkZPCi1tYmVkdGxzX2RlYnVnX3ByaW50X2NydDoiZGF0YV9maWxlcy90ZXN0LWNhMi5jcnQiOiJNeUZpbGUiOjk5OToiUFJFRklYXyI6Ik15RmlsZSgwOTk5KVw6IFBSRUZJWF8gIzFcOlxuTXlGaWxlKDA5OTkpXDogY2VydC4gdmVyc2lvbiAgICAgXDogM1xuTXlGaWxlKDA5OTkpXDogc2VyaWFsIG51bWJlciAgICAgXDogQzFcOjQzXDpFMlw6N0VcOjYyXDo0M1w6Q0NcOkU4XG5NeUZpbGUoMDk5OSlcOiBpc3N1ZXIgbmFtZSAgICAgICBcOiBDPU5MLCBPPVBvbGFyU1NMLCBDTj1Qb2xhcnNzbCBUZXN0IEVDIENBXG5NeUZpbGUoMDk5OSlcOiBzdWJqZWN0IG5hbWUgICAgICBcOiBDPU5MLCBPPVBvbGFyU1NMLCBDTj1Qb2xhcnNzbCBUZXN0IEVDIENBXG5NeUZpbGUoMDk5OSlcOiBpc3N1ZWQgIG9uICAgICAgICBcOiAyMDE5LTAyLTEwIDE0XDo0NFw6MDBcbk15RmlsZSgwOTk5KVw6IGV4cGlyZXMgb24gICAgICAgIFw6IDIwMjktMDItMTAgMTRcOjQ0XDowMFxuTXlGaWxlKDA5OTkpXDogc2lnbmVkIHVzaW5nICAgICAgXDogRUNEU0Egd2l0aCBTSEEyNTZcbk15RmlsZSgwOTk5KVw6IEVDIGtleSBzaXplICAgICAgIFw6IDM4NCBiaXRzXG5NeUZpbGUoMDk5OSlcOiBiYXNpYyBjb25zdHJhaW50cyBcOiBDQT10cnVlXG5NeUZpbGUoMDk5OSlcOiB2YWx1ZSBvZiAnY3J0LT5lY2tleS5RKFgpJyAoMzg0IGJpdHMpIGlzXDpcbk15RmlsZSgwOTk5KVw6ICBjMyBkYSAyYiAzNCA0MSAzNyA1OCAyZiA4NyA1NiBmZSBmYyA4OSBiYSAyOSA0M1xuTXlGaWxlKDA5OTkpXDogIDRiIDRlIGUwIDZlIGMzIDBlIDU3IDUzIDMzIDM5IDU4IGQ0IDUyIGI0IDkxIDk1XG5NeUZpbGUoMDk5OSlcOiAgMzkgMGIgMjMgZGYgNWYgMTcgMjQgNjIgNDggZmMgMWEgOTUgMjkgY2UgMmMgMmRcbk15RmlsZSgwOTk5KVw6IHZhbHVlIG9mICdjcnQtPmVja2V5LlEoWSknICgzODQgYml0cykgaXNcOlxuTXlGaWxlKDA5OTkpXDogIDg3IGMyIDg4IDUyIDgwIGFmIGQ2IDZhIGFiIDIxIGRkIGI4IGQzIDFjIDZlIDU4XG5NeUZpbGUoMDk5OSlcOiAgYjggY2EgZTggYjIgNjkgOGUgZjMgNDEgYWQgMjkgYzMgYjQgNWYgNzUgYTcgNDdcbk15RmlsZSgwOTk5KVw6ICA2ZiBkNSAxOSAyOSA1NSA2OSA5YSA1MyAzYiAyMCBiNCA2NiAxNiA2MCAzMyAxZVxuIgorZGVwZW5kc19vbjpNQkVEVExTX1BFTV9QQVJTRV9DOk1CRURUTFNfQkFTRTY0X0M6TUJFRFRMU19QS19DQU5fRUNEU0FfU09NRTpNQkVEVExTX1BLX0hBVkVfRUNDX0tFWVM6TUJFRFRMU19FQ1BfSEFWRV9TRUNQMzg0UjE6UFNBX1dBTlRfQUxHX1NIQV8yNTY6IU1CRURUTFNfWDUwOV9SRU1PVkVfSU5GTworbWJlZHRsc19kZWJ1Z19wcmludF9jcnQ6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3Rlc3QtY2EyLmNydCI6Ik15RmlsZSI6OTk5OiJQUkVGSVhfIjoiTXlGaWxlKDA5OTkpXDogUFJFRklYXyAjMVw6XG5NeUZpbGUoMDk5OSlcOiBjZXJ0LiB2ZXJzaW9uICAgICBcOiAzXG5NeUZpbGUoMDk5OSlcOiBzZXJpYWwgbnVtYmVyICAgICBcOiBDMVw6NDNcOkUyXDo3RVw6NjJcOjQzXDpDQ1w6RThcbk15RmlsZSgwOTk5KVw6IGlzc3VlciBuYW1lICAgICAgIFw6IEM9TkwsIE89UG9sYXJTU0wsIENOPVBvbGFyc3NsIFRlc3QgRUMgQ0Fcbk15RmlsZSgwOTk5KVw6IHN1YmplY3QgbmFtZSAgICAgIFw6IEM9TkwsIE89UG9sYXJTU0wsIENOPVBvbGFyc3NsIFRlc3QgRUMgQ0Fcbk15RmlsZSgwOTk5KVw6IGlzc3VlZCAgb24gICAgICAgIFw6IDIwMTktMDItMTAgMTRcOjQ0XDowMFxuTXlGaWxlKDA5OTkpXDogZXhwaXJlcyBvbiAgICAgICAgXDogMjAyOS0wMi0xMCAxNFw6NDRcOjAwXG5NeUZpbGUoMDk5OSlcOiBzaWduZWQgdXNpbmcgICAgICBcOiBFQ0RTQSB3aXRoIFNIQTI1NlxuTXlGaWxlKDA5OTkpXDogRUMga2V5IHNpemUgICAgICAgXDogMzg0IGJpdHNcbk15RmlsZSgwOTk5KVw6IGJhc2ljIGNvbnN0cmFpbnRzIFw6IENBPXRydWVcbk15RmlsZSgwOTk5KVw6IHZhbHVlIG9mICdjcnQtPmVja2V5LlEoWCknICgzODQgYml0cykgaXNcOlxuTXlGaWxlKDA5OTkpXDogIGMzIGRhIDJiIDM0IDQxIDM3IDU4IDJmIDg3IDU2IGZlIGZjIDg5IGJhIDI5IDQzXG5NeUZpbGUoMDk5OSlcOiAgNGIgNGUgZTAgNmUgYzMgMGUgNTcgNTMgMzMgMzkgNTggZDQgNTIgYjQgOTEgOTVcbk15RmlsZSgwOTk5KVw6ICAzOSAwYiAyMyBkZiA1ZiAxNyAyNCA2MiA0OCBmYyAxYSA5NSAyOSBjZSAyYyAyZFxuTXlGaWxlKDA5OTkpXDogdmFsdWUgb2YgJ2NydC0+ZWNrZXkuUShZKScgKDM4NCBiaXRzKSBpc1w6XG5NeUZpbGUoMDk5OSlcOiAgODcgYzIgODggNTIgODAgYWYgZDYgNmEgYWIgMjEgZGQgYjggZDMgMWMgNmUgNThcbk15RmlsZSgwOTk5KVw6ICBiOCBjYSBlOCBiMiA2OSA4ZSBmMyA0MSBhZCAyOSBjMyBiNCA1ZiA3NSBhNyA0N1xuTXlGaWxlKDA5OTkpXDogIDZmIGQ1IDE5IDI5IDU1IDY5IDlhIDUzIDNiIDIwIGI0IDY2IDE2IDYwIDMzIDFlXG4iCmRpZmYgLS1naXQgYS90ZXN0cy9zdWl0ZXMvdGVzdF9zdWl0ZV9kZWJ1Zy5mdW5jdGlvbiBiL3Rlc3RzL3N1aXRlcy90ZXN0X3N1aXRlX2RlYnVnLmZ1bmN0aW9uCmluZGV4IDcwZTdiYWQuLjVjZDAyYjkgMTAwNjQ0Ci0tLSBhL3Rlc3RzL3N1aXRlcy90ZXN0X3N1aXRlX2RlYnVnLmZ1bmN0aW9uCisrKyBiL3Rlc3RzL3N1aXRlcy90ZXN0X3N1aXRlX2RlYnVnLmZ1bmN0aW9uCkBAIC01OSwxMCArNTksOSBAQAogICAgIG1iZWR0bHNfc3NsX2NvbmZpZyBjb25mOwogICAgIHN0cnVjdCBidWZmZXJfZGF0YSBidWZmZXI7CiAKLSAgICBNRF9QU0FfSU5JVCgpOwotCiAgICAgbWJlZHRsc19zc2xfaW5pdCgmc3NsKTsKICAgICBtYmVkdGxzX3NzbF9jb25maWdfaW5pdCgmY29uZik7CisgICAgTURfT1JfVVNFX1BTQV9JTklUKCk7CiAgICAgbWVtc2V0KGJ1ZmZlci5idWYsIDAsIDIwMDApOwogICAgIGJ1ZmZlci5wdHIgPSBidWZmZXIuYnVmOwogCkBAIC04Niw3ICs4NSw3IEBACiBleGl0OgogICAgIG1iZWR0bHNfc3NsX2ZyZWUoJnNzbCk7CiAgICAgbWJlZHRsc19zc2xfY29uZmlnX2ZyZWUoJmNvbmYpOwotICAgIE1EX1BTQV9ET05FKCk7CisgICAgTURfT1JfVVNFX1BTQV9ET05FKCk7CiB9CiAvKiBFTkRfQ0FTRSAqLwogCkBAIC05OCwxMCArOTcsOSBAQAogICAgIG1iZWR0bHNfc3NsX2NvbmZpZyBjb25mOwogICAgIHN0cnVjdCBidWZmZXJfZGF0YSBidWZmZXI7CiAKLSAgICBNRF9QU0FfSU5JVCgpOwotCiAgICAgbWJlZHRsc19zc2xfaW5pdCgmc3NsKTsKICAgICBtYmVkdGxzX3NzbF9jb25maWdfaW5pdCgmY29uZik7CisgICAgTURfT1JfVVNFX1BTQV9JTklUKCk7CiAgICAgbWVtc2V0KGJ1ZmZlci5idWYsIDAsIDIwMDApOwogICAgIGJ1ZmZlci5wdHIgPSBidWZmZXIuYnVmOwogCkBAIC0xMjIsNyArMTIwLDcgQEAKIGV4aXQ6CiAgICAgbWJlZHRsc19zc2xfZnJlZSgmc3NsKTsKICAgICBtYmVkdGxzX3NzbF9jb25maWdfZnJlZSgmY29uZik7Ci0gICAgTURfUFNBX0RPTkUoKTsKKyAgICBNRF9PUl9VU0VfUFNBX0RPTkUoKTsKIH0KIC8qIEVORF9DQVNFICovCiAKQEAgLTEzNCwxMCArMTMyLDkgQEAKICAgICBtYmVkdGxzX3NzbF9jb25maWcgY29uZjsKICAgICBzdHJ1Y3QgYnVmZmVyX2RhdGEgYnVmZmVyOwogCi0gICAgTURfUFNBX0lOSVQoKTsKLQogICAgIG1iZWR0bHNfc3NsX2luaXQoJnNzbCk7CiAgICAgbWJlZHRsc19zc2xfY29uZmlnX2luaXQoJmNvbmYpOworICAgIE1EX09SX1VTRV9QU0FfSU5JVCgpOwogICAgIG1lbXNldChidWZmZXIuYnVmLCAwLCAyMDAwKTsKICAgICBidWZmZXIucHRyID0gYnVmZmVyLmJ1ZjsKIApAQCAtMTU4LDcgKzE1NSw3IEBACiBleGl0OgogICAgIG1iZWR0bHNfc3NsX2ZyZWUoJnNzbCk7CiAgICAgbWJlZHRsc19zc2xfY29uZmlnX2ZyZWUoJmNvbmYpOwotICAgIE1EX1BTQV9ET05FKCk7CisgICAgTURfT1JfVVNFX1BTQV9ET05FKCk7CiB9CiAvKiBFTkRfQ0FTRSAqLwogCkBAIC0yMTEsMTEgKzIwOCwxMCBAQAogICAgIHN0cnVjdCBidWZmZXJfZGF0YSBidWZmZXI7CiAgICAgbWJlZHRsc19tcGkgdmFsOwogCi0gICAgTURfUFNBX0lOSVQoKTsKLQogICAgIG1iZWR0bHNfc3NsX2luaXQoJnNzbCk7CiAgICAgbWJlZHRsc19zc2xfY29uZmlnX2luaXQoJmNvbmYpOwogICAgIG1iZWR0bHNfbXBpX2luaXQoJnZhbCk7CisgICAgTURfT1JfVVNFX1BTQV9JTklUKCk7CiAgICAgbWVtc2V0KGJ1ZmZlci5idWYsIDAsIDIwMDApOwogICAgIGJ1ZmZlci5wdHIgPSBidWZmZXIuYnVmOwogCkBAIC0yMzksNiArMjM1LDYgQEAKICAgICBtYmVkdGxzX21waV9mcmVlKCZ2YWwpOwogICAgIG1iZWR0bHNfc3NsX2ZyZWUoJnNzbCk7CiAgICAgbWJlZHRsc19zc2xfY29uZmlnX2ZyZWUoJmNvbmYpOwotICAgIE1EX1BTQV9ET05FKCk7CisgICAgTURfT1JfVVNFX1BTQV9ET05FKCk7CiB9CiAvKiBFTkRfQ0FTRSAqLwpkaWZmIC0tZ2l0IGEvdGVzdHMvc3VpdGVzL3Rlc3Rfc3VpdGVfZGhtLmRhdGEgYi90ZXN0cy9zdWl0ZXMvdGVzdF9zdWl0ZV9kaG0uZGF0YQppbmRleCAyYWI1YzQzLi40ZTZiMjNiIDEwMDY0NAotLS0gYS90ZXN0cy9zdWl0ZXMvdGVzdF9zdWl0ZV9kaG0uZGF0YQorKysgYi90ZXN0cy9zdWl0ZXMvdGVzdF9zdWl0ZV9kaG0uZGF0YQpAQCAtMTExLDE0ICsxMTEsMTQgQEAKIAogREggbG9hZCBwYXJhbWV0ZXJzIGZyb20gUEVNIGZpbGUgKDEwMjQtYml0LCBnPTIpCiBkZXBlbmRzX29uOk1CRURUTFNfUEVNX1BBUlNFX0MKLWRobV9maWxlOiJkYXRhX2ZpbGVzL2RocGFyYW1zLnBlbSI6IjllMzVmNDMwNDQzYTA5OTA0ZjNhMzlhOTc5Nzk3ZDA3MGRmNTMzNzhlNzljMjQzOGJlZjRlNzYxZjNjNzE0NTUzMzI4NTg5YjA0MWM4MDliZTFkNmM2YjVmMWZjOWY0N2QzYTI1NDQzMTg4MjUzYTk5MmE1NjgxOGIzN2JhOWRlNWE0MGQzNjJlNTZlZmYwYmU1NDE3NDc0YzEyNWMxOTkyNzJjOGZlNDFkZWE3MzNkZjZmNjYyYzkyYWU3NjU1NmU3NTVkMTBjNjRlNmE1MDk2OGY2N2ZjNmVhNzNkMGRjYTg1NjliZTJiYTIwNGUyMzU4MGQ4YmNhMmY0OTc1YjMiOiIwMiI6MTI4CitkaG1fZmlsZToiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvZGhwYXJhbXMucGVtIjoiOWUzNWY0MzA0NDNhMDk5MDRmM2EzOWE5Nzk3OTdkMDcwZGY1MzM3OGU3OWMyNDM4YmVmNGU3NjFmM2M3MTQ1NTMzMjg1ODliMDQxYzgwOWJlMWQ2YzZiNWYxZmM5ZjQ3ZDNhMjU0NDMxODgyNTNhOTkyYTU2ODE4YjM3YmE5ZGU1YTQwZDM2MmU1NmVmZjBiZTU0MTc0NzRjMTI1YzE5OTI3MmM4ZmU0MWRlYTczM2RmNmY2NjJjOTJhZTc2NTU2ZTc1NWQxMGM2NGU2YTUwOTY4ZjY3ZmM2ZWE3M2QwZGNhODU2OWJlMmJhMjA0ZTIzNTgwZDhiY2EyZjQ5NzViMyI6IjAyIjoxMjgKIAogREggbG9hZCBwYXJhbWV0ZXJzIGZyb20gUEVNIGZpbGUgKDIwNDgtYml0LCBsYXJnZSBnLCBwcml2YXRlVmFsdWVMZW5ndGgpCiBkZXBlbmRzX29uOk1CRURUTFNfUEVNX1BBUlNFX0MKLWRobV9maWxlOiJkYXRhX2ZpbGVzL2RoLm9wdGxlbi5wZW0iOiJiMzEyNmFlYWY0NzE1M2M3ZDY3ZjQwMzAzMGIyOTJiNWJkNWE2YzllYWUxYzEzN2FmMzQwODdmY2UyYTM2YTU3OGQ3MGM1YzU2MGFkMmJkYjkyNGM0YTRkYmVlMjBhMTY3MWJlNzEwM2NlODdkZWZhNzY5MDg5MzY4MDNkYmVjYTYwYzMzZTEyODljMWEwM2FjMmM2YzRlNDk0MDVlNTkwMmZhMDU5NmExY2JhYTg5NWNjNDAyZDUyMTNlZDRhNWYxZjViYThiNWUxZWQzZGE5NTFhNGM0NzVhZmViMGNhNjYwYjczNjhjMzhjOGU4MDlmMzgyZDk2YWUxOWU2MGRjOTg0ZTYxY2I0MmI1ZGZkNzIzMzIyYWNmMzI3ZjllNDEzY2RhNjQwMGMxNWM1YjJlYTFmYTM0NDA1ZDgzOTgyZmJhNDBlNmQ4NTJkYTNkOTEwMTliZjIzNTExMzE0MjU0ZGMyMTFhOTA4MzNlNWIxNzk4ZWU1MmE3ODE5OGM1NTU2NDQ3MjlhZDkyZjA2MDM2N2M3NGRlZDM3NzA0YWRmYzI3M2E0YTMzZmVjODIxYmQyZWJkM2JjMDUxNzMwZTk3YTRkZDE0ZDJiNzY2MDYyNTkyZjVlZWMwOWQxNmJiNTBlZmViZjJjYzAwZGQzZTBlMzQxOGU2MGVjODQ4NzBmNyI6IjgwMGFiZmU3ZGM2NjdhYTE3YmNkN2MwNDYxNGJjMjIxYTY1NDgyY2NjMDRiNjA0NjAyYjBlMTMxOTA4YTkzOGVhMTFiNDhkYzUxNWRhYjdhYmNiYjFlMGM3ZmQ2NjUxMWVkYzBkODY1NTFiNzYzMjQ5NmUwM2RmOTQzNTdlMWM0ZWEwN2E3Y2UxZTM4MWEyZmNhZmRmZjVmNWJmMDBkZjgyODgwNjAyMGU4NzVjMDA5MjZlNGQwMTFmODg0NzdhMWIwMTkyN2Q3MzgxM2NhZDQ4NDdjNjM5NmI5MjQ0NjIxYmUyYjAwYjYzYzY1OTI1MzMxODQxMzQ0M2NkMjQ0MjE1Y2Q3ZmQ0Y2JlNzk2ZTgyYzZjZjcwZjg5Y2MwYzUyOGZiOGUzNDQ4MDliMzE4NzZlN2VmNzM5ZDUxNjBkMDk1Yzk2ODQxODhiMGM4NzU1YzdhNDY4ZDQ3ZjU2ZDZkYjllYTAxMjkyNGVjYjA1NTZmYjcxMzEyYThkN2M5M2JiMjg5OGVhMDhlZTU0ZWViNTk0NTQ4Mjg1ZjA2YTk3M2NiYmUyYTBjYjAyZTkwZjMyM2ZlMDQ1NTIxZjM0YzY4MzU0YTZkM2U5NWRiZmZmMWViNjQ2OTJlZGMwYTQ0ZjNkM2U0MDhkMGU0NzlhNTQxZTc3OWE2MDU0MjU5ZTJkODU0IjoyNTYKK2RobV9maWxlOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9kaC5vcHRsZW4ucGVtIjoiYjMxMjZhZWFmNDcxNTNjN2Q2N2Y0MDMwMzBiMjkyYjViZDVhNmM5ZWFlMWMxMzdhZjM0MDg3ZmNlMmEzNmE1NzhkNzBjNWM1NjBhZDJiZGI5MjRjNGE0ZGJlZTIwYTE2NzFiZTcxMDNjZTg3ZGVmYTc2OTA4OTM2ODAzZGJlY2E2MGMzM2UxMjg5YzFhMDNhYzJjNmM0ZTQ5NDA1ZTU5MDJmYTA1OTZhMWNiYWE4OTVjYzQwMmQ1MjEzZWQ0YTVmMWY1YmE4YjVlMWVkM2RhOTUxYTRjNDc1YWZlYjBjYTY2MGI3MzY4YzM4YzhlODA5ZjM4MmQ5NmFlMTllNjBkYzk4NGU2MWNiNDJiNWRmZDcyMzMyMmFjZjMyN2Y5ZTQxM2NkYTY0MDBjMTVjNWIyZWExZmEzNDQwNWQ4Mzk4MmZiYTQwZTZkODUyZGEzZDkxMDE5YmYyMzUxMTMxNDI1NGRjMjExYTkwODMzZTViMTc5OGVlNTJhNzgxOThjNTU1NjQ0NzI5YWQ5MmYwNjAzNjdjNzRkZWQzNzcwNGFkZmMyNzNhNGEzM2ZlYzgyMWJkMmViZDNiYzA1MTczMGU5N2E0ZGQxNGQyYjc2NjA2MjU5MmY1ZWVjMDlkMTZiYjUwZWZlYmYyY2MwMGRkM2UwZTM0MThlNjBlYzg0ODcwZjciOiI4MDBhYmZlN2RjNjY3YWExN2JjZDdjMDQ2MTRiYzIyMWE2NTQ4MmNjYzA0YjYwNDYwMmIwZTEzMTkwOGE5MzhlYTExYjQ4ZGM1MTVkYWI3YWJjYmIxZTBjN2ZkNjY1MTFlZGMwZDg2NTUxYjc2MzI0OTZlMDNkZjk0MzU3ZTFjNGVhMDdhN2NlMWUzODFhMmZjYWZkZmY1ZjViZjAwZGY4Mjg4MDYwMjBlODc1YzAwOTI2ZTRkMDExZjg4NDc3YTFiMDE5MjdkNzM4MTNjYWQ0ODQ3YzYzOTZiOTI0NDYyMWJlMmIwMGI2M2M2NTkyNTMzMTg0MTM0NDNjZDI0NDIxNWNkN2ZkNGNiZTc5NmU4MmM2Y2Y3MGY4OWNjMGM1MjhmYjhlMzQ0ODA5YjMxODc2ZTdlZjczOWQ1MTYwZDA5NWM5Njg0MTg4YjBjODc1NWM3YTQ2OGQ0N2Y1NmQ2ZGI5ZWEwMTI5MjRlY2IwNTU2ZmI3MTMxMmE4ZDdjOTNiYjI4OThlYTA4ZWU1NGVlYjU5NDU0ODI4NWYwNmE5NzNjYmJlMmEwY2IwMmU5MGYzMjNmZTA0NTUyMWYzNGM2ODM1NGE2ZDNlOTVkYmZmZjFlYjY0NjkyZWRjMGE0NGYzZDNlNDA4ZDBlNDc5YTU0MWU3NzlhNjA1NDI1OWUyZDg1NCI6MjU2CiAKIERIIGxvYWQgcGFyYW1ldGVycyBmcm9tIERFUiBmaWxlICgyMDQ4LWJpdCwgbGFyZ2UgZywgcHJpdmF0ZVZhbHVlTGVuZ3RoKQotZGhtX2ZpbGU6ImRhdGFfZmlsZXMvZGgub3B0bGVuLmRlciI6ImIzMTI2YWVhZjQ3MTUzYzdkNjdmNDAzMDMwYjI5MmI1YmQ1YTZjOWVhZTFjMTM3YWYzNDA4N2ZjZTJhMzZhNTc4ZDcwYzVjNTYwYWQyYmRiOTI0YzRhNGRiZWUyMGExNjcxYmU3MTAzY2U4N2RlZmE3NjkwODkzNjgwM2RiZWNhNjBjMzNlMTI4OWMxYTAzYWMyYzZjNGU0OTQwNWU1OTAyZmEwNTk2YTFjYmFhODk1Y2M0MDJkNTIxM2VkNGE1ZjFmNWJhOGI1ZTFlZDNkYTk1MWE0YzQ3NWFmZWIwY2E2NjBiNzM2OGMzOGM4ZTgwOWYzODJkOTZhZTE5ZTYwZGM5ODRlNjFjYjQyYjVkZmQ3MjMzMjJhY2YzMjdmOWU0MTNjZGE2NDAwYzE1YzViMmVhMWZhMzQ0MDVkODM5ODJmYmE0MGU2ZDg1MmRhM2Q5MTAxOWJmMjM1MTEzMTQyNTRkYzIxMWE5MDgzM2U1YjE3OThlZTUyYTc4MTk4YzU1NTY0NDcyOWFkOTJmMDYwMzY3Yzc0ZGVkMzc3MDRhZGZjMjczYTRhMzNmZWM4MjFiZDJlYmQzYmMwNTE3MzBlOTdhNGRkMTRkMmI3NjYwNjI1OTJmNWVlYzA5ZDE2YmI1MGVmZWJmMmNjMDBkZDNlMGUzNDE4ZTYwZWM4NDg3MGY3IjoiODAwYWJmZTdkYzY2N2FhMTdiY2Q3YzA0NjE0YmMyMjFhNjU0ODJjY2MwNGI2MDQ2MDJiMGUxMzE5MDhhOTM4ZWExMWI0OGRjNTE1ZGFiN2FiY2JiMWUwYzdmZDY2NTExZWRjMGQ4NjU1MWI3NjMyNDk2ZTAzZGY5NDM1N2UxYzRlYTA3YTdjZTFlMzgxYTJmY2FmZGZmNWY1YmYwMGRmODI4ODA2MDIwZTg3NWMwMDkyNmU0ZDAxMWY4ODQ3N2ExYjAxOTI3ZDczODEzY2FkNDg0N2M2Mzk2YjkyNDQ2MjFiZTJiMDBiNjNjNjU5MjUzMzE4NDEzNDQzY2QyNDQyMTVjZDdmZDRjYmU3OTZlODJjNmNmNzBmODljYzBjNTI4ZmI4ZTM0NDgwOWIzMTg3NmU3ZWY3MzlkNTE2MGQwOTVjOTY4NDE4OGIwYzg3NTVjN2E0NjhkNDdmNTZkNmRiOWVhMDEyOTI0ZWNiMDU1NmZiNzEzMTJhOGQ3YzkzYmIyODk4ZWEwOGVlNTRlZWI1OTQ1NDgyODVmMDZhOTczY2JiZTJhMGNiMDJlOTBmMzIzZmUwNDU1MjFmMzRjNjgzNTRhNmQzZTk1ZGJmZmYxZWI2NDY5MmVkYzBhNDRmM2QzZTQwOGQwZTQ3OWE1NDFlNzc5YTYwNTQyNTllMmQ4NTQiOjI1NgorZGhtX2ZpbGU6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL2RoLm9wdGxlbi5kZXIiOiJiMzEyNmFlYWY0NzE1M2M3ZDY3ZjQwMzAzMGIyOTJiNWJkNWE2YzllYWUxYzEzN2FmMzQwODdmY2UyYTM2YTU3OGQ3MGM1YzU2MGFkMmJkYjkyNGM0YTRkYmVlMjBhMTY3MWJlNzEwM2NlODdkZWZhNzY5MDg5MzY4MDNkYmVjYTYwYzMzZTEyODljMWEwM2FjMmM2YzRlNDk0MDVlNTkwMmZhMDU5NmExY2JhYTg5NWNjNDAyZDUyMTNlZDRhNWYxZjViYThiNWUxZWQzZGE5NTFhNGM0NzVhZmViMGNhNjYwYjczNjhjMzhjOGU4MDlmMzgyZDk2YWUxOWU2MGRjOTg0ZTYxY2I0MmI1ZGZkNzIzMzIyYWNmMzI3ZjllNDEzY2RhNjQwMGMxNWM1YjJlYTFmYTM0NDA1ZDgzOTgyZmJhNDBlNmQ4NTJkYTNkOTEwMTliZjIzNTExMzE0MjU0ZGMyMTFhOTA4MzNlNWIxNzk4ZWU1MmE3ODE5OGM1NTU2NDQ3MjlhZDkyZjA2MDM2N2M3NGRlZDM3NzA0YWRmYzI3M2E0YTMzZmVjODIxYmQyZWJkM2JjMDUxNzMwZTk3YTRkZDE0ZDJiNzY2MDYyNTkyZjVlZWMwOWQxNmJiNTBlZmViZjJjYzAwZGQzZTBlMzQxOGU2MGVjODQ4NzBmNyI6IjgwMGFiZmU3ZGM2NjdhYTE3YmNkN2MwNDYxNGJjMjIxYTY1NDgyY2NjMDRiNjA0NjAyYjBlMTMxOTA4YTkzOGVhMTFiNDhkYzUxNWRhYjdhYmNiYjFlMGM3ZmQ2NjUxMWVkYzBkODY1NTFiNzYzMjQ5NmUwM2RmOTQzNTdlMWM0ZWEwN2E3Y2UxZTM4MWEyZmNhZmRmZjVmNWJmMDBkZjgyODgwNjAyMGU4NzVjMDA5MjZlNGQwMTFmODg0NzdhMWIwMTkyN2Q3MzgxM2NhZDQ4NDdjNjM5NmI5MjQ0NjIxYmUyYjAwYjYzYzY1OTI1MzMxODQxMzQ0M2NkMjQ0MjE1Y2Q3ZmQ0Y2JlNzk2ZTgyYzZjZjcwZjg5Y2MwYzUyOGZiOGUzNDQ4MDliMzE4NzZlN2VmNzM5ZDUxNjBkMDk1Yzk2ODQxODhiMGM4NzU1YzdhNDY4ZDQ3ZjU2ZDZkYjllYTAxMjkyNGVjYjA1NTZmYjcxMzEyYThkN2M5M2JiMjg5OGVhMDhlZTU0ZWViNTk0NTQ4Mjg1ZjA2YTk3M2NiYmUyYTBjYjAyZTkwZjMyM2ZlMDQ1NTIxZjM0YzY4MzU0YTZkM2U5NWRiZmZmMWViNjQ2OTJlZGMwYTQ0ZjNkM2U0MDhkMGU0NzlhNTQxZTc3OWE2MDU0MjU5ZTJkODU0IjoyNTYKIAogRGlmZmllLUhlbGxtYW4gc2VsZnRlc3QKIGRobV9zZWxmdGVzdDoKZGlmZiAtLWdpdCBhL3Rlc3RzL3N1aXRlcy90ZXN0X3N1aXRlX2VjZHNhLmRhdGEgYi90ZXN0cy9zdWl0ZXMvdGVzdF9zdWl0ZV9lY2RzYS5kYXRhCmluZGV4IGM4NTJjNjYuLjRiYTNlNjcgMTAwNjQ0Ci0tLSBhL3Rlc3RzL3N1aXRlcy90ZXN0X3N1aXRlX2VjZHNhLmRhdGEKKysrIGIvdGVzdHMvc3VpdGVzL3Rlc3Rfc3VpdGVfZWNkc2EuZGF0YQpAQCAtOTUsMTUgKzk1LDE1IEBACiBlY2RzYV9kZXRfdGVzdF92ZWN0b3JzOk1CRURUTFNfRUNQX0RQX1NFQ1AxOTJSMToiNkZBQjAzNDkzNEU0QzBGQzlBRTY3RjVCNTY1OUE5RDdEMUZFRkQxODdFRTA5RkQ0IjpNQkVEVExTX01EX1NIQTE6IjgxNTEzMjVEQ0RCQUU5RTBGRjk1RjlGOTY1ODQzMkRCRURGREIyMDkiOiI5OEM2QkQxMkIyM0VBRjVFMkEyMDQ1MTMyMDg2QkUzRUI4RUJENjJBQkY2Njk4RkYiOiI1N0EyMkIwN0RFQTk1MzBGOERFOTQ3MUIxREM2NjI0NDcyRThFMjg0NEJDMjVCNjQiCiAKIEVDRFNBIGRldGVybWluaXN0aWMgdGVzdCB2ZWN0b3IgcmZjIDY5NzkgcDE5MiBzaGEyMjQgWyMxXQotZGVwZW5kc19vbjpNQkVEVExTX0VDUF9EUF9TRUNQMTkyUjFfRU5BQkxFRDpNQkVEVExTX01EX0NBTl9TSEEyMjQKK2RlcGVuZHNfb246TUJFRFRMU19FQ1BfRFBfU0VDUDE5MlIxX0VOQUJMRUQ6UFNBX1dBTlRfQUxHX1NIQV8yMjQKIGVjZHNhX2RldF90ZXN0X3ZlY3RvcnM6TUJFRFRMU19FQ1BfRFBfU0VDUDE5MlIxOiI2RkFCMDM0OTM0RTRDMEZDOUFFNjdGNUI1NjU5QTlEN0QxRkVGRDE4N0VFMDlGRDQiOk1CRURUTFNfTURfU0hBMjI0OiI5MDAzRTM3NEJDNzI2NTUwQzJDMjg5NDQ3RkQwNTMzMTYwRjg3NTcwOTM4NkRGQTM3N0JGRDQxQyI6IkExRjAwREFEOTdBRUVDOTFDOTU1ODVGMzYyMDBDNjVGM0MwMTgxMkFBNjAzNzhGNSI6IkUwN0VDMTMwNEM3QzZDOURFQkJFOTgwQjk2OTI2NjhGODFENERFNzkyMkEwRjk3QSIKIAogRUNEU0EgZGV0ZXJtaW5pc3RpYyB0ZXN0IHZlY3RvciByZmMgNjk3OSBwMTkyIHNoYTI1NiBbIzFdCi1kZXBlbmRzX29uOk1CRURUTFNfRUNQX0RQX1NFQ1AxOTJSMV9FTkFCTEVEOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpNQkVEVExTX0VDUF9EUF9TRUNQMTkyUjFfRU5BQkxFRDpQU0FfV0FOVF9BTEdfU0hBXzI1NgogZWNkc2FfZGV0X3Rlc3RfdmVjdG9yczpNQkVEVExTX0VDUF9EUF9TRUNQMTkyUjE6IjZGQUIwMzQ5MzRFNEMwRkM5QUU2N0Y1QjU2NTlBOUQ3RDFGRUZEMTg3RUUwOUZENCI6TUJFRFRMU19NRF9TSEEyNTY6IkFGMkJEQkUxQUE5QjZFQzFFMkFERTFENjk0RjQxRkM3MUE4MzFEMDI2OEU5ODkxNTYyMTEzRDhBNjJBREQxQkYiOiI0QjBCOENFOThBOTI4NjZBMjgyMEUyMEFBNkI3NUI1NjM4MkUwRjlCRkQ1RUNCNTUiOiJDQ0RCMDA2OTI2RUE5NTY1Q0JBREM4NDA4MjlEOEMzODRFMDZERTFGMUUzODFCODUiCiAKIEVDRFNBIGRldGVybWluaXN0aWMgdGVzdCB2ZWN0b3IgcmZjIDY5NzkgcDE5MiBzaGEzODQgWyMxXQotZGVwZW5kc19vbjpNQkVEVExTX0VDUF9EUF9TRUNQMTkyUjFfRU5BQkxFRDpNQkVEVExTX01EX0NBTl9TSEEzODQKK2RlcGVuZHNfb246TUJFRFRMU19FQ1BfRFBfU0VDUDE5MlIxX0VOQUJMRUQ6UFNBX1dBTlRfQUxHX1NIQV8zODQKIGVjZHNhX2RldF90ZXN0X3ZlY3RvcnM6TUJFRFRMU19FQ1BfRFBfU0VDUDE5MlIxOiI2RkFCMDM0OTM0RTRDMEZDOUFFNjdGNUI1NjU5QTlEN0QxRkVGRDE4N0VFMDlGRDQiOk1CRURUTFNfTURfU0hBMzg0OiI5QTkwODM1MDVCQzkyMjc2QUVDNEJFMzEyNjk2RUY3QkYzQkY2MDNGNEJCRDM4MTE5NkEwMjlGMzQwNTg1MzEyMzEzQkNBNEE5QjVCODkwRUZFRTQyQzc3QjFFRTI1RkUiOiJEQTYzQkYwQjlBQkNGOTQ4RkJCMUU5MTY3RjEzNjE0NUY3QTIwNDI2RENDMjg3RDUiOiJDM0FBMkM5NjA5NzJCRDdBMjAwM0E1N0UxQzRDNzdGMDU3OEY4QUU5NUUzMUVDNUUiCiAKIEVDRFNBIGRldGVybWluaXN0aWMgdGVzdCB2ZWN0b3IgcmZjIDY5NzkgcDE5MiBzaGE1MTIgWyMxXQpAQCAtMTE1LDE1ICsxMTUsMTUgQEAKIGVjZHNhX2RldF90ZXN0X3ZlY3RvcnM6TUJFRFRMU19FQ1BfRFBfU0VDUDE5MlIxOiI2RkFCMDM0OTM0RTRDMEZDOUFFNjdGNUI1NjU5QTlEN0QxRkVGRDE4N0VFMDlGRDQiOk1CRURUTFNfTURfU0hBMToiQTk0QThGRTVDQ0IxOUJBNjFDNEMwODczRDM5MUU5ODc5ODJGQkJEMyI6IjBGMjE0MUEwRUJCQzQ0RDJFMUFGOTBBNTBFQkNGQ0U1RTE5N0IzQjdENERFMDM2RCI6IkVCMThCQzlFMUYzRDczODc1MDBDQjk5Q0Y1RjdDMTU3MDcwQTg5NjFFMzg3MDBCNyIKIAogRUNEU0EgZGV0ZXJtaW5pc3RpYyB0ZXN0IHZlY3RvciByZmMgNjk3OSBwMTkyIHNoYTIyNCBbIzJdCi1kZXBlbmRzX29uOk1CRURUTFNfRUNQX0RQX1NFQ1AxOTJSMV9FTkFCTEVEOk1CRURUTFNfTURfQ0FOX1NIQTIyNAorZGVwZW5kc19vbjpNQkVEVExTX0VDUF9EUF9TRUNQMTkyUjFfRU5BQkxFRDpQU0FfV0FOVF9BTEdfU0hBXzIyNAogZWNkc2FfZGV0X3Rlc3RfdmVjdG9yczpNQkVEVExTX0VDUF9EUF9TRUNQMTkyUjE6IjZGQUIwMzQ5MzRFNEMwRkM5QUU2N0Y1QjU2NTlBOUQ3RDFGRUZEMTg3RUUwOUZENCI6TUJFRFRMU19NRF9TSEEyMjQ6IjkwQTNFRDlFMzJCMkFBRjRDNjFDNDEwRUI5MjU0MjYxMTlFMUE5REM1M0Q0Mjg2QURFOTlBODA5IjoiNjk0NUExQzFEMUIyMjA2QjgxNDU1NDhGNjMzQkI2MUNFRjA0ODkxQkFGMjZFRDM0IjoiQjdGQjdGREZDMzM5QzBCOUJENjFBOUY1QThFQUY5QkU1OEZDNUNCQTJDQjE1MjkzIgogCiBFQ0RTQSBkZXRlcm1pbmlzdGljIHRlc3QgdmVjdG9yIHJmYyA2OTc5IHAxOTIgc2hhMjU2IFsjMl0KLWRlcGVuZHNfb246TUJFRFRMU19FQ1BfRFBfU0VDUDE5MlIxX0VOQUJMRUQ6TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOk1CRURUTFNfRUNQX0RQX1NFQ1AxOTJSMV9FTkFCTEVEOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBlY2RzYV9kZXRfdGVzdF92ZWN0b3JzOk1CRURUTFNfRUNQX0RQX1NFQ1AxOTJSMToiNkZBQjAzNDkzNEU0QzBGQzlBRTY3RjVCNTY1OUE5RDdEMUZFRkQxODdFRTA5RkQ0IjpNQkVEVExTX01EX1NIQTI1NjoiOUY4NkQwODE4ODRDN0Q2NTlBMkZFQUEwQzU1QUQwMTVBM0JGNEYxQjJCMEI4MjJDRDE1RDZDMTVCMEYwMEEwOCI6IjNBNzE4QkQ4QjQ5MjZDM0I1MkVFNkJCRTY3RUY3OUIxOENCNkVCNjJCMUFEOTdBRSI6IjU2NjJFNjg0OEE0QTE5QjFGMUFFMkY3MkFDRDRCOEJCRTUwRjFFQUM2NUQ5MTI0RiIKIAogRUNEU0EgZGV0ZXJtaW5pc3RpYyB0ZXN0IHZlY3RvciByZmMgNjk3OSBwMTkyIHNoYTM4NCBbIzJdCi1kZXBlbmRzX29uOk1CRURUTFNfRUNQX0RQX1NFQ1AxOTJSMV9FTkFCTEVEOk1CRURUTFNfTURfQ0FOX1NIQTM4NAorZGVwZW5kc19vbjpNQkVEVExTX0VDUF9EUF9TRUNQMTkyUjFfRU5BQkxFRDpQU0FfV0FOVF9BTEdfU0hBXzM4NAogZWNkc2FfZGV0X3Rlc3RfdmVjdG9yczpNQkVEVExTX0VDUF9EUF9TRUNQMTkyUjE6IjZGQUIwMzQ5MzRFNEMwRkM5QUU2N0Y1QjU2NTlBOUQ3RDFGRUZEMTg3RUUwOUZENCI6TUJFRFRMU19NRF9TSEEzODQ6Ijc2ODQxMjMyMEY3QjBBQTU4MTJGQ0U0MjhEQzQ3MDZCM0NBRTUwRTAyQTY0Q0FBMTZBNzgyMjQ5QkZFOEVGQzRCN0VGMUNDQjEyNjI1NUQxOTYwNDdERkVERjE3QTBBOSI6IkIyMzRCNjBCNERCNzVBNzMzRTE5MjgwQTdBNjAzNEJENkIxRUU4OEFGNTMzMjM2NyI6Ijc5OTQwOTBCMkQ1OUJCNzgyQkU1N0U3NEE0NEM5QTFDNzAwNDEzRjhBQkVGRTc3QSIKIAogRUNEU0EgZGV0ZXJtaW5pc3RpYyB0ZXN0IHZlY3RvciByZmMgNjk3OSBwMTkyIHNoYTUxMiBbIzJdCkBAIC0xMzUsMTUgKzEzNSwxNSBAQAogZWNkc2FfZGV0X3Rlc3RfdmVjdG9yczpNQkVEVExTX0VDUF9EUF9TRUNQMjI0UjE6IkYyMjAyNjZFMTEwNUJGRTMwODNFMDNFQzdBM0E2NTQ2NTFGNDVFMzcxNjdFODg2MDBCRjI1N0MxIjpNQkVEVExTX01EX1NIQTE6IjgxNTEzMjVEQ0RCQUU5RTBGRjk1RjlGOTY1ODQzMkRCRURGREIyMDkiOiIyMjIyNkY5RDQwQTk2RTE5QzRBMzAxQ0U1Qjc0QjExNTMwM0MwRjNBNEZEMzBGQzI1N0ZCNTdBQyI6IjY2RDFDREQ4M0UzQUY3NTYwNURENkUyRkVGRjE5NkQzMEFBN0VEN0EyRURGN0FGNDc1NDAzRDY5IgogCiBFQ0RTQSBkZXRlcm1pbmlzdGljIHRlc3QgdmVjdG9yIHJmYyA2OTc5IHAyMjQgc2hhMjI0IFsjMV0KLWRlcGVuZHNfb246TUJFRFRMU19FQ1BfRFBfU0VDUDIyNFIxX0VOQUJMRUQ6TUJFRFRMU19NRF9DQU5fU0hBMjI0CitkZXBlbmRzX29uOk1CRURUTFNfRUNQX0RQX1NFQ1AyMjRSMV9FTkFCTEVEOlBTQV9XQU5UX0FMR19TSEFfMjI0CiBlY2RzYV9kZXRfdGVzdF92ZWN0b3JzOk1CRURUTFNfRUNQX0RQX1NFQ1AyMjRSMToiRjIyMDI2NkUxMTA1QkZFMzA4M0UwM0VDN0EzQTY1NDY1MUY0NUUzNzE2N0U4ODYwMEJGMjU3QzEiOk1CRURUTFNfTURfU0hBMjI0OiI5MDAzRTM3NEJDNzI2NTUwQzJDMjg5NDQ3RkQwNTMzMTYwRjg3NTcwOTM4NkRGQTM3N0JGRDQxQyI6IjFDREZFNjY2MkRERTFFNEExRUM0Q0RFREY2QTFGNUEyRkI3RkJEOTE0NUMxMjExM0U2QUJGRDNFIjoiQTY2OTRGRDc3MThBMjEwNTNGMjI1RDNGNDYxOTdDQTY5OUQ0NTAwNkMwNkY4NzE4MDhGNDNFQkMiCiAKIEVDRFNBIGRldGVybWluaXN0aWMgdGVzdCB2ZWN0b3IgcmZjIDY5NzkgcDIyNCBzaGEyNTYgWyMxXQotZGVwZW5kc19vbjpNQkVEVExTX0VDUF9EUF9TRUNQMjI0UjFfRU5BQkxFRDpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246TUJFRFRMU19FQ1BfRFBfU0VDUDIyNFIxX0VOQUJMRUQ6UFNBX1dBTlRfQUxHX1NIQV8yNTYKIGVjZHNhX2RldF90ZXN0X3ZlY3RvcnM6TUJFRFRMU19FQ1BfRFBfU0VDUDIyNFIxOiJGMjIwMjY2RTExMDVCRkUzMDgzRTAzRUM3QTNBNjU0NjUxRjQ1RTM3MTY3RTg4NjAwQkYyNTdDMSI6TUJFRFRMU19NRF9TSEEyNTY6IkFGMkJEQkUxQUE5QjZFQzFFMkFERTFENjk0RjQxRkM3MUE4MzFEMDI2OEU5ODkxNTYyMTEzRDhBNjJBREQxQkYiOiI2MUFBM0RBMDEwRThFODQwNkM2NTZCQzQ3N0E3QTcxODk4OTVFN0U4NDBDREZFOEZGNDIzMDdCQSI6IkJDODE0MDUwREFCNUQyMzc3MDg3OTQ5NEY5RTBBNjgwREMxQUY3MTYxOTkxQkRFNjkyQjEwMTAxIgogCiBFQ0RTQSBkZXRlcm1pbmlzdGljIHRlc3QgdmVjdG9yIHJmYyA2OTc5IHAyMjQgc2hhMzg0IFsjMV0KLWRlcGVuZHNfb246TUJFRFRMU19FQ1BfRFBfU0VDUDIyNFIxX0VOQUJMRUQ6TUJFRFRMU19NRF9DQU5fU0hBMzg0CitkZXBlbmRzX29uOk1CRURUTFNfRUNQX0RQX1NFQ1AyMjRSMV9FTkFCTEVEOlBTQV9XQU5UX0FMR19TSEFfMzg0CiBlY2RzYV9kZXRfdGVzdF92ZWN0b3JzOk1CRURUTFNfRUNQX0RQX1NFQ1AyMjRSMToiRjIyMDI2NkUxMTA1QkZFMzA4M0UwM0VDN0EzQTY1NDY1MUY0NUUzNzE2N0U4ODYwMEJGMjU3QzEiOk1CRURUTFNfTURfU0hBMzg0OiI5QTkwODM1MDVCQzkyMjc2QUVDNEJFMzEyNjk2RUY3QkYzQkY2MDNGNEJCRDM4MTE5NkEwMjlGMzQwNTg1MzEyMzEzQkNBNEE5QjVCODkwRUZFRTQyQzc3QjFFRTI1RkUiOiIwQjExNUU1RTM2RjBGOUVDODFGMTMyNUE1OTUyODc4RDc0NUUxOUQ3QkIzRUFCRkFCQTc3RTk1MyI6IjgzMEYzNENDREZFODI2Q0NGREM4MUVCNDEyOTc3MkUyMEUxMjIzNDhBMkJCRDg4OUExQjFBRjFEIgogCiBFQ0RTQSBkZXRlcm1pbmlzdGljIHRlc3QgdmVjdG9yIHJmYyA2OTc5IHAyMjQgc2hhNTEyIFsjMV0KQEAgLTE1NSwxNSArMTU1LDE1IEBACiBlY2RzYV9kZXRfdGVzdF92ZWN0b3JzOk1CRURUTFNfRUNQX0RQX1NFQ1AyMjRSMToiRjIyMDI2NkUxMTA1QkZFMzA4M0UwM0VDN0EzQTY1NDY1MUY0NUUzNzE2N0U4ODYwMEJGMjU3QzEiOk1CRURUTFNfTURfU0hBMToiQTk0QThGRTVDQ0IxOUJBNjFDNEMwODczRDM5MUU5ODc5ODJGQkJEMyI6IkRFQUE2NDZFQzJBRjJFQThBRDUzRUQ2NkIyRTJEREFBNDlBMTJFRkQ4MzU2NTYxNDUxRjNFMjFDIjoiOTU5ODc3OTZGNkNGMjA2MkFCODEzNTI3MURFNTZBRTU1MzY2QzA0NUY2RDk1OTNGNTM3ODdCRDIiCiAKIEVDRFNBIGRldGVybWluaXN0aWMgdGVzdCB2ZWN0b3IgcmZjIDY5NzkgcDIyNCBzaGEyMjQgWyMyXQotZGVwZW5kc19vbjpNQkVEVExTX0VDUF9EUF9TRUNQMjI0UjFfRU5BQkxFRDpNQkVEVExTX01EX0NBTl9TSEEyMjQKK2RlcGVuZHNfb246TUJFRFRMU19FQ1BfRFBfU0VDUDIyNFIxX0VOQUJMRUQ6UFNBX1dBTlRfQUxHX1NIQV8yMjQKIGVjZHNhX2RldF90ZXN0X3ZlY3RvcnM6TUJFRFRMU19FQ1BfRFBfU0VDUDIyNFIxOiJGMjIwMjY2RTExMDVCRkUzMDgzRTAzRUM3QTNBNjU0NjUxRjQ1RTM3MTY3RTg4NjAwQkYyNTdDMSI6TUJFRFRMU19NRF9TSEEyMjQ6IjkwQTNFRDlFMzJCMkFBRjRDNjFDNDEwRUI5MjU0MjYxMTlFMUE5REM1M0Q0Mjg2QURFOTlBODA5IjoiQzQ0MUNFOEUyNjFERUQ2MzRFNENGODQ5MTBFNEM1RDFEMjJDNUNGM0I3MzJCQjIwNERCRUYwMTkiOiI5MDJGNDI4NDdBNjNCREM1RjYwNDZBREExMTQ5NTMxMjBGOTk0NDJENzY1MTAxNTBGMzcyQTNGNCIKIAogRUNEU0EgZGV0ZXJtaW5pc3RpYyB0ZXN0IHZlY3RvciByZmMgNjk3OSBwMjI0IHNoYTI1NiBbIzJdCi1kZXBlbmRzX29uOk1CRURUTFNfRUNQX0RQX1NFQ1AyMjRSMV9FTkFCTEVEOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpNQkVEVExTX0VDUF9EUF9TRUNQMjI0UjFfRU5BQkxFRDpQU0FfV0FOVF9BTEdfU0hBXzI1NgogZWNkc2FfZGV0X3Rlc3RfdmVjdG9yczpNQkVEVExTX0VDUF9EUF9TRUNQMjI0UjE6IkYyMjAyNjZFMTEwNUJGRTMwODNFMDNFQzdBM0E2NTQ2NTFGNDVFMzcxNjdFODg2MDBCRjI1N0MxIjpNQkVEVExTX01EX1NIQTI1NjoiOUY4NkQwODE4ODRDN0Q2NTlBMkZFQUEwQzU1QUQwMTVBM0JGNEYxQjJCMEI4MjJDRDE1RDZDMTVCMEYwMEEwOCI6IkFEMDREREU4N0I4NDc0N0EyNDNBNjMxRUE0N0ExQkE2RDFGQUEwNTkxNDlBRDI0NDBERTZGQkE2IjoiMTc4RDQ5QjFBRTkwRTNEOEI2MjlCRTNEQjU2ODM5MTVGNEU4Qzk5RkRGNkU2NjZDRjM3QURDRkQiCiAKIEVDRFNBIGRldGVybWluaXN0aWMgdGVzdCB2ZWN0b3IgcmZjIDY5NzkgcDIyNCBzaGEzODQgWyMyXQotZGVwZW5kc19vbjpNQkVEVExTX0VDUF9EUF9TRUNQMjI0UjFfRU5BQkxFRDpNQkVEVExTX01EX0NBTl9TSEEzODQKK2RlcGVuZHNfb246TUJFRFRMU19FQ1BfRFBfU0VDUDIyNFIxX0VOQUJMRUQ6UFNBX1dBTlRfQUxHX1NIQV8zODQKIGVjZHNhX2RldF90ZXN0X3ZlY3RvcnM6TUJFRFRMU19FQ1BfRFBfU0VDUDIyNFIxOiJGMjIwMjY2RTExMDVCRkUzMDgzRTAzRUM3QTNBNjU0NjUxRjQ1RTM3MTY3RTg4NjAwQkYyNTdDMSI6TUJFRFRMU19NRF9TSEEzODQ6Ijc2ODQxMjMyMEY3QjBBQTU4MTJGQ0U0MjhEQzQ3MDZCM0NBRTUwRTAyQTY0Q0FBMTZBNzgyMjQ5QkZFOEVGQzRCN0VGMUNDQjEyNjI1NUQxOTYwNDdERkVERjE3QTBBOSI6IjM4OUI5MjY4MkUzOTlCMjY1MThBOTU1MDZCNTJDMDNCQzkzNzlBOURBREYzMzkxQTIxRkIwRUE0IjoiNDE0QTcxOEVEMzI0OUZGNkRCQzVCNTBDMjdGNzFGMDFGMDcwOTQ0REEyMkFCMUY3OEY1NTlBQUIiCiAKIEVDRFNBIGRldGVybWluaXN0aWMgdGVzdCB2ZWN0b3IgcmZjIDY5NzkgcDIyNCBzaGE1MTIgWyMyXQpAQCAtMTc1LDE1ICsxNzUsMTUgQEAKIGVjZHNhX2RldF90ZXN0X3ZlY3RvcnM6TUJFRFRMU19FQ1BfRFBfU0VDUDI1NlIxOiJDOUFGQTlEODQ1QkE3NTE2NkI1QzIxNTc2N0IxRDY5MzRFNTBDM0RCMzZFODlCMTI3QjhBNjIyQjEyMEY2NzIxIjpNQkVEVExTX01EX1NIQTE6IjgxNTEzMjVEQ0RCQUU5RTBGRjk1RjlGOTY1ODQzMkRCRURGREIyMDkiOiI2MTM0MEM4OEMzQUFFQkVCNEY2RDY2N0Y2NzJDQTk3NTlBNkNDQUE5RkE4ODExMzEzMDM5RUU0QTM1NDcxRDMyIjoiNkQ3RjE0N0RBQzA4OTQ0MUJCMkUyRkU4RjdBM0ZBMjY0QjlDNDc1MDk4RkRDRjZFMDBEN0M5OTZFMUI4QjdFQiIKIAogRUNEU0EgZGV0ZXJtaW5pc3RpYyB0ZXN0IHZlY3RvciByZmMgNjk3OSBwMjU2IHNoYTIyNCBbIzFdCi1kZXBlbmRzX29uOk1CRURUTFNfRUNQX0RQX1NFQ1AyNTZSMV9FTkFCTEVEOk1CRURUTFNfTURfQ0FOX1NIQTIyNAorZGVwZW5kc19vbjpNQkVEVExTX0VDUF9EUF9TRUNQMjU2UjFfRU5BQkxFRDpQU0FfV0FOVF9BTEdfU0hBXzIyNAogZWNkc2FfZGV0X3Rlc3RfdmVjdG9yczpNQkVEVExTX0VDUF9EUF9TRUNQMjU2UjE6IkM5QUZBOUQ4NDVCQTc1MTY2QjVDMjE1NzY3QjFENjkzNEU1MEMzREIzNkU4OUIxMjdCOEE2MjJCMTIwRjY3MjEiOk1CRURUTFNfTURfU0hBMjI0OiI5MDAzRTM3NEJDNzI2NTUwQzJDMjg5NDQ3RkQwNTMzMTYwRjg3NTcwOTM4NkRGQTM3N0JGRDQxQyI6IjUzQjJGRkY1RDE3NTJCMkM2ODlERjI1N0MwNEM0MEE1ODdGQUJBQkIzRjZGQzI3MDJGMTM0M0FGN0NBOUFBM0YiOiJCOUFGQjY0RkRDMDNEQzFBMTMxQzdEMjM4NkQxMUUzNDlGMDcwQUE0MzJBNEFDQzkxOEJFQTk4OEJGNzVDNzRDIgogCiBFQ0RTQSBkZXRlcm1pbmlzdGljIHRlc3QgdmVjdG9yIHJmYyA2OTc5IHAyNTYgc2hhMjU2IFsjMV0KLWRlcGVuZHNfb246TUJFRFRMU19FQ1BfRFBfU0VDUDI1NlIxX0VOQUJMRUQ6TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOk1CRURUTFNfRUNQX0RQX1NFQ1AyNTZSMV9FTkFCTEVEOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBlY2RzYV9kZXRfdGVzdF92ZWN0b3JzOk1CRURUTFNfRUNQX0RQX1NFQ1AyNTZSMToiQzlBRkE5RDg0NUJBNzUxNjZCNUMyMTU3NjdCMUQ2OTM0RTUwQzNEQjM2RTg5QjEyN0I4QTYyMkIxMjBGNjcyMSI6TUJFRFRMU19NRF9TSEEyNTY6IkFGMkJEQkUxQUE5QjZFQzFFMkFERTFENjk0RjQxRkM3MUE4MzFEMDI2OEU5ODkxNTYyMTEzRDhBNjJBREQxQkYiOiJFRkQ0OEIyQUFDQjZBOEZEMTE0MEREOUNENDVFODFENjlEMkM4NzdCNTZBQUY5OTFDMzREMEVBODRFQUYzNzE2IjoiRjdDQjFDOTQyRDY1N0M0MUQ0MzZDN0ExQjZFMjlGNjVGM0U5MDBEQkI5QUZGNDA2NERDNEFCMkY4NDNBQ0RBOCIKIAogRUNEU0EgZGV0ZXJtaW5pc3RpYyB0ZXN0IHZlY3RvciByZmMgNjk3OSBwMjU2IHNoYTM4NCBbIzFdCi1kZXBlbmRzX29uOk1CRURUTFNfRUNQX0RQX1NFQ1AyNTZSMV9FTkFCTEVEOk1CRURUTFNfTURfQ0FOX1NIQTM4NAorZGVwZW5kc19vbjpNQkVEVExTX0VDUF9EUF9TRUNQMjU2UjFfRU5BQkxFRDpQU0FfV0FOVF9BTEdfU0hBXzM4NAogZWNkc2FfZGV0X3Rlc3RfdmVjdG9yczpNQkVEVExTX0VDUF9EUF9TRUNQMjU2UjE6IkM5QUZBOUQ4NDVCQTc1MTY2QjVDMjE1NzY3QjFENjkzNEU1MEMzREIzNkU4OUIxMjdCOEE2MjJCMTIwRjY3MjEiOk1CRURUTFNfTURfU0hBMzg0OiI5QTkwODM1MDVCQzkyMjc2QUVDNEJFMzEyNjk2RUY3QkYzQkY2MDNGNEJCRDM4MTE5NkEwMjlGMzQwNTg1MzEyMzEzQkNBNEE5QjVCODkwRUZFRTQyQzc3QjFFRTI1RkUiOiIwRUFGRUEwMzlCMjBFOUI0MjMwOUZCMUQ4OUUyMTMwNTdDQkY5NzNEQzBDRkM4RjEyOUVERERDODAwRUY3NzE5IjoiNDg2MUYwNDkxRTY5OThCOTQ1NTE5M0UzNEU3QjBEMjg0RERENzE0OUE3NEI5NUI5MjYxRjEzQUJERTk0MDk1NCIKIAogRUNEU0EgZGV0ZXJtaW5pc3RpYyB0ZXN0IHZlY3RvciByZmMgNjk3OSBwMjU2IHNoYTUxMiBbIzFdCkBAIC0xOTUsMTUgKzE5NSwxNSBAQAogZWNkc2FfZGV0X3Rlc3RfdmVjdG9yczpNQkVEVExTX0VDUF9EUF9TRUNQMjU2UjE6IkM5QUZBOUQ4NDVCQTc1MTY2QjVDMjE1NzY3QjFENjkzNEU1MEMzREIzNkU4OUIxMjdCOEE2MjJCMTIwRjY3MjEiOk1CRURUTFNfTURfU0hBMToiQTk0QThGRTVDQ0IxOUJBNjFDNEMwODczRDM5MUU5ODc5ODJGQkJEMyI6IjBDQkNDODZGRDZBQkQxRDk5RTcwM0UxRUM1MDA2OUVFNUMwQjRCQTRCOUFDNjBFNDA5RThFQzU5MTBEODFBODkiOiIwMUI5RDdCNzNERkFBNjBENTY1MUVDNDU5MUEwMTM2Rjg3NjUzRTBGRDc4MEMzQjFCQzg3MkZGREVBRTQ3OUIxIgogCiBFQ0RTQSBkZXRlcm1pbmlzdGljIHRlc3QgdmVjdG9yIHJmYyA2OTc5IHAyNTYgc2hhMjI0IFsjMl0KLWRlcGVuZHNfb246TUJFRFRMU19FQ1BfRFBfU0VDUDI1NlIxX0VOQUJMRUQ6TUJFRFRMU19NRF9DQU5fU0hBMjI0CitkZXBlbmRzX29uOk1CRURUTFNfRUNQX0RQX1NFQ1AyNTZSMV9FTkFCTEVEOlBTQV9XQU5UX0FMR19TSEFfMjI0CiBlY2RzYV9kZXRfdGVzdF92ZWN0b3JzOk1CRURUTFNfRUNQX0RQX1NFQ1AyNTZSMToiQzlBRkE5RDg0NUJBNzUxNjZCNUMyMTU3NjdCMUQ2OTM0RTUwQzNEQjM2RTg5QjEyN0I4QTYyMkIxMjBGNjcyMSI6TUJFRFRMU19NRF9TSEEyMjQ6IjkwQTNFRDlFMzJCMkFBRjRDNjFDNDEwRUI5MjU0MjYxMTlFMUE5REM1M0Q0Mjg2QURFOTlBODA5IjoiQzM3RURCNkYwQUU3OUQ0N0MzQzI3RTk2MkZBMjY5QkI0RjQ0MTc3MDM1N0UxMTRFRTUxMUY2NjJFQzM0QTY5MiI6IkM4MjAwNTNBMDU3OTFFNTIxRkNBQUQ2MDQyRDQwQUVBMUQ2QjFBNTQwMTM4NTU4RjQ3RDA3MTk4MDBFMThGMkQiCiAKIEVDRFNBIGRldGVybWluaXN0aWMgdGVzdCB2ZWN0b3IgcmZjIDY5NzkgcDI1NiBzaGEyNTYgWyMyXQotZGVwZW5kc19vbjpNQkVEVExTX0VDUF9EUF9TRUNQMjU2UjFfRU5BQkxFRDpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246TUJFRFRMU19FQ1BfRFBfU0VDUDI1NlIxX0VOQUJMRUQ6UFNBX1dBTlRfQUxHX1NIQV8yNTYKIGVjZHNhX2RldF90ZXN0X3ZlY3RvcnM6TUJFRFRMU19FQ1BfRFBfU0VDUDI1NlIxOiJDOUFGQTlEODQ1QkE3NTE2NkI1QzIxNTc2N0IxRDY5MzRFNTBDM0RCMzZFODlCMTI3QjhBNjIyQjEyMEY2NzIxIjpNQkVEVExTX01EX1NIQTI1NjoiOUY4NkQwODE4ODRDN0Q2NTlBMkZFQUEwQzU1QUQwMTVBM0JGNEYxQjJCMEI4MjJDRDE1RDZDMTVCMEYwMEEwOCI6IkYxQUJCMDIzNTE4MzUxQ0Q3MUQ4ODE1NjdCMUVBNjYzRUQzRUZDRjZDNTEzMkIzNTRGMjhEM0IwQjdEMzgzNjciOiIwMTlGNDExMzc0MkEyQjE0QkQyNTkyNkI0OUM2NDkxNTVGMjY3RTYwRDM4MTRCNEMwQ0M4NDI1MEU0NkYwMDgzIgogCiBFQ0RTQSBkZXRlcm1pbmlzdGljIHRlc3QgdmVjdG9yIHJmYyA2OTc5IHAyNTYgc2hhMzg0IFsjMl0KLWRlcGVuZHNfb246TUJFRFRMU19FQ1BfRFBfU0VDUDI1NlIxX0VOQUJMRUQ6TUJFRFRMU19NRF9DQU5fU0hBMzg0CitkZXBlbmRzX29uOk1CRURUTFNfRUNQX0RQX1NFQ1AyNTZSMV9FTkFCTEVEOlBTQV9XQU5UX0FMR19TSEFfMzg0CiBlY2RzYV9kZXRfdGVzdF92ZWN0b3JzOk1CRURUTFNfRUNQX0RQX1NFQ1AyNTZSMToiQzlBRkE5RDg0NUJBNzUxNjZCNUMyMTU3NjdCMUQ2OTM0RTUwQzNEQjM2RTg5QjEyN0I4QTYyMkIxMjBGNjcyMSI6TUJFRFRMU19NRF9TSEEzODQ6Ijc2ODQxMjMyMEY3QjBBQTU4MTJGQ0U0MjhEQzQ3MDZCM0NBRTUwRTAyQTY0Q0FBMTZBNzgyMjQ5QkZFOEVGQzRCN0VGMUNDQjEyNjI1NUQxOTYwNDdERkVERjE3QTBBOSI6IjgzOTEwRThCNDhCQjBDNzQyNDRFQkRGN0YwN0ExQzU0MTNENjE0NzJCRDk0MUVGMzkyMEU2MjNGQkNDRUJFQjYiOiI4RERCRUM1NENGOENENTg3NDg4Mzg0MUQ3MTIxNDJBNTZBOEQwRjIxOEY1MDAzQ0IwMjk2QjZCNTA5NjE5RjJDIgogCiBFQ0RTQSBkZXRlcm1pbmlzdGljIHRlc3QgdmVjdG9yIHJmYyA2OTc5IHAyNTYgc2hhNTEyIFsjMl0KQEAgLTIxNSwxNSArMjE1LDE1IEBACiBlY2RzYV9kZXRfdGVzdF92ZWN0b3JzOk1CRURUTFNfRUNQX0RQX1NFQ1AzODRSMToiNkI5RDNEQUQyRTFCOEMxQzA1QjE5ODc1QjY2NTlGNERFMjNDM0I2NjdCRjI5N0JBOUFBNDc3NDA3ODcxMzdEODk2RDU3MjRFNEM3MEE4MjVGODcyQzlFQTYwRDJFREY1IjpNQkVEVExTX01EX1NIQTE6IjgxNTEzMjVEQ0RCQUU5RTBGRjk1RjlGOTY1ODQzMkRCRURGREIyMDkiOiJFQzc0OEQ4MzkyNDNENkZCRUY0RkM1QzQ4NTlBN0RGRkQ3RjNBQkRERjcyMDE0NTQwQzE2RDczMzA5ODM0RkEzN0I5QkEwMDI4OTlGNkZEQTNBNEE5Mzg2NzkwRDRFQjIiOiJBM0JDRkE5NDdCRUVGNDczMkJGMjQ3QUMxN0Y3MTY3NkNCMzFBODQ3QjlGRjBDQkM5QzlFRDRDMUE1QjNGQUNGMjZGNDlDQTAzMUQ0ODU3NTcwQ0NCNUNBNDQyNEE0NDMiCiAKIEVDRFNBIGRldGVybWluaXN0aWMgdGVzdCB2ZWN0b3IgcmZjIDY5NzkgcDM4NCBzaGEyMjQgWyMxXQotZGVwZW5kc19vbjpNQkVEVExTX0VDUF9EUF9TRUNQMzg0UjFfRU5BQkxFRDpNQkVEVExTX01EX0NBTl9TSEEyMjQKK2RlcGVuZHNfb246TUJFRFRMU19FQ1BfRFBfU0VDUDM4NFIxX0VOQUJMRUQ6UFNBX1dBTlRfQUxHX1NIQV8yMjQKIGVjZHNhX2RldF90ZXN0X3ZlY3RvcnM6TUJFRFRMU19FQ1BfRFBfU0VDUDM4NFIxOiI2QjlEM0RBRDJFMUI4QzFDMDVCMTk4NzVCNjY1OUY0REUyM0MzQjY2N0JGMjk3QkE5QUE0Nzc0MDc4NzEzN0Q4OTZENTcyNEU0QzcwQTgyNUY4NzJDOUVBNjBEMkVERjUiOk1CRURUTFNfTURfU0hBMjI0OiI5MDAzRTM3NEJDNzI2NTUwQzJDMjg5NDQ3RkQwNTMzMTYwRjg3NTcwOTM4NkRGQTM3N0JGRDQxQyI6IjQyMzU2RTc2QjU1QTZEOUI0NjMxQzg2NTQ0NURCRTU0RTA1NkQzQjM0MzE3NjZEMDUwOTI0NDc5M0MzRjkzNjY0NTBGNzZFRTNERTQzRjVBMTI1MzMzQTZCRTA2MDEyMiI6IjlEQTBDODE3ODcwNjQwMjFFNzhERjY1OEYyRkJCMEIwNDJCRjMwNDY2NURCNzIxRjA3N0E0Mjk4QjA5NUU0ODM0QzA4MkMwM0Q4MzAyOEVGQkY5M0EzQzIzOTQwQ0E4RCIKIAogRUNEU0EgZGV0ZXJtaW5pc3RpYyB0ZXN0IHZlY3RvciByZmMgNjk3OSBwMzg0IHNoYTI1NiBbIzFdCi1kZXBlbmRzX29uOk1CRURUTFNfRUNQX0RQX1NFQ1AzODRSMV9FTkFCTEVEOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpNQkVEVExTX0VDUF9EUF9TRUNQMzg0UjFfRU5BQkxFRDpQU0FfV0FOVF9BTEdfU0hBXzI1NgogZWNkc2FfZGV0X3Rlc3RfdmVjdG9yczpNQkVEVExTX0VDUF9EUF9TRUNQMzg0UjE6IjZCOUQzREFEMkUxQjhDMUMwNUIxOTg3NUI2NjU5RjRERTIzQzNCNjY3QkYyOTdCQTlBQTQ3NzQwNzg3MTM3RDg5NkQ1NzI0RTRDNzBBODI1Rjg3MkM5RUE2MEQyRURGNSI6TUJFRFRMU19NRF9TSEEyNTY6IkFGMkJEQkUxQUE5QjZFQzFFMkFERTFENjk0RjQxRkM3MUE4MzFEMDI2OEU5ODkxNTYyMTEzRDhBNjJBREQxQkYiOiIyMUIxM0QxRTAxM0M3RkExMzkyRDAzQzVGOTlBRjhCMzBDNTcwQzZGOThENEVBOEUzNTRCNjNBMjFEM0RBQTMzQkRFMUU4ODhFNjMzNTVEOTJGQTJCM0MzNkQ4RkIyQ0QiOiJGM0FBNDQzRkIxMDc3NDVCRjRCRDc3Q0IzODkxNjc0NjMyMDY4QTEwQ0E2N0UzRDQ1REIyMjY2RkE3RDFGRUVCRUZEQzYzRUNDRDFBQzQyRUMwQ0I4NjY4QTRGQTBBQjAiCiAKIEVDRFNBIGRldGVybWluaXN0aWMgdGVzdCB2ZWN0b3IgcmZjIDY5NzkgcDM4NCBzaGEzODQgWyMxXQotZGVwZW5kc19vbjpNQkVEVExTX0VDUF9EUF9TRUNQMzg0UjFfRU5BQkxFRDpNQkVEVExTX01EX0NBTl9TSEEzODQKK2RlcGVuZHNfb246TUJFRFRMU19FQ1BfRFBfU0VDUDM4NFIxX0VOQUJMRUQ6UFNBX1dBTlRfQUxHX1NIQV8zODQKIGVjZHNhX2RldF90ZXN0X3ZlY3RvcnM6TUJFRFRMU19FQ1BfRFBfU0VDUDM4NFIxOiI2QjlEM0RBRDJFMUI4QzFDMDVCMTk4NzVCNjY1OUY0REUyM0MzQjY2N0JGMjk3QkE5QUE0Nzc0MDc4NzEzN0Q4OTZENTcyNEU0QzcwQTgyNUY4NzJDOUVBNjBEMkVERjUiOk1CRURUTFNfTURfU0hBMzg0OiI5QTkwODM1MDVCQzkyMjc2QUVDNEJFMzEyNjk2RUY3QkYzQkY2MDNGNEJCRDM4MTE5NkEwMjlGMzQwNTg1MzEyMzEzQkNBNEE5QjVCODkwRUZFRTQyQzc3QjFFRTI1RkUiOiI5NEVEQkI5MkE1RUNCOEFBRDQ3MzZFNTZDNjkxOTE2QjNGODgxNDA2NjZDRTlGQTczRDY0QzRFQTk1QUQxMzNDODFBNjQ4MTUyRTQ0QUNGOTZFMzZERDFFODBGQUJFNDYiOiI5OUVGNEFFQjE1RjE3OENFQTFGRTQwREIyNjAzMTM4RjEzMEU3NDBBMTk2MjQ1MjYyMDNCNjM1MUQwQTNBOTRGQTMyOUMxNDU3ODZFNjc5RTdCODJDNzFBMzg2MjhBQzgiCiAKIEVDRFNBIGRldGVybWluaXN0aWMgdGVzdCB2ZWN0b3IgcmZjIDY5NzkgcDM4NCBzaGE1MTIgWyMxXQpAQCAtMjM1LDE1ICsyMzUsMTUgQEAKIGVjZHNhX2RldF90ZXN0X3ZlY3RvcnM6TUJFRFRMU19FQ1BfRFBfU0VDUDM4NFIxOiI2QjlEM0RBRDJFMUI4QzFDMDVCMTk4NzVCNjY1OUY0REUyM0MzQjY2N0JGMjk3QkE5QUE0Nzc0MDc4NzEzN0Q4OTZENTcyNEU0QzcwQTgyNUY4NzJDOUVBNjBEMkVERjUiOk1CRURUTFNfTURfU0hBMToiQTk0QThGRTVDQ0IxOUJBNjFDNEMwODczRDM5MUU5ODc5ODJGQkJEMyI6IjRCQzM1RDNBNTBFRjRFMzA1NzZGNThDRDk2Q0U2QkY2MzgwMjVFRTYyNDAwNEExRjc3ODlBOEI4RTQzRDA2NzhBQ0Q5RDI5ODc2REFGNDY2Mzg2NDVGN0Y0MDRCMTFDNyI6IkQ1QTYzMjZDNDk0RUQzRkY2MTQ3MDM4Nzg5NjFDMEZERTdCMkMyNzhGOUE2NUZEOEM0QjcxODYyMDFBMjk5MTY5NUJBMUM4NDU0MTMyN0U5NjZGQTdCNTBGNzM4MjI4MiIKIAogRUNEU0EgZGV0ZXJtaW5pc3RpYyB0ZXN0IHZlY3RvciByZmMgNjk3OSBwMzg0IHNoYTIyNCBbIzJdCi1kZXBlbmRzX29uOk1CRURUTFNfRUNQX0RQX1NFQ1AzODRSMV9FTkFCTEVEOk1CRURUTFNfTURfQ0FOX1NIQTIyNAorZGVwZW5kc19vbjpNQkVEVExTX0VDUF9EUF9TRUNQMzg0UjFfRU5BQkxFRDpQU0FfV0FOVF9BTEdfU0hBXzIyNAogZWNkc2FfZGV0X3Rlc3RfdmVjdG9yczpNQkVEVExTX0VDUF9EUF9TRUNQMzg0UjE6IjZCOUQzREFEMkUxQjhDMUMwNUIxOTg3NUI2NjU5RjRERTIzQzNCNjY3QkYyOTdCQTlBQTQ3NzQwNzg3MTM3RDg5NkQ1NzI0RTRDNzBBODI1Rjg3MkM5RUE2MEQyRURGNSI6TUJFRFRMU19NRF9TSEEyMjQ6IjkwQTNFRDlFMzJCMkFBRjRDNjFDNDEwRUI5MjU0MjYxMTlFMUE5REM1M0Q0Mjg2QURFOTlBODA5IjoiRThDOUQwQjZFQTcyQTBFNzgzN0ZFQTFEMTRBMUE5NTU3RjI5RkFBNDVEM0U3RUU4ODhGQzVCRjk1NEI1RTYyNDY0QTlBODE3QzQ3RkY3OEI4QzExMDY2QjI0MDgwRTcyIjoiMDcwNDFENEE3QTAzNzlBQzcyMzJGRjcyRTZGNzdCNkREQjhGMDlCMTZDQ0UwRUMzMjg2QjJCRDQzRkE4QzYxNDFDNTNFQTVBQkVGMEQ4MjMxMDc3QTA0NTQwQTk2QjY2IgogCiBFQ0RTQSBkZXRlcm1pbmlzdGljIHRlc3QgdmVjdG9yIHJmYyA2OTc5IHAzODQgc2hhMjU2IFsjMl0KLWRlcGVuZHNfb246TUJFRFRMU19FQ1BfRFBfU0VDUDM4NFIxX0VOQUJMRUQ6TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOk1CRURUTFNfRUNQX0RQX1NFQ1AzODRSMV9FTkFCTEVEOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBlY2RzYV9kZXRfdGVzdF92ZWN0b3JzOk1CRURUTFNfRUNQX0RQX1NFQ1AzODRSMToiNkI5RDNEQUQyRTFCOEMxQzA1QjE5ODc1QjY2NTlGNERFMjNDM0I2NjdCRjI5N0JBOUFBNDc3NDA3ODcxMzdEODk2RDU3MjRFNEM3MEE4MjVGODcyQzlFQTYwRDJFREY1IjpNQkVEVExTX01EX1NIQTI1NjoiOUY4NkQwODE4ODRDN0Q2NTlBMkZFQUEwQzU1QUQwMTVBM0JGNEYxQjJCMEI4MjJDRDE1RDZDMTVCMEYwMEEwOCI6IjZENkRFRkFDOUFCNjREQUJBRkUzNkM2QkY1MTAzNTJBNENDMjcwMDEyNjM2MzhFNUIxNkQ5QkI1MUQ0NTE1NTlGOTE4RUVEQUYyMjkzQkU1QjQ3NUNDOEYwMTg4NjM2QiI6IjJENDZGM0JFQ0JDQzUyM0Q1RjFBMTI1NkJGMEM5QjAyNEQ4NzlCQTlFODM4MTQ0QzhCQTZCQUVCNEI1M0I0N0Q1MUFCMzczRjk4NDVDMDUxNEVFRkIxNDAyNDc4NzI2NSIKIAogRUNEU0EgZGV0ZXJtaW5pc3RpYyB0ZXN0IHZlY3RvciByZmMgNjk3OSBwMzg0IHNoYTM4NCBbIzJdCi1kZXBlbmRzX29uOk1CRURUTFNfRUNQX0RQX1NFQ1AzODRSMV9FTkFCTEVEOk1CRURUTFNfTURfQ0FOX1NIQTM4NAorZGVwZW5kc19vbjpNQkVEVExTX0VDUF9EUF9TRUNQMzg0UjFfRU5BQkxFRDpQU0FfV0FOVF9BTEdfU0hBXzM4NAogZWNkc2FfZGV0X3Rlc3RfdmVjdG9yczpNQkVEVExTX0VDUF9EUF9TRUNQMzg0UjE6IjZCOUQzREFEMkUxQjhDMUMwNUIxOTg3NUI2NjU5RjRERTIzQzNCNjY3QkYyOTdCQTlBQTQ3NzQwNzg3MTM3RDg5NkQ1NzI0RTRDNzBBODI1Rjg3MkM5RUE2MEQyRURGNSI6TUJFRFRMU19NRF9TSEEzODQ6Ijc2ODQxMjMyMEY3QjBBQTU4MTJGQ0U0MjhEQzQ3MDZCM0NBRTUwRTAyQTY0Q0FBMTZBNzgyMjQ5QkZFOEVGQzRCN0VGMUNDQjEyNjI1NUQxOTYwNDdERkVERjE3QTBBOSI6IjgyMDNCNjNEM0M4NTNFOEQ3NzIyN0ZCMzc3QkNGN0I3Qjc3MkU5Nzg5MkE4MEYzNkFCNzc1RDUwOUQ3QTVGRUIwNTQyQTdGMDgxMjk5OERBOEYxREQzQ0EzQ0YwMjNEQiI6IkRERDA3NjA0NDhENDJEOEE0M0FGNDVBRjgzNkZDRTRERThCRTA2QjQ4NUU5QjYxQjgyN0MyRjEzMTczOTIzRTA2QTczOUYwNDA2NDlBNjY3QkYzQjgyODI0NkJBQTVBNSIKIAogRUNEU0EgZGV0ZXJtaW5pc3RpYyB0ZXN0IHZlY3RvciByZmMgNjk3OSBwMzg0IHNoYTUxMiBbIzJdCkBAIC0yNTUsMTUgKzI1NSwxNSBAQAogZWNkc2FfZGV0X3Rlc3RfdmVjdG9yczpNQkVEVExTX0VDUF9EUF9TRUNQNTIxUjE6IjBGQUQwNkRBQTYyQkEzQjI1RDJGQjQwMTMzREE3NTcyMDVERTY3RjVCQjAwMThGRUU4Qzg2RTFCNjhDN0U3NUNBQTg5NkVCMzJGMUY0N0M3MDg1NTgzNkE2RDE2RkNDMTQ2NkY2RDhGQkVDNjdEQjg5RUMwQzA4QjBFOTk2QjgzNTM4IjpNQkVEVExTX01EX1NIQTE6IjgxNTEzMjVEQ0RCQUU5RTBGRjk1RjlGOTY1ODQzMkRCRURGREIyMDkiOiIwMzQzQjZFQzQ1NzI4OTc1RUE1Q0JBNjY1OUJCQjYwNjJBNUZGODlFRUE1OEJFM0M4MEI2MTlGMzIyQzg3OTEwRkUwOTJGN0Q0NUJCMEY4RUVFMDFFRDNGMjBCQUJFQzA3OUQyMDJBRTY3N0IyNDNBQjQwQjU0MzFENDk3QzU1RDc1RCI6IjBFN0IwRTY3NUE5QjI0NDEzRDQ0OEI4Q0MxMTlEMkJGN0IyRDJERjAzMjc0MUMwOTY2MzRENkQ2NUQwREJFM0Q1Njk0NjI1RkI5RTgxMDREM0I4NDJDMUIwRTJEMEI5OEJFQTE5MzQxRTg2NzZBRUY2NkFFNEVCQTNENTQ3NUQ1RDE2IgogCiBFQ0RTQSBkZXRlcm1pbmlzdGljIHRlc3QgdmVjdG9yIHJmYyA2OTc5IHA1MjEgc2hhMjI0IFsjMV0KLWRlcGVuZHNfb246TUJFRFRMU19FQ1BfRFBfU0VDUDUyMVIxX0VOQUJMRUQ6TUJFRFRMU19NRF9DQU5fU0hBMjI0CitkZXBlbmRzX29uOk1CRURUTFNfRUNQX0RQX1NFQ1A1MjFSMV9FTkFCTEVEOlBTQV9XQU5UX0FMR19TSEFfMjI0CiBlY2RzYV9kZXRfdGVzdF92ZWN0b3JzOk1CRURUTFNfRUNQX0RQX1NFQ1A1MjFSMToiMEZBRDA2REFBNjJCQTNCMjVEMkZCNDAxMzNEQTc1NzIwNURFNjdGNUJCMDAxOEZFRThDODZFMUI2OEM3RTc1Q0FBODk2RUIzMkYxRjQ3QzcwODU1ODM2QTZEMTZGQ0MxNDY2RjZEOEZCRUM2N0RCODlFQzBDMDhCMEU5OTZCODM1MzgiOk1CRURUTFNfTURfU0hBMjI0OiI5MDAzRTM3NEJDNzI2NTUwQzJDMjg5NDQ3RkQwNTMzMTYwRjg3NTcwOTM4NkRGQTM3N0JGRDQxQyI6IjE3NzYzMzFDRkNERjkyN0Q2NjZFMDMyRTAwQ0Y3NzYxODdCQzlGREQ4RTY5RDBEQUJCNDEwOUZGRTFCNUUyQTMwNzE1RjRDQzkyM0E0QTVFOTREMjUwM0U5QUNGRUQ5Mjg1N0I3RjMxRDcxNTJFMEY4QzAwQzE1RkYzRDg3RTJFRDJFIjoiMDUwQ0I1MjY1NDE3RkUyMzIwQkJCNUExMjJCOEUxQTMyQkQ2OTkwODk4NTExMjhFMzYwRTYyMEEzMEM3RTE3QkE0MUE2NjZBRjEyNkNFMTAwRTU3OTlCMTUzQjYwNTI4RDUzMDBEMDg0ODlDQTkxNzhGQjYxMEEyMDA2QzI1NEI0MUYiCiAKIEVDRFNBIGRldGVybWluaXN0aWMgdGVzdCB2ZWN0b3IgcmZjIDY5NzkgcDUyMSBzaGEyNTYgWyMxXQotZGVwZW5kc19vbjpNQkVEVExTX0VDUF9EUF9TRUNQNTIxUjFfRU5BQkxFRDpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246TUJFRFRMU19FQ1BfRFBfU0VDUDUyMVIxX0VOQUJMRUQ6UFNBX1dBTlRfQUxHX1NIQV8yNTYKIGVjZHNhX2RldF90ZXN0X3ZlY3RvcnM6TUJFRFRMU19FQ1BfRFBfU0VDUDUyMVIxOiIwRkFEMDZEQUE2MkJBM0IyNUQyRkI0MDEzM0RBNzU3MjA1REU2N0Y1QkIwMDE4RkVFOEM4NkUxQjY4QzdFNzVDQUE4OTZFQjMyRjFGNDdDNzA4NTU4MzZBNkQxNkZDQzE0NjZGNkQ4RkJFQzY3REI4OUVDMEMwOEIwRTk5NkI4MzUzOCI6TUJFRFRMU19NRF9TSEEyNTY6IkFGMkJEQkUxQUE5QjZFQzFFMkFERTFENjk0RjQxRkM3MUE4MzFEMDI2OEU5ODkxNTYyMTEzRDhBNjJBREQxQkYiOiIxNTExQkI0RDY3NTExNEZFMjY2RkM0MzcyQjg3NjgyQkFFQ0MwMUQzQ0M2MkNGMjMwM0M5MkIzNTI2MDEyNjU5RDE2ODc2RTI1QzdDMUU1NzY0OEYyM0I3MzU2NEQ2N0Y2MUM2RjE0RDUyN0Q1NDk3MjgxMDQyMUU3RDg3NTg5RTFBNyI6IjA0QTE3MTE0M0E4MzE2M0Q2REY0NjBBQUY2MTUyMjY5NUYyMDdBNThCOTVDMDY0NEQ4N0U1MkFBMUEzNDc5MTZFNEY3QTcyOTMwQjFCQzA2REJFMjJDRTNGNTgyNjRBRkQyMzcwNENCQjYzQjI5QjkzMUY3REU2QzlEOTQ5QTdFQ0ZDIgogCiBFQ0RTQSBkZXRlcm1pbmlzdGljIHRlc3QgdmVjdG9yIHJmYyA2OTc5IHA1MjEgc2hhMzg0IFsjMV0KLWRlcGVuZHNfb246TUJFRFRMU19FQ1BfRFBfU0VDUDUyMVIxX0VOQUJMRUQ6TUJFRFRMU19NRF9DQU5fU0hBMzg0CitkZXBlbmRzX29uOk1CRURUTFNfRUNQX0RQX1NFQ1A1MjFSMV9FTkFCTEVEOlBTQV9XQU5UX0FMR19TSEFfMzg0CiBlY2RzYV9kZXRfdGVzdF92ZWN0b3JzOk1CRURUTFNfRUNQX0RQX1NFQ1A1MjFSMToiMEZBRDA2REFBNjJCQTNCMjVEMkZCNDAxMzNEQTc1NzIwNURFNjdGNUJCMDAxOEZFRThDODZFMUI2OEM3RTc1Q0FBODk2RUIzMkYxRjQ3QzcwODU1ODM2QTZEMTZGQ0MxNDY2RjZEOEZCRUM2N0RCODlFQzBDMDhCMEU5OTZCODM1MzgiOk1CRURUTFNfTURfU0hBMzg0OiI5QTkwODM1MDVCQzkyMjc2QUVDNEJFMzEyNjk2RUY3QkYzQkY2MDNGNEJCRDM4MTE5NkEwMjlGMzQwNTg1MzEyMzEzQkNBNEE5QjVCODkwRUZFRTQyQzc3QjFFRTI1RkUiOiIxRUE4NDJBMEUxN0QyREU0RjkyQzE1MzE1QzYzRERGNzI2ODVDMTgxOTVDMkJCOTVFNTcyQjlDNTEzNkNBNEI0QjU3NkFENzEyQTUyQkU5NzMwNjI3RDE2MDU0QkE0MENDMEI4RDNGRjAzNUIxMkFFNzUxNjgzOTdGNUQ1MEM2NzQ1MSI6IjFGMjFBM0NFRTA2NkUxOTYxMDI1RkIwNDhCRDVGRTJCNzkyNEQwQ0Q3OTdCQUJFMEE4M0I2NkYxRTM1RUVBRjVGREUxNDNGQTg1REMzOTRBN0RFRTc2NjUyMzM5Mzc4NDQ4NEJERjNFMDAxMTRBMUM4NTdDREUxQUEyMDNEQjY1RDYxIgogCiBFQ0RTQSBkZXRlcm1pbmlzdGljIHRlc3QgdmVjdG9yIHJmYyA2OTc5IHA1MjEgc2hhNTEyIFsjMV0KQEAgLTI3NSwxNSArMjc1LDE1IEBACiBlY2RzYV9kZXRfdGVzdF92ZWN0b3JzOk1CRURUTFNfRUNQX0RQX1NFQ1A1MjFSMToiMEZBRDA2REFBNjJCQTNCMjVEMkZCNDAxMzNEQTc1NzIwNURFNjdGNUJCMDAxOEZFRThDODZFMUI2OEM3RTc1Q0FBODk2RUIzMkYxRjQ3QzcwODU1ODM2QTZEMTZGQ0MxNDY2RjZEOEZCRUM2N0RCODlFQzBDMDhCMEU5OTZCODM1MzgiOk1CRURUTFNfTURfU0hBMToiQTk0QThGRTVDQ0IxOUJBNjFDNEMwODczRDM5MUU5ODc5ODJGQkJEMyI6IjEzQkFEOUYyOUFCRTIwREUzN0VCRUI4MjNDMjUyQ0EwRjYzMzYxMjg0MDE1QTNCRjQzMEE0NkFBQTgwQjg3QjA2OTNGMDY5NEJEODhBRkU0RTY2MUZDMzNCMDk0Q0QzQjc5NjNCRUQ1QTcyN0VEOEJENkEzQTIwMkFCRTAwOUQwMzY3IjoiMUU5QkI4MUZGNzk0NENBNDA5QUQxMzhEQkJFRTIyOEUxQUZDQzBDODkwRkM3OEVDODYwNDYzOUNCMERCREM5MEY3MTdBOTlFQUQ5RDI3Mjg1NUQwMDE2MkVFOTUyNzU2N0RENkE5MkNCRDYyOTgwNUMwNDQ1MjgyQkJDOTE2Nzk3RkYiCiAKIEVDRFNBIGRldGVybWluaXN0aWMgdGVzdCB2ZWN0b3IgcmZjIDY5NzkgcDUyMSBzaGEyMjQgWyMyXQotZGVwZW5kc19vbjpNQkVEVExTX0VDUF9EUF9TRUNQNTIxUjFfRU5BQkxFRDpNQkVEVExTX01EX0NBTl9TSEEyMjQKK2RlcGVuZHNfb246TUJFRFRMU19FQ1BfRFBfU0VDUDUyMVIxX0VOQUJMRUQ6UFNBX1dBTlRfQUxHX1NIQV8yMjQKIGVjZHNhX2RldF90ZXN0X3ZlY3RvcnM6TUJFRFRMU19FQ1BfRFBfU0VDUDUyMVIxOiIwRkFEMDZEQUE2MkJBM0IyNUQyRkI0MDEzM0RBNzU3MjA1REU2N0Y1QkIwMDE4RkVFOEM4NkUxQjY4QzdFNzVDQUE4OTZFQjMyRjFGNDdDNzA4NTU4MzZBNkQxNkZDQzE0NjZGNkQ4RkJFQzY3REI4OUVDMEMwOEIwRTk5NkI4MzUzOCI6TUJFRFRMU19NRF9TSEEyMjQ6IjkwQTNFRDlFMzJCMkFBRjRDNjFDNDEwRUI5MjU0MjYxMTlFMUE5REM1M0Q0Mjg2QURFOTlBODA5IjoiMUM3RUQ5MDJFMTIzRTY4MTU1NDYwNjVBMkM0QUY5NzdCMjJBQThFQUREQjY4QjJDMTExMEU3RUE0NEQ0MjA4NkJGRTRBMzRCNjdEREMwRTE3RTk2NTM2RTM1ODIxOUIyM0E3MDZDNkE2RTE2QkE3N0I2NUUxQzU5NUQ0M0NBRTE3RkIiOiIxNzczMzY2NzYzMDRGQ0IzNDNDRTAyOEIzOEU3QjRGQkE3NkMxQzFCMjc3REExOENBRDJBODQ3OEIyQTlBOUY1QkVDMEYzQkEwNEYzNURCM0U0MjYzNTY5RUM2QUFERThDOTI3NDZFNEM4MkY4Mjk5QUUxQjhGMTczOUY4RkQ1MTlBNCIKIAogRUNEU0EgZGV0ZXJtaW5pc3RpYyB0ZXN0IHZlY3RvciByZmMgNjk3OSBwNTIxIHNoYTI1NiBbIzJdCi1kZXBlbmRzX29uOk1CRURUTFNfRUNQX0RQX1NFQ1A1MjFSMV9FTkFCTEVEOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpNQkVEVExTX0VDUF9EUF9TRUNQNTIxUjFfRU5BQkxFRDpQU0FfV0FOVF9BTEdfU0hBXzI1NgogZWNkc2FfZGV0X3Rlc3RfdmVjdG9yczpNQkVEVExTX0VDUF9EUF9TRUNQNTIxUjE6IjBGQUQwNkRBQTYyQkEzQjI1RDJGQjQwMTMzREE3NTcyMDVERTY3RjVCQjAwMThGRUU4Qzg2RTFCNjhDN0U3NUNBQTg5NkVCMzJGMUY0N0M3MDg1NTgzNkE2RDE2RkNDMTQ2NkY2RDhGQkVDNjdEQjg5RUMwQzA4QjBFOTk2QjgzNTM4IjpNQkVEVExTX01EX1NIQTI1NjoiOUY4NkQwODE4ODRDN0Q2NTlBMkZFQUEwQzU1QUQwMTVBM0JGNEYxQjJCMEI4MjJDRDE1RDZDMTVCMEYwMEEwOCI6IjAwRTg3MUM0QTE0Rjk5M0M2QzczNjk1MDE5MDBDNEJDMUU5QzdCMEI0QkE0NEUwNDg2OEIzMEI0MUQ4MDcxMDQyRUIyOEM0QzI1MDQxMUQwQ0UwOENEMTk3RTQxODhFQTQ4NzZGMjc5RjkwQjNEOEQ3NEEzQzc2RTZGMUU0NjU2QUE4IjoiMENENTJEQkFBMzNCMDYzQzNBNkNEODA1OEExRkIwQTQ2QTQ3NTRCMDM0RkNDNjQ0NzY2Q0ExNERBOENBNUNBOUZERTAwRTg4QzFBRDYwQ0NCQTc1OTAyNTI5OTA3OUQ3QTQyN0VDM0NDNUI2MTlCRkJDODI4RTc3NjlCQ0Q2OTRFODYiCiAKIEVDRFNBIGRldGVybWluaXN0aWMgdGVzdCB2ZWN0b3IgcmZjIDY5NzkgcDUyMSBzaGEzODQgWyMyXQotZGVwZW5kc19vbjpNQkVEVExTX0VDUF9EUF9TRUNQNTIxUjFfRU5BQkxFRDpNQkVEVExTX01EX0NBTl9TSEEzODQKK2RlcGVuZHNfb246TUJFRFRMU19FQ1BfRFBfU0VDUDUyMVIxX0VOQUJMRUQ6UFNBX1dBTlRfQUxHX1NIQV8zODQKIGVjZHNhX2RldF90ZXN0X3ZlY3RvcnM6TUJFRFRMU19FQ1BfRFBfU0VDUDUyMVIxOiIwRkFEMDZEQUE2MkJBM0IyNUQyRkI0MDEzM0RBNzU3MjA1REU2N0Y1QkIwMDE4RkVFOEM4NkUxQjY4QzdFNzVDQUE4OTZFQjMyRjFGNDdDNzA4NTU4MzZBNkQxNkZDQzE0NjZGNkQ4RkJFQzY3REI4OUVDMEMwOEIwRTk5NkI4MzUzOCI6TUJFRFRMU19NRF9TSEEzODQ6Ijc2ODQxMjMyMEY3QjBBQTU4MTJGQ0U0MjhEQzQ3MDZCM0NBRTUwRTAyQTY0Q0FBMTZBNzgyMjQ5QkZFOEVGQzRCN0VGMUNDQjEyNjI1NUQxOTYwNDdERkVERjE3QTBBOSI6IjE0QkVFMjFBMThCNkQ4QjNDOTNGQUIwOEQ0M0U3Mzk3MDc5NTMyNDRGREJFOTI0RkE5MjZENzY2NjlFN0FDOEM4OURGNjJFRDg5NzVDMkQ4Mzk3QTY1QTQ5RENDMDlGNkIwQUM2MjI3Mjc0MTkyNEQ0NzkzNTRENzRGRjYwNzU1NzhDIjoiMTMzMzMwODY1QzA2N0EwRUFGNzIzNjJBNjVFMkQ3QkM0RTQ2MUU4Qzg5OTVDM0I2MjI2QTIxQkQxQUE3OEYwRUQ5NEZFNTM2QTBEQ0EzNTUzNEYwQ0QxNTEwQzQxNTI1RDE2M0ZFOUQ3NEQxMzQ4ODFFMzUxNDFFRDVFOEU5NUI5NzkiCiAKIEVDRFNBIGRldGVybWluaXN0aWMgdGVzdCB2ZWN0b3IgcmZjIDY5NzkgcDUyMSBzaGE1MTIgWyMyXQpAQCAtMzA3LDE5ICszMDcsMTkgQEAKIGVjZHNhX3JlYWRfcmVzdGFydDpNQkVEVExTX0VDUF9EUF9TRUNQMjU2UjE6IjA0ZThmNTczNDEyYTgxMGM1ZjgxZWNkMmQyNTFiYjk0Mzg3ZTcyZjI4YWY3MGRjZWQ5MGViZTc1NzI1Yzk3YTY0MjgyMzEwNjljMmIxZWY3ODUwOWEyMmM1OTA0NDMxOWY2ZWQzY2I3NTBkZmU2NGMyYTI4MmIzNTk2N2E0NThhZDYiOiJkZWU5ZDRkOGIwZTQwYTAzNDYwMmQ2ZTYzODE5Nzk5ODA2MGY2ZTlmMzUzYWUxZDEwYzk0Y2Q1NjQ3NmQzYzkyIjoiMzA0NTAyMjEwMDk4YTVhMTM5MmFiZTI5ZTRiMGE0ZGEzZmVmZTlhZjBmOGMzMmU1YjgzOWFiNTJiYTZhMDVkYTljM2I3ZWRkMGYwMjIwNTk2ZjBlMTk1YWUxZTU4YzFlNTNlOWU3ZjBmMDMwYjI3NDM0OGE4YzExMjMyMTAxNzc4ZDg5YzQ5NDNmNWFkMiI6MjUwOjQ6NjQKIAogRUNEU0EgcmVzdGFydGFibGUgc2lnbi13cml0ZTogc2VjcDI1NnIxIG1heF9vcHM9MCAoZGlzYWJsZWQpCi1kZXBlbmRzX29uOk1CRURUTFNfRUNQX0RQX1NFQ1AyNTZSMV9FTkFCTEVEOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpNQkVEVExTX0VDUF9EUF9TRUNQMjU2UjFfRU5BQkxFRDpQU0FfV0FOVF9BTEdfU0hBXzI1NgogZWNkc2Ffd3JpdGVfcmVzdGFydDpNQkVEVExTX0VDUF9EUF9TRUNQMjU2UjE6IkM5QUZBOUQ4NDVCQTc1MTY2QjVDMjE1NzY3QjFENjkzNEU1MEMzREIzNkU4OUIxMjdCOEE2MjJCMTIwRjY3MjEiOk1CRURUTFNfTURfU0hBMjU2OiI5Rjg2RDA4MTg4NEM3RDY1OUEyRkVBQTBDNTVBRDAxNUEzQkY0RjFCMkIwQjgyMkNEMTVENkMxNUIwRjAwQTA4IjoiMzA0NTAyMjEwMGYxYWJiMDIzNTE4MzUxY2Q3MWQ4ODE1NjdiMWVhNjYzZWQzZWZjZjZjNTEzMmIzNTRmMjhkM2IwYjdkMzgzNjcwMjIwMDE5ZjQxMTM3NDJhMmIxNGJkMjU5MjZiNDljNjQ5MTU1ZjI2N2U2MGQzODE0YjRjMGNjODQyNTBlNDZmMDA4MyI6MDowOjAKIAogRUNEU0EgcmVzdGFydGFibGUgc2lnbi13cml0ZTogc2VjcDI1NnIxIHJlc3RhcnQgbWF4X29wcz0xCi1kZXBlbmRzX29uOk1CRURUTFNfRUNQX0RQX1NFQ1AyNTZSMV9FTkFCTEVEOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpNQkVEVExTX0VDUF9EUF9TRUNQMjU2UjFfRU5BQkxFRDpQU0FfV0FOVF9BTEdfU0hBXzI1NgogZWNkc2Ffd3JpdGVfcmVzdGFydDpNQkVEVExTX0VDUF9EUF9TRUNQMjU2UjE6IkM5QUZBOUQ4NDVCQTc1MTY2QjVDMjE1NzY3QjFENjkzNEU1MEMzREIzNkU4OUIxMjdCOEE2MjJCMTIwRjY3MjEiOk1CRURUTFNfTURfU0hBMjU2OiI5Rjg2RDA4MTg4NEM3RDY1OUEyRkVBQTBDNTVBRDAxNUEzQkY0RjFCMkIwQjgyMkNEMTVENkMxNUIwRjAwQTA4IjoiMzA0NTAyMjEwMGYxYWJiMDIzNTE4MzUxY2Q3MWQ4ODE1NjdiMWVhNjYzZWQzZWZjZjZjNTEzMmIzNTRmMjhkM2IwYjdkMzgzNjcwMjIwMDE5ZjQxMTM3NDJhMmIxNGJkMjU5MjZiNDljNjQ5MTU1ZjI2N2U2MGQzODE0YjRjMGNjODQyNTBlNDZmMDA4MyI6MToxOjEwMDAwCiAKIEVDRFNBIHJlc3RhcnRhYmxlIHNpZ24td3JpdGU6IHNlY3AyNTZyMSByZXN0YXJ0IG1heF9vcHM9MTAwMDAKLWRlcGVuZHNfb246TUJFRFRMU19FQ1BfRFBfU0VDUDI1NlIxX0VOQUJMRUQ6TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOk1CRURUTFNfRUNQX0RQX1NFQ1AyNTZSMV9FTkFCTEVEOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBlY2RzYV93cml0ZV9yZXN0YXJ0Ok1CRURUTFNfRUNQX0RQX1NFQ1AyNTZSMToiQzlBRkE5RDg0NUJBNzUxNjZCNUMyMTU3NjdCMUQ2OTM0RTUwQzNEQjM2RTg5QjEyN0I4QTYyMkIxMjBGNjcyMSI6TUJFRFRMU19NRF9TSEEyNTY6IjlGODZEMDgxODg0QzdENjU5QTJGRUFBMEM1NUFEMDE1QTNCRjRGMUIyQjBCODIyQ0QxNUQ2QzE1QjBGMDBBMDgiOiIzMDQ1MDIyMTAwZjFhYmIwMjM1MTgzNTFjZDcxZDg4MTU2N2IxZWE2NjNlZDNlZmNmNmM1MTMyYjM1NGYyOGQzYjBiN2QzODM2NzAyMjAwMTlmNDExMzc0MmEyYjE0YmQyNTkyNmI0OWM2NDkxNTVmMjY3ZTYwZDM4MTRiNGMwY2M4NDI1MGU0NmYwMDgzIjoxMDAwMDowOjAKIAogRUNEU0EgcmVzdGFydGFibGUgc2lnbi13cml0ZTogc2VjcDI1NnIxIHJlc3RhcnQgbWF4X29wcz0yNTAKLWRlcGVuZHNfb246TUJFRFRMU19FQ1BfRFBfU0VDUDI1NlIxX0VOQUJMRUQ6TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOk1CRURUTFNfRUNQX0RQX1NFQ1AyNTZSMV9FTkFCTEVEOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBlY2RzYV93cml0ZV9yZXN0YXJ0Ok1CRURUTFNfRUNQX0RQX1NFQ1AyNTZSMToiQzlBRkE5RDg0NUJBNzUxNjZCNUMyMTU3NjdCMUQ2OTM0RTUwQzNEQjM2RTg5QjEyN0I4QTYyMkIxMjBGNjcyMSI6TUJFRFRMU19NRF9TSEEyNTY6IjlGODZEMDgxODg0QzdENjU5QTJGRUFBMEM1NUFEMDE1QTNCRjRGMUIyQjBCODIyQ0QxNUQ2QzE1QjBGMDBBMDgiOiIzMDQ1MDIyMTAwZjFhYmIwMjM1MTgzNTFjZDcxZDg4MTU2N2IxZWE2NjNlZDNlZmNmNmM1MTMyYjM1NGYyOGQzYjBiN2QzODM2NzAyMjAwMTlmNDExMzc0MmEyYjE0YmQyNTkyNmI0OWM2NDkxNTVmMjY3ZTYwZDM4MTRiNGMwY2M4NDI1MGU0NmYwMDgzIjoyNTA6MjozMgogCiBFQ0RTQSB6ZXJvIHByaXZhdGUgcGFyYW1ldGVyIHAxOTIKZGlmZiAtLWdpdCBhL3Rlc3RzL3N1aXRlcy90ZXN0X3N1aXRlX2VjZHNhLmZ1bmN0aW9uIGIvdGVzdHMvc3VpdGVzL3Rlc3Rfc3VpdGVfZWNkc2EuZnVuY3Rpb24KaW5kZXggZjE2YTZkNC4uNzhjOTg3NSAxMDA2NDQKLS0tIGEvdGVzdHMvc3VpdGVzL3Rlc3Rfc3VpdGVfZWNkc2EuZnVuY3Rpb24KKysrIGIvdGVzdHMvc3VpdGVzL3Rlc3Rfc3VpdGVfZWNkc2EuZnVuY3Rpb24KQEAgLTIyNiw3ICsyMjYsNyBAQAogfQogLyogRU5EX0NBU0UgKi8KIAotLyogQkVHSU5fQ0FTRSBkZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NiAqLworLyogQkVHSU5fQ0FTRSBkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2ICovCiB2b2lkIGVjZHNhX3dyaXRlX3JlYWRfemVybyhpbnQgaWQpCiB7CiAgICAgbWJlZHRsc19lY2RzYV9jb250ZXh0IGN0eDsKQEAgLTI5MSw3ICsyOTEsNyBAQAogfQogLyogRU5EX0NBU0UgKi8KIAotLyogQkVHSU5fQ0FTRSBkZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NiAqLworLyogQkVHSU5fQ0FTRSBkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2ICovCiB2b2lkIGVjZHNhX3dyaXRlX3JlYWRfcmFuZG9tKGludCBpZCkKIHsKICAgICBtYmVkdGxzX2VjZHNhX2NvbnRleHQgY3R4OwpkaWZmIC0tZ2l0IGEvdGVzdHMvc3VpdGVzL3Rlc3Rfc3VpdGVfZWNqcGFrZS5mdW5jdGlvbiBiL3Rlc3RzL3N1aXRlcy90ZXN0X3N1aXRlX2VjanBha2UuZnVuY3Rpb24KaW5kZXggMTc3ZTA5YS4uNTM0YzdiYSAxMDA2NDQKLS0tIGEvdGVzdHMvc3VpdGVzL3Rlc3Rfc3VpdGVfZWNqcGFrZS5mdW5jdGlvbgorKysgYi90ZXN0cy9zdWl0ZXMvdGVzdF9zdWl0ZV9lY2pwYWtlLmZ1bmN0aW9uCkBAIC0xLDcgKzEsNyBAQAogLyogQkVHSU5fSEVBREVSICovCiAjaW5jbHVkZSAibWJlZHRscy9lY2pwYWtlLmgiCiAKLSNpZiBkZWZpbmVkKE1CRURUTFNfRUNQX0RQX1NFQ1AyNTZSMV9FTkFCTEVEKSAmJiBkZWZpbmVkKE1CRURUTFNfTURfQ0FOX1NIQTI1NikKKyNpZiBkZWZpbmVkKE1CRURUTFNfRUNQX0RQX1NFQ1AyNTZSMV9FTkFCTEVEKSAmJiBkZWZpbmVkKFBTQV9XQU5UX0FMR19TSEFfMjU2KQogc3RhdGljIGNvbnN0IHVuc2lnbmVkIGNoYXIgZWNqcGFrZV90ZXN0X3gxW10gPSB7CiAgICAgMHgwMSwgMHgwMiwgMHgwMywgMHgwNCwgMHgwNSwgMHgwNiwgMHgwNywgMHgwOCwgMHgwOSwgMHgwYSwgMHgwYiwgMHgwYywKICAgICAweDBkLCAweDBlLCAweDBmLCAweDEwLCAweDExLCAweDEyLCAweDEzLCAweDE0LCAweDE1LCAweDE2LCAweDE3LCAweDE4LApAQCAtOTAsNyArOTAsNyBAQAogfQogCiAjZGVmaW5lIEFERF9TSVpFKHgpICAgeCwgc2l6ZW9mKHgpCi0jZW5kaWYgLyogTUJFRFRMU19FQ1BfRFBfU0VDUDI1NlIxX0VOQUJMRUQgJiYgTUJFRFRMU19NRF9DQU5fU0hBMjU2ICovCisjZW5kaWYgLyogTUJFRFRMU19FQ1BfRFBfU0VDUDI1NlIxX0VOQUJMRUQgJiYgUFNBX1dBTlRfQUxHX1NIQV8yNTYgKi8KIC8qIEVORF9IRUFERVIgKi8KIAogLyogQkVHSU5fREVQRU5ERU5DSUVTCkBAIC0xMzUsNyArMTM1LDcgQEAKIH0KIC8qIEVORF9DQVNFICovCiAKLS8qIEJFR0lOX0NBU0UgZGVwZW5kc19vbjpNQkVEVExTX0VDUF9EUF9TRUNQMjU2UjFfRU5BQkxFRDpNQkVEVExTX01EX0NBTl9TSEEyNTYgKi8KKy8qIEJFR0lOX0NBU0UgZGVwZW5kc19vbjpNQkVEVExTX0VDUF9EUF9TRUNQMjU2UjFfRU5BQkxFRDpQU0FfV0FOVF9BTEdfU0hBXzI1NiAqLwogdm9pZCByZWFkX2JhZF9tZChkYXRhX3QgKm1zZykKIHsKICAgICBtYmVkdGxzX2VjanBha2VfY29udGV4dCBjb3JydXB0X2N0eDsKQEAgLTE2MCw3ICsxNjAsNyBAQAogfQogLyogRU5EX0NBU0UgKi8KIAotLyogQkVHSU5fQ0FTRSBkZXBlbmRzX29uOk1CRURUTFNfRUNQX0RQX1NFQ1AyNTZSMV9FTkFCTEVEOk1CRURUTFNfTURfQ0FOX1NIQTI1NiAqLworLyogQkVHSU5fQ0FTRSBkZXBlbmRzX29uOk1CRURUTFNfRUNQX0RQX1NFQ1AyNTZSMV9FTkFCTEVEOlBTQV9XQU5UX0FMR19TSEFfMjU2ICovCiB2b2lkIHJlYWRfcm91bmRfb25lKGludCByb2xlLCBkYXRhX3QgKm1zZywgaW50IHJlZl9yZXQpCiB7CiAgICAgbWJlZHRsc19lY2pwYWtlX2NvbnRleHQgY3R4OwpAQCAtMTgzLDcgKzE4Myw3IEBACiB9CiAvKiBFTkRfQ0FTRSAqLwogCi0vKiBCRUdJTl9DQVNFIGRlcGVuZHNfb246TUJFRFRMU19FQ1BfRFBfU0VDUDI1NlIxX0VOQUJMRUQ6TUJFRFRMU19NRF9DQU5fU0hBMjU2ICovCisvKiBCRUdJTl9DQVNFIGRlcGVuZHNfb246TUJFRFRMU19FQ1BfRFBfU0VDUDI1NlIxX0VOQUJMRUQ6UFNBX1dBTlRfQUxHX1NIQV8yNTYgKi8KIHZvaWQgcmVhZF9yb3VuZF90d29fY2xpKGRhdGFfdCAqbXNnLCBpbnQgcmVmX3JldCkKIHsKICAgICBtYmVkdGxzX2VjanBha2VfY29udGV4dCBjdHg7CkBAIC0yMTIsNyArMjEyLDcgQEAKIH0KIC8qIEVORF9DQVNFICovCiAKLS8qIEJFR0lOX0NBU0UgZGVwZW5kc19vbjpNQkVEVExTX0VDUF9EUF9TRUNQMjU2UjFfRU5BQkxFRDpNQkVEVExTX01EX0NBTl9TSEEyNTYgKi8KKy8qIEJFR0lOX0NBU0UgZGVwZW5kc19vbjpNQkVEVExTX0VDUF9EUF9TRUNQMjU2UjFfRU5BQkxFRDpQU0FfV0FOVF9BTEdfU0hBXzI1NiAqLwogdm9pZCByZWFkX3JvdW5kX3R3b19zcnYoZGF0YV90ICptc2csIGludCByZWZfcmV0KQogewogICAgIG1iZWR0bHNfZWNqcGFrZV9jb250ZXh0IGN0eDsKZGlmZiAtLWdpdCBhL3Rlc3RzL3N1aXRlcy90ZXN0X3N1aXRlX2VudHJvcHkuZGF0YSBiL3Rlc3RzL3N1aXRlcy90ZXN0X3N1aXRlX2VudHJvcHkuZGF0YQppbmRleCAwYjMwYmI4Li41MTRmY2VkIDEwMDY0NAotLS0gYS90ZXN0cy9zdWl0ZXMvdGVzdF9zdWl0ZV9lbnRyb3B5LmRhdGEKKysrIGIvdGVzdHMvc3VpdGVzL3Rlc3Rfc3VpdGVfZW50cm9weS5kYXRhCkBAIC04LDcgKzgsNyBAQAogbnZfc2VlZF9maWxlX2NyZWF0ZToKIAogRW50cm9weSB3cml0ZS91cGRhdGUgc2VlZCBmaWxlOiBnb29kCi1lbnRyb3B5X3NlZWRfZmlsZToiZGF0YV9maWxlcy9lbnRyb3B5X3NlZWQiOjAKK2VudHJvcHlfc2VlZF9maWxlOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9lbnRyb3B5X3NlZWQiOjAKIAogRW50cm9weSB3cml0ZS91cGRhdGUgc2VlZCBmaWxlOiBub25leGlzdGVudAogZW50cm9weV9zZWVkX2ZpbGU6Im5vX3N1Y2hfZGlyL2ZpbGUiOk1CRURUTFNfRVJSX0VOVFJPUFlfRklMRV9JT19FUlJPUgpAQCAtMzgsNyArMzgsNyBAQAogZW50cm9weV9mdW5jX2xlbjo2NTpNQkVEVExTX0VSUl9FTlRST1BZX1NPVVJDRV9GQUlMRUQKIAogRW50cm9weSBmYWlsaW5nIHNvdXJjZQotZW50cm9weV9zb3VyY2VfZmFpbDoiZGF0YV9maWxlcy9lbnRyb3B5X3NlZWQiCitlbnRyb3B5X3NvdXJjZV9mYWlsOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9lbnRyb3B5X3NlZWQiCiAKIEVudHJvcHkgdGhyZXNob2xkOiAxNj0yKjgKIGVudHJvcHlfdGhyZXNob2xkOjE2OjI6OApkaWZmIC0tZ2l0IGEvdGVzdHMvc3VpdGVzL3Rlc3Rfc3VpdGVfaGtkZi5kYXRhIGIvdGVzdHMvc3VpdGVzL3Rlc3Rfc3VpdGVfaGtkZi5kYXRhCmluZGV4IGMzYmI0ZGIuLjBlN2FlNmUgMTAwNjQ0Ci0tLSBhL3Rlc3RzL3N1aXRlcy90ZXN0X3N1aXRlX2hrZGYuZGF0YQorKysgYi90ZXN0cy9zdWl0ZXMvdGVzdF9zdWl0ZV9oa2RmLmRhdGEKQEAgLTE0LDE1ICsxNCwxNSBAQAogdGVzdF9oa2RmX2V4cGFuZF9yZXQ6MzI6MzI6ODE5MjpNQkVEVExTX0VSUl9IS0RGX0JBRF9JTlBVVF9EQVRBCiAKIEhLREYgUkZDNTg2OSBUZXN0IFZlY3RvciAjMQotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHRlc3RfaGtkZjpNQkVEVExTX01EX1NIQTI1NjoiMGIwYjBiMGIwYjBiMGIwYjBiMGIwYjBiMGIwYjBiMGIwYjBiMGIwYjBiMGIiOiIwMDAxMDIwMzA0MDUwNjA3MDgwOTBhMGIwYyI6ImYwZjFmMmYzZjRmNWY2ZjdmOGY5IjoiM2NiMjVmMjVmYWFjZDU3YTkwNDM0ZjY0ZDAzNjJmMmEyZDJkMGE5MGNmMWE1YTRjNWRiMDJkNTZlY2M0YzViZjM0MDA3MjA4ZDViODg3MTg1ODY1IgogCiBIS0RGIFJGQzU4NjkgVGVzdCBWZWN0b3IgIzIKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2CiB0ZXN0X2hrZGY6TUJFRFRMU19NRF9TSEEyNTY6IjAwMDEwMjAzMDQwNTA2MDcwODA5MGEwYjBjMGQwZTBmMTAxMTEyMTMxNDE1MTYxNzE4MTkxYTFiMWMxZDFlMWYyMDIxMjIyMzI0MjUyNjI3MjgyOTJhMmIyYzJkMmUyZjMwMzEzMjMzMzQzNTM2MzczODM5M2EzYjNjM2QzZTNmNDA0MTQyNDM0NDQ1NDY0NzQ4NDk0YTRiNGM0ZDRlNGYiOiI2MDYxNjI2MzY0NjU2NjY3Njg2OTZhNmI2YzZkNmU2ZjcwNzE3MjczNzQ3NTc2Nzc3ODc5N2E3YjdjN2Q3ZTdmODA4MTgyODM4NDg1ODY4Nzg4ODk4YThiOGM4ZDhlOGY5MDkxOTI5Mzk0OTU5Njk3OTg5OTlhOWI5YzlkOWU5ZmEwYTFhMmEzYTRhNWE2YTdhOGE5YWFhYmFjYWRhZWFmIjoiYjBiMWIyYjNiNGI1YjZiN2I4YjliYWJiYmNiZGJlYmZjMGMxYzJjM2M0YzVjNmM3YzhjOWNhY2JjY2NkY2VjZmQwZDFkMmQzZDRkNWQ2ZDdkOGQ5ZGFkYmRjZGRkZWRmZTBlMWUyZTNlNGU1ZTZlN2U4ZTllYWViZWNlZGVlZWZmMGYxZjJmM2Y0ZjVmNmY3ZjhmOWZhZmJmY2ZkZmVmZiI6ImIxMWUzOThkYzgwMzI3YTFjOGU3Zjc4YzU5NmE0OTM0NGYwMTJlZGEyZDRlZmFkOGEwNTBjYzRjMTlhZmE5N2M1OTA0NWE5OWNhYzc4MjcyNzFjYjQxYzY1ZTU5MGUwOWRhMzI3NTYwMGMyZjA5YjgzNjc3OTNhOWFjYTNkYjcxY2MzMGM1ODE3OWVjM2U4N2MxNGMwMWQ1YzFmMzQzNGYxZDg3IgogCiBIS0RGIFJGQzU4NjkgVGVzdCBWZWN0b3IgIzMKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2CiB0ZXN0X2hrZGY6TUJFRFRMU19NRF9TSEEyNTY6IjBiMGIwYjBiMGIwYjBiMGIwYjBiMGIwYjBiMGIwYjBiMGIwYjBiMGIwYjBiIjoiIjoiIjoiOGRhNGU3NzVhNTYzYzE4ZjcxNWY4MDJhMDYzYzVhMzFiOGExMWY1YzVlZTE4NzllYzM0NTRlNWYzYzczOGQyZDlkMjAxMzk1ZmFhNGI2MWE5NmM4IgogCiBIS0RGIFJGQzU4NjkgVGVzdCBWZWN0b3IgIzQKQEAgLTQyLDE1ICs0MiwxNSBAQAogdGVzdF9oa2RmOk1CRURUTFNfTURfU0hBMToiMGMwYzBjMGMwYzBjMGMwYzBjMGMwYzBjMGMwYzBjMGMwYzBjMGMwYzBjMGMiOiIiOiIiOiIyYzkxMTE3MjA0ZDc0NWYzNTAwZDYzNmE2MmY2NGYwYWIzYmFlNTQ4YWE1M2Q0MjNiMGQxZjI3ZWJiYTZmNWU1NjczYTA4MWQ3MGNjZTdhY2ZjNDgiCiAKIEhLREYgUkZDNTg2OSBUZXN0IFZlY3RvciAjMSBFeHRyYWN0Ci1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NgogdGVzdF9oa2RmX2V4dHJhY3Q6TUJFRFRMU19NRF9TSEEyNTY6IjBiMGIwYjBiMGIwYjBiMGIwYjBiMGIwYjBiMGIwYjBiMGIwYjBiMGIwYjBiIjoiMDAwMTAyMDMwNDA1MDYwNzA4MDkwYTBiMGMiOiIwNzc3MDkzNjJjMmUzMmRmMGRkYzNmMGRjNDdiYmE2MzkwYjZjNzNiYjUwZjljMzEyMmVjODQ0YWQ3YzJiM2U1IgogCiBIS0RGIFJGQzU4NjkgVGVzdCBWZWN0b3IgIzIgRXh0cmFjdAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHRlc3RfaGtkZl9leHRyYWN0Ok1CRURUTFNfTURfU0hBMjU2OiIwMDAxMDIwMzA0MDUwNjA3MDgwOTBhMGIwYzBkMGUwZjEwMTExMjEzMTQxNTE2MTcxODE5MWExYjFjMWQxZTFmMjAyMTIyMjMyNDI1MjYyNzI4MjkyYTJiMmMyZDJlMmYzMDMxMzIzMzM0MzUzNjM3MzgzOTNhM2IzYzNkM2UzZjQwNDE0MjQzNDQ0NTQ2NDc0ODQ5NGE0YjRjNGQ0ZTRmIjoiNjA2MTYyNjM2NDY1NjY2NzY4Njk2YTZiNmM2ZDZlNmY3MDcxNzI3Mzc0NzU3Njc3Nzg3OTdhN2I3YzdkN2U3ZjgwODE4MjgzODQ4NTg2ODc4ODg5OGE4YjhjOGQ4ZThmOTA5MTkyOTM5NDk1OTY5Nzk4OTk5YTliOWM5ZDllOWZhMGExYTJhM2E0YTVhNmE3YThhOWFhYWJhY2FkYWVhZiI6IjA2YTZiODhjNTg1MzM2MWEwNjEwNGM5Y2ViMzViNDVjZWY3NjAwMTQ5MDQ2NzEwMTRhMTkzZjQwYzE1ZmMyNDQiCiAKIEhLREYgUkZDNTg2OSBUZXN0IFZlY3RvciAjMyBFeHRyYWN0Ci1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NgogdGVzdF9oa2RmX2V4dHJhY3Q6TUJFRFRMU19NRF9TSEEyNTY6IjBiMGIwYjBiMGIwYjBiMGIwYjBiMGIwYjBiMGIwYjBiMGIwYjBiMGIwYjBiIjoiIjoiMTllZjI0YTMyYzcxN2IxNjdmMzNhOTFkNmY2NDhiZGY5NjU5Njc3NmFmZGI2Mzc3YWM0MzRjMWMyOTNjY2IwNCIKIAogSEtERiBSRkM1ODY5IFRlc3QgVmVjdG9yICM0IEV4dHJhY3QKQEAgLTcwLDE1ICs3MCwxNSBAQAogdGVzdF9oa2RmX2V4dHJhY3Q6TUJFRFRMU19NRF9TSEExOiIwYzBjMGMwYzBjMGMwYzBjMGMwYzBjMGMwYzBjMGMwYzBjMGMwYzBjMGMwYyI6IiI6IjJhZGNjYWRhMTg3NzllN2MyMDc3YWQyZWIxOWQzZjNlNzMxMzg1ZGQiCiAKIEhLREYgUkZDNTg2OSBUZXN0IFZlY3RvciAjMSBFeHBhbmQKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2CiB0ZXN0X2hrZGZfZXhwYW5kOk1CRURUTFNfTURfU0hBMjU2OiJmMGYxZjJmM2Y0ZjVmNmY3ZjhmOSI6IjA3NzcwOTM2MmMyZTMyZGYwZGRjM2YwZGM0N2JiYTYzOTBiNmM3M2JiNTBmOWMzMTIyZWM4NDRhZDdjMmIzZTUiOiIzY2IyNWYyNWZhYWNkNTdhOTA0MzRmNjRkMDM2MmYyYTJkMmQwYTkwY2YxYTVhNGM1ZGIwMmQ1NmVjYzRjNWJmMzQwMDcyMDhkNWI4ODcxODU4NjUiCiAKIEhLREYgUkZDNTg2OSBUZXN0IFZlY3RvciAjMiBFeHBhbmQKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2CiB0ZXN0X2hrZGZfZXhwYW5kOk1CRURUTFNfTURfU0hBMjU2OiJiMGIxYjJiM2I0YjViNmI3YjhiOWJhYmJiY2JkYmViZmMwYzFjMmMzYzRjNWM2YzdjOGM5Y2FjYmNjY2RjZWNmZDBkMWQyZDNkNGQ1ZDZkN2Q4ZDlkYWRiZGNkZGRlZGZlMGUxZTJlM2U0ZTVlNmU3ZThlOWVhZWJlY2VkZWVlZmYwZjFmMmYzZjRmNWY2ZjdmOGY5ZmFmYmZjZmRmZWZmIjoiMDZhNmI4OGM1ODUzMzYxYTA2MTA0YzljZWIzNWI0NWNlZjc2MDAxNDkwNDY3MTAxNGExOTNmNDBjMTVmYzI0NCI6ImIxMWUzOThkYzgwMzI3YTFjOGU3Zjc4YzU5NmE0OTM0NGYwMTJlZGEyZDRlZmFkOGEwNTBjYzRjMTlhZmE5N2M1OTA0NWE5OWNhYzc4MjcyNzFjYjQxYzY1ZTU5MGUwOWRhMzI3NTYwMGMyZjA5YjgzNjc3OTNhOWFjYTNkYjcxY2MzMGM1ODE3OWVjM2U4N2MxNGMwMWQ1YzFmMzQzNGYxZDg3IgogCiBIS0RGIFJGQzU4NjkgVGVzdCBWZWN0b3IgIzMgRXhwYW5kCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NgogdGVzdF9oa2RmX2V4cGFuZDpNQkVEVExTX01EX1NIQTI1NjoiIjoiMTllZjI0YTMyYzcxN2IxNjdmMzNhOTFkNmY2NDhiZGY5NjU5Njc3NmFmZGI2Mzc3YWM0MzRjMWMyOTNjY2IwNCI6IjhkYTRlNzc1YTU2M2MxOGY3MTVmODAyYTA2M2M1YTMxYjhhMTFmNWM1ZWUxODc5ZWMzNDU0ZTVmM2M3MzhkMmQ5ZDIwMTM5NWZhYTRiNjFhOTZjOCIKIAogSEtERiBSRkM1ODY5IFRlc3QgVmVjdG9yICM0IEV4cGFuZApkaWZmIC0tZ2l0IGEvdGVzdHMvc3VpdGVzL3Rlc3Rfc3VpdGVfaG1hY19kcmJnLm1pc2MuZGF0YSBiL3Rlc3RzL3N1aXRlcy90ZXN0X3N1aXRlX2htYWNfZHJiZy5taXNjLmRhdGEKaW5kZXggNjg4NjZkNy4uNjRkYjg1NyAxMDA2NDQKLS0tIGEvdGVzdHMvc3VpdGVzL3Rlc3Rfc3VpdGVfaG1hY19kcmJnLm1pc2MuZGF0YQorKysgYi90ZXN0cy9zdWl0ZXMvdGVzdF9zdWl0ZV9obWFjX2RyYmcubWlzYy5kYXRhCkBAIC0zLDE1ICszLDE1IEBACiBobWFjX2RyYmdfZW50cm9weV91c2FnZTpNQkVEVExTX01EX1NIQTEKIAogSE1BQ19EUkJHIGVudHJvcHkgdXNhZ2UgU0hBLTIyNAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyMjQKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yMjQKIGhtYWNfZHJiZ19lbnRyb3B5X3VzYWdlOk1CRURUTFNfTURfU0hBMjI0CiAKIEhNQUNfRFJCRyBlbnRyb3B5IHVzYWdlIFNIQS0yNTYKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBobWFjX2RyYmdfZW50cm9weV91c2FnZTpNQkVEVExTX01EX1NIQTI1NgogCiBITUFDX0RSQkcgZW50cm9weSB1c2FnZSBTSEEtMzg0Ci1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTM4NAorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzM4NAogaG1hY19kcmJnX2VudHJvcHlfdXNhZ2U6TUJFRFRMU19NRF9TSEEzODQKIAogSE1BQ19EUkJHIGVudHJvcHkgdXNhZ2UgU0hBLTUxMgpAQCAtMTksOTEgKzE5LDkxIEBACiBobWFjX2RyYmdfZW50cm9weV91c2FnZTpNQkVEVExTX01EX1NIQTUxMgogCiBITUFDX0RSQkcgZW50cm9weSB1c2FnZSBTSEEzLTIyNAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEzXzIyNAorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBM18yMjQKIGhtYWNfZHJiZ19lbnRyb3B5X3VzYWdlOk1CRURUTFNfTURfU0hBM18yMjQKIAogSE1BQ19EUkJHIGVudHJvcHkgdXNhZ2UgU0hBMy0yNTYKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBM18yNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQTNfMjU2CiBobWFjX2RyYmdfZW50cm9weV91c2FnZTpNQkVEVExTX01EX1NIQTNfMjU2CiAKIEhNQUNfRFJCRyBlbnRyb3B5IHVzYWdlIFNIQTMtMzg0Ci1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTNfMzg0CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEEzXzM4NAogaG1hY19kcmJnX2VudHJvcHlfdXNhZ2U6TUJFRFRMU19NRF9TSEEzXzM4NAogCiBITUFDX0RSQkcgZW50cm9weSB1c2FnZSBTSEEzLTUxMgotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEzXzUxMgorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBM181MTIKIGhtYWNfZHJiZ19lbnRyb3B5X3VzYWdlOk1CRURUTFNfTURfU0hBM181MTIKIAogSE1BQ19EUkJHIHdyaXRlL3VwZGF0ZSBzZWVkIGZpbGUgU0hBLTEgWyMxXQogZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEExCi1obWFjX2RyYmdfc2VlZF9maWxlOk1CRURUTFNfTURfU0hBMToiZGF0YV9maWxlcy9obWFjX2RyYmdfc2VlZCI6MAoraG1hY19kcmJnX3NlZWRfZmlsZTpNQkVEVExTX01EX1NIQTE6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL2htYWNfZHJiZ19zZWVkIjowCiAKIEhNQUNfRFJCRyB3cml0ZS91cGRhdGUgc2VlZCBmaWxlIFNIQS0xIFsjMl0KIGRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMQogaG1hY19kcmJnX3NlZWRfZmlsZTpNQkVEVExTX01EX1NIQTE6Im5vX3N1Y2hfZGlyL2ZpbGUiOk1CRURUTFNfRVJSX0hNQUNfRFJCR19GSUxFX0lPX0VSUk9SCiAKIEhNQUNfRFJCRyB3cml0ZS91cGRhdGUgc2VlZCBmaWxlIFNIQS0yMjQgWyMxXQotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyMjQKLWhtYWNfZHJiZ19zZWVkX2ZpbGU6TUJFRFRMU19NRF9TSEEyMjQ6ImRhdGFfZmlsZXMvaG1hY19kcmJnX3NlZWQiOjAKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yMjQKK2htYWNfZHJiZ19zZWVkX2ZpbGU6TUJFRFRMU19NRF9TSEEyMjQ6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL2htYWNfZHJiZ19zZWVkIjowCiAKIEhNQUNfRFJCRyB3cml0ZS91cGRhdGUgc2VlZCBmaWxlIFNIQS0yMjQgWyMyXQotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyMjQKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yMjQKIGhtYWNfZHJiZ19zZWVkX2ZpbGU6TUJFRFRMU19NRF9TSEEyMjQ6Im5vX3N1Y2hfZGlyL2ZpbGUiOk1CRURUTFNfRVJSX0hNQUNfRFJCR19GSUxFX0lPX0VSUk9SCiAKIEhNQUNfRFJCRyB3cml0ZS91cGRhdGUgc2VlZCBmaWxlIFNIQS0yNTYgWyMxXQotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKLWhtYWNfZHJiZ19zZWVkX2ZpbGU6TUJFRFRMU19NRF9TSEEyNTY6ImRhdGFfZmlsZXMvaG1hY19kcmJnX3NlZWQiOjAKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKK2htYWNfZHJiZ19zZWVkX2ZpbGU6TUJFRFRMU19NRF9TSEEyNTY6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL2htYWNfZHJiZ19zZWVkIjowCiAKIEhNQUNfRFJCRyB3cml0ZS91cGRhdGUgc2VlZCBmaWxlIFNIQS0yNTYgWyMyXQotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIGhtYWNfZHJiZ19zZWVkX2ZpbGU6TUJFRFRMU19NRF9TSEEyNTY6Im5vX3N1Y2hfZGlyL2ZpbGUiOk1CRURUTFNfRVJSX0hNQUNfRFJCR19GSUxFX0lPX0VSUk9SCiAKIEhNQUNfRFJCRyB3cml0ZS91cGRhdGUgc2VlZCBmaWxlIFNIQS0zODQgWyMxXQotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEzODQKLWhtYWNfZHJiZ19zZWVkX2ZpbGU6TUJFRFRMU19NRF9TSEEzODQ6ImRhdGFfZmlsZXMvaG1hY19kcmJnX3NlZWQiOjAKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8zODQKK2htYWNfZHJiZ19zZWVkX2ZpbGU6TUJFRFRMU19NRF9TSEEzODQ6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL2htYWNfZHJiZ19zZWVkIjowCiAKIEhNQUNfRFJCRyB3cml0ZS91cGRhdGUgc2VlZCBmaWxlIFNIQS0zODQgWyMyXQotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEzODQKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8zODQKIGhtYWNfZHJiZ19zZWVkX2ZpbGU6TUJFRFRMU19NRF9TSEEzODQ6Im5vX3N1Y2hfZGlyL2ZpbGUiOk1CRURUTFNfRVJSX0hNQUNfRFJCR19GSUxFX0lPX0VSUk9SCiAKIEhNQUNfRFJCRyB3cml0ZS91cGRhdGUgc2VlZCBmaWxlIFNIQS01MTIgWyMxXQogZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEE1MTIKLWhtYWNfZHJiZ19zZWVkX2ZpbGU6TUJFRFRMU19NRF9TSEE1MTI6ImRhdGFfZmlsZXMvaG1hY19kcmJnX3NlZWQiOjAKK2htYWNfZHJiZ19zZWVkX2ZpbGU6TUJFRFRMU19NRF9TSEE1MTI6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL2htYWNfZHJiZ19zZWVkIjowCiAKIEhNQUNfRFJCRyB3cml0ZS91cGRhdGUgc2VlZCBmaWxlIFNIQS01MTIgWyMyXQogZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEE1MTIKIGhtYWNfZHJiZ19zZWVkX2ZpbGU6TUJFRFRMU19NRF9TSEE1MTI6Im5vX3N1Y2hfZGlyL2ZpbGUiOk1CRURUTFNfRVJSX0hNQUNfRFJCR19GSUxFX0lPX0VSUk9SCiAKIEhNQUNfRFJCRyB3cml0ZS91cGRhdGUgc2VlZCBmaWxlIFNIQTMtMjI0IFsjMV0KLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBM18yMjQKLWhtYWNfZHJiZ19zZWVkX2ZpbGU6TUJFRFRMU19NRF9TSEEzXzIyNDoiZGF0YV9maWxlcy9obWFjX2RyYmdfc2VlZCI6MAorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBM18yMjQKK2htYWNfZHJiZ19zZWVkX2ZpbGU6TUJFRFRMU19NRF9TSEEzXzIyNDoiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvaG1hY19kcmJnX3NlZWQiOjAKIAogSE1BQ19EUkJHIHdyaXRlL3VwZGF0ZSBzZWVkIGZpbGUgU0hBMy0yMjQgWyMyXQotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEzXzIyNAorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBM18yMjQKIGhtYWNfZHJiZ19zZWVkX2ZpbGU6TUJFRFRMU19NRF9TSEEzXzIyNDoibm9fc3VjaF9kaXIvZmlsZSI6TUJFRFRMU19FUlJfSE1BQ19EUkJHX0ZJTEVfSU9fRVJST1IKIAogSE1BQ19EUkJHIHdyaXRlL3VwZGF0ZSBzZWVkIGZpbGUgU0hBMy0yNTYgWyMxXQotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEzXzI1NgotaG1hY19kcmJnX3NlZWRfZmlsZTpNQkVEVExTX01EX1NIQTNfMjU2OiJkYXRhX2ZpbGVzL2htYWNfZHJiZ19zZWVkIjowCitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEEzXzI1NgoraG1hY19kcmJnX3NlZWRfZmlsZTpNQkVEVExTX01EX1NIQTNfMjU2OiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9obWFjX2RyYmdfc2VlZCI6MAogCiBITUFDX0RSQkcgd3JpdGUvdXBkYXRlIHNlZWQgZmlsZSBTSEEzLTI1NiBbIzJdCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTNfMjU2CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEEzXzI1NgogaG1hY19kcmJnX3NlZWRfZmlsZTpNQkVEVExTX01EX1NIQTNfMjU2OiJub19zdWNoX2Rpci9maWxlIjpNQkVEVExTX0VSUl9ITUFDX0RSQkdfRklMRV9JT19FUlJPUgogCiBITUFDX0RSQkcgd3JpdGUvdXBkYXRlIHNlZWQgZmlsZSBTSEEzLTM4NCBbIzFdCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTNfMzg0Ci1obWFjX2RyYmdfc2VlZF9maWxlOk1CRURUTFNfTURfU0hBM18zODQ6ImRhdGFfZmlsZXMvaG1hY19kcmJnX3NlZWQiOjAKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQTNfMzg0CitobWFjX2RyYmdfc2VlZF9maWxlOk1CRURUTFNfTURfU0hBM18zODQ6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL2htYWNfZHJiZ19zZWVkIjowCiAKIEhNQUNfRFJCRyB3cml0ZS91cGRhdGUgc2VlZCBmaWxlIFNIQTMtMzg0IFsjMl0KLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBM18zODQKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQTNfMzg0CiBobWFjX2RyYmdfc2VlZF9maWxlOk1CRURUTFNfTURfU0hBM18zODQ6Im5vX3N1Y2hfZGlyL2ZpbGUiOk1CRURUTFNfRVJSX0hNQUNfRFJCR19GSUxFX0lPX0VSUk9SCiAKIEhNQUNfRFJCRyB3cml0ZS91cGRhdGUgc2VlZCBmaWxlIFNIQTMtNTEyIFsjMV0KLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBM181MTIKLWhtYWNfZHJiZ19zZWVkX2ZpbGU6TUJFRFRMU19NRF9TSEEzXzUxMjoiZGF0YV9maWxlcy9obWFjX2RyYmdfc2VlZCI6MAorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBM181MTIKK2htYWNfZHJiZ19zZWVkX2ZpbGU6TUJFRFRMU19NRF9TSEEzXzUxMjoiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvaG1hY19kcmJnX3NlZWQiOjAKIAogSE1BQ19EUkJHIHdyaXRlL3VwZGF0ZSBzZWVkIGZpbGUgU0hBMy01MTIgWyMyXQotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEzXzUxMgorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBM181MTIKIGhtYWNfZHJiZ19zZWVkX2ZpbGU6TUJFRFRMU19NRF9TSEEzXzUxMjoibm9fc3VjaF9kaXIvZmlsZSI6TUJFRFRMU19FUlJfSE1BQ19EUkJHX0ZJTEVfSU9fRVJST1IKIAogSE1BQ19EUkJHIGZyb20gYnVmZmVyIFNIQS0xCkBAIC0xMTEsMTUgKzExMSwxNSBAQAogaG1hY19kcmJnX2J1ZjpNQkVEVExTX01EX1NIQTEKIAogSE1BQ19EUkJHIGZyb20gYnVmZmVyIFNIQS0yMjQKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjI0CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjI0CiBobWFjX2RyYmdfYnVmOk1CRURUTFNfTURfU0hBMjI0CiAKIEhNQUNfRFJCRyBmcm9tIGJ1ZmZlciBTSEEtMjU2Ci1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NgogaG1hY19kcmJnX2J1ZjpNQkVEVExTX01EX1NIQTI1NgogCiBITUFDX0RSQkcgZnJvbSBidWZmZXIgU0hBLTM4NAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEzODQKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8zODQKIGhtYWNfZHJiZ19idWY6TUJFRFRMU19NRF9TSEEzODQKIAogSE1BQ19EUkJHIGZyb20gYnVmZmVyIFNIQS01MTIKQEAgLTEyNywxOSArMTI3LDE5IEBACiBobWFjX2RyYmdfYnVmOk1CRURUTFNfTURfU0hBNTEyCiAKIEhNQUNfRFJCRyBmcm9tIGJ1ZmZlciBTSEEzLTIyNAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEzXzIyNAorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBM18yMjQKIGhtYWNfZHJiZ19idWY6TUJFRFRMU19NRF9TSEEzXzIyNAogCiBITUFDX0RSQkcgZnJvbSBidWZmZXIgU0hBMy0yNTYKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBM18yNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQTNfMjU2CiBobWFjX2RyYmdfYnVmOk1CRURUTFNfTURfU0hBM18yNTYKIAogSE1BQ19EUkJHIGZyb20gYnVmZmVyIFNIQTMtMzg0Ci1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTNfMzg0CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEEzXzM4NAogaG1hY19kcmJnX2J1ZjpNQkVEVExTX01EX1NIQTNfMzg0CiAKIEhNQUNfRFJCRyBmcm9tIGJ1ZmZlciBTSEEzLTUxMgotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEzXzUxMgorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBM181MTIKIGhtYWNfZHJiZ19idWY6TUJFRFRMU19NRF9TSEEzXzUxMgogCiBITUFDX0RSQkcgc2VsZiB0ZXN0CmRpZmYgLS1naXQgYS90ZXN0cy9zdWl0ZXMvdGVzdF9zdWl0ZV9obWFjX2RyYmcubm9fcmVzZWVkLmRhdGEgYi90ZXN0cy9zdWl0ZXMvdGVzdF9zdWl0ZV9obWFjX2RyYmcubm9fcmVzZWVkLmRhdGEKaW5kZXggYTZmNTBhZC4uNjQ1OWQ2ZSAxMDA2NDQKLS0tIGEvdGVzdHMvc3VpdGVzL3Rlc3Rfc3VpdGVfaG1hY19kcmJnLm5vX3Jlc2VlZC5kYXRhCisrKyBiL3Rlc3RzL3N1aXRlcy90ZXN0X3N1aXRlX2htYWNfZHJiZy5ub19yZXNlZWQuZGF0YQpAQCAtMjM5LDcyMyArMjM5LDcyMyBAQAogaG1hY19kcmJnX25vX3Jlc2VlZDpNQkVEVExTX01EX1NIQTE6IjNlMzI1ZGFhYjMzMDE4NTYwNDRmNDE2ZjI1MGI2MTYxZTQ0N2U2M2Q4NWNhMDg0ZiI6ImE5ZDJhNTNkYmQ3ZWY0YjkxNTBkZDBlZDRkMDAyZTU2IjoiNGRlNmM5MjMzNDZkN2FkYzE2YmJlODliOWExODRhNzkiOiI5ZTllMzQxMjYzNWFlYzZmY2ZiOWQwMGRhMGM0OWZiMyI6IjQ4YWM4NjQ2YjMzNGU3NDM0ZTVmNzNkNjBhOGY2NzQxZTQ3MmJhYWJlNTI1MjU3Yjc4MTUxYzIwODcyZjMzMWMxNjlhYmUyNWZhZjgwMDk5MWYzZDBhNDVjNjVlNzEyNjFiZTBjOGUxNGExYThhNmRmOWM2YTgwODM0YTRmMjIzN2UyM2FiZDc1MGY4NDVjY2JiNGE0NjI1MGFiMWJiNjMiCiAKIEhNQUNfRFJCRyBOSVNUIENBVlMgMTQuMyBObyBSZXNlZWQgKFNIQS0yMjQsMTkyKzk2LDAsMCkgIzAKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjI0CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjI0CiBobWFjX2RyYmdfbm9fcmVzZWVkOk1CRURUTFNfTURfU0hBMjI0OiJhNzZlNzdhOTY5YWI5MjY0NTE4MWYwMTU3ODAyNTIzNzQ2YzM0YmYzMjE4Njc2NDEwNTFlZDZiYTM5MzY4MDMzYWRjOTNkNGUiOiIiOiIiOiIiOiI4OTI1OTg3ZGI1NTY2ZTYwNTIwZjA5YmRkZGFiNDg4MjkyYmVkOTJjZDM4NWU1YjZmYzIyM2UxOTE5NjQwYjRlMzRlMzQ1NzUwMzNlNTZjMGE4ZjYwOGJlMjFkM2QyMjFjNjdkMzlhYmVjOThkODEzMTJmM2EyNjUzZDU1ZmZiZjQ0YzMzN2M4MmJlZDMxNGMyMTFiZTIzZWMzOTQzOTliYTM1MWM0Njg3ZGNlNjQ5ZTdjMmExYmE3YjBiNWRhYjEyNTY3MWIxYmNmOTAwOGRhNjVjYWQ2MTJkOTVkZGM5MiIKIAogSE1BQ19EUkJHIE5JU1QgQ0FWUyAxNC4zIE5vIFJlc2VlZCAoU0hBLTIyNCwxOTIrOTYsMCwwKSAjMQotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyMjQKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yMjQKIGhtYWNfZHJiZ19ub19yZXNlZWQ6TUJFRFRMU19NRF9TSEEyMjQ6IjY1Y2RhYTVhYjE0N2QwYzc5ZmRkMDJiMjRmYzk0ZDBlNDI3ZjU5ZWY5YTMxZjQ0NzQ1OGM2YmVmZTBjMmNkZTVhNThjNmI3ZCI6IiI6IiI6IiI6IjBkMTY0NjgyYjViYjU1MmE1M2EyYTk0MjM3MzYzOWQ5ODU3NjQ1MGNhNjMyZmFlYmMxNTA2MDY5MWE0MjE5NDY3YzVhYTEwNjAzNGNkMTlhMjE0YTBhNGYzMWQ0MDJlNjhjNGM1NjVmNDliMzNiNjgwZDUyMmVmMjVmNTQxZTgyMDJiZTc3OTczMDM3NmZkY2Y1YjdiNThmZDZhYzk1OTIwNGE4OGY5MTAwODY1MWQyYzAyYWRhODI1MDVmOTE0ZDRkOWI5YWVhNzk2Nzc4NGU1MzIwZTE4NWUxMjQ4MjcwIgogCiBITUFDX0RSQkcgTklTVCBDQVZTIDE0LjMgTm8gUmVzZWVkIChTSEEtMjI0LDE5Mis5NiwwLDApICMyCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTIyNAorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzIyNAogaG1hY19kcmJnX25vX3Jlc2VlZDpNQkVEVExTX01EX1NIQTIyNDoiNjUwOTk2ZjE0NzcxMTJhZjc2MDQzODZiZTVhY2U3ODIzMjkwNDMxNWQ5OWQ4N2Q3MmEwNjcwOWQzMzFhNmY5MzBiNDQ3Y2Y1IjoiIjoiIjoiIjoiZDMzNDFkNzc2N2NmZDk1NjQwYTEwN2IzYWJhZWQ3YjRlMTg1NWIzNDhlM2FlNWJjYzUzYTBiMGQ0OWQ0YjQ5NzY4MzdlYzhmMzc2ZjM4MzI3MTM1NTc4ZWNhN2VlNTgzMjE1YmQ1Yzc5ZWJmNDk5ODE2Zjc5YWZjYzQwMmZmMWU5ZmZjNGFkMGY4OTY3NjFjOWNmZjc1MDUwYmY4NGJhYTE5NGMzNTU3NjNiMTZiNWQyNjQ4ZDQ4MGEyYjQ4ZjIyNjYyNjg1ZGUzOWM3Y2VlOTBhYTBiNmVkZjgwNjJlNDIiCiAKIEhNQUNfRFJCRyBOSVNUIENBVlMgMTQuMyBObyBSZXNlZWQgKFNIQS0yMjQsMTkyKzk2LDAsMCkgIzMKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjI0CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjI0CiBobWFjX2RyYmdfbm9fcmVzZWVkOk1CRURUTFNfTURfU0hBMjI0OiI4OTg2NDBjZTQ2NzIwMWE1M2U3NzMxYmRmYjU3Mjk3N2Y3ZWIzZTQ5MDUwYmMxZTM2N2NhNzRiZjBhMjczNzZkMzM5ZDA5ZjQiOiIiOiIiOiIiOiI0ZjVlZWE5MjcwMjNiNGFiYWI1ZDRkOTk0NGU4NGNhMDAxZWUwODFjYmMyMWQ0MDgwZTE1MzRlZTZkMWQ4YTZmNjAzNjEwMjlmZmE5ODNiY2M3OWI1ZDY1ZDRhYWFhYWY5ODk4M2RlMTNkZGRlMzlhNzM5ZjlkOTU4NzhmYjMxZjU3Zjk2MTg0ZTVmMmYzYWRmNjU0YTQ2OGM2MTYyMzdmY2JjNmIyYzE5NGUyNDcxNzhjYjkwMjk0ZjYzMWM0NDlhMDFmMWZlMDljMDI1ODdjNDYwMzA1YmU5ZmM3MWI1YSIKIAogSE1BQ19EUkJHIE5JU1QgQ0FWUyAxNC4zIE5vIFJlc2VlZCAoU0hBLTIyNCwxOTIrOTYsMCwwKSAjNAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyMjQKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yMjQKIGhtYWNfZHJiZ19ub19yZXNlZWQ6TUJFRFRMU19NRF9TSEEyMjQ6ImZlNDA1ZGQ3Mzk1NmJmNmVjODc1NTE1ZWViZDhjNWVjZDYwNTUzNjQzZGE3NTA5MTRjODNkZmM5MzYxMWQ1NzM5MGFmNzMyNCI6IiI6IiI6IiI6ImQ4YWUwZWI4MTkxM2ExOTBjNDM5ZjhmZmE1NmMwNjE1NWE3M2Y4NGIyMDYwOGIyYjJlOWVhYjMwNjEyMDJjZWJhZDE4YWI4YjNlYmE4MTY3MjE1MmMxYzAyZWY1NzNjZDZlODYyM2MzOTJmYWNiNmE4NTc0MjVjNjc5NWNkNzk5OWMxZTdmNTZmM2ZhOWFjY2NhMDE4MDc2ZTBiZmMxMDZkMDc1ZGY5OGY1ZmI2NmYyODkzMzIxNWU5Mjc2Nzc3ZGZjNDc5ZTcxYThkNTA2YTY2MTk3OTE4ZDliMGY3YThmIgogCiBITUFDX0RSQkcgTklTVCBDQVZTIDE0LjMgTm8gUmVzZWVkIChTSEEtMjI0LDE5Mis5NiwwLDApICM1Ci1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTIyNAorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzIyNAogaG1hY19kcmJnX25vX3Jlc2VlZDpNQkVEVExTX01EX1NIQTIyNDoiYjA2ODkyZjZmNDU1YWZkZGM4ZWI2MGFhZTM1YjM1YTY0ZjYzYjJhYTg1YTJkYWU0ZWY0ODkyNjZmN2JjMzU0ZjcyZDY4YjcxIjoiIjoiIjoiIjoiZmMxMGMwM2ZjMzdkM2JkNWZiYTY1OTFhOTdmNjM1NGE5ZWQ4YmEyYjY4MDY3NDQ0MzI4NTFmNDNhM2NlNjQxOGUzOWNjYjQxN2I4NTM5ZTM0OWFjZWE1ODhlMmFiZTVkYTA2MTQ3Yzk4MjVjNmU1MGEzMWY4NTg5YTU3Y2EzYmZiMTBmMGRhOWM4ZTg5ZmUyZTM3MmI1YWYxY2Y5NmUwZmJlZWM1ZDk5MjI4NzcwYzQxYTc2ZTU4N2RhN2Q4NzY0ZDVmMjM1ZjVkMWQ2MTg4ZDg0YWU2MWM1MmMyMTY0ZmIiCiAKIEhNQUNfRFJCRyBOSVNUIENBVlMgMTQuMyBObyBSZXNlZWQgKFNIQS0yMjQsMTkyKzk2LDAsMCkgIzYKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjI0CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjI0CiBobWFjX2RyYmdfbm9fcmVzZWVkOk1CRURUTFNfTURfU0hBMjI0OiI5MTc0ZTE3NGU5ZTAzMWY2MmIyZTE5YWU1YzBiZWYyMmVlZDdkNTU5OGU2ZTczNTA0NzU5YTJjMTViMDVjMjQ3M2E3MjFkMjYiOiIiOiIiOiIiOiIxOTYyZjJkNDczYjMxYTI1NzZkYmQ3ODAyMmY0ZWViOTc0NjQxZmEyZTljYjU4MmYwM2FiNzQxOTI5ZjUxZjBmNDY2MzEyOWU2OGRkYzI0MmUxYzJjZWFmYWNlYzNkY2NiOTdlMDk1MjdhZmY0NmI5NDhmMGFiY2VhMTQ1MTY5OWRjM2FlNGQzZmI1ZTA0Yzg0MzM3ZTE3YjUwNGFmMmZiNWYxYWE2ZWMwMDMzZGRmMTM4YTE4OGVlMTYyYzQ5NzUyNjU2M2E2N2RhODAxNTI3NWQ4OWYwZTFlOTAyYjJlZiIKIAogSE1BQ19EUkJHIE5JU1QgQ0FWUyAxNC4zIE5vIFJlc2VlZCAoU0hBLTIyNCwxOTIrOTYsMCwwKSAjNwotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyMjQKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yMjQKIGhtYWNfZHJiZ19ub19yZXNlZWQ6TUJFRFRMU19NRF9TSEEyMjQ6ImViMWQ0NWJhMGQ4OTUxYjdiMWQ3Y2U5MjJiN2QxZjZlOTRkYThiODIxOTQwMTI2YzlkYTViMGI0MzgyNDI1OTMwNzQzYTA1MSI6IiI6IiI6IiI6IjMwNmIxZjczM2U2ZjY5YjZmMjZiN2JhYTU0NDFhZjQ5NjdhNWNhZDhmYWFkMTgwMjk0NDBhYTk4OWFlZjYwMjRkYmYzYmEwMmRmYzJjNjk0ZGFkNjQ5NmZmNzYwZDcyYWU2OTE0YTRkY2Q1ZTNhNDQzZjRiY2IxNGJmMmI2NDk4NmYzNWMzMjQ0OWYxNWUzMDg0ZDQ2ZmFkZmEyYWUyMTNkYTZiMjZmNzg3Y2VmODliNmEyMzA4NGE5Mjk2MDhhOWY2YWNkODMxNTgwOGMyOWY4YWU0MzVhNDAyMDJhMDEyIgogCiBITUFDX0RSQkcgTklTVCBDQVZTIDE0LjMgTm8gUmVzZWVkIChTSEEtMjI0LDE5Mis5NiwwLDApICM4Ci1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTIyNAorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzIyNAogaG1hY19kcmJnX25vX3Jlc2VlZDpNQkVEVExTX01EX1NIQTIyNDoiNzhjZGMxNTY3Y2FmMmZmNTI5ZWY4ZTM0NzVjMGZiYjA5YTQ4YjY4N2E1NDRmNzM5OWY1MDM5NDg2MjFmMjk2ODZmYjE1MjE2IjoiIjoiIjoiIjoiMjM2NzA2N2Q4ZWMxODliMDgxOWVkYTM0NjAyNzY4YTA2OThiNGI1NDVjN2Q1MjE0ZmFkNThjOTc4N2I4OTgwOWI5N2YzYWY1ZjkzNDk5MDdkMjk1NGY4YzBkY2NiZGJlNjNjYzAxOWJkZTNhNmZhZTEwNDk3YWU1N2YzM2U5MWVkNTViNmZjNGE4M2ZlOGEyNDYzNTUyNzk2ZDUxMjBkYTgwNjZmNzI4NWE4Mzg4OTU4ODE3YjEyMThlMDA2ZDdmYzYxN2Y0NTNhZDBmOTIxNzk2NmEwNzMxYmE5OWYwOTMiCiAKIEhNQUNfRFJCRyBOSVNUIENBVlMgMTQuMyBObyBSZXNlZWQgKFNIQS0yMjQsMTkyKzk2LDAsMCkgIzkKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjI0CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjI0CiBobWFjX2RyYmdfbm9fcmVzZWVkOk1CRURUTFNfTURfU0hBMjI0OiIyNWY5ZWUyNGVlMjVhZDNkMjlhOTc0ZjhmNTUyYjE3OGNiMjkyYjg0N2E2YmU4MDY5NDIxM2E2YzBiMzNlMjVlMjlmZDNlY2MiOiIiOiIiOiIiOiIzMmZlMjUxYTYxOWQxNjRjMjE3MzY1YjEyYTMxM2E5NDJiNmE5YzNkZjAwNzc1MWE1ZmE5ZjM1NjQxMmQxMTQyYzc4NWMyOTJlM2RjOWQwYjFkNzdlMDgwODkyZTVkMzliOTFjNThmZDE0MjQ1OGM3MTE4MjA2MTkyMGEwNzIxZGI0NTNhMzJmZTdmZmM4YjJjMjBiZjExODk0ZmEzN2Q4ZjBlOTQ2M2VkZDQzYTk3ZjY1MzYyMjk1MTE5YmUwM2Q1ZTA2ZjYxN2ZkZmY2YWNjYWFiOGM0ZGE3MmFjOGY4MSIKIAogSE1BQ19EUkJHIE5JU1QgQ0FWUyAxNC4zIE5vIFJlc2VlZCAoU0hBLTIyNCwxOTIrOTYsMCwwKSAjMTAKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjI0CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjI0CiBobWFjX2RyYmdfbm9fcmVzZWVkOk1CRURUTFNfTURfU0hBMjI0OiIwYjY0NDIyMTc4OGMyNjZhYWUwMGEzYjYzYTg3ZjMyY2E5NmE2YzMyYjExNmNkMzdjYWE0Zjc1ZmY1ZDdlNTZiZTNiNGUyMGYiOiIiOiIiOiIiOiJkYzkyNDVkYTc3NTAyY2FkZDFhOGFjNGQxY2Y2YTE5OWM4ZTUyOWRlZGExMGM4N2FiNmM2OWNlZWE2ZmRlZjM2ZDQ1ZjRkMDM2MDIxYjkzZmU1YjM0MmM1MmZlMWU3MWQ4MWU2MTdiZWJjNTg4MDRhZjMxMDliYWI5M2RiYjJlNWM1NDZlMTA4YmQwODkxNzEwMTI4YjVlOGU0YTRmMDFkZjIwMDNkMDM4ZmVjOGNlZjQyNmZhZDdmNzJkZDVlMDkxYjQ4NTBlOWJmNDkzMmQ2MGRlYWNiNmU5ZWEzYzVlNiIKIAogSE1BQ19EUkJHIE5JU1QgQ0FWUyAxNC4zIE5vIFJlc2VlZCAoU0hBLTIyNCwxOTIrOTYsMCwwKSAjMTEKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjI0CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjI0CiBobWFjX2RyYmdfbm9fcmVzZWVkOk1CRURUTFNfTURfU0hBMjI0OiJhNjY3N2JhZGZmNzA5NjZhM2NkMmZlYmFhZDdkZTdhYTU4NDliYTc2Mzc4OWIyMGQwYTM5YjZjNTY5MjYxYjgyNmNkYjE1ZTgiOiIiOiIiOiIiOiJlMDQ4MzhjOTcwZjVkNzIwOGEyYTczMTBkYTg5M2Q2NTM5MTY2NmE1ZGM2MmQ5ZWRlNzFmYzMwODE2Y2ZjM2U4MDY0YWM1OWNjOWFhZjMwMjgzMzU2MDc4YzgxMjY3NmNhMjBiZWIwNDRhNmQ3OGRiNmM1ZWY5NzE4YTg4NTU5NjA3ZjIyNTAwMjQ1MmMwMTQ1OTk0NDQzMzAxM2NmZmZlYTg0ZDZmZTQwNGZiYmJjMmQ2NmJiNTBhMmZhMDFkOGE1ZDZlNGVhOWI0MDJkYzUyNTY3NTI0NjFiZjZmY2I3ZiIKIAogSE1BQ19EUkJHIE5JU1QgQ0FWUyAxNC4zIE5vIFJlc2VlZCAoU0hBLTIyNCwxOTIrOTYsMCwwKSAjMTIKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjI0CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjI0CiBobWFjX2RyYmdfbm9fcmVzZWVkOk1CRURUTFNfTURfU0hBMjI0OiIyMzAxZDhjMDUzMzEyZGIwNDg4MmY0Mjg0Y2Y4YjQ3OTY2YzFjOWI4YzQ5ZGU4NDdkMGMxMWYxNGM1ZjcwY2UxOTM0NjU2MmIiOiIiOiIiOiIiOiJiNDYyNDY1MjZiMjhmM2FkN2Y2ZDg3MzJjYTNiZmM0MGYwMDVkOTdhNTE5NjQwYTRjZTcyODQ4NmQ4YmY4MzBkNjYxYmU1YTk3YjExMTEzZTg5MDk2ZDliZjE1Y2JlZjczZWMyOGFjMTNlM2ZiZWFkYzliY2E1MDA5MThiYmU5MmVhMjNlMTMxY2M2MjJkYmZmZTIyNzJkYjE2ZWM1ZDRjYTMwZTliZDk4NmQxNzA5YWUyMmQxMDE4MDUxNGJjZDExYmQ2MjE4ZWExZmJhYmExMDE0NDQ5NDVhMTdhNGM0YiIKIAogSE1BQ19EUkJHIE5JU1QgQ0FWUyAxNC4zIE5vIFJlc2VlZCAoU0hBLTIyNCwxOTIrOTYsMCwwKSAjMTMKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjI0CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjI0CiBobWFjX2RyYmdfbm9fcmVzZWVkOk1CRURUTFNfTURfU0hBMjI0OiI3ODY0NGVhMWIwYzRjNTVjNGFkZGViNDc2ZmMzNDQ3MWVhMmM0MzkzNjk3YWE0ZjE3MDcyNjAxMGM0NDNiOGUxYzRhNmIzZWEiOiIiOiIiOiIiOiJlZjFiNDFiZDAzZWU4NDYwZDU1NzU5ZGI2NWE0Yzk3NzU4ZjQ4ZTNhMDkxMjdiZTA0YzdlZDA4YmJlZTVmYTVjZjExOTkyOWRmNDJjMTg3ZTJhMzQ3YThkZjk5YzUwMmI2OTNhN2FlNDE5NDZmNDkxOGQ4NDY4Njg4MGFlMjlkNmQ4ZmJiYzRmY2NjOWUyOTU4NzZhMjQ5Y2ZhNTllZmZkMzMxOTk0ZTg0NzE3YjRjNzY2MzdkZjM2YmViOTYwNzYxODgwZGFhYjNkNDMzNzYzNDE0MzlhZjJjZThlMzNjYyIKIAogSE1BQ19EUkJHIE5JU1QgQ0FWUyAxNC4zIE5vIFJlc2VlZCAoU0hBLTIyNCwxOTIrOTYsMCwwKSAjMTQKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjI0CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjI0CiBobWFjX2RyYmdfbm9fcmVzZWVkOk1CRURUTFNfTURfU0hBMjI0OiI3MWFjYjcxMjM1ZTg4ZTNhYTZkOGJiZjI3Y2NlZjhlZjI4MDQzZWJlODY2M2Y3YmNmNDljYjY0MmIzZDkxNWNmMDNiOTBlNjUiOiIiOiIiOiIiOiIxNDRhZWI1NmExMWNiNjQ4YjVlYzdkNDBjMjgxNmUzNjg0MjY2OTBkYjU1YjU1OWY1NjMzZjg1NmI3OWVmZTVmNzg0OTQ0MTQ0NzU2ODI1YjhmZDdiZjk4YmViNzU4ZWZlMmFjMWY2NTBkNTRmYzQzNmE0YmNkN2RmYWYzYTY2YzE5MmE3NjI5ZWVhOGEzNTdlZWYyNGIxMTdhNmU3ZDU3ODc5Nzk4MGVhZWZjZjlhOTYxNDUyYzRjMTMxNTExOWNhOTYwYWQwODc2NGZlNzZlMjQ2MmFlMWExOTFiYWVjYSIKIAogSE1BQ19EUkJHIE5JU1QgQ0FWUyAxNC4zIE5vIFJlc2VlZCAoU0hBLTIyNCwxOTIrOTYsMTkyLDApICMwCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTIyNAorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzIyNAogaG1hY19kcmJnX25vX3Jlc2VlZDpNQkVEVExTX01EX1NIQTIyNDoiYzVjODljMjZhYzRjYThiMTEwNmJhOTBhOGVmNGQ2ZDY4N2RmZDg4NzQzY2FhNWZiYWZhNDc0NWQ5YzFmODM3MTEyMGIxMGM4IjoiIjoiZDM0ODNhZTVmOWVkOTdlZmQzZjg1MmU0YTZmMjBmMjVjOTQ3YTAzZjM5YTRiNzVjIjoiMmNkNTIzYzU5NThjZGY0MDNjYWE2MWFiZTVjNDczOWNkYjlkNDAxNTJmMGU3NjlhIjoiMWZlZjRlNmFiYzI3NzhkMWMzZTNjZTAwZmRiNWVhZTFlYmViZGQ1Y2ZmMGE3MDg3NjQ0Yzg1NjVkMWU4Yjg3NmIyYzA1MjY0Y2E4MTQ5ODQ2ODg1MWZjN2I5ZTVhMjE2M2EwNmYzNzdkMmVkNzU0YzA5NWFkYzU5ZGMwMTVhNzdlZGQ2OWU0ZWVjYmU0OGQ5ZGMxMjdlZWRmZmY1Y2M3M2FlMzgxMjdhZTNhNTE4ZmU3ZmE1YWJkMWE5YzUzZWVhZjE0NDQyMDg3MzM0MWUyZWZhM2Q4MTQ5M2M2OWIwNGUiCiAKIEhNQUNfRFJCRyBOSVNUIENBVlMgMTQuMyBObyBSZXNlZWQgKFNIQS0yMjQsMTkyKzk2LDE5MiwwKSAjMQotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyMjQKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yMjQKIGhtYWNfZHJiZ19ub19yZXNlZWQ6TUJFRFRMU19NRF9TSEEyMjQ6IjY4NjBlNDRiZjU4MmRiOTgxOGZmYmU0YzY5OWQ0MjE4OTY1YzI5ZjQ2M2Q3YTAyZmUxZjM2Yzg0NDJiMGE1ZDEwM2RlZjdhMiI6IiI6ImU5ZjU5ODM1NzEwOWUyYTUzMmRjOTgwMzg4YjhhNTk5MTI1NjE2NmQ2N2MzYmMwMSI6IjU4ZWJiZjc0MDJiZTA0MTcyNDcwMWU1YzAxMzJhYmU2MDRjMTFhNjJhOWRlMWQyZiI6IjUyZmFkMzRiMjcxMTNjMTQ2NTk1YTY3NDBmNTA1YmMyZDNlZGY2NjE4OTc1Y2I5YzRhNTE1NTc4OGVhZjA4Yjk2ZDIzMjYxMGQ5YjRlZTA2MjY0ZmQ5MmYzMTlkZjVhNTJiOGY5ZTMxYjAxNmE2YzIxZDI3ZDMxZDlkNDJiYmI3NTg4YTcxNDJmMjZlY2UzZGRmMjExYzhjZjQ1MzA5NDdhZGVlMzAyYWE3MWMwZDdmZTkwNjBjMWIyNWYxYzFmMmUwNTM1OThhN2ZiNzJjNGRiNTVmYjFiMDIzNTJkNjBhIgogCiBITUFDX0RSQkcgTklTVCBDQVZTIDE0LjMgTm8gUmVzZWVkIChTSEEtMjI0LDE5Mis5NiwxOTIsMCkgIzIKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjI0CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjI0CiBobWFjX2RyYmdfbm9fcmVzZWVkOk1CRURUTFNfTURfU0hBMjI0OiIyN2I5Zjc4YWUwNzgyMWYyYjU2MjVjOGZjM2EwM2NlZWM0ZmM4MDYyYmU4NjBjMmRiMjA0MDNkZDg4YTg3NTFkY2FkNTYxNTgiOiIiOiIxYjZjODQ4ZmNlNzA2YWJkNzM2MTJkZDNmZDQyMWMxYzdjZTlmNGMyZDBlY2M2NzAiOiIxNGE0MzY0NWMxYjZhZTM5NGY3OTVhZjZjYTJlOTA4NGU3ZTcwN2YzZjJjZWRkN2EiOiIzM2M1OTIwMTdhZjU0NWIzYTljZjM0MTljZTFjNjA0ZTljN2M2ODdlYmY2NDE4ZmJlZjQ3ZWM5NmU2MWYxOTUxMDY4ZWVjOWI2MDAwNWQyNDU3NDMxM2YwNGZmYzE2YzMwODcyZWM4M2U0MWUyNDhlM2Q1YzY5NTE5MzBkNmE4OGI4OTMxZDU1MDJkMTE0MmNlNTA2NzZiM2FkZjQ4NDUzZDFhMDA4MTg5NjU4ZGI4NTExZDE5YTA2YWM5N2I0ZDVjZmFjMTliNTRlOGU2Yjg5OWQ1MDE3MTVmNDAxZWY4NSIKIAogSE1BQ19EUkJHIE5JU1QgQ0FWUyAxNC4zIE5vIFJlc2VlZCAoU0hBLTIyNCwxOTIrOTYsMTkyLDApICMzCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTIyNAorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzIyNAogaG1hY19kcmJnX25vX3Jlc2VlZDpNQkVEVExTX01EX1NIQTIyNDoiOGQ3Y2Y1YzJlMzYwZWY3NTVjMWU5ZjViN2E0NGExZTI5ZjA5Y2VlN2NhNDRlMTU5MjVmZmU5YTQ3YjJkNTVmZDc3NTBiMzU2IjoiIjoiMGU2OTFjOWE0MzU5MzljNjE1ZjA2ODZlYWU4OGUwOTBiYTVjNGIzZjVlNmUwMGMwIjoiMWUzYTQ1MjI5NTYxN2U1YTllNmY3ODI1NmQyNzgxZmVlYjM4MTI3NTNiNGFhZDlhIjoiYTMwNzU2OWQ4YWRmM2Y3ZTZlZTQ1NjdhNWIyYmQzMzhiYWRiOTIzNGU3YjI3YzkyNDI5ZmZhNzVlNGM1NmMwNTI5ZmRjNmMxNWRmNWQ0N2M0NmUzZDJlZWFkY2YxYjllOTNhNWRkNmNkZTk5YTgyZjA0YjBkOTdmN2EzYmZkMDVjMGUxZDgzNzA5ODcyMjIzMTBhYjE4Yzk4MGNlNDhiMjY3OTM2MWMzZDkwMTFkZDM1NWE5YjA2MzM3YzA1NGVlMzc5MTNkNWY0ZGQzMGQxZmM5NDJjZDczM2EwZmE1ZjgiCiAKIEhNQUNfRFJCRyBOSVNUIENBVlMgMTQuMyBObyBSZXNlZWQgKFNIQS0yMjQsMTkyKzk2LDE5MiwwKSAjNAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyMjQKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yMjQKIGhtYWNfZHJiZ19ub19yZXNlZWQ6TUJFRFRMU19NRF9TSEEyMjQ6IjFhMGQyYzczNDkxOGM1MzljMWIzMDZhNDY0ZWI2YjU0ZjkyZTk1OGU4NjM2MDMyYWVjMjNiYThhZTgxN2JlYzQ4Mzg0NDYxZiI6IiI6ImI4YWQ5ZTYxM2E4OTFmZDBkYjg5NTcxZmRkZGE3NzgyNzM4MmU0MDZjZDNjZGY3ZSI6IjFlMTcyYTcwOGFhNGZmYTM2MThmZjBkN2IxZjliYTM0MWY0ODExNTA3ODUxZGZiNCI6IjY3NGRmMWYzMDk1ZDZjODdiYzU0ZGQ5YjJhYWEyYzc4NmJkNTBlNGRkYzAyNDkzNzQ1ZDgyMGRhZDg1NTIxMzFmYjNlMzg5ZTk5YjA3MDk0NzhiNjVkNDI2OGYyYTNiNDY4YTg0NDdkYzU3MmE2ZWUwMjRiZTZiZTliZTlkNDI4YzEyY2M5Mjg5NGQxNWRkMWM5NTlkNjIyMmRjOWVjMzA0NzhjN2EwYjU3ZjViZDhiZDUzODY4Yjk4ZDc2NzQ3MzhiNTRjZjc0MTAwYWUyMTU2OTNiYWJiNmRiM2IzODkwIgogCiBITUFDX0RSQkcgTklTVCBDQVZTIDE0LjMgTm8gUmVzZWVkIChTSEEtMjI0LDE5Mis5NiwxOTIsMCkgIzUKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjI0CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjI0CiBobWFjX2RyYmdfbm9fcmVzZWVkOk1CRURUTFNfTURfU0hBMjI0OiI5NWEzMGEwY2E3NzlhNDAzOGVhOTIwY2NjZmE0Y2RkODE0Y2ExN2Q1NjBkNTNhNzVjZjE3MGY0NzEyOTk0ZjliY2IyZWZiNzQiOiIiOiIxZGE2Yzg3MjZiYmZhM2M4YmVlNmRjZmY2Zjc2ZjJkNTVkNjA1MjdjNGYwZGIyNmIiOiI1OTVlYmQ5MDNhNTk2YTFmMTIxNzUwODAxODViZDk0YzIzMzZlYjhkZDI5YTM4N2QiOiIzMTdjMTljZjRhNDViOGNmM2Y2NDVkYTA4NGFkYTU0ZDFiMWY4MTM3OTE1MjQyNGZkZGFkMjJhNmRjOWJkMjI4NDFlMGM0YzVhMzZiZmI3ODc5ZWFmYmQxYTkzOTEyMTkwNWE5MzhhZTAzNGM3ZmMwMWFmYjU2NjA3ZTM1Zjg5NWY0NmYxM2U5MWNlNGU4ZTc1YjZhODdhMWU1NTQ0ZTE4ZWIxOTRmZDY3NTRiMDY4ODVhYzA1ZTMzMmEwNWVkNDM2ZTg4OTk2NWU0MDVlMGYyMDY5YjA0YjQwZWEwZjYzNSIKIAogSE1BQ19EUkJHIE5JU1QgQ0FWUyAxNC4zIE5vIFJlc2VlZCAoU0hBLTIyNCwxOTIrOTYsMTkyLDApICM2Ci1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTIyNAorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzIyNAogaG1hY19kcmJnX25vX3Jlc2VlZDpNQkVEVExTX01EX1NIQTIyNDoiOGFmODkzMDU2MjUxMDIzMWE1OTJhNzI1ODdmYTZhZDdjMjM0ZTEzMzA0Njk2NTkwNzY0MmZiYzc4NWMwYjg2Y2JhODQ0ZjBmIjoiIjoiOWVlN2IyMjEwNjQ5NjY1ODJkYzgzNjQzN2I4MjM4NmY1MjA0YTMwMmE0MTc5MDc5IjoiNDczZDkxN2Y1YjY2ZjBmNmUzZmI0NjcwYmEwOGMyY2JkMmVhNzY1YjQ2YjEwODM4IjoiNWMyZmM5Y2M3MTQ4ZGJlNDBhNjkyYjM2MzY3NzhlYjgwMTg4OTQ5ZDE5OGJiYTNlODM1NTM4NmI3OGI1NGJmYjk2M2Y1ZjJkOTIwMjk4OGRhMjBjY2JmMzM2YTdjNzM3YTY2YzkwMTQ5YjllOGUzMDY0NzcxNTFjNGQ5MTJmN2M2MWU4NzJkZTBkMGU0NzcwMWNiZTc2NTg2NGRlNTM2ZDU5OTk0NmI4YmQ2NWU0ZDg5ZDRlNjFkZWI1M2RlOTk3NGZiYmU2MzQ1MDE4MDBmZWVhMTAwZmVhNTczZTJlNTAiCiAKIEhNQUNfRFJCRyBOSVNUIENBVlMgMTQuMyBObyBSZXNlZWQgKFNIQS0yMjQsMTkyKzk2LDE5MiwwKSAjNwotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyMjQKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yMjQKIGhtYWNfZHJiZ19ub19yZXNlZWQ6TUJFRFRMU19NRF9TSEEyMjQ6IjJiOTU1NGVjZjk0YzdkNjQ3YTRlMTE3ZjQzMzI2Y2FiNTQ0NjZlYmE1NmEwOWE1Mjc0MWIyNDQ1MDU3YzQ5MTkzNWMwNjdkMiI6IiI6IjAxNDRiZTY5NzhkYmE4NWFhNjQ1ZDc5M2MxODgxZGMyZGViMWJkMjEwODExZWM5ZSI6IjFjZDI2NWYzODEyNTY4Mjc0YjY0Mzk1NGM3MDkyM2E3NmRmY2M5ZjEyMzM2MDExMSI6ImY3NDU5YjBjMjM5NjZkYzFhNTNlMGM2NDA2YzllNzhlYmU3MjhlMzQ4NDIyNGNkODhiNmIyZWE1NTQ1MjJlNzVlYjRhMWM4YTNmZGM2NjU2MTQyNjQ2NGY1MGI4ZDBmZjk1YjI2NjY3N2Q5MTc3NmIzNDRhODIwZWI0ZmQ3ZDU1NDY3ODMwMDU1ODAxMWE3Y2Q4NWQyMmU5MmRjOGVjMmMyZmExNWM2MzMwYmExNTdjM2U3MTcyODMwNDQ0N2MxYWQ0ZDY0ZjNkYTRmYmYyNmQ5MmUxZTdjNThhMWIyODljIgogCiBITUFDX0RSQkcgTklTVCBDQVZTIDE0LjMgTm8gUmVzZWVkIChTSEEtMjI0LDE5Mis5NiwxOTIsMCkgIzgKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjI0CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjI0CiBobWFjX2RyYmdfbm9fcmVzZWVkOk1CRURUTFNfTURfU0hBMjI0OiIzMzVlZGU4NjAzZmNkZTc4ZWE5ODY5ZGEyZGJjYWI0YTZlNzJmMWI1MzQzOWYzMDg1ZDA2Yjg1NmU2Mjc0MTFhOWNlMWMyOTciOiIiOiJlZGVkYzczZmUyNjg5MzVjMTA4MzJjNDYzNTQ5ZjgyMDRhMjljZjBmZTAwYTRkODciOiJlZjFiOGE4MGRkNDlkMmMyNjM5OTlkZGMwZDVhMWQ5MjA1YzFiMWM2NjIzOWZkODAiOiIwNWJmZTk3YzM5OGIxZTMzZWUxYzU0N2MwZWRiNWI2NTRiNzA2MGI3NjYwNDE5NTQ0MGQwNmRkMmY2MTRhMzk4YzZjNDNmMTgwMzg5M2M0Yzg4ODhiZWRlY2RmOTk4MzY3Y2Y5OTIzMDFhMjVmMjRjMjYzZjVkMzZiYmZjNmZlOGI4MzljYWQyOTNiMzYxN2MxZDJjNjBhODE0YmRhMDM1OWUzZjcxN2ZhODBmYzczMjRhZjg4MjdkNDM4Yzg4NjQyNzU0YjM5YjEwZDE4Y2Y1YmY0MmYxMTE3N2EwYmM2YiIKIAogSE1BQ19EUkJHIE5JU1QgQ0FWUyAxNC4zIE5vIFJlc2VlZCAoU0hBLTIyNCwxOTIrOTYsMTkyLDApICM5Ci1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTIyNAorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzIyNAogaG1hY19kcmJnX25vX3Jlc2VlZDpNQkVEVExTX01EX1NIQTIyNDoiOWIwMjc1ZDg2MTExNzU1M2VjZDNjNGQ3Y2ZlNzYyZjg4ZGYyMmM0YzQxOTBkYWM4ZTBiZTU4NzI4MThlMmRkNzY1MjYxZDU4IjoiIjoiY2ZjMGIwNzA4MmQ1MTQ0MjViMTdjZTNjYjMzNGVjNjJiYzFiM2JlMGJlNThjYTRiIjoiZDNjNzBhYjVmZjdhMzY0YTllNmRjNzUxMzJhYzY3ZTBkMzczZmEyZGYzMDFhZmI1IjoiMDlmYjQxYmNjZWIwMTZlNzU0Nzk1ZTFjY2U1ODJmMGNhZTkxZDdiYjUwMjQ1OTc1ZWI3NTI3NDgxOWUxZTRkY2RmYmM1ZTJmMTNmZDI2YjlhOWY5ZTk0NWNkODA3ZmZlYzRlMjc1NjgxZWE3YmQzM2VhZTEzZWZkOGEwMWVkYmUwMjU2MmU3N2I0NGI2MzEyZjQxNmMzZGQwYmU2NGYyYmFlMGJhNGI5YmIzNmZjM2E0NDg0MWQyMWQ4YjM1NzFjMGVmNjQ0ZDg4Y2YzY2MzYzg1MWIyNTZhMTVmNGQ3MTYiCiAKIEhNQUNfRFJCRyBOSVNUIENBVlMgMTQuMyBObyBSZXNlZWQgKFNIQS0yMjQsMTkyKzk2LDE5MiwwKSAjMTAKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjI0CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjI0CiBobWFjX2RyYmdfbm9fcmVzZWVkOk1CRURUTFNfTURfU0hBMjI0OiIxOTgxYzNmOWNhNThmZDEwZTgzNzdhOGQwZWIzY2YwMjEwMmFhYjZmN2EwMzNhZjMxMzU1MzNkOWZkODUwZTI5ZWNiOGRjOWIiOiIiOiJmOTk3OGJhNDFkZjIyODk0YWQ1ZjM4NDljMWJkZjIxZjdiYmMwMTI4Yzc4MmU3OWIiOiJiNGQ1N2RlNWUxOGQzOTMyNzNlZTlmM2VmOTczNjU5OWM2ZDYzOWY0MzcyMzkyMTkiOiJmZWUyM2RiMmZjYzcxNjI0ZmIzOWY1NzNlMzNhMTQ5MGVmYzcyMzBjMjdlOTI3ODE4ODI1MTYzNGY5YzA0NWJjYjI2ZTc5ZWNlNmExNzM0OTE0NzVhZTQ0YTk1N2M0MjY5NTcwZjU0NjkyMzRjYThiNjg3M2NjOTczYzhkOTcxNzhjNThjZWM2NThhMzUyYmFkMGQ0YzYwMDFjYWU1NjY0MjU4ZGI1OWFkNzZlYjYzMDRkMTY2MjY3ZWFmYjQ2ZjRkZDUzNmE5MTRmYTZkMWFjNTgzMTdlN2M1NTdkNDY1MyIKIAogSE1BQ19EUkJHIE5JU1QgQ0FWUyAxNC4zIE5vIFJlc2VlZCAoU0hBLTIyNCwxOTIrOTYsMTkyLDApICMxMQotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyMjQKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yMjQKIGhtYWNfZHJiZ19ub19yZXNlZWQ6TUJFRFRMU19NRF9TSEEyMjQ6ImMxMGQ0ZTUyMTM1MGY3Y2QxODUzNTc2ZDAzYzRiZWNlM2U1OGM4Yzc0MDg1OWU0ZTE2OTc5NDk5ZWMxMzY1ZmMwNzM3MzZhMyI6IiI6Ijc4YjI0NTUyMDE1M2JhYWNjNjY4NDZlN2E4M2EyYTkyNWY4OTJkNGMyZWU2M2MwZiI6ImM4Y2E3YTMzZGU1OTkxZDQ0ZDdlZjdkYTJkMzM2OGNjMmNkYjkzODk1YzM5NGQ0MSI6ImY5MmMxNWY1ODMzODAwYjI4ZGJhMmQxMzRkNGRjZmM0MWFiZjcyZjVhNzAwNDY5NTUxZThjY2I4M2JkYjA3NzJkMTRkNmIyNmJhNjk3ODE2OWUzZGRiZTVmMjE0ZDU3OTMwZGZjYWQ3MTliZjEwZDMwNjc0OTI0NmQyNjI0YmVkZDRhMThkMzI3YjhhZTZiZWU2N2NmMGJmYjVmNjQ5ODI0YmJkMDQ0MGYwNDIxNDZiOTVhODNlNTg0NWNlZDY5YTU1YmEwNTVkNWRmYzcxODNjM2JiMjhkNjEzMTJkMjc0IgogCiBITUFDX0RSQkcgTklTVCBDQVZTIDE0LjMgTm8gUmVzZWVkIChTSEEtMjI0LDE5Mis5NiwxOTIsMCkgIzEyCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTIyNAorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzIyNAogaG1hY19kcmJnX25vX3Jlc2VlZDpNQkVEVExTX01EX1NIQTIyNDoiNzYwOGI1NjE3Nzg1OTk1YTFmNzE0NGVlNTIyOWU0ZjljMTM4ZTQxOGJjYzNiNWUwNjFhNDIyZThjZjg3NWY1ODY1MGU5OTZkIjoiIjoiOTYxYzJkMzMwMzllNjBhMjg3MWUxZjViODIwOTdmNmIxY2IwMzgzNmRiYTVmNDQwIjoiYjE4Y2I1MmQzODU4YWM1YmY1OWYyMTZhMjhjMGFkNDlmM2RjODhjNjdiNTg3MGUwIjoiNGIwMzEzYWU4NzNjZTVlYmYwOGFlYzE2MDQxNjQ5MmU0YzRjNzk3YTUwMTcwNjFlYTQyYWVmYTA2ODVhYjE5Yjc0YTdhZjExZjAxOWI5ZmI2MzA3MmI3OTdmN2VhMzM1NGVmZDMyYzRhYmQxZTg2NjQwNWEzMTllZDJmYTEzZmM4MTAxOWQ2MTMyNmU3MGU1MDMxNDFiOWM3N2I0ODc5YTQ1ZTlmMzZmMTAxZGJmZmY0MzU5MTQ3MjgyZWY4MTQ4ODhmZWU4MTY0MGRlZjI1ZjU1MWNlZTQxZDEyNjA5YWEiCiAKIEhNQUNfRFJCRyBOSVNUIENBVlMgMTQuMyBObyBSZXNlZWQgKFNIQS0yMjQsMTkyKzk2LDE5MiwwKSAjMTMKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjI0CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjI0CiBobWFjX2RyYmdfbm9fcmVzZWVkOk1CRURUTFNfTURfU0hBMjI0OiJmZWY3YTQzZmVhMmZmMWEwZjYyNDA4Njk4NWU1MzU3NzhkN2E3M2RiYzQ3YmMyM2U5ZGE5MmVkZDVkMmYyNzNjZGJiYzAyNTEiOiIiOiI4MzY3MzFhNTc0OTdhNjllMzFmOGRiNGY3Mjk3NzRhZDY1ZjMxZDk2OGRiYzU1YTgiOiJiY2NhOTZkODA4YmE5OGJiNTBlOTBhZmU1OGZjODhlOTVkYzE0YzNlOTBjNTYwMDQiOiI0ZjJjNjRlY2QxNDY2ODkwNjRmYmY0ZmNmZmNlMmEyYWIzOTEwZTcyZWM0ZmFlYzI3N2Y3YjllOWVkNTEwMzgxMzEyYjAxZjIxNjUwZTE3NWViZTljNDVjMTFlOTc3Mjc2ZjEzYmUwMTUyNDNhMGNkMTZhMTkxYWJiYWM2NDYyYmE5NmU0ZTRhMTEyMGIyODA4M2RhOTMzNDE5ZThjOGYwMzA5OTkwNmViMWVlMDEyYWUyOTExMDRjNjUzMGY1MWI1ZTMyZTY2MzFjYWI4ZWY1YWFkNjhjMDA0NTI1NWJhOSIKIAogSE1BQ19EUkJHIE5JU1QgQ0FWUyAxNC4zIE5vIFJlc2VlZCAoU0hBLTIyNCwxOTIrOTYsMTkyLDApICMxNAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyMjQKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yMjQKIGhtYWNfZHJiZ19ub19yZXNlZWQ6TUJFRFRMU19NRF9TSEEyMjQ6IjAwMTk3YzcwYjJmMGQzZTk4ZTRiMzg3ZWM0MmE2NWM0MTA2YTE2ODlhYjVkZTYxMTAxZWU3NmY0YjVlNTMwZTdlZmVhZjk2NCI6IiI6IjAzMDE1MzExY2RkZDA5NjFlYzdhNzRjYjg0ZDgzNWMwNThhNjliOTY0ZjE4YTFjMSI6IjVlMGQ5OWUwZTdjNTc3NjlhNDNlYTc3MWM0NjdmYjVlMmRmNmQwNmRhZTAzNWZkNiI6IjcyZThjYTc2NjZlNDQwYWM2YTg0YWI2ZjdiZTdlMDBhNTM2ZDc3MzE1YjExOWI0OWU1NTQ0YmYzZWFkNTY0YmQwNjc0MGYwOWY2ZTIwNTY0NTQyZTBkNTk3YWMxNWE0M2I1ZmI1YTAyMzlhMzM2MmJjM2E5ZWZlMWNlMzU4ZGRkOWQ0ZjMwYjcyZTEyZWQ5ZDc4MzQwYzY2YjE5NGJlYjRiMTJlOTczMjEzOTMxYjljZmQwY2NiZGY1NDBkMmMzNmNlMDc0ZTJiZWFjN2E0ZGRhYzU5ZTA2ZTRjNzE3OGQzIgogCiBITUFDX0RSQkcgTklTVCBDQVZTIDE0LjMgTm8gUmVzZWVkIChTSEEtMjI0LDE5Mis5NiwwLDE5MikgIzAKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjI0CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjI0CiBobWFjX2RyYmdfbm9fcmVzZWVkOk1CRURUTFNfTURfU0hBMjI0OiJjNWM4OWMyNmFjNGNhOGIxMTA2YmE5MGE4ZWY0ZDZkNjg3ZGZkODg3NDNjYWE1ZmJhZmE0NzQ1ZDljMWY4MzcxMTIwYjEwYzgiOiIiOiJkMzQ4M2FlNWY5ZWQ5N2VmZDNmODUyZTRhNmYyMGYyNWM5NDdhMDNmMzlhNGI3NWMiOiIyY2Q1MjNjNTk1OGNkZjQwM2NhYTYxYWJlNWM0NzM5Y2RiOWQ0MDE1MmYwZTc2OWEiOiIxZmVmNGU2YWJjMjc3OGQxYzNlM2NlMDBmZGI1ZWFlMWViZWJkZDVjZmYwYTcwODc2NDRjODU2NWQxZThiODc2YjJjMDUyNjRjYTgxNDk4NDY4ODUxZmM3YjllNWEyMTYzYTA2ZjM3N2QyZWQ3NTRjMDk1YWRjNTlkYzAxNWE3N2VkZDY5ZTRlZWNiZTQ4ZDlkYzEyN2VlZGZmZjVjYzczYWUzODEyN2FlM2E1MThmZTdmYTVhYmQxYTljNTNlZWFmMTQ0NDIwODczMzQxZTJlZmEzZDgxNDkzYzY5YjA0ZSIKIAogSE1BQ19EUkJHIE5JU1QgQ0FWUyAxNC4zIE5vIFJlc2VlZCAoU0hBLTIyNCwxOTIrOTYsMCwxOTIpICMxCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTIyNAorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzIyNAogaG1hY19kcmJnX25vX3Jlc2VlZDpNQkVEVExTX01EX1NIQTIyNDoiNjg2MGU0NGJmNTgyZGI5ODE4ZmZiZTRjNjk5ZDQyMTg5NjVjMjlmNDYzZDdhMDJmZTFmMzZjODQ0MmIwYTVkMTAzZGVmN2EyIjoiIjoiZTlmNTk4MzU3MTA5ZTJhNTMyZGM5ODAzODhiOGE1OTkxMjU2MTY2ZDY3YzNiYzAxIjoiNThlYmJmNzQwMmJlMDQxNzI0NzAxZTVjMDEzMmFiZTYwNGMxMWE2MmE5ZGUxZDJmIjoiNTJmYWQzNGIyNzExM2MxNDY1OTVhNjc0MGY1MDViYzJkM2VkZjY2MTg5NzVjYjljNGE1MTU1Nzg4ZWFmMDhiOTZkMjMyNjEwZDliNGVlMDYyNjRmZDkyZjMxOWRmNWE1MmI4ZjllMzFiMDE2YTZjMjFkMjdkMzFkOWQ0MmJiYjc1ODhhNzE0MmYyNmVjZTNkZGYyMTFjOGNmNDUzMDk0N2FkZWUzMDJhYTcxYzBkN2ZlOTA2MGMxYjI1ZjFjMWYyZTA1MzU5OGE3ZmI3MmM0ZGI1NWZiMWIwMjM1MmQ2MGEiCiAKIEhNQUNfRFJCRyBOSVNUIENBVlMgMTQuMyBObyBSZXNlZWQgKFNIQS0yMjQsMTkyKzk2LDAsMTkyKSAjMgotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyMjQKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yMjQKIGhtYWNfZHJiZ19ub19yZXNlZWQ6TUJFRFRMU19NRF9TSEEyMjQ6IjI3YjlmNzhhZTA3ODIxZjJiNTYyNWM4ZmMzYTAzY2VlYzRmYzgwNjJiZTg2MGMyZGIyMDQwM2RkODhhODc1MWRjYWQ1NjE1OCI6IiI6IjFiNmM4NDhmY2U3MDZhYmQ3MzYxMmRkM2ZkNDIxYzFjN2NlOWY0YzJkMGVjYzY3MCI6IjE0YTQzNjQ1YzFiNmFlMzk0Zjc5NWFmNmNhMmU5MDg0ZTdlNzA3ZjNmMmNlZGQ3YSI6IjMzYzU5MjAxN2FmNTQ1YjNhOWNmMzQxOWNlMWM2MDRlOWM3YzY4N2ViZjY0MThmYmVmNDdlYzk2ZTYxZjE5NTEwNjhlZWM5YjYwMDA1ZDI0NTc0MzEzZjA0ZmZjMTZjMzA4NzJlYzgzZTQxZTI0OGUzZDVjNjk1MTkzMGQ2YTg4Yjg5MzFkNTUwMmQxMTQyY2U1MDY3NmIzYWRmNDg0NTNkMWEwMDgxODk2NThkYjg1MTFkMTlhMDZhYzk3YjRkNWNmYWMxOWI1NGU4ZTZiODk5ZDUwMTcxNWY0MDFlZjg1IgogCiBITUFDX0RSQkcgTklTVCBDQVZTIDE0LjMgTm8gUmVzZWVkIChTSEEtMjI0LDE5Mis5NiwwLDE5MikgIzMKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjI0CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjI0CiBobWFjX2RyYmdfbm9fcmVzZWVkOk1CRURUTFNfTURfU0hBMjI0OiI4ZDdjZjVjMmUzNjBlZjc1NWMxZTlmNWI3YTQ0YTFlMjlmMDljZWU3Y2E0NGUxNTkyNWZmZTlhNDdiMmQ1NWZkNzc1MGIzNTYiOiIiOiIwZTY5MWM5YTQzNTkzOWM2MTVmMDY4NmVhZTg4ZTA5MGJhNWM0YjNmNWU2ZTAwYzAiOiIxZTNhNDUyMjk1NjE3ZTVhOWU2Zjc4MjU2ZDI3ODFmZWViMzgxMjc1M2I0YWFkOWEiOiJhMzA3NTY5ZDhhZGYzZjdlNmVlNDU2N2E1YjJiZDMzOGJhZGI5MjM0ZTdiMjdjOTI0MjlmZmE3NWU0YzU2YzA1MjlmZGM2YzE1ZGY1ZDQ3YzQ2ZTNkMmVlYWRjZjFiOWU5M2E1ZGQ2Y2RlOTlhODJmMDRiMGQ5N2Y3YTNiZmQwNWMwZTFkODM3MDk4NzIyMjMxMGFiMThjOTgwY2U0OGIyNjc5MzYxYzNkOTAxMWRkMzU1YTliMDYzMzdjMDU0ZWUzNzkxM2Q1ZjRkZDMwZDFmYzk0MmNkNzMzYTBmYTVmOCIKIAogSE1BQ19EUkJHIE5JU1QgQ0FWUyAxNC4zIE5vIFJlc2VlZCAoU0hBLTIyNCwxOTIrOTYsMCwxOTIpICM0Ci1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTIyNAorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzIyNAogaG1hY19kcmJnX25vX3Jlc2VlZDpNQkVEVExTX01EX1NIQTIyNDoiMWEwZDJjNzM0OTE4YzUzOWMxYjMwNmE0NjRlYjZiNTRmOTJlOTU4ZTg2MzYwMzJhZWMyM2JhOGFlODE3YmVjNDgzODQ0NjFmIjoiIjoiYjhhZDllNjEzYTg5MWZkMGRiODk1NzFmZGRkYTc3ODI3MzgyZTQwNmNkM2NkZjdlIjoiMWUxNzJhNzA4YWE0ZmZhMzYxOGZmMGQ3YjFmOWJhMzQxZjQ4MTE1MDc4NTFkZmI0IjoiNjc0ZGYxZjMwOTVkNmM4N2JjNTRkZDliMmFhYTJjNzg2YmQ1MGU0ZGRjMDI0OTM3NDVkODIwZGFkODU1MjEzMWZiM2UzODllOTliMDcwOTQ3OGI2NWQ0MjY4ZjJhM2I0NjhhODQ0N2RjNTcyYTZlZTAyNGJlNmJlOWJlOWQ0MjhjMTJjYzkyODk0ZDE1ZGQxYzk1OWQ2MjIyZGM5ZWMzMDQ3OGM3YTBiNTdmNWJkOGJkNTM4NjhiOThkNzY3NDczOGI1NGNmNzQxMDBhZTIxNTY5M2JhYmI2ZGIzYjM4OTAiCiAKIEhNQUNfRFJCRyBOSVNUIENBVlMgMTQuMyBObyBSZXNlZWQgKFNIQS0yMjQsMTkyKzk2LDAsMTkyKSAjNQotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyMjQKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yMjQKIGhtYWNfZHJiZ19ub19yZXNlZWQ6TUJFRFRMU19NRF9TSEEyMjQ6Ijk1YTMwYTBjYTc3OWE0MDM4ZWE5MjBjY2NmYTRjZGQ4MTRjYTE3ZDU2MGQ1M2E3NWNmMTcwZjQ3MTI5OTRmOWJjYjJlZmI3NCI6IiI6IjFkYTZjODcyNmJiZmEzYzhiZWU2ZGNmZjZmNzZmMmQ1NWQ2MDUyN2M0ZjBkYjI2YiI6IjU5NWViZDkwM2E1OTZhMWYxMjE3NTA4MDE4NWJkOTRjMjMzNmViOGRkMjlhMzg3ZCI6IjMxN2MxOWNmNGE0NWI4Y2YzZjY0NWRhMDg0YWRhNTRkMWIxZjgxMzc5MTUyNDI0ZmRkYWQyMmE2ZGM5YmQyMjg0MWUwYzRjNWEzNmJmYjc4NzllYWZiZDFhOTM5MTIxOTA1YTkzOGFlMDM0YzdmYzAxYWZiNTY2MDdlMzVmODk1ZjQ2ZjEzZTkxY2U0ZThlNzViNmE4N2ExZTU1NDRlMThlYjE5NGZkNjc1NGIwNjg4NWFjMDVlMzMyYTA1ZWQ0MzZlODg5OTY1ZTQwNWUwZjIwNjliMDRiNDBlYTBmNjM1IgogCiBITUFDX0RSQkcgTklTVCBDQVZTIDE0LjMgTm8gUmVzZWVkIChTSEEtMjI0LDE5Mis5NiwwLDE5MikgIzYKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjI0CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjI0CiBobWFjX2RyYmdfbm9fcmVzZWVkOk1CRURUTFNfTURfU0hBMjI0OiI4YWY4OTMwNTYyNTEwMjMxYTU5MmE3MjU4N2ZhNmFkN2MyMzRlMTMzMDQ2OTY1OTA3NjQyZmJjNzg1YzBiODZjYmE4NDRmMGYiOiIiOiI5ZWU3YjIyMTA2NDk2NjU4MmRjODM2NDM3YjgyMzg2ZjUyMDRhMzAyYTQxNzkwNzkiOiI0NzNkOTE3ZjViNjZmMGY2ZTNmYjQ2NzBiYTA4YzJjYmQyZWE3NjViNDZiMTA4MzgiOiI1YzJmYzljYzcxNDhkYmU0MGE2OTJiMzYzNjc3OGViODAxODg5NDlkMTk4YmJhM2U4MzU1Mzg2Yjc4YjU0YmZiOTYzZjVmMmQ5MjAyOTg4ZGEyMGNjYmYzMzZhN2M3MzdhNjZjOTAxNDliOWU4ZTMwNjQ3NzE1MWM0ZDkxMmY3YzYxZTg3MmRlMGQwZTQ3NzAxY2JlNzY1ODY0ZGU1MzZkNTk5OTQ2YjhiZDY1ZTRkODlkNGU2MWRlYjUzZGU5OTc0ZmJiZTYzNDUwMTgwMGZlZWExMDBmZWE1NzNlMmU1MCIKIAogSE1BQ19EUkJHIE5JU1QgQ0FWUyAxNC4zIE5vIFJlc2VlZCAoU0hBLTIyNCwxOTIrOTYsMCwxOTIpICM3Ci1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTIyNAorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzIyNAogaG1hY19kcmJnX25vX3Jlc2VlZDpNQkVEVExTX01EX1NIQTIyNDoiMmI5NTU0ZWNmOTRjN2Q2NDdhNGUxMTdmNDMzMjZjYWI1NDQ2NmViYTU2YTA5YTUyNzQxYjI0NDUwNTdjNDkxOTM1YzA2N2QyIjoiIjoiMDE0NGJlNjk3OGRiYTg1YWE2NDVkNzkzYzE4ODFkYzJkZWIxYmQyMTA4MTFlYzllIjoiMWNkMjY1ZjM4MTI1NjgyNzRiNjQzOTU0YzcwOTIzYTc2ZGZjYzlmMTIzMzYwMTExIjoiZjc0NTliMGMyMzk2NmRjMWE1M2UwYzY0MDZjOWU3OGViZTcyOGUzNDg0MjI0Y2Q4OGI2YjJlYTU1NDUyMmU3NWViNGExYzhhM2ZkYzY2NTYxNDI2NDY0ZjUwYjhkMGZmOTViMjY2Njc3ZDkxNzc2YjM0NGE4MjBlYjRmZDdkNTU0Njc4MzAwNTU4MDExYTdjZDg1ZDIyZTkyZGM4ZWMyYzJmYTE1YzYzMzBiYTE1N2MzZTcxNzI4MzA0NDQ3YzFhZDRkNjRmM2RhNGZiZjI2ZDkyZTFlN2M1OGExYjI4OWMiCiAKIEhNQUNfRFJCRyBOSVNUIENBVlMgMTQuMyBObyBSZXNlZWQgKFNIQS0yMjQsMTkyKzk2LDAsMTkyKSAjOAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyMjQKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yMjQKIGhtYWNfZHJiZ19ub19yZXNlZWQ6TUJFRFRMU19NRF9TSEEyMjQ6IjMzNWVkZTg2MDNmY2RlNzhlYTk4NjlkYTJkYmNhYjRhNmU3MmYxYjUzNDM5ZjMwODVkMDZiODU2ZTYyNzQxMWE5Y2UxYzI5NyI6IiI6ImVkZWRjNzNmZTI2ODkzNWMxMDgzMmM0NjM1NDlmODIwNGEyOWNmMGZlMDBhNGQ4NyI6ImVmMWI4YTgwZGQ0OWQyYzI2Mzk5OWRkYzBkNWExZDkyMDVjMWIxYzY2MjM5ZmQ4MCI6IjA1YmZlOTdjMzk4YjFlMzNlZTFjNTQ3YzBlZGI1YjY1NGI3MDYwYjc2NjA0MTk1NDQwZDA2ZGQyZjYxNGEzOThjNmM0M2YxODAzODkzYzRjODg4OGJlZGVjZGY5OTgzNjdjZjk5MjMwMWEyNWYyNGMyNjNmNWQzNmJiZmM2ZmU4YjgzOWNhZDI5M2IzNjE3YzFkMmM2MGE4MTRiZGEwMzU5ZTNmNzE3ZmE4MGZjNzMyNGFmODgyN2Q0MzhjODg2NDI3NTRiMzliMTBkMThjZjViZjQyZjExMTc3YTBiYzZiIgogCiBITUFDX0RSQkcgTklTVCBDQVZTIDE0LjMgTm8gUmVzZWVkIChTSEEtMjI0LDE5Mis5NiwwLDE5MikgIzkKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjI0CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjI0CiBobWFjX2RyYmdfbm9fcmVzZWVkOk1CRURUTFNfTURfU0hBMjI0OiI5YjAyNzVkODYxMTE3NTUzZWNkM2M0ZDdjZmU3NjJmODhkZjIyYzRjNDE5MGRhYzhlMGJlNTg3MjgxOGUyZGQ3NjUyNjFkNTgiOiIiOiJjZmMwYjA3MDgyZDUxNDQyNWIxN2NlM2NiMzM0ZWM2MmJjMWIzYmUwYmU1OGNhNGIiOiJkM2M3MGFiNWZmN2EzNjRhOWU2ZGM3NTEzMmFjNjdlMGQzNzNmYTJkZjMwMWFmYjUiOiIwOWZiNDFiY2NlYjAxNmU3NTQ3OTVlMWNjZTU4MmYwY2FlOTFkN2JiNTAyNDU5NzVlYjc1Mjc0ODE5ZTFlNGRjZGZiYzVlMmYxM2ZkMjZiOWE5ZjllOTQ1Y2Q4MDdmZmVjNGUyNzU2ODFlYTdiZDMzZWFlMTNlZmQ4YTAxZWRiZTAyNTYyZTc3YjQ0YjYzMTJmNDE2YzNkZDBiZTY0ZjJiYWUwYmE0YjliYjM2ZmMzYTQ0ODQxZDIxZDhiMzU3MWMwZWY2NDRkODhjZjNjYzNjODUxYjI1NmExNWY0ZDcxNiIKIAogSE1BQ19EUkJHIE5JU1QgQ0FWUyAxNC4zIE5vIFJlc2VlZCAoU0hBLTIyNCwxOTIrOTYsMCwxOTIpICMxMAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyMjQKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yMjQKIGhtYWNfZHJiZ19ub19yZXNlZWQ6TUJFRFRMU19NRF9TSEEyMjQ6IjE5ODFjM2Y5Y2E1OGZkMTBlODM3N2E4ZDBlYjNjZjAyMTAyYWFiNmY3YTAzM2FmMzEzNTUzM2Q5ZmQ4NTBlMjllY2I4ZGM5YiI6IiI6ImY5OTc4YmE0MWRmMjI4OTRhZDVmMzg0OWMxYmRmMjFmN2JiYzAxMjhjNzgyZTc5YiI6ImI0ZDU3ZGU1ZTE4ZDM5MzI3M2VlOWYzZWY5NzM2NTk5YzZkNjM5ZjQzNzIzOTIxOSI6ImZlZTIzZGIyZmNjNzE2MjRmYjM5ZjU3M2UzM2ExNDkwZWZjNzIzMGMyN2U5Mjc4MTg4MjUxNjM0ZjljMDQ1YmNiMjZlNzllY2U2YTE3MzQ5MTQ3NWFlNDRhOTU3YzQyNjk1NzBmNTQ2OTIzNGNhOGI2ODczY2M5NzNjOGQ5NzE3OGM1OGNlYzY1OGEzNTJiYWQwZDRjNjAwMWNhZTU2NjQyNThkYjU5YWQ3NmViNjMwNGQxNjYyNjdlYWZiNDZmNGRkNTM2YTkxNGZhNmQxYWM1ODMxN2U3YzU1N2Q0NjUzIgogCiBITUFDX0RSQkcgTklTVCBDQVZTIDE0LjMgTm8gUmVzZWVkIChTSEEtMjI0LDE5Mis5NiwwLDE5MikgIzExCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTIyNAorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzIyNAogaG1hY19kcmJnX25vX3Jlc2VlZDpNQkVEVExTX01EX1NIQTIyNDoiYzEwZDRlNTIxMzUwZjdjZDE4NTM1NzZkMDNjNGJlY2UzZTU4YzhjNzQwODU5ZTRlMTY5Nzk0OTllYzEzNjVmYzA3MzczNmEzIjoiIjoiNzhiMjQ1NTIwMTUzYmFhY2M2Njg0NmU3YTgzYTJhOTI1Zjg5MmQ0YzJlZTYzYzBmIjoiYzhjYTdhMzNkZTU5OTFkNDRkN2VmN2RhMmQzMzY4Y2MyY2RiOTM4OTVjMzk0ZDQxIjoiZjkyYzE1ZjU4MzM4MDBiMjhkYmEyZDEzNGQ0ZGNmYzQxYWJmNzJmNWE3MDA0Njk1NTFlOGNjYjgzYmRiMDc3MmQxNGQ2YjI2YmE2OTc4MTY5ZTNkZGJlNWYyMTRkNTc5MzBkZmNhZDcxOWJmMTBkMzA2NzQ5MjQ2ZDI2MjRiZWRkNGExOGQzMjdiOGFlNmJlZTY3Y2YwYmZiNWY2NDk4MjRiYmQwNDQwZjA0MjE0NmI5NWE4M2U1ODQ1Y2VkNjlhNTViYTA1NWQ1ZGZjNzE4M2MzYmIyOGQ2MTMxMmQyNzQiCiAKIEhNQUNfRFJCRyBOSVNUIENBVlMgMTQuMyBObyBSZXNlZWQgKFNIQS0yMjQsMTkyKzk2LDAsMTkyKSAjMTIKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjI0CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjI0CiBobWFjX2RyYmdfbm9fcmVzZWVkOk1CRURUTFNfTURfU0hBMjI0OiI3NjA4YjU2MTc3ODU5OTVhMWY3MTQ0ZWU1MjI5ZTRmOWMxMzhlNDE4YmNjM2I1ZTA2MWE0MjJlOGNmODc1ZjU4NjUwZTk5NmQiOiIiOiI5NjFjMmQzMzAzOWU2MGEyODcxZTFmNWI4MjA5N2Y2YjFjYjAzODM2ZGJhNWY0NDAiOiJiMThjYjUyZDM4NThhYzViZjU5ZjIxNmEyOGMwYWQ0OWYzZGM4OGM2N2I1ODcwZTAiOiI0YjAzMTNhZTg3M2NlNWViZjA4YWVjMTYwNDE2NDkyZTRjNGM3OTdhNTAxNzA2MWVhNDJhZWZhMDY4NWFiMTliNzRhN2FmMTFmMDE5YjlmYjYzMDcyYjc5N2Y3ZWEzMzU0ZWZkMzJjNGFiZDFlODY2NDA1YTMxOWVkMmZhMTNmYzgxMDE5ZDYxMzI2ZTcwZTUwMzE0MWI5Yzc3YjQ4NzlhNDVlOWYzNmYxMDFkYmZmZjQzNTkxNDcyODJlZjgxNDg4OGZlZTgxNjQwZGVmMjVmNTUxY2VlNDFkMTI2MDlhYSIKIAogSE1BQ19EUkJHIE5JU1QgQ0FWUyAxNC4zIE5vIFJlc2VlZCAoU0hBLTIyNCwxOTIrOTYsMCwxOTIpICMxMwotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyMjQKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yMjQKIGhtYWNfZHJiZ19ub19yZXNlZWQ6TUJFRFRMU19NRF9TSEEyMjQ6ImZlZjdhNDNmZWEyZmYxYTBmNjI0MDg2OTg1ZTUzNTc3OGQ3YTczZGJjNDdiYzIzZTlkYTkyZWRkNWQyZjI3M2NkYmJjMDI1MSI6IiI6IjgzNjczMWE1NzQ5N2E2OWUzMWY4ZGI0ZjcyOTc3NGFkNjVmMzFkOTY4ZGJjNTVhOCI6ImJjY2E5NmQ4MDhiYTk4YmI1MGU5MGFmZTU4ZmM4OGU5NWRjMTRjM2U5MGM1NjAwNCI6IjRmMmM2NGVjZDE0NjY4OTA2NGZiZjRmY2ZmY2UyYTJhYjM5MTBlNzJlYzRmYWVjMjc3ZjdiOWU5ZWQ1MTAzODEzMTJiMDFmMjE2NTBlMTc1ZWJlOWM0NWMxMWU5NzcyNzZmMTNiZTAxNTI0M2EwY2QxNmExOTFhYmJhYzY0NjJiYTk2ZTRlNGExMTIwYjI4MDgzZGE5MzM0MTllOGM4ZjAzMDk5OTA2ZWIxZWUwMTJhZTI5MTEwNGM2NTMwZjUxYjVlMzJlNjYzMWNhYjhlZjVhYWQ2OGMwMDQ1MjU1YmE5IgogCiBITUFDX0RSQkcgTklTVCBDQVZTIDE0LjMgTm8gUmVzZWVkIChTSEEtMjI0LDE5Mis5NiwwLDE5MikgIzE0Ci1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTIyNAorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzIyNAogaG1hY19kcmJnX25vX3Jlc2VlZDpNQkVEVExTX01EX1NIQTIyNDoiMDAxOTdjNzBiMmYwZDNlOThlNGIzODdlYzQyYTY1YzQxMDZhMTY4OWFiNWRlNjExMDFlZTc2ZjRiNWU1MzBlN2VmZWFmOTY0IjoiIjoiMDMwMTUzMTFjZGRkMDk2MWVjN2E3NGNiODRkODM1YzA1OGE2OWI5NjRmMThhMWMxIjoiNWUwZDk5ZTBlN2M1Nzc2OWE0M2VhNzcxYzQ2N2ZiNWUyZGY2ZDA2ZGFlMDM1ZmQ2IjoiNzJlOGNhNzY2NmU0NDBhYzZhODRhYjZmN2JlN2UwMGE1MzZkNzczMTViMTE5YjQ5ZTU1NDRiZjNlYWQ1NjRiZDA2NzQwZjA5ZjZlMjA1NjQ1NDJlMGQ1OTdhYzE1YTQzYjVmYjVhMDIzOWEzMzYyYmMzYTllZmUxY2UzNThkZGQ5ZDRmMzBiNzJlMTJlZDlkNzgzNDBjNjZiMTk0YmViNGIxMmU5NzMyMTM5MzFiOWNmZDBjY2JkZjU0MGQyYzM2Y2UwNzRlMmJlYWM3YTRkZGFjNTllMDZlNGM3MTc4ZDMiCiAKIEhNQUNfRFJCRyBOSVNUIENBVlMgMTQuMyBObyBSZXNlZWQgKFNIQS0yMjQsMTkyKzk2LDE5MiwxOTIpICMwCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTIyNAorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzIyNAogaG1hY19kcmJnX25vX3Jlc2VlZDpNQkVEVExTX01EX1NIQTIyNDoiZTQ1NDcyNjFjOWRkYTZiYWZlOWZkZGY0MzVhODBlYmM5NjM1NGM3YzJjODg0N2M1ZDI2YzZlNzNhOTY3YmZjNGViYWY4NjEzIjoiNDI4NDlkYzhlZWM2MTFlYWE0OTI1MjA2N2ZhNjBkN2Q3MjY3ZDcxMWRjMzViNTc2IjoiODE1ZjUwZmMyMzNmMTU3Zjk2YWQwNjI3YzM1NWJjZTQwN2IyNjlkY2E5MWFmNjYxIjoiNzc1YTFjOWRhNmY1OGQ0ZWI5NWIyNzkzNWVjYzAxZGRlMzFmZjE3Y2UyZTRlNjVkIjoiMjVhZGI3Nzc1MjNhODBhNmRiYjZhYzFmZDA4ZTAyYmZjNGI0Njg2Y2VjNWVmZTNhZTlhYTJkNDQ2OWVhZThjOWMzNjkzZmRjOGUwZmMxMDc3MjBiNzc4OWVmNzMzMWUyM2ZlMzc5OTQxMmVjODY4NTdmZmJiYTUxNWE1YWY0ZDkxMDEzYjJmMTc2Njk0MjFjODIyMDA1YjQ3NDc5NDI3OTBhMTFhMjRjNDk3NGYyN2Q1NGRlNjk3MjdiMGVkNTA3YjZhNDhhOWQ2YzUzZjkzZTJmM2QzM2RmNzNkZDY0M2YiCiAKIEhNQUNfRFJCRyBOSVNUIENBVlMgMTQuMyBObyBSZXNlZWQgKFNIQS0yMjQsMTkyKzk2LDE5MiwxOTIpICMxCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTIyNAorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzIyNAogaG1hY19kcmJnX25vX3Jlc2VlZDpNQkVEVExTX01EX1NIQTIyNDoiMDZkNjc3MDAxZDliM2M5N2ZkYTRkMDk3NzhhZWUzZGUxMzFiNDEyMzY5NmIxMDlmODFiYjZiMGQ3ZmJjYWIzYzU4NDJiYjgzIjoiZjk5NjM4ZDJkNDM2NWI2NjJjZDgzYWI0ZTZhN2JiYjYyNGU2YzcyYjdiMzhlODFiIjoiMjBiN2Q1NmY2MjIyYmFmZWVlZWU1OWRiY2ExOTMzZDgwODYyMTg4OTFmM2E5YmZlIjoiOWRlNGYyODQ3ZmUyMzljYjFhM2RmNGI4ZmY2NGMyNWQ3YjA4NzBmM2M5ZWJlM2EzIjoiZTE4ZmYxOTgzN2NlMjFlNjg5NDQ2NTkzMjEzMTFiODU4NGRkNTE1ZWQ4YTZhMWYyYjBhYzA2ZTY5MDA5YzNkMGNmMDQ4OWFmODc2MjAxZWZhZDk2MmNmZDFiYTU0ZjU0MGI5NDEzMWQ3ODhkM2ZlYTc5N2M0YmMwNzk1OTNiYzc5MzJiYWE3MGFiYjE0NWEzNTU3NDFhOThjNTg0ZjBmYTMyOThiODMxMGIwMWUxYTZkZWJmNTM1OWQ3ZDAyYjFhNmM2NjMxMDBhY2I1Njk3NTQ1MGJlYzIwZTkxYjczNmIiCiAKIEhNQUNfRFJCRyBOSVNUIENBVlMgMTQuMyBObyBSZXNlZWQgKFNIQS0yMjQsMTkyKzk2LDE5MiwxOTIpICMyCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTIyNAorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzIyNAogaG1hY19kcmJnX25vX3Jlc2VlZDpNQkVEVExTX01EX1NIQTIyNDoiYWJkMzhjMDQ2NWNkZmUwMThmMzZmZmJiN2EwZWU1MWQ2NzY3NWFiNGYwZjFkMWU5MzQxOGJiNGNkZjY0OTlhMzcxYWY0ZDNhIjoiOWEwN2Q1NTcxZDg0MWUzYzFhOWViM2ZiNDhjZGUzYjNlMDgwZTFjMmUwZGI2YTZkIjoiYTM5MmY3OTAyMmFlYmJlYzBjODJiOTgxMjkzNjI3ZDEzOWRmYjUyMzJlYjQ5MGI0IjoiZjVjZTFmNmIxZTY3MTVjNDliZWE0MmZmNDM5ZmRlY2Q5YjNiN2YyZTU3ODEzM2NjIjoiODg1YzU0YWQyNTk5MmZjMzgyNjA0OThkNmY0ZDhjNzNkNjE1OWFmNWY3ZWZlZjA2MTc0ZGEwM2FmY2Q4Mzg0Y2IyODY5MGZkOWRlZDFkMjZlMmRmZjc0YWVlNGRkMGM0N2EwZDk5YzZmYzFlYzhkOGZhY2NiZGNmNmZkYjEyYTUyODU2NGFkMGQ4MTMxYmNmNTIyMmQ3ZTZjNjljNTJkYTFhY2JhMDFiNzIxYzk4YWM1YTMzNzI1MTExZjEyZjZkODEwMDAwOWQ3Y2M5ZWZiN2FkOGQ3ZDk1ZWE0ZTYyMGQiCiAKIEhNQUNfRFJCRyBOSVNUIENBVlMgMTQuMyBObyBSZXNlZWQgKFNIQS0yMjQsMTkyKzk2LDE5MiwxOTIpICMzCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTIyNAorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzIyNAogaG1hY19kcmJnX25vX3Jlc2VlZDpNQkVEVExTX01EX1NIQTIyNDoiYjUyNjIwZTU4ZTBiNTJiOGVlZDBkNmE2YzVmNGZmNmMxNDgzYzYxZmM0MWRhY2Y3MmJmNDc1YjM3ZDA2OGQwNjFkMWVkY2VhIjoiZWYwZDIzM2RlMDBkMjQ2MjJiN2Q0ZmY0MjE1YWE3MjA3ODdmZTgwYWFlYjY1ZDdhIjoiODFiNzM1YWNkM2RjYjEzZTY1MjMxYzJkOTgwZmI0MGNhODUwMzcwNTgxZjIzMGQyIjoiYjIzMDJkMDI0ZDkyY2RhZWQ0YjEyZjc5YjBhZWIyMGM5OGIyMzIxNzEwZmVmYWIyIjoiYWU5NDIwNDY3MDE5NmJhZjc0MDc2OGY5N2IzYTA5NTEzNGIzODRhZmVhNjY3ZmQ5MGE3N2ExNmM4YWUzOTBhNzMyZmY0OWEzMDczYTI3ZGIwZjdhMmM4YWQ1ZDdjYjUyN2QzMzRhMzdhYmYwNDcyZjI5MmEyMGYyYTI4ZTY2N2Q3YzllOWY3YjhmYmRkMTc3ZjM2YmY5MmQ2NjIyM2FlZTNmNzEyYjZjOWIwNjRlMDdhYjk2ZjZhNzc2MTNlYTU1MDA4ZmI0ZjhmYmNiMmYxY2NiYjBkYTc1MzE2YzFmYWEiCiAKIEhNQUNfRFJCRyBOSVNUIENBVlMgMTQuMyBObyBSZXNlZWQgKFNIQS0yMjQsMTkyKzk2LDE5MiwxOTIpICM0Ci1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTIyNAorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzIyNAogaG1hY19kcmJnX25vX3Jlc2VlZDpNQkVEVExTX01EX1NIQTIyNDoiMjU5MmE1ZWQ4NmZmNjRiOWI0YzFmYmI4MTIyMmQxYmZiYzUzZjNhNjM5NTcxZWNjMzU2MDg0MDU4Yjg4NTUyMzdkYTE1YzUwIjoiYTYyNmM1MWVjOTllNzI0MzE0ODVkMmJhMDI3ZWQ5Y2FiY2FlN2I4NjExNmFiZTRmIjoiYzQzMDg3NjU1MmQyODc3NjU3MDkyM2M2Yjc0ZTQyYzMyMTBmMDExMDQwMDZiZjExIjoiZmUyZWJjMjM5NjkwYTRlYjE4YTBiNWU3NWQwODgzMWNjMmViMDdjOTgyYzYzOTczIjoiMDA1MDQ1YWRlN2NjMTU0NjdiNWVhNzg0NjQ5ZDk4MDQ1NDBhODQyZmZiYTRkYjhkNDRkZjRmNDRjNjk0ODBiZDRmZTk2NWI2NDVhZWQwOWQ2MjE5MGRhZWIyNjkzYTIxOTJhZWMzZDcxNDUzYTgyMThlNDcwMDIwMWFiOTIyYWMzNWQyNDFkOTUxNTBiNDdjYzdhMDUxODk3YmU0ZDk1OGYyZGE1YzJlYmJmY2ViMWM1NTBjYjY3YjMyZmY4M2NlNGZkODQ1ZmQ4MjZhMGQyNDY5YjUwNmY1MTU4NzY1ZmEiCiAKIEhNQUNfRFJCRyBOSVNUIENBVlMgMTQuMyBObyBSZXNlZWQgKFNIQS0yMjQsMTkyKzk2LDE5MiwxOTIpICM1Ci1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTIyNAorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzIyNAogaG1hY19kcmJnX25vX3Jlc2VlZDpNQkVEVExTX01EX1NIQTIyNDoiMzc2Nzg1ZjVmZjhhODJjZWIwYWFlYjAxMDUzM2NjMTA4OTA1OWVjNTgzYzMwMmIxNGJjNDdlMmNiOGMyNzExODM5Y2U3ZjY4IjoiNmQzNDVlMjQ4MzM5ZTg5M2Y3NTY5NmMwMzlhYzQ3ZTU2Nzg2OTZmZDQ4OWEzOTNjIjoiYjBmM2ZhMTEzMWMzZmRkNWM3ZmQyZGU5MzkzMWU0NWE2NmZhMDMwNDIyYWM2NWRiIjoiYzY2MzQxZTNmOWZiODJlM2JhODVmMjI5ZmNiN2QzNDQ1N2U0YTZiYTgzOTZiNTQ4IjoiYjkyZDE3ZTFiZTk0YjAzODVhOGNjM2UxNjE4OTgxMWZlZjdiMjg0YTFiMGI2YjI1MjBmZGU3OWFmNzgyNmM3NDVlNzQ2NDg2YTcwY2Q4ZGQ5OTMwYjE2M2RhNzVmN2VlYTdjMjE2ZTc1OGQ5ZWQ2Yzc0NWRjZDdiZGUxOWJiOTM4MmMxZjdjMzdjZDE1YjcwM2I4ODRkN2Q0NTJjMjU1YjI1MDQ4YTgzNjg0NGM1ZmYyOGFhYWNmNzMzYTUyYzI4OTA0YjM2ZTFiNTE3MjlkN2FlZDgxZDYwMWMwODcyZGQiCiAKIEhNQUNfRFJCRyBOSVNUIENBVlMgMTQuMyBObyBSZXNlZWQgKFNIQS0yMjQsMTkyKzk2LDE5MiwxOTIpICM2Ci1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTIyNAorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzIyNAogaG1hY19kcmJnX25vX3Jlc2VlZDpNQkVEVExTX01EX1NIQTIyNDoiMmNjMjU1NzU4MmM1YTkwY2QyYWQwYzRhNTU3OGViMGJiYzliZGU0MWIxMjZlNDZkOGU5YzM1NjMzNDFiYTIzODQxNGViNjI4IjoiOWQyZmJiOTE1M2UzZmZlZmFlMDc3MGM3OWRlMTBkYjA2OWE1ZmY5ZjUwZTMxNzg3IjoiMmU1NGUzMjUzOWUyN2VmNzZhYzFlZWFlMmUzMGMyMzg1NjQ3NjUyZTIwOTAzYjM5IjoiMWY0ZTAxMjU1OTA4YzNjODA0OTUyMWY4OTcyYzAxZWRlN2RjNzZjNDI1YzU5NjQwIjoiN2Q2Y2NkZmFiMzNmMzIyODk4YzQ3MGJlMDJkODI1N2UwZTk1MmRkMTBmNDA3YjNhOGVhZWViYTQ3YzU0MWQ5NjhkNzllY2EyOWUxNTU0MWMxNTA1ZmU0ZjE5YTQxNzk3YzljYTIyODBjMDYyNjFmZTlkMGM1OGJhYjY1ZDE2ZjU3OTRiNTc1NjZiODc5NWMzOGM3YjQzZDQ3NjFjOGZkMTA3YmViOTUxNDdhMGZlNjFhZThkYzMxZTI1ZWIyOTU3ZTQ0YzA0NjNjYTdjMWI1ODllYTU4N2YwY2FlMTQyOGMiCiAKIEhNQUNfRFJCRyBOSVNUIENBVlMgMTQuMyBObyBSZXNlZWQgKFNIQS0yMjQsMTkyKzk2LDE5MiwxOTIpICM3Ci1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTIyNAorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzIyNAogaG1hY19kcmJnX25vX3Jlc2VlZDpNQkVEVExTX01EX1NIQTIyNDoiZTY3MGY4OTYzMjZiNzYwMzRlNDNjZDg1ZjZmNmYxMWZlNjU4MmQzNDcxYThlYjg4ZDM3YTIzMDJkZTAxMGFhYzBlNTU2ODYwIjoiNWUyMTgwOTFhYmVlMTk2MGVmODFmNGQ1YTgwNDE1ZTM4OGJkMGNjNzliZWQ3MGNmIjoiN2NmODRiOWZmMzBkYmQwZjYwOGZiMjE2NDZkN2M1YjU0MmZiYTUwYWRiMzhkNWRmIjoiYzFjNGFhYmU3NjE2YTRjOTdhNGRiZGFkYjA4YTliNjNjNmUxMGNlZjhkNDYzZmQ4IjoiZDhmYmQ1NTdmY2NmMzE4MjliNWVlMTFiMDVkMDM1M2U3MjViZmYxNWZkYWFjOTRkMjFjZTk1ZDQwZWZmNTVlZGQ4NTJiMjY0YjUxNWVjNjM4NGUyZDI4ZDAxNGU0N2EyZGYwZDRmNTZhNGVjNzkzMDliMDZhZmZjNjI5MTVlMjMxZDYyZDAyYmZjNjAyMjBjNzJiN2NhN2JhNTY3MWY4ODI4MzliNzkxZWY1MzRlNzA3YTA0ZTUyNzRjMTAxMWY3OTQxZmUxMDc1YTVkMDZhNDdhZjlmYjJmNjVjMWYyMTEiCiAKIEhNQUNfRFJCRyBOSVNUIENBVlMgMTQuMyBObyBSZXNlZWQgKFNIQS0yMjQsMTkyKzk2LDE5MiwxOTIpICM4Ci1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTIyNAorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzIyNAogaG1hY19kcmJnX25vX3Jlc2VlZDpNQkVEVExTX01EX1NIQTIyNDoiMDU3NmJiMmQ0YzY2M2I3ODExOTM1MDkyNTFlMmY3NmIwYThiYjc5MmU3OTQ0OTYwMGMyYzE1NGZlYjcwY2YzM2NhOTQyNTA4IjoiYWQxNWU0ZmNlOWY0ZGVhNDNjMTJmZjlmOWQ1MGM5NjNiMzM1YTAxMzMyNTQxMTU0IjoiM2M4YTRkNmFiOTZjZWJmOWQwMmI1NjYzZGNiMGUwZGIyMzY5OTYyMzQ1NWNkNGI1IjoiNDNkMmQzYThkMDIzZmExNzg1Y2U0NzgxYTE1ZWIyMGFkNzg3Njg1YTQ3ZGEwOGYwIjoiYTY4ZTY0OGNiMDdkYTJlYjc5NWE4Yzg5OGM4NjMxZTU2NWYzM2MyZmU5YzM1ZTY4NmQ2Zjg1ZmVmMTQ1NDQ2Y2I3OWJiNmQxN2JkYzgyMjRiZmU0Mzc0NjhhOTYzMGVkMDNjNTE3Y2FmMTIyNmMyNzhhZTUxMGM4NjlkNjdkNTBiNmJmMWNiMzc4YTM0MDM1MDQxZjI5MGQ4ZGJjMTIzNjUwYWI0ZmJlNWNmNjA3NGVkMGJhOTBlNDVkOWE4YWUwODU2NmVhM2QzYTAwZWUzNzQxYzhlYzhmNTZkY2M3OGMiCiAKIEhNQUNfRFJCRyBOSVNUIENBVlMgMTQuMyBObyBSZXNlZWQgKFNIQS0yMjQsMTkyKzk2LDE5MiwxOTIpICM5Ci1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTIyNAorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzIyNAogaG1hY19kcmJnX25vX3Jlc2VlZDpNQkVEVExTX01EX1NIQTIyNDoiZjU5N2NlMDViOWE1YjFjZjM4NDdiYmQ0MTcxZTUwODUzODRjYzI1NmY3N2FjNjE1NzNiNDM1NzI2Y2JkNTM4YjkzZGU5ZjU1IjoiNTczY2Y4NTlmOGZlYTA1ZjE2YzZkMDNjYjRlNTI0YjkxZTkxN2YzOWVlZWIxZDY4IjoiMmE4NDI0NTQ4NzBjM2Y3OTM2ZjgwMzZiNDUzZDIxOTU1N2NhMzQxZjI2MWQyNTE5IjoiN2FmZDhjYzI2OTg5OWFjZDg4ZjVjNTVhZjI5ZmIwYzRjZTY3OGEwZDhlYmY5MjRmIjoiODE2MmMxNmMxY2UzZDVjNmI3Yzk2ZjAyODFmNDIyMDU2OWE4ODIyNzc5MzU3NTJiODZlN2QzZjU0NjQ2YjI3NmNiNzdlZDk2ZGE3Mzc5OTkxMWZjYTNkMTlkMzRjMWYwYjIxMDY4YTQ3MmFmY2I3NzQxMDQxMmVmZjJhYmQwM2M3NTNhMDA5Y2UwMmIwZTk5NTQ3NzU0NjM2NjAyMDI5NGVmZjBlZjBkYTY2ZjMxYTQxMzMxM2UyNzc0Y2EwNGYwOWE0ZDUwNzZlMGU4NWNhOTdkNWJiNmZhYWM0YzBjMjciCiAKIEhNQUNfRFJCRyBOSVNUIENBVlMgMTQuMyBObyBSZXNlZWQgKFNIQS0yMjQsMTkyKzk2LDE5MiwxOTIpICMxMAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyMjQKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yMjQKIGhtYWNfZHJiZ19ub19yZXNlZWQ6TUJFRFRMU19NRF9TSEEyMjQ6ImQ1YjUzNzRmZTE0MzAzNWM0ZmVhNDE2NjdiYzhiYzdkNDYwMDA5OThjYzgyYWIzMmEwMDQwYzcwNWUwMWY5YjM1NGU4ZjE2ZSI6ImVkOGJiMjE5ZTY3NTE1ODc0YzViOWUzZjZhZTZlNGRmYTljNDJkMWU2OTIwNGU4YiI6IjcwZjAzZmU2ZTc4Y2MzNGVjMTY3OGIyNzA4ZmNkOGFlMzMwMDE4M2VhMTVjY2ZjNyI6IjljNjQxZDdlNzNkMWEyYjgxOWUxMTM3NDdkNzRhOTc5Yjc0YzQ0NGVkMzZiNzM5MSI6ImQ1MGRmOGUzZTE3YzBmNWUxOTY3M2JhMjA5N2QxZDBjNGNmN2E5ZGVmNzQ2NWE1YjkxYWM4ZDQ5YWUxYjZhODIxZmU5ZWZkZTg0MWVjOTA2NDU1NWMwZTJkNmNkZmE0MWYxMDg5ZjIyYTVjMjcwOTBjNWExMzY2NjBkMWFmNTg2YTFlMTMxYTg1M2YxOWJjM2M4ZjRjNzlhYTA5ZTM5YzJmMjJiNDQ1NmM2NjdlYzkwN2UyYTQxMjQyMTg2NjVlN2NjZTUwMzk5YWUxZTE5YmE5YzIzOTlmNDcwNDQ0ODM5IgogCiBITUFDX0RSQkcgTklTVCBDQVZTIDE0LjMgTm8gUmVzZWVkIChTSEEtMjI0LDE5Mis5NiwxOTIsMTkyKSAjMTEKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjI0CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjI0CiBobWFjX2RyYmdfbm9fcmVzZWVkOk1CRURUTFNfTURfU0hBMjI0OiI3NGQ3YzhjOWIxNzBlNTllNGYxMjhjOGRmMTk1NTgzOGRmNWM4MDcxYTVlODU0MzlkNzFlNzg1YzY4YjM3ZTEwZWZiMzljOWEiOiJiZTNkNTQyMDNhMTA3OGQwNTE1MTkxMzc3NzRkNWQ4NTFlODFiZTAyNjE1NWViNzgiOiIyM2Y3YjY3NThkNzlkZTU4MGVkM2ViOTk1ZmMxNzNkYTc0OTM5ODM3YWE4ZDllYjQiOiI2ZjBkNWEzMzNkZGVhMGQzODM2MmRmMGRjM2ViYWEyYmUyZmU1ODI1ZGRiMGNlODQiOiI0NDYyZmMzMjExMGIyNWIzNzk3YzVjYWZhYWQ4MzBlOGE0MzQ2ZDkyNzBmZWQ5OGIzMGYxMzQ1YTdhOGRkZTE5YmY1MzY1ZDZmMzc4OGU3ZjcxNWZlYjI3NjJhZjI2MzgzOWM4YzgxODg5MDhjNjExMjA3NDNkOTc3ZDcxYzUxZjYzMjRkODg3YmJkYTM4MGZjMDdlZmYwOWEzMWMyMzMyZTdiMWFhMTY5MmM1OWMzMzc5ZGI5NWZjMjFjZjcxMWMwMDRjNGQzODVmZTE0ZjQ4ZjJmMmEzMWJjY2U2YWFlYyIKIAogSE1BQ19EUkJHIE5JU1QgQ0FWUyAxNC4zIE5vIFJlc2VlZCAoU0hBLTIyNCwxOTIrOTYsMTkyLDE5MikgIzEyCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTIyNAorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzIyNAogaG1hY19kcmJnX25vX3Jlc2VlZDpNQkVEVExTX01EX1NIQTIyNDoiZWFmMjdjM2Y2OTI3OWZkNTIzYzBjM2ExZGE1ZmM0ZjAxZWQ2NGMyN2ZmY2ZlM2MxYzU5NjQ4MmY1YmFhZTE0MzRlOGM2ODdjIjoiYjAzODgyOWZjOTVkY2JhODY0NWNlNDBhMzA2NDkxYzg5M2Y0ODEzOWFlMzBhMDcxIjoiZmJiZjdhYmI4Y2MyNjEyZWVlYTZkOTQ2M2VmZDU1YzQ3MjQ1ZTAxNzEzMzMyYmQ2IjoiY2NkN2U4MWY1MjlkZTFmZjRlNjVmYzYzZDM0YzI2MmZmZGU3ZWU0OWU2NzA3MTk3IjoiOTZkZmI3NDQ1MDU3NjMzYjJmMGRlYjY5MTM1ZDEwZDBhMmRjNTNmYWE5Y2RlZDU1ZGRmYjhlZGM2M2Y1NDI0ZjhmZWM3NjI3NTk3YTMwMzI4MTc3ZGRlNzk2M2Y3NmY5ZTU0MTJiNWI0NDAyNTZjNmEzZjBjN2M3ZmEwMmNhNDllMTllYTE3NmFiYWMwMTM2OTZlOWQ1MjlmNjVlNTFkNGE3MzQ4ZTQyZGQyNTRiYmYxOWQ5NjMyZDZjODc1YjhlY2Q3YTQxMzlmMWJmMDIwYTE1OWQyYTMwYWY4ZDY0NWYiCiAKIEhNQUNfRFJCRyBOSVNUIENBVlMgMTQuMyBObyBSZXNlZWQgKFNIQS0yMjQsMTkyKzk2LDE5MiwxOTIpICMxMwotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyMjQKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yMjQKIGhtYWNfZHJiZ19ub19yZXNlZWQ6TUJFRFRMU19NRF9TSEEyMjQ6IjMxOWNiZjJiMTFiMzdjODMxYzY1NGI2Y2VjMjU3MGRjNmQ3YWJlZWFiMTg1MjcyYTUxOGVhZWYzMGZhYTVhY2Y1YzhiMjU0ZCI6IjllZmZhMTQxZjc0NjZiNjU5ZWFhNTBjMzJjOGU2ODNjMjY0MGY1NDAyN2FiNmFhNSI6IjYzYjNhY2MyMzc1ODhjZGY0MWMwZDRiZWYxNmM0ODkwY2YzZDQ1OGZjZjFkZThlYSI6IjU3M2Q2YTc5NjBhZWNjYzMyODBhOGFlZTRkNzJlNTg3ZTlkMTk2YjdiMjcwZTMyOSI6IjhhNTY4MDg2ZmRkOWYwMTIwNmE1YWFlZTM0ZDI1M2JiYzkzMzkxMTJkMzE3MDY5OWI5YTEzOTJlOTcwNjJkNWQwZjE2MjQwMTE0ZGMxNzg5MjY5MjE3YzViNGIyOTc0ODk1YjIwOTAzODkwZjdkYWNmZWY0NmZhNGE0ZDAyODkxYzcwNDI1YWIzYjQyZjUzZDcyZjg1MmZhZjM3MTNhYzdiODIwN2RjNDUzMjc5ZjRkZjM0NTA5MWI4YmZlYjU0OTgzMDk1YzJkMTkwMzU4MjkzYmE1MDdiZGZkYzM5YjI0IgogCiBITUFDX0RSQkcgTklTVCBDQVZTIDE0LjMgTm8gUmVzZWVkIChTSEEtMjI0LDE5Mis5NiwxOTIsMTkyKSAjMTQKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjI0CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjI0CiBobWFjX2RyYmdfbm9fcmVzZWVkOk1CRURUTFNfTURfU0hBMjI0OiI1NmYzZjViMDhkYTEwZWFkMGM5ODZkZDJhZTU1NTNlNGIyZWVlYjQ3YWQ1ZDIyMTk3YjEyYjg5YjRhODcxYzUxYzBkODU1NTQiOiI5NmM4NjMwYTFmNDE4N2ZiMDc5NDYwMWNmNTFlN2UzMzNlNzE3NTZhMDQyMWZmNDMiOiI4NzVlNWJjOTU0ODkxN2E4MmI2ZGM5NTIwMGQ5MmJmNDIxOGRiYTdhYjMxNmE1ZmUiOiI0ZDNmNTY3OGIwMGQ0N2JiOWQwOTM2NDg2ZGU2MDQwN2VhZjEyODJmZGE5OWY1OTUiOiI5MDk2OTk2MWVmOTI4M2I5ZTYwMGFlYWQ3OTg1NDU1ZTY5MmRiODE3MTY1MTg5NjY1ZjQ5OGYyMTliMWU1ZjI3N2U1ODZiMjM3ODUxMzA1ZDUyMDU1NDhiNTY1ZmFlYjAyYmI3YjVmNDc3YzgwYmE5NGIwNTYzZTI0ZDkzMDlkMjk1N2E2NzU4NDgxNDBmNTYwMWY2OTg0NTlkYjU4OTliMjBkZGE2OGYwMDBjY2IxOGRjZDM5ZGZhZTQ5OTU1Yjg0NzhmZDUwYmI1OWQ3NzIwNDViZWIzMzg2MjJlZmE1YSIKIAogSE1BQ19EUkJHIE5JU1QgQ0FWUyAxNC4zIE5vIFJlc2VlZCAoU0hBLTI1NiwyNTYrMTI4LDAsMCkgIzAKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBobWFjX2RyYmdfbm9fcmVzZWVkOk1CRURUTFNfTURfU0hBMjU2OiJjYTg1MTkxMTM0OTM4NGJmZmU4OWRlMWNiZGM0NmU2ODMxZTQ0ZDM0YTRmYjkzNWVlMjg1ZGQxNGI3MWE3NDg4NjU5YmE5NmM2MDFkYzY5ZmM5MDI5NDA4MDVlYzBjYTgiOiIiOiIiOiIiOiJlNTI4ZTlhYmYyZGVjZTU0ZDQ3YzdlNzVlNWZlMzAyMTQ5ZjgxN2VhOWZiNGJlZTZmNDE5OTY5N2QwNGQ1Yjg5ZDU0ZmJiOTc4YTE1YjVjNDQzYzllYzIxMDM2ZDI0NjBiNmY3M2ViYWQwZGMyYWJhNmU2MjRhYmYwNzc0NWJjMTA3Njk0YmI3NTQ3YmIwOTk1ZjcwZGUyNWQ2YjI5ZTJkMzAxMWJiMTlkMjc2NzZjMDcxNjJjOGI1Y2NkZTA2Njg5NjFkZjg2ODAzNDgyY2IzN2VkNmQ1YzBiYjhkNTBjZjFmNTBkNDc2YWEwNDU4YmRhYmE4MDZmNDhiZTlkY2I4IgogCiBITUFDX0RSQkcgTklTVCBDQVZTIDE0LjMgTm8gUmVzZWVkIChTSEEtMjU2LDI1NisxMjgsMCwwKSAjMQotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIGhtYWNfZHJiZ19ub19yZXNlZWQ6TUJFRFRMU19NRF9TSEEyNTY6Ijc5NzM3NDc5YmE0ZTc2NDJhMjIxZmNmZDFiODIwYjEzNGU5ZTM1NDBhMzViYjQ4ZmZhZTI5YzIwZjU0MThlYTMzNTkzMjU5YzA5MmJlZjQxMjliYzJjNmM5ZTE5ZjM0MyI6IiI6IiI6IiI6ImNmNWFkNTk4NGY5ZTQzOTE3YWE5MDg3MzgwZGFjNDZlNDEwZGRjOGE3NzMxODU5Yzg0ZTlkMGYzMWJkNDM2NTViOTI0MTU5NDEzZTIyOTNiMTc2MTBmMjExZTA5Zjc3MGYxNzJiOGZiNjkzYTM1Yjg1ZDNiOWU1ZTYzYjFkYzI1MmFjMGUxMTUwMDJlOWJlZGZiNGI1YjZmZDQzZjMzYjhlMGVhZmIyZDA3MmUxYTZmZWUxZjE1OWRmOWI1MWU2YzhkYTczN2U2MGQ1MDMyZGQzMDU0NGVjNTE1NThjNmYwODBiZGJkYWIxZGU4YTkzOWU5NjFlMDZiNWYxYWNhMzciCiAKIEhNQUNfRFJCRyBOSVNUIENBVlMgMTQuMyBObyBSZXNlZWQgKFNIQS0yNTYsMjU2KzEyOCwwLDApICMyCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NgogaG1hY19kcmJnX25vX3Jlc2VlZDpNQkVEVExTX01EX1NIQTI1NjoiYjM0MDkwNzQ0NWI5N2E4YjU4OTI2NGRlNGExN2MwYmVhMTFiYjUzYWQ3MmY5ZjMzMjk3ZjA1ZDI4NzlkODk4ZDY1Y2IyNzczNWQ4M2MwNzA4ZjcyNjg0ZWE1OGY3ZWU1IjoiIjoiIjoiIjoiNzUxODNhYWFmMzU3NGJjNjgwMDMzNTJhZDY1NWQwZTljZTlkZDE3NTUyNzIzYjQ3ZmFiMGU4NGVmOTAzNjk0YTMyOTg3ZWVkZGJkYzQ4ZWZkMjQxOTVkYmRhYzhhNDZiYTJkOTcyZjU4MDhmMjNhODY5ZTcxMzQzMTQwMzYxZjU4YjI0M2U2MjcyMjA4OGZlMTBhOThlNDMzNzJkMjUyYjE0NGUwMGM4OWMyMTVhNzZhMTIxNzM0YmRjNDg1NDg2ZjY1YzBiMTZiODk2MzUyNGEzYTcwZTZmMzhmMTY5YzEyZjZjYmRkMTY5ZGQ0OGZlNDQyMWEyMzU4NDdhMjNmZiIKIAogSE1BQ19EUkJHIE5JU1QgQ0FWUyAxNC4zIE5vIFJlc2VlZCAoU0hBLTI1NiwyNTYrMTI4LDAsMCkgIzMKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBobWFjX2RyYmdfbm9fcmVzZWVkOk1CRURUTFNfTURfU0hBMjU2OiI4ZTE1OWY2MDA2MGE3ZDZhN2U2ZmU3YzlmNzY5YzMwYjk4YWNiMTI0MGIyNWU3ZWUzM2YxZGE4MzRjMDg1OGU3YzM5ZDM1MDUyMjAxYmRjY2U0ZTEyN2EwNGYwNGQ2NDQiOiIiOiIiOiIiOiI2MjkxMGE3NzIxMzk2N2VhOTNkNjQ1N2UyNTVhZjUxZmM3OWQ0OTYyOWFmMmZjY2Q4MTg0MGNkZmJiNDkxMDk5MWY1MGE0NzdjYmQyOWVkZDhhNDdjNGZlYzlkMTQxZjUwZGZkZTdjNGQ4ZmNhYjQ3M2VmZjNjYzJlZTllN2NjOTA4NzFmMTgwNzc3YTk3ODQxNTk3YjBkZDdlNzc5ZWZmOTc4NGI5Y2MzMzY4OWZkN2Q0OGMwZGNkMzQxNTE1YWM4ZmVjZjVjNTVhNjMyN2FlYThkNThmOTcyMjBiNzQ2MjM3M2U4NGUzYjc0MTdhNTdlODBjZTk0NmQ2MTIwZGI1IgogCiBITUFDX0RSQkcgTklTVCBDQVZTIDE0LjMgTm8gUmVzZWVkIChTSEEtMjU2LDI1NisxMjgsMCwwKSAjNAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIGhtYWNfZHJiZ19ub19yZXNlZWQ6TUJFRFRMU19NRF9TSEEyNTY6Ijc0NzU1ZjE5NjMwNWY3ZmI2Njg5YjJmZTY4MzVkYzFkODE0ODRmYzQ4MWE2YjgwODdmNjQ5YTE5NTJmNGRmNmFjMzYzODdhNTQ0YTVmMmI3ODAwNzY1MWE3Yjc0Yjc0OSI6IiI6IiI6IiI6ImIyODk2ZjNhZjQzNzVkYWI2N2U4MDYyZDgyYzFhMDA1ZWY0ZWQxMTlkMTNhOWYxODM3MWIxYjg3Mzc3NDQxODY4NDgwNWZkNjU5YmZkNjk5NjRmODNhNWNmZTA4NjY3ZGRhZDY3MmNhZmQxNmJlZmZmYTlmYWVkNDk4NjUyMTRmNzAzOTUxYjQ0M2U2ZGNhMjJlZGI2MzZmMzMwODM4MDE0NGI5MzMzZGU0YmNiMDczNTcxMGU0ZDkyNjY3ODYzNDJmYzUzYmFiZTdiZGJlM2MwMWEzYWRkYjdmMjNjNjNjZTI4MzQ3MjlmYWJiZDQxOWI0N2JlY2ViNGE0NjAyMzYiCiAKIEhNQUNfRFJCRyBOSVNUIENBVlMgMTQuMyBObyBSZXNlZWQgKFNIQS0yNTYsMjU2KzEyOCwwLDApICM1Ci1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NgogaG1hY19kcmJnX25vX3Jlc2VlZDpNQkVEVExTX01EX1NIQTI1NjoiNGIyMjI3MThmNTZhMzI2MGIzYzI2MjVhNGNmODA5NTBiN2Q2YzEyNTBmMTcwYmQ1YzI4YjExOGFiZGYyM2IyZjdhZWQ1MmQwMDE2ZmNhZWYwYjY0OTJiYzQwYmJlMGU5IjoiIjoiIjoiIjoiYTZkYTAyOWIzNjY1Y2QzOWZkNTBhNTRjNTUzZjk5ZmVkMzYyNmY0OTAyZmZlMzIyZGM1MWYwNjcwZGZlODc0MmVkNDg0MTVjZjA0YmJhZDVlZDNiMjNiMThiNzg5MmQxNzBhN2RjZjNlZjgwNTJkNTcxN2NiMGMxYThiMzAxMGQ5YTllYTVkZTcwYWU1MzU2MjQ5YzBlMDk4OTQ2MDMwYzQ2ZDlkM2QyMDk4NjQ1Mzk0NDQzNzRkOGZiY2FlMDY4ZTFkNjU0OGZhNTllNjU2MmU2YjJkMWFjYmRhOGRhMDMxOGMyMzc1MmViYzliZTBjMWMxYzViM2NmNjZkZDk2NyIKIAogSE1BQ19EUkJHIE5JU1QgQ0FWUyAxNC4zIE5vIFJlc2VlZCAoU0hBLTI1NiwyNTYrMTI4LDAsMCkgIzYKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBobWFjX2RyYmdfbm9fcmVzZWVkOk1CRURUTFNfTURfU0hBMjU2OiJiNTEyNjMzZjI3ZmIxODJhMDc2OTE3ZTM5ODg4YmEzZmYzNWQyM2MzNzQyZWI4ZjNjNjM1YTA0NDE2Mzc2OGUwZTJjMzliODQ2MjlhM2RlNWMzMDFkYjU2NDNhZjFjMjEiOiIiOiIiOiIiOiJmYjkzMWQwZDAxOTRhOTdiNDhkNWQ0YzIzMWZkYWQ1YzYxYWVkZjFjM2E1NWFjMjQ5ODNlY2JmMzg0ODdiMWM5MzM5NmM2Yjg2ZmYzOTIwY2ZhOGM3N2UwMTQ2ZGU4MzVlYTU4MDk2NzZlNzAyZGVlNmE3ODEwMGRhOWFhNDNkOGVjMGJmNTcyMGJlZmE3MWY4MjE5MzIwNWFjMmVhNDAzZThkN2UwZTYyNzBiMzY2ZGM0MjAwYmUyNmFmZDlmNjNiN2U3OTI4NmEzNWM2ODhjNTdjYmZmNTVhYzc0N2Q0YzI4YmI4MGEyYjIwOTdiM2I2MmVhNDM5OTUwZDc1ZGZmIgogCiBITUFDX0RSQkcgTklTVCBDQVZTIDE0LjMgTm8gUmVzZWVkIChTSEEtMjU2LDI1NisxMjgsMCwwKSAjNwotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIGhtYWNfZHJiZ19ub19yZXNlZWQ6TUJFRFRMU19NRF9TSEEyNTY6ImFhZTNmZmM4NjA1YTk3NWJlZmVmY2VhMGE3YTI4NjY0MmJjM2I5NWZiMzdiZDBlYjA1ODVhNGNhYmY4YjNkMWU5NTA0YzNjMGM0MzEwYzFjMDc0NmEwMzZjOTFkOTAzNCI6IiI6IiI6IiI6IjI4MTliZDNiMGQyMTZkYWQ1OWRkZDZjMzU0YzQ1MTgxNTNhMmIwNDM3NGIwN2M0OWU2NGE4ZTRkMDU1NTc1ZGZiYzlhOGZjZGU2OGJkMjU3ZmYxYmE1YzYwMDA1NjRiNDZkNmRkN2VjZDljNWQ2ODRmZDc1N2RmNjJkODUyMTE1NzVkMzU2MmQ3ODE0MDA4YWI1YzhiYzAwZTdiNWE2NDllYWUyMzE4NjY1YjU1ZDc2MmRlMzZlYmEwMGMyOTA2YzBlMGVjODcwNmVkYjQ5M2U1MWNhNWViNGI5ZjAxNWRjOTMyZjI2MmY1MmE4NmIxMWM0MWU5YTZkNWIzYmQ0MzEiCiAKIEhNQUNfRFJCRyBOSVNUIENBVlMgMTQuMyBObyBSZXNlZWQgKFNIQS0yNTYsMjU2KzEyOCwwLDApICM4Ci1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NgogaG1hY19kcmJnX25vX3Jlc2VlZDpNQkVEVExTX01EX1NIQTI1NjoiYjk0NzUyMTBiNzliODcxODBlNzQ2ZGY3MDRiM2NiYzdiZjg0MjQ3NTBlNDE2YTdmYmI1Y2UzZWYyNWE4MmNjNjI0YmFmMDM1OTljMTBkZjZlZjQ0MDY1ZDcxNWE5M2Y3IjoiIjoiIjoiIjoiYWUxMmQ3ODRmNzk2MTgzYzUwZGI1YTFhMjgzYWEzNWVkOWEyYjY4NWRhY2VhOTdjNTk2ZmY4YzI5NDkwNmQxYjEzMDViYTFmODAyNTRlYjA2MmI4NzRhOGRmZmZhMzM3OGM4MDlhYjI4NjlhYTUxYTRlNmE0ODk2OTIyODRhMjUwMzg5MDhhMzQ3MzQyMTc1YzM4NDAxMTkzYjhhZmM0OTgwNzdlMTA1MjJiZWM1YzcwODgyYjdmNzYwZWE1OTQ2ODcwYmQ5ZmM3Mjk2MWVlZGJlOGJmZjRmZDU4YzdjYzE1ODliYjRmMzY5ZWQwZDNiZjI2YzViYmM2MmUwYjJiMiIKIAogSE1BQ19EUkJHIE5JU1QgQ0FWUyAxNC4zIE5vIFJlc2VlZCAoU0hBLTI1NiwyNTYrMTI4LDAsMCkgIzkKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBobWFjX2RyYmdfbm9fcmVzZWVkOk1CRURUTFNfTURfU0hBMjU2OiIyNzgzOGViNDRjZWNjYjRlMzYyMTA3MDNlYmYzOGY2NTliYzM5ZGQzMjc3Y2Q3NmI3YTliY2Q2YmM5NjRiNjI4MzljZmUwMjEwZGIyZTdiMGViNTJhMzg3NDc2ZTdlYTEiOiIiOiIiOiIiOiJlNWU3MmE1MzYwNWQyYWFhNjc4MzJmOTc1MzY0NDVhYjc3NGRkOWJmZjdmMTNhMGQxMWZkMjdiZjY1OTNiZmI1MjMwOWYyZDRmMDlkMTQ3MTkyMTk5ZWE1ODQ1MDMxODFkZTg3MDAyZjRlZTA4NWM3ZGMxOGJmMzJjZTUzMTU2NDdhMzcwOGU2ZjQwNGQ2NTg4YzkyYjJkZGE1OTljMTMxYWEzNTBkMThjNzQ3YjMzZGM4ZWRhMTVjZjQwZTk1MjYzZDEyMzFlMWI0YjY4ZjhkODI5Zjg2MDU0ZDQ5Y2ZkYjFiOGQ5NmFiMDQ2NTExMDU2OWM4NTgzYTQyNGEwOTlhIgogCiBITUFDX0RSQkcgTklTVCBDQVZTIDE0LjMgTm8gUmVzZWVkIChTSEEtMjU2LDI1NisxMjgsMCwwKSAjMTAKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBobWFjX2RyYmdfbm9fcmVzZWVkOk1CRURUTFNfTURfU0hBMjU2OiJkNzEyOWU0ZjQ3MDA4YWQ2MGM5YjVkMDgxZmY0Y2E4ZWI4MjFhNmU0ZGViOTE2MDhiZjRlMjY0NzgzNTM3M2E1YTcyODgyNzczZjc4YzJmYzQ4NzgyOTU4NDBhNTMwMTIiOiIiOiIiOiIiOiIwY2JmNDg1ODVjNWRlOTE4M2I3ZmY3NjU1N2Y4ZmM5ZWJjZmRmZGUwN2U1ODhhODY0MTE1NmY2MWI3OTUyNzI1YmJlZTk1NGY4N2U5YjkzNzUxM2IxNmJiYTBmMmU1MjNkMDk1MTE0NjU4ZTAwZjBmMzc3MjE3NWFjZmNiMzI0MGEwMWRlNjMxYzE5YzVhODM0Yzk0Y2M1OGQwNGE2ODM3ZjBkMjc4MmZhNTNkMmY5ZjY1MTc4ZWU5YzgzNzIyMjQ5NGM3OTllNjRjNjA0MDYwNjliZDMxOTU0OWI4ODlmYTAwYTAwMzJkZDdiYTViMWNjOWVkYmY1OGRlODJiZmNkIgogCiBITUFDX0RSQkcgTklTVCBDQVZTIDE0LjMgTm8gUmVzZWVkIChTSEEtMjU2LDI1NisxMjgsMCwwKSAjMTEKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBobWFjX2RyYmdfbm9fcmVzZWVkOk1CRURUTFNfTURfU0hBMjU2OiI2N2ZlNWUzMDBjNTEzMzcxOTc2YzgwZGU0YjIwZDQ0NzM4ODljOWYxMjE0YmNlNzE4YmMzMmQxZGEzYWI3NTMyZTI1NmQ4ODQ5NzczOGEzMzkyM2FhMDAzYThkNzg0NWMiOiIiOiIiOiIiOiJiNDQ2NjBkNjRlZjdiY2ViYzdhMWFiNzFmODQwN2EwMjI4NWM3NTkyZDc1NWFlNjc2NjA1OWU4OTRmNjk0MzczZWQ5Yzc3NmMwY2ZjODU5NDQxM2VlZmI0MDBlZDQyN2UxNThkNjg3ZTI4ZGEzZWNjMjA1ZTBmNzM3MGZiMDg5Njc2YmJiMGZhNTkxZWM4ZDkxNmMzZDVmMThhM2ViNGE0MTcxMjA3MDVmM2UyMTk4MTU0Y2Q2MDY0OGRiZmNmYzkwMTI0MmUxNTcxMWNhY2Q1MDFiMmMyODI2YWJlODcwYmEzMmRhNzg1ZWQ2ZjFmZGM2OGYyMDNkMWFiNDNhNjRmIgogCiBITUFDX0RSQkcgTklTVCBDQVZTIDE0LjMgTm8gUmVzZWVkIChTSEEtMjU2LDI1NisxMjgsMCwwKSAjMTIKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBobWFjX2RyYmdfbm9fcmVzZWVkOk1CRURUTFNfTURfU0hBMjU2OiJkZTgxNDI1NDEyNTVjNDZkNjZlZmM2MTczYjBmZTNmZmFmNTkzNmM4OTdhM2NlMmU5ZDU4MzU2MTZhYWZhMmNiZDAxZjkwMDJjNDA3MTI3YmMzMjk3YTU2MWQ4OWI4MWQiOiIiOiIiOiIiOiI2NGQxMDIwOTI5ZDc0NzE2NDQ2ZDhhNGUxNzIwNWQwNzU2YjUyNjQ4Njc4MTFhYTI0ZDBkMGRhODY0NGRiMjVkNWNkZTQ3NDE0M2M1N2QxMjQ4MmY2YmYwZjMxZDEwYWY5ZDFkYTRlYjZkNzAxYmRkNjA1YThkYjc0ZmI0ZTc3Zjc5YWFhOWU0NTBhZmRhNTBiMThkMTlmYWU2OGYwM2RiMWQ3YjVmMTczOGQyZmRjZTlhZDNlZTk0NjFiNThlZTI0MmRhZjdhMWQ3MmM0NWM5MjEzZWNhMzRlMTQ4MTBhOWZjYTUyMDhkNWM1NmQ4MDY2YmFiMTU4NmYxNTEzZGU3IgogCiBITUFDX0RSQkcgTklTVCBDQVZTIDE0LjMgTm8gUmVzZWVkIChTSEEtMjU2LDI1NisxMjgsMCwwKSAjMTMKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBobWFjX2RyYmdfbm9fcmVzZWVkOk1CRURUTFNfTURfU0hBMjU2OiI0YThlMGJkOTBiZGIxMmY3NzQ4YWQ1ZjE0N2IxMTVkNzM4NWJiMWIwNmFlZTdkOGI3NjEzNmEyNWQ3NzliY2I3N2YzY2NlNGFmOGM4Y2UzYzQ1YmRmMjNjNmIxODFhMDAiOiIiOiIiOiIiOiIzMjBjN2NhNGJiZWI3YWY5NzdiYzA1NGY2MDRiNTA4NmEzZjIzN2FhNTUwMTY1ODExMmYzZTdhMzNkMjIzMWY1NTM2ZDJjODVjMWRhZDlkOWIwYmY3ZjYxOWM4MWJlNDg1NDY2MTYyNjgzOWM4YzEwYWU3ZmRjMGMwYjU3MWJlMzRiNThkNjZkYTU1MzY3NjE2N2IwMGU3ZDhlNDlmNDE2YWFjYjI5MjZjNmViMmM2NmVjOThiZmZhZTIwODY0Y2Y5MjQ5NmRiMTVlM2IwOWU1MzBiN2I5NjQ4YmU4ZDM5MTZiM2MyMGEzYTc3OWJlYzdkNjZkYTYzMzk2ODQ5YWFmIgogCiBITUFDX0RSQkcgTklTVCBDQVZTIDE0LjMgTm8gUmVzZWVkIChTSEEtMjU2LDI1NisxMjgsMCwwKSAjMTQKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBobWFjX2RyYmdfbm9fcmVzZWVkOk1CRURUTFNfTURfU0hBMjU2OiI0NTFlZDAyNGJjNGI5NWYxMDI1YjE0ZWMzNjE2ZjVlNDJlODA4MjQ1NDFkYzc5NWEyZjA3NTAwZjkyYWRjNjY1MmYyOGU2ZWU4ZGU1ODc5ZGIxZWNjZDU4Yzk5NGU1ZjAiOiIiOiIiOiIiOiIzZmI2MzcwODVhYjc1ZjRlOTU2NTVmYWFlOTU4ODUxNjZhNWZiYjQyM2JiMDNkYmYwNTQzYmUwNjNiY2Q0ODc5OWM0ZjA1ZDRlNTIyNjM0ZDkyNzVmZTAyZTFlZGQ5MjBlMjZkOWFjY2Q0MzcwOWNiMGQ4ZjZlNTBhYTU0YTVmM2JkZDYxOGJlMjNjZjczZWY3MzZlZDBlZjc1MjRiMGQxNGQ1YmVmOGM4YWVjMWNmMWVkM2UxYzM4YTgwOGIzNWU2MWE0NDA3ODEyN2M3Y2IzYThmZDdhZGRmYTUwZmNmM2ZmM2JjNmQ2YmMzNTVkNTQzNmZlOWI3MWViNDRmN2ZkIgogCiBITUFDX0RSQkcgTklTVCBDQVZTIDE0LjMgTm8gUmVzZWVkIChTSEEtMjU2LDI1NisxMjgsMCwyNTYpICMwCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NgogaG1hY19kcmJnX25vX3Jlc2VlZDpNQkVEVExTX01EX1NIQTI1NjoiZDNjYzRkMWFjZjNkZGUwYzRiZDIyOTBkMjYyMzM3MDQyZGM2MzI5NDgyMjNkM2EyZWFhYjg3ZGE0NDI5NWZiZDAxMDliMGU3MjlmNDU3MzI4YWExODU2OWE5MjI0OTIxIjoiIjoiM2MzMTE4NDgxODNjOWEyMTJhMjZmMjdmOGM2NjQ3ZTQwMzc1ZTQ2NmEwODU3Y2MzOWM0ZTQ3NTc1ZDUzZjFmNiI6ImZjYjlhYmQxOWNjZmJjY2VmODhjOWMzOWJmYjNkZDdiMWMxMjI2NmM5ODA4OTkyZTMwNWJjM2NmZjU2NmU0ZTQiOiI5YzdiNzU4YjIxMmNkMGZjZWNkNWRhYTQ4OTgyMTcxMmUzY2RlYTQ0NjdiNTYwZWY1ZGRjMjRhYjQ3NzQ5YTFmMWZmZGJiYjExOGY0ZTYyZmNmY2EzMzcxYjhmYmZjNWIwNjQ2YjgzZTA2YmZiYmFiNWZhYzMwZWEwOWVhMmJjNzZmMWVhNTY4YzliZTA0NDRiMmNjOTA1MTdiMjBjYTgyNWYyZDBlY2NkODhlNzE3NTUzOGI4NWQ5MGFiMzkwMTgzY2E2Mzk1NTM1ZDM0NDczYWY2YjVhNWI4OGY1YTU5ZWU3NTYxNTczMzM3ZWE4MTlkYTBkY2MzNTczYTIyOTc0IgogCiBITUFDX0RSQkcgTklTVCBDQVZTIDE0LjMgTm8gUmVzZWVkIChTSEEtMjU2LDI1NisxMjgsMCwyNTYpICMxCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NgogaG1hY19kcmJnX25vX3Jlc2VlZDpNQkVEVExTX01EX1NIQTI1NjoiZjk3YTNjZmQ5MWZhYTA0NmI5ZTYxYjk0OTNkNDM2YzQ5MzFmNjA0YjIyZjEwODE1MjFiMzQxOTE1MWU4ZmYwNjExZjNhN2Q0MzU5NTM1N2Q1ODEyMGJkMWUyZGQ4YWVkIjoiIjoiNTE3Mjg5YWZlNDQ0YTBmZTVlZDFhNDFkYmJiNWViMTcxNTAwNzliZGQzMWUyOWNmMmZmMzAwMzRkODI2OGUzYiI6Ijg4MDI4ZDI5ZWY4MGI0ZTZmMGZlMTJmOTFkNzQ0OWZlNzUwNjI2ODJlODljNTcxNDQwYzBjOWI1MmM0MmE2ZTAiOiJjNjg3MWNmZjA4MjRmZTU1ZWE3Njg5YTUyMjI5ODg2NzMwNDUwZTVkMzYyZGE1YmY1OTBkY2Y5YWNkNjdmZWQ0Y2IzMjEwN2RmNWQwMzk2OWE2NmIxZjY0OTRmZGY1ZDYzZDViNGQwZDM0ZWE3Mzk5YTA3ZDAxMTYxMjZkMGQ1MThjN2M1NWJhNDZlMTJmNjJlZmM4ZmUyOGE1MWM5ZDQyOGU2ZDM3MWQ3Mzk3YWIzMTlmYzczZGVkNDcyMmU1YjRmMzAwMDQwMzJhNjEyOGRmNWU3NDk3ZWNmODJjYTdiMGE1MGU4NjdlZjY3MjhhNGY1MDlhOGM4NTkwODcwMzljIgogCiBITUFDX0RSQkcgTklTVCBDQVZTIDE0LjMgTm8gUmVzZWVkIChTSEEtMjU2LDI1NisxMjgsMCwyNTYpICMyCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NgogaG1hY19kcmJnX25vX3Jlc2VlZDpNQkVEVExTX01EX1NIQTI1NjoiMGYyZjIzZDY0ZjQ4MWNhYmVjN2FiYjAxZGIzYWFiZjEyNWMzMTczYTA0NGI5YmYyNjg0NDMwMGI2OWRjYWM4YjlhNWFlMTMyMzJiNDNhYTE5Y2ZlOGQ3OTU4YjRiNTkwIjoiIjoiZWM0YzdhNjJhY2FiNzMzODVmNTY3ZGExMGU4OTJmZjM5NWEwOTI5Zjk1OTIzMWE1NjI4MTg4Y2UwYzI2ZTgxOCI6IjZiOTdiOGM2YjZiYjg5MzVlNjc2YzQxMGMxN2NhYTgwNDJhYTMxNDVmODU2ZDBhMzJiNjQxZTRhZTUyOTg2NDgiOiI3NDgwYTM2MTA1OGJkOWFmYTNkYjgyYzlkNzU4NmU0MjI2OTEwMjAxM2Y2ZWM1YzI2OWI2ZDA1ZjE3OTg3ODQ3NzQ4Njg0NzY2YjQ0OTE4ZmQ0YjY1ZTE2NDg2MjJmYzBlMDk1NDE3OGIwMjc5ZGZjOWZhOTliNjZjNmY1M2U1MWM0ODYwMTMxZTllMDY0NDI4N2E0YWZlNGNhOGU0ODA0MTdlMDcwZGI2ODAwOGE5N2MzMzk3ZTRiMzIwYjVkMWExZDdlMWQxOGE5NWNmZWRkN2QxZTc0OTk3MDUyYmY2NDlkMTMyZGViOWVjNTNhYWU3ZGFmZGFiNTVlNmRhZTkzIgogCiBITUFDX0RSQkcgTklTVCBDQVZTIDE0LjMgTm8gUmVzZWVkIChTSEEtMjU2LDI1NisxMjgsMCwyNTYpICMzCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NgogaG1hY19kcmJnX25vX3Jlc2VlZDpNQkVEVExTX01EX1NIQTI1NjoiNTNjNTY2NjBjNzg0ODFiZTljNjMyODRlMDA1ZmNjMTRmYmM3ZmIyNzczMmM5YmYxMzY2ZDAxYTQyNjc2NWEzMWRjN2ExNGQwZWI1YjBiMzUzNGU3MTdhMGIzYzY0NjE0IjoiIjoiM2FhODQ4NzA2ZWNiODc3ZjViZWRmNGZmYzMzMmQ1N2MyMmUwODc0N2E0N2U3NWNmZjZmMGZkMTMxNjg2MWM5NSI6IjlhNDAxYWZhNzM5YjhmNzUyZmRkYWNkMjkxZTBiODU0ZjVlZmY0YTU1YjUxNWUyMGNiMzE5ODUyMTg5ZDM3MjIiOiI1YzBlYjQyMGUwYmY0MWNlOTMyM2U4MTUzMTBlNGU4MzAzY2Q2NzdhOGE4YjAyM2YzMWYwZDc5ZjBjYTE1YWViNjM2MDk5YTM2OWZkMDc0ZDY5ODg5ODY1ZWFjMWI3MmFiM2NiZmViZGI4Y2Y0NjBiMDAwNzI4MDJlMmVjNjQ4YjEzNDlhNTMwM2JlNGNjYWFkZDcyOWYxYTllYTE3NDgyZmQwMjZhYWViOTNmMTYwMmJjMTQwNGI5ODUzYWRkZTQwZDZjMzRiODQ0Y2YxNDhiYzA4ODk0MWVjZmMxNjQyYzhjMGI5Nzc4ZTQ1ZjNiMDdlMDZlMjFlZTJjOWUwMzAwIgogCiBITUFDX0RSQkcgTklTVCBDQVZTIDE0LjMgTm8gUmVzZWVkIChTSEEtMjU2LDI1NisxMjgsMCwyNTYpICM0Ci1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NgogaG1hY19kcmJnX25vX3Jlc2VlZDpNQkVEVExTX01EX1NIQTI1NjoiZjYzYzgwNDQwNDkwMmRiMzM0YzU0YmIyOThmYzI3MWEyMWQ3YWNkOWY3NzAyNzhlMDg5Nzc1NzEwYmY0ZmRkNzNlNDUwMDllYTljYjJhMzZiYTFhYTRiZjM5MTc4MjAwIjoiIjoiZDE2NWExM2RjOGNjNDNmM2YwOTUyYzNmNWQzZGU0MTM2OTU0ZDk4MzY4M2Q0YTNlNmQyZGM0Yzg5YmYyMzQyMyI6Ijc1MTA2YmM4NmQwMzM2ZGY4NTA5N2Y2YWY4ZTgwZTJkYTU5MDQ2YTAzZmE2NWIwNjcwNmI4YmJjN2ZmYzY3ODUiOiI2MzYzMTM5YmJhMzJjMjJhMGY1Y2QyM2NhNmQ0MzdiNTY2OWI3ZDQzMmY3ODZiOGFmNDQ1NDcxYmVlMGIyZDI0YzlkNWYyZjkzNzE3Y2JlMDBkMWYwMTBjYzNiOWM1MTVmYzlmNzMzNmQ1M2Q0ZDI2YmE1YzBkNzZhOTAxODY2NjNjODU4MmViNzM5YzdiNjU3OGEzMzI4YmY2OGRjMmNlYzJjZDg5YjNhOTAyMDFmNjk5M2FkY2M4NTRkZjBmNWM2OTc0ZDBmNTU3MDc2NWExNWZlMDNkYmNlMjg5NDJkZDJmZDE2YmEyMDI3ZTY4YWJhYzgzOTI2OTY5MzQ5YWY4IgogCiBITUFDX0RSQkcgTklTVCBDQVZTIDE0LjMgTm8gUmVzZWVkIChTSEEtMjU2LDI1NisxMjgsMCwyNTYpICM1Ci1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NgogaG1hY19kcmJnX25vX3Jlc2VlZDpNQkVEVExTX01EX1NIQTI1NjoiMmFhY2E5MTQ3ZGE2NmMxNzY2MTU3MjZiNjllM2U4NTFjYzM1MzdmNWYyNzlmZTczNDQyMzNkOGU0NGNmYzk5ZDRlMTcxZjA4MGFmOWE2MDgxYmVlOWYxODNhYzllMzQwIjoiIjoiZDc1YTJhNmViNjZjMzgzM2U1MGY1ZWMzZDJlNDM0Y2Y3OTE0NDhkNjE4MDI2ZDBjMzYwODA2ZDEyMGRlZDY2OSI6ImI2NDNiNzRjMTViMzc2MTJlNjU3N2VkN2NhMmE0YzY3YTc4ZDU2MGFmOWViNTBhNDEwOGZjYTc0MmU4N2I4ZDYiOiI1MDFkY2RjOTc3ZjRiYTg1NmYyNGVhYTQ5NjhiMzc0YmViYjMxNjZiMjgwMzM0Y2I1MTAyMzJjMzFlYmZmZGUxMGZhNDdiNzg0MGVmM2ZlM2I3NzcyNWMyMjcyZDNhMWQ0MjE5YmFmMjNlMDI5MGM2MjIyNzFlZGNjZWQ1ODgzOGNmNDI4ZjA1MTc0MjVkMmUxOWUwZDhjODkzNzdlZWNmYzM3ODI0NWYyODMyMzZmYWZhNDY2YzkxNGI5OTY3MmNlYWZhYjM2OWU4ODg5YTBjODY2ZDhiZDYzOWRiOWZiNzk3MjU0MjYyYzZmZDQ0Y2ZhOTA0NWFkNjM0MGE2MGVmIgogCiBITUFDX0RSQkcgTklTVCBDQVZTIDE0LjMgTm8gUmVzZWVkIChTSEEtMjU2LDI1NisxMjgsMCwyNTYpICM2Ci1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NgogaG1hY19kcmJnX25vX3Jlc2VlZDpNQkVEVExTX01EX1NIQTI1NjoiYTJlNGNkNDhhNWNmOTE4ZDZmNTU5NDJkOTVmY2I0ZTg0NjVjZGM0Zjc3YjdjNTJiNmZhZTViMTZhMjVjYTMwNmJlZjAzNjcxNjQ0MGRiNmU2ZDMzM2Q5ZDc2MGI3Y2E4IjoiIjoiYmZhNTkxYzcyODdmM2Y5MzExNjhmOTVlMzg4Njk0NDFkMWY5YTExMDM1YWQ4ZWE2MjViYjYxYjllYTE3NTkxYyI6ImMwMGM3MzU0NjNiY2EyMTVhZGMzNzJjYjg5MmIwNWU5MzliZjY2OTU4MzM0MWMwNmQ0ZTMxZDBlNWIzNjNhMzciOiJlN2QxMzZhZjY5OTI2YTU0MjFkNDI2NmVlMDQyMGZkNzI5ZjJhNGY3YzI5NWQzYzk2NmJkZmEwNTI2ODE4MGI1MDhiOGEyODUyZDFiM2EwNmZkMmFiM2UxM2M1NDAwNTEyM2VmMzE5ZjQyZDBjNmQzYTU3NWU2ZTdlMTQ5NmNiMjhhYWNhZGJjZjgzNzQwZmJhOGYzNWZjZWUwNGJiMmVkOGE1MWRiM2QzMzYyYjAxMDk0YTYyZmI1N2UzM2M5OWE0MzJmMjlmY2U2Njc2Y2ZmYmJjYzA1MTA3ZTc5NGU3NWU0NGEwMmQ1ZTZkOWQ3NDhjNWZiZmYwMGEwMTc4ZDY1IgogCiBITUFDX0RSQkcgTklTVCBDQVZTIDE0LjMgTm8gUmVzZWVkIChTSEEtMjU2LDI1NisxMjgsMCwyNTYpICM3Ci1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NgogaG1hY19kcmJnX25vX3Jlc2VlZDpNQkVEVExTX01EX1NIQTI1NjoiOTVhNjc3NzFjYmE2OTAxMWE3OTc3NmU3MTMxNDVkMzA5ZWRhZTU2ZmFkNWZkNmQ0MWQ4M2VhZmY4OWRmNmU1ZWJlNWI1MTY0ZTMxZWNjNTFiYTZmN2MzYzUxOTllYjMzIjoiIjoiMDY1ZjY5M2IyMjlhN2M0ZmQzNzNjZDE1YjM4MDc1NTJkZDliZjk4YzU0ODVjZWYzNjE5NDlkNGU3ZDc3NGI1MyI6IjlhZmI2MjQwNmYwZTgxMmM0ZjE1NmQ1OGIxOWE2NTZjOTA0ODEzYzFiNGE0NWEwMDI5YWU3ZjUwNzMxZjgwMTQiOiJmNjFiNjFhNmU3OWE0MTE4M2U4ZWQ2NjQ3ODk5ZDJkYzg1Y2RhZjVjM2FiZjVjN2YzYmYzNzY4NTk0NmRjMjhmNDkyM2RjODQyZjJkNDMyNmJkNmNlMGQ1MGE4NGNiM2JhODY5ZDcyYTM2ZTI0NjkxMGViYTY1MTJiYTM2Y2Q3ZWQzYTU0MzdjOTI0NWIwMGEzNDQzMDhjNzkyYjY2OGI0NThkM2MzZTE2ZGVlMmZiZWM0MTg2N2RhMzEwODRkNDZkOGVjMTY4ZGUyMTQ4ZWY2NGZjNWI3MjA2OWFiZjVhNmFkYTFlYWQyYjcxNDZiYjc5M2ZmMWM5YzM2OTBmYTU2IgogCiBITUFDX0RSQkcgTklTVCBDQVZTIDE0LjMgTm8gUmVzZWVkIChTSEEtMjU2LDI1NisxMjgsMCwyNTYpICM4Ci1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NgogaG1hY19kcmJnX25vX3Jlc2VlZDpNQkVEVExTX01EX1NIQTI1NjoiYTQ1OWUxODE1Y2JjYTQ1MTRlYzgwOTRkNWFiMjQxNGE1NTdiYTZmZTEwZTYxM2MzNDUzMzhkMDUyMWU0YmY5MDYyMjIxMzkyZTI1NTJlNzZjZDBkMzZkZjZlNjA2OGViIjoiIjoiMGEzNjQyYjAyYjIzYjNlZjYyYzcwMWE2MzQwMTEyNDAyMmY1Yjg5NmRlODZkYWI2ZTZjNzQ1MTQ5N2FhMWRjYyI6ImM4MDUxNDg2NTkwMTM3MWM0NWJhOTJkOWY5NWQ1MGJiN2M5ZGQxNzY4Y2IzZGZiYzQ1Yjk2OGRhOTQ5NjVjNmUiOiI0NjRlNjk3N2I4YWRhZWYzMDdjOTYyM2U0MWMzNTcwMTMyNDljOWZmZDc3ZjQwNWYzOTI1Y2ViYjY5ZjE1MWNlOGZiYjZhMjc3MTY0MDAyYWVlNzg1OGZjMjI0ZjY0OTkwNDJhYTFlNjMyMmRlZWU5YTVkMTMzYzMxZDY0MGUxMmE3NDg3YzczMWJhMDNhZDg2NmEyNDY3NWJhZGIxZDc5MjIwYzQwYmU2ODlmNzljMmEwYmU5M2NiNGRhZGEzZTBlYWM0YWIxNDBjYjkxOTk4YjZmMTE5NTNlNjhmMjMxOWIwNTBjNDBmNzFjMzRkZTk5MDVhZTQxYjJkZTFjMmY2IgogCiBITUFDX0RSQkcgTklTVCBDQVZTIDE0LjMgTm8gUmVzZWVkIChTSEEtMjU2LDI1NisxMjgsMCwyNTYpICM5Ci1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NgogaG1hY19kcmJnX25vX3Jlc2VlZDpNQkVEVExTX01EX1NIQTI1NjoiMjUyYzJjYWQ2MTNlMDAyNDc4MTYyODYxODgwOTc5ZWU0ZTMyMzAyNWVlYmI2ZmIyZTBhYTlmMjAwZTI4ZTBhMWQwMDFiYzlhOGYyYzhjMjQyZTQzNjlkZjBjMTkxOTg5IjoiIjoiOWJjZmM2MWNiMmJjMDAwMDM0YmIzZGI5ODBlYjQ3Yzc2ZmI1ZWNkZDQwNTUzZWZmMTEzMzY4ZDYzOWI5NDdmZCI6IjhiMDU2NWM3NjdjMjYxMGVlMDAxNDU4MmU5ZmJlY2I5NmUxNzMwMDViNjBlOTU4MTUwM2E2ZGNhNTYzN2EyNmUiOiJlOTZjMTVmZThhNjA2OTJiMGE3ZDY3MTcxZTAxOTVmZjZlMWM4N2FhYjg0NDIyMWU3MTcwMGQxYmJlZTc1ZmVlYTY5NWY2YTc0MGM5NzYwYmJlMGU4MTJlY2Y0MDYxZDhmMDk1NWJjMDE5NWUxOGM0ZmQxNTE2ZWJjYTUwYmE2YTZkYjg2ODgxNzM3ZGJhYjgzMjE3MDc2NzU0NzliODc2MTFkYjZhZjJjOTdlYTM2MWE1NDg0NTU1ZWFkNDU0ZGVmYjFhNjQzMzVkZTk2NGZjODAzZDQwZjNhNmYwNTc4OTNkMmFmYzI1NzI1NzU0ZjRmMDBhYmM1MTkyMDc0M2RjIgogCiBITUFDX0RSQkcgTklTVCBDQVZTIDE0LjMgTm8gUmVzZWVkIChTSEEtMjU2LDI1NisxMjgsMCwyNTYpICMxMAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIGhtYWNfZHJiZ19ub19yZXNlZWQ6TUJFRFRMU19NRF9TSEEyNTY6IjhiZTBjYTZhZGM4YjM4NzBjOWQ2OWQ2MDIxYmMxZjFkOGViOWU2NDkwNzNkMzVlZTZjNWFhMGI3ZTU2YWQ4YTU5ZDEyNjVmN2Q1MWZkYjY1Mzc3ZjFlNmVkZDZhZTBlNCI6IiI6ImRhODYxNjdhYzk5N2M0MDZiYjc5NzlmNDIzOTg2YTg0ZWM2NjE0ZDZjYWE3YWZjMTBhZmYwNjk5YTliMmNmN2YiOiJlNGJhYTNjNTU1OTUwYjUzZTJiZmRiYTQ4MGNiNGM5NGI1OTM4MWJhYzFlMzM5NDdlMGMyMmU4MzhhOTUzNGNmIjoiNjQzODRlY2M0ZWE2YjQ1OGVmYzIyN2NhNjk3ZWFjNTUxMDA5MjI2NTUyMGMwYTBkOGEwY2NmOWVkM2NhOWQ1ODA3NDY3MTE4OGM2YTdhZDE2ZDBiMDUwY2RjMDcyYzEyNWQ3Mjk4ZDNhMzFkOWYwNDRhOWVlNDBkYTAwODlhODRmZWEyOGNjN2YwNWYxNzE2ZGI5NTJmYWQyOWEwZTc3OTYzNWNiN2E5MTJhOTU5YmU2N2JlMmYwYTQxNzBhYWNlMjk4MTgwMmUyZmY2NDY3ZTViNDZmMGZmYmZmM2I0MmJhNTkzNWZkNTUzYzgyNDgyYWMyNjZhY2YxY2QyNDdkNyIKIAogSE1BQ19EUkJHIE5JU1QgQ0FWUyAxNC4zIE5vIFJlc2VlZCAoU0hBLTI1NiwyNTYrMTI4LDAsMjU2KSAjMTEKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBobWFjX2RyYmdfbm9fcmVzZWVkOk1CRURUTFNfTURfU0hBMjU2OiJkNDNhNzViNmFkZjI2ZDYwMzIyMjg0Y2IxMmFjMzgzMjc3OTI0NDJhYThmMDQwZjYwYTJmMzMxYjMzYWM0YThmMDY4MmY4YjA5MWY4MTFhZmFjYWFjYWVjOWIwNGQyNzkiOiIiOiI3ZmQzYjhmNTEyOTQwZGE3ZGU1ZDgwMTk5ZDlhN2I0MjY3MGMwNGE5NDU3NzVhM2RiYTg2OTU0NmNiYjliYzY1IjoiMjU3NWRiMjBiYzdhYWZjMmE5MGE1ZGFiYWI3NjBkYjg1MWQ3NTQ3NzdiYzlmMDU2MTZhZjE4NThiMjRmZjNkYSI6IjBkYTdhOGRjNzNjMTYzMDE0YmYwODQxOTEzZDMwNjc4MDY0NTZiYmNhNmQ1ZGU5MmI4NTUzNGM2NTQ1NDY3MzEzNjQ4ZDcxZWYxN2M5MjNkMDkwZGM5MmNmZjhkNGQxYTlhMmJiNjNlMDAxZGMyZThhYjFhNTk3OTk5YmUzZDZjZjcwZmY2M2ZlZTk5ODU4MDEzOTVmYmQ0ZjQ5OTA0MzBjNDI1OWZjYWU0ZmExZmNkNzNkYzMxODdjY2MxMDJkMDRhZjdjMDc1MzI4ODVlNWEyMjZmYzQyODA5YzQ4ZjIyZWVjZjRmNmFiOTk2YWU0ZmNiMTQ0Nzg2OTU3ZDlmNDEiCiAKIEhNQUNfRFJCRyBOSVNUIENBVlMgMTQuMyBObyBSZXNlZWQgKFNIQS0yNTYsMjU2KzEyOCwwLDI1NikgIzEyCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NgogaG1hY19kcmJnX25vX3Jlc2VlZDpNQkVEVExTX01EX1NIQTI1NjoiNjQzNTJmMjM2YWY1ZDMyMDY3YTUyOWE4ZmQwNWJhMDBhMzM4YzlkZTMwNjM3MWEwYjAwYzM2ZTYxMGE0OGQxOGRmOTllZDJjNzYwOGM4NzA2MjRiOTYyYTVkYzY4YWNkIjoiIjoiZGE0MTYzMzVlN2FhZjYwY2YzZDA2ZmI0Mzg3MzVjZTc5NmFhZDA5MDM0Zjg5NjljOGY4YzNmODFlMzJmZWYyNCI6ImEyOGMwN2MyMWEyMjk3MzExYWRmMTcyYzE5ZTgzY2EwYTg3NzMxYmRmZmI4MDU0ODk3OGQyZDFjZDgyY2Y4YTMiOiIxMzJiOWYyNTg2ODcyOWUzODUzZDNjNTFmOTlhM2I1ZmFlNmQ0MjA0YmVhNzA4OTBkYWY2MmUwNDJiNzc2YTUyNmM4ZmI4MzFiODBhNmQ1ZDNmMTUzMjM3ZGYxZmQzOWI2ZmQ5MTM3OTYzZjU1MTZkOWNkZDRlM2Y5MTk1YzQ2ZTk5NzJjMTVkM2VkYzY2MDZlMzM2OGJkZTE1OTQ5NzdmYjg4ZDBjYTZlNmY1ZjNkMDU3Y2NhZGM3ZDdkYWI3N2RmYzQyNjU4YTFlOTcyYWE0NDZiMjBkNDE4Mjg2Mzg2YTUyZGZjMWM3MTRkMmFjNTQ4NzEzMjY4YjBiNzA5NzI5IgogCiBITUFDX0RSQkcgTklTVCBDQVZTIDE0LjMgTm8gUmVzZWVkIChTSEEtMjU2LDI1NisxMjgsMCwyNTYpICMxMwotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIGhtYWNfZHJiZ19ub19yZXNlZWQ6TUJFRFRMU19NRF9TSEEyNTY6IjI4MmY0ZDJlMDVhMmNkMzBlOTA4N2Y1NjMzMDg5Mzg5NDQ5ZjA0YmFjMTFkZjcxOGM5MGJiMzUxY2QzNjUzYTU5MGE3ZGFmM2MwZGU5ZWEyODYwODFlZmM0YTY4NGRmYiI6IiI6IjI2MzBiNGNjYzcyNzFjYzM3OWNiNTgwYjBhYWVkZTNkM2FhOGMxYzdiYTAwMmNmNzkxZjA3NTJjM2Q3MzkwMDciOiJjMzFkNjlkZTQ5OWYxMDE3YmU0NGUzZDRmYTc3ZWNlYmM2YTliOTkzNDc0OWZjZjEzNmYyNjdiMjkxMTVkMmNjIjoiYzg5OTA5NDUyMGUwMTk3YzM3YjkxZGQ1MDc3OGUyMGE1Yjk1MGRlY2ZiMzA4ZDM5ZjFkYjcwOTQ0N2FlNDhmNjEwMWQ5YWJlNjNhNzgzZmJiODMwZWVjMWQzNTlhNWY2MWEyMDEzNzI4OTY2ZDM0OTIxM2VlOTYzODI2MTRhYTQxMzUwNThhOTY3NjI3MTgzODEwYzY2MjJhMjE1OGNhYmFiZTNiOGFiOTkxNjljODllMzYyMTA4YmY1OTU1YjRmZmM0NzQ0MGY4N2U0YmFkMGQzNmJjNzM4ZTczN2UwNzJlNjRkODg0MmU3NjE5ZjFiZTBhZjExNDFmMDVhZmUyZCIKIAogSE1BQ19EUkJHIE5JU1QgQ0FWUyAxNC4zIE5vIFJlc2VlZCAoU0hBLTI1NiwyNTYrMTI4LDAsMjU2KSAjMTQKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBobWFjX2RyYmdfbm9fcmVzZWVkOk1CRURUTFNfTURfU0hBMjU2OiIxM2M3NTJiOWU3NDVjZTc3YmJjN2MwZGJkYTk4MjMxM2QzZmU2NmY5MDNlODNlYmQ4ZGJlNGZmMGMxMTM4MGU5ZjFhNTMzMDk1ZDYxNzQxNjRiZDdjODI1MzI0NjRhZTciOiIiOiI0ZjUzZGI4OWI5YmE3ZmMwMDc2N2JjNzUxZmI4ZjNjMTAzZmUwZjc2YWNkNmQ1Yzc4OTFhYjE1YjJiN2NmNjdjIjoiNTgyYzJhN2QzNDY3OTA4OGNjYTZiZDI4NzIzYzk5YWFjMDdkYjQ2YzMzMmRjMDE1M2QxNjczMjU2OTAzYjQ0NiI6IjYzMTFmNGMwYzRjZDFmODZiZDQ4MzQ5YWJiOWViOTMwZDRmNjNkZjVlNWY3MjE3ZDFkMWI5MWE3MWQ4YTY5MzhiMGFkMmIzZTg5N2JkN2UzZDg3MDNkYjEyNWZhYjMwZTAzNDY0ZmFkNDFlNWRkZjViZjlhZWViNTE2MWIyNDQ0NjhjZmIyNmE5ZDk1NjkzMWE1NDEyYzk3ZDY0MTg4YjBkYTFiZDkwNzgxOWM2ODZmMzlhZjgyZTkxY2ZlZWYwY2JmZmI1ZDFlMjI5ZTM4M2JlZDI2ZDA2NDEyOTg4NjQwNzA2ODE1YTZlODIwNzk2ODc2ZjQxNjY1M2U0NjQ5NjEiCiAKIEhNQUNfRFJCRyBOSVNUIENBVlMgMTQuMyBObyBSZXNlZWQgKFNIQS0yNTYsMjU2KzEyOCwyNTYsMCkgIzAKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBobWFjX2RyYmdfbm9fcmVzZWVkOk1CRURUTFNfTURfU0hBMjU2OiI1Y2FjYzY4MTY1YTJlMmVlMjA4MTJmMzVlYzczYTc5ZGJmMzBmZDQ3NTQ3NmFjMGM0NGZjNjE3NGNkYWMyYjU1NmY4ODU0OTZjMWU2M2FmNjIwYmVjZDllNzFlY2I4MjQiOiJlNzJkZDg1OTBkNGVkNTI5NTUxNWMzNWVkNjE5OWU5ZDIxMWI4ZjA2OWIzMDU4Y2FhNjY3MGI5NmVmMTIwOGQwIjoiIjoiIjoiZjEwMTJjZjU0M2Y5NDUzM2RmMjdmZWRmYmY1OGU1Yjc5YTNkYzUxN2E5YzQwMmJkYmZjOWEwYzBmNzIxZjlkNTNmYWY0YWFmZGM0YjhmN2ExYjU4MGZjYWE1MjMzOGQ0YmQ5NWY1ODk2NmEyNDNjZGNkM2Y0NDZlZDRiYzU0NmQ5ZjYwN2IxOTBkZDY5OTU0NDUwZDE2Y2QwZTJkNjQzNzA2N2Q4YjQ0ZDE5YTZhZjdhN2NmYTg3OTRlNWZiZDcyOGU4ZmIyZjJlOGRiNWRkNGZmMWFhMjc1ZjM1ODg2MDk4ZTgwZmY4NDQ4ODYwNjBkYThiMWU3MTM3ODQ2YjIzYiIKIAogSE1BQ19EUkJHIE5JU1QgQ0FWUyAxNC4zIE5vIFJlc2VlZCAoU0hBLTI1NiwyNTYrMTI4LDI1NiwwKSAjMQotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIGhtYWNfZHJiZ19ub19yZXNlZWQ6TUJFRFRMU19NRF9TSEEyNTY6IjhkZjAxM2I0ZDEwMzUyMzA3MzkxN2RkZjZhODY5NzkzMDU5ZTk5NDNmYzg2NTQ1NDllN2FiMjJmN2MyOWYxMjJkYTI2MjVhZjJkZGQ0YWJjY2UzY2Y0ZmE0NjU5ZDg0ZSI6ImI1NzFlNjZkN2MzMzhiYzA3Yjc2YWQzNzU3YmIyZjk0NTJiZjdlMDc0MzdhZTg1ODFjZTdiYzdjM2FjNjUxYTkiOiIiOiIiOiJiOTFjYmE0Y2M4NGZhMjVkZjg2MTBiODFiNjQxNDAyNzY4YTIwOTcyMzQ5MzJlMzdkNTkwYjExNTRjYmQyM2Y5NzQ1MmUzMTBlMjkxYzQ1MTQ2MTQ3ZjBkYTJkODE3NjFmZTkwZmJhNjRmOTQ0MTljMGY2NjJiMjhjMWVkOTRkYTQ4N2JiN2U3M2VlYzc5OGZiY2Y5ODFiNzkxZDFiZTRmMTc3YTg5MDdhYTNjNDAxNjQzYTViNjJiODdiODlkNjZiM2E2MGU0MGQ0YThlNGU5ZDgyYWY2ZDI3MDBlNmY1MzVjZGI1MWY3NWMzMjE3MjkxMDM3NDEwMzBjY2MzYTU2IgogCiBITUFDX0RSQkcgTklTVCBDQVZTIDE0LjMgTm8gUmVzZWVkIChTSEEtMjU2LDI1NisxMjgsMjU2LDApICMyCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NgogaG1hY19kcmJnX25vX3Jlc2VlZDpNQkVEVExTX01EX1NIQTI1NjoiNTY1YjJiNzc5MzdiYTQ2NTM2YjBmNjkzYjNkNWU0YThhMjQ1NjNmOWVmMWY2NzZlOGI1YjJlZjE3ODIzODMyZjRlZjMwNjRlYzI5ZjViN2Y5Njg2ZDc1YTIzZDE3MGUzIjoiM2I3MjI0MzMyMjZjOWRiYTc0NTA4NzI3MGFiM2FmMmM5MDk0MjViYTZkMzlmNWNlNDZmMDcyNTYwNjgzMTlkOSI6IiI6IiI6ImQxNDRlZTdmODM2M2QxMjg4NzJmODJjMTU2NjNmZTY1ODQxM2NkNDI2NTEwOThlMGE3YzUxYTk3MGRlNzUyODdlYzk0M2Y5MDYxZTkwMjI4MGE1YTllMTgzYTc4MTdhNDQyMjJkMTk4ZmJmYWIxODQ4ODE0MzFiNGFkZjM1ZDNkMTAxOWRhNWE5MGIzNjk2YjIzNDljOGZiYTE1YTU2ZDBmOWQwMTBhODhlM2Y5ZWVlZGI2N2E2OWJjYWE3MTI4MWI0MWFmYTExYWY1NzZiNzY1ZTY2ODU4ZjBlYjJlNGVjNDA4MTYwOWVjODFkYTgxZGYwYTBlYjA2Nzg3MzQwZWEiCiAKIEhNQUNfRFJCRyBOSVNUIENBVlMgMTQuMyBObyBSZXNlZWQgKFNIQS0yNTYsMjU2KzEyOCwyNTYsMCkgIzMKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBobWFjX2RyYmdfbm9fcmVzZWVkOk1CRURUTFNfTURfU0hBMjU2OiJmYzM4MzJhOTFiMWRjZGNhYTk0NGYyZDkzY2JjZWI4NWMyNjdjNDkxYjdiNTlkMDE3Y2RlNGFkZDc5YTgzNmI2ZDVlNzZjZTllYWJhZmVkMDZlMzNhOTEzZTM5NWM1ZTAiOiJmZmM1ZjZlZWZkNTFkYTY0YTBmNjdiNWYwY2Y2MGQ3YWI0M2ZjNzgzNmJjYTY1MDAyMmEwY2VlNTdhNDNjMTQ4IjoiIjoiIjoiMGU3MTNjNmNjOWE0ZGJkNDI0OTIwMWQxMmI3YmY1YzY5YzNlMThlYjUwNGJmMzI1MmRiMmY0MzY3NWUxN2Q5OWI2YTkwODQwMGNlYTMwNDAxMWMyZTU0MTY2ZGFlMWYyMDI2MDAwOGVmZTRlMDZhODdlMGNlNTI1Y2E0ODJiY2EyMjNhOTAyYTE0YWRjZjIzNzRhNzM5YTVkZmVhZjE0Y2FkZDcyZWZhNGQ1NWQxNTE1NGM5NzRkOTUyMTUzNWJjYjcwNjU4YzViNmM5NDQwMjBhZmIwNGE4N2IyMjNiNGI4ZTVkODk4MjE3MDRhOTk4NWJiMDEwNDA1YmE4ZjNkNCIKIAogSE1BQ19EUkJHIE5JU1QgQ0FWUyAxNC4zIE5vIFJlc2VlZCAoU0hBLTI1NiwyNTYrMTI4LDI1NiwwKSAjNAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIGhtYWNfZHJiZ19ub19yZXNlZWQ6TUJFRFRMU19NRF9TSEEyNTY6IjgwMDllYjJjYjQ5ZmRmMTY0MDNiY2RmZDRhOWY5NTIxOTEwNjJhY2I5Y2MxMTFlY2EwMTlmOTU3ZmI5ZjQ0NTEzNTU1OTg4NjY5NTIzOTRiMWVkZGQ4NWQ1OWY4MWM5ZCI6IjA5ZmYxZDRiOTdkODNiMjIzZDAwMmUwNWY3NTRiZTQ4MGQxM2JhOTY4ZTVhYWMzMDZkNzFjYzlmYzQ5Y2MyZGQiOiIiOiIiOiI5NTUwOTAzYzJmMDJjZjc3YzhmOWM5YTM3MDQxZDAwNDBlZTFlM2VmNjViYTFhMWZiYmNmNDRmYjdhMjE3MmJkNmIzYWFhYmU4NTAyODFjM2ExNzc4Mjc3YmFjZDA5NjE0ZGZlZmVjZWNhYzY0MzM4YWUyNGExYmYxNTBjYmY5ZDk1NDExNzNhODJlY2JhMDhhYTE5Yjc1YWJiNzc5ZWIxMGVmYTQyNTdkNTI1MmU4YWZjYWM0MTRiYzNiYjVkMzAwNmI2ZjM2ZmI5ZGFlYTRjOGMzNTllZjZjZGJlZmYyN2MxMDY4NTcxZGQzYzg5ZGM4N2VkYTkxOTAwODY4ODhkIgogCiBITUFDX0RSQkcgTklTVCBDQVZTIDE0LjMgTm8gUmVzZWVkIChTSEEtMjU2LDI1NisxMjgsMjU2LDApICM1Ci1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NgogaG1hY19kcmJnX25vX3Jlc2VlZDpNQkVEVExTX01EX1NIQTI1NjoiYTZlNGM5YThiZDZkYTIzYjljMmIxMGE3NzQ4ZmQwOGM0Zjc4MmZhZGJhYzdlYTUwMWMxN2VmZGM2ZjYwODdiZGFjZGM0N2VkZjFkM2IyMWQwYWVjNzYzMWFiYjZkN2Q1IjoiYzE2ZWUwOTA4YTU4ODZkY2NmMzMyZmJjNjFkZTllYzdiNzk3MmQyYzRjODNjNDc3NDA5Y2U4YTE1YzYyMzI5NCI6IiI6IiI6ImE1MmY5M2NjYjM2M2UyYmRmMDkwMzYyMmMzY2FlZGI3Y2ZmZDA0YjcyNjA1MmI4ZDQ1NTc0NGM3MWI3NmRlZTFiNzFkYjk4ODBkYzNjMjE4NTA0ODljYjI5ZTQxMmQ3ZDgwODQ5Y2ZhOTE1MWExNTFkY2JmMzJhMzJiNGE1NGNhYzAxZDMyMDAyMDBlZDY2YTNhNWU1YzEzMWE0OTY1NWZmYmYxYTg4MjRmZjdmMjY1NjkwZGZmYjQwNTRkZjQ2YTcwN2I5MjEzOTI0YzYzMWM1YmNlMzc5OTQ0Yzg1NmM0Zjc4NDZlMjgxYWM4OWM2NGZhZDNhNDk5MDlkZmI5MmIiCiAKIEhNQUNfRFJCRyBOSVNUIENBVlMgMTQuMyBObyBSZXNlZWQgKFNIQS0yNTYsMjU2KzEyOCwyNTYsMCkgIzYKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBobWFjX2RyYmdfbm9fcmVzZWVkOk1CRURUTFNfTURfU0hBMjU2OiI1OWQ2MzA3NDYwYTliZGQzOTJkZmMwOTA0OTczOTkxZDU4NTY5NjAxMGE3MWU1MmQ1OTBhNTAzOWI0ODQ5ZmE0MzRhMGFhZmI5NTkxN2NiZjhjMzhmYzU1NDgzNzNjMDUiOiIwNDA3YjdjNTdiYzExMzYxNzQ3YzNkNjc1MjZjMzZlMjI4MDI4YTVkMGIxNDVkNjZhYjlhMmZlNGIwNzUwN2EwIjoiIjoiIjoiMjk5YWJhMDY2MTMxNTIxMWIwOWQyODYxODU1ZDBiNGIxMjVhYjI0NjQ5NDYxMzQxYWY2YWJkOTAzZWQ2ZjAyNTIyM2IzMjk5ZjIxMjZmY2FkNDRjNjc1MTY2ZDgwMDYxOWNmNDk1NDA5NDZiMTIxMzg5ODk0MTc5MDQzMjRiMGRkYWQxMjEzMjcyMTFhMjk3ZjExMjU5YzljMzRjZTRjNzBjMzIyYTY1MzY3NWY3OGQzODVlNGUyNDQzZjgwNThkMTQxMTk1ZTE3ZTBiZDFiOWQ0NGJmM2U0OGMzNzZlNmViNDRlZjAyMGIxMWNmMDNlYjE0MWM0NmVjYjQzY2YzZCIKIAogSE1BQ19EUkJHIE5JU1QgQ0FWUyAxNC4zIE5vIFJlc2VlZCAoU0hBLTI1NiwyNTYrMTI4LDI1NiwwKSAjNwotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIGhtYWNfZHJiZ19ub19yZXNlZWQ6TUJFRFRMU19NRF9TSEEyNTY6IjlhZTM1MDZhYWRiYzgzNTg2OTZiYTFiYTE3ZTg3NmUxMTU3YjcwNDgyMzU5MjE1MDNkMzZkOTIxMWI0MzAzNDI5YWJmN2Q2NmFmZWU1ZDJiODExY2JhMzU4YmJjNTI3ZCI6IjBkNjQ1ZjYyMzhlOWNlYjAzOGU0YWY5NzcyNDI2Y2ExMTBjNWJlMDUyZjg2NzNiOGI1YTY1YzRlNTNkMmY1MTkiOiIiOiIiOiI1ZjAzMmM3ZmVjNjMyMGZlNDIzYjZmMzgwODVjYmFkNTlkODI2MDg1YWZlOTE1MjQ3YjNkNTQ2YzRjNmIxNzQ1NTRkZDQ4NzdjMGQ2NzFkZTk1NTRiNTA1MzkzYTQ0ZTcxZjIwOWI3MGY5OTFhYzhhYTZlMDhmOTgzZmZmMmE0YzgxN2IwY2QyNmMxMmIyYzkyOTM3ODUwNjQ4OWE3NWIyMDI1YjM1OGNiNWQwNDAwODIxZTdlMjUyYWM2Mzc2Y2Q5NGE0MGM5MTFhN2VkOGI2MDg3ZTNkZTVmYTM5ZmE2YjMxNGMzYmExYzU5M2I4NjRjZTRmZjI4MWE5N2MzMjViIgogCiBITUFDX0RSQkcgTklTVCBDQVZTIDE0LjMgTm8gUmVzZWVkIChTSEEtMjU2LDI1NisxMjgsMjU2LDApICM4Ci1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NgogaG1hY19kcmJnX25vX3Jlc2VlZDpNQkVEVExTX01EX1NIQTI1NjoiOTZhZTNiODc3NWIzNmRhMmEyOWI4ODlhZDg3ODk0MWY0M2M3ZDUxMjk1ZDQ3NDQwY2QwZTNjNDk5OTE5MzEwOTFmZTAyMmE2ZmMwMjM3YjA1NWQ0ZDZhNzAzNmIxOGQ1IjoiMWU0MGU5NzM2MmQwYTgyM2QzOTY0YzI2YjgxYWI1MzgyNWM1NjQ0NmM1MjYxNjg5MDExODg2ZjE5YjA4ZTVjMiI6IiI6IiI6ImU3MDdjZDE0YjA2Y2UxZTZkYmNjZWFlZGJmMDhkODg4OTFiMDNmNDRhZDZhNzk3YmQxMmZkZWI1NTdkMDE1MWRmOTM0NmEwMjhkZWMwMDQ4NDRjYTQ2YWRlYzMwNTFkYWZiMzQ1ODk1ZmE5ZjQ2MDRkOGExM2M4ZmY2NmFlMDkzZmE2M2M0ZDljMDgxNmQ1NWEwMDY2ZDMxZTg0MDRjODQxZTg3YjZiMmM3YjVhZTlkN2FmYjY4NDBjMmY3YjQ0MWJmMmQzZDhiZDNmNDAzNDljMWMwMTQzNDdjMTk3OTIxM2M3NjEwM2UwYmVjZTI2YWQ3NzIwNjAxZWZmNDIyNzUiCiAKIEhNQUNfRFJCRyBOSVNUIENBVlMgMTQuMyBObyBSZXNlZWQgKFNIQS0yNTYsMjU2KzEyOCwyNTYsMCkgIzkKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBobWFjX2RyYmdfbm9fcmVzZWVkOk1CRURUTFNfTURfU0hBMjU2OiIzM2Y1MTIwMzk2MzM2ZTUxZWUzYjBiNjE5YjVmODczZGIwNWNhNTdjZGE4NmFlYWUyOTY0ZjUxNDgwZDE0OTkyNmYxZjZlOTgwN2JhNTM5M2VkY2YzY2I0ZTRiYjYxMTMiOiIzNzA5NjA1YWY0NGQ5MDE5Njg2N2M5Mjc1MTJhYThiYTMxODM3MDYzMzM3YjQ4Nzk0MDhkOTFhMDVjOGVmYTlmIjoiIjoiIjoiOGI4MjkxMTI2ZGVkOWFjZWYxMjUxNjAyNWM5OWNjY2UyMjVkODQ0MzA4YjU4NGI4NzJjOTAzYzdiYzY0Njc1OTlhMWNlYWQwMDNkYzRjNzBmNmQ1MTlmNWI1MWNlMGRhNTdmNTNkYTkwZGJlOGY2NjZhMWExZGRlMjk3NzI3ZmVlMmQ0NGNlYmQxMzAxZmMxY2E3NTk1NmEzZmNhZTBkMzc0ZTBkZjYwMDliNjY4ZmQyMTYzOGQyYjczM2U2OTAyZDIyZDViZmI0YWYxYjQ1NTk3NWUwOGVlZjBlYmU0ZGM4NzcwNTgwMWU3Nzc2NTgzYzhkZTExNjcyNzI5ZjcyMyIKIAogSE1BQ19EUkJHIE5JU1QgQ0FWUyAxNC4zIE5vIFJlc2VlZCAoU0hBLTI1NiwyNTYrMTI4LDI1NiwwKSAjMTAKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBobWFjX2RyYmdfbm9fcmVzZWVkOk1CRURUTFNfTURfU0hBMjU2OiJhZDMwMGI3OTkwMDVmMjkwZmVlN2Y5MzBlZWJjZTE1OGI5OGZiNmNiNDQ5OTg3ZmU0MzNmOTU1NDU2YjM1MzAwMDZhYTI1MTRlNGJkMTE0ZWRmN2FjMTA1Y2ZlZjI3NzIiOiI4N2FkYTcxMTQ2NWU0MTY5ZGEyYTc0YzkzMWFmYjliNWE1YjE5MGQwN2I3YWYzNDJhYTk5NTcwNDAxYzNlZThhIjoiIjoiIjoiODBkN2M2MDZmZjQ5NDE1YTNhOTJiYTFmMjk0MzIzNWMwMTMzOWM4ZjljZDBiMDUxMWZiZmRmM2VmMjNjNDJmZmZmMDA4NTI0MTkzZmFhYTRiN2YyZjJlYjBjZmEyMjFkOWRmODliZDM3M2ZlNGUxNThlYzA2ZmFkM2VjZjFlYjQ4YjgyMzliMGJiODI2ZWU2OWQ3NzM4ODNhM2U4ZWRhYzY2MjU0NjEwZmY3MGI2NjA5ODM2ODYwZTM5ZWExZjNiZmEwNDU5NmZlZTFmMmJhY2E2Y2ViYjI0NDc3NGM2YzNlYjRhZjFmMDI4OTllYmE4ZjQxODhmOTE3NzZkZTE2ZiIKIAogSE1BQ19EUkJHIE5JU1QgQ0FWUyAxNC4zIE5vIFJlc2VlZCAoU0hBLTI1NiwyNTYrMTI4LDI1NiwwKSAjMTEKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBobWFjX2RyYmdfbm9fcmVzZWVkOk1CRURUTFNfTURfU0hBMjU2OiIxMzBiMDQ0ZTJjMTVhYjg5Mzc1ZTU0YjcyZTdiYWFlNmQ0Y2FkNzM0YjAxM2EwOTBmNGRmMDU3ZTYzNGY2ZmYwNjVmZDZhYzYwMmNkNDQxMDdkNzA1ZGJjMDY2ZTUyYjYiOiJmMzc0YWJhMTZmMzRkNTRhYWU1ZTQ5NDUwNWI2N2QzODE4ZWYxYzA4ZWEyNDk2N2E3Njg3NmQ0MzYxMzc5YWVjIjoiIjoiIjoiNWQxNzk1MzRmYjBkYmEzNTI2OTkzZWQ4ZTI3ZWM5ZjkxNTE4M2Q5NjczMzZiYjI0MzUyYzY3ZjRhYjVkNzkzNWQzMTY4ZTU3MDA4ZGE4NTE1MTVlZmJhZWNiNjk5MDRiNmQ4OTlkM2JmYTZlOTgwNTY1OWFlZjI5NDJjNDkwMzg3NWI4ZmNiYzBkMWQyNGQxYzA3NWYwZmY2NjdjMWZjMjQwZDhiNDEwZGZmNTgyZmE3MWZhMzA4Nzg5NTVjZTJlZDc4NmVmMzJlZjg1MjcwNmU2MjQzOWI2OTkyMWYyNmU4NGUwZjU0ZjYyYjkzOGYwNDkwNWYwNWZjZDdjMjIwNCIKIAogSE1BQ19EUkJHIE5JU1QgQ0FWUyAxNC4zIE5vIFJlc2VlZCAoU0hBLTI1NiwyNTYrMTI4LDI1NiwwKSAjMTIKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBobWFjX2RyYmdfbm9fcmVzZWVkOk1CRURUTFNfTURfU0hBMjU2OiI3MTY0MzBlOTk5OTY0YjM1NDU5YzE3OTIxZmU1ZjYwZTA5YmQ5YWIyMzRjYjhmNGJhNDkzMmJlYzRhNjBhMWQ1OTUzM2I3MTFlMDYxYjA3ZDUwNWRhNzA3Y2FmYmNhMDMiOiIzNzJhZTYxNmQxYTFmYzQ1YzVhZWNhZDA5MzljNDliOWUwMWM5M2JmYjQwYzgzNWVlYmQ4MzdhZjc0N2YwNzlkIjoiIjoiIjoiYTgwZDZhMWIyZDBjZTAxZmUwZDI2ZTcwZmI3M2RhMjBkNDU4NDFjZjAxYmZiZDUwYjkwZDI3NTFhNDYxMTRjMGU3NThjYjc4N2QyODFhMGE5Y2Y2MmY1YzhjZTJlZTdjYTc0ZmVmZmYzMzBlZmU3NDkyNmFjY2E2ZDZmMDY0NmU0ZTNjMWExZTUyZmNlMWQ1N2I4OGJlZGE0YTU4MTU4OTZmMjVmMzhhNjUyY2MyNDBkZWI1ODI5MjFjOGIxZDAzYTFkYTk2NmRkMDRjMmU3ZWVlMjc0ZGYyY2QxODM3MDk2YjlmN2EwZDg5YTgyNDM0MDc2YmMzMDE3MzIyOWE2MCIKIAogSE1BQ19EUkJHIE5JU1QgQ0FWUyAxNC4zIE5vIFJlc2VlZCAoU0hBLTI1NiwyNTYrMTI4LDI1NiwwKSAjMTMKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBobWFjX2RyYmdfbm9fcmVzZWVkOk1CRURUTFNfTURfU0hBMjU2OiI3Njc5ZjE1NDI5NmU2ZDU4MDg1NDgyNjUzOTAwM2E4MmQxYzU0ZTJlMDYyYzYxOWQwMGRhNmM2YWM4MjA3ODliNTVkMTI5NDFiMDg5NjQ2MmU3ZDg4OGU1MzIyYTk5YTMiOiJiYTRkMWVkNjk2ZjU4ZWY2NDU5NmM3NmNlZTg3Y2MxY2E4MzA2OWE3OWU3OTgyYjlhMDZmOWQ2MmY0MjA5ZmFmIjoiIjoiIjoiMTBkYzdjZDJiYjY4YzJjMjhmNzZkMWIwNGFlMmFhMjg3MDcxZTA0YzNiNjg4ZTE5ODZiMDVjYzEyMDlmNjkxZGFhNTU4NjhlYmIwNWI2MzNjNzVhNDBhMzJiNDk2NjMxODVmZTViYjhmOTA2MDA4MzQ3ZWY1MTU5MDUzMDk0OGI4NzYxMzkyMDAxNDgwMmU1ODY0ZTA3NThmMDEyZTFlYWUzMWYwYzRjMDMxZWY4MjNhZWNmYjJmOGE3M2FhYTk0NmZjNTA3MDM3ZjkwNTBiMjc3YmRlYWEwMjMxMjNmOWQyMmRhMTYwNmU4MmNiN2U1NmRlMzRiZjAwOWVjY2I0NiIKIAogSE1BQ19EUkJHIE5JU1QgQ0FWUyAxNC4zIE5vIFJlc2VlZCAoU0hBLTI1NiwyNTYrMTI4LDI1NiwwKSAjMTQKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBobWFjX2RyYmdfbm9fcmVzZWVkOk1CRURUTFNfTURfU0hBMjU2OiI4Y2E0YTk2NGUxZmY2ODc1M2RiODY3NTNkMDkyMjJlMDliODg4YjUwMGJlNDZmMmEzODMwYWZhOTE3MmExZDZkYTU5Mzk0ZTBhZjc2NGUyZjIxY2Y3NTFmNjIzZmZhNmMiOiJlYjgxNjRiM2JmNmMxNzUwYThkZTg1MjhhZjE2Y2ZmZGY0MDA4NTZkODIyNjBhY2Q1OTU4ODk0YTk4YWZlZWQ1IjoiIjoiIjoiZmM1NzAxYjUwOGYwMjY0ZjRmZGI4ODQxNDc2OGUxYWZiMGE1YjQ0NTQwMGRjZmRlZGRkMGViYTY3YjRmZWE4YzA1NmQ3OWE2OWZkMDUwNzU5ZmIzZDYyNmIyOWFkYjg0MzgzMjZmZDU4M2YxYmEwNDc1Y2U3NzA3YmQyOTRhYjAxNzQzZDA3NzYwNTg2NjQyNWIxY2JkMGY2YzdiYmE5NzJiMzBmYmU5ZmNlMGE3MTliMDQ0ZmNjMTM5NDM1NDg5NWE5ZjgzMDRhMmI1MTAxOTA5ODA4ZGRmZGY2NmRmNjIzNzE0MmI2NTY2NTg4ZTRlMWU4OTQ5YjkwYzI3ZmMxZiIKIAogSE1BQ19EUkJHIE5JU1QgQ0FWUyAxNC4zIE5vIFJlc2VlZCAoU0hBLTI1NiwyNTYrMTI4LDI1NiwyNTYpICMwCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NgogaG1hY19kcmJnX25vX3Jlc2VlZDpNQkVEVExTX01EX1NIQTI1NjoiNWQzMjg2YmM1M2EyNThhNTNiYTc4MWUyYzRkY2Q3OWE3OTBlNDNiYmUwZTg5ZmIzZWVkMzkwODZiZTM0MTc0YmM1NDIyMjk0YjczMTg5NTJhY2U3MDU1YWI3NTcwYWJmIjoiMmRiYTA5NGQwMDhlMTUwZDUxYzQxMzViYjJmMDNkY2RlOWNiZjM0NjhhMTI5MDhhMWIwMjVjMTIwYzk4NWI5ZCI6Ijc5M2E3ZWY4ZjZmMDQ4MmJlYWM1NDJiYjc4NWMxMGY4YjdiNDA2YTRkZTkyNjY3YWIxNjhlY2MyY2Y3NTczYzYiOiIyMjM4Y2RiNGUyM2Q2MjlmZTBjMmE4M2RkOGQ1MTQ0Y2UxYTYyMjllZjQxZGFiZTJhOTlmZjcyMmU1MTBiNTMwIjoiZDA0Njc4MTk4YWU3ZTFhZWI0MzViNDUyOTE0NThmZmRlMDg5MTU2MDc0OGI0MzMzMGVhZjg2NmI1YTYzODVlNzRjNmZhNWE1YTQ0YmRiMjg0ZDQzNmU5OGQyNDQwMThkNmFjZWRjZGZhMmU5ZjQ5OWQ4MDg5ZTRkYjg2YWU4OWE2YWIyZDE5Y2I3MDVlMmYwNDhmOTdmYjU5N2YwNDEwNmExZmE2YTE0MTZhZDNkODU5MTE4ZTA3OWEwYzMxOWViOTU2ODZmNGNiY2NlM2I1MTAxYzdhMGIwMTBlZjAyOWM0ZWY2ZDA2Y2RmYWM5N2VmYjk3NzM4OTE2ODhjMzdjZiIKIAogSE1BQ19EUkJHIE5JU1QgQ0FWUyAxNC4zIE5vIFJlc2VlZCAoU0hBLTI1NiwyNTYrMTI4LDI1NiwyNTYpICMxCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NgogaG1hY19kcmJnX25vX3Jlc2VlZDpNQkVEVExTX01EX1NIQTI1NjoiYzJhNTY2YTlhMTgxN2IxNWM1YzNiNzc4MTc3YWM4N2MyNGU3OTdiZTBhODQ1ZjExYzJmZTM5OWRkMzc3MzJmMmNiMTg5NGViMmI5N2IzYzU2ZTYyODMyOTUxNmY4NmVjIjoiMTNjZTRkOGRkMmRiOTc5NmY5NDE1NmM4ZThmMDc2OWIwYWExYzgyYzEzMjNiNjE1MzY2MDNiY2EzN2M5ZWUyOSI6IjQxM2RkODNmZTU2ODM1YWJkNDc4Y2I5NjkzZDY3NjM1OTAxYzQwMjM5YTI2NjQ2MmQzMTMzYjgzZTQ5YzgyMGIiOiJkNWM0YTcxZjlkNmQ5NWExYmVkZjBiZDIyNDdjMjc3ZDFmODRhNGU1N2E0YTg4MjViODJhMmQwOTdkZTYzZWYxIjoiYjNhMzY5OGQ3Nzc2OTlhMGRkOWZhM2YwYTlmYTU3ODMyZDNjZWZhYzVkZjI0NDM3YzZkNzNhMGZlNDEwNDBmMTcyOTAzOGFlZjFlOTI2MzUyZWE1OWRlMTIwYmZiN2IwNzMxODNhMzQxMDZlZmVkNjI3OGZmOGFkODQ0YmEwNDQ4MTE1ZGZkZGYzMzE5YTgyZGU2YmIxMWQ4MGJkODcxYTlhY2QzNWM3MzY0NWUxMjcwZmI5ZmU0ZmE4OGVjMGU0NjU0MDllYTBjYmE4MDlmZTJmNDVlMDQ5NDNhMmUzOTZiYmI3ZGQyZjRlMDc5NTMwMzUyNGNjOWNjNWVhNTRhMSIKIAogSE1BQ19EUkJHIE5JU1QgQ0FWUyAxNC4zIE5vIFJlc2VlZCAoU0hBLTI1NiwyNTYrMTI4LDI1NiwyNTYpICMyCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NgogaG1hY19kcmJnX25vX3Jlc2VlZDpNQkVEVExTX01EX1NIQTI1NjoiYTMzMjg4YTk2ZjQxZGQ1NGI5NDVlMDYwYzhiZDBjMDk0ZjFlMjgyNjdjYzFkY2JiYTUyMDYzYzFhOWQ1NGM0ZDM2OTE4Yzk3N2UxYTcyNzZhMmJiNDc1NTkxYzM2N2I3IjoiNmFhNTI4Yzk0MDk2MjYzOGRjMjIwMTczODg1MGZkMWZlNmY1ZDBlYjlmNjg3ZmYxYWYzOWQ5YzdiMzY4MzBkOSI6IjM3ZWU2MzNhNjM1ZTQzYWY1OWFiZGIxNzYyYzdlYTQ1YmZlMDYwZWMxZDkwNzdlY2QyYTQzYTY1ODY3M2YzYzciOiIyZWI5NmYyZTI4ZmE5ZjY3NGJiMDNhZGU3MDNiOGY3OTFlZTUzNTZlMmVlODVjN2VkNWJkYTk2MzI1MjU2YzYxIjoiZGIyZjkxOTMyNzY3ZWI4NDY5NjFjZTUzMjFjNzAwMzQzMTg3MDUwOGU4YzZmOGQ0MzJjYTFmOWNlZTVjZGMxYWVkNmUwZjEzM2QzMTdlYjY5OTBjNGIzYjBhMzYwY2RmYjViNDNhNmU3MTJiZDQ2YmNhMDRjNDE0ODY4ZmFiMjJjNmE0OWM0Yjg5YzgxMjY5N2MzYTdmYmZjOGRkZjEwYzhhYTVlYmYxM2EwOWZkMTE0ZWIyYTAyYTA3ZjY5Nzg2ZjNjZTdmZDMwMjMxZjIyNzc5YmM4ZGIxMDNiMTNmYTU0NmRiYzQ1YTg5YTg2Mjc1MjgxMTcyNzYxNjgzZDM4NCIKIAogSE1BQ19EUkJHIE5JU1QgQ0FWUyAxNC4zIE5vIFJlc2VlZCAoU0hBLTI1NiwyNTYrMTI4LDI1NiwyNTYpICMzCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NgogaG1hY19kcmJnX25vX3Jlc2VlZDpNQkVEVExTX01EX1NIQTI1NjoiNWYzN2I2ZTQ3ZTE3NzZlNzM1YWRjMDNkNGI5OTk4Nzk0NzdmZjRhMjA2MjMxOTI0MDMzZDk0YzAxMTRmOTExYjdkMTJkNjJjNzljOWY2MjM0YWUwMzE0MTU2OTQ3NDU5IjoiOTJkNGQ5ZmFiNWY4YmY1MTE5ZjI2NjNhOWRmNzMzNGY1MGRjZGU3NGZiOWQ3NzMyZjdlYmE1NjUwMWU2MGQ1NCI6ImM5YWVmMGQ3YTliYTczNDVkMDhiNmQ1YjVjZTU2NDVjNzQ5NWI4Njg1ZTZiOTM4NDZmZmNmNDcwZjVhYmQ0MGQiOiI1MGQ5ZDFmNTA3NGY3ZDlmMWEyNGE5YzYzYWE0N2I5NGRhNWJhNzhkYjFiMGYxOGU0ZDRmZTQ1YzY4NzU4MTNjIjoiMjBkOTQyYmJkN2Q5ODcwMGZhYTM3ZTk0ZDUzYmY3NGYyZDZiZDFkOGM5NWMwYjg4ZDg0MmM0ODU3Nzk3ZDU5ZTdjODc4OGFlZWFjMjk3NDAxMjJmMjA4ZjcwM2JmMzVkYzMyYjAwMzVkYjA2NDgzODRmZWI2YWExN2EzMjc0YmMwOWIyZDJiNzQ2YzVhMDZmZDgyZjQ0NjlmYjg2MTMxYTQ5NDgyY2I3YmU3ZDliNGI5NTA0MjM5NGNmYjE4YjEzZjMzM2VjMGZlNWMyMjdiZjFkOGYzM2VjYjJlNDJlMzU4YjZjM2UwMzRjYjU4NTMzMWJkMWQyN2Y2MzgwMjliOSIKIAogSE1BQ19EUkJHIE5JU1QgQ0FWUyAxNC4zIE5vIFJlc2VlZCAoU0hBLTI1NiwyNTYrMTI4LDI1NiwyNTYpICM0Ci1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NgogaG1hY19kcmJnX25vX3Jlc2VlZDpNQkVEVExTX01EX1NIQTI1NjoiMjMxMWM1YWZkNjRjNTg0NDg0YjI3MjllODRkYjgwYzBiNDA2M2ZlOWNhN2VkYzgzMzUwNDg4ZDdlNjcyNjRhMDZhNmRmZDk3NWEwZGM3YjcyZGYxZjEwN2M0YjNiM2E2IjoiMmFiZDg3MGVjNWZlMjZlZDE0ZGZhNTdhMzMwOWY5MjAxMzFiNzA1ODBjMzYzOWFmMjY0NWNkMWFmOTNkYjFiMSI6ImM2ZTUzMmEzYjI1NjUzYjYwMDJhZWQ1MjY5Y2MyMTE4NzQ5MzA2ZTczNmJkZTAzOWQ0ZDU2OWQ0Zjk2Nzc3M2YiOiI1ZTdkMjZjNGRhNzY5YzM3MzA5MmIyYjRmNzJiMTA5ZmUzNGJkYjdkMTY5ZWEzOGY3OGViYWU1ZGY0YTE1NzU5IjoiY2FjYWViMWI0YWMyMzA1ZDg3MTRlYjUwY2JlMWM2N2M1YTJjMGJiYzc5MzhmZGZkY2FmZWY3Yzg1ZmM0MGJlY2JmNzc3YTRjZmI2ZjE0YzZlZWUzMjA5NDNhNDkzZDJiMGE3NDRhNmViM2MyNTZlZTlhMzc2MzAzNzQzN2RmOWFkY2UzZTIyNjBmMGMzNWU5NThhZjBlZGI1YTgxZGViZDhiZGFmMmI4YmIyYjk4YjkxODZlNWEyMjJhMjE2MDlmZjU4ZGY0Y2JlMWQ0ODk4ZDEwZDZlN2M0NmYzMWY1Y2IxMDQxYmZkODNhNWZiMjdkNWM1NmM5NjFlOTE0MDNmYyIKIAogSE1BQ19EUkJHIE5JU1QgQ0FWUyAxNC4zIE5vIFJlc2VlZCAoU0hBLTI1NiwyNTYrMTI4LDI1NiwyNTYpICM1Ci1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NgogaG1hY19kcmJnX25vX3Jlc2VlZDpNQkVEVExTX01EX1NIQTI1NjoiMzYyZWNlOWQzMzBlMTE3MmE4ZjllNTAyNTg0NzZkMGM3OWMzZWU1MDM0NjUyNGJhMTJkOTcwZWUzYTZlZjhjNWNmMTFiY2I0ZDlkNTEzMTFjZWFjZmNhODcwNWU4MzNmIjoiYWJiNWE4ZWRkZTAyZTUyNjQ0OTI4NGVjYzMxYmM3MTMzODNkZjNlZDA4NWY3NTJlM2I2YTMyZjMwNTg2MWVlZCI6Ijc0NjMwMmFiMWY0YTg2YjE3NTQ2YmVhNzYyZTkyOTM2MGYyZTk1Yzc3ODhhNjM1NDVhMjY0ZWY5OTdjOGM2NWUiOiJiOTA3YzViMmE4ODMzYTQ4ZTU2ZTgxOTIyOGNlOWEwNTBiNDFiMzMwOWY1Y2EzN2JlZDcyMDMxMWQ5MmIzM2FmIjoiNzNjNzEzMWE1NTgzNTA1OTAwNTM1ODA4NzNlZjk1NmZmOTUyZjJhYTZmZjFiZWE0NTJlMDEzZDFiYzJhZmRkZWEyMzExNzU2ZGJlNzU2ZTYzYmE2MjU4NDgwYzQ4ZjNmNmMxMzE5YjVmNTcyZjY3Y2E1MzBhZjA5ZTM5NDEzZDFkNDMyYmVhOGY4OTIwNjYxOTYxOGNiMGU3Yzg4ZTlmMjAzMzYzOWQwZWIwZWZjMjA2MTZiNjRmOTQwZGE5OWI4ODIzMTk4NGMzZmIyM2YxOWU4OTA1NzZmNTU1ZmRlMzk0ZGJkNDM1MWYxN2E3ZmZkNWMzNjkzNzkwMDFiZGEwMyIKIAogSE1BQ19EUkJHIE5JU1QgQ0FWUyAxNC4zIE5vIFJlc2VlZCAoU0hBLTI1NiwyNTYrMTI4LDI1NiwyNTYpICM2Ci1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NgogaG1hY19kcmJnX25vX3Jlc2VlZDpNQkVEVExTX01EX1NIQTI1NjoiY2Y2MTRiYzI5OTQ2YmMwMDk1ZjQxNWU4YmRlZGExMGFhYjA1MzkyZjljYzkxODdhODZlYTZlYzk1ZWU0MjJlMTc3ZmI1ZWMyMmRjMDQzMmNjMTNmNDY5M2UyZTNiZDlhIjoiZTRjZTc3OTE0ZmZiYzVmZGRmMWZiNTFlZGZhZmRjMTk2MTA5MTM5Yjg0Yzc0MTM1NDEzNWVjOGQzMTRjN2M0MyI6ImUxZTgzZWUxMjA1YWNhZjYxNjRkYzI4N2FlYzA4ZTViMzI3ODllNWJlODE4MDc4ZGIzOWU1M2NhZDU4OWRiNTEiOiI0ZTIwYzAyMjZkNWUxZTdlODA1Njc5ZjAzZjcyNDUyYjViZWEyZDBiYTQxZTBjMTIzMjliZjYwZWIzMDE2ZGQxIjoiODM4ZmRmMTQxOGE3NDZhYTUyYWU0MDA1ZDkwYzNmZDMwMWY2NDhjNTc3MGZmZWYyYTlmMzkxMmUzN2E5Mzg1MGNjNGI4YmZjY2U5MTBhZWFkMGNiNzU5NTg4MjNiMWE2MmUyODM5MDFjNWU0YTM5ODBlNGVhMzYyNTc0NThlMmU0OTUzNTU1ODE5Yjg4NTJhMjY0ODliMWQ3NDgyMWY4MGM5OTA4NDY5YjQzZjEyNGZmN2VhNjI0OTdjMzYxNTlhNDczNTMwOThhMWI5ZWMzMmU1NDgwMGQ2NzA0MzcxY2MzN2YzNTdhZDc0YWFjYzIwM2U5YjZkYjk3Zjk0ZDBjNCIKIAogSE1BQ19EUkJHIE5JU1QgQ0FWUyAxNC4zIE5vIFJlc2VlZCAoU0hBLTI1NiwyNTYrMTI4LDI1NiwyNTYpICM3Ci1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NgogaG1hY19kcmJnX25vX3Jlc2VlZDpNQkVEVExTX01EX1NIQTI1NjoiYThkYTFkM2UyMzNmMzkzZmQ0NGQyMDRjMjAwMjAyZjdkMDE4OTZlNzJjNWFjNjUyOTQwY2ZkMTViNWQ0YjBiZDBhMTEyYjRjYjA4OTBhZjBhNDk1ZTBmNDlmY2Y2ODc0IjoiZDJlMzI3OTliYzgyMmI4ZDAzMzI5OWJkZjYzZGMzNTc3NGY3NjQ5ZTkzNWQyNWJlNWIxMDUxMmM0MzBkMWJkYSI6IjkyMGE4MmQ3NmZjZDJjZDEwNmFkYTY0YmJhMjMyYjdiMjM0NGYzYWZlNmIxZDFkMjBlZTg3OTUxNDQ1NzEwMDkiOiJlZWFhYzU4NzgyNzUzNzIwMjVmODIzMWZlYmVkNjRkYjZhMTEyNzNjM2MwMGQ2MjVmYzgwYTk1ZjE4YWQ3ZDNmIjoiNWY2ZGFlNDg5YjUzZDg5MDI3YjJjYzMzM2M3MDBmMDkwMTUyZDc3YjNlYWYwMWQ0N2Y1NmNlNmVjYTk4OTNlZjg3N2I0Y2I1NjBmYWIwZmJkYjM0ZTNkMWM2Y2Q4NDgwYjMzYzA1M2QyNjYxYTEwYWE1MzFkZjQ5NjFiOTdkNjU5Yzc0OTI1ODQyMzY1ODJiM2ZlNzAxMDU1ZWZhNTljMzI4MTk0Y2QxZTA3ZmNmZmQ5MTBkOWVlMDFiN2I5ZThjOGZkYTdmN2FjMDFhOGUyMDNiOGIyNmViODA3OGE5YjlhNTAyMTU2MmM0NGFmMjQwODllM2VmODRjMWQ1YTZiZCIKIAogSE1BQ19EUkJHIE5JU1QgQ0FWUyAxNC4zIE5vIFJlc2VlZCAoU0hBLTI1NiwyNTYrMTI4LDI1NiwyNTYpICM4Ci1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NgogaG1hY19kcmJnX25vX3Jlc2VlZDpNQkVEVExTX01EX1NIQTI1NjoiYTc3YjFlZDRlY2FhNjUwMzc0ZTEwNTJjNDA1ZjFkODg4ODFjMjVjODdkMTNkYmUxMzM0ZDhjMWE4NDdmYTc2YjA1YzE0M2UyZjE0NWRiMjE2ZmU3YmU5ZWQyMzYzNWQwIjoiYjVjNzUwOTY4ZmYwOWVkMjUxZDRhMWMwNTM0MmFjODQzZGI1MjQ2YjE5MDQ1NzI4YTYzNGZhNGY2ZTc1MmU1NCI6ImZmNTkzN2JjZDAxYTM2MzY5NmJmOGU0MGFkYzhlNGFiM2U1NmRiZjdlN2QwOTQ1MWM5OWU1Mzg3ODVmZTY2OTciOiI0YWNiMzRlZWE4MjY2YmFkY2Y4ZjY1NTdhMGVlY2YzZWI0ZDdhMjk1Yzg3NmQ2MTc1NTk4Y2I2NmEzODhlZmI4IjoiZWMxM2VhZGZjYzg0ZTc3ZDJhMmVmYTFhMmNkOGIxMzU1NTg3Y2IyN2ZlYjNkMTlkNzViMzdmMDQ0NjMzM2RkYjgyMzZlNzUxYzYzYjdhNmU1OTVlYzI0YTI1MDUxYTY5NmRiZThjMDYyZGQ4ODk2ZDE0NDZkYjIyOGEyZjEwZTgwOTRlZTA3ZTdlZTY0OGVkNmJlYmIyZjVlYzVhYWUyNGM5YzY0MDY2NWMyODM1NWNjMTFjMTE2Nzk1ZWNjMDcwNzkwZjdmZGZjNDM5ODkwMDMxMWI2Njk1ZDVkYTAxNzUwOTFlZDE4MjhkMjczMTA4NWJmYjRhMjBiZDg2Y2NlMCIKIAogSE1BQ19EUkJHIE5JU1QgQ0FWUyAxNC4zIE5vIFJlc2VlZCAoU0hBLTI1NiwyNTYrMTI4LDI1NiwyNTYpICM5Ci1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NgogaG1hY19kcmJnX25vX3Jlc2VlZDpNQkVEVExTX01EX1NIQTI1NjoiNDkxNjg2Yzc4MWU4M2ViNGUyMWQ5OTg5ZThkNzE4MTAwYjBkMjFhMmM1NjI5NTg4OGJhZWYxYTY1ZjIxOTY1MTQ5OTA4NTI5NmQyMTA2NWZlYWJmMzEwNjEwMWM4ZDZmIjoiZDIwOGE3MmY5YWUzNGYwODE3NjY5ZmIwNGY0OTIzOWRkMzE3MDBmM2RjOWE5M2RiOGQ3NWZiNzlmOWI2ODZjMSI6IjlmZmM2MTg5M2EyOTNhODY0MDA4ZmRkNTZkMzI5MjYwMGQ5ZTJlYzhhMWVhOGYzNGFjNTkzMWU5Njg5MDVhMjMiOiI0ZmYzYTM5N2RmZGFlMDkxMjAzMmEzMDJhNWU3YTA3ZGNlY2E4ZDkwMTNhMjE1NDU2ODkzMTliN2MwMjRjZDA3IjoiM2MyNThlYmYyMjAzZmNhM2IzMjJhZDFiMDE2ZTIxYzdmNWMxNDg0MjVmODFlNGZiMGEwZTQ2MmRjZTlkZmE1NjljMzdhMDA2NTI3NzY4Mjk3YTViNjg0NjFiMDg5MTI2NDJhMzQxYjg4Yzg1NTk3ZTMwZTc1NjEyMDY4ODYwOThjNGUyZDg2MWYxMTUxM2YwZmZkYmJjNzhkM2EyZGQ2MGMxMDVhYmJiMzNjNWUwNWFlMjcwODFiNjkwZmI4YjM2MTA5MTdhYTliZjFhNGFkNzQ0ODFiNWZmODMzNGYxNGU1YWQ2YTZhMWViMjI1OTQ3NjA3ODA3NmZiN2UzYTk5MiIKIAogSE1BQ19EUkJHIE5JU1QgQ0FWUyAxNC4zIE5vIFJlc2VlZCAoU0hBLTI1NiwyNTYrMTI4LDI1NiwyNTYpICMxMAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIGhtYWNfZHJiZ19ub19yZXNlZWQ6TUJFRFRMU19NRF9TSEEyNTY6IjM2YTUyNjdlZWViNWExYTdkNDZkZTBmOGY5MjgxZjczY2Q5NjExZjAxMTk4ZmRhYTc4YzUzMTUyMDVlNWExNzdiNjZiNTMzNzk3MGRmMzYyMTkzMjFiYWRhY2M2MjRlYiI6ImMyYTdiMTY0OTQ5ZGExMDJiZWNlNDRhNDIzMTk3NjgyZmY5NzYyN2QxZmU5NjU0MjY2Yjg1MjdmNjRlNWIzODYiOiJhOTc3ZTJkODYzN2IwMTljNzQwNjNkMTYzYmIyNTM4N2RjNTZmNGViNDBlNTAyY2VmYzVhZTZhZDI2YTZhYmRjIjoiYzVjOTgxOTU1N2IxZTdkOGE4NmZhOGM2MGJlNDI5OTNlZGMzZWY1MzljMTNkOWE1MWZiNjRiMGRlMDZlMTQ1ZSI6ImI0NzE3MTFhNGZjN2FiNzI0N2U2NWQyYzJmZTQ5YTUwMTY5MTg3MTg3Yjc5NzhjZDJmZGIwZjgzMThiZTNlYzU1ZmM2OGVkNDU3N2FkOWI0MmNiYjU3MTAwYjVkMzVhYzg2YzI0NGM0YzkzYTViMjhjMWExMWMyZGZlOTA1ZDYwOGVjNzgwNGRlYzViYjE1Y2Y4ZDc5Njk1NTM0ZDVlMTNhNmE3ZTE4YTg4N2VjOWNmMTg0ZGEwY2JiYzYyNjdmM2E5NTJhNzY5NDAzYmFmY2RiYjU1OTQwMWJlMGQ4YjMzMDBlYTcyNThiNDAyNmZjODkyMTc1ZWZkNTViYTFhNjciCiAKIEhNQUNfRFJCRyBOSVNUIENBVlMgMTQuMyBObyBSZXNlZWQgKFNIQS0yNTYsMjU2KzEyOCwyNTYsMjU2KSAjMTEKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBobWFjX2RyYmdfbm9fcmVzZWVkOk1CRURUTFNfTURfU0hBMjU2OiJhNzZiMDM2NmRmODllNDA3M2E2YjZiOWMwNGRhMWQ2ODE3Y2UyNmYxYzQ4MjVjYWQ0MDk3YmRmNGQ3Yjk0NDVlNzczZDNjYzMyOTAxNzY3NzM4NDc4NjliZTUyOGQxYTQiOiIxYmZkM2JjZmI5Mjg3YTVhZDA1NWQxYjJiODYxNWZhODFjOTRhYzI0YmMxYzIxOWEwZjhkZTU4Nzg5ZTA0MDRhIjoiZWRkODc5ZmE1NmYyMWQ5MzAyOWRhODc1YjY4M2NlNTBmNmZkYzRjMGRhNDFkYTA1MWQwMDBlZWQyYWZlZmVmYSI6ImY1MjhmZmQyOTE2MDAzOTI2MDEzM2VkOTY1NDU4OWNlNjBlMzllN2Y2NjdjMzRmODJjZGE2NWRkY2Y1ZmZmMTQiOiIzOWQxZmY4ODQ4ZTc0ZGQyY2RjNmI4MThhZDY5ODIzODc4MDYyMTE2ZmRmMTY3OTk0MmY4OTJjN2UxOTFiZTFjNGI2ZWEyNjhlY2RmZjAwMWIyMmFmMGQ1MTBmMzBjMmMyNWI5MGZjMzQ5MjdmNDZlM2Y0NWQzNmIwZTE4NDhiM2E1ZDU0YzM2YzdjNjVlZTcyODdkMzI1ZGZiYjUxYjU2YTQzOGZlYjY2NTBjZTEzZGY4OGJmMDZiODdhYzRhMzVkMmExOTllYTg4ODYyOWZiMGQ4M2Y4MmYwZWExNjBkYzc5ZWQyMjBkOGVmMTk1YjllODBjNTQyZjYwYzJkMzIwIgogCiBITUFDX0RSQkcgTklTVCBDQVZTIDE0LjMgTm8gUmVzZWVkIChTSEEtMjU2LDI1NisxMjgsMjU2LDI1NikgIzEyCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NgogaG1hY19kcmJnX25vX3Jlc2VlZDpNQkVEVExTX01EX1NIQTI1NjoiNDY1NzFlMWRmNDNlNWUxNDEyMzVlMmE5ZWM4NWJiMGZhZjFkYzA1NjYwMzFlMTRkNDFhMmZiZDAzMTU2NTNlY2I2MGVmNmEzMzQ3OTY3NTE5YWFiZWFmNzQ4ZTRlOTkxIjoiNzU5ZmQ4NTkzZTM2ODhiMjNjNGEwMDNiNjU1MzExNzcwZDY3MDc4OTg3ODU3MGViM2IxNTVhOGU2YzJkOGM0NSI6IjAzMzEyODQ2MGI0NDllMWFjY2IwZTljNTQ1MDg3NTlkZGMyNTM4YmM2NGI1MWU2Mjc3NTUzZjBjNjBhMDI3MjMiOiJhNWU0YTcxNzI0MGJkZWFjMThhMGMwZTIzMWExMWRjMDRhNDdkNzU1MGYzNDJmYTlhN2E1ZmYzMzRlYjkzMjdkIjoiOWQyMjJkZjFkNTMwZWE3ZjhmMjI5N2EwYzc5ZDYzN2RhNTcwYjQ4MDQyZWNkZGRlZDc1OTU2YmJhMGYwZTcwYjI3MWZmYTNjOWE1M2JhZGE2ZWUxYjhhNDIwM2MyMmJmZGU4MmE1ZTJlYjFiMTUwZjU0YzY0ODM0NTg1Njk0MjJjMWEzNGE4OTk3ZDQyY2MwOTc1MDE2N2E3OGJmNTJhMGJkMTU4Mzk3YWY5ZjgzY2FhYmU2ODkxODVjMDk5YmYwYTlhNDg1M2RkM2NmOGI4ZTg5ZWZlYmI2YTI3ZGJhODczZTY1ZTk5Mjc3NDFiMjI5NjhmMjg3NTc4OWI0NGUwMSIKIAogSE1BQ19EUkJHIE5JU1QgQ0FWUyAxNC4zIE5vIFJlc2VlZCAoU0hBLTI1NiwyNTYrMTI4LDI1NiwyNTYpICMxMwotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIGhtYWNfZHJiZ19ub19yZXNlZWQ6TUJFRFRMU19NRF9TSEEyNTY6ImQ2Mzk4MGU2M2JiZTRhYzA4ZDJhYzU2NDZiZjA4NWI4MmM3NTk5NWUzZmRmYzIzYmI5Y2M3MzRjZDg1Y2E3ZDJkMzNlZDFkY2FlMTNmYjYzNGJhMDgyNzJkNjY5NzU5MCI6ImFjZDBkYTA3MDA3MmE1MzQwYzRmNWY0Mzk1NTY4ZTFhMzYzNzRlMDc0MTk2YWU4N2YzNjkyZWU0MDQ4N2UxZGYiOiJmNTY3Njc3YjVlMTJlMjZmMzU0NGJlM2RhOTMxNGM4OGZjNDc1YmY4NDgwNGE4OWE1MWYxMmIxOTEzOTJjMDJiIjoiYzAxY2M3ODczZTkzYzg2ZTJiZmI4ZmM5ODRjZmMyZWFiNWNjNThlZWVmMDE4ZmVkYjVjYmE1YWVkZDM4NjE1NiI6ImIxMzM0NDZmNjMzYmNiNDA3MjRiYmY5ZmExODdjMzlhNDRiOWMwOTRhMGEwZDQwZTk4OTc3ZTU0NjZkYzJjOWFkZjYyYTVmNDU1MWVlYjY0MDZhMTQ2NThkZThhMGVkNzQ4N2MzYmY2Mjc3ZTgxMTEwMTI4NGE5NDE3NDVjZTE2MTc2YWNjODc1ZjE0MzVlMTQxNjE3NzJmYTg0NjA5ZTgxMjNjNTNkZDAzY2JiODY4MDMwODM1YzBkMTFkOGQ2YWEwNGExYjZmOTA4MjQ4YjAyODk5NzczN2Y1NDczNWVjNGVkN2E4MWZjODY4MTk5ZmZiNjFhNzc5ZDkzNDAzMzQiCiAKIEhNQUNfRFJCRyBOSVNUIENBVlMgMTQuMyBObyBSZXNlZWQgKFNIQS0yNTYsMjU2KzEyOCwyNTYsMjU2KSAjMTQKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBobWFjX2RyYmdfbm9fcmVzZWVkOk1CRURUTFNfTURfU0hBMjU2OiIzZDk5ZjliN2FjM2EyZmJlOWNmMTVkOTYwYmY0MWY1NTg4ZmM0ZGIxZTBkMmE1YzljMGZlOTA1OWYwMzU5M2ZiNDExZjUwNGJiNjNhOWIzYWZhN2ZmYTEzNTdiYjQ4YmUiOiIwYmI1ZWJkNTU5ODFhMjViYTY5MTY0ZGE0OWZhOTJmMjg3MWZkM2ZjNjVlYjMwZDBmMGQwYjhkNzk4YTRmOGYyIjoiMjg4ZTk0OGE1NTEyODRlYjNjYjIzZTI2Mjk5OTU1YzJmYjhmMDYzYzEzMmE5MjY4M2MxNjE1ZWNhZWQ4MGYzMCI6ImQ5NzViMjJmNzllMzRhY2Y1ZGIyNWEyYTE2N2VmNjBhMTA2ODJkZDk5NjRlMTU1MzNkNzVmN2ZhOWVmYzVkY2IiOiJlZThkNzA3ZWVhOWJjNzA4MGQ1ODc2OGM4YzY0YTk5MTYwNmJiODA4NjAwY2FmYWI4MzRkYjhiYzg4NGY4NjY5NDFiNGE3ZWI4ZDAzMzRkODc2YzBmMTE1MWJjY2M3Y2U4OTcwNTkzZGFkMGMxODA5MDc1Y2U2ZGJjYTU0YzRkNDY2NzIyNzMzMWVlYWM5N2Y4M2NjYjc2OTAxNzYyZjE1M2M1ZTg1NjJhOGNjZjEyYzhhMWYyZjQ4MGVjNmYxOTc1YWMwOTdhNDk3NzAyMTkxMDdkNGVkZWE1NGZiNWVlMjNhODQwMzg3NDkyOWQwNzNkN2VmMDUyNmE2NDcwMTFhIgogCiBITUFDX0RSQkcgTklTVCBDQVZTIDE0LjMgTm8gUmVzZWVkIChTSEEtMzg0LDI1NisxMjgsMCwwKSAjMAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEzODQKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8zODQKIGhtYWNfZHJiZ19ub19yZXNlZWQ6TUJFRFRMU19NRF9TSEEzODQ6ImExZGMyZGZlZGE0ZjNhMTEyNGUwZTc1ZWJmYmU1Zjk4Y2FjMTEwMTgyMjFkZGEzZmRjZjhmOTEyNWQ2ODQ0N2FiYWU1ZWEyNzE2NjU0MDUxNTI2OGE0OTNhOTZiNTE4NyI6IiI6IiI6IiI6IjIyODI5M2U1OWIxZTQ1NDVhNGZmOWYyMzI2MTZmYzUxMDhhMTEyOGRlYmQwZjdjMjBhY2U4MzdjYTEwNWNiZjI0YzBkYWMxZjk4NDdkYWZkMGQwNTAwNzIxZmZhZDNjNjg0YTk5MmQxMTBhNTQ5YTI2NGQxNGE4OTExYzUwYmU4Y2Q2YTdlOGZhYzc4M2FkOTViMjRmNjRmZDhjYzRjOGI2NDllYWMyYjE1YjM2M2UzMGRmNzk1NDFhNmI4YTFjYWFjMjM4OTQ5YjQ2NjQzNjk0Yzg1ZTFkNWZjYmNkOWFhYWU2MjYwYWNlZTY2MGI4YTc5YmVhNDhlMDc5Y2ViNmE1ZWFmNDk5M2E4MmMzZjFiNzU4ZDdjNTNlMzA5NGVlYWM2M2RjMjU1YmU2ZGNkY2MyYjUxZTVjYTQ1ZDJiMjA2ODRhNWE4ZmE1ODA2Yjk2Zjg0NjFlYmY1MWJjNTE1YTdkZDhjNTQ3NWMwZTcwZjJmZDBmYWY3ODY5YTk5YWI2YyIKIAogSE1BQ19EUkJHIE5JU1QgQ0FWUyAxNC4zIE5vIFJlc2VlZCAoU0hBLTM4NCwyNTYrMTI4LDAsMCkgIzEKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMzg0CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMzg0CiBobWFjX2RyYmdfbm9fcmVzZWVkOk1CRURUTFNfTURfU0hBMzg0OiIwNjdmYTBlMjVkNzFlYTM5MjY3MWMyNGYzOGVmNzgyYWIzNTg3YTdiM2M3N2VhNzU2ZjdiZDQ5NmI0NDViN2EzY2U2YWNjNzIyNzY4Y2EwZTAzNzg0YjIyMTdiYzYwZTQiOiIiOiIiOiIiOiIxNmVhYTQ5NTEwZmZhZDhjYzIxZWMzMjg1ODY0MGEwZDZmMzRjYjAzZTg2NDkwMjJhYTVjM2Y1NjZiNDRlOGFjZTdjM2IwNTZjZjJhNDRiMjQyZGUwOWFlMjFkYmE0Mjc1NDE4OTMzNjExODc1ODQxYjRmMDk0NGE4MjcyODQ4YzVkYzFhYWQ2ODU5MzVlMTI1MTFkNWVlMjdlOTE2MmQ0YmI5NjhhZmFiNTNjNGIzMzgyNjljMWM3N2RhOWQ3ODYxNzkxMWVkNDM5MGNiMjBlODhiZjMwYjc0ZmRhNjZmZTA1ZGY1NTM3YTc1OTA2MWQzZmZkOTIzMWQ4MTFlOGIzNDIxM2YyMmFiMGIwZGRhZmZmNzc0OWE0MDI0M2E5MDFjMzEwNzc2ZTA5ZDJlNTI5ODA2ZDRkNmYwNjU1MTc4OTUzYzE2NzA3NTE5YzNjMTliOWFhYTBkMDlmYjY3NmE5ZDIzNTI1YzhiYzM4ODA1M2JmY2NmYmMzNjhlM2ViMDQiCiAKIEhNQUNfRFJCRyBOSVNUIENBVlMgMTQuMyBObyBSZXNlZWQgKFNIQS0zODQsMjU2KzEyOCwwLDApICMyCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTM4NAorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzM4NAogaG1hY19kcmJnX25vX3Jlc2VlZDpNQkVEVExTX01EX1NIQTM4NDoiOWY3NjUwM2U4NDcyNzI5N2JjNzA1NmM3YWY5MTdhMWM5OGJhYTcyNTI5NTQ1N2RiNGZjZjU0ZWQwOWFmN2YxNWYzOWM0NjE0MmI4NWE2N2I0YjMyMzU5NGI3ZTk3YmRlIjoiIjoiIjoiIjoiN2Q2YThiYzVhN2YwNTdjZWVkNjEwOWJmYWMyNDg2ZjgwZjgxMzczYjZiMzFkMDYyYWExZmFkNmQ5ZWRhNTg3NDg2N2I5ZWYwMDdiYTVhOTJiYThmM2ZjYTYyNGJmZDlmN2VlNTc3MGJiZWIwMzkxMzk0ZmVmNzgzYzE2YTdmMDAzYzA2ZTU0NjliYWIwMzQ0NWJiMjhhMjExMWRlZjQxNWQxNjJlNDA0NzJkM2U1YWU2MjhjNWM2MzE3MGJiMTlmNzQxYzc5YTUzMzFjODgzYzEyYmNhNDI5ZjUxOGJmNzFiMTQ2ODNhMDcxYjZjNmUxZTU1ZDhjN2EwZjM5NDJiYzEyYTEwMzU1NmM0OWNhMTczZTQ5OGIzYjRhMTUwMjcxNDVjZGFlYjE5NWJjOGE3ZTFhYTgyZWJkZjZlY2Q1MTY0ODFhNGQyMWY0MDBkMGQ3MWI1ODk0NTQ1ODg4ZmVlOGJlZWQ4MGQzMjUxNjQ3OTQ3ZjVhYmM0NzM1YjQ3ZmQwIgogCiBITUFDX0RSQkcgTklTVCBDQVZTIDE0LjMgTm8gUmVzZWVkIChTSEEtMzg0LDI1NisxMjgsMCwwKSAjMwotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEzODQKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8zODQKIGhtYWNfZHJiZ19ub19yZXNlZWQ6TUJFRFRMU19NRF9TSEEzODQ6ImUyNDJlNWIzYjQ5ZDg3Mjg5ZmUwMjg0MGRjNzQyYTJhNmNkOTQ5MGZlMmNjZTU4MTgzM2RkZGIxZWRjMGQxMDNmOTg3ZjVkZTVjNjhjZDM0NWM4MWIwMzJlYTU1ZjM2ZCI6IiI6IiI6IiI6IjNhODU4MzQ1ZGZhZjAwZGVmZGY2YzgzMTE0Yjc2MGVmNTNiMTMxZmJmMTRiY2M0MDUyY2Q5NDg4MjBlZWU3OGExMWNiYmQ4ZjRiYWEzMDhlMWQxODdmY2VkNzRjYmYwMTljMTA4MGQ5ZWZmZmQ5M2ZkYTA3ZGYwNTE0MzM4NzZkOTkwMGMxZjlhZDM2ZWExY2IwNDk4OWJiMGM1NWZkNmQwMWU0NjkyM2YzYmM4ODg3YWMwMGViZDQ3MTAyMTIxMTQxNjUzNTUzNjFlMjQwYjA0MjMyZGY1NWE4MWFkZDNmYjM2M2YwZDRjOWM1ZTNkMzEzYmM3Y2FhYzdkNDlkY2E4NTE3Y2VkYWNmNTcxZmRlOTY4NmFlOTNkOTAxZmI5YjE3MDk3YTYzOGJiOTg5OWNmYWIwZWJjOWQxZjhhNDNjMmVlZDdjOWYzMjZhNzExZDBmNWI5Y2ZjNTE2NmM5YjU2MTgyNGNiZDc3NzVlYzYwMWNhNzEyYjNkZGFhYTA1YiIKIAogSE1BQ19EUkJHIE5JU1QgQ0FWUyAxNC4zIE5vIFJlc2VlZCAoU0hBLTM4NCwyNTYrMTI4LDAsMCkgIzQKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMzg0CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMzg0CiBobWFjX2RyYmdfbm9fcmVzZWVkOk1CRURUTFNfTURfU0hBMzg0OiI0MmNjMTczNjVmNWVhNWZkMjJiZGM0YWRlNzE1ZTI5MzA2NGQ2Nzk0ZDgyYmVkNWI3N2M0YzEwN2E3M2RlMWY3NmQ3NTllNGIxOTFiYTAxZTBlZDVkZWE3ODhhYjAxOGQiOiIiOiIiOiIiOiJkZTA2ZGVlOGM4ZmU0NTNhYTAzYWMyNTQ2YzM5ZjVjZGExMjQxMjg2NGQ1MmVkNWNiZDBkNDkwNWRkMjI2NzQ2ZDUwZDFhZjlmZDNlMWQ5MGRlMGYxNjI5NWNiN2Y2ZjRkMzI3MWVmMDA1NjQ3MDlkZjRiMDVlYjlmOGFkYzBmOGU4NTIyYjA1YjlmMzJjMzdkODUyNjgxMzg5OGI5ZjcxZGI1N2ZjODMyOGUzYjc5MTQ0NDgyZThhYTU1YzgzOTM0ZDZlMDk3ZTQzZWM2ZDBiYzMyZWRhZjhjMGU2Y2E0NDliMmU4Mzg4YjMyYjI4NmUyZDRmODUyNjZiMDYwNWZiOTlkMWE2NDc1NjVjOTVmZjc4NTdiY2FiNzM2NjJiNzIxODcxOTE4OWQ3OTI1MTRlZGNhMmIxZDBjZGNkOWI2MzQ3ZTEzMmVmNGMzMjNkYTI0YWQ1YWZkNWVkNmY5NmQyN2IwZjg3OTI4OGU5NjJmYTBiYWNhM2Q1YjcyYjVjNzAiCiAKIEhNQUNfRFJCRyBOSVNUIENBVlMgMTQuMyBObyBSZXNlZWQgKFNIQS0zODQsMjU2KzEyOCwwLDApICM1Ci1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTM4NAorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzM4NAogaG1hY19kcmJnX25vX3Jlc2VlZDpNQkVEVExTX01EX1NIQTM4NDoiZDU3MDI0YTIzMGI4MjViMjQxYzIwNmY3YjU1ZTIxMTQ0NjFlY2M5Yjc1MzUzZjEyYWMxZDlhZDdlNzg3MTQ4MWZlNDAxYzMyMGY3NGFmZGIwN2Y1NjZlYTUwMGIwNjI4IjoiIjoiIjoiIjoiZTg5MzBiZDU1YTBhNWE2ZDgzYTliM2IyY2RlNzA4NWMyYWU0NjdlYTRhMmU2NWNhMzAzNjk3ZDQ5MmNhODc4YmNiODAxNzY5ZWIxYjdlYzU2NDU4NmVjOGIzNmQzNTBlMTkyYzRmYmYwM2E5OGJlMGRkZWNmNTZkNDY1OTE0YmEzNTNlZDc3MzRkMTlhNjgwZmM0NTkzZDkyMzRjNGFjOGMyM2I3ZGZhMWUyNmIwMTNmNTkwY2NhNDNiOWZlZjEyNjEyMWI0ODQyNDk2YjExZGVhM2VmNWU5ODFjYjM1NzM0MWYwM2Y5MmE1NDZhNjI2MDkyMzZkZWQ2ZjdkODE0NDU2YWNjMDU5NmQ1NTVjYmRjMDJjYmQ0N2RhZTJjYWExODk3ODMxZWE0NjQyMjU5MjJjNjYwMGE4YmI5MmU3MTE2NTMwNjdmODNiMjFlMWRmMDU0MzA5ODU4OTQ4YzExYTEzOTk3MzZmYzgzOTFjNWIwZmMzNTYyOWFiZmE1NjUwIgogCiBITUFDX0RSQkcgTklTVCBDQVZTIDE0LjMgTm8gUmVzZWVkIChTSEEtMzg0LDI1NisxMjgsMCwwKSAjNgotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEzODQKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8zODQKIGhtYWNfZHJiZ19ub19yZXNlZWQ6TUJFRFRMU19NRF9TSEEzODQ6IjA1OWRlZDc5MTI1YjJkNTZkOWQ1MmJjYzk1MGJmNjA4ZDFhMjM3MzUxNWRhZmNjODFlZmI2NTg4MDA1YTU3MjJkOGY1ZjQxODFmOWYyYTMxNmM5M2ZkZmJhZGY1MGU3NSI6IiI6IiI6IiI6ImRiNjVkMjAwMDYzMmMzZDcwMDljMjI3ZTk5YzIxMGU1ODk3ZjRkN2VkYWU2MDhhMjQyYjVhNGYxNzcwODYxM2Y4YzE5YTRkZDY1ZDZiYzNjYTU3NzM3YzliZmRjY2EwNjgyODhlZWE0OTQ0MGFmNzY4ZDFmYzk3N2MzMmIwNjViYjcxYWEzZDhjNGQ3N2M5ZThlOGE2MTY2ZjMzMmEyNDc5NzhhNmM0MWVkMjUzYTFiNjhhZDkzNGEzNDE2YjQwMzQ0YTY4MWRlMjg2MzhmMDBiMGEwZmZiNzU1MTRjM2Y2MjI1MzM3MmY4MDk5MDYwNDNkZTM1ZTQ4MDViOGU5NjJlNWViOTU3ZjA0MjEyODM1ZjgwMmIyYzBiM2U3NmM3Y2YyMzljODlhZGYzMTkwOWNkNjIyNGQ1NDJkOTI5ZjliMjBhMTBhYjk5YTdjNjMxZTRlNjE4OGZlMmJhOGY1NTJjOWM4OGZkYWRiNTI4Njc5ZmU5NTA0MzE2NDFiOGYzNyIKIAogSE1BQ19EUkJHIE5JU1QgQ0FWUyAxNC4zIE5vIFJlc2VlZCAoU0hBLTM4NCwyNTYrMTI4LDAsMCkgIzcKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMzg0CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMzg0CiBobWFjX2RyYmdfbm9fcmVzZWVkOk1CRURUTFNfTURfU0hBMzg0OiI0NjMwNDA2YjQ3NWIxMjYzYjYwNzhlOTNlNWQ0MjgyMjA1OTU4ZDk0ZWI5N2QxZTY2YjQyOWZiNjllYzlmY2NkMGRkOTk4MmMzMzhkZjkzNWU5MjljNDJmYWI2NmFkYWYiOiIiOiIiOiIiOiI1ZDgwZWMwNzJmNTUwOTgxYmNhYWM2Nzg3YzA0ODhjYzQ3MDQwNjI0OWVjODBmNGJmMTEwNTA2MzAyMjdmOGI1YWM2YjNiMzY5ZGIyMzdkN2MyNGEwOTgwZGZmZThkM2FiZDliNjRmZDRlZmE0OTIzNDliZDRlYjY5MDJlZGI5NDU1MzU0NjExMDIyN2Q3ZGU1YTg2NGRkYWU4YjlmZWQ4ZGU5ZjBkZjljNTk2ZTM5ZGU5MDNmZGEzMjNlZTZmNzg4ODMxNDUyZWI5ZTQ5YzVlZWYzZTA1OGI1YmY4NGY2MWY3MzVhOTNlMDQyYmI5ZTQ1OGRmNmIyNWY0MmE2ZWI4ZmIwM2Q0MzdjZmFiNzU3ZmFiNDk5MGM3MjFhNzU3ZWFhNWU5MDQ4MjA4YWJiY2NlNmU1MmYxNzdiMjBkY2Y1MmYxZmE1NTFhOTJiNjhiY2RiMDE2ODA4NTViOGY3OTEzMTI2NjM3OGNkMWYwYzJhNDE0MWM5Njc1ZjAxZDFlNDgiCiAKIEhNQUNfRFJCRyBOSVNUIENBVlMgMTQuMyBObyBSZXNlZWQgKFNIQS0zODQsMjU2KzEyOCwwLDApICM4Ci1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTM4NAorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzM4NAogaG1hY19kcmJnX25vX3Jlc2VlZDpNQkVEVExTX01EX1NIQTM4NDoiNmVhOWM2Zjc4NGYxMmE5NzA3Y2VhYzhhNzE2MmVlNTM4MWRjODkzZWUxMzlmOGY0YjRkOTNkYjI2NjgyOWRiNGFlOTJiYzUyZmY4NjBkOGVjZGM5ZmMxNmJkMDcwMTMwIjoiIjoiIjoiIjoiMjM0MzY2ZjE1OTFjZmUyNDQ5NTZmOTQ5NmNkZjQ0NmUwZDM5MGJhNjRiZWFhMDY2OTQ1YjFiNGM1MzM3ZGRlZDI2MTlkZDJiZDAxMzNhNWQ2MTJiYWI3YzI1MWFiNzllMzk1MWNiMTM0ODk0YzQyMjU1M2ZjOGNjN2IzY2NiMjljMjBhZGJmNTJkZGEzNWFmNzc5MTQyZDdlZmM3MzUzNDJkYjJlZTA2NzY0OWZkYTI1ZjNlOGE3NGY4ZTRmNjYyMGNmNWExN2NiOTQzNjAyNjA5Y2FmYjg1YmRmNDgyODczZWZhNGM3NDkyOGNjMGQ2OTQ0NGI3MmFhNmJjNzI2OTRhM2EyMWM2YTcyMWFhNGUwZmNjYWIwYTk4YWVmMzc1YTM3YTNlOGExNWRjY2FkMTNiNmQ3MGIzNDgzNTgxMDA0NjQyZDg3OTgwNGFhMDBjYmEyMDdiNTFhZmZjYTQzNDkwYmI5OGY2Nzk1MzI2NTU3NDM2NmVjMzgyOWU2N2FhIgogCiBITUFDX0RSQkcgTklTVCBDQVZTIDE0LjMgTm8gUmVzZWVkIChTSEEtMzg0LDI1NisxMjgsMCwwKSAjOQotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEzODQKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8zODQKIGhtYWNfZHJiZ19ub19yZXNlZWQ6TUJFRFRMU19NRF9TSEEzODQ6IjVjMTMwNTZiZTkyYTdmNzEyMzZmY2ZlZjQ2MDI5OGFjYzg1OTVkZDQ3NDMxMDcyN2Y1Y2NiOWE3YWNiMjI1NGFjNzIyNmY4NjM0OWUyMGUyYWNhNzM3MDY4YWIwZjJjZSI6IiI6IiI6IiI6IjE2ZDQxNWVkZGVmYTRkYzI5NWE2NGFkY2JiY2I4YzZmZThjOGYxMjNjNmIwOWRjMDhhNTZkNzIzY2ZmNTk3OGNjMTIwZmQwYTY4YTJmNGMyMDJjMjIwZGIzNzJkMzEyOGVmNTIzODVkNTc4NmMxMmRmYzZlNjBlY2ZjMzQ2MWEwOWZhODA0NTNlMmIxYjYzNjVlYWViNGRmNjAyZDE5MmFhY2IyNWFiNmI0YTU5Njg5ZDRiZjhkMWM0YzQyYTMyNzc5ZjYyYjA2YmFjYTY0NjFmMTU0Y2Y0MDkwMWY1Nzg3YzFhYTJiZjY3Y2JmZTc1NDZlZjViMmJkZmYyMDc5MGQ4YzcyZDA3N2Q0OGM1OWM5MmQxYWY5MGE5MGNjZmNkZjY0M2RkOWQ2Y2VlMGIxZmFmNWYyZjM1Y2ZkMDFkMjA3N2NlZDVlMmQwMTNlYzFlMDkzMzZkZmFiOWQ5ZTUxYmE5YTNhMjgzNzMwNjIxM2JjYTJkNzlhYmY4ZGMzMjgyYyIKIAogSE1BQ19EUkJHIE5JU1QgQ0FWUyAxNC4zIE5vIFJlc2VlZCAoU0hBLTM4NCwyNTYrMTI4LDAsMCkgIzEwCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTM4NAorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzM4NAogaG1hY19kcmJnX25vX3Jlc2VlZDpNQkVEVExTX01EX1NIQTM4NDoiMzhmMDhhMDk5ZmMyZDQwNWMzMmQxZTBmODY3ZTU0NTBkNWVlMGQ1Mzc4M2MzMWRlOWRkZWFlNDZkOTYyOTk5ZGEwMWYxM2E0MzMyMGM3MTU2MTJjZWRiOTIwY2YxMmViIjoiIjoiIjoiIjoiMDc5Y2U3YTViNTQwY2FlOTZjMjg4M2U5NWFjZGUzMDM5MDQ4YTZjNDVhMmQyNTljYzY0ODYzOWU3MjA1MzkyZDkxZmEzZWUwODBlNjE1ZjFlMDc0MWEwZTUzNmM5ZTA1ODQ0NjUxYjkzNDYxYmZjNTQ3ZmI0NTJmZWM2MWY4NTNlMWJkNmUwOGVhYmQwY2YxYzVmODRmODVlY2E5ZDQyYjUzZDFlNWJhZTUxYmU1ZmQzNTE4OWU0ZjFjMDJiODQzYzYzNjFmY2NmNGNhNjY0OGJmMzBhMjNjY2I4ZWJjMTZmY2YxNTg3NDZlYjM5Y2Q5NmYxOWQ0NjcwN2MwMDFlMTFjNGUwZThjY2JjODlmZWM2NmM2OWZjOTI4NDNiNmJiMmVlMWNjNzU5NWI2NWJhODljY2FjY2Q2MTMwYTg0MTdmYWY3MDVlOGUyMDNlOTBlZTY0YWU5NzBjNDA5Mzg5YjVjZDBjYTgwYTRlNDBiNjQyNjg5NzQxNjkxYjIwNjIxIgogCiBITUFDX0RSQkcgTklTVCBDQVZTIDE0LjMgTm8gUmVzZWVkIChTSEEtMzg0LDI1NisxMjgsMCwwKSAjMTEKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMzg0CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMzg0CiBobWFjX2RyYmdfbm9fcmVzZWVkOk1CRURUTFNfTURfU0hBMzg0OiIwODYzYzg2OGMzMjQ0MmExYTY0MDk1YTcxYWI2YWUyZjllNjFjMTE5YjU4ZGZhNGYzNGVmZDI2NTkzYmJiZjY4YmM0MDc5MDRjNDMzMDA0NTJkZDRlNjFkZjQ3ZmE5OGYiOiIiOiIiOiIiOiI1ODUzMzQ4MjhjZjUzMTgyOGZjNzEyN2ZlZTBjOTI2Zjg1YjhlNzFlODUyMmVhOTIxMjk2ZGM2MmI4M2EwOWEwMDM5N2NkNDVlMDY2NGQwZjI2ZmEyNGVkZDNlM2Q4ZWNlZjhmZGQ3N2FiMjI0MzFkNDA2NmYwZWZhZjM4ODJjOTdmMTc5YTcwNjBlZmU5ZThjYmE1ZDgxNDViZWJkNTAyYzBlMDllZTc5MTIzMWQ1Mzk5ODNjMDg4NjBkNzc4M2VkYjU4NDQwZDE5M2VkODJiYzc3YzI3NzIzMzgxYTBkYTQ1YmIxZmMyYTYwOWY4YjczYjkwNDQ2ZTM5ODY5YTVhZjUwMzhhZmY2MDNiNDRkYjk3NzExMTM5MjdhNTI5N2ZkYzM0NTBlYWEyMjhlMzEzYWZlNDNjMzFiMGE5NWI0NzZjNWNhMzEyYjRmNTg5ZjgwOTc0OTQ4MTcyMmNlYTk5OTBjMDJiNjQ3OTc2YWE2YzZmMDJjZTFlNWU2ZWE2ZGYiCiAKIEhNQUNfRFJCRyBOSVNUIENBVlMgMTQuMyBObyBSZXNlZWQgKFNIQS0zODQsMjU2KzEyOCwwLDApICMxMgotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEzODQKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8zODQKIGhtYWNfZHJiZ19ub19yZXNlZWQ6TUJFRFRMU19NRF9TSEEzODQ6ImE0MWFkMjIzZTQxZTJiYjljMTMxZWM5NDVjYTMxMDYwMGFiMDBjNTFmNmU0ZmNkZGQ4MDNiZDlhYjliZThhZjU0ODMzNzM4Mzg4OTRkMzI3NDVhODFiYTlkNjk2Nzc1MSI6IiI6IiI6IiI6Ijk1Y2EzMWE3ZWVlYmRkMjM0OGNmMWQ0MzQxMWQyYzM1ZmFmZmRiY2FlZDQwNTJkNTBjZjkyZjBlOWQyZTc1NzY4NmI3MmQ2MzFhNTZjYTk4YjY4MjE1ZTcwMTRjZmVkOTQzYWJjMWUxMzQ0MWMxZDY2MGYxM2FkZjIxODhkMDk3NTE1NGUxYjQyYTU5MmE2MmE0M2I1N2Y4MmNjMjFhNDI4ODczYTkyZmRhODNhYmU0MjBlZmI1MjMzMTQwZTRkNmM3ODUyY2Y4MWU4NTk2MWZhNWM2MDZjNWYzM2UwNjA3N2Y0MTRiMGY4MTRjYmJlNTBjYzYwNmJmZmJkNDc0MzY0ZTYwODgyNWZkYWFmNWU3NGQ4NjI3OTU1MzliZTg2OTdlMmNlMDVkNzE0NDY4ODFlM2Y2NWJiNTRlZDk1ZTk0MTU4Njk4OGY2ZTBjMzRlMWJlZWY0MjY2OTZlOWRiZDlhMjE0MDEzZDgyNmE4Yzk5YTJhNjg2ZDg0MDJjNTgzZiIKIAogSE1BQ19EUkJHIE5JU1QgQ0FWUyAxNC4zIE5vIFJlc2VlZCAoU0hBLTM4NCwyNTYrMTI4LDAsMCkgIzEzCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTM4NAorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzM4NAogaG1hY19kcmJnX25vX3Jlc2VlZDpNQkVEVExTX01EX1NIQTM4NDoiNjJhMjZjMTMyN2MwZWJmOGI0MDY5MWZiNGM4ZjgxMmU4MWY1NDc0YjBjN2RiNzBhYTk0MjQxMTBmZWUzYTA1ZTQxYzBjZjJlODcyMTBlMzRkMGM2YmZmYzI2OWJmMmJhIjoiIjoiIjoiIjoiNmUyMGEwMGRmMWFmMzdlNmNjNTVlNTgwYmEyMTMzNTExMWViMzc1Mzk1MzQzNjE4ZGY3ZDYzMGI5ZGMyMzQ0OTZlMzk2NGNkNDVjNWRlMzRiZGE0NmEyODk2NGY2MTQ4NzA0YzMwOTI1ZmVlYWVjYWUwNTc0MDM4NDM0Y2QzM2MxZGQ5NDMyMDdhOGRiZGNkNzJkYzllY2I3NmEyNTcyOGIzYzJhOGFjMTNjMWRlM2ExMjZkN2Q0M2E0NmUxMmUwZDBjYTg5OTE0NjllNTgyYjc4ZWY2YWE2OTFiNWEwZTNlODVjYmE3ZDdhZWEzYzFlOGUwMzE2NzRlODVmNWFmMzY1NDZlYjJhMGEyOGQ0ZmZiYWEzMTZhOWE2Yzk0NGZjZTI5MWNjMGMyMzVlODQ5OTg4MmViNjJiMjJiNTQ4YWUwN2NmOTQzMDMyOWUwMDlmNDQ0M2NiOTRmN2ExNGU4NjYxMTY2YjBkNjgxZGNlYzg2NzIwNWFiZWQ0ODE0NWU5IgogCiBITUFDX0RSQkcgTklTVCBDQVZTIDE0LjMgTm8gUmVzZWVkIChTSEEtMzg0LDI1NisxMjgsMCwwKSAjMTQKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMzg0CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMzg0CiBobWFjX2RyYmdfbm9fcmVzZWVkOk1CRURUTFNfTURfU0hBMzg0OiJmZDU0Y2Y3N2VkMzUwMjJhM2ZkMGRlYzg4ZTU4YTIwN2M4YzA2OTI1MDA2NjQ4MTM4OGYxMjg0MWQzOGFkOTg1OTFmOWMwMmExZDIwNWNkYmNkZjRkOTMwNTRmZGU1ZjUiOiIiOiIiOiIiOiJmNmQ1YmY1OTRmNDRhMWM3Yzk5NTRhZTQ5OGZlOTkzZjY3ZjRlNjdlZjRlMzQ5NTA5NzE5YjdmZDU5NzMxMWYyYzEyMzg4OTIwM2Q5MGYxNDdhMjQyY2ZhODYzYzY5MWRjNzRjZmU3MDI3ZGUyNTg2MGM2N2Q4ZWNkMDZiY2QyMmRmZWMzNGY2YjZjODM4ZTVhYWIzNGQ4OTYyNDM3OGZiNTU5OGI5ZjMwYWRkMmUxMGJkYzQzOWRjYjE1MzU4NzhjZWM5MGE3Y2Y3MjUxNjc1Y2NmYjllZTM3OTMyYjFhMDdjZDliNTIzYzA3ZWZmNDVhNWUxNGQ4ODhiZTgzMGM1YWIwNmRjZDUwMzIyNzhiZjk2MjdmZjIwZGJlYzMyMmU4NDAzOGJhYzNiNDYyMjk0MjVlOTU0MjgzYzRlMDYxMzgzZmZlOWIwNTU4YzU5YjFlY2UyYTE2N2E0ZWUyN2RkNTlhZmVlYjE2YjM4ZmJkYjNjNDE1ZjM0YjFjODNhNzUiCiAKIEhNQUNfRFJCRyBOSVNUIENBVlMgMTQuMyBObyBSZXNlZWQgKFNIQS0zODQsMjU2KzEyOCwwLDI1NikgIzAKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMzg0CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMzg0CiBobWFjX2RyYmdfbm9fcmVzZWVkOk1CRURUTFNfTURfU0hBMzg0OiI1ZTkxOWQzNTMzNTc2NzE1NjZkMmM2YWI2ZTFhY2Q0NmY0N2QwYzg3OGZlMzYxMTRkN2ZlYTlmZWNiODhhM2EyN2VmY2E5ZTNkMWUxYjA5ZDdmMTY4MzJmM2FmNzUxNDEiOiIiOiI0NDJmMTdjYjNjYjE0ODJhMTk3MjliZmQ1OGY0NmY2ZWYxNjI4NTU1NDg5MmMwMWIwNzE4OTY4ZDZlMDExMDgyIjoiZjk1NTdjOTNlYjg0MWJmZDdiNWQ0YjcxZGE5MjhlZmNiZTNmNTVlMTg3MDQ5M2VmOTBkMTZlYjIzODM4MGQ2NSI6IjM2OTAyMTM0ZjE5ODljZmU3ZWI1MThhNTZjMDZhYWRhOTg5OTdkOWJhY2QwNGFlZTIxZjg3OWE1N2I1MTVjYTNiNWUwYzJkNWZlZDA1Y2ExYThiMDU0ZThjNDZiMzg5ZDlkOTE4NmZlYjBhYmU4ZTJlNjBiM2EyNjcyODFjYzViNGI3MzQxMTE2Y2VkMzVhMGUwN2JjMmIwMzMwYmJmZDhiMDdmMDcyNDhmYTZkOGZjNWM5ZGYxMzQ0NTMyNDE2MmJkZmEyMmE5MWJhNzE0NTNhYjEyM2M5MmY5MWM3MGI4YmQ1NDBiM2IxODBiMTFhYjQ1YWUyYzU5ZTU3YzdjNDNkYWI3NTc2NTk0OTU5YTk2ZWI1MDJkMTgyMjY3Yzg2NTc2YjE4NDZjY2VlMWE2OTRjYWJkZmI0MmUwYzgyMTQxOTJlZmI1MDI5MjZmYTNjMjdlZWQwMjBiN2NjODg2NmE1YWY5ZDgzOGE1N2U3OGJmN2FjZDIzMGUxZjRkODM2MSIKIAogSE1BQ19EUkJHIE5JU1QgQ0FWUyAxNC4zIE5vIFJlc2VlZCAoU0hBLTM4NCwyNTYrMTI4LDAsMjU2KSAjMQotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEzODQKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8zODQKIGhtYWNfZHJiZ19ub19yZXNlZWQ6TUJFRFRMU19NRF9TSEEzODQ6IjdhNWQxZWZjOWI3MDQzMDYwY2FiZDY3ZGU3ZmUyMjc0MGJjZDZhOGNlYjM1NWQ2OWYxMTg4MjlhMmIzYzkyMDA2YTU2MzNlNjEzZjg3NjljMTExNGIxODIyZmZiNTQwOCI6IiI6ImYyYWQ5NjJkOTkyNDM0NDY4NjgxYzY0NDU4NzYzOTkwMWZmNzRlMmJiZGQ4NzYxOTYxZWMzNGVkYzRhMGMzNmQiOiI3NWFhZTBkMWJjYTk0ODRjODlmYzRkZTNkMWIzNDI3NWVmMDY1Njc3NWYzZjhjOTZmMmJiYzUwNDAxYWFhNzE4IjoiNWNhMjFhZjRiMzk5ZGIzOGY4Yjc0YTQwNmFhY2U2OWY5OTQ2OTFmMjc2NWJiOWM0N2IyNDAwMDAxNTI3MzllMDU5YjE2M2NkMDA3ZGU1ZjI4YmJhMTdlNDg1ZmNmOWZmNmY0MWY3NmU5Mzk5ODUxMGUzMDIyODJjYmRiZGUwOWZlOGIxYTk2MTg3ZTU3YzlhM2RmOTRlMmU3NDhmMjAwMjY0NzZjYTY4MmRmYTg5MGI0NzhmN2EyMWY0OTI3Zjc0Zjk5YWVkZDlhZTc4MmJhMTBmY2RhMWRjMzRjMzFiNGY3ODQ3MjJlMDFjYzQ2Nzk3MzcyNzZmNTZkZjIzYzViZDhjNjk4NTc5N2I4M2MwY2NkZTJiNGM3YTY1YzY1Mjc0NWRlN2ZjOGEyMzVhZDdlZDBmNDU2ZjFlNzU2OGIyZGFkNDc1ZjBiYzQ2ZjAyYTdmMzVjMDVjZmVmOWQwZTJjNzczZmY4OTVlMjkxYTJjZmMyNDI0YjEwNjA5NmQ4ODY0IgogCiBITUFDX0RSQkcgTklTVCBDQVZTIDE0LjMgTm8gUmVzZWVkIChTSEEtMzg0LDI1NisxMjgsMCwyNTYpICMyCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTM4NAorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzM4NAogaG1hY19kcmJnX25vX3Jlc2VlZDpNQkVEVExTX01EX1NIQTM4NDoiNjExNTg2ZWU0MGNiM2NhNGE5MjM4Y2UxMTJhMjM3NDQ5YmJhNTQyMmFjOWIxOGVhNTM0ODA4NzUzMzRkOGZhMDI2ZGE5ZDk2YzRlODdmOTRiMmY5YTdjMjYxYmUzZWRiIjoiIjoiMmY4MzVjMzM2YTNhYTAwMTliMGJmOTQwYzI0NjQzYmM4ZmNhNThjOWNmYTY1MDlhYTkyNDFkZTllMGUxYTA0NiI6IjE5MTFhNTljNWYyNTY4ODYwYWU3MWU4MDM2ODg4ODlkYzQ0ZDE0ZmZiMGQ5M2UzMjRjMzlmMzJkOTVjMWMzZWEiOiIyN2JmNDJmNTA0NzZkOGEyY2MyM2Y0NTVlOWVmNDc3Y2I4ZTljOTBmMmU5N2M4YTQ4MzA5M2ViZjU1YjJhZWUwMmUwMzU2Y2ZmOTE5ZTJlYzk4MTFiNDJjNzM0OThhNmMyYjk2YWE1Yjc2MWVmN2U3MTVjYmY2NmFkMmUzZmY4YTZjOTI0MTlkYmYyZTY1M2NlNzBhODdiNTFlMjZkOWY2MDdlYjI1YjQ1YjkxZjk0N2QwMDI2YTM4OTc3MTQzYzhiYmQ5NDA3NmU2NjNiOWNlZTM1NTA1YjQ4ZTQ1M2U3Y2NhODNlNTQwOTc1YWU4YTUzZjI2MzkwYWE2M2FhZjFlMjY2OTQxMGNjODM0MjdlZWEwOTQyODc3NmEyZDUyMGVlYmQxNzA2MDJjNTJkZDQ5MWM5ODA0MjAxOGEwMzcyYTBiMzljYjU2NWNiZTVlNDc0ZjkyN2Y5MTUxNWE2YTc0NDRmZGJlMWQ4OWQ4YWUyYzI0ODJhMGRlYjhmZjIzNmQiCiAKIEhNQUNfRFJCRyBOSVNUIENBVlMgMTQuMyBObyBSZXNlZWQgKFNIQS0zODQsMjU2KzEyOCwwLDI1NikgIzMKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMzg0CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMzg0CiBobWFjX2RyYmdfbm9fcmVzZWVkOk1CRURUTFNfTURfU0hBMzg0OiI4NWIxZTVkYTU5OWVmZDRhMjBmZmNlZmQ0NzM3ZmEzZWExZDJiMTRiZTMzODYxYzJhNGFjM2FjMmE0OWQzOTQ3YjE0Y2YxOGY0ZmY0MjZjYjYzNDVmMWE3NjUzZTk2MzAiOiIiOiJjZjViYmY5OGQ4NTc3MDc3YjBiODQ0NzVkZWUwZjBlOWFhOTVlZWRkMWQ5MTY1MDdiNTIzM2I2ODhiY2M4NTZjIjoiYjMzM2VjMTExZTFlN2Q3OGM5YWM5MTZlNDIwNzA0ODMyNTM5ZDJkYjQ2YWNhM2JkYzQ3MzJlOGNlNzJiNWU4MCI6IjQ3NzNkMzJhOWZiYTM3YWNjNjkwMGYzYWM3MGY2OTc4ZmYxZTQwMDM5ZDZlMzI4NmMyNjRmYjdmYzU5ZjFiZmUwMTg4Yzc5NzkzODBjODkyMmJkZDBlMzYzYzhlMDlhNDlmYWVmNTllYTg1YTlmMGU0MDBiOTRjNzRhOGE1MDY4N2U0ZTUxZTI1MjY2ZWFiYjg2Mjc2ZjIyNjI4ZDBkMmUxOWM1Njk2Y2QyMjFhOWI4MGY5NDA0NWQwMDFjYTRjMjBkYzkxNmNhMGZmMjJjOTNhNDFmYzgyMjkxMmRkN2UyNDc5MjdmZDQ1OTgyZTk0ZDNkMWZkZTc3Y2JlNzhiZWVjYmE4MzBiNzUzMDc5MzI2YWUzMzI3NGYxM2ZiN2NkODc1ZTg1ZmI1ZTllNzAzZTYxY2JkNDFiYzRhZDQ3ZDdiNGQxNGFmYzg3M2EzOWRkODEwYWQ4ZWVkOTVhZGZmOGRjZTNhZGI3NjU5YjdjMWQ0ZTNmNjI0MDM3Njc5NDBiNCIKIAogSE1BQ19EUkJHIE5JU1QgQ0FWUyAxNC4zIE5vIFJlc2VlZCAoU0hBLTM4NCwyNTYrMTI4LDAsMjU2KSAjNAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEzODQKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8zODQKIGhtYWNfZHJiZ19ub19yZXNlZWQ6TUJFRFRMU19NRF9TSEEzODQ6IjUwZjk4NmY2ZWZiNDEzZmJhM2U4ZTBiZWI4NGQ0OTQ4YzJkYjA2NjFhYjhlMDY0ZDlmZWU4YjNjMmYwYTkxMGZjMzVkMzc1MTJmODhiZGZjZmRlNzk3YTIxYTAwNmUwMSI6IiI6IjM3YzdiMDgyMjJiYTYzZjIxMzZiYjI4ZjVlYzA5YjlhODk5YjU2MzcxNjE1YmU0MWJlZjQ5YTBiNjQwNTkwZTQiOiI0YTFlMzRhNWQ2MGNhMDhlM2U2YzBmMWI4NjU0N2JhMmQxMmZhMjkzMjc1ZTdkNzVmODNhMGI4NDZkYWE0OGRmIjoiZTI3NzM4YzZmYWU2NjEyNWZjYWY0ZTcyNWEwODgxZDVhNDUwZmI1YjAyYTU1MDU3ZDZjYjdiYWJkOTFkNTAyYzRmNGE4NDMxYTgzMzUyZjQ3ZWE4ZTVmZDdlODE1ZjUwODBkMTQ0MzE4YTFkY2JjNzU1ZTBiOTM1Nzg1Y2Q1Mzk3OTU1ZGEyMmUzZmY2MzNiMzRhNjRhYzcyYjJlNmI3YzUxZTc4ZmY1NTM3MzFlNmU4ZGE5MTFkMTQ3YTZlMDViMzZiNzQ4OThjYWM2ZDMxNzFiYzg2NTBlNDQ1ZmZkMTllZGUyYWE4MjE4YmUxNzY3MTMyMWMxODY0NjVkODUyZGQ4MGQ3MzI5MDU0NmI4OGVmN2E5NzhiNDFjNGM1NDllOWM3ZmM2ZWY4NmU0NzA4NDc3OGZiNWFlZDVkNDFlNzk0ZWUwZTcwMGI3N2MwMzE0YTMwN2IxMGRmNjlkYWJhNjA1ZjNmZGJlMmRlYzcwOGJhMGIyMGQ2YjY1MGJlZmJkIgogCiBITUFDX0RSQkcgTklTVCBDQVZTIDE0LjMgTm8gUmVzZWVkIChTSEEtMzg0LDI1NisxMjgsMCwyNTYpICM1Ci1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTM4NAorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzM4NAogaG1hY19kcmJnX25vX3Jlc2VlZDpNQkVEVExTX01EX1NIQTM4NDoiNjQxZGJjYmY5OWI2MTQzN2MyYmY2NWExM2RjM2UwMzI0ZWI5NDAzMzVkYTEyMzg3MGQ5NDI5NjM2ZGZjODI5NzlkMGNjOTEzYzczZThhNjMyMWZjM2ViOWU5NzNjMGFhIjoiIjoiNzI1ODBjMTFhODdjZTZiNDIwNzkwOGFhZjViY2FhYTFiZDIxN2ZjZTNlOGJjMDcyNjU2OGM2NDYzOWI3MDc2NyI6ImNmOWY0NTI3ZTA3NGI3MmJlNzM1NTU4ZGNhYTFmYzgyZjI2YWUyODZiZjk0NGI0OTY0OWY3NjliZjZmYWY0OWYiOiIzNDUzOTU3MjNkMDQ4YzIyNzBjMGVhYzk5MDQ5ODY4OWJjYjg2MmE0OTk2ZTgyOTk1YjRlNzE2OWU2NzFlYjAzYmIyMjQyYzQ2NjljODc0YzFhZWFmZmVjNThhYTY1M2M3ZDc0MzFhYmQxNjUwZjBjYmNlOGNmNWRiODMxNjY5M2YzZWQ1MDFmZDliNDhjMWE0NGIzNGY3ODc4YWEzODZkNjVhZmMzMWY5NGY5MDhhMzIyYjAzZDA2YzJhMTA3NGEwM2JkMmI1NzljYWZiMGY3Y2VlNmQ2OTM0NTg4YWUxY2U5ZTRlZDM3YjAzNzM3YzU1M2NhMTlhZjRiNDZiNWU0Mzc2N2NlZTJlNDU5YWI5MTQwN2RmNmNmZDEzYTZmMTg2YWJkYjE0OGI4NWE1ZjQ5YmY5MmFjNjY3NGZiMDU1YzdmZTEyM2U5MzU1YTBkMzNkZTI4MWMwM2E1NmY5MTg5MWRkNDk2ZGFiZmQ2ZWFhNmZmZjZjOWNmYjRlNjdjNDQiCiAKIEhNQUNfRFJCRyBOSVNUIENBVlMgMTQuMyBObyBSZXNlZWQgKFNIQS0zODQsMjU2KzEyOCwwLDI1NikgIzYKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMzg0CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMzg0CiBobWFjX2RyYmdfbm9fcmVzZWVkOk1CRURUTFNfTURfU0hBMzg0OiJiOWMzMDVhZGE5NDNhNjRhMmIwMDQ5NGU4NjlmOWE2NDAxNzNlYjFjMjUxOGRkOWJlOTNhYmMzYzkzYzdlNmI1YmQwNjI3YTE5OWQxNWY3N2IxODg4MjRkZjAwZDU5OTciOiIiOiJmZmM2NzYwZjlhZjAyZDM1NjY2Mjc1YzA3NGVkYTAzZjUzZGJjYjU2OTA1ODBiYjI1NzY4YTY1NjZiMzI4ZGZiIjoiZjI2ZjQzNmE4MjBlZjcxNTk3Yjc1MTM0YjhkOWRjYTZlOWE2YWZkOWI0MjkyMjJhNGM5Yzg3OGYzYjkyNzE2ZSI6ImU1NDEzYTIzNDg1OTUxMWNkODM3MzEyYmIzMWFhYzRkMzE5NjJjNWY3ZjI3YWVjNDc0MTdmMzY3Y2E5OWI4NDAwYTQyODdlNjA0MTJmYzM1NmNiNDBkOTZkZGY1Y2I4MDEyODVlYmNhNDJiMmY2ZmU0YTcxMTQ1MWMxNTc0MTc0YzU4ZGNjYjJjZDMzNDJiNzA5MmExOTZhYzdkMjg4MWEwOGU3ZjVkZTkzOWNjYzhmNGVlZGM4Zjg2N2M4MWFhODg2NTVkOTZhZTUwZjYxODI3OWQ1MDA5YmEyYWM0YjFkZjRlNjMwMzBjYzBlYzM1NDFiNmE5NGJkOWEyYWU1ZDFmY2Y0ZDg0NzExNGE3ODNjOTk3YTdjNmI5ZDU0OTAxMGJmN2I2NDlhYmVmNjkyY2RlYTNhYThhZGExNDU3NGUwZjc4YjdmY2JlMTdiNTg3YWMxNDk4MGU0MDI2NGQ2ZGUwMzBlNDI5NTg2NTkzZDVjZTNhZTU3MWY5NTQ1NGRjZiIKIAogSE1BQ19EUkJHIE5JU1QgQ0FWUyAxNC4zIE5vIFJlc2VlZCAoU0hBLTM4NCwyNTYrMTI4LDAsMjU2KSAjNwotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEzODQKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8zODQKIGhtYWNfZHJiZ19ub19yZXNlZWQ6TUJFRFRMU19NRF9TSEEzODQ6Ijk4NzVkYmY1OWI3NjBlYWI5OTk4YmYzMzQxODQ3OTEwNTI2ZDEwMDcxZGMxNzlmOTYwODFkZDc5M2E2MDAxOTM2ODgxZTdmMzkwNzVjZDM4MjI5M2ExYWFhOGM4NDVkMiI6IiI6IjExOTY1ODNhOTlhZmUxZDM3N2IzNDQ1ODVjODI1MmEwNjkwNzA0YjhmN2EyYjc1ODIzODdlYzkxYTYwZmQ3ZTQiOiIyMDE0N2E4OGUwZjlmMWU4Y2FhOGNiMTQ0ODhjOWI1YzM4ZTU1MjBhMzZhZTkxM2I0NzAzZDE1YWYyNzIxOGRkIjoiYzgwOGY2ZjI5NjY4M2QyNjIwODM1OWE3NjZmZTYxYmM3MGVlOGI2ZWQ5ZmZiOTRjZTI2OTU3OGZiNTU2OGZlMjM1OGQ2MDM2MzgzMjRiNjNiMjliYjM2YWU3MWE1NDJlMzhlZTY5YTJiOTNhZDdlNGE4ODdhMjdhMjg1MmNkY2Q1NDFhNWZhNmQwYzhiMDg3YWExMTg1YmQ1Nzg4MjU2ZTdkOTVjMmFhMmQ1YzExNDA3YjdiZjc2MmY0MTZiMDFkOGU3NDdjNDUyOThmODc1MjAwYTJlNjc2NzlkNmQ1ZmY3YTdjMGU1MGEwMTA2OTBiMTkyMGRmMWJhZjBhZmNmYWVlN2FiMDg2MjAwNGUyM2I1YWExZmY0N2I4MjczZDUwM2JkNzRhNTRlN2IzOWFjN2U2ZDZmYjBhNTk0ZDMwNTMxY2FiOGE2N2IyMjc4MzQ3MGE2NWYyNGZhYmExYzIzMWIzYmE0NWVmYWU5ZjBiZTA0ZTIzMzg1MjljZmVjMDA4IgogCiBITUFDX0RSQkcgTklTVCBDQVZTIDE0LjMgTm8gUmVzZWVkIChTSEEtMzg0LDI1NisxMjgsMCwyNTYpICM4Ci1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTM4NAorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzM4NAogaG1hY19kcmJnX25vX3Jlc2VlZDpNQkVEVExTX01EX1NIQTM4NDoiYWM5MmE2Yzc5MWFiYTA0MDZkNmVhODI1NWMzYzA5MDFlYjcxMWE0MjQ1MDFjMmMyYzg0NzA3NmQ3OGJkY2ZjMzI2NmI3YzNiYzU3OGM3NTAxZGFhYzZkZGE4MzY2ZDRmIjoiIjoiMTMzNzlhNzdkODRhMGM0Y2VjOTVlNjJhYzRjOGE5OGNlZWRlMGQ4OWI4YmQzMTczNTJhOTUzMDA5NjM0MTVlZCI6IjA0ZDQ3ZWM4OWEzZTFiN2YyMjU4MDE2NzMzMTIyNWEwMGZmMjU4ZGE3MjQ0NjI0MWE2YzA5YzUxN2VlNGQ0OGMiOiJjMmU2NTI4NTg0YzZkYmVjNDM2ZmZlYzQwNzVmZDNhZWJlOTUzZmRjMGI0NmI0YjIyNWEzYzI4ODZlNjBkMjE4NzllNmNjY2UzNzQ2ZDg4MWY2ZDgwZTMzODc2YWZhZDQzOWFiOWY2OGZjYzQ1ODQ5MmRlMTI4MTFmYmQ1N2FjNDlkODY4NzU0ZGExOTI3OWI0YzBhMzg5NzkyMDFhNTg4ODg0ZGVmNTY3NzM5MmRlYzk3Y2FmYzk0YmNjZjg5MTRkOWY3ODU3NTcxMWJiNmYyYWRmNDExNmRiOTFjOGI1NGUzNmU5YWMyZjVlMDFjYWViZDMwMGFjZDdiZDQ1ZWFkYTY5ZDIwZjFiNDEzOTAxM2E4YTYxNDA2OTMxNWExYzk5MTM3YTZmMjNlMzhmOTFjMjEwZTBjMTU2YzZmYjQ5ODA1NmU4MjNkYzQxYTA1MzQ4YWI0M2MyZjZmNGNlMTg4ZDRlMDVhMTNkMzhmODAyNTczMWFjMTY3MDk0OWEwNDAiCiAKIEhNQUNfRFJCRyBOSVNUIENBVlMgMTQuMyBObyBSZXNlZWQgKFNIQS0zODQsMjU2KzEyOCwwLDI1NikgIzkKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMzg0CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMzg0CiBobWFjX2RyYmdfbm9fcmVzZWVkOk1CRURUTFNfTURfU0hBMzg0OiI2Mzk1NGFjN2EwZjk4OWE0NThkMmI0YTZiNzAxM2RkNjY2ODM2MjQ1ODRiNTQ1MDYwYmQwM2E1N2I5MjgyMmVmNDIyNzY0YmJiYzM1ZmE1ZDQwZDM0MTQ1YWZlNDRiZWMiOiIiOiI3YjI1ZDg3NWRmYjAzMzMzY2MyN2I5ZDQyODZkMDBhODVlYTU5MjFmNGI4YTQ3MTdiOTU3MzQ5ZWIzNTA5MDUzIjoiOGI3MGQyOGM1YzgwMDg2YzBjYmJkMDEzMzdhZDQ1Mjk3YWYyNzFkNGJhZmM3NjRiMGZjNTcwNTcwMGNkNDE5ZCI6IjI5Nzc1MmU2MWM0ZWJjNGUxYzY4MzkxMzM1ZTJjZGI0OWIwZjE5ZGFmZTM1OWU0NTFmODE1OGZiNzk1OGQzMmE5ODQ1NWE4NTIwMDJkOGYwNTE2OWY0Mzg4MTZhZTZmY2NiYTFlYWU0ZDFmZGQ3YTExNzZiMDQ4MzFkN2NlODkyZjcxMWVjODI1MDYyZWExYzZiMTIxNDRiYmQzYTBhY2E3ZjkyNTIwZWJiODdhYzYwNDVkMmFjM2E0YTc0ZmE1NTk5MjZmMGRhY2ViNTlkNDRmZGIzOWY1ZmMzYjg3N2YzNDI0MTUzMWU4NjNjMTUzMjg2ZjNmMWIyYmEyZGI0ZTJjOGUyMzQ0YmU0MGMyYTdhOGNkMDFkYWYxNjg2OTZjZTE5ZjgzZGRiNjRkNTBlMjMxM2U3OGM1ZGZjZjA3N2YyNWU1YjRkNmY2ODcyNzkxMTljZTg1NmQ0MTMxYTYzYWQxMzNjZWRkMDIwODgxOTM5YmY3MGY4MmVhYmZlNDZkYiIKIAogSE1BQ19EUkJHIE5JU1QgQ0FWUyAxNC4zIE5vIFJlc2VlZCAoU0hBLTM4NCwyNTYrMTI4LDAsMjU2KSAjMTAKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMzg0CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMzg0CiBobWFjX2RyYmdfbm9fcmVzZWVkOk1CRURUTFNfTURfU0hBMzg0OiJkMDk0NGUwYTNmMzYwNGE1ODgyNzFjOGViNjU5MTNhZDliMDdlZTJiMjk2MjBmODEwNmNhNzBlYzEwYWViODk2YmM5YjJiNTE5Yzc3ZmVjNWZjNDE5ZTk1M2NlYjBiZTUiOiIiOiJkNTg1OTNmMjQ4OGYwYTI5MmFiNTUyZGFjMDA2Yzk0YjIwZmY1MDBkZDU3YWYzMmJlODA4OTIxYTVlZTI1MWMxIjoiZWE5ZTU3OWM5ZGNhNjdmMDdmZmQ2N2QyNDgzZWMxZmFjM2QyZWMyMmZlZmZmNzNjN2FjOWYxMjU4ODhkN2E0YiI6ImFlNzM2ZGE2NjMyYTdkOGJkY2M5ZTI3OWNiN2QzZjkxMDFhOGY3ZGRkZWZmMjUzMjc3ZDFkOTliNDVjNzZhMWE1YzE5MzMzNGU5MTJjM2RmZGZmMWJjMzg5YjIwOWMzYjI5MzU5YTRjYTUzNzY1YTFlNDBjYjkwMGM2MDU1ZDhhMjg1Y2Y2M2ViZWM3OWI0NjAxOWVmZTk1ZDUxOTlmMjE1ZjExOTYxZjMzMTlkMjI1YmYzZDYwNzM0ZmJmYmYzNTkzYWIxMDVjZWMyYTE3ZTMwOGFmNDY5YjMyMjBlZjdmMDU1Njc1Mzk2ZDI4OWU2ZjRmODAwOTg4MWM4YTJiNGU5ZGU4OGQ1M2FkMTNlOGJlZDhiMzhiZTZkODk4OGY2MTViNDU5MGZkZTNkOTFjYWY1MGE4NmVhYzNmYmYyOTkyNDc0MzE0NTgwMzk3OGQyNjExMzJiNTk3NWE5ZjEwODQ5OTI1MDMxNGUwOThlNTdjNTZlMmY5MzI3MzA3Y2ZmOCIKIAogSE1BQ19EUkJHIE5JU1QgQ0FWUyAxNC4zIE5vIFJlc2VlZCAoU0hBLTM4NCwyNTYrMTI4LDAsMjU2KSAjMTEKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMzg0CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMzg0CiBobWFjX2RyYmdfbm9fcmVzZWVkOk1CRURUTFNfTURfU0hBMzg0OiIxZWY1MzQ2NGJjN2E0NDEyMjdhMjdlYTdiNWM1NThkYmIzZjUwOWFhZjg4MDIxM2NkZWY3ZThmNmExZDI4N2MxNzNjZDViMzE0OGQ0NmM0OGM4M2M1Y2FkM2NjYzFmNTAiOiIiOiJiMDUyYTY2OTkyZmQ4YThjYjAyYzU5M2VkZmU0NzY2ZmNiY2QzNTA1YWYyOWQ2OThlMWY0ZGIzOThhY2Y3MTdkIjoiMzczMzM0NDgzMTFjMmM2ZWRlZTE5YWFkYjhmMTAzNmNiNjBjZmYyYTk0NWMxYTBlYTA4NzcxM2JmZjMxZTkxNSI6IjRlYTcwNTQ2NTljYWUxY2MxNzhlZjQzMWFlYmI2NGMyYzhkZGEzYTk2NWVhOTQwYTg0YzAwZDk3OTBlMmUzYTMzNTIxMzk1Y2M0ZDQ5MDM4OTk0YWE0YzdkY2FmMGI1MmI0NDM3NWQ5M2I2MjVhYzIyODE5OTFhODVhNWFjZWJmM2RlNTUyMzU1ZTE3YjM1MjhmYWYzOWQzOTJmZWQ5ODE0MDBmMjg1NDBmNWNhNjRhNGQyZWViOTUyYzg4ODU2YzhmNzM4OGE0OTYxMTgxMDk0MWI0NmIxMDAwZWU0YThhYWFhZGNkMzk5NDRjNGFiY2E5MTEwZmQ2NTgwMDkzZjkzMDNmODZhNmUxMjlkNTZiNWFlZmY1NDIyYzIyNjFhZjMzNTIzY2M2YTE3NGUwNzgyZTEzYTAyNmMwMDNjMTc0MzBiODM3MWJiZmMzZDUxYzNlMDZmYmRjMzA3NjlhMjc4YjEwOTIzOGJiZTM4M2NkNTUyMzA1M2ZlNTg5YjcyZSIKIAogSE1BQ19EUkJHIE5JU1QgQ0FWUyAxNC4zIE5vIFJlc2VlZCAoU0hBLTM4NCwyNTYrMTI4LDAsMjU2KSAjMTIKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMzg0CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMzg0CiBobWFjX2RyYmdfbm9fcmVzZWVkOk1CRURUTFNfTURfU0hBMzg0OiIxNDE0OGQ2OWQ1ODNkNGMxNzU4YzMwN2UwZWIwYjc2MjUxMTE2NTgyM2ZjNTQwOTZmOWRhNTUxM2U4N2RmNTNiOTZhN2JlOGQzMWI4YTM4ZjI0YTgyZDg0NmIwZTEzZWYiOiIiOiJlMDVmODFmNjQwMmM1MmRmZjVjMjIxYTJmMTkxMTU1YmI1NmFiZTE2MGNlN2RjOGE2YmVkZmEwMjkxOTVhNjEyIjoiMjE0Nzc3ZTNmYWVlN2Q5NTNiNWM3OTY2NzVlMTA2ZDUwY2RjMTI4MzZiMzExNGQxNDQ0N2FlOTFjZWEzYzFkYiI6ImViMDQ5N2IzMmFmOGE5MWVkMzk1OWMzMWIwNzliOGNjNWMzOWRiMzEwMDkxMzMzMmZmZmJiNmIxZDVlYmJjZGM5N2Q2ZTY3YzkzNGYzMzM2MTk3YzliNzMwZDgwOTk1YTdkNzQ0NWUzNmNmMzA0N2NhYjIyODk1ZjI0NGNhYzgwM2VhYmQwMDFlYjFmZjVkNTY0NWE4MDNjNDFlYTZkZGU2Yzk3MmI0N2RlMDM3MmNlOTAxNjY3ZDAzZTJlMDJhYTBhNWFlYTgwOWUwYmRjNzQzMDQ0MDM2NTkwODQxOGNlNjA2NmMyNDE5MWFjZTA1ZDZhNzk3ZWY5Yjk0NDA5OTg5Y2FjYmI5ZDllYzMxZjNjZjAxMTJiNzJlMTQyMGI0N2UwYzE4NGE4YWFjYzIxNGQ1NWEwZDVlMDg2OWQwOTMwM2U0MDE0ZGUwNDMwYzA3MzgwMDA2ZWE3NTk4NGU2YzMyYjA2MDY3ZDdkN2I5MzFlMmI3NDY2NmI0YjU2OWY3MSIKIAogSE1BQ19EUkJHIE5JU1QgQ0FWUyAxNC4zIE5vIFJlc2VlZCAoU0hBLTM4NCwyNTYrMTI4LDAsMjU2KSAjMTMKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMzg0CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMzg0CiBobWFjX2RyYmdfbm9fcmVzZWVkOk1CRURUTFNfTURfU0hBMzg0OiIyN2Q0NzAyMGFjYzNhODBhNTUxNDlmYTBlZjQzZjY4NDg0M2JhODlmZGE0YmZmMWMyOWQyMGJhYTJiMjE5NTY3ODA1NjliN2ZhMGM0MDc4ZDlmZjcxYTM3OTBmMWJlM2YiOiIiOiJjMDNlYTBiODhlMmY5YjUzZjkwMmIyMjc0NmJmNGRkZTA5NDM5YzE5MGE3YTYzOGUzY2I5OTBkODY3MzlkYmVkIjoiM2VmMDVlNzE0ODdjZGJjMjA5YjVhYjZlODA4ZTU1ZjBhOTNiY2MwMmRmNzY2YjAxYzFjMWFlNTg3NWIxMDIzZSI6IjNlZTQ5ZTJhNThkODAwZDkyMmNmYjY2Mjg0ZGE4NGJiYjU5NDRjODVmMTk0ZDk1ZjExNTZiNjczMzkyMTMyYTQzMGU0N2FlNzRmMWVkN2MxZDBlNjMyZDhjYjYwNGM4ODc3NzQzN2Q4ZjM3ZTdkMDQyOGI4MzQ1NTVhOTY4MDA1NDBiZjViY2U2ZjQzMDMyOGZkMzI4YmFmNGIyMmI3ZjhlNjYzYzFkODU4M2JjMDExOTI0ODU4ODg0MDUxMGUxMTIwM2NmNDdkZmM0ZjZjZGY4MzQ0MTcwYTM0MWZiYjdkOTM5OTliYTg2YmUzZmI5NGQ5YzAzOTIyZmQzZDc1ZTNmZDViNDIzNjVhYTYyNjA2ZTM1MjY3NmIyYTBjNTFmYjAzMGQ4ZDU2MDVlOGFjNmJhYzJiNGY4NDE3ZDhlMDYwMTQ4ZTNkNGJhNjdiMzFlNWU3MDRkODY2YmM4Nzc0MWJhODc3ZDEyYjEwZThhOWIzN2YzZmVjYTkwOGZlMWZjNCIKIAogSE1BQ19EUkJHIE5JU1QgQ0FWUyAxNC4zIE5vIFJlc2VlZCAoU0hBLTM4NCwyNTYrMTI4LDAsMjU2KSAjMTQKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMzg0CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMzg0CiBobWFjX2RyYmdfbm9fcmVzZWVkOk1CRURUTFNfTURfU0hBMzg0OiI4OGI2NTUwZDQ5MTgyY2E3MzIxZDgwMTVmNzgwMTIxMjIzYTkzMzQzZGFiYWYyMTk3OGVlMjgxOGU3YmNlNjU5MWQzMmI0OGViNDY0MjA2OWFkY2FhNTk4NjIyNGU2ZDMiOiIiOiI4MDk2MzlmNDhlYmY2NzU2YTUzMGUxYjZhYWQyMDM2MDgyYjA3YjEzZWQzYzEzZTgwZGMyYjZlYTU2ZTcwYTA0IjoiMzM5NTkwMmUwMDA0ZTU4NDEyM2JiNjkyNmY4OTk1NGE1ZDAzY2MxM2MzYzNlM2I3MGZkMGNiZTk3NWMzMzlhNyI6IjRhNWEyOWJmNzI1YzgyNDBhZTY1NTg2NDFhNmI4ZjJlNTg0ZGIwMzFlZjE1ODEyNGM0ZDEwNDFmZTU2OTg4ZmRhZWU5MWNhMTM5MjVmZWU2ZDVlNTc0OGIyNmNjMDI3NWQ0NWVmMzVhYmI1NmFkMTJlNjVhYTZmZTFkMjhhMTk4ZjVhYTc5MzhmY2E0Nzk0YzFhMzVmOWE2MGEzN2M3MzYwYmFmODYwZWZkMjAzOThjNzJhMzZiM2M0ODA1YzY3YTE4NWUyZjA5OWYwMzRiODBkMDQwMDhjNTRkNmE2ZTdlYzcyN2IxY2FjZTEyZTAxMTljMTcxYTAyNTE1YWIxOGVhM2QwYTM0NjM2MjJkZDg4MDI3YjQwNTY3YmU5NmU1YzMwMTQ2OWI0N2Q4M2Y1YTIwNTZkMWRjOTM0MWUwZGUxMDFkNmQ1ZjFiNzhjNjFjYzRhNmJmZDZmOTE4NGViZGU3YTk3Y2NmNTNkMzkzZjI2ZmQyYWZjYWU1ZWJlZGI3ZSIKIAogSE1BQ19EUkJHIE5JU1QgQ0FWUyAxNC4zIE5vIFJlc2VlZCAoU0hBLTM4NCwyNTYrMTI4LDI1NiwwKSAjMAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEzODQKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8zODQKIGhtYWNfZHJiZ19ub19yZXNlZWQ6TUJFRFRMU19NRF9TSEEzODQ6IjJjZDk2OGJhY2RhMmJjMzE0ZDJmYjQxZmU0MzM1NGZiNzYxMTM0ZWIxOWVlYzYwNDMxZTJmMzY3NTViODUxMjZlM2RlZGYyYWY5MzgyYTFlNjUyMTQzZTk1MjIxMmQzOSI6IjU5ZmE4MjM1MTA4ODIxYWNjYmQzYzE0ZWFmNzY4NTZkNmEwN2Y0MzM4M2RiNGNjNjAzODA0MGIxODgxMGQ1M2MiOiIiOiIiOiIwNjA1MWNlNmIyZjFjMzQzNzhlMDhjYWY4ZmU4MzYyMDFmZjdlYzJkYjhmYzVhMjUxOWFkZDI1MjRkOTA0NzAxOTRiMjQ3YWYzYTM0YTY3MzI5OGU1NzA3MGIyNTZmNTlmZDA5ODYzMjc2OGUyZDU1MTM3ZDZjMTdiMWE1M2ZlNDVkNmVkMGUzMWQ0OWU2NDgyMGRiMTQ1MDE0ZTJmMDM4YjY5YjcyMjBlMDQyYThlZmM5ODk4NTcwNmFiOTYzNTQ1MTIzMGExMjhhZWU4MDFkNGUzNzE4ZmY1OTUxMWMzZjNmZjFiMjBmMTA5Nzc0YThkZGMxZmFkZjQxYWZjYzEzZDQwMDk2ZDk5Nzk0ODg1N2E4OTRkMGVmOGIzMjM1YzMyMTNiYTg1YzUwYzJmM2Q2MWIwZDEwNGVjY2ZjZjM2YzM1ZmU1ZTQ5ZTc2MDJjYjE1MzNkZTEyZjBiZWM2MTNhMGVkOTYzMzgyMTk1N2U1YjdjYjMyZjYwYjdjMDJmYTQiCiAKIEhNQUNfRFJCRyBOSVNUIENBVlMgMTQuMyBObyBSZXNlZWQgKFNIQS0zODQsMjU2KzEyOCwyNTYsMCkgIzEKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMzg0CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMzg0CiBobWFjX2RyYmdfbm9fcmVzZWVkOk1CRURUTFNfTURfU0hBMzg0OiIwMjNmNTY3M2RhYzI5ZjYyMjQ1NTEwZDBhODY2NjI5YzQzYzY0YmYzNWEwYmFkMzBmMTI3MDA1MDg3NmNmYjFjZTgwYjYxNWE1YTQ3ZWNiNTEyMTdhNDYwNzllMTFmZDMiOiJhNmY3OTdiMTU1ZDZkYTAxZjVkMTU1Y2I3MjkxNDQyZTFiODJkNDE5MGU5M2UyNzlmZTViNGFhYTdkMDRlY2MwIjoiIjoiIjoiNTA3YjgyNDQ0M2FmNWRiMjhmNzQ2MjI5ZTAzYWIwMGM3M2NjM2VlNDk1NmFhMTRiMzNlZGEwMGRkMmI5YjY0NWMxMzJkYWI3ZGNkYmM2NTljOGJhMGUxYTM1NzVmZTdkYmM3Y2Y5NjkxZjliNzE0YWNiMWIzM2JlZjk2OTQzMDAzYzk5MmY2NjFlMDRmZTllOGI5ZjY0OGY0YWY5YTU4YTQ1YjA4YjhmYTdmYTM3MDRlNmJkYzI4OWFiYmUxNGE4YzdlMTc0N2E1MmFjOTE2YzMxZWQwNzlkZTBiOTAwNjcyZTY1OGEyMDEyNzk4MjRkMGQ3NWFlMzVkYmRkNDNhZWFiOTE1NjUzNzY1ZDgzZTQ2ZjM0N2ZjYjRmZTMzMjFmYzI4YWJkMmQwZDI2YTY2MjY2MTU4MmNlMjFiNmRjNGVhNmQxYjIzNmU5NjkyYTgzYzhiYTBmYjI5OTE1N2I4MDYyM2FkNGY0NDhkMjVkNTdmNTM3YjEwZTVlMzBmODBiIgogCiBITUFDX0RSQkcgTklTVCBDQVZTIDE0LjMgTm8gUmVzZWVkIChTSEEtMzg0LDI1NisxMjgsMjU2LDApICMyCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTM4NAorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzM4NAogaG1hY19kcmJnX25vX3Jlc2VlZDpNQkVEVExTX01EX1NIQTM4NDoiOTZiNWJjMTZjZTBkMTAxYjkwZDU0ZGE2YzRiM2Q4NWE3MGVlMTlkNTRjZjRjZGUzZDA0OGFmYjVmNzU4YTZiNTJlYTJjMTBjMTZmZWI3MWNlZGZhYjliZmE5ZTQ2MmY4IjoiMmZmNDE1ZTI0MzJkMmU2YzQyNzk5MTBhNWU1NmMwZjUzNTRhNWFmMDA5OTEzMmQ4OTE5NDNiNGE4OTAxY2E2YyI6IiI6IiI6ImVjZWJlNzE3YWZlNmRjMDhkYmZmM2VkNjI2YmIwNmRlMGY5Nzg0MjgzYjcwZTM3OGRlYzE5ZDRmYmI1MGU2MWI3YmU0OGNlYjY5ODUxYjJiYjk0NjQxYWVjNTAyN2Q1M2QzMTRhOTY1MDBhOWJiYjM4YTg3YzlhYTQyZWJlYjk2YTIzY2YyOWEwZmJkNWU0OGIzOTlkYWExYjI0ZGJkYzg1MjIzZjI0YjdkNzczMzJiYjFhMTM3ZWM3MDlkMjdjMDA4YzcwOTY5NmNiZTQ0YmIyZmMxOWZiMTBhMmZhZDRmZmQ4YTlkODk0OTJhOTM5ZjIyNjhkMTU1N2Y0NGI2YTY0ZTJhNTc4ODc4MzBmZDhiY2ExYjYzMDZhYWVkYmQ3ZjNmNDc2YjgyNzk5NWExZWQxMjEzODg0OTdlZGM3ZTYzOWM4N2QwOTJmNjU5MWE0NWI1NjQ3YzZjMDkxYzE1ZWQzOWY1OTRiN2ZjNGFlOTIzMzFmOTZkZDhlMTdiZTk3MCIKIAogSE1BQ19EUkJHIE5JU1QgQ0FWUyAxNC4zIE5vIFJlc2VlZCAoU0hBLTM4NCwyNTYrMTI4LDI1NiwwKSAjMwotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEzODQKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8zODQKIGhtYWNfZHJiZ19ub19yZXNlZWQ6TUJFRFRMU19NRF9TSEEzODQ6IjM2NGE4MzNhMjgzYTNlMGI4YTViNjgxZGFhNTBkZjk2ZDgwNmQ0YjU0ODI4ZjJiMDE2ZGU1ZDg4NTk3ZTYyODdkOThjYmE4ZmRhNDY0ZDIxYWExY2ZiN2IyNmI5YjIyNiI6IjM1YjBlNzUzNDAxNGRjMmQ3ZWIwZjIwZmY3OGE2OWQ1NTQ4ZDBhNjQxMjJkNDkzNmE2ZWQxNzdmYjNlYzY2YTYiOiIiOiIiOiJkZjRjNzk5Y2FlMzcxNzNhODFjNTQ1ZDAxOWZmYTMzNmVmMmMwMzlhNTg2NWFmNDI1ZTViNjBiYzNkNzIwMmY0YmMxYWFjNWE4NDAyMmJmNDA4ODA2MWFiZDVjMzlkMGZiMDQ3YmE4MDE2M2ViNWRjOGI5ZGQ1MTU5NDhmMTY5MTU4MzJjNmY3NmI0NWFjYzI1YjljMDFlN2Y3MDk1NWMwZWI1MWJmNTBmMDBiMjRiYjhlN2ZmNTNiZDdjMDUxYjUzZDhiMWE4MzdhMTdhMDAzNTVkN2ViMjFlNDNiMmI1YjI0OWRhZGNlZDM3ZDA2ZTcwNDdjMmZkMTIwMTI3MDVhNTlkMDUxYWZkMjYyNDVjZTNhNTlhY2I0Yjk5NmI3MThjN2RjMWFlOTY0YmYxMmIxZGIwMmZkNmMwNmFjMmZlYzZlZTVkZWIwMmMyYzgzMDExMGU5YmJiZDNjNzc4YTEzNmI2NDZjZTJhMDczODU2MzU1NWE4OTQwOWM1NmI4MWUiCiAKIEhNQUNfRFJCRyBOSVNUIENBVlMgMTQuMyBObyBSZXNlZWQgKFNIQS0zODQsMjU2KzEyOCwyNTYsMCkgIzQKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMzg0CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMzg0CiBobWFjX2RyYmdfbm9fcmVzZWVkOk1CRURUTFNfTURfU0hBMzg0OiJiYjRkMzhjNzc1YWNkZWVkNjYzMjU2YWJiNzQ3ZWMyNTE4MmJjMTZlZmQwZGUwMmNiNGIwNWU0YWQ0NzQ5YzkyYmU2ZjFlODU2ZTQyM2E4ZjNiZmIwYzBmMjdhZDgyMTAiOiIyMTU5MWU3OTZiN2U2OGU3OTEzZmVmYmVmNDg3MmFmOWMwNjJmMjFjODAyM2MwZGJmNDdlMDQwYzNhZWQzNzMzIjoiIjoiIjoiMTI1NzU3NzZlMWI5ZjU0YjBmYmMzOWU4NWE3N2I2OTEyMTYwYmFjZTRmMWU5ZjA0OWUzYTFjNWJjYjQ1MmNmOWJlNDJlYTEwYzAyOGMzY2MyNDk0MDFhYzIzNmRkM2JhYTUzZmYzMjc3MzU0MzVmNDg2OWQzMjg5YmM5NDY1Y2NmMTVmODI2ZTRlNGZmZjA5OTk4NmJkZGUwZDA5YmQxMmUzY2FkZGNmNDUyZWVkNmNhMTIwNmFlNDU2MWI4NDc3MGE5Y2M2ZTk2MjU2NzMwNGVmNzlkOGQzNjA4NTI5YTNiNWU0MDY3ZmE4M2M4YzM1YTA2ZjE4NTVkYTVmNWVhN2ViMTA2ZTRjNjAxODFkMTJiYTAwY2ZiZjdlYWM2MGJkYTAwNTcxZDk1YzQ1YzlkNzVjNDNiNDJlMjdhMjM4YWE1ZTBmMDJiYmQ5NmNkZTU5YTJlNTcyOTM0YTk5ZDA1YzM5OWZmZGYxNWM2NWYxNzM3NDg3MzRjNTE5OTlhMjllIgogCiBITUFDX0RSQkcgTklTVCBDQVZTIDE0LjMgTm8gUmVzZWVkIChTSEEtMzg0LDI1NisxMjgsMjU2LDApICM1Ci1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTM4NAorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzM4NAogaG1hY19kcmJnX25vX3Jlc2VlZDpNQkVEVExTX01EX1NIQTM4NDoiZjlkMDQxZDI0MTU4ZjQ4MDYwMGMzNzQ3Y2JmZDg2OGMzZjdlOWFjN2Y3NGIzNzYwZWFlNTMyMDgzOWU0ZjUxMzBmODQ3N2Q4OGIxZDkxNGMwZDhiMzc1ZDA4OWE0YzgzIjoiYjE0ODA0OWY0MDkzZjAwMzJjN2YxMDVkYWUyMTlhYTllM2Y3MDQ4N2NlM2E2YjZlY2Q5OTQyOWY2NmJlNTQwNiI6IiI6IiI6Ijg0YzU4YmY0NzMwNjFkYTkyZmE4ZDU2YWFiM2E3NTU5ODQyOGYxOGRjYTUwNDE5MWE1MTc0NmViNWZjYWQ4Zjc4NGVhZmFjNWVhODFkNjM2ZDU3OWUzMzBiYWY3ZGI5NWM4ZDcwNjQzMmU5ZjU4NWU4NGRhMDkwYzBlYjQwZGNkODE5YmYxMGUwZDViODYwMDE1MGQxODZmNzMyYWY1MGI0MzFjNTk2YzkyMGVjYTc0MmU2NTU1MTI5ZmRmNWRmOTZiNDQwMDUwODNkN2EzMzA4N2IxNTBkNjM1MjliZWU0YjZlMWVkNDE4OWFlMmQ5M2NlZThkYzY3MWQ0N2MwZTc0YmEwNDIxOGRmZTI3MzQ4NGE0YmI1OWE1Nzc0M2VhNTY4NDNkNTE2ZmYyYzcyZWY5ODQxOTk2ZDMxYjBkNmM1YmVlZjM2N2E2YjQ0Y2M4NGNmNGQ0MDNhMDZiNDA0MDZlNGM5ZjQ3ZGE0MDFlM2NmMzE0MTI2OTRlNjE2NGRjYiIKIAogSE1BQ19EUkJHIE5JU1QgQ0FWUyAxNC4zIE5vIFJlc2VlZCAoU0hBLTM4NCwyNTYrMTI4LDI1NiwwKSAjNgotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEzODQKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8zODQKIGhtYWNfZHJiZ19ub19yZXNlZWQ6TUJFRFRMU19NRF9TSEEzODQ6ImMxOGY1MTFmZmMzNDc5YTU5MzU3YzE3YzJmYjNkMWUwZTZmMGVkZGE0YzhiNTY3ZjI0MTMzMjNjMjAzN2YyZmQxNDBmYjBjZjMzZWI1OTUyNmQ4YzBkYmQyMTY5MzliNSI6IjczODdhYTNiMGIzZDkyYWZiMjk3NjFkM2Q1ZWExNmUzMmE2ODI5N2I5ZWE2NzUxZTFkNTRjODYxMmY2MzUxYzEiOiIiOiIiOiI5NDliZjAzODY4NTYzYzdkMTQ5OGM2OWMzMjc2ODY2ODI2NTYzNzRiMmVmZGVmNjM0MmU2OWEzODgyMjljNTgwY2EyMjE3YTkzMzJkM2FlNzdjMmQxMjIzZjVkZWRmNGIzNGVjNTBiNzlkNWJhYTcyODMxNjhlZDdjYmU3MWM2YzNjOTE5M2JiZTAxYjc2ZTAxMWMzOWQyZDQ2MjAxN2MyYzc0YjdlNjk4ZmEyMTQwZTE2ODg2YTllYzBmYzZjMzZkZWNiYWUzNzUzNzYzOGNjZjE3Nzc3ZjFjZmE0OWQyYzJjN2JhM2FhZGQwYTE1NjVkNjE5NDJkZTk0YWE2ZmExNmVjYWZjMmRhZmFiYzkwODJmMjNlNzVhMGUyZjhmNzlkMWMwYTE1Y2U1N2ZlZjc2NTVmMWE0ZmM2ZmM0ZDRhNjk0YmY2Y2E5ZTMzMzk1OWYzNWFkMzU0NTI0ZjYxNDkwNWM2YTUyZWY4ZjUyNGNkZjAxYzVmYWRhZGYyMDc3NzIiCiAKIEhNQUNfRFJCRyBOSVNUIENBVlMgMTQuMyBObyBSZXNlZWQgKFNIQS0zODQsMjU2KzEyOCwyNTYsMCkgIzcKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMzg0CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMzg0CiBobWFjX2RyYmdfbm9fcmVzZWVkOk1CRURUTFNfTURfU0hBMzg0OiI2YjA5Mjk1MTEwMzg0ZWI1NjcyNmY2MTQ3NGJkYzUzMmZkYWNlMzFjZWFkYjVmYzIzZDU4NzM1NmNmYWM3NDMzOGFiNmY5ZDg5Mzk0YjkwN2VkYjY0NjY1MDg2NWEzZmMiOiI3Y2FmY2I0ZGIzMWFiNDExYzM5NjAxNWI4YmJiYzk5MDYwN2UwOGJkMWNlZjMzMzdkZmEwZTI5NWFlMDI0ZjllIjoiIjoiIjoiZTUxYmM1YjNhNmJiMmEyNjY3ZjVkNjJjMmZmOTkwMmRkMDdiNTY2ODcwYjRjMTQyNDI2MjdkYTc1ODE0NDllYzk4NTczOWNkYzJiYjVlZjAzNjAzM2ZhNzk4MTEyY2UyMGRmMDZkNDZkNjFhYWQ3MTIxYjgyODJmZTc1NTZiZGQzNjNjZGFiYmY0NzE4NGU1NWVkZDg1ZWUwYjdiMGJlMTdiOWE3ZjgyMmY0ZDg5MDY0NjViNTI1YzE2Mzg1ZDA4OTliNmMyNzcyOGZmMmE2MDA4NzBhZWY2NWY1OGY5ZDM3NzdlODk4N2Q4NmU1OWZkYjY5Y2QyMzJlNzI4OWZjNzVjZjIxNzQzMDQxMzdmOTg4YTE3YjYwYzU3YWY4NGNkOGU1NTZhYWFkNDU4ZjUxMWZjMGIzMDA5NTE2NDM1YzBjNjAwOThmMzVmYjZhNGE5MGQ5MGJjNjA3MWQzODAwMDcwM2VmNTdjYmMxOWQ2Yjc4YTBmNzk3ZjNiYTA0NGM5IgogCiBITUFDX0RSQkcgTklTVCBDQVZTIDE0LjMgTm8gUmVzZWVkIChTSEEtMzg0LDI1NisxMjgsMjU2LDApICM4Ci1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTM4NAorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzM4NAogaG1hY19kcmJnX25vX3Jlc2VlZDpNQkVEVExTX01EX1NIQTM4NDoiZWM2ZDBmNjgyNDBmNWM0N2U4MjJkOTA4ODM2NGM2Y2QwM2NhNTM4MDgxNjJiNGYwNmY1OTU2ZGE2NTI5MDk0NmY0ZDI2NjUzZDA3OWU1MDYwNGY4MzZjMWQ3OTgyNDNkIjoiYjQwYjU3MzdjYzc2YzVmNmQxZGYwZjEzYmZiYWM3ZTI2ZjkyYWE5MzMxMjU3MDViNjE5N2Q5YmVkYjExZjJlMSI6IiI6IiI6IjIwNzgzM2NmNjU1OTllMTQwNmRkYWYzNDUyZjA2MGM4NzIwOTljYmY3NDgzZjFmN2YxNDAzMzQ5MGY3MjU4Y2E1ZmQ3ZjUzMzlmOTE0NDk4YjZlNjFmYTQyNmNiODcyYzg4MGE5ZmRhOWI4YmE1OTBjZDgwMDZiOTkwYWY3YWQ0MTJmNjBjOGIyYWQ5NjljMmY5Y2IwZTlkMDA1OTQzZDRkZDJkZDdhZjk2OTkwNDZjZTg5ZDY0MDU1OTc3MTZkNDNiOWFkNTQ2NDFjMjI3OGIwNGIyYmNjNWI4ZWNiY2Q1ZTIwNDRlNGU2ZWM1YTYyODYwNWZjYmQ2NzI0OWU4MTNiYjc2OWQ3ZGYwMWI2MDQwNGQwMzBlNjllOTY3MmI0ZmRlZGRmODJhMjIwNDJiODNjYTAzNjU3OGI2OWY5YTBhZDk3MDJiY2Y5NWZlODQ2NzA1YjQ5YjBhMDc5NWRmYmM0ZjY3MWUwMTU4ZGVkNjI0MmJkOGY4ZmJjMjQxMGM0NiIKIAogSE1BQ19EUkJHIE5JU1QgQ0FWUyAxNC4zIE5vIFJlc2VlZCAoU0hBLTM4NCwyNTYrMTI4LDI1NiwwKSAjOQotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEzODQKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8zODQKIGhtYWNfZHJiZ19ub19yZXNlZWQ6TUJFRFRMU19NRF9TSEEzODQ6ImRmNTlhYzIyNGU0YmExYjZkZmYzNDhmMTdiY2Y5YzVhOTRhMzIzNWE1NGYyNzk5YTZjYWUyOWQ4NjU0Yjc5ZDE4YjA5YjQ0NGEyOGE3ZDUzN2UxYTJiYzg5ZTk1YWJkOCI6IjE0YTBhOTFlMGNmZDYzZWY1ZmNiZTJlOGM3YTQ0YmNmNTc2OWM5Zjk1YjZjNTBiYmU5ZDNiNDhiODJhMDkwNTMiOiIiOiIiOiI2NTY0MzhlNzczOGQ0NDFiOWFjMTE2MzYxZTlmMjZhZGMwZTMwM2RhNzg4OWNmNTU5ODQxYjNlNDQxMjczMThlZGQzNTYwNTFiZDBiM2VjZWE3OGZlYjJiOTI4MjI3OTIxYTBjMTgzYzlmNTZiZmQxMWVmMzFiMjhkYTZjNzhmMzg5MWQ4YWUxODA0YmMxNThmYTU2ZThiN2ExYTQ2YmU0OTU0ZGU0OTNlZjY1YTdmOWJlYjQ2OTQ5YTMyM2EwNGU5NDQwMzRkYjMwYjE5Y2ViZDhiNzBiZmMxNTU4ODJkZGZhY2ExYmQ1YWNiOTgxYzJjMWIzZTA4NjJjNjIzNGQxMzA5M2RkYmNkZmYxNTEyOWQ1ODZmYzI0ZWEyZmQyMDk0NmZlNDViNDY3YmJiYzc3YTZiNjk3M2ViNmVhMDI5OTQ2MDdjNjU3ZWVjMjllNGM0YjM5MTVjYjczMGRiMDU2YmFiZjE3NzkxMjcwNDdiNDAxZTI1Zjk3ZjYwNjA2M2IiCiAKIEhNQUNfRFJCRyBOSVNUIENBVlMgMTQuMyBObyBSZXNlZWQgKFNIQS0zODQsMjU2KzEyOCwyNTYsMCkgIzEwCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTM4NAorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzM4NAogaG1hY19kcmJnX25vX3Jlc2VlZDpNQkVEVExTX01EX1NIQTM4NDoiOGRhMWFkNjgxMGMxZDZiN2VhZDIxMGU0OGY1MWMzNzBkNDUyMDU0N2EzMzBhNGQ1OTFlNjFhOTg0N2FhMDQzNDYzZjY5ZDFiMjM3OTk5ZmRhOWI1Njk3ZjFlN2FhYTA3IjoiMjkxYzUzNmRhYzcyNDA5ZTMxZTcxY2FmYjFiNWY1NWMxNDQyMWIyYzdhNDRkNzkyY2ZkYzY2M2RjOGY2MjY5MiI6IiI6IiI6ImMyYmZmNTcxNTU0YzI2YmJkNDQ0MmZiYjNiMGY4ZWI0ZGIwOTg0MDMzNzY1OGE3NDI1NjEzZTBmZDRmOTZlNjBkYTM5YjI1MGMzYTc3Mzc5YTUzMzI1YTU2ZWMwMjI0OGM0ZDY3ZmI5MTU0ZTNiMGViODk3MmEzMTA5YWVkNTMxZWNjYzAyNzcwNWIyNjdkMmI5YzAzN2RhNzk4NjBkNzZlNWU5ODBiNWIzMGI3ZWE1ODhmYTIyMWQyNGQ5NzNmNmQ0YzYyNWRlNjUxMjNlOTE2MTNhMTUyOGNkZWU1OTk5M2FhODI3ZjMxOWE3NTk0MTJmMjBhYWQ2YzUwZmE3OWEzZGViZWIzNDZhZDkyODA5NDcwZGFmMjI4Y2YzNDRlMDlmMDNjODM5YTI4ZDU4MGEyYjNkNzA1MDY4NWVmNTFlOTU2NDlhYmE3MjI4YTJmMGM4MmEyZGZkODljYWU2Y2U1NDllOGIyN2ZkNDZmMDJmZWI0NzM2NDU3NjUwMThlZiIKIAogSE1BQ19EUkJHIE5JU1QgQ0FWUyAxNC4zIE5vIFJlc2VlZCAoU0hBLTM4NCwyNTYrMTI4LDI1NiwwKSAjMTEKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMzg0CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMzg0CiBobWFjX2RyYmdfbm9fcmVzZWVkOk1CRURUTFNfTURfU0hBMzg0OiI1ZThkNjU3MWY1MTQ1MTlkZTZjNGMwYTdjYzViODVkZjYxNjczNWI4ZGQwOWMzYmVkMjM3NzQ5OWFhYWJiMjk2YTliMmM5NDY0MmRhMTBlOGZhNzM3Y2RmYjMxMjkzMzQiOiI2YWUyOWM3MWI3NmZjNDhmMTRhM2Q3MzFhMGY2ZjI3NmY3M2U3NjcyZWZmNjMxZGJiMWQyMmIwNjQ2M2JiMjM2IjoiIjoiIjoiNWNhZGMxMjY0MzE0ZmI0YmM3ZWQ3ZmE3NGJmYTE2YWVmYTYyNGJmMmZkNjBjOTkyZDBjYmExMDQyOWM1NmUwMDI4ZWJiNDMwYjFhMWM2NjYyYTliM2M3ZjZkZTI0NGNhMDAwYWU2M2RiOTU3MGYxYWEzZTdmZmIxZTk3YTlkODQ4MDIxZDhlNjMyZmVkYzAzNzcxMmEyOWFiZWM0MDYzYjlkNTdjNjA3MzhmMGFmMGIxYWFiMzg0NGIwM2Y3YWFjYzY1ZDM4YmVjOTFhMTFiN2MzYmY4ZDk3MGYwMWUwMGZlZDlkYmJlOWUyZTQ5OWEyMWM3MmE3YzVhMjI4NjQxMjUxMzNlY2IwNzNhNGM5ZjZkOWZkNDYwMjRmNWMxZWU3ZmE0NDcyMDlhZmE2Y2NlZjFmOTdhZTc3Y2E2N2ZjYTU5NTlkZGUyMDlkMjU5N2Y4N2FmNmUxNTQ0MDg1NzljZWM0MmM2OWZhOWI3Y2MwNzVlZTNlMzdlZTNkOTFhZDlmIgogCiBITUFDX0RSQkcgTklTVCBDQVZTIDE0LjMgTm8gUmVzZWVkIChTSEEtMzg0LDI1NisxMjgsMjU2LDApICMxMgotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEzODQKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8zODQKIGhtYWNfZHJiZ19ub19yZXNlZWQ6TUJFRFRMU19NRF9TSEEzODQ6IjVjOTQ4MWIyNjQyODU1ZmFjODkzMWVjY2QxYmQ2YzVhMDViNTYwYTU1Zjk2ZDM3ZTg2NWYwNTdhOTU4MTJkODFmZTY1Yzg0Yzk2YTk5MGViN2EzMDJiNThkZTcyM2NiNCI6ImI2YTYxYjlhMzEyMDczNjNkNjJjMGI4OGYxNjMyMjkwZjRmMThmZWI0MWE2ZGVkYjg1Yjc0NTBmZjkxNTcwMTYiOiIiOiIiOiI5Y2M3N2I2OGUxYWMyM2ZkZDJlMmE2ZmY2OTcwNTNmODE2YmI0OGIzOWIxMTYyZjdhYTNmZGQyZGQxODY3ZjY4YjEzOTgwYzllNTk4OWQ0NjMxYjc5ODMyNDg1MDE3MzEzMjZiZDdiZjZlOTY3YjNkZWU3ZDJkNTYyNWQzY2MyZTE5ODYyM2FmOWY3N2Y4NjEwMzQ5MWViYjRhZWZkYTVjMzMzYjUxNTU3YjhmNjQzZTZkNmM1OTNmZDdlMjdlNGJjY2NhMTMxNDBmNjEyOWNiZDAyNGRlMDc2ZTQ2ODg1NjdmZDdlNDFkYzdiMmJkMGJkOWIzZTk2NmQ1ZDNjNDYxNTAyMjIxYjUyYjAwMWE0ZDIxMDI4OTRkYTA0MTcyZWZiOTAwMTcxYTBlYWJhYjFmZDEzNDIxNzU4MGNmYzMzYTBhOTRlZGMwYmMxMzJhZjkxZDA0OGM2ZjVlYTRlMzRlYmM5Njg2YTk5ZjgxZDE5MTE4YmE0ZGE2M2FlM2RmN2EiCiAKIEhNQUNfRFJCRyBOSVNUIENBVlMgMTQuMyBObyBSZXNlZWQgKFNIQS0zODQsMjU2KzEyOCwyNTYsMCkgIzEzCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTM4NAorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzM4NAogaG1hY19kcmJnX25vX3Jlc2VlZDpNQkVEVExTX01EX1NIQTM4NDoiYzQzZjg4M2QwYWRjMmI1Njk4NGQ0YTQ5N2E4YWQ3NjgxM2EwMWRmNWEwYmEyMmI1MzE0NDc2M2I2NWM3YmYzZjZmNzIyZTRjZWFjNTk5NjZhNmU0NGVkODk4ZTYxMDliIjoiNzY5YmFjZTJjMjYzZWRiODcxMDE3NDM2NzM3MjRlZjY3YTkzNWUxYWU5Y2FjZTg3MjAyYjYwMTVkMjBmZDljYSI6IiI6IiI6ImNlNjE0ODA5NTMxOTA0NTMyNDdkMDkxODM4ZGQ4MDExN2Y3Zjg1YTdlOWExMjM3YzkyZWRmMTBjZmEyNmI0MjM3MzU3ODhiMWU4OWYzMzYyNTQ4MGQ5ZmFhZTU3MTEyZWU2MmM4ZTQ4NDA0NzVhNmE3MzgwMThhZDNmZDRhNzdlZmRkOGYxNWZmYjYyMWM0Mjk0MTliNmFkYjIwNDMxZmQzNWY5ZDYyZmIzM2Q1MDBiODdiZWFjNDg1NmFhNDk3MWViODk3MTA1NzZiNjA5ZWNmZTc1OGYzNjgyZGQzMTZlN2VlOWQ2NTYwYjQ0NGMyNDQ2NjU2Yzg5NDFkY2E3ZDZlYWE3MGZkZjhhNzBmMTgzODZlZTVkNGM4NjczOGJjMjYxYzBlOGU1ZjUwOWRhYmZmZDA0MjVhODY4NThlYTNjNzFkZTViZTk4NTcwZGFiZDgwYTM3YjRmN2Y5NTQwMDI3MjdjMGI3MTJlNTg2OTM2MDNjMjMxMzBhNDVlOThkZiIKIAogSE1BQ19EUkJHIE5JU1QgQ0FWUyAxNC4zIE5vIFJlc2VlZCAoU0hBLTM4NCwyNTYrMTI4LDI1NiwwKSAjMTQKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMzg0CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMzg0CiBobWFjX2RyYmdfbm9fcmVzZWVkOk1CRURUTFNfTURfU0hBMzg0OiJkMDgzZjdmOGM2NTM3NDYyN2RkYjUxNTgyYjNhMzllMmJmMDc0NTA4ZDVmMjhlY2NlMjU3ODdmMzg2MDU4ZGU4YWZhZmFmMmFkN2U2NDQ5MzA4ZTE3NmJlMDFlZGJjNTkiOiJkZGI0Y2VkMTkyZjUyYmRmYTE3YWE4MjM5MWY1NzE0MmFjNTBlNzdmNDI4ZmExOTFlMjk4YzIzODk5NjExYWFkIjoiIjoiIjoiYjk3ODgyNmI4OTBjZThhMjY0YmYxYWQxYzQ4NmFhZjVhODBhYTQwNzQyOGMwMjAxZGQwNDdmYTFiMjZlOWVhOWZmMjVhOTE0OTIxNWIwNGMyZjMyYjY1ZTAwN2UwMDU5YThlZmUxMTQ4MTkyNjkyNTA2MWM3NDg2Nzg4MzVjMDA2NmY1OTYzNTIxMjNmMGI4ODNlMGM2YWIwMjdkYTI0ODYyNDRkYTVlNjAzMzk1M2FmOWU0MWVlYzAyZjE1YmViZGI0ZTEyMTVkOTY0OTA1ZTY3YzllMzk0NWVjODE3N2I4YzQ4NjllZmM3MGExNjU3MTliOGUxZjE1M2M0MTc0NGQ0NGQzYzU2YTE1ODIyZDUyMmU2OWJkMjc3YzBjMDQzNWZhOTNlNWUxYmM0OWJjOWQwMmFlZTA1OGEwMWEwNDU4MGE2Y2FkODIxZTlmODVjZjc2NGZjNzBkZmFlNDk0Y2JmYTkyNGVhYjBlZmY3ODQyZTM1NDFiYzI5MTU2ZjZiIgogCiBITUFDX0RSQkcgTklTVCBDQVZTIDE0LjMgTm8gUmVzZWVkIChTSEEtMzg0LDI1NisxMjgsMjU2LDI1NikgIzAKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMzg0CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMzg0CiBobWFjX2RyYmdfbm9fcmVzZWVkOk1CRURUTFNfTURfU0hBMzg0OiJjMmZlYjkwMDAzMmYyY2NhOThkM2Y2MDUzNmY1NjNkOGFjOWFmNWZiMmU5MGRiYTM2YzM3MWMwYTFjNThjZjVlNGE2MGYyYmUwZmExM2I4MjY2YjcxNWJlOGFhZDEyOGMiOiI4ZTZmOWJlMGM2OTI2NDgwNzJkMTljNzUwODA0YjEwZTJlYzMxM2M4MDEzYWJkMzYzZGU3YTQ2Nzc4Nzg1OWYyIjoiNzJmNTRiYTNmOGU3MWFkNjlhMDQwYmI4NDkzMjgzYWNmYzg4MTVmMTdkYmNlYTIyMGVjZDY4MzcyYTJkZmZhZSI6ImFkY2U4MTU3ZWY2MDQ4Mjg0MWRkMmFjNWFjNTEyYmY3NjQ5MTIwYzFkYmE4MWVhNzVmMmE3MGI3NTEyYmI2ZjMiOiJlNzZlNDMyNmFjNjlkZGJjNmIyNDA4YzUyOWIwNWE5NjQyNWM2NWNjNjU2NzE2MDExOTEyMzhlOTQzNGQyYTAxNDdmM2EyNWNlOWI2ODE4Nzc0ZjUyNjNjOTI0NTliY2E0MjFkMmI0OTJmOWE5YzI5NzEzNTliYWFhMTQyNmQ2ZTJjMzZkODkyNGYzOWQwMmVlMmZiNTUwMmM0ZTBiMjA2ZGJlOWFlZWFjZDUwOGFiZTZjMDU1ZDU0N2I1ZjlmMzVkZTRmZGM5YzA1YTJjNjNhZDY5OWEzYTdlMjY1NTk4YjhmNDBhOGEyOTVkNzM3NmI4OGM0OWFmOWVkYzc5MGI4YTVlZTIyMWUxOTg3NzYxNjY3OGUyYTUxMzVkN2IzNzU2MTA5MjAwNDM5ZDllYzhiZmUwY2M1ZjNjMzM0Y2E5YzAyMmFiOTE5MmQ1ZDU1NGRjN2FlNzZhZjFkYzA2ZDgxNDQyN2Y0NmE3Y2ZhMmRjYzYyZjQ3NzdkMDdlYmRlN2QiCiAKIEhNQUNfRFJCRyBOSVNUIENBVlMgMTQuMyBObyBSZXNlZWQgKFNIQS0zODQsMjU2KzEyOCwyNTYsMjU2KSAjMQotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEzODQKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8zODQKIGhtYWNfZHJiZ19ub19yZXNlZWQ6TUJFRFRMU19NRF9TSEEzODQ6ImFkNTAwZWRiZTI4YjlhNDMzOGI1NTQ1MWI4MWM2NTI3OTdlYjQ4ZmJhNzUzYzE4NmNlMGFhOWFkMDJhODRlYTJjOTk1YjdhZGU2ZGUwZmI0ZWM5N2JjYmQ2MWI3MTFkNSI6IjU3NzBjNDE4MzJhNGNkYzQwMzlhOGMzMzJhNGI0NWU3YTdiMmRhYmI2NzhjY2QyZTU2NDUyYWFiZWFiMTQ5MjUiOiJkOGQ1NTE2ZDE1OGI0MWNiOWQ2NjU2NmI4ODA2NDkwMGFmNzgxODNmNzY1ZjJmNzJhMTk1NDhmYjc5NzM3N2IyIjoiNjBhM2EwMWE3MmU2YjNmMzNhMGMyMzZkYjA4MjM3ZTdkNjU2YmRmNGJhYjFkYjU3YWUyM2I3MzA1NTY5ZGVhNSI6ImM1YWMzZGY2NmJjNjY0ZThiZjg0Yzc1OGM3OTI2OTkyZjBlOGEwM2NkM2YzZjVmYjgyNzdjODViNGRhNTI2NjAxZTgxMzFmOWQyMDVmMzU1OTRlMTAxYTg2ZmI4M2NjZjRjMWU5OGM4ZTYwOTA2MjI1NjcwMWZmMjEzMmUzMzdjYjcyODdmMGVlMmU4ZmUzZWYxMWFlNzAzZDdlZmU1MmU2M2NmODkxMTljZWQwNTk1MGM1NWFhZTZjODIyYjZiMGE4ZTFiOTFiNTM3ZTViYjJkZTE2NWE0YjViNDNhMWM0MWZiZmQ2NWZmZjliYzUzMjlkMzAzY2FjYTg0ZjVkMWZjNmFjYWNlZTYyMjYyM2VkNWRkZTM2YWVkYTA4MTY3NDk1NTdjOTI0ZDZlZDI2Y2Q4MGU0NTZmZDBhZTIxNDY0NzdjY2I2M2EyMDNmZTE2YWMxZDBlYjJkMTJiNmEyY2FiYjIxZDQxMjQyMmU5NWYyZGY4Y2NkYzIzYjRlZjBkYyIKIAogSE1BQ19EUkJHIE5JU1QgQ0FWUyAxNC4zIE5vIFJlc2VlZCAoU0hBLTM4NCwyNTYrMTI4LDI1NiwyNTYpICMyCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTM4NAorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzM4NAogaG1hY19kcmJnX25vX3Jlc2VlZDpNQkVEVExTX01EX1NIQTM4NDoiNTFhMjliYWM1Mzk2MTc5MjA3N2U4OGVkMzYwM2QzM2JkMWY1MWIzZmRiMmI1Y2QxZWExMzFjNmY2NDNhZjY1ZGU4MWViMmUyNjAzOTZkMmE2OWI0MTg0YzRlYjk4YTE1IjoiNzJlNTI4NWI5MmM0ZWE0NDU4ZThhMjE1OTY4N2NkNDZlN2RmOWMxZjQ1MTNkOGI3MmNjODhiZTQxYzJlMTUyMiI6IjE2YTY5ZjdhZWUzNGM1Njc1OTVmM2QzNjJjY2JkYmI3YjllOTM3MmM0YjE3MjlmYmI4MGQ5YTA4OWVlZTMxYTQiOiI4MjUxOTcyNjJhNDNmNjUyMzE4MmYwYTkxMDA1ZDcwYjE3ZDgxYzJiYjY5MmVkZmQwMmFiOTg4MTMwYzdkNWI5IjoiZjYzZjUzMWMyNDJhMjk1ZDc3OTZjM2I0ODQ0ZmM3NDgyMWFmNWE1M2UwZTdhZTgyMmNkOGE3ZjlkZTkxZTYxNjQxNjRmMzQ0OGZkN2QxOGZlYWZiOTdjOTUwMGUwNjI1ZDUwMWRjYjM5MjdlNmZiMzllZjY1ZGQ5NTg2ZDE1NzA3NjQzNjQ1MmJkMzA2NmNiMzBkMWY0N2RjMGEzZmZhNWYyZTlhYjRlMTgzMDE4YjQwYTgyYjM5YjBkMTcwYWEyMWIwNTYwMGVlZmVhOTA2ODM4Yjk1NDU2ZTA0Y2YwNDY4MDgwMzBhNTY5NTFkMjUwMmM1ZWI2MjcxMjI4OTA1ZWQwODU0OWJiMTcxZDZjMDQwOGQ4ODI1MDc4NWY0MmUzNDljZTFkOWU3NGE2Y2QwMzYwYTAwOGVjODA0ZTdlY2RjYjRkMWZlMjRhYTVhMThjYmI2NWY0ZGUxNjE5YTI5YzYwNjJiNDA5YTM4NmVhNmY0M2U2MGFkYjllYTNkZDI4IgogCiBITUFDX0RSQkcgTklTVCBDQVZTIDE0LjMgTm8gUmVzZWVkIChTSEEtMzg0LDI1NisxMjgsMjU2LDI1NikgIzMKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMzg0CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMzg0CiBobWFjX2RyYmdfbm9fcmVzZWVkOk1CRURUTFNfTURfU0hBMzg0OiJiMzBmZjljNmU1YjZiZDI1OGYxY2VhMGZkNWVmOWFkYjgxZmJlYzIzM2ZmMmZhYjAxZTc5Yjc0MjI4NzhiMmU5NTA2MDRlMTBhYjgwZGRjZWI5ZDJiOTY4ZDBkMzdiYTkiOiJlOGFjZDRiMzgwYWFjZTBiMjc1NzIwNTdlYWE5NDdlMTBlNmI0OTUxNjE0MDEzOWM3NGExZDRmNDcyMjIxZGFjIjoiMWQyZGVkMDAwMzUyMWUyYmE2YTRhM2U3MzJlMDk0OWMxZDg1OGZkZjA5MjVmZWRkOWNmZDdmNjAzZTBlNjkyYSI6IjY4OGFjNWU3YjQ0MDBkOTYyYzEwNmZkMmNlNzEyYTFjZGE2YTBiOGFjNTE5NmFkNzI3ZjliODgyMzI5YTNkNWEiOiJjNTIwOGZlYzFkNjc1MTczMTFhNDJiZWMwNzc4MmNlYjI0N2U5YzgxOGU0ZjVmM2JkMTYwYzllNTNkNDYyYjYxODg0ZmViMjc4Y2RjOGY2NGUyMmY1OWQyN2RmYTk4ZDNhOTBkYThjN2M1YmEyOGNhNDBiZDBkMTg5MzQ1OTVhMzc2NTUzZDFhOGExOWRlMDdhODNlMmU5ZGI0Mjc0OGM5ODJjYmNiZjRhOTc1YzIwMDg0ZWE5Y2M2YzZhNDFiNTcxZmFmNjZiMzY0ZTRiN2U0ZDMyZWZjODBjMzBiMjE5ZGExYzAyYTFlYTAyZjY5MjJhZGJjMzFhMDU3Zjk5OTYwNWEyZDgyN2YxMDkwNzgzNWMyYmRkZTQxNTdkN2JmMjkwNmEwYWQyN2JiNzJmMTEzYzZlYzRmMjM2MzFhMmI4NTE3YmJjZTkxYjU2MGQ5MGQ3M2ZiZjA2OTliYWIyMWRhMjNlMjdjZmVjNTEzYmI1ZTM3NWY1MDEwODE5N2Q2NjQiCiAKIEhNQUNfRFJCRyBOSVNUIENBVlMgMTQuMyBObyBSZXNlZWQgKFNIQS0zODQsMjU2KzEyOCwyNTYsMjU2KSAjNAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEzODQKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8zODQKIGhtYWNfZHJiZ19ub19yZXNlZWQ6TUJFRFRMU19NRF9TSEEzODQ6IjU2NzE1ZGNiYWE0ZjViZGJkMTU3YmRkOTUwZDFjMWI0NmMxZjRmOGQ3ODE4YWIzMjFkNzJjMGZmM2MwYTkyODA2NGIwNDM5ZjdiZjAyMWRjZGM3ZmViZjIxMjZlNTQzMiI6ImNkNTU0Nzk5MWI1MjVmNzc5NWUwNzVhNTlhZjE3MDEzNzUxNzViZDc2MGRiOTlkMzE2YjkxNDYzZjg3ZjdmM2MiOiJiMmU0ZjAyZjFjMTQ4NjZmNTM4ZWRkYWI0MDIzNTZmZjNiNDA1YWJiYjkxNTRlODhiOTg0ODNhODNiZTcwZjdjIjoiYjhkYjMyMWFiMzAyODVlZWU3ZjllMzc3YWQ2MmRlZjZjYWFkYTQ0N2QwMGE0ZWM4ODIwODFkYWFmZTJlYzAwOSI6IjdlZDhjMmJlNThlMzU1M2ViNjU1MDgzNzdkNjNkN2YyNDUxOGQxYTcyMzVkZDRjNzQwYmQ5ODdkZDhiYzFjMWUzY2E5N2E2OWEzN2RjOWEyNzBhZDg4OTg5ZTQ4NjhlNmNmOGU0Y2YwMTcwM2MwYjFlYjZhZWQ4YzNmOGFmNDMxZDgxOWU2OGI2OTQ3YWUxMzRkMzYwZDg3ZTMzNjY4Y2RlZjBlNDVlMTFmNWNkNzkzMjlmZjk1ZWQwMGU0YTY5NTI3NTBmMTU3NGY0ODkzOTRiNWZkZTNjNmYwNzMxMWExZTVkOWM0ZTA3MGEwOTQzZWY5ZDRhMTMwYTllNGIwYTgwYzI1NmU5NmNhNTA0Mjk2MTc2Njg3NDg5OGVhMGY3NzJiNzhkMWEzM2U4NjYzNTFhNGViNDI1YjgyMmI1YWQ1OTZjZjI0OWJjZThjY2Q2ZGFmYjMzNGI3MWE1MDNmY2UyYzhmYTNmYmFjOTk0MzkxMGNlNWZmMDJlYmJlZGRlOCIKIAogSE1BQ19EUkJHIE5JU1QgQ0FWUyAxNC4zIE5vIFJlc2VlZCAoU0hBLTM4NCwyNTYrMTI4LDI1NiwyNTYpICM1Ci1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTM4NAorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzM4NAogaG1hY19kcmJnX25vX3Jlc2VlZDpNQkVEVExTX01EX1NIQTM4NDoiMWM2MGEzMTc2MDAxOWU2YTU3MWUyOTg3ZTU3ZTE5YWRiYzFhY2NmM2VkZDQ0ZTUwMTA2MWNiZWMzMzFiMTk3ZWI2OGQwZmE4ZmE1ZTMwNzFkNmY4YjdjOWMwYTNjMzVkIjoiZDRkODRkYzczMTEwOTY3OTFkZDljOWQ3ZjJjZDI5MTA3MWY4NzdhZmQ4NmI5NjQ0NDI3NDgyZDA5YWM5ZGY2NCI6IjY0NzNmNDQzMDM5OGQ3ZTVhMmQyMThiZDA1ZTZhZWRhYzFlMzE3MjY5ZGYzZTQ3MDVkNTZjMjJkNmU3YWJiMGYiOiIzNzk2NDliNTZhNDYzOTliOWFiNWYzODgwZTFhNzM5OTNhNThjZjUyODIxZDNjYWM4Nzg5MGFhMGU2MzIyYTk0IjoiZDM0MTUyZmExMmZhMzQxZDAzMjZhNTI1YWE4Mzg1NTg2MzAwMTM4NTc3NDdmMDI2MzRkMjRlOWRlZWMyZGExMmY1MmZiNDA1ZTdmMWI5NzNkYzJkOTgyZDI2ZWIyZGRiNGI0OWMzNWE5MzA4YjA2ODA5MTcxZGM5OTBhNDI0OGU2ZGEwYzMyOWEyNTlmNDk1MjQ3YjlmYThjNzNhZjA2NjA0ZGI3YjYyOTE2OGUzNDA4MTY5NmEwNDM5NzdkZDI5YTNjMDM2MmQ1ODk1ZjlhYWMyNGJjYmE1OGRkNzQwNzhlZjZmOGQzM2VhYzg2NGYyZTZjZGM0NzlkYTNkMjI0YmFkODA5OWQwMTFlOTE0YjZjY2MzNjMxYTczNjk1ODZlMThjNzFhNDA4N2RlMGQ0N2E3YzI5YTA5YzEyNDM4YzdkZTJkNGI0Nzc2OGY0NzY4NWI3NDJjMjViODYwZTcxNmMzMWUyYWZlNGNlNmQ5MmJjMmZiOWYzNDQwMDYwMmY5IgogCiBITUFDX0RSQkcgTklTVCBDQVZTIDE0LjMgTm8gUmVzZWVkIChTSEEtMzg0LDI1NisxMjgsMjU2LDI1NikgIzYKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMzg0CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMzg0CiBobWFjX2RyYmdfbm9fcmVzZWVkOk1CRURUTFNfTURfU0hBMzg0OiJlZWNjY2U3ZjdlZGM1MmYwZTI1NTkyNTBiZTM2NTI2Y2QxODM5MTUxYTc3YzU5ZDUyN2Y2NmZhMjRlYTRkODZiM2ZiMjk4YzhkNzJiNmEwYThlMTkxYjYwMjU5ZDFmYzEiOiIyNmQzNTg5NTcyM2JhM2Q0MzE5OTFhMGU2ZmIyMTU0YWU1YmZmN2U1ODYwOWM5MjZlZTMyNjlhZmM1Y2Q2MzFmIjoiMjI3YjlhNzFhNmMxN2VjYmY2MjcxNjFmYzYyN2Y4ZjZmMWEyOGNlMzk3NzJiN2EzZDM2MDY0ZTJjYzZkYzRkNSI6ImViNTlmNzgwYzVhOTU1ZTEzNTVkZmUxNWNjNGE0ZTkwYTZlYzc1NTg0ZTYzYmQwZGU3MzQzOTlmNDdiOTUwNzAiOiI3OGFjNzc2NTdkYzU2YjIzZTYxN2E5YjM4MTY4ZGE5NDVjMWNmNTJiNjA2MmMyYjEwZjFkN2EzODE0ZDliOWVmYTU1NDVkYTA1MGIwZGI1YTY1YTJkMmQyZTAyZmExMmU5N2ViOTcwZmE4ZTgzYzUyNGJjODA5ZDY3NWUwZGIzNWM5NzYyMzIzZjMyN2YxZWRiOWI1MzRjZTE2ZDAyNTE5NzUwYjQxZWJlNTFmNzQ3ZTlkYTQzZmQxYWZjNjBlNDZjN2FiYTcyZTE1Y2M3YTIyZmFkMTllZDU1MTg5ZjI4N2ExNDczNzQ4M2ViNmIzMmQ5NjZjM2UzOTY5ZDgxOThmMDFmMmVkODQxZjIwZDdkMmUxNTZkNjI4NWEyOWUwN2Y2ZDdmZmY0MmJkNTc1ODA2YzQwOTI1MjJiMDNlMGQxYjhkZjBjYzg4ZjViODJkMjRhN2ZkMGZlZmY2YWRhMDNhNjBlZjI1NDFhNGFiMDQxYTQ5YWE5NzNjNzE2M2JmOTQiCiAKIEhNQUNfRFJCRyBOSVNUIENBVlMgMTQuMyBObyBSZXNlZWQgKFNIQS0zODQsMjU2KzEyOCwyNTYsMjU2KSAjNwotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEzODQKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8zODQKIGhtYWNfZHJiZ19ub19yZXNlZWQ6TUJFRFRMU19NRF9TSEEzODQ6Ijg2ZjgxMDRhMDgxYzk1NjVkZWE1NjUyZjIwMTQ1YTA2OGRhZGZmMTI1ZGViZjgxODI2MmQ4OTMxY2VjNmJhOTM3ZmQ1YjUxYWZmY2ViZWU5NTJmYjY3ZjI5ZjE5NzI2NyI6ImM3YmE1ZmY4Mjg4NTVlNmU3OGZhMTczMmQ2M2FhYzFmNDk3MDFmZjdhYzFmMzUwNmU5Nzk0MWY5OThiNGU5ZDIiOiI2OTE3YmNhMTVkYjUzYTUzNTllNWM0ZDMwYWI0ZDM3ZmM2YTFiYzY2MGZhYWYyZTc0ODY0Y2I0YWE1MmUwZTAyIjoiZWVhOGRiMGNmYzA0ZjhkZTE0ZDYwNTM0NDJiNWI0Zjg3MzNmODIyZGY0YmU1OTY2YTBkZThiMGY3ZDIwMzZmNiI6IjU2MmI4YjJmYTNiYjE1Y2ZjM2Y3ZTU3ZjMwOWUzMWIxM2M3OTBjOTI4YWQ2YjMyYTAwNWY1NDMxYzI4NTc2YzU3MDZjNGFjMGRjMmM3YTQ0MzViZWJmYTA2NTcxMjc4ZjQ4NTkzMmJkOTQzODJlZmNmNzI3YjMwMGIyMzBkYTliOWU5ZjM3N2QyNjU5YWM3NWRkODI0NzM1MWQ1ZWQ4MTg1ZWZmYTBmMjU1YTJhMjEzNmU2MzcxN2UwMjY1ZDU2MWEzNGM3NWVjZWUxYzc3NGMyNWUzM2ZkOTM4Njk2ODI1Njg2YWNmOWE0MTljMWRhM2ZhMWNlOGY2OTVlMjMxMDg3YWEwOTI3ZGRlNmFiNDg3ZGM2MTI5MWFkNDcwMGM1YzYwOGZhYjFhNDE4ZjZiMzBmZjk3YjhiOGYwMWVmODE2NDI4Nzg0OWE3N2IyMWJlNWQxMWQ4MmQwYzE5MDU2ZTA3ZDU5YTMwZjZjNTc2NzA1YzZjZWRjYjlmMjJkM2E4ZiIKIAogSE1BQ19EUkJHIE5JU1QgQ0FWUyAxNC4zIE5vIFJlc2VlZCAoU0hBLTM4NCwyNTYrMTI4LDI1NiwyNTYpICM4Ci1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTM4NAorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzM4NAogaG1hY19kcmJnX25vX3Jlc2VlZDpNQkVEVExTX01EX1NIQTM4NDoiMGRiNmY3M2FiNmQzMWRkZjhmNzhkNzY5NjEzMTBkNjhmMDgxYzllNmQ1OTg1ZTE4ODM5NzhjMmRlYzQ4ZDlmNTg4NzVhYjY1OGIzYThiNzk1YmY0NjRhZjk0NzBhOTBjIjoiZDg4NjkzNmFkMzY1NDlhMTBiNWRjNWQ2ZTIxMjAzYWJkNzVhZDYzZjgyNjc5NGI0YWRhYWQ0NWE3MDQyNGM1ZiI6Ijc2OTkzZDNiY2MzMjU0NjQzMGVmYTMwZTNiMzBhY2MzNGM3NjcyYjZlMThjN2UyZTlhMWYxY2MyNmY3ZjdhMjIiOiI1NGM3MmNmMzQ1N2U2ZjVmNmIzNWRjMTQxNjdmZWU5MzgzYzQ0Yzg2N2YyMzNlYzlkODFmMTg3YmNlNDM4YzBmIjoiYzM1MjM4OTRkMjczYzg1ZDYwNWQzOWY1Yjg5ZTMzODhhZmFkOGMyMDc4Nzg5N2I5MDNkOGRiN2UzZGU3NTkwMzQwMTc0YmUzYWJkNzU5OGRhYmE3ODA2YWI5MzRlMGZlY2EwMmJiZTY2MjgyZDQ2OWVjMDE0NzZiYWQ1Y2NiYTU5ZmMxNGNkOTU0OWJmNGFmNDk2NDFmNDMyNmIxMDUyYjE3OWM4OTE5NGQyMWJlYzA1MDFjOTdlZjJjMjRhYWYwNDVmZDM0OGI3NjU5MTBmZTkyYzAwMzk2MTJlMzdiYWFkMjQ0NWI1N2Q5ZGI2YzFlNTUwYWRmNjY4OGE3OWIxMTdmNmI3YTM3ZTAyMDlkODlmMTk0YTFiZmUxZmYyZTNiMjhmMDQ1NGIzODNhZjg4NzJmMzIzMjJiZDUzMTNhM2M5Y2E0OGQzM2VhYjdjMzgwN2JiOThmOGY0MDJjNDNiOTliMjE3NmYwYjMzYmUwOGM3ZTg0Yzg2YjI2ZTk3MWFiIgogCiBITUFDX0RSQkcgTklTVCBDQVZTIDE0LjMgTm8gUmVzZWVkIChTSEEtMzg0LDI1NisxMjgsMjU2LDI1NikgIzkKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMzg0CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMzg0CiBobWFjX2RyYmdfbm9fcmVzZWVkOk1CRURUTFNfTURfU0hBMzg0OiIzYjFmZmJmYWU2ZWM1NGExNzVhODBhMzNjODc2OGZiNjBmMmFmOWVlMmI4NjIwYzRlODAwYTE3ZmI5MjQxYWU0N2Y3N2RhNDE0ZjY3YjVkN2IyNGRkMTAwMzU1ZDJhZmIiOiIwZDUwY2Y2MWUyMDIwYTkwOWJhNmUzNmJhNGQwYTM5NDU3OWQzZTQzNzdjZDRiZjAwNjg5NjdlOGQwZmU3YTc4IjoiNWQ0ZWZiM2Y2ZTY1MDNjNWQ4NWExYzQzMzk4ZDA0NDFjZThhZWZhZmFhYmUyZjZkODY5ODhhMjRlMDMzZjUwMiI6ImNmYjYxNTZhMWIxMzlhYmYyMWM3MzAwMTI0MDk5N2VlMWE4Y2FkOTFhNGJkNzc3YzAzNzJjMWU4ZmNmZDNmYWMiOiJkM2VmNzc2YzhkNzdmY2M1ZTk0N2JmNTNlMGJlMTE3NzdlNjljN2RjZTEzOGYyNGMxYTMyMTJkMWI2YjkzMjU4MDM3MTQ3OWI3NjE5ZmM4MmYwMjlkOTI5Njk2MjhmODEwYjU0YThmZGFiOGViYTc5OWU3NTA5NDVmMzU0NWY2YTk2MjI2YmM3NjBhZDczNjEwMTUxNmVmZmY1ZDg1ODFmNTg2NGIzOGMyOTg4NWQzOTg0M2E0YWRjYTE3MDQ2ZTFlMzg4Yzg5MDU0Mjk4ODc5N2I1NzZkYTY0ODA0ZWI0MTAxNjM4MzI4ZDNmOGJmYTM5OGZmYWY4M2NiNzI5MGEyY2ZkMzllYWQxMzI5MGFlNzczYTg5NThiMzM5MTRjYTAyYzhmZjZhMDY5YWEyNWFjOGIzNmY2ZjBmMWRjZDhmMWM1ZmM4MzgwODNhNjRhZTdhZTExYjg1YmUzYTlmYTgwZWQ4Mzk0OWI2MjIwMDJlOTE3NzYyNzNmYTMyZDZjZmQiCiAKIEhNQUNfRFJCRyBOSVNUIENBVlMgMTQuMyBObyBSZXNlZWQgKFNIQS0zODQsMjU2KzEyOCwyNTYsMjU2KSAjMTAKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMzg0CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMzg0CiBobWFjX2RyYmdfbm9fcmVzZWVkOk1CRURUTFNfTURfU0hBMzg0OiIxOTc2N2NlMWYxOGFlYTM2NjUzOTY0MmZhZDQwMGEwM2E2NzViMmYzYzBiMWNmZDQ5OTI1ZTUzNWIyYzI3NzkwNDNjNWExYzU3ZWY1NTBhY2FlNzMzNzI5NTE2YWE2MmUiOiI2YmZhODgyYzFlODk1ZWVmZmJiODU1NzgxODI2NTNjMDIyYTQ3MDMwOTE1Mjk3ODBjMDc1Y2Q0ODI4MDliOTkwIjoiMTEyMzZkZjFkY2EzZGU2ZTNlM2E1N2QyNzQxZDFiNzdmMTVmNDViMDViZWI0N2NjNTAwMTAwYjMxMTg4YTQyZCI6Ijk4NzA4YTg4ZmFmYWU1NmM0ZjZmYTc4MGM2YzBlMzNjYThmMjU5Mjk4M2I1YWU2MDcxNDZjZDZlOTIyMDQ0MTYiOiJiNjUxNGEzNzc5ZGNlZjJjOWVhMGVkN2RkZmE4MDhkMDQ1YzU5MDczMTRjMzU4MzAyY2EzMmIyMDU1OTg3YTM4ZWY2MDE2MzdjZGNmNzdiMWI4ZjdlYWM0NzlmOGYxODk3MjAxM2MyZTFhNmRmZTYxMmU4YTU4NmRjNTI5ZWNlNDg2NTA1NTM0YzBmZjNkYzBiMjA0OWEwZTQ2ZDdhYzUwNGExZmRmYWE5YjA4ZDlmYTAxN2M1ODAzNDE1ZmEzOTFiYTdlZWI1NzZmZDZkZGJhNDQwNGZlYjQ2ZTdjZGU1NmUwOTBkZDI4MGJlNWVkYmE3ZDZkZjljNWJhN2QzNDU0YmNiZDRkNDQzYjA4ZmI1MWExMTdjMWQ1OTE2ZjIyNWRjZDZjMWMzZmUyYjI4ODBmNGQ0Mjk2MmJlZmUzYWI3NmJkYzA4NmUyOTM4MWRkOTg1MjA2ZTNlMDBjZTcyMmM5YzA0MGFmNWZmNGNkNGE4MTgzYjQ0NmQ5MWIzMTA4NDUiCiAKIEhNQUNfRFJCRyBOSVNUIENBVlMgMTQuMyBObyBSZXNlZWQgKFNIQS0zODQsMjU2KzEyOCwyNTYsMjU2KSAjMTEKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMzg0CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMzg0CiBobWFjX2RyYmdfbm9fcmVzZWVkOk1CRURUTFNfTURfU0hBMzg0OiJmNjMyOTJiYWI1MDY2OGViMTRiODM5NzU0MjJhMGM4NTNmZTU1NzE0YTllZGY5ZDhhODE3YmEwYjJmMjZlYzQwMDYzYTg2ZWUzYzc5YzY5NDI3MzM0MmEwMmY2OGVjZDAiOiIzYzUyNTk1NjgzOGUyNmI3N2I4Y2ZjMzdmMDI0ZWMzOThlZDgyNTA3NmRiYjc0OWNmNDlhN2Q4NjhjMjAxZTZkIjoiZDlhNDFiNDdjM2JmODc0MzA5OWRjOGZkMjI4Zjc3ZGZmMDFhZTMwNDc2MWVhZjU3ZDc1MWUxMWNmMDk0YmVmMSI6ImI3OTBjMzdkYmRhMjBmYmVhZmU5ZDEzMzlhMTE1MTE0NDI1M2JkZmJmZmUxN2JhODcyNDBlYWU0OWM2MDZiZjMiOiIzNTg2YjYzMzE1MDIwYjNiYTExMjEzMTRhMGZhNmM2NmQ1N2RlMGVjNDRhYmVlZjdiNzMyNWU5NjA4MzJiNzk0NGNiMGE4MWE3NDdlZTVjNWQzMTYzMDAxNTM2ZDNlNWFkMmVjODY5YjBlNWNlYjE0YWVlMmU2OTE1MDczNjE5NTI4YzE0MjFiNTliODAyNTRkZmMzY2FiMDU4NDg5OGIwYmNhNzJjNzZhZTI1ZjUyYjc0MDViOWRhZDM4Y2IyYjg0MWUxZDZhMzRmYzViMjc3MTI5ZGI0OTkyOGIyZjZjMGRkMjI5MDBlZTc4NmVjMTI4MTY0ZWQxMmViMzI0YjUwMjQ5OWYxYzVjODliZTIxMDE5MDE0NzZiMzljNTYwMzRjYzI5M2UzMjBlNjNhM2UwMTkxODZkNGVhZjlhMDk4MTM2ZThjMGNlN2Y2MzI2Zjg0ZWM5NTk5MmRkZTI1ODVhZDM5NDVhOTUzNGFhMjk1NGI4YzE1YTQ4ZTMzMjRkNzYiCiAKIEhNQUNfRFJCRyBOSVNUIENBVlMgMTQuMyBObyBSZXNlZWQgKFNIQS0zODQsMjU2KzEyOCwyNTYsMjU2KSAjMTIKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMzg0CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMzg0CiBobWFjX2RyYmdfbm9fcmVzZWVkOk1CRURUTFNfTURfU0hBMzg0OiIzZGY3NDY4M2YyOThiYTQ4NjQ4NzE0ZTM4NDk4OTE0NWMxYjg0MjQ2NzM2ZGMyNzU2MzY4MDlkNjRjNzVmZjYwMzA1NmU3MDNjNDM1ZWFjZjIxYzBiYjE1MmQ5ZmMyYTAiOiIzNzEyMTdjYTIzMzdkYjAzYzRkMDY3MTQ2MjRmYTExZjkwZDVkYzU3NWJkYmUxMmE0NTdjNjEwYmUwNjZkYzJiIjoiZjI2YjljYWM4ZGY1N2EzM2U0YjU4NjhjMzZmMmI5MzIyOTk0YTk4MjY5ZGNiZDc5NTZiOTNkMTQ3ZGQwYWEyNyI6IjBhNmRiODZjM2FiZGMzOTg3ODA0NWI4ZmMyZDVmMGY3N2E4ZTI5OGVmZGFjYjRjYjlmNzQ3NjJmYzIzYjk2ZmMiOiJmZjUyNTJiN2EzOTQ2MGE3MzA5NGI5ZDY2OGI1M2QxOTMyMjQzY2FhODg1YzBlY2Q4NTA2MTJmZGJlN2U0NmNiMjc1ZDA3OWJiNzVhNmIwNTAxOTEyODJjY2IxMWVmMjU1ZDUyY2I3NjM2MThjNGI2MjQ1NjBkNzliYjlhNWJjOTkzMTk3ODNkZTQzYzE1MmU3YWE3YzRjZDg3OWE3NTg2OTI4NTMyMGE5Yjc0OWM4OTdiZjA3MjIwY2MxYmVmMWVkYzQ5NGJmZmE2YWI5M2RjZjgzOWRjMTVmNmYyZTUwOGI5ZTIxNmUyYTE3ODZiNzVhYmZiMDFiYjdiZGVkYTcyMmI0N2FmODk1ZjU1MTY3MGY5NTYyZDlmOWI3OGU5OGVlN2VhNWM1Y2E0ZjgzNmFmNWJmMTUzOTI1YjJhZWMwNTVlZWU4MTY0ZWRmM2Y3YjcyZTI0YjEyMDNjZmFlMTgzNDcwNWY3NGNhYzhjNjA0M2EzYzJhYmY2YmRmMjhmYzkiCiAKIEhNQUNfRFJCRyBOSVNUIENBVlMgMTQuMyBObyBSZXNlZWQgKFNIQS0zODQsMjU2KzEyOCwyNTYsMjU2KSAjMTMKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMzg0CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMzg0CiBobWFjX2RyYmdfbm9fcmVzZWVkOk1CRURUTFNfTURfU0hBMzg0OiI1M2Q3MDY5MmYwZjRkYmRhMjNkNzg2NjBmMGYwOGM3ZTcwY2E5NDQ0MWYxNDQwMzQ4Zjc2MTA4ODc0ZDEzZWExNDY1MjcyNWFiZDFhOTRkMzE1MzY0NDE2YzkwZTY2MmEiOiI2ZGVlZTkxNmFkNjYwODExY2YwNWI1NjUyZjMyZGY0ZTk3ZjU0NGViYjU3NzYyNjE3MzU5MTU5Y2M5YTQyNWMyIjoiYWNkYTQyN2VlYTFjOGM2NzkxYmU2ZTRkMmI2MGJlMzAzMDJhYmM4NGQ1YzVhMTNiZTdkNTEwMDA0Yjg3MTBjOSI6ImQyN2Q3ZjU5OGExNDIwNWM0NTc4ODY2NWNkMDYyMTM1YjZiNjU1NDdkMzE4ODk1OWUzOGFiNjc1NDAxZDJiNjIiOiJmNzdmOWRlNjBlOTVkYTNmMWQwZDY3YjVkZGUyOWIzMWRmNTljZTk4MGViZGJhZDdiNWUwYTAwNTFmZWUzOWUxZDZmYzQzMTFmMjFlZmEwMTYwMzliYjA1ZjNiMDA5YjIyM2JlNmYyYzAwN2I0NjgzODhhOGExOWJiNDY4YzdiODJjYzkzZGFiM2UxNjBiMmI3MmZkYTEyNDBmY2NlZWEwMWMyNjM4ZTljOGJkMmQxZWQ5ZmY5YjU1YmY2OWZiYTRiNmFlOGU2OTRjMTUwODk2YWM2MjMzYjc1NTY3OTkzZjlhOWFkZjI1Y2EwZjA4MzViOTk5MWZmNGI4ZDNmNGYxYTNlNGM1Zjk4NjZkOThiN2E3NTE5NjgwNGY5OTY0OTJhNjFkYmFiNWJmNzJmODc2NThlMjMwMGExYjA3NzdlZjdmNDNmZmU4OTYyZjZiNjcwOGQyZDkxZGNkZjZiNDMwY2ZhYWNiMzI4OWY3NGNiMGY2NzM3MGJjYzlhZjI0OWMiCiAKIEhNQUNfRFJCRyBOSVNUIENBVlMgMTQuMyBObyBSZXNlZWQgKFNIQS0zODQsMjU2KzEyOCwyNTYsMjU2KSAjMTQKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMzg0CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMzg0CiBobWFjX2RyYmdfbm9fcmVzZWVkOk1CRURUTFNfTURfU0hBMzg0OiI4NTE4NjY1MDY5NGY3NDJjM2Y1ZjIyOGY5NDM3ODhmMDU2MDJkNDgyNzUxODkwOGZkMDlhMWZiNDQ1ZDgzMzNkYjJkNjVmMzc2ZDQ4YzY2ZWI5ZTA0OTg5OTllMWZmNDkiOiI0OTk5MjhjNDE4NDEzMjQ3NDkxNDNiZTljYzc2OTg5OWMzOGQ2ZjZlNjkzM2U1Njg5ODg5NmZhYmNkODAyOTMxIjoiOTU3NGNhNTFmMjE4NjVjMmZiMGVmYzc1Y2M5ZDkwZWM1ZTljNDMxMDQ5NzljZDY0ZDAwZWE1NTQ0ZWEwMWM5NiI6ImMwZGY4NDBhMThkNzU4NGI2MmM3MGIyZjA1N2JmODI0MTY4ZWRiNjczY2I1MTdjZDlkYWM4OWEwZmM4MGM5YjQiOiJiMzFlNTAyMDJmODgzYTg1NjNjZjEyOWEwZDVmOGEzM2FiYWQ3OWQ4ZWM4YTk3MTY3ZWQ3ZmNhNzc4ZTU4OTI0ODA2MTdjZGY1MGI1ZTUxNTQ3ZjdlYzFiZWRlMzUwMjBhMzExNTcyYzYxZTMzZTljODI5NjhlOGY2OTU4NmRhZWEzZGMxOTA2M2JlYTU2NTAzZjhjYTQ4MjkxOGQyMjk5NDlhY2Q2ZjFjNTJjY2NkYzVmN2Y0Y2Q0MzYwMmE3MmE1Mzc1ZjNhYWJmZDI4MzRlZTA0OTQ4MjNiZWFkYTJkYWVjY2JlZDhkNDY5ODRkMTc1NmZlMjIwN2NhOTIxODZiNTA2MTE1ZjZkZTdkODQwYzBiM2I2NThlNGQ0MjJkYmYwNzIxMGY2MjBjNzE1NDVmNzRjZGYzOWZmODJkZTJiMGI2YjUzZmJmYTBjZjU4MDE0MDM4MTg0ZDM0ZmM5NjE3YjcxY2NkMjIwMzFiMjdhOGZjNWM3YjMzOGVlYWYwZmMiCiAKIEhNQUNfRFJCRyBOSVNUIENBVlMgMTQuMyBObyBSZXNlZWQgKFNIQS01MTIsMjU2KzEyOCwwLDApICMwCmRpZmYgLS1naXQgYS90ZXN0cy9zdWl0ZXMvdGVzdF9zdWl0ZV9obWFjX2RyYmcubm9wci5kYXRhIGIvdGVzdHMvc3VpdGVzL3Rlc3Rfc3VpdGVfaG1hY19kcmJnLm5vcHIuZGF0YQppbmRleCAwN2ZiMjRiLi40NDZkZjAxIDEwMDY0NAotLS0gYS90ZXN0cy9zdWl0ZXMvdGVzdF9zdWl0ZV9obWFjX2RyYmcubm9wci5kYXRhCisrKyBiL3Rlc3RzL3N1aXRlcy90ZXN0X3N1aXRlX2htYWNfZHJiZy5ub3ByLmRhdGEKQEAgLTIzOSw3MjMgKzIzOSw3MjMgQEAKIGhtYWNfZHJiZ19ub3ByOk1CRURUTFNfTURfU0hBMToiNGU4MjI3ZTg0MjJkNjc0Y2RiNzllNTJjYzMwYjdiODRmODFjYzA1YjAzMzM5NzA0ZGJhM2U3MzFmYzgxOTQ5ZTY3OWE0MjU3YzVmZDY4YTciOiIyZDZlNGFmMDJhY2FmMjMwYmY3NDYxNTdlYzYyNGJhNyI6ImRlZWJiMzY4YTc5YzE3ODg1MjhiNTg5MDU2YjExOTRiIjoiMWRiYmM3YTEzMWU5ODM0NGZkNzQ4ZWRjNmZlYzExYTAiOiIwMjY2ZThhMDY2ZGNhYmFmNjk5MWM3YTkxZTFjNmU1NiI6ImU1MWZjODMzYTYwYjA5OWU1Njk5NmE2NjgyMDM2OGY1MzMyODIyYzhmOWRmZmU4NDU5YzgwZDI1MTJkNDUxZTE2NjllY2Y2ZTU2MmExYzI5NWZhNjk4MWZhNjUxZmRkM2Q4ZDkzNmMxOGY4OGQ1ODQ0MzkzYTJhMzcxYWFhYzhmNDg1Y2ZlOTI5MjZmMWE1NDk4MDUwMGVkYzQzYTBhNmMiCiAKIEhNQUNfRFJCRyBOSVNUIENBVlMgMTQuMyBQUiBGYWxzZSAoU0hBLTIyNCwgMCwgMCkgIzAKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjI0CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjI0CiBobWFjX2RyYmdfbm9wcjpNQkVEVExTX01EX1NIQTIyNDoiMDllZmZhMzkwNmE1ZTkzZDA1NTMwZWRjNzFlNjJiMzljNWU0ZGEwMjA1MzcxNzZjMjM4MjNkYTUyZGJkYmFlODMwNzY1NmNkYWY4Zjg2MTQ3MWRiYTE0NTMzYzg4MDUwNTg3NDA5ODkxN2UzMzhmMjBlZjhkOGExIjoiIjoiIjoiIjoiIjoiZDVkZThhMzM4OGIxMWU0NTA4NWY2ZDlhMDA5NDYyOTQ3NjMxYzRlNzQ1MjMwODBjY2QwM2EwMTk2YWE1NmI2M2E5M2EyOTM5ZjQ5MGU5NDU2ZTlmY2UzZTkwMDBlNTgxOTA5OTFiOWFlZDZkMTQ1YWMxOGY2NWNmMmIxYzE3ZWIwMjFhY2M1MjU2ZWI2YTdlOTAyM2Y2MmFlZDg3ZDE1ZWE0ZTRiMzI4ZjI2NWNjMzRhZGJjMDYyZDU0NTI0MzY1Y2M5YzUwNzNhODM3MWYzNWRjMmY0NTllMWQwMjc1MTUiCiAKIEhNQUNfRFJCRyBOSVNUIENBVlMgMTQuMyBQUiBGYWxzZSAoU0hBLTIyNCwgMCwgMCkgIzEKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjI0CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjI0CiBobWFjX2RyYmdfbm9wcjpNQkVEVExTX01EX1NIQTIyNDoiMjlhNzA3MWU2ODY5MzZlNjBjMzkyMDYxZjcxYjY4NTAwZGQ2ZjExYzU2MzczMmZjYTlkZWMzYjJmODU5ZTA2YTg1N2ZkOTRlM2NhMTgxNzg3MmQ5NGMyYjdjMmYyODNhMGQyZDEyYTY0NDNlOTVmN2U3MDBhOTEwIjoiIjoiIjoiIjoiIjoiNzJjMGYzY2I3NzkyYmZlYmJjMWVlNmY2NWQ0MGQxMThhNmExYzRlMDRlNTg5YzhmNzAyNzNiNGM3YjcxOGM5ZGYzODM2NTg1NzJiODk0ODM4YTMxMWZjMGFhMmFhNjI1ODc1OGIzMzc4M2UxOTJiMGMzYzFkMzIyODA5Mzc1ZGM5MjVhMDU2MDVmZWQ4YzdlOGZiODc4ZmI2M2M4NGNlNjM5ZmQyNzdkOTk1NWY5MTYwMmE5ZjQ3NzdiN2MzYjE1NDA0YzRlNzYxZWM4ZDQ2NjY3NGUzMjEzNmM3YjhiZGIiCiAKIEhNQUNfRFJCRyBOSVNUIENBVlMgMTQuMyBQUiBGYWxzZSAoU0hBLTIyNCwgMCwgMCkgIzIKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjI0CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjI0CiBobWFjX2RyYmdfbm9wcjpNQkVEVExTX01EX1NIQTIyNDoiYWJkM2RhZmM4NWIyMzAyNTc5MmJjZGFmOWY0MTA4MjlkMzIwMWMxZThjYTQ1MGUyMTdlMTNlYzJlM2I3NDRlOGM1NDEwNzE3NGE2ZTY5YWQwNWY2NDNlZTVjZWM0OWNkNDdlYTg4YzgwYjk2YTA5NDQxNTRiNDU4IjoiIjoiIjoiIjoiIjoiMTUyMzMzZTE2YjA0MjgzZGZiOGM0M2RiYjNiZTQzYjVkYjJlYzQ5YTM5OWZhY2I2NWNlYmRmN2NhM2VkMjY3NzkyYmEzMDhjZGIwNjQ5YjBjMTljYjExMjZiMTQ0ZDU3NjZiNWFmZWNhOTgwMzZhMWY4NWNkMmNmZTNiODA3MTAxMWI2OWIyYWVjMzgyZjg1NjJkOWRkNDMzMWE1NTRmM2EzZWU2MzJjZmYzMDg0ODhiMzBhNzQxNmJlOGJiZGVlN2UyNTBjZDEyZjM3MWQwNjlhMDk3ZTllYWM0MzAzMWEiCiAKIEhNQUNfRFJCRyBOSVNUIENBVlMgMTQuMyBQUiBGYWxzZSAoU0hBLTIyNCwgMCwgMCkgIzMKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjI0CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjI0CiBobWFjX2RyYmdfbm9wcjpNQkVEVExTX01EX1NIQTIyNDoiY2FhMjg2YzE2MGQyMmFmMTA5MjJlZTYwODhjMjY5ZDBjOTYzMDM0ZTVmZDJhODVkMmZjMTcxZDBjNGJhMDgzM2I2MzBhNjRhYjA5OTY1ZjEzMmE3NDQ2NTY2MzFiZjJkZDI3NDMwYzdjMmQxZTU5Y2RjZjQzYTk3IjoiIjoiIjoiIjoiIjoiNGQ2MTMyYjljZTcwNDcwZGQzNmY1NTE1ODRhZGE2MzllNzRiODVmYjliZDNjM2UzNTAwMTFkOTlmMmRjMDM3MWY4NzRlNmI5ZDkyZWJhM2ZjZWFmZTM0ZTU3NGMxNDQxZDBkNDc2YzQ3NWI3MDQ3NTVhMjg3MzNlMzE2Mzc5NjJjYWU2N2U4NDliZWQxOGQ3NzUwMTM4M2NkYmMyN2FiNmY2MGQ1ZDhkMjY2MzRlZjM5ZTJjNjBmY2JiMDRhOWJkZGE4YmNmYjliMmQzYWVlYzEyYTIxMjc5ZWQ1NTMzNDMiCiAKIEhNQUNfRFJCRyBOSVNUIENBVlMgMTQuMyBQUiBGYWxzZSAoU0hBLTIyNCwgMCwgMCkgIzQKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjI0CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjI0CiBobWFjX2RyYmdfbm9wcjpNQkVEVExTX01EX1NIQTIyNDoiZjc5MTU2YTIzMjFiYTkzMGUxNTEwOTUwMWVhZDgwYTNiMjZjMTc0N2I3YTlhZWI5MjJkMWE5ZDQ3NGRmNjRhMWZjMzQ4M2YxMGU4OGE3ZmNkZGU5MWRjMDY5NDBjNThiZjRkNzQ3YjVhOWNkOGNhZDJjMmU5ODcwIjoiIjoiIjoiIjoiIjoiMWIzYWVhZmY5NzNiMmUyMGNlZTk0N2ZmMjgzMjc3OTkxODQyYTIyZjQ1Y2NlOWQyMmMxNzA1ZGFhNTFhNTZhYjQzYWFhZTFiNTFiYWQ3YTczNjNlZGM3YjU0OGEwY2VjNmIzNzZiOTI1YTZlMzViYzdkYzNiNGEzM2E3ZjNiNTdkNjZiMWIzNTI1NjkwOGJkMmQ4ZjA0OTVjYWYyNTM5YmE0NDc1ZDc2NmMyMWMyYzJlNGFjZmY4N2ZlZmIwN2M2NjJlYjM0NGQ5Yzk5ZWQ0MDcxNjVmOGEwOWEyMjgxNmEiCiAKIEhNQUNfRFJCRyBOSVNUIENBVlMgMTQuMyBQUiBGYWxzZSAoU0hBLTIyNCwgMCwgMCkgIzUKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjI0CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjI0CiBobWFjX2RyYmdfbm9wcjpNQkVEVExTX01EX1NIQTIyNDoiMmRmZWI3MGZjNDMzNDI2ZTIzMzc4ZDA0OGI4MzZmODk5Y2JmZjUyZDRhOTJjNmQ3ZDIxOGUzYWE1NGMwNjc5MzMzOWE3NTJmODZmMDNiN2ZjZjg5YmVmNzI1MzM5ZjE2YWIxY2QyOGVjODVjMjA1OTRiYmRmM2JlIjoiIjoiIjoiIjoiIjoiZDQwM2RkOGE2ZjNhOTE0OTMzMjUzZGI5Y2QwNDM0MjFlNTQyNDNhMzQwNDNmNWVlMTFhM2I2YTYyN2UyNWQ5NDQ0MzRlYWMyMmEwMDE3MmNhYTYwN2ViZjdkZTU1YjRjNDMwNWMyYjkzNDI4ZDVmYjRjZjBhNjQ5NDUxZWM3ZmM1ZGE2NWM0ODk0Y2Y0ZDJmM2Q1MmU5MDk5MzU0NDIzN2U1YzU4NzQ1NDQxYzljYjJlMDQ3NTEzZmY4MWQ5Y2Y5ODBkOGIxMjc2OWMyMWNjOGMwNmY2ZDU4M2I4YmUzZGQiCiAKIEhNQUNfRFJCRyBOSVNUIENBVlMgMTQuMyBQUiBGYWxzZSAoU0hBLTIyNCwgMCwgMCkgIzYKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjI0CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjI0CiBobWFjX2RyYmdfbm9wcjpNQkVEVExTX01EX1NIQTIyNDoiMmM2YmE5ODdiYjYxYzQxMzExMzhiYjhhY2Q4Nzc3NjNjMmM3ZTFmODYyODlhODFiNmI1NGQxZDhiMzk5YjVhNWFjNzE3MWMwYzljMGI1OTQzYmQ3ZjU0YmY3MmIyMDMwNzgzNGU5NzFiYjYzN2IzNTFhNzU2ODIzIjoiIjoiIjoiIjoiIjoiN2ZmMDFkZWY4NDYyNjgyNWZjMjJhNjJjZmUyOGY1Zjk1NDAzYmIyNjE4ZWZmMjI1MjliNjUzMWFhZjEwMzIxMDA5NDRkNWY5NzAzNDk2ZDE2NWM1NzU2YzBhYWM1NWIxODEyYTcyOTQwYWE1MzE3ZmI2YTI5NDRkMTI0ZTdmNjU3NjZmMjMxYjZiZGEwNjEwMGM1YWQwZDFiMzdjNDg4ZTBlOWYxMWE2ZDhmN2U0Y2Y3MzM3ZTA0ZDA5NGVhOWRlMmRiMWJiZWNmNDBlMGNjOGQxZmMxY2Y1YTAxY2QwODEiCiAKIEhNQUNfRFJCRyBOSVNUIENBVlMgMTQuMyBQUiBGYWxzZSAoU0hBLTIyNCwgMCwgMCkgIzcKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjI0CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjI0CiBobWFjX2RyYmdfbm9wcjpNQkVEVExTX01EX1NIQTIyNDoiYmEwOGFjYzNhMDBiOWI0MGQyYmFkOGNjYTQ5MDlkM2JiZWM1NDcxZjc4ZDBiZjg5YTgwNWQ4MzliOGIyOWZiNzUzYzllNWQzNjc0MzY1YTcwNTVhMTg3YTIzOGVhMWNkMDRmNDgyZDI0ZDg1NmI2N2ViNTRkNzFhIjoiIjoiIjoiIjoiIjoiOWVjNmFkODQwMjcwMDUxMzEzYzU4MjUyOTVhNmY3NTI3YThiMWI5YjNlN2M4NjdlNTY0MmE5ODRiMTE5MTFiZTYwNjE0ZTU3MzdkM2EwZDEwOWVlYTQyMjNmMGQyZWU2M2NiMTliZTcwMjI5MWE3NzFiMmUyYzI3N2YyZDQ1NTkxNzZmYzVhZGNjZWE1MjQ5MmUzZDNiYTdkMTdiYWQ1YjVmNDg3ZDc4MzYzOTQ2Nzk5N2Q3NjY4Y2UyMTczZWY3NzdmOWUzMWRiZWNiNmVlNzE2YjVjZWRjOGJjNTA5OGEiCiAKIEhNQUNfRFJCRyBOSVNUIENBVlMgMTQuMyBQUiBGYWxzZSAoU0hBLTIyNCwgMCwgMCkgIzgKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjI0CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjI0CiBobWFjX2RyYmdfbm9wcjpNQkVEVExTX01EX1NIQTIyNDoiOTU0MTMzNDUyMjhlYWRiODViNjc2NzRiOTk4MWFmMzRiZDZhNGFlMDQ4NjYyMjk5MjFiZTkyOGMwNmU2YTZhNmZkZThkMzFhNmE4OGYyNGQ2YTExMTRjY2JlMDhkZWQ5ZDdjNTBjMzM2MGJjYjg5MDhhNjE1MzgxIjoiIjoiIjoiIjoiIjoiZDRkYzA4ZTM2Zjk0ZTg4ZjhiZmIxOTE5YzEzMTg2MTM5NTkxZWRjNjgxYWZmYjYxYzQyMWQzMmRmZGE2OWU1MDdkNTk0OTViY2FkZDM5YjczYzQwMzZlZjQ0MGRjNTk4ZTMzOTQ3M2NhYmE2MGUwNzcwYWM0NzI5MjY0YjFkYmZkYWYzMmNhNmQxMzZlZjY4MTBhNjY2MGZhNWNiYWM5MTk0MGEyODA1M2MwZmE0MDVjN2I2Y2E1ZTNmMTQ3YjVlMDA5NmYzNmI2N2RhOWZjZTY0MjQ3Y2ZkYWFkNzBmYzAiCiAKIEhNQUNfRFJCRyBOSVNUIENBVlMgMTQuMyBQUiBGYWxzZSAoU0hBLTIyNCwgMCwgMCkgIzkKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjI0CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjI0CiBobWFjX2RyYmdfbm9wcjpNQkVEVExTX01EX1NIQTIyNDoiOWI2YmI5NTg5ZjQxZThlZDY5NjlkYmYxYTNiM2QyNDJkZDVlMTMzNzExZjcyNTQ5MzM0Yzc0MTkwZTRlZmIxZDA0NTIwMTZlZDRmZmZjYTk1NjFhYWYyMTllNjc5M2JmYjZmZDNkZDk1MDBiZDYxZTZhNjJkYjY2IjoiIjoiIjoiIjoiIjoiY2VlMDJlNGZlMDk4MGFmZTZjY2JiMWIwZDgwMDQxYmE5ODQxNDYxMzk3NDk0ZjBmYWU1MTg4MjI4ZmJlOTgyMmUzZmZjNTM5N2I3Y2FhMjk5NTBkOTU1MzZlNzAwMGUxMjQ5ZTViYjkzYTU5M2U2NTlhNDk2ODlhZGQxNmQyZjVlMDJmZjI1MWM3NjcxNmRjNDI2MDEwYzI5NjFhMTc2YmQ2M2MyOTM5N2Y2ZTM2Y2Q0ZGUyZjJiMTFlMTI2MGI5ZjlhMDBiZDQ5YjRiNjYxN2ZiMDU2YjgyYzkyYzQ3MWQiCiAKIEhNQUNfRFJCRyBOSVNUIENBVlMgMTQuMyBQUiBGYWxzZSAoU0hBLTIyNCwgMCwgMCkgIzEwCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTIyNAorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzIyNAogaG1hY19kcmJnX25vcHI6TUJFRFRMU19NRF9TSEEyMjQ6ImYyNzZiYTBkYTA4Mjc0YTA4MmYzYjhhZDk4OWE3MTM5MDg4NzNiNzQyZjk2YmJiZjhjODFiNGUxYTdlNDg1N2JjOTlhZWNlYWJlNTM0YzQ1MTA1MzA2YjE0ODYwODgzY2Q1NmYyNDM4YTc4MTJiNDNmMGQ5MTFmNyI6IiI6IiI6IiI6IiI6IjI0ZGQzZWVhOWE4ZTFmOTkyOWViYmJjMmE2ODM3OWNhZWM3N2ZiNDI1MzFhOTdmN2YzYTc1ZDE2YWQwNTM3OTlmZmMyNWNhY2U0ZjQ1NTNjMjcxYWUzNjBlY2ExZjUxMzFlZjg3YmYwMzkwYjI2Nzg1ODgwZGIwZDkyYmIzNTFlNmUyMjQwOWQ2MDBmNmRhYjVjYmIyMjc4Yjg3ODRlNjdhNDBiZTRkOGVhNmQ5OTQxMTVjNjdiNzIyNGQ3MjFkMWIzYzdmYzViMjRlMTVmOTdlYjNiYmUzMzc5OGQxYmI4IgogCiBITUFDX0RSQkcgTklTVCBDQVZTIDE0LjMgUFIgRmFsc2UgKFNIQS0yMjQsIDAsIDApICMxMQotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyMjQKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yMjQKIGhtYWNfZHJiZ19ub3ByOk1CRURUTFNfTURfU0hBMjI0OiJmYTVlZDkxODlmMjFkN2U5NDc2NGJkZGVmZjIzMDUwMTEyODY4Y2ZlMzUyMjBiODYzZTgxMTJmNjkxYzU3ZTZkNmM0YTkxYzc1MmM1ZjBiMzdiOTdkNWYzZTM4MzQ4MDA1NDg3N2YzMTlhNTY4YjA2NGU2NTYyYTQiOiIiOiIiOiIiOiIiOiI1NWViNWVmMTI0OGI1YTM0Yzc0MWYyMDc2ZWE1ZDU2OGRhNjMwY2U0NzIwYjdlMmM4NmE5ZGQ1MzViNDhmYWVjZTIyMjk4NjZhMzYwMjRmZDQxMTQyNDliZTQ3MzBlNTU0Yjc3MmQ1NTdjZTNmOGI5ZDRkODZkOTEyMDI1ODIyMTNhNjc2YTA3NmI4N2Y5NDEzNTFjNzYwNmE0NTI4MTZkYjVkMGY4MTk0ODI1ZDQwMmQyZmU3ZWJiMjgxNTUzMjA5MWIzODMwYTk2MTY5MThiYjBlMzI5OGZhZjAzN2JmNiIKIAogSE1BQ19EUkJHIE5JU1QgQ0FWUyAxNC4zIFBSIEZhbHNlIChTSEEtMjI0LCAwLCAwKSAjMTIKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjI0CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjI0CiBobWFjX2RyYmdfbm9wcjpNQkVEVExTX01EX1NIQTIyNDoiZDBjNTAwM2E2MTY4MTYzZjcwN2IyNTE5MWI1MTIxMWRjMWFlMzYxZGYxZTA2OWQwZjI4NGY2Njk2N2FjYTQxOTk4MDlkYzg5MzY4MTY0MjEzYWUxNzI4NTY3NGU1NTc0ODUxNTgyMzcyZmNhZThjZDI3MzNiZjRhIjoiIjoiIjoiIjoiIjoiMjQ5MTBlMWE5MzA0NDcxZDA1M2FmNDU4YmMzZmRlZjUyN2U4Nzk2ZTMzMTMzZjVhZjAwNTEwNmIyMDNlOGZkZWZiMjc0ZjFjMGU4ZmY0NGU5MmM2M2JlZjMwODJjNmU1NjA3YTc5ODFhNjA3NmYxYTFkMTUzNjhmNDMzMGM3MDEyNTA5ZDVmNjFiNDM0OTIyNGE4Nzk2MGJjZTk4NzM3MjUxNDVmMTg3YWE5MzEzOTRjNDQ5ZjUwMmQxMmI2MDY1NWEwYWIyYTIyMTEzNGE1MTc4NmMzNjgzZjlmZmEyYjIiCiAKIEhNQUNfRFJCRyBOSVNUIENBVlMgMTQuMyBQUiBGYWxzZSAoU0hBLTIyNCwgMCwgMCkgIzEzCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTIyNAorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzIyNAogaG1hY19kcmJnX25vcHI6TUJFRFRMU19NRF9TSEEyMjQ6ImJmNWI1ZDFjODkxZjdhNmYyZGQzZjRkNDg2ZDY5M2ZiZjY3ZjQ5NTg0YjdmMDUzYWE5NmRkYWNkOWZjMGNkZWEwZmFiODIwOWQ4ZjQzMzU4MjBjZTY4YmZhMDQ4OTliNjNjZGExNTI0MmU5Y2QzZjdhY2IxZjEwMyI6IiI6IiI6IiI6IiI6IjcxMGM4YjMzYWIwMzRiNTBhMjlkZTY1N2I5M2YzYzcxZGY0NzI3YTUyMTlhNDc0MzUwYzg4YjRlMzk3NGZmZDBkMzQ1MmU4YzRkMjZmNTc5ZTM0OGYzOWNmZTBkMjAwNDVhNzBhODY2YzVlMTZhMGMyMmFhMGQ2OWI3MzlmNzRjYmU4YjA0NmJjMTRjZjgyYjg2NDk4NDYwYmZiMjZhZjA3NzEzNzFjMjc1MGY3YzU5MzIwYzZmNmZlMWQwNGNmYjQwYzA0ODY4NmI2YzFiNjlkYzY0MWI4OTU3YzJjMzQxIgogCiBITUFDX0RSQkcgTklTVCBDQVZTIDE0LjMgUFIgRmFsc2UgKFNIQS0yMjQsIDAsIDApICMxNAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyMjQKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yMjQKIGhtYWNfZHJiZ19ub3ByOk1CRURUTFNfTURfU0hBMjI0OiI1MjU2MTUxNjRkY2UwZGFjNTM5N2IzNTc1NDZhYWQwNDlkYmU1OTgyZGEyYzIxNWEyMzM1NTc1NTM0NjBmODUwNWEzZTdjODIyNGFmNTYxMTkwMDk5ZWUyMWEwNmQ2MmY5ZjAwZTI4MmIzMmI0ODZlOGQwZTMzOGYiOiIiOiIiOiIiOiIiOiIzZmU5NmM5YjEwYzRjOGU0M2NmM2NkNzZjZWQ0YWQ4NWFlNTc2ZjMyZWE2NjcxZWYyODRmN2M5NzQ5MWI3MjE1MmExOGExMDYwMTQ1ZTRmNWU3YzBjMzczYzM5NmNiNGM4YzBiNmQ2MjVjMWYwZDJhZTk1YjA2OTFjYjFjODBhM2RkNWVhYTIxNjMyYTgyYWFhMjhlMDlhMmJiZGVmZjdmZDg4MTJmYWU0NmRlYWUxNGJiYjE2ZGEyNGQwNjg3OGZjNDE3YjM1NTRmYjQ3YjBlZjlmZTE4ZDFiOWQ0ZjRjYSIKIAogSE1BQ19EUkJHIE5JU1QgQ0FWUyAxNC4zIFBSIEZhbHNlIChTSEEtMjI0LCAwLCAxOTIpICMwCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTIyNAorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzIyNAogaG1hY19kcmJnX25vcHI6TUJFRFRMU19NRF9TSEEyMjQ6ImNhODE5NTNkNTA0MzBiZmIwOTUzN2EzMThhMWE3YjkwYTkyMDAwNzdhYmI3MjFlNTVkOWFjMjg5NDZmYmY3NWQ5Y2ViYzgxZjExY2Y2ZDRkYjcxMmEzYjkxZDQ3OWUwMGJhMzBkNzM2YTc2M2NiZmU0MGI5MTQ0OCI6IiI6ImU1MGFhOGJlYzk2MzM5Y2YyNjA4YmI4MmNmMDM4ZDVmZDZiZjkzZTY1MjcxY2I3MiI6IjVjNWVlZDBkOThjN2ZjN2ViMzBhY2RkZmVlMDAyZDViOTljOTY1OTQ5ZDRlMjA5NSI6ImExYTdjYmM3OWJmYWY0NTcxY2Q4MDIwZGEwOTQxMThkMjQxYjNmMDE4ZWM4MjNiYSI6ImM4YjdkOWMxNTYyNGFlMDE4YTg2MTJlZGY2NDQ0MzU0YzQ1YzZhNzg4MjcyMjgxYzE2NTI2YzY4OWEzZGFjMzY2NzllNDRkODljNGFjZDdlYjU4ZmY0MGE1NzdjM2QxYTlmNGQwMTc1ZmVlZjlhYzU2NzRjMTE1ZDVlNGNkMTdmMjM2OWUwMTM1ZTMzYjAxOGJkYzk5ZTQwOTk3MTNhY2U5ODZhMTQ1ZWY1NWU4NjhmNzQ4NDZmZWIzNTkyZDQ0Y2EzZWJiYTYwNDRhOTI4ZTkyODRiNWVhNzUwNjNhZTgxIgogCiBITUFDX0RSQkcgTklTVCBDQVZTIDE0LjMgUFIgRmFsc2UgKFNIQS0yMjQsIDAsIDE5MikgIzEKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjI0CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjI0CiBobWFjX2RyYmdfbm9wcjpNQkVEVExTX01EX1NIQTIyNDoiYjk2Y2ExMjAyZmE5NTllZjU1YTY4M2E5MDIxMDY4ZTE0Yzc1Mzc2ZTE1ZDFmMDM5NGIxYzA5MWE4YjZkZDZiOThiNmY2Mzc0N2RhZTU4YzI5MTg2MTc5YjQxNTViODY4ZjVhODFjYTIwNmE1MDg2YTU3NTliMDI1IjoiIjoiYTM1MDk2MDg2YzFmZGViMWZiNjBkZDg0ZmE3MzBlY2NlZGQ1M2U1YjEyN2VlY2Y5IjoiYTMyNjlmYTc0OWU1NTg1MGQ0YWE5ZTQ2NmJjZWQwYmVhYjJlZGY4NmI5MjZjMmFlIjoiMjlmNjc5OWY3Yzc4ZmRmYTJkMGRiZGRlODM4MWFlYzVhZjI0OTU1NjkwM2Y2MzEzIjoiYzYzZWE3M2UxZGRjOWQ1NWJkNjRhNjNjZjczZjczMDEzNmFiNGY2ZDY4OGE5Y2Q1NmI5NDVmOTg3NWVmNGZmNDhjZGJkZDhiNzhiODk4NDg2YTY4NWQ4YWY4Y2NjYmMyYTgzNGE5ODA0ZTU2NmVlNzEzOGM3ZGJmNDg4ZDI2M2ZiZDM4NzA0MWY4MzVlYTQ2YWQyN2NiZDY2NzIxNDI4ZWQ1Nzk1ZjZlZDA0NGNkYjE3YzhlN2UzZWNiZjYxZGQ2ODIzOWU4ZmQ2NDRhZTg1Nzc2MDUwYWZiYWEwNmNhZjciCiAKIEhNQUNfRFJCRyBOSVNUIENBVlMgMTQuMyBQUiBGYWxzZSAoU0hBLTIyNCwgMCwgMTkyKSAjMgotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyMjQKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yMjQKIGhtYWNfZHJiZ19ub3ByOk1CRURUTFNfTURfU0hBMjI0OiI1OWFmMTIxM2NmY2FlZWEyOWUzMTQwMGFiNmIzMGYxMDhkNGE5YTc3ZDNiMzcwOTcyZDI5MDMyY2RjNjEyYjdjMzYwYzQxZjE2YjBjOWQ3OTQyMTkzMDBmZTA1NTFlMGU2NmQ2MzRhNGVlYzM5NmM1MGVjOTYwNGMiOiIiOiI2NmVkOTM1MmJlZDczMjI0ZDM1NTA4NzU0YWFiNjhmY2VhMTBhYWMwNmQ2MGU4ODgiOiIxOThhMzUyNmE2N2EwY2UzMWFkMDM0OGJiZGZlY2VkZTRmODJkNDIwM2QxZDVjYTEiOiIwM2ZhYTJmNGMzNDU3N2NkOGIyZWQ1M2UxMGM2OGM4M2MxZWJjOGQ4NzczNzkxNzgiOiI1ZTI0ZjFhOTA4M2YxMzI3NGVkMTAyMGFiNjkzNTIyMmNjYTY0NGQwOTIwODM5YzJiMTQyZTI3ODA5ODMyMDQ0NTNkMmU2YzU4NTE4Y2IzNTExODhiYzNlNWUzYjY0MDE1ODgyMTMwZDc0NTUxMWYwMDRjZmI2YjY0ODMxMTM5ZTAxYWU1YmJhNjRiNzRmMWExZWRlN2UyMjBhNmQyOWIxMDY3ZDdjNjhiYTM1NDNmNGRkYTJmYzk3YTNkZDIzNTkwYzJjMThiODU2NjI2MTg0NjJiYTJjMDUyMzE1MzRiNiIKIAogSE1BQ19EUkJHIE5JU1QgQ0FWUyAxNC4zIFBSIEZhbHNlIChTSEEtMjI0LCAwLCAxOTIpICMzCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTIyNAorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzIyNAogaG1hY19kcmJnX25vcHI6TUJFRFRMU19NRF9TSEEyMjQ6ImU2Y2M5NGM3MmYzNzk5OWYyOGI1ZmUzNTBiZmY2MjJiNDMzYWUxOTExMTc4NmM3NDdkOTU0YWRhZWNiYTQ3YWJhY2ZlYThjZGY1ZWFiMDVlMmY3NTBjMGE2NzljZmI5YzJjMmMwNzE0NjExNzhhMDU0YWY0MDk2NyI6IiI6IjMwMzI1Mjg3MDNkZDY2ZTQyYzdiNmI1ODgxNDgzZWNhNDFlOWVlYTUwMzg1MmVkYSI6ImNlOGMwM2IwYTA1OTgyY2VhZGI1MTZiMWZlNTEzZGEyNDAzYTllNmRjZDdhMzlmMCI6IjNmN2NjYjU1Mzc2ZjIzZGZhYzFkYzEzYmU2MTc4OTQ5MzFmOWMxM2QxNWZkM2RjYiI6IjU1ODY1NmNhZDdkYTJhZDg3YTdhMjllYzVlNjEyYWRkY2NhOTZkNzJhYzdiMjI0Y2RlODBjZTM4NmM2ZWZkYTEyMTEzZmU5YWE4ZTUxMTcxNGE0MmVkYWI1M2VhMDI4OWM3NWQzNGI0MmYyMzEzYWMzNjZmNTFmNWRkM2Y2OTY4YmJkNGMwOWViZjg0MGRmZDAzODUyZGVkYzFlM2I2MjA5ZDkzMjg4OWNiMDQwNjJjNjQ0NDgyMTA2Y2Y4YjdhMjM3ZDI5Mzc4NDBmMGM0ZDc1MmQ1MjcyNWI1NTkwZDE1IgogCiBITUFDX0RSQkcgTklTVCBDQVZTIDE0LjMgUFIgRmFsc2UgKFNIQS0yMjQsIDAsIDE5MikgIzQKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjI0CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjI0CiBobWFjX2RyYmdfbm9wcjpNQkVEVExTX01EX1NIQTIyNDoiY2Q0ZGNjOGZiNTA2NzI2MTFmMTllMGNjOGFkY2Y5Mjg1ZjlkNzZlN2UyOGJjYWMzNGU5MzExNjNmODA1N2I5Zjg2NDI0ZTVkNTE0YTEzYzBhMjViYmI0OWVlNDg1NTAxZWM1ZTIxMDYxZTAwNmFkMTU2OWQyNjEwIjoiIjoiMjQ0ODAwOTRhNDQwNjdiODZlZjQ3ZGIzOGVjM2U2MjkxNDM1MTE5NjM1OGJkOWQ3IjoiYzZhYzNiODc5YWRiNmMxNTBhOGVlNDQ0MjhjMzMzNTc0ZWQ5YjBkNjgwNjg0OGQ4IjoiOTJiZGMxNTE0ZDg3ZGFhYTMyMTY1NWQ1NmM2MzAyODc4YzJiZGUzNzcwMDE2M2U4IjoiMjFjNTFhMTU2OGFhZmI1NmFmMWZkNDI0ZjZmYTE0NjExM2QxNGQ2ZDYzZTFhMjRlMzE2ODEzMGViYzEwZGQ4NDkyNWJjNDA3N2M0MTg5N2FhOGIzYzczYWViNWJjZjM5MmQ0OTZkZWRjYjY0ODczNzliZmIzZTEyYmMwN2ZjZjVjMTk2ZDU5ZmNjMWZhNzMwZTU1YzAwZWRhYTJiY2E3YjFlMzJhNDBiYTA2NTAwZWQzZGQ3ZmNhYjM2MTk5NTMxOTk3OWEwZmE5Y2RjNDA2YTRkMjA2NTA4MTRlOGJmYWMiCiAKIEhNQUNfRFJCRyBOSVNUIENBVlMgMTQuMyBQUiBGYWxzZSAoU0hBLTIyNCwgMCwgMTkyKSAjNQotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyMjQKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yMjQKIGhtYWNfZHJiZ19ub3ByOk1CRURUTFNfTURfU0hBMjI0OiJmZGNhMDAzOWU4NDg1YTA2ZTZhOWFmYmRlNWIwN2ExYmJlNDllMTM2NTlhMjE2NDAzNDI4OTYzOWQyM2RjZjNmOTg3NGI4ZmIxYTFhZjg0OTViNmIyMTI5Yjg4NDc1Y2M1MjljOTYyNzFiYzFiYmI1YzdjMmVhMDMiOiIiOiI4NDFmNzY1ZWQ1ZjAwYmU4MzhhMjcwNzMwY2U1OTI2NjU5Y2Q3Y2Q5ZDViOTNjYTUiOiI4MjVmYTEzZWQ1NTQ5NzM3NjhhYWI1NTkxN2NjODgwMTgzYzNlYmIzM2E1MzIzMDUiOiI3MzZlOWRlOTMxMTk4ZGQxYzVmMThhN2RhMzg4N2Y2ODVmYmZhMjJiMWQ2YWI2MzgiOiJkZDg1OTZhNjI4NDdhNzdkYTgxODE4ZGJiZWFmMDM5M2JkNWUxMzUwNjliYTE2OWY4OTg3ZjAxZGM3NTY2ODkzNDJjYmE2MWQ4N2E3OWQ0YmNlMjMxMTc5MDA2OWQxMDcwOWMzYTUzZGY5NzRjN2Q2NzkzYWUxMjk4MjUzZjEzZWNkYmI1NjgwOTI4NTc5YjczZDczYWZkY2QyNGE3MDNkYzliMzkxZjMwM2Q4ODM1YmExMTI5YzNkNDYyMzdlZGU1ZTQ0NzMyYTc0ZjhmMjNiNjBhM2E0NWNlNDJmMDQyYSIKIAogSE1BQ19EUkJHIE5JU1QgQ0FWUyAxNC4zIFBSIEZhbHNlIChTSEEtMjI0LCAwLCAxOTIpICM2Ci1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTIyNAorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzIyNAogaG1hY19kcmJnX25vcHI6TUJFRFRMU19NRF9TSEEyMjQ6ImUyNDZlM2Y5NWQ4OWMxNjY3NjhhYWM2OWZjOTVmYjQ5ZWVjNDlhYTYzM2FkYjkzOGNlMTcwNWI2ODk4N2FlYjBmYWU3ZjU3YjdlOTllNGYzZTNlMWIxZGIyZDFmZWRmNDQzYmQyNjE4ZTk1MTkzY2VmZDkwNWUxZCI6IiI6IjEzMDcwMWY4OGNjMWU3NTQ1OTgwZTZjNmY2Y2M3NmIwMzM2ZjA4OWJiNjZjYzM0NyI6Ijk1NTMzZjRjYzI0N2M4ODdkNmE3Y2MwY2E3NTMwMDliZjAzNGJhOTViN2IxZDNiMiI6IjQ2NGZkMTZmMDExZWIyOTg2ZDk5ODI4NzlkNzkzNDlhM2NlNGY1OTA1YmJmZTgzMiI6IjBkNGU2YjAzYWY3YTY0ODMzN2FiZWMyZWZhNTg1OTA4YWY0MGU4OGQxZjEwNGIzZThjMzUyYWEyOWFjNzlmZThlNDQ4ZjM2YjBkZmQ3MDFhMWZjMGYxZDg2ZGNhYjdlOGE4ZWNhZGE2YmEyMThkOWFhZWExYzQwYWE0NDJjYTUxZjMxMTZjZWQzYzliOGJhNzU0NjY4OGVkNGYzYTEzNzhmNzZiOGEyOWVjNzYzNzg0ZmM4MjkwNmRjMGY2ODhjNWU2MGQ1OWU2ZDUyODRmY2Q5NmYzNjFiYzViMjg1NDY1IgogCiBITUFDX0RSQkcgTklTVCBDQVZTIDE0LjMgUFIgRmFsc2UgKFNIQS0yMjQsIDAsIDE5MikgIzcKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjI0CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjI0CiBobWFjX2RyYmdfbm9wcjpNQkVEVExTX01EX1NIQTIyNDoiY2IwNDA1ZTU4MjcwY2VjYjM0YTk5NTFhZGViNjk0YzU1MTNjNDk5Y2YzMTBmNmE5OTk4NWQ0ZmIzOTczNDYzZTkwNzcwNTc0MGUwMWFlZDRjYTIyMWQ0YjAzZWYzMGU2OWZkOGRiZmI0ZWE5MTlhOTEzODAwYTFhIjoiIjoiMGI1N2U2ODg0NzJlOWEwNWJhYTM5MjA0MTdhMmU4ZjlhOWMxMjU1NWZkMGFiYzAwIjoiY2FjMDVmNzlkOTgzN2M5N2JiMzlmNzUxNzkyNjI0OTgzYzM5N2ZkMjg4ZGQxZDk1IjoiMzQ0ZDJhYTJiM2JhZDE0ODU0MjliNjY2MDZiZjIxNWFjYjBhNjViZjJhMzE4ZjZkIjoiYjJhMTNkNzVhZDM4OTUxNDE0OTc2MzE5OWQ3MTEwOTJhOWIwZTRmMWU1MDgwOTM1NWNmZWZjMTg4NGE5NGY0ZDRhNTBhYzVjNWRhMGI0ZTliZDc1MzdlNDEzYmI0NTFmZGQyZmE3N2YxZjg5NDQ0NGNiNWM4MWU0YzQzOTc4ZWJmZDk2OTAwYTJjODk4NmM4ODVkMGZhZjg5YTJhZDVjNmVmOTIyZGZiYTFiNTIxOWIwZjNjNGFjMjA5NTM0MGMzYjhiZjBkYjAzNzE3MWI2NTQ1NzQxYzc2MjE3YjJhYTUiCiAKIEhNQUNfRFJCRyBOSVNUIENBVlMgMTQuMyBQUiBGYWxzZSAoU0hBLTIyNCwgMCwgMTkyKSAjOAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyMjQKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yMjQKIGhtYWNfZHJiZ19ub3ByOk1CRURUTFNfTURfU0hBMjI0OiJlMzhlYTc1ODRmZWEzMWU0OGFiMDg1YzQ0ZjQ2YjRjZjY4ZmYyNGI0YTZiMGIyNTg2NzQ2M2U0YTQ2ZGRjOWE0ZGUyM2Y3MjcyYWYxZTljNGUwMzkxYWE5NDkxY2U3Y2RiNWY5NjI5MmUwZDY1Y2I5YTlhNGEzY2MiOiIiOiJhZmUyNjdlMTQ5MWRlMzkzNDA1NGI4NDE5Yjg4YjE2NzMxMjE3ZWI0ZWU3NGM4NTQiOiJiZDBmM2M0MzIyOWEwZmZjOWUxNDNlMTY3MzgxMTFlMTZkNmEwNmViZjNlYWE1YjAiOiIyM2JkMTRlZjhjZjc5N2NmZjdmZjc4N2RmOGVkOGI4NzY4NGZlN2E5YTMzYmY2OTUiOiJjMjdhNmVlNWJhYjhmOGU5Mzc4Mzg0MGU3Mjg5NGYzYjAyNGM3ZDMyMDZhNGExODY5Y2U2ZmE4YjU2NzRiY2JkMjRkNGFhYjMwZjk4NjZkNzk3ZDg1MDQyM2M1NzY4NGI3Njk3OTEzYjllZjdiYzBiZTkzM2QwZTIxNTM1YmQ1MGZlYTBmZWViMjkzOTg1MjYxZmI5ZDRlYjFlZjk3YWI1ZWM2YjY5MWEwOGRiNGM4MTcxZTYzNzQ1ZDE0ZmI0YzNhMDNjNDFmOTA2ZGFhYTI4NzdiNzYyMmIyNTRmMDQ0OSIKIAogSE1BQ19EUkJHIE5JU1QgQ0FWUyAxNC4zIFBSIEZhbHNlIChTSEEtMjI0LCAwLCAxOTIpICM5Ci1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTIyNAorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzIyNAogaG1hY19kcmJnX25vcHI6TUJFRFRMU19NRF9TSEEyMjQ6IjcxZGM2MjUyNDJkY2I5NGU2YmEyYmQwMTNiZWIyMTEyY2ZjYTU3Njc3NGUxMDI4MzA1MDNiN2FlZGEyNGMyYzlkODYyZjUyMTI5NzVjY2MwMTlhZDJlYTA0NDI1OTVmNzRkMWQzN2RiY2JhMDcxOWQ4ZWEzMmJhMSI6IiI6IjBmZWY5ZjA5MzRiYjQ0ODViZmFiMjQzMWY4ODExZDk2M2VjN2ZhNzk1M2ZmYzIxMyI6ImE2YTc1MDFjNGE1YTkzYzM5NmVmOGNjOTY5ZWJkOTNjYWMxYzMwYjQ3ODNhMDYxNyI6ImM1OGVhMjMzZjM1YTIyZmQ5YjAxNTkyYzYwMjZhYTE3OTIyMDcwYjM2MDRjNzExOCI6ImExNDUyZDg1Nzk5YjU0MzcwY2ZmNjVmZDZkZDc0YjU3NTE5OTYwNmNjOGZhNjQ4ODBiMjY5NzJjOTEzYzM3MjAxMGI0YzNmNGNlOWI3YjU2NWE4ZjUzMDUwNzI0MDRjN2I5ZDcwZjdhZWY2ZTI3MDljMTY5NGVlZmFlNjZmZmE4MGYxNmViNGI5MWY4MDQxZjQ0ODc0MjdlNjlkYWE0MzdlMTgzZTgzZDNiOTcxOGJhNmEyM2ZiOTAzNjU4ODQ4OTllMGQyZjBiZWY1NmIyNzI0OWY2NWUxYzAwYzU0MTFhIgogCiBITUFDX0RSQkcgTklTVCBDQVZTIDE0LjMgUFIgRmFsc2UgKFNIQS0yMjQsIDAsIDE5MikgIzEwCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTIyNAorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzIyNAogaG1hY19kcmJnX25vcHI6TUJFRFRMU19NRF9TSEEyMjQ6IjM2YzFlMDQ4ZDE2ZjlkNjAzNWM2YjYyNTE1YWZiOTI5NjMzZjM1NmZlZDZhNjU0MjgyNjYzZTIyODRmZDQxMzIxMTZkMjFlZWY2NmQyOTYyOWJjNzEyOTY1ZDk2MGYxOGNmM2Y3ZGNiZjhhM2NjZDYxYjViNWZiNSI6IiI6IjkzYmIzNzJiN2FlMTAzNWRlNmYxM2IyYTM2YzNhZTU2ODJiOWEzZWE4ZjQ0NDM4MyI6Ijk3MTViNzJlNDc1NTk5Mzc2MmUxMWE5Mzg1N2YxZDUwYTA1MWU3MGQwOTQzMzlhNSI6IjJmMWU3Mzk0NTg2M2IyMzdmNDlkNmQyMGQwOTk5YTAyMDNmMjk1YjlhMDQ2ZGNhMiI6ImNhMTM1ODkxYjQ3ZjI3YzI2YWM4OTFkZjQ5YzgwZDA4NWY5MGMxM2QyMzZhNjBmMTM3MmVlZmQ4MWVhZmM1ODE5ZjRhZTVhZWU1YjMyZDQ2NjgxYmUwMTYyOWIwNzhhZTk2NWY2N2I4MWE1MjY4ZWYwYjMwM2QwOWUwNDhmNDQ0OWY1YWFhMTFhZjUxZjgwMTUxYjQ2OTdiMTM3MDA5MzAxNjdjZGNiM2I2ZTgyNjBlZWI4YmVjN2Y2YTY3YTIwNTBhNmVhNTY5YzgyNWQ2MWQ0ODU4YTFjZDE1ZjcwZmIzIgogCiBITUFDX0RSQkcgTklTVCBDQVZTIDE0LjMgUFIgRmFsc2UgKFNIQS0yMjQsIDAsIDE5MikgIzExCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTIyNAorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzIyNAogaG1hY19kcmJnX25vcHI6TUJFRFRMU19NRF9TSEEyMjQ6IjU4MjQyNWUxMzM1NmU3YTg0MGNhZTlmYTQzNWIyMjBhZjZhOTZmYjUzYWM5MWU3ZWUyMjAyM2NmNmEwZWVmMzkyMzkwNzg4M2FlNTQwYmU4MTZlMDYzMWM4OTQ1MjBiODZlOGM2YWRiODE1MmU1NWNiNmFlZDVhZCI6IiI6IjIyNzc2MmUxMzdmOWVlYzZkMmIzYzYzNDc2YjQwNGRjNWIwYzY4NjEzYTkzMDM0YSI6ImZiYTcyYzAxYTllNTFjOTNhYzAwYzEyMzJjNzE3ZDMyZmQ0ZDRjNzkxNTU2ZTcxNiI6ImY1MjU4YmYzMTg0NTc3NjlhOTNlZjViM2JhOTVmYTI3NTNhZDFjNWMxYjgxYTc4NSI6ImM3NTNhODRiYTdmNDFhZjJhYjc1N2FjMWU0YzljNDUwZDIxMTI3NjdmZjU1YTlhZjhmNThlZGMwNWMyYWRjYWVmN2I1YmY2OTZlNWM2NGY3MWQ1Njg1NTkzZjI1NGE4NzYyNTA2NWVlMGRmNTFhYjRmN2JiYTM4ZmFmNTc5OWM1NjdkNzgzZmEwNDc5NTdmM2Y5NjU1NzFhN2I0Y2I0Nzc1NjZkMWM0MzRkNmIyZTIyYWUxNmZkZjQ3M2E2YzAzMDU3ZDkzNGE3ZTI1ZjBlYTM1MzdiZTk3MjM4ZDc0YmM0IgogCiBITUFDX0RSQkcgTklTVCBDQVZTIDE0LjMgUFIgRmFsc2UgKFNIQS0yMjQsIDAsIDE5MikgIzEyCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTIyNAorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzIyNAogaG1hY19kcmJnX25vcHI6TUJFRFRMU19NRF9TSEEyMjQ6IjgzNmY1ZDc1MjFmMjZkODg0ZGMzNGFmMmNhNTZhYjRhNzUyZWExOGI5MDkwODVhODdjYjZkMDdkYmEzMmI2NTQzOTBhMjViNjhlYTdiYThmYjc5MDI3MWM3MTJmMzg3MTQ1MDUyY2E0NmNiNDA1MzQzNTVjMTY2NiI6IiI6Ijk5ZDlhZWMzMzQ2NjZkN2MzOTllNDUzNDU1ZWY2YWU4ODRjMjE3M2UxMmUzMWNmMiI6ImQ3NGQyMGRjMjJjNTVjMzVmMGI2NmE0NjRkZmJlOGYzNDk2MTY5MTZmYzcyNjI5OCI6IjQwN2IwOTUxNDA0MDc5ZmIzYjU0NTU5YzAyODYxNDNkOWNiMTg5NTdiZWQ3ZmIxZCI6IjgwOWYzNzJkMWFmNjBmZjk3MjA0OTE5M2ZlOWYxNzM2ODRhMmZjOTgyOGI2MGIzMjE2NGMxYjY3MzhlMWJhNmFhMTJjZjczOTI4N2E3NGM2YWQ1MjhhM2VjMDAwOTViNTkwYjQ0NzA1YjQ5NzUyMzZhMGI3ZWEwMmMxMjEzZjBlODMwZjI3NWY1M2JiNzllZmQ5ODY3OWM0NzY2Y2FkMjc3MzhlNmZiNzc3ZTk4Y2RkNjA2Yjk3MWZhNjA3NDUyODlkNWVmNzJhOTllMTkxOTY4NmE1M2EyNDFmZTM2Y2YwIgogCiBITUFDX0RSQkcgTklTVCBDQVZTIDE0LjMgUFIgRmFsc2UgKFNIQS0yMjQsIDAsIDE5MikgIzEzCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTIyNAorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzIyNAogaG1hY19kcmJnX25vcHI6TUJFRFRMU19NRF9TSEEyMjQ6ImU1NTVlZDZjN2FiMzQ0ZmVhNjhkNzNjNjQzMmU0ZTZkYTJlNjdkOGIzM2FiNzllNTcxOWEyZGVmMjU4YTg1MmQxN2Q5MzIxMjg0MDU4M2ZlMjM5MDA5NDljMzAxYTI5ZmM5MjA5NWY0NzE2MDE4MTQ0ZTY0NTgzYiI6IiI6IjUyNjJjY2NkMTM4MjU2ZmE4NDI0ODAxNDM1ZDExOGYzOWI5YWExZGI0ZDExY2E5ZiI6IjliNTVkNzZiNzQzYmQ3ZmM1NzAwZmRlOGZmY2E5NTZjMGVkNjA5MWRmMWEyMmFlZCI6ImY4Yzk5YWY4MDI5MTEwYzQxYTZhMDFmZDJkM2QxMmI3MTAzYWEzOWNiZWVhOTBjOCI6ImQxZWMwNmUzOGFmN2M2ZTBhNzBiNzNhYzYyYmMzNTU2MTgzZjk5YTQ3YmZlYTBmMGM0YTU5ZTdiYTRiMDcxOGRmNTQzOGUzNjliYTE0YmU4NGRiNDBkNWZmZThhMWE1OTUyZWRmYjgzZjYxZWU0ZDk4NGUzZDJmYTY3ZjU1N2FhY2M1ODI5MWNjNjg4ZmEyOWJlNTMwZTY2YzIyOGU2ODYwN2UyNWMwMTM0NzNiNGZmYmNmZWRhNzIxZWUzNWY1ZGZjODgwOTUyOGVhZGRhZDg5NjljZTcxOWE0MTEyMTZmIgogCiBITUFDX0RSQkcgTklTVCBDQVZTIDE0LjMgUFIgRmFsc2UgKFNIQS0yMjQsIDAsIDE5MikgIzE0Ci1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTIyNAorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzIyNAogaG1hY19kcmJnX25vcHI6TUJFRFRMU19NRF9TSEEyMjQ6IjEyZjJjYWJkM2I2ZjY0MGRhYWYyN2VkNmNmNmJkN2QwNmUyYWMzNzI3MzNjNjk3MTczOWUzNmFmZTJiYTFlYmY0ZTdlNWU5ZjU1OTE0ODBlM2ZhZTc1MmZhNTliYjk5YTE5NDliZGVjY2YwYzEwMGY2YWZlODg2ZCI6IiI6Ijc3NjZjMzZlNjU4M2NjOGUzYzI2YTgwNThmYTA5MjNiZmViM2VlMjIwMzNmNDZjMCI6IjYzZTYwZDFiYmE5YWEyOWFkYzNmM2I4YTVkYjUzZjNiNzAzYzdhZTY5YmNiYzJmNyI6ImY0MTZmMzY3MTdiYTVmMGE3ODEyNWNhNTJjY2QwMDRiMmY0ZjJkY2RkNDAxZjU5NSI6IjYxOTZiMmI0YWRmZjE0YTI2ZDY0ZjQ0MGI2YzE2MDIxMDI2NmQ3ZjViNzdkNWUyOTJlOTRiOGM2N2JkOWNjNzc0Mjc0NzQxZTdjMGM5YTdhYjIxYzMxZjExOTRlZjQyMThkZGNiYmU5NDA1OTA0MmQyMmVmNDRlY2ZlY2VmMjE0YTczZGI2NDUwNWQ0NmQ1NDkzZDc0NzVkMDY4NGZjMGU0MzFjNTI2NWMxMmIzNTMxMGQ0NDA0YjNjNGRiNjAyOWZhY2JhZWM4OGIwYzBhZTk3OTllNWFmMGFhNDllODQyIgogCiBITUFDX0RSQkcgTklTVCBDQVZTIDE0LjMgUFIgRmFsc2UgKFNIQS0yMjQsIDE5MiwgMCkgIzAKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjI0CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjI0CiBobWFjX2RyYmdfbm9wcjpNQkVEVExTX01EX1NIQTIyNDoiMmM1MGRhOTBhMWY3OTg3ZDUyMTY5NTBlYTIyNjg5NTg0YjIzNzY0N2Q5NmMxMjM5ZjkyNTE5NDJmNGQxM2QxNmY0MThiMGNmNzI2NWI5MWM0YWQ5N2E3YWNiYmRhMDY1YTQ4YmMxYmM1YzdhOWVlMTUyM2M1MGUzIjoiYTc0YzEwOGZlODcwYjkxYTJkZWZhOTcxZmExZWZjYjdhMjA5ZjI5M2QyOWJiNWVhIjoiIjoiIjoiIjoiODg1M2ViNDdjNGFkYTk0YTNkNThhMWI1MTc3ODRiY2NjOGY4MzFkMDJkZDUyMzljNzQwZmQ3Y2FhMzg2OWM1ZmY3YmJmNTIyYTc4YmUyZDUxMGM0OWM0OTZhNjY1N2EwOWYwZWRlMDBkYWVlOWZkNzcwNjFiMGYwNGU3MzQyNTE4ZGM2ZWMxZjRhN2ZmOTlkZDdjNzgzODgyYjU4ZjVlOGJjNDY3NTE2YzZiODU5ODVmYWI2NWM2NzYxZDRmZTc1NmZmYzI3ZmQ2MmNmYjkyNzc4MzkxYTI1OGQzYjBiMGUiCiAKIEhNQUNfRFJCRyBOSVNUIENBVlMgMTQuMyBQUiBGYWxzZSAoU0hBLTIyNCwgMTkyLCAwKSAjMQotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyMjQKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yMjQKIGhtYWNfZHJiZ19ub3ByOk1CRURUTFNfTURfU0hBMjI0OiI0NjA2ZTNlMTlhOGE1M2U4YWJhMDVkOWQxZmRhMWRkZjE1ZTc3MDlhYTJiYWU4YjU0ZWZjNGExNGU3MzRiNDVhNWNiYmFkMDBhNzQ5ZDJiZGU1NDAyNThkZTc0ZmY4ZmU4ODZkMDU1NzAzMDBhZjIwODZkMGI5YTIiOiIyM2VmNWZiZGU0YjI3MGMwODRhNzQ1ZTBlMjk5YTVlYmEyMjhhMzcwNzRmZDRmMDciOiIiOiIiOiIiOiI4Y2FmODZkZjI1ZGU1Y2JjMzc0OWZlZTRiNjRmZTA0MWNmNGVmMjg1OWUyMDcwNGJiMDFhYmUxMjZhOTBlYWQ4Y2ZmYzQyN2MyZjk4YWFjNDAwYWFiOTcxODQ4NDYxMjVhMmE2Njg4OGRlYTljOGFhMTA4ZTk2ZTAzYjA1YmJkMzBlNTY2ZmI5MGM2NjFkYzE5OTBlYmZlNzVmNzNmNWIwZGU3YmU0MTljMjI1YmZjYmEzNzEzODA1NDU1ZGZmYmU1ZDZmY2M5ODE0MTc0M2I1OWMyY2JkNzBlNzhmNTk3NyIKIAogSE1BQ19EUkJHIE5JU1QgQ0FWUyAxNC4zIFBSIEZhbHNlIChTSEEtMjI0LCAxOTIsIDApICMyCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTIyNAorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzIyNAogaG1hY19kcmJnX25vcHI6TUJFRFRMU19NRF9TSEEyMjQ6IjA4ZTJlMjE3NWZiMzRlNDExMTE3OWZjMjU4MGMwNWFmYTE2ZDIyNDQ0MGNjN2VmZjI0MDgyYmViMTYxMzNhOTkyZmM0ZjRlMjc2MjYzNGZiZjY4MTc3ZGMzZjExYzRkMDU3YjcxNjYxYWRlNTZlNzc2OGFiOWU2YiI6IjBhNGFmMzNlMjUwMWJhNDA5YjEzMjQ1OWJhOTc2MDM4ODhlNzI3YWNhMGEwY2VlMCI6IiI6IiI6IiI6IjM5YzYwYjZkOWY4NWNiNjliMjEyOGJkZTg2YWNhMmIwNTVlMjFmZmQ3NzE2ZDc4OWY4MzRlY2FjYzY5YTA0Mzg5M2IwOTQ1OTk5MTc5MzU3MWQzZDgwNzBmMDMzODJhMTFiZDFjMWJmMzhlODZmYWUxM2E5MzJjNmRjODJjNTQwZmFiOGM4ZWZmNDc4ZTU5OGQzMjk1NjYzYWI3NWVlOGE1NjM3NmMwZDYwN2ZlNDNiNzRhYzM5NDc5YjhmNjk0YTNhMTM4MjZiMWI5NjM0NGVjNjdiOWViMGE1ODU4ZWVjIgogCiBITUFDX0RSQkcgTklTVCBDQVZTIDE0LjMgUFIgRmFsc2UgKFNIQS0yMjQsIDE5MiwgMCkgIzMKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjI0CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjI0CiBobWFjX2RyYmdfbm9wcjpNQkVEVExTX01EX1NIQTIyNDoiYjQzNmViZWRhMTExOWRlM2ZiMmIyZTUzMmY3ZWJmNTlmYWM2MzJhNGQ3ODRkOTA0Zjg0NGJiNzNmMmNhZGU1YTg4ZDQ3OTBjOGMxZDU5NzNmYzczZjZiN2Y5MjkzMDNiNjJkMzBiNjgxOGEyNWRkZjcwNWJkYjllIjoiMDdkZTU1ODk3MjZjNDlkYzVhNzY0ZGU5YjQxYmNlNzQ2NzVlNGNhM2M3MTc2OWE2IjoiIjoiIjoiIjoiMjA5OWZjNzU0ZWNkMTlhMTlkZThhZmQyMWQyYWUyY2U0NTZjMzJkNmNlNzc3MmE5OGUzN2VkNDdmNTQwMDFmNDRmYWQ4ZTliNTkxYTcwZDNiYjI4ZjE5YmNhMjI5NDAzMjFiYTE3YzMzMTkzNjEzYjdiNWJlMWVjNTRlZmE0NzBiNzBjYmQ2YmUyOTMxMTkzYzM1Y2M3M2Q4MGMxMzliYjRlNjcwZTFhMmNiNzRkM2JlZGQzNjEwZTlkMGY5ZDE1NDM3MmE3MGI2MDhmZWY4MjRjMzQ2ZmIxNjI0MWIzMDEiCiAKIEhNQUNfRFJCRyBOSVNUIENBVlMgMTQuMyBQUiBGYWxzZSAoU0hBLTIyNCwgMTkyLCAwKSAjNAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyMjQKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yMjQKIGhtYWNfZHJiZ19ub3ByOk1CRURUTFNfTURfU0hBMjI0OiI0ZDNlOTkzYzI5NmM2Njk4M2I5Yzc1MWQyYzBhYTJkNTE5ZjgwMWE3NjRhYzlmMWZkOGQ4NmI1N2ViMjI2YmRkOWY2OWVmZDlhZDI5YmYxNmFmNDgzZTdkYzE3MGY4YWY2NWMxNjQyNmMyYWI3YzBmYTlkZjAxNzUiOiI1MmFlNGNmZTk4NTM0ODQwOGQzNjc4ZDYwMjU5YTc4MzY5YWFjMDI5NTM5MTFlNzQiOiIiOiIiOiIiOiJiZWFkMmNmYzI5MzE1MTMzZTZmNWJhMmU4NWJkNzc3OGRjZjk5MDgwODEwMzJlZTYzNGY5MGIwMTI0ZWQ5MzcxYzkwMDk0MTliOWUyYTQwOWZlNGFiZDYyOTVjYWQ1N2NkZGNiNjA0Mjk4NmNjOThmMmZhZmRmZjk5ZjdjYzExODVmM2JhMGQ1ZjFlNWY1NDUyZWU1ZjlkZjAzYzBlOGE0Zjg0MjZjYTI0NmFmYWZlODEwNzljMmYwZDE2NWI4NzA1NmU3Yzg1MjhlOGNjY2FjNWY0OWQwYmI1Y2NmYmVmYyIKIAogSE1BQ19EUkJHIE5JU1QgQ0FWUyAxNC4zIFBSIEZhbHNlIChTSEEtMjI0LCAxOTIsIDApICM1Ci1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTIyNAorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzIyNAogaG1hY19kcmJnX25vcHI6TUJFRFRMU19NRF9TSEEyMjQ6ImM3YzRlMThjNTZlOTE5MWJhNDNjOTY3Y2ViZTQ4ZTU1YmY5YWZmNGQ2NDQ5YzNlNmExZjk4NDZiZmQ3ZjkyZDUzNWJiNzM4NmMwMTU1Y2RjNWFhMmJlZWM4ODhkZTBkNDMyZjY5NWVjNzliMWM3ODg0MWFkOTQxZSI6ImMzNmEzODFiMWIzNmU2YWIwMGVhODA1NTdiNWU3NDUxZWM5NzcxMTAxZGMyMjU4MCI6IiI6IiI6IiI6ImRhNzRiMjNkMzA5ZmM3Y2Y3NjcwZDdmZWI2Y2I2ZmY0ZGExYjc2M2FlMmU4NjE2ZWRlZWMxMmM3MTUxMWY1YTI0YjljNDY2NTMyMjgzZjQxNTFhOTAyZmZhNWFlMjExZDdjMWVmYTg0NDc3YjkzZmMzOTNhYzk1NTIyZjM2NzNmOTdhYTllMzc5ZTQ4ZDE5OGQ1OTI5Njg0ODc1MTUwNjMzZmNmOGEwOTE4ZDIwNTA1NTFkOGRhYTkxODg3ZjNkMjY4NTczN2I2NDU2ZDBjNjFjMGExMTc0MTNmMTkzMzQ2IgogCiBITUFDX0RSQkcgTklTVCBDQVZTIDE0LjMgUFIgRmFsc2UgKFNIQS0yMjQsIDE5MiwgMCkgIzYKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjI0CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjI0CiBobWFjX2RyYmdfbm9wcjpNQkVEVExTX01EX1NIQTIyNDoiNzg0MjZmODY1NDgzZmZiY2M2MzMwZGIyY2NkNjViZjhmMjQ3NzA2Y2VkZjY4ZDRjYmNjMjg5YmFjYjFlZjMyZTVjYWYwNWYyOGEyMTE0NmE5YjE4ZTc3YjNhN2VkMGQyNGEwODAzYzlhZjcyNjRmZTRlMjNkNjkyIjoiZTUwMjYwOTBmOTgwNmZmNmYxNThjNGE4MzQ1ODhmNmEzOWU5YjRhNDRlZjJkZmE2IjoiIjoiIjoiIjoiMTExY2Q2NGE5OTUwY2M2ZjIwYTFiMzg4MTFmY2U0YTA4OTI5Y2EyNjU0YmVkNjZjMGNkZWJhYjBiODE1NTI4MjZjMDZlZjEyY2U0NjNmYzljOTFjODFhMzVkMmNhMDU1MzkwNTkyMmI5YTQ5NzVmYThmZWUyYzdmOWZmYTlmMmVkOGNiMjYwOWY0YjdkMzJhNDQ5MjdjN2I1YmFhOGY0M2RkYTEzN2FiYTliNDlhMmIwMzk0ZjdmNjdkMzdiN2Y3MWE1ZTRmNGMxNTFkYjZiOTZlOGU0ZGQ5Y2QwYmQ4NGQiCiAKIEhNQUNfRFJCRyBOSVNUIENBVlMgMTQuMyBQUiBGYWxzZSAoU0hBLTIyNCwgMTkyLCAwKSAjNwotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyMjQKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yMjQKIGhtYWNfZHJiZ19ub3ByOk1CRURUTFNfTURfU0hBMjI0OiI0M2NhMTFkNTNhZDAxOThlNGRiNWUxMzZkZTgxMzZiYzQ2MTg1MWEzMGNlNTk1MjFmOTMxYWQwNTk2ZDEzMzY1YmQ4Mjk3YTY4ZGQ0MmI3ZGFiN2Y0MDgwOGIzY2U2YzEyZjE0ZDRkZTc0MWNlNDUxYjY2MzdhMTAiOiI1MzJiMDU4OTFmZTQwNmNlNzI0MjEwMTNhY2ViNDM0NTgxYmU4YTNhMTM1NDlkZmEiOiIiOiIiOiIiOiI0YzQyZjc5MWRjODMyMmQ3NzlmOWExZWQ5YTI4YjBjZjM1MjYwMWE0ZWY2ZDc0ZTRlODIyZWU1ZDllZWYwNmU3MDAzMTRhY2I3YTQ3ZGNiYjYyODA1YmFiZGNmZGQyMzZlMzAyMjM3NGRlZmQ0NGJiZjc0Nzc2NGY3MmZiZmNjYWUxMDg5M2I1NGIyOTk2NmFiYTQ0ODQzNTk4N2MyMmFjZTRjOTMxZDAxZGM5NDUwOTE4NjBjYWU3NzQ0MzY1YmQ5YjYxOTA1OWI4YjY0NmIyMjk4Nzg5NjYwNDljZjgzZiIKIAogSE1BQ19EUkJHIE5JU1QgQ0FWUyAxNC4zIFBSIEZhbHNlIChTSEEtMjI0LCAxOTIsIDApICM4Ci1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTIyNAorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzIyNAogaG1hY19kcmJnX25vcHI6TUJFRFRMU19NRF9TSEEyMjQ6ImRkY2IzMDI0YjY4MWUzMGUxNmUwNTAyNmQ4ZTIzOTc3NDk3ZmQwYjJjMGFjMjQwMTdkZTI3NDRlZGNiMDk3ZDNhMTA0ZDRlM2M2YjhhZGNiNTU0NzQ2ZjlhNDM2NzFmMDY5MmMwMWE4Zjg5ZmE5OGVjM2E1NGFjNyI6ImJkOWU0MTk3NGY2NjI3YWM1YmJiMjFlYzY5MGVlY2U0NTllMWRjZWRlZmIzMjdmOSI6IiI6IiI6IiI6Ijc0MWIyYThlODJhYTNjYTlmM2E2MDlkMDVhNmUyZDU3MGJlNDYzZWY5NTdmMjM1MzQ0Y2RmOWUwZjg5YjM2MTA5NTFhYTFlZjBiOTQwNjc4NWI3NWU1OWMyZGU4MzQ5ZDQzNWU0ZGI4MmZjMmE0YThiOTRlMzY2ZjRlYjEzYzQzMmZjZjhmYWMwOGYwYzdmZGJlNjdhNDRlODE3MDZiNTNiNDYwZjc4YmVmYjhjYjZkZDJhMGZmZDEzYzg3ZGY4NGY4YTUxOTdlZDQ3MTU4Y2VlMTcxZTUzMjM1OTNkZjRlIgogCiBITUFDX0RSQkcgTklTVCBDQVZTIDE0LjMgUFIgRmFsc2UgKFNIQS0yMjQsIDE5MiwgMCkgIzkKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjI0CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjI0CiBobWFjX2RyYmdfbm9wcjpNQkVEVExTX01EX1NIQTIyNDoiZjgxYzRiYTg2MDVkYzE0MDcyZTJiZGEyZDJlZjY0ZTcxYWQ4NTYwNjEwNTZiOGQ4Mzc0ZmZmNWE2ZmQ5YTU0YTgxNGZkNzI1YmRhODk0NDAzNzE5NzQ5MmM1MmM2MmI5N2VhMDJkZjMzMzI1YjM1YjkxNzI2ODM5IjoiMjE3MTM3MDg0ZjQ1MTlkMDQ2ZWM4OTYxNDRjZjJjMzAxYmFmOTExZTE0NDA4NTJlIjoiIjoiIjoiIjoiMTRlZmQ3MWZhMTNkZmJkNDk4YmJlMTNmZmEyNGU2NDZkMDRlZTBlZjMyYzk5YzExMDA0YzNlOWQ4Zjc0OGFjMmY5NTZmOTg5OWE3MmM4ZDk3YWU5ODhkMDYyNzU4NTVmNzdhOTJiYzMwZjFiOTU3ZGJjZmM5M2ZmZmVjMzg1MjcxNWMyMzljNTMxM2U3NjVhZmZiZWQyNTdkMzAyYjZkMWI3NDk3N2I4MDEyNTIyYjY5OTAyYWRiODZlZmMxYWQ3NjhkOTlkNjU3YTUzNzVkZmY3MjBiNGNhZDg4Njg3N2EiCiAKIEhNQUNfRFJCRyBOSVNUIENBVlMgMTQuMyBQUiBGYWxzZSAoU0hBLTIyNCwgMTkyLCAwKSAjMTAKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjI0CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjI0CiBobWFjX2RyYmdfbm9wcjpNQkVEVExTX01EX1NIQTIyNDoiODE4MWZkMmNjNWY3YWUyZDRlZDJjOTZiOTUxMWFlZWVmMzNlNTBlY2YxNjRhZmM0ZWRkZWJhZjc2YTk2ZDk3YmZiNDAzNzc5NTllMWVkYzQ0ZDI0ZGYwNDE3NDllYzYyMzlmZjIyNmU0MGQ1YTVmZWNjZGJlZGE2IjoiN2Q2Y2E1YWI2NTJhMzdjZDc5MzY3ZDg0Mjk5ZjFmZjJjNWEzYzIzMzFjNzdiOThlIjoiIjoiIjoiIjoiNWEyY2FjODExMGEyNGUxZDhjNWY4YmZmM2U4Mjg1N2VjOGNmY2Q0NjljMzE2ZmExOGIwZjY1YTBkMzA4NjZlNDlmZWQyYTIyODEyMWY1MDkwMWRiYmJhNTYxNzMyYzRmZTgyYTk4ZjM0MWJiYzBhMzk3ZmQyNTdhNWY4YTRhOTEyMmM5OTE2NDhiMWE2NTA3YzgyZjg2NmQyNmY5YjIyZTBlZTdjOWE1MWM0ZDhlNTEwNGYwYjQ1NzAwNDNjOTI1N2JiOWRkNmYzNzMwZjFkYWY5NGY4MGJhZjg5MDdhY2IiCiAKIEhNQUNfRFJCRyBOSVNUIENBVlMgMTQuMyBQUiBGYWxzZSAoU0hBLTIyNCwgMTkyLCAwKSAjMTEKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjI0CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjI0CiBobWFjX2RyYmdfbm9wcjpNQkVEVExTX01EX1NIQTIyNDoiYTBhZDAxMmE5NzhiZWQyMjY4ZDA1MDg2YjgyM2Y1ZDBkYzliYjk4ZWUwMzk4MGQ3NTViY2U5NjhmOWFjODFkYjg4NmEyYTA1YjU5ZGY0MGQ4MzQ2MzM0YTAyNzZiNzNmNTI4ZGIwM2ExMTg1NDVhY2I3ZjJkNzBlIjoiMWE4YWNhM2MxMThmMmJjMGMyMTk2ZGY4MWVmMjJjMjY3ZDIwZWQ3YzYwN2NkYWUwIjoiIjoiIjoiIjoiYjlkYzBlYjFlNGFlYjQ4MmRlYTFiNGE1ZTZmNmVmOTYzNjM2NmZhY2U2OTY4MTFkYjJkOTEyZTk0MzBiMzAzZjIzYWM5NWQ2NTY4MjY5NGVmOTUxM2FjNWIzZTU2YTA1M2IyZTFhMmZmYmNiOTAxYzM3NWNkMTIyY2FiNDdkMzFmY2E1YTA2MDZkYWY4Y2MyZTVlNmU5OWI5MGZjOGFiNGZhNjc3OTRjYWFkOTE5ODVjYzkyYjIxODdkZDI5NjViZTA5ODAyNDBkOWJlMmZiMWM0YmYwNmU2MGY1OGY1NDciCiAKIEhNQUNfRFJCRyBOSVNUIENBVlMgMTQuMyBQUiBGYWxzZSAoU0hBLTIyNCwgMTkyLCAwKSAjMTIKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjI0CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjI0CiBobWFjX2RyYmdfbm9wcjpNQkVEVExTX01EX1NIQTIyNDoiZjI4YjE0MzQ2OGFiODc3OTQyMzBjZWY0MzYxZDA0NzIzNjQ0NDE4MGQwY2ZkYTU4Y2JiOTQ5NGNkMWFkMjFiZTk2Mjk3ZmY3OTkwMTEwNDIwMTM3ODlhOTI4ZjE4ODMxZmZiMDE2OTEyNmRkMDQ2Yzc3NGE0ZmNlIjoiZWE3ZmM1MGUxZWVhM2Q4NGJmZmNiZjgzYjI0MGU5MjEzNDhiNTMyZTdiMzNmMDk0IjoiIjoiIjoiIjoiNWMyMmU5MmYyNWFjYWY5OGY1NWZmMDZlMWJkODBkMzgyZGE3NTRkMWQzM2NmZmI2ZmNhOTMzNTgzYmE3NTgyMDAzNTc1NTE2NDBjNDM5NzcwZjc3Zjg0M2U5Y2UxZTlhMDU0ZjY5NTg4ZDc2YWNiOWNiOTJiN2EyZmEyOTAzYmM1MTM5MWJkNzAwMWNjYzFkYTY3YTRjY2U5ZTVkZDA4YzJkNDg5Mjk1YzM2ZGUyYzE0OGNlMjczMTFkMDc4OTMxMGRlMWNhYjI2NDFlOTJmODU5YjAzNjM4M2E4MDU4YTQiCiAKIEhNQUNfRFJCRyBOSVNUIENBVlMgMTQuMyBQUiBGYWxzZSAoU0hBLTIyNCwgMTkyLCAwKSAjMTMKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjI0CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjI0CiBobWFjX2RyYmdfbm9wcjpNQkVEVExTX01EX1NIQTIyNDoiYjYyOGNiNDQ4ZTQ3N2NiNDM5YTJkZTY4Nzg2MWE5OTJlNzM4ZGI2YjJiMjVjYzZjMjdhYWRmYzNhMGE2NDBiMzQxMWRlNDljOTIwNDA3MzAzZTgwYWJkN2ExZDRmNDVjNDc0OTk4MGZlMTU1MGJmZjY5NTE4MjEwIjoiZDVmNGY4MjY2ZGE5YjdmMTdhYzk3NzM0MjAxNTQ0MTA0YTVjMGFjYjUzYzZiZjIyIjoiIjoiIjoiIjoiMzRhODM0ZGJiN2RhMGI2YTJlMjM1M2JkOTc5NWJlZjM2OWNkZGU0ZDE3MmIzZmVhZTdiMWQ5ZmRmYjA0NDY0NTRjZmIxYWRlZmY0MjNkMGExNDNjMzNjMGUwZDhlNzkwNWJkMTcyMDg4OWU4YjExMjFmMWVmODJjZjE1NDQzYzJmOWM4OTk5YzU1NzNlN2RmNjBiNTJlZjM5NWNhMWQxYjYwZTdlYjcyMWMwMTJjMzQ0ZDA2YjMzNmQ1MTlmYTJiN2I2ZGZiZWQ4MzgzNDU2NTA0YmQwYjQ4OTNiZjJiYTIiCiAKIEhNQUNfRFJCRyBOSVNUIENBVlMgMTQuMyBQUiBGYWxzZSAoU0hBLTIyNCwgMTkyLCAwKSAjMTQKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjI0CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjI0CiBobWFjX2RyYmdfbm9wcjpNQkVEVExTX01EX1NIQTIyNDoiNWM3Yzk2OTBhMTkyNmE0NTgwYzY5MWMyZTUzMjdlNzM2ZDVjM2FlYzBjZThmNWQzMmQ0OTQ2YmM0YjYwN2Y3MTJhODc1OTQyOGIwMTBiYTFiMjY4YjBkZTY0ZmM1ZWIzMmQzZjdmYTliOGQ0ZjIwZmFiNDVjNzJkIjoiMDMxMGIyZDhiNTY1NWNiYjBmYzIwNDFhZDE1YTI0OGE3YjFmMmFjNzg4NDVlMjliIjoiIjoiIjoiIjoiNmY4YjZkZjU1ZDlkOGFjZjg3ZGMyYWYyMGI3ZjQ1MTJmOTQyNTk4NzQ5NWY1MTI5NzVkZTgwNTkxMzVlN2ViYjg2OThjYjAzMDFhODgxNmU3Mjk5ZTc2MDUzY2I2NjA1MWM4YjM1YmQyYjAwYjQ2OTVjZmY0ODQ3ZjE2OGQyZDYwNjk3NDk1Y2Q5MDA3YWI3ZGQ3NGVlN2Y2MWVlOTBiNzgyNzU0M2Y2MjRiN2MxNDEyYmJhM2Q2ZGYxMjQyZTZmZmQ5MDUzNGVkMzkzMzQxNDI5ZmMwMGJkOTdkOWJjYjciCiAKIEhNQUNfRFJCRyBOSVNUIENBVlMgMTQuMyBQUiBGYWxzZSAoU0hBLTIyNCwgMTkyLCAxOTIpICMwCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTIyNAorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzIyNAogaG1hY19kcmJnX25vcHI6TUJFRFRMU19NRF9TSEEyMjQ6Ijk2YWU3MDJhZjUwYzUwYzdjMzg4MThhNTEzMzkzOGJkN2NlNTExOTdmYzc4ZTIxODE1YjZjNWE3ZmY5YzAzOTVkNzY0MTU5ZjcwN2Q1ODEzZTViZjQ3YzFiODIzMmI0NGEwMDdiZjdkZWNmZWY0OTlkNzU4ZWQ1MyI6ImU5NjU1NDY0NDA5N2U5OTMyNTg1YjdmNGJiMTRkMTAxZjI0YzhiMDM3NmYzOGMwNSI6IjNmNjk4YTVmNmY0ZmU2N2VmMmRkZjIzYmQ1YTY3YzFhMmRmNGYzYjE5NDI1ZmI4NSI6ImZlMWY2YTkwZmMwZWQzOTZiY2EyMWMwZDQwYTFiYjU4M2ViNjNkZjc4Yzk4YWRhYyI6IjU5NDJiNTYxNDhmMjdkZDUzODhmMDBjYWE0N2ZmZDQ5MjVlODU0MjM3ZmUxNDQ1NCI6IjE1MGI5MjYwY2U5YWE0MTlmZTE4NjAzMzJhZTdjOWY0MmQ5YWRhMTY0OTY3OWI1M2Y0NmJjOWQyMGRlMzQzMTE4NmE1NGFmYjVkZjdiNjI2OWNkYzA1NTQwYTkzZmRkNTBhMmNkM2E4NjIzNzJkODYyODQxNzY4ZGYwMjg0NmIwNTc5OTNkZDZhYTMyZjg3NGI3MjIwYTVhMWZkOWNiNTczZDcyMGE1NGFmNTcxNWNlZGZjMTZmMGQ5YTQ2NzczNWUyNTNiMmIxYTZlOTc0MjFmY2VlMWYyZDY3MGRlYzFhIgogCiBITUFDX0RSQkcgTklTVCBDQVZTIDE0LjMgUFIgRmFsc2UgKFNIQS0yMjQsIDE5MiwgMTkyKSAjMQotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyMjQKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yMjQKIGhtYWNfZHJiZ19ub3ByOk1CRURUTFNfTURfU0hBMjI0OiI0ODM0NzE3ZjY2OWQ5YjU5OWYwZWU1MjYxMjkwNTdiNWE3YzU2ODA3MjRhZTA0NTljZWIwZTBkNGVkYTIxZTVmZTkyZTYzZmQyM2YwOGY4YTBiMDk0YTg1ZjNmMzc3ZmRmMTAxOGFkYTBjNDYxYjVhMDVjMzM0ZTgiOiI4NzBiNzg1N2RhZTk3Y2QzNjFhMDA1YzMwMDUwMTNlNGRkNTVjYTc2ZTQ2YjYyYmQiOiI1MjI1MzRiYTFhMDljZjlhYmYyOWJkZTY2Y2UxZGFjZDBlMjczZTg5NTRlY2NhZmIiOiI0NWY1NDE2OTY2NWY1OWQ5MjIxMWYyNjY4OTIwMDk5NThlZTUxNWYxNGQwOTU4MWEiOiI0NjMzODE5YzJhZTgzYzcxMDU5ZWM4YWU0MWVkMmM2OGNhZGY5YjIwODVhNWI4YmIiOiI3YWZkNmNmYWZkOWE3YmFkMTU1YjU5YThiYjIwOTRmNzZiOTE1YjkzNzY0ZTkyODU4ODIxZDVjMzJmZjRhMjk0OTM3ODhkM2RjMTYyN2ZmZTc5ODA5NTAzOTQzNDllYmE4OGI5YzJmNjg2OWFjNTA4NjI5NjM2NmI2ZjRlZTM3ZTg1MjlkMjkxYzlkOTYyZTMwNjYyNDIzZmFmMzc1Yjc4MjBlMGI2NTBkYjAzZTNjOTk3OTFkODA0MmRhNzkwY2NlMWExOTk3ZWEyMTQ0MWRiYTRiOTM2YmQ4YjM5MzMwMCIKIAogSE1BQ19EUkJHIE5JU1QgQ0FWUyAxNC4zIFBSIEZhbHNlIChTSEEtMjI0LCAxOTIsIDE5MikgIzIKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjI0CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjI0CiBobWFjX2RyYmdfbm9wcjpNQkVEVExTX01EX1NIQTIyNDoiZjVkMWQyN2ViMzQ0YjYzZTkwN2Q4MmEyZTU3NDk0YjI1ZGFiY2FlNDQwYWM4ODczODUxMmQ5NjAyYWM4YmNhMjQzMDE4ZjI0OTU1OTllNjE4ZGRlMDI2MWU0M2VhMzhkNDVlN2MwOWNjZGM0YmYzZGQ4ZTVjMTAwIjoiMTJmZjg0NGU1YzViYjNmZDg3MWZlYjM3YWI3OTYwMDI4NDZmZmFjYTVhNzQxYzU0IjoiZjY0MmMxOTYwMjc1NDU4NGFmYTMwODNmNTY3ZDgwZmRjZDFlNWMyOTIwMmFjM2FkIjoiY2I2ZGJhZDhjZTFhNTY3N2I0ODI1Y2NhOTM0MzM2YjkzNmNjZjg0MWZmOThkODk0IjoiYzExZmNjMTU3YzY0M2E5NDNlNTQyNzRmMWQ5NDJkOTk4ZmQxZWEwMzMzZTIxNTg4IjoiNmYyNWFlOGJmOGMyNmQ1ZjBiOWQyYTgxYWNhZjIyMTc5MGEwOTI0MWI2ZTgzYzllNTI3Yzc3ODQ4ODFkMWY3Mzk4YzJkNzc3MTE3NGY5MmFhYjQ1MTM0YjQ2MzNhZDk2NDMwZGYzMGIxMzBhZTM0YWY1MmRlOTBiNDI1NDA1OTU5YmEyNGE0MTY4NWEwNGQyNDExZTJmMGU4NTY0YmY1YmYzMjgwY2I2ZDc1ZDBiOTEwZDA2YzczYTYyNWNkNTY2NDZlZWJmZjE0ZmNmZjgxNDExYzA1NTkyMWNkZmI0YzAiCiAKIEhNQUNfRFJCRyBOSVNUIENBVlMgMTQuMyBQUiBGYWxzZSAoU0hBLTIyNCwgMTkyLCAxOTIpICMzCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTIyNAorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzIyNAogaG1hY19kcmJnX25vcHI6TUJFRFRMU19NRF9TSEEyMjQ6IjQ5YTEwNTY5ZDg3YTc5MGQzNGJjYzNjOGZkNzdkMDc1YTFjZWY5ZWZmMzM3ZTg5MjliNTFiZGI4ZDZjNWRmM2FkMzEwNDU2ODRmZDFkYWJiMWZlNmYwNTJmYzk4ODYzODRmZTQzYzBhN2FiYzdhZGNhMDQzZDM1ZSI6IjM0ZDZhZDQzNGE0MzZhNjkwZTc2NDRmMGRjMjIwNzEzMTE0ODE5MmNlYjJlOTFiNiI6Ijg3MDczMjhmYzVhMTcyMWU0ZDcyYjIzYzJiOGNhM2MzMGRkZDk1NjY0YWM0NzhhYSI6IjgyYzhkODNhOWY1ZDU2MzlhNmExY2UyNmQyNDRiZDMwZGNlYjFjYzk3ODYyN2UxOSI6IjJhNTNiMGI4MGIyOWM3ZDA3MTk4M2I2NWJhODM1ZTRlZGE2NmJjZmU3YjNkOTBiNSI6IjA4ZTI0Y2NhYWUzYjQ0YjcyNDhiMmQ3MzVhZjk4NWRjYWRiODRmNzRkMjAyYmNhNzI2ZGUxY2Q2NjNiYjVlYTFiYjY3YzY2OTEyNmFjOTcyMThhOWNhNDU0OTFkZjkwYmViMzg3NjE1NDc0MjQ5YmJhMWFmZDQ1MzRiZTdhNzRjNjFmZWYzMDhmMTM2NjFkZGZjY2U0MGYyNGI0MTBjZmZiMWNjM2NiYmEyYzZkMjBhNWU0YzQ4MTRkNDRiZWYwN2JiNjk3Y2ZjZjFlOTkzMmU0MzM0OTM3NmRjMDQ4NjVkIgogCiBITUFDX0RSQkcgTklTVCBDQVZTIDE0LjMgUFIgRmFsc2UgKFNIQS0yMjQsIDE5MiwgMTkyKSAjNAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyMjQKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yMjQKIGhtYWNfZHJiZ19ub3ByOk1CRURUTFNfTURfU0hBMjI0OiI5YTQyMzJhNTljYzU3OTg2N2Y4MzMwYzI4OGE5MjE4MjUxMDMwYzAwZWJlNTBjOWNkOTdkNmNmZjZlNDlhZDA3OWRmNTA5NjQ0ZWMyZWJlM2FkNGU1MTU2NTRhZjM4M2RhMjY1ZDdiMzQ4ZGQ0Yjg5ZGRkNDljYmQiOiJiNDQ5OGEzMmY2NjRkNGI0ODljMmI0N2U2Nzg0NWQyZDJiZWQ1MDk2ZTg4Zjg2ZGUiOiJiODQ3MWVlODc1MzE4MTdkODFlZTMyNTc4ZDI3ZmEzYTE5MGRmMzM1NjFkYTdhMmQiOiIyZTc0MTk0YWE2MmVmOTExNTk5YjM3YTUxZmE3NDI4MTdlM2E0ZTZjMjU0ZWMxNzkiOiJhZmM3ZjEzYWU1NWU3MzhjY2ViOTc2ZWJkZDAxNjk4ZGU0ZDEwM2RiNzk3Zjc5OWIiOiIzNDBjMjhjYjdjZjRjM2UxNDNkYWMzZTEzM2RlODY0YjFmNDU4Yzc2ZTNkNDdmM2NiYjY4NDVmOTQwYmUxNzRiODgxOWZjNTM5ZjQyMDA1ZjQ0ODVmZGRjNjU3ZjA2NGMzNDg3MzA5NGUyNWE5YmY3ZWMzNDFhOThjYjk3MDE0YTFkNjk0YjE2OTQxNzBjYTVhODk3NmU4NmY2ZTRlNDEyMzJmNTI2ZWM4NTM2ZmFjZDAyMzk0ZjQ5MmZiY2M3YzI5OGVmMGVkZGIzYzVhMTQ4Mzk5ZGVkNzY3NzM2NmNmMyIKIAogSE1BQ19EUkJHIE5JU1QgQ0FWUyAxNC4zIFBSIEZhbHNlIChTSEEtMjI0LCAxOTIsIDE5MikgIzUKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjI0CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjI0CiBobWFjX2RyYmdfbm9wcjpNQkVEVExTX01EX1NIQTIyNDoiYjg5NzQ0MDA5NzkzZDJjMTE4MzY1YjFkMmYzNDNkNmI2YzU5Mzc0YjQxZGJkODA1ZTc5M2YyNzg4MjQ2N2M1MzQyMDE1Y2Y5NjhiMDgwYTg4YTE1ZmQ2YTdiZTM3NTdiMDUzMTM1Mjg1MjVhYjFlMmNiZDA4ZmZkIjoiZjNjMDJiZTBhODgwZTE5NDAxM2MyMWIwOWI2NzAzYTYxYTdjY2Y3YTczZThhNTQxIjoiYmNhMjdmMTAwNjBiYjhkMTZkNDk5YjNmNmNhMDVlZDg0NjJiNTFiMGI0M2ExZmQ3IjoiZWI2ZmNmNzU4ODRiZTkxMTIyMTlkMzU5MDEzZjQ1ZmNiMTk1OWVhOTcxYmQwYmM4IjoiNTBhMDNiYzM2NTJmNTBjYjllZDExNjdlYTcwZWMxZTc0Zjg5NmY4MWE4MDkwMjE2IjoiZDJhNTI5NzIyMzY1ZTdmZjNlNjYwOTY0ZWViMjcwNDBhMGU5MmE0ZDE5YmJlOTQ1OTJjZmViYWQ3MTA0NzQxNDY3NmNhNmNhNzIyMzRmNTEyN2YzMTNjYjdmNWJlNjEzYjQ0ZDk4OWZlMTQxYzlhMGVjMWYwYjRkODNjMzZlNzQ0Y2ZiMWM3MmMzMmEwMmI2OGMyMWQyODgzMmRhMDA4YzU3NjY0MDQ2MjU1ZWYxODQ4OGVkNzUwZWM1ZTczYjE4ZWVhZDkzOWY5MzJkMjgwOWYxMjkzOTY3MGMzYzEwMzMiCiAKIEhNQUNfRFJCRyBOSVNUIENBVlMgMTQuMyBQUiBGYWxzZSAoU0hBLTIyNCwgMTkyLCAxOTIpICM2Ci1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTIyNAorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzIyNAogaG1hY19kcmJnX25vcHI6TUJFRFRMU19NRF9TSEEyMjQ6IjZkMjkxOGMxNWJlNzg3MWNhZDk5ZGM5ZTA2ZjczMjUzZWY5MDVkOTcwNWM0ZTRlYzM4NjY0MDQzYjA0ZjlhMTUwZmU1OTUzYmZhN2FlYmQ5MjZiZTE2MmI3ZWRkNzJmZGMxNGZmOTdlNjdkYWU2MjU3YWQ2NTRmNCI6IjQ4OTI0M2VhYWMyMTVmNzZhNTczYjkyZjA3MDlkMTE2YmQzYzgxN2ViOTVjMmMzOSI6IjBhODRjYWQ3YTFjZDIxYTVhZmU2NTU3ZDdkMjg3NWQ5YzYyMTgzY2JiZjQ5YTEyMyI6IjBjMTQ1NzhhYzk1MDQ5MDJjYjlhYTY1NDA4NjI0NmQxMTMwMzlmOTI2YTg3YjMyNSI6IjFhYWFiMWUzYTI5ZTE0NGNlYzgyNWQyOWMzZjQyZGM5NDVjZjI3NzJlZDMwY2I1YiI6IjMzNDM4YmE0ZWRkMGMzOGRiOTlmMmI2YTUwYjM1ZGQ4OWFlY2IzNDkxOTkwZWM0ZTYwNDYwYmIzMmViMDE4NmZmOWZkYzk3M2IxYjBkZjIzYWU2NWRhMzFiOGFmNWEzN2E2OWY4MWFiM2U1NzdhNGMyYzMxZTUxY2ZjYzRlODQ0YjA0NGZiNTk3ZTkzNzUyNGY1OWEwMDE5YWQ1MTIwYzQ2MDMyOWM5ODJmYzkzZThlN2E0YjRlMWRlNTYxOTEwM2IyM2E3YTU3OTYzM2ZjOTI1ZDE0N2Q4ZmI4NTZhMjc3IgogCiBITUFDX0RSQkcgTklTVCBDQVZTIDE0LjMgUFIgRmFsc2UgKFNIQS0yMjQsIDE5MiwgMTkyKSAjNwotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyMjQKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yMjQKIGhtYWNfZHJiZ19ub3ByOk1CRURUTFNfTURfU0hBMjI0OiIxMzMwYzRhZWY1NGZmODQzODdlMDM3MmY3YzhkMjczY2VjZjBhZjJjZWIzMmVmNmVkYjZhNGYxYWNlODAyZjNiOTVmYTY5Y2Y1NzhlMmNkYTFkNjA2MGVjMjU1NGViMzE1MjUwNzM4N2YzMjVkOGUyNjAwOWJkODAiOiI4OWQ3YmY4ZjU3NTRjZWRjMmUxYTI0OWY2OTNlMjkyNzYxNzBmNjJjMjljNWVkYWUiOiJhNmI1OGYzM2Q1NzU3MGY0ZGYwNWJiZmI3OTJhMDAwODdkMzMxZTE3NDE3ZTA5ZWYiOiJmNTdmYzcwMWU0ZjhmNWNjMjE4MWI1MzU3ODI0ZjkzMmY2ZTA3Njc5ZWMwZDNjYzciOiI1ODZjNGU4YzU3NjkxNTZjYmI1NGMwMjVmYjAxYWFkMGI2MWFhNjIzOGMyMzE2NTYiOiIwYmNiNmFkNGYyYWNlZmI1NDljNDYyNzFkNWE0ZWQ0MWQ3ZGVjYzA5NTEzN2UyMDQ0YjYwMjczMzg4YzZjNmQ3OWNiODkwMTZhYmNhZDFkNmExMzg2MjE3MjBiNzFmYzExZWY4MmZhZTA0MDI2ZTA4OTI2ZTk0MDQyNjk0YTBjMDA4Zjk5MjgxZTAzZGE1ODBmYmI2NTQzYWNhMmI0NTk2ZDM5Njk5Yjk3ZjFmZTY1ZWM2MGE3MGI4ODc3MGViODI1YjcxNmExMGNlNDEzODNmMzFkYjU5NjA3OWE5ZDU0ZSIKIAogSE1BQ19EUkJHIE5JU1QgQ0FWUyAxNC4zIFBSIEZhbHNlIChTSEEtMjI0LCAxOTIsIDE5MikgIzgKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjI0CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjI0CiBobWFjX2RyYmdfbm9wcjpNQkVEVExTX01EX1NIQTIyNDoiM2YwNTY0YjljZWVlMzJjODk0NGM4ZjJiYzRiNGQyMTc5YjM4YWNjODgwYmRiOTFlZWQ0NjZiODgxZTJjYzIxZGY3N2JjMzkwMWFiNWNlNWVjZjAyOWEwNjY3ODQ1MDNmODBkMTg1Nzk3OWIwOWM0NTYzOTQ0NDMzIjoiNWQ1NGZjNzE1NTU2YzIwZjViMmQwMWQ2YjA5OTJmMWM1OTZlNWFkNzdmODFkYTc1IjoiMzVjYjZkMDc4NjJmYmFiNGY1MDAzODA5N2NiNDYzYWFkZjE0ZTUxOWM4ODM0NjUxIjoiYWJiMjFlNTAxZTg1YWQxZWRjNjYxMDhlM2I4ODM4MGZkZGY4MTBiMTBiODgzMzE3IjoiM2M2OTBjZGQ5OTdkZmE5YzU2NzdiZWU5NzZmYTkzY2FjMjFmNWJiZjM4MmY3ZjUzIjoiYmFlODcyYzlkMjIxYjE1MzFmODVjMTVmNDY2YjdhM2FmM2ZhOWM5YzZiNzJiYjhmNWRhZDc3ZjNkMTJkZjUyZDEwMzQ3YmE1ZDY1MDRjZDBhMjg1YzNiZTU3OGJiNjdmMGE5ZjAxMzc0NjNkYzAxY2RjYjg0N2U3ODUzYzVkYjRjYmI2YTExNWViZmY3YjgwZGIwNDA2YmFjY2IwZTNlNjhhNGE0YTk1MzY0YzJkYTI5NDY2ZTE2MGZlY2U3YjhkZGI2NWRmYWIwMDBjNjZjYzgxMDkzODBhNjAxZDVlZDkiCiAKIEhNQUNfRFJCRyBOSVNUIENBVlMgMTQuMyBQUiBGYWxzZSAoU0hBLTIyNCwgMTkyLCAxOTIpICM5Ci1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTIyNAorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzIyNAogaG1hY19kcmJnX25vcHI6TUJFRFRMU19NRF9TSEEyMjQ6IjExNWM5NzNkNmRmNDFlYWQ0NjRlMjI1NzJkYmUwNzYxZGNkYjlhYWQ5MzBiMmU1NWE1NTU4MDc1ZmI3YzUxYzk0ZWZjNWY4ZmU1ZGZlMjRkMzAxNzVhODlmMWJiY2YxNDYwMzdhMDdiMzI0ZjU3MmQwZDRjMjdlNCI6ImQzMDc5ZWUzYTNjOWIyZDY5ZWUwZmQzMTZhNjQ0OGJjN2Q4ZTNiNzMwOTQ4YzQ2ZCI6IjIzNDhlZTg3YmQ1YTNiYjQ1ZDUxYTdiNmExMDkwNDNhOWI2ZWUzZGIwMTFkZGEyOCI6IjkzN2ZlMWE3YTc5MDc1NGJmZjk5YWQ1MTc4MmU4ZWY1YjQ5MjhkMDA1N2IwYzM4MCI6IjNlODk4OTlmNGFhZDI0MWE5MTg5ZmZhMTI3Yzg3YzE1YjVlM2JjZmQ4MGJjMzE2ZCI6IjBmZmM4ODNhYTE5YjNjYmRlYjM5MDM5ZmQzNzYwMTYwYTkzY2Q2NjNiOGIzNThlOWZiYjYzMDBkZjE2NDY4OTMwM2VlNWYyNDg5YWI0YWIyZDUyMmY2YTMzYzkzMzUwZWFiNTUzYTI0OTliMTVmOGNhMTk4MzAzZmY0NWU5NDZhMDZkOGE0MDk1OWYzM2E3NTljNTM4MWIzYTU5ZGEyMmU2ODAzMmFiZjNkYTNkYTZhYWRiNDEwY2I0MWY1NGIzMTQ2Y2U1N2Y5YmI1ZDI4YmM4MjNlM2UwM2MwMjk0Nzk0IgogCiBITUFDX0RSQkcgTklTVCBDQVZTIDE0LjMgUFIgRmFsc2UgKFNIQS0yMjQsIDE5MiwgMTkyKSAjMTAKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjI0CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjI0CiBobWFjX2RyYmdfbm9wcjpNQkVEVExTX01EX1NIQTIyNDoiYzI4NTQxNDI1YTdjZjMzZTI5YWRhYTkxZjMyNmYyMTZkZTg5OTc2MDMxOTc3ZjEwNGY0NGZjYmNkY2Y0NTc5MzM3NDM0NjEzODAxZmU0NjYxNjQyMzkyZGIyOWYxNWYwOTI0NTY2ZTcyYjU5NmIyM2ZmN2IxOGQ1IjoiNDQ2NTBhMjk5NzJhYTg1MjFkNmZiOWRmZmViMTVjMDA5MDNhMjgzZjIwZWE5OTE0IjoiNDNjZjRkZTAyNzY0ODNiZTEzODJmM2NlY2M2YTgwMzU1MWE0MDYwMjU4NGNkODRiIjoiMDNlYWExMDYxMjg5NWRiOGY2NmQ1MGEyMjEwZDczZDFmNTYzYzNjYTkyOWQ5ZjU0IjoiOGQyYjIwYWJjNGU4ODkwYzc3MmJjYWEwNWNiN2IzZWI1MDI1YWM0Y2FjYjVmN2NlIjoiYWVkMjdmZjhlYjU0YTdkMjc4N2U3M2VkMmE1MTg3N2MxMjUwYzBkNGVhZjEwYWFkZGIzMDQwOTYyNDI4OWE5Yjc3NDJjZGViYmE1NDIxOGM3YzQ0OGI1N2YyMDkxODJlMjE0MDE0Y2QxODA5MTZhOGMxMjVhZDQzOGFmMmU1ZjVjYTViMDBmOWNmMDYzZjBjMzA3NTYwZWQ0Mzc4MzgyYjQ1NzJiOTcwODhmOGQyNGUwYmRmMGZjMzQ4OWY2NDA3NGYxMTU1ZmJiMTE2M2I1NGM5MzA5OGI4NDEyNTdjMzAiCiAKIEhNQUNfRFJCRyBOSVNUIENBVlMgMTQuMyBQUiBGYWxzZSAoU0hBLTIyNCwgMTkyLCAxOTIpICMxMQotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyMjQKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yMjQKIGhtYWNfZHJiZ19ub3ByOk1CRURUTFNfTURfU0hBMjI0OiJkZmE1MjA4MmFmYjRkZDEzN2NiNTIwOWY2NzcxZjA0ZWRhMjU3OTQyODA5ODNiYTFkOGNkMmYzZDdmOWRlZTU1NmFjMjZkOGE1YTM2OGQyOTA5NmVkNjQzMDg5YjY1ZTlhYjE3YjVmNThlYzgxNjU3MDQ5OWZiZmYiOiIxNmNjZmQyMDQwODA4MjgyOWFhZjhhODE4ODg1MTY0NTgxYzlhMWJkMDllOWZjMTIiOiJhYmUxM2QxMmE5ZjAxMzNiZGViZTE0Nzg1ZGZlZjVmMDhhMTMzYTZjYjVjMjZhOTIiOiI0ODVkYWQ3ODA0ZGU1OTQzNTZjZjNjNTcxZDVmMjIyNjNjMGI3Y2JkNGRjYTFmMWIiOiI1OTYxZjgxNzdiNjAxNWFlMDExOWQyMmUwYTQ1YTRhYTFiY2RjNTgwZjdlN2Y5NzUiOiJlZTQ4ZTU3ZjFiNWJkNzJjOTljOTExZDMzNTM5NTJjMmMxNDM2ODljM2NkOWI0NzRhNDZlNGFkYTgzODExZWZjNjdmMjU1N2QzMjM3MjM1MjY4MDk4MjVhYTMzOGE4MGU4MzNjOTUyOTdkNmIxNjQ5MGRiNjMzYWMxZjE2NDgwNzFjM2FkNGNkY2VhMDU2YzQxYjRlYjE1N2ZmYzgzYzM0NTRiMGNmMDAxZjFlMDFjMzFlNDhhNjE1ODczODFlMjkzZTZjZmY5NzI3MGMxZjE1N2IwNjlkZjNlNTkxYzJmOSIKIAogSE1BQ19EUkJHIE5JU1QgQ0FWUyAxNC4zIFBSIEZhbHNlIChTSEEtMjI0LCAxOTIsIDE5MikgIzEyCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTIyNAorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzIyNAogaG1hY19kcmJnX25vcHI6TUJFRFRMU19NRF9TSEEyMjQ6Ijk1ZjNhMWFlYWNkMDcyMThhMmNjZWU0NGM4MDdmNzkwZTU2OGUwMDMyYTQyZmRjN2M4ZGM5YTcxZjc2YmQ3MjVhYTkwOWRkYmRmNTQ1N2YxZGM0ZTY5NzQ2NDI2YTljNTZmYmVjNjAzODY3NjMzZWUzNmE3ZmU2MiI6IjY1OGI3MzI2Y2Y2YWRiZjcyMDhkMzdjZDY5NTQ3ODA1YmMzZjU4ZmRkODc0ZTE0MyI6ImQ0NDM1MGM3YTY2OGU2NDg3M2ZmOTdjMzFkNzljYjIzYjBmMTYyMGFlZDdjOWQyMyI6ImRmZWZmZjgwZjEwYzMxNDNiODJkZTMzOTJjMzk1YWI5NGFjOGEyZjRjMGEzMDA0OCI6ImE2ZDIxYTc2MmFhYWRkY2RiYWU5YjllY2VmYmNiMzE0OWQ1MTRjOTRmZTgzZWIyMSI6IjRmNWU1NDQ0OTFiNzJiODRhMGQwNTMyZDdmOWNlMDFlYzJkZTZhMDVhYjUwNTZmYzc1ZDhmNzNiYmNhYzVmZmMzOGUyMDc0NWQwZThhYTFlYWNkZWZlYTZkY2JiOTI0NzViNWNmOWNlMGE2MTdlNTYwM2I3YjlmZTM0ZjRmNGNiMDRhZGUyZGIzNWNjZTFmZDMxNTE0MGUzZTRhYjg0NzIyMTZjN2NmZGFmMDA0MTgxMzUxZjIxMGIzOTdjMzE0N2RjZDI3OWY2ZmMyZWJkOTYwNTBlOTk2Zjc3YWQ2YmExIgogCiBITUFDX0RSQkcgTklTVCBDQVZTIDE0LjMgUFIgRmFsc2UgKFNIQS0yMjQsIDE5MiwgMTkyKSAjMTMKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjI0CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjI0CiBobWFjX2RyYmdfbm9wcjpNQkVEVExTX01EX1NIQTIyNDoiMjlhMTg5N2Q2ZWE1ZGU2NmU1NTFmOGMxMDZmNjAxZTQyMWRkZDk0MDgxMjUzMGRmMDBmNjM0NjgyZjI0OWFlYmRhZjg2OTM4Yzg5NWMxMWY5ZmNiMGJkMWZjZGIxODNiNGY4Y2Y4NmIzNDI5YTUzNzJjYWFmZTFkIjoiZDY1NWExNzllZGFmNGI4MzgxYTlmNmEzMzJlZDViNzU0ZGJmMzRmNjUwZDE5ODY3IjoiMzFjODdiZTY4NmI2ZjkwZjNkMWIwZWE5MGM1NDFlMTZmMzQzMDI5MmE1YzQ3NTVmIjoiZWQ0OTQwMzcwMGNlYmVjMzBkMTA1NzUwM2JlN2JhYWNiZWI0NWJjZGZkOWE0M2EyIjoiOTUyNzYzMzgwYWYzMjQzYzZjMzI3ZjIzY2I3NGY4MzY4OTE5ZTBiNmI5YzI1OTM0IjoiZmIyOTA2N2JkYjIzYzBmMDE1MzkzMjUyM2VkZjMyZDBlM2MxOGU0NjYxNmUwN2YzOWE0Yjc4MDkxZWNhOTAzNDlmNjM2ZmZjZjI2YjY4YTRjZDA5MDI0MzFmMmFkYTkxYmNjODZkYzIyM2RiNGFhN2E0MmU3Y2I1N2E4NTIwOTU3MDRhMjdmOWYwNzk2Mjg4MGE1MGQyY2UxNmMxMjViZTFlOGQ0ZjU0YTBjYzVlYWY2MzE1MGMzMjQwOGRiNmYzOWIyMmZjOTNiODUzY2FhYmE5ZTQ5NTgxZjEzYTg4MTUiCiAKIEhNQUNfRFJCRyBOSVNUIENBVlMgMTQuMyBQUiBGYWxzZSAoU0hBLTIyNCwgMTkyLCAxOTIpICMxNAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyMjQKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yMjQKIGhtYWNfZHJiZ19ub3ByOk1CRURUTFNfTURfU0hBMjI0OiIzODdlMzFiY2ZmZmE1MTMyM2E5MmQ5MDcxM2I0MzhhMWY0ZGVkNjk3MDdiZTNhYTUxN2UxZTcyZDQ0OGFiYmRmMGExNzk4OWIzZGU3YzQzYzYyMWU5MDRmNTJkYjUyYWQ4MjNkYWFiZmY5YzEwYjNmY2E5M2FjZmEiOiJlMDhmZmYzMjBhNDkzZDcwZWE0Y2M4NWE0Y2M2MDQ2NjRhMGRlZWM4ZjZjNzY2NmQiOiI5NjljYWZjMzNlOTk5NjQ4MzNjNGQwZjg4ZjkwNmY1NDI5YjVkYWE1NTJmNTNiZjAiOiI4ZDZlNmYwNTMwMWVmNWNlZmJhNzUyZjNkMGVmNThhMjU3NzVkNmI2OWY2YzE1YTQiOiI3MjI5MmFhYTY5ZmJlZjZmMDEwZmE0ZDViYjYzZDZkN2E1OTUzOTVkNzlhOGMxMTAiOiI3N2VhZDkwODQ4NDA0NDQ4MmRhNTI5ZjlhNmY0Y2E2ZTZkOGQ0OTk1NGQyZTJkNWM3ZGM0NTVlMDNiZWJmNDg0MDIxNjczNzI3YmJjNDBhZGM4ODEyNjAwMjAxYjhjMmRlOGU2NTgxOTE0MjJiODBkMjM1MDIzMjljODRjMGNhMDYxYjIxMjk1MmZkYjJlY2YzMTA2ZGQyMGU2NDU1ZjFmMjMxZTFkYWQxY2ZiZjJmYTAxOWRmZTljMTYyYTY3MGFlMjBiMjUyYWUyZTVhNGNhMGVhYWUxYzY3OWE3ZmQzYiIKIAogSE1BQ19EUkJHIE5JU1QgQ0FWUyAxNC4zIFBSIEZhbHNlIChTSEEtMjU2LCAwLCAwKSAjMAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIGhtYWNfZHJiZ19ub3ByOk1CRURUTFNfTURfU0hBMjU2OiIwNjAzMmNkNWVlZDMzZjM5MjY1ZjQ5ZWNiMTQyYzUxMWRhOWFmZjJhZjcxMjAzYmZmYWYzNGE5Y2E1YmQ5YzBkMGU2NmY3MWVkYzQzZTQyYTQ1YWQzYzZmYzZjZGM0ZGYwMTkyMGE0ZTY2OWVkM2E4NWFlOGEzM2IzNWE3NGFkN2ZiMmE2YmI0Y2YzOTVjZTAwMzM0YTljOWE1YTVkNTUyIjoiIjoiIjoiIjoiIjoiNzZmYzc5ZmU5YjUwYmVjY2M5OTFhMTFiNTYzNTc4M2E4MzUzNmFkZDAzYzE1N2ZiMzA2NDVlNjExYzI4OThiYjJiMWJjMjE1MDAwMjA5MjA4Y2Q1MDZjYjI4ZGEyYTUxYmRiMDM4MjZhYWYyYmQyMzM1ZDU3NmQ1MTkxNjA4NDJlNzE1OGFkMDk0OWQxYTllYzNlNjZlYTFiMWEwNjRiMDA1ZGU5MTRlYWMyZTlkNGYyZDcyYTg2MTZhODAyMjU0MjI5MTgyNTBmZjY2YTQxYmQyZjg2NGE2YTM4Y2M1YjY0OTlkYzQzZjdmMmJkMDllMWUwZjhmNTg4NTkzNTEyNCIKIAogSE1BQ19EUkJHIE5JU1QgQ0FWUyAxNC4zIFBSIEZhbHNlIChTSEEtMjU2LCAwLCAwKSAjMQotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIGhtYWNfZHJiZ19ub3ByOk1CRURUTFNfTURfU0hBMjU2OiJhYWRjZjMzNzc4OGJiOGFjMDE5NzY2NDA3MjZiYzUxNjM1ZDQxNzc3N2ZlNjkzOWVkZWQ5Y2NjOGEzNzhjNzZhOWNjYzlkODBjODlhYzU1YThjZmUwZjk5OTQyZjVhNGQwM2E1Nzc5MjU0N2UwYzk4ZWExNzc2ZTRiYTgwYzAwNzM0NjI5NmE1NmEyNzBhMzVmZDllYTI4NDVjN2U4MWUyIjoiIjoiIjoiIjoiIjoiMTdkMDlmNDBhNDM3NzFmNGEyZjBkYjMyN2RmNjM3ZGVhOTcyYmZmZjMwYzk4ZWJjODg0MmRjN2E5ZTNkNjgxYzYxOTAyZjcxYmZmYWY1MDkzNjA3ZmJmYmE5Njc0YTcwZDA0OGU1NjJlZTg4ZjAyN2Y2MzBhNzg1MjJlYzZmNzA2YmI0NGFlMTMwZTA1YzhkN2VhYzY2OGJmNjk4MGQ5OWI0YzAyNDI5NDY0NTIzOTljYjAzMmNjNmY5ZmQ5NjI4NDcwOWJkMmZhNTY1YjllYjlmMjAwNGJlNmM5ZWE5ZmY5MTI4YzNmOTNiNjBkYzMwYzVmYzg1ODdhMTBkZTY4YyIKIAogSE1BQ19EUkJHIE5JU1QgQ0FWUyAxNC4zIFBSIEZhbHNlIChTSEEtMjU2LCAwLCAwKSAjMgotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIGhtYWNfZHJiZ19ub3ByOk1CRURUTFNfTURfU0hBMjU2OiI2MmNkYTQ0MWRkODAyYzc2NTJjMDBiOTljYWMzNjUyYTY0ZmM3NTM4OGRjOWFkY2Y3NjM1MzBhYzMxZGY5MjE0NWZkYzg5N2EwYzFjNDgyMjA0ZWYwN2UwODA1YzAxNGJiZDliYmY3MTc0NjdiZjRiNWRiMmFhMzQ0ZGQwZDkwOTk3YzgyMDFiMjI2NWY0NDUxMjcwMTI4ZjVhYzA1YTFhIjoiIjoiIjoiIjoiIjoiN2U0MWY5NjQ3YTVlNjc1MGViOGFjZjEzYTAyZjIzZjNiZTc3NjExZTUxOTkyY2VkYjY2MDJjMzE0NTMxYWZmMmE2ZTRjNTU3ZGEwNzc3ZDRlODVmYWVmY2IxNDNmMWE5MmUwZGJhYzhkZThiODg1Y2VkNjJhMTI0ZjBiMTA2MjBmMTQwOWFlODdlMjI4OTk0YjgzMGVjYTYzOGNjZGNlZWRkM2ZjZDA3ZDAyNGI2NDY3MDRmNDRkNWQ5YzRjM2E3YjcwNWYzNzEwNGI0NWI5Y2ZjMmQ5MzNhZTQzYzEyZjUzZTNlNmY3OThjNTFiZTVmNjQwMTE1ZDQ1Y2Y5MTlhNCIKIAogSE1BQ19EUkJHIE5JU1QgQ0FWUyAxNC4zIFBSIEZhbHNlIChTSEEtMjU2LCAwLCAwKSAjMwotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIGhtYWNfZHJiZ19ub3ByOk1CRURUTFNfTURfU0hBMjU2OiI2YmRjNmNhOGVlZjBlMzUzM2FiZDAyNTgwZWJiYzhhOTJmMzgyYzViMWM4ZTNlYWExMjU2NmVjZmI5MDM4OWEzOGY4NDgxY2M3NzM1ODI3NDc3ZTBlNGFjYjdmNGEwZmE3MmVjYTZmMTU2MDcyMGU2YmQxZmYwMTUyYzEyZWVmZjFmOTU5NDYyZmQ2MmM3MmI3ZGRlOTZhYmNiN2Y3OWZiIjoiIjoiIjoiIjoiIjoiZDVhMmUyZjI1NGI1YWU2NTU5MGQ0ZmQxZmY1Yzc1OGU0MjViZTRiYWNkZWVkZTc5ODk2NjlmMGEyMmQzNDI3NGZkZmMyYmY4NzEzNWUzMGFiZGFlMjY5MTYyOWMyZjZmNDI1YmQ0ZTExOTkwNGQ0Nzg1ZWNkOTMyOGYxNTI1OTU2M2U1YTcxZjkxNWVjMGMwMmI2NjY1NTQ3MTA2N2IwMTAxNmZkZjkzNGE0N2IwMTdlMDdjMjEzMzI2NDE0MDBiYmU1NzE5MDUwZGJhMjJjMDIwYjliMmQyY2RiOTMzZGJjNzBmNzZmZWM0YjFkODM5ODBmZDFhMTNjNDU2NTgzNiIKIAogSE1BQ19EUkJHIE5JU1QgQ0FWUyAxNC4zIFBSIEZhbHNlIChTSEEtMjU2LCAwLCAwKSAjNAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIGhtYWNfZHJiZ19ub3ByOk1CRURUTFNfTURfU0hBMjU2OiIwOTZlZjM3Mjk0ZDM2OWZhY2UxYWRkM2ViOGI0MjU4OTVlOTIxNjI2NDk1NzA1YzVhMDNlZTU2NmIzNDE1OGVjNmUyZTA4MjU1MzRkMjk4OTcxNWNjODU5NTZlMDE0OGQxYjRmNzEyNWY0NzJjMjUzODM3ZmE3ODdkNWFjZjAzODJhM2I4OWMzZjQxYzIxMWQyNjMwNTI0MDJkY2M2MmM1IjoiIjoiIjoiIjoiIjoiNDU0MWYyNGY3NTliNWYyYWMyYjU3YjUxMTI1MDc3Y2M3NDBiMzg1OWE3MTlhOWJhYjExOTZlNmMwY2EyYmQwNTdhZjlkMzg5MjM4NmExODEzZmM4ODc1ZDhkMzY0ZjE1ZTdmZDY5ZDFjYzY2NTk0NzA0MTUyNzgxNjRkZjY1NjI5NWJhOWNmY2VlNzlmNmNiZTI2ZWUxMzZlNmI0NWVjMjI0YWQzNzljNjA3OWIxMGEyZTBjYjVmN2Y3ODVlZjBhYjdhN2MzZmNkOWNiNjUwNjA1NGQyMGUyZjNlYzYxMGNiYmE5YjA0NWEyNDhhZjU2ZTRmNmQzZjBjOGQ5NmEyMyIKIAogSE1BQ19EUkJHIE5JU1QgQ0FWUyAxNC4zIFBSIEZhbHNlIChTSEEtMjU2LCAwLCAwKSAjNQotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIGhtYWNfZHJiZ19ub3ByOk1CRURUTFNfTURfU0hBMjU2OiJhN2RjY2RkNDMxYWU1NzI2YjgzNTg1YjU0ZWFlNDEwOGY3YjdhMjVjNzAxODdjMGFjYmI5NGM5NmNjMjc3YWE4OTRjOGY0YjhlMTk1YTQ3MzU2YTg5YTUwZDEzODlhYjU1MTczM2VlZTJlOTIyZjQwNTVlNTM5MzllMjIyZTcxZmFlNzMwZWIwMzc0NDNkYjJjNzY3OTcwOGFiYjg2YTY1IjoiIjoiIjoiIjoiIjoiOTliYTI2OTFhNjIyYWZlY2M5NDcyNDE4ZTZhOGY5ZjFjZGMxZTM1ODNjM2JjN2EyYTY1MGExYWI3OWRjYmNjYmQ2NTY2MzZjNTczMTc5Mjc2ZTc4MjU2OTQyMGM5NzQzOGMwNmJlODk4ODY3ZjYyOGIxYzAxZWI1NzAyNjNkMmMwZjA5YzdhYWI1MzZmNmZiYTdkZjZhYWQxOWUwNWMyMzZiNjQ1Njc0NjY3YzAzZDFiNmEwNGQ3ZmMxMTE3N2ZlNzg5MzNiMzA5Njc5ZjViZjI2YTQ2MzJiOWExM2UzMTRjNGJmNDUzMjQyOGQzZDk1YzY4OTAwMmI2ZGMxZmJiMSIKIAogSE1BQ19EUkJHIE5JU1QgQ0FWUyAxNC4zIFBSIEZhbHNlIChTSEEtMjU2LCAwLCAwKSAjNgotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIGhtYWNfZHJiZ19ub3ByOk1CRURUTFNfTURfU0hBMjU2OiJjMjg2NDI1ZWNmNTQzYTQ5YmNjOTE5NmIwZGIxYTgwYmM1NGU0OTQ4YWRiYTZmNDE3MTJhMzUwYTAyODkxZmE2OTU3YTY1OWE0ZWMyZTBiN2FkMTg1NDgzYzIyMGZkNjEwOGMyMTI5ODEzZWVhMDc3NmZiYTcyNzg4ZmRmMjcxODc1OWNjM2M0MjA3ZmEyMGE1ZmUyM2FjNmUzMmNjMjhlIjoiIjoiIjoiIjoiIjoiOGUxMDIwYTRmZDg0Yzk5ZTBmYzdlM2Y3Y2U0OGRlNWVkOWVjOWE1YzJjY2Q2MjRkYmU2ZjMwZTJmNjg4YTMxZGM1NTk1NzYzMDM1N2E1ZDQ4Y2EyYTQ1NjI0MWEyOGJmYjE2ZDhiYjAwMDg3NzY5N2E3Y2UyNGQ5YWQ0ZDIyYjBjMTUxMTc5OTZmMWYyNzBiOTRmNDZkN2E5YmRmYTc2MDhmYTFkZDg0OTE3N2E5YjgwNDllNTFiNmI3YTI3NDI2MjM4NTRhMWZkZGI1ZWZjNDQ3ZWVkMWVhMWFlZDZmMDJiNGIyNzU0ZWNmNzFlYTA1MDlkYTJlNTRmNTI0YTdlNyIKIAogSE1BQ19EUkJHIE5JU1QgQ0FWUyAxNC4zIFBSIEZhbHNlIChTSEEtMjU2LCAwLCAwKSAjNwotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIGhtYWNfZHJiZ19ub3ByOk1CRURUTFNfTURfU0hBMjU2OiIwMjgxOGJkN2MxZWM0NTZhY2U1NWJlZWJhOTlmNjQ2YTZkM2FhMGVhNzgzNTZlYTcyNmI3NjNmZjBkZDJkNjU2YzQ4MjY4N2Q1MDhjOWI1YzJhNzVmN2NlMzkwMDE0ZThjZjMxOWJmYTYzOTgwZTNjYjk5N2ZkMjg3NzFiYjU2MTRlM2FjYjExNDliYTQ1YzEzM2ZmYmJhYjE3NDMzMTkzIjoiIjoiIjoiIjoiIjoiMTlhMjMxZmYyNmMxODY1Y2U3NWQ3YTcxODVjMzBkZDBiMzMzMTI2NDMzZDBjOGNiZjFiZTBkMmIzODRkNGViM2E4YWZmMDM1NDBmYmZhNWY1NDk2NTIxYTRlNGE2NDA3MWI0NGM3OGJkMGI3ZTY4ZmFjOWU1Njk1YzVjMTNmZDNiOWRiZTdmNzczOTc4MWE0YzhmMGI5ODBmMWIxN2Q5OWJjZTE3Y2ViNTJiNTY4NjZhZTAyNDU2ZmZlZjgzMzk5YzhjZjc4MjZmM2M0NWM4YTE5MzE1ODkwOTE5ZDIwZjQwZmM0ZTE4ZDA3ZTljOGNjZDE2YzMzMjdiNTk4OGY3MSIKIAogSE1BQ19EUkJHIE5JU1QgQ0FWUyAxNC4zIFBSIEZhbHNlIChTSEEtMjU2LCAwLCAwKSAjOAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIGhtYWNfZHJiZ19ub3ByOk1CRURUTFNfTURfU0hBMjU2OiI3N2E1Yzg2ZDk5YmU3YmMyNTAyODcwZjQwMjVmOWY3NTYzZTkxNzRlYzY3YzVmNDgxZjIxZmNmMmI0MWNhZTRiZWQwNDRhZDcyZWU4MjI1MDZhNmQwYjEyMTE1MDI5Njc3NzgxMDA3NDlmMDFhNGQzNWMzYjRhOTU4YWFmZTI5Njg3N2UwYWNhZmQwODlmNTBiYzc3OTdhNDJhMzNhYjcxIjoiIjoiIjoiIjoiIjoiODMxYTRkYTU2NmY0NjI4OTkwNDg5M2VmMWNjMWNkNGFkMTllZTQ4ZjM4NTdlMmI2OWU5MzZkMTBhZmJkYzI5ODIyZTg1ZDAyNjYzZDM0NmVmM2UwOWE4NDhiMWQ5Y2MwNGY0YzRjNmUzYjNiMGU1NmEwMzRlMjMzNGQzNGNhMDhmODA5N2JlMzA3YmE0MWQwMjBiYzk0ZjhjMTkzN2ZlODU2NDRlZWI1NTkyYzJiNWEyMTM4ZjdkZWQ5YTViNDRiMjAwYzhiNWJlYjI3NTk3Yzc5MGY5NGQ2NjBlYjYxZTgyNDgzOTFlZGMzYWUyZDc3NjU2Y2JlODM1NDI3NWIxMyIKIAogSE1BQ19EUkJHIE5JU1QgQ0FWUyAxNC4zIFBSIEZhbHNlIChTSEEtMjU2LCAwLCAwKSAjOQotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIGhtYWNfZHJiZ19ub3ByOk1CRURUTFNfTURfU0hBMjU2OiIwZWE0NThjZmY4YmZkMWRkOGIxYWRkY2JhOWMwMTMxN2Q1MzAzOWU1MzMxMDRlMzJmOTZlN2QzNDJlNmM3YjliOTM1YTRiNjZmYzc0YzJhNDg3NTdhOTljMzk5ZTY0ZTM2YzVmMzcwOGU3YjcxNGM0ZWQxMzliNGZhOWU4Yzc2M2FmMDE3NzM0ODQwMDUxMDlhODVlMzM2NTNiYjBjZTk4IjoiIjoiIjoiIjoiIjoiMzczYTM3YWY4NGZkZGVjMTM2NDVhOTc2OGQ2YTc4NWFlNWEyNTg5ZDY0Y2Q5YjM3OTgwZGRlMjU0MTQ5OTIxMGM0ZjQwODMzNWRlMWQ1ODUzNDkwNjRmM2Y1M2EyYjRjNWVjNmRjMmEwOTU5MWY5OWFkOWZhZDUyOGFjODM0NzQxNjRiNDU0OTdiZjE2N2Y4MWU2NmZhMDg0NjNmZmVhOTE3ZjY4OTFlNDhmMTQ5ZmFmYzIwNjIyYmIxMTcyZjM0ODg2ZmViNDVjMjZmZDQ0NmE0YTRlMjg5MWI0YmM1OTQxODY4OTYxNDFhYWFlZWIzMDFiNDllN2MxYTI2ZmVjNyIKIAogSE1BQ19EUkJHIE5JU1QgQ0FWUyAxNC4zIFBSIEZhbHNlIChTSEEtMjU2LCAwLCAwKSAjMTAKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBobWFjX2RyYmdfbm9wcjpNQkVEVExTX01EX1NIQTI1NjoiYmZiNjhiZTRjZTE3NTZkMjViZGZhZDVlMGMyZjhiZWMyOTM2MDkwMWNjNGRhNTFkNDIzZDE1OTFjYzU3ZTFiYTk4YWZlNGJkMTk0YzE0M2UwOTk2ODBjNTA0Y2NlYWFiYjk3Y2FmMjEwZTgyNDk4YzM0MDg3OTBkNDFjMzIwZGQ0YTcyMDA3Nzc4Mzg5YjQ0YjdiYzNjMWM0YjhjNTNmOCI6IiI6IiI6IiI6IiI6IjQwOWUwYWE5NDlmYjNiMzgyMzFiZjg3MzJlNzk1OWU5NDNhMzM4ZWEzOTkwMjZiNzQ0ZGYxNWNiZmVmZjhkNzFiM2RhMDIzZGNjZTA1OWE4OGNmMGQ0Yjc0NzVmNjI4ZTQ3NjRjOGJlZjEzYzcwY2ZiYmJiNmRhMmExOGFhYmNhZDkxOWRiMDlkMDRmYzU5NzY1ZWRiMTY1MTQ3Yzg4ZGQ0NzNhMGYzYzVlZTE5MjM3Y2E5NTU2OTdlMDAxYmE2NTRjNWVlMGJkMjY3NjFiNDkzMzMxNTQ0MjZiYzYzMjg2Mjk4YThiZTYzNGZlMGQ3MmNmZGVlZjBmM2ZjNDhlY2EiCiAKIEhNQUNfRFJCRyBOSVNUIENBVlMgMTQuMyBQUiBGYWxzZSAoU0hBLTI1NiwgMCwgMCkgIzExCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NgogaG1hY19kcmJnX25vcHI6TUJFRFRMU19NRF9TSEEyNTY6IjRmNjg4MGE2NDYxMDAwNDQ2MzAzMWQ2N2Q3OTI0ZmE0NDZjMzkxMzhkNGQ0MTAwN2U4ZGYzZDY1NjkxYTkzNjc2YjMzYjJjMTM2MDBmNGIxZGY2Y2EzZDE5NjBlOGRkNDU3Yjg3YjhjOGY0ODMxMmI1MzMzZDQzYjM2NzczMGMwYTVhZDQ3MjVhMTY3NzhmY2I1M2ZlMTM2ZDEzNmNiZmQiOiIiOiIiOiIiOiIiOiI3M2QwZjMyNGVkMTg2ZTJhZDA2YmQxODAwZTI2MmJkYmRhNzliYTU0ZTYyNjc2MWJkNjBmNzRmNDNlM2JiNjI5NThlYzFlMmYxZDk0MGFmMTYzZTFjYWRjMTI0ZTdlYmFiYTJmNzJlNjdlZmQ3NDZjN2Y2ZDBjYWQ1M2VmMDNkODU5ZDkzY2ZmNzc4YTMyZWU1YmUxNzJmZTdmZGJkYzIzMmRlZDM2MGQ3MDRhNmZhMGY3MGJlYmU5NDJlNTY0NzgzNDU0OTJmNDlkYzVjNmZjMzQ2Yjg4YTU4OTQ3YWQyNTBlNjg4ZThjNjI2ZmUxZWZlNzYyNDYyMGU1NzE5NzZlIgogCiBITUFDX0RSQkcgTklTVCBDQVZTIDE0LjMgUFIgRmFsc2UgKFNIQS0yNTYsIDAsIDApICMxMgotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIGhtYWNfZHJiZ19ub3ByOk1CRURUTFNfTURfU0hBMjU2OiJhYWUzNTJlMTExODQzMjE5Y2FlOGY3MGU3YjhmNmViOWJiNTNkMjQ2Y2JlYzFlNGYwN2Q0Mjc1NzE0MzI5NWI0Yjg0NDg1ZGNjZDFiZjkzMjEwZTMyMmVhZmNiZWJjZDlmOTIzN2YwMGQ3NDRkOGZiZmYyMWI5ZDAwNDNjMjU4ZTg3MzE4MTdlNmE1ZmI3YjRiZjUwMTE2ODBlNWJjNjQyIjoiIjoiIjoiIjoiIjoiY2ZiMjhiOTM1MjJjN2Q2MWQ4ZDNjZTNmMDgwZTQzNWU0YzgzYzdlMTNhOWRhYjc4OGRiOGZlZjA0MDcyNjdhMTRmYmM5MzI0ZTA5MGUyNGRmNTQ5MWZlZGZhODExMTY4Njk5ODM5MzhkNGQ0ZDczMjRhMzEwYzNhZjMzYTZmNzkzOGY2MDJjNWU0ZTYzZjE3NzFjZGFhYmRhYjA3ODJiNWFmZmI1NGViNTMwNDdjMTA5YTk2MDY3MzlkZDAwNjViZDIxZWNhMzMxMzI5ODY1NTQ4NzgzNTRmNWY5Zjg1MmU2NzRkZDY5MDE2M2IwZmY3NGM3YTI1ZTZiYWU4Y2UzOSIKIAogSE1BQ19EUkJHIE5JU1QgQ0FWUyAxNC4zIFBSIEZhbHNlIChTSEEtMjU2LCAwLCAwKSAjMTMKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBobWFjX2RyYmdfbm9wcjpNQkVEVExTX01EX1NIQTI1NjoiNTg5ZTc5ZTMzOWI3ZDJhMWI4NzlmMGIwZTFhN2QxYWQyNDc0ZWFhODAyNWIwNzBmMWZmYTg3N2I3MTI0ZDRmZjA5NjFlZDY0ZGJkNjIwNjVkOTZlNzVkZTZkMmZmOWQ2ZTkyODM4OGQzYWY0OGMyOTY4NTI3YTRkMmY5YzI2MjZmYmMzZjNmNWE1ZDg0ZTA1ODNhYjZmNzhlN2Y4YjA4MSI6IiI6IiI6IiI6IiI6ImZjZTZjZWQxZWNmNDc0ZDE4MWFiMzMxZjc5YzNkMmNjOGE3NjhlYzI4MThkZTViM2ZjN2NmNDE4MzIyNzE2ZDZhNjg1MzczMzU2MWE0OTdjMGMyNWNiMjg4ZDJjOWZjZmJjYTg5MWJhZmQ1YTgzNGM4NWYzNjAzZjQwMmFjZjFhN2IxZWE5MmRiODQ3ZWQ1YzI1MmE4NjJhZDRhYjVlMjU5NzE1ZjFmYzgxZGE2N2Y1MjMwYmY4YmU1MGVlODA2OTc1ODA5NWY3ZDBlNTU5ZTAzZjJjNjA3MjI5MGU2MTc5NDQ1ODQzNzYwOWU0NzNlYjY2NTgwY2RkYWFkMTliNzEiCiAKIEhNQUNfRFJCRyBOSVNUIENBVlMgMTQuMyBQUiBGYWxzZSAoU0hBLTI1NiwgMCwgMCkgIzE0Ci1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NgogaG1hY19kcmJnX25vcHI6TUJFRFRMU19NRF9TSEEyNTY6IjcxNDI3N2Q0MDhhZDg3ZmRlMzE3ZjBhOTQ3MzJmY2U2MmYxMzUyYmRjOTA5MzY2NzNiNGYxZGFhMDkyNWFhMjZkMTY1ODJhOTlmMjMwMTBiNDI0OGI4OGQ4NjQ4NTQxOWJkOWZjN2NiMmZkNTA2M2IyYzNjMGM0ZjM0NmFkMmUzODc5MzcxYTljODA1ZTU5YjlmMmNkMmNjMmE0MDg5NGYiOiIiOiIiOiIiOiIiOiI2MmVmN2E0MzEyODgyNTJlMGQ3MzZjMWQ0ZTM2Y2M5YWMzNzEwN2RjZDBkMGU5NzFhMjI0NDRhNGFkYWU3M2E0MWVmZjBiMTFjODYyNWUxMThkYmM5MjI2MTQyZmQwYTZhYTEwYWM5YjE5MDkxOWJkYTQ0ZTcyNDhkNmM4ODg3NDYxMmFiZDc3ZmIzNzE2ZWE1MTVhMmQ1NjMyMzdjNDQ2ZTJhMjgyZTdjM2IwYTNhZWYyN2QzNDI3Y2M3ZDBhN2QzODcxNDY1OWMzNDAxZGJjOTFkMzU5NTE1OTMxOGViY2EwMWFlN2Q3ZmQxYzg5ZjZhZDZiNjA0MTczYjBjNzQ0IgogCiBITUFDX0RSQkcgTklTVCBDQVZTIDE0LjMgUFIgRmFsc2UgKFNIQS0yNTYsIDAsIDI1NikgIzAKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBobWFjX2RyYmdfbm9wcjpNQkVEVExTX01EX1NIQTI1NjoiMDVhYzlmYzRjNjJhMDJlM2Y5MDg0MGRhNTYxNjIxOGM2ZGU1NzQzZDY2YjhlMGZiZjgzMzc1OWM1OTI4YjUzZDJiODlhMTc5MDQ5MjJlZDhmMDE3YTYzMDQ0ODQ4NTQ1Mjc5MTEyNmI4YjUyZWUxZmQ5MzkyYTBhMTNlMDA4M2JlZDQxODZkYzY0OWI3Mzk2MDdhYzcwZWM4ZGNlY2Y5YiI6IiI6IjQzYmFjMTNiYWU3MTUwOTJjZjdlYjI4MGEyZTEwYTk2MmZhZjcyMzNjNDE0MTJmNjliYzc0YTM1YTU4NGU1NGMiOiIzZjJmZWQ0YjY4ZDUwNmVjZWZhMjFmM2Y1YmI5MDdiZWIwZjE3ZGJjMzBmNmZmYmJhNWU1ODYxNDA4YzUzYTFlIjoiNTI5MDMwZGY1MGY0MTA5ODVmZGUwNjhkZjgyYjkzNWVjMjNkODM5Y2I0YjI2OTQxNGMwZWRlNmNmZmVhNWI2OCI6IjAyZGRmZjUxNzNkYTJmY2ZmYTEwMjE1YjAzMGQ2NjBkNjExNzllNjFlY2MyMjYwOWIxMTUxYTc1ZjFjYmNiYjQzNjNjM2E4OTI5OWI0YjYzYWNhNWU1ODFlNzNjODYwNDkxMDEwYWEzNWRlMzMzN2NjNmMwOWViZWM4YzkxYTYyODc1ODZmM2E3NGQ5Njk0YjQ2MmQyNzIwZWEyZTExYmJkMDJhZjMzYWRlZmI0YTE2ZTZiMzcwZmEwZWZmZDU3ZDYwNzU0N2JkY2ZiYjc4MzFmNTRkZTcwNzNhZDJhN2RhOTg3YTAwMTZhODJmYTk1ODc3OWExNjg2NzRiNTY1MjQiCiAKIEhNQUNfRFJCRyBOSVNUIENBVlMgMTQuMyBQUiBGYWxzZSAoU0hBLTI1NiwgMCwgMjU2KSAjMQotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIGhtYWNfZHJiZ19ub3ByOk1CRURUTFNfTURfU0hBMjU2OiIxYmVhMzI5NmYyNGU5MjQyYjk2ZWQwMDY0OGFjNjI1NTAwN2M5MWY3YzFhNTA4OGIyNDgyYzI4YzgzNDk0MmJmNzEwNzMxMzZhNWNjMWViNWI1ZmEwOWUxNzkwYTBiZWRkNzE0MzI5ZjNmYmVhMWRmOWQwYjBiMGQ4OGRmZTM3NzRiZWI2M2QwMTE5MzU5MjNkMDQ4ZTUyMWI3MTBkYzZmIjoiIjoiNGVmODcyZmQyMTFhNDI2ZWExMDg1YWIzOWViMjIwY2M2OThmZGZlYWJlNDliODgzNWQ2MjBhYjc4ODVkZTdhNCI6ImQ3NGQxNjY5ZTg5ODc1ODUyZDljY2JmMTFjMjBmZTNjMTNhNjIxZWJjYjNmN2VkZWVhMzlhMmIzMzc5ZmRjZjUiOiIwYzhhYTY3Y2EzMTBiZDhlNThjMTZhYmEzNTg4MGY3NDcyNjZkYmY2MjRlODhlYzhmOWVlOWJlNWQwOGZkZWIxIjoiY2U5NWI5OGYxM2FkY2RmN2EzMmFhMzQ3MDlkNmUwMmY2NThhZTQ5OGQyYWIwMWNlOTIwZjY5ZTdlNDJjNGJlMWQwMDVhY2YwY2E2YjE3ODkxZGZhZmM2MjBkZDRjZDM4OTRmODQ5MmE1Yzg0NjA4OWI5YjQ1MjQ4M2ViMGI5MWYzNjQ5ZWMwYjZmOThkMWFhYWJjMmU0MmNkMzljMmIyNTA4MWI4NWFiNTBjYjcyMzAwN2EwZmQ4MzU1MGYzMmMyMTBiN2M0MTUwYjVhNmJiM2IwYzllM2M5NzFhMDlkNDNhY2I0OGU0MTBhNzdmODI0Yjk1NzA5MmFhOGVmOThiYyIKIAogSE1BQ19EUkJHIE5JU1QgQ0FWUyAxNC4zIFBSIEZhbHNlIChTSEEtMjU2LCAwLCAyNTYpICMyCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NgogaG1hY19kcmJnX25vcHI6TUJFRFRMU19NRF9TSEEyNTY6ImE3ZWE0NDliNDlkYjQ4NjAxZmMzYTNkNWQ3NzA4MWZhYjA5MmI4ZDQyMGVkMWIyNjZmNzA0Zjk0MzUyZGQ3MjZkMTFhMTU5YjYwYWY4ZDIwYTBlMzdkMjdlNmM3NGFhMzUwOTE2YWI0N2U4Y2I1ZGM4NDNmOWZiYTgwNjM5MTAzNzExZjg2YmU4ZTNhYTk0ZjhhNjRhM2ZlMGU2ZTViMzUiOiIiOiJlMmJiNjc2ODEyMDU1NWU3YjllMGQ1NzM1MzdhODJmOGYzMmY1NDU2MGUxMDUwYjZhYmIxNTg4ZmIzNDQxZTY2IjoiYTUwY2VjOWQxZWNkZGIyYzE2M2QyNDAxOWU4MWMzMWEyYjM1MGNjZDNhZDgxODFmZDMxYmI4ZDFmNjRmYTUwZSI6IjU5MWRiYmQ0OGI1MWFiY2VkNjdmOWM2MjY5Y2YwMTMzY2QzZGNiYjVjZmFmY2I2ZWY3NTg1NjljNTU1YTU3NzMiOiIwYTQ2NGFiY2M4Njg1MTU4MzcyZDU0NDYzNWI5NTNmY2IxZDM4MjFjMzBhYWE5Mzk4MmY5Yjc4ODkzNWYwMGY4ODExNWFhZDYxZDVjZWUwMDNiM2QxY2I1MGYzZTk2MWE1MDFlMmRkMGZjN2UxNzI0Nzc4YjE4NGE0YmRmOWY2NGUxMTBkZGE3NDQ2ZTU1NDRhMzBiZDQ5YTQwMGVhMWE1NDExODAwZTFlZGZlZWEzNDkzMjM2MThhZmM1ZGM1NzgyZGM0YjcxZDJkYTRkNmE0Nzg1ZjhkZDM0NmZlYjljODc0MGZmZDI2YmY2NDRlM2U0MzIzZmYyNGMzMGI5ZjEwIgogCiBITUFDX0RSQkcgTklTVCBDQVZTIDE0LjMgUFIgRmFsc2UgKFNIQS0yNTYsIDAsIDI1NikgIzMKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBobWFjX2RyYmdfbm9wcjpNQkVEVExTX01EX1NIQTI1NjoiMTQ2ODNlYzUwOGEyOWQ3ODEyZTBmMDRhM2U5ZDg3ODk3MDAwZGMwN2I0ZmJjZmRhNThlYjdjZGFiYzQ5MmU1OGIyMjQzZTc0NGViOTgwYjNlY2UyNWNlNzYzODNmZDQ2MTg1OTBlMGVmNGVlMmJkYWU0NjJmNzZkOTMyNGIzMDAyNTU5Zjc0YzM3MGNmY2NmOTZhNTcxZDY5NTU3MDNhNyI6IiI6IjllYTNjY2NhMWU4ZDc5MWQyMmZjZGE2MjFmYzRkNTFiODgyZGYzMmQ5NGVhOGYyMGVlNDQ5MzEzZTY5MDliNzgiOiIxNjM2NmE1NzhiNWVhNGQwY2I1NDc3OTBlZjViNGZkNDVkN2NkODQ1YmM4YTdjNDVlOTk0MTljODczN2RlYmI0IjoiYTY4Y2FhMjlhNTNmMWJhODU3ZTQ4NGQwOTU4MDVkYzMxOWZlNjk2M2U0YzRkYWFmMzU1ZjcyMmViYTc0NmI5MiI6ImM0ZTc1MzJlZTgxNjc4OWMyZDNkYTlmZjlmNGIzNzEzOWE4NTE1ZGJmOGY5ZTFkMGJmMDBjMTJhZGRkNzllYmJkNzYyMzZmNzVmMmFhNzA1YTA5Zjc5NTUwMzhlYmZmMGQ1NjY5MTFjNWVhMTMyMTRlMmMyZWViNDZkMjNhZDg2YTMzYjYwZjdiOTQ0OGQ2M2VlYzNlMWQ1OWY0OGIzOTU1Mjg1NzQ0N2RjNWQ3OTQ0NjY3YTIzMGUzZGJmYTMwY2EzMjJmNmVhY2FmNzUzNmEyODY3MDZhNjI3YzUwODNjMzJkZTA2NThiOTA3Mzg1N2MzMGZiMWQ4NmViOGFkMWIiCiAKIEhNQUNfRFJCRyBOSVNUIENBVlMgMTQuMyBQUiBGYWxzZSAoU0hBLTI1NiwgMCwgMjU2KSAjNAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIGhtYWNfZHJiZ19ub3ByOk1CRURUTFNfTURfU0hBMjU2OiJmYTI2MWZiMjMwZTI4MjI0NTg1MzJjYTJkNWMzOTc1ODc1MGU2ODE5YTZmY2ViZWYxMDU3OWJhOTk1MDk2OTU5NTY0ZTFjOWZiY2IxMjg3OGRmMmJkNDkyMDJjYmY4MjFiZjdkZTI5ZTk5ZTdmMGUxYjlmOTZmM2IxOTAyZmI0MDQ5YzhjNjIzNGQyMGRlODMxNmViZTY2ZDk3NzI1NDU3IjoiIjoiOGI3MzI2NjIxZjZhZmJkNDRhNzI2ZGU0OGQwM2JjYzUzMzFmNzMwNjAyNmMyMjllYTk1MjM0OTdmYmVhYTg4ZCI6IjMzYjAwYjMxNjIzZDYxNjBjNGM2NzQwMzYzYTk2NDgxYmUxNGIxOWJjNDdiZTk1NjQxMjI3Mjg0YzM2NjkyMmEiOiIyZDgxMmM4MjAzNTc1NzkwYWQ2YjZmMmVkOTFhNDlkNTc0NjBkZTc3OWEzZTg4MWJlZjNiZTEyZTg3NjZkYzkxIjoiNTU3NGUwYjRlZmMxN2U4Y2UxMzZlNTkyYmVhYmZlMzI1NTEwNzJiZGRkNzQwOTI5ZTY5ODQ2N2I0MGIzOTkxZjAyOGEyMmM3NjBmNzAzNDg1M2NjNTMwMDdlMzc5M2UzYzRhNjAwZDllOWQ5NDUyOGY4ZGMwOWFlYmE4NjE0NmNkZGUyYjdmNzEyNTVhZTBlZmM1MjliNDliZTIyMDU5NzlkYmE2NTI1YmZlMTU1ZTg4MTllOGUyYWVlYWEyODU3MDQyNDJkYTkwYjRjNDUzNTEwMWNjNDdkOTRiMGUzODhhMWIyZTYzYWQwY2JlMTU4YjllMWJiYWU5Y2MwMDA3YyIKIAogSE1BQ19EUkJHIE5JU1QgQ0FWUyAxNC4zIFBSIEZhbHNlIChTSEEtMjU2LCAwLCAyNTYpICM1Ci1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NgogaG1hY19kcmJnX25vcHI6TUJFRFRMU19NRF9TSEEyNTY6IjYxZjE0NzFjZWQ1NmFhMDRjNTdlMWI1MTIzMDdkNGNiOTI0OTdkOTU5MmQ3ZTllMzUzNTZlOTlkNTg1Y2FiMWI4NDcxNGU5NjBjNDAzYTRmYWMwNmIyODI4Y2M1NjRkOTdiZjk3ZGIzYzEwMmVkYzgxNTk2ZDQ3NTcwNDVmZTZiZGMwMDhmMzU3OTJmYzYyOTBiNzdkODg5YzA5YzMzYTgiOiIiOiI1YjhiZGM0MWY3NmQ5OGNmYTcxZWQ5NzZlYTM5OTQ3MDYzNzVjODg0MWFkYjhiNmIzYjY0MThlMzEzMmU4ODMyIjoiOTRjOGE4ZmRmMzhhNmNjYjg1NzFjODk0MjBkODk5YWRhYjE2OTIxNGJiMGRmY2Q0M2EwNDYyMmUyODk5MzViMiI6IjhhNGI0NmUwYTdhNTU5MDczNjVmODJkNGFiOTM3NjUwOWJkNDQ3MjhjYWI4Y2JhZmIwZGE5MDEwMTJhZDhkY2QiOiI5MzNlYjE1OWE2YWY3NDU1YjYwZTQwNTg2YzA2NGYwNWYxOTcwZjU2NDI4MWIxZWJjNDY2MjcwMWFjMWYyOTllNGViOTA4YzRhZmNiMmUwNjUxOTEyODFhYjU3NmY2ODRhZWZlZGQ2OTA0YmFkMDRkOTZiZDkzYzA1MTZjNjJhNDk2YzMwNzNhMGNkYTA2NzZhMTFjYzA4ODY2YjBjYzc0ZjYyY2I5ZDNkYjQ4NjczYjJjM2ZiZWFkYTY5ZjkyMmI0Yjc5NWNjYmEyMmRmMTJlZjcxMjU5MDkzODFmN2Q2ODFmNmI5Y2FiYTAyZmI5MTNjNTQzN2I5OGMwNDBjNTc2IgogCiBITUFDX0RSQkcgTklTVCBDQVZTIDE0LjMgUFIgRmFsc2UgKFNIQS0yNTYsIDAsIDI1NikgIzYKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBobWFjX2RyYmdfbm9wcjpNQkVEVExTX01EX1NIQTI1NjoiYTFkNWJiN2Q3MDYyMWRlZTZiNjY4YjI4YzU2ZDU2MTBjMmY4Y2VkMzAyODRjYzNlMGU0OGRlMzMxYWYwNTA2Mjg4YTQ5ZTNlNTRjNWVhNTRjOThiOTVkZTgxYmNjODA3YjRlMjQyNmU5OGY2ZWVkOTdhNmNkZjY5MGE4OWVlMTA5ZTg0YzNkY2ExNmM4ODNjMjZmYTRhYzY3MTYzOGQ4ZCI6IiI6IjViZDFlMDg2ZWQyMjhjZmQ4YjU1YzE3MzFmZWE0MGMzYTYzZDAyMjU5OWNhMmRhNGJiMjMxMThmNDgyMWJhNjIiOiJiNzU0YjUzYWMyMjZlOGViZTQ3YTNkMzE0OTZlYzgyMmRlMDZmY2EyZTdlZjViZjFkZWM2YzgzZDA1MzY4ZWMzIjoiZmE3ZTc2YjI4MDVkOTBiM2Q4OWZmZjU0NTAxMGQ4NGY2N2FhM2EyYzllYjJiYTIzMmU3NWY0ZDUzMjY3ZGFjMyI6ImRmNmIyNDYwNjg4ZmE1MzdkZjNkZGZlNTU3NWZjYTVlYjhhYmFkNTZjYmM0ZTVhNjE4YTJiNGE3ZGFmNmUyMTVjM2E0OTc5NzRjNTAyZjlkMGVjMzVkZTNmYzJlYTVkNGYxMGRlOWIyYWVlNjZkY2M3ZTdhZTYzNTc5ODMwOTU5NTliODE3ZjAzODNlMzAzMDc3MWJkMmVkOTc0MDZhY2Y3OGExYTRhNWYzMGZhMDk5MjI4OWM5MjAyZTY5ZTNlYjFlYWJlMjI3YzExNDA5ZmY0MzBmNmRmY2ExYTkyM2E4YjE3YmM0Yjg3ZTkwODAwN2Y1ZTk3NTljNDE0ODJiMDEiCiAKIEhNQUNfRFJCRyBOSVNUIENBVlMgMTQuMyBQUiBGYWxzZSAoU0hBLTI1NiwgMCwgMjU2KSAjNwotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIGhtYWNfZHJiZ19ub3ByOk1CRURUTFNfTURfU0hBMjU2OiI2OGYyMWQxNDUyNWQ1NjIzM2M3ZTI2MzQ4MmQzNDRjMzg4YTg0MDEwM2E3N2ZiMjBhYzYwY2U0NjNjYWJkYzc5NTlmYTgwYWU1NzBmM2UwYzYwYWM3ZTI1NzhjZWMzY2I3NTg0YjQxNjY1MzA0NDJmMDZlMjQxZGQ5MDRmNTYyMTY3ZTJmZGFlMzI0N2FiODUzYTRhOWQ0ODg0YTVmYTQ2IjoiIjoiZjZhNTQ4MmYxMzkwNDVjNTM4OWM5MjQ2ZDc3MmM3ODJjNGViZjc5YzNhODRiNWNmNzc5ZjQ1OGE2OWE1MjkxNCI6IjlkMzdiMWNlOTlmODA3OTk5M2RkZjBiZDU0YmFiMjE4MDE2Njg1YjIyNjU1YTY3OGNlNDMwMDEwNWYzYTQ1YjciOiI0Yzk3YzY3MDI2ZmY0M2MyZWU3MzBlN2IyY2U4Y2NlNDc5NGZkMDU4OGRlYjE2MTg1ZmE2NzkyZGRkMGQ0NmRlIjoiZTVmODg3NGJlMGE4MzQ1YWFiZjJmODI5YTdjMDZiYjQwZTYwODY5NTA4YzJiZGVmMDcxZDczNjkyYzAyNjVmNmE1YmY5Y2E2Y2Y0N2Q3NWNiZDlkZjg4YjljYjIzNmNkZmNlMzdkMmZkNDkxM2YxNzdkYmQ0MTg4N2RhZTExNmVkZmJkYWQ0ZmQ2ZTRjMWE1MWFhZDlmOWQ2YWZlN2ZjYWZjZWQ0NWE0OTEzZDc0MmE3ZWMwMGZkNjE3MGQ2M2E2OGY5ODZkOGMyMzU3NzY1ZTRkMzg4MzVkM2ZlYTMwMWFmYWI0M2E1MGJkOWVkZDJkZWM2YTk3OTczMmIyNTI5MiIKIAogSE1BQ19EUkJHIE5JU1QgQ0FWUyAxNC4zIFBSIEZhbHNlIChTSEEtMjU2LCAwLCAyNTYpICM4Ci1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NgogaG1hY19kcmJnX25vcHI6TUJFRFRMU19NRF9TSEEyNTY6Ijc5ODgxNDZjYmY5NTk4ZDc0Y2Y4OGRjMzE0YWY2YjI1YzNmN2RlOTZhZTk4OTJmYjA3NTYzMThjZWEwMTk4N2UyODBiYzFhZTliZmRmOGE3M2MyZGYwN2I4MmEzMmM5YzJiYmM2MDcwODUyMzJlNWUxMmNjZjdjMGMxOWE1ZGM4MGU0NWViNGIzZDRhMTQ3ZmU5NDFmYTZjMTMzMzM0NzQiOiIiOiJmM2Y1YzFiYjVkYTU5MjUyODYxNzUzYzQ5ODBjMjNmNzJiZTE3MzJmODk5ZmRlYTcxODNiNWMwMjRjODU4YTEyIjoiNDRkMGNmYzRmNTZhYjM4ZmE0NjVhNjU5MTUxYjM0NjFiNjViMjQ2MmQxYWQ2YjM0NjNiNWNmOTZhZDlkYzU3NyI6IjM0ZmI5YTNjZGFjYzgzNGZmNjI0MTQ3NGM0ZjZlNzNlZDZmNWQ5ZWEwMzM3YWIyYjc0NjhmMDFhZDhhMjZlOTMiOiI0Y2FlYzllNzYwYzRkNDY4ZTQ3NjEzZmU1MGRlNGEzNjZhZTIwYmE3Njc5Mzc0NGE0ZTE0NDMzZWE0ZGU3OWRjMTg4NjAxZWI4NmM4MDNiMDk0NjQxYWIyMzM3Yjk5ZDQ1OWQzN2RlY2M3ZDI3NDczMDU3YmU0NWJhODQ4ODY4ZWUwZmI1ZjFjZjMwM2QyZmNkMGIzZTBjMzZmNjVhNjVmODFiM2ZlZTg3NzhhMWYyMjMwMmUyNWRmZTM0ZTZkNTg3ZmE4ODY0ZTYyMTEyMTg4MGY3Y2Q1NWYzNTA1MzFjNGNlMDUzMDA5OWVlYzJkMDA1OTcwNmRjZDY1NzcwOGQ5IgogCiBITUFDX0RSQkcgTklTVCBDQVZTIDE0LjMgUFIgRmFsc2UgKFNIQS0yNTYsIDAsIDI1NikgIzkKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBobWFjX2RyYmdfbm9wcjpNQkVEVExTX01EX1NIQTI1NjoiMWM5NzRjOTUzZmEyYTA1N2M5ZmM5NDA5YTY4NDNmNmY4MzlhYTU0NGJjYTRmYTExZTQ4YWZkNzc5MzFkNDY1NmVkN2MwODI4NTQ2NGFmN2E1ZGJkYzEwYjk0NGExMjcwNzgxNDZhZDEzNWFjYjgzNjM2MGQzNmFmYzUwNjUzZGNjMzZjMjE2NjJkYTJhNmY2YWUwNTIyMmU3NWYzNDAwMCI6IiI6IjI2M2M0OTg0YzIzOGRlZDMzM2M4NjQ3Mjg2NjM1MzgxNzM3OTUwMjE1NzE3MmNmYTUxMzcxZDgyYjFlZmQ3YjUiOiI3OWI1OTE1MjlmOWEyNmEwZDdjOGY4ZmQ2NGUzNTRiMGMxMzRlZjFmNzU3ZTQzZjk0NjNiM2RiYjdhM2RhMWFiIjoiN2Q4ZjcyMDRiMGI1NDAxZGRjZTllODhkY2Y1ZmFjYjlhNDQ2NjBhOWY1ZjFjODYyNzQ4ZTcyNjljMjlmNzk2NCI6IjcyZTJjYTI1N2I5ZWRhZjU5YjUwZTA1YTE0NGY1NmZiNTE3ODMyZmI5YWQzNDg5YjFlNjY0ZTNkNTQxMmNiZjZiMjg4M2U4OTE3MDNiMmU3M2FmZjlhYjU2ZGExMDA5ZmNkZWYwMTBhYjRjZGFiOTk2Nzk1YzhmN2M0N2ZiMTE5MmJiMTYwMzUzOTk3YWQzOWQ3ZDVmZDBlMmVmYzkxMDNhN2MzZjE1ODI0NmFmZDUzZmU1M2NhNjc4MmY4MDk2OThlZjVmMWYwZDg1NTM2NzgwYTNmZDZhOGJhZmE0NzU4OTFjMDkyMTMwODhiZDFhM2RjMTY5MjU3YzM0YTUxN2EiCiAKIEhNQUNfRFJCRyBOSVNUIENBVlMgMTQuMyBQUiBGYWxzZSAoU0hBLTI1NiwgMCwgMjU2KSAjMTAKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBobWFjX2RyYmdfbm9wcjpNQkVEVExTX01EX1NIQTI1NjoiNTYyMTZkNzE5ODRhNzcxNTQ1NjkxMjJjNzc3Y2U1N2UxZDEwMWE2MDI1YjI4MTYzYTI1OTcxZDM5YzFjNWQwZjVjZDE0OGJhN2U1NGY0OTc1YWM4ZTNlMGY5YjVkMDZhMzU4MGY4Y2E5NzQ2MjZjNzcyNTljNmUzNzM4M2NiODE1MGI0ZDBhYjBiMzBlMzc3YmVkMGRjOWQxZmYxYTFiZiI6IiI6IjE1NjMzZTNhNjJiMjE1OTRkNDlkM2QyNmM0YzM1MDlmOTYwMTFkNGRiYjlkNDhiYmJlYTFiNjFjNDUzZjZhYmUiOiI2MDY4ZWFjYTg1YzE0MTY1YjEwMWJiM2U4YzM4N2M0MWQzZjI5ODkxOGM3ZjNkYTJhMjg3ODZhYjA3MzhhNmZjIjoiZTM0ZjkyZDJiNmFlZWVlYTRmZjQ5YmZlN2U0YjFmNDYyZWFiYjg1M2YwZTg2ZmJhZTBlOGIzZDUxNDA5Y2U0OSI6IjU4N2ZkYjg1NmFiYzE5ZWRlOTA3ODc5N2VjYjQ0MDk5ZTA3YWFkY2Q4M2FjZGNiMmIwOTA2MDFkNjUzZjRhMTRjNjhhYjJlYmRkYTYzNTc4YzU2MzNhODI1YmFlNGMwYzgxOGY4OWFhYzU4ZDMwZmQ3YjBiNWQ0NTlhMGYzZDg2ZmNhZDc4ZjRiYjE0ZGZmZjA4YWQ4MWU0ZWE5ZjQ4N2NiNDI2ZTkxZDZlODBkZmVkNDM2YmEzOGZjZThkNmYyMWNhMjE1MWM5MmRkNWMzMjNiMDc3ZDYxMzljNjYzOTU1NThmMDUzNzAyNmM0YTAyOGFmZmEyNzFlZjRlN2VhMjMiCiAKIEhNQUNfRFJCRyBOSVNUIENBVlMgMTQuMyBQUiBGYWxzZSAoU0hBLTI1NiwgMCwgMjU2KSAjMTEKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBobWFjX2RyYmdfbm9wcjpNQkVEVExTX01EX1NIQTI1NjoiODNlYjQ4YmVkYzFlOTI5NDg2NmFiOGU1MzIyZWY4M2Y2ZjI3MWY4MTg4ZThmZGFiZTU4MTc3ODhiZDMxNTcwZGQ2ZWQ5MGJjNjkyMjM3ZjEzMjQ0MWVkZTg1N2E2NjI5YTRlNWUxMjdmOTkyYmQ1Y2E3OWVlNTZiYjhhOWJjY2Y3NGMyMTgxNGJmYWY5N2ZmZDA1MjIxMWU4MDJlMTJlNCI6IiI6Ijg0MTM2ZTQwM2Q5ZWQ3ZjQ1MTVjMTg4MjEzYWJjZmFjYTM1NzE1ZmE1NWRlNmQ3MzRhZWM2M2M0NjA2YTY4ZjEiOiJmZTlkOGVmMjZlMmQyZTk0Yjk5OTQzMTQ4MzkyYjJiMzNhNTgxYjRiOTdhOGQ3YTBlY2Q0MTY2MGE2MWRkMTBiIjoiNTk0ZGFkNjQyMTgzY2UyY2RjOTQ5NGQ2YmNiMzU4ZTBlN2I3NjdjNWEwZmEzM2U0NTY5NzFiODc1NGE5YWJkNSI6Ijg2NzE1ZDQzYmE5NWZiYmNhOWI3MTkzZWE5NzdhODIwZjRiNjFiYTFiN2UzYjhkMTYxYjZjNTFiMDlkZmQ1MDQwZDk0YzA0MzM4YjE0ZDk3ZWQyNWFmNTc3MTg2YjM2YWU3MjUxYTQ4NmM4YTJkMjRhMzVlODRhOTVjODlkNjY5ZDQ5ZTMwN2I0YTM2OGI3MjE2NDEzNWFjNTRkMDIwYTk3MGExODBkZmJlZDEzNWQyYzg2ZjAxMjcwODQ2ZDUzMDFiZDczZGIyYzQzMWE4YWExMGEwYTNkMDNkMTQ2ZTVmYWZiOWEyYWEwYjRlZmM4MGVkYWIwNmZmM2I1MzIyMzYiCiAKIEhNQUNfRFJCRyBOSVNUIENBVlMgMTQuMyBQUiBGYWxzZSAoU0hBLTI1NiwgMCwgMjU2KSAjMTIKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBobWFjX2RyYmdfbm9wcjpNQkVEVExTX01EX1NIQTI1NjoiYmEyYzk0MjAzZGFiMmU2NDk5ZDhjNTBkY2E3YjVjMzRhNmI0NzY0ODM0Zjk4MTY2MzFhYTIxYjlmOWMzNzM2MTY3ZGIxMzNiZGVmYjI1ZTM5NTA4NWJjZWVlNWEwYWZjZmE4OTg0ZDE2ZDM1MzAyY2RhMzVhM2EzNTVhYjkyNDJlYzk2ZmVjMDY1MmQzOTI4MmQ0YTBhYmYwYTgwZGY4NyI6IiI6ImI2ZmVkMTAyNTVhM2ZlYTY3NzJhZTFhZTZkOWY2Y2JiOWJmYWEzNDgwNGU1OGE1Yjc4NmY5YmM2MGIzNDhjY2QiOiI0NDVlMDcyMjQ0ZWRjNzE2ZDM1MjhmMGUwYTIwZmYwY2Q4ZjgxOWMwZDAzMTczNmM4ZGExMjI3NDhmMjRkNmM2IjoiMWY4NTZlNDAzYzRmYTAzNWJhYzlhYTgxYTIwZTM0N2M3ZDhiMjEzYWFiNjk5ZDY5ZDlkNjE4NmEwNmFjNDVjMSI6Ijc5ZjMzZmMzNmIzYjQ3ZDlhYzgwNWJkYmJlNjk5OTA5YThkMGJlYjY4OWE4YjI3MjNjMjkxYmQ1YmY3ZjNjZTYxMzQzZDQ3MjJhMTRlNGFkZDM2MzEyZGJiMDU5NDkxMGM4ODI4YWZmMWFiYzE1OTkxNWQ0OTgxMDZmOWZmYjMxMTQ3NDc4ZDhjOWVmNzVkMTUzNmJhNTAzNjUwNmIzMTNmNmU4NTAzM2Y4ZjZmZWEyYTRkZTgxN2M4NjdhNTkzNzhjNTNjNzBhMmYxMDgyNzVkYWVkZDQxNWMwNWI2MWM0ZmQ1ZDQ4YzU0YmU5YWRiOWRlYTZjNDBhMmVjOTllZTAiCiAKIEhNQUNfRFJCRyBOSVNUIENBVlMgMTQuMyBQUiBGYWxzZSAoU0hBLTI1NiwgMCwgMjU2KSAjMTMKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBobWFjX2RyYmdfbm9wcjpNQkVEVExTX01EX1NIQTI1NjoiMGRiNGM1MTQ5MmRiNGZlOTczYjRiYjFjNTJhMWU4NzNiNThmYzZiYjM3YTNhNGJmYzI1MmIwM2I5OTQ0OTVkMWEyYTM5MDBmMTY5YmJhM2Y3OGE0MjUyNmM3MDBkZTYyMjlkNWFhYjM1Njg3NjQ0N2UzYTIwZDgxYzdlM2ZjNjk3NWUyYjk4NDE4MGE5MTQ5MzA0NDQ0Mjk5OWUxY2EzYSI6IiI6IjQwYjM0MTgzYjRlNzJjZGZmNTk1MmIzMTdiM2Q0NTk0M2QwZmRjZmEwNTI3ZjM1NjMwNTVmN2M3M2FlOGY4OTIiOiJkYzk0MjIwYzk5ZmZiNTk1YzdjNGQ2ZGU4ZGU1YTZiYjRiMzg4NDcxNjllMjRhNTU3ZWY2ZDg3OWFkODQxNDlkIjoiYjIzNzY2MjZmZDJmNTIxOGIzZWQ0YTU2MDliNDNhYTI0ZDM3MWNkMjE3NmVhMDE3YzJiOTljZjg2ODA2MDAyMSI6ImYwYmQ2YmM0YzUwNmQ5NDI3YTA5MzUyZDljMTk3MGIxNDYzNjA3MzI4NDFhNjMyM2Y0Y2I2MDJjODdkZWRmYjVmZjdlNjk2NGI5MTQ0OTMzYWYzYzVjODMwMTdjY2Q2YTk0YmRjYTQ2N2E1MDQ1NjRhYWE3YjQ1MjU5MWExNmZmNmExZTdlOTRkZGM5OGY5YTU4MDE2Y2RjYjhjYWFlZDZjODA2NzFiYTQ4Y2M4MWE4MzJkMzQxMDkzZGRhMWQ0ZTUwMDFlYzZiZjY2MzQ4YjIxZTM2OTJhMTNkZjkyNTM4YWQ1NzJiYjIwMjM4MjIwNzJmYzk1Zjk1OTAyOTNmZmMiCiAKIEhNQUNfRFJCRyBOSVNUIENBVlMgMTQuMyBQUiBGYWxzZSAoU0hBLTI1NiwgMCwgMjU2KSAjMTQKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBobWFjX2RyYmdfbm9wcjpNQkVEVExTX01EX1NIQTI1NjoiNTkzODQ1ZjBhZGZlZmZhN2MxNjlmOGE2MTAxNDdhZThhMDhjMDA3MmZjMGMxNGMzOTc3ZDNkZTBkMDBiNTVhZjllMGViMjUwNzM0MmVlMDFjMDJiZWFkZWU3ZDA3N2JkYWVmZTU5MTY5N2VhYjY3OGM1MmUyMDAxM2FhNDI0Yjk1Y2ZkMjE3YjI1OTc1N2ZiZTE3MzM1NTYzZjViNTcwNiI6IiI6ImNiYjViZTBlZjliZjA1NTVlZTU4OTU1YzRkOTcxZmI5YmFhNmQ2MDcwYzNmNzI0NGE0ZWI4OGI0OGYwNzkzYmYiOiI2ZGQ4NzgzOTRhYmRjMDQwMjE0NmJhMDcwMDUzMjdjNTVmNGQ4MjFiZmViY2EwOGQwNGU2NjgyNGUzNzYwYWI0IjoiYmE4NmE2OTFkNmNiZjQ1MmIxZTJmZDFkZmI1ZDMxZWY5ZWE1YjhiZTkyYzQ5ODhkYzVmNTYwNzMzYjM3MWY2OSI6IjAwNzM1Y2JmYWZhYzVkZjgyZTVjYjI4ZmM2MTliMDFlMmJhOTU3MWRjMDAyM2QyNmYwOWMzN2ZiMzdkMGU4MDkwNjYxNjVhOTdlNTMyYmY4NmZhN2QxNDgwNzhlODY1ZmUxYTA5ZTI3YTY4ODliZTE1MzNiNDU5Y2Q5Y2QyMjk0OTRiNWNmNGQyYWJmMjhjMzgxODAyNzhkNDcyODFmMTM4MjAyNzZlYzg1ZWZmYjhkNDUyODRlYjllZWY1ZDE3OWFiNDg4MDAyM2FiMmJkMDhlZTNmNzY2Zjk5MDI4NmJmMzI0MzBjMDQyZjU1MjFiYmZkMGM3ZWUwOWUyMjU0ZDciCiAKIEhNQUNfRFJCRyBOSVNUIENBVlMgMTQuMyBQUiBGYWxzZSAoU0hBLTI1NiwgMjU2LCAwKSAjMAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIGhtYWNfZHJiZ19ub3ByOk1CRURUTFNfTURfU0hBMjU2OiJmYTBlZTFmZTM5YzdjMzkwYWE5NDE1OWQwZGU5NzU2NDM0MmI1OTE3NzdmM2U1ZjZhNGJhMmFlYTM0MmVjODQwZGQwODIwNjU1Y2IyZmZkYjBkYTllOTMxMGE2N2M5ZTVlMDYyOWI2ZDc5NzVkZGZhOTZhMzk5NjQ4NzQwZTYwZjFmOTU1N2RjNThiM2Q3NDE1ZjliYTlkNGRiYjUwMWY2IjoiZjJlNThmZTYwYTNhZmM1OWRhZDM3NTk1NDE1ZmZkMzE4Y2NmNjlkNjc3ODBmNmZhMDc5N2RjOWFhNDNlMTQ0YyI6IiI6IiI6IiI6ImY5MmQ0Y2Y5OWE1MzViMjAyMjJhNTJhNjhkYjA0YzVhZjZmNWZmYzdiNjZhNDczYTM3YTI1NmJkOGQyOThmOWI0YWE0YWY3ZThkMTgxZTAyMzY3OTAzZjkzYmRiNzQ0YzZjMmYzZjM0NzI2MjZiNDBjZTliZDZhNzBlN2I4ZjkzOTkyYTE2YTc2ZmFiNmI1ZjE2MjU2OGUwOGVlNmMzZTgwNGFlZmQ5NTJkZGQzYWNiNzkxYzUwZjJhZDY5ZTlhMDQwMjhhMDZhOWMwMWQzYTYyYWNhMmFhZjZlZmU2OWVkOTdhMDE2MjEzYTJkZDY0MmI0ODg2NzY0MDcyZDljYmUiCiAKIEhNQUNfRFJCRyBOSVNUIENBVlMgMTQuMyBQUiBGYWxzZSAoU0hBLTI1NiwgMjU2LCAwKSAjMQotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIGhtYWNfZHJiZ19ub3ByOk1CRURUTFNfTURfU0hBMjU2OiJjZmY3MmYzNDUxMTUzNzZhNTdmNGRiOGE1YzlmNjQwNTNlNzM3OTE3MWE1YTFlODFlODJhYWQzNDQ4ZDE3ZDQ0ZDFlOTcxZWM3OTVkMDk4YjNkYWUxNGZmY2JlZWNmZDk0NWVjODBmMGMwMGNhZDBmZjBiNzYxNmQyYTkzMGFmM2Y1Y2YyM2NkNjFiZTdmYmY3YzY1YmUwMDMxZTkzZTM4IjoiNmVjMGM3OThjMjQwZjIyNzQwY2FkN2UyN2I0MWY1ZTQyZGNjYWY2NmRlZjNiN2YzNDFjNGQ4MjcyOTRmODNjOSI6IiI6IiI6IiI6IjE3YTc5MDFlMjU1MGRlMDg4ZjQ3MjUxOGQzNzdjYzRjYzY5NzlmNGE2NGY0OTc1Yzc0MzQ0MjE1ZTQ4MDdhMTIzNGVlZmVmOTlmNjRjYjhhYmMzZmI4NjIwOWY2ZmM3ZGRkMDNlOTRmODM3NDZjNWFiZTUzNjBjZGRlNGYyNTI1Y2NmNzE2N2U2ZjBiZWZhZTA1YjM4ZmQ2MDg5YTJhYjgzNzE5ODc0Y2U4ZjY3MDQ4MGQ1ZjNlZDliZjQwNTM4YTE1YWFhZDExMmRiMTYxOGE1OGIxMDY4N2I2ODg3NWYwMGYxMzlhNzJiZGYwNDNmNzM2ZTRhMzIwYzA2ZWZkMmMiCiAKIEhNQUNfRFJCRyBOSVNUIENBVlMgMTQuMyBQUiBGYWxzZSAoU0hBLTI1NiwgMjU2LCAwKSAjMgotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIGhtYWNfZHJiZ19ub3ByOk1CRURUTFNfTURfU0hBMjU2OiJiNzA5OWIwNmZjN2E4YTc0YzU4MjE5NzI5ZGI2YjBmNzgwZDdiNGZhMzA3YmMzZDNmOWYyMmJmYjc2MzU5NmEzYjg3NzIwNTlhMTM1YTZiNjFkYTcyZjM3NTQxMWRlMjY5YWVjNGY1NmVjNWU5NmZiZDk2MDQ4YjlhNjNhYzhkMDQ3YWVkYmJlZWE3NzEyZTI0MTEzM2IxYTM1N2VjZmM0IjoiMmFjMWJmYjI0ZTBiOGM2YWMyODAzZTg5MjYxODIyYjdmNzJhMDMyMGRmMmIxOTkxNzFiNzliY2JkYjQwYjcxOSI6IiI6IiI6IiI6IjBlMWYyYmZlZjc3OGY1ZTViZTY3MWVjYjQ5NzE2MjRlYzc4NGVkMjczMmFiYzRmYmI5OGE4YjQ4MmZiNjg3MzdkZjkxZmQxNWFjZmFkMjk1MTQwM2FjNzdjNWNhM2VkZmZjMWUwMzM5OGFlNmNmNmFjMjRhOTE2NzhkYjVjNzI5MGFiYzNmYTAwMWFhMDJkNTAzOTkzMjZmODVkMmI4OTQyMTk5YTE1NzVmNjc0NjM2NDc0MGE1OTEwNTUyYzYzOTgwNGQ3NTMwYzBkNDEzMzkzNDVhNThmZjAwODBlY2NmMTcxMTg5NTE5MmEzODE3YThkYzNmMDBmMjhjYzEwY2MiCiAKIEhNQUNfRFJCRyBOSVNUIENBVlMgMTQuMyBQUiBGYWxzZSAoU0hBLTI1NiwgMjU2LCAwKSAjMwotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIGhtYWNfZHJiZ19ub3ByOk1CRURUTFNfTURfU0hBMjU2OiI3YmEwMmE3MzRjODc0NGIxNWVmOGI0MDc0ZmU2MzliMzJlNDQzMTc2MmFiNWI3Y2Q0ZDVkZjY3NWVhOTA2NzJiOGE0MjRmMzIxMDg2MDdjOGYxZjQ1ZDk3ZjUwMGVlMTJkOGYwMmI1OWI2YTNkZDI3NmJjNjljYmE2OGVmY2YxMWFiODNlYWQxMzk3YWZkOTg0MTc4NmJkMWJiNWRhOTdhIjoiM2FkNjI3NDMzZjQ2NTE4N2M0ODE0MWUzMGMyNjc4MTA2MDkxZTdhNjgwMjI5YTUzNGI4NTFiOGQ0NmZlYjk1NyI6IiI6IiI6IiI6IjFmYjkxMTg2YmE0YjQ0NTlkOTk0YjRiOWY0Y2EyNTJjN2JlNjI5NGQ2Y2RiNWZlNTZmOGZmNzg0ZDRiMTkwYTFjNjQ1NmUwYTQxMjIzYmJiZGY4M2VkOGU3Y2ZiZmE3NjVkOWQ4YmM3ZWE1ZjRkNzllYTdlY2NiNDkyODA4MWEyMWRlNGNjYTM2NjIwZDYyNjdmNTVkOWEzNTJiNzZmYzBhNTczNzU4ODQxMTJjMzFmNjVmZjI4ZTc2ZDMxNTY5OGMyOWU2YzRjMDVjYjU4YjBhMDdhZTY2MTQzYjRhYmM3OGI5ZDI1Yzc4YjQxMjFlMWU0NWJlZjFhNmMxNzkzZTIiCiAKIEhNQUNfRFJCRyBOSVNUIENBVlMgMTQuMyBQUiBGYWxzZSAoU0hBLTI1NiwgMjU2LCAwKSAjNAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIGhtYWNfZHJiZ19ub3ByOk1CRURUTFNfTURfU0hBMjU2OiI5YTg4NjVkZmUwNTNhZTc3Y2I2YTkzNjViODhmMzRlZWMxN2VhNWNiZmIwYjFmMDRkMTQ1OWU3ZmE5YzRmM2NiMTgwYzBhNzRkYTNlYzQ2NGRmMTFmYWMxNzJkMWM2MzI3NWI5NTEwOGVmZjFmYWJlODM2MTNlMWM0ZGU1NzVlNzJhNWNkYzRiYjkzMTFkZDAwNmY5NzFhMDUyMzg2NjkyIjoiMzM2MzcyZWM4MmQwZDY4YmVmYWQ4MzY5MTk2NmVmNmZmYzY1MTA1Mzg4ZWIyZDZlZWQ4MjZjMjI4NTAzN2M3NyI6IiI6IiI6IiI6IjNjNjgzZjZkNGY4ZjVhNDAxOGQwMTYzM2RmZWU3NDI2NmFhYTY4ZWQ2ZmM2NDllODFiNjRkZmRmNWY3NWU3NWQ1YzA1OGQ2NmNmNWZkMDFhNGYxNDNhNmZmNjk1NTE3YTRhNDNiZDNhZGZkMWZiMmMyOGJhOWE0MTA2MzE0MGJlZGJmZmRiNGQyMWIxYWNlMTU1MGQ1OTIwOWVjNjFmMWUyZGJhY2IyYTkxMTZhNzljYjE0MTBiZjJkZWNhNTIxODA4MGFhY2Q5YzY4ZTFkNjU1NzcyMWE4OTEzZTIzZjYxN2UzMGYyZTU5NGY2MTI2N2Q1ZWQ4MTQ2NGVlNzMwYjIiCiAKIEhNQUNfRFJCRyBOSVNUIENBVlMgMTQuMyBQUiBGYWxzZSAoU0hBLTI1NiwgMjU2LCAwKSAjNQotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIGhtYWNfZHJiZ19ub3ByOk1CRURUTFNfTURfU0hBMjU2OiIyMmMxYWYyZjJhNGM4ODVmMDY5ODg1NjdkYTlmYzkwZjM0ZjgwZjZkZDUxMDFjMjgxYmVlZjQ5N2E2YTFiMmY4M2ZhZmRlY2Y3OWE0MTc0ODAxZjEzMzEzMTYyOTAzN2JmOTVhMGU0YmQyNGYwZTJlOWU0NDRmNTExYjc2MzI4NjhlYWQwZDViYjM4NDY3NzEyNjRlMDNmOGFiOGVkMDc0IjoiODAzMjdkYWM0ODYxMTFiOGE4YjJjOGU4MzgxZmIyZDcxM2E2NzY5NWMyZTY2MGIyYjBkNGFmNjk2Y2MzZTFkZSI6IiI6IiI6IiI6Ijc3YTdmZWEyZjM1YTE4OGY2ZDFiZmRkNDliNTY5ZDhjNDVlMmRkNDMxZDM1YTE4YzZmNDMyYzcyNGYxZTMzYWU5MmNiODlhOWNmOTE1MTllNTA3MDVhNTMxOTlmNWI1NzJkYzg1YzFhZWY4ZjI4ZmI1MmRjNzk4NjIyOGY2Njk1NGQ1NGVkYTg0YTg2OTYyY2YyNWNmNzY1YmQ5OTQ5ODc2MzQ5MjkxYjFhYWU1Zjg4ZmNmNGIzNzY5MTJkMjA1YWRkNGY1M2IyNzcwYzY1Nzk0NmMwZDgyNDI4MWY0NDE1MDkxNTNmNDgzNTZkOWQ0M2Y4YTkyN2UwNjkzZGI4ZmMiCiAKIEhNQUNfRFJCRyBOSVNUIENBVlMgMTQuMyBQUiBGYWxzZSAoU0hBLTI1NiwgMjU2LCAwKSAjNgotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIGhtYWNfZHJiZ19ub3ByOk1CRURUTFNfTURfU0hBMjU2OiJkMDg0MGUzYThkNjI5ZDViODgzZDMzZTA1M2EzNDFiMjFjNjc0ZTY3ZTE5OTlmMDY4YzQ5N2VjZmFhYmZkNmY2MDcxZGU3MjQ0ZWNiMmZkZjdhYjI3ZjJkODRhYTdiN2ExZGQxYThiNTk4NTZjNDlhMzg4ZjU5NGM1ZjQyY2MyZTRhNTZiM2NjYjhhNjVlNzA2NmU0NGMxMmY0MzQ0ZDUwIjoiOTBkNjA5NTI3ZmFkOTZmZmU2NGFiMTUzODYwMzQ2ZjNkMjM3Yzg5NDA1NTVhZTE3YjQ3ODQyZDgyZDNiMDk0MyI6IiI6IiI6IiI6IjdhYjI4YTliMmQzYWU5OTkxOTU1NTNlNjU1MGNjZWQ0YzJkYWNjYmU3ZWM5ZGNiYjBkNDY3ZmFiYmExODViNzI3ZmJmZDk4MzAyNDJjZDA5OGY0ZGIzY2Y0YTg1ZThiZjhlOGQ1OTc0YjYyYjI4NTUwOTIyYjMyZWQ1YmZjMWE1MjJiNjYwNWNmOTNiZjhkOTBiZGVjMWM1YjllNTljNmZjMzdhODE3ZDQzNzA2OGE4NzI1NGJlMWY3YzQ2MThhZGE0NmZiYzNhMmVmYjAyZTQ0NTI0ZTIxZDkxYmU3NTM0Y2YwNWZiZmQ4NTgzMDRiNzA2ZDZhOTFlYTFjYzZhZDUiCiAKIEhNQUNfRFJCRyBOSVNUIENBVlMgMTQuMyBQUiBGYWxzZSAoU0hBLTI1NiwgMjU2LCAwKSAjNwotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIGhtYWNfZHJiZ19ub3ByOk1CRURUTFNfTURfU0hBMjU2OiIyZTJkZDU2ODY5MTA0NDkyNzY3YTU5Nzc4NjUyODMxOTE5ZTFjOGI5NzBmODRlODI0YWU0MTE2NTk3YTBhYjdmMDFjNDJhN2U5ODM2NDFkZTQ2YzgyZmQwOWI0ZjJmNzY3MzA2NTA3Y2QzY2E3ZWVjNjY3ZTY0MGQyNzBjZmJiMDMzMDYzZDk3NTIwYjZiN2UzOGZmM2NlYTBlNzlkMTJiIjoiYmNkOWUxNTA4ZmNjMjI4MjBhOGJlMDcxODBmZWE1MDQ1MzY3MzMzYjU2OWUxMTFiMDExY2Q1N2RjMTg1ODc2NSI6IiI6IiI6IiI6ImI5MTU3MjZjN2I4YzVkYzM5NzVmMWEzMzQ2ODRiOTczYWJmNmE5NDk1ZDkzMDA4OGNmNWQwNzE1NDhlNGZkMjlhNjdiNTVjYzU2MWVkNjk0OWFkMjgxNTBhOWZiNDMwN2MxZmE1Zjc4M2E3ZWE4NzJlOGQ3YzdlNjdmZjBjMjkwNjA4MWVlOTE1NzM3ZDgxM2MyNWJlNWMzMGI5NTJhMzZmMzkzZTZiYWE1NmFiMDFhZGMyYjQ3NzZhZDdiNWQwMzZhNTM2NTk4NzdjN2E0ZTUyMjBhODk3ZDZjMDc5OWFmMzdiZWVlZDkxMTczZmJlOWM2MTNjM2I2YjliYjI4ZTUiCiAKIEhNQUNfRFJCRyBOSVNUIENBVlMgMTQuMyBQUiBGYWxzZSAoU0hBLTI1NiwgMjU2LCAwKSAjOAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIGhtYWNfZHJiZ19ub3ByOk1CRURUTFNfTURfU0hBMjU2OiJkMWFhYjBmMTZiZDQ3YTVjY2Q2N2MyMmUwOTRkYWEzNzM1ZWFlMjFhYTU3ZjBiY2Q5ZTA1M2Q5ZDBkNTQ1Y2I4MTk5MzEwZGZlMWIwMTI2NWI4YzBkMmI0NmQ2YzdjOWZmNTBjYWJhZTRlMDYwZjM5NzEwOTZiNzhlNTUwY2RhMjgzN2EyNmE2OTNkOTA1ZGIyZDk5MmQ1ODliMjY4ZjQ0IjoiNjI1YjRiOGY0ZGU3MmVhOWNiNmY3MDU1NjMyMmRjMmExOWQ2YjJiMzJkZTYyM2Y1NTdlNDE5YTA4NGJhNjBmZCI6IiI6IiI6IiI6Ijk4N2UxZmRmZTAwNGM2MTljZjFlOTAzNDU3NjcwN2VjY2Q4NDk0MDBlMTljODdhMWZlZjViMDE3OWVjNTFjNDJhMmY4YzQ1ZDc5NDJkMDAyM2EwMjNjODlmMTg4YjI2MzQzNjI3MDM5ODU2OTUzNjk4NjMzMjJmNTg2MTljNTBhNzM4NWEyZGM5MWZjNzhmOTRiNTlmMDEzMWRjMmI1NmEwZDdjNjk5ZDQyNzI4NWRhMWMxMDRiMGFkMTczOWRhMTBkODA3MWMyMzk5Mzc4NzA0NWRjMjFmMDA3MGUxZTlhYTE2NThmYzhlM2FkZDczZGFjNzI2MmU4MGUwYWEyZWUiCiAKIEhNQUNfRFJCRyBOSVNUIENBVlMgMTQuMyBQUiBGYWxzZSAoU0hBLTI1NiwgMjU2LCAwKSAjOQotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIGhtYWNfZHJiZ19ub3ByOk1CRURUTFNfTURfU0hBMjU2OiI0NDk0ODBlYWExMDBhZmY2ZjQ4ZGM2Mjg2YTVhODFiOTcyOGIwODQ4NjRmNzhhOWRhOThmNjA2YTAwYTZhNDFmZTUzYzZjNWFjM2RhOWY0NzI2Mzg5YTAzZjk3YmI2NDA3M2E2ZDY0ZTE5NjZhZTMyNDM4OGRjMTJjMTQ1NDRlOWRjNWFlNGZjYjMzMWU5OWQzNTBjNDU2ZmYxNmY5YWEwIjoiNmI4ZmVkYzA4NGQ4ZTI4ZDMzM2FlZjZkYjM3MDJiNjM1MWYwZDI0ZTMwOTA4Y2NjYjYzNzk0MjgyNjU1ODg2YiI6IiI6IiI6IiI6ImEwNjkxMmQzNjJkYTdlYjI1NTk4ODU3ZjZkNjUzNDRjM2UyM2VjM2RlYjgwYzZlNDMxNTg4NDViOTVlYWVjYTI0MWMwYmJiZDY3YWMzODVlMjQ2OTM0NDQ0NTVjYzFjMmMwOGMxMTM0ZDk1NmI4YmM5M2IyOGJlOWMyZDMzMjJiM2UwOTI1Mjk3OWRmYjhkMzlkMDRjOTRmODFiZWJkYTVjNzMxMTA2MDVhMjM3YjU2MTIxNmJkYTllZTliZGVlMWNjMGM3NzI4YmNjODMwNDY4MjMzNGNhOTQ0ZTQ2N2EyN2E4NTMxM2ZhNTM5NWE5Yzc5MGUzNWRlZmQyZWRiMTIiCiAKIEhNQUNfRFJCRyBOSVNUIENBVlMgMTQuMyBQUiBGYWxzZSAoU0hBLTI1NiwgMjU2LCAwKSAjMTAKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBobWFjX2RyYmdfbm9wcjpNQkVEVExTX01EX1NIQTI1NjoiOWE2MTc0MTY2ZTk3YWE0OTgxZGRmNTgwYmMwMWM5Njc1NGI5ZjBiYTA0Mjc1MGFhYmZkYTFjZmZlNTZlODU4MWQ3NTEyZmY2YjdkYjdjZTE0MWIyYmIwMWRjZDA0MjVlNjg4OGI5Mjc3ZTU3ZGM1NzY2M2Q0MDJlYmE4ZDAzY2Y1NmEwNzBkYzg2OGU2YTEyOGIxODA0MDAwMmJhZjY5MCI6ImVkNzUyODhmMjMyNzVmOTQyMjQ0NGRhNWQzYjUzY2NiM2M0YWM4YWNmYjY1OWExZTliNzY1NWMyZGI1MmY4NzkiOiIiOiIiOiIiOiIwMzUxOWRmYjJmZjg4Y2MyYjUzZWVjYzQ4YWUyYTE4ZGRjZjkxYTVkNjlkNWFlZmNkZGE4NDQ0ZTZkZjc5MGE1MjQwZTY3YjJhNGRlNzViNGJiOGEzMWYwZjhhZWI1ZTc4NWZmYjdhMTM0MWJiNTJmZTAwYTA1ZWU2NmZhMmQ0NGVhOTk1NmUwNTVmOWZmYTY2NDdjM2JmZTg1MWFiMzY0YWRlNzFhMGQzNTZkZTcxMGRkYWZiNzYyMmIxZGExYmM1M2ZkNGQzMjEwNDA3Mjg5YzY4ZDhhZWIzNDZiZjE1ODA2ZGJlNzg3ZTc4MWI5NGY2M2RhM2UxZjYxYjVhYzYwIgogCiBITUFDX0RSQkcgTklTVCBDQVZTIDE0LjMgUFIgRmFsc2UgKFNIQS0yNTYsIDI1NiwgMCkgIzExCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NgogaG1hY19kcmJnX25vcHI6TUJFRFRMU19NRF9TSEEyNTY6IjljNmFlMTAwMmVlMWIwYWRkMGJlNTYzY2U1MGY4OTlkYTkzNmUxM2VmYTYyMGQwOGMyNjg4YzE5MjUxNDc2M2FmZGU3ZGI1MTYwYzczMDQ0YmU3M2U5ZDRjMWIyMmQ4NmJjYzI4ZmQ1OGUzOTdmNTNmNDk0YWQ4MTMyZGY4MmM1ZDhjNGMyMmVhMGI3MTM5YmQ4MWVlYmE2NTY2N2JiNjkiOiI4ZmRhYWVmZmQ2NGU1M2Y3YjQzNzRkOTAyZDQ0MTIwOTk2NGUxMmI2NWQyOWFmZWMyNThlNjVkYjZkZTE2N2NhIjoiIjoiIjoiIjoiMDIxZDkzOGM5YjRkYjc4MGM3ZDgxMzRhZWZmMTA1M2U1Yjg4NDMzNzBiOGFlOWE2NzQ5ZmNhNzE5OWQ4MDk4MTBmMWJjOGRmYTQ5NDI2NDcwYzMwYzM2MTZmOTAzZTM1ZmJhY2IyMzQyMGEzMmYxYmVlNTY3Y2MzMjMwMGY3MDQyNDZkZGMwMjE3ZjIzNmVmNTJjM2VjOWUyNDMzY2E2NmYwNWMyNTcyMWY3NjYxYzQzZjIyYzFhMTI1ZWQ1ZGI1MzFiZDA4MzZlYjQzNWMyN2VlZmM3NDI0Y2U5ZDg0NWUxZDRjYzRjNTAzMDk3YjRmZmNhNzg4ZTY3NGE1Y2I1MyIKIAogSE1BQ19EUkJHIE5JU1QgQ0FWUyAxNC4zIFBSIEZhbHNlIChTSEEtMjU2LCAyNTYsIDApICMxMgotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIGhtYWNfZHJiZ19ub3ByOk1CRURUTFNfTURfU0hBMjU2OiJmZTk2YTg1YjY5ZDQ2YjU0MDkxODkyN2JiNjA5ZGM1NzY0MmVlYWVmZDQ2YmI1ZGEyMTYzYTBiYzYwMjk0YjU4MjIxOTVhNDEwZDI0ZGI0NTU4OTQ0OGRmZTk3OWQzZmQwOWNiODcwODc5ZDNmNzM0MjE0ZjZhNGJkMmUwOGM2MmEyYTk1NGJlYmU1NTk0MTZkOGMzNTUxYWFmZTcxZDZhIjoiMjBmNjk4ODMzYTQ0NzJmZDdiNzhmYjliMGM0ZWI2ODYwNGYxNjZhMjY5NGM0YWY0OGRhYzJiMjM3Njc5MGUxZSI6IiI6IiI6IiI6ImQzZTk2ZGJlMjllMWZjYjhlZDgzYjE5ZGJmYjI0MGU2ZjQxNjc5ZmJlODM4NTNhYTcxNDQ2NjE3ZTYzZTVhZjc4Y2Y5OGIzMzFkMTViY2NiOGM2NzNjNGU1ZDVkY2VjNDY3YTFmZTI2YTZjZDE2OTZkMGM5YmM0OWY3ODEzOWQwNTEyODdkZjdmM2FlMGRiYjRiYmY1ODFjYjgyMTE5MzEwNjNjM2Y0NjEyY2VkNTNmNTlkMWI0ZWJiODc1NzI5MTM5ZjVkMmE3ZDYwNjQyZThmMjgzNWVlZDg4OGI3ZTNlNDljMGRmZmQwMTJjZDc0NmFiZmEzZTFjNWMyMzA4YzYiCiAKIEhNQUNfRFJCRyBOSVNUIENBVlMgMTQuMyBQUiBGYWxzZSAoU0hBLTI1NiwgMjU2LCAwKSAjMTMKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBobWFjX2RyYmdfbm9wcjpNQkVEVExTX01EX1NIQTI1NjoiYTRmZDY5M2ZmMGE4YWYyNGJjZWMzNTJkMzE5NjU0OWZkMGRhNWVlNWQ5OWNhNTg0MTZjYTAzY2U0YzUwZjM4ZThjZDY3ZjJiZjcxZDQzNjZjZTYxMzk2NjQyNTMxZmY1ODNkMmJlOWEwZDc0ZTZhNDIxNTlhZTYzMGFjZWJmNGUxNTI3MWVmN2YxNGYzZGUxNDc1MmJlMGUwZTgyMmIxMSI6IjM2ODk2OWMxNWE0ODQ5ZDc1OTNiZThiMTYyMTEzYjkyOThhNTM1YzE0OGZmNjY4YTllOGIxNDdmYjNhZjRlYmEiOiIiOiIiOiIiOiJlOTE4OGZjMGVhZWM3NGIyNjA4ZTIxZTNhNDBiZTk0YWFmNGFlMDhlYjY4NGRlOGY4YmJhMmQ1ZmQzYjA3M2FhNTUzMWM5MzhjMGZjNjI4ZGE2NTcyNWM1NGI1YzY4YmI5MWQ3ZDMyNjU2NWU5NjY4NWUwYTRlN2IyMjBjNTBlMGNhZjE2MjhlZGJhNWJkNzU1YjMxODk0ZjhjYjkwYWZhNzZlODhjNWViOWU2MWI0OTMyNDQ0YzEzOTdkZWUzZTMyMjQxYTNmYjcwYTM5MjllNDlmNmRhMDJlZWE1NDgxMmFiYjNkNmI1Y2VlMThmMDNhZjFlMGI0OTU4NDMwYWIzIgogCiBITUFDX0RSQkcgTklTVCBDQVZTIDE0LjMgUFIgRmFsc2UgKFNIQS0yNTYsIDI1NiwgMCkgIzE0Ci1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NgogaG1hY19kcmJnX25vcHI6TUJFRFRMU19NRF9TSEEyNTY6IjI1NGZmNTY4N2E2ZGFkM2YxZDIzN2RjNzYyZjU4ZDI0ZWYyZTJjMDg0ZDBhNDhkMjZhM2RjODFlNTQ5MGNkYTNmMmVjMzkyYWNjYTQ5MWUwM2NlNDdiOTU5NjNhNDlmY2I4NDk0YjFjMWYxNzUyZmI2ZjgwZDczMmE4OWIwODExNTg1N2Y3Y2M5NmU3ZGZmMDVlYmI4MjI3MDY4ODk5MTciOiJmODA2YjliNGE1NjY4MmM2MWI1NWNiNmEzMzRjYWY4N2ZmZTEzNWFkZmVhNmQwYzNmYzIyYjM5ODk4ZmJkMDc4IjoiIjoiIjoiIjoiMGU1MjdlMDA0OTRkNTU1NjRmOWQ5YjI4ZTcxMTBmOWE2MWNlMzZjODgzYjViZTJkY2IwNTU0NDQxNjRjZGRkZDFhOWYyNzMxNzE2ZjIyZDZmZjQ3NmNlNDEzYzc3YWJmYzBlOTQ2ODcxZDU0ODEzNDVjMmU5N2I0YmZkZDEyYWMwM2RmNjA2ZmM1NmJkYjk5YWM3YjcxYTY5YjViOTE2MDM3M2JiZWMzZTlkZGU0NzcxODBhZjQ1NGU3YWNjNmJjNThkYzBhZmI0MjgxYzBkZTQzNTRjMWJmNTk5MDU0ZTM4MDBjNmQ2MGQ4OTI4NTg4NjViNTM2MWY1MGJmY2E5YiIKIAogSE1BQ19EUkJHIE5JU1QgQ0FWUyAxNC4zIFBSIEZhbHNlIChTSEEtMjU2LCAyNTYsIDI1NikgIzAKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBobWFjX2RyYmdfbm9wcjpNQkVEVExTX01EX1NIQTI1NjoiY2RiMGQ5MTE3Y2M2ZGJjOWVmOWRjYjA2YTk3NTc5ODQxZDcyZGMxOGIyZDQ2YTFjYjYxZTMxNDAxMmJkZjQxNmQwYzBkMDFkMTU2MDE2ZDBlYjZiN2U5YzdjM2M4ZGE4OGVjNmY3ZDVhOGUyZTg4ZjQzOTg2ZjcwYjg2ZTA1MGQwN2M4NGI5MzFiY2YxOGU2MDFjNWEzZWVlMzA2NGM4MiI6IjZmMGZiOWVhYjNmOWVhN2FiMGE3MTliZmE4NzliZjBhYWVkNjgzMzA3ZmRhMGM2ZDczY2UwMThiNmUzNGZhYWEiOiIxYWI0Y2E5MDE0ZmE5OGE1NTkzODMxNmRlOGJhNWE2OGM2MjliMDc0MWJkZDA1OGM0ZDcwYzkxY2RhNTA5OWIzIjoiMTZlMmQwNzIxYjU4ZDgzOWExMjI4NTJhYmQzYmYyYzk0MmEzMWM4NGQ4MmZjYTc0MjExODcxODgwZDcxNjJmZiI6IjUzNjg2ZjA0MmE3YjA4N2Q1ZDJlY2EwZDJhOTZkZTEzMWYyNzVlZDcxNTExODlmN2NhNTJkZWFhNzhiNzlmYjIiOiJkZGEwNGEyY2E3YjgxNDdhZjE1NDhmNWQwODY1OTFjYTRmZDk1MWEzNDVjZTUyYjNjZDQ5ZDQ3ZTg0YWEzMWExODNlMzFmYmM0MmExZmYxZDk1YWZlYzcxNDNjODAwOGM5N2JjMmE5YzA5MWRmMGE3NjM4NDgzOTFmNjhjYjRhMzY2YWQ4OTg1N2FjNzI1YTUzYjMwM2RkZWE3NjdiZThkYzVmNjA1YjFiOTVmNmQyNGM5ZjA2YmU2NWE5NzNhMDg5MzIwYjNjYzQyNTY5ZGNmZDRiOTJiNjJhOTkzNzg1YjAzMDFiM2ZjNDUyNDQ1NjU2ZmNlMjI2NjQ4MjdiODhmIgogCiBITUFDX0RSQkcgTklTVCBDQVZTIDE0LjMgUFIgRmFsc2UgKFNIQS0yNTYsIDI1NiwgMjU2KSAjMQotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIGhtYWNfZHJiZ19ub3ByOk1CRURUTFNfTURfU0hBMjU2OiIzZTQyMzQ4YmY3NmMwNTU5Y2NlOWE0NDcwNDMwOGM4NWQ5YzIwNWI2NzZhZjBhYzZiYTM3N2E1ZGExMmQzMjQ0OWFmNzgzOTczYzYzMmE0OTBmMDNkYmI0YjQ4NTJiMWU0NTcxOGFjNTY3ZmQyNjYwYjkxYzhmNWYxZjhmMTg2YzU4YzYyODRiNjk2OGVhZGM5ODEwYjdiZWVjYTE0OGExIjoiMmU1MWM3YThhYzcwYWRjMzdmYzdlNDBkNTlhOGU1YmY4ZGZkOGY3YjAyN2M3N2U2ZWM2NDhiZDBjNDFhNzhkZSI6IjYzYTEwNzI0NmEyMDcwNzM5YWE0YmVkNjc0NjQzOWQ4YzJjZTY3OGE1NGZjODg3YzVhYmEyOWM1MDJkYTdiYTkiOiJlNDU3NjI5MWIxY2RlNTFjNTA0NGZkYzUzNzU2MjRjZWJmNjMzMzNjNThjNzQ1N2NhNzQ5MGRhMDM3YTk1NTZlIjoiYjVhM2ZiZDU3Nzg0YjE1ZmQ4NzVlMGIwYzVlNTllYzVmMDg5ODI5ZmFjNTE2MjBhYTk5OGZmZjAwMzUzNGQ2ZiI6ImM2MjRkMjYwODdmZmI4ZjM5ODM2YzA2N2JhMzcyMTdmMTk3N2M0NzE3MmQ1ZGNiN2Q0MDE5M2ExY2ZlMjAxNThiNzc0NTU4Y2JlZThlYjZmOWM2MmQ2MjllMWJjZjcwYTE0MzllNDZjNTcwOWJhNGM5NGEwMDZiYTk0OTk0Nzk2ZTEwNjYwZDZjYjFlMTUwYTI0M2Y3YmE1ZDM1Yzg1NzJmZDk2ZjQzYzA4NDkwMTMxNzk3ZTg2ZDNlZDg0NjdiNjkyZjkyZjY2ODYzMWIxZDMyODYyYzNkYzQzYmZiYTY4NmZlNzJmZGQ5NDdkYjI3OTI0NjNlOTIwNTIyZWI0YmMiCiAKIEhNQUNfRFJCRyBOSVNUIENBVlMgMTQuMyBQUiBGYWxzZSAoU0hBLTI1NiwgMjU2LCAyNTYpICMyCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NgogaG1hY19kcmJnX25vcHI6TUJFRFRMU19NRF9TSEEyNTY6ImI2M2ZkZDgzYzY3NDY5OWJhNDczZmFhYjljMzU4NDM0NzcxYzVmYTAzNDhjYTBmYWY3ZWJkN2NmNTg5MTgyNmI1ZmQyMDRlMjU5OGQ5NjI2ZWRhYjQxNThhOGNmZDk1ZmFkZWE1YmE5MmY4MDEwYmIxYTZhNGI2ZmFlMmNhYTBiMzg0MTY1YWRmNzIxMjUzYWZkNjM1ZDYwMjFmNzY0YWYiOiIyYTVkZmFkODQ5NDMwNmQ5ZDQ2NDhhODA1YzQ2MDIyMTZhNzQ2YWUzNDkzNDkyNjkzYTUwYTg2ZDFiYTA1YzY0IjoiMDdjNjlkOGQyYjhhYTE0NTRjNWM0ODA4M2RkNDE0NzdmZGE2YmZjZjAzODU2MzgzNzk5MzNhNjBlZDJlMGE3NyI6ImExNGU5MDIyNDdhM2Q2NDkzZDNmYmM4NTE5NTE4YjcxYTY2MGU1NTAyY2Y3ZWNmYzc5NmNmYWE1YjRlZTRiYWEiOiI2MGU2OTBlNGExZWJhMTRhZWM1MTg3MTEyYTM4M2U5OTkxMzQ3ZmFiN2JhYzdjYjJhNDBhNTI1NzlhMGQyNzE4IjoiNzkyYjQ3YjZlZDIyMTYyM2JiMTg3ZDYzZTNmMDM5YzY5ODNkOTRlZmQ1NzcxZGM5YjRjNDBiZWU2NTkyNDUxMzQ4NWE2MzMyYmFlZGE2YTk2ZjliYjQzMWY1OTJkNzM0NjJiNjFkOWQ5MTRhNzJiNTZmYTlkODc1OTc0MjZmYjI0NjQyNGViY2Q3YWJkNTFiMmVlZmVjOGY1YjgzOWMwYjNjMzQwMTUzNDJhY2UyOTZiNWYyMjE4ZmExOTRiNTBhZWExYzg5NjYzNDYwMjkyYzkyYzQ1ZjExMmRkYmY2Yjk0MDZmNmU3Y2NlZTljNDdlZDJkOTBhMjdiZTVkZDczZSIKIAogSE1BQ19EUkJHIE5JU1QgQ0FWUyAxNC4zIFBSIEZhbHNlIChTSEEtMjU2LCAyNTYsIDI1NikgIzMKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBobWFjX2RyYmdfbm9wcjpNQkVEVExTX01EX1NIQTI1NjoiZGFiODVmOThlYWYwY2ZiYTAxM2I5N2RlNGQ5YzI2NGNhNmZlMTIwMzY2Y2I4M2U4YjMxMTNjNjhiMzRlMzlkNWQwNTEwOGUxMDI4YWU2N2I0ZWE2M2JkYzZkNzVlYjg4MTc5NDg4NWE2NDQ3MDc0NDE5OGI3ZDBiYzI0NDcyZmZlOGRhZjNjN2ViMjE5ZGY2ZGRmMTgwZTQ4NGZlMGFhNSI6IjA5ZmVkMzgyMmY2ZjVlNWI5ZTU3NWQzMWRjMjE1ZGUxNjA3YjBkZmM5Mjc0MTI2MThjMmQ4Zjc5MTY2ZGJhYmEiOiI4ZDc0ZDAxYjU4MmY3MGI5MmY1M2I0MzQ2ODA4NGUxNTg2ZDliMzY0NjVkMzMzZDVmYWFmNjkxMWU2MmZlNDBlIjoiZWY3ZjZiNmViNDc5YWIwNWIzZjlhYjZkZDcyZWFjOGIxZTg2ZDg4N2YxYmNhZTM2M2NhZTM4NmQwMjc1YTA2ZiI6Ijc0NDJiMmE3OTJhNmEyOTU1OWJiOGE1MTVkNTY5MTZlZTE4MjAwNTgwYWEwMmUxMjM3ZGQzNTg2MTkzODJkOGYiOiI0OWQyY2JmYTA4OTdiN2Q5NjFjMjkzYzFlNTcyZmIyNmYyOGU3Yjk1NmU3NDZmNmVkYTkwNDU0YzEzNzBhMjllMjUzMDNjZWFkYzc4Mzc1MTRkYzYzODU1M2I0ODdlZjk0ODdjOTc3YzEwNjI1NDA5MTc4YWQ2NTA2ZDEwM2M0ODdhNjY2NTVkMDg2NTlkOTJhNGQ1OTk0ZDFjOGRkYjI4ZmU2MGYyZTQ5NTc3ZDZlODBjYWUxNDc4MDY4Yzk4MjY4ZjQ1ZTYyOTNjOTMyNmM3ZjcyNmVjODk2MDEzNTFjMGEyNmZkM2E2NTQ5ZjhhNDFjNmY1ODY5MmM4NjU5NGMwIgogCiBITUFDX0RSQkcgTklTVCBDQVZTIDE0LjMgUFIgRmFsc2UgKFNIQS0yNTYsIDI1NiwgMjU2KSAjNAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIGhtYWNfZHJiZ19ub3ByOk1CRURUTFNfTURfU0hBMjU2OiIwZjBhYTg0ZWYxMmUxMGFlMmIyNzllNzk5YzY4MzQ0MTg2MjQ1N2I5YmMyNTU4MWMyY2QzZDViNThhNWIzMjQ2Zjc0ZjQyMzBjMjQyN2E1MmYwMWYzOWU4MjVkMjUwYWM1MjIyYjI2ZTc5ZjdjM2I3MDY2ZDU4MTE4NWIxYTFmNjM3Njc5NmYzZDY3ZjU5ZDAyNWRkMmE3YjE4ODZkMjU4IjoiZDAyYjJmNTNkYTQ4YjkyM2MyOTIxZTBmNzViZDdlNjEzOWQ3MDMwYWVhZDVhZWViZTQ2YzIwYjljYTQ3YTM4YSI6ImQxMTUxMjQ1N2JmM2I5MmQxYjFjMDkyMzk4OTkxMWY1OGY3NGUxMzZiMTQzNmYwMGJhZDQ0MGRkMWQ2ZjEyMDkiOiI1NGQ5ZWE3ZDQwYjcyNTVlZjNkMGFiMTZlYTlmZGYyOWI5YTI4MTkyMDk2MmI1YzcyZDk3YjBlMzcxYjlkODE2IjoiNjAxY2VmMjYxZGE4ODY0ZjFlMzAxOTZjODI3MTQzZTRjMzYzZDNmYTg2NWI4MDhlOTQ1MGIxM2UyNTFkNDdmYSI6ImU5ODQ3Y2VmZWEzYjg4MDYyZWE2M2Y5MmRjOWU5Njc2N2NlOTIwMmE2ZTA0OWM5OGRjMWRjYmM2ZDcwNzY4N2JkMGU5OGVkMmNjMjE1NzgwYzQ1NDkzNjI5MmU0NGE3YzY4NTZkNjY0NTgxMjIwYjhjOGNhMWQ0MTNhMmI4MTEyMDM4MGJmZDBkYTVmZjJiZjczN2I2MDI3Mjc3MDk1MjM3NDVjMmNlZDhkYWVmNmY0N2QxZTkzZWY5YmMxNDFhMTM1Njc0Y2JhMjMwNDVlMWY5OWFhNzhmOGNlYWQxMmVlZmZmZjIwZGUyMDA4ODc4YjFmODA2YTI2NTJkYjU2NWEiCiAKIEhNQUNfRFJCRyBOSVNUIENBVlMgMTQuMyBQUiBGYWxzZSAoU0hBLTI1NiwgMjU2LCAyNTYpICM1Ci1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NgogaG1hY19kcmJnX25vcHI6TUJFRFRMU19NRF9TSEEyNTY6IjZhODY4Y2UzOWEzYWRjZDE4OWJkNzA0MzQ4YmE3MzI5MzY2MjhmMDgzZGU4MjA4NjQwZGJkNDI3MzE0NDdkNGVlZmRkZTRlMjJiMzc2ZTVlNzM4NWU3OTAyNDM1MDY5OTAxNzRmN2Y0NTZhYzA2YzFkNzg5ZmFjYzA3MTcwMWY4YjYwZTlhY2NlYmNlZDczYTYzNGE2YWQwZTFhNjk3ZDQiOiJmNzI4NWNkNTY0N2ZmMGUyYzcxYTliNTRiNTdmMDQzOTI2NDFhNGJkZTRhNDAyNGZhMTFjODU5ZmVjYWFkNzEzIjoiNTQ2M2JiMjI0MWQxMGM5NzBiNjhjM2FiYzM1NmMwZmU1ZWY4NzQzOWZjNjQ1N2M1ZWU5NGJlMGEzZmI4OTgzNCI6IjNhYjYyY2RiYzYzOGMxYjJiNTA1MzNkMjhmMzFiMTc1OGMzYjg0MzVmZTI0YmI2ZDQ3NDAwMDVhNzNlNTRjZTYiOiIyZGJmNGM5MTIzZTk3MTc3OTY5MTM5ZjVkMDY0NjZjMjcyZjYwZDA2N2ZlZmFkZjMyNmNjYzQ3OTcxMTE1NDY5IjoiOGFmY2U0OWRjY2M0ZmY2NGM2NWE4M2Q4YzA2MzhiZDhlM2I3YzEzYzUyYzNjNTlkMTEwYTgxOTg3NTNlOTZkYTUxMmM3ZTAzYWVlZDMwOTE4NzA2ZjNhZDNiODE5ZTY1NzFjZmE4NzM2OWMxNzlmYjljOWJiYzg4MTEwYmFhNDkwMDMyYTlkNDFmOTkzMTQzNGU4MGM0MGFlMDA1MTQwMGI3NDk4ODEwZDc2OWZiNDJkZGRiYzdhYTE5YmRmNzk2MDMxNzJlZmU5YzBmNWQxYTY1MzcyYjQ2M2EzMTE3OGNiYWU1ODFmYTI4N2YzOWM0ZmJmODQzNDA1MWI3NDE5ZiIKIAogSE1BQ19EUkJHIE5JU1QgQ0FWUyAxNC4zIFBSIEZhbHNlIChTSEEtMjU2LCAyNTYsIDI1NikgIzYKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBobWFjX2RyYmdfbm9wcjpNQkVEVExTX01EX1NIQTI1NjoiYmI2YjMzOWVhZTI2MDcyNDg3MDg0ZWM5ZTRiNTNmMmYxZDQyNjdkMjA1MDQyZTc0Yzc3ZmI5Y2EwNTkxYmE1MGMwZTdiZjZlYjA3ZmVjY2JjNDk0YWY0MDk4ZTU5ZDMwZjQ3ZmM2MGFmYmViODA3MjM2Zjc5NzRkODM3MzM1YmMwYjIyMjg4ZWYwOWRkZmNiNjg0ZTE2YjRjMzZhMDUwYiI6IjM0YWVlYzdlZDBjYWU4MzcwMWI2NDc3NzA5Yzg2NTRhMTExNDIxMjQwMWRjOTFjYmU3ZGUzOWQ3MWYwYzA2ZTEiOiJlODA3MWNjZDg0YWM0NTI3ZTVjNmU4NWIwNzA5ZWQ4Njc3NzZmMjVhZTBlMDQxODBkY2I3MTA1ZWNkM2UzNDkwIjoiZmJhYzQ1YjU5NTIyMDBhZDdjNDIzMjUwMGYyNDE3YTFjMTQ3MjNiZGQxY2MwNzg4MjFiYzJmZTEzOGI4NjU5NyI6ImM0MjkyZDdkYmVmM2JhN2MxOGJmNDZiY2YyNjc3NmFkZDIyYWI4ZWUyMDZkNmM3MjI2NjVkZWM2NTc2YjFiYzAiOiIyMjhhYTJhMzE0ZmNiZmU2MzA4OWNlOTUzYWM0NTcwOTNkZWFhMzlkZDljZTJhNGVjZTU2YTYwMjhhNDc2YTk4MTI5YmU1MTZkNjk3OWVmZjU1ODdjMDMyY2RmNDczOWQ3YWM3MTI5NzBmNjAwZmE3ODFhOGU1NDJlMzk5NjYxMTgzZTM0ZTRiOTBjNTllYzVkYzVjYWQ4NmY5MTA4MzUyOWQ0MWM3N2I4ZjM2YzVhOGUyOGJhMWE1NDgyMjNhMDJlYWVkODQyNmY2ZmU5ZjM0OWViZWMxMWJjNzQzZTc2NzQ4MmUzNDcyZWMyNzk5YzFmNTMwZWJkYzZjMDNiYzRiIgogCiBITUFDX0RSQkcgTklTVCBDQVZTIDE0LjMgUFIgRmFsc2UgKFNIQS0yNTYsIDI1NiwgMjU2KSAjNwotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIGhtYWNfZHJiZ19ub3ByOk1CRURUTFNfTURfU0hBMjU2OiJiZTY1OGU1NmY4MDQzNjAzOWUyYTljMGE2Mjk1MmRkN2Q3MDg0MjI0NGI1YWIxMGYzYjhhODdkMzYxMDRlNjI5MzNjOTYyNzQ1NWRmZGU5MTg2NWFlZTkzZTUwNzExNDdiZWYyNGRjOWE1YWEyMzAwM2QzODI1ZjliMmIwMGU3ZGFiNTcxZWE2YWQ4NjQxNWRiZDMwYzBiYmRjZTdiOTcyIjoiZDNhNmViMjliMTgwYjc5MTk4NGRlYjA1NmQ3MmMwNjA4YTJjOTA0NDIzN2FlY2YxMDBjY2IwMzcwMDA2NGM1ZSI6IjA0N2MyOWU0ZDE1ODRmYTcwY2I2NmUyYWExNDhhMmFhMjk4MzdjNWVlZTY0ZGNhYzYwZmRiYTM1NmNkZjkwYmIiOiI0MWM0NzkyMTYxYjFiMDBkNDEwY2I3OWNkNTZiZDMxMWE3MTRmYjc4ZGMzNDcxYzI1YmRkNzQ3OWYyZTlhOTUyIjoiY2Q0OTM2ZDdiYzNlYTBlNzIwMWJjYmVmYmM5MDgyMTVhOTc2ODBjYTZjZTg2NzIzNjBhZWE2MDBiNjU2NDMwOCI6IjJjMjU1NTdmNmRiMDdkYjA1N2Y1NmFkNWI2ZGMwNDI3ZDFhMGU4MjVjNDhjMTlhNTI2ZjlhNjUwODdjNmQxZWFkN2M3ODM2M2E2MTYxNmM4NGYxMDIyNjUzYWY2NTE3M2EzZjllYzMyNzVmMmIwYTBkMGJjNzUwMTk0NjczYzBlYWE2YzYyM2NkODhhYmIwYzg5NzliYWVlNGNkODViZmNlMmU0YTIwYmZlYmYyYzNiZTYxNjc2NTYzNzY3ZGZlMjI5ZTBiN2JlNjdhZDZmY2QxMTZkZDBiNDYwNzA4YjFiMGU1YzNkNjBmM2RkODEzODAzMDQwNGQxOTczNzVkNzUiCiAKIEhNQUNfRFJCRyBOSVNUIENBVlMgMTQuMyBQUiBGYWxzZSAoU0hBLTI1NiwgMjU2LCAyNTYpICM4Ci1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NgogaG1hY19kcmJnX25vcHI6TUJFRFRMU19NRF9TSEEyNTY6ImFlNTM3ZjMxYTI4Y2ExNDUwMGU3NTk3MTZiYzIwNzk4M2JmZWFiNjBiMjUwNzlmYTMwYjc3YjhkNDEyNDRjYjlmY2E5ZTI3ZDhhYjg0Y2Y5YjljZTQ5MWVjNWQ4Y2I2NzFlYjUyNzc3YmU0ODBmMDUxMTVhZTYzNzBmMzAxNTlhOTRkNTBmZmNjNjQ0NTQ2NzhhYjFkMWFjNmYxNjZmYTciOiI4YzljYjJiMTlhYTNhYmU4M2M4ZmU3ZGE5NmU5YzExNjQ4MjUyNjUzYTI5ZGNkNWJmMGFjMzM0YWM1ODdmMDMyIjoiOWNkZjZmMWEyYmMwN2FjZDRiMGY0M2I1ZjJiODkyYTExNTNlMjY2OWYyMzdkMjU3OTIzNjM2MDk0ZmI0MGI1NCI6IjY5MmQ1MTI3MjJkZTZiYTcyMGZkMjNjODk5NGFjNjMxNzliNWY3ZTYxMWFkZGY5Y2ZhY2Q2MGUwNmUxNDRhNmEiOiJiYmVlYTdiMmJlYTgyMWYzMzlmNDk0OTQ3YzBiNGJhZTgwNTYxMTlkYjY5YTNjYmVmMjE5MTQ5NTM3MjljZGVmIjoiYzBjNGZiNzA4MGMwZmJlNDI1YzFiNzU2ZmIzYTA5MGNiMGQwOGM3MDI3ZDFiYjgyZWQzYjA3NjEzZTJhNzU3ZjgzYTc4ZDQyZjlkODY1Mzk1NGI0ODlmODAwYTVlMDU4ZWJjNGY1YTE3NDc1MjY1NDFkODQ0OGNiNzJlMjIzMmRiMjA1NjlkYzk2MzQyYzM2NjcyYzRiZTYyNWIzNjNiNDU4N2Y0NDU1N2U1OGNlZGI0NTk3Y2I1N2QwMDZmZGEyN2UwMjc4MThhZTg5ZTE1YjRjNjM4MmI5ZTdhNDQ1MzI5MGVhNDMxNjNiNGY5Y2FlMzhiMTAyM2RlNmE0N2Y3YiIKIAogSE1BQ19EUkJHIE5JU1QgQ0FWUyAxNC4zIFBSIEZhbHNlIChTSEEtMjU2LCAyNTYsIDI1NikgIzkKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBobWFjX2RyYmdfbm9wcjpNQkVEVExTX01EX1NIQTI1NjoiMmY4OTk0Yzk0OWUwODg2MmRiMDIwNDAwOGY1NWQzNTYxZjNlMDM2MmRmMTNiOWQ5YTcwZmRhMzk5MzhmMmQzMzFiZjNlOTRlYTg1ODE2MGI4MzJmZTg1ZDMwMTI1NmY1NWVjZGIxZThmZTEyMjYwYjliZmUxMmQ2ZTZmMTYxNDc0ZmEyMzExZTEyZTM5YjBiZWIwZmNkOTJhNjczN2I3MyI6ImI0NjY3MWNmN2ZhMTQyZTcwMTJlZDI2MWUxZmU4NjcxNDcxMWMyNDZjN2QxYzAzMzBmYTY5MjE0MWU4NmQ1ZDEiOiIzY2U5YTI5ZjAyMDdkMDc5ZTZkYzgxZmI4MzAzNTZlNTU1Zjk2YTIzZWE3MTQyNDk3MmVhOTMwODk2NTc4NmQzIjoiZGI5NTAwMDBjMDc3NmNjMGUwNDk5MjljZTAyMTAyMGFkYzQyZDI5Y2Q5YjVkOGY3MTE3ZmJlNmJkZTNlNTk0ZiI6ImZjMThlZTZkZDNkYWMyMzA2Nzc0ZjBhYzM2Y2Q3ODllMzM0NjJkNzJhOGM3NWRmOTA1NzEyM2RiMzNlNWY3YmMiOiI4NTQ2MzYyY2M4YWY5Yjc4ZGQ2ZThlYjJjMzdkYjk2ZTcwNzA4ODUyYmZkOTM4MGFiZWRjN2YzMjQ1NzVhMTY3YmVhMThmNjMyZjNlMTlkMDk5Y2ZiZjMxMDc3M2Y5NzE5ZWVjMDM2ZDJlMDlmMzkzYTAyM2FkZDhlYmRjNGZiODdhZjQzYjJmZTZjN2VhYTRkMzlmODAyMmNlMjQ3YWE0NWZkYzg0ZDFiOTJjYWNjZTZlYWU4MjUyYTAzZWMyZWM1MzMwYzAxZjU2ZDExM2ZkMmVjM2QwMjQwYWYwYWZjZjEzZGRkZTIwNWJiNWU3YzJkOTEyZGNiNGFlZTVkY2YzIgogCiBITUFDX0RSQkcgTklTVCBDQVZTIDE0LjMgUFIgRmFsc2UgKFNIQS0yNTYsIDI1NiwgMjU2KSAjMTAKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBobWFjX2RyYmdfbm9wcjpNQkVEVExTX01EX1NIQTI1NjoiMGM4NWUzMTQ4N2RlMWQ3YmE0YTdiOTk4YWM1NmRjNDJjNmRjMGVhZTdiZjVjOGFhZjFlNGU3ODg3NWY1ZmI0N2RlODc4ZjcyOGY3M2Y4M2RjMmEyZjU1MGI5NmM4Yjk3MmQ1Y2E4YWYxYTcwY2ZkY2NkMDE1ZWUzYmYwNjY1ZGQxOTQxZmM2YTczMTdiOWQwZDA2NjU4ZjU3NDRjZmJkOSI6IjlhYWMzN2JjZTFhNmE4MWRjNzkzNGUyMzc0Nzk5MWUzY2Y0OGM1NWZmZTVhNTc3ODFjNDE3NjhhMzUyMjBhMDEiOiJkYjg4MWU2ZDBkYzNiNjI3OTNkN2RhNWZlNWExOGUzM2JlOWI5M2Y0YTYzYTAwYTg3OGRmYmVjZjBkMzgzYmQyIjoiZjc0M2NlMWI3MmYzZGU0YzkwMTM2OWVlZDU4MWM2MjZlZDMwODFjYTcwN2U2NjM0ZmRhZmY0NjcyMWNlMDg3OCI6ImNkNTJkYTNlYzhhODM5YzUzN2RhY2RlYTg1MDZhM2VlZWU4NzlkZTM4OGZmNWU1MTMzMjJkNmQxYmIzZmY2OTQiOiJhNWJkZDU3Y2I4ZmRlNjI5OGU3YzVlNTYzYWZjY2E2MGRkNDcyZWNhNDg0YmQ4YzNjYzE3ZjMzMDdiZTA5YjYwMTc0NGRkM2FiOWU4YTQ0MTA3YzU4Njg4MjQ1NzVmODUwYzBmMzk5YjI4MGNmMTk4MDA2ZjgzZWRlOGMwYjUzN2U5YmUyMjdmYTE0MGI2NTk5NWFkOWRmYTFmMjMwM2Q1NjBjM2I3ZjU5YmVkZDkzYzEyODJlYTI2MzkyNDQ2OTQxMWMyNjUzZjg3ZmQ4MTRjNzRjYjkxYzE0ODQzMDQ4MWQ2NGJhZDBmZWMzY2JiM2RkMWYzOWFhNTVjMzZmODFiIgogCiBITUFDX0RSQkcgTklTVCBDQVZTIDE0LjMgUFIgRmFsc2UgKFNIQS0yNTYsIDI1NiwgMjU2KSAjMTEKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBobWFjX2RyYmdfbm9wcjpNQkVEVExTX01EX1NIQTI1NjoiOTMxNjFiMmRjMDhjYjBmZDUwMTcxMTQxYzg2NWE4NDFjYTkzNWNmZGQyYjU5MDdkNmZmOGFiMDM0OGM0Y2ViMDVjYjlmNmU1OTEyYjkwYzMzNDlhNTBhYjg4MWIzNWExZDhlOWJlNDRiNWYyOTM0ODI1NDhkNDc4Nzc2MmViZmIwM2M3M2M0MGU0NTM4NWU4Yjk4OTA3Y2Q2NmY0OTNkZCI6IjBkY2ViNGEzNjMyNmM0ZGYxNjg1ZGY0M2ZkZGVlY2I1ZDBjNzZmMDBlYjQ0ODI2Njk0ZjI3ZTYxMDI5MGY2ZTEiOiIxMDVhOGY4NWQ2OTU5ZjNlMDQzZWY1MDhjZmVhMjFkNTIxMjNmMDNiN2FlYTgwMzRjNGVlYzc2MWVhYmExZmVlIjoiYmY3ODFmN2U0ODlkOWI0YjVhYTVlZTZkMTc5NjQ2OGFmNjcyYThkMjVmMzExZWRmM2M0YjRkYmY0MzNkNzAzZiI6ImM4MWQ2YmNmMWU1YmYzN2UzOWRkYTE3MzVjNmYxOTNkZjExNWIxYTg1NGExMmU3Y2FmZTA2MGFmZTQ1ODkzMzUiOiI0MzA2NjI4MTI0ZDAxMDBmYWRlN2VhYWY1ZWRmMjI3ZDUwNzcxZjllNWYyZTFlOTgzODAwZWVmOWEzOWZkZTBiMGMyODBlNjNjODcyOGQ4MzZiNWI5M2VhNzk0YTMyYzFjMDRjZmM1NGJkNTMwMGUzZmViYjVmZTJlMTAyM2VkZWQ4ZDdjZDE4MDI3OWE1OThmNzY4MjNlOGQ1YTdkZmZjYzkzYTA5ZGVlYzVkMWY4MDgzOGU5MzhmYmE0ZGU5ZjQ3ZTk0Yjk5MzgyYWU1NWYxMTZkZjljM2IzZGRmN2U1MDUxNmUyMDM2NDU4NTJhNDE1Nzk2ZjAzYTg2NDE4MTA3IgogCiBITUFDX0RSQkcgTklTVCBDQVZTIDE0LjMgUFIgRmFsc2UgKFNIQS0yNTYsIDI1NiwgMjU2KSAjMTIKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBobWFjX2RyYmdfbm9wcjpNQkVEVExTX01EX1NIQTI1NjoiMWFlMTJhNWU0ZTlhNGE1YmZhNzlkYTMwYTllNmM2MmZmYzYzOTU3MmVmMTI1NDE5NGQxMjlhMTZlYjUzYzcxNjUzOTliMzQ4MWZkZjI0ZDM3MzIyMjI2Nzc5MGEwZmVjNjgxNTU0ZmY3MDI2NTgxMjJlOTFiYTAxNzQ1MGNmZGZjOGUzZjQ5MTExNTNmN2JjYzQyODQwM2U5YzdiOWQ2OCI6IjgyODBjZmRjZDdhNTc1ODE2ZTAxOTllMTE1ZGEwZWE3N2NhZTlkMzBiNDljODkxYTZjMjI1ZTkwMzdiYTY3ZTIiOiIyMjY3MzJiN2E0NTdjZjBhYzBlZjA5ZmQ0ZjgxMjk2NTczYjQ5YTY4ZGU1ZTdhYzMwNzBlMTQ4Yzk1ZThlMzIzIjoiNDU5NDJiNWU5YTFhMTI4ZTg1ZTEyYzM0NTk2Mzc0ZGRjODVmZDc1MDJlNTYzM2M3MzkwZmM2ZTZmMWU1ZWY1NiI6IjZmYzU5OTI5YjQxZTc3MDcyODg2YWZmNDVmNzM3YjQ0OWIxMDVlZDdlYWNiZDc0YzdjYmZlZGY1MzNkYmVhYTEiOiJiNzU0NzMzMmUxNTA5NjYzZmNmZWEyMTI4ZjdmM2EzZGY0ODRjZDhkZjAzNGIwMDE5OTE1N2QzNWQ2MWUzNWYxYTlkNDgxYzdkMmU4MTMwNTYxNmQ3MGZjMzcxZWU0NTliMGIyMjY3ZDYyN2U5Mjg1OTBlZGNhYzMyMzE4OThiMjRlZjM3OGFhOWMzZDM4MTYxOWY2NjUzNzliZTc2YzdjMWJkNTM1NTA1YzU2M2RiMzcyNWYwMzQ3ODZlMzViZGQ5MDQyOTMwNWZkNzFkN2JmNjgwZThjZGQ2ZDRjMzQ4ZDk3MDc4ZjVjZjVlODlkZWUyZGM0MTBmYWQ0ZjJhMzBmIgogCiBITUFDX0RSQkcgTklTVCBDQVZTIDE0LjMgUFIgRmFsc2UgKFNIQS0yNTYsIDI1NiwgMjU2KSAjMTMKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBobWFjX2RyYmdfbm9wcjpNQkVEVExTX01EX1NIQTI1NjoiMjllMjBkNzI0ZGZhNDU5OTYwZGYyMWM2ZWM3NmIxZTZjYWJkMjNhOWU5NDU2ZDZjNTkxZDdlNDUyOWRhMGVmODk1ZGYxZjgzN2ViYTQ3YTE2ODdhYTVjNGRkY2Y4YWFmMmEyYTMxMjYyNmNhM2UyMDAzNGZjNGYyODAzM2M3ZDU3M2Y2NmVmNjFhYjJlYTBjN2JmMDQxMWE5ZDI0NzI2NCI6IjM3MTNiNjAxZTE2NGIxYTUxZGRhMWNhOTI0MmZmNDc3NTE0NjQ4ZTkwZDMxMWEwNmUxMGNlNWFhMTVkYTVkN2YiOiJlYzY4YmUzM2FjOGZmM2RkMTI3ZTA1MTYwNDg5OGMwZjlhNTAxMjcxODU5Mzc2NjUzYTA1MTYzMzYxODA5OTNkIjoiOTkzNTQ5OTY2MWQ2OTlhMDBjNjIyYTg3NTQ0MWI0ZGY1MjA0OTU4ZmU5NTg5MmM4Y2U2N2Y3ZGZiMmJlM2U0YSI6IjI1NmE0YmE5ZThmNDM5ZDU0ODdmYTVlYjQ1ZWZjZjFiYzExMjA0OTE3MjRkYjNhYmUzMjhkOTUxZjI3MzlmYzkiOiI3MzExNGNiMzYyNGQ2ODdkNGNkNDlhNmU3NjlkZmM3YTNmODkwMWRjNDFmNmFkMWRmNGNlNDgwNTM2ZmE4MmU1MmFlOTU4ZDA1Mjg2NDBkOTJiOGJiOTgxYjc1NTA1OGUzMmM0NzMzNjgyZTVjNGMwZGY0MWYzNTA1YTE2NDNhMGRkNDljZmRlYWY3YTE4YWRmZmNhODgyNTZjNmQyY2NlYjgzOGFmNmM5MmE2NGJjMjFjYjdhNzYwYTAzOTEyOTFiZmUzNTc1ZTAxNGZjMTU2MzIzZjhlYjVlODY1MThjNjY5ZGFkOGQyOWFkNWZkNGVmNmUyOTZmNGEwNzY0YzI2IgogCiBITUFDX0RSQkcgTklTVCBDQVZTIDE0LjMgUFIgRmFsc2UgKFNIQS0yNTYsIDI1NiwgMjU2KSAjMTQKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBobWFjX2RyYmdfbm9wcjpNQkVEVExTX01EX1NIQTI1NjoiMTM1M2YzNTQzZWIxMTM0OTgwZTA2MWZjNDM4MjM5NDk3NWRiYzc0ZjFmMWVhNWVjYzAyNzgwYTgxM2FjNWVlNmNmNTg0ZGIyNDQ3YWZiZTJjOGZhMGMxNTU3NWVlMzkxYmE2MDIxOTMzMmE2N2I5NWQ5MGVjOWRlNmI4NDUzZDRjOGFmOTkxYWU5Mjc3NDYxZmYzYWYxYjkyZmM5ODVkMyI6IjM0NWIwY2MwMTZmMjc2NWE4YzMzZmMyNGYxZGNmYTE4MmNiZTI5ZDdlYWNiY2RjOWJjZGE5ODg1MjE0NThmYzIiOiI2OTY0YjliOTg0MmFlYzljN2VjMmFhZDkyNmQ3MDFmMzBlZWM3NmZlNjk5MjY1YWUyYTc3NjVkNzE2OTU4MDY5IjoiNmEwM2MyOGE5MzY1YzU1OGMzM2QzZmRjN2U1ZWJmMGI0ZDMyY2FhYzcwZGY3MTQwM2ZkNzBjZWQwOTc1NzUyOCI6ImE1ODU0NmM3MmEwYjRkNDdjOWJkNmMxOWU3Y2Y0YWI3M2IyZDdiYTM2YzZjNmRjMDg2MDZmNjA4Nzk1ZWJkMjkiOiI1YjAyOWVmNjhiNjc5OTg2OGIwNGRjMjhkYmVhMjZiYzJmYTlmY2M4YzJiMjc5NWFhZmVlZDAxMjdiNzI5N2ZhMTlhNGVmMmJhNjBjNDJmZjgyNTlkNWE3NTlmOTJiZDkwZmRmYjI3MTQ1ZTgyZDc5OGJiM2FiN2ZkNjBiZmFlZmI3YWVmYjExNmNhMmE0ZmE4YjAxZDk2YTAzYzQ3YzhkOTg3ZmRkMzNjNDYwZTU2MGIxMzg4OTEyNzgzMTNiYjYxOWQwYzNjNmY5ZDdjNWEzN2U4OGZjZTgzZTk0OTQzNzA1YzZmZjY4ZTAwNDg0ZTc0YWQ0MDk3YjBjOWU1ZjEwIgogCiBITUFDX0RSQkcgTklTVCBDQVZTIDE0LjMgUFIgRmFsc2UgKFNIQS0zODQsIDAsIDApICMwCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTM4NAorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzM4NAogaG1hY19kcmJnX25vcHI6TUJFRFRMU19NRF9TSEEzODQ6IjA5NjM0OTUwNmYzYTc2NTNkNTRkYjdlYzFkMDllOTM0MTNlZGQxNzViNmRkYmViMDBlNTY3NTJhNTIwYWM4ZmZmYzc5ODNiOTE4YWNhZGFhNzFhNjdlMTYyNGYxYjUwMjQyNjBhMDQ5NWZkYWJhNThhYWU0MWRmODI1MDUwMTJkNDgwYzhlNGY3NTFmZDdlYmMzOWY5YmVjZDY5NGIyYTMiOiIiOiIiOiIiOiIiOiJmNGM3YmVjMGMyNmNmMzg5MmQyMTQ1NDlhYzZmM2Q4MmYzNGM2OTY2ZDQyOTUwOTllZTU2MTY2ZTg3OWE3MGVjYWUxMzAyNTFmYWNkYTM1MWU5MDNkODc3YjZjNWVhYjUxNTNjZTg3YmE2YzdjZjhiY2M2MWNiZDE0Y2ZiZTM0Y2YxZWQ0MzY3OGFlZTY5Y2Q4N2I2MGU2YmNiNmZmNDhlYmQ0NGNlOWUzMTk4MmQ4ZmUyMGFlYzM0ZmE1MWQ2MjVmODQ1ZjYxMDU2NTc1OTY5YmY3ODVjMmZmYWI0ZGNjNzU0ZjEzZGU2MzQyM2U5NGJhZDhkNWUxNjZkOTZhNjJhNjAyZDNlZTQwNDVkZjE2MjAyOGI4OWNhYzQ1ZTYyMDdkOTA5N2YyYjNhYzBhYjE3NzI5MjUxOTg1ZjI3NmYxMjg3ZjVjNTZjYzliYTFhNzlmYmRiYjI5MWYzYTk0NWZiZmRiZDYzY2YxM2I4MmVjOTFmN2IxMDg1YjMzMjc5ZTMiCiAKIEhNQUNfRFJCRyBOSVNUIENBVlMgMTQuMyBQUiBGYWxzZSAoU0hBLTM4NCwgMCwgMCkgIzEKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMzg0CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMzg0CiBobWFjX2RyYmdfbm9wcjpNQkVEVExTX01EX1NIQTM4NDoiYWVjZTIwODdiNzEzOTkyZmY0OWQzYmY0MDRkY2RhMTg0MDNlMDE1NjMyYWMwMzczNWZlZDI5MTAyY2ZlYTZlYzFiNTc0OTUyNjg3YzliYWQwZTlhZWRjZmMxZGE1NjhiZTYzMjE2MmE4M2M4MDJhYjk0ZjMyYmJkODdmNmNmNGFmMWYyNzAzZjRhMDJhZjdkNjBlMjIzODNhNzcwYjlhYyI6IiI6IiI6IiI6IiI6ImMwMzQ0ODA3ZDVlM2VhMjlmZWY3M2FmYjJiODNkZmUwYWFlMTg2MDQ3ZmFiNmI2MDNkODYwOGRmNDk0NzZiZTE4YmYxZjBmNDcwNzE5OGZlZmExODgwNDQwNDg4N2VhM2M1OThkODg3ZTkzODQ0MGUxZmJiOGVkMGExYTMzMGNmZjg0ZDk1MmNjNjQwNWIxMmU3YmY1MWIwYzY3ZDVlNDg5NjAwNmRlZGI0NDYzN2UzOTNhOTc5MjU4OTBmZDUxNzYyNTJmNjlkNDM5MjAwNDM4NDRhOTFkMDg0MDg0NGQ4OWI4NzE1MDUyY2VjMzFlMjU3YzEyMWQzZmMwZWU4MDdiODRhZmFiZWU1OTYyNGEwMDcwM2Y0NjRiMDA3OWYxMjg4NGE2ZTg4OGFlNDk1OWM1NDIzNjA0ZjhhZTJlNmI1N2Y0NDI4ZTEwYjY4MGNiNzRjZjIwNDE3MzgwZGQ1Mzc4NDQ5YTI0ZWY5NWQ5NDM4YjBmZWUzODZiYWRlZTk2MiIKIAogSE1BQ19EUkJHIE5JU1QgQ0FWUyAxNC4zIFBSIEZhbHNlIChTSEEtMzg0LCAwLCAwKSAjMgotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEzODQKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8zODQKIGhtYWNfZHJiZ19ub3ByOk1CRURUTFNfTURfU0hBMzg0OiJjMzllNzdkNTc5NzU1YWFjZDQ1NGFiN2NhNjUyODU5NmMzOTdmMjhiY2Q1NDY3Y2M3ZTBmYjQ3ZjM5OGU4NzVkYTgzODkyYTg0MDM4MWMxYmMwM2I3YTIyM2U5MjkwNGE3MTRkZmY0NTc1OTEyNGZhMzM0NjRhOTdkN2YwZDdmZDJkMWM2YzIxNjYzZDMxZmU4MGFiZGFkNTk0NThjMjI4IjoiIjoiIjoiIjoiIjoiMTBmOGVjNjNhNTUwYzMxZWNkYWYyZmIxYjM3M2Y3MWYxOGQxNDZlYTAzM2RkNjVjZWMyZWMwYjczYjU1YmI2ZjNmYmI3MTM2ZGQwNDVlMDljNDA3MzI0N2YwOTM0OTNjZjI2YjY2ODNiYzllYmM5ODAyNWY3NWZhNDA1ZmI4ZGVlY2JmZmViMDIzNmEzM2YwZWQ2Yzc2MDBkOTkyY2U1YTI2OGM4NjA4NWFkYWRmNjgwNDcxNzhlZDg5ZDkzZDczOTM1MWY4OTI3MjNkOGQ2ZTRmNDI4OTQ2ZTRlNmRhZDFkNjQwYTljMTFkZTIzY2U5Yjc5MzMyNGUzMWRmYWNmZDM2N2Q4Njg1NWEyOGNjNTQ0Zjg4YjhhOTE1MDY3NTNmYTA2MWNlZmNiOWQ3N2JjY2MxNWEyM2E4NGRiYTY0NDA4OWVlMDNkYjgzNzRmZWU5MWRjMjNhZjY2NzIxNTliMGQyZGIyMTlmZmQwNzM5MGI2OTg3OTkxMGI1YzMzNmE1IgogCiBITUFDX0RSQkcgTklTVCBDQVZTIDE0LjMgUFIgRmFsc2UgKFNIQS0zODQsIDAsIDApICMzCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTM4NAorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzM4NAogaG1hY19kcmJnX25vcHI6TUJFRFRMU19NRF9TSEEzODQ6ImQyZThhMjUyNDlhYzg1MGZkM2IwMWY2MmNkMWVhZTNkZDk0ZDM4ZTcyNGY4ZTI2NDRiN2JiNTEwYzM3ZjIwMzg5MDI0MmIxMWJlNzczYmViMjAyZTllZTkzODk5YjYwYTAwZWJmMDhkYjE2NDhjODc1MGIxNGQ3Yjc4NGNkZjBhNmQ0ZTdjZGM4MTY0NjljYmRjM2EwOGQ2ZDMyNTAzYjciOiIiOiIiOiIiOiIiOiIwMTlmNzRlZWVmNjc0ZWYxMDBiYTRhMTgzNWJkZGViOTI1ZmU2ZmZmYTk3MTEzZGMwMGQ3ZDhjMGVkNDg2YTczZTgzMTU2MWFlNDRjNWJkOTBlMTg5ZmJlMmJiMWJmYjg0ZjNlODJlYzg4MDk2OTllZThjMmZhZDgwYjQ2NGI2YjM0NDk5OWMzNjQ4NjgzMDBjMWVkYjA2NWFlODYxMDlkYzI5NTE2ZjJiZGZlMmEwNDZlYmM4NzI1MDQ0YzM4MmQ5Mzk5MGYxY2JhMTg1ZjYxZjcxZmQyMmZiZDA3NmQ3MjdkZTMyYTZjMWQyZjQzMGJlZDQ5MWM5ZDA5ZWI2ZWU2NjlhMWRjNGY4MDQ4YzdiZTE5OWM3Y2JiNWFhNGYxNGQxNDIzYzhhNTQ3NjM4NjlmNWRlZTk0N2Y3NzZlZjI1NDNlYmI4OGQzMDA0NzM5MDg5ZWZkODZiN2IyMjMyN2FlOTUyNzQ3MDY4YjM1ZDRiM2Q4NmNhYzFkZWJjZTNlNDEiCiAKIEhNQUNfRFJCRyBOSVNUIENBVlMgMTQuMyBQUiBGYWxzZSAoU0hBLTM4NCwgMCwgMCkgIzQKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMzg0CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMzg0CiBobWFjX2RyYmdfbm9wcjpNQkVEVExTX01EX1NIQTM4NDoiY2ZmYzZjNDQyNzllNjQxODU2YzM5ZjE0ZWQzNTQ0MGVhMmYxNDljNzc0NTkxMDZmOTYwY2FmOTEwYWYyMWMxMDkwNjdjMGY5NDQ1MzIwYWRmYzBhYWYwYzg2MTIwYTM4NTg0NzQ3YjQwNDk1ODhlNWQ5MzU2OWZjZWNkMzU4YzUxNTA3YmVkNTlmOTYxNDViYjhkYjZiZmI0YWRlM2EyZSI6IiI6IiI6IiI6IiI6IjkyOGQ2ZDlmOTEyOGIwYWY2NDAyOGQ1ZDJlOTQ0MTRhZjlmOGRkZGQzNTNlNDE1NWY0MmE1ZDA4ZjNlNTMwOTMwZTAxZWMwZGRkZjI1ZDY1ZGU3ZjQ5ZGU3MDI3OTEzNzJjNzFmY2FmNWYyMGJkYjI0ZWI5OTk3NTJiZmRmY2EyODUyNWIxNjMwOGQ0NmNlZmIwYmMzYjI2MDQ5MDExNTc3ODE2MWRiMmZhZWJiZDY4N2I5NDBiYTA5OGUzZDViZTY0MDU2NWI4MWVkOWQ0MzRiNjg2MWZiYjRjZjAzNGJhNzczODA1NjIxMTlhYTMxNjRkYzUzNjUzZDRlODJlYzg0Y2YzNTFjMzViMWI2NjgzNDNmYWYxN2YxNzJlYjRjMGNjMzk5OWQ3ZDI0YWFiYTU4ZGVkZjExMjI1MzM2YjViZDc0NzgyNWQyYWU5MTAwY2Y2ZGEzMjc2ZjI2Y2VjMTk4ZTUyZWRmOTE5NDE2MjQ4M2FhNGE0NWZhMzQ4ZDBjYiIKIAogSE1BQ19EUkJHIE5JU1QgQ0FWUyAxNC4zIFBSIEZhbHNlIChTSEEtMzg0LCAwLCAwKSAjNQotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEzODQKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8zODQKIGhtYWNfZHJiZ19ub3ByOk1CRURUTFNfTURfU0hBMzg0OiIzYTFmMDQ3NGMyNzk1NDhjMDg2ZGU5ZTEyZWQ3NTRjNDlhMDMyMmU2NjMxZjdmNDQxYzgwMjRmZWE2NTRiYjZjZTI0NWMzNTdiMTNhZTk0MDY0ZDFiNDFjMjNlNWUwNDk2MTk5ZThhYzlkNTM1ZjhkOTVmY2Y4NWZkYmQzMWViMzNjMjA3OTNmMzUwNzVjNDEyYmE3MjEzMTk0YTg3M2ZiIjoiIjoiIjoiIjoiIjoiOTU0YjU4MDQyZDAyOGFiZDAwZjdjZTNkMzlmZGI2MWUwY2ZmNmM0MDM5MWVmODYyOWU4NzEwMTkxNTc3MWI4ZDBjN2UyNDI5Mjc1MWFhYjEyMTk2NDU3NDNjNmY1NDMwNjg2Njc3NWUyOGI1NDgxOGM3NTlhNmJmODA3YzQ5ODJlZGRkNGJlNWUyMmZlMzVhMzAzY2Q1MDNkMTIyY2MzZmM1Y2ZmZTUwYjAzMTE3NDU3ZTJlZmMxZmQ5MWE5NzY4OTY0NTUyMTE2ODExYjBlNjU4NTZlOGY4MjU2NjgxYzcyMmVhMjY1MmRlYWEyNDk4MDI1ZTg0MjYyYTNmZGQ3OGJkMzNiYzM2YzA1N2UxOTgzMjdhMzMyMzJlY2QzNjUwMWEwYWNmOTk3ZDAxNDliNGE4MzMxNTNiNzEwYjkwYzg3MjJiMjMyYTU3NGQyMmU3MDI2YTg5YTRkOWNjMzUwNmNjOTk0MjcwNWExNjJiMzRkYjlmNDkzMDFhMDg3ZGZlIgogCiBITUFDX0RSQkcgTklTVCBDQVZTIDE0LjMgUFIgRmFsc2UgKFNIQS0zODQsIDAsIDApICM2Ci1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTM4NAorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzM4NAogaG1hY19kcmJnX25vcHI6TUJFRFRMU19NRF9TSEEzODQ6ImU1ZjRmYTUwMDk4MmJkZjhiMDIzNzg4ZjlhNTUzMjQ4MmIyOWIxMmU4YWU3NzYxMTFhZGFhNjE3YTk1OGNlODk3Nzg3M2NhZWU2ZTgyYzUwOThhZTc3Mjg3YmRlMWQ4Mjk1YjhhYTEyNTkyM2RkN2Y4ZTA1ZGY3OGFkYzI5ODk4ODM2YmU3NmRmN2M1YWFmYmE2NDkzYjIxMWNiZjhiOTQiOiIiOiIiOiIiOiIiOiI1YjNmYzFhN2VhNDE4ZGViZTc5OTk0YmMwYThjODZmNDg3ZWQyZjMyMGMzNDI5M2RiOTUwYTFhMDI2YzIzOWI4ZGE2MjI2ZDFkZWE1MDlhMGZlNzZmNWE4MTFjOTM5MWE2MjIzNDMzMjRjMjkzYTAwOTA1ODdjMTAxOTNhMjk2MWUzNThkMWU3MWMyNjk4MjdlMGQ0NGU5M2Q4Nzk4NGY0N2FjZjViNDc1MWM4YzA2NjE1NmRhMWM0NDY2MmFmNDgyNmNkZmI1ZjdjZjk4YjFmMDIwMGQzYTBkN2I5OWZlYTdmMWIxN2RlZTdhY2ZhNWJhZWU4Zjk1YWU0ZTBiYzA1MGJlZTJlZWVhN2MwOWJhYTcyOWU2ZTAyZWQxOTQ3NmJhM2Y4ZjVhOGMxNjYwZGUwMzUzZGY4NzIzZWZjZDk4ZjVmY2FhNTZmNmVkYTc3ZjJkMTVjNzZkMjY5ODlhYTk5OGM0YWZkYzUzZmZjZGU0N2RhZmJhOGZlNTgxOGU4ZWUiCiAKIEhNQUNfRFJCRyBOSVNUIENBVlMgMTQuMyBQUiBGYWxzZSAoU0hBLTM4NCwgMCwgMCkgIzcKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMzg0CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMzg0CiBobWFjX2RyYmdfbm9wcjpNQkVEVExTX01EX1NIQTM4NDoiYjk0NDQzMzlhODczOGRmNmNmZTk1YjZkYzI4OTgwZDAyNzk5YjJlYzVjOGRiYTljYTk4ZmE4MDc1NjIxYTA0MTcyYjBjOWU0MTRlYTMzYzhiYzRiM2JlZWI1MzYxNjFjZGI5YTJhNTE2ZjNlODdiY2M5ZjkyZWJiZjRhYzFhOTAwNTU5NzU2OTAzYjcyYzRjMWI1ZjkwODJkOGIzNDFmNSI6IiI6IiI6IiI6IiI6IjA5NDY1MDA0ZjAwOWVkMzc4ZjQ0MGMxMGZiMTIyYTI2NWY0NjRkMzczZTdmMWExNzE5YzcxM2Y2YmYzOGQyOGZiNTQ0N2MyNjljMTI3YTBjMTAwODE1MzNhODQ3YzBlMTlmNGI2NDBiZTBiMWVkZjg0ZDk1MDI1ZDU2Njc5ZTU4ODA5MjJmMjljOTQyZTcyODQyOTZhOTMwOWI0ZmFiMWI1YmQ5OTU3ZDQ3MGRiMjhkM2QzNmEzNTg1ZmQzNzU3M2U4ZTMzNTVkMDM2OTAyNDFkNmY3MjExZDhjNmIwNTRhODEzYmEyNWY5Y2RhNzYyMDJkMzI3MGJmMTJmNjZkMmU1YmE1YTk0NmM3ZDI4ZGQyMmQ1NWQzNGEzMGEwNDBhYTk3ODJkMWU0OTQ2MDMxNDNkNDM2Y2JiMDIxMmZhMGRmNmQxYmJmNGYxOTgxOGI5OWE2OGQ5Y2IwNjJhYWVlOGZhMDU2MzZmYzYwYTA3MmVjNmU1ZWYyNDU2NmM2Yjk2YSIKIAogSE1BQ19EUkJHIE5JU1QgQ0FWUyAxNC4zIFBSIEZhbHNlIChTSEEtMzg0LCAwLCAwKSAjOAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEzODQKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8zODQKIGhtYWNfZHJiZ19ub3ByOk1CRURUTFNfTURfU0hBMzg0OiIyYWE4MjJlZmEyMmQ0Y2Q2NTM1OTEwN2M0NjMwOTAzMzk4NGI4ZTljM2VjYjFiNzcwNzhhMDlhZDllYzc0NmVmNGY2NGIyODdiY2MzMDY0ODY3YjY3OGY4MWFiMjA5ZGIzZWUxMzJhMTFmOGM5MjQ2Y2UwYTNkNmRlYjMzNDVmOWIxNWU0Y2QwNDgyODk5OTFjNjRhMjFhZmM0NmFjOThlIjoiIjoiIjoiIjoiIjoiN2I3OWJhZjAxMjY3ODJiZWJmMTc5NGZiNDg2MzNkYzY5YmE4OGQ2MzUwNGQyN2EyMDZkOTc0ODU0ZDQ0NjczN2RhNGNhMWZjNWJiYzU0MzY4OTY2YjU4M2RjNDQxYjEwNWJiMzBiM2JlMTlmMjc3OGVkMzE1NjRhY2YzMzNiN2M0Y2IxNzI3NDgwYWE5ODVhZmQ4MDM5Njg2NmUxMGY2ZGEzMTI4N2NjZTA3MzU4ZDYzMDhlNTZlM2JiY2U4NjEzYmJmNDcyYWVhZWNiMjdlNjYzMDVlMzRhZjU5M2M4NjMxNTA4Y2Y3ZDJjNTEyZGY3YzliM2FiMDRhNGVkZTQzNmI5ZDJlNjkxOWMwM2E1MjVkY2ViYTEwYWZiZjZlOGE2NDE1OTFkMDllOGE5MDU0M2YxOTA1YjA4NTM3Yjg4NjgzMzdjNzc0YzIwZWQ0N2RmMzJkMTE1YTdmMzMwNmQ4MDhiYjgyZDA2YmNiZGM4MTA0MmQwYTE2YTNmYzhkMGI2IgogCiBITUFDX0RSQkcgTklTVCBDQVZTIDE0LjMgUFIgRmFsc2UgKFNIQS0zODQsIDAsIDApICM5Ci1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTM4NAorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzM4NAogaG1hY19kcmJnX25vcHI6TUJFRFRMU19NRF9TSEEzODQ6ImEzMmFjMGFhYWVlMDVkNTdjYjNhNjI2ZmQyNjg1NGVmMDhhM2FkNDJhM2M2ODhlYzZhOWY5YjY3YmJmZjAyZjg2ZGYxNTBkYjBkZTJlMzYxMmNmMTA2ZDlmMTU4ZmI1NzA5MDFlMWVmYjEyMjUyNjY2ZTdhNjgwNTEzY2YyMmJjMDE3MmM0ZjhjMGQ4YjJlZWNmYTFkNDcxYzEwYzllZjgiOiIiOiIiOiIiOiIiOiI4MjcxYmQ3YWFhNzk1YjU4ZDhmNzQxYmMyMDczMzIzMzVhNjhmZWI2NmFjOWMzYmZkNWRhYzcyZjIwODA3MDI5ZjU1NWMzYmNhYzYyOWQyMjhjM2E3N2Q1OTZkOTljNWQ1NDVhOGRjZGQwYTJmYjJhNWVlZDVjMzQ5MjYxOGRhYjRmNzYzZWNkN2M2NTgwODE3YzZhN2FjY2E0MmQ4MTgzMWJmYzEzZjM4ZWQ1NmVkNDIwNTU4NzdjN2YzMWRmYWQzNWE3M2ViMjA1MmY2ZjkxODNkZmM4OWI1OTI2NjgwZGMyYWE4NTk5NWQ0MmEwYzA3M2M4ODFmMWVkMzMyNzk0YTc4NDU1MzQ5M2JmZDg0MjIyNTAzMGUwMDU2ZDc2ZTUyODEwMjM2YjE3ZjZmMDY3ZDEyNzIzNzIzOTVmZmU5YzJkZjMxNDVjYzY1ZWQyYzZmMmYxMjFkZmM2YzFlYjhmYTYxMzJiNDRlZTAzNzNjN2MwMjdhZjgwMzgzZDRhN2YiCiAKIEhNQUNfRFJCRyBOSVNUIENBVlMgMTQuMyBQUiBGYWxzZSAoU0hBLTM4NCwgMCwgMCkgIzEwCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTM4NAorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzM4NAogaG1hY19kcmJnX25vcHI6TUJFRFRMU19NRF9TSEEzODQ6ImM1ODZlMGY1OTk5ZjEwNzI4MWRkNWM3Y2ExZmY4OGQ0NjE3YjRmZDFiYjYxMzEzODk1ZGQ0YmVkZTg3NWMyN2I1YjBlNmM1YmExNWU4NzI1ZWJhOGZhMDA5NDA2YWEzZDhiOGI2NmYxM2UwN2M4OTE4YzBmM2Y1NTI2MmRlYmZiZWRmYzY0MTMyOWUxZmNkNjQ0MmMyNDU2MjZjZmQyMDYiOiIiOiIiOiIiOiIiOiI5ZDRmNGY2ODg0MDZkOGU1N2Q5NjM2OTU1M2VlMzkyNjdhOWRmOTAyMGQ3ZmE3OGIzOWUxZjI0NjY3NWI3MGE4MDgwY2FjNWFhNjk2N2U3OGM1NTA3MTI0MWUyMGE5NDQ2YTgyNTA3YTIxNWE2YzVmYWEzYTJlYTNjMDVjMTI5MDU1NThkOThhOGVlZjkwYzhhYmZmZTZjZjhiODc0YzVlZjA1N2UzNjVmZGYxNzk0MzhkZTZhNzhiNGRjYzA3NWI0MWFhY2U4NzVhNWRkMzVhNDRmMmQyYjE3ZDZlZjZhYTkxZjc5MzU0OTMxYzRkNDg3MTQyZjdhYzIxMjBmZDc4Y2FhNmM3ZmY1Mjk4NzI5ZGUxNmMwZTgyODVkNzNhM2M2YTk1YWRhOTlmMzI5ZGM5YWEwOTI0YjAwNTlhNjU4NTg1MzI5Njc4OWI3ZTExMjk0MzJiYWVmNGJiZDIyNDBhOGVmN2IxOTA0NmZiYTEwNGE4NWQ0M2FlZTBlYmYwMjEiCiAKIEhNQUNfRFJCRyBOSVNUIENBVlMgMTQuMyBQUiBGYWxzZSAoU0hBLTM4NCwgMCwgMCkgIzExCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTM4NAorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzM4NAogaG1hY19kcmJnX25vcHI6TUJFRFRMU19NRF9TSEEzODQ6ImJjYWM2YzIxNjA0NTVlN2RiMzhhOWM5NGViZDMyOWMxYWMwNDNiNmZmNjA3YTljNzZhODYxNTY5NzRkMzAyNTFiNGY0YjE0ZTZjZjAxZDQwN2NiNDI2YWQ2MTYwOGQxNTk5YTZiN2JhOTQwMjc1NmJlYTI3MDljZjNiMTYyY2JmMDQwZDBmNWYzOGZjNDU4NGNiOWNmNGU2YTdiYjM5ODQiOiIiOiIiOiIiOiIiOiIzN2Q3NmViYmFiMGQ0YzgzNTQwODZhNWM1ZWRkNWFhNjMxNGE0NzcwNzQ5ZDQ2OGI5ZTVkMzQ1NGYyZGJjOWIyNTQzMmYyZDVkOWY0Yjg4YmVhN2Y5ODM1ZWRiMjJmOGE3YjA5YmQ2MDQ3MDM4NzBhYmVlMTE2MDM2OWQwNTc1YmRkMzg0N2VlNWZhOTNhOWZlOWFhYWFjMGQ0MzYwMjJmOTRkMWI5NjY1NWFiMDBmZWJhMWY0MDIwMjQyNWU1MWIwODRlMzcyMjQ5ZmJjMzdmNDk0MTBmYzlkNGQxNjE3M2E5YmMyOTE4MWI2MmUzNDJhODgzNWY4MThkMjY0N2M0NWI2Y2U2YzViNmYyOWFkZDEzZDU3ZTgwNTEzZjc2NzMzOTU3NTY3MWJjY2RjY2RjOWQwOTNkYmQ3MmM5MWJhMDdkODFjNThhYjUyNTZiNjc0NGE5NGYwZTc1NDgyZTM4NDhkZTg5MWRhYmYzODQzMjJkMTQxOTgxNGNmZTE1OTAiCiAKIEhNQUNfRFJCRyBOSVNUIENBVlMgMTQuMyBQUiBGYWxzZSAoU0hBLTM4NCwgMCwgMCkgIzEyCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTM4NAorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzM4NAogaG1hY19kcmJnX25vcHI6TUJFRFRMU19NRF9TSEEzODQ6IjRiNjY3ZDM1YTQ4MTc3OWFkOTE5OTU2Y2EwNmUwNzM2NmE5NzQ3MzhjMDlhNTY4NWZhMjNiM2ZjYzFhNTQyNjBjZDM5ZDcyNWE3ZjI2NjFlYTg2YTJkNTdjZmNkMmE5MWUwODQxOTQ3NmJkYzU1MzRkZjU4YzZjM2IwNzdkM2FjZDI3YWNlMDQ3MmY5MTg1NGMxNjRkZTdmNzZhOWIxYWMiOiIiOiIiOiIiOiIiOiJjODJlNWUyZmIwODE3MWMyMzM2NzBlOWU1NDAzYjA3YzYwMGJlNGU5MWZmNWI1N2FlMjg0YzRkNzMzMTM5YjU2ZWNlNzIwZTgyZDNmOWFjMTg1ZTM3ZDBmNDRkNTI4MTIyNGNiNWY5ZDIzMGRiZGZjYWYxNzU2Mzg5ZmU3NTI1NzVhMjc2NGY2YWU3NzVkMGE4MmYyZWIxZDkwMWFiMDRiNTliNTRiNWZhZGIyYWNjOWI5YWYzZTgyOWVmMTk1NzFkYzQxNjc1MmIxYmIwOTM1ZWEyZjNhZDY5ZGM0NTIyODVjMmYwODQxMmIxMTc5NDEzNGJhM2JkYTBhMTA0MjU1NzZlODhlYTdiMDY5Yjc0YjQzNmFjYTkzZmU5ZGQxZGFmYzc4ZGExMjI3YjEzZDcwMTU3ZjYwYzliZWU2NDQ0NTFmODc2NWU0YzhiYWRkZGFkNmM3NzlkNmI0MmQ0ZThiNWJhNjUyNjkxODZiMDRjMzhkYjM0OGFiNWY3YTQxNDYiCiAKIEhNQUNfRFJCRyBOSVNUIENBVlMgMTQuMyBQUiBGYWxzZSAoU0hBLTM4NCwgMCwgMCkgIzEzCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTM4NAorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzM4NAogaG1hY19kcmJnX25vcHI6TUJFRFRMU19NRF9TSEEzODQ6ImMwZGI5NDUzZjg0YzJhYTc0YmY5M2VmMjFiOWU3ODAyYmI4OTk1ZjZmYTVlNjM0Y2Q0MDY0Y2EyYTAwNzUzMTlhOTY5YmFkMTM0NWJiNTQzMmRmNjM0MTI4MDdhNjQ2ZDIwMDgzOTRkODM5ODljYjRhNTA2OTkwZjU5ZjhkYTgwZTZiM2ExZGYzZmI4ZDcyNjYzOWQ1OWNiYWVkMTU2MmYiOiIiOiIiOiIiOiIiOiIxMjBiYzI2OGNhMGQzZjU1ZDVhZmY1YjM2MGNhNGQyOWE0YjhlYzVjYjYyNGY5Njc0ZWYwYTY3YjkwYmI3MGMyMzhiOTRiMmJmODA0ZmU3NGNhMThmODM2NGZmOGIxZTUwYjIzMTVmOGFhMGMzZmVhNjYzZTkzYzgwNTQ0Mjg0MTM2ZGUxZDE2MmU5MDc4ZTlhMDc0YTUwYjQ5M2JjYzdlMGM4M2EwMDQ3MTk5MTY0YTJkMzIxMzNkYjU3YWJiMDViNzUxYTM1N2FiZDNhZDUyOTg3NzNiZTIxYzUzNGY5ODY0NWU5NGYwOTM1YWZhNTM3Mjk0NjJhY2JlNTU5OTNiN2Q4MDFiZDZiMGNiYzhlZWI1YTFjNWYwYzBkNjkwNzAyZjhkZTBhMWE3OGRjY2E4ODYyNTM4MjAxZmFmYmVmZWU1NWNkNWJlNjJhZmE4ZTUxMTFjODlmMWY2OGQwZjE3NjBjZWNjODZiZjY2NzVjYjA5YjIwZTA5N2JhY2UwMzciCiAKIEhNQUNfRFJCRyBOSVNUIENBVlMgMTQuMyBQUiBGYWxzZSAoU0hBLTM4NCwgMCwgMCkgIzE0Ci1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTM4NAorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzM4NAogaG1hY19kcmJnX25vcHI6TUJFRFRMU19NRF9TSEEzODQ6IjMxODM2ZDI5MmNiNDZhYWQ1OTQxNzFlNzYyMzdhMzQyMjg0NGY2MmZiMTRkMGNkZjYzYmE1ODdlNzM1MDEwNTFjN2NiYjI4MGQ0YjQ2NDEyZTEwOTI3Yzk1MjNiZWQxYmVlYjUxNjM3MzdkYjdmOTEwZTQ0NGU1ZDUyMjFjNTQ2OTY1NWZkYTRhYjcyMThlNjNlMTQ1MWY0NjFiNGZjNzAiOiIiOiIiOiIiOiIiOiIxY2YzYjQ5ZjI4Yjc5MWU3YzgxNzA2ZmIxYTg3MGYxYWYxMzRhMGZiMGQyYWFjZmNkNmU0NDZjYWYwYTkxYzA0ZGMxNjBmMDgwZWJkNTUwM2ZiN2MxNmFkOTIyOWJmMGE3YmZmY2FhZDA3MzI5ZDViZGU0NTc2ODcwNzU4YTRiZmZlYmI2YjVjMzA5MTE0Njg4ZGI4ZTU5YTU1NDEzYjRiMzc2ODlkZjM4ZDcyYmM1MzU4MjkxYmJjYzBiMDVhZjQ4N2EzMzkzNGNlNjI2ZWZkZTkxOGQwZWQ1ZjJkZWI3NWExN2JkODkxMmEzMWRjY2Q3ODMzNTQ0NzdmYTg1MDUyMGMzYjk3YjU2YzZkMmI5ZTRhMDVkNDliYzM2ZTY2ODMyNzFmMjMyMmM5YTU0NmZjYTg4YzUwMjE4N2E1ZjRhMjAzNWJmNWM1MjdhYTMxMmYxNmMzNTdjMzcxNjJkNzIyNTEwYjUyZmY4MzU3NDkwYTA5NjY5MjU3MmNmZDhiMGYiCiAKIEhNQUNfRFJCRyBOSVNUIENBVlMgMTQuMyBQUiBGYWxzZSAoU0hBLTM4NCwgMCwgMjU2KSAjMAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEzODQKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8zODQKIGhtYWNfZHJiZ19ub3ByOk1CRURUTFNfTURfU0hBMzg0OiJhMGMzNDFkZGY3M2Q5NDA0MTc3YTVmZGUzMmNiZTIxMzE5YzMxOGYzNWNjOWFmY2E5YWQ0MWEzYjA2ZTEzNDkxZTg0M2NjNmFmZGYyYmNkMDBjZTc3ZmYwNmNlM2Q4YTU0NzcyYzQ2YmFmMTQyZTU2OWVjZDkxMzFkNjE4NWFmMzU3NWJiNjJhNDFjYjY0NmJkY2FlOGE3YTlmZTYwY2M1IjoiIjoiYjgzNDkxZWMxYmQ4OWYzZmM4NGFjZjFhYWQ2ZmJlYjhlZjZhYjk0OWY0MWFkYzZkMGRlZGM1MzcyMmMxNzFmZSI6ImI3NmNlYzNkNjMwMGVjYzRhMDJlODEwMjk2YzdlNzBiZDliNGU3MTIxZmM1ZTk3MWNiYjk0MzM3OTgwZmRkYmQiOiIyYTI1Y2IwZWNmOTEzNzQ5YWQ0NmI1ODVjNzYwOTc3MzlhMTRjYTdiNTlmMWYzY2U0Zjc5YmM4YTRhZmQxMzc4IjoiOThjMDFkNDUyN2ZkMTMxY2MzMjdlOTYzMjEwNGQ5ZWVlMTA0MDdjZDczYWI2MDcyMjhkMzdiOWI3MmNhMmM5ODdhYTc5NDgwNGQ1MDVkMDcyNTYxY2NkNTAxNmJkNDE4OWFjOWUzZGI5MTg3ODIyODc3ZGQ1MzMzNDdiNWQyMDcxODE4YmI3NjgzMzEyZTFlODgwNmU5YjczYjAyMTc3N2Y3Zjg3OGJiN2QzMDRlYzU4Y2U5MmU1ZTM2ZDNkMDVhNzM4M2RjNzdmM2ZlNmViODRiNjE1ZjNmMjkwYmY4YTQzYzM0ZWY1NDc4YTMwYTZhZDYxNjE1N2M5ZDdkZDA0NmFhNjZiNTIyYmNlZjYxYzlkMTkzODJjMzI0MjVkMzhlZDNmYzA0OWU3MzAzNWFmMWU4Yjk3Mzg4ZGUyMmM0ZGNiYTBiZGMwOWZkMzZhYjdlYjNmNjc2NTljYmQ5MmI4ZDdmNmQ3NGI1NmZjOGRhZjE3MDY4YzY1ZmIwMTZlMjlmIgogCiBITUFDX0RSQkcgTklTVCBDQVZTIDE0LjMgUFIgRmFsc2UgKFNIQS0zODQsIDAsIDI1NikgIzEKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMzg0CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMzg0CiBobWFjX2RyYmdfbm9wcjpNQkVEVExTX01EX1NIQTM4NDoiNzgxN2ZlODgwYzBhNDIyNGVhZWQwZGE1ZjM5NjI3MjdlNGIzYmU1NjcwMjFkMzdkM2I2ZDRjZDc3OTI3NDM3OGYxY2RhYjkxYzRlN2MxNDMzZGNkY2QwYWZiZTRiNDNjMzJhMmI1ZmZjNTIwYWMzNzIxYmZkNTM1MmZlZDAyM2QwNDQzOWMxNzYyODg1MjEzMTliNWUzMTViNmU1ZTg1YSI6IiI6ImM3NzA4YzI1MDAzZTY1ODdmYzhjODExNmM1MDBkMzcyOTlmNWQ1ZmZjYWQzNDA1MzQ5MzUxZDRmZWQ2MjM4NzQiOiI0NWY4OGYyZGY0M2M0YjljM2Q4MjliN2NmZTYxOTA0ZGRmNjU4YzE2MDQzMjcxZjAxYzVmMDZhZDNlYzdiYzMyIjoiODgzY2ZkNzE3YWQ4NDY2MDM1ZTZkM2YzYzA0ODEzZTIxNjU3YWQ2MmVlYWNhNDQ5Nzg1YWViMDgzNmFjOTRmOCI6IjZlMDYzM2M1MzIwOTllYmYwYjEwZDRhZDM1ZDc4YTQ4YjgyZmJjZTM3OTEzZTY1NTQ4NGFlNDBlMjk3NzJhMjU2MzBhN2FiMzdmMWQwZWNkY2UyNzc3M2EyY2U4ODUyMWIxNzE0MzJjMDdjMDIyNjlkZjE4MjJkMmI2Y2RlMGQ5Zjc2ODM3NWQ5YzYwZTY4OGY0OTdmYjdhZTI2MmNkZDVmN2U4Yjg0Yjg0NDExZDYxOWMzNjUyOWI0MTU3NmFjNDU2YTI0MGVkOTRkNzUwZmE3MjJkYjg3NDA5OGVmNzIwMGM3NGMzMjM0YTNlNWYyMWZjYmMyY2I1ZDUwYzQyOTdkMWU3MDkwMWI4OTM2OTY0Y2NkMjQyMDk4MDAyZjRjOGVkN2RiZjQ5ZGU4YzJhOTI0YzczN2YyNDhkNDZhYzE0NjlmNjc2Mzc3Y2E1MmNiYTEyZjI4ZDliNTM0NTA0ZDZlODQyM2I1NDA0YjdlMTRkZTk1NGI0MjI1YmI1MzU1MSIKIAogSE1BQ19EUkJHIE5JU1QgQ0FWUyAxNC4zIFBSIEZhbHNlIChTSEEtMzg0LCAwLCAyNTYpICMyCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTM4NAorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzM4NAogaG1hY19kcmJnX25vcHI6TUJFRFRMU19NRF9TSEEzODQ6ImYyYmI2ZWRlYzAwMDk4MmJmZGIzMDFkMWQ4OGEyM2NlODQwZTQ5NmE0ZjU5NWE2NjJlNDEyNzU3MTI2NGYxZDdlOWUyODNjNTY3ZjExZTdlMjY2NDU5ZmE3ODFjNmZkOTUzMzkwMTU4MzZlYmQ2OWFhNDI4NTcwMTBmNDRlOGE3MmI4MWY1MDFjOTY5MzFmYjQ5MWRjMTE5MmY2ZjZhMjciOiIiOiJlY2Q1ZWEzMzE0NmNiNzRhNzA3ZWVkYjhkZjg4MWVkZGIxNzk3Y2JiN2IxNmMxNmY4ZDc0MWQyMzc5NTc3NGZjIjoiZDQxMGQ2ZTJlODQ4ZjIyNDFlZTQ1Yzk4NzAwNjRhYzAyMTdkOTdmNTlhOGU4MGY2YjUxMDdmZjBlNDI0MGJkMCI6IjhhOGM1OGZkZTNiOGM5NzExNzU3Y2IxN2U0NjU4N2QwYzUxODdmNzU4ZDY0NDc4ZTk5Njg2MDRhZjAzNjcxMzYiOiI5OTBiMWY2ODE1MmIzNjA3ZjMwMTFmOGQwNGVhMzNhM2U4ZmM0NzljOGE2ZWFlYjU4OTEzMzU2OTA0OGZlMTI4NGFiNDRkNTFiZGNmNGYwY2Q0YzhkNjRmNGM2MzM3Y2RiZTVmNGY0OTdlYTkwZWU0MjA0ODQ1YmViY2EyZmZkZTc4MzFjZjQ5ODkyODI5MzIyNjQ0YzRlMjBhNDVhOTg4NWZmNjE5YmRmNWU3OWVlNTNjMjZmNDcwNzJlMjBhNDZkMmIxMDhkMTgwZDZiYTU4NTlhNjk2ZjQ3MmJmYWE4MGIyZmNjN2VkYTM3NGEzZjkxYWMwYjA2YzlmMTNhZmFjMWFmMjQ0YTM4OWNhYjQ0ODlkMGVlMDRhMDU5OGY5YzUxNjhmMzliNDBlNzEyN2RhZDlmMjBkNjllZGU2Y2FlNzY4M2IyNWRlZDFjZjlkOTAzNTQxZmI0YjBhODA0ZDdjMTYzYWIwNjhkMjI5NDlmMjhhOGY0ZTg1M2U2OTFlNTEiCiAKIEhNQUNfRFJCRyBOSVNUIENBVlMgMTQuMyBQUiBGYWxzZSAoU0hBLTM4NCwgMCwgMjU2KSAjMwotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEzODQKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8zODQKIGhtYWNfZHJiZ19ub3ByOk1CRURUTFNfTURfU0hBMzg0OiI2OTY4ZjViODcwMTliNGNkYWZjYzlmM2E4OTMyMWYyNWVmNWQ4ZDcwZmQwNzgxYzllM2JiMDFiM2FkYTE4YzhiNjFkOTE0MmI2MzlhYTc1ZjVmOWQ3OThjYTUzODQ3NWQwOWIxMjEwNDhlOGEwY2M0YjIyODZlZmExMmZhOGI0Yjk1OTkzODI2MWExZWM4ZTYwNzUyNmI3YTI3OTMxMTkxIjoiIjoiZmJlNmI4YWY2Njg1NDIyZWVlYWZjMzIzMjdhOTkxMDRiNDVjYTU2MDI1MTNhZWQwYTVjNjIzNTMyOGU4YTdhNSI6IjA0ZjEzNzM5MWUyN2NhZmZlY2Q0NDEzYzc3NTExN2ZlZGEyN2NhZDgzOWFhOTAwZmYyYWY0N2M3MDAwMzRiMDgiOiJmMTg1OTI1Y2MxODBlNTU2YTA3MDNhNTk1NmFiNmQ4NDYxMjFmOWQ5Y2ZmOTdmNjViYmVkM2JjNDQ5MDRjYjVmIjoiYzhiYmUxNjE5MmJkYTc0ZWY4OWQ5ODU5YjI0OGFjNjU4ODk2YmQ0MGI1NDkxYzkwZTkyM2NhYjY4MTVlYzNkMjEyNmM2MjQxMDM3MGY1ZjQ0ZTAxZmJmMWQxNjUzMDY0YWVkODM1NjA0ZDVmZDA2MzNjOGI3MWNkZGU2YzgzMWNkOTFkNjllNDIwZGI4M2U2ZDVkODJjMjZjNDdhMTFmMmVkZTYxNmEyODg1YTg4NDgzNWNmMjE0MmE2YWU0Y2FiZTk4OTcwMDEyNWRmMTI5MDIzNzRiY2NlMDRmM2ZkNzhmMDM0ZTUwMzk4ZDliY2Y0NjNkZGU2Nzk2NjI3ODIwYzc1YTdlZmVlODJmZTRlMTYzNzVhZjU3YWQzMTU0OTczMDQyZTBhOTIxMTBlZjc0NWY0NjgzNzdmNmNiZWM1ZmExYTE0NzBlYWM4MDQwOGY4ZTk2ZDM3MjQ4YjEwMGVmODQ3NmMyYTg1Y2NjZGZjYTU2OTZmZmVmZWVlY2RhOWUwIgogCiBITUFDX0RSQkcgTklTVCBDQVZTIDE0LjMgUFIgRmFsc2UgKFNIQS0zODQsIDAsIDI1NikgIzQKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMzg0CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMzg0CiBobWFjX2RyYmdfbm9wcjpNQkVEVExTX01EX1NIQTM4NDoiZThlOTlmZmNmMDhhYWQ4ZTUwMzg2ZjVkMDc5ZDc5ZDNkYjc4M2E3NDE2NWM2MTI2YjQyYjMxNDBmNzQ0YTdjNzIzNTQxOTMwYzhjNzcyYWRiNjI5ODFkYmVmOGQwNTRlY2RjZjFjMzAyMjg5MDRiZDdiYTMxNzk4YmZiYmQ2NDc1N2FhMjUxYWM5YTFhZThjMjBhMDUwNjcwZmVhYzU5YiI6IiI6IjU0NmUwNDI0N2Q2Y2I1MjEyYTU3YjYyZjk5ZTFjY2E3NjdhNTc2OGNmNzkyOTZmNDVmMGRiMjQ3MzJiYTYzNjgiOiJmZDQ1ZjY2YzhkZWRlNDEzODczNzNjMzg2NzQ2MDVmM2UwNzVjOWI3Y2ZjNjYxMjNhNTQ3OGI4ZjhlM2FiMjc2IjoiMzk5MTFhNzljNmVkYmJjODA1YTUwZDJhYTAxODc0MjA5NDE3N2E4ZTIxNmQ2NDdjNjQ0MjhjMDAxNjlhYjJkNiI6Ijg3MTU3N2RkZjM0YjI5ZTVjYWYxMzJhYTgyZTFkMmYxNTg2Yjc2ZTM5YWFiNjJhY2QwMmY2ZDQ0NDA5MDhhNzcyYWM1ZjZmZDQ4YzVmNTVmMWViZTBlNzYyMjFhYzQ2YjgzNGE4YTRmNWRkOTk1ODcyMWVlMDUzYmEzYWVmMTU3NGViZDk4MGE1ZGE2YTk0NjkzNjYyNzE3ZWU1NDhhZjBmOTIxNDIxZDFhZmI4MTRlNGQxNzk5ZDM1MTg4OWQyYTFiZGQ1NzU3MGE5MTNlNDI4ZTY2MTNiMTZlMTU4YzFjZmVkMDM4ZjY1Nzg5MjBkNjBkYjczZGMxMGE0MGRhOWJjMzYzYTAyMDZiNGU3ZTQ5NjcwZWNjZWE4NjZlZmQ5YTA1YmMyMzcwNDJjZjA1MmYyYTQxNDBmOTM3N2UzYzY3OTJiODhlYTA2MzIzZmNlYmI5OWM2NDNmYzFjMzY1Mzc1OGQ2ODY2Y2RiMTQ4ODM3ZmIwZmRmNzdkZTE1NjRjZiIKIAogSE1BQ19EUkJHIE5JU1QgQ0FWUyAxNC4zIFBSIEZhbHNlIChTSEEtMzg0LCAwLCAyNTYpICM1Ci1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTM4NAorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzM4NAogaG1hY19kcmJnX25vcHI6TUJFRFRMU19NRF9TSEEzODQ6ImM3Nzc0ZTE5OWI1YThjMGIzMDZjYTIzNjE2MzI0OTA0NGVjMjE1M2RjODliZDFjMTQ1OWNmZDQwY2M2MDY5ZmQxOTIxODM3YWFhODBmNGRmZjM0YTk3YjRkZDdlOTRjMDE0M2VmYTI0ZjM0OTI0ZmE1MmFiYjQyNzVhNjNjYWU3MDQ4YTdmYmI4Yjc2MzAwZmE4ZDEwOWY5NTYxZjE2OTkiOiIiOiIxZjQzN2Y3NTg1MTIwNzFiZDIzZDA5MWMyYjFhZDhkNTFiOTlhY2M2NjNlMWQwMzdmYzU0MjEwOTJjYmIxYTQ1IjoiYzYyMmFjMTA3MWI1MGU0Zjg5OWU0NzYwY2ZlZDQ3NmFkYzAxM2I2ZmY5NWM5YjdiZTY3MWY3OWNkMjQ4N2JhNSI6ImY5NzNmNDVmNzVmYjBkNjhlMGJjNWE3MjNhNzJlNzIyZTZjOGYzZmVhMDhkNzg1MTQxYzc4Nzg2ZGE1MTAxYzYiOiI5NDc1YzY5N2FmNDMwZTk0ZWQzOTZjNzA3YmI3ZDVlZTViZmYxODQwNTEzMWEwZTg5OGVkMzgwNjVhYmMyOGViZGMxZGMzM2Q3NjdjNGRhYjY5Yzg0NmUzMzUwYmI0MTRlZjJkNDM3OTg3MTA5NThhNmZmM2U2YjU1ZGU5M2MyYWMzMTc5M2ExZGQ0YjA3Mzc5ZTM2NGNlNzI1NTMzMjNiOWJjYWE4ODM5Y2JiYmQzNDdiNGE4MjAxMGI3ODk2NzIxOWI4NGM2ZmU5ZjkyODVmZjc0MWEwMDM2YWJhNmJmYTdkZDBkNWE0ZmZjMTkzNjM0MWIwZTJhMzEwODIxMjNiNmQyYWY2NzQwY2IzZmY0M2JiNGE4N2VlNzRlZjdlYjA2MDMwNzQ1NDUzZDJlYzIyNWM4ZjMxZDIxNGYxZGVhZDBmMjlhZjAxZWJmZTkwZDJmOGE4YmY1ZTAzMTI0MmViZmNiZDEzNmIzZTNkYjFmNjNhNDZmNjlhMjZkNjE1OWYiCiAKIEhNQUNfRFJCRyBOSVNUIENBVlMgMTQuMyBQUiBGYWxzZSAoU0hBLTM4NCwgMCwgMjU2KSAjNgotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEzODQKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8zODQKIGhtYWNfZHJiZ19ub3ByOk1CRURUTFNfTURfU0hBMzg0OiI4OTg5NjNkMDIzN2M1OGU0YjdiNmU4OTRhYjI3MTU1NTQwN2QzYWU4YzFjNDU5OWY1ZjU0OTBhZDU3MDE5ODRhNmU1ZGRkNThkMzExYjU0N2Y2ZmQyZDRkNjdhZGRiNGNhNmI4NjgzOWI4Mzk3OGJhZWY3MmI4Y2ZiZGQwY2YxODA1MThhZjBlMzJlNTJhZDRhNzNkYjQ2MGFmMDVlMTg3IjoiIjoiY2JlNWYxNDQ0NWNkMzEwYWVjYzk3MTEzMjMyYTAxMjFlZDIwODJmMmM0MTUyYjRiZTY4NDQ4ZjM2YzkxYjFmNCI6ImVmZTBlZjAyOGU0MTc5YWUxMGIzNzhiY2RhM2Q5NjA1NmZmMjFkOTQ0MDRiZmUwMjJiNTYzY2I2NjkwYWQ1NjMiOiI5OGNmNmE3NzFjMDVmOTA0YjUzZmY5YjEyNzA5ZDIwYmMzZjE4MjEzODVjZjI3YWNlN2E0YTU4NGU3Mzg2NmMyIjoiNTY4MmI2YmQ2NjdiNDVkY2YxNjUyN2E4MTc4NTJiNTJhN2Y1ZDBmYThjOTYyZjNkZDNhZjYzZTdlNzE5OTBkYTkyYjc1ZTlmY2Y1ZGU1OWIxNTY1ZjUyNWE3MzRlOTc4YmE3NGRkODBmZTg5YTJlNTI3OTYwY2U0MjA3YjljYTUxNGQ5MzM2NzZhZDkzZTZkZmY1ZDU3MzE0YTQ1ODg5NjM3YTYyM2ViNzgzMjg1NGMzODk3ZmFhNTExZWQ2ZGQyNDZkMmI4MjgwZTdkMDUyNDY0N2Q0YmY3NzE1YjU1NDZlMGE5YTFkZWMyNDZiMTY4MGFkZWEyZWVjZGMzNTRmYjMxMjI2NTQxMDJjZDBiZjk0YWM5MzMzY2FlZjNmZGMzNjllNzY0OTY1MzM1MjczOTc4M2QwNDhlMDhlOGQyMzFiMzMyZmExNTU4NzQ1ZTJjZTg5ZGQ3NmQxZGM0NDJhNzFkYzNkNWViN2QzNDgxNTU4OTQxZTI2MWY5ODliMDk3IgogCiBITUFDX0RSQkcgTklTVCBDQVZTIDE0LjMgUFIgRmFsc2UgKFNIQS0zODQsIDAsIDI1NikgIzcKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMzg0CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMzg0CiBobWFjX2RyYmdfbm9wcjpNQkVEVExTX01EX1NIQTM4NDoiNDI2YmZkZDRlYWQ2NTY2MTFjZTQ5YmZkOWYyMTM4NDNjMTk0YmI2ODYzNTM0ZWJjMjU4NDE1MTQ4ZjQ1N2U2ZTY4NWZjZjUzOTkyMmFhZGUzNDhhMmFmNjc4MDM4NjEwYWY2NzYyNDY2MzJkZDcwOTIwZDY2MTUxOGQ0ZGM1MjIxMzgxYjJmYmYxYzJmM2JmZWQwMWNiYjkzMDM5ODA5NSI6IiI6Ijk3MTc4NWIxOGUyNDRkMDNlMjViOWE4MGMyYzIyMDRmNWJhYjZkY2JjYWVjOTg2MzQyNDUwZWI5YjM3NmJiNWUiOiI1ZGU1ODJjYmE0M2E2MTA4NjY1Nzg2MDRjOWYyYTU0MjgzMWY0MWMyNzdkNTBiMzI0ZjRlZGYxZTJlNWQ0OThiIjoiNDZlNGMzMjVkMmM0NWUwMGEzYzE3YWIzNTExNWI1MzcwYWJiYWU2MTMzN2ViMmRhNGU2YWE5MWY5NTFmNTVlOSI6ImYyZThiZTJlOTk0Yjc0YTQ5NDVmZWRhYmIxNjc3Nzg1MjM4NjVlZDI3ODI2ZjljMjZjYTJiNDliZjMyYWYxNjI2YWU2MmJmZWFhYjEzZTliYzUyYTA4MWYzNjUwNjJhNWNkYmVkMDg3MmY2NDc5Y2ZlYzVhNWU3OTE3MWQ5N2VhODk4ZThkMTBlZDcxMjAzODgyZDFkN2I3ZDI4YzVkNTliODg3Mjk4NWFiYzYyOGU3MzYyMmY2MTZjNGMwOTA0ZWNiMWU0NTE4YmU4YjQzOTg2NjJkZmY4ODA2YzNmNDM3NTBjYzliZTk1YWFhYzJhNDczMGY0MDMyM2Q2M2FmMTU3ZDEzNTU1ZDA0M2M0ZDBkN2NiNTNmMjAyZGYyODJmZGZjNTU0NGEyMzRmNzExMjFlODkzODE0ZjRiZmE5MjYzNTFjNWU5NDI3ZTkwZjExMTdhM2JjZTdhMTZmMGUwOGNkMDZjM2Q3YzQ1OGY5ZDA3Y2EzMjY5ZTAxNTczM2FhMSIKIAogSE1BQ19EUkJHIE5JU1QgQ0FWUyAxNC4zIFBSIEZhbHNlIChTSEEtMzg0LCAwLCAyNTYpICM4Ci1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTM4NAorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzM4NAogaG1hY19kcmJnX25vcHI6TUJFRFRMU19NRF9TSEEzODQ6ImRkZmIzZDFkOTNlOTc3YWVjZDA4ZWZiZDcxZGQ0ODE2OGU2NzY1OGQ5MzU5NmI3NDI2NzBlZDdjODgwNGJkM2U3MzBkMzRhODBjYTFmYjRhZDI0NzFlZTIyNDYxYmJkYTY3MDMzN2Q2NzVhMTc3MjFhYzYzYzM3OTMxNTM4MzBhMjZiMTg3MWIzMTZhM2UxMGU0OWM1NTVmNDQ3MTk1NzciOiIiOiIzOTBjNTNhNWVjMWRiNTI5OTZlYjA0MmY5YTc2ZTQ1ZjBiY2E3NmVmNmVhMzFiNDY0MmYwMDY1ODM0MmU2MDFkIjoiYjU0MzZlODgwYzE1ZjAzYzNiYjg0NmQ5MGYzZWU1ZmM1YmY1MzkzODY1YTExMmE0MzE3ZDcyNDczOGY1ZGQyNSI6ImQxOTNmOTMyYWY4NTg2OThhYjA4NmJkYTM2ZDA0ZGZkYmZhZjQ4N2ZhZTQyOThiMzhmZWY5N2JjY2RmNjNmMzgiOiJiZGY5ZTFiYTFmYmFmZGI4ZjQ2MjgwOThhZWZhZTQ4MTBlZTdmZDU2NWQwZDI4NWRkYzM4NDBmOGUyNGE5OTg1YzJkZTU3ZWRmNWE1MTEwNzliYTZjOTUyYzk1YzYyNmUyOTZmZDYyZjM1NzlhZDAzZGI1MzYyMzhmZTY5MTU4MzE3YzljMjZkMzczODE2MzQzNTA1YzYwYTQ4ZTA3YTAwZWRmZjhmYmZlZjBjZTY5ZWQxNzZlNTQ4NGQwNTZhZjAyYTI3MGJiNmZjZTdiYWUwYjIyM2JmZDk4YWQzNTlkNTNiMTU5ZjMyOTViZTNmZDYzMGE1NjhkMjM2MzEyMWM3MDIxZWMyM2IxNDY5M2JlNDhmNWI1NWUwNmJlM2Q3MjljMmE4MDk0ODE5NGIxMjY2ZGE5NjMxN2JjNTkyMzYyODA5NDA5YTc2NjZkNWMxNjgxMjViOTlkZTI2ZGE3NDFmMTdjYTUyZDYzNjg1ZWU4ZDgyNjBkNDU3NjRmYzc4ZWEiCiAKIEhNQUNfRFJCRyBOSVNUIENBVlMgMTQuMyBQUiBGYWxzZSAoU0hBLTM4NCwgMCwgMjU2KSAjOQotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEzODQKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8zODQKIGhtYWNfZHJiZ19ub3ByOk1CRURUTFNfTURfU0hBMzg0OiI0NTdlNDlhNzFkYTgxYTJhMDhiYjE5Yjk3YmE4ZTYyYWU0YjVhZDRhZTY0ZGFmNzU4YTgzYTc1NTA2ZjkyNTExNDliMmJkNzE4MGY2OWI5MjE3MzQ2ZjgxNjViN2NkOGYxMDBlMGIxMDY2ZTI4NzdmNWU1ZGEyMWIwMzdjMmJiZjE3ODYxMWRhZTYyN2Q5YmVhZWU2NGE5ZDAxODY0NjJhIjoiIjoiYzMxODFmNjk0Njk1YzIxNDA1NTg4ZjYwMGFjMzM4NzFiNTE5ZTJiOGUzYjg3NjQyNGIzMjc1M2RhNDgzZDZlYyI6IjY4ZTcxNzQxMGY5OWFlMTM3MTIxNzVlNDAyYjUxMDU4Yjc2MjViN2RhMjcyMjQ0MTRiNDcyZjk2MjJkMTYzZDUiOiJmMmNmMTNkMDVlODUzYTEzZWQ0N2M1ZDBlZWI5YzA0MTY2ODgwNTAzNDJmMGQzNDVhYzFiYjIxZDVhZTY3NWZlIjoiZmMyM2FhZDAyODcwODg1Mzk0Y2E4MzFiNzIyMDFkNzZjZjczNmYwOGY2MTMyYjEyMTc4ZThlM2IwMTZmZWY4ZDNiYmI4NDllNWQ5MzVhYjczMjA1NGNhNzAxMTU0ZTdkM2U4N2QxYjUxYjczOTJjY2ZhYTE5YzRhZDI4NjM4YzY3YmQxNDlmZjY3YTkzYzA5ZWUxZmE1YzJlZjdiZjlkNDA4NDRiYWFlNzkxNjllNTJlOTk5MGM5M2YwOTllMDM2YjYzYjAwMGZiOGVhNjdhMTMxNjdiMDQ1YzhmOTE2MzA0NWJlYWJlMDU3NWZlZjAwYjg5ZmQ5MDM5MGIwMTI0OTYxNjk4ZjRhZDg4ODRhMWUxZmFmNTc2ZGU3YTE3OWMwMzIyMTQwMjI3OWIzMWM5MzEzNmI5NDM2ZjlhMDdiNWE2N2IxYzE5OWU3YzZjYmQwYjVmNTNlZTViZDBlZjg0NTI0MzA3N2M2ZWRhMGUwMjFhYzkyMTlmNmRiNWFkNTAzIgogCiBITUFDX0RSQkcgTklTVCBDQVZTIDE0LjMgUFIgRmFsc2UgKFNIQS0zODQsIDAsIDI1NikgIzEwCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTM4NAorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzM4NAogaG1hY19kcmJnX25vcHI6TUJFRFRMU19NRF9TSEEzODQ6Ijc5ZTk2Y2M4ZTc3ZDhmZTcyY2Q2YzY2YmVjYjUyNzUzY2VhMjhiZjcxNjgwZmE1NDFmMzQ1YjgzYmU3OTk3M2RiNDA4MTIwMWJmMjNjOTRkMTgyOGU5Y2ExZTgyNWFjMThhZWRjNWNlYjg3YTRjMWIwYzMzM2M4OGQ5N2UwZjEyZDYxYjMzOGU1YWNlNWUxNWY3MTI4M2QzMWExZWE5MGYiOiIiOiI0MzA0Y2NiMjY2NmIyMjdjOTJlMmIwMDY1OWNlMGIzNGRiYjUzNDUxNTkxZTMyOTE0YTYwZDZlNmNiYmJmZGQ2IjoiZDZlNzQ3NzdjMDIyNTJiMDYxMzM1N2I5YTU4MmY0ZDhjZDdlNDM2ZGFmMTY3NGE2NjM1NjFiNjJkOGVlNzE0MyI6IjBkZTEyMzg5N2Q1ZjA5MGI1MmRiODhlNGMwZjlmZTczNmNjZjI3YzEzNGIwZjVlYWM2MWIyMDBkMTVlMDc5ODYiOiI1NWEzNjlkMTM2ZTJkOTAzYzE3OTQ3MmVlYmZjNDVhZTIzNjk5NDY2OWM0NmNkMzE4NDAxYmM2NjJmMzhhMWY3MTRmNzhhYzlmMTVjODE5ZDJiZDg3NmE3YWY1MWU2Y2FlY2ZmM2M2NTBhM2U2NjFlNWQxMzdhMzU0Y2IxNmFlZDViMTU1NDU0NWJkZTA4YzEwYmFhYTViY2UyMjI4NDA4M2I0M2E2ZGQ5OTQxYTM3ZjFhMTg5MjljZWQ2MTE4MWMxMzdlOWUzOGM3OWQxMDc0NjVhNWExMmYyYTJmMzc3ODhjOGUzOThhYzQ4YjJiZTk0NGQ2ZGQzNTYyYzA1OTIyYzI1NTY5YzI2YTEyMDNmZGQyNDQ5MjBlNmMyNjgwMjhkYmNmNjgwN2MwNWJiZjE1NTk5Njk5ODE0NjdhNDc5ZDcxMTdhOTFmMjEwMTE4YzExNTk3NDlhMWRiY2U0ZDhhMGQ1ZjJmODIzMmM1MTUyY2JhYTY0NDE4NjVhYzNhODgiCiAKIEhNQUNfRFJCRyBOSVNUIENBVlMgMTQuMyBQUiBGYWxzZSAoU0hBLTM4NCwgMCwgMjU2KSAjMTEKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMzg0CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMzg0CiBobWFjX2RyYmdfbm9wcjpNQkVEVExTX01EX1NIQTM4NDoiYjM3MTgwODc0ZGQ0YTdlMDhiMTI1Njk2NmVkNTg0NTAwMWIwNzczYjUxMzY5NTZkY2E3MTk0Y2QxMmE5ZDllMWYxZGQzNTUzNGY1NzkzMDdkZTExYzFlNjQ4NzVlOTM3NzA4MWRlMzA5NWQ4M2NlZDBlYTNkZjJlZThkNWJlNGRhZWU1NDViNDMxZGM5MDhiYzEwZWZjMDRkYjE2YWI0ZSI6IiI6ImQzYzhhYTg4Y2M4ZDViNTlhZjM2ODUxNzdjZjM4MjZjZDY3NTg1NGRlZGRjYjliNTAxYzQwYzQyODhjZDljZGYiOiI2NzgzZjViZDg2ZmUxNzhlNmE0ZDMwMzM0MjM3NGVkMzI4NTM5MjVmMTQzYTVhZDA4M2MwNGE5YzI5OGZlYjk5IjoiNDc3NGU1ZDA2MmVkYTA0YjY4MGQ3MTdmNjUyZDg3YmY1Y2Y2MzVmNTk3Mjg3Yjc2ZmMzNWUyZDVjZTU5M2QwOCI6ImU0NzhkNDVmZDNlYjZmNGMzOThhMGVjODRmOTNlYTY4NjFmMDA2NjY3NTNjMTQzNTA2YzVlNDE3MTAwMDc3ZTJjNGM5ZWNlNDUwZDk4YzkzNzJkNjhhZWZmZTllNTdlZjkxNzZkNDA4NGY5YzZkMDI0NzliNTE2OTQyZGQ0NzkyYTkwZmZlMWU0ZTQ5YTgxNTZiZGQ4NzJmMWYwNWZhY2MwNmU3MWU1ODFmOTE5Y2Q5NGZiOTcyMDg1MTViYTI4NGZjZDI1NWVhNmYxZDFlYmI3ZDM1MWUxY2VlYTFjZGVlNjMxMDcyZDNmYzNmNGVmOWQ1ZmM1N2E5Y2E5OGM4OGI4MTAwM2Q4NThjYjViZTBhMzUyMGMzNGU1MmQzYmVlYWRmOTEzODhlYzlhNDk1YjFmYzdmZjdhNjc5OWFiMGFmMjExYWJmNTJjMTU0NjcyNzRjMDRiZDEwNGRmMTQwMzNkZjAwMGQ4NjI0YWNkMjUzYTZjOTU0YzBkODliNzIzOCIKIAogSE1BQ19EUkJHIE5JU1QgQ0FWUyAxNC4zIFBSIEZhbHNlIChTSEEtMzg0LCAwLCAyNTYpICMxMgotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEzODQKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8zODQKIGhtYWNfZHJiZ19ub3ByOk1CRURUTFNfTURfU0hBMzg0OiIyNzc5ZjIwYzAyZDA4NmQzMGQ1M2RiZDZlNzM5NmEzNWU2NzcyMTQ2NTBlMzlmMmFlODMwNzdmYWQ3MGMwNjgwMDVmYWVmMzQ3ZTdmNzNlZmI1M2E5MmYwNjI5ZTAxMmM3ZTEyNDZkMDdiNGUxYmVhNzAwOGRkOGVjYzc1NDZlM2YwYTZlMGU5NTBlMDgzMzczZmRlM2ZkOTk0ZTExNGE0IjoiIjoiNTVlZGI4NDBiODViMzkxZDRmMTk0MGJlNTJhM2UzODI0MTE5MzQ5Yzc4MDgxMWM1NzBkMmM4OGRiZWZjZWExNiI6ImU4M2VmNTZmMDlmODJhZjRkZDkxYTBiODg3ZDNmMTgyZGNjZDk3MzQzNWI3NGI3YjNjNDMyYjM5YTYxZmU3MjAiOiJlYjlmMzBmMjg4NmQwNDg2YzUyNDBmNDMxMDRlNDI2YjM2YWFlMDAwNmM0YjljNjRkYWIxYmI3MTNiY2VmN2UzIjoiNjhjM2ZlZGEwNjE3MmExOTExODRlMGJiNzdhOGYzYzkwOTYwNDhiZjcxZWQ5NWIyMGNiYTFiMTcyNjY2MDkwMGQ3ZDlmOTdiN2FjNjQ4Yzc2YjUwYjkyMWMyOGVlZTNkNDAxYmE4MWM4YTQ2ZmFiZjgyMzAxZmRhOGZmZTlkNzZiZDkzY2IyNzU2MzhmN2MyMDg4Y2ZkZTg4NjIwNjYxZWI4NDRjZjk1M2NjMTQxYjMxZTk0NjMzOGEwMjAzYzhhZTY3YzJhZjEzMzBhNTMyNTE4MThhZWJlZjg5MzAxMGYxNmE1MTlmY2YyMjA2MGE5YWE5YzU5N2YzNDA5NDY1Y2YzYzljY2Y3NTNkYjhjMGJkM2I0NjViMDI4YWRmYzQ0N2UzN2I1MTI5YzE3YWU5ZThiZDAxZjc2MjY2MmM0NjY0OTFmZTU3Mzg0ODI1YzE2M2FiOGEyNmQ2N2VmZGRhMDFiMDUzYzE5ZDNiYzY1NDVjMzY2MWYyYWQxZGYxZTMzIgogCiBITUFDX0RSQkcgTklTVCBDQVZTIDE0LjMgUFIgRmFsc2UgKFNIQS0zODQsIDAsIDI1NikgIzEzCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTM4NAorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzM4NAogaG1hY19kcmJnX25vcHI6TUJFRFRMU19NRF9TSEEzODQ6IjcxYzlmYjJlYjhjY2E5ODg2MGY5NTVhOGJiMzY2OWM3MGI2ZjUzNzQyNTZkYTIzZmNiYzRmZmMyZTkwYmMwYTA0M2I4ZWNiZjFjYjBjN2I2NWEyY2I3YTQ3MjExNTQxZjI2NzU1MTIxMzg5NjRkMGRiODA3NDcyNzE1OGJmYjRmMGQzYzA5M2YxZTJjMmJmNjk3YTQ4YzJlYmQyNzE1M2IiOiIiOiIxM2IxZDU1MmUyYzhjODRmNjY5NjFhYzhjOTE5MTY2YTI0OGJjNjJmYjg5NmNmZjBiOGIwMDFjZDdlMTQ3YmQ3IjoiMjdkNjI2MTIxZWY1NzlkOTk2OTgwOTc2MmM3NzA2OGU0NTczYWY0NGI2ZTk0N2EyODkyMzM3YTExNDA0YzEzMyI6IjQ1NmVhMjA2YzM4NjYyNzUwYWYzOWFlZDVmZTBhMzk3NjBmNGRhYzg1YjgzZDdjY2JjMzM1ZjUzYTE2MGEwYzkiOiI0NjRhZWU4YWY0MmFlNjhlZTc3Njc4MDExMzgwNWNhZGUyNDZiODNhNjk4YzM0YmY0YzkyZTVkODFmMjg4MjllY2RiODA4ODg0YmM3ZDc4NDM5N2YyYjJmOGM3NmEyZTM1MTdiNTNiY2RjNzI1N2Y0NGVjOTM1N2QwMTRhZjRlOGRkYjQ0ZGY5OGRhNzI3NzU1NjczNTZmMzYzZmI4NTg4NWY4ZjIyNTA1ZTViNWE4MGM4MjRiNGEwYmM0ODAyOWUzNDE5ZDNkMmYxNjFiMTQ2OWNlYWQ3MzBjYjEyM2NhODM4N2EyYzgyNzY2MzVhOTFkMGRjYjIyMjA3OTdhZTI3MDI0Njg1ODdhYzNhNzBiOTI3NjI1ZjNhNmUyOTgwZDZmYWU2ZmRkZjRiMzgwY2EwZDkxZWI0YWVlMzdiOTg2NDRiZGVhYzM0NWY0OTUyM2EyNDFjYTM5Mjk3MmRhMDJkNzAzNjRmOTQwMWMyMWZjZjM5ZWVhZjQxNGEwOWZkZmUiCiAKIEhNQUNfRFJCRyBOSVNUIENBVlMgMTQuMyBQUiBGYWxzZSAoU0hBLTM4NCwgMCwgMjU2KSAjMTQKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMzg0CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMzg0CiBobWFjX2RyYmdfbm9wcjpNQkVEVExTX01EX1NIQTM4NDoiYzllNTRiY2ViYmJkZjQ0MDUxZTgwYjkxY2QxMGM4N2RjMjQyNjc5MjMzNTBiNjc3MDQwNjU1MWE1MDY5ZWEyMjU1MjAxZjNmMTViYzNhMmU0Y2FhZjBiNDU1MTBmMTlkYjI5OWE0MWRiOGQ1NmNlOTkzYWRlNDQzMjNjNDU1ZmIxYTNmNTA0MTI0YzM1YTllOTA3ZDk3NjVlODEwYzkzOSI6IiI6IjI4MTliM2VlMjc5ZDU3MTQ1ZWExMDIwZWJjNzdjNDYwMzFkNjk1MjRhODQzMTU4MTkyZTA4MWYyYWM5MTUxMmIiOiIyNjlhYzg1M2NjZDMzMmZlZjYxMzMwYWY3ZTgwYTMzNzkxZWM0NGI2Y2JiODMwMDZlNWNhMDY3MDU5N2IzNWIxIjoiZmRmMDMxYjFlMGE4MDE2YmRmNmE2ZWJiNTMzZGRkYWFlMWEzYTViMTRiOWNmNTJhMWE4MDI4Y2M3MjBiMTBjNCI6ImExYzRjMWQ2ZTcyZGFlNWU0NzE0YmRkZjRhMWNiOGQwMWNmZjhhMzk3M2IxMjAyMjAxMTI3MGMwZGU3Y2ViODVmZmI2YTZhZWRmYTU0ZDA1MjFmZjMzZDc0OGZkZWY4ZjI5YzUyYzdjNDE0ZTY5MmEzMGRmZDAwMTM3NzZiNThmNTg0MjE2MDUzNjljODNkNGQ4OTFhMTljNzgyYTJkMDM2Zjk2MzhhYmE5ZTI0YjBlYWNkZWU4N2Q0YTgwMTE2OTliNjM4YzI4N2YwYTEyZjExZWRlODZhOTQ2YmU5YzAwZDIxYTMxNTg0YTJhMGRhNTM2ZGNiZjg2ZTJkZjYzYmU5YTdiNzcxOTk5YzljN2E2Yjc0OGRlNzEzYjdkYTc1N2RlMmQ3MzFhOGQ5ODBiNzUxMzZiMGZkYzc1Y2E3YWVmNDdjZDM2YmI5MzcwYzVjYTBlZjgxYjlhMDRmZGM3ODY5ODcyMGY2OGU1ZDU0ZTFhNzc3ZTU1N2ExZGZiNGMyMiIKIAogSE1BQ19EUkJHIE5JU1QgQ0FWUyAxNC4zIFBSIEZhbHNlIChTSEEtMzg0LCAyNTYsIDApICMwCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTM4NAorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzM4NAogaG1hY19kcmJnX25vcHI6TUJFRFRMU19NRF9TSEEzODQ6IjRkOTVmMzFiOTYwNmE1ZjZkMDRkZmYxZDg5YjUwYmVjZmQwODgyZTZjZjUxYzFjNWQyNGFkODQzYmMxMmQ5NzdlYmE0NTgyYzM5ZDc5M2E2M2VhZGI2M2YyOTI1NjhjN2ZjNDI3MGU2YzlhZWM4MzE4NmEyMDgxOWE3ZDM1ZTdmMTE1NWVhMTA4Nzk0MzAyZDU5M2M1M2NlOWQyNTQyMmIiOiI0M2JmNmYzMmIzYjVmNTgwYjU0MTc5ZTQxMDJkMDYzNTM2ZTdjNDc2ODFkNmRlM2NmZTg4ZmQ4ZWM2NmU0ODczIjoiIjoiIjoiIjoiZTk5MWQwMDBiMjRlYmRmODM4YmExMWY5ODQ5NTkxYjAwMjlmZWZmMzM2MDRiYzRkNzFhY2Q5NDMwMWY4ZDA0NWVlYjFmODFmM2ExMDFhMjk3NDAzYTM1ODU5MTEzYzA5OTkzOTYzODY4MGQ0ODFjODYwNjdmNTQ3NjI4OTJmODIxNDZmNjFjY2U3YmMyYzg1ZDM5NTM0OGYzZWEyYWJhNmJiM2U1OWRiY2Y4ZTQxYTgxOTE4YjZjYWIzMDRkNDRlYTFlMzI1NzNjZDY5MzZmMzhjZGMxMWQzYzJmOTYyOTBjYzI3YjBkZmEzYmJiYWZhOTM5NGFjZGYyZjQ0MzUxNzBiNDI4NTYzNDI3YzRiMDJlZDI1OTI0MjI2ZWRmOGQ1YTVlY2E0ZWVjNGFlY2Y5OGVmMmU2Zjc1Y2FhNzBiZGQ4NDg3N2RmMmU2MzdiN2ZhZDYyMWM2MTcwY2E1YmQ4NmUyMWQwYmIwMWNjOTBmZTJlNzYzNTNhOWQ1Njg3YmVhIgogCiBITUFDX0RSQkcgTklTVCBDQVZTIDE0LjMgUFIgRmFsc2UgKFNIQS0zODQsIDI1NiwgMCkgIzEKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMzg0CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMzg0CiBobWFjX2RyYmdfbm9wcjpNQkVEVExTX01EX1NIQTM4NDoiMTM3ODQ0M2RmZWMzYzAzZDM2YjE2YmFjYzQ4MGVkZmNiMWE0YTUwOWMxN2NmNGIzNTc4N2RhZTNiYzkxYWRlNmMxMTNhMWUwZGY5MjdhNDQ0OWZmOWUyZjRmMWNkOWEyN2IwN2Y1N2NjZDY3NzdmNmQ2YmJmYzk2NTVmMDY3NmQ3YjRmOTE3MTJlZmQ0MzMxNWJlN2M3ZjMwZTUxZGE4OSI6ImY2N2NkMzVhZmJjOTY3NTY0OTljNjhhNWVhMTk5OTFjZDFhZDQ4ODBmZGMxM2FmYWE4MTc2MDhhMTQxZTk2NDYiOiIiOiIiOiIiOiJiMzJkOTgzOGIzZjQ1ZTNjNGIzZWRlMTE4MWJmMGFhZGFiOTZkMjI3OTBkODUzNmY1OTEzZmU5NWMzZWMwMTc5ZGQxYzdhZTY5NDMwYmM4YzY4ZjRmMzAxMDUxOTliNzg1YTExYWRmN2FiZWMwMDdkMThhYmNlZTJlNjVkZjVhMjExYWRmZGEzNWZlZDhiOTM4OWE2MWQyZmFkMzNmZTAyMDExOWU3MmM3ODJhMzE2ZjE3ZjhhNTg4MjM5NTY3MzE1YmRhNDYxZjVmNDUxOGExYWVjZTRkMGFlMDI4YzE1M2Q2N2E4ZDRjZTYyMGU1NzFmYWEwNDAzYzU2YmNhYTg2NDgyMmU0ZDhhZTZkMTRmZWFmZWZjY2JlODc5Y2U0YmFlY2E3MGQ0MzYyMThlMGViM2E2MmJmMTVjMDE4ZmQ0Y2Y2NmE1MGUzZDlkN2NjOWU0NzQ0ZTI5ZTljOTQ1ZWFiZjAzYTZhMmM0Y2E1N2U1ODJiNjA5MTQ0MTdkYTU3ZjYiCiAKIEhNQUNfRFJCRyBOSVNUIENBVlMgMTQuMyBQUiBGYWxzZSAoU0hBLTM4NCwgMjU2LCAwKSAjMgotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEzODQKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8zODQKIGhtYWNfZHJiZ19ub3ByOk1CRURUTFNfTURfU0hBMzg0OiI2OWU5Mzk2YzU4ZWQ4NjdlYjUyZmNkMDQ2NTA0OTIyZTJlOWE5YjA1OTIzNGNkZDNmMGEwOWVlZTlmZGZkNDVkZWRmNWQzODYwYjI1MTE1ZjhhM2QwZTJmM2Y1NDM4OTBhMjNhNWFhMjc4ZjgzNjU3Nzk1Njk0NGEwOThkMThmMDU5MDBkMWIwNzZkMzBlYTc0NWJlNzQ1YjllZmMwZGNjIjoiMWI2ZTFiYjYxM2QxOTlhNWU2ZjFiNWMyZWQwNDFjZjZmNjYzM2UyZWY0ZDUwZWNhZDg5YjI4MTAyYmY3MDU1NCI6IiI6IiI6IiI6ImVlMDlmN2IyNGNkYzZiNTFhODIxMmNhMDA2MTM2MzNjMWE1ZjA0NGZhOTIxYmVjMzFiYWY2NzlmNWJhNjZiZmQ3MjM3MjFhMDNlMGYyNjBhNDRhZDVjYzRjNTgwMDgwNjY3YTc4MTQyN2EzNGMzZDJmZGZhY2ViNGIwNDBlZTY3NTQ5MWM0ZGQwYzBkMTNhYmJlODEzMzYzODQ4MDZlMzdmMjcyOWU3ZmQwODBmZDU3MDExYjU0YjY2NGQ1ODUzNGM4MzFjOTBkMTgyZDRkOTU1Njc2OTM4ZDQ4NDA4N2IwMDg2ZDJiZjI3MzdhOTEyYWZiNjYxMDE1NzVjYTJiYzVhY2Y4NDVmNDk3MGJiMWNlNDQ0MWViNjY3ZDUwOTYzMTlkNjI4MjcxNGE4YTk3MDhlZjk5NjRjYWRmNTk2YWMzZTdiMWJhMThmZGVjN2UyZTIyZjVlNjM1MmU4MjVlOTY1YTQ5NGNiODgwYWFlNzg0NzdhYTNiY2JhOTQyODEwNyIKIAogSE1BQ19EUkJHIE5JU1QgQ0FWUyAxNC4zIFBSIEZhbHNlIChTSEEtMzg0LCAyNTYsIDApICMzCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTM4NAorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzM4NAogaG1hY19kcmJnX25vcHI6TUJFRFRMU19NRF9TSEEzODQ6ImQyZjM5MGZkZTBiNTBlYTRhZmU2YmFmMjlhNzVlNjk4ZmIwMjc1YzA0YzQ4MWRmMDM5MTBkMjM4ZjRlNzJjNmY2M2E2MjMxZGY4OTEyM2MyZGJlY2ZlMGNiMDMxM2RiMzQyODhmNDE0MzY5NGNlMmRmMjQ4NGQyMDg4NGRiY2EwOTdlMzVjM2ZkOGRkZWU1MjczYjUzYzExNDliZjUwNzAiOiIyYmMzOGQ4NTJkMWRkZWUyZTg5YjcxNzQwMzJkOTZjMGI5N2Y5NTVlMTZiYzYxNzE2YzVjNjQyNDhlYjYyMzJmIjoiIjoiIjoiIjoiZTYyMzQ2YzcyZWYzOTNhMjkwNGU5ODIxNTg5OTJkZjRjY2FiMDMxNDJjNDFkOGQyOWMxNDU0Nzk0OTI2YzQ4NTcwZWVmMzRiZDAyMWQ0NGNjOTEwNjQwMWU5Y2JjZTZkZGJiNmM5MjI1N2U4OWE3ODc0OTlkN2Y3YTJkZDUyNzgzMzMwN2UwMmY0NDY0NWRkYmNiMTMwM2YxZGE5NTM4MmM4OTgwNWM3NmEyZjEyZWIxM2QyYjAyMDViN2VjMGVmMjFmNTk2Yzk4YWY2MDhhMmYyYTJjNWUzNTM0ZTAxYTIzYmEyNWJkNWZjYmEwNDgxNDgyZTFlYzgxMzhmYjFjODY4NDAwNjA5MTlkNzYyMGNiN2I4NzlkMTA5NmY2NGFlY2FlMWVhMDg1YTc5M2E5ZjRkZDY2NTQ0OWNlNzNjYjMwMzZkZDVmMmE0OTEzOGNlODhjNDYxYTBhOWUyZjBjMWZiODMzOGY1ZWVhNTNhYjBhMGNhOGE4ZGY5YzMxNWM0IgogCiBITUFDX0RSQkcgTklTVCBDQVZTIDE0LjMgUFIgRmFsc2UgKFNIQS0zODQsIDI1NiwgMCkgIzQKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMzg0CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMzg0CiBobWFjX2RyYmdfbm9wcjpNQkVEVExTX01EX1NIQTM4NDoiMGNmODZmZmExNDU2YzQ1M2I1MzMwNTM1M2NlNDNhZDNiYTQ0ZWJmNGM2OTQzY2RlODYxM2NkYzQxN2VlOWY2ZTc1OWMwYmY0Njc2ZjFlYmQwNWM1MTllYjg0ZGZjZDNlMzc5Y2U2MTAxNmU0OGNjY2RlMjQ3NTM4NzhmN2Q4ZmQ1ZGE3MjUxODI1M2IyZjgzNmYzMmU1YjU5NGQ1NGFkNiI6IjA4OGM5MTdmODQ2Nzk2NDFmNDkxYWFmMTA1ZWVhMGYwMmQwYThhZTBiN2FkZDY5NjQ1ZDFlZjMwNGM3NGI0MTciOiIiOiIiOiIiOiI3OWU3MWQ5YTk3NGNiODhkOTAyMmQzNTk5NzAzMmJiNWZiZjhmMGRhZmY0MTE0NjcyMTc4MzdhODM2YWE0NGM0OTNmODY4YTMzM2QxZWJmNjY2ODk4OTViNTNjOWUwMWQ1ODAxOWRkMWRhMjM1NGZiOTY2Yzg4ZDJkNmFkYmU2NmFjMGI4OTAxNTk1YTI0ZGRkYmE2MDk0NzhlYzM2ZTQ5N2Y2ZmI2YjRiY2FhODhiMWU5YTljODcwODhmNjY2MTE0NDZlOGMyODczZTg5ZWUxMDA2YjZkOTJkMmVhYzU0NzE0ZmM2NDgxZTc3ODJiMzhlZDRiMThkNWY5NzE0YWU2YTU0NDExMGNiNjA2M2M4YTk5NjRjNTJhNzAyNmY1MmFmNDQ4NzgzYzM0MjcwOTJlMDMzOWVmZDdkMWE4NTIyODQ4YTJmYWE4YWExOWMyMTM2M2E1Mzc3NjZjMDU1MDVjYjk3OTI2OWM3M2VlOTA2NzlmZWFlZjhkZjEzYjY1MDYiCiAKIEhNQUNfRFJCRyBOSVNUIENBVlMgMTQuMyBQUiBGYWxzZSAoU0hBLTM4NCwgMjU2LCAwKSAjNQotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEzODQKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8zODQKIGhtYWNfZHJiZ19ub3ByOk1CRURUTFNfTURfU0hBMzg0OiI3MTc5YzQzNGJmZmEzNzdkOWI2ODIxZGE5NTcxNjY3YzhiOTYyMTk2ZjdkOGFhZDA2MmU3NWI2MDkxYTM0YTQ1NGU4ZjRkMTRhNjBmYjUyNTNhZTM3M2NmNTBlZGNhOTNiOGQyZWIyMDc1MDc2ZWM4YzdhNDJiN2FkYmU3NzIzYTZiYThiNTFhNTVmYWRiMTZmYzNhNmZlOWRhMDIwNDgyIjoiYmMxYzM5ZTY0NmFmYzFiYjYyNjg1Yjc0NjAwNzE0ODQ5NDIwOWE0MTliNzMzZTkzOGMxYTVkMDJlMjM1MDg2MCI6IiI6IiI6IiI6IjMwOTNhMmUxZjUwMmQ0NGQ4YmU0ZjM1YjM4Njc3NDE2MmYwZTEwODcwZjljZDM0ZTNiOWQ0ZTc3YzdlYzdjZDEwY2RmYTBiZjgyMjhiZTk2Y2I1NzQxZjA2OTQ0MGE2YjZmOWVjMTU1ZDg4YmE2NmI3ZmE4NDk1OWM1M2QzNTc0YmYxY2Y5ZjE1NjEwMDZjNzc2MjIzYjg4MWRkMzk2ZTllOTgzMGFmMmMxYjVmNzQ1N2ZjNDVlODIzYjQxMWM1YzJiYTNiMTEyMTlhZWZlNTUwOGY3NWNiZGI1ZTQwZWRmNmIxZjYxNDUzNTQxYWM5OGRhZDllZDUwMmJmMWE4YWZhNzk2MDQyNjFjN2E4OWU3OGNmMjk0MWQ1MjBlMGMxMGJlZDE4ODIwZGE2YzIzYTVlZDFjMGRmZmJiMDRjZGNjOWMzMjg0ZDQwMDY0NGU5MzY1Yzk5NWQ4Yzk5ZWViZjQ0NGYyY2IwNTFiYjYyZjIzMTMwMWQzMWVhODE1YzMzOCIKIAogSE1BQ19EUkJHIE5JU1QgQ0FWUyAxNC4zIFBSIEZhbHNlIChTSEEtMzg0LCAyNTYsIDApICM2Ci1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTM4NAorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzM4NAogaG1hY19kcmJnX25vcHI6TUJFRFRMU19NRF9TSEEzODQ6ImIwNjMzMzMxMjhhNmFiNGY0MzNmMTUxYWU4YWVjNDI4M2FiNmQxY2JmNGE2OTQ0Nzg1MGZhMWEyNTkzMGVjMGY0MjA0ZGE1Mjc1MmE5YmRjNzg4YzVjZWU2ZDhiOTJlMWI4NTMwZGJlMGM4MWIxZDM0MDM3ZWU1M2YyMDc1OGQ1NzUwZDk4NjNlZDYwYzc2MmFlMmE4YjRjOTczYWNjMjIiOiIwNjc3MDhiMjRkZjdhMzQ4MTE5OTNkNWM2NWQ1MzQ4ZWVhNzNlNmM2NjgwMjkzYWZhYjU4MDRiNDMyOGU3YTk2IjoiIjoiIjoiIjoiNWY3NGExZDE5OWYzMGZhMjJmMjAyMGJhZjAzNmZjNjFiMWNjMmFjYWE4MGI0OGRkZmYxY2Y4NWZlNWRkMjAwYTlhZmJkOGJjNTFkZDE4Mjk2MzZmYTMzNTY2MGYzNmQ1ZDJhNTE2ZTRjMzhlOGVmMGMzY2FkOTc5ZTc5ZTdlMjI2YjgyMDYzNGVmMWQ3NmFlODFiYzNlMzgwNzkxM2ViMDczMWIyZTk1OWM0M2FmYTgzZmViMWQ4ZGEzMWRjZGNiM2RjM2E0Y2Y4ZjQ1NGM0ZWM0MWJiYzgyMmU1ODAyM2YwZDc5N2M4NDRiZDhmMjAwMzRiMzFkOTk1NzliZmYxNDJjZjUzZDI2NTFkN2EzMWIyMTJkMmI5ZDU3MDViMDQ4ODYwZDZjNGUzZjQ1ZWYxYmYyZDVlNDY0MzNmZWM1OTNiOWY2OGJlOGIxZTkyOGVhMDRkZGM0Y2UyZmNlY2I3MzdiYjhmOWQwNTRjMmJhNTA2MGZhZTVlNWZjMjFhNjUwIgogCiBITUFDX0RSQkcgTklTVCBDQVZTIDE0LjMgUFIgRmFsc2UgKFNIQS0zODQsIDI1NiwgMCkgIzcKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMzg0CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMzg0CiBobWFjX2RyYmdfbm9wcjpNQkVEVExTX01EX1NIQTM4NDoiZTIzZmEwYzg2YzhhN2I5OWJhMGQzZWMzY2E0NzM0OWE1Nzc5OGMwNzU4N2I2NjZjYzRhZTFjOWVmZjgzYjhjYmZmYjQ5ZDE5MTBiZjA1ZGIzYzdkMGRiN2UyNzI4NWFlOWY2YjQ0MTFkODQzNjRiMjdhNjYzOThmNWIwYTg5N2VlMjA4NTUyNmQzYWM0ZjY1ZTcwODAwMDY3ZDU3YTUxZSI6IjdmZmRlZjIxNjgzYTc1NDg0ZjZhYzMwNDgwMWMyMTNkYzhjYjdlM2NmMGY5NGMzNThhMmUxY2NjOTk2OWU4MzQiOiIiOiIiOiIiOiJmOTUyOTU2Y2I4YzUyOGVmZTJjODMxYzY3YjY5ZThhYTdlNzljMDEzMTYxNDk3YjljNTU0MTVmZDQwYzdmYWU3NzhhNmZhODIxMDlhNDBkZDcyZmIyZjRkOTJlMWNiYzQ3ZjUyZDA1NTQ4NWM5OWQ4OTNmYmVhMWNmMjhkYWIzNWJlMWYxNjI0OTRjYjc5ZWE0NWM0NGE2M2ExNjg1MjE3Y2QzNzMzZGNmYTg4YmI2ZGU2NWM2OGYyMzkwZTQ3OWMwZmNjNmIzOThkYzU0OThhYzkzMDAyZTdlN2YzNjA1MzVkMDgyYzhlNDYzODY2MTEwNzU2NjUwNjA4NDVjNGY4YmRlZTM4YzIzZDJmOTBkMmIxZDc4MjE3ZTg2NWVjZmI2ZGYwMjQ5OGRiODM3ZmU1ODFjNDMzODJjZDFkM2E1MDhiNmRjMDUyZWY3YzRkMjAzNDk2NzlkYjhkOGJmOGRlZGQ3NjNkYThlNWRmNzc1ZDEzMzk3MGJlMDYyYTljZWQiCiAKIEhNQUNfRFJCRyBOSVNUIENBVlMgMTQuMyBQUiBGYWxzZSAoU0hBLTM4NCwgMjU2LCAwKSAjOAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEzODQKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8zODQKIGhtYWNfZHJiZ19ub3ByOk1CRURUTFNfTURfU0hBMzg0OiI0ODg5MDEzMzMzY2QxZTJiM2I4YzQzNjViZGU2OTBiNjZlMDZiY2NjYmVhMjVmMDQxMzJhMDk2MmYxM2E3ZDQ1OGU4MjNmNWVjMGVhMDkxYTA3MDY1NTkzY2E0NGZlNDk2MTE2MDJkMTY1YTM1YWFjYjM1MjIwNjg0NGFjZGY0MWRjMmM4OGI2M2IzNjkxMmFlODE4NzViZmQzZTA5OGUzIjoiYjQ3NjFkODJhOTNlMTdkOGEwYTQ2MWVjODIwNTkzMmVkZjIxODE1NzQ1OWEyNWE3ZjI2Y2VkZGI1OTk5MjE5MiI6IiI6IiI6IiI6IjcyYWEzNjAxOTg2ZTZjOTcwYjhjMjI1MzExOGI4MzgxMjY0NTc3ZTM5MWU0OGJkZGZmMGNjZWViNTEwMTk3NTM5MWEyYzczMWY1NjExMzE2YjI1NWMyYTZjMDU1NGVkNmNiZjhhY2JiY2Q4NjA5ZTNmOTljM2NlYzM4YWEwNjBlZWRiODYzNTYzNDQyYjdiZWI3OGYzNTIyMTczNmM2MDhhOTMzYWViMGQ0YTdjYzA1MGZiY2NhMzUxY2Y3ODBkNDJjNTM4MDI4NGE2MTYzNTIwYTgwODk2ZWU3ZjcxZDI5NjFkNzYyOWQ2NzM3OTFmOGZhYzEwYmQwMWQzMmQ5NWU4ZWZiZDY1MzgxNDI0YzM3OGJiZjU0YjUzMmE3MGMyODVkOThiZGJiNTU5YzlmMzdkNmVhZTg4OWI4MmQ1MDA2ZmJhMjg5MmFlMTZhY2FiMTAzYWZmMWIyNDc3MTFlZjkyZGJjNmU1MTZjOTJlMzg4ZmRhNDI0MzgwOGY5NTE3MCIKIAogSE1BQ19EUkJHIE5JU1QgQ0FWUyAxNC4zIFBSIEZhbHNlIChTSEEtMzg0LCAyNTYsIDApICM5Ci1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTM4NAorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzM4NAogaG1hY19kcmJnX25vcHI6TUJFRFRMU19NRF9TSEEzODQ6ImNjMzJlZjNlYTNiMGRiODljNjkzMTJjYWQ1NmIxZGRlYTczYmE0YzMwMmI4NWZmM2M2NjA1ZDE4OTlhOTZmNDk5MDljNmE1NGQ5OGJhZjA5NmVhNWJkNDZhYmMyNTM1MzA5Njc2ZDlkNmJiOTkxNzI3MWJmOGM4NmM4ODUyZTI5YmYzZmY1YjJmZTU2YWMwOTRmYTM1ZGNjNTE1NDdmNjIiOiJjYjgwOTQyYmZiY2Q4ZjExMmVkNjAxY2IxMmE1Y2E1MmNjMGYyODA1MjJkYjExZGE5MmFjNmM3NmJlMzkzMmZkIjoiIjoiIjoiIjoiMmM5NzJjZmUxNTM3YmFlNDJlY2M0NmIxYjQxYTY5MTM1MGY2ZTYzYzIwMjI0NTM0N2U5MTYwMmI5M2E0Y2JkNWM4ODI5ZTVhNGY2M2Y3ZWUwZTI5YWRiNjkzODZlOGI2NTlkY2EyZTYwMDBhYTAzYmVhYjEzMmRiNmRhZGE4ZGMzNWFiNjg0MzM2NzFjZjYyMWZlNDU5MzAxOGIxZWFmZDNhMjE5MTUwN2ZlMDE1ZTJhNTY5NGZkZmUyYzMxODJmYWRhNzFkMThjNWZkZWVkMDY1MDg5ODYyMjQ5YzU1MDhmMDU1ZWJlY2ViOWZjZmU1ZDE2ZTQ0NzlkYzE3ZTJiNTliNWEwYWEzMWNmMjFmYzZiNTkyNTU2OWIwY2E2M2QxYTVjZDI2OGE0ZDQwOWYxMDM5ZDkwMjU1NjIzNmZiMDZlNjFjMWMwNTRlZDM3OThjYmU0ZDhjMmE3YjJkMTgyMDYyMTI1OTExNzRjZWM5ZGE1MTlmYjg3NmM1ODNhMjBmIgogCiBITUFDX0RSQkcgTklTVCBDQVZTIDE0LjMgUFIgRmFsc2UgKFNIQS0zODQsIDI1NiwgMCkgIzEwCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTM4NAorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzM4NAogaG1hY19kcmJnX25vcHI6TUJFRFRMU19NRF9TSEEzODQ6IjE0MmJmZjkzMzJjNDgxMDMyMjEzNTkwNDBjZGE2NjMyYmFhOTJjZmJkMWFlN2Y4YjNkMGUzM2Q2YTgxOTM5MzlkOWQyMGQxN2ZkZjZlZGQxYjNjYTlmZjYwMGZlOTY1NzQ2YjBiYTFiNjFlOWFhNTE0MWVkYjc3YWRlMGYxOTFiODdmMGIzM2MwZjM2MjA4MDFhNzU1ZGNhMDI2OTg4ODMiOiI4ZGJiY2YwYzE5MDc4MzEyMmFhNmRhNmUwNWVjOWQ4MmVlMjlmOGU3NGU1OWY4ZmU2ZWI5NDkyZmU0MTBkZjZhIjoiIjoiIjoiIjoiMjUzN2E4NjM4ZDU3NTkyMDFjYmMyMjVlODQ0MjA4YzFkMDg0NDNiMDU1ZmFmZTIzMzI5YWVkNWViMmQ4MTQ3MDNiMGZkYmQwYTg5YzJkNjJmOGY0ZWE3NzQ2OTA1YjliZDkwNzA2YjczNDA2MGM5NmU0ZTQwNjY3NTU3NmJhZTg0MzE3YmYzNmQ4NTIzYmFiYWI3MjIzNmI3MWZjNjA4N2RmY2ZjYmU3NjVkZTEzY2QxZWQzMTZmNDk1ZTNiZDA4ZDc4MGNkNmE1ODg0OWM5MjllZjI0YjQxZTk1NjE4NjgxNTgwNDZmZmU4ZDJhODlkMTY5YmEzMTMzMTYxMWYwODcyYzZkMDc1Yjk5MzhlNTE3MGEzYjg2MTJmOWVjZmY0NzQzYzBkYjVhZTM2NWZkYzI2NzhlYzI2MmVlZDNiN2MzMzdlNjVkZDFmZjI0YTg2NzU3NGVlNDYwYmVjN2MzNzRmYzZiM2ZlOWIwZWI3YmQ5ZjU1MDdlYzU5ODhkMzEzIgogCiBITUFDX0RSQkcgTklTVCBDQVZTIDE0LjMgUFIgRmFsc2UgKFNIQS0zODQsIDI1NiwgMCkgIzExCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTM4NAorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzM4NAogaG1hY19kcmJnX25vcHI6TUJFRFRMU19NRF9TSEEzODQ6IjgyMWVkNDRiZDc5M2E0YWYyMjNhZWJmNTI0MTNiYTVlMGUyMzFiMjAyOWIzZDcxNDc1YWMwMjhkOGMxMGY4NmQyMzgyZWI5YzYyYmFiNTQwYmU4NDdlMjIzNDQ3MDRkMzM5Yjc5ODI0OGQwYmYyOTkwYzA2MjEzMTZlM2M5OGVjMDdmMDViYmE4ODg3NzgzYWRhZWJlOGZjZWNjNDhmZWQiOiI4ZDJjOGNkYjJkZGQ2OTM0MjcxOTQxZjA3MWVhNDdkZmFiODY5YTU2NzFkZmY5ZDQyNGI5MTZjMWNjYWJiMDJkIjoiIjoiIjoiIjoiYTVmY2YxM2U0YTZiOTgyOWFjMzAxNzE5MjA0NzhhNzg3OGFlZGE2NTg4MDNmMmUzMTRmOWVmOGNmNDJjOWMxOTMzY2JkOGRmZTUwNTNhYmQzMGRmNjQ0Y2EwNjIwNzA2NjJmNGI3ZTc4NTFkMjhmZjgwMWNjNGI4Nzg1MjNiNDYxMDg5MWFiYjI5YzA5NWE3MDY2NWRlMTE5OTE4MmZhMTkzNDM5NjY1Y2IxOWNiZGIwMGFhZjNmZDBmZWZhYTIyNzgxOTRlNzllYmY2NTI3MTNhMjhjMzZmMmNkYjgzZjk2YzhlYjFlODVjOTk2OTM4MWI1MmJjMzQ0NGU4YWQ1ZDgyYzk0OTY0NTQ0YjNlNjY0OWFlM2Y1MzJkMjVhMmUzNzBlOWZjOGM3Nzc1MzIzOWYxMzAwOTFjNDM3MjBmZmNkMmJiY2RiNzBhNzUyMjNjZmQ5MzQ2MDkxZThjMDU2MjI3ZjY2NjQ4OTQxNTUyZWZhYTVhMGEzNjkyOTFlOWVlIgogCiBITUFDX0RSQkcgTklTVCBDQVZTIDE0LjMgUFIgRmFsc2UgKFNIQS0zODQsIDI1NiwgMCkgIzEyCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTM4NAorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzM4NAogaG1hY19kcmJnX25vcHI6TUJFRFRMU19NRF9TSEEzODQ6Ijk3N2JhZDRjNWQxZDE2YTI0Mzk4NjNhZjhiYjZmZGJjMjA2YWQwYmYyMGM0MDM2YzA0NDY0NTk2MmMzNmUyZTg1M2YwZDcwMmE1NGI3MDQyMWE1MDljMjVkZTEyNGYyN2UzMzBlYmE1ODFmYzgyZWZjYTUyMmU0Mzk1NjE4N2M5ZWU0ZjU4Zjk3MWU0YjkxZWQ1MWNjOGFlZWEyNmZkYzMiOiI1MWNiOTFjYjdmZjFiMzllMThhYWNjMGJhYWQyMDQ0MzUyMmJmODY5ZjI2ZDlkNzE4MjAwNWI1Y2IxZDAxOGRlIjoiIjoiIjoiIjoiZGY0YWNhZmJlNGYyOGVlNDdhY2M1MTM0ZWY2NjVhNTBkZWI2OGRlOWIzYzdlMDc1YjI2ZDU3MzEwNDlmMTNmZmQwMGNkYTA1ZjYxMmYyMGZkOTAxZmYxMjcyNzdmMjY5YzA2OTYwNzQ0MmVkOWY3YjQxODkyNzExYTcyYjgzYWM1OTIwNDhiZmIyOGFiMmM2NGM2YjlmNWViNDQyNzQ1MGY0NDc1YjFjMDRkZDQ2NjU5OThiNjM4ZDA2ZmU4ZjQ2M2UyZjA3ZmY0NjA3MzAwMzEzMmI2NmE1ZDRkMTlhNjViZDA4MjMwZDFkYjAyMzRmYmQwOWE5ODg2NGY4Y2E4MjRlN2EwY2E5ZjFkMTY2MjAyN2E2MGM3ZTk1MzgyMTIyNjc0ZDg4MjI0ZmIxOTJjZmMxMjk5NTJlZDY1MTU5MTJhZGVkOWM3MmE0OWEzOWEwMGY5ZjlhMTZhYmJkMzYxYjIwYTEyYjVmM2M0ZGU1NDAxMmFlYjFiNDJmNmZhM2JjIgogCiBITUFDX0RSQkcgTklTVCBDQVZTIDE0LjMgUFIgRmFsc2UgKFNIQS0zODQsIDI1NiwgMCkgIzEzCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTM4NAorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzM4NAogaG1hY19kcmJnX25vcHI6TUJFRFRMU19NRF9TSEEzODQ6IjMxMTZlZjA3Njg1ZWFmZmYxYzc3ZjE4NWZhODQwYmI1NjI3ZmI5YTVkNzlmNzJmODAwN2NkY2RmYmZlZmM1NmJiMTc2OTk5MWQ3OGU5ZTQ4ZmNhNGM5N2IwMWQ3MjBkMWQzZWE2ZmE2ZmZiZTI1NjlkYTk0YjZiYjM2Y2QzNGQ3MmMzN2QwMjE4YjNkMDJjMzkxZTA2NTNlMjg2YjI0YjgiOiJmMTM4Y2EzZWM4NjdjYjdlZDdkNWZkYjA4NjhkNzQ3MGRlNWY4MDJmZGI5NDFkYzQwMGFkNTI0ZDkwMzJlMjNhIjoiIjoiIjoiIjoiNTlmMDFlYzA2Yzk3YTQ5Y2M1ZGU0NjljYzJiMzljMjhkYjc2MTIwMjllMGUyNGUzYzJiMjRmOTJjMGFmMjM4M2JmYjlhMGRjY2JlZWZkYWVjNGJiZDI2MDdkYzU4MmVlN2VhYWU2YTRmZmFiMjUxNDA0ZTNjNTljOTVlNTQ2MGNjYzhkOGRlYTRkYjczZTkyNGNjZDc1Mjg3MDhlMWI2YTlkNjJkNDg1YzkzNzY0Njg2ZjkzZGY2ZmI4YTlhZTg2YmJkYTFlMDM4Njk3YjU0ODVlMjdlMGJhYzlhMTgxMjZiZmYxZTdiMTA0NDAxMzA2Y2M0MjRlNzgzZjU1ZWJlOTk0MDE3NmQ3MTIzZWY1OGM5NDYwZTVmYjgzMTFmNzQ1ZmRjY2QzOWNlNTUyNTQ3YWRjY2RjZDg1M2JmYmE4N2FlYjg3ZGZlOGFlNzIwODBmYjdiM2U1YzQ3MThlNzQzYzlmNTc2ZDc3NTJlM2RiMWZkYjI5ZjE2MGJkZTExNWYzIgogCiBITUFDX0RSQkcgTklTVCBDQVZTIDE0LjMgUFIgRmFsc2UgKFNIQS0zODQsIDI1NiwgMCkgIzE0Ci1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTM4NAorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzM4NAogaG1hY19kcmJnX25vcHI6TUJFRFRMU19NRF9TSEEzODQ6ImY1YmEyN2M0ODdhNDBkZmUzNDJmZTE4ZTdmOWM3MmJlYmMxZWEyMjljNzYzNGNjZTg3ZGVmZDdhYTExNDQ4ZTNmNTg0ZDE3NjlmM2U3NmEwMTc0MzBlNmU5YmFlNmJiNmM3OTE3MDkyNWUxMTU2Mjc1MzExZDg2ZDRhMDNjZmUzZGZiZjg1ZjgwYmJkNzBlYTk4YWY3NjIyMDgzM2EwYmUiOiIzNGZkMTI0YWFkNWExMGI4NTJiMmZlODQ4MWNkMGVjNDZkYzJkMDJlZDk1ODNmNmUyODJhNGM5MDhlMzE5MDI0IjoiIjoiIjoiIjoiOTc3ZmE1YjcwZjRjYTNjMDRiNmY0OTVkZTNiZmRiNGI4YWVmOTNiZDE0YzgyNjUzZTMwYTAwYTQ2NzhjNjAyYWE4ODk3NjZhYjdjYWE0MzRkOWMxNWJkNjhiZDE0ZTY2Y2RjNjA5Mjg5YTY5MWRiY2IzOTE2MTFiZTY2YzIwNTZmOGU2NzVkZTVkYjliMmUyZjE1ZTVhMzMwZDAwYTg4ODZlYjhiOGVlZDQwNzYzMDZkNDQzY2EyOTJkNzgzZmIwNTYxODZhYTg2ZTFkYzlmMThhMTEzZTAxNWU1MzVkZmZlYTk1NDMxOWNkMjZlNTU3MmY0MTczNzY2MjA3ZWQ3ZDliOGIyYzQyYTc0MTM0MGMxODUwYTA3MTM5YzBiMzU4Y2FiOTQyYmVjNTFiMTU5ZTUwZjVhYTlkOGZiZTdjYTlkMWQyMTI3YTk4ZmJmMGY4YzMwOTRiZWE0ZTMwMzlmN2Y3YWIwODNmYzlkMDUwZTI5ZTdkNGNjMmQzZDQ0Y2FmIgogCiBITUFDX0RSQkcgTklTVCBDQVZTIDE0LjMgUFIgRmFsc2UgKFNIQS0zODQsIDI1NiwgMjU2KSAjMAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEzODQKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8zODQKIGhtYWNfZHJiZ19ub3ByOk1CRURUTFNfTURfU0hBMzg0OiJjNDg2OGRiNWM0NmZkZTBhMTAwMDg4MzhiNWJlNjJjMzQ5MjA5ZmRlZDQyZmFiNDYxYjAxZTExNzIzYzgyNDJhNjE4ZmFiYTU0YWNiYTFlMGFmZDRiMjdjYmQ3MzFlZDlkMzAwMTZiNTgyN2RjMmJmZTQwMzRjNjY1NGQ2OTc3NWZlOTg0MzJiMTllM2RhMzczMjEzZDkzOWQzOTFmNTRhIjoiMTM1MTMyY2YyYjhhNTc1NTRiZGMxM2M2OGU5MGRjNDM0MzUzZTRmNjVhNGQ1Y2EwN2MzZTBhMTNjNjJlNzI2NSI6ImEwYmJkMDJmNmFhNzFhMDZkMTY0MmNhMmNjN2NkYzVlODg1N2U0MzFiMTc2YmNmMWVjZDIwZjA0MTQ2N2JkMmQiOiI5M2VlMzBhOWU3YTBlMjQ0YWE5MWRhNjJmMjIxNWM3MjMzYmRmYzQxNTc0MGQyNzcwNzgwY2JiYWQ2MWI5YmEyIjoiMzZkOTIyY2FjY2EwMGFlODlkYjhmMGMxY2FlNWE0N2QyZGU4ZTYxYWUwOTM1N2NhNDMxYzI4YTA3OTA3ZmNlMSI6IjJhYWM0Y2ViZWQwODBjNjhlZjBkY2ZmMzQ4NTA2ZWNhNTY4MTgwZjczNzBjMDIwZGVkYTFhNGM5MDUwY2U5NGQ0ZGI5MGZkODI3MTY1ODQ2ZDZkZDZjYjIwMzFlZWMxNjM0YjBlN2YzZTBlODk1MDRlMzRkMjQ4ZTIzYThmYjMxY2QzMmZmMzlhNDg2OTQ2YjI5NDBmNTRjOTY4Zjk2Y2ZjNTA4Y2Q4NzFjODRlNjg0NThjYTdkY2NhYmM2ZGNmYjFlOWZiZWY5YTQ3Y2FhZTE0YzUyMzljMjg2ODZlMGZjMDk0MmIwYzg0N2M5ZDhkOTg3OTcwYzFjNWY1ZjA2ZWFhODM4NTU3NWRhY2IxZTkyNWMwZWQ4NWUxM2VkYmI5OTIyMDgzZjliYmJiNzk0MDU0MTFmZjVkZmU3MDYxNTY4NWRmMWYxZTQ5ODY3ZDBiNmVkNjlhZmU4YWM1ZTc2ZmZhYjZmZjNkNzFiNGRhZTk5OGZhZjhjN2Q1YmM2YWU0ZCIKIAogSE1BQ19EUkJHIE5JU1QgQ0FWUyAxNC4zIFBSIEZhbHNlIChTSEEtMzg0LCAyNTYsIDI1NikgIzEKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMzg0CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMzg0CiBobWFjX2RyYmdfbm9wcjpNQkVEVExTX01EX1NIQTM4NDoiNDZjODJjYjgxZGU0NzRhZTAyY2NjZmFjMTU1NWQwNmU1ZGM0NGI2ZWY1MjZlMGUyODM1NmZmYzhiYzZjMGZkMDYyOGQ0ZDk0MjgzNGI5NGZjOTc3NjA5YzhlYzBhNjM5MmMwNjkzMTMwYzYyMTVkNTVlMzdkYTQzZDY3ZGVmNzE5MDUxZTk5ODcxZGI2ODEyOGUyNDUyMTdkMmFhMzIzMCI6IjVkZTUxZTNmNDk5NTFiYWIzNjQ2MDcyNGE2M2YwNDZlNzVmNmY2MTBiZTc0MDVmNTUwMTZjOTNhNTlmMTg5MGEiOiI1ZGJiMTNmNWI0ZWIyNzVjYjc1NzUxM2U2YjhhZjZmZWZkN2M5YzllMGY1MzA0ZmRkOWI0YzA5Njg0NThmMjJiIjoiM2ViY2VmZjMyMzJlNzVjNmJlYjc5ZDk3Yzc4ZTkzMjQ0YTI1N2YwNzcyZjgyZTIzNDUxOGM1MGUzMjI2MzBlYiI6ImRjNjRlNWExZmM3YjMyZjAyOTRkYjEzOGRjMTMxOTQ2ZTU2MDIyNjZmNGNkZjAwMDM3ZmZlNTEzYTQ0ZmY4M2MiOiJlMzQ4MDU0NDAzNmEzNjg0YTg4ZTIzZmY0MWE0YmJkODEwZjgyNzAyMWNhNDVlODAwYWFhYTM2ZWQwYjliZmZjYmJjYzk5YTFlZjFmMTUyOGI0YmZlMzk1MTRjN2EzOTBiYTEzMmQxNjgxMTM4YzRiMWI5ZjFhMGZhMTc1ODgzN2RkZTM1ZDBmNmMzODY4M2JhNDdhOTA0OTM3ZGM1ZWUzZDNiNzVmOTA5ZTVmYjYzMTFjNmNkYTVlMTEyMWVkYzc3NGU2NjA5MmFhMWRiZGU4M2U0NjgwZmY5NWMwYmJjMjk0NmFhNGQ0Njc3MGYyNDdjYWE3YjcxYmRlZmFjOTY0MWVlOTk3MDBmYmQxZTU2MGY5ZjdmYmQ0NjJlZGU2NGUwMDljZWQ5MGM0NGM2ZmYwM2I4OTBlMTZjNzljN2I4Yzk1OWEyN2RlZmE2ZjA2MjE2ODg5MTk3N2M2MzdlYzIyZWNmZTIwNjAxZDQ5OTQ0M2YxZmIwZWNjN2Q5NTA1YjciCiAKIEhNQUNfRFJCRyBOSVNUIENBVlMgMTQuMyBQUiBGYWxzZSAoU0hBLTM4NCwgMjU2LCAyNTYpICMyCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTM4NAorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzM4NAogaG1hY19kcmJnX25vcHI6TUJFRFRMU19NRF9TSEEzODQ6ImRmODA1M2RlZjAyNjBhZTcxZjY3ZTE5N2FlOGI1NDdhMjI4ZTliNjdiYTc5MDlmYzFjYjNhZGNhNTEwNThiMTVmNmQ1OTUxZjBiNjBjOTcyZDEzOWI3NWRjNDRhMzY4MDEyN2E4NDc5OWZkNzY3MmU0MjlmMjA4NzZjMTc1ZDEzNWU1Zjg5NGVkYzdhNGRhMzM0ZWI4YjczYTMzNGJlNjEiOiIyNjg5MDAzNmE5YjE3ZDhlODA1YzM4NTY4NjMwZTFjMTk2MDkxZmFhZDU0NmJhOGViOTc2ZjNhYTAzMWE4OTA1IjoiNDBlYTZiZWJiMGNiOTRiN2U1Mjc3ODdlMTdlZjlmN2QzZWZiODg5ZmMxZTQ3ZTQ5ODkzYWM1YzRiYmE5ODhjMiI6IjA5MDI3MWMzMDdiNDNiOTUxYzIwYWQzZjA4MWQyODM4ZGYwOTM2YTRiYmRjNWViNmYyZTE2YjFkYjQ4MmIxYWMiOiJjMjAzY2MxYTNhZjY2OGU0NTY1M2JhYjZiMWFhMzliYTA2Njk0OTFhMDZkMDBjZDM5Yzk3Yjc3N2E4YmZkNGQ3IjoiMGQ2OGQ5MDNjODVjMDE3MjQxOWRjOWY3ODJjNWQ2N2EwYjMzNjdkMTNjYjJmNzM0ZmVkOTVjN2ZjMDgyMjkxZWRiZjRmYTgzMzU0YzY1ODgyMjdlNDBiYmZmMDgyYmUyZGQyNzZjMjY0ODIzYThmMzFiYTE4YjAwOTU1ZDdhMWZkNjEyYTJmMzdkODI0YmM4MmNkZWM5NzJkM2Y4Mzg0ZGZjNzhiNTFkY2E2MWU4MTU3NjZjODc3ZWYzZDIxMTM3MDRjODA1YTI1MGFlZTdiNTViODQ5YWYwNDhmZWIzNTM2ZmU3M2VjNGYwYmVlOTcwMDY4ODFkNWVlZDhlYTM4YmExYjhkMTZhM2JjZDkxZmRhNzQ5Yjc3ZDY4ODk5N2JmZjA5ZjEwNGEyZDhjZDhlMTMzZWE0YWE3NjRiMjM3Nzg3MzU4ZGFkYWUxYzI1MDkyY2ZlMDlmNzllZmViOGViNmUyMGMzOWNhZmRjZWVkOTBlNjAyZjIyMWZlNmIxZDY5IgogCiBITUFDX0RSQkcgTklTVCBDQVZTIDE0LjMgUFIgRmFsc2UgKFNIQS0zODQsIDI1NiwgMjU2KSAjMwotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEzODQKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8zODQKIGhtYWNfZHJiZ19ub3ByOk1CRURUTFNfTURfU0hBMzg0OiJiMWExYjQ2OGUxZDU5NzE2YTIzZmIwMjhlMjk1NTg4ZjE3YmU2YTc5ZTU4OTAyNzIzNzY4MWZlOWNlMzU0ODYwYjFjYzMzOTE4YTY0YzhiZTE3MWU1OTVlZTZhM2IxZWY0NmMyZWYyMWRmMjgxNTUyODQ4MmFiNGM3YTMyNDQ5Yjk3YWM3NWE1MWRmYTFjN2U2N2E3NjNmMTdlOTdiY2Q2IjoiNzdlNWEzZWI2YWIzODQxOWY4NGI1Nzk5NzYyN2M2YmVhNzk3MDNjOTViYzFjZDI0ZWE3M2ViYTJlZGJlZDU0MCI6IjUyYWEwYmU5NTE4MTZkMjFhMmVkZTg5ZjUzOTEzZjZkNWQ3MGNjNTgwYTFjZGE4YTQ5ZjhlNDlhNmJlZmE5MDkiOiI1YmQ4ZTRhYzYxYmRmZTc1MmI1YTY2Y2YyZTA0OGU4MTJhOGFlYWU4ZTIwYzNjOGM0M2YzMTE4MGU0YjE4MzAzIjoiYWY1ZWFiMjFlNGRkOTQ0M2IxYjE2ZjQwNDEzZmFlYmRiMGUwODY5OTFkZDNjNTNjOGE1MWJjNDM0MzQ4MzExYiI6ImQ0Nzc0MDRiY2FmMGVkNTM3ODgzNTQ3MDVmMGZhOWY0NmM0ZTJiZWYyY2Q5NDkzMmI2MTRiM2MzNGUwYjBjN2MyOGQ3NDgzMDc1Yzk3NDViZmJkNGUzMWU1ODdmYjFkYjc3ZDU1N2ZjZGZkM2ZlYTQ3ZGEzZjAxZTQyNjM1ZWQzZmQ4N2NmNmM5OGEyZjIwYWE4MzNhMWJiNzRhMTViMTU4ZTQ3ODQxY2ViZTUzZTRkNWQ4Yzg1Y2FlNzhhZGUxNTZlMDI1YTc3MzdhYTkxOTdiMTIyZTczYTI5Y2UwYTg4MWM3YWRjOGVjMjI4ZjRjMTRlNTZjNzIyYWNiMDE2NWIxNTk1ZjAxMDI2NjE1MTgwMTgxMmMwMzFlZmNlZTRhNzczOTg3Njc3NzgxNmFmOGJhZjRkMjk0OTY5MTJhMDEyZjFmMzNjMDcxMDdiMmRiNWViZDY4MTcyMmRmZDc2ZjNhNThlOWQ3NDI2ZTdmYTc1ZTMyNmVhYTQxNmM1ZDgyMCIKIAogSE1BQ19EUkJHIE5JU1QgQ0FWUyAxNC4zIFBSIEZhbHNlIChTSEEtMzg0LCAyNTYsIDI1NikgIzQKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMzg0CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMzg0CiBobWFjX2RyYmdfbm9wcjpNQkVEVExTX01EX1NIQTM4NDoiMDk4YjhjMTA3ZmJmOTQzYmNkZDIxOTlkZmQxNWYxMzBhMjBkNTE4ZTk1ZGM4MTk4ODc0OGUxZjBlY2M1YzQ1Zjc0NjIyY2EyOTQwODA3ZGY4NmZiMDVmMGFhYjQ3Mjc1MjVmMTlkMWQzYmRhMWY3MDgyNWYzZTFmY2IxOGQyOWU4ZTQxMDYxNmMxMDVmZGE5MzI0ZjQ2MTdhZjM5ZjAyMSI6IjIyMGJiZjIzMzk0YzNjZWYxNTZmNjgzZDA1NzM5Yjc2ZjM3NTM4YTBkMzYwNjAwYmQ1MmYwMDc2NDI1YjVmNWYiOiJhZjg4ZjA3NmFiMzlkYjFkZDBlNzAwMmJhZTE4Nzk2NWNkMTQ0MzgyYTNkMWNhN2IxZWNkNjVkMzQ2ZjdjMDkwIjoiYmFiOWQwOWRjZTUwNzNkMTFmY2RmOTUzOTUwMWRjOTk4YjZmZmZhOGEwNzE2ZWRjZjU4M2E3ZDczODVmZjQxYyI6ImNhZjhkNGUxMDUxM2U1Y2VhY2FkNmY5ZjE0NWE2Zjc5ZTVjMjQ1YWVkNDk2NWFlODVlMmU3YzU5MTRmOTc1MTAiOiJmNTU2NDk0YjM4NDlkNzhiMDZhZTc1NTcxZjBiOWM4YzEwODg4NWZjYjA0MWRiZDc4OTJiZjYzOWQ4ZmY2YzgyZTE5ZThjZTJkNWFlYjU4ZThiOTY0Y2U0Zjc1OTc2YTBhOWM3ZjNlYzgzNzNiODMxNTBiODhkNmM1OGZmOWI4MTAxMjRkNGFjNjJkOTU1YWE2NGQxOTRhZmVmMmY3N2RlNjk5NDY0MmVjODZjZWU0MGFhN2E1NTkxZTk5YTYzZWRiZDhiYmRiMjJmYzNjMjUwNmJlZWU2ZDUwN2ZlMzRmZGI0ZDRmNTI1ZGNiZTMwYjU3NDdmZjkyMGExM2Y5ZTIzMDg5OWZmZmZiYzU2MTVlOTk0ZWU5NmExYmZkODg5MGNmNjA3Mzc5YmUxYTM5ZDE3MzY2MmQwOTY3YzlkZmVhMzNiMTRkNzhjYzg4MThjMmExOTU2MTk3Zjg1ZTkyYmMxMTEzM2FjNGY3NjU3ZjJkYjIwZWNlZWNhZThjYTYzNmEiCiAKIEhNQUNfRFJCRyBOSVNUIENBVlMgMTQuMyBQUiBGYWxzZSAoU0hBLTM4NCwgMjU2LCAyNTYpICM1Ci1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTM4NAorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzM4NAogaG1hY19kcmJnX25vcHI6TUJFRFRMU19NRF9TSEEzODQ6ImY1NGU5ZGY5Mjc1MmQzMGVlYzAxYzM3NTZkNTY5YmRiMzlhYmNkZWRhYjgwYjBhYWNhYzc2YWI0MDY3MjNmNDgwYmIzNTlhNWZjNmM3YWVlYmI2NzE5YWI0NDExNGE3NWFmZDM0MGFmMjAyYmUzY2EzMGU0ZGU3OTRiODI2MjM3MTA1MjAyZGNmZjVkMTI5MWNkYWYyNjY2NzMyNzU4MjUiOiJiNjlmNzdkNWEwODg1MGExM2Y4ZTZkMDY4NDdjNGJlYzE4MWFjMGY2YjcyMGJlM2MwNmMwYjY3ZDQ0ODQzYzZlIjoiNDBmMTRjMzM0MGU3MDkyYjg5ODc1OGVhM2MzNjc1MDk0M2FjYWM3ZmJiNmE4M2YwZGYzMzkyZjc5MzY3NDljYiI6IjViY2ZiMDc4NmM0NDc2NzUwMzJkMmEzMmIzMDRmMjU3MzdkZTU5Y2QwN2M4NGQzODc1YzQ1NDc1YjE1Nzk3ZDQiOiI2NTZhYjIwNGUyYzE4MzRmMzQ2ZDg5YzM3YTMwMTY0ZGI0MTQ4MjdkODNjYTczMmM3MWVjNzFlZmE4MTgyYzI4IjoiNmViOGYyNzZhOGZmNTE2Zjc4OWQ5NGQ5OTdmMzNjMmU0MGIyMjc3NzZmYWUwNjgxYzgzZmRlNjU5NDYyYjcyZDM3Y2Q0OGM5NTg5OTUzMGNhMDcyYmYyNDcwOTg2ZWYyOWRmYjE5M2JlN2VlOWFiM2Y4Y2RlMjMxN2M5YmYwMmE1ZjkwMWNjYjYyYmI2NjViYzNhMTA5ZWFiN2UzOTEwODg4YTUyMmM3NjVlYjQ5YjExZDFhZDBmYmNjNDVhYmUzODQxZTliYjRmYzBlNzMxODg0OTdjZmZiYTU0ZjNmZjgyMjYwNzY3ZDBmNzBlYTE2NjhmNDUxOTJlNjcxOTEwMmU3NWFhNWNjNDMwODRjNTBiZGJkMWJhNDkxYmI2MWVlOWU1MTc1MDkyYzFmNTBkNTZiZmI2ODk3N2E1NjdlNDFjMWUwNWQyZDE1MjNjMTk4ZGVkNzM3MDc5MTMxZmIxMmRjZjg0NzIxOWQ3MWZiZWRiNTY1OTQxMWQ3YWZmMmJjIgogCiBITUFDX0RSQkcgTklTVCBDQVZTIDE0LjMgUFIgRmFsc2UgKFNIQS0zODQsIDI1NiwgMjU2KSAjNgotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEzODQKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8zODQKIGhtYWNfZHJiZ19ub3ByOk1CRURUTFNfTURfU0hBMzg0OiIyY2MzMzBiMzRjOTc2Yzg1OTkzNmMyMWUyYWQ4OGJiNjBmZjE1M2U0MTEzMTU2N2Y1OGFkMzRiZmY1YzljYjQxODkzOWZlZDU2MzU2YWY3ZmUyMTU5ODZhNWQwZWQ4ZTlhMDc4ZGNiMWQzZmNlZTZiOTk3MTRlZWEzYmZjZWZiMzdhMzQ0YTY5ZDQxNDk2NTUzOWRkY2U5ZGYyMzliZTJmIjoiYmY1MzEwODNmMzUwNjZlYmZhZWFiZDY3YjgyZDM5MmVmNmIxMjFlN2Q5NjAzYTU0MDdjNWJjNzRjZDU5NjAyMyI6IjUxZjIyM2RjNDYxYWMyZGYxYzQ4NzdmNjVjYTg3NmQ2MzVkNTA5MzlmYTlkZDU4NmMxNzZkOGFiNzNjNmQ2MDUiOiJmZjlkNjgwN2Q3MWRlZDEzMDVkOWUyY2RjODExZGFjMmQ3Mzc0NmIwMDFiNTNlYzhhNTUwOWM0Y2UwYTA3ZWZhIjoiZjUyMjJjODk2NjY1OTk3NGRkOGE3MjQ0ZDJjZWU1ODhiNmM5YTI3MDBmMzM4NjgzZmZmOWNjYzQ1YjZkMzgwNyI6Ijk4MWFiZGEwZTQwNWM5NzY0MzVlYzdmOTM4NTcwZDkxMWU1YmJiMzJhZGQ1MmE4Yjk0ZTUyODQ4NmU5ZGFmYWUxMzllYjE1Y2MyYjU2ZmVkZmI5ZTRiMmQxMGRiY2FhNWU2YWI5ODViZTE2YzYyYjliNzVhMDM3Njg0OTg2ODQzYTdhMGUzYmFhYmMzNDg1OTI1M2RmMmEwNTNkY2IwMzUyYTA1NTRmZDJkNDUzMGRlMDI1MWIxYjg1MmQxZDNiNmUwODU0OGUyMTU5MDJlYzhkYzQ2ZWU4OWYzZmMyNjJjN2EzNWFlZjgyMTZiM2RlZjY1YmQ1NmYwNDgyYTE4YTMyOWY5Njg2M2FmZDk1MTMwNzc0MGZkODY1M2QzMzNmOTMyOTQwZTJhODc1MjNhZmJjMTYyYzVjMWQyYmJlMTZmMzNhNGIwZWUwZWM3NWJjZmE2YWVlNmQ4MzQ4MjY1OTM4NzM4YmU2MzhmNzg1MDZhYjczMWQzZTlhYjM0NTU1MSIKIAogSE1BQ19EUkJHIE5JU1QgQ0FWUyAxNC4zIFBSIEZhbHNlIChTSEEtMzg0LCAyNTYsIDI1NikgIzcKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMzg0CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMzg0CiBobWFjX2RyYmdfbm9wcjpNQkVEVExTX01EX1NIQTM4NDoiYjRlNWFhZDliZjRmYjAzZGVkNjRlNGJmNDBlY2M2ZmUyMjE0MDQ5YmQ1ODg5YTVhZWVhMGJmNDdiZTg2NzBkMzI5ZTZlZDA0NTM4ZGQ2ZDIwNzc2N2MzNjc0MDZkNDgyYmE3YWQyOTIzMWZkOTQ0ZjAwYjhkOWI3NjI5MzViOTM4MTllYzYyZTBjY2ZkNDhmNjE5YWM0MGM5YzIwODMwNCI6IjY3ODI2ZDJiZjk2NTE0MDRkNWRmNGRiODRlYTY0ZGNhYjEwNjk3ZWNiOTBjNjgwNDFmNDIxNDUyMTA5YWYzYzMiOiI2N2Q2OTgzNDY1ZmFjZjMzMzY5ZWViZTBiZTEyZGM2NWZlNzM2OTY5ZThmNDE0NzhlNDRlYzI1ZDQ2MWU0NDM1IjoiNjVmOTdjOTkxNDBjOGM5YmEyY2UzNzcxMGIwNmY4MjJjYzBlYWEwMzU4OTE1N2EzYjU3NWJjOWM0MjNhZmMzZiI6IjE5YzM3ODg2ZDYxM2QyNGIwNTkyZWEwYjNhNDY1ZWM4ZjhhOTIyOWFiZGUzZmI1ZTAxMjIwMzJlMWFjOGRmYzUiOiIwNTc3NzQ4N2JjMTUyMjYwYTg1MmUxYjMxYTA5MWY4ZTkyOWVkMjJkOGE2NTJhNzdlNDM5MWFiY2U3ZWZjZjA1NzBkZjNkNDY2ZDU2ZGM1MWVmMTRiYmM1NTMwOWM2ODMxNjU1YmE5N2M2MDUwZTU2MzA4M2ZkMWYyZmU2NWI0M2QwY2Y4NzYyZWY2NTk4ZDk2N2I0NzNiNjhjNDE0MzI4N2Y3MGQwOTZhNmVhMTIwZTNjMDdmMmE5NWI4MGIzOTNmZmVhZmFjMmQwMzA5ZDM0OWJmZjAxN2E0OWI5ZWE1NDdhNTc3NmI1YzM4YjllOTgxZWQwYTQ4MjU4NTNjYWZjZGYwZjE3MjY5YjlkZjYxODlmYWJjMzAzODhhMzgzZTNjMjg5NDk2MjVlZjNkNTlhMmMzNzFlZjQxNmFjZTg2NThhZGMwZTBiMDEwNGYxYWNkNGIzNDliOTFiNjYwZDY0NDEyMTY4ZDNjOWUyOTY4MGE1ZTMyNGU0ZDBhYjkyNTgiCiAKIEhNQUNfRFJCRyBOSVNUIENBVlMgMTQuMyBQUiBGYWxzZSAoU0hBLTM4NCwgMjU2LCAyNTYpICM4Ci1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTM4NAorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzM4NAogaG1hY19kcmJnX25vcHI6TUJFRFRMU19NRF9TSEEzODQ6IjI3YWUyMTIwODI0ZjNkNDE2YmJlYTFmOTg3NDQwYzUwN2E0ZjAxZmVkMDhhMWJlMjdlNmVjMTYzOTBjOTJjNGY4ZGFiMDQyMDM1NDNjYWEzOTgxMzczZmI5OTFkODU1MzQwYzI5YmFmNDM5ZjIzYmZiNTk5YTVlZWI5NWVjMjA1OWFmMjRkZDg2YzA4MjU5NTdlYTgzOTJjZTNkOTgwZjEiOiJjZDY0NmIwZDE5NzFmMjQ5ZjRjNGQxZWFhMTdlNjBjMzExZDgxMzA1N2UwYjcxODE5YTUwM2FhNDFlNWM2YjIxIjoiOTBlZTJkMGJmMDZjYjk0MTkwZTY1MDVhNzVkMTJkZDc3YzI2NjQ5N2RjOTljNWY4OWJkZTYwYmU2Nzg5MDk5ZSI6IjdkODJiNTBjZGZhYWI5YjVkMjNmYjY2MThiNTlkZDI4Y2YxYTgzYzc3ZmYyOTkzZDlmMWVkYjg3ZWQ3YmMzODgiOiJmN2Y3MjhkOGVmNmFmOGM1ZTc3Y2VmMWU4MzcwMzBhNmFhNWMxMmJjODE0MjNiMGVjYjA3YTJkYjk1YTMyYTI4IjoiNGIyNWFhZjQzNmViNjAwYTEwM2QzZmFlOGUzMDFkMjc1NTEzMmIzZGUzYzhiNGM0NDIxMjlhODhlYmIzYWIyMGM0ZDNhNTQwNzhlY2M0MTk3OTk0ZmYwNGJmMGU0NjA5MTk5NzhkNDdlNDVjN2QxMGQ3NmExZTYzYWUzNDYyNGUyZjY0MTI1YWUxYmVmMzA0ZWZiMWFmNjg4ZjIwZDhlMjEyZjZkZjRlMTEyNDNhNDkxNzdlNGI2NDU2MDEwZDc4NGQwZTRhOTRlNzUzNzFhNzVjNDA1MGIyN2U0ODM1OTU0OWY4MjY4ZGQyYTIyOTBlYmRlMjIyODJkOTZiMmYzOGUzZjA2MTAzZGFmYWU1ZjU0ZjAwMTliZmIwMTNkZjM5YTc2NDgyZWM3Zjg3OGQyNmVmMGUzNGM5YzIxZTY3ZmJjYzM0MTJhYTA3MzllODc1ZGEwZTllYTEzNDA1OTIxNDRlYjIzMjM4NWZjN2U2MDVlY2QxMGZlZTQ1NTI0NzE4IgogCiBITUFDX0RSQkcgTklTVCBDQVZTIDE0LjMgUFIgRmFsc2UgKFNIQS0zODQsIDI1NiwgMjU2KSAjOQotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEzODQKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8zODQKIGhtYWNfZHJiZ19ub3ByOk1CRURUTFNfTURfU0hBMzg0OiJkYmQ1ZjUwOGU4MjI2YWNiOTU3YmJjNDkxNGFiMTM4MTBiOWI1YjJiNTFhMWI1NWNkNGFjNjBmNmI2ZDRjMzcwOTYzNDQ4ZmQzMjM5NjhjMjdkOTdlMDA1YjFhMDc5YzllM2JhMTUxODg3MDA2YzU2NTkzZWNhNzgwOWIyM2NiNzY4ZjViMzcwMWI0NTZiZGM4NWZiNTY3MmE4MWRiMmQ5IjoiMGNkYTVkNTAxMDcyY2Y0ODJkM2M1NmM0OWEzYzkyOWI0MjNmNmUxNWEzZTgzNTg4OGIzYTk4NzM2NDdmZmRkYyI6ImQzZjM4Y2E1YzBiYmNlZjQ2OTc2YzZhNTk2NWE4NDkzZjcxNGFhMmM4YTJjODE3NTc2Y2JjMGJkNjY1MmJlYjAiOiIyMDAxNDQyMWY5YWYyNTk4OTJmMDE3ZGQ1MzkyY2M5NzNmMTAzZDQ3MzZmMzg2NmU2NjMyOWU1ZTc3MDRlMGY4IjoiNjg2YWJhNmM5YzZjMjIxYjJiNGE3ZGU3NjY5NjNlNGQ5ODgwNjc2ZTdlNmFjOGU2NDRkZDI3M2ZjZWU1MTliYyI6ImI3MjBjN2M1NmUxMGM5ZTQzNjAzNmZhOGUxZjFkMWMwYzBiNzI0NmMyOGJkMzZlNWYzZTg4Zjk4ODY4NGI5NWEwMTEyN2JjNjRjYmNmMTJiOTY4OWY3MThiYWE1MjA0MmIwODM3ZmVhNzkxMzkxZWUyYWU0MmU1NGFjYzU3MTIzOWU1YjY1NDQ4NmEwMjVhYzI1ZjQ2ZjEwMjgwZWNkYzY1ZWQwOThlNjVlMDdkYzM4NzBiMTdhZjhiZmQ1OGVkYmEwMjZkYzEyYjRmZjA0ODMwZWYxMzJkMDdkY2Q3YzYyZjY3MTcyY2FmMjYyMGEyMDQ4NjlhODFlMzk4MDlkYjdiZWZhMjVjNWVkOGE3NGI2ZDMwNmMyMWNmZDM3NzgxODBkNDQ0YmQ5OTMxNGE0MzBmZjRlZjZiNzA2MTgzMmRmOWI4MjYwM2Q2YTBmNjQ2YjM5OGU3ZGNkOGJiMzNhNzkyNmJkZmEwODVhNDUwZDNkZTY4YzFlOGNiMmVlNDUyNCIKIAogSE1BQ19EUkJHIE5JU1QgQ0FWUyAxNC4zIFBSIEZhbHNlIChTSEEtMzg0LCAyNTYsIDI1NikgIzEwCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTM4NAorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzM4NAogaG1hY19kcmJnX25vcHI6TUJFRFRMU19NRF9TSEEzODQ6IjcwOTMyMjRkNmJjZjA5MTVlYjc1MzYwYWI0YmI3ODljMTU4MzRhMzcxYmFhMjRkZWVjZWIzM2Y4NmU4YmZiNDZmNGUzNDMyNWRkY2JlZTY3MWY5ZTQ1Zjc4ODdjMTQ4MTIzODk5M2VjNGEzMDllMTBkM2Y4ZTM5NTJjODQwZDU2NDY0NDA2MjUzNGY5ODVhNmI0ZTM4Njg4ZDJjODAwYTMiOiJlN2NmMWYzMmJhMzY5Y2Y1NTQ1ZWU2NzJjZDY3NDZlYTlhMzM2ZGU3MDM5ZWNiYjI1NDE5MjU5ZWFiZGZhNDRjIjoiYmIxODZhNDYwMzg3YmFhZTI3YzExYWE4YzY1ZDZlZTAwMzU3N2VhYzQ3YjI1OTI1NGE5MzNmODJhYzY4MzI1MCI6ImQ4MjM1MzVlZDk3NGI3ZmY5ZjE5ZGMzOGI5NDk0YWE5OWY4ODE0M2UzMzgzYjVhMTgzZWMwMGM5MjViZGZlZGYiOiI1NjU0OGFmNzk3ZjRhMDdlYzQyMjczZjg5NTgyMmQ4NzdhMzExYmYxZjhkZDVjOTZmZDg0NDk3MzJhMTNhOTIxIjoiMTU5YzY5MjNmYjcxZjk2NzBkYjRlZWYxMmRhZGQxNDNlZTcwMWJlYzliMGY3NmI1NmU5YjFiOGM0NzNlZWNjM2UzOGNmMDZjOGYzYjBjM2Q0OTU4MGU0OWNhZWFjMGZkNDhkYTVmNTNkMGQzZTljODI5YzI1M2ZhYzRlNGYwOTczMDE3N2E2M2UwZTc1OWYwNDMxNjllOTE0NTljOWNmOTU5ZDIyMzBjN2I5NGJlMTY4Y2Y0ZmEwMjU4OGQ3OGFlZmJjODU1ZDU1ZTQ0NGQ2NzFhNjlkMjc0YzY2YWQxODUxYzU2YzBkODgwNDE2YmNiYWQwODUyM2NlZmEyZmIzODRkZDBmOWYxODhlOGE2MDFjZTBhOTJkNDJmYWFlZDBhMjk5ZDZhOWM4Njk1ODg1NDcxMjQyN2IzNWU3M2EwODE3MTkzYjUwZjM1NTdlNjZkNjRhZDgwZmE5ZmY4NzQyN2I3ZGU1YjdlNjMxMmQxZDk5ODhiYTc3YmU5MGQ0Y2NhIgogCiBITUFDX0RSQkcgTklTVCBDQVZTIDE0LjMgUFIgRmFsc2UgKFNIQS0zODQsIDI1NiwgMjU2KSAjMTEKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMzg0CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMzg0CiBobWFjX2RyYmdfbm9wcjpNQkVEVExTX01EX1NIQTM4NDoiZWE5NmY4Nzg3NDU4ZTUwNWY1ODU4ZTMxYmI4NWI2ZTMzNTIwNmY2ZDZkMDRiZDlkMzMzMDI5MTkzYmQyYTA0ZTVmODVhZDE1MjY3NWVjYzA5MDExOWFmZjc3MjA3MzliZGJlMzQ1NTFlYmJlZjEwZTgyMmNkMjllOWFkZTE0ODhjMjFmZDllNzk4MzY5ZDU4NWQ2ZjU4MTY4ZDUwOWQ5NCI6ImJhNDVkZjFhMTRlMjMzNjEyMDFhNDY3ZDJjZmI3YTNkY2UzMTI4MDY5YThhNTlhOWEzODhiOGUzMWM0OGVmYjQiOiJkNTUxMjcyZTVhNjBhYTEyMzJmY2I0NzY1ZTg1M2RlMmNjZWMwODk0MWFjYzc1MTg4ZWNhMzcxMjBmYTQ5YWFjIjoiYzFiMzQzNDc2OTFhZTlmMWJmNmJlMzk2ZThiNDlhYWVkYjM4MzA3NTI2NjI3Mzk5ZmMxMGM0ODc0OGMzYTdiYyI6IjcyMmMwZWZhNDQ1MjYyZjU4MDBhYmY3NWU0M2Q5ZGFhNDRlM2RjZWU3YTc1MjhmNzMxM2VlNTJmY2E5ZjE4MDMiOiJlMmY4NzM3NThjNGU3MTcwNGQ4NTQ1ZGQxZWFiNTEyMDZhYzExZGZkYjAwZGZkMWVjOWU1M2JkYzdmNmI1N2Y1MjA5NzI3MDQ5ZDRkNzgxMDU5YjBiYzRiNjA5MWM5YmRlZTk0NzEyN2I4YzhmMDNmMWVlNWYzNjY1NzIwYTRmNmM2Nzc3NjgyZWYxOTM3NzE5MDUyMjU0YWViOTdlM2ExN2I2YjU1MmJjYmM5MTU0NTUxYTdlZDQxZDgzN2EyN2I2YzM3YjQyNjUwODQwOWI3NTIzNmNjMTU2ZGFkODlkODk2ZjI1YzU0NDY3ZmQ0NWY5Njk4YTExYzdjZTAxYmZiMWZlMTcxZTRkMzNmYWY3M2EzMGM4OTkyYzUxYTgzOGU5YzA1MzczNTQzNzFiZjc5MTQ2YTc5YTZkNDJkNGU5ODdiOTc3MzM3N2ZiZjM4NDk3OTY5MGIyYzA0YzMzMmYyMjU2N2ZiMDkyMWMzZTMzMDg4ZDNiMDExOTIxZmNhNmEiCiAKIEhNQUNfRFJCRyBOSVNUIENBVlMgMTQuMyBQUiBGYWxzZSAoU0hBLTM4NCwgMjU2LCAyNTYpICMxMgotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEzODQKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8zODQKIGhtYWNfZHJiZ19ub3ByOk1CRURUTFNfTURfU0hBMzg0OiI5MmFjMTliMTMzMzk4YjdkOGRkZmJhM2M2MDQ2NDIxYjM2MTg5MjMyNDEwOTdiOGY2OGI2Yzc0MzBiNmQyMzJhZTlhZDhmODY0ZjM1OGFmYTdjYWM3MmJiYzRmZDkwZjE2ZWJjOWMxNTkxM2MxMTA5NGJmN2FhYTUxMGU2MjQxZmFjZTAxNmE5OWNhMDhkZTY1MjVhNTcwYmQxNzQxZGM3IjoiMDUxN2VhNzQxMGJkZTY0ZWRjYzcwZGY0OGYzYzg3ZjU3OGIzOGI4YzcwODdkZWYxNjAzMWU1Mjc2MDAzN2RmMCI6IjQzOWM5N2Y2MmQ2YjdhYWRhYzY0MDU3YzAwMDNhNDFhNDRlZTU0OWY2MGFmYTkyNzk3ZWU3YzlhZWJmYzgxNjQiOiI2NjlkNDJmOTkwMWUwMjliY2U3NTg0YmJkMjJhMTNhNzRlNmY2YmE1MDQ0MWEyNjMzNzczYmY1YWM3NDUxMjJhIjoiOGJmM2MxYTA4YjJkODQ1OWRmOTZkNmFiZmE5MDcyNWYxYTczNTgwOWRhNzhiZjk5ZjdmZGVkMDIzMDc3MTgwNCI6IjNiODMyYTdmMWRmNTkxYmJhNTcxYmY3NjYyOTE0YjBlNWEzYjM0ZDM4MjI4ZTM3N2U0ZTdkY2I0YjljYjM5NmFjMjY4ZDcxZmJmZDJlMWE1Y2ZmNDQyOWZlYmEzNmY1NWM3ZTQ1Y2RhYzQ5YTVmYzhhNzg3MjkyMDExYzYxZjRmMTAyYmI5YTVkOWM4ZmUxY2YwNDc5NTZmMjFjNzQ5ODdkODA5NjhkMmU0Y2ZhMjliZDkyYTM1Y2I5NmRkMzcyZDliYWFlZDhkMzFiYTM0NjJiNDIwODRkYzE4NDFhNDA0MjMxMWFiZmU0YjMzNThmNTZjOWUwYzY5ZTIzMzYzOGQzYmU1NmQwZDI2OWNmMTEwZDUyMDA3NTllY2ViNjNmZGYzYjBhZDI1OTM3ODU3ZDEyOWI2OGYwMzhmYzczYTg0MjA0NmNjN2M0NTI5MmQ2ZWMzNzY2YWFmYmMyMmYxNDkxNzc0NjI0NzUxZjJjNTBmZWU4MzBlMjRhMzRhMjdiNSIKIAogSE1BQ19EUkJHIE5JU1QgQ0FWUyAxNC4zIFBSIEZhbHNlIChTSEEtMzg0LCAyNTYsIDI1NikgIzEzCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTM4NAorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzM4NAogaG1hY19kcmJnX25vcHI6TUJFRFRMU19NRF9TSEEzODQ6IjdhMzQ2YmQ2ZDg1MzgwM2QwNzg0NGNhMzQ4ZjNjNDgzN2ZjZTNlM2E3MjdmNzEyMjIzZGEyNDhjZDgyZGI2ZWQ0YTk3MTBjZDhiOWYyZTdiNTkzY2NhNDJkYTdiMWExMjg1YTc4ZDBjNzY0YjI0YzNlNGIyMWQyNTkxOWM1NDAwYjRhZGFmMDY4NGM3ODczMjZjMTkwMTA3MjhiYzZmOTQiOiIzZThkZTM5YWIyMDZlZDE2NmIyMDNjOTcxMDMwNTllNmE5MzE3ZDQ3ZjdhNzZiZjQ1MTE4MjljYzJlMjdhNGNjIjoiMzI3OTc2YWVmMjM5YjIwODMzZDM2YjdmMzUyZThlNjU3MGY4ZjMyNWI1Njg5NzVhNjYxYjU0YjhhZGE0OTEyOCI6Ijk0MTljZGYxYzU5YWJjMDMwMTNkN2Q0NDNjNzM0YWZmNTdhNmQ5N2M4NzBhMDM3NjJjNTBiNDU5ZDM4ZjVlMDkiOiJmMmM5YzQ5Yzc2YmQ2ODNkNDJkZDlkZTlkNDVhOTdiNzg3MTBmMzlmMmVlNDgyZTg3N2UzYjA4NDQ2NDdmOWUxIjoiMjRhODM5OTFmOTQ1NWEwNDEwMjEzY2MxMzg2OTZjZjRlZWNlN2IyY2FjYTBhNjI3YzZjZTAyM2I3ZjkxMmMxMTU3NjhhYjhhYWQwZmIxMGUzNTU5MWQzNzBlMDM3MmZlMDIwODIzMzY1YjViYmU3MTM0MTdiYzJmMDUwY2JmODZmZDYyNmNhZjkxMzIzMjcxZWVlYmQ1ZjJhYWUzNmZkMGFjZWQ2Mzc3OTU2NTYwNGVmMjY1M2EwNzcwZmU0ZTQyNjQ5ZWNlYjYwODliYjc2NjJjYTNkNzQ0ZmUxNzhmNWFjNWJjMjBjZTdhOTAzMjU0OTdmNTVmZmQ5YjI1YzU5YTZiODJmMDc1NTNjMDgwZjBjNDVmZWQyM2NlNDdkOTcyNjA1YTJmNjAzYjcyZDA5ZDYwODU0OGEwNDAzMWRkMmJiYWU5ZmY4OTgyMDFlNDQ2MDQ3OTU0OGQ3MGIxNzZlOTE3ZmYzZTM2ODNlNDlmMzMzMGNmYTc3YTI1Y2M0OGZlIgogCiBITUFDX0RSQkcgTklTVCBDQVZTIDE0LjMgUFIgRmFsc2UgKFNIQS0zODQsIDI1NiwgMjU2KSAjMTQKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMzg0CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMzg0CiBobWFjX2RyYmdfbm9wcjpNQkVEVExTX01EX1NIQTM4NDoiMmQ4ZmI4Nzk2ZDhhMTc2NGY4YzgyNGM1NWI4ODBjNTNkMjIwNTU1OWFmYmRmMWNlY2RhM2RjMmQwNWJmMDAxZTYyNTIwNzZkYWMwMTNjNzA5NGFlNzJjYTgwY2FmY2UyY2FiMzBhMTYwY2U0OWRiZDY0NjcxMGJjNDI5YzE2MzIzMWQ3M2ZlMGUxMjFmOGNlZjhjMDJmNzA1OThmYTg1MyI6ImZlZWE4YWUwYjI5OWQ1Zjc5MzE1MzgzZDkzOGJjZjliNTM2ZDExZTAzNmIyODA1NmJjYmJjN2ZjZWRlMjFjZmMiOiIxYTBmYzQ3ZmE5NWNkYWZkMjAzNmViNTMxNGUwZjU2MjY2ZTU4YWJiMGYwM2I1ZTY3OTYzODk0NWIxZmJjZDU4IjoiMzA3MDdmMzc2MzMzZGYyMDNlYWZiYTdmYzUyYjQwZDhmMWQ5NzUyMWE3MWQ1NzljOGI4NDU3YWMxMzI4Y2FjYyI6ImYxNzljMTllNDVjNGE0ZjNjYWQ4YjU0NWQxMTZjYTI5ZTQ1ZjMyMjU4MGI3ZmM5NzE1MzEzYmU1M2YwNDc2NTgiOiJlYWY3NTIzYjkxMGI2NTNhMzA1ZjkxMjIzNjNkOTZlMTdmZDIyY2NiOWI2MTU4Y2M0MmFjZWVhNDBjMzRlYWM3M2U0OTY4MjdkZDVmZTQzMTJmMTAyYmE2YWE3YWVlOTM0ZDFmNDE2MDliZjNlMTRjMjlhYTNhY2EyMTBlM2NhYmU3MDc0NGEwOWY0YzE4MGYzZDFkZGY4YmUwYjUzMDQwM2M1MjM4NzYxMjI2ZjJjMmM3YWUyOWIyNDQzOWFmZDY1ZDZkNWEwYWE4ZGFhMTFhYmNlMzZkZjAyY2U2MWQzNTJhYjA4OTY1MTIyZTE2NzA4NzMxZDcyYTlmYjVkZTA3MWMyMGM2Y2IwMzkyNzM0OThmZjE1ODhjOTAxZDk5NzE1MWVkYmJkNDE4NzAwMzFlZTMzN2IzODIzM2VkZmQ3OGFhYjM4OWZhZTJiZDI4MGU0YmM4NWQxYmQ2NjU1MjY5YzMzNTk3NTNiMTdmZGFjNTAyYzNhMmU4NzExNDlmYmYiCiAKIEhNQUNfRFJCRyBOSVNUIENBVlMgMTQuMyBQUiBGYWxzZSAoU0hBLTUxMiwgMCwgMCkgIzAKZGlmZiAtLWdpdCBhL3Rlc3RzL3N1aXRlcy90ZXN0X3N1aXRlX2htYWNfZHJiZy5wci5kYXRhIGIvdGVzdHMvc3VpdGVzL3Rlc3Rfc3VpdGVfaG1hY19kcmJnLnByLmRhdGEKaW5kZXggNzJiZGRmYi4uYWE1NWNjYyAxMDA2NDQKLS0tIGEvdGVzdHMvc3VpdGVzL3Rlc3Rfc3VpdGVfaG1hY19kcmJnLnByLmRhdGEKKysrIGIvdGVzdHMvc3VpdGVzL3Rlc3Rfc3VpdGVfaG1hY19kcmJnLnByLmRhdGEKQEAgLTIzOSw3MjMgKzIzOSw3MjMgQEAKIGhtYWNfZHJiZ19wcjpNQkVEVExTX01EX1NIQTE6IjU2N2QzZjRjMGRlMzk2ZWQ2NzU2OWMwNzBkODdmMmI1MzVlYzg3NGU4ODE0MTg5ODNlYzQyY2ViMjk1YjdkMzEyZTcxNWU0NmI5NmY5ZGE1OTk4ZjljZGU0NWIxZGMyMmRiNmQyZDdiZmQ0ZjM5MzAiOiI0M2MxNmFiNDljYTUxNzRmOTA3ZDc4OTllYmQyNDJlOSI6IjZjMGI0NzlkOWU4NDdkZmJlYWUyMzBiZDQ2MDFkMGRiIjoiMGQ1YTIxODNjOWY5Y2E2OTQxZjZhNjE3ODkyZjVlNDciOiI5MzRmZTgyYjA5NTFiOTdkYWZjNWJhMTZlODdiMDQ1OTY5MTE1NmI0MmZmMmRiYmJkOGY2ZWQ5YjA0YmU5NTJhZjI2N2M2YTE3ZmJmYzg2ZGU5MWY5ZjA3ZWVkNDgyYTUzNjJiMTc2MjE2YTg5NjNhZjQ4NTUwM2JhOTNiMmU4MmMwM2EzZWU2MjI1MDc3ZDkwY2Q5NjFlMjRmNjAyNmY2IgogCiBITUFDX0RSQkcgTklTVCBDQVZTIDE0LjMgUFIgVHJ1ZSAoU0hBLTIyNCwgMCwgMCkgIzAKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjI0CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjI0CiBobWFjX2RyYmdfcHI6TUJFRFRMU19NRF9TSEEyMjQ6ImYzYTcwOWJiNDdhMzY4MzhjYjk5OGZiNjk4NmZmMDc0YzU3OTMyYTY2OTY3MDU3MGZmNmNkMWIyMDJlZTFkYTAxNGEwMTFmNDNmYzAyYzUxZmZjYjQwNDhjYzA2MDc2M2YyYzU4ZGUyZWRkNDk0Mjc1ZGExNDExOGM5Y2I3ZmQ1MDQ3NWM2NmNjN2U3OTI0MDYyMTNhN2QwMGNmNzYyM2Q5MzFhNTk0NyI6IiI6IiI6IiI6ImJiZTNkYWVmYTYxZmUzMDJiZGFhNmQ0ZDM3OTY4MGFjZmQwZDQ1NmI1ZDM1ZjEzN2MxNDViNzI2MjZmMmZjZjM5ZmRmN2YzNzA4ZDllODhjMTcxMDQwOGEzZDdlY2UzYjAyNjFmZjUzODg0NmZkNTQ1MjE0OTk2MDIxNWMwYzIyYmVhZmU2Y2QyNGE3YzM5MmQ1ODQ1Nzc0Yjg3NTI4OTEyYzMyMjExOWEyYWRmNGQzNWEwYmE2MWRkMzZmZmM4YTdlNzQ3NWFmZWM1OGFkNGE4Y2YzNDNhZmI2NzdmMDg3IgogCiBITUFDX0RSQkcgTklTVCBDQVZTIDE0LjMgUFIgVHJ1ZSAoU0hBLTIyNCwgMCwgMCkgIzEKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjI0CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjI0CiBobWFjX2RyYmdfcHI6TUJFRFRMU19NRF9TSEEyMjQ6IjBmNTA4YzYzMzBiOTY3M2U5NDg2MWFlMjA1N2UyMDBhZThmMmIzMzBiNzQ2MzRkNzlmZThhNGM2OTgyMTEwODBkYjA3ZTU4Yjc2MmEyMzg3Mzc5ZjBjMGUyZDAxYjJjYTQwZWY4MmZlYzM1ZWI4MWE1NDkzY2NlZjcwOWRiYWEwYjBlNDQ5NGU0NjA1MzAwNjJjOGRiNzQ0NmJjNmFmMmQ4NTJmZDg3NSI6IiI6IiI6IiI6IjU4MzM2N2JkZTAwM2ViMjA2MWNkYjZmNTFkYjljNjgyN2NiY2VmYmZmMDQ5N2JhODIzZTExMmVkYmY3ZjIwNjZmY2ZmYTNlOTJkMWU4YzUzMTAwNzc4MzU1NGU2YWE4YTYzM2JjOTI1NjkwY2E2ZDU3OWZiZWRiZjljYzRkNmNiMDgxMzNkMGNmOGQ0YzI1ZmNkM2I2ZmVkOTVmMDBiMWJiMTc0NzdjZjY3Yjk3YTU1N2U3ZGE5MzNiZGMxMjE0ODE3NTVmNjI4ZmRmMGYwYjExODlhMDk3YzcxNDcxNjllIgogCiBITUFDX0RSQkcgTklTVCBDQVZTIDE0LjMgUFIgVHJ1ZSAoU0hBLTIyNCwgMCwgMCkgIzIKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjI0CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjI0CiBobWFjX2RyYmdfcHI6TUJFRFRMU19NRF9TSEEyMjQ6IjkwODI4NzFlNzNiMDk4YmJjNThmMzI0ZjEyZjZhODNjMzIxMzYwYzlmNWI0MDBkMDBhOWJiODY1ZWY1MjY1MDgzZDkzMDk2NTdjNDBhYzk0YjU3OTk5NTkwMmRmMGUyMDg0ZWI0YTY0MTBjYWM2MDVlNDgyZWE0YWJlNWM4ZWI3M2JjNjNmNjhiYWFlYWE1NmQ0N2Y3ZDc0OTc0ZDk0MDU1NWZkMzg2MSI6IiI6IiI6IiI6IjY3YzJmZDQzOTdhZjc5Mjk3NzgyYWY5YmFhZDJhMjZiOTkzZWZhNDhjNjg5YTc0NTMxNDE3YWUxMDJkNGVhMWQ2YTgyY2IwMzIxYWVlM2RjMjU3MmFkMjcyOTllODFhN2E3N2YxY2Y4MzcxMTllNzQ2OTg4ZjJlYzYwYmIwMWViMmFjM2QxMTBhOTQ4YzFjMzNlODY4MzM3NTdlMjY3MGNjMzk0NzY1OGYzYjJkMzJhYzU5MjQyZjE1MmU4ODlkMDNkMDMwNTZmMGEyNjVlZTc1OWQzYTQ0ODhiNTVjNjNhIgogCiBITUFDX0RSQkcgTklTVCBDQVZTIDE0LjMgUFIgVHJ1ZSAoU0hBLTIyNCwgMCwgMCkgIzMKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjI0CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjI0CiBobWFjX2RyYmdfcHI6TUJFRFRMU19NRF9TSEEyMjQ6IjQ3MDFmMzQzMjY5MzBjZjkzZGVhZWIzYTljMTk2ZTMwN2E4OTBjOGNjZjQ0YTU1Zjg0NTkzYjMzODhhMTk2MjM4ZmRkOTdkMjAxOTk4ZWM3MzQ4MjE5OThlN2Q2YmVmN2IzMWZhMmE4MTM0MzkxODA1NmMwMWQ2NWY1MTljODU3NmU0MTIwYTNkNmI5Y2UyOGNjZjU3ZWVhYmQwMTJkMmMxNGU0NzA0NSI6IiI6IiI6IiI6ImI0OTliODZiMGEyNWEwZmM4NGE5YTFiOTAyOTcyZTJiYjVhYWY5Yjg0ZjEzODA0ZDYxODA0OTEyODViOTMxNjIxOGNkZTBlNzNlYWNmNzIyYjVjNjY0ZjRlNjE4NjI1ZWQzNWM1ZmFjYmZjYTE1M2NjMTg0MzA5NzU0ZWNhYWQ5YzM2NzhjZTUxYWRlOTZkZmUzMjkwZTEyNWQ2NjFlMmFmYmRhZGZhNzMyNDBjMjQ5MzliYzMxZDE3MTcxMmM3Yzk4N2JmYjQzNGYxZGI2ZWQ0NGIzMjFiY2QyMzdmMTQ5IgogCiBITUFDX0RSQkcgTklTVCBDQVZTIDE0LjMgUFIgVHJ1ZSAoU0hBLTIyNCwgMCwgMCkgIzQKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjI0CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjI0CiBobWFjX2RyYmdfcHI6TUJFRFRMU19NRF9TSEEyMjQ6ImE5MTJiNjc1NWNkMmQ2NzdkNjMyNjhhNTIwMzczOWIwNzg1ZDdkOTU2NzM4YTU5NmUyNjkxMjhhNTgzOTIxYWFjYmJhMWFkYjdjNmQxNzE0YzE2NDE0M2M4ZjQ0ZTc2NzExOTY1NTE0NjUxNjgwMjM1MDY4NDc2YWIxMzdkNTk2MmU1ZTU4NzJmM2I4OTlkMGU5Y2E1YWU4ZmU3MWJkY2ZhZWYxZDI0MSI6IiI6IiI6IiI6IjBmNDEwMzA0YjZkODhlNTJjOGQ2MDM5Y2E2NzRhMDZjNDlhNWZhMTA5NGNmMzQxYzQwMzRlMzk5OTAyMzZkOWU1YmI4ZWJiNmU1OTg0OWU3ZGY4MmUyZDAyOTgxZDhkZjIxZTRiYTMzODFlNjA2Yjk5YzE2ZGU2Mjg2MGE0NzAxMDljMDEyM2M2OWViYWY5NzA2MDNmNDUxZjllNmFjZjgzZTFjNTk1MWMzY2I4NzE3MGVmMzE5ZDlhNzkxMTEwYWVhMGMwZGFlNTYyM2MyODdkNGM0NTRlYzkzMjI3NjU0IgogCiBITUFDX0RSQkcgTklTVCBDQVZTIDE0LjMgUFIgVHJ1ZSAoU0hBLTIyNCwgMCwgMCkgIzUKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjI0CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjI0CiBobWFjX2RyYmdfcHI6TUJFRFRMU19NRF9TSEEyMjQ6IjU0ZmIzNzY3MDdkZTAyYTFjMzg1YTNkYTc4NTIzNDg1MTExYTBhMDk5MDY2MjA2ZjIxMGFkODQ4ZjI5ZDNjMjcwZDJmZDJmNjY4Y2RkM2E1N2NhYmVkNzFmOWQ3ODRjMjA5MjU5ZDFlNGEzZWVlMjA0Njg0NmE1NWE0Njk2NWU0OTVlYjI5NzI1YTg2YmQ2MzBkYzQzY2Q2MGRkYjRmYzkzYzU5OTgwZCI6IiI6IiI6IiI6ImEyZTNhYjUzOTBiNWI3OTc4NmVjN2I0MzRkZTQ4ZTQ1ZjU5MGI4NTUxMzEwNjAwODQ3OWQ4YTNiN2IyMzZjODg0YjBmODcxZDhkZWU1MzljNzEyNTA5YmQ3MGRlMzUxZjM4ODFjZDg3YzljZjc3YzFhOWQ4ODc5OTg2ZmYwZjY2Nzg1NDljNWM2YWNkMTVhZWI2YmJlNjUzYTliYzc2ODI5ZGYyZjE5NGM1ZjZlOGM3ZGQzMDU4OTcxY2UxNTI3M2EyZDU1OWMxYWM2MGEwMDE0ZTVlMzIzNTJkNmJlMmExIgogCiBITUFDX0RSQkcgTklTVCBDQVZTIDE0LjMgUFIgVHJ1ZSAoU0hBLTIyNCwgMCwgMCkgIzYKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjI0CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjI0CiBobWFjX2RyYmdfcHI6TUJFRFRMU19NRF9TSEEyMjQ6IjNhMGMyNGI1YTYxMDZkMjhjMDI5NTc1MzhlNzZlOTZiM2VjZWNmYTgwYmE0YzdkMDFmZTY0MmE4OGZjODIyODg0Y2MzNmFjMjcwM2U4OTUyZWU2MzU5NDg3MTVmNzhjNTQyZTZlMzI3MGYyNzU3ZjE2NTI0NzRkZjQ3MDY0OTBiMThlNjQ5ZmZkOTVkYzUxOGE4YjQyNTlkYTE5MzYwMGFmNWQ1YmRlMSI6IiI6IiI6IiI6IjU1ZGMyNDIwNmFhNTlkMzRlYTk5MGFjNmIzMTI1MGYxNWFjMDU2YzhlY2Q1MmUxNTlmMzQ2NGMzOGUxZjI4ODQwZWVjNGM2NDIzYjBmZDk5NzFkMTFjNWFiOTkyMjVlZGE1ZDE3M2MwOGY5NDM5YmI1NmViMWNjNDg3ZmRhZWE5MzRmYTgxNmY5YzllMGQ2MjhmMTExY2JlNjBhNjQ3ZTAzODkyMDg0ZjgwNzc1MjQ4ZDQxY2I1ODc2MTc2NzFkOTliNTA4NjQ0NDc2YjY2YzFjOTY5NzllNTA2MWUwMjVhIgogCiBITUFDX0RSQkcgTklTVCBDQVZTIDE0LjMgUFIgVHJ1ZSAoU0hBLTIyNCwgMCwgMCkgIzcKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjI0CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjI0CiBobWFjX2RyYmdfcHI6TUJFRFRMU19NRF9TSEEyMjQ6ImFlN2ZmNzBiYjY5Yzk2NGYwNWM5OWMwZTc4NjgyMTBkNTY3YmNiNWViMDJkYjc3MDhkZTE2MmU2YmJmZDkxZmExN2YzMDY1NjQyMGRhZDFjYTY5ZDM1NmNiYWI4MDQ1NmNlZjkyMmE5MjA2ZjA3ZDMyYzNmMTk4YzFhNjhlNjczYzU1ODM2NzRiYjFkZjFmMmE2OWM1NTRmZGQzNDExYzgxYTkwYzgzZiI6IiI6IiI6IiI6ImYxZjNmNzliMWQ3Zjk4OGQ0Y2FmNzMwODQxNmYzZDAyMzcxY2MwMjlhMjhlYjRmMDI0N2M4NjI1YzQ2ODBhMmRjYmU5ZjNkNTZkOTJkZTZlZTRkNDAzMWEyNTRiZGE4YTY1N2JjMTQ3ZmI5MGMyZjc3ODNhOGUzNzQ5YjYwNjMzZTVhOTIxZDAxNWI4NDZiM2NiMzg4MzBiYzc1NTQzMDhhZjA4ZWU4MjE5ZTVhY2QxYjY5OWYxYWM1Mzg5MzBkMjU3ZGE0ZWY1NjdjYTU3MGE3OTUxYmZiMjM2ZDRkMzZiIgogCiBITUFDX0RSQkcgTklTVCBDQVZTIDE0LjMgUFIgVHJ1ZSAoU0hBLTIyNCwgMCwgMCkgIzgKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjI0CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjI0CiBobWFjX2RyYmdfcHI6TUJFRFRMU19NRF9TSEEyMjQ6Ijg2NzA0YWQwMjg2Zjg4ZGJjNjBiYWViYzJlZDA1NzFkZTdiNWFiNjRiYzg1NTRiYTg2NDU1NTdmYTEwMTU5ZWMwM2NjOWY2ZjI5OWMxYzMwMTFjNzNiMjU2M2U1NzFmYzI0ZjViNWI1MGI0YmVlNTE0ZDdjODA4ODczY2E4MDRiMTQ3MjAxYmE3ZWQ0MzQzMGQ4OWIwNjZjMDRiMDBiMGExNzY5NDUyMyI6IiI6IiI6IiI6IjZiMWEyNmQ3ZDIxMzA4ZDIxN2JjODk4ODA2N2VmM2UyMWY1YmMxMGQzNGU4OTkzN2YyYTg5ZjhkYTI1NmFjZWY1MGI2ZWE3ZDllYTg3N2JjMWQxNTAwMmIxNzY2ZTliYzdmZWEzZDY4MWIxNDdlNDIzNTljZTI5ZDZkNGY4YzczZTdjMjliOWVjMTQyNzdmY2UyZjZhMGM1MThkMjRhZWFkYTQ0OTkwZjdmOTJiMGQxMTg0ZmY5NmIyMGM3NmQ1MDZmNmY5ZDk2MzM5MWFiZWM1YmMyNDdhMmFjNmIyNGM3IgogCiBITUFDX0RSQkcgTklTVCBDQVZTIDE0LjMgUFIgVHJ1ZSAoU0hBLTIyNCwgMCwgMCkgIzkKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjI0CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjI0CiBobWFjX2RyYmdfcHI6TUJFRFRMU19NRF9TSEEyMjQ6ImQwYjMwMzQxYjRmZDQ4MjgxZjc2YTgzZDdkZTU3NjlkMDVkNWNiOWU1NjViMjEzYzhlMmJjOGQ0YWRjYmFlOTAxMDdmYzEyZmMxZWQyYTE5ZjIwYmViNTYzZGU4ZjA1YmM1YzQzNzYzNzE0ODE1NGExMmIxNjA2YmZmMDcxZGJiMzY2NDU4Yjc0YTA3YTFjMTQxMTRmYWI0ODc3NzJkNDM2ZDRjZTE1OSI6IiI6IiI6IiI6ImZlMmE3Y2VkMTk2NWYwMTNkNDc1NzI0ZWFhN2QzMWI2Mjc0MGJlNDExZDg5OWFmYTc5ZjlmYTZlNzNmMThlYmUwOTA3ZjJmMjEzODhiNjQ5OGNkMzY1Nzk4ZjI3Zjg4MmEyYzVjMjc0NGE5YjI1ZThkMzUxZTc3YjlmYTQ0NzFjZWIxZGQ2YzcyZmRlZjc1OTc3ZTRlNGEyNDZlMjRmNTZhNjE1MTg5ZTFiMmE4ZDY3ODJlOGM1MDYyYjc0NGE2NWViZTFmN2M1ZmJjYWIzMzNmZGMxNTViZmVlMzAwNTAzIgogCiBITUFDX0RSQkcgTklTVCBDQVZTIDE0LjMgUFIgVHJ1ZSAoU0hBLTIyNCwgMCwgMCkgIzEwCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTIyNAorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzIyNAogaG1hY19kcmJnX3ByOk1CRURUTFNfTURfU0hBMjI0OiI0YTFhNjk3ZTQxNTM3ZjI4YjM4MWUwNWYxMWViYzkwNWJkNjZjMmMxZDkwNWQ4YzBiNzhjMTBjMjZjZGY1NDdhMWI2Zjg1ZmY1OGY0ODI5OGExMWJiYTQxZTNlYzAxNWQ0MWEyNGQ5ZTMzNWU2ZTEzYjA2Yjg0YjlmNTZiM2U4MDNiYWM1NjlkYWUyZDc0YzQ0NGJiNThiM2E2MzQ0YmZiYjllZWU3NjUiOiIiOiIiOiIiOiIxNTA2MGIyYmM4MjdkYmVlZmEyMTcwYWRlNjMzYjBmMDA3NWE0YjliMDNmYzI0ZjczNTIyMTc0YmU0ZTRiMDhiOTNiNDIxZmE5OGM3YzVhNDQ1YzNhYWZlZDQ3YTJlZWVlZDYzZjE5ZWY0ZjY3ZTc3MjZkOGZmODRiZDk0ZGFhMzMzOGUzOTdkNTJhYmVhNGM3ZDExOTFlMzBmM2U4YTExODY0ZjEwZmY1NmIyZGJlZmQ4NjA2NTVkMzRjZjYzZWEyMmJiYjU0ZGZkMGM1ZjY0Mjg0YzMwM2EyYmEyZjQ5ZSIKIAogSE1BQ19EUkJHIE5JU1QgQ0FWUyAxNC4zIFBSIFRydWUgKFNIQS0yMjQsIDAsIDApICMxMQotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyMjQKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yMjQKIGhtYWNfZHJiZ19wcjpNQkVEVExTX01EX1NIQTIyNDoiZTgwYjhjODg5NjU1N2Q1OTZlMTkyYzMyMjYzNDdjMzM2ZGFlNDU1YjUwYmYzMmE3OGM2MWI5YTk4Yzk0OTA5NmJlNTE1MzhlMjkzZDMzOGE0NjRlYWUwZWIxOGYxYWIyMWY5OTAzZDA3YThiOThlYTJhZDdmNDFmZTdmZmRjNGI0YmQwZmQwNjEzOGE4NGRjNTIxN2NjOGZlMzliOTJmOTU1OGFhNjE5IjoiIjoiIjoiIjoiNTU1NzQ0OTFkMDdkYjNhZmY5NGRjYjcxZjUxOWNmZmUyZjk2ZWY1NzIxOTI2Mjg2MGMzYzAzZjlhNWI4YTFlYjg4ODY5ZTY5NTg3ZjhiYzA2OTNjOTkxOWJiMjc3ZGM4NGZhNTUxODdjMGRiYjIwMTAxZjBjNGUzMDFkY2QyZmUyMTY2NGU1YTJmMGRkYTNlYjRmMTFkZjM4NzhjNWJlY2RkYmZjM2NhMDMyYTE3Zjc0MGQ0MjRiOTliZTBhOWJlZGZkOTk5MDcyMjllY2NjYmY0NTlmNTQ5NTUzMzU2MGUiCiAKIEhNQUNfRFJCRyBOSVNUIENBVlMgMTQuMyBQUiBUcnVlIChTSEEtMjI0LCAwLCAwKSAjMTIKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjI0CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjI0CiBobWFjX2RyYmdfcHI6TUJFRFRMU19NRF9TSEEyMjQ6IjVjMjVmMDJiZWYxZjEzMTljYjY4NjhkODM2YzljYmMxODJmZDhkODZlY2Q4N2JjNWNiYTQxYzE2MzcxMDA3NGU4MGQxYTMwZGRmZDBmNWQ4OGM2NjgyMjkyY2Q1MGM2ODk2NmQxNWU2ZmY5NWUxMTdkMzQyZDk3NGZmMDc0ZWU4NzI3MTlkMTU3NDVkYTYyNGY4NTAzYTYxNDFiMGFjNGI4ODdlYWQ1ZiI6IiI6IiI6IiI6IjljNTIwNGQ1NDcxYzI1MjAzZjFkOTc4NmQzOGY3MTA4MWE4NzJmMWM1NjYwNGRjNzU3MGNhYTU0MzlmMTdjZGRiN2ZlZmYwMWNhZGFhYzhlMGYzNWU3YTU0MzNjYmJjZDJkZDRmMTFjYzdkZDE0ZjZhZjYyOWZkNzJhMzE0NWRiNjkyNGQyYmRlZmMyNjI2NjIzNjdiNzI1OGNmZjM2MTcyMjYzNDYwZjRkZDUyZGQwOGZhZWQzNDYwYmJmZmUxOGViMTBmZjViM2M2YTk3ZmFkZGY2NWIzZTIxZWNjOThjIgogCiBITUFDX0RSQkcgTklTVCBDQVZTIDE0LjMgUFIgVHJ1ZSAoU0hBLTIyNCwgMCwgMCkgIzEzCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTIyNAorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzIyNAogaG1hY19kcmJnX3ByOk1CRURUTFNfTURfU0hBMjI0OiI2OGI0ZTFkZGZkMTZhMWMxZWNiMGY0MjIxMzA2ZTc3YWQwMmIwNzk5MzQ1N2VhY2UwODZmNjY1NjZhZmM1ZjEyNDg5NjMzYzYwNWQxMWQ1MzkxNmVlZTk2ZWQ3NzhkNmQ2NTE4YzU2ODFmMGZhOWIwMTYwZGExYzcxNzQwYTk0YWIzMzMxMGJjMjBhMTg3MTAwMTVhZjI1ZDNkNjY3YzQwZGM2MTlmMzQiOiIiOiIiOiIiOiI1YzRjOWIzMjc2ZDU0NmQzYjYyNzdhM2EyMDg5ZDQ5NjkxNDZkODMzZTBhY2UzZTFkZGJkOWY3OWZhMjE1ODUzMWY4YmIyNmEyOGIwOGRjNjRiYjFlNjEwZjEzZWIxNGM5ZmIyMzU1OWRjMmYzODMyNmUxNDVhYjUwOWI5ZjY5MjU5YTBkMWEzMmY0NzFkNWFiZjE1NGEyNTg1Mjg4MDYzODQ1Zjk5MzA2ZjliYjg3NWNjYjBkMzJlOWQ0OWI0MjkwMDI1N2ViYWE1MzJlOGVjMjIzYWVhNjBhYmM5NzE0ZCIKIAogSE1BQ19EUkJHIE5JU1QgQ0FWUyAxNC4zIFBSIFRydWUgKFNIQS0yMjQsIDAsIDApICMxNAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyMjQKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yMjQKIGhtYWNfZHJiZ19wcjpNQkVEVExTX01EX1NIQTIyNDoiZDVlZTVlMmU2MjllYTE3NDg3ZTU5MzkxNDAxMjU3NWRhYThiYWYyZDBlOTY3MWUxYjhhYWQxNjUyNGRiZGY3ZDA0YzExMTMwY2RjMTBlNTBjNjMwY2NiMjM1NTc5YTcyYjZlYjQ1MDJmZTE0NmFhYmRhYjYyYTA4NWM4MjBlYTQ2YmI5MDkxMDU0ZDc1YTg5MmE4M2MzODUwZGEwYTMxYzE1ZTBkMDIxIjoiIjoiIjoiIjoiZTMyYzA3OThiMjA0MDYyMGZiYzVkMmE0NGVjN2ZhODAzODQ0NGMxOTEwZmQ0YTI0MzEyYzhjOGVhZGI1N2E3ODYwNjQ0OWNmMDVhYzUxYTNiYzRkNThjZTc4NzQyYzFiZTNhMGZhYjZlM2Y1ZWJjOTJiODJiNWQ1ZDY0Y2UyOWU4YzI3ODdhY2UwZjRlNzE4YTdmNmNiNjY5YTBhNDNiYTFhZWUwZDlhZWY1NWNiN2M2ZjVkZmY1N2M4YWNmZTg4M2ZmZDhhNDk2ZDQ0YWZlMDY4MDNlNGM5ZmY2MmRmMDQiCiAKIEhNQUNfRFJCRyBOSVNUIENBVlMgMTQuMyBQUiBUcnVlIChTSEEtMjI0LCAwLCAxOTIpICMwCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTIyNAorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzIyNAogaG1hY19kcmJnX3ByOk1CRURUTFNfTURfU0hBMjI0OiI2ZTUzMTg0MmI5YjdmZTJjMGVlNjY4OTlhMTI1NTEzNWY3ODRhMmQ1MjU5YzkzYWIzZDYzYTVjYjcwOGUyZTZjYmE5NTU4OTdkOWI2NmM3ZmFiMjc0YWEzODhhNWRiNjk3MTNjODZmYWE0YTE5NzA5ZTlhYWIwNDYzOGM2NzBmZmFhODM4MDZhYmY3OWE0M2U2MTNlNjJjY2NhZmM2MzdlMWExYzBjMTQiOiIiOiJlNjI4ZGIwNTcyNTBmYmM2ZmM1YWJhMDFiNmM4YjQ3MDYyZWM1NjMyYTg1NjY3MzAiOiJiZDEyZTYxZTNkNTIxOGVmYjBjMTAzZGM0OTQwMjgwMGNmYjg2M2VjODkyNWU3NmEiOiIwMzc2NTBkZGY2NmVkNDJlYTM4Y2Y0NGFhYTk0ODg0ZWZmYzVmODMxYzU5M2ZiMzU4ODZiNWQ2MDFhNThmNzRmODY4ZDg5ZjJkYmE0NTBiOWMxNjBlMjhmNjlmZDI0ZTMwZmI3YTQ0MTg5ODEwZTI5YWZkMGQxMTc2MmQzZWYwN2I0NTI3ZjQxMzRkNmM1M2JkYzliMDI0Y2ViYjZiNDBmYmFjZDY4YjZhY2Q0YmI0ZDAxMWQ2NzA1Y2UyMmY5MGQ5MTBhYzQwMTdkMjQyNmRiN2E0OGRiMzI0MjE2MWFhOCIKIAogSE1BQ19EUkJHIE5JU1QgQ0FWUyAxNC4zIFBSIFRydWUgKFNIQS0yMjQsIDAsIDE5MikgIzEKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjI0CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjI0CiBobWFjX2RyYmdfcHI6TUJFRFRMU19NRF9TSEEyMjQ6IjNmYWRhYmQyZDg4NzliZDIyOThmNTNjNTRiNTczZGIyNTg0NjU1ZTA4YTgzMjg5Y2I1OGE0ZmY1MTcwZmRjMzBkNzFiYjI0ZWZiYjVhNTBkZWYzMTVkYzY5MTQ2MTExNDYyZTIwNDI4OWE2NGNlNzI3Njc0OTlmMjk5Yzc0YzkzNGYwMDA3ZGRiMzRiZjUxODNiYzFlNWFmZDhjMTVlZWJkZWJiYTg4MiI6IiI6Ijc0MmY3MDIyODkyYzIxMjNlNjIzNzllOTM2Nzc4NzMwMmZkMThkYzM4MzVkZTBiZCI6ImI2MDMyNTEzNmZkZTdjODU4MDU0OTgzYTk3NzI2MmI2MzkwYTQ4NDE5NzI1ZmViZSI6IjNiZmE0MTlmOWJhZDI1OWI4NzE3MDM2ODEyODRjNTM5NmZhOTRhMzIzZDY0NmRkYmY1MzM5Mzk4YzRkODMxNGE5OTljMjMwODk0YWM2MGJmMjMxNzYyYWNhZGE2NzJmNTgxNTRhODZmODBhOGM0ZTNiYmM2NzEzMmUyMmVmNTBjMDM3NzE5M2NiMGQxM2M3ZTJjOTdjYjI0Y2U1YmI2OWM3M2JlMmU1Y2QzYTA3Y2EyYjAwMGIyZDdlZWE5NDAwNTMxNTZiZjU1ZDg0NjE4MWUzNzQ4YTkxYzM0MmUxOTFmIgogCiBITUFDX0RSQkcgTklTVCBDQVZTIDE0LjMgUFIgVHJ1ZSAoU0hBLTIyNCwgMCwgMTkyKSAjMgotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyMjQKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yMjQKIGhtYWNfZHJiZ19wcjpNQkVEVExTX01EX1NIQTIyNDoiMDc4NGE0OTk0MjRkZDFjMmMxM2Y3NjVlOWVkODhkNzUyZmVmYTgzY2VjNjExNTRmODJiM2ZkNjQ1ZjY0MmZmMTAzZGI5YzhkMWMxMGI1OTc5YzU2YTIyZDU4MzI0NjY5ZDRhY2UzOTk0OTI3MjIyZmE4N2ZkMDQ5NTU4YTQ4YWRjYmQ2YWQ1YTIzODBkMmQ5MjdiZTU3ZmZmYWFlMDM3YmY4YTM0Mzg0IjoiIjoiOWY4NTNkYjU3YzNkYTA0MjE5MTRkMmY3MWY5MzE3ODE3NTgwYzFkZTRjYTQzZDUwIjoiMjcwNzFhZDQ3NWI4NTQxYzFhODAyMzRiYjJkMTEwNjM3ZmNmNGI0ZTIwZTA2YTdhIjoiMmM4NzlhMDNiZDcxOTU5NTIxMWI1MjYxMDFmZTg1NzAyMTYxNzExYzY3YTgxMTg0Y2M0MmMxZjlkYTU3NjFlODUzZmY0YjhkMTlkZWI5NWEyZjMzMjNkMWNkNThhMmUwNjZjNjZlN2EzMDA1OTczMmViYTQzYTRiZjNiMjJmZmZhNWJlYTUxNjFmZDc3NTE2MGRjNTNkN2NiYjRjODkyYmMxMjJlNGUwMTM5ZjhmNTUwMjE5Y2Y2ZmJjY2Y1NWQxNmQ4YTRkOGQ3Nzc2YWExNDNjMDBkOWU3YmQxYzg0N2EiCiAKIEhNQUNfRFJCRyBOSVNUIENBVlMgMTQuMyBQUiBUcnVlIChTSEEtMjI0LCAwLCAxOTIpICMzCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTIyNAorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzIyNAogaG1hY19kcmJnX3ByOk1CRURUTFNfTURfU0hBMjI0OiJhZGRiMzZiYzlhZDEzNGM3YjhmYTU0ODgxZGIxYjE4ZTA0MGRlNGYyNTNiZTI4ZWZiZDM2YjEyYmZjZjQ3MjFiMDhjNTgzM2ViMGE5N2M2NjhjN2FkYmM3ZjA0YTllMDI5OTU0OTEyNjE3MmUyNWI5ZTYyNDI4MmM4ZTYzZWNjZjM1OGMwZWYxYTcxZjhmZDBhOGZjNDk0NTFkYjc3NTdlYWUzNDRlNDgiOiIiOiJlMzI1NDA0MThlZjY4YzNkY2NhMWU3YTA1NDZlNWRjN2Q0YzVlOTIwMTliOGNiMGYiOiIzMjdlMzFhMDYxOTMwNWM5M2U5YjVlZWY4NzEwMmQ0NDdkMjFlMjFlMmQ4YzFjYzIiOiIxNzhiZWU0MDU5YWYwMjgyODU0YzgzM2UxMWU3YmJhOTIzYTFlMmYxMTI2ZmU4Y2Q3ZTE2OTQ2MDJjMTgwODAyZDY3Yjg0NWE4OGZmNzg2MTQ3ZjIyYTc0ZTZmZmIwZjhiODZkMzUyY2VjMjcxNGZmOGYzMDhiMWY5NzA1NjAzZmFmNWIwNGJlYTNjNzVjODdjOTFkNWU2Y2Y3NTgzYjVjNDVlYjVmNWE3NGQyYmFjNDkwYzg0MTVkMmZlMDc3MjZiYzMzNGM4OGUzZmI3Mjg0MDU4YjAwNmY4MmU4OWFlNyIKIAogSE1BQ19EUkJHIE5JU1QgQ0FWUyAxNC4zIFBSIFRydWUgKFNIQS0yMjQsIDAsIDE5MikgIzQKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjI0CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjI0CiBobWFjX2RyYmdfcHI6TUJFRFRMU19NRF9TSEEyMjQ6IjQxMjQzMWJhZGNmMDZmODc1NTFlYzYzYzM4NjBiYWY0YjU5NjY3Y2I0NzUzMzYzZDBmODJmZTdjOTY4ZWE2ZjhiYzVkMDE1NDE4YWRlYWUyMDYwMDU3MjVkZDk2OTNhZjZmNzA2MGEyZDViYTUzZjY2ZGQ0OWRjMTQ4ZGU1ODE3MzdiNjdhY2Q0YmI3MGZmMmY0Y2YyMGFiYzAwMWFlMWViNTBjYjc1ZiI6IiI6ImQ2N2Y5NGE5NTNlN2U0ZTRiYzBjYmQ1MTdmOTYzZTU5OWQ2ODg1MWNjMzMzNjQ0YSI6IjM4NTI4MTk2MWVjZjJkODE3NWMwYTcxODM0N2QyMTMyZjA1OTk2NGM1NWYzOWY1NyI6IjM1Nzg3NmU3OGE2OWNkNGJjNGUwNmIyYzUyYWQyODQzNDUyMGQ1NGE0YTMxMGVlMGViMDI2Yjg3OTkzNTE0YmExNDQyZTI1ZWIxYWUyMmEzY2U5ODUyOTYyNWQ4ZGI5YjBlNWI2ODBkN2UwMjc1MjNiMGJhMDE4NGQzZjJlNGI5Y2RlZTAyNzk2MGFjMTYxMjI5NWJjZGJmNTcwOTEyZWQwNTEwODU0MWI5N2UzYmIzMGFlMGExMjJkNzRjYjUzNmU1ZGIzNGI3ZDVlZTVhMDQyODk3ZDVkMjlmYTNjMTI2IgogCiBITUFDX0RSQkcgTklTVCBDQVZTIDE0LjMgUFIgVHJ1ZSAoU0hBLTIyNCwgMCwgMTkyKSAjNQotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyMjQKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yMjQKIGhtYWNfZHJiZ19wcjpNQkVEVExTX01EX1NIQTIyNDoiYWU5MTRjM2Q3NGFjYjZlMmQ5Yjg0ODc5MjdkYjc5OTJiODM4ZWRlNzNkYzkxOGI2MGJjYzk0ZjBmNDU2ZjQ1NGE2ZDEwMGM5MGUxMTkzNDIxNTRiYzNkZGIwNTlmNDhkYjNhOGQ3YjcyODhlYjQyZDBjZWIwNzUzMmEyYTM1N2QyMDUwNmVhZDI4ZDliZDRhMTI3ZDQzN2E2NTdhNjFmNWQzMGIwNGNmIjoiIjoiMmFmYjUzN2MxM2ZlZTljNDEwM2NjNmFiYjExMjI1MDQ2ZDk0ZGYyZTk4MzhmNzNmIjoiNmE5ZjY3MGNiNDljZDlhZDk4YTE3Y2MxOWQwMGQ0NzY2MzQ0MTA4ZjBjODY4MDRiIjoiMmVkMGM0MTQwNDIwYzZlMzc5OGExM2Y5MTdjZDk5OGIyY2U2Zjk4YmFjMjdmMGZkYjA5ZTI1MzhmNTczY2FmZjE2OTA0ZWRiMzcxZjk4ZjUwOTY0YjdkZTU1MmU5OTcwMDdmY2QyNjdiMzZhYmVkMTJjZDk1ZDlhMDg4NTJhNGNhODYyODcyZWRkMzJjNzA3ZTdhNjBlMTFmZTBhN2RiNGMwZDM0ZjRjNzBmZjE2ZTVjNzVlNmY1ZDdmZmFlYzNiZTM4M2I4NzkwZWYwZmYzYTBkOWY3OTg1MGM5NzQ5YzAiCiAKIEhNQUNfRFJCRyBOSVNUIENBVlMgMTQuMyBQUiBUcnVlIChTSEEtMjI0LCAwLCAxOTIpICM2Ci1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTIyNAorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzIyNAogaG1hY19kcmJnX3ByOk1CRURUTFNfTURfU0hBMjI0OiIzOGE5M2MzZWRlMTQ4YzkxZWI3ZjBjZDMyN2NiZThiMjdmZjBlNTY5YmM1MjYyYWFmMzBiODZkMzFiZTM1ZjgzYjRmZjUwYjg0YjVkZmQ2NDk5MDhkMGM1NWNkNWJlN2FkMzZkNGY1ZjdmMjJjY2UwNjZkM2I1ODlhZGVmODA0YmZhZjUyMjUzYTBlNGM2YmIwM2UwMDBkNjQ5NTQxZTUyM2FlNTJmMWQiOiIiOiJlMTJjMDVmMmJmNDYzZDI0ZGE5YWJlODkzMDFkMmFjZWZiNzk1N2RjMWJhYjllZjgiOiJkNzAwNjVmYTcxM2UyZDY5MWJmNTU0YTAwZDA2MzIyMjc1NWU3MjA0YTNlNTM5NjgiOiIzZTVhZDdlOTZjOGNlZTg5OTg4OTY0MGQ4MjY4Y2JlYTI5NmFlZTk2ZmNhN2JiNjAzMDhiY2RjMDhlZWQzNmJkYzhhNWIzMTI2ZWQ4YmU5MDA1NzdlNjBlYzBmOGIzZDMwMTRkZWVjNDFhYzY1MDQ4MGUwOGRkM2E0MjU4NDNiMzdmYTVkMWQ2MjFiNTA1M2JhNGIyZmMxODA0ZDQwNzg0OWE4NGU5ZWI1YmZjZjk0ZjI3YzJhNTM1ZTI3NTZiODIwMmVkZTFmMThlODFmNjVlM2Y3ZjUxYTA2NGI0MDFhNCIKIAogSE1BQ19EUkJHIE5JU1QgQ0FWUyAxNC4zIFBSIFRydWUgKFNIQS0yMjQsIDAsIDE5MikgIzcKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjI0CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjI0CiBobWFjX2RyYmdfcHI6TUJFRFRMU19NRF9TSEEyMjQ6IjM4NGQ2ZjQzZTdkNzdhMzgxYmM2YmZiZmJmZTFhMTdhYTM1NTI1YmVmMDFiZThhYWY2YzQ4OGM0NjUxN2Q5Yjk0MzgwYzczZDNmYjQ1YTRmMWI0ZDcwMzc1MDIxYzdkZjc4ZWFkYjYxZGY1ZDllZmM2ZTA4ZmUyZDgxZmZhNjVkZjMzNjY3YzIzZTNjYzVjODk4OTM5ODhmMDRiZTFkMzYzNGNlZDQ0MyI6IiI6ImEwMjcxZmQyNTUyZTAzNzU2OGNjODU3YTYwYTU1MGRiMDUwNjgwZmMwMzkwNGZjZSI6ImVjMDk1Y2M5ZTNiYzMwMTA3MWE5MDFkMDI4OWI1NGFlZmM3OTZiZmZhZDZmZGE4ZSI6ImFjYTI1NzFhOWNmNmJjZDEwNDI5ZTE0NmU2ZTk0ZDFhZTQzYTAwZGIyOGJlZTJiNjBlYjZhMWJjMWNkZTNkNDUyZGQ2ZTA0NjE3YWFlN2EzZjgxM2ZlYWRkYzBmOGZkMjU4OTAwMDQ2MDdmNDVlYzk5NWRmOTcwZTFhM2FiYjE3YjQxNmJkYmY2MmI2YmE1NjI1YTgwY2IxMDBlMmI4NzI2MGE3M2ZmZTE1ZDllNmYyNGFiZmU5ZTZmOWJhNjZiZGZiZmU3MTM4MGQ4MzI0MThlMmE0YjQ2MGRkNzQxNWY0IgogCiBITUFDX0RSQkcgTklTVCBDQVZTIDE0LjMgUFIgVHJ1ZSAoU0hBLTIyNCwgMCwgMTkyKSAjOAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyMjQKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yMjQKIGhtYWNfZHJiZ19wcjpNQkVEVExTX01EX1NIQTIyNDoiOThjOGRmODY3ZDIzNDU1M2U1MDRmY2RmODA3ZmI4YmJhNTFkMjNhYzY1ZGQ4YjE2MDk0M2JkNDUxODE3NjRjZjZkZjAwNDljYWQyM2U2YWNhNDkwZGI1N2QxMmRjNmM2MzE2MDRjOTQzZjE1MzkyN2Q2ZDA0YWYwNDJlMWRhMWIyMjVlYjhiZGY0ZWU5OWRkNDA1ZTM1ODZhY2Y4ZTQ0YmIwMTg0ZDY4IjoiIjoiMzMzOGJhZWE3OWMwNmYwZDQ4ZWMyZDQ3MDA0ZTYxYzFjMWU1MDU2YmY4YmJlY2QzIjoiNzkwMDdiZmNlMTA5YTY4MmI3NDZkZjA3NGU4N2M4NDVlZWJkNjY1NTMyODY3ZmEyIjoiYmE3MDQwMTkzZTM4YzQ0OTU5NzE4MjdmYjFkZGI3NDdlYTgwY2QwYmIxZmQ2YWFhYmY4NWVjMTk1OWMyOWViYThmODE4ZWY1NWFhZGFkYzhjMzRiNmE3YzAwZjIxMGE4OTkwOTJiOTcwNGYyZTAzYWJmM2U1ZThmZTZkMTI3Y2FjMDQzNjQ0MWQwYTZmMWIwMmEwMGU1ZmU5NDg1MzljNjZhOGM3OGU3MGYzNWNmZWI2MDBlMWNjNjhjMDY1NTNmNDdjYTA1M2I2NGEwNTM0YTAyOGE3M2QwODkwMDM0ZmUiCiAKIEhNQUNfRFJCRyBOSVNUIENBVlMgMTQuMyBQUiBUcnVlIChTSEEtMjI0LCAwLCAxOTIpICM5Ci1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTIyNAorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzIyNAogaG1hY19kcmJnX3ByOk1CRURUTFNfTURfU0hBMjI0OiI2MTUwYjcyODBiMzEwNWI4NmI2NmMyYTM5YTFmMDQ2MWNmYmNlMTdlNzQ2NzkxYWZiMjQxYjI5ODc0MTQ1NGUxNzQ2NTBhYjFlN2YwODUwMGJkN2ViMDk2ZTQwZDgxMTRlNWE2MDY2ODYzNmI2ZmY2NmQyNjIyMTU0YjdkMjM5ZWFlZmM5YWIyYWEzMzUxZWRhMmFmNGZlNTFkZTM2ZTIyZTcwMjM1ZmIiOiIiOiI2ZWNlOGFhNDQ3ZDJjZjUxZDg0OTdlMzAzYzFhMjAyZTM5ZTA2YmQ3MjNjODQ3YjciOiIyMWQ4OTA2NjZkMmM4Y2U0NDQwYmI0NTNmNDI4NGMzOTI4NjUwZjhjZjM4NTc2ZDciOiI3NTU0YjhjYzhlNzkzMzBhZTU1NTc1ZjkxNTdjZDEwZDhlZWI1OGFmMzBlZWViZTlkYWEwMjFmNGI1NWNlMzY1ZmJkZjM2MjliZTc1NDdhODljNzhiYjlkZjc5ZDM1MTc5ZTVkMjkyNGFhMDMyZTYwZDVhMDAyODFmMTllZTIyNTVjMTdhNjkzNDVlZDg2YmYzNmVjZmQ2OTRiZTA0MDVjOGI2YzA3N2I0M2E4YzhiYmVhNjAzZGRjNjMyYTFhZWE2NzcxYTZiYzExN2RiZGMzNjVlMjcxNGJkYWE4YjM3NyIKIAogSE1BQ19EUkJHIE5JU1QgQ0FWUyAxNC4zIFBSIFRydWUgKFNIQS0yMjQsIDAsIDE5MikgIzEwCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTIyNAorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzIyNAogaG1hY19kcmJnX3ByOk1CRURUTFNfTURfU0hBMjI0OiJjYjI1ZWVmNzIzMGFjMmRhMjQ5ZmUzMGVhOTRkM2EzMzMyMTQ3MDIyYmIyMjA3YWFiNGE1MDgyMmIxNTY0YzI0YTA0N2ViYjQ2ZDU3ZjQ1ZjY2ODBmOTA5NjI5YjQzMTI5ODc2Yzc1MzgxZTNiN2M2ZDA2ODg3ZjY4MDgzZmM0MjNmMDZlY2JhMTU5YTkwZWRkMzk0Y2MwY2E5NDczZTljZDBmMjNjODkiOiIiOiIyZjMwYjAwNWVhNWQ1OTY1NDM5YmYxNTIyMGIxYzAxMGU2Yzc5MzA2ZTcwMGU2ZmUiOiI5OTM3YmYzZWRiMzYwM2NiYmUxOTBmMzYxNmIwMjFmYWQ2NTIwMTE4NTRlNmY2ZDAiOiIwNDBhMzBiODI5ODFmNzFlNDYwN2MyMGMxZjJkNmU2ODU0ODI0YzkwYjEyNzUxN2Y2NWI2YzdkYTk5ZmQzM2RlZTMyZGM1MmJkMGRiZTkwMjUwOWM1MDQ5MmE4OGU1OTYzYjJiNmUyN2QwNDYzMzRiMzU2ZTU5MDlmODU3NjNhZjJkZTcwZTkzYTg5ZDZhMDBlMmVmODFkZGQ3NGY0YTMzZDNmODQwNmQwNWIzODNmZGE1NjlhNWE1NzRmYjVlM2MwYzg2YTUwOTZlOTQxNzRiNzliMmE0ZWFkZWJjY2MyYyIKIAogSE1BQ19EUkJHIE5JU1QgQ0FWUyAxNC4zIFBSIFRydWUgKFNIQS0yMjQsIDAsIDE5MikgIzExCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTIyNAorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzIyNAogaG1hY19kcmJnX3ByOk1CRURUTFNfTURfU0hBMjI0OiIxZDdkYmU0ZTgzOTEzYmFkM2ZhOTE4MjYyYWIwZjQ1Y2RiOWU0ZTYxNjY3Njk0ZjM2MWRkZWNhY2UwNmJmMzUyYjE4ZGZhYjRjMzJiZmY5YTAxM2QzYjkyYTJkYThlZDY5ODE2ODE1NWRkYzQ5MmY4YWQ1ZDY1Y2RhOGVlZDIxMjc5M2NkOWFlYzhhY2RlN2UwMGY5NTJiYjVkMDBjNTNjNWMxODFlODkiOiIiOiJmOWM1MWZmOGYyNjRjYWU3MjI3MzQ1MDJmNjc5OWU0ZmM1YmVlNzczZDMxZTNlMzEiOiI2YTE3MWEwYTg4MDEwMTdhMWQ5MjRmODBmYzVkOWQ2NTkyYjhiMjhhMzQyZjMwZGUiOiI0MjUwMjRiZDFkMWE2NmQ0NTI3YTNlOGE4MzA3YjMyMDY5MjNiYzFkNjkzZjViN2Y5MDE3ZjBkNTUyN2NkNjU5MTAxNjc1ODc5NGFjODllMmY2ODJjYjJkNjZmOGQyOGY5YTJmNWFlMjk3NGE3NWY0ZDBkZTE3ZGNkMDJlOTNiZjI5YzY5MTc1ZmNlYmEyNjIzNzhiYWZiZTNlYjdlM2RhYmU5NzQ4ODkzMDZkMGEyZWJkMGFkOWQ5MzRjMzdiMWFkODlhYzFmYzI4NDkzZTZiMWY2ZjI0NjIwZTQwZWFmNyIKIAogSE1BQ19EUkJHIE5JU1QgQ0FWUyAxNC4zIFBSIFRydWUgKFNIQS0yMjQsIDAsIDE5MikgIzEyCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTIyNAorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzIyNAogaG1hY19kcmJnX3ByOk1CRURUTFNfTURfU0hBMjI0OiJhNjg4N2ZlNDFlZDVhNjE1ZWIwMzBiMzFiODYzMTVkMzJkMTNkZDVhZDUwNjU2NmVhMjNlYTNiMTYyYjhkZDYyMTEyOTczNmM4ZGRlMzE3MDhhN2ZhNGE0YzYwNmRjMjEyYjM0NDA2MTcxMTFlOTRhNWM2NzIyYzNhNzI5ZDg0ZDJlNTg1OGMyM2JhOGJiMjQ5NDU2YTExZDYzZGJhOWQ0MjYwYTcyMTMiOiIiOiJhNTIwMzZkYWE4MTcyMTExZTg5Yzg5OTFjYTgxOGJkZDcxMTA5NWExNjAyZjJmMTUiOiJjYmE0MjdhMmI3YmI2NDAwMmUxZGEzMTU5ZDY0M2UwMDI1MTZiZWQyNzllMGQ0NDIiOiJjZjBmNTg4MTAzMjYwNmMyMWE4ZWEyMGFkYmE2YTcyZTE3NmU5NjhmMTBiMDhhYjZkMDhmOTk3YjI0ZmMyYTI0ZjJjNWQ0NGQxYjk5ZGViN2RiNGYzODhkYzhhYzI2OGY5NjZhMzRjODU3Y2M1ZjQzZWZjNjAxNjc0YmM1NDhmZmVhZWUxYzEzNDE1ZGY2ZDAyNDA4MzU4MzJjYjc1ODQwYjYwNzExY2I2MzZmNTA5ZGQ5Yjg3YjY5ODYxNTk1OTY4OGU5YWZlZmZhNTA2NzFhZGEwNWZhYTU2NGM4N2FkNSIKIAogSE1BQ19EUkJHIE5JU1QgQ0FWUyAxNC4zIFBSIFRydWUgKFNIQS0yMjQsIDAsIDE5MikgIzEzCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTIyNAorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzIyNAogaG1hY19kcmJnX3ByOk1CRURUTFNfTURfU0hBMjI0OiJhNTYzNDU5ODg5Y2EyOWI3MTEwODZhZGZiZjE4ZjI4NGZkZDE4NjAxZmY2OTkxNmFmMWNlNDc1MTBkMzNmMjA1ZDRkY2QwMDgwZjlkZmVkYjJiYzFlMmU2MGZhMGI5Y2FlMDk0MTAyYmM3YTcwNWNjMjIzMjc5ZTBmYzNiMDAyMGI0ZmFjYWZjMmIzMWI5YmNhOTIzODJmMzgxMGQ1YTRlM2VmNjI2YTkiOiIiOiI1ZmM4M2YxZjZkYzBhZDQ1NGJiYWNmMmRmMzY2YzgwM2NjMWQyZmQ0NmJmNzhkMzIiOiIxYTk2NTQ2NjdjZmQ2YWQwYWFkOTM4M2JlMDRlYzE0ODBhNDk0MjYyYjNmZWU4MjMiOiJjYjQ1Y2U5NmE5NzM3MjhiZGFkZTUxZjkxMDA0YWMwOWUxNTUxNzM3NjkwNjNiM2ZiNDcxMjQ5M2Q4ODc3ZjA4ODEyN2EzNDkyNTg4ZTk5ZmVmNjQ4YTEwMWNmMWMyMzhmZGVmZDc5OGRkNDkyOGI1YmIzYTg1MWVlZDY5M2YzN2Q2NzM2MGEyOGEyYjI3YzQ0MDZlOWRkZWZkZmZiYTY2MjUyOWI5MWE5ODBiYmU0ZWIzODFjZjk3MzRiMzM2ZTJiNjRlNzQ4MmUwMzI4YzJlMmJmODFlMzllZGMzMGQ5NyIKIAogSE1BQ19EUkJHIE5JU1QgQ0FWUyAxNC4zIFBSIFRydWUgKFNIQS0yMjQsIDAsIDE5MikgIzE0Ci1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTIyNAorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzIyNAogaG1hY19kcmJnX3ByOk1CRURUTFNfTURfU0hBMjI0OiI4ODZkMDk4NzMxYWJmMzE0MGQ1MTJlMGQzNDhhMzg0ZDI1MzcyNjY3ZmU3ZTRmMGNlNzEzYjFkMmVjYTdiMmFkOTM5YjI1YWYwM2Y3OGVkYWQ3NWJmMGFiOTViNDExMDcxMGQwZTEyZTcxNGUwM2Y3ZGYzNWRiNTlmYzRlZjI5MDZjZjM2YzZjODg5N2I4MDIyMDBhODNlNjBkMTZmN2ZiMDY0YWJkMmEiOiIiOiJhNGY0MmQ4M2E0OTJkYjNmYzA1M2QxMjc1YzZmMjY0NzA2ZmE5MzI5NTVjM2RhNjIiOiI0NTA1YzA2NjRlNTliYjQzODgwMjA0NzA4MzhiYjA5OGM0YWUxMzM4YzI2OGFkZjIiOiI0ZjljM2M2MGVlMzIwNDI3MzVjYzUzOWI5YTIzZDA0YzJiYzZiY2Q2OGRiMDRhNTgyNDAzMDVmMTY1YmNjZWJiYjk4ZTBmNDc5NmIyODNhMGQ3OGJkYWNjZmNjOGRhZjE5ZjIxYTcyOTQ1YmUwNzk5NmJiYjBiNjA2NjQzYzc3NTNmNzZlZTYzNzEyOTJkM2U2ODE0NjhiNzE0ZTE2YmMzMmRiMTRhZDZkNzc3Njc3MTM3ZWJkMzczMTE4NmVhNzJiODQwYjhjNGFlNzllY2IyYzYxMzUyZWEwNTZkMmQ2YSIKIAogSE1BQ19EUkJHIE5JU1QgQ0FWUyAxNC4zIFBSIFRydWUgKFNIQS0yMjQsIDE5MiwgMCkgIzAKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjI0CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjI0CiBobWFjX2RyYmdfcHI6TUJFRFRMU19NRF9TSEEyMjQ6ImEyNmFmOTM1NzFiYTg0YjU4ZTE0ZTkyMWE2YmFkYTczMDgzZWMxN2YyMTU4MGExNTI3MDNlMTc0MTM5MmZjOWNlNjA0NmY3N2Q2ZWRhNTAwMGYzMjI1ZWYyODQyNWUzMGNlYzEzOGExNmIwZWJkODg1ZmVmMDc0YzZkYTJhN2IxMjZmY2QxZjA1NmUzYTVmZDU2MjczNjhjNjM2ODFjYzEwZmJmNzUwYiI6IjA2MjdkMTBiMWU1YjRmMGZmZjk2ZDBjN2U2ODRkZWI5ZmI2YTRlNDg5NTlkYmMyOSI6IiI6IiI6Ijk4ZDZiYzdlYzdjZDcyZGE0Yzc1MGQ5MTczNTE4YTlhMTcxMjBmZTlhZjEwY2QxYTdkODcyZmFjNTA1ZDkyNzZjNTUxYjgyMWE4NjhjYjhiNGQ4YjEwZWIzYjA1ODQ1ODI3NzE3ZDI5NzU4MTRiNTA4MGEyZjRhYTUwYzViMTEyYmQwMWI4NjUyZjJkMWI1NmE4OGM2Yzg5MWRiNWYzZjQwZDFkMWYwNjQ4ZDg0ZTZjZTIxMzhjMmM4Nzk4ODRlYjQ4NDc4NTYxOTg1NzllYWM3NTlhMDY1YTVkMzg0YzQ2IgogCiBITUFDX0RSQkcgTklTVCBDQVZTIDE0LjMgUFIgVHJ1ZSAoU0hBLTIyNCwgMTkyLCAwKSAjMQotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyMjQKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yMjQKIGhtYWNfZHJiZ19wcjpNQkVEVExTX01EX1NIQTIyNDoiNWZkMDg5MzBiYTQwNGQxM2E3Mjc1MjI3NjYwODY5ZTdlZmYxMGUxMDM1NDhlNmVhMTVmMDgxNmVhOTNiNjQ5ZjZhYmE0MDhhYzcxMGM0OWVhZGRlYTBiNGQxZTIxOTU3N2U2ZjZiYTRmMTkzMzg2MjI4ZjZmZGY5Y2RjYzUwZDViZGNmNmQxZjI0OWU5Y2FlMGEwOTdiYjM0MWUyYmEzNTgxYTNmMmNhIjoiN2E0NjM5NTgzMDIxMDlkNWZiOWZlZjFhMjMyYjVhZWExM2JhNThhNjBiNzA5MTFjIjoiIjoiIjoiYTFhNWM5ZDkwZjkzNDBjODA3ZWZhMjA2OGM2YTBiODcyYTRhZDUxYTdjZjkwZTE0YjQ3OTdkZDg5NDM2MTcxMmZjOTUwN2JkNjFkOGJhOTg0ZWNmMTM0NWZhM2NiY2YzMDMxZTJiYzQzMDIzNTRjZGYzZjYxNWMzYTFiZjQzZjYwYTQ2NDY5OGUyNTA3MjZjMzdhN2E5YTIzZTFmZjdlOGQ5NmRmMDM5NTdlM2EwYjVlNmM0YzRmZGJkY2ZmNDg3ZTQ2N2IxMmRiYzIxZTA3ZWI4YTdjNGNkN2Y3Nzk5MTIiCiAKIEhNQUNfRFJCRyBOSVNUIENBVlMgMTQuMyBQUiBUcnVlIChTSEEtMjI0LCAxOTIsIDApICMyCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTIyNAorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzIyNAogaG1hY19kcmJnX3ByOk1CRURUTFNfTURfU0hBMjI0OiI2MjVkNmE1MDllYzQzYzU1YmJlYzQ1YjQyNDRmYTBiY2UyNGM3NGNjMjcwODUxZjJkMzJlNGJiNGYxOTYxNDc2YWY0MDA4OGI1ZWE4MWY3YTg2ZWZiYTc4YWJkZmI1MGJlMDllMWE2ODg1MTg5OWUwZTlhY2Q5NWY3N2YxNmU4YjBhZWE1YTliZjI5YmMxYTE4ZDMyMTU4Y2Y2OWM3OTRmM2Y0N2ZlNjEiOiJiY2ZhMjU5YzkxOWY2ZTU2Yzc3OTE0YTI3Mjk1OWNkYTZkMmNhZmVhZmY4N2Q5MWIiOiIiOiIiOiJiNWJjMWYwMzA5OTU0N2NlMWEzNTliZWRlMWY5ZjNiNzZiMzhlOGI5Y2M3ODFmYjM5MDk4OTkxNDRmNGQwYTRiYTkzMjcyNTUyYmZiMGRkY2RhNTExNjVkMGNhM2VhZTQ3ZDEwOTYxYTYyNjkyYmQ5ZWRmMmE5MzM5YzhhZDE0NDY5ZjE4MzRlZWUzYzNmYzEwNzRjYjE0OTMwNTRmODQyNzNlNGFkYzczZTVlZWM2Y2JhMjg0YzViN2ZkODAwNWYxMGNiNjdiMGZlMTZhZTBiNGZmMzBkNTBjYTI0NWM1ZCIKIAogSE1BQ19EUkJHIE5JU1QgQ0FWUyAxNC4zIFBSIFRydWUgKFNIQS0yMjQsIDE5MiwgMCkgIzMKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjI0CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjI0CiBobWFjX2RyYmdfcHI6TUJFRFRMU19NRF9TSEEyMjQ6ImJjMGM4M2RlMzEyMTdmZjZiMjJjNzE5ZGU4YzY2NTNmY2JkOGFmZjc5MjVmMDQ2MjRjNzZmNTg2ZWQzYmFiMzI0YjY0ZmE4YTFlYzE0ZWZhOGQ4ZDBiNDFlYjY3MzVkNTE3ZjZjNjQ3ZWY4YmVkZjMwMzZhNmNhOTBmYTFkMmM1Mjg3MjJkZTMzZjc2ZjczNzU3MTFiNmI0MTI3Yjg2ZmUwOTZlNzJjZCI6ImQ3ZWY2YjVkZDA5YzA4NDM3MzEzODcxMDc4YWM3MzBjMmY4NWE1YWJhZTZkNmUyNCI6IiI6IiI6IjZkNDE1YWZjMDE1MWMzY2I0MjZlYjNiOTBjMjA5ZmViNzI2YzAxZTI4Nzg1Njc4YmIwYjhkOTE0M2Q0YjdmMzFhZTA3ZTM4NDgxNjA3MmUyZGYzMTM1MGIxMzNhOGY0ZTNlZTE4ZjA0YjE1NGQxOTQ1MTNkOWIwNzJhNjk1ZTUyYmYwM2VlYjRjOWExZGY4NWRkNmVmOThkMjQ1M2RjMzkzOTBiYzNhMTdmM2NlNDk5ZDliMTgyYzg5ZDA1OTFkYzNkYmRiN2FlY2I2MjZiMDdmMGFkMjczN2JmODIwMGIyIgogCiBITUFDX0RSQkcgTklTVCBDQVZTIDE0LjMgUFIgVHJ1ZSAoU0hBLTIyNCwgMTkyLCAwKSAjNAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyMjQKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yMjQKIGhtYWNfZHJiZ19wcjpNQkVEVExTX01EX1NIQTIyNDoiY2FjYTJiODYzMTUwMmZiZDhiZWMzM2U4OTA2NmU3N2I5N2E1N2IwOWQyMWE5MmRjYzdiNjU4OTdlNTBkN2EzMTJmMjg3OTMyYzUyOWY2YTZmZDhiZTZmYWQ1YzQ2N2Y2YzE1ZjliYzBmMzk2NTNhNmU0OTYzYzBkNGM0YmFhOWQ2YWQzOWY0YWQyYTFkNjU4NzM3N2VjMzg5OGU2M2UwMmNjMGM0NTRmIjoiMzM2OTFkYTc0NjFkMzM1NTY1OWM0Y2E5MjdiNGQzZTNiYmZkOGU3NzViNTM1NTM4IjoiIjoiIjoiODlhYmU4ZTY1NjY2NzI5OTcwNWM0YzhiMjA4ZjBmYzQwMDg5NzM5N2QxNWFhMzU3NGNmODZjMGE2NDE1ZGQzMGFjNWQ3ZDhiYzYyOWQ4YmE1MmU2ZTVhZjYzODE4NDc1ODc0MjY2ZTk4YTQzYWI1ZDMwODVkMjg1Njk1MGU4ZDQ4N2VhMjJlMDFmOWFiN2ZlMTg2MmJlMWZkYjlhOTdjYzI0ZWI5YWQwNWJlZWJiMjAyNzE2NjA3ZThiMTY0Y2Y2M2NhY2I5MjUwNGU4MGU2OGU2NDFhZjcxYWQ2ZWU0N2QiCiAKIEhNQUNfRFJCRyBOSVNUIENBVlMgMTQuMyBQUiBUcnVlIChTSEEtMjI0LCAxOTIsIDApICM1Ci1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTIyNAorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzIyNAogaG1hY19kcmJnX3ByOk1CRURUTFNfTURfU0hBMjI0OiI1ZDk3ZGU5N2Q2ZjgxYTg1OGFkNmFlMDI2MmU1ODE2OWIyN2MyNWFkZmMyYmZmNTA2ODU0ZTZiZmQzN2YzYTRkOGM0YjQ2Y2Q3OGQwYTc2YjBkYzY3ZTBkM2Y5MGZiMDRjMjEzMWJjMzEyMzlkZWZjOGVhYmU5YmUwZmM1ODlhNTU0YTRiNzdmYTc5YzY0YzAzYmJmODdhMzIwMzE1MzBkOTliYmUzOTciOiJhMGQ4YmUzMGEwOTcyMDAyZjIxY2UyZDdjZjNjOGU4NDkwN2M2MzhlMDA5MzM1NGQiOiIiOiIiOiI2NzUzNmQ3MzUyYTQ5YTFhNDkxMTBhMWRjMWI3N2RkMTkyNGJlMzQxMjNlMDI3YWVhMGJhNjA2NGFlMGFhMDUxZDQ0NzBjY2JmOTIzZTBjOTZjODZmMmQ0NDBmMTdmNDViNjdjNGM3Nzg1YTZmNTAwNmJmMGNhZGMxMzI2OTU0MGIyYzU5YmI3NWY2NDJlOTY2OGZlYjYwMWZjNjBjMThiOTRkNjVlYmVhMGRmZTVmYjI4NGUwMDNhNTg4MzdmOWU5ZTEyMDQ4MWVjMmJhOTcyYzc1NWM2YTkxMzRhZjY4MyIKIAogSE1BQ19EUkJHIE5JU1QgQ0FWUyAxNC4zIFBSIFRydWUgKFNIQS0yMjQsIDE5MiwgMCkgIzYKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjI0CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjI0CiBobWFjX2RyYmdfcHI6TUJFRFRMU19NRF9TSEEyMjQ6IjljYTcxNDliMGM1Y2NiN2EwZjdlYzUzOTljNjQ0ZGJhOThjNDE4MzczNDYwYzU5OTc4ZDkxZGI1N2ZmNzE0ODk3ZWU3MWNhZjQ1OWMxZGMxNjQ2NTUxNDA4MTA5OTJmYTZjYmJiNzA4YmEyZTYxMDUzZDU4NjZiYTZhMWJiZGJjNjM5ZmQyMWJlNDM4M2JlYjRhNGQzNzBlODZkMGU5NzM5ZWY4NDlhZSI6IjJhZGUyZmZjMTlkZTdmYzk0NzY3MTkzMjIzYWExZmIzNDYxY2IyOWQ5NzBjOGYwNSI6IiI6IiI6ImIzOWQ2ZGI1MjlmYmIzYzZhOTBkNmI3MDU3NzU5YzI2YTlmYTI2MDI0ZDJiNjVlM2JmNDU5ODgxZmYwZjg4YTViOTNiODdlMDc3OTYzNTAyMmNlYTgxZGIzMTMzMjliNjE2MTM3NDJjYzgyYjUyZmZmMWEyZTZlMjRhZTBlZWJjMDkxN2Q1ZTQ1NzM0NjZlNGFlZTNmMGVlMDA1MzQ0NTU2NmVhYTA4MGMzZTcwMWJjMzVkNDBjZTUxMDViNGI2NTcyYmFhN2I0Yzg0YTE2ZTRhYWI1MDFlNmVmNjcwMTY0IgogCiBITUFDX0RSQkcgTklTVCBDQVZTIDE0LjMgUFIgVHJ1ZSAoU0hBLTIyNCwgMTkyLCAwKSAjNwotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyMjQKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yMjQKIGhtYWNfZHJiZ19wcjpNQkVEVExTX01EX1NIQTIyNDoiY2M3NTExNzFkODI4ZGJhMDIzZjQzMGIzZjVhNzEzNGY3MzNmNGNjMWVjNzY0OTVlOThhNmRjMmE2MjdkOTc5MjQ3MTZkN2U2YjA0M2NmMTVjNjJjZThkYTFkZGEyYTkzMGM4OGQ2ZDRkMTJjYTk5MmE1MDFmNzczZGZmNWQzOGU0MmYxNTBmMWM1NWVlMzU4YWJhMWU3M2NiZWJmNDY1YmFmOWZkMGE2IjoiNGJhNTBhNzU0MjQ5NzA1MjYwMjJjNzM1MTgzMWM1OGVlNzVmMWUzYWEwYzQ3NzQ5IjoiIjoiIjoiOGIzODdlNTViOWMxMGQwY2MzMzZmNTQ0NTc1NWMwYjZkYmU5NzFiZjY5YTA0NjgyYjIxYzkzMDNhNjZlMDkzYjdkY2NmMzNmYzY4NTc2NWM2ZDJiY2ZhMzAyMDg5MmVkMDljZTZlYTNlMzM1NWIzYmMxNjc0MWYzNGQ0MGI1Yzk2YmIwODVjMTU3NDgwMWQxNGI0ZjcxYzk3Y2Y2NGU3NWRjYzMzMGZhZmExZDFlNjI2ODIyNjA5YTlhZjYyYzg5NGRiZGQ1NjMwN2NjZjFlYmJiN2VjMDlkNTAwMDk2YWEiCiAKIEhNQUNfRFJCRyBOSVNUIENBVlMgMTQuMyBQUiBUcnVlIChTSEEtMjI0LCAxOTIsIDApICM4Ci1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTIyNAorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzIyNAogaG1hY19kcmJnX3ByOk1CRURUTFNfTURfU0hBMjI0OiIxZjJjY2QyOWJjMzhlODM2NGE0YmViMGU4OTk4NGI4OGQ2MWRjZDMxZDQ4ZTMxMGFlNjkxYzBlMTQ2ZjQ5NWI5ZDhjZjQ0M2VkMTJmM2FkMmRhN2M1OWMyYTJmNmI4ZGY0ZTAyMDI0MTQ3OTFlMTA2YzFmODc5ODc5YjdhNDZhYzIwN2Y0NWI1ZmVkNjljMzgzMDlhZGYxNWRmZDBkZDc1NzQyYzBkZjAiOiJlMGM0OWFlZTcxYzRjMDYwYWFjMWJhYjFmNDM4ZjllMmIwYzk2ZDcxMGViZmVmNzciOiIiOiIiOiI1OTM2NzdmNjVjYTQzMzljMGRkOGIxYWU5Mjc4Y2M0OWFkYWVmMWNmODg5NzYwYjQ2MzFhMzc5ZDgyYmMyNTEyM2RmZDJlMTQzNmQwYjZiODkwZDQxNTVlMzIzNmZjMWUyY2VmNjdkOGJjMDQ1NDA5OTA1MWUyMjBkNjkyNWIzN2M0NzQwOGZkYWNkZmQ1NGNhYjdiZTcwZjhiM2IzZGZjNWE4NmYxODFkZDU1OWZmNzE4MmYyMjVmN2RlODdkZDhiZDY5MTQzYmUyNzBjZTc2ZDI1NjJjNmUwMWJhNGM0ZSIKIAogSE1BQ19EUkJHIE5JU1QgQ0FWUyAxNC4zIFBSIFRydWUgKFNIQS0yMjQsIDE5MiwgMCkgIzkKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjI0CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjI0CiBobWFjX2RyYmdfcHI6TUJFRFRMU19NRF9TSEEyMjQ6ImYxYmVlOWNhZWNmZDAzOTdhNmNkNzZmMzU2ZWNhY2YxMDUzOTgxYzY0ZDMxNWRiNGE1MWEyNDRmZTNiMjJlZjk5NzM5MmY2NWRjMTNjZjMwZjViOGY1ZWRiN2Y4ZjU1ODYzYTMwMTU2NzIyNTM2ZDAyNDQwZTVmMDZlNTAzNzk1ZDI0MDE3NzVhNTYwNjg1ZjJhZDNjOThhYWFhMjI3MjZjZDZlYzQ1YSI6IjlkNDI2NzBlYTQxMTNhZTAyMzAyY2RjYzY2MGI0OTdmM2ZmYjE5YjlhY2E4YmFiZiI6IiI6IiI6Ijc4ZjMxYTI0Y2RhNDNhY2ZiYzRkYjdmMTdjNTc4MDVhNGI1MzM1M2Q2Njg1OTYyNDczNThiNDdlOGY4ZGVlYWNhMzEyYTdmOWNlNzg4MzJiYzFkYTJkNmIzNzI3ZmNiODQ3Y2E0ZmViMTY5NWEyZWRmZDJhYjI0YzQ4NmRhMTI1YmUxYzFhZjRmNzhiNzQ5YWZkYjU3Zjk3YjRhOGI4OTJmZDg3MjI4ZjExNmJhMTBmYTczOTA1OTU4MTI1NmRlNGZiODY1ZDExMTVjNTgyODRjYjk4NTBhMjRlNWI3NjE1IgogCiBITUFDX0RSQkcgTklTVCBDQVZTIDE0LjMgUFIgVHJ1ZSAoU0hBLTIyNCwgMTkyLCAwKSAjMTAKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjI0CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjI0CiBobWFjX2RyYmdfcHI6TUJFRFRMU19NRF9TSEEyMjQ6IjE3YjMxNDZlYTNhYzFhZmRjYTQ0NjI3NWYzYjc1MzlhNTE3NzY2YjkwZTJkYTJjNGM4NWRiNDgwMjk0M2VmY2Q4MDA5YTlmZmRkMDU0NDQwZGExNmVkYjY0MWEwNTBmY2UzZjNjYWIzZDVmMDNkNTUwMTExZGFlYWE4ODQxYTljODE0ZGVmNzZlZWM5YzRlOTEwNzg4YzcxMDU2MjQyOGEzOWNkMDk4NyI6ImYzODMxYzFiYzg1OWZhZDQ1MmE3NmNlNTEzNTc1YTIzZThiNzkwYzkwZGU0NTc1YyI6IiI6IiI6ImM2Yzg1OTM2Y2Q1MmI1MjcxYTZlNzA0MTBlMGI5ZDk2MGQ3NmYzMjM2YjU0OGNmZDRmZWEyNjUwNGNhOGE3OGU1OGVlOTE0YzZjZjI0OGYzMGQ3ZWUzNTQ3ZWVkZDNhNGQ5ODY5YjE1ZTMyNmM5MTFhYWVjYjdmMGMyMjFmOGViOTIwOGE5YjM1NWU0YjFjYzc5MjYzODBkMjViYjc3NmYzZTg5OTA0OTQzYjNmZGYzMDYwMTJmYzk1ZDA2YjNiN2M0NGVmNTVjOWVlZTY3NTE1MGIzMzJlMjE4MWYyYTMyIgogCiBITUFDX0RSQkcgTklTVCBDQVZTIDE0LjMgUFIgVHJ1ZSAoU0hBLTIyNCwgMTkyLCAwKSAjMTEKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjI0CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjI0CiBobWFjX2RyYmdfcHI6TUJFRFRMU19NRF9TSEEyMjQ6ImZhYmU1MjYxNzdkY2Q0NzZiZTk5NTAyMzNlYzU2ZjkxMjJhOWIwODNlNTg5YzkyNjRhZGQzMDJkNDc2OGMwNjAyMGNmNTNlNzcwOGJjNzI4NTgyMzYwY2JmMDZhMThkZTM4ZTNkYTI2NDJkZDY3NTFhYTY4NmRiZjExNzM0YmQ3NWE0MjI1NzFjOWYyNDIwOTE1ZDdkNzlkOWVmZWE4NzBlNzJkMjYyZCI6ImJhNTg1ODM0MGU2YTgyYjJlY2ZlMTE5MDIxNWJkOGRhOTk1ZWU4ZWY1NzJlZWQ4YiI6IiI6IiI6IjEwMjYwZGZjMmYyMzIyZjUzMDE5MmU5NmEyMzk2Njk0ZGVhZDYyZjliMjA2MTM3MTA4NjY2Y2QxOTk5MzkxODQ1MDNkYTc1NTk4ZjU0YTg5ZGZmODg1YTk4NTYxNDBiNTY2ODczNDdjMmMwNjZhMTU5M2JmZTAyYjhiZDJjZDkzZTkzOWM0MjRiMzM2ODNhMTM2NzhiYTVmMzRkZjNmMmY1ZjUwYjJhNzA4ZDFkNWEwNDY4M2RiMDBhNjA3ZTJmODBlNWZlYjIwMDg2ZTNkNjQyOTRlOTczMmIwNzc2YzUxIgogCiBITUFDX0RSQkcgTklTVCBDQVZTIDE0LjMgUFIgVHJ1ZSAoU0hBLTIyNCwgMTkyLCAwKSAjMTIKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjI0CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjI0CiBobWFjX2RyYmdfcHI6TUJFRFRMU19NRF9TSEEyMjQ6ImI3YzlhMWQyMjFmZTEwNTUyYmIwYjc5OWUxOGQxMmNmZmQxZjc2ZDZhMWU2ZGM3OWEzNjU4NGFjN2UxM2MzNTViOTMyM2QwZWYyZjk3ZmMyZDhhMjZlNmMzNzIwOWE0ODU5NjM3ODhhZWFiMDg0ZTkyM2EzNzk0YzYzNzEzYzJlZTI4OGJhM2E5OWYyZDQwN2FkZmMxYjg3YmE2NGZjYzVhN2Y5OGU0ZSI6ImU1NjNmOGM4MzE4ODYyYzcxMTdhZjg5NDY4MjNlODU3MGViYzY0YjNkZTFiMjkzZSI6IiI6IiI6IjEwMGM0NjBjMTJlNWFiMTJhNzJiZDQzNTFmN2I2MDhmNTU3ODA2MGIyNjJmMjFkNzM1ZmU3OWQxM2M5NDIwMzVhNzZmMDAxYWRmZDM5ZmU5M2NhYTIyYjYyNzRiZWMyODJlNjQwNDY5ZDNmNDU0ZDEwODk5MWExYjczZDhhY2IzZDM5MjczMmZjMjRjYWZiMTVmYmUyNDg0NDE0NjJiYjJjMTI3ODg4MzYxMGJhMjg0ODZlZjgyZWMyZmYzZDIwZWI5NjAxODY2YzdkYzRlYWY0NGNkZDczZTViNWFjMTRmIgogCiBITUFDX0RSQkcgTklTVCBDQVZTIDE0LjMgUFIgVHJ1ZSAoU0hBLTIyNCwgMTkyLCAwKSAjMTMKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjI0CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjI0CiBobWFjX2RyYmdfcHI6TUJFRFRMU19NRF9TSEEyMjQ6Ijc4ZTVkNDgxODk2NGQ3NDgyODJmYThkZDM4NmVhOWM5MjBjNGZjNWRkYjlkMjIwNGEzZjYyODUwODJiODA2NWRkMzk0NGNlMTkzNzIyZTk3M2Y4MzAwNzgzZTM3OTkxZTZjNGE2Mjg2YTFhMGZlMzcwM2RkNzhhZTk1MWM4OGEwY2U0N2IxYTIzZDkxZTA5MjYzNTgyMjE3MTM2NzBhNzg3MzJkNTQ3MCI6ImZhMDU4NTg2ZDM1ZjBkNzRkMmM0NzNlMDA1ZTdmOGRkYzMzYTFmNmQ1YmM3OWQ3NSI6IiI6IiI6IjZiNjAzYjA5OGNhNzRiN2ZjZjNjOGY5YjQyZGRlNWIzYjUxZTg0Y2FiNGY2N2Y0ZDg3YmM2NTc1YWQ0ZmEzZjFlMGVlMjcwODVmODhlMmE1ZWNmNGY1N2Y5YmE5MjYzOGU1Mjk0MTUzNTgwNmQyY2QxYjVhZWI1YjdjODFiM2Q0NGQ0MWNmNWI4MDczYjY0NmE5Y2MxYjBhOWY3ZTE4M2IwODJlOWYyMjcwYWNkOTI4NjIzZThhNDZiNDYyNTdlMWI4MjdlOGI4OGI1NWM4OGEzYTNhMDY3Y2ZjYjliMmIwIgogCiBITUFDX0RSQkcgTklTVCBDQVZTIDE0LjMgUFIgVHJ1ZSAoU0hBLTIyNCwgMTkyLCAwKSAjMTQKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjI0CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjI0CiBobWFjX2RyYmdfcHI6TUJFRFRMU19NRF9TSEEyMjQ6IjUwMjQxNzM5ZTNmMDhjOTEwYmFlYTdmOWJhNDgxNTExYjZlZTVkNjliYjFhMmRkMzRmMzk4N2EyMzFjYzI1ZjM5YTFhOTY2MzkwZTM5MWEzM2RjMjEyODEzNzI1ODllMmE2NjdjZGJiZTQyNjc3MTBkNTI0NGZkMzQyYzk1OWI3MjcyYjM5ZTVjZGY2NzcwMWQ0NzY2NWI2MTc4MjU0MWU5NGFhMjI0ZiI6IjZhN2QyZjJkY2ZjYWU4YTI4NDgwMmM5N2Q3NzkxN2U4N2M2Y2Y4NDE3YzJiMTZiZCI6IiI6IiI6IjQ0MDJhZmVlMTIwNDhjMWM2YTQ0NjI0ZDJkZjAyNjc5ODkzMGVjNzMyODg0ODk5ZmZkMjBkMTdmMWM4ZDdjMjIxY2Y1ZWRhYzg2NzlhMjFlZTExYjE3N2VjZmQ2MTkyN2Q0Y2NiYjE3NWVlNmI0OWNjNmYzNzE0NTA5MDRjMjY2NmFhZjJlNmNiMzZjZDU1Y2FlM2FmNzcyYmViODA5NTVjZjY3YjRlOGJlMWZjZTExMjUwYTM5NjkzZWNiN2Y4YWMwNWFhMjNiOTQ5YWM3NGJjOWE2NzA2MGNkNjBjYzc3IgogCiBITUFDX0RSQkcgTklTVCBDQVZTIDE0LjMgUFIgVHJ1ZSAoU0hBLTIyNCwgMTkyLCAxOTIpICMwCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTIyNAorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzIyNAogaG1hY19kcmJnX3ByOk1CRURUTFNfTURfU0hBMjI0OiJjMzAwNWNkYzVjNWI3YjI1ZWQ3OGM5Njg0ZjNmYWY2Mjc4ZjlhOWM1YTlmYjIwMjAxNGEyOTg4MmU1MGIyMWU1NmVjOGI3OTQ3ZmU4NzFkYWVjMjYyNmYzMjM3MjEyM2Y0NGE4NzIxZmY0MzM5ZTBhMjBmOTc4ZWEyNzYwOWViNDk1YzIzNDJlOWJhNzE5YmJkMmI0NGZmNTAzZGIyMzIyYWRhMWM5ODIiOiJjNDUwNjEwOTkzN2UwZjkzNTJmYzg4MWIwMzk2YjBhMTAzNjI2YTE1YWRkZmU1MjUiOiI2ZWU0OWM3NmQxMzhlYWEzZmMxMGNmNDExZTBiOGFkNTQ4OGQ3N2Y3NGZhYWNmMTMiOiI4ODI1MTIyYjUwNmRkNmYzYTU4ODExZmU2YzlhN2U5MjcxYTZlNjhkY2RkNTkwZTIiOiJlODE4ODg3Y2ExYzg0NzE3ZTI3N2JhZjAwOTEzZDY1ZWQ1OGE4ZjkwYjg3MjgwODBhMDMwNDNiYjJhYjUzZjU1ZmE2MDViYTBjZmFiMjliNGNiNjk0ZjZhYWU2NTk0ZGVkY2JlNmY3NGUxZjc1NzNjMjk0NGYzNzAzYjg5YTUyNzg5YjAxNzAwNzdlYThlNjZkODI5OWJhNWNjMTM5OTQzYWI5NjI1NDA2NWEyN2FiY2EyMDk4YTg1MTYyZmIwMWQyOTRkODY3MWIwMDIwNmI3Zjc4NDMxOTM4NGUwMWIzZCIKIAogSE1BQ19EUkJHIE5JU1QgQ0FWUyAxNC4zIFBSIFRydWUgKFNIQS0yMjQsIDE5MiwgMTkyKSAjMQotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyMjQKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yMjQKIGhtYWNfZHJiZ19wcjpNQkVEVExTX01EX1NIQTIyNDoiOWJmMmFiMTlhYTdlOWZmYzM0NjE1MjJmM2NmODViMzI5MmI1NGJkM2UxMDk5YTQyZGQ2ZjUzNDlkMTY5ZDU5YTE1MmIyZGNlNjc1ODc0YjY2NWZjZmY4MDIyNjBlYTg0YjM1OGY2ZmNmODAxMWI1MTE4MzRlODQ0N2E3M2MxZjY3NWI3NTk4ZDgzNmRjOWZiZjQwZjFkZDBmNDgxZjQ3Zjk1ZjNlZjRkIjoiMzhkN2EyMTA5YzZmYWQ5MjA1YWJjMjJiOWZmNzA1YjdmNjcxYzRiZGU1YjY2MmQ0IjoiYjQ2ZTkyOGNiNTllYWMwY2JlZDY1NjQ1NzY3ZTk2ZmQ4MjRmYTk1Y2I5NmExY2Q3IjoiNTMyYzhkMzc0ODIwNWNmYWE4MjZmYmE3ZjI0MGU5OTI2Y2QzODExZGE4ZmQxYTVhIjoiYmMzNjc4MzlkMTUxMDMxNmFjM2JhMTdmYjdiZjYzM2E2ZWI0YjYxZGMwYjAzY2YxY2NhNTY0ZGI4MjQ4Y2VkMGI0N2NjYjM2ZTczMGMwMjM3YjA4MTJhZjMwMzYxYjVkY2U2NjI2MzZiMjNmODdkNmFjZTgyY2QzZTM0ZDQ1YTExMzNiMzVmZjliOGJkZThmYjI5ZmU4MjI5ODgyMGMwYzg3ZjBlMzA4ODdkZGIxNWM5NjQ0YmZiMTI1NzhmMDg3OGE3MTA3NzFhZDIyZmUxNjkzNWM2NjY4MTM3OGY1ZjgiCiAKIEhNQUNfRFJCRyBOSVNUIENBVlMgMTQuMyBQUiBUcnVlIChTSEEtMjI0LCAxOTIsIDE5MikgIzIKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjI0CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjI0CiBobWFjX2RyYmdfcHI6TUJFRFRMU19NRF9TSEEyMjQ6ImEzYmZiZWQ1NTljMzk2YjgwN2ZmYTgwNDA5ZmM0ZTJjMjNiYTk1MmY2NGE0MWMwN2QzYWY1ZTViNzhkOGVmODgxNzFiZDUwMjJkM2UwMmVmZWZhNjQ0ZjRmZGRiZTIwN2U1OTM5NzYwNWEwNDA4YjAyMDFmNmE4ODJkZWY2NGQ5NzNjMDcxNDU1NWQyYzdlMGE2ZmRkZjQ5NTU4ZmQxMzI4MDc0Y2E3OSI6IjRjNjNiZWY3OWY3MWZhODIxNjg5Mjg2MTljZDA5YjAwM2FlYjJiYTJiMDQxNTBkMiI6ImM4NWJiMzY4YTgyZDU3YzcwY2Q1YWQ2MzI3MTg3Yzg1NTBmN2MxMDM4MGIyZjAzMCI6IjVkNDY3ZTljMDZlZTA1OGNhMDY2ZGFkZDZmNmVjNmIwZGE1OWVjYmFhNGRkZDEyZSI6IjFjZTMxMWM5MTljNjdlMTUxYjUxY2UzMDYwMzg0Y2E5NWMwNzFhMjk1ZjAxZTU0MzQ5YWJhYTJkYThlZjQ5N2VhMTM2NDQ1NDEzM2QyMGY1N2RhMjg5ODViZmM2ZDFkMmY1OGY4NGQxNDRjODVkYmUzYzlmZDVlODk1OGNlMDZmMmY1YWQ1YWY3ZTE2YmY5MGRkYjRhMWUyOTQ3Zjc4MDA4NDY3ZmNjMzhiNWEwODJlYjE2MTJkNjhlMzZlM2MwYWJmYmZiM2EzMjFlZWYzNzU0YWMxNmM0MWY5NmJkNjM1IgogCiBITUFDX0RSQkcgTklTVCBDQVZTIDE0LjMgUFIgVHJ1ZSAoU0hBLTIyNCwgMTkyLCAxOTIpICMzCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTIyNAorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzIyNAogaG1hY19kcmJnX3ByOk1CRURUTFNfTURfU0hBMjI0OiIxYjJjMjQxOWU4NTM4NjcxNjEzNWIzYzE0MmQ3NDlmMWY1YmMyM2VkYmY4YzBhMWM1M2I3MmY0NzQ0ODRjNTQ1NzYxYjIxYWVmZjA1Y2RkMzU2MjFkMTA0ZWUzOTNlNzkxNzM3YzQ4YzVhNmU2YjI1YjU4YzVjNWJlMjhlY2YxN2M0MTBjOWM5YzNjM2FhMmI2Mzg1ZjY2NzU5ZjMxYjYxZjlmZTAyODYiOiJiNjkwMTFmNDQ2ZTUwODgwYTE1YmIwZGQwMDIyOWY3NjViZjc3YjJhNDAwNDAxMDkiOiI2N2ViNjNhMTY4YWFkODcxMmEwZTdlMGYxNjJhZjdhYzc4OTNlOTAyZjFhYTcyY2QiOiIyM2JiNzUyZTYyMzIxNDQ2MzBlM2QzYTZkYWFhMWU1OGE1Y2EzMTVmMjFmZTFkOGIiOiJjZDhlNmM2YjhhMWY3Zjk4ZjVkNzk2MDIzZmRkNGYxZGEyZDcyZWVkYjk2YThlODVjYWM2NjFkYTI0ZGQwYTc4MTBmYTA0YmUwNDkxYzY5ZGI3NjE3NzEyNTgyYjQzZWM0YmYxMTJkOWUyOTMyMjg4ZjI1YjY0ZmI3YTJhMDlhYzg3NDdiOGY3MWNlNzVlM2M4MGI4NTQzMzZhMDQ1N2I4MDEzZWM2ZGMxMjY4YjRjN2U4ZjdkMzQyMmE0YTVkNDMyZjhkOTcwNWQ2YTI3M2EwOWI5ZjkyNzNmNDkyOGM0ZiIKIAogSE1BQ19EUkJHIE5JU1QgQ0FWUyAxNC4zIFBSIFRydWUgKFNIQS0yMjQsIDE5MiwgMTkyKSAjNAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyMjQKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yMjQKIGhtYWNfZHJiZ19wcjpNQkVEVExTX01EX1NIQTIyNDoiNjJkMDU5ZTNlY2I2OTUxNjdlOTNiM2NmZDc3Zjk2ZTY4MTk4NWFiNWQ2OGYxNTQ3M2E4OWY5Y2JjNDAxMmUxYzA5MGE1YTllNjVmNzM4YmU5MzhmNDRmZDZjYjE1N2ZkOWI3MzdkOTM4OWU0ZTU2YjY5MDNkNGQwMTVmOWQ4MGQ5NjMzNjczMGZkZjU3Nzg3Mjk2ZDQ0N2VhOTFkZTdlNjg2YzdhODFlIjoiZDhmMTIxYjJiYmRiODUzMGM2MzE1YzYzZTBhNTJlMzgzYzE2M2MwMzNkM2IwODU0IjoiODMwZTJjYWIxMTMzMWI3NjFhZWQ1NWRiNjE2ODFmZmZhZDNhNjFhMWEwNmFkZmVjIjoiYzc3ODNkNzM1N2ZmMzBlODhjZmRiYzkwNTY5ZGFmMDNkM2ZlYzhjYWY4OTYxOWZmIjoiZTQ0YzliMzVkM2I4NDdhOTI4NzQ4MDk0YmE2NzU0ZDFjNWRlM2NiZTNkOTBkNGUyYmQwYzBmMTlkYzVhZWQ3MjI4YzU0MTA0NGIyYjE0ZDdlNjdkY2MxNDhhYjA0YWJmZjdjMjJhOGYxZmRiZWM0ZDY4YWQyNGE3YzRiMGYwZTUwN2JkN2YyYjQ4NDU1OTMzNjNkYTQ4NGI0ODE5MDZmYjcyMDc4NDQ1OTcyMzhiOWQ0MGMxNDIzNzAwNGUyNzU1NzJhYWM2YTZkODRkMTUxZmE1OGFiYzA5ODdlNTRlMTgiCiAKIEhNQUNfRFJCRyBOSVNUIENBVlMgMTQuMyBQUiBUcnVlIChTSEEtMjI0LCAxOTIsIDE5MikgIzUKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjI0CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjI0CiBobWFjX2RyYmdfcHI6TUJFRFRMU19NRF9TSEEyMjQ6ImZjZjM4ODdiNDUwNWY3YTEyNzNhZDViMzJlMDY0ZmY1MTY4MmJjYTIzZWQ5NzRjYTk4MTg3MWE1YjdmNjNlNWNlZWU1ODEzMWY5YTAxZmE3YzM3YWIxNDE1MGM5MzIzYTAzZjY5NGU0NjM0OTZjNDE1OWViOGU1ZDNlYmM2MmY0MTI2NGJlYjkzMDk4YTQyYTNkZDQwNmI5ODNlMWZiMDQwZDEwOGY5MyI6IjliM2U5N2VlZDA3NzE1NWNmMTgxODI5MjMzODY4ZDI3ZWI3NzNjMzk4NTc1ZGZiMiI6Ijc1YTc1YTE1YzYyMmU2OWViYTY5OGEwNjRiMGI0MWM4YmM4MGVmODAzZGYwZjI5ZSI6IjdiNmEyMGEyMjJhODFkZmE2ZmQxNjRkZWY4MTZjMmI2NzA4YmQ0Yzc2MWIyYmI4ZiI6IjBiM2Q1MDFmNzI4ZDJmMWQ4YjBkN2RmZmRhMDE2MDE1N2IzMGQwZDk3OTMyMzE1Zjc3MDIyZDFhNmZiMzBkOWEwZWU0MzgzZjJmNjMzNzdhYzZlNTdiMTZiMGM3NDgwYTZmNWRkMTJlZDNlYzBiYzZmMTA0YTI2Yzg2NTkyZGFhM2Y2OGE0OTk1NzA3MDMzMDZlMmMyNDQ4ZTc4NGI2N2NkNmVmZGI0YWU2NGEyZThmZmE1OTI5ZTc0Yzk1YjY2M2M5YjdmZTg5MTYzM2YwN2Q3YjUwZjVmMTZlOWZlNTY3IgogCiBITUFDX0RSQkcgTklTVCBDQVZTIDE0LjMgUFIgVHJ1ZSAoU0hBLTIyNCwgMTkyLCAxOTIpICM2Ci1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTIyNAorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzIyNAogaG1hY19kcmJnX3ByOk1CRURUTFNfTURfU0hBMjI0OiI3YTZhMDc3NGYyY2I1ZGRjZTZiNTI0Mjc4MmZkM2Q3YjVjN2M3ZTMxY2I1ZmU5NTM2N2MwNmYyOWE1NDg4ZmEzN2ZlYjM0ZDY4OWM2NDZjZGIxNjJlMjU4YWQ2MzZhMDMwZmY3NGY2YTdmZjg3NjQxN2ZiMDhmNWM1ZGVjZGNjOTg2OTI1MzhiZWJmOTk1OGM2MjdhZDgyODc2MzNmOThjNTg3Y2RhZWMiOiJmYjE2YWVhNzI5NjdjNDNiODgwM2JjZGQzZTc5NDkxMWY2ZDUzZjJjYjc5NDZjZWUiOiI2N2Q4OTk0NzM5NjMyMmNhMjQzZTJjNTkxYTNhZGM4ZmQ5ZjFlZjQ0ODQxNGZjYTgiOiJhMGQ1NjhmNGZjZTg2MmU1ZTFiMjJhY2NhMjllNjBkN2JjNmNkY2Y2Y2MyNzc3OTQiOiI3NThiNDY4NWIwZGIxMDkzZWViZGUwN2JhMTEwODVhOWRjYWI2NGM4ZDVhZGFjZGEwNzBmZDJiMjkyYmVjNDkyNDBmMjVlMTU4ZmM5NmNiMWQwZWNjOWViY2NjYzM2MGI5ODFkMTQwZTNjZGJhNTRmYzY5NzMxMzAxNDQ1MGE5YWYyOWQ5ZDU1ZGNiYzViYjlhMzhlNGYxMGM2YTNlNDE4NzRkNWM2Njg4ZjIyZDBjNTcxNDMwMTA4M2NiYmQwMDE0ODgwYWYwZjdkMDg4ZGFiZWI0ZTg0YTY0ZjI2ZDJiOSIKIAogSE1BQ19EUkJHIE5JU1QgQ0FWUyAxNC4zIFBSIFRydWUgKFNIQS0yMjQsIDE5MiwgMTkyKSAjNwotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyMjQKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yMjQKIGhtYWNfZHJiZ19wcjpNQkVEVExTX01EX1NIQTIyNDoiMTliYmJiZmNiNzU1Y2Q5ZGMwMDBhYmZjMDMzNDNlZjY0MTkzMTQxYzNkM2Y0MzEyMGY1NTY3NDYxNmUzZDk2YjYwODZhZGY0N2M5MDY5ODE5MjNjOThlZjdkZDBmYmIyZjdhZjBlY2JiZDJkZTg0OGYyYjI1Y2JhODY1MWI3ZTNhZWFhMGM1OWI2MDVlNmQ0NzEwYTAxNDA2NTY1ZWEzMGQwYzRmNjhkIjoiZTc3Y2NlOWQyNmQyODNiYjVkNmU4MzAwYWQwZjY5ZGY3MjMzMjRkMjM5MjhjNmY3IjoiMDU4NmM3NjA1MTQ2MmQwNDgzMDcxMjEzODA0Mzg1ZDAxYTA3YmNiMjdkYjA1ZTA2IjoiMWM5MzYzZDBiM2U5ZjQyYjZjNzIyYjhkNjJmOWM2MzMwNjY1ODc1NzdmZTc2NmUzIjoiNmQ0NTgwNzkyNjRkNWYzOTQwZDA5OGFhZTA5MjY5MGI3ZDA0Y2Q0NmQ2ZDVkZGU3NTMwNjNiNzE5NDExOGFiNjdkMzg0ODQ1OTE1NmI4ZjAyMTZkODViNWM1ODNhMWJmYzAwMGU2ODExMWJlNDU5NzQzMTc1ZmQxMTQyNTNjYzI0ZGI3MmVjYzk3OGZmODYyMDMwMWVjYmYxOGY0MmZjNDY5N2Q5MTE1MDY0OWE4MjU0YTk4NTBkNWMyOGY5YzRlMTg3ZTQwOWU0OTZlMmE2NTliMmU3OWMwNjA3NGM1YzkiCiAKIEhNQUNfRFJCRyBOSVNUIENBVlMgMTQuMyBQUiBUcnVlIChTSEEtMjI0LCAxOTIsIDE5MikgIzgKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjI0CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjI0CiBobWFjX2RyYmdfcHI6TUJFRFRMU19NRF9TSEEyMjQ6ImMyYjU3N2JmZDgwMmI4ZjU5OWNhMTRiZGQ1ZmU1MDAzZWUyOGFlNjljYTVjMjQ2ZGY0ZjYyZDllMjFhNzc5MzI4MWM0OGY3M2ZmZWExNWYzYzNkNDQ0YmE0ODM2N2ZkZTA0Y2RmNmQ2MjQ5OGI4YWZiMjQ5NjZhODY2MjQ2MTAxNTEzNWNiNTUwMzRhNjM1NzFhMDMyZDNjZDJjMWU2Y2Y0YTY4NTVlZiI6ImYwZGUyOWQ0NTMwYjRhZjc1YjhkZWZlOWIzYjI0ZGNiN2NlMGFkZDRhZWQ2ZjcyZCI6IjkwYWMwNTcwM2E4ZTBjNjA1N2RkMmQ4YjFhNmYxNmYwMDU5ZTdjNzA2Nzk5MTlkZiI6IjE2OTM1ZjcwMGRlOWZlNTI5YTJiYmU4MTFkY2NhZDQzMGUyN2RiYzYwNTQ5YzNlNSI6IjU2OTg4ZjkzMjhhOTEzMTRlNGIzYWUwMjdiYzZmNDNhMDFmZTQ3MTYxNWYzYTMxOWFmZDliYjYzZjU1YjEzZTY4MWFjMGFlODMwZDRkMzA1Nzg4MmZlMjQ3Y2E0ZGVjYmIyNmFmODExMjgyZjU5ZWU4OWVhMzg2NDJlNGZmYWQ5YmRmYWU0NGJjZGJjM2EyODliZjQzMWUwYmZjNjgxNDhjMTJjZWQxODUzZTY5OGU3NGY3NGUyNGFhNDM0OTM3MzkwZmQ0MWNiNGU3OGY4MjNhMjYyOTAwZjJmNDRjMWZhIgogCiBITUFDX0RSQkcgTklTVCBDQVZTIDE0LjMgUFIgVHJ1ZSAoU0hBLTIyNCwgMTkyLCAxOTIpICM5Ci1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTIyNAorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzIyNAogaG1hY19kcmJnX3ByOk1CRURUTFNfTURfU0hBMjI0OiJiNWM0YWNjNjNhZTVjNjhjYTQwNGJkZWQyZDM2YTM5MWU4YjJlOWVmM2IzMmViNTk4YWE5NGZkNmI1ZWRlNmMzZDljMzNlYzc3YTE5NWFiYjZmOGNiY2FmYjZjNDkyYTFkNzhmMDQ0MzliZGM0NDIxNjhkMWVjY2M3ODNkNTNhOTJlMTZiOTBjY2JkYjAyODRiMzgzY2I5NmFmMDRlODE3MjhkMWNkYTAiOiJiM2U2ZGY1ZTlhZTEwYzYzZGE0MjY5ZGUxNzA1NTBiOTJkZGU3YzZlMzNhZjIyOGUiOiJjOTc4N2I2NDFiNWM4ODFkYWU1M2E2OWUyYjM1MTRjZTJlYTgxZTU4Nzk3NjViZDEiOiJlNGFiZWRjZmM0Y2M2OWRhNDU0NjdiZjJiZmIwM2Q4MjNhYmMxOWE3NDZlM2M1ODIiOiJlMTRmNDZkY2FiMGJhMzk5NjVmMTcwZjAxYTA3MzA4MDkwYjA1MTEyNzY4NWFkYTY2MDExMTJhYTIzNjA5M2Y3YTc2MDUzMGY4NTY2MTdkOWUwMjdjODI3OWVmMzNkOWZiYzRiNjI0YWUyNmEyNzdiOWU2MDc3YWM3MWUyZDJmMTAxYjg0ZWJlZDAwN2RkZWRkYjQyODZhYTQ3MjljYjNiMjg3OTgzODdiNzU3ZDhlOTlhN2I2ZDI2MzE2MDFmZTdhYjRjYWFkNzk4M2RlZGU1OWI5NGY0YzkyMGVmMWIyOSIKIAogSE1BQ19EUkJHIE5JU1QgQ0FWUyAxNC4zIFBSIFRydWUgKFNIQS0yMjQsIDE5MiwgMTkyKSAjMTAKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjI0CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjI0CiBobWFjX2RyYmdfcHI6TUJFRFRMU19NRF9TSEEyMjQ6IjczMDJlYTQwZTIxNDMwODEzNmI4NDI3ZTYwMWFkNjExMzJkMTk1Zjg3MGYyYTg2MWM3YjhjZTFmNjg2YmYzMjVhMTU1ZDBhYWUxMjExNDAxYmI4NDQ4OTNkYmEyOTA5MDYwYzc2Y2Y5Y2RhNzU3ZDllMmNiMjRmNTYwMmZlZGY2YTc0MTJmNDk0OTdjODI4NjZhOGM5YjU2ZTJiYmFmOTEyZjc2MDI1NSI6IjU4ZWZhYTc3YzliZjQ0NmNlOGQzZjNjZTczYjdkMWYwMTRiZGVmZmVhMmEyZmRkZSI6IjY4ZjllYWIxODkzMTg2ZDdlNWNmM2E4YzM3YmYxYzIyOTM0NGFiZGNlZWNkOWRlNSI6ImEwZDNiZjFkZTYzMmZiMTljYTUzMjZkOTM2Zjc5YWFmZTU5YTBlODA5YjEzZjEwYyI6ImYyYzZhNzE3YWIxMGE5Y2M4OWY2ZDNhMDdiZjYwNzdmYTMzYzJlNWQ2NzQ3NWViY2RkMWI4OTVmZDAwNjc5NDFlZDNmZDhmMjUxMzUyNDAzYzI2ODBkZjIzMTlhODgyZjM5YTkxZjhjY2I3ZGYyYzA2YTEzMDM3ZjA1Nzk2MmUyM2I4ZWEwNjU0ZWY5YmZjMTliNmVjOTgyZTUzOWVhNmFmY2QxMTQ1Y2VlNTgyZDI3YjcwODY5MTM1NGI0YzM5N2E1MWQwMDRjNjE2ODdjMWM5Yzk0ODU3NjAwOTAwMmVlIgogCiBITUFDX0RSQkcgTklTVCBDQVZTIDE0LjMgUFIgVHJ1ZSAoU0hBLTIyNCwgMTkyLCAxOTIpICMxMQotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyMjQKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yMjQKIGhtYWNfZHJiZ19wcjpNQkVEVExTX01EX1NIQTIyNDoiNDhjZTMzNGZjZGVhZTYwM2M1NGZjMjI4NDYxZTcxNzM2ODFhOGU4Mzg3ZTBjMDQ4YzJhY2ZkZDZhNzhjOTU1ZGViN2RjMjViZWE0ZTk5MjRjNGEyYWUyMmQ5ZmI2YjIyNzQ1MmFkZGQwYjZlZGE3NzY5ZjljZWFhZjJjYTM0NTY4YjNjMTk4ZWJkY2Y1ZjZlZDExZjg2MzA5N2JkNTZmNDJkNjQ4ODYyIjoiNmJmNGMxNzNkMjY0ZGNlMDNlNDc1ZmIzYmRlOWZjYTI0NzQ4Nzc2MjdiZmIwYzVkIjoiMmE3MjhmNDYxY2UxMDY3ZGQzODg5NjAwMjcyNGI0OTY3YzFhOWNmZWNlY2QzNDM3IjoiMmI4NjJjZDdhOTRjMTc3NmIyNjAyMmMyN2MwZTRmMmQxOTljY2I3ODJjYWFlNmRkIjoiMDdmODAzMjZlYTc4MWJkOTVlZmU3Mjk4NjdkNmMzOTQ2NTIxM2JiNjk4YjVlNDg2ZTZjNWYyN2QzZmFjNGZkYTNjZmI3YzgzMWZlNjI5MTA2MmQ0ZGIyYWZmNTk3ODFlZmI0ZjRjZjQyODIzNmFhZDZhNTUxMTFiOTY5ODg1YTZiODUxZDU0NjIyNzhkMDg2MzkwOWEwNzc5NmU1ZTBlODQ0OGZjMGQ2NzRhNDQwOGNkOWU5MWU5OGUzYWRjZWMyMDY0YWQzN2RjYzU2NmZhYTgwMTQ5NTE5ZjVlYTI2MWMiCiAKIEhNQUNfRFJCRyBOSVNUIENBVlMgMTQuMyBQUiBUcnVlIChTSEEtMjI0LCAxOTIsIDE5MikgIzEyCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTIyNAorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzIyNAogaG1hY19kcmJnX3ByOk1CRURUTFNfTURfU0hBMjI0OiJiMjNjNzQ4YTljOWQyMDZlZDRjZTZiOGJhY2I2ZjdlMTdjYWNmNTY0OWVhOGQxZTExNDRhOTZlOTc3YTRjYjIyYzBmMzcxMzljM2VlZGJjYzhiOTAyNGM2ZjIxNDEyZjE2MDBmY2RlMTQ4OGY5NTc0NDQ0NmRmN2I2ZTIxYTg1ODIyNGI5Mjk0YTc1ODI5YTAxNDY5N2NjNGIzNjNjM2FkMGUxNTJjYTYiOiIzMjViZGJkOGMxNGI3NjZkNGE3ZmYwZTE0MTI4NTg1YjIxYWY3NmRlN2NhMzBmZjEiOiIyZTAwMmE0MDZiYjgwOTBlYWU2Yzk1MDk0NGE0ZDY3NjhjODlkNDNjYzBkOGJkMTciOiI0ODI4NjIyZmY1NmQwODY3YmJhZDAzYmFjNTFiOGM5MzlhNWRmYTMzYTM2MmIxMjkiOiI1OGNlYmRmNDY3NmEyMWRlZDVlYmE0ZGQxOTQ1MmY1ZGVjOTA5YzU4OTc1MTg3OWVhNDI0OWE0YzlmZWY4MzRkODVkY2ZjOTVhZGE4MmY3ZmJhMTQ3NjQ1MTc3NDAzNjI0NmQ3YTQ5NmQ0ZDQyN2YzNzY0N2ViYzEwZmMyZTExMjViMGI3MWRhMWZhNWYxNDc5YzU2ODFlOWQ3YWNjOWI4OGI1MjczOTA3MzRkOTQzYmZmNmE3NmM0YjIyYmI0ZjZhYzMzMWY3NzEwYjk1ZjY4MDZmYTM1YTI5YTJmYTM1ZiIKIAogSE1BQ19EUkJHIE5JU1QgQ0FWUyAxNC4zIFBSIFRydWUgKFNIQS0yMjQsIDE5MiwgMTkyKSAjMTMKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjI0CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjI0CiBobWFjX2RyYmdfcHI6TUJFRFRMU19NRF9TSEEyMjQ6IjYwNmYzODhlOGFlMzVmYWY5Nzk0MzQ2NTYxNDQzNzA5OTFlODliNzQ1N2NhNWI1NWQ1YmYyYjQ4ZmU4Y2I2NGY1NDlmNDhhODEyZWRiYmI0Y2ZmODk1ZWZiMjFjOTBlYjI2YzFkYjIzOWVkNzJkYTQzNTA0YTFlMDljNTZmZTE0NGYyZDA5MjQyZjI2NzBkYmUyNTYxNDU2ZDkzODM1MjEyNWIxOTEzMSI6IjVlMDM5ZjM4ZDZmOWE5YzRlY2M2NzE1OGY0MGQzYzhkZTYxODA4ZmQ3NDc2ZmJmNyI6IjIxYzdkOTc2ZGE3MWJjZGU1MWEzYjRiYzFiOWE3OWNjNmM0Y2E1MWVjOTkyZTQ3OSI6ImJhYzFjNTkwNDgxNmMzMDQwZWI1MzI2MjJmMTI3YWMzZTI4Y2Q3OGJhNjg0MDRhOSI6IjVmOTUxZGQ3NzRiYzFhMDgxOGIyNDlmZmM1MTM0OGJmMWYzNmFhNGI5ZDZhMzM0OGQzNmRmODRiNWQzZTgyNGFkY2RmOGI4N2ZmZWNmZWMxM2ZlMzZjYTM1NDYyNWFlOGRiOGE2OTcyMjI1NGMzZjZlNzAyN2I4NjZjNTI5ZjliZWQyNTM2MGUwY2VlN2NlNDFmOTk2ZDUwZDIyNGEwOGU5NjVlMGU1ZGQ2N2E3NzE0MmUyYTNkZTBkNTU5YjlkYWU4OTE5YWQwMzg3YmE1ZmRlZjY5OWU0MjAxNmQ3MjkxIgogCiBITUFDX0RSQkcgTklTVCBDQVZTIDE0LjMgUFIgVHJ1ZSAoU0hBLTIyNCwgMTkyLCAxOTIpICMxNAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyMjQKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yMjQKIGhtYWNfZHJiZ19wcjpNQkVEVExTX01EX1NIQTIyNDoiYmUxNmNhNTI1NTFhNmEwNjU2YzQwNTM5ZTMxNTVlZWJiYzQxNmNiZmUyMTIxMDFmOGVkYzJmNzExODQ3MjkwN2FlOWIyYjk1NzRhYmU4MTI1NzUzMzExNTQ3MjYxMGFiNDAxZDFjZTFmODk5ODg4NGFmNDNmYTU3NzZhNTlhZTM4Yzg4NjMxYTA2NmZhODVkMjRkZmM5YjI1NDdjYWFlNTk4Y2QwZmE3IjoiZWQwMDBhZDJlNDc5NTEzODYxMDE0ZThmZjQ1YTQ4MWE0OTRhZjMxMmQyZGQ1NTYzIjoiZmViMjk1Yzc0OTc1ZjFlMWM3Mzg5ODhmYzcwYjlkMjYwM2M3ZGE5MzgzMjE1NGExIjoiNzY0NzA1NjgxYjc3ODE1NzNhZjgxMWZhNzc1MWRiYzI3ZDY2N2FmN2ExZTU5ZGNlIjoiYmE0YTA1ODNkOGQ2YzViNDIxNmEwODc1Y2ZhZDU5NDQ4NTg1OGRjN2Y5ZWYyNjVkNGVkMGMwZjBmYmZjYWFmNWFlMzE4ZGYyZDdmYzUzMDMwMTgxM2Q5ZjQ5ODI2MDMwNjI1ZjdlYTAyZDA2MzBiMzU3M2M0ODZiMWZhMGVmNDI2OWNiZmI2ZmI4NjY3NWMxMWZiN2MwNTcwY2Y3ZmY0ZmM3YWZmZGIwMDYyNWFjNDUzYzIzYzIyOWE0ZWE1ZjU0MGM2NmYwMzFhYjM0NjJmN2QxMjY1OWVlYzk5MDUwMWYiCiAKIEhNQUNfRFJCRyBOSVNUIENBVlMgMTQuMyBQUiBUcnVlIChTSEEtMjU2LCAwLCAwKSAjMAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIGhtYWNfZHJiZ19wcjpNQkVEVExTX01EX1NIQTI1NjoiOTk2OWU1NGI0NzAzZmYzMTc4NWI4NzlhN2U1YzBlYWUwZDNlMzA5NTU5ZTlmZTk2YjA2NzZkNDlkNTkxZWE0ZDA3ZDIwZDQ2ZDA2NDc1N2QzMDIzY2FjMjM3NjEyN2FiYzYwZjI5OTkxMDBmNzM4YzEwZjc0NzkyNjc2YTNmYzRhMjYyZDEzNzIxNzk4MDQ2ZTI5YTI5NTE4MTU2OWY1NGMxMWQ0NTI0YzkwNzFiZDMwOTYwMTVmY2Y3YmMyNGE2MDdmMjJmYTA2NWM5Mzc2NThhMmE3N2E4Njk5MDg5ZjQiOiIiOiIiOiIiOiJhYmMwMTU4NTYwOTQ4MDNhOTM4ZGZmZDIwZGE5NDg0Mzg3MGVmOTM1YjgyY2ZlYzE3NzA2YjhmNTUxYjgzODUwNDQyMzVkZDQ0YjU5OWY5NGIzOWJlNzhkZDQ3NmUwY2YxMTMwOWM5OTVhNzMzNGUwYTc4YjM3YmM5NTg2MjM1MDg2ZmEzYjYzN2JhOTFjZjhmYjY1ZWZhMjJhNTg5YzEzNzUzMWFhN2IyZDRlMjYwN2FhYzI3MjkyYjAxYzY5OGU2ZTAxYWU2NzllYjg3YzAxYTg5Yzc0MjJkNDM3MmQ2ZDc1NGFiYWJiNGJmODk2ZmNiMWNkMDlkNjkyZDAyODNmIgogCiBITUFDX0RSQkcgTklTVCBDQVZTIDE0LjMgUFIgVHJ1ZSAoU0hBLTI1NiwgMCwgMCkgIzEKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBobWFjX2RyYmdfcHI6TUJFRFRMU19NRF9TSEEyNTY6IjM3MWQyZDNhNTBkOGZlZjQ2NWIwMmQ1N2YwZjEwMmU4MjBjNjI0YjBlMTE3MDNiYjgxYmFkZjhiMGNhMTg0MTU5NGIwYmQxNmMxZmMwZTVlMTIzNWRmZDQxNDA4MTE2NGM1NGZmZDA1NmM5Y2RmNjg4Mjg0ZjYxNWNmYjQ4MTRjZjI4YWM2ZGFjMDU3NTZlMDdlNmJjOWY1NjAzMzY2NmFlMzU4MTlhZTM1OWQ1M2FhZDE0YWRjOTE5OWVhMTU0ZTQ1ZWUyYjA2NDk1NWE4ZjMzNGI5ZjYyY2VhMjNkMGIwIjoiIjoiIjoiIjoiYjQ3NGRkYzY2ZTRjYWMyZmRiYTE5NWNiOWM1ZWU1MjFmNGEzZWJjMjRlMzcyMmRmMjgxNzc0YjdjOWFjZmE4N2JkNWI4NWMxZTRlNTU5ZTI4NTlmMjM4MmVjYzNhODIwZDc2Y2FjZGYxMGFkNTU5NjkxYjcwNTliNGU3ZjNkOWE0NDUzZmZhMjQxNjI3YTNhMjU4YjM0MzlhYjdmNTkyZTk1NzUxYzgyNmI2Zjg5YzkyZDFmODVmYzg1NWQyMzEwNDVjNDA1OTQxYjlhOGI1MTAxZjc2ZTZhZmVkOWMyMDMyNzEyZWI1YzYwYzE2YTdlY2ZjMjZiYTBkNDdhZGYwNCIKIAogSE1BQ19EUkJHIE5JU1QgQ0FWUyAxNC4zIFBSIFRydWUgKFNIQS0yNTYsIDAsIDApICMyCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NgogaG1hY19kcmJnX3ByOk1CRURUTFNfTURfU0hBMjU2OiI2MGU1Y2MzYjI2MGEwZmRiOWU5OTRiYjdjN2I3ZmMzMmVmMDExNzgxM2EzM2I0ZjZhZjEzZWQ4MWE2MWVkYzNjNzIwOWJlYjkzMzY4NTVmZTIwN2ZjZmI3NzM1Njg5NGI0ZmJhMGI3YzNhOTNjZjZjZGZkYWZkYjRiNTZjZjA5MzhmMmNjMThlZDU0YTAyYTM1NTEyNDdlZTEwZTYwNmIwYWFhOGQzMGNiZTBiZGQzNzgxYTFiMjM4ZTE5Y2JkODZhMmRiZGNhYTlmOTRjM2QzOWY5ZGViOGM0YTY4MDFlNyI6IiI6IiI6IiI6IjYyOGFkMjBiYWQ4OGU1YjBlZTMwMTA3NjQwMjQ4YTgxZjdjMWVmNzdmNzU3YTQwZTUzOTI3ZDNiMTBhZGM1YjczNGQzNzlkNzFhMjhiM2ZiYzA3ODdkNjA1NGNmYTkyNmE1YTc0YjQ2NGI4MThmOGQxODU0MzA3NzNlN2FiMDU1Zjk2NDdlZWMwMWE3MWRjZjY4MGFiZjc1ODkzMjllMTI0OGFkOWRmMjA1ZDEwY2VjY2QxYmRmZTRjOWIzZjZkN2I4MDRjNTExNGMxNDA2ZGI4M2M5MjFjODI4ZGYzNmY1NzU1ZTk4OTUyMDI3NDY2OWY3ZjA2ZjU1NTBjOTdkNGYiCiAKIEhNQUNfRFJCRyBOSVNUIENBVlMgMTQuMyBQUiBUcnVlIChTSEEtMjU2LCAwLCAwKSAjMwotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIGhtYWNfZHJiZ19wcjpNQkVEVExTX01EX1NIQTI1NjoiNWI5MzIwNzQ4YjFjNGM0NDYyNGIyNjUwNGU5ZTk3NjVhMTM2Zjk2NWM1YThkNzg3NTg1MzkxNzgyYzc0MzJlMzNlNWQ5N2E0YzA1Mzk0ZDU3MDQwMmI5MDhmNTRiODBjYWZlOWJlN2ViYTZjNGM0NDI0ZmY1M2FkY2E1MGI1MjJhMGVjMWI1MWVmZWEzNWJmNDc0ZmM2YTBkNmFhNjdkNDQ1ODJjMDFmMjg3ZjhhOGE5Y2FlYjU3MWUyNmY4NjEwMDk5MGU1NjMzMTM5YjU2ZjRjNzMzY2Q1YWQwOGM0ZGYiOiIiOiIiOiIiOiI3MDg4MzMwMGVmNTc4Zjc5NmQ4Zjg1YTMwY2Q4YjllNGUyYzI5Zjg0YjdiMTI3ODM2NDUwNTcxNDA4YzkyYjVhMWI1YmIwNDBmODNiY2VkNTA4ZjI2ZDcwNjZlZTBiNmU2MzY0ZWViMWM2MzlhNTI5MjA1MGY3NTVmYzc4ZTgyOGMwODA1NGIxNGUzYTk5OTNjMjY4NTc5MWUyZWIxZGJmMjU4Y2I3NjJlY2RlMWFhMmVkNDFmYzAwNGFjOTg5ZTBmYzI2ZTI0NWVjODdhOTYwMDRjNWIyOGM0NWQ4ZDllMDgyOWJkYjY5NjEzN2Y5Yzk0NGY1MzhjMjhiZTM0YjA1IgogCiBITUFDX0RSQkcgTklTVCBDQVZTIDE0LjMgUFIgVHJ1ZSAoU0hBLTI1NiwgMCwgMCkgIzQKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBobWFjX2RyYmdfcHI6TUJFRFRMU19NRF9TSEEyNTY6IjM1YTE3ZDEyNTE2MjhmODJkYThiNGIzNWI5Nzk3ODNmNTBlNzZiMmNkNzdlMDNhYjJmNjRkMjlkMjZiMjJkODJhN2I4OWNjOGJhODVjNzBlMTBkNDJhZGM4MGRhMDE0YTExY2JhYzUzNDJkNDY2MzRkY2JiMzNiYWVhMjc3YTY3YWZlYzIzYjNmNTA4NzVlNGI5NjViMzU2NWRlNjZlMzYwMjVlMGRiMjUyYjFiMzFlNDU2ODNhOTY3NmI1NWY0NjJhYmJmNjg4N2ZjZDc3MDU5OWIxMjNmMTA5ZTVjOWZkIjoiIjoiIjoiIjoiODZlMmJiMGY1ZGRkOTM4OTc4NjkyZWY5M2QxOWQzNDg2NWEwNDQ4NGNmODJhYWFjZjQ1NDYzNzhlMjE5OGEyZDgwNTBkZGY1M2FiNjE4ZmI5OGY5YmM1OWE2MTRlM2Q2MGJlMDZhNTRlY2NjN2UzZTU0YmNlN2FmYWY5NzlhNmZmNGQ3ZmExOWE5ZDc2Njk2NTZmYTIxZmJlZmE5YTcwYjEzNGMwMTg0NGMwYjg1YTg2YjlmOThhMTQyNTUxNThhZThmNTgyMmVlNTA2Zjg4ZTgxZjA5NzYwODEwYjE5ZjQxMjlkNmI0N2ExMGQ4ODM3ZDYzMzY3MTU1OGVjMzc3MSIKIAogSE1BQ19EUkJHIE5JU1QgQ0FWUyAxNC4zIFBSIFRydWUgKFNIQS0yNTYsIDAsIDApICM1Ci1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NgogaG1hY19kcmJnX3ByOk1CRURUTFNfTURfU0hBMjU2OiIzZDZjNDBjY2VlYWNhMDYzM2MyZGM3MWI3MTM1YmU5ZDY0ZDA3YWE4MGU2ZjNhODZmNDM3NzU4NTVmMTRkM2E0ZjViNzAyZWM2MjJlMGM4NGViM2ZkNDY2MmFlMTUwZWMzNjRkMzQzZmQ4MDY4Yjg3YThiMjllOWRhN2YxODFiOTFhYTAwMjYzOTk4MGRhNTQ4OTcyMDA2ODgxNmRmMTQ0Y2UxYzAxZWEzODkxNWI2MjA3Mzc0Y2FlNjI2ZjcxOTlhNDJkNDdjOTIzMjA5NGQxNmEwNGMzNjhmMGMxMWQzMCI6IiI6IiI6IiI6Ijc1ZWI3YTc0MGI2Mjg0MzU4ZjFiMmY3YzhjMTg3NWMwMjdlZWIwNWUwMzUwMTc5ZjdiZmRiYTIzZGM4MjMyODVjYmMzM2NmYTZjYTIyYzhlNzBiYmEwMGU5MDNkM2Y3MWNhNjZhMWQ3MDgxZjc0MjU3NDYxM2MyZTg4NTRhMGQwZTU5Y2JhYzE3MzU2YjFhYmI2NWI1MzNiZjU2M2Q4MTY5NzAwZTE5NmQ3ZDFlMjViZThlNGVkNDUwMjI5OGIyMWRiYThlZjgyMmM1NjU0NDNjNDZhOGVjMDhiZjNjYmUxMWFjNTFlYjc2NWU1M2QyYjAzNWE4YWZhMjllZDExNDciCiAKIEhNQUNfRFJCRyBOSVNUIENBVlMgMTQuMyBQUiBUcnVlIChTSEEtMjU2LCAwLCAwKSAjNgotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIGhtYWNfZHJiZ19wcjpNQkVEVExTX01EX1NIQTI1NjoiNjE3NGVhMTI1MTAxZTM0ODUwZTExZGNiYjBlNDhkZmVkNzgzNGVmZDQ1ZGM5ZDE5NmE0MmU5YmJlYmM5ZjAwODUzNDY3NTcwYmFkZjM5YWMzMzY2MDg0NjgyNDkxNDc5ZWM1ZTgwYWY2ZDVlNzNlMGNlYTQzZDFjZTE1YzI3N2NjZjViZWUyNTRjMmQ0ZTU3NjIzYTE3NjUzZDQ4YmQ4MmQ4MDFiMGNhYjJkZjI3ZjgwNGUyM2U0ZGMxZGFlMGI3ZWI2MTYwMjY0YzhjYTQ3MTJkNzc1OTcwYTg3NTZhMGUiOiIiOiIiOiIiOiJhOWQyNjljMzc3MWUxZmQzY2YyYTVmNDQ3MGM3ZTY1NjBjNGRiMDA4Y2NlMGY0YzBkMWVkOTM5MTU3NTY3Y2JmY2MyMzUzYzE5ZTVjMWI1MzVjMDJkNTYwMWI0NWVhMmExZDgwNDViNDJkZjY1MDhiNzM4OWZkZjM1MGMxMDdkYWUwNWRhNGU2ZTFjMDc4YTI2YWVjM2QwZWU1MjI1YTY4MGMxNWM1NjNlMzcyN2QzNTJiYzI1N2QzYTRkZWZkYTQ4ZTZkZmRkNWM3MDAxNDM5Y2M1ODdmZjAzM2M1YWZkM2IxZmI3YzYxOGIyMTEzNzM2YTM2MjA1OGFkZjEyOTY4IgogCiBITUFDX0RSQkcgTklTVCBDQVZTIDE0LjMgUFIgVHJ1ZSAoU0hBLTI1NiwgMCwgMCkgIzcKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBobWFjX2RyYmdfcHI6TUJFRFRMU19NRF9TSEEyNTY6IjZhN2RmMWVhOGI2ZDkyZmI0ZjFiNjZiNjAxNGM5NzQ2NmE5YjllZGZjNjhkZTY0N2E4YTRjMzZkY2IwZjRkNzc2YmIzNTNiYmQ1YzE4ZGRjNWFhMjc0ZmYyOWFiZWNjOTQ2ZWVhZTdlYjdlOTMxNjczYzFiYTg4ZWM5OWQzMTA1MDU5ZGQxZjlhN2JhODE0NWUwYmM4NjQ1OWU1MjUwMjhkY2U2MjU2NGE3YmJiNTQ3OTMyMGQ3NWNhZmU0MGI0YzdhMGRhYWEyYmVkNWE0OGEwZWFlYWFhOGQ2Yzc2ZDFiIjoiIjoiIjoiIjoiMzJlNjY4NzJmZmJjNmQ5M2RhN2Y5MjNmODI1NzRlMzI3M2M4MWEyODkyNTcyNDZkM2U2OWI5NDM2NTExNWUyYjkxZGRjYjA3NzAzNDkxNGYwYmYzYjU4NzFiNjJhYjc3M2RlY2QwMDEyMWM4NzQzOWFkNTMxOGFkZWFjMzFhYzAyNGI0NmU3YjQ5Y2VlNWZlMGYxZGFlOTNhNGI5M2Q0MjQ1YzAxNmFlNmE3YmE3ZTllOTg1N2EzOGI0YzIyMGMzYTMwOTAzZWFiYWEzMjEwZDkzYTA4ZjcwMzYyNmVhZDA3OGQ1OWIyOGE0MmQ3NjA4MWU5YjY3ZDdhYjY4YjM2NiIKIAogSE1BQ19EUkJHIE5JU1QgQ0FWUyAxNC4zIFBSIFRydWUgKFNIQS0yNTYsIDAsIDApICM4Ci1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NgogaG1hY19kcmJnX3ByOk1CRURUTFNfTURfU0hBMjU2OiIwYTkwNTYzMTk3MzUxOTFkNGVhYjNiNzBmNTMzZTU5YjBhNWE3MGFlZWI1YzAwY2RlYWE1ZGQyNmJhN2FmMDlmMmUyNTliZDRlMDRjYzlmNWJhOGI1YzhkZWRmN2IxNTVhMWFkODExMmQ2YjFkYWVhZDM2Y2RkMzM3MjY2ZmFiNjVjODU4MjRmODc4MjE5ZTYxMWQ0OGM0ZjczYWM3YzBiOTZlNDA3NjJjODdkMWE3OGU2M2UzYjI2NmY1ZmQ3YjljZTg2MjUyYjliZjQ2YjA4NTUyMzg2MDJjMDk4MjA0ZSI6IiI6IiI6IiI6IjBlYTE2NjJmMGI5NWI2YzFjYmViODJmN2I3NTIzZWJhM2Y1Njk1NDRiMDg0MWY3OGIxYzA1ODA5ZmRmZmI3NzZlYWE2ZDFjNzdhOGI2MGRkYzY4MGMxOGVhZjkwOTYwMTNkMmY0YmJkNDE2MTdlM2M0ODJkMjlhY2E4ZDg0ODIyYzA3YjU1ODI1ZTQ2YTI2YWJlN2MzOWZlMTdkMjIyOGUzOTljYjg4ZTM2ZTQzNTQzOGNhOTE5YjM3YTBmODY4ZmI1MjQzYWZkYzJjY2NlYTNiMDZmZDMxM2FiYTY3ZGM2ODgyMDM4NzhkMmJlMGY0Zjg4NjRkODMxNjIyYjZmNGQiCiAKIEhNQUNfRFJCRyBOSVNUIENBVlMgMTQuMyBQUiBUcnVlIChTSEEtMjU2LCAwLCAwKSAjOQotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIGhtYWNfZHJiZ19wcjpNQkVEVExTX01EX1NIQTI1NjoiOWVlM2ZjYTc3NmY0ZTczMzZmNTMzNmU0MjZkODIwODg0OGM4NTRjN2IwYjI3MWQ2ZWM4NGRkM2U4NmE4NmZhYjQyYzA4MjVjZjJiZTc2OWY3ZTMxOTI0YjM0YTNhNzYwYzk0ZDBkYjcxNGIyYTA5Y2NiZTI2YjJhY2M4MDcxZjA4MzMzMmMzZWY1MDgwMmIyYWVlMWVlZjE5NWI3NGU5ZWJhNTJmYTQ5OTAxZDY3NTg1YTc2NmE5NDY1ZDNkYjg0M2QzZjBhNGEzYTlkNTM1ZGQ5NzZkZDk4YWVkZDlkZjgiOiIiOiIiOiIiOiIxYzExNTFlOTc2YmRiOTQ3YmRmN2JlZDEwOGM3NDI0MjhhYWIyZTZmNWFjN2NiY2NhNmZjZjI0NTlkMjQxMGJmNmFkODk2MzZiMDIzMzdhNDUzYTIxYmYxYWE3MmYzOTNkZWFkYzkyNWY5YTRkYzdmZjk3OGJhODM3YzU4ZWEzMDI2N2NmZTYxZGJjYTRhMzY2YjlhYjk5MDRjYTYyMjNmNzZkMmQzM2Q4ZDNkZWI5NTljNmM1N2JhYmEzNjhlOWU2N2YyZDlkNGQzNzU4ZDA3MmRmODY4ZDJhZWJlYmVkZmNhM2JmY2MwMThjZGIxOWJhMzdiNTkzYTBhZTgwYzZlIgogCiBITUFDX0RSQkcgTklTVCBDQVZTIDE0LjMgUFIgVHJ1ZSAoU0hBLTI1NiwgMCwgMCkgIzEwCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NgogaG1hY19kcmJnX3ByOk1CRURUTFNfTURfU0hBMjU2OiIxMDA2ZTNiMTYxZmRkMWYzMDQ0MjM0NmZjOTFiMzM3MWEyOTUzMWJjOTk2NGY4NGQzZmVmZDBlYTNhMzQwZWZjMDYwOTY5NzRiYmQ2MDBjYjY0NGRiNjZiNzM4ZmZjZWMwNTY5NmE5ODFlNTBjN2Y2ODY0YTgyNzllODM5ODVkZGQ0MmE5Yzc0YWZmZGZkYzg0NTJhYzI1NTc1ZGVmM2FmMzI1MGRhOTVmMDE4MjMzMWRjYzdkMmQ1MGZmNzFkY2RlMDBmOTJiNjg3NGVlOTAyZTYxMzc3OWRlMDc4OWRkZSI6IiI6IiI6IiI6IjNiZWU5ZmU2ZDA4ODk5ZmM3ZWI2ZTFmMDk3OGM2OGY1ZGM5ZGNjNzZmYmZhZWE3YTY1MmQwYWQyMjYzMjM5NmQ2ZTA2NWZlZjE0YWFmYWM3ZDNhZmIwNjZlYTc0M2YwY2ZiYTgwNGNjOTY4NjQwNWFjOTY2YmE3YTI5MWY1ZGJkNTRkZGU1ZDZhMzMwMzgzYjIzNTUzMTllM2VmNDA1NmI4NTYzODZjZjgzNzhhNWUxMWQ5ZDM2YjAyMDdlMmNkNDE0ZjlhZGUyYWYwNTdjNTNjOGMzMWU3MmZlNzY1ZjA1ODJkYTVhNjg1ZWI0MmEwZmQ5NjlkYmRlMjY0MmM0ZjUiCiAKIEhNQUNfRFJCRyBOSVNUIENBVlMgMTQuMyBQUiBUcnVlIChTSEEtMjU2LCAwLCAwKSAjMTEKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBobWFjX2RyYmdfcHI6TUJFRFRMU19NRF9TSEEyNTY6IjgzZDA1NDZkMjBmZTE4MTg0YzVlZTc5YmVhNmY1ODE4ODgxZDE1OGRjYzc3ODBjMDM1MGJhYWQ3NjYyZDNiMDU3OGJmZTU1OTBiOTkyM2MzNTAwY2NmOTZhNzk3ZDlmYjI0NmYzMWU2YjI0NTRjNmE0NDMyMzNjZTAyNjRmY2MwZmZkNDFmMGEzYmRjY2RkOTQxN2QxNjE0YWVlNTk2ODgwNTcxZWE1ZjJlNjJmZDZjNmU1NTU2MTMwMjQyNjJhMjZhMTY5ZjE3MzgwYTE5ZjJlNTAyMGFkMzM1OWU0ODQyIjoiIjoiIjoiIjoiMGU0NTNhM2UwYTRkNThmNDE4MDE4ZjA5YzFiN2VlNWUzZGY4MWQzMDllNTRiNzc1NjdiMTgwNDM3YzI1OGI4NzAwNjljMDI1N2JiOGRiMzMyZTlkNzkwZWQzMjU2MzMyNjA5NjdlODk4ZTc5MzNkMzg4MzJmZTdhNjc3Yzk0ODQ5OTI5MTg0MjFjNzVkNzA3MmI5YzA0MTYyYjIwMjg3MjIwMGUyOGRiM2MwM2QxNTdjOGFkYjA3N2M0YzhhNjYxYzUzNGZmNWMxYmRjY2U4MGVmMDQ3ZWIxOTdiMGJmMzkzOWRhYThiZTMxZDYxNTZlOWQ1NzNjY2E0YjExMDA4ZCIKIAogSE1BQ19EUkJHIE5JU1QgQ0FWUyAxNC4zIFBSIFRydWUgKFNIQS0yNTYsIDAsIDApICMxMgotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIGhtYWNfZHJiZ19wcjpNQkVEVExTX01EX1NIQTI1NjoiZmIwOWIwMjAxMWI1NGY5ZmEyYTMwNzgzMTQxYTUyMGUxMWZlM2UyZGQ1NWIyNTc5OWMxOWJlOWZhN2JmM2MyMGU4ZmJiOGZlOWU0MzAxNDUxNmQyNWM2OTMwODY1YzI3Mjc4MjdjYzAxNDA2YWFhMTgyN2JmMmQ5MjcyZWJlMThhNDRjYTc0ZDYzYjNiNzhmZDY3ZTYxZDVkOTZkYjUwOWE3N2M4NTdhZTA0ZTA2YmRjZWJiN2FhNDkxZDFiOWE5OWEwZWNiOGM3ZGMzZDdiYzY5Nzc1NzIxYjc1Mjg5YWEiOiIiOiIiOiIiOiJlZjg3ODNmMDAxNTZjNDk3Nzk2ZDc4N2MwMThjOWMwMWNmZWY5MzU3Y2ZmMmJhOGYwNDcxMDlhMGQxN2Y3MTlhYzQ2OTUyYTcxNDdlN2ZlOGQ2MGZkZWJlMmM3NDRlNTA1MjJlMDlhYTBkMThkZTI1ODQ1OTg0MGFlMzIwZDQ4Y2I3MWJhMTE0MzIxNjlkZGNkZDE1Y2UwODFmM2VlOTcxOWNhZTRiYTYwMWJkYTFjYmJhZjllYmU4MjU1OWI2OTEwNzExMWM5NmU0NjhkMjNlMDI2OGU1M2M5NDMwY2ViZTdjYjAyYjU0N2Q2OTEzYjc2ZTRjMTY0M2IyYTIwNDVhIgogCiBITUFDX0RSQkcgTklTVCBDQVZTIDE0LjMgUFIgVHJ1ZSAoU0hBLTI1NiwgMCwgMCkgIzEzCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NgogaG1hY19kcmJnX3ByOk1CRURUTFNfTURfU0hBMjU2OiIwN2RlOWU1ZTU3MzY4ZTc4MzMxNzcwNjZjODA0NTc1ZDk4NGJiZjljYTRiZjAzZWEzMTE4ZGNlMDYzMDI3YjJhMWRhMWU5MzBiMzU2NzIyZWEwYzBmMDJlMDlkYjZlOTJmNDA3ZmQ2MDZmYmRkYmNiM2U1NzRmMGVmNTQ4YzEyYjk3NDYwZTIwNzlhMDA0YzFiNWY0NjEyY2VkOWY1MDM0ZDhlZDkyZDVlOThlYjE3NmRiMmViYTg5ODkxNWYzMWFmN2NkMDc2M2U3ZGExZTY0YmExMzJhMDhkZWI4Mjg2NCI6IiI6IiI6IiI6ImU3ODBhYTY3NDRmNTkyZGEzZmVmNjkwZTc4ZmU4YzRmZDQwYzM2NGNmNWYxYThiZTM0ZjIzZjczMjRhYjM4N2IwOWFhM2I1YzEyNmJiYjVmYjI1ZmRkMjZkNGU1MzZmMmVhY2E4ZjBlYThjOTNhYzg2M2MxYzVkODAzMTQ0ODBmZDllMjM4MmVlMWQ5YjE3ODI4YjdmMzcxNmVlNjY5YjlmMzY5NjU1MDkxZjBlZTIzMTYzOTk2YzdjODE1YzNmNWU3MDVjOWU0OGMyNWZlYzA1YTQ4NWViMzlmMzgxNDA2NTI4M2RkMWQwYzM3Y2RiNzcxM2FjZjI0ZTM0ODRhZmEiCiAKIEhNQUNfRFJCRyBOSVNUIENBVlMgMTQuMyBQUiBUcnVlIChTSEEtMjU2LCAwLCAwKSAjMTQKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBobWFjX2RyYmdfcHI6TUJFRFRMU19NRF9TSEEyNTY6IjU5NTcwNjllYjE0M2MxNTI2ODI2YzE1MzU4ZTBlOTQ5MDk2MTA4ZmM2ZTA5NTM3Y2YzZDY0MjZlMTU1YjQxNzhiZmY4YThiN2M1N2MzY2JmOGY5Yzc4YjUyZDc2NTA5YzFlYzA4OWUwODNiMjljMGFkYmQ3ZDcwM2IzZTBiZWViMjExOGEwNTI1NDhmYjFlMzA0NTViMDgwYzExMWNiZGE2YjQ5MzBlOGZiN2RhZjQzMTA2MDc3ODQ0NWJhZDdkOWMzZjc4ZGJmODExZTZjOWM1ODQ5Mzg0NGQ5MGU3M2M3IjoiIjoiIjoiIjoiMmY1YjdlMTcyYzVlMjkxZjY4ZDlmNTlmMGQxNGVjNTE2ZTdlODBjMmVlZTM2ZDFhYTA3MzRlM2Y4MTlhOTc2Yzc0YTU2NWFkMDMzMzRmYmYxYzYwZGFjYjFhNmQxNTBjZTEzMTZiNWMyNTZjYTg1YzgwZmNlZTZjZTBjNzAwNGEwYTBjYThiZTVkY2UxOWEzYjY4ZjkyZjNmNmI3ZjhlOWM0YTMxNzdiOTM1MjliMzJiNzhhMmQwY2ExOGIyN2ZlODBiNDI1NDZkMTIxMTU4N2FjZWUyYmQ1YTYzZjNhZTY2YjVlNWQ2NmE1MjE1NGI1MmJlYTJiNzFjYjA1YjllYyIKIAogSE1BQ19EUkJHIE5JU1QgQ0FWUyAxNC4zIFBSIFRydWUgKFNIQS0yNTYsIDAsIDI1NikgIzAKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBobWFjX2RyYmdfcHI6TUJFRFRMU19NRF9TSEEyNTY6IjJjYWQ4OGIyYjZhMDZlNzAzZGU0NjE4NWNjYjJkZGNmNWUwZWUwMzA5OTVlYmRmOTVjYzRmYmMzODQ0MWYxN2YzMjMxMDc3MGUwNDE3MmMwY2Y5MWY2NTkwY2NlNDRhNDQ0OGJmYmM1Y2U5ZTNiOWRhM2U5NjQyZGFlY2Q5OTRkZmUzNzNlNzUyNTNlOGViNTg1MTQxMjI0ZWNhN2FkN2JhZmI1N2Y2OTc5OWMwYjg5MmIzMDE1OTkwZTEzMzY5OGQ1NDNhYTg3ODI5YWNlODY4ZTRhNWU5NTI1ZDYyMzU3IjoiIjoiZWY2ZGE1ZTY1MzBlMGQ2MjE3NDlhYjE5MmUwNjMyN2U5OTVjM2FjMGMzOTYzYWI4YzhjZDJkZjI4MzlhYjVkZiI6IjQ0Mjc4YjMxZWQ4NTNmMGE1MTBiZDE0NjUwYWM0YjQ5NzFkOGI0MjY3OTlhNDM1MTFkMDE2YmU2OGRlZGJiOGQiOiI0YzdkZmJlNTA5ZGM1YTNhYzI2OTk4NzIzYzZhNDRjYWQyMGIxOTdmYzg2MTE3Yzc3OGQxNTY4YWI4Mjg5MjM4NjI4ODVlOTcxOThmNzdhMWNiNDUxMTNmNWQ3ODcyNmEwZjEyMGFlYzk0YWZjNDVmNTdjOGRjYzFjYjA5MmIzNDM0ODAwMTI4NThlZjViYzU1OWY1NzAyMzQ0MjIwOTMyNmVjNGE1NGQ5MWNhM2E3N2RmZGY5ZTc1ZjExN2NlZjUwZTZmZDJkYzlhZjZkZGNlOGU2NTE1YjRhOTczNTdhOTdiNmNkMjc0ZjY4YTA0MmZhNDFiYmQ3YjcyNjFiMDM0IgogCiBITUFDX0RSQkcgTklTVCBDQVZTIDE0LjMgUFIgVHJ1ZSAoU0hBLTI1NiwgMCwgMjU2KSAjMQotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIGhtYWNfZHJiZ19wcjpNQkVEVExTX01EX1NIQTI1NjoiYjkxZmU5ZWZkZDliN2QyMGI2ZWNlMDJmZGI3NjI0Y2U0MWM4M2E0YTEyN2YzZTJmYWUwNTk5ZWFiNTA2NzEwZDBjNGNiNDA1MjZjNmJkZjU3ZjJhM2RmMmI1NDk3YmRhZWY2NzUwOWNhNzdkZGZiNzJkODEwMWE0NjI4MTZhNjk1YmIzMzc0NWE3MzQ4ZTI2NDZkOTI2YTIxOWQ0OTQ0Mzk3NzU1MzUzYmFiNGE2YjI5MTYwNzE3OWQxNmI0YTI0OWEzNDY2Y2MzM2FiMDc5ODUxNzg3MmIyNzlmZDJjZmYiOiIiOiIxN2MxNTZjYmNjNTBkNjAzN2Q0NTc2YTM3NTc2YzE0YTY2MWIyZWRmYjAyZTdkNTY2ZDk5M2JjNjU4ZGEwM2Y2IjoiN2M3YjRhNGIzMjVlNmY2NzM0ZjUyMTRjZjk5NmY5YmYxYzhjODFkMzliNjA2YTQ0YzYwM2EyZmIxMzIwMTliNyI6IjljZGM2MzhhMTkyMzIyNjYwY2M1YjlkN2ZiMmFiMDMxZTM4YTM2YTg1YWE4MTRkYTFlYTljY2ZlYjgyNjQ0ODM5ZmY2ZmZhYWM4OThiODMwMzUzYjNkMzZkMjQ5ZDQ0MDYyMGE2NTEwNzY1NWVmYzA5NTljYTdkYTNmY2ZiNzdiYzZlMTI4NTJmYzBjZTIzNzBkODNhNzUxNGIzMTQ3M2NlMTNjYWU3MDAxYzhhM2QzYzJhYzc3OWNkMTY4Nzc5YjU4MjczYmE1MGZjMjdhOGIwNDY1NjJkNWU4ZDZmZTJhYWZkM2QzZmViZDE4ZmJjZGNkNjZiNTAxNjk2NmEwM2MiCiAKIEhNQUNfRFJCRyBOSVNUIENBVlMgMTQuMyBQUiBUcnVlIChTSEEtMjU2LCAwLCAyNTYpICMyCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NgogaG1hY19kcmJnX3ByOk1CRURUTFNfTURfU0hBMjU2OiJhNDYzNjdmMGNhMDM0YTg2NjA0MDAzZmFlZDJiYTUyNGI2YzBiYmE4NDE4ZmIxNThiYTEzYThmNzMwZDkxZWM0OWIzYTdlMzVjNjE5ZjBlMWFiZGE2ZDE0MGIwOGFmODVlM2NmZTQwMmI2MmEyZTg5M2ZlMDI0NGU4OGI5YTQ4OWExMDM1ZDI4Nzk0NzEzOWFmNzg3M2U1ZjdkMDQ4NWU4NzIzOGJiMTFkNGY2MzEwOTBjMzQzNjUyMjJlYjk1YmFmN2I4NjViZTVmNjQxMGVhMGFhMDQ4NGUzZGU1NTQ4MyI6IiI6ImFhMDIwYTFhYTkyZjhhNDI2YzVkMGQ0NDE5MWM2YjQ2ZjY4YzFhYmJkNWRjYmNmZjBkZjJjOGUwMjRhMzI4OGMiOiIzODk2NWFkNWYxNjNmNjYzYjNkOTBkNGY1YjY3ZWQyZjRkYjIyYzkwZTU4NzhiZGRjZDRmMjMwZGM3N2Y0YjBhIjoiNmM3ZWRmMzc1MjgxYjc1MTM4MzIxMWEzZTA5ZTQ2YzYxYTljNDI1ZmUzMjYwNDEwNjNmMGYwM2UxY2ZjMDFlOGE4MzBmOWM0YmY3NzM3N2M0YTk5NDZjNjFhOGI3Y2M2NjRiMjI5NzNjNTU2NDM3YzlmNTU1N2IxYTEyMjJjNDU3ODllYjcwMGUxMTg0ZDVkNmU1MmY1OTdiYTViMWRlYWUzZGQzY2IyZDgzMjVlZDViMzkyOTk0NmUzZmNmOWU0ZjE5OTExNWVhZmJhOWFiYzg3NTU4ZmNlY2M2MzcyM2NkOGNkYzhkZmJhNDhhM2M2NGU4YTcwOTk1YjBjN2VjZSIKIAogSE1BQ19EUkJHIE5JU1QgQ0FWUyAxNC4zIFBSIFRydWUgKFNIQS0yNTYsIDAsIDI1NikgIzMKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBobWFjX2RyYmdfcHI6TUJFRFRMU19NRF9TSEEyNTY6IjA4YjlkYjgyZjE3OTA1NTg3MjM4M2Y1ODIwM2FhYjRiOWI3MDFjNmQ3YTFjZDQyOGJjMTg2MGNjNzBlNDExMWRkNWNmZjk2MjcyNWIyMGQ4MTIxZmI0ZjQ4NGE4NDZjOGZjYWU5Mzg2ODNjYzE2MDJiNjkyYWQ4OGIyZWRiNWVjMWM4ZGQ0MDhmNGMxMGVlNzdhNDYwYmJjNDBjOGUzNjVkNWIwYmFiOGI2YzhmYjNkNmFlOGY2NWRjOTE3NTA2MDA1OTJkMWYwZjlmZjY2MWQzOTQzNjMyOTI2M2I5MjEzIjoiIjoiODhlYmFhMjk2NTk4ZGQ3MWQyMmFkNWNkYmQxNjYwM2UxOTgyZDNiMDAzOTFlMGU4Mzg2MmQ3NjUxNDgxNzNkYSI6IjRmZTk3NTJhNWE4OGVjMWViYTVlN2Q4NWIxOTM5MTBmMTcxN2QxNjZlZDE2ZTEyNjc2Y2Y5ZGQ0MTdkOTZmMmIiOiJiNGIwMmJlNTVmYWQ4ZGFlMjI3MTZmOTUwMzhjY2UzNGY2NTRjM2RjZWFjNTlhMzllZTg1YzU1YzZhMTA4NjRlMTlkZmE1NzEwMjMxMTM4ZWZkZmNmYTczNjUyZTk5ZmEzZmViZGU4YjA2YWQwNmFmMjNkZWQ0MmQ3OGJkN2UwNWZmZWQ2YjQwM2RmMjMyMGRlNDE5YTA4MDY1ZGQyNTRlNWM2NzZjMTZhZWMzYjgyNzc0ZjAxNDgxMWNiNmYzMmY5NmJiMjQwYmNhOTFmYjlmMDViNTdjNzc2ZDQ0NzRkMzA5Y2IwOGE3MzBjMjY5NjI3YjYzODU4ODIxNjU3ZThiIgogCiBITUFDX0RSQkcgTklTVCBDQVZTIDE0LjMgUFIgVHJ1ZSAoU0hBLTI1NiwgMCwgMjU2KSAjNAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIGhtYWNfZHJiZ19wcjpNQkVEVExTX01EX1NIQTI1NjoiNzZiMGJhNTk5MmRhYWIxYWE0MGViZTM3N2NhMmUwZjY0MDdlYjE3Mjk5NjExNTFkMjE2YTk5ODliNDk3MzNjMmY3ODkyZWVlZTY0MzM4ZDhmZjE1MWRiMjdiMjBlNjY2ODQwMTViYjFiNDMzYTAxZmQ3NTcwZTI0MzRiZjM5ZDkyNGQxOTA5NjE5OWUzNjdkY2RhODdhZjdhYzhiOWYyYTA2NGU4YTdiYzI5MWE5MDRmYzVhNDBjZmZiMzA2MDIwZDcxOGRlMTFkM2NkYzU0NDI3MjRmNDUzOGQ4MzVmNzYiOiIiOiJmOGI2M2RhOTlhMzVjZDYzMzM0YzdmMGYxMDFhODBiMTAxOTkwZjc2NDZkMzFlYjU4YmQ0Y2FjMjUxZjQzNGMyIjoiNDZhNDE3ZjQ5MzhkODg0MDZkM2FjNjVkZmZmZmZmN2UzYzQxMGIwOTk5ZTljNmRjNzc4N2FjNDZhMGIxYmU3NyI6ImQ1NTdiMDA2NGM2ZDhmZWFkYjIzZjk3NTJjZGFmNWU0NDNhMjk1YmE5N2U1ZmUzZGI4YmRjM2E1MDJiMTIzOTQ5NTFlNjk0OTc2MzhhNzU4ZTczMTUzMjNjNGQ5NDQzZWM4ZjE0NGY5ZGZmNDIxYjBmZWFiOGQ1NDFmZGMzYjU5OTNkYWU2ZGI0YTczMmQ1NzNkMjdmNDM4M2Y4MjU3ODNiOGQwYjkzOTUxNzE5Yjk1ZGRlZjcwM2YzNmMxZDk1MDM0YjRjMGIxMjYxNWFlZDkzMTQwNjdjMzVhNTVhMDkxZmRiYzNhNDU5YTIyYTc1YjZkMTYxNmU3OWQ1NTFiMmEiCiAKIEhNQUNfRFJCRyBOSVNUIENBVlMgMTQuMyBQUiBUcnVlIChTSEEtMjU2LCAwLCAyNTYpICM1Ci1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NgogaG1hY19kcmJnX3ByOk1CRURUTFNfTURfU0hBMjU2OiJlODI5NjA0ODljMDE0NjgyNjNlOGZlNTlhYzM0MWFmMWNlZGM1NTk1ZWYxNjc3YzAwMTkwZjg3ZjEwNjc5Mjk1YjBkNjQyNzFlODYwZTVlMWJjMmI3YzI0YzIxMjdjOTQ1N2FiNmRiMjQ5NWQ0MjJkMjRmMzU2MGE5MDk1MTM2MjZjYzBlMGU4ZDc0MTcxY2E1MWQzZDFkMzE3NzdmY2QxYjc3MWY1YjE4NjUxNmQ0NWEyNzBhN2M1Yzk2ZjA5OGM1MDUxY2Q3OWZmYjA0Yzc5ODFjZGEzNmE2OGVlZjM0NyI6IiI6IjlkNTQ0NTMwZWUxMmU5Y2IwNjE3MmQ3OWFlMjkxOTMyZTE3YjI0MGY5Y2Q5MjY5OGI2YTJlYzA2MWZjMTMyY2YiOiJkZDFhZDE2YTFmOWRlY2MwY2I4NzVjZTM1YzdhZDFhMzEwNTgxODY3OWExMmIyMjE0OWI1YTdkZDBhMWI3ZDg3IjoiOWEwOGQ5NDFlOWExYmZkOWMzZTA1OWRkMDZjYWYwMDhjNjM2Y2EwOGJiMmUxMzZkMGJkZjE2MmM0MzMyMTgwNDUyMjRiZmQ4ZDc1YjgyNDEwMjVmOTNjNGE4MjAzYzZlYTFmY2U2M2MzN2JiMjA0NDRjNWQ0YTY4YjEzZWU2NjNiMjYyYzY4NTYzMGQyYTZjNDBlYzIyNDAyN2Q3NWJmZDNkYzczZTFkNTM4NDAwNzg5ZjIyMjFmZmUwZmYxYmZmOGY1MTRjMDIyOWU2ODQ0MjJkNzdiMmIwMjk4YzBiYThhMmFiMDI2MTBlODgwMjMyYmY1MTZmOGFiNTA3YzQ2MSIKIAogSE1BQ19EUkJHIE5JU1QgQ0FWUyAxNC4zIFBSIFRydWUgKFNIQS0yNTYsIDAsIDI1NikgIzYKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBobWFjX2RyYmdfcHI6TUJFRFRMU19NRF9TSEEyNTY6ImExOTgyYzhlYTZhYTc1ZTVjMDQ4NmJiMjZhYjhjOWRjZjNkMTMwMzQzNzIyMDdiY2YxMDNhZGNhOTgyYmQ5MDJiMTM4OGFmZDM3NDVhMDBiZTE5YWJiZGViMTIyMjVkYjM1YWI0MTQ3MWQ5M2MwMmFhYTI0MTQzNTQ2MjYyNDZiM2VhM2Q5MzJkZDUyMmU1ZmYwZmE4MWM5YmI3YmIxZjM3MmQ4NTFiNTcwNDM3ODlhYmMxODM3ZDMzZDUyNzc5YjYzOGFhMmJkMTY5M2NhYTUyZWM3YjA4MjRhZGI4NDcwIjoiIjoiMmQwMTEzYzRmMjI1ZTQ3YjU5MTBjYmRhN2QyN2Q5OGZlMmJjYzIzZDdiYzI5M2RhMTAyOGUyMDg0ODgwNDM1MyI6ImY2ZDkyZmUwNjAzZTI1NDhmYzEzYTU2MGY0YjEwMDlhMmNmNjNmZjkxYzc0YjE3Y2I0ZjI1NjYxMTE3M2VmMTciOiJkMjZiNDY5OTIwZWMyNmQ2ODkxZDUyNDNkM2MxMzFmMTI5ODMyNjk1YTEzMDM4NjUxMWYwMmE2NmU5MmQ1MzhiZDE2NWQ5YmNiNzBiYTVlOGRmNDc5NTc2YjQzNDJhMjdmM2NlMTEzNTg0ZTAyNjJmOGVlYzgxNGYwYzk3ZDQ4OTg4YzM5YmE1NDhlNGRhNzg2MDExMDNhYmY5YzZhNDdmZjM3MDVmY2ZiN2QxYTE1MDUzNWQ0YWYyZmEyMTk1MDllOTRiZDhlNzRmM2E5MGZkMGZmYTYzMTU5YjRiNjJlYjUzMzE5M2Y5ZGYzYzg2ODY0ZjliNWYwNTI0OTE3NWExIgogCiBITUFDX0RSQkcgTklTVCBDQVZTIDE0LjMgUFIgVHJ1ZSAoU0hBLTI1NiwgMCwgMjU2KSAjNwotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIGhtYWNfZHJiZ19wcjpNQkVEVExTX01EX1NIQTI1NjoiZmVlY2ZiM2VjYjFiMTMyMmIzNGQ5MGYyNWZmZmEyZmYwYzJhZjAxMGE5NDJhMDQ2N2MwNGU5MzM4ODMyYzNjMGU1YzU4NzZkZGYwZTNkYmRjMmQ2MzQxNmZkNzdkYWY2MTcwZDY3ZmQ2YjdmZjYyMWIxZTg0NDkxNDcxMTgxN2VjZTkzZTVlZGY0MjhhNmU2MzI1MTkzZDQyYmQ2NzY1OThlZjQ2NzJjZjFlNGRlNGI1NGRmNjhkMGZhOGQyNjg4Njg4MTMxNjJmYTcxMmQyOTQ0OTFkMzM4YjY1ZjI3ZjgiOiIiOiJkMWUzZGE1OTY3NGQwY2UzM2NjM2U2ZTU2MjkyZWY0N2ZjMWIzZjQ5NTg3MWY1YTc0YThjM2Y2MWVkZWI1OTNlIjoiNzRkNDkxNjk3ZDcyNjg5YTE5YzU4OTgyNjIxZTY4YTMzNmJhOWY3MTQzYzE5OWRhY2MzZjM3NTA4ZWY1ZjNhNyI6Ijc4ZGU4OTYzMDE5NjExZmRlMTVlZTBjOGM3YjhhMzVjMTZhNWVhMWU4NmZkYjQzNWM0MjIxODRjZjBmN2JiY2UzZDZkZDdhYWUxMWI2Mzk3Y2EyMTNjMGFjYTYzMTg4ZDM5ODJjMjQ1MTQwMTg0NWQwMmZhMDgyMmFkMmY5MTkwMDIyZjZjMDk5ZDEzN2M1YTQ0ZDlkNzRhNzdjNzViYmEyMzUwZjEyNjliNmJmOTA1MDc3MzZkODU3NmI1M2RmYTE0Y2NmN2M2ODVlYTBhY2M4NDg0ZDZhNWQzMTBiMTViZjM5NDE2NjYxNzg0MTRhYWUzZDc2ZDZkNWY0YWVhOWEiCiAKIEhNQUNfRFJCRyBOSVNUIENBVlMgMTQuMyBQUiBUcnVlIChTSEEtMjU2LCAwLCAyNTYpICM4Ci1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NgogaG1hY19kcmJnX3ByOk1CRURUTFNfTURfU0hBMjU2OiIxZDZiZGVmMTU4MTE3MzFmNmUzMGQ2NmM3OTEwNDIyNGM1ZWQ5ZDQ1NWJmOWZhMmQzNDQyZThkNjEzOTVkNTNjYTZlM2Q1YjM4NjJmZDBkMGIyZWNmMzU3N2UyZGRkMTI0ZjdlMzNiZjExYTdlY2ViY2QyYjI2YTExN2MzODA1YmM5M2I5OGVlMGU3MGI4ZWQ1MWI5MjljZjc2ZjJmYTcyYjQzMzc1N2RhNDdiMWVjOTJjMTFmZDkxOTIxYjE3MWZmNTFhNDFhOTk2ODY2ZThjMjg3ZWExMzBmMDZjZDk1ZiI6IiI6ImYyNTM0N2Y4OGZiNDFkNjU2MDJiOTlhMzcwYmU3YzhjZTFkZDZhMjlhMGE3NDAxYjRhMzI3OWIzZTU2M2NmNGIiOiI0ZTVjODBiZDdmZmM5MzFmYjU3NjMyOTM1ZmFmZjJmMjhjNGY3NTMzNmZkMjhmMTRmN2ZjMjdhMTJjN2NiNDFiIjoiNTRhMjgwOTYyYWYxYTgzOWI0NzBiNDI0NTZhNDM4MWViOGNjMjZmMTYzMDNiYjk3YjZmNzA5ZjkxYTkxNGVkNzJhOGI4NWQxNmFkNGQyNmE5MDBjOGZlYzQxNDhjYzQyZjk0MTZkZDE5ZjMxZmQxYWZkNTI3ZjVmYjI2NmI2YWZmMTAwZjg5MGI1N2M4YTNmOTIyODQ2MmQ0ZGQ5MmRiZDVhZjJmOWRhZjA1ZTVlZTI4NDNlNTZmMGUxODBlYmE4YTJjYWJhYjM2ZjczOWE3ZmQzYzA0MjI4ZWMwMDdlZjQzZWJiYzI1ODQxYjczNzNmMmMwNmZkZmJjNjZmODMyMiIKIAogSE1BQ19EUkJHIE5JU1QgQ0FWUyAxNC4zIFBSIFRydWUgKFNIQS0yNTYsIDAsIDI1NikgIzkKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBobWFjX2RyYmdfcHI6TUJFRFRMU19NRF9TSEEyNTY6IjI5NGM2NDU5OTU4NDI1ZDMwOWQ0ZGY2NjE3NDEwZjM0ZTk2ZWZiYzFlNjA5MTc4ZjQxMDUwNzExNzFkMjcxY2JiNjk4Yjc5YzdmODM4NTFhYjBhNGUyOWE3NTZiMDU4NTg0Y2Q1ZDQ0NmEyNWY3Nzc0OWU0MTU0NjI4YzNkNjk2M2MzNjk1ODVhNzc2OGJhZWNhMGZlMjFjYzQwYjAwYTg3MTQ0Y2JkYWViYTgxMmJiMWRkOGExOGU0ZDdlNTBlODEwODg1YWM1MjBlNDRjMzk4ZDFiM2M0MWZjYWY2YzM2IjoiIjoiMGU0MzNiOGEzOTIwZWJlMDA1M2UzODhkMGYyNTg4MTIzYzZjZTY0NDI4MGRiYTc3NjMyYmVhOGRlMWI2ZmQ5ZCI6IjQxMWEzOTkyMWFkODkyZGI3ZDM4ZjUxYzUxMTQ4Mjk2Y2JmNTEwYTU5ZmNmNGZkMjc4NWMyYWNmMzEwZmFlNmYiOiIwNGM2NGEzYzRlZjhjZDNhYTMyMjU5NmNmZTA4ZTM0YjQzNWJiNTU5NDNjNmJhN2FiZjcyYjU0OWQ0YTA1N2UzYmZlYjUzZmE0ZTJhZGJlZTYzYzg4Njg0YmJkNWI4NGM0YzEzNThjOWMwZmYwZmZlYjFjOGZjOTcyYzRlNzk2NDFjOWE0ZWEwOTAxZDljODVmYjlhYzVlZWI1ZDVkYmRkMzI0NjQ5YzBkYjU0MmUwOTQ2ZDk2Y2VjOGE5OTAxNDdiZTgwZjQ2Njg1Y2Y4Mjc4YjhjZjg5YzkyNTViYWE1NjY3NDBjNGZkMTJlNmJjMTYzYmU2ZTUyYWI3Nzk5YzJhIgogCiBITUFDX0RSQkcgTklTVCBDQVZTIDE0LjMgUFIgVHJ1ZSAoU0hBLTI1NiwgMCwgMjU2KSAjMTAKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBobWFjX2RyYmdfcHI6TUJFRFRMU19NRF9TSEEyNTY6IjE5NDBjMzE2MzdkYTJhMWE0YTNhZDY2ODI2ZTA3NGEwZDVjZTY5ZGRlNTBiNzVhNTViNWUwOWRhZjIzYzA5N2JiMzFhNGU5ZDM2M2YzYzcxNmNkOWU4OTljZDk4YmJkYWY2N2U2ZjkwOTA3N2M3MDUxYjA2N2Q5ZjJhNmVjYWNlMzZlNTA1M2IyZTYzMjlmZmQzNjRlNTg5NDAzYTBiZTFhZjJiMjdkMjU4YzkwZTFjYjJkODI2MWJjYzdiZDVmOTEwZjE1ODUxYTg3NDQyY2FmZTg3YWE0MjAzMWJlZmQ1IjoiIjoiMGUyMWIyZWFlMGQ5NDZjMWRhMTQxNTNkOWEzOTQ1ODk0ZjQzYWU1MzMxYWI5NWEwN2E3MjdiMDViZmZlOWYzNSI6IjY5NjQ2YWM3NDkxODVkYTAwNjM4NjU0YzgxM2Q0NWUwZGNjODQyMjAyODQ1Y2JiMGE4MTU4YjI2MDk3MzMxNDYiOiJmNWRjOWE4OGJjYjE5Zjc0MTAxZmI0NjMwNGJmZDY2ZmUwZTI0NTM1N2I2NTZlNzUxYTllZDUzNWJlZDNhNWI0N2Y0Zjg0YzAxMDY4NzYzYTNmZWFkMjJjMjlkN2RlZjVkMThlMzI0NTNmODA2NDI0MTc3MDgyZDFkNjVkYmUzZWU1ZDk3NjVmZDUzNjRhMWNmNTVkYzY0ZWU5ZjNmMzEzNjk3YzI2MjUzMjczNzMyOTg4MDdhNjBiYjQ1MzZjMzA0MGU3NmM5OTk1Y2ZjNmVlZjIyNWExMjJjOTg4NDk5ODBkNDBlYTBmODZhMTIyNzU2ZDQzOTAwOTZiNGQ4ZmFjIgogCiBITUFDX0RSQkcgTklTVCBDQVZTIDE0LjMgUFIgVHJ1ZSAoU0hBLTI1NiwgMCwgMjU2KSAjMTEKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBobWFjX2RyYmdfcHI6TUJFRFRMU19NRF9TSEEyNTY6IjgzYTQ0YzM4ZjY5OWE4ODNhOTFlY2JiZDlkYjk1MmE2MmI2NWNiZjc1ZTcyYTFhMjQ5NzgxMGE3M2VhNzQzYzRkMTVmZmNiYTA2Y2Q3YTMzMzhiMzI5NGFmYjUwNDYyYjFlYjRkZjIxZGJlNzEwN2E4YjRjNmE0MWI0MTk3N2YzOGMzM2IxYWRhODI5NTE3ZDA5MDJhM2JjMDgzNmJmODk5YzI1NzIzNGY3ZjYzMjE5YWNkY2RjZGZhNTEwZDI4NGU3MzgwMzQ4Mjk2ZWFhYjQwNzRjY2ZhOTAzN2U2YjY4IjoiIjoiM2Y2ZjhmNzdmMzA1MWM5NDVhZmFkOTk2OWFmNzY0ZmNmNGJhNWI1NjdjMGEwOTZiZWMzNmY3MTJmMDQwNTUzOSI6IjIxMGFiNzg1OWIxMzU0ZjUzZTE0M2U4YjA2YWZlODRiMTJmYzFiMTZhYTRlM2U4MThkYzU2MjkyNjU2ZWIzZjMiOiJhZGMwMDQzOTRhNWJmOThiZTFhYzQwMTIzYWIxZTQzMGJmOTMwNDZkZjg3ZDIwYjA0YzIzNWQxNjU0M2M5YTJiODBmOTlmODQxYTk0NmU5MWE0YzZmMTAxNDlmN2E3MDM5NjdkZTY1MWUzYWYyMDhkNjAwZWJjMmM2ZTJjMWZiYzg5NTc2MGRlNTM3YTRkYTI4NzBlMTI4ZmIxMGQ4ZmExZjA2ODcwZDc1OGI5ODA0YzQ5YzJhYjgxZjkwMTE4MDQyZjc4YTg5ODA5YjkyYzJhYmNlODdiMjMwNTg3NzM5YWNiZmZkMDgyYWFiYTQyMmM4OGU3Y2UxOTk2OTFkZDg3IgogCiBITUFDX0RSQkcgTklTVCBDQVZTIDE0LjMgUFIgVHJ1ZSAoU0hBLTI1NiwgMCwgMjU2KSAjMTIKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBobWFjX2RyYmdfcHI6TUJFRFRMU19NRF9TSEEyNTY6IjdhNDVkMDdhMmJlYzA3OGMwNjAzMWI3OWU5NGJhNmIzNGVhMTUyMjUwNGY2MmRmM2M3NTQzZDZhOTAyYTM1MmZhZWE1MjUxNTg2YThiZGM1NjJhZWJmZDlmNzE3NWEwMjU0MDY1MjVkYWIwMjIzNTBkODQ1MmNmM2UxODdlMzBjYjU0MzIwZmU5ZjEzYTM1MWUwMDM3MjcyNzhmZGQxMmMyYWMxYmY1NjU1NjMxN2FkNWJmZmIzYzJmODkwNjljN2M3NDJiZTQ0MmY2NDk3MjMwNGEzYTk3YWQ0MDQ4MWNiIjoiIjoiMTYzODRmOGM5ZWI3NDlmYjQ5ZmVkNGE2NjczMzlmMjI4NDYzNGE1Zjc5MTM2OTczOWQwNDAxYTg0ZDQzNTM3MyI6IjFiODFmMGQyMWEzZGE0NjJlYzJmODFkMGJmZGExZmMwMTQzNjczYjgwYmM3ZWNkYmU1MjRjZWJhOWFlOTZkZGYiOiJhMzQ2MjNlMDFhMTRiODdjNDAwZjY4MWE2ZmI0YWU2NmI5N2FmYmZlMDQwNzU4Yjk5ZGM4MDdmYmFjNzNkMjJhNWNhZGFkMjYyZjIzZWE1ZDI3ZjcyNjk5M2M4MjIwOTIxMTI1Y2M3OGQxN2E5OTAxNDViZjY4NDVjNzcxOWJjYmRkMTk1MzQ4YzQwZGE5NmZjZDYwYTU0Y2VlMjVhZjg5YzNiMTMxMmQ4ODYzNTIyM2VhOGMyNzU2NGU5MTgyODlmZDAxMjBiNDM3YzQyZDk5YTM1ZjE5OGRlM2U5YzA5MmM0OTNhOTcxYzhhY2U4YzQ4YWI2MjVhNWE5MmQ2ZmQwIgogCiBITUFDX0RSQkcgTklTVCBDQVZTIDE0LjMgUFIgVHJ1ZSAoU0hBLTI1NiwgMCwgMjU2KSAjMTMKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBobWFjX2RyYmdfcHI6TUJFRFRMU19NRF9TSEEyNTY6IjY0NmQxYzFlN2MzNjNjNGNiYWU3ZTZhNGY2MDZjOTU4MTJhN2UwZjJmYjg2ZTMzZjE3OGY1YjUwMmM2NDU3ZDNiNTc2NDRiM2JjMWFiNmNlYjA5NTg5ODcwYzdkNTRjYTE5ZmU3NjNiNDgxMzA4YTY0NjY3OTEzY2ZlMjUxMDNmZTczOGZjMGE4MDA5MjBmMGFmZWM3MGVmODZjYjhhMGVhMmQ5ZGZkMzg5NWNiZjkyMWM4N2U2NDkwNWY4MWVmNjFkYzIzMWI2Y2Q3YTAxMzUwMDM3MjY0NTFjYWI5NWYyIjoiIjoiNzg1NjZiMmZmZDMyNTI3NzJlM2JiYTcxZjM0NDU0OTdhMjE1MGFmZDQ4YmMxMzAyNTFiYWViNDMzMmRhOGEyNyI6Ijg4OGIzM2M2YWJkY2Q0NzU1ODZlMDBlZWYxODVhNjk3MjZlYjliMDI0YmU0NDdlOTI5OGI5NTNmZDgwMjE5MDYiOiJlNjU5ZDYwZDE3ZGExNDA0M2NiOTE5NzA5YmJiNWIzY2M1YTIwMzUxNzM1M2M4YmFkYzA2MzRlZjJmMmVhMmRhYjZmYjJiMzI3ZTI5NmVkNjM0MWRjNGJmNDMxYzBjMTRlYzA0MWRlNTAzOTVkMjVhNGE0Y2Q2NGE2NDIwMTUzYTUwYWY4ODZmNDhhMjk3MzUyM2E0ZWM1YmFmZjQzNTI2NTU2OTU5YTM3ZjNiMjQ1MmQ1NzUzZjRkMmEzYzA1MGIyZThmOWY2YWMyNTc3OTU5ZjM0NmFiMzc0MDRkMDI5Y2E1MWE3ODlhNTUyMWVlNjYwODQ1ZjkxM2QyNDUyMDMzIgogCiBITUFDX0RSQkcgTklTVCBDQVZTIDE0LjMgUFIgVHJ1ZSAoU0hBLTI1NiwgMCwgMjU2KSAjMTQKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBobWFjX2RyYmdfcHI6TUJFRFRMU19NRF9TSEEyNTY6ImJkZTJkZTJiOGQzYzRiNWM0YWYyOTk4ZDcwZGE5YTIxMzQwYjk4Yzc2MzBkNjg3ZDY4NWE3MWVhZmNjZWM0NDZlMDE5NGQyNDVkMjgxMWE1NGVmNTIyZGNmZDk2YWJjYTJlY2VhNmQ3ODkyZGRkYWE0ZGNhY2Y3ZTVlZjNmYjM0NWMzM2IyM2EzZGU2ODdhYjU3OGFhYzhlNjc1NzU0N2ExYjNjMTI3YTYzM2U1ODkwM2U4MzY3YTgwNTg0MDAyMGQyY2UzZjZmMDM3Mjk5MWQ3YzdmMjM0YzNiMzExMThiIjoiIjoiZDkwM2EyMjcxZjFjZTI0ZjIwMjIyMTIwZjhmZWUzYjg3MDljZTRmYzdiYTg1Yjc3ZDZmZjA0OWU4MWQ3YTM3ZiI6IjAzYmZmZTM4ZWY4ODMzOTdjZmU1M2VkZjZjNzllNjg0OTNiN2E2MzdkMWNlZWVkOWQ1NjlhYzYxOTViOGU0ZGIiOiJjYzMxN2Y4MWMzYTZjYWI0MjkzM2QxNzMzY2ZjNDUwNGRjMGIyMzJkYzAwNTAyZDI5YjhlNmZlNzhhZTExZDFkMWFlNGExYzVjNmE3Zjk5NTQzYTg0NGVjNTQxM2I2ZGMzYzIyZTNiZjBjYmYxMmU3YjU3YTQ4MDE4Yzc1ZjZhYjI1ZmU3OGI3ODZkMmQwMzVkZTdhZGFhM2EzYjdjZjFjYTU2NGYzNDJmZmY0ZjllNmIzYzlkMmFmMzg0Y2I3MGY1YWJjZDI4Yzk5YTVkMTBmMTc2ZGQyZjcwMjU3NWJmYjgxYTk4NGRiMjUwNzQzNGI0YTNjOGMyODZlM2RmYzY4IgogCiBITUFDX0RSQkcgTklTVCBDQVZTIDE0LjMgUFIgVHJ1ZSAoU0hBLTI1NiwgMjU2LCAwKSAjMAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIGhtYWNfZHJiZ19wcjpNQkVEVExTX01EX1NIQTI1NjoiZjdiOTBjNzk3YTRhMzc2Y2RkOWY1YzQzNWY1OTg1ZTc3ZjM2ZWMxZGYxMTQ1YTEyMDcyY2JiMmEwZGEzNzhmY2Q5NTIwMjk4NmQ0NTg5NmU5ZjRhNjVmMmYzNTNmYTM1MTMwYWI2NGY0MWE1ZDQ5ZDZhMjQxZTAyNjBiNGJiOGE0NmExNmM2YWM5ZTIzNGM4NGI1YjI2Y2RiNTE4ZDQ1OWY3NjcwZTgxN2FjMDYxYWM2MDQzOWJlNjA5ODI0OTIwMDBkYzVkYThiYzY2MzZiZGFjOGIxY2FiMDMxOThkZmQiOiI2MTUzNWM1YzA0NWU3ODQyNjdmZDBkODVmMjg2MTc3OGZhNTNjOGU4NTg2YWY2N2NmNWM5ZjIxYTI4ZWJiNjU2IjoiIjoiIjoiOGRmNGUzNDlmOWVhNDNjYzUwOWVjYjJiMTEyNDM1OGNkYTJkZTFmNWNjOTMxNWVkY2E2MzYxMGE0MTM0NzhkNjhiOGJiNDljMjgxNGM4MmNlNTcxZjZlMGE2NzgwZmEyMWM0YjU3MDYxMGVlMGMwNGQzZWRiOTIxMjRmNTgwZjk2MmQ3NDEzMzAyMDBjMTk4ODVjYTcxNjUwMjIyMzI0N2I3MjhkNjZmYmJlYjdjNmNjMjVjZmU5ODY2YjE0NTBiMzQ2MjI3Yzc2NjMwNzRjOGIxNWQxODlmMWM2ZWRiYTE3MmE1M2M3MzNkNjdjMWM2OWJkN2FjYTdlNjIwMTNjZCIKIAogSE1BQ19EUkJHIE5JU1QgQ0FWUyAxNC4zIFBSIFRydWUgKFNIQS0yNTYsIDI1NiwgMCkgIzEKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBobWFjX2RyYmdfcHI6TUJFRFRMU19NRF9TSEEyNTY6IjEzNTQ5NmZjMWI3ZDI4ZjMxOGM5YTc4OWI2YjNjODcyYWMwMGQ0NTkzNjI1MDVhZmE1ZGI5NmNiM2M1ODQ2ODdhNWFhYmYyMDNiZmUyMzBlZDFjNzQxMGYzZmM5YjM2N2UyYmRiNzQ4MDgwNmYzZTE5MzNjYWM3OWE3MmIxMWRhZTMyZWUxOTFhNTAyMTk1NzIwMjhhZGYyNjBkN2NkNDU4YmQ0NjlmY2ZmNTk5NTk1YzY1MWRlNzE2ODVmZmNmOTRhYWJlYzVhY2JiZWQzNjYxZmZhNzRkM2FjYTY3NDYwIjoiNjRiNmZjNjBiYzYxNzYyMzZkM2Y0YTBmZTFiNGQ1MjA5ZTcwZGQwMzUzNmRiZmNlY2Q1NjgwYmNiODE1YzhhYSI6IiI6IiI6IjFmOWVhZmU0ZDI0NmI3NDc0MTRjNjU5OTAxZTkzYmJiODMwYzBhYjBjMTNhZTJiMzMxNGVlYjkzNzNlZTBiMjZjMjYzYTU3NTQ1OTlkNDVjOWZhMWQ0NDU4NzZiMjA2MTQwZWE3OGE1MzJkZjllNjYxN2FmYjE4ODllMmUyM2RkYzFkYTEzOTc4OGE1YjY1ZTkwMTQ0ZWVmMTNhYjVjZDkyYzk3OWU3Y2Q3ZjhjZWVhODFmNWNkNzExNTQ5NDRjZTgzYjYwNWZiN2QzMGI1NTcyYzMxNGZmY2ZlODBiNmMwMTMwYzViOWIyZThmM2RmY2MyYTMwYzExMWI4MDVmZjMiCiAKIEhNQUNfRFJCRyBOSVNUIENBVlMgMTQuMyBQUiBUcnVlIChTSEEtMjU2LCAyNTYsIDApICMyCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NgogaG1hY19kcmJnX3ByOk1CRURUTFNfTURfU0hBMjU2OiJkNzhlYWI1MzI5ZmUzOGEyNmNlMmU1NGVmY2Y4ZjBjMTVjZDc0NjJhNTg3ODUzN2ExZTM2MTVkMDk4YjE4Njk3NGY0ODAwMzE3MmM3MjA0ZmU2ZGQ3N2M4OWZhOTJmYmFkNGU4MTQxMmM4ZDE2N2JkZTM4NTdiOWUwNDViY2I1YzY2NmQ2NGFhOTkwYTdkOTJlNDZjYTUzM2I5M2RlNTQ0MjM4Yjc5YjZhOTU1MWVhN2RjNTJiZmExNTU3ZmQ5NzNiZjZlNTk0YWQ0YmMwZTYzYjY1MWQ1OTU1ZGEzN2Y2YSI6ImU5MzRiZWMxOGNmOGU5YjkyOTMwMjlkOWVkNjBlY2RlMWQ0NjYyMTQzOWMzMjIyMDNmN2MyMmM2YjJkNzc1NDQiOiIiOiIiOiIyODVkZjY5NzM2MWMyODQ3NTNjOTQ4NjUwODFjM2MyNWZmY2JjNzc3MDlmYzUxZjM3YTA5NjI0YmJhNjcxNDkxNTZhMDg3ZWZhOTJhZTcwOWVmZjFiZDUwYmVkNDY0ZjRmMzFjNGI2NmMxY2RiNzFhNTA2Nzc5YjUwNjQ1YzE2NWEwOTk3MThkNTk5ZmM5YTE2NmYzNDVhYmFmOGIwYjJmOWU3MDBjMjUzYTQ1NGNlYTQ5MjYyYTMzNGQ3OWEwMWMyMDhjYWFkNTA3MzY0NGIyNTdiMmIxNTc3ZGQ5NzM4NjJjNmZjN2ZjYzMzMjBlMjRlMWUzMTA2M2ZlNmU5NGJhIgogCiBITUFDX0RSQkcgTklTVCBDQVZTIDE0LjMgUFIgVHJ1ZSAoU0hBLTI1NiwgMjU2LCAwKSAjMwotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIGhtYWNfZHJiZ19wcjpNQkVEVExTX01EX1NIQTI1NjoiZmFkNmEwZmNkZGVlZmIyNjNjMjc0MzJlY2M2NDcwZTQ0ZjI2YWVmZjI4NDBlOGRiNjgyY2ExNGFiNDVjMzFjYzg5NDAyYTY5OGZmZDM2Y2E4ZmZjZTk4NjU2OGY3MjhhZmMwOGJjMDA3N2M5NWNlNGNmMDhiY2NmNTBjZGFmYzE5MDA0YWJjM2M1Y2VkMWNjM2U3Y2UyY2ZjOTM4YzE2MDBhOTNmZDUwZmVmMTI0NWU3YjljYWUyODM0ZTcxMDQzMzVmOGFlYWMwODBkNGE0ZmQzZTBjMGVmMGQ2N2I2OTAiOiIzNTIyNzBjODY3YzM0YjNmYjI5N2NiMmU1ZDNhODA3YjA4N2M3MjAwMjY1NzZhYTQ0ZmFkNTc3ZWM4MjAxNWE5IjoiIjoiIjoiMzYyMjk3N2Y4YWEwYTBjYTVmOGUxMjM1ZDAzYjc2ZjkyYjJmMjZlYjE3MmI4ODMyMzU1OGU4ZjNjNzU2YzUzOWNlMTA2MWRlMTI3MjQ3Y2E3NTUzNDAyYzNkNWM5NDM5YjRjOWFmYmI0YzQxOTg2N2JhZWUwNmVhZmQ4NTZhZjk4NDdhNjkyNDdkZGY2NjQwYTA5YTM2MGM5MzU3N2JmYzM1M2NkZWM3MzEyZTU0OWJjNzg3M2Y3Nzc5NmUwNjJhZDA1OGVjN2YzZTUyZGQxZGRhZmI0YmIxMTg2YjA1YjUzNjAyMDBlNmVhNzg0YmUyN2I4ZjIwNWRlODBiYTE0NSIKIAogSE1BQ19EUkJHIE5JU1QgQ0FWUyAxNC4zIFBSIFRydWUgKFNIQS0yNTYsIDI1NiwgMCkgIzQKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBobWFjX2RyYmdfcHI6TUJFRFRMU19NRF9TSEEyNTY6ImJlOTBhMDdhZTYxNjU3NGQzNmY4MzY2ZDM5ZDZiZjE0MDg2MjY0NjZkNDA5ODJkOTczODBlNDQzMzFmOWUxODg1YTI3Y2FiMDhjNmE4NTk1ODk0ZGUyMmE5MDlkYzI0NzljZjE1OTczYTBmMGI3MWMwYmE5MTE5NTFmOWI0NDQwNTA4MjVhOTc2YzM5MWU2MjFjNThmZDRiNTlhN2EyMmE3ZGQ2NmQ4ZjU5YTYwYzAwMTBmYThhYWFjY2U5OWJjMmFhMWYzNjU2NTNkYzBjZDU3YjQ4OWVkYzIzNDkxNzdiIjoiOTliODhhYzE5NThkNWQ2MmFhMzllY2E4YjhmOGU1OThhNTVjMDhiNDllODk1NzM3ZDc0Yjg3OTJjYTM0M2EzNiI6IiI6IiI6ImVlNzZjNWE2YjZiNGVhZjljZThkYzRhYzBlZTkxY2FkMTQzZjAzNjlhMmJmZGY0MGI3MGZjZjE0ZTNlYjI4ODU1ZTNjNTlhMDFkZGVlNjg0YmY5Y2U0MTUyYmU1YzcwZDI5MGI4Yjc4MDc4NGVhZGI0NDg1NGIwM2NkMGEzMmQwYWE4YjhmMGRiMWJkNDc1MDJkMmFhNjFhNTRlM2RlN2ZkN2JkYjVjNzRjNzE1YWUyYWFkZmUzMjhiNGQxMTI4YmIxOWNlN2Q4MTY2YzRjMTcxOWM5OGI2YmZlYjFjZTMxMzA1NGQ4ZjFiNmE0YzVhZjg0MmNmM2NiZWExN2M3MTAiCiAKIEhNQUNfRFJCRyBOSVNUIENBVlMgMTQuMyBQUiBUcnVlIChTSEEtMjU2LCAyNTYsIDApICM1Ci1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NgogaG1hY19kcmJnX3ByOk1CRURUTFNfTURfU0hBMjU2OiIzMWM3YjhmMGFhZmE3MGI0YjY3MGYwNTZlMjRiZjE0MWYwYmQ2NjgzNDUzZDE3ZTliMDlhZGQzZDIzMWNlZTFjYWZlODE4ZGZkN2Q3MzQzZjhlYjFiNDEwMGQ4MGM0ZDljOGU3ZTRkNWFmY2QzYWI4Mjk2NGYxMjE4NDdkNDQ2NjQ3MWRmMzhiODQ5YzU5NjMwOTAwMTcxNTgwOTQ4ZjUzYzQxNDI1MDQ1ZGM0ZGIwNDkzNWFhNTI2NDg5MWFmMDMxYjA4Y2Q0ODY3MGIyYjE3MjA2OTJjYzZiZWQzZTdiMSI6Ijc2OWYyYjNlMzA0MDg4NTZmNDZmYzNhM2ZjZmUwNTI5NWQ4NzY0MTU1NTU5MDZlY2Y4NTNkNTliYWRkNDhlZWYiOiIiOiIiOiI5YjNkYzc2N2UxYmQ5ZGQ2NzAwM2VjOTljMzM0Yjk0ZGQ5N2M0OGNjY2JkYmZiMmVlZDRkZDViZGU5NmIxZTBlYTRjMjRjYjBlZGFkY2M1Mzg2ZjdiZWM1NGFjNWVmMTQ5Mzc0ZjYyMjVhYTdlNzg0NjZjMzRiMWVhMGIyODY0OTllNGUyYTI5NDM4MWU2ZTA2NWFiZWFiNjc1NTNjNGEyY2QwZmJkYTE5YzU5NDE1ZmVlNWNjMTI0OTY5Mjc2OGFlYmM4MGVjMzVjODMzMWY2OGYxYjcyNDU2MDJiM2ViZmYxZWFjYTJmZWQ1ODk4MjEzZmJlYzA5YWNkYjYwY2QxIgogCiBITUFDX0RSQkcgTklTVCBDQVZTIDE0LjMgUFIgVHJ1ZSAoU0hBLTI1NiwgMjU2LCAwKSAjNgotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIGhtYWNfZHJiZ19wcjpNQkVEVExTX01EX1NIQTI1NjoiMzg0OGJhZDJiMDYzMTQxMWY5MTY4YmY4MThhMmMzY2FjMTBiNmQ4M2E4MmQ1ODAxMTM2NzY4OGM4ZDMwZDNmYTc3ZmU0NjBkZDQ1OWM3ZGE3ZDY5YTNiYTU1NzZiMmJjOGRjMTVhMGRlMThmNTJmNzliOTEyMGIwM2E1YmQ5YmI0YjQ1NTQ3Yjk0YjMwMWNmM2NlMjQ0MmFlNTA4M2M1YzA4YjQ1NWUwNmZjM2Y4MGJlOTcyZTI4NjhlYTAxOTM3NmZkZjA0NzIxNDc4Mjg5NDQwNDkxNzQ0ZGY1Y2MxZjAiOiJlNWEzZWJjN2Q1MzNjMjE0ZjRjZDY2ZDM3ZjFkZDRmZjcxODg5MWRhZWY1NTk1OTkxNTkzOGExNzdkZDk3MDg4IjoiIjoiIjoiOTU5YmYzNjA5MjYyMjkyM2U5NmVmNWMwMzhjYTMxODA0OGY5NDQ3MDAzNjI2YTlmNWYwYzUwODJmNjVkYWY1YzVlYmRjNzMyOGUwOTBmZDY4ZWU1ZDNjMTYxNTA2Yjg2NTkwZTIyMjlhNDc5ZGU3YmJjMzkyMDg1MjY0N2RiMmEzNTI3MmMzMDVlOWEzMDljMDRkYTFiOGU1OGVlMTg1MTgzNjgxY2NhODlmMWI5NTM0YzBlMTVjMTg4ZjY5Y2JlZDg3MzI2YTgzY2FmZmNhYmI4MDBlMjY3MjY5MWI3NjQyNzAwNjU5ZWJjY2ZmMzc1ZjI4NGVhZTE3MjllZGNjOSIKIAogSE1BQ19EUkJHIE5JU1QgQ0FWUyAxNC4zIFBSIFRydWUgKFNIQS0yNTYsIDI1NiwgMCkgIzcKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBobWFjX2RyYmdfcHI6TUJFRFRMU19NRF9TSEEyNTY6ImRjZDc0ZDVkZGEzYWRmZmNiYjU0YmUwZTdjNDg2ODIxNzRiMWI0NjA2MjJiNTJhZDRmMzJiZGIyYjE2NDAzMmJjMzI3NzZkYTFhZDM5MTM2MjZkOWU2MWY1YjlmOTg3N2M4YmRiYzYyZDk4NDc1MzU2MGYyYzI5MmVjMGVjZThjZjBlMzY5YjY0ZTE0ZWNiOTEwOTk3YjdmZDgxYThlZWM2MmU5ZWY3OGIxZDBkZTY2NDJkODQwNGNjNGNiN2JkNTQ0ZmM1YTNiMzU4OGExNmM0ZTM0MmRjNTAwM2Q2NjA4IjoiZTdhYTA3Y2Y0YTNmOTAxNjdiNDg2YzFjNGZmZGQ1YWU0NWFhNTkyMDBlNGE5NGNhZGVkMGI4NWFhYWU4ZmVmMiI6IiI6IiI6ImY5MzFiMGRhZTQzNzAzZjdlYzIwYmI2YzU2NjcxOTEzODBlN2UyNjNlZmJmMzBiZjRiZDRjZjZlM2NkNTk3NjA5NWViNDhkZGNmZTlmNzJjMjk5ZGMwNWFiMmQ4ODQ2ZTIyNTk2MDBmZTM3MjM3NDRmNGVlMTljNzU4MzVjMDdiZmIyMDdlNzBjZWFhZmEzNTViYjZjNmIwYTQyMzZkMGUwODMwNzU5Y2M2NjczYWYyYjRkZWU5YTNlZmU0OTZlNzAyMDU1NmI0ZjhlZDBjMDhjYmQ0Y2FjNjE4MzFiYWIyZjVhODFhODEyMWIyNDBhOWM2ZDM3NDE3MmU1YTg3ZTEiCiAKIEhNQUNfRFJCRyBOSVNUIENBVlMgMTQuMyBQUiBUcnVlIChTSEEtMjU2LCAyNTYsIDApICM4Ci1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NgogaG1hY19kcmJnX3ByOk1CRURUTFNfTURfU0hBMjU2OiJiNzJkNTYwNDQwMWIxNTQ3N2I2NTlhMzczY2FhZTUzYThmZTk4M2UyMTk5MTg3NTQ2NzU2ZTAzOWU3MmVmYjdmMmFkNDcyZWU5MDQ0N2Y2MTZiN2FkNWJiMWRjNjkyZmQxYjllMTAwMGVlNmM4YmE2NWYzOWE4MzdmMjdhNGU1Y2RlOGNiZGVhNThlY2YxMTQ1ZDUzYzIxOTM2OWZhODY0MDJhYzA1ZTNmZTNkNTJmZDU0MzQzMTc5ZjIzN2FlMjA1NTI3N2Q3NmQ5Mjc2YmJmODNmOTc5MDEyMzJiYTZjNCI6ImM5MDM4YjBkNDY4MTUzZTg1MjkwODljM2RiNDE4ZmJiZTQyYWZhZTU2MTNhOGVlYTdjOGUzYzJhMzA3YzQxNTkiOiIiOiIiOiI5YzJhOWRjMjUwNGUyZDk0M2Q4NWUxYzA2OGY3ZTU3ODM1MGRmZWQ2NjFjYjVkODJjZDI2Y2UyMmQwODNmNmUxNThhMzkxNjFmMzAzMzcwZWU4NDRiNGY3NTcyM2ZmYjQ1MTMxMjIzYmVlOGVmYzMyNzI2YmJkYmI5YmEyYTBkODE3N2U5MGU0ZTFjOGYxZDNhMjJlOWE5ZWFlZjhiN2NhNGNiYWYxNDJhYTFkYTE4ODZkMmVmOWMxZGMzNjkyYmIxNTc4NGNmYzkwNmUxMmI0ODQ2MDk0MDM1MTU1NTBjYzQ0ZTNiMGVkZDQyYWU5YzNmMjY3YWU5ZGQ3MzdlZjI4IgogCiBITUFDX0RSQkcgTklTVCBDQVZTIDE0LjMgUFIgVHJ1ZSAoU0hBLTI1NiwgMjU2LCAwKSAjOQotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIGhtYWNfZHJiZ19wcjpNQkVEVExTX01EX1NIQTI1NjoiYzVmNWU1MTkyODNmN2QzMjE2ZjJlZDc3NjVhZTJjMGRkMWUyMjU5NmQ3NzYyYzFmMDcwN2FjOTlhZDNmNmJhNmI5MjBlNmQwZWMxNTg1MjE4NmI3N2MzZTkzMTg5MDRiMjUyYWEwZTJkYWZjMjkwMWE1MTc3NDQ5MDMyYTc3MjdlNTIzZDMzZDZmNGI1ZjM1MDU0NWU1YmYyMWEyYWI2Y2VhMjNmNDNjNzNjMmNjMDk4MjU0MWMyOThlMDVlNGIyZGNjNmZjNWQxZDUwNzIzMmQ3MzViMDFlZDI1MzYzMTciOiI5ODM1YWM4NGM4ZjhjYzAwNDY0Y2U3NTg5MTA3NGUyMGYwNTBiMTYyZjczYzllOTE0MzVhYWQ1OTI5YjQ3M2MwIjoiIjoiIjoiODVhNzQ3NzMxNjM4ZTA5ZWMwMjU0ZTdhYTM4ZTA4NDM5NDU3ZTY1MDRkZTk0ZDAwNDA1ZDQxNzMyNmYzYWQ0N2YxNTZiNWUyMTEyMDRhODM2MzQzNjliZWZmYzEyOGYzNjE0ZTg5ZTJlMjg4ZDJkZTExZjdiOTBiY2MyYjhkMjlmMTQ5ZTEzYTNjYmM4ZDcxMWQyNDc2NWY0ODBiZDY1OTZjOGVmNjA1Y2Q3MmZhNjRlZDhhYjFmOWExOGIyZDBiODFjMGRlMDhhMTY3ZDUzN2IzZDFjNTFjMmEwYzllYTkxMjRjNmU0MTYxM2IzODNmMTNmMWQyMGUxZWFmMjI4OCIKIAogSE1BQ19EUkJHIE5JU1QgQ0FWUyAxNC4zIFBSIFRydWUgKFNIQS0yNTYsIDI1NiwgMCkgIzEwCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NgogaG1hY19kcmJnX3ByOk1CRURUTFNfTURfU0hBMjU2OiJmYjkxMmZjYWQyN2JiYjI1MzgxNjRmNzVhNzlhM2Q3NjUxYzQyYWJhNTQ3ZGFkNjQwMzdiNDkyYTg3ZTMwMTgwOWUxNTRmMGI4YjA5OWEyZjU4NDY0M2U0ZTQwYWIzNGZhMTQ2NjY3OWZkMGE4YTFmODI3NzJhZTBjOGU5ZGUyYTQ2MWQ4MjBjZjM3YjJlOWJkNzdhNjA5ZGMzNjdiNDQ5ZWJhZWNmZDBhZmY1OWNhYmFmMjI0ZDU2MTAwNjljODg4NzYyZjkyYTE2NTUzZDgyYzkxNzU1M2E5ZTcyMzE3NyI6ImUzYzhlYWIzNWZiZjkwY2FkMmE2OWNjNzRhNjhhYzBiZDBmYzUxNTg1MjMxZmI5YzNlZWNiNDlhMDY0MDQzYmMiOiIiOiIiOiIwOWI0YTQ3NTE5ZDRhY2ZkYTUwNmQ2NGMwYjU1MzZmYjllNzJjYjFiNmI0MDhkYTgyYjRiODBmZjc5NGY0NWJlYjIwNzBiMDVkZTY3NzU5YjgzMTdmNDBlNzk4YmYzN2QzOTJjYjU5Y2JiZmVjYzMwNTYyNTljOTQyNjQxNWRmNTI2YmYzY2I2MmY0NjM2NTQyNjg5NTM3NjI5YzBlOTFhOWJlYzJhNjAwZWRlM2RjYWU4MjA3OWNlYWEzNTIyNTI0ZmMwMDJlODJjMjgwNzI0YzQxNzllMDBkZmRkMzc0ZWZmYTA1YTcxZmM4NTZjZWIyMTU0MmJlMGJkYjYyYmY3IgogCiBITUFDX0RSQkcgTklTVCBDQVZTIDE0LjMgUFIgVHJ1ZSAoU0hBLTI1NiwgMjU2LCAwKSAjMTEKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBobWFjX2RyYmdfcHI6TUJFRFRMU19NRF9TSEEyNTY6ImVhZDdmYTMyZGFmYWVjMDYzNDc0NjkzZTk4MjMwYmZkZDYxZWQ1ZWU4OGM3YTkzNzE4ZmRmMTdkYjc3MTY3M2YyYzNkMTJkNjNhMDhiOWFjYzJlZjIxNTMxNDEyZGNkYWMzN2M1ODI4ZDRhYjI2YzFlMzY1YzA0M2FhZDIxYzUyZWY5YzE0NDMwNWU5MTdkZWU4YTE1ZGQ2Y2Q3NTFjMmM0NWEyZDZlMTQ2OTM1NDU4ZmQyY2ViYTY4YjQ5Yjc0YmNlY2E0MzI5YWM1ZDMwYzdhNjdmNjE0ZDNiOTNhNmZkIjoiZmQzZGE1YmIwMWVhNzVkN2UzMmMwMjNlZWMyMzBmM2JhY2JjMTYzNzY4YzFjMjQyMTYwMjhlODI2NjBlMWJmMiI6IiI6IiI6IjhmYzc4YTQyNWY5ZTg0NmVjMmM3NTdlOThmMGUxZjY3MDg1YmRlMDE4NGY5YmE5ZTg2OTc4MTFmNmM1MDkyOGRlN2VjOTc2N2E0ZmJlYzhiYjA5OWY1MzRjYWJhZTRiY2RlNjlmMjYzMmZlNGQxYzU4MmNiOTE4ZTMzNzBjYWJiMjE1M2ExZDE2OGZjZTIzZmFmZGU5NTY2MGU2OTg3ZDJlOGZjZWZiZGZlYjIxMzk4YTUwNzRlZTc2ZjczMTVjZDdjNTE3ZDNhNGRmOGFmMjZmMTg1N2IwZDNlNTcwNGI3YTNlNWMxNWFkYzVmM2M2NzQ1YzA2M2Q0NWEyYmYxZWYiCiAKIEhNQUNfRFJCRyBOSVNUIENBVlMgMTQuMyBQUiBUcnVlIChTSEEtMjU2LCAyNTYsIDApICMxMgotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIGhtYWNfZHJiZ19wcjpNQkVEVExTX01EX1NIQTI1NjoiNWQ3OWM2Y2NlZTA1MGIzYzJlZDUyZWRjYzE2ZmMyNmVhN2I2ZjNmZDJiOTE5OWZkNjVjN2RjMjM0NWQ2NTY2ZTlhMGM2ZTAxNzEwZTRjNzFiMjgyMGY3YWE5MjAzZGEyMzUxNWVhYjg1YTU4MTJjNjY3NTY2MzQ4MDRlM2Y1ODE3ZDMyZjUxZGFiM2FlMDA0NDNjNjk0YzU5YjcyZDUyNmY4NDBhMTY2ZTU2NmI3ZjYzM2M3ZDI0NjE5MmVmODI0MTllM2NkNzMzYTAyNjg0ZDZhNGNhMDkxMTc4Y2NjNzYiOiJlZTRjM2NmYTVjNzliMWZmMWRlYzRiOWY5ZmY0ZWE0NWM5MTZlNDY4ODkxMzBjZmZkN2YxMzdlNjU3OWFmNTJkIjoiIjoiIjoiNGY1M2Y3MjQ2MmQ3ZTkyNDdlN2FkMTEzODI3ZDNlYTc0MWMzNTY5MGZhMGJlMDI3Yjg2NjYwZTkzN2MxMTllNzIzN2JiYzY3NGU4MjZmNDJkZDZkZmE1ZjU0ZDkwNTQyZWQyYmFkMjE2ODNhZjRiMWY4NzQxZWNiNzViNDY0MzQ1MTExY2MzZDM4M2M4YjdkMDg4NzE4YTM1M2MyZDRhZjkzZmY1OTA1Nzc0NWE4MDgyMDNkMDhlYmEyNDUyYTFhOWFkZTc1Y2FkZDBmNDlmY2QyN2FjM2MwMjRjMDRjMDkzNmMwMjM3ZmMyOWRjZDA2MWI2MmZiYjczYWRhYThlYSIKIAogSE1BQ19EUkJHIE5JU1QgQ0FWUyAxNC4zIFBSIFRydWUgKFNIQS0yNTYsIDI1NiwgMCkgIzEzCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NgogaG1hY19kcmJnX3ByOk1CRURUTFNfTURfU0hBMjU2OiIzNWY5YzNiMGU1OTQ3YTc0ZDkwNjA5ZTZhYjY2MGI0YjQ2MTc3YTEyODg2Y2M3N2ExOWFhOWVhZWU4NjUwMGE5ZWFlYzVkZTU2NzJjNWVlNTY3NzFkNzc4ZjVhYTk2MzcxM2ZmZDM5ZmFlOGUwNWVjOTA4NDM1MDVkNTgzMmVjOGQ5OTlmMjcxODEyZDQxZGI0ZjIyM2E1ZDg0Njc5NDRmMDgwODNhODFjMjlkOWE1NTlhOTYwZjgzNDlmYjAxNzRhOGRiY2ZhMTcxYmUzOWE4YzM2YmNiNzc0M2M1YzViOSI6ImI0YjVmYWZmZjM2OTk5NzA3NGE4MmUwNjQyOTg4NTlhZDI3NzVlYjVjNTk3OWY4MWQyMTE4ZGE5NmU4NDA5MzAiOiIiOiIiOiI4N2FmZDMxNDdlNjFjNDlkMjAyOWI4ODQ4MmVhY2RhY2U1NmYyN2NjZGEyOTI3Nzk5YTdkZDAxZmY2M2Q2ODczODA0ZTdiNTYzNTY0NWZmM2Y2NWIwMGUxYmQ2NTI1NDkzM2U3ZTU3YjU2MTc3ZGI4MTU0OGZiYWMzNzMwNWQzZGNiNzBhNWY3NmEyMjI5OTlkNmJhOWM3MzY3MGFlOTMxYjQ5Y2NjOTdiNGYyNTIwM2VlOTVjZDY4ZmE3OWUyODI0ZTJlYWQ4YmQ0NzU1YTViYjQ2NThlMDI3ODhiOWNlZDE2NmVhOWVjNTM3Mzk1NGFkOGRhODg3OTFlOGYxMDQ3IgogCiBITUFDX0RSQkcgTklTVCBDQVZTIDE0LjMgUFIgVHJ1ZSAoU0hBLTI1NiwgMjU2LCAwKSAjMTQKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBobWFjX2RyYmdfcHI6TUJFRFRMU19NRF9TSEEyNTY6ImNkMDgzNjNlNjBlMTdiYmMxMmQ1Nzk1NGVmOTJlYTM4YWYxMDk1ZmZlYzQxN2E3ZjMwNWI3YzEwZDQ0ZjFlNjUwMDY0OTc4NmQ1MTQxNzkzZjdlZTMzYTkxM2IwOGY2MDQ1N2NkZjYzMTYzNTcwMzVhYmY1N2MyZTJiMTliYWU2OTczZDAxZTllOTNkYWMyNDkxOTgxODhiZTJmNjg0OWU1YTk2MzZkNmI2YmY3ZDFjMDFjMTZjMDM2NjlhYjdiNWFlYTgyODAxNzk4OWM4NzBjYWM2ODU3YmYzMjdiNzQ4IjoiYjU2MTE4MDdkMzA3MDIwMGZjNjI1N2NjMmIxM2E4NGY4NDJhZDQ1Y2UxMTZmYzkxZWRhNzlmZjE0ZjNmMjVmMyI6IiI6IiI6IjI4MWU5Y2ViNWE0NjU3OGRmYTI5MTdkOTg4M2YxODE5YmJiZGM5OTAxZDQ0ZjNhYjQ4Y2NmY2I4MDdlYjU5NmUyMGZjMDUwNjBkNmE3N2Q5MmE2ZjYzMGJkMmEwMTJiNDEyMzJkY2U0MTFlYTA0Njc5NGFiMDA5NmI4NjQ5MWQzY2EyYTU5ZDQ0MDVlMjgzMWIxZjlmNjllNTU1NDJhZWM4OTQxN2VlN2VjZDdhMDUwZWIyOGZkNGQ3ZDI3MzlhZWY3YWE2ZjMwZmExN2M1YjJiYzFjNjllYmIxMDE2MzQyNmI4YzYwMzNlYzc3MzNjYzlmZmNhZTJmMjM5ODZlNjMiCiAKIEhNQUNfRFJCRyBOSVNUIENBVlMgMTQuMyBQUiBUcnVlIChTSEEtMjU2LCAyNTYsIDI1NikgIzAKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBobWFjX2RyYmdfcHI6TUJFRFRMU19NRF9TSEEyNTY6IjQyOTQ2NzFkNDkzZGMwODViNTE4NDYwN2Q3ZGUyZmYyYjZhY2ViNzM0YTFiMDI2ZjZjZmVlN2M1YTkwZjAzZGFkMDcxNTQ0ZTU5OTIzNWQ1ZWIzOGI2NGI1NTFkMmE2ZWRiOWI0NzkwYjYyMzM2ZmJiOWE2ODRiODI5NDcwNjUzOTNlZWVmOGY1N2JkMjQ3NzE0MWFkMTdlNzc2ZGFjMzQ0YTlhYmU4MGY2ZjUyMmYyOTg3OGJlZGY4MjQ1YjI3OTQwYTc2NDcxMDA2ZmI0YTQxMTBiZWI0ZGVjYjZjMzQxIjoiNjNiYzc2OWFlMWQ5NWE5OGJkZTg3MGU0ZGI3Nzc2Mjk3MDQxZDM3YzhhNWM2ODhkNGUwMjRiNzhkODNmNGQ3OCI6IjI4ODQ4YmVjZDNmNDc2OTZmMTI0ZjRiMTQ4NTNhNDU2MTU2ZjY5YmU1ODNhN2Q0NjgyY2ZmOGQ0NGIzOWUxZDMiOiI4YmZjZTBiNzEzMjY2MWMzY2Q3ODE3NWQ4MzkyNmY2NDNlMzZmNzYwOGVlYzJjNWRhYzNkZGNiYWNjOGMyMTgyIjoiZTU4MGRjOTY5MTk0YjJiMThhOTc0NzhhZWY5ZDFhNzIzOTBhZmYxNDU2Mjc0N2JmMDgwZDc0MTUyN2E2NjU1Y2U3ZmMxMzUzMjViNDU3NDgzYTlmOWM3MGY5MTE2NWE4MTFjZjQ1MjRiNTBkNTExOTlhMGRmM2JkNjBkMTJhYmFjMjdkMGJmNjYxOGU2YjExNGUwNTQyMDM1MmUyM2YzNjAzZGZlOGEyMjVkYzE5YjNkMWZmZjFkYzI0NWRjNmIxZGYyNGM3NDE3NDRiZWMzZjk0MzdkYmJmMjIyZGY4NDg4MWE0NTdhNTg5ZTc4MTVlZjEzMmY2ODZiNzYwZjAxMiIKIAogSE1BQ19EUkJHIE5JU1QgQ0FWUyAxNC4zIFBSIFRydWUgKFNIQS0yNTYsIDI1NiwgMjU2KSAjMQotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIGhtYWNfZHJiZ19wcjpNQkVEVExTX01EX1NIQTI1NjoiYzdjY2JjNjc3ZTIxNjYxZTI3MmI2M2RkM2E3OGRjZGY2NjZkM2YyNGFlY2YzNzAxYTkwZDg5OGFhN2RjODE1OGFlYjIxMDE1N2UxODQ0NmQxM2VhZGYzNzg1ZmU4MWZiN2JhMTkxNWIzYzA0YzQxYjFkMTkyZjFhMTg4MTYwM2M2YzYyOTFiN2U5ZjVjYjk2YmI4MTZhY2NiNWFlNTViNjk5MmNjNzc4N2UzYjg4MTJlZmJlZDNkMjdkMmFhNTg2ZGE4ZDU4NzM0YTBhYjIyZWJiNGM3ZWUzOWFiNjgxYzEiOiJiYzU1YWIzY2Y2NTJiMDExM2Q3YjkwYjgyNGM5MjY0ZTVhMWU3NzBkM2Q1ODRhZGFkMTgxZTlmOGViMzA4ZjZmIjoiMThlODE3ZmZlZjM5Yzc0MTVjNzMwMzAzZjYzZGU4NWZjOGFiZTRhYjBmYWRlOGQ2ODY4ODU1MjhjMTY5ZGQ3NiI6ImFjMDdmY2JlODcwZWQzZWExZjdlYjhlNzlkZWNlOGU3YmNmMzE4MjU3NzM1NGFhYTAwOTkyYWRkMGEwMDUwODIiOiI5NTZmOTVmYzNiYjdmZTNlZDA0ZTFhMTQ2YzM0N2Y3YjFkMGQ2MzVlNDg5YzY5ZTY0NjA3ZDI4N2YzODY1MjNkOTgyNzVlZDc1NGU3NzU1MDRmZmI0ZGZkYWMyZjRiNzdjZjllOGVjYzE2YTIyNGNkNTNkZTNlYzU1NTVkZDUyNjNmODlkZmNhOGI0ZTFlYjY4ODc4NjM1Y2EyNjM5ODRlNmYyNTU5YjE1ZjJiMjNiMDRiYTUxODVkYzIxNTc0NDA1OTRjYjQxZWNmOWEzNmZkNDNlMjAzYjg1OTkxMzA4OTJhYzg1YTQzMjM3YzczNzJkYTNmYWQyYmJhMDA2YmQxIgogCiBITUFDX0RSQkcgTklTVCBDQVZTIDE0LjMgUFIgVHJ1ZSAoU0hBLTI1NiwgMjU2LCAyNTYpICMyCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NgogaG1hY19kcmJnX3ByOk1CRURUTFNfTURfU0hBMjU2OiIyMGY2OWJjNGEzMDhkMWZhNDAxNDZiZmI4YTMxNzFlODFhNjZlYmY0YzgzZmQ0NmIyYzhhM2IzNGRmNDk5YTZjOTJmNGJjOTY5OWJmNmQxOWQ1YzNmNDUyNDViYjBmYjA4MzEwZWI3YTljZTUxODgzYjBjMzYyNzFiNWZmMGExYzAwMjE5YTA0YTZiNTcxMzYyYzdhMThjYWJjNDhmMmZhYjBjZGYzNDM0YzlmNzJjZjVlZjZhNjFmZWVlZGM5NGM3MmUyOGZiNWE5OTM0NWRiYzc5MzlhM2I4ZTI3N2M1ZSI6Ijg4MmJmMGVkYmI2NmViYjI4OGNlNzQxOTk3ZmZjZDMzODAwNDlmNTAwN2IzMGU3NDBlY2UxOTBhMDE2MTJkZWEiOiJjYTFkYTMxODEwYmZhNmMwMmI1ODYzZjg3ZDM5NjY4ZDc5NjEwNTQzMGM0NDVkYjE1N2M0MWEwMTUyYTBkMjAwIjoiYzM0NGIwYmZlODAxZGEzN2UyMzIwZDM2YjllNjQ1MjIzNWU2ZjZmNGNmMzE5MGQ0MTRlODU5ZjRlZTkwZTVkZSI6IjhlY2FjN2E2NWNiZmI3YTg0OTYwNDUwNWQ0MDNhY2FlYzQxYzZmZmRhMzAwOWY2MDgwYmRhNzllMjZkMWRlM2JkZmQ4OGZjOWJiOWNhMWRkMWNkOGQ0OWUzZDBjZmIwZjBhMmU3MGFlMTgzNGU4ZjdkN2Y3OTM4MjU5MWU4YmVhMGEwMzg2YWQ0MGM5OGQwOTcxMjJkZGUwZGMyZjRmZDMyNThkNDBkY2RkODA0ZmRjYjcyZDYyZWY5MDQxNTE4YzM0ZmQ4YTM3Njg0YmNhYmUyZjU5NTk0MzgyNzY3YzI2MzNiZjI1NTEyMWFjNzM1ODUyZmVjZjE0NDQwY2I2MjMiCiAKIEhNQUNfRFJCRyBOSVNUIENBVlMgMTQuMyBQUiBUcnVlIChTSEEtMjU2LCAyNTYsIDI1NikgIzMKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBobWFjX2RyYmdfcHI6TUJFRFRMU19NRF9TSEEyNTY6IjBhMTNkYTJlZGQ5ZWQwOTc2MzE4NjBkYzI5Y2IyZDdlZmYzNTE5OTEwODA4ZTdlYjBjNmZmMTQ4NWNkZjc1OGQ5NzkzY2E2OTc3OTExN2E2M2E0N2UzODY0MzNmMThiODgyZWE4YzhkMzE3OWRjYzFiMjYzZmIyNjNiZGJmMmFiODE4Nzc1YTg4MTk2NGE1NjkwYTZlOWFmNTkyZGI1OTRhMzlhOTYwZTM0M2JkNGVkYjc3NDdkNzU4NjZlMWNhNzEyNTc5N2QyYmY2YTY0NGFlZDZlM2M4NDQzZjk0Mjc0IjoiNDg0NDViMWI2ODA3YjI2MWQxMDU2OWFiNGI1ZDhhYjVkOTdlYmQzZDllODE5NDA4OGIxMDQ2M2FiZjExYTJkZiI6IjZiNzQyZDA3YzQ1YTAzMTc5NWE3NzcxZWFjZTg5ZmFiNzgyZWZmNmE3NDU1NWZjMmVhYmJhMDBkMWQ3YjdjMTUiOiJjZDA0OTNhYTg0Yzk0MWMxYjdmY2UzN2QyZTM4YzE5OWZiOGM4NmVhMGM1YjZhNTM2MTE4YWU0MjNjYTdhYjUwIjoiZmEwMDVjOTExOWE4OThmMmZlYTM1YjgwNWEyYmQ4YmU4OGM0OGNiZGFhODU4MjMzN2YxZjQwN2NlM2U0OWRlZTgwMTFiYjFlNGFlMzMzMTdjYTZkNWNiNjQ1Njg3YTYyYWVkODZkNTgwMzU4M2EwMTJkOTZiODJlN2JiZmJlYmY1OWZkZmMxZGIwYTkyNTg2YTg0M2Y2ZTU3MDU2ZjQ5NzI2ZTg5YmY5OGI2NDFlYTYwYTNjOTE4MTVlZGJhZjQxNWIyYzRlYjdiYjhjNTZjYTVkODRhMzU4N2M2NGE5NDVhNmUzZDYyNWI2NzYzMDg0YzJhMDkxN2RlNmJkNjc0NiIKIAogSE1BQ19EUkJHIE5JU1QgQ0FWUyAxNC4zIFBSIFRydWUgKFNIQS0yNTYsIDI1NiwgMjU2KSAjNAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIGhtYWNfZHJiZ19wcjpNQkVEVExTX01EX1NIQTI1NjoiZmZmY2FhYTdhZTc3ODdlMTJlOTY1MjFhM2UyOWE3YzQwYWUwOGE3Y2RlYTk5NzRjZmNiODk0MzUyOTU1ZTY1YTI3YzhiMDE0OTBjOWZhNzU5MzczNGVjMjdhZTI0MmEyMGQwMzcxYzNjNjY0YmRlYzdmMzY4YmY1M2E5MzBjZmIwOTMzZGU1ZDUwODY1Y2Q3NTdiNjNmYTM1MDM0MTM3NWYxMzJkZDJiZjliZjhjNmQ5ZDJjYTUzNTRlMjg0YmJhYzY3N2MyNjkyOThlMWE1YmVmNTM2MDkxMDgxNDQ2YmIiOiI1YjFjMWExOWIyOGIwOWQwOGJmOWNkZTg3YjRhNjg4MWQzOGE3OTYxYmQ3YmE2ODg4ZGUwNmQwYzc4ZmJlZjEzIjoiNWViYzc2YWU1Nzc5ZmU1NjMzNjJjNmY5OWJiYTM1YjRiNTBlYWNhZjcxOTJjNjhiODJhMzc2ZmI3ZjJiNjFkZSI6Ijk1ODMxOTQ5MTcwMTA1ZTljMDIyYTc3MTE4MDNmOWY3ZDYxN2E4YTEzNzE0NWI0YzJmNmRkZGE3ZWJjZjNjNWEiOiI2MzNjYjY2OTZiOTdmMmQ0MTE5ZmUyNDI0ODZlOGFmZmRmMWIzZTI1YTk0ZTQzNDU5MmNhZjAyNzA1NjNiMjEwZGY2YTlmOTQwNWMyYzMzY2JiYjc1MGMwMjE4ZjcxODExNmI2NzIzMmRiODc0NjIxODMyYmE3OGIwNDA1MjNiMmViZjcxNTA4MmZkMjNmZTdlMzI1OTk0MDJhZjk1MTU2ZWJlZGE5OGVmZjJhOGYyYTRlMjk1YjlhZmI3ZmFkY2U5NTZjYWJmYzExODNmMjBlNGUwNTlkOTE2MDRmYTVkNzcwNjVjNGEwMDZiM2ZiMmMxNTc1MDIwNmVjOTM2ZTk3IgogCiBITUFDX0RSQkcgTklTVCBDQVZTIDE0LjMgUFIgVHJ1ZSAoU0hBLTI1NiwgMjU2LCAyNTYpICM1Ci1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NgogaG1hY19kcmJnX3ByOk1CRURUTFNfTURfU0hBMjU2OiJhZThhNmEyNWIyNjYwNTFjZDQxZmQ1ZWNjNjgyYjg0NGFhM2EwOTMyNzIxNmViNmFjNjMzOTAyNTA2MjAxMTMxMjQxNDUwMzNiOTk4OTZjMjFmOGRjZjYwMjcxYmE2ODExNTY0MDZmZjI2OTE4ODY5NzJmNTNjMmU0YjQ0OWRjOTRmYjA5YTI5NjBhMzQyM2QyZjRhYzY2Zjk3M2I0YTg5ZjgwYzAwYWY2ZmJlNGIwYmJkNDMwYjEyYTcxNGQ0MGUxNzJlOTlmOTA5OTE2YTI3MjIxMDIwZmM3MjI1OWNiMSI6IjBhY2JhZTNjMDg1ZDJlNWU3NjBiMDYzMWM2YWQ5N2Q5MzVlOTZiMGE5MGVkNGE5ODY3ZjYyNjk1MTU5NmRlZDIiOiIyZDc0ZDA3ZTgyYTAzM2MwYmY2NTY0M2E2NDc4ODU2YzkyZjMzZWU1NWEyNjgyYzE3ZTdjNDI4NTdlOGU2ZmE3IjoiYTFiMzk3Y2Q4MjZhZjNmYjFiOTQ5NDUzZTk2ODc4ZTU5ZjA2OTczNTI5MjliMTVjZDY3ODE0MjQ1MzQ3OWU1NSI6ImMzMDk1NjdlZGIzZDQwZmQ4ZDgyODU1MTExNzk2NGUyMDA0MWIwMzFlOGViNDFhOGM2ZTk1ZTI1ZTBmNDMzNzI1ODU4NTQyMDJjNWQ1Nzk2Y2E0ZmQzOGI3Yjc4OWI0NDQxMGJhM2UzYWI3MDE2Y2I2NzkzNjI1YmUyN2M2YzhkMzk0OTljNDAyZTRkNTJiZjJjMGJjZTIxYTVmNGYxNmQ4MGQ1NDQ5ZDUyMjJhZWExOWI2NGRlMjVmOGY1ZWI4MWJlYTdjNDkxYTMyOWNhMDc5YTk5YzllYTAwY2JmMzM1NGI1ZmVmNDM1ZThkNGNiY2JmZWE3NDg2ZDM3OWEyYTIiCiAKIEhNQUNfRFJCRyBOSVNUIENBVlMgMTQuMyBQUiBUcnVlIChTSEEtMjU2LCAyNTYsIDI1NikgIzYKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBobWFjX2RyYmdfcHI6TUJFRFRMU19NRF9TSEEyNTY6ImU2MDNiMDJjY2QxYjNlMmNmMjdhMmE1Y2JiYjZlOGZkMjA1ZWQzNTMxYWIwOGNlOTEyZjkxNTMyOGVhMWM3M2JhN2EwNzVhOWRmZDk4MDUxMDFiYTJmMGY2ZTQyZWJmZjcyMDI2ODdlOTllMWNjOTE0MDM2MTQ2ZTE4N2MxNmI4Mzk5OWRmNDQyZjBmZjg3YjlkODJmYzc4MzE3MTRkODIwYzI0N2YxYTJjM2VjYTlkMzJlZjAwMzljNGEyZWJiOTk2MmQ4NDRlMDAzMmE1OGM2MDRkNjMwZjEyODg0NzQyIjoiMjdlODYzYzJmOWY5MWU5NTQwZjAyMDFkYmEwZmM2M2MzYzYyM2FjODlkNjMzNjgwOTNkZWMyZjE3YjY4NjhiYyI6IjkzZTk2N2Y3MzkyOWYyYmUzMzk0NDg3MzVjNzRiNTcxYThiODBjMTBiZGEyZWE3ZmJlYTgyNGIxODhhN2RiOTMiOiIxZmYzYTQzOTY2YThmNjRjNDJkZWU4ODg5Y2UyNjI2YmIzNzBhZmVmNGMwMjIyYjkyNmFiZTFiZTcxOTQyN2ZjIjoiN2NhNjg2N2VmNTY4YzhjMzIzZDIxNmRiOTZiNjQyNTc2ZGUxZjVlODJkMDhiODRlNmEyNzUyMDAwYzUxNzVjZjQ5ZDYwOTZkZmY3YjcxNGE0NWE3MmE2OWU0NjdlZTM3OGY0ZWFiYjE0MmVkZGNhOTI2YTNkMDExMjA5NjBjZDdhYWVmMWUzNzdmNDQ3YjBiY2Y4ZWU3MzNkOTYxZDBjMzZiZTkwMWM3ZjQwNmExZGM4MWNiMmFlMmU5ZjY4ODZmNWJhMWU0ODFlN2MxMzk2ZDJjODlhYTQ1NmIyZmIzNGYwMmE5MWQwZWRhODc4NGMyNmFkNWE2ODkyYmE1ZmZhMyIKIAogSE1BQ19EUkJHIE5JU1QgQ0FWUyAxNC4zIFBSIFRydWUgKFNIQS0yNTYsIDI1NiwgMjU2KSAjNwotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIGhtYWNfZHJiZ19wcjpNQkVEVExTX01EX1NIQTI1NjoiMjIyZGNiNGIzMWM3YmMzN2Q4ODEzYmU3OGQ5NWU5ZDhjMGYwMjEzNjM4NjJjNmJlZTViMDFlNmM5ZGJkYmE4YzJhZTgxYzUyYjkwZDRjZmViODA2OTdmY2YwNWNhYTA4YmY4MTcwMmE5MmE2YmM5MGI1MzFiMzYzZGI1YTVmZTRmNTA0MTI2MjFiYTM5MGMxY2QyMTFhOTY4M2M0N2VjN2VkNmQxNTUxM2JkNDlkMTA0NDlmMGM0NTAxODNmNWE3YjE2NDY2YTM3ZGY1ZmM3OWE0ZGRkM2VjNmJkMGM1NmYiOiJiY2MxOWViNDc2YWM5NjU2N2RhMTBkYThmYjcxNGMyZjlmYmRmZjI4YjdjNzRhNWNiYWM4MGNhNDgwZTYxZGU2IjoiNDZmZThiZDRjNDc4OWMzNzM3MDcwNTBkMGU3MDBlNTBkNjkyYmExMGZmMmZjYmEyMDA0NWM5ZWZmZjczNzNmNSI6IjY4Yzk1NmE5NWY2YTJjOWNkZDA2ZTQ2MTgwNWQ1MjcwYjBkZjNjOWZjZGViYmVmZmIzMGRhZDFhODUyZmIzNWEiOiI4YTU0ZmE5ODE4NjAyMDMyNzYyYTQ1YzlmNjdmNjY4ODYwZWQ2MDVlMzcxYTYzODIwODI1MDkyNDkzMzBmYzI0ZDEzYzRhY2YyNzc4MmE3ZDJiZTQyNzIxYmJiOWM4MGM2MzM4YWNiNTdhNzE1ZWQxN2MwMDg5MjgxNjZmOWEwOTAzMzFkYjRmZTYyYTExYWI0N2M5NjZiYzNjMjRhOGJlOTQyZTM1MGEyZGVlN2M3ZTlmNjIwMzg2ZDg5YTFlMGJkNTI5OGQwMGY5NGY5YTkzMWU1MDgzNGEyYTg1YzAxNzUzMDhiYzc0YTM0YWMzN2FiMjEzMDVjNTExODY2MjYzIgogCiBITUFDX0RSQkcgTklTVCBDQVZTIDE0LjMgUFIgVHJ1ZSAoU0hBLTI1NiwgMjU2LCAyNTYpICM4Ci1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NgogaG1hY19kcmJnX3ByOk1CRURUTFNfTURfU0hBMjU2OiI3ODdjMWZlMTQ5OGJhY2NhMjkxZjAyMGY4MGQ2YjU1NmU0ZjBkNGZhNWFkY2YyMTUzMWM0NDdmMjhlMTQyNjZlNGYyZTlkZTNlMTI1NTc3NTYzNDhkOGIwYzczYTEzMDFmNDNjZTQxMDM4Y2JiN2RhYzYwZDgyNjk0OTViNjJjYTc0NTJhOWM0ZWRjYjU0ZTdkNDc3ZjBjNmM2YjdhZjYxYjNhMzc4NGM3NzVhNTg4NGNjNTM2ZjYwMTMyZTY2Mzg2ZGJiOTExNTc3YWVmNzVmYzBhNjg1MDg0MzJlMjU1YSI6IjkxZjE4ZGQ3NTg1OWMyOTM4ZWRiMGQ4MWY5ZDYwOTVhMmJjNzU2NWI2NzQwM2E4Nzc3Y2QwNTlmMjYzMWM5NTgiOiI5MmQyZDgwOTFjYzRmZTlmNWNkZjJkZWQyZTM1OGZhMDVhN2Q4ZTQ1MjUzMzNiNGMwMDY5N2FiMThkZDFmOTk1IjoiMjI2M2NiYjZlMjliYjliZGJkODAzYzcyMjRhYTAzOTA3N2JhNDNkMTY0M2Q0NzU0NzQ1Zjg5ZDhiYjZmODg4ZCI6IjYyMDg1MWQyYTRjOGI2NTU4ZTE4YWE1ZTJkNDU0Y2VjODM4NTZkMjVlNjE5ZTY5OTI4YjU3OGVhNGQ0ZTQxYzY2MmE0Y2QwYWU2NGVlNzU2YjE4NDc0MjE1NGQ5ZTdhNjI4M2Q3OGJiOGI2Y2U1M2UyZmQyY2U5M2NjMTJhZDc4NzQ5Y2FiNTMwYTdmOTk2YzgzMTE3ZGY2ZDIxNzE3MDkyN2Q3NWEwYzk4MzE5NDgxNmQyZTIxZjkyODQwNzkxMjkyNzEwMTc4YjNmN2Q5ZmUxMDAzMDQxZDJkOWU3YzU5OTQzYjE0NDA5YWJkNzk1NmJkNWMzMTE5MGE1NGJhMGIiCiAKIEhNQUNfRFJCRyBOSVNUIENBVlMgMTQuMyBQUiBUcnVlIChTSEEtMjU2LCAyNTYsIDI1NikgIzkKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBobWFjX2RyYmdfcHI6TUJFRFRMU19NRF9TSEEyNTY6IjE1MzdmOTM4MGQ5N2U5OGY2ZTAyZjRiMTAxODJiODM1ZjIyNGNjYTIyNzhmMzdhOGNiMTQxMWExYzZjYjg5ZWFiY2YzN2E4YjE1OWNkZWUzYTU1MzI5YjM4MTZmOGM2NTZjN2Y2MzgzNWY4NjBiNGE1ZTNjNDUwYTJhZmI1Yjg5MmI0ZGE3MDhkMzk2MTQ5MjFhODJkMzZjZjIzNTE4NjE4YzliYjBmNTMzMjQ5MmMxNzQwZmIzODVlOTY5ZDc3ZDVkN2UwYWEwYTQwNjZjYjZiYmJhNGU0YzdmYThhZTczIjoiNmQ4OTE5MGFlYmQxNjBiMTU1ZDVkZmY4Y2M0MzkzZjA5NTk4OGExNTUxYmIxNTRmYWU2MjE3MzlhNDM3ODQzMCI6IjA0YTUxMWYxZDhlMTk5NDg3OWUyMzcyMTYzYjVhNDUyODk5NjZkZjY4MDM1MGJiYWY5YmFlYTUyMzMzZTY1MmIiOiJkZmQ4YzhlNDY3NjI4ZGU2YzEyMWM0MDM4MTZhNjViZGNhMDFkY2VkZDA1Nzc4YjkyNTI4M2Y5MmQzY2I1MjUxIjoiNjFlZGZiNDU3NTQ2NDkzYTQzZmUxMzkxYjhmODZkYTAxYzEyNDJiMzI5N2YzYzRlZTAyZTA0ZTM3MTYxNzI1ZjQxODJiMTQ0NjA5MzM1ZjAxODNiNDc3NzQ0Y2UzMzcwZmY2NGFlODYxYzcyOGU3NTI2MTQ4ZWFjM2ZiMDc0MDNhMjdjM2Y4MmZiYTVjZTUwNTIzM2E0ZTM4YjhkNDBjM2Y0NGNmZTNjYzY1YzZhODkxMjdmODAzYjExYTNmMjQzOTdhMjA0MDliNTk0ZTE5M2U0NDMxOTAxNTVkYTUwZmYxMTM0YzhiMWFkYzUwMDZjN2FkMjAxODg3ZTZjMWFkMyIKIAogSE1BQ19EUkJHIE5JU1QgQ0FWUyAxNC4zIFBSIFRydWUgKFNIQS0yNTYsIDI1NiwgMjU2KSAjMTAKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBobWFjX2RyYmdfcHI6TUJFRFRMU19NRF9TSEEyNTY6Ijg0MmRhYTNkNjRiM2MyNTIxMGNiMGVjYmIyNTEzMzNjMmVlNGUwOTBhOTkyMTM4YTVkNmY5YzQ1NWE4YTVmMGQyOGJlOWZiNTFhZDIyM2VkMTk2ZDVjMjQ1ZWVlYTk0MGY4MjI5NTJiYmNmMWUyYmE3ZDNkYmY1MjZhZTQ0YWQ3ZTYwZTlkOTlhODMzYjNmMzcyZjc3YWRjNDQwODUwZjNmZGVlY2Y0ODk0MWRiY2VjZjZmNzEwZDk5YWU1NDkzOWY5YmYzNWMzZWYyYjdiNjEzNmQ3Nzc4Yjk1ODQ2YWY1IjoiYmI5Mzc2Yjc5Y2UyY2VkZTE1MDAzNmMwNjI2ZGRhZjhiYmQ5NjBlYzA0YWRlMjY5NGJlNmFlYTZjZTg5NDZlMyI6IjQxNDMxYjc1Mzc5NjhhMmZmZWRkNmQ3OTQyZWUyMTU2NWYzNGE1MTU1ZGU2ZTA5NjY0NmZjN2Q0MTMwMmVkOTYiOiI5NDZiMTkwZTg1NWFhMmQ0ZmE3NTQ0ZTk4NThlYzcwY2E5YWMxOWFkNTEwYmQ3ZDYyNWYxNGQxNmE4MDg5NmJiIjoiYjBkNDU2MzFhMTA0YzI0NmExYWYzMWM4YmNmN2Y3YmVhOTJjZGUzYzI1OWZjMDI5MDcyYzUxZTY2MmEzM2MwNDBjZmIxZDI2MmM3MDUzMjBiNzAyMGJkMTM2NTI4OGMxYmE5YjNiZGU5ZDBhOWRmOGI5ZTcyNzVlODYzN2NlOWExODk2ODc3ZTM0MzIzYWJlOGNhM2RkMDI2MmQzZDc1ZWUzYTVhZjUwNTIzNWUzNTRhYWI0OTFkY2ZjZTExMjg3YjdjNzNkZmM0Yzk3YzQ3ZjAzNzNjYjkzYmFhZjNkZWYyMTg2YTUzMDk1ZmU4YjA1MGM5NGIxY2VmMTA5YzA3YyIKIAogSE1BQ19EUkJHIE5JU1QgQ0FWUyAxNC4zIFBSIFRydWUgKFNIQS0yNTYsIDI1NiwgMjU2KSAjMTEKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBobWFjX2RyYmdfcHI6TUJFRFRMU19NRF9TSEEyNTY6ImFhYmEyOWMxMmFhYTAxMTYxOWMwN2VmY2E3NWExODY3MTRkOTdlYWMxOGQ3NWZkYzhiNWIzNmE5ZWYyNDdiZWYwZjE1MmI3NThjZGJkNjkyNTZiZDg2OTdmY2U1M2QyYjU5YWUxMjEwYTM1MDMxOTgzNGQ2NzIxZTlkYTZiMmNjMWMwZTU1OWEyNjgwNGQ0Nzk1M2UwYmQ1ZGY2NmVhMmEwYzQ0OWZjMGE4ZGNjMTZiOWIwYTgyZjVlNmY4NWEyMThjZGRkYWVmNDBjMjU0YzEwMzBhOWJmYTMzMjE0YWU4IjoiMDI0NzBkNjg5OGJjZDExOWNhYjQ5MjQyYzk1ZmE5N2I1NmE0OTVmNmQxYzViMjZkMWU4NzdiNzBiOTU0ZTNiMyI6ImU0ZTQyOTMxNDhjMzFjYTZiYmQ3MzcwNmUyZGQyZjM2YTIyZDNhZjNmODYyZGRhZTQwYWQzNWQ1MWRkNjc4MWUiOiIzNGM2NTA1ZWViZjAxODY3NmEwMzlmMjAxNTA3ZmEzODMzODU5NGNkMDE1ZmI0ZDk2MmQxNTc3YmVmYzYzZWM2IjoiZTE1NTZhOGJjYTM4ZDVjMjA4N2I1YzYxMTU2YWI5MTU2NmE1ZGE3ODQ2NDdlMjIwYmY0ZWEwMzc0ZTE4N2Q0YTRiYzM3M2VjODkxNDcyZGFhMzFhYTBkY2NkYjU2YThiNDJmYjI4MDVlNzQyNTE5NzZmZmU1ZTAyYjQ0NmFmOGFjNmE5ZjBkNmYzNmQ4NTdmZTZkMzc3MmQ5ZmFlN2FiMDhiMzYwZThkZTI1MjlkZWM4MGRkMzFhNWE1NDY4MDM0YWE1M2IxMGI2YTczMDY4ZmQ5ZTA0NmI3MGUyZjAzZmRlZDhiZDg1ZjdkZjQzMjJkNGZhNTMzOGM5Y2RlMDQ3MSIKIAogSE1BQ19EUkJHIE5JU1QgQ0FWUyAxNC4zIFBSIFRydWUgKFNIQS0yNTYsIDI1NiwgMjU2KSAjMTIKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBobWFjX2RyYmdfcHI6TUJFRFRMU19NRF9TSEEyNTY6Ijc0MmZiZjlmMzlmOWQ4YzQyNzkxNDNmODhhNmQzMDMwNzQ5MjY4MWNjZDU4ZTg0MjIyNzcyNTlhMGJmODdhY2EyNGM1ZDZkYzRmNjUwZjM5YzM0MDNmZTFlYWMxZWNiMDc5ZTdiOWYzNjNlYjQ0NTU5MTc3NzAxZjkzZGE5M2FhMzBkYzVmNGI5MzMyMDkwNzNjODI1YWIyYjM5YjUyZWMyM2NhZjA0OWY3NjBhYTM4NWY1ODk4M2Q5YWYzMDBlYzVmODMxZjI0NDlkMjUwOGJiNTgyNGFiYjYyMmUwMGRkIjoiYzJjNDJlNjNkNDNhNzY1YzJhNDlkMmIzNWM4YmE5OGE3YTY3NzY1YTBjNDUzZDIzNTJkOWYyMjRhZWIwNjE3NiI6Ijc5NDA4MzE4NWU3OWNmOTE4ZmFhODQ2YmQxMjI4N2U4ZmYxZTYyMDc3MGUwZTA4YjMzZThlMWRhOGQyM2NmZGEiOiJlZDdiOTAyZWI1NWI3YmRiMmI4YmY3MDcxMWMxZjdhNGJjMDBjNGRhZGU5MmM5ZDI0NTlkYjA2MDU1MTMzNmFmIjoiYzgzYWY5MGE4Yzc4NzllOThiMjU1ZTljNmIxODUyYmQ3NTljY2Y4ZjljNWJlNGVhNWU5YTM1NmRmNGM0M2VmY2E0MTMwM2Q1YTMyMmE3ZTQyZWQxMmI4YjBiNzE1ZTFkMjMyNTdhYWEzNjZiYjI2MWUzOWYxOTgzNGMzOGE3YTg4M2JmMmYwMWM0N2E3ODJlZGI3OTA1Y2M2MTc0MmI4MTY2OTc0ZjU5OTAzMzBhMDgxNjhlMjVkNGFhYjY3NDBiOTY0OTNmZjg3YTQyNGFjNmVkNDQ3YWQ2NTVhZmNmZGUxZDJlYzZhYjJiYTgxMTM1MTM4NWVhMGY4YjY2ZTMxOCIKIAogSE1BQ19EUkJHIE5JU1QgQ0FWUyAxNC4zIFBSIFRydWUgKFNIQS0yNTYsIDI1NiwgMjU2KSAjMTMKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBobWFjX2RyYmdfcHI6TUJFRFRMU19NRF9TSEEyNTY6IjE0Mzc5NThmYmM5M2M3MDFjZGQwOWZlODFhOTBhZjU1ZjAyMjE5NTM4ODI2NGVmMDM3NThmYzA4YmZkMGRkODBmNjNjN2JjMDY5NDVlZWRkNTg4OTNkZjJiNWY1ZjYyYjIyMmVlNDIzZGJjYzU0OTFkMWE1NzE1NTg5MTQwNmM3OWU4ZWY1MWZlNzU3NWRiODA3NGM0ZTQwZjUwMDI0ZGFmMTc3NTQ4ZWIxMzBhOGMyNDhjMmI3ZGY5OWI2NjI2ZWUwNjJjZDVlODIwNDgwMTliMzJjZDZjNzMxOWVlY2RkIjoiYzQ0M2Y4OTE1MzRjMzBkOGQyYjFlMjA3MmNiNWI4MjRlNmQzZGRmZGQxZTZjNzc1N2U1NDM3MmQ0NDIwYjVlZCI6IjM5ZjdhYmQzMDZmMTI3YmFhZjhjYjgzMmI2N2MyNTY0Mjg3ZWZhNDMzZGY4ZWNhYmM0MGI5NzQ0NjM3ZTZiZmEiOiJlZGE2OTUwMDAyYzg2NmM2MWQyZTJkZmNkOWQ2OWU4YzUxNTRiNDVmNzYyZWZkNjg4ZTI2MDQ0YWRjMzk1N2MyIjoiOGZiNzU4YjQ5OGZlYjFjMGU5NjFhOGY4NmI4MjFiZGRkZTM4N2RhYzIyMWE4MTkxZjcxYjZhNjRjYWEyYmNjNGE0NzU0NjA4MjM5OTZmODI2MWI4ZTIyMTI1ZGZlYWM1YzlkYmRhMjU1MjVkYWIyNDljYmU0NjljNWUyMjQ0Nzg5NjQ3OTNiZjgyMjQ0NjcyMWJmNWJjODVlNWRhNmVmMzRkZGNiN2M5NGYxMDkxOTNjNDc1OTA0MDk5YjA2ZTJhN2Y1M2JhNmRkOTQ0ODBkZDViYzlmZmY5MDE1MDI4NmM0ZDNjY2VhOTc1OTI1Y2M4ZWQ0ZWY5ODMwMzg5YjliYyIKIAogSE1BQ19EUkJHIE5JU1QgQ0FWUyAxNC4zIFBSIFRydWUgKFNIQS0yNTYsIDI1NiwgMjU2KSAjMTQKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBobWFjX2RyYmdfcHI6TUJFRFRMU19NRF9TSEEyNTY6ImVmOTI5MmY0YTdhNjdhYzRkNGViYTQ4OTM2MzkxYmI0NWY4ODEwYzJhYjAyYmE0MjRjYzhlNGFkZDUzZDFjNTE0NjExZTMyMzNjZDhjYzhmNmQ2OTQ5NGRjMzM2Y2JlMWNiYzY3YzE3NTIwYWY0NDI5MzNhMjM1YzZhYTZiOGY5ODEyOGM2NmZjZGQ3Nzg0M2FlMzJlMDZiN2EzMTY4OWM5YTZhM2M1NDBhMTkwODFiY2JlODUwMjc4ZDUwYWRmYWMzNjM4ZWM4Y2Y4NTE0OGEwNTQ3ZDI4ZDBhNzAyNWRiIjoiZjRhODcyMWEyYTg3M2Y4ZmU5NGU0YjNlMTM3ZTg2NmM3OTIxMmY5YzE0Zjg5YmUxNTZjNDdhNWZiYjlhYWVjYiI6ImIzOGE2NjI4NjQ3YTAyYzBkZTViN2FjYjkzOWQwZDE4OTZjOWM3MzAxMDZjODY2N2Q4MTBiZDQ4NjZlYmFlZTQiOiIzNjYzNzA4OTliMmEwZDZmMDQ5ZTdkODIwMDYxNTk5YTY3NWNiYTVkM2JjODJhZDc0N2ZhNzMxYmVhZDhlZmIzIjoiMTk0N2Q0NjhhZTRmYTRkYTdmNDVjZmFmMzJkNjJhNDM2OTc5NmU1MzJmMWIwM2IxNDk1NTg3ZTZiYjk1ZDgzMzBmNWI3Yzk2MmE5YjBhMmI3MTVkOWRlZjc5MTk0NzQxODcwZTVjNDdkMTVhNzMwODg0M2UxMDYxNmI4OTFmYzllNWNhYjdkYjkwMWUwZjFlZmJlMTIxN2RkNjI3YzcxYjU0Yzk4Y2VjMGZlMWIyNWE4NGNhYTU2ZjBiZGUyNDdhOWQ5MTgzNTg3NzQyYTM4ODI1MjM0YjZiNmNjODA4YWZkZTM2ZWY1ZTE3YmNkYjJjNzJjNzY0NTk0OTI4OTM2OSIKIAogSE1BQ19EUkJHIE5JU1QgQ0FWUyAxNC4zIFBSIFRydWUgKFNIQS0zODQsIDAsIDApICMwCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTM4NAorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzM4NAogaG1hY19kcmJnX3ByOk1CRURUTFNfTURfU0hBMzg0OiI1MWVjNDk4N2RkYWNiY2Y2MzQ4ZTRhODkxZmE1NzFjNmUzYWVjMDI4NzllYjAxODFhMTIxYTQ4NDYzNDRhNjg3Y2RmZjk3OTg3NjE4NzUzMjAyNTZlNWE1OWJjOTQ2NjNmYWFiODg2NGNjMGJiMWU2NDM0M2MwYjk3OGZjYzBkNmU4NGQwZDE3YzFjMWY0MDkzZmFjM2I0YzAxODM3YzZiMzdkMTg5ZDc2MDhmMGMzMzVlYjM4ZmUxZjQzNTczZTBjNTI1MDkzZjYwZWY2MThiYWIyOTdiOGE0ZDlkOGMxNiI6IiI6IiI6IiI6ImFkZTA0NzMwMDU5NDcxYjE4MjliZWM4ZGZiYjBlYzcwOGJlN2I0ZTc3ZDY4OGNlN2NmYmE5ZGRkZTA1OWE1MmY5Njk0MDcyOTE0NDBhYTc5NDkyZjgyN2ZlMWEyZjY1Njg5ODlmZDM2YjRmZDg0ZTY2OTkxNTI1MzZiZmYxNTM4OGFmMzE5ZmIzMDZmMDdkZTQzMDllYjkyYmEzZGE1ZjcwMDc5NDgzMzU5OTM2OThkMzk4YmFjNDIwMjk5MTJiZWM2YmEzOTIyNmMyYmYyMzg3MzNiNTA4MWFhMGEyY2EzOTJhNzE5Mzg1MTg0YmU2MTlkOWNhNTY3NzFkOGUzNzE2YTQ2Y2ZiMzM5ZjkzZmY0OGFiZTQwNmVmNzg4ZGIyYWRhNDVhYjVmY2I3ZjY4OWJkODAxYTVjY2FkODU1YjUyY2Q0YmYxZDZlMzM4ZjJjM2VhYzk0Y2U5ZmRkMGRkMDY2MzJkMDFkZWQzNzUzZTg3OTU3ZTg1NjlhNjdlY2NhZCIKIAogSE1BQ19EUkJHIE5JU1QgQ0FWUyAxNC4zIFBSIFRydWUgKFNIQS0zODQsIDAsIDApICMxCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTM4NAorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzM4NAogaG1hY19kcmJnX3ByOk1CRURUTFNfTURfU0hBMzg0OiJmOGRmYTcwNTI0ZDQ2ZjM1NDVkYjNjNjg3ZmU4NWE4ZWEzNWUzMmVkYTQ3MGI0ZTE0YjhiMTJmNGU5YzZiYmY2YzA4ZWZhOWFlMWRmOTBhZTZmMTRiODk1YzM0MmFlMDdiNWU4ZDU2MzE5OWExNDFjMzRlNzA5YzZlNzQzMjYwYjU3M2Y4ODE4NmY0MGY4MDBjNGMwZWM5ZjlmYmViYTQ5ZjEwM2JmYTJkNjJkN2VkOGZjOWZmODhjYjFkZGM1ZDRjYTRkMDc0ZTAwNTNjMDY5MzkzZDcwYTViM2YxZGYzZSI6IiI6IiI6IiI6IjA1ZjRlNjA5YjA4NWQyODk1OGY1NzAyZWI3Yjk5ZjJlMGM3YTgwZjA5NTkwN2FiZDViNzMyOTYyOGFhNmRjZTJlMmY4YmRiN2EyOTkyMjYxZWE0MTRlNjQzNGRjOTgxNjJkMDJjNTE5MzY1NDIyMThhMzFjNjA3MmVkNTVjOWVkODNjNzk2OThkZTdmZmQzODM1ZDVlNGQwZjNhMGMyYTcwYmVmMmI2YzYwMmQxZTBjYzgxNGM3MWIyZmIxYTAwMWZiODNhMGUyYmVmZGVjN2U0NzQ5NjI5NjkzNjI5ZWEyMzk3YjI5OWNkZjQ5MTQxNWRkYTQ0NjgxN2RkN2QyOGRhNDMxZjk1MTYyZGU4M2Q5MTdmOWU5MzI1Nzc0ZTJmN2VmMDJmZTgwNjdjZjRiYWM0N2UyZjYxYmEyMzViNTMyYWYzYWE5NWE2NTE3ZTlmMTI4NmUwNjVjY2Y5YjNlZWZhNmNhYjRjOTQwYzgzZWU5YTExZGE1NWVlMjFjOGQwNiIKIAogSE1BQ19EUkJHIE5JU1QgQ0FWUyAxNC4zIFBSIFRydWUgKFNIQS0zODQsIDAsIDApICMyCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTM4NAorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzM4NAogaG1hY19kcmJnX3ByOk1CRURUTFNfTURfU0hBMzg0OiI3YWI3ZGE0N2ZmN2E5NWViZjIzNjdkZTBhMjVjNzg4NWQ4MDkzMTQ0N2QyZjVjYzczYWU3ZjY2ODQ0OTEwZTQ4MWUwNWY1M2NhOTkzYjAyNjZiN2NkZTg5OTYwZDY4MWEzZDNjNTY4ZDlhNmUzNTM0N2NmNTJkMmUwZmY3YWQxMTQyOTgzZmQ3ZDJjODQ4Njc0MzE1ZWQzZTAwOWFkYjcxNTRmZGUxZjJkOTAwMTljYWMyMTBkYmZjMDYyNzlkNDhmYzdjMmU5MDA2NTJiNWNiNjM4YzEyNjBhY2Q4OTZlYSI6IiI6IiI6IiI6ImYwMDcxNGRmMjQzMTAzZjU0YjRjMGM1MTZhN2E2MzE0MzFkYmVmZGVjYzMwYzA5ZThlODM0ZjA5ODgyMTAwYzFkMDI3NjI3MzU2OGNjNjM1MmMzMDI4YzE1NjM3MTM4OTA3ODIzNmFmZTU3ZDAwZWRhYTIyNjI2MmYxYTdmNmUwMDExYmE0OGQ0YjhmMDg5Y2QyNTdiNmI3Y2ZlODBjYTJiYmVlZTk5NjM1YzI3NzI1NDU0NmQ0YWRiZjA0NjkzNTc5MWJlMjFjNDhhNzg4MmVmNmNiODFmN2JjY2RmY2Y5YmM0MzBkMjFjZWYxZDc4OGQ0ZjRkZjZiZDZlZjViY2JmNDhlMzVmMTE2ZDQ4MmQ4ODBmNTk3YmNiY2ZiYmY2OGJjNzdmNTkxYmQ3MzQ2ZDdhMTA4NWZiYzFjMjcwN2MxN2JiMjg4Y2U2YmZiMGE3OGE1NDczMTQyMTc2MmYxODE0Mjk3NWI4YjNiNzlkZWMwZDg1MmRjYTgwZjE2MzhiMyIKIAogSE1BQ19EUkJHIE5JU1QgQ0FWUyAxNC4zIFBSIFRydWUgKFNIQS0zODQsIDAsIDApICMzCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTM4NAorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzM4NAogaG1hY19kcmJnX3ByOk1CRURUTFNfTURfU0hBMzg0OiI0MGU4M2NiMWZiYmVmYjQ0NDI2MzUwOTE2YjA5OTVmYjZhMWM1Mzk0ZjJmZDYyNTc3NDQ1OTU0OGNmYWIyN2YyZjkyZTJlODg5ZDNkZWViMzNkZmQ2YzQwZjYxMGI3MWI3MDM4N2FmOGQ3MDc2OGM1MmIzNmJiMmE1OWYzYWQ5YTE2YmU5OGM3MjZjMmQ2NWFmNDU3YjJmN2Q4MWM3NWZhZTgyNTIzYzk3N2NiZGY2MTM4YjFjYmU1YTliM2FkNDAyYmExOTdhMzAwOWRiYTQ1OWQzZjUzNGVhMTQzZTVkYyI6IiI6IiI6IiI6IjUyY2ZkNGE0NzQxYjY1NzU1NzhhMWI3YWFiOTFhMzY2MzQxY2ZkNDgzNzk5Y2EwOGI4NTFiYjBkYzJmMmJmNjQwZTkwYzE0MDZmZDA5ZmJmOTE2NmJkNTVkNDZhYWFlZjM4ZTA0NDliNzE4N2QwMTllNjhhM2I5OGE3ZGQ5Y2RhYzYzYWU5Yzk2NmRiNGQ5MDFkMzdjYzE0NzgzNWQwMTc5MTU5MDI2MjEyMTZiYzE4MzVkNzBkYzIxMDFhZTUwZTA1NDFmNzk2YmQ2YmNhMmU1MzI2MGJhMzM1M2U2YWE0ZWVlNTZmODBhYTMyOTE3M2UzNDdkODNkMDUwZGRlYjQ2NWQ4ZTFhYTU0NTBlNmU3ZWI1MTVhOTJmYmNkZmQ4NTMwZjA0ZmFlM2QxYTQxYjEzMTUxYTQ4MjdmMDYzNGQ2ZTgwNDI0YzFlOTM0Y2UwZTIwNzdmNWYzMWZkMTc3ZTlhNDJhY2ZjYWE2N2Q0MDQzZmQzMWE4ZWM3MmEzOWU2YiIKIAogSE1BQ19EUkJHIE5JU1QgQ0FWUyAxNC4zIFBSIFRydWUgKFNIQS0zODQsIDAsIDApICM0Ci1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTM4NAorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzM4NAogaG1hY19kcmJnX3ByOk1CRURUTFNfTURfU0hBMzg0OiIzOTkyN2Q0ZmQwYzNlYmEyMDQ0MDAyZTY1YjYwZDM5OTRjM2FhZDBjNzA1YmNlMmU5ZTQxYWNhMzBhN2MyZjAzZTdiNDk2OGQ4ZTcyOWU4NjhmNWZkNTdiNDlhNGI4NjJiMGJkMTY5YTRlMmQ3N2JkNTk3NDVlNzc4Y2E2ZmQ3NjI5MDFhZTNjMGZjYzQ4YTBkNmVlMjJiYzg1MjBlYzQ1MDYzMDA1NWIzYjY2YmRkMmRkZTlmNTIxNWQyNDFmYTI2NmQyNDM0MmI1MGQ0MmUyZGI1NDM2YTQ3OGM3ZWJhZiI6IiI6IiI6IiI6Ijk2MTk0ZGQxYjZhYzVlZmIzZDQ3ODdiZDFmYjRjOWNjMzJjMjliNjdlZTM0MzY5YTdhYWQ5YTU2ZjY0ZjUzNTI2ZTkyMDdjMWQ0YzU0MWM2ZTBkZjQ5NjBjNTRlMTAxNjgyODQ4OTE4NDFmZTU1NGFkYWE1MDEyZjMyNWIzYWVhNzlmYTRkYjhjMzZlNjdhMGY5MTRkOWFiMzYxZDhiYTBiM2Q2Y2E0OTA0MTAzZjE0YTMwYTkwZGQ2ZmQ3YzNmNjc5YzI3MmRlZTdmMDExMTBmNzIyOWY0ZjViNmVkMTUyYTAxNDlkYzVhNzE4NWJmNjM3ZDEwODk5YmNhNDE3Y2JhOGY5MTlhMjgwMGQ4YTcyZDU1NzVmMGMxNzRmOThmNzdhMWFmYWQ4NTAzMzQyMDRlNjYxNTZlZmY0NTcyYTY3MDNhYWI1MGI4NTBhOGRmNDk4ZDFkOTZiMWUyYmMxYWMzNGFhNDM5OWYzYjEzZTk3YjQ5ODk1MzljYTc4ZTk3YSIKIAogSE1BQ19EUkJHIE5JU1QgQ0FWUyAxNC4zIFBSIFRydWUgKFNIQS0zODQsIDAsIDApICM1Ci1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTM4NAorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzM4NAogaG1hY19kcmJnX3ByOk1CRURUTFNfTURfU0hBMzg0OiJhZDEwZGJiZWRmOTgwYTBjMzM1NzZmNzYwNmUxNDc4NWIyYTkwMzc4OGI5YjdjYjRjMjljZjc0YThiYmVjODc3OTk5Y2EyOGMzNmM4MzViNjA2ODBiYWI5MDA1ZDhlNGYzNDFiOTcyMTNmZGI2YTUyZTc4M2QxOTg1MDkwNmNiNjQzYmNmNDhjMjkxY2QxODZlYmNiZjBhMjg3ZTQ1OWQxNzk1ZTI5ZmZiMGM3Yzg0YjBmNmRmYmUyMTliNGY4NWQ5ZmI4OTNjMGNmOTEzNDI2M2E5ZTZhMzZjNzZkMDJhOSI6IiI6IiI6IiI6IjVkYjI2OTcxNGM0YWI3NzRjMmViMTRlYjk1ZTliNjBjNmNjYWE2ZTkwZjlmODc5ZTI5NWNjMDA3MDY5ZGQyMzE4OTRjZDhmZTBjMDliZjc0OGUyNjk0MDE2MGNkMGNhZDc1ZGQyZTMwNWVkMWYyNTI3YmE4NTdjNDJjM2QwNjYyZDI1Y2JiY2ZlMzQyOTEwNDk4Y2VkMzA5Y2RhMTg5NGExMTg2YWI5MzVmYjYxNDY0NmQyOTljYTU2Zjg2ZGVmZGQwYTBmNTJiYWVlMWI5YjliZTA1ZGY4NWEwNWMyMjU0NzVhN2NlMWNjNThlYmM0ODhhNGY1N2ZkMWY5ODM4ODE3NTRkY2ZlM2JkNzhjYWM1MjllOTk0NWM4OTM4M2UzMzFmMDE3N2U3MjE2NDRiM2E4ZDgyZGVlZjU0OGQxNjFlMDg1Y2ZmNTk2NDVhMzQ1Y2Y3YWYzZjM1ODJiZWQ1YjgxYzdkZTdhNmEyMTY0MDNiYjg4ODA0ZjdkMTZjZWVjOSIKIAogSE1BQ19EUkJHIE5JU1QgQ0FWUyAxNC4zIFBSIFRydWUgKFNIQS0zODQsIDAsIDApICM2Ci1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTM4NAorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzM4NAogaG1hY19kcmJnX3ByOk1CRURUTFNfTURfU0hBMzg0OiJlOTUwNmRkMDViYWM0NzUwZjVkNWI0M2UwNjYzZWNiYTY0NDQ0NTVhYjZmNjYyODAyODk3YTQ5M2NhMTFmZjA1Zjc2MDQ1YjYyMTAwNGY0YTg4ZmM2YjFiYTg1OWFlNzk1ZTQ4NDZmMTdjM2IxYzEyN2E4ZWYxNmQzMjM4MWUyN2VlY2E3N2VjMDYyYThhOGY4MTFmNWRkN2Y5MDczNzE0N2Y1ZmNhMmI3Y2M4OTAwOWIwMzUwMjkyYjg4ZDFkZTVkZTk0ZTFlODJiZDVmN2JmMmUwNjg4MmE5MjU5NzdjZSI6IiI6IiI6IiI6ImFiYzNkNjhiYjliMGQyOTY1NWVlMjA1N2E2MGU1OWZiODRhZmJhZjljNzVhYzVkMTQ2YTk4NTYzODQwMjJlNDg3M2E2YWJiOTYzZDg3OTVkZWQ1Y2UzM2Y4ZGY5Mjc1ZjhhZTRjM2RhMDAzNzk3MzQ4NzM0ODY0NTQxNWVkNTE0NTg1MjliZDdjNDk5NjEyOGM5NDNkZGZhMjE0ODQ1MjFmYzY0NTcyMzgwMjMxOGZmZDUxOTFlOTU3ZWM0NTNhOGU5MjJkNDhiMWU4MzY4MWMxNDYzYTAzYzM0MTc1YTVkNjEwZjhmMzcwOWIzMDQ0ZjQ1MDg0ZjkwMTcwNDU0N2UzMDFmOTgwN2E3ZDkyMDM2ZTA4YTNlZWY3OTFmNjc2NTk4MTZmY2IyODkyMmI5YjUyZTJhNGEyZTgxY2I4NDhmOWFlNTc5Y2JhMzQ2YjA1MDdlOTFmMjZiNzBkMTk5YWNiNmRhNWQzNTQ0YjhjYWVhNzYyZjZmMzAxNzg2MzZkOCIKIAogSE1BQ19EUkJHIE5JU1QgQ0FWUyAxNC4zIFBSIFRydWUgKFNIQS0zODQsIDAsIDApICM3Ci1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTM4NAorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzM4NAogaG1hY19kcmJnX3ByOk1CRURUTFNfTURfU0hBMzg0OiJmMWYwMGViYjdjYjRiYmIzYjBhMDgzYTI5MGQ0ZDNjYzRkYjUzYWE5ZWIzZjJmZWIxZDQyOGNmNmQ4MTA0YmRjNTZiMmEzMGU3NTc4MjY5M2Q3NTY1YzVkMWFkNmVkZDZjYzIyOTY3ZWViNWYxNTk5ODljMmVkN2ZkYjYyMTAzYzA1NTQ1NmY1ZTFhMzE2M2JmYTAzNGM1MDJjY2JkOWFhNzUzODVkNDc3N2QwM2E4MjYwNmE4OTBjODlhMjA3NDk0ZDA4MmJlY2MyMmVmYWQ4ZmU2OWMzNjdmYTllMzM1MCI6IiI6IiI6IiI6IjZiNzVhYTE0YzEyOWQwMTExOTFiOTAxNmIwODlhZjE1YjgwNmE0OTRlOGU3NjNhN2ZlOTAyNDc5MTU1NzA0ZTFhOTJlYWI0OGNlMjlmZDBmMWU5ZDVhMjAxNDc1N2MzY2RhNmUwMjFkZWZkYjkxYzc5NmNiYWQ3MDk2NThlZGFkNmM4ZjdhYjZhZWJlOTc4ZDUwNzQ1OTE5OGUwNzE5ZWVjNDliMTkyNmE3YzRlMzNlMzRlOGUzNjY5NjZlMGU0ZTdmM2NlMGFlZDZlNTFkNzgwNGQ4MDNhYWI1NzI1N2ZmMTI1MGFlOGI3NmJmYzQ4YTUwNWQ0NjAwYmNjZGQ5OTJkNTY0YjM5YzM1MTlkYjBjN2RkMjZmNWRiYWJkZjNjMDk4NzM1Njg4YWFkMWFmODUyNWU4YTZhMzQzODM1YmVkMDk0NzA4Yjc4ZmFhMzAwYzA4NjAwZTYzOGU2ZjI0ZjRiMmI3OGRmMGQ3NDdmZmJiOTUyMWNjNjc4NmI5Yzg5ZCIKIAogSE1BQ19EUkJHIE5JU1QgQ0FWUyAxNC4zIFBSIFRydWUgKFNIQS0zODQsIDAsIDApICM4Ci1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTM4NAorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzM4NAogaG1hY19kcmJnX3ByOk1CRURUTFNfTURfU0hBMzg0OiIxZjNiYWRlODZmNjRkYzA3NzBkYWZkNmE0OTAwZjYxYmFmMDAzYzZkY2NlYzQ5Njg1NmI3YjA4Y2I5OWRiOGYzNzFmMWM5NjA2NjAyYWQzOTdlMGM3NTdmNTZlYzYxNzZjMDRlODMyMzAyZmQ2ZmJhYzM1MTlhZjZkMmNiOWRhNWE4NWVlNzBlZmMxOWM3MzUwMTQ1ZTkwNGE3ZmE5ZDMxOTllMWY2MjEzOTk5ZWUzYmJkYmNkMTIwMGI0ZGQ0ZTdhOGYxMTJmM2EzNzg2NWU0OTRiZjg1NDkzNDllOWU3OCI6IiI6IiI6IiI6IjFhNDIwYzUxMDUyNTM0ZDVkNzczNDdlZDU3NTFlNDQ4MTc4MjRlZDc1NDY3NzkxYzk3MTc4NzVkYWRjYmNlZmYyZmZlMDI0OTUyOTU4ZDQ3MThiMmI0MDI4YWY4M2VjZjM2M2Q1NzM0OWEzNjQ3NmMwMjAzZmNkZjQ5NTI3OTRhYTY2YjM2OTJlN2IwODEwY2UwNjA2MDE4MTdhZDA3OTQ1NzRiMWNlMTJkNmE3YjZlYzFkMGIxZTBhY2IyYTZjNDUzYmU4MWJmMmQxN2UxZmNhN2RjMWM5YWM1ZmU0YTY0MDY5Mjg1YThjYjk0MDgwNTFiYTVhZTRkYzBjODg5N2I0YTIxNjEwOWIyMmVjNTZhYWNlOTk1YTQ1M2YyOGRkN2QyYzM4YzdkNDQ3MzliOWYwOWNhMGU1MmQ2MmYyMDRlN2Y0YTA5YzNlMjMxYzhjZGFmNTRmOTQxZThkNTU2NWIyNTE1NWJlMjFjYjMxNjQxN2E0YzAwNWY3ZTgzNGQwZSIKIAogSE1BQ19EUkJHIE5JU1QgQ0FWUyAxNC4zIFBSIFRydWUgKFNIQS0zODQsIDAsIDApICM5Ci1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTM4NAorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzM4NAogaG1hY19kcmJnX3ByOk1CRURUTFNfTURfU0hBMzg0OiIxYjI4OGM5NGE4YWE3NDk5ODUwZDdiZjgyMTc3MDI0ZjIwZThjY2Q1MDJiN2IwZjUyOWM0NzE4NWFhZDRlYjgyY2ExZWZjMDEwNGY5M2NjMzU4ODVlOTg5NDY3MWI5ZDc0ZmE4MjM3ZjVkNzQwZmVjMDllOTBiODhiYzc1MTI0ZTU2NGYxZjE5ODA4MWQ1MWM5NTBkYmVmNmE2ZWJiMmI1ZTFhZWMwMDhkOGE1YTRjNjkyZjY0NjdjNzQwZjUwMjY4MDdiYWZjMDcxMGRjOGU5MTk3YWVlNDM3MmI0MjljZiI6IiI6IiI6IiI6IjNkYWY3MmQ5NDA1NmU2YzcxMzg3ODcwMDRmNDBhNGEwYzgxYTI0NGM4YWExNGMzMzI2NzVlOTc3MzMwYjYzMzE1OTE2ZDhmZTZiYThmMGFlYTVhMjJkZWYzNDJkNDEzNmQxZDZjNzg3YjNhNmM2YzA1YTQ0ZWUxY2Y5YjJkODkxMTk3NDk3NGNiZjdhMTRlZDViODNmY2ViOGRkOGQzZWQ1OTE5NGQzZmI2Y2NlNTc5YTk3MjQ0MDkxNzMxYTRjMWNhMWQ2ZTRjOWQyNjIzYTQxZGU2NjVlZTNjODIzNmUwZGE4NzEwMjA4Y2VlOTQ4ZjI0ODMyOTc4MWY0MGY2ZjRiNDAxMDUwOGMyMTk3NTViNmRmNzUyYjk1MjNlZDBjOTY0NGIxNzI1MGJiYzg4YjQzMzhjNjg4ZTk3ZTk1MmE5MjRkYTg5NGZjOTg2ZjdlODA3ZmNhNDQ3N2JlOTRkZWM5OTNjZDY5MTA3MDlkODAzMmZkM2E1Yjk3NjEyY2Q2NSIKIAogSE1BQ19EUkJHIE5JU1QgQ0FWUyAxNC4zIFBSIFRydWUgKFNIQS0zODQsIDAsIDApICMxMAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEzODQKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8zODQKIGhtYWNfZHJiZ19wcjpNQkVEVExTX01EX1NIQTM4NDoiMWUxODM3YjQ2NDg2YjZlNjU3MTMzMjcyNDBiZmFjNmM2MThlODE3Nzg3YzI3N2I5OTVjOTJkYmUwM2I5YjAxZGU4ZTEwMGIzMDNjZTViZjUwNDhkY2NmY2U0ZDI0MDg3OGZmZDVkZGNiNjc1NDI5MjI5MWQxYTc5ZWUxZTYyYjZkYTZiMjNkN2E4M2QwZmU5ZTg0NzU3ZGNmYTUxZDA1NzA5ZDU0MTQyYjQyZGM4NzY1MDY4NzZiMTM2YjZkZjM0YjQ4NWMwYzEyOTU4MTk3MmJjYmM2NzRiODkzYWQ2MWIiOiIiOiIiOiIiOiIyM2MyNThiOTNkNGU5OTQzNzgzZTg4YjI0NGE1MmNkZTY3NDdkOGQ3ZmYyOGI3N2UyZGRmYWEyZWRjYmIyOWVhZjQxZGM3NWNkYzJjNWI1ODFiM2E1OWZlMjBlNzA1MjIzYmRkOTBlNzg2ZjZjNjQ5ODMzMGVjOWJkN2NhNzMwM2U1M2MwYjIxYWJlZjE0OTcyMTBmODIyMjg1MGNhN2YwMWUwYWY0ZmVmZDM2ZDgyZTcxMWZiMTdmNTgxYjk1MWU5NDk4NzZhNWVmMGEyMTJmYjczYWY0ZDMyZjZiZjlmZThjOWU2MDg0OWZkMjMxMWYzYjVjYjhhNGFiZTg1NmIzZGQ2MjlmYmFjNDFlNmRmYjUwMmQxODk0MDg4ZmM1MjgzMmNlZmZmODA3NTU1NDU3YzAzYmE3YjdkYWFmMDI4MzBkOWZmOGM5ZThlZDA5ZGRiYjY4ZDY1MzBhZjBjYzVhZTkzODNhY2QzNGM4OWVjMTg5ZjVhOTdhYmJmM2VkNWQiCiAKIEhNQUNfRFJCRyBOSVNUIENBVlMgMTQuMyBQUiBUcnVlIChTSEEtMzg0LCAwLCAwKSAjMTEKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMzg0CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMzg0CiBobWFjX2RyYmdfcHI6TUJFRFRMU19NRF9TSEEzODQ6IjY3YjJhNmUwOWJmMzFlY2VlOGZlOWM3MTk0OTFiYWYzYzZlZmMwZTI3NTE5MTU1Zjk5Yzk0NjY3ZDcyNzQyMDI2NTI1NGVlNmQzNGM2YjljMDM0MTQ0NTJkNjg5Mjk4MTJmMWQyM2FjYTQ0YWRmYWY2YjAyZjUxOWRmYzNmMDM0YmMzMmMxYjc2M2ExMjlhOTdjNzI1OGU1ZTc3YmE2OWQ2ZWI0NTliZTJjYzk2ZmQ2MTUwYjYwNDBiYWJjYzQwNjE0M2JkYzJjMTg2MmM3YmY2NjA3YjRiZTk1ZjMxNTFmIjoiIjoiIjoiIjoiZDBmNzFlNTZlOTc1ZTQ0M2JkNzM2NGVhZmZhOWRiZmI2MGE4MmJkMGVhNjQwNWRlMGIxMzAxOTExNDQ5YWU2YWMwZGM4NzkyYWNkMmIwY2EzZTY4YzJhYmI5ODIzNjJlYjJhN2E4Zjk1ZDI5NjA1NzlmOTkzMjA3MGM5Y2Q3YWJkNTdhMzY3NTliMmM2ZjEyZTIwZGJkYThhMTZhMTdjMjliNzBmNWJiOGRiMGVmYTk0NTFkOWEzNDliOTkxN2I3YmMzOWFmNmM2YmU4MjE3ZTBhNmZiNTJlNmE0YzQ2ZGZlNDFlNmE5Y2ZiYTg0MzM1ZDAyNTRjYWQwNzU1N2ZkN2FhM2ZlYTE4NWM4Yzg4YTkyMWVhNjY1ZTQxMDA2NzM5NTc5MTc4NWViZGYxNzkzMDM4Y2VlZjZjNTkwZTY0YWYwMGFjNGNlNjlhYzNkMGI0OTdmZWI5M2I0ZmVlN2Q1NWNmMGZhNDBkZDQ5ZWE3NDhiMzNmMDM4YjUwOTc1NzhjIgogCiBITUFDX0RSQkcgTklTVCBDQVZTIDE0LjMgUFIgVHJ1ZSAoU0hBLTM4NCwgMCwgMCkgIzEyCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTM4NAorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzM4NAogaG1hY19kcmJnX3ByOk1CRURUTFNfTURfU0hBMzg0OiIzNzlkMGEzOGM4ODk3YTY1MjRkNmE1OWRmNGYwOWJhOTc1YzE0NmJlN2EzOThjM2NiZGU4YzIyMmZjZjk5ODEwMmU5ODIyM2I4MWRmY2E3ZmI1YmM5MmIxNjRhZmJhZjUwZjU4YjhkZjA0ODg5ZGJkNjlhY2Q1OWY3ZDVhYzA4ZjgxOTg0OTEwZWUyMGE0ZDU4YzUxNTEyYTNlZDg5M2Q3YjczNmRhODk0YTBiNTJmNzVjNTIwOGQxNGY4NThkZmQ0MjI5MGY0MTgxYjdhYTI0OTA5N2I5M2ZiMmJjZWFiOCI6IiI6IiI6IiI6IjE2NmY2NDM2MDlkY2I4OTUxMTYxY2ExNWIzNjYwNzU5YjY5ZGE2MTZiNDU3NjFiOGNmZWMwMWE4YTdmNTFhMGJiMWNmMjU2YzlmYWJlNjliMjk1NTJmOGU4NjFjYmIzMTYwYjkwNWQyNDg0NWQzNjhhMTdlYmY5MTFhODM5Mzg0YzNiM2FhNmM4ZGVkZjFmZGUxMjM4NGVjOTUzNWFiOWQwMDg3Mjg5NzhjYTU4YWQ4ODc4MGNkYzNkMjcyZDFkY2YyMDU5YjliZGMwZDIzMTE4MTJmYjFiNTU5ZTMxZjhlNWE4OWVmY2IyYjMzYzcwNTU1NWVlMGVmYjIzZDJjNGQzMTJmZTAyYjk5OGViNzhhZjg1ZTM4Mzk5NjNhZmQ5OGMxYzY0NGVkNDQ5M2MzZjFhZjBjYjIxMGU2NjA3NDhjYWRjZmM5ZWY4NWZhM2I1ZmFmZTM0NTc1NmNhMzRlN2I3Zjg4ZDNhZmY4NzgzZTkyZGEwMGRiZWFkNWQ1MWY4OSIKIAogSE1BQ19EUkJHIE5JU1QgQ0FWUyAxNC4zIFBSIFRydWUgKFNIQS0zODQsIDAsIDApICMxMwotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEzODQKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8zODQKIGhtYWNfZHJiZ19wcjpNQkVEVExTX01EX1NIQTM4NDoiOTYwNDFjMjExZTk3ZDQ4MGQxNDllNzVjODc2ODg2YTc4ZmVlMTcxZTBmMzk1YTk1MmEwZTg3M2FmNGRjMjJiNDZjZGI2OGE2MGRkMWQ1NzUzMDI3ZTU0NDY0M2M1NzY0Y2Q2NWUyMDJlYjgyMTgwNDMwMGVhNjE4ZThmZjk3ODVmM2JmMmZiZjFiMTA0OGNkNDQ1MDM5OWUyZjY0MmFmMzhiY2U0MWRmOGZkZTMyMDgwNTVlMzRkMzU2YjFhYTFiMDE4MDY3M2U4NTA3YWYyMDM1Zjc1ZTlmZTYyOWY5NzkiOiIiOiIiOiIiOiI1MTQ3NWZmYmEzMjk5MTc4MWIxN2UzOGVhNThiMDhiZGU0MGYwM2I2NDgyNDE4N2I5NTA2MTUzZjQxYzIzM2YzNGRiZGM1MmI2M2NmYzcxYjEyMGI0ZmU2YzI4NjZkMTFlOWFhZjQ0ZjgyZGVkZGFmOTk4Y2FhNTZhNGRkNThhNmVhMmU4ZjVlM2M0ZWM3ZmVmNzNlNTYyMGNiNmE3NzMxM2E0YmMwYjEzNWM1N2QxODA4NTAxMGE0YTAyNjA1OWMyYWJkNGI2ZDIwNDgzOTNjNTQwMDM0MTkyOGY1ZWU2YzVhMDYzZDY3OWUxODVlYjliZTI4MzRhMTAwOWQwM2QyOThiOWFiYjA5Zjk5M2E4ZWRlNTRiZGM0ZDlhOTVjMmFmNTU1MmFlZDlmYjAyY2Y1OThhMThiNWNmZTZjODExZDFjYTRlZDc2NGQwNzU2ZmRmY2I1ZDAzYWFjMWVkODBmYzg2NTk1NTM5YzEwNWRhNmI2NmEwMGE5MWNhZjQ0ZmQiCiAKIEhNQUNfRFJCRyBOSVNUIENBVlMgMTQuMyBQUiBUcnVlIChTSEEtMzg0LCAwLCAwKSAjMTQKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMzg0CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMzg0CiBobWFjX2RyYmdfcHI6TUJFRFRMU19NRF9TSEEzODQ6IjQyM2NmNmZiNDQ2MDVjZjAzZTMwNjNiY2ViOTJjMTU2ZTM4YzViYWRmYWFjMzU1OTMxMzlkZjQ2ZDMyNTI0MmM4NDkwOGJhZWYyZjgyNGJmM2VhNjZlNzRiYjQxMjdhMGM1NjUwYzMzZjY4YjVkMzM1MDJiMWY1NWUwNmZlMmMxMTY5ZmIzNDY4OGEwOTI5MWQxZTEyZTUzOTBhNzNkYTEyNWJlNGNmMTU2OTJlM2U2YWQwYWI2ZmZiMjJjZjNmNzdiMDAzMzM1MTdlY2IyMjM5YzliODFlNTlhNzJkMDg3IjoiIjoiIjoiIjoiNDFmMzM1Y2Y3MjdmZmVjOWViZmU3Y2IzNDhkMTFjZGI0ZTVlNDlhOWEwNDdkODM0MmE2NjU2ZTVkMjM1MjE5YTVkODA3MTUxNjY2OThjYzFmMTZlMzRmNzQzODExYjgyMGU2ZWE1NWMyYmRkMGRiMWI5N2VhMjI2OWZiZjYwYzczOWZlZWQ4MTgyODJmNDQ3YmZlMmJkMGI5YTdjNDc5MTQ0ZjAwMTY3MDNhZmY0NTBhYmJkODdhNTBlNWU1YWYwZDJkOTQ2OTE3NTU0MjczN2JkMTE2ZGUyYTczYWNiYjc0ZDlmMDA3N2EyMjc3MDRmMjcxZmUwNjk2ZjA3MTkxNGRjYjljMGYwMTkxZmVlMzVlYjY2MjQ4ZWIxNzk5MWI1Mzg2NDk0NTdkNWQ1ZjlkNGJiOWNkODFjMzNhMTRkMmJlY2NlMDAzYzE0M2M5Y2ZlMzljY2FjNTEwNDhlZjE2OWY2YTIyMTQzZWNhNzIxZDA0ZjZlMTQ3NzQ5YTQ0YTc1IgogCiBITUFDX0RSQkcgTklTVCBDQVZTIDE0LjMgUFIgVHJ1ZSAoU0hBLTM4NCwgMCwgMjU2KSAjMAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEzODQKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8zODQKIGhtYWNfZHJiZ19wcjpNQkVEVExTX01EX1NIQTM4NDoiMGIyMzA3YzMyZjM0ZDNmM2MzZDY4ODdmYjE3ZmY2OGIwMWYxNThlZjA3NDM4YTQxY2RlMjdkMmQ2NzI1Mjc3ZjMzZjYwODg4YWEzMmI5Yjc0MDZmNzhmNDdiZDg3N2ExNzk1NDk2Zjc1OWQ2OTNmM2Y4YmJkNjVjYjViMjU2MmM0YThkNGE3MTdiNmJiOGVlYWJjNGQ4ZjU2MTE4YTk3ZDM3ODdkMzA2NWYxZTIwZTZkNzFhMWRlZTU2M2ZkYjJkNTY1NjExMjhmYTgzZDg2MDJmZTBkYTNlODliMDE5ZTEiOiIiOiIxNjgxNWJmNTQ4MmFiYzk2OTE3OTE1MmY3OWFhMzRhMDRjMjhkNDgzZTZhYzgxYWFlMTRmN2UwZTA1MWE1NjYyIjoiOTM4YzM2M2RmMjc0MGJhOWNjZDM5MTY4ZjliYmNkN2Q0MjE1NjY5NTVmMTQxZTEzZWQwMzljNGQ4NjE5NTM5MiI6Ijk1OTUxN2UwYjI3ZDQ2MWQ2NzhiYTJkZDUyOGJmYjdlODQ0ZjdiZjE0YTE1ZmIxNzZlZmFiYjNhNTIwMGZmMmIzNzNjN2MwNjgzZjA5NTc5ODk1MWRjN2ZmZDYyYjE3MmVkODE0OTU0YzQ0MDg3ZmM3YTY2OTVhNWEyNzViYzhhZWNkM2EyY2E4ZWQ2MzFhOWViZjVlMWQxYzUxNTU0MmM2N2YzMWUxNmZkM2ViYzdlMjMzM2M3ZGZmY2YzODVmMGQ2ZWJlMTZiOWVkNDI5OTRiZTlmODNkMGNjMWUyYjNiNTc3M2NkMjk2MzYzOWFjNzRjZTY0YTMxMWFjMDcyNjAxNGJjZDIxMzgxOGNlY2Y1ZDU2MmNkMWM1ZTk3YmU0MDI4ZjY0NDAwY2ZmMzFmY2Q1ODdhMDA0Y2Y2MGYwM2M2ZjMyMjJlNGRhYmFlNWM0YmRlZjg4MTk2NzBmNzdmOTIyN2VhZjU1ZWJhNTIzOGY5MGM0YmVhNGYwMzU4OGI2NiIKIAogSE1BQ19EUkJHIE5JU1QgQ0FWUyAxNC4zIFBSIFRydWUgKFNIQS0zODQsIDAsIDI1NikgIzEKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMzg0CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMzg0CiBobWFjX2RyYmdfcHI6TUJFRFRMU19NRF9TSEEzODQ6IjA2MmYyYWE3YjQ4Yzk4M2MxYzZkMDBkMDZhYTUyM2E2N2Q0ZTg2ZTViZDI2NjQ1MWJiMjg2ZGNjNTg4OGYwZjQ5NDBjM2IwMjJjYzc2ZDY4ZTE3MDZkNjJmZWE4NGQwNTJhMDE5YjkyMTMzNWY2OWVkNWRjZDkwMjYzMjExNjc1OWI2OGUwOWI1MzFkZTI3NmM5MjM4ZmFmM2E5ODAyODA2NzUwNDU0YTUyNjBiZDgwOGI3OTZjYjEyMTE2MzU0YjlhN2FiOWNlMzNmOGRiZDQwYWU3ZTc0YTA3Y2ZjYTAyIjoiIjoiNGEyMTdiZjEzNmMzODk0ZmY3YTNjYTA3ZWFmYWZhMjg2ZmFmYzhhODI3MzI4YjEwNWIzYThhZmYyOGU0OWQxNCI6ImU0MzM0NjBlOTQxNGIyMWZjM2Q1ZTI3MDVjMDhhMjFhMzZhY2RlNDQ1OGUyNGI3OGRjYzUxMTk5Yjk3YzdhOWEiOiI1Yzk4MDI0N2ExZmExNmVhMDg2ZDU0MDg0MjgxYzVmZDExNDc3N2VkMjE0NzhiZWVlOWVkYjE3NWJlN2M0MDY2YjE5NzA2NWRhNWY0YzE1NzUwNzgzMDM5ZWI0YjVlMmNkNGNjZGMyYTQ1YzQ5Y2U1MzVmMDNhMzY2NTdmMjE4ZmM2MTZiM2U4ZWYwYzg0Yjc4YjBjZDFjNTc0NzcyNDJiYmRkYmJkZTA5OGJlNTczZTIwZDZkZGM3NjY0OWQ3MDZlN2Y2YzdjYTNmNDRjODQ1YzJjOWM5ZDMxNmFjOGI3Mzg5ZjcyNjRjNmY4Y2Q2YzU2Y2E1NTAzZTViMzdmNTJkMTllOGQ0N2NjODVhMDRhMDE5NmI5Mzg3NDMzYmNhM2MxOGRjMzBiNDcwMzBmZDI5NzcwNTEwMTgyNjg0MDk5MWVhZjViODU2YTVhYjc1ZDJiYmI3MGNiMTNlMGRkMTg3NjgwMmZjMmJkNzc2YTUxOGI5ZGNiOTQ4NGM0OTk2NDQiCiAKIEhNQUNfRFJCRyBOSVNUIENBVlMgMTQuMyBQUiBUcnVlIChTSEEtMzg0LCAwLCAyNTYpICMyCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTM4NAorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzM4NAogaG1hY19kcmJnX3ByOk1CRURUTFNfTURfU0hBMzg0OiIwZmM3OTU3NmJkYmE3N2E4MTUxMDhiYzljZDJkMTY4ZWUzMGY5YWI3NmRiNzA2MDBhYzk1ZmM0MGMxZjZiNzI0MDY4YzEyYjk5Y2I0OTI4MjQ3ZTY0YjJlYThlNzVjNzI4Y2NiM2RlMThhZGZlYmUyNGVmOTllMTRhZDU0YmMxYjNhNDg2ODkxYjAwYjFjNTUxNzJkMTZhZGIwMGFlNThjOWQ4YWUwZmE5ODA5MjQ1YTU2YzkxMTgwNDgxOTk3NjdkMzVjMDI2ZTY2NjQ3NzM1NjJhZjAxMWMyY2E3MDI1ZCI6IiI6ImIwYzIwMGI2Zjg1NDg2NDM1MjlmZDQxNGM2OTMwNTRkNGZlMDRkOGY3NmMzZmI4Y2NjNjk5MmZmYzI1ZTZiMTkiOiJiOTFiZjE4OGNiYWY0YjAxMzUwZDcyNjU4NWM2ZjM2MDFhMjZiMzY1NGRiMmUyNjkwYTE0ZjE5ODlmODNhZDg1IjoiN2M2NGU1MDNlZWE1YjNkZjQ0ZGMwZWI5ODYxODhjMzEyYTBmNWZlMWYxMTMyMzk5ODQ2MDhhNjljY2FkY2U4YTdjN2YzMTM2MTY5ZTA3NWIwYzYxODEyYjFlNzRkZmU2YWIyZTdkNmYyNDdmNzM4NTlkYTVhMTA2OGM5MmVmOGU2YWVkZDk0YzM5MDRiOTczYWI4ODdjYTNjMzhkZTcwYjhiMzEyZTMyYTcwMjcxMDgyOWRkZjk2MmYwZTA4Nzc5ZWQ5NzcwOTc1NTM2NTU3ZTNmOTEyZWYwZDVjNDk2OTIwMmFmNTAyNTIxMTdlY2E4MTgyYzMwMzg5YzliODRmZGE5NTExOGY4Yzc0OGYwYjE3NTJjMWU1OGI4ZTBhZjUzMDM3NmFhMzRjZDg3NGNmNDk2MjhiZWJiZDczNTNhYjRhNWY2NGJiYzhlMzUzNzc2MmZkNTU1NmM2ODAyOTBiMmM1MjMxNTM0MzJhMmUwZGYxNjU4ZjJhNTUwN2EzMGE2IgogCiBITUFDX0RSQkcgTklTVCBDQVZTIDE0LjMgUFIgVHJ1ZSAoU0hBLTM4NCwgMCwgMjU2KSAjMwotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEzODQKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8zODQKIGhtYWNfZHJiZ19wcjpNQkVEVExTX01EX1NIQTM4NDoiZmZkZTdlMjcyNmU4OWNjZTgxNmFiM2UyMjU3MmZlMzE0MzRmMzE4MWQwNTc4ZDUxMTYxY2M3NzMwNWUyNTYyYjc1NTAwOGM3ZTRjY2M4ZWM2MjgwNmJkZmJjZDg1MDhhZTQxOGZjYjBiNTdhNGQxMDA3NDY5ZWUzZDk1OWEwN2U5NDkwOTRiMGEzZTVhZjY5YWVhM2E5MGEyMjI2MzA5NzhhZjkxMzkwMjdhNjU2MTUxMjI1YTIxODNiOTJlOTgwZmZmOWJhOTg3NjgyNGJhZmNmMThkNjNjOTE2ZmU3YWUiOiIiOiJiZGExNzQxYjBiMzlkOTI0OGRkMDYyODcwMzM0ZTMzY2VjZGU1YzVmNjNhMDdhMzAzMGY5OGIwMjFjNjg0OWZhIjoiMWI1MzM2ZmNiYjBlZDE4M2UwZjgwY2QzMWVkZTRmMzI0OTk3ZmZiODQyYTgzOTU3ZjQxZDI5MTYxMmM1NWU4YSI6IjYxZDU0MmU0Nzk0ZTliZDRhY2VmZWY0YjMyNWQ5NTRjOGVjNmEyOTEzODQ3NmFiMWJiMDM3NTA3Y2Y1MmMxN2VkYmQ1MTE1NzliZTVjMjMyYTY3MjY5ZWY0MjM2NGNmYjRlMmFhZWZiMzFkOWU4ZTI2MGEwNGU1MWQ5NWMyZWQ2YzVlMGYwOTVlZmQ5MmZiZDM2ZWRjYWU0MzkzNjU5YWY2YmI5OGIwYjcxYjI4MWU5MWUxZGYzN2MzNTM5ODdhNmE5ZTI1OWYyNzM1ZmQxNmI4YzEyNzdkZjY1MWIyNmFjM2Q5ZjI5MmM5MjUyYmU3ZmUwOWFiNzg1MWY1MTUzMjVhMDc4Y2Q2OWE3NTczYTQ4MTBhYjQ2MGM0YzllNzYwNGU1NDI0MmFiOTU2ZmU0NzFlOTBmODY2MTNlY2U3MzcyZjFhYTkzNGE1MGRiZDA0NTcwMzM4NDNiODg3YzI3OWYxNGFkNmI0OTYwZjQwMWI3ZmI3NzcyNTNjYTVlMjk1ZiIKIAogSE1BQ19EUkJHIE5JU1QgQ0FWUyAxNC4zIFBSIFRydWUgKFNIQS0zODQsIDAsIDI1NikgIzQKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMzg0CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMzg0CiBobWFjX2RyYmdfcHI6TUJFRFRMU19NRF9TSEEzODQ6Ijc5NDZmZTdhZGE0YjU0NTA5MGQ3NjQ3Yzk5ZjcxNTk0ZmEwOTQ1OTMxMTVjMjM4ODgxNDZiMjdhN2NjYmZkNzdjZTMwNWMxYWU0ZmRkYmI3NWE2NWRiYTRmMGVhMTg4OTdiYjdlOWFmZjMxMzhiYTAzMDAwNWE3ZDFjNTgwMjgzOGViYjIwODQ4ZjhlODFlN2U4MDE4Y2QwZDBkZDkyMTI0M2MwOTRhYTcxMGY2YjBiMmVhMDA0YmQ2ODQ3OTllM2NhZWQ4YzNjODk0NGQ1ZGE5OTViODhmYTA3MWQ3NTI2IjoiIjoiYjI5YTUwNmM3YmM4YjIyODI1NzAyMjMyMzA2NjQxOTMyMTZkZDQ3ZjdkMjBjY2RkMzU5NDNhODhjNThjMDUwMyI6IjNhNGMwMGNkMmYyNzhmMGU4MjQ5OGQzM2ZiNmFlOWUwMjBmNGQzNzkzZTgzMmFmYzk4NjRjMGI3YjZjZGE0M2MiOiI4YzA2NjdkOTEzYjEzODY2YzdlYWI5ODQ3MTEwOWQ5NjY5MDFmZGM2NmZhNGRmZjg5OTZjZTgxZWM1MTg1Y2UzNzRiMTE4ZGEzNGUwN2JkODI4MzNmMjBmYTRlNDRlZjE1OWY5YjBjNDdjMDQ2MzA3YTQ4NGIzZjUyODIyYTU5NmJjZmI0OWI1NTVlYzhkNDgxZmIzMGUxM2RjOTg5OGYwOTNkMzRjYmI0ZDY5NmQ3MDE2MTMxNWM0OGRlZjczYmIxYzhiNDk0N2M4ZGRhYjEwMWQ0OTE4ZjVjYzAwYjg5MGI3NDUwZTRlMTBjMTdjNDZlYTdmNWUwYTFkZjY1YTFmZTc0YWQyNTc3ZTU5MmU3YmRkZWFkYjI0NmZhNjJjZmE1YmI4NjIwMjIwYjE4ZmZmMjk2YTE5YTVhM2FlNmI4MzMzMjFjYTc3OWI3Y2I1YjU1NjU4OTMxNjEwZDhiNzc3NjA4N2M0MWVlNGQwNzc0MDA3NTM2ODFjN2RhNWM1YWEiCiAKIEhNQUNfRFJCRyBOSVNUIENBVlMgMTQuMyBQUiBUcnVlIChTSEEtMzg0LCAwLCAyNTYpICM1Ci1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTM4NAorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzM4NAogaG1hY19kcmJnX3ByOk1CRURUTFNfTURfU0hBMzg0OiI1NDU5NTAwZDVhNzA5Yjg4YmYwNjdiNGMzOTA4MzdlZWY1YWUyZTVmMTA5YzExMGE4NGNmMzJmNTYxZDI2ZGRjNTY3YzVmNGNmMGY0MThjYmMyYTU2ZDQzMjViMjcyN2Y4NzVjYjFjZWVkMzE2NzEzNmYwZDkzOTQwNDE3ZjYxNmEzODQzYjY4NmFiNGY1ZGQzZDgwODgwMTA1NGM1MTBmY2E1ZWE4ZmEwNDY1ZjlkMWFmZDhlMGM2OGFmZmExMGY1YWY2MWU1OTRlNjZiMmJkYjIzNzJjYWEwNzEyYmZmMSI6IiI6ImVhZWM3Yjc1ZWUwM2NkZjA1MDhjMGNhMTcxYjAwNTA3Nzk1NGUyY2VjNzIzMGIwYWVkZmUzMmExNWNiMWM4NTUiOiJjZGFmZTQwOWI4NzE2MjVhYjFiMDZhOTNjNGQ1YTFmODE5Njc3NzM3MGRmMTg2NDNmOTcwNTBkNzc1NmFkZWNkIjoiNDg2YWE0MDYzYjM4NDBmMDQxNzAzNGM2NTY3NmQyMGRhMjJjNTEwZDI4MWJiZjQwNzg1NWNiNThhODdhYzliMzM1MTFkNjkyMzE1ZDg4ZDI3YmQ1ZDFhZDVjMzVlYzhiOTkwMThiNWNhNjQ4OTdhZmY0ODU0NGE1ZTU3ODEyNGRkYzAwZjc4NWRlYjYwYjBhNjBkYzQ4NzNmYTlhMTQ4ZGE0ZGZhMTU1N2JhYTNhYWZhMjI2ODBhNDBmNjUwZTQ5OTJkMjFlMzVmYWIzYmU1NDU4ZGFlMTNlYjJjYWVkZGQ4NzA0ZDY2MmIyMjFiZGEwMWFjNjMyOWUyYzQ1MWU4NjVhZjk3MDFhN2NjYjY5YzBlZDBiYWViMjI2ZTZmYmQyYjg3MWI5OTQyMDk0OTU3MGJmNWZjNjFjNjczYWFjYjU4ZmVhYmRiMzA0Zjg3MDkzOWQ3MDU0MjZhYWU1NWNiM2EyZjMyMDZjMzNhYmQ0NTNlMDc3YzQ1NjVjNjAzYTE4IgogCiBITUFDX0RSQkcgTklTVCBDQVZTIDE0LjMgUFIgVHJ1ZSAoU0hBLTM4NCwgMCwgMjU2KSAjNgotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEzODQKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8zODQKIGhtYWNfZHJiZ19wcjpNQkVEVExTX01EX1NIQTM4NDoiN2U3NGIwYTU0MTNlZTJhZDhkZTgxNGVhMWY1NTZjYTVjNTRjNmYxMTE1OWYxZmJjNzhmYWE4NmE3NGM0ODcxYTExNjU4ZTkxN2ZlZDM0OGU3NzlhYWU1MTBkMzgzMjkwYmM2YzRmMTMzOTE3MDlmOGFhOWJkNzlmMzhmMzEwZTJmZmJlN2ZiMWJlM2U2ZTNhYWM5ZDg3OWYxZTVmYjNlYjFmZTgxNjc1Y2JkZDA5OGNkMjg3ZjY2ZmI5YjI4ZDUwZTEyYTY0YjllMDhmMjhhNDBlZDQ0NmZjM2ExMjU4NWMiOiIiOiJkMTUyYjBhYTE5NDZjZjE3N2FhZmM3ZDQ3MzIyZjhjNzU2ODMxNTUwZWM3OWFkYjQwZjM0NjgxZmQ2YjM4NDBmIjoiMTUyMjI5Mzg4Y2FmNWRjNTA0NTRjMjUxNGQ5ZmYxYTRiNzBlM2QxZDliOGIyOWEyMjhkNTljZTY3ZThiYzU4NiI6ImExZTIwNDY3MjllODQ5NDgyYmQ2OTNlMjE3NzllMTgzNzBhNTQyZTJmYzdiYWVkYmVkMDU0NDc2ZjM1NDQ3ZTA2OWJmZGEzM2ZhMjcyM2FkNDI1NzE3YzAyN2U4YjMwZDU3ZGQyZmNhOGNmMjY4ODQ5MzU4MzU0NDc4Y2Q4YmI0MmU4ZjlhNzM3YzJlM2Q1NDkwOTkxZTQ5MDJhNTJlODZkMWJhZmMxNzUxZjU5MDhhMzZhZmNhMmI2YjQ2NjNjY2M5ZjFhYTQ2ZTg1N2UyZWU2MWU0ZGMxOWQxNTQwMjlkYTQ4ZDU5NTE5ZGRlNjQ0MTBiMWQ3ZGFlYjViN2I5MzIxM2NiYTFiYjA1OTYzNzAyM2Y5MjhmMTZlNTk0NGUwZWQyY2EwN2JlMzY3NGZlZDZlMGRhNzIzMTNiM2NiODBiN2EyZDY1MzNmYzg3ODU1ODczNjZjYTFiNjc2OWRiODAzZDZkODQwYzVkMWI2YzQ1ODkyNzJhM2ZlOTM3MWIwZiIKIAogSE1BQ19EUkJHIE5JU1QgQ0FWUyAxNC4zIFBSIFRydWUgKFNIQS0zODQsIDAsIDI1NikgIzcKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMzg0CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMzg0CiBobWFjX2RyYmdfcHI6TUJFRFRMU19NRF9TSEEzODQ6IjcwYjVjYWI2MzM5MWM1Nzc3ZTRlNjA1MTZiNzA5NWRlYTNjZjI2ZDcyYjI3YzE5ZjVhMDhkZTY2MzQzMDZkOTkyZGU0YzNmNzBiZjI4NDlhNGMzZGJlYWZiMTYzZjVkNTBkY2JiY2M4ZTZmNGJkOTczNjM2ZGE5NWQ3MWQzOWQ2ZmZjOWU2NzMzMjA4OGJmOTA2OTIxYjljNDhhN2UzZGUxNTg3NDBhOWMwZjI5YTdiNjlkNTU0NWUzOTAwMzA5NjVlMzA1YWMxNjUzOTU4MzYwZDAxNjA3YmNiYzM5ZmI5IjoiIjoiYWIwNDJkMjNhY2NmOWE5NDczYjQzZTgyNjgzZTMwZjQzNmZhNDkyYmE0YTg5MTFlNGVkMjYyMmQ0ODFlMGNkMSI6ImI3MDdlMmQ1YTUwMjBkMzc2NTYwMDk3MTNiYjEwMGM1NTgxOWE5OGUyMjBmYmRmZDkyMWM2YzA3MjRiYTcyMzgiOiJmM2Y4MmI3YWEwNjM5YmNhYmVjZWZjN2IwN2IzZWVjYzk5NjI4ODQyNTBmYWQxMWI5MzUxMjI2ZjEzOGUwNmUzZTk1M2UwNTI3OTJkMDEyNzYxOGEyOGFhYWExYmY1Mzc0YTA2MzkzYzE4YTMyNmY4ZDM0NzEwMTBmOTg0MGRkMTZlYzk5N2Y1M2ZiOTgxYWEyYjY4OWJmMWNkYmYyNjViNGFiNjk4ZjllOGU5YzA1NDI1NTE0N2UwNDY1NGI4ZmIxZDBmZDNhMGI2NGQzODgwZWU2ZTlmYTg3ZTAxODRmNmJhMzA3ZjRkM2ZlYTY1MTU1NmUwYmFlZWI3NWYzMDhmYTMyOTI1ZjhjNTVhZTBmMzU1ZjhkYjg0OTVlYzZjNDYwMDM3NjNhZDRlZjM2NTkwZWM0MDIzOWI1ZTg1MzBhYWRhYWM5MzFmZWVmYzhlMzkyYzU1MGFkNGQ4OWY1YjMxNGE1M2EwNjMzYzdhOTNiYzA1YjU4ODI3M2U2ZDFkNTYiCiAKIEhNQUNfRFJCRyBOSVNUIENBVlMgMTQuMyBQUiBUcnVlIChTSEEtMzg0LCAwLCAyNTYpICM4Ci1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTM4NAorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzM4NAogaG1hY19kcmJnX3ByOk1CRURUTFNfTURfU0hBMzg0OiJjMTc5MTRkZDZiNzNkNjVlNWFmMTEyNTM2ZjUyYjA0NmQ0OTYzZjljOTA5OGM3N2Q5ZGZlMzVjYTdlZTYzNjZkNGMwZmVkNTc2YmE0Y2QxNGNhYTNkMGM0MDZmZmZhZDJmMDc0ODM2MjE2Njk3NWY1YmNiOWEzOTVkNTY4YjhkYmRlMzM4M2M1NjU0YmQyNGYyNjg5MGIyMWVlMWYxY2IxMGYzYzkzY2YyZGY2NGNkNzY0MTg3Yzg0MDU5MGE1NGJhYmM5YzI4MWRlODhhZDFhMWRiYzI2NzdmYTg2ODdmOSI6IiI6IjRhNjFlZTkzNDlkNTNmOGIzYzFhZjM2ZmUwYTkzMDNlZjg5NzA1ZmQ4N2UwNmU1ZjM0YjYxZTEzNTAxMTEyNzkiOiJhOWFkMWNhZDRjYTdhNWFmNGJmYjgzNjgwZDRiOTE0YzIzYTZjZDU1MWU4YjAwMmM1MGYzMGJlMGQ4NjkzZWRmIjoiOWFiMzBlMzcyOWRkOGIyYWY5ODdkY2I3OTNkN2EzZTFmYzRlYmNmZTBhNGFjOTc2ZDkxYmQzODk3Nzc3ZWZmYjIxMGM4MDc2ZTlmZDEzNTk5MWU1NGFiYjRiYjhjN2IxODNhODBlZjM3MDc3NjkyZTUxOWQzOGRmNGEwNDMwNGZkODNmZTFkNjdkMzIxNDdmZTBhMjQ5YTZjOGJjNjAzZDk5ODc4MDM5Yjg3MzU4OGMzNzgxYTE5MzQzN2YwOTgwOTRmZDhjMTI5NDVlZjk5MDM2NDQyYzgwY2QxZjU0NDcyNTA0MGRmOTgwYzU0OGYwYTY3NWFmYWY2MmExYjdjMjI1YzljZGYwNzAzZTYxM2M3YTVkNzJjOGIwMGQ4YmExOTliOGVjYjQ4YjZlMGIwZDEwM2EzYjBmNTdmZjFhNGI5MTg5YTIwZGVkZWFjNmViMjZiMWY2NmVhMGMzNGRkZGVkMTBhZjJiMDEzM2Y0YjViOTVhYzIyMzlkZDk0OTE5IgogCiBITUFDX0RSQkcgTklTVCBDQVZTIDE0LjMgUFIgVHJ1ZSAoU0hBLTM4NCwgMCwgMjU2KSAjOQotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEzODQKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8zODQKIGhtYWNfZHJiZ19wcjpNQkVEVExTX01EX1NIQTM4NDoiMmFhNTQyMzI3MGQwODU5YTZlM2FhMzA2OWE4OGYzYWM0YzMwZWRhN2Y2ZTUyYWE4OTFlNGY5OTUyNDRhODBkNzNkNzNmNzg5NTYxYjAwY2VkZGY3MjFlYTU5YTdlZGEzMTU3MDkwZWMxOTJjNTc4ZmM1M2QyMzJjMzY0NTNjNWU4YmMzYzljMjJmM2FlZGI2YTkzZjdhYTYzOTc1ZDliZDMzNjljZDUxOGU1NzBmNmFmMGFiMTYyZTRjOTM4ZDE3ZGNkNGYzYWU0NmQ3Y2Q1MDJlZjczYjJkNDBmNTBlMmEiOiIiOiIzMmNhZTNmZjc1N2I3OWYyMzA1YThiNWY1ZmZmNWE3N2FmYjU4MWZhZjVhMzc5NmM1ZWQ3MDU0ZDdjMDQ4MDE3IjoiNjMyZWI2ZjFjODI3Y2YyOTlmMzQwM2JmODBhZjcyMWZlNWZmODI0NTMzMWYxY2NmYmI4ZjRlNjFlZjVlZGFkZiI6IjFhODVjMzYxMzFhOGMyNzFkNmM4MDUyMzMwOThiYjI5ZjkxMDRlNjI1NGUwNjgwYzZlMjY0YTc2Zjc5ZWMxN2M3YWM2NWM4YTk3NjEwYTBhN2U1MzA0YjM3ZDFlYmRiZTAyY2Y5ZGFhOWU0NWI4MWQ3NWQ4YzYxM2FmYjk3NGViMzhkYzQ5MDQxZWFmYTc0NjJiNGMyNzJmZGQzZDdmZDRiMDViMWU2MTQyMzA1ZmZkNmZhNjM0ZGRkZTkwZTI3M2I1MWIwMmMwYjY4YjgyM2M3N2RkZjNlOTNhMmFiOTQzNmQwZjQ4MDFmMDhhMTEzZWVmZWVmZWZiOTU5MjY4Mzk4MTQyM2Y4MzIzNWY4ZTU2M2VjZGI0ZTQ0ZGFhOWFmYTVlMTcyODIwNGRkZTFiZDI1NGM3OTg1ZTZkNTY4OTdjNTcwYjBjNjMwN2ZkNDlhZTRkY2UxOGVhNTVlYWU4NDZhZjJhNWFjYWFlMTdhNzFmODM2OWI2NGY0N2IwZTU0ZCIKIAogSE1BQ19EUkJHIE5JU1QgQ0FWUyAxNC4zIFBSIFRydWUgKFNIQS0zODQsIDAsIDI1NikgIzEwCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTM4NAorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzM4NAogaG1hY19kcmJnX3ByOk1CRURUTFNfTURfU0hBMzg0OiJjNjljNjE2ODlkMWY3NzYzZDQzYjIyYjZiYzIyNjJjMzc3YzYyZGI2MDgzNTExNDQ0MmZkNWJkNjVjNjY1NzA1YjU1NjNiM2I2ZTllNzkzZDBmNDEyODY5NmVlZmM1YWM2MDNiM2VkYjM1YjcwNWFlMzk4NDVjZWZkZjhmZGUyM2Y1NDc5YWU0ZjAzMzQ0MmFhOTU4ZTk3OWM4OWJjNDFkZGU2OGQ5MmYwNWIyOGMzNjQ0MTMzZDE5Nzg4NjI0YmM5NzAwMTlhMTBmNmIzYzZjNWI4ZGQyMmIwY2VlM2UyNiI6IiI6IjE1Y2Q2OTg0ZmFiNmFlN2RiNzJhNGMwOTlhMDY0Y2RmYmQxNDFkY2UzNjFmYWIwMDIxODcyYzkxYjFiYjY1ZmYiOiI4NmMyOTVmY2M3ZjljMmVjOWZhZDM3N2UwZTRkMDExOTMzNDA4MGY1OWZhNjhjMjFjMTlkN2ExMjEyZGNlMDNiIjoiOTdiOTcxZWMxM2RiMDQ5Y2NkNzJiYzU5N2ViYzJlMzNmZTRkYTY0N2QwZjc0ODU1ZjI0Mjg4NGQzNWRjZjkyZDAzNDlmZGIzNTI3Yzg3YzU0MzFjMTBmYTg1NTY5Mjg1MDk2ZDMzNjliZDE5MTdjOGM3Yzg2NTAwMjRhY2I4OGU1YjE3YzQyYjUwYTc1NDE5ZTI5NzU3YTllMWFlMDkwNTNjZjBiNTFkYWM0Mzc4ODNjZjNmNWIxYWJiNDBhNzFmNDBkMjc5YmM5ZDU5NmQwZjU5ZjRjNzBmODEwODdiNDQ0NmM0MDIyNzlmNDQ4NjE5OGVlMzI5NGQwYTVmNzJlYmE3YmE1MmNkNTUyOTA2MzcxYWVlZWRiNDcxMjJiZmZiMGQ1ZWQyN2MzY2JiODZhNmZjMmQ4M2FiNGRiN2I2ZTFlZTQ2N2RkMWVjMjBkYzE1YmNlZTE2OGYyZTIwMDE3OTcxNGNmYzA0ZWFjNjUxYTQ5NWE3MThlMWVkOTg1YmZiIgogCiBITUFDX0RSQkcgTklTVCBDQVZTIDE0LjMgUFIgVHJ1ZSAoU0hBLTM4NCwgMCwgMjU2KSAjMTEKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMzg0CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMzg0CiBobWFjX2RyYmdfcHI6TUJFRFRMU19NRF9TSEEzODQ6IjRkY2M3NDI3ZGZmNDZiN2RiN2UyZDMyNzNlMDYwNWNlODVjNDYwY2ZkNDI2OWZjZTljYTNiMTAzOTliOTllMTc4YjEyZjI4Nzg2YjllM2RmNDU3YWMwMDE1MDA0ODQ0ZDZmNmJlZjI5ZWE1NjI4NTZlZTgyMjQ2ZDI0OTgyMzkzZjc3MGQwYjY1ZDBmZmM2NjBkOWQ4MzU5ZjEwOTA0ZmQ4Y2JiNzZlNjQ4ZGY2MGVjNDMyMzdmZjdkYzQ2YmMzNDkyMGJiYTYzN2EyYzE2NDNhNTNlOGE4OGJiN2JiOTdiIjoiIjoiNGMwYWI2N2I5NTIxODZmMmY4NWEwZGJkNGIyYzFiMGRkMDA5ZGQ3OTQyNjBlZTdmMzIxYjJkMmIzZDk5NGUwOSI6ImY1YmU2NjAwOWI3OWY1MWY2YWEwY2QxYTVhMjRhNzJjNmE2YzQyNjMyNjNjYmNmODBlOGUwZDUxNGEyYmJiMWUiOiIyMTFjYTU3YTMyMWNhZTJjNmQxYWQ3NTVhYzkyNGM5MmRkMDliYjFjNjMzNGVjYzU0M2JhNzhhMTg2MDg0Nzk0NTdiZWJkYTYzZjcwN2ZjMjgxOTBiMmQ1NmU0Y2ZkOTZkOGM0OWZkMTQ2YWNlODY3MjM2YzU3NzYxZWEyODMyNmUzZDI0MWQxZGMzNWQ3Y2E5NzFkZjlkMjkyZjI1NjNkMzNjNWYzMmFiZTg2MzY3Y2Y1ZjJmMDY2MjgzNzY3NTJiMzUzZjcyYjUwMWZmYTk0YTUwZjE0NmI4MTc0Y2I3OTQ2YWI4YzhiZTM4MjIzNzMzNGYzNzU5NDQxODg1MGEyMzNjNTM2ZDcyNzYzZjEwYjA2ZjcyOGUzZTYwZDNiNGYwMzc3ZDUxYjBkZTExZDExMGEyOGI2ZmNiN2M0MmI3N2U1ZjZiNzcxYzhlNWQ3MTNhMGY2YzRkODJhYjIzMTFjYWRmMTZiN2NiNDQxYTQxN2IyZjU5NWYzMmVhODIyZWEiCiAKIEhNQUNfRFJCRyBOSVNUIENBVlMgMTQuMyBQUiBUcnVlIChTSEEtMzg0LCAwLCAyNTYpICMxMgotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEzODQKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8zODQKIGhtYWNfZHJiZ19wcjpNQkVEVExTX01EX1NIQTM4NDoiYjcyZjM0YmY4MjA5YTI4MTY4YWU3NjkyZTRjN2Q2ZjE5ZmVhYjkzNDY5NzFiODVmYjlmMzc3ZjZlNGE3N2RmYjM3MGExMGFkZGFlNzQ0YWMwM2YyZjI3N2M4NTQyMzk0NWY0ODY4MzBjZDQxMGYyNmUyMmMyM2ExMzZkNDE4MDA4NTAxMTMzMzkyNDJlMWEwNTUwYmVmODFhMjM5YTI4OWE4ZDAyMGMxNDI5ODg1NGYwYjE3YWJiMGJjNDYxZWQ2ZDM5YWIyZDljZmIwM2I4MzU5MTZjMmE4ZTkzNzEwYTAiOiIiOiJlOTE5ZDk4M2JlYWU0YjY4N2JiMzkzZDkwYWQ0MTA0MTQ2ZTg2NTY0ODQ1ODAwZWNmODIwODVkNWIyNjlmMWRjIjoiYWJjOGI1MTlkYjA1YzFkZTg3OTQyNDhjNTc0MTYyN2NjMDBlZTM1YTk3MmVjZGVjMDQ1YTBjYzU1N2EyZDk2NyI6Ijk3Nzc1MDQ0NzNhZGFkYWRlMTRlZWZjMDI3OWY4MzQ3YmIxNzhhMzZkYmI1ZmIwMjhmMDMxNWI0MzA5ZmFkNGVmNTU0YmYzNGIwNDE0NmJhNGJjMjYwYTg5Y2Y3ODE5NWFkMWMyM2M2ZTQ3M2ExNDM4NWM2NmJhMmExYzAwNWNkZmUzMzY5OTkyNDVmMDBmZmVhYTQxZGZhM2Q5ZTY4Mjk0ZTVkNjc2ZjAxZjIxM2M2ZDJkOGE2OWI0M2UzNmYyYTU2ODk5OWMwYThjMDdlOTZkN2RhZjkwZjNlMmU2NjhlYjlmYzhlNWM4MTJhNDlhMzk1MDdkMTkzZWI3Yzk1Yjk0N2FhZmU2NThhMTA2NWVmZTkzNzBjZjgxMDE0ZTRmZmQ1NGVmZmZlNWY4NjNlNmU0YjdkODc1NTY1NjE3ZDhiNzI4NTRlY2YwOTI2M2M1NWQxYzNmMWE0ZjQ4NjIyMTRmYWZlN2YwM2RhNTU3MjA5NWE3YmVmY2ZkOGU2ZWU2MyIKIAogSE1BQ19EUkJHIE5JU1QgQ0FWUyAxNC4zIFBSIFRydWUgKFNIQS0zODQsIDAsIDI1NikgIzEzCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTM4NAorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzM4NAogaG1hY19kcmJnX3ByOk1CRURUTFNfTURfU0hBMzg0OiIzNWQ1YTZjYWU1YWVmZGJjNjJmMWVmYjYzOGMxNWRkYTM4N2E4ZjY1MTgxMGJmMDY4YThkOTI2MDFmZDM3ZTBlZmZmZDk1MTk2YzA5YzY2OGRkYjA1ZWVmM2RlMzM5MjIyYTBiZDBkM2I3MjFhMjdlMmYyOWJlODRhODQ2YzM5NjRlYjlhODRjZjY5YjIxNGY2MTJkZjNiNDE0NzI5ZGY0OTlkYTRkM2FkOGJmMzYxM2JkYWQzYTcwYzczY2FlODA1NTZjMTZmOGFiODNhZGYwZjJiYzkzOTEwOTRiZmQ5OCI6IiI6ImNkNjAzODEyYTg0NDQ5MjU5OTNmMmMxYTA2OTFiYjQ0NTlmYWVkZDg3MmY0Mzg1MmY5OTcwNjc1ZjU3OWExZWIiOiIxNDQxYjZkNDg3NmIwNTBmYTRkOTY5ZjE4NDVkM2YxMTljZjVkODcyMGMzNWRhOWM0ODkwMDBlNmI3MTY1ZGI0IjoiMjU5ODI4ZDA1YjhlNzM1ZmFkNjk1MjdjZDIzMjJmOTRlOGU3YWMyNzkxNjA3Y2NmMmE3NGQwNzBiZjdkNTU3NGZmZDhkNmU0NDdjYjRlMDJiYjE1YTg3YWE4OGQ4ZjE2NjdlZGMwOTA1NDU1YjExNmVmN2YwOGNlNzI3ZDhmMjY2OTY1MjQyZTAwNDI4MTBmOTQ2ZTUyYWNjYTYzNDhkNzBlMDEyZDk5ODMyMmExOGEyZjNiNGM0YzZkNmI2NmNmZTY1Mzg1MzEyMzQ0ZTNlZWQxNGM2ZTcyNzdlYWM5YTRkMDlkZGM1ZGNmOGZjY2U2Zjc5YTIzZDM0YzgwY2I3OGFhYWYxMzQ3ZWNjZThjMTNlZmQ0NTBkNTk1MDY1MTNlNjJmNTI3MTc5Yjk1YjliNWQ5ZGY4MjFjMzI1MzhmOGUxY2NiMTdlOTExODI2ZTk0NGVjNDQ5NDNhZDhlNzI2ZDU0ZmE5OGViYzRkMDEyZDM0YTIzNzcxYmE0OTdjYTJlIgogCiBITUFDX0RSQkcgTklTVCBDQVZTIDE0LjMgUFIgVHJ1ZSAoU0hBLTM4NCwgMCwgMjU2KSAjMTQKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMzg0CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMzg0CiBobWFjX2RyYmdfcHI6TUJFRFRMU19NRF9TSEEzODQ6IjY2YWJmMTdkOTA3YTEzNDIzMmZhYWZmOTNiZmUzNjEyMjNiNWI3NzM5ODBjYzI2MWZkMTljYWFjYTAyMmZkMGEwODFjMTFlZmVlMDFmYjFmN2FiZDAxNDViMzJhNTFiMzIzN2Q2YWNlODc3Y2E2MzkyYmNhZTJmZDJhYTViODY1YWFiZmIxZDFkMWRhMzNmNDIzMTlhMDg4YzhkYmVkMTEyNGE3MWQzOWU2MjdkNWVmYWExZThmM2U1ZjcwMTE0YmIwM2I3MWNlNTRlNGY4ZDM0ZTgzODEwNmIyNDY3Y2NhIjoiIjoiMWU1MWYyYjY3NTM4Zjg0NDQwOTEyYzZmYTIwZmJmMDA5MTAwZmMzMDA4YjViOGUxMzA4ZDk1ZTdjYTUzYjQ2MCI6IjMwMWY5MWM2NTlmNzNiNjE4Y2I0NmE0MzQzNzcyZjFlZWU5ZmI0OTQ5ZWM2MzI4MTA5ODIzNzQ5YmQ4YjBiMTEiOiIzNGM1MzIwODI5MjZlNmQ1MzBiM2E1ODI4MmViNDY2NmFjNzM3NGU4YmVmYWE0OTk5ZGZjOWY0MDllNDBmZjk2NjY1MjI5NWQyOTQwZGI5NzA2MTgwMDU4M2JjN2Q0N2IwNTM1NTNhZDI5Yzg5ZWU2MTgwM2MxMDg5ZDMwNTkyMjcwZDI5MjcwMzEzNTM1OTJkNGFhNzFmNTlhNGJmM2YyMTQ3Y2I0MDYzMjIzNjc1NDRjMzhmYTVhM2M4Y2NiNTM0YmQ4ODQzNTViMDYxNDVkYjYyMTYxMjYwMTYyMDkxYzc5NTg3NGEyZTk5ZTAxMjkyYTJlMzllMTA3NzM4ODE4YTIxMTc1MGY4NThlZGJlMGMyZWE0NzM0YWQxNGYxYzQ1YmNjOWY3MzNmMDI3NjE2OTI2NTU4NTg3ZjczMzJiZTU1MDQ0ZGZkNmZjZGI2MjhmZjdkN2Q1ODE4MjBhMjE3YmM2NGFhMDkyZTQ1MDcyMjY4NmUwY2IyOTFlY2E0NWIiCiAKIEhNQUNfRFJCRyBOSVNUIENBVlMgMTQuMyBQUiBUcnVlIChTSEEtMzg0LCAyNTYsIDApICMwCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTM4NAorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzM4NAogaG1hY19kcmJnX3ByOk1CRURUTFNfTURfU0hBMzg0OiIzN2RjMjFjNzJkYzdjODJkNWUxM2M1MWVjYWY1YThhZTA2NDAyNTAwZDkyY2FmOTZjMDU1NWE5NTA2OWY0ZjAxNDRhOTYxZWFkNWQ2ZDliYzMxN2FmYzgyMDYyMDJiZGRkNTdmYzAyYTJhNTAwZGYxZmI1YzRkOWQ4ODM3YjUyYTUyMjBmZGYwNjhmZTJiOGI0YmNjNjNmYmM5YmZjOTRjOGUyMWQ5ODdlOGI2Y2IwZjRjZDM3YjE0NGM2NjhmMThiN2EzNmVkNGU5NzU4ZWU3Yjk2MDI5YWEwYWIyMTk2YSI6IjQxZTNiODkzNDdiZDAzNWJkZTUxMGFiOGZmODNkNWZkY2M5ZDVmMmRlNjQ4YmRiNDY4YTcxNGYyYzEwODNjNTIiOiIiOiIiOiJhOTI5ZWUyM2M1ODMyZTVhYjkzY2NhYTQwYmY3NzU1OTNkN2QwNGExYTg0MTFkZmEwN2I0YzhhMmRhMmRjOTFiMWJjYjljMjdhMGJhNWE3MTUyY2U1ZGVkNWY3NmNmNmI4M2MwNGMwZjhhNGY2YjQzMzgzYWUzZTdkNDk3MjgwYzBmOTQ0YmU5MWIwYmNhNmE1NmRmMmQwMDY0MWJmYzFlYzU0OWI1Mzg4OThlNTU5NDA3YjA3NjE2NDI3OGMwZWI3YWZiNmQ2ZjQ0OTVhNTBkNGRhMTc4YzA0YjI1OWQyMWJiNzQ1NjkyZDNiZDE4NmVkZjViYjNkYTZmNjZiNDQxOGZjM2Q5YjA4NWIwYTZjMWE1ZTU0Njk2MjcyYzMwNWM0Yjg4ODc1OTViMzkxZGQ2ZWQ4ZGEwM2RjOWZkYjI3MjhkOGM0MGEyZGVmZDhhZjA1ZWYxYzQ0M2E3MjMyM2YyZTBiMGQyNjgxMDlmYjdlN2VlNzAxOTJmYTA2YmM2YzIiCiAKIEhNQUNfRFJCRyBOSVNUIENBVlMgMTQuMyBQUiBUcnVlIChTSEEtMzg0LCAyNTYsIDApICMxCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTM4NAorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzM4NAogaG1hY19kcmJnX3ByOk1CRURUTFNfTURfU0hBMzg0OiIwZGNiZWI2NjBjZmY3MDNlMDU5OTEzZWViZmY0ZjYzOWEyNGI2MTFhMDc4YmFlOGYwMTMyMGVhNGFmNWU4ZTBlZDkzYjhkYzRlODRkMjI0MDM2YjVkYTY0NWMxNDczNTljNjEyM2M1NGNjMjM2NzI2MmE3NTk0YmM5YTdkYzY5Zjc2NTQ5YWI4MDNhZjY2ZGU4ZjI1M2QzMzhkNDhhYjgyN2IyYjE5MThkNjM2ZDZlYzkyYmZkOTEyM2YxZjVmYjU5YjZjMzdlYWRjYTBjYTc3OTJlMmI3OTMyZTFkZGMzMyI6IjFkZWJlZWQ5YmE1NzkwNDM3YTZjNTZkZDNjOWUyZjZkZjA5MTJhYTBjZTJlNTdmYThlZWM5NjUyZTJlY2NmYzEiOiIiOiIiOiI1YmQ4MTViM2MzYmI3M2E0NWRiYTcyYzY4NDU3Y2NjMTcyMTJhZjkwNTYwN2Q4MjdlOGI1ZGRiZmZhMzRhMDU4ZWMzNjBhYmJlYjZjOGJhMTZjNzcwYWU0ODI2MTM1YWM3ZTRmYWYyMDhkYThiNWZlM2IyNmMxNmZhN2M3ZWY0MDAwYzNkZmUxYjhiNzA3ZGRlNjRiNDE1YzY3MWM0NjE1ZDU2ZTI2NDg5MDhlMDQ3YWM5NzhhMzg5ZTM0NmNlYmU5MjI4ZGFhN2JjZGY1ZTM0MWY3MmMzYzdmZjc0NjcyZWRkNjBjN2M2MzQxNzI2NDUwZmZiZjllM2U3YTE2NTgwZTdlNjAyZjlkZGQzZjM1NTYxMjkwNTJkZTA1OTkxOTA3ZDgxYTg3NDY3ZmY1ODQyYzZlNWRjZmY0NTQzZTI0ZWU0ODE0OWYxNmU5MTA3YTlhYTQwY2JjZTM2N2Q0Yjc2MDQyZDc3ZWYxNzkwYjBhNzcwMWIyZjA0ODczZDI0NWYiCiAKIEhNQUNfRFJCRyBOSVNUIENBVlMgMTQuMyBQUiBUcnVlIChTSEEtMzg0LCAyNTYsIDApICMyCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTM4NAorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzM4NAogaG1hY19kcmJnX3ByOk1CRURUTFNfTURfU0hBMzg0OiJkOWJkOTkxMjhmZTI3NzE5MThhZmM2ZGI2YjI1MTRlZWEwYjYxN2Q5YmQ0NTk5YTIzOGQ5ZDk5YTdjZTE4OTk1ZThkODU1NDJmM2Y5ZGQ4OTkyMGIwZjc5Yjk0ZDdmNTUxZmVmNGEzMzBlOWRlMjRlYjE5N2JjNzU2NzdiYzEzZDgzNjExMDQ5OTdhZjk5ZWEyYzZkYTAzZjRlNzFjODllMDMxOTFiYzVlMzIwZjA1N2FmZWU5OGU5OGZhY2I5OWQxNTE0MmM2MWRkZDcxNjY2Y2RjMzgxNDZmYmMzZWE0ZCI6ImViNzAxYTlkMTE5Y2M2ZGMwZDczNTI1NDA2N2RmZTE2MWIxMDUyYmEzZjkzYWIwZDZiY2MxOWNjMDM4NzAyN2EiOiIiOiIiOiI2N2I4NjIxM2E4NDc3OGE5YTM4ZWI5OTEzYjlkYjg1MDhiNTNhYzBhODFmZjg1ZGM3OGM5NjZkNjM4MjU1ZjhmN2M2M2NlMDZkNGE2NmY1ZDkyMTNlYzJiMzJmN2U2M2NlNWRjZjAxYjU5ZDNiMzA0MzNmMGNmNGMwNmMxNzFkODM5OTUzZGU5MTMwOTNlYzg0NTY3MGIzOGVjYWNkODExNjJkZDczNTAxYjJlNGMyZDlkYzY5Yjk3ZDQ5YmQ2ZDlmNjI1MDA3MGVmNmIzNjAzMDVmY2M1ZmYzOTJkMWFkYWQ5OGQ2YmZkYTY3ZDEwYjcyNWM3Y2M4ZWY2YjRmYzIwNmZkZTE4NzE3MTJiOTZkY2JjMmRmNGYwOGQ3OWYxYWRmN2ZiYjAxYmZkOGYyMGU3Njk1NmVkNGI5ZGQxZDdlNWZiNGY5MjJhZDJhNTI5YmQ4NzE0OTBlNzQxODQzZDgzOWU4NzZjNGI0NzVlMmZhMTQwZjI4YWM4ZDM0N2EwN2IiCiAKIEhNQUNfRFJCRyBOSVNUIENBVlMgMTQuMyBQUiBUcnVlIChTSEEtMzg0LCAyNTYsIDApICMzCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTM4NAorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzM4NAogaG1hY19kcmJnX3ByOk1CRURUTFNfTURfU0hBMzg0OiIwZGUzZmVkM2IzNjNkMjBlYzUwMThkNGFlYWZiMjVjOGUwZTZhYTQyZWU4YjU2ODQzMDQzZjhkOWM0MGI5YmRjOGVkNDI3ZDI5YzQ2OWQ4OTc2YTViNzg1ZDA1MGYzZDJlNWViMjg3YTA2NGM1NDMxMWJhYjMyZGNkNWYyNDA2ODJiYWJlZjU5YzZmZmE2MDI2NjlmM2NlNDU5MGIwNTRlMjU1MDQ0NGYyNDliNTY2NjZiN2IyZmJlYzI5YjMzZDFiMjllZTY1M2UzODhmOWZiNTRiMDA2MzVmZjUyNmRkOSI6IjgyYjZhNDRiMGYzNWY5NDZmYTBmZDQ2Mjg3MzhlNjFhMGJkZDQyMWE4ZGU3M2YzZDJlZmEyNTIxNmM3ODkwODAiOiIiOiIiOiIxZjdiOTUxZDE0N2RkYmYyMWZlZjlkNDg0OTA0NGM0NGI3NTczMDlkYThmMDI0NGY3MWU0ZDgzMDFlMWZkNTBjNWU0NjQwN2Y1YmNiZWQ4M2VhZWZkZjg5ODNjMzMwZGQwYTY3NTY4ZTg2NmIyMGI0OGMyYmM5N2RjNjNhN2MwZDNlYjYwZjI0ODhiMWVlZmRmYWE3YjhkZDQzMTMyNTExYjRhMmNhODBiYzllODI4NTE1ODRlYzRhZTQ2MzQ0NGFhZGQzYzhlNmRiMmQ0NDY5YWQ5NzUwZTE4YTMxMzM3NjEzOTc1YjNmYTA2MjliOWEyMmJjY2IyMzVkMjAxNTdhNDQyN2FjZDYxOTMyNGU4ODFlNjhmNTYxNWM2NWU1OWE1NjZhNzNlNGNlOWQ0ODRmYzViMGIyOTEzN2M0ZjMzOWJlODQ3ODFjYWQ2N2QxN2RlMDMwOTliMWQwM2FjNDUxMDZjMWYyZWI1YjM4MGVjODQzOTJiN2JhNWM5MWRmNGMiCiAKIEhNQUNfRFJCRyBOSVNUIENBVlMgMTQuMyBQUiBUcnVlIChTSEEtMzg0LCAyNTYsIDApICM0Ci1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTM4NAorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzM4NAogaG1hY19kcmJnX3ByOk1CRURUTFNfTURfU0hBMzg0OiJhYmRjMmFjMjRiYTdkOTJlZDlmNTE4ZDk1NzY1MTA5NjlmOGQyMjA3NGJlZDliNzYzOTI5OWQyMTM3NTMyYzUwZmFhNDliNWU4NDNmNDE3NjkzYTJlZWJkMGZmZDNmMjdjMGFkMmQ4YmJmZGI5MTJlZDRkMWVjODUxNjVkNGFlNTc3YTkyYjFhZmZhYjYzMDcwZTI1ZGNhOGJiMWIwMzVjOGJiYzVkM2EwN2I0ZmUwOTQ2OTBlNGE0NWI5OWY5ZTViYjZiMGJmZTgyM2YzYzJhMTQ4NzMyZmQ0M2RiNWU1ZCI6IjhjN2IxOGNlMzg5NjY0ZmI3MmU3NzdlNzBiNTMzY2VkNGMwNGIwYzI5MGZkZDQ1Yjg2YjZiOTU3MDhkNzQxODciOiIiOiIiOiJjM2QxNDIwMDU1ZjcxYTQzMjY0YWI4ZGE5MjgyOWZhMWI4OTM3MzQ2Mzc1MzQ5ZDJlMjU2NzA1ZDkzM2EyMTM1MmRkYjRlZWNlYjM2Y2RlYWIzOGNhZTU4ZGE4MWJjYmU2ZGVhZmVjYTVkN2YwMThhMDUxNGJiYzI4NWY0MzZiNTc0ZmZhYzI1NDdkMjZhM2Y5YWVmMjFiNjZjMWU3MGI0NWQzNzJlNGRjMjI4MTE4MmFlOTQ2NjdlNDQyZjM5ZTFiOWIyZmMyYWVlMDZhYjMwNjA5NWE5MDQ2MTQ2MTNiNTEzY2YxYWY1YTlkZjEyYjk5NmNiZTg4Y2MzYjI1NDAxNzkwMDM0YWQwNjIyZGY0M2FmNGNkYmY5Y2I2ODE1MzhjNzkxODlhODI2MGNmOWMzNTM3ODk1NWYyZWE4NTlmYWE3ODc3Mzg1NDg4M2NkOTRiZGU0YzBmNTBkNGM5OThjMjc4ZTQ3Nzg3ZTNmNzRmM2RiYjk4ZjcxMDM2NmQzMTUiCiAKIEhNQUNfRFJCRyBOSVNUIENBVlMgMTQuMyBQUiBUcnVlIChTSEEtMzg0LCAyNTYsIDApICM1Ci1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTM4NAorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzM4NAogaG1hY19kcmJnX3ByOk1CRURUTFNfTURfU0hBMzg0OiJkMjAzNTNlMTc1ZjRlYmQwZWY1ZmU3N2Y3ZjZmYmY1MzQwYmEwNzkzNDgyOGRkMjk2YzA0MWE2M2RlODQxMDAyZGIwZDIxZWNiZmQ1ZWRhMmJjZTgwYmVkNmY3M2MyM2QzZjE4OTAwYmNjMDI3OTFiYTljYWU2NjhmYzMzZmM2MGJhODRjNmViNDBhZmJiZmZmMThiZTVjNDk2MGNlNTdhZDY3ZGZjOGMxZWFiZTYxYTI5OTg4MWMwZjMyNmY3MDkzYzFhMjMyYzgwNDY3NzcyZTcwN2RiZTc1YjU1NThkNCI6ImYzOGYyMzQ2MWM0NzExODFhNDE3OTMyM2FlZDI0NzI5OWRmMTFjZTE0NWZiYWI5ODM0Yjg1YjNjYjQyYTEwZjUiOiIiOiIiOiI3NmE0OTk0ZWRiYTNkMGQ5ZmZlZTljY2I3ZTEyYTc1ZTc5YzVlYzEyMTNmNDVjYTRjNTBhZDYyOWFjNTMzZTVlNmRiZjU4ZjhmYWMxOTM3NTVlNzRmOWU3YTc1ZWVkZjg5NDcyZTkxZDM5NGUzMmVhZWQ4NmVmYTRmYjJmOWU3ZmU0YmVjMWQ5YzdhMzBmZTliZDE3YzJjZGE3M2QxMzZlNzUyYTliODE4Y2VlNmYxMjYyMDI4MDMxYmMwOWNiODFiODkxNTYxMzhiNTcxZjAzYWZhNjlkZDM4OGE4MDdhOGNiZTljNGRlNjZjYWQ3NjQxMTRmOWE0YTY0MTllYTcwY2NiYmJmZjlkZDc3NGFlYThhMmQ2YjFkMjBkMGE1NzdjNTk5NTM2NjFmMGE4N2I0ZDc5NWMyNjI2YTAyNWQ3MzNmNDNiYjVjZDFkZjM3ZjVjZjU0MmM3YzhiNmJkYTA2MWNmNDY5M2UwMzg0MDYwZTYzMDkwNDE1ZDc0NzBjYjAiCiAKIEhNQUNfRFJCRyBOSVNUIENBVlMgMTQuMyBQUiBUcnVlIChTSEEtMzg0LCAyNTYsIDApICM2Ci1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTM4NAorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzM4NAogaG1hY19kcmJnX3ByOk1CRURUTFNfTURfU0hBMzg0OiJhNThjYTUxNTQ2NTliYTU4ZmMxYjQ2OGM5MDljNjY3ZTFiNTA4Nzg4NGMwMWFiMTVmODZmYjVhNDMxZTk4MmMxYzA0MWJlMGFhMDE0ZmIzMTAwMTlmZmY2NWY0MGZmMTNkNDQ2OWIxMjMyMjNhZTQ0ZjRmNGFjMGZiNjg3N2E3ODkwZjk2OWQzOTA0N2UzOWFiMjM4ODJjZDc4MzhlMTZlNjRiYzM2MWZlMTgxMzY0NzFkZWEyZTcxYTg2ZWYyZDlmOGY3ZTFkMjQ2NDNkN2RmMjkyNDA5ZmY4Y2JhMGYxMyI6ImRjMDU5ODBlNDBmMDdhMDJmZGIxNTBhZjU4MGE3ZDE5NWJhMjZmNGZhNzJhMWZlNTEzY2NjMmNmNmU0ZjY5OWYiOiIiOiIiOiI2YWQ0NTQzYzIxOGNiNmFhZmU2NWU2YTUwYzRmOWVlOWQ1YzdhM2I5YTAxMTJiY2UyNjJmNDlmNWIwZDIwZGFiNzIyNWZkMGFjZmZhMjUxNjU3MjlkOGZiYmEwMzhlYjY1ZjdlNzJmMTM2ZTViYjgyZThkOTQ2OThkZDliNzYzYzM4ZjMwNDFjY2VjZTNiMDQxODlhYWFiZWQ3OWU0ZDQyMTNlMjQyMThjNWZjY2Y1ZjlhMGMzOTAyODc1NTY0NDMxZjRkNjcwZTZlNjBlMWRiYWJjYzQ2NDJjM2VmODk1YzExNWUyODcwMjkyN2NiOThkNTA5ZjkzNDFhYzdhZTJjNmVmNmMyZGM0NTM3ZTkwOWM4MWE5ODA0MDU3YjZlMjRmYTYzZWM1ZWRjZTgzNWU2MjQ5NjlhOTY5ZTJjNDdjNmRjYjdlOWJjYjJiYjhmMzQ0ZDJiOTg1NWE0M2UyNmMwNjA2NDY2ODg3YjI4YjY3ZmZkN2Y5OWQzNzQ4MTJkMTEiCiAKIEhNQUNfRFJCRyBOSVNUIENBVlMgMTQuMyBQUiBUcnVlIChTSEEtMzg0LCAyNTYsIDApICM3Ci1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTM4NAorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzM4NAogaG1hY19kcmJnX3ByOk1CRURUTFNfTURfU0hBMzg0OiI5ZDZlOTlhMTFkNjNjYWI1YWFiYjE0NjJhYmVmNjZiZWYzMWEyODg2Y2QxNzI2NTFiYmYzMGY2NWIxNmZiOGYzYjkzYjUwNDJhOTA4NTEwZDg1MTgzMzA1MzhhMDYyNTM5NTlkYTU1N2QyYjM5MGM2ZmUwYjdhYzZiMTg1OTFlNTc5MWQyNzVjN2UzZDU1ODY5MDcxOWQ1OTY3ZDAyNmE4MDYwNGEzODk5NDZlMmE1NTQ4NmI1YzQ5YzI5ODQ5OTBhMmUxNDgyNGFhMjkyMmU2YTU5ODkyYzVlNmQ5NjlmYiI6ImFmNjMxZTc5OTAzOTQ4ODliODRkODUxOTIwY2U4ODc3OTM0ZTcwNmI3ODA5MDhhMDcyMTFkNDViMjQ3NTg0YTYiOiIiOiIiOiI5ZjMzYmE5MDgzYzdmNDA4OGM5NTA1NjIyY2Q1YjQ5MzdiNzE4OWIwY2JjZGNmMzUyYzU0ZWY3MjA1NzU5NGI4NTY4Y2Q0YjEzYTRiZmViNjEyNjFkMjdmNWZlYmJmMmNiYmY5MDJhOGQ1NWY2YmRmNjY5MjM4YWU4NGI4YWJjNTg4MjY4NDFmN2Y2MmEwYzViZDlmNzQxMjVjZWNiZjhlM2I0YzFlYzg4NjYzMTE0ZTdjMjQ4YzQxY2NlOTJlNzNiMDVlYjNmODI2MTAwYzFiMjY4M2NiYmE5ODVkMmFiNjk0YjVkZTFlZDg2MjQ2Mjg5MTdlYzliYjk3NzMzZjMzNzI5OGMwNDU5ZjE5OGM3YTEzOGYxNjcwZGZhYzBkNThmMjg3YjgyNDRmMDYwNWY5NzQwNmVmNTI4MDk5YWEyZWYyOTBkYjIwMmJhYTdmYjIyMWE4NTIzMzQ0YWQ4MzZjOWEyYmIyNWUxZmYzZmI0ZGMyMGY2OWViYzlmMGZkZDkiCiAKIEhNQUNfRFJCRyBOSVNUIENBVlMgMTQuMyBQUiBUcnVlIChTSEEtMzg0LCAyNTYsIDApICM4Ci1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTM4NAorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzM4NAogaG1hY19kcmJnX3ByOk1CRURUTFNfTURfU0hBMzg0OiJkZjdjNTc1MTlhZTM5MTRjNzUxNzRiMzEwN2I3ZGRhYjk1ZGY5MzZjNWNkN2MyOTZiMWNiMWVhMDYyNDk5MTVjZGEyMmJhYzE5Y2NmMmQ1MjIxMzc5ODlkNWE0MjU0OTgwOTI3N2JhMTU1ZDA0YjMzNTM1MjBmNGI1YzJmMTgxMjBiYjRiODQ0MjEzMGRiNThlOWQ0NmExYTQxZjU2MjdjNDBhNmI2NWE0ZjkwNzU0NjBiNzA1MzIwMmE2ZTViMTJiOWUwN2FlNmVlOWI0OTQ1ZDQyMzVkMGI3MzZlODhmMiI6IjEwYTE5OGIwNTgzMGNmZjJmYjRmNWIwMzE3YzI1ODEyOTM5NmVkYjk0Mzc2OTI5Mjc1MzA5NWI1OGJjOGZlY2UiOiIiOiIiOiIxN2I5ZmM2NDE5YzE3NTM0ZWUxNmFhY2YzMjU1MGNiZjU4ZWExZjA3M2I4ZTcyZmI5YWU2ZTk0MDk0ZTc5N2YyMTY3MDNkYTQyODM5NGExZGE4MjM2ZjcyNWIxOTFjYmVjMTE1MzFhMWY4Nzk0NmM3MGZiMTQ0MGE1NWJlN2Q3ZDE4YzliNTA4NWQ2MjZkZDBjZDliM2JkNjNhOTAxNGU1ZDE0ZWVmNjM2YmViNjk0ZGZhN2Y3ODFlODNmM2MxYjRmZTU1MTlhYjFhNTA1ZDFiZTViODEyNTE0ZjNhMzk4MTQ2MDFkYjEwNGFmZTU3MjYwODZmNmJhY2I2MWMwMGFiODIxMDIzOWIyODkxOTM4ZTk3ZmM1M2RlMDY5ZjE4YTY0Njk5OTk3MjdhOTA0NDAzYmM1M2M2YzczYzdiM2E1ZjlmMzdmMzgwNTYzZjEyODFjZGFhMWI0YmI0YTYzNmY4NDk3MTdjMzA3ODQ4NzQ4MTcyYWUwMTkxOTk3YWJkYTgiCiAKIEhNQUNfRFJCRyBOSVNUIENBVlMgMTQuMyBQUiBUcnVlIChTSEEtMzg0LCAyNTYsIDApICM5Ci1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTM4NAorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzM4NAogaG1hY19kcmJnX3ByOk1CRURUTFNfTURfU0hBMzg0OiIyZTQwM2MzMDdhMDNkNzY2YjYxMDAxODQyZjg1Y2FmOTFhNWVlYzk3YTQ5OTM0NTQ3YjJjZTYzNDExOTE2NDk1ZjNlMTAyZDMzMzI2OWUwNDM4MWJiZjE0MGEyOGEyZDYxZmE2YTVmMjI4NjA3OTYxOWY0ZjRmYWZlYjVjNTIwYzYwMmQwYWMzMTkwZmQ1MDBhMzQwMmU3YzA2NDdhYzc2YzkwMWU3YzU4ZTAxMmNkNmI5ZTgzZDJhOTY5ZjBkMGFlNGUwOGVkNWNiNjAxZmM3MjU5NmE3MmI0ODU0ZjI0NiI6ImZmMWQ5ZWVkOGNmNTlmNTcwOGU0MTkyNGNmMTNmZDVkMzBjY2I3ZGVkY2UzMDYyZGZiYjJjNGJiNGQzNmI2NWIiOiIiOiIiOiJlNWUyMGYyY2IwNjNjMTU4NzU4M2EzODE1MzZhZWNiZjBiMGNiNDQwMGM5OWE3NGJiYjZhYTE1ZjMzOGIzZTY3MTg3MzE2ODY1Y2Y5MGU2OTFkOTk0NjZlMzRiZDY2MTI5ODU1NzUxMjJjNmM3OTg0OGQ0ZTJmMjY4MDFkOThlNDljMDAyZjQwNjMwMTkzOTRmNGIzZWVlOTA4ZjJkNmI1Njc0OWMyNjBlNTZlY2U0ZTA0MzE2NTBhOGJkOTczNTg3OWVlNmM5YmZhYTVkNDRjMDdlN2ZmNjk3ODg4M2MzNjU5N2MzMTEyNjM4NmRhZmJiZTAzNTU3OTgxOTA2OGJiMDYwMzQ4NjI5Zjc0NDIwYmQ0MTFmMmRjODU4ZDQ2ZGZmMGJiNGY3OTk0NmFmOTYwNDZkYTJjMmNiMzJlMGFhZGVkNGViMWViYzg3NDhmMjc3MzE3ZjlmZmI5YWFkYWMxYmY1ZTY2NTRhZTcxMzFkNWVlMGM3NjVmZjNkNDlkOWUiCiAKIEhNQUNfRFJCRyBOSVNUIENBVlMgMTQuMyBQUiBUcnVlIChTSEEtMzg0LCAyNTYsIDApICMxMAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEzODQKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8zODQKIGhtYWNfZHJiZ19wcjpNQkVEVExTX01EX1NIQTM4NDoiNGIxMjQwY2VkYjg0ZWUzZjM5NTMxN2UxNzdlZmNmMDNiMGZiNTdiZTFlMDFlM2MyMDYxNzA4NzdhMDZlYzJjYzA3N2U5NzUxYjRlZWM5NjRhNDQyMmQwMTBlZjE0ODc0NTZmYzE2YjNlNmU3Y2NiOGEwNjIzMDE0NDUzNTI3NDIxNWYwMGFmZTE3NWQzOTRjYjA0NTE4YjYzMGJhNzI1NWFkYTBjNjY3Njg4NTgwMWE4ZjUwM2M1NWMzODg1MGRlNmY3OTA0YjQwY2YwM2ZhMTk1Y2QxNmVhMjk5OTM0N2MiOiI5MDQzZWYzYzc3NWYzMmRjZTE5MDJiOWVmZGM0ODFmNjFmMjkyMjBlY2E1M2JiOTA0MTU1ZjJhYWNjM2IzNzA2IjoiIjoiIjoiNGZhY2QyZmZmMTgyOGI5ZjRhNjNmNjM5NTAzY2Y2NTMzYTRkMjQyZjMxNmVmNzE2OGZiYTQ0YjUyYjg3NjA1NmJiMGZkMDQwZDVlMzMxZDI3NDYxNjljZGM4OGNjZWY3NGRjZjZjNjQyYzFkMWEwZGI0MTMwZjhiZTlmZjg4NTU1ZGU0YzJhN2E1ODI0ZjAwNWNjY2RmYTYwNzRkZjMzODU2NzJlY2E1N2E0NTY3OWQ2OWRmZWMyMzJjYzhiMWJjYTg3ZjZmOWM2Y2FjMmY2MzA0OThkNTI0NDlhNWQxYjMyOGE2ZDJhYzFhOTA1NGEwNjU4YmU1ODliYzI3N2I3NzUwYWI1ZDY0N2E3M2ExNWEwNTlkNzI2MDhmOWQyOTlkMTFmOWZiNDE3YTM3ZGRjMWI1MmM4Yjg4NTljMjk0OWU1ZWJhZTY1MGI5Y2Y4YjRmZDc3MTI4OGU1ODJkZWUzODE3OGIxNTRlNjgxZWFmNzRkNGQzZjM1ZGFmMDBhMzA5IgogCiBITUFDX0RSQkcgTklTVCBDQVZTIDE0LjMgUFIgVHJ1ZSAoU0hBLTM4NCwgMjU2LCAwKSAjMTEKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMzg0CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMzg0CiBobWFjX2RyYmdfcHI6TUJFRFRMU19NRF9TSEEzODQ6ImMyMDI3ZDhjMDg0ZTJjNmZjNWQ1MzU3MjYzMTJiYzYzNjIzNzI4NzJjZDM3YmYwN2NjMWMzODcwZjNiNTlhOTcwYzYyYjg0YTEwZDE0OThiMmUwMjAyN2Q4NTRmZDg0ZGQ2MTVlMjllN2MyMDQ1Nzk5Njg1NjkzODZiNmYwODM5MzMyMmM0ZmIzNmRhNDM5OGVjNDg4MWNhOWMxNzkwNWI3YjJmYTI4NzIyYzk4ZDQwNGU5M2ZiYWFkYjE2NTQxMWQ0MTI1NmEwZGZjODA2YTE5ZGYwZjUyNjU3MWM4MGYwIjoiOGM1YzkzNTgzZGJiYTAxNjUzMWFlY2MxZGE3YjAxMGI5NTU5Nzg1YjJlOGNmNjYwY2UxNzAyMmY4ZDg2YmU3OCI6IiI6IiI6IjU0MDc0Y2YxODQwNDBmNTc3MTZlOWVlZjgwZWQwZTAwNmNkMDI5Yjk5Y2E1NjhmZDc2MzljNGMxYjBmNzQzMTkzMzUxNjgzMGY1Zjg3YjE1N2ZkYmJiMmFmN2FiNTdmNmZhYTI2MzIzZjA5NmM4ZTg2MTM2ZTQ5ZDgzMzY2NWE2Y2IzYTIyZjdkNWQzODI5MGMyZTlhMjNjNjJkZWE2YzUxYjk1ODQ2MGIyNjM1NjZjNWMwZTRiZTlhZGNiMWMxMjNiNTU4NzlmNDA1ZjExYjNjMzRjMjQ4NTJkMzNjNjRkNjU2M2VlNDZjYWQxNGNlMDhkNTkxOWRkYmZmZGZhYWQwYmVmOGQ4ZWQ5OTc0ZjFkOTU5MTdlMmIxMDhkOTUxOWIxM2M0ZjY5Mjk0MjlkMmRjNDRlY2FjZTc3OTk4MzlmZmNhZTAzNTkwNGI1NzZlNzFlOTJiMGE4OWYzOWUzYjM0NDRiNzVlZTA3MDU0MTljM2IzNTMzYzc5MzYwNWViNiIKIAogSE1BQ19EUkJHIE5JU1QgQ0FWUyAxNC4zIFBSIFRydWUgKFNIQS0zODQsIDI1NiwgMCkgIzEyCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTM4NAorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzM4NAogaG1hY19kcmJnX3ByOk1CRURUTFNfTURfU0hBMzg0OiIwMmVmNjQwYjlmMDg3ZmE0ODQ1NzkxOGQ3YmQ2ZTkxMGQ3Mzc5YmRkODllMTU0OTExOGVjNjc4ODBkYzNjNGJlM2FkOTUzOTdiOGZjODhiZmNlZDVhYTc2OTQxNzE2YmY0YzI2Njk2ZTk1NDBkNzU5YzhjNmI4NjAzZDVjNDBkZjI2NzA1NmM3OWJkOGEzNDk3Yjc3MDUyZTQ5ODk1MzQ5M2ViODUzYjU2YzQxZjMyODZjMDlmMWVjODg2MzdmOTVhMWNiN2U2ZTBlZmQzYWNiOGE4ZmE0ZGU2M2QxMDcyNyI6IjM4ZTY2NGI5MzBmYjA3MjExMmU2ZDQ3YmZjNTUzOGIwZDQ4NjcyYTEyNzY5ZjNlYjg2MDI0M2JiYzFjNWRiNzUiOiIiOiIiOiJjMzk5ZThjMzlhYjE3NGZhOGNhYmI3ZTczODQ1ZDhkNDM0ZGNlYmMyMTA2MmVkYzY5ZDAyOTI4YjBkZTQ0NzE1MTc0OTYzNjViYmQ1OTA2MmE0MzQwODIxNWY1YjBmMzU5NzFmNGM0ODA3NzYyMzg2MDIwNmUwZTZhZjhkZTc1MWU2ZmU0NWViNjY0OGE2NmU4YWM1ZTYwMzA0M2M1MzY1YmUzMDE1YWY4NThmYTI3MDljNmM3YjFjZDIyNzAxZGJiZjRlZjI3ZmE0NWU2ZDdmOWRmNGU4YTU1ODUxN2EzOGUyNmJkZDgyOTYwZGI5YTkyYTBkZWVlOTg2NTdhYjUxNDkxM2YxMzRjYjkzNjI3NTZhNzhhZTRhZmVkM2E2Yzg5ZTg2MzQxYThmYjIwYjVjZGZjZDU2OTMzMzYzZjgzZThjNTVjNjlhZGJmOGU4ZDcxOTliYzRmOTNiNzJhZTFjNGQwOTM5YjU2NGQ5OGU3ZjA1MmM2NmUxZTA5ODhjYTUiCiAKIEhNQUNfRFJCRyBOSVNUIENBVlMgMTQuMyBQUiBUcnVlIChTSEEtMzg0LCAyNTYsIDApICMxMwotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEzODQKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8zODQKIGhtYWNfZHJiZ19wcjpNQkVEVExTX01EX1NIQTM4NDoiMmYyODBmZmUzMzA2NzY0ODM5ODk5ZmFhODkyMTMxMzlhNDA0NjIwMzlmNGQ5YzU1ZmVhZWY2NzI4YzI0Y2M2MzY4MTkzNTdmNmVhNjViYWRjOGU0OTNiOTlkNWFmMWQ5OTVkMTRkODFlMzk4MDI3MTE5NzdkMGExYzU3ODNiZmUzYzI5MGJjNDY5YmI5YWY1MjBiMGZhYTA2ZjIzMGZlNmM0YmEzODA0ZTM5ZTMyMjZmMDczMWYwOTU3OWUxMDVkNzI2YjA4OWQxYzM3YzcyZTNmYWViMzM3NjhkM2YyMGUiOiJlM2Q5OTg2MGU4YjFlOTI5N2M2MGIxNzkwNGJlODUyNWJlODMxZDcxZGJkM2Y0NTRmMDg1ZDE3NThlYmU3MTYwIjoiIjoiIjoiNDU0MDBlYzcwMGE0Y2Y4MzA5ZmJlYTk0YWE0ZmNiZGQyMmM4NTllMGY3ZGVmYTc0NjA4NWEyZjRkZGI5ZGIxNmVmYmIwYzJmZmY3OThjOTlmZjRlOWUxMTk4NmY0YzMzMGYzNjU4ZTM0YTE0NmY4ZDkwNzE0NjcyMjhlM2IwZWE0ODZjZmJjODFkYTNlNzM5YTMwMWZlNTFiNjIwZDdkMjdmZTlkYTBlNGI4NzVlZmUzYzJiZDBmZGUzMWY2MDgwMTVhZDcxY2FjOWM5NWJjZTMzZTUxNmM2MmZjNDVhOWZjODVhNzhjMTQyNDE2ZDdmYmZmM2E4MzYwMmRjY2UzYWRkNjMwMWNhNmI5YmU1NjVlM2NmMDZhZDZmMjI4NTVkNTdkOWMxODRlZDcyMTRhZGMxYmIwMTRhMWI2ZGFmYjg2OTg5MjgzZmEzYTRiZTEwYzQxMDQ0MmQ3NjFjOThkMmQzZjk0YmIwZDk3YmExZDVjODk2NmViNDdiMGZlNmVjIgogCiBITUFDX0RSQkcgTklTVCBDQVZTIDE0LjMgUFIgVHJ1ZSAoU0hBLTM4NCwgMjU2LCAwKSAjMTQKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMzg0CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMzg0CiBobWFjX2RyYmdfcHI6TUJFRFRMU19NRF9TSEEzODQ6IjhmM2RkYzQyMzBmODMyMGJkMThjZjA3OGMwNGM2MmUyNDhmY2MzMjY5ODAzMDExNzQ2MTdhOWU1NDM1MWM2NjdiYTRjMzFhNGMwZTdkYmQ3MzM2YzI3YzBiOGEwMzRmNmZkOTQ3YjBhMjFlNTgwZTZjMmRiZmJkNDRkMDFmNWZiNGE1MWRjZDIxOTlkZjlmMTgwM2YyNGM1ZTc3NGYwNDg4MTUzMDJlMDE2YWFkMzMyNTRkMzA4YzU0NTdmMzY4OTY1YzE1YjYyMDRlMTkxYzJhMjUyZTRmZTg4ZGZiOTc4IjoiOWJmZTliYzA1NWIzMjE1NTYwY2QyODU1NTMzNzJjNDdjY2E0MjJmY2E1NzRjMGQyMmQ3Y2U1ZjJkZDQwYjA4NCI6IiI6IiI6IjM0ZjU1MDIzMWQzMWMxYjNhM2RiMzMxZDM0MWFkYTNiOTg3MTIwZDk0ZTQzMTgzMWVlYTY3ZThkMjA4ZjljZjE4MDA1NDlkNDQ1ZmM3YmVmYmRjYzI0ODhjYzdmNDM0MDU2MGQ1NzRmY2QyMzk2ZTllY2M5YTIzMmYxMDE1Y2ZiMjZkYjQ1MTYyM2ZlNDdlYzhiYWNlZTE3NTY1NzNlNzRlNTE5YWRjNjJiMjNjZTg2ZmMxOTFlYTVlMTNkYTljN2ExNDQ5NjQyNmM2YzUzZGZhN2M3Y2NkYjY3ZDYxNjRkYmU4OGNiYmU3ZjQ4ZDQ5NzE5OTMwMDNhYjI0ZjNlZmYxOGJkNTJjMjY2MTk5MmU4ZjhkYTkzYmZkZDI4ZjAxZmMzMmVkYjQzOWFkMTMwMzUyNDYzMDg0MDQxZTk4NzFjNDMxYmEyNmM2NzZlY2Q3ODEyOTkxODMzMTEzY2JiZTY4NzY1MWU5M2FlYjIyYTZhNDRjZmZjN2EzZmIyMTRiMiIKIAogSE1BQ19EUkJHIE5JU1QgQ0FWUyAxNC4zIFBSIFRydWUgKFNIQS0zODQsIDI1NiwgMjU2KSAjMAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEzODQKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8zODQKIGhtYWNfZHJiZ19wcjpNQkVEVExTX01EX1NIQTM4NDoiOGIyODVjZTZiNGRhNzBjODNmZDcyYWFiMWI0YmU2MjEwMWJmOWIyOWUxNjg3MjZlYTJmNjcwYWFiMGRlYWVmYzVkYTM0MDRjNDk0YzYwMTllYTMzNjc5ZTM3Y2VjMzA4ZGFiMTNlMGNiMDYwZjY2YzFjODNmYzZmYmE0NjQ3N2QxYTNjODAyZWRkNzU5NGRiMGIyOTdkZWRiOWNjYmM4MDBjODE3ZjA1NjU4ZmI5YjRjOTk5MzhhZTIxNDAxNjBjNGExNmQ1NDg2MzRhMzUzYmMyODVjYjM4ZDBlOTMyNDMiOiI3MjNjMGYyODdkYjRhZjI4NWMxOTVjZWJiMTEwNGExMDZmMjJlOGIyNDNmZGNkMDU2NjIyOGFiNWYyMjdhOWUzIjoiODgxYTE4NzRjODAwZGIwNjhiNTkxM2QxOTUwNThkMDcyNjQ1OGRlMzc4MmZmNTMwYWYxYTc2MWY5NjI4NTQ3ZiI6IjBjMjdjZjI3MWJkNzkzMWQxODdlYzZmNTYwMzg1MTk2NzQ0NjhmYTJlN2U2Zjk5NDkwNGM5ZjFhZmEzNDY5MzkiOiI1MWUwNDJkZDU2YTE5MzkwOGM5MDE4YzI1ZjFjMWE4YjVlMjczNGIwNTVjM2I3ZmRlNmE4YmE5ZWMyYjk1OTM0OWRmMjkyOTVhYmIwYTI0YjQ3MTVmOThkMzFkZTBhMzY5ZTYyNjJjMmIyY2Q0OWM1NDYyYjdhZTI4NGU5MjFmNWFkMmVjMDEzZWRjMTYxMTM0M2MyMjg2ODNmNDE3MGYzNGE3NTg1NGIxYjY1NmQyMjZlMjk0MTcyZDQ4OGMxMGE0MTVmMDlkZWU3MDk4NGI5YzQ5ZThkMzY4NjMxOTIzMDFkMTc2MjE0NWUwZDllOTRlOTliZDMwY2U4NDkwNDM4ZWQwNTBmNDE4Y2Y0YmEwYjA3ZmU5MGE4MmQxY2NmMzg1NzhkOTllZGYwNTE4YzRhNzU4YTE5OWRiNGQzNTMzYzRkYmM1NWIxZGExOTg0MGI4ZjM2NWE1NzRhYTAxNjQ3ODE5MDMyZGMwYWQ2NDEzODhjMjA5M2ViZDRhYjVkOTkiCiAKIEhNQUNfRFJCRyBOSVNUIENBVlMgMTQuMyBQUiBUcnVlIChTSEEtMzg0LCAyNTYsIDI1NikgIzEKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMzg0CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMzg0CiBobWFjX2RyYmdfcHI6TUJFRFRMU19NRF9TSEEzODQ6IjViNWM2NzBkM2UwZTk3YTIxY2ZkNWJjM2QwMzhmMGMzZDI1NzhjZjMxNDdmNTU0NWU1MTE4YTA0YzRlYWM3MjdiNTA3MzQ5MzllMmZkMGFiYTcwNDkzMmNjYWFjNDJhZjMxNjUyNWUzZmM1ZjFkZDIyNDEzMWQ2NWY4ZDQ0ZmY4NDIwODkxYzBhZjdjNzhmOWNmNzY2MDk3ZmJmMGY4YmZkZDEzMWRiMTgwMTI3NWMyODA4MWU2MDYzYzBjNGQ2MjQyZjk2ZTQwZmM1MTM2MDgyODlmMzc4YmM0ZjE4NTE4IjoiNGNiMGU1OTBhMWQ1NzViNmEyZGY5Y2IwMjQzODk1MjYzYzg5NGE5OTBiNjc5ODQyNGJlYTllZjE5OTc2MWQwOCI6ImZlYWJjZWNmMDY0ODY2NWIwOGE3YzY5MGFkZDZmZjc1NzQ0ZGUzOTE2ZDU1NzMxNDVjMzU1MTc4MDg2MDViZWIiOiJmZTgxY2Y4OTc4Nzk4MzExZWU2ZDFjNWQ2MTQ1YjM4MzJkOWFkMWExMjY2ZmRhYzBmNGZhMjMwYzYzMWU5YmEwIjoiNjJhYTVlOWI4YTA3YmVkMmE1ZDNlZWYwYzczYmJjODQxYmI4Y2JmNTQ0ZDMyYTI4ODk4MDZiYTUwMWM2NzY4YWNhOThjMTliODNmZDRmYjJjYWJmMTIwYzA1NzE2YjllYWM5Yjc3ZDU2MWZmZGQ2OTY4MjMwOGY4MGZjZjFjNzg0MDlmM2IyMTc0OWJmNzFhYmRiMjA5NjYwNzE2YTM5YzI1NjJlOGFlMWIzNDc4ODI4YmYzNWVjOWQzZjk3MTJkOTVmNDlhMzZiOWVhZGRhZjFiMjQ5ZjAyM2MzNmQwOWZmMWI2ZjNkZjZkMTBlNGUzMzY3NjNlZGVmOTUwMTgyN2Q1MTcxYzUwN2VlYzQwNWJhZTUyZDU2ZmQ2MmY5MGY1YzU4YTJmMWE3MzEwNTMwZGYxNWNhNmI3ODQxYTI4NzFhMzdjYWU1ODNlNmIzODg5NzhjMTE4Yjk2MDA4NDBmNTU0MGFmNTI5YmNlMGEyNGRhOGY5MDZmNjAxZmMyNzBmIgogCiBITUFDX0RSQkcgTklTVCBDQVZTIDE0LjMgUFIgVHJ1ZSAoU0hBLTM4NCwgMjU2LCAyNTYpICMyCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTM4NAorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzM4NAogaG1hY19kcmJnX3ByOk1CRURUTFNfTURfU0hBMzg0OiI2NGNmNDdlNTJmNzU4ZGY4MDJjMmIzN2E0ODQxYzczYTMyMjg3MzhkMTRiNDM5YTdkMDJiMTNmYTMwMjQ3MTVjNzQ0NzIxZTQ5ZjI1YTBlNzNlODIxZjY5Nzg2ZmUyZDkxZWMxY2NlMWQxY2JmMmRjYmU1YmRkMjM3MWMwYTVkZjA1MDg0MWI2ZjA3YjFhMmMwZDA2NGJjNWUwNmVjZjJmZjk5MDQ5MjhmZWJlMGJmYWYzNjI2ZGY1YmZiNzlmZWUxNDc0Y2M4ZGZjM2FlMjY4NTcwZGYyODExYmMzYmEzYiI6ImMzZjBiMDQ3MWQ1MjczZjQwZTc0Y2NkNzE3MTIwNzFmYTQxMWI3MmIwZjVhOThjOWVlYTlhNWY3ZjE3Njk2N2UiOiI0ZGY5MDAzOWJiYjU0ZDg3NTNiMTljY2I2MjUwZmZjZWI3Mjc5YzA1ZjZkNjliNWM0NzgwMWM2ZmRlYjFkZGY4IjoiMTgxZDEyYmIxMjZlYTg0MGJiZjllNmZmNWU2OGY4ZWY1M2Y2OTA3MWQyMjNiZmY1OTNhNjNlNGUwYzY1ZWUxYiI6IjhjZWM0OTBlYmUwYjQ4MzdmMDQwNjYzZGUyOWUyYzZkYzgwMWQ3OTUzY2IyNDE2ZDI0NWVmNjYxNzNlNWQ3YmFhZmJiNzdmZDJjNWNlNjliNGI4OTk1YmZlNTFmNWYzM2NmZmZkOWU5YjEyODRmYjg2NTdiYjdhM2MyNmY1YWFjNTAwY2M3ZDM3MzdmYzgxNDE4Yzk0ZDNkYjFhNjNmNDkyMmNhNDk4MDNjMDRmZGJjOTQ4OGUyMWQ5YzRiYzM4MWM0OGJkOWY3ZTVjZDFlZDZjNmZhOWU4ODllNDYzZGZjM2EzMTM4MTIyNDVhNjZiZTIyMDI2NjcwN2E1MzU4ZTI1ODA3Y2NiMTFmMjQ3ODBlNWVmODJjODRhODgwM2Y3MmRiZDIxZjU1ZDk2MzYyZDdjZDhhYmJmZDlkMjFmNGUzZGZhYzMzMzI2YTRlNTM4NDc2NTA4YWZkODdlMDMwZDkyMzI4YTkxYzkxZmZiMTZiMDU0NzQwZGMzZDBhMjEzMCIKIAogSE1BQ19EUkJHIE5JU1QgQ0FWUyAxNC4zIFBSIFRydWUgKFNIQS0zODQsIDI1NiwgMjU2KSAjMwotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEzODQKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8zODQKIGhtYWNfZHJiZ19wcjpNQkVEVExTX01EX1NIQTM4NDoiNjkwYThiZTkwNGM3NWU0MTM0MmM4ZTI1NDhhYmRlMmU0NjU2MTJhNjMyNzEwMTc5Y2NiOWMxZGFiNzZjNDYxNWJkYWVkYTE1ODc3NzI2MzhhNjE3NDc3MzhiOTZjZmM5NDg3OTMyNWQyY2YxY2MwMjY5ZDg3N2VhYjhhYTIzM2JhOGQ3ZjFmZjQ0ZTkxMThhMTI4YmNkOGNjNjg3ZWVmNTg5NDAzNDNkMjdiYTFkODAwYWVkOWUyZTkxMWE4YzgzYjg0NjBmOWQ3MmM3YjkyODUyY2MxNzhkM2QwYmFmNmEiOiI1ZGQwMzFmYjJkZjU2YzUxMGIzY2MzYzAyZmRjZjZjZjNmZmE0YTg4MWU3NDc1YTg2MzEwNzNiM2VkNWUzYzYyIjoiYTBhODYxMjM4YjJiOWVhMDM1ODJlYjQ3MDNiYzMzOTIxYjUzNzZjMjcwMDQ3MTBkNDE2ZmY5MjFkNmU2ZmM2MCI6IjNjZWY2NmY3NWFhNjgyYWQ1NDMwYmRmMGYwMWRkMWYyYzM0OTJmY2FjYzZmODBhYjM1MWNmYWNjMWM2YjZjZTAiOiI5MmIzMzdhMzM2NDA1OWFjZmNhZWY3ODlhYzFhZTA5YzllZDA1ZmRmNjlmNWQ1ZGE3YTFjOWI2OTYyZDNhM2M3MWE0MDQxZGMyMzRmN2JlNThmZGJiNzI4ZjhmNWZiMTA0MDQ1NThmMjFkOWI0YzgxOGZjYWRmNWQ2YmFjOGJjYjA0NGU1YjJmYmQyNmVlMDgzOThkYzg5MDRjMjcxZThkM2QxODRiYmY2MWY3N2M2MmZkM2M4ZjFjYzFlZTJmOGM0NjIwYzUxM2YzYWJmNWUzMTJiNDMxZTg2MDhiMjljZGY1MjhkODkyZmYwM2JjMGE5Y2JkMjAyYjlkYTFkMDUyYWUyYmMyZGQ4NzIzMTk4YTFiMzAxN2FkZTI4MDNjM2RjODczM2FjMzNkZGJkY2VmN2E5OTQ4ZDY0ZjcyZGEwNzE2YjMyZGM2ZWVhMjI0YmQ0OWE3MzQ5YTFjMzJlOGUzMjVhYzExZTVmYWQ4MzUzY2Y4NWQ5ZWI0YjcyYjE5NTQiCiAKIEhNQUNfRFJCRyBOSVNUIENBVlMgMTQuMyBQUiBUcnVlIChTSEEtMzg0LCAyNTYsIDI1NikgIzQKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMzg0CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMzg0CiBobWFjX2RyYmdfcHI6TUJFRFRMU19NRF9TSEEzODQ6IjBlYmE3YjA2MzA5ZjBkYzRlMmJmYWJlYTU3ZTFkMDFhNWEzZTcxMTM5ODMyMDkyNTY0NzAwOGFiZjE5Y2FlMTk0ZWZiZmY5Mzk2OGMwYTdkMWM3NjIzZWUxZTM5ODdjZDk1YzNkYmQxYjJiYTk0ZDBiMmQ0MTZmZTJmMmY2ZmFlYWI0NjY0NmEzNzhlOTMxYmI1ZGFhYzA0OTMzMzEyOWNlN2UyMGU1MzExN2EwZjY4YmFmNGM4NmEzZWU1ZTc4N2IwMmI1M2IxZTAxNDA0MzBlNzdjYTg2ZjI0MmQ3ZjkwIjoiNjlhZGM2OWUwM2NkMTEzYzM0YWU2Yjg5YzdjMmZjZmJlOTg3ZTQyNmRhODY1ZjdjOGUwNTJkYTRiYWRlMzQzYSI6IjcyOTQ4OWNjN2JhNGYzZjk2Zjc3ZmYzNjVmZDUzODBjZDgzY2M3YjE3YjE1MGQzMjdjNWI3NjMyZjFjYjA0NjAiOiI1OTg5MmZjZjk5Y2U3MTk4MTk3NzQ1MzllZDRmMTBlZGI3Y2QzNWNkNjY5NjkxMzdhODhlYmU2MzM2ZGE5MGY5IjoiNTY1ZTNlMzkyYTlmMzY0ZGYwYjU3NWQ5NDQ0YWFjMjYyZjU4Y2UxMjMxMmQ1YWM5ODMyYWU2MzUxYjZhYWUwMzk4ZTBiZWRkMzA3NGY1N2JkNGU5ZjBlODlhNTBkNjI3ZWNmZTExZmU5YWVhMDlmY2U1NjNlYjM0ZWZkMjc2MTBhMzI1NWY4MWY5NTNiYjNmMjIyYjE1YzAxOWI5ZDgxMjE1MGY3YTFmMTkxMjY5OTRjNTA1ZDljZTVjOTQ4ODgyYTFmNmM1Y2RiYzcwNTA0NjFjY2RiYmI3YWFlNTk3ZGFiNTNhMTJlYTZiZmFhNGQ0NzEwMTg4ZDY5MGZiMGEwYTM0ZGY3ZmI2YmJhOTQ5ZmQ2YTg1NjVmZGVkOGU0ODMyZmY3ZjZiMDhhNjUzYTcyYjhiODg3ODJiOGQ3N2MxZjIxN2U4NDg3MTYzZmRiZGRjYzg4YTgzZDhiZGFkNDc5Y2E3NWZkYmNhZjAyMjUwZGIzOTUyODQ1Njk0MjExOWYxIgogCiBITUFDX0RSQkcgTklTVCBDQVZTIDE0LjMgUFIgVHJ1ZSAoU0hBLTM4NCwgMjU2LCAyNTYpICM1Ci1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTM4NAorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzM4NAogaG1hY19kcmJnX3ByOk1CRURUTFNfTURfU0hBMzg0OiI5ZGVhNWYyNzExOTNhZWY2MWJkNzJjNzZhNTgxZDY1ZWFkYzgwMDJiMjU4YTRkNTQ4YzdhZDFjYjU4N2E1ZjY4MWU5NzA5ZWFiNWUxNDY4MzNiMDFhNzlhMzRjMzUyYWE2NDJhN2EzNzY1OTUzNDdjMDIwM2E4YTA0NTZhZjRlOTg1OWFlYTYyYzg4NzE2NmIzNDgzZTBjN2FjZGQ1Yjk5YTFiMWE0NjZkYzA3MDljYzZiYTEzM2FiZTI5ZWNmM2YzMTUwZDY2NGQwNGJhZWY4ODU0ZmQ4NmE1ZDhjYWIxOSI6Ijg5NWU1MDM5ZWViM2VhMWQxOTc2MTRhNjgzYzg0ZDc3ODBhYzg3MjQxOTJiZDZjMzVmZTgxMTM3YmMyM2U0YmQiOiI5ZTg2NjlhNjdiZjgwYzY5NTg4OWE3ZTg3NWE5YWQxOTU0YjkxZTRiZGRkMDg0ODMxM2I0ZWZiNGIwMGIxNGZjIjoiMmU5M2E4Yjk2YWUxOTY2ZTJhMDUyZGIwZDVjMmQ1Yjc2Y2Q3Y2QyMzQ5NGJiMTE3MGEzM2E5ZGRmMzliMjFjZSI6IjcxYTBlYThiOTg4NGU5NzlmNGVkNTQ2Y2VlMzY4OGViYzM5OWI0MWJlMzg1NzhmMTViOTlkOTYyMWRlMGRhM2U2NzExODJmNmRhNjEyMzM0ZWRiOGQzYTZkNWUzNGMyODcyZTI3Nzk0Mjg1NDM1MDUyNmMzZTAwMDgzNGJiZTE4Y2Q1ZjJmMzM2YmNmYWJiNDJjNGFhZWIxOWI4Y2VmYTNmNzA2NmE4OTU5Mzk2MGZhYmJhMjQ0ODEyZDE1YzVmYTdhNzI4MTA2N2M3ODk3NDUxMjdlZTJiNjNiMTQyMzcxMzZjNTQ4NjRiZjg2YWI3YzM3NzQxNGE3OTMzYjgyOWZjMzA1MmU4YzI2YzY5ODQ1OWE4M2IxOTkwYzA5MzMwNTM3MmFhNjA4Yzk2N2JmZGE3MTllOThjNGMxNzc3NjRiNzJkMTg0NTg2ZjdiNjNhOGU3NWY3OGM5ZTVlMWRjMDQ1YzNlYjViMzBjNzE0N2M2OTEwMGMyY2Y5MTBkNGYzYSIKIAogSE1BQ19EUkJHIE5JU1QgQ0FWUyAxNC4zIFBSIFRydWUgKFNIQS0zODQsIDI1NiwgMjU2KSAjNgotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEzODQKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8zODQKIGhtYWNfZHJiZ19wcjpNQkVEVExTX01EX1NIQTM4NDoiMmI0Yzg1YWFjNTI4ZjVjZjQ0ZTkwMTg3OTVhMWU4ZjgxMDIyMGNlMzE4YWExNzRiZWQ5ZGIzNzI2MDJjMDBmNjhhYzMzNjI1NzM5ZjI5OTI0MWQxYTgzODEzNzI1MzdiYWMzOTI0MTFhMWQ2ODQ5YWE2NjEwYTE3Nzc0M2FmZGY0NWNjNTI0ODM4ZmFkZjFiNWZlYWFhOTk4M2NhNzlhNDUwOGI1ZTRhMjc1NTE0ZWY0YzA0YzIzM2MzZGJiY2EzMmEwMGQwYTE2MjgzMjNiOTFkYWNiZTQ5OWMxYmE5MjgiOiI3OTlhNGIzYzlmNjJjMmY2YWE5ZTkxNjA0ZTc0MmRkMDZmZjlmNzdiMTVkMzc5OTY4NGUxZGZjZjAyOWQ4MDdiIjoiMWQxNWY1OWNiM2UxMDJkNWZmNDdhZDRjMGFhZTEzNjMxZWM0ZDMwMGRlNDI0NzEzN2FlYzViNDNlNWFhNGY3OSI6ImY0MzgwMTg1MTk0NmY5NzIwODkwOWYxYWQwZjc5ZDY1NzdlZWRhNzAwNjc4ODZiMjcwZjU1ZDYyNmQ5NjZmYmUiOiJmMDVlNTAxOTI1MjhiYTExODVjYjk2NDMyNDE0MWMxZDE5NWY2ZTI2YzQyMTY0MDUyYTdiNzI0NDc5N2MzMDg0ZDQ4YmM1ZTZlMWEyN2U2NDU2MmNmMmZhMzZiNGRlMzAxMzJhMDgyZGUyZjkyNzA1OTczMWQwODRlMjA0MmViNzcyMDkzMmFlOGUxNzQxZjA1ZjRjNzUwNzk1ODY5MjRjYzQzYTZjZjNmNTUyNWUwMzdiMDg5Njc0MTIxYzI3NDFmODM2MzcyZjIxOWEzM2JmY2Q5MTA4ODRhYmIxNjZlZWVlZDE4NDA2NzI2NjNlMDQ1NWIxOGJjN2M5ZmNmMjA5NjdiMjVkZDc3ZWIzN2UwMGQ4ZmM0MGIwNzg4YzA4MjgwYjBiZDg4NzhjNTA0ZDk4MmRiNGQzZDI0NzZmNWZlNjc4NWIxOTU5ZDFiZmEyNzYyYzAwZWZlNDM2Y2QyMTdiNmQwMWFkYmY3ZGEwOGQyMzI1NGYxYmUxOTkxZDIwMGEiCiAKIEhNQUNfRFJCRyBOSVNUIENBVlMgMTQuMyBQUiBUcnVlIChTSEEtMzg0LCAyNTYsIDI1NikgIzcKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMzg0CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMzg0CiBobWFjX2RyYmdfcHI6TUJFRFRMU19NRF9TSEEzODQ6ImE3MTZhZjllMDU4ZWVkYmU5MzdlZjc5ZWUyMWNiYWY0YWMxZWQwZTJmNDg2M2VlZjRjYTFlM2U5NzJmMzMzMjZlYjZlY2ZhN2JjOWJhY2QzZDkwMjE1YTNkYjg0M2IyNDM0M2VkZjdhZGE5ZTQ0MGEyMDZkZjdmMzhmOGNiZDFkMzgxNTliODUxMWYyYTkzZDFmMGI1YWNlOGE4OWMwZDgyM2ZlMDAxNjU2YzNkZGU2NTk4NzRkZjg4ZGQ2MDA1NmNlZDI5M2NjNDlkNjRhNzFlZTZiMjMxOTljOWIyMGU2IjoiNjQ4YWEzMGNiMjY4N2Q4NTdkMzA5ZjcwMmY2ZGFlMWYzMGVkYzgyNDQ5M2Q2ZTgzYTllMjZkOTRmMjg5NDhhMiI6IjM5YzVhNjUxNGYzZDM5OWFjNDFiMjY0MGZkNjE5MzEyMzMyZmUwNTNhYmYxYjJhMTk0NzJhNThjMjgzNDUzNDciOiJjOTEyYTFiYjg0ZjdhZWVlZjc5ZDczMzQ3MDk3ZTA5ZjZiOGZiN2VjNTkzMTc2Y2ViYmJiNTZhZjg2NmJjMzA5IjoiNTM4NzY3NGNlYzUyZGEyYTk3NDNiMjU1NmZhOTg3NGMwODY2ZTU3OTA3OTk1NGNiMzU3ZjE3ZmMwNjljMmUzNDVjMWNhODAwODEwNDBkNjIwZmJhMTUwYzIyZWIxYjhiMmM3ZGYwODJmNjM3ODU1YzM5NmFkNjQxN2ZkMzgzZjhlOTNiN2JkOTE2OTM0MDhlOTUxYjc1NzIyNjljMGFlNjViZThiY2M5ODQ0ZjlmZDg0MDFlNjhmNmZhZmRjZTE5NTE2MjE1NGIzNGZkZDVkYjg1NTlkYzExY2ZkM2NiZDNkMzkxYTQ1MDY1NzYxMzcyZjYwYzUxODJmZTRjYzE2MjMwNDA2MWY4NmU2NjYzMjZjMzMzMjAxMGZkMzg4NjI2Y2ZhOWNlMTI1Mjk4MmNhZTdiNmViMWI4MjA4Yzc5YjdiNjg5YWFlOTA4NGZkMTgwZDAwOTYyZmE0ZWVhNzlmNjEyYWI3ZWM1ZmI1MTM5NGY2ZjQ5ODUyOGFkNTg2MGU3IgogCiBITUFDX0RSQkcgTklTVCBDQVZTIDE0LjMgUFIgVHJ1ZSAoU0hBLTM4NCwgMjU2LCAyNTYpICM4Ci1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTM4NAorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzM4NAogaG1hY19kcmJnX3ByOk1CRURUTFNfTURfU0hBMzg0OiJhZjQwNWI0MmY4YTY3YzM0OWJjMTBkNGQwYjk3ZjU2Y2NlNDMzZTFkMzRjZWJjYzc1YzI4NTAwMTBkMjBjZjc0ZjYxYjIzZTFkMmY5NjRhZDZjOWE4ZDY1YzlmODc3NDlkYTI3OTkwMmQ1YzMwZmI2NzIwN2Q3MmJlNTU0NTEzMzdmMzRhYWE4ZTU5OGI5ZWY1NWZkMzYyMjRlYmVlNGI1NTI0YTkzZjE1MTNmYzIxZmE5ODRmMGE3NmMyYmNjOThkZGYzOTgyM2QwYTg3ZDUwMWIzNTE1ZTNlZTlmZDRkNiI6IjFjYmQ5NjNkNDliMjU1M2E5NzExNjg3YmM1MDc0M2Q4MjA1ODgwNDljZjA5N2MxMDA3MzlmODU3YjM5MjhmYzAiOiJlMGQzMzZlYTU1MmE2ZGJjMTMyZjE5NGFjOWFiODBhMzRhNTRmNGQzMzFhNTVhMDcwZGRlNjYwMWQ2ZDkwODRlIjoiOTFlODgyZGFhYTMwNDg3NGZiMGMwNjM3MTg5ODRhYzUzZTFmMDcxNmNhOGM5MjEwYmRjZGRkYzE0MmM4NDA4MiI6IjBhY2IxOWYyYTY1YmYwZTFkOWY5NTYxZDg3MzFmZTBmMGMxNzg0NDNmMDBmYWY0Mjc5NzNhZDQ1ZjJkZjRmNGQyMWE0ZmRlY2RmOTZjMzRiZTI4ZTM4OWQ4Y2FlZDk2YjUxNWVjYjIxNWNhOTE1YjM4YzcxNTAxNWUxYjA3OTQ5MjYzZmI2NTUxN2VhNGJjYWUzNjFkNzZjNDE4Y2QyYzU4ZDI5MDEwZWE3OWI5NDIwZDFjZWRmOTM3ZDNhYWFlN2UyOWMyMTcwYmE4OGM4MzI4NjY0ZDg4NGFjZTkwZTg4YzY2MjAwMDMzZDE5ZmZkNTJmNjY4YjAwYjBkZjA4OGI3OTQyMzc3YzFhZWMzN2IzYzMwNDUyMWMzOTRlYzc0OWVmYmIyNTI2NjllMGMwNDE1YjhiMDRiOTk1ZmMyMjQ5MDNiMDg0M2ZiYWYwYmUxY2U4MDRjOWYxNGE1ZTk3YWZhNzBkMGZjYTljYjcwOGFkMjAzODg3MzBhYTlkZTAyMCIKIAogSE1BQ19EUkJHIE5JU1QgQ0FWUyAxNC4zIFBSIFRydWUgKFNIQS0zODQsIDI1NiwgMjU2KSAjOQotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEzODQKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8zODQKIGhtYWNfZHJiZ19wcjpNQkVEVExTX01EX1NIQTM4NDoiZTllY2QwMGVmYWZlYmE0ZmE5Y2JhYjIyYjFiNTI4OGM5OGEzNmZmMWQ2ODU2NTkyYTI4ODMyNTk2OGMzMWQ3ZDg4ZmQyYmU1YzgyZDc5NDEzYjMzYzFkYmU5NzI4NTk4MjJjYTJjOGE5MmU3ODEyNDc5YzE0ZmEyOTJhNjI3YTg5MDljM2E5NTNhMjc1OGQ0MmYyMmExODY4MmZmYTIxOWFhOTkwOGUwNmY1MjFiZThmYjU5YWQ1OGU1NjUxYWE5ZDZiOTU5ODNlMjNlNTRjZDU3ZGZjODJiMjA3N2JmOTYiOiJhZGYxZjUwYTI5NWQ4OGY2OGU4YzA3YTE4MDg5N2Q4ZTdiNDlmN2NjNmNiNzhhM2IyNWVlMTBiMDU4M2EwZjBiIjoiODJkZTZhNzM1NjhhZGU1ZTViMGQ4YWUzN2M0MGZmMjVlODU4YTcwNTUzNDYwMjBjNWU0N2ZlZGRmZWY3NTY4MCI6ImNkMGUxNWQ3NjRkMjM1NWFjOWYxY2JkNWVhNTE5ZWQxNzU2YTNiZmFhNTVlMzc4M2I3MzhjMDNiZGI0MmUzNzEiOiIxZTU5MmU1MDAzZmMwZjNmODFhN2FlZjIyNzI1Mjc5ODBjYzVhOWFjNzI4NmE2MjE1MTNiOWM3Y2UyZWE5NGZiZmEyNTVlZjI2NTRkNjczYmI4Y2QxM2YzYTAzM2E3NzAxMzA0YWNiYmU4ZDE5YjgyYTYxZDJlNzdlNzI1MWY5OGIwZTI4ZTFhNjk0ZjljYmEyYzg2YzdjOGNiMjBkOWMyOTg2ZTUyMDUyZjcwMTU5NmUzYzgzN2FmOTViMTY2Y2QyMjdmMmZjMDBlZGQzZWE2MmI1N2Y2MDI2MjcxMmIyZjcxNDc5NTY5YzExOWNiY2U5ZDc3MWY4YTJjZmRmODMyYWE4ZDcwZTBhOTEyOTc4ZmIyYmIzM2IyN2ExODVmYjNhNGNhYTNhMTg5MTNhZWFiMDk1YWMwODhkMTQzODE4MDIxMTdhZjBjYzFkOTdjMDZmZTk3MzBiZWJiZmYwYWRmMmZmYWM1OTk1ZDI5OWU0ZGVmYjA3MjJiZDkzZjA3OTkiCiAKIEhNQUNfRFJCRyBOSVNUIENBVlMgMTQuMyBQUiBUcnVlIChTSEEtMzg0LCAyNTYsIDI1NikgIzEwCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTM4NAorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzM4NAogaG1hY19kcmJnX3ByOk1CRURUTFNfTURfU0hBMzg0OiI4OThhNmM0N2E1Y2ZmNTAwZWEwZjViMThiNWYwYjRiY2Y3ZTc1ZDZkN2M5MjAyNWY5OTIwYzY2NmRiYzFjNWZmYzQ4OTcyZTFkNTE5NDI4ZjhkNjFkZmI1ZTMwMGI0OGYyNjYwZmY1M2UxZmZhYTM5NTBjZmZjNTBlMTdhODc0MTgyMjM2ZmJiNTU1ZDM1Y2VkMzMzMDJlZjg3Yjg0YzBhZDMxZTg3NDQxYWUzNjUzNTA0NTJhMzk0NzA1NjdiYzAwOTg3MWEzYzk3ODViZGE0NTY5YWYzM2QwM2Q0NmYwOCI6IjllMTY1NjhhMjI1YjgwZTkwMTE1NzFmM2I1NTEwMmNmNjM2MmUyNmI4YTYwZmQzMzY4MGQ0ZTY2MjU3MzhlNWYiOiJiMWM2NWQ2ZTUxYmEwNDNmNjNiNDI1MWVkNThlOWE4ZWViZmMyODlmNjI4NTcwNWY4ZWY0NGMyMDJjOWI0YTIyIjoiMjQ1ZWU3NDFhMjA0MWVkYTIyY2U3MDUzZjg1NzZjMGE0M2VhZTg2OGZkOTVhZDdkNThiYjkyMWMxNTViMWI1MyI6ImIwNzYyMTA2ODhiMDZhYjZiNTdlZGY2ODEyNmRjZGZjZTgyYjZmOTI4NWRkZWMxMDJlZDYwNzMwYWE3NTMwODYzMDc2MTg2YTNmN2FmZmJkZDRlZjA4MWI3ZjVhMzJmYjQ2MWJjNTc1NWFiNGY4NjAwMTI2MzFiNzRhZTM1N2ZiYzNjYmQ2NGYwZWVmODc4OWM2YzlkY2E4OTRhNDFhMDA1ZDI3MmI0YTU3ZTc2MWY5MWQyMjE2MzZkMGVjN2E0OWYxMGJiMWI0MjY0OTM4NjA0ZmY0ZGM3YmM5N2ViNzk5Y2VhOWUzZTFkN2E5YjRiZDY2ZDg4ZDI0NGUyMjEyMGJiMzExZjUwMmU2NmU2MGM1YzllNDI3MzFhZDMyMGIyM2Q2YjA2YWU5MmExMzJiMDkzYWQ5MjRhMWE3ZTA4YjVkY2NkYzUwZTI1N2JmZGI2M2JmNTcwNTM1MDU4OGY2MWU5M2U0ZmM1MDQyYTJjYWQxYmQ2ZDlmYmM4MmU4NzVjZiIKIAogSE1BQ19EUkJHIE5JU1QgQ0FWUyAxNC4zIFBSIFRydWUgKFNIQS0zODQsIDI1NiwgMjU2KSAjMTEKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMzg0CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMzg0CiBobWFjX2RyYmdfcHI6TUJFRFRMU19NRF9TSEEzODQ6IjhlOTI4MzZkYzVlNGJiZjk1OTg4MDNlZmIwZDM4NzFlNTQxOGNmMThmMzc5NDc5YmJjYmQ5MjYyNTU4YWY2Y2I2ZDk3ZTczZGVjYjg3ODFjMzBmNjliNjFjMWY1YzkxYTVlYTFmMTBmYjFlZWY3NGI0ODBlNTgzNzEwZDlhNmEyZTU3ZjhjZmM5ZDAyMTVmYTczZDFjZTljMTU2MmYzY2MzNGJlMTg3OTQwY2QzMTdiNjkxMzlhYjlhYTU4ZDA2NGI2YmNhNTllZTY0NjBjM2RiNGU4YjU3ZmFiMDE4NmYxIjoiNmQ5YWZjNzY5OTg1MjE4NzQ1MjM1ZTVhZjI4MGViNDVjZWM4MWEyZTkyMGMyODRlZDVjNzcxMDU0ODllOGY0YiI6IjcxMTY3MmYyY2ExMmU3ZDhmMzI0NDVhODcxNjNiYzAwZjVkMGY1MmMyZjY3OTliYTUxM2I2OGMwN2MzNTBkZTUiOiI0MjZhZWFiMmNmYTU2Y2QzMTQ2YzBlYjlmYWNmYmMwNDhhNTA0ZWVjMzI3MzI1NmI1ZTRkYjNkNjZjODk1NjBmIjoiNTYzMjUzNzMwOTlmYzFkZDE5NDU1NWMzYTFlNjkzNThmYzdmODBmZTY2MTA0MTJjYjMxYzE0Y2RjNzBjNzNhNzRkMDQwNzQ2YzZjZjM4OGZiOTcxOGU3NDQ2ODg4YzYxNjJkZTczYWMwOTdjMzJmOGI0YjAwZGQ3ZjExNWZlZDE4MjFkMzc4NmJhYWExZjY0ODg1Y2I5M2M3NTUzMWU5OTE3MWY5OGQzYzM1NzYzMzdjMWM0MWM1YmZlODNmOTRjZWYyYWRlYmM4OGMwNzkwMzk4ZDRjMDcxNDg4Njk5ZWRkNTk5Nzk3YzFmOGYzOTRiM2UwMGU2NmJjNGI2OGE3Y2FjZDIwOTY5NTk2MTcxM2MzYmYyYzlhNWM4NTg5ZDkzNWUxNzFmNzc1ZjM2NjIxN2UyNjM0ZGRmMGRiNWYwMWFiMzE3NjBlYmQ5ZWQ5NzI0MjkyYmVjODlkYjA2ZDAxNDVmYjgyNGE3NjI5MmEzNWYzOWIwMWEwNmM0MzUxMGE2IgogCiBITUFDX0RSQkcgTklTVCBDQVZTIDE0LjMgUFIgVHJ1ZSAoU0hBLTM4NCwgMjU2LCAyNTYpICMxMgotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEzODQKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8zODQKIGhtYWNfZHJiZ19wcjpNQkVEVExTX01EX1NIQTM4NDoiYTRmMWZkODNlNTNhNDA2MTYzODYyMjYwZmI5ZTJlYzY0ZDRhZjc0ZjVmYTQxZmY1NmMwN2M3OTFiNmJiNmFiYmRiMjAzNjcwYjE4NDlhZmJmMDkzMTIwNmFkNjM5Mzc5OGZmMDZmYmE4ZGNhMzMxOGMyOWQ5MTYxYzBlYzE4ZWM1ZDdkNjY4NDdiMWE2MThiYjBlNGY2OWZhMTMzMWZkMWRiNWQ1ZmZmZGVlYzVhMmUwNDVjNTg4ZGM5NWE1ZDVlYWM2ZDM1NTAyZWJlMmU2YTU3MzE4ZjE1YWY1M2UwMDEiOiIzOWRkNzkzOTdmOTFhOTc0MzJlNTEyNGU3YjliODU5MjhmNjJjNTk4ZWNkMTk2MjYwNzBhODFhNWE4ZWQ1NjRhIjoiOTg1NzI0NTQxZDQ0YzhiODY1NjcyNzU5YzhkMzZkZWQ3NWMyMTg5YzIyODE3MzE4ODhhNzQxYjMwNWViNDE2MSI6ImUyZGFlNzU5NTBlNDE3YzE4ZjFjM2U1ZmJkNjZiMWNjOWZhNjE3YWE2OTVjOWQwM2Q4NzY4YjllMTk3ZmVhODAiOiI3MDNhYjFmNmE1MzMyZjAxZmE3ODhjZjczOTIyYTlmNmNmODU2MzE5NzcyZWVhYjA3YjQ3OTU3MDI1NjJjZGUzNTBhOGNmOTM5NTk3NmZkMjI3YjA4MTM0ZmViNDY5Y2EzNGY2NzVjOWI2ZjE3NmFkNjg0YTViMGQwMmI0YzEzNWE3MTc0YmYwNjA0YTE1NDZlN2Q4ZDk3OGVjZmQ4Y2I2YWU1ZWZjZTNiMjI4ZGM5NWNiNDEzYjAxMDczMmMzZTdmOWVmOGU1NDdhOTM1NDBlNWU0YWFhYTNiMGU1YThmNDViODNiYjExMjA5YTAzODgzYzU0ZjQxZTQ5NGZjYmM2NmMyZDU3YzAxMDAyMTM3NTY3ZWEyZjk5ZjdhMWVkNmM0YzYwODBiZGFhMjk5ZDE4ZjU3YmIzYjM4NjI3OGE3OGIyZWYyM2EwMzA0M2U4NTBiZDlmZDc0MjUyN2M0NTMwOGU1YjkxMGZjNTg2ZjlmMjFkZTcwMjJkMDJiMTQ5M2IiCiAKIEhNQUNfRFJCRyBOSVNUIENBVlMgMTQuMyBQUiBUcnVlIChTSEEtMzg0LCAyNTYsIDI1NikgIzEzCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTM4NAorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzM4NAogaG1hY19kcmJnX3ByOk1CRURUTFNfTURfU0hBMzg0OiJmMzMxZWJjZGJjMGQyZGZiZjU0NzU4NjgwZGQ0OWRkMGJkNjY2ZDA1MDVlZjZiYTFjNGJiZmI3ZGVlNjJlZGMzNGVhOTA2MzYzMmM4ZTY3MTliYmUxNDBjM2M4NDBhYWJkNjZlNzcwMmMzODQ3MDA5MjFkYzE4MzhjNmM1YTgzMmM2NTBhNDc0ZTc0MjcwYzM3OGFiZmYwMjFkNjBkMWExODg0OTM5YmJkYzUxYzU0N2M3MmM5MjljMGM3M2NhN2Y3ODY2OGQzM2ZiYTE5NzY0MmJlOGFjMmQ0MWNlZmRlNCI6ImVjMjk5ZTQ1NmNkMTk4NWEzZjEwMjJkNWMwNWYwZWY5MDQwY2M4YjgyOTdiYTVlNDA0ZDkyYTZkMzZjMzU3OGYiOiI5NTRmNDY0ODc3ZjcyNThmOTlhY2JmYjlhZGZlNGVlZGM4OWRhNzFjYTgyZTM1ODFmYjViYWQxMjdiMjA2OWU3IjoiNTE1ZjllNzQ2Yzc0MDcxOTY2MTBiYmFlOTYzYjliYzE1YjE2NTg5NzJhMzBlNjJiZTZmNzhjYWVlMTI4N2U4OCI6IjVhYTMwYTc5NmQ0NmU3ODljNDk4MzUyYWRlMTc5ZjBjZDMzMzY0MThmYmVhZmFlMGQxMGZiZjc3OTg5MTc2NzIyODhiM2IyYTEyMjY3ZmMwNDM1ZDg4YjRlOTk4MDljMWUzMDY3ZjBkNjVjOTEwYjEyYTMzMDMzNGI2YTIzZDZkMzA5MTBkMzAxNDM4YzJjOTk5MzUzZTFmNzgwMTliYTdiMjBlYWY2OGI0OTlmZjFlODhkYjA0MzEzMTJhNjZmMzUzMDVjNGYzYzNhMjc1MGM5NWJiYzA3Y2NiZGYxZTRkMTIzZWVjMzc4YjliZTg4OTRiNTk3YmNjMDI5YzY2NGU1OWUyYjNjMjNmZDcyODQxYWYwZGRjOTM3NGVjZWYyMTg4NWEwYjU0ZDEzMTg2ZGMwYTY2ZWQzYzNjYWNhOWU0MTc1MzgxM2FlNjEwMTVhOTUyMTQyYmQ0ZDdlYmJhYTMxOTM1OThiZTEyNjdiZTkzNzc0NWZiMGRlMDlhYTcwZCIKIAogSE1BQ19EUkJHIE5JU1QgQ0FWUyAxNC4zIFBSIFRydWUgKFNIQS0zODQsIDI1NiwgMjU2KSAjMTQKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMzg0CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMzg0CiBobWFjX2RyYmdfcHI6TUJFRFRMU19NRF9TSEEzODQ6ImQ5OWRkYmQ4MmNlOTkzN2NkYTA4M2UzMGIzZGE0N2E2ZTZjYTA4YjhmNTlmMmZjOTM0YmIzZjc4ZTc0OGJiMjhjZmFiZGRiMzc1ZWZjNWYyMDI1YTUzZmQwNzNhODliMGZiZWMzOTEyOTA4NjNhZDg2MmFhNTZmZTZkOTQ1MDQ0ZTg3OWNhMDVjM2MwMTkzMTNmODEwZGQ1NTlmYTBlNjgyZDZiNzdmZjdlNjEyYzdjNDBjZDUyMzFlZWNlNDAxOGM1YjNjMGQ4MTgxYWI0NDcwM2Y3YTA0YzBhMWM3YzVlIjoiZWJjMjE5M2Q0YTk3Yjk3ZDI5OGYxMzA1YjJmN2E1NGRhYjQ2NmY3YzRlNDQ0ODMxNjUxY2FjMjlhNmM1YmQ4OCI6IjY4MjZhYWQ0MWY4YWMyOWUyNzI4ODRjYjZkMjEzMDBjN2IwYjNjYTM3MjA1ZTE3MjBhZmFmOWY3MTZmMzM3ZWMiOiI1YTc0MzQ2NDhkZTgyYTM1NTJlMTJhZmY4MDAwOTM3NzZjYTNlODY1NjViMjljMGIzYWQ2YzBiYzMxODA2MjNmIjoiY2ZjNzlhODlhMGE1NWRjOWM2YzZlY2NkZmFiNWE5OTM1MzM1ZTgwNmI3M2JhYjdmNWVmZjVmOWZlYTZhYTNmNDdiZjMxZjA2ZDk4N2E5NGUyYmMyYTRhNjE0NGViZTk0ZDZmNWFhOGZjYWFiYmY4NmEzN2M4ZDQxMjIwNzg2NDMyMmQzMDU3Yjg5ZmVmMzU4NzQwYzU5NjJjZjllN2MzNzA3Mjg0N2ZjYWE2ZGI2OTNhNTIzOGVmMjcwZTg0MTRlMmIyOTQ0OGJiY2MzN2RjZWFhNzU0NzljMmFjNWZlZTJkNmZlOWVkNjg1MTZmNmRiZDkwMTM1ZGRjYWU4YTEyZDFjMTU5NWUwZWRjMzRlYTJiZjAwYmVlN2FlNzczYzI0MGMyYmMxZWQ4MjhiN2ZmOTFhNjc2ODkxMTczZWVjMWRhYmVlY2IyMTg0ZGY5MTg2YzNiZDgzM2UzNDkzNTE0ODE2NTViZGE5MWJjMGY0ZTQxOWZiNzhlNDI2ZGU2YjM5IgogCiBITUFDX0RSQkcgTklTVCBDQVZTIDE0LjMgUFIgVHJ1ZSAoU0hBLTUxMiwgMCwgMCkgIzAKZGlmZiAtLWdpdCBhL3Rlc3RzL3N1aXRlcy90ZXN0X3N1aXRlX2xtb3RzLmRhdGEgYi90ZXN0cy9zdWl0ZXMvdGVzdF9zdWl0ZV9sbW90cy5kYXRhCmluZGV4IDI3MzcyNzIuLjczYTZmMmYgMTAwNjQ0Ci0tLSBhL3Rlc3RzL3N1aXRlcy90ZXN0X3N1aXRlX2xtb3RzLmRhdGEKKysrIGIvdGVzdHMvc3VpdGVzL3Rlc3Rfc3VpdGVfbG1vdHMuZGF0YQpAQCAtMTcsNyArMTcsNyBAQAogIyBUaGlzIHRlc3QgdXNlcyBkYXRhIGZyb20gaHR0cHM6Ly9naXRodWIuY29tL3BtdnIvcHl0aG9uLWhzc2xtcyBkdWUgdG8gdGhlCiAjIGxpbWl0ZWQgYW1vdW50IG9mIGF2YWlsYWJsZSB0ZXN0IHZlY3RvcnMgZm9yIExNT1RTLCBhbmQgZmV3IGltcGxlbWVudGF0aW9ucwogIyBwcm92aWRpbmcgZGlyZWN0IGFjY2VzcyB0byB0aGUgdW5kZXJseWluZyBPVFMgc2lnbmF0dXJlIHNjaGVtZS4gVGhlIHByaXZhdGUKLSMga2V5IGlzIHN0b3JlZCBpbiBkYXRhX2ZpbGVzL2xtc19oc3NsbXNfc2hhMjU2X20zMl9oNV9sbW90c19zaGEyNTZfbjMyX3c4X3Bydi4KKyMga2V5IGlzIHN0b3JlZCBpbiAuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9sbXNfaHNzbG1zX3NoYTI1Nl9tMzJfaDVfbG1vdHNfc2hhMjU2X24zMl93OF9wcnYuCiAjIFRoaXMgdGVzdCB1c2VzIHRoZSBzYW1lIE9UUyBrZXkgYXMgdGhlIExNUyBoc3NsbXMgaW50ZXJvcCB0ZXN0IDEgKGxlYWYgMCBvZgogIyB0aGUgTE1TIGtleSksIGFuZCB0aGUgc2FtZSBtZXNzYWdlLgogIwpAQCAtMjgsNyArMjgsNyBAQAogIyBmcm9tIGhzc2xtcyBpbXBvcnQgTE1TX1ByaXYsIExNX09UU19Qcml2LCBMTVNfQUxHT1JJVEhNX1RZUEUsIExNT1RTX0FMR09SSVRITV9UWVBFCiAjIGltcG9ydCBwaWNrbGUKICMKLSMgd2l0aCBvcGVuKCd0ZXN0cy9kYXRhX2ZpbGVzL2xtc19oc3NsbXNfc2hhMjU2X20zMl9oNV9sbW90c19zaGEyNTZfbjMyX3c4X3BydicsICdyYicpIGFzIHByaXZhdGVfa2V5X2ZpbGU6CisjIHdpdGggb3BlbignZnJhbWV3b3JrL2RhdGFfZmlsZXMvbG1zX2hzc2xtc19zaGEyNTZfbTMyX2g1X2xtb3RzX3NoYTI1Nl9uMzJfdzhfcHJ2JywgJ3JiJykgYXMgcHJpdmF0ZV9rZXlfZmlsZToKICMgICAgIHByaXZhdGVfa2V5ID0gcGlja2xlLmxvYWQocHJpdmF0ZV9rZXlfZmlsZSkKICMKICMgb3RzX3ByaXZhdGVfa2V5ID0gTE1fT1RTX1ByaXYocHJpdmF0ZV9rZXkub3RzdHlwZWNvZGUsIHByaXZhdGVfa2V5LkksIDAsIHByaXZhdGVfa2V5LlNFRUQpCkBAIC00Miw3ICs0Miw3IEBACiAjIFRoaXMgdGVzdCB1c2VzIGRhdGEgZnJvbSBodHRwczovL2dpdGh1Yi5jb20vcG12ci9weXRob24taHNzbG1zIGR1ZSB0byB0aGUKICMgbGltaXRlZCBhbW91bnQgb2YgYXZhaWxhYmxlIHRlc3QgdmVjdG9ycyBmb3IgTE1PVFMsIGFuZCBmZXcgaW1wbGVtZW50YXRpb25zCiAjIHByb3ZpZGluZyBkaXJlY3QgYWNjZXNzIHRvIHRoZSB1bmRlcmx5aW5nIE9UUyBzaWduYXR1cmUgc2NoZW1lLiBUaGUgcHJpdmF0ZQotIyBrZXkgaXMgc3RvcmVkIGluIGRhdGFfZmlsZXMvbG1zX2hzc2xtc19zaGEyNTZfbTMyX2g1X2xtb3RzX3NoYTI1Nl9uMzJfdzhfcHJ2LgorIyBrZXkgaXMgc3RvcmVkIGluIC4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL2xtc19oc3NsbXNfc2hhMjU2X20zMl9oNV9sbW90c19zaGEyNTZfbjMyX3c4X3Bydi4KICMgVGhpcyB0ZXN0IHVzZXMgdGhlIHNhbWUgT1RTIGtleSBhcyB0aGUgTE1TIGhzc2xtcyBpbnRlcm9wIHRlc3QgMiAobGVhZiAxIG9mCiAjIHRoZSBMTVMga2V5KSwgYW5kIHRoZSBzYW1lIG1lc3NhZ2UuCiAjCkBAIC01Myw3ICs1Myw3IEBACiAjIGZyb20gaHNzbG1zIGltcG9ydCBMTVNfUHJpdiwgTE1fT1RTX1ByaXYsIExNU19BTEdPUklUSE1fVFlQRSwgTE1PVFNfQUxHT1JJVEhNX1RZUEUKICMgaW1wb3J0IHBpY2tsZQogIwotIyB3aXRoIG9wZW4oJ3Rlc3RzL2RhdGFfZmlsZXMvbG1zX2hzc2xtc19zaGEyNTZfbTMyX2g1X2xtb3RzX3NoYTI1Nl9uMzJfdzhfcHJ2JywgJ3JiJykgYXMgcHJpdmF0ZV9rZXlfZmlsZToKKyMgd2l0aCBvcGVuKCdmcmFtZXdvcmsvZGF0YV9maWxlcy9sbXNfaHNzbG1zX3NoYTI1Nl9tMzJfaDVfbG1vdHNfc2hhMjU2X24zMl93OF9wcnYnLCAncmInKSBhcyBwcml2YXRlX2tleV9maWxlOgogIyAgICAgcHJpdmF0ZV9rZXkgPSBwaWNrbGUubG9hZChwcml2YXRlX2tleV9maWxlKQogIwogI290c19wcml2YXRlX2tleSA9IExNX09UU19Qcml2KHByaXZhdGVfa2V5Lm90c3R5cGVjb2RlLCBwcml2YXRlX2tleS5JLCAxLCBwcml2YXRlX2tleS5TRUVEKQpAQCAtNjcsNyArNjcsNyBAQAogIyBUaGlzIHRlc3QgdXNlcyBkYXRhIGZyb20gaHR0cHM6Ly9naXRodWIuY29tL3BtdnIvcHl0aG9uLWhzc2xtcyBkdWUgdG8gdGhlCiAjIGxpbWl0ZWQgYW1vdW50IG9mIGF2YWlsYWJsZSB0ZXN0IHZlY3RvcnMgZm9yIExNT1RTLCBhbmQgZmV3IGltcGxlbWVudGF0aW9ucwogIyBwcm92aWRpbmcgZGlyZWN0IGFjY2VzcyB0byB0aGUgdW5kZXJseWluZyBPVFMgc2lnbmF0dXJlIHNjaGVtZS4gVGhlIHByaXZhdGUKLSMga2V5IGlzIHN0b3JlZCBpbiBkYXRhX2ZpbGVzL2xtc19oc3NsbXNfc2hhMjU2X20zMl9oNV9sbW90c19zaGEyNTZfbjMyX3c4X3Bydi4KKyMga2V5IGlzIHN0b3JlZCBpbiAuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9sbXNfaHNzbG1zX3NoYTI1Nl9tMzJfaDVfbG1vdHNfc2hhMjU2X24zMl93OF9wcnYuCiAjCiAjIFRvIHByb2R1Y2UgYW5vdGhlciBzaWduYXR1cmUgd2l0aCB0aGlzIG1lc3NhZ2UgYW5kIGtleSAobm90ZSB0aGF0IHRoZSBhY3R1YWwKICMgc2lnbmF0dXJlIGJ5dGVzIHdpbGwgZGlmZmVyIGR1ZSB0byByYW5kb21pemF0aW9uKToKQEAgLTc2LDcgKzc2LDcgQEAKICMgZnJvbSBoc3NsbXMgaW1wb3J0IExNU19Qcml2LCBMTV9PVFNfUHJpdiwgTE1TX0FMR09SSVRITV9UWVBFLCBMTU9UU19BTEdPUklUSE1fVFlQRQogIyBpbXBvcnQgcGlja2xlCiAjCi0jIHdpdGggb3BlbigndGVzdHMvZGF0YV9maWxlcy9sbXNfaHNzbG1zX3NoYTI1Nl9tMzJfaDVfbG1vdHNfc2hhMjU2X24zMl93OF9wcnYnLCAncmInKSBhcyBwcml2YXRlX2tleV9maWxlOgorIyB3aXRoIG9wZW4oJ2ZyYW1ld29yay9kYXRhX2ZpbGVzL2xtc19oc3NsbXNfc2hhMjU2X20zMl9oNV9sbW90c19zaGEyNTZfbjMyX3c4X3BydicsICdyYicpIGFzIHByaXZhdGVfa2V5X2ZpbGU6CiAjICAgICBwcml2YXRlX2tleSA9IHBpY2tsZS5sb2FkKHByaXZhdGVfa2V5X2ZpbGUpCiAjCiAjb3RzX3ByaXZhdGVfa2V5ID0gTE1fT1RTX1ByaXYocHJpdmF0ZV9rZXkub3RzdHlwZWNvZGUsIHByaXZhdGVfa2V5LkksIDMsIHByaXZhdGVfa2V5LlNFRUQpCmRpZmYgLS1naXQgYS90ZXN0cy9zdWl0ZXMvdGVzdF9zdWl0ZV9sbW90cy5mdW5jdGlvbiBiL3Rlc3RzL3N1aXRlcy90ZXN0X3N1aXRlX2xtb3RzLmZ1bmN0aW9uCmluZGV4IDI5MzI4N2EuLmM4MTUwMWMgMTAwNjQ0Ci0tLSBhL3Rlc3RzL3N1aXRlcy90ZXN0X3N1aXRlX2xtb3RzLmZ1bmN0aW9uCisrKyBiL3Rlc3RzL3N1aXRlcy90ZXN0X3N1aXRlX2xtb3RzLmZ1bmN0aW9uCkBAIC0zNyw2ICszNyw3IEBACiAKICAgICBtYmVkdGxzX2xtb3RzX3B1YmxpY19pbml0KCZwdWJfY3R4KTsKICAgICBtYmVkdGxzX2xtb3RzX3ByaXZhdGVfaW5pdCgmcHJpdl9jdHgpOworICAgIFVTRV9QU0FfSU5JVCgpOwogCiAgICAgVEVTVF9FUVVBTChtYmVkdGxzX2xtb3RzX2dlbmVyYXRlX3ByaXZhdGVfa2V5KCZwcml2X2N0eCwgTUJFRFRMU19MTU9UU19TSEEyNTZfTjMyX1c4LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXlfaWQtPngsIGxlYWZfaWQsIHNlZWQtPngsIHNlZWQtPmxlbiksIDApOwpAQCAtNDgsNiArNDksNyBAQAogZXhpdDoKICAgICBtYmVkdGxzX2xtb3RzX3B1YmxpY19mcmVlKCZwdWJfY3R4KTsKICAgICBtYmVkdGxzX2xtb3RzX3ByaXZhdGVfZnJlZSgmcHJpdl9jdHgpOworICAgIFVTRV9QU0FfRE9ORSgpOwogfQogLyogRU5EX0NBU0UgKi8KIApAQCAtNjAsNiArNjIsNyBAQAogCiAgICAgbWJlZHRsc19sbW90c19wdWJsaWNfaW5pdCgmcHViX2N0eCk7CiAgICAgbWJlZHRsc19sbW90c19wcml2YXRlX2luaXQoJnByaXZfY3R4KTsKKyAgICBVU0VfUFNBX0lOSVQoKTsKIAogICAgIFRFU1RfRVFVQUwobWJlZHRsc19sbW90c19nZW5lcmF0ZV9wcml2YXRlX2tleSgmcHJpdl9jdHgsIE1CRURUTFNfTE1PVFNfU0hBMjU2X04zMl9XOCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga2V5X2lkLT54LCBsZWFmX2lkLCBzZWVkLT54LCBzZWVkLT5sZW4pLCAwKTsKQEAgLTcxLDYgKzc0LDcgQEAKIGV4aXQ6CiAgICAgbWJlZHRsc19sbW90c19wdWJsaWNfZnJlZSgmcHViX2N0eCk7CiAgICAgbWJlZHRsc19sbW90c19wcml2YXRlX2ZyZWUoJnByaXZfY3R4KTsKKyAgICBVU0VfUFNBX0RPTkUoKTsKIH0KIC8qIEVORF9DQVNFICovCiAKQEAgLTgzLDYgKzg3LDcgQEAKICAgICB1bnNpZ25lZCBjaGFyICp0bXBfc2lnID0gTlVMTDsKIAogICAgIG1iZWR0bHNfbG1vdHNfcHVibGljX2luaXQoJmN0eCk7CisgICAgVVNFX1BTQV9JTklUKCk7CiAKICAgICBURVNUX0VRVUFMKG1iZWR0bHNfbG1vdHNfaW1wb3J0X3B1YmxpY19rZXkoJmN0eCwgcHViX2tleS0+eCwgcHViX2tleS0+bGVuKSwgMCk7CiAKQEAgLTEzNyw2ICsxNDIsNyBAQAogZXhpdDoKICAgICBtYmVkdGxzX2ZyZWUodG1wX3NpZyk7CiAgICAgbWJlZHRsc19sbW90c19wdWJsaWNfZnJlZSgmY3R4KTsKKyAgICBVU0VfUFNBX0RPTkUoKTsKIH0KIC8qIEVORF9DQVNFICovCiAKQEAgLTE0OSw2ICsxNTUsOCBAQAogICAgIHNpemVfdCBleHBvcnRlZF9wdWJfa2V5X3NpemU7CiAKICAgICBtYmVkdGxzX2xtb3RzX3B1YmxpY19pbml0KCZjdHgpOworICAgIFVTRV9QU0FfSU5JVCgpOworCiAgICAgVEVTVF9FUVVBTChtYmVkdGxzX2xtb3RzX2ltcG9ydF9wdWJsaWNfa2V5KCZjdHgsIHB1Yl9rZXktPngsIHB1Yl9rZXktPmxlbiksCiAgICAgICAgICAgICAgICBleHBlY3RlZF9pbXBvcnRfcmMpOwogCkBAIC0xOTIsNiArMjAwLDcgQEAKIGV4aXQ6CiAgICAgbWJlZHRsc19sbW90c19wdWJsaWNfZnJlZSgmY3R4KTsKICAgICBtYmVkdGxzX2ZyZWUoZXhwb3J0ZWRfcHViX2tleSk7CisgICAgVVNFX1BTQV9ET05FKCk7CiB9CiAvKiBFTkRfQ0FTRSAqLwogCkBAIC0yMDIsNiArMjExLDcgQEAKICAgICB1bnNpZ25lZCBjaGFyIHNpZ1tNQkVEVExTX0xNT1RTX1NJR19MRU4oTUJFRFRMU19MTU9UU19TSEEyNTZfTjMyX1c4KV07CiAKICAgICBtYmVkdGxzX2xtb3RzX3ByaXZhdGVfaW5pdCgmY3R4KTsKKyAgICBVU0VfUFNBX0lOSVQoKTsKICAgICBURVNUX0VRVUFMKG1iZWR0bHNfbG1vdHNfZ2VuZXJhdGVfcHJpdmF0ZV9rZXkoJmN0eCwgTUJFRFRMU19MTU9UU19TSEEyNTZfTjMyX1c4LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXlfaWQtPngsIGxlYWZfaWQsIHNlZWQtPngsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlZWQtPmxlbiksIDApOwpAQCAtMjE3LDYgKzIyNyw3IEBACiAKIGV4aXQ6CiAgICAgbWJlZHRsc19sbW90c19wcml2YXRlX2ZyZWUoJmN0eCk7CisgICAgVVNFX1BTQV9ET05FKCk7CiB9CiAvKiBFTkRfQ0FTRSAqLwogCkBAIC0yMzMsNiArMjQ0LDcgQEAKICAgICBtZW1zZXQoc2lnLCAweDdFLCBzaXplb2Yoc2lnKSk7CiAKICAgICBtYmVkdGxzX2xtb3RzX3ByaXZhdGVfaW5pdCgmY3R4KTsKKyAgICBVU0VfUFNBX0lOSVQoKTsKICAgICBURVNUX0VRVUFMKG1iZWR0bHNfbG1vdHNfZ2VuZXJhdGVfcHJpdmF0ZV9rZXkoJmN0eCwgTUJFRFRMU19MTU9UU19TSEEyNTZfTjMyX1c4LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXlfaWQtPngsIGxlYWZfaWQsIHNlZWQtPngsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlZWQtPmxlbiksIDApOwpAQCAtMjQyLDUgKzI1NCw2IEBACiBleGl0OgogICAgIG1iZWR0bHNfbG1vdHNfcHJpdmF0ZV9mcmVlKCZjdHgpOwogICAgIG1iZWR0bHNfbG1vdHNfc2lnbl9wcml2YXRlX2tleV9pbnZhbGlkYXRlZF9ob29rID0gTlVMTDsKKyAgICBVU0VfUFNBX0RPTkUoKTsKIH0KIC8qIEVORF9DQVNFICovCmRpZmYgLS1naXQgYS90ZXN0cy9zdWl0ZXMvdGVzdF9zdWl0ZV9sbXMuZGF0YSBiL3Rlc3RzL3N1aXRlcy90ZXN0X3N1aXRlX2xtcy5kYXRhCmluZGV4IDc4MDJhNzAuLjE2ZWJkMWQgMTAwNjQ0Ci0tLSBhL3Rlc3RzL3N1aXRlcy90ZXN0X3N1aXRlX2xtcy5kYXRhCisrKyBiL3Rlc3RzL3N1aXRlcy90ZXN0X3N1aXRlX2xtcy5kYXRhCkBAIC0xMSw3ICsxMSw3IEBACiBMTVMgcHloc3NsbXMgaW50ZXJvcCB0ZXN0ICMxCiAjIFRoaXMgdGVzdCB1c2VzIGRhdGEgZnJvbSBodHRwczovL2dpdGh1Yi5jb20vcnVzc2hvdXNsZXkvcHloc3NsbXMgZHVlIHRvIHRoZQogIyBsaW1pdGVkIGFtb3VudCBvZiBhdmFpbGFibGUgdGVzdCB2ZWN0b3JzIGZvciBMTVMuIFRoZSBwcml2YXRlIGtleSBpcyBzdG9yZWQgaW4KLSMgZGF0YV9maWxlcy9sbXNfcHloc3NsbXNfc2hhMjU2X20zMl9oNV9sbW90c19zaGEyNTZfbjMyX3c4X3Bydi4gTm90ZSB0aGF0IHRoaXMgc2lnbmF0dXJlCisjIC4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL2xtc19weWhzc2xtc19zaGEyNTZfbTMyX2g1X2xtb3RzX3NoYTI1Nl9uMzJfdzhfcHJ2LiBOb3RlIHRoYXQgdGhpcyBzaWduYXR1cmUKICMgdXNlcyBsZWFmIGtleSAwLCBzbyBtdXN0IGJlIHRoZSBmaXJzdCBzaWduYXR1cmUgZ2VuZXJhdGVkIGJ5IHRoZSBrZXkgaWYgdGhlCiAjIHNpZ25hdHVyZSBpcyB0byBiZSByZXByb2R1Y2VkLiBNZXNzYWdlIGRhdGEgaXMgcmFuZG9tLiBOb3RlIHRoYXQgcHloc3NsbXMKICMgc3RvcmVzIHB1YmxpYyBrZXlzIGFuZCBzaWduYXR1cmVzIGluIEhTUyBmb3JtLCB3aGljaCBhcHBlbmRzIGEgNC1ieXRlICJsZXZlbHMiCkBAIC0yMSw4ICsyMSw4IEBACiAjIFRvIHByb2R1Y2UgYW5vdGhlciBzaWduYXR1cmUgd2l0aCB0aGlzIG1lc3NhZ2UgYW5kIGtleSAobm90ZSB0aGF0IHRoZSBhY3R1YWwKICMgc2lnbmF0dXJlIGJ5dGVzIHdpbGwgZGlmZmVyIGR1ZSB0byByYW5kb21pemF0aW9uKToKICMgKiBwaXAzIGluc3RhbGwgLS11c2VyIHB5aHNzbG1zCi0jICogY3AgZGF0YV9maWxlcy9sbXNfcHloc3NsbXNfc2hhMjU2X20zMl9oNV9sbW90c19zaGEyNTZfbjMyX3c4X3BydiB0bXAvbG1zLnBydgotIyAqIGNwIGRhdGFfZmlsZXMvbG1zX3B5aHNzbG1zX3NoYTI1Nl9tMzJfaDVfbG1vdHNfc2hhMjU2X24zMl93OF9wdWIgdG1wL2xtcy5wdWIKKyMgKiBjcCAuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9sbXNfcHloc3NsbXNfc2hhMjU2X20zMl9oNV9sbW90c19zaGEyNTZfbjMyX3c4X3BydiB0bXAvbG1zLnBydgorIyAqIGNwIC4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL2xtc19weWhzc2xtc19zaGEyNTZfbTMyX2g1X2xtb3RzX3NoYTI1Nl9uMzJfdzhfcHViIHRtcC9sbXMucHViCiAjCiAjIGltcG9ydCBweWhzc2xtcwogIwpAQCAtNTEsNyArNTEsNyBAQAogTE1TIHB5aHNzbG1zIGludGVyb3AgTlVMTC1tZXNzYWdlIHRlc3QKICMgVGhpcyB0ZXN0IHVzZXMgZGF0YSBmcm9tIGh0dHBzOi8vZ2l0aHViLmNvbS9ydXNzaG91c2xleS9weWhzc2xtcyBkdWUgdG8gdGhlIGxpbWl0ZWQKICMgYW1vdW50IG9mIGF2YWlsYWJsZSB0ZXN0IHZlY3RvcnMgZm9yIExNUy4gVGhlIHByaXZhdGUga2V5IGlzIHN0b3JlZCBpbgotIyBkYXRhX2ZpbGVzL2xtc19weWhzc2xtc19zaGEyNTZfbTMyX2g1X2xtb3RzX3NoYTI1Nl9uMzJfdzhfcHJ2LiBOb3RlIHRoYXQgdGhpcyBzaWduYXR1cmUKKyMgLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvbG1zX3B5aHNzbG1zX3NoYTI1Nl9tMzJfaDVfbG1vdHNfc2hhMjU2X24zMl93OF9wcnYuIE5vdGUgdGhhdCB0aGlzIHNpZ25hdHVyZQogIyB1c2VzIGxlYWYga2V5IDIsIHNvIG11c3QgYmUgdGhlIHRoaXJkIHNpZ25hdHVyZSBnZW5lcmF0ZWQgYnkgdGhlIGtleSBpZiB0aGUKICMgc2lnbmF0dXJlIGlzIHRvIGJlIHJlcHJvZHVjZWQuIE1lc3NhZ2UgZGF0YSBpcyByYW5kb20uIE5vdGUgdGhhdCBoYXNoLXNpZ3MKICMgc3RvcmVzIHB1YmxpYyBrZXlzIGFuZCBzaWduYXR1cmVzIGluIEhTUyBmb3JtLCB3aGljaCBhcHBlbmRzIGEgNC1ieXRlCkBAIC02MSw3ICs2MSw3IEBACiAjIFRvIHByb2R1Y2UgYW5vdGhlciBzaWduYXR1cmUgd2l0aCB0aGlzIG1lc3NhZ2UgYW5kIGtleSAobm90ZSB0aGF0IHRoZSBhY3R1YWwKICMgc2lnbmF0dXJlIGJ5dGVzIHdpbGwgZGlmZmVyIGR1ZSB0byByYW5kb21pemF0aW9uKToKICMgKiBwaXAzIGluc3RhbGwgLS11c2VyIHB5aHNzbG1zCi0jICogY3AgZGF0YV9maWxlcy9sbXNfcHloc3NsbXNfc2hhMjU2X20zMl9oNV9sbW90c19zaGEyNTZfbjMyX3c4X3BydiB0bXAvbG1zLnBydgorIyAqIGNwIC4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL2xtc19weWhzc2xtc19zaGEyNTZfbTMyX2g1X2xtb3RzX3NoYTI1Nl9uMzJfdzhfcHJ2IHRtcC9sbXMucHJ2CiAjICogdG91Y2ggbWVzc2FnZS5iaW4gKGNyZWF0ZSBlbXB0eSBtZXNzYWdlIGZpbGUpCiAjICogaHNzbG1zIHNpZ24gdG1wL2xtcy5wcnYgbWVzc2FnZS5iaW4gKGluY29ycmVjdCBzaWduYXR1cmUgdXNpbmcgbGVhZiBub2RlIDApCiAjICogcm0gbWVzc2FnZS5iaW4uc2lnCkBAIC03NSwxNSArNzUsMTUgQEAKICMgKiB0b3VjaCBtZXNzYWdlLmJpbiAoY3JlYXRlIGVtcHR5IG1lc3NhZ2UgZmlsZSkKICMgKiBlY2hvIC1uIC1lICJcMFwwXDBcMCIgPiBtZXNzYWdlLmJpbi5zaWc7IGNhdCBzaWcuYmluID4+IG1lc3NhZ2UuYmluLnNpZyAocmVzdG9yZSB0aGUKICMgICBIU1MgbGV2ZWxzKQotIyAqIGNwIGRhdGFfZmlsZXMvbG1zX3B5aHNzbG1zX3NoYTI1Nl9tMzJfaDVfbG1vdHNfc2hhMjU2X24zMl93OCB0bXAvbG1zLnB1YgorIyAqIGNwIC4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL2xtc19weWhzc2xtc19zaGEyNTZfbTMyX2g1X2xtb3RzX3NoYTI1Nl9uMzJfdzggdG1wL2xtcy5wdWIKICMgKiBoc3NsbXMgdmVyaWZ5IHRtcC9sbXMgbWVzc2FnZS5iaW4KIGxtc192ZXJpZnlfdGVzdDoiIjoiMDAwMDAwMDIwMDAwMDAwNGIyMTlhMDA1M2I2YmZlMTk4OGFkZTdiMGE0MzhjMTA2MjYyMzY2Y2I2MzM4ZWI2Y2NkMTYxMzI2YjI5MDc2ZDM0OTNlODhhYjVkZjEwYWI0NTZkZGJhYzYzZjljYzdiYzYyNmE4MzI2NjQ4NjFhNjExMjU5NjNmNmU0YjFmYzIwMmIwZDY0MjFjYjEzMDc0NTE2MTRkNGQwZTllNDUwOWJjMzk5MWVkZTgyOWYzODA1NTMxOTEyYWYxMjAyOGMzMzEyODIxMmE2ZTA1MzlhNDU4ZGEwOTJlODNkY2NlZDhmZmIxZDkyODBlNzY1OTNhMjM5ZDNlODc4NTg5MDVkM2I0YWUzODY0Y2Q1NTk3MmY1NjEwNzU5YmI3ZDkyOWQyNGFlMjYyYTFlMDI4ZjE0MGU5MGFhNzM3NWU0MzAzMmMwYmMyOGZlNWZjMjVkNTNhMjZmNGY5ZTZkZTE4ZGEyZjY5N2Y4MmU0MDkzMDhlNWIzMTY0MTNkZjhlODU0ODczOTFjNDZlNzg0ZjkzMDNmMTMzZWQzMzJjODhlNmQxNDY3Y2ViZmZkOTU0NzU5MmU5MDdjZWJhMjk5MmEwNDQyNDEwYzdhODcxMDQ2OTdhNGFiMzQ4M2Q5YjJhZjlkZjU3NGVkZjIzODExY2VjMGU2ODEyNDZmMDdhYzc0ZTFkZGY2NGE3ZjdhYmM3MmQwYTIzYjcwZDVmN2M5NjQ5MTg4ZWVjODY0NGYyNDM3OTUxNjQwYWY0ZjY3M2U2YmI3ZDM2YTEwYzVjNGM4NTdmNTE4OTc0OTI5ODI0MDExZGM3OWY0ODQxMDczODhiOTI3NjJhY2IxMTgzOWM3Y2FmZWM3ZGFhYmRiZTY1MWY1MDA5MzAzODZiNDAzY2NlYzkwYTUwNzgyOWMxOGRmMjNhODAwMjUwZDQxMmE4MmI0MDcyYzk0ZGUyNGRhOWZhMjU3MjBmMWVlNDMzOTUzZmNhMmQ5YjM4ZmZjNWM4YjYzMjhlNjliZjkyODkzNjIxOGJkMjUzY2FjNWE3MTIyYjc0NjM5ZWQ3ZjQwODVkMjdlZmRhMmE2OThhZmY0YmNlMzg1YjQ3NTQ3MGFkYjE5YWIyMDk1YjM5NzllNzRlNjM5MTRlZjU0MzAwOTRlMjAyODQ0MGY0ZDJhYTQ0OGJiNDFmMWQ0NDgxYWQ3NmM5YjY2NzFmNGE3YWFmZGJlYTQ0MzE2YWE5Nzk5M2ZhMzFjNTZjMzRmMGFjZDYyOTVjZDJmY2E4YmU5ZWE2YWYyZjRkNjU2Zjg5YjExM2NiM2IzY2UzNTc1M2JjMDEyODYyOTM3MmZhZGU4OTAzOTdjMjk3ZWU0YzIyZTczNWUyYjVmM2M3MzgzZWQxNTRjZjA5NDE4ODQxMzZiYzZlNTFmODYwODAzYjk2M2MxNDU3OTVjOGY1NzNhYjQzOTUzZDI1YzA4MzdiYjEzYWRiY2ZjNTA2Nzk1ZGIyNmZiZDdhMjc3ZDk1MzJhMjNiNWM0NzI2Mjg5NDRhM2RjZmM0MjRlNDJmYzU0YjJlZDJjYzgxNjZjYjgyZTkzNjRhZjkxMjA4ODEzMTNjOTdlNDI5YmVkMTViZDlkNDZmZTQwN2YyMjljYmM2ZGFmMTQ0MmU0MmM1NzY2NGE3ZTgzMmE4MDkzNjQ3NTAzOTZhMGIxMzRlZmNjZjlhMzFlMWVmMWZkZDIyNzlkMTE3OWE2NzNmZWRhMzMwYjk5ODk2ODFjOTRkNjllYjE5N2I2YzMwNDg2MjNlNDljOThjYzdjZmM4ZDg0NWMxN2Y5MDU5ZTdmMTViNzJhZjg2ODBjYWQyNTkxY2M5YzEzNWIyMDQ0ZmU3ZGY0NWI4YjZlZjZlOGFmODVkZGI2NzdmMDg5N2ZmYmRhODEzMWZmZjBlYmExZjk0MjAwZjQzNWJjMjZjZmU1MDkzYzYzZjU0NzYyMGVmYjNiZjhmOTA1ZmU0Y2ExYzQwZTE2M2RmYjY0MzJjNGFjZjA2ODU0MGMyYzgxYzAzOTJkMzc1ZTk5ZTM5NjA5NzM0NDdiZWNlZWZiZDQzN2Y1MTYxNmY4NTIzNmQ3NTgxNWM1MTA3MzI3N2NjN2NlY2E2MjJiYjc2MjM2ZDA1YTgzMGUwMjRhMjMxNTY2ZmIwN2Y2ZjRlMzY3MWJjN2ZkNWUyMmU0ZGExZjRkNGY0ZTU2YTE3OTMyNWIyZWE5ZTUxZDY0ODRkZjA5NDFlMGI0NmJjZjQxNDhlOTg1MzBlOWIzNjQxZTM1MWI2NzA3M2FjZTg0MzhmYWM2ZDlhMTk5ODhhZjRkNTk0MDQ4ZjEyZWFjNGJiYWE3M2ViMTVkNTk3YjFmZGJmMzRjZTk0MTA1MjBkOWRjNGI2YmI3YTk5YTEyZGNkYzUzMGM0OWJiNjdjYTk0MmFkZWNiN2FkZjI3NDU2ZWJhOWE5YjQxNmJiOThiMjVjODAyMGY0YzI1MDdiNzRhOWRkYjk0ZjE5N2VhNDJmMDM1MDBiZGU3NTFjMDRlYzJjNmI0MjdjZTBmODAzMjJhNmIzNTZmMGQ5ZDI2NTMxODQzNjM5YzdjNzkzOGI4MzU0MWM1OGZlZGQwMzk4ZDgxYjkzMDMyY2I0ODkyOTAzYTViMWNmZDIwNWIzMzM3MDJlN2Y4MGMxNDYxYTE1ZWRkNjA1OGMyZTA4ZDhhZmU0NGU0YzViZmQ3ZDlhYzI1NzhiNWExNmI0YzRlNDNiYWQ1ZjdiMjIwNDFkZTVhOTVjNmY2NDQyMmRiMjcwZTFmNjE2ZTM3OWEwMzRmYjNjMDhjZjg5MmFmNmRmOGFmOTFjMjc2N2ViNzZiY2YwMThlMzVkNjZmYmY0YWMxZTVhNmExMDAzM2VhMTE4ZjhjZDJlZGY1N2MyMjg4YTkzZjJmODViNmZmNDEyODNiMDI5ZTVjN2IwNGJkYWMzM2I1YWE3OWJmNzk5MjkyYTBhMDQ2Yjk4ZTZkMTNhMmJiNTNhOTcwZGQwYTU3ODQwMzQ2MDAwMDAwMDZjM2ZhZjJiODQ0ZTZmMTczODQ5OThhZTA2MTY3NTVlYjc1Nzg0NThiNzA5NjA3OGEzNmY5ZTU1NmEyYTA5MWJlNDdjMGY4NWZmZDhlZTkxNjczNDg1NWE2ZDExNmZhMTQzMWFkNmNmZjQ1ZDJhOGE3ZjZjMTIyZjRkNDkyZGYzMjQzODY4MWQwYjk1ZmViOTczMTI1ZTRlZTcwZWJlMTE2OTkyOTBiODMxZTg2NTcxZTM2NTEzYTcxZjE1OWQ0OGNlNTYzZjY4MTRjYzJhODk4NTFkMjUyMGM1Mjc1YjM0Y2M4MzYxNGNhYjE0YzBkMTk3MTY2NTgwZDgwMGVlNmI5MDA0YjhmZDcyZGFhYzhkNzNjMzZjMTYyM2MzN2JlOTNiYTQ5YTA2YzRlZmRlMjM4YTNhMTBhMDVkYWJhNWQ0OTQyZjdkZTUyNjQ4YWYyYmUzMWYzM2U3MjNiMzYwNTM0NjI4MmY1ZDVlMzU2YzVkMDAwNGVlYTQwZmUwYjgwYWJmNjU4ZjZjOTZjNTYzMTlhYjUzZDdmZWZiNTg3OWUwMTM2ZDFjZjMyMDk3M2EyZjQ3YzFlZTNkMjE1NTQ5MTBmMDlkMTdhZmFjNDYwNzY1N2M0MzA5ODkwOTU3YTQ5NTRiZjg2ZTJhODQ5MWJhMzdkZDg4YjJjM2ZlM2M3ZWRlYmQ3NjdjNDAwYmMyM2U0MGQxNjViMjcxMzNjNzI2YjkwYmMyNmNiYjJhODZhNmFhNDAwYzQ3YWE3ZmZjNTM4Mzg4ZGU4NDkwYjkzNDlhZmE1M2I4MTRmZmUyYTU2ZmYxNmE0OTZlOTY0ODI4NDE5Mzc1NGY5ODlmNmYxMmFlYjZlIjoiMDAwMDAwMDYwMDAwMDAwNGQ5NmJiMjY3NDRkOTllZjYyNGUzMjE2MWMzNmQzZDZlZmNkZDA0ODRlMmIxN2E2ZGQxODMxMjViZTRiMWFmMWNkYTkzMWE5MWEzYWNiMTE1MTg3N2MxNzRmNzk0M2ZkOSI6MAogCiBMTVMgaGFzaC1zaWdzIGludGVyb3AgdGVzdCAjMQogIyBUaGlzIHRlc3QgdXNlcyBkYXRhIGZyb20gaHR0cHM6Ly9naXRodWIuY29tL2Npc2NvL2hhc2gtc2lncyBkdWUgdG8gdGhlCiAjIGxpbWl0ZWQgYW1vdW50IG9mIGF2YWlsYWJsZSB0ZXN0IHZlY3RvcnMgZm9yIExNUy4gVGhlIHByaXZhdGUga2V5IGlzIHN0b3JlZCBpbgotIyBkYXRhX2ZpbGVzL2xtc19oYXNoLXNpZ3Nfc2hhMjU2X20zMl9oNV9sbW90c19zaGEyNTZfbjMyX3c4X3BydiBhbmQKLSMgZGF0YV9maWxlcy9sbXNfaGFzaC1zaWdzX3NoYTI1Nl9tMzJfaDVfbG1vdHNfc2hhMjU2X24zMl93OF9hdXguIE5vdGUgdGhhdCB0aGlzCisjIC4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL2xtc19oYXNoLXNpZ3Nfc2hhMjU2X20zMl9oNV9sbW90c19zaGEyNTZfbjMyX3c4X3BydiBhbmQKKyMgLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvbG1zX2hhc2gtc2lnc19zaGEyNTZfbTMyX2g1X2xtb3RzX3NoYTI1Nl9uMzJfdzhfYXV4LiBOb3RlIHRoYXQgdGhpcwogIyBzaWduYXR1cmUgdXNlcyBsZWFmIGtleSAwLCBzbyBtdXN0IGJlIHRoZSBmaXJzdCBzaWduYXR1cmUgZ2VuZXJhdGVkIGJ5IHRoZSBrZXkKICMgaWYgdGhlIHNpZ25hdHVyZSBpcyB0byBiZSByZXByb2R1Y2VkLiBNZXNzYWdlIGRhdGEgaXMgcmFuZG9tLiBOb3RlIHRoYXQKICMgaGFzaC1zaWdzIHN0b3JlcyBwdWJsaWMga2V5cyBhbmQgc2lnbmF0dXJlcyBpbiBIU1MgZm9ybSwgd2hpY2ggYXBwZW5kcyBhCkBAIC05Myw4ICs5Myw4IEBACiAjIFRvIHByb2R1Y2UgYW5vdGhlciBzaWduYXR1cmUgd2l0aCB0aGlzIG1lc3NhZ2UgYW5kIGtleSAobm90ZSB0aGF0IHRoZSBhY3R1YWwKICMgc2lnbmF0dXJlIGJ5dGVzIHdpbGwgZGlmZmVyIGR1ZSB0byByYW5kb21pemF0aW9uKToKICMgKiA8ZG93bmxvYWQgYW5kIGJ1aWxkIGhhc2gtc2lncz4KLSMgKiBjcCBkYXRhX2ZpbGVzL2xtc19oYXNoLXNpZ3Nfc2hhMjU2X20zMl9oNV9sbW90c19zaGEyNTZfbjMyX3c4X3BydiB0bXAvbG1zLnBydgotIyAqIGNwIGRhdGFfZmlsZXMvbG1zX2hhc2gtc2lnc19zaGEyNTZfbTMyX2g1X2xtb3RzX3NoYTI1Nl9uMzJfdzhfYXV4IHRtcC9sbXMuYXV4CisjICogY3AgLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvbG1zX2hhc2gtc2lnc19zaGEyNTZfbTMyX2g1X2xtb3RzX3NoYTI1Nl9uMzJfdzhfcHJ2IHRtcC9sbXMucHJ2CisjICogY3AgLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvbG1zX2hhc2gtc2lnc19zaGEyNTZfbTMyX2g1X2xtb3RzX3NoYTI1Nl9uMzJfdzhfYXV4IHRtcC9sbXMuYXV4CiAjICogPFNhdmUgbWVzc2FnZSBpbiBiaW5hcnkgZm9ybWF0PgogIyAqIDxoYXNoLXNpZ3M+L2RlbW8gc2lnbiB0bXAvbG1zIG1lc3NhZ2UuYmluCiAjICogY2F0IG1lc3NhZ2UuYmluLnNpZyB8IHh4ZApAQCAtMTAzLDE1ICsxMDMsMTUgQEAKICMgKiBTYXZlIG1lc3NhZ2UgYW5kIHNpZ25hdHVyZSBpbiBiaW5hcnkgZm9ybWF0CiAjICogZWNobyAtbiAtZSAiXDBcMFwwXDAiID4gbWVzc2FnZS5iaW4uc2lnOyBjYXQgc2lnLmJpbiA+PiBtZXNzYWdlLmJpbi5zaWcgKHJlc3RvcmUgdGhlCiAjICAgSFNTIGxldmVscykKLSMgKiBjcCBkYXRhX2ZpbGVzL2xtc19oYXNoLXNpZ3Nfc2hhMjU2X20zMl9oNV9sbW90c19zaGEyNTZfbjMyX3c4X3B1YiB0bXAvbG1zLnB1YgorIyAqIGNwIC4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL2xtc19oYXNoLXNpZ3Nfc2hhMjU2X20zMl9oNV9sbW90c19zaGEyNTZfbjMyX3c4X3B1YiB0bXAvbG1zLnB1YgogIyAqIDxoYXNoLXNpZ3MvZGVtbz4gdmVyaWZ5IHRtcC9sbXMgbWVzc2FnZS5iaW4KIGxtc192ZXJpZnlfdGVzdDoiNmI3NDM5ZTMxZWYxMjhjNTRmMTUzNmY3NDVmZjEyNDYiOiIwMDAwMDAwMDAwMDAwMDA0MTYzZmMyZTNkMzI2N2Q4YzBkOWZkOWU3YmI3YTRlYWU4NGMzZDk4Y2Q1NjVkZTM2MWVkYzQyNjA2Nzk2MGZjMzIwMWQ5YmUxYzMwZjRlNGVkY2U5MTg0NDc1M2FhMTNmZjIxZTkyNjQ4YWM3OTViN2MyOWRkNjE0MDk2MmI1YTFmYjk3YjAyNTcwNDAyYTQ5OGE0OTUwNDRlZGNiMjZkMTMyMWM1MmU5MWM2MGNjM2ZlYjhmOGU4NGZjNzdmOTdmYjZlN2FmYmZlNGMyZjIyMDNkOGQ4NDMwM2UyZGQyMTJiNjUyZTA4YTJlNWEyNGEzMzNkZjg1OWNlYTNjNWE1NDc1NjFmN2NlNmQxODJlMmEzZjJmMDE4ZWY3ZTA1Nzg2MjE5MTZjZmY5MDVjMDcxM2ZhNWYyYmY3MzI0OGFlNjk4NWFlYmM0MDg2Yjc5ZWJmNzFiOGRjYmI1OTJlYjYxZGM2MzAzZDA2ZGJkYTg4MDYzNjkwMzYxYjBkZDI1ZWExYzJjNmI0ZDgyZGRkYmUxMTc0MDg2NGM2NWMyMjhkNjdlOWExNzEwNTA2ZTU4NWE3NDhlN2UwMmIzNjcwNmU1Y2ZmODNiMzU4OTYxM2YwN2M2MzZhYjc3ODRkNmE4Mjg4ZDMzZTgwZjA2MzE2NWEyZGRjYmIwZDdkYTgxNWRmODA0M2RmYTUwMGMzZTMxM2M1MzNiZjZhZWM5NTkyMzdjOTIzODEzZDMxMDliZGFlYjE5NWIxMzM3ZjRjZjIxYzFjODYzZjYyNjFkY2E0MTE4MTk2MDNhM2VhNjBjZjM0YzgxYjQ2MmM0OTc5YjM1N2RhMmJjZGYzMTI4MzQzY2E1YThhOTU3ZTNjYTRlZWJiOTE0ZDc0Mzg2MmUyOWVmNDhlNDNlN2M1YTdhYWY3YTJmZTEyNTFjMzA5YzY1ZTkxNDNkY2ZiMjk4ZmEwZDM1MzA4NGY2MGMwNzc5ZTFhMDliMDQwZjEzYzEwMjVlYzk5NDAyYjg0NGZmOTk5NmRlY2Y0YjVmMGQzMmEwODU4MTI2ZmYyOTM0NzJhYTkzZmJjMjAxN2QzOWZlZTkzZmY5ZjBjYTI3NTJiMjVjZmExMjU0MmJmMTljYzFiOGMxMDJkNjViNzBkY2NmNzYwZjI2Y2I1NDY3NDJjZTkwOWQ0NTM0NWY4MDJhOTg1YmFlNmEwZjkyMmE5YzJhM2RjOTkyZmFlOWY2ZjJmYmEwYzUyY2FkODI1NjRiZGU2ZWQ4YWY4ODBlZTdhNWViNWM2NDM2NjExZTVkYTFjNjkwODMxYmVkMzRlM2RkNjVhY2YyYjhmNDk2YjY0NDhlOTU3YWZjMTZjNDhiNmNkNzMzYmM4NGUzNjA2YTFkMDYwOWYwODAxNWMxNGI1NjE5YTI3MjNmOWIyMjk1MGVmYzdmZjdiNzMzYzI5OWZjZDg0ZWQ4OWM0ZDVjZDQzYTlhNTRmMjVmYzBmYTEzNzBkMTg0ZjllODAxMWI2MGJhMzhkZmNhMGVlZWI1NmFlMzdhNTgyMzcxOGM4MjEwZGIyMGMyZGUxM2MzOWU0Mzk3MGIwYjUzYjg1YjljZjllYTBkZDAyNWU3ZGI1NThiNDYzYzY4Mzk4MGZlNTllMGRlZmRlNDFhZmU4MjVjZmI4NjA2Y2E4NjE2MDJhN2ZlZmQ3NTA2ZWRjODFiN2FiNGExZTA2MjZlMGJhYzFmOTliZTExOGRiYzFlMjkxMDI4ZmM3M2QwYTBlYTY1NTlhZTFkY2Y3NDc3ZDY0NzQyYzliZWY4OGVmMDRiMmVlNGQzOTJjZjFlZmEyM2Q4YjA1ZDExZDI0MTRlNjRmNDU0MDYyM2UxMWJiZjU3ZmI4YWUyMTkzMzFkYjBkZjQ1OWE5ODQ5ZjI3MDBlNmZhN2ZmNGVkYjBmYzAxNzY0OTQ5ZTI3OWU4NDM3NGU3YTU3ZmI1ZWU2MjIxYjJiNzJkYmNmMmFiOWM5ODhmZTA3ZDIxZTE2OWI0MzM4ODg3MTI5YWM1MDNjYzZjMDkxMjc4Nzc3OGQ1MWI0YjkyMWNmN2JiMTdkNDAyOGI3ZmFmNmMyMWRkNjE2YTFhYzNiNTBkNTk1YWUwZTM2NjJlN2ZhYTE2YjlkZWM3Njk0NDYyYzdmYjg1MzllY2UwYWYzM2NjNWEzZGMzMzY0MWI4ODI3YmY0NzUxYTcwOGQ3YmYyODZjZjJlNzk1YjhmNDViNzZlMTEwOWFiZDkwOGQwMzg4ZDZhYjhlY2VhNjdiMTg3YWFiZDgwMzQ5ZTRiZDI4NmUzYjZlZWIzNTM1Y2M5YzM0M2EzOWZlOTBjYjQ0MzkwNmIxOWQyNDgzYjRjOTNkMGUzNWNkNjhkOWY1NTIzZDU0MDBhMmIxNzA4YmEzMzYxYmQwNzU3ZWQ2OWIxZGE4ODQ1NTk0ZWRmMDUzOTk1YjJkOTZiZWQ4MjEwYWFhYjI1ZmMzNGIyZGQ1ODAwNGNlODAwMzYwZjI0ODYxZTU5MTJhYzMzOWVkMGE3ODU0OGUzMDNlNzI4YTQxZTA1YzExZDc5MDEzZTM5NzFlYWZhODAzNGU2M2VjZjFjODQyZjBkOWU3MzVmZjNiNWJhZGZkNjNhZTA3ZjA1MWM5NGE5YTg2NzI2MGI1MTdlNWMyYzc1ZTg4ZTAzZDA2OWJkMzk4MTZhMjI1NWM5MGRlODFiYjc5NjIyMTQ1Yjc0Njk4NTNhMDJlYWM0NTI4OWZkOWY5ZjQwZTJmY2NkZDhkZGI3NDA0NjkzMzFmNjFiYWRjMWI3ZjZlMDE0NWRmZTMwMTQxYWQyZjI2YWM4ZDdmZjUxMjVkYzRkZmYxZmVjNTc2MjljZWE0ZjdkZTQ0MDFmYzA1NmU5YTM4ZWEwMjhhYzljNjY2Y2NkM2Y1Mjc5NDc2NzI0MDhhNzU5YTU3OTFkOWVmZGViMWZmMjUzOTI0MTM3MjhhMDNkNGM2NDFmNGNlMTU0MmI2OTUyZTc1OTVmMWVlY2YxMDYwMDAwMDAwNjcxYjA5MTJkNzM0NDQyMTQ2ZTEyOGQwMDI5MTAxYWQzNGE2ZDJkNTg2NjQwMjM1YzgyOGQ0MjdkZmFmZmRiMTU2NzcxZjA2OTI2Njc4ZmE1MGFhNzE2NzY4NGMxZGUxMDg5NDRiMmM0YTMzNThmNWU5MjYzNjgwMDllNDUwMGE4ZDRkNTAxMTI0YmMyNWE0YzliMWNmYjk1NDUwM2Y0YWUyNmM5MjIyMWUzOWM2ODA4NDNhZTU1Y2ZjYTk3MmUxMzljODJlMmU0NDY5YTcwM2ExODY2ZmEwZTZkNzY2MzY1OTFmNGFkMDdmN2QxZWFhMTkwNzc2NjBhZDQ2YTZmOWQ1MzQ5NzBlNmE0OWUyNDYyMWI3YzdjMjgzMjUzZGQyMmZiMjRlYjc4MTlmYWI4NGJhYjg4ZTQyNTU1ZDU0MzdkNWFmZTA2NjE1YTdlMGQxMDNjYzg1OTU2MTY2OTBmMTMzN2Y0MzQ1Y2Y0MTg3MjRmMDdkMGRjNGQyYzA4OTliNjkxNjkxZjM5NzIwMjIwNGVmMzQzNDJiNTcyNWRjNmFkZmU1NDlhYjBiODg3NTcyYWQzODExM2M0MDdmOTZmY2RmZWVhMGZmYzRmMzMzYWRkZmVjMjk2MTY5ZTUzZTNjNWIyNDc5N2EyMGYzYjJmMDQzZjVlOTY5MjBkZTk5MjdkYTQ2NmYwOTM4OWQzZTUyYTU2NjVmMzgwZjY4NjY2YTAxOWMyMDFlNzEwYWI0YzE2OGQ1YWM5NTJhMDJkNTkwOWE2ZmNhZjQ5OGEzM2UyMTI0ZTZhODI4MjAzNzQ0ZWUzZmU3MDQ2NWFkZGUwY2ZiY2NjMWI0NjM0NTQxNjM4YWIiOiIwMDAwMDAwNjAwMDAwMDA0ZTE4NzYwZWYyYzg2MTkyYWVlODg1NzllMzc2ZjM1Y2QxNTM0MTlkNjIyODAzYTQ4M2U3OWY2ZDM2ODYyOTMwOGE4YWI2ZmY2NjNjNGYxMDhiMjAzM2FmMjkwZGNlZGZhIjowCiAKIExNUyBoYXNoLXNpZ3MgaW50ZXJvcCB0ZXN0ICMyCiAjIFRoaXMgdGVzdCB1c2VzIGRhdGEgZnJvbSBodHRwczovL2dpdGh1Yi5jb20vY2lzY28vaGFzaC1zaWdzIGR1ZSB0byB0aGUKICMgbGltaXRlZCBhbW91bnQgb2YgYXZhaWxhYmxlIHRlc3QgdmVjdG9ycyBmb3IgTE1TLiBUaGUgcHJpdmF0ZSBrZXkgaXMgc3RvcmVkIGluCi0jIGRhdGFfZmlsZXMvbG1zX2hhc2gtc2lnc19zaGEyNTZfbTMyX2g1X2xtb3RzX3NoYTI1Nl9uMzJfdzhfcHJ2IGFuZAotIyBkYXRhX2ZpbGVzL2xtc19oYXNoLXNpZ3Nfc2hhMjU2X20zMl9oNV9sbW90c19zaGEyNTZfbjMyX3c4X2F1eC4gTm90ZSB0aGF0IHRoaXMKKyMgLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvbG1zX2hhc2gtc2lnc19zaGEyNTZfbTMyX2g1X2xtb3RzX3NoYTI1Nl9uMzJfdzhfcHJ2IGFuZAorIyAuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9sbXNfaGFzaC1zaWdzX3NoYTI1Nl9tMzJfaDVfbG1vdHNfc2hhMjU2X24zMl93OF9hdXguIE5vdGUgdGhhdCB0aGlzCiAjIHNpZ25hdHVyZSB1c2VzIGxlYWYga2V5IDEsIHNvIG11c3QgYmUgdGhlIHNlY29uZCBzaWduYXR1cmUgZ2VuZXJhdGVkIGJ5IHRoZSBrZXkKICMgaWYgdGhlIHNpZ25hdHVyZSBpcyB0byBiZSByZXByb2R1Y2VkLiBNZXNzYWdlIGRhdGEgaXMgcmFuZG9tLiBOb3RlIHRoYXQKICMgaGFzaC1zaWdzIHN0b3JlcyBwdWJsaWMga2V5cyBhbmQgc2lnbmF0dXJlcyBpbiBIU1MgZm9ybSwgd2hpY2ggYXBwZW5kcyBhCkBAIC0xMjEsOCArMTIxLDggQEAKICMgVG8gcHJvZHVjZSBhbm90aGVyIHNpZ25hdHVyZSB3aXRoIHRoaXMgbWVzc2FnZSBhbmQga2V5IChub3RlIHRoYXQgdGhlIGFjdHVhbAogIyBzaWduYXR1cmUgYnl0ZXMgd2lsbCBkaWZmZXIgZHVlIHRvIHJhbmRvbWl6YXRpb24pOgogIyAqIDxkb3dubG9hZCBhbmQgYnVpbGQgaGFzaC1zaWdzPgotIyAqIGNwIGRhdGFfZmlsZXMvbG1zX2hhc2gtc2lnc19zaGEyNTZfbTMyX2g1X2xtb3RzX3NoYTI1Nl9uMzJfdzhfcHJ2IHRtcC9sbXMucHJ2Ci0jICogY3AgZGF0YV9maWxlcy9sbXNfaGFzaC1zaWdzX3NoYTI1Nl9tMzJfaDVfbG1vdHNfc2hhMjU2X24zMl93OF9hdXggdG1wL2xtcy5hdXgKKyMgKiBjcCAuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9sbXNfaGFzaC1zaWdzX3NoYTI1Nl9tMzJfaDVfbG1vdHNfc2hhMjU2X24zMl93OF9wcnYgdG1wL2xtcy5wcnYKKyMgKiBjcCAuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9sbXNfaGFzaC1zaWdzX3NoYTI1Nl9tMzJfaDVfbG1vdHNfc2hhMjU2X24zMl93OF9hdXggdG1wL2xtcy5hdXgKICMgKiA8U2F2ZSBtZXNzYWdlIGluIGJpbmFyeSBmb3JtYXQ+CiAjICogPGhhc2gtc2lncz4vZGVtbyBzaWduIHRtcC9sbXMgbWVzc2FnZS5iaW4gKGluY29ycmVjdCBzaWduYXR1cmUgdXNpbmcgbGVhZiBub2RlIDApCiAjICogcm0gbWVzc2FnZS5iaW4uc2lnCkBAIC0xMzMsMTQgKzEzMywxNCBAQAogIyAqIFNhdmUgbWVzc2FnZSBhbmQgc2lnbmF0dXJlIGluIGJpbmFyeSBmb3JtYXQKICMgKiBlY2hvIC1uIC1lICJcMFwwXDBcMCIgPiBtZXNzYWdlLmJpbi5zaWc7IGNhdCBzaWcuYmluID4+IG1lc3NhZ2UuYmluLnNpZyAocmVzdG9yZSB0aGUKICMgICBIU1MgbGV2ZWxzKQotIyAqIGNwIGRhdGFfZmlsZXMvbG1zX2hhc2gtc2lnc19zaGEyNTZfbTMyX2g1X2xtb3RzX3NoYTI1Nl9uMzJfdzhfcHViIHRtcC9sbXMucHViCisjICogY3AgLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvbG1zX2hhc2gtc2lnc19zaGEyNTZfbTMyX2g1X2xtb3RzX3NoYTI1Nl9uMzJfdzhfcHViIHRtcC9sbXMucHViCiAjICogPGhhc2gtc2lncy9kZW1vPiB2ZXJpZnkgdG1wL2xtcyBtZXNzYWdlLmJpbgogbG1zX3ZlcmlmeV90ZXN0OiIwNzA1YmE4Mjk3YzdiOWZhNWYwOGUzNzgyNWFkMjRhMCI6IjAwMDAwMDAxMDAwMDAwMDQwYTQzMjQ1NGI5OTc1MGY3YjcwM2YwMjgwZjkyODE4YjA1NzBkMDI2N2E0MjNiMzc3YmU3Y2YwNTYxMzA1ZDRjZTk4N2I5ZDhkYmMxYzNmOGJhNDEwYmJlNmI5MjE0MDZlYjgwMjY4OGQyZGQ4YTFhNmZhNGExMjRjYmNhZTliNWEyMTBmNTgzYTk1NjM4NGMwNjMxMTk1M2IwMzhiNGFkMmMyODA4MjI0ZmMzYTY0MTBjZDNiODkyNzQzNzE5NTZiY2Q0MjUzYTI1MWNiYTY0MDliMDljODIyZTFkMjlkN2EwMzc2NDhhNmYyNTYyZDBkZjYzNTlhMDQzNjIyZjI1NmY1YWM3OTczNmMwOGZjNDE4NTc1OGZmMDAyYTgzOTdlNTYwZDU4MTIzNzM5NDYzNDhhZmJhMmNjZjJjYzBmM2JhNzQxZWMwNzZkNDU4N2E1NGI4YjYyNTgwNGI4MTRjMzA1NDAxNTJhM2RjODQzYTU5MGM5NGNjMjNiYTg1N2U0YzQ1OGM4YWI2ODdiNWI5YjY4ODM3ZWU4OTA0NTRjYzE5YmI1ZjQyYTFlNmRjMDUxODAzZmFiNTBiNDQwMDY3YTkwMzAxM2Y2NzVhNzc0YjVkMDJjZDU2Mjg5NTE4ZDY1Zjg2OWYyMmIyZTJiNThkNDk5ZTllMzkyOWVjNWE5ZjVkNmQ2ZTAzY2Y5MTQ4NjA5NGFiYTdjODg0OTFjZGUzNWI4MWMxNzVjNDA0MTBiYzQwMmQyMGYwYTczYTRkYTg0NGQzYTFkNDdlNTc2MThiN2YxOGZhNWFjODVlODc3YjVmYWExZTBiNjczM2MyZDk2YjI5NzBmZGQ2ZTYwNjQzNWUzZWM1MGVhZmE4OGY4NGZiNzUxMjIxN2FhNGJlNTg1OGExNDBmMjQyNjAzYmRhNjM0ZDc2YzQ4NGExODQyOThjNGRhOTAzMDk0NDY4ZDAzMmI4ODU4NmZkMmYzNTE4MjQwNWNkODUxMTVhZjZhMGJiZDQzMWYyZTQ0MjE3YTE2OTFkZDg4ODdkYjkxZDNiOTcyNjRmZjU1MmFlN2RjMTEwYTNhMTExZjJiZjc0Y2U0MjA3OTA1NWRmYjgzOTBhMTZkNjdmMjhiNzM4ZjgzN2FhNzg4MGYzMTM0ZGVhYmNmNmVjNzRjZGI1MjFiZmY0NGRmNjFjOTk5YmY3YThkZGM0M2I2NDgxMmNkNGYzYmZiMTUxMDQ4NjdkNWU1ODVkMWNiZjk5NzM4ZTBkZjkyNjYwYjNlOTEzNWE0Mzc3ZDExOTliOGI5NzM2MmZjODdjZTNjOTlkYjNiOGFiYTYzYmEzNWViMzUzZTVlYzc5YmNlZTgyYjljY2MxYjRmN2QxYjhjZTdlNWY4ODEzZDAwN2JlM2QwZTQ1Y2I4ZTcxNzMzMzdhNWE3YzRkMzJlYTUxMTZlMGZkYmQ3ODQ2ZWExZjM2NmE1MzE0NDljNzhjZDdhMTZjZTViZmZjZDZjY2NmNTRiN2YyNDlhNzRlMGRmNmIwN2Y2YjQ4ZGI0MmViOTU4ZmYxOGIwNjk5NTM2OGFmMGNhZGQ4MmY0NGNmNDRlNGI1M2YwOTkzZGU1ZjA2YjI4OWJlZTQxY2QyNWY5MGE5ZmJkMWJmYjFhYjI0NTFjOTZiMDdhZGNmYjUyMTBkMjkxZGQ1MDVlYTMwZTVkMzAzOTVjOGQ4NGVhYmNjZGQyYzdkNmYyOGE4OGY1ZTVkMjQ1YTY5ODBjNTc4MTBjZmUxN2M5YTM3ZWY1ZTc5YjdiOWNhNzU1ZDU2YTc4OWQyMTk4NTM3MmJlZDQyYWUyODMwZDgxZWJmMGZhZDZjNzIxYmQxZDNlZTkxYWUzNjNmNDBkMzg2YWFjMjNlN2MwZGI5NjU1MzljZTliZmYzOGYwZjI0YmVjMzIyN2I1YTI0ZjRjZDdmYTcxY2E5ZDMwNmZhYTNmYzQ3MjZjZGI2NjM0ZjIxODg5N2I3OWE0YWVkNjdhNTg3OTkyODUxMDRlZWQ3NDcwM2VjNGFmNmQ1NzM4YjI3YjRkNmZiNzFlNTJjMTE0OTA2OTQ4M2E3Y2NhNmMzZmNjYmRmZjc3MzEyZmY1YzYzNWQ4YjBjY2Q1M2RiYWY3YjQ5ODcyN2Y3YzdhNzBkM2ZkMWMzZjIxN2UyY2JkMGRmZTkxMjU4YWNiN2Y3OWY1M2Y1NjAxMmE4MmRhOTk3ZWE3NzdiNzZkYWMwNDcyZTVmOTgzMGE5M2ZiMDk3MDNiMWMwZTQ1Y2JmYmY2NDFkZTk0ZmNjNmM2MDlmMDJhNWIzMWFkNTgyMWJhNmNkNDg4MjlmYzVlMGM0YWQ3OGUxMWU0Y2FjOGVmYmIxYjE3MGM3OTRiN2IxMzFiMGMxYzRlMzlmZGVmODFkYjllN2FjY2VkNWVjODI0YWVkMGM0ZTZiNTdmZDFhZGQ0MTkxZTg3YmUxNDQ2YzdjNTE5ZWI2NzEyMDVjZThjNTg1NWFkN2EyYjlmZjdhOWNkNWM0NTMzNmY1MDhkMGY4ZDJjMTE1MmRjMjY1NjY1MGJkYWY4ZmNlZDY0MmYzYTRkNDQ1YjVmYzQ5OTEwYmRiZGM5NjM1ZGUwMDg2ZWU5NTgyYTc5NmNhOWY2MDUyZGU4MDVmNDFkZmJkM2U5NDk4MmEwNWNiZDM2YmFiNTgzZGQ1YjE1ODZkZGJiM2IxYTQ1ZjFhMjY1YmVjMDYyYzFhNTBkMjIwODcwYzBjNjIyZDg1MmU2NTBhNjdmMzFlOGViM2QxOWU5NjRkZTA5MjY3MTJiN2Y0MjlhZDA1MDI0YjhkYjUxZWI2NzAyYzM5NTgwZjYyZjAzNzM4ODg2MjI1MWJmNjZmMDJlZGVlOTYxNWE2Mzk1N2VhYjc1YjI4NTAxZjlmMjZjZWNkMDlhNWM5NDkxMjdjOWEzMDk1MDM2NjY3ZmNlOGU0NWJhNzU1NjhkNTE2MGZhMTcyNWE5ZTAwMzgxNDVkOTQ4ZjQzNzY0MGRjNDQ0MTAwMDAwMDA2NmU4ZGIxM2E5ZTc5ZDEwYTRlMDY3YWFkNDQ4YTE4NDdiNTQ4OWE2MmNkZTMwNTRlZTFlNWZmMmUzNzU0OWQ1MTY3NzFmMDY5MjY2NzhmYTUwYWE3MTY3Njg0YzFkZTEwODk0NGIyYzRhMzM1OGY1ZTkyNjM2ODAwOWU0NTAwYThkNGQ1MDExMjRiYzI1YTRjOWIxY2ZiOTU0NTAzZjRhZTI2YzkyMjIxZTM5YzY4MDg0M2FlNTVjZmNhOTcyZTEzOWM4MmUyZTQ0NjlhNzAzYTE4NjZmYTBlNmQ3NjYzNjU5MWY0YWQwN2Y3ZDFlYWExOTA3NzY2MGFkNDZhNmY5ZDUzNDk3MGU2YTQ5ZTI0NjIxYjdjN2MyODMyNTNkZDIyZmIyNGViNzgxOWZhYjg0YmFiODhlNDI1NTVkNTQzN2Q1YWZlMDY2MTVhN2UwZDEwM2NjODU5NTYxNjY5MGYxMzM3ZjQzNDVjZjQxODcyNGYwN2QwZGM0ZDJjMDg5OWI2OTE2OTFmMzk3MjAyMjA0ZWYzNDM0MmI1NzI1ZGM2YWRmZTU0OWFiMGI4ODc1NzJhZDM4MTEzYzQwN2Y5NmZjZGZlZWEwZmZjNGYzMzNhZGRmZWMyOTYxNjllNTNlM2M1YjI0Nzk3YTIwZjNiMmYwNDNmNWU5NjkyMGRlOTkyN2RhNDY2ZjA5Mzg5ZDNlNTJhNTY2NWYzODBmNjg2NjZhMDE5YzIwMWU3MTBhYjRjMTY4ZDVhYzk1MmEwMmQ1OTA5YTZmY2FmNDk4YTMzZTIxMjRlNmE4MjgyMDM3NDRlZTNmZTcwNDY1YWRkZTBjZmJjY2MxYjQ2MzQ1NDE2MzhhYiI6IjAwMDAwMDA2MDAwMDAwMDRlMTg3NjBlZjJjODYxOTJhZWU4ODU3OWUzNzZmMzVjZDE1MzQxOWQ2MjI4MDNhNDgzZTc5ZjZkMzY4NjI5MzA4YThhYjZmZjY2M2M0ZjEwOGIyMDMzYWYyOTBkY2VkZmEiOjAKIAogTE1TIGhzc2xtcyBpbnRlcm9wIHRlc3QgIzEKICMgVGhpcyB0ZXN0IHVzZXMgZGF0YSBmcm9tIGh0dHBzOi8vZ2l0aHViLmNvbS9wbXZyL3B5dGhvbi1oc3NsbXMgZHVlIHRvIHRoZQogIyBsaW1pdGVkIGFtb3VudCBvZiBhdmFpbGFibGUgdGVzdCB2ZWN0b3JzIGZvciBMTVMuIFRoZSBwcml2YXRlIGtleSBpcyBzdG9yZWQgaW4KLSMgZGF0YV9maWxlcy9sbXNfaHNzbG1zX3NoYTI1Nl9tMzJfaDVfbG1vdHNfc2hhMjU2X24zMl93OF9wcnYKKyMgLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvbG1zX2hzc2xtc19zaGEyNTZfbTMyX2g1X2xtb3RzX3NoYTI1Nl9uMzJfdzhfcHJ2CiAjCiAjIFRvIHByb2R1Y2UgYW5vdGhlciBzaWduYXR1cmUgd2l0aCB0aGlzIG1lc3NhZ2UgYW5kIGtleSAobm90ZSB0aGF0IHRoZSBhY3R1YWwKICMgc2lnbmF0dXJlIGJ5dGVzIHdpbGwgZGlmZmVyIGR1ZSB0byByYW5kb21pemF0aW9uKToKQEAgLTE0OSw3ICsxNDksNyBAQAogIyBmcm9tIGhzc2xtcyBpbXBvcnQgTE1TX1ByaXYsIExNU19BTEdPUklUSE1fVFlQRSwgTE1PVFNfQUxHT1JJVEhNX1RZUEUKICMgaW1wb3J0IHBpY2tsZQogIwotIyB3aXRoIG9wZW4oJ3Rlc3RzL2RhdGFfZmlsZXMvbG1zX2hzc2xtc19zaGEyNTZfbTMyX2g1X2xtb3RzX3NoYTI1Nl9uMzJfdzhfcHJ2JywgJ3JiJykgYXMgcHJpdmF0ZV9rZXlfZmlsZToKKyMgd2l0aCBvcGVuKCdmcmFtZXdvcmsvZGF0YV9maWxlcy9sbXNfaHNzbG1zX3NoYTI1Nl9tMzJfaDVfbG1vdHNfc2hhMjU2X24zMl93OF9wcnYnLCAncmInKSBhcyBwcml2YXRlX2tleV9maWxlOgogIyAgICAgcHJpdmF0ZV9rZXkgPSBwaWNrbGUubG9hZChwcml2YXRlX2tleV9maWxlKQogIwogIyBwdWJsaWNfa2V5ID0gcHJpdmF0ZV9rZXkuZ2VuX3B1YigpCkBAIC0xNjMsNyArMTYzLDcgQEAKIExNUyBoc3NsbXMgaW50ZXJvcCB0ZXN0ICMyCiAjIFRoaXMgdGVzdCB1c2VzIGRhdGEgZnJvbSBodHRwczovL2dpdGh1Yi5jb20vcG12ci9weXRob24taHNzbG1zIGR1ZSB0byB0aGUKICMgbGltaXRlZCBhbW91bnQgb2YgYXZhaWxhYmxlIHRlc3QgdmVjdG9ycyBmb3IgTE1TLiBUaGUgcHJpdmF0ZSBrZXkgaXMgc3RvcmVkIGluCi0jIGRhdGFfZmlsZXMvbG1zX2hzc2xtc19zaGEyNTZfbTMyX2g1X2xtb3RzX3NoYTI1Nl9uMzJfdzhfcHJ2CisjIC4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL2xtc19oc3NsbXNfc2hhMjU2X20zMl9oNV9sbW90c19zaGEyNTZfbjMyX3c4X3BydgogIwogIyBUbyBwcm9kdWNlIGFub3RoZXIgc2lnbmF0dXJlIHdpdGggdGhpcyBtZXNzYWdlIGFuZCBrZXkgKG5vdGUgdGhhdCB0aGUgYWN0dWFsCiAjIHNpZ25hdHVyZSBieXRlcyB3aWxsIGRpZmZlciBkdWUgdG8gcmFuZG9taXphdGlvbik6CkBAIC0xNzIsNyArMTcyLDcgQEAKICMgZnJvbSBoc3NsbXMgaW1wb3J0IExNU19Qcml2LCBMTVNfQUxHT1JJVEhNX1RZUEUsIExNT1RTX0FMR09SSVRITV9UWVBFCiAjIGltcG9ydCBwaWNrbGUKICMKLSMgd2l0aCBvcGVuKCd0ZXN0cy9kYXRhX2ZpbGVzL2xtc19oc3NsbXNfc2hhMjU2X20zMl9oNV9sbW90c19zaGEyNTZfbjMyX3c4X3BydicsICdyYicpIGFzIHByaXZhdGVfa2V5X2ZpbGU6CisjIHdpdGggb3BlbignZnJhbWV3b3JrL2RhdGFfZmlsZXMvbG1zX2hzc2xtc19zaGEyNTZfbTMyX2g1X2xtb3RzX3NoYTI1Nl9uMzJfdzhfcHJ2JywgJ3JiJykgYXMgcHJpdmF0ZV9rZXlfZmlsZToKICMgICAgIHByaXZhdGVfa2V5ID0gcGlja2xlLmxvYWQocHJpdmF0ZV9rZXlfZmlsZSkKICMKICMgcHVibGljX2tleSA9IHByaXZhdGVfa2V5Lmdlbl9wdWIoKQpkaWZmIC0tZ2l0IGEvdGVzdHMvc3VpdGVzL3Rlc3Rfc3VpdGVfbG1zLmZ1bmN0aW9uIGIvdGVzdHMvc3VpdGVzL3Rlc3Rfc3VpdGVfbG1zLmZ1bmN0aW9uCmluZGV4IDcxMTZmNjEuLjM3N2VmY2QgMTAwNjQ0Ci0tLSBhL3Rlc3RzL3N1aXRlcy90ZXN0X3N1aXRlX2xtcy5mdW5jdGlvbgorKysgYi90ZXN0cy9zdWl0ZXMvdGVzdF9zdWl0ZV9sbXMuZnVuY3Rpb24KQEAgLTE3LDYgKzE3LDcgQEAKIAogICAgIG1iZWR0bHNfbG1zX3B1YmxpY19pbml0KCZwdWJfY3R4KTsKICAgICBtYmVkdGxzX2xtc19wcml2YXRlX2luaXQoJnByaXZfY3R4KTsKKyAgICBVU0VfUFNBX0lOSVQoKTsKIAogICAgIC8qIEFsbG9jYXRpb24gZmFpbHVyZSBpc24ndCBhIHRlc3QgZmFpbHVyZSwgc2luY2UgaXQgbGlrZWx5IGp1c3QgbWVhbnMKICAgICAgKiB0aGVyZSdzIG5vdCBlbm91Z2ggbWVtb3J5IHRvIHJ1biB0aGUgdGVzdC4KQEAgLTM4LDYgKzM5LDcgQEAKIGV4aXQ6CiAgICAgbWJlZHRsc19sbXNfcHVibGljX2ZyZWUoJnB1Yl9jdHgpOwogICAgIG1iZWR0bHNfbG1zX3ByaXZhdGVfZnJlZSgmcHJpdl9jdHgpOworICAgIFVTRV9QU0FfRE9ORSgpOwogfQogLyogRU5EX0NBU0UgKi8KIApAQCAtNTAsNiArNTIsNyBAQAogCiAgICAgbWJlZHRsc19sbXNfcHVibGljX2luaXQoJnB1Yl9jdHgpOwogICAgIG1iZWR0bHNfbG1zX3ByaXZhdGVfaW5pdCgmcHJpdl9jdHgpOworICAgIFVTRV9QU0FfSU5JVCgpOwogCiAgICAgLyogQWxsb2NhdGlvbiBmYWlsdXJlIGlzbid0IGEgdGVzdCBmYWlsdXJlLCBzaW5jZSBpdCBsaWtlbHkganVzdCBtZWFucwogICAgICAqIHRoZXJlJ3Mgbm90IGVub3VnaCBtZW1vcnkgdG8gcnVuIHRoZSB0ZXN0LgpAQCAtNzEsNiArNzQsNyBAQAogZXhpdDoKICAgICBtYmVkdGxzX2xtc19wdWJsaWNfZnJlZSgmcHViX2N0eCk7CiAgICAgbWJlZHRsc19sbXNfcHJpdmF0ZV9mcmVlKCZwcml2X2N0eCk7CisgICAgVVNFX1BTQV9ET05FKCk7CiB9CiAvKiBFTkRfQ0FTRSAqLwogCkBAIC04Myw2ICs4Nyw3IEBACiAgICAgdW5zaWduZWQgY2hhciAqdG1wX3NpZyA9IE5VTEw7CiAKICAgICBtYmVkdGxzX2xtc19wdWJsaWNfaW5pdCgmY3R4KTsKKyAgICBVU0VfUFNBX0lOSVQoKTsKIAogICAgIFRFU1RfRVFVQUwobWJlZHRsc19sbXNfaW1wb3J0X3B1YmxpY19rZXkoJmN0eCwgcHViX2tleS0+eCwgcHViX2tleS0+bGVuKSwgMCk7CiAKQEAgLTEzOSw2ICsxNDQsNyBAQAogZXhpdDoKICAgICBtYmVkdGxzX2ZyZWUodG1wX3NpZyk7CiAgICAgbWJlZHRsc19sbXNfcHVibGljX2ZyZWUoJmN0eCk7CisgICAgVVNFX1BTQV9ET05FKCk7CiB9CiAvKiBFTkRfQ0FTRSAqLwogCkBAIC0xNTEsNiArMTU3LDcgQEAKICAgICB1bnNpZ25lZCBjaGFyICpleHBvcnRlZF9wdWJfa2V5ID0gTlVMTDsKIAogICAgIG1iZWR0bHNfbG1zX3B1YmxpY19pbml0KCZjdHgpOworICAgIFVTRV9QU0FfSU5JVCgpOwogICAgIFRFU1RfRVFVQUwobWJlZHRsc19sbXNfaW1wb3J0X3B1YmxpY19rZXkoJmN0eCwgcHViX2tleS0+eCwgcHViX2tleS0+bGVuKSwKICAgICAgICAgICAgICAgIGV4cGVjdGVkX2ltcG9ydF9yYyk7CiAKQEAgLTE5NCw1ICsyMDEsNiBAQAogZXhpdDoKICAgICBtYmVkdGxzX2ZyZWUoZXhwb3J0ZWRfcHViX2tleSk7CiAgICAgbWJlZHRsc19sbXNfcHVibGljX2ZyZWUoJmN0eCk7CisgICAgVVNFX1BTQV9ET05FKCk7CiB9CiAvKiBFTkRfQ0FTRSAqLwpkaWZmIC0tZ2l0IGEvdGVzdHMvc3VpdGVzL3Rlc3Rfc3VpdGVfbWQuZGF0YSBiL3Rlc3RzL3N1aXRlcy90ZXN0X3N1aXRlX21kLmRhdGEKaW5kZXggZmI5YjVlZi4uODE4ZWExYSAxMDA2NDQKLS0tIGEvdGVzdHMvc3VpdGVzL3Rlc3Rfc3VpdGVfbWQuZGF0YQorKysgYi90ZXN0cy9zdWl0ZXMvdGVzdF9zdWl0ZV9tZC5kYXRhCkBAIC0xMyw3ICsxMyw3IEBACiBtZF9pbmZvOk1CRURUTFNfTURfTUQ1OiJNRDUiOjE2CiAKIEluZm9ybWF0aW9uIG9uIFJJUEVNRDE2MAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9SSVBFTUQxNjAKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1JJUEVNRDE2MAogbWRfaW5mbzpNQkVEVExTX01EX1JJUEVNRDE2MDoiUklQRU1EMTYwIjoyMAogCiBJbmZvcm1hdGlvbiBvbiBTSEExCkBAIC0yMSwxNSArMjEsMTUgQEAKIG1kX2luZm86TUJFRFRMU19NRF9TSEExOiJTSEExIjoyMAogCiBJbmZvcm1hdGlvbiBvbiBTSEEyMjQKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjI0CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjI0CiBtZF9pbmZvOk1CRURUTFNfTURfU0hBMjI0OiJTSEEyMjQiOjI4CiAKIEluZm9ybWF0aW9uIG9uIFNIQTI1NgotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIG1kX2luZm86TUJFRFRMU19NRF9TSEEyNTY6IlNIQTI1NiI6MzIKIAogSW5mb3JtYXRpb24gb24gU0hBMzg0Ci1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTM4NAorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzM4NAogbWRfaW5mbzpNQkVEVExTX01EX1NIQTM4NDoiU0hBMzg0Ijo0OAogCiBJbmZvcm1hdGlvbiBvbiBTSEE1MTIKQEAgLTM3LDE5ICszNywxOSBAQAogbWRfaW5mbzpNQkVEVExTX01EX1NIQTUxMjoiU0hBNTEyIjo2NAogCiBJbmZvcm1hdGlvbiBvbiBTSEEzLTIyNAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEzXzIyNAorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBM18yMjQKIG1kX2luZm86TUJFRFRMU19NRF9TSEEzXzIyNDoiU0hBMy0yMjQiOjI4CiAKIEluZm9ybWF0aW9uIG9uIFNIQTMtMjU2Ci1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTNfMjU2CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEEzXzI1NgogbWRfaW5mbzpNQkVEVExTX01EX1NIQTNfMjU2OiJTSEEzLTI1NiI6MzIKIAogSW5mb3JtYXRpb24gb24gU0hBMy0zODQKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBM18zODQKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQTNfMzg0CiBtZF9pbmZvOk1CRURUTFNfTURfU0hBM18zODQ6IlNIQTMtMzg0Ijo0OAogCiBJbmZvcm1hdGlvbiBvbiBTSEEzLTUxMgotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEzXzUxMgorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBM181MTIKIG1kX2luZm86TUJFRFRMU19NRF9TSEEzXzUxMjoiU0hBMy01MTIiOjY0CiAKIGdlbmVyaWMgbWJlZHRsc19tZDUgVGVzdCB2ZWN0b3IgUkZDMTMyMSAjMQpAQCAtODEsNTEgKzgxLDUxIEBACiBtZF90ZXh0Ok1CRURUTFNfTURfTUQ1OiIxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MCI6IjU3ZWRmNGEyMmJlM2M5NTVhYzQ5ZGEyZTIxMDdiNjdhIgogCiBnZW5lcmljIG1iZWR0bHNfcmlwZW1kMTYwIFRlc3QgdmVjdG9yIGZyb20gcGFwZXIgIzEKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fUklQRU1EMTYwCitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19SSVBFTUQxNjAKIG1kX3RleHQ6TUJFRFRMU19NRF9SSVBFTUQxNjA6IiI6IjljMTE4NWE1YzVlOWZjNTQ2MTI4MDg5NzdlZThmNTQ4YjIyNThkMzEiCiAKIGdlbmVyaWMgbWJlZHRsc19yaXBlbWQxNjAgVGVzdCB2ZWN0b3IgZnJvbSBwYXBlciAjMgotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9SSVBFTUQxNjAKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1JJUEVNRDE2MAogbWRfdGV4dDpNQkVEVExTX01EX1JJUEVNRDE2MDoiYSI6IjBiZGM5ZDJkMjU2YjNlZTlkYWFlMzQ3YmU2ZjRkYzgzNWE0NjdmZmUiCiAKIGdlbmVyaWMgbWJlZHRsc19yaXBlbWQxNjAgVGVzdCB2ZWN0b3IgZnJvbSBwYXBlciAjMwotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9SSVBFTUQxNjAKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1JJUEVNRDE2MAogbWRfdGV4dDpNQkVEVExTX01EX1JJUEVNRDE2MDoiYWJjIjoiOGViMjA4ZjdlMDVkOTg3YTliMDQ0YThlOThjNmIwODdmMTVhMGJmYyIKIAogZ2VuZXJpYyBtYmVkdGxzX3JpcGVtZDE2MCBUZXN0IHZlY3RvciBmcm9tIHBhcGVyICM0Ci1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1JJUEVNRDE2MAorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfUklQRU1EMTYwCiBtZF90ZXh0Ok1CRURUTFNfTURfUklQRU1EMTYwOiJtZXNzYWdlIGRpZ2VzdCI6IjVkMDY4OWVmNDlkMmZhZTU3MmI4ODFiMTIzYTg1ZmZhMjE1OTVmMzYiCiAKIGdlbmVyaWMgbWJlZHRsc19yaXBlbWQxNjAgVGVzdCB2ZWN0b3IgZnJvbSBwYXBlciAjNQotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9SSVBFTUQxNjAKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1JJUEVNRDE2MAogbWRfdGV4dDpNQkVEVExTX01EX1JJUEVNRDE2MDoiYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiOiJmNzFjMjcxMDljNjkyYzFiNTZiYmRjZWI1YjlkMjg2NWIzNzA4ZGJjIgogCiBnZW5lcmljIG1iZWR0bHNfcmlwZW1kMTYwIFRlc3QgdmVjdG9yIGZyb20gcGFwZXIgIzYKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fUklQRU1EMTYwCitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19SSVBFTUQxNjAKIG1kX3RleHQ6TUJFRFRMU19NRF9SSVBFTUQxNjA6ImFiY2RiY2RlY2RlZmRlZmdlZmdoZmdoaWdoaWpoaWpraWprbGprbG1rbG1ubG1ub21ub3Bub3BxIjoiMTJhMDUzMzg0YTljMGM4OGU0MDVhMDZjMjdkY2Y0OWFkYTYyZWIyYiIKIAogZ2VuZXJpYyBtYmVkdGxzX3JpcGVtZDE2MCBUZXN0IHZlY3RvciBmcm9tIHBhcGVyICM3Ci1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1JJUEVNRDE2MAorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfUklQRU1EMTYwCiBtZF90ZXh0Ok1CRURUTFNfTURfUklQRU1EMTYwOiJBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Njc4OSI6ImIwZTIwYjZlMzExNjY0MDI4NmVkM2E4N2E1NzEzMDc5YjIxZjUxODkiCiAKIGdlbmVyaWMgbWJlZHRsc19yaXBlbWQxNjAgVGVzdCB2ZWN0b3IgZnJvbSBwYXBlciAjOAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9SSVBFTUQxNjAKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1JJUEVNRDE2MAogbWRfdGV4dDpNQkVEVExTX01EX1JJUEVNRDE2MDoiMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAiOiI5Yjc1MmU0NTU3M2Q0YjM5ZjRkYmQzMzIzY2FiODJiZjYzMzI2YmZiIgogCiBnZW5lcmljIG1iZWR0bHNfc2hhMyBTSEEzLTIyNCBUZXN0IHZlY3RvciBmcm9tIENBVlMgMTkuMCB3aXRoIExlbiA9IDgKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBM18yMjQKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQTNfMjI0CiBtZF9oZXg6TUJFRFRMU19NRF9TSEEzXzIyNDoiMDEiOiI0ODgyODZkOWQzMjcxNmU1ODgxZWExZWU1MWYzNmQzNjYwZDcwZjBkYjAzYjNmNjEyY2U5ZWRhNCIKIAogZ2VuZXJpYyBtYmVkdGxzX3NoYTMgU0hBMy0yNTYgVGVzdCB2ZWN0b3IgZnJvbSBDQVZTIDE5LjAgd2l0aCBMZW4gPSA4Ci1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTNfMjU2CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEEzXzI1NgogbWRfaGV4Ok1CRURUTFNfTURfU0hBM18yNTY6ImU5IjoiZjBkMDRkZDFlNmNmYzI5YTQ0NjBkNTIxNzk2ODUyZjI1ZDllZjhkMjhiNDRlZTkxZmY1Yjc1OWQ3MmMxZTZkNiIKIAogZ2VuZXJpYyBtYmVkdGxzX3NoYTMgU0hBMy0zODQgVGVzdCB2ZWN0b3IgZnJvbSBDQVZTIDE5LjAgd2l0aCBMZW4gPSA4Ci1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTNfMzg0CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEEzXzM4NAogbWRfaGV4Ok1CRURUTFNfTURfU0hBM18zODQ6IjgwIjoiNzU0MTM4NDg1MmUxMGZmMTBkNWZiNmE3MjEzYTRhNmMxNWNjYzg2ZDhiYzEwNjhhYzA0ZjY5Mjc3MTQyOTQ0ZjRlZTUwZDkxZmRjNTY1NTNkYjA2YjJmNTAzOWM4YWI3IgogCiBnZW5lcmljIG1iZWR0bHNfc2hhMyBTSEEzLTUxMiBUZXN0IHZlY3RvciBmcm9tIENBVlMgMTkuMCB3aXRoIExlbiA9IDgKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBM181MTIKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQTNfNTEyCiBtZF9oZXg6TUJFRFRMU19NRF9TSEEzXzUxMjoiZTUiOiIxNTAyNDBiYWY5NWZiMzZmOGNjYjg3YTE5YTQxNzY3ZTdhZWQ5NTEyNTA3NWEyYjJkYmJhNmU1NjVlMWNlODU3NWYyYjA0MmI2MmUyOWEwNGU5NDQwMzE0YTgyMWM2MjI0MTgyOTY0ZDhiNTU3YjE2YTQ5MmIzODA2ZjRjMzljMSIKIAogZ2VuZXJpYyBITUFDLU1ENSBIYXNoIEZpbGUgT3BlblNTTCB0ZXN0ICMxCkBAIC0xNzMsMzEgKzE3MywzMSBAQAogbWJlZHRsc19tZF9obWFjOk1CRURUTFNfTURfTUQ1OjE2OiJhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhIjoiNTQ2NTczNzQyMDU1NzM2OTZlNjcyMDRjNjE3MjY3NjU3MjIwNTQ2ODYxNmUyMDQyNmM2ZjYzNmIyZDUzNjk3YTY1MjA0YjY1NzkyMDYxNmU2NDIwNGM2MTcyNjc2NTcyMjA1NDY4NjE2ZTIwNGY2ZTY1MjA0MjZjNmY2MzZiMmQ1MzY5N2E2NTIwNDQ2MTc0NjEiOiI2ZjYzMGZhZDY3Y2RhMGVlMWZiMWY1NjJkYjNhYTUzZSIKIAogZ2VuZXJpYyBITUFDLVJJUEVNRDE2MCBUZXN0IHZlY3RvciBSRkMgMjI4NiAjMQotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9SSVBFTUQxNjAKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1JJUEVNRDE2MAogbWJlZHRsc19tZF9obWFjOk1CRURUTFNfTURfUklQRU1EMTYwOjIwOiIwYjBiMGIwYjBiMGIwYjBiMGIwYjBiMGIwYjBiMGIwYjBiMGIwYjBiIjoiNDg2OTIwNTQ2ODY1NzI2NSI6IjI0Y2I0YmQ2N2QyMGZjMWE1ZDJlZDc3MzJkY2MzOTM3N2YwYTU2NjgiCiAKIGdlbmVyaWMgSE1BQy1SSVBFTUQxNjAgVGVzdCB2ZWN0b3IgUkZDIDIyODYgIzIKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fUklQRU1EMTYwCitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19SSVBFTUQxNjAKIG1iZWR0bHNfbWRfaG1hYzpNQkVEVExTX01EX1JJUEVNRDE2MDoyMDoiNGE2NTY2NjUiOiI3NzY4NjE3NDIwNjQ2ZjIwNzk2MTIwNzc2MTZlNzQyMDY2NmY3MjIwNmU2Zjc0Njg2OTZlNjczZiI6ImRkYTZjMDIxM2E0ODVhOWUyNGY0NzQyMDY0YTdmMDMzYjQzYzQwNjkiCiAKIGdlbmVyaWMgSE1BQy1SSVBFTUQxNjAgVGVzdCB2ZWN0b3IgUkZDIDIyODYgIzMKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fUklQRU1EMTYwCitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19SSVBFTUQxNjAKIG1iZWR0bHNfbWRfaG1hYzpNQkVEVExTX01EX1JJUEVNRDE2MDoyMDoiYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYSI6ImRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGQiOiJiMGIxMDUzNjBkZTc1OTk2MGFiNGYzNTI5OGUxMTZlMjk1ZDhlN2MxIgogCiBnZW5lcmljIEhNQUMtUklQRU1EMTYwIFRlc3QgdmVjdG9yIFJGQyAyMjg2ICM0Ci1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1JJUEVNRDE2MAorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfUklQRU1EMTYwCiBtYmVkdGxzX21kX2htYWM6TUJFRFRMU19NRF9SSVBFTUQxNjA6MjA6IjAxMDIwMzA0MDUwNjA3MDgwOTBhMGIwYzBkMGUwZjEwMTExMjEzMTQxNTE2MTcxODE5IjoiY2RjZGNkY2RjZGNkY2RjZGNkY2RjZGNkY2RjZGNkY2RjZGNkY2RjZGNkY2RjZGNkY2RjZGNkY2RjZGNkY2RjZGNkY2RjZGNkY2RjZGNkY2RjZGNkY2RjZGNkY2RjZGNkY2RjZCI6ImQ1Y2E4NjJmNGQyMWQ1ZTYxMGUxOGI0Y2YxYmViOTdhNDM2NWVjZjQiCiAKIGdlbmVyaWMgSE1BQy1SSVBFTUQxNjAgVGVzdCB2ZWN0b3IgUkZDIDIyODYgIzUKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fUklQRU1EMTYwCitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19SSVBFTUQxNjAKIG1iZWR0bHNfbWRfaG1hYzpNQkVEVExTX01EX1JJUEVNRDE2MDoyMDoiMGMwYzBjMGMwYzBjMGMwYzBjMGMwYzBjMGMwYzBjMGMwYzBjMGMwYyI6IjU0NjU3Mzc0MjA1NzY5NzQ2ODIwNTQ3Mjc1NmU2MzYxNzQ2OTZmNmUiOiI3NjE5NjkzOTc4ZjkxZDkwNTM5YWU3ODY1MDBmZjNkOGUwNTE4ZTM5IgogCiBnZW5lcmljIEhNQUMtUklQRU1EMTYwIFRlc3QgdmVjdG9yIFJGQyAyMjg2ICM2Ci1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1JJUEVNRDE2MAorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfUklQRU1EMTYwCiBtYmVkdGxzX21kX2htYWM6TUJFRFRMU19NRF9SSVBFTUQxNjA6MjA6ImFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWEiOiI1NDY1NzM3NDIwNTU3MzY5NmU2NzIwNGM2MTcyNjc2NTcyMjA1NDY4NjE2ZTIwNDI2YzZmNjM2YjJkNTM2OTdhNjUyMDRiNjU3OTIwMmQyMDQ4NjE3MzY4MjA0YjY1NzkyMDQ2Njk3MjczNzQiOiI2NDY2Y2EwN2FjNWVhYzI5ZTFiZDUyM2U1YWRhNzYwNWI3OTFmZDhiIgogCiBnZW5lcmljIEhNQUMtUklQRU1EMTYwIFRlc3QgdmVjdG9yIFJGQyAyMjg2ICM3Ci1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1JJUEVNRDE2MAorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfUklQRU1EMTYwCiBtYmVkdGxzX21kX2htYWM6TUJFRFRMU19NRF9SSVBFTUQxNjA6MjA6ImFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWEiOiI1NDY1NzM3NDIwNTU3MzY5NmU2NzIwNGM2MTcyNjc2NTcyMjA1NDY4NjE2ZTIwNDI2YzZmNjM2YjJkNTM2OTdhNjUyMDRiNjU3OTIwNjE2ZTY0MjA0YzYxNzI2NzY1NzIyMDU0Njg2MTZlMjA0ZjZlNjUyMDQyNmM2ZjYzNmIyZDUzNjk3YTY1MjA0NDYxNzQ2MSI6IjY5ZWE2MDc5OGQ3MTYxNmNjZTVmZDA4NzFlMjM3NTRjZDc1ZDVhMGEiCiAKIGdlbmVyaWMgbXVsdGkgc3RlcCBtYmVkdGxzX21kNSBUZXN0IHZlY3RvciBSRkMxMzIxICMxCkBAIC0yMjksNTEgKzIyOSw1MSBAQAogbWRfdGV4dF9tdWx0aTpNQkVEVExTX01EX01ENToiMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAiOiI1N2VkZjRhMjJiZTNjOTU1YWM0OWRhMmUyMTA3YjY3YSIKIAogZ2VuZXJpYyBtdWx0aSBzdGVwIG1iZWR0bHNfcmlwZW1kMTYwIFRlc3QgdmVjdG9yIGZyb20gcGFwZXIgIzEKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fUklQRU1EMTYwCitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19SSVBFTUQxNjAKIG1kX3RleHRfbXVsdGk6TUJFRFRMU19NRF9SSVBFTUQxNjA6IiI6IjljMTE4NWE1YzVlOWZjNTQ2MTI4MDg5NzdlZThmNTQ4YjIyNThkMzEiCiAKIGdlbmVyaWMgbXVsdGkgc3RlcCBtYmVkdGxzX3JpcGVtZDE2MCBUZXN0IHZlY3RvciBmcm9tIHBhcGVyICMyCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1JJUEVNRDE2MAorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfUklQRU1EMTYwCiBtZF90ZXh0X211bHRpOk1CRURUTFNfTURfUklQRU1EMTYwOiJhIjoiMGJkYzlkMmQyNTZiM2VlOWRhYWUzNDdiZTZmNGRjODM1YTQ2N2ZmZSIKIAogZ2VuZXJpYyBtdWx0aSBzdGVwIG1iZWR0bHNfcmlwZW1kMTYwIFRlc3QgdmVjdG9yIGZyb20gcGFwZXIgIzMKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fUklQRU1EMTYwCitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19SSVBFTUQxNjAKIG1kX3RleHRfbXVsdGk6TUJFRFRMU19NRF9SSVBFTUQxNjA6ImFiYyI6IjhlYjIwOGY3ZTA1ZDk4N2E5YjA0NGE4ZTk4YzZiMDg3ZjE1YTBiZmMiCiAKIGdlbmVyaWMgbXVsdGkgc3RlcCBtYmVkdGxzX3JpcGVtZDE2MCBUZXN0IHZlY3RvciBmcm9tIHBhcGVyICM0Ci1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1JJUEVNRDE2MAorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfUklQRU1EMTYwCiBtZF90ZXh0X211bHRpOk1CRURUTFNfTURfUklQRU1EMTYwOiJtZXNzYWdlIGRpZ2VzdCI6IjVkMDY4OWVmNDlkMmZhZTU3MmI4ODFiMTIzYTg1ZmZhMjE1OTVmMzYiCiAKIGdlbmVyaWMgbXVsdGkgc3RlcCBtYmVkdGxzX3JpcGVtZDE2MCBUZXN0IHZlY3RvciBmcm9tIHBhcGVyICM1Ci1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1JJUEVNRDE2MAorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfUklQRU1EMTYwCiBtZF90ZXh0X211bHRpOk1CRURUTFNfTURfUklQRU1EMTYwOiJhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eiI6ImY3MWMyNzEwOWM2OTJjMWI1NmJiZGNlYjViOWQyODY1YjM3MDhkYmMiCiAKIGdlbmVyaWMgbXVsdGkgc3RlcCBtYmVkdGxzX3JpcGVtZDE2MCBUZXN0IHZlY3RvciBmcm9tIHBhcGVyICM2Ci1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1JJUEVNRDE2MAorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfUklQRU1EMTYwCiBtZF90ZXh0X211bHRpOk1CRURUTFNfTURfUklQRU1EMTYwOiJhYmNkYmNkZWNkZWZkZWZnZWZnaGZnaGlnaGlqaGlqa2lqa2xqa2xta2xtbmxtbm9tbm9wbm9wcSI6IjEyYTA1MzM4NGE5YzBjODhlNDA1YTA2YzI3ZGNmNDlhZGE2MmViMmIiCiAKIGdlbmVyaWMgbXVsdGkgc3RlcCBtYmVkdGxzX3JpcGVtZDE2MCBUZXN0IHZlY3RvciBmcm9tIHBhcGVyICM3Ci1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1JJUEVNRDE2MAorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfUklQRU1EMTYwCiBtZF90ZXh0X211bHRpOk1CRURUTFNfTURfUklQRU1EMTYwOiJBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Njc4OSI6ImIwZTIwYjZlMzExNjY0MDI4NmVkM2E4N2E1NzEzMDc5YjIxZjUxODkiCiAKIGdlbmVyaWMgbXVsdGkgc3RlcCBtYmVkdGxzX3JpcGVtZDE2MCBUZXN0IHZlY3RvciBmcm9tIHBhcGVyICM4Ci1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1JJUEVNRDE2MAorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfUklQRU1EMTYwCiBtZF90ZXh0X211bHRpOk1CRURUTFNfTURfUklQRU1EMTYwOiIxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MCI6IjliNzUyZTQ1NTczZDRiMzlmNGRiZDMzMjNjYWI4MmJmNjMzMjZiZmIiCiAKIGdlbmVyaWMgbXVsdGkgc3RlcCBtYmVkdGxzX3NoYTMgU0hBMy0yMjQgVGVzdCB2ZWN0b3IgZnJvbSBDQVZTIDE5LjAgd2l0aCBMZW4gPSA0OAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEzXzIyNAorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBM18yMjQKIG1kX2hleF9tdWx0aTpNQkVEVExTX01EX1NIQTNfMjI0OiJlNzE4M2U0ZDg5YzkiOiI2NTA2MThmM2I5NDVjMDdkZTg1Yjg0NzhkNjk2MDk2NDdkNWUyYTQzMmM2YjE1ZmJiM2RiOTFlNCIKIAogZ2VuZXJpYyBtdWx0aSBzdGVwIG1iZWR0bHNfc2hhMyBTSEEzLTI1NiBUZXN0IHZlY3RvciBmcm9tIENBVlMgMTkuMCB3aXRoIExlbiA9IDQ4Ci1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTNfMjU2CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEEzXzI1NgogbWRfaGV4X211bHRpOk1CRURUTFNfTURfU0hBM18yNTY6ImU2ZmQ0MjAzN2Y4MCI6IjIyOTRmOGQzODM0ZjI0YWE5MDM3YzQzMWY4YzIzM2E2NmE1N2IyM2ZhM2RlMTA1MzBiYmI2OTExZjZlMTg1MGYiCiAKIGdlbmVyaWMgbXVsdGkgc3RlcCBtYmVkdGxzX3NoYTMgU0hBMy0zODQgVGVzdCB2ZWN0b3IgZnJvbSBDQVZTIDE5LjAgd2l0aCBMZW4gPSA0OAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEzXzM4NAorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBM18zODQKIG1kX2hleF9tdWx0aTpNQkVEVExTX01EX1NIQTNfMzg0OiI1YTY2NTllOWYwZTciOiIyMWIxZjNmNjNiOTA3Zjk2ODgyMTE4NWE3ZmUzMGIxNmQ0N2UxZDZlZTViOWM4MGJlNjg5NDc4NTRkZTdhOGVmNGEwM2E2YjJlNGVjOTZhYmRkNGZhMjlhYjk3OTZmMjgiCiAKIGdlbmVyaWMgbXVsdGkgc3RlcCBtYmVkdGxzX3NoYTMgU0hBMy01MTIgVGVzdCB2ZWN0b3IgZnJvbSBDQVZTIDE5LjAgd2l0aCBMZW4gPSA0OAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEzXzUxMgorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBM181MTIKIG1kX2hleF9tdWx0aTpNQkVEVExTX01EX1NIQTNfNTEyOiI3MWE5ODZkMmY2NjIiOiJkZWY2YWFjMmIwOGM5OGQ1NmEwNTAxYThjYjkzZjViNDdkNjMyMmRhZjk5ZTAzMjU1NDU3YzMwMzMyNjM5NWY3NjU1NzY5MzBmODU3MWQ4OWMwMWU3MjdjYzc5YzJkNDQ5N2Y4NWM0NTY5MWI1NTRlMjBkYTgxMGMyYmM4NjVlZiIKIAogZ2VuZXJpYyBtdWx0aSBzdGVwIEhNQUMtTUQ1IEhhc2ggRmlsZSBPcGVuU1NMIHRlc3QgIzEKQEAgLTMxNyw2OCArMzE3LDY4IEBACiBtZF9obWFjX211bHRpOk1CRURUTFNfTURfTUQ1OjE2OiJhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhIjoiNTQ2NTczNzQyMDU1NzM2OTZlNjcyMDRjNjE3MjY3NjU3MjIwNTQ2ODYxNmUyMDQyNmM2ZjYzNmIyZDUzNjk3YTY1MjA0YjY1NzkyMDYxNmU2NDIwNGM2MTcyNjc2NTcyMjA1NDY4NjE2ZTIwNGY2ZTY1MjA0MjZjNmY2MzZiMmQ1MzY5N2E2NTIwNDQ2MTc0NjEiOiI2ZjYzMGZhZDY3Y2RhMGVlMWZiMWY1NjJkYjNhYTUzZSIKIAogZ2VuZXJpYyBtdWx0aSBzdGVwIEhNQUMtUklQRU1EMTYwIFRlc3QgdmVjdG9yIFJGQyAyMjg2ICMxCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1JJUEVNRDE2MAorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfUklQRU1EMTYwCiBtZF9obWFjX211bHRpOk1CRURUTFNfTURfUklQRU1EMTYwOjIwOiIwYjBiMGIwYjBiMGIwYjBiMGIwYjBiMGIwYjBiMGIwYjBiMGIwYjBiIjoiNDg2OTIwNTQ2ODY1NzI2NSI6IjI0Y2I0YmQ2N2QyMGZjMWE1ZDJlZDc3MzJkY2MzOTM3N2YwYTU2NjgiCiAKIGdlbmVyaWMgbXVsdGkgc3RlcCBITUFDLVJJUEVNRDE2MCBUZXN0IHZlY3RvciBSRkMgMjI4NiAjMgotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9SSVBFTUQxNjAKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1JJUEVNRDE2MAogbWRfaG1hY19tdWx0aTpNQkVEVExTX01EX1JJUEVNRDE2MDoyMDoiNGE2NTY2NjUiOiI3NzY4NjE3NDIwNjQ2ZjIwNzk2MTIwNzc2MTZlNzQyMDY2NmY3MjIwNmU2Zjc0Njg2OTZlNjczZiI6ImRkYTZjMDIxM2E0ODVhOWUyNGY0NzQyMDY0YTdmMDMzYjQzYzQwNjkiCiAKIGdlbmVyaWMgbXVsdGkgc3RlcCBITUFDLVJJUEVNRDE2MCBUZXN0IHZlY3RvciBSRkMgMjI4NiAjMwotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9SSVBFTUQxNjAKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1JJUEVNRDE2MAogbWRfaG1hY19tdWx0aTpNQkVEVExTX01EX1JJUEVNRDE2MDoyMDoiYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYSI6ImRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGQiOiJiMGIxMDUzNjBkZTc1OTk2MGFiNGYzNTI5OGUxMTZlMjk1ZDhlN2MxIgogCiBnZW5lcmljIG11bHRpIHN0ZXAgSE1BQy1SSVBFTUQxNjAgVGVzdCB2ZWN0b3IgUkZDIDIyODYgIzQKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fUklQRU1EMTYwCitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19SSVBFTUQxNjAKIG1kX2htYWNfbXVsdGk6TUJFRFRMU19NRF9SSVBFTUQxNjA6MjA6IjAxMDIwMzA0MDUwNjA3MDgwOTBhMGIwYzBkMGUwZjEwMTExMjEzMTQxNTE2MTcxODE5IjoiY2RjZGNkY2RjZGNkY2RjZGNkY2RjZGNkY2RjZGNkY2RjZGNkY2RjZGNkY2RjZGNkY2RjZGNkY2RjZGNkY2RjZGNkY2RjZGNkY2RjZGNkY2RjZGNkY2RjZGNkY2RjZGNkY2RjZCI6ImQ1Y2E4NjJmNGQyMWQ1ZTYxMGUxOGI0Y2YxYmViOTdhNDM2NWVjZjQiCiAKIGdlbmVyaWMgbXVsdGkgc3RlcCBITUFDLVJJUEVNRDE2MCBUZXN0IHZlY3RvciBSRkMgMjI4NiAjNQotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9SSVBFTUQxNjAKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1JJUEVNRDE2MAogbWRfaG1hY19tdWx0aTpNQkVEVExTX01EX1JJUEVNRDE2MDoyMDoiMGMwYzBjMGMwYzBjMGMwYzBjMGMwYzBjMGMwYzBjMGMwYzBjMGMwYyI6IjU0NjU3Mzc0MjA1NzY5NzQ2ODIwNTQ3Mjc1NmU2MzYxNzQ2OTZmNmUiOiI3NjE5NjkzOTc4ZjkxZDkwNTM5YWU3ODY1MDBmZjNkOGUwNTE4ZTM5IgogCiBnZW5lcmljIG11bHRpIHN0ZXAgSE1BQy1SSVBFTUQxNjAgVGVzdCB2ZWN0b3IgUkZDIDIyODYgIzYKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fUklQRU1EMTYwCitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19SSVBFTUQxNjAKIG1kX2htYWNfbXVsdGk6TUJFRFRMU19NRF9SSVBFTUQxNjA6MjA6ImFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWEiOiI1NDY1NzM3NDIwNTU3MzY5NmU2NzIwNGM2MTcyNjc2NTcyMjA1NDY4NjE2ZTIwNDI2YzZmNjM2YjJkNTM2OTdhNjUyMDRiNjU3OTIwMmQyMDQ4NjE3MzY4MjA0YjY1NzkyMDQ2Njk3MjczNzQiOiI2NDY2Y2EwN2FjNWVhYzI5ZTFiZDUyM2U1YWRhNzYwNWI3OTFmZDhiIgogCiBnZW5lcmljIG11bHRpIHN0ZXAgSE1BQy1SSVBFTUQxNjAgVGVzdCB2ZWN0b3IgUkZDIDIyODYgIzcKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fUklQRU1EMTYwCitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19SSVBFTUQxNjAKIG1kX2htYWNfbXVsdGk6TUJFRFRMU19NRF9SSVBFTUQxNjA6MjA6ImFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWEiOiI1NDY1NzM3NDIwNTU3MzY5NmU2NzIwNGM2MTcyNjc2NTcyMjA1NDY4NjE2ZTIwNDI2YzZmNjM2YjJkNTM2OTdhNjUyMDRiNjU3OTIwNjE2ZTY0MjA0YzYxNzI2NzY1NzIyMDU0Njg2MTZlMjA0ZjZlNjUyMDQyNmM2ZjYzNmIyZDUzNjk3YTY1MjA0NDYxNzQ2MSI6IjY5ZWE2MDc5OGQ3MTYxNmNjZTVmZDA4NzFlMjM3NTRjZDc1ZDVhMGEiCiAKIGdlbmVyaWMgTUQ1IEhhc2ggZmlsZSAjMQogZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9NRDUKLW1iZWR0bHNfbWRfZmlsZTpNQkVEVExTX01EX01ENToiZGF0YV9maWxlcy9oYXNoX2ZpbGVfMSI6IjUyYmNkYzk4M2M5ZWQ2NGZjMTQ4YTc1OWIzYzdhNDE1IgorbWJlZHRsc19tZF9maWxlOk1CRURUTFNfTURfTUQ1OiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9oYXNoX2ZpbGVfMSI6IjUyYmNkYzk4M2M5ZWQ2NGZjMTQ4YTc1OWIzYzdhNDE1IgogCiBnZW5lcmljIE1ENSBIYXNoIGZpbGUgIzIKIGRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fTUQ1Ci1tYmVkdGxzX21kX2ZpbGU6TUJFRFRMU19NRF9NRDU6ImRhdGFfZmlsZXMvaGFzaF9maWxlXzIiOiJkMTdkNDY2ZjE1ODkxZGYxMDU0MjIwN2FlNzgyNzdmMCIKK21iZWR0bHNfbWRfZmlsZTpNQkVEVExTX01EX01ENToiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvaGFzaF9maWxlXzIiOiJkMTdkNDY2ZjE1ODkxZGYxMDU0MjIwN2FlNzgyNzdmMCIKIAogZ2VuZXJpYyBNRDUgSGFzaCBmaWxlICMzCiBkZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX01ENQotbWJlZHRsc19tZF9maWxlOk1CRURUTFNfTURfTUQ1OiJkYXRhX2ZpbGVzL2hhc2hfZmlsZV8zIjoiZDk0NWJjYzYyMDBlYTk1ZDA2MWEyYTgxODE2N2Q5MjAiCittYmVkdGxzX21kX2ZpbGU6TUJFRFRMU19NRF9NRDU6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL2hhc2hfZmlsZV8zIjoiZDk0NWJjYzYyMDBlYTk1ZDA2MWEyYTgxODE2N2Q5MjAiCiAKIGdlbmVyaWMgTUQ1IEhhc2ggZmlsZSAjNAogZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9NRDUKLW1iZWR0bHNfbWRfZmlsZTpNQkVEVExTX01EX01ENToiZGF0YV9maWxlcy9oYXNoX2ZpbGVfNCI6ImQ0MWQ4Y2Q5OGYwMGIyMDRlOTgwMDk5OGVjZjg0MjdlIgorbWJlZHRsc19tZF9maWxlOk1CRURUTFNfTURfTUQ1OiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9oYXNoX2ZpbGVfNCI6ImQ0MWQ4Y2Q5OGYwMGIyMDRlOTgwMDk5OGVjZjg0MjdlIgogCiBnZW5lcmljIFJJUEVNRDE2MCBIYXNoIGZpbGUgIzAgKGZyb20gcGFwZXIpCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1JJUEVNRDE2MAotbWJlZHRsc19tZF9maWxlOk1CRURUTFNfTURfUklQRU1EMTYwOiJkYXRhX2ZpbGVzL2hhc2hfZmlsZV81IjoiNTI3ODMyNDNjMTY5N2JkYmUxNmQzN2Y5N2Y2OGYwODMyNWRjMTUyOCIKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1JJUEVNRDE2MAorbWJlZHRsc19tZF9maWxlOk1CRURUTFNfTURfUklQRU1EMTYwOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9oYXNoX2ZpbGVfNSI6IjUyNzgzMjQzYzE2OTdiZGJlMTZkMzdmOTdmNjhmMDgzMjVkYzE1MjgiCiAKIGdlbmVyaWMgUklQRU1EMTYwIEhhc2ggZmlsZSAjMQotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9SSVBFTUQxNjAKLW1iZWR0bHNfbWRfZmlsZTpNQkVEVExTX01EX1JJUEVNRDE2MDoiZGF0YV9maWxlcy9oYXNoX2ZpbGVfMSI6IjgyZjFkMDcyZjBlYzBjMmIzNTM3MDNhN2I1NzVhMDRjMTEzYWYxYTYiCitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19SSVBFTUQxNjAKK21iZWR0bHNfbWRfZmlsZTpNQkVEVExTX01EX1JJUEVNRDE2MDoiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvaGFzaF9maWxlXzEiOiI4MmYxZDA3MmYwZWMwYzJiMzUzNzAzYTdiNTc1YTA0YzExM2FmMWE2IgogCiBnZW5lcmljIFJJUEVNRDE2MCBIYXNoIGZpbGUgIzIKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fUklQRU1EMTYwCi1tYmVkdGxzX21kX2ZpbGU6TUJFRFRMU19NRF9SSVBFTUQxNjA6ImRhdGFfZmlsZXMvaGFzaF9maWxlXzIiOiI5OTZmYmM4Yjc5MjA2YmE3MzkzZWJjZDI0NjU4NDA2OWIxYzA4ZjBmIgorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfUklQRU1EMTYwCittYmVkdGxzX21kX2ZpbGU6TUJFRFRMU19NRF9SSVBFTUQxNjA6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL2hhc2hfZmlsZV8yIjoiOTk2ZmJjOGI3OTIwNmJhNzM5M2ViY2QyNDY1ODQwNjliMWMwOGYwZiIKIAogZ2VuZXJpYyBSSVBFTUQxNjAgSGFzaCBmaWxlICMzCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1JJUEVNRDE2MAotbWJlZHRsc19tZF9maWxlOk1CRURUTFNfTURfUklQRU1EMTYwOiJkYXRhX2ZpbGVzL2hhc2hfZmlsZV8zIjoiODY1M2I0NmQ2NTk5OGZhOGM4ODQ2ZWZhMTc5MzdlNzQyNTMzYWU0OCIKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1JJUEVNRDE2MAorbWJlZHRsc19tZF9maWxlOk1CRURUTFNfTURfUklQRU1EMTYwOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9oYXNoX2ZpbGVfMyI6Ijg2NTNiNDZkNjU5OThmYThjODg0NmVmYTE3OTM3ZTc0MjUzM2FlNDgiCiAKIGdlbmVyaWMgUklQRU1EMTYwIEhhc2ggZmlsZSAjNAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9SSVBFTUQxNjAKLW1iZWR0bHNfbWRfZmlsZTpNQkVEVExTX01EX1JJUEVNRDE2MDoiZGF0YV9maWxlcy9oYXNoX2ZpbGVfNCI6IjljMTE4NWE1YzVlOWZjNTQ2MTI4MDg5NzdlZThmNTQ4YjIyNThkMzEiCitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19SSVBFTUQxNjAKK21iZWR0bHNfbWRfZmlsZTpNQkVEVExTX01EX1JJUEVNRDE2MDoiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvaGFzaF9maWxlXzQiOiI5YzExODVhNWM1ZTlmYzU0NjEyODA4OTc3ZWU4ZjU0OGIyMjU4ZDMxIgogCiBnZW5lcmljIEhNQUMtU0hBLTEgVGVzdCBWZWN0b3IgRklQUy0xOThhICMxCiBkZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTEKQEAgLTQyNSw3OSArNDI1LDc5IEBACiBtYmVkdGxzX21kX2htYWM6TUJFRFRMU19NRF9TSEExOjEwOiIxMjg3ZTE1NjVhNTdiNTQ3IjoiMzkwZmZkY2NjNjE3MWMxMTU2OGQ4NWI4ZjkxM2UwMTliZjRjZDk4MmNhOWNkMjFlYTczMGQ0MWJkZjNmY2MwYmM4OGZmNDhiYTEzYThmMjNkZWIyZDk2ZWMxMDMzZTdiMmE1OGNhNzJiMGMxZTE3YmYwMzMzMGRiMjVkMWUzNjBmYTY5MTgwMDljNDI5NGJkMTIxNWI1Y2NkMTU5YThmNThiYzNkYzNkNDkwZWI3YzNiOWY4ODdlOGM5OGRiYmIyNzRhNzUzNzNkY2I2OTVhNTlhYmQwMjE5NTI5ZDg4NTE4YTk2ZjkyYWJjMGJiY2JkYTk4NWMzODhmMWZiYmNjOSI6ImQ3OGRkZjA4MDc3YzdkOWUyYmE2IgogCiBnZW5lcmljIEhNQUMtU0hBLTIyNCBUZXN0IFZlY3RvciBOSVNUIENBVlMgIzEKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjI0CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjI0CiBtYmVkdGxzX21kX2htYWM6TUJFRFRMU19NRF9TSEEyMjQ6MTQ6ImUwNTVlYjc1NjY5N2VlNTczZmQzMjE0ODExYTlmN2ZhIjoiMzg3NTg0NzAxMmVlNDJmZTU0YTAwMjdiZGYzOGNjYTcwMjFiODNhMmVkMDUwM2FmNjllZjZjMzdjNjM3YmMxMTE0ZmJhNDAwOTZjNTk0N2Q3MzZlMTliN2FmM2M2OGQ5NWE0ZTNiOGIwNzNhZGJiYjgwZjQ3ZTlkYjhmMmQ0ZjAwMThkZGQ4NDdmYWJmZGY5ZGQ5YjUyYzkzZTQwNDU4OTc3NzI1ZjZiN2JhMTVmMDgxNmJiODk1Y2RmNTA0MDEyNjhmNWQ3MDJiN2U2YTVmOWZhZWY1N2I4NzY4YzhhM2ZjMTRmOWE0YjMxODJiNDFkOTQwZTMzN2QyMTliMjlmZiI6IjQwYTQ1MzEzMzM2MWNjNDhkYTExYmFmNjE2ZWUiCiAKIGdlbmVyaWMgSE1BQy1TSEEtMjI0IFRlc3QgVmVjdG9yIE5JU1QgQ0FWUyAjMgotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyMjQKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yMjQKIG1iZWR0bHNfbWRfaG1hYzpNQkVEVExTX01EX1NIQTIyNDoxNDoiODhlNTI1OGI1NWIxNjIzMzg1ZWI5NjMyZmE3YzU3ZDYiOiJhZGE3NmJiNjA0YmUxNDMyNjU1MTcwMWNmMzBlNDhhNjVlZWU4MGI0NGYwYjlkNGEwN2IxODQ0NTQzYjc4NDRhNjIxMDk3ZmRjOTlkZTU3Mzg3NDU4YWU5MzU0ODk5YjYyMGQwNjE3ZWFiY2FlZmE5ZWVmM2Q0MTNhMzM2MjgwNTQzMzVjZTY1NmMyNmZhMjk4NmUwZjExMWE2MzUxMDk2YjI4MzEwMWVjNzg2ODg3MWQ3NzBiMzcwOTczYzc0MDU5ODNmOTc1NmIzMDA1YTNlYWI0OTJjZmQwZTdlYjQyZTVjMmUxNWZhNmJlODcxOGMwYTUwYWNjNGU1NzE3MjMwIjoiODFjNzgzYWY1MzgwMTVjZWYzYzYwMDk1ZGY1MyIKIAogZ2VuZXJpYyBITUFDLVNIQS0yMjQgVGVzdCBWZWN0b3IgTklTVCBDQVZTICMzCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTIyNAorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzIyNAogbWJlZHRsc19tZF9obWFjOk1CRURUTFNfTURfU0hBMjI0OjE0OiI4NWQ0MDJkODIyMTE0ZDMxYWJmNzU1MjZlMjUzODcwNSI6IjgwMjBkOGQ5OGNjMmUyMjk4YjMyODc5YzUxYzc1MWUxZGQ1NTU4ZmUyZWFiYjhmMTU4NjA0Mjk3ZDZkMDcyY2UyMjYxYTFkNjgzMGI3Y2ZlMjYxN2I1N2M3MTI2Zjk5Yzk0NzYyMTFkNjE2MWFjZDc1ZDI2NmRhMjE3ZWM4MTc0YjgwNDg0YzlkYzZmMDQ0OGEwYTAzNmEzZmM4MmU4YmY1NGJkYjcxNTQ5MzY4MjU4ZDVkNDFmNTc5NzhhNGMyNjZiOTJlODc4M2VmNjYzNTAyMTU1NzNkOTliZTQwODkxNDRiMzgzYWQ4ZjMyMjJiYWU4ZjNiZjgwZmZiMWJiMmIiOiIyYWEwMzQwYWM5ZGVhZmUzYmUzODEyOWRhY2EwIgogCiBnZW5lcmljIEhNQUMtU0hBLTIyNCBUZXN0IFZlY3RvciBOSVNUIENBVlMgIzQKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjI0CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjI0CiBtYmVkdGxzX21kX2htYWM6TUJFRFRMU19NRF9TSEEyMjQ6MTQ6IjU0NWM2ZWVjYzVlZTQ2ZmExN2M1OWY5MWE5NGY4MWFlIjoiOGZiN2YzNTY1NTkzMTcwMTUyZGRiMjAyMTg3NDc4NGU5NTE5NzdjZmRkMjJmOGI3MmE3MmE2MTMyMGE4ZjJhMzU2OTdiNWU5MTNmNzE3ODA1NTU5YjFhZjE4NjFlZTNlZDQyZmI3ODg0ODFlNGZkMjc2YjE3YmRiZWZjYWU3YjQ1MDFkYzVkMjBkZTViNzYyNmRkNWVmZGNkNjUyOTRkYjRiZGY2ODJjMzNkOWE5MjU1YzY0MzUzODNmYTVmMWM4ODYzMjZhM2FjYmM2YmQ1MGEzM2FiNWIyZGJiMDM0Y2UwMTEyZDRlMjI2YmJjZDU3ZTM3MzFhNTE5YWExZDc4NCI6IjNlYjU2NmVhYzU0YzRhM2E5ZWYwOTI0NjlmMjQiCiAKIGdlbmVyaWMgSE1BQy1TSEEtMjI0IFRlc3QgVmVjdG9yIE5JU1QgQ0FWUyAjNQotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyMjQKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yMjQKIG1iZWR0bHNfbWRfaG1hYzpNQkVEVExTX01EX1NIQTIyNDoxNDoiNDQ2NmFiNGRjNDM4ODQxYTk3NTBjN2YxNzNkZmYwMmUiOiIyNTM0YzExYzc4Yzk5Y2ZmYWVjOGY3MjJmMDRhZGM3MDQ1YzczMjRkNThjZTk4ZTM3Y2ZhOTRiNmVkMjFlZDdmNThjZTU1Mzc5ZWYyNGI3MmQ2ZDY0MGVlOTE1NGY5NmM2MTQ3MzRiZTljNDA4ZTIyNWQ3YmE0Y2VjYzExNzljYzlmNmUxODA4ZTEwNjdhYThmMjQ0YTk5YmQwYzMyNjc1OTRjMTg4N2E0MGQxNjdmOGI3Y2Y3OGRiMGQxOWY5N2IwMWZjNTBiOGM4NmRlZjQ5MGRmYTdhNTEzNTAwMmMzM2U3MWQ3N2E4Y2NlOGVhMGY5M2UwNTgwNDM5YTMzNzMzIjoiNTlmNDRhOWJiZWQ0ODc1Yjg5MmQyMmQ2YjVhYiIKIAogZ2VuZXJpYyBITUFDLVNIQS0yMjQgVGVzdCBWZWN0b3IgTklTVCBDQVZTICM2Ci1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTIyNAorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzIyNAogbWJlZHRsc19tZF9obWFjOk1CRURUTFNfTURfU0hBMjI0OjI4OiIwZTNkZDliYjVlNGNmMGYwOWE0YzExNjAwYWY1NmQ4ZCI6ImY0NTg5ZmE3NmMzMjhlYTI1Y2Y4YmFlNTgyMDI2YmE0MGE1OWQ0NWE1NDZmZjMxY2Y4MGViODI2MDg4ZjY5YmI5NTRjNDUyYzc0NTg2ODM2NDE2ZGVlOTBhNTI1NWJjNWQ1NmQzYjQwNWIzNzA1YTUxOTcwNDU2ODhiMzJmYTk4NGMzYTNkZmJkYzljMjQ2MGEwYjVlNjMxMmE2MjQwNDhiYjZmMTcwMzA2NTM1ZTliMzcxYTNhYjEzNGEyNjQyYTIzMGFkMDNkMmM2ODhjY2E4MGJhZWFlZTlhMjBlMWQ0YzU0OGIxY2VkZTI5YzZhNDViZjRkZjJjOGM0NzZmMWEiOiIxMjE3NWI5M2UzZGE0YzU4MjE3MTQ1ZTRkYzBhMWNmMTQyZmFiOTMxOWJiNTAxZTAzN2IzNTBiYSIKIAogZ2VuZXJpYyBITUFDLVNIQS0yMjQgVGVzdCBWZWN0b3IgTklTVCBDQVZTICM3Ci1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTIyNAorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzIyNAogbWJlZHRsc19tZF9obWFjOk1CRURUTFNfTURfU0hBMjI0OjI4OiJjZGE1MTg3YjBjNWRjYjBmOGU1YThiZWVkMjMwNjU4NCI6IjkwMTFhZTI5YjQ0YzQ5YjM0NzQ4N2NlOTcyOTY1ZjE2YWRlM2MxNWJlMDg1NmNlOWM4NTNhOTczOWRiYTA3ZTRmMjBkNTk0ZGRjMWRmZTIxNTYwYTY1YTRlNDU4Y2ZhMTc3NDU1NzViOTE1YTMwYzdhOTQxMmZmOGQxZDY4OWRiOTY4MGRkMjQyOGMyNzU4OGJiMGRjOTJkMmNkOTQ0NWZlOGY0NGI4NDBhMTk3YzUyYzNjNDMzM2ZmZjQ1NTMzOTQ1MTM0Mzk4ZGY2NDM2NTEzY2ZhYjA2YzkyNDA0NmI4Yzc5NWE1YmQ5MmU4ZDVmMmRlODViZjMwNmYyZWVkNjciOiI0YWFiYTkyYjQwZTJhNjAwZmVhYjE3NmViOWIyOTJkODE0ODY0MTk1YzAzMzQyYWFkNmY2N2YwOCIKIAogZ2VuZXJpYyBITUFDLVNIQS0yNTYgVGVzdCBWZWN0b3IgTklTVCBDQVZTICMxCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NgogbWJlZHRsc19tZF9obWFjOk1CRURUTFNfTURfU0hBMjU2OjE2OiJjZGZmZDM0ZTZiMTZmZGMwIjoiZDgzZTc4Yjk5YWI2MTcwOTYwODk3MmIzNmU3NmE1NzU2MDNkYjc0MjI2OWNjNWRkNGU3ZDVjYTc4MTZlMjZiNjUxNTFjOTI2MzI1NTBjYjRjNTI1M2M4ODVkNWZjZTUzYmM0NzQ1OWExZGJkNTY1Mjc4NmM0YWFjMDE0NWE1MzJmMTJjMDUxMzhhZjA0Y2JiNTU4MTAxYTdhZjVkZjQ3ODgzNGMyMTQ2NTk0ZGQ3MzY5MGQwMWE0ZmU3MjU0NTg5NDMzNWY0MjdhYzcwMjA0Nzk4MDY4Y2I4NmM1YTYwMGI0MGI0MTRlZGUyMzU5MGI0MWUxMTkyMzczZGY4NGZlMyI6ImM2ZjBkZGUyNjZjYjRhMjZkNDFlODI1OWQzMzQ5OWNjIgogCiBnZW5lcmljIEhNQUMtU0hBLTI1NiBUZXN0IFZlY3RvciBOSVNUIENBVlMgIzIKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBtYmVkdGxzX21kX2htYWM6TUJFRFRMU19NRF9TSEEyNTY6MTY6IjZkOTdiYjU4OTIyNDViZTIiOiIxM2MyYjM5MWQ1OWMwMjUyY2E1ZDIzMDJiZWFhZjg4YzRiY2Q3NzliYjUwNWFkOWExMjIwMDNkZmFlNGNjMTIzYWQyYmQwMzZmMjI1YzRmMDQwMDIxYTZiOWZiOGJkNmYwMjgxY2YyZTI2MzFhNzMyYmRjNzE2OTNjYzQyZWY2ZDUyYjZjNjkxMmE5ZWY3N2IzMjc0ZWI4NWFkN2Y5NjVhZTZlZDQ0YWMxNzIxOTYyYTg4NGVjN2FjZmI0NTM0YjE0ODhiMWMwYzQ1YWZhNGRhZThkYTFlYjdiMGE4OGEzMjQwMzY1ZDdlNGU3ZDgyNmFiYmRlOWY5MjAzZmQ5OWQ3IjoiMzE1ODhlMjQxYjAxNTMxOWE1YWI4YzQ1MjcyOTY0OTgiCiAKIGdlbmVyaWMgSE1BQy1TSEEtMjU2IFRlc3QgVmVjdG9yIE5JU1QgQ0FWUyAjMwotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIG1iZWR0bHNfbWRfaG1hYzpNQkVEVExTX01EX1NIQTI1NjoxNjoiM2M3ZmM4YTcwYjQ5MDA3YSI6IjYwMDI0ZTQyOGEzOWM4YjhiYjJlOTU5MWJhZDlkYzIxMTVkZmJmZDcxNmI2ZWI3YWYzMGE2ZWIzNDU2MGNhY2NiYmZhNDdiNzEwZmE4ZDUyM2FjYTcxZTllNWJhMTBmYzFmZWIxYTQzNTU2ZDcxZjA3ZWE0ZjMzNDk2ZjA5MzA0NGU4Y2FmMWQwMmI3OWU0NmViMTI4OGQ1OTY0YTdhNzQ5NGY2YjkyNTc0YzM1Nzg0ZWVjZTA1NGM2MTUxMjgxZDgwODIyZjdkNDdiODIzMWMzNWQwN2Y1Y2I1Y2Y0MzEwZGRjODQ0ODQ1YTAxYzZiZmFiNTE0YzA0OGVjY2FmOWYiOiIxYzk4Yzk0YTMyYmVjOWYyNTNjMjEwNzBmODJmODQzOCIKIAogZ2VuZXJpYyBITUFDLVNIQS0yNTYgVGVzdCBWZWN0b3IgTklTVCBDQVZTICM0Ci1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NgogbWJlZHRsc19tZF9obWFjOk1CRURUTFNfTURfU0hBMjU2OjI0OiIzNjlmMzNmODViOTI3YTA3IjoiYWU4ZTJhOTRjYTM4NmQ0NDhjYmFjZGIwZTkwNDBhZTNjYjI5N2MyOTYzNjMwNTJjYzE1NzQ1NWRhMjlhMGM5NTg5NzMxNWZjMTFlM2YxMmI4MWUyNDE4ZGExZWMyODBiY2NiYzAwZTg0NzU4NGNlOWQxNGRlZWJhN2IzYzliOGRiYTk1OGIwNGJiYTM3NTUxZjZjOWJhOWMwNjBiZTFhNGI4Y2Y0M2FhNjJlNTA3OGI3NmM2NTEyYzU2MTliNzFhNmE3Y2Y1NzI3MTgwZTFmZjE0ZjVhMWEzYzE2OTFiZjhiNmViYWQzNjVjMTUxZTU4ZDc0OWQ1N2FkYjNhNDk4NiI6IjYwYjkwMzgzMjg2NTMzZDMwOWRlNDY1OTNlNmNlMzlmYzUxZmIwMGE4ZDg4Mjc4YyIKIAogZ2VuZXJpYyBITUFDLVNIQS0yNTYgVGVzdCBWZWN0b3IgTklTVCBDQVZTICM1Ci1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NgogbWJlZHRsc19tZF9obWFjOk1CRURUTFNfTURfU0hBMjU2OjI0OiJlNTE3OTY4NzU4MmI0ZGM0IjoiY2UxMDNiZGFjZGYzMmY2MTRmNjcyN2JjYjMxY2ExYzI4MjRhODUwZDAwZjU1ODViMDE2ZmIyMzRmZTFlZjJjZDY4N2YzMDJkM2M2YjczOGVkODlhMjQwNjBkNjVjMzY2NzVkMGQ5NjMwN2M3MmVmM2U4YTgzYmZhODQwMmUyMjZkZTlkNWQxNzI0YmE3NWM0ODc5YmY0MWE0YTQ2NWNlNjE4ODdkOWY0OWEzNDc1Nzg0OWI0OGJhZTgxYzI3ZWJlZDc2ZmFhZTJhZDY2OWJjYTA0NzQ3ZDQwOTE0OGQ0MDgxMjc3NmUwYWUyYzM5NWIzY2I5Yzg5OTgxY2U3MmQ1YyI6IjUwOTU4MWY2ODE2ZGY0YjhjYzlmMmNmNDJiN2NjNmU2YTVhMWUzNzVhMTZmMjQxMiIKIAogZ2VuZXJpYyBITUFDLVNIQS0yNTYgVGVzdCBWZWN0b3IgTklTVCBDQVZTICM2Ci1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NgogbWJlZHRsc19tZF9obWFjOk1CRURUTFNfTURfU0hBMjU2OjI0OiI2M2NlYzYyNDZhZWIxYjYxIjoiYzE3OGRiOTA4YTQwNWZhODhhYTI1NWI4Y2FkMjJiNDA1NzAxNjU4NWYxMzllZTkzMDM4OGIwODNkODYwNjJmYTBiM2VhMWYyM2Y4YTQzYmQxMWJlZTg0NjRiY2JkMTliNWFiOWY2YTgwMzhkNTI0NTUxNmY4Mjc0ZDIwYzhlZTMwMzNhMDdiOTA4ZGE1MjhmYTAwMzQzYmI1OTVkZWVkNTAwY2FiOTc0NWM0Y2I2MzkxYzIzMzAwZjBkMzU4NGIwOTBiMzMyNmM0Y2ZhMzQyNjIwYjc4ZjlmNWI0ZjI3ZjczMDdlZDc3MDY0M2VjMTc2NGFlYWUzZGNmMWEzZWM2OSI6IjY0ZjNkZDg2MWI3YzdkMjlmY2U5YWUwY2U5ZWQ5NTRiNWQ3MTQxODA2ZWU5ZWVjNyIKIAogZ2VuZXJpYyBITUFDLVNIQS0zODQgVGVzdCBWZWN0b3IgTklTVCBDQVZTICMxCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTM4NAorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzM4NAogbWJlZHRsc19tZF9obWFjOk1CRURUTFNfTURfU0hBMzg0OjMyOiI5MWE3NDAxODE3Mzg2OTQ4Y2E5NTJmOWEyMGVlNTVkYyI6IjJmZWE1YjkxMDM1ZDZkNTAxZjNhODM0ZmExNzhiZmY0ZTY0Yjk5YTg0NTA0MzJkYWZkMzJlNDQ2NmIwZTFlNzc4MTE2NmY4YTczZjdlMDM2YjNiMDg3MDkyMGY1NTlmNDdiZDE0MDBhMWE5MDZlODVlMGRjZjAwYTZjMjY4NjJlOTE0OGIyMzgwNjY4MGYyODVmMWZlNGY5M2NkYWY5MjRjMTgxYTk2NTQ2NTczOWMxNGYyMjY4YzhiZThiNDcxODQ3Yzc0YjIyMjU3N2ExMzEwYmNkYzFhODVlZjE0NjhhYTFhM2ZkNDAzMTIxM2M5NzMyNGI3NTA5YzkwNTBhM2QiOiI2ZDdiZTk0OTAwNThjZjQxM2NjMDlmZDA0M2MyMjRjMmVjNGZhNzg1OWIxMzc4MzAwMGE5YTU5M2M5Zjc1ODM4IgogCiBnZW5lcmljIEhNQUMtU0hBLTM4NCBUZXN0IFZlY3RvciBOSVNUIENBVlMgIzIKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMzg0CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMzg0CiBtYmVkdGxzX21kX2htYWM6TUJFRFRMU19NRF9TSEEzODQ6MzI6ImQ2Y2FjMTk2NTcwNjFhYTkwYTZkYTExY2QyZTllYTQ3IjoiOWY0ODJlNDY1NTE3MzEzNWRmYWEyMmExMWJiYmU2YWYyNjNkYjQ4NzE2NDA2YzVhZWMxNjJiYTNjNGI0MWNhZDRmNWE5MTU1ODM3NzUyMTE5MWM3MzQzMTE4YmVlZTY1OTgyOTI5ODAyOTEzZDY3YjZkZTVjNGJkYzNkMjcyOTliZDcyMjIxOWQ1YWQyZWZhNWJkYjlmZjdiMjI5ZmM0YmJjM2Y2MDcxOTMyMGNmMmU3YTUxY2FkMTEzM2QyMWJhZDJkODA5MTliMTgzNmVmODI1MzA4YjdjNTFjNmI3Njc3YWM3ODJlMmJjMzAwMDdhZmJhMDY1NjgxY2JkZDIxNSI6ImYzZDVmM2MwMDgxNzUzMjFhYTdiMmVhMzc5ZWFhNGY4YjlkY2M2MGY4OTVlYzg5NDBiODE2MmY4MGE3ZGZlOWYiCiAKIGdlbmVyaWMgSE1BQy1TSEEtMzg0IFRlc3QgVmVjdG9yIE5JU1QgQ0FWUyAjMwotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEzODQKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8zODQKIG1iZWR0bHNfbWRfaG1hYzpNQkVEVExTX01EX1NIQTM4NDozMjoiZTA2MzY2YWQxNDliODQ0MmNkNGMxYWJkZGRkMGFmZGUiOiIyZDE0MGExOTRjMDJhNTU5OGY2OTE3NDgzNDY3OWI4MzcxMjM0YTBkNTA1NDkxZjFiZDAzZTEyOGRkOTFhOGJjYTJmYjgxMmU5ZDVkYTcxNjEzYjViMDA5NTJlYTc4YmY0NTBkNWI3NTQ3ZGVhNzkxMzU5MjUwODVjN2QzZTZmNTIwMDljNTFjYTNkODhjNmMwOWU5ZDA3NGIwZWUxMTA3MzZlMGVjOWI0NzhiOTNlZmIzNGQ3YmYxYzQxYjU0ZGVjZWM0M2VhYjA3N2EzYWE0OTk4ZWRlNTNmNjdiNGVhMzZjMjY2NzQ1Zjk2NDNkNTM2MGJkYzgzMzdjNzBkYWJmIjoiYzE5YzY3ZWRhNmZlMjlmMzY2N2JlZTFjODk3YzMzM2NlNzY4MzA5NGFlNzdlODRiNGMxNjM3OGQyOTA4OTVhMSIKIAogZ2VuZXJpYyBITUFDLVNIQS0zODQgVGVzdCBWZWN0b3IgTklTVCBDQVZTICM0Ci1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTM4NAorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzM4NAogbWJlZHRsc19tZF9obWFjOk1CRURUTFNfTURfU0hBMzg0OjQ4OiIwMWFjNTlmNDJmOGJiOTFkMWJkMTBmZTY5OTBkN2E4NyI6IjNjYWYxOGM0NzZlZGQ1NjE1ZjM0M2FjN2I3ZDNhOWRhOWVmYWRlNzU1NjcyZDViYTRiOGFlOGE3NTA1NTM5ZWEyYzEyNGZmNzU1ZWMwNDU3ZmJlNDllNDM0ODBiM2M3MWU3ZjQ3NDJlYzM2OTNhYWQxMTVkMDM5ZjkwMjIyYjAzMGZkYzk0NDAzMTM2OTE3MTZkNTMwMjAwNTgwOGMwNzYyNzQ4M2I5MTZmZGY2MTk4MzA2M2MyZWIxMjY4ZjJkZWVlZjQyZmM3OTAzMzQ0NTZiYzZiYWQyNTZlMzFmYzkwNjZkZTdjYzdlNDNkMTMyMWIxODY2ZGI0NWU5MDU2MjIiOiIxOTg1ZmEyMTYzYTU5NDNmYzVkOTJmMWZlODgzMTIxNWU3ZTkxZjBiZmY1MzMyYmM3MTNhMDcyYmRiM2E4ZjllNWM1MTU3NDYzYTNiZmViMzYyMzE0MTZlNjU5NzNlNjQiCiAKIGdlbmVyaWMgSE1BQy1TSEEtMzg0IFRlc3QgVmVjdG9yIE5JU1QgQ0FWUyAjNSBbIzFdCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTM4NAorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzM4NAogbWJlZHRsc19tZF9obWFjOk1CRURUTFNfTURfU0hBMzg0OjQ4OiJmZDc0YjlkOWUxMDJhM2E4MGRmMWJhZjBjYjM1YmFjZSI6IjFhMDY4OTE3NTg0ODEzZDE2ODljY2JkMDM3MGMyMTE0ZDUzN2NkYzhjYzUyYmY2ZGIxNmQ1NTM1ZjhmN2QxYWQwYzg1MGE5ZmEwY2Y2MjM3M2ZmYmY3NjQyYjFmMWU4MTY0MDEwZDM1MDcyMWQ3OThkOWY5OWU5NzI0ODMwMzk5YzJmY2UyNjM3N2U4M2QzODg0NTY3NTQ1Nzg2NWMwM2Q0YTA3ZDc0MWE1MDVlZjAyODM0M2ViMjlmZDQ2ZDBmNzYxZjM3OTI4ODY5OThjMWU1YzMyYWMzYmM3ZTZmMDhmYWVkMTk0YjM0ZjA2ZWZmNGQ1ZDRhNWI0MmM0ODFlMGUiOiJhOTgxZWFmNWRlM2Q3OGIyMGViZDQ0MTRhNGVkZDA2NTdlMzY2N2NkODA4YTBkYmM0MzBjZjcyNTJmNzNhNWIyNGVmYTEzNjAzOTIwN2JkNTk4MDY4OTc0NTdkNzRlMGMiCiAKIGdlbmVyaWMgSE1BQy1TSEEtMzg0IFRlc3QgVmVjdG9yIE5JU1QgQ0FWUyAjNSBbIzJdCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTM4NAorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzM4NAogbWJlZHRsc19tZF9obWFjOk1CRURUTFNfTURfU0hBMzg0OjQ4OiI5ZmU3OTRmMGUyNmI2NjlmYTVmNjg4MzE0OTM3N2M2YyI6IjYwMTBjOTc0NWU4ZjFkNDRjZmRjOTllN2UwZmQ3OWJjNDI3MTk0NGMyZDFkODRkYmE1ODkwNzNkZmM0Y2E1ZWI5OGM1OTM1NmY2MGNkODdiZWYyOGFlYjgzYTgzMmJkZTMzOWIyMDg3ZGFmOTQyYWExZjY3ODc2YzVkNWVkMzM5MjRiZWQ0MTQzYmMxMmEyYmU1MzJjY2FmNjRkYWE3ZTJiYzNjODg3MmI5ODIzYjA1MzNiNmY1MTU5MTM1ZWZmZThjNjE1NDU1MzY5NzVkN2MzYTYxYmE3MzY1ZWMzNWYxNjViYzkyYjRkMTllYjkxNTZhZGUxN2RmYTFiYjQxNjEiOiI5MTVhZTYxZjg3NTQ2OThjMmI2ZWY5NjI5ZTkzNDQxZjg1NDFiZDQyNThhNWUwNTM3MmQxOTEzNmNmYWVmYzA0NzNiNDhkOTYxMTkyOTFiMzhlYjFhM2NiMTk4MmE5ODYiCiAKIGdlbmVyaWMgSE1BQy1TSEEtNTEyIFRlc3QgVmVjdG9yIE5JU1QgQ0FWUyAjMQpAQCAtNTI1LDY3ICs1MjUsNjcgQEAKIG1iZWR0bHNfbWRfaG1hYzpNQkVEVExTX01EX1NIQTUxMjo0ODoiOGFiNzgzZDVhY2YzMmVmYTBkOWMwYTIxYWJjZTk1NWU5NjYzMGQ4OSI6IjE3MzcxZTAxM2RjZTgzOTk2M2Q1NDQxOGU5N2JlNGJkOWZhM2NiMmEzNjhhNTIyMGY1YWExYjhhYWRkZmEzYmRlZmM5MWFmZTdjNzE3MjQ0ZmQyZmI2NDBmNWNiOWQ5YmYzZTI1ZjdmMGM4YmM3NTg4ODNiODlkY2RjZTZkNzQ5ZDk2NzJmZWQyMjIyNzdlY2UzZTg0YjNlYzAxYjk2ZjcwYzEyNWZjYjNjYmVlNmQxOWI4ZWYwODczZjkxNWYxNzNiZGIwNWQ4MTYyOWJhMTg3Y2M4YWMxOTM0YjJmNzU5NTJmYjc2MTZhZTZiZDgxMjk0NmRmNjk0YmQyNzYzYWYiOiI5YWM3Y2E4ZDFhZWZjMTY2YjA0NmU0Y2Y3NjAyZWJlMTgxYTBlNTA1NTQ3NGJmZjViMzQyMTA2NzMxZGEwZDdlNDhlNGQ4N2JjMGE2ZjA1ODcxNTc0Mjg5YTFiMDk5ZjgiCiAKIEhNQUMtU0hBMy0yMjQ6IE5JU1QgZXhhbXBsZSAjMToga2V5bGVuPGJsb2NrbGVuCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTNfMjI0CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEEzXzIyNAogbWJlZHRsc19tZF9obWFjOk1CRURUTFNfTURfU0hBM18yMjQ6Mjg6IjAwMDEwMjAzMDQwNTA2MDcwODA5MGEwYjBjMGQwZTBmMTAxMTEyMTMxNDE1MTYxNzE4MTkxYTFiIjoiNTM2MTZkNzA2YzY1MjA2ZDY1NzM3MzYxNjc2NTIwNjY2ZjcyMjA2YjY1Nzk2YzY1NmUzYzYyNmM2ZjYzNmI2YzY1NmUiOiIzMzJjZmQ1OTM0N2ZkYjhlNTc2ZTc3MjYwYmU0YWJhMmQ2ZGM1MzExN2IzYmZiNTJjNmQxOGMwNCIKIAogSE1BQy1TSEEzLTIyNDogTklTVCBleGFtcGxlICMyOiBrZXlsZW49YmxvY2tsZW4KLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBM18yMjQKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQTNfMjI0CiBtYmVkdGxzX21kX2htYWM6TUJFRFRMU19NRF9TSEEzXzIyNDoyODoiMDAwMTAyMDMwNDA1MDYwNzA4MDkwYTBiMGMwZDBlMGYxMDExMTIxMzE0MTUxNjE3MTgxOTFhMWIxYzFkMWUxZjIwMjEyMjIzMjQyNTI2MjcyODI5MmEyYjJjMmQyZTJmMzAzMTMyMzMzNDM1MzYzNzM4MzkzYTNiM2MzZDNlM2Y0MDQxNDI0MzQ0NDU0NjQ3NDg0OTRhNGI0YzRkNGU0ZjUwNTE1MjUzNTQ1NTU2NTc1ODU5NWE1YjVjNWQ1ZTVmNjA2MTYyNjM2NDY1NjY2NzY4Njk2YTZiNmM2ZDZlNmY3MDcxNzI3Mzc0NzU3Njc3Nzg3OTdhN2I3YzdkN2U3ZjgwODE4MjgzODQ4NTg2ODc4ODg5OGE4YjhjOGQ4ZThmIjoiNTM2MTZkNzA2YzY1MjA2ZDY1NzM3MzYxNjc2NTIwNjY2ZjcyMjA2YjY1Nzk2YzY1NmUzZDYyNmM2ZjYzNmI2YzY1NmUiOiJkOGI3MzNiY2Y2NmM2NDRhMTIzMjNkNTY0ZTI0ZGNmM2ZjNzVmMjMxZjNiNjc5NjgzNTkxMDBjNyIKIAogSE1BQy1TSEEzLTIyNDogTklTVCBleGFtcGxlICMzOiBrZXlsZW4+YmxvY2tsZW4KLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBM18yMjQKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQTNfMjI0CiBtYmVkdGxzX21kX2htYWM6TUJFRFRMU19NRF9TSEEzXzIyNDoyODoiMDAwMTAyMDMwNDA1MDYwNzA4MDkwYTBiMGMwZDBlMGYxMDExMTIxMzE0MTUxNjE3MTgxOTFhMWIxYzFkMWUxZjIwMjEyMjIzMjQyNTI2MjcyODI5MmEyYjJjMmQyZTJmMzAzMTMyMzMzNDM1MzYzNzM4MzkzYTNiM2MzZDNlM2Y0MDQxNDI0MzQ0NDU0NjQ3NDg0OTRhNGI0YzRkNGU0ZjUwNTE1MjUzNTQ1NTU2NTc1ODU5NWE1YjVjNWQ1ZTVmNjA2MTYyNjM2NDY1NjY2NzY4Njk2YTZiNmM2ZDZlNmY3MDcxNzI3Mzc0NzU3Njc3Nzg3OTdhN2I3YzdkN2U3ZjgwODE4MjgzODQ4NTg2ODc4ODg5OGE4YjhjOGQ4ZThmOTA5MTkyOTM5NDk1OTY5Nzk4OTk5YTliOWM5ZDllOWZhMGExYTJhM2E0YTVhNmE3YThhOWFhYWIiOiI1MzYxNmQ3MDZjNjUyMDZkNjU3MzczNjE2NzY1MjA2NjZmNzIyMDZiNjU3OTZjNjU2ZTNlNjI2YzZmNjM2YjZjNjU2ZSI6IjA3ODY5NWVlY2MyMjdjNjM2YWQzMWQwNjNhMTVkZDA1YTdlODE5YTY2ZWM2ZDhkZTFlMTkzZTU5IgogCiBITUFDLVNIQTMtMjI0OiBOSVNUIGV4YW1wbGUgIzQ6IGtleWxlbjxibG9ja2xlbiwgd2l0aCB0cnVuY2F0ZWQgdGFnCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTNfMjI0CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEEzXzIyNAogbWJlZHRsc19tZF9obWFjOk1CRURUTFNfTURfU0hBM18yMjQ6MTQ6IjAwMDEwMjAzMDQwNTA2MDcwODA5MGEwYjBjMGQwZTBmMTAxMTEyMTMxNDE1MTYxNzE4MTkxYTFiIjoiNTM2MTZkNzA2YzY1MjA2ZDY1NzM3MzYxNjc2NTIwNjY2ZjcyMjA2YjY1Nzk2YzY1NmUzYzYyNmM2ZjYzNmI2YzY1NmUyYzIwNzc2OTc0NjgyMDc0NzI3NTZlNjM2MTc0NjU2NDIwNzQ2MTY3IjoiODU2OWM1NGNiYjAwYTliNzhmZjFiMzkxYjBlNSIKIAogSE1BQy1TSEEzLTI1NjogTklTVCBleGFtcGxlICMxOiBrZXlsZW48YmxvY2tsZW4KLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBM18yNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQTNfMjU2CiBtYmVkdGxzX21kX2htYWM6TUJFRFRMU19NRF9TSEEzXzI1NjozMjoiMDAwMTAyMDMwNDA1MDYwNzA4MDkwYTBiMGMwZDBlMGYxMDExMTIxMzE0MTUxNjE3MTgxOTFhMWIxYzFkMWUxZiI6IjUzNjE2ZDcwNmM2NTIwNmQ2NTczNzM2MTY3NjUyMDY2NmY3MjIwNmI2NTc5NmM2NTZlM2M2MjZjNmY2MzZiNmM2NTZlIjoiNGZlOGUyMDJjNGYwNThlOGRkZGMyM2Q4YzM0ZTQ2NzM0M2UyMzU1NWUyNGZjMmYwMjVkNTk4ZjU1OGY2NzIwNSIKIAogSE1BQy1TSEEzLTI1NjogTklTVCBleGFtcGxlICMyOiBrZXlsZW49YmxvY2tsZW4KLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBM18yNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQTNfMjU2CiBtYmVkdGxzX21kX2htYWM6TUJFRFRMU19NRF9TSEEzXzI1NjozMjoiMDAwMTAyMDMwNDA1MDYwNzA4MDkwYTBiMGMwZDBlMGYxMDExMTIxMzE0MTUxNjE3MTgxOTFhMWIxYzFkMWUxZjIwMjEyMjIzMjQyNTI2MjcyODI5MmEyYjJjMmQyZTJmMzAzMTMyMzMzNDM1MzYzNzM4MzkzYTNiM2MzZDNlM2Y0MDQxNDI0MzQ0NDU0NjQ3NDg0OTRhNGI0YzRkNGU0ZjUwNTE1MjUzNTQ1NTU2NTc1ODU5NWE1YjVjNWQ1ZTVmNjA2MTYyNjM2NDY1NjY2NzY4Njk2YTZiNmM2ZDZlNmY3MDcxNzI3Mzc0NzU3Njc3Nzg3OTdhN2I3YzdkN2U3ZjgwODE4MjgzODQ4NTg2ODciOiI1MzYxNmQ3MDZjNjUyMDZkNjU3MzczNjE2NzY1MjA2NjZmNzIyMDZiNjU3OTZjNjU2ZTNkNjI2YzZmNjM2YjZjNjU2ZSI6IjY4Yjk0ZTJlNTM4YTliZTQxMDNiZWJiNWFhMDE2ZDQ3OTYxZDRkMWFhOTA2MDYxMzEzYjU1N2Y4YWYyYzNmYWEiCiAKIEhNQUMtU0hBMy0yNTY6IE5JU1QgZXhhbXBsZSAjMzoga2V5bGVuPmJsb2NrbGVuCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTNfMjU2CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEEzXzI1NgogbWJlZHRsc19tZF9obWFjOk1CRURUTFNfTURfU0hBM18yNTY6MzI6IjAwMDEwMjAzMDQwNTA2MDcwODA5MGEwYjBjMGQwZTBmMTAxMTEyMTMxNDE1MTYxNzE4MTkxYTFiMWMxZDFlMWYyMDIxMjIyMzI0MjUyNjI3MjgyOTJhMmIyYzJkMmUyZjMwMzEzMjMzMzQzNTM2MzczODM5M2EzYjNjM2QzZTNmNDA0MTQyNDM0NDQ1NDY0NzQ4NDk0YTRiNGM0ZDRlNGY1MDUxNTI1MzU0NTU1NjU3NTg1OTVhNWI1YzVkNWU1ZjYwNjE2MjYzNjQ2NTY2Njc2ODY5NmE2YjZjNmQ2ZTZmNzA3MTcyNzM3NDc1NzY3Nzc4Nzk3YTdiN2M3ZDdlN2Y4MDgxODI4Mzg0ODU4Njg3ODg4OThhOGI4YzhkOGU4ZjkwOTE5MjkzOTQ5NTk2OTc5ODk5OWE5YjljOWQ5ZTlmYTBhMWEyYTNhNGE1YTZhNyI6IjUzNjE2ZDcwNmM2NTIwNmQ2NTczNzM2MTY3NjUyMDY2NmY3MjIwNmI2NTc5NmM2NTZlM2U2MjZjNmY2MzZiNmM2NTZlIjoiOWJjZjJjMjM4ZTIzNWMzY2U4ODQwNGU4MTNiZDJmM2E5NzE4NWFjNmYyMzhjNjNkNjIyOWEwMGIwNzk3NDI1OCIKIAogSE1BQy1TSEEzLTI1NjogTklTVCBleGFtcGxlICM0OiBrZXlsZW48YmxvY2tsZW4sIHdpdGggdHJ1bmNhdGVkIHRhZwotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEzXzI1NgorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBM18yNTYKIG1iZWR0bHNfbWRfaG1hYzpNQkVEVExTX01EX1NIQTNfMjU2OjE2OiIwMDAxMDIwMzA0MDUwNjA3MDgwOTBhMGIwYzBkMGUwZjEwMTExMjEzMTQxNTE2MTcxODE5MWExYjFjMWQxZTFmIjoiNTM2MTZkNzA2YzY1MjA2ZDY1NzM3MzYxNjc2NTIwNjY2ZjcyMjA2YjY1Nzk2YzY1NmUzYzYyNmM2ZjYzNmI2YzY1NmUyYzIwNzc2OTc0NjgyMDc0NzI3NTZlNjM2MTc0NjU2NDIwNzQ2MTY3IjoiYzhkYzcxNDhkOGMxNDIzYWE1NDkxMDVkYWZkZjljYWQiCiAKIEhNQUMtU0hBMy0zODQ6IE5JU1QgZXhhbXBsZSAjMToga2V5bGVuPGJsb2NrbGVuCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTNfMzg0CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEEzXzM4NAogbWJlZHRsc19tZF9obWFjOk1CRURUTFNfTURfU0hBM18zODQ6NDg6IjAwMDEwMjAzMDQwNTA2MDcwODA5MGEwYjBjMGQwZTBmMTAxMTEyMTMxNDE1MTYxNzE4MTkxYTFiMWMxZDFlMWYyMDIxMjIyMzI0MjUyNjI3MjgyOTJhMmIyYzJkMmUyZiI6IjUzNjE2ZDcwNmM2NTIwNmQ2NTczNzM2MTY3NjUyMDY2NmY3MjIwNmI2NTc5NmM2NTZlM2M2MjZjNmY2MzZiNmM2NTZlIjoiZDU4OGEzYzUxZjNmMmQ5MDZlODI5OGMxMTk5YWE4ZmY2Mjk2MjE4MTI3ZjZiMzhhOTBiNmFmZTJjNTYxNzcyNWJjOTk5ODdmNzliMjJhNTU3YjY1MjBkYjcxMGI3ZjQyIgogCiBITUFDLVNIQTMtMzg0OiBOSVNUIGV4YW1wbGUgIzI6IGtleWxlbj1ibG9ja2xlbgotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEzXzM4NAorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBM18zODQKIG1iZWR0bHNfbWRfaG1hYzpNQkVEVExTX01EX1NIQTNfMzg0OjQ4OiIwMDAxMDIwMzA0MDUwNjA3MDgwOTBhMGIwYzBkMGUwZjEwMTExMjEzMTQxNTE2MTcxODE5MWExYjFjMWQxZTFmMjAyMTIyMjMyNDI1MjYyNzI4MjkyYTJiMmMyZDJlMmYzMDMxMzIzMzM0MzUzNjM3MzgzOTNhM2IzYzNkM2UzZjQwNDE0MjQzNDQ0NTQ2NDc0ODQ5NGE0YjRjNGQ0ZTRmNTA1MTUyNTM1NDU1NTY1NzU4NTk1YTViNWM1ZDVlNWY2MDYxNjI2MzY0NjU2NjY3IjoiNTM2MTZkNzA2YzY1MjA2ZDY1NzM3MzYxNjc2NTIwNjY2ZjcyMjA2YjY1Nzk2YzY1NmUzZDYyNmM2ZjYzNmI2YzY1NmUiOiJhMjdkMjRiNTkyZThjOGNiZjZkNGNlNmZjNWJmNjJkOGZjOThiZjJkNDg2NjQwZDllYjgwOTllMjQwNDc4MzdmNWYzYmZmYmU5MmRjY2U5MGI0ZWQ1YjFlN2U0NGZhOTAiCiAKIEhNQUMtU0hBMy0zODQ6IE5JU1QgZXhhbXBsZSAjMzoga2V5bGVuPmJsb2NrbGVuCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTNfMzg0CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEEzXzM4NAogbWJlZHRsc19tZF9obWFjOk1CRURUTFNfTURfU0hBM18zODQ6NDg6IjAwMDEwMjAzMDQwNTA2MDcwODA5MGEwYjBjMGQwZTBmMTAxMTEyMTMxNDE1MTYxNzE4MTkxYTFiMWMxZDFlMWYyMDIxMjIyMzI0MjUyNjI3MjgyOTJhMmIyYzJkMmUyZjMwMzEzMjMzMzQzNTM2MzczODM5M2EzYjNjM2QzZTNmNDA0MTQyNDM0NDQ1NDY0NzQ4NDk0YTRiNGM0ZDRlNGY1MDUxNTI1MzU0NTU1NjU3NTg1OTVhNWI1YzVkNWU1ZjYwNjE2MjYzNjQ2NTY2Njc2ODY5NmE2YjZjNmQ2ZTZmNzA3MTcyNzM3NDc1NzY3Nzc4Nzk3YTdiN2M3ZDdlN2Y4MDgxODI4Mzg0ODU4Njg3ODg4OThhOGI4YzhkOGU4ZjkwOTE5MjkzOTQ5NTk2OTciOiI1MzYxNmQ3MDZjNjUyMDZkNjU3MzczNjE2NzY1MjA2NjZmNzIyMDZiNjU3OTZjNjU2ZTNlNjI2YzZmNjM2YjZjNjU2ZSI6ImU1YWU0YzczOWY0NTUyNzkzNjhlYmYzNmQ0ZjUzNTRjOTVhYTE4NGM4OTlkMzg3MGU0NjBlYmMyODhlZjFmOTQ3MDA1M2Y3M2Y3YzZkYTJhNzFiY2FlYzM4Y2U3ZDZhYyIKIAogSE1BQy1TSEEzLTM4NDogTklTVCBleGFtcGxlICM0OiBrZXlsZW48YmxvY2tsZW4sIHdpdGggdHJ1bmNhdGVkIHRhZwotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEzXzM4NAorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBM18zODQKIG1iZWR0bHNfbWRfaG1hYzpNQkVEVExTX01EX1NIQTNfMzg0OjI0OiIwMDAxMDIwMzA0MDUwNjA3MDgwOTBhMGIwYzBkMGUwZjEwMTExMjEzMTQxNTE2MTcxODE5MWExYjFjMWQxZTFmMjAyMTIyMjMyNDI1MjYyNzI4MjkyYTJiMmMyZDJlMmYiOiI1MzYxNmQ3MDZjNjUyMDZkNjU3MzczNjE2NzY1MjA2NjZmNzIyMDZiNjU3OTZjNjU2ZTNjNjI2YzZmNjM2YjZjNjU2ZTJjMjA3NzY5NzQ2ODIwNzQ3Mjc1NmU2MzYxNzQ2NTY0MjA3NDYxNjciOiIyNWY0YmY1MzYwNmU5MWFmNzlkMjRhNGJiMWZkNmFlY2Q0NDQxNGEzMGM4ZWJiMGEiCiAKIEhNQUMtU0hBMy01MTI6IE5JU1QgZXhhbXBsZSAjMToga2V5bGVuPGJsb2NrbGVuCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTNfNTEyCitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEEzXzUxMgogbWJlZHRsc19tZF9obWFjOk1CRURUTFNfTURfU0hBM181MTI6NjQ6IjAwMDEwMjAzMDQwNTA2MDcwODA5MGEwYjBjMGQwZTBmMTAxMTEyMTMxNDE1MTYxNzE4MTkxYTFiMWMxZDFlMWYyMDIxMjIyMzI0MjUyNjI3MjgyOTJhMmIyYzJkMmUyZjMwMzEzMjMzMzQzNTM2MzczODM5M2EzYjNjM2QzZTNmIjoiNTM2MTZkNzA2YzY1MjA2ZDY1NzM3MzYxNjc2NTIwNjY2ZjcyMjA2YjY1Nzk2YzY1NmUzYzYyNmM2ZjYzNmI2YzY1NmUiOiI0ZWZkNjI5ZDZjNzFiZjg2MTYyNjU4ZjI5OTQzYjFjMzA4Y2UyN2NkZmE2ZGIwZDljM2NlODE3NjNmOWNiY2U1ZjdlYmU5ODY4MDMxZGIxYThmOGViN2I2Yjk1ZTVjNWUzZjY1N2E4OTk2Yzg2YTJmNjUyN2UzMDdmMDIxMzE5NiIKIAogSE1BQy1TSEEzLTUxMjogTklTVCBleGFtcGxlICMyOiBrZXlsZW49YmxvY2tsZW4KLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBM181MTIKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQTNfNTEyCiBtYmVkdGxzX21kX2htYWM6TUJFRFRMU19NRF9TSEEzXzUxMjo2NDoiMDAwMTAyMDMwNDA1MDYwNzA4MDkwYTBiMGMwZDBlMGYxMDExMTIxMzE0MTUxNjE3MTgxOTFhMWIxYzFkMWUxZjIwMjEyMjIzMjQyNTI2MjcyODI5MmEyYjJjMmQyZTJmMzAzMTMyMzMzNDM1MzYzNzM4MzkzYTNiM2MzZDNlM2Y0MDQxNDI0MzQ0NDU0NjQ3IjoiNTM2MTZkNzA2YzY1MjA2ZDY1NzM3MzYxNjc2NTIwNjY2ZjcyMjA2YjY1Nzk2YzY1NmUzZDYyNmM2ZjYzNmI2YzY1NmUiOiI1NDRlMjU3ZWEyYTNlNWVhMTlhNTkwZTZhMjRiNzI0Y2U2MzI3NzU3NzIzZmUyNzUxYjc1YmYwMDdkODBmNmIzNjA3NDRiZjFiN2E4OGVhNTg1Zjk3NjViNDc5MTE5NzZkMzE5MWNmODNjMDM5ZjVmZmFiMGQyOWNjOWQ5YjZkYSIKIAogSE1BQy1TSEEzLTUxMjogTklTVCBleGFtcGxlICMzOiBrZXlsZW4+YmxvY2tsZW4KLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBM181MTIKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQTNfNTEyCiBtYmVkdGxzX21kX2htYWM6TUJFRFRMU19NRF9TSEEzXzUxMjo2NDoiMDAwMTAyMDMwNDA1MDYwNzA4MDkwYTBiMGMwZDBlMGYxMDExMTIxMzE0MTUxNjE3MTgxOTFhMWIxYzFkMWUxZjIwMjEyMjIzMjQyNTI2MjcyODI5MmEyYjJjMmQyZTJmMzAzMTMyMzMzNDM1MzYzNzM4MzkzYTNiM2MzZDNlM2Y0MDQxNDI0MzQ0NDU0NjQ3NDg0OTRhNGI0YzRkNGU0ZjUwNTE1MjUzNTQ1NTU2NTc1ODU5NWE1YjVjNWQ1ZTVmNjA2MTYyNjM2NDY1NjY2NzY4Njk2YTZiNmM2ZDZlNmY3MDcxNzI3Mzc0NzU3Njc3Nzg3OTdhN2I3YzdkN2U3ZjgwODE4MjgzODQ4NTg2ODciOiI1MzYxNmQ3MDZjNjUyMDZkNjU3MzczNjE2NzY1MjA2NjZmNzIyMDZiNjU3OTZjNjU2ZTNlNjI2YzZmNjM2YjZjNjU2ZSI6IjVmNDY0ZjVlNWI3ODQ4ZTM4ODVlNDliMmMzODVmMDY5NDk4NWQwZTM4OTY2MjQyZGM0YTVmZTNmZWE0YjM3ZDQ2YjY1Y2VjZWQ1ZGNmNTk0MzhkZDg0MGJhYjIyMjY5ZjBiYTdmZWJkYjlmY2Y3NDYwMmEzNTY2NmIyYTMyOTE1IgogCiBITUFDLVNIQTMtNTEyOiBOSVNUIGV4YW1wbGUgIzQ6IGtleWxlbjxibG9ja2xlbiwgd2l0aCB0cnVuY2F0ZWQgdGFnCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTNfNTEyCitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEEzXzUxMgogbWJlZHRsc19tZF9obWFjOk1CRURUTFNfTURfU0hBM181MTI6MzI6IjAwMDEwMjAzMDQwNTA2MDcwODA5MGEwYjBjMGQwZTBmMTAxMTEyMTMxNDE1MTYxNzE4MTkxYTFiMWMxZDFlMWYyMDIxMjIyMzI0MjUyNjI3MjgyOTJhMmIyYzJkMmUyZjMwMzEzMjMzMzQzNTM2MzczODM5M2EzYjNjM2QzZTNmIjoiNTM2MTZkNzA2YzY1MjA2ZDY1NzM3MzYxNjc2NTIwNjY2ZjcyMjA2YjY1Nzk2YzY1NmUzYzYyNmM2ZjYzNmI2YzY1NmUyYzIwNzc2OTc0NjgyMDc0NzI3NTZlNjM2MTc0NjU2NDIwNzQ2MTY3IjoiN2JiMDZkODU5MjU3YjI1Y2U3M2NhNzAwZGYzNGM1Y2JlZjVjODk4YmFjOTEwMjllMGIyNzk3NWQ0ZTUyNmEwOCIKIAogZ2VuZXJpYyBtdWx0aSBzdGVwIEhNQUMtU0hBLTEgVGVzdCBWZWN0b3IgRklQUy0xOThhICMxCkBAIC02MzMsNzkgKzYzMyw3OSBAQAogbWRfaG1hY19tdWx0aTpNQkVEVExTX01EX1NIQTE6MTA6IjEyODdlMTU2NWE1N2I1NDciOiIzOTBmZmRjY2M2MTcxYzExNTY4ZDg1YjhmOTEzZTAxOWJmNGNkOTgyY2E5Y2QyMWVhNzMwZDQxYmRmM2ZjYzBiYzg4ZmY0OGJhMTNhOGYyM2RlYjJkOTZlYzEwMzNlN2IyYTU4Y2E3MmIwYzFlMTdiZjAzMzMwZGIyNWQxZTM2MGZhNjkxODAwOWM0Mjk0YmQxMjE1YjVjY2QxNTlhOGY1OGJjM2RjM2Q0OTBlYjdjM2I5Zjg4N2U4Yzk4ZGJiYjI3NGE3NTM3M2RjYjY5NWE1OWFiZDAyMTk1MjlkODg1MThhOTZmOTJhYmMwYmJjYmRhOTg1YzM4OGYxZmJiY2M5IjoiZDc4ZGRmMDgwNzdjN2Q5ZTJiYTYiCiAKIGdlbmVyaWMgbXVsdGkgc3RlcCBITUFDLVNIQS0yMjQgVGVzdCBWZWN0b3IgTklTVCBDQVZTICMxCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTIyNAorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzIyNAogbWRfaG1hY19tdWx0aTpNQkVEVExTX01EX1NIQTIyNDoxNDoiZTA1NWViNzU2Njk3ZWU1NzNmZDMyMTQ4MTFhOWY3ZmEiOiIzODc1ODQ3MDEyZWU0MmZlNTRhMDAyN2JkZjM4Y2NhNzAyMWI4M2EyZWQwNTAzYWY2OWVmNmMzN2M2MzdiYzExMTRmYmE0MDA5NmM1OTQ3ZDczNmUxOWI3YWYzYzY4ZDk1YTRlM2I4YjA3M2FkYmJiODBmNDdlOWRiOGYyZDRmMDAxOGRkZDg0N2ZhYmZkZjlkZDliNTJjOTNlNDA0NTg5Nzc3MjVmNmI3YmExNWYwODE2YmI4OTVjZGY1MDQwMTI2OGY1ZDcwMmI3ZTZhNWY5ZmFlZjU3Yjg3NjhjOGEzZmMxNGY5YTRiMzE4MmI0MWQ5NDBlMzM3ZDIxOWIyOWZmIjoiNDBhNDUzMTMzMzYxY2M0OGRhMTFiYWY2MTZlZSIKIAogZ2VuZXJpYyBtdWx0aSBzdGVwIEhNQUMtU0hBLTIyNCBUZXN0IFZlY3RvciBOSVNUIENBVlMgIzIKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjI0CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjI0CiBtZF9obWFjX211bHRpOk1CRURUTFNfTURfU0hBMjI0OjE0OiI4OGU1MjU4YjU1YjE2MjMzODVlYjk2MzJmYTdjNTdkNiI6ImFkYTc2YmI2MDRiZTE0MzI2NTUxNzAxY2YzMGU0OGE2NWVlZTgwYjQ0ZjBiOWQ0YTA3YjE4NDQ1NDNiNzg0NGE2MjEwOTdmZGM5OWRlNTczODc0NThhZTkzNTQ4OTliNjIwZDA2MTdlYWJjYWVmYTllZWYzZDQxM2EzMzYyODA1NDMzNWNlNjU2YzI2ZmEyOTg2ZTBmMTExYTYzNTEwOTZiMjgzMTAxZWM3ODY4ODcxZDc3MGIzNzA5NzNjNzQwNTk4M2Y5NzU2YjMwMDVhM2VhYjQ5MmNmZDBlN2ViNDJlNWMyZTE1ZmE2YmU4NzE4YzBhNTBhY2M0ZTU3MTcyMzAiOiI4MWM3ODNhZjUzODAxNWNlZjNjNjAwOTVkZjUzIgogCiBnZW5lcmljIG11bHRpIHN0ZXAgSE1BQy1TSEEtMjI0IFRlc3QgVmVjdG9yIE5JU1QgQ0FWUyAjMwotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyMjQKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yMjQKIG1kX2htYWNfbXVsdGk6TUJFRFRMU19NRF9TSEEyMjQ6MTQ6Ijg1ZDQwMmQ4MjIxMTRkMzFhYmY3NTUyNmUyNTM4NzA1IjoiODAyMGQ4ZDk4Y2MyZTIyOThiMzI4NzljNTFjNzUxZTFkZDU1NThmZTJlYWJiOGYxNTg2MDQyOTdkNmQwNzJjZTIyNjFhMWQ2ODMwYjdjZmUyNjE3YjU3YzcxMjZmOTljOTQ3NjIxMWQ2MTYxYWNkNzVkMjY2ZGEyMTdlYzgxNzRiODA0ODRjOWRjNmYwNDQ4YTBhMDM2YTNmYzgyZThiZjU0YmRiNzE1NDkzNjgyNThkNWQ0MWY1Nzk3OGE0YzI2NmI5MmU4NzgzZWY2NjM1MDIxNTU3M2Q5OWJlNDA4OTE0NGIzODNhZDhmMzIyMmJhZThmM2JmODBmZmIxYmIyYiI6IjJhYTAzNDBhYzlkZWFmZTNiZTM4MTI5ZGFjYTAiCiAKIGdlbmVyaWMgbXVsdGkgc3RlcCBITUFDLVNIQS0yMjQgVGVzdCBWZWN0b3IgTklTVCBDQVZTICM0Ci1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTIyNAorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzIyNAogbWRfaG1hY19tdWx0aTpNQkVEVExTX01EX1NIQTIyNDoxNDoiNTQ1YzZlZWNjNWVlNDZmYTE3YzU5ZjkxYTk0ZjgxYWUiOiI4ZmI3ZjM1NjU1OTMxNzAxNTJkZGIyMDIxODc0Nzg0ZTk1MTk3N2NmZGQyMmY4YjcyYTcyYTYxMzIwYThmMmEzNTY5N2I1ZTkxM2Y3MTc4MDU1NTliMWFmMTg2MWVlM2VkNDJmYjc4ODQ4MWU0ZmQyNzZiMTdiZGJlZmNhZTdiNDUwMWRjNWQyMGRlNWI3NjI2ZGQ1ZWZkY2Q2NTI5NGRiNGJkZjY4MmMzM2Q5YTkyNTVjNjQzNTM4M2ZhNWYxYzg4NjMyNmEzYWNiYzZiZDUwYTMzYWI1YjJkYmIwMzRjZTAxMTJkNGUyMjZiYmNkNTdlMzczMWE1MTlhYTFkNzg0IjoiM2ViNTY2ZWFjNTRjNGEzYTllZjA5MjQ2OWYyNCIKIAogZ2VuZXJpYyBtdWx0aSBzdGVwIEhNQUMtU0hBLTIyNCBUZXN0IFZlY3RvciBOSVNUIENBVlMgIzUKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjI0CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjI0CiBtZF9obWFjX211bHRpOk1CRURUTFNfTURfU0hBMjI0OjE0OiI0NDY2YWI0ZGM0Mzg4NDFhOTc1MGM3ZjE3M2RmZjAyZSI6IjI1MzRjMTFjNzhjOTljZmZhZWM4ZjcyMmYwNGFkYzcwNDVjNzMyNGQ1OGNlOThlMzdjZmE5NGI2ZWQyMWVkN2Y1OGNlNTUzNzllZjI0YjcyZDZkNjQwZWU5MTU0Zjk2YzYxNDczNGJlOWM0MDhlMjI1ZDdiYTRjZWNjMTE3OWNjOWY2ZTE4MDhlMTA2N2FhOGYyNDRhOTliZDBjMzI2NzU5NGMxODg3YTQwZDE2N2Y4YjdjZjc4ZGIwZDE5Zjk3YjAxZmM1MGI4Yzg2ZGVmNDkwZGZhN2E1MTM1MDAyYzMzZTcxZDc3YThjY2U4ZWEwZjkzZTA1ODA0MzlhMzM3MzMiOiI1OWY0NGE5YmJlZDQ4NzViODkyZDIyZDZiNWFiIgogCiBnZW5lcmljIG11bHRpIHN0ZXAgSE1BQy1TSEEtMjI0IFRlc3QgVmVjdG9yIE5JU1QgQ0FWUyAjNgotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyMjQKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yMjQKIG1kX2htYWNfbXVsdGk6TUJFRFRMU19NRF9TSEEyMjQ6Mjg6IjBlM2RkOWJiNWU0Y2YwZjA5YTRjMTE2MDBhZjU2ZDhkIjoiZjQ1ODlmYTc2YzMyOGVhMjVjZjhiYWU1ODIwMjZiYTQwYTU5ZDQ1YTU0NmZmMzFjZjgwZWI4MjYwODhmNjliYjk1NGM0NTJjNzQ1ODY4MzY0MTZkZWU5MGE1MjU1YmM1ZDU2ZDNiNDA1YjM3MDVhNTE5NzA0NTY4OGIzMmZhOTg0YzNhM2RmYmRjOWMyNDYwYTBiNWU2MzEyYTYyNDA0OGJiNmYxNzAzMDY1MzVlOWIzNzFhM2FiMTM0YTI2NDJhMjMwYWQwM2QyYzY4OGNjYTgwYmFlYWVlOWEyMGUxZDRjNTQ4YjFjZWRlMjljNmE0NWJmNGRmMmM4YzQ3NmYxYSI6IjEyMTc1YjkzZTNkYTRjNTgyMTcxNDVlNGRjMGExY2YxNDJmYWI5MzE5YmI1MDFlMDM3YjM1MGJhIgogCiBnZW5lcmljIG11bHRpIHN0ZXAgSE1BQy1TSEEtMjI0IFRlc3QgVmVjdG9yIE5JU1QgQ0FWUyAjNwotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyMjQKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yMjQKIG1kX2htYWNfbXVsdGk6TUJFRFRMU19NRF9TSEEyMjQ6Mjg6ImNkYTUxODdiMGM1ZGNiMGY4ZTVhOGJlZWQyMzA2NTg0IjoiOTAxMWFlMjliNDRjNDliMzQ3NDg3Y2U5NzI5NjVmMTZhZGUzYzE1YmUwODU2Y2U5Yzg1M2E5NzM5ZGJhMDdlNGYyMGQ1OTRkZGMxZGZlMjE1NjBhNjVhNGU0NThjZmExNzc0NTU3NWI5MTVhMzBjN2E5NDEyZmY4ZDFkNjg5ZGI5NjgwZGQyNDI4YzI3NTg4YmIwZGM5MmQyY2Q5NDQ1ZmU4ZjQ0Yjg0MGExOTdjNTJjM2M0MzMzZmZmNDU1MzM5NDUxMzQzOThkZjY0MzY1MTNjZmFiMDZjOTI0MDQ2YjhjNzk1YTViZDkyZThkNWYyZGU4NWJmMzA2ZjJlZWQ2NyI6IjRhYWJhOTJiNDBlMmE2MDBmZWFiMTc2ZWI5YjI5MmQ4MTQ4NjQxOTVjMDMzNDJhYWQ2ZjY3ZjA4IgogCiBnZW5lcmljIG11bHRpIHN0ZXAgSE1BQy1TSEEtMjU2IFRlc3QgVmVjdG9yIE5JU1QgQ0FWUyAjMQotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIG1kX2htYWNfbXVsdGk6TUJFRFRMU19NRF9TSEEyNTY6MTY6ImNkZmZkMzRlNmIxNmZkYzAiOiJkODNlNzhiOTlhYjYxNzA5NjA4OTcyYjM2ZTc2YTU3NTYwM2RiNzQyMjY5Y2M1ZGQ0ZTdkNWNhNzgxNmUyNmI2NTE1MWM5MjYzMjU1MGNiNGM1MjUzYzg4NWQ1ZmNlNTNiYzQ3NDU5YTFkYmQ1NjUyNzg2YzRhYWMwMTQ1YTUzMmYxMmMwNTEzOGFmMDRjYmI1NTgxMDFhN2FmNWRmNDc4ODM0YzIxNDY1OTRkZDczNjkwZDAxYTRmZTcyNTQ1ODk0MzM1ZjQyN2FjNzAyMDQ3OTgwNjhjYjg2YzVhNjAwYjQwYjQxNGVkZTIzNTkwYjQxZTExOTIzNzNkZjg0ZmUzIjoiYzZmMGRkZTI2NmNiNGEyNmQ0MWU4MjU5ZDMzNDk5Y2MiCiAKIGdlbmVyaWMgbXVsdGkgc3RlcCBITUFDLVNIQS0yNTYgVGVzdCBWZWN0b3IgTklTVCBDQVZTICMyCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NgogbWRfaG1hY19tdWx0aTpNQkVEVExTX01EX1NIQTI1NjoxNjoiNmQ5N2JiNTg5MjI0NWJlMiI6IjEzYzJiMzkxZDU5YzAyNTJjYTVkMjMwMmJlYWFmODhjNGJjZDc3OWJiNTA1YWQ5YTEyMjAwM2RmYWU0Y2MxMjNhZDJiZDAzNmYyMjVjNGYwNDAwMjFhNmI5ZmI4YmQ2ZjAyODFjZjJlMjYzMWE3MzJiZGM3MTY5M2NjNDJlZjZkNTJiNmM2OTEyYTllZjc3YjMyNzRlYjg1YWQ3Zjk2NWFlNmVkNDRhYzE3MjE5NjJhODg0ZWM3YWNmYjQ1MzRiMTQ4OGIxYzBjNDVhZmE0ZGFlOGRhMWViN2IwYTg4YTMyNDAzNjVkN2U0ZTdkODI2YWJiZGU5ZjkyMDNmZDk5ZDciOiIzMTU4OGUyNDFiMDE1MzE5YTVhYjhjNDUyNzI5NjQ5OCIKIAogZ2VuZXJpYyBtdWx0aSBzdGVwIEhNQUMtU0hBLTI1NiBUZXN0IFZlY3RvciBOSVNUIENBVlMgIzMKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBtZF9obWFjX211bHRpOk1CRURUTFNfTURfU0hBMjU2OjE2OiIzYzdmYzhhNzBiNDkwMDdhIjoiNjAwMjRlNDI4YTM5YzhiOGJiMmU5NTkxYmFkOWRjMjExNWRmYmZkNzE2YjZlYjdhZjMwYTZlYjM0NTYwY2FjY2JiZmE0N2I3MTBmYThkNTIzYWNhNzFlOWU1YmExMGZjMWZlYjFhNDM1NTZkNzFmMDdlYTRmMzM0OTZmMDkzMDQ0ZThjYWYxZDAyYjc5ZTQ2ZWIxMjg4ZDU5NjRhN2E3NDk0ZjZiOTI1NzRjMzU3ODRlZWNlMDU0YzYxNTEyODFkODA4MjJmN2Q0N2I4MjMxYzM1ZDA3ZjVjYjVjZjQzMTBkZGM4NDQ4NDVhMDFjNmJmYWI1MTRjMDQ4ZWNjYWY5ZiI6IjFjOThjOTRhMzJiZWM5ZjI1M2MyMTA3MGY4MmY4NDM4IgogCiBnZW5lcmljIG11bHRpIHN0ZXAgSE1BQy1TSEEtMjU2IFRlc3QgVmVjdG9yIE5JU1QgQ0FWUyAjNAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIG1kX2htYWNfbXVsdGk6TUJFRFRMU19NRF9TSEEyNTY6MjQ6IjM2OWYzM2Y4NWI5MjdhMDciOiJhZThlMmE5NGNhMzg2ZDQ0OGNiYWNkYjBlOTA0MGFlM2NiMjk3YzI5NjM2MzA1MmNjMTU3NDU1ZGEyOWEwYzk1ODk3MzE1ZmMxMWUzZjEyYjgxZTI0MThkYTFlYzI4MGJjY2JjMDBlODQ3NTg0Y2U5ZDE0ZGVlYmE3YjNjOWI4ZGJhOTU4YjA0YmJhMzc1NTFmNmM5YmE5YzA2MGJlMWE0YjhjZjQzYWE2MmU1MDc4Yjc2YzY1MTJjNTYxOWI3MWE2YTdjZjU3MjcxODBlMWZmMTRmNWExYTNjMTY5MWJmOGI2ZWJhZDM2NWMxNTFlNThkNzQ5ZDU3YWRiM2E0OTg2IjoiNjBiOTAzODMyODY1MzNkMzA5ZGU0NjU5M2U2Y2UzOWZjNTFmYjAwYThkODgyNzhjIgogCiBnZW5lcmljIG11bHRpIHN0ZXAgSE1BQy1TSEEtMjU2IFRlc3QgVmVjdG9yIE5JU1QgQ0FWUyAjNQotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIG1kX2htYWNfbXVsdGk6TUJFRFRMU19NRF9TSEEyNTY6MjQ6ImU1MTc5Njg3NTgyYjRkYzQiOiJjZTEwM2JkYWNkZjMyZjYxNGY2NzI3YmNiMzFjYTFjMjgyNGE4NTBkMDBmNTU4NWIwMTZmYjIzNGZlMWVmMmNkNjg3ZjMwMmQzYzZiNzM4ZWQ4OWEyNDA2MGQ2NWMzNjY3NWQwZDk2MzA3YzcyZWYzZThhODNiZmE4NDAyZTIyNmRlOWQ1ZDE3MjRiYTc1YzQ4NzliZjQxYTRhNDY1Y2U2MTg4N2Q5ZjQ5YTM0NzU3ODQ5YjQ4YmFlODFjMjdlYmVkNzZmYWFlMmFkNjY5YmNhMDQ3NDdkNDA5MTQ4ZDQwODEyNzc2ZTBhZTJjMzk1YjNjYjljODk5ODFjZTcyZDVjIjoiNTA5NTgxZjY4MTZkZjRiOGNjOWYyY2Y0MmI3Y2M2ZTZhNWExZTM3NWExNmYyNDEyIgogCiBnZW5lcmljIG11bHRpIHN0ZXAgSE1BQy1TSEEtMjU2IFRlc3QgVmVjdG9yIE5JU1QgQ0FWUyAjNgotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIG1kX2htYWNfbXVsdGk6TUJFRFRMU19NRF9TSEEyNTY6MjQ6IjYzY2VjNjI0NmFlYjFiNjEiOiJjMTc4ZGI5MDhhNDA1ZmE4OGFhMjU1YjhjYWQyMmI0MDU3MDE2NTg1ZjEzOWVlOTMwMzg4YjA4M2Q4NjA2MmZhMGIzZWExZjIzZjhhNDNiZDExYmVlODQ2NGJjYmQxOWI1YWI5ZjZhODAzOGQ1MjQ1NTE2ZjgyNzRkMjBjOGVlMzAzM2EwN2I5MDhkYTUyOGZhMDAzNDNiYjU5NWRlZWQ1MDBjYWI5NzQ1YzRjYjYzOTFjMjMzMDBmMGQzNTg0YjA5MGIzMzI2YzRjZmEzNDI2MjBiNzhmOWY1YjRmMjdmNzMwN2VkNzcwNjQzZWMxNzY0YWVhZTNkY2YxYTNlYzY5IjoiNjRmM2RkODYxYjdjN2QyOWZjZTlhZTBjZTllZDk1NGI1ZDcxNDE4MDZlZTllZWM3IgogCiBnZW5lcmljIG11bHRpIHN0ZXAgSE1BQy1TSEEtMzg0IFRlc3QgVmVjdG9yIE5JU1QgQ0FWUyAjMQotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEzODQKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8zODQKIG1kX2htYWNfbXVsdGk6TUJFRFRMU19NRF9TSEEzODQ6MzI6IjkxYTc0MDE4MTczODY5NDhjYTk1MmY5YTIwZWU1NWRjIjoiMmZlYTViOTEwMzVkNmQ1MDFmM2E4MzRmYTE3OGJmZjRlNjRiOTlhODQ1MDQzMmRhZmQzMmU0NDY2YjBlMWU3NzgxMTY2ZjhhNzNmN2UwMzZiM2IwODcwOTIwZjU1OWY0N2JkMTQwMGExYTkwNmU4NWUwZGNmMDBhNmMyNjg2MmU5MTQ4YjIzODA2NjgwZjI4NWYxZmU0ZjkzY2RhZjkyNGMxODFhOTY1NDY1NzM5YzE0ZjIyNjhjOGJlOGI0NzE4NDdjNzRiMjIyNTc3YTEzMTBiY2RjMWE4NWVmMTQ2OGFhMWEzZmQ0MDMxMjEzYzk3MzI0Yjc1MDljOTA1MGEzZCI6IjZkN2JlOTQ5MDA1OGNmNDEzY2MwOWZkMDQzYzIyNGMyZWM0ZmE3ODU5YjEzNzgzMDAwYTlhNTkzYzlmNzU4MzgiCiAKIGdlbmVyaWMgbXVsdGkgc3RlcCBITUFDLVNIQS0zODQgVGVzdCBWZWN0b3IgTklTVCBDQVZTICMyCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTM4NAorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzM4NAogbWRfaG1hY19tdWx0aTpNQkVEVExTX01EX1NIQTM4NDozMjoiZDZjYWMxOTY1NzA2MWFhOTBhNmRhMTFjZDJlOWVhNDciOiI5ZjQ4MmU0NjU1MTczMTM1ZGZhYTIyYTExYmJiZTZhZjI2M2RiNDg3MTY0MDZjNWFlYzE2MmJhM2M0YjQxY2FkNGY1YTkxNTU4Mzc3NTIxMTkxYzczNDMxMThiZWVlNjU5ODI5Mjk4MDI5MTNkNjdiNmRlNWM0YmRjM2QyNzI5OWJkNzIyMjE5ZDVhZDJlZmE1YmRiOWZmN2IyMjlmYzRiYmMzZjYwNzE5MzIwY2YyZTdhNTFjYWQxMTMzZDIxYmFkMmQ4MDkxOWIxODM2ZWY4MjUzMDhiN2M1MWM2Yjc2NzdhYzc4MmUyYmMzMDAwN2FmYmEwNjU2ODFjYmRkMjE1IjoiZjNkNWYzYzAwODE3NTMyMWFhN2IyZWEzNzllYWE0ZjhiOWRjYzYwZjg5NWVjODk0MGI4MTYyZjgwYTdkZmU5ZiIKIAogZ2VuZXJpYyBtdWx0aSBzdGVwIEhNQUMtU0hBLTM4NCBUZXN0IFZlY3RvciBOSVNUIENBVlMgIzMKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMzg0CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMzg0CiBtZF9obWFjX211bHRpOk1CRURUTFNfTURfU0hBMzg0OjMyOiJlMDYzNjZhZDE0OWI4NDQyY2Q0YzFhYmRkZGQwYWZkZSI6IjJkMTQwYTE5NGMwMmE1NTk4ZjY5MTc0ODM0Njc5YjgzNzEyMzRhMGQ1MDU0OTFmMWJkMDNlMTI4ZGQ5MWE4YmNhMmZiODEyZTlkNWRhNzE2MTNiNWIwMDk1MmVhNzhiZjQ1MGQ1Yjc1NDdkZWE3OTEzNTkyNTA4NWM3ZDNlNmY1MjAwOWM1MWNhM2Q4OGM2YzA5ZTlkMDc0YjBlZTExMDczNmUwZWM5YjQ3OGI5M2VmYjM0ZDdiZjFjNDFiNTRkZWNlYzQzZWFiMDc3YTNhYTQ5OThlZGU1M2Y2N2I0ZWEzNmMyNjY3NDVmOTY0M2Q1MzYwYmRjODMzN2M3MGRhYmYiOiJjMTljNjdlZGE2ZmUyOWYzNjY3YmVlMWM4OTdjMzMzY2U3NjgzMDk0YWU3N2U4NGI0YzE2Mzc4ZDI5MDg5NWExIgogCiBnZW5lcmljIG11bHRpIHN0ZXAgSE1BQy1TSEEtMzg0IFRlc3QgVmVjdG9yIE5JU1QgQ0FWUyAjNAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEzODQKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8zODQKIG1kX2htYWNfbXVsdGk6TUJFRFRMU19NRF9TSEEzODQ6NDg6IjAxYWM1OWY0MmY4YmI5MWQxYmQxMGZlNjk5MGQ3YTg3IjoiM2NhZjE4YzQ3NmVkZDU2MTVmMzQzYWM3YjdkM2E5ZGE5ZWZhZGU3NTU2NzJkNWJhNGI4YWU4YTc1MDU1MzllYTJjMTI0ZmY3NTVlYzA0NTdmYmU0OWU0MzQ4MGIzYzcxZTdmNDc0MmVjMzY5M2FhZDExNWQwMzlmOTAyMjJiMDMwZmRjOTQ0MDMxMzY5MTcxNmQ1MzAyMDA1ODA4YzA3NjI3NDgzYjkxNmZkZjYxOTgzMDYzYzJlYjEyNjhmMmRlZWVmNDJmYzc5MDMzNDQ1NmJjNmJhZDI1NmUzMWZjOTA2NmRlN2NjN2U0M2QxMzIxYjE4NjZkYjQ1ZTkwNTYyMiI6IjE5ODVmYTIxNjNhNTk0M2ZjNWQ5MmYxZmU4ODMxMjE1ZTdlOTFmMGJmZjUzMzJiYzcxM2EwNzJiZGIzYThmOWU1YzUxNTc0NjNhM2JmZWIzNjIzMTQxNmU2NTk3M2U2NCIKIAogZ2VuZXJpYyBtdWx0aSBzdGVwIEhNQUMtU0hBLTM4NCBUZXN0IFZlY3RvciBOSVNUIENBVlMgIzUgWyMxXQotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEzODQKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8zODQKIG1kX2htYWNfbXVsdGk6TUJFRFRMU19NRF9TSEEzODQ6NDg6ImZkNzRiOWQ5ZTEwMmEzYTgwZGYxYmFmMGNiMzViYWNlIjoiMWEwNjg5MTc1ODQ4MTNkMTY4OWNjYmQwMzcwYzIxMTRkNTM3Y2RjOGNjNTJiZjZkYjE2ZDU1MzVmOGY3ZDFhZDBjODUwYTlmYTBjZjYyMzczZmZiZjc2NDJiMWYxZTgxNjQwMTBkMzUwNzIxZDc5OGQ5Zjk5ZTk3MjQ4MzAzOTljMmZjZTI2Mzc3ZTgzZDM4ODQ1Njc1NDU3ODY1YzAzZDRhMDdkNzQxYTUwNWVmMDI4MzQzZWIyOWZkNDZkMGY3NjFmMzc5Mjg4Njk5OGMxZTVjMzJhYzNiYzdlNmYwOGZhZWQxOTRiMzRmMDZlZmY0ZDVkNGE1YjQyYzQ4MWUwZSI6ImE5ODFlYWY1ZGUzZDc4YjIwZWJkNDQxNGE0ZWRkMDY1N2UzNjY3Y2Q4MDhhMGRiYzQzMGNmNzI1MmY3M2E1YjI0ZWZhMTM2MDM5MjA3YmQ1OTgwNjg5NzQ1N2Q3NGUwYyIKIAogZ2VuZXJpYyBtdWx0aSBzdGVwIEhNQUMtU0hBLTM4NCBUZXN0IFZlY3RvciBOSVNUIENBVlMgIzUgWyMyXQotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEzODQKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8zODQKIG1kX2htYWNfbXVsdGk6TUJFRFRMU19NRF9TSEEzODQ6NDg6IjlmZTc5NGYwZTI2YjY2OWZhNWY2ODgzMTQ5Mzc3YzZjIjoiNjAxMGM5NzQ1ZThmMWQ0NGNmZGM5OWU3ZTBmZDc5YmM0MjcxOTQ0YzJkMWQ4NGRiYTU4OTA3M2RmYzRjYTVlYjk4YzU5MzU2ZjYwY2Q4N2JlZjI4YWViODNhODMyYmRlMzM5YjIwODdkYWY5NDJhYTFmNjc4NzZjNWQ1ZWQzMzkyNGJlZDQxNDNiYzEyYTJiZTUzMmNjYWY2NGRhYTdlMmJjM2M4ODcyYjk4MjNiMDUzM2I2ZjUxNTkxMzVlZmZlOGM2MTU0NTUzNjk3NWQ3YzNhNjFiYTczNjVlYzM1ZjE2NWJjOTJiNGQxOWViOTE1NmFkZTE3ZGZhMWJiNDE2MSI6IjkxNWFlNjFmODc1NDY5OGMyYjZlZjk2MjllOTM0NDFmODU0MWJkNDI1OGE1ZTA1MzcyZDE5MTM2Y2ZhZWZjMDQ3M2I0OGQ5NjExOTI5MWIzOGViMWEzY2IxOTgyYTk4NiIKIAogZ2VuZXJpYyBtdWx0aSBzdGVwIEhNQUMtU0hBLTUxMiBUZXN0IFZlY3RvciBOSVNUIENBVlMgIzEKQEAgLTczMyw2NyArNzMzLDY3IEBACiBtZF9obWFjX211bHRpOk1CRURUTFNfTURfU0hBNTEyOjQ4OiI4YWI3ODNkNWFjZjMyZWZhMGQ5YzBhMjFhYmNlOTU1ZTk2NjMwZDg5IjoiMTczNzFlMDEzZGNlODM5OTYzZDU0NDE4ZTk3YmU0YmQ5ZmEzY2IyYTM2OGE1MjIwZjVhYTFiOGFhZGRmYTNiZGVmYzkxYWZlN2M3MTcyNDRmZDJmYjY0MGY1Y2I5ZDliZjNlMjVmN2YwYzhiYzc1ODg4M2I4OWRjZGNlNmQ3NDlkOTY3MmZlZDIyMjI3N2VjZTNlODRiM2VjMDFiOTZmNzBjMTI1ZmNiM2NiZWU2ZDE5YjhlZjA4NzNmOTE1ZjE3M2JkYjA1ZDgxNjI5YmExODdjYzhhYzE5MzRiMmY3NTk1MmZiNzYxNmFlNmJkODEyOTQ2ZGY2OTRiZDI3NjNhZiI6IjlhYzdjYThkMWFlZmMxNjZiMDQ2ZTRjZjc2MDJlYmUxODFhMGU1MDU1NDc0YmZmNWIzNDIxMDY3MzFkYTBkN2U0OGU0ZDg3YmMwYTZmMDU4NzE1NzQyODlhMWIwOTlmOCIKIAogSE1BQy1TSEEzLTIyNCBtdWx0aS1zdGVwOiBOSVNUIGV4YW1wbGUgIzE6IGtleWxlbjxibG9ja2xlbgotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEzXzIyNAorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBM18yMjQKIG1kX2htYWNfbXVsdGk6TUJFRFRMU19NRF9TSEEzXzIyNDoyODoiMDAwMTAyMDMwNDA1MDYwNzA4MDkwYTBiMGMwZDBlMGYxMDExMTIxMzE0MTUxNjE3MTgxOTFhMWIiOiI1MzYxNmQ3MDZjNjUyMDZkNjU3MzczNjE2NzY1MjA2NjZmNzIyMDZiNjU3OTZjNjU2ZTNjNjI2YzZmNjM2YjZjNjU2ZSI6IjMzMmNmZDU5MzQ3ZmRiOGU1NzZlNzcyNjBiZTRhYmEyZDZkYzUzMTE3YjNiZmI1MmM2ZDE4YzA0IgogCiBITUFDLVNIQTMtMjI0IG11bHRpLXN0ZXA6IE5JU1QgZXhhbXBsZSAjMjoga2V5bGVuPWJsb2NrbGVuCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTNfMjI0CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEEzXzIyNAogbWRfaG1hY19tdWx0aTpNQkVEVExTX01EX1NIQTNfMjI0OjI4OiIwMDAxMDIwMzA0MDUwNjA3MDgwOTBhMGIwYzBkMGUwZjEwMTExMjEzMTQxNTE2MTcxODE5MWExYjFjMWQxZTFmMjAyMTIyMjMyNDI1MjYyNzI4MjkyYTJiMmMyZDJlMmYzMDMxMzIzMzM0MzUzNjM3MzgzOTNhM2IzYzNkM2UzZjQwNDE0MjQzNDQ0NTQ2NDc0ODQ5NGE0YjRjNGQ0ZTRmNTA1MTUyNTM1NDU1NTY1NzU4NTk1YTViNWM1ZDVlNWY2MDYxNjI2MzY0NjU2NjY3Njg2OTZhNmI2YzZkNmU2ZjcwNzE3MjczNzQ3NTc2Nzc3ODc5N2E3YjdjN2Q3ZTdmODA4MTgyODM4NDg1ODY4Nzg4ODk4YThiOGM4ZDhlOGYiOiI1MzYxNmQ3MDZjNjUyMDZkNjU3MzczNjE2NzY1MjA2NjZmNzIyMDZiNjU3OTZjNjU2ZTNkNjI2YzZmNjM2YjZjNjU2ZSI6ImQ4YjczM2JjZjY2YzY0NGExMjMyM2Q1NjRlMjRkY2YzZmM3NWYyMzFmM2I2Nzk2ODM1OTEwMGM3IgogCiBITUFDLVNIQTMtMjI0IG11bHRpLXN0ZXA6IE5JU1QgZXhhbXBsZSAjMzoga2V5bGVuPmJsb2NrbGVuCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTNfMjI0CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEEzXzIyNAogbWRfaG1hY19tdWx0aTpNQkVEVExTX01EX1NIQTNfMjI0OjI4OiIwMDAxMDIwMzA0MDUwNjA3MDgwOTBhMGIwYzBkMGUwZjEwMTExMjEzMTQxNTE2MTcxODE5MWExYjFjMWQxZTFmMjAyMTIyMjMyNDI1MjYyNzI4MjkyYTJiMmMyZDJlMmYzMDMxMzIzMzM0MzUzNjM3MzgzOTNhM2IzYzNkM2UzZjQwNDE0MjQzNDQ0NTQ2NDc0ODQ5NGE0YjRjNGQ0ZTRmNTA1MTUyNTM1NDU1NTY1NzU4NTk1YTViNWM1ZDVlNWY2MDYxNjI2MzY0NjU2NjY3Njg2OTZhNmI2YzZkNmU2ZjcwNzE3MjczNzQ3NTc2Nzc3ODc5N2E3YjdjN2Q3ZTdmODA4MTgyODM4NDg1ODY4Nzg4ODk4YThiOGM4ZDhlOGY5MDkxOTI5Mzk0OTU5Njk3OTg5OTlhOWI5YzlkOWU5ZmEwYTFhMmEzYTRhNWE2YTdhOGE5YWFhYiI6IjUzNjE2ZDcwNmM2NTIwNmQ2NTczNzM2MTY3NjUyMDY2NmY3MjIwNmI2NTc5NmM2NTZlM2U2MjZjNmY2MzZiNmM2NTZlIjoiMDc4Njk1ZWVjYzIyN2M2MzZhZDMxZDA2M2ExNWRkMDVhN2U4MTlhNjZlYzZkOGRlMWUxOTNlNTkiCiAKIEhNQUMtU0hBMy0yMjQgbXVsdGktc3RlcDogTklTVCBleGFtcGxlICM0OiBrZXlsZW48YmxvY2tsZW4sIHdpdGggdHJ1bmNhdGVkIHRhZwotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEzXzIyNAorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBM18yMjQKIG1kX2htYWNfbXVsdGk6TUJFRFRMU19NRF9TSEEzXzIyNDoxNDoiMDAwMTAyMDMwNDA1MDYwNzA4MDkwYTBiMGMwZDBlMGYxMDExMTIxMzE0MTUxNjE3MTgxOTFhMWIiOiI1MzYxNmQ3MDZjNjUyMDZkNjU3MzczNjE2NzY1MjA2NjZmNzIyMDZiNjU3OTZjNjU2ZTNjNjI2YzZmNjM2YjZjNjU2ZTJjMjA3NzY5NzQ2ODIwNzQ3Mjc1NmU2MzYxNzQ2NTY0MjA3NDYxNjciOiI4NTY5YzU0Y2JiMDBhOWI3OGZmMWIzOTFiMGU1IgogCiBITUFDLVNIQTMtMjU2IG11bHRpLXN0ZXA6IE5JU1QgZXhhbXBsZSAjMToga2V5bGVuPGJsb2NrbGVuCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTNfMjU2CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEEzXzI1NgogbWRfaG1hY19tdWx0aTpNQkVEVExTX01EX1NIQTNfMjU2OjMyOiIwMDAxMDIwMzA0MDUwNjA3MDgwOTBhMGIwYzBkMGUwZjEwMTExMjEzMTQxNTE2MTcxODE5MWExYjFjMWQxZTFmIjoiNTM2MTZkNzA2YzY1MjA2ZDY1NzM3MzYxNjc2NTIwNjY2ZjcyMjA2YjY1Nzk2YzY1NmUzYzYyNmM2ZjYzNmI2YzY1NmUiOiI0ZmU4ZTIwMmM0ZjA1OGU4ZGRkYzIzZDhjMzRlNDY3MzQzZTIzNTU1ZTI0ZmMyZjAyNWQ1OThmNTU4ZjY3MjA1IgogCiBITUFDLVNIQTMtMjU2IG11bHRpLXN0ZXA6IE5JU1QgZXhhbXBsZSAjMjoga2V5bGVuPWJsb2NrbGVuCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTNfMjU2CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEEzXzI1NgogbWRfaG1hY19tdWx0aTpNQkVEVExTX01EX1NIQTNfMjU2OjMyOiIwMDAxMDIwMzA0MDUwNjA3MDgwOTBhMGIwYzBkMGUwZjEwMTExMjEzMTQxNTE2MTcxODE5MWExYjFjMWQxZTFmMjAyMTIyMjMyNDI1MjYyNzI4MjkyYTJiMmMyZDJlMmYzMDMxMzIzMzM0MzUzNjM3MzgzOTNhM2IzYzNkM2UzZjQwNDE0MjQzNDQ0NTQ2NDc0ODQ5NGE0YjRjNGQ0ZTRmNTA1MTUyNTM1NDU1NTY1NzU4NTk1YTViNWM1ZDVlNWY2MDYxNjI2MzY0NjU2NjY3Njg2OTZhNmI2YzZkNmU2ZjcwNzE3MjczNzQ3NTc2Nzc3ODc5N2E3YjdjN2Q3ZTdmODA4MTgyODM4NDg1ODY4NyI6IjUzNjE2ZDcwNmM2NTIwNmQ2NTczNzM2MTY3NjUyMDY2NmY3MjIwNmI2NTc5NmM2NTZlM2Q2MjZjNmY2MzZiNmM2NTZlIjoiNjhiOTRlMmU1MzhhOWJlNDEwM2JlYmI1YWEwMTZkNDc5NjFkNGQxYWE5MDYwNjEzMTNiNTU3ZjhhZjJjM2ZhYSIKIAogSE1BQy1TSEEzLTI1NiBtdWx0aS1zdGVwOiBOSVNUIGV4YW1wbGUgIzM6IGtleWxlbj5ibG9ja2xlbgotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEzXzI1NgorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBM18yNTYKIG1kX2htYWNfbXVsdGk6TUJFRFRMU19NRF9TSEEzXzI1NjozMjoiMDAwMTAyMDMwNDA1MDYwNzA4MDkwYTBiMGMwZDBlMGYxMDExMTIxMzE0MTUxNjE3MTgxOTFhMWIxYzFkMWUxZjIwMjEyMjIzMjQyNTI2MjcyODI5MmEyYjJjMmQyZTJmMzAzMTMyMzMzNDM1MzYzNzM4MzkzYTNiM2MzZDNlM2Y0MDQxNDI0MzQ0NDU0NjQ3NDg0OTRhNGI0YzRkNGU0ZjUwNTE1MjUzNTQ1NTU2NTc1ODU5NWE1YjVjNWQ1ZTVmNjA2MTYyNjM2NDY1NjY2NzY4Njk2YTZiNmM2ZDZlNmY3MDcxNzI3Mzc0NzU3Njc3Nzg3OTdhN2I3YzdkN2U3ZjgwODE4MjgzODQ4NTg2ODc4ODg5OGE4YjhjOGQ4ZThmOTA5MTkyOTM5NDk1OTY5Nzk4OTk5YTliOWM5ZDllOWZhMGExYTJhM2E0YTVhNmE3IjoiNTM2MTZkNzA2YzY1MjA2ZDY1NzM3MzYxNjc2NTIwNjY2ZjcyMjA2YjY1Nzk2YzY1NmUzZTYyNmM2ZjYzNmI2YzY1NmUiOiI5YmNmMmMyMzhlMjM1YzNjZTg4NDA0ZTgxM2JkMmYzYTk3MTg1YWM2ZjIzOGM2M2Q2MjI5YTAwYjA3OTc0MjU4IgogCiBITUFDLVNIQTMtMjU2IG11bHRpLXN0ZXA6IE5JU1QgZXhhbXBsZSAjNDoga2V5bGVuPGJsb2NrbGVuLCB3aXRoIHRydW5jYXRlZCB0YWcKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBM18yNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQTNfMjU2CiBtZF9obWFjX211bHRpOk1CRURUTFNfTURfU0hBM18yNTY6MTY6IjAwMDEwMjAzMDQwNTA2MDcwODA5MGEwYjBjMGQwZTBmMTAxMTEyMTMxNDE1MTYxNzE4MTkxYTFiMWMxZDFlMWYiOiI1MzYxNmQ3MDZjNjUyMDZkNjU3MzczNjE2NzY1MjA2NjZmNzIyMDZiNjU3OTZjNjU2ZTNjNjI2YzZmNjM2YjZjNjU2ZTJjMjA3NzY5NzQ2ODIwNzQ3Mjc1NmU2MzYxNzQ2NTY0MjA3NDYxNjciOiJjOGRjNzE0OGQ4YzE0MjNhYTU0OTEwNWRhZmRmOWNhZCIKIAogSE1BQy1TSEEzLTM4NCBtdWx0aS1zdGVwOiBOSVNUIGV4YW1wbGUgIzE6IGtleWxlbjxibG9ja2xlbgotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEzXzM4NAorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBM18zODQKIG1kX2htYWNfbXVsdGk6TUJFRFRMU19NRF9TSEEzXzM4NDo0ODoiMDAwMTAyMDMwNDA1MDYwNzA4MDkwYTBiMGMwZDBlMGYxMDExMTIxMzE0MTUxNjE3MTgxOTFhMWIxYzFkMWUxZjIwMjEyMjIzMjQyNTI2MjcyODI5MmEyYjJjMmQyZTJmIjoiNTM2MTZkNzA2YzY1MjA2ZDY1NzM3MzYxNjc2NTIwNjY2ZjcyMjA2YjY1Nzk2YzY1NmUzYzYyNmM2ZjYzNmI2YzY1NmUiOiJkNTg4YTNjNTFmM2YyZDkwNmU4Mjk4YzExOTlhYThmZjYyOTYyMTgxMjdmNmIzOGE5MGI2YWZlMmM1NjE3NzI1YmM5OTk4N2Y3OWIyMmE1NTdiNjUyMGRiNzEwYjdmNDIiCiAKIEhNQUMtU0hBMy0zODQgbXVsdGktc3RlcDogTklTVCBleGFtcGxlICMyOiBrZXlsZW49YmxvY2tsZW4KLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBM18zODQKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQTNfMzg0CiBtZF9obWFjX211bHRpOk1CRURUTFNfTURfU0hBM18zODQ6NDg6IjAwMDEwMjAzMDQwNTA2MDcwODA5MGEwYjBjMGQwZTBmMTAxMTEyMTMxNDE1MTYxNzE4MTkxYTFiMWMxZDFlMWYyMDIxMjIyMzI0MjUyNjI3MjgyOTJhMmIyYzJkMmUyZjMwMzEzMjMzMzQzNTM2MzczODM5M2EzYjNjM2QzZTNmNDA0MTQyNDM0NDQ1NDY0NzQ4NDk0YTRiNGM0ZDRlNGY1MDUxNTI1MzU0NTU1NjU3NTg1OTVhNWI1YzVkNWU1ZjYwNjE2MjYzNjQ2NTY2NjciOiI1MzYxNmQ3MDZjNjUyMDZkNjU3MzczNjE2NzY1MjA2NjZmNzIyMDZiNjU3OTZjNjU2ZTNkNjI2YzZmNjM2YjZjNjU2ZSI6ImEyN2QyNGI1OTJlOGM4Y2JmNmQ0Y2U2ZmM1YmY2MmQ4ZmM5OGJmMmQ0ODY2NDBkOWViODA5OWUyNDA0NzgzN2Y1ZjNiZmZiZTkyZGNjZTkwYjRlZDViMWU3ZTQ0ZmE5MCIKIAogSE1BQy1TSEEzLTM4NCBtdWx0aS1zdGVwOiBOSVNUIGV4YW1wbGUgIzM6IGtleWxlbj5ibG9ja2xlbgotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEzXzM4NAorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBM18zODQKIG1kX2htYWNfbXVsdGk6TUJFRFRMU19NRF9TSEEzXzM4NDo0ODoiMDAwMTAyMDMwNDA1MDYwNzA4MDkwYTBiMGMwZDBlMGYxMDExMTIxMzE0MTUxNjE3MTgxOTFhMWIxYzFkMWUxZjIwMjEyMjIzMjQyNTI2MjcyODI5MmEyYjJjMmQyZTJmMzAzMTMyMzMzNDM1MzYzNzM4MzkzYTNiM2MzZDNlM2Y0MDQxNDI0MzQ0NDU0NjQ3NDg0OTRhNGI0YzRkNGU0ZjUwNTE1MjUzNTQ1NTU2NTc1ODU5NWE1YjVjNWQ1ZTVmNjA2MTYyNjM2NDY1NjY2NzY4Njk2YTZiNmM2ZDZlNmY3MDcxNzI3Mzc0NzU3Njc3Nzg3OTdhN2I3YzdkN2U3ZjgwODE4MjgzODQ4NTg2ODc4ODg5OGE4YjhjOGQ4ZThmOTA5MTkyOTM5NDk1OTY5NyI6IjUzNjE2ZDcwNmM2NTIwNmQ2NTczNzM2MTY3NjUyMDY2NmY3MjIwNmI2NTc5NmM2NTZlM2U2MjZjNmY2MzZiNmM2NTZlIjoiZTVhZTRjNzM5ZjQ1NTI3OTM2OGViZjM2ZDRmNTM1NGM5NWFhMTg0Yzg5OWQzODcwZTQ2MGViYzI4OGVmMWY5NDcwMDUzZjczZjdjNmRhMmE3MWJjYWVjMzhjZTdkNmFjIgogCiBITUFDLVNIQTMtMzg0IG11bHRpLXN0ZXA6IE5JU1QgZXhhbXBsZSAjNDoga2V5bGVuPGJsb2NrbGVuLCB3aXRoIHRydW5jYXRlZCB0YWcKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBM18zODQKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQTNfMzg0CiBtZF9obWFjX211bHRpOk1CRURUTFNfTURfU0hBM18zODQ6MjQ6IjAwMDEwMjAzMDQwNTA2MDcwODA5MGEwYjBjMGQwZTBmMTAxMTEyMTMxNDE1MTYxNzE4MTkxYTFiMWMxZDFlMWYyMDIxMjIyMzI0MjUyNjI3MjgyOTJhMmIyYzJkMmUyZiI6IjUzNjE2ZDcwNmM2NTIwNmQ2NTczNzM2MTY3NjUyMDY2NmY3MjIwNmI2NTc5NmM2NTZlM2M2MjZjNmY2MzZiNmM2NTZlMmMyMDc3Njk3NDY4MjA3NDcyNzU2ZTYzNjE3NDY1NjQyMDc0NjE2NyI6IjI1ZjRiZjUzNjA2ZTkxYWY3OWQyNGE0YmIxZmQ2YWVjZDQ0NDE0YTMwYzhlYmIwYSIKIAogSE1BQy1TSEEzLTUxMiBtdWx0aS1zdGVwOiBOSVNUIGV4YW1wbGUgIzE6IGtleWxlbjxibG9ja2xlbgotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEzXzUxMgorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBM181MTIKIG1kX2htYWNfbXVsdGk6TUJFRFRMU19NRF9TSEEzXzUxMjo2NDoiMDAwMTAyMDMwNDA1MDYwNzA4MDkwYTBiMGMwZDBlMGYxMDExMTIxMzE0MTUxNjE3MTgxOTFhMWIxYzFkMWUxZjIwMjEyMjIzMjQyNTI2MjcyODI5MmEyYjJjMmQyZTJmMzAzMTMyMzMzNDM1MzYzNzM4MzkzYTNiM2MzZDNlM2YiOiI1MzYxNmQ3MDZjNjUyMDZkNjU3MzczNjE2NzY1MjA2NjZmNzIyMDZiNjU3OTZjNjU2ZTNjNjI2YzZmNjM2YjZjNjU2ZSI6IjRlZmQ2MjlkNmM3MWJmODYxNjI2NThmMjk5NDNiMWMzMDhjZTI3Y2RmYTZkYjBkOWMzY2U4MTc2M2Y5Y2JjZTVmN2ViZTk4NjgwMzFkYjFhOGY4ZWI3YjZiOTVlNWM1ZTNmNjU3YTg5OTZjODZhMmY2NTI3ZTMwN2YwMjEzMTk2IgogCiBITUFDLVNIQTMtNTEyIG11bHRpLXN0ZXA6IE5JU1QgZXhhbXBsZSAjMjoga2V5bGVuPWJsb2NrbGVuCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTNfNTEyCitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEEzXzUxMgogbWRfaG1hY19tdWx0aTpNQkVEVExTX01EX1NIQTNfNTEyOjY0OiIwMDAxMDIwMzA0MDUwNjA3MDgwOTBhMGIwYzBkMGUwZjEwMTExMjEzMTQxNTE2MTcxODE5MWExYjFjMWQxZTFmMjAyMTIyMjMyNDI1MjYyNzI4MjkyYTJiMmMyZDJlMmYzMDMxMzIzMzM0MzUzNjM3MzgzOTNhM2IzYzNkM2UzZjQwNDE0MjQzNDQ0NTQ2NDciOiI1MzYxNmQ3MDZjNjUyMDZkNjU3MzczNjE2NzY1MjA2NjZmNzIyMDZiNjU3OTZjNjU2ZTNkNjI2YzZmNjM2YjZjNjU2ZSI6IjU0NGUyNTdlYTJhM2U1ZWExOWE1OTBlNmEyNGI3MjRjZTYzMjc3NTc3MjNmZTI3NTFiNzViZjAwN2Q4MGY2YjM2MDc0NGJmMWI3YTg4ZWE1ODVmOTc2NWI0NzkxMTk3NmQzMTkxY2Y4M2MwMzlmNWZmYWIwZDI5Y2M5ZDliNmRhIgogCiBITUFDLVNIQTMtNTEyIG11bHRpLXN0ZXA6IE5JU1QgZXhhbXBsZSAjMzoga2V5bGVuPmJsb2NrbGVuCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTNfNTEyCitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEEzXzUxMgogbWRfaG1hY19tdWx0aTpNQkVEVExTX01EX1NIQTNfNTEyOjY0OiIwMDAxMDIwMzA0MDUwNjA3MDgwOTBhMGIwYzBkMGUwZjEwMTExMjEzMTQxNTE2MTcxODE5MWExYjFjMWQxZTFmMjAyMTIyMjMyNDI1MjYyNzI4MjkyYTJiMmMyZDJlMmYzMDMxMzIzMzM0MzUzNjM3MzgzOTNhM2IzYzNkM2UzZjQwNDE0MjQzNDQ0NTQ2NDc0ODQ5NGE0YjRjNGQ0ZTRmNTA1MTUyNTM1NDU1NTY1NzU4NTk1YTViNWM1ZDVlNWY2MDYxNjI2MzY0NjU2NjY3Njg2OTZhNmI2YzZkNmU2ZjcwNzE3MjczNzQ3NTc2Nzc3ODc5N2E3YjdjN2Q3ZTdmODA4MTgyODM4NDg1ODY4NyI6IjUzNjE2ZDcwNmM2NTIwNmQ2NTczNzM2MTY3NjUyMDY2NmY3MjIwNmI2NTc5NmM2NTZlM2U2MjZjNmY2MzZiNmM2NTZlIjoiNWY0NjRmNWU1Yjc4NDhlMzg4NWU0OWIyYzM4NWYwNjk0OTg1ZDBlMzg5NjYyNDJkYzRhNWZlM2ZlYTRiMzdkNDZiNjVjZWNlZDVkY2Y1OTQzOGRkODQwYmFiMjIyNjlmMGJhN2ZlYmRiOWZjZjc0NjAyYTM1NjY2YjJhMzI5MTUiCiAKIEhNQUMtU0hBMy01MTIgbXVsdGktc3RlcDogTklTVCBleGFtcGxlICM0OiBrZXlsZW48YmxvY2tsZW4sIHdpdGggdHJ1bmNhdGVkIHRhZwotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEzXzUxMgorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBM181MTIKIG1kX2htYWNfbXVsdGk6TUJFRFRMU19NRF9TSEEzXzUxMjozMjoiMDAwMTAyMDMwNDA1MDYwNzA4MDkwYTBiMGMwZDBlMGYxMDExMTIxMzE0MTUxNjE3MTgxOTFhMWIxYzFkMWUxZjIwMjEyMjIzMjQyNTI2MjcyODI5MmEyYjJjMmQyZTJmMzAzMTMyMzMzNDM1MzYzNzM4MzkzYTNiM2MzZDNlM2YiOiI1MzYxNmQ3MDZjNjUyMDZkNjU3MzczNjE2NzY1MjA2NjZmNzIyMDZiNjU3OTZjNjU2ZTNjNjI2YzZmNjM2YjZjNjU2ZTJjMjA3NzY5NzQ2ODIwNzQ3Mjc1NmU2MzYxNzQ2NTY0MjA3NDYxNjciOiI3YmIwNmQ4NTkyNTdiMjVjZTczY2E3MDBkZjM0YzVjYmVmNWM4OThiYWM5MTAyOWUwYjI3OTc1ZDRlNTI2YTA4IgogCiBnZW5lcmljIFNIQS0xIFRlc3QgVmVjdG9yIE5JU1QgQ0FWUyAjMQpAQCAtODM3LDkxICs4MzcsOTEgQEAKIG1kX2hleDpNQkVEVExTX01EX1NIQTE6IjgyMzYxNTM3ODFiZDJmMWI4MWZmZTBkZWYxYmViNDZmNWE3MDE5MTE0MjkyNjY1MTUwM2YxYjNiYjEwMTZhY2RiOWU3ZjdhY2NlZDhkZDE2ODIyNmYxMThmZjY2NGEwMWE4ODAwMTE2ZmQwMjM1ODdiZmJhNTJhMjU1ODM5MzQ3NmY1ZmM2OWNlOWM2NTAwMWYyM2U3MDQ3NmQyY2M4MWM5N2VhMTljYWViMTk0ZTIyNDMzOWJjYjIzZjc3YTgzZmVhYzUwOTZmOWIzMDkwYzUxYTZlZTZkMjA0YjczNWFhNzFkN2U5OTZkMzgwYjgwODIyZTRkZmQ0MzY4M2FmOWM3NDQyNDk4Y2FjYmVhNjQ4NDJkZmRhMjM4Y2IwOTk5MjdjNmVmYWUwN2ZkZjdiMjNhNGU0NDU2ZTAxNTJiMjQ4NTNmZTBkNWRlNDE3OTk3NGIyYjlkNGExY2RiZWZjYmMwMWQ4ZDMxMWI1ZGRhMDU5MTM2MTc2ZWE2OThhYjgyYWNmMjBkZDQ5MGJlNDcxMzBiMTIzNWNiNDhmOGE2NzEwNDczY2ZjOTIzZTIyMmQ5NGI1ODJmOWFlMzZkNGNhMmEzMmQxNDFiOGU4Y2MzNjYzODg0NWZiYzQ5OWJjZTE3Njk4YzNmZWNhZTI1NzJkYmJkNDcwNTUyNDMwZDdlZjMwYzIzOGMyMTI0NDc4ZjFmNzgwNDgzODM5YjRmYjczZDYzYTk0NjAyMDY4MjRhNWI2YjY1MzE1YjIxZTNjMmYyNGM5N2VlN2MwZTc4ZmFhZDNkZjU0OWM3Y2E4ZWYyNDE4NzZkOWFhZmU5YTMwOWY2ZGEzNTJiZWMyY2FhYTkyZWU4ZGNhMzkyODk5YmE2N2RmZWQ5MGFlZjMzZDQxZmMyNDk0Yjc2NWNiM2UyNDIyYzhlNTk1ZGFiYmZhY2EyMTc3NTc0NTNmYjMyMmExMzIwM2Y0MjVmNjA3M2E5OTAzZTJkYzU4MThlZTFkYTczN2FmYzM0NWYwMDU3NzQ0ZTNhNTZlMTY4MWM5NDllYjEyMjczYTNiZmMyMDY5OWU0MjNiOTZlNDRiZDFmZjYyZTUwYTg0OGE4OTA4MDliZmUxNjExYzY3ODdkM2Q3NDExMDMzMDhmODQ5YTc5MGY5YzAxNTA5ODI4NmRiYWNmYzM0YzE3MThiMmMyYjc3ZTMyMTk0YTc1ZGRhMzc5NTRhMzIwZmE2ODc2NDAyNzg1Mjg1NWE3ZTViNTI3NGViMWUyY2JjZDI3MTYxZDk4YjU5YWQyNDU4MjIwMTVmNDhhZjgyYTQ1YzBlZDU5YmU5NGY5YWYwM2Q5NzM2MDQ4NTcwZDZlM2VmNjNiMTc3MGJjOThkZmI3N2RlODRiMWJiMTcwOGQ4NzJiNjI1ZDlhYjliMDZjMThlNWRiYmYzNDM5OTM5MWYwZjhhYTI2ZWMwZGFjN2ZmNGNiOGVjOTdiNTJiY2I5NDJmYTZkYjIzODVkY2QxYjNiOWQ1NjdhYWViNDI1ZDU2N2IwZWJlMjY3MjM1NjUxYTFlZDliZjc4ZmQ5M2QzYzFkZDA3N2ZlMzQwYmIwNGIwMDUyOWM1OGY0NTEyNGI3MTdjMTY4ZDA3ZTk4MjZlMzMzNzY5ODhiYzVjZjYyODQ1YzIwMDk5ODBhNGRmYTY5ZmJjN2U1YTBiMWJiMjBhNTk1OGNhOTY3YWVjNjhlYjMxZGQ4ZmNjY2E5YWZjZDMwYTI2YmFiMjYyNzlmMWJmNjcyNGZmIjoiMTE4NjNiNDgzODA5ZWY4ODQxM2NhOWIwMDg0YWM0YTUzOTA2NDBhZiIKIAogZ2VuZXJpYyBTSEEtMjI0IFRlc3QgVmVjdG9yIE5JU1QgQ0FWUyAjMQotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyMjQKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yMjQKIG1kX2hleDpNQkVEVExTX01EX1NIQTIyNDoiIjoiZDE0YTAyOGMyYTNhMmJjOTQ3NjEwMmJiMjg4MjM0YzQxNWEyYjAxZjgyOGVhNjJhYzViM2U0MmYiCiAKIGdlbmVyaWMgU0hBLTIyNCBUZXN0IFZlY3RvciBOSVNUIENBVlMgIzIKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjI0CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjI0CiBtZF9oZXg6TUJFRFRMU19NRF9TSEEyMjQ6ImZmIjoiZTMzZjlkNzVlNmFlMTM2OWRiYWJmODFiOTZiNDU5MWFlNDZiYmEzMGI1OTFhNmI2YzYyNTQyYjUiCiAKIGdlbmVyaWMgU0hBLTIyNCBUZXN0IFZlY3RvciBOSVNUIENBVlMgIzMKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjI0CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjI0CiBtZF9oZXg6TUJFRFRMU19NRF9TSEEyMjQ6Ijk4NGMiOiIyZmE5ZGY5MTU3ZDllMDI3Y2ZiYzRjNmE5ZGYzMmUxYWRjMGNiZTIzMjhlYzJhNjNjNWFlOTM0ZSIKIAogZ2VuZXJpYyBTSEEtMjI0IFRlc3QgVmVjdG9yIE5JU1QgQ0FWUyAjNAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyMjQKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yMjQKIG1kX2hleDpNQkVEVExTX01EX1NIQTIyNDoiNTBlZmQwIjoiYjVhOTgyMDQxM2MyYmY4MjExZmJiZjVkZjEzMzcwNDNiMzJmYTRlYWZhZjYxYTBjOGU5Y2NlZGUiCiAKIGdlbmVyaWMgU0hBLTIyNCBUZXN0IFZlY3RvciBOSVNUIENBVlMgIzUKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjI0CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjI0CiBtZF9oZXg6TUJFRFRMU19NRF9TSEEyMjQ6ImU1ZTA5OTI0IjoiZmQxOWU3NDY5MGQyOTE0NjdjZTU5ZjA3N2RmMzExNjM4ZjFjM2E0NmU1MTBkMGU0OWE2NzA2MmQiCiAKIGdlbmVyaWMgU0hBLTIyNCBUZXN0IFZlY3RvciBOSVNUIENBVlMgIzYKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjI0CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjI0CiBtZF9oZXg6TUJFRFRMU19NRF9TSEEyMjQ6IjIxZWJlY2I5MTQiOiI3OGY0YTcxYzIxYzY5NDQ5OWNlMWM3ODY2NjExYjE0YWNlNzBkOTA1MDEyYzM1NjMyM2M3YzcxMyIKIAogZ2VuZXJpYyBTSEEtMjI0IFRlc3QgVmVjdG9yIE5JU1QgQ0FWUyAjNwotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyMjQKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yMjQKIG1kX2hleDpNQkVEVExTX01EX1NIQTIyNDoiZmM0ODg5NDdjMWE3YTU4OTcyNmIxNTQzNmI0ZjNkOTU1NjI2MmY5OGZjNjQyMmZjNWNkZjIwZjBmYWQ3ZmU0MjdhMzQ5MWM4NmQxMDFmZmU2Yjc1MTRmMDYyNjhmNjViMmQyNjliMGY2OWFkOWE5Nzg0N2VmZjFjMTZhMjQzODc3NWViN2JlNjg0N2NjZjExY2I4YjJlOGRjZDY2NDBiMDk1YjQ5YzA2OTNmZTNjZjRhNjZlMmQ5YjdhZDY4YmZmMTRmM2FkNjlhYmY0OWQwYWJhMzZjYmUwNTM1MjAyZGViNjU5OWE0NzIyNWVmMDViZWIzNTEzMzVjZDdiYzBmNDgwZDY5MTE5OGM3ZTcxMzA1ZmZkNTNiMzlkMzMyNDJiYjc5Y2ZkOThiZmQ2OWUxMzdiNWQxOGIyYjg5YWM5YWNlMDFjOGRiZGNmMjUzM2NjZTM2ODJlY2M1MjExOGRlMGMxMDYyZWMyMTI2YzJlNjU3ZDZlYTNkOWUyMzk4ZTcwNWQ0YjBiMWYxY2VlY2IyNjZkZmZjNGYzMWJmNDI3NDRmYjFlOTM4ZGMyMmE4ODk5MTllZTFlNzNmNDYzZjc4NzFmZWQ3MjA1MTllMzIxODYyNjRiN2VmMmEwZTVkOWExOGU2Yzk1YzA3ODE4OTRmNzc5NjdmMDQ4OTUxZGVjM2I0ZDg5MmEzODcxMGIxZTM0MzZkM2MyOTA4OGViOGIzZGExNzg5YzI1ZGIzZDNiYzZjMjYwODEyMDZlNzE1NWQyMTBhODliODBjYTZlYTg3N2M0MWZmOTk0N2MwZjI1NjI1ZGNiMTE4Mjk0YTE2MzUwMWY2MjM5YzMyNjY2MWE5NThmZDEyZGE0Y2QxNWE4OTlmOGI4OGNjNzIzNTg5MDU2ZWFlYzVhYTA0YTRjZjVkYmI2ZjQ4MGY5NjYwNDIzY2NmMzhjNDg2ZTIxMDcwN2UwZmIyNWUxZjEyNmNlYjI2MTZmNjNlMTQ3YTY0N2RhYjBhZjllYmU4OWQ2NTQ1OGJmNjM2MTU0YTQ2ZTRjYWI5NWY1ZWU2MmRhMmM3OTc0Y2QxNGI5MGQzZTRmOTlmODE3MzNlODViM2MxZDVkYTJiNTA4ZDliOTBmNWVlZDdlZmYwZDljNzY0OWRlNjJiZWUwMDM3NTQ1NGZlZTRhMzk1NzZhNWJiZmRhZTQyOGU3ZjgwOTdiZGY3Nzk3ZjE2NzY4NmNiNjg0MDdlNDkwNzllNDYxMWZmMzQwMmI2Mzg0YmE3YjdlNTIyYmQyYmIxMWNlOGZkMDJlYTRjMTYwNGQxNjNhYzRmNmRkZTUwYjhiMWY1OTNmN2VkYWFkZWFjMDg2OGVkOTdkZjY5MDIwMDY4MGMyNWYwZjVkODU0MzFhNTI5ZTRmMzM5MDg5ZGNkZWRhMTA1ZTRlZTUxZGVhZDcwNGNkZjVhNjA1YzU1ZmIwNTVjOWIwZTg2YjhiYTFiNTY0YzBkZWEzZWI3OTBhNTk1Y2IxMDNjYjI5MjI2OGIwN2M1ZTU5MzcxZTFhN2VmNTk3Y2Q0YjIyOTc3YTgyMDY5NGM5ZjlhZWI1NWQ5ZGUzZWY2MmI3NWQ2ZTY1NmUzMzM2Njk4ZDk2MGEzNzg3YmY4Y2Y1YjkyNmE3ZmFlZWY1MmFlMTI4YmNiNWRjOWU2NmQ5NGIwMTZjN2I4ZTAzNDg3OTE3MWEyZDkxYzM4MWY1N2U2YTgxNWI2M2I1ZWU2YTZkMmZmNDM1YjQ5ZjE0Yzk2Mzk2Njk2MDE5NDQzMGQ3OGY4Zjg3NjI3YTY3NzU3ZmIzNTMyYjI4OTU1MDg5NGRhNmRjZTQ4MTdhNGUwN2Y0ZDU2ODc3YTExMDJmZmNjOGJlZmE1YzlmOGZjYTZhNDU3NGQ5M2ZmNzAzNzZjODg2MWUwZjgxMDhjZjkwN2ZjZTc3ZWNiNDk3MjhmODZmMDM0ZjgwMjI0Yjk2OTU2ODJlMDgyNDQ2MmY3NmNkYjFmZDFhZjE1MTMzN2IwZDg1NDE5MDQ3YTdhYTI4NDc5MTcxOGE0ODYwY2Q1ODZmNzgyNGI5NWJjODM3YjZmZDRmOWJlNWFhZGU2ODQ1NmUyMDM1NmFhNGQ5NDNkYWMzNmJmOGI2N2I5ZThmOWQwMWEwMGZjZGE3NGI3OThiYWZhNzQ2YzY2MWIwMTBmNzViNTk5MDRiMjlkMGM4MDQxNTA0ODExYzQwNjVmODJjZjJlYWQ1OGQyZjU5NWNiZDhiYzNlNzA0M2Y0ZDk0NTc3YjM3M2I3Y2ZlMTZhMzZmZTU2NGY1MDVjMDNiNzBjZmViNWU1ZjQxMWM3OTQ4MTMzOGFhNjdlODZiM2Y1YTJlNzdjMjFlNDU0YzMzM2FlM2RhOTQzYWI3MjNhYjVmNGM5NDAzOTUzMTk1MzRhNTU3NWY2NGFjYmEwZDBlY2M0M2Y2MDIyMWVkM2JhZGY3Mjg5YzliM2E3YjkwM2EyZDZjOTRlMTVmYTRjMzEwZGM0ZmE3ZmFhMGMyNGY0MDUxNjBhMTAwMmRiZWYyMGU0MTA1ZDQ4MWRiOTgyZjcyNDNmNzk0MDBhNmU0Y2Q5NzUzYzRiOTczMmE0NzU3NWY1MDRiMjBjMzI4ZmU5YWRkN2Y0MzJhNGYwNzU4MjlkYTA3YjUzYjY5NTAzN2RjNTE3MzdkM2NkNzMxOTM0ZGYzMzNjZDFhNTNmY2Y2NWFhMzFiYWE0NTBjYTUwMWE2ZmFlMjZlMzIyMzQ3ZTYxOGM1YTQ0NGQ5MmU5ZmVjNWE4MjYxYWUzOGI5OGZlZTViZTc3YzAyY2VjMDlkZGNjZDViM2RlOTIwMzYiOiIxMzAyMTQ5ZDFlMTk3YzQxODEzYjA1NGM5NDIzMjlkNDIwZTM2NjUzMGY1NTE3YjQ3MGU5NjRmZSIKIAogZ2VuZXJpYyBTSEEtMjU2IFRlc3QgVmVjdG9yIE5JU1QgQ0FWUyAjMQotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIG1kX2hleDpNQkVEVExTX01EX1NIQTI1NjoiIjoiZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NSIKIAogZ2VuZXJpYyBTSEEtMjU2IFRlc3QgVmVjdG9yIE5JU1QgQ0FWUyAjMgotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIG1kX2hleDpNQkVEVExTX01EX1NIQTI1NjoiYmQiOiI2ODMyNTcyMGFhYmQ3YzgyZjMwZjU1NGIzMTNkMDU3MGM5NWFjY2JiN2RjNGI1YWFlMTEyMDRjMDhmZmU3MzJiIgogCiBnZW5lcmljIFNIQS0yNTYgVGVzdCBWZWN0b3IgTklTVCBDQVZTICMzCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NgogbWRfaGV4Ok1CRURUTFNfTURfU0hBMjU2OiI1ZmQ0IjoiN2M0ZmJmNDg0NDk4ZDIxYjQ4N2I5ZDYxZGU4OTE0YjJlYWRhZjI2OTg3MTI5MzZkNDdjM2FkYTI1NThmNjc4OCIKIAogZ2VuZXJpYyBTSEEtMjU2IFRlc3QgVmVjdG9yIE5JU1QgQ0FWUyAjNAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIG1kX2hleDpNQkVEVExTX01EX1NIQTI1NjoiYjBiZDY5IjoiNDA5NjgwNDIyMTA5M2RkY2NmYmY0NjgzMTQ5MGVhNjNlOWU5OTQxNDg1OGY4ZDc1ZmY3ZjY0MmM3Y2E2MTgwMyIKIAogZ2VuZXJpYyBTSEEtMjU2IFRlc3QgVmVjdG9yIE5JU1QgQ0FWUyAjNQotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIG1kX2hleDpNQkVEVExTX01EX1NIQTI1NjoiYzk4YzhlNTUiOiI3YWJjMjJjMGFlNWFmMjZjZTkzZGJiOTQ0MzNhMGUwYjJlMTE5ZDAxNGY4ZTdmNjViZDU2YzYxY2NjY2Q5NTA0IgogCiBnZW5lcmljIFNIQS0yNTYgVGVzdCBWZWN0b3IgTklTVCBDQVZTICM2Ci1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NgogbWRfaGV4Ok1CRURUTFNfTURfU0hBMjU2OiI4MWE3MjNkOTY2IjoiNzUxNmZiOGJiMTEzNTBkZjJiZjM4NmJjM2MzM2JkMGY1MmNiNGM2N2M2ZTQ3NDVlMDQ4OGU2MmMyYWVhMjYwNSIKIAogZ2VuZXJpYyBTSEEtMjU2IFRlc3QgVmVjdG9yIE5JU1QgQ0FWUyAjNwotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIG1kX2hleDpNQkVEVExTX01EX1NIQTI1NjoiODM5MGNmMGJlMDc2NjFjYzc2NjlhYWM1NGNlMDlhMzc3MzNhNjI5ZDQ1ZjVkOTgzZWYyMDFmOWIyZDEzODAwZTU1NWQ5YjEwOTdmZWMzYjc4M2Q3YTUwZGNiNWUyYjY0NGI5NmExZTk0NjNmMTc3Y2YzNDkwNmJmMzg4ZjM2NmRiNWMyZGVlZTA0YTMwZTI4M2Y3NjRhOTdjM2IzNzdhMDM0ZmVmYzIyYzI1OTIxNGZhYTk5YmFiYWZmMTYwYWIwYWFhN2UyY2NiMGNlMDljNmIzMmZlMDhjYmM0NzQ2OTQzNzVhYmE3MDNmYWRiZmEzMWNmNjg1YjMwYTExYzU3ZjNjZjRlZGQzMjFlNTdkM2FlNmViYjExMzNjODI2MGU3NWI5MjI0ZmE0N2EyYmIyMDUyNDlhZGQyZTJlNjJmODE3NDkxNDgyYWUxNTIzMjJiZTA5MDAzNTVjZGNjOGQ0MmE5OGY4MmU5NjFhMGRjNmY1MzdiN2I0MTBlZmYxMDVmNTk2NzNiZmI3ODdiZjA0MmFhMDcxZjdhZjY4ZDk0NGQyNzM3MWM2NDE2MGZlOTM4Mjc3MjM3MjUxNmMyMzBjMWY0NWMwZDZiNmNjYTdmMjc0YjM5NGRhOTQwMmQzZWFmZGY3MzM5OTRlYzU4YWIyMmQ3MTgyOWE5ODM5OTU3NGQ0YjU5MDhhNDQ3YTVhNjgxY2IwZGQ1MGEzMTE0NTMxMWQ5MmMyMmExNmRlMWVhZDY2YTU0OTlmMmRjZWI0Y2FlNjk0NzcyY2U5MDc2MmVmODMzNmFmZWM2NTNhYTliMWExYzQ4MjBiMjIxMTM2ZGZjZTgwZGNlMmJhOTIwZDg4YTUzMGM5NDEwZDBhNGUwMzU4YTNhMTEwNTJlNThkZDczYjBiMTc5ZWY4ZjU2ZmUzYjVhMmQxMTdhNzNhMGMzOGExMzkyYjY5MzhlOTc4MmUwZDg2NDU2ZWU0ODg0ZTNjMzlkNGQ3NTgxM2YxMzYzM2JjNzliYWEwN2MwZDJkNTU1YWZiZjIwN2Y1MmI3ZGNhMTI2ZDAxNWFhMmI5ODczYjNlYjA2NWU5MGI5YjA2NWE1MzczZmUxZmIxYjIwZDU5NDMyN2QxOWZiYTU2Y2I4MWU3YjY2OTY2MDVmZmE1NmViYTNjMjdhNDM4Njk3Y2MyMWIyMDFmZDdlMDlmMThkZWVhMWIzZWEyZjBkMWVkYzAyZGYwZTIwMzk2YTE0NTQxMmNkNmIxM2MzMmQyZTYwNTY0MWM5NDhiNzE0YWVjMzBjMDY0OWRjNDQxNDM1MTFmMzVhYjBmZDVkZDY0YzM0ZDA2ZmU4NmYzODM2ZGZlOWVkZWI3ZjA4Y2ZjM2JkNDA5NTY4MjYzNTYyNDIxOTFmOTlmNTM0NzNmMzJiMGNjMGNmOTMyMWQ2YzkyYTExMmU4ZGI5MGI4NmVlOWU4N2NjMzJkMDM0M2RiMDFlMzJjZTllYjc4MmNiMjRlZmJiYmViNDQwZmU5MjllOGYyYmY4ZGZiMTU1MGEzYTJlNzQyZThiNDU1YTNlNTczMGU5ZTZhN2E5ODI0ZDE3YWNjMGY3MmE3ZjY3ZWFlMGYwOTcwZjhiZGU0NmRjZGVmYWVkMzA0N2NmODA3ZTdmMDBhNDJlNWZkMTFkNDBmNWU5ODUzM2Q3NTc0NDI1YjdkMmJjM2IzODQ1YzQ0MzAwOGI1ODk4MGU3NjhlNDY0ZTE3Y2M2ZjZiMzkzOWVlZTUyZjcxMzk2M2QwN2Q4YzRhYmYwMjQ0OGVmMGI4ODljOTY3MWUyZjhhNDM2ZGRlZWZmY2NhNzE3NmU5YmY5ZDEwMDVlY2QzNzdmMmZhNjdjMjNlZDFmMTM3ZTYwYmY0NjAxOGE4YmQ2MTNkMDM4ZTg4MzcwNGZjMjZlNzk4OTY5ZGYzNWVjN2JiYzZhNGZlNDZkODkxMGJkODJmYTNjZGVkMjY1ZDBhM2I2ZDM5OWU0MjUxZTRkODIzM2RhYTIxYjU4MTJmZGVkNjUzNjE5OGZmMTNhYTVhMWNkNDZhNWI5YTE3YTRkZGMxZDlmODU1NDRkMWQxY2MxNmYzZGY4NTgwMzhjOGUwNzFhMTFhN2UxNTdhODVhNmE4ZGM0N2U4OGQ3NWU3MDA5YThiMjZmZGI3M2YzM2EyYTcwZjFlMGMyNTlmOGY5NTMzYjliOGY5YWY5Mjg4YjcyNzRmMjFiYWVlYzc4ZDM5NmY4YmFjZGNjMjI0NzEyMDdkOWI0ZWZjY2QzZmVkYzVjNWEyMjE0ZmY1ZTUxYzU1M2YzNWUyMWFlNjk2ZmU1MWU4ZGY3MzNhOGUwNmY1MGY0MTllNTk5ZTlmOWU0YjM3Y2U2NDNmYzgxMGZhYWE0Nzk4OTc3MTUwOWQ2OWExMTBhYzkxNjI2MTQyNzAyNjM2OWEyMTI2M2FjNDQ2MGZiNGY3MDhmOGFlMjg1OTk4NTZkYjdjYjZhNDNhYzhlMDNkNjRhOTYwOTgwN2U3NmM1ZjMxMmI5ZDE4NjNiZmEzMDRlODk1MzY0NzY0OGI0ZjRhYjBlZDk5NWUiOiI0MTA5Y2RiZWMzMjQwYWQ3NGNjNmMzN2YzOTMwMGY3MGZlZGUxNmUyMWVmYzc3Zjc4NjU5OTg3MTRhYWQwYjVlIgogCiBnZW5lcmljIFNIQS0zODQgVGVzdCBWZWN0b3IgTklTVCBDQVZTICMxCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTM4NAorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzM4NAogbWRfaGV4Ok1CRURUTFNfTURfU0hBMzg0OiIiOiIzOGIwNjBhNzUxYWM5NjM4NGNkOTMyN2ViMWIxZTM2YTIxZmRiNzExMTRiZTA3NDM0YzBjYzdiZjYzZjZlMWRhMjc0ZWRlYmZlNzZmNjVmYmQ1MWFkMmYxNDg5OGI5NWIiCiAKIGdlbmVyaWMgU0hBLTM4NCBUZXN0IFZlY3RvciBOSVNUIENBVlMgIzIKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMzg0CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMzg0CiBtZF9oZXg6TUJFRFRMU19NRF9TSEEzODQ6ImFiIjoiZmI5NGQ1YmUxMTg4NjVmNmZjYmM5NzhiODI1ZGE4MmNmZjE4OGZhZWMyZjY2Y2I4NGIyNTM3ZDc0YjQ5Mzg0Njk4NTRiMGNhODllNjZmYTJlMTgyODM0NzM2NjI5ZjNkIgogCiBnZW5lcmljIFNIQS0zODQgVGVzdCBWZWN0b3IgTklTVCBDQVZTICMzCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTM4NAorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzM4NAogbWRfaGV4Ok1CRURUTFNfTURfU0hBMzg0OiI3YzI3IjoiM2Q4MGJlNDY3ZGY4NmQ2M2FiYjllYTFkM2Y5Y2IzOWNkMTk4OTBlN2YyYzUzYTYyMDBiZWRjNTAwNjg0MmIzNWU4MjBkYzRlMGNhOTBjYTliOTdhYjIzZWYwNzA4MGZjIgogCiBnZW5lcmljIFNIQS0zODQgVGVzdCBWZWN0b3IgTklTVCBDQVZTICM0Ci1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTM4NAorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzM4NAogbWRfaGV4Ok1CRURUTFNfTURfU0hBMzg0OiIzMWY1Y2EiOiI3OGQ1NGI5NDM0MjFmZGY3YmE5MGE3ZmI5NjM3YzIwNzNhYTQ4MDQ1NGJkODQxZDM5ZmY3MmY0NTExZmMyMWZiNjc3OTdiNjUyYzBjODIzMjI5MzQyODczZDNiZWY5NTUiCiAKIGdlbmVyaWMgU0hBLTM4NCBUZXN0IFZlY3RvciBOSVNUIENBVlMgIzUKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMzg0CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMzg0CiBtZF9oZXg6TUJFRFRMU19NRF9TSEEzODQ6IjdiZGVlM2Y4IjoiOGJkYWZiYTA3NzdlZTQ0NmMzNDMxYzJkN2IxZmJiNjMxMDg5ZjcxZDJjYTQxN2FiYzFkMjMwZTFhYmE2NGVjMmYxYzE4NzQ3NGE2ZjQwNzdkMzcyYzE0YWQ0MDdmOTlhIgogCiBnZW5lcmljIFNIQS0zODQgVGVzdCBWZWN0b3IgTklTVCBDQVZTICM2Ci1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTM4NAorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzM4NAogbWRfaGV4Ok1CRURUTFNfTURfU0hBMzg0OiI4ZjA1NjA0OTE1IjoiNTA0ZTQxNGJmMWRiMTA2MGYxNGM4Yzc5OWUyNWIxZTBjNGRjZjE1MDRlYmJkMTI5OTk4ZjBhZTI4M2U2ZGU4NmUwZDNjN2U4NzljNzNlYzNiMTgzNmMzZWU4OWMyNjQ5IgogCiBnZW5lcmljIFNIQS0zODQgVGVzdCBWZWN0b3IgTklTVCBDQVZTICM3Ci1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTM4NAorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzM4NAogbWRfaGV4Ok1CRURUTFNfTURfU0hBMzg0OiI2NjVkYTZlZGEyMTQiOiI0YzAyMmYxMTIwMTA5MDg4NDgzMTJmOGI4ZjEwNzI2MjVmZDVjMTA1Mzk5ZDU2MmVhMWQ1NjEzMDYxOWE3ZWFjOGRmYzM3NDhmZDA1ZWUzN2U0YjY5MGJlOWRhYTk5ODAiCiAKIGdlbmVyaWMgU0hBLTM4NCBUZXN0IFZlY3RvciBOSVNUIENBVlMgIzgKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMzg0CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMzg0CiBtZF9oZXg6TUJFRFRMU19NRF9TSEEzODQ6IjdmNDZjZTUwNmQ1OTNjNGVkNTNjODJlZGViNjAyMDM3ZTA0ODViZWZiZWUwM2Y3ZjkzMGZlNTMyZDE4ZmYyYTNmNWZkNjA3NjY3MmM4MTQ1YTFiZjQwZGQ5NGY3YWJhYjQ3YzlhZTcxYzIzNDIxM2QyYWQxMDY5YzJkYWMwYjBiYTE1MjU3YWU2NzJiODI0NTk2MGFlNTViZDUwMzE1YzAwOTdkYWEzYTMxODc0NTc4OGQ3MGQxNDcwNjkxMDgwOWNhNmUzOTYyMzdmZTQ5MzRmYTQ2ZjljZTc4MmQ2NjYwNmQ4YmQ2YjJkMjgzYjExNjA1MTNjZTljMjRlOWYwODRiOTc4OTFmOTlkNGNkZWZjMTY5YTAyOWU0MzFjYTc3MmJhMWJiYTQyNmZjZTZmMDFkOGUyODYwMTRlNWFjYzY2Yjc5OWU0ZGI2MmJkNDc4MzMyMmY4YTMyZmY3OGUwZGUzOTU3ZGY1MGNlMTA4NzFmNGUwNjgwZGY0ZThjYTM5NjBhZjliYzZmNGVmYThlYjM5NjJkMThmNDc0ZWIxNzhjMzI2NWNjNDZiOGYyZmY1YWIxYTc0NDlmZWEyOTdkZmNmYWJmYTAxZjI4YWJiYjcyODliYjM1NGI2OTFiNTY2NGVjNmQwOThhZjUxYmUxOTk0N2VjNWJhN2ViZDY2MzgwZDExNDE5NTNiYTc4ZDRhYTU0MDE2NzlmYTdiMGE0NGRiMTk4MWY4NjRkMzUzNWM0NWFmZTRjNjExODNkNWIwYWQ1MWZhZTcxY2EwN2UzNDI0MDI4Mzk1OWY3NTMwYTMyYzcwZDk1YTA4OGU1MDFjMjMwMDU5ZjMzM2IwNjcwODI1MDA5ZTdlMjIxMDNlZjIyOTM1ODMwZGYxZmFjOGVmODc3ZjVmMzQyNmRkNTRmN2QxMTI4ZGQ4NzFhZDlhN2QwODhmOTRjMGU4NzEyMDEzMjk1YjhkNjlhZTc2MjNiODgwOTc4YzJkM2M2YWQyNmRjNDc4ZjhkYzQ3ZjVjMGFkY2M2MTg2NjVkYzNkYzIwNWE5MDcxYjJmMjE5MWUxNmNhYzViZDg5YmI1OTE0OGZjNzE5NjMzNzUyMzAzYWEwOGU1MThkYmMzODlmMGE1NDgyY2FhYTRjNTA3Yjg3MjlhNmYzZWRkMDYxZWZiMzkwMjZjZWNjNjM5OWY1MTk3MWNmNzM4MWQ2MDVlMTQ0YTU5MjhjOGMyZDFhZDc0NjdiMDVkYTJmMjAyZjRmMzIzNGUxYWZmMTlhMDE5OGEyODY4NTcyMWMzZDJkNTIzMTFjNzIxZTNmZGNiYWYzMDIxNGNkYzNhY2ZmOGM0MzM4ODBlMTA0ZmI2M2YyZGY3Y2U2OWE5Nzg1NzgxOWJhN2FjMDBhYzhlYWUxOTY5NzY0ZmRlOGY2OGNmOGUwOTE2ZDdlMGMxNTExNDdkNDk0NGY5OWY0MmFlNTBmMzBlMWM3OWE0MmQyYjZjNTE4OGQxMzNkM2NiYmY2OTA5NDAyN2IzNTRiMjk1Y2NkMGY3ZGM1YTg3ZDczNjM4YmQ5OGViZmIwMDM4M2NhMGZhNjljYjhkY2IzNWExMjUxMGU1ZTA3YWQ4Nzg5MDQ3ZDBiNjM4NDFhMWJiOTI4NzM3ZThiMGEwYzMzMjU0ZjQ3YWE4YmZiZTMzNDFhMDljMmI3NmRiY2VmYTY3ZTMwZGYzMDBkMzRmN2I4NDY1YzRmODY5ZTUxYjZiY2ZlNmNmNjhiMjM4MzU5YTY0NTAzNmJmN2Y2M2YwMjkyNGUwODdjZTc0NTdlNDgzYjYwMjVhODU5OTAzY2I0ODQ1NzRhYTNiMTJjZjk0NmYzMjEyN2Q1MzdjMzNiZWUzMTQxYjVkYjk2ZDEwYTE0OGM1MGFlMDQ1ZjI4NzIxMDc1NzcxMGQ2ODQ2ZTA0YjIwMmY3OWU4N2RkOWE1NmJjNmRhMTVmODRhNzdhN2Y2MzkzNWUxZGVlMDAzMDljZDI3NmE4ZTcxNzZjYjA0ZGE2YmIwZTkwMDk1MzQ0Mzg3MzJjYjQyZDAwODAwODg1M2QzOGQxOWJlYmE0NmU2MTAwNmUzMGY3ZWZkMWJjN2MyOTA2YjAyNGU0ZmY4OThhMWI1OGM0NDhkNjhiNDNjNmFiNjNmMzRmODViM2FjNmFhNDQ3NTg2N2U1MWI1ODM4NDRjYjIzODI5ZjRiMzBmNGJkZDgxN2Q4OGUyZWYzZTdiNGZjMGE2MjQzOTViMDVlYzVlODY4NjA4MmIyNGQyOWZlZjJiMGQzYzI5ZTAzMWQ1Zjk0ZjUwNGIxZDNkZjkzNjFlYjVmZmJhZGIyNDJlNjZjMzlhODA5NGNmZTYyZjg1ZjYzOWYzZmQ2NWZjOGFlMGM3NGE4ZjRjNmUxZDA3MGI5MTgzYTQzNGM3MjJjYWFhMDIyNWY4YmNkNjg2MTRkNmYwNzM4ZWQ2MmY4NDg0ZWM5NjA3N2QxNTVjMDhlMjZjNDZiZTI2MmE3M2UzNTUxNjk4YmQ3MGQ4ZDU2MTBjZjM3YzRjMzA2ZWVkMDRiYTZhMDQwYTljM2U2ZDdlMTVlOGFjZGExN2Y0NzdjMjQ4NGNmNWM1NmI4MTMzMTM5MjdiZTgzODdiMTAyNGY5OTVlOThmYzg3ZjEwMjkwOTFjMDE0MjRiZGMyYjI5NmMyZWFkYjdkMjViM2U3NjJhMmZkMGMyZGNkMTcyN2RkZjkxZGI5N2M1OTg0MzA1MjY1ZjM2OTVhN2Y1NDcyZjJkNzJjOTRkNjhjMjc5MTRmMTRmODJhYThkZDVmZTRlMjM0OGIwY2E5NjdhM2Y5ODYyNmEwOTE1NTJmNWQwZmZhMmJmMTAzNTBkMjNjOTk2MjU2YzAxZmRlZmZiMmMyYzYxMjUxOTg2OWY4NzdlNDkyOWM2ZTk1ZmYxNTA0MGYxNDg1ZTIyZWQxNDExOTg4MDIzMmZlZjNiNTdiMzg0OGYxNWIxNzY2YTU1NTI4NzlkZjhmMDYiOiJjYmE5ZTNlYjEyYTZmODNkYjExZThhNmZmNDBkMTA0OTg1NGVlMDk0NDE2YmM1MjdmZWE5MzFkODU4NTQyOGE4ZWQ2MjQyY2U4MWY2NzY5YjM2ZTIxMjNhNWMyMzQ4M2UiCiAKIGdlbmVyaWMgU0hBLTUxMiBUZXN0IFZlY3RvciBOSVNUIENBVlMgIzEKQEAgLTkyOSw2OCArOTI5LDY4IEBACiBtZF9oZXg6TUJFRFRMU19NRF9TSEE1MTI6IiI6ImNmODNlMTM1N2VlZmI4YmRmMTU0Mjg1MGQ2NmQ4MDA3ZDYyMGU0MDUwYjU3MTVkYzgzZjRhOTIxZDM2Y2U5Y2U0N2QwZDEzYzVkODVmMmIwZmY4MzE4ZDI4NzdlZWMyZjYzYjkzMWJkNDc0MTdhODFhNTM4MzI3YWY5MjdkYTNlIgogCiBnZW5lcmljIFNIQTMtMjI0IEhhc2ggZmlsZSAjMQotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEzXzIyNAotbWJlZHRsc19tZF9maWxlOk1CRURUTFNfTURfU0hBM18yMjQ6ImRhdGFfZmlsZXMvaGFzaF9maWxlXzEiOiIzMjBmMWE5MjU3ZDQ0MjE3OGQ5MGZkYTg5ODc3NDNhNWU3YmI1ZWQwYjE4YmM3ZDY2ZWUzNjMzZSIKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQTNfMjI0CittYmVkdGxzX21kX2ZpbGU6TUJFRFRMU19NRF9TSEEzXzIyNDoiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvaGFzaF9maWxlXzEiOiIzMjBmMWE5MjU3ZDQ0MjE3OGQ5MGZkYTg5ODc3NDNhNWU3YmI1ZWQwYjE4YmM3ZDY2ZWUzNjMzZSIKIAogZ2VuZXJpYyBTSEEzLTIyNCBIYXNoIGZpbGUgIzIKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBM18yMjQKLW1iZWR0bHNfbWRfZmlsZTpNQkVEVExTX01EX1NIQTNfMjI0OiJkYXRhX2ZpbGVzL2hhc2hfZmlsZV8yIjoiZGIwNmE5NjMwNmI0MzY3N2YwZTM1OTJhMGZlMWQyNzYxNDFmYTc0NThiN2JlOTMxOTc1NTA0NDIiCitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEEzXzIyNAorbWJlZHRsc19tZF9maWxlOk1CRURUTFNfTURfU0hBM18yMjQ6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL2hhc2hfZmlsZV8yIjoiZGIwNmE5NjMwNmI0MzY3N2YwZTM1OTJhMGZlMWQyNzYxNDFmYTc0NThiN2JlOTMxOTc1NTA0NDIiCiAKIGdlbmVyaWMgU0hBMy0yMjQgSGFzaCBmaWxlICMzCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTNfMjI0Ci1tYmVkdGxzX21kX2ZpbGU6TUJFRFRMU19NRF9TSEEzXzIyNDoiZGF0YV9maWxlcy9oYXNoX2ZpbGVfMyI6IjBkMTI1ZmRkNDhiMGUzMjJjYTg0NTQwMmZiZWNiODI3MDUzYzlmMzI0YzU4OTMzYmUyZTQ3NGEwIgorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBM18yMjQKK21iZWR0bHNfbWRfZmlsZTpNQkVEVExTX01EX1NIQTNfMjI0OiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9oYXNoX2ZpbGVfMyI6IjBkMTI1ZmRkNDhiMGUzMjJjYTg0NTQwMmZiZWNiODI3MDUzYzlmMzI0YzU4OTMzYmUyZTQ3NGEwIgogCiBnZW5lcmljIFNIQTMtMjI0IEhhc2ggZmlsZSAjNAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEzXzIyNAotbWJlZHRsc19tZF9maWxlOk1CRURUTFNfTURfU0hBM18yMjQ6ImRhdGFfZmlsZXMvaGFzaF9maWxlXzQiOiI2YjRlMDM0MjM2NjdkYmI3M2I2ZTE1NDU0ZjBlYjFhYmQ0NTk3ZjlhMWIwNzhlM2Y1YjVhNmJjNyIKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQTNfMjI0CittYmVkdGxzX21kX2ZpbGU6TUJFRFRMU19NRF9TSEEzXzIyNDoiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvaGFzaF9maWxlXzQiOiI2YjRlMDM0MjM2NjdkYmI3M2I2ZTE1NDU0ZjBlYjFhYmQ0NTk3ZjlhMWIwNzhlM2Y1YjVhNmJjNyIKIAogZ2VuZXJpYyBTSEEzLTI1NiBIYXNoIGZpbGUgIzEKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBM18yNTYKLW1iZWR0bHNfbWRfZmlsZTpNQkVEVExTX01EX1NIQTNfMjU2OiJkYXRhX2ZpbGVzL2hhc2hfZmlsZV8xIjoiZjQyOTgyNjY1OWRkOWYzMTNlNjIyNmNlZDVjODQxZmUxYjBlOWRkMTY1NTQzOTJiNjk0ZmEzMDAwZjFhZTFlMiIKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQTNfMjU2CittYmVkdGxzX21kX2ZpbGU6TUJFRFRMU19NRF9TSEEzXzI1NjoiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvaGFzaF9maWxlXzEiOiJmNDI5ODI2NjU5ZGQ5ZjMxM2U2MjI2Y2VkNWM4NDFmZTFiMGU5ZGQxNjU1NDM5MmI2OTRmYTMwMDBmMWFlMWUyIgogCiBnZW5lcmljIFNIQTMtMjU2IEhhc2ggZmlsZSAjMgotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEzXzI1NgotbWJlZHRsc19tZF9maWxlOk1CRURUTFNfTURfU0hBM18yNTY6ImRhdGFfZmlsZXMvaGFzaF9maWxlXzIiOiIzYWVkMmZkYTg2MDRkYmVjNWE2NzcxMGI0ZDRjODlhOTA3NDVlMTBlZTYzMzY0OWU1M2U3NWM3ZTI1ZDMwMTUyIgorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBM18yNTYKK21iZWR0bHNfbWRfZmlsZTpNQkVEVExTX01EX1NIQTNfMjU2OiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9oYXNoX2ZpbGVfMiI6IjNhZWQyZmRhODYwNGRiZWM1YTY3NzEwYjRkNGM4OWE5MDc0NWUxMGVlNjMzNjQ5ZTUzZTc1YzdlMjVkMzAxNTIiCiAKIGdlbmVyaWMgU0hBMy0yNTYgSGFzaCBmaWxlICMzCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTNfMjU2Ci1tYmVkdGxzX21kX2ZpbGU6TUJFRFRMU19NRF9TSEEzXzI1NjoiZGF0YV9maWxlcy9oYXNoX2ZpbGVfMyI6ImM0YjY0OTJmZDFjNDc1YzVlNTYwNTQ1YTI1NzNiMGVmY2QwMmQ1NGVmNGY2M2M5ZDgxNThkZDg3YmVkOTlkODUiCitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEEzXzI1NgorbWJlZHRsc19tZF9maWxlOk1CRURUTFNfTURfU0hBM18yNTY6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL2hhc2hfZmlsZV8zIjoiYzRiNjQ5MmZkMWM0NzVjNWU1NjA1NDVhMjU3M2IwZWZjZDAyZDU0ZWY0ZjYzYzlkODE1OGRkODdiZWQ5OWQ4NSIKIAogZ2VuZXJpYyBTSEEzLTI1NiBIYXNoIGZpbGUgIzQKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBM18yNTYKLW1iZWR0bHNfbWRfZmlsZTpNQkVEVExTX01EX1NIQTNfMjU2OiJkYXRhX2ZpbGVzL2hhc2hfZmlsZV80IjoiYTdmZmM2ZjhiZjFlZDc2NjUxYzE0NzU2YTA2MWQ2NjJmNTgwZmY0ZGU0M2I0OWZhODJkODBhNGI4MGY4NDM0YSIKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQTNfMjU2CittYmVkdGxzX21kX2ZpbGU6TUJFRFRMU19NRF9TSEEzXzI1NjoiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvaGFzaF9maWxlXzQiOiJhN2ZmYzZmOGJmMWVkNzY2NTFjMTQ3NTZhMDYxZDY2MmY1ODBmZjRkZTQzYjQ5ZmE4MmQ4MGE0YjgwZjg0MzRhIgogCiBnZW5lcmljIFNIQTMtMzg0IEhhc2ggZmlsZSAjMQotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEzXzM4NAotbWJlZHRsc19tZF9maWxlOk1CRURUTFNfTURfU0hBM18zODQ6ImRhdGFfZmlsZXMvaGFzaF9maWxlXzEiOiIwNmFiMzY3NzQ5NjY1OGQzZmFhZDkzN2YzZjc4ODdiM2U5MjViNDgwMTkwNTQ0YzYxMmU3NmI4OGM1ZDIxYjRjYTEyNjkxZjI3YjhlZjU2OWQ2MDE5MjU5MTVjZGYyYTYiCitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEEzXzM4NAorbWJlZHRsc19tZF9maWxlOk1CRURUTFNfTURfU0hBM18zODQ6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL2hhc2hfZmlsZV8xIjoiMDZhYjM2Nzc0OTY2NThkM2ZhYWQ5MzdmM2Y3ODg3YjNlOTI1YjQ4MDE5MDU0NGM2MTJlNzZiODhjNWQyMWI0Y2ExMjY5MWYyN2I4ZWY1NjlkNjAxOTI1OTE1Y2RmMmE2IgogCiBnZW5lcmljIFNIQTMtMzg0IEhhc2ggZmlsZSAjMgotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEzXzM4NAotbWJlZHRsc19tZF9maWxlOk1CRURUTFNfTURfU0hBM18zODQ6ImRhdGFfZmlsZXMvaGFzaF9maWxlXzIiOiJiNWVmYzQwZGI3YWY1NDRiZjNmYjhjNzgyZjJkYjQ3OGRiYjgxYWE4M2QyZWYwZThiYmRjZjA2MzcxZGU3Y2M5ODRhYWM1NTM5YzRjOTI0NGMxZTZlYmJiODVlMjM5ODMiCitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEEzXzM4NAorbWJlZHRsc19tZF9maWxlOk1CRURUTFNfTURfU0hBM18zODQ6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL2hhc2hfZmlsZV8yIjoiYjVlZmM0MGRiN2FmNTQ0YmYzZmI4Yzc4MmYyZGI0NzhkYmI4MWFhODNkMmVmMGU4YmJkY2YwNjM3MWRlN2NjOTg0YWFjNTUzOWM0YzkyNDRjMWU2ZWJiYjg1ZTIzOTgzIgogCiBnZW5lcmljIFNIQTMtMzg0IEhhc2ggZmlsZSAjMwotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEzXzM4NAotbWJlZHRsc19tZF9maWxlOk1CRURUTFNfTURfU0hBM18zODQ6ImRhdGFfZmlsZXMvaGFzaF9maWxlXzMiOiIwZjA4ZGMwOWNiMzkyNDBlMDliMDFlN2YzZWUzY2U2Yjg5M2JmMzkzZjUyZDJhYzg3MDgzY2VmN2QzYTQ2OWZhOTk3NjNlNThiMjUzMDZiMGEyMzgxZDliYmRhYTgwMmYiCitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEEzXzM4NAorbWJlZHRsc19tZF9maWxlOk1CRURUTFNfTURfU0hBM18zODQ6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL2hhc2hfZmlsZV8zIjoiMGYwOGRjMDljYjM5MjQwZTA5YjAxZTdmM2VlM2NlNmI4OTNiZjM5M2Y1MmQyYWM4NzA4M2NlZjdkM2E0NjlmYTk5NzYzZTU4YjI1MzA2YjBhMjM4MWQ5YmJkYWE4MDJmIgogCiBnZW5lcmljIFNIQTMtMzg0IEhhc2ggZmlsZSAjNAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEzXzM4NAotbWJlZHRsc19tZF9maWxlOk1CRURUTFNfTURfU0hBM18zODQ6ImRhdGFfZmlsZXMvaGFzaF9maWxlXzQiOiIwYzYzYTc1Yjg0NWU0ZjdkMDExMDdkODUyZTRjMjQ4NWM1MWE1MGFhYWE5NGZjNjE5OTVlNzFiYmVlOTgzYTJhYzM3MTM4MzEyNjRhZGI0N2ZiNmJkMWUwNThkNWYwMDQiCitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEEzXzM4NAorbWJlZHRsc19tZF9maWxlOk1CRURUTFNfTURfU0hBM18zODQ6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL2hhc2hfZmlsZV80IjoiMGM2M2E3NWI4NDVlNGY3ZDAxMTA3ZDg1MmU0YzI0ODVjNTFhNTBhYWFhOTRmYzYxOTk1ZTcxYmJlZTk4M2EyYWMzNzEzODMxMjY0YWRiNDdmYjZiZDFlMDU4ZDVmMDA0IgogCiBnZW5lcmljIFNIQTMtNTEyIEhhc2ggZmlsZSAjMQotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEzXzUxMgotbWJlZHRsc19tZF9maWxlOk1CRURUTFNfTURfU0hBM181MTI6ImRhdGFfZmlsZXMvaGFzaF9maWxlXzEiOiI3ZDQzY2JiNzUyMTgxMTBkN2ZjYzIyN2I2OTc3ZTZmM2I4NTUxODRjNjQ2YjY3OTA1NTg5N2NiYTBjZDQ0NWVjOTY4NDMwMjMxODY2ODAxYzRmMDk5M2Y4NzM1Y2Y0NmJjNDg1ODg2ODQyM2QzMWNhMjgzYTZmMWVjZjI1YzU4MCIKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQTNfNTEyCittYmVkdGxzX21kX2ZpbGU6TUJFRFRMU19NRF9TSEEzXzUxMjoiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvaGFzaF9maWxlXzEiOiI3ZDQzY2JiNzUyMTgxMTBkN2ZjYzIyN2I2OTc3ZTZmM2I4NTUxODRjNjQ2YjY3OTA1NTg5N2NiYTBjZDQ0NWVjOTY4NDMwMjMxODY2ODAxYzRmMDk5M2Y4NzM1Y2Y0NmJjNDg1ODg2ODQyM2QzMWNhMjgzYTZmMWVjZjI1YzU4MCIKIAogZ2VuZXJpYyBTSEEzLTUxMiBIYXNoIGZpbGUgIzIKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBM181MTIKLW1iZWR0bHNfbWRfZmlsZTpNQkVEVExTX01EX1NIQTNfNTEyOiJkYXRhX2ZpbGVzL2hhc2hfZmlsZV8yIjoiMjEyYmQwMGNmYzdmM2E1YjczYjViNDc3MmRkODM1NjI4MjYyMDdlYmEzMGFiMDBiZTJjODg2YWVmMzg0MWVmNjZlYjI1MDk3MDkxYmZhY2I2ZDQ1ZGQ0NTU3NDg5ZjkxODM2YzA0YzRmMGQ5NmUzMmFlOTZmYjAwNmQ0YjJhZDYiCitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEEzXzUxMgorbWJlZHRsc19tZF9maWxlOk1CRURUTFNfTURfU0hBM181MTI6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL2hhc2hfZmlsZV8yIjoiMjEyYmQwMGNmYzdmM2E1YjczYjViNDc3MmRkODM1NjI4MjYyMDdlYmEzMGFiMDBiZTJjODg2YWVmMzg0MWVmNjZlYjI1MDk3MDkxYmZhY2I2ZDQ1ZGQ0NTU3NDg5ZjkxODM2YzA0YzRmMGQ5NmUzMmFlOTZmYjAwNmQ0YjJhZDYiCiAKIGdlbmVyaWMgU0hBMy01MTIgSGFzaCBmaWxlICMzCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTNfNTEyCi1tYmVkdGxzX21kX2ZpbGU6TUJFRFRMU19NRF9TSEEzXzUxMjoiZGF0YV9maWxlcy9oYXNoX2ZpbGVfMyI6ImE3OGEwMjY2ODIwZTM2ZjZmYjI2YTBjOGRlYjBiMjQxMDhlMjA5Y2MyMTc4NTJlZDA3MzkwNGJjNDRlYzU4NmM1NzA0YzBhNTZkZTU3Zjk5MDZiOGNlZDM4MGZlZTZhYzJiZDQzMmE5M2RlN2YzOWIyM2VkMGFhYmRkN2FlODEzIgorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBM181MTIKK21iZWR0bHNfbWRfZmlsZTpNQkVEVExTX01EX1NIQTNfNTEyOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9oYXNoX2ZpbGVfMyI6ImE3OGEwMjY2ODIwZTM2ZjZmYjI2YTBjOGRlYjBiMjQxMDhlMjA5Y2MyMTc4NTJlZDA3MzkwNGJjNDRlYzU4NmM1NzA0YzBhNTZkZTU3Zjk5MDZiOGNlZDM4MGZlZTZhYzJiZDQzMmE5M2RlN2YzOWIyM2VkMGFhYmRkN2FlODEzIgogCiBnZW5lcmljIFNIQTMtNTEyIEhhc2ggZmlsZSAjNAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEzXzUxMgotbWJlZHRsc19tZF9maWxlOk1CRURUTFNfTURfU0hBM181MTI6ImRhdGFfZmlsZXMvaGFzaF9maWxlXzQiOiJhNjlmNzNjY2EyM2E5YWM1YzhiNTY3ZGMxODVhNzU2ZTk3Yzk4MjE2NGZlMjU4NTllMGQxZGNjMTQ3NWM4MGE2MTViMjEyM2FmMWY1Zjk0YzExZTNlOTQwMmMzYWM1NThmNTAwMTk5ZDk1YjZkM2UzMDE3NTg1ODYyODFkY2QyNiIKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQTNfNTEyCittYmVkdGxzX21kX2ZpbGU6TUJFRFRMU19NRF9TSEEzXzUxMjoiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvaGFzaF9maWxlXzQiOiJhNjlmNzNjY2EyM2E5YWM1YzhiNTY3ZGMxODVhNzU2ZTk3Yzk4MjE2NGZlMjU4NTllMGQxZGNjMTQ3NWM4MGE2MTViMjEyM2FmMWY1Zjk0YzExZTNlOTQwMmMzYWM1NThmNTAwMTk5ZDk1YjZkM2UzMDE3NTg1ODYyODFkY2QyNiIKIAogZ2VuZXJpYyBTSEEtNTEyIFRlc3QgVmVjdG9yIE5JU1QgQ0FWUyAjMgogZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEE1MTIKQEAgLTEwNjEsOTEgKzEwNjEsOTEgQEAKIG1kX2hleF9tdWx0aTpNQkVEVExTX01EX1NIQTE6IjgyMzYxNTM3ODFiZDJmMWI4MWZmZTBkZWYxYmViNDZmNWE3MDE5MTE0MjkyNjY1MTUwM2YxYjNiYjEwMTZhY2RiOWU3ZjdhY2NlZDhkZDE2ODIyNmYxMThmZjY2NGEwMWE4ODAwMTE2ZmQwMjM1ODdiZmJhNTJhMjU1ODM5MzQ3NmY1ZmM2OWNlOWM2NTAwMWYyM2U3MDQ3NmQyY2M4MWM5N2VhMTljYWViMTk0ZTIyNDMzOWJjYjIzZjc3YTgzZmVhYzUwOTZmOWIzMDkwYzUxYTZlZTZkMjA0YjczNWFhNzFkN2U5OTZkMzgwYjgwODIyZTRkZmQ0MzY4M2FmOWM3NDQyNDk4Y2FjYmVhNjQ4NDJkZmRhMjM4Y2IwOTk5MjdjNmVmYWUwN2ZkZjdiMjNhNGU0NDU2ZTAxNTJiMjQ4NTNmZTBkNWRlNDE3OTk3NGIyYjlkNGExY2RiZWZjYmMwMWQ4ZDMxMWI1ZGRhMDU5MTM2MTc2ZWE2OThhYjgyYWNmMjBkZDQ5MGJlNDcxMzBiMTIzNWNiNDhmOGE2NzEwNDczY2ZjOTIzZTIyMmQ5NGI1ODJmOWFlMzZkNGNhMmEzMmQxNDFiOGU4Y2MzNjYzODg0NWZiYzQ5OWJjZTE3Njk4YzNmZWNhZTI1NzJkYmJkNDcwNTUyNDMwZDdlZjMwYzIzOGMyMTI0NDc4ZjFmNzgwNDgzODM5YjRmYjczZDYzYTk0NjAyMDY4MjRhNWI2YjY1MzE1YjIxZTNjMmYyNGM5N2VlN2MwZTc4ZmFhZDNkZjU0OWM3Y2E4ZWYyNDE4NzZkOWFhZmU5YTMwOWY2ZGEzNTJiZWMyY2FhYTkyZWU4ZGNhMzkyODk5YmE2N2RmZWQ5MGFlZjMzZDQxZmMyNDk0Yjc2NWNiM2UyNDIyYzhlNTk1ZGFiYmZhY2EyMTc3NTc0NTNmYjMyMmExMzIwM2Y0MjVmNjA3M2E5OTAzZTJkYzU4MThlZTFkYTczN2FmYzM0NWYwMDU3NzQ0ZTNhNTZlMTY4MWM5NDllYjEyMjczYTNiZmMyMDY5OWU0MjNiOTZlNDRiZDFmZjYyZTUwYTg0OGE4OTA4MDliZmUxNjExYzY3ODdkM2Q3NDExMDMzMDhmODQ5YTc5MGY5YzAxNTA5ODI4NmRiYWNmYzM0YzE3MThiMmMyYjc3ZTMyMTk0YTc1ZGRhMzc5NTRhMzIwZmE2ODc2NDAyNzg1Mjg1NWE3ZTViNTI3NGViMWUyY2JjZDI3MTYxZDk4YjU5YWQyNDU4MjIwMTVmNDhhZjgyYTQ1YzBlZDU5YmU5NGY5YWYwM2Q5NzM2MDQ4NTcwZDZlM2VmNjNiMTc3MGJjOThkZmI3N2RlODRiMWJiMTcwOGQ4NzJiNjI1ZDlhYjliMDZjMThlNWRiYmYzNDM5OTM5MWYwZjhhYTI2ZWMwZGFjN2ZmNGNiOGVjOTdiNTJiY2I5NDJmYTZkYjIzODVkY2QxYjNiOWQ1NjdhYWViNDI1ZDU2N2IwZWJlMjY3MjM1NjUxYTFlZDliZjc4ZmQ5M2QzYzFkZDA3N2ZlMzQwYmIwNGIwMDUyOWM1OGY0NTEyNGI3MTdjMTY4ZDA3ZTk4MjZlMzMzNzY5ODhiYzVjZjYyODQ1YzIwMDk5ODBhNGRmYTY5ZmJjN2U1YTBiMWJiMjBhNTk1OGNhOTY3YWVjNjhlYjMxZGQ4ZmNjY2E5YWZjZDMwYTI2YmFiMjYyNzlmMWJmNjcyNGZmIjoiMTE4NjNiNDgzODA5ZWY4ODQxM2NhOWIwMDg0YWM0YTUzOTA2NDBhZiIKIAogZ2VuZXJpYyBtdWx0aSBzdGVwIFNIQS0yMjQgVGVzdCBWZWN0b3IgTklTVCBDQVZTICMxCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTIyNAorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzIyNAogbWRfaGV4X211bHRpOk1CRURUTFNfTURfU0hBMjI0OiIiOiJkMTRhMDI4YzJhM2EyYmM5NDc2MTAyYmIyODgyMzRjNDE1YTJiMDFmODI4ZWE2MmFjNWIzZTQyZiIKIAogZ2VuZXJpYyBtdWx0aSBzdGVwIFNIQS0yMjQgVGVzdCBWZWN0b3IgTklTVCBDQVZTICMyCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTIyNAorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzIyNAogbWRfaGV4X211bHRpOk1CRURUTFNfTURfU0hBMjI0OiJmZiI6ImUzM2Y5ZDc1ZTZhZTEzNjlkYmFiZjgxYjk2YjQ1OTFhZTQ2YmJhMzBiNTkxYTZiNmM2MjU0MmI1IgogCiBnZW5lcmljIG11bHRpIHN0ZXAgU0hBLTIyNCBUZXN0IFZlY3RvciBOSVNUIENBVlMgIzMKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjI0CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjI0CiBtZF9oZXhfbXVsdGk6TUJFRFRMU19NRF9TSEEyMjQ6Ijk4NGMiOiIyZmE5ZGY5MTU3ZDllMDI3Y2ZiYzRjNmE5ZGYzMmUxYWRjMGNiZTIzMjhlYzJhNjNjNWFlOTM0ZSIKIAogZ2VuZXJpYyBtdWx0aSBzdGVwIFNIQS0yMjQgVGVzdCBWZWN0b3IgTklTVCBDQVZTICM0Ci1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTIyNAorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzIyNAogbWRfaGV4X211bHRpOk1CRURUTFNfTURfU0hBMjI0OiI1MGVmZDAiOiJiNWE5ODIwNDEzYzJiZjgyMTFmYmJmNWRmMTMzNzA0M2IzMmZhNGVhZmFmNjFhMGM4ZTljY2VkZSIKIAogZ2VuZXJpYyBtdWx0aSBzdGVwIFNIQS0yMjQgVGVzdCBWZWN0b3IgTklTVCBDQVZTICM1Ci1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTIyNAorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzIyNAogbWRfaGV4X211bHRpOk1CRURUTFNfTURfU0hBMjI0OiJlNWUwOTkyNCI6ImZkMTllNzQ2OTBkMjkxNDY3Y2U1OWYwNzdkZjMxMTYzOGYxYzNhNDZlNTEwZDBlNDlhNjcwNjJkIgogCiBnZW5lcmljIG11bHRpIHN0ZXAgU0hBLTIyNCBUZXN0IFZlY3RvciBOSVNUIENBVlMgIzYKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjI0CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjI0CiBtZF9oZXhfbXVsdGk6TUJFRFRMU19NRF9TSEEyMjQ6IjIxZWJlY2I5MTQiOiI3OGY0YTcxYzIxYzY5NDQ5OWNlMWM3ODY2NjExYjE0YWNlNzBkOTA1MDEyYzM1NjMyM2M3YzcxMyIKIAogZ2VuZXJpYyBtdWx0aSBzdGVwIFNIQS0yMjQgVGVzdCBWZWN0b3IgTklTVCBDQVZTICM3Ci1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTIyNAorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzIyNAogbWRfaGV4X211bHRpOk1CRURUTFNfTURfU0hBMjI0OiJmYzQ4ODk0N2MxYTdhNTg5NzI2YjE1NDM2YjRmM2Q5NTU2MjYyZjk4ZmM2NDIyZmM1Y2RmMjBmMGZhZDdmZTQyN2EzNDkxYzg2ZDEwMWZmZTZiNzUxNGYwNjI2OGY2NWIyZDI2OWIwZjY5YWQ5YTk3ODQ3ZWZmMWMxNmEyNDM4Nzc1ZWI3YmU2ODQ3Y2NmMTFjYjhiMmU4ZGNkNjY0MGIwOTViNDljMDY5M2ZlM2NmNGE2NmUyZDliN2FkNjhiZmYxNGYzYWQ2OWFiZjQ5ZDBhYmEzNmNiZTA1MzUyMDJkZWI2NTk5YTQ3MjI1ZWYwNWJlYjM1MTMzNWNkN2JjMGY0ODBkNjkxMTk4YzdlNzEzMDVmZmQ1M2IzOWQzMzI0MmJiNzljZmQ5OGJmZDY5ZTEzN2I1ZDE4YjJiODlhYzlhY2UwMWM4ZGJkY2YyNTMzY2NlMzY4MmVjYzUyMTE4ZGUwYzEwNjJlYzIxMjZjMmU2NTdkNmVhM2Q5ZTIzOThlNzA1ZDRiMGIxZjFjZWVjYjI2NmRmZmM0ZjMxYmY0Mjc0NGZiMWU5MzhkYzIyYTg4OTkxOWVlMWU3M2Y0NjNmNzg3MWZlZDcyMDUxOWUzMjE4NjI2NGI3ZWYyYTBlNWQ5YTE4ZTZjOTVjMDc4MTg5NGY3Nzk2N2YwNDg5NTFkZWMzYjRkODkyYTM4NzEwYjFlMzQzNmQzYzI5MDg4ZWI4YjNkYTE3ODljMjVkYjNkM2JjNmMyNjA4MTIwNmU3MTU1ZDIxMGE4OWI4MGNhNmVhODc3YzQxZmY5OTQ3YzBmMjU2MjVkY2IxMTgyOTRhMTYzNTAxZjYyMzljMzI2NjYxYTk1OGZkMTJkYTRjZDE1YTg5OWY4Yjg4Y2M3MjM1ODkwNTZlYWVjNWFhMDRhNGNmNWRiYjZmNDgwZjk2NjA0MjNjY2YzOGM0ODZlMjEwNzA3ZTBmYjI1ZTFmMTI2Y2ViMjYxNmY2M2UxNDdhNjQ3ZGFiMGFmOWViZTg5ZDY1NDU4YmY2MzYxNTRhNDZlNGNhYjk1ZjVlZTYyZGEyYzc5NzRjZDE0YjkwZDNlNGY5OWY4MTczM2U4NWIzYzFkNWRhMmI1MDhkOWI5MGY1ZWVkN2VmZjBkOWM3NjQ5ZGU2MmJlZTAwMzc1NDU0ZmVlNGEzOTU3NmE1YmJmZGFlNDI4ZTdmODA5N2JkZjc3OTdmMTY3Njg2Y2I2ODQwN2U0OTA3OWU0NjExZmYzNDAyYjYzODRiYTdiN2U1MjJiZDJiYjExY2U4ZmQwMmVhNGMxNjA0ZDE2M2FjNGY2ZGRlNTBiOGIxZjU5M2Y3ZWRhYWRlYWMwODY4ZWQ5N2RmNjkwMjAwNjgwYzI1ZjBmNWQ4NTQzMWE1MjllNGYzMzkwODlkY2RlZGExMDVlNGVlNTFkZWFkNzA0Y2RmNWE2MDVjNTVmYjA1NWM5YjBlODZiOGJhMWI1NjRjMGRlYTNlYjc5MGE1OTVjYjEwM2NiMjkyMjY4YjA3YzVlNTkzNzFlMWE3ZWY1OTdjZDRiMjI5NzdhODIwNjk0YzlmOWFlYjU1ZDlkZTNlZjYyYjc1ZDZlNjU2ZTMzMzY2OThkOTYwYTM3ODdiZjhjZjViOTI2YTdmYWVlZjUyYWUxMjhiY2I1ZGM5ZTY2ZDk0YjAxNmM3YjhlMDM0ODc5MTcxYTJkOTFjMzgxZjU3ZTZhODE1YjYzYjVlZTZhNmQyZmY0MzViNDlmMTRjOTYzOTY2OTYwMTk0NDMwZDc4ZjhmODc2MjdhNjc3NTdmYjM1MzJiMjg5NTUwODk0ZGE2ZGNlNDgxN2E0ZTA3ZjRkNTY4NzdhMTEwMmZmY2M4YmVmYTVjOWY4ZmNhNmE0NTc0ZDkzZmY3MDM3NmM4ODYxZTBmODEwOGNmOTA3ZmNlNzdlY2I0OTcyOGY4NmYwMzRmODAyMjRiOTY5NTY4MmUwODI0NDYyZjc2Y2RiMWZkMWFmMTUxMzM3YjBkODU0MTkwNDdhN2FhMjg0NzkxNzE4YTQ4NjBjZDU4NmY3ODI0Yjk1YmM4MzdiNmZkNGY5YmU1YWFkZTY4NDU2ZTIwMzU2YWE0ZDk0M2RhYzM2YmY4YjY3YjllOGY5ZDAxYTAwZmNkYTc0Yjc5OGJhZmE3NDZjNjYxYjAxMGY3NWI1OTkwNGIyOWQwYzgwNDE1MDQ4MTFjNDA2NWY4MmNmMmVhZDU4ZDJmNTk1Y2JkOGJjM2U3MDQzZjRkOTQ1NzdiMzczYjdjZmUxNmEzNmZlNTY0ZjUwNWMwM2I3MGNmZWI1ZTVmNDExYzc5NDgxMzM4YWE2N2U4NmIzZjVhMmU3N2MyMWU0NTRjMzMzYWUzZGE5NDNhYjcyM2FiNWY0Yzk0MDM5NTMxOTUzNGE1NTc1ZjY0YWNiYTBkMGVjYzQzZjYwMjIxZWQzYmFkZjcyODljOWIzYTdiOTAzYTJkNmM5NGUxNWZhNGMzMTBkYzRmYTdmYWEwYzI0ZjQwNTE2MGExMDAyZGJlZjIwZTQxMDVkNDgxZGI5ODJmNzI0M2Y3OTQwMGE2ZTRjZDk3NTNjNGI5NzMyYTQ3NTc1ZjUwNGIyMGMzMjhmZTlhZGQ3ZjQzMmE0ZjA3NTgyOWRhMDdiNTNiNjk1MDM3ZGM1MTczN2QzY2Q3MzE5MzRkZjMzM2NkMWE1M2ZjZjY1YWEzMWJhYTQ1MGNhNTAxYTZmYWUyNmUzMjIzNDdlNjE4YzVhNDQ0ZDkyZTlmZWM1YTgyNjFhZTM4Yjk4ZmVlNWJlNzdjMDJjZWMwOWRkY2NkNWIzZGU5MjAzNiI6IjEzMDIxNDlkMWUxOTdjNDE4MTNiMDU0Yzk0MjMyOWQ0MjBlMzY2NTMwZjU1MTdiNDcwZTk2NGZlIgogCiBnZW5lcmljIG11bHRpIHN0ZXAgU0hBLTI1NiBUZXN0IFZlY3RvciBOSVNUIENBVlMgIzEKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBtZF9oZXhfbXVsdGk6TUJFRFRMU19NRF9TSEEyNTY6IiI6ImUzYjBjNDQyOThmYzFjMTQ5YWZiZjRjODk5NmZiOTI0MjdhZTQxZTQ2NDliOTM0Y2E0OTU5OTFiNzg1MmI4NTUiCiAKIGdlbmVyaWMgbXVsdGkgc3RlcCBTSEEtMjU2IFRlc3QgVmVjdG9yIE5JU1QgQ0FWUyAjMgotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIG1kX2hleF9tdWx0aTpNQkVEVExTX01EX1NIQTI1NjoiYmQiOiI2ODMyNTcyMGFhYmQ3YzgyZjMwZjU1NGIzMTNkMDU3MGM5NWFjY2JiN2RjNGI1YWFlMTEyMDRjMDhmZmU3MzJiIgogCiBnZW5lcmljIG11bHRpIHN0ZXAgU0hBLTI1NiBUZXN0IFZlY3RvciBOSVNUIENBVlMgIzMKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBtZF9oZXhfbXVsdGk6TUJFRFRMU19NRF9TSEEyNTY6IjVmZDQiOiI3YzRmYmY0ODQ0OThkMjFiNDg3YjlkNjFkZTg5MTRiMmVhZGFmMjY5ODcxMjkzNmQ0N2MzYWRhMjU1OGY2Nzg4IgogCiBnZW5lcmljIG11bHRpIHN0ZXAgU0hBLTI1NiBUZXN0IFZlY3RvciBOSVNUIENBVlMgIzQKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBtZF9oZXhfbXVsdGk6TUJFRFRMU19NRF9TSEEyNTY6ImIwYmQ2OSI6IjQwOTY4MDQyMjEwOTNkZGNjZmJmNDY4MzE0OTBlYTYzZTllOTk0MTQ4NThmOGQ3NWZmN2Y2NDJjN2NhNjE4MDMiCiAKIGdlbmVyaWMgbXVsdGkgc3RlcCBTSEEtMjU2IFRlc3QgVmVjdG9yIE5JU1QgQ0FWUyAjNQotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIG1kX2hleF9tdWx0aTpNQkVEVExTX01EX1NIQTI1NjoiYzk4YzhlNTUiOiI3YWJjMjJjMGFlNWFmMjZjZTkzZGJiOTQ0MzNhMGUwYjJlMTE5ZDAxNGY4ZTdmNjViZDU2YzYxY2NjY2Q5NTA0IgogCiBnZW5lcmljIG11bHRpIHN0ZXAgU0hBLTI1NiBUZXN0IFZlY3RvciBOSVNUIENBVlMgIzYKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBtZF9oZXhfbXVsdGk6TUJFRFRMU19NRF9TSEEyNTY6IjgxYTcyM2Q5NjYiOiI3NTE2ZmI4YmIxMTM1MGRmMmJmMzg2YmMzYzMzYmQwZjUyY2I0YzY3YzZlNDc0NWUwNDg4ZTYyYzJhZWEyNjA1IgogCiBnZW5lcmljIG11bHRpIHN0ZXAgU0hBLTI1NiBUZXN0IFZlY3RvciBOSVNUIENBVlMgIzcKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBtZF9oZXhfbXVsdGk6TUJFRFRMU19NRF9TSEEyNTY6IjgzOTBjZjBiZTA3NjYxY2M3NjY5YWFjNTRjZTA5YTM3NzMzYTYyOWQ0NWY1ZDk4M2VmMjAxZjliMmQxMzgwMGU1NTVkOWIxMDk3ZmVjM2I3ODNkN2E1MGRjYjVlMmI2NDRiOTZhMWU5NDYzZjE3N2NmMzQ5MDZiZjM4OGYzNjZkYjVjMmRlZWUwNGEzMGUyODNmNzY0YTk3YzNiMzc3YTAzNGZlZmMyMmMyNTkyMTRmYWE5OWJhYmFmZjE2MGFiMGFhYTdlMmNjYjBjZTA5YzZiMzJmZTA4Y2JjNDc0Njk0Mzc1YWJhNzAzZmFkYmZhMzFjZjY4NWIzMGExMWM1N2YzY2Y0ZWRkMzIxZTU3ZDNhZTZlYmIxMTMzYzgyNjBlNzViOTIyNGZhNDdhMmJiMjA1MjQ5YWRkMmUyZTYyZjgxNzQ5MTQ4MmFlMTUyMzIyYmUwOTAwMzU1Y2RjYzhkNDJhOThmODJlOTYxYTBkYzZmNTM3YjdiNDEwZWZmMTA1ZjU5NjczYmZiNzg3YmYwNDJhYTA3MWY3YWY2OGQ5NDRkMjczNzFjNjQxNjBmZTkzODI3NzIzNzI1MTZjMjMwYzFmNDVjMGQ2YjZjY2E3ZjI3NGIzOTRkYTk0MDJkM2VhZmRmNzMzOTk0ZWM1OGFiMjJkNzE4MjlhOTgzOTk1NzRkNGI1OTA4YTQ0N2E1YTY4MWNiMGRkNTBhMzExNDUzMTFkOTJjMjJhMTZkZTFlYWQ2NmE1NDk5ZjJkY2ViNGNhZTY5NDc3MmNlOTA3NjJlZjgzMzZhZmVjNjUzYWE5YjFhMWM0ODIwYjIyMTEzNmRmY2U4MGRjZTJiYTkyMGQ4OGE1MzBjOTQxMGQwYTRlMDM1OGEzYTExMDUyZTU4ZGQ3M2IwYjE3OWVmOGY1NmZlM2I1YTJkMTE3YTczYTBjMzhhMTM5MmI2OTM4ZTk3ODJlMGQ4NjQ1NmVlNDg4NGUzYzM5ZDRkNzU4MTNmMTM2MzNiYzc5YmFhMDdjMGQyZDU1NWFmYmYyMDdmNTJiN2RjYTEyNmQwMTVhYTJiOTg3M2IzZWIwNjVlOTBiOWIwNjVhNTM3M2ZlMWZiMWIyMGQ1OTQzMjdkMTlmYmE1NmNiODFlN2I2Njk2NjA1ZmZhNTZlYmEzYzI3YTQzODY5N2NjMjFiMjAxZmQ3ZTA5ZjE4ZGVlYTFiM2VhMmYwZDFlZGMwMmRmMGUyMDM5NmExNDU0MTJjZDZiMTNjMzJkMmU2MDU2NDFjOTQ4YjcxNGFlYzMwYzA2NDlkYzQ0MTQzNTExZjM1YWIwZmQ1ZGQ2NGMzNGQwNmZlODZmMzgzNmRmZTllZGViN2YwOGNmYzNiZDQwOTU2ODI2MzU2MjQyMTkxZjk5ZjUzNDczZjMyYjBjYzBjZjkzMjFkNmM5MmExMTJlOGRiOTBiODZlZTllODdjYzMyZDAzNDNkYjAxZTMyY2U5ZWI3ODJjYjI0ZWZiYmJlYjQ0MGZlOTI5ZThmMmJmOGRmYjE1NTBhM2EyZTc0MmU4YjQ1NWEzZTU3MzBlOWU2YTdhOTgyNGQxN2FjYzBmNzJhN2Y2N2VhZTBmMDk3MGY4YmRlNDZkY2RlZmFlZDMwNDdjZjgwN2U3ZjAwYTQyZTVmZDExZDQwZjVlOTg1MzNkNzU3NDQyNWI3ZDJiYzNiMzg0NWM0NDMwMDhiNTg5ODBlNzY4ZTQ2NGUxN2NjNmY2YjM5MzllZWU1MmY3MTM5NjNkMDdkOGM0YWJmMDI0NDhlZjBiODg5Yzk2NzFlMmY4YTQzNmRkZWVmZmNjYTcxNzZlOWJmOWQxMDA1ZWNkMzc3ZjJmYTY3YzIzZWQxZjEzN2U2MGJmNDYwMThhOGJkNjEzZDAzOGU4ODM3MDRmYzI2ZTc5ODk2OWRmMzVlYzdiYmM2YTRmZTQ2ZDg5MTBiZDgyZmEzY2RlZDI2NWQwYTNiNmQzOTllNDI1MWU0ZDgyMzNkYWEyMWI1ODEyZmRlZDY1MzYxOThmZjEzYWE1YTFjZDQ2YTViOWExN2E0ZGRjMWQ5Zjg1NTQ0ZDFkMWNjMTZmM2RmODU4MDM4YzhlMDcxYTExYTdlMTU3YTg1YTZhOGRjNDdlODhkNzVlNzAwOWE4YjI2ZmRiNzNmMzNhMmE3MGYxZTBjMjU5ZjhmOTUzM2I5YjhmOWFmOTI4OGI3Mjc0ZjIxYmFlZWM3OGQzOTZmOGJhY2RjYzIyNDcxMjA3ZDliNGVmY2NkM2ZlZGM1YzVhMjIxNGZmNWU1MWM1NTNmMzVlMjFhZTY5NmZlNTFlOGRmNzMzYThlMDZmNTBmNDE5ZTU5OWU5ZjllNGIzN2NlNjQzZmM4MTBmYWFhNDc5ODk3NzE1MDlkNjlhMTEwYWM5MTYyNjE0MjcwMjYzNjlhMjEyNjNhYzQ0NjBmYjRmNzA4ZjhhZTI4NTk5ODU2ZGI3Y2I2YTQzYWM4ZTAzZDY0YTk2MDk4MDdlNzZjNWYzMTJiOWQxODYzYmZhMzA0ZTg5NTM2NDc2NDhiNGY0YWIwZWQ5OTVlIjoiNDEwOWNkYmVjMzI0MGFkNzRjYzZjMzdmMzkzMDBmNzBmZWRlMTZlMjFlZmM3N2Y3ODY1OTk4NzE0YWFkMGI1ZSIKIAogZ2VuZXJpYyBtdWx0aSBzdGVwIFNIQS0zODQgVGVzdCBWZWN0b3IgTklTVCBDQVZTICMxCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTM4NAorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzM4NAogbWRfaGV4X211bHRpOk1CRURUTFNfTURfU0hBMzg0OiIiOiIzOGIwNjBhNzUxYWM5NjM4NGNkOTMyN2ViMWIxZTM2YTIxZmRiNzExMTRiZTA3NDM0YzBjYzdiZjYzZjZlMWRhMjc0ZWRlYmZlNzZmNjVmYmQ1MWFkMmYxNDg5OGI5NWIiCiAKIGdlbmVyaWMgbXVsdGkgc3RlcCBTSEEtMzg0IFRlc3QgVmVjdG9yIE5JU1QgQ0FWUyAjMgotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEzODQKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8zODQKIG1kX2hleF9tdWx0aTpNQkVEVExTX01EX1NIQTM4NDoiYWIiOiJmYjk0ZDViZTExODg2NWY2ZmNiYzk3OGI4MjVkYTgyY2ZmMTg4ZmFlYzJmNjZjYjg0YjI1MzdkNzRiNDkzODQ2OTg1NGIwY2E4OWU2NmZhMmUxODI4MzQ3MzY2MjlmM2QiCiAKIGdlbmVyaWMgbXVsdGkgc3RlcCBTSEEtMzg0IFRlc3QgVmVjdG9yIE5JU1QgQ0FWUyAjMwotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEzODQKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8zODQKIG1kX2hleF9tdWx0aTpNQkVEVExTX01EX1NIQTM4NDoiN2MyNyI6IjNkODBiZTQ2N2RmODZkNjNhYmI5ZWExZDNmOWNiMzljZDE5ODkwZTdmMmM1M2E2MjAwYmVkYzUwMDY4NDJiMzVlODIwZGM0ZTBjYTkwY2E5Yjk3YWIyM2VmMDcwODBmYyIKIAogZ2VuZXJpYyBtdWx0aSBzdGVwIFNIQS0zODQgVGVzdCBWZWN0b3IgTklTVCBDQVZTICM0Ci1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTM4NAorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzM4NAogbWRfaGV4X211bHRpOk1CRURUTFNfTURfU0hBMzg0OiIzMWY1Y2EiOiI3OGQ1NGI5NDM0MjFmZGY3YmE5MGE3ZmI5NjM3YzIwNzNhYTQ4MDQ1NGJkODQxZDM5ZmY3MmY0NTExZmMyMWZiNjc3OTdiNjUyYzBjODIzMjI5MzQyODczZDNiZWY5NTUiCiAKIGdlbmVyaWMgbXVsdGkgc3RlcCBTSEEtMzg0IFRlc3QgVmVjdG9yIE5JU1QgQ0FWUyAjNQotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEzODQKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8zODQKIG1kX2hleF9tdWx0aTpNQkVEVExTX01EX1NIQTM4NDoiN2JkZWUzZjgiOiI4YmRhZmJhMDc3N2VlNDQ2YzM0MzFjMmQ3YjFmYmI2MzEwODlmNzFkMmNhNDE3YWJjMWQyMzBlMWFiYTY0ZWMyZjFjMTg3NDc0YTZmNDA3N2QzNzJjMTRhZDQwN2Y5OWEiCiAKIGdlbmVyaWMgbXVsdGkgc3RlcCBTSEEtMzg0IFRlc3QgVmVjdG9yIE5JU1QgQ0FWUyAjNgotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEzODQKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8zODQKIG1kX2hleF9tdWx0aTpNQkVEVExTX01EX1NIQTM4NDoiOGYwNTYwNDkxNSI6IjUwNGU0MTRiZjFkYjEwNjBmMTRjOGM3OTllMjViMWUwYzRkY2YxNTA0ZWJiZDEyOTk5OGYwYWUyODNlNmRlODZlMGQzYzdlODc5YzczZWMzYjE4MzZjM2VlODljMjY0OSIKIAogZ2VuZXJpYyBtdWx0aSBzdGVwIFNIQS0zODQgVGVzdCBWZWN0b3IgTklTVCBDQVZTICM3Ci1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTM4NAorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzM4NAogbWRfaGV4X211bHRpOk1CRURUTFNfTURfU0hBMzg0OiI2NjVkYTZlZGEyMTQiOiI0YzAyMmYxMTIwMTA5MDg4NDgzMTJmOGI4ZjEwNzI2MjVmZDVjMTA1Mzk5ZDU2MmVhMWQ1NjEzMDYxOWE3ZWFjOGRmYzM3NDhmZDA1ZWUzN2U0YjY5MGJlOWRhYTk5ODAiCiAKIGdlbmVyaWMgbXVsdGkgc3RlcCBTSEEtMzg0IFRlc3QgVmVjdG9yIE5JU1QgQ0FWUyAjOAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEzODQKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8zODQKIG1kX2hleF9tdWx0aTpNQkVEVExTX01EX1NIQTM4NDoiN2Y0NmNlNTA2ZDU5M2M0ZWQ1M2M4MmVkZWI2MDIwMzdlMDQ4NWJlZmJlZTAzZjdmOTMwZmU1MzJkMThmZjJhM2Y1ZmQ2MDc2NjcyYzgxNDVhMWJmNDBkZDk0ZjdhYmFiNDdjOWFlNzFjMjM0MjEzZDJhZDEwNjljMmRhYzBiMGJhMTUyNTdhZTY3MmI4MjQ1OTYwYWU1NWJkNTAzMTVjMDA5N2RhYTNhMzE4NzQ1Nzg4ZDcwZDE0NzA2OTEwODA5Y2E2ZTM5NjIzN2ZlNDkzNGZhNDZmOWNlNzgyZDY2NjA2ZDhiZDZiMmQyODNiMTE2MDUxM2NlOWMyNGU5ZjA4NGI5Nzg5MWY5OWQ0Y2RlZmMxNjlhMDI5ZTQzMWNhNzcyYmExYmJhNDI2ZmNlNmYwMWQ4ZTI4NjAxNGU1YWNjNjZiNzk5ZTRkYjYyYmQ0NzgzMzIyZjhhMzJmZjc4ZTBkZTM5NTdkZjUwY2UxMDg3MWY0ZTA2ODBkZjRlOGNhMzk2MGFmOWJjNmY0ZWZhOGViMzk2MmQxOGY0NzRlYjE3OGMzMjY1Y2M0NmI4ZjJmZjVhYjFhNzQ0OWZlYTI5N2RmY2ZhYmZhMDFmMjhhYmJiNzI4OWJiMzU0YjY5MWI1NjY0ZWM2ZDA5OGFmNTFiZTE5OTQ3ZWM1YmE3ZWJkNjYzODBkMTE0MTk1M2JhNzhkNGFhNTQwMTY3OWZhN2IwYTQ0ZGIxOTgxZjg2NGQzNTM1YzQ1YWZlNGM2MTE4M2Q1YjBhZDUxZmFlNzFjYTA3ZTM0MjQwMjgzOTU5Zjc1MzBhMzJjNzBkOTVhMDg4ZTUwMWMyMzAwNTlmMzMzYjA2NzA4MjUwMDllN2UyMjEwM2VmMjI5MzU4MzBkZjFmYWM4ZWY4NzdmNWYzNDI2ZGQ1NGY3ZDExMjhkZDg3MWFkOWE3ZDA4OGY5NGMwZTg3MTIwMTMyOTViOGQ2OWFlNzYyM2I4ODA5NzhjMmQzYzZhZDI2ZGM0NzhmOGRjNDdmNWMwYWRjYzYxODY2NWRjM2RjMjA1YTkwNzFiMmYyMTkxZTE2Y2FjNWJkODliYjU5MTQ4ZmM3MTk2MzM3NTIzMDNhYTA4ZTUxOGRiYzM4OWYwYTU0ODJjYWFhNGM1MDdiODcyOWE2ZjNlZGQwNjFlZmIzOTAyNmNlY2M2Mzk5ZjUxOTcxY2Y3MzgxZDYwNWUxNDRhNTkyOGM4YzJkMWFkNzQ2N2IwNWRhMmYyMDJmNGYzMjM0ZTFhZmYxOWEwMTk4YTI4Njg1NzIxYzNkMmQ1MjMxMWM3MjFlM2ZkY2JhZjMwMjE0Y2RjM2FjZmY4YzQzMzg4MGUxMDRmYjYzZjJkZjdjZTY5YTk3ODU3ODE5YmE3YWMwMGFjOGVhZTE5Njk3NjRmZGU4ZjY4Y2Y4ZTA5MTZkN2UwYzE1MTE0N2Q0OTQ0Zjk5ZjQyYWU1MGYzMGUxYzc5YTQyZDJiNmM1MTg4ZDEzM2QzY2JiZjY5MDk0MDI3YjM1NGIyOTVjY2QwZjdkYzVhODdkNzM2MzhiZDk4ZWJmYjAwMzgzY2EwZmE2OWNiOGRjYjM1YTEyNTEwZTVlMDdhZDg3ODkwNDdkMGI2Mzg0MWExYmI5Mjg3MzdlOGIwYTBjMzMyNTRmNDdhYThiZmJlMzM0MWEwOWMyYjc2ZGJjZWZhNjdlMzBkZjMwMGQzNGY3Yjg0NjVjNGY4NjllNTFiNmJjZmU2Y2Y2OGIyMzgzNTlhNjQ1MDM2YmY3ZjYzZjAyOTI0ZTA4N2NlNzQ1N2U0ODNiNjAyNWE4NTk5MDNjYjQ4NDU3NGFhM2IxMmNmOTQ2ZjMyMTI3ZDUzN2MzM2JlZTMxNDFiNWRiOTZkMTBhMTQ4YzUwYWUwNDVmMjg3MjEwNzU3NzEwZDY4NDZlMDRiMjAyZjc5ZTg3ZGQ5YTU2YmM2ZGExNWY4NGE3N2E3ZjYzOTM1ZTFkZWUwMDMwOWNkMjc2YThlNzE3NmNiMDRkYTZiYjBlOTAwOTUzNDQzODczMmNiNDJkMDA4MDA4ODUzZDM4ZDE5YmViYTQ2ZTYxMDA2ZTMwZjdlZmQxYmM3YzI5MDZiMDI0ZTRmZjg5OGExYjU4YzQ0OGQ2OGI0M2M2YWI2M2YzNGY4NWIzYWM2YWE0NDc1ODY3ZTUxYjU4Mzg0NGNiMjM4MjlmNGIzMGY0YmRkODE3ZDg4ZTJlZjNlN2I0ZmMwYTYyNDM5NWIwNWVjNWU4Njg2MDgyYjI0ZDI5ZmVmMmIwZDNjMjllMDMxZDVmOTRmNTA0YjFkM2RmOTM2MWViNWZmYmFkYjI0MmU2NmMzOWE4MDk0Y2ZlNjJmODVmNjM5ZjNmZDY1ZmM4YWUwYzc0YThmNGM2ZTFkMDcwYjkxODNhNDM0YzcyMmNhYWEwMjI1ZjhiY2Q2ODYxNGQ2ZjA3MzhlZDYyZjg0ODRlYzk2MDc3ZDE1NWMwOGUyNmM0NmJlMjYyYTczZTM1NTE2OThiZDcwZDhkNTYxMGNmMzdjNGMzMDZlZWQwNGJhNmEwNDBhOWMzZTZkN2UxNWU4YWNkYTE3ZjQ3N2MyNDg0Y2Y1YzU2YjgxMzMxMzkyN2JlODM4N2IxMDI0Zjk5NWU5OGZjODdmMTAyOTA5MWMwMTQyNGJkYzJiMjk2YzJlYWRiN2QyNWIzZTc2MmEyZmQwYzJkY2QxNzI3ZGRmOTFkYjk3YzU5ODQzMDUyNjVmMzY5NWE3ZjU0NzJmMmQ3MmM5NGQ2OGMyNzkxNGYxNGY4MmFhOGRkNWZlNGUyMzQ4YjBjYTk2N2EzZjk4NjI2YTA5MTU1MmY1ZDBmZmEyYmYxMDM1MGQyM2M5OTYyNTZjMDFmZGVmZmIyYzJjNjEyNTE5ODY5Zjg3N2U0OTI5YzZlOTVmZjE1MDQwZjE0ODVlMjJlZDE0MTE5ODgwMjMyZmVmM2I1N2IzODQ4ZjE1YjE3NjZhNTU1Mjg3OWRmOGYwNiI6ImNiYTllM2ViMTJhNmY4M2RiMTFlOGE2ZmY0MGQxMDQ5ODU0ZWUwOTQ0MTZiYzUyN2ZlYTkzMWQ4NTg1NDI4YThlZDYyNDJjZTgxZjY3NjliMzZlMjEyM2E1YzIzNDgzZSIKIAogZ2VuZXJpYyBtdWx0aSBzdGVwIFNIQS01MTIgVGVzdCBWZWN0b3IgTklTVCBDQVZTICMxCkBAIC0xMTgyLDgwICsxMTgyLDgwIEBACiAKIGdlbmVyaWMgU0hBMSBIYXNoIGZpbGUgIzEKIGRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMQotbWJlZHRsc19tZF9maWxlOk1CRURUTFNfTURfU0hBMToiZGF0YV9maWxlcy9oYXNoX2ZpbGVfMSI6ImQyMWM5NjViMWU3NjhiZDdhNmFhNjg2OWY1ZjgyMTkwMWQyNTVmOWYiCittYmVkdGxzX21kX2ZpbGU6TUJFRFRMU19NRF9TSEExOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9oYXNoX2ZpbGVfMSI6ImQyMWM5NjViMWU3NjhiZDdhNmFhNjg2OWY1ZjgyMTkwMWQyNTVmOWYiCiAKIGdlbmVyaWMgU0hBMSBIYXNoIGZpbGUgIzIKIGRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMQotbWJlZHRsc19tZF9maWxlOk1CRURUTFNfTURfU0hBMToiZGF0YV9maWxlcy9oYXNoX2ZpbGVfMiI6IjM1M2YzNDI3MWYyYWVmNDlkMjNhODkxM2Q0YTZiZDgyYjJjZWNkYzYiCittYmVkdGxzX21kX2ZpbGU6TUJFRFRMU19NRF9TSEExOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9oYXNoX2ZpbGVfMiI6IjM1M2YzNDI3MWYyYWVmNDlkMjNhODkxM2Q0YTZiZDgyYjJjZWNkYzYiCiAKIGdlbmVyaWMgU0hBMSBIYXNoIGZpbGUgIzMKIGRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMQotbWJlZHRsc19tZF9maWxlOk1CRURUTFNfTURfU0hBMToiZGF0YV9maWxlcy9oYXNoX2ZpbGVfMyI6IjkzNjQwZWQ1OTIwNzYzMjgwOTYyNzBjNzU2ZGIyZmJhOWM0ODZiMzUiCittYmVkdGxzX21kX2ZpbGU6TUJFRFRMU19NRF9TSEExOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9oYXNoX2ZpbGVfMyI6IjkzNjQwZWQ1OTIwNzYzMjgwOTYyNzBjNzU2ZGIyZmJhOWM0ODZiMzUiCiAKIGdlbmVyaWMgU0hBMSBIYXNoIGZpbGUgIzQKIGRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMQotbWJlZHRsc19tZF9maWxlOk1CRURUTFNfTURfU0hBMToiZGF0YV9maWxlcy9oYXNoX2ZpbGVfNCI6ImRhMzlhM2VlNWU2YjRiMGQzMjU1YmZlZjk1NjAxODkwYWZkODA3MDkiCittYmVkdGxzX21kX2ZpbGU6TUJFRFRMU19NRF9TSEExOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9oYXNoX2ZpbGVfNCI6ImRhMzlhM2VlNWU2YjRiMGQzMjU1YmZlZjk1NjAxODkwYWZkODA3MDkiCiAKIGdlbmVyaWMgU0hBLTIyNCBIYXNoIGZpbGUgIzEKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjI0Ci1tYmVkdGxzX21kX2ZpbGU6TUJFRFRMU19NRF9TSEEyMjQ6ImRhdGFfZmlsZXMvaGFzaF9maWxlXzEiOiI4NjA2ZGEwMTg4NzBmMGMxNjgzNGEyMWJjMzM4NTcwNGNiMTY4M2I5ZGJhYjA0YzVkZGI5MGE0OCIKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yMjQKK21iZWR0bHNfbWRfZmlsZTpNQkVEVExTX01EX1NIQTIyNDoiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvaGFzaF9maWxlXzEiOiI4NjA2ZGEwMTg4NzBmMGMxNjgzNGEyMWJjMzM4NTcwNGNiMTY4M2I5ZGJhYjA0YzVkZGI5MGE0OCIKIAogZ2VuZXJpYyBTSEEtMjI0IEhhc2ggZmlsZSAjMgotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyMjQKLW1iZWR0bHNfbWRfZmlsZTpNQkVEVExTX01EX1NIQTIyNDoiZGF0YV9maWxlcy9oYXNoX2ZpbGVfMiI6IjczM2IyYWI5N2I2ZjYzZjJlMjliOWEyMDg5NzU2ZDgxZTE0YzkzZmU0Y2M5NjE1YzBkNWU4YTAzIgorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzIyNAorbWJlZHRsc19tZF9maWxlOk1CRURUTFNfTURfU0hBMjI0OiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9oYXNoX2ZpbGVfMiI6IjczM2IyYWI5N2I2ZjYzZjJlMjliOWEyMDg5NzU2ZDgxZTE0YzkzZmU0Y2M5NjE1YzBkNWU4YTAzIgogCiBnZW5lcmljIFNIQS0yMjQgSGFzaCBmaWxlICMzCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTIyNAotbWJlZHRsc19tZF9maWxlOk1CRURUTFNfTURfU0hBMjI0OiJkYXRhX2ZpbGVzL2hhc2hfZmlsZV8zIjoiZTFkZjk1ODY3NTgwZTJjYzIxMDBlOTU2NWJmOWMyZTQyYzI0ZmU1MjUwYzE5ZWZlMzNkMWM0ZmUiCitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjI0CittYmVkdGxzX21kX2ZpbGU6TUJFRFRMU19NRF9TSEEyMjQ6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL2hhc2hfZmlsZV8zIjoiZTFkZjk1ODY3NTgwZTJjYzIxMDBlOTU2NWJmOWMyZTQyYzI0ZmU1MjUwYzE5ZWZlMzNkMWM0ZmUiCiAKIGdlbmVyaWMgU0hBLTIyNCBIYXNoIGZpbGUgIzQKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjI0Ci1tYmVkdGxzX21kX2ZpbGU6TUJFRFRMU19NRF9TSEEyMjQ6ImRhdGFfZmlsZXMvaGFzaF9maWxlXzQiOiJkMTRhMDI4YzJhM2EyYmM5NDc2MTAyYmIyODgyMzRjNDE1YTJiMDFmODI4ZWE2MmFjNWIzZTQyZiIKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yMjQKK21iZWR0bHNfbWRfZmlsZTpNQkVEVExTX01EX1NIQTIyNDoiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvaGFzaF9maWxlXzQiOiJkMTRhMDI4YzJhM2EyYmM5NDc2MTAyYmIyODgyMzRjNDE1YTJiMDFmODI4ZWE2MmFjNWIzZTQyZiIKIAogZ2VuZXJpYyBTSEEtMjU2IEhhc2ggZmlsZSAjMQotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKLW1iZWR0bHNfbWRfZmlsZTpNQkVEVExTX01EX1NIQTI1NjoiZGF0YV9maWxlcy9oYXNoX2ZpbGVfMSI6Ijk3NWQwYzYyMGQzOTM2ODg2ZjhhMzY2NWU1ODVhM2U4NGFhMDUwMWY0MjI1YmY1MzAyOTcxMDI0MjgyM2UzOTEiCitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2CittYmVkdGxzX21kX2ZpbGU6TUJFRFRMU19NRF9TSEEyNTY6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL2hhc2hfZmlsZV8xIjoiOTc1ZDBjNjIwZDM5MzY4ODZmOGEzNjY1ZTU4NWEzZTg0YWEwNTAxZjQyMjViZjUzMDI5NzEwMjQyODIzZTM5MSIKIAogZ2VuZXJpYyBTSEEtMjU2IEhhc2ggZmlsZSAjMgotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKLW1iZWR0bHNfbWRfZmlsZTpNQkVEVExTX01EX1NIQTI1NjoiZGF0YV9maWxlcy9oYXNoX2ZpbGVfMiI6IjExZmNiZjFiYWEzNmNhNDU3NDVmMTBjYzU0NjdhZWU4NmYwNjZmODBiYTJjNDY4MDZkODc2YmY3ODMwMjJhZDIiCitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2CittYmVkdGxzX21kX2ZpbGU6TUJFRFRMU19NRF9TSEEyNTY6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL2hhc2hfZmlsZV8yIjoiMTFmY2JmMWJhYTM2Y2E0NTc0NWYxMGNjNTQ2N2FlZTg2ZjA2NmY4MGJhMmM0NjgwNmQ4NzZiZjc4MzAyMmFkMiIKIAogZ2VuZXJpYyBTSEEtMjU2IEhhc2ggZmlsZSAjMwotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKLW1iZWR0bHNfbWRfZmlsZTpNQkVEVExTX01EX1NIQTI1NjoiZGF0YV9maWxlcy9oYXNoX2ZpbGVfMyI6IjlhZTRiMzY5ZjlmNGYwM2I4NjUwNWI0NmE1NDY5NTQyZTAwYWFmZjdjZjc0MTdhNzFhZjZkNmQwYWJhM2I3MGMiCitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2CittYmVkdGxzX21kX2ZpbGU6TUJFRFRMU19NRF9TSEEyNTY6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL2hhc2hfZmlsZV8zIjoiOWFlNGIzNjlmOWY0ZjAzYjg2NTA1YjQ2YTU0Njk1NDJlMDBhYWZmN2NmNzQxN2E3MWFmNmQ2ZDBhYmEzYjcwYyIKIAogZ2VuZXJpYyBTSEEtMjU2IEhhc2ggZmlsZSAjNAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKLW1iZWR0bHNfbWRfZmlsZTpNQkVEVExTX01EX1NIQTI1NjoiZGF0YV9maWxlcy9oYXNoX2ZpbGVfNCI6ImUzYjBjNDQyOThmYzFjMTQ5YWZiZjRjODk5NmZiOTI0MjdhZTQxZTQ2NDliOTM0Y2E0OTU5OTFiNzg1MmI4NTUiCitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2CittYmVkdGxzX21kX2ZpbGU6TUJFRFRMU19NRF9TSEEyNTY6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL2hhc2hfZmlsZV80IjoiZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NSIKIAogZ2VuZXJpYyBTSEEtMzg0IEhhc2ggZmlsZSAjMQotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEzODQKLW1iZWR0bHNfbWRfZmlsZTpNQkVEVExTX01EX1NIQTM4NDoiZGF0YV9maWxlcy9oYXNoX2ZpbGVfMSI6ImUwYTNlNjI1OWQ2Mzc4MDAxYjU0ZWY4MmY1ZGQwODcwMDljNWZhZDg2ZDhkYjIyNmE5ZmUxZDE0ZWNiZTMzYTZmYzkxNmUzYTRiMTZmNWYyODY0MjRkZTE1ZDVhOGUwZSIKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8zODQKK21iZWR0bHNfbWRfZmlsZTpNQkVEVExTX01EX1NIQTM4NDoiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvaGFzaF9maWxlXzEiOiJlMGEzZTYyNTlkNjM3ODAwMWI1NGVmODJmNWRkMDg3MDA5YzVmYWQ4NmQ4ZGIyMjZhOWZlMWQxNGVjYmUzM2E2ZmM5MTZlM2E0YjE2ZjVmMjg2NDI0ZGUxNWQ1YThlMGUiCiAKIGdlbmVyaWMgU0hBLTM4NCBIYXNoIGZpbGUgIzIKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMzg0Ci1tYmVkdGxzX21kX2ZpbGU6TUJFRFRMU19NRF9TSEEzODQ6ImRhdGFfZmlsZXMvaGFzaF9maWxlXzIiOiJlZmY3MjdhZmM4NDk1YzkyZTJmMzcwZjk3YTMxN2Y5M2MzMzUwMzI0YjA2NDZiMGYwZTI2NDcwOGIzYzk3ZDNkMzMyZDNjNTM5MGUxZTQ3MTMwZjVjOTJmMWVmNGI5Y2YiCitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMzg0CittYmVkdGxzX21kX2ZpbGU6TUJFRFRMU19NRF9TSEEzODQ6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL2hhc2hfZmlsZV8yIjoiZWZmNzI3YWZjODQ5NWM5MmUyZjM3MGY5N2EzMTdmOTNjMzM1MDMyNGIwNjQ2YjBmMGUyNjQ3MDhiM2M5N2QzZDMzMmQzYzUzOTBlMWU0NzEzMGY1YzkyZjFlZjRiOWNmIgogCiBnZW5lcmljIFNIQS0zODQgSGFzaCBmaWxlICMzCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTM4NAotbWJlZHRsc19tZF9maWxlOk1CRURUTFNfTURfU0hBMzg0OiJkYXRhX2ZpbGVzL2hhc2hfZmlsZV8zIjoiNmZjMTBlYmRhOTZhMWNjZjYxNzc3Y2FjNzJmNjAzNGY5MjUzM2Q0MjA1MmE0YmY5ZjlkOTI5YzY3Mjk3M2M3MWU1YWViMTIxMzI2ODA0M2MyMTUyN2FjMGY3ZjM0OWM0IgorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzM4NAorbWJlZHRsc19tZF9maWxlOk1CRURUTFNfTURfU0hBMzg0OiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9oYXNoX2ZpbGVfMyI6IjZmYzEwZWJkYTk2YTFjY2Y2MTc3N2NhYzcyZjYwMzRmOTI1MzNkNDIwNTJhNGJmOWY5ZDkyOWM2NzI5NzNjNzFlNWFlYjEyMTMyNjgwNDNjMjE1MjdhYzBmN2YzNDljNCIKIAogZ2VuZXJpYyBTSEEtMzg0IEhhc2ggZmlsZSAjNAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEzODQKLW1iZWR0bHNfbWRfZmlsZTpNQkVEVExTX01EX1NIQTM4NDoiZGF0YV9maWxlcy9oYXNoX2ZpbGVfNCI6IjM4YjA2MGE3NTFhYzk2Mzg0Y2Q5MzI3ZWIxYjFlMzZhMjFmZGI3MTExNGJlMDc0MzRjMGNjN2JmNjNmNmUxZGEyNzRlZGViZmU3NmY2NWZiZDUxYWQyZjE0ODk4Yjk1YiIKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8zODQKK21iZWR0bHNfbWRfZmlsZTpNQkVEVExTX01EX1NIQTM4NDoiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvaGFzaF9maWxlXzQiOiIzOGIwNjBhNzUxYWM5NjM4NGNkOTMyN2ViMWIxZTM2YTIxZmRiNzExMTRiZTA3NDM0YzBjYzdiZjYzZjZlMWRhMjc0ZWRlYmZlNzZmNjVmYmQ1MWFkMmYxNDg5OGI5NWIiCiAKIGdlbmVyaWMgU0hBLTUxMiBIYXNoIGZpbGUgIzEKIGRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBNTEyCi1tYmVkdGxzX21kX2ZpbGU6TUJFRFRMU19NRF9TSEE1MTI6ImRhdGFfZmlsZXMvaGFzaF9maWxlXzEiOiJkODIwN2EyZTFmZjJiNDI0ZjJjNDE2M2ZlMWI3MjNjOWJkNDJlNDY0MDYxZWI0MTFlOGRmNzMwYmNkMjRhN2FiMzk1NmE2ZjNmZjA0NGE1MmViMmQyNjJmOWU0Y2E2YjUyNDA5MmI1NDRhYjc4ZjE0ZDZmOWM0Y2M4ZGRmMzM1YSIKK21iZWR0bHNfbWRfZmlsZTpNQkVEVExTX01EX1NIQTUxMjoiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvaGFzaF9maWxlXzEiOiJkODIwN2EyZTFmZjJiNDI0ZjJjNDE2M2ZlMWI3MjNjOWJkNDJlNDY0MDYxZWI0MTFlOGRmNzMwYmNkMjRhN2FiMzk1NmE2ZjNmZjA0NGE1MmViMmQyNjJmOWU0Y2E2YjUyNDA5MmI1NDRhYjc4ZjE0ZDZmOWM0Y2M4ZGRmMzM1YSIKIAogZ2VuZXJpYyBTSEEtNTEyIEhhc2ggZmlsZSAjMgogZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEE1MTIKLW1iZWR0bHNfbWRfZmlsZTpNQkVEVExTX01EX1NIQTUxMjoiZGF0YV9maWxlcy9oYXNoX2ZpbGVfMiI6ImVjYmI3ZjBlZDhhNzAyYjQ5ZjE2YWQzMDg4YmNjMDZlYTkzNDUxOTEyYTcxODdkYjE1ZjY0ZDkzNTE3YjA5NjMwYjAzOTI5M2FlZDQxOGQ0YTAwNjk1Nzc3Yjc1OGIxZjM4MTU0OGMyZmQ3YjkyY2U1ZWQ5OTZiMzJjODczNGU3IgorbWJlZHRsc19tZF9maWxlOk1CRURUTFNfTURfU0hBNTEyOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9oYXNoX2ZpbGVfMiI6ImVjYmI3ZjBlZDhhNzAyYjQ5ZjE2YWQzMDg4YmNjMDZlYTkzNDUxOTEyYTcxODdkYjE1ZjY0ZDkzNTE3YjA5NjMwYjAzOTI5M2FlZDQxOGQ0YTAwNjk1Nzc3Yjc1OGIxZjM4MTU0OGMyZmQ3YjkyY2U1ZWQ5OTZiMzJjODczNGU3IgogCiBnZW5lcmljIFNIQS01MTIgSGFzaCBmaWxlICMzCiBkZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTUxMgotbWJlZHRsc19tZF9maWxlOk1CRURUTFNfTURfU0hBNTEyOiJkYXRhX2ZpbGVzL2hhc2hfZmlsZV8zIjoiN2NjYzliMmRhNzFmZmRlOTk2NmMzY2U0NGQ3ZjIwOTQ1ZmNjZjMzYjFmYWRlNGRhMTUyYjAyMWYxYWZjYzcyOTMzODI5NDRhYTZjMDllYWM2N2FmMjVmMjIwMjY3NThlMmJmNmJlZDg2YWUyYTQzNTkyNjc3ZWU1MGY4ZWVhNDEiCittYmVkdGxzX21kX2ZpbGU6TUJFRFRMU19NRF9TSEE1MTI6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL2hhc2hfZmlsZV8zIjoiN2NjYzliMmRhNzFmZmRlOTk2NmMzY2U0NGQ3ZjIwOTQ1ZmNjZjMzYjFmYWRlNGRhMTUyYjAyMWYxYWZjYzcyOTMzODI5NDRhYTZjMDllYWM2N2FmMjVmMjIwMjY3NThlMmJmNmJlZDg2YWUyYTQzNTkyNjc3ZWU1MGY4ZWVhNDEiCiAKIGdlbmVyaWMgU0hBLTUxMiBIYXNoIGZpbGUgIzQKIGRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBNTEyCi1tYmVkdGxzX21kX2ZpbGU6TUJFRFRMU19NRF9TSEE1MTI6ImRhdGFfZmlsZXMvaGFzaF9maWxlXzQiOiJjZjgzZTEzNTdlZWZiOGJkZjE1NDI4NTBkNjZkODAwN2Q2MjBlNDA1MGI1NzE1ZGM4M2Y0YTkyMWQzNmNlOWNlNDdkMGQxM2M1ZDg1ZjJiMGZmODMxOGQyODc3ZWVjMmY2M2I5MzFiZDQ3NDE3YTgxYTUzODMyN2FmOTI3ZGEzZSIKK21iZWR0bHNfbWRfZmlsZTpNQkVEVExTX01EX1NIQTUxMjoiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvaGFzaF9maWxlXzQiOiJjZjgzZTEzNTdlZWZiOGJkZjE1NDI4NTBkNjZkODAwN2Q2MjBlNDA1MGI1NzE1ZGM4M2Y0YTkyMWQzNmNlOWNlNDdkMGQxM2M1ZDg1ZjJiMGZmODMxOGQyODc3ZWVjMmY2M2I5MzFiZDQ3NDE3YTgxYTUzODMyN2FmOTI3ZGEzZSIKZGlmZiAtLWdpdCBhL3Rlc3RzL3N1aXRlcy90ZXN0X3N1aXRlX29pZC5kYXRhIGIvdGVzdHMvc3VpdGVzL3Rlc3Rfc3VpdGVfb2lkLmRhdGEKaW5kZXggZjhmMWQ0My4uMDY3OTJjYiAxMDA2NDQKLS0tIGEvdGVzdHMvc3VpdGVzL3Rlc3Rfc3VpdGVfb2lkLmRhdGEKKysrIGIvdGVzdHMvc3VpdGVzL3Rlc3Rfc3VpdGVfb2lkLmRhdGEKQEAgLTY3LDE1ICs2NywxNSBAQAogb2lkX2dldF9tZF9hbGdfaWQ6IjJiMGUwMzAyMWEiOk1CRURUTFNfTURfU0hBMQogCiBPSUQgaGFzaCBpZCAtIGlkLXNoYTIyNAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyMjQKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yMjQKIG9pZF9nZXRfbWRfYWxnX2lkOiI2MDg2NDgwMTY1MDMwNDAyMDQiOk1CRURUTFNfTURfU0hBMjI0CiAKIE9JRCBoYXNoIGlkIC0gaWQtc2hhMjU2Ci1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1Ngogb2lkX2dldF9tZF9hbGdfaWQ6IjYwODY0ODAxNjUwMzA0MDIwMSI6TUJFRFRMU19NRF9TSEEyNTYKIAogT0lEIGhhc2ggaWQgLSBpZC1zaGEzODQKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMzg0CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMzg0CiBvaWRfZ2V0X21kX2FsZ19pZDoiNjA4NjQ4MDE2NTAzMDQwMjAyIjpNQkVEVExTX01EX1NIQTM4NAogCiBPSUQgaGFzaCBpZCAtIGlkLXNoYTUxMgpAQCAtODMsMjMgKzgzLDIzIEBACiBvaWRfZ2V0X21kX2FsZ19pZDoiNjA4NjQ4MDE2NTAzMDQwMjAzIjpNQkVEVExTX01EX1NIQTUxMgogCiBPSUQgaGFzaCBpZCAtIGlkLXNoYTMtMjI0Ci1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTNfMjI0CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEEzXzIyNAogb2lkX2dldF9tZF9hbGdfaWQ6IjYwODY0ODAxNjUwMzA0MDIwNyI6TUJFRFRMU19NRF9TSEEzXzIyNAogCiBPSUQgaGFzaCBpZCAtIGlkLXNoYTMtMjU2Ci1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTNfMjU2CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEEzXzI1Ngogb2lkX2dldF9tZF9hbGdfaWQ6IjYwODY0ODAxNjUwMzA0MDIwOCI6TUJFRFRMU19NRF9TSEEzXzI1NgogCiBPSUQgaGFzaCBpZCAtIGlkLXNoYTMtMzg0Ci1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTNfMzg0CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEEzXzM4NAogb2lkX2dldF9tZF9hbGdfaWQ6IjYwODY0ODAxNjUwMzA0MDIwOSI6TUJFRFRMU19NRF9TSEEzXzM4NAogCiBPSUQgaGFzaCBpZCAtIGlkLXNoYTMtNTEyCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTNfNTEyCitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEEzXzUxMgogb2lkX2dldF9tZF9hbGdfaWQ6IjYwODY0ODAxNjUwMzA0MDIwYSI6TUJFRFRMU19NRF9TSEEzXzUxMgogCiBPSUQgaGFzaCBpZCAtIGlkLXJpcGVtZDE2MAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9SSVBFTUQxNjAKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1JJUEVNRDE2MAogb2lkX2dldF9tZF9hbGdfaWQ6IjJiMjQwMzAyMDEiOk1CRURUTFNfTURfUklQRU1EMTYwCiAKIE9JRCBoYXNoIGlkIC0gaW52YWxpZCBvaWQKQEAgLTIwMyw3ICsyMDMsNyBAQAogb2lkX2Zyb21fbnVtZXJpY19zdHJpbmc6IjIuNDI5NDk2NzIxNiI6TUJFRFRMU19FUlJfQVNOMV9JTlZBTElEX0RBVEE6IiIKIAogbWJlZHRsc19vaWRfZ2V0X21kX2htYWMgLSBSSVBFTUQxNjAKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fUklQRU1EMTYwCitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19SSVBFTUQxNjAKIG1iZWR0bHNfb2lkX2dldF9tZF9obWFjOiIyQjA2MDEwNTA1MDgwMTA0IjpNQkVEVExTX01EX1JJUEVNRDE2MAogCiBtYmVkdGxzX29pZF9nZXRfbWRfaG1hYyAtIFNIQTEKQEAgLTIxMSwxNSArMjExLDE1IEBACiBtYmVkdGxzX29pZF9nZXRfbWRfaG1hYzoiMkE4NjQ4ODZGNzBEMDIwNyI6TUJFRFRMU19NRF9TSEExCiAKIG1iZWR0bHNfb2lkX2dldF9tZF9obWFjIC0gU0hBMjI0Ci1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTIyNAorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzIyNAogbWJlZHRsc19vaWRfZ2V0X21kX2htYWM6IjJBODY0ODg2RjcwRDAyMDgiOk1CRURUTFNfTURfU0hBMjI0CiAKIG1iZWR0bHNfb2lkX2dldF9tZF9obWFjIC0gU0hBMjU2Ci1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NgogbWJlZHRsc19vaWRfZ2V0X21kX2htYWM6IjJBODY0ODg2RjcwRDAyMDkiOk1CRURUTFNfTURfU0hBMjU2CiAKIG1iZWR0bHNfb2lkX2dldF9tZF9obWFjIC0gU0hBMzg0Ci1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTM4NAorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzM4NAogbWJlZHRsc19vaWRfZ2V0X21kX2htYWM6IjJBODY0ODg2RjcwRDAyMEEiOk1CRURUTFNfTURfU0hBMzg0CiAKIG1iZWR0bHNfb2lkX2dldF9tZF9obWFjIC0gU0hBNTEyCkBAIC0yMjcsMTcgKzIyNywxNyBAQAogbWJlZHRsc19vaWRfZ2V0X21kX2htYWM6IjJBODY0ODg2RjcwRDAyMEIiOk1CRURUTFNfTURfU0hBNTEyCiAKIG1iZWR0bHNfb2lkX2dldF9tZF9obWFjIC0gU0hBM18yMjQKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBM18yMjQKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQTNfMjI0CiBtYmVkdGxzX29pZF9nZXRfbWRfaG1hYzoiNjA4NjQ4MDE2NTAzMDQwMjBEIjpNQkVEVExTX01EX1NIQTNfMjI0CiAKIG1iZWR0bHNfb2lkX2dldF9tZF9obWFjIC0gU0hBM18yNTYKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBM18yNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQTNfMjU2CiBtYmVkdGxzX29pZF9nZXRfbWRfaG1hYzoiNjA4NjQ4MDE2NTAzMDQwMjBFIjpNQkVEVExTX01EX1NIQTNfMjU2CiAKIG1iZWR0bHNfb2lkX2dldF9tZF9obWFjIC0gU0hBM18zODQKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBM18zODQKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQTNfMzg0CiBtYmVkdGxzX29pZF9nZXRfbWRfaG1hYzoiNjA4NjQ4MDE2NTAzMDQwMjBGIjpNQkVEVExTX01EX1NIQTNfMzg0CiAKIG1iZWR0bHNfb2lkX2dldF9tZF9obWFjIC0gU0hBM181MTIKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBM181MTIKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQTNfNTEyCiBtYmVkdGxzX29pZF9nZXRfbWRfaG1hYzoiNjA4NjQ4MDE2NTAzMDQwMjEwIjpNQkVEVExTX01EX1NIQTNfNTEyCmRpZmYgLS1naXQgYS90ZXN0cy9zdWl0ZXMvdGVzdF9zdWl0ZV9way5kYXRhIGIvdGVzdHMvc3VpdGVzL3Rlc3Rfc3VpdGVfcGsuZGF0YQppbmRleCAyYmMzODQ4Li4xOGU0NDkxIDEwMDY0NAotLS0gYS90ZXN0cy9zdWl0ZXMvdGVzdF9zdWl0ZV9way5kYXRhCisrKyBiL3Rlc3RzL3N1aXRlcy90ZXN0X3N1aXRlX3BrLmRhdGEKQEAgLTI3LDExICsyNywxMSBAQAogcGtfdXRpbHM6TUJFRFRMU19QS19SU0E6MTAzMDoxMDMwOigxMDMwICsgNykgLyA4OiJSU0EiCiAKIFBLIHV0aWxzOiBFQ0tFWSBTRUNQMTkyUjEKLWRlcGVuZHNfb246TUJFRFRMU19QS19IQVZFX0VDQ19LRVlTOk1CRURUTFNfRUNQX0hBVkVfU0VDUDE5MlIxCitkZXBlbmRzX29uOk1CRURUTFNfUEtfSEFWRV9FQ0NfS0VZUzpQU0FfV0FOVF9FQ0NfU0VDUF9SMV8xOTIKIHBrX3V0aWxzOk1CRURUTFNfUEtfRUNLRVk6TUJFRFRMU19FQ1BfRFBfU0VDUDE5MlIxOjE5MjoyNDoiRUMiCiAKIFBLIHV0aWxzOiBFQ0tFWV9ESCBTRUNQMTkyUjEKLWRlcGVuZHNfb246TUJFRFRMU19QS19IQVZFX0VDQ19LRVlTOk1CRURUTFNfRUNQX0hBVkVfU0VDUDE5MlIxCitkZXBlbmRzX29uOk1CRURUTFNfUEtfSEFWRV9FQ0NfS0VZUzpQU0FfV0FOVF9FQ0NfU0VDUF9SMV8xOTIKIHBrX3V0aWxzOk1CRURUTFNfUEtfRUNLRVlfREg6TUJFRFRMU19FQ1BfRFBfU0VDUDE5MlIxOjE5MjoyNDoiRUNfREgiCiAKIFBLIHV0aWxzOiBFQ0tFWV9ESCBDdXJ2ZTI1NTE5CkBAIC00Myw3ICs0Myw3IEBACiBwa191dGlsczpNQkVEVExTX1BLX0VDS0VZX0RIOk1CRURUTFNfRUNQX0RQX0NVUlZFNDQ4OjQ0ODo1NjoiRUNfREgiCiAKIFBLIHV0aWxzOiBFQ0RTQSBTRUNQMTkyUjEKLWRlcGVuZHNfb246TUJFRFRMU19QS19DQU5fRUNEU0FfVkVSSUZZOk1CRURUTFNfRUNQX0hBVkVfU0VDUDE5MlIxCitkZXBlbmRzX29uOk1CRURUTFNfUEtfQ0FOX0VDRFNBX1ZFUklGWTpQU0FfV0FOVF9FQ0NfU0VDUF9SMV8xOTIKIHBrX3V0aWxzOk1CRURUTFNfUEtfRUNEU0E6TUJFRFRMU19FQ1BfRFBfU0VDUDE5MlIxOjE5MjoyNDoiRUNEU0EiCiAKIFBLIHV0aWxzOiBFQ0RTQSBTRUNQMjU2UjEKQEAgLTk1LDExICs5NSwxMSBAQAogcGtfY2FuX2RvX2V4dDoxOlBTQV9LRVlfVFlQRV9FQ0NfS0VZX1BBSVIoUFNBX0VDQ19GQU1JTFlfU0VDUF9SMSk6UFNBX0tFWV9VU0FHRV9TSUdOX0hBU0g6UFNBX0FMR19FQ0RTQShQU0FfQUxHX1NIQV8yNTYpOlBTQV9BTEdfTk9ORToyNTY6UFNBX0FMR19FQ0RTQShQU0FfQUxHX1NIQV8yNTYpOlBTQV9LRVlfVVNBR0VfU0lHTl9IQVNIOjEKIAogUEsgY2FuIGRvIGV4dDogTk9ORS9FQ0RTQShBTllfSEFTSCksIGNoZWNrIEVDRFNBKFNIQTI1NikKLWRlcGVuZHNfb246TUJFRFRMU19QS19DQU5fRUNEU0FfU0lHTjpNQkVEVExTX0VDUF9IQVZFX1NFQ1AyNTZSMQorZGVwZW5kc19vbjpNQkVEVExTX1BLX0NBTl9FQ0RTQV9TSUdOOk1CRURUTFNfRUNQX0hBVkVfU0VDUDI1NlIxOk1CRURUTFNfUFNBX0NSWVBUT19DCiBwa19jYW5fZG9fZXh0OjE6UFNBX0tFWV9UWVBFX0VDQ19LRVlfUEFJUihQU0FfRUNDX0ZBTUlMWV9TRUNQX1IxKTpQU0FfS0VZX1VTQUdFX1NJR05fSEFTSDpQU0FfQUxHX05PTkU6UFNBX0FMR19FQ0RTQShQU0FfQUxHX0FOWV9IQVNIKToyNTY6UFNBX0FMR19FQ0RTQShQU0FfQUxHX1NIQV8yNTYpOlBTQV9LRVlfVVNBR0VfU0lHTl9IQVNIOjEKIAogUEsgY2FuIGRvIGV4dDogTk9ORS9FQ0RTQShTSEEyNTYpLCBjaGVjayBFQ0RTQShTSEEyNTYpCi1kZXBlbmRzX29uOk1CRURUTFNfUEtfQ0FOX0VDRFNBX1NJR046TUJFRFRMU19FQ1BfSEFWRV9TRUNQMjU2UjEKK2RlcGVuZHNfb246TUJFRFRMU19QS19DQU5fRUNEU0FfU0lHTjpNQkVEVExTX0VDUF9IQVZFX1NFQ1AyNTZSMTpNQkVEVExTX1BTQV9DUllQVE9fQwogcGtfY2FuX2RvX2V4dDoxOlBTQV9LRVlfVFlQRV9FQ0NfS0VZX1BBSVIoUFNBX0VDQ19GQU1JTFlfU0VDUF9SMSk6UFNBX0tFWV9VU0FHRV9TSUdOX0hBU0g6UFNBX0FMR19OT05FOlBTQV9BTEdfRUNEU0EoUFNBX0FMR19TSEFfMjU2KToyNTY6UFNBX0FMR19FQ0RTQShQU0FfQUxHX1NIQV8yNTYpOlBTQV9LRVlfVVNBR0VfU0lHTl9IQVNIOjEKIAogUEsgY2FuIGRvIGV4dDogRUNEU0EoU0hBMjU2KS9OT05FLCBpbnZhbGlkIGNoZWNrIEVDRFNBKEFOWSkKQEAgLTE0NywxNSArMTQ3LDE1IEBACiBwa19jYW5fZG9fZXh0OjE6UFNBX0tFWV9UWVBFX0VDQ19LRVlfUEFJUihQU0FfRUNDX0ZBTUlMWV9TRUNQX1IxKTpQU0FfS0VZX1VTQUdFX0RFUklWRXxQU0FfS0VZX1VTQUdFX1NJR05fSEFTSDpQU0FfQUxHX0VDREg6UFNBX0FMR19FQ0RTQShQU0FfQUxHX0FOWV9IQVNIKToyNTY6UFNBX0FMR19FQ0RIOlBTQV9LRVlfVVNBR0VfREVSSVZFfFBTQV9LRVlfVVNBR0VfU0lHTl9IQVNIOjEKIAogUEsgY2FuIGRvIGV4dDogRUNESC9FQ0RTQShBTlkpLCBjaGVjayBFQ0RTQShTSEEyNTYpK0RFUklWRXxTSUdOCi1kZXBlbmRzX29uOk1CRURUTFNfUEtfQ0FOX0VDRFNBX1NJR046TUJFRFRMU19FQ1BfSEFWRV9TRUNQMjU2UjEKK2RlcGVuZHNfb246TUJFRFRMU19QS19DQU5fRUNEU0FfU0lHTjpNQkVEVExTX0VDUF9IQVZFX1NFQ1AyNTZSMTpNQkVEVExTX1BTQV9DUllQVE9fQwogcGtfY2FuX2RvX2V4dDoxOlBTQV9LRVlfVFlQRV9FQ0NfS0VZX1BBSVIoUFNBX0VDQ19GQU1JTFlfU0VDUF9SMSk6UFNBX0tFWV9VU0FHRV9ERVJJVkV8UFNBX0tFWV9VU0FHRV9TSUdOX0hBU0g6UFNBX0FMR19FQ0RIOlBTQV9BTEdfRUNEU0EoUFNBX0FMR19BTllfSEFTSCk6MjU2OlBTQV9BTEdfRUNEU0EoUFNBX0FMR19TSEFfMjU2KTpQU0FfS0VZX1VTQUdFX0RFUklWRXxQU0FfS0VZX1VTQUdFX1NJR05fSEFTSDoxCiAKIFBLIGNhbiBkbyBleHQ6IEVDREgvRUNEU0EoQU5ZKSwgY2hlY2sgRUNEU0EoU0hBMjU2KStTSUdOCi1kZXBlbmRzX29uOk1CRURUTFNfUEtfQ0FOX0VDRFNBX1NJR046TUJFRFRMU19FQ1BfSEFWRV9TRUNQMjU2UjEKK2RlcGVuZHNfb246TUJFRFRMU19QS19DQU5fRUNEU0FfU0lHTjpNQkVEVExTX0VDUF9IQVZFX1NFQ1AyNTZSMTpNQkVEVExTX1BTQV9DUllQVE9fQwogcGtfY2FuX2RvX2V4dDoxOlBTQV9LRVlfVFlQRV9FQ0NfS0VZX1BBSVIoUFNBX0VDQ19GQU1JTFlfU0VDUF9SMSk6UFNBX0tFWV9VU0FHRV9ERVJJVkV8UFNBX0tFWV9VU0FHRV9TSUdOX0hBU0g6UFNBX0FMR19FQ0RIOlBTQV9BTEdfRUNEU0EoUFNBX0FMR19BTllfSEFTSCk6MjU2OlBTQV9BTEdfRUNEU0EoUFNBX0FMR19TSEFfMjU2KTpQU0FfS0VZX1VTQUdFX1NJR05fSEFTSDoxCiAKIFBLIGNhbiBkbyBleHQ6IEVDREgvRUNEU0EoQU5ZKSwgY2hlY2sgRUNEU0EoU0hBMjU2KStERVJJVkUKLWRlcGVuZHNfb246TUJFRFRMU19QS19DQU5fRUNEU0FfU0lHTjpNQkVEVExTX0VDUF9IQVZFX1NFQ1AyNTZSMQorZGVwZW5kc19vbjpNQkVEVExTX1BLX0NBTl9FQ0RTQV9TSUdOOk1CRURUTFNfRUNQX0hBVkVfU0VDUDI1NlIxOk1CRURUTFNfUFNBX0NSWVBUT19DCiBwa19jYW5fZG9fZXh0OjE6UFNBX0tFWV9UWVBFX0VDQ19LRVlfUEFJUihQU0FfRUNDX0ZBTUlMWV9TRUNQX1IxKTpQU0FfS0VZX1VTQUdFX0RFUklWRXxQU0FfS0VZX1VTQUdFX1NJR05fSEFTSDpQU0FfQUxHX0VDREg6UFNBX0FMR19FQ0RTQShQU0FfQUxHX0FOWV9IQVNIKToyNTY6UFNBX0FMR19FQ0RTQShQU0FfQUxHX1NIQV8yNTYpOlBTQV9LRVlfVVNBR0VfREVSSVZFOjEKIAogUEsgY2FuIGRvIGV4dDogUlNBX1BLQ1MxVjE1X1NJR04oQU5ZKS9OT05FLCBjaGVjayBub3QgYWxsb3dlZCBDT1BZIHVzYWdlCkBAIC0xOTUsMTEgKzE5NSwxMSBAQAogcGtfY2FuX2RvX2V4dDoxOlBTQV9LRVlfVFlQRV9SU0FfS0VZX1BBSVI6UFNBX0tFWV9VU0FHRV9TSUdOX0hBU0g6UFNBX0FMR19SU0FfUEtDUzFWMTVfU0lHTihQU0FfQUxHX1NIQV8yNTYpOlBTQV9BTEdfTk9ORToxMDI0OlBTQV9BTEdfUlNBX1BLQ1MxVjE1X1NJR04oUFNBX0FMR19TSEFfMjU2KTpQU0FfS0VZX1VTQUdFX1NJR05fSEFTSDoxCiAKIFBLIGNhbiBkbyBleHQ6IE5PTkUsIFJTQV9QS0NTMVYxNV9TSUdOKEFOWSksIGNoZWNrIFJTQV9QS0NTMVYxNV9TSUdOKFNIQTI1NikKLWRlcGVuZHNfb246TUJFRFRMU19SU0FfQworZGVwZW5kc19vbjpNQkVEVExTX1JTQV9DOk1CRURUTFNfUFNBX0NSWVBUT19DCiBwa19jYW5fZG9fZXh0OjE6UFNBX0tFWV9UWVBFX1JTQV9LRVlfUEFJUjpQU0FfS0VZX1VTQUdFX1NJR05fSEFTSDpQU0FfQUxHX05PTkU6UFNBX0FMR19SU0FfUEtDUzFWMTVfU0lHTihQU0FfQUxHX0FOWV9IQVNIKToxMDI0OlBTQV9BTEdfUlNBX1BLQ1MxVjE1X1NJR04oUFNBX0FMR19TSEFfMjU2KTpQU0FfS0VZX1VTQUdFX1NJR05fSEFTSDoxCiAKIFBLIGNhbiBkbyBleHQ6IE5PTkUsIFJTQV9QS0NTMVYxNV9TSUdOKFNIQTI1NiksIGNoZWNrIFJTQV9QS0NTMVYxNV9TSUdOKFNIQTI1NikKLWRlcGVuZHNfb246TUJFRFRMU19SU0FfQworZGVwZW5kc19vbjpNQkVEVExTX1JTQV9DOk1CRURUTFNfUFNBX0NSWVBUT19DCiBwa19jYW5fZG9fZXh0OjE6UFNBX0tFWV9UWVBFX1JTQV9LRVlfUEFJUjpQU0FfS0VZX1VTQUdFX1NJR05fSEFTSDpQU0FfQUxHX05PTkU6UFNBX0FMR19SU0FfUEtDUzFWMTVfU0lHTihQU0FfQUxHX1NIQV8yNTYpOjEwMjQ6UFNBX0FMR19SU0FfUEtDUzFWMTVfU0lHTihQU0FfQUxHX1NIQV8yNTYpOlBTQV9LRVlfVVNBR0VfU0lHTl9IQVNIOjEKIAogUEsgY2FuIGRvIGV4dDogUlNBX1BLQ1MxVjE1X1NJR04oU0hBMjU2KS9OT05FLCBpbnZhbGlkIGNoZWNrIFJTQV9QS0NTMVYxNV9TSUdOKEFOWSkKQEAgLTIzNSwxMSArMjM1LDExIEBACiBwa19jYW5fZG9fZXh0OjE6UFNBX0tFWV9UWVBFX1JTQV9LRVlfUEFJUjpQU0FfS0VZX1VTQUdFX1NJR05fSEFTSDpQU0FfQUxHX1JTQV9QU1MoUFNBX0FMR19TSEFfMjU2KTpQU0FfQUxHX05PTkU6MTAyNDpQU0FfQUxHX1JTQV9QU1MoUFNBX0FMR19TSEFfMjU2KTpQU0FfS0VZX1VTQUdFX1NJR05fSEFTSDoxCiAKIFBLIGNhbiBkbyBleHQ6IE5PTkUsIFJTQV9QU1MoQU5ZKSwgY2hlY2sgUlNBX1BTUyhTSEEyNTYpCi1kZXBlbmRzX29uOk1CRURUTFNfUlNBX0MKK2RlcGVuZHNfb246TUJFRFRMU19SU0FfQzpNQkVEVExTX1BTQV9DUllQVE9fQwogcGtfY2FuX2RvX2V4dDoxOlBTQV9LRVlfVFlQRV9SU0FfS0VZX1BBSVI6UFNBX0tFWV9VU0FHRV9TSUdOX0hBU0g6UFNBX0FMR19OT05FOlBTQV9BTEdfUlNBX1BTUyhQU0FfQUxHX0FOWV9IQVNIKToxMDI0OlBTQV9BTEdfUlNBX1BTUyhQU0FfQUxHX1NIQV8yNTYpOlBTQV9LRVlfVVNBR0VfU0lHTl9IQVNIOjEKIAogUEsgY2FuIGRvIGV4dDogTk9ORSwgUlNBX1BTUyhTSEEyNTYpLCBjaGVjayBSU0FfUFNTKFNIQTI1NikKLWRlcGVuZHNfb246TUJFRFRMU19SU0FfQworZGVwZW5kc19vbjpNQkVEVExTX1JTQV9DOk1CRURUTFNfUFNBX0NSWVBUT19DCiBwa19jYW5fZG9fZXh0OjE6UFNBX0tFWV9UWVBFX1JTQV9LRVlfUEFJUjpQU0FfS0VZX1VTQUdFX1NJR05fSEFTSDpQU0FfQUxHX05PTkU6UFNBX0FMR19SU0FfUFNTKFBTQV9BTEdfU0hBXzI1Nik6MTAyNDpQU0FfQUxHX1JTQV9QU1MoUFNBX0FMR19TSEFfMjU2KTpQU0FfS0VZX1VTQUdFX1NJR05fSEFTSDoxCiAKIFBLIGNhbiBkbyBleHQ6IFJTQV9QU1MoU0hBMjU2KS9OT05FLCBpbnZhbGlkIGNoZWNrIFJTQV9QU1MoQU5ZKQpAQCAtMjgzLDExICsyODMsMTEgQEAKIHBrX2Nhbl9kb19leHQ6MTpQU0FfS0VZX1RZUEVfUlNBX0tFWV9QQUlSOlBTQV9LRVlfVVNBR0VfRU5DUllQVHxQU0FfS0VZX1VTQUdFX0RFQ1JZUFQ6UFNBX0FMR19SU0FfUEtDUzFWMTVfQ1JZUFQ6UFNBX0FMR19OT05FOjEwMjQ6UFNBX0FMR19SU0FfUEtDUzFWMTVfQ1JZUFQ6UFNBX0tFWV9VU0FHRV9ERUNSWVBUOjEKIAogUEsgY2FuIGRvIGV4dDogUlNBX1BLQ1MxVjE1X0NSWVBUL1JTQV9QU1MoQU5ZKSwgY2hlY2sgUlNBX1BLQ1MxVjE1X0NSWVBUCi1kZXBlbmRzX29uOk1CRURUTFNfUlNBX0MKK2RlcGVuZHNfb246TUJFRFRMU19SU0FfQzpNQkVEVExTX1BTQV9DUllQVE9fQwogcGtfY2FuX2RvX2V4dDoxOlBTQV9LRVlfVFlQRV9SU0FfS0VZX1BBSVI6UFNBX0tFWV9VU0FHRV9FTkNSWVBUfFBTQV9LRVlfVVNBR0VfREVDUllQVHxQU0FfS0VZX1VTQUdFX1NJR05fSEFTSDpQU0FfQUxHX1JTQV9QS0NTMVYxNV9DUllQVDpQU0FfQUxHX1JTQV9QU1MoUFNBX0FMR19BTllfSEFTSCk6MTAyNDpQU0FfQUxHX1JTQV9QS0NTMVYxNV9DUllQVDpQU0FfS0VZX1VTQUdFX0RFQ1JZUFQ6MQogCiBQSyBjYW4gZG8gZXh0OiBSU0FfUEtDUzFWMTVfQ1JZUFQvUlNBX1BTUyhBTlkpLCBjaGVjayBSU0FfUFNTKFNIQTI1NikKLWRlcGVuZHNfb246TUJFRFRMU19SU0FfQworZGVwZW5kc19vbjpNQkVEVExTX1JTQV9DOk1CRURUTFNfUFNBX0NSWVBUT19DCiBwa19jYW5fZG9fZXh0OjE6UFNBX0tFWV9UWVBFX1JTQV9LRVlfUEFJUjpQU0FfS0VZX1VTQUdFX0VOQ1JZUFR8UFNBX0tFWV9VU0FHRV9ERUNSWVBUfFBTQV9LRVlfVVNBR0VfU0lHTl9IQVNIOlBTQV9BTEdfUlNBX1BLQ1MxVjE1X0NSWVBUOlBTQV9BTEdfUlNBX1BTUyhQU0FfQUxHX0FOWV9IQVNIKToxMDI0OlBTQV9BTEdfUlNBX1BTUyhQU0FfQUxHX1NIQV8yNTYpOlBTQV9LRVlfVVNBR0VfREVDUllQVDoxCiAKIFBLIGNhbiBkbyBleHQ6IFJTQV9QS0NTMVYxNV9DUllQVC9SU0FfUFNTKEFOWSksIGNoZWNrIG5vbiBhbGxvd2VkIEVOQ1JZUFQgdXNhZ2UKQEAgLTI5NSw3ICsyOTUsNyBAQAogcGtfY2FuX2RvX2V4dDoxOlBTQV9LRVlfVFlQRV9SU0FfS0VZX1BBSVI6UFNBX0tFWV9VU0FHRV9FTkNSWVBUfFBTQV9LRVlfVVNBR0VfREVDUllQVHxQU0FfS0VZX1VTQUdFX1NJR05fSEFTSDpQU0FfQUxHX1JTQV9QS0NTMVYxNV9DUllQVDpQU0FfQUxHX1JTQV9QU1MoUFNBX0FMR19BTllfSEFTSCk6MTAyNDpQU0FfQUxHX1JTQV9QU1MoUFNBX0FMR19TSEFfMjU2KTpQU0FfS0VZX1VTQUdFX0VOQ1JZUFQ6MAogCiBQSyBjYW4gZG8gZXh0OiBSU0FfUEtDUzFWMTVfU0lHTihBTlkpL1JTQV9QU1MoQU5ZKSwgY2hlY2sgUlNBX1BTUyhTSEEyNTYpCi1kZXBlbmRzX29uOk1CRURUTFNfUlNBX0MKK2RlcGVuZHNfb246TUJFRFRMU19SU0FfQzpNQkVEVExTX1BTQV9DUllQVE9fQwogcGtfY2FuX2RvX2V4dDoxOlBTQV9LRVlfVFlQRV9SU0FfS0VZX1BBSVI6UFNBX0tFWV9VU0FHRV9TSUdOX0hBU0g6UFNBX0FMR19SU0FfUEtDUzFWMTVfU0lHTihQU0FfQUxHX0FOWV9IQVNIKTpQU0FfQUxHX1JTQV9QU1MoUFNBX0FMR19BTllfSEFTSCk6MTAyNDpQU0FfQUxHX1JTQV9QU1MoUFNBX0FMR19TSEFfMjU2KTpQU0FfS0VZX1VTQUdFX1NJR05fSEFTSDoxCiAKIFBLIGNhbiBkbyBleHQ6IFJTQV9QS0NTMVYxNV9TSUdOKEFOWSkvUlNBX1BTUyhBTlkpLCBjaGVjayBSU0FfUEtDUzFWMTVfU0lHTihTSEEyNTYpCkBAIC0zNTUsMTkgKzM1NSwxOSBAQAogcGtfcnNhX3ZlcmlmeV90ZXN0X3ZlYzoiMzdiNjZhZTA0NDU4NDMzNTNkNDdlY2IwYjRmZDE0YzExMGU2MmQ2YSI6TUJFRFRMU19SU0FfUEtDU19WMTU6TUJFRFRMU19NRF9TSEExOjEwMjQ6ImEyYmE0MGVlMDdlM2IyYmQyZjAyY2UyMjdmMzZhMTk1MDI0NDg2ZTQ5YzE5Y2I0MWJiYmRmYmJhOThiMjJiMGU1NzdjMmVlYWZmYTIwZDg4M2E3NmU2NWUzOTRjNjlkNGIzYzA1YTFlOGZhZGRhMjdlZGIyYTQyYmMwMDBmZTg4OGI5YjMyYzIyZDE1YWRkMGNkNzZiM2U3OTM2ZTE5OTU1YjIyMGRkMTdkNGVhOTA0YjFlYzEwMmIyZTRkZTc3NTEyMjJhYTk5MTUxMDI0YzdjYjQxY2M1ZWEyMWQwMGVlYjQxZjdjODAwODM0ZDJjNmUwNmJjZTNiY2U3ZWE5YTUiOiIwMTAwMDEiOiI4ZGFhNjI3ZDNkZTc1OTVkNjMwNTZjN2VjNjU5ZTU0NDA2ZjEwNjEwMTI4YmFhZTgyMWM4YjJhMGYzOTM2ZDU0ZGMzYmRjZTQ2Njg5ZjZiNzk1MWJiMThlODQwNTQyNzY5NzE4ZDU3MTVkMjEwZDg1ZWZiYjU5NjE5MjAzMmM0MmJlNGMyOTk3MmM4NTYyNzVlYjZkNWE0NWYwNWY1MTg3NmZjNjc0M2RlZGRkMjhjYWVjOWJiMzBlYTk5ZTAyYzM0ODgyNjk2MDRmZTQ5N2Y3NGNjZDdjN2ZjYTE2NzE4OTcxMjNjYmQzMGRlZjVkNTRhMmI1NTM2YWQ5MGE3NDdlIjpNQkVEVExTX0VSUl9SU0FfVkVSSUZZX0ZBSUxFRAogCiBFQ0RTQSB2ZXJpZnkgdGVzdCB2ZWN0b3IgIzEgKGdvb2QpCi1kZXBlbmRzX29uOk1CRURUTFNfRUNQX0hBVkVfU0VDUDE5MlIxCitkZXBlbmRzX29uOlBTQV9XQU5UX0VDQ19TRUNQX1IxXzE5MgogcGtfZWNfdGVzdF92ZWM6TUJFRFRMU19QS19FQ0RTQTpNQkVEVExTX0VDUF9EUF9TRUNQMTkyUjE6IjA0NkZERDMwMjhGQTk0QTg2M0NENEY3OERCRkY4QjNBQTU2MUZDNkQ5Q0NCQkNBODhFMEFFNkZBNDM3RjU0MTVGOTU3NTQyRDA3MTdGRjhCODQ1NjJEQUU5OTg3MkVGODQxIjoiNTQ2ODY5NzMyMDczNjg2Rjc1NkM2NDIwNjI2NTIwNzQ2ODY1MjA2ODYxNzM2ODIwNkY2NjIwNjEyMDZENjU3MzczNjE2NzY1MkUwMCI6IjMwMzUwMjE4MTg1QjJBN0ZCNUNEOUM5QTg0ODhCMTE5QjY4QjQ3RDZFQzgzMzUwOUNFOUZBMUZGMDIxOTAwRkI3RDI1OUE3NDRBMjM0OEJENDVEMjQxQTM5REM5MTVCODFDQzIwODQxMDBGQTI0IjowCiAKIEVDRFNBIHZlcmlmeSB0ZXN0IHZlY3RvciAjMiAoYmFkKQotZGVwZW5kc19vbjpNQkVEVExTX0VDUF9IQVZFX1NFQ1AxOTJSMQorZGVwZW5kc19vbjpQU0FfV0FOVF9FQ0NfU0VDUF9SMV8xOTIKIHBrX2VjX3Rlc3RfdmVjOk1CRURUTFNfUEtfRUNEU0E6TUJFRFRMU19FQ1BfRFBfU0VDUDE5MlIxOiIwNDZGREQzMDI4RkE5NEE4NjNDRDRGNzhEQkZGOEIzQUE1NjFGQzZEOUNDQkJDQTg4RTBBRTZGQTQzN0Y1NDE1Rjk1NzU0MkQwNzE3RkY4Qjg0NTYyREFFOTk4NzJFRjg0MSI6IjU0Njg2OTczMjA3MzY4NkY3NTZDNjQyMDYyNjUyMDc0Njg2NTIwNjg2MTczNjgyMDZGNjYyMDYxMjA2RDY1NzM3MzYxNjc2NTJFMDAiOiIzMDM1MDIxODE4NUIyQTdGQjVDRDlDOUE4NDg4QjExOUI2OEI0N0Q2RUM4MzM1MDlDRTlGQTFGRjAyMTkwMEZCN0QyNTlBNzQ0QTIzNDhCRDQ1RDI0MUEzOURDOTE1QjgxQ0MyMDg0MTAwRkEyNSI6TUJFRFRMU19FUlJfRUNQX1ZFUklGWV9GQUlMRUQKIAogRUMoRFNBKSB2ZXJpZnkgdGVzdCB2ZWN0b3IgIzEgKGdvb2QpCi1kZXBlbmRzX29uOk1CRURUTFNfRUNQX0hBVkVfU0VDUDE5MlIxCitkZXBlbmRzX29uOlBTQV9XQU5UX0VDQ19TRUNQX1IxXzE5MgogcGtfZWNfdGVzdF92ZWM6TUJFRFRMU19QS19FQ0tFWTpNQkVEVExTX0VDUF9EUF9TRUNQMTkyUjE6IjA0NkZERDMwMjhGQTk0QTg2M0NENEY3OERCRkY4QjNBQTU2MUZDNkQ5Q0NCQkNBODhFMEFFNkZBNDM3RjU0MTVGOTU3NTQyRDA3MTdGRjhCODQ1NjJEQUU5OTg3MkVGODQxIjoiNTQ2ODY5NzMyMDczNjg2Rjc1NkM2NDIwNjI2NTIwNzQ2ODY1MjA2ODYxNzM2ODIwNkY2NjIwNjEyMDZENjU3MzczNjE2NzY1MkUwMCI6IjMwMzUwMjE4MTg1QjJBN0ZCNUNEOUM5QTg0ODhCMTE5QjY4QjQ3RDZFQzgzMzUwOUNFOUZBMUZGMDIxOTAwRkI3RDI1OUE3NDRBMjM0OEJENDVEMjQxQTM5REM5MTVCODFDQzIwODQxMDBGQTI0IjowCiAKIEVDKERTQSkgdmVyaWZ5IHRlc3QgdmVjdG9yICMyIChiYWQpCi1kZXBlbmRzX29uOk1CRURUTFNfRUNQX0hBVkVfU0VDUDE5MlIxCitkZXBlbmRzX29uOlBTQV9XQU5UX0VDQ19TRUNQX1IxXzE5MgogcGtfZWNfdGVzdF92ZWM6TUJFRFRMU19QS19FQ0tFWTpNQkVEVExTX0VDUF9EUF9TRUNQMTkyUjE6IjA0NkZERDMwMjhGQTk0QTg2M0NENEY3OERCRkY4QjNBQTU2MUZDNkQ5Q0NCQkNBODhFMEFFNkZBNDM3RjU0MTVGOTU3NTQyRDA3MTdGRjhCODQ1NjJEQUU5OTg3MkVGODQxIjoiNTQ2ODY5NzMyMDczNjg2Rjc1NkM2NDIwNjI2NTIwNzQ2ODY1MjA2ODYxNzM2ODIwNkY2NjIwNjEyMDZENjU3MzczNjE2NzY1MkUwMCI6IjMwMzUwMjE4MTg1QjJBN0ZCNUNEOUM5QTg0ODhCMTE5QjY4QjQ3RDZFQzgzMzUwOUNFOUZBMUZGMDIxOTAwRkI3RDI1OUE3NDRBMjM0OEJENDVEMjQxQTM5REM5MTVCODFDQzIwODQxMDBGQTI1IjpNQkVEVExTX0VSUl9FQ1BfVkVSSUZZX0ZBSUxFRAogCiBFQyhEU0EpIHZlcmlmeSB0ZXN0IHZlY3RvcjogZ29vZCwgYml0bGVuKHIpID0gMjU2CkBAIC00MDMsNyArNDAzLDcgQEAKIHBrX2VjX3Rlc3RfdmVjOk1CRURUTFNfUEtfRUNLRVk6TUJFRFRMU19FQ1BfRFBfU0VDUDI1NlIxOiIwNDM3Y2M1NmQ5NzYwOTFlNWE3MjNlYzc1OTJkZmYyMDZlZWU3Y2Y5MDY5MTc0ZDBhZDE0YjVmNzY4MjI1OTYyOTI0ZWU1MDBkODIzMTFmZmVhMmZkMjM0NWQ1ZDE2YmQ4YTg4YzI2Yjc3MGQ1NWNkOGEyYTBlZmEwMWM4YjRlZGZmIjoiZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NSI6IjMwNDMwMjIwNjg1YTY5OTRkYWE2YTE0ZTQ0MTFiNTI2N2VkYzJhMDBiZWVlOTA3ZjJkZGRkOTU2YjJhNWExZGY3OTFjMTVmODAyMWY2NzVkYjQ1MzhjMDAwYzczNDQ4OWFjNzM3ZmRkZDVhNzM5YzVhMjNjZDZjNmVjZWVhNzBjMjg2Y2E0ZmFjOSI6MAogCiBFQ0RTQSBzaWduLXZlcmlmeTogU0VDUDE5MlIxCi1kZXBlbmRzX29uOk1CRURUTFNfUEtfQ0FOX0VDRFNBX1ZFUklGWTpNQkVEVExTX1BLX0NBTl9FQ0RTQV9TSUdOOk1CRURUTFNfRUNQX0hBVkVfU0VDUDE5MlIxCitkZXBlbmRzX29uOk1CRURUTFNfUEtfQ0FOX0VDRFNBX1ZFUklGWTpNQkVEVExTX1BLX0NBTl9FQ0RTQV9TSUdOOlBTQV9XQU5UX0VDQ19TRUNQX1IxXzE5MgogcGtfc2lnbl92ZXJpZnk6TUJFRFRMU19QS19FQ0RTQTpNQkVEVExTX0VDUF9EUF9TRUNQMTkyUjE6MDowOjA6MAogCiBFQ0RTQSBzaWduLXZlcmlmeTogU0VDUDI1NlIxCkBAIC00MTksMTkgKzQxOSwxOSBAQAogcGtfc2lnbl92ZXJpZnk6TUJFRFRMU19QS19FQ0RTQTpNQkVEVExTX0VDUF9EUF9TRUNQNTIxUjE6MDowOjA6MAogCiBFQ0RTQSBzaWduLXZlcmlmeTogQlAyNTZSMQotZGVwZW5kc19vbjpNQkVEVExTX1BLX0NBTl9FQ0RTQV9WRVJJRlk6TUJFRFRMU19FQ1BfSEFWRV9CUDI1NlIxCitkZXBlbmRzX29uOk1CRURUTFNfUEtfQ0FOX0VDRFNBX1ZFUklGWTpQU0FfV0FOVF9FQ0NfQlJBSU5QT09MX1BfUjFfMjU2CiBwa19zaWduX3ZlcmlmeTpNQkVEVExTX1BLX0VDRFNBOk1CRURUTFNfRUNQX0RQX0JQMjU2UjE6MDowOjA6MAogCiBFQ0RTQSBzaWduLXZlcmlmeTogQlA1MTJSMQotZGVwZW5kc19vbjpNQkVEVExTX1BLX0NBTl9FQ0RTQV9WRVJJRlk6TUJFRFRMU19FQ1BfSEFWRV9CUDUxMlIxCitkZXBlbmRzX29uOk1CRURUTFNfUEtfQ0FOX0VDRFNBX1ZFUklGWTpQU0FfV0FOVF9FQ0NfQlJBSU5QT09MX1BfUjFfNTEyCiBwa19zaWduX3ZlcmlmeTpNQkVEVExTX1BLX0VDRFNBOk1CRURUTFNfRUNQX0RQX0JQNTEyUjE6MDowOjA6MAogCiBFQyhEU0EpIHNpZ24tdmVyaWZ5OiBTRUNQMTkyUjEKLWRlcGVuZHNfb246TUJFRFRMU19QS19DQU5fRUNEU0FfVkVSSUZZOk1CRURUTFNfUEtfQ0FOX0VDRFNBX1NJR046TUJFRFRMU19FQ1BfSEFWRV9TRUNQMTkyUjEKK2RlcGVuZHNfb246TUJFRFRMU19QS19DQU5fRUNEU0FfVkVSSUZZOk1CRURUTFNfUEtfQ0FOX0VDRFNBX1NJR046UFNBX1dBTlRfRUNDX1NFQ1BfUjFfMTkyCiBwa19zaWduX3ZlcmlmeTpNQkVEVExTX1BLX0VDS0VZOk1CRURUTFNfRUNQX0RQX1NFQ1AxOTJSMTowOjA6MDowCiAKIEVDX0RIIChubykgc2lnbi12ZXJpZnk6IFNFQ1AxOTJSMQotZGVwZW5kc19vbjpNQkVEVExTX1BLX0hBVkVfRUNDX0tFWVM6TUJFRFRMU19FQ1BfSEFWRV9TRUNQMTkyUjEKK2RlcGVuZHNfb246TUJFRFRMU19QS19IQVZFX0VDQ19LRVlTOlBTQV9XQU5UX0VDQ19TRUNQX1IxXzE5MgogcGtfc2lnbl92ZXJpZnk6TUJFRFRMU19QS19FQ0tFWV9ESDpNQkVEVExTX0VDUF9EUF9TRUNQMTkyUjE6MDowOk1CRURUTFNfRVJSX1BLX1RZUEVfTUlTTUFUQ0g6TUJFRFRMU19FUlJfUEtfVFlQRV9NSVNNQVRDSAogCiBSU0Egc2lnbi12ZXJpZnksIFBLQ1MxdjEuNSwgU0hBMQpAQCAtNDQzLDExICs0NDMsMTEgQEAKIHBrX3NpZ25fdmVyaWZ5Ok1CRURUTFNfUEtfUlNBOlJTQV9LRVlfU0laRTpNQkVEVExTX1JTQV9QS0NTX1YyMTpNQkVEVExTX01EX1NIQTE6MDowCiAKIFJTQSBzaWduLXZlcmlmeSwgUEtDUzF2MS41LCBTSEEyNTYKLWRlcGVuZHNfb246TUJFRFRMU19SU0FfQzpNQkVEVExTX1BLQ1MxX1YxNTpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246TUJFRFRMU19SU0FfQzpNQkVEVExTX1BLQ1MxX1YxNTpQU0FfV0FOVF9BTEdfU0hBXzI1NgogcGtfc2lnbl92ZXJpZnk6TUJFRFRMU19QS19SU0E6UlNBX0tFWV9TSVpFOk1CRURUTFNfUlNBX1BLQ1NfVjE1Ok1CRURUTFNfTURfU0hBMjU2OjA6MAogCiBSU0Egc2lnbi12ZXJpZnksIFBLQ1MxdjIuMSwgU0hBMjU2Ci1kZXBlbmRzX29uOk1CRURUTFNfUlNBX0M6TUJFRFRMU19QS0NTMV9WMjE6TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOk1CRURUTFNfUlNBX0M6TUJFRFRMU19QS0NTMV9WMjE6UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHBrX3NpZ25fdmVyaWZ5Ok1CRURUTFNfUEtfUlNBOlJTQV9LRVlfU0laRTpNQkVEVExTX1JTQV9QS0NTX1YyMTpNQkVEVExTX01EX1NIQTI1NjowOjAKIAogUlNBIGVuY3J5cHQtZGVjcnlwdCB0ZXN0IFBLQ1MxIHYxLjUKQEAgLTUxMSw1MSArNTExLDUxIEBACiBwa19yc2FfYWx0OgogCiBWZXJpZnkgZXh0IFJTQSAjMSAoUEtDUzEgdjIuMSwgc2FsdF9sZW4gPSBBTlksIE9LKQotZGVwZW5kc19vbjpNQkVEVExTX1BLQ1MxX1YyMTpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246TUJFRFRMU19QS0NTMV9WMjE6UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHBrX3JzYV92ZXJpZnlfZXh0X3Rlc3RfdmVjOiJjMDcxOWU5YThkNWQ4MzhkODYxZGM2ZjY3NWM4OTlkMmIzMDlhM2E2NWJiOWZlNmIxMWU1YWZjYmY5YTJjMGIxIjpNQkVEVExTX01EX1NIQTI1NjoxMDI0OiIwMGRkMTE4YTlmOTliYWIwNjhjYTJhZWEzYjZhNmQ1OTk3ZWQ0ZWM5NTRlNDBkZWVjZWEwN2RhMDFlYWFlODBlYzJiYjEzNDBkYjhhMTI4ZTg5MTMyNGE1YzVmNWZhZDhmNTkwZDdjOGNhY2JjNWZlOTMxZGFmZGExMjIzNzM1Mjc5NDYxYWJhYTA1NzJiNzYxNjMxYjNhOGFmZTczODliMDg4YjYzOTkzYTBhMjVlZTQ1ZDIxODU4YmFiOTkzMWFlZGQ0NTg5YTYzMWIzN2ZjZjcxNDA4OWY4NTY1NDlmMzU5MzI2ZGQxZTBlODZkZGU1MmVkNjZiNGE5MGJkYTQwOTUiOiIwMTAwMDEiOiIwZDJiZGIwNDU2YTNkNjUxZDViZDQ4YTQyMDQ0OTM4OThmNzJjZjFhYWRkZDcxMzg3Y2MwNThiYzNmNGMyMzVlYTZiZTQwMTBmZDYxYjI4ZTFmYmIyNzU0NjJiNTM3NzVjMDRiZTkwMjJkMzhiNmEyZTAzODdkZGRiYTg2YTNmODU1NGQyODU4MDQ0YTU5ZmRkYmQ1OTQ3NTNmYzA1NmZlMzNjOGRhZGRiODVkYzcwZDE2NDY5MGIxMTgyMjA5ZmY4NDgyNGUwYmUxMGUzNWMzNzlmMmYzNzhiZjE3NmE5ZjdjYjk0ZDk1ZTQ0ZDkwMjc2YTI5OGM4ODEwZjc0MWM5IjpNQkVEVExTX1BLX1JTQVNTQV9QU1M6TUJFRFRMU19NRF9TSEEyNTY6TUJFRFRMU19SU0FfU0FMVF9MRU5fQU5ZOjEyODowCiAKIFZlcmlmeSBleHQgUlNBICMyIChQS0NTMSB2Mi4xLCBzYWx0X2xlbiA9IEFOWSwgd3JvbmcgbWVzc2FnZSkKLWRlcGVuZHNfb246TUJFRFRMU19QS0NTMV9WMjE6TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOk1CRURUTFNfUEtDUzFfVjIxOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBwa19yc2FfdmVyaWZ5X2V4dF90ZXN0X3ZlYzoiYWU2ZTQzZGQzODdjMjU3NDFlNDJmYzM1NzBjZGZjNTJlNGY1MWEyMzQzMjk0ZjNiNjc3ZGZlMDFjZDUzMzlmNiI6TUJFRFRMU19NRF9TSEEyNTY6MTAyNDoiMDBkZDExOGE5Zjk5YmFiMDY4Y2EyYWVhM2I2YTZkNTk5N2VkNGVjOTU0ZTQwZGVlY2VhMDdkYTAxZWFhZTgwZWMyYmIxMzQwZGI4YTEyOGU4OTEzMjRhNWM1ZjVmYWQ4ZjU5MGQ3YzhjYWNiYzVmZTkzMWRhZmRhMTIyMzczNTI3OTQ2MWFiYWEwNTcyYjc2MTYzMWIzYThhZmU3Mzg5YjA4OGI2Mzk5M2EwYTI1ZWU0NWQyMTg1OGJhYjk5MzFhZWRkNDU4OWE2MzFiMzdmY2Y3MTQwODlmODU2NTQ5ZjM1OTMyNmRkMWUwZTg2ZGRlNTJlZDY2YjRhOTBiZGE0MDk1IjoiMDEwMDAxIjoiMGQyYmRiMDQ1NmEzZDY1MWQ1YmQ0OGE0MjA0NDkzODk4ZjcyY2YxYWFkZGQ3MTM4N2NjMDU4YmMzZjRjMjM1ZWE2YmU0MDEwZmQ2MWIyOGUxZmJiMjc1NDYyYjUzNzc1YzA0YmU5MDIyZDM4YjZhMmUwMzg3ZGRkYmE4NmEzZjg1NTRkMjg1ODA0NGE1OWZkZGJkNTk0NzUzZmMwNTZmZTMzYzhkYWRkYjg1ZGM3MGQxNjQ2OTBiMTE4MjIwOWZmODQ4MjRlMGJlMTBlMzVjMzc5ZjJmMzc4YmYxNzZhOWY3Y2I5NGQ5NWU0NGQ5MDI3NmEyOThjODgxMGY3NDFjOSI6TUJFRFRMU19QS19SU0FTU0FfUFNTOk1CRURUTFNfTURfU0hBMjU2Ok1CRURUTFNfUlNBX1NBTFRfTEVOX0FOWToxMjg6TUJFRFRMU19FUlJfUlNBX1ZFUklGWV9GQUlMRUQKIAogVmVyaWZ5IGV4dCBSU0EgIzMgKFBLQ1MxIHYyLjEsIHNhbHRfbGVuID0gMCwgT0spCi1kZXBlbmRzX29uOk1CRURUTFNfUEtDUzFfVjIxOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpNQkVEVExTX1BLQ1MxX1YyMTpQU0FfV0FOVF9BTEdfU0hBXzI1NgogcGtfcnNhX3ZlcmlmeV9leHRfdGVzdF92ZWM6ImMwNzE5ZTlhOGQ1ZDgzOGQ4NjFkYzZmNjc1Yzg5OWQyYjMwOWEzYTY1YmI5ZmU2YjExZTVhZmNiZjlhMmMwYjEiOk1CRURUTFNfTURfU0hBMjU2OjEwMjQ6IjAwZGQxMThhOWY5OWJhYjA2OGNhMmFlYTNiNmE2ZDU5OTdlZDRlYzk1NGU0MGRlZWNlYTA3ZGEwMWVhYWU4MGVjMmJiMTM0MGRiOGExMjhlODkxMzI0YTVjNWY1ZmFkOGY1OTBkN2M4Y2FjYmM1ZmU5MzFkYWZkYTEyMjM3MzUyNzk0NjFhYmFhMDU3MmI3NjE2MzFiM2E4YWZlNzM4OWIwODhiNjM5OTNhMGEyNWVlNDVkMjE4NThiYWI5OTMxYWVkZDQ1ODlhNjMxYjM3ZmNmNzE0MDg5Zjg1NjU0OWYzNTkzMjZkZDFlMGU4NmRkZTUyZWQ2NmI0YTkwYmRhNDA5NSI6IjAxMDAwMSI6IjdmYzUwNmQyNmNhM2IyMjkyMmExY2UzOWZhYWVkZDI3MzE2MWI4MmQ5NDQzYzU2ZjFhMDM0ZjEzMWFlNGExOGNhZTE0NzQyNzFjYjRiNjZhMTdkOTcwN2NhNThiMGJkYmQzYzQwNmI3ZTY1YmJjYzliYmJjZTk0ZGM0NWRlODA3YjQ5ODliMjNiM2U0ZGI3NGNhMjkyOTgxMzc4MzdlYjkwY2M4M2QzMjE5MjQ5YmM3ZDQ4MGZjZWFmMDc1MjAzYTg2ZTU0YzRlY2ZhNGUzMTJlMzlmOGY2OWQ3NjUzNDA4OWEzNmVkOTA0OWNhOWNmZDVhYjFkYjFmYTc1ZmU1YzgiOk1CRURUTFNfUEtfUlNBU1NBX1BTUzpNQkVEVExTX01EX1NIQTI1NjowOjEyODowCiAKIFZlcmlmeSBleHQgUlNBICM0IChQS0NTMSB2Mi4xLCBzYWx0X2xlbiA9IG1heCwgT0spCi1kZXBlbmRzX29uOk1CRURUTFNfUEtDUzFfVjIxOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpNQkVEVExTX1BLQ1MxX1YyMTpQU0FfV0FOVF9BTEdfU0hBXzI1NgogcGtfcnNhX3ZlcmlmeV9leHRfdGVzdF92ZWM6ImMwNzE5ZTlhOGQ1ZDgzOGQ4NjFkYzZmNjc1Yzg5OWQyYjMwOWEzYTY1YmI5ZmU2YjExZTVhZmNiZjlhMmMwYjEiOk1CRURUTFNfTURfU0hBMjU2OjEwMjQ6IjAwZGQxMThhOWY5OWJhYjA2OGNhMmFlYTNiNmE2ZDU5OTdlZDRlYzk1NGU0MGRlZWNlYTA3ZGEwMWVhYWU4MGVjMmJiMTM0MGRiOGExMjhlODkxMzI0YTVjNWY1ZmFkOGY1OTBkN2M4Y2FjYmM1ZmU5MzFkYWZkYTEyMjM3MzUyNzk0NjFhYmFhMDU3MmI3NjE2MzFiM2E4YWZlNzM4OWIwODhiNjM5OTNhMGEyNWVlNDVkMjE4NThiYWI5OTMxYWVkZDQ1ODlhNjMxYjM3ZmNmNzE0MDg5Zjg1NjU0OWYzNTkzMjZkZDFlMGU4NmRkZTUyZWQ2NmI0YTkwYmRhNDA5NSI6IjAxMDAwMSI6IjBkMmJkYjA0NTZhM2Q2NTFkNWJkNDhhNDIwNDQ5Mzg5OGY3MmNmMWFhZGRkNzEzODdjYzA1OGJjM2Y0YzIzNWVhNmJlNDAxMGZkNjFiMjhlMWZiYjI3NTQ2MmI1Mzc3NWMwNGJlOTAyMmQzOGI2YTJlMDM4N2RkZGJhODZhM2Y4NTU0ZDI4NTgwNDRhNTlmZGRiZDU5NDc1M2ZjMDU2ZmUzM2M4ZGFkZGI4NWRjNzBkMTY0NjkwYjExODIyMDlmZjg0ODI0ZTBiZTEwZTM1YzM3OWYyZjM3OGJmMTc2YTlmN2NiOTRkOTVlNDRkOTAyNzZhMjk4Yzg4MTBmNzQxYzkiOk1CRURUTFNfUEtfUlNBU1NBX1BTUzpNQkVEVExTX01EX1NIQTI1Njo5NDoxMjg6MAogCiBWZXJpZnkgZXh0IFJTQSAjNWEgKFBLQ1MxIHYyLjEsIHdyb25nIHNhbHRfbGVuKSAhVVNFX1BTQQotZGVwZW5kc19vbjpNQkVEVExTX1BLQ1MxX1YyMTpNQkVEVExTX01EX0NBTl9TSEEyNTY6IU1CRURUTFNfVVNFX1BTQV9DUllQVE8KK2RlcGVuZHNfb246TUJFRFRMU19QS0NTMV9WMjE6UFNBX1dBTlRfQUxHX1NIQV8yNTY6IU1CRURUTFNfVVNFX1BTQV9DUllQVE8KIHBrX3JzYV92ZXJpZnlfZXh0X3Rlc3RfdmVjOiJjMDcxOWU5YThkNWQ4MzhkODYxZGM2ZjY3NWM4OTlkMmIzMDlhM2E2NWJiOWZlNmIxMWU1YWZjYmY5YTJjMGIxIjpNQkVEVExTX01EX1NIQTI1NjoxMDI0OiIwMGRkMTE4YTlmOTliYWIwNjhjYTJhZWEzYjZhNmQ1OTk3ZWQ0ZWM5NTRlNDBkZWVjZWEwN2RhMDFlYWFlODBlYzJiYjEzNDBkYjhhMTI4ZTg5MTMyNGE1YzVmNWZhZDhmNTkwZDdjOGNhY2JjNWZlOTMxZGFmZGExMjIzNzM1Mjc5NDYxYWJhYTA1NzJiNzYxNjMxYjNhOGFmZTczODliMDg4YjYzOTkzYTBhMjVlZTQ1ZDIxODU4YmFiOTkzMWFlZGQ0NTg5YTYzMWIzN2ZjZjcxNDA4OWY4NTY1NDlmMzU5MzI2ZGQxZTBlODZkZGU1MmVkNjZiNGE5MGJkYTQwOTUiOiIwMTAwMDEiOiIwZDJiZGIwNDU2YTNkNjUxZDViZDQ4YTQyMDQ0OTM4OThmNzJjZjFhYWRkZDcxMzg3Y2MwNThiYzNmNGMyMzVlYTZiZTQwMTBmZDYxYjI4ZTFmYmIyNzU0NjJiNTM3NzVjMDRiZTkwMjJkMzhiNmEyZTAzODdkZGRiYTg2YTNmODU1NGQyODU4MDQ0YTU5ZmRkYmQ1OTQ3NTNmYzA1NmZlMzNjOGRhZGRiODVkYzcwZDE2NDY5MGIxMTgyMjA5ZmY4NDgyNGUwYmUxMGUzNWMzNzlmMmYzNzhiZjE3NmE5ZjdjYjk0ZDk1ZTQ0ZDkwMjc2YTI5OGM4ODEwZjc0MWM5IjpNQkVEVExTX1BLX1JTQVNTQV9QU1M6TUJFRFRMU19NRF9TSEEyNTY6MzI6MTI4Ok1CRURUTFNfRVJSX1JTQV9JTlZBTElEX1BBRERJTkcKIAogVmVyaWZ5IGV4dCBSU0EgIzViIChQS0NTMSB2Mi4xLCB3cm9uZyBzYWx0X2xlbikgVVNFX1BTQQotZGVwZW5kc19vbjpNQkVEVExTX1BLQ1MxX1YyMTpNQkVEVExTX01EX0NBTl9TSEEyNTY6TUJFRFRMU19VU0VfUFNBX0NSWVBUTworZGVwZW5kc19vbjpNQkVEVExTX1BLQ1MxX1YyMTpQU0FfV0FOVF9BTEdfU0hBXzI1NjpNQkVEVExTX1VTRV9QU0FfQ1JZUFRPCiBwa19yc2FfdmVyaWZ5X2V4dF90ZXN0X3ZlYzoiYzA3MTllOWE4ZDVkODM4ZDg2MWRjNmY2NzVjODk5ZDJiMzA5YTNhNjViYjlmZTZiMTFlNWFmY2JmOWEyYzBiMSI6TUJFRFRMU19NRF9TSEEyNTY6MTAyNDoiMDBkZDExOGE5Zjk5YmFiMDY4Y2EyYWVhM2I2YTZkNTk5N2VkNGVjOTU0ZTQwZGVlY2VhMDdkYTAxZWFhZTgwZWMyYmIxMzQwZGI4YTEyOGU4OTEzMjRhNWM1ZjVmYWQ4ZjU5MGQ3YzhjYWNiYzVmZTkzMWRhZmRhMTIyMzczNTI3OTQ2MWFiYWEwNTcyYjc2MTYzMWIzYThhZmU3Mzg5YjA4OGI2Mzk5M2EwYTI1ZWU0NWQyMTg1OGJhYjk5MzFhZWRkNDU4OWE2MzFiMzdmY2Y3MTQwODlmODU2NTQ5ZjM1OTMyNmRkMWUwZTg2ZGRlNTJlZDY2YjRhOTBiZGE0MDk1IjoiMDEwMDAxIjoiMGQyYmRiMDQ1NmEzZDY1MWQ1YmQ0OGE0MjA0NDkzODk4ZjcyY2YxYWFkZGQ3MTM4N2NjMDU4YmMzZjRjMjM1ZWE2YmU0MDEwZmQ2MWIyOGUxZmJiMjc1NDYyYjUzNzc1YzA0YmU5MDIyZDM4YjZhMmUwMzg3ZGRkYmE4NmEzZjg1NTRkMjg1ODA0NGE1OWZkZGJkNTk0NzUzZmMwNTZmZTMzYzhkYWRkYjg1ZGM3MGQxNjQ2OTBiMTE4MjIwOWZmODQ4MjRlMGJlMTBlMzVjMzc5ZjJmMzc4YmYxNzZhOWY3Y2I5NGQ5NWU0NGQ5MDI3NmEyOThjODgxMGY3NDFjOSI6TUJFRFRMU19QS19SU0FTU0FfUFNTOk1CRURUTFNfTURfU0hBMjU2OjMyOjEyODowCiAKIFZlcmlmeSBleHQgUlNBICM2IChQS0NTMSB2Mi4xLCBNR0YxIGFsZyAhPSBNU0cgaGFzaCBhbGcpCi1kZXBlbmRzX29uOk1CRURUTFNfUEtDUzFfVjIxOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpNQkVEVExTX1BLQ1MxX1YyMTpQU0FfV0FOVF9BTEdfU0hBXzI1NgogcGtfcnNhX3ZlcmlmeV9leHRfdGVzdF92ZWM6ImMwNzE5ZTlhOGQ1ZDgzOGQ4NjFkYzZmNjc1Yzg5OWQyYjMwOWEzYTY1YmI5ZmU2YjExZTVhZmNiZjlhMmMwYjEiOk1CRURUTFNfTURfTk9ORToxMDI0OiIwMGRkMTE4YTlmOTliYWIwNjhjYTJhZWEzYjZhNmQ1OTk3ZWQ0ZWM5NTRlNDBkZWVjZWEwN2RhMDFlYWFlODBlYzJiYjEzNDBkYjhhMTI4ZTg5MTMyNGE1YzVmNWZhZDhmNTkwZDdjOGNhY2JjNWZlOTMxZGFmZGExMjIzNzM1Mjc5NDYxYWJhYTA1NzJiNzYxNjMxYjNhOGFmZTczODliMDg4YjYzOTkzYTBhMjVlZTQ1ZDIxODU4YmFiOTkzMWFlZGQ0NTg5YTYzMWIzN2ZjZjcxNDA4OWY4NTY1NDlmMzU5MzI2ZGQxZTBlODZkZGU1MmVkNjZiNGE5MGJkYTQwOTUiOiIwMTAwMDEiOiIwZDJiZGIwNDU2YTNkNjUxZDViZDQ4YTQyMDQ0OTM4OThmNzJjZjFhYWRkZDcxMzg3Y2MwNThiYzNmNGMyMzVlYTZiZTQwMTBmZDYxYjI4ZTFmYmIyNzU0NjJiNTM3NzVjMDRiZTkwMjJkMzhiNmEyZTAzODdkZGRiYTg2YTNmODU1NGQyODU4MDQ0YTU5ZmRkYmQ1OTQ3NTNmYzA1NmZlMzNjOGRhZGRiODVkYzcwZDE2NDY5MGIxMTgyMjA5ZmY4NDgyNGUwYmUxMGUzNWMzNzlmMmYzNzhiZjE3NmE5ZjdjYjk0ZDk1ZTQ0ZDkwMjc2YTI5OGM4ODEwZjc0MWM5IjpNQkVEVExTX1BLX1JTQVNTQV9QU1M6TUJFRFRMU19NRF9TSEEyNTY6TUJFRFRMU19SU0FfU0FMVF9MRU5fQU5ZOjEyODowCiAKIFZlcmlmeSBleHQgUlNBICM3IChQS0NTMSB2Mi4xLCB3cm9uZyBNR0YxIGFsZyAhPSBNU0cgaGFzaCBhbGcpCi1kZXBlbmRzX29uOk1CRURUTFNfUEtDUzFfVjIxOk1CRURUTFNfTURfQ0FOX1NIQTI1NjpNQkVEVExTX01EX0NBTl9TSEExCitkZXBlbmRzX29uOk1CRURUTFNfUEtDUzFfVjIxOlBTQV9XQU5UX0FMR19TSEFfMjU2Ok1CRURUTFNfTURfQ0FOX1NIQTEKIHBrX3JzYV92ZXJpZnlfZXh0X3Rlc3RfdmVjOiJjMDcxOWU5YThkNWQ4MzhkODYxZGM2ZjY3NWM4OTlkMmIzMDlhM2E2NWJiOWZlNmIxMWU1YWZjYmY5YTJjMGIxIjpNQkVEVExTX01EX05PTkU6MTAyNDoiMDBkZDExOGE5Zjk5YmFiMDY4Y2EyYWVhM2I2YTZkNTk5N2VkNGVjOTU0ZTQwZGVlY2VhMDdkYTAxZWFhZTgwZWMyYmIxMzQwZGI4YTEyOGU4OTEzMjRhNWM1ZjVmYWQ4ZjU5MGQ3YzhjYWNiYzVmZTkzMWRhZmRhMTIyMzczNTI3OTQ2MWFiYWEwNTcyYjc2MTYzMWIzYThhZmU3Mzg5YjA4OGI2Mzk5M2EwYTI1ZWU0NWQyMTg1OGJhYjk5MzFhZWRkNDU4OWE2MzFiMzdmY2Y3MTQwODlmODU2NTQ5ZjM1OTMyNmRkMWUwZTg2ZGRlNTJlZDY2YjRhOTBiZGE0MDk1IjoiMDEwMDAxIjoiMGQyYmRiMDQ1NmEzZDY1MWQ1YmQ0OGE0MjA0NDkzODk4ZjcyY2YxYWFkZGQ3MTM4N2NjMDU4YmMzZjRjMjM1ZWE2YmU0MDEwZmQ2MWIyOGUxZmJiMjc1NDYyYjUzNzc1YzA0YmU5MDIyZDM4YjZhMmUwMzg3ZGRkYmE4NmEzZjg1NTRkMjg1ODA0NGE1OWZkZGJkNTk0NzUzZmMwNTZmZTMzYzhkYWRkYjg1ZGM3MGQxNjQ2OTBiMTE4MjIwOWZmODQ4MjRlMGJlMTBlMzVjMzc5ZjJmMzc4YmYxNzZhOWY3Y2I5NGQ5NWU0NGQ5MDI3NmEyOThjODgxMGY3NDFjOSI6TUJFRFRMU19QS19SU0FTU0FfUFNTOk1CRURUTFNfTURfU0hBMTpNQkVEVExTX1JTQV9TQUxUX0xFTl9BTlk6MTI4Ok1CRURUTFNfRVJSX1JTQV9JTlZBTElEX1BBRERJTkcKIAogVmVyaWZ5IGV4dCBSU0EgIzggKFBLQ1MxIHYyLjEsIFJTQVNTQS1QU1Mgd2l0aG91dCBvcHRpb25zKQotZGVwZW5kc19vbjpNQkVEVExTX1BLQ1MxX1YyMTpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246TUJFRFRMU19QS0NTMV9WMjE6UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHBrX3JzYV92ZXJpZnlfZXh0X3Rlc3RfdmVjOiJjMDcxOWU5YThkNWQ4MzhkODYxZGM2ZjY3NWM4OTlkMmIzMDlhM2E2NWJiOWZlNmIxMWU1YWZjYmY5YTJjMGIxIjpNQkVEVExTX01EX1NIQTI1NjoxMDI0OiIwMGRkMTE4YTlmOTliYWIwNjhjYTJhZWEzYjZhNmQ1OTk3ZWQ0ZWM5NTRlNDBkZWVjZWEwN2RhMDFlYWFlODBlYzJiYjEzNDBkYjhhMTI4ZTg5MTMyNGE1YzVmNWZhZDhmNTkwZDdjOGNhY2JjNWZlOTMxZGFmZGExMjIzNzM1Mjc5NDYxYWJhYTA1NzJiNzYxNjMxYjNhOGFmZTczODliMDg4YjYzOTkzYTBhMjVlZTQ1ZDIxODU4YmFiOTkzMWFlZGQ0NTg5YTYzMWIzN2ZjZjcxNDA4OWY4NTY1NDlmMzU5MzI2ZGQxZTBlODZkZGU1MmVkNjZiNGE5MGJkYTQwOTUiOiIwMTAwMDEiOiIwZDJiZGIwNDU2YTNkNjUxZDViZDQ4YTQyMDQ0OTM4OThmNzJjZjFhYWRkZDcxMzg3Y2MwNThiYzNmNGMyMzVlYTZiZTQwMTBmZDYxYjI4ZTFmYmIyNzU0NjJiNTM3NzVjMDRiZTkwMjJkMzhiNmEyZTAzODdkZGRiYTg2YTNmODU1NGQyODU4MDQ0YTU5ZmRkYmQ1OTQ3NTNmYzA1NmZlMzNjOGRhZGRiODVkYzcwZDE2NDY5MGIxMTgyMjA5ZmY4NDgyNGUwYmUxMGUzNWMzNzlmMmYzNzhiZjE3NmE5ZjdjYjk0ZDk1ZTQ0ZDkwMjc2YTI5OGM4ODEwZjc0MWM5IjpNQkVEVExTX1BLX1JTQVNTQV9QU1M6LTE6TUJFRFRMU19SU0FfU0FMVF9MRU5fQU5ZOjEyODpNQkVEVExTX0VSUl9QS19CQURfSU5QVVRfREFUQQogCiBWZXJpZnkgZXh0IFJTQSAjOSAoUEtDUzEgdjEuNSwgUlNBIHdpdGggb3B0aW9ucykKLWRlcGVuZHNfb246TUJFRFRMU19QS0NTMV9WMTU6TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOk1CRURUTFNfUEtDUzFfVjE1OlBTQV9XQU5UX0FMR19TSEFfMjU2CiBwa19yc2FfdmVyaWZ5X2V4dF90ZXN0X3ZlYzoiYzA3MTllOWE4ZDVkODM4ZDg2MWRjNmY2NzVjODk5ZDJiMzA5YTNhNjViYjlmZTZiMTFlNWFmY2JmOWEyYzBiMSI6TUJFRFRMU19NRF9TSEEyNTY6MTAyNDoiMDBkZDExOGE5Zjk5YmFiMDY4Y2EyYWVhM2I2YTZkNTk5N2VkNGVjOTU0ZTQwZGVlY2VhMDdkYTAxZWFhZTgwZWMyYmIxMzQwZGI4YTEyOGU4OTEzMjRhNWM1ZjVmYWQ4ZjU5MGQ3YzhjYWNiYzVmZTkzMWRhZmRhMTIyMzczNTI3OTQ2MWFiYWEwNTcyYjc2MTYzMWIzYThhZmU3Mzg5YjA4OGI2Mzk5M2EwYTI1ZWU0NWQyMTg1OGJhYjk5MzFhZWRkNDU4OWE2MzFiMzdmY2Y3MTQwODlmODU2NTQ5ZjM1OTMyNmRkMWUwZTg2ZGRlNTJlZDY2YjRhOTBiZGE0MDk1IjoiMDEwMDAxIjoiMGQyYmRiMDQ1NmEzZDY1MWQ1YmQ0OGE0MjA0NDkzODk4ZjcyY2YxYWFkZGQ3MTM4N2NjMDU4YmMzZjRjMjM1ZWE2YmU0MDEwZmQ2MWIyOGUxZmJiMjc1NDYyYjUzNzc1YzA0YmU5MDIyZDM4YjZhMmUwMzg3ZGRkYmE4NmEzZjg1NTRkMjg1ODA0NGE1OWZkZGJkNTk0NzUzZmMwNTZmZTMzYzhkYWRkYjg1ZGM3MGQxNjQ2OTBiMTE4MjIwOWZmODQ4MjRlMGJlMTBlMzVjMzc5ZjJmMzc4YmYxNzZhOWY3Y2I5NGQ5NWU0NGQ5MDI3NmEyOThjODgxMGY3NDFjOSI6TUJFRFRMU19QS19SU0E6TUJFRFRMU19NRF9TSEEyNTY6TUJFRFRMU19SU0FfU0FMVF9MRU5fQU5ZOjEyODpNQkVEVExTX0VSUl9QS19CQURfSU5QVVRfREFUQQogCiBWZXJpZnkgZXh0IFJTQSAjMTAgKFBLQ1MxIHYxLjUsIFJTQSB3aXRob3V0IG9wdGlvbnMpCi1kZXBlbmRzX29uOk1CRURUTFNfUEtDUzFfVjE1Ok1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpNQkVEVExTX1BLQ1MxX1YxNTpQU0FfV0FOVF9BTEdfU0hBXzI1NgogcGtfcnNhX3ZlcmlmeV9leHRfdGVzdF92ZWM6ImMwNzE5ZTlhOGQ1ZDgzOGQ4NjFkYzZmNjc1Yzg5OWQyYjMwOWEzYTY1YmI5ZmU2YjExZTVhZmNiZjlhMmMwYjEiOk1CRURUTFNfTURfU0hBMjU2OjEwMjQ6IjAwZGQxMThhOWY5OWJhYjA2OGNhMmFlYTNiNmE2ZDU5OTdlZDRlYzk1NGU0MGRlZWNlYTA3ZGEwMWVhYWU4MGVjMmJiMTM0MGRiOGExMjhlODkxMzI0YTVjNWY1ZmFkOGY1OTBkN2M4Y2FjYmM1ZmU5MzFkYWZkYTEyMjM3MzUyNzk0NjFhYmFhMDU3MmI3NjE2MzFiM2E4YWZlNzM4OWIwODhiNjM5OTNhMGEyNWVlNDVkMjE4NThiYWI5OTMxYWVkZDQ1ODlhNjMxYjM3ZmNmNzE0MDg5Zjg1NjU0OWYzNTkzMjZkZDFlMGU4NmRkZTUyZWQ2NmI0YTkwYmRhNDA5NSI6IjAxMDAwMSI6IjBkMmJkYjA0NTZhM2Q2NTFkNWJkNDhhNDIwNDQ5Mzg5OGY3MmNmMWFhZGRkNzEzODdjYzA1OGJjM2Y0YzIzNWVhNmJlNDAxMGZkNjFiMjhlMWZiYjI3NTQ2MmI1Mzc3NWMwNGJlOTAyMmQzOGI2YTJlMDM4N2RkZGJhODZhM2Y4NTU0ZDI4NTgwNDRhNTlmZGRiZDU5NDc1M2ZjMDU2ZmUzM2M4ZGFkZGI4NWRjNzBkMTY0NjkwYjExODIyMDlmZjg0ODI0ZTBiZTEwZTM1YzM3OWYyZjM3OGJmMTc2YTlmN2NiOTRkOTVlNDRkOTAyNzZhMjk4Yzg4MTBmNzQxYzkiOk1CRURUTFNfUEtfUlNBOi0xOk1CRURUTFNfUlNBX1NBTFRfTEVOX0FOWToxMjg6TUJFRFRMU19FUlJfUlNBX1ZFUklGWV9GQUlMRUQKIAogVmVyaWZ5IGV4dCBSU0EgIzExIChQS0NTMSB2Mi4xLCBhc2tpbmcgZm9yIEVDRFNBKQotZGVwZW5kc19vbjpNQkVEVExTX1BLX0NBTl9FQ0RTQV9WRVJJRlk6TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOk1CRURUTFNfUEtfQ0FOX0VDRFNBX1ZFUklGWTpQU0FfV0FOVF9BTEdfU0hBXzI1NgogcGtfcnNhX3ZlcmlmeV9leHRfdGVzdF92ZWM6ImMwNzE5ZTlhOGQ1ZDgzOGQ4NjFkYzZmNjc1Yzg5OWQyYjMwOWEzYTY1YmI5ZmU2YjExZTVhZmNiZjlhMmMwYjEiOk1CRURUTFNfTURfU0hBMjU2OjEwMjQ6IjAwZGQxMThhOWY5OWJhYjA2OGNhMmFlYTNiNmE2ZDU5OTdlZDRlYzk1NGU0MGRlZWNlYTA3ZGEwMWVhYWU4MGVjMmJiMTM0MGRiOGExMjhlODkxMzI0YTVjNWY1ZmFkOGY1OTBkN2M4Y2FjYmM1ZmU5MzFkYWZkYTEyMjM3MzUyNzk0NjFhYmFhMDU3MmI3NjE2MzFiM2E4YWZlNzM4OWIwODhiNjM5OTNhMGEyNWVlNDVkMjE4NThiYWI5OTMxYWVkZDQ1ODlhNjMxYjM3ZmNmNzE0MDg5Zjg1NjU0OWYzNTkzMjZkZDFlMGU4NmRkZTUyZWQ2NmI0YTkwYmRhNDA5NSI6IjAxMDAwMSI6IjBkMmJkYjA0NTZhM2Q2NTFkNWJkNDhhNDIwNDQ5Mzg5OGY3MmNmMWFhZGRkNzEzODdjYzA1OGJjM2Y0YzIzNWVhNmJlNDAxMGZkNjFiMjhlMWZiYjI3NTQ2MmI1Mzc3NWMwNGJlOTAyMmQzOGI2YTJlMDM4N2RkZGJhODZhM2Y4NTU0ZDI4NTgwNDRhNTlmZGRiZDU5NDc1M2ZjMDU2ZmUzM2M4ZGFkZGI4NWRjNzBkMTY0NjkwYjExODIyMDlmZjg0ODI0ZTBiZTEwZTM1YzM3OWYyZjM3OGJmMTc2YTlmN2NiOTRkOTVlNDRkOTAyNzZhMjk4Yzg4MTBmNzQxYzkiOk1CRURUTFNfUEtfRUNEU0E6LTE6TUJFRFRMU19SU0FfU0FMVF9MRU5fQU5ZOjEyODpNQkVEVExTX0VSUl9QS19UWVBFX01JU01BVENICiAKIFZlcmlmeSBleHQgUlNBICMxMiAoUEtDUzEgdjEuNSwgZ29vZCkKQEAgLTU2Myw5MSArNTYzLDkxIEBACiBwa19yc2FfdmVyaWZ5X2V4dF90ZXN0X3ZlYzoiNmE4YTFmMjI1NzAzZmUzOTc1M2MxMDE3YjQzZWVjOWUwNzBhNzBiMSI6TUJFRFRMU19NRF9TSEExOjEwMjQ6ImUyOGExMzU0ODUyNWU1ZjM2ZGNjYjI0ZWNiN2NjMzMyY2M2ODlkZmQ2NDAxMjYwNGM5Yzc4MTZkNzJhMTZjM2Y1ZmNkYzBlODZlN2MwMzI4MGIxYzY5YjU4NmNlMGNkOGFlYzcyMmNjNzNhNWQzYjczMDMxMGJmN2RmZWJkYzc3Y2U1ZDk0YmJjMzY5ZGMxOGEyZjdiMDdiZDUwNWFiMGY4MjIyNGFlZjA5ZmRjMWU1MDYzMjM0MjU1ZTBiM2M0MGE1MmU5ZThhZTYwODk4ZWI4OGE3NjZiZGQ3ODhmZTk0OTNkOGZkODZiY2RkMjg4NGQ1YzA2MjE2YzY1NDY5ZTUiOiIzIjoiNWFiYzAxZjVkZTI1YjcwODY3ZmYwYzI0ZTIyMmM2MWY1M2M4OGRhZjQyNTg2ZmRkY2Q1NmYzYzQ1ODhmMDc0YmUzYzMyODA1NmMwNjMzODg2ODhiNjM4NWE4MTY3OTU3YzZlNTM1NWE1MTBlMDA1YjhhODUxZDY5Yzk2YjM2ZWM2MDM2NjQ0MDc4MjEwZTVkN2QzMjZmOTYzNjVlZTA2NDg4ODI5MjE0OTJiYzdiNzUzZWI5YzI2Y2RiYWIzNzU1NWYyMTBkZjJjYTZmZWMxYjI1YjQ2M2QzOGI4MWMwZGNlYTIwMjAyMmIwNGFmNWRhNThhYTAzZDc3YmU5NDliNyI6TUJFRFRMU19QS19SU0E6LTE6TUJFRFRMU19SU0FfU0FMVF9MRU5fQU5ZOjEyODowCiAKIFZlcmlmeSBleHQgUlNBICMxMyAoUEtDUzEgdjIuMSwgc2FsdF9sZW4gPSBtYXgsIHNpZ19sZW4gdG9vIGxvbmcpCi1kZXBlbmRzX29uOk1CRURUTFNfUEtDUzFfVjIxOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpNQkVEVExTX1BLQ1MxX1YyMTpQU0FfV0FOVF9BTEdfU0hBXzI1NgogcGtfcnNhX3ZlcmlmeV9leHRfdGVzdF92ZWM6ImMwNzE5ZTlhOGQ1ZDgzOGQ4NjFkYzZmNjc1Yzg5OWQyYjMwOWEzYTY1YmI5ZmU2YjExZTVhZmNiZjlhMmMwYjEiOk1CRURUTFNfTURfU0hBMjU2OjEwMjQ6IjAwZGQxMThhOWY5OWJhYjA2OGNhMmFlYTNiNmE2ZDU5OTdlZDRlYzk1NGU0MGRlZWNlYTA3ZGEwMWVhYWU4MGVjMmJiMTM0MGRiOGExMjhlODkxMzI0YTVjNWY1ZmFkOGY1OTBkN2M4Y2FjYmM1ZmU5MzFkYWZkYTEyMjM3MzUyNzk0NjFhYmFhMDU3MmI3NjE2MzFiM2E4YWZlNzM4OWIwODhiNjM5OTNhMGEyNWVlNDVkMjE4NThiYWI5OTMxYWVkZDQ1ODlhNjMxYjM3ZmNmNzE0MDg5Zjg1NjU0OWYzNTkzMjZkZDFlMGU4NmRkZTUyZWQ2NmI0YTkwYmRhNDA5NSI6IjAxMDAwMSI6IjBkMmJkYjA0NTZhM2Q2NTFkNWJkNDhhNDIwNDQ5Mzg5OGY3MmNmMWFhZGRkNzEzODdjYzA1OGJjM2Y0YzIzNWVhNmJlNDAxMGZkNjFiMjhlMWZiYjI3NTQ2MmI1Mzc3NWMwNGJlOTAyMmQzOGI2YTJlMDM4N2RkZGJhODZhM2Y4NTU0ZDI4NTgwNDRhNTlmZGRiZDU5NDc1M2ZjMDU2ZmUzM2M4ZGFkZGI4NWRjNzBkMTY0NjkwYjExODIyMDlmZjg0ODI0ZTBiZTEwZTM1YzM3OWYyZjM3OGJmMTc2YTlmN2NiOTRkOTVlNDRkOTAyNzZhMjk4Yzg4MTBmNzQxYzkiOk1CRURUTFNfUEtfUlNBU1NBX1BTUzpNQkVEVExTX01EX1NIQTI1Njo5NDoxMjk6TUJFRFRMU19FUlJfUEtfU0lHX0xFTl9NSVNNQVRDSAogCiBWZXJpZnkgZXh0IFJTQSAjMTQgKFBLQ1MxIHYyLjEsIHNhbHRfbGVuID0gQU5ZLCBzaWdfbGVuIHRvbyBsb25nKQotZGVwZW5kc19vbjpNQkVEVExTX1BLQ1MxX1YyMTpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246TUJFRFRMU19QS0NTMV9WMjE6UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHBrX3JzYV92ZXJpZnlfZXh0X3Rlc3RfdmVjOiJjMDcxOWU5YThkNWQ4MzhkODYxZGM2ZjY3NWM4OTlkMmIzMDlhM2E2NWJiOWZlNmIxMWU1YWZjYmY5YTJjMGIxIjpNQkVEVExTX01EX1NIQTI1NjoxMDI0OiIwMGRkMTE4YTlmOTliYWIwNjhjYTJhZWEzYjZhNmQ1OTk3ZWQ0ZWM5NTRlNDBkZWVjZWEwN2RhMDFlYWFlODBlYzJiYjEzNDBkYjhhMTI4ZTg5MTMyNGE1YzVmNWZhZDhmNTkwZDdjOGNhY2JjNWZlOTMxZGFmZGExMjIzNzM1Mjc5NDYxYWJhYTA1NzJiNzYxNjMxYjNhOGFmZTczODliMDg4YjYzOTkzYTBhMjVlZTQ1ZDIxODU4YmFiOTkzMWFlZGQ0NTg5YTYzMWIzN2ZjZjcxNDA4OWY4NTY1NDlmMzU5MzI2ZGQxZTBlODZkZGU1MmVkNjZiNGE5MGJkYTQwOTUiOiIwMTAwMDEiOiIwZDJiZGIwNDU2YTNkNjUxZDViZDQ4YTQyMDQ0OTM4OThmNzJjZjFhYWRkZDcxMzg3Y2MwNThiYzNmNGMyMzVlYTZiZTQwMTBmZDYxYjI4ZTFmYmIyNzU0NjJiNTM3NzVjMDRiZTkwMjJkMzhiNmEyZTAzODdkZGRiYTg2YTNmODU1NGQyODU4MDQ0YTU5ZmRkYmQ1OTQ3NTNmYzA1NmZlMzNjOGRhZGRiODVkYzcwZDE2NDY5MGIxMTgyMjA5ZmY4NDgyNGUwYmUxMGUzNWMzNzlmMmYzNzhiZjE3NmE5ZjdjYjk0ZDk1ZTQ0ZDkwMjc2YTI5OGM4ODEwZjc0MWM5IjpNQkVEVExTX1BLX1JTQVNTQV9QU1M6TUJFRFRMU19NRF9TSEEyNTY6TUJFRFRMU19SU0FfU0FMVF9MRU5fQU5ZOjEyOTpNQkVEVExTX0VSUl9QS19TSUdfTEVOX01JU01BVENICiAKIFZlcmlmeSBleHQgUlNBICMxNSAoUEtDUzEgdjIuMSwgc2FsdF9sZW4gPSBBTlksIHNpZ19sZW4gdG9vIHNob3J0KQotZGVwZW5kc19vbjpNQkVEVExTX1BLQ1MxX1YyMTpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246TUJFRFRMU19QS0NTMV9WMjE6UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHBrX3JzYV92ZXJpZnlfZXh0X3Rlc3RfdmVjOiJjMDcxOWU5YThkNWQ4MzhkODYxZGM2ZjY3NWM4OTlkMmIzMDlhM2E2NWJiOWZlNmIxMWU1YWZjYmY5YTJjMGIxIjpNQkVEVExTX01EX1NIQTI1NjoxMDI0OiIwMGRkMTE4YTlmOTliYWIwNjhjYTJhZWEzYjZhNmQ1OTk3ZWQ0ZWM5NTRlNDBkZWVjZWEwN2RhMDFlYWFlODBlYzJiYjEzNDBkYjhhMTI4ZTg5MTMyNGE1YzVmNWZhZDhmNTkwZDdjOGNhY2JjNWZlOTMxZGFmZGExMjIzNzM1Mjc5NDYxYWJhYTA1NzJiNzYxNjMxYjNhOGFmZTczODliMDg4YjYzOTkzYTBhMjVlZTQ1ZDIxODU4YmFiOTkzMWFlZGQ0NTg5YTYzMWIzN2ZjZjcxNDA4OWY4NTY1NDlmMzU5MzI2ZGQxZTBlODZkZGU1MmVkNjZiNGE5MGJkYTQwOTUiOiIwMTAwMDEiOiIwZDJiZGIwNDU2YTNkNjUxZDViZDQ4YTQyMDQ0OTM4OThmNzJjZjFhYWRkZDcxMzg3Y2MwNThiYzNmNGMyMzVlYTZiZTQwMTBmZDYxYjI4ZTFmYmIyNzU0NjJiNTM3NzVjMDRiZTkwMjJkMzhiNmEyZTAzODdkZGRiYTg2YTNmODU1NGQyODU4MDQ0YTU5ZmRkYmQ1OTQ3NTNmYzA1NmZlMzNjOGRhZGRiODVkYzcwZDE2NDY5MGIxMTgyMjA5ZmY4NDgyNGUwYmUxMGUzNWMzNzlmMmYzNzhiZjE3NmE5ZjdjYjk0ZDk1ZTQ0ZDkwMjc2YTI5OGM4ODEwZjc0MWM5IjpNQkVEVExTX1BLX1JTQVNTQV9QU1M6TUJFRFRMU19NRF9TSEEyNTY6TUJFRFRMU19SU0FfU0FMVF9MRU5fQU5ZOjEyNzpNQkVEVExTX0VSUl9SU0FfVkVSSUZZX0ZBSUxFRAogCiBWZXJpZnkgZXh0IFJTQSAjMTYgKFBLQ1MxIHYyLjEsIHNhbHRfbGVuID0gbWF4LCBzaWdfbGVuIHRvbyBzaG9ydCkKLWRlcGVuZHNfb246TUJFRFRMU19QS0NTMV9WMjE6TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOk1CRURUTFNfUEtDUzFfVjIxOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBwa19yc2FfdmVyaWZ5X2V4dF90ZXN0X3ZlYzoiYzA3MTllOWE4ZDVkODM4ZDg2MWRjNmY2NzVjODk5ZDJiMzA5YTNhNjViYjlmZTZiMTFlNWFmY2JmOWEyYzBiMSI6TUJFRFRMU19NRF9TSEEyNTY6MTAyNDoiMDBkZDExOGE5Zjk5YmFiMDY4Y2EyYWVhM2I2YTZkNTk5N2VkNGVjOTU0ZTQwZGVlY2VhMDdkYTAxZWFhZTgwZWMyYmIxMzQwZGI4YTEyOGU4OTEzMjRhNWM1ZjVmYWQ4ZjU5MGQ3YzhjYWNiYzVmZTkzMWRhZmRhMTIyMzczNTI3OTQ2MWFiYWEwNTcyYjc2MTYzMWIzYThhZmU3Mzg5YjA4OGI2Mzk5M2EwYTI1ZWU0NWQyMTg1OGJhYjk5MzFhZWRkNDU4OWE2MzFiMzdmY2Y3MTQwODlmODU2NTQ5ZjM1OTMyNmRkMWUwZTg2ZGRlNTJlZDY2YjRhOTBiZGE0MDk1IjoiMDEwMDAxIjoiMGQyYmRiMDQ1NmEzZDY1MWQ1YmQ0OGE0MjA0NDkzODk4ZjcyY2YxYWFkZGQ3MTM4N2NjMDU4YmMzZjRjMjM1ZWE2YmU0MDEwZmQ2MWIyOGUxZmJiMjc1NDYyYjUzNzc1YzA0YmU5MDIyZDM4YjZhMmUwMzg3ZGRkYmE4NmEzZjg1NTRkMjg1ODA0NGE1OWZkZGJkNTk0NzUzZmMwNTZmZTMzYzhkYWRkYjg1ZGM3MGQxNjQ2OTBiMTE4MjIwOWZmODQ4MjRlMGJlMTBlMzVjMzc5ZjJmMzc4YmYxNzZhOWY3Y2I5NGQ5NWU0NGQ5MDI3NmEyOThjODgxMGY3NDFjOSI6TUJFRFRMU19QS19SU0FTU0FfUFNTOk1CRURUTFNfTURfU0hBMjU2Ojk0OjEyNzpNQkVEVExTX0VSUl9SU0FfVkVSSUZZX0ZBSUxFRAogCiBWZXJpZnkgZXh0IFJTQSAjMTcgKFBLQ1MxIHYyLjEsIHNhbHRfbGVuID0gQU5ZLCB3cm9uZyBtZXNzYWdlLCBzaWdfbGVuIHRvbyBzaG9ydCkKLWRlcGVuZHNfb246TUJFRFRMU19QS0NTMV9WMjE6TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOk1CRURUTFNfUEtDUzFfVjIxOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBwa19yc2FfdmVyaWZ5X2V4dF90ZXN0X3ZlYzoiYWU2ZTQzZGQzODdjMjU3NDFlNDJmYzM1NzBjZGZjNTJlNGY1MWEyMzQzMjk0ZjNiNjc3ZGZlMDFjZDUzMzlmNiI6TUJFRFRMU19NRF9TSEEyNTY6MTAyNDoiMDBkZDExOGE5Zjk5YmFiMDY4Y2EyYWVhM2I2YTZkNTk5N2VkNGVjOTU0ZTQwZGVlY2VhMDdkYTAxZWFhZTgwZWMyYmIxMzQwZGI4YTEyOGU4OTEzMjRhNWM1ZjVmYWQ4ZjU5MGQ3YzhjYWNiYzVmZTkzMWRhZmRhMTIyMzczNTI3OTQ2MWFiYWEwNTcyYjc2MTYzMWIzYThhZmU3Mzg5YjA4OGI2Mzk5M2EwYTI1ZWU0NWQyMTg1OGJhYjk5MzFhZWRkNDU4OWE2MzFiMzdmY2Y3MTQwODlmODU2NTQ5ZjM1OTMyNmRkMWUwZTg2ZGRlNTJlZDY2YjRhOTBiZGE0MDk1IjoiMDEwMDAxIjoiMGQyYmRiMDQ1NmEzZDY1MWQ1YmQ0OGE0MjA0NDkzODk4ZjcyY2YxYWFkZGQ3MTM4N2NjMDU4YmMzZjRjMjM1ZWE2YmU0MDEwZmQ2MWIyOGUxZmJiMjc1NDYyYjUzNzc1YzA0YmU5MDIyZDM4YjZhMmUwMzg3ZGRkYmE4NmEzZjg1NTRkMjg1ODA0NGE1OWZkZGJkNTk0NzUzZmMwNTZmZTMzYzhkYWRkYjg1ZGM3MGQxNjQ2OTBiMTE4MjIwOWZmODQ4MjRlMGJlMTBlMzVjMzc5ZjJmMzc4YmYxNzZhOWY3Y2I5NGQ5NWU0NGQ5MDI3NmEyOThjODgxMGY3NDFjOSI6TUJFRFRMU19QS19SU0FTU0FfUFNTOk1CRURUTFNfTURfU0hBMjU2Ok1CRURUTFNfUlNBX1NBTFRfTEVOX0FOWToxMjc6TUJFRFRMU19FUlJfUlNBX1ZFUklGWV9GQUlMRUQKIAogVmVyaWZ5IGV4dCBSU0EgIzE4IChQS0NTMSB2Mi4xLCBzYWx0X2xlbiA9IG1heCwgd3JvbmcgbWVzc2FnZSwgc2lnX2xlbiB0b28gc2hvcnQpCi1kZXBlbmRzX29uOk1CRURUTFNfUEtDUzFfVjIxOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpNQkVEVExTX1BLQ1MxX1YyMTpQU0FfV0FOVF9BTEdfU0hBXzI1NgogcGtfcnNhX3ZlcmlmeV9leHRfdGVzdF92ZWM6ImFlNmU0M2RkMzg3YzI1NzQxZTQyZmMzNTcwY2RmYzUyZTRmNTFhMjM0MzI5NGYzYjY3N2RmZTAxY2Q1MzM5ZjYiOk1CRURUTFNfTURfU0hBMjU2OjEwMjQ6IjAwZGQxMThhOWY5OWJhYjA2OGNhMmFlYTNiNmE2ZDU5OTdlZDRlYzk1NGU0MGRlZWNlYTA3ZGEwMWVhYWU4MGVjMmJiMTM0MGRiOGExMjhlODkxMzI0YTVjNWY1ZmFkOGY1OTBkN2M4Y2FjYmM1ZmU5MzFkYWZkYTEyMjM3MzUyNzk0NjFhYmFhMDU3MmI3NjE2MzFiM2E4YWZlNzM4OWIwODhiNjM5OTNhMGEyNWVlNDVkMjE4NThiYWI5OTMxYWVkZDQ1ODlhNjMxYjM3ZmNmNzE0MDg5Zjg1NjU0OWYzNTkzMjZkZDFlMGU4NmRkZTUyZWQ2NmI0YTkwYmRhNDA5NSI6IjAxMDAwMSI6IjBkMmJkYjA0NTZhM2Q2NTFkNWJkNDhhNDIwNDQ5Mzg5OGY3MmNmMWFhZGRkNzEzODdjYzA1OGJjM2Y0YzIzNWVhNmJlNDAxMGZkNjFiMjhlMWZiYjI3NTQ2MmI1Mzc3NWMwNGJlOTAyMmQzOGI2YTJlMDM4N2RkZGJhODZhM2Y4NTU0ZDI4NTgwNDRhNTlmZGRiZDU5NDc1M2ZjMDU2ZmUzM2M4ZGFkZGI4NWRjNzBkMTY0NjkwYjExODIyMDlmZjg0ODI0ZTBiZTEwZTM1YzM3OWYyZjM3OGJmMTc2YTlmN2NiOTRkOTVlNDRkOTAyNzZhMjk4Yzg4MTBmNzQxYzkiOk1CRURUTFNfUEtfUlNBU1NBX1BTUzpNQkVEVExTX01EX1NIQTI1Njo5NDoxMjc6TUJFRFRMU19FUlJfUlNBX1ZFUklGWV9GQUlMRUQKIAogVmVyaWZ5IGV4dCBSU0EgIzE5IChQS0NTMSB2Mi4xLCBzYWx0X2xlbiA9IEFOWSwgd3JvbmcgbWVzc2FnZSwgc2lnX2xlbiB0b28gbG9uZykKLWRlcGVuZHNfb246TUJFRFRMU19QS0NTMV9WMjE6TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOk1CRURUTFNfUEtDUzFfVjIxOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBwa19yc2FfdmVyaWZ5X2V4dF90ZXN0X3ZlYzoiYWU2ZTQzZGQzODdjMjU3NDFlNDJmYzM1NzBjZGZjNTJlNGY1MWEyMzQzMjk0ZjNiNjc3ZGZlMDFjZDUzMzlmNiI6TUJFRFRMU19NRF9TSEEyNTY6MTAyNDoiMDBkZDExOGE5Zjk5YmFiMDY4Y2EyYWVhM2I2YTZkNTk5N2VkNGVjOTU0ZTQwZGVlY2VhMDdkYTAxZWFhZTgwZWMyYmIxMzQwZGI4YTEyOGU4OTEzMjRhNWM1ZjVmYWQ4ZjU5MGQ3YzhjYWNiYzVmZTkzMWRhZmRhMTIyMzczNTI3OTQ2MWFiYWEwNTcyYjc2MTYzMWIzYThhZmU3Mzg5YjA4OGI2Mzk5M2EwYTI1ZWU0NWQyMTg1OGJhYjk5MzFhZWRkNDU4OWE2MzFiMzdmY2Y3MTQwODlmODU2NTQ5ZjM1OTMyNmRkMWUwZTg2ZGRlNTJlZDY2YjRhOTBiZGE0MDk1IjoiMDEwMDAxIjoiMGQyYmRiMDQ1NmEzZDY1MWQ1YmQ0OGE0MjA0NDkzODk4ZjcyY2YxYWFkZGQ3MTM4N2NjMDU4YmMzZjRjMjM1ZWE2YmU0MDEwZmQ2MWIyOGUxZmJiMjc1NDYyYjUzNzc1YzA0YmU5MDIyZDM4YjZhMmUwMzg3ZGRkYmE4NmEzZjg1NTRkMjg1ODA0NGE1OWZkZGJkNTk0NzUzZmMwNTZmZTMzYzhkYWRkYjg1ZGM3MGQxNjQ2OTBiMTE4MjIwOWZmODQ4MjRlMGJlMTBlMzVjMzc5ZjJmMzc4YmYxNzZhOWY3Y2I5NGQ5NWU0NGQ5MDI3NmEyOThjODgxMGY3NDFjOSI6TUJFRFRMU19QS19SU0FTU0FfUFNTOk1CRURUTFNfTURfU0hBMjU2Ok1CRURUTFNfUlNBX1NBTFRfTEVOX0FOWToxMjk6TUJFRFRMU19FUlJfUlNBX1ZFUklGWV9GQUlMRUQKIAogVmVyaWZ5IGV4dCBSU0EgIzIwIChQS0NTMSB2Mi4xLCBzYWx0X2xlbiA9IG1heCwgd3JvbmcgbWVzc2FnZSwgc2lnX2xlbiB0b28gbG9uZykKLWRlcGVuZHNfb246TUJFRFRMU19QS0NTMV9WMjE6TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOk1CRURUTFNfUEtDUzFfVjIxOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBwa19yc2FfdmVyaWZ5X2V4dF90ZXN0X3ZlYzoiYWU2ZTQzZGQzODdjMjU3NDFlNDJmYzM1NzBjZGZjNTJlNGY1MWEyMzQzMjk0ZjNiNjc3ZGZlMDFjZDUzMzlmNiI6TUJFRFRMU19NRF9TSEEyNTY6MTAyNDoiMDBkZDExOGE5Zjk5YmFiMDY4Y2EyYWVhM2I2YTZkNTk5N2VkNGVjOTU0ZTQwZGVlY2VhMDdkYTAxZWFhZTgwZWMyYmIxMzQwZGI4YTEyOGU4OTEzMjRhNWM1ZjVmYWQ4ZjU5MGQ3YzhjYWNiYzVmZTkzMWRhZmRhMTIyMzczNTI3OTQ2MWFiYWEwNTcyYjc2MTYzMWIzYThhZmU3Mzg5YjA4OGI2Mzk5M2EwYTI1ZWU0NWQyMTg1OGJhYjk5MzFhZWRkNDU4OWE2MzFiMzdmY2Y3MTQwODlmODU2NTQ5ZjM1OTMyNmRkMWUwZTg2ZGRlNTJlZDY2YjRhOTBiZGE0MDk1IjoiMDEwMDAxIjoiMGQyYmRiMDQ1NmEzZDY1MWQ1YmQ0OGE0MjA0NDkzODk4ZjcyY2YxYWFkZGQ3MTM4N2NjMDU4YmMzZjRjMjM1ZWE2YmU0MDEwZmQ2MWIyOGUxZmJiMjc1NDYyYjUzNzc1YzA0YmU5MDIyZDM4YjZhMmUwMzg3ZGRkYmE4NmEzZjg1NTRkMjg1ODA0NGE1OWZkZGJkNTk0NzUzZmMwNTZmZTMzYzhkYWRkYjg1ZGM3MGQxNjQ2OTBiMTE4MjIwOWZmODQ4MjRlMGJlMTBlMzVjMzc5ZjJmMzc4YmYxNzZhOWY3Y2I5NGQ5NWU0NGQ5MDI3NmEyOThjODgxMGY3NDFjOSI6TUJFRFRMU19QS19SU0FTU0FfUFNTOk1CRURUTFNfTURfU0hBMjU2Ojk0OjEyOTpNQkVEVExTX0VSUl9SU0FfVkVSSUZZX0ZBSUxFRAogCiBDaGVjayBwYWlyICMxIChFQywgT0spCiBkZXBlbmRzX29uOk1CRURUTFNfUEtfSEFWRV9FQ0NfS0VZUzpNQkVEVExTX0VDUF9IQVZFX1NFQ1AyNTZSMTpNQkVEVExTX1BFTV9QQVJTRV9DCi1tYmVkdGxzX3BrX2NoZWNrX3BhaXI6ImRhdGFfZmlsZXMvZWNfMjU2X3B1Yi5wZW0iOiJkYXRhX2ZpbGVzL2VjXzI1Nl9wcnYucGVtIjowCittYmVkdGxzX3BrX2NoZWNrX3BhaXI6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL2VjXzI1Nl9wdWIucGVtIjoiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvZWNfMjU2X3Bydi5wZW0iOjAKIAogQ2hlY2sgcGFpciAjMiAoRUMsIGJhZCkKIGRlcGVuZHNfb246TUJFRFRMU19QS19IQVZFX0VDQ19LRVlTOk1CRURUTFNfRUNQX0hBVkVfU0VDUDI1NlIxOk1CRURUTFNfUEVNX1BBUlNFX0MKLW1iZWR0bHNfcGtfY2hlY2tfcGFpcjoiZGF0YV9maWxlcy9lY18yNTZfcHViLnBlbSI6ImRhdGFfZmlsZXMvc2VydmVyNS5rZXkiOk1CRURUTFNfRVJSX0VDUF9CQURfSU5QVVRfREFUQQorbWJlZHRsc19wa19jaGVja19wYWlyOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9lY18yNTZfcHViLnBlbSI6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3NlcnZlcjUua2V5IjpNQkVEVExTX0VSUl9FQ1BfQkFEX0lOUFVUX0RBVEEKIAogQ2hlY2sgcGFpciAjMyAoUlNBLCBPSykKIGRlcGVuZHNfb246TUJFRFRMU19SU0FfQzpNQkVEVExTX1BLQ1MxX1YxNTpNQkVEVExTX1BFTV9QQVJTRV9DCi1tYmVkdGxzX3BrX2NoZWNrX3BhaXI6ImRhdGFfZmlsZXMvc2VydmVyMS5wdWJrZXkiOiJkYXRhX2ZpbGVzL3NlcnZlcjEua2V5IjowCittYmVkdGxzX3BrX2NoZWNrX3BhaXI6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3NlcnZlcjEucHVia2V5IjoiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvc2VydmVyMS5rZXkiOjAKIAogQ2hlY2sgcGFpciAjNCAoUlNBLCBiYWQpCiBkZXBlbmRzX29uOk1CRURUTFNfUlNBX0M6TUJFRFRMU19QS0NTMV9WMTU6TUJFRFRMU19QRU1fUEFSU0VfQwotbWJlZHRsc19wa19jaGVja19wYWlyOiJkYXRhX2ZpbGVzL3NlcnZlcjEucHVia2V5IjoiZGF0YV9maWxlcy9zZXJ2ZXIyLmtleSI6TUJFRFRMU19FUlJfUlNBX0tFWV9DSEVDS19GQUlMRUQKK21iZWR0bHNfcGtfY2hlY2tfcGFpcjoiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvc2VydmVyMS5wdWJrZXkiOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9zZXJ2ZXIyLmtleSI6TUJFRFRMU19FUlJfUlNBX0tFWV9DSEVDS19GQUlMRUQKIAogQ2hlY2sgcGFpciAjNSAoUlNBIHZzIEVDKQogZGVwZW5kc19vbjpNQkVEVExTX1BLX0hBVkVfRUNDX0tFWVM6TUJFRFRMU19FQ1BfSEFWRV9TRUNQMjU2UjE6TUJFRFRMU19SU0FfQzpNQkVEVExTX1BFTV9QQVJTRV9DCi1tYmVkdGxzX3BrX2NoZWNrX3BhaXI6ImRhdGFfZmlsZXMvZWNfMjU2X3B1Yi5wZW0iOiJkYXRhX2ZpbGVzL3NlcnZlcjEua2V5IjpNQkVEVExTX0VSUl9QS19UWVBFX01JU01BVENICittYmVkdGxzX3BrX2NoZWNrX3BhaXI6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL2VjXzI1Nl9wdWIucGVtIjoiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvc2VydmVyMS5rZXkiOk1CRURUTFNfRVJSX1BLX1RZUEVfTUlTTUFUQ0gKIAogUlNBIGhhc2hfbGVuIG92ZXJmbG93IChzaXplX3QgdnMgdW5zaWduZWQgaW50KQogZGVwZW5kc19vbjpNQkVEVExTX1JTQV9DOk1CRURUTFNfSEFWRV9JTlQ2NAogcGtfcnNhX292ZXJmbG93OgogCiBFQ0RTQSByZXN0YXJ0YWJsZSBzaWduL3ZlcmlmeTogRUNEU0EsIG1heF9vcHM9MCAoZGlzYWJsZWQpCi1kZXBlbmRzX29uOk1CRURUTFNfRUNQX0hBVkVfU0VDUDI1NlIxOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpNQkVEVExTX0VDUF9IQVZFX1NFQ1AyNTZSMTpQU0FfV0FOVF9BTEdfU0hBXzI1NgogcGtfc2lnbl92ZXJpZnlfcmVzdGFydDpNQkVEVExTX1BLX0VDRFNBOk1CRURUTFNfRUNQX0RQX1NFQ1AyNTZSMToiQzlBRkE5RDg0NUJBNzUxNjZCNUMyMTU3NjdCMUQ2OTM0RTUwQzNEQjM2RTg5QjEyN0I4QTYyMkIxMjBGNjcyMSI6IjYwRkVENEJBMjU1QTlEMzFDOTYxRUI3NEM2MzU2RDY4QzA0OUI4OTIzQjYxRkE2Q0U2Njk2MjJFNjBGMjlGQjYiOiI3OTAzRkUxMDA4QjhCQzk5QTQxQUU5RTk1NjI4QkM2NEYyRjFCMjBDMkQ3RTlGNTE3N0EzQzI5NEQ0NDYyMjk5IjpNQkVEVExTX01EX1NIQTI1NjoiOWY4NmQwODE4ODRjN2Q2NTlhMmZlYWEwYzU1YWQwMTVhM2JmNGYxYjJiMGI4MjJjZDE1ZDZjMTViMGYwMGEwOCI6IjMwNDUwMjIxMDBmMWFiYjAyMzUxODM1MWNkNzFkODgxNTY3YjFlYTY2M2VkM2VmY2Y2YzUxMzJiMzU0ZjI4ZDNiMGI3ZDM4MzY3MDIyMDAxOWY0MTEzNzQyYTJiMTRiZDI1OTI2YjQ5YzY0OTE1NWYyNjdlNjBkMzgxNGI0YzBjYzg0MjUwZTQ2ZjAwODMiOjA6MDowCiAKIEVDRFNBIHJlc3RhcnRhYmxlIHNpZ24vdmVyaWZ5OiBFQ0tFWSwgbWF4X29wcz0wIChkaXNhYmxlZCkKLWRlcGVuZHNfb246TUJFRFRMU19FQ1BfSEFWRV9TRUNQMjU2UjE6TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOk1CRURUTFNfRUNQX0hBVkVfU0VDUDI1NlIxOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBwa19zaWduX3ZlcmlmeV9yZXN0YXJ0Ok1CRURUTFNfUEtfRUNLRVk6TUJFRFRMU19FQ1BfRFBfU0VDUDI1NlIxOiJDOUFGQTlEODQ1QkE3NTE2NkI1QzIxNTc2N0IxRDY5MzRFNTBDM0RCMzZFODlCMTI3QjhBNjIyQjEyMEY2NzIxIjoiNjBGRUQ0QkEyNTVBOUQzMUM5NjFFQjc0QzYzNTZENjhDMDQ5Qjg5MjNCNjFGQTZDRTY2OTYyMkU2MEYyOUZCNiI6Ijc5MDNGRTEwMDhCOEJDOTlBNDFBRTlFOTU2MjhCQzY0RjJGMUIyMEMyRDdFOUY1MTc3QTNDMjk0RDQ0NjIyOTkiOk1CRURUTFNfTURfU0hBMjU2OiI5Zjg2ZDA4MTg4NGM3ZDY1OWEyZmVhYTBjNTVhZDAxNWEzYmY0ZjFiMmIwYjgyMmNkMTVkNmMxNWIwZjAwYTA4IjoiMzA0NTAyMjEwMGYxYWJiMDIzNTE4MzUxY2Q3MWQ4ODE1NjdiMWVhNjYzZWQzZWZjZjZjNTEzMmIzNTRmMjhkM2IwYjdkMzgzNjcwMjIwMDE5ZjQxMTM3NDJhMmIxNGJkMjU5MjZiNDljNjQ5MTU1ZjI2N2U2MGQzODE0YjRjMGNjODQyNTBlNDZmMDA4MyI6MDowOjAKIAogRUNEU0EgcmVzdGFydGFibGUgc2lnbi92ZXJpZnk6IEVDRFNBLCBtYXhfb3BzPTEKLWRlcGVuZHNfb246TUJFRFRMU19FQ1BfSEFWRV9TRUNQMjU2UjE6TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOk1CRURUTFNfRUNQX0hBVkVfU0VDUDI1NlIxOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBwa19zaWduX3ZlcmlmeV9yZXN0YXJ0Ok1CRURUTFNfUEtfRUNEU0E6TUJFRFRMU19FQ1BfRFBfU0VDUDI1NlIxOiJDOUFGQTlEODQ1QkE3NTE2NkI1QzIxNTc2N0IxRDY5MzRFNTBDM0RCMzZFODlCMTI3QjhBNjIyQjEyMEY2NzIxIjoiNjBGRUQ0QkEyNTVBOUQzMUM5NjFFQjc0QzYzNTZENjhDMDQ5Qjg5MjNCNjFGQTZDRTY2OTYyMkU2MEYyOUZCNiI6Ijc5MDNGRTEwMDhCOEJDOTlBNDFBRTlFOTU2MjhCQzY0RjJGMUIyMEMyRDdFOUY1MTc3QTNDMjk0RDQ0NjIyOTkiOk1CRURUTFNfTURfU0hBMjU2OiI5Zjg2ZDA4MTg4NGM3ZDY1OWEyZmVhYTBjNTVhZDAxNWEzYmY0ZjFiMmIwYjgyMmNkMTVkNmMxNWIwZjAwYTA4IjoiMzA0NTAyMjEwMGYxYWJiMDIzNTE4MzUxY2Q3MWQ4ODE1NjdiMWVhNjYzZWQzZWZjZjZjNTEzMmIzNTRmMjhkM2IwYjdkMzgzNjcwMjIwMDE5ZjQxMTM3NDJhMmIxNGJkMjU5MjZiNDljNjQ5MTU1ZjI2N2U2MGQzODE0YjRjMGNjODQyNTBlNDZmMDA4MyI6MToxOjEwMDAwCiAKIEVDRFNBIHJlc3RhcnRhYmxlIHNpZ24vdmVyaWZ5OiBFQ0tFWSwgbWF4X29wcz0xCi1kZXBlbmRzX29uOk1CRURUTFNfRUNQX0hBVkVfU0VDUDI1NlIxOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpNQkVEVExTX0VDUF9IQVZFX1NFQ1AyNTZSMTpQU0FfV0FOVF9BTEdfU0hBXzI1NgogcGtfc2lnbl92ZXJpZnlfcmVzdGFydDpNQkVEVExTX1BLX0VDS0VZOk1CRURUTFNfRUNQX0RQX1NFQ1AyNTZSMToiQzlBRkE5RDg0NUJBNzUxNjZCNUMyMTU3NjdCMUQ2OTM0RTUwQzNEQjM2RTg5QjEyN0I4QTYyMkIxMjBGNjcyMSI6IjYwRkVENEJBMjU1QTlEMzFDOTYxRUI3NEM2MzU2RDY4QzA0OUI4OTIzQjYxRkE2Q0U2Njk2MjJFNjBGMjlGQjYiOiI3OTAzRkUxMDA4QjhCQzk5QTQxQUU5RTk1NjI4QkM2NEYyRjFCMjBDMkQ3RTlGNTE3N0EzQzI5NEQ0NDYyMjk5IjpNQkVEVExTX01EX1NIQTI1NjoiOWY4NmQwODE4ODRjN2Q2NTlhMmZlYWEwYzU1YWQwMTVhM2JmNGYxYjJiMGI4MjJjZDE1ZDZjMTViMGYwMGEwOCI6IjMwNDUwMjIxMDBmMWFiYjAyMzUxODM1MWNkNzFkODgxNTY3YjFlYTY2M2VkM2VmY2Y2YzUxMzJiMzU0ZjI4ZDNiMGI3ZDM4MzY3MDIyMDAxOWY0MTEzNzQyYTJiMTRiZDI1OTI2YjQ5YzY0OTE1NWYyNjdlNjBkMzgxNGI0YzBjYzg0MjUwZTQ2ZjAwODMiOjE6MToxMDAwMAogCiBFQ0RTQSByZXN0YXJ0YWJsZSBzaWduL3ZlcmlmeTogRUNEU0EsIG1heF9vcHM9MTAwMDAKLWRlcGVuZHNfb246TUJFRFRMU19FQ1BfSEFWRV9TRUNQMjU2UjE6TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOk1CRURUTFNfRUNQX0hBVkVfU0VDUDI1NlIxOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBwa19zaWduX3ZlcmlmeV9yZXN0YXJ0Ok1CRURUTFNfUEtfRUNEU0E6TUJFRFRMU19FQ1BfRFBfU0VDUDI1NlIxOiJDOUFGQTlEODQ1QkE3NTE2NkI1QzIxNTc2N0IxRDY5MzRFNTBDM0RCMzZFODlCMTI3QjhBNjIyQjEyMEY2NzIxIjoiNjBGRUQ0QkEyNTVBOUQzMUM5NjFFQjc0QzYzNTZENjhDMDQ5Qjg5MjNCNjFGQTZDRTY2OTYyMkU2MEYyOUZCNiI6Ijc5MDNGRTEwMDhCOEJDOTlBNDFBRTlFOTU2MjhCQzY0RjJGMUIyMEMyRDdFOUY1MTc3QTNDMjk0RDQ0NjIyOTkiOk1CRURUTFNfTURfU0hBMjU2OiI5Zjg2ZDA4MTg4NGM3ZDY1OWEyZmVhYTBjNTVhZDAxNWEzYmY0ZjFiMmIwYjgyMmNkMTVkNmMxNWIwZjAwYTA4IjoiMzA0NTAyMjEwMGYxYWJiMDIzNTE4MzUxY2Q3MWQ4ODE1NjdiMWVhNjYzZWQzZWZjZjZjNTEzMmIzNTRmMjhkM2IwYjdkMzgzNjcwMjIwMDE5ZjQxMTM3NDJhMmIxNGJkMjU5MjZiNDljNjQ5MTU1ZjI2N2U2MGQzODE0YjRjMGNjODQyNTBlNDZmMDA4MyI6MTAwMDA6MDowCiAKIEVDRFNBIHJlc3RhcnRhYmxlIHNpZ24vdmVyaWZ5OiBFQ0tFWSwgbWF4X29wcz0xMDAwMAotZGVwZW5kc19vbjpNQkVEVExTX0VDUF9IQVZFX1NFQ1AyNTZSMTpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246TUJFRFRMU19FQ1BfSEFWRV9TRUNQMjU2UjE6UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHBrX3NpZ25fdmVyaWZ5X3Jlc3RhcnQ6TUJFRFRMU19QS19FQ0tFWTpNQkVEVExTX0VDUF9EUF9TRUNQMjU2UjE6IkM5QUZBOUQ4NDVCQTc1MTY2QjVDMjE1NzY3QjFENjkzNEU1MEMzREIzNkU4OUIxMjdCOEE2MjJCMTIwRjY3MjEiOiI2MEZFRDRCQTI1NUE5RDMxQzk2MUVCNzRDNjM1NkQ2OEMwNDlCODkyM0I2MUZBNkNFNjY5NjIyRTYwRjI5RkI2IjoiNzkwM0ZFMTAwOEI4QkM5OUE0MUFFOUU5NTYyOEJDNjRGMkYxQjIwQzJEN0U5RjUxNzdBM0MyOTRENDQ2MjI5OSI6TUJFRFRMU19NRF9TSEEyNTY6IjlmODZkMDgxODg0YzdkNjU5YTJmZWFhMGM1NWFkMDE1YTNiZjRmMWIyYjBiODIyY2QxNWQ2YzE1YjBmMDBhMDgiOiIzMDQ1MDIyMTAwZjFhYmIwMjM1MTgzNTFjZDcxZDg4MTU2N2IxZWE2NjNlZDNlZmNmNmM1MTMyYjM1NGYyOGQzYjBiN2QzODM2NzAyMjAwMTlmNDExMzc0MmEyYjE0YmQyNTkyNmI0OWM2NDkxNTVmMjY3ZTYwZDM4MTRiNGMwY2M4NDI1MGU0NmYwMDgzIjoxMDAwMDowOjAKIAogRUNEU0EgcmVzdGFydGFibGUgc2lnbi92ZXJpZnk6IEVDRFNBLCBtYXhfb3BzPTI1MAotZGVwZW5kc19vbjpNQkVEVExTX0VDUF9IQVZFX1NFQ1AyNTZSMTpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246TUJFRFRMU19FQ1BfSEFWRV9TRUNQMjU2UjE6UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHBrX3NpZ25fdmVyaWZ5X3Jlc3RhcnQ6TUJFRFRMU19QS19FQ0RTQTpNQkVEVExTX0VDUF9EUF9TRUNQMjU2UjE6IkM5QUZBOUQ4NDVCQTc1MTY2QjVDMjE1NzY3QjFENjkzNEU1MEMzREIzNkU4OUIxMjdCOEE2MjJCMTIwRjY3MjEiOiI2MEZFRDRCQTI1NUE5RDMxQzk2MUVCNzRDNjM1NkQ2OEMwNDlCODkyM0I2MUZBNkNFNjY5NjIyRTYwRjI5RkI2IjoiNzkwM0ZFMTAwOEI4QkM5OUE0MUFFOUU5NTYyOEJDNjRGMkYxQjIwQzJEN0U5RjUxNzdBM0MyOTRENDQ2MjI5OSI6TUJFRFRMU19NRF9TSEEyNTY6IjlmODZkMDgxODg0YzdkNjU5YTJmZWFhMGM1NWFkMDE1YTNiZjRmMWIyYjBiODIyY2QxNWQ2YzE1YjBmMDBhMDgiOiIzMDQ1MDIyMTAwZjFhYmIwMjM1MTgzNTFjZDcxZDg4MTU2N2IxZWE2NjNlZDNlZmNmNmM1MTMyYjM1NGYyOGQzYjBiN2QzODM2NzAyMjAwMTlmNDExMzc0MmEyYjE0YmQyNTkyNmI0OWM2NDkxNTVmMjY3ZTYwZDM4MTRiNGMwY2M4NDI1MGU0NmYwMDgzIjoyNTA6Mjo2NAogCiBFQ0RTQSByZXN0YXJ0YWJsZSBzaWduL3ZlcmlmeTogRUNLRVksIG1heF9vcHM9MjUwCi1kZXBlbmRzX29uOk1CRURUTFNfRUNQX0hBVkVfU0VDUDI1NlIxOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpNQkVEVExTX0VDUF9IQVZFX1NFQ1AyNTZSMTpQU0FfV0FOVF9BTEdfU0hBXzI1NgogcGtfc2lnbl92ZXJpZnlfcmVzdGFydDpNQkVEVExTX1BLX0VDS0VZOk1CRURUTFNfRUNQX0RQX1NFQ1AyNTZSMToiQzlBRkE5RDg0NUJBNzUxNjZCNUMyMTU3NjdCMUQ2OTM0RTUwQzNEQjM2RTg5QjEyN0I4QTYyMkIxMjBGNjcyMSI6IjYwRkVENEJBMjU1QTlEMzFDOTYxRUI3NEM2MzU2RDY4QzA0OUI4OTIzQjYxRkE2Q0U2Njk2MjJFNjBGMjlGQjYiOiI3OTAzRkUxMDA4QjhCQzk5QTQxQUU5RTk1NjI4QkM2NEYyRjFCMjBDMkQ3RTlGNTE3N0EzQzI5NEQ0NDYyMjk5IjpNQkVEVExTX01EX1NIQTI1NjoiOWY4NmQwODE4ODRjN2Q2NTlhMmZlYWEwYzU1YWQwMTVhM2JmNGYxYjJiMGI4MjJjZDE1ZDZjMTViMGYwMGEwOCI6IjMwNDUwMjIxMDBmMWFiYjAyMzUxODM1MWNkNzFkODgxNTY3YjFlYTY2M2VkM2VmY2Y2YzUxMzJiMzU0ZjI4ZDNiMGI3ZDM4MzY3MDIyMDAxOWY0MTEzNzQyYTJiMTRiZDI1OTI2YjQ5YzY0OTE1NWYyNjdlNjBkMzgxNGI0YzBjYzg0MjUwZTQ2ZjAwODMiOjI1MDoyOjY0CiAKIFBTQSB3cmFwcGVkIHNpZ246IFNFQ1AyNTZSMQpAQCAtNjYzLDcgKzY2Myw3IEBACiBwa19wc2Ffc2lnbjpQU0FfS0VZX1RZUEVfRUNDX0tFWV9QQUlSKFBTQV9FQ0NfRkFNSUxZX1NFQ1BfUjEpOjUyMTowCiAKIFBTQSB3cmFwcGVkIHNpZ246IFNFQ1AxOTJLMQotZGVwZW5kc19vbjpNQkVEVExTX1BLX0NBTl9FQ0RTQV9TSUdOOk1CRURUTFNfRUNQX0hBVkVfU0VDUDE5MksxCitkZXBlbmRzX29uOk1CRURUTFNfUEtfQ0FOX0VDRFNBX1NJR046UFNBX1dBTlRfRUNDX1NFQ1BfSzFfMTkyCiBwa19wc2Ffc2lnbjpQU0FfS0VZX1RZUEVfRUNDX0tFWV9QQUlSKFBTQV9FQ0NfRkFNSUxZX1NFQ1BfSzEpOjE5MjowCiAKICMjIEN1cnJlbnRseSBidWdneTogaHR0cHM6Ly9naXRodWIuY29tL0FSTW1iZWQvbWJlZC1jcnlwdG8vaXNzdWVzLzMzNgpAQCAtNjcyLDE5ICs2NzIsMTkgQEAKICMgcGtfcHNhX3NpZ246UFNBX0tFWV9UWVBFX0VDQ19LRVlfUEFJUihQU0FfRUNDX0ZBTUlMWV9TRUNQX0sxKToyMjQ6MAogCiBQU0Egd3JhcHBlZCBzaWduOiBTRUNQMjU2SzEKLWRlcGVuZHNfb246TUJFRFRMU19QS19DQU5fRUNEU0FfU0lHTjpNQkVEVExTX0VDUF9IQVZFX1NFQ1AyNTZLMQorZGVwZW5kc19vbjpNQkVEVExTX1BLX0NBTl9FQ0RTQV9TSUdOOlBTQV9XQU5UX0VDQ19TRUNQX0sxXzI1NgogcGtfcHNhX3NpZ246UFNBX0tFWV9UWVBFX0VDQ19LRVlfUEFJUihQU0FfRUNDX0ZBTUlMWV9TRUNQX0sxKToyNTY6MAogCiBQU0Egd3JhcHBlZCBzaWduOiBCUDI1NlIxCi1kZXBlbmRzX29uOk1CRURUTFNfUEtfQ0FOX0VDRFNBX1NJR046TUJFRFRMU19FQ1BfSEFWRV9CUDI1NlIxCitkZXBlbmRzX29uOk1CRURUTFNfUEtfQ0FOX0VDRFNBX1NJR046UFNBX1dBTlRfRUNDX0JSQUlOUE9PTF9QX1IxXzI1NgogcGtfcHNhX3NpZ246UFNBX0tFWV9UWVBFX0VDQ19LRVlfUEFJUihQU0FfRUNDX0ZBTUlMWV9CUkFJTlBPT0xfUF9SMSk6MjU2OjAKIAogUFNBIHdyYXBwZWQgc2lnbjogQlAzODRSMQotZGVwZW5kc19vbjpNQkVEVExTX1BLX0NBTl9FQ0RTQV9TSUdOOk1CRURUTFNfRUNQX0hBVkVfQlAzODRSMQorZGVwZW5kc19vbjpNQkVEVExTX1BLX0NBTl9FQ0RTQV9TSUdOOlBTQV9XQU5UX0VDQ19CUkFJTlBPT0xfUF9SMV8zODQKIHBrX3BzYV9zaWduOlBTQV9LRVlfVFlQRV9FQ0NfS0VZX1BBSVIoUFNBX0VDQ19GQU1JTFlfQlJBSU5QT09MX1BfUjEpOjM4NDowCiAKIFBTQSB3cmFwcGVkIHNpZ246IEJQNTEyUjEKLWRlcGVuZHNfb246TUJFRFRMU19QS19DQU5fRUNEU0FfU0lHTjpNQkVEVExTX0VDUF9IQVZFX0JQNTEyUjEKK2RlcGVuZHNfb246TUJFRFRMU19QS19DQU5fRUNEU0FfU0lHTjpQU0FfV0FOVF9FQ0NfQlJBSU5QT09MX1BfUjFfNTEyCiBwa19wc2Ffc2lnbjpQU0FfS0VZX1RZUEVfRUNDX0tFWV9QQUlSKFBTQV9FQ0NfRkFNSUxZX0JSQUlOUE9PTF9QX1IxKTo1MTI6MAogCiBQU0Egd3JhcHBlZCBzaWduOiBSU0EgUEtDUzEgdjEuNQpAQCAtNjk2LDE5ICs2OTYsMTkgQEAKIHBrX3BzYV9zaWduOlBTQV9LRVlfVFlQRV9SU0FfS0VZX1BBSVI6MTAyNDpNQkVEVExTX1JTQV9QS0NTX1YyMQogCiBQSyBzaWduIGV4dDogUlNBMjA0OCwgUEtfUlNBLCBNRF9TSEEyNTYKLWRlcGVuZHNfb246TUJFRFRMU19QS0NTMV9WMTU6TUJFRFRMU19NRF9DQU5fU0hBMjU2Ok1CRURUTFNfUlNBX0MKK2RlcGVuZHNfb246TUJFRFRMU19QS0NTMV9WMTU6UFNBX1dBTlRfQUxHX1NIQV8yNTY6TUJFRFRMU19SU0FfQwogcGtfc2lnbl9leHQ6TUJFRFRMU19QS19SU0E6MjA0ODpNQkVEVExTX1BLX1JTQTpNQkVEVExTX01EX1NIQTI1NgogCiBQSyBzaWduIGV4dDogUlNBMjA0OCwgUEtfUlNBU1NBX1BTUywgTURfU0hBMjU2Ci1kZXBlbmRzX29uOk1CRURUTFNfUEtDUzFfVjIxOk1CRURUTFNfTURfQ0FOX1NIQTI1NjpNQkVEVExTX1JTQV9DCitkZXBlbmRzX29uOk1CRURUTFNfUEtDUzFfVjIxOlBTQV9XQU5UX0FMR19TSEFfMjU2Ok1CRURUTFNfUlNBX0MKIHBrX3NpZ25fZXh0Ok1CRURUTFNfUEtfUlNBOjIwNDg6TUJFRFRMU19QS19SU0FTU0FfUFNTOk1CRURUTFNfTURfU0hBMjU2CiAKIFBLIHNpZ24gZXh0OiBSU0EyMDQ4LCBQS19SU0EsIE1EX1NIQTM4NAotZGVwZW5kc19vbjpNQkVEVExTX1BLQ1MxX1YxNTpNQkVEVExTX01EX0NBTl9TSEEzODQ6TUJFRFRMU19SU0FfQworZGVwZW5kc19vbjpNQkVEVExTX1BLQ1MxX1YxNTpQU0FfV0FOVF9BTEdfU0hBXzM4NDpNQkVEVExTX1JTQV9DCiBwa19zaWduX2V4dDpNQkVEVExTX1BLX1JTQToyMDQ4Ok1CRURUTFNfUEtfUlNBOk1CRURUTFNfTURfU0hBMzg0CiAKIFBLIHNpZ24gZXh0OiBSU0EyMDQ4LCBQS19SU0FTU0FfUFNTLCBNRF9TSEEzODQKLWRlcGVuZHNfb246TUJFRFRMU19QS0NTMV9WMjE6TUJFRFRMU19NRF9DQU5fU0hBMzg0Ok1CRURUTFNfUlNBX0MKK2RlcGVuZHNfb246TUJFRFRMU19QS0NTMV9WMjE6UFNBX1dBTlRfQUxHX1NIQV8zODQ6TUJFRFRMU19SU0FfQwogcGtfc2lnbl9leHQ6TUJFRFRMU19QS19SU0E6MjA0ODpNQkVEVExTX1BLX1JTQVNTQV9QU1M6TUJFRFRMU19NRF9TSEEzODQKIAogUEsgc2lnbiBleHQ6IFJTQTIwNDgsIFBLX1JTQSwgTURfU0hBNTEyCkBAIC03MjAsMTEgKzcyMCwxMSBAQAogcGtfc2lnbl9leHQ6TUJFRFRMU19QS19SU0E6MjA0ODpNQkVEVExTX1BLX1JTQVNTQV9QU1M6TUJFRFRMU19NRF9TSEE1MTIKIAogUEsgc2lnbiBleHQ6IFNFQ1AyNTZSMSwgUEtfRUNEU0EsIE1EX1NIQTI1NgotZGVwZW5kc19vbjpNQkVEVExTX1BLX0NBTl9FQ0RTQV9TSUdOOk1CRURUTFNfRUNQX0hBVkVfU0VDUDI1NlIxOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpNQkVEVExTX1BLX0NBTl9FQ0RTQV9TSUdOOk1CRURUTFNfRUNQX0hBVkVfU0VDUDI1NlIxOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBwa19zaWduX2V4dDpNQkVEVExTX1BLX0VDRFNBOk1CRURUTFNfRUNQX0RQX1NFQ1AyNTZSMTpNQkVEVExTX1BLX0VDRFNBOk1CRURUTFNfTURfU0hBMjU2CiAKIFBLIHNpZ24gZXh0OiBTRUNQMzg0UjEsIFBLX0VDRFNBLCBNRF9TSEEzODQKLWRlcGVuZHNfb246TUJFRFRMU19QS19DQU5fRUNEU0FfU0lHTjpNQkVEVExTX0VDUF9IQVZFX1NFQ1AzODRSMTpNQkVEVExTX01EX0NBTl9TSEEzODQKK2RlcGVuZHNfb246TUJFRFRMU19QS19DQU5fRUNEU0FfU0lHTjpNQkVEVExTX0VDUF9IQVZFX1NFQ1AzODRSMTpQU0FfV0FOVF9BTEdfU0hBXzM4NAogcGtfc2lnbl9leHQ6TUJFRFRMU19QS19FQ0RTQTpNQkVEVExTX0VDUF9EUF9TRUNQMzg0UjE6TUJFRFRMU19QS19FQ0RTQTpNQkVEVExTX01EX1NIQTM4NAogCiBQSyBzaWduIGV4dDogU0VDUDUyMVIxLCBQS19FQ0RTQSwgTURfU0hBNTEyCkBAIC03MzIsMTkgKzczMiwxOSBAQAogcGtfc2lnbl9leHQ6TUJFRFRMU19QS19FQ0RTQTpNQkVEVExTX0VDUF9EUF9TRUNQNTIxUjE6TUJFRFRMU19QS19FQ0RTQTpNQkVEVExTX01EX1NIQTUxMgogCiBQU0Egd3JhcHBlZCBzaWduIGV4dDogUlNBMjA0OCwgUEtfUlNBLCBNRF9TSEEyNTYKLWRlcGVuZHNfb246TUJFRFRMU19QS0NTMV9WMTU6TUJFRFRMU19NRF9DQU5fU0hBMjU2Ok1CRURUTFNfUlNBX0MKK2RlcGVuZHNfb246TUJFRFRMU19QS0NTMV9WMTU6UFNBX1dBTlRfQUxHX1NIQV8yNTY6TUJFRFRMU19SU0FfQwogcGtfcHNhX3dyYXBfc2lnbl9leHQ6TUJFRFRMU19QS19SU0E6MjA0ODpNQkVEVExTX1BLX1JTQTpNQkVEVExTX01EX1NIQTI1NgogCiBQU0Egd3JhcHBlZCBzaWduIGV4dDogUlNBMjA0OCwgUEtfUlNBU1NBX1BTUywgTURfU0hBMjU2Ci1kZXBlbmRzX29uOk1CRURUTFNfUEtDUzFfVjIxOk1CRURUTFNfTURfQ0FOX1NIQTI1NjpNQkVEVExTX1JTQV9DCitkZXBlbmRzX29uOk1CRURUTFNfUEtDUzFfVjIxOlBTQV9XQU5UX0FMR19TSEFfMjU2Ok1CRURUTFNfUlNBX0MKIHBrX3BzYV93cmFwX3NpZ25fZXh0Ok1CRURUTFNfUEtfUlNBOjIwNDg6TUJFRFRMU19QS19SU0FTU0FfUFNTOk1CRURUTFNfTURfU0hBMjU2CiAKIFBTQSB3cmFwcGVkIHNpZ24gZXh0OiBSU0EyMDQ4LCBQS19SU0EsIE1EX1NIQTM4NAotZGVwZW5kc19vbjpNQkVEVExTX1BLQ1MxX1YxNTpNQkVEVExTX01EX0NBTl9TSEEzODQ6TUJFRFRMU19SU0FfQworZGVwZW5kc19vbjpNQkVEVExTX1BLQ1MxX1YxNTpQU0FfV0FOVF9BTEdfU0hBXzM4NDpNQkVEVExTX1JTQV9DCiBwa19wc2Ffd3JhcF9zaWduX2V4dDpNQkVEVExTX1BLX1JTQToyMDQ4Ok1CRURUTFNfUEtfUlNBOk1CRURUTFNfTURfU0hBMzg0CiAKIFBTQSB3cmFwcGVkIHNpZ24gZXh0OiBSU0EyMDQ4LCBQS19SU0FTU0FfUFNTLCBNRF9TSEEzODQKLWRlcGVuZHNfb246TUJFRFRMU19QS0NTMV9WMjE6TUJFRFRMU19NRF9DQU5fU0hBMzg0Ok1CRURUTFNfUlNBX0MKK2RlcGVuZHNfb246TUJFRFRMU19QS0NTMV9WMjE6UFNBX1dBTlRfQUxHX1NIQV8zODQ6TUJFRFRMU19SU0FfQwogcGtfcHNhX3dyYXBfc2lnbl9leHQ6TUJFRFRMU19QS19SU0E6MjA0ODpNQkVEVExTX1BLX1JTQVNTQV9QU1M6TUJFRFRMU19NRF9TSEEzODQKIAogUFNBIHdyYXBwZWQgc2lnbiBleHQ6IFJTQTIwNDgsIFBLX1JTQSwgTURfU0hBNTEyCkBAIC03OTUsNyArNzk1LDcgQEAKIHBrX2dldF9wc2FfYXR0cmlidXRlczpNQkVEVExTX1BLX1JTQTpGUk9NX1BBSVI6UFNBX0tFWV9VU0FHRV9ERUNSWVBUOjE6UFNBX0FMR19SU0FfUEtDUzFWMTVfQ1JZUFQKIAogUFNBIGF0dHJpYnV0ZXMgZm9yIHBrOiBSU0EgdjIxIFNIQS0yNTYgcGFpciBERUNSWVBUCi1kZXBlbmRzX29uOk1CRURUTFNfUlNBX0M6TUJFRFRMU19QS0NTMV9WMjE6TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOk1CRURUTFNfUlNBX0M6TUJFRFRMU19QS0NTMV9WMjE6UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHBrX3JzYV92MjFfZ2V0X3BzYV9hdHRyaWJ1dGVzOk1CRURUTFNfTURfU0hBMjU2OkZST01fUEFJUjpQU0FfS0VZX1VTQUdFX0RFQ1JZUFQ6MTpQU0FfQUxHX1JTQV9PQUVQKFBTQV9BTEdfU0hBXzI1NikKIAogUFNBIGF0dHJpYnV0ZXMgZm9yIHBrOiBSU0EgdjIxIFNIQS01MTIgcGFpciBERUNSWVBUCkBAIC04MDcsNyArODA3LDcgQEAKIHBrX2dldF9wc2FfYXR0cmlidXRlczpNQkVEVExTX1BLX1JTQTpGUk9NX1BBSVI6UFNBX0tFWV9VU0FHRV9FTkNSWVBUOjA6UFNBX0FMR19SU0FfUEtDUzFWMTVfQ1JZUFQKIAogUFNBIGF0dHJpYnV0ZXMgZm9yIHBrOiBSU0EgdjIxIFNIQS0yNTYgcGFpci0+cHVibGljIEVOQ1JZUFQKLWRlcGVuZHNfb246TUJFRFRMU19SU0FfQzpNQkVEVExTX1BLQ1MxX1YyMTpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246TUJFRFRMU19SU0FfQzpNQkVEVExTX1BLQ1MxX1YyMTpQU0FfV0FOVF9BTEdfU0hBXzI1NgogcGtfcnNhX3YyMV9nZXRfcHNhX2F0dHJpYnV0ZXM6TUJFRFRMU19NRF9TSEEyNTY6RlJPTV9QQUlSOlBTQV9LRVlfVVNBR0VfRU5DUllQVDowOlBTQV9BTEdfUlNBX09BRVAoUFNBX0FMR19TSEFfMjU2KQogCiBQU0EgYXR0cmlidXRlcyBmb3IgcGs6IFJTQSB2MjEgU0hBLTUxMiBwYWlyLT5wdWJsaWMgRU5DUllQVApAQCAtODE5LDcgKzgxOSw3IEBACiBwa19nZXRfcHNhX2F0dHJpYnV0ZXM6TUJFRFRMU19QS19SU0E6RlJPTV9QVUJMSUM6UFNBX0tFWV9VU0FHRV9FTkNSWVBUOjA6UFNBX0FMR19SU0FfUEtDUzFWMTVfQ1JZUFQKIAogUFNBIGF0dHJpYnV0ZXMgZm9yIHBrOiBSU0EgdjIxIFNIQS0yNTYgcHVibGljIEVOQ1JZUFQKLWRlcGVuZHNfb246TUJFRFRMU19SU0FfQzpNQkVEVExTX1BLQ1MxX1YyMTpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246TUJFRFRMU19SU0FfQzpNQkVEVExTX1BLQ1MxX1YyMTpQU0FfV0FOVF9BTEdfU0hBXzI1NgogcGtfcnNhX3YyMV9nZXRfcHNhX2F0dHJpYnV0ZXM6TUJFRFRMU19NRF9TSEEyNTY6RlJPTV9QVUJMSUM6UFNBX0tFWV9VU0FHRV9FTkNSWVBUOjA6UFNBX0FMR19SU0FfT0FFUChQU0FfQUxHX1NIQV8yNTYpCiAKIFBTQSBhdHRyaWJ1dGVzIGZvciBwazogUlNBIHYyMSBTSEEtNTEyIHB1YmxpYyBFTkNSWVBUCkBAIC0xNTYwLDcgKzE1NjAsNyBAQAogcGtfY29weV9mcm9tX3BzYV9zdWNjZXNzOiI1ODdDRjdDNTdFQjdDNjI1NENCRjgwQ0M1OTg0NjUyMUI0RkJDQkE4QkM0QjM2MkE5QjA0M0YwREVCNDlDQ0ExIjpQU0FfS0VZX1RZUEVfRUNDX0tFWV9QQUlSKFBTQV9FQ0NfRkFNSUxZX1NFQ1BfUjEpOlBTQV9BTEdfRUNEU0EoUFNBX0FMR19BTllfSEFTSCkKIAogQ29weSBmcm9tIFBTQTogdmFsaWQgRUMgKFNFQ1BfUjFfMjU2ICsgRUNEU0EgKyBTSEFfMjU2KQotZGVwZW5kc19vbjpNQkVEVExTX0VDUF9IQVZFX1NFQ1AyNTZSMTpNQkVEVExTX1BLX0NBTl9FQ0RTQV9TSUdOOk1CRURUTFNfUEtfQ0FOX0VDRFNBX1ZFUklGWTpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246TUJFRFRMU19FQ1BfSEFWRV9TRUNQMjU2UjE6TUJFRFRMU19QS19DQU5fRUNEU0FfU0lHTjpNQkVEVExTX1BLX0NBTl9FQ0RTQV9WRVJJRlk6UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHBrX2NvcHlfZnJvbV9wc2Ffc3VjY2VzczoiNTg3Q0Y3QzU3RUI3QzYyNTRDQkY4MENDNTk4NDY1MjFCNEZCQ0JBOEJDNEIzNjJBOUIwNDNGMERFQjQ5Q0NBMSI6UFNBX0tFWV9UWVBFX0VDQ19LRVlfUEFJUihQU0FfRUNDX0ZBTUlMWV9TRUNQX1IxKTpQU0FfQUxHX0VDRFNBKFBTQV9BTEdfU0hBXzI1NikKIAogQ29weSBmcm9tIFBTQTogdmFsaWQgRUMgKFNFQ1BfUjFfMjU2ICsgRUNEU0EgKyBTSEFfNTEyKQpAQCAtMTU3Miw3ICsxNTcyLDcgQEAKIHBrX2NvcHlfZnJvbV9wc2Ffc3VjY2VzczoiNTg3Q0Y3QzU3RUI3QzYyNTRDQkY4MENDNTk4NDY1MjFCNEZCQ0JBOEJDNEIzNjJBOUIwNDNGMERFQjQ5Q0NBMSI6UFNBX0tFWV9UWVBFX0VDQ19LRVlfUEFJUihQU0FfRUNDX0ZBTUlMWV9TRUNQX1IxKTpQU0FfQUxHX0RFVEVSTUlOSVNUSUNfRUNEU0EoUFNBX0FMR19BTllfSEFTSCkKIAogQ29weSBmcm9tIFBTQTogdmFsaWQgRUMgKFNFQ1BfUjFfMjU2ICsgREVUX0VDRFNBICsgU0hBXzI1NikKLWRlcGVuZHNfb246TUJFRFRMU19FQ1BfSEFWRV9TRUNQMjU2UjE6TUJFRFRMU19QS19DQU5fRUNEU0FfU0lHTjpNQkVEVExTX1BLX0NBTl9FQ0RTQV9WRVJJRlk6TUJFRFRMU19FQ0RTQV9ERVRFUk1JTklTVElDOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpNQkVEVExTX0VDUF9IQVZFX1NFQ1AyNTZSMTpNQkVEVExTX1BLX0NBTl9FQ0RTQV9TSUdOOk1CRURUTFNfUEtfQ0FOX0VDRFNBX1ZFUklGWTpNQkVEVExTX0VDRFNBX0RFVEVSTUlOSVNUSUM6UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHBrX2NvcHlfZnJvbV9wc2Ffc3VjY2VzczoiNTg3Q0Y3QzU3RUI3QzYyNTRDQkY4MENDNTk4NDY1MjFCNEZCQ0JBOEJDNEIzNjJBOUIwNDNGMERFQjQ5Q0NBMSI6UFNBX0tFWV9UWVBFX0VDQ19LRVlfUEFJUihQU0FfRUNDX0ZBTUlMWV9TRUNQX1IxKTpQU0FfQUxHX0RFVEVSTUlOSVNUSUNfRUNEU0EoUFNBX0FMR19TSEFfMjU2KQogCiBDb3B5IGZyb20gUFNBOiB2YWxpZCBFQyAoU0VDUF9SMV8yNTYgKyBERVRfRUNEU0EgKyBTSEFfNTEyKQpAQCAtMTU4NCwyMyArMTU4NCwyMyBAQAogcGtfY29weV9mcm9tX3BzYV9zdWNjZXNzOiI1ODdDRjdDNTdFQjdDNjI1NENCRjgwQ0M1OTg0NjUyMUI0RkJDQkE4QkM0QjM2MkE5QjA0M0YwREVCNDlDQ0ExIjpQU0FfS0VZX1RZUEVfRUNDX0tFWV9QQUlSKFBTQV9FQ0NfRkFNSUxZX1NFQ1BfUjEpOlBTQV9BTEdfRUNEU0FfQU5ZCiAKIENvcHkgZnJvbSBQU0E6IHZhbGlkIEVDIChTRUNQX1IxXzUyMSArIEVDRFNBICsgU0hBXzI1NikKLWRlcGVuZHNfb246TUJFRFRMU19FQ1BfSEFWRV9TRUNQNTIxUjE6TUJFRFRMU19QS19DQU5fRUNEU0FfU0lHTjpNQkVEVExTX1BLX0NBTl9FQ0RTQV9WRVJJRlk6TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOk1CRURUTFNfRUNQX0hBVkVfU0VDUDUyMVIxOk1CRURUTFNfUEtfQ0FOX0VDRFNBX1NJR046TUJFRFRMU19QS19DQU5fRUNEU0FfVkVSSUZZOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBwa19jb3B5X2Zyb21fcHNhX3N1Y2Nlc3M6IjAwNWRiYjhlMTIyNDBhNjI5MzJiODhjZGQ5M2MzMWNkZDg4NzNhMmMxNWU0MGNjM2M5ZjhlNjk1Yjc3ZmFlMDE1YTQ0ZmU1MjY3ZWY3ODY4Y2IyOGNmYjk1NzkyODJmZTA2MGRlNDRmZTZkZTI2Zjc0YTBkOTRhZmRhYTg3MGJlZmJjNSI6UFNBX0tFWV9UWVBFX0VDQ19LRVlfUEFJUihQU0FfRUNDX0ZBTUlMWV9TRUNQX1IxKTpQU0FfQUxHX0VDRFNBKFBTQV9BTEdfU0hBXzI1NikKIAogQ29weSBmcm9tIFBTQTogdmFsaWQgRUMgKFNFQ1BfSzFfMjU2ICsgRUNEU0EgKyBTSEFfMjU2KQotZGVwZW5kc19vbjpNQkVEVExTX0VDUF9IQVZFX1NFQ1AyNTZLMTpNQkVEVExTX1BLX0NBTl9FQ0RTQV9TSUdOOk1CRURUTFNfUEtfQ0FOX0VDRFNBX1ZFUklGWTpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfRUNDX1NFQ1BfSzFfMjU2Ok1CRURUTFNfUEtfQ0FOX0VDRFNBX1NJR046TUJFRFRMU19QS19DQU5fRUNEU0FfVkVSSUZZOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBwa19jb3B5X2Zyb21fcHNhX3N1Y2Nlc3M6IjcxNTRmMDRmY2M3OWFjOWRmMTY1MmRjZjk5MDMxNjEwNTkyYjJiMjdmNzRmNTk4NTY5MGE5ODczNTdiYTA0MjgiOlBTQV9LRVlfVFlQRV9FQ0NfS0VZX1BBSVIoUFNBX0VDQ19GQU1JTFlfU0VDUF9LMSk6UFNBX0FMR19FQ0RTQShQU0FfQUxHX1NIQV8yNTYpCiAKICMgVGhlIGtleSdzIGFsZ29yaXRobSBvbmx5IGFsbG93cyBFQ0RILCBidXQgcGtfY29weV9mcm9tX3BzYSgpIGlnbm9yZXMgdGhpcyBpbmZvcm1hdGlvbgogIyB3aGVuIGJ1aWxkaW5nIHRoZSBQSyBjb250ZXh0LgogQ29weSBmcm9tIFBTQTogdmFsaWQgRUMsIHdyb25nIGFsZyAoU0VDUF9SMV8yNTYgKyBFQ0RIKQotZGVwZW5kc19vbjpNQkVEVExTX0VDUF9IQVZFX1NFQ1AyNTZSMTpNQkVEVExTX1BLX0NBTl9FQ0RTQV9TSUdOOk1CRURUTFNfUEtfQ0FOX0VDRFNBX1ZFUklGWTpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246TUJFRFRMU19FQ1BfSEFWRV9TRUNQMjU2UjE6TUJFRFRMU19QS19DQU5fRUNEU0FfU0lHTjpNQkVEVExTX1BLX0NBTl9FQ0RTQV9WRVJJRlk6UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHBrX2NvcHlfZnJvbV9wc2Ffc3VjY2VzczoiNTg3Q0Y3QzU3RUI3QzYyNTRDQkY4MENDNTk4NDY1MjFCNEZCQ0JBOEJDNEIzNjJBOUIwNDNGMERFQjQ5Q0NBMSI6UFNBX0tFWV9UWVBFX0VDQ19LRVlfUEFJUihQU0FfRUNDX0ZBTUlMWV9TRUNQX1IxKTpQU0FfQUxHX0VDREgKIAogIyBUaGUga2V5J3MgYWxnb3JpdGhtIGlzIGFic29sdXRlbHkgd3JvbmcgZm9yIGFuIEVDIGtleSwgYnV0IHBrX2NvcHlfZnJvbV9wc2EoKQogIyBpZ25vcmVzIHRoaXMgaW5mb3JtYXRpb24gd2hlbiBidWlsZGluZyB0aGUgUEsgY29udGV4dC4KIENvcHkgZnJvbSBQU0E6IHZhbGlkIEVDLCB3cm9uZyBhbGcgKFNFQ1BfUjFfMjU2ICsgQ01BQykKLWRlcGVuZHNfb246TUJFRFRMU19FQ1BfSEFWRV9TRUNQMjU2UjE6TUJFRFRMU19QS19DQU5fRUNEU0FfU0lHTjpNQkVEVExTX1BLX0NBTl9FQ0RTQV9WRVJJRlk6TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOk1CRURUTFNfRUNQX0hBVkVfU0VDUDI1NlIxOk1CRURUTFNfUEtfQ0FOX0VDRFNBX1NJR046TUJFRFRMU19QS19DQU5fRUNEU0FfVkVSSUZZOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBwa19jb3B5X2Zyb21fcHNhX3N1Y2Nlc3M6IjU4N0NGN0M1N0VCN0M2MjU0Q0JGODBDQzU5ODQ2NTIxQjRGQkNCQThCQzRCMzYyQTlCMDQzRjBERUI0OUNDQTEiOlBTQV9LRVlfVFlQRV9FQ0NfS0VZX1BBSVIoUFNBX0VDQ19GQU1JTFlfU0VDUF9SMSk6UFNBX0FMR19DTUFDCiAKIENvcHkgZnJvbSBQU0E6IHZhbGlkIFJTQSAoUEtDUzFWMTVfU0lHTiArIEFOWV9IQVNIKQpAQCAtMTYwOCw3ICsxNjA4LDcgQEAKIHBrX2NvcHlfZnJvbV9wc2Ffc3VjY2VzczoiMzA4MjA0YTQwMjAxMDAwMjgyMDEwMTAwZWYyNGQ4MGY2YjdhMGY2MmFiMmY3NTBhODM3MGMxYzM5NzgxYWJlMmY3YWU1Y2JjNjk4ZWJiYzUxMDY3YWY2OGM4YjAyZTViZmFmZTBiMjk2YTJmZGNhOGVlNTMyN2JmMzM3MGJkMjZjNTI5ZDE3M2M0MzU2ZDhhZDUxZjYwNmFjNzMwZTNiZTUwOWQ4NTM1YzljNTE5MjcyMjJkNmM0ZTc3MGVmZWM0ZDliMGJkMTE0MTBlNWUyZTAxZTA5MzcwMGQzNThhYWI4MjkyMjk3NDgzYzY1ODcwZWE2ZDRjYTkyOTlmNDM0Nzc5MGY2MjIzNDgwNzMyNzI2YTk3YjM0YmI0ZDUzY2IzZjE4OGUzYzk3MTE1YjAyOWZhOWEyY2NlNGM2ZDkzNTk3N2E5MDczN2FjOGIyYTJjNTY5MWFkOTI4YjIyNjgxY2EwNWVlMzhkZGJhMjI3OGM4NTRmNTEyODFjNWU0ODU2MDkwYWNhNTliZjcxOWExNjdlNjNiYjkzMjU4MGFlMmI1OTllMWEyOTcxOTQ2OTZlNjM3YTkxOWJjOWQyY2FmMjE0ZTU5ZDQ2ZWQxYTEyZTU5MWI2MDhmMjAzMTc0NDExMTU1MTQzMGQ5YWMzOTA4Mjk1N2FlMWNlMDNhODgwNjg4OTY3MDFlNmNlMTlhODM4OTBmZjU3NjEwMjAzMDEwMDAxMDI4MjAxMDA3MDZmYjUzYTAyYzEzZmNjOTc0OWQ3ZDA5YTllMDAyYzEyZTZiZmM3MTVjNmEwMDk2MWUzZGVmYWI3NGNkODk2ZmU4YzdmMmY3NWUxY2RhM2FhMmU1OGE0MDA3MThlNjU4MjJkMDY3MWRkMGY1ZDRmZmRiNzU1MGE4YTRiOTc0YzdjZGNjYWE3Mjc0NWY4NjRhMmJhMGRhYTZkOTI0N2IyZDg5ZDZmNDE2NDRjODk4ODNjM2IyMjIyYTU3NTRlM2NjN2E5MWRjYWE3Yjg0YWNmNjI0OTc2Mzk5OGFlY2NmNTU4MDE2ZTYzODM1MmFkNDQ4MzUwMDZmMmVlOTRlNjkxZDAwNzBjZTU2MTY3N2YyYTIyYTEyZjM1N2JkNzYyYzU3ZjgwZjFmNDkyMWYwZjI2YjNlZDc1ODQ3OGQxMTA4NmMxODI4NzQzNTVlZjUwMzllOGQ4NTQyOTFiOWNlN2Y4YjI4NGVjODFmMTQxYjcyNTUzMTM1MDdmNWVhMTU5ZDZiMWMwZWUxNzZlNzc0M2QzYzY1ZDUzNmUxZTRhYWYyNDA4OWMxZTAwYzgwMjEwMTJiODg0NmE0OTcxYTA2OTUwMzA1MDRhY2UzNjIwNzdlOGIyZmNiNGZiZGQ3MGJmYjczNGEzZmU3ZDllMWEyNWJkZDBjYjBmMmZjYjU2ZWNjNTAyODE4MTAwZjhmZGZiYWMxYzAzMzkxMWI1YTE4NDk4MGQwODFmNzAwZjRkNDUwY2ViZjE4Y2JkYzY4ZjE2MGE1YWJkNTgwZTZmOGY1ODAwZmQwYjYwNTIxZGJlMmQ1NDllODI2MTdhZmU3MGQyYWQwMDRjMmY0NTQwNWQ5NGU0NDE4ZThjMmI4ZGE2YmNhYTQwN2JiZmE1NDc3YjVhNmZjZWNjZmNiOTlmNTFjNmMxNmJkMTcyMDJkOTk3YmRjYWVjODNiODcwZTNlMTAxYWNjMDVlMDc1NDAyMGVjMjA3ZWY1ZWM5OTM0YWM4MWNkNjE3YWY3MmNkOTRiMmJiNDAwZWIyMDc4MzAyODE4MTAwZjVkZmU3NGE1NDhjMDQ5NTAxNzhmNTAxMzBkNWFhZGJlNWQxZjRiNTI1MjdjMGJmYWQ5YWEwZDczNzMxZmIyNDIxOWNiNWVhNWM0YjRmYTU2MTMzZDVlYTkyMjVmYTdkMGNjYzliZGNjNzhiNzczMDNhMmU3M2MxN2U5YTQ2YjliMDkwMjA2MDQ0OTZhODQ5ZjA2OWQwZDg3NzEzZTA2YTVkMzc0MjcxYjI2MjlmNWJhMjIwNTA2YjYwNmExMDE4MjhkMjBkYTlmY2ZhM2E3ZTc1YjEzNTk4NzI2MGJlNmQzNzYyMmZjM2Y0YmY0ZmQyZGZkOTY1NWRhNWZmMGM0YjAyODE4MTAwZDRkNzk3Yzk1OWYwY2Y1OWZhMWY2NWNlZWM2NGUzMmFkMTg5YzVkYWYzZGRmOWU3NDdkMjhjOGViMTVlNjVlNTgxMmJkMTk4OTZiNmEwZDFkMTI2ZmU2Y2Y1NGE5MmI1YTZjNzFlZjA0ZmVlZDAwMWFjYjFkMjUzMDQ0ZjJjMzcxNmQxNGYzOTYyMDFlNmEzMGM2NWJmYmIwZmQ2NWViYWY2MWJkYjgwZmZmZjdjMmMzZjgwZGNmNjk4MTM0OTE5MDc1MzEyMzE3MDA3NzBkMDM5MmExMDY2ZTQxMWVjZDIwMWZjZTlkOTgxNDliMzIzNTU1NzJiODVlODg5ZmFhZDAyODE4MTAwOWQ4OThiYzE2NTcwOWQ1MmY3YjE4ZjkxZTZiZjUwOGQzYWIwOGVkMTJkZjA0ZGEwYzJkNDBiNzAzOWNlNGQ3MmI2MTI5OWMwODJjODQyNGNkZDdkZmZmNzFmMTMzNDZlYzEyZmFjNDIwNjljYzY4ZTYxMDhmODY0MjcwMTI0ODViZmFhNjkwNDI1OGUzZTVmYjlhOWEzMDViZjJlM2UyMTA4N2VlYTk0YmNjZTUxZmFiZDYzNjUwMzk3YWZmZDg1ZWQ0OWMxMzU4NDgwYjNjZmU5MGFkNTIzNGI0ZGNmNTU1ZDIyMGQyNmM5ZmY3NjVlY2ZjYzk0MTUyZmQxYmUwNzAyODE4MDRiZjc3YjRiYWU4Mzg2NzcyZGU4MzBjYzc1ZjJkMWQ0YjgyMjFiM2Y4MTcyMDhlMDhjMDAyYWMwNTQ5OTAyNjc3ZTRmMGU3YmNlNWJhMWIzZGE3NGZiYmUxMzg3NThlNjg1M2I0YTViN2JmMDY3MmJjMTE3MGM2NGZhNTAyYTVlMjRlMzQ3MmRiNDMzYjRlMzA3NjFlYWI2ZWJiOWUyMDcyMzVmZDg4Yjk3YjFiMzBlMTRmMzY0YjYyODIxOWQ2ZTE3MDU2NTQzYTRlMjlhNGRlMWU0MWFkMzc5MjdjZTIzZDA0NDI2MjM3NDRiYzM1YTE4NzQyOTY5NjAwMjkwNDQiOlBTQV9LRVlfVFlQRV9SU0FfS0VZX1BBSVI6UFNBX0FMR19SU0FfUEtDUzFWMTVfU0lHTihQU0FfQUxHX0FOWV9IQVNIKQogCiBDb3B5IGZyb20gUFNBOiB2YWxpZCBSU0EgKFBLQ1MxVjE1X1NJR04gKyBTSEFfMjU2KQotZGVwZW5kc19vbjpNQkVEVExTX1JTQV9DOk1CRURUTFNfUEtDUzFfVjE1Ok1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpNQkVEVExTX1JTQV9DOk1CRURUTFNfUEtDUzFfVjE1OlBTQV9XQU5UX0FMR19TSEFfMjU2CiBwa19jb3B5X2Zyb21fcHNhX3N1Y2Nlc3M6IjMwODIwNGE0MDIwMTAwMDI4MjAxMDEwMGVmMjRkODBmNmI3YTBmNjJhYjJmNzUwYTgzNzBjMWMzOTc4MWFiZTJmN2FlNWNiYzY5OGViYmM1MTA2N2FmNjhjOGIwMmU1YmZhZmUwYjI5NmEyZmRjYThlZTUzMjdiZjMzNzBiZDI2YzUyOWQxNzNjNDM1NmQ4YWQ1MWY2MDZhYzczMGUzYmU1MDlkODUzNWM5YzUxOTI3MjIyZDZjNGU3NzBlZmVjNGQ5YjBiZDExNDEwZTVlMmUwMWUwOTM3MDBkMzU4YWFiODI5MjI5NzQ4M2M2NTg3MGVhNmQ0Y2E5Mjk5ZjQzNDc3OTBmNjIyMzQ4MDczMjcyNmE5N2IzNGJiNGQ1M2NiM2YxODhlM2M5NzExNWIwMjlmYTlhMmNjZTRjNmQ5MzU5NzdhOTA3MzdhYzhiMmEyYzU2OTFhZDkyOGIyMjY4MWNhMDVlZTM4ZGRiYTIyNzhjODU0ZjUxMjgxYzVlNDg1NjA5MGFjYTU5YmY3MTlhMTY3ZTYzYmI5MzI1ODBhZTJiNTk5ZTFhMjk3MTk0Njk2ZTYzN2E5MTliYzlkMmNhZjIxNGU1OWQ0NmVkMWExMmU1OTFiNjA4ZjIwMzE3NDQxMTE1NTE0MzBkOWFjMzkwODI5NTdhZTFjZTAzYTg4MDY4ODk2NzAxZTZjZTE5YTgzODkwZmY1NzYxMDIwMzAxMDAwMTAyODIwMTAwNzA2ZmI1M2EwMmMxM2ZjYzk3NDlkN2QwOWE5ZTAwMmMxMmU2YmZjNzE1YzZhMDA5NjFlM2RlZmFiNzRjZDg5NmZlOGM3ZjJmNzVlMWNkYTNhYTJlNThhNDAwNzE4ZTY1ODIyZDA2NzFkZDBmNWQ0ZmZkYjc1NTBhOGE0Yjk3NGM3Y2RjY2FhNzI3NDVmODY0YTJiYTBkYWE2ZDkyNDdiMmQ4OWQ2ZjQxNjQ0Yzg5ODgzYzNiMjIyMmE1NzU0ZTNjYzdhOTFkY2FhN2I4NGFjZjYyNDk3NjM5OThhZWNjZjU1ODAxNmU2MzgzNTJhZDQ0ODM1MDA2ZjJlZTk0ZTY5MWQwMDcwY2U1NjE2NzdmMmEyMmExMmYzNTdiZDc2MmM1N2Y4MGYxZjQ5MjFmMGYyNmIzZWQ3NTg0NzhkMTEwODZjMTgyODc0MzU1ZWY1MDM5ZThkODU0MjkxYjljZTdmOGIyODRlYzgxZjE0MWI3MjU1MzEzNTA3ZjVlYTE1OWQ2YjFjMGVlMTc2ZTc3NDNkM2M2NWQ1MzZlMWU0YWFmMjQwODljMWUwMGM4MDIxMDEyYjg4NDZhNDk3MWEwNjk1MDMwNTA0YWNlMzYyMDc3ZThiMmZjYjRmYmRkNzBiZmI3MzRhM2ZlN2Q5ZTFhMjViZGQwY2IwZjJmY2I1NmVjYzUwMjgxODEwMGY4ZmRmYmFjMWMwMzM5MTFiNWExODQ5ODBkMDgxZjcwMGY0ZDQ1MGNlYmYxOGNiZGM2OGYxNjBhNWFiZDU4MGU2ZjhmNTgwMGZkMGI2MDUyMWRiZTJkNTQ5ZTgyNjE3YWZlNzBkMmFkMDA0YzJmNDU0MDVkOTRlNDQxOGU4YzJiOGRhNmJjYWE0MDdiYmZhNTQ3N2I1YTZmY2VjY2ZjYjk5ZjUxYzZjMTZiZDE3MjAyZDk5N2JkY2FlYzgzYjg3MGUzZTEwMWFjYzA1ZTA3NTQwMjBlYzIwN2VmNWVjOTkzNGFjODFjZDYxN2FmNzJjZDk0YjJiYjQwMGViMjA3ODMwMjgxODEwMGY1ZGZlNzRhNTQ4YzA0OTUwMTc4ZjUwMTMwZDVhYWRiZTVkMWY0YjUyNTI3YzBiZmFkOWFhMGQ3MzczMWZiMjQyMTljYjVlYTVjNGI0ZmE1NjEzM2Q1ZWE5MjI1ZmE3ZDBjY2M5YmRjYzc4Yjc3MzAzYTJlNzNjMTdlOWE0NmI5YjA5MDIwNjA0NDk2YTg0OWYwNjlkMGQ4NzcxM2UwNmE1ZDM3NDI3MWIyNjI5ZjViYTIyMDUwNmI2MDZhMTAxODI4ZDIwZGE5ZmNmYTNhN2U3NWIxMzU5ODcyNjBiZTZkMzc2MjJmYzNmNGJmNGZkMmRmZDk2NTVkYTVmZjBjNGIwMjgxODEwMGQ0ZDc5N2M5NTlmMGNmNTlmYTFmNjVjZWVjNjRlMzJhZDE4OWM1ZGFmM2RkZjllNzQ3ZDI4YzhlYjE1ZTY1ZTU4MTJiZDE5ODk2YjZhMGQxZDEyNmZlNmNmNTRhOTJiNWE2YzcxZWYwNGZlZWQwMDFhY2IxZDI1MzA0NGYyYzM3MTZkMTRmMzk2MjAxZTZhMzBjNjViZmJiMGZkNjVlYmFmNjFiZGI4MGZmZmY3YzJjM2Y4MGRjZjY5ODEzNDkxOTA3NTMxMjMxNzAwNzcwZDAzOTJhMTA2NmU0MTFlY2QyMDFmY2U5ZDk4MTQ5YjMyMzU1NTcyYjg1ZTg4OWZhYWQwMjgxODEwMDlkODk4YmMxNjU3MDlkNTJmN2IxOGY5MWU2YmY1MDhkM2FiMDhlZDEyZGYwNGRhMGMyZDQwYjcwMzljZTRkNzJiNjEyOTljMDgyYzg0MjRjZGQ3ZGZmZjcxZjEzMzQ2ZWMxMmZhYzQyMDY5Y2M2OGU2MTA4Zjg2NDI3MDEyNDg1YmZhYTY5MDQyNThlM2U1ZmI5YTlhMzA1YmYyZTNlMjEwODdlZWE5NGJjY2U1MWZhYmQ2MzY1MDM5N2FmZmQ4NWVkNDljMTM1ODQ4MGIzY2ZlOTBhZDUyMzRiNGRjZjU1NWQyMjBkMjZjOWZmNzY1ZWNmY2M5NDE1MmZkMWJlMDcwMjgxODA0YmY3N2I0YmFlODM4Njc3MmRlODMwY2M3NWYyZDFkNGI4MjIxYjNmODE3MjA4ZTA4YzAwMmFjMDU0OTkwMjY3N2U0ZjBlN2JjZTViYTFiM2RhNzRmYmJlMTM4NzU4ZTY4NTNiNGE1YjdiZjA2NzJiYzExNzBjNjRmYTUwMmE1ZTI0ZTM0NzJkYjQzM2I0ZTMwNzYxZWFiNmViYjllMjA3MjM1ZmQ4OGI5N2IxYjMwZTE0ZjM2NGI2MjgyMTlkNmUxNzA1NjU0M2E0ZTI5YTRkZTFlNDFhZDM3OTI3Y2UyM2QwNDQyNjIzNzQ0YmMzNWExODc0Mjk2OTYwMDI5MDQ0IjpQU0FfS0VZX1RZUEVfUlNBX0tFWV9QQUlSOlBTQV9BTEdfUlNBX1BLQ1MxVjE1X1NJR04oUFNBX0FMR19TSEFfMjU2KQogCiBDb3B5IGZyb20gUFNBOiB2YWxpZCBSU0EgKFBLQ1MxVjE1X1NJR04gKyBTSEFfNTEyKQpAQCAtMTYyMCw3ICsxNjIwLDcgQEAKIHBrX2NvcHlfZnJvbV9wc2Ffc3VjY2VzczoiMzA4MjA0YTQwMjAxMDAwMjgyMDEwMTAwZWYyNGQ4MGY2YjdhMGY2MmFiMmY3NTBhODM3MGMxYzM5NzgxYWJlMmY3YWU1Y2JjNjk4ZWJiYzUxMDY3YWY2OGM4YjAyZTViZmFmZTBiMjk2YTJmZGNhOGVlNTMyN2JmMzM3MGJkMjZjNTI5ZDE3M2M0MzU2ZDhhZDUxZjYwNmFjNzMwZTNiZTUwOWQ4NTM1YzljNTE5MjcyMjJkNmM0ZTc3MGVmZWM0ZDliMGJkMTE0MTBlNWUyZTAxZTA5MzcwMGQzNThhYWI4MjkyMjk3NDgzYzY1ODcwZWE2ZDRjYTkyOTlmNDM0Nzc5MGY2MjIzNDgwNzMyNzI2YTk3YjM0YmI0ZDUzY2IzZjE4OGUzYzk3MTE1YjAyOWZhOWEyY2NlNGM2ZDkzNTk3N2E5MDczN2FjOGIyYTJjNTY5MWFkOTI4YjIyNjgxY2EwNWVlMzhkZGJhMjI3OGM4NTRmNTEyODFjNWU0ODU2MDkwYWNhNTliZjcxOWExNjdlNjNiYjkzMjU4MGFlMmI1OTllMWEyOTcxOTQ2OTZlNjM3YTkxOWJjOWQyY2FmMjE0ZTU5ZDQ2ZWQxYTEyZTU5MWI2MDhmMjAzMTc0NDExMTU1MTQzMGQ5YWMzOTA4Mjk1N2FlMWNlMDNhODgwNjg4OTY3MDFlNmNlMTlhODM4OTBmZjU3NjEwMjAzMDEwMDAxMDI4MjAxMDA3MDZmYjUzYTAyYzEzZmNjOTc0OWQ3ZDA5YTllMDAyYzEyZTZiZmM3MTVjNmEwMDk2MWUzZGVmYWI3NGNkODk2ZmU4YzdmMmY3NWUxY2RhM2FhMmU1OGE0MDA3MThlNjU4MjJkMDY3MWRkMGY1ZDRmZmRiNzU1MGE4YTRiOTc0YzdjZGNjYWE3Mjc0NWY4NjRhMmJhMGRhYTZkOTI0N2IyZDg5ZDZmNDE2NDRjODk4ODNjM2IyMjIyYTU3NTRlM2NjN2E5MWRjYWE3Yjg0YWNmNjI0OTc2Mzk5OGFlY2NmNTU4MDE2ZTYzODM1MmFkNDQ4MzUwMDZmMmVlOTRlNjkxZDAwNzBjZTU2MTY3N2YyYTIyYTEyZjM1N2JkNzYyYzU3ZjgwZjFmNDkyMWYwZjI2YjNlZDc1ODQ3OGQxMTA4NmMxODI4NzQzNTVlZjUwMzllOGQ4NTQyOTFiOWNlN2Y4YjI4NGVjODFmMTQxYjcyNTUzMTM1MDdmNWVhMTU5ZDZiMWMwZWUxNzZlNzc0M2QzYzY1ZDUzNmUxZTRhYWYyNDA4OWMxZTAwYzgwMjEwMTJiODg0NmE0OTcxYTA2OTUwMzA1MDRhY2UzNjIwNzdlOGIyZmNiNGZiZGQ3MGJmYjczNGEzZmU3ZDllMWEyNWJkZDBjYjBmMmZjYjU2ZWNjNTAyODE4MTAwZjhmZGZiYWMxYzAzMzkxMWI1YTE4NDk4MGQwODFmNzAwZjRkNDUwY2ViZjE4Y2JkYzY4ZjE2MGE1YWJkNTgwZTZmOGY1ODAwZmQwYjYwNTIxZGJlMmQ1NDllODI2MTdhZmU3MGQyYWQwMDRjMmY0NTQwNWQ5NGU0NDE4ZThjMmI4ZGE2YmNhYTQwN2JiZmE1NDc3YjVhNmZjZWNjZmNiOTlmNTFjNmMxNmJkMTcyMDJkOTk3YmRjYWVjODNiODcwZTNlMTAxYWNjMDVlMDc1NDAyMGVjMjA3ZWY1ZWM5OTM0YWM4MWNkNjE3YWY3MmNkOTRiMmJiNDAwZWIyMDc4MzAyODE4MTAwZjVkZmU3NGE1NDhjMDQ5NTAxNzhmNTAxMzBkNWFhZGJlNWQxZjRiNTI1MjdjMGJmYWQ5YWEwZDczNzMxZmIyNDIxOWNiNWVhNWM0YjRmYTU2MTMzZDVlYTkyMjVmYTdkMGNjYzliZGNjNzhiNzczMDNhMmU3M2MxN2U5YTQ2YjliMDkwMjA2MDQ0OTZhODQ5ZjA2OWQwZDg3NzEzZTA2YTVkMzc0MjcxYjI2MjlmNWJhMjIwNTA2YjYwNmExMDE4MjhkMjBkYTlmY2ZhM2E3ZTc1YjEzNTk4NzI2MGJlNmQzNzYyMmZjM2Y0YmY0ZmQyZGZkOTY1NWRhNWZmMGM0YjAyODE4MTAwZDRkNzk3Yzk1OWYwY2Y1OWZhMWY2NWNlZWM2NGUzMmFkMTg5YzVkYWYzZGRmOWU3NDdkMjhjOGViMTVlNjVlNTgxMmJkMTk4OTZiNmEwZDFkMTI2ZmU2Y2Y1NGE5MmI1YTZjNzFlZjA0ZmVlZDAwMWFjYjFkMjUzMDQ0ZjJjMzcxNmQxNGYzOTYyMDFlNmEzMGM2NWJmYmIwZmQ2NWViYWY2MWJkYjgwZmZmZjdjMmMzZjgwZGNmNjk4MTM0OTE5MDc1MzEyMzE3MDA3NzBkMDM5MmExMDY2ZTQxMWVjZDIwMWZjZTlkOTgxNDliMzIzNTU1NzJiODVlODg5ZmFhZDAyODE4MTAwOWQ4OThiYzE2NTcwOWQ1MmY3YjE4ZjkxZTZiZjUwOGQzYWIwOGVkMTJkZjA0ZGEwYzJkNDBiNzAzOWNlNGQ3MmI2MTI5OWMwODJjODQyNGNkZDdkZmZmNzFmMTMzNDZlYzEyZmFjNDIwNjljYzY4ZTYxMDhmODY0MjcwMTI0ODViZmFhNjkwNDI1OGUzZTVmYjlhOWEzMDViZjJlM2UyMTA4N2VlYTk0YmNjZTUxZmFiZDYzNjUwMzk3YWZmZDg1ZWQ0OWMxMzU4NDgwYjNjZmU5MGFkNTIzNGI0ZGNmNTU1ZDIyMGQyNmM5ZmY3NjVlY2ZjYzk0MTUyZmQxYmUwNzAyODE4MDRiZjc3YjRiYWU4Mzg2NzcyZGU4MzBjYzc1ZjJkMWQ0YjgyMjFiM2Y4MTcyMDhlMDhjMDAyYWMwNTQ5OTAyNjc3ZTRmMGU3YmNlNWJhMWIzZGE3NGZiYmUxMzg3NThlNjg1M2I0YTViN2JmMDY3MmJjMTE3MGM2NGZhNTAyYTVlMjRlMzQ3MmRiNDMzYjRlMzA3NjFlYWI2ZWJiOWUyMDcyMzVmZDg4Yjk3YjFiMzBlMTRmMzY0YjYyODIxOWQ2ZTE3MDU2NTQzYTRlMjlhNGRlMWU0MWFkMzc5MjdjZTIzZDA0NDI2MjM3NDRiYzM1YTE4NzQyOTY5NjAwMjkwNDQiOlBTQV9LRVlfVFlQRV9SU0FfS0VZX1BBSVI6UFNBX0FMR19SU0FfUEtDUzFWMTVfQ1JZUFQKIAogQ29weSBmcm9tIFBTQTogdmFsaWQgUlNBIChPQUVQICsgU0hBXzI1NikKLWRlcGVuZHNfb246TUJFRFRMU19SU0FfQzpNQkVEVExTX1BLQ1MxX1YyMTpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246TUJFRFRMU19SU0FfQzpNQkVEVExTX1BLQ1MxX1YyMTpQU0FfV0FOVF9BTEdfU0hBXzI1NgogcGtfY29weV9mcm9tX3BzYV9zdWNjZXNzOiIzMDgyMDRhNDAyMDEwMDAyODIwMTAxMDBlZjI0ZDgwZjZiN2EwZjYyYWIyZjc1MGE4MzcwYzFjMzk3ODFhYmUyZjdhZTVjYmM2OThlYmJjNTEwNjdhZjY4YzhiMDJlNWJmYWZlMGIyOTZhMmZkY2E4ZWU1MzI3YmYzMzcwYmQyNmM1MjlkMTczYzQzNTZkOGFkNTFmNjA2YWM3MzBlM2JlNTA5ZDg1MzVjOWM1MTkyNzIyMmQ2YzRlNzcwZWZlYzRkOWIwYmQxMTQxMGU1ZTJlMDFlMDkzNzAwZDM1OGFhYjgyOTIyOTc0ODNjNjU4NzBlYTZkNGNhOTI5OWY0MzQ3NzkwZjYyMjM0ODA3MzI3MjZhOTdiMzRiYjRkNTNjYjNmMTg4ZTNjOTcxMTViMDI5ZmE5YTJjY2U0YzZkOTM1OTc3YTkwNzM3YWM4YjJhMmM1NjkxYWQ5MjhiMjI2ODFjYTA1ZWUzOGRkYmEyMjc4Yzg1NGY1MTI4MWM1ZTQ4NTYwOTBhY2E1OWJmNzE5YTE2N2U2M2JiOTMyNTgwYWUyYjU5OWUxYTI5NzE5NDY5NmU2MzdhOTE5YmM5ZDJjYWYyMTRlNTlkNDZlZDFhMTJlNTkxYjYwOGYyMDMxNzQ0MTExNTUxNDMwZDlhYzM5MDgyOTU3YWUxY2UwM2E4ODA2ODg5NjcwMWU2Y2UxOWE4Mzg5MGZmNTc2MTAyMDMwMTAwMDEwMjgyMDEwMDcwNmZiNTNhMDJjMTNmY2M5NzQ5ZDdkMDlhOWUwMDJjMTJlNmJmYzcxNWM2YTAwOTYxZTNkZWZhYjc0Y2Q4OTZmZThjN2YyZjc1ZTFjZGEzYWEyZTU4YTQwMDcxOGU2NTgyMmQwNjcxZGQwZjVkNGZmZGI3NTUwYThhNGI5NzRjN2NkY2NhYTcyNzQ1Zjg2NGEyYmEwZGFhNmQ5MjQ3YjJkODlkNmY0MTY0NGM4OTg4M2MzYjIyMjJhNTc1NGUzY2M3YTkxZGNhYTdiODRhY2Y2MjQ5NzYzOTk4YWVjY2Y1NTgwMTZlNjM4MzUyYWQ0NDgzNTAwNmYyZWU5NGU2OTFkMDA3MGNlNTYxNjc3ZjJhMjJhMTJmMzU3YmQ3NjJjNTdmODBmMWY0OTIxZjBmMjZiM2VkNzU4NDc4ZDExMDg2YzE4Mjg3NDM1NWVmNTAzOWU4ZDg1NDI5MWI5Y2U3ZjhiMjg0ZWM4MWYxNDFiNzI1NTMxMzUwN2Y1ZWExNTlkNmIxYzBlZTE3NmU3NzQzZDNjNjVkNTM2ZTFlNGFhZjI0MDg5YzFlMDBjODAyMTAxMmI4ODQ2YTQ5NzFhMDY5NTAzMDUwNGFjZTM2MjA3N2U4YjJmY2I0ZmJkZDcwYmZiNzM0YTNmZTdkOWUxYTI1YmRkMGNiMGYyZmNiNTZlY2M1MDI4MTgxMDBmOGZkZmJhYzFjMDMzOTExYjVhMTg0OTgwZDA4MWY3MDBmNGQ0NTBjZWJmMThjYmRjNjhmMTYwYTVhYmQ1ODBlNmY4ZjU4MDBmZDBiNjA1MjFkYmUyZDU0OWU4MjYxN2FmZTcwZDJhZDAwNGMyZjQ1NDA1ZDk0ZTQ0MThlOGMyYjhkYTZiY2FhNDA3YmJmYTU0NzdiNWE2ZmNlY2NmY2I5OWY1MWM2YzE2YmQxNzIwMmQ5OTdiZGNhZWM4M2I4NzBlM2UxMDFhY2MwNWUwNzU0MDIwZWMyMDdlZjVlYzk5MzRhYzgxY2Q2MTdhZjcyY2Q5NGIyYmI0MDBlYjIwNzgzMDI4MTgxMDBmNWRmZTc0YTU0OGMwNDk1MDE3OGY1MDEzMGQ1YWFkYmU1ZDFmNGI1MjUyN2MwYmZhZDlhYTBkNzM3MzFmYjI0MjE5Y2I1ZWE1YzRiNGZhNTYxMzNkNWVhOTIyNWZhN2QwY2NjOWJkY2M3OGI3NzMwM2EyZTczYzE3ZTlhNDZiOWIwOTAyMDYwNDQ5NmE4NDlmMDY5ZDBkODc3MTNlMDZhNWQzNzQyNzFiMjYyOWY1YmEyMjA1MDZiNjA2YTEwMTgyOGQyMGRhOWZjZmEzYTdlNzViMTM1OTg3MjYwYmU2ZDM3NjIyZmMzZjRiZjRmZDJkZmQ5NjU1ZGE1ZmYwYzRiMDI4MTgxMDBkNGQ3OTdjOTU5ZjBjZjU5ZmExZjY1Y2VlYzY0ZTMyYWQxODljNWRhZjNkZGY5ZTc0N2QyOGM4ZWIxNWU2NWU1ODEyYmQxOTg5NmI2YTBkMWQxMjZmZTZjZjU0YTkyYjVhNmM3MWVmMDRmZWVkMDAxYWNiMWQyNTMwNDRmMmMzNzE2ZDE0ZjM5NjIwMWU2YTMwYzY1YmZiYjBmZDY1ZWJhZjYxYmRiODBmZmZmN2MyYzNmODBkY2Y2OTgxMzQ5MTkwNzUzMTIzMTcwMDc3MGQwMzkyYTEwNjZlNDExZWNkMjAxZmNlOWQ5ODE0OWIzMjM1NTU3MmI4NWU4ODlmYWFkMDI4MTgxMDA5ZDg5OGJjMTY1NzA5ZDUyZjdiMThmOTFlNmJmNTA4ZDNhYjA4ZWQxMmRmMDRkYTBjMmQ0MGI3MDM5Y2U0ZDcyYjYxMjk5YzA4MmM4NDI0Y2RkN2RmZmY3MWYxMzM0NmVjMTJmYWM0MjA2OWNjNjhlNjEwOGY4NjQyNzAxMjQ4NWJmYWE2OTA0MjU4ZTNlNWZiOWE5YTMwNWJmMmUzZTIxMDg3ZWVhOTRiY2NlNTFmYWJkNjM2NTAzOTdhZmZkODVlZDQ5YzEzNTg0ODBiM2NmZTkwYWQ1MjM0YjRkY2Y1NTVkMjIwZDI2YzlmZjc2NWVjZmNjOTQxNTJmZDFiZTA3MDI4MTgwNGJmNzdiNGJhZTgzODY3NzJkZTgzMGNjNzVmMmQxZDRiODIyMWIzZjgxNzIwOGUwOGMwMDJhYzA1NDk5MDI2NzdlNGYwZTdiY2U1YmExYjNkYTc0ZmJiZTEzODc1OGU2ODUzYjRhNWI3YmYwNjcyYmMxMTcwYzY0ZmE1MDJhNWUyNGUzNDcyZGI0MzNiNGUzMDc2MWVhYjZlYmI5ZTIwNzIzNWZkODhiOTdiMWIzMGUxNGYzNjRiNjI4MjE5ZDZlMTcwNTY1NDNhNGUyOWE0ZGUxZTQxYWQzNzkyN2NlMjNkMDQ0MjYyMzc0NGJjMzVhMTg3NDI5Njk2MDAyOTA0NCI6UFNBX0tFWV9UWVBFX1JTQV9LRVlfUEFJUjpQU0FfQUxHX1JTQV9PQUVQKFBTQV9BTEdfU0hBXzI1NikKIAogQ29weSBmcm9tIFBTQTogdmFsaWQgUlNBIChPQUVQICsgU0hBXzUxMikKQEAgLTE2MzIsNyArMTYzMiw3IEBACiBwa19jb3B5X2Zyb21fcHNhX3N1Y2Nlc3M6IjMwODIwNGE0MDIwMTAwMDI4MjAxMDEwMGVmMjRkODBmNmI3YTBmNjJhYjJmNzUwYTgzNzBjMWMzOTc4MWFiZTJmN2FlNWNiYzY5OGViYmM1MTA2N2FmNjhjOGIwMmU1YmZhZmUwYjI5NmEyZmRjYThlZTUzMjdiZjMzNzBiZDI2YzUyOWQxNzNjNDM1NmQ4YWQ1MWY2MDZhYzczMGUzYmU1MDlkODUzNWM5YzUxOTI3MjIyZDZjNGU3NzBlZmVjNGQ5YjBiZDExNDEwZTVlMmUwMWUwOTM3MDBkMzU4YWFiODI5MjI5NzQ4M2M2NTg3MGVhNmQ0Y2E5Mjk5ZjQzNDc3OTBmNjIyMzQ4MDczMjcyNmE5N2IzNGJiNGQ1M2NiM2YxODhlM2M5NzExNWIwMjlmYTlhMmNjZTRjNmQ5MzU5NzdhOTA3MzdhYzhiMmEyYzU2OTFhZDkyOGIyMjY4MWNhMDVlZTM4ZGRiYTIyNzhjODU0ZjUxMjgxYzVlNDg1NjA5MGFjYTU5YmY3MTlhMTY3ZTYzYmI5MzI1ODBhZTJiNTk5ZTFhMjk3MTk0Njk2ZTYzN2E5MTliYzlkMmNhZjIxNGU1OWQ0NmVkMWExMmU1OTFiNjA4ZjIwMzE3NDQxMTE1NTE0MzBkOWFjMzkwODI5NTdhZTFjZTAzYTg4MDY4ODk2NzAxZTZjZTE5YTgzODkwZmY1NzYxMDIwMzAxMDAwMTAyODIwMTAwNzA2ZmI1M2EwMmMxM2ZjYzk3NDlkN2QwOWE5ZTAwMmMxMmU2YmZjNzE1YzZhMDA5NjFlM2RlZmFiNzRjZDg5NmZlOGM3ZjJmNzVlMWNkYTNhYTJlNThhNDAwNzE4ZTY1ODIyZDA2NzFkZDBmNWQ0ZmZkYjc1NTBhOGE0Yjk3NGM3Y2RjY2FhNzI3NDVmODY0YTJiYTBkYWE2ZDkyNDdiMmQ4OWQ2ZjQxNjQ0Yzg5ODgzYzNiMjIyMmE1NzU0ZTNjYzdhOTFkY2FhN2I4NGFjZjYyNDk3NjM5OThhZWNjZjU1ODAxNmU2MzgzNTJhZDQ0ODM1MDA2ZjJlZTk0ZTY5MWQwMDcwY2U1NjE2NzdmMmEyMmExMmYzNTdiZDc2MmM1N2Y4MGYxZjQ5MjFmMGYyNmIzZWQ3NTg0NzhkMTEwODZjMTgyODc0MzU1ZWY1MDM5ZThkODU0MjkxYjljZTdmOGIyODRlYzgxZjE0MWI3MjU1MzEzNTA3ZjVlYTE1OWQ2YjFjMGVlMTc2ZTc3NDNkM2M2NWQ1MzZlMWU0YWFmMjQwODljMWUwMGM4MDIxMDEyYjg4NDZhNDk3MWEwNjk1MDMwNTA0YWNlMzYyMDc3ZThiMmZjYjRmYmRkNzBiZmI3MzRhM2ZlN2Q5ZTFhMjViZGQwY2IwZjJmY2I1NmVjYzUwMjgxODEwMGY4ZmRmYmFjMWMwMzM5MTFiNWExODQ5ODBkMDgxZjcwMGY0ZDQ1MGNlYmYxOGNiZGM2OGYxNjBhNWFiZDU4MGU2ZjhmNTgwMGZkMGI2MDUyMWRiZTJkNTQ5ZTgyNjE3YWZlNzBkMmFkMDA0YzJmNDU0MDVkOTRlNDQxOGU4YzJiOGRhNmJjYWE0MDdiYmZhNTQ3N2I1YTZmY2VjY2ZjYjk5ZjUxYzZjMTZiZDE3MjAyZDk5N2JkY2FlYzgzYjg3MGUzZTEwMWFjYzA1ZTA3NTQwMjBlYzIwN2VmNWVjOTkzNGFjODFjZDYxN2FmNzJjZDk0YjJiYjQwMGViMjA3ODMwMjgxODEwMGY1ZGZlNzRhNTQ4YzA0OTUwMTc4ZjUwMTMwZDVhYWRiZTVkMWY0YjUyNTI3YzBiZmFkOWFhMGQ3MzczMWZiMjQyMTljYjVlYTVjNGI0ZmE1NjEzM2Q1ZWE5MjI1ZmE3ZDBjY2M5YmRjYzc4Yjc3MzAzYTJlNzNjMTdlOWE0NmI5YjA5MDIwNjA0NDk2YTg0OWYwNjlkMGQ4NzcxM2UwNmE1ZDM3NDI3MWIyNjI5ZjViYTIyMDUwNmI2MDZhMTAxODI4ZDIwZGE5ZmNmYTNhN2U3NWIxMzU5ODcyNjBiZTZkMzc2MjJmYzNmNGJmNGZkMmRmZDk2NTVkYTVmZjBjNGIwMjgxODEwMGQ0ZDc5N2M5NTlmMGNmNTlmYTFmNjVjZWVjNjRlMzJhZDE4OWM1ZGFmM2RkZjllNzQ3ZDI4YzhlYjE1ZTY1ZTU4MTJiZDE5ODk2YjZhMGQxZDEyNmZlNmNmNTRhOTJiNWE2YzcxZWYwNGZlZWQwMDFhY2IxZDI1MzA0NGYyYzM3MTZkMTRmMzk2MjAxZTZhMzBjNjViZmJiMGZkNjVlYmFmNjFiZGI4MGZmZmY3YzJjM2Y4MGRjZjY5ODEzNDkxOTA3NTMxMjMxNzAwNzcwZDAzOTJhMTA2NmU0MTFlY2QyMDFmY2U5ZDk4MTQ5YjMyMzU1NTcyYjg1ZTg4OWZhYWQwMjgxODEwMDlkODk4YmMxNjU3MDlkNTJmN2IxOGY5MWU2YmY1MDhkM2FiMDhlZDEyZGYwNGRhMGMyZDQwYjcwMzljZTRkNzJiNjEyOTljMDgyYzg0MjRjZGQ3ZGZmZjcxZjEzMzQ2ZWMxMmZhYzQyMDY5Y2M2OGU2MTA4Zjg2NDI3MDEyNDg1YmZhYTY5MDQyNThlM2U1ZmI5YTlhMzA1YmYyZTNlMjEwODdlZWE5NGJjY2U1MWZhYmQ2MzY1MDM5N2FmZmQ4NWVkNDljMTM1ODQ4MGIzY2ZlOTBhZDUyMzRiNGRjZjU1NWQyMjBkMjZjOWZmNzY1ZWNmY2M5NDE1MmZkMWJlMDcwMjgxODA0YmY3N2I0YmFlODM4Njc3MmRlODMwY2M3NWYyZDFkNGI4MjIxYjNmODE3MjA4ZTA4YzAwMmFjMDU0OTkwMjY3N2U0ZjBlN2JjZTViYTFiM2RhNzRmYmJlMTM4NzU4ZTY4NTNiNGE1YjdiZjA2NzJiYzExNzBjNjRmYTUwMmE1ZTI0ZTM0NzJkYjQzM2I0ZTMwNzYxZWFiNmViYjllMjA3MjM1ZmQ4OGI5N2IxYjMwZTE0ZjM2NGI2MjgyMTlkNmUxNzA1NjU0M2E0ZTI5YTRkZTFlNDFhZDM3OTI3Y2UyM2QwNDQyNjIzNzQ0YmMzNWExODc0Mjk2OTYwMDI5MDQ0IjpQU0FfS0VZX1RZUEVfUlNBX0tFWV9QQUlSOlBTQV9BTEdfUlNBX1BTU19BTllfU0FMVChQU0FfQUxHX0FOWV9IQVNIKQogCiBDb3B5IGZyb20gUFNBOiB2YWxpZCBSU0EgKFBTU19BTllfU0FMVCArIFNIQV8yNTYpCi1kZXBlbmRzX29uOk1CRURUTFNfUlNBX0M6TUJFRFRMU19QS0NTMV9WMjE6TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOk1CRURUTFNfUlNBX0M6TUJFRFRMU19QS0NTMV9WMjE6UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHBrX2NvcHlfZnJvbV9wc2Ffc3VjY2VzczoiMzA4MjA0YTQwMjAxMDAwMjgyMDEwMTAwZWYyNGQ4MGY2YjdhMGY2MmFiMmY3NTBhODM3MGMxYzM5NzgxYWJlMmY3YWU1Y2JjNjk4ZWJiYzUxMDY3YWY2OGM4YjAyZTViZmFmZTBiMjk2YTJmZGNhOGVlNTMyN2JmMzM3MGJkMjZjNTI5ZDE3M2M0MzU2ZDhhZDUxZjYwNmFjNzMwZTNiZTUwOWQ4NTM1YzljNTE5MjcyMjJkNmM0ZTc3MGVmZWM0ZDliMGJkMTE0MTBlNWUyZTAxZTA5MzcwMGQzNThhYWI4MjkyMjk3NDgzYzY1ODcwZWE2ZDRjYTkyOTlmNDM0Nzc5MGY2MjIzNDgwNzMyNzI2YTk3YjM0YmI0ZDUzY2IzZjE4OGUzYzk3MTE1YjAyOWZhOWEyY2NlNGM2ZDkzNTk3N2E5MDczN2FjOGIyYTJjNTY5MWFkOTI4YjIyNjgxY2EwNWVlMzhkZGJhMjI3OGM4NTRmNTEyODFjNWU0ODU2MDkwYWNhNTliZjcxOWExNjdlNjNiYjkzMjU4MGFlMmI1OTllMWEyOTcxOTQ2OTZlNjM3YTkxOWJjOWQyY2FmMjE0ZTU5ZDQ2ZWQxYTEyZTU5MWI2MDhmMjAzMTc0NDExMTU1MTQzMGQ5YWMzOTA4Mjk1N2FlMWNlMDNhODgwNjg4OTY3MDFlNmNlMTlhODM4OTBmZjU3NjEwMjAzMDEwMDAxMDI4MjAxMDA3MDZmYjUzYTAyYzEzZmNjOTc0OWQ3ZDA5YTllMDAyYzEyZTZiZmM3MTVjNmEwMDk2MWUzZGVmYWI3NGNkODk2ZmU4YzdmMmY3NWUxY2RhM2FhMmU1OGE0MDA3MThlNjU4MjJkMDY3MWRkMGY1ZDRmZmRiNzU1MGE4YTRiOTc0YzdjZGNjYWE3Mjc0NWY4NjRhMmJhMGRhYTZkOTI0N2IyZDg5ZDZmNDE2NDRjODk4ODNjM2IyMjIyYTU3NTRlM2NjN2E5MWRjYWE3Yjg0YWNmNjI0OTc2Mzk5OGFlY2NmNTU4MDE2ZTYzODM1MmFkNDQ4MzUwMDZmMmVlOTRlNjkxZDAwNzBjZTU2MTY3N2YyYTIyYTEyZjM1N2JkNzYyYzU3ZjgwZjFmNDkyMWYwZjI2YjNlZDc1ODQ3OGQxMTA4NmMxODI4NzQzNTVlZjUwMzllOGQ4NTQyOTFiOWNlN2Y4YjI4NGVjODFmMTQxYjcyNTUzMTM1MDdmNWVhMTU5ZDZiMWMwZWUxNzZlNzc0M2QzYzY1ZDUzNmUxZTRhYWYyNDA4OWMxZTAwYzgwMjEwMTJiODg0NmE0OTcxYTA2OTUwMzA1MDRhY2UzNjIwNzdlOGIyZmNiNGZiZGQ3MGJmYjczNGEzZmU3ZDllMWEyNWJkZDBjYjBmMmZjYjU2ZWNjNTAyODE4MTAwZjhmZGZiYWMxYzAzMzkxMWI1YTE4NDk4MGQwODFmNzAwZjRkNDUwY2ViZjE4Y2JkYzY4ZjE2MGE1YWJkNTgwZTZmOGY1ODAwZmQwYjYwNTIxZGJlMmQ1NDllODI2MTdhZmU3MGQyYWQwMDRjMmY0NTQwNWQ5NGU0NDE4ZThjMmI4ZGE2YmNhYTQwN2JiZmE1NDc3YjVhNmZjZWNjZmNiOTlmNTFjNmMxNmJkMTcyMDJkOTk3YmRjYWVjODNiODcwZTNlMTAxYWNjMDVlMDc1NDAyMGVjMjA3ZWY1ZWM5OTM0YWM4MWNkNjE3YWY3MmNkOTRiMmJiNDAwZWIyMDc4MzAyODE4MTAwZjVkZmU3NGE1NDhjMDQ5NTAxNzhmNTAxMzBkNWFhZGJlNWQxZjRiNTI1MjdjMGJmYWQ5YWEwZDczNzMxZmIyNDIxOWNiNWVhNWM0YjRmYTU2MTMzZDVlYTkyMjVmYTdkMGNjYzliZGNjNzhiNzczMDNhMmU3M2MxN2U5YTQ2YjliMDkwMjA2MDQ0OTZhODQ5ZjA2OWQwZDg3NzEzZTA2YTVkMzc0MjcxYjI2MjlmNWJhMjIwNTA2YjYwNmExMDE4MjhkMjBkYTlmY2ZhM2E3ZTc1YjEzNTk4NzI2MGJlNmQzNzYyMmZjM2Y0YmY0ZmQyZGZkOTY1NWRhNWZmMGM0YjAyODE4MTAwZDRkNzk3Yzk1OWYwY2Y1OWZhMWY2NWNlZWM2NGUzMmFkMTg5YzVkYWYzZGRmOWU3NDdkMjhjOGViMTVlNjVlNTgxMmJkMTk4OTZiNmEwZDFkMTI2ZmU2Y2Y1NGE5MmI1YTZjNzFlZjA0ZmVlZDAwMWFjYjFkMjUzMDQ0ZjJjMzcxNmQxNGYzOTYyMDFlNmEzMGM2NWJmYmIwZmQ2NWViYWY2MWJkYjgwZmZmZjdjMmMzZjgwZGNmNjk4MTM0OTE5MDc1MzEyMzE3MDA3NzBkMDM5MmExMDY2ZTQxMWVjZDIwMWZjZTlkOTgxNDliMzIzNTU1NzJiODVlODg5ZmFhZDAyODE4MTAwOWQ4OThiYzE2NTcwOWQ1MmY3YjE4ZjkxZTZiZjUwOGQzYWIwOGVkMTJkZjA0ZGEwYzJkNDBiNzAzOWNlNGQ3MmI2MTI5OWMwODJjODQyNGNkZDdkZmZmNzFmMTMzNDZlYzEyZmFjNDIwNjljYzY4ZTYxMDhmODY0MjcwMTI0ODViZmFhNjkwNDI1OGUzZTVmYjlhOWEzMDViZjJlM2UyMTA4N2VlYTk0YmNjZTUxZmFiZDYzNjUwMzk3YWZmZDg1ZWQ0OWMxMzU4NDgwYjNjZmU5MGFkNTIzNGI0ZGNmNTU1ZDIyMGQyNmM5ZmY3NjVlY2ZjYzk0MTUyZmQxYmUwNzAyODE4MDRiZjc3YjRiYWU4Mzg2NzcyZGU4MzBjYzc1ZjJkMWQ0YjgyMjFiM2Y4MTcyMDhlMDhjMDAyYWMwNTQ5OTAyNjc3ZTRmMGU3YmNlNWJhMWIzZGE3NGZiYmUxMzg3NThlNjg1M2I0YTViN2JmMDY3MmJjMTE3MGM2NGZhNTAyYTVlMjRlMzQ3MmRiNDMzYjRlMzA3NjFlYWI2ZWJiOWUyMDcyMzVmZDg4Yjk3YjFiMzBlMTRmMzY0YjYyODIxOWQ2ZTE3MDU2NTQzYTRlMjlhNGRlMWU0MWFkMzc5MjdjZTIzZDA0NDI2MjM3NDRiYzM1YTE4NzQyOTY5NjAwMjkwNDQiOlBTQV9LRVlfVFlQRV9SU0FfS0VZX1BBSVI6UFNBX0FMR19SU0FfUFNTX0FOWV9TQUxUKFBTQV9BTEdfU0hBXzI1NikKIAogQ29weSBmcm9tIFBTQTogdmFsaWQgUlNBIChQU1NfQU5ZX1NBTFQgKyBTSEFfNTEyKQpAQCAtMTY0NCw3ICsxNjQ0LDcgQEAKIHBrX2NvcHlfZnJvbV9wc2Ffc3VjY2VzczoiMzA4MjA0YTQwMjAxMDAwMjgyMDEwMTAwZWYyNGQ4MGY2YjdhMGY2MmFiMmY3NTBhODM3MGMxYzM5NzgxYWJlMmY3YWU1Y2JjNjk4ZWJiYzUxMDY3YWY2OGM4YjAyZTViZmFmZTBiMjk2YTJmZGNhOGVlNTMyN2JmMzM3MGJkMjZjNTI5ZDE3M2M0MzU2ZDhhZDUxZjYwNmFjNzMwZTNiZTUwOWQ4NTM1YzljNTE5MjcyMjJkNmM0ZTc3MGVmZWM0ZDliMGJkMTE0MTBlNWUyZTAxZTA5MzcwMGQzNThhYWI4MjkyMjk3NDgzYzY1ODcwZWE2ZDRjYTkyOTlmNDM0Nzc5MGY2MjIzNDgwNzMyNzI2YTk3YjM0YmI0ZDUzY2IzZjE4OGUzYzk3MTE1YjAyOWZhOWEyY2NlNGM2ZDkzNTk3N2E5MDczN2FjOGIyYTJjNTY5MWFkOTI4YjIyNjgxY2EwNWVlMzhkZGJhMjI3OGM4NTRmNTEyODFjNWU0ODU2MDkwYWNhNTliZjcxOWExNjdlNjNiYjkzMjU4MGFlMmI1OTllMWEyOTcxOTQ2OTZlNjM3YTkxOWJjOWQyY2FmMjE0ZTU5ZDQ2ZWQxYTEyZTU5MWI2MDhmMjAzMTc0NDExMTU1MTQzMGQ5YWMzOTA4Mjk1N2FlMWNlMDNhODgwNjg4OTY3MDFlNmNlMTlhODM4OTBmZjU3NjEwMjAzMDEwMDAxMDI4MjAxMDA3MDZmYjUzYTAyYzEzZmNjOTc0OWQ3ZDA5YTllMDAyYzEyZTZiZmM3MTVjNmEwMDk2MWUzZGVmYWI3NGNkODk2ZmU4YzdmMmY3NWUxY2RhM2FhMmU1OGE0MDA3MThlNjU4MjJkMDY3MWRkMGY1ZDRmZmRiNzU1MGE4YTRiOTc0YzdjZGNjYWE3Mjc0NWY4NjRhMmJhMGRhYTZkOTI0N2IyZDg5ZDZmNDE2NDRjODk4ODNjM2IyMjIyYTU3NTRlM2NjN2E5MWRjYWE3Yjg0YWNmNjI0OTc2Mzk5OGFlY2NmNTU4MDE2ZTYzODM1MmFkNDQ4MzUwMDZmMmVlOTRlNjkxZDAwNzBjZTU2MTY3N2YyYTIyYTEyZjM1N2JkNzYyYzU3ZjgwZjFmNDkyMWYwZjI2YjNlZDc1ODQ3OGQxMTA4NmMxODI4NzQzNTVlZjUwMzllOGQ4NTQyOTFiOWNlN2Y4YjI4NGVjODFmMTQxYjcyNTUzMTM1MDdmNWVhMTU5ZDZiMWMwZWUxNzZlNzc0M2QzYzY1ZDUzNmUxZTRhYWYyNDA4OWMxZTAwYzgwMjEwMTJiODg0NmE0OTcxYTA2OTUwMzA1MDRhY2UzNjIwNzdlOGIyZmNiNGZiZGQ3MGJmYjczNGEzZmU3ZDllMWEyNWJkZDBjYjBmMmZjYjU2ZWNjNTAyODE4MTAwZjhmZGZiYWMxYzAzMzkxMWI1YTE4NDk4MGQwODFmNzAwZjRkNDUwY2ViZjE4Y2JkYzY4ZjE2MGE1YWJkNTgwZTZmOGY1ODAwZmQwYjYwNTIxZGJlMmQ1NDllODI2MTdhZmU3MGQyYWQwMDRjMmY0NTQwNWQ5NGU0NDE4ZThjMmI4ZGE2YmNhYTQwN2JiZmE1NDc3YjVhNmZjZWNjZmNiOTlmNTFjNmMxNmJkMTcyMDJkOTk3YmRjYWVjODNiODcwZTNlMTAxYWNjMDVlMDc1NDAyMGVjMjA3ZWY1ZWM5OTM0YWM4MWNkNjE3YWY3MmNkOTRiMmJiNDAwZWIyMDc4MzAyODE4MTAwZjVkZmU3NGE1NDhjMDQ5NTAxNzhmNTAxMzBkNWFhZGJlNWQxZjRiNTI1MjdjMGJmYWQ5YWEwZDczNzMxZmIyNDIxOWNiNWVhNWM0YjRmYTU2MTMzZDVlYTkyMjVmYTdkMGNjYzliZGNjNzhiNzczMDNhMmU3M2MxN2U5YTQ2YjliMDkwMjA2MDQ0OTZhODQ5ZjA2OWQwZDg3NzEzZTA2YTVkMzc0MjcxYjI2MjlmNWJhMjIwNTA2YjYwNmExMDE4MjhkMjBkYTlmY2ZhM2E3ZTc1YjEzNTk4NzI2MGJlNmQzNzYyMmZjM2Y0YmY0ZmQyZGZkOTY1NWRhNWZmMGM0YjAyODE4MTAwZDRkNzk3Yzk1OWYwY2Y1OWZhMWY2NWNlZWM2NGUzMmFkMTg5YzVkYWYzZGRmOWU3NDdkMjhjOGViMTVlNjVlNTgxMmJkMTk4OTZiNmEwZDFkMTI2ZmU2Y2Y1NGE5MmI1YTZjNzFlZjA0ZmVlZDAwMWFjYjFkMjUzMDQ0ZjJjMzcxNmQxNGYzOTYyMDFlNmEzMGM2NWJmYmIwZmQ2NWViYWY2MWJkYjgwZmZmZjdjMmMzZjgwZGNmNjk4MTM0OTE5MDc1MzEyMzE3MDA3NzBkMDM5MmExMDY2ZTQxMWVjZDIwMWZjZTlkOTgxNDliMzIzNTU1NzJiODVlODg5ZmFhZDAyODE4MTAwOWQ4OThiYzE2NTcwOWQ1MmY3YjE4ZjkxZTZiZjUwOGQzYWIwOGVkMTJkZjA0ZGEwYzJkNDBiNzAzOWNlNGQ3MmI2MTI5OWMwODJjODQyNGNkZDdkZmZmNzFmMTMzNDZlYzEyZmFjNDIwNjljYzY4ZTYxMDhmODY0MjcwMTI0ODViZmFhNjkwNDI1OGUzZTVmYjlhOWEzMDViZjJlM2UyMTA4N2VlYTk0YmNjZTUxZmFiZDYzNjUwMzk3YWZmZDg1ZWQ0OWMxMzU4NDgwYjNjZmU5MGFkNTIzNGI0ZGNmNTU1ZDIyMGQyNmM5ZmY3NjVlY2ZjYzk0MTUyZmQxYmUwNzAyODE4MDRiZjc3YjRiYWU4Mzg2NzcyZGU4MzBjYzc1ZjJkMWQ0YjgyMjFiM2Y4MTcyMDhlMDhjMDAyYWMwNTQ5OTAyNjc3ZTRmMGU3YmNlNWJhMWIzZGE3NGZiYmUxMzg3NThlNjg1M2I0YTViN2JmMDY3MmJjMTE3MGM2NGZhNTAyYTVlMjRlMzQ3MmRiNDMzYjRlMzA3NjFlYWI2ZWJiOWUyMDcyMzVmZDg4Yjk3YjFiMzBlMTRmMzY0YjYyODIxOWQ2ZTE3MDU2NTQzYTRlMjlhNGRlMWU0MWFkMzc5MjdjZTIzZDA0NDI2MjM3NDRiYzM1YTE4NzQyOTY5NjAwMjkwNDQiOlBTQV9LRVlfVFlQRV9SU0FfS0VZX1BBSVI6UFNBX0FMR19SU0FfUFNTKFBTQV9BTEdfQU5ZX0hBU0gpCiAKIENvcHkgZnJvbSBQU0E6IHZhbGlkIFJTQSAoUFNTICsgU0hBXzI1NikKLWRlcGVuZHNfb246TUJFRFRMU19SU0FfQzpNQkVEVExTX1BLQ1MxX1YyMTpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246TUJFRFRMU19SU0FfQzpNQkVEVExTX1BLQ1MxX1YyMTpQU0FfV0FOVF9BTEdfU0hBXzI1NgogcGtfY29weV9mcm9tX3BzYV9zdWNjZXNzOiIzMDgyMDRhNDAyMDEwMDAyODIwMTAxMDBlZjI0ZDgwZjZiN2EwZjYyYWIyZjc1MGE4MzcwYzFjMzk3ODFhYmUyZjdhZTVjYmM2OThlYmJjNTEwNjdhZjY4YzhiMDJlNWJmYWZlMGIyOTZhMmZkY2E4ZWU1MzI3YmYzMzcwYmQyNmM1MjlkMTczYzQzNTZkOGFkNTFmNjA2YWM3MzBlM2JlNTA5ZDg1MzVjOWM1MTkyNzIyMmQ2YzRlNzcwZWZlYzRkOWIwYmQxMTQxMGU1ZTJlMDFlMDkzNzAwZDM1OGFhYjgyOTIyOTc0ODNjNjU4NzBlYTZkNGNhOTI5OWY0MzQ3NzkwZjYyMjM0ODA3MzI3MjZhOTdiMzRiYjRkNTNjYjNmMTg4ZTNjOTcxMTViMDI5ZmE5YTJjY2U0YzZkOTM1OTc3YTkwNzM3YWM4YjJhMmM1NjkxYWQ5MjhiMjI2ODFjYTA1ZWUzOGRkYmEyMjc4Yzg1NGY1MTI4MWM1ZTQ4NTYwOTBhY2E1OWJmNzE5YTE2N2U2M2JiOTMyNTgwYWUyYjU5OWUxYTI5NzE5NDY5NmU2MzdhOTE5YmM5ZDJjYWYyMTRlNTlkNDZlZDFhMTJlNTkxYjYwOGYyMDMxNzQ0MTExNTUxNDMwZDlhYzM5MDgyOTU3YWUxY2UwM2E4ODA2ODg5NjcwMWU2Y2UxOWE4Mzg5MGZmNTc2MTAyMDMwMTAwMDEwMjgyMDEwMDcwNmZiNTNhMDJjMTNmY2M5NzQ5ZDdkMDlhOWUwMDJjMTJlNmJmYzcxNWM2YTAwOTYxZTNkZWZhYjc0Y2Q4OTZmZThjN2YyZjc1ZTFjZGEzYWEyZTU4YTQwMDcxOGU2NTgyMmQwNjcxZGQwZjVkNGZmZGI3NTUwYThhNGI5NzRjN2NkY2NhYTcyNzQ1Zjg2NGEyYmEwZGFhNmQ5MjQ3YjJkODlkNmY0MTY0NGM4OTg4M2MzYjIyMjJhNTc1NGUzY2M3YTkxZGNhYTdiODRhY2Y2MjQ5NzYzOTk4YWVjY2Y1NTgwMTZlNjM4MzUyYWQ0NDgzNTAwNmYyZWU5NGU2OTFkMDA3MGNlNTYxNjc3ZjJhMjJhMTJmMzU3YmQ3NjJjNTdmODBmMWY0OTIxZjBmMjZiM2VkNzU4NDc4ZDExMDg2YzE4Mjg3NDM1NWVmNTAzOWU4ZDg1NDI5MWI5Y2U3ZjhiMjg0ZWM4MWYxNDFiNzI1NTMxMzUwN2Y1ZWExNTlkNmIxYzBlZTE3NmU3NzQzZDNjNjVkNTM2ZTFlNGFhZjI0MDg5YzFlMDBjODAyMTAxMmI4ODQ2YTQ5NzFhMDY5NTAzMDUwNGFjZTM2MjA3N2U4YjJmY2I0ZmJkZDcwYmZiNzM0YTNmZTdkOWUxYTI1YmRkMGNiMGYyZmNiNTZlY2M1MDI4MTgxMDBmOGZkZmJhYzFjMDMzOTExYjVhMTg0OTgwZDA4MWY3MDBmNGQ0NTBjZWJmMThjYmRjNjhmMTYwYTVhYmQ1ODBlNmY4ZjU4MDBmZDBiNjA1MjFkYmUyZDU0OWU4MjYxN2FmZTcwZDJhZDAwNGMyZjQ1NDA1ZDk0ZTQ0MThlOGMyYjhkYTZiY2FhNDA3YmJmYTU0NzdiNWE2ZmNlY2NmY2I5OWY1MWM2YzE2YmQxNzIwMmQ5OTdiZGNhZWM4M2I4NzBlM2UxMDFhY2MwNWUwNzU0MDIwZWMyMDdlZjVlYzk5MzRhYzgxY2Q2MTdhZjcyY2Q5NGIyYmI0MDBlYjIwNzgzMDI4MTgxMDBmNWRmZTc0YTU0OGMwNDk1MDE3OGY1MDEzMGQ1YWFkYmU1ZDFmNGI1MjUyN2MwYmZhZDlhYTBkNzM3MzFmYjI0MjE5Y2I1ZWE1YzRiNGZhNTYxMzNkNWVhOTIyNWZhN2QwY2NjOWJkY2M3OGI3NzMwM2EyZTczYzE3ZTlhNDZiOWIwOTAyMDYwNDQ5NmE4NDlmMDY5ZDBkODc3MTNlMDZhNWQzNzQyNzFiMjYyOWY1YmEyMjA1MDZiNjA2YTEwMTgyOGQyMGRhOWZjZmEzYTdlNzViMTM1OTg3MjYwYmU2ZDM3NjIyZmMzZjRiZjRmZDJkZmQ5NjU1ZGE1ZmYwYzRiMDI4MTgxMDBkNGQ3OTdjOTU5ZjBjZjU5ZmExZjY1Y2VlYzY0ZTMyYWQxODljNWRhZjNkZGY5ZTc0N2QyOGM4ZWIxNWU2NWU1ODEyYmQxOTg5NmI2YTBkMWQxMjZmZTZjZjU0YTkyYjVhNmM3MWVmMDRmZWVkMDAxYWNiMWQyNTMwNDRmMmMzNzE2ZDE0ZjM5NjIwMWU2YTMwYzY1YmZiYjBmZDY1ZWJhZjYxYmRiODBmZmZmN2MyYzNmODBkY2Y2OTgxMzQ5MTkwNzUzMTIzMTcwMDc3MGQwMzkyYTEwNjZlNDExZWNkMjAxZmNlOWQ5ODE0OWIzMjM1NTU3MmI4NWU4ODlmYWFkMDI4MTgxMDA5ZDg5OGJjMTY1NzA5ZDUyZjdiMThmOTFlNmJmNTA4ZDNhYjA4ZWQxMmRmMDRkYTBjMmQ0MGI3MDM5Y2U0ZDcyYjYxMjk5YzA4MmM4NDI0Y2RkN2RmZmY3MWYxMzM0NmVjMTJmYWM0MjA2OWNjNjhlNjEwOGY4NjQyNzAxMjQ4NWJmYWE2OTA0MjU4ZTNlNWZiOWE5YTMwNWJmMmUzZTIxMDg3ZWVhOTRiY2NlNTFmYWJkNjM2NTAzOTdhZmZkODVlZDQ5YzEzNTg0ODBiM2NmZTkwYWQ1MjM0YjRkY2Y1NTVkMjIwZDI2YzlmZjc2NWVjZmNjOTQxNTJmZDFiZTA3MDI4MTgwNGJmNzdiNGJhZTgzODY3NzJkZTgzMGNjNzVmMmQxZDRiODIyMWIzZjgxNzIwOGUwOGMwMDJhYzA1NDk5MDI2NzdlNGYwZTdiY2U1YmExYjNkYTc0ZmJiZTEzODc1OGU2ODUzYjRhNWI3YmYwNjcyYmMxMTcwYzY0ZmE1MDJhNWUyNGUzNDcyZGI0MzNiNGUzMDc2MWVhYjZlYmI5ZTIwNzIzNWZkODhiOTdiMWIzMGUxNGYzNjRiNjI4MjE5ZDZlMTcwNTY1NDNhNGUyOWE0ZGUxZTQxYWQzNzkyN2NlMjNkMDQ0MjYyMzc0NGJjMzVhMTg3NDI5Njk2MDAyOTA0NCI6UFNBX0tFWV9UWVBFX1JTQV9LRVlfUEFJUjpQU0FfQUxHX1JTQV9QU1MoUFNBX0FMR19TSEFfMjU2KQogCiBDb3B5IGZyb20gUFNBOiB2YWxpZCBSU0EgKFBTUyArIFNIQV81MTIpCmRpZmYgLS1naXQgYS90ZXN0cy9zdWl0ZXMvdGVzdF9zdWl0ZV9way5mdW5jdGlvbiBiL3Rlc3RzL3N1aXRlcy90ZXN0X3N1aXRlX3BrLmZ1bmN0aW9uCmluZGV4IDIzZjVjZGEuLmY5MTAwMWIgMTAwNjQ0Ci0tLSBhL3Rlc3RzL3N1aXRlcy90ZXN0X3N1aXRlX3BrLmZ1bmN0aW9uCisrKyBiL3Rlc3RzL3N1aXRlcy90ZXN0X3N1aXRlX3BrLmZ1bmN0aW9uCkBAIC00NSw3ICs0NSw3IEBACiAjZGVmaW5lIE1CRURUTFNfVEVTVF9QS19QU0FfU0lHTgogI2VuZGlmCiAKLSNpZiBkZWZpbmVkKE1CRURUTFNfUFNBX0NSWVBUT19DKSAmJiBkZWZpbmVkKFBTQV9XQU5UX0tFWV9UWVBFX0VDQ19QVUJMSUNfS0VZKQorI2lmIGRlZmluZWQoTUJFRFRMU19QU0FfQ1JZUFRPX0NMSUVOVCkgJiYgZGVmaW5lZChQU0FfV0FOVF9LRVlfVFlQRV9FQ0NfUFVCTElDX0tFWSkKIC8qIFBpY2sgYW4gZWxsaXB0aWMgY3VydmUgdGhhdCdzIHN1cHBvcnRlZCBieSBQU0EuIE5vdGUgdGhhdCB0aGUgY3VydmUgaXMKICAqIG5vdCBndWFyYW50ZWVkIHRvIGJlIHN1cHBvcnRlZCBieSB0aGUgRUNQIG1vZHVsZS4KICAqCkBAIC02NCwxNCArNjQsMjIgQEAKICNkZWZpbmUgTUJFRFRMU19URVNUX1BTQV9FQ0NfT05FX0ZBTUlMWSBQU0FfRUNDX0ZBTUlMWV9TRUNQX1IxCiAjZGVmaW5lIE1CRURUTFNfVEVTVF9QU0FfRUNDX09ORV9DVVJWRV9CSVRTIDE5MgogI2RlZmluZSBNQkVEVExTX1RFU1RfRUNQX0RQX09ORV9DVVJWRSBNQkVEVExTX0VDUF9EUF9TRUNQMTkyUjEKLSNlbGlmIGRlZmluZWQoUFNBX1dBTlRfRUNDX1NFQ1BfUjFfMjI0KQotI2RlZmluZSBNQkVEVExTX1RFU1RfUFNBX0VDQ19PTkVfRkFNSUxZIFBTQV9FQ0NfRkFNSUxZX1NFQ1BfUjEKLSNkZWZpbmUgTUJFRFRMU19URVNUX1BTQV9FQ0NfT05FX0NVUlZFX0JJVFMgMjI0Ci0jZGVmaW5lIE1CRURUTFNfVEVTVF9FQ1BfRFBfT05FX0NVUlZFIE1CRURUTFNfRUNQX0RQX1NFQ1AyMjRSMQogI2VsaWYgZGVmaW5lZChQU0FfV0FOVF9FQ0NfU0VDUF9SMV8yNTYpCiAjZGVmaW5lIE1CRURUTFNfVEVTVF9QU0FfRUNDX09ORV9GQU1JTFkgUFNBX0VDQ19GQU1JTFlfU0VDUF9SMQogI2RlZmluZSBNQkVEVExTX1RFU1RfUFNBX0VDQ19PTkVfQ1VSVkVfQklUUyAyNTYKICNkZWZpbmUgTUJFRFRMU19URVNUX0VDUF9EUF9PTkVfQ1VSVkUgTUJFRFRMU19FQ1BfRFBfU0VDUDI1NlIxCisjZWxpZiBkZWZpbmVkKFBTQV9XQU5UX0VDQ19TRUNQX0sxXzE5MikKKyNkZWZpbmUgTUJFRFRMU19URVNUX1BTQV9FQ0NfT05FX0ZBTUlMWSBQU0FfRUNDX0ZBTUlMWV9TRUNQX0sxCisjZGVmaW5lIE1CRURUTFNfVEVTVF9QU0FfRUNDX09ORV9DVVJWRV9CSVRTIDE5MgorI2RlZmluZSBNQkVEVExTX1RFU1RfRUNQX0RQX09ORV9DVVJWRSBNQkVEVExTX0VDUF9EUF9TRUNQMTkySzEKKyNlbGlmIGRlZmluZWQoUFNBX1dBTlRfRUNDX1NFQ1BfSzFfMjU2KQorI2RlZmluZSBNQkVEVExTX1RFU1RfUFNBX0VDQ19PTkVfRkFNSUxZIFBTQV9FQ0NfRkFNSUxZX1NFQ1BfSzEKKyNkZWZpbmUgTUJFRFRMU19URVNUX1BTQV9FQ0NfT05FX0NVUlZFX0JJVFMgMjU2CisjZGVmaW5lIE1CRURUTFNfVEVTVF9FQ1BfRFBfT05FX0NVUlZFIE1CRURUTFNfRUNQX0RQX1NFQ1AyNTZLMQorI2VsaWYgZGVmaW5lZChQU0FfV0FOVF9FQ0NfU0VDUF9SMV8yMjQpCisjZGVmaW5lIE1CRURUTFNfVEVTVF9QU0FfRUNDX09ORV9GQU1JTFkgUFNBX0VDQ19GQU1JTFlfU0VDUF9SMQorI2RlZmluZSBNQkVEVExTX1RFU1RfUFNBX0VDQ19PTkVfQ1VSVkVfQklUUyAyMjQKKyNkZWZpbmUgTUJFRFRMU19URVNUX0VDUF9EUF9PTkVfQ1VSVkUgTUJFRFRMU19FQ1BfRFBfU0VDUDIyNFIxCiAjZWxpZiBkZWZpbmVkKFBTQV9XQU5UX0VDQ19TRUNQX1IxXzM4NCkKICNkZWZpbmUgTUJFRFRMU19URVNUX1BTQV9FQ0NfT05FX0ZBTUlMWSBQU0FfRUNDX0ZBTUlMWV9TRUNQX1IxCiAjZGVmaW5lIE1CRURUTFNfVEVTVF9QU0FfRUNDX09ORV9DVVJWRV9CSVRTIDM4NApAQCAtODAsMTggKzg4LDEwIEBACiAjZGVmaW5lIE1CRURUTFNfVEVTVF9QU0FfRUNDX09ORV9GQU1JTFkgUFNBX0VDQ19GQU1JTFlfU0VDUF9SMQogI2RlZmluZSBNQkVEVExTX1RFU1RfUFNBX0VDQ19PTkVfQ1VSVkVfQklUUyA1MjEKICNkZWZpbmUgTUJFRFRMU19URVNUX0VDUF9EUF9PTkVfQ1VSVkUgTUJFRFRMU19FQ1BfRFBfU0VDUDUyMVIxCi0jZWxpZiBkZWZpbmVkKFBTQV9XQU5UX0VDQ19TRUNQX0sxXzE5MikKLSNkZWZpbmUgTUJFRFRMU19URVNUX1BTQV9FQ0NfT05FX0ZBTUlMWSBQU0FfRUNDX0ZBTUlMWV9TRUNQX0sxCi0jZGVmaW5lIE1CRURUTFNfVEVTVF9QU0FfRUNDX09ORV9DVVJWRV9CSVRTIDE5MgotI2RlZmluZSBNQkVEVExTX1RFU1RfRUNQX0RQX09ORV9DVVJWRSBNQkVEVExTX0VDUF9EUF9TRUNQMTkySzEKICNlbGlmIGRlZmluZWQoUFNBX1dBTlRfRUNDX1NFQ1BfSzFfMjI0KQogI2RlZmluZSBNQkVEVExTX1RFU1RfUFNBX0VDQ19PTkVfRkFNSUxZIFBTQV9FQ0NfRkFNSUxZX1NFQ1BfSzEKICNkZWZpbmUgTUJFRFRMU19URVNUX1BTQV9FQ0NfT05FX0NVUlZFX0JJVFMgMjI0CiAjZGVmaW5lIE1CRURUTFNfVEVTVF9FQ1BfRFBfT05FX0NVUlZFIE1CRURUTFNfRUNQX0RQX1NFQ1AyMjRLMQotI2VsaWYgZGVmaW5lZChQU0FfV0FOVF9FQ0NfU0VDUF9LMV8yNTYpCi0jZGVmaW5lIE1CRURUTFNfVEVTVF9QU0FfRUNDX09ORV9GQU1JTFkgUFNBX0VDQ19GQU1JTFlfU0VDUF9LMQotI2RlZmluZSBNQkVEVExTX1RFU1RfUFNBX0VDQ19PTkVfQ1VSVkVfQklUUyAyNTYKLSNkZWZpbmUgTUJFRFRMU19URVNUX0VDUF9EUF9PTkVfQ1VSVkUgTUJFRFRMU19FQ1BfRFBfU0VDUDI1NksxCiAjZWxpZiBkZWZpbmVkKFBTQV9XQU5UX0VDQ19CUkFJTlBPT0xfUF9SMV8yNTYpCiAjZGVmaW5lIE1CRURUTFNfVEVTVF9QU0FfRUNDX09ORV9GQU1JTFkgUFNBX0VDQ19GQU1JTFlfQlJBSU5QT09MX1BfUjEKICNkZWZpbmUgTUJFRFRMU19URVNUX1BTQV9FQ0NfT05FX0NVUlZFX0JJVFMgMjU2CkBAIC0xMjgsNyArMTI4LDggQEAKICNkZWZpbmUgTUJFRFRMU19URVNUX1BTQV9FQ0NfQU5PVEhFUl9GQU1JTFkgUFNBX0VDQ19GQU1JTFlfU0VDUF9LMQogI2RlZmluZSBNQkVEVExTX1RFU1RfUFNBX0VDQ19PTkVfQ1VSVkVfQklUUyAxOTIKICNkZWZpbmUgTUJFRFRMU19URVNUX1BTQV9FQ0NfSEFWRV9UV09fRkFNSUxJRVMKLSNlbGlmIGRlZmluZWQoUFNBX1dBTlRfRUNDX1NFQ1BfUjFfMjU2KSAmJiBkZWZpbmVkKFBTQV9XQU5UX0VDQ19TRUNQX0sxXzI1NikKKyNlbGlmIGRlZmluZWQoUFNBX1dBTlRfRUNDX1NFQ1BfUjFfMjU2KSAmJiBkZWZpbmVkKFBTQV9XQU5UX0VDQ19TRUNQX0sxXzI1NikgJiYgXAorICAgICFkZWZpbmVkKFBTQV9XQU5UX0VDQ19TRUNQX1IxXzE5MikKICNkZWZpbmUgTUJFRFRMU19URVNUX1BTQV9FQ0NfT05FX0ZBTUlMWSBQU0FfRUNDX0ZBTUlMWV9TRUNQX1IxCiAjZGVmaW5lIE1CRURUTFNfVEVTVF9QU0FfRUNDX0FOT1RIRVJfRkFNSUxZIFBTQV9FQ0NfRkFNSUxZX1NFQ1BfSzEKICNkZWZpbmUgTUJFRFRMU19URVNUX1BTQV9FQ0NfT05FX0NVUlZFX0JJVFMgMjU2CkBAIC0xNTIsNyArMTUzLDcgQEAKICNkZWZpbmUgTUJFRFRMU19URVNUX1BTQV9FQ0NfSEFWRV9UV09fQklUUwogI2VuZGlmCiAKLSNlbmRpZiAvKiBkZWZpbmVkKE1CRURUTFNfUFNBX0NSWVBUT19DKSAmJiBkZWZpbmVkKFBTQV9XQU5UX0tFWV9UWVBFX0VDQ19QVUJMSUNfS0VZKSAqLworI2VuZGlmIC8qIGRlZmluZWQoTUJFRFRMU19QU0FfQ1JZUFRPX0NMSUVOVCkgJiYgZGVmaW5lZChQU0FfV0FOVF9LRVlfVFlQRV9FQ0NfUFVCTElDX0tFWSkgKi8KIAogLyogQWx3YXlzIGRlZmluZSB0aGUgbWFjcm9zIHNvIHRoYXQgd2UgY2FuIHVzZSB0aGVtIGluIHRlc3QgZGF0YS4gKi8KICNpZiAhZGVmaW5lZChNQkVEVExTX1RFU1RfUFNBX0VDQ19PTkVfRkFNSUxZKQpAQCAtMTcwLDExICsxNzEsMTEgQEAKIC8qIEdldCBhbiBhdmFpbGFibGUgTUQgYWxnIHRvIGJlIHVzZWQgaW4gc2lnbi92ZXJpZnkgdGVzdHMuICovCiAjaWYgZGVmaW5lZChNQkVEVExTX01EX0NBTl9TSEExKQogI2RlZmluZSBNQkVEVExTX01EX0FMR19GT1JfVEVTVCAgICAgICAgIE1CRURUTFNfTURfU0hBMQotI2VsaWYgZGVmaW5lZChNQkVEVExTX01EX0NBTl9TSEEyMjQpCisjZWxpZiBkZWZpbmVkKFBTQV9XQU5UX0FMR19TSEFfMjI0KQogI2RlZmluZSBNQkVEVExTX01EX0FMR19GT1JfVEVTVCAgICAgICAgIE1CRURUTFNfTURfU0hBMjI0Ci0jZWxpZiBkZWZpbmVkKE1CRURUTFNfTURfQ0FOX1NIQTI1NikKKyNlbGlmIGRlZmluZWQoUFNBX1dBTlRfQUxHX1NIQV8yNTYpCiAjZGVmaW5lIE1CRURUTFNfTURfQUxHX0ZPUl9URVNUICAgICAgICAgTUJFRFRMU19NRF9TSEEyNTYKLSNlbGlmIGRlZmluZWQoTUJFRFRMU19NRF9DQU5fU0hBMzg0KQorI2VsaWYgZGVmaW5lZChQU0FfV0FOVF9BTEdfU0hBXzM4NCkKICNkZWZpbmUgTUJFRFRMU19NRF9BTEdfRk9SX1RFU1QgICAgICAgICBNQkVEVExTX01EX1NIQTM4NAogI2VsaWYgZGVmaW5lZChNQkVEVExTX01EX0NBTl9TSEE1MTIpCiAjZGVmaW5lIE1CRURUTFNfTURfQUxHX0ZPUl9URVNUICAgICAgICAgTUJFRFRMU19NRF9TSEE1MTIKQEAgLTIxOSw3ICsyMjAsNyBAQAogICAgIHJldHVybiBNQkVEVExTX0VSUl9QS19GRUFUVVJFX1VOQVZBSUxBQkxFOwogfQogCi0jaWYgZGVmaW5lZChNQkVEVExTX1BTQV9DUllQVE9fQykKKyNpZiBkZWZpbmVkKE1CRURUTFNfUFNBX0NSWVBUT19DTElFTlQpCiBwc2Ffc3RhdHVzX3QgcGtfcHNhX2ltcG9ydF9rZXkoY29uc3QgdW5zaWduZWQgY2hhciAqa2V5X2RhdGEsIHNpemVfdCBrZXlfbGVuLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBzYV9rZXlfdHlwZV90IHR5cGUsIHBzYV9rZXlfdXNhZ2VfdCB1c2FnZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwc2FfYWxnb3JpdGhtX3QgYWxnLCBtYmVkdGxzX3N2Y19rZXlfaWRfdCAqa2V5KQpAQCAtMjM4LDcgKzIzOSw3IEBACiAKICAgICByZXR1cm4gc3RhdHVzOwogfQotI2VuZGlmIC8qIE1CRURUTFNfUFNBX0NSWVBUT19DICovCisjZW5kaWYgLyogTUJFRFRMU19QU0FfQ1JZUFRPX0NMSUVOVCAqLwogCiAvKiogU2V0dXAgdGhlIHByb3ZpZGVkIFBLIGNvbnRleHQuCiAgKgpAQCAtMzA0LDcgKzMwNSw3IEBACiAgICAgcmV0dXJuIHJldDsKIH0KIAotI2lmIGRlZmluZWQoTUJFRFRMU19QU0FfQ1JZUFRPX0MpCisjaWYgZGVmaW5lZChNQkVEVExTX1BTQV9DUllQVE9fQ0xJRU5UKQogLyoqIENyZWF0ZSBhIFBTQSBrZXkgb2YgdGhlIGRlc2lyZWQgdHlwZSBhbmQgcHJvcGVydGllcy4KICAqCiAgKiAtIEZvciBSU0EgYW5kIEVDIGtleXMgcHJlZGVmaW5lZCBrZXkgZGF0YSBpcyB1c2VkIChhcyBpbiB0aGUgcGtfc2V0dXAoKSBhYm92ZSkuCkBAIC00NjQsNyArNDY1LDcgQEAKIGV4aXQ6CiAgICAgcmV0dXJuIG9rOwogfQotI2VuZGlmIC8qIE1CRURUTFNfUFNBX0NSWVBUT19DICovCisjZW5kaWYgLyogTUJFRFRMU19QU0FfQ1JZUFRPX0NMSUVOVCAqLwogCiAjaWYgZGVmaW5lZChNQkVEVExTX1JTQV9DKQogaW50IG1iZWR0bHNfcnNhX2RlY3J5cHRfZnVuYyh2b2lkICpjdHgsIHNpemVfdCAqb2xlbiwKQEAgLTQ5OCw3ICs0OTksNyBAQAogICAgIEZST01fUEFJUiA9IDEKIH0gZnJvbV9wYWlyX3Q7CiAKLSNpZiBkZWZpbmVkKE1CRURUTFNfUFNBX0NSWVBUT19DKQorI2lmIGRlZmluZWQoTUJFRFRMU19QU0FfQ1JZUFRPX0NMSUVOVCkKIHN0YXRpYyBpbnQgcGtfc2V0dXBfZm9yX3R5cGUobWJlZHRsc19wa190eXBlX3QgcGtfdHlwZSwgaW50IHdhbnRfcGFpciwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWJlZHRsc19wa19jb250ZXh0ICpwaywgcHNhX2tleV90eXBlX3QgKnBzYV90eXBlKQogewpAQCAtNTY2LDkgKzU2Nyw5IEBACiBleGl0OgogICAgIHJldHVybiBNQkVEVExTX0VSUl9FUlJPUl9HRU5FUklDX0VSUk9SOwogfQotI2VuZGlmIC8qIE1CRURUTFNfUFNBX0NSWVBUT19DICovCisjZW5kaWYgLyogTUJFRFRMU19QU0FfQ1JZUFRPX0NMSUVOVCAqLwogCi0jaWYgZGVmaW5lZChNQkVEVExTX1BTQV9DUllQVE9fQykKKyNpZiBkZWZpbmVkKE1CRURUTFNfUFNBX0NSWVBUT19DTElFTlQpCiAvKiBDcmVhdGUgYSBuZXcgUFNBIGtleSB3aGljaCB3aWxsIGNvbnRhaW4gb25seSB0aGUgcHVibGljIHBhcnQgb2YgdGhlIHByaXZhdGUKICAqIGtleSB3aGljaCBpcyBwcm92aWRlZCBpbiBpbnB1dC4gRm9yIHRoaXMgbmV3IGtleToKICAqIC0gVHlwZSBpcyB0aGUgcHVibGljIGNvdW50ZXJwYXJ0IG9mIHRoZSBwcml2YXRlIGtleS4KQEAgLTYzNSw3ICs2MzYsNyBAQAogICAgIHBzYV9yZXNldF9rZXlfYXR0cmlidXRlcygmbmV3X2F0dHIpOwogICAgIHJldHVybiBuZXdfa2V5X2lkOwogfQotI2VuZGlmIC8qIE1CRURUTFNfUFNBX0NSWVBUT19DICovCisjZW5kaWYgLyogTUJFRFRMU19QU0FfQ1JZUFRPX0NMSUVOVCAqLwogLyogRU5EX0hFQURFUiAqLwogCiAvKiBCRUdJTl9ERVBFTkRFTkNJRVMKQEAgLTEzMTUsNyArMTMxNiw3IEBACiB9CiAvKiBFTkRfQ0FTRSAqLwogCi0vKiBCRUdJTl9DQVNFIGRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2OlBLX0NBTl9TSUdOX1NPTUUgKi8KKy8qIEJFR0lOX0NBU0UgZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NjpQS19DQU5fU0lHTl9TT01FICovCiB2b2lkIHBrX3NpZ25fdmVyaWZ5KGludCB0eXBlLCBpbnQgY3VydmVfb3Jfa2V5Yml0cywgaW50IHJzYV9wYWRkaW5nLCBpbnQgcnNhX21kX2FsZywKICAgICAgICAgICAgICAgICAgICAgaW50IHNpZ25fcmV0LCBpbnQgdmVyaWZ5X3JldCkKIHsKQEAgLTE3NTIsNyArMTc1Myw3IEBACiAgICAgVEVTVF9BU1NFUlQobWJlZHRsc19wa19nZXRfdHlwZSgmYWx0KSA9PSBNQkVEVExTX1BLX1JTQV9BTFQpOwogICAgIFRFU1RfQVNTRVJUKHN0cmNtcChtYmVkdGxzX3BrX2dldF9uYW1lKCZhbHQpLCAiUlNBLWFsdCIpID09IDApOwogCi0jaWYgZGVmaW5lZChNQkVEVExTX1BTQV9DUllQVE9fQykKKyNpZiBkZWZpbmVkKE1CRURUTFNfUFNBX0NSWVBUT19DTElFTlQpCiAgICAgcHNhX2tleV9hdHRyaWJ1dGVzX3QgYXR0cmlidXRlcyA9IFBTQV9LRVlfQVRUUklCVVRFU19JTklUOwogICAgIFRFU1RfRVFVQUwobWJlZHRsc19wa19nZXRfcHNhX2F0dHJpYnV0ZXMoJmFsdCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBTQV9LRVlfVVNBR0VfRU5DUllQVCwKQEAgLTE3NjEsNyArMTc2Miw3IEBACiAgICAgbWJlZHRsc19zdmNfa2V5X2lkX3Qga2V5X2lkID0gTUJFRFRMU19TVkNfS0VZX0lEX0lOSVQ7CiAgICAgVEVTVF9FUVVBTChtYmVkdGxzX3BrX2ltcG9ydF9pbnRvX3BzYSgmYWx0LCAmYXR0cmlidXRlcywgJmtleV9pZCksCiAgICAgICAgICAgICAgICBNQkVEVExTX0VSUl9QS19GRUFUVVJFX1VOQVZBSUxBQkxFKTsKLSNlbmRpZiAvKiBNQkVEVExTX1BTQV9DUllQVE9fQyAqLworI2VuZGlmIC8qIE1CRURUTFNfUFNBX0NSWVBUT19DTElFTlQgKi8KIAogICAgIC8qIFRlc3Qgc2lnbmF0dXJlICovCiAjaWYgU0laRV9NQVggPiBVSU5UX01BWApAQCAtMTgwMyw3ICsxODA0LDcgQEAKIH0KIC8qIEVORF9DQVNFICovCiAKLS8qIEJFR0lOX0NBU0UgZGVwZW5kc19vbjpNQkVEVExTX1BLX1BBUlNFX0M6TUJFRFRMU19NRF9DQU5fU0hBMjU2Ok1CRURUTFNfVVNFX1BTQV9DUllQVE86TUJFRFRMU19URVNUX1BLX1BTQV9TSUdOICovCisvKiBCRUdJTl9DQVNFIGRlcGVuZHNfb246TUJFRFRMU19QS19QQVJTRV9DOlBTQV9XQU5UX0FMR19TSEFfMjU2Ok1CRURUTFNfVVNFX1BTQV9DUllQVE86TUJFRFRMU19URVNUX1BLX1BTQV9TSUdOICovCiB2b2lkIHBrX3BzYV9zaWduKGludCBwc2FfdHlwZSwgaW50IGJpdHMsIGludCByc2FfcGFkZGluZykKIHsKICAgICBtYmVkdGxzX3BrX2NvbnRleHQgcGs7CkBAIC0yMTA2LDcgKzIxMDcsNyBAQAogfQogLyogRU5EX0NBU0UgKi8KIAotLyogQkVHSU5fQ0FTRSBkZXBlbmRzX29uOk1CRURUTFNfUFNBX0NSWVBUT19DICovCisvKiBCRUdJTl9DQVNFIGRlcGVuZHNfb246TUJFRFRMU19QU0FfQ1JZUFRPX0NMSUVOVCAqLwogdm9pZCBwa19nZXRfcHNhX2F0dHJpYnV0ZXMoaW50IHBrX3R5cGUsIGludCBmcm9tX3BhaXIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgdXNhZ2VfYXJnLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IHRvX3BhaXIsIGludCBleHBlY3RlZF9hbGcpCkBAIC0yMTU0LDcgKzIxNTUsMTEgQEAKICAgICAgICAgICAgICAgIG1iZWR0bHNfcGtfZ2V0X2JpdGxlbigmcGspKTsKICAgICBURVNUX0VRVUFMKHBzYV9nZXRfa2V5X3VzYWdlX2ZsYWdzKCZhdHRyaWJ1dGVzKSwgZXhwZWN0ZWRfdXNhZ2UpOwogICAgIFRFU1RfRVFVQUwocHNhX2dldF9rZXlfYWxnb3JpdGhtKCZhdHRyaWJ1dGVzKSwgZXhwZWN0ZWRfYWxnKTsKKyNpZiBkZWZpbmVkKE1CRURUTFNfUFNBX0NSWVBUT19DKQogICAgIFRFU1RfRVFVQUwocHNhX2dldF9rZXlfZW5yb2xsbWVudF9hbGdvcml0aG0oJmF0dHJpYnV0ZXMpLCBQU0FfQUxHX05PTkUpOworI2Vsc2UgLyogTUJFRFRMU19QU0FfQ1JZUFRPX0MgKi8KKyAgICBURVNUX0VRVUFMKHBzYV9nZXRfa2V5X2Vucm9sbG1lbnRfYWxnb3JpdGhtKCZhdHRyaWJ1dGVzKSwgNDIpOworI2VuZGlmIC8qIE1CRURUTFNfUFNBX0NSWVBUT19DICovCiAKICAgICBURVNUX0VRVUFMKG1iZWR0bHNfcGtfaW1wb3J0X2ludG9fcHNhKCZwaywgJmF0dHJpYnV0ZXMsICZuZXdfa2V5X2lkKSwgMCk7CiAgICAgaWYgKCFtYmVkdGxzX3Rlc3Rfa2V5X2NvbnNpc3RlbmN5X3BzYV9wayhuZXdfa2V5X2lkLCAmcGspKSB7CkBAIC0yMTY5LDcgKzIxNzQsNyBAQAogfQogLyogRU5EX0NBU0UgKi8KIAotLyogQkVHSU5fQ0FTRSBkZXBlbmRzX29uOk1CRURUTFNfUFNBX0NSWVBUT19DOk1CRURUTFNfUlNBX0M6TUJFRFRMU19QS0NTMV9WMjEgKi8KKy8qIEJFR0lOX0NBU0UgZGVwZW5kc19vbjpNQkVEVExTX1BTQV9DUllQVE9fQ0xJRU5UOk1CRURUTFNfUlNBX0M6TUJFRFRMU19QS0NTMV9WMjEgKi8KIHZvaWQgcGtfcnNhX3YyMV9nZXRfcHNhX2F0dHJpYnV0ZXMoaW50IG1kX3R5cGUsIGludCBmcm9tX3BhaXIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCB1c2FnZV9hcmcsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCB0b19wYWlyLCBpbnQgZXhwZWN0ZWRfYWxnKQpAQCAtMjIxNyw3ICsyMjIyLDcgQEAKIH0KIC8qIEVORF9DQVNFICovCiAKLS8qIEJFR0lOX0NBU0UgZGVwZW5kc19vbjpNQkVEVExTX1BTQV9DUllQVE9fQyAqLworLyogQkVHSU5fQ0FTRSBkZXBlbmRzX29uOk1CRURUTFNfUFNBX0NSWVBUT19DTElFTlQgKi8KIHZvaWQgcGtfZ2V0X3BzYV9hdHRyaWJ1dGVzX2ZhaWwoaW50IHBrX3R5cGUsIGludCBmcm9tX3BhaXIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCB1c2FnZV9hcmcsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBleHBlY3RlZF9yZXQpCkBAIC0yMjQzLDcgKzIyNDgsNyBAQAogfQogLyogRU5EX0NBU0UgKi8KIAotLyogQkVHSU5fQ0FTRSBkZXBlbmRzX29uOk1CRURUTFNfUFNBX0NSWVBUT19DOk1CRURUTFNfVEVTVF9QU0FfRUNDX0FUX0xFQVNUX09ORV9DVVJWRTpNQkVEVExTX1BTQV9DUllQVE9fU1RPUkFHRV9DICovCisvKiBCRUdJTl9DQVNFIGRlcGVuZHNfb246TUJFRFRMU19QU0FfQ1JZUFRPX0NMSUVOVDpNQkVEVExTX1RFU1RfUFNBX0VDQ19BVF9MRUFTVF9PTkVfQ1VSVkU6TUJFRFRMU19QU0FfQ1JZUFRPX1NUT1JBR0VfQyAqLwogdm9pZCBwa19pbXBvcnRfaW50b19wc2FfbGlmZXRpbWUoaW50IGZyb21fb3BhcXVlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGZyb21fcGVyc2lzdGVudCwgLyogd2hlbiBmcm9tIG9wYXF1ZSAqLwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGZyb21fZXhwb3J0YWJsZSwgLyogd2hlbiBmcm9tIG9wYXF1ZSAqLwpAQCAtMjM5NCw3ICsyMzk5LDcgQEAKIH0KIC8qIEVORF9DQVNFICovCiAKLS8qIEJFR0lOX0NBU0UgZGVwZW5kc19vbjpNQkVEVExTX1BTQV9DUllQVE9fQyAqLworLyogQkVHSU5fQ0FTRSBkZXBlbmRzX29uOk1CRURUTFNfUFNBX0NSWVBUT19DTElFTlQgKi8KIHZvaWQgcGtfaW1wb3J0X2ludG9fcHNhX2ZhaWwoaW50IHBrX3R5cGUsIGludCBmcm9tX3BhaXIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCB0eXBlX2FyZywgaW50IGJpdHNfYXJnLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgZXhwZWN0ZWRfcmV0KQpAQCAtMjQ4OSw3ICsyNDk0LDcgQEAKIH0KIC8qIEVORF9DQVNFICovCiAKLS8qIEJFR0lOX0NBU0UgZGVwZW5kc19vbjpNQkVEVExTX1BTQV9DUllQVE9fQyovCisvKiBCRUdJTl9DQVNFIGRlcGVuZHNfb246TUJFRFRMU19QU0FfQ1JZUFRPX0NMSUVOVCovCiB2b2lkIHBrX2NvcHlfZnJvbV9wc2FfZmFpbCh2b2lkKQogewogICAgIG1iZWR0bHNfcGtfY29udGV4dCBwa19jdHg7CkBAIC0yNTM0LDcgKzI1MzksNyBAQAogfQogLyogRU5EX0NBU0UgKi8KIAotLyogQkVHSU5fQ0FTRSBkZXBlbmRzX29uOk1CRURUTFNfUFNBX0NSWVBUT19DOk1CRURUTFNfUFNBX0FDQ0VMX0FMR19SU0FfUEtDUzFWMTVfU0lHTjpNQkVEVExTX1BTQV9BQ0NFTF9LRVlfVFlQRV9SU0FfS0VZX1BBSVJfQkFTSUM6IU1CRURUTFNfUlNBX0MgKi8KKy8qIEJFR0lOX0NBU0UgZGVwZW5kc19vbjpNQkVEVExTX1BTQV9DUllQVE9fQ0xJRU5UOk1CRURUTFNfUFNBX0FDQ0VMX0FMR19SU0FfUEtDUzFWMTVfU0lHTjpNQkVEVExTX1BTQV9BQ0NFTF9LRVlfVFlQRV9SU0FfS0VZX1BBSVJfQkFTSUM6IU1CRURUTFNfUlNBX0MgKi8KIHZvaWQgcGtfY29weV9mcm9tX3BzYV9idWlsdGluX2ZhaWwoKQogewogICAgIG1iZWR0bHNfcGtfY29udGV4dCBwa19jdHg7CkBAIC0yNTU3LDcgKzI1NjIsNyBAQAogfQogLyogRU5EX0NBU0UgKi8KIAotLyogQkVHSU5fQ0FTRSBkZXBlbmRzX29uOk1CRURUTFNfUFNBX0NSWVBUT19DKi8KKy8qIEJFR0lOX0NBU0UgZGVwZW5kc19vbjpNQkVEVExTX1BTQV9DUllQVE9fQ0xJRU5UICovCiB2b2lkIHBrX2NvcHlfZnJvbV9wc2Ffc3VjY2VzcyhkYXRhX3QgKnByaXZfa2V5X2RhdGEsIGludCBrZXlfdHlwZV9hcmcsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQga2V5X2FsZ19hcmcpCiB7CkBAIC0yNjQ0LDcgKzI2NDksNyBAQAogfQogLyogRU5EX0NBU0UgKi8KIAotLyogQkVHSU5fQ0FTRSBkZXBlbmRzX29uOk1CRURUTFNfUFNBX0NSWVBUT19DKi8KKy8qIEJFR0lOX0NBU0UgZGVwZW5kc19vbjpNQkVEVExTX1BTQV9DUllQVE9fQ0xJRU5UKi8KIHZvaWQgcGtfY29weV9wdWJsaWNfZnJvbV9wc2EoZGF0YV90ICpwcml2X2tleV9kYXRhLCBpbnQga2V5X3R5cGVfYXJnKQogewogICAgIHBzYV9rZXlfdHlwZV90IGtleV90eXBlID0ga2V5X3R5cGVfYXJnOwpkaWZmIC0tZ2l0IGEvdGVzdHMvc3VpdGVzL3Rlc3Rfc3VpdGVfcGtjczFfdjE1LmZ1bmN0aW9uIGIvdGVzdHMvc3VpdGVzL3Rlc3Rfc3VpdGVfcGtjczFfdjE1LmZ1bmN0aW9uCmluZGV4IDcxMTMyNzQuLmVkOWY0ZjQgMTAwNjQ0Ci0tLSBhL3Rlc3RzL3N1aXRlcy90ZXN0X3N1aXRlX3BrY3MxX3YxNS5mdW5jdGlvbgorKysgYi90ZXN0cy9zdWl0ZXMvdGVzdF9zdWl0ZV9wa2NzMV92MTUuZnVuY3Rpb24KQEAgLTIzNSw3ICsyMzUsNiBAQAogICAgICAgICBzaXplX3QgaTsKICAgICAgICAgc2l6ZV90IGNvdW50ID0gMDsKIAotI2lmICFkZWZpbmVkKE1CRURUTFNfUlNBX0FMVCkKICAgICAgICAgLyogQ2hlY2sgdGhhdCB0aGUgb3V0cHV0IGluIGludmFsaWQgY2FzZXMgaXMgd2hhdCB0aGUgZGVmYXVsdAogICAgICAgICAgKiBpbXBsZW1lbnRhdGlvbiBjdXJyZW50bHkgZG9lcy4gQWx0ZXJuYXRpdmUgaW1wbGVtZW50YXRpb25zCiAgICAgICAgICAqIG1heSBwcm9kdWNlIGRpZmZlcmVudCBvdXRwdXQsIHNvIHdlIG9ubHkgcGVyZm9ybSB0aGVzZSBwcmVjaXNlCkBAIC0yNDQsNyArMjQzLDcgQEAKICAgICAgICAgZm9yIChpID0gMDsgaSA8IG1heF9wYXlsb2FkX2xlbmd0aDsgaSsrKSB7CiAgICAgICAgICAgICBURVNUX0FTU0VSVChmaW5hbFtpXSA9PSAwKTsKICAgICAgICAgfQotI2VuZGlmCisKICAgICAgICAgLyogRXZlbiBpbiBhbHRlcm5hdGl2ZSBpbXBsZW1lbnRhdGlvbnMsIHRoZSBvdXRwdXRzIG11c3QgaGF2ZQogICAgICAgICAgKiBjaGFuZ2VkLCBvdGhlcndpc2UgaXQgaW5kaWNhdGVzIGF0IGxlYXN0IGEgdGltaW5nIHZ1bG5lcmFiaWxpdHkKICAgICAgICAgICogYmVjYXVzZSBubyB3cml0ZSB0byB0aGUgb3V0cHV0cyBpcyBwZXJmb3JtZWQgaW4gdGhlIGJhZCBjYXNlLiAqLwpkaWZmIC0tZ2l0IGEvdGVzdHMvc3VpdGVzL3Rlc3Rfc3VpdGVfcGtjczFfdjIxLmRhdGEgYi90ZXN0cy9zdWl0ZXMvdGVzdF9zdWl0ZV9wa2NzMV92MjEuZGF0YQppbmRleCA0MjQ1MGQ5Li4wZjMwYjUwIDEwMDY0NAotLS0gYS90ZXN0cy9zdWl0ZXMvdGVzdF9zdWl0ZV9wa2NzMV92MjEuZGF0YQorKysgYi90ZXN0cy9zdWl0ZXMvdGVzdF9zdWl0ZV9wa2NzMV92MjEuZGF0YQpAQCAtMTAxMSwxNSArMTAxMSwxNSBAQAogcGtjczFfcnNhc3NhX3Bzc192ZXJpZnlfZXh0OjIwNDg6ImE1ZGQ4NjdhYzRjYjAyZjkwYjk0NTdkNDhjMTRhNzcwZWY5OTFjNTZjMzljMGVjNjVmZDExYWZhODkzN2NlYTU3YjliZTdhYzczYjQ1YzAwMTc2MTViODJkNjIyZTMxODc1M2I2MDI3YzBmZDE1N2JlMTJmODA5MGZlZTJhN2FkY2QwZWVmNzU5Zjg4YmE0OTk3YzdhNDJkNThjOWFhMTJjYjk5YWUwMDFmZTUyMWMxM2JiNTQzMTQ0NWE4ZDVhZTRmNWU0YzdlOTQ4YWMyMjdkMzYwNDA3MWYyMGU1NzdlOTA1ZmJlYjE1ZGZhZjA2ZDFkZTVhZTYyNTNkNjNhNmEyMTIwYjMxYTVkYTVkYWJjOTU1MDYwMGUyMGYyN2QzNzM5ZTI2Mjc5MjVmZWEzY2M1MDlmMjFkZmYwNGU2ZWVhNDU0OWM1NDBkNjgwOWZmOTMwN2VlZGU5MWZmZjU4NzMzZDgzODVhMjM3ZDZkMzcwNWEzM2UzOTE5MDA5OTIwNzBkZjdhZGYxMzU3Y2Y3ZTM3MDBjZTM2NjdkZTgzZjE3YjhkZjE3NzhkYjM4MWRjZTA5Y2I0YWQwNThhNTExMDAxYTczODE5OGVlMjdjZjU1YTEzYjc1NDUzOTkwNjU4MmVjOGIxNzRiZDU4ZDVkMWYzZDc2N2M2MTM3MjFhZTA1IjoiMDEwMDAxIjpNQkVEVExTX01EX1NIQTE6TUJFRFRMU19NRF9OT05FOk1CRURUTFNfTURfU0hBMToyMDoiMTIyMTk2ZGViNWQxMjJiZDhjNmZjNzgxZmY2OTI0ZDdjNjk1YWFkZSI6IjZkM2I1Yjg3ZjY3ZWE2NTdhZjIxZjc1NDQxOTc3ZDIxODBmOTFiMmM1ZjY5MmRlODI5NTU2OTZhNjg2NzMwZDliOTc3OGQ5NzA3NThjY2IyNjA3MWMyMjA5ZmZiZDYxMjViZTJlOTZlYTgxYjY3Y2I5YjkzMDgyMzlmZGExN2Y3YjJiNjRlY2RhMDk2YjZiOTM1NjQwYTVhMWNiNDJhOTE1NWIxYzllZjdhNjMzYTAyYzU5ZjBkNmVlNTliODUyYzQzYjM1MDI5ZTczYzk0MGZmMDQxMGU4ZjExNGVlZDQ2YmJkMGZhZTE2NWU0MmJlMjUyOGE0MDFjM2IyOGZkODE4ZWYzMjMyZGNhOWY0ZDJhMGY1MTY2ZWM1OWM0MjM5NmQ2YzExZGJjMTIxNWE1NmZhMTcxNjlkYjk1NzUzNDNlZjM0ZjlkZTMyYTQ5Y2RjMzE3NDkyMmYyMjljMjNlMThlNDVkZjkzNTMxMTllYzQzMTljZWRjZTdhMTdjNjQwODhjMWY2ZjUyYmUyOTYzNDEwMGIzOTE5ZDM4ZjNkMWVkOTRlNjg5MWU2NmE3M2I4ZmI4NDlmNTg3NGRmNTk0NTllMjk4YzdiYmNlMmVlZTc4MmExOTVhYTY2ZmUyZDA3MzJiMjVlNTk1ZjU3ZDNlMDYxYjFmYzNlNDA2M2JmOThmIjowOjAKIAogUlNBU1NBLVBTUyBTaWduYXR1cmUgdmVyaWZ5IG9wdGlvbnMgIzMgKGN0eF9oYXNoIGRpdmVyZ2luZykKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2Ok1CRURUTFNfTURfQ0FOX1NIQTEKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTY6TUJFRFRMU19NRF9DQU5fU0hBMQogcGtjczFfcnNhc3NhX3Bzc192ZXJpZnlfZXh0OjIwNDg6ImE1ZGQ4NjdhYzRjYjAyZjkwYjk0NTdkNDhjMTRhNzcwZWY5OTFjNTZjMzljMGVjNjVmZDExYWZhODkzN2NlYTU3YjliZTdhYzczYjQ1YzAwMTc2MTViODJkNjIyZTMxODc1M2I2MDI3YzBmZDE1N2JlMTJmODA5MGZlZTJhN2FkY2QwZWVmNzU5Zjg4YmE0OTk3YzdhNDJkNThjOWFhMTJjYjk5YWUwMDFmZTUyMWMxM2JiNTQzMTQ0NWE4ZDVhZTRmNWU0YzdlOTQ4YWMyMjdkMzYwNDA3MWYyMGU1NzdlOTA1ZmJlYjE1ZGZhZjA2ZDFkZTVhZTYyNTNkNjNhNmEyMTIwYjMxYTVkYTVkYWJjOTU1MDYwMGUyMGYyN2QzNzM5ZTI2Mjc5MjVmZWEzY2M1MDlmMjFkZmYwNGU2ZWVhNDU0OWM1NDBkNjgwOWZmOTMwN2VlZGU5MWZmZjU4NzMzZDgzODVhMjM3ZDZkMzcwNWEzM2UzOTE5MDA5OTIwNzBkZjdhZGYxMzU3Y2Y3ZTM3MDBjZTM2NjdkZTgzZjE3YjhkZjE3NzhkYjM4MWRjZTA5Y2I0YWQwNThhNTExMDAxYTczODE5OGVlMjdjZjU1YTEzYjc1NDUzOTkwNjU4MmVjOGIxNzRiZDU4ZDVkMWYzZDc2N2M2MTM3MjFhZTA1IjoiMDEwMDAxIjpNQkVEVExTX01EX1NIQTE6TUJFRFRMU19NRF9TSEEyNTY6TUJFRFRMU19NRF9TSEExOjIwOiIxMjIxOTZkZWI1ZDEyMmJkOGM2ZmM3ODFmZjY5MjRkN2M2OTVhYWRlIjoiNmQzYjViODdmNjdlYTY1N2FmMjFmNzU0NDE5NzdkMjE4MGY5MWIyYzVmNjkyZGU4Mjk1NTY5NmE2ODY3MzBkOWI5Nzc4ZDk3MDc1OGNjYjI2MDcxYzIyMDlmZmJkNjEyNWJlMmU5NmVhODFiNjdjYjliOTMwODIzOWZkYTE3ZjdiMmI2NGVjZGEwOTZiNmI5MzU2NDBhNWExY2I0MmE5MTU1YjFjOWVmN2E2MzNhMDJjNTlmMGQ2ZWU1OWI4NTJjNDNiMzUwMjllNzNjOTQwZmYwNDEwZThmMTE0ZWVkNDZiYmQwZmFlMTY1ZTQyYmUyNTI4YTQwMWMzYjI4ZmQ4MThlZjMyMzJkY2E5ZjRkMmEwZjUxNjZlYzU5YzQyMzk2ZDZjMTFkYmMxMjE1YTU2ZmExNzE2OWRiOTU3NTM0M2VmMzRmOWRlMzJhNDljZGMzMTc0OTIyZjIyOWMyM2UxOGU0NWRmOTM1MzExOWVjNDMxOWNlZGNlN2ExN2M2NDA4OGMxZjZmNTJiZTI5NjM0MTAwYjM5MTlkMzhmM2QxZWQ5NGU2ODkxZTY2YTczYjhmYjg0OWY1ODc0ZGY1OTQ1OWUyOThjN2JiY2UyZWVlNzgyYTE5NWFhNjZmZTJkMDczMmIyNWU1OTVmNTdkM2UwNjFiMWZjM2U0MDYzYmY5OGYiOk1CRURUTFNfRVJSX1JTQV9JTlZBTElEX1BBRERJTkc6MAogCiBSU0FTU0EtUFNTIFNpZ25hdHVyZSB2ZXJpZnkgb3B0aW9ucyAjNCAobWdmMV9oYXNoIGRpdmVyZ2luZykKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2Ok1CRURUTFNfTURfQ0FOX1NIQTEKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTY6TUJFRFRMU19NRF9DQU5fU0hBMQogcGtjczFfcnNhc3NhX3Bzc192ZXJpZnlfZXh0OjIwNDg6ImE1ZGQ4NjdhYzRjYjAyZjkwYjk0NTdkNDhjMTRhNzcwZWY5OTFjNTZjMzljMGVjNjVmZDExYWZhODkzN2NlYTU3YjliZTdhYzczYjQ1YzAwMTc2MTViODJkNjIyZTMxODc1M2I2MDI3YzBmZDE1N2JlMTJmODA5MGZlZTJhN2FkY2QwZWVmNzU5Zjg4YmE0OTk3YzdhNDJkNThjOWFhMTJjYjk5YWUwMDFmZTUyMWMxM2JiNTQzMTQ0NWE4ZDVhZTRmNWU0YzdlOTQ4YWMyMjdkMzYwNDA3MWYyMGU1NzdlOTA1ZmJlYjE1ZGZhZjA2ZDFkZTVhZTYyNTNkNjNhNmEyMTIwYjMxYTVkYTVkYWJjOTU1MDYwMGUyMGYyN2QzNzM5ZTI2Mjc5MjVmZWEzY2M1MDlmMjFkZmYwNGU2ZWVhNDU0OWM1NDBkNjgwOWZmOTMwN2VlZGU5MWZmZjU4NzMzZDgzODVhMjM3ZDZkMzcwNWEzM2UzOTE5MDA5OTIwNzBkZjdhZGYxMzU3Y2Y3ZTM3MDBjZTM2NjdkZTgzZjE3YjhkZjE3NzhkYjM4MWRjZTA5Y2I0YWQwNThhNTExMDAxYTczODE5OGVlMjdjZjU1YTEzYjc1NDUzOTkwNjU4MmVjOGIxNzRiZDU4ZDVkMWYzZDc2N2M2MTM3MjFhZTA1IjoiMDEwMDAxIjpNQkVEVExTX01EX1NIQTE6TUJFRFRMU19NRF9TSEExOk1CRURUTFNfTURfU0hBMjU2OjIwOiIxMjIxOTZkZWI1ZDEyMmJkOGM2ZmM3ODFmZjY5MjRkN2M2OTVhYWRlIjoiNmQzYjViODdmNjdlYTY1N2FmMjFmNzU0NDE5NzdkMjE4MGY5MWIyYzVmNjkyZGU4Mjk1NTY5NmE2ODY3MzBkOWI5Nzc4ZDk3MDc1OGNjYjI2MDcxYzIyMDlmZmJkNjEyNWJlMmU5NmVhODFiNjdjYjliOTMwODIzOWZkYTE3ZjdiMmI2NGVjZGEwOTZiNmI5MzU2NDBhNWExY2I0MmE5MTU1YjFjOWVmN2E2MzNhMDJjNTlmMGQ2ZWU1OWI4NTJjNDNiMzUwMjllNzNjOTQwZmYwNDEwZThmMTE0ZWVkNDZiYmQwZmFlMTY1ZTQyYmUyNTI4YTQwMWMzYjI4ZmQ4MThlZjMyMzJkY2E5ZjRkMmEwZjUxNjZlYzU5YzQyMzk2ZDZjMTFkYmMxMjE1YTU2ZmExNzE2OWRiOTU3NTM0M2VmMzRmOWRlMzJhNDljZGMzMTc0OTIyZjIyOWMyM2UxOGU0NWRmOTM1MzExOWVjNDMxOWNlZGNlN2ExN2M2NDA4OGMxZjZmNTJiZTI5NjM0MTAwYjM5MTlkMzhmM2QxZWQ5NGU2ODkxZTY2YTczYjhmYjg0OWY1ODc0ZGY1OTQ1OWUyOThjN2JiY2UyZWVlNzgyYTE5NWFhNjZmZTJkMDczMmIyNWU1OTVmNTdkM2UwNjFiMWZjM2U0MDYzYmY5OGYiOjA6TUJFRFRMU19FUlJfUlNBX0lOVkFMSURfUEFERElORwogCiBSU0FTU0EtUFNTIFNpZ25hdHVyZSB2ZXJpZnkgb3B0aW9ucyAjNSAod3JvbmcgbXNnX2hhc2gpCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NjpNQkVEVExTX01EX0NBTl9TSEExCitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2Ok1CRURUTFNfTURfQ0FOX1NIQTEKIHBrY3MxX3JzYXNzYV9wc3NfdmVyaWZ5X2V4dDoyMDQ4OiJhNWRkODY3YWM0Y2IwMmY5MGI5NDU3ZDQ4YzE0YTc3MGVmOTkxYzU2YzM5YzBlYzY1ZmQxMWFmYTg5MzdjZWE1N2I5YmU3YWM3M2I0NWMwMDE3NjE1YjgyZDYyMmUzMTg3NTNiNjAyN2MwZmQxNTdiZTEyZjgwOTBmZWUyYTdhZGNkMGVlZjc1OWY4OGJhNDk5N2M3YTQyZDU4YzlhYTEyY2I5OWFlMDAxZmU1MjFjMTNiYjU0MzE0NDVhOGQ1YWU0ZjVlNGM3ZTk0OGFjMjI3ZDM2MDQwNzFmMjBlNTc3ZTkwNWZiZWIxNWRmYWYwNmQxZGU1YWU2MjUzZDYzYTZhMjEyMGIzMWE1ZGE1ZGFiYzk1NTA2MDBlMjBmMjdkMzczOWUyNjI3OTI1ZmVhM2NjNTA5ZjIxZGZmMDRlNmVlYTQ1NDljNTQwZDY4MDlmZjkzMDdlZWRlOTFmZmY1ODczM2Q4Mzg1YTIzN2Q2ZDM3MDVhMzNlMzkxOTAwOTkyMDcwZGY3YWRmMTM1N2NmN2UzNzAwY2UzNjY3ZGU4M2YxN2I4ZGYxNzc4ZGIzODFkY2UwOWNiNGFkMDU4YTUxMTAwMWE3MzgxOThlZTI3Y2Y1NWExM2I3NTQ1Mzk5MDY1ODJlYzhiMTc0YmQ1OGQ1ZDFmM2Q3NjdjNjEzNzIxYWUwNSI6IjAxMDAwMSI6TUJFRFRMU19NRF9TSEEyNTY6TUJFRFRMU19NRF9TSEExOk1CRURUTFNfTURfU0hBMToyMDoiNmEzOGY2MzI3YmU4ZmI1MzM0NjM5YzYyMTkzN2RkOTU5NThjYzNlMDdkYTZiYTI5ZGQ2YTdiYmQ5NGMxZTRiYyI6IjZkM2I1Yjg3ZjY3ZWE2NTdhZjIxZjc1NDQxOTc3ZDIxODBmOTFiMmM1ZjY5MmRlODI5NTU2OTZhNjg2NzMwZDliOTc3OGQ5NzA3NThjY2IyNjA3MWMyMjA5ZmZiZDYxMjViZTJlOTZlYTgxYjY3Y2I5YjkzMDgyMzlmZGExN2Y3YjJiNjRlY2RhMDk2YjZiOTM1NjQwYTVhMWNiNDJhOTE1NWIxYzllZjdhNjMzYTAyYzU5ZjBkNmVlNTliODUyYzQzYjM1MDI5ZTczYzk0MGZmMDQxMGU4ZjExNGVlZDQ2YmJkMGZhZTE2NWU0MmJlMjUyOGE0MDFjM2IyOGZkODE4ZWYzMjMyZGNhOWY0ZDJhMGY1MTY2ZWM1OWM0MjM5NmQ2YzExZGJjMTIxNWE1NmZhMTcxNjlkYjk1NzUzNDNlZjM0ZjlkZTMyYTQ5Y2RjMzE3NDkyMmYyMjljMjNlMThlNDVkZjkzNTMxMTllYzQzMTljZWRjZTdhMTdjNjQwODhjMWY2ZjUyYmUyOTYzNDEwMGIzOTE5ZDM4ZjNkMWVkOTRlNjg5MWU2NmE3M2I4ZmI4NDlmNTg3NGRmNTk0NTllMjk4YzdiYmNlMmVlZTc4MmExOTVhYTY2ZmUyZDA3MzJiMjVlNTk1ZjU3ZDNlMDYxYjFmYzNlNDA2M2JmOThmIjpNQkVEVExTX0VSUl9SU0FfVkVSSUZZX0ZBSUxFRDpNQkVEVExTX0VSUl9SU0FfVkVSSUZZX0ZBSUxFRAogCiBSU0FTU0EtUFNTIFNpZ25hdHVyZSB2ZXJpZnkgb3B0aW9ucyAjNiAod3JvbmcgZXhwZWN0ZWRfc2FsdF9sZW4pCkBAIC0xMDMxLDM1ICsxMDMxLDM1IEBACiBwa2NzMV9yc2Fzc2FfcHNzX3ZlcmlmeV9leHQ6MjA0ODoiYTVkZDg2N2FjNGNiMDJmOTBiOTQ1N2Q0OGMxNGE3NzBlZjk5MWM1NmMzOWMwZWM2NWZkMTFhZmE4OTM3Y2VhNTdiOWJlN2FjNzNiNDVjMDAxNzYxNWI4MmQ2MjJlMzE4NzUzYjYwMjdjMGZkMTU3YmUxMmY4MDkwZmVlMmE3YWRjZDBlZWY3NTlmODhiYTQ5OTdjN2E0MmQ1OGM5YWExMmNiOTlhZTAwMWZlNTIxYzEzYmI1NDMxNDQ1YThkNWFlNGY1ZTRjN2U5NDhhYzIyN2QzNjA0MDcxZjIwZTU3N2U5MDVmYmViMTVkZmFmMDZkMWRlNWFlNjI1M2Q2M2E2YTIxMjBiMzFhNWRhNWRhYmM5NTUwNjAwZTIwZjI3ZDM3MzllMjYyNzkyNWZlYTNjYzUwOWYyMWRmZjA0ZTZlZWE0NTQ5YzU0MGQ2ODA5ZmY5MzA3ZWVkZTkxZmZmNTg3MzNkODM4NWEyMzdkNmQzNzA1YTMzZTM5MTkwMDk5MjA3MGRmN2FkZjEzNTdjZjdlMzcwMGNlMzY2N2RlODNmMTdiOGRmMTc3OGRiMzgxZGNlMDljYjRhZDA1OGE1MTEwMDFhNzM4MTk4ZWUyN2NmNTVhMTNiNzU0NTM5OTA2NTgyZWM4YjE3NGJkNThkNWQxZjNkNzY3YzYxMzcyMWFlMDUiOiIwMTAwMDEiOk1CRURUTFNfTURfU0hBMTpNQkVEVExTX01EX1NIQTE6TUJFRFRMU19NRF9TSEExOjE5OiIxMjIxOTZkZWI1ZDEyMmJkOGM2ZmM3ODFmZjY5MjRkN2M2OTVhYWRlIjoiNmQzYjViODdmNjdlYTY1N2FmMjFmNzU0NDE5NzdkMjE4MGY5MWIyYzVmNjkyZGU4Mjk1NTY5NmE2ODY3MzBkOWI5Nzc4ZDk3MDc1OGNjYjI2MDcxYzIyMDlmZmJkNjEyNWJlMmU5NmVhODFiNjdjYjliOTMwODIzOWZkYTE3ZjdiMmI2NGVjZGEwOTZiNmI5MzU2NDBhNWExY2I0MmE5MTU1YjFjOWVmN2E2MzNhMDJjNTlmMGQ2ZWU1OWI4NTJjNDNiMzUwMjllNzNjOTQwZmYwNDEwZThmMTE0ZWVkNDZiYmQwZmFlMTY1ZTQyYmUyNTI4YTQwMWMzYjI4ZmQ4MThlZjMyMzJkY2E5ZjRkMmEwZjUxNjZlYzU5YzQyMzk2ZDZjMTFkYmMxMjE1YTU2ZmExNzE2OWRiOTU3NTM0M2VmMzRmOWRlMzJhNDljZGMzMTc0OTIyZjIyOWMyM2UxOGU0NWRmOTM1MzExOWVjNDMxOWNlZGNlN2ExN2M2NDA4OGMxZjZmNTJiZTI5NjM0MTAwYjM5MTlkMzhmM2QxZWQ5NGU2ODkxZTY2YTczYjhmYjg0OWY1ODc0ZGY1OTQ1OWUyOThjN2JiY2UyZWVlNzgyYTE5NWFhNjZmZTJkMDczMmIyNWU1OTVmNTdkM2UwNjFiMWZjM2U0MDYzYmY5OGYiOjA6TUJFRFRMU19FUlJfUlNBX0lOVkFMSURfUEFERElORwogCiBSU0FTU0EtUFNTIFNpZ25hdHVyZSB2ZXJpZnkgb3B0aW9ucyAjOCAobm9uLWRlZmF1bHQgc2FsdF9sZW46IG1heCkKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBwa2NzMV9yc2Fzc2FfcHNzX3ZlcmlmeV9leHQ6MTAyNDoiMDBkZDExOGE5Zjk5YmFiMDY4Y2EyYWVhM2I2YTZkNTk5N2VkNGVjOTU0ZTQwZGVlY2VhMDdkYTAxZWFhZTgwZWMyYmIxMzQwZGI4YTEyOGU4OTEzMjRhNWM1ZjVmYWQ4ZjU5MGQ3YzhjYWNiYzVmZTkzMWRhZmRhMTIyMzczNTI3OTQ2MWFiYWEwNTcyYjc2MTYzMWIzYThhZmU3Mzg5YjA4OGI2Mzk5M2EwYTI1ZWU0NWQyMTg1OGJhYjk5MzFhZWRkNDU4OWE2MzFiMzdmY2Y3MTQwODlmODU2NTQ5ZjM1OTMyNmRkMWUwZTg2ZGRlNTJlZDY2YjRhOTBiZGE0MDk1IjoiMDEwMDAxIjpNQkVEVExTX01EX1NIQTI1NjpNQkVEVExTX01EX1NIQTI1NjpNQkVEVExTX01EX1NIQTI1Njo5NDoiYzA3MTllOWE4ZDVkODM4ZDg2MWRjNmY2NzVjODk5ZDJiMzA5YTNhNjViYjlmZTZiMTFlNWFmY2JmOWEyYzBiMSI6IjBkMmJkYjA0NTZhM2Q2NTFkNWJkNDhhNDIwNDQ5Mzg5OGY3MmNmMWFhZGRkNzEzODdjYzA1OGJjM2Y0YzIzNWVhNmJlNDAxMGZkNjFiMjhlMWZiYjI3NTQ2MmI1Mzc3NWMwNGJlOTAyMmQzOGI2YTJlMDM4N2RkZGJhODZhM2Y4NTU0ZDI4NTgwNDRhNTlmZGRiZDU5NDc1M2ZjMDU2ZmUzM2M4ZGFkZGI4NWRjNzBkMTY0NjkwYjExODIyMDlmZjg0ODI0ZTBiZTEwZTM1YzM3OWYyZjM3OGJmMTc2YTlmN2NiOTRkOTVlNDRkOTAyNzZhMjk4Yzg4MTBmNzQxYzkiOjA6MAogCiBSU0FTU0EtUFNTIFNpZ25hdHVyZSB2ZXJpZnkgb3B0aW9ucyAjOSAobm9uLWRlZmF1bHQgc2FsdF9sZW46IDApCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NgogcGtjczFfcnNhc3NhX3Bzc192ZXJpZnlfZXh0OjEwMjQ6IjAwZGQxMThhOWY5OWJhYjA2OGNhMmFlYTNiNmE2ZDU5OTdlZDRlYzk1NGU0MGRlZWNlYTA3ZGEwMWVhYWU4MGVjMmJiMTM0MGRiOGExMjhlODkxMzI0YTVjNWY1ZmFkOGY1OTBkN2M4Y2FjYmM1ZmU5MzFkYWZkYTEyMjM3MzUyNzk0NjFhYmFhMDU3MmI3NjE2MzFiM2E4YWZlNzM4OWIwODhiNjM5OTNhMGEyNWVlNDVkMjE4NThiYWI5OTMxYWVkZDQ1ODlhNjMxYjM3ZmNmNzE0MDg5Zjg1NjU0OWYzNTkzMjZkZDFlMGU4NmRkZTUyZWQ2NmI0YTkwYmRhNDA5NSI6IjAxMDAwMSI6TUJFRFRMU19NRF9TSEEyNTY6TUJFRFRMU19NRF9TSEEyNTY6TUJFRFRMU19NRF9TSEEyNTY6MDoiYzA3MTllOWE4ZDVkODM4ZDg2MWRjNmY2NzVjODk5ZDJiMzA5YTNhNjViYjlmZTZiMTFlNWFmY2JmOWEyYzBiMSI6IjdmYzUwNmQyNmNhM2IyMjkyMmExY2UzOWZhYWVkZDI3MzE2MWI4MmQ5NDQzYzU2ZjFhMDM0ZjEzMWFlNGExOGNhZTE0NzQyNzFjYjRiNjZhMTdkOTcwN2NhNThiMGJkYmQzYzQwNmI3ZTY1YmJjYzliYmJjZTk0ZGM0NWRlODA3YjQ5ODliMjNiM2U0ZGI3NGNhMjkyOTgxMzc4MzdlYjkwY2M4M2QzMjE5MjQ5YmM3ZDQ4MGZjZWFmMDc1MjAzYTg2ZTU0YzRlY2ZhNGUzMTJlMzlmOGY2OWQ3NjUzNDA4OWEzNmVkOTA0OWNhOWNmZDVhYjFkYjFmYTc1ZmU1YzgiOjA6MAogCiBSU0FTU0EtUFNTIFNpZ25hdHVyZSB2ZXJpZnkgb3B0aW9ucyAjMTAgKG5vbi1kZWZhdWx0IHNhbHRfbGVuOiAwLCBBTlkpCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NgogcGtjczFfcnNhc3NhX3Bzc192ZXJpZnlfZXh0OjEwMjQ6IjAwZGQxMThhOWY5OWJhYjA2OGNhMmFlYTNiNmE2ZDU5OTdlZDRlYzk1NGU0MGRlZWNlYTA3ZGEwMWVhYWU4MGVjMmJiMTM0MGRiOGExMjhlODkxMzI0YTVjNWY1ZmFkOGY1OTBkN2M4Y2FjYmM1ZmU5MzFkYWZkYTEyMjM3MzUyNzk0NjFhYmFhMDU3MmI3NjE2MzFiM2E4YWZlNzM4OWIwODhiNjM5OTNhMGEyNWVlNDVkMjE4NThiYWI5OTMxYWVkZDQ1ODlhNjMxYjM3ZmNmNzE0MDg5Zjg1NjU0OWYzNTkzMjZkZDFlMGU4NmRkZTUyZWQ2NmI0YTkwYmRhNDA5NSI6IjAxMDAwMSI6TUJFRFRMU19NRF9TSEEyNTY6TUJFRFRMU19NRF9TSEEyNTY6TUJFRFRMU19NRF9TSEEyNTY6TUJFRFRMU19SU0FfU0FMVF9MRU5fQU5ZOiJjMDcxOWU5YThkNWQ4MzhkODYxZGM2ZjY3NWM4OTlkMmIzMDlhM2E2NWJiOWZlNmIxMWU1YWZjYmY5YTJjMGIxIjoiN2ZjNTA2ZDI2Y2EzYjIyOTIyYTFjZTM5ZmFhZWRkMjczMTYxYjgyZDk0NDNjNTZmMWEwMzRmMTMxYWU0YTE4Y2FlMTQ3NDI3MWNiNGI2NmExN2Q5NzA3Y2E1OGIwYmRiZDNjNDA2YjdlNjViYmNjOWJiYmNlOTRkYzQ1ZGU4MDdiNDk4OWIyM2IzZTRkYjc0Y2EyOTI5ODEzNzgzN2ViOTBjYzgzZDMyMTkyNDliYzdkNDgwZmNlYWYwNzUyMDNhODZlNTRjNGVjZmE0ZTMxMmUzOWY4ZjY5ZDc2NTM0MDg5YTM2ZWQ5MDQ5Y2E5Y2ZkNWFiMWRiMWZhNzVmZTVjOCI6MDowCiAKIFJTQVNTQS1QU1MgU2lnbmF0dXJlIHZlcmlmeSBvcHRpb25zICMxMSAoTUdGMSBhbGcgIT0gTVNHIGhhc2ggYWxnKQotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHBrY3MxX3JzYXNzYV9wc3NfdmVyaWZ5X2V4dDoxMDI0OiIwMGRkMTE4YTlmOTliYWIwNjhjYTJhZWEzYjZhNmQ1OTk3ZWQ0ZWM5NTRlNDBkZWVjZWEwN2RhMDFlYWFlODBlYzJiYjEzNDBkYjhhMTI4ZTg5MTMyNGE1YzVmNWZhZDhmNTkwZDdjOGNhY2JjNWZlOTMxZGFmZGExMjIzNzM1Mjc5NDYxYWJhYTA1NzJiNzYxNjMxYjNhOGFmZTczODliMDg4YjYzOTkzYTBhMjVlZTQ1ZDIxODU4YmFiOTkzMWFlZGQ0NTg5YTYzMWIzN2ZjZjcxNDA4OWY4NTY1NDlmMzU5MzI2ZGQxZTBlODZkZGU1MmVkNjZiNGE5MGJkYTQwOTUiOiIwMTAwMDEiOk1CRURUTFNfTURfTk9ORTpNQkVEVExTX01EX1NIQTI1NjpNQkVEVExTX01EX1NIQTI1NjpNQkVEVExTX1JTQV9TQUxUX0xFTl9BTlk6ImMwNzE5ZTlhOGQ1ZDgzOGQ4NjFkYzZmNjc1Yzg5OWQyYjMwOWEzYTY1YmI5ZmU2YjExZTVhZmNiZjlhMmMwYjEiOiI3ZmM1MDZkMjZjYTNiMjI5MjJhMWNlMzlmYWFlZGQyNzMxNjFiODJkOTQ0M2M1NmYxYTAzNGYxMzFhZTRhMThjYWUxNDc0MjcxY2I0YjY2YTE3ZDk3MDdjYTU4YjBiZGJkM2M0MDZiN2U2NWJiY2M5YmJiY2U5NGRjNDVkZTgwN2I0OTg5YjIzYjNlNGRiNzRjYTI5Mjk4MTM3ODM3ZWI5MGNjODNkMzIxOTI0OWJjN2Q0ODBmY2VhZjA3NTIwM2E4NmU1NGM0ZWNmYTRlMzEyZTM5ZjhmNjlkNzY1MzQwODlhMzZlZDkwNDljYTljZmQ1YWIxZGIxZmE3NWZlNWM4IjowOjAKIAogUlNBU1NBLVBTUyBTaWduYXR1cmUgdmVyaWZ5IG9wdGlvbnMgIzEyIChNR0YxIGFsZyAhPSBNU0cgaGFzaCBhbGcsIGN0eCB3cm9uZykKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2Ok1CRURUTFNfTURfQ0FOX1NIQTEKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTY6TUJFRFRMU19NRF9DQU5fU0hBMQogcGtjczFfcnNhc3NhX3Bzc192ZXJpZnlfZXh0OjEwMjQ6IjAwZGQxMThhOWY5OWJhYjA2OGNhMmFlYTNiNmE2ZDU5OTdlZDRlYzk1NGU0MGRlZWNlYTA3ZGEwMWVhYWU4MGVjMmJiMTM0MGRiOGExMjhlODkxMzI0YTVjNWY1ZmFkOGY1OTBkN2M4Y2FjYmM1ZmU5MzFkYWZkYTEyMjM3MzUyNzk0NjFhYmFhMDU3MmI3NjE2MzFiM2E4YWZlNzM4OWIwODhiNjM5OTNhMGEyNWVlNDVkMjE4NThiYWI5OTMxYWVkZDQ1ODlhNjMxYjM3ZmNmNzE0MDg5Zjg1NjU0OWYzNTkzMjZkZDFlMGU4NmRkZTUyZWQ2NmI0YTkwYmRhNDA5NSI6IjAxMDAwMSI6TUJFRFRMU19NRF9OT05FOk1CRURUTFNfTURfU0hBMTpNQkVEVExTX01EX1NIQTI1NjpNQkVEVExTX1JTQV9TQUxUX0xFTl9BTlk6ImMwNzE5ZTlhOGQ1ZDgzOGQ4NjFkYzZmNjc1Yzg5OWQyYjMwOWEzYTY1YmI5ZmU2YjExZTVhZmNiZjlhMmMwYjEiOiI3ZmM1MDZkMjZjYTNiMjI5MjJhMWNlMzlmYWFlZGQyNzMxNjFiODJkOTQ0M2M1NmYxYTAzNGYxMzFhZTRhMThjYWUxNDc0MjcxY2I0YjY2YTE3ZDk3MDdjYTU4YjBiZGJkM2M0MDZiN2U2NWJiY2M5YmJiY2U5NGRjNDVkZTgwN2I0OTg5YjIzYjNlNGRiNzRjYTI5Mjk4MTM3ODM3ZWI5MGNjODNkMzIxOTI0OWJjN2Q0ODBmY2VhZjA3NTIwM2E4NmU1NGM0ZWNmYTRlMzEyZTM5ZjhmNjlkNzY1MzQwODlhMzZlZDkwNDljYTljZmQ1YWIxZGIxZmE3NWZlNWM4IjpNQkVEVExTX0VSUl9SU0FfSU5WQUxJRF9QQURESU5HOjAKIAogUlNBU1NBLVBTUyBTaWduYXR1cmUgdmVyaWZ5IG9wdGlvbnMgIzEzIChNR0YxIGFsZyAhPSBNU0cgaGFzaCBhbGcsIGFyZyB3cm9uZykKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2Ok1CRURUTFNfTURfQ0FOX1NIQTEKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTY6TUJFRFRMU19NRF9DQU5fU0hBMQogcGtjczFfcnNhc3NhX3Bzc192ZXJpZnlfZXh0OjEwMjQ6IjAwZGQxMThhOWY5OWJhYjA2OGNhMmFlYTNiNmE2ZDU5OTdlZDRlYzk1NGU0MGRlZWNlYTA3ZGEwMWVhYWU4MGVjMmJiMTM0MGRiOGExMjhlODkxMzI0YTVjNWY1ZmFkOGY1OTBkN2M4Y2FjYmM1ZmU5MzFkYWZkYTEyMjM3MzUyNzk0NjFhYmFhMDU3MmI3NjE2MzFiM2E4YWZlNzM4OWIwODhiNjM5OTNhMGEyNWVlNDVkMjE4NThiYWI5OTMxYWVkZDQ1ODlhNjMxYjM3ZmNmNzE0MDg5Zjg1NjU0OWYzNTkzMjZkZDFlMGU4NmRkZTUyZWQ2NmI0YTkwYmRhNDA5NSI6IjAxMDAwMSI6TUJFRFRMU19NRF9OT05FOk1CRURUTFNfTURfU0hBMjU2Ok1CRURUTFNfTURfU0hBMTpNQkVEVExTX1JTQV9TQUxUX0xFTl9BTlk6ImMwNzE5ZTlhOGQ1ZDgzOGQ4NjFkYzZmNjc1Yzg5OWQyYjMwOWEzYTY1YmI5ZmU2YjExZTVhZmNiZjlhMmMwYjEiOiI3ZmM1MDZkMjZjYTNiMjI5MjJhMWNlMzlmYWFlZGQyNzMxNjFiODJkOTQ0M2M1NmYxYTAzNGYxMzFhZTRhMThjYWUxNDc0MjcxY2I0YjY2YTE3ZDk3MDdjYTU4YjBiZGJkM2M0MDZiN2U2NWJiY2M5YmJiY2U5NGRjNDVkZTgwN2I0OTg5YjIzYjNlNGRiNzRjYTI5Mjk4MTM3ODM3ZWI5MGNjODNkMzIxOTI0OWJjN2Q0ODBmY2VhZjA3NTIwM2E4NmU1NGM0ZWNmYTRlMzEyZTM5ZjhmNjlkNzY1MzQwODlhMzZlZDkwNDljYTljZmQ1YWIxZGIxZmE3NWZlNWM4IjowOk1CRURUTFNfRVJSX1JTQV9JTlZBTElEX1BBRERJTkcKIAogUlNBU1NBLVBTUyB2ZXJpZnkgZXh0LCA1MTItYml0IGtleSwgZW1wdHkgc2FsdCwgZ29vZCBzaWduYXR1cmUKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBwa2NzMV9yc2Fzc2FfcHNzX3ZlcmlmeV9leHQ6NTEyOiIwMGIwNzZkMjMyNTA4MTZmOWFhYjAyMzA3ZTQ1MmI5N2YwY2FlNzU5ODM2OWI0MTYyNGU4YWZjNzk3MWE1OWExMzg5MmY2NGIwN2VhYTZlYzkyOGMxNjBiMmQ2ZWM4ZjlkMGRkNWI2M2M4YjNhYzA3NjdiNGY2NWM4OTJmNTZjMTBmIjoiMDEwMDAxIjpNQkVEVExTX01EX1NIQTI1NjpNQkVEVExTX01EX1NIQTI1NjpNQkVEVExTX01EX1NIQTI1NjowOiJlM2IwYzQ0Mjk4ZmMxYzE0OWFmYmY0Yzg5OTZmYjkyNDI3YWU0MWU0NjQ5YjkzNGNhNDk1OTkxYjc4NTJiODU1IjoiYWNlOGIwMzM0N2RhMWI5YTdhNWU5NGEwZDc2MzU5YmIzOWM4MTliYjE3MGJlZjM4ZWE4NDk5NWVkNjUzNDQ2YzBhZTg3ZWRlNDM0Y2RmOWQwY2IyZDdiZjE2NGNmNDI3ODkyMzYzZTY4NTVhMWQyNGQwY2U1ZGQ3MmFjYWYyNDYiOjA6MAogCiBSU0FTU0EtUFNTIHZlcmlmeSBleHQsIDUxMi1iaXQga2V5LCBlbXB0eSBzYWx0LCBiYWQgc2lnbmF0dXJlCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NgogcGtjczFfcnNhc3NhX3Bzc192ZXJpZnlfZXh0OjUxMjoiMDBiMDc2ZDIzMjUwODE2ZjlhYWIwMjMwN2U0NTJiOTdmMGNhZTc1OTgzNjliNDE2MjRlOGFmYzc5NzFhNTlhMTM4OTJmNjRiMDdlYWE2ZWM5MjhjMTYwYjJkNmVjOGY5ZDBkZDViNjNjOGIzYWMwNzY3YjRmNjVjODkyZjU2YzEwZiI6IjAxMDAwMSI6TUJFRFRMU19NRF9TSEEyNTY6TUJFRFRMU19NRF9TSEEyNTY6TUJFRFRMU19NRF9TSEEyNTY6MDoiZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NSI6ImFjZThiMDMzNDdkYTFiOWE3YTVlOTRhMGQ3NjM1OWJiMzljODE5YmIxNzBiZWYzOGVhODQ5OTVlZDY1MzQ0NmMwYWU4N2VkZTQzNGNkZjlkMGNiMmQ3YmYxNjRjZjQyNzg5MjM2M2U2ODU1YTFkMjRkMGNlNWRkNzJhY2FmMjQ3IjpNQkVEVExTX0VSUl9SU0FfSU5WQUxJRF9QQURESU5HOk1CRURUTFNfRVJSX1JTQV9JTlZBTElEX1BBRERJTkcKIAogUlNBU1NBLVBTUyB2ZXJpZnkgZXh0LCA1MjItYml0IGtleSwgU0hBLTUxMiwgZW1wdHkgc2FsdCwgZ29vZCBzaWduYXR1cmUKQEAgLTEwODcsMTUgKzEwODcsMTUgQEAKIHBrY3MxX3JzYXNzYV9wc3NfdmVyaWZ5X2V4dDo1MjE6IjAxMzFiNjk4NjBmM2NiOWJmODVlYTM1OGZkZjJiZDI5OTBmMWI3N2E4MGQ2YTRmZGY4MTdhNDNkZDg5NmJkZjdkZDI2YWY4YWMwMjM3ZjUyNmUwZDMzYjEwNWM5NzFmZGJkNGZmYTllY2U5OWZjNDY5ZjMxZWNmNDI5ZThmNTYyYzFjMyI6IjAxMDAwMSI6TUJFRFRMU19NRF9TSEE1MTI6TUJFRFRMU19NRF9TSEE1MTI6TUJFRFRMU19NRF9TSEE1MTI6MDoiY2Y4M2UxMzU3ZWVmYjhiZGYxNTQyODUwZDY2ZDgwMDdkNjIwZTQwNTBiNTcxNWRjODNmNGE5MjFkMzZjZTljZTQ3ZDBkMTNjNWQ4NWYyYjBmZjgzMThkMjg3N2VlYzJmNjNiOTMxYmQ0NzQxN2E4MWE1MzgzMjdhZjkyN2RhM2UiOiIwMDQ3MTc5NDY1NTgzN2RhNDk4Y2JmMjcyNDI4MDdiNDA1OTNhMzUzYzcwN2ViMjJmZDJjYzVhMzI1OWU3MjhhYzRmMWRmNjc2MDQzZWVlYzhlMTZjMTE3NWIzZDlhYzhjYWU3MmVjMWQ1NzcyZGQ2OWRlNzFjNTY3N2YxOTAzMTU2OGUiOk1CRURUTFNfRVJSX1JTQV9CQURfSU5QVVRfREFUQTpNQkVEVExTX0VSUl9SU0FfQkFEX0lOUFVUX0RBVEEKIAogUlNBU1NBLVBTUyB2ZXJpZnkgZXh0LCA1MjEtYml0IGtleSwgU0hBLTI1NiwgZW1wdHkgc2FsdCwgZ29vZCBzaWduYXR1cmUKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBwa2NzMV9yc2Fzc2FfcHNzX3ZlcmlmeV9leHQ6NTIxOiIwMTMxYjY5ODYwZjNjYjliZjg1ZWEzNThmZGYyYmQyOTkwZjFiNzdhODBkNmE0ZmRmODE3YTQzZGQ4OTZiZGY3ZGQyNmFmOGFjMDIzN2Y1MjZlMGQzM2IxMDVjOTcxZmRiZDRmZmE5ZWNlOTlmYzQ2OWYzMWVjZjQyOWU4ZjU2MmMxYzMiOiIwMTAwMDEiOk1CRURUTFNfTURfU0hBMjU2Ok1CRURUTFNfTURfU0hBMjU2Ok1CRURUTFNfTURfU0hBMjU2OjA6IjU1OWFlYWQwODI2NGQ1Nzk1ZDM5MDk3MThjZGQwNWFiZDQ5NTcyZTg0ZmU1NTU5MGVlZjMxYTg4YTA4ZmRmZmQiOiIwMDljNDk0MTE1N2ZhMzYyODhlNDY3MzEwYjE5OGFiMGM2MTVjNDA5NjNkNjExZmZlZWYwMzAwMDU0OWRlZDgwOTIzNTk1NWVjYzU3YWRiYTQ0NzgyZTk0OTdjMDA0ZjQ4MGJhMmIzZDU4ZGI4MzM1ZmUwYjM5MTA3NWMwMmM4NDNhNmQiOjA6MAogCiBSU0FTU0EtUFNTIHZlcmlmeSBleHQsIDUyMS1iaXQga2V5LCBTSEEtMjU2LCBlbXB0eSBzYWx0LCBmbGlwcGVkLWhpZ2hlc3QtYml0IHNpZ25hdHVyZQotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHBrY3MxX3JzYXNzYV9wc3NfdmVyaWZ5X2V4dDo1MjE6IjAxMzFiNjk4NjBmM2NiOWJmODVlYTM1OGZkZjJiZDI5OTBmMWI3N2E4MGQ2YTRmZGY4MTdhNDNkZDg5NmJkZjdkZDI2YWY4YWMwMjM3ZjUyNmUwZDMzYjEwNWM5NzFmZGJkNGZmYTllY2U5OWZjNDY5ZjMxZWNmNDI5ZThmNTYyYzFjMyI6IjAxMDAwMSI6TUJFRFRMU19NRF9TSEEyNTY6TUJFRFRMU19NRF9TSEEyNTY6TUJFRFRMU19NRF9TSEEyNTY6MDoiNTU5YWVhZDA4MjY0ZDU3OTVkMzkwOTcxOGNkZDA1YWJkNDk1NzJlODRmZTU1NTkwZWVmMzFhODhhMDhmZGZmZCI6IjAwZTExYTI0MDNkZjY4MWM0NGExZjczZjAxNGI2YzlhZDE3ODQ3ZDBiNjczZjdjMmE4MDFjZWUyMDhkMTBhYjU3OTJjMTBjZDBjZDQ5NWE0YjMzMWFhYTUyMTQwOWZjYTdjYjFiMGQ5NzhiM2E4NGNkNjdlMjgwNzhiOTg3NTNlOTQ2NiI6TUJFRFRMU19FUlJfUlNBX0JBRF9JTlBVVF9EQVRBOk1CRURUTFNfRVJSX1JTQV9CQURfSU5QVVRfREFUQQogCiBSU0FTU0EtUFNTIHZlcmlmeSBleHQsIGFsbC16ZXJvIHBhZGRpbmcsIGF1dG9tYXRpYyBzYWx0IGxlbmd0aAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHBrY3MxX3JzYXNzYV9wc3NfdmVyaWZ5X2V4dDo1MTI6IjAwYjA3NmQyMzI1MDgxNmY5YWFiMDIzMDdlNDUyYjk3ZjBjYWU3NTk4MzY5YjQxNjI0ZThhZmM3OTcxYTU5YTEzODkyZjY0YjA3ZWFhNmVjOTI4YzE2MGIyZDZlYzhmOWQwZGQ1YjYzYzhiM2FjMDc2N2I0ZjY1Yzg5MmY1NmMxMGYiOiIwMTAwMDEiOk1CRURUTFNfTURfTk9ORTpNQkVEVExTX01EX1NIQTI1NjpNQkVEVExTX01EX1NIQTI1NjpNQkVEVExTX1JTQV9TQUxUX0xFTl9BTlk6IiI6IjYzYTM1Mjk0NTc3YzdlNTkzMTcwMzc4MTc1YjdkZjI3YzI5M2RhZTU4M2VjMmE5NzE0MjZlYjJkNjZmMmFmNDgzZTg5N2JmYWU1ZGMyMDMwMGE5ZDYxYTM2NDRlMDhjM2FlZTYxYTQ2MzY5MGEzNDk4OTAxNTYzYzQ2MDQxMDU2IjpNQkVEVExTX0VSUl9SU0FfSU5WQUxJRF9QQURESU5HOk1CRURUTFNfRVJSX1JTQV9JTlZBTElEX1BBRERJTkcKIAogUlNBU1NBLVBTUyBTaWduYXR1cmUgUlNBLTEwMjQsIFNIQS01MTIKQEAgLTExMzUsMTUgKzExMzUsMTUgQEAKIHBrY3MxX3JzYXNzYV9wc3NfdmVyaWZ5OjEwNDg6IjAwYzc1ZDBmOWZhMTdkMWQyNGI5Mzk1MzdhNDM0MDE3ZjM5MGM2NjA0NDQ0YzM1YTEzMzYwZDZiMWZjOTg2YmFmNDAxNTliODQyNzVkMzdiODgzMjc4ZGY1MDY0ZGQ5ZWIwZjI5YjBkMzI1YWNjNzkwYzRiNTk2NzI3MzdkYmJmM2FjYjg4ZjVlMmYyZDU0YzkxOWNhZmQwNzIyNzJjNDk0NTkxZDUyZTE1ODk5MzMxNWU3MWUyY2E2MGIxYzc0ZmVmZjhmM2Q3Nzg0MmI0MTVkNGU3MTczNGE0OTgyMDZhNWNkOTMxNWM4N2IyM2U1ODNlMjVlYjRjYTk3MDU2YjQ1Yzk2ODU2ZCI6IjAxMDAwMSI6TUJFRFRMU19NRF9TSEE1MTI6TUJFRFRMU19NRF9TSEE1MTI6IjM1M2NlZjFjM2FhNThiMGFjYzJmNTNjM2FhMDFiZjdkNzdhNjVlZDk0MDdkZjY2OGZjMjkxNTViMTE4NDVhNzJlOTg3ZTM4OTdjYjkwMmM3YTRhMDI2NzAzOGMxZjE2YmVmNWRmNjdkYTUwZjY2YTQ5OTNjZWI0YjcyMzRmNzY5IjoiNjUzZGY5NzMwZTE0ZTAzZjJmZmIzMzc0ZDZiNzUyOTVhYTRhNTJjMzg1NDBiMmQ1MDFhZGMxZWI2NTlhNGQ3YTA1MDc2OWEzZDExZDBkNWQ2ZjNlZmI3MzQyMDBhZGUyNDFmZGMyNzFjMGY1ZWVlZDg1YjRiZjAwYjIzMjdiYzgiOiI5NDQyYThlYzQ4Zjg3ZWJjODFjYzEyNzNiMDNlNTI4ZTc2NDNjOWUyZmNjNjBlZDg1ODI3ZDkzNDFjNWEzNmU1Yzc2MDU5YmFhOGU5ODkxZGY0MzdlNDRjNDA0N2EyNjZiNDZiY2FhYWQzZGUxZjFkNGQzNTc2ZGVmZmYwODBiNzkxYjAxMzQ5MTYzNjE4N2ZjNDVhOTMwYjcwYTUzM2VkOTJhYmZkMTY4ZjA1MGRmOTFiNGMzNWQ2OGQxNjBhMjQzY2U1ODk4MDdhN2QzMjY2MWZjMThiOTU0N2NkYzBmZDg2ZDMzYWNkMzQ5Yzk4YjM0ZmIwMTZkZGQxYmZmMjNjNTgxNzBlIjowCiAKIFJTQVNTQS1QU1MgU2lnbmF0dXJlIFJTQS0xMDI0LCBTSEEtMjI0LCBTYWx0IExlbmd0aCAyMAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyMjQKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yMjQKIHBrY3MxX3JzYXNzYV9wc3Nfc2lnbjoxMDI0OiJlNTU2M2IxNDVkYjZmZjVhMTYyODBkM2U4MGVmZjAyZjE4MWRiZDAzMzI0ZWYyNDdmNTk2YTRkNGE3YjhkYWEzMmI5OTM0ZTNjN2Y0ZGNmNmEzMTA1NDYyZGVjNjM4Mzk2Mzg2MTg0MThiNTFkYjAyNjkzZmFiYjRlNjgzODcyNSI6ImQyYTRlYzBmYTIyMjZjZGU4MmRhNzc2NTNiMDcyY2QwOTg1MzVkM2U5MGVkNGQ3MjI0ZGNiOGNiOGI5MzE0NzY4ZGM1MTdlMjJkN2M4ZmExM2YyNTNkYWE3NDY1YTc5OTU2MDk4YWE0Y2MzYTZlMzVlOGIxZmNjNGY5N2U3NzRmIjoiYmNiNDdiMmUwZGFmY2JhODFmZjJhMmI1Y2IxMTVjYTdlNzU3MTg0YzlkNzJiY2RjZGE3MDdhMTQ2YjNiNGUyOTk4OWRkYzY2MGJkNjk0ODY1YjkzMmI3MWNhMjRhMzM1Y2Y0ZDMzOWM3MTkxODNlNjIyMmU0YzllYTY4NzVhY2Q1MjhhNDliYTIxODYzZmUwODE0N2MzYTQ3ZTQxOTkwYjUxYTAzZjc3ZDIyMTM3ZjhkNzRjNDNhNWE0NWY0ZTllMThhMmQxNWRiMDUxZGM4OTM4NWRiOWNmODM3NGI2M2E4Y2M4ODExMzcxMGU2ZDgxNzkwNzViN2RjNzllZTc2YiI6IjAxMDAwMSI6TUJFRFRMU19NRF9TSEEyMjQ6TUJFRFRMU19NRF9TSEEyMjQ6IjE2OThiN2RhMTM4MDY0NTEzNjZiOTY1OGU0NGUyYzdkYzE1ZGM5NmM1ODhjNzIwYzRkNWY0NTRjIjoiNmYyODQxMTY2YTY0NDcxZDRmMGI4ZWQwZGJiN2RiMzIxNjFkYTEzYiI6IjUzZDg1OWM5ZjEwYWJmMWMwMDI4NGE0YjU1YmYyYmQ4NGQ4ZTMxM2I0ZjNjMzViOGRlYzdiYzNhZmUzOWI5YjhhMTU1NDE4ZWFkMTkzMTg5NTc2OWNlMjM0MGJlMjA5MWYyMzg1YmJjZjEwZDllOTJiY2Y1ZDBlMjk2MGQxMGU3OTJlN2Q4NjVjNjRlNTBkMTlmZmExM2U1MjgxN2Q3ZDhkOGRiMzQzOTJjMjM3NGEyZTliNjkxODRmOTJhNGFkOWIxYjhiYWU5OWNhNjE0ZDIwNGI2NWE0MzhlMzhkYmJmYzhjN2NjNDRlZDU2NzdhZjcwY2U2YzRmOTUxZjAyNDQiOjIwOjAKIAogUlNBU1NBLVBTUyBTaWduYXR1cmUgUlNBLTEwMjQsIFNIQS0yNTYsIFNhbHQgTGVuZ3RoIDIwCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NgogcGtjczFfcnNhc3NhX3Bzc19zaWduOjEwMjQ6ImU1NTYzYjE0NWRiNmZmNWExNjI4MGQzZTgwZWZmMDJmMTgxZGJkMDMzMjRlZjI0N2Y1OTZhNGQ0YTdiOGRhYTMyYjk5MzRlM2M3ZjRkY2Y2YTMxMDU0NjJkZWM2MzgzOTYzODYxODQxOGI1MWRiMDI2OTNmYWJiNGU2ODM4NzI1IjoiZDJhNGVjMGZhMjIyNmNkZTgyZGE3NzY1M2IwNzJjZDA5ODUzNWQzZTkwZWQ0ZDcyMjRkY2I4Y2I4YjkzMTQ3NjhkYzUxN2UyMmQ3YzhmYTEzZjI1M2RhYTc0NjVhNzk5NTYwOThhYTRjYzNhNmUzNWU4YjFmY2M0Zjk3ZTc3NGYiOiJiY2I0N2IyZTBkYWZjYmE4MWZmMmEyYjVjYjExNWNhN2U3NTcxODRjOWQ3MmJjZGNkYTcwN2ExNDZiM2I0ZTI5OTg5ZGRjNjYwYmQ2OTQ4NjViOTMyYjcxY2EyNGEzMzVjZjRkMzM5YzcxOTE4M2U2MjIyZTRjOWVhNjg3NWFjZDUyOGE0OWJhMjE4NjNmZTA4MTQ3YzNhNDdlNDE5OTBiNTFhMDNmNzdkMjIxMzdmOGQ3NGM0M2E1YTQ1ZjRlOWUxOGEyZDE1ZGIwNTFkYzg5Mzg1ZGI5Y2Y4Mzc0YjYzYThjYzg4MTEzNzEwZTZkODE3OTA3NWI3ZGM3OWVlNzZiIjoiMDEwMDAxIjpNQkVEVExTX01EX1NIQTI1NjpNQkVEVExTX01EX1NIQTI1NjoiMGMzNzIzM2M2OTRjYzgxYzRjYTEwMjcwMDkyNjliNjRlOWUzMjI4OGUzNTIyYTJjZDc2ZGE2NjEzZDhjNWNkNyI6IjZmMjg0MTE2NmE2NDQ3MWQ0ZjBiOGVkMGRiYjdkYjMyMTYxZGExM2IiOiI3YjFkMzcyNzhlNTQ5ODk4ZDQwODRlMjIxMGM0YTk5NjFlZGZlN2I1OTYzNTUwY2NhMTkwNDI0OGM4NjgxNTEzNTM5MDE3ODIwZjBlOWJkMDc0YjlmOGEwNjdiOWZlZmZmN2YxZmEyMGJmMmQwYzc1MDE1ZmYwMjBiMjIxMGNjN2Y3OTAzNGZlZGY2OGU4ZDQ0YTAwN2FiZjRkZDgyYzI2ZThiMDAzOTM3MjNhZWExNWFiZmJjMjI5NDFjOGNmNzk0ODE3MThjMDA4ZGE3MTNmYjhmNTRjYjNmY2E4OTBiZGUxMTM3MzE0MzM0YjliMGExODUxNWJmYTQ4ZTVjY2QwIjoyMDowCiAKIFJTQVNTQS1QU1MgU2lnbmF0dXJlIFJTQS0xMDI0LCBTSEEtMzg0LCBTYWx0IExlbmd0aCAyMAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEzODQKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8zODQKIHBrY3MxX3JzYXNzYV9wc3Nfc2lnbjoxMDI0OiJlNTU2M2IxNDVkYjZmZjVhMTYyODBkM2U4MGVmZjAyZjE4MWRiZDAzMzI0ZWYyNDdmNTk2YTRkNGE3YjhkYWEzMmI5OTM0ZTNjN2Y0ZGNmNmEzMTA1NDYyZGVjNjM4Mzk2Mzg2MTg0MThiNTFkYjAyNjkzZmFiYjRlNjgzODcyNSI6ImQyYTRlYzBmYTIyMjZjZGU4MmRhNzc2NTNiMDcyY2QwOTg1MzVkM2U5MGVkNGQ3MjI0ZGNiOGNiOGI5MzE0NzY4ZGM1MTdlMjJkN2M4ZmExM2YyNTNkYWE3NDY1YTc5OTU2MDk4YWE0Y2MzYTZlMzVlOGIxZmNjNGY5N2U3NzRmIjoiYmNiNDdiMmUwZGFmY2JhODFmZjJhMmI1Y2IxMTVjYTdlNzU3MTg0YzlkNzJiY2RjZGE3MDdhMTQ2YjNiNGUyOTk4OWRkYzY2MGJkNjk0ODY1YjkzMmI3MWNhMjRhMzM1Y2Y0ZDMzOWM3MTkxODNlNjIyMmU0YzllYTY4NzVhY2Q1MjhhNDliYTIxODYzZmUwODE0N2MzYTQ3ZTQxOTkwYjUxYTAzZjc3ZDIyMTM3ZjhkNzRjNDNhNWE0NWY0ZTllMThhMmQxNWRiMDUxZGM4OTM4NWRiOWNmODM3NGI2M2E4Y2M4ODExMzcxMGU2ZDgxNzkwNzViN2RjNzllZTc2YiI6IjAxMDAwMSI6TUJFRFRMU19NRF9TSEEzODQ6TUJFRFRMU19NRF9TSEEzODQ6IjhlNzVjYjMyMzliMmI0ZWJmMTViZjc0ZTgwMTczNDAzMDVjOTlkMmZjMWE5NzM4NDI1N2JmOTFjYWUxNWQ1N2M4MGQ3Zjc4YTQ4N2MzZTE2YTVkMWNmODk0ZGE5MGZjYiI6IjZmMjg0MTE2NmE2NDQ3MWQ0ZjBiOGVkMGRiYjdkYjMyMTYxZGExM2IiOiI4ZjE2YzgwN2JlZjNlZDZmNzRlZTdmZjVjMzYwYTU0MjhjNmMyZjEwNTE3OGI1OGZmN2QwNzNlNTY2ZGFkNmU3NzE4ZDMxMjljNzY4Y2Q1YTk2NjZkZTJiNmM5NDcxNzdiNDU3MDlkYzdjZDBmNDNiMGJhNmZjNzU1NzhlMTE5NmFjYzE1Y2EzYWZlNGE3OGMxNDRjYjY4ODVjMWNjODE1ZjdmOTg5MjViYzA0YWQyZmYyMGZjMTA2OGIwNDVkOTQ1MGUyYTFkY2Y1YTE2MWNlYWJiYTJiMGI2NmM3MzU0ZmRiODBmYTFkNzI5ZTVmOTc2Mzg3ZjI0YTY5N2E3ZTU2IjoyMDowCiAKIFJTQVNTQS1QU1MgU2lnbmF0dXJlIFJTQS0xMDI0LCBTSEEtNTEyLCBTYWx0IExlbmd0aCAyMApAQCAtMTE1MSwxNSArMTE1MSwxNSBAQAogcGtjczFfcnNhc3NhX3Bzc19zaWduOjEwMjQ6ImU1NTYzYjE0NWRiNmZmNWExNjI4MGQzZTgwZWZmMDJmMTgxZGJkMDMzMjRlZjI0N2Y1OTZhNGQ0YTdiOGRhYTMyYjk5MzRlM2M3ZjRkY2Y2YTMxMDU0NjJkZWM2MzgzOTYzODYxODQxOGI1MWRiMDI2OTNmYWJiNGU2ODM4NzI1IjoiZDJhNGVjMGZhMjIyNmNkZTgyZGE3NzY1M2IwNzJjZDA5ODUzNWQzZTkwZWQ0ZDcyMjRkY2I4Y2I4YjkzMTQ3NjhkYzUxN2UyMmQ3YzhmYTEzZjI1M2RhYTc0NjVhNzk5NTYwOThhYTRjYzNhNmUzNWU4YjFmY2M0Zjk3ZTc3NGYiOiJiY2I0N2IyZTBkYWZjYmE4MWZmMmEyYjVjYjExNWNhN2U3NTcxODRjOWQ3MmJjZGNkYTcwN2ExNDZiM2I0ZTI5OTg5ZGRjNjYwYmQ2OTQ4NjViOTMyYjcxY2EyNGEzMzVjZjRkMzM5YzcxOTE4M2U2MjIyZTRjOWVhNjg3NWFjZDUyOGE0OWJhMjE4NjNmZTA4MTQ3YzNhNDdlNDE5OTBiNTFhMDNmNzdkMjIxMzdmOGQ3NGM0M2E1YTQ1ZjRlOWUxOGEyZDE1ZGIwNTFkYzg5Mzg1ZGI5Y2Y4Mzc0YjYzYThjYzg4MTEzNzEwZTZkODE3OTA3NWI3ZGM3OWVlNzZiIjoiMDEwMDAxIjpNQkVEVExTX01EX1NIQTUxMjpNQkVEVExTX01EX1NIQTUxMjoiYzMzNjZjNTUyNDUxMjc0YTQwNDJlNDM1NzQ0Nzc4NmNjZTNhMjVhOGRiZDhjZjNjMmY4YThkZGMwMjE2MWJkYTMzMmJiNDUwNjJmN2M2MWI3YWE3YTg4ZWQzYjVkNTFiNjEwM2FiY2YxNzY5NjQyYjExYWI5NWY5MmZhMzlhZGYiOiI2ZjI4NDExNjZhNjQ0NzFkNGYwYjhlZDBkYmI3ZGIzMjE2MWRhMTNiIjoiYTgzM2JhMzE2MzRmODc3M2U0ZmU2ZWEwYzY5ZTFhMjM3NjZhOTM5ZDM0YjMyZmM3OGI3NzRiMjJlNDZhNjQ2YzI1ZTZlMTA2MmQyMzRlZDQ4YjFhYmEwZjgzMDUyOWZmNmFmYzI5NmNjOGRjMjA3YmJjMTUzOTE2MjNiZWFjNWY2YzNkYjU1N2NhNDlkMGU0MmM5NjJkZTk1YjVmZjU0OGNmZjk3MGY1YzczZjQzOWNmZTgyZDM5MDdiZTYwMjQwZjU2YjZhNDI1OWNjOTZkZmQ4ZmUwMmEwYmZhMjZlMDIyM2Y2ODIxNDQyOGZmZjBhZTQwMTYyMTk4Y2M1Y2JkMSI6MjA6MAogCiBSU0FTU0EtUFNTIFNpZ25hdHVyZSBSU0EtMTUzNiwgU0hBLTIyNCwgU2FsdCBMZW5ndGggMjAKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjI0CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjI0CiBwa2NzMV9yc2Fzc2FfcHNzX3NpZ246MTUzNjoiZDNiZGU4NWY4NzE4Mzg4ZGUzOGM3ZTE1N2M3MjAwMzY2MjI0ZmQ0NDZhYjU5MGZiMzFkZmQ4MTM1ZDNjNTYxNDI2Yjk5NjZjMTY0OTEyYmYwY2Q2NTM3ZTg3N2Q1OWJiMjFmYTNkM2M1YTYxMTVjZTk3MTAxOGRiNmJlMTAzM2YxNGE0YmI1ODQ5Y2NiMDcwZWI4MzgzODM5NGU5ZDA4NTFmM2EzM2M0M2Y0ODkzNWEwMWMzMWM2ZmVhNzJhNmRkIjoiYzM0Mjg0MmVkMTM5NzlmZTk0OGRlM2QzMWMyMWU1ZDQ0MDdkYjVmMDg1MjRhMWQwNDIyMTUwMDkwMWU0NGI5NTI3NGNiYjg0ZDgwNTc1ZWYxNTE0MzMyZTI3YjAyNDRhNDE1NGE4YjU2MTEyNTQzOTc3MmEzZDJmYzlkYjczZjE5Njc5Y2I5MmY5YzViNTM4ODE1NGIwMTgwYWEzMzlmZjBiYmVjODE5ZGE4YTg0ZDJiYjYxNzU0MmNmMDk3YThkIjoiYTE4MGFjNGI1MTg2ZGYwYjdiMWNiN2E5NTc0NmE1YWY0MTFlZmExNmQxYWVkMTI0NjhkZTE1Yjc0N2EwZmYzMmMyMTVkZDA4YTk5Mjg3Yjc3ODhlOTE1NDJkOTA1OTk0MGU0YjYxMGY3NDFjYjljN2E4NmI0YWEwYjQ1YTdiMzg0NTBiNmVhMjUwNzBmOThlNzBiYjc4MzNhZWNkMTgzNGE4ZTU5MWJlYTIwN2VjNTVkNDAzYzc2MjEzYmQ5ZjcwMGNlMjVhZGIyNjVhZDM4M2M0NDNlZDdhODdhNTdkN2U1YzY0OTVjMzJmNTFhZTBjYzg3ODQzNTJjZmM1NmYyMDI5Y2RkMzIzMzkzYTE1MzE5M2Y0MWYwNDA4Y2RjZDViMzQ0ZDIwOTQyNDEzYmQ5N2MzYjBjMDRhYjU4NGY2ODViMGU3OTZjZTliNWEwY2Y2NDQ0MWYwMGVlNzU4NmM2MmZlODQ0MmQ1MjJmN2M2ZTNmMzE0Zjg0ZDU1NzAzOWI5IjoiMDEwMDAxIjpNQkVEVExTX01EX1NIQTIyNDpNQkVEVExTX01EX1NIQTIyNDoiNWM2OWYyY2M1OWU2M2I2ZjllZTBjOTU0ZDJiN2RiN2U0ZDYzYjdlMjM0N2Y4NzkxZjEzNTNkMzEiOiI2ZjI4NDExNjZhNjQ0NzFkNGYwYjhlZDBkYmI3ZGIzMjE2MWRhMTNiIjoiMWQ4NWNlYzBkYTFhNzQ4MjVhYjc5NjQ4MGM2ZTEyMzU4MDgzODcxMDZhYzE0MTFkNjhmMzEzMjQ2YzY1MDQwMTExZDc0YTlhNDVlYmFlMTBhYzc2ODZmZGRmNGEzNDBjNGY5ZDI0Njg1ZDcwOGJiZjdiMGFiNDU2Mzc5NGY1ZjkwZTA0MDViNWQ3ZDU2Yzk5OGU5OTZiOGJkZTJiMDIyYWU0NWZlY2YyOWEyMTgzNmZjZjM2MjA0MmU3N2UxM2NiZjY3YjhhNGRhM2YxZTM3OGRmY2FiMjE0M2FhOGI5YTE0NWMyZWU3ZDU5M2UzMTYyNmJhYTQ3ZmU2MjNhM2MzZjg1OWJiNjNlOTMzNmUxMWM1ZmYzOThhNjU5NzYyMzMxOGUwOTgyMzBiMDllNTUzYmEwYTQyNTc2OTJhMGJjMGExY2UxYzE3YjJkNTQxYjUyZDEzNDYyNzIyOWMxNDFkMzUxYzE2ZjFiZGZlMzMzODRhOWUxNjNlY2FhMTNlMmZhIjoyMDowCiAKIFJTQVNTQS1QU1MgU2lnbmF0dXJlIFJTQS0xNTM2LCBTSEEtMjU2LCBTYWx0IExlbmd0aCAyMAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHBrY3MxX3JzYXNzYV9wc3Nfc2lnbjoxNTM2OiJkM2JkZTg1Zjg3MTgzODhkZTM4YzdlMTU3YzcyMDAzNjYyMjRmZDQ0NmFiNTkwZmIzMWRmZDgxMzVkM2M1NjE0MjZiOTk2NmMxNjQ5MTJiZjBjZDY1MzdlODc3ZDU5YmIyMWZhM2QzYzVhNjExNWNlOTcxMDE4ZGI2YmUxMDMzZjE0YTRiYjU4NDljY2IwNzBlYjgzODM4Mzk0ZTlkMDg1MWYzYTMzYzQzZjQ4OTM1YTAxYzMxYzZmZWE3MmE2ZGQiOiJjMzQyODQyZWQxMzk3OWZlOTQ4ZGUzZDMxYzIxZTVkNDQwN2RiNWYwODUyNGExZDA0MjIxNTAwOTAxZTQ0Yjk1Mjc0Y2JiODRkODA1NzVlZjE1MTQzMzJlMjdiMDI0NGE0MTU0YThiNTYxMTI1NDM5NzcyYTNkMmZjOWRiNzNmMTk2NzljYjkyZjljNWI1Mzg4MTU0YjAxODBhYTMzOWZmMGJiZWM4MTlkYThhODRkMmJiNjE3NTQyY2YwOTdhOGQiOiJhMTgwYWM0YjUxODZkZjBiN2IxY2I3YTk1NzQ2YTVhZjQxMWVmYTE2ZDFhZWQxMjQ2OGRlMTViNzQ3YTBmZjMyYzIxNWRkMDhhOTkyODdiNzc4OGU5MTU0MmQ5MDU5OTQwZTRiNjEwZjc0MWNiOWM3YTg2YjRhYTBiNDVhN2IzODQ1MGI2ZWEyNTA3MGY5OGU3MGJiNzgzM2FlY2QxODM0YThlNTkxYmVhMjA3ZWM1NWQ0MDNjNzYyMTNiZDlmNzAwY2UyNWFkYjI2NWFkMzgzYzQ0M2VkN2E4N2E1N2Q3ZTVjNjQ5NWMzMmY1MWFlMGNjODc4NDM1MmNmYzU2ZjIwMjljZGQzMjMzOTNhMTUzMTkzZjQxZjA0MDhjZGNkNWIzNDRkMjA5NDI0MTNiZDk3YzNiMGMwNGFiNTg0ZjY4NWIwZTc5NmNlOWI1YTBjZjY0NDQxZjAwZWU3NTg2YzYyZmU4NDQyZDUyMmY3YzZlM2YzMTRmODRkNTU3MDM5YjkiOiIwMTAwMDEiOk1CRURUTFNfTURfU0hBMjU2Ok1CRURUTFNfTURfU0hBMjU2OiJmMTljNDM5NjY5Mzg0MDJhNmU1MTQ1MDg4ZTY1ZWE4ODhmMzc5MjM3Mzk4M2QzNTlhN2U4NjQ4NjRiYzI1ZTNjIjoiNmYyODQxMTY2YTY0NDcxZDRmMGI4ZWQwZGJiN2RiMzIxNjFkYTEzYiI6IjhlYjJiYTIzNjdiOGYwYjM2YjU2NmM5MzhiNGQ5OTQ4YjRhMGE4N2RkMWM4MzAwYTE2MGVjMDI0YWQwZmEzNzE3NGQxYmJhMmFlNmVlOGM3ZmRiYjRkMTcyYWM5NjE1ZjE0Mjg1OTkwMzBhMzM1MTVlMjkyNWEyNjhiODdjODY3MjQyY2NkZGNjZTZjOWMwMzA0NWVjY2JmZWU1ZWViNmUwY2UyZDg5YTljNTFmNDBjMTczMjkyN2E2YzdkMjgzNjI3ZGQ4N2VjYTI3MjcwYjExN2U2NThhM2NjOWQyY2E3ZGE0NmE3NjA5NzIxM2E3ZjNlMmE1OGQ3YzlkMzA2ZTc5NmVlZTk0ODA5MDQyYmM2NzY4ZDZjY2E0ZTAwM2E0MDUyOWJmZmEyNjc5MTRhMjMyZjMxNWRkZWRkMjc2OGM2MDg3N2JkY2IwNWM4ZjIwMjYxNzk3MTMwODRhMGRhZjhiNDk0OTU5YzM0N2ZiNjVhNDQxNDAzNGQyMWM3YTc1MCI6MjA6MAogCiBSU0FTU0EtUFNTIFNpZ25hdHVyZSBSU0EtMTUzNiwgU0hBLTM4NCwgU2FsdCBMZW5ndGggMjAKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMzg0CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMzg0CiBwa2NzMV9yc2Fzc2FfcHNzX3NpZ246MTUzNjoiZDNiZGU4NWY4NzE4Mzg4ZGUzOGM3ZTE1N2M3MjAwMzY2MjI0ZmQ0NDZhYjU5MGZiMzFkZmQ4MTM1ZDNjNTYxNDI2Yjk5NjZjMTY0OTEyYmYwY2Q2NTM3ZTg3N2Q1OWJiMjFmYTNkM2M1YTYxMTVjZTk3MTAxOGRiNmJlMTAzM2YxNGE0YmI1ODQ5Y2NiMDcwZWI4MzgzODM5NGU5ZDA4NTFmM2EzM2M0M2Y0ODkzNWEwMWMzMWM2ZmVhNzJhNmRkIjoiYzM0Mjg0MmVkMTM5NzlmZTk0OGRlM2QzMWMyMWU1ZDQ0MDdkYjVmMDg1MjRhMWQwNDIyMTUwMDkwMWU0NGI5NTI3NGNiYjg0ZDgwNTc1ZWYxNTE0MzMyZTI3YjAyNDRhNDE1NGE4YjU2MTEyNTQzOTc3MmEzZDJmYzlkYjczZjE5Njc5Y2I5MmY5YzViNTM4ODE1NGIwMTgwYWEzMzlmZjBiYmVjODE5ZGE4YTg0ZDJiYjYxNzU0MmNmMDk3YThkIjoiYTE4MGFjNGI1MTg2ZGYwYjdiMWNiN2E5NTc0NmE1YWY0MTFlZmExNmQxYWVkMTI0NjhkZTE1Yjc0N2EwZmYzMmMyMTVkZDA4YTk5Mjg3Yjc3ODhlOTE1NDJkOTA1OTk0MGU0YjYxMGY3NDFjYjljN2E4NmI0YWEwYjQ1YTdiMzg0NTBiNmVhMjUwNzBmOThlNzBiYjc4MzNhZWNkMTgzNGE4ZTU5MWJlYTIwN2VjNTVkNDAzYzc2MjEzYmQ5ZjcwMGNlMjVhZGIyNjVhZDM4M2M0NDNlZDdhODdhNTdkN2U1YzY0OTVjMzJmNTFhZTBjYzg3ODQzNTJjZmM1NmYyMDI5Y2RkMzIzMzkzYTE1MzE5M2Y0MWYwNDA4Y2RjZDViMzQ0ZDIwOTQyNDEzYmQ5N2MzYjBjMDRhYjU4NGY2ODViMGU3OTZjZTliNWEwY2Y2NDQ0MWYwMGVlNzU4NmM2MmZlODQ0MmQ1MjJmN2M2ZTNmMzE0Zjg0ZDU1NzAzOWI5IjoiMDEwMDAxIjpNQkVEVExTX01EX1NIQTM4NDpNQkVEVExTX01EX1NIQTM4NDoiMTQxMmI5ZjA0NmFlYmEwYTdjNjNlNzQ0YTRmMzBhMzY1NmQ0MTMwMDcyNmU2NmQ4ODI1YTEwNDNmMDgyODViN2U2ZTI1MGVmY2M5YTA0MDVjNmRhMDE5ZDA0MmE3ZTE0IjoiNmYyODQxMTY2YTY0NDcxZDRmMGI4ZWQwZGJiN2RiMzIxNjFkYTEzYiI6IjlmYTRlNjRiYWIzMzYwMTdlMTkwMTVlZTdlYTFlMjY3YmY0MjY2MzNmYjJhYzVmNGQ2NWJjNzU0YWJhMTdmN2E5ZjBmMWVlMmJmMGEzYjlmMmRkMzU0ZWQ4ZWJhNTk2ZjVjYTNlMjY0OTVlZjI2ODY1OGJkMjQ3NDc0ZDM1MjRiMTFhMjk1M2Y1OTFmOGFiYjE0ZWY0YmNkNDRkYWRjMzZhNDFmOWRhZWYxYmY4OGI3ZTQ0MTE2MDI3OGM4YTM5OTQ1NTI0NTU3Yjg0Y2U1Y2RjYjc5ZWVjYmFkNjM2NThlODQ3MGQ4ZGM5NGI0NGFhZDFmMDRiMDU0MDBlYTA0ZTVmOTU5ZGQxOGY2ZjcxODMxMWY2ZGZlYzk4YTdlMWFhYTdiYTExNzcxZjYxNDQ4YjEyZDc5MDFhMjUzMGU4MzBkY2NjNTMxZmQwZGJlMjIyMjE1YjNmN2I5ZGFmYTVmYzIwZDVhZjE1YWIzMTJiNjIxZDcxYjIxMDYxNTBhODAxYiI6MjA6MAogCiBSU0FTU0EtUFNTIFNpZ25hdHVyZSBSU0EtMTUzNiwgU0hBLTUxMiwgU2FsdCBMZW5ndGggMjAKQEAgLTExNjcsMTUgKzExNjcsMTUgQEAKIHBrY3MxX3JzYXNzYV9wc3Nfc2lnbjoxNTM2OiJkM2JkZTg1Zjg3MTgzODhkZTM4YzdlMTU3YzcyMDAzNjYyMjRmZDQ0NmFiNTkwZmIzMWRmZDgxMzVkM2M1NjE0MjZiOTk2NmMxNjQ5MTJiZjBjZDY1MzdlODc3ZDU5YmIyMWZhM2QzYzVhNjExNWNlOTcxMDE4ZGI2YmUxMDMzZjE0YTRiYjU4NDljY2IwNzBlYjgzODM4Mzk0ZTlkMDg1MWYzYTMzYzQzZjQ4OTM1YTAxYzMxYzZmZWE3MmE2ZGQiOiJjMzQyODQyZWQxMzk3OWZlOTQ4ZGUzZDMxYzIxZTVkNDQwN2RiNWYwODUyNGExZDA0MjIxNTAwOTAxZTQ0Yjk1Mjc0Y2JiODRkODA1NzVlZjE1MTQzMzJlMjdiMDI0NGE0MTU0YThiNTYxMTI1NDM5NzcyYTNkMmZjOWRiNzNmMTk2NzljYjkyZjljNWI1Mzg4MTU0YjAxODBhYTMzOWZmMGJiZWM4MTlkYThhODRkMmJiNjE3NTQyY2YwOTdhOGQiOiJhMTgwYWM0YjUxODZkZjBiN2IxY2I3YTk1NzQ2YTVhZjQxMWVmYTE2ZDFhZWQxMjQ2OGRlMTViNzQ3YTBmZjMyYzIxNWRkMDhhOTkyODdiNzc4OGU5MTU0MmQ5MDU5OTQwZTRiNjEwZjc0MWNiOWM3YTg2YjRhYTBiNDVhN2IzODQ1MGI2ZWEyNTA3MGY5OGU3MGJiNzgzM2FlY2QxODM0YThlNTkxYmVhMjA3ZWM1NWQ0MDNjNzYyMTNiZDlmNzAwY2UyNWFkYjI2NWFkMzgzYzQ0M2VkN2E4N2E1N2Q3ZTVjNjQ5NWMzMmY1MWFlMGNjODc4NDM1MmNmYzU2ZjIwMjljZGQzMjMzOTNhMTUzMTkzZjQxZjA0MDhjZGNkNWIzNDRkMjA5NDI0MTNiZDk3YzNiMGMwNGFiNTg0ZjY4NWIwZTc5NmNlOWI1YTBjZjY0NDQxZjAwZWU3NTg2YzYyZmU4NDQyZDUyMmY3YzZlM2YzMTRmODRkNTU3MDM5YjkiOiIwMTAwMDEiOk1CRURUTFNfTURfU0hBNTEyOk1CRURUTFNfTURfU0hBNTEyOiI5YTg5ZTM4Y2UwZmU4YjAwOGY1OGMzYzA3NjIxZmNmMThlNzZjYTVkMzA0ZjE3ZmJiNTJkODJkODM2ODQyNWVjMzA1ZTIwYjcwYjgzOWZjYWQzNTExYTE5NGU5OWU5MDdlM2YwZTJhODAxYzBiOWNkNDQ5N2M0YTBiZGYxZWE0OSI6IjZmMjg0MTE2NmE2NDQ3MWQ0ZjBiOGVkMGRiYjdkYjMyMTYxZGExM2IiOiIzMmU2ODgwNjNlYTI0Y2NiMmNhOTk4ZmI3MDkxODc3YzEwM2NlNjU3NmIxMWExNzViYzg5NmFmNDU0MDQyYTU3MzFiOTFjMWM1OGI0ZDhlMzhmMDYxOWY2ZGRjOGNlZDZiNTM5NzU0NWY5NTcxYTRjOTA3Njc1OTNkMTFjMDBiNzVlYjU4YTBhZTQ5MzIyNjVmMGFiMTc5MGJlMmM4M2RmZjY1MzU3YTMwMWIzYjNlMmVlMmUzNjgzYWZlMGI0YjM1ZWU4YjZlNThhOTZiNDAwOWM5OGQ4ZmFiYTc1Zjg2ZmZiNTQ4ZjA1MDE4ODRmMzUyOGQ4ZWFiYWQzNTNlMjhkMDEzMmM0YzAxZmEzYWY1ZGVjOTIyZjAyZWZmMjIwMjA0ODE2MTVlNGNkMzViOWVjY2ZkNzExY2IzYjBkNjVhZjk1YzA2MzdkNzlhYWEyNDMzZjI4NTRkZTM1NjBhZGIyODQyNDhiYWM4Y2JkNDcxNzMxNzAxMWE1MTU5YzkzZWQiOjIwOjAKIAogUlNBU1NBLVBTUyBTaWduYXR1cmUgUlNBLTIwNDgsIFNIQS0yMjQsIFNhbHQgTGVuZ3RoIDIwCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTIyNAorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzIyNAogcGtjczFfcnNhc3NhX3Bzc19zaWduOjIwNDg6ImY3YjY2NDA5M2NhYmY4MzM0YjFjMGZmODI0NTY0ZGI1YzEzZjk0MWEyNzk3MzM4OTNhN2U1YWJlZDUzNmQyYjUxYTJiZWFjODA3MzBiNTE5NGEwYzcyMmY1NzM1NGNlNGI3ZGI0NDdlYTMyODZiMWNkMWM3NTQ1NDhlYTNjOTFhMGRmMWJkZTNmZjcwODIwYjYzZWYzYzc0YTAxMTk2NzFkMTRkYjNlMjYwMzg2OGEwZDYwN2E4MWJmMTRmM2Y0MWY4MTBjM2EyNGJmNTJhOTRmOWI2OTQwNzhhNTU2MTk0ZGQwY2IzNmM1NmE5MTg0NmQzNTY5MDk2YzYzMWI2MWYiOiJlMGExMTExYWExMTRkNWIxNzAyZTM0ZDI5NTY1ZDY1MzIwZTA1YzIxZDc5NGYzODU3MmFkMjhhNjBiMmZmZTUwZDBkZDNkZjNmYjVhMGVlZjA0OGVjNTBlMTQ0YmZlNTJiZTMwZWJmMmVhY2VlYzlmMTEwYTYwMGJiMGMyYmNhY2Y2YjRkYWJlYzA5YjkzODdjODlhOGZkZTE5ZGU1Y2VlYzc4MGJlMzhkY2E4NDZkNzk1ZjgyNjA4Y2YyODQ0ZTliY2VkOGQ4MWRhMmQ5MjU4YzNlZjQxMjE1NGY5ZTU5MGExNThlYTBhZDkxODBhYzZhNzk4NjE0YmEzNDEwOTM3IjoiZDk1YjcxYzlkZmVlNDUzYmExYjFhN2RlMmMxZjBiMGE2NzU3OWVlOTFkMWQzYWQ5N2U0ODE4MjliODZlZGFjNzUwYzQ4ZTEyYThjZGIwMjZjODJmMjczZGFmYzIyMjAwOWYwZGIzYjA4YjJkYjEwYTY5YzRiMmRkZGFhZWNlYWMxYjBjODYyNjgyZWVmMjk0ZTU3OWY1NWFhYjg3MWJjMGE3ZWVhYmM5MjNjOWU4MGRkZGMyMmVjMGEyNzAwMmFlZTZhNWJhNjYzOTdmNDEyYmJhZjVmYjRlYWY2NmExYTBmODJlYWY2ODI3MTk4Y2FmNDliMzQ3MjU4YjEyODNlOGNiYjEwZGEyODM3ZjZlY2MzNDkwYzcyOGZlOTI3ZjQ0NDU1YTZmMTk0ZjM3NzZiZjc5MTUxZDlhZDdlMmRhZjc3MGIzN2QxMjYyN2NjMGM1ZmI2MjQ4NGY0NjI1OGQ5Y2UyYzExYjI2MjU2ZDA5Y2I0MTJmOGQ4ZjhmMWZlOTFiYjk0YWMyN2RlNmQyNmE4M2E4NDM5ZTUxYjM1ZGJlZTQ2YjNiOGZmOTkxZDY2N2JiNTNlZWVlODVmZjE2NTJjODk4MWYxNDFkNDdjODIwNTc5MWNlZjViMzJkNzE4ZGRjMDgyZWQwZGQ1NDI4MjY0MTZiMjI3MTA2NGVmNDM3YTkiOiIwMTAwMDEiOk1CRURUTFNfTURfU0hBMjI0Ok1CRURUTFNfTURfU0hBMjI0OiJiNzc3YTgzZGQyNWE0ZmEzNmE1ZWE2NjNhYTE2NDAzYzY3MzY4ZTQ3MTFlOGMxMjFiMDFmODNhYyI6IjZmMjg0MTE2NmE2NDQ3MWQ0ZjBiOGVkMGRiYjdkYjMyMTYxZGExM2IiOiJjZDFmZTBhY2I4OTk2OWFlMTM5YzE3OGJmZWYxY2M5ODI5OTM1MjFiM2EwMjBlYzg0N2M4OWMwY2M2Yzg2OWQ5NzBmNDNmMDE4ZDQ5NWI5ZTk5MTQ1N2U3NTAxYTM0NGMzM2MzNzZmZDJlZmNmMDVhZDZlYjJiZDBiM2MwZTdjYzNjODhhNDEyNDM5OGNhMTY1ODU0OTBhMDgxN2EzNjE0OWNjODJjZGMwMWIyMGU5MDI2MjYxMjE1ZGQwNmY5ZGI0ZTEzNjEzYzZhNTY5YzIxODdhMGUwMGJjNjNjMjgxMTQ5NDMzYWM3ZjA2MWJkMjE4ZTc5ZjhlY2E5ZGQ5YzkzZWJjM2NjMDEzYmYyN2FhMGJmMjg2ZTEyNDU5M2U3NmQzYzcwMTJmOTdhZTFkMGM0YmY1ODIzY2YxN2ZlNzZkNTA1YTU0Y2VmMTc0YWRkNThhZTYxNmY0N2RlODI1MDQ5ZTk5MTZiZjJhYjdkZTRkNDQzNzQ1NzYzYjBjMzE0Y2ZhZTNhNmU1N2FkNDc1Y2M1ZmFlNDdjZGRjYWQ3YjUyNmMyMTU0YTE1ZjllZThlYWIwMmY0YzM2ZjdhNDFkN2ExOWIyM2M1OTk2YjYyNzI3MGNlYjJjMGRiZWQxYTZiNmRkMmZmOTQ4NjhlMDczY2I3YjFhMWZhMzQyOWU0ODdhZSI6MjA6MAogCiBSU0FTU0EtUFNTIFNpZ25hdHVyZSBSU0EtMjA0OCwgU0hBLTI1NiwgU2FsdCBMZW5ndGggMjAKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBwa2NzMV9yc2Fzc2FfcHNzX3NpZ246MjA0ODoiZjdiNjY0MDkzY2FiZjgzMzRiMWMwZmY4MjQ1NjRkYjVjMTNmOTQxYTI3OTczMzg5M2E3ZTVhYmVkNTM2ZDJiNTFhMmJlYWM4MDczMGI1MTk0YTBjNzIyZjU3MzU0Y2U0YjdkYjQ0N2VhMzI4NmIxY2QxYzc1NDU0OGVhM2M5MWEwZGYxYmRlM2ZmNzA4MjBiNjNlZjNjNzRhMDExOTY3MWQxNGRiM2UyNjAzODY4YTBkNjA3YTgxYmYxNGYzZjQxZjgxMGMzYTI0YmY1MmE5NGY5YjY5NDA3OGE1NTYxOTRkZDBjYjM2YzU2YTkxODQ2ZDM1NjkwOTZjNjMxYjYxZiI6ImUwYTExMTFhYTExNGQ1YjE3MDJlMzRkMjk1NjVkNjUzMjBlMDVjMjFkNzk0ZjM4NTcyYWQyOGE2MGIyZmZlNTBkMGRkM2RmM2ZiNWEwZWVmMDQ4ZWM1MGUxNDRiZmU1MmJlMzBlYmYyZWFjZWVjOWYxMTBhNjAwYmIwYzJiY2FjZjZiNGRhYmVjMDliOTM4N2M4OWE4ZmRlMTlkZTVjZWVjNzgwYmUzOGRjYTg0NmQ3OTVmODI2MDhjZjI4NDRlOWJjZWQ4ZDgxZGEyZDkyNThjM2VmNDEyMTU0ZjllNTkwYTE1OGVhMGFkOTE4MGFjNmE3OTg2MTRiYTM0MTA5MzciOiJkOTViNzFjOWRmZWU0NTNiYTFiMWE3ZGUyYzFmMGIwYTY3NTc5ZWU5MWQxZDNhZDk3ZTQ4MTgyOWI4NmVkYWM3NTBjNDhlMTJhOGNkYjAyNmM4MmYyNzNkYWZjMjIyMDA5ZjBkYjNiMDhiMmRiMTBhNjljNGIyZGRkYWFlY2VhYzFiMGM4NjI2ODJlZWYyOTRlNTc5ZjU1YWFiODcxYmMwYTdlZWFiYzkyM2M5ZTgwZGRkYzIyZWMwYTI3MDAyYWVlNmE1YmE2NjM5N2Y0MTJiYmFmNWZiNGVhZjY2YTFhMGY4MmVhZjY4MjcxOThjYWY0OWIzNDcyNThiMTI4M2U4Y2JiMTBkYTI4MzdmNmVjYzM0OTBjNzI4ZmU5MjdmNDQ0NTVhNmYxOTRmMzc3NmJmNzkxNTFkOWFkN2UyZGFmNzcwYjM3ZDEyNjI3Y2MwYzVmYjYyNDg0ZjQ2MjU4ZDljZTJjMTFiMjYyNTZkMDljYjQxMmY4ZDhmOGYxZmU5MWJiOTRhYzI3ZGU2ZDI2YTgzYTg0MzllNTFiMzVkYmVlNDZiM2I4ZmY5OTFkNjY3YmI1M2VlZWU4NWZmMTY1MmM4OTgxZjE0MWQ0N2M4MjA1NzkxY2VmNWIzMmQ3MThkZGMwODJlZDBkZDU0MjgyNjQxNmIyMjcxMDY0ZWY0MzdhOSI6IjAxMDAwMSI6TUJFRFRMU19NRF9TSEEyNTY6TUJFRFRMU19NRF9TSEEyNTY6ImI0MTZlMDg0MzA0MGIzNTI3N2JlNzczNGJjMjNhYzllOWViNDdhN2Y1N2Y1NWU5NGQ4MjYyODVjOWMwMDEwMGEiOiI2ZjI4NDExNjZhNjQ0NzFkNGYwYjhlZDBkYmI3ZGIzMjE2MWRhMTNiIjoiNjM3NTc1NWVmZjhkNDhhZmIzMjYzYjNiOTY5ODhhMmFmZDE4MWJhMDYxNzkzZWEwMDk3ODNiYjE1OTlkMDM5NDRkOTg3NjIwYTI2NjhhYzk3MTRkNmYyYTIxZjdlNTIwMGQ2MzkyM2Y0MmNiMzJlNjMzMDFjOGRlNThjNzBhMjAzOTEwNjQwZGE5NjdkMDNmNGY2MjkyZjZjYjE5OTc1OTgyMjc5MGMwYzViY2ZiMWQ0ZmFhNTk0NjVjM2RiMmVhMWZmZmQ1ZTU0MzMzNTYzMmI3NDc0NWJmMWUxODQ3M2MwYThiNGE4OWRlZjZiMjdlZGYwZDdkNzM1ZWUxM2Y4ODcwNDFjOWQ4YTkxZTYyMTg2YTlhMWUwYjFhZmI0OGU1NzdmNjg4N2NhNjFiN2MxYmIyNmI0YThlMmNjNDY0YTlhZjAzNDQ0YjNkYTViZWQwOGI3M2YxMjYyYmQzZDYxZjRjNzhmNDlmYWM2YTNiZmM5ZTg1NDhiNGJiZTY0Y2NlNmE2MDkwZmM0ODBlZmQxZjM2YzE4YzEwYmMwOWJlOWQ5NTdhNzlmNzA3YTEwNTc3YTFiZjZlOWUyZDQ4NDk2OTNmYTU4ZDg4NzdjOGYxZTU1MTgxOTU1ZDZjMmI5NGIxZDZkOTQwMWI1ZmI4MGNjMzJiMzU4OTM0ZmVjMmFlZGIiOjIwOjAKIAogUlNBU1NBLVBTUyBTaWduYXR1cmUgUlNBLTIwNDgsIFNIQS0zODQsIFNhbHQgTGVuZ3RoIDIwCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTM4NAorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzM4NAogcGtjczFfcnNhc3NhX3Bzc19zaWduOjIwNDg6ImY3YjY2NDA5M2NhYmY4MzM0YjFjMGZmODI0NTY0ZGI1YzEzZjk0MWEyNzk3MzM4OTNhN2U1YWJlZDUzNmQyYjUxYTJiZWFjODA3MzBiNTE5NGEwYzcyMmY1NzM1NGNlNGI3ZGI0NDdlYTMyODZiMWNkMWM3NTQ1NDhlYTNjOTFhMGRmMWJkZTNmZjcwODIwYjYzZWYzYzc0YTAxMTk2NzFkMTRkYjNlMjYwMzg2OGEwZDYwN2E4MWJmMTRmM2Y0MWY4MTBjM2EyNGJmNTJhOTRmOWI2OTQwNzhhNTU2MTk0ZGQwY2IzNmM1NmE5MTg0NmQzNTY5MDk2YzYzMWI2MWYiOiJlMGExMTExYWExMTRkNWIxNzAyZTM0ZDI5NTY1ZDY1MzIwZTA1YzIxZDc5NGYzODU3MmFkMjhhNjBiMmZmZTUwZDBkZDNkZjNmYjVhMGVlZjA0OGVjNTBlMTQ0YmZlNTJiZTMwZWJmMmVhY2VlYzlmMTEwYTYwMGJiMGMyYmNhY2Y2YjRkYWJlYzA5YjkzODdjODlhOGZkZTE5ZGU1Y2VlYzc4MGJlMzhkY2E4NDZkNzk1ZjgyNjA4Y2YyODQ0ZTliY2VkOGQ4MWRhMmQ5MjU4YzNlZjQxMjE1NGY5ZTU5MGExNThlYTBhZDkxODBhYzZhNzk4NjE0YmEzNDEwOTM3IjoiZDk1YjcxYzlkZmVlNDUzYmExYjFhN2RlMmMxZjBiMGE2NzU3OWVlOTFkMWQzYWQ5N2U0ODE4MjliODZlZGFjNzUwYzQ4ZTEyYThjZGIwMjZjODJmMjczZGFmYzIyMjAwOWYwZGIzYjA4YjJkYjEwYTY5YzRiMmRkZGFhZWNlYWMxYjBjODYyNjgyZWVmMjk0ZTU3OWY1NWFhYjg3MWJjMGE3ZWVhYmM5MjNjOWU4MGRkZGMyMmVjMGEyNzAwMmFlZTZhNWJhNjYzOTdmNDEyYmJhZjVmYjRlYWY2NmExYTBmODJlYWY2ODI3MTk4Y2FmNDliMzQ3MjU4YjEyODNlOGNiYjEwZGEyODM3ZjZlY2MzNDkwYzcyOGZlOTI3ZjQ0NDU1YTZmMTk0ZjM3NzZiZjc5MTUxZDlhZDdlMmRhZjc3MGIzN2QxMjYyN2NjMGM1ZmI2MjQ4NGY0NjI1OGQ5Y2UyYzExYjI2MjU2ZDA5Y2I0MTJmOGQ4ZjhmMWZlOTFiYjk0YWMyN2RlNmQyNmE4M2E4NDM5ZTUxYjM1ZGJlZTQ2YjNiOGZmOTkxZDY2N2JiNTNlZWVlODVmZjE2NTJjODk4MWYxNDFkNDdjODIwNTc5MWNlZjViMzJkNzE4ZGRjMDgyZWQwZGQ1NDI4MjY0MTZiMjI3MTA2NGVmNDM3YTkiOiIwMTAwMDEiOk1CRURUTFNfTURfU0hBMzg0Ok1CRURUTFNfTURfU0hBMzg0OiI0MWYyYmYyNWMyNTQ0MDYyYzc4YjU5ODg2ZWVhNDQyYzg4NGU0YjliYjg3ZjY0M2FiY2I0ZDVjMWM2NjFhMGZiMGRkNTkyMTA3ZjYxNzM0MzhjMzRmNjdlYzlmNmM5N2EiOiI2ZjI4NDExNjZhNjQ0NzFkNGYwYjhlZDBkYmI3ZGIzMjE2MWRhMTNiIjoiYjQzZDg3ZGVlZmE3ZGYxMjdhNzE3ZjQwNjVmODMxYzU4Y2Q4NGJmNzhjOTE2YmE1MmVkMzI3NjlhYmQ1NDFkZjUyMjMzYjg1ODM1MDdjNTM5YjFkNTFlMDQzN2FiMWE0MWUxN2ZjMTU5OWI5MmFhYmRiNWIwNDBkYzc5MDI3YzYwYzljYzNlZDNkZTM2YWVlYTI4ZjIwMzYwNjM1YmU1YmY2NTRkNmMxYjdmZTZkYTc3ZDBjNDViOWVhMjgwMmFkMjJlYmExODJjYmVkOTVkMzNkYTdmNzhhYzg0NGY0ODkxY2ViYzAzOTZjYWEyZjhkYWFmNTUyNTRmZGFmZTk4YjVmZTZjNGRkMzk2N2QyM2VhOTk0OTcwNjA4MjBlMTA4ZTgxOGNkMGFhOTRlNjU3NzBiZGU4OTJjNjIyMzNiOTZkODdmZTU0NTE2MmQ2YmEwNzdmMTEwMjc0YmRkYWNiMmE3Y2JmMTdkNDM3YmZlMDA0YjM0YzNlYTI0ZmI0NmU1ZWQ5Y2NlNGRlOTZiMDY5NGVmZDczODMyZWM3NmUxOWU1YTI1YzQ5YzU4NDMzOTNjZTZiOTE5ZWEzNWU0ZDI2NGUwYTA4NTVmNTE4YTYzYzAwOGMxODM3OThjYTYxMmNkOGY3NTY4OGEwOTIxMDQxM2UwYTIzY2FmY2YyZDQxNTgiOjIwOjAKIAogUlNBU1NBLVBTUyBTaWduYXR1cmUgUlNBLTIwNDgsIFNIQS01MTIsIFNhbHQgTGVuZ3RoIDIwCkBAIC0xMTgzLDE1ICsxMTgzLDE1IEBACiBwa2NzMV9yc2Fzc2FfcHNzX3NpZ246MjA0ODoiZjdiNjY0MDkzY2FiZjgzMzRiMWMwZmY4MjQ1NjRkYjVjMTNmOTQxYTI3OTczMzg5M2E3ZTVhYmVkNTM2ZDJiNTFhMmJlYWM4MDczMGI1MTk0YTBjNzIyZjU3MzU0Y2U0YjdkYjQ0N2VhMzI4NmIxY2QxYzc1NDU0OGVhM2M5MWEwZGYxYmRlM2ZmNzA4MjBiNjNlZjNjNzRhMDExOTY3MWQxNGRiM2UyNjAzODY4YTBkNjA3YTgxYmYxNGYzZjQxZjgxMGMzYTI0YmY1MmE5NGY5YjY5NDA3OGE1NTYxOTRkZDBjYjM2YzU2YTkxODQ2ZDM1NjkwOTZjNjMxYjYxZiI6ImUwYTExMTFhYTExNGQ1YjE3MDJlMzRkMjk1NjVkNjUzMjBlMDVjMjFkNzk0ZjM4NTcyYWQyOGE2MGIyZmZlNTBkMGRkM2RmM2ZiNWEwZWVmMDQ4ZWM1MGUxNDRiZmU1MmJlMzBlYmYyZWFjZWVjOWYxMTBhNjAwYmIwYzJiY2FjZjZiNGRhYmVjMDliOTM4N2M4OWE4ZmRlMTlkZTVjZWVjNzgwYmUzOGRjYTg0NmQ3OTVmODI2MDhjZjI4NDRlOWJjZWQ4ZDgxZGEyZDkyNThjM2VmNDEyMTU0ZjllNTkwYTE1OGVhMGFkOTE4MGFjNmE3OTg2MTRiYTM0MTA5MzciOiJkOTViNzFjOWRmZWU0NTNiYTFiMWE3ZGUyYzFmMGIwYTY3NTc5ZWU5MWQxZDNhZDk3ZTQ4MTgyOWI4NmVkYWM3NTBjNDhlMTJhOGNkYjAyNmM4MmYyNzNkYWZjMjIyMDA5ZjBkYjNiMDhiMmRiMTBhNjljNGIyZGRkYWFlY2VhYzFiMGM4NjI2ODJlZWYyOTRlNTc5ZjU1YWFiODcxYmMwYTdlZWFiYzkyM2M5ZTgwZGRkYzIyZWMwYTI3MDAyYWVlNmE1YmE2NjM5N2Y0MTJiYmFmNWZiNGVhZjY2YTFhMGY4MmVhZjY4MjcxOThjYWY0OWIzNDcyNThiMTI4M2U4Y2JiMTBkYTI4MzdmNmVjYzM0OTBjNzI4ZmU5MjdmNDQ0NTVhNmYxOTRmMzc3NmJmNzkxNTFkOWFkN2UyZGFmNzcwYjM3ZDEyNjI3Y2MwYzVmYjYyNDg0ZjQ2MjU4ZDljZTJjMTFiMjYyNTZkMDljYjQxMmY4ZDhmOGYxZmU5MWJiOTRhYzI3ZGU2ZDI2YTgzYTg0MzllNTFiMzVkYmVlNDZiM2I4ZmY5OTFkNjY3YmI1M2VlZWU4NWZmMTY1MmM4OTgxZjE0MWQ0N2M4MjA1NzkxY2VmNWIzMmQ3MThkZGMwODJlZDBkZDU0MjgyNjQxNmIyMjcxMDY0ZWY0MzdhOSI6IjAxMDAwMSI6TUJFRFRMU19NRF9TSEE1MTI6TUJFRFRMU19NRF9TSEE1MTI6Ijc2NDE3MzlkMmY0ZmMwZWJhMDdlMjEyMjE4YWY0ZDc3ZTc4YWUzYTIyNWVmMjUzYTdlYzk2MjE1YTExOTdlNjgxYTkzZmQ1MzQyODhjZGExNTZmMjE2ZDIxZjAyYjJkYzYwYjQ5YzQxODc0YzI2YzBhMmJlMGFjYTEzYmFiYzUzIjoiNmYyODQxMTY2YTY0NDcxZDRmMGI4ZWQwZGJiN2RiMzIxNjFkYTEzYiI6IjJjZGIwZDVlYTVmMGFhZDFmN2FmODEwOGJmZjU2ZWVjNWMwZGNkMDUyMmM1ZGM2YWU0YzZlMGY2NjgyMWNkZjY5OGNjZmVhY2U2NWZkNmU0N2Y5NWZlYmQ4NzllNTgwZTVlZTY0ODk3MmNjMjY1ZjlhMTE3ZmM3MjBkYjRmMjU0NWE0MzJlYWUyNGEzNjdiMGFhYTcwYTAxMWFjOGZkZWM5NGE5NWMzY2Q0OGNmYTcxMDJkZThkYzI2Yzg3N2U5NzQ2ODhiMzkxOWRlNmNmMDZlMjcwMjg5OTVhYzg1ZGE4OGNiMzg1MWE1NzYxZTE3ZjIxNWU1YzU5M2UxM2U0ODEwODhjN2Q3NDdlY2IzNGQzY2U2MWE1YjU2ZWIyYTY1YmU1MzYzMzYzMjk0ZWIzNjVmODNjNGM3MDk2NDRkODU3ZTJjY2IxNGE1ODUxNzI0NDIwZmM4MTE3ODE0NGVmM2Y5ZTExMzhiNTc1MGViNzE5NmViYTMzMTlkNzk5YzM0OTRhN2UzOTkxMTVhNjJiMWNhNGYxZDVkYTA3OWI0OTVkMzVmZDY1MWExZGU3OGQ1NDAwMGIwNmJkZDMxMjJkNzQwNDAxM2YyZWQ4ZmRmOGE3ZDAxMmY5ODEyYjhlNGMyZTBiMjQxOTJkNWY4OTlkNzBhM2NjNWM3ZTA4YzgxYmU3IjoyMDowCiAKIFJTQVNTQS1QU1MgU2lnbmF0dXJlIFJTQS0zMDcyLCBTSEEtMjI0LCBTYWx0IExlbmd0aCAyMAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyMjQKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yMjQKIHBrY3MxX3JzYXNzYV9wc3Nfc2lnbjozMDcyOiJjYTdiNTBjNWY2NWYyMTE1ZmVhNzY5MWY3ZDkwYzEyNDg2NmU3NzRlNjhlOWViODkzMDY1Mzg5NTZmYzIxNzU5M2Q0NjAxN2I3ZGQ3OTQyZDYzNmUzODRhMzRjODAyYTE0ZDVmZDk5MTY3OThkN2Q2MTkzZWYxYTI5ZTJmZGJlZmQ5NTUyNjE0OTZkOGFjOTcxMzkyMmQ0M2JmYzQzYTdhNDEwNzUyY2NiYzg1NGNjODUyNjhmNDExZTc5M2Y5YjUyNzkwMDdiYmNhY2EzMGZiMTZmZDkwMzNhNmVhMzE1NjZiNGYyYzI3ZjAxNjExMDdlMmNkODkwYmNmNTYzYTUyMmVlMGViOTZhMDE2ZTkwMDc1OTVhOTQxNzJhNGFlZGVkMTFmYWRjYjhhYjVmMDNjZDE1NGY4YjhlMGUwNjY2ZmY2MmIxY2NkYTAyNTk5ZWE0NGJiZmNmYWVhNTQxYTVhYzI2YmYyNjdhNTZhODE3N2E1MGY2Yjg3YjQ2MGE1NGQiOiJjNTkxNzIzMDQyZDRiODczN2Y0ZWY5ZGZlYjQwYzZkNjJkNDM5ZWU4Njg4MTU4YTRiZTI0YzBhZDEzMGY4NTExMTNjYzUzZDc3NmM2M2NkNzgyYjk1Y2NmZDI2NmJkYjI1NzhiNzg0MzljMTIxZGUzNGU4OTU1YTdmYmQyYzZhZTFhMWMzN2IyNGMxMmY1ZGNlMTUxNzVkZDllMjAzYTNhYmQ1YmY5ZTczNmIxZmMxODNkMTBjNDU0MGM1Y2YyY2JlMjY3NjhlOTRjMWVhYjJiYTMwMDhiMzJkNmQ1MDcxNjY5OWM2YmZjYmVjNWJiZWI5NGEwNTRkYmNkMTZkMTBmNzQ5NzJjYTVmZTUzMjU2Y2QwYWRlOGY1MDJlY2VhZWQ2MzM0MTRhOWJkYjYyMzAzNWEyMzRmNjVjNjY2MmEyM2Q3OTJjYzBlZWIyMWExZjU1ZWJjYTI2ZmZhMWM1NmM5NmZiYjdkODcwZmMzZmZiMTgxZGU4Mzk4MjM4YWIxYjUiOiI5YzQzZWY1MjJjYWIxODAyMjI5N2QzZDcwZmE0OTFkMDNiOTc1Yjg0NGI3NmNlZGJhMzVkOGQ4ODVkZGIyODI1ZTMxZmQ1YzEwMWJkOWU5YTIxNTUyMGJiOGNkZGRlYjZhYjJjZjJkYzg2MDY1MTc5NDc3ZDgwZjczMzAxNjkyOWQ3MzM0Y2RmZGY4MThjMTM3OGE0Yjk0MjhmYTFlZTJlNTI1MzIxZjkwNWQwYjk0OWQzYWJjOWU5M2QzZjMwYjA3Nzc5NTMzOGJkNTVjMjhhMWNlZDEzNGJiMmQ1NzViZmE0NGIyZmQ4Y2YxZDVjNTQxNjhhMTJhMWQ2YzUxMWY2MmNhOTczY2RiNzA0YzIzMzQ4N2UxZmQzOWU1YWRjODg3MGFmMzUyZWMzYzZhNmE2NDE1MmZjODJhMWMxNmVjYzQzZDFkNTgxN2Y3NmExYjQ2YTVmYWI5ZGI4OTIzMzExZWRkM2NjMDMyZmVkN2ViNjI1MmU3N2RiNjlkN2JmOWVlMzVkYzRkZGQwZmJkYjlhNzZhZmUyNWE4MmY0NDk1YWE0ZjA3MmNlZjliMTI0N2NiMzY4YmNjODY3NzU2NWE0NzA5NTI0MjcwMmU2MzQxMjgxZjUwNjgwNWUyMGU4Yzg5ZTlhZjI4YWRmZjIxYzgwNGM3MGNhYjEwZWUyZmU1MjEyZWMwNzk4N2QxM2U3ZDRiNjA1Mjk2MTFlNGQzM2EwNjJkNzI0Y2RmYjE2Y2RjNDhiOTY0YmEwN2RmYTI2MjBkNWE4ODA1ZDBiZTkzMzgwODUwYzY2ZjNmYWRhMDU5ODAyYTU5NDZiZmUzYjBiMTBlMTlhODI4OWVjMDFmNjUxNGFiYjg4M2JiNTNjNDlkYWRiYmE0MmQ0MTJlYTI2NGM4YTUxMjJmZGExZWE5Yjc0MjI4OTY0MmIwZWEzNGNlYjc2YWU4MjU2YTk3ODQ1ZDM3NTk0Y2ZiZmY4YzdhNDQzMDE3NjIyM2JhY2MzYmVmMzk1Y2VkYTEzZmQyMTFjNzEiOiIwMTAwMDEiOk1CRURUTFNfTURfU0hBMjI0Ok1CRURUTFNfTURfU0hBMjI0OiJmMTQ1Mzg3YzdhNzBlNDc4OTY4ZTIzODAzN2U4ZDU2MWIxNjY1ZTBlMTVhYzU0N2VkNGE3MmVhMSI6IjZmMjg0MTE2NmE2NDQ3MWQ0ZjBiOGVkMGRiYjdkYjMyMTYxZGExM2IiOiI3MTcxYzc0ZGYyNDI3MmRmZTZiMzRkYjc4ZjI0NTA3YTY4MDYyYmQ3OTFmNjg3OTZkNTAwMWJlMzU0ZGU2ZmRkYWI4MWU5MjUyZTE1MTg4NGY0Y2MxZjNjZDNlNzc2MGUyNjNjMGMzNGU2M2M1NTdlYjMyYzgzMzZlMGNlZjQwODU1YzVlMjc5ZGJiYTMxNzBkYTVhMTRhYzYwZTRjYzhkNDAyNjMzYTM4M2I4ODcwOWYzMzA2ZmIwMjcwOGUzOWYzMDM5ZTdlNjE0ZWRjYjg5NjA5YzhjNzExMzdkZTUyMTE2NTlhNDFlOWU1NjgyY2ZlMDQ2M2YzYmM5NzU1OGQzYmY3N2JkNzk4OTc2ZjA5ZGI2OTE1MzEyMzkyMzgzNWFjOWJiZDc2NDhjMjc3M2UzOGI1MjI4NjQwZmRlNmRmMDA1ZTlmNDQ4MTllY2EzMWY0MWNjZGRiZDQ1ZDYxYWU3ZTFlZDA2NDBmMDczNmY1MmJmNWZjMWM2MmY1NDMwZGU2YTk2ZDVhYWJjY2ZjZmVmNTA4YWMyOTljN2YzZjBmN2QyMjJlZjFmMTliMjg4MjczNjkwYjMyNzViNjhmODc0MzAxYWZhOTVkMjQzMzE2Mjg0ZWQxMTdiZGVkNjlkYTExZjVjZTE0MzVkZDY3NzE3YmFlODJlZDQ2OGZmMWI2YWM3ZjI0ODMzOTdkMzEwZmZlOTE3NzUxODlmNjcxYTgyYjQ5MzAzOWQ4YzIzMzgzMGQyMGUyOTBiYzliZTg4MGE0N2YwYjM2YmYyZTFkYTJjMWYyM2RhZmViOWY0MmQ5ZjA4NGZlYjgwOGE5OGU4OTRlODUwMTkzN2JhOTMyNTk0YTZkMjAyZTIwYTBhZmRkY2VmOGZhNDhjMTY4MmQzMTc5ZWRlYmY4ZWE0NGVhMTIxNmEyZjU1YzMwNWNkZjQ4NzI0OTAxMDkwOWZhOGEyMWQ5YmE5ZTNkYmJlZWMwNDZhODIzOTIyMzkwYjdkOTAyZDc3ZWMxNzZiYjQ0N2IwNWQiOjIwOjAKIAogUlNBU1NBLVBTUyBTaWduYXR1cmUgUlNBLTMwNzIsIFNIQS0yNTYsIFNhbHQgTGVuZ3RoIDIwCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NgogcGtjczFfcnNhc3NhX3Bzc19zaWduOjMwNzI6ImNhN2I1MGM1ZjY1ZjIxMTVmZWE3NjkxZjdkOTBjMTI0ODY2ZTc3NGU2OGU5ZWI4OTMwNjUzODk1NmZjMjE3NTkzZDQ2MDE3YjdkZDc5NDJkNjM2ZTM4NGEzNGM4MDJhMTRkNWZkOTkxNjc5OGQ3ZDYxOTNlZjFhMjllMmZkYmVmZDk1NTI2MTQ5NmQ4YWM5NzEzOTIyZDQzYmZjNDNhN2E0MTA3NTJjY2JjODU0Y2M4NTI2OGY0MTFlNzkzZjliNTI3OTAwN2JiY2FjYTMwZmIxNmZkOTAzM2E2ZWEzMTU2NmI0ZjJjMjdmMDE2MTEwN2UyY2Q4OTBiY2Y1NjNhNTIyZWUwZWI5NmEwMTZlOTAwNzU5NWE5NDE3MmE0YWVkZWQxMWZhZGNiOGFiNWYwM2NkMTU0ZjhiOGUwZTA2NjZmZjYyYjFjY2RhMDI1OTllYTQ0YmJmY2ZhZWE1NDFhNWFjMjZiZjI2N2E1NmE4MTc3YTUwZjZiODdiNDYwYTU0ZCI6ImM1OTE3MjMwNDJkNGI4NzM3ZjRlZjlkZmViNDBjNmQ2MmQ0MzllZTg2ODgxNThhNGJlMjRjMGFkMTMwZjg1MTExM2NjNTNkNzc2YzYzY2Q3ODJiOTVjY2ZkMjY2YmRiMjU3OGI3ODQzOWMxMjFkZTM0ZTg5NTVhN2ZiZDJjNmFlMWExYzM3YjI0YzEyZjVkY2UxNTE3NWRkOWUyMDNhM2FiZDViZjllNzM2YjFmYzE4M2QxMGM0NTQwYzVjZjJjYmUyNjc2OGU5NGMxZWFiMmJhMzAwOGIzMmQ2ZDUwNzE2Njk5YzZiZmNiZWM1YmJlYjk0YTA1NGRiY2QxNmQxMGY3NDk3MmNhNWZlNTMyNTZjZDBhZGU4ZjUwMmVjZWFlZDYzMzQxNGE5YmRiNjIzMDM1YTIzNGY2NWM2NjYyYTIzZDc5MmNjMGVlYjIxYTFmNTVlYmNhMjZmZmExYzU2Yzk2ZmJiN2Q4NzBmYzNmZmIxODFkZTgzOTgyMzhhYjFiNSI6IjljNDNlZjUyMmNhYjE4MDIyMjk3ZDNkNzBmYTQ5MWQwM2I5NzViODQ0Yjc2Y2VkYmEzNWQ4ZDg4NWRkYjI4MjVlMzFmZDVjMTAxYmQ5ZTlhMjE1NTIwYmI4Y2RkZGViNmFiMmNmMmRjODYwNjUxNzk0NzdkODBmNzMzMDE2OTI5ZDczMzRjZGZkZjgxOGMxMzc4YTRiOTQyOGZhMWVlMmU1MjUzMjFmOTA1ZDBiOTQ5ZDNhYmM5ZTkzZDNmMzBiMDc3Nzk1MzM4YmQ1NWMyOGExY2VkMTM0YmIyZDU3NWJmYTQ0YjJmZDhjZjFkNWM1NDE2OGExMmExZDZjNTExZjYyY2E5NzNjZGI3MDRjMjMzNDg3ZTFmZDM5ZTVhZGM4ODcwYWYzNTJlYzNjNmE2YTY0MTUyZmM4MmExYzE2ZWNjNDNkMWQ1ODE3Zjc2YTFiNDZhNWZhYjlkYjg5MjMzMTFlZGQzY2MwMzJmZWQ3ZWI2MjUyZTc3ZGI2OWQ3YmY5ZWUzNWRjNGRkZDBmYmRiOWE3NmFmZTI1YTgyZjQ0OTVhYTRmMDcyY2VmOWIxMjQ3Y2IzNjhiY2M4Njc3NTY1YTQ3MDk1MjQyNzAyZTYzNDEyODFmNTA2ODA1ZTIwZThjODllOWFmMjhhZGZmMjFjODA0YzcwY2FiMTBlZTJmZTUyMTJlYzA3OTg3ZDEzZTdkNGI2MDUyOTYxMWU0ZDMzYTA2MmQ3MjRjZGZiMTZjZGM0OGI5NjRiYTA3ZGZhMjYyMGQ1YTg4MDVkMGJlOTMzODA4NTBjNjZmM2ZhZGEwNTk4MDJhNTk0NmJmZTNiMGIxMGUxOWE4Mjg5ZWMwMWY2NTE0YWJiODgzYmI1M2M0OWRhZGJiYTQyZDQxMmVhMjY0YzhhNTEyMmZkYTFlYTliNzQyMjg5NjQyYjBlYTM0Y2ViNzZhZTgyNTZhOTc4NDVkMzc1OTRjZmJmZjhjN2E0NDMwMTc2MjIzYmFjYzNiZWYzOTVjZWRhMTNmZDIxMWM3MSI6IjAxMDAwMSI6TUJFRFRMU19NRF9TSEEyNTY6TUJFRFRMU19NRF9TSEEyNTY6IjE0ZWE0ZGNhMzU1OTk3NmM3ZDg5NDNhNTFkNjljMTMyMmM3ODYwZDQ5NmY3NDJiOWMwYzJkMDNjZTYyOTYxM2IiOiI2ZjI4NDExNjZhNjQ0NzFkNGYwYjhlZDBkYmI3ZGIzMjE2MWRhMTNiIjoiM2EwNjIyZGRmZjVhMGMxZjViNTQ1ZDY4NDA1NGU0NjIxMTc4NmEyZTQwNjI3ZTBjYjY3OTVlYTBkMTc2ZjNjOTdlNjUzNmZiNjRjNWVjYTdiMjhiN2FjNTJlNDhlM2Q1MGI5MTZkMmZjY2I4N2Q3MGNkOGVkYTdjMTVjMjMwODczNDI1NDcxNmU1YjQwMDU5MmNjMmU1ZTAzM2JhMjc4NjZjYjE0ZmVmYmRjYmMzNWQ1ZDg1ZDRlZWU4YmE2YmMyZGE5OTVlOGViY2MyN2Q1MGM0OGFhOTg4YmY0NWZkZTI3MzExYTllMmVjMDI5ZDBmYTZmYTZkM2VmZWE0NjBmYzFhOTBlNDQzZDgwN2QyMDlhNGMwNmJmMzAyMmQ1MjlhYjJlNGE4NzczMjVmY2NjYjNmODZhYzE2MjAwYWI5NTYyOGJmMGMxYzhjNzBmNmZlMWE5ZjI4OGJiYzAxNjJhMzkyZjQwYWQxMTA5Y2RiYmFmMDNkOWIyZDUxNGE2MDk4Mzg3NDM1MGJlOWFlZjg4NmMzYzQ4MWE2NjMyNWYxMzdhZWNiNGM4MmE4YTczMDQ2ZGJjMWRkODU5OGZmYmRiODI4YTNkNjM4ZjlkZDgxMzlhNzY4ZGNkOGQzMGQ3OTc0MGVmMzQ1YzE2NDRkMDNlNmZiODZhNDYzNjdmNmQ4MmE3YTgxOTA1N2FlNDkwZTFiMTAwYjU4NDJlZDM4NTg0NWYzNzkxMDFlMzdjZTYwNDUzMWM2MWRlNDIzZGY2NjIwMGQ0NWI3MjI5NjYyZmQwZWMzNTcyNTkzYjA5YTUyMTNlYzE0YzFkN2IyMzM4Y2E5Yzc2M2MwZDE4OTQ2ZjA0ZWFhZjU3ZWEyZWJjNzllMDkzZjJmZDRjNjRjYjFjMWE3ZjBlODg4ZGMyZDg3YTE1ZWI3NjlmNTZkYzE4MGNmZTE1OTdjYzNlNGUxODExZDRlMjc4NTJmYTE4OGM4ZmVjNGZjOTE3ZDQ3MjRkMzNjZTVmMzIxMTg5NWNmN2U4YjhjIjoyMDowCiAKIFJTQVNTQS1QU1MgU2lnbmF0dXJlIFJTQS0zMDcyLCBTSEEtMzg0LCBTYWx0IExlbmd0aCAyMAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEzODQKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8zODQKIHBrY3MxX3JzYXNzYV9wc3Nfc2lnbjozMDcyOiJjYTdiNTBjNWY2NWYyMTE1ZmVhNzY5MWY3ZDkwYzEyNDg2NmU3NzRlNjhlOWViODkzMDY1Mzg5NTZmYzIxNzU5M2Q0NjAxN2I3ZGQ3OTQyZDYzNmUzODRhMzRjODAyYTE0ZDVmZDk5MTY3OThkN2Q2MTkzZWYxYTI5ZTJmZGJlZmQ5NTUyNjE0OTZkOGFjOTcxMzkyMmQ0M2JmYzQzYTdhNDEwNzUyY2NiYzg1NGNjODUyNjhmNDExZTc5M2Y5YjUyNzkwMDdiYmNhY2EzMGZiMTZmZDkwMzNhNmVhMzE1NjZiNGYyYzI3ZjAxNjExMDdlMmNkODkwYmNmNTYzYTUyMmVlMGViOTZhMDE2ZTkwMDc1OTVhOTQxNzJhNGFlZGVkMTFmYWRjYjhhYjVmMDNjZDE1NGY4YjhlMGUwNjY2ZmY2MmIxY2NkYTAyNTk5ZWE0NGJiZmNmYWVhNTQxYTVhYzI2YmYyNjdhNTZhODE3N2E1MGY2Yjg3YjQ2MGE1NGQiOiJjNTkxNzIzMDQyZDRiODczN2Y0ZWY5ZGZlYjQwYzZkNjJkNDM5ZWU4Njg4MTU4YTRiZTI0YzBhZDEzMGY4NTExMTNjYzUzZDc3NmM2M2NkNzgyYjk1Y2NmZDI2NmJkYjI1NzhiNzg0MzljMTIxZGUzNGU4OTU1YTdmYmQyYzZhZTFhMWMzN2IyNGMxMmY1ZGNlMTUxNzVkZDllMjAzYTNhYmQ1YmY5ZTczNmIxZmMxODNkMTBjNDU0MGM1Y2YyY2JlMjY3NjhlOTRjMWVhYjJiYTMwMDhiMzJkNmQ1MDcxNjY5OWM2YmZjYmVjNWJiZWI5NGEwNTRkYmNkMTZkMTBmNzQ5NzJjYTVmZTUzMjU2Y2QwYWRlOGY1MDJlY2VhZWQ2MzM0MTRhOWJkYjYyMzAzNWEyMzRmNjVjNjY2MmEyM2Q3OTJjYzBlZWIyMWExZjU1ZWJjYTI2ZmZhMWM1NmM5NmZiYjdkODcwZmMzZmZiMTgxZGU4Mzk4MjM4YWIxYjUiOiI5YzQzZWY1MjJjYWIxODAyMjI5N2QzZDcwZmE0OTFkMDNiOTc1Yjg0NGI3NmNlZGJhMzVkOGQ4ODVkZGIyODI1ZTMxZmQ1YzEwMWJkOWU5YTIxNTUyMGJiOGNkZGRlYjZhYjJjZjJkYzg2MDY1MTc5NDc3ZDgwZjczMzAxNjkyOWQ3MzM0Y2RmZGY4MThjMTM3OGE0Yjk0MjhmYTFlZTJlNTI1MzIxZjkwNWQwYjk0OWQzYWJjOWU5M2QzZjMwYjA3Nzc5NTMzOGJkNTVjMjhhMWNlZDEzNGJiMmQ1NzViZmE0NGIyZmQ4Y2YxZDVjNTQxNjhhMTJhMWQ2YzUxMWY2MmNhOTczY2RiNzA0YzIzMzQ4N2UxZmQzOWU1YWRjODg3MGFmMzUyZWMzYzZhNmE2NDE1MmZjODJhMWMxNmVjYzQzZDFkNTgxN2Y3NmExYjQ2YTVmYWI5ZGI4OTIzMzExZWRkM2NjMDMyZmVkN2ViNjI1MmU3N2RiNjlkN2JmOWVlMzVkYzRkZGQwZmJkYjlhNzZhZmUyNWE4MmY0NDk1YWE0ZjA3MmNlZjliMTI0N2NiMzY4YmNjODY3NzU2NWE0NzA5NTI0MjcwMmU2MzQxMjgxZjUwNjgwNWUyMGU4Yzg5ZTlhZjI4YWRmZjIxYzgwNGM3MGNhYjEwZWUyZmU1MjEyZWMwNzk4N2QxM2U3ZDRiNjA1Mjk2MTFlNGQzM2EwNjJkNzI0Y2RmYjE2Y2RjNDhiOTY0YmEwN2RmYTI2MjBkNWE4ODA1ZDBiZTkzMzgwODUwYzY2ZjNmYWRhMDU5ODAyYTU5NDZiZmUzYjBiMTBlMTlhODI4OWVjMDFmNjUxNGFiYjg4M2JiNTNjNDlkYWRiYmE0MmQ0MTJlYTI2NGM4YTUxMjJmZGExZWE5Yjc0MjI4OTY0MmIwZWEzNGNlYjc2YWU4MjU2YTk3ODQ1ZDM3NTk0Y2ZiZmY4YzdhNDQzMDE3NjIyM2JhY2MzYmVmMzk1Y2VkYTEzZmQyMTFjNzEiOiIwMTAwMDEiOk1CRURUTFNfTURfU0hBMzg0Ok1CRURUTFNfTURfU0hBMzg0OiJiYzlmYjhmYzZkNGM2Y2U4ODY1Yzc1ODA2M2U1NTYzOWY5OGFmYzE1ZTVkNzFmNGYxZWNmODlkNmZiYjkwNGFlY2MyODEyNmJkNWU2YjVhN2Y4ZjMxNzI5OTQ5ZGJmOGEiOiI2ZjI4NDExNjZhNjQ0NzFkNGYwYjhlZDBkYmI3ZGIzMjE2MWRhMTNiIjoiM2Y5MGFlYWJmYTlhNWYwMGUyNDFmM2Y2NWRmZTYxYmFmNjdjMTM1NjM1MzA0MmMzNTY2ZWRhY2IxMWM3NjQ5NzM3ZTVhZGY5NGNmYjA1ZjI2MTlhZWNjODg5NWRiNDUxOTBmYmRmMzVkYWIwMTE0NGUyMDdiNmYwOTIzOTI3YTYxNDhkM2YxNmVhYWQwNWU3M2JjY2I1NjJkYzA4N2UyZDgyZGIzZGNlMTMwYTgzZTgzMDNiZDdjMzQ0N2IzYWU0ZDM3MDBkNDc2M2JhNjk4MWQ4MjYxOGFjODJhNmU2NjQyM2YyOTQ3ODFhNTliMjBjYzk3OGM3OWUyZDVjMTAzYmZiOWQ0NzExOTI5NGMzYzg1YjFkM2M0NWEzNjg5N2Q0MmUxODM1MTRjYzhlZGJiZmExYmU5ZWYxN2I3ODI4MGI1YjYyMTRkYWQ3OWQ2MGRiMDU3ZjIyNTA2NTE1YjY4NDNjZTdkNGRkNmJkODYxYTg4OWIzNjE2NGMzMjUxNDdiYWVlZDcxNGQ3YTNmNTVhZTUxZWY2ZTZkNGFlOWU4NjJkNjc3Y2FiYTFhMmRmMzY5YzIzZDNmZmUzM2RkNDJmZTcwN2UxZmQ4YmE2MjgzYWFhMGI1NzAzNTNiNDhhOGUzOWZmNzJhMDlmNzAwZTAyNDE1MGNlODdjMDQ0YTNlYzc0NWIyMTJhZTgxYWE1NzQzYjk4MWE4YmI5NWRlYjZiM2UxNWMyNDg3Zjc5MDAxNzhkNTg0MGY4ZTc5NDY2MjcwNmRjZGIxOWJjMGJkZDU2Y2I3ZmRmMGUyMWQxMGIwM2FkYWM0MWI3NDlmMzFiZDNlN2M0ZDA3ZDVkNGVjOGU3OWQ0MjQ4MTJiNmU4M2YxYzdiNTk3NzllNTgwMjlmOWIwN2RhM2U3Nzc5NWZjZmY2YWU4YmIwOThiMWMwMGQxZDJhNWJjMGNiMDA1ZWYzZDhhYWI2M2RkZDg4M2QzOGJhY2RjNjQzMDdlOTExYzZlNTE5NDY3NDRmMzYxZmU5NzhkIjoyMDowCiAKIFJTQVNTQS1QU1MgU2lnbmF0dXJlIFJTQS0zMDcyLCBTSEEtNTEyLCBTYWx0IExlbmd0aCAyMApAQCAtMTE5OSwxNSArMTE5OSwxNSBAQAogcGtjczFfcnNhc3NhX3Bzc19zaWduOjMwNzI6ImNhN2I1MGM1ZjY1ZjIxMTVmZWE3NjkxZjdkOTBjMTI0ODY2ZTc3NGU2OGU5ZWI4OTMwNjUzODk1NmZjMjE3NTkzZDQ2MDE3YjdkZDc5NDJkNjM2ZTM4NGEzNGM4MDJhMTRkNWZkOTkxNjc5OGQ3ZDYxOTNlZjFhMjllMmZkYmVmZDk1NTI2MTQ5NmQ4YWM5NzEzOTIyZDQzYmZjNDNhN2E0MTA3NTJjY2JjODU0Y2M4NTI2OGY0MTFlNzkzZjliNTI3OTAwN2JiY2FjYTMwZmIxNmZkOTAzM2E2ZWEzMTU2NmI0ZjJjMjdmMDE2MTEwN2UyY2Q4OTBiY2Y1NjNhNTIyZWUwZWI5NmEwMTZlOTAwNzU5NWE5NDE3MmE0YWVkZWQxMWZhZGNiOGFiNWYwM2NkMTU0ZjhiOGUwZTA2NjZmZjYyYjFjY2RhMDI1OTllYTQ0YmJmY2ZhZWE1NDFhNWFjMjZiZjI2N2E1NmE4MTc3YTUwZjZiODdiNDYwYTU0ZCI6ImM1OTE3MjMwNDJkNGI4NzM3ZjRlZjlkZmViNDBjNmQ2MmQ0MzllZTg2ODgxNThhNGJlMjRjMGFkMTMwZjg1MTExM2NjNTNkNzc2YzYzY2Q3ODJiOTVjY2ZkMjY2YmRiMjU3OGI3ODQzOWMxMjFkZTM0ZTg5NTVhN2ZiZDJjNmFlMWExYzM3YjI0YzEyZjVkY2UxNTE3NWRkOWUyMDNhM2FiZDViZjllNzM2YjFmYzE4M2QxMGM0NTQwYzVjZjJjYmUyNjc2OGU5NGMxZWFiMmJhMzAwOGIzMmQ2ZDUwNzE2Njk5YzZiZmNiZWM1YmJlYjk0YTA1NGRiY2QxNmQxMGY3NDk3MmNhNWZlNTMyNTZjZDBhZGU4ZjUwMmVjZWFlZDYzMzQxNGE5YmRiNjIzMDM1YTIzNGY2NWM2NjYyYTIzZDc5MmNjMGVlYjIxYTFmNTVlYmNhMjZmZmExYzU2Yzk2ZmJiN2Q4NzBmYzNmZmIxODFkZTgzOTgyMzhhYjFiNSI6IjljNDNlZjUyMmNhYjE4MDIyMjk3ZDNkNzBmYTQ5MWQwM2I5NzViODQ0Yjc2Y2VkYmEzNWQ4ZDg4NWRkYjI4MjVlMzFmZDVjMTAxYmQ5ZTlhMjE1NTIwYmI4Y2RkZGViNmFiMmNmMmRjODYwNjUxNzk0NzdkODBmNzMzMDE2OTI5ZDczMzRjZGZkZjgxOGMxMzc4YTRiOTQyOGZhMWVlMmU1MjUzMjFmOTA1ZDBiOTQ5ZDNhYmM5ZTkzZDNmMzBiMDc3Nzk1MzM4YmQ1NWMyOGExY2VkMTM0YmIyZDU3NWJmYTQ0YjJmZDhjZjFkNWM1NDE2OGExMmExZDZjNTExZjYyY2E5NzNjZGI3MDRjMjMzNDg3ZTFmZDM5ZTVhZGM4ODcwYWYzNTJlYzNjNmE2YTY0MTUyZmM4MmExYzE2ZWNjNDNkMWQ1ODE3Zjc2YTFiNDZhNWZhYjlkYjg5MjMzMTFlZGQzY2MwMzJmZWQ3ZWI2MjUyZTc3ZGI2OWQ3YmY5ZWUzNWRjNGRkZDBmYmRiOWE3NmFmZTI1YTgyZjQ0OTVhYTRmMDcyY2VmOWIxMjQ3Y2IzNjhiY2M4Njc3NTY1YTQ3MDk1MjQyNzAyZTYzNDEyODFmNTA2ODA1ZTIwZThjODllOWFmMjhhZGZmMjFjODA0YzcwY2FiMTBlZTJmZTUyMTJlYzA3OTg3ZDEzZTdkNGI2MDUyOTYxMWU0ZDMzYTA2MmQ3MjRjZGZiMTZjZGM0OGI5NjRiYTA3ZGZhMjYyMGQ1YTg4MDVkMGJlOTMzODA4NTBjNjZmM2ZhZGEwNTk4MDJhNTk0NmJmZTNiMGIxMGUxOWE4Mjg5ZWMwMWY2NTE0YWJiODgzYmI1M2M0OWRhZGJiYTQyZDQxMmVhMjY0YzhhNTEyMmZkYTFlYTliNzQyMjg5NjQyYjBlYTM0Y2ViNzZhZTgyNTZhOTc4NDVkMzc1OTRjZmJmZjhjN2E0NDMwMTc2MjIzYmFjYzNiZWYzOTVjZWRhMTNmZDIxMWM3MSI6IjAxMDAwMSI6TUJFRFRMU19NRF9TSEE1MTI6TUJFRFRMU19NRF9TSEE1MTI6ImM1NzkxMWJmMzUzZWYxMDY0NzliZDBhYzg1YTRmNzBiNmQzMjk4ZjhlNTg4MmM1ZDBiZmIyOGNiNmYyNzEyOWFlNTNiNGZhYjcwMmNjZDNkNTQ1N2Q1ZmQ2NjJkMjlmMzRiNDQ1ZTYwZmM1ZGEzYzBjOTQzY2VlMTdiODFlMjU1IjoiNmYyODQxMTY2YTY0NDcxZDRmMGI4ZWQwZGJiN2RiMzIxNjFkYTEzYiI6IjYwN2I3NzMxZWNiMjMyZjliOGU5ZWEwM2JlMjhjYzFlOTQ4YWNjM2VjMTJhMTIyMmJhMGY2MzkzNTQ0MGMzZWZmZWFmNDYwZDcwNjZkMjYwZDE3NGQwZWQxOGE5MTkzNTUwMDAwYzJmYTAxMTk3MTJmYjFhYjFlMjdiNGU2ZjVmODRiZTliNjNhMWVkZTE3YTAxMTc0MDYwZTJkOWU0NjEyMWNjNWQxMDUxNWEzNDJhMjY2NDk1MzkzNDFlYjFiNDRiODJlMzQ2YTAxMDJlN2NhNDViZTMxNDliNWYxNDQ0YmQ3ZmRmNDNkYTQ0MWM1OWRlYjM3ZGE5YTIyM2JjZDdhODI0NDIzN2JiNTQwNGVhNTMyZWI0NzBlODA4OTFjMGZlOTQwM2QxMjczNDEwMDI4NGU5OWNmZDk2ZGUyYWI0MDU4NTI5ZDkxYmYzNDhjNmNiZGI3ZmNmZWVhM2Y5OTI1ZTkzZWZkNmFkYjNlZjY5NDYwMDg3MzhmNDU3N2E0OWM0MmFjMDIwM2EyZDk4MmZkNzdjYjQyMWFlMDMwYjgxYjk3ZGQwNDQ5MDYwNTE3OTYyNjkwMzQ3MWNmNjg4MzVkZDVlNGFjNDFhY2ZlNTRlMDQ4ODc4ZGY4OWRiOWMyZGU1ZjFlODIyMjY2YzMyNWUwYmUwOTkxYzdmMThjZDNkZTRiMjExMGUxNGY1NjEwMGU0NWY4YmExOWVkZjkxNzE1MGMyMDc0ZjM3OTI5M2Y3M2NiNTg3ZmY3N2FkNjNlNGNiZWM5ZWVhZWQ3N2NhOTAyNjFiMjgxM2FlOGU2NTMzYjA5YjIyM2E2OGFiZTJiZWVlYzg4ODA4OGZmOTFmZWE1YzYzZGUzYjU1MjM4YWVmMDE4YzM2OGY5ODY1MTU3MmJjN2I4Y2YzZDE0YzE1YjI0YmI1NTM0YWUwN2E2YzRjOWQ1ZWNkMGI4Njk2MWI1NTA4NTkwMzZiYTZmYThlNTBkMDYyMjhkODliY2M5NDM1ODFiMjZlMzAyNzk1ZDFlMyI6MjA6MAogCiBSU0FTU0EtUFNTIFNpZ25hdHVyZSBSU0EtNDA5NiwgU0hBLTIyNCwgU2FsdCBMZW5ndGggMjAKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjI0CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjI0CiBwa2NzMV9yc2Fzc2FfcHNzX3NpZ246NDA5NjoiZjAwMTAyZDI5OTkwZmIzNmJmNjZkY2FiNTdmYTRlMDU3NDVlMzA3YzAzMWZlNmFjYjg2ZGY0ZTA0ODdiY2I4ZmQ5MjllMjI3YjZlMTA5MGE0OGJlZmJkNjQyZjQzMmVhMWI2Y2ZmMjZjMWFlZDlmMThjMDRmNjgxNzBkYzE4NTc3ODZmYWEwODZmYTAwYjQzZTAyNzJhMTA0MmVlNTM1NjZjYmI0OGEwNGYxMDk0MjBlMzUwMWNmNTYyMjJmN2E5YjUxYTdmZmUyYjk3YThlYTcxZTc5MWUwYmZiMjU5NTE0Zjk1MzQ3MzEzMGRiZTQxYTc5NzhmYzM4NTE1MGY4Zjc4NzQ4YjkwNTM4Yzg5MDZlMjQ3NTljZTIxMDZlZGU0YWM0MGViMjY3NzZjZmY1YWJmMjI3NjczNDA3ZDA5MTBhOWMzZjY0NjRkNDg1NjlmMWI4ZmFhNjJkMGIzYjcxNTZiMDU5NDQxZTFmNzAxNzUxMzM5ZmE4ZGZkMjE4YzM0MzA1MGU4YTg4MjkzYjZiZTA0MDdhYjI1MzQ4MTVlZWU3NDJjNTc0Y2JiNzQ2OTk5OGIyMzQzOWEyM2NhNDEwNGY1NjM4ODNmNWEzNWFiODhkNzg5ZGNiYTQwNzNhZWJmMmUxODU1YWJiODM5OTA4ODc0YzFhMTBmMTUwZDU2YjciOiJkZGE0NDkxYjU2YmRhZDIwZjAzMmM4YTYxYmMzMjY5OTVlZTczNTNjM2YxYjRjMWU2NzdhZWI0YjAyOGU0NWJmNjU2NmZiMjBmM2U4MmJhYzQxNjlhOTcwNzg3YjhjYmFmYjA2ZWRkMjRhOWJlYmU1MjcwNGYyNDJmNzIwM2VjOTZhZWU5YTlmNWVlNzZlMjcwMTkxZjgyZTM2NTFkYTY2M2I4MGQ1MTY4OGMyZDQwZmZhOTMyY2UyMzAyMzIyNTAzNjY0YWUwMjYwNjE3ZTdiNzlkMTNlNGExZGVjMTc4NDY0N2Q3NTcxYzEzOTBlODYyOTRmMjA5Mzc3NDBmOTNlMGZmMWJkYjBjMWZmNjQ4ZWYxNTIwMjJiZjVmNTRiZmNiZjI0NTY0Y2JjYTdhMTMwZmI1ZjU2YmU5MjFmY2M3YTNlYmQ1MTExNDk2ODI3NGFiMTNiY2MzOTg2MTM3ZWI2OTQ5ZWZmMGQ0MmI1OTZmN2JhZWM1NmM5NGE2N2EyZWMwYWVmZjE4ZGMwNDRjZjk1MDBiNTI1ZGM5OGVmYjk5OTJiMTNmODFlMWIwYmY0YzJhYzFkYTkxZTY3YzA4NDdjYmRhZjI2OGNlZDU0OWMyZmViZDA4YjY2MTE0MGFmOWJmNDU0NThkMTNkNDcxN2ViNjFkZTg2YjU1NTg1NmFkNSI6ImNmY2FlNDlmODhiODBkYzEyMTg2ZDUzYzU3MTYyZGJlY2JhNmUzNDgwOTRmOWZiMzc0M2UzOWQ5OWQ1MzU1ZDg3ZTNlZmNhOWQ0ODhkMzlkNzA1NjcxZTU4NjM0MzA5Y2JkN2NmNTNmY2NkNTJkOWE4NGVkYjk5ZmZkYWQwNjgwZTllYzgyNmQ2MjU3MjgzNzA3MTdiMzkzMjFjN2Q0YjY4ODI3ODVjZjY4ODQyNzVmNmM3YjZkNjgxYmZhNzEwNTkzNjc5ZTk5YjY3ZDViYzI4MTIxZGQ2MDM2MTdkYzhjZmRiMjU1N2MyYTA0NTMzODkzZjU5M2YwZjdlNTljYmU2ZDQ2NjIzZDIyNjQyYTcxNjFhNGM2ODViMjkzYzdlZGNjOWFhZWM0OGUzODEwZWM3NGE4ODRhNDExMDg2MTBkMDAwYjU5MWZiZjVkYTQ0YjU1MDFlNjM3ODEyNjRlZGYzYzczNzA2MzIxZWNmNDRkMGUxNGI1OTMyYTJkNjljYTNkMTgwYzVjZWU4NmI0Y2NhZDg1MGM3NjZlMGJlYjVmMjBlNmIxNDIwNTVkNTUxYWViNDUzYmQwOTllYWM2N2ViOTJjZjEzZTM0ZWYwZDBlMzRmYzU5OWE2ZTVkNGQxNGY3NGUwODE5MGM2NmM2NmFkMzQ3M2RlOWFlOGY1M2RkMmMxYzBjNDFmNGI0YThkNDY5MGY0Yjc3MzU0Yzc2ZTA1YWI3NmI3YTZjN2M5ZWRmMDk1NWZlZTc5OWEyYmI0MmM4NmM2YTA2NjMxMzk4ZDM4Y2NlYjcxZWM5YWFhOWEwZmI4Mzg1MGY2MjM0MmYzZjc4MWY5ZDQ1MzIyOWIxYTcwOWJiY2U4M2E0NGMyMjVlYmZmZDRmNTE4Zjk0YTc5MzVmNDY2OWY2NWQwMmZmM2RlZmJiZDFkNWVmZDkxOTEzNjU4MDhjZGY5NDYwMzcxZWRlMWVhZTczNWFmMDNmMjE0MzEyMzlkNWNkNTdjYzBjYzg4ZmIzOTY1ZDE4N2ViYTk4MzU5NDA5YWFhOTQ0YTdhZjhlODVlMjBiNjdjNDNjODJlNzhmYTk2N2ZjMGQ2MjliY2Q3NDgzZDE3ZGNhYTI1OTE1NTcxYTE1YzNmMGM3MzBlODEwOTUxMzlkNzFhMjg4NThkZDlkODNiNjViZjljOTI3M2E4YTQwYjEyYTJjODcxMDdhNzFmOTg0ODE4ZjdkYzc2NjM3NGQzMWI0YzNhMWQyODRhZGIyYTE3ZjhhYzg1ZGJlM2Y1OGNmNzhiMTRjMGZkY2UwMGE3OWRhZjM0OGFhMDU1NzI5MGVmNWY5ZGQzMDVjMTVmYTczZDQwYzY4MjJiNzVmZGExM2VjNDMiOiIwMTAwMDEiOk1CRURUTFNfTURfU0hBMjI0Ok1CRURUTFNfTURfU0hBMjI0OiJiYjIxZWFkMDE2M2RlNDY4YWIzNTgwYWI1N2M3OTU5Y2MxZGI0MzdkNmYyZjQ3YTg3OGRjMTliYyI6IjZmMjg0MTE2NmE2NDQ3MWQ0ZjBiOGVkMGRiYjdkYjMyMTYxZGExM2IiOiIzNzQyZDhhOTYyN2UyZTEwMTQ1YzMxYTM1NDg5NzdmODdmODAxOWIxZDkwOTNjNDJmODA2YzhkZjVlZjdmYWQ4MzMwZTJhMDU4NDZjMzQ2Y2I2NGQ5ZThhZjJjZDM4MDZlYjBkZjQwY2QwOTdiM2Y4ODQxNTI1Nzg2ZWQ1Mzc0NjQ5OGFhNTY1Zjg5NDVjZjU1ZTI0OTQ0ZThlM2Q4NmViMjE5ZjY1YzMzODVlMWU3ZDQ1ZmUzYTQwMzc3M2YzMDU3YmYyMjgzOWQ1OTAzY2Q2NGM5NWE0MTdjMDBiNDI5ZWUwNjhmMGZlOGVjMTczMDVhMTIyOTc5Y2FiZWU4YzNhZDMxYjU5N2RhN2M3MWZhMWRiM2RhODQyZjdmNzA0OGY0Mzk2ZTE3NjgxOTdjY2Q4NGM1ZDlhMDQ1MGQ2NmYwYmM4OGRhNzYwNWNjOGNkZmU1MmJjZTYwNzkzNzA0ZGFmZWE1MDQzNDlmZjE0YzQ4MWJlYTczZGQ3NjFjODQ4Mzg3ZDEyZjJkMWI5MjI3YTk1OWZlYzhiOWVlZjBlOTc4MGNiNmE0MjdhZjk0NjU5N2Q3ZTYwNTlhMDdkNTBlODc4ZDdhZTE0ZWVkOGI1NzFhYzg4ZTFjNWQxYTAwZDE2YzBkZTFjNTE0OGVjNTc4MTAzNjY3NmM2MzU1ZTBjYmNhMDYzNDZlZWJhZjZjN2RlOTM4Y2VkZDQ3YTI0NGY5MDhiYTExODliZmJkOTdiZDI2NjdlOGViYTk1ZTAwN2E2NGIxNjVkYmZjNGJmMzU4NzhjZDYwNjczMmZkNDY5ZjkyMmVjMTQxZTViYzZhN2Q1YzE4NzUyMzNjZmY2MTJkMzM2YzI4NDY2YzI3MTc2NGVmOTRlOWMwN2U3MDE5MjNmMWY2OGYzOWUyZjAwMzQ4N2RiZTQxZDU1MDU4NjJlYjRlOTA0MDJlNTBmN2IzY2I5MThlZjNlZmY4OTNkMGYwMGIyMDNlMmE1MTFjZmVhNGNhNTRjMDQzZWQwNTk4ZDAyMmM5NDdjYWQ1MTI5ZmM0N2Y1ZTc5ZGI5N2EwZWVhNWFmZDdiYjgwMWEzNjdhN2JiOGQ5MjlkZTFjMTJhNTQ4NjVlMWUxODNlZDkyNmJiOGRhOWQ0NTRjN2E1MmIzMGNmY2ZlOWVkMzQ3OTc5OTI3NmY0YTY1YjMwZjQzMGU2MWZjZjUyMGU0NmU0ZWI5YmVhNTliYTA2NGU3YzljNzJjOWI1OGJmNGZmNjMzODk3ZDNlYTQ2ZDk4OWNlYzMxY2U0ZmMzMmU0NmU1YTNkMTgwNWMzNWEzMGIzODdmYjc3YWZlMjBkYmExOWJlMzcyNTJlNDBiMjUyZDM0NmI2OWQzY2YyIjoyMDowCiAKIFJTQVNTQS1QU1MgU2lnbmF0dXJlIFJTQS00MDk2LCBTSEEtMjU2LCBTYWx0IExlbmd0aCAyMAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHBrY3MxX3JzYXNzYV9wc3Nfc2lnbjo0MDk2OiJmMDAxMDJkMjk5OTBmYjM2YmY2NmRjYWI1N2ZhNGUwNTc0NWUzMDdjMDMxZmU2YWNiODZkZjRlMDQ4N2JjYjhmZDkyOWUyMjdiNmUxMDkwYTQ4YmVmYmQ2NDJmNDMyZWExYjZjZmYyNmMxYWVkOWYxOGMwNGY2ODE3MGRjMTg1Nzc4NmZhYTA4NmZhMDBiNDNlMDI3MmExMDQyZWU1MzU2NmNiYjQ4YTA0ZjEwOTQyMGUzNTAxY2Y1NjIyMmY3YTliNTFhN2ZmZTJiOTdhOGVhNzFlNzkxZTBiZmIyNTk1MTRmOTUzNDczMTMwZGJlNDFhNzk3OGZjMzg1MTUwZjhmNzg3NDhiOTA1MzhjODkwNmUyNDc1OWNlMjEwNmVkZTRhYzQwZWIyNjc3NmNmZjVhYmYyMjc2NzM0MDdkMDkxMGE5YzNmNjQ2NGQ0ODU2OWYxYjhmYWE2MmQwYjNiNzE1NmIwNTk0NDFlMWY3MDE3NTEzMzlmYThkZmQyMThjMzQzMDUwZThhODgyOTNiNmJlMDQwN2FiMjUzNDgxNWVlZTc0MmM1NzRjYmI3NDY5OTk4YjIzNDM5YTIzY2E0MTA0ZjU2Mzg4M2Y1YTM1YWI4OGQ3ODlkY2JhNDA3M2FlYmYyZTE4NTVhYmI4Mzk5MDg4NzRjMWExMGYxNTBkNTZiNyI6ImRkYTQ0OTFiNTZiZGFkMjBmMDMyYzhhNjFiYzMyNjk5NWVlNzM1M2MzZjFiNGMxZTY3N2FlYjRiMDI4ZTQ1YmY2NTY2ZmIyMGYzZTgyYmFjNDE2OWE5NzA3ODdiOGNiYWZiMDZlZGQyNGE5YmViZTUyNzA0ZjI0MmY3MjAzZWM5NmFlZTlhOWY1ZWU3NmUyNzAxOTFmODJlMzY1MWRhNjYzYjgwZDUxNjg4YzJkNDBmZmE5MzJjZTIzMDIzMjI1MDM2NjRhZTAyNjA2MTdlN2I3OWQxM2U0YTFkZWMxNzg0NjQ3ZDc1NzFjMTM5MGU4NjI5NGYyMDkzNzc0MGY5M2UwZmYxYmRiMGMxZmY2NDhlZjE1MjAyMmJmNWY1NGJmY2JmMjQ1NjRjYmNhN2ExMzBmYjVmNTZiZTkyMWZjYzdhM2ViZDUxMTE0OTY4Mjc0YWIxM2JjYzM5ODYxMzdlYjY5NDllZmYwZDQyYjU5NmY3YmFlYzU2Yzk0YTY3YTJlYzBhZWZmMThkYzA0NGNmOTUwMGI1MjVkYzk4ZWZiOTk5MmIxM2Y4MWUxYjBiZjRjMmFjMWRhOTFlNjdjMDg0N2NiZGFmMjY4Y2VkNTQ5YzJmZWJkMDhiNjYxMTQwYWY5YmY0NTQ1OGQxM2Q0NzE3ZWI2MWRlODZiNTU1ODU2YWQ1IjoiY2ZjYWU0OWY4OGI4MGRjMTIxODZkNTNjNTcxNjJkYmVjYmE2ZTM0ODA5NGY5ZmIzNzQzZTM5ZDk5ZDUzNTVkODdlM2VmY2E5ZDQ4OGQzOWQ3MDU2NzFlNTg2MzQzMDljYmQ3Y2Y1M2ZjY2Q1MmQ5YTg0ZWRiOTlmZmRhZDA2ODBlOWVjODI2ZDYyNTcyODM3MDcxN2IzOTMyMWM3ZDRiNjg4Mjc4NWNmNjg4NDI3NWY2YzdiNmQ2ODFiZmE3MTA1OTM2NzllOTliNjdkNWJjMjgxMjFkZDYwMzYxN2RjOGNmZGIyNTU3YzJhMDQ1MzM4OTNmNTkzZjBmN2U1OWNiZTZkNDY2MjNkMjI2NDJhNzE2MWE0YzY4NWIyOTNjN2VkY2M5YWFlYzQ4ZTM4MTBlYzc0YTg4NGE0MTEwODYxMGQwMDBiNTkxZmJmNWRhNDRiNTUwMWU2Mzc4MTI2NGVkZjNjNzM3MDYzMjFlY2Y0NGQwZTE0YjU5MzJhMmQ2OWNhM2QxODBjNWNlZTg2YjRjY2FkODUwYzc2NmUwYmViNWYyMGU2YjE0MjA1NWQ1NTFhZWI0NTNiZDA5OWVhYzY3ZWI5MmNmMTNlMzRlZjBkMGUzNGZjNTk5YTZlNWQ0ZDE0Zjc0ZTA4MTkwYzY2YzY2YWQzNDczZGU5YWU4ZjUzZGQyYzFjMGM0MWY0YjRhOGQ0NjkwZjRiNzczNTRjNzZlMDVhYjc2YjdhNmM3YzllZGYwOTU1ZmVlNzk5YTJiYjQyYzg2YzZhMDY2MzEzOThkMzhjY2ViNzFlYzlhYWE5YTBmYjgzODUwZjYyMzQyZjNmNzgxZjlkNDUzMjI5YjFhNzA5YmJjZTgzYTQ0YzIyNWViZmZkNGY1MThmOTRhNzkzNWY0NjY5ZjY1ZDAyZmYzZGVmYmJkMWQ1ZWZkOTE5MTM2NTgwOGNkZjk0NjAzNzFlZGUxZWFlNzM1YWYwM2YyMTQzMTIzOWQ1Y2Q1N2NjMGNjODhmYjM5NjVkMTg3ZWJhOTgzNTk0MDlhYWE5NDRhN2FmOGU4NWUyMGI2N2M0M2M4MmU3OGZhOTY3ZmMwZDYyOWJjZDc0ODNkMTdkY2FhMjU5MTU1NzFhMTVjM2YwYzczMGU4MTA5NTEzOWQ3MWEyODg1OGRkOWQ4M2I2NWJmOWM5MjczYThhNDBiMTJhMmM4NzEwN2E3MWY5ODQ4MThmN2RjNzY2Mzc0ZDMxYjRjM2ExZDI4NGFkYjJhMTdmOGFjODVkYmUzZjU4Y2Y3OGIxNGMwZmRjZTAwYTc5ZGFmMzQ4YWEwNTU3MjkwZWY1ZjlkZDMwNWMxNWZhNzNkNDBjNjgyMmI3NWZkYTEzZWM0MyI6IjAxMDAwMSI6TUJFRFRMU19NRF9TSEEyNTY6TUJFRFRMU19NRF9TSEEyNTY6IjQ4MGFhOTZlNGIzYTcxMGQ5OTI0YTg0OTk4ZTQ2YjcyNDZlMjY2NzFlN2QxMWVmYTZjNmVjMzQ5MTllYWM5NjMiOiI2ZjI4NDExNjZhNjQ0NzFkNGYwYjhlZDBkYmI3ZGIzMjE2MWRhMTNiIjoiMmU1MTJmNzNkMTk4ZTYyM2FmZTAxOWJkNGNlYTkxOTJmZjhiMjRhYjU1NTA5OWQzMWJkNTJkNzA1ZmM4MDgyMjlhMjY5YmY3NDljODA2MWEzZGM3ZmZhZTllZjdjNmJkY2Q4YzM0OTEwZjkyZjBhMGZjZDZkNzMwMTdjYTMzODhjYTVlOTlhMTczNWUwMDVmZjVkNWVhZGUzZWMwZWEwYzI0MzZmMGU3OGIxOTdjMmQ5OTliYTQzNTFiOWUzN2EwOTE5NTUwNGI2M2E0Mjc2MmJlYTIyZDMwN2EwMzI4ZmM5YzgwYWNkYzI4ZmM4ZjQwNTBlMjVmYmQ1ODkwMjMzMDI4Zjk3ZWEzYTI2NjlmZjRkNWY0MjMyYzFlNDg1NzE0OTlhZjI4ZWQ2ZjVhOTJlNzkzNmRlMzlkOTEzZTEyYzVjZWY1MWUyNWY5MGExZTkwM2YzZjYwYTZhOWNkZGJjNTY1NjRiMTQ2YWNhNmFmNjIzNmI4OTljMmNiNzIyM2E2OTQxZjBiZWFhM2FhNzg3YjIzMzNlNGYzZTY2YjMzNGI5OWI5MDgyNTE1M2ViZDAwOTVmMjc2OTE4ODBmNDRlNGU3NzEzNWYyNmRmMzc2ZTI2MWFkZmUwZDgzNTRjZmExNWI0OTEzOGQ2MjRkOWY2MmE5NzUxMjIxZWUwNTk4MDk3ODkxYzk4NjRhZDM2NTFlODk3MjNiYzllYzYwODZmNTcxZTE5OTYxOWNlYjY3MjBhYjVhNDk5ODI1NGNiODA3ZGNlNzVhNWE1MjAzZDM4YTlmNWQ1NmFkZWU0MjM5ZmY1MGNlZmUzZTkyN2ViYTkxZGU3ZTFmOGUxYWU4YjA1MDVjMDc3Nzg4MzcyYWY3ZDhlZjAwNzM1Y2M1MzFmZDQ2ZGJlODY3MDJhYzQ5MTcxZjBhOTIxZjQ2MjY0NDJhZTk2MGU5NzJhNTU5NGVlM2JjYmZiZjY4N2NkOTZlZDMwMGFhOWRmMWI5NDg3NjA3YjViYWUwZjFhYmVjYmMxZDIyOTFmZTkzYjlmOGEwOTFmZmFjODQ2OWIwZjAwYmE1NjFmMDYyOGY1ZTAwNGVkMWZkODcxMzY1MGUxNDdjNGIyY2FiN2Y0ZDY5YTRhZDU3YjE0NWMxZTVlNGMxNDEyZTg2ZmJiZGE1YTYwOTZmNjYyOTMyMDMyMDdlMzUwOThiZjk0ZGFmZmY3NWVkMDk0ZDEwZTYwMzRjZDIyMTc5ZDk0NjU1MDA0ZmE0YmY0ZGU3NzQ4MDdiNmY1Y2QyN2Q5MDI1NTQ2OGNmMDFkYjdiNmY4MjYwN2RmNTk3ZjcyZDFmOWM5YzkxZDE3NzQwYTE0YTQ4MTZhZTY1ZTYzZmRlNDgwZCI6MjA6MAogCiBSU0FTU0EtUFNTIFNpZ25hdHVyZSBSU0EtNDA5NiwgU0hBLTM4NCwgU2FsdCBMZW5ndGggMjAKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMzg0CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMzg0CiBwa2NzMV9yc2Fzc2FfcHNzX3NpZ246NDA5NjoiZjAwMTAyZDI5OTkwZmIzNmJmNjZkY2FiNTdmYTRlMDU3NDVlMzA3YzAzMWZlNmFjYjg2ZGY0ZTA0ODdiY2I4ZmQ5MjllMjI3YjZlMTA5MGE0OGJlZmJkNjQyZjQzMmVhMWI2Y2ZmMjZjMWFlZDlmMThjMDRmNjgxNzBkYzE4NTc3ODZmYWEwODZmYTAwYjQzZTAyNzJhMTA0MmVlNTM1NjZjYmI0OGEwNGYxMDk0MjBlMzUwMWNmNTYyMjJmN2E5YjUxYTdmZmUyYjk3YThlYTcxZTc5MWUwYmZiMjU5NTE0Zjk1MzQ3MzEzMGRiZTQxYTc5NzhmYzM4NTE1MGY4Zjc4NzQ4YjkwNTM4Yzg5MDZlMjQ3NTljZTIxMDZlZGU0YWM0MGViMjY3NzZjZmY1YWJmMjI3NjczNDA3ZDA5MTBhOWMzZjY0NjRkNDg1NjlmMWI4ZmFhNjJkMGIzYjcxNTZiMDU5NDQxZTFmNzAxNzUxMzM5ZmE4ZGZkMjE4YzM0MzA1MGU4YTg4MjkzYjZiZTA0MDdhYjI1MzQ4MTVlZWU3NDJjNTc0Y2JiNzQ2OTk5OGIyMzQzOWEyM2NhNDEwNGY1NjM4ODNmNWEzNWFiODhkNzg5ZGNiYTQwNzNhZWJmMmUxODU1YWJiODM5OTA4ODc0YzFhMTBmMTUwZDU2YjciOiJkZGE0NDkxYjU2YmRhZDIwZjAzMmM4YTYxYmMzMjY5OTVlZTczNTNjM2YxYjRjMWU2NzdhZWI0YjAyOGU0NWJmNjU2NmZiMjBmM2U4MmJhYzQxNjlhOTcwNzg3YjhjYmFmYjA2ZWRkMjRhOWJlYmU1MjcwNGYyNDJmNzIwM2VjOTZhZWU5YTlmNWVlNzZlMjcwMTkxZjgyZTM2NTFkYTY2M2I4MGQ1MTY4OGMyZDQwZmZhOTMyY2UyMzAyMzIyNTAzNjY0YWUwMjYwNjE3ZTdiNzlkMTNlNGExZGVjMTc4NDY0N2Q3NTcxYzEzOTBlODYyOTRmMjA5Mzc3NDBmOTNlMGZmMWJkYjBjMWZmNjQ4ZWYxNTIwMjJiZjVmNTRiZmNiZjI0NTY0Y2JjYTdhMTMwZmI1ZjU2YmU5MjFmY2M3YTNlYmQ1MTExNDk2ODI3NGFiMTNiY2MzOTg2MTM3ZWI2OTQ5ZWZmMGQ0MmI1OTZmN2JhZWM1NmM5NGE2N2EyZWMwYWVmZjE4ZGMwNDRjZjk1MDBiNTI1ZGM5OGVmYjk5OTJiMTNmODFlMWIwYmY0YzJhYzFkYTkxZTY3YzA4NDdjYmRhZjI2OGNlZDU0OWMyZmViZDA4YjY2MTE0MGFmOWJmNDU0NThkMTNkNDcxN2ViNjFkZTg2YjU1NTg1NmFkNSI6ImNmY2FlNDlmODhiODBkYzEyMTg2ZDUzYzU3MTYyZGJlY2JhNmUzNDgwOTRmOWZiMzc0M2UzOWQ5OWQ1MzU1ZDg3ZTNlZmNhOWQ0ODhkMzlkNzA1NjcxZTU4NjM0MzA5Y2JkN2NmNTNmY2NkNTJkOWE4NGVkYjk5ZmZkYWQwNjgwZTllYzgyNmQ2MjU3MjgzNzA3MTdiMzkzMjFjN2Q0YjY4ODI3ODVjZjY4ODQyNzVmNmM3YjZkNjgxYmZhNzEwNTkzNjc5ZTk5YjY3ZDViYzI4MTIxZGQ2MDM2MTdkYzhjZmRiMjU1N2MyYTA0NTMzODkzZjU5M2YwZjdlNTljYmU2ZDQ2NjIzZDIyNjQyYTcxNjFhNGM2ODViMjkzYzdlZGNjOWFhZWM0OGUzODEwZWM3NGE4ODRhNDExMDg2MTBkMDAwYjU5MWZiZjVkYTQ0YjU1MDFlNjM3ODEyNjRlZGYzYzczNzA2MzIxZWNmNDRkMGUxNGI1OTMyYTJkNjljYTNkMTgwYzVjZWU4NmI0Y2NhZDg1MGM3NjZlMGJlYjVmMjBlNmIxNDIwNTVkNTUxYWViNDUzYmQwOTllYWM2N2ViOTJjZjEzZTM0ZWYwZDBlMzRmYzU5OWE2ZTVkNGQxNGY3NGUwODE5MGM2NmM2NmFkMzQ3M2RlOWFlOGY1M2RkMmMxYzBjNDFmNGI0YThkNDY5MGY0Yjc3MzU0Yzc2ZTA1YWI3NmI3YTZjN2M5ZWRmMDk1NWZlZTc5OWEyYmI0MmM4NmM2YTA2NjMxMzk4ZDM4Y2NlYjcxZWM5YWFhOWEwZmI4Mzg1MGY2MjM0MmYzZjc4MWY5ZDQ1MzIyOWIxYTcwOWJiY2U4M2E0NGMyMjVlYmZmZDRmNTE4Zjk0YTc5MzVmNDY2OWY2NWQwMmZmM2RlZmJiZDFkNWVmZDkxOTEzNjU4MDhjZGY5NDYwMzcxZWRlMWVhZTczNWFmMDNmMjE0MzEyMzlkNWNkNTdjYzBjYzg4ZmIzOTY1ZDE4N2ViYTk4MzU5NDA5YWFhOTQ0YTdhZjhlODVlMjBiNjdjNDNjODJlNzhmYTk2N2ZjMGQ2MjliY2Q3NDgzZDE3ZGNhYTI1OTE1NTcxYTE1YzNmMGM3MzBlODEwOTUxMzlkNzFhMjg4NThkZDlkODNiNjViZjljOTI3M2E4YTQwYjEyYTJjODcxMDdhNzFmOTg0ODE4ZjdkYzc2NjM3NGQzMWI0YzNhMWQyODRhZGIyYTE3ZjhhYzg1ZGJlM2Y1OGNmNzhiMTRjMGZkY2UwMGE3OWRhZjM0OGFhMDU1NzI5MGVmNWY5ZGQzMDVjMTVmYTczZDQwYzY4MjJiNzVmZGExM2VjNDMiOiIwMTAwMDEiOk1CRURUTFNfTURfU0hBMzg0Ok1CRURUTFNfTURfU0hBMzg0OiJjNmU0ODgxZTNmNzYzOTRhNmQ4Y2ZiMTc4NmUxNzU3Zjc4ZDY2Y2YwNDhiYTFhOGFhYWEyOGJlMDI0MzAwOTdlMzBkOTJlNDU5MjU3ZjhmNTcxYzYzODlkMWQ5NGIwZDUiOiI2ZjI4NDExNjZhNjQ0NzFkNGYwYjhlZDBkYmI3ZGIzMjE2MWRhMTNiIjoiMzY0YWQxMDZkYTJjZWM2Y2U5NGUxNDFlMTZhZjg1NWY2ZDZlMzFhYzZkN2JkYjI2NDk2OTU2NDVhM2Q3ZjE3NmE5YjU1ZjYwYjg2MTc3NmQ0OTA3N2RjZmRhNGRiNDJiYjU4NDc2NzYwNmY5MGRlNzI4OWU3MWYxODhmZjEzOWIxMzhiYmQyNGY3YTdmNTAxOTJhMTM3ZjJjNjQ4ZTE5ZmU3OGE4MzZiZDJhMDFkMzFiMjQ4ODU3Y2QyOWRiZjNkMTI1MWMyZDRjYjMzOWYyZmY3OGFkZDI2MzA0ZmJjM2U0NGY4YTJmMDRiNDdkYzc1NGI5ODQxNjlmYmE0YTA5MWQ3MGY5NTYwNzQ4ODBjNzA5ZWU4NDlhMDVmOGYyZGNmZmVlMDliMjIxMDc4ZTk4YjZlMjhhOTY1YTJkNDRmY2RlNzJjNmIyN2ZmMGEzZGVmODE4ZDgwYWFiYTE3OTE1ZDM3YWQxZDcyNzU1NTQ4MzEwMDYyZTczZGExNWE4ZDI1NDRiMzExMDYwYjQwNDY4M2MwMDM5NDY2NmRjM2E4OTBmNjBlYzlkODViMmQwZmNhOGE3NmZjOTZjNGNmZDBlM2M0YTgzNTk0OTU3YmFjNDI4NjZjMzk1ZjhmZWFiM2I0MGM5YmM5YTY3NWY0N2ExY2Q2MmZjNDNlYmUwZmZmMmJiZDIzOTEzMGJiYmU1MjU3YzVjMzc1NjA0NGViMjE5MGRiN2EzMDljZGRjNGVmNDEwZTlhYmNjZDBmOTMxNThlMGVkZmFiMmYwYTUwZTgwZDgxNGE0MjhmNjFjNTMxYjJiNzQ3ZTY0ZmViNDE1MjNjNTgwMmE1M2MzNzRmMzVkZjIxYWJlNjdhODc3ZDA2MmY1NmEwMDFiNDdlZTZhYjU3MWIwYmJlNzE0MWUwYjQ5Y2ZkYzk3YTE1ZGMxOTEzODg2M2QxNDBjYzc3MjA3NGMxMmIzZDc1MTk4NWI3ODUyZmU3NjkzMmJlMWY0NGExNjVmNGZlNThhMzQxZDI4YzNmODY5MjRkZWZhYjRjZjI0NThiYTRjYzNmYjkyNTU4NTExY2VlZTZkOTFjNjcyYjI0Yjg3MjdiODY3MTMyYmY2YjhkN2FmNzE0YWI2NjhmMDZmMDQ2NDQ4YzFlODU0YWU5OGU1OWNmMjFmMmI3MzcwYzkzNzhlZTBlYjM0YjAzMWY5ZjQ3OTUwNTc1NTc3NzNhZjBmN2ZjMThkZGVlYzdlOTVjMmNjZGQ1ZjY2ZWQyMjRkMDhmYmRmYjM3OTk1ZTg3ZjRkZjk2OTFlNDk5ZDc3YWZhYThkNWI5M2YzMjc1YzQzZjY5ZWRiZTM3NjcyY2YxOTJmOTQ1MDlkZjBhNGU5YiI6MjA6MAogCiBSU0FTU0EtUFNTIFNpZ25hdHVyZSBSU0EtNDA5NiwgU0hBLTUxMiwgU2FsdCBMZW5ndGggMjAKQEAgLTEyMTUsMTEgKzEyMTUsMTEgQEAKIHBrY3MxX3JzYXNzYV9wc3Nfc2lnbjo0MDk2OiJmMDAxMDJkMjk5OTBmYjM2YmY2NmRjYWI1N2ZhNGUwNTc0NWUzMDdjMDMxZmU2YWNiODZkZjRlMDQ4N2JjYjhmZDkyOWUyMjdiNmUxMDkwYTQ4YmVmYmQ2NDJmNDMyZWExYjZjZmYyNmMxYWVkOWYxOGMwNGY2ODE3MGRjMTg1Nzc4NmZhYTA4NmZhMDBiNDNlMDI3MmExMDQyZWU1MzU2NmNiYjQ4YTA0ZjEwOTQyMGUzNTAxY2Y1NjIyMmY3YTliNTFhN2ZmZTJiOTdhOGVhNzFlNzkxZTBiZmIyNTk1MTRmOTUzNDczMTMwZGJlNDFhNzk3OGZjMzg1MTUwZjhmNzg3NDhiOTA1MzhjODkwNmUyNDc1OWNlMjEwNmVkZTRhYzQwZWIyNjc3NmNmZjVhYmYyMjc2NzM0MDdkMDkxMGE5YzNmNjQ2NGQ0ODU2OWYxYjhmYWE2MmQwYjNiNzE1NmIwNTk0NDFlMWY3MDE3NTEzMzlmYThkZmQyMThjMzQzMDUwZThhODgyOTNiNmJlMDQwN2FiMjUzNDgxNWVlZTc0MmM1NzRjYmI3NDY5OTk4YjIzNDM5YTIzY2E0MTA0ZjU2Mzg4M2Y1YTM1YWI4OGQ3ODlkY2JhNDA3M2FlYmYyZTE4NTVhYmI4Mzk5MDg4NzRjMWExMGYxNTBkNTZiNyI6ImRkYTQ0OTFiNTZiZGFkMjBmMDMyYzhhNjFiYzMyNjk5NWVlNzM1M2MzZjFiNGMxZTY3N2FlYjRiMDI4ZTQ1YmY2NTY2ZmIyMGYzZTgyYmFjNDE2OWE5NzA3ODdiOGNiYWZiMDZlZGQyNGE5YmViZTUyNzA0ZjI0MmY3MjAzZWM5NmFlZTlhOWY1ZWU3NmUyNzAxOTFmODJlMzY1MWRhNjYzYjgwZDUxNjg4YzJkNDBmZmE5MzJjZTIzMDIzMjI1MDM2NjRhZTAyNjA2MTdlN2I3OWQxM2U0YTFkZWMxNzg0NjQ3ZDc1NzFjMTM5MGU4NjI5NGYyMDkzNzc0MGY5M2UwZmYxYmRiMGMxZmY2NDhlZjE1MjAyMmJmNWY1NGJmY2JmMjQ1NjRjYmNhN2ExMzBmYjVmNTZiZTkyMWZjYzdhM2ViZDUxMTE0OTY4Mjc0YWIxM2JjYzM5ODYxMzdlYjY5NDllZmYwZDQyYjU5NmY3YmFlYzU2Yzk0YTY3YTJlYzBhZWZmMThkYzA0NGNmOTUwMGI1MjVkYzk4ZWZiOTk5MmIxM2Y4MWUxYjBiZjRjMmFjMWRhOTFlNjdjMDg0N2NiZGFmMjY4Y2VkNTQ5YzJmZWJkMDhiNjYxMTQwYWY5YmY0NTQ1OGQxM2Q0NzE3ZWI2MWRlODZiNTU1ODU2YWQ1IjoiY2ZjYWU0OWY4OGI4MGRjMTIxODZkNTNjNTcxNjJkYmVjYmE2ZTM0ODA5NGY5ZmIzNzQzZTM5ZDk5ZDUzNTVkODdlM2VmY2E5ZDQ4OGQzOWQ3MDU2NzFlNTg2MzQzMDljYmQ3Y2Y1M2ZjY2Q1MmQ5YTg0ZWRiOTlmZmRhZDA2ODBlOWVjODI2ZDYyNTcyODM3MDcxN2IzOTMyMWM3ZDRiNjg4Mjc4NWNmNjg4NDI3NWY2YzdiNmQ2ODFiZmE3MTA1OTM2NzllOTliNjdkNWJjMjgxMjFkZDYwMzYxN2RjOGNmZGIyNTU3YzJhMDQ1MzM4OTNmNTkzZjBmN2U1OWNiZTZkNDY2MjNkMjI2NDJhNzE2MWE0YzY4NWIyOTNjN2VkY2M5YWFlYzQ4ZTM4MTBlYzc0YTg4NGE0MTEwODYxMGQwMDBiNTkxZmJmNWRhNDRiNTUwMWU2Mzc4MTI2NGVkZjNjNzM3MDYzMjFlY2Y0NGQwZTE0YjU5MzJhMmQ2OWNhM2QxODBjNWNlZTg2YjRjY2FkODUwYzc2NmUwYmViNWYyMGU2YjE0MjA1NWQ1NTFhZWI0NTNiZDA5OWVhYzY3ZWI5MmNmMTNlMzRlZjBkMGUzNGZjNTk5YTZlNWQ0ZDE0Zjc0ZTA4MTkwYzY2YzY2YWQzNDczZGU5YWU4ZjUzZGQyYzFjMGM0MWY0YjRhOGQ0NjkwZjRiNzczNTRjNzZlMDVhYjc2YjdhNmM3YzllZGYwOTU1ZmVlNzk5YTJiYjQyYzg2YzZhMDY2MzEzOThkMzhjY2ViNzFlYzlhYWE5YTBmYjgzODUwZjYyMzQyZjNmNzgxZjlkNDUzMjI5YjFhNzA5YmJjZTgzYTQ0YzIyNWViZmZkNGY1MThmOTRhNzkzNWY0NjY5ZjY1ZDAyZmYzZGVmYmJkMWQ1ZWZkOTE5MTM2NTgwOGNkZjk0NjAzNzFlZGUxZWFlNzM1YWYwM2YyMTQzMTIzOWQ1Y2Q1N2NjMGNjODhmYjM5NjVkMTg3ZWJhOTgzNTk0MDlhYWE5NDRhN2FmOGU4NWUyMGI2N2M0M2M4MmU3OGZhOTY3ZmMwZDYyOWJjZDc0ODNkMTdkY2FhMjU5MTU1NzFhMTVjM2YwYzczMGU4MTA5NTEzOWQ3MWEyODg1OGRkOWQ4M2I2NWJmOWM5MjczYThhNDBiMTJhMmM4NzEwN2E3MWY5ODQ4MThmN2RjNzY2Mzc0ZDMxYjRjM2ExZDI4NGFkYjJhMTdmOGFjODVkYmUzZjU4Y2Y3OGIxNGMwZmRjZTAwYTc5ZGFmMzQ4YWEwNTU3MjkwZWY1ZjlkZDMwNWMxNWZhNzNkNDBjNjgyMmI3NWZkYTEzZWM0MyI6IjAxMDAwMSI6TUJFRFRMU19NRF9TSEE1MTI6TUJFRFRMU19NRF9TSEE1MTI6ImViYmNhMjZmYjE4ZGE2MjI2Y2M0N2RlYTE0YzU3ZDlmM2M5MzVjYjQ0OTQ2MmNjOTQ0NjY4OTU3NzAzMWViYzkxNWZkZDA5Y2RiNzlkNDcwM2E1M2ViNWRkNDQ3ODUyZjNiYzcyZjk3NDQ4N2ZmYjk5OGNiZTk5NmQyMDZjODBjIjoiNmYyODQxMTY2YTY0NDcxZDRmMGI4ZWQwZGJiN2RiMzIxNjFkYTEzYiI6IjZlZGZiNmJmYjIwZGEyNjIxZTdjYTBiOGUxM2JmYzM4MDFkOGJjYjQzZWYzODIyYmU5NjBiOTZhNjdkM2U4YWZiYmUyZWYyMmUyMDZiMzI4Y2U5OWRkOGY5NzU4MDUyZDQyYThlZTkzZTE2ZDhlMTYwYTUwNjg3ZThmZmNlNzJkMjU4NjEwMDY0ZWJkZTRjNGNjMmFiOTZjOGU1MTZlYzJjMWVlZDgxNmM4ZTZhYzUzN2EwNTcwYzllZmY4MWEzODE0N2JjZDhmNDc0NzM5MDY3NmY5ZDc1NWY2MTM2ODdhYzU5ZGJhYzE0ZjY5Y2E2ZTU2YTI2NzI3Njk5ZmExMWMyMDBlYjc3MzM5ZWFkNTZmYzY4ODNhY2Y5YjkyYzZkZWI2ZjRkNzlmODJjY2RjNDkzZmVkYzYxNjVmNzhjMTc0YWRjZjMyOTQxZWViMjM3YTRhZTM2OWRiYmFmYjQ1NTNjOThlNDEzODIzZjZmNDZkYTBkNDdkNDdhMTY0Yjc5MmFhZjEzMjRhOGJlNGYwMTYwMWJjZWI4MDlmOGMwOGYzNDU4YjFkZTJjNjM3OGNmOTNmYjI5MzIxMmY2YmQ0YTdiMWZkMWJmYTE0YTFhZjI5NTc1YTVlY2M0MjgxNDIwMTc5NzU4ZTk2YjQ0NjVlYzA3ZjZjY2U0ZTVlNWMyMzA3ZDUzMWU0MDBlNDk0NzI1ZWI3ZGNlYjFkOGRhYzEwMDBkOTJmNjJmMzE5NTM0MDYzYzAxYWVjOWM2ZWMwYzc2NzUzNTFmMjg4M2U0NjJiMDQ1NGRiMzY0ZjAzNzAwZDY1OTNjOWJlMTk1ZmJlYTU4MDBlYmI4MTU3OGM3NjU0MDlhYzJjMzdmNzhmYWJlODc4M2M1ZDMyNGZhNGRmYWJlNGYxOTI4NjZlMzQwMzc5MDE2MTUzMDQyMzdmMDgwMjhhNzVmMDBhMzkwNGJlYTAzMjE5ZWY5ZGJmZWI0OGQxMGVjNTlkNDgxZWIwNDI5Y2ZjOWFlODM1Y2M1NzgzNzdlNjEwMjNkNWNlZWRmZDNkMGEwNWFjZWRkYjI3NGMxMzc4MmRkYTkyOTlkNjE5NzUxOWUxNDc5MTIwOGY4ZDg2ZDYzZTBhYjdmYjQyYTFlMTRmOGYzN2Y0OTczMmUyM2Q0YjdkNGYwN2NkMGJjODI4NjQ5YTEyNzQ4ZThkNzBmNTM2ODM1ODBiY2E4NzI5MDk5MmEzNDk3MzAzNzBiYmVkNmVkNzQzZTcwNTc1OTczNDg3MmM1NGZmMDNjMWE5NzAzN2E3YjllZTNjOGM0MmQxMmMzZWJlMGMxYmYzYjQyODU0ZDA0YTkxNzdkMWEyNDAwMGJkMzg4ZmEyODlmZDc3ZDUiOjIwOjAKIAogUlNBU1NBLVBTUyBTaWduYXR1cmUgUlNBLTIwNDgsIFNIQS0yMjQsIFNhbHQgTGVuZ3RoIDE1Ci1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTIyNAorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzIyNAogcGtjczFfcnNhc3NhX3Bzc19zaWduOjIwNDg6ImUyOGRhMWFhMjUwMzkwYmM4ZmQyN2Q2ZjYwMTgzMGZlYmJkZDVhMzA5YmNkNWQxZDNjZWJkYTExMTExMDg1MTU2M2QxZmI0ZDE0MWU4MTI5YmYyNTcyMWFhMTQ0YjEwNGI3YzVhZGJiODU0MGYwMmE3NDAyNzg4YWU3MmM5M2M5ZjU5ZDZkMWJjZjE1NDFjMzM1NGI1Y2QzZGNiOTFlMzVlZDEwMGQ3ODg1N2NmMmFiNmVkMDRiMmRjMWNjODFmYTEzMDdiYjE4YzYzNWZkYWNmYjdmNjU2ZDBiNDc0M2Q5ZjQ4NzA0OGE4YWFmNWQ1ZWM2ZmQwOWEwMWIyOGQ0YjEiOiJkZWExZmFmMjJiNzYwY2JmYTliYTExYTQ4NmVkZDliOWZhZWUwNGYyMmYxNWFiZmZmNWIyYzA3OWEyYzkzMmNmYTY0MTY2MGRhMTYyMTNhZGZiYmI1NjhlY2JhYWMxODUxMTAzMWY0MjhjZDNhZTRlMGJmMDE5MjhhMWRiNjM2MDUxMWMyNjUwMWM3YmRhN2JmNGZjNGNjNzkyZDc5ZWZiODZlYzE1YmEyZmM4MmFhNDFiY2UwOGUwODA3ODU5YTQxYjU3ZTllM2YxNTgwNGM4MWJmOGVkMDE3ZGVhNjJlNTM0ODlmOTU1OTQ5NjUxZGRjYjFkYTUyOTc0NjVhYzlmIjoiYzUwNjJiNThkODUzOWM3NjVlMWU1ZGJhZjE0Y2Y3NWRkNTZjMmUxMzEwNWZlY2ZkMWE5MzBiYmI1OTQ4ZmYzMjhmMTI2YWJlNzc5MzU5Y2E1OWJjYTc1MmMzMDhkMjgxNTczYmM2MTc4YjZjMGZlZjdkYzQ0NWU0ZjgyNjQzMDQzN2I5ZjlkNzkwNTgxZGU1NzQ5YzJjYjljYjI2ZDQyYjJmZWUxNWI2YjI2ZjA5Yzk5NjcwMzM2NDIzYjg2YmM1YmVjNzExMTMxNTdiZTJkOTQ0ZDdmZjNlZWJmZmIyODQxMzE0M2VhMzY3NTVkYjBhZTYyZmY1YjcyNGVlY2IzZDMxNmI2YmFjNjdlODljYWNkODE3MTkzN2UyYWIxOWJkMzUzYTg5YWNlYThjMzZmODFjODlhNjIwZDVmZDJlZmZlYTg5NjYwMWM3ZjlkYWNhN2YwMzNmNjM1YTNhOTQzMzMxZDFiMWI0ZjUyODg3OTBiNTNhZjM1MmYxMTIxY2ExYmVmMjA1ZjQwZGMwMTJjNDEyYjQwYmRkMjc1ODViOTQ2NDY2ZDc1ZjdlZTBhN2Y5ZDU0OWI0YmVjZTZmNDNhYzNlZTY1ZmU3ZmQzNzEyMzM1OWQ5ZjFhODUwYWQ0NTBhYWY1Yzk0ZWIxMWRlYTNmYzBmYzZlOTg1NmIxODA1ZWYiOiI4NmM5NGYiOk1CRURUTFNfTURfU0hBMjI0Ok1CRURUTFNfTURfU0hBMjI0OiIzYmU0Mzk3Yzk0NjdlYzkwZjVkNTY0MDgzNGY2ZTlmZWJlZTRjZTI0NzdhYTNmMzg1Y2FiOTQzNSI6IjQ2MzcyOWIzZWFmNDM1MDJkOWNmZjEyOTkyNTY4MSI6IjdlNjI4YmNiZTZmZjgzYTkzN2I4OTYxMTk3ZDhiZGJiMzIyODE4YWE4YmRmMzBjZGZiNjdjYTZiZjAyNWVmNmYwOWE5OWRiYTRjM2VlMjgwN2QwYjdjNzc3NzZjZmVmZjMzYjY4ZDdlM2ZhODU5YzQ2ODg2MjZiMjQ0MTg5N2QyNmU1ZDZiNTU5ZGQ3MmE1OTZlN2RhZDdkZWY5Mjc4NDE5ZGIzNzVmN2M2N2NlZTA3NDAzOTQ1MDIyMTJlYmRkNGE2YzhkM2FmNmVlMmZkNjk2ZDg1MjNkZTY5MDg0OTJiN2NiZjIyNTRmMTVhMzQ4OTU2YzE5ODQwZGMxNWEzZDczMmVmODYyYjYyZWRlMDIyMjkwZGUzYWYxMWNhNWU3OWEzMzkyZmZmMDZmNzVhY2E4Yzg4YTJkZTE4NThiMzVhMjE2ZDhmNzNmZDcwZTlkNjc5NThlZDM5YTZmODk3NmZiOTRlYzZlNjFmMjM4YTUyZjlkNDIyNDFlODM1NGY4OWUzZWNlOTRkNmZhNWJmYmJhMWVlYjcwZTE2OThiZmYzMWE2ODVmYmU3OTlmYjQ0ZWZlMjEzMzhlZDZlZWEyMTI5MTU1YWFiYzA5NDNiYzlmNjlhOGU1ODg5N2RiNmE4YWJjYzI4NzlkNWQwYzVkM2U2ZGM1ZWI0OGNmMTZkYWM4IjoxNTowCiAKIFJTQVNTQS1QU1MgU2lnbmF0dXJlIFJTQS0yMDQ4LCBTSEEtMzg0LCBTYWx0IExlbmd0aCAyNQotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEzODQKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8zODQKIHBrY3MxX3JzYXNzYV9wc3Nfc2lnbjoyMDQ4OiJlMjhkYTFhYTI1MDM5MGJjOGZkMjdkNmY2MDE4MzBmZWJiZGQ1YTMwOWJjZDVkMWQzY2ViZGExMTExMTA4NTE1NjNkMWZiNGQxNDFlODEyOWJmMjU3MjFhYTE0NGIxMDRiN2M1YWRiYjg1NDBmMDJhNzQwMjc4OGFlNzJjOTNjOWY1OWQ2ZDFiY2YxNTQxYzMzNTRiNWNkM2RjYjkxZTM1ZWQxMDBkNzg4NTdjZjJhYjZlZDA0YjJkYzFjYzgxZmExMzA3YmIxOGM2MzVmZGFjZmI3ZjY1NmQwYjQ3NDNkOWY0ODcwNDhhOGFhZjVkNWVjNmZkMDlhMDFiMjhkNGIxIjoiZGVhMWZhZjIyYjc2MGNiZmE5YmExMWE0ODZlZGQ5YjlmYWVlMDRmMjJmMTVhYmZmZjViMmMwNzlhMmM5MzJjZmE2NDE2NjBkYTE2MjEzYWRmYmJiNTY4ZWNiYWFjMTg1MTEwMzFmNDI4Y2QzYWU0ZTBiZjAxOTI4YTFkYjYzNjA1MTFjMjY1MDFjN2JkYTdiZjRmYzRjYzc5MmQ3OWVmYjg2ZWMxNWJhMmZjODJhYTQxYmNlMDhlMDgwNzg1OWE0MWI1N2U5ZTNmMTU4MDRjODFiZjhlZDAxN2RlYTYyZTUzNDg5Zjk1NTk0OTY1MWRkY2IxZGE1Mjk3NDY1YWM5ZiI6ImM1MDYyYjU4ZDg1MzljNzY1ZTFlNWRiYWYxNGNmNzVkZDU2YzJlMTMxMDVmZWNmZDFhOTMwYmJiNTk0OGZmMzI4ZjEyNmFiZTc3OTM1OWNhNTliY2E3NTJjMzA4ZDI4MTU3M2JjNjE3OGI2YzBmZWY3ZGM0NDVlNGY4MjY0MzA0MzdiOWY5ZDc5MDU4MWRlNTc0OWMyY2I5Y2IyNmQ0MmIyZmVlMTViNmIyNmYwOWM5OTY3MDMzNjQyM2I4NmJjNWJlYzcxMTEzMTU3YmUyZDk0NGQ3ZmYzZWViZmZiMjg0MTMxNDNlYTM2NzU1ZGIwYWU2MmZmNWI3MjRlZWNiM2QzMTZiNmJhYzY3ZTg5Y2FjZDgxNzE5MzdlMmFiMTliZDM1M2E4OWFjZWE4YzM2ZjgxYzg5YTYyMGQ1ZmQyZWZmZWE4OTY2MDFjN2Y5ZGFjYTdmMDMzZjYzNWEzYTk0MzMzMWQxYjFiNGY1Mjg4NzkwYjUzYWYzNTJmMTEyMWNhMWJlZjIwNWY0MGRjMDEyYzQxMmI0MGJkZDI3NTg1Yjk0NjQ2NmQ3NWY3ZWUwYTdmOWQ1NDliNGJlY2U2ZjQzYWMzZWU2NWZlN2ZkMzcxMjMzNTlkOWYxYTg1MGFkNDUwYWFmNWM5NGViMTFkZWEzZmMwZmM2ZTk4NTZiMTgwNWVmIjoiODZjOTRmIjpNQkVEVExTX01EX1NIQTM4NDpNQkVEVExTX01EX1NIQTM4NDoiMWMzODllZDg0YjlmMjUyYmVkZGU3NmE5YTY5NDk4NmZhMTMwOTA2NjMzMDQ3Njc0YzlhNDRlODg3ZjM1OWUxY2ZjMTlkMmQ5YTUzYThmZGZiMmY4MjZkODEzY2E3YTU4IjoiYjc1MDU4NzY3MWFmZDc2ODg2ZThmZmI3ODY1ZTc4ZjcwNjY0MWIyZTQyNTFiNDg3MDYiOiIyY2EzN2EzZDZhYmQyOGMxZWFmOWJkZTVlN2FjMTdmMWZhNzk5Y2UxYjRiODk5ZDE5OTg1YzJmZjdjOGJhOTU5ZmU1NGU1YWZiOGJjNDAyMWExZjFjNjg3ZWViYjhjYmE4MDBkMWM1MTYzNmIxZjY4ZGMzZTQ4ZjYzZTJkYTZiYzZkMDljNjY2OGY2OGU1MDhjNWQ4YzE5YmVmMTU0NzU5ZTJmODlhZGUxNTI3MTczNzBhODk0NGY1Mzc1NzgyOTYzODBkMWZlNmJlODA5ZThiMTEzZDJiOWQ4OWU2YTQ2ZjVjMzMzZDRmZDQ4NzcwZmMxZWExYzU0ODEwNDU3NWI4NGNmMDcxMDQyYmZlNWFjZjQ5NjM5MmJlODM1MWE0MWM0NmEyY2FiMDg2NGM0YzFjNWI1ZTBjN2IyN2U3Yjg4YzY5ZjM3ZmZhN2UxYThjZDk4ZjM0M2FjODRhNGFkNjcwMjVhNDBlZDhmNjY0ZTlkNjMwMzM3ZGU2ZTQ4YmIyMTI1ZTI1NTIxMjM2MDk0OTFmMTgzYWZkOTI2MzQ0ODdmMGIyY2Y5NzFmMjYyNmU4ODg1ODg3OWQ0NWEyOWIwZmVmYjY2Y2Q0MWIyZTRlOTY4Mzg1YmQ5ZmM4YzcyMTE5NzZiYzZiZDNlMWFkNmRmNjA4NTY5ODVhODI1ZjQ3MjZkMiI6MjU6MAogCiBSU0FTU0EtUFNTIFNpZ25hdHVyZSBSU0EtMjA0OCwgU0hBLTUxMiwgU2FsdCBMZW5ndGggMzAKQEAgLTEyMzEsMjcgKzEyMzEsMjcgQEAKIHBrY3MxX3JzYXNzYV9wc3Nfc2lnbjozMDcyOiJkZDU1MzY5NmRiOGNjYjEwNzYwOWI4OTE3ZTY4OGJkZDgzNzNhODkyNmJjOWQxMTRjMWM3N2Y3OTU4MDcwZTIzNmNhMWJkMjAyNWRlZDU5YTcxMDkzYjYzYWZiZmNlMzllOTJiZGU5ZmZjYTk4Mzk1OWU3YzNlMThkNzU2NTA2MTIyNThjMjRlZWJiNjFhMWI0YTY4NjAzYTI3MjFlM2UyNDgzZDZkYTI3NDc1YTIyOGIxMzQxYzc4ZjE0MDk0OGI1YzkyMjgyMmNjYWVkNzZkYWUzMzhkZGRlYzFlNGM1YzM0YjljNTNmMzRhMDlmZjBiMmI2MWE2MjI1NGU3M2U2ZjBhYzgwMTNlZGMyY2ZhN2VjYmViODZmY2M3MzA5Y2IwZjViNWVkZGI3MDdhZjRiOTMzN2QzNGQ2NzJhZjQxM2YzYjZlZmQxMWUzYjQ5Yzk3OGYwNmEzNTZmNmY0ZTBlYTUwYTkwNzk3ZmUzMmNjYWE5ODM1NDdmZjE4ZWExNjciOiJjMWUzMDg5ZTFiZWExMTQxNjM4Y2E5MTJkYTAxYzEzNGY2NzIzMWEyZjczN2Q5N2UyODQ4NmUwMDRhNDNlOWM1NTkyZmY5NjhlZTE4MTA5ZmM3MWFhNGMxYTk3YWE4OGVjZTVjNDczNDM1MmJjMGMxZjY3NzI2YmM0YWFjNTljMTkzMDFmMjNhNzA1YmU1YjNmNzgyNWZiMjg0ZTU4YTk1MGQ3OTVmNjNkMThmZTcyMjMxZWFiYTlkNmE1ZjkwODY2ZjhkZDM0YjJiMGRmYzEzMmRiODM0OGVmYTVhNjI2MzRlNTU4NGE3ODhhZWJiZjA3M2NjYjRmM2U5ZjVjZGU4ZDBjMmU4MzE0MTI0ODVjN2Y4Y2YxNDczYWJmZmFiY2M1ZDUxZDhhMmE4N2EyMmYzOWQxYTI1MGIzY2I2NmQ5MGM1NzM2NjkwNzFhZWJhOWIxMDgwZGMwNzkyNDMwOTRhOWFlMGU1YTYyZTRlOGI2NTNjYjU3ZjU0ZjRlZWFmM2QiOiJhN2ExODgyYTdmYjg5Njc4NjAzNGQwN2ZiMWI5ZjYzMjdjMjdiZGQ3Y2U2ZmUzOWMyODVhZTNiNmMzNDI1OWFkYzBkYzRmN2I5YzdkZWMzY2E0YTIwZDM0MDczMzllZWRkN2ExMmE0MjFkYTE4ZjU5NTQ2NzNjYWMyZmYwNTkxNTZlY2M3M2M2ODYxZWM3NjFlNmEwZjJhNWEwMzNhNjc2OGM2YTQyZDhiNDU5ZTFiNDkzMjM0OWU4NGVmZDkyZGY1OWI0NTkzNWYzZDBlMzA4MTdjNjYyMDFhYTk5ZDA3YWUzNmM1ZDc0ZjQwOGQ2OWNjMDhmMDQ0MTUxZmY0OTYwZTUzMTM2MGNiMTkwNzc4MzNhZGY3YmNlNzdlY2ZhYTEzM2MwY2NjNjNjOTNiODU2ODE0NTY5ZTBiOTg4NGVlNTU0MDYxYjlhMjBhYjQ2YzM4MjYzYzA5NGRhZTc5MWFhNjFhMTdmOGQxNmYwZTg1YjdlNWNlM2IwNjdlY2U4OWUyMGJjNGU4ZjFhZTgxNGIyNzZkMjM0ZTA0ZjRlNzY2ZjUwMWRhNzRlYTdlMzgxN2MyNGVhMzVkMDE2Njc2Y2VjZTY1MmI4MjNiMDUxNjI1NTczY2E5Mjc1N2ZjNzIwZDI1NGVjZjFkY2JiZmQyMWQ5ODMwNzU2MWVjYWFiNTQ1NDgwYzdjNTJhZDdlOWZhNmI1OTdmNWZlNTUwNTU5YzJmZTkyMzIwNWFjMTc2MWE5OTczN2NhMDJkN2IxOTgyMmUwMDhhODk2OTM0OWM4N2ZiODc0YzgxNjIwZTM4ZjYxM2M4NTIxZjAzODFmZTViYTU1Yjc0ODI3ZGFkM2UxY2YyYWEyOWM2OTMzNjI5ZjJiMjg2YWQxMWJlODhmYTY0MzZlN2UzZjY0YTc1ZTM1OTUyOTBkYzBkMWNkNWVlZTdhYWFjNTQ5NTljYzUzYmQ1YTkzNGEzNjVlNzJkZDgxYTJiZDRmYjlhNjc4MjFiZmZlZGYyZWYyYmQ5NDkxM2RlOGIiOiIxNDE1YTciOk1CRURUTFNfTURfU0hBNTEyOk1CRURUTFNfTURfU0hBNTEyOiIwOGNjYzlmYTMxNjZjZjY4MTUyNDBlMGRiYjg4NmVhMDU0MjEwZmE5ZmFlYjU3ZDNlZmIwZDMxMGFkOTNhZDY5M2MwNzIxMTg3MmViYzMzYjdhOGU0ZGZlYWM1ZmZhZTBlYzFkMzkzZTc4OTA1YmRmM2JhNjk4NGFmNTkwNGQzYSI6IjJkMGM0OWIyMDc4OWYzOTUwMmVlZmQwOTJhMmI2YTliMjc1N2MxNDU2MTQ3NTY5YTY4NWZjYTQ0OTJhOGQ1YjBlNjIzNDMwODM4NWQzZDYyOTY0NGNhMzdlMzM5OTYxNmMyNjZmMTk5YjY1MjFhOTk4N2IyYmU5ZWU3ODMiOiI4ZjQ3YWJjMjMyNmUyMmNmNjI0MDQ1MDhiNDQyZTgxYWQ0NWFmZmY3Mjc0MDk2YjlhMTNlNDc4Y2RkMGE3MmY5OWE3NmJmNTE3ZjFiYjBmODcyYTUyM2Q4YzU4OGQ0NDAyNTY5ZTk0OGZkNmExMDhhZTFhNDVjNjU4MzA4MjhhMTBlOTRkNDMyNzY1MzE0YmE4MmVhZDMxMGZjODdhYzk5YTViMzlmMzBhYjg4MjBiZjY5ZTY5MzRhOWMxYzkxNWMxOWYzNmVhNzcxN2VhZmY3YWY2N2I0OTkxMzE1YjE4NzNiYTkyOWJlZGYxOGE5NzViZTgwOGU3YWExNGE2NzI2MTI2Yzc5Y2M5M2Y2OTU0MWM1Y2VmZGViNWI2N2VjMjc5ZDhmNWE0NDY1ODNlNGI0ZmFlZDE2ODUxNDBlZTRiM2I3NTdjOGZmNGExZWY5Y2Q3NmE4OGUwNTMxOWVlNjIwMDNkMmQ3NzI5MGM5NGM1NzliMGNhMmFiMGRlYjMxNzZlZjEwYTNmZGI4NWM4MGZmYmM5ZTJhNjY1YTIzNzQ0ZmM4MzZmOWE5YTEwM2NkOWZiNzU2OTUyMzU2YTJmMWFjZGQ2OGE2NDVlMjAxNzkwMDY1NThiNWQ0ZDBiOWIwYmQzYWRmNWUyOTBmNDlkYWU2MGI5ZDE5OTIwOTUzZWE4YmIyMzdkNWIzZGNmZTE0OWE2MGYxMmE0ZWUzYTg4OWIzM2JjZDNhM2I3NTNkNjEwNzU3Y2JjZDA5M2RkNWE3MzQyNTUzMzM2ODk2OTVhYjYzNjk2M2UzZDIxNWE4ZTc3ZmYzMTk3MzcxOGE0OTQ0YTFlOWU0NGY0NTc1NGQzOWY2ZmE0MzFjNTNmOWEyZWYzNmUxNmE1ZjcwNjM2ZWI1ZmJhNTRlMTVjMjBhNzE0ZjI4MDlhN2NmZjRiOGRjMTE2NWY4MzY2MDdlYjVhNWEzYmIwYzQ1NjdlZWUyNjk0MWZlZjQ2ZmI0MWU3M2I1NjVjMGNmOGM3MmU0MDQyMjEyNjQiOjYyOjAKIAogUlNBU1NBLVBTUyBTaWduYXR1cmUgUlNBLTEwMjQsIFNIQS0yNTYsIFNhbHQgTGVuZ3RoIDAKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBwa2NzMV9yc2Fzc2FfcHNzX3NpZ246MTAyNDoiZTU1NjNiMTQ1ZGI2ZmY1YTE2MjgwZDNlODBlZmYwMmYxODFkYmQwMzMyNGVmMjQ3ZjU5NmE0ZDRhN2I4ZGFhMzJiOTkzNGUzYzdmNGRjZjZhMzEwNTQ2MmRlYzYzODM5NjM4NjE4NDE4YjUxZGIwMjY5M2ZhYmI0ZTY4Mzg3MjUiOiJkMmE0ZWMwZmEyMjI2Y2RlODJkYTc3NjUzYjA3MmNkMDk4NTM1ZDNlOTBlZDRkNzIyNGRjYjhjYjhiOTMxNDc2OGRjNTE3ZTIyZDdjOGZhMTNmMjUzZGFhNzQ2NWE3OTk1NjA5OGFhNGNjM2E2ZTM1ZThiMWZjYzRmOTdlNzc0ZiI6ImJjYjQ3YjJlMGRhZmNiYTgxZmYyYTJiNWNiMTE1Y2E3ZTc1NzE4NGM5ZDcyYmNkY2RhNzA3YTE0NmIzYjRlMjk5ODlkZGM2NjBiZDY5NDg2NWI5MzJiNzFjYTI0YTMzNWNmNGQzMzljNzE5MTgzZTYyMjJlNGM5ZWE2ODc1YWNkNTI4YTQ5YmEyMTg2M2ZlMDgxNDdjM2E0N2U0MTk5MGI1MWEwM2Y3N2QyMjEzN2Y4ZDc0YzQzYTVhNDVmNGU5ZTE4YTJkMTVkYjA1MWRjODkzODVkYjljZjgzNzRiNjNhOGNjODgxMTM3MTBlNmQ4MTc5MDc1YjdkYzc5ZWU3NmIiOiIwMTAwMDEiOk1CRURUTFNfTURfU0hBMjU2Ok1CRURUTFNfTURfU0hBMjU2OiIwYzM3MjMzYzY5NGNjODFjNGNhMTAyNzAwOTI2OWI2NGU5ZTMyMjg4ZTM1MjJhMmNkNzZkYTY2MTNkOGM1Y2Q3IjoiNmYyODQxMTY2YTY0NDcxZDRmMGI4ZWQwZGJiN2RiMzIxNjFkYTEzYjNhZjNjNGJkNmQ0Y2ZjYWQ4YTAzMjkwZTIzN2IwY2IzZjA1YTQ2NDBkNGZmNjU1YWEzNmZkMzZiNDA4OTgxN2E3ZDQ1MzhlYTkxMzQ5NzFjMzdjMTJhNWIzYzM2MGUyYzkwNTQ2YzY1NTNkMmJmZjc0MTkyNjI4MjFjZTNmYzk5MjgzNDgzYjk2OTFhZDVhMGRiZmYiOiJhYzc3N2ZkMWY3MmZiNDU5OGIzMGVjMWQzNDM0ODhlODNiYzAzY2FjMzM4MDQ5MjIyNWVmYWQ4YzBkN2UyYzE1YTAwMzFiOGUwMjdiZjRlODA3NDdjZTNkZTE4OGI0MDVkZmVlYzJiNGI1NDM5NTk5YmVmNzMzYTEyMGZkODA1MzJlMGZjYzA2MjlmODZjYzk5MGUzMTJiMmI3M2VlMWYzNTg2MTk4YmY4MWYzYWYwNWVmMGNmYmVkM2QxYjVjNjIwOTI3ZDIwODRmMzE4NDc3ODRjMmJhOGQ1NWEwZjAzOGE1ZWFmOGMyZWE4NWVhODFlZWJkYzBmZTFmMGQ3NWMxIjowOjAKIAogUlNBU1NBLVBTUyBTaWduYXR1cmUgUlNBLTEwMjQsIFNIQS0yNTYsIFNhbHQgTGVuZ3RoID0gbWF4Ci1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NgogcGtjczFfcnNhc3NhX3Bzc19zaWduOjEwMjQ6ImU1NTYzYjE0NWRiNmZmNWExNjI4MGQzZTgwZWZmMDJmMTgxZGJkMDMzMjRlZjI0N2Y1OTZhNGQ0YTdiOGRhYTMyYjk5MzRlM2M3ZjRkY2Y2YTMxMDU0NjJkZWM2MzgzOTYzODYxODQxOGI1MWRiMDI2OTNmYWJiNGU2ODM4NzI1IjoiZDJhNGVjMGZhMjIyNmNkZTgyZGE3NzY1M2IwNzJjZDA5ODUzNWQzZTkwZWQ0ZDcyMjRkY2I4Y2I4YjkzMTQ3NjhkYzUxN2UyMmQ3YzhmYTEzZjI1M2RhYTc0NjVhNzk5NTYwOThhYTRjYzNhNmUzNWU4YjFmY2M0Zjk3ZTc3NGYiOiJiY2I0N2IyZTBkYWZjYmE4MWZmMmEyYjVjYjExNWNhN2U3NTcxODRjOWQ3MmJjZGNkYTcwN2ExNDZiM2I0ZTI5OTg5ZGRjNjYwYmQ2OTQ4NjViOTMyYjcxY2EyNGEzMzVjZjRkMzM5YzcxOTE4M2U2MjIyZTRjOWVhNjg3NWFjZDUyOGE0OWJhMjE4NjNmZTA4MTQ3YzNhNDdlNDE5OTBiNTFhMDNmNzdkMjIxMzdmOGQ3NGM0M2E1YTQ1ZjRlOWUxOGEyZDE1ZGIwNTFkYzg5Mzg1ZGI5Y2Y4Mzc0YjYzYThjYzg4MTEzNzEwZTZkODE3OTA3NWI3ZGM3OWVlNzZiIjoiMDEwMDAxIjpNQkVEVExTX01EX1NIQTI1NjpNQkVEVExTX01EX1NIQTI1NjoiMGMzNzIzM2M2OTRjYzgxYzRjYTEwMjcwMDkyNjliNjRlOWUzMjI4OGUzNTIyYTJjZDc2ZGE2NjEzZDhjNWNkNyI6IjZmMjg0MTE2NmE2NDQ3MWQ0ZjBiOGVkMGRiYjdkYjMyMTYxZGExM2IzYWYzYzRiZDZkNGNmY2FkOGEwMzI5MGUyMzdiMGNiM2YwNWE0NjQwZDRmZjY1NWFhMzZmZDM2YjQwODk4MTdhN2Q0NTM4ZWE5MTM0OTcxYzM3YzEyYTViM2MzNjBlMmM5MDU0NmM2NTUzZDJiZmY3NDE5MjYyODIxY2UzZmM5OTI4MzQ4M2I5NjkxYWQ1YTBkYmZmIjoiNjcwOGFlNzdjOGMzMjA1NmQ4OWQ4MTg2ZjFkNzRkODRhMDJjZjY5YTA4NDUxNmMzNTI1OTAxZTdjMmM4MzU5YzFlODkzOWY5NWIxMTg0Y2E4ZTU3NTA4YTI4NjczMjQzZjE1ODBmMGVhZWYxM2E4ZWI2NGM5Yjc4YzhhNWMyMjQ5Zjc2MDFmYWE5YTU1NzQzZDA1NmMwOGJiZjIxM2JkNWQ0NjFlMTM0MDc4YjExNDU4YTc2NzA3ZmU4MGRmNThjYTQ3N2MyNDU1NjY1NzM0Y2I0OThkZGUyYTg3MDY1ZDhiZGI4ODUxZjc5NDNmNGMzOGFlMjQzNzUyZGM3OWRhMyI6OTQ6MAogCiBSU0FTU0EtUFNTIFNpZ25hdHVyZSBSU0EtMTAyNCwgU0hBLTI1NiwgU2FsdCBMZW5ndGggPSBtYXgrMQotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHBrY3MxX3JzYXNzYV9wc3Nfc2lnbjoxMDI0OiJlNTU2M2IxNDVkYjZmZjVhMTYyODBkM2U4MGVmZjAyZjE4MWRiZDAzMzI0ZWYyNDdmNTk2YTRkNGE3YjhkYWEzMmI5OTM0ZTNjN2Y0ZGNmNmEzMTA1NDYyZGVjNjM4Mzk2Mzg2MTg0MThiNTFkYjAyNjkzZmFiYjRlNjgzODcyNSI6ImQyYTRlYzBmYTIyMjZjZGU4MmRhNzc2NTNiMDcyY2QwOTg1MzVkM2U5MGVkNGQ3MjI0ZGNiOGNiOGI5MzE0NzY4ZGM1MTdlMjJkN2M4ZmExM2YyNTNkYWE3NDY1YTc5OTU2MDk4YWE0Y2MzYTZlMzVlOGIxZmNjNGY5N2U3NzRmIjoiYmNiNDdiMmUwZGFmY2JhODFmZjJhMmI1Y2IxMTVjYTdlNzU3MTg0YzlkNzJiY2RjZGE3MDdhMTQ2YjNiNGUyOTk4OWRkYzY2MGJkNjk0ODY1YjkzMmI3MWNhMjRhMzM1Y2Y0ZDMzOWM3MTkxODNlNjIyMmU0YzllYTY4NzVhY2Q1MjhhNDliYTIxODYzZmUwODE0N2MzYTQ3ZTQxOTkwYjUxYTAzZjc3ZDIyMTM3ZjhkNzRjNDNhNWE0NWY0ZTllMThhMmQxNWRiMDUxZGM4OTM4NWRiOWNmODM3NGI2M2E4Y2M4ODExMzcxMGU2ZDgxNzkwNzViN2RjNzllZTc2YiI6IjAxMDAwMSI6TUJFRFRMU19NRF9TSEEyNTY6TUJFRFRMU19NRF9TSEEyNTY6IjBjMzcyMzNjNjk0Y2M4MWM0Y2ExMDI3MDA5MjY5YjY0ZTllMzIyODhlMzUyMmEyY2Q3NmRhNjYxM2Q4YzVjZDciOiI2ZjI4NDExNjZhNjQ0NzFkNGYwYjhlZDBkYmI3ZGIzMjE2MWRhMTNiM2FmM2M0YmQ2ZDRjZmNhZDhhMDMyOTBlMjM3YjBjYjNmMDVhNDY0MGQ0ZmY2NTVhYTM2ZmQzNmI0MDg5ODE3YTdkNDUzOGVhOTEzNDk3MWMzN2MxMmE1YjNjMzYwZTJjOTA1NDZjNjU1M2QyYmZmNzQxOTI2MjgyMWNlM2ZjOTkyODM0ODNiOTY5MWFkNWEwZGJmZiI6IiI6OTU6TUJFRFRMU19FUlJfUlNBX0JBRF9JTlBVVF9EQVRBCiAKIFJTQVNTQS1QU1MgU2lnbmF0dXJlIFJTQS0yMDQ4LCBTSEEtMjU2LCBTYWx0IExlbmd0aCA9IDAKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBwa2NzMV9yc2Fzc2FfcHNzX3NpZ246MjA0ODoiZjdiNjY0MDkzY2FiZjgzMzRiMWMwZmY4MjQ1NjRkYjVjMTNmOTQxYTI3OTczMzg5M2E3ZTVhYmVkNTM2ZDJiNTFhMmJlYWM4MDczMGI1MTk0YTBjNzIyZjU3MzU0Y2U0YjdkYjQ0N2VhMzI4NmIxY2QxYzc1NDU0OGVhM2M5MWEwZGYxYmRlM2ZmNzA4MjBiNjNlZjNjNzRhMDExOTY3MWQxNGRiM2UyNjAzODY4YTBkNjA3YTgxYmYxNGYzZjQxZjgxMGMzYTI0YmY1MmE5NGY5YjY5NDA3OGE1NTYxOTRkZDBjYjM2YzU2YTkxODQ2ZDM1NjkwOTZjNjMxYjYxZiI6ImUwYTExMTFhYTExNGQ1YjE3MDJlMzRkMjk1NjVkNjUzMjBlMDVjMjFkNzk0ZjM4NTcyYWQyOGE2MGIyZmZlNTBkMGRkM2RmM2ZiNWEwZWVmMDQ4ZWM1MGUxNDRiZmU1MmJlMzBlYmYyZWFjZWVjOWYxMTBhNjAwYmIwYzJiY2FjZjZiNGRhYmVjMDliOTM4N2M4OWE4ZmRlMTlkZTVjZWVjNzgwYmUzOGRjYTg0NmQ3OTVmODI2MDhjZjI4NDRlOWJjZWQ4ZDgxZGEyZDkyNThjM2VmNDEyMTU0ZjllNTkwYTE1OGVhMGFkOTE4MGFjNmE3OTg2MTRiYTM0MTA5MzciOiJkOTViNzFjOWRmZWU0NTNiYTFiMWE3ZGUyYzFmMGIwYTY3NTc5ZWU5MWQxZDNhZDk3ZTQ4MTgyOWI4NmVkYWM3NTBjNDhlMTJhOGNkYjAyNmM4MmYyNzNkYWZjMjIyMDA5ZjBkYjNiMDhiMmRiMTBhNjljNGIyZGRkYWFlY2VhYzFiMGM4NjI2ODJlZWYyOTRlNTc5ZjU1YWFiODcxYmMwYTdlZWFiYzkyM2M5ZTgwZGRkYzIyZWMwYTI3MDAyYWVlNmE1YmE2NjM5N2Y0MTJiYmFmNWZiNGVhZjY2YTFhMGY4MmVhZjY4MjcxOThjYWY0OWIzNDcyNThiMTI4M2U4Y2JiMTBkYTI4MzdmNmVjYzM0OTBjNzI4ZmU5MjdmNDQ0NTVhNmYxOTRmMzc3NmJmNzkxNTFkOWFkN2UyZGFmNzcwYjM3ZDEyNjI3Y2MwYzVmYjYyNDg0ZjQ2MjU4ZDljZTJjMTFiMjYyNTZkMDljYjQxMmY4ZDhmOGYxZmU5MWJiOTRhYzI3ZGU2ZDI2YTgzYTg0MzllNTFiMzVkYmVlNDZiM2I4ZmY5OTFkNjY3YmI1M2VlZWU4NWZmMTY1MmM4OTgxZjE0MWQ0N2M4MjA1NzkxY2VmNWIzMmQ3MThkZGMwODJlZDBkZDU0MjgyNjQxNmIyMjcxMDY0ZWY0MzdhOSI6IjAxMDAwMSI6TUJFRFRMU19NRF9TSEEyNTY6TUJFRFRMU19NRF9TSEEyNTY6ImI0MTZlMDg0MzA0MGIzNTI3N2JlNzczNGJjMjNhYzllOWViNDdhN2Y1N2Y1NWU5NGQ4MjYyODVjOWMwMDEwMGEiOiI2ZjI4NDExNjZhNjQ0NzFkNGYwYjhlZDBkYmI3ZGIzMjE2MWRhMTNiIjoiMjkzYzY1OTMzZmI0NmU2YmM1MGQ5YzM0YTI2NmE1ZTFiOWUzYjNmZjNjOTljNjkxYTg4ZWIyZDFiNjUyYWIyODE0NGU5ZTZhMTg0Njg5OTVmZWJiNWNlODRiMzhlZmIyOTViMWViZjFiN2I0YjdiY2UyOWMzNWRmYmRjODFiMDk0NGJkYjNjZGJhOTE0MjE1ZGU0MzgwY2Y1MjI2YzZjN2FmMTcyYmY4MmRiZWJhZGU2MTRkNzEwYmU1YjQyNTZkNTg4ZDEyZDNhMGY0NDk0Yjg2M2IwOWU4OTYyYmJjMWQ5N2NkYWViZDkyZDQwYTA0ODU0NzYxNzhhY2JiOTQzZDFiZWM1OWFhYmZiNjBhMTViMWNiOGYxN2Y2MDBmYzEwZWMxZjk3MTQ4ZWNhY2NhNGIzNzE1ZWMxNzNlNjQxNTI1YTEzMzFiMWI1YjUwNGJjOWY5MzBiNzA2MWYxMGU2MzUwOWQyMjIzYzQ5YzMwNTBiYWI2ZWRiYTExZGM0MjZhOGI1ZGJmZGIzMWI0M2FiM2RlZGMzOTJmM2Q0ZDA0MDFmNjdiODNjZGI1OWU1OTJkYmVkYWQ1ZWQ0MDc4NTQzMTBlMTMwNGI0ZTk5OGI4ZTQwNzRjYWFmYmE2ZmIwMDYzMzVjNjQ2NjY3NTg0MDFhNTA4ODEzZDMwN2Y0NjZlM2EiOjA6MAogCiBSU0FTU0EtUFNTIFNpZ25hdHVyZSBSU0EtMjA0OCwgU0hBLTI1NiwgU2FsdCBMZW5ndGggPSBtYXgKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBwa2NzMV9yc2Fzc2FfcHNzX3NpZ246MjA0ODoiZjdiNjY0MDkzY2FiZjgzMzRiMWMwZmY4MjQ1NjRkYjVjMTNmOTQxYTI3OTczMzg5M2E3ZTVhYmVkNTM2ZDJiNTFhMmJlYWM4MDczMGI1MTk0YTBjNzIyZjU3MzU0Y2U0YjdkYjQ0N2VhMzI4NmIxY2QxYzc1NDU0OGVhM2M5MWEwZGYxYmRlM2ZmNzA4MjBiNjNlZjNjNzRhMDExOTY3MWQxNGRiM2UyNjAzODY4YTBkNjA3YTgxYmYxNGYzZjQxZjgxMGMzYTI0YmY1MmE5NGY5YjY5NDA3OGE1NTYxOTRkZDBjYjM2YzU2YTkxODQ2ZDM1NjkwOTZjNjMxYjYxZiI6ImUwYTExMTFhYTExNGQ1YjE3MDJlMzRkMjk1NjVkNjUzMjBlMDVjMjFkNzk0ZjM4NTcyYWQyOGE2MGIyZmZlNTBkMGRkM2RmM2ZiNWEwZWVmMDQ4ZWM1MGUxNDRiZmU1MmJlMzBlYmYyZWFjZWVjOWYxMTBhNjAwYmIwYzJiY2FjZjZiNGRhYmVjMDliOTM4N2M4OWE4ZmRlMTlkZTVjZWVjNzgwYmUzOGRjYTg0NmQ3OTVmODI2MDhjZjI4NDRlOWJjZWQ4ZDgxZGEyZDkyNThjM2VmNDEyMTU0ZjllNTkwYTE1OGVhMGFkOTE4MGFjNmE3OTg2MTRiYTM0MTA5MzciOiJkOTViNzFjOWRmZWU0NTNiYTFiMWE3ZGUyYzFmMGIwYTY3NTc5ZWU5MWQxZDNhZDk3ZTQ4MTgyOWI4NmVkYWM3NTBjNDhlMTJhOGNkYjAyNmM4MmYyNzNkYWZjMjIyMDA5ZjBkYjNiMDhiMmRiMTBhNjljNGIyZGRkYWFlY2VhYzFiMGM4NjI2ODJlZWYyOTRlNTc5ZjU1YWFiODcxYmMwYTdlZWFiYzkyM2M5ZTgwZGRkYzIyZWMwYTI3MDAyYWVlNmE1YmE2NjM5N2Y0MTJiYmFmNWZiNGVhZjY2YTFhMGY4MmVhZjY4MjcxOThjYWY0OWIzNDcyNThiMTI4M2U4Y2JiMTBkYTI4MzdmNmVjYzM0OTBjNzI4ZmU5MjdmNDQ0NTVhNmYxOTRmMzc3NmJmNzkxNTFkOWFkN2UyZGFmNzcwYjM3ZDEyNjI3Y2MwYzVmYjYyNDg0ZjQ2MjU4ZDljZTJjMTFiMjYyNTZkMDljYjQxMmY4ZDhmOGYxZmU5MWJiOTRhYzI3ZGU2ZDI2YTgzYTg0MzllNTFiMzVkYmVlNDZiM2I4ZmY5OTFkNjY3YmI1M2VlZWU4NWZmMTY1MmM4OTgxZjE0MWQ0N2M4MjA1NzkxY2VmNWIzMmQ3MThkZGMwODJlZDBkZDU0MjgyNjQxNmIyMjcxMDY0ZWY0MzdhOSI6IjAxMDAwMSI6TUJFRFRMU19NRF9TSEEyNTY6TUJFRFRMU19NRF9TSEEyNTY6ImI0MTZlMDg0MzA0MGIzNTI3N2JlNzczNGJjMjNhYzllOWViNDdhN2Y1N2Y1NWU5NGQ4MjYyODVjOWMwMDEwMGEiOiI2ZjI4NDExNjZhNjQ0NzFkNGYwYjhlZDBkYmI3ZGIzMjE2MWRhMTNiM2YwNGUzMTU5MDczZjdhZDJmZTcwNzM4MTY4Nzc5MDkxZmFjYmFiZmM0ZGY1NGQ2ZjQ5YzdjNzg0OWEyZTg4OGE2Y2I5ZDM2M2U5NGU0NmQ3Y2ViYTY5MjcyMWY5YjkyY2M1NjUxOTAzNWE1NjYyOTQxZTJhMThhODQ4OTEyMmI1NWFmNjE5MzQ0NDUwMWMwMzBhNzUyYTNjNmVkMzU5MjQzODYyMzc4MmM4OWExNmQ2YzQyZjhmMGNjMGExYjIxYmE3ZGI0ZmVjMmI1YmVmMzVjMTA5NjIzZmRjYmI1NDE1MWQ4Yjk3ZDYyNWJlYmNlOWRlM2JlNjllZGRhOGFhNzU3M2ZhNTE5ZjQ2MzBjNTE3M2EyNzQ3MTZkMjliMmJmMDI2YjNjNjRjNjI3MzI2NDBhZjBjZGY4Y2E1ODlmMjE5NzQ1M2I4YmE4NDdkYzFjZWE1MDhkNTc3YTNmMTY3Y2FhNTNlMDcxN2ExMmQ1ODUwMmEyN2RjZGZhMWNlZTkxNjEyOTFkMGE3MWY5MjY1YjRhYjMiOiI1NThkY2I4YzRlZDkyZDIyNjE4ZmIyMTY5YTU1MmJmNWFkYTQ5M2FkNjY4OTA2MzljYWVjY2UwMjU4MzlmNDRkMmY4YjcwMDRkNzA1ODYyOTZmZDk0Mjc4ZTQ3OGRmYmI2M2E2ODY3ZjNmZDkwOWE1NThjY2ExZmJhMWIzMjlhM2YyMzBjMjg3NDg4NmViMGI1YTNkZTAxZTAyMTAwYTkzOWYyMTZhMDdhNDQ1ZjllOGY3Mjc5YjhjYzMxOTY2ZGUyM2M5MTJjNDc3YmVkNWFjOTk5OTZmMDllYzgxN2JkMDJhY2I2NzEzMTBiMzNkNWE5YmY3OWJmYzE0YTBlMzhhYmVmOTE2OWMwMWU3NzQzYTQwODg2OGY0MjcwNTc0MzAyM2VjNzg5MmMyZTQzN2I5MThiNDBkODczZDk5YzU2ZmFhNTg1NDNhOGViNDFkOTFkMzhhYjhjYTUxNjViOTVhYzg0YjMwNjI0YTY1MTdiMjg5M2Y0MzJjNjNkMzQzNTIwNTljOWE2YWQzMzUzZmUzODU5ZDBiNTFhOTcxZTNkNThhMjg3NjEyYjFhN2I2ZWViNzZiNzEwMTg1MGY4MDk5NjBjMWMxMzdlYTM5NmVkZTRjNTcwODE3YmVmOTNiMmZmOTAxYzJkMTc1OTA5ZjQ4YTZiNmE3M2RjM2FhNmNlZiI6MjIyOjAKIAogUlNBU1NBLVBTUyBTaWduYXR1cmUgUlNBLTIwNDgsIFNIQS0yNTYsIFNhbHQgTGVuZ3RoID0gbWF4KzEKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBwa2NzMV9yc2Fzc2FfcHNzX3NpZ246MjA0ODoiZjdiNjY0MDkzY2FiZjgzMzRiMWMwZmY4MjQ1NjRkYjVjMTNmOTQxYTI3OTczMzg5M2E3ZTVhYmVkNTM2ZDJiNTFhMmJlYWM4MDczMGI1MTk0YTBjNzIyZjU3MzU0Y2U0YjdkYjQ0N2VhMzI4NmIxY2QxYzc1NDU0OGVhM2M5MWEwZGYxYmRlM2ZmNzA4MjBiNjNlZjNjNzRhMDExOTY3MWQxNGRiM2UyNjAzODY4YTBkNjA3YTgxYmYxNGYzZjQxZjgxMGMzYTI0YmY1MmE5NGY5YjY5NDA3OGE1NTYxOTRkZDBjYjM2YzU2YTkxODQ2ZDM1NjkwOTZjNjMxYjYxZiI6ImUwYTExMTFhYTExNGQ1YjE3MDJlMzRkMjk1NjVkNjUzMjBlMDVjMjFkNzk0ZjM4NTcyYWQyOGE2MGIyZmZlNTBkMGRkM2RmM2ZiNWEwZWVmMDQ4ZWM1MGUxNDRiZmU1MmJlMzBlYmYyZWFjZWVjOWYxMTBhNjAwYmIwYzJiY2FjZjZiNGRhYmVjMDliOTM4N2M4OWE4ZmRlMTlkZTVjZWVjNzgwYmUzOGRjYTg0NmQ3OTVmODI2MDhjZjI4NDRlOWJjZWQ4ZDgxZGEyZDkyNThjM2VmNDEyMTU0ZjllNTkwYTE1OGVhMGFkOTE4MGFjNmE3OTg2MTRiYTM0MTA5MzciOiJkOTViNzFjOWRmZWU0NTNiYTFiMWE3ZGUyYzFmMGIwYTY3NTc5ZWU5MWQxZDNhZDk3ZTQ4MTgyOWI4NmVkYWM3NTBjNDhlMTJhOGNkYjAyNmM4MmYyNzNkYWZjMjIyMDA5ZjBkYjNiMDhiMmRiMTBhNjljNGIyZGRkYWFlY2VhYzFiMGM4NjI2ODJlZWYyOTRlNTc5ZjU1YWFiODcxYmMwYTdlZWFiYzkyM2M5ZTgwZGRkYzIyZWMwYTI3MDAyYWVlNmE1YmE2NjM5N2Y0MTJiYmFmNWZiNGVhZjY2YTFhMGY4MmVhZjY4MjcxOThjYWY0OWIzNDcyNThiMTI4M2U4Y2JiMTBkYTI4MzdmNmVjYzM0OTBjNzI4ZmU5MjdmNDQ0NTVhNmYxOTRmMzc3NmJmNzkxNTFkOWFkN2UyZGFmNzcwYjM3ZDEyNjI3Y2MwYzVmYjYyNDg0ZjQ2MjU4ZDljZTJjMTFiMjYyNTZkMDljYjQxMmY4ZDhmOGYxZmU5MWJiOTRhYzI3ZGU2ZDI2YTgzYTg0MzllNTFiMzVkYmVlNDZiM2I4ZmY5OTFkNjY3YmI1M2VlZWU4NWZmMTY1MmM4OTgxZjE0MWQ0N2M4MjA1NzkxY2VmNWIzMmQ3MThkZGMwODJlZDBkZDU0MjgyNjQxNmIyMjcxMDY0ZWY0MzdhOSI6IjAxMDAwMSI6TUJFRFRMU19NRF9TSEEyNTY6TUJFRFRMU19NRF9TSEEyNTY6ImI0MTZlMDg0MzA0MGIzNTI3N2JlNzczNGJjMjNhYzllOWViNDdhN2Y1N2Y1NWU5NGQ4MjYyODVjOWMwMDEwMGEiOiI2ZjI4NDExNjZhNjQ0NzFkNGYwYjhlZDBkYmI3ZGIzMjE2MWRhMTNiIjoiIjoyMjM6TUJFRFRMU19FUlJfUlNBX0JBRF9JTlBVVF9EQVRBCiAKIFJTQVNTQS1QU1MgU2lnbmF0dXJlIFJTQS0xMDI0LCBTSEEtNTEyLCBTYWx0IExlbmd0aCAwCkBAIC0xMjY3LDE1ICsxMjY3LDE1IEBACiBwa2NzMV9yc2Fzc2FfcHNzX3NpZ246MTAyNDoiZTU1NjNiMTQ1ZGI2ZmY1YTE2MjgwZDNlODBlZmYwMmYxODFkYmQwMzMyNGVmMjQ3ZjU5NmE0ZDRhN2I4ZGFhMzJiOTkzNGUzYzdmNGRjZjZhMzEwNTQ2MmRlYzYzODM5NjM4NjE4NDE4YjUxZGIwMjY5M2ZhYmI0ZTY4Mzg3MjUiOiJkMmE0ZWMwZmEyMjI2Y2RlODJkYTc3NjUzYjA3MmNkMDk4NTM1ZDNlOTBlZDRkNzIyNGRjYjhjYjhiOTMxNDc2OGRjNTE3ZTIyZDdjOGZhMTNmMjUzZGFhNzQ2NWE3OTk1NjA5OGFhNGNjM2E2ZTM1ZThiMWZjYzRmOTdlNzc0ZiI6ImJjYjQ3YjJlMGRhZmNiYTgxZmYyYTJiNWNiMTE1Y2E3ZTc1NzE4NGM5ZDcyYmNkY2RhNzA3YTE0NmIzYjRlMjk5ODlkZGM2NjBiZDY5NDg2NWI5MzJiNzFjYTI0YTMzNWNmNGQzMzljNzE5MTgzZTYyMjJlNGM5ZWE2ODc1YWNkNTI4YTQ5YmEyMTg2M2ZlMDgxNDdjM2E0N2U0MTk5MGI1MWEwM2Y3N2QyMjEzN2Y4ZDc0YzQzYTVhNDVmNGU5ZTE4YTJkMTVkYjA1MWRjODkzODVkYjljZjgzNzRiNjNhOGNjODgxMTM3MTBlNmQ4MTc5MDc1YjdkYzc5ZWU3NmIiOiIwMTAwMDEiOk1CRURUTFNfTURfU0hBNTEyOk1CRURUTFNfTURfU0hBNTEyOiJjMzM2NmM1NTI0NTEyNzRhNDA0MmU0MzU3NDQ3Nzg2Y2NlM2EyNWE4ZGJkOGNmM2MyZjhhOGRkYzAyMTYxYmRhMzMyYmI0NTA2MmY3YzYxYjdhYTdhODhlZDNiNWQ1MWI2MTAzYWJjZjE3Njk2NDJiMTFhYjk1ZjkyZmEzOWFkZiI6IjZmMjg0MTE2NmE2NDQ3MWQ0ZjBiOGVkMGRiYjdkYjMyMTYxZGExM2IiOiIiOjYzOk1CRURUTFNfRVJSX1JTQV9CQURfSU5QVVRfREFUQQogCiBSU0FTU0EtUFNTIFNpZ25hdHVyZSBSU0EtMzA3MiwgU0hBLTM4NCwgU2FsdCBMZW5ndGggMAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEzODQKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8zODQKIHBrY3MxX3JzYXNzYV9wc3Nfc2lnbjozMDcyOiJjYTdiNTBjNWY2NWYyMTE1ZmVhNzY5MWY3ZDkwYzEyNDg2NmU3NzRlNjhlOWViODkzMDY1Mzg5NTZmYzIxNzU5M2Q0NjAxN2I3ZGQ3OTQyZDYzNmUzODRhMzRjODAyYTE0ZDVmZDk5MTY3OThkN2Q2MTkzZWYxYTI5ZTJmZGJlZmQ5NTUyNjE0OTZkOGFjOTcxMzkyMmQ0M2JmYzQzYTdhNDEwNzUyY2NiYzg1NGNjODUyNjhmNDExZTc5M2Y5YjUyNzkwMDdiYmNhY2EzMGZiMTZmZDkwMzNhNmVhMzE1NjZiNGYyYzI3ZjAxNjExMDdlMmNkODkwYmNmNTYzYTUyMmVlMGViOTZhMDE2ZTkwMDc1OTVhOTQxNzJhNGFlZGVkMTFmYWRjYjhhYjVmMDNjZDE1NGY4YjhlMGUwNjY2ZmY2MmIxY2NkYTAyNTk5ZWE0NGJiZmNmYWVhNTQxYTVhYzI2YmYyNjdhNTZhODE3N2E1MGY2Yjg3YjQ2MGE1NGQiOiJjNTkxNzIzMDQyZDRiODczN2Y0ZWY5ZGZlYjQwYzZkNjJkNDM5ZWU4Njg4MTU4YTRiZTI0YzBhZDEzMGY4NTExMTNjYzUzZDc3NmM2M2NkNzgyYjk1Y2NmZDI2NmJkYjI1NzhiNzg0MzljMTIxZGUzNGU4OTU1YTdmYmQyYzZhZTFhMWMzN2IyNGMxMmY1ZGNlMTUxNzVkZDllMjAzYTNhYmQ1YmY5ZTczNmIxZmMxODNkMTBjNDU0MGM1Y2YyY2JlMjY3NjhlOTRjMWVhYjJiYTMwMDhiMzJkNmQ1MDcxNjY5OWM2YmZjYmVjNWJiZWI5NGEwNTRkYmNkMTZkMTBmNzQ5NzJjYTVmZTUzMjU2Y2QwYWRlOGY1MDJlY2VhZWQ2MzM0MTRhOWJkYjYyMzAzNWEyMzRmNjVjNjY2MmEyM2Q3OTJjYzBlZWIyMWExZjU1ZWJjYTI2ZmZhMWM1NmM5NmZiYjdkODcwZmMzZmZiMTgxZGU4Mzk4MjM4YWIxYjUiOiI5YzQzZWY1MjJjYWIxODAyMjI5N2QzZDcwZmE0OTFkMDNiOTc1Yjg0NGI3NmNlZGJhMzVkOGQ4ODVkZGIyODI1ZTMxZmQ1YzEwMWJkOWU5YTIxNTUyMGJiOGNkZGRlYjZhYjJjZjJkYzg2MDY1MTc5NDc3ZDgwZjczMzAxNjkyOWQ3MzM0Y2RmZGY4MThjMTM3OGE0Yjk0MjhmYTFlZTJlNTI1MzIxZjkwNWQwYjk0OWQzYWJjOWU5M2QzZjMwYjA3Nzc5NTMzOGJkNTVjMjhhMWNlZDEzNGJiMmQ1NzViZmE0NGIyZmQ4Y2YxZDVjNTQxNjhhMTJhMWQ2YzUxMWY2MmNhOTczY2RiNzA0YzIzMzQ4N2UxZmQzOWU1YWRjODg3MGFmMzUyZWMzYzZhNmE2NDE1MmZjODJhMWMxNmVjYzQzZDFkNTgxN2Y3NmExYjQ2YTVmYWI5ZGI4OTIzMzExZWRkM2NjMDMyZmVkN2ViNjI1MmU3N2RiNjlkN2JmOWVlMzVkYzRkZGQwZmJkYjlhNzZhZmUyNWE4MmY0NDk1YWE0ZjA3MmNlZjliMTI0N2NiMzY4YmNjODY3NzU2NWE0NzA5NTI0MjcwMmU2MzQxMjgxZjUwNjgwNWUyMGU4Yzg5ZTlhZjI4YWRmZjIxYzgwNGM3MGNhYjEwZWUyZmU1MjEyZWMwNzk4N2QxM2U3ZDRiNjA1Mjk2MTFlNGQzM2EwNjJkNzI0Y2RmYjE2Y2RjNDhiOTY0YmEwN2RmYTI2MjBkNWE4ODA1ZDBiZTkzMzgwODUwYzY2ZjNmYWRhMDU5ODAyYTU5NDZiZmUzYjBiMTBlMTlhODI4OWVjMDFmNjUxNGFiYjg4M2JiNTNjNDlkYWRiYmE0MmQ0MTJlYTI2NGM4YTUxMjJmZGExZWE5Yjc0MjI4OTY0MmIwZWEzNGNlYjc2YWU4MjU2YTk3ODQ1ZDM3NTk0Y2ZiZmY4YzdhNDQzMDE3NjIyM2JhY2MzYmVmMzk1Y2VkYTEzZmQyMTFjNzEiOiIwMTAwMDEiOk1CRURUTFNfTURfU0hBMzg0Ok1CRURUTFNfTURfU0hBMzg0OiJiYzlmYjhmYzZkNGM2Y2U4ODY1Yzc1ODA2M2U1NTYzOWY5OGFmYzE1ZTVkNzFmNGYxZWNmODlkNmZiYjkwNGFlY2MyODEyNmJkNWU2YjVhN2Y4ZjMxNzI5OTQ5ZGJmOGEiOiI2ZjI4NDExNjZhNjQ0NzFkNGYwYjhlZDBkYmI3ZGIzMjE2MWRhMTNiIjoiOTExMGIzOWMxZmZjMmQ4YTVmMjRlOTY1ZTM5ODViMDY4NzFjMmJlMjNlNjc3YmIzZWE4NzliN2I2YjI1YzMyN2ViZGQ5NDM0Mzg3Y2ZlNWY2NGJjYjY5MDBhNWM4Mzk1NTQ5ZTM2ODEzOTA1ODM3ODZiNzA5MjU3ZmYwYWQ5MDUwN2EwMmVjNmFiYjQwZTMzZGVjODAwOTczMjI4NzZhODRlZTk4YjFmZTc5Y2VkNjJiYTRmOTgzYmI5YjUyNzU4YmY5ODU2MDk4YWY1Mjc5MjRlYTgzMjkxNzYyYjE3OTg5NGYxZmFiNmQ4Yzk4NjdiMDI0NDM5M2ZhMzJiNTg3MTgzNmZhNDQ0NmIyNDcxNTNiYzExN2NjYWY3Y2Q1MWM1ZWMwMjZiY2FmOWI2MzQxODJjZDE5YTBlYjk1ZWM0MGRkNWU0Mjc0NzUwYzllZTNiMTM3OWZiMzM5ZmE0ZWQ4MzQ4YjEwNDkzNjM5NjM1NWJlYTBhMDAzMzdiODNmNDdkMmZkN2U3MzUzZjMwMDk3NTJmOTcwZWViYzFiYmFkZTYwMWI5MTJmN2IwOTg0YmNjYzY4OTQxZWQyM2JkMzFmY2QyM2E3ZDBmMmIwY2ZhYWJkYjNkMzYxOTY5ZjQ4NWU1ZDE5ODQ0MjY2MWVlNzFlZWYyNThhZTlmYzI3YTE5ZDk5NWE1Njk1YzY2OGY5YWI3ODYyMjQ4NmQ2Y2NmZTRhZTExZGU5MjQwNTg4ZmFmYmM3NWY4YmQwZDA0ZGU1ZjI5NTljMTI2YjdjNjcyZWFjOGJiNjUwMzFlYTIyZWJiNGE0ZTM2YzEyZjQyN2QyZGM0NjE5ZWIzMGVmMWM5MGVjOTUxMzM3YTM2NDU2NmYwZDJlMzJmMzExYjQyNWE2OGZkNTI3N2E4NWRjOGQ4MDQxYWIyYTAxNjVjMzlmZDRlMzkxNjA0OThkNWVhZTk4OTY1ZTg3NDViNzczOTBlNWRkZWZmMGFlZmZjMGZiMTg4Mzk0NTVkNTI0ODI2YTFmMzY2IjowOjAKIAogUlNBU1NBLVBTUyBTaWduYXR1cmUgUlNBLTMwNzIsIFNIQS0zODQsIFNhbHQgTGVuZ3RoIG1heAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEzODQKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8zODQKIHBrY3MxX3JzYXNzYV9wc3Nfc2lnbjozMDcyOiJjYTdiNTBjNWY2NWYyMTE1ZmVhNzY5MWY3ZDkwYzEyNDg2NmU3NzRlNjhlOWViODkzMDY1Mzg5NTZmYzIxNzU5M2Q0NjAxN2I3ZGQ3OTQyZDYzNmUzODRhMzRjODAyYTE0ZDVmZDk5MTY3OThkN2Q2MTkzZWYxYTI5ZTJmZGJlZmQ5NTUyNjE0OTZkOGFjOTcxMzkyMmQ0M2JmYzQzYTdhNDEwNzUyY2NiYzg1NGNjODUyNjhmNDExZTc5M2Y5YjUyNzkwMDdiYmNhY2EzMGZiMTZmZDkwMzNhNmVhMzE1NjZiNGYyYzI3ZjAxNjExMDdlMmNkODkwYmNmNTYzYTUyMmVlMGViOTZhMDE2ZTkwMDc1OTVhOTQxNzJhNGFlZGVkMTFmYWRjYjhhYjVmMDNjZDE1NGY4YjhlMGUwNjY2ZmY2MmIxY2NkYTAyNTk5ZWE0NGJiZmNmYWVhNTQxYTVhYzI2YmYyNjdhNTZhODE3N2E1MGY2Yjg3YjQ2MGE1NGQiOiJjNTkxNzIzMDQyZDRiODczN2Y0ZWY5ZGZlYjQwYzZkNjJkNDM5ZWU4Njg4MTU4YTRiZTI0YzBhZDEzMGY4NTExMTNjYzUzZDc3NmM2M2NkNzgyYjk1Y2NmZDI2NmJkYjI1NzhiNzg0MzljMTIxZGUzNGU4OTU1YTdmYmQyYzZhZTFhMWMzN2IyNGMxMmY1ZGNlMTUxNzVkZDllMjAzYTNhYmQ1YmY5ZTczNmIxZmMxODNkMTBjNDU0MGM1Y2YyY2JlMjY3NjhlOTRjMWVhYjJiYTMwMDhiMzJkNmQ1MDcxNjY5OWM2YmZjYmVjNWJiZWI5NGEwNTRkYmNkMTZkMTBmNzQ5NzJjYTVmZTUzMjU2Y2QwYWRlOGY1MDJlY2VhZWQ2MzM0MTRhOWJkYjYyMzAzNWEyMzRmNjVjNjY2MmEyM2Q3OTJjYzBlZWIyMWExZjU1ZWJjYTI2ZmZhMWM1NmM5NmZiYjdkODcwZmMzZmZiMTgxZGU4Mzk4MjM4YWIxYjUiOiI5YzQzZWY1MjJjYWIxODAyMjI5N2QzZDcwZmE0OTFkMDNiOTc1Yjg0NGI3NmNlZGJhMzVkOGQ4ODVkZGIyODI1ZTMxZmQ1YzEwMWJkOWU5YTIxNTUyMGJiOGNkZGRlYjZhYjJjZjJkYzg2MDY1MTc5NDc3ZDgwZjczMzAxNjkyOWQ3MzM0Y2RmZGY4MThjMTM3OGE0Yjk0MjhmYTFlZTJlNTI1MzIxZjkwNWQwYjk0OWQzYWJjOWU5M2QzZjMwYjA3Nzc5NTMzOGJkNTVjMjhhMWNlZDEzNGJiMmQ1NzViZmE0NGIyZmQ4Y2YxZDVjNTQxNjhhMTJhMWQ2YzUxMWY2MmNhOTczY2RiNzA0YzIzMzQ4N2UxZmQzOWU1YWRjODg3MGFmMzUyZWMzYzZhNmE2NDE1MmZjODJhMWMxNmVjYzQzZDFkNTgxN2Y3NmExYjQ2YTVmYWI5ZGI4OTIzMzExZWRkM2NjMDMyZmVkN2ViNjI1MmU3N2RiNjlkN2JmOWVlMzVkYzRkZGQwZmJkYjlhNzZhZmUyNWE4MmY0NDk1YWE0ZjA3MmNlZjliMTI0N2NiMzY4YmNjODY3NzU2NWE0NzA5NTI0MjcwMmU2MzQxMjgxZjUwNjgwNWUyMGU4Yzg5ZTlhZjI4YWRmZjIxYzgwNGM3MGNhYjEwZWUyZmU1MjEyZWMwNzk4N2QxM2U3ZDRiNjA1Mjk2MTFlNGQzM2EwNjJkNzI0Y2RmYjE2Y2RjNDhiOTY0YmEwN2RmYTI2MjBkNWE4ODA1ZDBiZTkzMzgwODUwYzY2ZjNmYWRhMDU5ODAyYTU5NDZiZmUzYjBiMTBlMTlhODI4OWVjMDFmNjUxNGFiYjg4M2JiNTNjNDlkYWRiYmE0MmQ0MTJlYTI2NGM4YTUxMjJmZGExZWE5Yjc0MjI4OTY0MmIwZWEzNGNlYjc2YWU4MjU2YTk3ODQ1ZDM3NTk0Y2ZiZmY4YzdhNDQzMDE3NjIyM2JhY2MzYmVmMzk1Y2VkYTEzZmQyMTFjNzEiOiIwMTAwMDEiOk1CRURUTFNfTURfU0hBMzg0Ok1CRURUTFNfTURfU0hBMzg0OiJiYzlmYjhmYzZkNGM2Y2U4ODY1Yzc1ODA2M2U1NTYzOWY5OGFmYzE1ZTVkNzFmNGYxZWNmODlkNmZiYjkwNGFlY2MyODEyNmJkNWU2YjVhN2Y4ZjMxNzI5OTQ5ZGJmOGEiOiI2ZjI4NDExNjZhNjQ0NzFkNGYwYjhlZDBkYmI3ZGIzMjE2MWRhMTNiM2ZlMjZlZTYwMGNmYjJkMTg3Mzg0ZTUyOWYyODA0ODVjZjg0ODMwYWY4Y2IwMTU4NzhjYjdjNGM3NGFkNmFiMzhmZDg5OThmYTc0YjYxMmU4NGFmODEyM2Q3ODVhOGE2MGEyYmIwMDJmN2IxNWE2ZjdjZDZiYmYxODMyNWE0MTJmZDNlYTJhNDg5MDNkMzBkYjI1NDMwODlkOWQ4MmZlMzA0ZGZlNWZiOTAzZjZhMGQxNjI1ZmU5OTRhYTJhYzQ3ZTA0ZWViNmE1MWJlNzcwMzEyYTg4Y2VjODBiYmNmODQ5YWI1N2YyYWY0ZTkzNzBhMGUzNWE0NThkODUwOWZiODllOGIyMmVmNDk5YWYyNWM0MjdlNDhjMjM5MTc0N2QzY2NjNmZkYzFiMDM1Y2JiZTZhNmYxNzQyYmZiNmZiNWQ0MTFkNGM4YmI3M2VlN2Y5YmMyZmJjZjU0NjAzYzgxM2M5YzZkNDc5ZmI5ZjM4NjUwZjRmYThjZTA1YTMyYzQ3YzA3OGQyNzhiN2I5NzE3M2U4MmQ2OTJlMzAzMTQxZmFmNzE1NzNmMmI1YWI1OGM0ZmEwMDkyMDBhM2JlNDc2MzM3MTlkYmVlZDI0ZDYxYmE3YWNhZThhYmZjMmFhNWYzM2YxOGU2ZjRjNDNlYjhiZTNlNGJiZWUxMDkwNTQ0NDAxZTIwMmVmMDZkOTBhYWU3NWE5MzkyNTZiZDM3NGFmYzUwMzBmMTE0NmVhOWQyYWNmNDkxOGRmZTk2ZDEzZWI1ZjE2ZGE1NWVmZDUwNDY1N2UzZDhhZWEwMTBmODljNjAyODhkNzQ5NjM3NDY0MjJiZDdjZiI6IjU3YTU1MTE5OTJiMzBkMzllMTUwYjZhN2E3NjBhNzQxMzZkYjBhMjRiYzYzNWYzYTcwMGE3NGY4NjVhN2M5YzBlZDJlMmUxOTYwMjJhNmQxN2FkN2MyZDNmMTI5NDY4Mjg0NTgwMTViZWZmYjBjMDY1MmRlMmNjOWMzMzY2YWFlYjc2MzRjNWQ2Y2NiZGY2YzdjOTNiOGZlZmYyMWE3ZDI4MzFhYzNlZTczZmQ5OGY5Yzk3MmRjYjgzM2FjNjEzMjNiNzdlYzI0OWRiMGU0ZmI5YmYzM2M3MWFlZjlkMmFhZWY0MGFhZmFiMmNiMzg3MGYwMjI0YzhkMGMzYWRhMmFiYjlkM2RkNjAxYTAzODU5NGQyOTAxNzcyNzdhOGI3OTFlYmNjMjExZDdlNTM3OTMyM2E2MzNjNjJmZTljYzIzOTRiZDdhOTc3YTYwNDEyMmVlOTc5OWU1MzY4Y2MxN2UxYWYxNzk1MDQ2ZTc2ODk5YWE2ZTdiZThmMjdiMWEzZTk2ZGFhODE3ODRkOTY3ZTlhMzZjZjE5MTI5MzZkN2FlMTFmODBhZWQ3OWMyN2M1MzIzN2U3ZmEwMDlkYWY5MjQwZmIyMDVmODNlOGM2ZjhmNTdkM2MzNTIwZTBlNjAyMTNhMjAzNDMyYzE4ZDkyOTc5YjEzNTU1Y2U2ZWFiMDc1ZGRiMzhiNmQ4MjBlMzc4YWM0ZTNhZmNiM2Q1N2U1YzZkM2MxMWYxNjU3NDU5OTZmZGI2MWUzNmI4NDJjNmVjODFkNjQzNzA3M2ZlOWZjOTZhNGRiYzNiMTg4Y2E3NjZhN2Y3ZWY3ODZmMzk3MjljYWRjYzU3MDBmYjBmZmZlY2EwZWIwYmM0NzI0Mzc4M2YxMjk5MTc5NDhkZjliZWUyM2RhODNmYWRhZGZhODc3MDhlMGE4MzlhNjI5NjVhNWQyYjlhN2NkMTZiNDY3NWNlZjZhZmM4ZmJjMjYxNWQ5N2QxMWVkZTQ3ZjRkZmQ4M2U3NDg0N2RjMTg0Y2NkYzRmZCI6MzM0OjAKIAogUlNBU1NBLVBTUyBTaWduYXR1cmUgUlNBLTMwNzIsIFNIQS0zODQsIFNhbHQgTGVuZ3RoIG1heCArIDEKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMzg0CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMzg0CiBwa2NzMV9yc2Fzc2FfcHNzX3NpZ246MzA3MjoiY2E3YjUwYzVmNjVmMjExNWZlYTc2OTFmN2Q5MGMxMjQ4NjZlNzc0ZTY4ZTllYjg5MzA2NTM4OTU2ZmMyMTc1OTNkNDYwMTdiN2RkNzk0MmQ2MzZlMzg0YTM0YzgwMmExNGQ1ZmQ5OTE2Nzk4ZDdkNjE5M2VmMWEyOWUyZmRiZWZkOTU1MjYxNDk2ZDhhYzk3MTM5MjJkNDNiZmM0M2E3YTQxMDc1MmNjYmM4NTRjYzg1MjY4ZjQxMWU3OTNmOWI1Mjc5MDA3YmJjYWNhMzBmYjE2ZmQ5MDMzYTZlYTMxNTY2YjRmMmMyN2YwMTYxMTA3ZTJjZDg5MGJjZjU2M2E1MjJlZTBlYjk2YTAxNmU5MDA3NTk1YTk0MTcyYTRhZWRlZDExZmFkY2I4YWI1ZjAzY2QxNTRmOGI4ZTBlMDY2NmZmNjJiMWNjZGEwMjU5OWVhNDRiYmZjZmFlYTU0MWE1YWMyNmJmMjY3YTU2YTgxNzdhNTBmNmI4N2I0NjBhNTRkIjoiYzU5MTcyMzA0MmQ0Yjg3MzdmNGVmOWRmZWI0MGM2ZDYyZDQzOWVlODY4ODE1OGE0YmUyNGMwYWQxMzBmODUxMTEzY2M1M2Q3NzZjNjNjZDc4MmI5NWNjZmQyNjZiZGIyNTc4Yjc4NDM5YzEyMWRlMzRlODk1NWE3ZmJkMmM2YWUxYTFjMzdiMjRjMTJmNWRjZTE1MTc1ZGQ5ZTIwM2EzYWJkNWJmOWU3MzZiMWZjMTgzZDEwYzQ1NDBjNWNmMmNiZTI2NzY4ZTk0YzFlYWIyYmEzMDA4YjMyZDZkNTA3MTY2OTljNmJmY2JlYzViYmViOTRhMDU0ZGJjZDE2ZDEwZjc0OTcyY2E1ZmU1MzI1NmNkMGFkZThmNTAyZWNlYWVkNjMzNDE0YTliZGI2MjMwMzVhMjM0ZjY1YzY2NjJhMjNkNzkyY2MwZWViMjFhMWY1NWViY2EyNmZmYTFjNTZjOTZmYmI3ZDg3MGZjM2ZmYjE4MWRlODM5ODIzOGFiMWI1IjoiOWM0M2VmNTIyY2FiMTgwMjIyOTdkM2Q3MGZhNDkxZDAzYjk3NWI4NDRiNzZjZWRiYTM1ZDhkODg1ZGRiMjgyNWUzMWZkNWMxMDFiZDllOWEyMTU1MjBiYjhjZGRkZWI2YWIyY2YyZGM4NjA2NTE3OTQ3N2Q4MGY3MzMwMTY5MjlkNzMzNGNkZmRmODE4YzEzNzhhNGI5NDI4ZmExZWUyZTUyNTMyMWY5MDVkMGI5NDlkM2FiYzllOTNkM2YzMGIwNzc3OTUzMzhiZDU1YzI4YTFjZWQxMzRiYjJkNTc1YmZhNDRiMmZkOGNmMWQ1YzU0MTY4YTEyYTFkNmM1MTFmNjJjYTk3M2NkYjcwNGMyMzM0ODdlMWZkMzllNWFkYzg4NzBhZjM1MmVjM2M2YTZhNjQxNTJmYzgyYTFjMTZlY2M0M2QxZDU4MTdmNzZhMWI0NmE1ZmFiOWRiODkyMzMxMWVkZDNjYzAzMmZlZDdlYjYyNTJlNzdkYjY5ZDdiZjllZTM1ZGM0ZGRkMGZiZGI5YTc2YWZlMjVhODJmNDQ5NWFhNGYwNzJjZWY5YjEyNDdjYjM2OGJjYzg2Nzc1NjVhNDcwOTUyNDI3MDJlNjM0MTI4MWY1MDY4MDVlMjBlOGM4OWU5YWYyOGFkZmYyMWM4MDRjNzBjYWIxMGVlMmZlNTIxMmVjMDc5ODdkMTNlN2Q0YjYwNTI5NjExZTRkMzNhMDYyZDcyNGNkZmIxNmNkYzQ4Yjk2NGJhMDdkZmEyNjIwZDVhODgwNWQwYmU5MzM4MDg1MGM2NmYzZmFkYTA1OTgwMmE1OTQ2YmZlM2IwYjEwZTE5YTgyODllYzAxZjY1MTRhYmI4ODNiYjUzYzQ5ZGFkYmJhNDJkNDEyZWEyNjRjOGE1MTIyZmRhMWVhOWI3NDIyODk2NDJiMGVhMzRjZWI3NmFlODI1NmE5Nzg0NWQzNzU5NGNmYmZmOGM3YTQ0MzAxNzYyMjNiYWNjM2JlZjM5NWNlZGExM2ZkMjExYzcxIjoiMDEwMDAxIjpNQkVEVExTX01EX1NIQTM4NDpNQkVEVExTX01EX1NIQTM4NDoiYmM5ZmI4ZmM2ZDRjNmNlODg2NWM3NTgwNjNlNTU2MzlmOThhZmMxNWU1ZDcxZjRmMWVjZjg5ZDZmYmI5MDRhZWNjMjgxMjZiZDVlNmI1YTdmOGYzMTcyOTk0OWRiZjhhIjoiNmYyODQxMTY2YTY0NDcxZDRmMGI4ZWQwZGJiN2RiMzIxNjFkYTEzYiI6IiI6MzM1Ok1CRURUTFNfRVJSX1JTQV9CQURfSU5QVVRfREFUQQogCiBSU0FTU0EtUFNTIFNpZ24uIFJTQS01MjAgU0hBLTUxMjogU2FsdCBMZW4uIDAsIG5vIHBvc3NpYmxlIHNhbHQgc2l6ZQpkaWZmIC0tZ2l0IGEvdGVzdHMvc3VpdGVzL3Rlc3Rfc3VpdGVfcGtjczUuZGF0YSBiL3Rlc3RzL3N1aXRlcy90ZXN0X3N1aXRlX3BrY3M1LmRhdGEKaW5kZXggNTJlNjgyMy4uNjJlMDQzZiAxMDA2NDQKLS0tIGEvdGVzdHMvc3VpdGVzL3Rlc3Rfc3VpdGVfcGtjczUuZGF0YQorKysgYi90ZXN0cy9zdWl0ZXMvdGVzdF9zdWl0ZV9wa2NzNS5kYXRhCkBAIC0xOSw3MSArMTksNzEgQEAKIHBia2RmMl9obWFjOk1CRURUTFNfTURfU0hBMToiNzA2MTczNzMwMDc3NmY3MjY0IjoiNzM2MTAwNmM3NCI6NDA5NjoxNjoiNTZmYTZhYTc1NTQ4MDk5ZGNjMzdkN2YwMzQyNWUwYzMiCiAKIFBCS0RGMiBQeXRob24gaGFzaGxpYiBUZXN0IFZlY3RvciAjMSAoU0hBMjI0KQotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyMjQKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yMjQKIHBia2RmMl9obWFjOk1CRURUTFNfTURfU0hBMjI0OiI3MDYxNzM3Mzc3NmY3MjY0IjoiNzM2MTZjNzQiOjE6MjA6IjNjMTk4Y2JkYjk0NjRiNzg1Nzk2NmJkMDViN2JjOTJiYzFjYzRlNmUiCiAKIFBCS0RGMiBQeXRob24gaGFzaGxpYiBUZXN0IFZlY3RvciAjMiAoU0hBMjI0KQotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyMjQKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yMjQKIHBia2RmMl9obWFjOk1CRURUTFNfTURfU0hBMjI0OiI3MDYxNzM3Mzc3NmY3MjY0IjoiNzM2MTZjNzQiOjI6MjA6IjkzMjAwZmZhOTZjNTc3NmQzOGZhMTBhYmRmOGY1YmZjMDA1NGI5NzEiCiAKIFBCS0RGMiBQeXRob24gaGFzaGxpYiBUZXN0IFZlY3RvciAjMyAoU0hBMjI0KQotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyMjQKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yMjQKIHBia2RmMl9obWFjOk1CRURUTFNfTURfU0hBMjI0OiI3MDYxNzM3Mzc3NmY3MjY0IjoiNzM2MTZjNzQiOjQwOTY6MjA6IjIxOGM0NTNiZjkwNjM1YmQwYTIxYTc1ZDE3MjcwM2ZmNjEwOGVmNjAiCiAKIFBCS0RGMiBQeXRob24gaGFzaGxpYiBUZXN0IFZlY3RvciAjNSAoU0hBMjI0KQotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyMjQKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yMjQKIHBia2RmMl9obWFjOk1CRURUTFNfTURfU0hBMjI0OiI3MDYxNzM3Mzc3NmY3MjY0NTA0MTUzNTM1NzRmNTI0NDcwNjE3MzczNzc2ZjcyNjQiOiI3MzYxNmM3NDUzNDE0YzU0NzM2MTZjNzQ1MzQxNGM1NDczNjE2Yzc0NTM0MTRjNTQ3MzYxNmM3NDUzNDE0YzU0NzM2MTZjNzQiOjQwOTY6MjU6IjA1NmM0YmE0MzhkZWQ5MWZjMTRlMDU5NGU2ZjUyYjg3ZTFmMzY5MGMwZGMwZmJjMDU3IgogCiBQQktERjIgUHl0aG9uIGhhc2hsaWIgVGVzdCBWZWN0b3IgIzYgKFNIQTIyNCkKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjI0CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjI0CiBwYmtkZjJfaG1hYzpNQkVEVExTX01EX1NIQTIyNDoiNzA2MTczNzMwMDc3NmY3MjY0IjoiNzM2MTAwNmM3NCI6NDA5NjoxNjoiOWI0MDExYjY0MWY0MGEyYTUwMGEzMWQ0YTM5MmQxNWMiCiAKIFBCS0RGMiBSRkMgNzkxNCBTZWMgMTEgVGVzdCBWZWN0b3IgIzEgKFNIQTI1NikKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBwYmtkZjJfaG1hYzpNQkVEVExTX01EX1NIQTI1NjoiNzA2MTczNzM3NzY0IjoiNzM2MTZjNzQiOjE6NjQ6IjU1YWMwNDZlNTZlMzA4OWZlYzE2OTFjMjI1NDRiNjA1Zjk0MTg1MjE2ZGRlMDQ2NWU2OGI5ZDU3YzIwZGFjYmM0OWNhOWNjY2YxNzliNjQ1OTkxNjY0YjM5ZDc3ZWYzMTdjNzFiODQ1YjFlMzBiZDUwOTExMjA0MWQzYTE5NzgzIgogCiBQQktERjIgUkZDIDc5MTQgU2VjIDExIFRlc3QgVmVjdG9yICMyIChTSEEyNTYpCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NgogcGJrZGYyX2htYWM6TUJFRFRMU19NRF9TSEEyNTY6IjUwNjE3MzczNzc2ZjcyNjQiOiI0ZTYxNDM2YyI6ODAwMDA6NjQ6IjRkZGNkOGY2MGI5OGJlMjE4MzBjZWU1ZWYyMjcwMWY5NjQxYTQ0MThkMDRjMDQxNGFlZmYwODg3NmIzNGFiNTZhMWQ0MjVhMTIyNTgzMzU0OWFkYjg0MWI1MWM5YjMxNzZhMjcyYmRlYmJhMWQwNzg0NzhmNjJiMzk3ZjMzYzhkIgogCiBQQktERjIgUHl0aG9uIGhhc2hsaWIgVGVzdCBWZWN0b3IgIzEgKFNIQTI1NikKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBwYmtkZjJfaG1hYzpNQkVEVExTX01EX1NIQTI1NjoiNzA2MTczNzM3NzZmNzI2NCI6IjczNjE2Yzc0IjoxOjIwOiIxMjBmYjZjZmZjZjhiMzJjNDNlNzIyNTI1NmM0ZjgzN2E4NjU0OGM5IgogCiBQQktERjIgUHl0aG9uIGhhc2hsaWIgVGVzdCBWZWN0b3IgIzIgKFNIQTI1NikKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBwYmtkZjJfaG1hYzpNQkVEVExTX01EX1NIQTI1NjoiNzA2MTczNzM3NzZmNzI2NCI6IjczNjE2Yzc0IjoyOjIwOiJhZTRkMGM5NWFmNmI0NmQzMmQwYWRmZjkyOGYwNmRkMDJhMzAzZjhlIgogCiBQQktERjIgUHl0aG9uIGhhc2hsaWIgVGVzdCBWZWN0b3IgIzMgKFNIQTI1NikKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBwYmtkZjJfaG1hYzpNQkVEVExTX01EX1NIQTI1NjoiNzA2MTczNzM3NzZmNzI2NCI6IjczNjE2Yzc0Ijo0MDk2OjIwOiJjNWU0NzhkNTkyODhjODQxYWE1MzBkYjY4NDVjNGM4ZDk2Mjg5M2EwIgogCiBQQktERjIgUHl0aG9uIGhhc2hsaWIgVGVzdCBWZWN0b3IgIzUgKFNIQTI1NikKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBwYmtkZjJfaG1hYzpNQkVEVExTX01EX1NIQTI1NjoiNzA2MTczNzM3NzZmNzI2NDUwNDE1MzUzNTc0ZjUyNDQ3MDYxNzM3Mzc3NmY3MjY0IjoiNzM2MTZjNzQ1MzQxNGM1NDczNjE2Yzc0NTM0MTRjNTQ3MzYxNmM3NDUzNDE0YzU0NzM2MTZjNzQ1MzQxNGM1NDczNjE2Yzc0Ijo0MDk2OjI1OiIzNDhjODlkYmNiZDMyYjJmMzJkODE0YjgxMTZlODRjZjJiMTczNDdlYmMxODAwMTgxYyIKIAogUEJLREYyIFB5dGhvbiBoYXNobGliIFRlc3QgVmVjdG9yICM2IChTSEEyNTYpCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NgogcGJrZGYyX2htYWM6TUJFRFRMU19NRF9TSEEyNTY6IjcwNjE3MzczMDA3NzZmNzI2NCI6IjczNjEwMDZjNzQiOjQwOTY6MTY6Ijg5YjY5ZDA1MTZmODI5ODkzYzY5NjIyNjY1MGE4Njg3IgogCiBQQktERjIgUHl0aG9uIGhhc2hsaWIgVGVzdCBWZWN0b3IgIzEgKFNIQTM4NCkKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMzg0CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMzg0CiBwYmtkZjJfaG1hYzpNQkVEVExTX01EX1NIQTM4NDoiNzA2MTczNzM3NzZmNzI2NCI6IjczNjE2Yzc0IjoxOjIwOiJjMGUxNGYwNmU0OWUzMmQ3M2Y5ZjUyZGRmMWQwYzVjNzE5MTYwOTIzIgogCiBQQktERjIgUHl0aG9uIGhhc2hsaWIgVGVzdCBWZWN0b3IgIzIgKFNIQTM4NCkKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMzg0CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMzg0CiBwYmtkZjJfaG1hYzpNQkVEVExTX01EX1NIQTM4NDoiNzA2MTczNzM3NzZmNzI2NCI6IjczNjE2Yzc0IjoyOjIwOiI1NGY3NzVjNmQ3OTBmMjE5MzA0NTkxNjJmYzUzNWRiZjA0YTkzOTE4IgogCiBQQktERjIgUHl0aG9uIGhhc2hsaWIgVGVzdCBWZWN0b3IgIzMgKFNIQTM4NCkKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMzg0CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMzg0CiBwYmtkZjJfaG1hYzpNQkVEVExTX01EX1NIQTM4NDoiNzA2MTczNzM3NzZmNzI2NCI6IjczNjE2Yzc0Ijo0MDk2OjIwOiI1NTk3MjZiZTM4ZGIxMjViYzg1ZWQ3ODk1ZjZlM2NmNTc0YzdhMDFjIgogCiBQQktERjIgUHl0aG9uIGhhc2hsaWIgVGVzdCBWZWN0b3IgIzUgKFNIQTM4NCkKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMzg0CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMzg0CiBwYmtkZjJfaG1hYzpNQkVEVExTX01EX1NIQTM4NDoiNzA2MTczNzM3NzZmNzI2NDUwNDE1MzUzNTc0ZjUyNDQ3MDYxNzM3Mzc3NmY3MjY0IjoiNzM2MTZjNzQ1MzQxNGM1NDczNjE2Yzc0NTM0MTRjNTQ3MzYxNmM3NDUzNDE0YzU0NzM2MTZjNzQ1MzQxNGM1NDczNjE2Yzc0Ijo0MDk2OjI1OiI4MTkxNDNhZDY2ZGY5YTU1MjU1OWI5ZTEzMWM1MmFlNmM1YzFiMGVlZDE4ZjRkMjgzYiIKIAogUEJLREYyIFB5dGhvbiBoYXNobGliIFRlc3QgVmVjdG9yICM2IChTSEEzODQpCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTM4NAorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzM4NAogcGJrZGYyX2htYWM6TUJFRFRMU19NRF9TSEEzODQ6IjcwNjE3MzczMDA3NzZmNzI2NCI6IjczNjEwMDZjNzQiOjQwOTY6MTY6ImEzZjAwYWM4NjU3ZTA5NWY4ZTA4MjNkMjMyZmM2MGIzIgogCiBQQktERjIgUHl0aG9uIGhhc2hsaWIgVGVzdCBWZWN0b3IgIzEgKFNIQTUxMikKQEAgLTEzMSwxMSArMTMxLDExIEBACiBwYmVzMl9lbmNyeXB0Ok1CRURUTFNfQVNOMV9DT05TVFJVQ1RFRCB8IE1CRURUTFNfQVNOMV9TRVFVRU5DRToiMzAxQjA2MDkyQTg2NDg4NkY3MEQwMTA1MEMzMDBFMDQwODAxMDIwMzA0MDUwNjA3MDgwMjAyMjcxMDMwMUQwNjA5NjA4NjQ4MDE2NTAzMDQwMTAyMDQxMDJGOTA0Rjc1QjQ3QjQ4QTYxODA2OEQ3OUJEOUE4MjZDIjoiNTA2MTczNzM3NzZGNzI2NDUwNjE3MzczNzc2RjcyNjQ1MDYxNzM3Mzc3NkY3MjY0IjoiNTQ2ODY5NzMyMDY5NzMyMDYxMjA2NjY5NmM2NTIwNzQ2ZjIwNjI2NTIwNjU2ZTYzNzI3OTcwNzQ2NTY0MjA3NzY5NzQ2ODIwNTA0MjQ1NTMzMjJjMjA3NzY5NzQ2ODIwNjEyMDZiNjU3OTIwNjc2NTZlNjU3MjYxNzQ2NTY0MjA3NTczNjk2ZTY3MjA2MTIwNzA3MjY2MjAyODUzNDg0MTMyMzUzNjI5Ijo5NjowOiIwYzk1M2MzYTliZTE1MDJmNGQxZGYxYjgyZGY5ZDk5YTYxZWJkMmY2MGVkNTcwZDE2YjI0MWY3MGI5ZTYxZjMyOTE3NDc0N2QwNTJlZmU1YzM5YmVjOWQwZjc0MDRmODRhZjI0MjkxNGUyZWNiNzRlNmUzNmU4YjQxNDdiZDBhMDkyYTgyZGY3ODlhYTMzNTFlMGRlOWY3NWIyODVjY2I3NDI4MDY1MjY3NzFjODM1M2ZmYjY2MTc2MTg4YjU1NmUiCiAKIFBCRVMyIEVuY3J5cHQsIEFFUy0xOTItQ0JDIChPSywgZ2VuZXJhdGVkIHdpdGggT3BlblNTTCkKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2Ok1CRURUTFNfQUVTX0M6TUJFRFRMU19DSVBIRVJfTU9ERV9DQkM6IU1CRURUTFNfQUVTX09OTFlfMTI4X0JJVF9LRVlfTEVOR1RIOk1CRURUTFNfQ0lQSEVSX1BBRERJTkdfUEtDUzcKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTY6TUJFRFRMU19BRVNfQzpNQkVEVExTX0NJUEhFUl9NT0RFX0NCQzohTUJFRFRMU19BRVNfT05MWV8xMjhfQklUX0tFWV9MRU5HVEg6TUJFRFRMU19DSVBIRVJfUEFERElOR19QS0NTNwogcGJlczJfZW5jcnlwdDpNQkVEVExTX0FTTjFfQ09OU1RSVUNURUQgfCBNQkVEVExTX0FTTjFfU0VRVUVOQ0U6IjMwMmEwNjA5MkE4NjQ4ODZGNzBEMDEwNTBDMzAxZDA0MDgwMTAyMDMwNDA1MDYwNzA4MDIwMjI3MTAwMjAxMTgzMDBhMDYwODJBODY0ODg2RjcwRDAyMDkzMDFEMDYwOTYwODY0ODAxNjUwMzA0MDExNjA0MTAyRjkwNEY3NUI0N0I0OEE2MTgwNjhENzlCRDlBODI2QyI6IjUwNjE3MzczNzc2RjcyNjQ1MDYxNzM3Mzc3NkY3MjY0NTA2MTczNzM3NzZGNzI2NCI6IjU0Njg2OTczMjA2OTczMjA2MTIwNjY2OTZjNjUyMDc0NmYyMDYyNjUyMDY1NmU2MzcyNzk3MDc0NjU2NDIwNzc2OTc0NjgyMDUwNDI0NTUzMzIyYzIwNzc2OTc0NjgyMDYxMjA2YjY1NzkyMDY3NjU2ZTY1NzI2MTc0NjU2NDIwNzU3MzY5NmU2NzIwNjEyMDcwNzI2NjIwMjg1MzQ4NDEzMjM1MzYyOSI6OTY6MDoiN2M2NDhhOWRmOTc1OWJhNDkyODNjMjYxMjY5YTcxYmMwNmQ0NWY2YzI0YWI2NDMxZDc3YjJlY2VjMWZkNmQxYWE3NTFiZDA1YjFjMDI2ZmM4ZmY5MWJhZWIxYjE4MzhhYTBmODI1YjIzYmU3OWJjMDkzMzFkMDYwNzE4MWUyMzRkZmVhNGFiM2NiZjc5OTc3NDc1MTY0ODZiNjg2NWU4NWRlOTVkYzliNjRkNDU0NjIxOTdjODkxYjMxYWY2Yzk0IgogCiBQQkVTMiBFbmNyeXB0LCBBRVMtMjU2LUNCQyAoT0ssIGdlbmVyYXRlZCB3aXRoIE9wZW5TU0wpCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NjpNQkVEVExTX0FFU19DOk1CRURUTFNfQ0lQSEVSX01PREVfQ0JDOiFNQkVEVExTX0FFU19PTkxZXzEyOF9CSVRfS0VZX0xFTkdUSDpNQkVEVExTX0NJUEhFUl9QQURESU5HX1BLQ1M3CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2Ok1CRURUTFNfQUVTX0M6TUJFRFRMU19DSVBIRVJfTU9ERV9DQkM6IU1CRURUTFNfQUVTX09OTFlfMTI4X0JJVF9LRVlfTEVOR1RIOk1CRURUTFNfQ0lQSEVSX1BBRERJTkdfUEtDUzcKIHBiZXMyX2VuY3J5cHQ6TUJFRFRMU19BU04xX0NPTlNUUlVDVEVEIHwgTUJFRFRMU19BU04xX1NFUVVFTkNFOiIzMDI3MDYwOTJBODY0ODg2RjcwRDAxMDUwQzMwMWEwNDA4MDEwMjAzMDQwNTA2MDcwODAyMDIyNzEwMzAwYTA2MDgyQTg2NDg4NkY3MEQwMjA5MzAxRDA2MDk2MDg2NDgwMTY1MDMwNDAxMkEwNDEwMkY5MDRGNzVCNDdCNDhBNjE4MDY4RDc5QkQ5QTgyNkMiOiI1MDYxNzM3Mzc3NkY3MjY0NTA2MTczNzM3NzZGNzI2NDUwNjE3MzczNzc2RjcyNjQiOiI1NDY4Njk3MzIwNjk3MzIwNjEyMDY2Njk2YzY1MjA3NDZmMjA2MjY1MjA2NTZlNjM3Mjc5NzA3NDY1NjQyMDc3Njk3NDY4MjA1MDQyNDU1MzMyMmMyMDc3Njk3NDY4MjA2MTIwNmI2NTc5MjA2NzY1NmU2NTcyNjE3NDY1NjQyMDc1NzM2OTZlNjcyMDYxMjA3MDcyNjYyMDI4NTM0ODQxMzIzNTM2MjkiOjk2OjA6IjcwNzdlNmU4ZTY3OTk2MmM2ZmVkYTY5YzcwNGQ1ODUwN2QxNDNjZjc3YmUyODRmNzczZGZjYWE0YTVmNWU3YzFjZDU1MjcyMDQ5MTYzMDJkNDM1MDcxYzAxMTI2ZjRhYTc2MjA1Y2U2MTk5OGQ3YjhmZGYwNjVhNzdkNGE3NzYzNDM3NmI5OTY4ZTQ3MjJjMjdmMmFjODVkNzk1NjVmZjRmY2E5MjA0ZDNlNGJjOGM1YmQ1M2MxNzg1YmI2ZTU2NiIKIAogUEJFUzIgRGVjcnlwdCAoT0spCkBAIC0xNTksMTEgKzE1OSwxMSBAQAogcGJlczJfZGVjcnlwdDpNQkVEVExTX0FTTjFfQ09OU1RSVUNURUQgfCBNQkVEVExTX0FTTjFfU0VRVUVOQ0U6IjMwMUIwNjA5MkE4NjQ4ODZGNzBEMDEwNTBDMzAwRTA0MDgwMTAyMDMwNDA1MDYwNzA4MDIwMjI3MTAzMDFEMDYwOTYwODY0ODAxNjUwMzA0MDEwMjA0MTAyRjkwNEY3NUI0N0I0OEE2MTgwNjhENzlCRDlBODI2QyI6IjUwNjE3MzczNzc2RjcyNjQ1MDYxNzM3Mzc3NkY3MjY0NTA2MTczNzM3NzZGNzI2NCI6IjBjOTUzYzNhOWJlMTUwMmY0ZDFkZjFiODJkZjlkOTlhNjFlYmQyZjYwZWQ1NzBkMTZiMjQxZjcwYjllNjFmMzI5MTc0NzQ3ZDA1MmVmZTVjMzliZWM5ZDBmNzQwNGY4NGFmMjQyOTE0ZTJlY2I3NGU2ZTM2ZThiNDE0N2JkMGEwOTJhODJkZjc4OWFhMzM1MWUwZGU5Zjc1YjI4NWNjYjc0MjgwNjUyNjc3MWM4MzUzZmZiNjYxNzYxODhiNTU2ZSI6OTY6MDoiNTQ2ODY5NzMyMDY5NzMyMDYxMjA2NjY5NmM2NTIwNzQ2ZjIwNjI2NTIwNjU2ZTYzNzI3OTcwNzQ2NTY0MjA3NzY5NzQ2ODIwNTA0MjQ1NTMzMjJjMjA3NzY5NzQ2ODIwNjEyMDZiNjU3OTIwNjc2NTZlNjU3MjYxNzQ2NTY0MjA3NTczNjk2ZTY3MjA2MTIwNzA3MjY2MjAyODUzNDg0MTMyMzUzNjI5IgogCiBQQkVTMiBEZWNyeXB0IEFFUy0xOTItQ0JDIChPSywgZ2VuZXJhdGVkIHdpdGggT3BlblNTTCkKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2Ok1CRURUTFNfQUVTX0M6TUJFRFRMU19DSVBIRVJfTU9ERV9DQkM6IU1CRURUTFNfQUVTX09OTFlfMTI4X0JJVF9LRVlfTEVOR1RICitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2Ok1CRURUTFNfQUVTX0M6TUJFRFRMU19DSVBIRVJfTU9ERV9DQkM6IU1CRURUTFNfQUVTX09OTFlfMTI4X0JJVF9LRVlfTEVOR1RICiBwYmVzMl9kZWNyeXB0Ok1CRURUTFNfQVNOMV9DT05TVFJVQ1RFRCB8IE1CRURUTFNfQVNOMV9TRVFVRU5DRToiMzAyYTA2MDkyQTg2NDg4NkY3MEQwMTA1MEMzMDFkMDQwODAxMDIwMzA0MDUwNjA3MDgwMjAyMjcxMDAyMDExODMwMGEwNjA4MkE4NjQ4ODZGNzBEMDIwOTMwMUQwNjA5NjA4NjQ4MDE2NTAzMDQwMTE2MDQxMDJGOTA0Rjc1QjQ3QjQ4QTYxODA2OEQ3OUJEOUE4MjZDIjoiNTA2MTczNzM3NzZGNzI2NDUwNjE3MzczNzc2RjcyNjQ1MDYxNzM3Mzc3NkY3MjY0IjoiN2M2NDhhOWRmOTc1OWJhNDkyODNjMjYxMjY5YTcxYmMwNmQ0NWY2YzI0YWI2NDMxZDc3YjJlY2VjMWZkNmQxYWE3NTFiZDA1YjFjMDI2ZmM4ZmY5MWJhZWIxYjE4MzhhYTBmODI1YjIzYmU3OWJjMDkzMzFkMDYwNzE4MWUyMzRkZmVhNGFiM2NiZjc5OTc3NDc1MTY0ODZiNjg2NWU4NWRlOTVkYzliNjRkNDU0NjIxOTdjODkxYjMxYWY2Yzk0Ijo5NjowOiI1NDY4Njk3MzIwNjk3MzIwNjEyMDY2Njk2YzY1MjA3NDZmMjA2MjY1MjA2NTZlNjM3Mjc5NzA3NDY1NjQyMDc3Njk3NDY4MjA1MDQyNDU1MzMyMmMyMDc3Njk3NDY4MjA2MTIwNmI2NTc5MjA2NzY1NmU2NTcyNjE3NDY1NjQyMDc1NzM2OTZlNjcyMDYxMjA3MDcyNjYyMDI4NTM0ODQxMzIzNTM2MjkiCiAKIFBCRVMyIERlY3J5cHQgQUVTLTI1Ni1DQkMgKE9LLCBnZW5lcmF0ZWQgd2l0aCBPcGVuU1NMKQotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTY6TUJFRFRMU19BRVNfQzpNQkVEVExTX0NJUEhFUl9NT0RFX0NCQzohTUJFRFRMU19BRVNfT05MWV8xMjhfQklUX0tFWV9MRU5HVEgKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTY6TUJFRFRMU19BRVNfQzpNQkVEVExTX0NJUEhFUl9NT0RFX0NCQzohTUJFRFRMU19BRVNfT05MWV8xMjhfQklUX0tFWV9MRU5HVEgKIHBiZXMyX2RlY3J5cHQ6TUJFRFRMU19BU04xX0NPTlNUUlVDVEVEIHwgTUJFRFRMU19BU04xX1NFUVVFTkNFOiIzMDI3MDYwOTJBODY0ODg2RjcwRDAxMDUwQzMwMWEwNDA4MDEwMjAzMDQwNTA2MDcwODAyMDIyNzEwMzAwYTA2MDgyQTg2NDg4NkY3MEQwMjA5MzAxRDA2MDk2MDg2NDgwMTY1MDMwNDAxMkEwNDEwMkY5MDRGNzVCNDdCNDhBNjE4MDY4RDc5QkQ5QTgyNkMiOiI1MDYxNzM3Mzc3NkY3MjY0NTA2MTczNzM3NzZGNzI2NDUwNjE3MzczNzc2RjcyNjQiOiI3MDc3ZTZlOGU2Nzk5NjJjNmZlZGE2OWM3MDRkNTg1MDdkMTQzY2Y3N2JlMjg0Zjc3M2RmY2FhNGE1ZjVlN2MxY2Q1NTI3MjA0OTE2MzAyZDQzNTA3MWMwMTEyNmY0YWE3NjIwNWNlNjE5OThkN2I4ZmRmMDY1YTc3ZDRhNzc2MzQzNzZiOTk2OGU0NzIyYzI3ZjJhYzg1ZDc5NTY1ZmY0ZmNhOTIwNGQzZTRiYzhjNWJkNTNjMTc4NWJiNmU1NjYiOjk2OjA6IjU0Njg2OTczMjA2OTczMjA2MTIwNjY2OTZjNjUyMDc0NmYyMDYyNjUyMDY1NmU2MzcyNzk3MDc0NjU2NDIwNzc2OTc0NjgyMDUwNDI0NTUzMzIyYzIwNzc2OTc0NjgyMDYxMjA2YjY1NzkyMDY3NjU2ZTY1NzI2MTc0NjU2NDIwNzU3MzY5NmU2NzIwNjEyMDcwNzI2NjIwMjg1MzQ4NDEzMjM1MzYyOSIKIAogUEJFUzIgRGVjcnlwdCAoYmFkIHBhcmFtcyB0YWcpCmRpZmYgLS1naXQgYS90ZXN0cy9zdWl0ZXMvdGVzdF9zdWl0ZV9wa2NzNy5kYXRhIGIvdGVzdHMvc3VpdGVzL3Rlc3Rfc3VpdGVfcGtjczcuZGF0YQppbmRleCBkM2I4M2NkLi40YmFiMzI5IDEwMDY0NAotLS0gYS90ZXN0cy9zdWl0ZXMvdGVzdF9zdWl0ZV9wa2NzNy5kYXRhCisrKyBiL3Rlc3RzL3N1aXRlcy90ZXN0X3N1aXRlX3BrY3M3LmRhdGEKQEAgLTEsMzI1NyArMSwzMjU3IEBACiBQS0NTNyBTaWduZWQgRGF0YSBQYXJzZSBQYXNzIFNIQTI1NiAjMQotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTY6TUJFRFRMU19SU0FfQwotcGtjczdfcGFyc2U6ImRhdGFfZmlsZXMvcGtjczdfZGF0YV9jZXJ0X3NpZ25lZF9zaGEyNTYuZGVyIjpNQkVEVExTX1BLQ1M3X1NJR05FRF9EQVRBCitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2Ok1CRURUTFNfUlNBX0MKK3BrY3M3X3BhcnNlOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9wa2NzN19kYXRhX2NlcnRfc2lnbmVkX3NoYTI1Ni5kZXIiOk1CRURUTFNfUEtDUzdfU0lHTkVEX0RBVEEKIAogUEtDUzcgU2lnbmVkIERhdGEgUGFyc2UgUGFzcyBTSEExICMyCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTE6TUJFRFRMU19NRF9DQU5fU0hBMjU2Ok1CRURUTFNfUlNBX0MKLXBrY3M3X3BhcnNlOiJkYXRhX2ZpbGVzL3BrY3M3X2RhdGFfY2VydF9zaWduZWRfc2hhMS5kZXIiOk1CRURUTFNfUEtDUzdfU0lHTkVEX0RBVEEKK2RlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMTpQU0FfV0FOVF9BTEdfU0hBXzI1NjpNQkVEVExTX1JTQV9DCitwa2NzN19wYXJzZToiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvcGtjczdfZGF0YV9jZXJ0X3NpZ25lZF9zaGExLmRlciI6TUJFRFRMU19QS0NTN19TSUdORURfREFUQQogCiBQS0NTNyBTaWduZWQgRGF0YSBQYXJzZSBQYXNzIFdpdGhvdXQgQ0VSVCAjMwotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKLXBrY3M3X3BhcnNlOiJkYXRhX2ZpbGVzL3BrY3M3X2RhdGFfd2l0aG91dF9jZXJ0X3NpZ25lZC5kZXIiOk1CRURUTFNfUEtDUzdfU0lHTkVEX0RBVEEKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKK3BrY3M3X3BhcnNlOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9wa2NzN19kYXRhX3dpdGhvdXRfY2VydF9zaWduZWQuZGVyIjpNQkVEVExTX1BLQ1M3X1NJR05FRF9EQVRBCiAKIFBLQ1M3IFNpZ25lZCBEYXRhIFBhcnNlIHdpdGggemVybyBzaWduZXJzCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NgotcGtjczdfcGFyc2U6ImRhdGFfZmlsZXMvcGtjczdfZGF0YV9ub19zaWduZXJzLmRlciI6TUJFRFRMU19QS0NTN19TSUdORURfREFUQQorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NgorcGtjczdfcGFyc2U6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3BrY3M3X2RhdGFfbm9fc2lnbmVycy5kZXIiOk1CRURUTFNfUEtDUzdfU0lHTkVEX0RBVEEKIAogUEtDUzcgU2lnbmVkIERhdGEgUGFyc2UgRmFpbCB3aXRoIG11bHRpcGxlIGNlcnRzICM0Ci1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NjpNQkVEVExTX1JTQV9DCi1wa2NzN19wYXJzZToiZGF0YV9maWxlcy9wa2NzN19kYXRhX211bHRpcGxlX2NlcnRzX3NpZ25lZC5kZXIiOk1CRURUTFNfRVJSX1BLQ1M3X0ZFQVRVUkVfVU5BVkFJTEFCTEUKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTY6TUJFRFRMU19SU0FfQworcGtjczdfcGFyc2U6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3BrY3M3X2RhdGFfbXVsdGlwbGVfY2VydHNfc2lnbmVkLmRlciI6TUJFRFRMU19FUlJfUEtDUzdfRkVBVFVSRV9VTkFWQUlMQUJMRQogCiBQS0NTNyBTaWduZWQgRGF0YSBQYXJzZSBGYWlsIHdpdGggY29ycnVwdGVkIGNlcnQgIzUuMAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTY6TUJFRFRMU19SU0FfQwotcGtjczdfcGFyc2U6ImRhdGFfZmlsZXMvcGtjczdfZGF0YV9zaWduZWRfYmFkY2VydC5kZXIiOk1CRURUTFNfRVJSX1BLQ1M3X0lOVkFMSURfQ0VSVAorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NjpNQkVEVExTX1JTQV9DCitwa2NzN19wYXJzZToiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvcGtjczdfZGF0YV9zaWduZWRfYmFkY2VydC5kZXIiOk1CRURUTFNfRVJSX1BLQ1M3X0lOVkFMSURfQ0VSVAogCiBQS0NTNyBTaWduZWQgRGF0YSBQYXJzZSBGYWlsIHdpdGggZGlzYWJsZWQgYWxnICM1LjEKIGRlcGVuZHNfb246TUJFRFRMU19SU0FfQzohTUJFRFRMU19NRF9DQU5fU0hBNTEyCi1wa2NzN19wYXJzZToiZGF0YV9maWxlcy9wa2NzN19kYXRhX2NlcnRfc2lnbmVkX3NoYTUxMi5kZXIiOk1CRURUTFNfRVJSX1BLQ1M3X0lOVkFMSURfQUxHCitwa2NzN19wYXJzZToiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvcGtjczdfZGF0YV9jZXJ0X3NpZ25lZF9zaGE1MTIuZGVyIjpNQkVEVExTX0VSUl9QS0NTN19JTlZBTElEX0FMRwogCiBQS0NTNyBQYXJzZSBGYWlsIHdpdGggSW5saW5lZCBDb250ZW50IEluZm8gIzUuMgotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTY6TUJFRFRMU19SU0FfQwotcGtjczdfcGFyc2U6ImRhdGFfZmlsZXMvcGtjczdfZGF0YV93aXRoX3NpZ25hdHVyZS5kZXIiOk1CRURUTFNfRVJSX1BLQ1M3X0ZFQVRVUkVfVU5BVkFJTEFCTEUKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTY6TUJFRFRMU19SU0FfQworcGtjczdfcGFyc2U6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3BrY3M3X2RhdGFfd2l0aF9zaWduYXR1cmUuZGVyIjpNQkVEVExTX0VSUl9QS0NTN19GRUFUVVJFX1VOQVZBSUxBQkxFCiAKIFBLQ1M3IFNpZ25lZCBEYXRhIFBhcnNlIEZhaWwgd2l0aCBubyBSU0EgIzUuMwotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTY6IU1CRURUTFNfUlNBX0MKLXBrY3M3X3BhcnNlOiJkYXRhX2ZpbGVzL3BrY3M3X2RhdGFfY2VydF9zaWduZWRfc2hhMjU2LmRlciI6TUJFRFRMU19FUlJfUEtDUzdfSU5WQUxJRF9DRVJUCitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2OiFNQkVEVExTX1JTQV9DCitwa2NzN19wYXJzZToiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvcGtjczdfZGF0YV9jZXJ0X3NpZ25lZF9zaGEyNTYuZGVyIjpNQkVEVExTX0VSUl9QS0NTN19JTlZBTElEX0NFUlQKIAogUEtDUzcgU2lnbmVkIERhdGEgUGFyc2UgRmFpbCB3aXRoIGNvcnJ1cHRlZCBzaWduZXIgaW5mbyAjNgotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTY6TUJFRFRMU19SU0FfQwotcGtjczdfcGFyc2U6ImRhdGFfZmlsZXMvcGtjczdfZGF0YV9zaWduZWRfYmFkc2lnbmVyLmRlciI6TUJFRFRMU19FUlJPUl9BREQoTUJFRFRMU19FUlJfUEtDUzdfSU5WQUxJRF9TSUdORVJfSU5GTyxNQkVEVExTX0VSUl9BU04xX1VORVhQRUNURURfVEFHKQorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NjpNQkVEVExTX1JTQV9DCitwa2NzN19wYXJzZToiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvcGtjczdfZGF0YV9zaWduZWRfYmFkc2lnbmVyLmRlciI6TUJFRFRMU19FUlJPUl9BREQoTUJFRFRMU19FUlJfUEtDUzdfSU5WQUxJRF9TSUdORVJfSU5GTyxNQkVEVExTX0VSUl9BU04xX1VORVhQRUNURURfVEFHKQogCiBQS0NTNyBTaWduZWQgRGF0YSBQYXJzZSBGYWlsIHdpdGggY29ycnVwdGVkIHNpZ25lciBpbmZvWzFdIGludmFsaWQgc2l6ZSAjNi4xCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NjpNQkVEVExTX1JTQV9DCi1wa2NzN19wYXJzZToiZGF0YV9maWxlcy9wa2NzN19kYXRhX3NpZ25lZF9iYWRzaWduZXIxX2JhZHNpemUuZGVyIjpNQkVEVExTX0VSUl9QS0NTN19JTlZBTElEX1NJR05FUl9JTkZPCitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2Ok1CRURUTFNfUlNBX0MKK3BrY3M3X3BhcnNlOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9wa2NzN19kYXRhX3NpZ25lZF9iYWRzaWduZXIxX2JhZHNpemUuZGVyIjpNQkVEVExTX0VSUl9QS0NTN19JTlZBTElEX1NJR05FUl9JTkZPCiAKIFBLQ1M3IFNpZ25lZCBEYXRhIFBhcnNlIEZhaWwgd2l0aCBjb3JydXB0ZWQgc2lnbmVyIGluZm9bMl0gaW52YWxpZCBzaXplICM2LjIKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2Ok1CRURUTFNfUlNBX0MKLXBrY3M3X3BhcnNlOiJkYXRhX2ZpbGVzL3BrY3M3X2RhdGFfc2lnbmVkX2JhZHNpZ25lcjJfYmFkc2l6ZS5kZXIiOk1CRURUTFNfRVJSX1BLQ1M3X0lOVkFMSURfU0lHTkVSX0lORk8KK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTY6TUJFRFRMU19SU0FfQworcGtjczdfcGFyc2U6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3BrY3M3X2RhdGFfc2lnbmVkX2JhZHNpZ25lcjJfYmFkc2l6ZS5kZXIiOk1CRURUTFNfRVJSX1BLQ1M3X0lOVkFMSURfU0lHTkVSX0lORk8KIAogUEtDUzcgU2lnbmVkIERhdGEgUGFyc2UgRmFpbCB3aXRoIGNvcnJ1cHRlZCBzaWduZXIgaW5mb1sxXSB1bmV4cGVjdGVkIHRhZyAjNi4zCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NjpNQkVEVExTX1JTQV9DCi1wa2NzN19wYXJzZToiZGF0YV9maWxlcy9wa2NzN19kYXRhX3NpZ25lZF9iYWRzaWduZXIxX2JhZHRhZy5kZXIiOk1CRURUTFNfRVJST1JfQUREKE1CRURUTFNfRVJSX1BLQ1M3X0lOVkFMSURfU0lHTkVSX0lORk8sTUJFRFRMU19FUlJfQVNOMV9VTkVYUEVDVEVEX1RBRykKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTY6TUJFRFRMU19SU0FfQworcGtjczdfcGFyc2U6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3BrY3M3X2RhdGFfc2lnbmVkX2JhZHNpZ25lcjFfYmFkdGFnLmRlciI6TUJFRFRMU19FUlJPUl9BREQoTUJFRFRMU19FUlJfUEtDUzdfSU5WQUxJRF9TSUdORVJfSU5GTyxNQkVEVExTX0VSUl9BU04xX1VORVhQRUNURURfVEFHKQogCiBQS0NTNyBTaWduZWQgRGF0YSBQYXJzZSBGYWlsIHdpdGggY29ycnVwdGVkIHNpZ25lciBpbmZvWzJdIHVuZXhwZWN0ZWQgdGFnICM2LjQKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2Ok1CRURUTFNfUlNBX0MKLXBrY3M3X3BhcnNlOiJkYXRhX2ZpbGVzL3BrY3M3X2RhdGFfc2lnbmVkX2JhZHNpZ25lcjJfYmFkdGFnLmRlciI6TUJFRFRMU19FUlJPUl9BREQoTUJFRFRMU19FUlJfUEtDUzdfSU5WQUxJRF9TSUdORVJfSU5GTyxNQkVEVExTX0VSUl9BU04xX1VORVhQRUNURURfVEFHKQorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NjpNQkVEVExTX1JTQV9DCitwa2NzN19wYXJzZToiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvcGtjczdfZGF0YV9zaWduZWRfYmFkc2lnbmVyMl9iYWR0YWcuZGVyIjpNQkVEVExTX0VSUk9SX0FERChNQkVEVExTX0VSUl9QS0NTN19JTlZBTElEX1NJR05FUl9JTkZPLE1CRURUTFNfRVJSX0FTTjFfVU5FWFBFQ1RFRF9UQUcpCiAKIFBLQ1M3IFNpZ25lZCBEYXRhIFBhcnNlIEZhaWwgd2l0aCBjb3JydXB0ZWQgc2lnbmVyIGluZm9bMV0gZnV6eiBiYWQgIzYuNQotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTY6TUJFRFRMU19SU0FfQwotcGtjczdfcGFyc2U6ImRhdGFfZmlsZXMvcGtjczdfZGF0YV9zaWduZWRfYmFkc2lnbmVyMV9mdXp6YmFkLmRlciI6TUJFRFRMU19FUlJfUEtDUzdfSU5WQUxJRF9TSUdORVJfSU5GTworZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NjpNQkVEVExTX1JTQV9DCitwa2NzN19wYXJzZToiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvcGtjczdfZGF0YV9zaWduZWRfYmFkc2lnbmVyMV9mdXp6YmFkLmRlciI6TUJFRFRMU19FUlJfUEtDUzdfSU5WQUxJRF9TSUdORVJfSU5GTwogCiBQS0NTNyBTaWduZWQgRGF0YSBQYXJzZSBGYWlsIHdpdGggY29ycnVwdGVkIHNpZ25lciBpbmZvWzJdIGZ1enogYmFkICM2LjYKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2Ok1CRURUTFNfUlNBX0MKLXBrY3M3X3BhcnNlOiJkYXRhX2ZpbGVzL3BrY3M3X2RhdGFfc2lnbmVkX2JhZHNpZ25lcjJfZnV6emJhZC5kZXIiOk1CRURUTFNfRVJSX1BLQ1M3X0lOVkFMSURfU0lHTkVSX0lORk8KK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTY6TUJFRFRMU19SU0FfQworcGtjczdfcGFyc2U6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3BrY3M3X2RhdGFfc2lnbmVkX2JhZHNpZ25lcjJfZnV6emJhZC5kZXIiOk1CRURUTFNfRVJSX1BLQ1M3X0lOVkFMSURfU0lHTkVSX0lORk8KIAogUEtDUzcgU2lnbmVkIERhdGEgUGFyc2UgRmFpbCBWZXJzaW9uIG90aGVyIHRoYW4gMSAjNwotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKLXBrY3M3X3BhcnNlOiJkYXRhX2ZpbGVzL3BrY3M3X2RhdGFfY2VydF9zaWduZWRfdjIuZGVyIjpNQkVEVExTX0VSUl9QS0NTN19JTlZBTElEX1ZFUlNJT04KK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKK3BrY3M3X3BhcnNlOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9wa2NzN19kYXRhX2NlcnRfc2lnbmVkX3YyLmRlciI6TUJFRFRMU19FUlJfUEtDUzdfSU5WQUxJRF9WRVJTSU9OCiAKIFBLQ1M3IFNpZ25lZCBEYXRhIFBhcnNlIEZhaWwgRW5jcnlwdGVkIENvbnRlbnQgIzgKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2Ci1wa2NzN19wYXJzZToiZGF0YV9maWxlcy9wa2NzN19kYXRhX2NlcnRfZW5jcnlwdGVkLmRlciI6TUJFRFRMU19FUlJfUEtDUzdfRkVBVFVSRV9VTkFWQUlMQUJMRQorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NgorcGtjczdfcGFyc2U6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3BrY3M3X2RhdGFfY2VydF9lbmNyeXB0ZWQuZGVyIjpNQkVEVExTX0VSUl9QS0NTN19GRUFUVVJFX1VOQVZBSUxBQkxFCiAKIFBLQ1M3IFNpZ25lZCBEYXRhIFZlcmlmaWNhdGlvbiBQYXNzIHplcm8tbGVuIGRhdGEKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMTpNQkVEVExTX01EX0NBTl9TSEEyNTYKLXBrY3M3X3ZlcmlmeToiZGF0YV9maWxlcy9wa2NzN196ZXJvbGVuZGF0YV9kZXRhY2hlZC5kZXIiOiJkYXRhX2ZpbGVzL3BrY3M3LXJzYS1zaGEyNTYtMS5kZXIiOiJkYXRhX2ZpbGVzL3BrY3M3X3plcm9sZW5kYXRhLmJpbiI6MDowCitkZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTE6UFNBX1dBTlRfQUxHX1NIQV8yNTYKK3BrY3M3X3ZlcmlmeToiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvcGtjczdfemVyb2xlbmRhdGFfZGV0YWNoZWQuZGVyIjoiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvcGtjczctcnNhLXNoYTI1Ni0xLmRlciI6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3BrY3M3X3plcm9sZW5kYXRhLmJpbiI6MDowCiAKIFBLQ1M3IFNpZ25lZCBEYXRhIFZlcmlmaWNhdGlvbiBGYWlsIHplcm8tbGVuIGRhdGEKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMTpNQkVEVExTX01EX0NBTl9TSEEyNTY6TUJFRFRMU19SU0FfQwotcGtjczdfdmVyaWZ5OiJkYXRhX2ZpbGVzL3BrY3M3X3plcm9sZW5kYXRhX2RldGFjaGVkLmRlciI6ImRhdGFfZmlsZXMvcGtjczctcnNhLXNoYTI1Ni0yLmRlciI6ImRhdGFfZmlsZXMvcGtjczdfemVyb2xlbmRhdGEuYmluIjowOk1CRURUTFNfRVJSX1JTQV9WRVJJRllfRkFJTEVECitkZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTE6UFNBX1dBTlRfQUxHX1NIQV8yNTY6TUJFRFRMU19SU0FfQworcGtjczdfdmVyaWZ5OiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9wa2NzN196ZXJvbGVuZGF0YV9kZXRhY2hlZC5kZXIiOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9wa2NzNy1yc2Etc2hhMjU2LTIuZGVyIjoiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvcGtjczdfemVyb2xlbmRhdGEuYmluIjowOk1CRURUTFNfRVJSX1JTQV9WRVJJRllfRkFJTEVECiAKIFBLQ1M3IFNpZ25lZCBEYXRhIFZlcmlmaWNhdGlvbiBQYXNzIFNIQTI1NiAjOQotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKLXBrY3M3X3ZlcmlmeToiZGF0YV9maWxlcy9wa2NzN19kYXRhX2NlcnRfc2lnbmVkX3NoYTI1Ni5kZXIiOiJkYXRhX2ZpbGVzL3BrY3M3LXJzYS1zaGEyNTYtMS5kZXIiOiJkYXRhX2ZpbGVzL3BrY3M3X2RhdGEuYmluIjowOjAKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKK3BrY3M3X3ZlcmlmeToiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvcGtjczdfZGF0YV9jZXJ0X3NpZ25lZF9zaGEyNTYuZGVyIjoiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvcGtjczctcnNhLXNoYTI1Ni0xLmRlciI6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3BrY3M3X2RhdGEuYmluIjowOjAKIAogUEtDUzcgU2lnbmVkIERhdGEgVmVyaWZpY2F0aW9uIFBhc3MgU0hBMjU2ICM5LjEKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2Ci1wa2NzN192ZXJpZnk6ImRhdGFfZmlsZXMvcGtjczdfZGF0YV9jZXJ0X3NpZ25lZF9zaGEyNTYuZGVyIjoiZGF0YV9maWxlcy9wa2NzNy1yc2Etc2hhMjU2LTEuZGVyIjoiZGF0YV9maWxlcy9wa2NzN19kYXRhLmJpbiI6TUJFRFRMU19NRF9TSEEyNTY6MAorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NgorcGtjczdfdmVyaWZ5OiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9wa2NzN19kYXRhX2NlcnRfc2lnbmVkX3NoYTI1Ni5kZXIiOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9wa2NzNy1yc2Etc2hhMjU2LTEuZGVyIjoiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvcGtjczdfZGF0YS5iaW4iOk1CRURUTFNfTURfU0hBMjU2OjAKIAogUEtDUzcgU2lnbmVkIERhdGEgVmVyaWZpY2F0aW9uIFBhc3MgU0hBMSAjMTAKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMTpNQkVEVExTX01EX0NBTl9TSEEyNTYKLXBrY3M3X3ZlcmlmeToiZGF0YV9maWxlcy9wa2NzN19kYXRhX2NlcnRfc2lnbmVkX3NoYTEuZGVyIjoiZGF0YV9maWxlcy9wa2NzNy1yc2Etc2hhMjU2LTEuZGVyIjoiZGF0YV9maWxlcy9wa2NzN19kYXRhLmJpbiI6MDowCitkZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTE6UFNBX1dBTlRfQUxHX1NIQV8yNTYKK3BrY3M3X3ZlcmlmeToiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvcGtjczdfZGF0YV9jZXJ0X3NpZ25lZF9zaGExLmRlciI6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3BrY3M3LXJzYS1zaGEyNTYtMS5kZXIiOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9wa2NzN19kYXRhLmJpbiI6MDowCiAKIFBLQ1M3IFNpZ25lZCBEYXRhIFZlcmlmaWNhdGlvbiBQYXNzIFNIQTUxMiAjMTEKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBNTEyOk1CRURUTFNfTURfQ0FOX1NIQTI1NgotcGtjczdfdmVyaWZ5OiJkYXRhX2ZpbGVzL3BrY3M3X2RhdGFfY2VydF9zaWduZWRfc2hhNTEyLmRlciI6ImRhdGFfZmlsZXMvcGtjczctcnNhLXNoYTI1Ni0xLmRlciI6ImRhdGFfZmlsZXMvcGtjczdfZGF0YS5iaW4iOjA6MAorZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEE1MTI6UFNBX1dBTlRfQUxHX1NIQV8yNTYKK3BrY3M3X3ZlcmlmeToiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvcGtjczdfZGF0YV9jZXJ0X3NpZ25lZF9zaGE1MTIuZGVyIjoiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvcGtjczctcnNhLXNoYTI1Ni0xLmRlciI6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3BrY3M3X2RhdGEuYmluIjowOjAKIAogUEtDUzcgU2lnbmVkIERhdGEgVmVyaWZpY2F0aW9uIEZhaWwgYmVjYXVzZSBvZiBkaWZmZXJlbnQgY2VydGlmaWNhdGUgIzEyCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NjpNQkVEVExTX1JTQV9DCi1wa2NzN192ZXJpZnk6ImRhdGFfZmlsZXMvcGtjczdfZGF0YV9jZXJ0X3NpZ25lZF9zaGEyNTYuZGVyIjoiZGF0YV9maWxlcy9wa2NzNy1yc2Etc2hhMjU2LTIuZGVyIjoiZGF0YV9maWxlcy9wa2NzN19kYXRhLmJpbiI6MDpNQkVEVExTX0VSUl9SU0FfVkVSSUZZX0ZBSUxFRAorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NjpNQkVEVExTX1JTQV9DCitwa2NzN192ZXJpZnk6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3BrY3M3X2RhdGFfY2VydF9zaWduZWRfc2hhMjU2LmRlciI6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3BrY3M3LXJzYS1zaGEyNTYtMi5kZXIiOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9wa2NzN19kYXRhLmJpbiI6MDpNQkVEVExTX0VSUl9SU0FfVkVSSUZZX0ZBSUxFRAogCiBQS0NTNyBTaWduZWQgRGF0YSBWZXJpZmljYXRpb24gRmFpbCBiZWNhdXNlIG9mIGRpZmZlcmVudCBkYXRhIGhhc2ggIzEzCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NjpNQkVEVExTX1JTQV9DCi1wa2NzN192ZXJpZnk6ImRhdGFfZmlsZXMvcGtjczdfZGF0YV9jZXJ0X3NpZ25lZF9zaGEyNTYuZGVyIjoiZGF0YV9maWxlcy9wa2NzNy1yc2Etc2hhMjU2LTEuZGVyIjoiZGF0YV9maWxlcy9wa2NzN19kYXRhXzEuYmluIjowOk1CRURUTFNfRVJSX1JTQV9WRVJJRllfRkFJTEVECitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2Ok1CRURUTFNfUlNBX0MKK3BrY3M3X3ZlcmlmeToiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvcGtjczdfZGF0YV9jZXJ0X3NpZ25lZF9zaGEyNTYuZGVyIjoiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvcGtjczctcnNhLXNoYTI1Ni0xLmRlciI6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3BrY3M3X2RhdGFfMS5iaW4iOjA6TUJFRFRMU19FUlJfUlNBX1ZFUklGWV9GQUlMRUQKIAogUEtDUzcgU2lnbmVkIERhdGEgUGFyc2UgRmFpbHVyZSBDb3JydXB0IHNpZ25lckluZm8uaXNzdWVyICMxNS4xCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NjpNQkVEVExTX1JTQV9DCi1wa2NzN19wYXJzZToiZGF0YV9maWxlcy9wa2NzN19zaWduZXJJbmZvX2lzc3Vlcl9pbnZhbGlkX3NpemUuZGVyIjpNQkVEVExTX0VSUl9QS0NTN19JTlZBTElEX1NJR05FUl9JTkZPCitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2Ok1CRURUTFNfUlNBX0MKK3BrY3M3X3BhcnNlOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9wa2NzN19zaWduZXJJbmZvX2lzc3Vlcl9pbnZhbGlkX3NpemUuZGVyIjpNQkVEVExTX0VSUl9QS0NTN19JTlZBTElEX1NJR05FUl9JTkZPCiAKIFBLQ1M3IFNpZ25lZCBEYXRhIFBhcnNlIEZhaWx1cmUgQ29ycnVwdCBzaWduZXJJbmZvLnNlcmlhbCAjMTUuMgotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTY6TUJFRFRMU19SU0FfQwotcGtjczdfcGFyc2U6ImRhdGFfZmlsZXMvcGtjczdfc2lnbmVySW5mb19zZXJpYWxfaW52YWxpZF9zaXplLmRlciI6TUJFRFRMU19FUlJfUEtDUzdfSU5WQUxJRF9TSUdORVJfSU5GTworZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NjpNQkVEVExTX1JTQV9DCitwa2NzN19wYXJzZToiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvcGtjczdfc2lnbmVySW5mb19zZXJpYWxfaW52YWxpZF9zaXplLmRlciI6TUJFRFRMU19FUlJfUEtDUzdfSU5WQUxJRF9TSUdORVJfSU5GTwogCiBQS0NTNyBTaWduZWQgRGF0YSBQYXJzZSBGYWlsIENvcnJ1cHQgc2lnbmVySW5mb3NbMl0gKDYyMTM5MzEzNzMwMzU1MjApCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NgotcGtjczdfcGFyc2U6ImRhdGFfZmlsZXMvcGtjczdfc2lnbmVySW5mb18yX2ludmFsaWRfdGFnLmRlciI6TUJFRFRMU19FUlJPUl9BREQoTUJFRFRMU19FUlJfUEtDUzdfSU5WQUxJRF9TSUdORVJfSU5GTywgIE1CRURUTFNfRVJSX0FTTjFfVU5FWFBFQ1RFRF9UQUcpCitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2Citwa2NzN19wYXJzZToiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvcGtjczdfc2lnbmVySW5mb18yX2ludmFsaWRfdGFnLmRlciI6TUJFRFRMU19FUlJPUl9BREQoTUJFRFRMU19FUlJfUEtDUzdfSU5WQUxJRF9TSUdORVJfSU5GTywgIE1CRURUTFNfRVJSX0FTTjFfVU5FWFBFQ1RFRF9UQUcpCiAKIFBLQ1M3IFNpZ25lZCBEYXRhIFBhcnNlIEZhaWwgQ29ycnVwdCBzaWduZXJJbmZvc1sxXS5pc3N1ZXJBbmRTZXJpYWxOdW1iZXIuc2VyaWFsTnVtYmVyLCBhZnRlciBtdWx0aS1lbGVtZW50IC5uYW1lICg0NTQxMDQ0NTMwNDc5MTA0KQotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKLXBrY3M3X3BhcnNlOiJkYXRhX2ZpbGVzL3BrY3M3X3NpZ25lckluZm9fMV9zZXJpYWxfaW52YWxpZF90YWdfYWZ0ZXJfbG9uZ19uYW1lLmRlciI6TUJFRFRMU19FUlJfUEtDUzdfSU5WQUxJRF9TSUdORVJfSU5GTworZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NgorcGtjczdfcGFyc2U6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3BrY3M3X3NpZ25lckluZm9fMV9zZXJpYWxfaW52YWxpZF90YWdfYWZ0ZXJfbG9uZ19uYW1lLmRlciI6TUJFRFRMU19FUlJfUEtDUzdfSU5WQUxJRF9TSUdORVJfSU5GTwogCiBQS0NTNyBPbmx5IFNpZ25lZCBEYXRhIFBhcnNlIFBhc3MgIzE1Ci1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NjpNQkVEVExTX1JTQV9DCi1wa2NzN19wYXJzZToiZGF0YV9maWxlcy9wa2NzN19kYXRhX2NlcnRfc2lnbmVkZGF0YV9zaGEyNTYuZGVyIjpNQkVEVExTX1BLQ1M3X1NJR05FRF9EQVRBCitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2Ok1CRURUTFNfUlNBX0MKK3BrY3M3X3BhcnNlOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9wa2NzN19kYXRhX2NlcnRfc2lnbmVkZGF0YV9zaGEyNTYuZGVyIjpNQkVEVExTX1BLQ1M3X1NJR05FRF9EQVRBCiAKIFBLQ1M3IFNpZ25lZCBEYXRhIFZlcmlmeSB3aXRoIG11bHRpcGxlKDIpIHNpZ25lcnMgIzE2LjAKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2Ci1wa2NzN192ZXJpZnk6ImRhdGFfZmlsZXMvcGtjczdfZGF0YV9tdWx0aXBsZV9zaWduZWQuZGVyIjoiZGF0YV9maWxlcy9wa2NzNy1yc2Etc2hhMjU2LTEuY3J0IGRhdGFfZmlsZXMvcGtjczctcnNhLXNoYTI1Ni0yLmNydCI6ImRhdGFfZmlsZXMvcGtjczdfZGF0YS5iaW4iOjA6MAorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NgorcGtjczdfdmVyaWZ5OiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9wa2NzN19kYXRhX211bHRpcGxlX3NpZ25lZC5kZXIiOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9wa2NzNy1yc2Etc2hhMjU2LTEuY3J0IC4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3BrY3M3LXJzYS1zaGEyNTYtMi5jcnQiOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9wa2NzN19kYXRhLmJpbiI6MDowCiAKIFBLQ1M3IFNpZ25lZCBEYXRhIFZlcmlmeSB3aXRoIG11bHRpcGxlKDMpIHNpZ25lcnMgIzE2LjEKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2OiFNQkVEVExTX01FTU9SWV9CVUZGRVJfQUxMT0NfQwotcGtjczdfdmVyaWZ5OiJkYXRhX2ZpbGVzL3BrY3M3X2RhdGFfM19zaWduZWQuZGVyIjoiZGF0YV9maWxlcy9wa2NzNy1yc2Etc2hhMjU2LTEuY3J0IGRhdGFfZmlsZXMvcGtjczctcnNhLXNoYTI1Ni0yLmNydCBkYXRhX2ZpbGVzL3BrY3M3LXJzYS1zaGEyNTYtMy5jcnQiOiJkYXRhX2ZpbGVzL3BrY3M3X2RhdGEuYmluIjowOjAKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTY6IU1CRURUTFNfTUVNT1JZX0JVRkZFUl9BTExPQ19DCitwa2NzN192ZXJpZnk6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3BrY3M3X2RhdGFfM19zaWduZWQuZGVyIjoiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvcGtjczctcnNhLXNoYTI1Ni0xLmNydCAuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9wa2NzNy1yc2Etc2hhMjU2LTIuY3J0IC4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3BrY3M3LXJzYS1zaGEyNTYtMy5jcnQiOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9wa2NzN19kYXRhLmJpbiI6MDowCiAKIFBLQ1M3IFNpZ25lZCBEYXRhIEhhc2ggVmVyaWZ5IHdpdGggbXVsdGlwbGUgc2lnbmVycyAjMTcKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2Ci1wa2NzN192ZXJpZnk6ImRhdGFfZmlsZXMvcGtjczdfZGF0YV9tdWx0aXBsZV9zaWduZWQuZGVyIjoiZGF0YV9maWxlcy9wa2NzNy1yc2Etc2hhMjU2LTEuY3J0IGRhdGFfZmlsZXMvcGtjczctcnNhLXNoYTI1Ni0yLmNydCI6ImRhdGFfZmlsZXMvcGtjczdfZGF0YS5iaW4iOk1CRURUTFNfTURfU0hBMjU2OjAKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKK3BrY3M3X3ZlcmlmeToiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvcGtjczdfZGF0YV9tdWx0aXBsZV9zaWduZWQuZGVyIjoiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvcGtjczctcnNhLXNoYTI1Ni0xLmNydCAuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9wa2NzNy1yc2Etc2hhMjU2LTIuY3J0IjoiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvcGtjczdfZGF0YS5iaW4iOk1CRURUTFNfTURfU0hBMjU2OjAKIAogUEtDUzcgU2lnbmVkIERhdGEgSGFzaCBWZXJpZnkgRmFpbCB3aXRoIG11bHRpcGxlIHNpZ25lcnMgIzE4Ci1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NjpNQkVEVExTX01EX0NBTl9TSEE1MTIKLXBrY3M3X3ZlcmlmeToiZGF0YV9maWxlcy9wa2NzN19kYXRhX211bHRpcGxlX3NpZ25lZC5kZXIiOiJkYXRhX2ZpbGVzL3BrY3M3LXJzYS1zaGEyNTYtMS5jcnQgZGF0YV9maWxlcy9wa2NzNy1yc2Etc2hhMjU2LTIuY3J0IjoiZGF0YV9maWxlcy9wa2NzN19kYXRhLmJpbiI6TUJFRFRMU19NRF9TSEE1MTI6TUJFRFRMU19FUlJfUEtDUzdfVkVSSUZZX0ZBSUwKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTY6TUJFRFRMU19NRF9DQU5fU0hBNTEyCitwa2NzN192ZXJpZnk6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3BrY3M3X2RhdGFfbXVsdGlwbGVfc2lnbmVkLmRlciI6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3BrY3M3LXJzYS1zaGEyNTYtMS5jcnQgLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvcGtjczctcnNhLXNoYTI1Ni0yLmNydCI6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3BrY3M3X2RhdGEuYmluIjpNQkVEVExTX01EX1NIQTUxMjpNQkVEVExTX0VSUl9QS0NTN19WRVJJRllfRkFJTAogCiBQS0NTNyBTaWduZWQgRGF0YSBWZXJpZnkgUGFzcyBFeHBpcmVkIENlcnQgIzE5IG5vIFRJTUVfREFURQotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTY6IU1CRURUTFNfSEFWRV9USU1FX0RBVEUKLXBrY3M3X3ZlcmlmeToiZGF0YV9maWxlcy9wa2NzN19kYXRhX3JzYV9leHBpcmVkLmRlciI6ImRhdGFfZmlsZXMvcGtjczctcnNhLWV4cGlyZWQuY3J0IjoiZGF0YV9maWxlcy9wa2NzN19kYXRhLmJpbiI6MDowCitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2OiFNQkVEVExTX0hBVkVfVElNRV9EQVRFCitwa2NzN192ZXJpZnk6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3BrY3M3X2RhdGFfcnNhX2V4cGlyZWQuZGVyIjoiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvcGtjczctcnNhLWV4cGlyZWQuY3J0IjoiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvcGtjczdfZGF0YS5iaW4iOjA6MAogCiBQS0NTNyBTaWduZWQgRGF0YSBWZXJpZnkgRmFpbCBFeHBpcmVkIENlcnQgIzE5IGhhdmUgREFURV9USU1FCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NjpNQkVEVExTX0hBVkVfVElNRV9EQVRFCi1wa2NzN192ZXJpZnk6ImRhdGFfZmlsZXMvcGtjczdfZGF0YV9jZXJ0X3NpZ25lZF9zaGEyNTYuZGVyIjoiZGF0YV9maWxlcy9wa2NzNy1yc2EtZXhwaXJlZC5jcnQiOiJkYXRhX2ZpbGVzL3BrY3M3X2RhdGEuYmluIjowOk1CRURUTFNfRVJSX1BLQ1M3X0NFUlRfREFURV9JTlZBTElECitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2Ok1CRURUTFNfSEFWRV9USU1FX0RBVEUKK3BrY3M3X3ZlcmlmeToiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvcGtjczdfZGF0YV9jZXJ0X3NpZ25lZF9zaGEyNTYuZGVyIjoiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvcGtjczctcnNhLWV4cGlyZWQuY3J0IjoiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvcGtjczdfZGF0YS5iaW4iOjA6TUJFRFRMU19FUlJfUEtDUzdfQ0VSVF9EQVRFX0lOVkFMSUQKIAogUEtDUzcgU2lnbmVkIERhdGEgVmVyaWZ5IEZhaWwgRXhwaXJlZCBDZXJ0ICMxOSBubyBEQVRFX1RJTUUgMQotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTY6IU1CRURUTFNfSEFWRV9USU1FX0RBVEU6TUJFRFRMU19SU0FfQwotcGtjczdfdmVyaWZ5OiJkYXRhX2ZpbGVzL3BrY3M3X2RhdGFfY2VydF9zaWduZWRfc2hhMjU2LmRlciI6ImRhdGFfZmlsZXMvcGtjczctcnNhLWV4cGlyZWQuY3J0IjoiZGF0YV9maWxlcy9wa2NzN19kYXRhLmJpbiI6MDpNQkVEVExTX0VSUl9SU0FfVkVSSUZZX0ZBSUxFRAorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NjohTUJFRFRMU19IQVZFX1RJTUVfREFURTpNQkVEVExTX1JTQV9DCitwa2NzN192ZXJpZnk6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3BrY3M3X2RhdGFfY2VydF9zaWduZWRfc2hhMjU2LmRlciI6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3BrY3M3LXJzYS1leHBpcmVkLmNydCI6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3BrY3M3X2RhdGEuYmluIjowOk1CRURUTFNfRVJSX1JTQV9WRVJJRllfRkFJTEVECiAKIFBLQ1M3IFNpZ25lZCBEYXRhIFZlcmlmeSBGYWlsIEV4cGlyZWQgQ2VydCAjMTkgbm8gVElNRV9EQVRFIDIKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2OiFNQkVEVExTX0hBVkVfVElNRV9EQVRFOk1CRURUTFNfUlNBX0MKLXBrY3M3X3ZlcmlmeToiZGF0YV9maWxlcy9wa2NzN19kYXRhX3JzYV9leHBpcmVkLmRlciI6ImRhdGFfZmlsZXMvcGtjczctcnNhLWV4cGlyZWQuY3J0IjoiZGF0YV9maWxlcy9wa2NzN19kYXRhXzEuYmluIjowOk1CRURUTFNfRVJSX1JTQV9WRVJJRllfRkFJTEVECitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2OiFNQkVEVExTX0hBVkVfVElNRV9EQVRFOk1CRURUTFNfUlNBX0MKK3BrY3M3X3ZlcmlmeToiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvcGtjczdfZGF0YV9yc2FfZXhwaXJlZC5kZXIiOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9wa2NzNy1yc2EtZXhwaXJlZC5jcnQiOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9wa2NzN19kYXRhXzEuYmluIjowOk1CRURUTFNfRVJSX1JTQV9WRVJJRllfRkFJTEVECiAKIFBLQ1M3IFBhcnNlIEZhaWx1cmUgSW52YWxpZCBBU04xOiBBZGQgbnVsbCBieXRlIHRvIHN0YXJ0ICMyMC4wCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NgogcGtjczdfYXNuMV9mYWlsOiIwMDMwODIwNTAwMDYwOTJhODY0ODg2ZjcwZDAxMDcwMmEwODIwNGYxMzA4MjA0ZWQwMjAxMDEzMTBmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwYjA2MDkyYTg2NDg4NmY3MGQwMTA3MDFhMDgyMDM0ZDMwODIwMzQ5MzA4MjAyMzFhMDAzMDIwMTAyMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEzMDFlMTcwZDMyMzIzMTMwMzIzODMxMzYzMTMwMzUzNjVhMTcwZDMyMzMzMTMwMzIzODMxMzYzMTMwMzUzNjVhMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMzA4MjAxMjIzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwMzgyMDEwZjAwMzA4MjAxMGEwMjgyMDEwMTAwYzhiNmNmNjk4OTljZDFmMGViYjRjYTY0NWMwNWU3MGUwZDJlZmVkZGNjNjFkMDg5Y2JkNTE1YTM5YTM1NzliOTIzNDNiNjFlYzc1MDA2MGZiNGVkMzc4NzYzMzI0MDBlNDI1ZjFkMzc2YzdlNzVjMjk3MzMxNGVkZjRiYjMwYzhmOGRkMDNiOWZjZmY5NTVhMjQ1ZDQ5MTM3YWQ2ZTYwMDU2Y2FjMTk1NTJhODY1ZDUyMTg3MTg3Y2MwNDJjOWM0OWUzZTNhOWMxN2E1MzRiNDUzY2RhYmMwY2IxMTNiNGY2M2Y1YjMxNzRiOWVlOTkwMmIxOTEwZDExNDk2YTI3OWE3NDMyNmFkY2ZlZTEwYmZkOWU3ZWJhZmJiMzc3YmU5YjYzOTU5MTY1ZDEzZGQ1NzUxMTcxY2FkYWQzYzFkM2FkYWM2OGJjODAxMWQ2MWI1NGNmNjAxNzhiZTM2ODM5YTg5YWM5MWFiNDE5ZTNjYTM3ZDZiYTg4MWQyNTUxOGM0ZGI2OGJjYTZmN2M4MzYwMmY2OTlhODZiMTdmYjFlNzczYmNiZTc0YmI5M2E0OWIyNTFhZTg2NDI4YjU3NDBlMTg2OGJiMWQ2ZmFiOWUyODcxMmU5OGVjMzE5YWQ4ZmNhNGQ3MzAxMGM0YjA5YzRiODA0NTg5NjFlN2NmMDgzNTMwMjAzMDEwMDAxYTM1MzMwNTEzMDFkMDYwMzU1MWQwZTA0MTYwNDE0OGFlZWU1OTQ3Y2M2N2M1ZGQ1MTVhNzZlMmE3ZWNkMzFlZTUyZmRjODMwMWYwNjAzNTUxZDIzMDQxODMwMTY4MDE0OGFlZWU1OTQ3Y2M2N2M1ZGQ1MTVhNzZlMmE3ZWNkMzFlZTUyZmRjODMwMGYwNjAzNTUxZDEzMDEwMWZmMDQwNTMwMDMwMTAxZmYzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAwMzgyMDEwMTAwODIxZDZiOThjZDQ1N2RlYmQyYjA4MWFjYTI3ZWJlY2Q0ZjkzYWNjODI4NDQzYjM5ZWFiZmZhOWZhNGU5ZTQ1NDNiNDZmY2MzMWUyYjViNDgxNzc5MDNkZWE2OTY5YWM0YTJjYzY1NzA2NTAzOTBmMWIwOGQ0M2E0YzJmOTc1YzdlZDhiZjMzNTZjNzIxODM4MDIxMjQ1MWE4ZjExZGU0NjU1M2NiY2Q2NWI0MjU0ZGRiOGY2NjgzNGViMjFkZGEyYThmMzNiNTgxZTE0ODQ1NTdhY2ExYjk0ZWU4OTMxZGRmMTYwMzdiN2E3MTcxMzIxYTkxOTM2YWZjMjdmZmNlMzk1ZGU3NWQ1ZjcwY2I4YjVhZWUwNWZmNTA3MDg4ZDY1YWYxZTQzOTY2Y2Q0MmNiZTZmN2ZhY2Y4ZGFlMDU1ZGQ4MjIyYjE2OTY1MjE3MjNmODEyNDUxNzg1OTVjOTg1YWU5MTdmZDRiMzk5ODc3M2UxYTk3YjdiZDEwMDg1NDQ2ZjQyNTliY2MwOWE0NTQ5MjkyODJjMWI4OWI3MWVkNTg3YTc3NWUwYTNkNDUzNjM0MWY0NWRhZTk2OWU4MDZjOTZmZWZjNzEwNjc3NzZjMDJiYTIyMTIyYjkxOTliMTRjMGMyOGMwNDQ4NzUwOTA3MGI5N2YzZGQyZDZkOTcyNzMzMTgyMDE3NzMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTAyMTQ3YmRlZGRkMjQ0NGNkMWNkZmU1YzQxYTgxMDJjODliN2RmMmU2Y2JmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDA1YmVjZDg3MTk1YzFkZWZmOTBjMjRjOTEyNjliNTViM2YwNjliYzIyNWMzMjZjMzE0YzFhNTE3ODZmZmUxNGM4MzBiZTRlNGJjNzNjYmEzNmM5NzY3N2I0NDE2ODI3OWJlOTFlN2NkZjdjMTkzODZhZTIxODYyNzE5ZDEzYTNhMGZmZjA4MDNkNDYwOTYyZjJjZGE4MzcxNDg0ODczMjUyYzNkNzA1NGRiODE0M2UyYjA4MWEzODE2ZWQwODA0Y2E1MDk5YWU1ZmVjZTgzZDVjMmMzNzgzYjE5ODhiNGI0NmRjOTRlNTU1ODdhMTA3ZWExNTQ2YmYyMmQyOGEwOTdmNjUyYTQwNjZkYzI5NjUyNjkwNjlhZjJmNTE3NmJiOGNlOWNhNmQxMWY5Njc1N2YwMzIwNGY3NTY3MDM1ODdkMDBhZDQyNDc5NmM5MmZjN2FlYjZmNDk0NDMxOTk5ZWRhMzA5OTBlNGY1NzczNjMyZWQyNThmZTAyNzY2NzM1OTlkYTZmY2UzNWNkYWQ3NzI2YTBiYjAyNGNhZDk5NmI4OGUwY2I5ODg1NGNlYjVjMGI2ZWM3NDhkOWY5Y2U2YTZjZDQzNzg1OGJhY2I4MTQ2MThhMjcyZmYzYTQxNWM2ZTA3ZjNkYjA5ODg3NzdmZGVjODQ1YTk3YmY3ZDEwMmRkMCIKIAogUEtDUzcgUGFyc2UgRmFpbHVyZSBJbnZhbGlkIEFTTjE6IEFkZCBudWxsIGJ5dGUgdG8gZW5kICMyMS4wCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NgogcGtjczdfYXNuMV9mYWlsOiIzMDgyMDUwMDA2MDkyYTg2NDg4NmY3MGQwMTA3MDJhMDgyMDRmMTMwODIwNGVkMDIwMTAxMzEwZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGIwNjA5MmE4NjQ4ODZmNzBkMDEwNzAxYTA4MjAzNGQzMDgyMDM0OTMwODIwMjMxYTAwMzAyMDEwMjAyMTQ3YmRlZGRkMjQ0NGNkMWNkZmU1YzQxYTgxMDJjODliN2RmMmU2Y2JmMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMzAxZTE3MGQzMjMyMzEzMDMyMzgzMTM2MzEzMDM1MzY1YTE3MGQzMjMzMzEzMDMyMzgzMTM2MzEzMDM1MzY1YTMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTMwODIwMTIyMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDM4MjAxMGYwMDMwODIwMTBhMDI4MjAxMDEwMGM4YjZjZjY5ODk5Y2QxZjBlYmI0Y2E2NDVjMDVlNzBlMGQyZWZlZGRjYzYxZDA4OWNiZDUxNWEzOWEzNTc5YjkyMzQzYjYxZWM3NTAwNjBmYjRlZDM3ODc2MzMyNDAwZTQyNWYxZDM3NmM3ZTc1YzI5NzMzMTRlZGY0YmIzMGM4ZjhkZDAzYjlmY2ZmOTU1YTI0NWQ0OTEzN2FkNmU2MDA1NmNhYzE5NTUyYTg2NWQ1MjE4NzE4N2NjMDQyYzljNDllM2UzYTljMTdhNTM0YjQ1M2NkYWJjMGNiMTEzYjRmNjNmNWIzMTc0YjllZTk5MDJiMTkxMGQxMTQ5NmEyNzlhNzQzMjZhZGNmZWUxMGJmZDllN2ViYWZiYjM3N2JlOWI2Mzk1OTE2NWQxM2RkNTc1MTE3MWNhZGFkM2MxZDNhZGFjNjhiYzgwMTFkNjFiNTRjZjYwMTc4YmUzNjgzOWE4OWFjOTFhYjQxOWUzY2EzN2Q2YmE4ODFkMjU1MThjNGRiNjhiY2E2ZjdjODM2MDJmNjk5YTg2YjE3ZmIxZTc3M2JjYmU3NGJiOTNhNDliMjUxYWU4NjQyOGI1NzQwZTE4NjhiYjFkNmZhYjllMjg3MTJlOThlYzMxOWFkOGZjYTRkNzMwMTBjNGIwOWM0YjgwNDU4OTYxZTdjZjA4MzUzMDIwMzAxMDAwMWEzNTMzMDUxMzAxZDA2MDM1NTFkMGUwNDE2MDQxNDhhZWVlNTk0N2NjNjdjNWRkNTE1YTc2ZTJhN2VjZDMxZWU1MmZkYzgzMDFmMDYwMzU1MWQyMzA0MTgzMDE2ODAxNDhhZWVlNTk0N2NjNjdjNWRkNTE1YTc2ZTJhN2VjZDMxZWU1MmZkYzgzMDBmMDYwMzU1MWQxMzAxMDFmZjA0MDUzMDAzMDEwMWZmMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMDM4MjAxMDEwMDgyMWQ2Yjk4Y2Q0NTdkZWJkMmIwODFhY2EyN2ViZWNkNGY5M2FjYzgyODQ0M2IzOWVhYmZmYTlmYTRlOWU0NTQzYjQ2ZmNjMzFlMmI1YjQ4MTc3OTAzZGVhNjk2OWFjNGEyY2M2NTcwNjUwMzkwZjFiMDhkNDNhNGMyZjk3NWM3ZWQ4YmYzMzU2YzcyMTgzODAyMTI0NTFhOGYxMWRlNDY1NTNjYmNkNjViNDI1NGRkYjhmNjY4MzRlYjIxZGRhMmE4ZjMzYjU4MWUxNDg0NTU3YWNhMWI5NGVlODkzMWRkZjE2MDM3YjdhNzE3MTMyMWE5MTkzNmFmYzI3ZmZjZTM5NWRlNzVkNWY3MGNiOGI1YWVlMDVmZjUwNzA4OGQ2NWFmMWU0Mzk2NmNkNDJjYmU2ZjdmYWNmOGRhZTA1NWRkODIyMmIxNjk2NTIxNzIzZjgxMjQ1MTc4NTk1Yzk4NWFlOTE3ZmQ0YjM5OTg3NzNlMWE5N2I3YmQxMDA4NTQ0NmY0MjU5YmNjMDlhNDU0OTI5MjgyYzFiODliNzFlZDU4N2E3NzVlMGEzZDQ1MzYzNDFmNDVkYWU5NjllODA2Yzk2ZmVmYzcxMDY3Nzc2YzAyYmEyMjEyMmI5MTk5YjE0YzBjMjhjMDQ0ODc1MDkwNzBiOTdmM2RkMmQ2ZDk3MjczMzE4MjAxNzczMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwNWJlY2Q4NzE5NWMxZGVmZjkwYzI0YzkxMjY5YjU1YjNmMDY5YmMyMjVjMzI2YzMxNGMxYTUxNzg2ZmZlMTRjODMwYmU0ZTRiYzczY2JhMzZjOTc2NzdiNDQxNjgyNzliZTkxZTdjZGY3YzE5Mzg2YWUyMTg2MjcxOWQxM2EzYTBmZmYwODAzZDQ2MDk2MmYyY2RhODM3MTQ4NDg3MzI1MmMzZDcwNTRkYjgxNDNlMmIwODFhMzgxNmVkMDgwNGNhNTA5OWFlNWZlY2U4M2Q1YzJjMzc4M2IxOTg4YjRiNDZkYzk0ZTU1NTg3YTEwN2VhMTU0NmJmMjJkMjhhMDk3ZjY1MmE0MDY2ZGMyOTY1MjY5MDY5YWYyZjUxNzZiYjhjZTljYTZkMTFmOTY3NTdmMDMyMDRmNzU2NzAzNTg3ZDAwYWQ0MjQ3OTZjOTJmYzdhZWI2ZjQ5NDQzMTk5OWVkYTMwOTkwZTRmNTc3MzYzMmVkMjU4ZmUwMjc2NjczNTk5ZGE2ZmNlMzVjZGFkNzcyNmEwYmIwMjRjYWQ5OTZiODhlMGNiOTg4NTRjZWI1YzBiNmVjNzQ4ZDlmOWNlNmE2Y2Q0Mzc4NThiYWNiODE0NjE4YTI3MmZmM2E0MTVjNmUwN2YzZGIwOTg4Nzc3ZmRlYzg0NWE5N2JmN2QxMDJkZDAwMCIKIAogUEtDUzcgUGFyc2UgRmFpbHVyZSBJbnZhbGlkIEFTTjE6IENoYW5nZSB0YWcgMzAgdG8gMDIgIzIyLjAKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBwa2NzN19hc24xX2ZhaWw6IjAyODIwNTAwMDYwOTJhODY0ODg2ZjcwZDAxMDcwMmEwODIwNGYxMzA4MjA0ZWQwMjAxMDEzMTBmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwYjA2MDkyYTg2NDg4NmY3MGQwMTA3MDFhMDgyMDM0ZDMwODIwMzQ5MzA4MjAyMzFhMDAzMDIwMTAyMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEzMDFlMTcwZDMyMzIzMTMwMzIzODMxMzYzMTMwMzUzNjVhMTcwZDMyMzMzMTMwMzIzODMxMzYzMTMwMzUzNjVhMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMzA4MjAxMjIzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwMzgyMDEwZjAwMzA4MjAxMGEwMjgyMDEwMTAwYzhiNmNmNjk4OTljZDFmMGViYjRjYTY0NWMwNWU3MGUwZDJlZmVkZGNjNjFkMDg5Y2JkNTE1YTM5YTM1NzliOTIzNDNiNjFlYzc1MDA2MGZiNGVkMzc4NzYzMzI0MDBlNDI1ZjFkMzc2YzdlNzVjMjk3MzMxNGVkZjRiYjMwYzhmOGRkMDNiOWZjZmY5NTVhMjQ1ZDQ5MTM3YWQ2ZTYwMDU2Y2FjMTk1NTJhODY1ZDUyMTg3MTg3Y2MwNDJjOWM0OWUzZTNhOWMxN2E1MzRiNDUzY2RhYmMwY2IxMTNiNGY2M2Y1YjMxNzRiOWVlOTkwMmIxOTEwZDExNDk2YTI3OWE3NDMyNmFkY2ZlZTEwYmZkOWU3ZWJhZmJiMzc3YmU5YjYzOTU5MTY1ZDEzZGQ1NzUxMTcxY2FkYWQzYzFkM2FkYWM2OGJjODAxMWQ2MWI1NGNmNjAxNzhiZTM2ODM5YTg5YWM5MWFiNDE5ZTNjYTM3ZDZiYTg4MWQyNTUxOGM0ZGI2OGJjYTZmN2M4MzYwMmY2OTlhODZiMTdmYjFlNzczYmNiZTc0YmI5M2E0OWIyNTFhZTg2NDI4YjU3NDBlMTg2OGJiMWQ2ZmFiOWUyODcxMmU5OGVjMzE5YWQ4ZmNhNGQ3MzAxMGM0YjA5YzRiODA0NTg5NjFlN2NmMDgzNTMwMjAzMDEwMDAxYTM1MzMwNTEzMDFkMDYwMzU1MWQwZTA0MTYwNDE0OGFlZWU1OTQ3Y2M2N2M1ZGQ1MTVhNzZlMmE3ZWNkMzFlZTUyZmRjODMwMWYwNjAzNTUxZDIzMDQxODMwMTY4MDE0OGFlZWU1OTQ3Y2M2N2M1ZGQ1MTVhNzZlMmE3ZWNkMzFlZTUyZmRjODMwMGYwNjAzNTUxZDEzMDEwMWZmMDQwNTMwMDMwMTAxZmYzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAwMzgyMDEwMTAwODIxZDZiOThjZDQ1N2RlYmQyYjA4MWFjYTI3ZWJlY2Q0ZjkzYWNjODI4NDQzYjM5ZWFiZmZhOWZhNGU5ZTQ1NDNiNDZmY2MzMWUyYjViNDgxNzc5MDNkZWE2OTY5YWM0YTJjYzY1NzA2NTAzOTBmMWIwOGQ0M2E0YzJmOTc1YzdlZDhiZjMzNTZjNzIxODM4MDIxMjQ1MWE4ZjExZGU0NjU1M2NiY2Q2NWI0MjU0ZGRiOGY2NjgzNGViMjFkZGEyYThmMzNiNTgxZTE0ODQ1NTdhY2ExYjk0ZWU4OTMxZGRmMTYwMzdiN2E3MTcxMzIxYTkxOTM2YWZjMjdmZmNlMzk1ZGU3NWQ1ZjcwY2I4YjVhZWUwNWZmNTA3MDg4ZDY1YWYxZTQzOTY2Y2Q0MmNiZTZmN2ZhY2Y4ZGFlMDU1ZGQ4MjIyYjE2OTY1MjE3MjNmODEyNDUxNzg1OTVjOTg1YWU5MTdmZDRiMzk5ODc3M2UxYTk3YjdiZDEwMDg1NDQ2ZjQyNTliY2MwOWE0NTQ5MjkyODJjMWI4OWI3MWVkNTg3YTc3NWUwYTNkNDUzNjM0MWY0NWRhZTk2OWU4MDZjOTZmZWZjNzEwNjc3NzZjMDJiYTIyMTIyYjkxOTliMTRjMGMyOGMwNDQ4NzUwOTA3MGI5N2YzZGQyZDZkOTcyNzMzMTgyMDE3NzMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTAyMTQ3YmRlZGRkMjQ0NGNkMWNkZmU1YzQxYTgxMDJjODliN2RmMmU2Y2JmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDA1YmVjZDg3MTk1YzFkZWZmOTBjMjRjOTEyNjliNTViM2YwNjliYzIyNWMzMjZjMzE0YzFhNTE3ODZmZmUxNGM4MzBiZTRlNGJjNzNjYmEzNmM5NzY3N2I0NDE2ODI3OWJlOTFlN2NkZjdjMTkzODZhZTIxODYyNzE5ZDEzYTNhMGZmZjA4MDNkNDYwOTYyZjJjZGE4MzcxNDg0ODczMjUyYzNkNzA1NGRiODE0M2UyYjA4MWEzODE2ZWQwODA0Y2E1MDk5YWU1ZmVjZTgzZDVjMmMzNzgzYjE5ODhiNGI0NmRjOTRlNTU1ODdhMTA3ZWExNTQ2YmYyMmQyOGEwOTdmNjUyYTQwNjZkYzI5NjUyNjkwNjlhZjJmNTE3NmJiOGNlOWNhNmQxMWY5Njc1N2YwMzIwNGY3NTY3MDM1ODdkMDBhZDQyNDc5NmM5MmZjN2FlYjZmNDk0NDMxOTk5ZWRhMzA5OTBlNGY1NzczNjMyZWQyNThmZTAyNzY2NzM1OTlkYTZmY2UzNWNkYWQ3NzI2YTBiYjAyNGNhZDk5NmI4OGUwY2I5ODg1NGNlYjVjMGI2ZWM3NDhkOWY5Y2U2YTZjZDQzNzg1OGJhY2I4MTQ2MThhMjcyZmYzYTQxNWM2ZTA3ZjNkYjA5ODg3NzdmZGVjODQ1YTk3YmY3ZDEwMmRkMCIKIAogUEtDUzcgUGFyc2UgRmFpbHVyZSBJbnZhbGlkIEFTTjE6IENoYW5nZSBsZW5ndGggZnJvbSAxMjgwIHRvIDEyODEgIzIzLjAKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBwa2NzN19hc24xX2ZhaWw6IjMwODIwNTAxMDYwOTJhODY0ODg2ZjcwZDAxMDcwMmEwODIwNGYxMzA4MjA0ZWQwMjAxMDEzMTBmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwYjA2MDkyYTg2NDg4NmY3MGQwMTA3MDFhMDgyMDM0ZDMwODIwMzQ5MzA4MjAyMzFhMDAzMDIwMTAyMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEzMDFlMTcwZDMyMzIzMTMwMzIzODMxMzYzMTMwMzUzNjVhMTcwZDMyMzMzMTMwMzIzODMxMzYzMTMwMzUzNjVhMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMzA4MjAxMjIzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwMzgyMDEwZjAwMzA4MjAxMGEwMjgyMDEwMTAwYzhiNmNmNjk4OTljZDFmMGViYjRjYTY0NWMwNWU3MGUwZDJlZmVkZGNjNjFkMDg5Y2JkNTE1YTM5YTM1NzliOTIzNDNiNjFlYzc1MDA2MGZiNGVkMzc4NzYzMzI0MDBlNDI1ZjFkMzc2YzdlNzVjMjk3MzMxNGVkZjRiYjMwYzhmOGRkMDNiOWZjZmY5NTVhMjQ1ZDQ5MTM3YWQ2ZTYwMDU2Y2FjMTk1NTJhODY1ZDUyMTg3MTg3Y2MwNDJjOWM0OWUzZTNhOWMxN2E1MzRiNDUzY2RhYmMwY2IxMTNiNGY2M2Y1YjMxNzRiOWVlOTkwMmIxOTEwZDExNDk2YTI3OWE3NDMyNmFkY2ZlZTEwYmZkOWU3ZWJhZmJiMzc3YmU5YjYzOTU5MTY1ZDEzZGQ1NzUxMTcxY2FkYWQzYzFkM2FkYWM2OGJjODAxMWQ2MWI1NGNmNjAxNzhiZTM2ODM5YTg5YWM5MWFiNDE5ZTNjYTM3ZDZiYTg4MWQyNTUxOGM0ZGI2OGJjYTZmN2M4MzYwMmY2OTlhODZiMTdmYjFlNzczYmNiZTc0YmI5M2E0OWIyNTFhZTg2NDI4YjU3NDBlMTg2OGJiMWQ2ZmFiOWUyODcxMmU5OGVjMzE5YWQ4ZmNhNGQ3MzAxMGM0YjA5YzRiODA0NTg5NjFlN2NmMDgzNTMwMjAzMDEwMDAxYTM1MzMwNTEzMDFkMDYwMzU1MWQwZTA0MTYwNDE0OGFlZWU1OTQ3Y2M2N2M1ZGQ1MTVhNzZlMmE3ZWNkMzFlZTUyZmRjODMwMWYwNjAzNTUxZDIzMDQxODMwMTY4MDE0OGFlZWU1OTQ3Y2M2N2M1ZGQ1MTVhNzZlMmE3ZWNkMzFlZTUyZmRjODMwMGYwNjAzNTUxZDEzMDEwMWZmMDQwNTMwMDMwMTAxZmYzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAwMzgyMDEwMTAwODIxZDZiOThjZDQ1N2RlYmQyYjA4MWFjYTI3ZWJlY2Q0ZjkzYWNjODI4NDQzYjM5ZWFiZmZhOWZhNGU5ZTQ1NDNiNDZmY2MzMWUyYjViNDgxNzc5MDNkZWE2OTY5YWM0YTJjYzY1NzA2NTAzOTBmMWIwOGQ0M2E0YzJmOTc1YzdlZDhiZjMzNTZjNzIxODM4MDIxMjQ1MWE4ZjExZGU0NjU1M2NiY2Q2NWI0MjU0ZGRiOGY2NjgzNGViMjFkZGEyYThmMzNiNTgxZTE0ODQ1NTdhY2ExYjk0ZWU4OTMxZGRmMTYwMzdiN2E3MTcxMzIxYTkxOTM2YWZjMjdmZmNlMzk1ZGU3NWQ1ZjcwY2I4YjVhZWUwNWZmNTA3MDg4ZDY1YWYxZTQzOTY2Y2Q0MmNiZTZmN2ZhY2Y4ZGFlMDU1ZGQ4MjIyYjE2OTY1MjE3MjNmODEyNDUxNzg1OTVjOTg1YWU5MTdmZDRiMzk5ODc3M2UxYTk3YjdiZDEwMDg1NDQ2ZjQyNTliY2MwOWE0NTQ5MjkyODJjMWI4OWI3MWVkNTg3YTc3NWUwYTNkNDUzNjM0MWY0NWRhZTk2OWU4MDZjOTZmZWZjNzEwNjc3NzZjMDJiYTIyMTIyYjkxOTliMTRjMGMyOGMwNDQ4NzUwOTA3MGI5N2YzZGQyZDZkOTcyNzMzMTgyMDE3NzMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTAyMTQ3YmRlZGRkMjQ0NGNkMWNkZmU1YzQxYTgxMDJjODliN2RmMmU2Y2JmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDA1YmVjZDg3MTk1YzFkZWZmOTBjMjRjOTEyNjliNTViM2YwNjliYzIyNWMzMjZjMzE0YzFhNTE3ODZmZmUxNGM4MzBiZTRlNGJjNzNjYmEzNmM5NzY3N2I0NDE2ODI3OWJlOTFlN2NkZjdjMTkzODZhZTIxODYyNzE5ZDEzYTNhMGZmZjA4MDNkNDYwOTYyZjJjZGE4MzcxNDg0ODczMjUyYzNkNzA1NGRiODE0M2UyYjA4MWEzODE2ZWQwODA0Y2E1MDk5YWU1ZmVjZTgzZDVjMmMzNzgzYjE5ODhiNGI0NmRjOTRlNTU1ODdhMTA3ZWExNTQ2YmYyMmQyOGEwOTdmNjUyYTQwNjZkYzI5NjUyNjkwNjlhZjJmNTE3NmJiOGNlOWNhNmQxMWY5Njc1N2YwMzIwNGY3NTY3MDM1ODdkMDBhZDQyNDc5NmM5MmZjN2FlYjZmNDk0NDMxOTk5ZWRhMzA5OTBlNGY1NzczNjMyZWQyNThmZTAyNzY2NzM1OTlkYTZmY2UzNWNkYWQ3NzI2YTBiYjAyNGNhZDk5NmI4OGUwY2I5ODg1NGNlYjVjMGI2ZWM3NDhkOWY5Y2U2YTZjZDQzNzg1OGJhY2I4MTQ2MThhMjcyZmYzYTQxNWM2ZTA3ZjNkYjA5ODg3NzdmZGVjODQ1YTk3YmY3ZDEwMmRkMCIKIAogUEtDUzcgUGFyc2UgRmFpbHVyZSBJbnZhbGlkIEFTTjE6IENoYW5nZSBjb250ZW50cyBvZiB0YWcgMzAgdG8gY29udGFpbiBvbmUgdW5hY2NvdW50ZWQgZXh0cmEgYnl0ZSAjMjQuMAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHBrY3M3X2FzbjFfZmFpbDoiMzA4MjA1MDEwNjA5MmE4NjQ4ODZmNzBkMDEwNzAyYTA4MjA0ZjEzMDgyMDRlZDAyMDEwMTMxMGYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBiMDYwOTJhODY0ODg2ZjcwZDAxMDcwMWEwODIwMzRkMzA4MjAzNDkzMDgyMDIzMWEwMDMwMjAxMDIwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTMwMWUxNzBkMzIzMjMxMzAzMjM4MzEzNjMxMzAzNTM2NWExNzBkMzIzMzMxMzAzMjM4MzEzNjMxMzAzNTM2NWEzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEzMDgyMDEyMjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDAzODIwMTBmMDAzMDgyMDEwYTAyODIwMTAxMDBjOGI2Y2Y2OTg5OWNkMWYwZWJiNGNhNjQ1YzA1ZTcwZTBkMmVmZWRkY2M2MWQwODljYmQ1MTVhMzlhMzU3OWI5MjM0M2I2MWVjNzUwMDYwZmI0ZWQzNzg3NjMzMjQwMGU0MjVmMWQzNzZjN2U3NWMyOTczMzE0ZWRmNGJiMzBjOGY4ZGQwM2I5ZmNmZjk1NWEyNDVkNDkxMzdhZDZlNjAwNTZjYWMxOTU1MmE4NjVkNTIxODcxODdjYzA0MmM5YzQ5ZTNlM2E5YzE3YTUzNGI0NTNjZGFiYzBjYjExM2I0ZjYzZjViMzE3NGI5ZWU5OTAyYjE5MTBkMTE0OTZhMjc5YTc0MzI2YWRjZmVlMTBiZmQ5ZTdlYmFmYmIzNzdiZTliNjM5NTkxNjVkMTNkZDU3NTExNzFjYWRhZDNjMWQzYWRhYzY4YmM4MDExZDYxYjU0Y2Y2MDE3OGJlMzY4MzlhODlhYzkxYWI0MTllM2NhMzdkNmJhODgxZDI1NTE4YzRkYjY4YmNhNmY3YzgzNjAyZjY5OWE4NmIxN2ZiMWU3NzNiY2JlNzRiYjkzYTQ5YjI1MWFlODY0MjhiNTc0MGUxODY4YmIxZDZmYWI5ZTI4NzEyZTk4ZWMzMTlhZDhmY2E0ZDczMDEwYzRiMDljNGI4MDQ1ODk2MWU3Y2YwODM1MzAyMDMwMTAwMDFhMzUzMzA1MTMwMWQwNjAzNTUxZDBlMDQxNjA0MTQ4YWVlZTU5NDdjYzY3YzVkZDUxNWE3NmUyYTdlY2QzMWVlNTJmZGM4MzAxZjA2MDM1NTFkMjMwNDE4MzAxNjgwMTQ4YWVlZTU5NDdjYzY3YzVkZDUxNWE3NmUyYTdlY2QzMWVlNTJmZGM4MzAwZjA2MDM1NTFkMTMwMTAxZmYwNDA1MzAwMzAxMDFmZjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDAzODIwMTAxMDA4MjFkNmI5OGNkNDU3ZGViZDJiMDgxYWNhMjdlYmVjZDRmOTNhY2M4Mjg0NDNiMzllYWJmZmE5ZmE0ZTllNDU0M2I0NmZjYzMxZTJiNWI0ODE3NzkwM2RlYTY5NjlhYzRhMmNjNjU3MDY1MDM5MGYxYjA4ZDQzYTRjMmY5NzVjN2VkOGJmMzM1NmM3MjE4MzgwMjEyNDUxYThmMTFkZTQ2NTUzY2JjZDY1YjQyNTRkZGI4ZjY2ODM0ZWIyMWRkYTJhOGYzM2I1ODFlMTQ4NDU1N2FjYTFiOTRlZTg5MzFkZGYxNjAzN2I3YTcxNzEzMjFhOTE5MzZhZmMyN2ZmY2UzOTVkZTc1ZDVmNzBjYjhiNWFlZTA1ZmY1MDcwODhkNjVhZjFlNDM5NjZjZDQyY2JlNmY3ZmFjZjhkYWUwNTVkZDgyMjJiMTY5NjUyMTcyM2Y4MTI0NTE3ODU5NWM5ODVhZTkxN2ZkNGIzOTk4NzczZTFhOTdiN2JkMTAwODU0NDZmNDI1OWJjYzA5YTQ1NDkyOTI4MmMxYjg5YjcxZWQ1ODdhNzc1ZTBhM2Q0NTM2MzQxZjQ1ZGFlOTY5ZTgwNmM5NmZlZmM3MTA2Nzc3NmMwMmJhMjIxMjJiOTE5OWIxNGMwYzI4YzA0NDg3NTA5MDcwYjk3ZjNkZDJkNmQ5NzI3MzMxODIwMTc3MzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDViZWNkODcxOTVjMWRlZmY5MGMyNGM5MTI2OWI1NWIzZjA2OWJjMjI1YzMyNmMzMTRjMWE1MTc4NmZmZTE0YzgzMGJlNGU0YmM3M2NiYTM2Yzk3Njc3YjQ0MTY4Mjc5YmU5MWU3Y2RmN2MxOTM4NmFlMjE4NjI3MTlkMTNhM2EwZmZmMDgwM2Q0NjA5NjJmMmNkYTgzNzE0ODQ4NzMyNTJjM2Q3MDU0ZGI4MTQzZTJiMDgxYTM4MTZlZDA4MDRjYTUwOTlhZTVmZWNlODNkNWMyYzM3ODNiMTk4OGI0YjQ2ZGM5NGU1NTU4N2ExMDdlYTE1NDZiZjIyZDI4YTA5N2Y2NTJhNDA2NmRjMjk2NTI2OTA2OWFmMmY1MTc2YmI4Y2U5Y2E2ZDExZjk2NzU3ZjAzMjA0Zjc1NjcwMzU4N2QwMGFkNDI0Nzk2YzkyZmM3YWViNmY0OTQ0MzE5OTllZGEzMDk5MGU0ZjU3NzM2MzJlZDI1OGZlMDI3NjY3MzU5OWRhNmZjZTM1Y2RhZDc3MjZhMGJiMDI0Y2FkOTk2Yjg4ZTBjYjk4ODU0Y2ViNWMwYjZlYzc0OGQ5ZjljZTZhNmNkNDM3ODU4YmFjYjgxNDYxOGEyNzJmZjNhNDE1YzZlMDdmM2RiMDk4ODc3N2ZkZWM4NDVhOTdiZjdkMTAyZGQwMDAiCiAKIFBLQ1M3IFBhcnNlIEZhaWx1cmUgSW52YWxpZCBBU04xOiBDaGFuZ2UgdGFnIDA2IHRvIDAyICMyNS4wCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NgogcGtjczdfYXNuMV9mYWlsOiIzMDgyMDUwMDAyMDkyYTg2NDg4NmY3MGQwMTA3MDJhMDgyMDRmMTMwODIwNGVkMDIwMTAxMzEwZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGIwNjA5MmE4NjQ4ODZmNzBkMDEwNzAxYTA4MjAzNGQzMDgyMDM0OTMwODIwMjMxYTAwMzAyMDEwMjAyMTQ3YmRlZGRkMjQ0NGNkMWNkZmU1YzQxYTgxMDJjODliN2RmMmU2Y2JmMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMzAxZTE3MGQzMjMyMzEzMDMyMzgzMTM2MzEzMDM1MzY1YTE3MGQzMjMzMzEzMDMyMzgzMTM2MzEzMDM1MzY1YTMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTMwODIwMTIyMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDM4MjAxMGYwMDMwODIwMTBhMDI4MjAxMDEwMGM4YjZjZjY5ODk5Y2QxZjBlYmI0Y2E2NDVjMDVlNzBlMGQyZWZlZGRjYzYxZDA4OWNiZDUxNWEzOWEzNTc5YjkyMzQzYjYxZWM3NTAwNjBmYjRlZDM3ODc2MzMyNDAwZTQyNWYxZDM3NmM3ZTc1YzI5NzMzMTRlZGY0YmIzMGM4ZjhkZDAzYjlmY2ZmOTU1YTI0NWQ0OTEzN2FkNmU2MDA1NmNhYzE5NTUyYTg2NWQ1MjE4NzE4N2NjMDQyYzljNDllM2UzYTljMTdhNTM0YjQ1M2NkYWJjMGNiMTEzYjRmNjNmNWIzMTc0YjllZTk5MDJiMTkxMGQxMTQ5NmEyNzlhNzQzMjZhZGNmZWUxMGJmZDllN2ViYWZiYjM3N2JlOWI2Mzk1OTE2NWQxM2RkNTc1MTE3MWNhZGFkM2MxZDNhZGFjNjhiYzgwMTFkNjFiNTRjZjYwMTc4YmUzNjgzOWE4OWFjOTFhYjQxOWUzY2EzN2Q2YmE4ODFkMjU1MThjNGRiNjhiY2E2ZjdjODM2MDJmNjk5YTg2YjE3ZmIxZTc3M2JjYmU3NGJiOTNhNDliMjUxYWU4NjQyOGI1NzQwZTE4NjhiYjFkNmZhYjllMjg3MTJlOThlYzMxOWFkOGZjYTRkNzMwMTBjNGIwOWM0YjgwNDU4OTYxZTdjZjA4MzUzMDIwMzAxMDAwMWEzNTMzMDUxMzAxZDA2MDM1NTFkMGUwNDE2MDQxNDhhZWVlNTk0N2NjNjdjNWRkNTE1YTc2ZTJhN2VjZDMxZWU1MmZkYzgzMDFmMDYwMzU1MWQyMzA0MTgzMDE2ODAxNDhhZWVlNTk0N2NjNjdjNWRkNTE1YTc2ZTJhN2VjZDMxZWU1MmZkYzgzMDBmMDYwMzU1MWQxMzAxMDFmZjA0MDUzMDAzMDEwMWZmMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMDM4MjAxMDEwMDgyMWQ2Yjk4Y2Q0NTdkZWJkMmIwODFhY2EyN2ViZWNkNGY5M2FjYzgyODQ0M2IzOWVhYmZmYTlmYTRlOWU0NTQzYjQ2ZmNjMzFlMmI1YjQ4MTc3OTAzZGVhNjk2OWFjNGEyY2M2NTcwNjUwMzkwZjFiMDhkNDNhNGMyZjk3NWM3ZWQ4YmYzMzU2YzcyMTgzODAyMTI0NTFhOGYxMWRlNDY1NTNjYmNkNjViNDI1NGRkYjhmNjY4MzRlYjIxZGRhMmE4ZjMzYjU4MWUxNDg0NTU3YWNhMWI5NGVlODkzMWRkZjE2MDM3YjdhNzE3MTMyMWE5MTkzNmFmYzI3ZmZjZTM5NWRlNzVkNWY3MGNiOGI1YWVlMDVmZjUwNzA4OGQ2NWFmMWU0Mzk2NmNkNDJjYmU2ZjdmYWNmOGRhZTA1NWRkODIyMmIxNjk2NTIxNzIzZjgxMjQ1MTc4NTk1Yzk4NWFlOTE3ZmQ0YjM5OTg3NzNlMWE5N2I3YmQxMDA4NTQ0NmY0MjU5YmNjMDlhNDU0OTI5MjgyYzFiODliNzFlZDU4N2E3NzVlMGEzZDQ1MzYzNDFmNDVkYWU5NjllODA2Yzk2ZmVmYzcxMDY3Nzc2YzAyYmEyMjEyMmI5MTk5YjE0YzBjMjhjMDQ0ODc1MDkwNzBiOTdmM2RkMmQ2ZDk3MjczMzE4MjAxNzczMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwNWJlY2Q4NzE5NWMxZGVmZjkwYzI0YzkxMjY5YjU1YjNmMDY5YmMyMjVjMzI2YzMxNGMxYTUxNzg2ZmZlMTRjODMwYmU0ZTRiYzczY2JhMzZjOTc2NzdiNDQxNjgyNzliZTkxZTdjZGY3YzE5Mzg2YWUyMTg2MjcxOWQxM2EzYTBmZmYwODAzZDQ2MDk2MmYyY2RhODM3MTQ4NDg3MzI1MmMzZDcwNTRkYjgxNDNlMmIwODFhMzgxNmVkMDgwNGNhNTA5OWFlNWZlY2U4M2Q1YzJjMzc4M2IxOTg4YjRiNDZkYzk0ZTU1NTg3YTEwN2VhMTU0NmJmMjJkMjhhMDk3ZjY1MmE0MDY2ZGMyOTY1MjY5MDY5YWYyZjUxNzZiYjhjZTljYTZkMTFmOTY3NTdmMDMyMDRmNzU2NzAzNTg3ZDAwYWQ0MjQ3OTZjOTJmYzdhZWI2ZjQ5NDQzMTk5OWVkYTMwOTkwZTRmNTc3MzYzMmVkMjU4ZmUwMjc2NjczNTk5ZGE2ZmNlMzVjZGFkNzcyNmEwYmIwMjRjYWQ5OTZiODhlMGNiOTg4NTRjZWI1YzBiNmVjNzQ4ZDlmOWNlNmE2Y2Q0Mzc4NThiYWNiODE0NjE4YTI3MmZmM2E0MTVjNmUwN2YzZGIwOTg4Nzc3ZmRlYzg0NWE5N2JmN2QxMDJkZDAiCiAKIFBLQ1M3IFBhcnNlIEZhaWx1cmUgSW52YWxpZCBBU04xOiBDaGFuZ2UgbGVuZ3RoIGZyb20gOSB0byAxMCAjMjYuMAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHBrY3M3X2FzbjFfZmFpbDoiMzA4MjA1MDAwNjBhMmE4NjQ4ODZmNzBkMDEwNzAyYTA4MjA0ZjEzMDgyMDRlZDAyMDEwMTMxMGYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBiMDYwOTJhODY0ODg2ZjcwZDAxMDcwMWEwODIwMzRkMzA4MjAzNDkzMDgyMDIzMWEwMDMwMjAxMDIwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTMwMWUxNzBkMzIzMjMxMzAzMjM4MzEzNjMxMzAzNTM2NWExNzBkMzIzMzMxMzAzMjM4MzEzNjMxMzAzNTM2NWEzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEzMDgyMDEyMjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDAzODIwMTBmMDAzMDgyMDEwYTAyODIwMTAxMDBjOGI2Y2Y2OTg5OWNkMWYwZWJiNGNhNjQ1YzA1ZTcwZTBkMmVmZWRkY2M2MWQwODljYmQ1MTVhMzlhMzU3OWI5MjM0M2I2MWVjNzUwMDYwZmI0ZWQzNzg3NjMzMjQwMGU0MjVmMWQzNzZjN2U3NWMyOTczMzE0ZWRmNGJiMzBjOGY4ZGQwM2I5ZmNmZjk1NWEyNDVkNDkxMzdhZDZlNjAwNTZjYWMxOTU1MmE4NjVkNTIxODcxODdjYzA0MmM5YzQ5ZTNlM2E5YzE3YTUzNGI0NTNjZGFiYzBjYjExM2I0ZjYzZjViMzE3NGI5ZWU5OTAyYjE5MTBkMTE0OTZhMjc5YTc0MzI2YWRjZmVlMTBiZmQ5ZTdlYmFmYmIzNzdiZTliNjM5NTkxNjVkMTNkZDU3NTExNzFjYWRhZDNjMWQzYWRhYzY4YmM4MDExZDYxYjU0Y2Y2MDE3OGJlMzY4MzlhODlhYzkxYWI0MTllM2NhMzdkNmJhODgxZDI1NTE4YzRkYjY4YmNhNmY3YzgzNjAyZjY5OWE4NmIxN2ZiMWU3NzNiY2JlNzRiYjkzYTQ5YjI1MWFlODY0MjhiNTc0MGUxODY4YmIxZDZmYWI5ZTI4NzEyZTk4ZWMzMTlhZDhmY2E0ZDczMDEwYzRiMDljNGI4MDQ1ODk2MWU3Y2YwODM1MzAyMDMwMTAwMDFhMzUzMzA1MTMwMWQwNjAzNTUxZDBlMDQxNjA0MTQ4YWVlZTU5NDdjYzY3YzVkZDUxNWE3NmUyYTdlY2QzMWVlNTJmZGM4MzAxZjA2MDM1NTFkMjMwNDE4MzAxNjgwMTQ4YWVlZTU5NDdjYzY3YzVkZDUxNWE3NmUyYTdlY2QzMWVlNTJmZGM4MzAwZjA2MDM1NTFkMTMwMTAxZmYwNDA1MzAwMzAxMDFmZjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDAzODIwMTAxMDA4MjFkNmI5OGNkNDU3ZGViZDJiMDgxYWNhMjdlYmVjZDRmOTNhY2M4Mjg0NDNiMzllYWJmZmE5ZmE0ZTllNDU0M2I0NmZjYzMxZTJiNWI0ODE3NzkwM2RlYTY5NjlhYzRhMmNjNjU3MDY1MDM5MGYxYjA4ZDQzYTRjMmY5NzVjN2VkOGJmMzM1NmM3MjE4MzgwMjEyNDUxYThmMTFkZTQ2NTUzY2JjZDY1YjQyNTRkZGI4ZjY2ODM0ZWIyMWRkYTJhOGYzM2I1ODFlMTQ4NDU1N2FjYTFiOTRlZTg5MzFkZGYxNjAzN2I3YTcxNzEzMjFhOTE5MzZhZmMyN2ZmY2UzOTVkZTc1ZDVmNzBjYjhiNWFlZTA1ZmY1MDcwODhkNjVhZjFlNDM5NjZjZDQyY2JlNmY3ZmFjZjhkYWUwNTVkZDgyMjJiMTY5NjUyMTcyM2Y4MTI0NTE3ODU5NWM5ODVhZTkxN2ZkNGIzOTk4NzczZTFhOTdiN2JkMTAwODU0NDZmNDI1OWJjYzA5YTQ1NDkyOTI4MmMxYjg5YjcxZWQ1ODdhNzc1ZTBhM2Q0NTM2MzQxZjQ1ZGFlOTY5ZTgwNmM5NmZlZmM3MTA2Nzc3NmMwMmJhMjIxMjJiOTE5OWIxNGMwYzI4YzA0NDg3NTA5MDcwYjk3ZjNkZDJkNmQ5NzI3MzMxODIwMTc3MzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDViZWNkODcxOTVjMWRlZmY5MGMyNGM5MTI2OWI1NWIzZjA2OWJjMjI1YzMyNmMzMTRjMWE1MTc4NmZmZTE0YzgzMGJlNGU0YmM3M2NiYTM2Yzk3Njc3YjQ0MTY4Mjc5YmU5MWU3Y2RmN2MxOTM4NmFlMjE4NjI3MTlkMTNhM2EwZmZmMDgwM2Q0NjA5NjJmMmNkYTgzNzE0ODQ4NzMyNTJjM2Q3MDU0ZGI4MTQzZTJiMDgxYTM4MTZlZDA4MDRjYTUwOTlhZTVmZWNlODNkNWMyYzM3ODNiMTk4OGI0YjQ2ZGM5NGU1NTU4N2ExMDdlYTE1NDZiZjIyZDI4YTA5N2Y2NTJhNDA2NmRjMjk2NTI2OTA2OWFmMmY1MTc2YmI4Y2U5Y2E2ZDExZjk2NzU3ZjAzMjA0Zjc1NjcwMzU4N2QwMGFkNDI0Nzk2YzkyZmM3YWViNmY0OTQ0MzE5OTllZGEzMDk5MGU0ZjU3NzM2MzJlZDI1OGZlMDI3NjY3MzU5OWRhNmZjZTM1Y2RhZDc3MjZhMGJiMDI0Y2FkOTk2Yjg4ZTBjYjk4ODU0Y2ViNWMwYjZlYzc0OGQ5ZjljZTZhNmNkNDM3ODU4YmFjYjgxNDYxOGEyNzJmZjNhNDE1YzZlMDdmM2RiMDk4ODc3N2ZkZWM4NDVhOTdiZjdkMTAyZGQwIgogCiBQS0NTNyBQYXJzZSBGYWlsdXJlIEludmFsaWQgQVNOMTogQ2hhbmdlIGxlbmd0aCBmcm9tIDkgdG8gOCAjMjcuMAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHBrY3M3X2FzbjFfZmFpbDoiMzA4MjA1MDAwNjA4MmE4NjQ4ODZmNzBkMDEwNzAyYTA4MjA0ZjEzMDgyMDRlZDAyMDEwMTMxMGYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBiMDYwOTJhODY0ODg2ZjcwZDAxMDcwMWEwODIwMzRkMzA4MjAzNDkzMDgyMDIzMWEwMDMwMjAxMDIwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTMwMWUxNzBkMzIzMjMxMzAzMjM4MzEzNjMxMzAzNTM2NWExNzBkMzIzMzMxMzAzMjM4MzEzNjMxMzAzNTM2NWEzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEzMDgyMDEyMjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDAzODIwMTBmMDAzMDgyMDEwYTAyODIwMTAxMDBjOGI2Y2Y2OTg5OWNkMWYwZWJiNGNhNjQ1YzA1ZTcwZTBkMmVmZWRkY2M2MWQwODljYmQ1MTVhMzlhMzU3OWI5MjM0M2I2MWVjNzUwMDYwZmI0ZWQzNzg3NjMzMjQwMGU0MjVmMWQzNzZjN2U3NWMyOTczMzE0ZWRmNGJiMzBjOGY4ZGQwM2I5ZmNmZjk1NWEyNDVkNDkxMzdhZDZlNjAwNTZjYWMxOTU1MmE4NjVkNTIxODcxODdjYzA0MmM5YzQ5ZTNlM2E5YzE3YTUzNGI0NTNjZGFiYzBjYjExM2I0ZjYzZjViMzE3NGI5ZWU5OTAyYjE5MTBkMTE0OTZhMjc5YTc0MzI2YWRjZmVlMTBiZmQ5ZTdlYmFmYmIzNzdiZTliNjM5NTkxNjVkMTNkZDU3NTExNzFjYWRhZDNjMWQzYWRhYzY4YmM4MDExZDYxYjU0Y2Y2MDE3OGJlMzY4MzlhODlhYzkxYWI0MTllM2NhMzdkNmJhODgxZDI1NTE4YzRkYjY4YmNhNmY3YzgzNjAyZjY5OWE4NmIxN2ZiMWU3NzNiY2JlNzRiYjkzYTQ5YjI1MWFlODY0MjhiNTc0MGUxODY4YmIxZDZmYWI5ZTI4NzEyZTk4ZWMzMTlhZDhmY2E0ZDczMDEwYzRiMDljNGI4MDQ1ODk2MWU3Y2YwODM1MzAyMDMwMTAwMDFhMzUzMzA1MTMwMWQwNjAzNTUxZDBlMDQxNjA0MTQ4YWVlZTU5NDdjYzY3YzVkZDUxNWE3NmUyYTdlY2QzMWVlNTJmZGM4MzAxZjA2MDM1NTFkMjMwNDE4MzAxNjgwMTQ4YWVlZTU5NDdjYzY3YzVkZDUxNWE3NmUyYTdlY2QzMWVlNTJmZGM4MzAwZjA2MDM1NTFkMTMwMTAxZmYwNDA1MzAwMzAxMDFmZjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDAzODIwMTAxMDA4MjFkNmI5OGNkNDU3ZGViZDJiMDgxYWNhMjdlYmVjZDRmOTNhY2M4Mjg0NDNiMzllYWJmZmE5ZmE0ZTllNDU0M2I0NmZjYzMxZTJiNWI0ODE3NzkwM2RlYTY5NjlhYzRhMmNjNjU3MDY1MDM5MGYxYjA4ZDQzYTRjMmY5NzVjN2VkOGJmMzM1NmM3MjE4MzgwMjEyNDUxYThmMTFkZTQ2NTUzY2JjZDY1YjQyNTRkZGI4ZjY2ODM0ZWIyMWRkYTJhOGYzM2I1ODFlMTQ4NDU1N2FjYTFiOTRlZTg5MzFkZGYxNjAzN2I3YTcxNzEzMjFhOTE5MzZhZmMyN2ZmY2UzOTVkZTc1ZDVmNzBjYjhiNWFlZTA1ZmY1MDcwODhkNjVhZjFlNDM5NjZjZDQyY2JlNmY3ZmFjZjhkYWUwNTVkZDgyMjJiMTY5NjUyMTcyM2Y4MTI0NTE3ODU5NWM5ODVhZTkxN2ZkNGIzOTk4NzczZTFhOTdiN2JkMTAwODU0NDZmNDI1OWJjYzA5YTQ1NDkyOTI4MmMxYjg5YjcxZWQ1ODdhNzc1ZTBhM2Q0NTM2MzQxZjQ1ZGFlOTY5ZTgwNmM5NmZlZmM3MTA2Nzc3NmMwMmJhMjIxMjJiOTE5OWIxNGMwYzI4YzA0NDg3NTA5MDcwYjk3ZjNkZDJkNmQ5NzI3MzMxODIwMTc3MzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDViZWNkODcxOTVjMWRlZmY5MGMyNGM5MTI2OWI1NWIzZjA2OWJjMjI1YzMyNmMzMTRjMWE1MTc4NmZmZTE0YzgzMGJlNGU0YmM3M2NiYTM2Yzk3Njc3YjQ0MTY4Mjc5YmU5MWU3Y2RmN2MxOTM4NmFlMjE4NjI3MTlkMTNhM2EwZmZmMDgwM2Q0NjA5NjJmMmNkYTgzNzE0ODQ4NzMyNTJjM2Q3MDU0ZGI4MTQzZTJiMDgxYTM4MTZlZDA4MDRjYTUwOTlhZTVmZWNlODNkNWMyYzM3ODNiMTk4OGI0YjQ2ZGM5NGU1NTU4N2ExMDdlYTE1NDZiZjIyZDI4YTA5N2Y2NTJhNDA2NmRjMjk2NTI2OTA2OWFmMmY1MTc2YmI4Y2U5Y2E2ZDExZjk2NzU3ZjAzMjA0Zjc1NjcwMzU4N2QwMGFkNDI0Nzk2YzkyZmM3YWViNmY0OTQ0MzE5OTllZGEzMDk5MGU0ZjU3NzM2MzJlZDI1OGZlMDI3NjY3MzU5OWRhNmZjZTM1Y2RhZDc3MjZhMGJiMDI0Y2FkOTk2Yjg4ZTBjYjk4ODU0Y2ViNWMwYjZlYzc0OGQ5ZjljZTZhNmNkNDM3ODU4YmFjYjgxNDYxOGEyNzJmZjNhNDE1YzZlMDdmM2RiMDk4ODc3N2ZkZWM4NDVhOTdiZjdkMTAyZGQwIgogCiBQS0NTNyBQYXJzZSBGYWlsdXJlIEludmFsaWQgQVNOMTogQ2hhbmdlIHRhZyBhMCB0byAwMiAjMjguMAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHBrY3M3X2FzbjFfZmFpbDoiMzA4MjA1MDAwNjA5MmE4NjQ4ODZmNzBkMDEwNzAyMDI4MjA0ZjEzMDgyMDRlZDAyMDEwMTMxMGYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBiMDYwOTJhODY0ODg2ZjcwZDAxMDcwMWEwODIwMzRkMzA4MjAzNDkzMDgyMDIzMWEwMDMwMjAxMDIwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTMwMWUxNzBkMzIzMjMxMzAzMjM4MzEzNjMxMzAzNTM2NWExNzBkMzIzMzMxMzAzMjM4MzEzNjMxMzAzNTM2NWEzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEzMDgyMDEyMjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDAzODIwMTBmMDAzMDgyMDEwYTAyODIwMTAxMDBjOGI2Y2Y2OTg5OWNkMWYwZWJiNGNhNjQ1YzA1ZTcwZTBkMmVmZWRkY2M2MWQwODljYmQ1MTVhMzlhMzU3OWI5MjM0M2I2MWVjNzUwMDYwZmI0ZWQzNzg3NjMzMjQwMGU0MjVmMWQzNzZjN2U3NWMyOTczMzE0ZWRmNGJiMzBjOGY4ZGQwM2I5ZmNmZjk1NWEyNDVkNDkxMzdhZDZlNjAwNTZjYWMxOTU1MmE4NjVkNTIxODcxODdjYzA0MmM5YzQ5ZTNlM2E5YzE3YTUzNGI0NTNjZGFiYzBjYjExM2I0ZjYzZjViMzE3NGI5ZWU5OTAyYjE5MTBkMTE0OTZhMjc5YTc0MzI2YWRjZmVlMTBiZmQ5ZTdlYmFmYmIzNzdiZTliNjM5NTkxNjVkMTNkZDU3NTExNzFjYWRhZDNjMWQzYWRhYzY4YmM4MDExZDYxYjU0Y2Y2MDE3OGJlMzY4MzlhODlhYzkxYWI0MTllM2NhMzdkNmJhODgxZDI1NTE4YzRkYjY4YmNhNmY3YzgzNjAyZjY5OWE4NmIxN2ZiMWU3NzNiY2JlNzRiYjkzYTQ5YjI1MWFlODY0MjhiNTc0MGUxODY4YmIxZDZmYWI5ZTI4NzEyZTk4ZWMzMTlhZDhmY2E0ZDczMDEwYzRiMDljNGI4MDQ1ODk2MWU3Y2YwODM1MzAyMDMwMTAwMDFhMzUzMzA1MTMwMWQwNjAzNTUxZDBlMDQxNjA0MTQ4YWVlZTU5NDdjYzY3YzVkZDUxNWE3NmUyYTdlY2QzMWVlNTJmZGM4MzAxZjA2MDM1NTFkMjMwNDE4MzAxNjgwMTQ4YWVlZTU5NDdjYzY3YzVkZDUxNWE3NmUyYTdlY2QzMWVlNTJmZGM4MzAwZjA2MDM1NTFkMTMwMTAxZmYwNDA1MzAwMzAxMDFmZjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDAzODIwMTAxMDA4MjFkNmI5OGNkNDU3ZGViZDJiMDgxYWNhMjdlYmVjZDRmOTNhY2M4Mjg0NDNiMzllYWJmZmE5ZmE0ZTllNDU0M2I0NmZjYzMxZTJiNWI0ODE3NzkwM2RlYTY5NjlhYzRhMmNjNjU3MDY1MDM5MGYxYjA4ZDQzYTRjMmY5NzVjN2VkOGJmMzM1NmM3MjE4MzgwMjEyNDUxYThmMTFkZTQ2NTUzY2JjZDY1YjQyNTRkZGI4ZjY2ODM0ZWIyMWRkYTJhOGYzM2I1ODFlMTQ4NDU1N2FjYTFiOTRlZTg5MzFkZGYxNjAzN2I3YTcxNzEzMjFhOTE5MzZhZmMyN2ZmY2UzOTVkZTc1ZDVmNzBjYjhiNWFlZTA1ZmY1MDcwODhkNjVhZjFlNDM5NjZjZDQyY2JlNmY3ZmFjZjhkYWUwNTVkZDgyMjJiMTY5NjUyMTcyM2Y4MTI0NTE3ODU5NWM5ODVhZTkxN2ZkNGIzOTk4NzczZTFhOTdiN2JkMTAwODU0NDZmNDI1OWJjYzA5YTQ1NDkyOTI4MmMxYjg5YjcxZWQ1ODdhNzc1ZTBhM2Q0NTM2MzQxZjQ1ZGFlOTY5ZTgwNmM5NmZlZmM3MTA2Nzc3NmMwMmJhMjIxMjJiOTE5OWIxNGMwYzI4YzA0NDg3NTA5MDcwYjk3ZjNkZDJkNmQ5NzI3MzMxODIwMTc3MzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDViZWNkODcxOTVjMWRlZmY5MGMyNGM5MTI2OWI1NWIzZjA2OWJjMjI1YzMyNmMzMTRjMWE1MTc4NmZmZTE0YzgzMGJlNGU0YmM3M2NiYTM2Yzk3Njc3YjQ0MTY4Mjc5YmU5MWU3Y2RmN2MxOTM4NmFlMjE4NjI3MTlkMTNhM2EwZmZmMDgwM2Q0NjA5NjJmMmNkYTgzNzE0ODQ4NzMyNTJjM2Q3MDU0ZGI4MTQzZTJiMDgxYTM4MTZlZDA4MDRjYTUwOTlhZTVmZWNlODNkNWMyYzM3ODNiMTk4OGI0YjQ2ZGM5NGU1NTU4N2ExMDdlYTE1NDZiZjIyZDI4YTA5N2Y2NTJhNDA2NmRjMjk2NTI2OTA2OWFmMmY1MTc2YmI4Y2U5Y2E2ZDExZjk2NzU3ZjAzMjA0Zjc1NjcwMzU4N2QwMGFkNDI0Nzk2YzkyZmM3YWViNmY0OTQ0MzE5OTllZGEzMDk5MGU0ZjU3NzM2MzJlZDI1OGZlMDI3NjY3MzU5OWRhNmZjZTM1Y2RhZDc3MjZhMGJiMDI0Y2FkOTk2Yjg4ZTBjYjk4ODU0Y2ViNWMwYjZlYzc0OGQ5ZjljZTZhNmNkNDM3ODU4YmFjYjgxNDYxOGEyNzJmZjNhNDE1YzZlMDdmM2RiMDk4ODc3N2ZkZWM4NDVhOTdiZjdkMTAyZGQwIgogCiBQS0NTNyBQYXJzZSBGYWlsdXJlIEludmFsaWQgQVNOMTogQ2hhbmdlIGxlbmd0aCBmcm9tIDEyNjUgdG8gMTI2NiAjMjkuMAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHBrY3M3X2FzbjFfZmFpbDoiMzA4MjA1MDAwNjA5MmE4NjQ4ODZmNzBkMDEwNzAyYTA4MjA0ZjIzMDgyMDRlZDAyMDEwMTMxMGYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBiMDYwOTJhODY0ODg2ZjcwZDAxMDcwMWEwODIwMzRkMzA4MjAzNDkzMDgyMDIzMWEwMDMwMjAxMDIwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTMwMWUxNzBkMzIzMjMxMzAzMjM4MzEzNjMxMzAzNTM2NWExNzBkMzIzMzMxMzAzMjM4MzEzNjMxMzAzNTM2NWEzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEzMDgyMDEyMjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDAzODIwMTBmMDAzMDgyMDEwYTAyODIwMTAxMDBjOGI2Y2Y2OTg5OWNkMWYwZWJiNGNhNjQ1YzA1ZTcwZTBkMmVmZWRkY2M2MWQwODljYmQ1MTVhMzlhMzU3OWI5MjM0M2I2MWVjNzUwMDYwZmI0ZWQzNzg3NjMzMjQwMGU0MjVmMWQzNzZjN2U3NWMyOTczMzE0ZWRmNGJiMzBjOGY4ZGQwM2I5ZmNmZjk1NWEyNDVkNDkxMzdhZDZlNjAwNTZjYWMxOTU1MmE4NjVkNTIxODcxODdjYzA0MmM5YzQ5ZTNlM2E5YzE3YTUzNGI0NTNjZGFiYzBjYjExM2I0ZjYzZjViMzE3NGI5ZWU5OTAyYjE5MTBkMTE0OTZhMjc5YTc0MzI2YWRjZmVlMTBiZmQ5ZTdlYmFmYmIzNzdiZTliNjM5NTkxNjVkMTNkZDU3NTExNzFjYWRhZDNjMWQzYWRhYzY4YmM4MDExZDYxYjU0Y2Y2MDE3OGJlMzY4MzlhODlhYzkxYWI0MTllM2NhMzdkNmJhODgxZDI1NTE4YzRkYjY4YmNhNmY3YzgzNjAyZjY5OWE4NmIxN2ZiMWU3NzNiY2JlNzRiYjkzYTQ5YjI1MWFlODY0MjhiNTc0MGUxODY4YmIxZDZmYWI5ZTI4NzEyZTk4ZWMzMTlhZDhmY2E0ZDczMDEwYzRiMDljNGI4MDQ1ODk2MWU3Y2YwODM1MzAyMDMwMTAwMDFhMzUzMzA1MTMwMWQwNjAzNTUxZDBlMDQxNjA0MTQ4YWVlZTU5NDdjYzY3YzVkZDUxNWE3NmUyYTdlY2QzMWVlNTJmZGM4MzAxZjA2MDM1NTFkMjMwNDE4MzAxNjgwMTQ4YWVlZTU5NDdjYzY3YzVkZDUxNWE3NmUyYTdlY2QzMWVlNTJmZGM4MzAwZjA2MDM1NTFkMTMwMTAxZmYwNDA1MzAwMzAxMDFmZjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDAzODIwMTAxMDA4MjFkNmI5OGNkNDU3ZGViZDJiMDgxYWNhMjdlYmVjZDRmOTNhY2M4Mjg0NDNiMzllYWJmZmE5ZmE0ZTllNDU0M2I0NmZjYzMxZTJiNWI0ODE3NzkwM2RlYTY5NjlhYzRhMmNjNjU3MDY1MDM5MGYxYjA4ZDQzYTRjMmY5NzVjN2VkOGJmMzM1NmM3MjE4MzgwMjEyNDUxYThmMTFkZTQ2NTUzY2JjZDY1YjQyNTRkZGI4ZjY2ODM0ZWIyMWRkYTJhOGYzM2I1ODFlMTQ4NDU1N2FjYTFiOTRlZTg5MzFkZGYxNjAzN2I3YTcxNzEzMjFhOTE5MzZhZmMyN2ZmY2UzOTVkZTc1ZDVmNzBjYjhiNWFlZTA1ZmY1MDcwODhkNjVhZjFlNDM5NjZjZDQyY2JlNmY3ZmFjZjhkYWUwNTVkZDgyMjJiMTY5NjUyMTcyM2Y4MTI0NTE3ODU5NWM5ODVhZTkxN2ZkNGIzOTk4NzczZTFhOTdiN2JkMTAwODU0NDZmNDI1OWJjYzA5YTQ1NDkyOTI4MmMxYjg5YjcxZWQ1ODdhNzc1ZTBhM2Q0NTM2MzQxZjQ1ZGFlOTY5ZTgwNmM5NmZlZmM3MTA2Nzc3NmMwMmJhMjIxMjJiOTE5OWIxNGMwYzI4YzA0NDg3NTA5MDcwYjk3ZjNkZDJkNmQ5NzI3MzMxODIwMTc3MzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDViZWNkODcxOTVjMWRlZmY5MGMyNGM5MTI2OWI1NWIzZjA2OWJjMjI1YzMyNmMzMTRjMWE1MTc4NmZmZTE0YzgzMGJlNGU0YmM3M2NiYTM2Yzk3Njc3YjQ0MTY4Mjc5YmU5MWU3Y2RmN2MxOTM4NmFlMjE4NjI3MTlkMTNhM2EwZmZmMDgwM2Q0NjA5NjJmMmNkYTgzNzE0ODQ4NzMyNTJjM2Q3MDU0ZGI4MTQzZTJiMDgxYTM4MTZlZDA4MDRjYTUwOTlhZTVmZWNlODNkNWMyYzM3ODNiMTk4OGI0YjQ2ZGM5NGU1NTU4N2ExMDdlYTE1NDZiZjIyZDI4YTA5N2Y2NTJhNDA2NmRjMjk2NTI2OTA2OWFmMmY1MTc2YmI4Y2U5Y2E2ZDExZjk2NzU3ZjAzMjA0Zjc1NjcwMzU4N2QwMGFkNDI0Nzk2YzkyZmM3YWViNmY0OTQ0MzE5OTllZGEzMDk5MGU0ZjU3NzM2MzJlZDI1OGZlMDI3NjY3MzU5OWRhNmZjZTM1Y2RhZDc3MjZhMGJiMDI0Y2FkOTk2Yjg4ZTBjYjk4ODU0Y2ViNWMwYjZlYzc0OGQ5ZjljZTZhNmNkNDM3ODU4YmFjYjgxNDYxOGEyNzJmZjNhNDE1YzZlMDdmM2RiMDk4ODc3N2ZkZWM4NDVhOTdiZjdkMTAyZGQwIgogCiBQS0NTNyBQYXJzZSBGYWlsdXJlIEludmFsaWQgQVNOMTogQ2hhbmdlIGNvbnRlbnRzIG9mIHRhZyBhMCB0byBjb250YWluIG9uZSB1bmFjY291bnRlZCBleHRyYSBieXRlICMzMC4wCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NgogcGtjczdfYXNuMV9mYWlsOiIzMDgyMDUwMDA2MDkyYTg2NDg4NmY3MGQwMTA3MDJhMDgyMDRmMjMwODIwNGVkMDIwMTAxMzEwZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGIwNjA5MmE4NjQ4ODZmNzBkMDEwNzAxYTA4MjAzNGQzMDgyMDM0OTMwODIwMjMxYTAwMzAyMDEwMjAyMTQ3YmRlZGRkMjQ0NGNkMWNkZmU1YzQxYTgxMDJjODliN2RmMmU2Y2JmMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMzAxZTE3MGQzMjMyMzEzMDMyMzgzMTM2MzEzMDM1MzY1YTE3MGQzMjMzMzEzMDMyMzgzMTM2MzEzMDM1MzY1YTMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTMwODIwMTIyMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDM4MjAxMGYwMDMwODIwMTBhMDI4MjAxMDEwMGM4YjZjZjY5ODk5Y2QxZjBlYmI0Y2E2NDVjMDVlNzBlMGQyZWZlZGRjYzYxZDA4OWNiZDUxNWEzOWEzNTc5YjkyMzQzYjYxZWM3NTAwNjBmYjRlZDM3ODc2MzMyNDAwZTQyNWYxZDM3NmM3ZTc1YzI5NzMzMTRlZGY0YmIzMGM4ZjhkZDAzYjlmY2ZmOTU1YTI0NWQ0OTEzN2FkNmU2MDA1NmNhYzE5NTUyYTg2NWQ1MjE4NzE4N2NjMDQyYzljNDllM2UzYTljMTdhNTM0YjQ1M2NkYWJjMGNiMTEzYjRmNjNmNWIzMTc0YjllZTk5MDJiMTkxMGQxMTQ5NmEyNzlhNzQzMjZhZGNmZWUxMGJmZDllN2ViYWZiYjM3N2JlOWI2Mzk1OTE2NWQxM2RkNTc1MTE3MWNhZGFkM2MxZDNhZGFjNjhiYzgwMTFkNjFiNTRjZjYwMTc4YmUzNjgzOWE4OWFjOTFhYjQxOWUzY2EzN2Q2YmE4ODFkMjU1MThjNGRiNjhiY2E2ZjdjODM2MDJmNjk5YTg2YjE3ZmIxZTc3M2JjYmU3NGJiOTNhNDliMjUxYWU4NjQyOGI1NzQwZTE4NjhiYjFkNmZhYjllMjg3MTJlOThlYzMxOWFkOGZjYTRkNzMwMTBjNGIwOWM0YjgwNDU4OTYxZTdjZjA4MzUzMDIwMzAxMDAwMWEzNTMzMDUxMzAxZDA2MDM1NTFkMGUwNDE2MDQxNDhhZWVlNTk0N2NjNjdjNWRkNTE1YTc2ZTJhN2VjZDMxZWU1MmZkYzgzMDFmMDYwMzU1MWQyMzA0MTgzMDE2ODAxNDhhZWVlNTk0N2NjNjdjNWRkNTE1YTc2ZTJhN2VjZDMxZWU1MmZkYzgzMDBmMDYwMzU1MWQxMzAxMDFmZjA0MDUzMDAzMDEwMWZmMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMDM4MjAxMDEwMDgyMWQ2Yjk4Y2Q0NTdkZWJkMmIwODFhY2EyN2ViZWNkNGY5M2FjYzgyODQ0M2IzOWVhYmZmYTlmYTRlOWU0NTQzYjQ2ZmNjMzFlMmI1YjQ4MTc3OTAzZGVhNjk2OWFjNGEyY2M2NTcwNjUwMzkwZjFiMDhkNDNhNGMyZjk3NWM3ZWQ4YmYzMzU2YzcyMTgzODAyMTI0NTFhOGYxMWRlNDY1NTNjYmNkNjViNDI1NGRkYjhmNjY4MzRlYjIxZGRhMmE4ZjMzYjU4MWUxNDg0NTU3YWNhMWI5NGVlODkzMWRkZjE2MDM3YjdhNzE3MTMyMWE5MTkzNmFmYzI3ZmZjZTM5NWRlNzVkNWY3MGNiOGI1YWVlMDVmZjUwNzA4OGQ2NWFmMWU0Mzk2NmNkNDJjYmU2ZjdmYWNmOGRhZTA1NWRkODIyMmIxNjk2NTIxNzIzZjgxMjQ1MTc4NTk1Yzk4NWFlOTE3ZmQ0YjM5OTg3NzNlMWE5N2I3YmQxMDA4NTQ0NmY0MjU5YmNjMDlhNDU0OTI5MjgyYzFiODliNzFlZDU4N2E3NzVlMGEzZDQ1MzYzNDFmNDVkYWU5NjllODA2Yzk2ZmVmYzcxMDY3Nzc2YzAyYmEyMjEyMmI5MTk5YjE0YzBjMjhjMDQ0ODc1MDkwNzBiOTdmM2RkMmQ2ZDk3MjczMzE4MjAxNzczMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwNWJlY2Q4NzE5NWMxZGVmZjkwYzI0YzkxMjY5YjU1YjNmMDY5YmMyMjVjMzI2YzMxNGMxYTUxNzg2ZmZlMTRjODMwYmU0ZTRiYzczY2JhMzZjOTc2NzdiNDQxNjgyNzliZTkxZTdjZGY3YzE5Mzg2YWUyMTg2MjcxOWQxM2EzYTBmZmYwODAzZDQ2MDk2MmYyY2RhODM3MTQ4NDg3MzI1MmMzZDcwNTRkYjgxNDNlMmIwODFhMzgxNmVkMDgwNGNhNTA5OWFlNWZlY2U4M2Q1YzJjMzc4M2IxOTg4YjRiNDZkYzk0ZTU1NTg3YTEwN2VhMTU0NmJmMjJkMjhhMDk3ZjY1MmE0MDY2ZGMyOTY1MjY5MDY5YWYyZjUxNzZiYjhjZTljYTZkMTFmOTY3NTdmMDMyMDRmNzU2NzAzNTg3ZDAwYWQ0MjQ3OTZjOTJmYzdhZWI2ZjQ5NDQzMTk5OWVkYTMwOTkwZTRmNTc3MzYzMmVkMjU4ZmUwMjc2NjczNTk5ZGE2ZmNlMzVjZGFkNzcyNmEwYmIwMjRjYWQ5OTZiODhlMGNiOTg4NTRjZWI1YzBiNmVjNzQ4ZDlmOWNlNmE2Y2Q0Mzc4NThiYWNiODE0NjE4YTI3MmZmM2E0MTVjNmUwN2YzZGIwOTg4Nzc3ZmRlYzg0NWE5N2JmN2QxMDJkZDAwMCIKIAogUEtDUzcgUGFyc2UgRmFpbHVyZSBJbnZhbGlkIEFTTjE6IENoYW5nZSBsZW5ndGggZnJvbSAxMjY1IHRvIDEyNjQgIzMxLjAKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBwa2NzN19hc24xX2ZhaWw6IjMwODIwNTAwMDYwOTJhODY0ODg2ZjcwZDAxMDcwMmEwODIwNGYwMzA4MjA0ZWQwMjAxMDEzMTBmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwYjA2MDkyYTg2NDg4NmY3MGQwMTA3MDFhMDgyMDM0ZDMwODIwMzQ5MzA4MjAyMzFhMDAzMDIwMTAyMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEzMDFlMTcwZDMyMzIzMTMwMzIzODMxMzYzMTMwMzUzNjVhMTcwZDMyMzMzMTMwMzIzODMxMzYzMTMwMzUzNjVhMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMzA4MjAxMjIzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwMzgyMDEwZjAwMzA4MjAxMGEwMjgyMDEwMTAwYzhiNmNmNjk4OTljZDFmMGViYjRjYTY0NWMwNWU3MGUwZDJlZmVkZGNjNjFkMDg5Y2JkNTE1YTM5YTM1NzliOTIzNDNiNjFlYzc1MDA2MGZiNGVkMzc4NzYzMzI0MDBlNDI1ZjFkMzc2YzdlNzVjMjk3MzMxNGVkZjRiYjMwYzhmOGRkMDNiOWZjZmY5NTVhMjQ1ZDQ5MTM3YWQ2ZTYwMDU2Y2FjMTk1NTJhODY1ZDUyMTg3MTg3Y2MwNDJjOWM0OWUzZTNhOWMxN2E1MzRiNDUzY2RhYmMwY2IxMTNiNGY2M2Y1YjMxNzRiOWVlOTkwMmIxOTEwZDExNDk2YTI3OWE3NDMyNmFkY2ZlZTEwYmZkOWU3ZWJhZmJiMzc3YmU5YjYzOTU5MTY1ZDEzZGQ1NzUxMTcxY2FkYWQzYzFkM2FkYWM2OGJjODAxMWQ2MWI1NGNmNjAxNzhiZTM2ODM5YTg5YWM5MWFiNDE5ZTNjYTM3ZDZiYTg4MWQyNTUxOGM0ZGI2OGJjYTZmN2M4MzYwMmY2OTlhODZiMTdmYjFlNzczYmNiZTc0YmI5M2E0OWIyNTFhZTg2NDI4YjU3NDBlMTg2OGJiMWQ2ZmFiOWUyODcxMmU5OGVjMzE5YWQ4ZmNhNGQ3MzAxMGM0YjA5YzRiODA0NTg5NjFlN2NmMDgzNTMwMjAzMDEwMDAxYTM1MzMwNTEzMDFkMDYwMzU1MWQwZTA0MTYwNDE0OGFlZWU1OTQ3Y2M2N2M1ZGQ1MTVhNzZlMmE3ZWNkMzFlZTUyZmRjODMwMWYwNjAzNTUxZDIzMDQxODMwMTY4MDE0OGFlZWU1OTQ3Y2M2N2M1ZGQ1MTVhNzZlMmE3ZWNkMzFlZTUyZmRjODMwMGYwNjAzNTUxZDEzMDEwMWZmMDQwNTMwMDMwMTAxZmYzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAwMzgyMDEwMTAwODIxZDZiOThjZDQ1N2RlYmQyYjA4MWFjYTI3ZWJlY2Q0ZjkzYWNjODI4NDQzYjM5ZWFiZmZhOWZhNGU5ZTQ1NDNiNDZmY2MzMWUyYjViNDgxNzc5MDNkZWE2OTY5YWM0YTJjYzY1NzA2NTAzOTBmMWIwOGQ0M2E0YzJmOTc1YzdlZDhiZjMzNTZjNzIxODM4MDIxMjQ1MWE4ZjExZGU0NjU1M2NiY2Q2NWI0MjU0ZGRiOGY2NjgzNGViMjFkZGEyYThmMzNiNTgxZTE0ODQ1NTdhY2ExYjk0ZWU4OTMxZGRmMTYwMzdiN2E3MTcxMzIxYTkxOTM2YWZjMjdmZmNlMzk1ZGU3NWQ1ZjcwY2I4YjVhZWUwNWZmNTA3MDg4ZDY1YWYxZTQzOTY2Y2Q0MmNiZTZmN2ZhY2Y4ZGFlMDU1ZGQ4MjIyYjE2OTY1MjE3MjNmODEyNDUxNzg1OTVjOTg1YWU5MTdmZDRiMzk5ODc3M2UxYTk3YjdiZDEwMDg1NDQ2ZjQyNTliY2MwOWE0NTQ5MjkyODJjMWI4OWI3MWVkNTg3YTc3NWUwYTNkNDUzNjM0MWY0NWRhZTk2OWU4MDZjOTZmZWZjNzEwNjc3NzZjMDJiYTIyMTIyYjkxOTliMTRjMGMyOGMwNDQ4NzUwOTA3MGI5N2YzZGQyZDZkOTcyNzMzMTgyMDE3NzMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTAyMTQ3YmRlZGRkMjQ0NGNkMWNkZmU1YzQxYTgxMDJjODliN2RmMmU2Y2JmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDA1YmVjZDg3MTk1YzFkZWZmOTBjMjRjOTEyNjliNTViM2YwNjliYzIyNWMzMjZjMzE0YzFhNTE3ODZmZmUxNGM4MzBiZTRlNGJjNzNjYmEzNmM5NzY3N2I0NDE2ODI3OWJlOTFlN2NkZjdjMTkzODZhZTIxODYyNzE5ZDEzYTNhMGZmZjA4MDNkNDYwOTYyZjJjZGE4MzcxNDg0ODczMjUyYzNkNzA1NGRiODE0M2UyYjA4MWEzODE2ZWQwODA0Y2E1MDk5YWU1ZmVjZTgzZDVjMmMzNzgzYjE5ODhiNGI0NmRjOTRlNTU1ODdhMTA3ZWExNTQ2YmYyMmQyOGEwOTdmNjUyYTQwNjZkYzI5NjUyNjkwNjlhZjJmNTE3NmJiOGNlOWNhNmQxMWY5Njc1N2YwMzIwNGY3NTY3MDM1ODdkMDBhZDQyNDc5NmM5MmZjN2FlYjZmNDk0NDMxOTk5ZWRhMzA5OTBlNGY1NzczNjMyZWQyNThmZTAyNzY2NzM1OTlkYTZmY2UzNWNkYWQ3NzI2YTBiYjAyNGNhZDk5NmI4OGUwY2I5ODg1NGNlYjVjMGI2ZWM3NDhkOWY5Y2U2YTZjZDQzNzg1OGJhY2I4MTQ2MThhMjcyZmYzYTQxNWM2ZTA3ZjNkYjA5ODg3NzdmZGVjODQ1YTk3YmY3ZDEwMmRkMCIKIAogUEtDUzcgUGFyc2UgRmFpbHVyZSBJbnZhbGlkIEFTTjE6IENoYW5nZSB0YWcgMzAgdG8gMDIgIzMyLjAKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBwa2NzN19hc24xX2ZhaWw6IjMwODIwNTAwMDYwOTJhODY0ODg2ZjcwZDAxMDcwMmEwODIwNGYxMDI4MjA0ZWQwMjAxMDEzMTBmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwYjA2MDkyYTg2NDg4NmY3MGQwMTA3MDFhMDgyMDM0ZDMwODIwMzQ5MzA4MjAyMzFhMDAzMDIwMTAyMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEzMDFlMTcwZDMyMzIzMTMwMzIzODMxMzYzMTMwMzUzNjVhMTcwZDMyMzMzMTMwMzIzODMxMzYzMTMwMzUzNjVhMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMzA4MjAxMjIzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwMzgyMDEwZjAwMzA4MjAxMGEwMjgyMDEwMTAwYzhiNmNmNjk4OTljZDFmMGViYjRjYTY0NWMwNWU3MGUwZDJlZmVkZGNjNjFkMDg5Y2JkNTE1YTM5YTM1NzliOTIzNDNiNjFlYzc1MDA2MGZiNGVkMzc4NzYzMzI0MDBlNDI1ZjFkMzc2YzdlNzVjMjk3MzMxNGVkZjRiYjMwYzhmOGRkMDNiOWZjZmY5NTVhMjQ1ZDQ5MTM3YWQ2ZTYwMDU2Y2FjMTk1NTJhODY1ZDUyMTg3MTg3Y2MwNDJjOWM0OWUzZTNhOWMxN2E1MzRiNDUzY2RhYmMwY2IxMTNiNGY2M2Y1YjMxNzRiOWVlOTkwMmIxOTEwZDExNDk2YTI3OWE3NDMyNmFkY2ZlZTEwYmZkOWU3ZWJhZmJiMzc3YmU5YjYzOTU5MTY1ZDEzZGQ1NzUxMTcxY2FkYWQzYzFkM2FkYWM2OGJjODAxMWQ2MWI1NGNmNjAxNzhiZTM2ODM5YTg5YWM5MWFiNDE5ZTNjYTM3ZDZiYTg4MWQyNTUxOGM0ZGI2OGJjYTZmN2M4MzYwMmY2OTlhODZiMTdmYjFlNzczYmNiZTc0YmI5M2E0OWIyNTFhZTg2NDI4YjU3NDBlMTg2OGJiMWQ2ZmFiOWUyODcxMmU5OGVjMzE5YWQ4ZmNhNGQ3MzAxMGM0YjA5YzRiODA0NTg5NjFlN2NmMDgzNTMwMjAzMDEwMDAxYTM1MzMwNTEzMDFkMDYwMzU1MWQwZTA0MTYwNDE0OGFlZWU1OTQ3Y2M2N2M1ZGQ1MTVhNzZlMmE3ZWNkMzFlZTUyZmRjODMwMWYwNjAzNTUxZDIzMDQxODMwMTY4MDE0OGFlZWU1OTQ3Y2M2N2M1ZGQ1MTVhNzZlMmE3ZWNkMzFlZTUyZmRjODMwMGYwNjAzNTUxZDEzMDEwMWZmMDQwNTMwMDMwMTAxZmYzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAwMzgyMDEwMTAwODIxZDZiOThjZDQ1N2RlYmQyYjA4MWFjYTI3ZWJlY2Q0ZjkzYWNjODI4NDQzYjM5ZWFiZmZhOWZhNGU5ZTQ1NDNiNDZmY2MzMWUyYjViNDgxNzc5MDNkZWE2OTY5YWM0YTJjYzY1NzA2NTAzOTBmMWIwOGQ0M2E0YzJmOTc1YzdlZDhiZjMzNTZjNzIxODM4MDIxMjQ1MWE4ZjExZGU0NjU1M2NiY2Q2NWI0MjU0ZGRiOGY2NjgzNGViMjFkZGEyYThmMzNiNTgxZTE0ODQ1NTdhY2ExYjk0ZWU4OTMxZGRmMTYwMzdiN2E3MTcxMzIxYTkxOTM2YWZjMjdmZmNlMzk1ZGU3NWQ1ZjcwY2I4YjVhZWUwNWZmNTA3MDg4ZDY1YWYxZTQzOTY2Y2Q0MmNiZTZmN2ZhY2Y4ZGFlMDU1ZGQ4MjIyYjE2OTY1MjE3MjNmODEyNDUxNzg1OTVjOTg1YWU5MTdmZDRiMzk5ODc3M2UxYTk3YjdiZDEwMDg1NDQ2ZjQyNTliY2MwOWE0NTQ5MjkyODJjMWI4OWI3MWVkNTg3YTc3NWUwYTNkNDUzNjM0MWY0NWRhZTk2OWU4MDZjOTZmZWZjNzEwNjc3NzZjMDJiYTIyMTIyYjkxOTliMTRjMGMyOGMwNDQ4NzUwOTA3MGI5N2YzZGQyZDZkOTcyNzMzMTgyMDE3NzMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTAyMTQ3YmRlZGRkMjQ0NGNkMWNkZmU1YzQxYTgxMDJjODliN2RmMmU2Y2JmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDA1YmVjZDg3MTk1YzFkZWZmOTBjMjRjOTEyNjliNTViM2YwNjliYzIyNWMzMjZjMzE0YzFhNTE3ODZmZmUxNGM4MzBiZTRlNGJjNzNjYmEzNmM5NzY3N2I0NDE2ODI3OWJlOTFlN2NkZjdjMTkzODZhZTIxODYyNzE5ZDEzYTNhMGZmZjA4MDNkNDYwOTYyZjJjZGE4MzcxNDg0ODczMjUyYzNkNzA1NGRiODE0M2UyYjA4MWEzODE2ZWQwODA0Y2E1MDk5YWU1ZmVjZTgzZDVjMmMzNzgzYjE5ODhiNGI0NmRjOTRlNTU1ODdhMTA3ZWExNTQ2YmYyMmQyOGEwOTdmNjUyYTQwNjZkYzI5NjUyNjkwNjlhZjJmNTE3NmJiOGNlOWNhNmQxMWY5Njc1N2YwMzIwNGY3NTY3MDM1ODdkMDBhZDQyNDc5NmM5MmZjN2FlYjZmNDk0NDMxOTk5ZWRhMzA5OTBlNGY1NzczNjMyZWQyNThmZTAyNzY2NzM1OTlkYTZmY2UzNWNkYWQ3NzI2YTBiYjAyNGNhZDk5NmI4OGUwY2I5ODg1NGNlYjVjMGI2ZWM3NDhkOWY5Y2U2YTZjZDQzNzg1OGJhY2I4MTQ2MThhMjcyZmYzYTQxNWM2ZTA3ZjNkYjA5ODg3NzdmZGVjODQ1YTk3YmY3ZDEwMmRkMCIKIAogUEtDUzcgUGFyc2UgRmFpbHVyZSBJbnZhbGlkIEFTTjE6IENoYW5nZSBsZW5ndGggZnJvbSAxMjYxIHRvIDEyNjIgIzMzLjAKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBwa2NzN19hc24xX2ZhaWw6IjMwODIwNTAwMDYwOTJhODY0ODg2ZjcwZDAxMDcwMmEwODIwNGYxMzA4MjA0ZWUwMjAxMDEzMTBmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwYjA2MDkyYTg2NDg4NmY3MGQwMTA3MDFhMDgyMDM0ZDMwODIwMzQ5MzA4MjAyMzFhMDAzMDIwMTAyMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEzMDFlMTcwZDMyMzIzMTMwMzIzODMxMzYzMTMwMzUzNjVhMTcwZDMyMzMzMTMwMzIzODMxMzYzMTMwMzUzNjVhMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMzA4MjAxMjIzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwMzgyMDEwZjAwMzA4MjAxMGEwMjgyMDEwMTAwYzhiNmNmNjk4OTljZDFmMGViYjRjYTY0NWMwNWU3MGUwZDJlZmVkZGNjNjFkMDg5Y2JkNTE1YTM5YTM1NzliOTIzNDNiNjFlYzc1MDA2MGZiNGVkMzc4NzYzMzI0MDBlNDI1ZjFkMzc2YzdlNzVjMjk3MzMxNGVkZjRiYjMwYzhmOGRkMDNiOWZjZmY5NTVhMjQ1ZDQ5MTM3YWQ2ZTYwMDU2Y2FjMTk1NTJhODY1ZDUyMTg3MTg3Y2MwNDJjOWM0OWUzZTNhOWMxN2E1MzRiNDUzY2RhYmMwY2IxMTNiNGY2M2Y1YjMxNzRiOWVlOTkwMmIxOTEwZDExNDk2YTI3OWE3NDMyNmFkY2ZlZTEwYmZkOWU3ZWJhZmJiMzc3YmU5YjYzOTU5MTY1ZDEzZGQ1NzUxMTcxY2FkYWQzYzFkM2FkYWM2OGJjODAxMWQ2MWI1NGNmNjAxNzhiZTM2ODM5YTg5YWM5MWFiNDE5ZTNjYTM3ZDZiYTg4MWQyNTUxOGM0ZGI2OGJjYTZmN2M4MzYwMmY2OTlhODZiMTdmYjFlNzczYmNiZTc0YmI5M2E0OWIyNTFhZTg2NDI4YjU3NDBlMTg2OGJiMWQ2ZmFiOWUyODcxMmU5OGVjMzE5YWQ4ZmNhNGQ3MzAxMGM0YjA5YzRiODA0NTg5NjFlN2NmMDgzNTMwMjAzMDEwMDAxYTM1MzMwNTEzMDFkMDYwMzU1MWQwZTA0MTYwNDE0OGFlZWU1OTQ3Y2M2N2M1ZGQ1MTVhNzZlMmE3ZWNkMzFlZTUyZmRjODMwMWYwNjAzNTUxZDIzMDQxODMwMTY4MDE0OGFlZWU1OTQ3Y2M2N2M1ZGQ1MTVhNzZlMmE3ZWNkMzFlZTUyZmRjODMwMGYwNjAzNTUxZDEzMDEwMWZmMDQwNTMwMDMwMTAxZmYzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAwMzgyMDEwMTAwODIxZDZiOThjZDQ1N2RlYmQyYjA4MWFjYTI3ZWJlY2Q0ZjkzYWNjODI4NDQzYjM5ZWFiZmZhOWZhNGU5ZTQ1NDNiNDZmY2MzMWUyYjViNDgxNzc5MDNkZWE2OTY5YWM0YTJjYzY1NzA2NTAzOTBmMWIwOGQ0M2E0YzJmOTc1YzdlZDhiZjMzNTZjNzIxODM4MDIxMjQ1MWE4ZjExZGU0NjU1M2NiY2Q2NWI0MjU0ZGRiOGY2NjgzNGViMjFkZGEyYThmMzNiNTgxZTE0ODQ1NTdhY2ExYjk0ZWU4OTMxZGRmMTYwMzdiN2E3MTcxMzIxYTkxOTM2YWZjMjdmZmNlMzk1ZGU3NWQ1ZjcwY2I4YjVhZWUwNWZmNTA3MDg4ZDY1YWYxZTQzOTY2Y2Q0MmNiZTZmN2ZhY2Y4ZGFlMDU1ZGQ4MjIyYjE2OTY1MjE3MjNmODEyNDUxNzg1OTVjOTg1YWU5MTdmZDRiMzk5ODc3M2UxYTk3YjdiZDEwMDg1NDQ2ZjQyNTliY2MwOWE0NTQ5MjkyODJjMWI4OWI3MWVkNTg3YTc3NWUwYTNkNDUzNjM0MWY0NWRhZTk2OWU4MDZjOTZmZWZjNzEwNjc3NzZjMDJiYTIyMTIyYjkxOTliMTRjMGMyOGMwNDQ4NzUwOTA3MGI5N2YzZGQyZDZkOTcyNzMzMTgyMDE3NzMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTAyMTQ3YmRlZGRkMjQ0NGNkMWNkZmU1YzQxYTgxMDJjODliN2RmMmU2Y2JmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDA1YmVjZDg3MTk1YzFkZWZmOTBjMjRjOTEyNjliNTViM2YwNjliYzIyNWMzMjZjMzE0YzFhNTE3ODZmZmUxNGM4MzBiZTRlNGJjNzNjYmEzNmM5NzY3N2I0NDE2ODI3OWJlOTFlN2NkZjdjMTkzODZhZTIxODYyNzE5ZDEzYTNhMGZmZjA4MDNkNDYwOTYyZjJjZGE4MzcxNDg0ODczMjUyYzNkNzA1NGRiODE0M2UyYjA4MWEzODE2ZWQwODA0Y2E1MDk5YWU1ZmVjZTgzZDVjMmMzNzgzYjE5ODhiNGI0NmRjOTRlNTU1ODdhMTA3ZWExNTQ2YmYyMmQyOGEwOTdmNjUyYTQwNjZkYzI5NjUyNjkwNjlhZjJmNTE3NmJiOGNlOWNhNmQxMWY5Njc1N2YwMzIwNGY3NTY3MDM1ODdkMDBhZDQyNDc5NmM5MmZjN2FlYjZmNDk0NDMxOTk5ZWRhMzA5OTBlNGY1NzczNjMyZWQyNThmZTAyNzY2NzM1OTlkYTZmY2UzNWNkYWQ3NzI2YTBiYjAyNGNhZDk5NmI4OGUwY2I5ODg1NGNlYjVjMGI2ZWM3NDhkOWY5Y2U2YTZjZDQzNzg1OGJhY2I4MTQ2MThhMjcyZmYzYTQxNWM2ZTA3ZjNkYjA5ODg3NzdmZGVjODQ1YTk3YmY3ZDEwMmRkMCIKIAogUEtDUzcgUGFyc2UgRmFpbHVyZSBJbnZhbGlkIEFTTjE6IENoYW5nZSBjb250ZW50cyBvZiB0YWcgMzAgdG8gY29udGFpbiBvbmUgdW5hY2NvdW50ZWQgZXh0cmEgYnl0ZSAjMzQuMAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHBrY3M3X2FzbjFfZmFpbDoiMzA4MjA1MDAwNjA5MmE4NjQ4ODZmNzBkMDEwNzAyYTA4MjA0ZjEzMDgyMDRlZTAyMDEwMTMxMGYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBiMDYwOTJhODY0ODg2ZjcwZDAxMDcwMWEwODIwMzRkMzA4MjAzNDkzMDgyMDIzMWEwMDMwMjAxMDIwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTMwMWUxNzBkMzIzMjMxMzAzMjM4MzEzNjMxMzAzNTM2NWExNzBkMzIzMzMxMzAzMjM4MzEzNjMxMzAzNTM2NWEzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEzMDgyMDEyMjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDAzODIwMTBmMDAzMDgyMDEwYTAyODIwMTAxMDBjOGI2Y2Y2OTg5OWNkMWYwZWJiNGNhNjQ1YzA1ZTcwZTBkMmVmZWRkY2M2MWQwODljYmQ1MTVhMzlhMzU3OWI5MjM0M2I2MWVjNzUwMDYwZmI0ZWQzNzg3NjMzMjQwMGU0MjVmMWQzNzZjN2U3NWMyOTczMzE0ZWRmNGJiMzBjOGY4ZGQwM2I5ZmNmZjk1NWEyNDVkNDkxMzdhZDZlNjAwNTZjYWMxOTU1MmE4NjVkNTIxODcxODdjYzA0MmM5YzQ5ZTNlM2E5YzE3YTUzNGI0NTNjZGFiYzBjYjExM2I0ZjYzZjViMzE3NGI5ZWU5OTAyYjE5MTBkMTE0OTZhMjc5YTc0MzI2YWRjZmVlMTBiZmQ5ZTdlYmFmYmIzNzdiZTliNjM5NTkxNjVkMTNkZDU3NTExNzFjYWRhZDNjMWQzYWRhYzY4YmM4MDExZDYxYjU0Y2Y2MDE3OGJlMzY4MzlhODlhYzkxYWI0MTllM2NhMzdkNmJhODgxZDI1NTE4YzRkYjY4YmNhNmY3YzgzNjAyZjY5OWE4NmIxN2ZiMWU3NzNiY2JlNzRiYjkzYTQ5YjI1MWFlODY0MjhiNTc0MGUxODY4YmIxZDZmYWI5ZTI4NzEyZTk4ZWMzMTlhZDhmY2E0ZDczMDEwYzRiMDljNGI4MDQ1ODk2MWU3Y2YwODM1MzAyMDMwMTAwMDFhMzUzMzA1MTMwMWQwNjAzNTUxZDBlMDQxNjA0MTQ4YWVlZTU5NDdjYzY3YzVkZDUxNWE3NmUyYTdlY2QzMWVlNTJmZGM4MzAxZjA2MDM1NTFkMjMwNDE4MzAxNjgwMTQ4YWVlZTU5NDdjYzY3YzVkZDUxNWE3NmUyYTdlY2QzMWVlNTJmZGM4MzAwZjA2MDM1NTFkMTMwMTAxZmYwNDA1MzAwMzAxMDFmZjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDAzODIwMTAxMDA4MjFkNmI5OGNkNDU3ZGViZDJiMDgxYWNhMjdlYmVjZDRmOTNhY2M4Mjg0NDNiMzllYWJmZmE5ZmE0ZTllNDU0M2I0NmZjYzMxZTJiNWI0ODE3NzkwM2RlYTY5NjlhYzRhMmNjNjU3MDY1MDM5MGYxYjA4ZDQzYTRjMmY5NzVjN2VkOGJmMzM1NmM3MjE4MzgwMjEyNDUxYThmMTFkZTQ2NTUzY2JjZDY1YjQyNTRkZGI4ZjY2ODM0ZWIyMWRkYTJhOGYzM2I1ODFlMTQ4NDU1N2FjYTFiOTRlZTg5MzFkZGYxNjAzN2I3YTcxNzEzMjFhOTE5MzZhZmMyN2ZmY2UzOTVkZTc1ZDVmNzBjYjhiNWFlZTA1ZmY1MDcwODhkNjVhZjFlNDM5NjZjZDQyY2JlNmY3ZmFjZjhkYWUwNTVkZDgyMjJiMTY5NjUyMTcyM2Y4MTI0NTE3ODU5NWM5ODVhZTkxN2ZkNGIzOTk4NzczZTFhOTdiN2JkMTAwODU0NDZmNDI1OWJjYzA5YTQ1NDkyOTI4MmMxYjg5YjcxZWQ1ODdhNzc1ZTBhM2Q0NTM2MzQxZjQ1ZGFlOTY5ZTgwNmM5NmZlZmM3MTA2Nzc3NmMwMmJhMjIxMjJiOTE5OWIxNGMwYzI4YzA0NDg3NTA5MDcwYjk3ZjNkZDJkNmQ5NzI3MzMxODIwMTc3MzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDViZWNkODcxOTVjMWRlZmY5MGMyNGM5MTI2OWI1NWIzZjA2OWJjMjI1YzMyNmMzMTRjMWE1MTc4NmZmZTE0YzgzMGJlNGU0YmM3M2NiYTM2Yzk3Njc3YjQ0MTY4Mjc5YmU5MWU3Y2RmN2MxOTM4NmFlMjE4NjI3MTlkMTNhM2EwZmZmMDgwM2Q0NjA5NjJmMmNkYTgzNzE0ODQ4NzMyNTJjM2Q3MDU0ZGI4MTQzZTJiMDgxYTM4MTZlZDA4MDRjYTUwOTlhZTVmZWNlODNkNWMyYzM3ODNiMTk4OGI0YjQ2ZGM5NGU1NTU4N2ExMDdlYTE1NDZiZjIyZDI4YTA5N2Y2NTJhNDA2NmRjMjk2NTI2OTA2OWFmMmY1MTc2YmI4Y2U5Y2E2ZDExZjk2NzU3ZjAzMjA0Zjc1NjcwMzU4N2QwMGFkNDI0Nzk2YzkyZmM3YWViNmY0OTQ0MzE5OTllZGEzMDk5MGU0ZjU3NzM2MzJlZDI1OGZlMDI3NjY3MzU5OWRhNmZjZTM1Y2RhZDc3MjZhMGJiMDI0Y2FkOTk2Yjg4ZTBjYjk4ODU0Y2ViNWMwYjZlYzc0OGQ5ZjljZTZhNmNkNDM3ODU4YmFjYjgxNDYxOGEyNzJmZjNhNDE1YzZlMDdmM2RiMDk4ODc3N2ZkZWM4NDVhOTdiZjdkMTAyZGQwMDAiCiAKIFBLQ1M3IFBhcnNlIEZhaWx1cmUgSW52YWxpZCBBU04xOiBDaGFuZ2UgbGVuZ3RoIGZyb20gMTI2MSB0byAxMjYwICMzNS4wCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NgogcGtjczdfYXNuMV9mYWlsOiIzMDgyMDUwMDA2MDkyYTg2NDg4NmY3MGQwMTA3MDJhMDgyMDRmMTMwODIwNGVjMDIwMTAxMzEwZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGIwNjA5MmE4NjQ4ODZmNzBkMDEwNzAxYTA4MjAzNGQzMDgyMDM0OTMwODIwMjMxYTAwMzAyMDEwMjAyMTQ3YmRlZGRkMjQ0NGNkMWNkZmU1YzQxYTgxMDJjODliN2RmMmU2Y2JmMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMzAxZTE3MGQzMjMyMzEzMDMyMzgzMTM2MzEzMDM1MzY1YTE3MGQzMjMzMzEzMDMyMzgzMTM2MzEzMDM1MzY1YTMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTMwODIwMTIyMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDM4MjAxMGYwMDMwODIwMTBhMDI4MjAxMDEwMGM4YjZjZjY5ODk5Y2QxZjBlYmI0Y2E2NDVjMDVlNzBlMGQyZWZlZGRjYzYxZDA4OWNiZDUxNWEzOWEzNTc5YjkyMzQzYjYxZWM3NTAwNjBmYjRlZDM3ODc2MzMyNDAwZTQyNWYxZDM3NmM3ZTc1YzI5NzMzMTRlZGY0YmIzMGM4ZjhkZDAzYjlmY2ZmOTU1YTI0NWQ0OTEzN2FkNmU2MDA1NmNhYzE5NTUyYTg2NWQ1MjE4NzE4N2NjMDQyYzljNDllM2UzYTljMTdhNTM0YjQ1M2NkYWJjMGNiMTEzYjRmNjNmNWIzMTc0YjllZTk5MDJiMTkxMGQxMTQ5NmEyNzlhNzQzMjZhZGNmZWUxMGJmZDllN2ViYWZiYjM3N2JlOWI2Mzk1OTE2NWQxM2RkNTc1MTE3MWNhZGFkM2MxZDNhZGFjNjhiYzgwMTFkNjFiNTRjZjYwMTc4YmUzNjgzOWE4OWFjOTFhYjQxOWUzY2EzN2Q2YmE4ODFkMjU1MThjNGRiNjhiY2E2ZjdjODM2MDJmNjk5YTg2YjE3ZmIxZTc3M2JjYmU3NGJiOTNhNDliMjUxYWU4NjQyOGI1NzQwZTE4NjhiYjFkNmZhYjllMjg3MTJlOThlYzMxOWFkOGZjYTRkNzMwMTBjNGIwOWM0YjgwNDU4OTYxZTdjZjA4MzUzMDIwMzAxMDAwMWEzNTMzMDUxMzAxZDA2MDM1NTFkMGUwNDE2MDQxNDhhZWVlNTk0N2NjNjdjNWRkNTE1YTc2ZTJhN2VjZDMxZWU1MmZkYzgzMDFmMDYwMzU1MWQyMzA0MTgzMDE2ODAxNDhhZWVlNTk0N2NjNjdjNWRkNTE1YTc2ZTJhN2VjZDMxZWU1MmZkYzgzMDBmMDYwMzU1MWQxMzAxMDFmZjA0MDUzMDAzMDEwMWZmMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMDM4MjAxMDEwMDgyMWQ2Yjk4Y2Q0NTdkZWJkMmIwODFhY2EyN2ViZWNkNGY5M2FjYzgyODQ0M2IzOWVhYmZmYTlmYTRlOWU0NTQzYjQ2ZmNjMzFlMmI1YjQ4MTc3OTAzZGVhNjk2OWFjNGEyY2M2NTcwNjUwMzkwZjFiMDhkNDNhNGMyZjk3NWM3ZWQ4YmYzMzU2YzcyMTgzODAyMTI0NTFhOGYxMWRlNDY1NTNjYmNkNjViNDI1NGRkYjhmNjY4MzRlYjIxZGRhMmE4ZjMzYjU4MWUxNDg0NTU3YWNhMWI5NGVlODkzMWRkZjE2MDM3YjdhNzE3MTMyMWE5MTkzNmFmYzI3ZmZjZTM5NWRlNzVkNWY3MGNiOGI1YWVlMDVmZjUwNzA4OGQ2NWFmMWU0Mzk2NmNkNDJjYmU2ZjdmYWNmOGRhZTA1NWRkODIyMmIxNjk2NTIxNzIzZjgxMjQ1MTc4NTk1Yzk4NWFlOTE3ZmQ0YjM5OTg3NzNlMWE5N2I3YmQxMDA4NTQ0NmY0MjU5YmNjMDlhNDU0OTI5MjgyYzFiODliNzFlZDU4N2E3NzVlMGEzZDQ1MzYzNDFmNDVkYWU5NjllODA2Yzk2ZmVmYzcxMDY3Nzc2YzAyYmEyMjEyMmI5MTk5YjE0YzBjMjhjMDQ0ODc1MDkwNzBiOTdmM2RkMmQ2ZDk3MjczMzE4MjAxNzczMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwNWJlY2Q4NzE5NWMxZGVmZjkwYzI0YzkxMjY5YjU1YjNmMDY5YmMyMjVjMzI2YzMxNGMxYTUxNzg2ZmZlMTRjODMwYmU0ZTRiYzczY2JhMzZjOTc2NzdiNDQxNjgyNzliZTkxZTdjZGY3YzE5Mzg2YWUyMTg2MjcxOWQxM2EzYTBmZmYwODAzZDQ2MDk2MmYyY2RhODM3MTQ4NDg3MzI1MmMzZDcwNTRkYjgxNDNlMmIwODFhMzgxNmVkMDgwNGNhNTA5OWFlNWZlY2U4M2Q1YzJjMzc4M2IxOTg4YjRiNDZkYzk0ZTU1NTg3YTEwN2VhMTU0NmJmMjJkMjhhMDk3ZjY1MmE0MDY2ZGMyOTY1MjY5MDY5YWYyZjUxNzZiYjhjZTljYTZkMTFmOTY3NTdmMDMyMDRmNzU2NzAzNTg3ZDAwYWQ0MjQ3OTZjOTJmYzdhZWI2ZjQ5NDQzMTk5OWVkYTMwOTkwZTRmNTc3MzYzMmVkMjU4ZmUwMjc2NjczNTk5ZGE2ZmNlMzVjZGFkNzcyNmEwYmIwMjRjYWQ5OTZiODhlMGNiOTg4NTRjZWI1YzBiNmVjNzQ4ZDlmOWNlNmE2Y2Q0Mzc4NThiYWNiODE0NjE4YTI3MmZmM2E0MTVjNmUwN2YzZGIwOTg4Nzc3ZmRlYzg0NWE5N2JmN2QxMDJkZDAiCiAKIFBLQ1M3IFBhcnNlIEZhaWx1cmUgSW52YWxpZCBBU04xOiBDaGFuZ2UgdGFnIDAyIHRvIDA0ICMzNi4wCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NgogcGtjczdfYXNuMV9mYWlsOiIzMDgyMDUwMDA2MDkyYTg2NDg4NmY3MGQwMTA3MDJhMDgyMDRmMTMwODIwNGVkMDQwMTAxMzEwZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGIwNjA5MmE4NjQ4ODZmNzBkMDEwNzAxYTA4MjAzNGQzMDgyMDM0OTMwODIwMjMxYTAwMzAyMDEwMjAyMTQ3YmRlZGRkMjQ0NGNkMWNkZmU1YzQxYTgxMDJjODliN2RmMmU2Y2JmMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMzAxZTE3MGQzMjMyMzEzMDMyMzgzMTM2MzEzMDM1MzY1YTE3MGQzMjMzMzEzMDMyMzgzMTM2MzEzMDM1MzY1YTMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTMwODIwMTIyMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDM4MjAxMGYwMDMwODIwMTBhMDI4MjAxMDEwMGM4YjZjZjY5ODk5Y2QxZjBlYmI0Y2E2NDVjMDVlNzBlMGQyZWZlZGRjYzYxZDA4OWNiZDUxNWEzOWEzNTc5YjkyMzQzYjYxZWM3NTAwNjBmYjRlZDM3ODc2MzMyNDAwZTQyNWYxZDM3NmM3ZTc1YzI5NzMzMTRlZGY0YmIzMGM4ZjhkZDAzYjlmY2ZmOTU1YTI0NWQ0OTEzN2FkNmU2MDA1NmNhYzE5NTUyYTg2NWQ1MjE4NzE4N2NjMDQyYzljNDllM2UzYTljMTdhNTM0YjQ1M2NkYWJjMGNiMTEzYjRmNjNmNWIzMTc0YjllZTk5MDJiMTkxMGQxMTQ5NmEyNzlhNzQzMjZhZGNmZWUxMGJmZDllN2ViYWZiYjM3N2JlOWI2Mzk1OTE2NWQxM2RkNTc1MTE3MWNhZGFkM2MxZDNhZGFjNjhiYzgwMTFkNjFiNTRjZjYwMTc4YmUzNjgzOWE4OWFjOTFhYjQxOWUzY2EzN2Q2YmE4ODFkMjU1MThjNGRiNjhiY2E2ZjdjODM2MDJmNjk5YTg2YjE3ZmIxZTc3M2JjYmU3NGJiOTNhNDliMjUxYWU4NjQyOGI1NzQwZTE4NjhiYjFkNmZhYjllMjg3MTJlOThlYzMxOWFkOGZjYTRkNzMwMTBjNGIwOWM0YjgwNDU4OTYxZTdjZjA4MzUzMDIwMzAxMDAwMWEzNTMzMDUxMzAxZDA2MDM1NTFkMGUwNDE2MDQxNDhhZWVlNTk0N2NjNjdjNWRkNTE1YTc2ZTJhN2VjZDMxZWU1MmZkYzgzMDFmMDYwMzU1MWQyMzA0MTgzMDE2ODAxNDhhZWVlNTk0N2NjNjdjNWRkNTE1YTc2ZTJhN2VjZDMxZWU1MmZkYzgzMDBmMDYwMzU1MWQxMzAxMDFmZjA0MDUzMDAzMDEwMWZmMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMDM4MjAxMDEwMDgyMWQ2Yjk4Y2Q0NTdkZWJkMmIwODFhY2EyN2ViZWNkNGY5M2FjYzgyODQ0M2IzOWVhYmZmYTlmYTRlOWU0NTQzYjQ2ZmNjMzFlMmI1YjQ4MTc3OTAzZGVhNjk2OWFjNGEyY2M2NTcwNjUwMzkwZjFiMDhkNDNhNGMyZjk3NWM3ZWQ4YmYzMzU2YzcyMTgzODAyMTI0NTFhOGYxMWRlNDY1NTNjYmNkNjViNDI1NGRkYjhmNjY4MzRlYjIxZGRhMmE4ZjMzYjU4MWUxNDg0NTU3YWNhMWI5NGVlODkzMWRkZjE2MDM3YjdhNzE3MTMyMWE5MTkzNmFmYzI3ZmZjZTM5NWRlNzVkNWY3MGNiOGI1YWVlMDVmZjUwNzA4OGQ2NWFmMWU0Mzk2NmNkNDJjYmU2ZjdmYWNmOGRhZTA1NWRkODIyMmIxNjk2NTIxNzIzZjgxMjQ1MTc4NTk1Yzk4NWFlOTE3ZmQ0YjM5OTg3NzNlMWE5N2I3YmQxMDA4NTQ0NmY0MjU5YmNjMDlhNDU0OTI5MjgyYzFiODliNzFlZDU4N2E3NzVlMGEzZDQ1MzYzNDFmNDVkYWU5NjllODA2Yzk2ZmVmYzcxMDY3Nzc2YzAyYmEyMjEyMmI5MTk5YjE0YzBjMjhjMDQ0ODc1MDkwNzBiOTdmM2RkMmQ2ZDk3MjczMzE4MjAxNzczMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwNWJlY2Q4NzE5NWMxZGVmZjkwYzI0YzkxMjY5YjU1YjNmMDY5YmMyMjVjMzI2YzMxNGMxYTUxNzg2ZmZlMTRjODMwYmU0ZTRiYzczY2JhMzZjOTc2NzdiNDQxNjgyNzliZTkxZTdjZGY3YzE5Mzg2YWUyMTg2MjcxOWQxM2EzYTBmZmYwODAzZDQ2MDk2MmYyY2RhODM3MTQ4NDg3MzI1MmMzZDcwNTRkYjgxNDNlMmIwODFhMzgxNmVkMDgwNGNhNTA5OWFlNWZlY2U4M2Q1YzJjMzc4M2IxOTg4YjRiNDZkYzk0ZTU1NTg3YTEwN2VhMTU0NmJmMjJkMjhhMDk3ZjY1MmE0MDY2ZGMyOTY1MjY5MDY5YWYyZjUxNzZiYjhjZTljYTZkMTFmOTY3NTdmMDMyMDRmNzU2NzAzNTg3ZDAwYWQ0MjQ3OTZjOTJmYzdhZWI2ZjQ5NDQzMTk5OWVkYTMwOTkwZTRmNTc3MzYzMmVkMjU4ZmUwMjc2NjczNTk5ZGE2ZmNlMzVjZGFkNzcyNmEwYmIwMjRjYWQ5OTZiODhlMGNiOTg4NTRjZWI1YzBiNmVjNzQ4ZDlmOWNlNmE2Y2Q0Mzc4NThiYWNiODE0NjE4YTI3MmZmM2E0MTVjNmUwN2YzZGIwOTg4Nzc3ZmRlYzg0NWE5N2JmN2QxMDJkZDAiCiAKIFBLQ1M3IFBhcnNlIEZhaWx1cmUgSW52YWxpZCBBU04xOiBDaGFuZ2UgbGVuZ3RoIGZyb20gMSB0byAyICMzNy4wCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NgogcGtjczdfYXNuMV9mYWlsOiIzMDgyMDUwMDA2MDkyYTg2NDg4NmY3MGQwMTA3MDJhMDgyMDRmMTMwODIwNGVkMDIwMjAxMzEwZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGIwNjA5MmE4NjQ4ODZmNzBkMDEwNzAxYTA4MjAzNGQzMDgyMDM0OTMwODIwMjMxYTAwMzAyMDEwMjAyMTQ3YmRlZGRkMjQ0NGNkMWNkZmU1YzQxYTgxMDJjODliN2RmMmU2Y2JmMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMzAxZTE3MGQzMjMyMzEzMDMyMzgzMTM2MzEzMDM1MzY1YTE3MGQzMjMzMzEzMDMyMzgzMTM2MzEzMDM1MzY1YTMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTMwODIwMTIyMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDM4MjAxMGYwMDMwODIwMTBhMDI4MjAxMDEwMGM4YjZjZjY5ODk5Y2QxZjBlYmI0Y2E2NDVjMDVlNzBlMGQyZWZlZGRjYzYxZDA4OWNiZDUxNWEzOWEzNTc5YjkyMzQzYjYxZWM3NTAwNjBmYjRlZDM3ODc2MzMyNDAwZTQyNWYxZDM3NmM3ZTc1YzI5NzMzMTRlZGY0YmIzMGM4ZjhkZDAzYjlmY2ZmOTU1YTI0NWQ0OTEzN2FkNmU2MDA1NmNhYzE5NTUyYTg2NWQ1MjE4NzE4N2NjMDQyYzljNDllM2UzYTljMTdhNTM0YjQ1M2NkYWJjMGNiMTEzYjRmNjNmNWIzMTc0YjllZTk5MDJiMTkxMGQxMTQ5NmEyNzlhNzQzMjZhZGNmZWUxMGJmZDllN2ViYWZiYjM3N2JlOWI2Mzk1OTE2NWQxM2RkNTc1MTE3MWNhZGFkM2MxZDNhZGFjNjhiYzgwMTFkNjFiNTRjZjYwMTc4YmUzNjgzOWE4OWFjOTFhYjQxOWUzY2EzN2Q2YmE4ODFkMjU1MThjNGRiNjhiY2E2ZjdjODM2MDJmNjk5YTg2YjE3ZmIxZTc3M2JjYmU3NGJiOTNhNDliMjUxYWU4NjQyOGI1NzQwZTE4NjhiYjFkNmZhYjllMjg3MTJlOThlYzMxOWFkOGZjYTRkNzMwMTBjNGIwOWM0YjgwNDU4OTYxZTdjZjA4MzUzMDIwMzAxMDAwMWEzNTMzMDUxMzAxZDA2MDM1NTFkMGUwNDE2MDQxNDhhZWVlNTk0N2NjNjdjNWRkNTE1YTc2ZTJhN2VjZDMxZWU1MmZkYzgzMDFmMDYwMzU1MWQyMzA0MTgzMDE2ODAxNDhhZWVlNTk0N2NjNjdjNWRkNTE1YTc2ZTJhN2VjZDMxZWU1MmZkYzgzMDBmMDYwMzU1MWQxMzAxMDFmZjA0MDUzMDAzMDEwMWZmMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMDM4MjAxMDEwMDgyMWQ2Yjk4Y2Q0NTdkZWJkMmIwODFhY2EyN2ViZWNkNGY5M2FjYzgyODQ0M2IzOWVhYmZmYTlmYTRlOWU0NTQzYjQ2ZmNjMzFlMmI1YjQ4MTc3OTAzZGVhNjk2OWFjNGEyY2M2NTcwNjUwMzkwZjFiMDhkNDNhNGMyZjk3NWM3ZWQ4YmYzMzU2YzcyMTgzODAyMTI0NTFhOGYxMWRlNDY1NTNjYmNkNjViNDI1NGRkYjhmNjY4MzRlYjIxZGRhMmE4ZjMzYjU4MWUxNDg0NTU3YWNhMWI5NGVlODkzMWRkZjE2MDM3YjdhNzE3MTMyMWE5MTkzNmFmYzI3ZmZjZTM5NWRlNzVkNWY3MGNiOGI1YWVlMDVmZjUwNzA4OGQ2NWFmMWU0Mzk2NmNkNDJjYmU2ZjdmYWNmOGRhZTA1NWRkODIyMmIxNjk2NTIxNzIzZjgxMjQ1MTc4NTk1Yzk4NWFlOTE3ZmQ0YjM5OTg3NzNlMWE5N2I3YmQxMDA4NTQ0NmY0MjU5YmNjMDlhNDU0OTI5MjgyYzFiODliNzFlZDU4N2E3NzVlMGEzZDQ1MzYzNDFmNDVkYWU5NjllODA2Yzk2ZmVmYzcxMDY3Nzc2YzAyYmEyMjEyMmI5MTk5YjE0YzBjMjhjMDQ0ODc1MDkwNzBiOTdmM2RkMmQ2ZDk3MjczMzE4MjAxNzczMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwNWJlY2Q4NzE5NWMxZGVmZjkwYzI0YzkxMjY5YjU1YjNmMDY5YmMyMjVjMzI2YzMxNGMxYTUxNzg2ZmZlMTRjODMwYmU0ZTRiYzczY2JhMzZjOTc2NzdiNDQxNjgyNzliZTkxZTdjZGY3YzE5Mzg2YWUyMTg2MjcxOWQxM2EzYTBmZmYwODAzZDQ2MDk2MmYyY2RhODM3MTQ4NDg3MzI1MmMzZDcwNTRkYjgxNDNlMmIwODFhMzgxNmVkMDgwNGNhNTA5OWFlNWZlY2U4M2Q1YzJjMzc4M2IxOTg4YjRiNDZkYzk0ZTU1NTg3YTEwN2VhMTU0NmJmMjJkMjhhMDk3ZjY1MmE0MDY2ZGMyOTY1MjY5MDY5YWYyZjUxNzZiYjhjZTljYTZkMTFmOTY3NTdmMDMyMDRmNzU2NzAzNTg3ZDAwYWQ0MjQ3OTZjOTJmYzdhZWI2ZjQ5NDQzMTk5OWVkYTMwOTkwZTRmNTc3MzYzMmVkMjU4ZmUwMjc2NjczNTk5ZGE2ZmNlMzVjZGFkNzcyNmEwYmIwMjRjYWQ5OTZiODhlMGNiOTg4NTRjZWI1YzBiNmVjNzQ4ZDlmOWNlNmE2Y2Q0Mzc4NThiYWNiODE0NjE4YTI3MmZmM2E0MTVjNmUwN2YzZGIwOTg4Nzc3ZmRlYzg0NWE5N2JmN2QxMDJkZDAiCiAKIFBLQ1M3IFBhcnNlIEZhaWx1cmUgSW52YWxpZCBBU04xOiBDaGFuZ2UgbGVuZ3RoIGZyb20gMSB0byAwICMzOC4wCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NgogcGtjczdfYXNuMV9mYWlsOiIzMDgyMDUwMDA2MDkyYTg2NDg4NmY3MGQwMTA3MDJhMDgyMDRmMTMwODIwNGVkMDIwMDAxMzEwZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGIwNjA5MmE4NjQ4ODZmNzBkMDEwNzAxYTA4MjAzNGQzMDgyMDM0OTMwODIwMjMxYTAwMzAyMDEwMjAyMTQ3YmRlZGRkMjQ0NGNkMWNkZmU1YzQxYTgxMDJjODliN2RmMmU2Y2JmMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMzAxZTE3MGQzMjMyMzEzMDMyMzgzMTM2MzEzMDM1MzY1YTE3MGQzMjMzMzEzMDMyMzgzMTM2MzEzMDM1MzY1YTMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTMwODIwMTIyMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDM4MjAxMGYwMDMwODIwMTBhMDI4MjAxMDEwMGM4YjZjZjY5ODk5Y2QxZjBlYmI0Y2E2NDVjMDVlNzBlMGQyZWZlZGRjYzYxZDA4OWNiZDUxNWEzOWEzNTc5YjkyMzQzYjYxZWM3NTAwNjBmYjRlZDM3ODc2MzMyNDAwZTQyNWYxZDM3NmM3ZTc1YzI5NzMzMTRlZGY0YmIzMGM4ZjhkZDAzYjlmY2ZmOTU1YTI0NWQ0OTEzN2FkNmU2MDA1NmNhYzE5NTUyYTg2NWQ1MjE4NzE4N2NjMDQyYzljNDllM2UzYTljMTdhNTM0YjQ1M2NkYWJjMGNiMTEzYjRmNjNmNWIzMTc0YjllZTk5MDJiMTkxMGQxMTQ5NmEyNzlhNzQzMjZhZGNmZWUxMGJmZDllN2ViYWZiYjM3N2JlOWI2Mzk1OTE2NWQxM2RkNTc1MTE3MWNhZGFkM2MxZDNhZGFjNjhiYzgwMTFkNjFiNTRjZjYwMTc4YmUzNjgzOWE4OWFjOTFhYjQxOWUzY2EzN2Q2YmE4ODFkMjU1MThjNGRiNjhiY2E2ZjdjODM2MDJmNjk5YTg2YjE3ZmIxZTc3M2JjYmU3NGJiOTNhNDliMjUxYWU4NjQyOGI1NzQwZTE4NjhiYjFkNmZhYjllMjg3MTJlOThlYzMxOWFkOGZjYTRkNzMwMTBjNGIwOWM0YjgwNDU4OTYxZTdjZjA4MzUzMDIwMzAxMDAwMWEzNTMzMDUxMzAxZDA2MDM1NTFkMGUwNDE2MDQxNDhhZWVlNTk0N2NjNjdjNWRkNTE1YTc2ZTJhN2VjZDMxZWU1MmZkYzgzMDFmMDYwMzU1MWQyMzA0MTgzMDE2ODAxNDhhZWVlNTk0N2NjNjdjNWRkNTE1YTc2ZTJhN2VjZDMxZWU1MmZkYzgzMDBmMDYwMzU1MWQxMzAxMDFmZjA0MDUzMDAzMDEwMWZmMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMDM4MjAxMDEwMDgyMWQ2Yjk4Y2Q0NTdkZWJkMmIwODFhY2EyN2ViZWNkNGY5M2FjYzgyODQ0M2IzOWVhYmZmYTlmYTRlOWU0NTQzYjQ2ZmNjMzFlMmI1YjQ4MTc3OTAzZGVhNjk2OWFjNGEyY2M2NTcwNjUwMzkwZjFiMDhkNDNhNGMyZjk3NWM3ZWQ4YmYzMzU2YzcyMTgzODAyMTI0NTFhOGYxMWRlNDY1NTNjYmNkNjViNDI1NGRkYjhmNjY4MzRlYjIxZGRhMmE4ZjMzYjU4MWUxNDg0NTU3YWNhMWI5NGVlODkzMWRkZjE2MDM3YjdhNzE3MTMyMWE5MTkzNmFmYzI3ZmZjZTM5NWRlNzVkNWY3MGNiOGI1YWVlMDVmZjUwNzA4OGQ2NWFmMWU0Mzk2NmNkNDJjYmU2ZjdmYWNmOGRhZTA1NWRkODIyMmIxNjk2NTIxNzIzZjgxMjQ1MTc4NTk1Yzk4NWFlOTE3ZmQ0YjM5OTg3NzNlMWE5N2I3YmQxMDA4NTQ0NmY0MjU5YmNjMDlhNDU0OTI5MjgyYzFiODliNzFlZDU4N2E3NzVlMGEzZDQ1MzYzNDFmNDVkYWU5NjllODA2Yzk2ZmVmYzcxMDY3Nzc2YzAyYmEyMjEyMmI5MTk5YjE0YzBjMjhjMDQ0ODc1MDkwNzBiOTdmM2RkMmQ2ZDk3MjczMzE4MjAxNzczMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwNWJlY2Q4NzE5NWMxZGVmZjkwYzI0YzkxMjY5YjU1YjNmMDY5YmMyMjVjMzI2YzMxNGMxYTUxNzg2ZmZlMTRjODMwYmU0ZTRiYzczY2JhMzZjOTc2NzdiNDQxNjgyNzliZTkxZTdjZGY3YzE5Mzg2YWUyMTg2MjcxOWQxM2EzYTBmZmYwODAzZDQ2MDk2MmYyY2RhODM3MTQ4NDg3MzI1MmMzZDcwNTRkYjgxNDNlMmIwODFhMzgxNmVkMDgwNGNhNTA5OWFlNWZlY2U4M2Q1YzJjMzc4M2IxOTg4YjRiNDZkYzk0ZTU1NTg3YTEwN2VhMTU0NmJmMjJkMjhhMDk3ZjY1MmE0MDY2ZGMyOTY1MjY5MDY5YWYyZjUxNzZiYjhjZTljYTZkMTFmOTY3NTdmMDMyMDRmNzU2NzAzNTg3ZDAwYWQ0MjQ3OTZjOTJmYzdhZWI2ZjQ5NDQzMTk5OWVkYTMwOTkwZTRmNTc3MzYzMmVkMjU4ZmUwMjc2NjczNTk5ZGE2ZmNlMzVjZGFkNzcyNmEwYmIwMjRjYWQ5OTZiODhlMGNiOTg4NTRjZWI1YzBiNmVjNzQ4ZDlmOWNlNmE2Y2Q0Mzc4NThiYWNiODE0NjE4YTI3MmZmM2E0MTVjNmUwN2YzZGIwOTg4Nzc3ZmRlYzg0NWE5N2JmN2QxMDJkZDAiCiAKIFBLQ1M3IFBhcnNlIEZhaWx1cmUgSW52YWxpZCBBU04xOiBDaGFuZ2UgdGFnIDMxIHRvIDAyICMzOS4wCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NgogcGtjczdfYXNuMV9mYWlsOiIzMDgyMDUwMDA2MDkyYTg2NDg4NmY3MGQwMTA3MDJhMDgyMDRmMTMwODIwNGVkMDIwMTAxMDIwZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGIwNjA5MmE4NjQ4ODZmNzBkMDEwNzAxYTA4MjAzNGQzMDgyMDM0OTMwODIwMjMxYTAwMzAyMDEwMjAyMTQ3YmRlZGRkMjQ0NGNkMWNkZmU1YzQxYTgxMDJjODliN2RmMmU2Y2JmMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMzAxZTE3MGQzMjMyMzEzMDMyMzgzMTM2MzEzMDM1MzY1YTE3MGQzMjMzMzEzMDMyMzgzMTM2MzEzMDM1MzY1YTMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTMwODIwMTIyMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDM4MjAxMGYwMDMwODIwMTBhMDI4MjAxMDEwMGM4YjZjZjY5ODk5Y2QxZjBlYmI0Y2E2NDVjMDVlNzBlMGQyZWZlZGRjYzYxZDA4OWNiZDUxNWEzOWEzNTc5YjkyMzQzYjYxZWM3NTAwNjBmYjRlZDM3ODc2MzMyNDAwZTQyNWYxZDM3NmM3ZTc1YzI5NzMzMTRlZGY0YmIzMGM4ZjhkZDAzYjlmY2ZmOTU1YTI0NWQ0OTEzN2FkNmU2MDA1NmNhYzE5NTUyYTg2NWQ1MjE4NzE4N2NjMDQyYzljNDllM2UzYTljMTdhNTM0YjQ1M2NkYWJjMGNiMTEzYjRmNjNmNWIzMTc0YjllZTk5MDJiMTkxMGQxMTQ5NmEyNzlhNzQzMjZhZGNmZWUxMGJmZDllN2ViYWZiYjM3N2JlOWI2Mzk1OTE2NWQxM2RkNTc1MTE3MWNhZGFkM2MxZDNhZGFjNjhiYzgwMTFkNjFiNTRjZjYwMTc4YmUzNjgzOWE4OWFjOTFhYjQxOWUzY2EzN2Q2YmE4ODFkMjU1MThjNGRiNjhiY2E2ZjdjODM2MDJmNjk5YTg2YjE3ZmIxZTc3M2JjYmU3NGJiOTNhNDliMjUxYWU4NjQyOGI1NzQwZTE4NjhiYjFkNmZhYjllMjg3MTJlOThlYzMxOWFkOGZjYTRkNzMwMTBjNGIwOWM0YjgwNDU4OTYxZTdjZjA4MzUzMDIwMzAxMDAwMWEzNTMzMDUxMzAxZDA2MDM1NTFkMGUwNDE2MDQxNDhhZWVlNTk0N2NjNjdjNWRkNTE1YTc2ZTJhN2VjZDMxZWU1MmZkYzgzMDFmMDYwMzU1MWQyMzA0MTgzMDE2ODAxNDhhZWVlNTk0N2NjNjdjNWRkNTE1YTc2ZTJhN2VjZDMxZWU1MmZkYzgzMDBmMDYwMzU1MWQxMzAxMDFmZjA0MDUzMDAzMDEwMWZmMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMDM4MjAxMDEwMDgyMWQ2Yjk4Y2Q0NTdkZWJkMmIwODFhY2EyN2ViZWNkNGY5M2FjYzgyODQ0M2IzOWVhYmZmYTlmYTRlOWU0NTQzYjQ2ZmNjMzFlMmI1YjQ4MTc3OTAzZGVhNjk2OWFjNGEyY2M2NTcwNjUwMzkwZjFiMDhkNDNhNGMyZjk3NWM3ZWQ4YmYzMzU2YzcyMTgzODAyMTI0NTFhOGYxMWRlNDY1NTNjYmNkNjViNDI1NGRkYjhmNjY4MzRlYjIxZGRhMmE4ZjMzYjU4MWUxNDg0NTU3YWNhMWI5NGVlODkzMWRkZjE2MDM3YjdhNzE3MTMyMWE5MTkzNmFmYzI3ZmZjZTM5NWRlNzVkNWY3MGNiOGI1YWVlMDVmZjUwNzA4OGQ2NWFmMWU0Mzk2NmNkNDJjYmU2ZjdmYWNmOGRhZTA1NWRkODIyMmIxNjk2NTIxNzIzZjgxMjQ1MTc4NTk1Yzk4NWFlOTE3ZmQ0YjM5OTg3NzNlMWE5N2I3YmQxMDA4NTQ0NmY0MjU5YmNjMDlhNDU0OTI5MjgyYzFiODliNzFlZDU4N2E3NzVlMGEzZDQ1MzYzNDFmNDVkYWU5NjllODA2Yzk2ZmVmYzcxMDY3Nzc2YzAyYmEyMjEyMmI5MTk5YjE0YzBjMjhjMDQ0ODc1MDkwNzBiOTdmM2RkMmQ2ZDk3MjczMzE4MjAxNzczMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwNWJlY2Q4NzE5NWMxZGVmZjkwYzI0YzkxMjY5YjU1YjNmMDY5YmMyMjVjMzI2YzMxNGMxYTUxNzg2ZmZlMTRjODMwYmU0ZTRiYzczY2JhMzZjOTc2NzdiNDQxNjgyNzliZTkxZTdjZGY3YzE5Mzg2YWUyMTg2MjcxOWQxM2EzYTBmZmYwODAzZDQ2MDk2MmYyY2RhODM3MTQ4NDg3MzI1MmMzZDcwNTRkYjgxNDNlMmIwODFhMzgxNmVkMDgwNGNhNTA5OWFlNWZlY2U4M2Q1YzJjMzc4M2IxOTg4YjRiNDZkYzk0ZTU1NTg3YTEwN2VhMTU0NmJmMjJkMjhhMDk3ZjY1MmE0MDY2ZGMyOTY1MjY5MDY5YWYyZjUxNzZiYjhjZTljYTZkMTFmOTY3NTdmMDMyMDRmNzU2NzAzNTg3ZDAwYWQ0MjQ3OTZjOTJmYzdhZWI2ZjQ5NDQzMTk5OWVkYTMwOTkwZTRmNTc3MzYzMmVkMjU4ZmUwMjc2NjczNTk5ZGE2ZmNlMzVjZGFkNzcyNmEwYmIwMjRjYWQ5OTZiODhlMGNiOTg4NTRjZWI1YzBiNmVjNzQ4ZDlmOWNlNmE2Y2Q0Mzc4NThiYWNiODE0NjE4YTI3MmZmM2E0MTVjNmUwN2YzZGIwOTg4Nzc3ZmRlYzg0NWE5N2JmN2QxMDJkZDAiCiAKIFBLQ1M3IFBhcnNlIEZhaWx1cmUgSW52YWxpZCBBU04xOiBDaGFuZ2UgbGVuZ3RoIGZyb20gMTUgdG8gMTYgIzQwLjAKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBwa2NzN19hc24xX2ZhaWw6IjMwODIwNTAwMDYwOTJhODY0ODg2ZjcwZDAxMDcwMmEwODIwNGYxMzA4MjA0ZWQwMjAxMDEzMTEwMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwYjA2MDkyYTg2NDg4NmY3MGQwMTA3MDFhMDgyMDM0ZDMwODIwMzQ5MzA4MjAyMzFhMDAzMDIwMTAyMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEzMDFlMTcwZDMyMzIzMTMwMzIzODMxMzYzMTMwMzUzNjVhMTcwZDMyMzMzMTMwMzIzODMxMzYzMTMwMzUzNjVhMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMzA4MjAxMjIzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwMzgyMDEwZjAwMzA4MjAxMGEwMjgyMDEwMTAwYzhiNmNmNjk4OTljZDFmMGViYjRjYTY0NWMwNWU3MGUwZDJlZmVkZGNjNjFkMDg5Y2JkNTE1YTM5YTM1NzliOTIzNDNiNjFlYzc1MDA2MGZiNGVkMzc4NzYzMzI0MDBlNDI1ZjFkMzc2YzdlNzVjMjk3MzMxNGVkZjRiYjMwYzhmOGRkMDNiOWZjZmY5NTVhMjQ1ZDQ5MTM3YWQ2ZTYwMDU2Y2FjMTk1NTJhODY1ZDUyMTg3MTg3Y2MwNDJjOWM0OWUzZTNhOWMxN2E1MzRiNDUzY2RhYmMwY2IxMTNiNGY2M2Y1YjMxNzRiOWVlOTkwMmIxOTEwZDExNDk2YTI3OWE3NDMyNmFkY2ZlZTEwYmZkOWU3ZWJhZmJiMzc3YmU5YjYzOTU5MTY1ZDEzZGQ1NzUxMTcxY2FkYWQzYzFkM2FkYWM2OGJjODAxMWQ2MWI1NGNmNjAxNzhiZTM2ODM5YTg5YWM5MWFiNDE5ZTNjYTM3ZDZiYTg4MWQyNTUxOGM0ZGI2OGJjYTZmN2M4MzYwMmY2OTlhODZiMTdmYjFlNzczYmNiZTc0YmI5M2E0OWIyNTFhZTg2NDI4YjU3NDBlMTg2OGJiMWQ2ZmFiOWUyODcxMmU5OGVjMzE5YWQ4ZmNhNGQ3MzAxMGM0YjA5YzRiODA0NTg5NjFlN2NmMDgzNTMwMjAzMDEwMDAxYTM1MzMwNTEzMDFkMDYwMzU1MWQwZTA0MTYwNDE0OGFlZWU1OTQ3Y2M2N2M1ZGQ1MTVhNzZlMmE3ZWNkMzFlZTUyZmRjODMwMWYwNjAzNTUxZDIzMDQxODMwMTY4MDE0OGFlZWU1OTQ3Y2M2N2M1ZGQ1MTVhNzZlMmE3ZWNkMzFlZTUyZmRjODMwMGYwNjAzNTUxZDEzMDEwMWZmMDQwNTMwMDMwMTAxZmYzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAwMzgyMDEwMTAwODIxZDZiOThjZDQ1N2RlYmQyYjA4MWFjYTI3ZWJlY2Q0ZjkzYWNjODI4NDQzYjM5ZWFiZmZhOWZhNGU5ZTQ1NDNiNDZmY2MzMWUyYjViNDgxNzc5MDNkZWE2OTY5YWM0YTJjYzY1NzA2NTAzOTBmMWIwOGQ0M2E0YzJmOTc1YzdlZDhiZjMzNTZjNzIxODM4MDIxMjQ1MWE4ZjExZGU0NjU1M2NiY2Q2NWI0MjU0ZGRiOGY2NjgzNGViMjFkZGEyYThmMzNiNTgxZTE0ODQ1NTdhY2ExYjk0ZWU4OTMxZGRmMTYwMzdiN2E3MTcxMzIxYTkxOTM2YWZjMjdmZmNlMzk1ZGU3NWQ1ZjcwY2I4YjVhZWUwNWZmNTA3MDg4ZDY1YWYxZTQzOTY2Y2Q0MmNiZTZmN2ZhY2Y4ZGFlMDU1ZGQ4MjIyYjE2OTY1MjE3MjNmODEyNDUxNzg1OTVjOTg1YWU5MTdmZDRiMzk5ODc3M2UxYTk3YjdiZDEwMDg1NDQ2ZjQyNTliY2MwOWE0NTQ5MjkyODJjMWI4OWI3MWVkNTg3YTc3NWUwYTNkNDUzNjM0MWY0NWRhZTk2OWU4MDZjOTZmZWZjNzEwNjc3NzZjMDJiYTIyMTIyYjkxOTliMTRjMGMyOGMwNDQ4NzUwOTA3MGI5N2YzZGQyZDZkOTcyNzMzMTgyMDE3NzMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTAyMTQ3YmRlZGRkMjQ0NGNkMWNkZmU1YzQxYTgxMDJjODliN2RmMmU2Y2JmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDA1YmVjZDg3MTk1YzFkZWZmOTBjMjRjOTEyNjliNTViM2YwNjliYzIyNWMzMjZjMzE0YzFhNTE3ODZmZmUxNGM4MzBiZTRlNGJjNzNjYmEzNmM5NzY3N2I0NDE2ODI3OWJlOTFlN2NkZjdjMTkzODZhZTIxODYyNzE5ZDEzYTNhMGZmZjA4MDNkNDYwOTYyZjJjZGE4MzcxNDg0ODczMjUyYzNkNzA1NGRiODE0M2UyYjA4MWEzODE2ZWQwODA0Y2E1MDk5YWU1ZmVjZTgzZDVjMmMzNzgzYjE5ODhiNGI0NmRjOTRlNTU1ODdhMTA3ZWExNTQ2YmYyMmQyOGEwOTdmNjUyYTQwNjZkYzI5NjUyNjkwNjlhZjJmNTE3NmJiOGNlOWNhNmQxMWY5Njc1N2YwMzIwNGY3NTY3MDM1ODdkMDBhZDQyNDc5NmM5MmZjN2FlYjZmNDk0NDMxOTk5ZWRhMzA5OTBlNGY1NzczNjMyZWQyNThmZTAyNzY2NzM1OTlkYTZmY2UzNWNkYWQ3NzI2YTBiYjAyNGNhZDk5NmI4OGUwY2I5ODg1NGNlYjVjMGI2ZWM3NDhkOWY5Y2U2YTZjZDQzNzg1OGJhY2I4MTQ2MThhMjcyZmYzYTQxNWM2ZTA3ZjNkYjA5ODg3NzdmZGVjODQ1YTk3YmY3ZDEwMmRkMCIKIAogUEtDUzcgUGFyc2UgRmFpbHVyZSBJbnZhbGlkIEFTTjE6IENoYW5nZSBjb250ZW50cyBvZiB0YWcgMzEgdG8gY29udGFpbiBvbmUgdW5hY2NvdW50ZWQgZXh0cmEgYnl0ZSAjNDEuMAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHBrY3M3X2FzbjFfZmFpbDoiMzA4MjA1MDAwNjA5MmE4NjQ4ODZmNzBkMDEwNzAyYTA4MjA0ZjEzMDgyMDRlZDAyMDEwMTMxMTAzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAwMDMwMGIwNjA5MmE4NjQ4ODZmNzBkMDEwNzAxYTA4MjAzNGQzMDgyMDM0OTMwODIwMjMxYTAwMzAyMDEwMjAyMTQ3YmRlZGRkMjQ0NGNkMWNkZmU1YzQxYTgxMDJjODliN2RmMmU2Y2JmMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMzAxZTE3MGQzMjMyMzEzMDMyMzgzMTM2MzEzMDM1MzY1YTE3MGQzMjMzMzEzMDMyMzgzMTM2MzEzMDM1MzY1YTMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTMwODIwMTIyMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDM4MjAxMGYwMDMwODIwMTBhMDI4MjAxMDEwMGM4YjZjZjY5ODk5Y2QxZjBlYmI0Y2E2NDVjMDVlNzBlMGQyZWZlZGRjYzYxZDA4OWNiZDUxNWEzOWEzNTc5YjkyMzQzYjYxZWM3NTAwNjBmYjRlZDM3ODc2MzMyNDAwZTQyNWYxZDM3NmM3ZTc1YzI5NzMzMTRlZGY0YmIzMGM4ZjhkZDAzYjlmY2ZmOTU1YTI0NWQ0OTEzN2FkNmU2MDA1NmNhYzE5NTUyYTg2NWQ1MjE4NzE4N2NjMDQyYzljNDllM2UzYTljMTdhNTM0YjQ1M2NkYWJjMGNiMTEzYjRmNjNmNWIzMTc0YjllZTk5MDJiMTkxMGQxMTQ5NmEyNzlhNzQzMjZhZGNmZWUxMGJmZDllN2ViYWZiYjM3N2JlOWI2Mzk1OTE2NWQxM2RkNTc1MTE3MWNhZGFkM2MxZDNhZGFjNjhiYzgwMTFkNjFiNTRjZjYwMTc4YmUzNjgzOWE4OWFjOTFhYjQxOWUzY2EzN2Q2YmE4ODFkMjU1MThjNGRiNjhiY2E2ZjdjODM2MDJmNjk5YTg2YjE3ZmIxZTc3M2JjYmU3NGJiOTNhNDliMjUxYWU4NjQyOGI1NzQwZTE4NjhiYjFkNmZhYjllMjg3MTJlOThlYzMxOWFkOGZjYTRkNzMwMTBjNGIwOWM0YjgwNDU4OTYxZTdjZjA4MzUzMDIwMzAxMDAwMWEzNTMzMDUxMzAxZDA2MDM1NTFkMGUwNDE2MDQxNDhhZWVlNTk0N2NjNjdjNWRkNTE1YTc2ZTJhN2VjZDMxZWU1MmZkYzgzMDFmMDYwMzU1MWQyMzA0MTgzMDE2ODAxNDhhZWVlNTk0N2NjNjdjNWRkNTE1YTc2ZTJhN2VjZDMxZWU1MmZkYzgzMDBmMDYwMzU1MWQxMzAxMDFmZjA0MDUzMDAzMDEwMWZmMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMDM4MjAxMDEwMDgyMWQ2Yjk4Y2Q0NTdkZWJkMmIwODFhY2EyN2ViZWNkNGY5M2FjYzgyODQ0M2IzOWVhYmZmYTlmYTRlOWU0NTQzYjQ2ZmNjMzFlMmI1YjQ4MTc3OTAzZGVhNjk2OWFjNGEyY2M2NTcwNjUwMzkwZjFiMDhkNDNhNGMyZjk3NWM3ZWQ4YmYzMzU2YzcyMTgzODAyMTI0NTFhOGYxMWRlNDY1NTNjYmNkNjViNDI1NGRkYjhmNjY4MzRlYjIxZGRhMmE4ZjMzYjU4MWUxNDg0NTU3YWNhMWI5NGVlODkzMWRkZjE2MDM3YjdhNzE3MTMyMWE5MTkzNmFmYzI3ZmZjZTM5NWRlNzVkNWY3MGNiOGI1YWVlMDVmZjUwNzA4OGQ2NWFmMWU0Mzk2NmNkNDJjYmU2ZjdmYWNmOGRhZTA1NWRkODIyMmIxNjk2NTIxNzIzZjgxMjQ1MTc4NTk1Yzk4NWFlOTE3ZmQ0YjM5OTg3NzNlMWE5N2I3YmQxMDA4NTQ0NmY0MjU5YmNjMDlhNDU0OTI5MjgyYzFiODliNzFlZDU4N2E3NzVlMGEzZDQ1MzYzNDFmNDVkYWU5NjllODA2Yzk2ZmVmYzcxMDY3Nzc2YzAyYmEyMjEyMmI5MTk5YjE0YzBjMjhjMDQ0ODc1MDkwNzBiOTdmM2RkMmQ2ZDk3MjczMzE4MjAxNzczMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwNWJlY2Q4NzE5NWMxZGVmZjkwYzI0YzkxMjY5YjU1YjNmMDY5YmMyMjVjMzI2YzMxNGMxYTUxNzg2ZmZlMTRjODMwYmU0ZTRiYzczY2JhMzZjOTc2NzdiNDQxNjgyNzliZTkxZTdjZGY3YzE5Mzg2YWUyMTg2MjcxOWQxM2EzYTBmZmYwODAzZDQ2MDk2MmYyY2RhODM3MTQ4NDg3MzI1MmMzZDcwNTRkYjgxNDNlMmIwODFhMzgxNmVkMDgwNGNhNTA5OWFlNWZlY2U4M2Q1YzJjMzc4M2IxOTg4YjRiNDZkYzk0ZTU1NTg3YTEwN2VhMTU0NmJmMjJkMjhhMDk3ZjY1MmE0MDY2ZGMyOTY1MjY5MDY5YWYyZjUxNzZiYjhjZTljYTZkMTFmOTY3NTdmMDMyMDRmNzU2NzAzNTg3ZDAwYWQ0MjQ3OTZjOTJmYzdhZWI2ZjQ5NDQzMTk5OWVkYTMwOTkwZTRmNTc3MzYzMmVkMjU4ZmUwMjc2NjczNTk5ZGE2ZmNlMzVjZGFkNzcyNmEwYmIwMjRjYWQ5OTZiODhlMGNiOTg4NTRjZWI1YzBiNmVjNzQ4ZDlmOWNlNmE2Y2Q0Mzc4NThiYWNiODE0NjE4YTI3MmZmM2E0MTVjNmUwN2YzZGIwOTg4Nzc3ZmRlYzg0NWE5N2JmN2QxMDJkZDAiCiAKIFBLQ1M3IFBhcnNlIEZhaWx1cmUgSW52YWxpZCBBU04xOiBDaGFuZ2UgbGVuZ3RoIGZyb20gMTUgdG8gMTQgIzQyLjAKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBwa2NzN19hc24xX2ZhaWw6IjMwODIwNTAwMDYwOTJhODY0ODg2ZjcwZDAxMDcwMmEwODIwNGYxMzA4MjA0ZWQwMjAxMDEzMTBlMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwYjA2MDkyYTg2NDg4NmY3MGQwMTA3MDFhMDgyMDM0ZDMwODIwMzQ5MzA4MjAyMzFhMDAzMDIwMTAyMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEzMDFlMTcwZDMyMzIzMTMwMzIzODMxMzYzMTMwMzUzNjVhMTcwZDMyMzMzMTMwMzIzODMxMzYzMTMwMzUzNjVhMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMzA4MjAxMjIzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwMzgyMDEwZjAwMzA4MjAxMGEwMjgyMDEwMTAwYzhiNmNmNjk4OTljZDFmMGViYjRjYTY0NWMwNWU3MGUwZDJlZmVkZGNjNjFkMDg5Y2JkNTE1YTM5YTM1NzliOTIzNDNiNjFlYzc1MDA2MGZiNGVkMzc4NzYzMzI0MDBlNDI1ZjFkMzc2YzdlNzVjMjk3MzMxNGVkZjRiYjMwYzhmOGRkMDNiOWZjZmY5NTVhMjQ1ZDQ5MTM3YWQ2ZTYwMDU2Y2FjMTk1NTJhODY1ZDUyMTg3MTg3Y2MwNDJjOWM0OWUzZTNhOWMxN2E1MzRiNDUzY2RhYmMwY2IxMTNiNGY2M2Y1YjMxNzRiOWVlOTkwMmIxOTEwZDExNDk2YTI3OWE3NDMyNmFkY2ZlZTEwYmZkOWU3ZWJhZmJiMzc3YmU5YjYzOTU5MTY1ZDEzZGQ1NzUxMTcxY2FkYWQzYzFkM2FkYWM2OGJjODAxMWQ2MWI1NGNmNjAxNzhiZTM2ODM5YTg5YWM5MWFiNDE5ZTNjYTM3ZDZiYTg4MWQyNTUxOGM0ZGI2OGJjYTZmN2M4MzYwMmY2OTlhODZiMTdmYjFlNzczYmNiZTc0YmI5M2E0OWIyNTFhZTg2NDI4YjU3NDBlMTg2OGJiMWQ2ZmFiOWUyODcxMmU5OGVjMzE5YWQ4ZmNhNGQ3MzAxMGM0YjA5YzRiODA0NTg5NjFlN2NmMDgzNTMwMjAzMDEwMDAxYTM1MzMwNTEzMDFkMDYwMzU1MWQwZTA0MTYwNDE0OGFlZWU1OTQ3Y2M2N2M1ZGQ1MTVhNzZlMmE3ZWNkMzFlZTUyZmRjODMwMWYwNjAzNTUxZDIzMDQxODMwMTY4MDE0OGFlZWU1OTQ3Y2M2N2M1ZGQ1MTVhNzZlMmE3ZWNkMzFlZTUyZmRjODMwMGYwNjAzNTUxZDEzMDEwMWZmMDQwNTMwMDMwMTAxZmYzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAwMzgyMDEwMTAwODIxZDZiOThjZDQ1N2RlYmQyYjA4MWFjYTI3ZWJlY2Q0ZjkzYWNjODI4NDQzYjM5ZWFiZmZhOWZhNGU5ZTQ1NDNiNDZmY2MzMWUyYjViNDgxNzc5MDNkZWE2OTY5YWM0YTJjYzY1NzA2NTAzOTBmMWIwOGQ0M2E0YzJmOTc1YzdlZDhiZjMzNTZjNzIxODM4MDIxMjQ1MWE4ZjExZGU0NjU1M2NiY2Q2NWI0MjU0ZGRiOGY2NjgzNGViMjFkZGEyYThmMzNiNTgxZTE0ODQ1NTdhY2ExYjk0ZWU4OTMxZGRmMTYwMzdiN2E3MTcxMzIxYTkxOTM2YWZjMjdmZmNlMzk1ZGU3NWQ1ZjcwY2I4YjVhZWUwNWZmNTA3MDg4ZDY1YWYxZTQzOTY2Y2Q0MmNiZTZmN2ZhY2Y4ZGFlMDU1ZGQ4MjIyYjE2OTY1MjE3MjNmODEyNDUxNzg1OTVjOTg1YWU5MTdmZDRiMzk5ODc3M2UxYTk3YjdiZDEwMDg1NDQ2ZjQyNTliY2MwOWE0NTQ5MjkyODJjMWI4OWI3MWVkNTg3YTc3NWUwYTNkNDUzNjM0MWY0NWRhZTk2OWU4MDZjOTZmZWZjNzEwNjc3NzZjMDJiYTIyMTIyYjkxOTliMTRjMGMyOGMwNDQ4NzUwOTA3MGI5N2YzZGQyZDZkOTcyNzMzMTgyMDE3NzMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTAyMTQ3YmRlZGRkMjQ0NGNkMWNkZmU1YzQxYTgxMDJjODliN2RmMmU2Y2JmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDA1YmVjZDg3MTk1YzFkZWZmOTBjMjRjOTEyNjliNTViM2YwNjliYzIyNWMzMjZjMzE0YzFhNTE3ODZmZmUxNGM4MzBiZTRlNGJjNzNjYmEzNmM5NzY3N2I0NDE2ODI3OWJlOTFlN2NkZjdjMTkzODZhZTIxODYyNzE5ZDEzYTNhMGZmZjA4MDNkNDYwOTYyZjJjZGE4MzcxNDg0ODczMjUyYzNkNzA1NGRiODE0M2UyYjA4MWEzODE2ZWQwODA0Y2E1MDk5YWU1ZmVjZTgzZDVjMmMzNzgzYjE5ODhiNGI0NmRjOTRlNTU1ODdhMTA3ZWExNTQ2YmYyMmQyOGEwOTdmNjUyYTQwNjZkYzI5NjUyNjkwNjlhZjJmNTE3NmJiOGNlOWNhNmQxMWY5Njc1N2YwMzIwNGY3NTY3MDM1ODdkMDBhZDQyNDc5NmM5MmZjN2FlYjZmNDk0NDMxOTk5ZWRhMzA5OTBlNGY1NzczNjMyZWQyNThmZTAyNzY2NzM1OTlkYTZmY2UzNWNkYWQ3NzI2YTBiYjAyNGNhZDk5NmI4OGUwY2I5ODg1NGNlYjVjMGI2ZWM3NDhkOWY5Y2U2YTZjZDQzNzg1OGJhY2I4MTQ2MThhMjcyZmYzYTQxNWM2ZTA3ZjNkYjA5ODg3NzdmZGVjODQ1YTk3YmY3ZDEwMmRkMCIKIAogUEtDUzcgUGFyc2UgRmFpbHVyZSBJbnZhbGlkIEFTTjE6IENoYW5nZSB0YWcgMzAgdG8gMDIgIzQzLjAKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBwa2NzN19hc24xX2ZhaWw6IjMwODIwNTAwMDYwOTJhODY0ODg2ZjcwZDAxMDcwMmEwODIwNGYxMzA4MjA0ZWQwMjAxMDEzMTBmMDIwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwYjA2MDkyYTg2NDg4NmY3MGQwMTA3MDFhMDgyMDM0ZDMwODIwMzQ5MzA4MjAyMzFhMDAzMDIwMTAyMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEzMDFlMTcwZDMyMzIzMTMwMzIzODMxMzYzMTMwMzUzNjVhMTcwZDMyMzMzMTMwMzIzODMxMzYzMTMwMzUzNjVhMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMzA4MjAxMjIzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwMzgyMDEwZjAwMzA4MjAxMGEwMjgyMDEwMTAwYzhiNmNmNjk4OTljZDFmMGViYjRjYTY0NWMwNWU3MGUwZDJlZmVkZGNjNjFkMDg5Y2JkNTE1YTM5YTM1NzliOTIzNDNiNjFlYzc1MDA2MGZiNGVkMzc4NzYzMzI0MDBlNDI1ZjFkMzc2YzdlNzVjMjk3MzMxNGVkZjRiYjMwYzhmOGRkMDNiOWZjZmY5NTVhMjQ1ZDQ5MTM3YWQ2ZTYwMDU2Y2FjMTk1NTJhODY1ZDUyMTg3MTg3Y2MwNDJjOWM0OWUzZTNhOWMxN2E1MzRiNDUzY2RhYmMwY2IxMTNiNGY2M2Y1YjMxNzRiOWVlOTkwMmIxOTEwZDExNDk2YTI3OWE3NDMyNmFkY2ZlZTEwYmZkOWU3ZWJhZmJiMzc3YmU5YjYzOTU5MTY1ZDEzZGQ1NzUxMTcxY2FkYWQzYzFkM2FkYWM2OGJjODAxMWQ2MWI1NGNmNjAxNzhiZTM2ODM5YTg5YWM5MWFiNDE5ZTNjYTM3ZDZiYTg4MWQyNTUxOGM0ZGI2OGJjYTZmN2M4MzYwMmY2OTlhODZiMTdmYjFlNzczYmNiZTc0YmI5M2E0OWIyNTFhZTg2NDI4YjU3NDBlMTg2OGJiMWQ2ZmFiOWUyODcxMmU5OGVjMzE5YWQ4ZmNhNGQ3MzAxMGM0YjA5YzRiODA0NTg5NjFlN2NmMDgzNTMwMjAzMDEwMDAxYTM1MzMwNTEzMDFkMDYwMzU1MWQwZTA0MTYwNDE0OGFlZWU1OTQ3Y2M2N2M1ZGQ1MTVhNzZlMmE3ZWNkMzFlZTUyZmRjODMwMWYwNjAzNTUxZDIzMDQxODMwMTY4MDE0OGFlZWU1OTQ3Y2M2N2M1ZGQ1MTVhNzZlMmE3ZWNkMzFlZTUyZmRjODMwMGYwNjAzNTUxZDEzMDEwMWZmMDQwNTMwMDMwMTAxZmYzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAwMzgyMDEwMTAwODIxZDZiOThjZDQ1N2RlYmQyYjA4MWFjYTI3ZWJlY2Q0ZjkzYWNjODI4NDQzYjM5ZWFiZmZhOWZhNGU5ZTQ1NDNiNDZmY2MzMWUyYjViNDgxNzc5MDNkZWE2OTY5YWM0YTJjYzY1NzA2NTAzOTBmMWIwOGQ0M2E0YzJmOTc1YzdlZDhiZjMzNTZjNzIxODM4MDIxMjQ1MWE4ZjExZGU0NjU1M2NiY2Q2NWI0MjU0ZGRiOGY2NjgzNGViMjFkZGEyYThmMzNiNTgxZTE0ODQ1NTdhY2ExYjk0ZWU4OTMxZGRmMTYwMzdiN2E3MTcxMzIxYTkxOTM2YWZjMjdmZmNlMzk1ZGU3NWQ1ZjcwY2I4YjVhZWUwNWZmNTA3MDg4ZDY1YWYxZTQzOTY2Y2Q0MmNiZTZmN2ZhY2Y4ZGFlMDU1ZGQ4MjIyYjE2OTY1MjE3MjNmODEyNDUxNzg1OTVjOTg1YWU5MTdmZDRiMzk5ODc3M2UxYTk3YjdiZDEwMDg1NDQ2ZjQyNTliY2MwOWE0NTQ5MjkyODJjMWI4OWI3MWVkNTg3YTc3NWUwYTNkNDUzNjM0MWY0NWRhZTk2OWU4MDZjOTZmZWZjNzEwNjc3NzZjMDJiYTIyMTIyYjkxOTliMTRjMGMyOGMwNDQ4NzUwOTA3MGI5N2YzZGQyZDZkOTcyNzMzMTgyMDE3NzMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTAyMTQ3YmRlZGRkMjQ0NGNkMWNkZmU1YzQxYTgxMDJjODliN2RmMmU2Y2JmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDA1YmVjZDg3MTk1YzFkZWZmOTBjMjRjOTEyNjliNTViM2YwNjliYzIyNWMzMjZjMzE0YzFhNTE3ODZmZmUxNGM4MzBiZTRlNGJjNzNjYmEzNmM5NzY3N2I0NDE2ODI3OWJlOTFlN2NkZjdjMTkzODZhZTIxODYyNzE5ZDEzYTNhMGZmZjA4MDNkNDYwOTYyZjJjZGE4MzcxNDg0ODczMjUyYzNkNzA1NGRiODE0M2UyYjA4MWEzODE2ZWQwODA0Y2E1MDk5YWU1ZmVjZTgzZDVjMmMzNzgzYjE5ODhiNGI0NmRjOTRlNTU1ODdhMTA3ZWExNTQ2YmYyMmQyOGEwOTdmNjUyYTQwNjZkYzI5NjUyNjkwNjlhZjJmNTE3NmJiOGNlOWNhNmQxMWY5Njc1N2YwMzIwNGY3NTY3MDM1ODdkMDBhZDQyNDc5NmM5MmZjN2FlYjZmNDk0NDMxOTk5ZWRhMzA5OTBlNGY1NzczNjMyZWQyNThmZTAyNzY2NzM1OTlkYTZmY2UzNWNkYWQ3NzI2YTBiYjAyNGNhZDk5NmI4OGUwY2I5ODg1NGNlYjVjMGI2ZWM3NDhkOWY5Y2U2YTZjZDQzNzg1OGJhY2I4MTQ2MThhMjcyZmYzYTQxNWM2ZTA3ZjNkYjA5ODg3NzdmZGVjODQ1YTk3YmY3ZDEwMmRkMCIKIAogUEtDUzcgUGFyc2UgRmFpbHVyZSBJbnZhbGlkIEFTTjE6IENoYW5nZSBsZW5ndGggZnJvbSAxMyB0byAxNCAjNDQuMAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHBrY3M3X2FzbjFfZmFpbDoiMzA4MjA1MDAwNjA5MmE4NjQ4ODZmNzBkMDEwNzAyYTA4MjA0ZjEzMDgyMDRlZDAyMDEwMTMxMGYzMDBlMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBiMDYwOTJhODY0ODg2ZjcwZDAxMDcwMWEwODIwMzRkMzA4MjAzNDkzMDgyMDIzMWEwMDMwMjAxMDIwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTMwMWUxNzBkMzIzMjMxMzAzMjM4MzEzNjMxMzAzNTM2NWExNzBkMzIzMzMxMzAzMjM4MzEzNjMxMzAzNTM2NWEzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEzMDgyMDEyMjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDAzODIwMTBmMDAzMDgyMDEwYTAyODIwMTAxMDBjOGI2Y2Y2OTg5OWNkMWYwZWJiNGNhNjQ1YzA1ZTcwZTBkMmVmZWRkY2M2MWQwODljYmQ1MTVhMzlhMzU3OWI5MjM0M2I2MWVjNzUwMDYwZmI0ZWQzNzg3NjMzMjQwMGU0MjVmMWQzNzZjN2U3NWMyOTczMzE0ZWRmNGJiMzBjOGY4ZGQwM2I5ZmNmZjk1NWEyNDVkNDkxMzdhZDZlNjAwNTZjYWMxOTU1MmE4NjVkNTIxODcxODdjYzA0MmM5YzQ5ZTNlM2E5YzE3YTUzNGI0NTNjZGFiYzBjYjExM2I0ZjYzZjViMzE3NGI5ZWU5OTAyYjE5MTBkMTE0OTZhMjc5YTc0MzI2YWRjZmVlMTBiZmQ5ZTdlYmFmYmIzNzdiZTliNjM5NTkxNjVkMTNkZDU3NTExNzFjYWRhZDNjMWQzYWRhYzY4YmM4MDExZDYxYjU0Y2Y2MDE3OGJlMzY4MzlhODlhYzkxYWI0MTllM2NhMzdkNmJhODgxZDI1NTE4YzRkYjY4YmNhNmY3YzgzNjAyZjY5OWE4NmIxN2ZiMWU3NzNiY2JlNzRiYjkzYTQ5YjI1MWFlODY0MjhiNTc0MGUxODY4YmIxZDZmYWI5ZTI4NzEyZTk4ZWMzMTlhZDhmY2E0ZDczMDEwYzRiMDljNGI4MDQ1ODk2MWU3Y2YwODM1MzAyMDMwMTAwMDFhMzUzMzA1MTMwMWQwNjAzNTUxZDBlMDQxNjA0MTQ4YWVlZTU5NDdjYzY3YzVkZDUxNWE3NmUyYTdlY2QzMWVlNTJmZGM4MzAxZjA2MDM1NTFkMjMwNDE4MzAxNjgwMTQ4YWVlZTU5NDdjYzY3YzVkZDUxNWE3NmUyYTdlY2QzMWVlNTJmZGM4MzAwZjA2MDM1NTFkMTMwMTAxZmYwNDA1MzAwMzAxMDFmZjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDAzODIwMTAxMDA4MjFkNmI5OGNkNDU3ZGViZDJiMDgxYWNhMjdlYmVjZDRmOTNhY2M4Mjg0NDNiMzllYWJmZmE5ZmE0ZTllNDU0M2I0NmZjYzMxZTJiNWI0ODE3NzkwM2RlYTY5NjlhYzRhMmNjNjU3MDY1MDM5MGYxYjA4ZDQzYTRjMmY5NzVjN2VkOGJmMzM1NmM3MjE4MzgwMjEyNDUxYThmMTFkZTQ2NTUzY2JjZDY1YjQyNTRkZGI4ZjY2ODM0ZWIyMWRkYTJhOGYzM2I1ODFlMTQ4NDU1N2FjYTFiOTRlZTg5MzFkZGYxNjAzN2I3YTcxNzEzMjFhOTE5MzZhZmMyN2ZmY2UzOTVkZTc1ZDVmNzBjYjhiNWFlZTA1ZmY1MDcwODhkNjVhZjFlNDM5NjZjZDQyY2JlNmY3ZmFjZjhkYWUwNTVkZDgyMjJiMTY5NjUyMTcyM2Y4MTI0NTE3ODU5NWM5ODVhZTkxN2ZkNGIzOTk4NzczZTFhOTdiN2JkMTAwODU0NDZmNDI1OWJjYzA5YTQ1NDkyOTI4MmMxYjg5YjcxZWQ1ODdhNzc1ZTBhM2Q0NTM2MzQxZjQ1ZGFlOTY5ZTgwNmM5NmZlZmM3MTA2Nzc3NmMwMmJhMjIxMjJiOTE5OWIxNGMwYzI4YzA0NDg3NTA5MDcwYjk3ZjNkZDJkNmQ5NzI3MzMxODIwMTc3MzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDViZWNkODcxOTVjMWRlZmY5MGMyNGM5MTI2OWI1NWIzZjA2OWJjMjI1YzMyNmMzMTRjMWE1MTc4NmZmZTE0YzgzMGJlNGU0YmM3M2NiYTM2Yzk3Njc3YjQ0MTY4Mjc5YmU5MWU3Y2RmN2MxOTM4NmFlMjE4NjI3MTlkMTNhM2EwZmZmMDgwM2Q0NjA5NjJmMmNkYTgzNzE0ODQ4NzMyNTJjM2Q3MDU0ZGI4MTQzZTJiMDgxYTM4MTZlZDA4MDRjYTUwOTlhZTVmZWNlODNkNWMyYzM3ODNiMTk4OGI0YjQ2ZGM5NGU1NTU4N2ExMDdlYTE1NDZiZjIyZDI4YTA5N2Y2NTJhNDA2NmRjMjk2NTI2OTA2OWFmMmY1MTc2YmI4Y2U5Y2E2ZDExZjk2NzU3ZjAzMjA0Zjc1NjcwMzU4N2QwMGFkNDI0Nzk2YzkyZmM3YWViNmY0OTQ0MzE5OTllZGEzMDk5MGU0ZjU3NzM2MzJlZDI1OGZlMDI3NjY3MzU5OWRhNmZjZTM1Y2RhZDc3MjZhMGJiMDI0Y2FkOTk2Yjg4ZTBjYjk4ODU0Y2ViNWMwYjZlYzc0OGQ5ZjljZTZhNmNkNDM3ODU4YmFjYjgxNDYxOGEyNzJmZjNhNDE1YzZlMDdmM2RiMDk4ODc3N2ZkZWM4NDVhOTdiZjdkMTAyZGQwIgogCiBQS0NTNyBQYXJzZSBGYWlsdXJlIEludmFsaWQgQVNOMTogQ2hhbmdlIGNvbnRlbnRzIG9mIHRhZyAzMCB0byBjb250YWluIG9uZSB1bmFjY291bnRlZCBleHRyYSBieXRlICM0NS4wCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NgogcGtjczdfYXNuMV9mYWlsOiIzMDgyMDUwMDA2MDkyYTg2NDg4NmY3MGQwMTA3MDJhMDgyMDRmMTMwODIwNGVkMDIwMTAxMzEwZjMwMGUwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDAwMzAwYjA2MDkyYTg2NDg4NmY3MGQwMTA3MDFhMDgyMDM0ZDMwODIwMzQ5MzA4MjAyMzFhMDAzMDIwMTAyMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEzMDFlMTcwZDMyMzIzMTMwMzIzODMxMzYzMTMwMzUzNjVhMTcwZDMyMzMzMTMwMzIzODMxMzYzMTMwMzUzNjVhMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMzA4MjAxMjIzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwMzgyMDEwZjAwMzA4MjAxMGEwMjgyMDEwMTAwYzhiNmNmNjk4OTljZDFmMGViYjRjYTY0NWMwNWU3MGUwZDJlZmVkZGNjNjFkMDg5Y2JkNTE1YTM5YTM1NzliOTIzNDNiNjFlYzc1MDA2MGZiNGVkMzc4NzYzMzI0MDBlNDI1ZjFkMzc2YzdlNzVjMjk3MzMxNGVkZjRiYjMwYzhmOGRkMDNiOWZjZmY5NTVhMjQ1ZDQ5MTM3YWQ2ZTYwMDU2Y2FjMTk1NTJhODY1ZDUyMTg3MTg3Y2MwNDJjOWM0OWUzZTNhOWMxN2E1MzRiNDUzY2RhYmMwY2IxMTNiNGY2M2Y1YjMxNzRiOWVlOTkwMmIxOTEwZDExNDk2YTI3OWE3NDMyNmFkY2ZlZTEwYmZkOWU3ZWJhZmJiMzc3YmU5YjYzOTU5MTY1ZDEzZGQ1NzUxMTcxY2FkYWQzYzFkM2FkYWM2OGJjODAxMWQ2MWI1NGNmNjAxNzhiZTM2ODM5YTg5YWM5MWFiNDE5ZTNjYTM3ZDZiYTg4MWQyNTUxOGM0ZGI2OGJjYTZmN2M4MzYwMmY2OTlhODZiMTdmYjFlNzczYmNiZTc0YmI5M2E0OWIyNTFhZTg2NDI4YjU3NDBlMTg2OGJiMWQ2ZmFiOWUyODcxMmU5OGVjMzE5YWQ4ZmNhNGQ3MzAxMGM0YjA5YzRiODA0NTg5NjFlN2NmMDgzNTMwMjAzMDEwMDAxYTM1MzMwNTEzMDFkMDYwMzU1MWQwZTA0MTYwNDE0OGFlZWU1OTQ3Y2M2N2M1ZGQ1MTVhNzZlMmE3ZWNkMzFlZTUyZmRjODMwMWYwNjAzNTUxZDIzMDQxODMwMTY4MDE0OGFlZWU1OTQ3Y2M2N2M1ZGQ1MTVhNzZlMmE3ZWNkMzFlZTUyZmRjODMwMGYwNjAzNTUxZDEzMDEwMWZmMDQwNTMwMDMwMTAxZmYzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAwMzgyMDEwMTAwODIxZDZiOThjZDQ1N2RlYmQyYjA4MWFjYTI3ZWJlY2Q0ZjkzYWNjODI4NDQzYjM5ZWFiZmZhOWZhNGU5ZTQ1NDNiNDZmY2MzMWUyYjViNDgxNzc5MDNkZWE2OTY5YWM0YTJjYzY1NzA2NTAzOTBmMWIwOGQ0M2E0YzJmOTc1YzdlZDhiZjMzNTZjNzIxODM4MDIxMjQ1MWE4ZjExZGU0NjU1M2NiY2Q2NWI0MjU0ZGRiOGY2NjgzNGViMjFkZGEyYThmMzNiNTgxZTE0ODQ1NTdhY2ExYjk0ZWU4OTMxZGRmMTYwMzdiN2E3MTcxMzIxYTkxOTM2YWZjMjdmZmNlMzk1ZGU3NWQ1ZjcwY2I4YjVhZWUwNWZmNTA3MDg4ZDY1YWYxZTQzOTY2Y2Q0MmNiZTZmN2ZhY2Y4ZGFlMDU1ZGQ4MjIyYjE2OTY1MjE3MjNmODEyNDUxNzg1OTVjOTg1YWU5MTdmZDRiMzk5ODc3M2UxYTk3YjdiZDEwMDg1NDQ2ZjQyNTliY2MwOWE0NTQ5MjkyODJjMWI4OWI3MWVkNTg3YTc3NWUwYTNkNDUzNjM0MWY0NWRhZTk2OWU4MDZjOTZmZWZjNzEwNjc3NzZjMDJiYTIyMTIyYjkxOTliMTRjMGMyOGMwNDQ4NzUwOTA3MGI5N2YzZGQyZDZkOTcyNzMzMTgyMDE3NzMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTAyMTQ3YmRlZGRkMjQ0NGNkMWNkZmU1YzQxYTgxMDJjODliN2RmMmU2Y2JmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDA1YmVjZDg3MTk1YzFkZWZmOTBjMjRjOTEyNjliNTViM2YwNjliYzIyNWMzMjZjMzE0YzFhNTE3ODZmZmUxNGM4MzBiZTRlNGJjNzNjYmEzNmM5NzY3N2I0NDE2ODI3OWJlOTFlN2NkZjdjMTkzODZhZTIxODYyNzE5ZDEzYTNhMGZmZjA4MDNkNDYwOTYyZjJjZGE4MzcxNDg0ODczMjUyYzNkNzA1NGRiODE0M2UyYjA4MWEzODE2ZWQwODA0Y2E1MDk5YWU1ZmVjZTgzZDVjMmMzNzgzYjE5ODhiNGI0NmRjOTRlNTU1ODdhMTA3ZWExNTQ2YmYyMmQyOGEwOTdmNjUyYTQwNjZkYzI5NjUyNjkwNjlhZjJmNTE3NmJiOGNlOWNhNmQxMWY5Njc1N2YwMzIwNGY3NTY3MDM1ODdkMDBhZDQyNDc5NmM5MmZjN2FlYjZmNDk0NDMxOTk5ZWRhMzA5OTBlNGY1NzczNjMyZWQyNThmZTAyNzY2NzM1OTlkYTZmY2UzNWNkYWQ3NzI2YTBiYjAyNGNhZDk5NmI4OGUwY2I5ODg1NGNlYjVjMGI2ZWM3NDhkOWY5Y2U2YTZjZDQzNzg1OGJhY2I4MTQ2MThhMjcyZmYzYTQxNWM2ZTA3ZjNkYjA5ODg3NzdmZGVjODQ1YTk3YmY3ZDEwMmRkMCIKIAogUEtDUzcgUGFyc2UgRmFpbHVyZSBJbnZhbGlkIEFTTjE6IENoYW5nZSBsZW5ndGggZnJvbSAxMyB0byAxMiAjNDYuMAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHBrY3M3X2FzbjFfZmFpbDoiMzA4MjA1MDAwNjA5MmE4NjQ4ODZmNzBkMDEwNzAyYTA4MjA0ZjEzMDgyMDRlZDAyMDEwMTMxMGYzMDBjMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBiMDYwOTJhODY0ODg2ZjcwZDAxMDcwMWEwODIwMzRkMzA4MjAzNDkzMDgyMDIzMWEwMDMwMjAxMDIwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTMwMWUxNzBkMzIzMjMxMzAzMjM4MzEzNjMxMzAzNTM2NWExNzBkMzIzMzMxMzAzMjM4MzEzNjMxMzAzNTM2NWEzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEzMDgyMDEyMjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDAzODIwMTBmMDAzMDgyMDEwYTAyODIwMTAxMDBjOGI2Y2Y2OTg5OWNkMWYwZWJiNGNhNjQ1YzA1ZTcwZTBkMmVmZWRkY2M2MWQwODljYmQ1MTVhMzlhMzU3OWI5MjM0M2I2MWVjNzUwMDYwZmI0ZWQzNzg3NjMzMjQwMGU0MjVmMWQzNzZjN2U3NWMyOTczMzE0ZWRmNGJiMzBjOGY4ZGQwM2I5ZmNmZjk1NWEyNDVkNDkxMzdhZDZlNjAwNTZjYWMxOTU1MmE4NjVkNTIxODcxODdjYzA0MmM5YzQ5ZTNlM2E5YzE3YTUzNGI0NTNjZGFiYzBjYjExM2I0ZjYzZjViMzE3NGI5ZWU5OTAyYjE5MTBkMTE0OTZhMjc5YTc0MzI2YWRjZmVlMTBiZmQ5ZTdlYmFmYmIzNzdiZTliNjM5NTkxNjVkMTNkZDU3NTExNzFjYWRhZDNjMWQzYWRhYzY4YmM4MDExZDYxYjU0Y2Y2MDE3OGJlMzY4MzlhODlhYzkxYWI0MTllM2NhMzdkNmJhODgxZDI1NTE4YzRkYjY4YmNhNmY3YzgzNjAyZjY5OWE4NmIxN2ZiMWU3NzNiY2JlNzRiYjkzYTQ5YjI1MWFlODY0MjhiNTc0MGUxODY4YmIxZDZmYWI5ZTI4NzEyZTk4ZWMzMTlhZDhmY2E0ZDczMDEwYzRiMDljNGI4MDQ1ODk2MWU3Y2YwODM1MzAyMDMwMTAwMDFhMzUzMzA1MTMwMWQwNjAzNTUxZDBlMDQxNjA0MTQ4YWVlZTU5NDdjYzY3YzVkZDUxNWE3NmUyYTdlY2QzMWVlNTJmZGM4MzAxZjA2MDM1NTFkMjMwNDE4MzAxNjgwMTQ4YWVlZTU5NDdjYzY3YzVkZDUxNWE3NmUyYTdlY2QzMWVlNTJmZGM4MzAwZjA2MDM1NTFkMTMwMTAxZmYwNDA1MzAwMzAxMDFmZjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDAzODIwMTAxMDA4MjFkNmI5OGNkNDU3ZGViZDJiMDgxYWNhMjdlYmVjZDRmOTNhY2M4Mjg0NDNiMzllYWJmZmE5ZmE0ZTllNDU0M2I0NmZjYzMxZTJiNWI0ODE3NzkwM2RlYTY5NjlhYzRhMmNjNjU3MDY1MDM5MGYxYjA4ZDQzYTRjMmY5NzVjN2VkOGJmMzM1NmM3MjE4MzgwMjEyNDUxYThmMTFkZTQ2NTUzY2JjZDY1YjQyNTRkZGI4ZjY2ODM0ZWIyMWRkYTJhOGYzM2I1ODFlMTQ4NDU1N2FjYTFiOTRlZTg5MzFkZGYxNjAzN2I3YTcxNzEzMjFhOTE5MzZhZmMyN2ZmY2UzOTVkZTc1ZDVmNzBjYjhiNWFlZTA1ZmY1MDcwODhkNjVhZjFlNDM5NjZjZDQyY2JlNmY3ZmFjZjhkYWUwNTVkZDgyMjJiMTY5NjUyMTcyM2Y4MTI0NTE3ODU5NWM5ODVhZTkxN2ZkNGIzOTk4NzczZTFhOTdiN2JkMTAwODU0NDZmNDI1OWJjYzA5YTQ1NDkyOTI4MmMxYjg5YjcxZWQ1ODdhNzc1ZTBhM2Q0NTM2MzQxZjQ1ZGFlOTY5ZTgwNmM5NmZlZmM3MTA2Nzc3NmMwMmJhMjIxMjJiOTE5OWIxNGMwYzI4YzA0NDg3NTA5MDcwYjk3ZjNkZDJkNmQ5NzI3MzMxODIwMTc3MzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDViZWNkODcxOTVjMWRlZmY5MGMyNGM5MTI2OWI1NWIzZjA2OWJjMjI1YzMyNmMzMTRjMWE1MTc4NmZmZTE0YzgzMGJlNGU0YmM3M2NiYTM2Yzk3Njc3YjQ0MTY4Mjc5YmU5MWU3Y2RmN2MxOTM4NmFlMjE4NjI3MTlkMTNhM2EwZmZmMDgwM2Q0NjA5NjJmMmNkYTgzNzE0ODQ4NzMyNTJjM2Q3MDU0ZGI4MTQzZTJiMDgxYTM4MTZlZDA4MDRjYTUwOTlhZTVmZWNlODNkNWMyYzM3ODNiMTk4OGI0YjQ2ZGM5NGU1NTU4N2ExMDdlYTE1NDZiZjIyZDI4YTA5N2Y2NTJhNDA2NmRjMjk2NTI2OTA2OWFmMmY1MTc2YmI4Y2U5Y2E2ZDExZjk2NzU3ZjAzMjA0Zjc1NjcwMzU4N2QwMGFkNDI0Nzk2YzkyZmM3YWViNmY0OTQ0MzE5OTllZGEzMDk5MGU0ZjU3NzM2MzJlZDI1OGZlMDI3NjY3MzU5OWRhNmZjZTM1Y2RhZDc3MjZhMGJiMDI0Y2FkOTk2Yjg4ZTBjYjk4ODU0Y2ViNWMwYjZlYzc0OGQ5ZjljZTZhNmNkNDM3ODU4YmFjYjgxNDYxOGEyNzJmZjNhNDE1YzZlMDdmM2RiMDk4ODc3N2ZkZWM4NDVhOTdiZjdkMTAyZGQwIgogCiBQS0NTNyBQYXJzZSBGYWlsdXJlIEludmFsaWQgQVNOMTogQ2hhbmdlIHRhZyAwNiB0byAwMiAjNDcuMAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHBrY3M3X2FzbjFfZmFpbDoiMzA4MjA1MDAwNjA5MmE4NjQ4ODZmNzBkMDEwNzAyYTA4MjA0ZjEzMDgyMDRlZDAyMDEwMTMxMGYzMDBkMDIwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBiMDYwOTJhODY0ODg2ZjcwZDAxMDcwMWEwODIwMzRkMzA4MjAzNDkzMDgyMDIzMWEwMDMwMjAxMDIwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTMwMWUxNzBkMzIzMjMxMzAzMjM4MzEzNjMxMzAzNTM2NWExNzBkMzIzMzMxMzAzMjM4MzEzNjMxMzAzNTM2NWEzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEzMDgyMDEyMjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDAzODIwMTBmMDAzMDgyMDEwYTAyODIwMTAxMDBjOGI2Y2Y2OTg5OWNkMWYwZWJiNGNhNjQ1YzA1ZTcwZTBkMmVmZWRkY2M2MWQwODljYmQ1MTVhMzlhMzU3OWI5MjM0M2I2MWVjNzUwMDYwZmI0ZWQzNzg3NjMzMjQwMGU0MjVmMWQzNzZjN2U3NWMyOTczMzE0ZWRmNGJiMzBjOGY4ZGQwM2I5ZmNmZjk1NWEyNDVkNDkxMzdhZDZlNjAwNTZjYWMxOTU1MmE4NjVkNTIxODcxODdjYzA0MmM5YzQ5ZTNlM2E5YzE3YTUzNGI0NTNjZGFiYzBjYjExM2I0ZjYzZjViMzE3NGI5ZWU5OTAyYjE5MTBkMTE0OTZhMjc5YTc0MzI2YWRjZmVlMTBiZmQ5ZTdlYmFmYmIzNzdiZTliNjM5NTkxNjVkMTNkZDU3NTExNzFjYWRhZDNjMWQzYWRhYzY4YmM4MDExZDYxYjU0Y2Y2MDE3OGJlMzY4MzlhODlhYzkxYWI0MTllM2NhMzdkNmJhODgxZDI1NTE4YzRkYjY4YmNhNmY3YzgzNjAyZjY5OWE4NmIxN2ZiMWU3NzNiY2JlNzRiYjkzYTQ5YjI1MWFlODY0MjhiNTc0MGUxODY4YmIxZDZmYWI5ZTI4NzEyZTk4ZWMzMTlhZDhmY2E0ZDczMDEwYzRiMDljNGI4MDQ1ODk2MWU3Y2YwODM1MzAyMDMwMTAwMDFhMzUzMzA1MTMwMWQwNjAzNTUxZDBlMDQxNjA0MTQ4YWVlZTU5NDdjYzY3YzVkZDUxNWE3NmUyYTdlY2QzMWVlNTJmZGM4MzAxZjA2MDM1NTFkMjMwNDE4MzAxNjgwMTQ4YWVlZTU5NDdjYzY3YzVkZDUxNWE3NmUyYTdlY2QzMWVlNTJmZGM4MzAwZjA2MDM1NTFkMTMwMTAxZmYwNDA1MzAwMzAxMDFmZjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDAzODIwMTAxMDA4MjFkNmI5OGNkNDU3ZGViZDJiMDgxYWNhMjdlYmVjZDRmOTNhY2M4Mjg0NDNiMzllYWJmZmE5ZmE0ZTllNDU0M2I0NmZjYzMxZTJiNWI0ODE3NzkwM2RlYTY5NjlhYzRhMmNjNjU3MDY1MDM5MGYxYjA4ZDQzYTRjMmY5NzVjN2VkOGJmMzM1NmM3MjE4MzgwMjEyNDUxYThmMTFkZTQ2NTUzY2JjZDY1YjQyNTRkZGI4ZjY2ODM0ZWIyMWRkYTJhOGYzM2I1ODFlMTQ4NDU1N2FjYTFiOTRlZTg5MzFkZGYxNjAzN2I3YTcxNzEzMjFhOTE5MzZhZmMyN2ZmY2UzOTVkZTc1ZDVmNzBjYjhiNWFlZTA1ZmY1MDcwODhkNjVhZjFlNDM5NjZjZDQyY2JlNmY3ZmFjZjhkYWUwNTVkZDgyMjJiMTY5NjUyMTcyM2Y4MTI0NTE3ODU5NWM5ODVhZTkxN2ZkNGIzOTk4NzczZTFhOTdiN2JkMTAwODU0NDZmNDI1OWJjYzA5YTQ1NDkyOTI4MmMxYjg5YjcxZWQ1ODdhNzc1ZTBhM2Q0NTM2MzQxZjQ1ZGFlOTY5ZTgwNmM5NmZlZmM3MTA2Nzc3NmMwMmJhMjIxMjJiOTE5OWIxNGMwYzI4YzA0NDg3NTA5MDcwYjk3ZjNkZDJkNmQ5NzI3MzMxODIwMTc3MzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDViZWNkODcxOTVjMWRlZmY5MGMyNGM5MTI2OWI1NWIzZjA2OWJjMjI1YzMyNmMzMTRjMWE1MTc4NmZmZTE0YzgzMGJlNGU0YmM3M2NiYTM2Yzk3Njc3YjQ0MTY4Mjc5YmU5MWU3Y2RmN2MxOTM4NmFlMjE4NjI3MTlkMTNhM2EwZmZmMDgwM2Q0NjA5NjJmMmNkYTgzNzE0ODQ4NzMyNTJjM2Q3MDU0ZGI4MTQzZTJiMDgxYTM4MTZlZDA4MDRjYTUwOTlhZTVmZWNlODNkNWMyYzM3ODNiMTk4OGI0YjQ2ZGM5NGU1NTU4N2ExMDdlYTE1NDZiZjIyZDI4YTA5N2Y2NTJhNDA2NmRjMjk2NTI2OTA2OWFmMmY1MTc2YmI4Y2U5Y2E2ZDExZjk2NzU3ZjAzMjA0Zjc1NjcwMzU4N2QwMGFkNDI0Nzk2YzkyZmM3YWViNmY0OTQ0MzE5OTllZGEzMDk5MGU0ZjU3NzM2MzJlZDI1OGZlMDI3NjY3MzU5OWRhNmZjZTM1Y2RhZDc3MjZhMGJiMDI0Y2FkOTk2Yjg4ZTBjYjk4ODU0Y2ViNWMwYjZlYzc0OGQ5ZjljZTZhNmNkNDM3ODU4YmFjYjgxNDYxOGEyNzJmZjNhNDE1YzZlMDdmM2RiMDk4ODc3N2ZkZWM4NDVhOTdiZjdkMTAyZGQwIgogCiBQS0NTNyBQYXJzZSBGYWlsdXJlIEludmFsaWQgQVNOMTogQ2hhbmdlIGxlbmd0aCBmcm9tIDkgdG8gMTAgIzQ4LjAKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBwa2NzN19hc24xX2ZhaWw6IjMwODIwNTAwMDYwOTJhODY0ODg2ZjcwZDAxMDcwMmEwODIwNGYxMzA4MjA0ZWQwMjAxMDEzMTBmMzAwZDA2MGE2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwYjA2MDkyYTg2NDg4NmY3MGQwMTA3MDFhMDgyMDM0ZDMwODIwMzQ5MzA4MjAyMzFhMDAzMDIwMTAyMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEzMDFlMTcwZDMyMzIzMTMwMzIzODMxMzYzMTMwMzUzNjVhMTcwZDMyMzMzMTMwMzIzODMxMzYzMTMwMzUzNjVhMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMzA4MjAxMjIzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwMzgyMDEwZjAwMzA4MjAxMGEwMjgyMDEwMTAwYzhiNmNmNjk4OTljZDFmMGViYjRjYTY0NWMwNWU3MGUwZDJlZmVkZGNjNjFkMDg5Y2JkNTE1YTM5YTM1NzliOTIzNDNiNjFlYzc1MDA2MGZiNGVkMzc4NzYzMzI0MDBlNDI1ZjFkMzc2YzdlNzVjMjk3MzMxNGVkZjRiYjMwYzhmOGRkMDNiOWZjZmY5NTVhMjQ1ZDQ5MTM3YWQ2ZTYwMDU2Y2FjMTk1NTJhODY1ZDUyMTg3MTg3Y2MwNDJjOWM0OWUzZTNhOWMxN2E1MzRiNDUzY2RhYmMwY2IxMTNiNGY2M2Y1YjMxNzRiOWVlOTkwMmIxOTEwZDExNDk2YTI3OWE3NDMyNmFkY2ZlZTEwYmZkOWU3ZWJhZmJiMzc3YmU5YjYzOTU5MTY1ZDEzZGQ1NzUxMTcxY2FkYWQzYzFkM2FkYWM2OGJjODAxMWQ2MWI1NGNmNjAxNzhiZTM2ODM5YTg5YWM5MWFiNDE5ZTNjYTM3ZDZiYTg4MWQyNTUxOGM0ZGI2OGJjYTZmN2M4MzYwMmY2OTlhODZiMTdmYjFlNzczYmNiZTc0YmI5M2E0OWIyNTFhZTg2NDI4YjU3NDBlMTg2OGJiMWQ2ZmFiOWUyODcxMmU5OGVjMzE5YWQ4ZmNhNGQ3MzAxMGM0YjA5YzRiODA0NTg5NjFlN2NmMDgzNTMwMjAzMDEwMDAxYTM1MzMwNTEzMDFkMDYwMzU1MWQwZTA0MTYwNDE0OGFlZWU1OTQ3Y2M2N2M1ZGQ1MTVhNzZlMmE3ZWNkMzFlZTUyZmRjODMwMWYwNjAzNTUxZDIzMDQxODMwMTY4MDE0OGFlZWU1OTQ3Y2M2N2M1ZGQ1MTVhNzZlMmE3ZWNkMzFlZTUyZmRjODMwMGYwNjAzNTUxZDEzMDEwMWZmMDQwNTMwMDMwMTAxZmYzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAwMzgyMDEwMTAwODIxZDZiOThjZDQ1N2RlYmQyYjA4MWFjYTI3ZWJlY2Q0ZjkzYWNjODI4NDQzYjM5ZWFiZmZhOWZhNGU5ZTQ1NDNiNDZmY2MzMWUyYjViNDgxNzc5MDNkZWE2OTY5YWM0YTJjYzY1NzA2NTAzOTBmMWIwOGQ0M2E0YzJmOTc1YzdlZDhiZjMzNTZjNzIxODM4MDIxMjQ1MWE4ZjExZGU0NjU1M2NiY2Q2NWI0MjU0ZGRiOGY2NjgzNGViMjFkZGEyYThmMzNiNTgxZTE0ODQ1NTdhY2ExYjk0ZWU4OTMxZGRmMTYwMzdiN2E3MTcxMzIxYTkxOTM2YWZjMjdmZmNlMzk1ZGU3NWQ1ZjcwY2I4YjVhZWUwNWZmNTA3MDg4ZDY1YWYxZTQzOTY2Y2Q0MmNiZTZmN2ZhY2Y4ZGFlMDU1ZGQ4MjIyYjE2OTY1MjE3MjNmODEyNDUxNzg1OTVjOTg1YWU5MTdmZDRiMzk5ODc3M2UxYTk3YjdiZDEwMDg1NDQ2ZjQyNTliY2MwOWE0NTQ5MjkyODJjMWI4OWI3MWVkNTg3YTc3NWUwYTNkNDUzNjM0MWY0NWRhZTk2OWU4MDZjOTZmZWZjNzEwNjc3NzZjMDJiYTIyMTIyYjkxOTliMTRjMGMyOGMwNDQ4NzUwOTA3MGI5N2YzZGQyZDZkOTcyNzMzMTgyMDE3NzMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTAyMTQ3YmRlZGRkMjQ0NGNkMWNkZmU1YzQxYTgxMDJjODliN2RmMmU2Y2JmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDA1YmVjZDg3MTk1YzFkZWZmOTBjMjRjOTEyNjliNTViM2YwNjliYzIyNWMzMjZjMzE0YzFhNTE3ODZmZmUxNGM4MzBiZTRlNGJjNzNjYmEzNmM5NzY3N2I0NDE2ODI3OWJlOTFlN2NkZjdjMTkzODZhZTIxODYyNzE5ZDEzYTNhMGZmZjA4MDNkNDYwOTYyZjJjZGE4MzcxNDg0ODczMjUyYzNkNzA1NGRiODE0M2UyYjA4MWEzODE2ZWQwODA0Y2E1MDk5YWU1ZmVjZTgzZDVjMmMzNzgzYjE5ODhiNGI0NmRjOTRlNTU1ODdhMTA3ZWExNTQ2YmYyMmQyOGEwOTdmNjUyYTQwNjZkYzI5NjUyNjkwNjlhZjJmNTE3NmJiOGNlOWNhNmQxMWY5Njc1N2YwMzIwNGY3NTY3MDM1ODdkMDBhZDQyNDc5NmM5MmZjN2FlYjZmNDk0NDMxOTk5ZWRhMzA5OTBlNGY1NzczNjMyZWQyNThmZTAyNzY2NzM1OTlkYTZmY2UzNWNkYWQ3NzI2YTBiYjAyNGNhZDk5NmI4OGUwY2I5ODg1NGNlYjVjMGI2ZWM3NDhkOWY5Y2U2YTZjZDQzNzg1OGJhY2I4MTQ2MThhMjcyZmYzYTQxNWM2ZTA3ZjNkYjA5ODg3NzdmZGVjODQ1YTk3YmY3ZDEwMmRkMCIKIAogUEtDUzcgUGFyc2UgRmFpbHVyZSBJbnZhbGlkIEFTTjE6IENoYW5nZSBsZW5ndGggZnJvbSA5IHRvIDggIzQ5LjAKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBwa2NzN19hc24xX2ZhaWw6IjMwODIwNTAwMDYwOTJhODY0ODg2ZjcwZDAxMDcwMmEwODIwNGYxMzA4MjA0ZWQwMjAxMDEzMTBmMzAwZDA2MDg2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwYjA2MDkyYTg2NDg4NmY3MGQwMTA3MDFhMDgyMDM0ZDMwODIwMzQ5MzA4MjAyMzFhMDAzMDIwMTAyMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEzMDFlMTcwZDMyMzIzMTMwMzIzODMxMzYzMTMwMzUzNjVhMTcwZDMyMzMzMTMwMzIzODMxMzYzMTMwMzUzNjVhMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMzA4MjAxMjIzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwMzgyMDEwZjAwMzA4MjAxMGEwMjgyMDEwMTAwYzhiNmNmNjk4OTljZDFmMGViYjRjYTY0NWMwNWU3MGUwZDJlZmVkZGNjNjFkMDg5Y2JkNTE1YTM5YTM1NzliOTIzNDNiNjFlYzc1MDA2MGZiNGVkMzc4NzYzMzI0MDBlNDI1ZjFkMzc2YzdlNzVjMjk3MzMxNGVkZjRiYjMwYzhmOGRkMDNiOWZjZmY5NTVhMjQ1ZDQ5MTM3YWQ2ZTYwMDU2Y2FjMTk1NTJhODY1ZDUyMTg3MTg3Y2MwNDJjOWM0OWUzZTNhOWMxN2E1MzRiNDUzY2RhYmMwY2IxMTNiNGY2M2Y1YjMxNzRiOWVlOTkwMmIxOTEwZDExNDk2YTI3OWE3NDMyNmFkY2ZlZTEwYmZkOWU3ZWJhZmJiMzc3YmU5YjYzOTU5MTY1ZDEzZGQ1NzUxMTcxY2FkYWQzYzFkM2FkYWM2OGJjODAxMWQ2MWI1NGNmNjAxNzhiZTM2ODM5YTg5YWM5MWFiNDE5ZTNjYTM3ZDZiYTg4MWQyNTUxOGM0ZGI2OGJjYTZmN2M4MzYwMmY2OTlhODZiMTdmYjFlNzczYmNiZTc0YmI5M2E0OWIyNTFhZTg2NDI4YjU3NDBlMTg2OGJiMWQ2ZmFiOWUyODcxMmU5OGVjMzE5YWQ4ZmNhNGQ3MzAxMGM0YjA5YzRiODA0NTg5NjFlN2NmMDgzNTMwMjAzMDEwMDAxYTM1MzMwNTEzMDFkMDYwMzU1MWQwZTA0MTYwNDE0OGFlZWU1OTQ3Y2M2N2M1ZGQ1MTVhNzZlMmE3ZWNkMzFlZTUyZmRjODMwMWYwNjAzNTUxZDIzMDQxODMwMTY4MDE0OGFlZWU1OTQ3Y2M2N2M1ZGQ1MTVhNzZlMmE3ZWNkMzFlZTUyZmRjODMwMGYwNjAzNTUxZDEzMDEwMWZmMDQwNTMwMDMwMTAxZmYzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAwMzgyMDEwMTAwODIxZDZiOThjZDQ1N2RlYmQyYjA4MWFjYTI3ZWJlY2Q0ZjkzYWNjODI4NDQzYjM5ZWFiZmZhOWZhNGU5ZTQ1NDNiNDZmY2MzMWUyYjViNDgxNzc5MDNkZWE2OTY5YWM0YTJjYzY1NzA2NTAzOTBmMWIwOGQ0M2E0YzJmOTc1YzdlZDhiZjMzNTZjNzIxODM4MDIxMjQ1MWE4ZjExZGU0NjU1M2NiY2Q2NWI0MjU0ZGRiOGY2NjgzNGViMjFkZGEyYThmMzNiNTgxZTE0ODQ1NTdhY2ExYjk0ZWU4OTMxZGRmMTYwMzdiN2E3MTcxMzIxYTkxOTM2YWZjMjdmZmNlMzk1ZGU3NWQ1ZjcwY2I4YjVhZWUwNWZmNTA3MDg4ZDY1YWYxZTQzOTY2Y2Q0MmNiZTZmN2ZhY2Y4ZGFlMDU1ZGQ4MjIyYjE2OTY1MjE3MjNmODEyNDUxNzg1OTVjOTg1YWU5MTdmZDRiMzk5ODc3M2UxYTk3YjdiZDEwMDg1NDQ2ZjQyNTliY2MwOWE0NTQ5MjkyODJjMWI4OWI3MWVkNTg3YTc3NWUwYTNkNDUzNjM0MWY0NWRhZTk2OWU4MDZjOTZmZWZjNzEwNjc3NzZjMDJiYTIyMTIyYjkxOTliMTRjMGMyOGMwNDQ4NzUwOTA3MGI5N2YzZGQyZDZkOTcyNzMzMTgyMDE3NzMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTAyMTQ3YmRlZGRkMjQ0NGNkMWNkZmU1YzQxYTgxMDJjODliN2RmMmU2Y2JmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDA1YmVjZDg3MTk1YzFkZWZmOTBjMjRjOTEyNjliNTViM2YwNjliYzIyNWMzMjZjMzE0YzFhNTE3ODZmZmUxNGM4MzBiZTRlNGJjNzNjYmEzNmM5NzY3N2I0NDE2ODI3OWJlOTFlN2NkZjdjMTkzODZhZTIxODYyNzE5ZDEzYTNhMGZmZjA4MDNkNDYwOTYyZjJjZGE4MzcxNDg0ODczMjUyYzNkNzA1NGRiODE0M2UyYjA4MWEzODE2ZWQwODA0Y2E1MDk5YWU1ZmVjZTgzZDVjMmMzNzgzYjE5ODhiNGI0NmRjOTRlNTU1ODdhMTA3ZWExNTQ2YmYyMmQyOGEwOTdmNjUyYTQwNjZkYzI5NjUyNjkwNjlhZjJmNTE3NmJiOGNlOWNhNmQxMWY5Njc1N2YwMzIwNGY3NTY3MDM1ODdkMDBhZDQyNDc5NmM5MmZjN2FlYjZmNDk0NDMxOTk5ZWRhMzA5OTBlNGY1NzczNjMyZWQyNThmZTAyNzY2NzM1OTlkYTZmY2UzNWNkYWQ3NzI2YTBiYjAyNGNhZDk5NmI4OGUwY2I5ODg1NGNlYjVjMGI2ZWM3NDhkOWY5Y2U2YTZjZDQzNzg1OGJhY2I4MTQ2MThhMjcyZmYzYTQxNWM2ZTA3ZjNkYjA5ODg3NzdmZGVjODQ1YTk3YmY3ZDEwMmRkMCIKIAogUEtDUzcgUGFyc2UgRmFpbHVyZSBJbnZhbGlkIEFTTjE6IENoYW5nZSB0YWcgMDUgdG8gMDIgIzUwLjAKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBwa2NzN19hc24xX2ZhaWw6IjMwODIwNTAwMDYwOTJhODY0ODg2ZjcwZDAxMDcwMmEwODIwNGYxMzA4MjA0ZWQwMjAxMDEzMTBmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwMjAwMzAwYjA2MDkyYTg2NDg4NmY3MGQwMTA3MDFhMDgyMDM0ZDMwODIwMzQ5MzA4MjAyMzFhMDAzMDIwMTAyMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEzMDFlMTcwZDMyMzIzMTMwMzIzODMxMzYzMTMwMzUzNjVhMTcwZDMyMzMzMTMwMzIzODMxMzYzMTMwMzUzNjVhMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMzA4MjAxMjIzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwMzgyMDEwZjAwMzA4MjAxMGEwMjgyMDEwMTAwYzhiNmNmNjk4OTljZDFmMGViYjRjYTY0NWMwNWU3MGUwZDJlZmVkZGNjNjFkMDg5Y2JkNTE1YTM5YTM1NzliOTIzNDNiNjFlYzc1MDA2MGZiNGVkMzc4NzYzMzI0MDBlNDI1ZjFkMzc2YzdlNzVjMjk3MzMxNGVkZjRiYjMwYzhmOGRkMDNiOWZjZmY5NTVhMjQ1ZDQ5MTM3YWQ2ZTYwMDU2Y2FjMTk1NTJhODY1ZDUyMTg3MTg3Y2MwNDJjOWM0OWUzZTNhOWMxN2E1MzRiNDUzY2RhYmMwY2IxMTNiNGY2M2Y1YjMxNzRiOWVlOTkwMmIxOTEwZDExNDk2YTI3OWE3NDMyNmFkY2ZlZTEwYmZkOWU3ZWJhZmJiMzc3YmU5YjYzOTU5MTY1ZDEzZGQ1NzUxMTcxY2FkYWQzYzFkM2FkYWM2OGJjODAxMWQ2MWI1NGNmNjAxNzhiZTM2ODM5YTg5YWM5MWFiNDE5ZTNjYTM3ZDZiYTg4MWQyNTUxOGM0ZGI2OGJjYTZmN2M4MzYwMmY2OTlhODZiMTdmYjFlNzczYmNiZTc0YmI5M2E0OWIyNTFhZTg2NDI4YjU3NDBlMTg2OGJiMWQ2ZmFiOWUyODcxMmU5OGVjMzE5YWQ4ZmNhNGQ3MzAxMGM0YjA5YzRiODA0NTg5NjFlN2NmMDgzNTMwMjAzMDEwMDAxYTM1MzMwNTEzMDFkMDYwMzU1MWQwZTA0MTYwNDE0OGFlZWU1OTQ3Y2M2N2M1ZGQ1MTVhNzZlMmE3ZWNkMzFlZTUyZmRjODMwMWYwNjAzNTUxZDIzMDQxODMwMTY4MDE0OGFlZWU1OTQ3Y2M2N2M1ZGQ1MTVhNzZlMmE3ZWNkMzFlZTUyZmRjODMwMGYwNjAzNTUxZDEzMDEwMWZmMDQwNTMwMDMwMTAxZmYzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAwMzgyMDEwMTAwODIxZDZiOThjZDQ1N2RlYmQyYjA4MWFjYTI3ZWJlY2Q0ZjkzYWNjODI4NDQzYjM5ZWFiZmZhOWZhNGU5ZTQ1NDNiNDZmY2MzMWUyYjViNDgxNzc5MDNkZWE2OTY5YWM0YTJjYzY1NzA2NTAzOTBmMWIwOGQ0M2E0YzJmOTc1YzdlZDhiZjMzNTZjNzIxODM4MDIxMjQ1MWE4ZjExZGU0NjU1M2NiY2Q2NWI0MjU0ZGRiOGY2NjgzNGViMjFkZGEyYThmMzNiNTgxZTE0ODQ1NTdhY2ExYjk0ZWU4OTMxZGRmMTYwMzdiN2E3MTcxMzIxYTkxOTM2YWZjMjdmZmNlMzk1ZGU3NWQ1ZjcwY2I4YjVhZWUwNWZmNTA3MDg4ZDY1YWYxZTQzOTY2Y2Q0MmNiZTZmN2ZhY2Y4ZGFlMDU1ZGQ4MjIyYjE2OTY1MjE3MjNmODEyNDUxNzg1OTVjOTg1YWU5MTdmZDRiMzk5ODc3M2UxYTk3YjdiZDEwMDg1NDQ2ZjQyNTliY2MwOWE0NTQ5MjkyODJjMWI4OWI3MWVkNTg3YTc3NWUwYTNkNDUzNjM0MWY0NWRhZTk2OWU4MDZjOTZmZWZjNzEwNjc3NzZjMDJiYTIyMTIyYjkxOTliMTRjMGMyOGMwNDQ4NzUwOTA3MGI5N2YzZGQyZDZkOTcyNzMzMTgyMDE3NzMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTAyMTQ3YmRlZGRkMjQ0NGNkMWNkZmU1YzQxYTgxMDJjODliN2RmMmU2Y2JmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDA1YmVjZDg3MTk1YzFkZWZmOTBjMjRjOTEyNjliNTViM2YwNjliYzIyNWMzMjZjMzE0YzFhNTE3ODZmZmUxNGM4MzBiZTRlNGJjNzNjYmEzNmM5NzY3N2I0NDE2ODI3OWJlOTFlN2NkZjdjMTkzODZhZTIxODYyNzE5ZDEzYTNhMGZmZjA4MDNkNDYwOTYyZjJjZGE4MzcxNDg0ODczMjUyYzNkNzA1NGRiODE0M2UyYjA4MWEzODE2ZWQwODA0Y2E1MDk5YWU1ZmVjZTgzZDVjMmMzNzgzYjE5ODhiNGI0NmRjOTRlNTU1ODdhMTA3ZWExNTQ2YmYyMmQyOGEwOTdmNjUyYTQwNjZkYzI5NjUyNjkwNjlhZjJmNTE3NmJiOGNlOWNhNmQxMWY5Njc1N2YwMzIwNGY3NTY3MDM1ODdkMDBhZDQyNDc5NmM5MmZjN2FlYjZmNDk0NDMxOTk5ZWRhMzA5OTBlNGY1NzczNjMyZWQyNThmZTAyNzY2NzM1OTlkYTZmY2UzNWNkYWQ3NzI2YTBiYjAyNGNhZDk5NmI4OGUwY2I5ODg1NGNlYjVjMGI2ZWM3NDhkOWY5Y2U2YTZjZDQzNzg1OGJhY2I4MTQ2MThhMjcyZmYzYTQxNWM2ZTA3ZjNkYjA5ODg3NzdmZGVjODQ1YTk3YmY3ZDEwMmRkMCIKIAogUEtDUzcgUGFyc2UgRmFpbHVyZSBJbnZhbGlkIEFTTjE6IENoYW5nZSBsZW5ndGggZnJvbSAwIHRvIDEgIzUxLjAKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBwa2NzN19hc24xX2ZhaWw6IjMwODIwNTAwMDYwOTJhODY0ODg2ZjcwZDAxMDcwMmEwODIwNGYxMzA4MjA0ZWQwMjAxMDEzMTBmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAxMzAwYjA2MDkyYTg2NDg4NmY3MGQwMTA3MDFhMDgyMDM0ZDMwODIwMzQ5MzA4MjAyMzFhMDAzMDIwMTAyMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEzMDFlMTcwZDMyMzIzMTMwMzIzODMxMzYzMTMwMzUzNjVhMTcwZDMyMzMzMTMwMzIzODMxMzYzMTMwMzUzNjVhMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMzA4MjAxMjIzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwMzgyMDEwZjAwMzA4MjAxMGEwMjgyMDEwMTAwYzhiNmNmNjk4OTljZDFmMGViYjRjYTY0NWMwNWU3MGUwZDJlZmVkZGNjNjFkMDg5Y2JkNTE1YTM5YTM1NzliOTIzNDNiNjFlYzc1MDA2MGZiNGVkMzc4NzYzMzI0MDBlNDI1ZjFkMzc2YzdlNzVjMjk3MzMxNGVkZjRiYjMwYzhmOGRkMDNiOWZjZmY5NTVhMjQ1ZDQ5MTM3YWQ2ZTYwMDU2Y2FjMTk1NTJhODY1ZDUyMTg3MTg3Y2MwNDJjOWM0OWUzZTNhOWMxN2E1MzRiNDUzY2RhYmMwY2IxMTNiNGY2M2Y1YjMxNzRiOWVlOTkwMmIxOTEwZDExNDk2YTI3OWE3NDMyNmFkY2ZlZTEwYmZkOWU3ZWJhZmJiMzc3YmU5YjYzOTU5MTY1ZDEzZGQ1NzUxMTcxY2FkYWQzYzFkM2FkYWM2OGJjODAxMWQ2MWI1NGNmNjAxNzhiZTM2ODM5YTg5YWM5MWFiNDE5ZTNjYTM3ZDZiYTg4MWQyNTUxOGM0ZGI2OGJjYTZmN2M4MzYwMmY2OTlhODZiMTdmYjFlNzczYmNiZTc0YmI5M2E0OWIyNTFhZTg2NDI4YjU3NDBlMTg2OGJiMWQ2ZmFiOWUyODcxMmU5OGVjMzE5YWQ4ZmNhNGQ3MzAxMGM0YjA5YzRiODA0NTg5NjFlN2NmMDgzNTMwMjAzMDEwMDAxYTM1MzMwNTEzMDFkMDYwMzU1MWQwZTA0MTYwNDE0OGFlZWU1OTQ3Y2M2N2M1ZGQ1MTVhNzZlMmE3ZWNkMzFlZTUyZmRjODMwMWYwNjAzNTUxZDIzMDQxODMwMTY4MDE0OGFlZWU1OTQ3Y2M2N2M1ZGQ1MTVhNzZlMmE3ZWNkMzFlZTUyZmRjODMwMGYwNjAzNTUxZDEzMDEwMWZmMDQwNTMwMDMwMTAxZmYzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAwMzgyMDEwMTAwODIxZDZiOThjZDQ1N2RlYmQyYjA4MWFjYTI3ZWJlY2Q0ZjkzYWNjODI4NDQzYjM5ZWFiZmZhOWZhNGU5ZTQ1NDNiNDZmY2MzMWUyYjViNDgxNzc5MDNkZWE2OTY5YWM0YTJjYzY1NzA2NTAzOTBmMWIwOGQ0M2E0YzJmOTc1YzdlZDhiZjMzNTZjNzIxODM4MDIxMjQ1MWE4ZjExZGU0NjU1M2NiY2Q2NWI0MjU0ZGRiOGY2NjgzNGViMjFkZGEyYThmMzNiNTgxZTE0ODQ1NTdhY2ExYjk0ZWU4OTMxZGRmMTYwMzdiN2E3MTcxMzIxYTkxOTM2YWZjMjdmZmNlMzk1ZGU3NWQ1ZjcwY2I4YjVhZWUwNWZmNTA3MDg4ZDY1YWYxZTQzOTY2Y2Q0MmNiZTZmN2ZhY2Y4ZGFlMDU1ZGQ4MjIyYjE2OTY1MjE3MjNmODEyNDUxNzg1OTVjOTg1YWU5MTdmZDRiMzk5ODc3M2UxYTk3YjdiZDEwMDg1NDQ2ZjQyNTliY2MwOWE0NTQ5MjkyODJjMWI4OWI3MWVkNTg3YTc3NWUwYTNkNDUzNjM0MWY0NWRhZTk2OWU4MDZjOTZmZWZjNzEwNjc3NzZjMDJiYTIyMTIyYjkxOTliMTRjMGMyOGMwNDQ4NzUwOTA3MGI5N2YzZGQyZDZkOTcyNzMzMTgyMDE3NzMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTAyMTQ3YmRlZGRkMjQ0NGNkMWNkZmU1YzQxYTgxMDJjODliN2RmMmU2Y2JmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDA1YmVjZDg3MTk1YzFkZWZmOTBjMjRjOTEyNjliNTViM2YwNjliYzIyNWMzMjZjMzE0YzFhNTE3ODZmZmUxNGM4MzBiZTRlNGJjNzNjYmEzNmM5NzY3N2I0NDE2ODI3OWJlOTFlN2NkZjdjMTkzODZhZTIxODYyNzE5ZDEzYTNhMGZmZjA4MDNkNDYwOTYyZjJjZGE4MzcxNDg0ODczMjUyYzNkNzA1NGRiODE0M2UyYjA4MWEzODE2ZWQwODA0Y2E1MDk5YWU1ZmVjZTgzZDVjMmMzNzgzYjE5ODhiNGI0NmRjOTRlNTU1ODdhMTA3ZWExNTQ2YmYyMmQyOGEwOTdmNjUyYTQwNjZkYzI5NjUyNjkwNjlhZjJmNTE3NmJiOGNlOWNhNmQxMWY5Njc1N2YwMzIwNGY3NTY3MDM1ODdkMDBhZDQyNDc5NmM5MmZjN2FlYjZmNDk0NDMxOTk5ZWRhMzA5OTBlNGY1NzczNjMyZWQyNThmZTAyNzY2NzM1OTlkYTZmY2UzNWNkYWQ3NzI2YTBiYjAyNGNhZDk5NmI4OGUwY2I5ODg1NGNlYjVjMGI2ZWM3NDhkOWY5Y2U2YTZjZDQzNzg1OGJhY2I4MTQ2MThhMjcyZmYzYTQxNWM2ZTA3ZjNkYjA5ODg3NzdmZGVjODQ1YTk3YmY3ZDEwMmRkMCIKIAogUEtDUzcgUGFyc2UgRmFpbHVyZSBJbnZhbGlkIEFTTjE6IENoYW5nZSB0YWcgMzAgdG8gMDIgIzUyLjAKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBwa2NzN19hc24xX2ZhaWw6IjMwODIwNTAwMDYwOTJhODY0ODg2ZjcwZDAxMDcwMmEwODIwNGYxMzA4MjA0ZWQwMjAxMDEzMTBmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMDIwYjA2MDkyYTg2NDg4NmY3MGQwMTA3MDFhMDgyMDM0ZDMwODIwMzQ5MzA4MjAyMzFhMDAzMDIwMTAyMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEzMDFlMTcwZDMyMzIzMTMwMzIzODMxMzYzMTMwMzUzNjVhMTcwZDMyMzMzMTMwMzIzODMxMzYzMTMwMzUzNjVhMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMzA4MjAxMjIzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwMzgyMDEwZjAwMzA4MjAxMGEwMjgyMDEwMTAwYzhiNmNmNjk4OTljZDFmMGViYjRjYTY0NWMwNWU3MGUwZDJlZmVkZGNjNjFkMDg5Y2JkNTE1YTM5YTM1NzliOTIzNDNiNjFlYzc1MDA2MGZiNGVkMzc4NzYzMzI0MDBlNDI1ZjFkMzc2YzdlNzVjMjk3MzMxNGVkZjRiYjMwYzhmOGRkMDNiOWZjZmY5NTVhMjQ1ZDQ5MTM3YWQ2ZTYwMDU2Y2FjMTk1NTJhODY1ZDUyMTg3MTg3Y2MwNDJjOWM0OWUzZTNhOWMxN2E1MzRiNDUzY2RhYmMwY2IxMTNiNGY2M2Y1YjMxNzRiOWVlOTkwMmIxOTEwZDExNDk2YTI3OWE3NDMyNmFkY2ZlZTEwYmZkOWU3ZWJhZmJiMzc3YmU5YjYzOTU5MTY1ZDEzZGQ1NzUxMTcxY2FkYWQzYzFkM2FkYWM2OGJjODAxMWQ2MWI1NGNmNjAxNzhiZTM2ODM5YTg5YWM5MWFiNDE5ZTNjYTM3ZDZiYTg4MWQyNTUxOGM0ZGI2OGJjYTZmN2M4MzYwMmY2OTlhODZiMTdmYjFlNzczYmNiZTc0YmI5M2E0OWIyNTFhZTg2NDI4YjU3NDBlMTg2OGJiMWQ2ZmFiOWUyODcxMmU5OGVjMzE5YWQ4ZmNhNGQ3MzAxMGM0YjA5YzRiODA0NTg5NjFlN2NmMDgzNTMwMjAzMDEwMDAxYTM1MzMwNTEzMDFkMDYwMzU1MWQwZTA0MTYwNDE0OGFlZWU1OTQ3Y2M2N2M1ZGQ1MTVhNzZlMmE3ZWNkMzFlZTUyZmRjODMwMWYwNjAzNTUxZDIzMDQxODMwMTY4MDE0OGFlZWU1OTQ3Y2M2N2M1ZGQ1MTVhNzZlMmE3ZWNkMzFlZTUyZmRjODMwMGYwNjAzNTUxZDEzMDEwMWZmMDQwNTMwMDMwMTAxZmYzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAwMzgyMDEwMTAwODIxZDZiOThjZDQ1N2RlYmQyYjA4MWFjYTI3ZWJlY2Q0ZjkzYWNjODI4NDQzYjM5ZWFiZmZhOWZhNGU5ZTQ1NDNiNDZmY2MzMWUyYjViNDgxNzc5MDNkZWE2OTY5YWM0YTJjYzY1NzA2NTAzOTBmMWIwOGQ0M2E0YzJmOTc1YzdlZDhiZjMzNTZjNzIxODM4MDIxMjQ1MWE4ZjExZGU0NjU1M2NiY2Q2NWI0MjU0ZGRiOGY2NjgzNGViMjFkZGEyYThmMzNiNTgxZTE0ODQ1NTdhY2ExYjk0ZWU4OTMxZGRmMTYwMzdiN2E3MTcxMzIxYTkxOTM2YWZjMjdmZmNlMzk1ZGU3NWQ1ZjcwY2I4YjVhZWUwNWZmNTA3MDg4ZDY1YWYxZTQzOTY2Y2Q0MmNiZTZmN2ZhY2Y4ZGFlMDU1ZGQ4MjIyYjE2OTY1MjE3MjNmODEyNDUxNzg1OTVjOTg1YWU5MTdmZDRiMzk5ODc3M2UxYTk3YjdiZDEwMDg1NDQ2ZjQyNTliY2MwOWE0NTQ5MjkyODJjMWI4OWI3MWVkNTg3YTc3NWUwYTNkNDUzNjM0MWY0NWRhZTk2OWU4MDZjOTZmZWZjNzEwNjc3NzZjMDJiYTIyMTIyYjkxOTliMTRjMGMyOGMwNDQ4NzUwOTA3MGI5N2YzZGQyZDZkOTcyNzMzMTgyMDE3NzMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTAyMTQ3YmRlZGRkMjQ0NGNkMWNkZmU1YzQxYTgxMDJjODliN2RmMmU2Y2JmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDA1YmVjZDg3MTk1YzFkZWZmOTBjMjRjOTEyNjliNTViM2YwNjliYzIyNWMzMjZjMzE0YzFhNTE3ODZmZmUxNGM4MzBiZTRlNGJjNzNjYmEzNmM5NzY3N2I0NDE2ODI3OWJlOTFlN2NkZjdjMTkzODZhZTIxODYyNzE5ZDEzYTNhMGZmZjA4MDNkNDYwOTYyZjJjZGE4MzcxNDg0ODczMjUyYzNkNzA1NGRiODE0M2UyYjA4MWEzODE2ZWQwODA0Y2E1MDk5YWU1ZmVjZTgzZDVjMmMzNzgzYjE5ODhiNGI0NmRjOTRlNTU1ODdhMTA3ZWExNTQ2YmYyMmQyOGEwOTdmNjUyYTQwNjZkYzI5NjUyNjkwNjlhZjJmNTE3NmJiOGNlOWNhNmQxMWY5Njc1N2YwMzIwNGY3NTY3MDM1ODdkMDBhZDQyNDc5NmM5MmZjN2FlYjZmNDk0NDMxOTk5ZWRhMzA5OTBlNGY1NzczNjMyZWQyNThmZTAyNzY2NzM1OTlkYTZmY2UzNWNkYWQ3NzI2YTBiYjAyNGNhZDk5NmI4OGUwY2I5ODg1NGNlYjVjMGI2ZWM3NDhkOWY5Y2U2YTZjZDQzNzg1OGJhY2I4MTQ2MThhMjcyZmYzYTQxNWM2ZTA3ZjNkYjA5ODg3NzdmZGVjODQ1YTk3YmY3ZDEwMmRkMCIKIAogUEtDUzcgUGFyc2UgRmFpbHVyZSBJbnZhbGlkIEFTTjE6IENoYW5nZSBsZW5ndGggZnJvbSAxMSB0byAxMiAjNTMuMAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHBrY3M3X2FzbjFfZmFpbDoiMzA4MjA1MDAwNjA5MmE4NjQ4ODZmNzBkMDEwNzAyYTA4MjA0ZjEzMDgyMDRlZDAyMDEwMTMxMGYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBjMDYwOTJhODY0ODg2ZjcwZDAxMDcwMWEwODIwMzRkMzA4MjAzNDkzMDgyMDIzMWEwMDMwMjAxMDIwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTMwMWUxNzBkMzIzMjMxMzAzMjM4MzEzNjMxMzAzNTM2NWExNzBkMzIzMzMxMzAzMjM4MzEzNjMxMzAzNTM2NWEzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEzMDgyMDEyMjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDAzODIwMTBmMDAzMDgyMDEwYTAyODIwMTAxMDBjOGI2Y2Y2OTg5OWNkMWYwZWJiNGNhNjQ1YzA1ZTcwZTBkMmVmZWRkY2M2MWQwODljYmQ1MTVhMzlhMzU3OWI5MjM0M2I2MWVjNzUwMDYwZmI0ZWQzNzg3NjMzMjQwMGU0MjVmMWQzNzZjN2U3NWMyOTczMzE0ZWRmNGJiMzBjOGY4ZGQwM2I5ZmNmZjk1NWEyNDVkNDkxMzdhZDZlNjAwNTZjYWMxOTU1MmE4NjVkNTIxODcxODdjYzA0MmM5YzQ5ZTNlM2E5YzE3YTUzNGI0NTNjZGFiYzBjYjExM2I0ZjYzZjViMzE3NGI5ZWU5OTAyYjE5MTBkMTE0OTZhMjc5YTc0MzI2YWRjZmVlMTBiZmQ5ZTdlYmFmYmIzNzdiZTliNjM5NTkxNjVkMTNkZDU3NTExNzFjYWRhZDNjMWQzYWRhYzY4YmM4MDExZDYxYjU0Y2Y2MDE3OGJlMzY4MzlhODlhYzkxYWI0MTllM2NhMzdkNmJhODgxZDI1NTE4YzRkYjY4YmNhNmY3YzgzNjAyZjY5OWE4NmIxN2ZiMWU3NzNiY2JlNzRiYjkzYTQ5YjI1MWFlODY0MjhiNTc0MGUxODY4YmIxZDZmYWI5ZTI4NzEyZTk4ZWMzMTlhZDhmY2E0ZDczMDEwYzRiMDljNGI4MDQ1ODk2MWU3Y2YwODM1MzAyMDMwMTAwMDFhMzUzMzA1MTMwMWQwNjAzNTUxZDBlMDQxNjA0MTQ4YWVlZTU5NDdjYzY3YzVkZDUxNWE3NmUyYTdlY2QzMWVlNTJmZGM4MzAxZjA2MDM1NTFkMjMwNDE4MzAxNjgwMTQ4YWVlZTU5NDdjYzY3YzVkZDUxNWE3NmUyYTdlY2QzMWVlNTJmZGM4MzAwZjA2MDM1NTFkMTMwMTAxZmYwNDA1MzAwMzAxMDFmZjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDAzODIwMTAxMDA4MjFkNmI5OGNkNDU3ZGViZDJiMDgxYWNhMjdlYmVjZDRmOTNhY2M4Mjg0NDNiMzllYWJmZmE5ZmE0ZTllNDU0M2I0NmZjYzMxZTJiNWI0ODE3NzkwM2RlYTY5NjlhYzRhMmNjNjU3MDY1MDM5MGYxYjA4ZDQzYTRjMmY5NzVjN2VkOGJmMzM1NmM3MjE4MzgwMjEyNDUxYThmMTFkZTQ2NTUzY2JjZDY1YjQyNTRkZGI4ZjY2ODM0ZWIyMWRkYTJhOGYzM2I1ODFlMTQ4NDU1N2FjYTFiOTRlZTg5MzFkZGYxNjAzN2I3YTcxNzEzMjFhOTE5MzZhZmMyN2ZmY2UzOTVkZTc1ZDVmNzBjYjhiNWFlZTA1ZmY1MDcwODhkNjVhZjFlNDM5NjZjZDQyY2JlNmY3ZmFjZjhkYWUwNTVkZDgyMjJiMTY5NjUyMTcyM2Y4MTI0NTE3ODU5NWM5ODVhZTkxN2ZkNGIzOTk4NzczZTFhOTdiN2JkMTAwODU0NDZmNDI1OWJjYzA5YTQ1NDkyOTI4MmMxYjg5YjcxZWQ1ODdhNzc1ZTBhM2Q0NTM2MzQxZjQ1ZGFlOTY5ZTgwNmM5NmZlZmM3MTA2Nzc3NmMwMmJhMjIxMjJiOTE5OWIxNGMwYzI4YzA0NDg3NTA5MDcwYjk3ZjNkZDJkNmQ5NzI3MzMxODIwMTc3MzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDViZWNkODcxOTVjMWRlZmY5MGMyNGM5MTI2OWI1NWIzZjA2OWJjMjI1YzMyNmMzMTRjMWE1MTc4NmZmZTE0YzgzMGJlNGU0YmM3M2NiYTM2Yzk3Njc3YjQ0MTY4Mjc5YmU5MWU3Y2RmN2MxOTM4NmFlMjE4NjI3MTlkMTNhM2EwZmZmMDgwM2Q0NjA5NjJmMmNkYTgzNzE0ODQ4NzMyNTJjM2Q3MDU0ZGI4MTQzZTJiMDgxYTM4MTZlZDA4MDRjYTUwOTlhZTVmZWNlODNkNWMyYzM3ODNiMTk4OGI0YjQ2ZGM5NGU1NTU4N2ExMDdlYTE1NDZiZjIyZDI4YTA5N2Y2NTJhNDA2NmRjMjk2NTI2OTA2OWFmMmY1MTc2YmI4Y2U5Y2E2ZDExZjk2NzU3ZjAzMjA0Zjc1NjcwMzU4N2QwMGFkNDI0Nzk2YzkyZmM3YWViNmY0OTQ0MzE5OTllZGEzMDk5MGU0ZjU3NzM2MzJlZDI1OGZlMDI3NjY3MzU5OWRhNmZjZTM1Y2RhZDc3MjZhMGJiMDI0Y2FkOTk2Yjg4ZTBjYjk4ODU0Y2ViNWMwYjZlYzc0OGQ5ZjljZTZhNmNkNDM3ODU4YmFjYjgxNDYxOGEyNzJmZjNhNDE1YzZlMDdmM2RiMDk4ODc3N2ZkZWM4NDVhOTdiZjdkMTAyZGQwIgogCiBQS0NTNyBQYXJzZSBGYWlsdXJlIEludmFsaWQgQVNOMTogQ2hhbmdlIGNvbnRlbnRzIG9mIHRhZyAzMCB0byBjb250YWluIG9uZSB1bmFjY291bnRlZCBleHRyYSBieXRlICM1NC4wCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NgogcGtjczdfYXNuMV9mYWlsOiIzMDgyMDUwMDA2MDkyYTg2NDg4NmY3MGQwMTA3MDJhMDgyMDRmMTMwODIwNGVkMDIwMTAxMzEwZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGMwNjA5MmE4NjQ4ODZmNzBkMDEwNzAxMDBhMDgyMDM0ZDMwODIwMzQ5MzA4MjAyMzFhMDAzMDIwMTAyMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEzMDFlMTcwZDMyMzIzMTMwMzIzODMxMzYzMTMwMzUzNjVhMTcwZDMyMzMzMTMwMzIzODMxMzYzMTMwMzUzNjVhMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMzA4MjAxMjIzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwMzgyMDEwZjAwMzA4MjAxMGEwMjgyMDEwMTAwYzhiNmNmNjk4OTljZDFmMGViYjRjYTY0NWMwNWU3MGUwZDJlZmVkZGNjNjFkMDg5Y2JkNTE1YTM5YTM1NzliOTIzNDNiNjFlYzc1MDA2MGZiNGVkMzc4NzYzMzI0MDBlNDI1ZjFkMzc2YzdlNzVjMjk3MzMxNGVkZjRiYjMwYzhmOGRkMDNiOWZjZmY5NTVhMjQ1ZDQ5MTM3YWQ2ZTYwMDU2Y2FjMTk1NTJhODY1ZDUyMTg3MTg3Y2MwNDJjOWM0OWUzZTNhOWMxN2E1MzRiNDUzY2RhYmMwY2IxMTNiNGY2M2Y1YjMxNzRiOWVlOTkwMmIxOTEwZDExNDk2YTI3OWE3NDMyNmFkY2ZlZTEwYmZkOWU3ZWJhZmJiMzc3YmU5YjYzOTU5MTY1ZDEzZGQ1NzUxMTcxY2FkYWQzYzFkM2FkYWM2OGJjODAxMWQ2MWI1NGNmNjAxNzhiZTM2ODM5YTg5YWM5MWFiNDE5ZTNjYTM3ZDZiYTg4MWQyNTUxOGM0ZGI2OGJjYTZmN2M4MzYwMmY2OTlhODZiMTdmYjFlNzczYmNiZTc0YmI5M2E0OWIyNTFhZTg2NDI4YjU3NDBlMTg2OGJiMWQ2ZmFiOWUyODcxMmU5OGVjMzE5YWQ4ZmNhNGQ3MzAxMGM0YjA5YzRiODA0NTg5NjFlN2NmMDgzNTMwMjAzMDEwMDAxYTM1MzMwNTEzMDFkMDYwMzU1MWQwZTA0MTYwNDE0OGFlZWU1OTQ3Y2M2N2M1ZGQ1MTVhNzZlMmE3ZWNkMzFlZTUyZmRjODMwMWYwNjAzNTUxZDIzMDQxODMwMTY4MDE0OGFlZWU1OTQ3Y2M2N2M1ZGQ1MTVhNzZlMmE3ZWNkMzFlZTUyZmRjODMwMGYwNjAzNTUxZDEzMDEwMWZmMDQwNTMwMDMwMTAxZmYzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAwMzgyMDEwMTAwODIxZDZiOThjZDQ1N2RlYmQyYjA4MWFjYTI3ZWJlY2Q0ZjkzYWNjODI4NDQzYjM5ZWFiZmZhOWZhNGU5ZTQ1NDNiNDZmY2MzMWUyYjViNDgxNzc5MDNkZWE2OTY5YWM0YTJjYzY1NzA2NTAzOTBmMWIwOGQ0M2E0YzJmOTc1YzdlZDhiZjMzNTZjNzIxODM4MDIxMjQ1MWE4ZjExZGU0NjU1M2NiY2Q2NWI0MjU0ZGRiOGY2NjgzNGViMjFkZGEyYThmMzNiNTgxZTE0ODQ1NTdhY2ExYjk0ZWU4OTMxZGRmMTYwMzdiN2E3MTcxMzIxYTkxOTM2YWZjMjdmZmNlMzk1ZGU3NWQ1ZjcwY2I4YjVhZWUwNWZmNTA3MDg4ZDY1YWYxZTQzOTY2Y2Q0MmNiZTZmN2ZhY2Y4ZGFlMDU1ZGQ4MjIyYjE2OTY1MjE3MjNmODEyNDUxNzg1OTVjOTg1YWU5MTdmZDRiMzk5ODc3M2UxYTk3YjdiZDEwMDg1NDQ2ZjQyNTliY2MwOWE0NTQ5MjkyODJjMWI4OWI3MWVkNTg3YTc3NWUwYTNkNDUzNjM0MWY0NWRhZTk2OWU4MDZjOTZmZWZjNzEwNjc3NzZjMDJiYTIyMTIyYjkxOTliMTRjMGMyOGMwNDQ4NzUwOTA3MGI5N2YzZGQyZDZkOTcyNzMzMTgyMDE3NzMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTAyMTQ3YmRlZGRkMjQ0NGNkMWNkZmU1YzQxYTgxMDJjODliN2RmMmU2Y2JmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDA1YmVjZDg3MTk1YzFkZWZmOTBjMjRjOTEyNjliNTViM2YwNjliYzIyNWMzMjZjMzE0YzFhNTE3ODZmZmUxNGM4MzBiZTRlNGJjNzNjYmEzNmM5NzY3N2I0NDE2ODI3OWJlOTFlN2NkZjdjMTkzODZhZTIxODYyNzE5ZDEzYTNhMGZmZjA4MDNkNDYwOTYyZjJjZGE4MzcxNDg0ODczMjUyYzNkNzA1NGRiODE0M2UyYjA4MWEzODE2ZWQwODA0Y2E1MDk5YWU1ZmVjZTgzZDVjMmMzNzgzYjE5ODhiNGI0NmRjOTRlNTU1ODdhMTA3ZWExNTQ2YmYyMmQyOGEwOTdmNjUyYTQwNjZkYzI5NjUyNjkwNjlhZjJmNTE3NmJiOGNlOWNhNmQxMWY5Njc1N2YwMzIwNGY3NTY3MDM1ODdkMDBhZDQyNDc5NmM5MmZjN2FlYjZmNDk0NDMxOTk5ZWRhMzA5OTBlNGY1NzczNjMyZWQyNThmZTAyNzY2NzM1OTlkYTZmY2UzNWNkYWQ3NzI2YTBiYjAyNGNhZDk5NmI4OGUwY2I5ODg1NGNlYjVjMGI2ZWM3NDhkOWY5Y2U2YTZjZDQzNzg1OGJhY2I4MTQ2MThhMjcyZmYzYTQxNWM2ZTA3ZjNkYjA5ODg3NzdmZGVjODQ1YTk3YmY3ZDEwMmRkMCIKIAogUEtDUzcgUGFyc2UgRmFpbHVyZSBJbnZhbGlkIEFTTjE6IENoYW5nZSBsZW5ndGggZnJvbSAxMSB0byAxMCAjNTUuMAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHBrY3M3X2FzbjFfZmFpbDoiMzA4MjA1MDAwNjA5MmE4NjQ4ODZmNzBkMDEwNzAyYTA4MjA0ZjEzMDgyMDRlZDAyMDEwMTMxMGYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBhMDYwOTJhODY0ODg2ZjcwZDAxMDcwMWEwODIwMzRkMzA4MjAzNDkzMDgyMDIzMWEwMDMwMjAxMDIwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTMwMWUxNzBkMzIzMjMxMzAzMjM4MzEzNjMxMzAzNTM2NWExNzBkMzIzMzMxMzAzMjM4MzEzNjMxMzAzNTM2NWEzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEzMDgyMDEyMjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDAzODIwMTBmMDAzMDgyMDEwYTAyODIwMTAxMDBjOGI2Y2Y2OTg5OWNkMWYwZWJiNGNhNjQ1YzA1ZTcwZTBkMmVmZWRkY2M2MWQwODljYmQ1MTVhMzlhMzU3OWI5MjM0M2I2MWVjNzUwMDYwZmI0ZWQzNzg3NjMzMjQwMGU0MjVmMWQzNzZjN2U3NWMyOTczMzE0ZWRmNGJiMzBjOGY4ZGQwM2I5ZmNmZjk1NWEyNDVkNDkxMzdhZDZlNjAwNTZjYWMxOTU1MmE4NjVkNTIxODcxODdjYzA0MmM5YzQ5ZTNlM2E5YzE3YTUzNGI0NTNjZGFiYzBjYjExM2I0ZjYzZjViMzE3NGI5ZWU5OTAyYjE5MTBkMTE0OTZhMjc5YTc0MzI2YWRjZmVlMTBiZmQ5ZTdlYmFmYmIzNzdiZTliNjM5NTkxNjVkMTNkZDU3NTExNzFjYWRhZDNjMWQzYWRhYzY4YmM4MDExZDYxYjU0Y2Y2MDE3OGJlMzY4MzlhODlhYzkxYWI0MTllM2NhMzdkNmJhODgxZDI1NTE4YzRkYjY4YmNhNmY3YzgzNjAyZjY5OWE4NmIxN2ZiMWU3NzNiY2JlNzRiYjkzYTQ5YjI1MWFlODY0MjhiNTc0MGUxODY4YmIxZDZmYWI5ZTI4NzEyZTk4ZWMzMTlhZDhmY2E0ZDczMDEwYzRiMDljNGI4MDQ1ODk2MWU3Y2YwODM1MzAyMDMwMTAwMDFhMzUzMzA1MTMwMWQwNjAzNTUxZDBlMDQxNjA0MTQ4YWVlZTU5NDdjYzY3YzVkZDUxNWE3NmUyYTdlY2QzMWVlNTJmZGM4MzAxZjA2MDM1NTFkMjMwNDE4MzAxNjgwMTQ4YWVlZTU5NDdjYzY3YzVkZDUxNWE3NmUyYTdlY2QzMWVlNTJmZGM4MzAwZjA2MDM1NTFkMTMwMTAxZmYwNDA1MzAwMzAxMDFmZjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDAzODIwMTAxMDA4MjFkNmI5OGNkNDU3ZGViZDJiMDgxYWNhMjdlYmVjZDRmOTNhY2M4Mjg0NDNiMzllYWJmZmE5ZmE0ZTllNDU0M2I0NmZjYzMxZTJiNWI0ODE3NzkwM2RlYTY5NjlhYzRhMmNjNjU3MDY1MDM5MGYxYjA4ZDQzYTRjMmY5NzVjN2VkOGJmMzM1NmM3MjE4MzgwMjEyNDUxYThmMTFkZTQ2NTUzY2JjZDY1YjQyNTRkZGI4ZjY2ODM0ZWIyMWRkYTJhOGYzM2I1ODFlMTQ4NDU1N2FjYTFiOTRlZTg5MzFkZGYxNjAzN2I3YTcxNzEzMjFhOTE5MzZhZmMyN2ZmY2UzOTVkZTc1ZDVmNzBjYjhiNWFlZTA1ZmY1MDcwODhkNjVhZjFlNDM5NjZjZDQyY2JlNmY3ZmFjZjhkYWUwNTVkZDgyMjJiMTY5NjUyMTcyM2Y4MTI0NTE3ODU5NWM5ODVhZTkxN2ZkNGIzOTk4NzczZTFhOTdiN2JkMTAwODU0NDZmNDI1OWJjYzA5YTQ1NDkyOTI4MmMxYjg5YjcxZWQ1ODdhNzc1ZTBhM2Q0NTM2MzQxZjQ1ZGFlOTY5ZTgwNmM5NmZlZmM3MTA2Nzc3NmMwMmJhMjIxMjJiOTE5OWIxNGMwYzI4YzA0NDg3NTA5MDcwYjk3ZjNkZDJkNmQ5NzI3MzMxODIwMTc3MzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDViZWNkODcxOTVjMWRlZmY5MGMyNGM5MTI2OWI1NWIzZjA2OWJjMjI1YzMyNmMzMTRjMWE1MTc4NmZmZTE0YzgzMGJlNGU0YmM3M2NiYTM2Yzk3Njc3YjQ0MTY4Mjc5YmU5MWU3Y2RmN2MxOTM4NmFlMjE4NjI3MTlkMTNhM2EwZmZmMDgwM2Q0NjA5NjJmMmNkYTgzNzE0ODQ4NzMyNTJjM2Q3MDU0ZGI4MTQzZTJiMDgxYTM4MTZlZDA4MDRjYTUwOTlhZTVmZWNlODNkNWMyYzM3ODNiMTk4OGI0YjQ2ZGM5NGU1NTU4N2ExMDdlYTE1NDZiZjIyZDI4YTA5N2Y2NTJhNDA2NmRjMjk2NTI2OTA2OWFmMmY1MTc2YmI4Y2U5Y2E2ZDExZjk2NzU3ZjAzMjA0Zjc1NjcwMzU4N2QwMGFkNDI0Nzk2YzkyZmM3YWViNmY0OTQ0MzE5OTllZGEzMDk5MGU0ZjU3NzM2MzJlZDI1OGZlMDI3NjY3MzU5OWRhNmZjZTM1Y2RhZDc3MjZhMGJiMDI0Y2FkOTk2Yjg4ZTBjYjk4ODU0Y2ViNWMwYjZlYzc0OGQ5ZjljZTZhNmNkNDM3ODU4YmFjYjgxNDYxOGEyNzJmZjNhNDE1YzZlMDdmM2RiMDk4ODc3N2ZkZWM4NDVhOTdiZjdkMTAyZGQwIgogCiBQS0NTNyBQYXJzZSBGYWlsdXJlIEludmFsaWQgQVNOMTogQ2hhbmdlIHRhZyAwNiB0byAwMiAjNTYuMAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHBrY3M3X2FzbjFfZmFpbDoiMzA4MjA1MDAwNjA5MmE4NjQ4ODZmNzBkMDEwNzAyYTA4MjA0ZjEzMDgyMDRlZDAyMDEwMTMxMGYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBiMDIwOTJhODY0ODg2ZjcwZDAxMDcwMWEwODIwMzRkMzA4MjAzNDkzMDgyMDIzMWEwMDMwMjAxMDIwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTMwMWUxNzBkMzIzMjMxMzAzMjM4MzEzNjMxMzAzNTM2NWExNzBkMzIzMzMxMzAzMjM4MzEzNjMxMzAzNTM2NWEzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEzMDgyMDEyMjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDAzODIwMTBmMDAzMDgyMDEwYTAyODIwMTAxMDBjOGI2Y2Y2OTg5OWNkMWYwZWJiNGNhNjQ1YzA1ZTcwZTBkMmVmZWRkY2M2MWQwODljYmQ1MTVhMzlhMzU3OWI5MjM0M2I2MWVjNzUwMDYwZmI0ZWQzNzg3NjMzMjQwMGU0MjVmMWQzNzZjN2U3NWMyOTczMzE0ZWRmNGJiMzBjOGY4ZGQwM2I5ZmNmZjk1NWEyNDVkNDkxMzdhZDZlNjAwNTZjYWMxOTU1MmE4NjVkNTIxODcxODdjYzA0MmM5YzQ5ZTNlM2E5YzE3YTUzNGI0NTNjZGFiYzBjYjExM2I0ZjYzZjViMzE3NGI5ZWU5OTAyYjE5MTBkMTE0OTZhMjc5YTc0MzI2YWRjZmVlMTBiZmQ5ZTdlYmFmYmIzNzdiZTliNjM5NTkxNjVkMTNkZDU3NTExNzFjYWRhZDNjMWQzYWRhYzY4YmM4MDExZDYxYjU0Y2Y2MDE3OGJlMzY4MzlhODlhYzkxYWI0MTllM2NhMzdkNmJhODgxZDI1NTE4YzRkYjY4YmNhNmY3YzgzNjAyZjY5OWE4NmIxN2ZiMWU3NzNiY2JlNzRiYjkzYTQ5YjI1MWFlODY0MjhiNTc0MGUxODY4YmIxZDZmYWI5ZTI4NzEyZTk4ZWMzMTlhZDhmY2E0ZDczMDEwYzRiMDljNGI4MDQ1ODk2MWU3Y2YwODM1MzAyMDMwMTAwMDFhMzUzMzA1MTMwMWQwNjAzNTUxZDBlMDQxNjA0MTQ4YWVlZTU5NDdjYzY3YzVkZDUxNWE3NmUyYTdlY2QzMWVlNTJmZGM4MzAxZjA2MDM1NTFkMjMwNDE4MzAxNjgwMTQ4YWVlZTU5NDdjYzY3YzVkZDUxNWE3NmUyYTdlY2QzMWVlNTJmZGM4MzAwZjA2MDM1NTFkMTMwMTAxZmYwNDA1MzAwMzAxMDFmZjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDAzODIwMTAxMDA4MjFkNmI5OGNkNDU3ZGViZDJiMDgxYWNhMjdlYmVjZDRmOTNhY2M4Mjg0NDNiMzllYWJmZmE5ZmE0ZTllNDU0M2I0NmZjYzMxZTJiNWI0ODE3NzkwM2RlYTY5NjlhYzRhMmNjNjU3MDY1MDM5MGYxYjA4ZDQzYTRjMmY5NzVjN2VkOGJmMzM1NmM3MjE4MzgwMjEyNDUxYThmMTFkZTQ2NTUzY2JjZDY1YjQyNTRkZGI4ZjY2ODM0ZWIyMWRkYTJhOGYzM2I1ODFlMTQ4NDU1N2FjYTFiOTRlZTg5MzFkZGYxNjAzN2I3YTcxNzEzMjFhOTE5MzZhZmMyN2ZmY2UzOTVkZTc1ZDVmNzBjYjhiNWFlZTA1ZmY1MDcwODhkNjVhZjFlNDM5NjZjZDQyY2JlNmY3ZmFjZjhkYWUwNTVkZDgyMjJiMTY5NjUyMTcyM2Y4MTI0NTE3ODU5NWM5ODVhZTkxN2ZkNGIzOTk4NzczZTFhOTdiN2JkMTAwODU0NDZmNDI1OWJjYzA5YTQ1NDkyOTI4MmMxYjg5YjcxZWQ1ODdhNzc1ZTBhM2Q0NTM2MzQxZjQ1ZGFlOTY5ZTgwNmM5NmZlZmM3MTA2Nzc3NmMwMmJhMjIxMjJiOTE5OWIxNGMwYzI4YzA0NDg3NTA5MDcwYjk3ZjNkZDJkNmQ5NzI3MzMxODIwMTc3MzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDViZWNkODcxOTVjMWRlZmY5MGMyNGM5MTI2OWI1NWIzZjA2OWJjMjI1YzMyNmMzMTRjMWE1MTc4NmZmZTE0YzgzMGJlNGU0YmM3M2NiYTM2Yzk3Njc3YjQ0MTY4Mjc5YmU5MWU3Y2RmN2MxOTM4NmFlMjE4NjI3MTlkMTNhM2EwZmZmMDgwM2Q0NjA5NjJmMmNkYTgzNzE0ODQ4NzMyNTJjM2Q3MDU0ZGI4MTQzZTJiMDgxYTM4MTZlZDA4MDRjYTUwOTlhZTVmZWNlODNkNWMyYzM3ODNiMTk4OGI0YjQ2ZGM5NGU1NTU4N2ExMDdlYTE1NDZiZjIyZDI4YTA5N2Y2NTJhNDA2NmRjMjk2NTI2OTA2OWFmMmY1MTc2YmI4Y2U5Y2E2ZDExZjk2NzU3ZjAzMjA0Zjc1NjcwMzU4N2QwMGFkNDI0Nzk2YzkyZmM3YWViNmY0OTQ0MzE5OTllZGEzMDk5MGU0ZjU3NzM2MzJlZDI1OGZlMDI3NjY3MzU5OWRhNmZjZTM1Y2RhZDc3MjZhMGJiMDI0Y2FkOTk2Yjg4ZTBjYjk4ODU0Y2ViNWMwYjZlYzc0OGQ5ZjljZTZhNmNkNDM3ODU4YmFjYjgxNDYxOGEyNzJmZjNhNDE1YzZlMDdmM2RiMDk4ODc3N2ZkZWM4NDVhOTdiZjdkMTAyZGQwIgogCiBQS0NTNyBQYXJzZSBGYWlsdXJlIEludmFsaWQgQVNOMTogQ2hhbmdlIGxlbmd0aCBmcm9tIDkgdG8gMTAgIzU3LjAKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBwa2NzN19hc24xX2ZhaWw6IjMwODIwNTAwMDYwOTJhODY0ODg2ZjcwZDAxMDcwMmEwODIwNGYxMzA4MjA0ZWQwMjAxMDEzMTBmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwYjA2MGEyYTg2NDg4NmY3MGQwMTA3MDFhMDgyMDM0ZDMwODIwMzQ5MzA4MjAyMzFhMDAzMDIwMTAyMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEzMDFlMTcwZDMyMzIzMTMwMzIzODMxMzYzMTMwMzUzNjVhMTcwZDMyMzMzMTMwMzIzODMxMzYzMTMwMzUzNjVhMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMzA4MjAxMjIzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwMzgyMDEwZjAwMzA4MjAxMGEwMjgyMDEwMTAwYzhiNmNmNjk4OTljZDFmMGViYjRjYTY0NWMwNWU3MGUwZDJlZmVkZGNjNjFkMDg5Y2JkNTE1YTM5YTM1NzliOTIzNDNiNjFlYzc1MDA2MGZiNGVkMzc4NzYzMzI0MDBlNDI1ZjFkMzc2YzdlNzVjMjk3MzMxNGVkZjRiYjMwYzhmOGRkMDNiOWZjZmY5NTVhMjQ1ZDQ5MTM3YWQ2ZTYwMDU2Y2FjMTk1NTJhODY1ZDUyMTg3MTg3Y2MwNDJjOWM0OWUzZTNhOWMxN2E1MzRiNDUzY2RhYmMwY2IxMTNiNGY2M2Y1YjMxNzRiOWVlOTkwMmIxOTEwZDExNDk2YTI3OWE3NDMyNmFkY2ZlZTEwYmZkOWU3ZWJhZmJiMzc3YmU5YjYzOTU5MTY1ZDEzZGQ1NzUxMTcxY2FkYWQzYzFkM2FkYWM2OGJjODAxMWQ2MWI1NGNmNjAxNzhiZTM2ODM5YTg5YWM5MWFiNDE5ZTNjYTM3ZDZiYTg4MWQyNTUxOGM0ZGI2OGJjYTZmN2M4MzYwMmY2OTlhODZiMTdmYjFlNzczYmNiZTc0YmI5M2E0OWIyNTFhZTg2NDI4YjU3NDBlMTg2OGJiMWQ2ZmFiOWUyODcxMmU5OGVjMzE5YWQ4ZmNhNGQ3MzAxMGM0YjA5YzRiODA0NTg5NjFlN2NmMDgzNTMwMjAzMDEwMDAxYTM1MzMwNTEzMDFkMDYwMzU1MWQwZTA0MTYwNDE0OGFlZWU1OTQ3Y2M2N2M1ZGQ1MTVhNzZlMmE3ZWNkMzFlZTUyZmRjODMwMWYwNjAzNTUxZDIzMDQxODMwMTY4MDE0OGFlZWU1OTQ3Y2M2N2M1ZGQ1MTVhNzZlMmE3ZWNkMzFlZTUyZmRjODMwMGYwNjAzNTUxZDEzMDEwMWZmMDQwNTMwMDMwMTAxZmYzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAwMzgyMDEwMTAwODIxZDZiOThjZDQ1N2RlYmQyYjA4MWFjYTI3ZWJlY2Q0ZjkzYWNjODI4NDQzYjM5ZWFiZmZhOWZhNGU5ZTQ1NDNiNDZmY2MzMWUyYjViNDgxNzc5MDNkZWE2OTY5YWM0YTJjYzY1NzA2NTAzOTBmMWIwOGQ0M2E0YzJmOTc1YzdlZDhiZjMzNTZjNzIxODM4MDIxMjQ1MWE4ZjExZGU0NjU1M2NiY2Q2NWI0MjU0ZGRiOGY2NjgzNGViMjFkZGEyYThmMzNiNTgxZTE0ODQ1NTdhY2ExYjk0ZWU4OTMxZGRmMTYwMzdiN2E3MTcxMzIxYTkxOTM2YWZjMjdmZmNlMzk1ZGU3NWQ1ZjcwY2I4YjVhZWUwNWZmNTA3MDg4ZDY1YWYxZTQzOTY2Y2Q0MmNiZTZmN2ZhY2Y4ZGFlMDU1ZGQ4MjIyYjE2OTY1MjE3MjNmODEyNDUxNzg1OTVjOTg1YWU5MTdmZDRiMzk5ODc3M2UxYTk3YjdiZDEwMDg1NDQ2ZjQyNTliY2MwOWE0NTQ5MjkyODJjMWI4OWI3MWVkNTg3YTc3NWUwYTNkNDUzNjM0MWY0NWRhZTk2OWU4MDZjOTZmZWZjNzEwNjc3NzZjMDJiYTIyMTIyYjkxOTliMTRjMGMyOGMwNDQ4NzUwOTA3MGI5N2YzZGQyZDZkOTcyNzMzMTgyMDE3NzMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTAyMTQ3YmRlZGRkMjQ0NGNkMWNkZmU1YzQxYTgxMDJjODliN2RmMmU2Y2JmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDA1YmVjZDg3MTk1YzFkZWZmOTBjMjRjOTEyNjliNTViM2YwNjliYzIyNWMzMjZjMzE0YzFhNTE3ODZmZmUxNGM4MzBiZTRlNGJjNzNjYmEzNmM5NzY3N2I0NDE2ODI3OWJlOTFlN2NkZjdjMTkzODZhZTIxODYyNzE5ZDEzYTNhMGZmZjA4MDNkNDYwOTYyZjJjZGE4MzcxNDg0ODczMjUyYzNkNzA1NGRiODE0M2UyYjA4MWEzODE2ZWQwODA0Y2E1MDk5YWU1ZmVjZTgzZDVjMmMzNzgzYjE5ODhiNGI0NmRjOTRlNTU1ODdhMTA3ZWExNTQ2YmYyMmQyOGEwOTdmNjUyYTQwNjZkYzI5NjUyNjkwNjlhZjJmNTE3NmJiOGNlOWNhNmQxMWY5Njc1N2YwMzIwNGY3NTY3MDM1ODdkMDBhZDQyNDc5NmM5MmZjN2FlYjZmNDk0NDMxOTk5ZWRhMzA5OTBlNGY1NzczNjMyZWQyNThmZTAyNzY2NzM1OTlkYTZmY2UzNWNkYWQ3NzI2YTBiYjAyNGNhZDk5NmI4OGUwY2I5ODg1NGNlYjVjMGI2ZWM3NDhkOWY5Y2U2YTZjZDQzNzg1OGJhY2I4MTQ2MThhMjcyZmYzYTQxNWM2ZTA3ZjNkYjA5ODg3NzdmZGVjODQ1YTk3YmY3ZDEwMmRkMCIKIAogUEtDUzcgUGFyc2UgRmFpbHVyZSBJbnZhbGlkIEFTTjE6IENoYW5nZSBsZW5ndGggZnJvbSA5IHRvIDggIzU4LjAKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBwa2NzN19hc24xX2ZhaWw6IjMwODIwNTAwMDYwOTJhODY0ODg2ZjcwZDAxMDcwMmEwODIwNGYxMzA4MjA0ZWQwMjAxMDEzMTBmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwYjA2MDgyYTg2NDg4NmY3MGQwMTA3MDFhMDgyMDM0ZDMwODIwMzQ5MzA4MjAyMzFhMDAzMDIwMTAyMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEzMDFlMTcwZDMyMzIzMTMwMzIzODMxMzYzMTMwMzUzNjVhMTcwZDMyMzMzMTMwMzIzODMxMzYzMTMwMzUzNjVhMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMzA4MjAxMjIzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwMzgyMDEwZjAwMzA4MjAxMGEwMjgyMDEwMTAwYzhiNmNmNjk4OTljZDFmMGViYjRjYTY0NWMwNWU3MGUwZDJlZmVkZGNjNjFkMDg5Y2JkNTE1YTM5YTM1NzliOTIzNDNiNjFlYzc1MDA2MGZiNGVkMzc4NzYzMzI0MDBlNDI1ZjFkMzc2YzdlNzVjMjk3MzMxNGVkZjRiYjMwYzhmOGRkMDNiOWZjZmY5NTVhMjQ1ZDQ5MTM3YWQ2ZTYwMDU2Y2FjMTk1NTJhODY1ZDUyMTg3MTg3Y2MwNDJjOWM0OWUzZTNhOWMxN2E1MzRiNDUzY2RhYmMwY2IxMTNiNGY2M2Y1YjMxNzRiOWVlOTkwMmIxOTEwZDExNDk2YTI3OWE3NDMyNmFkY2ZlZTEwYmZkOWU3ZWJhZmJiMzc3YmU5YjYzOTU5MTY1ZDEzZGQ1NzUxMTcxY2FkYWQzYzFkM2FkYWM2OGJjODAxMWQ2MWI1NGNmNjAxNzhiZTM2ODM5YTg5YWM5MWFiNDE5ZTNjYTM3ZDZiYTg4MWQyNTUxOGM0ZGI2OGJjYTZmN2M4MzYwMmY2OTlhODZiMTdmYjFlNzczYmNiZTc0YmI5M2E0OWIyNTFhZTg2NDI4YjU3NDBlMTg2OGJiMWQ2ZmFiOWUyODcxMmU5OGVjMzE5YWQ4ZmNhNGQ3MzAxMGM0YjA5YzRiODA0NTg5NjFlN2NmMDgzNTMwMjAzMDEwMDAxYTM1MzMwNTEzMDFkMDYwMzU1MWQwZTA0MTYwNDE0OGFlZWU1OTQ3Y2M2N2M1ZGQ1MTVhNzZlMmE3ZWNkMzFlZTUyZmRjODMwMWYwNjAzNTUxZDIzMDQxODMwMTY4MDE0OGFlZWU1OTQ3Y2M2N2M1ZGQ1MTVhNzZlMmE3ZWNkMzFlZTUyZmRjODMwMGYwNjAzNTUxZDEzMDEwMWZmMDQwNTMwMDMwMTAxZmYzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAwMzgyMDEwMTAwODIxZDZiOThjZDQ1N2RlYmQyYjA4MWFjYTI3ZWJlY2Q0ZjkzYWNjODI4NDQzYjM5ZWFiZmZhOWZhNGU5ZTQ1NDNiNDZmY2MzMWUyYjViNDgxNzc5MDNkZWE2OTY5YWM0YTJjYzY1NzA2NTAzOTBmMWIwOGQ0M2E0YzJmOTc1YzdlZDhiZjMzNTZjNzIxODM4MDIxMjQ1MWE4ZjExZGU0NjU1M2NiY2Q2NWI0MjU0ZGRiOGY2NjgzNGViMjFkZGEyYThmMzNiNTgxZTE0ODQ1NTdhY2ExYjk0ZWU4OTMxZGRmMTYwMzdiN2E3MTcxMzIxYTkxOTM2YWZjMjdmZmNlMzk1ZGU3NWQ1ZjcwY2I4YjVhZWUwNWZmNTA3MDg4ZDY1YWYxZTQzOTY2Y2Q0MmNiZTZmN2ZhY2Y4ZGFlMDU1ZGQ4MjIyYjE2OTY1MjE3MjNmODEyNDUxNzg1OTVjOTg1YWU5MTdmZDRiMzk5ODc3M2UxYTk3YjdiZDEwMDg1NDQ2ZjQyNTliY2MwOWE0NTQ5MjkyODJjMWI4OWI3MWVkNTg3YTc3NWUwYTNkNDUzNjM0MWY0NWRhZTk2OWU4MDZjOTZmZWZjNzEwNjc3NzZjMDJiYTIyMTIyYjkxOTliMTRjMGMyOGMwNDQ4NzUwOTA3MGI5N2YzZGQyZDZkOTcyNzMzMTgyMDE3NzMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTAyMTQ3YmRlZGRkMjQ0NGNkMWNkZmU1YzQxYTgxMDJjODliN2RmMmU2Y2JmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDA1YmVjZDg3MTk1YzFkZWZmOTBjMjRjOTEyNjliNTViM2YwNjliYzIyNWMzMjZjMzE0YzFhNTE3ODZmZmUxNGM4MzBiZTRlNGJjNzNjYmEzNmM5NzY3N2I0NDE2ODI3OWJlOTFlN2NkZjdjMTkzODZhZTIxODYyNzE5ZDEzYTNhMGZmZjA4MDNkNDYwOTYyZjJjZGE4MzcxNDg0ODczMjUyYzNkNzA1NGRiODE0M2UyYjA4MWEzODE2ZWQwODA0Y2E1MDk5YWU1ZmVjZTgzZDVjMmMzNzgzYjE5ODhiNGI0NmRjOTRlNTU1ODdhMTA3ZWExNTQ2YmYyMmQyOGEwOTdmNjUyYTQwNjZkYzI5NjUyNjkwNjlhZjJmNTE3NmJiOGNlOWNhNmQxMWY5Njc1N2YwMzIwNGY3NTY3MDM1ODdkMDBhZDQyNDc5NmM5MmZjN2FlYjZmNDk0NDMxOTk5ZWRhMzA5OTBlNGY1NzczNjMyZWQyNThmZTAyNzY2NzM1OTlkYTZmY2UzNWNkYWQ3NzI2YTBiYjAyNGNhZDk5NmI4OGUwY2I5ODg1NGNlYjVjMGI2ZWM3NDhkOWY5Y2U2YTZjZDQzNzg1OGJhY2I4MTQ2MThhMjcyZmYzYTQxNWM2ZTA3ZjNkYjA5ODg3NzdmZGVjODQ1YTk3YmY3ZDEwMmRkMCIKIAogUEtDUzcgUGFyc2UgRmFpbHVyZSBJbnZhbGlkIEFTTjE6IENoYW5nZSB0YWcgYTAgdG8gMDIgIzU5LjAKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBwa2NzN19hc24xX2ZhaWw6IjMwODIwNTAwMDYwOTJhODY0ODg2ZjcwZDAxMDcwMmEwODIwNGYxMzA4MjA0ZWQwMjAxMDEzMTBmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwYjA2MDkyYTg2NDg4NmY3MGQwMTA3MDEwMjgyMDM0ZDMwODIwMzQ5MzA4MjAyMzFhMDAzMDIwMTAyMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEzMDFlMTcwZDMyMzIzMTMwMzIzODMxMzYzMTMwMzUzNjVhMTcwZDMyMzMzMTMwMzIzODMxMzYzMTMwMzUzNjVhMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMzA4MjAxMjIzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwMzgyMDEwZjAwMzA4MjAxMGEwMjgyMDEwMTAwYzhiNmNmNjk4OTljZDFmMGViYjRjYTY0NWMwNWU3MGUwZDJlZmVkZGNjNjFkMDg5Y2JkNTE1YTM5YTM1NzliOTIzNDNiNjFlYzc1MDA2MGZiNGVkMzc4NzYzMzI0MDBlNDI1ZjFkMzc2YzdlNzVjMjk3MzMxNGVkZjRiYjMwYzhmOGRkMDNiOWZjZmY5NTVhMjQ1ZDQ5MTM3YWQ2ZTYwMDU2Y2FjMTk1NTJhODY1ZDUyMTg3MTg3Y2MwNDJjOWM0OWUzZTNhOWMxN2E1MzRiNDUzY2RhYmMwY2IxMTNiNGY2M2Y1YjMxNzRiOWVlOTkwMmIxOTEwZDExNDk2YTI3OWE3NDMyNmFkY2ZlZTEwYmZkOWU3ZWJhZmJiMzc3YmU5YjYzOTU5MTY1ZDEzZGQ1NzUxMTcxY2FkYWQzYzFkM2FkYWM2OGJjODAxMWQ2MWI1NGNmNjAxNzhiZTM2ODM5YTg5YWM5MWFiNDE5ZTNjYTM3ZDZiYTg4MWQyNTUxOGM0ZGI2OGJjYTZmN2M4MzYwMmY2OTlhODZiMTdmYjFlNzczYmNiZTc0YmI5M2E0OWIyNTFhZTg2NDI4YjU3NDBlMTg2OGJiMWQ2ZmFiOWUyODcxMmU5OGVjMzE5YWQ4ZmNhNGQ3MzAxMGM0YjA5YzRiODA0NTg5NjFlN2NmMDgzNTMwMjAzMDEwMDAxYTM1MzMwNTEzMDFkMDYwMzU1MWQwZTA0MTYwNDE0OGFlZWU1OTQ3Y2M2N2M1ZGQ1MTVhNzZlMmE3ZWNkMzFlZTUyZmRjODMwMWYwNjAzNTUxZDIzMDQxODMwMTY4MDE0OGFlZWU1OTQ3Y2M2N2M1ZGQ1MTVhNzZlMmE3ZWNkMzFlZTUyZmRjODMwMGYwNjAzNTUxZDEzMDEwMWZmMDQwNTMwMDMwMTAxZmYzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAwMzgyMDEwMTAwODIxZDZiOThjZDQ1N2RlYmQyYjA4MWFjYTI3ZWJlY2Q0ZjkzYWNjODI4NDQzYjM5ZWFiZmZhOWZhNGU5ZTQ1NDNiNDZmY2MzMWUyYjViNDgxNzc5MDNkZWE2OTY5YWM0YTJjYzY1NzA2NTAzOTBmMWIwOGQ0M2E0YzJmOTc1YzdlZDhiZjMzNTZjNzIxODM4MDIxMjQ1MWE4ZjExZGU0NjU1M2NiY2Q2NWI0MjU0ZGRiOGY2NjgzNGViMjFkZGEyYThmMzNiNTgxZTE0ODQ1NTdhY2ExYjk0ZWU4OTMxZGRmMTYwMzdiN2E3MTcxMzIxYTkxOTM2YWZjMjdmZmNlMzk1ZGU3NWQ1ZjcwY2I4YjVhZWUwNWZmNTA3MDg4ZDY1YWYxZTQzOTY2Y2Q0MmNiZTZmN2ZhY2Y4ZGFlMDU1ZGQ4MjIyYjE2OTY1MjE3MjNmODEyNDUxNzg1OTVjOTg1YWU5MTdmZDRiMzk5ODc3M2UxYTk3YjdiZDEwMDg1NDQ2ZjQyNTliY2MwOWE0NTQ5MjkyODJjMWI4OWI3MWVkNTg3YTc3NWUwYTNkNDUzNjM0MWY0NWRhZTk2OWU4MDZjOTZmZWZjNzEwNjc3NzZjMDJiYTIyMTIyYjkxOTliMTRjMGMyOGMwNDQ4NzUwOTA3MGI5N2YzZGQyZDZkOTcyNzMzMTgyMDE3NzMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTAyMTQ3YmRlZGRkMjQ0NGNkMWNkZmU1YzQxYTgxMDJjODliN2RmMmU2Y2JmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDA1YmVjZDg3MTk1YzFkZWZmOTBjMjRjOTEyNjliNTViM2YwNjliYzIyNWMzMjZjMzE0YzFhNTE3ODZmZmUxNGM4MzBiZTRlNGJjNzNjYmEzNmM5NzY3N2I0NDE2ODI3OWJlOTFlN2NkZjdjMTkzODZhZTIxODYyNzE5ZDEzYTNhMGZmZjA4MDNkNDYwOTYyZjJjZGE4MzcxNDg0ODczMjUyYzNkNzA1NGRiODE0M2UyYjA4MWEzODE2ZWQwODA0Y2E1MDk5YWU1ZmVjZTgzZDVjMmMzNzgzYjE5ODhiNGI0NmRjOTRlNTU1ODdhMTA3ZWExNTQ2YmYyMmQyOGEwOTdmNjUyYTQwNjZkYzI5NjUyNjkwNjlhZjJmNTE3NmJiOGNlOWNhNmQxMWY5Njc1N2YwMzIwNGY3NTY3MDM1ODdkMDBhZDQyNDc5NmM5MmZjN2FlYjZmNDk0NDMxOTk5ZWRhMzA5OTBlNGY1NzczNjMyZWQyNThmZTAyNzY2NzM1OTlkYTZmY2UzNWNkYWQ3NzI2YTBiYjAyNGNhZDk5NmI4OGUwY2I5ODg1NGNlYjVjMGI2ZWM3NDhkOWY5Y2U2YTZjZDQzNzg1OGJhY2I4MTQ2MThhMjcyZmYzYTQxNWM2ZTA3ZjNkYjA5ODg3NzdmZGVjODQ1YTk3YmY3ZDEwMmRkMCIKIAogUEtDUzcgUGFyc2UgRmFpbHVyZSBJbnZhbGlkIEFTTjE6IENoYW5nZSBsZW5ndGggZnJvbSA4NDUgdG8gODQ2ICM2MC4wCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NgogcGtjczdfYXNuMV9mYWlsOiIzMDgyMDUwMDA2MDkyYTg2NDg4NmY3MGQwMTA3MDJhMDgyMDRmMTMwODIwNGVkMDIwMTAxMzEwZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGIwNjA5MmE4NjQ4ODZmNzBkMDEwNzAxYTA4MjAzNGUzMDgyMDM0OTMwODIwMjMxYTAwMzAyMDEwMjAyMTQ3YmRlZGRkMjQ0NGNkMWNkZmU1YzQxYTgxMDJjODliN2RmMmU2Y2JmMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMzAxZTE3MGQzMjMyMzEzMDMyMzgzMTM2MzEzMDM1MzY1YTE3MGQzMjMzMzEzMDMyMzgzMTM2MzEzMDM1MzY1YTMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTMwODIwMTIyMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDM4MjAxMGYwMDMwODIwMTBhMDI4MjAxMDEwMGM4YjZjZjY5ODk5Y2QxZjBlYmI0Y2E2NDVjMDVlNzBlMGQyZWZlZGRjYzYxZDA4OWNiZDUxNWEzOWEzNTc5YjkyMzQzYjYxZWM3NTAwNjBmYjRlZDM3ODc2MzMyNDAwZTQyNWYxZDM3NmM3ZTc1YzI5NzMzMTRlZGY0YmIzMGM4ZjhkZDAzYjlmY2ZmOTU1YTI0NWQ0OTEzN2FkNmU2MDA1NmNhYzE5NTUyYTg2NWQ1MjE4NzE4N2NjMDQyYzljNDllM2UzYTljMTdhNTM0YjQ1M2NkYWJjMGNiMTEzYjRmNjNmNWIzMTc0YjllZTk5MDJiMTkxMGQxMTQ5NmEyNzlhNzQzMjZhZGNmZWUxMGJmZDllN2ViYWZiYjM3N2JlOWI2Mzk1OTE2NWQxM2RkNTc1MTE3MWNhZGFkM2MxZDNhZGFjNjhiYzgwMTFkNjFiNTRjZjYwMTc4YmUzNjgzOWE4OWFjOTFhYjQxOWUzY2EzN2Q2YmE4ODFkMjU1MThjNGRiNjhiY2E2ZjdjODM2MDJmNjk5YTg2YjE3ZmIxZTc3M2JjYmU3NGJiOTNhNDliMjUxYWU4NjQyOGI1NzQwZTE4NjhiYjFkNmZhYjllMjg3MTJlOThlYzMxOWFkOGZjYTRkNzMwMTBjNGIwOWM0YjgwNDU4OTYxZTdjZjA4MzUzMDIwMzAxMDAwMWEzNTMzMDUxMzAxZDA2MDM1NTFkMGUwNDE2MDQxNDhhZWVlNTk0N2NjNjdjNWRkNTE1YTc2ZTJhN2VjZDMxZWU1MmZkYzgzMDFmMDYwMzU1MWQyMzA0MTgzMDE2ODAxNDhhZWVlNTk0N2NjNjdjNWRkNTE1YTc2ZTJhN2VjZDMxZWU1MmZkYzgzMDBmMDYwMzU1MWQxMzAxMDFmZjA0MDUzMDAzMDEwMWZmMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMDM4MjAxMDEwMDgyMWQ2Yjk4Y2Q0NTdkZWJkMmIwODFhY2EyN2ViZWNkNGY5M2FjYzgyODQ0M2IzOWVhYmZmYTlmYTRlOWU0NTQzYjQ2ZmNjMzFlMmI1YjQ4MTc3OTAzZGVhNjk2OWFjNGEyY2M2NTcwNjUwMzkwZjFiMDhkNDNhNGMyZjk3NWM3ZWQ4YmYzMzU2YzcyMTgzODAyMTI0NTFhOGYxMWRlNDY1NTNjYmNkNjViNDI1NGRkYjhmNjY4MzRlYjIxZGRhMmE4ZjMzYjU4MWUxNDg0NTU3YWNhMWI5NGVlODkzMWRkZjE2MDM3YjdhNzE3MTMyMWE5MTkzNmFmYzI3ZmZjZTM5NWRlNzVkNWY3MGNiOGI1YWVlMDVmZjUwNzA4OGQ2NWFmMWU0Mzk2NmNkNDJjYmU2ZjdmYWNmOGRhZTA1NWRkODIyMmIxNjk2NTIxNzIzZjgxMjQ1MTc4NTk1Yzk4NWFlOTE3ZmQ0YjM5OTg3NzNlMWE5N2I3YmQxMDA4NTQ0NmY0MjU5YmNjMDlhNDU0OTI5MjgyYzFiODliNzFlZDU4N2E3NzVlMGEzZDQ1MzYzNDFmNDVkYWU5NjllODA2Yzk2ZmVmYzcxMDY3Nzc2YzAyYmEyMjEyMmI5MTk5YjE0YzBjMjhjMDQ0ODc1MDkwNzBiOTdmM2RkMmQ2ZDk3MjczMzE4MjAxNzczMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwNWJlY2Q4NzE5NWMxZGVmZjkwYzI0YzkxMjY5YjU1YjNmMDY5YmMyMjVjMzI2YzMxNGMxYTUxNzg2ZmZlMTRjODMwYmU0ZTRiYzczY2JhMzZjOTc2NzdiNDQxNjgyNzliZTkxZTdjZGY3YzE5Mzg2YWUyMTg2MjcxOWQxM2EzYTBmZmYwODAzZDQ2MDk2MmYyY2RhODM3MTQ4NDg3MzI1MmMzZDcwNTRkYjgxNDNlMmIwODFhMzgxNmVkMDgwNGNhNTA5OWFlNWZlY2U4M2Q1YzJjMzc4M2IxOTg4YjRiNDZkYzk0ZTU1NTg3YTEwN2VhMTU0NmJmMjJkMjhhMDk3ZjY1MmE0MDY2ZGMyOTY1MjY5MDY5YWYyZjUxNzZiYjhjZTljYTZkMTFmOTY3NTdmMDMyMDRmNzU2NzAzNTg3ZDAwYWQ0MjQ3OTZjOTJmYzdhZWI2ZjQ5NDQzMTk5OWVkYTMwOTkwZTRmNTc3MzYzMmVkMjU4ZmUwMjc2NjczNTk5ZGE2ZmNlMzVjZGFkNzcyNmEwYmIwMjRjYWQ5OTZiODhlMGNiOTg4NTRjZWI1YzBiNmVjNzQ4ZDlmOWNlNmE2Y2Q0Mzc4NThiYWNiODE0NjE4YTI3MmZmM2E0MTVjNmUwN2YzZGIwOTg4Nzc3ZmRlYzg0NWE5N2JmN2QxMDJkZDAiCiAKIFBLQ1M3IFBhcnNlIEZhaWx1cmUgSW52YWxpZCBBU04xOiBDaGFuZ2UgY29udGVudHMgb2YgdGFnIGEwIHRvIGNvbnRhaW4gb25lIHVuYWNjb3VudGVkIGV4dHJhIGJ5dGUgIzYxLjAKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBwa2NzN19hc24xX2ZhaWw6IjMwODIwNTAwMDYwOTJhODY0ODg2ZjcwZDAxMDcwMmEwODIwNGYxMzA4MjA0ZWQwMjAxMDEzMTBmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwYjA2MDkyYTg2NDg4NmY3MGQwMTA3MDFhMDgyMDM0ZTMwODIwMzQ5MzA4MjAyMzFhMDAzMDIwMTAyMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEzMDFlMTcwZDMyMzIzMTMwMzIzODMxMzYzMTMwMzUzNjVhMTcwZDMyMzMzMTMwMzIzODMxMzYzMTMwMzUzNjVhMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMzA4MjAxMjIzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwMzgyMDEwZjAwMzA4MjAxMGEwMjgyMDEwMTAwYzhiNmNmNjk4OTljZDFmMGViYjRjYTY0NWMwNWU3MGUwZDJlZmVkZGNjNjFkMDg5Y2JkNTE1YTM5YTM1NzliOTIzNDNiNjFlYzc1MDA2MGZiNGVkMzc4NzYzMzI0MDBlNDI1ZjFkMzc2YzdlNzVjMjk3MzMxNGVkZjRiYjMwYzhmOGRkMDNiOWZjZmY5NTVhMjQ1ZDQ5MTM3YWQ2ZTYwMDU2Y2FjMTk1NTJhODY1ZDUyMTg3MTg3Y2MwNDJjOWM0OWUzZTNhOWMxN2E1MzRiNDUzY2RhYmMwY2IxMTNiNGY2M2Y1YjMxNzRiOWVlOTkwMmIxOTEwZDExNDk2YTI3OWE3NDMyNmFkY2ZlZTEwYmZkOWU3ZWJhZmJiMzc3YmU5YjYzOTU5MTY1ZDEzZGQ1NzUxMTcxY2FkYWQzYzFkM2FkYWM2OGJjODAxMWQ2MWI1NGNmNjAxNzhiZTM2ODM5YTg5YWM5MWFiNDE5ZTNjYTM3ZDZiYTg4MWQyNTUxOGM0ZGI2OGJjYTZmN2M4MzYwMmY2OTlhODZiMTdmYjFlNzczYmNiZTc0YmI5M2E0OWIyNTFhZTg2NDI4YjU3NDBlMTg2OGJiMWQ2ZmFiOWUyODcxMmU5OGVjMzE5YWQ4ZmNhNGQ3MzAxMGM0YjA5YzRiODA0NTg5NjFlN2NmMDgzNTMwMjAzMDEwMDAxYTM1MzMwNTEzMDFkMDYwMzU1MWQwZTA0MTYwNDE0OGFlZWU1OTQ3Y2M2N2M1ZGQ1MTVhNzZlMmE3ZWNkMzFlZTUyZmRjODMwMWYwNjAzNTUxZDIzMDQxODMwMTY4MDE0OGFlZWU1OTQ3Y2M2N2M1ZGQ1MTVhNzZlMmE3ZWNkMzFlZTUyZmRjODMwMGYwNjAzNTUxZDEzMDEwMWZmMDQwNTMwMDMwMTAxZmYzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAwMzgyMDEwMTAwODIxZDZiOThjZDQ1N2RlYmQyYjA4MWFjYTI3ZWJlY2Q0ZjkzYWNjODI4NDQzYjM5ZWFiZmZhOWZhNGU5ZTQ1NDNiNDZmY2MzMWUyYjViNDgxNzc5MDNkZWE2OTY5YWM0YTJjYzY1NzA2NTAzOTBmMWIwOGQ0M2E0YzJmOTc1YzdlZDhiZjMzNTZjNzIxODM4MDIxMjQ1MWE4ZjExZGU0NjU1M2NiY2Q2NWI0MjU0ZGRiOGY2NjgzNGViMjFkZGEyYThmMzNiNTgxZTE0ODQ1NTdhY2ExYjk0ZWU4OTMxZGRmMTYwMzdiN2E3MTcxMzIxYTkxOTM2YWZjMjdmZmNlMzk1ZGU3NWQ1ZjcwY2I4YjVhZWUwNWZmNTA3MDg4ZDY1YWYxZTQzOTY2Y2Q0MmNiZTZmN2ZhY2Y4ZGFlMDU1ZGQ4MjIyYjE2OTY1MjE3MjNmODEyNDUxNzg1OTVjOTg1YWU5MTdmZDRiMzk5ODc3M2UxYTk3YjdiZDEwMDg1NDQ2ZjQyNTliY2MwOWE0NTQ5MjkyODJjMWI4OWI3MWVkNTg3YTc3NWUwYTNkNDUzNjM0MWY0NWRhZTk2OWU4MDZjOTZmZWZjNzEwNjc3NzZjMDJiYTIyMTIyYjkxOTliMTRjMGMyOGMwNDQ4NzUwOTA3MGI5N2YzZGQyZDZkOTcyNzMwMDMxODIwMTc3MzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDViZWNkODcxOTVjMWRlZmY5MGMyNGM5MTI2OWI1NWIzZjA2OWJjMjI1YzMyNmMzMTRjMWE1MTc4NmZmZTE0YzgzMGJlNGU0YmM3M2NiYTM2Yzk3Njc3YjQ0MTY4Mjc5YmU5MWU3Y2RmN2MxOTM4NmFlMjE4NjI3MTlkMTNhM2EwZmZmMDgwM2Q0NjA5NjJmMmNkYTgzNzE0ODQ4NzMyNTJjM2Q3MDU0ZGI4MTQzZTJiMDgxYTM4MTZlZDA4MDRjYTUwOTlhZTVmZWNlODNkNWMyYzM3ODNiMTk4OGI0YjQ2ZGM5NGU1NTU4N2ExMDdlYTE1NDZiZjIyZDI4YTA5N2Y2NTJhNDA2NmRjMjk2NTI2OTA2OWFmMmY1MTc2YmI4Y2U5Y2E2ZDExZjk2NzU3ZjAzMjA0Zjc1NjcwMzU4N2QwMGFkNDI0Nzk2YzkyZmM3YWViNmY0OTQ0MzE5OTllZGEzMDk5MGU0ZjU3NzM2MzJlZDI1OGZlMDI3NjY3MzU5OWRhNmZjZTM1Y2RhZDc3MjZhMGJiMDI0Y2FkOTk2Yjg4ZTBjYjk4ODU0Y2ViNWMwYjZlYzc0OGQ5ZjljZTZhNmNkNDM3ODU4YmFjYjgxNDYxOGEyNzJmZjNhNDE1YzZlMDdmM2RiMDk4ODc3N2ZkZWM4NDVhOTdiZjdkMTAyZGQwIgogCiBQS0NTNyBQYXJzZSBGYWlsdXJlIEludmFsaWQgQVNOMTogQ2hhbmdlIGxlbmd0aCBmcm9tIDg0NSB0byA4NDQgIzYyLjAKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBwa2NzN19hc24xX2ZhaWw6IjMwODIwNTAwMDYwOTJhODY0ODg2ZjcwZDAxMDcwMmEwODIwNGYxMzA4MjA0ZWQwMjAxMDEzMTBmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwYjA2MDkyYTg2NDg4NmY3MGQwMTA3MDFhMDgyMDM0YzMwODIwMzQ5MzA4MjAyMzFhMDAzMDIwMTAyMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEzMDFlMTcwZDMyMzIzMTMwMzIzODMxMzYzMTMwMzUzNjVhMTcwZDMyMzMzMTMwMzIzODMxMzYzMTMwMzUzNjVhMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMzA4MjAxMjIzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwMzgyMDEwZjAwMzA4MjAxMGEwMjgyMDEwMTAwYzhiNmNmNjk4OTljZDFmMGViYjRjYTY0NWMwNWU3MGUwZDJlZmVkZGNjNjFkMDg5Y2JkNTE1YTM5YTM1NzliOTIzNDNiNjFlYzc1MDA2MGZiNGVkMzc4NzYzMzI0MDBlNDI1ZjFkMzc2YzdlNzVjMjk3MzMxNGVkZjRiYjMwYzhmOGRkMDNiOWZjZmY5NTVhMjQ1ZDQ5MTM3YWQ2ZTYwMDU2Y2FjMTk1NTJhODY1ZDUyMTg3MTg3Y2MwNDJjOWM0OWUzZTNhOWMxN2E1MzRiNDUzY2RhYmMwY2IxMTNiNGY2M2Y1YjMxNzRiOWVlOTkwMmIxOTEwZDExNDk2YTI3OWE3NDMyNmFkY2ZlZTEwYmZkOWU3ZWJhZmJiMzc3YmU5YjYzOTU5MTY1ZDEzZGQ1NzUxMTcxY2FkYWQzYzFkM2FkYWM2OGJjODAxMWQ2MWI1NGNmNjAxNzhiZTM2ODM5YTg5YWM5MWFiNDE5ZTNjYTM3ZDZiYTg4MWQyNTUxOGM0ZGI2OGJjYTZmN2M4MzYwMmY2OTlhODZiMTdmYjFlNzczYmNiZTc0YmI5M2E0OWIyNTFhZTg2NDI4YjU3NDBlMTg2OGJiMWQ2ZmFiOWUyODcxMmU5OGVjMzE5YWQ4ZmNhNGQ3MzAxMGM0YjA5YzRiODA0NTg5NjFlN2NmMDgzNTMwMjAzMDEwMDAxYTM1MzMwNTEzMDFkMDYwMzU1MWQwZTA0MTYwNDE0OGFlZWU1OTQ3Y2M2N2M1ZGQ1MTVhNzZlMmE3ZWNkMzFlZTUyZmRjODMwMWYwNjAzNTUxZDIzMDQxODMwMTY4MDE0OGFlZWU1OTQ3Y2M2N2M1ZGQ1MTVhNzZlMmE3ZWNkMzFlZTUyZmRjODMwMGYwNjAzNTUxZDEzMDEwMWZmMDQwNTMwMDMwMTAxZmYzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAwMzgyMDEwMTAwODIxZDZiOThjZDQ1N2RlYmQyYjA4MWFjYTI3ZWJlY2Q0ZjkzYWNjODI4NDQzYjM5ZWFiZmZhOWZhNGU5ZTQ1NDNiNDZmY2MzMWUyYjViNDgxNzc5MDNkZWE2OTY5YWM0YTJjYzY1NzA2NTAzOTBmMWIwOGQ0M2E0YzJmOTc1YzdlZDhiZjMzNTZjNzIxODM4MDIxMjQ1MWE4ZjExZGU0NjU1M2NiY2Q2NWI0MjU0ZGRiOGY2NjgzNGViMjFkZGEyYThmMzNiNTgxZTE0ODQ1NTdhY2ExYjk0ZWU4OTMxZGRmMTYwMzdiN2E3MTcxMzIxYTkxOTM2YWZjMjdmZmNlMzk1ZGU3NWQ1ZjcwY2I4YjVhZWUwNWZmNTA3MDg4ZDY1YWYxZTQzOTY2Y2Q0MmNiZTZmN2ZhY2Y4ZGFlMDU1ZGQ4MjIyYjE2OTY1MjE3MjNmODEyNDUxNzg1OTVjOTg1YWU5MTdmZDRiMzk5ODc3M2UxYTk3YjdiZDEwMDg1NDQ2ZjQyNTliY2MwOWE0NTQ5MjkyODJjMWI4OWI3MWVkNTg3YTc3NWUwYTNkNDUzNjM0MWY0NWRhZTk2OWU4MDZjOTZmZWZjNzEwNjc3NzZjMDJiYTIyMTIyYjkxOTliMTRjMGMyOGMwNDQ4NzUwOTA3MGI5N2YzZGQyZDZkOTcyNzMzMTgyMDE3NzMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTAyMTQ3YmRlZGRkMjQ0NGNkMWNkZmU1YzQxYTgxMDJjODliN2RmMmU2Y2JmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDA1YmVjZDg3MTk1YzFkZWZmOTBjMjRjOTEyNjliNTViM2YwNjliYzIyNWMzMjZjMzE0YzFhNTE3ODZmZmUxNGM4MzBiZTRlNGJjNzNjYmEzNmM5NzY3N2I0NDE2ODI3OWJlOTFlN2NkZjdjMTkzODZhZTIxODYyNzE5ZDEzYTNhMGZmZjA4MDNkNDYwOTYyZjJjZGE4MzcxNDg0ODczMjUyYzNkNzA1NGRiODE0M2UyYjA4MWEzODE2ZWQwODA0Y2E1MDk5YWU1ZmVjZTgzZDVjMmMzNzgzYjE5ODhiNGI0NmRjOTRlNTU1ODdhMTA3ZWExNTQ2YmYyMmQyOGEwOTdmNjUyYTQwNjZkYzI5NjUyNjkwNjlhZjJmNTE3NmJiOGNlOWNhNmQxMWY5Njc1N2YwMzIwNGY3NTY3MDM1ODdkMDBhZDQyNDc5NmM5MmZjN2FlYjZmNDk0NDMxOTk5ZWRhMzA5OTBlNGY1NzczNjMyZWQyNThmZTAyNzY2NzM1OTlkYTZmY2UzNWNkYWQ3NzI2YTBiYjAyNGNhZDk5NmI4OGUwY2I5ODg1NGNlYjVjMGI2ZWM3NDhkOWY5Y2U2YTZjZDQzNzg1OGJhY2I4MTQ2MThhMjcyZmYzYTQxNWM2ZTA3ZjNkYjA5ODg3NzdmZGVjODQ1YTk3YmY3ZDEwMmRkMCIKIAogUEtDUzcgUGFyc2UgRmFpbHVyZSBJbnZhbGlkIEFTTjE6IENoYW5nZSB0YWcgMzAgdG8gMDIgIzYzLjAKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBwa2NzN19hc24xX2ZhaWw6IjMwODIwNTAwMDYwOTJhODY0ODg2ZjcwZDAxMDcwMmEwODIwNGYxMzA4MjA0ZWQwMjAxMDEzMTBmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwYjA2MDkyYTg2NDg4NmY3MGQwMTA3MDFhMDgyMDM0ZDAyODIwMzQ5MzA4MjAyMzFhMDAzMDIwMTAyMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEzMDFlMTcwZDMyMzIzMTMwMzIzODMxMzYzMTMwMzUzNjVhMTcwZDMyMzMzMTMwMzIzODMxMzYzMTMwMzUzNjVhMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMzA4MjAxMjIzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwMzgyMDEwZjAwMzA4MjAxMGEwMjgyMDEwMTAwYzhiNmNmNjk4OTljZDFmMGViYjRjYTY0NWMwNWU3MGUwZDJlZmVkZGNjNjFkMDg5Y2JkNTE1YTM5YTM1NzliOTIzNDNiNjFlYzc1MDA2MGZiNGVkMzc4NzYzMzI0MDBlNDI1ZjFkMzc2YzdlNzVjMjk3MzMxNGVkZjRiYjMwYzhmOGRkMDNiOWZjZmY5NTVhMjQ1ZDQ5MTM3YWQ2ZTYwMDU2Y2FjMTk1NTJhODY1ZDUyMTg3MTg3Y2MwNDJjOWM0OWUzZTNhOWMxN2E1MzRiNDUzY2RhYmMwY2IxMTNiNGY2M2Y1YjMxNzRiOWVlOTkwMmIxOTEwZDExNDk2YTI3OWE3NDMyNmFkY2ZlZTEwYmZkOWU3ZWJhZmJiMzc3YmU5YjYzOTU5MTY1ZDEzZGQ1NzUxMTcxY2FkYWQzYzFkM2FkYWM2OGJjODAxMWQ2MWI1NGNmNjAxNzhiZTM2ODM5YTg5YWM5MWFiNDE5ZTNjYTM3ZDZiYTg4MWQyNTUxOGM0ZGI2OGJjYTZmN2M4MzYwMmY2OTlhODZiMTdmYjFlNzczYmNiZTc0YmI5M2E0OWIyNTFhZTg2NDI4YjU3NDBlMTg2OGJiMWQ2ZmFiOWUyODcxMmU5OGVjMzE5YWQ4ZmNhNGQ3MzAxMGM0YjA5YzRiODA0NTg5NjFlN2NmMDgzNTMwMjAzMDEwMDAxYTM1MzMwNTEzMDFkMDYwMzU1MWQwZTA0MTYwNDE0OGFlZWU1OTQ3Y2M2N2M1ZGQ1MTVhNzZlMmE3ZWNkMzFlZTUyZmRjODMwMWYwNjAzNTUxZDIzMDQxODMwMTY4MDE0OGFlZWU1OTQ3Y2M2N2M1ZGQ1MTVhNzZlMmE3ZWNkMzFlZTUyZmRjODMwMGYwNjAzNTUxZDEzMDEwMWZmMDQwNTMwMDMwMTAxZmYzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAwMzgyMDEwMTAwODIxZDZiOThjZDQ1N2RlYmQyYjA4MWFjYTI3ZWJlY2Q0ZjkzYWNjODI4NDQzYjM5ZWFiZmZhOWZhNGU5ZTQ1NDNiNDZmY2MzMWUyYjViNDgxNzc5MDNkZWE2OTY5YWM0YTJjYzY1NzA2NTAzOTBmMWIwOGQ0M2E0YzJmOTc1YzdlZDhiZjMzNTZjNzIxODM4MDIxMjQ1MWE4ZjExZGU0NjU1M2NiY2Q2NWI0MjU0ZGRiOGY2NjgzNGViMjFkZGEyYThmMzNiNTgxZTE0ODQ1NTdhY2ExYjk0ZWU4OTMxZGRmMTYwMzdiN2E3MTcxMzIxYTkxOTM2YWZjMjdmZmNlMzk1ZGU3NWQ1ZjcwY2I4YjVhZWUwNWZmNTA3MDg4ZDY1YWYxZTQzOTY2Y2Q0MmNiZTZmN2ZhY2Y4ZGFlMDU1ZGQ4MjIyYjE2OTY1MjE3MjNmODEyNDUxNzg1OTVjOTg1YWU5MTdmZDRiMzk5ODc3M2UxYTk3YjdiZDEwMDg1NDQ2ZjQyNTliY2MwOWE0NTQ5MjkyODJjMWI4OWI3MWVkNTg3YTc3NWUwYTNkNDUzNjM0MWY0NWRhZTk2OWU4MDZjOTZmZWZjNzEwNjc3NzZjMDJiYTIyMTIyYjkxOTliMTRjMGMyOGMwNDQ4NzUwOTA3MGI5N2YzZGQyZDZkOTcyNzMzMTgyMDE3NzMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTAyMTQ3YmRlZGRkMjQ0NGNkMWNkZmU1YzQxYTgxMDJjODliN2RmMmU2Y2JmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDA1YmVjZDg3MTk1YzFkZWZmOTBjMjRjOTEyNjliNTViM2YwNjliYzIyNWMzMjZjMzE0YzFhNTE3ODZmZmUxNGM4MzBiZTRlNGJjNzNjYmEzNmM5NzY3N2I0NDE2ODI3OWJlOTFlN2NkZjdjMTkzODZhZTIxODYyNzE5ZDEzYTNhMGZmZjA4MDNkNDYwOTYyZjJjZGE4MzcxNDg0ODczMjUyYzNkNzA1NGRiODE0M2UyYjA4MWEzODE2ZWQwODA0Y2E1MDk5YWU1ZmVjZTgzZDVjMmMzNzgzYjE5ODhiNGI0NmRjOTRlNTU1ODdhMTA3ZWExNTQ2YmYyMmQyOGEwOTdmNjUyYTQwNjZkYzI5NjUyNjkwNjlhZjJmNTE3NmJiOGNlOWNhNmQxMWY5Njc1N2YwMzIwNGY3NTY3MDM1ODdkMDBhZDQyNDc5NmM5MmZjN2FlYjZmNDk0NDMxOTk5ZWRhMzA5OTBlNGY1NzczNjMyZWQyNThmZTAyNzY2NzM1OTlkYTZmY2UzNWNkYWQ3NzI2YTBiYjAyNGNhZDk5NmI4OGUwY2I5ODg1NGNlYjVjMGI2ZWM3NDhkOWY5Y2U2YTZjZDQzNzg1OGJhY2I4MTQ2MThhMjcyZmYzYTQxNWM2ZTA3ZjNkYjA5ODg3NzdmZGVjODQ1YTk3YmY3ZDEwMmRkMCIKIAogUEtDUzcgUGFyc2UgRmFpbHVyZSBJbnZhbGlkIEFTTjE6IENoYW5nZSBsZW5ndGggZnJvbSA4NDEgdG8gODQyICM2NC4wCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NgogcGtjczdfYXNuMV9mYWlsOiIzMDgyMDUwMDA2MDkyYTg2NDg4NmY3MGQwMTA3MDJhMDgyMDRmMTMwODIwNGVkMDIwMTAxMzEwZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGIwNjA5MmE4NjQ4ODZmNzBkMDEwNzAxYTA4MjAzNGQzMDgyMDM0YTMwODIwMjMxYTAwMzAyMDEwMjAyMTQ3YmRlZGRkMjQ0NGNkMWNkZmU1YzQxYTgxMDJjODliN2RmMmU2Y2JmMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMzAxZTE3MGQzMjMyMzEzMDMyMzgzMTM2MzEzMDM1MzY1YTE3MGQzMjMzMzEzMDMyMzgzMTM2MzEzMDM1MzY1YTMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTMwODIwMTIyMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDM4MjAxMGYwMDMwODIwMTBhMDI4MjAxMDEwMGM4YjZjZjY5ODk5Y2QxZjBlYmI0Y2E2NDVjMDVlNzBlMGQyZWZlZGRjYzYxZDA4OWNiZDUxNWEzOWEzNTc5YjkyMzQzYjYxZWM3NTAwNjBmYjRlZDM3ODc2MzMyNDAwZTQyNWYxZDM3NmM3ZTc1YzI5NzMzMTRlZGY0YmIzMGM4ZjhkZDAzYjlmY2ZmOTU1YTI0NWQ0OTEzN2FkNmU2MDA1NmNhYzE5NTUyYTg2NWQ1MjE4NzE4N2NjMDQyYzljNDllM2UzYTljMTdhNTM0YjQ1M2NkYWJjMGNiMTEzYjRmNjNmNWIzMTc0YjllZTk5MDJiMTkxMGQxMTQ5NmEyNzlhNzQzMjZhZGNmZWUxMGJmZDllN2ViYWZiYjM3N2JlOWI2Mzk1OTE2NWQxM2RkNTc1MTE3MWNhZGFkM2MxZDNhZGFjNjhiYzgwMTFkNjFiNTRjZjYwMTc4YmUzNjgzOWE4OWFjOTFhYjQxOWUzY2EzN2Q2YmE4ODFkMjU1MThjNGRiNjhiY2E2ZjdjODM2MDJmNjk5YTg2YjE3ZmIxZTc3M2JjYmU3NGJiOTNhNDliMjUxYWU4NjQyOGI1NzQwZTE4NjhiYjFkNmZhYjllMjg3MTJlOThlYzMxOWFkOGZjYTRkNzMwMTBjNGIwOWM0YjgwNDU4OTYxZTdjZjA4MzUzMDIwMzAxMDAwMWEzNTMzMDUxMzAxZDA2MDM1NTFkMGUwNDE2MDQxNDhhZWVlNTk0N2NjNjdjNWRkNTE1YTc2ZTJhN2VjZDMxZWU1MmZkYzgzMDFmMDYwMzU1MWQyMzA0MTgzMDE2ODAxNDhhZWVlNTk0N2NjNjdjNWRkNTE1YTc2ZTJhN2VjZDMxZWU1MmZkYzgzMDBmMDYwMzU1MWQxMzAxMDFmZjA0MDUzMDAzMDEwMWZmMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMDM4MjAxMDEwMDgyMWQ2Yjk4Y2Q0NTdkZWJkMmIwODFhY2EyN2ViZWNkNGY5M2FjYzgyODQ0M2IzOWVhYmZmYTlmYTRlOWU0NTQzYjQ2ZmNjMzFlMmI1YjQ4MTc3OTAzZGVhNjk2OWFjNGEyY2M2NTcwNjUwMzkwZjFiMDhkNDNhNGMyZjk3NWM3ZWQ4YmYzMzU2YzcyMTgzODAyMTI0NTFhOGYxMWRlNDY1NTNjYmNkNjViNDI1NGRkYjhmNjY4MzRlYjIxZGRhMmE4ZjMzYjU4MWUxNDg0NTU3YWNhMWI5NGVlODkzMWRkZjE2MDM3YjdhNzE3MTMyMWE5MTkzNmFmYzI3ZmZjZTM5NWRlNzVkNWY3MGNiOGI1YWVlMDVmZjUwNzA4OGQ2NWFmMWU0Mzk2NmNkNDJjYmU2ZjdmYWNmOGRhZTA1NWRkODIyMmIxNjk2NTIxNzIzZjgxMjQ1MTc4NTk1Yzk4NWFlOTE3ZmQ0YjM5OTg3NzNlMWE5N2I3YmQxMDA4NTQ0NmY0MjU5YmNjMDlhNDU0OTI5MjgyYzFiODliNzFlZDU4N2E3NzVlMGEzZDQ1MzYzNDFmNDVkYWU5NjllODA2Yzk2ZmVmYzcxMDY3Nzc2YzAyYmEyMjEyMmI5MTk5YjE0YzBjMjhjMDQ0ODc1MDkwNzBiOTdmM2RkMmQ2ZDk3MjczMzE4MjAxNzczMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwNWJlY2Q4NzE5NWMxZGVmZjkwYzI0YzkxMjY5YjU1YjNmMDY5YmMyMjVjMzI2YzMxNGMxYTUxNzg2ZmZlMTRjODMwYmU0ZTRiYzczY2JhMzZjOTc2NzdiNDQxNjgyNzliZTkxZTdjZGY3YzE5Mzg2YWUyMTg2MjcxOWQxM2EzYTBmZmYwODAzZDQ2MDk2MmYyY2RhODM3MTQ4NDg3MzI1MmMzZDcwNTRkYjgxNDNlMmIwODFhMzgxNmVkMDgwNGNhNTA5OWFlNWZlY2U4M2Q1YzJjMzc4M2IxOTg4YjRiNDZkYzk0ZTU1NTg3YTEwN2VhMTU0NmJmMjJkMjhhMDk3ZjY1MmE0MDY2ZGMyOTY1MjY5MDY5YWYyZjUxNzZiYjhjZTljYTZkMTFmOTY3NTdmMDMyMDRmNzU2NzAzNTg3ZDAwYWQ0MjQ3OTZjOTJmYzdhZWI2ZjQ5NDQzMTk5OWVkYTMwOTkwZTRmNTc3MzYzMmVkMjU4ZmUwMjc2NjczNTk5ZGE2ZmNlMzVjZGFkNzcyNmEwYmIwMjRjYWQ5OTZiODhlMGNiOTg4NTRjZWI1YzBiNmVjNzQ4ZDlmOWNlNmE2Y2Q0Mzc4NThiYWNiODE0NjE4YTI3MmZmM2E0MTVjNmUwN2YzZGIwOTg4Nzc3ZmRlYzg0NWE5N2JmN2QxMDJkZDAiCiAKIFBLQ1M3IFBhcnNlIEZhaWx1cmUgSW52YWxpZCBBU04xOiBDaGFuZ2UgY29udGVudHMgb2YgdGFnIDMwIHRvIGNvbnRhaW4gb25lIHVuYWNjb3VudGVkIGV4dHJhIGJ5dGUgIzY1LjAKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBwa2NzN19hc24xX2ZhaWw6IjMwODIwNTAwMDYwOTJhODY0ODg2ZjcwZDAxMDcwMmEwODIwNGYxMzA4MjA0ZWQwMjAxMDEzMTBmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwYjA2MDkyYTg2NDg4NmY3MGQwMTA3MDFhMDgyMDM0ZDMwODIwMzRhMzA4MjAyMzFhMDAzMDIwMTAyMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEzMDFlMTcwZDMyMzIzMTMwMzIzODMxMzYzMTMwMzUzNjVhMTcwZDMyMzMzMTMwMzIzODMxMzYzMTMwMzUzNjVhMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMzA4MjAxMjIzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwMzgyMDEwZjAwMzA4MjAxMGEwMjgyMDEwMTAwYzhiNmNmNjk4OTljZDFmMGViYjRjYTY0NWMwNWU3MGUwZDJlZmVkZGNjNjFkMDg5Y2JkNTE1YTM5YTM1NzliOTIzNDNiNjFlYzc1MDA2MGZiNGVkMzc4NzYzMzI0MDBlNDI1ZjFkMzc2YzdlNzVjMjk3MzMxNGVkZjRiYjMwYzhmOGRkMDNiOWZjZmY5NTVhMjQ1ZDQ5MTM3YWQ2ZTYwMDU2Y2FjMTk1NTJhODY1ZDUyMTg3MTg3Y2MwNDJjOWM0OWUzZTNhOWMxN2E1MzRiNDUzY2RhYmMwY2IxMTNiNGY2M2Y1YjMxNzRiOWVlOTkwMmIxOTEwZDExNDk2YTI3OWE3NDMyNmFkY2ZlZTEwYmZkOWU3ZWJhZmJiMzc3YmU5YjYzOTU5MTY1ZDEzZGQ1NzUxMTcxY2FkYWQzYzFkM2FkYWM2OGJjODAxMWQ2MWI1NGNmNjAxNzhiZTM2ODM5YTg5YWM5MWFiNDE5ZTNjYTM3ZDZiYTg4MWQyNTUxOGM0ZGI2OGJjYTZmN2M4MzYwMmY2OTlhODZiMTdmYjFlNzczYmNiZTc0YmI5M2E0OWIyNTFhZTg2NDI4YjU3NDBlMTg2OGJiMWQ2ZmFiOWUyODcxMmU5OGVjMzE5YWQ4ZmNhNGQ3MzAxMGM0YjA5YzRiODA0NTg5NjFlN2NmMDgzNTMwMjAzMDEwMDAxYTM1MzMwNTEzMDFkMDYwMzU1MWQwZTA0MTYwNDE0OGFlZWU1OTQ3Y2M2N2M1ZGQ1MTVhNzZlMmE3ZWNkMzFlZTUyZmRjODMwMWYwNjAzNTUxZDIzMDQxODMwMTY4MDE0OGFlZWU1OTQ3Y2M2N2M1ZGQ1MTVhNzZlMmE3ZWNkMzFlZTUyZmRjODMwMGYwNjAzNTUxZDEzMDEwMWZmMDQwNTMwMDMwMTAxZmYzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAwMzgyMDEwMTAwODIxZDZiOThjZDQ1N2RlYmQyYjA4MWFjYTI3ZWJlY2Q0ZjkzYWNjODI4NDQzYjM5ZWFiZmZhOWZhNGU5ZTQ1NDNiNDZmY2MzMWUyYjViNDgxNzc5MDNkZWE2OTY5YWM0YTJjYzY1NzA2NTAzOTBmMWIwOGQ0M2E0YzJmOTc1YzdlZDhiZjMzNTZjNzIxODM4MDIxMjQ1MWE4ZjExZGU0NjU1M2NiY2Q2NWI0MjU0ZGRiOGY2NjgzNGViMjFkZGEyYThmMzNiNTgxZTE0ODQ1NTdhY2ExYjk0ZWU4OTMxZGRmMTYwMzdiN2E3MTcxMzIxYTkxOTM2YWZjMjdmZmNlMzk1ZGU3NWQ1ZjcwY2I4YjVhZWUwNWZmNTA3MDg4ZDY1YWYxZTQzOTY2Y2Q0MmNiZTZmN2ZhY2Y4ZGFlMDU1ZGQ4MjIyYjE2OTY1MjE3MjNmODEyNDUxNzg1OTVjOTg1YWU5MTdmZDRiMzk5ODc3M2UxYTk3YjdiZDEwMDg1NDQ2ZjQyNTliY2MwOWE0NTQ5MjkyODJjMWI4OWI3MWVkNTg3YTc3NWUwYTNkNDUzNjM0MWY0NWRhZTk2OWU4MDZjOTZmZWZjNzEwNjc3NzZjMDJiYTIyMTIyYjkxOTliMTRjMGMyOGMwNDQ4NzUwOTA3MGI5N2YzZGQyZDZkOTcyNzMwMDMxODIwMTc3MzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDViZWNkODcxOTVjMWRlZmY5MGMyNGM5MTI2OWI1NWIzZjA2OWJjMjI1YzMyNmMzMTRjMWE1MTc4NmZmZTE0YzgzMGJlNGU0YmM3M2NiYTM2Yzk3Njc3YjQ0MTY4Mjc5YmU5MWU3Y2RmN2MxOTM4NmFlMjE4NjI3MTlkMTNhM2EwZmZmMDgwM2Q0NjA5NjJmMmNkYTgzNzE0ODQ4NzMyNTJjM2Q3MDU0ZGI4MTQzZTJiMDgxYTM4MTZlZDA4MDRjYTUwOTlhZTVmZWNlODNkNWMyYzM3ODNiMTk4OGI0YjQ2ZGM5NGU1NTU4N2ExMDdlYTE1NDZiZjIyZDI4YTA5N2Y2NTJhNDA2NmRjMjk2NTI2OTA2OWFmMmY1MTc2YmI4Y2U5Y2E2ZDExZjk2NzU3ZjAzMjA0Zjc1NjcwMzU4N2QwMGFkNDI0Nzk2YzkyZmM3YWViNmY0OTQ0MzE5OTllZGEzMDk5MGU0ZjU3NzM2MzJlZDI1OGZlMDI3NjY3MzU5OWRhNmZjZTM1Y2RhZDc3MjZhMGJiMDI0Y2FkOTk2Yjg4ZTBjYjk4ODU0Y2ViNWMwYjZlYzc0OGQ5ZjljZTZhNmNkNDM3ODU4YmFjYjgxNDYxOGEyNzJmZjNhNDE1YzZlMDdmM2RiMDk4ODc3N2ZkZWM4NDVhOTdiZjdkMTAyZGQwIgogCiBQS0NTNyBQYXJzZSBGYWlsdXJlIEludmFsaWQgQVNOMTogQ2hhbmdlIGxlbmd0aCBmcm9tIDg0MSB0byA4NDAgIzY2LjAKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBwa2NzN19hc24xX2ZhaWw6IjMwODIwNTAwMDYwOTJhODY0ODg2ZjcwZDAxMDcwMmEwODIwNGYxMzA4MjA0ZWQwMjAxMDEzMTBmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwYjA2MDkyYTg2NDg4NmY3MGQwMTA3MDFhMDgyMDM0ZDMwODIwMzQ4MzA4MjAyMzFhMDAzMDIwMTAyMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEzMDFlMTcwZDMyMzIzMTMwMzIzODMxMzYzMTMwMzUzNjVhMTcwZDMyMzMzMTMwMzIzODMxMzYzMTMwMzUzNjVhMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMzA4MjAxMjIzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwMzgyMDEwZjAwMzA4MjAxMGEwMjgyMDEwMTAwYzhiNmNmNjk4OTljZDFmMGViYjRjYTY0NWMwNWU3MGUwZDJlZmVkZGNjNjFkMDg5Y2JkNTE1YTM5YTM1NzliOTIzNDNiNjFlYzc1MDA2MGZiNGVkMzc4NzYzMzI0MDBlNDI1ZjFkMzc2YzdlNzVjMjk3MzMxNGVkZjRiYjMwYzhmOGRkMDNiOWZjZmY5NTVhMjQ1ZDQ5MTM3YWQ2ZTYwMDU2Y2FjMTk1NTJhODY1ZDUyMTg3MTg3Y2MwNDJjOWM0OWUzZTNhOWMxN2E1MzRiNDUzY2RhYmMwY2IxMTNiNGY2M2Y1YjMxNzRiOWVlOTkwMmIxOTEwZDExNDk2YTI3OWE3NDMyNmFkY2ZlZTEwYmZkOWU3ZWJhZmJiMzc3YmU5YjYzOTU5MTY1ZDEzZGQ1NzUxMTcxY2FkYWQzYzFkM2FkYWM2OGJjODAxMWQ2MWI1NGNmNjAxNzhiZTM2ODM5YTg5YWM5MWFiNDE5ZTNjYTM3ZDZiYTg4MWQyNTUxOGM0ZGI2OGJjYTZmN2M4MzYwMmY2OTlhODZiMTdmYjFlNzczYmNiZTc0YmI5M2E0OWIyNTFhZTg2NDI4YjU3NDBlMTg2OGJiMWQ2ZmFiOWUyODcxMmU5OGVjMzE5YWQ4ZmNhNGQ3MzAxMGM0YjA5YzRiODA0NTg5NjFlN2NmMDgzNTMwMjAzMDEwMDAxYTM1MzMwNTEzMDFkMDYwMzU1MWQwZTA0MTYwNDE0OGFlZWU1OTQ3Y2M2N2M1ZGQ1MTVhNzZlMmE3ZWNkMzFlZTUyZmRjODMwMWYwNjAzNTUxZDIzMDQxODMwMTY4MDE0OGFlZWU1OTQ3Y2M2N2M1ZGQ1MTVhNzZlMmE3ZWNkMzFlZTUyZmRjODMwMGYwNjAzNTUxZDEzMDEwMWZmMDQwNTMwMDMwMTAxZmYzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAwMzgyMDEwMTAwODIxZDZiOThjZDQ1N2RlYmQyYjA4MWFjYTI3ZWJlY2Q0ZjkzYWNjODI4NDQzYjM5ZWFiZmZhOWZhNGU5ZTQ1NDNiNDZmY2MzMWUyYjViNDgxNzc5MDNkZWE2OTY5YWM0YTJjYzY1NzA2NTAzOTBmMWIwOGQ0M2E0YzJmOTc1YzdlZDhiZjMzNTZjNzIxODM4MDIxMjQ1MWE4ZjExZGU0NjU1M2NiY2Q2NWI0MjU0ZGRiOGY2NjgzNGViMjFkZGEyYThmMzNiNTgxZTE0ODQ1NTdhY2ExYjk0ZWU4OTMxZGRmMTYwMzdiN2E3MTcxMzIxYTkxOTM2YWZjMjdmZmNlMzk1ZGU3NWQ1ZjcwY2I4YjVhZWUwNWZmNTA3MDg4ZDY1YWYxZTQzOTY2Y2Q0MmNiZTZmN2ZhY2Y4ZGFlMDU1ZGQ4MjIyYjE2OTY1MjE3MjNmODEyNDUxNzg1OTVjOTg1YWU5MTdmZDRiMzk5ODc3M2UxYTk3YjdiZDEwMDg1NDQ2ZjQyNTliY2MwOWE0NTQ5MjkyODJjMWI4OWI3MWVkNTg3YTc3NWUwYTNkNDUzNjM0MWY0NWRhZTk2OWU4MDZjOTZmZWZjNzEwNjc3NzZjMDJiYTIyMTIyYjkxOTliMTRjMGMyOGMwNDQ4NzUwOTA3MGI5N2YzZGQyZDZkOTcyNzMzMTgyMDE3NzMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTAyMTQ3YmRlZGRkMjQ0NGNkMWNkZmU1YzQxYTgxMDJjODliN2RmMmU2Y2JmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDA1YmVjZDg3MTk1YzFkZWZmOTBjMjRjOTEyNjliNTViM2YwNjliYzIyNWMzMjZjMzE0YzFhNTE3ODZmZmUxNGM4MzBiZTRlNGJjNzNjYmEzNmM5NzY3N2I0NDE2ODI3OWJlOTFlN2NkZjdjMTkzODZhZTIxODYyNzE5ZDEzYTNhMGZmZjA4MDNkNDYwOTYyZjJjZGE4MzcxNDg0ODczMjUyYzNkNzA1NGRiODE0M2UyYjA4MWEzODE2ZWQwODA0Y2E1MDk5YWU1ZmVjZTgzZDVjMmMzNzgzYjE5ODhiNGI0NmRjOTRlNTU1ODdhMTA3ZWExNTQ2YmYyMmQyOGEwOTdmNjUyYTQwNjZkYzI5NjUyNjkwNjlhZjJmNTE3NmJiOGNlOWNhNmQxMWY5Njc1N2YwMzIwNGY3NTY3MDM1ODdkMDBhZDQyNDc5NmM5MmZjN2FlYjZmNDk0NDMxOTk5ZWRhMzA5OTBlNGY1NzczNjMyZWQyNThmZTAyNzY2NzM1OTlkYTZmY2UzNWNkYWQ3NzI2YTBiYjAyNGNhZDk5NmI4OGUwY2I5ODg1NGNlYjVjMGI2ZWM3NDhkOWY5Y2U2YTZjZDQzNzg1OGJhY2I4MTQ2MThhMjcyZmYzYTQxNWM2ZTA3ZjNkYjA5ODg3NzdmZGVjODQ1YTk3YmY3ZDEwMmRkMCIKIAogUEtDUzcgUGFyc2UgRmFpbHVyZSBJbnZhbGlkIEFTTjE6IENoYW5nZSB0YWcgMzAgdG8gMDIgIzY3LjAKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBwa2NzN19hc24xX2ZhaWw6IjMwODIwNTAwMDYwOTJhODY0ODg2ZjcwZDAxMDcwMmEwODIwNGYxMzA4MjA0ZWQwMjAxMDEzMTBmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwYjA2MDkyYTg2NDg4NmY3MGQwMTA3MDFhMDgyMDM0ZDMwODIwMzQ5MDI4MjAyMzFhMDAzMDIwMTAyMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEzMDFlMTcwZDMyMzIzMTMwMzIzODMxMzYzMTMwMzUzNjVhMTcwZDMyMzMzMTMwMzIzODMxMzYzMTMwMzUzNjVhMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMzA4MjAxMjIzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwMzgyMDEwZjAwMzA4MjAxMGEwMjgyMDEwMTAwYzhiNmNmNjk4OTljZDFmMGViYjRjYTY0NWMwNWU3MGUwZDJlZmVkZGNjNjFkMDg5Y2JkNTE1YTM5YTM1NzliOTIzNDNiNjFlYzc1MDA2MGZiNGVkMzc4NzYzMzI0MDBlNDI1ZjFkMzc2YzdlNzVjMjk3MzMxNGVkZjRiYjMwYzhmOGRkMDNiOWZjZmY5NTVhMjQ1ZDQ5MTM3YWQ2ZTYwMDU2Y2FjMTk1NTJhODY1ZDUyMTg3MTg3Y2MwNDJjOWM0OWUzZTNhOWMxN2E1MzRiNDUzY2RhYmMwY2IxMTNiNGY2M2Y1YjMxNzRiOWVlOTkwMmIxOTEwZDExNDk2YTI3OWE3NDMyNmFkY2ZlZTEwYmZkOWU3ZWJhZmJiMzc3YmU5YjYzOTU5MTY1ZDEzZGQ1NzUxMTcxY2FkYWQzYzFkM2FkYWM2OGJjODAxMWQ2MWI1NGNmNjAxNzhiZTM2ODM5YTg5YWM5MWFiNDE5ZTNjYTM3ZDZiYTg4MWQyNTUxOGM0ZGI2OGJjYTZmN2M4MzYwMmY2OTlhODZiMTdmYjFlNzczYmNiZTc0YmI5M2E0OWIyNTFhZTg2NDI4YjU3NDBlMTg2OGJiMWQ2ZmFiOWUyODcxMmU5OGVjMzE5YWQ4ZmNhNGQ3MzAxMGM0YjA5YzRiODA0NTg5NjFlN2NmMDgzNTMwMjAzMDEwMDAxYTM1MzMwNTEzMDFkMDYwMzU1MWQwZTA0MTYwNDE0OGFlZWU1OTQ3Y2M2N2M1ZGQ1MTVhNzZlMmE3ZWNkMzFlZTUyZmRjODMwMWYwNjAzNTUxZDIzMDQxODMwMTY4MDE0OGFlZWU1OTQ3Y2M2N2M1ZGQ1MTVhNzZlMmE3ZWNkMzFlZTUyZmRjODMwMGYwNjAzNTUxZDEzMDEwMWZmMDQwNTMwMDMwMTAxZmYzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAwMzgyMDEwMTAwODIxZDZiOThjZDQ1N2RlYmQyYjA4MWFjYTI3ZWJlY2Q0ZjkzYWNjODI4NDQzYjM5ZWFiZmZhOWZhNGU5ZTQ1NDNiNDZmY2MzMWUyYjViNDgxNzc5MDNkZWE2OTY5YWM0YTJjYzY1NzA2NTAzOTBmMWIwOGQ0M2E0YzJmOTc1YzdlZDhiZjMzNTZjNzIxODM4MDIxMjQ1MWE4ZjExZGU0NjU1M2NiY2Q2NWI0MjU0ZGRiOGY2NjgzNGViMjFkZGEyYThmMzNiNTgxZTE0ODQ1NTdhY2ExYjk0ZWU4OTMxZGRmMTYwMzdiN2E3MTcxMzIxYTkxOTM2YWZjMjdmZmNlMzk1ZGU3NWQ1ZjcwY2I4YjVhZWUwNWZmNTA3MDg4ZDY1YWYxZTQzOTY2Y2Q0MmNiZTZmN2ZhY2Y4ZGFlMDU1ZGQ4MjIyYjE2OTY1MjE3MjNmODEyNDUxNzg1OTVjOTg1YWU5MTdmZDRiMzk5ODc3M2UxYTk3YjdiZDEwMDg1NDQ2ZjQyNTliY2MwOWE0NTQ5MjkyODJjMWI4OWI3MWVkNTg3YTc3NWUwYTNkNDUzNjM0MWY0NWRhZTk2OWU4MDZjOTZmZWZjNzEwNjc3NzZjMDJiYTIyMTIyYjkxOTliMTRjMGMyOGMwNDQ4NzUwOTA3MGI5N2YzZGQyZDZkOTcyNzMzMTgyMDE3NzMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTAyMTQ3YmRlZGRkMjQ0NGNkMWNkZmU1YzQxYTgxMDJjODliN2RmMmU2Y2JmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDA1YmVjZDg3MTk1YzFkZWZmOTBjMjRjOTEyNjliNTViM2YwNjliYzIyNWMzMjZjMzE0YzFhNTE3ODZmZmUxNGM4MzBiZTRlNGJjNzNjYmEzNmM5NzY3N2I0NDE2ODI3OWJlOTFlN2NkZjdjMTkzODZhZTIxODYyNzE5ZDEzYTNhMGZmZjA4MDNkNDYwOTYyZjJjZGE4MzcxNDg0ODczMjUyYzNkNzA1NGRiODE0M2UyYjA4MWEzODE2ZWQwODA0Y2E1MDk5YWU1ZmVjZTgzZDVjMmMzNzgzYjE5ODhiNGI0NmRjOTRlNTU1ODdhMTA3ZWExNTQ2YmYyMmQyOGEwOTdmNjUyYTQwNjZkYzI5NjUyNjkwNjlhZjJmNTE3NmJiOGNlOWNhNmQxMWY5Njc1N2YwMzIwNGY3NTY3MDM1ODdkMDBhZDQyNDc5NmM5MmZjN2FlYjZmNDk0NDMxOTk5ZWRhMzA5OTBlNGY1NzczNjMyZWQyNThmZTAyNzY2NzM1OTlkYTZmY2UzNWNkYWQ3NzI2YTBiYjAyNGNhZDk5NmI4OGUwY2I5ODg1NGNlYjVjMGI2ZWM3NDhkOWY5Y2U2YTZjZDQzNzg1OGJhY2I4MTQ2MThhMjcyZmYzYTQxNWM2ZTA3ZjNkYjA5ODg3NzdmZGVjODQ1YTk3YmY3ZDEwMmRkMCIKIAogUEtDUzcgUGFyc2UgRmFpbHVyZSBJbnZhbGlkIEFTTjE6IENoYW5nZSBsZW5ndGggZnJvbSA1NjEgdG8gNTYyICM2OC4wCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NgogcGtjczdfYXNuMV9mYWlsOiIzMDgyMDUwMDA2MDkyYTg2NDg4NmY3MGQwMTA3MDJhMDgyMDRmMTMwODIwNGVkMDIwMTAxMzEwZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGIwNjA5MmE4NjQ4ODZmNzBkMDEwNzAxYTA4MjAzNGQzMDgyMDM0OTMwODIwMjMyYTAwMzAyMDEwMjAyMTQ3YmRlZGRkMjQ0NGNkMWNkZmU1YzQxYTgxMDJjODliN2RmMmU2Y2JmMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMzAxZTE3MGQzMjMyMzEzMDMyMzgzMTM2MzEzMDM1MzY1YTE3MGQzMjMzMzEzMDMyMzgzMTM2MzEzMDM1MzY1YTMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTMwODIwMTIyMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDM4MjAxMGYwMDMwODIwMTBhMDI4MjAxMDEwMGM4YjZjZjY5ODk5Y2QxZjBlYmI0Y2E2NDVjMDVlNzBlMGQyZWZlZGRjYzYxZDA4OWNiZDUxNWEzOWEzNTc5YjkyMzQzYjYxZWM3NTAwNjBmYjRlZDM3ODc2MzMyNDAwZTQyNWYxZDM3NmM3ZTc1YzI5NzMzMTRlZGY0YmIzMGM4ZjhkZDAzYjlmY2ZmOTU1YTI0NWQ0OTEzN2FkNmU2MDA1NmNhYzE5NTUyYTg2NWQ1MjE4NzE4N2NjMDQyYzljNDllM2UzYTljMTdhNTM0YjQ1M2NkYWJjMGNiMTEzYjRmNjNmNWIzMTc0YjllZTk5MDJiMTkxMGQxMTQ5NmEyNzlhNzQzMjZhZGNmZWUxMGJmZDllN2ViYWZiYjM3N2JlOWI2Mzk1OTE2NWQxM2RkNTc1MTE3MWNhZGFkM2MxZDNhZGFjNjhiYzgwMTFkNjFiNTRjZjYwMTc4YmUzNjgzOWE4OWFjOTFhYjQxOWUzY2EzN2Q2YmE4ODFkMjU1MThjNGRiNjhiY2E2ZjdjODM2MDJmNjk5YTg2YjE3ZmIxZTc3M2JjYmU3NGJiOTNhNDliMjUxYWU4NjQyOGI1NzQwZTE4NjhiYjFkNmZhYjllMjg3MTJlOThlYzMxOWFkOGZjYTRkNzMwMTBjNGIwOWM0YjgwNDU4OTYxZTdjZjA4MzUzMDIwMzAxMDAwMWEzNTMzMDUxMzAxZDA2MDM1NTFkMGUwNDE2MDQxNDhhZWVlNTk0N2NjNjdjNWRkNTE1YTc2ZTJhN2VjZDMxZWU1MmZkYzgzMDFmMDYwMzU1MWQyMzA0MTgzMDE2ODAxNDhhZWVlNTk0N2NjNjdjNWRkNTE1YTc2ZTJhN2VjZDMxZWU1MmZkYzgzMDBmMDYwMzU1MWQxMzAxMDFmZjA0MDUzMDAzMDEwMWZmMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMDM4MjAxMDEwMDgyMWQ2Yjk4Y2Q0NTdkZWJkMmIwODFhY2EyN2ViZWNkNGY5M2FjYzgyODQ0M2IzOWVhYmZmYTlmYTRlOWU0NTQzYjQ2ZmNjMzFlMmI1YjQ4MTc3OTAzZGVhNjk2OWFjNGEyY2M2NTcwNjUwMzkwZjFiMDhkNDNhNGMyZjk3NWM3ZWQ4YmYzMzU2YzcyMTgzODAyMTI0NTFhOGYxMWRlNDY1NTNjYmNkNjViNDI1NGRkYjhmNjY4MzRlYjIxZGRhMmE4ZjMzYjU4MWUxNDg0NTU3YWNhMWI5NGVlODkzMWRkZjE2MDM3YjdhNzE3MTMyMWE5MTkzNmFmYzI3ZmZjZTM5NWRlNzVkNWY3MGNiOGI1YWVlMDVmZjUwNzA4OGQ2NWFmMWU0Mzk2NmNkNDJjYmU2ZjdmYWNmOGRhZTA1NWRkODIyMmIxNjk2NTIxNzIzZjgxMjQ1MTc4NTk1Yzk4NWFlOTE3ZmQ0YjM5OTg3NzNlMWE5N2I3YmQxMDA4NTQ0NmY0MjU5YmNjMDlhNDU0OTI5MjgyYzFiODliNzFlZDU4N2E3NzVlMGEzZDQ1MzYzNDFmNDVkYWU5NjllODA2Yzk2ZmVmYzcxMDY3Nzc2YzAyYmEyMjEyMmI5MTk5YjE0YzBjMjhjMDQ0ODc1MDkwNzBiOTdmM2RkMmQ2ZDk3MjczMzE4MjAxNzczMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwNWJlY2Q4NzE5NWMxZGVmZjkwYzI0YzkxMjY5YjU1YjNmMDY5YmMyMjVjMzI2YzMxNGMxYTUxNzg2ZmZlMTRjODMwYmU0ZTRiYzczY2JhMzZjOTc2NzdiNDQxNjgyNzliZTkxZTdjZGY3YzE5Mzg2YWUyMTg2MjcxOWQxM2EzYTBmZmYwODAzZDQ2MDk2MmYyY2RhODM3MTQ4NDg3MzI1MmMzZDcwNTRkYjgxNDNlMmIwODFhMzgxNmVkMDgwNGNhNTA5OWFlNWZlY2U4M2Q1YzJjMzc4M2IxOTg4YjRiNDZkYzk0ZTU1NTg3YTEwN2VhMTU0NmJmMjJkMjhhMDk3ZjY1MmE0MDY2ZGMyOTY1MjY5MDY5YWYyZjUxNzZiYjhjZTljYTZkMTFmOTY3NTdmMDMyMDRmNzU2NzAzNTg3ZDAwYWQ0MjQ3OTZjOTJmYzdhZWI2ZjQ5NDQzMTk5OWVkYTMwOTkwZTRmNTc3MzYzMmVkMjU4ZmUwMjc2NjczNTk5ZGE2ZmNlMzVjZGFkNzcyNmEwYmIwMjRjYWQ5OTZiODhlMGNiOTg4NTRjZWI1YzBiNmVjNzQ4ZDlmOWNlNmE2Y2Q0Mzc4NThiYWNiODE0NjE4YTI3MmZmM2E0MTVjNmUwN2YzZGIwOTg4Nzc3ZmRlYzg0NWE5N2JmN2QxMDJkZDAiCiAKIFBLQ1M3IFBhcnNlIEZhaWx1cmUgSW52YWxpZCBBU04xOiBDaGFuZ2UgY29udGVudHMgb2YgdGFnIDMwIHRvIGNvbnRhaW4gb25lIHVuYWNjb3VudGVkIGV4dHJhIGJ5dGUgIzY5LjAKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBwa2NzN19hc24xX2ZhaWw6IjMwODIwNTAwMDYwOTJhODY0ODg2ZjcwZDAxMDcwMmEwODIwNGYxMzA4MjA0ZWQwMjAxMDEzMTBmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwYjA2MDkyYTg2NDg4NmY3MGQwMTA3MDFhMDgyMDM0ZDMwODIwMzQ5MzA4MjAyMzJhMDAzMDIwMTAyMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEzMDFlMTcwZDMyMzIzMTMwMzIzODMxMzYzMTMwMzUzNjVhMTcwZDMyMzMzMTMwMzIzODMxMzYzMTMwMzUzNjVhMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMzA4MjAxMjIzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwMzgyMDEwZjAwMzA4MjAxMGEwMjgyMDEwMTAwYzhiNmNmNjk4OTljZDFmMGViYjRjYTY0NWMwNWU3MGUwZDJlZmVkZGNjNjFkMDg5Y2JkNTE1YTM5YTM1NzliOTIzNDNiNjFlYzc1MDA2MGZiNGVkMzc4NzYzMzI0MDBlNDI1ZjFkMzc2YzdlNzVjMjk3MzMxNGVkZjRiYjMwYzhmOGRkMDNiOWZjZmY5NTVhMjQ1ZDQ5MTM3YWQ2ZTYwMDU2Y2FjMTk1NTJhODY1ZDUyMTg3MTg3Y2MwNDJjOWM0OWUzZTNhOWMxN2E1MzRiNDUzY2RhYmMwY2IxMTNiNGY2M2Y1YjMxNzRiOWVlOTkwMmIxOTEwZDExNDk2YTI3OWE3NDMyNmFkY2ZlZTEwYmZkOWU3ZWJhZmJiMzc3YmU5YjYzOTU5MTY1ZDEzZGQ1NzUxMTcxY2FkYWQzYzFkM2FkYWM2OGJjODAxMWQ2MWI1NGNmNjAxNzhiZTM2ODM5YTg5YWM5MWFiNDE5ZTNjYTM3ZDZiYTg4MWQyNTUxOGM0ZGI2OGJjYTZmN2M4MzYwMmY2OTlhODZiMTdmYjFlNzczYmNiZTc0YmI5M2E0OWIyNTFhZTg2NDI4YjU3NDBlMTg2OGJiMWQ2ZmFiOWUyODcxMmU5OGVjMzE5YWQ4ZmNhNGQ3MzAxMGM0YjA5YzRiODA0NTg5NjFlN2NmMDgzNTMwMjAzMDEwMDAxYTM1MzMwNTEzMDFkMDYwMzU1MWQwZTA0MTYwNDE0OGFlZWU1OTQ3Y2M2N2M1ZGQ1MTVhNzZlMmE3ZWNkMzFlZTUyZmRjODMwMWYwNjAzNTUxZDIzMDQxODMwMTY4MDE0OGFlZWU1OTQ3Y2M2N2M1ZGQ1MTVhNzZlMmE3ZWNkMzFlZTUyZmRjODMwMGYwNjAzNTUxZDEzMDEwMWZmMDQwNTMwMDMwMTAxZmYwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDAzODIwMTAxMDA4MjFkNmI5OGNkNDU3ZGViZDJiMDgxYWNhMjdlYmVjZDRmOTNhY2M4Mjg0NDNiMzllYWJmZmE5ZmE0ZTllNDU0M2I0NmZjYzMxZTJiNWI0ODE3NzkwM2RlYTY5NjlhYzRhMmNjNjU3MDY1MDM5MGYxYjA4ZDQzYTRjMmY5NzVjN2VkOGJmMzM1NmM3MjE4MzgwMjEyNDUxYThmMTFkZTQ2NTUzY2JjZDY1YjQyNTRkZGI4ZjY2ODM0ZWIyMWRkYTJhOGYzM2I1ODFlMTQ4NDU1N2FjYTFiOTRlZTg5MzFkZGYxNjAzN2I3YTcxNzEzMjFhOTE5MzZhZmMyN2ZmY2UzOTVkZTc1ZDVmNzBjYjhiNWFlZTA1ZmY1MDcwODhkNjVhZjFlNDM5NjZjZDQyY2JlNmY3ZmFjZjhkYWUwNTVkZDgyMjJiMTY5NjUyMTcyM2Y4MTI0NTE3ODU5NWM5ODVhZTkxN2ZkNGIzOTk4NzczZTFhOTdiN2JkMTAwODU0NDZmNDI1OWJjYzA5YTQ1NDkyOTI4MmMxYjg5YjcxZWQ1ODdhNzc1ZTBhM2Q0NTM2MzQxZjQ1ZGFlOTY5ZTgwNmM5NmZlZmM3MTA2Nzc3NmMwMmJhMjIxMjJiOTE5OWIxNGMwYzI4YzA0NDg3NTA5MDcwYjk3ZjNkZDJkNmQ5NzI3MzMxODIwMTc3MzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDViZWNkODcxOTVjMWRlZmY5MGMyNGM5MTI2OWI1NWIzZjA2OWJjMjI1YzMyNmMzMTRjMWE1MTc4NmZmZTE0YzgzMGJlNGU0YmM3M2NiYTM2Yzk3Njc3YjQ0MTY4Mjc5YmU5MWU3Y2RmN2MxOTM4NmFlMjE4NjI3MTlkMTNhM2EwZmZmMDgwM2Q0NjA5NjJmMmNkYTgzNzE0ODQ4NzMyNTJjM2Q3MDU0ZGI4MTQzZTJiMDgxYTM4MTZlZDA4MDRjYTUwOTlhZTVmZWNlODNkNWMyYzM3ODNiMTk4OGI0YjQ2ZGM5NGU1NTU4N2ExMDdlYTE1NDZiZjIyZDI4YTA5N2Y2NTJhNDA2NmRjMjk2NTI2OTA2OWFmMmY1MTc2YmI4Y2U5Y2E2ZDExZjk2NzU3ZjAzMjA0Zjc1NjcwMzU4N2QwMGFkNDI0Nzk2YzkyZmM3YWViNmY0OTQ0MzE5OTllZGEzMDk5MGU0ZjU3NzM2MzJlZDI1OGZlMDI3NjY3MzU5OWRhNmZjZTM1Y2RhZDc3MjZhMGJiMDI0Y2FkOTk2Yjg4ZTBjYjk4ODU0Y2ViNWMwYjZlYzc0OGQ5ZjljZTZhNmNkNDM3ODU4YmFjYjgxNDYxOGEyNzJmZjNhNDE1YzZlMDdmM2RiMDk4ODc3N2ZkZWM4NDVhOTdiZjdkMTAyZGQwIgogCiBQS0NTNyBQYXJzZSBGYWlsdXJlIEludmFsaWQgQVNOMTogQ2hhbmdlIGxlbmd0aCBmcm9tIDU2MSB0byA1NjAgIzcwLjAKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBwa2NzN19hc24xX2ZhaWw6IjMwODIwNTAwMDYwOTJhODY0ODg2ZjcwZDAxMDcwMmEwODIwNGYxMzA4MjA0ZWQwMjAxMDEzMTBmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwYjA2MDkyYTg2NDg4NmY3MGQwMTA3MDFhMDgyMDM0ZDMwODIwMzQ5MzA4MjAyMzBhMDAzMDIwMTAyMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEzMDFlMTcwZDMyMzIzMTMwMzIzODMxMzYzMTMwMzUzNjVhMTcwZDMyMzMzMTMwMzIzODMxMzYzMTMwMzUzNjVhMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMzA4MjAxMjIzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwMzgyMDEwZjAwMzA4MjAxMGEwMjgyMDEwMTAwYzhiNmNmNjk4OTljZDFmMGViYjRjYTY0NWMwNWU3MGUwZDJlZmVkZGNjNjFkMDg5Y2JkNTE1YTM5YTM1NzliOTIzNDNiNjFlYzc1MDA2MGZiNGVkMzc4NzYzMzI0MDBlNDI1ZjFkMzc2YzdlNzVjMjk3MzMxNGVkZjRiYjMwYzhmOGRkMDNiOWZjZmY5NTVhMjQ1ZDQ5MTM3YWQ2ZTYwMDU2Y2FjMTk1NTJhODY1ZDUyMTg3MTg3Y2MwNDJjOWM0OWUzZTNhOWMxN2E1MzRiNDUzY2RhYmMwY2IxMTNiNGY2M2Y1YjMxNzRiOWVlOTkwMmIxOTEwZDExNDk2YTI3OWE3NDMyNmFkY2ZlZTEwYmZkOWU3ZWJhZmJiMzc3YmU5YjYzOTU5MTY1ZDEzZGQ1NzUxMTcxY2FkYWQzYzFkM2FkYWM2OGJjODAxMWQ2MWI1NGNmNjAxNzhiZTM2ODM5YTg5YWM5MWFiNDE5ZTNjYTM3ZDZiYTg4MWQyNTUxOGM0ZGI2OGJjYTZmN2M4MzYwMmY2OTlhODZiMTdmYjFlNzczYmNiZTc0YmI5M2E0OWIyNTFhZTg2NDI4YjU3NDBlMTg2OGJiMWQ2ZmFiOWUyODcxMmU5OGVjMzE5YWQ4ZmNhNGQ3MzAxMGM0YjA5YzRiODA0NTg5NjFlN2NmMDgzNTMwMjAzMDEwMDAxYTM1MzMwNTEzMDFkMDYwMzU1MWQwZTA0MTYwNDE0OGFlZWU1OTQ3Y2M2N2M1ZGQ1MTVhNzZlMmE3ZWNkMzFlZTUyZmRjODMwMWYwNjAzNTUxZDIzMDQxODMwMTY4MDE0OGFlZWU1OTQ3Y2M2N2M1ZGQ1MTVhNzZlMmE3ZWNkMzFlZTUyZmRjODMwMGYwNjAzNTUxZDEzMDEwMWZmMDQwNTMwMDMwMTAxZmYzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAwMzgyMDEwMTAwODIxZDZiOThjZDQ1N2RlYmQyYjA4MWFjYTI3ZWJlY2Q0ZjkzYWNjODI4NDQzYjM5ZWFiZmZhOWZhNGU5ZTQ1NDNiNDZmY2MzMWUyYjViNDgxNzc5MDNkZWE2OTY5YWM0YTJjYzY1NzA2NTAzOTBmMWIwOGQ0M2E0YzJmOTc1YzdlZDhiZjMzNTZjNzIxODM4MDIxMjQ1MWE4ZjExZGU0NjU1M2NiY2Q2NWI0MjU0ZGRiOGY2NjgzNGViMjFkZGEyYThmMzNiNTgxZTE0ODQ1NTdhY2ExYjk0ZWU4OTMxZGRmMTYwMzdiN2E3MTcxMzIxYTkxOTM2YWZjMjdmZmNlMzk1ZGU3NWQ1ZjcwY2I4YjVhZWUwNWZmNTA3MDg4ZDY1YWYxZTQzOTY2Y2Q0MmNiZTZmN2ZhY2Y4ZGFlMDU1ZGQ4MjIyYjE2OTY1MjE3MjNmODEyNDUxNzg1OTVjOTg1YWU5MTdmZDRiMzk5ODc3M2UxYTk3YjdiZDEwMDg1NDQ2ZjQyNTliY2MwOWE0NTQ5MjkyODJjMWI4OWI3MWVkNTg3YTc3NWUwYTNkNDUzNjM0MWY0NWRhZTk2OWU4MDZjOTZmZWZjNzEwNjc3NzZjMDJiYTIyMTIyYjkxOTliMTRjMGMyOGMwNDQ4NzUwOTA3MGI5N2YzZGQyZDZkOTcyNzMzMTgyMDE3NzMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTAyMTQ3YmRlZGRkMjQ0NGNkMWNkZmU1YzQxYTgxMDJjODliN2RmMmU2Y2JmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDA1YmVjZDg3MTk1YzFkZWZmOTBjMjRjOTEyNjliNTViM2YwNjliYzIyNWMzMjZjMzE0YzFhNTE3ODZmZmUxNGM4MzBiZTRlNGJjNzNjYmEzNmM5NzY3N2I0NDE2ODI3OWJlOTFlN2NkZjdjMTkzODZhZTIxODYyNzE5ZDEzYTNhMGZmZjA4MDNkNDYwOTYyZjJjZGE4MzcxNDg0ODczMjUyYzNkNzA1NGRiODE0M2UyYjA4MWEzODE2ZWQwODA0Y2E1MDk5YWU1ZmVjZTgzZDVjMmMzNzgzYjE5ODhiNGI0NmRjOTRlNTU1ODdhMTA3ZWExNTQ2YmYyMmQyOGEwOTdmNjUyYTQwNjZkYzI5NjUyNjkwNjlhZjJmNTE3NmJiOGNlOWNhNmQxMWY5Njc1N2YwMzIwNGY3NTY3MDM1ODdkMDBhZDQyNDc5NmM5MmZjN2FlYjZmNDk0NDMxOTk5ZWRhMzA5OTBlNGY1NzczNjMyZWQyNThmZTAyNzY2NzM1OTlkYTZmY2UzNWNkYWQ3NzI2YTBiYjAyNGNhZDk5NmI4OGUwY2I5ODg1NGNlYjVjMGI2ZWM3NDhkOWY5Y2U2YTZjZDQzNzg1OGJhY2I4MTQ2MThhMjcyZmYzYTQxNWM2ZTA3ZjNkYjA5ODg3NzdmZGVjODQ1YTk3YmY3ZDEwMmRkMCIKIAogUEtDUzcgUGFyc2UgRmFpbHVyZSBJbnZhbGlkIEFTTjE6IENoYW5nZSB0YWcgYTAgdG8gMDIgIzcxLjAKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBwa2NzN19hc24xX2ZhaWw6IjMwODIwNTAwMDYwOTJhODY0ODg2ZjcwZDAxMDcwMmEwODIwNGYxMzA4MjA0ZWQwMjAxMDEzMTBmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwYjA2MDkyYTg2NDg4NmY3MGQwMTA3MDFhMDgyMDM0ZDMwODIwMzQ5MzA4MjAyMzEwMjAzMDIwMTAyMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEzMDFlMTcwZDMyMzIzMTMwMzIzODMxMzYzMTMwMzUzNjVhMTcwZDMyMzMzMTMwMzIzODMxMzYzMTMwMzUzNjVhMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMzA4MjAxMjIzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwMzgyMDEwZjAwMzA4MjAxMGEwMjgyMDEwMTAwYzhiNmNmNjk4OTljZDFmMGViYjRjYTY0NWMwNWU3MGUwZDJlZmVkZGNjNjFkMDg5Y2JkNTE1YTM5YTM1NzliOTIzNDNiNjFlYzc1MDA2MGZiNGVkMzc4NzYzMzI0MDBlNDI1ZjFkMzc2YzdlNzVjMjk3MzMxNGVkZjRiYjMwYzhmOGRkMDNiOWZjZmY5NTVhMjQ1ZDQ5MTM3YWQ2ZTYwMDU2Y2FjMTk1NTJhODY1ZDUyMTg3MTg3Y2MwNDJjOWM0OWUzZTNhOWMxN2E1MzRiNDUzY2RhYmMwY2IxMTNiNGY2M2Y1YjMxNzRiOWVlOTkwMmIxOTEwZDExNDk2YTI3OWE3NDMyNmFkY2ZlZTEwYmZkOWU3ZWJhZmJiMzc3YmU5YjYzOTU5MTY1ZDEzZGQ1NzUxMTcxY2FkYWQzYzFkM2FkYWM2OGJjODAxMWQ2MWI1NGNmNjAxNzhiZTM2ODM5YTg5YWM5MWFiNDE5ZTNjYTM3ZDZiYTg4MWQyNTUxOGM0ZGI2OGJjYTZmN2M4MzYwMmY2OTlhODZiMTdmYjFlNzczYmNiZTc0YmI5M2E0OWIyNTFhZTg2NDI4YjU3NDBlMTg2OGJiMWQ2ZmFiOWUyODcxMmU5OGVjMzE5YWQ4ZmNhNGQ3MzAxMGM0YjA5YzRiODA0NTg5NjFlN2NmMDgzNTMwMjAzMDEwMDAxYTM1MzMwNTEzMDFkMDYwMzU1MWQwZTA0MTYwNDE0OGFlZWU1OTQ3Y2M2N2M1ZGQ1MTVhNzZlMmE3ZWNkMzFlZTUyZmRjODMwMWYwNjAzNTUxZDIzMDQxODMwMTY4MDE0OGFlZWU1OTQ3Y2M2N2M1ZGQ1MTVhNzZlMmE3ZWNkMzFlZTUyZmRjODMwMGYwNjAzNTUxZDEzMDEwMWZmMDQwNTMwMDMwMTAxZmYzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAwMzgyMDEwMTAwODIxZDZiOThjZDQ1N2RlYmQyYjA4MWFjYTI3ZWJlY2Q0ZjkzYWNjODI4NDQzYjM5ZWFiZmZhOWZhNGU5ZTQ1NDNiNDZmY2MzMWUyYjViNDgxNzc5MDNkZWE2OTY5YWM0YTJjYzY1NzA2NTAzOTBmMWIwOGQ0M2E0YzJmOTc1YzdlZDhiZjMzNTZjNzIxODM4MDIxMjQ1MWE4ZjExZGU0NjU1M2NiY2Q2NWI0MjU0ZGRiOGY2NjgzNGViMjFkZGEyYThmMzNiNTgxZTE0ODQ1NTdhY2ExYjk0ZWU4OTMxZGRmMTYwMzdiN2E3MTcxMzIxYTkxOTM2YWZjMjdmZmNlMzk1ZGU3NWQ1ZjcwY2I4YjVhZWUwNWZmNTA3MDg4ZDY1YWYxZTQzOTY2Y2Q0MmNiZTZmN2ZhY2Y4ZGFlMDU1ZGQ4MjIyYjE2OTY1MjE3MjNmODEyNDUxNzg1OTVjOTg1YWU5MTdmZDRiMzk5ODc3M2UxYTk3YjdiZDEwMDg1NDQ2ZjQyNTliY2MwOWE0NTQ5MjkyODJjMWI4OWI3MWVkNTg3YTc3NWUwYTNkNDUzNjM0MWY0NWRhZTk2OWU4MDZjOTZmZWZjNzEwNjc3NzZjMDJiYTIyMTIyYjkxOTliMTRjMGMyOGMwNDQ4NzUwOTA3MGI5N2YzZGQyZDZkOTcyNzMzMTgyMDE3NzMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTAyMTQ3YmRlZGRkMjQ0NGNkMWNkZmU1YzQxYTgxMDJjODliN2RmMmU2Y2JmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDA1YmVjZDg3MTk1YzFkZWZmOTBjMjRjOTEyNjliNTViM2YwNjliYzIyNWMzMjZjMzE0YzFhNTE3ODZmZmUxNGM4MzBiZTRlNGJjNzNjYmEzNmM5NzY3N2I0NDE2ODI3OWJlOTFlN2NkZjdjMTkzODZhZTIxODYyNzE5ZDEzYTNhMGZmZjA4MDNkNDYwOTYyZjJjZGE4MzcxNDg0ODczMjUyYzNkNzA1NGRiODE0M2UyYjA4MWEzODE2ZWQwODA0Y2E1MDk5YWU1ZmVjZTgzZDVjMmMzNzgzYjE5ODhiNGI0NmRjOTRlNTU1ODdhMTA3ZWExNTQ2YmYyMmQyOGEwOTdmNjUyYTQwNjZkYzI5NjUyNjkwNjlhZjJmNTE3NmJiOGNlOWNhNmQxMWY5Njc1N2YwMzIwNGY3NTY3MDM1ODdkMDBhZDQyNDc5NmM5MmZjN2FlYjZmNDk0NDMxOTk5ZWRhMzA5OTBlNGY1NzczNjMyZWQyNThmZTAyNzY2NzM1OTlkYTZmY2UzNWNkYWQ3NzI2YTBiYjAyNGNhZDk5NmI4OGUwY2I5ODg1NGNlYjVjMGI2ZWM3NDhkOWY5Y2U2YTZjZDQzNzg1OGJhY2I4MTQ2MThhMjcyZmYzYTQxNWM2ZTA3ZjNkYjA5ODg3NzdmZGVjODQ1YTk3YmY3ZDEwMmRkMCIKIAogUEtDUzcgUGFyc2UgRmFpbHVyZSBJbnZhbGlkIEFTTjE6IENoYW5nZSBsZW5ndGggZnJvbSAzIHRvIDQgIzcyLjAKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBwa2NzN19hc24xX2ZhaWw6IjMwODIwNTAwMDYwOTJhODY0ODg2ZjcwZDAxMDcwMmEwODIwNGYxMzA4MjA0ZWQwMjAxMDEzMTBmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwYjA2MDkyYTg2NDg4NmY3MGQwMTA3MDFhMDgyMDM0ZDMwODIwMzQ5MzA4MjAyMzFhMDA0MDIwMTAyMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEzMDFlMTcwZDMyMzIzMTMwMzIzODMxMzYzMTMwMzUzNjVhMTcwZDMyMzMzMTMwMzIzODMxMzYzMTMwMzUzNjVhMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMzA4MjAxMjIzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwMzgyMDEwZjAwMzA4MjAxMGEwMjgyMDEwMTAwYzhiNmNmNjk4OTljZDFmMGViYjRjYTY0NWMwNWU3MGUwZDJlZmVkZGNjNjFkMDg5Y2JkNTE1YTM5YTM1NzliOTIzNDNiNjFlYzc1MDA2MGZiNGVkMzc4NzYzMzI0MDBlNDI1ZjFkMzc2YzdlNzVjMjk3MzMxNGVkZjRiYjMwYzhmOGRkMDNiOWZjZmY5NTVhMjQ1ZDQ5MTM3YWQ2ZTYwMDU2Y2FjMTk1NTJhODY1ZDUyMTg3MTg3Y2MwNDJjOWM0OWUzZTNhOWMxN2E1MzRiNDUzY2RhYmMwY2IxMTNiNGY2M2Y1YjMxNzRiOWVlOTkwMmIxOTEwZDExNDk2YTI3OWE3NDMyNmFkY2ZlZTEwYmZkOWU3ZWJhZmJiMzc3YmU5YjYzOTU5MTY1ZDEzZGQ1NzUxMTcxY2FkYWQzYzFkM2FkYWM2OGJjODAxMWQ2MWI1NGNmNjAxNzhiZTM2ODM5YTg5YWM5MWFiNDE5ZTNjYTM3ZDZiYTg4MWQyNTUxOGM0ZGI2OGJjYTZmN2M4MzYwMmY2OTlhODZiMTdmYjFlNzczYmNiZTc0YmI5M2E0OWIyNTFhZTg2NDI4YjU3NDBlMTg2OGJiMWQ2ZmFiOWUyODcxMmU5OGVjMzE5YWQ4ZmNhNGQ3MzAxMGM0YjA5YzRiODA0NTg5NjFlN2NmMDgzNTMwMjAzMDEwMDAxYTM1MzMwNTEzMDFkMDYwMzU1MWQwZTA0MTYwNDE0OGFlZWU1OTQ3Y2M2N2M1ZGQ1MTVhNzZlMmE3ZWNkMzFlZTUyZmRjODMwMWYwNjAzNTUxZDIzMDQxODMwMTY4MDE0OGFlZWU1OTQ3Y2M2N2M1ZGQ1MTVhNzZlMmE3ZWNkMzFlZTUyZmRjODMwMGYwNjAzNTUxZDEzMDEwMWZmMDQwNTMwMDMwMTAxZmYzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAwMzgyMDEwMTAwODIxZDZiOThjZDQ1N2RlYmQyYjA4MWFjYTI3ZWJlY2Q0ZjkzYWNjODI4NDQzYjM5ZWFiZmZhOWZhNGU5ZTQ1NDNiNDZmY2MzMWUyYjViNDgxNzc5MDNkZWE2OTY5YWM0YTJjYzY1NzA2NTAzOTBmMWIwOGQ0M2E0YzJmOTc1YzdlZDhiZjMzNTZjNzIxODM4MDIxMjQ1MWE4ZjExZGU0NjU1M2NiY2Q2NWI0MjU0ZGRiOGY2NjgzNGViMjFkZGEyYThmMzNiNTgxZTE0ODQ1NTdhY2ExYjk0ZWU4OTMxZGRmMTYwMzdiN2E3MTcxMzIxYTkxOTM2YWZjMjdmZmNlMzk1ZGU3NWQ1ZjcwY2I4YjVhZWUwNWZmNTA3MDg4ZDY1YWYxZTQzOTY2Y2Q0MmNiZTZmN2ZhY2Y4ZGFlMDU1ZGQ4MjIyYjE2OTY1MjE3MjNmODEyNDUxNzg1OTVjOTg1YWU5MTdmZDRiMzk5ODc3M2UxYTk3YjdiZDEwMDg1NDQ2ZjQyNTliY2MwOWE0NTQ5MjkyODJjMWI4OWI3MWVkNTg3YTc3NWUwYTNkNDUzNjM0MWY0NWRhZTk2OWU4MDZjOTZmZWZjNzEwNjc3NzZjMDJiYTIyMTIyYjkxOTliMTRjMGMyOGMwNDQ4NzUwOTA3MGI5N2YzZGQyZDZkOTcyNzMzMTgyMDE3NzMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTAyMTQ3YmRlZGRkMjQ0NGNkMWNkZmU1YzQxYTgxMDJjODliN2RmMmU2Y2JmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDA1YmVjZDg3MTk1YzFkZWZmOTBjMjRjOTEyNjliNTViM2YwNjliYzIyNWMzMjZjMzE0YzFhNTE3ODZmZmUxNGM4MzBiZTRlNGJjNzNjYmEzNmM5NzY3N2I0NDE2ODI3OWJlOTFlN2NkZjdjMTkzODZhZTIxODYyNzE5ZDEzYTNhMGZmZjA4MDNkNDYwOTYyZjJjZGE4MzcxNDg0ODczMjUyYzNkNzA1NGRiODE0M2UyYjA4MWEzODE2ZWQwODA0Y2E1MDk5YWU1ZmVjZTgzZDVjMmMzNzgzYjE5ODhiNGI0NmRjOTRlNTU1ODdhMTA3ZWExNTQ2YmYyMmQyOGEwOTdmNjUyYTQwNjZkYzI5NjUyNjkwNjlhZjJmNTE3NmJiOGNlOWNhNmQxMWY5Njc1N2YwMzIwNGY3NTY3MDM1ODdkMDBhZDQyNDc5NmM5MmZjN2FlYjZmNDk0NDMxOTk5ZWRhMzA5OTBlNGY1NzczNjMyZWQyNThmZTAyNzY2NzM1OTlkYTZmY2UzNWNkYWQ3NzI2YTBiYjAyNGNhZDk5NmI4OGUwY2I5ODg1NGNlYjVjMGI2ZWM3NDhkOWY5Y2U2YTZjZDQzNzg1OGJhY2I4MTQ2MThhMjcyZmYzYTQxNWM2ZTA3ZjNkYjA5ODg3NzdmZGVjODQ1YTk3YmY3ZDEwMmRkMCIKIAogUEtDUzcgUGFyc2UgRmFpbHVyZSBJbnZhbGlkIEFTTjE6IENoYW5nZSBjb250ZW50cyBvZiB0YWcgYTAgdG8gY29udGFpbiBvbmUgdW5hY2NvdW50ZWQgZXh0cmEgYnl0ZSAjNzMuMAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHBrY3M3X2FzbjFfZmFpbDoiMzA4MjA1MDAwNjA5MmE4NjQ4ODZmNzBkMDEwNzAyYTA4MjA0ZjEzMDgyMDRlZDAyMDEwMTMxMGYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBiMDYwOTJhODY0ODg2ZjcwZDAxMDcwMWEwODIwMzRkMzA4MjAzNDkzMDgyMDIzMWEwMDQwMjAxMDIwMDAyMTQ3YmRlZGRkMjQ0NGNkMWNkZmU1YzQxYTgxMDJjODliN2RmMmU2Y2JmMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMzAxZTE3MGQzMjMyMzEzMDMyMzgzMTM2MzEzMDM1MzY1YTE3MGQzMjMzMzEzMDMyMzgzMTM2MzEzMDM1MzY1YTMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTMwODIwMTIyMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDM4MjAxMGYwMDMwODIwMTBhMDI4MjAxMDEwMGM4YjZjZjY5ODk5Y2QxZjBlYmI0Y2E2NDVjMDVlNzBlMGQyZWZlZGRjYzYxZDA4OWNiZDUxNWEzOWEzNTc5YjkyMzQzYjYxZWM3NTAwNjBmYjRlZDM3ODc2MzMyNDAwZTQyNWYxZDM3NmM3ZTc1YzI5NzMzMTRlZGY0YmIzMGM4ZjhkZDAzYjlmY2ZmOTU1YTI0NWQ0OTEzN2FkNmU2MDA1NmNhYzE5NTUyYTg2NWQ1MjE4NzE4N2NjMDQyYzljNDllM2UzYTljMTdhNTM0YjQ1M2NkYWJjMGNiMTEzYjRmNjNmNWIzMTc0YjllZTk5MDJiMTkxMGQxMTQ5NmEyNzlhNzQzMjZhZGNmZWUxMGJmZDllN2ViYWZiYjM3N2JlOWI2Mzk1OTE2NWQxM2RkNTc1MTE3MWNhZGFkM2MxZDNhZGFjNjhiYzgwMTFkNjFiNTRjZjYwMTc4YmUzNjgzOWE4OWFjOTFhYjQxOWUzY2EzN2Q2YmE4ODFkMjU1MThjNGRiNjhiY2E2ZjdjODM2MDJmNjk5YTg2YjE3ZmIxZTc3M2JjYmU3NGJiOTNhNDliMjUxYWU4NjQyOGI1NzQwZTE4NjhiYjFkNmZhYjllMjg3MTJlOThlYzMxOWFkOGZjYTRkNzMwMTBjNGIwOWM0YjgwNDU4OTYxZTdjZjA4MzUzMDIwMzAxMDAwMWEzNTMzMDUxMzAxZDA2MDM1NTFkMGUwNDE2MDQxNDhhZWVlNTk0N2NjNjdjNWRkNTE1YTc2ZTJhN2VjZDMxZWU1MmZkYzgzMDFmMDYwMzU1MWQyMzA0MTgzMDE2ODAxNDhhZWVlNTk0N2NjNjdjNWRkNTE1YTc2ZTJhN2VjZDMxZWU1MmZkYzgzMDBmMDYwMzU1MWQxMzAxMDFmZjA0MDUzMDAzMDEwMWZmMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMDM4MjAxMDEwMDgyMWQ2Yjk4Y2Q0NTdkZWJkMmIwODFhY2EyN2ViZWNkNGY5M2FjYzgyODQ0M2IzOWVhYmZmYTlmYTRlOWU0NTQzYjQ2ZmNjMzFlMmI1YjQ4MTc3OTAzZGVhNjk2OWFjNGEyY2M2NTcwNjUwMzkwZjFiMDhkNDNhNGMyZjk3NWM3ZWQ4YmYzMzU2YzcyMTgzODAyMTI0NTFhOGYxMWRlNDY1NTNjYmNkNjViNDI1NGRkYjhmNjY4MzRlYjIxZGRhMmE4ZjMzYjU4MWUxNDg0NTU3YWNhMWI5NGVlODkzMWRkZjE2MDM3YjdhNzE3MTMyMWE5MTkzNmFmYzI3ZmZjZTM5NWRlNzVkNWY3MGNiOGI1YWVlMDVmZjUwNzA4OGQ2NWFmMWU0Mzk2NmNkNDJjYmU2ZjdmYWNmOGRhZTA1NWRkODIyMmIxNjk2NTIxNzIzZjgxMjQ1MTc4NTk1Yzk4NWFlOTE3ZmQ0YjM5OTg3NzNlMWE5N2I3YmQxMDA4NTQ0NmY0MjU5YmNjMDlhNDU0OTI5MjgyYzFiODliNzFlZDU4N2E3NzVlMGEzZDQ1MzYzNDFmNDVkYWU5NjllODA2Yzk2ZmVmYzcxMDY3Nzc2YzAyYmEyMjEyMmI5MTk5YjE0YzBjMjhjMDQ0ODc1MDkwNzBiOTdmM2RkMmQ2ZDk3MjczMzE4MjAxNzczMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwNWJlY2Q4NzE5NWMxZGVmZjkwYzI0YzkxMjY5YjU1YjNmMDY5YmMyMjVjMzI2YzMxNGMxYTUxNzg2ZmZlMTRjODMwYmU0ZTRiYzczY2JhMzZjOTc2NzdiNDQxNjgyNzliZTkxZTdjZGY3YzE5Mzg2YWUyMTg2MjcxOWQxM2EzYTBmZmYwODAzZDQ2MDk2MmYyY2RhODM3MTQ4NDg3MzI1MmMzZDcwNTRkYjgxNDNlMmIwODFhMzgxNmVkMDgwNGNhNTA5OWFlNWZlY2U4M2Q1YzJjMzc4M2IxOTg4YjRiNDZkYzk0ZTU1NTg3YTEwN2VhMTU0NmJmMjJkMjhhMDk3ZjY1MmE0MDY2ZGMyOTY1MjY5MDY5YWYyZjUxNzZiYjhjZTljYTZkMTFmOTY3NTdmMDMyMDRmNzU2NzAzNTg3ZDAwYWQ0MjQ3OTZjOTJmYzdhZWI2ZjQ5NDQzMTk5OWVkYTMwOTkwZTRmNTc3MzYzMmVkMjU4ZmUwMjc2NjczNTk5ZGE2ZmNlMzVjZGFkNzcyNmEwYmIwMjRjYWQ5OTZiODhlMGNiOTg4NTRjZWI1YzBiNmVjNzQ4ZDlmOWNlNmE2Y2Q0Mzc4NThiYWNiODE0NjE4YTI3MmZmM2E0MTVjNmUwN2YzZGIwOTg4Nzc3ZmRlYzg0NWE5N2JmN2QxMDJkZDAiCiAKIFBLQ1M3IFBhcnNlIEZhaWx1cmUgSW52YWxpZCBBU04xOiBDaGFuZ2UgbGVuZ3RoIGZyb20gMyB0byAyICM3NC4wCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NgogcGtjczdfYXNuMV9mYWlsOiIzMDgyMDUwMDA2MDkyYTg2NDg4NmY3MGQwMTA3MDJhMDgyMDRmMTMwODIwNGVkMDIwMTAxMzEwZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGIwNjA5MmE4NjQ4ODZmNzBkMDEwNzAxYTA4MjAzNGQzMDgyMDM0OTMwODIwMjMxYTAwMjAyMDEwMjAyMTQ3YmRlZGRkMjQ0NGNkMWNkZmU1YzQxYTgxMDJjODliN2RmMmU2Y2JmMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMzAxZTE3MGQzMjMyMzEzMDMyMzgzMTM2MzEzMDM1MzY1YTE3MGQzMjMzMzEzMDMyMzgzMTM2MzEzMDM1MzY1YTMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTMwODIwMTIyMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDM4MjAxMGYwMDMwODIwMTBhMDI4MjAxMDEwMGM4YjZjZjY5ODk5Y2QxZjBlYmI0Y2E2NDVjMDVlNzBlMGQyZWZlZGRjYzYxZDA4OWNiZDUxNWEzOWEzNTc5YjkyMzQzYjYxZWM3NTAwNjBmYjRlZDM3ODc2MzMyNDAwZTQyNWYxZDM3NmM3ZTc1YzI5NzMzMTRlZGY0YmIzMGM4ZjhkZDAzYjlmY2ZmOTU1YTI0NWQ0OTEzN2FkNmU2MDA1NmNhYzE5NTUyYTg2NWQ1MjE4NzE4N2NjMDQyYzljNDllM2UzYTljMTdhNTM0YjQ1M2NkYWJjMGNiMTEzYjRmNjNmNWIzMTc0YjllZTk5MDJiMTkxMGQxMTQ5NmEyNzlhNzQzMjZhZGNmZWUxMGJmZDllN2ViYWZiYjM3N2JlOWI2Mzk1OTE2NWQxM2RkNTc1MTE3MWNhZGFkM2MxZDNhZGFjNjhiYzgwMTFkNjFiNTRjZjYwMTc4YmUzNjgzOWE4OWFjOTFhYjQxOWUzY2EzN2Q2YmE4ODFkMjU1MThjNGRiNjhiY2E2ZjdjODM2MDJmNjk5YTg2YjE3ZmIxZTc3M2JjYmU3NGJiOTNhNDliMjUxYWU4NjQyOGI1NzQwZTE4NjhiYjFkNmZhYjllMjg3MTJlOThlYzMxOWFkOGZjYTRkNzMwMTBjNGIwOWM0YjgwNDU4OTYxZTdjZjA4MzUzMDIwMzAxMDAwMWEzNTMzMDUxMzAxZDA2MDM1NTFkMGUwNDE2MDQxNDhhZWVlNTk0N2NjNjdjNWRkNTE1YTc2ZTJhN2VjZDMxZWU1MmZkYzgzMDFmMDYwMzU1MWQyMzA0MTgzMDE2ODAxNDhhZWVlNTk0N2NjNjdjNWRkNTE1YTc2ZTJhN2VjZDMxZWU1MmZkYzgzMDBmMDYwMzU1MWQxMzAxMDFmZjA0MDUzMDAzMDEwMWZmMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMDM4MjAxMDEwMDgyMWQ2Yjk4Y2Q0NTdkZWJkMmIwODFhY2EyN2ViZWNkNGY5M2FjYzgyODQ0M2IzOWVhYmZmYTlmYTRlOWU0NTQzYjQ2ZmNjMzFlMmI1YjQ4MTc3OTAzZGVhNjk2OWFjNGEyY2M2NTcwNjUwMzkwZjFiMDhkNDNhNGMyZjk3NWM3ZWQ4YmYzMzU2YzcyMTgzODAyMTI0NTFhOGYxMWRlNDY1NTNjYmNkNjViNDI1NGRkYjhmNjY4MzRlYjIxZGRhMmE4ZjMzYjU4MWUxNDg0NTU3YWNhMWI5NGVlODkzMWRkZjE2MDM3YjdhNzE3MTMyMWE5MTkzNmFmYzI3ZmZjZTM5NWRlNzVkNWY3MGNiOGI1YWVlMDVmZjUwNzA4OGQ2NWFmMWU0Mzk2NmNkNDJjYmU2ZjdmYWNmOGRhZTA1NWRkODIyMmIxNjk2NTIxNzIzZjgxMjQ1MTc4NTk1Yzk4NWFlOTE3ZmQ0YjM5OTg3NzNlMWE5N2I3YmQxMDA4NTQ0NmY0MjU5YmNjMDlhNDU0OTI5MjgyYzFiODliNzFlZDU4N2E3NzVlMGEzZDQ1MzYzNDFmNDVkYWU5NjllODA2Yzk2ZmVmYzcxMDY3Nzc2YzAyYmEyMjEyMmI5MTk5YjE0YzBjMjhjMDQ0ODc1MDkwNzBiOTdmM2RkMmQ2ZDk3MjczMzE4MjAxNzczMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwNWJlY2Q4NzE5NWMxZGVmZjkwYzI0YzkxMjY5YjU1YjNmMDY5YmMyMjVjMzI2YzMxNGMxYTUxNzg2ZmZlMTRjODMwYmU0ZTRiYzczY2JhMzZjOTc2NzdiNDQxNjgyNzliZTkxZTdjZGY3YzE5Mzg2YWUyMTg2MjcxOWQxM2EzYTBmZmYwODAzZDQ2MDk2MmYyY2RhODM3MTQ4NDg3MzI1MmMzZDcwNTRkYjgxNDNlMmIwODFhMzgxNmVkMDgwNGNhNTA5OWFlNWZlY2U4M2Q1YzJjMzc4M2IxOTg4YjRiNDZkYzk0ZTU1NTg3YTEwN2VhMTU0NmJmMjJkMjhhMDk3ZjY1MmE0MDY2ZGMyOTY1MjY5MDY5YWYyZjUxNzZiYjhjZTljYTZkMTFmOTY3NTdmMDMyMDRmNzU2NzAzNTg3ZDAwYWQ0MjQ3OTZjOTJmYzdhZWI2ZjQ5NDQzMTk5OWVkYTMwOTkwZTRmNTc3MzYzMmVkMjU4ZmUwMjc2NjczNTk5ZGE2ZmNlMzVjZGFkNzcyNmEwYmIwMjRjYWQ5OTZiODhlMGNiOTg4NTRjZWI1YzBiNmVjNzQ4ZDlmOWNlNmE2Y2Q0Mzc4NThiYWNiODE0NjE4YTI3MmZmM2E0MTVjNmUwN2YzZGIwOTg4Nzc3ZmRlYzg0NWE5N2JmN2QxMDJkZDAiCiAKIFBLQ1M3IFBhcnNlIEZhaWx1cmUgSW52YWxpZCBBU04xOiBDaGFuZ2UgdGFnIDAyIHRvIDA0ICM3NS4wCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NgogcGtjczdfYXNuMV9mYWlsOiIzMDgyMDUwMDA2MDkyYTg2NDg4NmY3MGQwMTA3MDJhMDgyMDRmMTMwODIwNGVkMDIwMTAxMzEwZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGIwNjA5MmE4NjQ4ODZmNzBkMDEwNzAxYTA4MjAzNGQzMDgyMDM0OTMwODIwMjMxYTAwMzA0MDEwMjAyMTQ3YmRlZGRkMjQ0NGNkMWNkZmU1YzQxYTgxMDJjODliN2RmMmU2Y2JmMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMzAxZTE3MGQzMjMyMzEzMDMyMzgzMTM2MzEzMDM1MzY1YTE3MGQzMjMzMzEzMDMyMzgzMTM2MzEzMDM1MzY1YTMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTMwODIwMTIyMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDM4MjAxMGYwMDMwODIwMTBhMDI4MjAxMDEwMGM4YjZjZjY5ODk5Y2QxZjBlYmI0Y2E2NDVjMDVlNzBlMGQyZWZlZGRjYzYxZDA4OWNiZDUxNWEzOWEzNTc5YjkyMzQzYjYxZWM3NTAwNjBmYjRlZDM3ODc2MzMyNDAwZTQyNWYxZDM3NmM3ZTc1YzI5NzMzMTRlZGY0YmIzMGM4ZjhkZDAzYjlmY2ZmOTU1YTI0NWQ0OTEzN2FkNmU2MDA1NmNhYzE5NTUyYTg2NWQ1MjE4NzE4N2NjMDQyYzljNDllM2UzYTljMTdhNTM0YjQ1M2NkYWJjMGNiMTEzYjRmNjNmNWIzMTc0YjllZTk5MDJiMTkxMGQxMTQ5NmEyNzlhNzQzMjZhZGNmZWUxMGJmZDllN2ViYWZiYjM3N2JlOWI2Mzk1OTE2NWQxM2RkNTc1MTE3MWNhZGFkM2MxZDNhZGFjNjhiYzgwMTFkNjFiNTRjZjYwMTc4YmUzNjgzOWE4OWFjOTFhYjQxOWUzY2EzN2Q2YmE4ODFkMjU1MThjNGRiNjhiY2E2ZjdjODM2MDJmNjk5YTg2YjE3ZmIxZTc3M2JjYmU3NGJiOTNhNDliMjUxYWU4NjQyOGI1NzQwZTE4NjhiYjFkNmZhYjllMjg3MTJlOThlYzMxOWFkOGZjYTRkNzMwMTBjNGIwOWM0YjgwNDU4OTYxZTdjZjA4MzUzMDIwMzAxMDAwMWEzNTMzMDUxMzAxZDA2MDM1NTFkMGUwNDE2MDQxNDhhZWVlNTk0N2NjNjdjNWRkNTE1YTc2ZTJhN2VjZDMxZWU1MmZkYzgzMDFmMDYwMzU1MWQyMzA0MTgzMDE2ODAxNDhhZWVlNTk0N2NjNjdjNWRkNTE1YTc2ZTJhN2VjZDMxZWU1MmZkYzgzMDBmMDYwMzU1MWQxMzAxMDFmZjA0MDUzMDAzMDEwMWZmMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMDM4MjAxMDEwMDgyMWQ2Yjk4Y2Q0NTdkZWJkMmIwODFhY2EyN2ViZWNkNGY5M2FjYzgyODQ0M2IzOWVhYmZmYTlmYTRlOWU0NTQzYjQ2ZmNjMzFlMmI1YjQ4MTc3OTAzZGVhNjk2OWFjNGEyY2M2NTcwNjUwMzkwZjFiMDhkNDNhNGMyZjk3NWM3ZWQ4YmYzMzU2YzcyMTgzODAyMTI0NTFhOGYxMWRlNDY1NTNjYmNkNjViNDI1NGRkYjhmNjY4MzRlYjIxZGRhMmE4ZjMzYjU4MWUxNDg0NTU3YWNhMWI5NGVlODkzMWRkZjE2MDM3YjdhNzE3MTMyMWE5MTkzNmFmYzI3ZmZjZTM5NWRlNzVkNWY3MGNiOGI1YWVlMDVmZjUwNzA4OGQ2NWFmMWU0Mzk2NmNkNDJjYmU2ZjdmYWNmOGRhZTA1NWRkODIyMmIxNjk2NTIxNzIzZjgxMjQ1MTc4NTk1Yzk4NWFlOTE3ZmQ0YjM5OTg3NzNlMWE5N2I3YmQxMDA4NTQ0NmY0MjU5YmNjMDlhNDU0OTI5MjgyYzFiODliNzFlZDU4N2E3NzVlMGEzZDQ1MzYzNDFmNDVkYWU5NjllODA2Yzk2ZmVmYzcxMDY3Nzc2YzAyYmEyMjEyMmI5MTk5YjE0YzBjMjhjMDQ0ODc1MDkwNzBiOTdmM2RkMmQ2ZDk3MjczMzE4MjAxNzczMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwNWJlY2Q4NzE5NWMxZGVmZjkwYzI0YzkxMjY5YjU1YjNmMDY5YmMyMjVjMzI2YzMxNGMxYTUxNzg2ZmZlMTRjODMwYmU0ZTRiYzczY2JhMzZjOTc2NzdiNDQxNjgyNzliZTkxZTdjZGY3YzE5Mzg2YWUyMTg2MjcxOWQxM2EzYTBmZmYwODAzZDQ2MDk2MmYyY2RhODM3MTQ4NDg3MzI1MmMzZDcwNTRkYjgxNDNlMmIwODFhMzgxNmVkMDgwNGNhNTA5OWFlNWZlY2U4M2Q1YzJjMzc4M2IxOTg4YjRiNDZkYzk0ZTU1NTg3YTEwN2VhMTU0NmJmMjJkMjhhMDk3ZjY1MmE0MDY2ZGMyOTY1MjY5MDY5YWYyZjUxNzZiYjhjZTljYTZkMTFmOTY3NTdmMDMyMDRmNzU2NzAzNTg3ZDAwYWQ0MjQ3OTZjOTJmYzdhZWI2ZjQ5NDQzMTk5OWVkYTMwOTkwZTRmNTc3MzYzMmVkMjU4ZmUwMjc2NjczNTk5ZGE2ZmNlMzVjZGFkNzcyNmEwYmIwMjRjYWQ5OTZiODhlMGNiOTg4NTRjZWI1YzBiNmVjNzQ4ZDlmOWNlNmE2Y2Q0Mzc4NThiYWNiODE0NjE4YTI3MmZmM2E0MTVjNmUwN2YzZGIwOTg4Nzc3ZmRlYzg0NWE5N2JmN2QxMDJkZDAiCiAKIFBLQ1M3IFBhcnNlIEZhaWx1cmUgSW52YWxpZCBBU04xOiBDaGFuZ2UgbGVuZ3RoIGZyb20gMSB0byAyICM3Ni4wCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NgogcGtjczdfYXNuMV9mYWlsOiIzMDgyMDUwMDA2MDkyYTg2NDg4NmY3MGQwMTA3MDJhMDgyMDRmMTMwODIwNGVkMDIwMTAxMzEwZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGIwNjA5MmE4NjQ4ODZmNzBkMDEwNzAxYTA4MjAzNGQzMDgyMDM0OTMwODIwMjMxYTAwMzAyMDIwMjAyMTQ3YmRlZGRkMjQ0NGNkMWNkZmU1YzQxYTgxMDJjODliN2RmMmU2Y2JmMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMzAxZTE3MGQzMjMyMzEzMDMyMzgzMTM2MzEzMDM1MzY1YTE3MGQzMjMzMzEzMDMyMzgzMTM2MzEzMDM1MzY1YTMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTMwODIwMTIyMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDM4MjAxMGYwMDMwODIwMTBhMDI4MjAxMDEwMGM4YjZjZjY5ODk5Y2QxZjBlYmI0Y2E2NDVjMDVlNzBlMGQyZWZlZGRjYzYxZDA4OWNiZDUxNWEzOWEzNTc5YjkyMzQzYjYxZWM3NTAwNjBmYjRlZDM3ODc2MzMyNDAwZTQyNWYxZDM3NmM3ZTc1YzI5NzMzMTRlZGY0YmIzMGM4ZjhkZDAzYjlmY2ZmOTU1YTI0NWQ0OTEzN2FkNmU2MDA1NmNhYzE5NTUyYTg2NWQ1MjE4NzE4N2NjMDQyYzljNDllM2UzYTljMTdhNTM0YjQ1M2NkYWJjMGNiMTEzYjRmNjNmNWIzMTc0YjllZTk5MDJiMTkxMGQxMTQ5NmEyNzlhNzQzMjZhZGNmZWUxMGJmZDllN2ViYWZiYjM3N2JlOWI2Mzk1OTE2NWQxM2RkNTc1MTE3MWNhZGFkM2MxZDNhZGFjNjhiYzgwMTFkNjFiNTRjZjYwMTc4YmUzNjgzOWE4OWFjOTFhYjQxOWUzY2EzN2Q2YmE4ODFkMjU1MThjNGRiNjhiY2E2ZjdjODM2MDJmNjk5YTg2YjE3ZmIxZTc3M2JjYmU3NGJiOTNhNDliMjUxYWU4NjQyOGI1NzQwZTE4NjhiYjFkNmZhYjllMjg3MTJlOThlYzMxOWFkOGZjYTRkNzMwMTBjNGIwOWM0YjgwNDU4OTYxZTdjZjA4MzUzMDIwMzAxMDAwMWEzNTMzMDUxMzAxZDA2MDM1NTFkMGUwNDE2MDQxNDhhZWVlNTk0N2NjNjdjNWRkNTE1YTc2ZTJhN2VjZDMxZWU1MmZkYzgzMDFmMDYwMzU1MWQyMzA0MTgzMDE2ODAxNDhhZWVlNTk0N2NjNjdjNWRkNTE1YTc2ZTJhN2VjZDMxZWU1MmZkYzgzMDBmMDYwMzU1MWQxMzAxMDFmZjA0MDUzMDAzMDEwMWZmMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMDM4MjAxMDEwMDgyMWQ2Yjk4Y2Q0NTdkZWJkMmIwODFhY2EyN2ViZWNkNGY5M2FjYzgyODQ0M2IzOWVhYmZmYTlmYTRlOWU0NTQzYjQ2ZmNjMzFlMmI1YjQ4MTc3OTAzZGVhNjk2OWFjNGEyY2M2NTcwNjUwMzkwZjFiMDhkNDNhNGMyZjk3NWM3ZWQ4YmYzMzU2YzcyMTgzODAyMTI0NTFhOGYxMWRlNDY1NTNjYmNkNjViNDI1NGRkYjhmNjY4MzRlYjIxZGRhMmE4ZjMzYjU4MWUxNDg0NTU3YWNhMWI5NGVlODkzMWRkZjE2MDM3YjdhNzE3MTMyMWE5MTkzNmFmYzI3ZmZjZTM5NWRlNzVkNWY3MGNiOGI1YWVlMDVmZjUwNzA4OGQ2NWFmMWU0Mzk2NmNkNDJjYmU2ZjdmYWNmOGRhZTA1NWRkODIyMmIxNjk2NTIxNzIzZjgxMjQ1MTc4NTk1Yzk4NWFlOTE3ZmQ0YjM5OTg3NzNlMWE5N2I3YmQxMDA4NTQ0NmY0MjU5YmNjMDlhNDU0OTI5MjgyYzFiODliNzFlZDU4N2E3NzVlMGEzZDQ1MzYzNDFmNDVkYWU5NjllODA2Yzk2ZmVmYzcxMDY3Nzc2YzAyYmEyMjEyMmI5MTk5YjE0YzBjMjhjMDQ0ODc1MDkwNzBiOTdmM2RkMmQ2ZDk3MjczMzE4MjAxNzczMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwNWJlY2Q4NzE5NWMxZGVmZjkwYzI0YzkxMjY5YjU1YjNmMDY5YmMyMjVjMzI2YzMxNGMxYTUxNzg2ZmZlMTRjODMwYmU0ZTRiYzczY2JhMzZjOTc2NzdiNDQxNjgyNzliZTkxZTdjZGY3YzE5Mzg2YWUyMTg2MjcxOWQxM2EzYTBmZmYwODAzZDQ2MDk2MmYyY2RhODM3MTQ4NDg3MzI1MmMzZDcwNTRkYjgxNDNlMmIwODFhMzgxNmVkMDgwNGNhNTA5OWFlNWZlY2U4M2Q1YzJjMzc4M2IxOTg4YjRiNDZkYzk0ZTU1NTg3YTEwN2VhMTU0NmJmMjJkMjhhMDk3ZjY1MmE0MDY2ZGMyOTY1MjY5MDY5YWYyZjUxNzZiYjhjZTljYTZkMTFmOTY3NTdmMDMyMDRmNzU2NzAzNTg3ZDAwYWQ0MjQ3OTZjOTJmYzdhZWI2ZjQ5NDQzMTk5OWVkYTMwOTkwZTRmNTc3MzYzMmVkMjU4ZmUwMjc2NjczNTk5ZGE2ZmNlMzVjZGFkNzcyNmEwYmIwMjRjYWQ5OTZiODhlMGNiOTg4NTRjZWI1YzBiNmVjNzQ4ZDlmOWNlNmE2Y2Q0Mzc4NThiYWNiODE0NjE4YTI3MmZmM2E0MTVjNmUwN2YzZGIwOTg4Nzc3ZmRlYzg0NWE5N2JmN2QxMDJkZDAiCiAKIFBLQ1M3IFBhcnNlIEZhaWx1cmUgSW52YWxpZCBBU04xOiBDaGFuZ2UgbGVuZ3RoIGZyb20gMSB0byAwICM3Ny4wCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NgogcGtjczdfYXNuMV9mYWlsOiIzMDgyMDUwMDA2MDkyYTg2NDg4NmY3MGQwMTA3MDJhMDgyMDRmMTMwODIwNGVkMDIwMTAxMzEwZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGIwNjA5MmE4NjQ4ODZmNzBkMDEwNzAxYTA4MjAzNGQzMDgyMDM0OTMwODIwMjMxYTAwMzAyMDAwMjAyMTQ3YmRlZGRkMjQ0NGNkMWNkZmU1YzQxYTgxMDJjODliN2RmMmU2Y2JmMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMzAxZTE3MGQzMjMyMzEzMDMyMzgzMTM2MzEzMDM1MzY1YTE3MGQzMjMzMzEzMDMyMzgzMTM2MzEzMDM1MzY1YTMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTMwODIwMTIyMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDM4MjAxMGYwMDMwODIwMTBhMDI4MjAxMDEwMGM4YjZjZjY5ODk5Y2QxZjBlYmI0Y2E2NDVjMDVlNzBlMGQyZWZlZGRjYzYxZDA4OWNiZDUxNWEzOWEzNTc5YjkyMzQzYjYxZWM3NTAwNjBmYjRlZDM3ODc2MzMyNDAwZTQyNWYxZDM3NmM3ZTc1YzI5NzMzMTRlZGY0YmIzMGM4ZjhkZDAzYjlmY2ZmOTU1YTI0NWQ0OTEzN2FkNmU2MDA1NmNhYzE5NTUyYTg2NWQ1MjE4NzE4N2NjMDQyYzljNDllM2UzYTljMTdhNTM0YjQ1M2NkYWJjMGNiMTEzYjRmNjNmNWIzMTc0YjllZTk5MDJiMTkxMGQxMTQ5NmEyNzlhNzQzMjZhZGNmZWUxMGJmZDllN2ViYWZiYjM3N2JlOWI2Mzk1OTE2NWQxM2RkNTc1MTE3MWNhZGFkM2MxZDNhZGFjNjhiYzgwMTFkNjFiNTRjZjYwMTc4YmUzNjgzOWE4OWFjOTFhYjQxOWUzY2EzN2Q2YmE4ODFkMjU1MThjNGRiNjhiY2E2ZjdjODM2MDJmNjk5YTg2YjE3ZmIxZTc3M2JjYmU3NGJiOTNhNDliMjUxYWU4NjQyOGI1NzQwZTE4NjhiYjFkNmZhYjllMjg3MTJlOThlYzMxOWFkOGZjYTRkNzMwMTBjNGIwOWM0YjgwNDU4OTYxZTdjZjA4MzUzMDIwMzAxMDAwMWEzNTMzMDUxMzAxZDA2MDM1NTFkMGUwNDE2MDQxNDhhZWVlNTk0N2NjNjdjNWRkNTE1YTc2ZTJhN2VjZDMxZWU1MmZkYzgzMDFmMDYwMzU1MWQyMzA0MTgzMDE2ODAxNDhhZWVlNTk0N2NjNjdjNWRkNTE1YTc2ZTJhN2VjZDMxZWU1MmZkYzgzMDBmMDYwMzU1MWQxMzAxMDFmZjA0MDUzMDAzMDEwMWZmMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMDM4MjAxMDEwMDgyMWQ2Yjk4Y2Q0NTdkZWJkMmIwODFhY2EyN2ViZWNkNGY5M2FjYzgyODQ0M2IzOWVhYmZmYTlmYTRlOWU0NTQzYjQ2ZmNjMzFlMmI1YjQ4MTc3OTAzZGVhNjk2OWFjNGEyY2M2NTcwNjUwMzkwZjFiMDhkNDNhNGMyZjk3NWM3ZWQ4YmYzMzU2YzcyMTgzODAyMTI0NTFhOGYxMWRlNDY1NTNjYmNkNjViNDI1NGRkYjhmNjY4MzRlYjIxZGRhMmE4ZjMzYjU4MWUxNDg0NTU3YWNhMWI5NGVlODkzMWRkZjE2MDM3YjdhNzE3MTMyMWE5MTkzNmFmYzI3ZmZjZTM5NWRlNzVkNWY3MGNiOGI1YWVlMDVmZjUwNzA4OGQ2NWFmMWU0Mzk2NmNkNDJjYmU2ZjdmYWNmOGRhZTA1NWRkODIyMmIxNjk2NTIxNzIzZjgxMjQ1MTc4NTk1Yzk4NWFlOTE3ZmQ0YjM5OTg3NzNlMWE5N2I3YmQxMDA4NTQ0NmY0MjU5YmNjMDlhNDU0OTI5MjgyYzFiODliNzFlZDU4N2E3NzVlMGEzZDQ1MzYzNDFmNDVkYWU5NjllODA2Yzk2ZmVmYzcxMDY3Nzc2YzAyYmEyMjEyMmI5MTk5YjE0YzBjMjhjMDQ0ODc1MDkwNzBiOTdmM2RkMmQ2ZDk3MjczMzE4MjAxNzczMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwNWJlY2Q4NzE5NWMxZGVmZjkwYzI0YzkxMjY5YjU1YjNmMDY5YmMyMjVjMzI2YzMxNGMxYTUxNzg2ZmZlMTRjODMwYmU0ZTRiYzczY2JhMzZjOTc2NzdiNDQxNjgyNzliZTkxZTdjZGY3YzE5Mzg2YWUyMTg2MjcxOWQxM2EzYTBmZmYwODAzZDQ2MDk2MmYyY2RhODM3MTQ4NDg3MzI1MmMzZDcwNTRkYjgxNDNlMmIwODFhMzgxNmVkMDgwNGNhNTA5OWFlNWZlY2U4M2Q1YzJjMzc4M2IxOTg4YjRiNDZkYzk0ZTU1NTg3YTEwN2VhMTU0NmJmMjJkMjhhMDk3ZjY1MmE0MDY2ZGMyOTY1MjY5MDY5YWYyZjUxNzZiYjhjZTljYTZkMTFmOTY3NTdmMDMyMDRmNzU2NzAzNTg3ZDAwYWQ0MjQ3OTZjOTJmYzdhZWI2ZjQ5NDQzMTk5OWVkYTMwOTkwZTRmNTc3MzYzMmVkMjU4ZmUwMjc2NjczNTk5ZGE2ZmNlMzVjZGFkNzcyNmEwYmIwMjRjYWQ5OTZiODhlMGNiOTg4NTRjZWI1YzBiNmVjNzQ4ZDlmOWNlNmE2Y2Q0Mzc4NThiYWNiODE0NjE4YTI3MmZmM2E0MTVjNmUwN2YzZGIwOTg4Nzc3ZmRlYzg0NWE5N2JmN2QxMDJkZDAiCiAKIFBLQ1M3IFBhcnNlIEZhaWx1cmUgSW52YWxpZCBBU04xOiBDaGFuZ2UgdGFnIDAyIHRvIDA0ICM3OC4wCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NgogcGtjczdfYXNuMV9mYWlsOiIzMDgyMDUwMDA2MDkyYTg2NDg4NmY3MGQwMTA3MDJhMDgyMDRmMTMwODIwNGVkMDIwMTAxMzEwZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGIwNjA5MmE4NjQ4ODZmNzBkMDEwNzAxYTA4MjAzNGQzMDgyMDM0OTMwODIwMjMxYTAwMzAyMDEwMjA0MTQ3YmRlZGRkMjQ0NGNkMWNkZmU1YzQxYTgxMDJjODliN2RmMmU2Y2JmMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMzAxZTE3MGQzMjMyMzEzMDMyMzgzMTM2MzEzMDM1MzY1YTE3MGQzMjMzMzEzMDMyMzgzMTM2MzEzMDM1MzY1YTMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTMwODIwMTIyMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDM4MjAxMGYwMDMwODIwMTBhMDI4MjAxMDEwMGM4YjZjZjY5ODk5Y2QxZjBlYmI0Y2E2NDVjMDVlNzBlMGQyZWZlZGRjYzYxZDA4OWNiZDUxNWEzOWEzNTc5YjkyMzQzYjYxZWM3NTAwNjBmYjRlZDM3ODc2MzMyNDAwZTQyNWYxZDM3NmM3ZTc1YzI5NzMzMTRlZGY0YmIzMGM4ZjhkZDAzYjlmY2ZmOTU1YTI0NWQ0OTEzN2FkNmU2MDA1NmNhYzE5NTUyYTg2NWQ1MjE4NzE4N2NjMDQyYzljNDllM2UzYTljMTdhNTM0YjQ1M2NkYWJjMGNiMTEzYjRmNjNmNWIzMTc0YjllZTk5MDJiMTkxMGQxMTQ5NmEyNzlhNzQzMjZhZGNmZWUxMGJmZDllN2ViYWZiYjM3N2JlOWI2Mzk1OTE2NWQxM2RkNTc1MTE3MWNhZGFkM2MxZDNhZGFjNjhiYzgwMTFkNjFiNTRjZjYwMTc4YmUzNjgzOWE4OWFjOTFhYjQxOWUzY2EzN2Q2YmE4ODFkMjU1MThjNGRiNjhiY2E2ZjdjODM2MDJmNjk5YTg2YjE3ZmIxZTc3M2JjYmU3NGJiOTNhNDliMjUxYWU4NjQyOGI1NzQwZTE4NjhiYjFkNmZhYjllMjg3MTJlOThlYzMxOWFkOGZjYTRkNzMwMTBjNGIwOWM0YjgwNDU4OTYxZTdjZjA4MzUzMDIwMzAxMDAwMWEzNTMzMDUxMzAxZDA2MDM1NTFkMGUwNDE2MDQxNDhhZWVlNTk0N2NjNjdjNWRkNTE1YTc2ZTJhN2VjZDMxZWU1MmZkYzgzMDFmMDYwMzU1MWQyMzA0MTgzMDE2ODAxNDhhZWVlNTk0N2NjNjdjNWRkNTE1YTc2ZTJhN2VjZDMxZWU1MmZkYzgzMDBmMDYwMzU1MWQxMzAxMDFmZjA0MDUzMDAzMDEwMWZmMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMDM4MjAxMDEwMDgyMWQ2Yjk4Y2Q0NTdkZWJkMmIwODFhY2EyN2ViZWNkNGY5M2FjYzgyODQ0M2IzOWVhYmZmYTlmYTRlOWU0NTQzYjQ2ZmNjMzFlMmI1YjQ4MTc3OTAzZGVhNjk2OWFjNGEyY2M2NTcwNjUwMzkwZjFiMDhkNDNhNGMyZjk3NWM3ZWQ4YmYzMzU2YzcyMTgzODAyMTI0NTFhOGYxMWRlNDY1NTNjYmNkNjViNDI1NGRkYjhmNjY4MzRlYjIxZGRhMmE4ZjMzYjU4MWUxNDg0NTU3YWNhMWI5NGVlODkzMWRkZjE2MDM3YjdhNzE3MTMyMWE5MTkzNmFmYzI3ZmZjZTM5NWRlNzVkNWY3MGNiOGI1YWVlMDVmZjUwNzA4OGQ2NWFmMWU0Mzk2NmNkNDJjYmU2ZjdmYWNmOGRhZTA1NWRkODIyMmIxNjk2NTIxNzIzZjgxMjQ1MTc4NTk1Yzk4NWFlOTE3ZmQ0YjM5OTg3NzNlMWE5N2I3YmQxMDA4NTQ0NmY0MjU5YmNjMDlhNDU0OTI5MjgyYzFiODliNzFlZDU4N2E3NzVlMGEzZDQ1MzYzNDFmNDVkYWU5NjllODA2Yzk2ZmVmYzcxMDY3Nzc2YzAyYmEyMjEyMmI5MTk5YjE0YzBjMjhjMDQ0ODc1MDkwNzBiOTdmM2RkMmQ2ZDk3MjczMzE4MjAxNzczMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwNWJlY2Q4NzE5NWMxZGVmZjkwYzI0YzkxMjY5YjU1YjNmMDY5YmMyMjVjMzI2YzMxNGMxYTUxNzg2ZmZlMTRjODMwYmU0ZTRiYzczY2JhMzZjOTc2NzdiNDQxNjgyNzliZTkxZTdjZGY3YzE5Mzg2YWUyMTg2MjcxOWQxM2EzYTBmZmYwODAzZDQ2MDk2MmYyY2RhODM3MTQ4NDg3MzI1MmMzZDcwNTRkYjgxNDNlMmIwODFhMzgxNmVkMDgwNGNhNTA5OWFlNWZlY2U4M2Q1YzJjMzc4M2IxOTg4YjRiNDZkYzk0ZTU1NTg3YTEwN2VhMTU0NmJmMjJkMjhhMDk3ZjY1MmE0MDY2ZGMyOTY1MjY5MDY5YWYyZjUxNzZiYjhjZTljYTZkMTFmOTY3NTdmMDMyMDRmNzU2NzAzNTg3ZDAwYWQ0MjQ3OTZjOTJmYzdhZWI2ZjQ5NDQzMTk5OWVkYTMwOTkwZTRmNTc3MzYzMmVkMjU4ZmUwMjc2NjczNTk5ZGE2ZmNlMzVjZGFkNzcyNmEwYmIwMjRjYWQ5OTZiODhlMGNiOTg4NTRjZWI1YzBiNmVjNzQ4ZDlmOWNlNmE2Y2Q0Mzc4NThiYWNiODE0NjE4YTI3MmZmM2E0MTVjNmUwN2YzZGIwOTg4Nzc3ZmRlYzg0NWE5N2JmN2QxMDJkZDAiCiAKIFBLQ1M3IFBhcnNlIEZhaWx1cmUgSW52YWxpZCBBU04xOiBDaGFuZ2UgbGVuZ3RoIGZyb20gMjAgdG8gMjEgIzc5LjAKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBwa2NzN19hc24xX2ZhaWw6IjMwODIwNTAwMDYwOTJhODY0ODg2ZjcwZDAxMDcwMmEwODIwNGYxMzA4MjA0ZWQwMjAxMDEzMTBmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwYjA2MDkyYTg2NDg4NmY3MGQwMTA3MDFhMDgyMDM0ZDMwODIwMzQ5MzA4MjAyMzFhMDAzMDIwMTAyMDIxNTdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEzMDFlMTcwZDMyMzIzMTMwMzIzODMxMzYzMTMwMzUzNjVhMTcwZDMyMzMzMTMwMzIzODMxMzYzMTMwMzUzNjVhMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMzA4MjAxMjIzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwMzgyMDEwZjAwMzA4MjAxMGEwMjgyMDEwMTAwYzhiNmNmNjk4OTljZDFmMGViYjRjYTY0NWMwNWU3MGUwZDJlZmVkZGNjNjFkMDg5Y2JkNTE1YTM5YTM1NzliOTIzNDNiNjFlYzc1MDA2MGZiNGVkMzc4NzYzMzI0MDBlNDI1ZjFkMzc2YzdlNzVjMjk3MzMxNGVkZjRiYjMwYzhmOGRkMDNiOWZjZmY5NTVhMjQ1ZDQ5MTM3YWQ2ZTYwMDU2Y2FjMTk1NTJhODY1ZDUyMTg3MTg3Y2MwNDJjOWM0OWUzZTNhOWMxN2E1MzRiNDUzY2RhYmMwY2IxMTNiNGY2M2Y1YjMxNzRiOWVlOTkwMmIxOTEwZDExNDk2YTI3OWE3NDMyNmFkY2ZlZTEwYmZkOWU3ZWJhZmJiMzc3YmU5YjYzOTU5MTY1ZDEzZGQ1NzUxMTcxY2FkYWQzYzFkM2FkYWM2OGJjODAxMWQ2MWI1NGNmNjAxNzhiZTM2ODM5YTg5YWM5MWFiNDE5ZTNjYTM3ZDZiYTg4MWQyNTUxOGM0ZGI2OGJjYTZmN2M4MzYwMmY2OTlhODZiMTdmYjFlNzczYmNiZTc0YmI5M2E0OWIyNTFhZTg2NDI4YjU3NDBlMTg2OGJiMWQ2ZmFiOWUyODcxMmU5OGVjMzE5YWQ4ZmNhNGQ3MzAxMGM0YjA5YzRiODA0NTg5NjFlN2NmMDgzNTMwMjAzMDEwMDAxYTM1MzMwNTEzMDFkMDYwMzU1MWQwZTA0MTYwNDE0OGFlZWU1OTQ3Y2M2N2M1ZGQ1MTVhNzZlMmE3ZWNkMzFlZTUyZmRjODMwMWYwNjAzNTUxZDIzMDQxODMwMTY4MDE0OGFlZWU1OTQ3Y2M2N2M1ZGQ1MTVhNzZlMmE3ZWNkMzFlZTUyZmRjODMwMGYwNjAzNTUxZDEzMDEwMWZmMDQwNTMwMDMwMTAxZmYzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAwMzgyMDEwMTAwODIxZDZiOThjZDQ1N2RlYmQyYjA4MWFjYTI3ZWJlY2Q0ZjkzYWNjODI4NDQzYjM5ZWFiZmZhOWZhNGU5ZTQ1NDNiNDZmY2MzMWUyYjViNDgxNzc5MDNkZWE2OTY5YWM0YTJjYzY1NzA2NTAzOTBmMWIwOGQ0M2E0YzJmOTc1YzdlZDhiZjMzNTZjNzIxODM4MDIxMjQ1MWE4ZjExZGU0NjU1M2NiY2Q2NWI0MjU0ZGRiOGY2NjgzNGViMjFkZGEyYThmMzNiNTgxZTE0ODQ1NTdhY2ExYjk0ZWU4OTMxZGRmMTYwMzdiN2E3MTcxMzIxYTkxOTM2YWZjMjdmZmNlMzk1ZGU3NWQ1ZjcwY2I4YjVhZWUwNWZmNTA3MDg4ZDY1YWYxZTQzOTY2Y2Q0MmNiZTZmN2ZhY2Y4ZGFlMDU1ZGQ4MjIyYjE2OTY1MjE3MjNmODEyNDUxNzg1OTVjOTg1YWU5MTdmZDRiMzk5ODc3M2UxYTk3YjdiZDEwMDg1NDQ2ZjQyNTliY2MwOWE0NTQ5MjkyODJjMWI4OWI3MWVkNTg3YTc3NWUwYTNkNDUzNjM0MWY0NWRhZTk2OWU4MDZjOTZmZWZjNzEwNjc3NzZjMDJiYTIyMTIyYjkxOTliMTRjMGMyOGMwNDQ4NzUwOTA3MGI5N2YzZGQyZDZkOTcyNzMzMTgyMDE3NzMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTAyMTQ3YmRlZGRkMjQ0NGNkMWNkZmU1YzQxYTgxMDJjODliN2RmMmU2Y2JmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDA1YmVjZDg3MTk1YzFkZWZmOTBjMjRjOTEyNjliNTViM2YwNjliYzIyNWMzMjZjMzE0YzFhNTE3ODZmZmUxNGM4MzBiZTRlNGJjNzNjYmEzNmM5NzY3N2I0NDE2ODI3OWJlOTFlN2NkZjdjMTkzODZhZTIxODYyNzE5ZDEzYTNhMGZmZjA4MDNkNDYwOTYyZjJjZGE4MzcxNDg0ODczMjUyYzNkNzA1NGRiODE0M2UyYjA4MWEzODE2ZWQwODA0Y2E1MDk5YWU1ZmVjZTgzZDVjMmMzNzgzYjE5ODhiNGI0NmRjOTRlNTU1ODdhMTA3ZWExNTQ2YmYyMmQyOGEwOTdmNjUyYTQwNjZkYzI5NjUyNjkwNjlhZjJmNTE3NmJiOGNlOWNhNmQxMWY5Njc1N2YwMzIwNGY3NTY3MDM1ODdkMDBhZDQyNDc5NmM5MmZjN2FlYjZmNDk0NDMxOTk5ZWRhMzA5OTBlNGY1NzczNjMyZWQyNThmZTAyNzY2NzM1OTlkYTZmY2UzNWNkYWQ3NzI2YTBiYjAyNGNhZDk5NmI4OGUwY2I5ODg1NGNlYjVjMGI2ZWM3NDhkOWY5Y2U2YTZjZDQzNzg1OGJhY2I4MTQ2MThhMjcyZmYzYTQxNWM2ZTA3ZjNkYjA5ODg3NzdmZGVjODQ1YTk3YmY3ZDEwMmRkMCIKIAogUEtDUzcgUGFyc2UgRmFpbHVyZSBJbnZhbGlkIEFTTjE6IENoYW5nZSBsZW5ndGggZnJvbSAyMCB0byAxOSAjODAuMAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHBrY3M3X2FzbjFfZmFpbDoiMzA4MjA1MDAwNjA5MmE4NjQ4ODZmNzBkMDEwNzAyYTA4MjA0ZjEzMDgyMDRlZDAyMDEwMTMxMGYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBiMDYwOTJhODY0ODg2ZjcwZDAxMDcwMWEwODIwMzRkMzA4MjAzNDkzMDgyMDIzMWEwMDMwMjAxMDIwMjEzN2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTMwMWUxNzBkMzIzMjMxMzAzMjM4MzEzNjMxMzAzNTM2NWExNzBkMzIzMzMxMzAzMjM4MzEzNjMxMzAzNTM2NWEzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEzMDgyMDEyMjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDAzODIwMTBmMDAzMDgyMDEwYTAyODIwMTAxMDBjOGI2Y2Y2OTg5OWNkMWYwZWJiNGNhNjQ1YzA1ZTcwZTBkMmVmZWRkY2M2MWQwODljYmQ1MTVhMzlhMzU3OWI5MjM0M2I2MWVjNzUwMDYwZmI0ZWQzNzg3NjMzMjQwMGU0MjVmMWQzNzZjN2U3NWMyOTczMzE0ZWRmNGJiMzBjOGY4ZGQwM2I5ZmNmZjk1NWEyNDVkNDkxMzdhZDZlNjAwNTZjYWMxOTU1MmE4NjVkNTIxODcxODdjYzA0MmM5YzQ5ZTNlM2E5YzE3YTUzNGI0NTNjZGFiYzBjYjExM2I0ZjYzZjViMzE3NGI5ZWU5OTAyYjE5MTBkMTE0OTZhMjc5YTc0MzI2YWRjZmVlMTBiZmQ5ZTdlYmFmYmIzNzdiZTliNjM5NTkxNjVkMTNkZDU3NTExNzFjYWRhZDNjMWQzYWRhYzY4YmM4MDExZDYxYjU0Y2Y2MDE3OGJlMzY4MzlhODlhYzkxYWI0MTllM2NhMzdkNmJhODgxZDI1NTE4YzRkYjY4YmNhNmY3YzgzNjAyZjY5OWE4NmIxN2ZiMWU3NzNiY2JlNzRiYjkzYTQ5YjI1MWFlODY0MjhiNTc0MGUxODY4YmIxZDZmYWI5ZTI4NzEyZTk4ZWMzMTlhZDhmY2E0ZDczMDEwYzRiMDljNGI4MDQ1ODk2MWU3Y2YwODM1MzAyMDMwMTAwMDFhMzUzMzA1MTMwMWQwNjAzNTUxZDBlMDQxNjA0MTQ4YWVlZTU5NDdjYzY3YzVkZDUxNWE3NmUyYTdlY2QzMWVlNTJmZGM4MzAxZjA2MDM1NTFkMjMwNDE4MzAxNjgwMTQ4YWVlZTU5NDdjYzY3YzVkZDUxNWE3NmUyYTdlY2QzMWVlNTJmZGM4MzAwZjA2MDM1NTFkMTMwMTAxZmYwNDA1MzAwMzAxMDFmZjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDAzODIwMTAxMDA4MjFkNmI5OGNkNDU3ZGViZDJiMDgxYWNhMjdlYmVjZDRmOTNhY2M4Mjg0NDNiMzllYWJmZmE5ZmE0ZTllNDU0M2I0NmZjYzMxZTJiNWI0ODE3NzkwM2RlYTY5NjlhYzRhMmNjNjU3MDY1MDM5MGYxYjA4ZDQzYTRjMmY5NzVjN2VkOGJmMzM1NmM3MjE4MzgwMjEyNDUxYThmMTFkZTQ2NTUzY2JjZDY1YjQyNTRkZGI4ZjY2ODM0ZWIyMWRkYTJhOGYzM2I1ODFlMTQ4NDU1N2FjYTFiOTRlZTg5MzFkZGYxNjAzN2I3YTcxNzEzMjFhOTE5MzZhZmMyN2ZmY2UzOTVkZTc1ZDVmNzBjYjhiNWFlZTA1ZmY1MDcwODhkNjVhZjFlNDM5NjZjZDQyY2JlNmY3ZmFjZjhkYWUwNTVkZDgyMjJiMTY5NjUyMTcyM2Y4MTI0NTE3ODU5NWM5ODVhZTkxN2ZkNGIzOTk4NzczZTFhOTdiN2JkMTAwODU0NDZmNDI1OWJjYzA5YTQ1NDkyOTI4MmMxYjg5YjcxZWQ1ODdhNzc1ZTBhM2Q0NTM2MzQxZjQ1ZGFlOTY5ZTgwNmM5NmZlZmM3MTA2Nzc3NmMwMmJhMjIxMjJiOTE5OWIxNGMwYzI4YzA0NDg3NTA5MDcwYjk3ZjNkZDJkNmQ5NzI3MzMxODIwMTc3MzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDViZWNkODcxOTVjMWRlZmY5MGMyNGM5MTI2OWI1NWIzZjA2OWJjMjI1YzMyNmMzMTRjMWE1MTc4NmZmZTE0YzgzMGJlNGU0YmM3M2NiYTM2Yzk3Njc3YjQ0MTY4Mjc5YmU5MWU3Y2RmN2MxOTM4NmFlMjE4NjI3MTlkMTNhM2EwZmZmMDgwM2Q0NjA5NjJmMmNkYTgzNzE0ODQ4NzMyNTJjM2Q3MDU0ZGI4MTQzZTJiMDgxYTM4MTZlZDA4MDRjYTUwOTlhZTVmZWNlODNkNWMyYzM3ODNiMTk4OGI0YjQ2ZGM5NGU1NTU4N2ExMDdlYTE1NDZiZjIyZDI4YTA5N2Y2NTJhNDA2NmRjMjk2NTI2OTA2OWFmMmY1MTc2YmI4Y2U5Y2E2ZDExZjk2NzU3ZjAzMjA0Zjc1NjcwMzU4N2QwMGFkNDI0Nzk2YzkyZmM3YWViNmY0OTQ0MzE5OTllZGEzMDk5MGU0ZjU3NzM2MzJlZDI1OGZlMDI3NjY3MzU5OWRhNmZjZTM1Y2RhZDc3MjZhMGJiMDI0Y2FkOTk2Yjg4ZTBjYjk4ODU0Y2ViNWMwYjZlYzc0OGQ5ZjljZTZhNmNkNDM3ODU4YmFjYjgxNDYxOGEyNzJmZjNhNDE1YzZlMDdmM2RiMDk4ODc3N2ZkZWM4NDVhOTdiZjdkMTAyZGQwIgogCiBQS0NTNyBQYXJzZSBGYWlsdXJlIEludmFsaWQgQVNOMTogQ2hhbmdlIHRhZyAzMCB0byAwMiAjODEuMAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHBrY3M3X2FzbjFfZmFpbDoiMzA4MjA1MDAwNjA5MmE4NjQ4ODZmNzBkMDEwNzAyYTA4MjA0ZjEzMDgyMDRlZDAyMDEwMTMxMGYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBiMDYwOTJhODY0ODg2ZjcwZDAxMDcwMWEwODIwMzRkMzA4MjAzNDkzMDgyMDIzMWEwMDMwMjAxMDIwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjAyMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTMwMWUxNzBkMzIzMjMxMzAzMjM4MzEzNjMxMzAzNTM2NWExNzBkMzIzMzMxMzAzMjM4MzEzNjMxMzAzNTM2NWEzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEzMDgyMDEyMjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDAzODIwMTBmMDAzMDgyMDEwYTAyODIwMTAxMDBjOGI2Y2Y2OTg5OWNkMWYwZWJiNGNhNjQ1YzA1ZTcwZTBkMmVmZWRkY2M2MWQwODljYmQ1MTVhMzlhMzU3OWI5MjM0M2I2MWVjNzUwMDYwZmI0ZWQzNzg3NjMzMjQwMGU0MjVmMWQzNzZjN2U3NWMyOTczMzE0ZWRmNGJiMzBjOGY4ZGQwM2I5ZmNmZjk1NWEyNDVkNDkxMzdhZDZlNjAwNTZjYWMxOTU1MmE4NjVkNTIxODcxODdjYzA0MmM5YzQ5ZTNlM2E5YzE3YTUzNGI0NTNjZGFiYzBjYjExM2I0ZjYzZjViMzE3NGI5ZWU5OTAyYjE5MTBkMTE0OTZhMjc5YTc0MzI2YWRjZmVlMTBiZmQ5ZTdlYmFmYmIzNzdiZTliNjM5NTkxNjVkMTNkZDU3NTExNzFjYWRhZDNjMWQzYWRhYzY4YmM4MDExZDYxYjU0Y2Y2MDE3OGJlMzY4MzlhODlhYzkxYWI0MTllM2NhMzdkNmJhODgxZDI1NTE4YzRkYjY4YmNhNmY3YzgzNjAyZjY5OWE4NmIxN2ZiMWU3NzNiY2JlNzRiYjkzYTQ5YjI1MWFlODY0MjhiNTc0MGUxODY4YmIxZDZmYWI5ZTI4NzEyZTk4ZWMzMTlhZDhmY2E0ZDczMDEwYzRiMDljNGI4MDQ1ODk2MWU3Y2YwODM1MzAyMDMwMTAwMDFhMzUzMzA1MTMwMWQwNjAzNTUxZDBlMDQxNjA0MTQ4YWVlZTU5NDdjYzY3YzVkZDUxNWE3NmUyYTdlY2QzMWVlNTJmZGM4MzAxZjA2MDM1NTFkMjMwNDE4MzAxNjgwMTQ4YWVlZTU5NDdjYzY3YzVkZDUxNWE3NmUyYTdlY2QzMWVlNTJmZGM4MzAwZjA2MDM1NTFkMTMwMTAxZmYwNDA1MzAwMzAxMDFmZjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDAzODIwMTAxMDA4MjFkNmI5OGNkNDU3ZGViZDJiMDgxYWNhMjdlYmVjZDRmOTNhY2M4Mjg0NDNiMzllYWJmZmE5ZmE0ZTllNDU0M2I0NmZjYzMxZTJiNWI0ODE3NzkwM2RlYTY5NjlhYzRhMmNjNjU3MDY1MDM5MGYxYjA4ZDQzYTRjMmY5NzVjN2VkOGJmMzM1NmM3MjE4MzgwMjEyNDUxYThmMTFkZTQ2NTUzY2JjZDY1YjQyNTRkZGI4ZjY2ODM0ZWIyMWRkYTJhOGYzM2I1ODFlMTQ4NDU1N2FjYTFiOTRlZTg5MzFkZGYxNjAzN2I3YTcxNzEzMjFhOTE5MzZhZmMyN2ZmY2UzOTVkZTc1ZDVmNzBjYjhiNWFlZTA1ZmY1MDcwODhkNjVhZjFlNDM5NjZjZDQyY2JlNmY3ZmFjZjhkYWUwNTVkZDgyMjJiMTY5NjUyMTcyM2Y4MTI0NTE3ODU5NWM5ODVhZTkxN2ZkNGIzOTk4NzczZTFhOTdiN2JkMTAwODU0NDZmNDI1OWJjYzA5YTQ1NDkyOTI4MmMxYjg5YjcxZWQ1ODdhNzc1ZTBhM2Q0NTM2MzQxZjQ1ZGFlOTY5ZTgwNmM5NmZlZmM3MTA2Nzc3NmMwMmJhMjIxMjJiOTE5OWIxNGMwYzI4YzA0NDg3NTA5MDcwYjk3ZjNkZDJkNmQ5NzI3MzMxODIwMTc3MzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDViZWNkODcxOTVjMWRlZmY5MGMyNGM5MTI2OWI1NWIzZjA2OWJjMjI1YzMyNmMzMTRjMWE1MTc4NmZmZTE0YzgzMGJlNGU0YmM3M2NiYTM2Yzk3Njc3YjQ0MTY4Mjc5YmU5MWU3Y2RmN2MxOTM4NmFlMjE4NjI3MTlkMTNhM2EwZmZmMDgwM2Q0NjA5NjJmMmNkYTgzNzE0ODQ4NzMyNTJjM2Q3MDU0ZGI4MTQzZTJiMDgxYTM4MTZlZDA4MDRjYTUwOTlhZTVmZWNlODNkNWMyYzM3ODNiMTk4OGI0YjQ2ZGM5NGU1NTU4N2ExMDdlYTE1NDZiZjIyZDI4YTA5N2Y2NTJhNDA2NmRjMjk2NTI2OTA2OWFmMmY1MTc2YmI4Y2U5Y2E2ZDExZjk2NzU3ZjAzMjA0Zjc1NjcwMzU4N2QwMGFkNDI0Nzk2YzkyZmM3YWViNmY0OTQ0MzE5OTllZGEzMDk5MGU0ZjU3NzM2MzJlZDI1OGZlMDI3NjY3MzU5OWRhNmZjZTM1Y2RhZDc3MjZhMGJiMDI0Y2FkOTk2Yjg4ZTBjYjk4ODU0Y2ViNWMwYjZlYzc0OGQ5ZjljZTZhNmNkNDM3ODU4YmFjYjgxNDYxOGEyNzJmZjNhNDE1YzZlMDdmM2RiMDk4ODc3N2ZkZWM4NDVhOTdiZjdkMTAyZGQwIgogCiBQS0NTNyBQYXJzZSBGYWlsdXJlIEludmFsaWQgQVNOMTogQ2hhbmdlIGxlbmd0aCBmcm9tIDEzIHRvIDE0ICM4Mi4wCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NgogcGtjczdfYXNuMV9mYWlsOiIzMDgyMDUwMDA2MDkyYTg2NDg4NmY3MGQwMTA3MDJhMDgyMDRmMTMwODIwNGVkMDIwMTAxMzEwZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGIwNjA5MmE4NjQ4ODZmNzBkMDEwNzAxYTA4MjAzNGQzMDgyMDM0OTMwODIwMjMxYTAwMzAyMDEwMjAyMTQ3YmRlZGRkMjQ0NGNkMWNkZmU1YzQxYTgxMDJjODliN2RmMmU2Y2JmMzAwZTA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMzAxZTE3MGQzMjMyMzEzMDMyMzgzMTM2MzEzMDM1MzY1YTE3MGQzMjMzMzEzMDMyMzgzMTM2MzEzMDM1MzY1YTMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTMwODIwMTIyMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDM4MjAxMGYwMDMwODIwMTBhMDI4MjAxMDEwMGM4YjZjZjY5ODk5Y2QxZjBlYmI0Y2E2NDVjMDVlNzBlMGQyZWZlZGRjYzYxZDA4OWNiZDUxNWEzOWEzNTc5YjkyMzQzYjYxZWM3NTAwNjBmYjRlZDM3ODc2MzMyNDAwZTQyNWYxZDM3NmM3ZTc1YzI5NzMzMTRlZGY0YmIzMGM4ZjhkZDAzYjlmY2ZmOTU1YTI0NWQ0OTEzN2FkNmU2MDA1NmNhYzE5NTUyYTg2NWQ1MjE4NzE4N2NjMDQyYzljNDllM2UzYTljMTdhNTM0YjQ1M2NkYWJjMGNiMTEzYjRmNjNmNWIzMTc0YjllZTk5MDJiMTkxMGQxMTQ5NmEyNzlhNzQzMjZhZGNmZWUxMGJmZDllN2ViYWZiYjM3N2JlOWI2Mzk1OTE2NWQxM2RkNTc1MTE3MWNhZGFkM2MxZDNhZGFjNjhiYzgwMTFkNjFiNTRjZjYwMTc4YmUzNjgzOWE4OWFjOTFhYjQxOWUzY2EzN2Q2YmE4ODFkMjU1MThjNGRiNjhiY2E2ZjdjODM2MDJmNjk5YTg2YjE3ZmIxZTc3M2JjYmU3NGJiOTNhNDliMjUxYWU4NjQyOGI1NzQwZTE4NjhiYjFkNmZhYjllMjg3MTJlOThlYzMxOWFkOGZjYTRkNzMwMTBjNGIwOWM0YjgwNDU4OTYxZTdjZjA4MzUzMDIwMzAxMDAwMWEzNTMzMDUxMzAxZDA2MDM1NTFkMGUwNDE2MDQxNDhhZWVlNTk0N2NjNjdjNWRkNTE1YTc2ZTJhN2VjZDMxZWU1MmZkYzgzMDFmMDYwMzU1MWQyMzA0MTgzMDE2ODAxNDhhZWVlNTk0N2NjNjdjNWRkNTE1YTc2ZTJhN2VjZDMxZWU1MmZkYzgzMDBmMDYwMzU1MWQxMzAxMDFmZjA0MDUzMDAzMDEwMWZmMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMDM4MjAxMDEwMDgyMWQ2Yjk4Y2Q0NTdkZWJkMmIwODFhY2EyN2ViZWNkNGY5M2FjYzgyODQ0M2IzOWVhYmZmYTlmYTRlOWU0NTQzYjQ2ZmNjMzFlMmI1YjQ4MTc3OTAzZGVhNjk2OWFjNGEyY2M2NTcwNjUwMzkwZjFiMDhkNDNhNGMyZjk3NWM3ZWQ4YmYzMzU2YzcyMTgzODAyMTI0NTFhOGYxMWRlNDY1NTNjYmNkNjViNDI1NGRkYjhmNjY4MzRlYjIxZGRhMmE4ZjMzYjU4MWUxNDg0NTU3YWNhMWI5NGVlODkzMWRkZjE2MDM3YjdhNzE3MTMyMWE5MTkzNmFmYzI3ZmZjZTM5NWRlNzVkNWY3MGNiOGI1YWVlMDVmZjUwNzA4OGQ2NWFmMWU0Mzk2NmNkNDJjYmU2ZjdmYWNmOGRhZTA1NWRkODIyMmIxNjk2NTIxNzIzZjgxMjQ1MTc4NTk1Yzk4NWFlOTE3ZmQ0YjM5OTg3NzNlMWE5N2I3YmQxMDA4NTQ0NmY0MjU5YmNjMDlhNDU0OTI5MjgyYzFiODliNzFlZDU4N2E3NzVlMGEzZDQ1MzYzNDFmNDVkYWU5NjllODA2Yzk2ZmVmYzcxMDY3Nzc2YzAyYmEyMjEyMmI5MTk5YjE0YzBjMjhjMDQ0ODc1MDkwNzBiOTdmM2RkMmQ2ZDk3MjczMzE4MjAxNzczMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwNWJlY2Q4NzE5NWMxZGVmZjkwYzI0YzkxMjY5YjU1YjNmMDY5YmMyMjVjMzI2YzMxNGMxYTUxNzg2ZmZlMTRjODMwYmU0ZTRiYzczY2JhMzZjOTc2NzdiNDQxNjgyNzliZTkxZTdjZGY3YzE5Mzg2YWUyMTg2MjcxOWQxM2EzYTBmZmYwODAzZDQ2MDk2MmYyY2RhODM3MTQ4NDg3MzI1MmMzZDcwNTRkYjgxNDNlMmIwODFhMzgxNmVkMDgwNGNhNTA5OWFlNWZlY2U4M2Q1YzJjMzc4M2IxOTg4YjRiNDZkYzk0ZTU1NTg3YTEwN2VhMTU0NmJmMjJkMjhhMDk3ZjY1MmE0MDY2ZGMyOTY1MjY5MDY5YWYyZjUxNzZiYjhjZTljYTZkMTFmOTY3NTdmMDMyMDRmNzU2NzAzNTg3ZDAwYWQ0MjQ3OTZjOTJmYzdhZWI2ZjQ5NDQzMTk5OWVkYTMwOTkwZTRmNTc3MzYzMmVkMjU4ZmUwMjc2NjczNTk5ZGE2ZmNlMzVjZGFkNzcyNmEwYmIwMjRjYWQ5OTZiODhlMGNiOTg4NTRjZWI1YzBiNmVjNzQ4ZDlmOWNlNmE2Y2Q0Mzc4NThiYWNiODE0NjE4YTI3MmZmM2E0MTVjNmUwN2YzZGIwOTg4Nzc3ZmRlYzg0NWE5N2JmN2QxMDJkZDAiCiAKIFBLQ1M3IFBhcnNlIEZhaWx1cmUgSW52YWxpZCBBU04xOiBDaGFuZ2UgY29udGVudHMgb2YgdGFnIDMwIHRvIGNvbnRhaW4gb25lIHVuYWNjb3VudGVkIGV4dHJhIGJ5dGUgIzgzLjAKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBwa2NzN19hc24xX2ZhaWw6IjMwODIwNTAwMDYwOTJhODY0ODg2ZjcwZDAxMDcwMmEwODIwNGYxMzA4MjA0ZWQwMjAxMDEzMTBmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwYjA2MDkyYTg2NDg4NmY3MGQwMTA3MDFhMDgyMDM0ZDMwODIwMzQ5MzA4MjAyMzFhMDAzMDIwMTAyMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBlMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAwMDMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTMwMWUxNzBkMzIzMjMxMzAzMjM4MzEzNjMxMzAzNTM2NWExNzBkMzIzMzMxMzAzMjM4MzEzNjMxMzAzNTM2NWEzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEzMDgyMDEyMjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDAzODIwMTBmMDAzMDgyMDEwYTAyODIwMTAxMDBjOGI2Y2Y2OTg5OWNkMWYwZWJiNGNhNjQ1YzA1ZTcwZTBkMmVmZWRkY2M2MWQwODljYmQ1MTVhMzlhMzU3OWI5MjM0M2I2MWVjNzUwMDYwZmI0ZWQzNzg3NjMzMjQwMGU0MjVmMWQzNzZjN2U3NWMyOTczMzE0ZWRmNGJiMzBjOGY4ZGQwM2I5ZmNmZjk1NWEyNDVkNDkxMzdhZDZlNjAwNTZjYWMxOTU1MmE4NjVkNTIxODcxODdjYzA0MmM5YzQ5ZTNlM2E5YzE3YTUzNGI0NTNjZGFiYzBjYjExM2I0ZjYzZjViMzE3NGI5ZWU5OTAyYjE5MTBkMTE0OTZhMjc5YTc0MzI2YWRjZmVlMTBiZmQ5ZTdlYmFmYmIzNzdiZTliNjM5NTkxNjVkMTNkZDU3NTExNzFjYWRhZDNjMWQzYWRhYzY4YmM4MDExZDYxYjU0Y2Y2MDE3OGJlMzY4MzlhODlhYzkxYWI0MTllM2NhMzdkNmJhODgxZDI1NTE4YzRkYjY4YmNhNmY3YzgzNjAyZjY5OWE4NmIxN2ZiMWU3NzNiY2JlNzRiYjkzYTQ5YjI1MWFlODY0MjhiNTc0MGUxODY4YmIxZDZmYWI5ZTI4NzEyZTk4ZWMzMTlhZDhmY2E0ZDczMDEwYzRiMDljNGI4MDQ1ODk2MWU3Y2YwODM1MzAyMDMwMTAwMDFhMzUzMzA1MTMwMWQwNjAzNTUxZDBlMDQxNjA0MTQ4YWVlZTU5NDdjYzY3YzVkZDUxNWE3NmUyYTdlY2QzMWVlNTJmZGM4MzAxZjA2MDM1NTFkMjMwNDE4MzAxNjgwMTQ4YWVlZTU5NDdjYzY3YzVkZDUxNWE3NmUyYTdlY2QzMWVlNTJmZGM4MzAwZjA2MDM1NTFkMTMwMTAxZmYwNDA1MzAwMzAxMDFmZjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDAzODIwMTAxMDA4MjFkNmI5OGNkNDU3ZGViZDJiMDgxYWNhMjdlYmVjZDRmOTNhY2M4Mjg0NDNiMzllYWJmZmE5ZmE0ZTllNDU0M2I0NmZjYzMxZTJiNWI0ODE3NzkwM2RlYTY5NjlhYzRhMmNjNjU3MDY1MDM5MGYxYjA4ZDQzYTRjMmY5NzVjN2VkOGJmMzM1NmM3MjE4MzgwMjEyNDUxYThmMTFkZTQ2NTUzY2JjZDY1YjQyNTRkZGI4ZjY2ODM0ZWIyMWRkYTJhOGYzM2I1ODFlMTQ4NDU1N2FjYTFiOTRlZTg5MzFkZGYxNjAzN2I3YTcxNzEzMjFhOTE5MzZhZmMyN2ZmY2UzOTVkZTc1ZDVmNzBjYjhiNWFlZTA1ZmY1MDcwODhkNjVhZjFlNDM5NjZjZDQyY2JlNmY3ZmFjZjhkYWUwNTVkZDgyMjJiMTY5NjUyMTcyM2Y4MTI0NTE3ODU5NWM5ODVhZTkxN2ZkNGIzOTk4NzczZTFhOTdiN2JkMTAwODU0NDZmNDI1OWJjYzA5YTQ1NDkyOTI4MmMxYjg5YjcxZWQ1ODdhNzc1ZTBhM2Q0NTM2MzQxZjQ1ZGFlOTY5ZTgwNmM5NmZlZmM3MTA2Nzc3NmMwMmJhMjIxMjJiOTE5OWIxNGMwYzI4YzA0NDg3NTA5MDcwYjk3ZjNkZDJkNmQ5NzI3MzMxODIwMTc3MzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDViZWNkODcxOTVjMWRlZmY5MGMyNGM5MTI2OWI1NWIzZjA2OWJjMjI1YzMyNmMzMTRjMWE1MTc4NmZmZTE0YzgzMGJlNGU0YmM3M2NiYTM2Yzk3Njc3YjQ0MTY4Mjc5YmU5MWU3Y2RmN2MxOTM4NmFlMjE4NjI3MTlkMTNhM2EwZmZmMDgwM2Q0NjA5NjJmMmNkYTgzNzE0ODQ4NzMyNTJjM2Q3MDU0ZGI4MTQzZTJiMDgxYTM4MTZlZDA4MDRjYTUwOTlhZTVmZWNlODNkNWMyYzM3ODNiMTk4OGI0YjQ2ZGM5NGU1NTU4N2ExMDdlYTE1NDZiZjIyZDI4YTA5N2Y2NTJhNDA2NmRjMjk2NTI2OTA2OWFmMmY1MTc2YmI4Y2U5Y2E2ZDExZjk2NzU3ZjAzMjA0Zjc1NjcwMzU4N2QwMGFkNDI0Nzk2YzkyZmM3YWViNmY0OTQ0MzE5OTllZGEzMDk5MGU0ZjU3NzM2MzJlZDI1OGZlMDI3NjY3MzU5OWRhNmZjZTM1Y2RhZDc3MjZhMGJiMDI0Y2FkOTk2Yjg4ZTBjYjk4ODU0Y2ViNWMwYjZlYzc0OGQ5ZjljZTZhNmNkNDM3ODU4YmFjYjgxNDYxOGEyNzJmZjNhNDE1YzZlMDdmM2RiMDk4ODc3N2ZkZWM4NDVhOTdiZjdkMTAyZGQwIgogCiBQS0NTNyBQYXJzZSBGYWlsdXJlIEludmFsaWQgQVNOMTogQ2hhbmdlIGxlbmd0aCBmcm9tIDEzIHRvIDEyICM4NC4wCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NgogcGtjczdfYXNuMV9mYWlsOiIzMDgyMDUwMDA2MDkyYTg2NDg4NmY3MGQwMTA3MDJhMDgyMDRmMTMwODIwNGVkMDIwMTAxMzEwZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGIwNjA5MmE4NjQ4ODZmNzBkMDEwNzAxYTA4MjAzNGQzMDgyMDM0OTMwODIwMjMxYTAwMzAyMDEwMjAyMTQ3YmRlZGRkMjQ0NGNkMWNkZmU1YzQxYTgxMDJjODliN2RmMmU2Y2JmMzAwYzA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMzAxZTE3MGQzMjMyMzEzMDMyMzgzMTM2MzEzMDM1MzY1YTE3MGQzMjMzMzEzMDMyMzgzMTM2MzEzMDM1MzY1YTMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTMwODIwMTIyMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDM4MjAxMGYwMDMwODIwMTBhMDI4MjAxMDEwMGM4YjZjZjY5ODk5Y2QxZjBlYmI0Y2E2NDVjMDVlNzBlMGQyZWZlZGRjYzYxZDA4OWNiZDUxNWEzOWEzNTc5YjkyMzQzYjYxZWM3NTAwNjBmYjRlZDM3ODc2MzMyNDAwZTQyNWYxZDM3NmM3ZTc1YzI5NzMzMTRlZGY0YmIzMGM4ZjhkZDAzYjlmY2ZmOTU1YTI0NWQ0OTEzN2FkNmU2MDA1NmNhYzE5NTUyYTg2NWQ1MjE4NzE4N2NjMDQyYzljNDllM2UzYTljMTdhNTM0YjQ1M2NkYWJjMGNiMTEzYjRmNjNmNWIzMTc0YjllZTk5MDJiMTkxMGQxMTQ5NmEyNzlhNzQzMjZhZGNmZWUxMGJmZDllN2ViYWZiYjM3N2JlOWI2Mzk1OTE2NWQxM2RkNTc1MTE3MWNhZGFkM2MxZDNhZGFjNjhiYzgwMTFkNjFiNTRjZjYwMTc4YmUzNjgzOWE4OWFjOTFhYjQxOWUzY2EzN2Q2YmE4ODFkMjU1MThjNGRiNjhiY2E2ZjdjODM2MDJmNjk5YTg2YjE3ZmIxZTc3M2JjYmU3NGJiOTNhNDliMjUxYWU4NjQyOGI1NzQwZTE4NjhiYjFkNmZhYjllMjg3MTJlOThlYzMxOWFkOGZjYTRkNzMwMTBjNGIwOWM0YjgwNDU4OTYxZTdjZjA4MzUzMDIwMzAxMDAwMWEzNTMzMDUxMzAxZDA2MDM1NTFkMGUwNDE2MDQxNDhhZWVlNTk0N2NjNjdjNWRkNTE1YTc2ZTJhN2VjZDMxZWU1MmZkYzgzMDFmMDYwMzU1MWQyMzA0MTgzMDE2ODAxNDhhZWVlNTk0N2NjNjdjNWRkNTE1YTc2ZTJhN2VjZDMxZWU1MmZkYzgzMDBmMDYwMzU1MWQxMzAxMDFmZjA0MDUzMDAzMDEwMWZmMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMDM4MjAxMDEwMDgyMWQ2Yjk4Y2Q0NTdkZWJkMmIwODFhY2EyN2ViZWNkNGY5M2FjYzgyODQ0M2IzOWVhYmZmYTlmYTRlOWU0NTQzYjQ2ZmNjMzFlMmI1YjQ4MTc3OTAzZGVhNjk2OWFjNGEyY2M2NTcwNjUwMzkwZjFiMDhkNDNhNGMyZjk3NWM3ZWQ4YmYzMzU2YzcyMTgzODAyMTI0NTFhOGYxMWRlNDY1NTNjYmNkNjViNDI1NGRkYjhmNjY4MzRlYjIxZGRhMmE4ZjMzYjU4MWUxNDg0NTU3YWNhMWI5NGVlODkzMWRkZjE2MDM3YjdhNzE3MTMyMWE5MTkzNmFmYzI3ZmZjZTM5NWRlNzVkNWY3MGNiOGI1YWVlMDVmZjUwNzA4OGQ2NWFmMWU0Mzk2NmNkNDJjYmU2ZjdmYWNmOGRhZTA1NWRkODIyMmIxNjk2NTIxNzIzZjgxMjQ1MTc4NTk1Yzk4NWFlOTE3ZmQ0YjM5OTg3NzNlMWE5N2I3YmQxMDA4NTQ0NmY0MjU5YmNjMDlhNDU0OTI5MjgyYzFiODliNzFlZDU4N2E3NzVlMGEzZDQ1MzYzNDFmNDVkYWU5NjllODA2Yzk2ZmVmYzcxMDY3Nzc2YzAyYmEyMjEyMmI5MTk5YjE0YzBjMjhjMDQ0ODc1MDkwNzBiOTdmM2RkMmQ2ZDk3MjczMzE4MjAxNzczMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwNWJlY2Q4NzE5NWMxZGVmZjkwYzI0YzkxMjY5YjU1YjNmMDY5YmMyMjVjMzI2YzMxNGMxYTUxNzg2ZmZlMTRjODMwYmU0ZTRiYzczY2JhMzZjOTc2NzdiNDQxNjgyNzliZTkxZTdjZGY3YzE5Mzg2YWUyMTg2MjcxOWQxM2EzYTBmZmYwODAzZDQ2MDk2MmYyY2RhODM3MTQ4NDg3MzI1MmMzZDcwNTRkYjgxNDNlMmIwODFhMzgxNmVkMDgwNGNhNTA5OWFlNWZlY2U4M2Q1YzJjMzc4M2IxOTg4YjRiNDZkYzk0ZTU1NTg3YTEwN2VhMTU0NmJmMjJkMjhhMDk3ZjY1MmE0MDY2ZGMyOTY1MjY5MDY5YWYyZjUxNzZiYjhjZTljYTZkMTFmOTY3NTdmMDMyMDRmNzU2NzAzNTg3ZDAwYWQ0MjQ3OTZjOTJmYzdhZWI2ZjQ5NDQzMTk5OWVkYTMwOTkwZTRmNTc3MzYzMmVkMjU4ZmUwMjc2NjczNTk5ZGE2ZmNlMzVjZGFkNzcyNmEwYmIwMjRjYWQ5OTZiODhlMGNiOTg4NTRjZWI1YzBiNmVjNzQ4ZDlmOWNlNmE2Y2Q0Mzc4NThiYWNiODE0NjE4YTI3MmZmM2E0MTVjNmUwN2YzZGIwOTg4Nzc3ZmRlYzg0NWE5N2JmN2QxMDJkZDAiCiAKIFBLQ1M3IFBhcnNlIEZhaWx1cmUgSW52YWxpZCBBU04xOiBDaGFuZ2UgdGFnIDA2IHRvIDAyICM4NS4wCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NgogcGtjczdfYXNuMV9mYWlsOiIzMDgyMDUwMDA2MDkyYTg2NDg4NmY3MGQwMTA3MDJhMDgyMDRmMTMwODIwNGVkMDIwMTAxMzEwZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGIwNjA5MmE4NjQ4ODZmNzBkMDEwNzAxYTA4MjAzNGQzMDgyMDM0OTMwODIwMjMxYTAwMzAyMDEwMjAyMTQ3YmRlZGRkMjQ0NGNkMWNkZmU1YzQxYTgxMDJjODliN2RmMmU2Y2JmMzAwZDAyMDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMzAxZTE3MGQzMjMyMzEzMDMyMzgzMTM2MzEzMDM1MzY1YTE3MGQzMjMzMzEzMDMyMzgzMTM2MzEzMDM1MzY1YTMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTMwODIwMTIyMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDM4MjAxMGYwMDMwODIwMTBhMDI4MjAxMDEwMGM4YjZjZjY5ODk5Y2QxZjBlYmI0Y2E2NDVjMDVlNzBlMGQyZWZlZGRjYzYxZDA4OWNiZDUxNWEzOWEzNTc5YjkyMzQzYjYxZWM3NTAwNjBmYjRlZDM3ODc2MzMyNDAwZTQyNWYxZDM3NmM3ZTc1YzI5NzMzMTRlZGY0YmIzMGM4ZjhkZDAzYjlmY2ZmOTU1YTI0NWQ0OTEzN2FkNmU2MDA1NmNhYzE5NTUyYTg2NWQ1MjE4NzE4N2NjMDQyYzljNDllM2UzYTljMTdhNTM0YjQ1M2NkYWJjMGNiMTEzYjRmNjNmNWIzMTc0YjllZTk5MDJiMTkxMGQxMTQ5NmEyNzlhNzQzMjZhZGNmZWUxMGJmZDllN2ViYWZiYjM3N2JlOWI2Mzk1OTE2NWQxM2RkNTc1MTE3MWNhZGFkM2MxZDNhZGFjNjhiYzgwMTFkNjFiNTRjZjYwMTc4YmUzNjgzOWE4OWFjOTFhYjQxOWUzY2EzN2Q2YmE4ODFkMjU1MThjNGRiNjhiY2E2ZjdjODM2MDJmNjk5YTg2YjE3ZmIxZTc3M2JjYmU3NGJiOTNhNDliMjUxYWU4NjQyOGI1NzQwZTE4NjhiYjFkNmZhYjllMjg3MTJlOThlYzMxOWFkOGZjYTRkNzMwMTBjNGIwOWM0YjgwNDU4OTYxZTdjZjA4MzUzMDIwMzAxMDAwMWEzNTMzMDUxMzAxZDA2MDM1NTFkMGUwNDE2MDQxNDhhZWVlNTk0N2NjNjdjNWRkNTE1YTc2ZTJhN2VjZDMxZWU1MmZkYzgzMDFmMDYwMzU1MWQyMzA0MTgzMDE2ODAxNDhhZWVlNTk0N2NjNjdjNWRkNTE1YTc2ZTJhN2VjZDMxZWU1MmZkYzgzMDBmMDYwMzU1MWQxMzAxMDFmZjA0MDUzMDAzMDEwMWZmMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMDM4MjAxMDEwMDgyMWQ2Yjk4Y2Q0NTdkZWJkMmIwODFhY2EyN2ViZWNkNGY5M2FjYzgyODQ0M2IzOWVhYmZmYTlmYTRlOWU0NTQzYjQ2ZmNjMzFlMmI1YjQ4MTc3OTAzZGVhNjk2OWFjNGEyY2M2NTcwNjUwMzkwZjFiMDhkNDNhNGMyZjk3NWM3ZWQ4YmYzMzU2YzcyMTgzODAyMTI0NTFhOGYxMWRlNDY1NTNjYmNkNjViNDI1NGRkYjhmNjY4MzRlYjIxZGRhMmE4ZjMzYjU4MWUxNDg0NTU3YWNhMWI5NGVlODkzMWRkZjE2MDM3YjdhNzE3MTMyMWE5MTkzNmFmYzI3ZmZjZTM5NWRlNzVkNWY3MGNiOGI1YWVlMDVmZjUwNzA4OGQ2NWFmMWU0Mzk2NmNkNDJjYmU2ZjdmYWNmOGRhZTA1NWRkODIyMmIxNjk2NTIxNzIzZjgxMjQ1MTc4NTk1Yzk4NWFlOTE3ZmQ0YjM5OTg3NzNlMWE5N2I3YmQxMDA4NTQ0NmY0MjU5YmNjMDlhNDU0OTI5MjgyYzFiODliNzFlZDU4N2E3NzVlMGEzZDQ1MzYzNDFmNDVkYWU5NjllODA2Yzk2ZmVmYzcxMDY3Nzc2YzAyYmEyMjEyMmI5MTk5YjE0YzBjMjhjMDQ0ODc1MDkwNzBiOTdmM2RkMmQ2ZDk3MjczMzE4MjAxNzczMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwNWJlY2Q4NzE5NWMxZGVmZjkwYzI0YzkxMjY5YjU1YjNmMDY5YmMyMjVjMzI2YzMxNGMxYTUxNzg2ZmZlMTRjODMwYmU0ZTRiYzczY2JhMzZjOTc2NzdiNDQxNjgyNzliZTkxZTdjZGY3YzE5Mzg2YWUyMTg2MjcxOWQxM2EzYTBmZmYwODAzZDQ2MDk2MmYyY2RhODM3MTQ4NDg3MzI1MmMzZDcwNTRkYjgxNDNlMmIwODFhMzgxNmVkMDgwNGNhNTA5OWFlNWZlY2U4M2Q1YzJjMzc4M2IxOTg4YjRiNDZkYzk0ZTU1NTg3YTEwN2VhMTU0NmJmMjJkMjhhMDk3ZjY1MmE0MDY2ZGMyOTY1MjY5MDY5YWYyZjUxNzZiYjhjZTljYTZkMTFmOTY3NTdmMDMyMDRmNzU2NzAzNTg3ZDAwYWQ0MjQ3OTZjOTJmYzdhZWI2ZjQ5NDQzMTk5OWVkYTMwOTkwZTRmNTc3MzYzMmVkMjU4ZmUwMjc2NjczNTk5ZGE2ZmNlMzVjZGFkNzcyNmEwYmIwMjRjYWQ5OTZiODhlMGNiOTg4NTRjZWI1YzBiNmVjNzQ4ZDlmOWNlNmE2Y2Q0Mzc4NThiYWNiODE0NjE4YTI3MmZmM2E0MTVjNmUwN2YzZGIwOTg4Nzc3ZmRlYzg0NWE5N2JmN2QxMDJkZDAiCiAKIFBLQ1M3IFBhcnNlIEZhaWx1cmUgSW52YWxpZCBBU04xOiBDaGFuZ2UgbGVuZ3RoIGZyb20gOSB0byAxMCAjODYuMAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHBrY3M3X2FzbjFfZmFpbDoiMzA4MjA1MDAwNjA5MmE4NjQ4ODZmNzBkMDEwNzAyYTA4MjA0ZjEzMDgyMDRlZDAyMDEwMTMxMGYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBiMDYwOTJhODY0ODg2ZjcwZDAxMDcwMWEwODIwMzRkMzA4MjAzNDkzMDgyMDIzMWEwMDMwMjAxMDIwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjBhMmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTMwMWUxNzBkMzIzMjMxMzAzMjM4MzEzNjMxMzAzNTM2NWExNzBkMzIzMzMxMzAzMjM4MzEzNjMxMzAzNTM2NWEzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEzMDgyMDEyMjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDAzODIwMTBmMDAzMDgyMDEwYTAyODIwMTAxMDBjOGI2Y2Y2OTg5OWNkMWYwZWJiNGNhNjQ1YzA1ZTcwZTBkMmVmZWRkY2M2MWQwODljYmQ1MTVhMzlhMzU3OWI5MjM0M2I2MWVjNzUwMDYwZmI0ZWQzNzg3NjMzMjQwMGU0MjVmMWQzNzZjN2U3NWMyOTczMzE0ZWRmNGJiMzBjOGY4ZGQwM2I5ZmNmZjk1NWEyNDVkNDkxMzdhZDZlNjAwNTZjYWMxOTU1MmE4NjVkNTIxODcxODdjYzA0MmM5YzQ5ZTNlM2E5YzE3YTUzNGI0NTNjZGFiYzBjYjExM2I0ZjYzZjViMzE3NGI5ZWU5OTAyYjE5MTBkMTE0OTZhMjc5YTc0MzI2YWRjZmVlMTBiZmQ5ZTdlYmFmYmIzNzdiZTliNjM5NTkxNjVkMTNkZDU3NTExNzFjYWRhZDNjMWQzYWRhYzY4YmM4MDExZDYxYjU0Y2Y2MDE3OGJlMzY4MzlhODlhYzkxYWI0MTllM2NhMzdkNmJhODgxZDI1NTE4YzRkYjY4YmNhNmY3YzgzNjAyZjY5OWE4NmIxN2ZiMWU3NzNiY2JlNzRiYjkzYTQ5YjI1MWFlODY0MjhiNTc0MGUxODY4YmIxZDZmYWI5ZTI4NzEyZTk4ZWMzMTlhZDhmY2E0ZDczMDEwYzRiMDljNGI4MDQ1ODk2MWU3Y2YwODM1MzAyMDMwMTAwMDFhMzUzMzA1MTMwMWQwNjAzNTUxZDBlMDQxNjA0MTQ4YWVlZTU5NDdjYzY3YzVkZDUxNWE3NmUyYTdlY2QzMWVlNTJmZGM4MzAxZjA2MDM1NTFkMjMwNDE4MzAxNjgwMTQ4YWVlZTU5NDdjYzY3YzVkZDUxNWE3NmUyYTdlY2QzMWVlNTJmZGM4MzAwZjA2MDM1NTFkMTMwMTAxZmYwNDA1MzAwMzAxMDFmZjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDAzODIwMTAxMDA4MjFkNmI5OGNkNDU3ZGViZDJiMDgxYWNhMjdlYmVjZDRmOTNhY2M4Mjg0NDNiMzllYWJmZmE5ZmE0ZTllNDU0M2I0NmZjYzMxZTJiNWI0ODE3NzkwM2RlYTY5NjlhYzRhMmNjNjU3MDY1MDM5MGYxYjA4ZDQzYTRjMmY5NzVjN2VkOGJmMzM1NmM3MjE4MzgwMjEyNDUxYThmMTFkZTQ2NTUzY2JjZDY1YjQyNTRkZGI4ZjY2ODM0ZWIyMWRkYTJhOGYzM2I1ODFlMTQ4NDU1N2FjYTFiOTRlZTg5MzFkZGYxNjAzN2I3YTcxNzEzMjFhOTE5MzZhZmMyN2ZmY2UzOTVkZTc1ZDVmNzBjYjhiNWFlZTA1ZmY1MDcwODhkNjVhZjFlNDM5NjZjZDQyY2JlNmY3ZmFjZjhkYWUwNTVkZDgyMjJiMTY5NjUyMTcyM2Y4MTI0NTE3ODU5NWM5ODVhZTkxN2ZkNGIzOTk4NzczZTFhOTdiN2JkMTAwODU0NDZmNDI1OWJjYzA5YTQ1NDkyOTI4MmMxYjg5YjcxZWQ1ODdhNzc1ZTBhM2Q0NTM2MzQxZjQ1ZGFlOTY5ZTgwNmM5NmZlZmM3MTA2Nzc3NmMwMmJhMjIxMjJiOTE5OWIxNGMwYzI4YzA0NDg3NTA5MDcwYjk3ZjNkZDJkNmQ5NzI3MzMxODIwMTc3MzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDViZWNkODcxOTVjMWRlZmY5MGMyNGM5MTI2OWI1NWIzZjA2OWJjMjI1YzMyNmMzMTRjMWE1MTc4NmZmZTE0YzgzMGJlNGU0YmM3M2NiYTM2Yzk3Njc3YjQ0MTY4Mjc5YmU5MWU3Y2RmN2MxOTM4NmFlMjE4NjI3MTlkMTNhM2EwZmZmMDgwM2Q0NjA5NjJmMmNkYTgzNzE0ODQ4NzMyNTJjM2Q3MDU0ZGI4MTQzZTJiMDgxYTM4MTZlZDA4MDRjYTUwOTlhZTVmZWNlODNkNWMyYzM3ODNiMTk4OGI0YjQ2ZGM5NGU1NTU4N2ExMDdlYTE1NDZiZjIyZDI4YTA5N2Y2NTJhNDA2NmRjMjk2NTI2OTA2OWFmMmY1MTc2YmI4Y2U5Y2E2ZDExZjk2NzU3ZjAzMjA0Zjc1NjcwMzU4N2QwMGFkNDI0Nzk2YzkyZmM3YWViNmY0OTQ0MzE5OTllZGEzMDk5MGU0ZjU3NzM2MzJlZDI1OGZlMDI3NjY3MzU5OWRhNmZjZTM1Y2RhZDc3MjZhMGJiMDI0Y2FkOTk2Yjg4ZTBjYjk4ODU0Y2ViNWMwYjZlYzc0OGQ5ZjljZTZhNmNkNDM3ODU4YmFjYjgxNDYxOGEyNzJmZjNhNDE1YzZlMDdmM2RiMDk4ODc3N2ZkZWM4NDVhOTdiZjdkMTAyZGQwIgogCiBQS0NTNyBQYXJzZSBGYWlsdXJlIEludmFsaWQgQVNOMTogQ2hhbmdlIGxlbmd0aCBmcm9tIDkgdG8gOCAjODcuMAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHBrY3M3X2FzbjFfZmFpbDoiMzA4MjA1MDAwNjA5MmE4NjQ4ODZmNzBkMDEwNzAyYTA4MjA0ZjEzMDgyMDRlZDAyMDEwMTMxMGYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBiMDYwOTJhODY0ODg2ZjcwZDAxMDcwMWEwODIwMzRkMzA4MjAzNDkzMDgyMDIzMWEwMDMwMjAxMDIwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA4MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTMwMWUxNzBkMzIzMjMxMzAzMjM4MzEzNjMxMzAzNTM2NWExNzBkMzIzMzMxMzAzMjM4MzEzNjMxMzAzNTM2NWEzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEzMDgyMDEyMjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDAzODIwMTBmMDAzMDgyMDEwYTAyODIwMTAxMDBjOGI2Y2Y2OTg5OWNkMWYwZWJiNGNhNjQ1YzA1ZTcwZTBkMmVmZWRkY2M2MWQwODljYmQ1MTVhMzlhMzU3OWI5MjM0M2I2MWVjNzUwMDYwZmI0ZWQzNzg3NjMzMjQwMGU0MjVmMWQzNzZjN2U3NWMyOTczMzE0ZWRmNGJiMzBjOGY4ZGQwM2I5ZmNmZjk1NWEyNDVkNDkxMzdhZDZlNjAwNTZjYWMxOTU1MmE4NjVkNTIxODcxODdjYzA0MmM5YzQ5ZTNlM2E5YzE3YTUzNGI0NTNjZGFiYzBjYjExM2I0ZjYzZjViMzE3NGI5ZWU5OTAyYjE5MTBkMTE0OTZhMjc5YTc0MzI2YWRjZmVlMTBiZmQ5ZTdlYmFmYmIzNzdiZTliNjM5NTkxNjVkMTNkZDU3NTExNzFjYWRhZDNjMWQzYWRhYzY4YmM4MDExZDYxYjU0Y2Y2MDE3OGJlMzY4MzlhODlhYzkxYWI0MTllM2NhMzdkNmJhODgxZDI1NTE4YzRkYjY4YmNhNmY3YzgzNjAyZjY5OWE4NmIxN2ZiMWU3NzNiY2JlNzRiYjkzYTQ5YjI1MWFlODY0MjhiNTc0MGUxODY4YmIxZDZmYWI5ZTI4NzEyZTk4ZWMzMTlhZDhmY2E0ZDczMDEwYzRiMDljNGI4MDQ1ODk2MWU3Y2YwODM1MzAyMDMwMTAwMDFhMzUzMzA1MTMwMWQwNjAzNTUxZDBlMDQxNjA0MTQ4YWVlZTU5NDdjYzY3YzVkZDUxNWE3NmUyYTdlY2QzMWVlNTJmZGM4MzAxZjA2MDM1NTFkMjMwNDE4MzAxNjgwMTQ4YWVlZTU5NDdjYzY3YzVkZDUxNWE3NmUyYTdlY2QzMWVlNTJmZGM4MzAwZjA2MDM1NTFkMTMwMTAxZmYwNDA1MzAwMzAxMDFmZjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDAzODIwMTAxMDA4MjFkNmI5OGNkNDU3ZGViZDJiMDgxYWNhMjdlYmVjZDRmOTNhY2M4Mjg0NDNiMzllYWJmZmE5ZmE0ZTllNDU0M2I0NmZjYzMxZTJiNWI0ODE3NzkwM2RlYTY5NjlhYzRhMmNjNjU3MDY1MDM5MGYxYjA4ZDQzYTRjMmY5NzVjN2VkOGJmMzM1NmM3MjE4MzgwMjEyNDUxYThmMTFkZTQ2NTUzY2JjZDY1YjQyNTRkZGI4ZjY2ODM0ZWIyMWRkYTJhOGYzM2I1ODFlMTQ4NDU1N2FjYTFiOTRlZTg5MzFkZGYxNjAzN2I3YTcxNzEzMjFhOTE5MzZhZmMyN2ZmY2UzOTVkZTc1ZDVmNzBjYjhiNWFlZTA1ZmY1MDcwODhkNjVhZjFlNDM5NjZjZDQyY2JlNmY3ZmFjZjhkYWUwNTVkZDgyMjJiMTY5NjUyMTcyM2Y4MTI0NTE3ODU5NWM5ODVhZTkxN2ZkNGIzOTk4NzczZTFhOTdiN2JkMTAwODU0NDZmNDI1OWJjYzA5YTQ1NDkyOTI4MmMxYjg5YjcxZWQ1ODdhNzc1ZTBhM2Q0NTM2MzQxZjQ1ZGFlOTY5ZTgwNmM5NmZlZmM3MTA2Nzc3NmMwMmJhMjIxMjJiOTE5OWIxNGMwYzI4YzA0NDg3NTA5MDcwYjk3ZjNkZDJkNmQ5NzI3MzMxODIwMTc3MzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDViZWNkODcxOTVjMWRlZmY5MGMyNGM5MTI2OWI1NWIzZjA2OWJjMjI1YzMyNmMzMTRjMWE1MTc4NmZmZTE0YzgzMGJlNGU0YmM3M2NiYTM2Yzk3Njc3YjQ0MTY4Mjc5YmU5MWU3Y2RmN2MxOTM4NmFlMjE4NjI3MTlkMTNhM2EwZmZmMDgwM2Q0NjA5NjJmMmNkYTgzNzE0ODQ4NzMyNTJjM2Q3MDU0ZGI4MTQzZTJiMDgxYTM4MTZlZDA4MDRjYTUwOTlhZTVmZWNlODNkNWMyYzM3ODNiMTk4OGI0YjQ2ZGM5NGU1NTU4N2ExMDdlYTE1NDZiZjIyZDI4YTA5N2Y2NTJhNDA2NmRjMjk2NTI2OTA2OWFmMmY1MTc2YmI4Y2U5Y2E2ZDExZjk2NzU3ZjAzMjA0Zjc1NjcwMzU4N2QwMGFkNDI0Nzk2YzkyZmM3YWViNmY0OTQ0MzE5OTllZGEzMDk5MGU0ZjU3NzM2MzJlZDI1OGZlMDI3NjY3MzU5OWRhNmZjZTM1Y2RhZDc3MjZhMGJiMDI0Y2FkOTk2Yjg4ZTBjYjk4ODU0Y2ViNWMwYjZlYzc0OGQ5ZjljZTZhNmNkNDM3ODU4YmFjYjgxNDYxOGEyNzJmZjNhNDE1YzZlMDdmM2RiMDk4ODc3N2ZkZWM4NDVhOTdiZjdkMTAyZGQwIgogCiBQS0NTNyBQYXJzZSBGYWlsdXJlIEludmFsaWQgQVNOMTogQ2hhbmdlIHRhZyAwNSB0byAwMiAjODguMAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHBrY3M3X2FzbjFfZmFpbDoiMzA4MjA1MDAwNjA5MmE4NjQ4ODZmNzBkMDEwNzAyYTA4MjA0ZjEzMDgyMDRlZDAyMDEwMTMxMGYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBiMDYwOTJhODY0ODg2ZjcwZDAxMDcwMWEwODIwMzRkMzA4MjAzNDkzMDgyMDIzMWEwMDMwMjAxMDIwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDIwMDMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTMwMWUxNzBkMzIzMjMxMzAzMjM4MzEzNjMxMzAzNTM2NWExNzBkMzIzMzMxMzAzMjM4MzEzNjMxMzAzNTM2NWEzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEzMDgyMDEyMjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDAzODIwMTBmMDAzMDgyMDEwYTAyODIwMTAxMDBjOGI2Y2Y2OTg5OWNkMWYwZWJiNGNhNjQ1YzA1ZTcwZTBkMmVmZWRkY2M2MWQwODljYmQ1MTVhMzlhMzU3OWI5MjM0M2I2MWVjNzUwMDYwZmI0ZWQzNzg3NjMzMjQwMGU0MjVmMWQzNzZjN2U3NWMyOTczMzE0ZWRmNGJiMzBjOGY4ZGQwM2I5ZmNmZjk1NWEyNDVkNDkxMzdhZDZlNjAwNTZjYWMxOTU1MmE4NjVkNTIxODcxODdjYzA0MmM5YzQ5ZTNlM2E5YzE3YTUzNGI0NTNjZGFiYzBjYjExM2I0ZjYzZjViMzE3NGI5ZWU5OTAyYjE5MTBkMTE0OTZhMjc5YTc0MzI2YWRjZmVlMTBiZmQ5ZTdlYmFmYmIzNzdiZTliNjM5NTkxNjVkMTNkZDU3NTExNzFjYWRhZDNjMWQzYWRhYzY4YmM4MDExZDYxYjU0Y2Y2MDE3OGJlMzY4MzlhODlhYzkxYWI0MTllM2NhMzdkNmJhODgxZDI1NTE4YzRkYjY4YmNhNmY3YzgzNjAyZjY5OWE4NmIxN2ZiMWU3NzNiY2JlNzRiYjkzYTQ5YjI1MWFlODY0MjhiNTc0MGUxODY4YmIxZDZmYWI5ZTI4NzEyZTk4ZWMzMTlhZDhmY2E0ZDczMDEwYzRiMDljNGI4MDQ1ODk2MWU3Y2YwODM1MzAyMDMwMTAwMDFhMzUzMzA1MTMwMWQwNjAzNTUxZDBlMDQxNjA0MTQ4YWVlZTU5NDdjYzY3YzVkZDUxNWE3NmUyYTdlY2QzMWVlNTJmZGM4MzAxZjA2MDM1NTFkMjMwNDE4MzAxNjgwMTQ4YWVlZTU5NDdjYzY3YzVkZDUxNWE3NmUyYTdlY2QzMWVlNTJmZGM4MzAwZjA2MDM1NTFkMTMwMTAxZmYwNDA1MzAwMzAxMDFmZjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDAzODIwMTAxMDA4MjFkNmI5OGNkNDU3ZGViZDJiMDgxYWNhMjdlYmVjZDRmOTNhY2M4Mjg0NDNiMzllYWJmZmE5ZmE0ZTllNDU0M2I0NmZjYzMxZTJiNWI0ODE3NzkwM2RlYTY5NjlhYzRhMmNjNjU3MDY1MDM5MGYxYjA4ZDQzYTRjMmY5NzVjN2VkOGJmMzM1NmM3MjE4MzgwMjEyNDUxYThmMTFkZTQ2NTUzY2JjZDY1YjQyNTRkZGI4ZjY2ODM0ZWIyMWRkYTJhOGYzM2I1ODFlMTQ4NDU1N2FjYTFiOTRlZTg5MzFkZGYxNjAzN2I3YTcxNzEzMjFhOTE5MzZhZmMyN2ZmY2UzOTVkZTc1ZDVmNzBjYjhiNWFlZTA1ZmY1MDcwODhkNjVhZjFlNDM5NjZjZDQyY2JlNmY3ZmFjZjhkYWUwNTVkZDgyMjJiMTY5NjUyMTcyM2Y4MTI0NTE3ODU5NWM5ODVhZTkxN2ZkNGIzOTk4NzczZTFhOTdiN2JkMTAwODU0NDZmNDI1OWJjYzA5YTQ1NDkyOTI4MmMxYjg5YjcxZWQ1ODdhNzc1ZTBhM2Q0NTM2MzQxZjQ1ZGFlOTY5ZTgwNmM5NmZlZmM3MTA2Nzc3NmMwMmJhMjIxMjJiOTE5OWIxNGMwYzI4YzA0NDg3NTA5MDcwYjk3ZjNkZDJkNmQ5NzI3MzMxODIwMTc3MzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDViZWNkODcxOTVjMWRlZmY5MGMyNGM5MTI2OWI1NWIzZjA2OWJjMjI1YzMyNmMzMTRjMWE1MTc4NmZmZTE0YzgzMGJlNGU0YmM3M2NiYTM2Yzk3Njc3YjQ0MTY4Mjc5YmU5MWU3Y2RmN2MxOTM4NmFlMjE4NjI3MTlkMTNhM2EwZmZmMDgwM2Q0NjA5NjJmMmNkYTgzNzE0ODQ4NzMyNTJjM2Q3MDU0ZGI4MTQzZTJiMDgxYTM4MTZlZDA4MDRjYTUwOTlhZTVmZWNlODNkNWMyYzM3ODNiMTk4OGI0YjQ2ZGM5NGU1NTU4N2ExMDdlYTE1NDZiZjIyZDI4YTA5N2Y2NTJhNDA2NmRjMjk2NTI2OTA2OWFmMmY1MTc2YmI4Y2U5Y2E2ZDExZjk2NzU3ZjAzMjA0Zjc1NjcwMzU4N2QwMGFkNDI0Nzk2YzkyZmM3YWViNmY0OTQ0MzE5OTllZGEzMDk5MGU0ZjU3NzM2MzJlZDI1OGZlMDI3NjY3MzU5OWRhNmZjZTM1Y2RhZDc3MjZhMGJiMDI0Y2FkOTk2Yjg4ZTBjYjk4ODU0Y2ViNWMwYjZlYzc0OGQ5ZjljZTZhNmNkNDM3ODU4YmFjYjgxNDYxOGEyNzJmZjNhNDE1YzZlMDdmM2RiMDk4ODc3N2ZkZWM4NDVhOTdiZjdkMTAyZGQwIgogCiBQS0NTNyBQYXJzZSBGYWlsdXJlIEludmFsaWQgQVNOMTogQ2hhbmdlIGxlbmd0aCBmcm9tIDAgdG8gMSAjODkuMAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHBrY3M3X2FzbjFfZmFpbDoiMzA4MjA1MDAwNjA5MmE4NjQ4ODZmNzBkMDEwNzAyYTA4MjA0ZjEzMDgyMDRlZDAyMDEwMTMxMGYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBiMDYwOTJhODY0ODg2ZjcwZDAxMDcwMWEwODIwMzRkMzA4MjAzNDkzMDgyMDIzMWEwMDMwMjAxMDIwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMTMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTMwMWUxNzBkMzIzMjMxMzAzMjM4MzEzNjMxMzAzNTM2NWExNzBkMzIzMzMxMzAzMjM4MzEzNjMxMzAzNTM2NWEzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEzMDgyMDEyMjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDAzODIwMTBmMDAzMDgyMDEwYTAyODIwMTAxMDBjOGI2Y2Y2OTg5OWNkMWYwZWJiNGNhNjQ1YzA1ZTcwZTBkMmVmZWRkY2M2MWQwODljYmQ1MTVhMzlhMzU3OWI5MjM0M2I2MWVjNzUwMDYwZmI0ZWQzNzg3NjMzMjQwMGU0MjVmMWQzNzZjN2U3NWMyOTczMzE0ZWRmNGJiMzBjOGY4ZGQwM2I5ZmNmZjk1NWEyNDVkNDkxMzdhZDZlNjAwNTZjYWMxOTU1MmE4NjVkNTIxODcxODdjYzA0MmM5YzQ5ZTNlM2E5YzE3YTUzNGI0NTNjZGFiYzBjYjExM2I0ZjYzZjViMzE3NGI5ZWU5OTAyYjE5MTBkMTE0OTZhMjc5YTc0MzI2YWRjZmVlMTBiZmQ5ZTdlYmFmYmIzNzdiZTliNjM5NTkxNjVkMTNkZDU3NTExNzFjYWRhZDNjMWQzYWRhYzY4YmM4MDExZDYxYjU0Y2Y2MDE3OGJlMzY4MzlhODlhYzkxYWI0MTllM2NhMzdkNmJhODgxZDI1NTE4YzRkYjY4YmNhNmY3YzgzNjAyZjY5OWE4NmIxN2ZiMWU3NzNiY2JlNzRiYjkzYTQ5YjI1MWFlODY0MjhiNTc0MGUxODY4YmIxZDZmYWI5ZTI4NzEyZTk4ZWMzMTlhZDhmY2E0ZDczMDEwYzRiMDljNGI4MDQ1ODk2MWU3Y2YwODM1MzAyMDMwMTAwMDFhMzUzMzA1MTMwMWQwNjAzNTUxZDBlMDQxNjA0MTQ4YWVlZTU5NDdjYzY3YzVkZDUxNWE3NmUyYTdlY2QzMWVlNTJmZGM4MzAxZjA2MDM1NTFkMjMwNDE4MzAxNjgwMTQ4YWVlZTU5NDdjYzY3YzVkZDUxNWE3NmUyYTdlY2QzMWVlNTJmZGM4MzAwZjA2MDM1NTFkMTMwMTAxZmYwNDA1MzAwMzAxMDFmZjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDAzODIwMTAxMDA4MjFkNmI5OGNkNDU3ZGViZDJiMDgxYWNhMjdlYmVjZDRmOTNhY2M4Mjg0NDNiMzllYWJmZmE5ZmE0ZTllNDU0M2I0NmZjYzMxZTJiNWI0ODE3NzkwM2RlYTY5NjlhYzRhMmNjNjU3MDY1MDM5MGYxYjA4ZDQzYTRjMmY5NzVjN2VkOGJmMzM1NmM3MjE4MzgwMjEyNDUxYThmMTFkZTQ2NTUzY2JjZDY1YjQyNTRkZGI4ZjY2ODM0ZWIyMWRkYTJhOGYzM2I1ODFlMTQ4NDU1N2FjYTFiOTRlZTg5MzFkZGYxNjAzN2I3YTcxNzEzMjFhOTE5MzZhZmMyN2ZmY2UzOTVkZTc1ZDVmNzBjYjhiNWFlZTA1ZmY1MDcwODhkNjVhZjFlNDM5NjZjZDQyY2JlNmY3ZmFjZjhkYWUwNTVkZDgyMjJiMTY5NjUyMTcyM2Y4MTI0NTE3ODU5NWM5ODVhZTkxN2ZkNGIzOTk4NzczZTFhOTdiN2JkMTAwODU0NDZmNDI1OWJjYzA5YTQ1NDkyOTI4MmMxYjg5YjcxZWQ1ODdhNzc1ZTBhM2Q0NTM2MzQxZjQ1ZGFlOTY5ZTgwNmM5NmZlZmM3MTA2Nzc3NmMwMmJhMjIxMjJiOTE5OWIxNGMwYzI4YzA0NDg3NTA5MDcwYjk3ZjNkZDJkNmQ5NzI3MzMxODIwMTc3MzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDViZWNkODcxOTVjMWRlZmY5MGMyNGM5MTI2OWI1NWIzZjA2OWJjMjI1YzMyNmMzMTRjMWE1MTc4NmZmZTE0YzgzMGJlNGU0YmM3M2NiYTM2Yzk3Njc3YjQ0MTY4Mjc5YmU5MWU3Y2RmN2MxOTM4NmFlMjE4NjI3MTlkMTNhM2EwZmZmMDgwM2Q0NjA5NjJmMmNkYTgzNzE0ODQ4NzMyNTJjM2Q3MDU0ZGI4MTQzZTJiMDgxYTM4MTZlZDA4MDRjYTUwOTlhZTVmZWNlODNkNWMyYzM3ODNiMTk4OGI0YjQ2ZGM5NGU1NTU4N2ExMDdlYTE1NDZiZjIyZDI4YTA5N2Y2NTJhNDA2NmRjMjk2NTI2OTA2OWFmMmY1MTc2YmI4Y2U5Y2E2ZDExZjk2NzU3ZjAzMjA0Zjc1NjcwMzU4N2QwMGFkNDI0Nzk2YzkyZmM3YWViNmY0OTQ0MzE5OTllZGEzMDk5MGU0ZjU3NzM2MzJlZDI1OGZlMDI3NjY3MzU5OWRhNmZjZTM1Y2RhZDc3MjZhMGJiMDI0Y2FkOTk2Yjg4ZTBjYjk4ODU0Y2ViNWMwYjZlYzc0OGQ5ZjljZTZhNmNkNDM3ODU4YmFjYjgxNDYxOGEyNzJmZjNhNDE1YzZlMDdmM2RiMDk4ODc3N2ZkZWM4NDVhOTdiZjdkMTAyZGQwIgogCiBQS0NTNyBQYXJzZSBGYWlsdXJlIEludmFsaWQgQVNOMTogQ2hhbmdlIHRhZyAzMCB0byAwMiAjOTAuMAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHBrY3M3X2FzbjFfZmFpbDoiMzA4MjA1MDAwNjA5MmE4NjQ4ODZmNzBkMDEwNzAyYTA4MjA0ZjEzMDgyMDRlZDAyMDEwMTMxMGYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBiMDYwOTJhODY0ODg2ZjcwZDAxMDcwMWEwODIwMzRkMzA4MjAzNDkzMDgyMDIzMWEwMDMwMjAxMDIwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDAyMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTMwMWUxNzBkMzIzMjMxMzAzMjM4MzEzNjMxMzAzNTM2NWExNzBkMzIzMzMxMzAzMjM4MzEzNjMxMzAzNTM2NWEzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEzMDgyMDEyMjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDAzODIwMTBmMDAzMDgyMDEwYTAyODIwMTAxMDBjOGI2Y2Y2OTg5OWNkMWYwZWJiNGNhNjQ1YzA1ZTcwZTBkMmVmZWRkY2M2MWQwODljYmQ1MTVhMzlhMzU3OWI5MjM0M2I2MWVjNzUwMDYwZmI0ZWQzNzg3NjMzMjQwMGU0MjVmMWQzNzZjN2U3NWMyOTczMzE0ZWRmNGJiMzBjOGY4ZGQwM2I5ZmNmZjk1NWEyNDVkNDkxMzdhZDZlNjAwNTZjYWMxOTU1MmE4NjVkNTIxODcxODdjYzA0MmM5YzQ5ZTNlM2E5YzE3YTUzNGI0NTNjZGFiYzBjYjExM2I0ZjYzZjViMzE3NGI5ZWU5OTAyYjE5MTBkMTE0OTZhMjc5YTc0MzI2YWRjZmVlMTBiZmQ5ZTdlYmFmYmIzNzdiZTliNjM5NTkxNjVkMTNkZDU3NTExNzFjYWRhZDNjMWQzYWRhYzY4YmM4MDExZDYxYjU0Y2Y2MDE3OGJlMzY4MzlhODlhYzkxYWI0MTllM2NhMzdkNmJhODgxZDI1NTE4YzRkYjY4YmNhNmY3YzgzNjAyZjY5OWE4NmIxN2ZiMWU3NzNiY2JlNzRiYjkzYTQ5YjI1MWFlODY0MjhiNTc0MGUxODY4YmIxZDZmYWI5ZTI4NzEyZTk4ZWMzMTlhZDhmY2E0ZDczMDEwYzRiMDljNGI4MDQ1ODk2MWU3Y2YwODM1MzAyMDMwMTAwMDFhMzUzMzA1MTMwMWQwNjAzNTUxZDBlMDQxNjA0MTQ4YWVlZTU5NDdjYzY3YzVkZDUxNWE3NmUyYTdlY2QzMWVlNTJmZGM4MzAxZjA2MDM1NTFkMjMwNDE4MzAxNjgwMTQ4YWVlZTU5NDdjYzY3YzVkZDUxNWE3NmUyYTdlY2QzMWVlNTJmZGM4MzAwZjA2MDM1NTFkMTMwMTAxZmYwNDA1MzAwMzAxMDFmZjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDAzODIwMTAxMDA4MjFkNmI5OGNkNDU3ZGViZDJiMDgxYWNhMjdlYmVjZDRmOTNhY2M4Mjg0NDNiMzllYWJmZmE5ZmE0ZTllNDU0M2I0NmZjYzMxZTJiNWI0ODE3NzkwM2RlYTY5NjlhYzRhMmNjNjU3MDY1MDM5MGYxYjA4ZDQzYTRjMmY5NzVjN2VkOGJmMzM1NmM3MjE4MzgwMjEyNDUxYThmMTFkZTQ2NTUzY2JjZDY1YjQyNTRkZGI4ZjY2ODM0ZWIyMWRkYTJhOGYzM2I1ODFlMTQ4NDU1N2FjYTFiOTRlZTg5MzFkZGYxNjAzN2I3YTcxNzEzMjFhOTE5MzZhZmMyN2ZmY2UzOTVkZTc1ZDVmNzBjYjhiNWFlZTA1ZmY1MDcwODhkNjVhZjFlNDM5NjZjZDQyY2JlNmY3ZmFjZjhkYWUwNTVkZDgyMjJiMTY5NjUyMTcyM2Y4MTI0NTE3ODU5NWM5ODVhZTkxN2ZkNGIzOTk4NzczZTFhOTdiN2JkMTAwODU0NDZmNDI1OWJjYzA5YTQ1NDkyOTI4MmMxYjg5YjcxZWQ1ODdhNzc1ZTBhM2Q0NTM2MzQxZjQ1ZGFlOTY5ZTgwNmM5NmZlZmM3MTA2Nzc3NmMwMmJhMjIxMjJiOTE5OWIxNGMwYzI4YzA0NDg3NTA5MDcwYjk3ZjNkZDJkNmQ5NzI3MzMxODIwMTc3MzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDViZWNkODcxOTVjMWRlZmY5MGMyNGM5MTI2OWI1NWIzZjA2OWJjMjI1YzMyNmMzMTRjMWE1MTc4NmZmZTE0YzgzMGJlNGU0YmM3M2NiYTM2Yzk3Njc3YjQ0MTY4Mjc5YmU5MWU3Y2RmN2MxOTM4NmFlMjE4NjI3MTlkMTNhM2EwZmZmMDgwM2Q0NjA5NjJmMmNkYTgzNzE0ODQ4NzMyNTJjM2Q3MDU0ZGI4MTQzZTJiMDgxYTM4MTZlZDA4MDRjYTUwOTlhZTVmZWNlODNkNWMyYzM3ODNiMTk4OGI0YjQ2ZGM5NGU1NTU4N2ExMDdlYTE1NDZiZjIyZDI4YTA5N2Y2NTJhNDA2NmRjMjk2NTI2OTA2OWFmMmY1MTc2YmI4Y2U5Y2E2ZDExZjk2NzU3ZjAzMjA0Zjc1NjcwMzU4N2QwMGFkNDI0Nzk2YzkyZmM3YWViNmY0OTQ0MzE5OTllZGEzMDk5MGU0ZjU3NzM2MzJlZDI1OGZlMDI3NjY3MzU5OWRhNmZjZTM1Y2RhZDc3MjZhMGJiMDI0Y2FkOTk2Yjg4ZTBjYjk4ODU0Y2ViNWMwYjZlYzc0OGQ5ZjljZTZhNmNkNDM3ODU4YmFjYjgxNDYxOGEyNzJmZjNhNDE1YzZlMDdmM2RiMDk4ODc3N2ZkZWM4NDVhOTdiZjdkMTAyZGQwIgogCiBQS0NTNyBQYXJzZSBGYWlsdXJlIEludmFsaWQgQVNOMTogQ2hhbmdlIGxlbmd0aCBmcm9tIDUyIHRvIDUzICM5MS4wCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NgogcGtjczdfYXNuMV9mYWlsOiIzMDgyMDUwMDA2MDkyYTg2NDg4NmY3MGQwMTA3MDJhMDgyMDRmMTMwODIwNGVkMDIwMTAxMzEwZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGIwNjA5MmE4NjQ4ODZmNzBkMDEwNzAxYTA4MjAzNGQzMDgyMDM0OTMwODIwMjMxYTAwMzAyMDEwMjAyMTQ3YmRlZGRkMjQ0NGNkMWNkZmU1YzQxYTgxMDJjODliN2RmMmU2Y2JmMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMzAzNTMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMzAxZTE3MGQzMjMyMzEzMDMyMzgzMTM2MzEzMDM1MzY1YTE3MGQzMjMzMzEzMDMyMzgzMTM2MzEzMDM1MzY1YTMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTMwODIwMTIyMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDM4MjAxMGYwMDMwODIwMTBhMDI4MjAxMDEwMGM4YjZjZjY5ODk5Y2QxZjBlYmI0Y2E2NDVjMDVlNzBlMGQyZWZlZGRjYzYxZDA4OWNiZDUxNWEzOWEzNTc5YjkyMzQzYjYxZWM3NTAwNjBmYjRlZDM3ODc2MzMyNDAwZTQyNWYxZDM3NmM3ZTc1YzI5NzMzMTRlZGY0YmIzMGM4ZjhkZDAzYjlmY2ZmOTU1YTI0NWQ0OTEzN2FkNmU2MDA1NmNhYzE5NTUyYTg2NWQ1MjE4NzE4N2NjMDQyYzljNDllM2UzYTljMTdhNTM0YjQ1M2NkYWJjMGNiMTEzYjRmNjNmNWIzMTc0YjllZTk5MDJiMTkxMGQxMTQ5NmEyNzlhNzQzMjZhZGNmZWUxMGJmZDllN2ViYWZiYjM3N2JlOWI2Mzk1OTE2NWQxM2RkNTc1MTE3MWNhZGFkM2MxZDNhZGFjNjhiYzgwMTFkNjFiNTRjZjYwMTc4YmUzNjgzOWE4OWFjOTFhYjQxOWUzY2EzN2Q2YmE4ODFkMjU1MThjNGRiNjhiY2E2ZjdjODM2MDJmNjk5YTg2YjE3ZmIxZTc3M2JjYmU3NGJiOTNhNDliMjUxYWU4NjQyOGI1NzQwZTE4NjhiYjFkNmZhYjllMjg3MTJlOThlYzMxOWFkOGZjYTRkNzMwMTBjNGIwOWM0YjgwNDU4OTYxZTdjZjA4MzUzMDIwMzAxMDAwMWEzNTMzMDUxMzAxZDA2MDM1NTFkMGUwNDE2MDQxNDhhZWVlNTk0N2NjNjdjNWRkNTE1YTc2ZTJhN2VjZDMxZWU1MmZkYzgzMDFmMDYwMzU1MWQyMzA0MTgzMDE2ODAxNDhhZWVlNTk0N2NjNjdjNWRkNTE1YTc2ZTJhN2VjZDMxZWU1MmZkYzgzMDBmMDYwMzU1MWQxMzAxMDFmZjA0MDUzMDAzMDEwMWZmMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMDM4MjAxMDEwMDgyMWQ2Yjk4Y2Q0NTdkZWJkMmIwODFhY2EyN2ViZWNkNGY5M2FjYzgyODQ0M2IzOWVhYmZmYTlmYTRlOWU0NTQzYjQ2ZmNjMzFlMmI1YjQ4MTc3OTAzZGVhNjk2OWFjNGEyY2M2NTcwNjUwMzkwZjFiMDhkNDNhNGMyZjk3NWM3ZWQ4YmYzMzU2YzcyMTgzODAyMTI0NTFhOGYxMWRlNDY1NTNjYmNkNjViNDI1NGRkYjhmNjY4MzRlYjIxZGRhMmE4ZjMzYjU4MWUxNDg0NTU3YWNhMWI5NGVlODkzMWRkZjE2MDM3YjdhNzE3MTMyMWE5MTkzNmFmYzI3ZmZjZTM5NWRlNzVkNWY3MGNiOGI1YWVlMDVmZjUwNzA4OGQ2NWFmMWU0Mzk2NmNkNDJjYmU2ZjdmYWNmOGRhZTA1NWRkODIyMmIxNjk2NTIxNzIzZjgxMjQ1MTc4NTk1Yzk4NWFlOTE3ZmQ0YjM5OTg3NzNlMWE5N2I3YmQxMDA4NTQ0NmY0MjU5YmNjMDlhNDU0OTI5MjgyYzFiODliNzFlZDU4N2E3NzVlMGEzZDQ1MzYzNDFmNDVkYWU5NjllODA2Yzk2ZmVmYzcxMDY3Nzc2YzAyYmEyMjEyMmI5MTk5YjE0YzBjMjhjMDQ0ODc1MDkwNzBiOTdmM2RkMmQ2ZDk3MjczMzE4MjAxNzczMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwNWJlY2Q4NzE5NWMxZGVmZjkwYzI0YzkxMjY5YjU1YjNmMDY5YmMyMjVjMzI2YzMxNGMxYTUxNzg2ZmZlMTRjODMwYmU0ZTRiYzczY2JhMzZjOTc2NzdiNDQxNjgyNzliZTkxZTdjZGY3YzE5Mzg2YWUyMTg2MjcxOWQxM2EzYTBmZmYwODAzZDQ2MDk2MmYyY2RhODM3MTQ4NDg3MzI1MmMzZDcwNTRkYjgxNDNlMmIwODFhMzgxNmVkMDgwNGNhNTA5OWFlNWZlY2U4M2Q1YzJjMzc4M2IxOTg4YjRiNDZkYzk0ZTU1NTg3YTEwN2VhMTU0NmJmMjJkMjhhMDk3ZjY1MmE0MDY2ZGMyOTY1MjY5MDY5YWYyZjUxNzZiYjhjZTljYTZkMTFmOTY3NTdmMDMyMDRmNzU2NzAzNTg3ZDAwYWQ0MjQ3OTZjOTJmYzdhZWI2ZjQ5NDQzMTk5OWVkYTMwOTkwZTRmNTc3MzYzMmVkMjU4ZmUwMjc2NjczNTk5ZGE2ZmNlMzVjZGFkNzcyNmEwYmIwMjRjYWQ5OTZiODhlMGNiOTg4NTRjZWI1YzBiNmVjNzQ4ZDlmOWNlNmE2Y2Q0Mzc4NThiYWNiODE0NjE4YTI3MmZmM2E0MTVjNmUwN2YzZGIwOTg4Nzc3ZmRlYzg0NWE5N2JmN2QxMDJkZDAiCiAKIFBLQ1M3IFBhcnNlIEZhaWx1cmUgSW52YWxpZCBBU04xOiBDaGFuZ2UgY29udGVudHMgb2YgdGFnIDMwIHRvIGNvbnRhaW4gb25lIHVuYWNjb3VudGVkIGV4dHJhIGJ5dGUgIzkyLjAKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBwa2NzN19hc24xX2ZhaWw6IjMwODIwNTAwMDYwOTJhODY0ODg2ZjcwZDAxMDcwMmEwODIwNGYxMzA4MjA0ZWQwMjAxMDEzMTBmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwYjA2MDkyYTg2NDg4NmY3MGQwMTA3MDFhMDgyMDM0ZDMwODIwMzQ5MzA4MjAyMzFhMDAzMDIwMTAyMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAzMDM1MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEwMDMwMWUxNzBkMzIzMjMxMzAzMjM4MzEzNjMxMzAzNTM2NWExNzBkMzIzMzMxMzAzMjM4MzEzNjMxMzAzNTM2NWEzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEzMDgyMDEyMjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDAzODIwMTBmMDAzMDgyMDEwYTAyODIwMTAxMDBjOGI2Y2Y2OTg5OWNkMWYwZWJiNGNhNjQ1YzA1ZTcwZTBkMmVmZWRkY2M2MWQwODljYmQ1MTVhMzlhMzU3OWI5MjM0M2I2MWVjNzUwMDYwZmI0ZWQzNzg3NjMzMjQwMGU0MjVmMWQzNzZjN2U3NWMyOTczMzE0ZWRmNGJiMzBjOGY4ZGQwM2I5ZmNmZjk1NWEyNDVkNDkxMzdhZDZlNjAwNTZjYWMxOTU1MmE4NjVkNTIxODcxODdjYzA0MmM5YzQ5ZTNlM2E5YzE3YTUzNGI0NTNjZGFiYzBjYjExM2I0ZjYzZjViMzE3NGI5ZWU5OTAyYjE5MTBkMTE0OTZhMjc5YTc0MzI2YWRjZmVlMTBiZmQ5ZTdlYmFmYmIzNzdiZTliNjM5NTkxNjVkMTNkZDU3NTExNzFjYWRhZDNjMWQzYWRhYzY4YmM4MDExZDYxYjU0Y2Y2MDE3OGJlMzY4MzlhODlhYzkxYWI0MTllM2NhMzdkNmJhODgxZDI1NTE4YzRkYjY4YmNhNmY3YzgzNjAyZjY5OWE4NmIxN2ZiMWU3NzNiY2JlNzRiYjkzYTQ5YjI1MWFlODY0MjhiNTc0MGUxODY4YmIxZDZmYWI5ZTI4NzEyZTk4ZWMzMTlhZDhmY2E0ZDczMDEwYzRiMDljNGI4MDQ1ODk2MWU3Y2YwODM1MzAyMDMwMTAwMDFhMzUzMzA1MTMwMWQwNjAzNTUxZDBlMDQxNjA0MTQ4YWVlZTU5NDdjYzY3YzVkZDUxNWE3NmUyYTdlY2QzMWVlNTJmZGM4MzAxZjA2MDM1NTFkMjMwNDE4MzAxNjgwMTQ4YWVlZTU5NDdjYzY3YzVkZDUxNWE3NmUyYTdlY2QzMWVlNTJmZGM4MzAwZjA2MDM1NTFkMTMwMTAxZmYwNDA1MzAwMzAxMDFmZjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDAzODIwMTAxMDA4MjFkNmI5OGNkNDU3ZGViZDJiMDgxYWNhMjdlYmVjZDRmOTNhY2M4Mjg0NDNiMzllYWJmZmE5ZmE0ZTllNDU0M2I0NmZjYzMxZTJiNWI0ODE3NzkwM2RlYTY5NjlhYzRhMmNjNjU3MDY1MDM5MGYxYjA4ZDQzYTRjMmY5NzVjN2VkOGJmMzM1NmM3MjE4MzgwMjEyNDUxYThmMTFkZTQ2NTUzY2JjZDY1YjQyNTRkZGI4ZjY2ODM0ZWIyMWRkYTJhOGYzM2I1ODFlMTQ4NDU1N2FjYTFiOTRlZTg5MzFkZGYxNjAzN2I3YTcxNzEzMjFhOTE5MzZhZmMyN2ZmY2UzOTVkZTc1ZDVmNzBjYjhiNWFlZTA1ZmY1MDcwODhkNjVhZjFlNDM5NjZjZDQyY2JlNmY3ZmFjZjhkYWUwNTVkZDgyMjJiMTY5NjUyMTcyM2Y4MTI0NTE3ODU5NWM5ODVhZTkxN2ZkNGIzOTk4NzczZTFhOTdiN2JkMTAwODU0NDZmNDI1OWJjYzA5YTQ1NDkyOTI4MmMxYjg5YjcxZWQ1ODdhNzc1ZTBhM2Q0NTM2MzQxZjQ1ZGFlOTY5ZTgwNmM5NmZlZmM3MTA2Nzc3NmMwMmJhMjIxMjJiOTE5OWIxNGMwYzI4YzA0NDg3NTA5MDcwYjk3ZjNkZDJkNmQ5NzI3MzMxODIwMTc3MzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDViZWNkODcxOTVjMWRlZmY5MGMyNGM5MTI2OWI1NWIzZjA2OWJjMjI1YzMyNmMzMTRjMWE1MTc4NmZmZTE0YzgzMGJlNGU0YmM3M2NiYTM2Yzk3Njc3YjQ0MTY4Mjc5YmU5MWU3Y2RmN2MxOTM4NmFlMjE4NjI3MTlkMTNhM2EwZmZmMDgwM2Q0NjA5NjJmMmNkYTgzNzE0ODQ4NzMyNTJjM2Q3MDU0ZGI4MTQzZTJiMDgxYTM4MTZlZDA4MDRjYTUwOTlhZTVmZWNlODNkNWMyYzM3ODNiMTk4OGI0YjQ2ZGM5NGU1NTU4N2ExMDdlYTE1NDZiZjIyZDI4YTA5N2Y2NTJhNDA2NmRjMjk2NTI2OTA2OWFmMmY1MTc2YmI4Y2U5Y2E2ZDExZjk2NzU3ZjAzMjA0Zjc1NjcwMzU4N2QwMGFkNDI0Nzk2YzkyZmM3YWViNmY0OTQ0MzE5OTllZGEzMDk5MGU0ZjU3NzM2MzJlZDI1OGZlMDI3NjY3MzU5OWRhNmZjZTM1Y2RhZDc3MjZhMGJiMDI0Y2FkOTk2Yjg4ZTBjYjk4ODU0Y2ViNWMwYjZlYzc0OGQ5ZjljZTZhNmNkNDM3ODU4YmFjYjgxNDYxOGEyNzJmZjNhNDE1YzZlMDdmM2RiMDk4ODc3N2ZkZWM4NDVhOTdiZjdkMTAyZGQwIgogCiBQS0NTNyBQYXJzZSBGYWlsdXJlIEludmFsaWQgQVNOMTogQ2hhbmdlIGxlbmd0aCBmcm9tIDUyIHRvIDUxICM5My4wCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NgogcGtjczdfYXNuMV9mYWlsOiIzMDgyMDUwMDA2MDkyYTg2NDg4NmY3MGQwMTA3MDJhMDgyMDRmMTMwODIwNGVkMDIwMTAxMzEwZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGIwNjA5MmE4NjQ4ODZmNzBkMDEwNzAxYTA4MjAzNGQzMDgyMDM0OTMwODIwMjMxYTAwMzAyMDEwMjAyMTQ3YmRlZGRkMjQ0NGNkMWNkZmU1YzQxYTgxMDJjODliN2RmMmU2Y2JmMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMzAzMzMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMzAxZTE3MGQzMjMyMzEzMDMyMzgzMTM2MzEzMDM1MzY1YTE3MGQzMjMzMzEzMDMyMzgzMTM2MzEzMDM1MzY1YTMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTMwODIwMTIyMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDM4MjAxMGYwMDMwODIwMTBhMDI4MjAxMDEwMGM4YjZjZjY5ODk5Y2QxZjBlYmI0Y2E2NDVjMDVlNzBlMGQyZWZlZGRjYzYxZDA4OWNiZDUxNWEzOWEzNTc5YjkyMzQzYjYxZWM3NTAwNjBmYjRlZDM3ODc2MzMyNDAwZTQyNWYxZDM3NmM3ZTc1YzI5NzMzMTRlZGY0YmIzMGM4ZjhkZDAzYjlmY2ZmOTU1YTI0NWQ0OTEzN2FkNmU2MDA1NmNhYzE5NTUyYTg2NWQ1MjE4NzE4N2NjMDQyYzljNDllM2UzYTljMTdhNTM0YjQ1M2NkYWJjMGNiMTEzYjRmNjNmNWIzMTc0YjllZTk5MDJiMTkxMGQxMTQ5NmEyNzlhNzQzMjZhZGNmZWUxMGJmZDllN2ViYWZiYjM3N2JlOWI2Mzk1OTE2NWQxM2RkNTc1MTE3MWNhZGFkM2MxZDNhZGFjNjhiYzgwMTFkNjFiNTRjZjYwMTc4YmUzNjgzOWE4OWFjOTFhYjQxOWUzY2EzN2Q2YmE4ODFkMjU1MThjNGRiNjhiY2E2ZjdjODM2MDJmNjk5YTg2YjE3ZmIxZTc3M2JjYmU3NGJiOTNhNDliMjUxYWU4NjQyOGI1NzQwZTE4NjhiYjFkNmZhYjllMjg3MTJlOThlYzMxOWFkOGZjYTRkNzMwMTBjNGIwOWM0YjgwNDU4OTYxZTdjZjA4MzUzMDIwMzAxMDAwMWEzNTMzMDUxMzAxZDA2MDM1NTFkMGUwNDE2MDQxNDhhZWVlNTk0N2NjNjdjNWRkNTE1YTc2ZTJhN2VjZDMxZWU1MmZkYzgzMDFmMDYwMzU1MWQyMzA0MTgzMDE2ODAxNDhhZWVlNTk0N2NjNjdjNWRkNTE1YTc2ZTJhN2VjZDMxZWU1MmZkYzgzMDBmMDYwMzU1MWQxMzAxMDFmZjA0MDUzMDAzMDEwMWZmMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMDM4MjAxMDEwMDgyMWQ2Yjk4Y2Q0NTdkZWJkMmIwODFhY2EyN2ViZWNkNGY5M2FjYzgyODQ0M2IzOWVhYmZmYTlmYTRlOWU0NTQzYjQ2ZmNjMzFlMmI1YjQ4MTc3OTAzZGVhNjk2OWFjNGEyY2M2NTcwNjUwMzkwZjFiMDhkNDNhNGMyZjk3NWM3ZWQ4YmYzMzU2YzcyMTgzODAyMTI0NTFhOGYxMWRlNDY1NTNjYmNkNjViNDI1NGRkYjhmNjY4MzRlYjIxZGRhMmE4ZjMzYjU4MWUxNDg0NTU3YWNhMWI5NGVlODkzMWRkZjE2MDM3YjdhNzE3MTMyMWE5MTkzNmFmYzI3ZmZjZTM5NWRlNzVkNWY3MGNiOGI1YWVlMDVmZjUwNzA4OGQ2NWFmMWU0Mzk2NmNkNDJjYmU2ZjdmYWNmOGRhZTA1NWRkODIyMmIxNjk2NTIxNzIzZjgxMjQ1MTc4NTk1Yzk4NWFlOTE3ZmQ0YjM5OTg3NzNlMWE5N2I3YmQxMDA4NTQ0NmY0MjU5YmNjMDlhNDU0OTI5MjgyYzFiODliNzFlZDU4N2E3NzVlMGEzZDQ1MzYzNDFmNDVkYWU5NjllODA2Yzk2ZmVmYzcxMDY3Nzc2YzAyYmEyMjEyMmI5MTk5YjE0YzBjMjhjMDQ0ODc1MDkwNzBiOTdmM2RkMmQ2ZDk3MjczMzE4MjAxNzczMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwNWJlY2Q4NzE5NWMxZGVmZjkwYzI0YzkxMjY5YjU1YjNmMDY5YmMyMjVjMzI2YzMxNGMxYTUxNzg2ZmZlMTRjODMwYmU0ZTRiYzczY2JhMzZjOTc2NzdiNDQxNjgyNzliZTkxZTdjZGY3YzE5Mzg2YWUyMTg2MjcxOWQxM2EzYTBmZmYwODAzZDQ2MDk2MmYyY2RhODM3MTQ4NDg3MzI1MmMzZDcwNTRkYjgxNDNlMmIwODFhMzgxNmVkMDgwNGNhNTA5OWFlNWZlY2U4M2Q1YzJjMzc4M2IxOTg4YjRiNDZkYzk0ZTU1NTg3YTEwN2VhMTU0NmJmMjJkMjhhMDk3ZjY1MmE0MDY2ZGMyOTY1MjY5MDY5YWYyZjUxNzZiYjhjZTljYTZkMTFmOTY3NTdmMDMyMDRmNzU2NzAzNTg3ZDAwYWQ0MjQ3OTZjOTJmYzdhZWI2ZjQ5NDQzMTk5OWVkYTMwOTkwZTRmNTc3MzYzMmVkMjU4ZmUwMjc2NjczNTk5ZGE2ZmNlMzVjZGFkNzcyNmEwYmIwMjRjYWQ5OTZiODhlMGNiOTg4NTRjZWI1YzBiNmVjNzQ4ZDlmOWNlNmE2Y2Q0Mzc4NThiYWNiODE0NjE4YTI3MmZmM2E0MTVjNmUwN2YzZGIwOTg4Nzc3ZmRlYzg0NWE5N2JmN2QxMDJkZDAiCiAKIFBLQ1M3IFBhcnNlIEZhaWx1cmUgSW52YWxpZCBBU04xOiBDaGFuZ2UgdGFnIDMxIHRvIDAyICM5NC4wCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NgogcGtjczdfYXNuMV9mYWlsOiIzMDgyMDUwMDA2MDkyYTg2NDg4NmY3MGQwMTA3MDJhMDgyMDRmMTMwODIwNGVkMDIwMTAxMzEwZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGIwNjA5MmE4NjQ4ODZmNzBkMDEwNzAxYTA4MjAzNGQzMDgyMDM0OTMwODIwMjMxYTAwMzAyMDEwMjAyMTQ3YmRlZGRkMjQ0NGNkMWNkZmU1YzQxYTgxMDJjODliN2RmMmU2Y2JmMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMzAzNDAyMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMzAxZTE3MGQzMjMyMzEzMDMyMzgzMTM2MzEzMDM1MzY1YTE3MGQzMjMzMzEzMDMyMzgzMTM2MzEzMDM1MzY1YTMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTMwODIwMTIyMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDM4MjAxMGYwMDMwODIwMTBhMDI4MjAxMDEwMGM4YjZjZjY5ODk5Y2QxZjBlYmI0Y2E2NDVjMDVlNzBlMGQyZWZlZGRjYzYxZDA4OWNiZDUxNWEzOWEzNTc5YjkyMzQzYjYxZWM3NTAwNjBmYjRlZDM3ODc2MzMyNDAwZTQyNWYxZDM3NmM3ZTc1YzI5NzMzMTRlZGY0YmIzMGM4ZjhkZDAzYjlmY2ZmOTU1YTI0NWQ0OTEzN2FkNmU2MDA1NmNhYzE5NTUyYTg2NWQ1MjE4NzE4N2NjMDQyYzljNDllM2UzYTljMTdhNTM0YjQ1M2NkYWJjMGNiMTEzYjRmNjNmNWIzMTc0YjllZTk5MDJiMTkxMGQxMTQ5NmEyNzlhNzQzMjZhZGNmZWUxMGJmZDllN2ViYWZiYjM3N2JlOWI2Mzk1OTE2NWQxM2RkNTc1MTE3MWNhZGFkM2MxZDNhZGFjNjhiYzgwMTFkNjFiNTRjZjYwMTc4YmUzNjgzOWE4OWFjOTFhYjQxOWUzY2EzN2Q2YmE4ODFkMjU1MThjNGRiNjhiY2E2ZjdjODM2MDJmNjk5YTg2YjE3ZmIxZTc3M2JjYmU3NGJiOTNhNDliMjUxYWU4NjQyOGI1NzQwZTE4NjhiYjFkNmZhYjllMjg3MTJlOThlYzMxOWFkOGZjYTRkNzMwMTBjNGIwOWM0YjgwNDU4OTYxZTdjZjA4MzUzMDIwMzAxMDAwMWEzNTMzMDUxMzAxZDA2MDM1NTFkMGUwNDE2MDQxNDhhZWVlNTk0N2NjNjdjNWRkNTE1YTc2ZTJhN2VjZDMxZWU1MmZkYzgzMDFmMDYwMzU1MWQyMzA0MTgzMDE2ODAxNDhhZWVlNTk0N2NjNjdjNWRkNTE1YTc2ZTJhN2VjZDMxZWU1MmZkYzgzMDBmMDYwMzU1MWQxMzAxMDFmZjA0MDUzMDAzMDEwMWZmMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMDM4MjAxMDEwMDgyMWQ2Yjk4Y2Q0NTdkZWJkMmIwODFhY2EyN2ViZWNkNGY5M2FjYzgyODQ0M2IzOWVhYmZmYTlmYTRlOWU0NTQzYjQ2ZmNjMzFlMmI1YjQ4MTc3OTAzZGVhNjk2OWFjNGEyY2M2NTcwNjUwMzkwZjFiMDhkNDNhNGMyZjk3NWM3ZWQ4YmYzMzU2YzcyMTgzODAyMTI0NTFhOGYxMWRlNDY1NTNjYmNkNjViNDI1NGRkYjhmNjY4MzRlYjIxZGRhMmE4ZjMzYjU4MWUxNDg0NTU3YWNhMWI5NGVlODkzMWRkZjE2MDM3YjdhNzE3MTMyMWE5MTkzNmFmYzI3ZmZjZTM5NWRlNzVkNWY3MGNiOGI1YWVlMDVmZjUwNzA4OGQ2NWFmMWU0Mzk2NmNkNDJjYmU2ZjdmYWNmOGRhZTA1NWRkODIyMmIxNjk2NTIxNzIzZjgxMjQ1MTc4NTk1Yzk4NWFlOTE3ZmQ0YjM5OTg3NzNlMWE5N2I3YmQxMDA4NTQ0NmY0MjU5YmNjMDlhNDU0OTI5MjgyYzFiODliNzFlZDU4N2E3NzVlMGEzZDQ1MzYzNDFmNDVkYWU5NjllODA2Yzk2ZmVmYzcxMDY3Nzc2YzAyYmEyMjEyMmI5MTk5YjE0YzBjMjhjMDQ0ODc1MDkwNzBiOTdmM2RkMmQ2ZDk3MjczMzE4MjAxNzczMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwNWJlY2Q4NzE5NWMxZGVmZjkwYzI0YzkxMjY5YjU1YjNmMDY5YmMyMjVjMzI2YzMxNGMxYTUxNzg2ZmZlMTRjODMwYmU0ZTRiYzczY2JhMzZjOTc2NzdiNDQxNjgyNzliZTkxZTdjZGY3YzE5Mzg2YWUyMTg2MjcxOWQxM2EzYTBmZmYwODAzZDQ2MDk2MmYyY2RhODM3MTQ4NDg3MzI1MmMzZDcwNTRkYjgxNDNlMmIwODFhMzgxNmVkMDgwNGNhNTA5OWFlNWZlY2U4M2Q1YzJjMzc4M2IxOTg4YjRiNDZkYzk0ZTU1NTg3YTEwN2VhMTU0NmJmMjJkMjhhMDk3ZjY1MmE0MDY2ZGMyOTY1MjY5MDY5YWYyZjUxNzZiYjhjZTljYTZkMTFmOTY3NTdmMDMyMDRmNzU2NzAzNTg3ZDAwYWQ0MjQ3OTZjOTJmYzdhZWI2ZjQ5NDQzMTk5OWVkYTMwOTkwZTRmNTc3MzYzMmVkMjU4ZmUwMjc2NjczNTk5ZGE2ZmNlMzVjZGFkNzcyNmEwYmIwMjRjYWQ5OTZiODhlMGNiOTg4NTRjZWI1YzBiNmVjNzQ4ZDlmOWNlNmE2Y2Q0Mzc4NThiYWNiODE0NjE4YTI3MmZmM2E0MTVjNmUwN2YzZGIwOTg4Nzc3ZmRlYzg0NWE5N2JmN2QxMDJkZDAiCiAKIFBLQ1M3IFBhcnNlIEZhaWx1cmUgSW52YWxpZCBBU04xOiBDaGFuZ2UgbGVuZ3RoIGZyb20gMTEgdG8gMTIgIzk1LjAKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBwa2NzN19hc24xX2ZhaWw6IjMwODIwNTAwMDYwOTJhODY0ODg2ZjcwZDAxMDcwMmEwODIwNGYxMzA4MjA0ZWQwMjAxMDEzMTBmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwYjA2MDkyYTg2NDg4NmY3MGQwMTA3MDFhMDgyMDM0ZDMwODIwMzQ5MzA4MjAyMzFhMDAzMDIwMTAyMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAzMDM0MzEwYzMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEzMDFlMTcwZDMyMzIzMTMwMzIzODMxMzYzMTMwMzUzNjVhMTcwZDMyMzMzMTMwMzIzODMxMzYzMTMwMzUzNjVhMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMzA4MjAxMjIzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwMzgyMDEwZjAwMzA4MjAxMGEwMjgyMDEwMTAwYzhiNmNmNjk4OTljZDFmMGViYjRjYTY0NWMwNWU3MGUwZDJlZmVkZGNjNjFkMDg5Y2JkNTE1YTM5YTM1NzliOTIzNDNiNjFlYzc1MDA2MGZiNGVkMzc4NzYzMzI0MDBlNDI1ZjFkMzc2YzdlNzVjMjk3MzMxNGVkZjRiYjMwYzhmOGRkMDNiOWZjZmY5NTVhMjQ1ZDQ5MTM3YWQ2ZTYwMDU2Y2FjMTk1NTJhODY1ZDUyMTg3MTg3Y2MwNDJjOWM0OWUzZTNhOWMxN2E1MzRiNDUzY2RhYmMwY2IxMTNiNGY2M2Y1YjMxNzRiOWVlOTkwMmIxOTEwZDExNDk2YTI3OWE3NDMyNmFkY2ZlZTEwYmZkOWU3ZWJhZmJiMzc3YmU5YjYzOTU5MTY1ZDEzZGQ1NzUxMTcxY2FkYWQzYzFkM2FkYWM2OGJjODAxMWQ2MWI1NGNmNjAxNzhiZTM2ODM5YTg5YWM5MWFiNDE5ZTNjYTM3ZDZiYTg4MWQyNTUxOGM0ZGI2OGJjYTZmN2M4MzYwMmY2OTlhODZiMTdmYjFlNzczYmNiZTc0YmI5M2E0OWIyNTFhZTg2NDI4YjU3NDBlMTg2OGJiMWQ2ZmFiOWUyODcxMmU5OGVjMzE5YWQ4ZmNhNGQ3MzAxMGM0YjA5YzRiODA0NTg5NjFlN2NmMDgzNTMwMjAzMDEwMDAxYTM1MzMwNTEzMDFkMDYwMzU1MWQwZTA0MTYwNDE0OGFlZWU1OTQ3Y2M2N2M1ZGQ1MTVhNzZlMmE3ZWNkMzFlZTUyZmRjODMwMWYwNjAzNTUxZDIzMDQxODMwMTY4MDE0OGFlZWU1OTQ3Y2M2N2M1ZGQ1MTVhNzZlMmE3ZWNkMzFlZTUyZmRjODMwMGYwNjAzNTUxZDEzMDEwMWZmMDQwNTMwMDMwMTAxZmYzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAwMzgyMDEwMTAwODIxZDZiOThjZDQ1N2RlYmQyYjA4MWFjYTI3ZWJlY2Q0ZjkzYWNjODI4NDQzYjM5ZWFiZmZhOWZhNGU5ZTQ1NDNiNDZmY2MzMWUyYjViNDgxNzc5MDNkZWE2OTY5YWM0YTJjYzY1NzA2NTAzOTBmMWIwOGQ0M2E0YzJmOTc1YzdlZDhiZjMzNTZjNzIxODM4MDIxMjQ1MWE4ZjExZGU0NjU1M2NiY2Q2NWI0MjU0ZGRiOGY2NjgzNGViMjFkZGEyYThmMzNiNTgxZTE0ODQ1NTdhY2ExYjk0ZWU4OTMxZGRmMTYwMzdiN2E3MTcxMzIxYTkxOTM2YWZjMjdmZmNlMzk1ZGU3NWQ1ZjcwY2I4YjVhZWUwNWZmNTA3MDg4ZDY1YWYxZTQzOTY2Y2Q0MmNiZTZmN2ZhY2Y4ZGFlMDU1ZGQ4MjIyYjE2OTY1MjE3MjNmODEyNDUxNzg1OTVjOTg1YWU5MTdmZDRiMzk5ODc3M2UxYTk3YjdiZDEwMDg1NDQ2ZjQyNTliY2MwOWE0NTQ5MjkyODJjMWI4OWI3MWVkNTg3YTc3NWUwYTNkNDUzNjM0MWY0NWRhZTk2OWU4MDZjOTZmZWZjNzEwNjc3NzZjMDJiYTIyMTIyYjkxOTliMTRjMGMyOGMwNDQ4NzUwOTA3MGI5N2YzZGQyZDZkOTcyNzMzMTgyMDE3NzMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTAyMTQ3YmRlZGRkMjQ0NGNkMWNkZmU1YzQxYTgxMDJjODliN2RmMmU2Y2JmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDA1YmVjZDg3MTk1YzFkZWZmOTBjMjRjOTEyNjliNTViM2YwNjliYzIyNWMzMjZjMzE0YzFhNTE3ODZmZmUxNGM4MzBiZTRlNGJjNzNjYmEzNmM5NzY3N2I0NDE2ODI3OWJlOTFlN2NkZjdjMTkzODZhZTIxODYyNzE5ZDEzYTNhMGZmZjA4MDNkNDYwOTYyZjJjZGE4MzcxNDg0ODczMjUyYzNkNzA1NGRiODE0M2UyYjA4MWEzODE2ZWQwODA0Y2E1MDk5YWU1ZmVjZTgzZDVjMmMzNzgzYjE5ODhiNGI0NmRjOTRlNTU1ODdhMTA3ZWExNTQ2YmYyMmQyOGEwOTdmNjUyYTQwNjZkYzI5NjUyNjkwNjlhZjJmNTE3NmJiOGNlOWNhNmQxMWY5Njc1N2YwMzIwNGY3NTY3MDM1ODdkMDBhZDQyNDc5NmM5MmZjN2FlYjZmNDk0NDMxOTk5ZWRhMzA5OTBlNGY1NzczNjMyZWQyNThmZTAyNzY2NzM1OTlkYTZmY2UzNWNkYWQ3NzI2YTBiYjAyNGNhZDk5NmI4OGUwY2I5ODg1NGNlYjVjMGI2ZWM3NDhkOWY5Y2U2YTZjZDQzNzg1OGJhY2I4MTQ2MThhMjcyZmYzYTQxNWM2ZTA3ZjNkYjA5ODg3NzdmZGVjODQ1YTk3YmY3ZDEwMmRkMCIKIAogUEtDUzcgUGFyc2UgRmFpbHVyZSBJbnZhbGlkIEFTTjE6IENoYW5nZSBjb250ZW50cyBvZiB0YWcgMzEgdG8gY29udGFpbiBvbmUgdW5hY2NvdW50ZWQgZXh0cmEgYnl0ZSAjOTYuMAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHBrY3M3X2FzbjFfZmFpbDoiMzA4MjA1MDAwNjA5MmE4NjQ4ODZmNzBkMDEwNzAyYTA4MjA0ZjEzMDgyMDRlZDAyMDEwMTMxMGYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBiMDYwOTJhODY0ODg2ZjcwZDAxMDcwMWEwODIwMzRkMzA4MjAzNDkzMDgyMDIzMWEwMDMwMjAxMDIwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDMwMzQzMTBjMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzAwMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMzAxZTE3MGQzMjMyMzEzMDMyMzgzMTM2MzEzMDM1MzY1YTE3MGQzMjMzMzEzMDMyMzgzMTM2MzEzMDM1MzY1YTMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTMwODIwMTIyMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDM4MjAxMGYwMDMwODIwMTBhMDI4MjAxMDEwMGM4YjZjZjY5ODk5Y2QxZjBlYmI0Y2E2NDVjMDVlNzBlMGQyZWZlZGRjYzYxZDA4OWNiZDUxNWEzOWEzNTc5YjkyMzQzYjYxZWM3NTAwNjBmYjRlZDM3ODc2MzMyNDAwZTQyNWYxZDM3NmM3ZTc1YzI5NzMzMTRlZGY0YmIzMGM4ZjhkZDAzYjlmY2ZmOTU1YTI0NWQ0OTEzN2FkNmU2MDA1NmNhYzE5NTUyYTg2NWQ1MjE4NzE4N2NjMDQyYzljNDllM2UzYTljMTdhNTM0YjQ1M2NkYWJjMGNiMTEzYjRmNjNmNWIzMTc0YjllZTk5MDJiMTkxMGQxMTQ5NmEyNzlhNzQzMjZhZGNmZWUxMGJmZDllN2ViYWZiYjM3N2JlOWI2Mzk1OTE2NWQxM2RkNTc1MTE3MWNhZGFkM2MxZDNhZGFjNjhiYzgwMTFkNjFiNTRjZjYwMTc4YmUzNjgzOWE4OWFjOTFhYjQxOWUzY2EzN2Q2YmE4ODFkMjU1MThjNGRiNjhiY2E2ZjdjODM2MDJmNjk5YTg2YjE3ZmIxZTc3M2JjYmU3NGJiOTNhNDliMjUxYWU4NjQyOGI1NzQwZTE4NjhiYjFkNmZhYjllMjg3MTJlOThlYzMxOWFkOGZjYTRkNzMwMTBjNGIwOWM0YjgwNDU4OTYxZTdjZjA4MzUzMDIwMzAxMDAwMWEzNTMzMDUxMzAxZDA2MDM1NTFkMGUwNDE2MDQxNDhhZWVlNTk0N2NjNjdjNWRkNTE1YTc2ZTJhN2VjZDMxZWU1MmZkYzgzMDFmMDYwMzU1MWQyMzA0MTgzMDE2ODAxNDhhZWVlNTk0N2NjNjdjNWRkNTE1YTc2ZTJhN2VjZDMxZWU1MmZkYzgzMDBmMDYwMzU1MWQxMzAxMDFmZjA0MDUzMDAzMDEwMWZmMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMDM4MjAxMDEwMDgyMWQ2Yjk4Y2Q0NTdkZWJkMmIwODFhY2EyN2ViZWNkNGY5M2FjYzgyODQ0M2IzOWVhYmZmYTlmYTRlOWU0NTQzYjQ2ZmNjMzFlMmI1YjQ4MTc3OTAzZGVhNjk2OWFjNGEyY2M2NTcwNjUwMzkwZjFiMDhkNDNhNGMyZjk3NWM3ZWQ4YmYzMzU2YzcyMTgzODAyMTI0NTFhOGYxMWRlNDY1NTNjYmNkNjViNDI1NGRkYjhmNjY4MzRlYjIxZGRhMmE4ZjMzYjU4MWUxNDg0NTU3YWNhMWI5NGVlODkzMWRkZjE2MDM3YjdhNzE3MTMyMWE5MTkzNmFmYzI3ZmZjZTM5NWRlNzVkNWY3MGNiOGI1YWVlMDVmZjUwNzA4OGQ2NWFmMWU0Mzk2NmNkNDJjYmU2ZjdmYWNmOGRhZTA1NWRkODIyMmIxNjk2NTIxNzIzZjgxMjQ1MTc4NTk1Yzk4NWFlOTE3ZmQ0YjM5OTg3NzNlMWE5N2I3YmQxMDA4NTQ0NmY0MjU5YmNjMDlhNDU0OTI5MjgyYzFiODliNzFlZDU4N2E3NzVlMGEzZDQ1MzYzNDFmNDVkYWU5NjllODA2Yzk2ZmVmYzcxMDY3Nzc2YzAyYmEyMjEyMmI5MTk5YjE0YzBjMjhjMDQ0ODc1MDkwNzBiOTdmM2RkMmQ2ZDk3MjczMzE4MjAxNzczMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwNWJlY2Q4NzE5NWMxZGVmZjkwYzI0YzkxMjY5YjU1YjNmMDY5YmMyMjVjMzI2YzMxNGMxYTUxNzg2ZmZlMTRjODMwYmU0ZTRiYzczY2JhMzZjOTc2NzdiNDQxNjgyNzliZTkxZTdjZGY3YzE5Mzg2YWUyMTg2MjcxOWQxM2EzYTBmZmYwODAzZDQ2MDk2MmYyY2RhODM3MTQ4NDg3MzI1MmMzZDcwNTRkYjgxNDNlMmIwODFhMzgxNmVkMDgwNGNhNTA5OWFlNWZlY2U4M2Q1YzJjMzc4M2IxOTg4YjRiNDZkYzk0ZTU1NTg3YTEwN2VhMTU0NmJmMjJkMjhhMDk3ZjY1MmE0MDY2ZGMyOTY1MjY5MDY5YWYyZjUxNzZiYjhjZTljYTZkMTFmOTY3NTdmMDMyMDRmNzU2NzAzNTg3ZDAwYWQ0MjQ3OTZjOTJmYzdhZWI2ZjQ5NDQzMTk5OWVkYTMwOTkwZTRmNTc3MzYzMmVkMjU4ZmUwMjc2NjczNTk5ZGE2ZmNlMzVjZGFkNzcyNmEwYmIwMjRjYWQ5OTZiODhlMGNiOTg4NTRjZWI1YzBiNmVjNzQ4ZDlmOWNlNmE2Y2Q0Mzc4NThiYWNiODE0NjE4YTI3MmZmM2E0MTVjNmUwN2YzZGIwOTg4Nzc3ZmRlYzg0NWE5N2JmN2QxMDJkZDAiCiAKIFBLQ1M3IFBhcnNlIEZhaWx1cmUgSW52YWxpZCBBU04xOiBDaGFuZ2UgbGVuZ3RoIGZyb20gMTEgdG8gMTAgIzk3LjAKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBwa2NzN19hc24xX2ZhaWw6IjMwODIwNTAwMDYwOTJhODY0ODg2ZjcwZDAxMDcwMmEwODIwNGYxMzA4MjA0ZWQwMjAxMDEzMTBmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwYjA2MDkyYTg2NDg4NmY3MGQwMTA3MDFhMDgyMDM0ZDMwODIwMzQ5MzA4MjAyMzFhMDAzMDIwMTAyMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAzMDM0MzEwYTMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEzMDFlMTcwZDMyMzIzMTMwMzIzODMxMzYzMTMwMzUzNjVhMTcwZDMyMzMzMTMwMzIzODMxMzYzMTMwMzUzNjVhMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMzA4MjAxMjIzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwMzgyMDEwZjAwMzA4MjAxMGEwMjgyMDEwMTAwYzhiNmNmNjk4OTljZDFmMGViYjRjYTY0NWMwNWU3MGUwZDJlZmVkZGNjNjFkMDg5Y2JkNTE1YTM5YTM1NzliOTIzNDNiNjFlYzc1MDA2MGZiNGVkMzc4NzYzMzI0MDBlNDI1ZjFkMzc2YzdlNzVjMjk3MzMxNGVkZjRiYjMwYzhmOGRkMDNiOWZjZmY5NTVhMjQ1ZDQ5MTM3YWQ2ZTYwMDU2Y2FjMTk1NTJhODY1ZDUyMTg3MTg3Y2MwNDJjOWM0OWUzZTNhOWMxN2E1MzRiNDUzY2RhYmMwY2IxMTNiNGY2M2Y1YjMxNzRiOWVlOTkwMmIxOTEwZDExNDk2YTI3OWE3NDMyNmFkY2ZlZTEwYmZkOWU3ZWJhZmJiMzc3YmU5YjYzOTU5MTY1ZDEzZGQ1NzUxMTcxY2FkYWQzYzFkM2FkYWM2OGJjODAxMWQ2MWI1NGNmNjAxNzhiZTM2ODM5YTg5YWM5MWFiNDE5ZTNjYTM3ZDZiYTg4MWQyNTUxOGM0ZGI2OGJjYTZmN2M4MzYwMmY2OTlhODZiMTdmYjFlNzczYmNiZTc0YmI5M2E0OWIyNTFhZTg2NDI4YjU3NDBlMTg2OGJiMWQ2ZmFiOWUyODcxMmU5OGVjMzE5YWQ4ZmNhNGQ3MzAxMGM0YjA5YzRiODA0NTg5NjFlN2NmMDgzNTMwMjAzMDEwMDAxYTM1MzMwNTEzMDFkMDYwMzU1MWQwZTA0MTYwNDE0OGFlZWU1OTQ3Y2M2N2M1ZGQ1MTVhNzZlMmE3ZWNkMzFlZTUyZmRjODMwMWYwNjAzNTUxZDIzMDQxODMwMTY4MDE0OGFlZWU1OTQ3Y2M2N2M1ZGQ1MTVhNzZlMmE3ZWNkMzFlZTUyZmRjODMwMGYwNjAzNTUxZDEzMDEwMWZmMDQwNTMwMDMwMTAxZmYzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAwMzgyMDEwMTAwODIxZDZiOThjZDQ1N2RlYmQyYjA4MWFjYTI3ZWJlY2Q0ZjkzYWNjODI4NDQzYjM5ZWFiZmZhOWZhNGU5ZTQ1NDNiNDZmY2MzMWUyYjViNDgxNzc5MDNkZWE2OTY5YWM0YTJjYzY1NzA2NTAzOTBmMWIwOGQ0M2E0YzJmOTc1YzdlZDhiZjMzNTZjNzIxODM4MDIxMjQ1MWE4ZjExZGU0NjU1M2NiY2Q2NWI0MjU0ZGRiOGY2NjgzNGViMjFkZGEyYThmMzNiNTgxZTE0ODQ1NTdhY2ExYjk0ZWU4OTMxZGRmMTYwMzdiN2E3MTcxMzIxYTkxOTM2YWZjMjdmZmNlMzk1ZGU3NWQ1ZjcwY2I4YjVhZWUwNWZmNTA3MDg4ZDY1YWYxZTQzOTY2Y2Q0MmNiZTZmN2ZhY2Y4ZGFlMDU1ZGQ4MjIyYjE2OTY1MjE3MjNmODEyNDUxNzg1OTVjOTg1YWU5MTdmZDRiMzk5ODc3M2UxYTk3YjdiZDEwMDg1NDQ2ZjQyNTliY2MwOWE0NTQ5MjkyODJjMWI4OWI3MWVkNTg3YTc3NWUwYTNkNDUzNjM0MWY0NWRhZTk2OWU4MDZjOTZmZWZjNzEwNjc3NzZjMDJiYTIyMTIyYjkxOTliMTRjMGMyOGMwNDQ4NzUwOTA3MGI5N2YzZGQyZDZkOTcyNzMzMTgyMDE3NzMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTAyMTQ3YmRlZGRkMjQ0NGNkMWNkZmU1YzQxYTgxMDJjODliN2RmMmU2Y2JmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDA1YmVjZDg3MTk1YzFkZWZmOTBjMjRjOTEyNjliNTViM2YwNjliYzIyNWMzMjZjMzE0YzFhNTE3ODZmZmUxNGM4MzBiZTRlNGJjNzNjYmEzNmM5NzY3N2I0NDE2ODI3OWJlOTFlN2NkZjdjMTkzODZhZTIxODYyNzE5ZDEzYTNhMGZmZjA4MDNkNDYwOTYyZjJjZGE4MzcxNDg0ODczMjUyYzNkNzA1NGRiODE0M2UyYjA4MWEzODE2ZWQwODA0Y2E1MDk5YWU1ZmVjZTgzZDVjMmMzNzgzYjE5ODhiNGI0NmRjOTRlNTU1ODdhMTA3ZWExNTQ2YmYyMmQyOGEwOTdmNjUyYTQwNjZkYzI5NjUyNjkwNjlhZjJmNTE3NmJiOGNlOWNhNmQxMWY5Njc1N2YwMzIwNGY3NTY3MDM1ODdkMDBhZDQyNDc5NmM5MmZjN2FlYjZmNDk0NDMxOTk5ZWRhMzA5OTBlNGY1NzczNjMyZWQyNThmZTAyNzY2NzM1OTlkYTZmY2UzNWNkYWQ3NzI2YTBiYjAyNGNhZDk5NmI4OGUwY2I5ODg1NGNlYjVjMGI2ZWM3NDhkOWY5Y2U2YTZjZDQzNzg1OGJhY2I4MTQ2MThhMjcyZmYzYTQxNWM2ZTA3ZjNkYjA5ODg3NzdmZGVjODQ1YTk3YmY3ZDEwMmRkMCIKIAogUEtDUzcgUGFyc2UgRmFpbHVyZSBJbnZhbGlkIEFTTjE6IENoYW5nZSB0YWcgMzAgdG8gMDIgIzk4LjAKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBwa2NzN19hc24xX2ZhaWw6IjMwODIwNTAwMDYwOTJhODY0ODg2ZjcwZDAxMDcwMmEwODIwNGYxMzA4MjA0ZWQwMjAxMDEzMTBmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwYjA2MDkyYTg2NDg4NmY3MGQwMTA3MDFhMDgyMDM0ZDMwODIwMzQ5MzA4MjAyMzFhMDAzMDIwMTAyMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAzMDM0MzEwYjAyMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEzMDFlMTcwZDMyMzIzMTMwMzIzODMxMzYzMTMwMzUzNjVhMTcwZDMyMzMzMTMwMzIzODMxMzYzMTMwMzUzNjVhMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMzA4MjAxMjIzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwMzgyMDEwZjAwMzA4MjAxMGEwMjgyMDEwMTAwYzhiNmNmNjk4OTljZDFmMGViYjRjYTY0NWMwNWU3MGUwZDJlZmVkZGNjNjFkMDg5Y2JkNTE1YTM5YTM1NzliOTIzNDNiNjFlYzc1MDA2MGZiNGVkMzc4NzYzMzI0MDBlNDI1ZjFkMzc2YzdlNzVjMjk3MzMxNGVkZjRiYjMwYzhmOGRkMDNiOWZjZmY5NTVhMjQ1ZDQ5MTM3YWQ2ZTYwMDU2Y2FjMTk1NTJhODY1ZDUyMTg3MTg3Y2MwNDJjOWM0OWUzZTNhOWMxN2E1MzRiNDUzY2RhYmMwY2IxMTNiNGY2M2Y1YjMxNzRiOWVlOTkwMmIxOTEwZDExNDk2YTI3OWE3NDMyNmFkY2ZlZTEwYmZkOWU3ZWJhZmJiMzc3YmU5YjYzOTU5MTY1ZDEzZGQ1NzUxMTcxY2FkYWQzYzFkM2FkYWM2OGJjODAxMWQ2MWI1NGNmNjAxNzhiZTM2ODM5YTg5YWM5MWFiNDE5ZTNjYTM3ZDZiYTg4MWQyNTUxOGM0ZGI2OGJjYTZmN2M4MzYwMmY2OTlhODZiMTdmYjFlNzczYmNiZTc0YmI5M2E0OWIyNTFhZTg2NDI4YjU3NDBlMTg2OGJiMWQ2ZmFiOWUyODcxMmU5OGVjMzE5YWQ4ZmNhNGQ3MzAxMGM0YjA5YzRiODA0NTg5NjFlN2NmMDgzNTMwMjAzMDEwMDAxYTM1MzMwNTEzMDFkMDYwMzU1MWQwZTA0MTYwNDE0OGFlZWU1OTQ3Y2M2N2M1ZGQ1MTVhNzZlMmE3ZWNkMzFlZTUyZmRjODMwMWYwNjAzNTUxZDIzMDQxODMwMTY4MDE0OGFlZWU1OTQ3Y2M2N2M1ZGQ1MTVhNzZlMmE3ZWNkMzFlZTUyZmRjODMwMGYwNjAzNTUxZDEzMDEwMWZmMDQwNTMwMDMwMTAxZmYzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAwMzgyMDEwMTAwODIxZDZiOThjZDQ1N2RlYmQyYjA4MWFjYTI3ZWJlY2Q0ZjkzYWNjODI4NDQzYjM5ZWFiZmZhOWZhNGU5ZTQ1NDNiNDZmY2MzMWUyYjViNDgxNzc5MDNkZWE2OTY5YWM0YTJjYzY1NzA2NTAzOTBmMWIwOGQ0M2E0YzJmOTc1YzdlZDhiZjMzNTZjNzIxODM4MDIxMjQ1MWE4ZjExZGU0NjU1M2NiY2Q2NWI0MjU0ZGRiOGY2NjgzNGViMjFkZGEyYThmMzNiNTgxZTE0ODQ1NTdhY2ExYjk0ZWU4OTMxZGRmMTYwMzdiN2E3MTcxMzIxYTkxOTM2YWZjMjdmZmNlMzk1ZGU3NWQ1ZjcwY2I4YjVhZWUwNWZmNTA3MDg4ZDY1YWYxZTQzOTY2Y2Q0MmNiZTZmN2ZhY2Y4ZGFlMDU1ZGQ4MjIyYjE2OTY1MjE3MjNmODEyNDUxNzg1OTVjOTg1YWU5MTdmZDRiMzk5ODc3M2UxYTk3YjdiZDEwMDg1NDQ2ZjQyNTliY2MwOWE0NTQ5MjkyODJjMWI4OWI3MWVkNTg3YTc3NWUwYTNkNDUzNjM0MWY0NWRhZTk2OWU4MDZjOTZmZWZjNzEwNjc3NzZjMDJiYTIyMTIyYjkxOTliMTRjMGMyOGMwNDQ4NzUwOTA3MGI5N2YzZGQyZDZkOTcyNzMzMTgyMDE3NzMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTAyMTQ3YmRlZGRkMjQ0NGNkMWNkZmU1YzQxYTgxMDJjODliN2RmMmU2Y2JmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDA1YmVjZDg3MTk1YzFkZWZmOTBjMjRjOTEyNjliNTViM2YwNjliYzIyNWMzMjZjMzE0YzFhNTE3ODZmZmUxNGM4MzBiZTRlNGJjNzNjYmEzNmM5NzY3N2I0NDE2ODI3OWJlOTFlN2NkZjdjMTkzODZhZTIxODYyNzE5ZDEzYTNhMGZmZjA4MDNkNDYwOTYyZjJjZGE4MzcxNDg0ODczMjUyYzNkNzA1NGRiODE0M2UyYjA4MWEzODE2ZWQwODA0Y2E1MDk5YWU1ZmVjZTgzZDVjMmMzNzgzYjE5ODhiNGI0NmRjOTRlNTU1ODdhMTA3ZWExNTQ2YmYyMmQyOGEwOTdmNjUyYTQwNjZkYzI5NjUyNjkwNjlhZjJmNTE3NmJiOGNlOWNhNmQxMWY5Njc1N2YwMzIwNGY3NTY3MDM1ODdkMDBhZDQyNDc5NmM5MmZjN2FlYjZmNDk0NDMxOTk5ZWRhMzA5OTBlNGY1NzczNjMyZWQyNThmZTAyNzY2NzM1OTlkYTZmY2UzNWNkYWQ3NzI2YTBiYjAyNGNhZDk5NmI4OGUwY2I5ODg1NGNlYjVjMGI2ZWM3NDhkOWY5Y2U2YTZjZDQzNzg1OGJhY2I4MTQ2MThhMjcyZmYzYTQxNWM2ZTA3ZjNkYjA5ODg3NzdmZGVjODQ1YTk3YmY3ZDEwMmRkMCIKIAogUEtDUzcgUGFyc2UgRmFpbHVyZSBJbnZhbGlkIEFTTjE6IENoYW5nZSBsZW5ndGggZnJvbSA5IHRvIDEwICM5OS4wCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NgogcGtjczdfYXNuMV9mYWlsOiIzMDgyMDUwMDA2MDkyYTg2NDg4NmY3MGQwMTA3MDJhMDgyMDRmMTMwODIwNGVkMDIwMTAxMzEwZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGIwNjA5MmE4NjQ4ODZmNzBkMDEwNzAxYTA4MjAzNGQzMDgyMDM0OTMwODIwMjMxYTAwMzAyMDEwMjAyMTQ3YmRlZGRkMjQ0NGNkMWNkZmU1YzQxYTgxMDJjODliN2RmMmU2Y2JmMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMzAzNDMxMGIzMDBhMDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMzAxZTE3MGQzMjMyMzEzMDMyMzgzMTM2MzEzMDM1MzY1YTE3MGQzMjMzMzEzMDMyMzgzMTM2MzEzMDM1MzY1YTMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTMwODIwMTIyMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDM4MjAxMGYwMDMwODIwMTBhMDI4MjAxMDEwMGM4YjZjZjY5ODk5Y2QxZjBlYmI0Y2E2NDVjMDVlNzBlMGQyZWZlZGRjYzYxZDA4OWNiZDUxNWEzOWEzNTc5YjkyMzQzYjYxZWM3NTAwNjBmYjRlZDM3ODc2MzMyNDAwZTQyNWYxZDM3NmM3ZTc1YzI5NzMzMTRlZGY0YmIzMGM4ZjhkZDAzYjlmY2ZmOTU1YTI0NWQ0OTEzN2FkNmU2MDA1NmNhYzE5NTUyYTg2NWQ1MjE4NzE4N2NjMDQyYzljNDllM2UzYTljMTdhNTM0YjQ1M2NkYWJjMGNiMTEzYjRmNjNmNWIzMTc0YjllZTk5MDJiMTkxMGQxMTQ5NmEyNzlhNzQzMjZhZGNmZWUxMGJmZDllN2ViYWZiYjM3N2JlOWI2Mzk1OTE2NWQxM2RkNTc1MTE3MWNhZGFkM2MxZDNhZGFjNjhiYzgwMTFkNjFiNTRjZjYwMTc4YmUzNjgzOWE4OWFjOTFhYjQxOWUzY2EzN2Q2YmE4ODFkMjU1MThjNGRiNjhiY2E2ZjdjODM2MDJmNjk5YTg2YjE3ZmIxZTc3M2JjYmU3NGJiOTNhNDliMjUxYWU4NjQyOGI1NzQwZTE4NjhiYjFkNmZhYjllMjg3MTJlOThlYzMxOWFkOGZjYTRkNzMwMTBjNGIwOWM0YjgwNDU4OTYxZTdjZjA4MzUzMDIwMzAxMDAwMWEzNTMzMDUxMzAxZDA2MDM1NTFkMGUwNDE2MDQxNDhhZWVlNTk0N2NjNjdjNWRkNTE1YTc2ZTJhN2VjZDMxZWU1MmZkYzgzMDFmMDYwMzU1MWQyMzA0MTgzMDE2ODAxNDhhZWVlNTk0N2NjNjdjNWRkNTE1YTc2ZTJhN2VjZDMxZWU1MmZkYzgzMDBmMDYwMzU1MWQxMzAxMDFmZjA0MDUzMDAzMDEwMWZmMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMDM4MjAxMDEwMDgyMWQ2Yjk4Y2Q0NTdkZWJkMmIwODFhY2EyN2ViZWNkNGY5M2FjYzgyODQ0M2IzOWVhYmZmYTlmYTRlOWU0NTQzYjQ2ZmNjMzFlMmI1YjQ4MTc3OTAzZGVhNjk2OWFjNGEyY2M2NTcwNjUwMzkwZjFiMDhkNDNhNGMyZjk3NWM3ZWQ4YmYzMzU2YzcyMTgzODAyMTI0NTFhOGYxMWRlNDY1NTNjYmNkNjViNDI1NGRkYjhmNjY4MzRlYjIxZGRhMmE4ZjMzYjU4MWUxNDg0NTU3YWNhMWI5NGVlODkzMWRkZjE2MDM3YjdhNzE3MTMyMWE5MTkzNmFmYzI3ZmZjZTM5NWRlNzVkNWY3MGNiOGI1YWVlMDVmZjUwNzA4OGQ2NWFmMWU0Mzk2NmNkNDJjYmU2ZjdmYWNmOGRhZTA1NWRkODIyMmIxNjk2NTIxNzIzZjgxMjQ1MTc4NTk1Yzk4NWFlOTE3ZmQ0YjM5OTg3NzNlMWE5N2I3YmQxMDA4NTQ0NmY0MjU5YmNjMDlhNDU0OTI5MjgyYzFiODliNzFlZDU4N2E3NzVlMGEzZDQ1MzYzNDFmNDVkYWU5NjllODA2Yzk2ZmVmYzcxMDY3Nzc2YzAyYmEyMjEyMmI5MTk5YjE0YzBjMjhjMDQ0ODc1MDkwNzBiOTdmM2RkMmQ2ZDk3MjczMzE4MjAxNzczMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwNWJlY2Q4NzE5NWMxZGVmZjkwYzI0YzkxMjY5YjU1YjNmMDY5YmMyMjVjMzI2YzMxNGMxYTUxNzg2ZmZlMTRjODMwYmU0ZTRiYzczY2JhMzZjOTc2NzdiNDQxNjgyNzliZTkxZTdjZGY3YzE5Mzg2YWUyMTg2MjcxOWQxM2EzYTBmZmYwODAzZDQ2MDk2MmYyY2RhODM3MTQ4NDg3MzI1MmMzZDcwNTRkYjgxNDNlMmIwODFhMzgxNmVkMDgwNGNhNTA5OWFlNWZlY2U4M2Q1YzJjMzc4M2IxOTg4YjRiNDZkYzk0ZTU1NTg3YTEwN2VhMTU0NmJmMjJkMjhhMDk3ZjY1MmE0MDY2ZGMyOTY1MjY5MDY5YWYyZjUxNzZiYjhjZTljYTZkMTFmOTY3NTdmMDMyMDRmNzU2NzAzNTg3ZDAwYWQ0MjQ3OTZjOTJmYzdhZWI2ZjQ5NDQzMTk5OWVkYTMwOTkwZTRmNTc3MzYzMmVkMjU4ZmUwMjc2NjczNTk5ZGE2ZmNlMzVjZGFkNzcyNmEwYmIwMjRjYWQ5OTZiODhlMGNiOTg4NTRjZWI1YzBiNmVjNzQ4ZDlmOWNlNmE2Y2Q0Mzc4NThiYWNiODE0NjE4YTI3MmZmM2E0MTVjNmUwN2YzZGIwOTg4Nzc3ZmRlYzg0NWE5N2JmN2QxMDJkZDAiCiAKIFBLQ1M3IFBhcnNlIEZhaWx1cmUgSW52YWxpZCBBU04xOiBDaGFuZ2UgY29udGVudHMgb2YgdGFnIDMwIHRvIGNvbnRhaW4gb25lIHVuYWNjb3VudGVkIGV4dHJhIGJ5dGUgIzEwMC4wCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NgogcGtjczdfYXNuMV9mYWlsOiIzMDgyMDUwMDA2MDkyYTg2NDg4NmY3MGQwMTA3MDJhMDgyMDRmMTMwODIwNGVkMDIwMTAxMzEwZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGIwNjA5MmE4NjQ4ODZmNzBkMDEwNzAxYTA4MjAzNGQzMDgyMDM0OTMwODIwMjMxYTAwMzAyMDEwMjAyMTQ3YmRlZGRkMjQ0NGNkMWNkZmU1YzQxYTgxMDJjODliN2RmMmU2Y2JmMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMzAzNDMxMGIzMDBhMDYwMzU1MDQwNjEzMDI0ZTRjMDAzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEzMDFlMTcwZDMyMzIzMTMwMzIzODMxMzYzMTMwMzUzNjVhMTcwZDMyMzMzMTMwMzIzODMxMzYzMTMwMzUzNjVhMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMzA4MjAxMjIzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwMzgyMDEwZjAwMzA4MjAxMGEwMjgyMDEwMTAwYzhiNmNmNjk4OTljZDFmMGViYjRjYTY0NWMwNWU3MGUwZDJlZmVkZGNjNjFkMDg5Y2JkNTE1YTM5YTM1NzliOTIzNDNiNjFlYzc1MDA2MGZiNGVkMzc4NzYzMzI0MDBlNDI1ZjFkMzc2YzdlNzVjMjk3MzMxNGVkZjRiYjMwYzhmOGRkMDNiOWZjZmY5NTVhMjQ1ZDQ5MTM3YWQ2ZTYwMDU2Y2FjMTk1NTJhODY1ZDUyMTg3MTg3Y2MwNDJjOWM0OWUzZTNhOWMxN2E1MzRiNDUzY2RhYmMwY2IxMTNiNGY2M2Y1YjMxNzRiOWVlOTkwMmIxOTEwZDExNDk2YTI3OWE3NDMyNmFkY2ZlZTEwYmZkOWU3ZWJhZmJiMzc3YmU5YjYzOTU5MTY1ZDEzZGQ1NzUxMTcxY2FkYWQzYzFkM2FkYWM2OGJjODAxMWQ2MWI1NGNmNjAxNzhiZTM2ODM5YTg5YWM5MWFiNDE5ZTNjYTM3ZDZiYTg4MWQyNTUxOGM0ZGI2OGJjYTZmN2M4MzYwMmY2OTlhODZiMTdmYjFlNzczYmNiZTc0YmI5M2E0OWIyNTFhZTg2NDI4YjU3NDBlMTg2OGJiMWQ2ZmFiOWUyODcxMmU5OGVjMzE5YWQ4ZmNhNGQ3MzAxMGM0YjA5YzRiODA0NTg5NjFlN2NmMDgzNTMwMjAzMDEwMDAxYTM1MzMwNTEzMDFkMDYwMzU1MWQwZTA0MTYwNDE0OGFlZWU1OTQ3Y2M2N2M1ZGQ1MTVhNzZlMmE3ZWNkMzFlZTUyZmRjODMwMWYwNjAzNTUxZDIzMDQxODMwMTY4MDE0OGFlZWU1OTQ3Y2M2N2M1ZGQ1MTVhNzZlMmE3ZWNkMzFlZTUyZmRjODMwMGYwNjAzNTUxZDEzMDEwMWZmMDQwNTMwMDMwMTAxZmYzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAwMzgyMDEwMTAwODIxZDZiOThjZDQ1N2RlYmQyYjA4MWFjYTI3ZWJlY2Q0ZjkzYWNjODI4NDQzYjM5ZWFiZmZhOWZhNGU5ZTQ1NDNiNDZmY2MzMWUyYjViNDgxNzc5MDNkZWE2OTY5YWM0YTJjYzY1NzA2NTAzOTBmMWIwOGQ0M2E0YzJmOTc1YzdlZDhiZjMzNTZjNzIxODM4MDIxMjQ1MWE4ZjExZGU0NjU1M2NiY2Q2NWI0MjU0ZGRiOGY2NjgzNGViMjFkZGEyYThmMzNiNTgxZTE0ODQ1NTdhY2ExYjk0ZWU4OTMxZGRmMTYwMzdiN2E3MTcxMzIxYTkxOTM2YWZjMjdmZmNlMzk1ZGU3NWQ1ZjcwY2I4YjVhZWUwNWZmNTA3MDg4ZDY1YWYxZTQzOTY2Y2Q0MmNiZTZmN2ZhY2Y4ZGFlMDU1ZGQ4MjIyYjE2OTY1MjE3MjNmODEyNDUxNzg1OTVjOTg1YWU5MTdmZDRiMzk5ODc3M2UxYTk3YjdiZDEwMDg1NDQ2ZjQyNTliY2MwOWE0NTQ5MjkyODJjMWI4OWI3MWVkNTg3YTc3NWUwYTNkNDUzNjM0MWY0NWRhZTk2OWU4MDZjOTZmZWZjNzEwNjc3NzZjMDJiYTIyMTIyYjkxOTliMTRjMGMyOGMwNDQ4NzUwOTA3MGI5N2YzZGQyZDZkOTcyNzMzMTgyMDE3NzMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTAyMTQ3YmRlZGRkMjQ0NGNkMWNkZmU1YzQxYTgxMDJjODliN2RmMmU2Y2JmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDA1YmVjZDg3MTk1YzFkZWZmOTBjMjRjOTEyNjliNTViM2YwNjliYzIyNWMzMjZjMzE0YzFhNTE3ODZmZmUxNGM4MzBiZTRlNGJjNzNjYmEzNmM5NzY3N2I0NDE2ODI3OWJlOTFlN2NkZjdjMTkzODZhZTIxODYyNzE5ZDEzYTNhMGZmZjA4MDNkNDYwOTYyZjJjZGE4MzcxNDg0ODczMjUyYzNkNzA1NGRiODE0M2UyYjA4MWEzODE2ZWQwODA0Y2E1MDk5YWU1ZmVjZTgzZDVjMmMzNzgzYjE5ODhiNGI0NmRjOTRlNTU1ODdhMTA3ZWExNTQ2YmYyMmQyOGEwOTdmNjUyYTQwNjZkYzI5NjUyNjkwNjlhZjJmNTE3NmJiOGNlOWNhNmQxMWY5Njc1N2YwMzIwNGY3NTY3MDM1ODdkMDBhZDQyNDc5NmM5MmZjN2FlYjZmNDk0NDMxOTk5ZWRhMzA5OTBlNGY1NzczNjMyZWQyNThmZTAyNzY2NzM1OTlkYTZmY2UzNWNkYWQ3NzI2YTBiYjAyNGNhZDk5NmI4OGUwY2I5ODg1NGNlYjVjMGI2ZWM3NDhkOWY5Y2U2YTZjZDQzNzg1OGJhY2I4MTQ2MThhMjcyZmYzYTQxNWM2ZTA3ZjNkYjA5ODg3NzdmZGVjODQ1YTk3YmY3ZDEwMmRkMCIKIAogUEtDUzcgUGFyc2UgRmFpbHVyZSBJbnZhbGlkIEFTTjE6IENoYW5nZSBsZW5ndGggZnJvbSA5IHRvIDggIzEwMS4wCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NgogcGtjczdfYXNuMV9mYWlsOiIzMDgyMDUwMDA2MDkyYTg2NDg4NmY3MGQwMTA3MDJhMDgyMDRmMTMwODIwNGVkMDIwMTAxMzEwZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGIwNjA5MmE4NjQ4ODZmNzBkMDEwNzAxYTA4MjAzNGQzMDgyMDM0OTMwODIwMjMxYTAwMzAyMDEwMjAyMTQ3YmRlZGRkMjQ0NGNkMWNkZmU1YzQxYTgxMDJjODliN2RmMmU2Y2JmMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMzAzNDMxMGIzMDA4MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMzAxZTE3MGQzMjMyMzEzMDMyMzgzMTM2MzEzMDM1MzY1YTE3MGQzMjMzMzEzMDMyMzgzMTM2MzEzMDM1MzY1YTMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTMwODIwMTIyMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDM4MjAxMGYwMDMwODIwMTBhMDI4MjAxMDEwMGM4YjZjZjY5ODk5Y2QxZjBlYmI0Y2E2NDVjMDVlNzBlMGQyZWZlZGRjYzYxZDA4OWNiZDUxNWEzOWEzNTc5YjkyMzQzYjYxZWM3NTAwNjBmYjRlZDM3ODc2MzMyNDAwZTQyNWYxZDM3NmM3ZTc1YzI5NzMzMTRlZGY0YmIzMGM4ZjhkZDAzYjlmY2ZmOTU1YTI0NWQ0OTEzN2FkNmU2MDA1NmNhYzE5NTUyYTg2NWQ1MjE4NzE4N2NjMDQyYzljNDllM2UzYTljMTdhNTM0YjQ1M2NkYWJjMGNiMTEzYjRmNjNmNWIzMTc0YjllZTk5MDJiMTkxMGQxMTQ5NmEyNzlhNzQzMjZhZGNmZWUxMGJmZDllN2ViYWZiYjM3N2JlOWI2Mzk1OTE2NWQxM2RkNTc1MTE3MWNhZGFkM2MxZDNhZGFjNjhiYzgwMTFkNjFiNTRjZjYwMTc4YmUzNjgzOWE4OWFjOTFhYjQxOWUzY2EzN2Q2YmE4ODFkMjU1MThjNGRiNjhiY2E2ZjdjODM2MDJmNjk5YTg2YjE3ZmIxZTc3M2JjYmU3NGJiOTNhNDliMjUxYWU4NjQyOGI1NzQwZTE4NjhiYjFkNmZhYjllMjg3MTJlOThlYzMxOWFkOGZjYTRkNzMwMTBjNGIwOWM0YjgwNDU4OTYxZTdjZjA4MzUzMDIwMzAxMDAwMWEzNTMzMDUxMzAxZDA2MDM1NTFkMGUwNDE2MDQxNDhhZWVlNTk0N2NjNjdjNWRkNTE1YTc2ZTJhN2VjZDMxZWU1MmZkYzgzMDFmMDYwMzU1MWQyMzA0MTgzMDE2ODAxNDhhZWVlNTk0N2NjNjdjNWRkNTE1YTc2ZTJhN2VjZDMxZWU1MmZkYzgzMDBmMDYwMzU1MWQxMzAxMDFmZjA0MDUzMDAzMDEwMWZmMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMDM4MjAxMDEwMDgyMWQ2Yjk4Y2Q0NTdkZWJkMmIwODFhY2EyN2ViZWNkNGY5M2FjYzgyODQ0M2IzOWVhYmZmYTlmYTRlOWU0NTQzYjQ2ZmNjMzFlMmI1YjQ4MTc3OTAzZGVhNjk2OWFjNGEyY2M2NTcwNjUwMzkwZjFiMDhkNDNhNGMyZjk3NWM3ZWQ4YmYzMzU2YzcyMTgzODAyMTI0NTFhOGYxMWRlNDY1NTNjYmNkNjViNDI1NGRkYjhmNjY4MzRlYjIxZGRhMmE4ZjMzYjU4MWUxNDg0NTU3YWNhMWI5NGVlODkzMWRkZjE2MDM3YjdhNzE3MTMyMWE5MTkzNmFmYzI3ZmZjZTM5NWRlNzVkNWY3MGNiOGI1YWVlMDVmZjUwNzA4OGQ2NWFmMWU0Mzk2NmNkNDJjYmU2ZjdmYWNmOGRhZTA1NWRkODIyMmIxNjk2NTIxNzIzZjgxMjQ1MTc4NTk1Yzk4NWFlOTE3ZmQ0YjM5OTg3NzNlMWE5N2I3YmQxMDA4NTQ0NmY0MjU5YmNjMDlhNDU0OTI5MjgyYzFiODliNzFlZDU4N2E3NzVlMGEzZDQ1MzYzNDFmNDVkYWU5NjllODA2Yzk2ZmVmYzcxMDY3Nzc2YzAyYmEyMjEyMmI5MTk5YjE0YzBjMjhjMDQ0ODc1MDkwNzBiOTdmM2RkMmQ2ZDk3MjczMzE4MjAxNzczMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwNWJlY2Q4NzE5NWMxZGVmZjkwYzI0YzkxMjY5YjU1YjNmMDY5YmMyMjVjMzI2YzMxNGMxYTUxNzg2ZmZlMTRjODMwYmU0ZTRiYzczY2JhMzZjOTc2NzdiNDQxNjgyNzliZTkxZTdjZGY3YzE5Mzg2YWUyMTg2MjcxOWQxM2EzYTBmZmYwODAzZDQ2MDk2MmYyY2RhODM3MTQ4NDg3MzI1MmMzZDcwNTRkYjgxNDNlMmIwODFhMzgxNmVkMDgwNGNhNTA5OWFlNWZlY2U4M2Q1YzJjMzc4M2IxOTg4YjRiNDZkYzk0ZTU1NTg3YTEwN2VhMTU0NmJmMjJkMjhhMDk3ZjY1MmE0MDY2ZGMyOTY1MjY5MDY5YWYyZjUxNzZiYjhjZTljYTZkMTFmOTY3NTdmMDMyMDRmNzU2NzAzNTg3ZDAwYWQ0MjQ3OTZjOTJmYzdhZWI2ZjQ5NDQzMTk5OWVkYTMwOTkwZTRmNTc3MzYzMmVkMjU4ZmUwMjc2NjczNTk5ZGE2ZmNlMzVjZGFkNzcyNmEwYmIwMjRjYWQ5OTZiODhlMGNiOTg4NTRjZWI1YzBiNmVjNzQ4ZDlmOWNlNmE2Y2Q0Mzc4NThiYWNiODE0NjE4YTI3MmZmM2E0MTVjNmUwN2YzZGIwOTg4Nzc3ZmRlYzg0NWE5N2JmN2QxMDJkZDAiCiAKIFBLQ1M3IFBhcnNlIEZhaWx1cmUgSW52YWxpZCBBU04xOiBDaGFuZ2UgdGFnIDA2IHRvIDAyICMxMDIuMAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHBrY3M3X2FzbjFfZmFpbDoiMzA4MjA1MDAwNjA5MmE4NjQ4ODZmNzBkMDEwNzAyYTA4MjA0ZjEzMDgyMDRlZDAyMDEwMTMxMGYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBiMDYwOTJhODY0ODg2ZjcwZDAxMDcwMWEwODIwMzRkMzA4MjAzNDkzMDgyMDIzMWEwMDMwMjAxMDIwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDMwMzQzMTBiMzAwOTAyMDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTMwMWUxNzBkMzIzMjMxMzAzMjM4MzEzNjMxMzAzNTM2NWExNzBkMzIzMzMxMzAzMjM4MzEzNjMxMzAzNTM2NWEzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEzMDgyMDEyMjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDAzODIwMTBmMDAzMDgyMDEwYTAyODIwMTAxMDBjOGI2Y2Y2OTg5OWNkMWYwZWJiNGNhNjQ1YzA1ZTcwZTBkMmVmZWRkY2M2MWQwODljYmQ1MTVhMzlhMzU3OWI5MjM0M2I2MWVjNzUwMDYwZmI0ZWQzNzg3NjMzMjQwMGU0MjVmMWQzNzZjN2U3NWMyOTczMzE0ZWRmNGJiMzBjOGY4ZGQwM2I5ZmNmZjk1NWEyNDVkNDkxMzdhZDZlNjAwNTZjYWMxOTU1MmE4NjVkNTIxODcxODdjYzA0MmM5YzQ5ZTNlM2E5YzE3YTUzNGI0NTNjZGFiYzBjYjExM2I0ZjYzZjViMzE3NGI5ZWU5OTAyYjE5MTBkMTE0OTZhMjc5YTc0MzI2YWRjZmVlMTBiZmQ5ZTdlYmFmYmIzNzdiZTliNjM5NTkxNjVkMTNkZDU3NTExNzFjYWRhZDNjMWQzYWRhYzY4YmM4MDExZDYxYjU0Y2Y2MDE3OGJlMzY4MzlhODlhYzkxYWI0MTllM2NhMzdkNmJhODgxZDI1NTE4YzRkYjY4YmNhNmY3YzgzNjAyZjY5OWE4NmIxN2ZiMWU3NzNiY2JlNzRiYjkzYTQ5YjI1MWFlODY0MjhiNTc0MGUxODY4YmIxZDZmYWI5ZTI4NzEyZTk4ZWMzMTlhZDhmY2E0ZDczMDEwYzRiMDljNGI4MDQ1ODk2MWU3Y2YwODM1MzAyMDMwMTAwMDFhMzUzMzA1MTMwMWQwNjAzNTUxZDBlMDQxNjA0MTQ4YWVlZTU5NDdjYzY3YzVkZDUxNWE3NmUyYTdlY2QzMWVlNTJmZGM4MzAxZjA2MDM1NTFkMjMwNDE4MzAxNjgwMTQ4YWVlZTU5NDdjYzY3YzVkZDUxNWE3NmUyYTdlY2QzMWVlNTJmZGM4MzAwZjA2MDM1NTFkMTMwMTAxZmYwNDA1MzAwMzAxMDFmZjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDAzODIwMTAxMDA4MjFkNmI5OGNkNDU3ZGViZDJiMDgxYWNhMjdlYmVjZDRmOTNhY2M4Mjg0NDNiMzllYWJmZmE5ZmE0ZTllNDU0M2I0NmZjYzMxZTJiNWI0ODE3NzkwM2RlYTY5NjlhYzRhMmNjNjU3MDY1MDM5MGYxYjA4ZDQzYTRjMmY5NzVjN2VkOGJmMzM1NmM3MjE4MzgwMjEyNDUxYThmMTFkZTQ2NTUzY2JjZDY1YjQyNTRkZGI4ZjY2ODM0ZWIyMWRkYTJhOGYzM2I1ODFlMTQ4NDU1N2FjYTFiOTRlZTg5MzFkZGYxNjAzN2I3YTcxNzEzMjFhOTE5MzZhZmMyN2ZmY2UzOTVkZTc1ZDVmNzBjYjhiNWFlZTA1ZmY1MDcwODhkNjVhZjFlNDM5NjZjZDQyY2JlNmY3ZmFjZjhkYWUwNTVkZDgyMjJiMTY5NjUyMTcyM2Y4MTI0NTE3ODU5NWM5ODVhZTkxN2ZkNGIzOTk4NzczZTFhOTdiN2JkMTAwODU0NDZmNDI1OWJjYzA5YTQ1NDkyOTI4MmMxYjg5YjcxZWQ1ODdhNzc1ZTBhM2Q0NTM2MzQxZjQ1ZGFlOTY5ZTgwNmM5NmZlZmM3MTA2Nzc3NmMwMmJhMjIxMjJiOTE5OWIxNGMwYzI4YzA0NDg3NTA5MDcwYjk3ZjNkZDJkNmQ5NzI3MzMxODIwMTc3MzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDViZWNkODcxOTVjMWRlZmY5MGMyNGM5MTI2OWI1NWIzZjA2OWJjMjI1YzMyNmMzMTRjMWE1MTc4NmZmZTE0YzgzMGJlNGU0YmM3M2NiYTM2Yzk3Njc3YjQ0MTY4Mjc5YmU5MWU3Y2RmN2MxOTM4NmFlMjE4NjI3MTlkMTNhM2EwZmZmMDgwM2Q0NjA5NjJmMmNkYTgzNzE0ODQ4NzMyNTJjM2Q3MDU0ZGI4MTQzZTJiMDgxYTM4MTZlZDA4MDRjYTUwOTlhZTVmZWNlODNkNWMyYzM3ODNiMTk4OGI0YjQ2ZGM5NGU1NTU4N2ExMDdlYTE1NDZiZjIyZDI4YTA5N2Y2NTJhNDA2NmRjMjk2NTI2OTA2OWFmMmY1MTc2YmI4Y2U5Y2E2ZDExZjk2NzU3ZjAzMjA0Zjc1NjcwMzU4N2QwMGFkNDI0Nzk2YzkyZmM3YWViNmY0OTQ0MzE5OTllZGEzMDk5MGU0ZjU3NzM2MzJlZDI1OGZlMDI3NjY3MzU5OWRhNmZjZTM1Y2RhZDc3MjZhMGJiMDI0Y2FkOTk2Yjg4ZTBjYjk4ODU0Y2ViNWMwYjZlYzc0OGQ5ZjljZTZhNmNkNDM3ODU4YmFjYjgxNDYxOGEyNzJmZjNhNDE1YzZlMDdmM2RiMDk4ODc3N2ZkZWM4NDVhOTdiZjdkMTAyZGQwIgogCiBQS0NTNyBQYXJzZSBGYWlsdXJlIEludmFsaWQgQVNOMTogQ2hhbmdlIGxlbmd0aCBmcm9tIDMgdG8gNCAjMTAzLjAKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBwa2NzN19hc24xX2ZhaWw6IjMwODIwNTAwMDYwOTJhODY0ODg2ZjcwZDAxMDcwMmEwODIwNGYxMzA4MjA0ZWQwMjAxMDEzMTBmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwYjA2MDkyYTg2NDg4NmY3MGQwMTA3MDFhMDgyMDM0ZDMwODIwMzQ5MzA4MjAyMzFhMDAzMDIwMTAyMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAzMDM0MzEwYjMwMDkwNjA0NTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEzMDFlMTcwZDMyMzIzMTMwMzIzODMxMzYzMTMwMzUzNjVhMTcwZDMyMzMzMTMwMzIzODMxMzYzMTMwMzUzNjVhMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMzA4MjAxMjIzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwMzgyMDEwZjAwMzA4MjAxMGEwMjgyMDEwMTAwYzhiNmNmNjk4OTljZDFmMGViYjRjYTY0NWMwNWU3MGUwZDJlZmVkZGNjNjFkMDg5Y2JkNTE1YTM5YTM1NzliOTIzNDNiNjFlYzc1MDA2MGZiNGVkMzc4NzYzMzI0MDBlNDI1ZjFkMzc2YzdlNzVjMjk3MzMxNGVkZjRiYjMwYzhmOGRkMDNiOWZjZmY5NTVhMjQ1ZDQ5MTM3YWQ2ZTYwMDU2Y2FjMTk1NTJhODY1ZDUyMTg3MTg3Y2MwNDJjOWM0OWUzZTNhOWMxN2E1MzRiNDUzY2RhYmMwY2IxMTNiNGY2M2Y1YjMxNzRiOWVlOTkwMmIxOTEwZDExNDk2YTI3OWE3NDMyNmFkY2ZlZTEwYmZkOWU3ZWJhZmJiMzc3YmU5YjYzOTU5MTY1ZDEzZGQ1NzUxMTcxY2FkYWQzYzFkM2FkYWM2OGJjODAxMWQ2MWI1NGNmNjAxNzhiZTM2ODM5YTg5YWM5MWFiNDE5ZTNjYTM3ZDZiYTg4MWQyNTUxOGM0ZGI2OGJjYTZmN2M4MzYwMmY2OTlhODZiMTdmYjFlNzczYmNiZTc0YmI5M2E0OWIyNTFhZTg2NDI4YjU3NDBlMTg2OGJiMWQ2ZmFiOWUyODcxMmU5OGVjMzE5YWQ4ZmNhNGQ3MzAxMGM0YjA5YzRiODA0NTg5NjFlN2NmMDgzNTMwMjAzMDEwMDAxYTM1MzMwNTEzMDFkMDYwMzU1MWQwZTA0MTYwNDE0OGFlZWU1OTQ3Y2M2N2M1ZGQ1MTVhNzZlMmE3ZWNkMzFlZTUyZmRjODMwMWYwNjAzNTUxZDIzMDQxODMwMTY4MDE0OGFlZWU1OTQ3Y2M2N2M1ZGQ1MTVhNzZlMmE3ZWNkMzFlZTUyZmRjODMwMGYwNjAzNTUxZDEzMDEwMWZmMDQwNTMwMDMwMTAxZmYzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAwMzgyMDEwMTAwODIxZDZiOThjZDQ1N2RlYmQyYjA4MWFjYTI3ZWJlY2Q0ZjkzYWNjODI4NDQzYjM5ZWFiZmZhOWZhNGU5ZTQ1NDNiNDZmY2MzMWUyYjViNDgxNzc5MDNkZWE2OTY5YWM0YTJjYzY1NzA2NTAzOTBmMWIwOGQ0M2E0YzJmOTc1YzdlZDhiZjMzNTZjNzIxODM4MDIxMjQ1MWE4ZjExZGU0NjU1M2NiY2Q2NWI0MjU0ZGRiOGY2NjgzNGViMjFkZGEyYThmMzNiNTgxZTE0ODQ1NTdhY2ExYjk0ZWU4OTMxZGRmMTYwMzdiN2E3MTcxMzIxYTkxOTM2YWZjMjdmZmNlMzk1ZGU3NWQ1ZjcwY2I4YjVhZWUwNWZmNTA3MDg4ZDY1YWYxZTQzOTY2Y2Q0MmNiZTZmN2ZhY2Y4ZGFlMDU1ZGQ4MjIyYjE2OTY1MjE3MjNmODEyNDUxNzg1OTVjOTg1YWU5MTdmZDRiMzk5ODc3M2UxYTk3YjdiZDEwMDg1NDQ2ZjQyNTliY2MwOWE0NTQ5MjkyODJjMWI4OWI3MWVkNTg3YTc3NWUwYTNkNDUzNjM0MWY0NWRhZTk2OWU4MDZjOTZmZWZjNzEwNjc3NzZjMDJiYTIyMTIyYjkxOTliMTRjMGMyOGMwNDQ4NzUwOTA3MGI5N2YzZGQyZDZkOTcyNzMzMTgyMDE3NzMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTAyMTQ3YmRlZGRkMjQ0NGNkMWNkZmU1YzQxYTgxMDJjODliN2RmMmU2Y2JmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDA1YmVjZDg3MTk1YzFkZWZmOTBjMjRjOTEyNjliNTViM2YwNjliYzIyNWMzMjZjMzE0YzFhNTE3ODZmZmUxNGM4MzBiZTRlNGJjNzNjYmEzNmM5NzY3N2I0NDE2ODI3OWJlOTFlN2NkZjdjMTkzODZhZTIxODYyNzE5ZDEzYTNhMGZmZjA4MDNkNDYwOTYyZjJjZGE4MzcxNDg0ODczMjUyYzNkNzA1NGRiODE0M2UyYjA4MWEzODE2ZWQwODA0Y2E1MDk5YWU1ZmVjZTgzZDVjMmMzNzgzYjE5ODhiNGI0NmRjOTRlNTU1ODdhMTA3ZWExNTQ2YmYyMmQyOGEwOTdmNjUyYTQwNjZkYzI5NjUyNjkwNjlhZjJmNTE3NmJiOGNlOWNhNmQxMWY5Njc1N2YwMzIwNGY3NTY3MDM1ODdkMDBhZDQyNDc5NmM5MmZjN2FlYjZmNDk0NDMxOTk5ZWRhMzA5OTBlNGY1NzczNjMyZWQyNThmZTAyNzY2NzM1OTlkYTZmY2UzNWNkYWQ3NzI2YTBiYjAyNGNhZDk5NmI4OGUwY2I5ODg1NGNlYjVjMGI2ZWM3NDhkOWY5Y2U2YTZjZDQzNzg1OGJhY2I4MTQ2MThhMjcyZmYzYTQxNWM2ZTA3ZjNkYjA5ODg3NzdmZGVjODQ1YTk3YmY3ZDEwMmRkMCIKIAogUEtDUzcgUGFyc2UgRmFpbHVyZSBJbnZhbGlkIEFTTjE6IENoYW5nZSBsZW5ndGggZnJvbSAzIHRvIDIgIzEwNC4wCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NgogcGtjczdfYXNuMV9mYWlsOiIzMDgyMDUwMDA2MDkyYTg2NDg4NmY3MGQwMTA3MDJhMDgyMDRmMTMwODIwNGVkMDIwMTAxMzEwZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGIwNjA5MmE4NjQ4ODZmNzBkMDEwNzAxYTA4MjAzNGQzMDgyMDM0OTMwODIwMjMxYTAwMzAyMDEwMjAyMTQ3YmRlZGRkMjQ0NGNkMWNkZmU1YzQxYTgxMDJjODliN2RmMmU2Y2JmMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMzAzNDMxMGIzMDA5MDYwMjU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMzAxZTE3MGQzMjMyMzEzMDMyMzgzMTM2MzEzMDM1MzY1YTE3MGQzMjMzMzEzMDMyMzgzMTM2MzEzMDM1MzY1YTMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTMwODIwMTIyMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDM4MjAxMGYwMDMwODIwMTBhMDI4MjAxMDEwMGM4YjZjZjY5ODk5Y2QxZjBlYmI0Y2E2NDVjMDVlNzBlMGQyZWZlZGRjYzYxZDA4OWNiZDUxNWEzOWEzNTc5YjkyMzQzYjYxZWM3NTAwNjBmYjRlZDM3ODc2MzMyNDAwZTQyNWYxZDM3NmM3ZTc1YzI5NzMzMTRlZGY0YmIzMGM4ZjhkZDAzYjlmY2ZmOTU1YTI0NWQ0OTEzN2FkNmU2MDA1NmNhYzE5NTUyYTg2NWQ1MjE4NzE4N2NjMDQyYzljNDllM2UzYTljMTdhNTM0YjQ1M2NkYWJjMGNiMTEzYjRmNjNmNWIzMTc0YjllZTk5MDJiMTkxMGQxMTQ5NmEyNzlhNzQzMjZhZGNmZWUxMGJmZDllN2ViYWZiYjM3N2JlOWI2Mzk1OTE2NWQxM2RkNTc1MTE3MWNhZGFkM2MxZDNhZGFjNjhiYzgwMTFkNjFiNTRjZjYwMTc4YmUzNjgzOWE4OWFjOTFhYjQxOWUzY2EzN2Q2YmE4ODFkMjU1MThjNGRiNjhiY2E2ZjdjODM2MDJmNjk5YTg2YjE3ZmIxZTc3M2JjYmU3NGJiOTNhNDliMjUxYWU4NjQyOGI1NzQwZTE4NjhiYjFkNmZhYjllMjg3MTJlOThlYzMxOWFkOGZjYTRkNzMwMTBjNGIwOWM0YjgwNDU4OTYxZTdjZjA4MzUzMDIwMzAxMDAwMWEzNTMzMDUxMzAxZDA2MDM1NTFkMGUwNDE2MDQxNDhhZWVlNTk0N2NjNjdjNWRkNTE1YTc2ZTJhN2VjZDMxZWU1MmZkYzgzMDFmMDYwMzU1MWQyMzA0MTgzMDE2ODAxNDhhZWVlNTk0N2NjNjdjNWRkNTE1YTc2ZTJhN2VjZDMxZWU1MmZkYzgzMDBmMDYwMzU1MWQxMzAxMDFmZjA0MDUzMDAzMDEwMWZmMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMDM4MjAxMDEwMDgyMWQ2Yjk4Y2Q0NTdkZWJkMmIwODFhY2EyN2ViZWNkNGY5M2FjYzgyODQ0M2IzOWVhYmZmYTlmYTRlOWU0NTQzYjQ2ZmNjMzFlMmI1YjQ4MTc3OTAzZGVhNjk2OWFjNGEyY2M2NTcwNjUwMzkwZjFiMDhkNDNhNGMyZjk3NWM3ZWQ4YmYzMzU2YzcyMTgzODAyMTI0NTFhOGYxMWRlNDY1NTNjYmNkNjViNDI1NGRkYjhmNjY4MzRlYjIxZGRhMmE4ZjMzYjU4MWUxNDg0NTU3YWNhMWI5NGVlODkzMWRkZjE2MDM3YjdhNzE3MTMyMWE5MTkzNmFmYzI3ZmZjZTM5NWRlNzVkNWY3MGNiOGI1YWVlMDVmZjUwNzA4OGQ2NWFmMWU0Mzk2NmNkNDJjYmU2ZjdmYWNmOGRhZTA1NWRkODIyMmIxNjk2NTIxNzIzZjgxMjQ1MTc4NTk1Yzk4NWFlOTE3ZmQ0YjM5OTg3NzNlMWE5N2I3YmQxMDA4NTQ0NmY0MjU5YmNjMDlhNDU0OTI5MjgyYzFiODliNzFlZDU4N2E3NzVlMGEzZDQ1MzYzNDFmNDVkYWU5NjllODA2Yzk2ZmVmYzcxMDY3Nzc2YzAyYmEyMjEyMmI5MTk5YjE0YzBjMjhjMDQ0ODc1MDkwNzBiOTdmM2RkMmQ2ZDk3MjczMzE4MjAxNzczMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwNWJlY2Q4NzE5NWMxZGVmZjkwYzI0YzkxMjY5YjU1YjNmMDY5YmMyMjVjMzI2YzMxNGMxYTUxNzg2ZmZlMTRjODMwYmU0ZTRiYzczY2JhMzZjOTc2NzdiNDQxNjgyNzliZTkxZTdjZGY3YzE5Mzg2YWUyMTg2MjcxOWQxM2EzYTBmZmYwODAzZDQ2MDk2MmYyY2RhODM3MTQ4NDg3MzI1MmMzZDcwNTRkYjgxNDNlMmIwODFhMzgxNmVkMDgwNGNhNTA5OWFlNWZlY2U4M2Q1YzJjMzc4M2IxOTg4YjRiNDZkYzk0ZTU1NTg3YTEwN2VhMTU0NmJmMjJkMjhhMDk3ZjY1MmE0MDY2ZGMyOTY1MjY5MDY5YWYyZjUxNzZiYjhjZTljYTZkMTFmOTY3NTdmMDMyMDRmNzU2NzAzNTg3ZDAwYWQ0MjQ3OTZjOTJmYzdhZWI2ZjQ5NDQzMTk5OWVkYTMwOTkwZTRmNTc3MzYzMmVkMjU4ZmUwMjc2NjczNTk5ZGE2ZmNlMzVjZGFkNzcyNmEwYmIwMjRjYWQ5OTZiODhlMGNiOTg4NTRjZWI1YzBiNmVjNzQ4ZDlmOWNlNmE2Y2Q0Mzc4NThiYWNiODE0NjE4YTI3MmZmM2E0MTVjNmUwN2YzZGIwOTg4Nzc3ZmRlYzg0NWE5N2JmN2QxMDJkZDAiCiAKIFBLQ1M3IFBhcnNlIEZhaWx1cmUgSW52YWxpZCBBU04xOiBDaGFuZ2UgdGFnIDEzIHRvIDAyICMxMDUuMAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHBrY3M3X2FzbjFfZmFpbDoiMzA4MjA1MDAwNjA5MmE4NjQ4ODZmNzBkMDEwNzAyYTA4MjA0ZjEzMDgyMDRlZDAyMDEwMTMxMGYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBiMDYwOTJhODY0ODg2ZjcwZDAxMDcwMWEwODIwMzRkMzA4MjAzNDkzMDgyMDIzMWEwMDMwMjAxMDIwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDMwMzQzMTBiMzAwOTA2MDM1NTA0MDYwMjAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTMwMWUxNzBkMzIzMjMxMzAzMjM4MzEzNjMxMzAzNTM2NWExNzBkMzIzMzMxMzAzMjM4MzEzNjMxMzAzNTM2NWEzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEzMDgyMDEyMjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDAzODIwMTBmMDAzMDgyMDEwYTAyODIwMTAxMDBjOGI2Y2Y2OTg5OWNkMWYwZWJiNGNhNjQ1YzA1ZTcwZTBkMmVmZWRkY2M2MWQwODljYmQ1MTVhMzlhMzU3OWI5MjM0M2I2MWVjNzUwMDYwZmI0ZWQzNzg3NjMzMjQwMGU0MjVmMWQzNzZjN2U3NWMyOTczMzE0ZWRmNGJiMzBjOGY4ZGQwM2I5ZmNmZjk1NWEyNDVkNDkxMzdhZDZlNjAwNTZjYWMxOTU1MmE4NjVkNTIxODcxODdjYzA0MmM5YzQ5ZTNlM2E5YzE3YTUzNGI0NTNjZGFiYzBjYjExM2I0ZjYzZjViMzE3NGI5ZWU5OTAyYjE5MTBkMTE0OTZhMjc5YTc0MzI2YWRjZmVlMTBiZmQ5ZTdlYmFmYmIzNzdiZTliNjM5NTkxNjVkMTNkZDU3NTExNzFjYWRhZDNjMWQzYWRhYzY4YmM4MDExZDYxYjU0Y2Y2MDE3OGJlMzY4MzlhODlhYzkxYWI0MTllM2NhMzdkNmJhODgxZDI1NTE4YzRkYjY4YmNhNmY3YzgzNjAyZjY5OWE4NmIxN2ZiMWU3NzNiY2JlNzRiYjkzYTQ5YjI1MWFlODY0MjhiNTc0MGUxODY4YmIxZDZmYWI5ZTI4NzEyZTk4ZWMzMTlhZDhmY2E0ZDczMDEwYzRiMDljNGI4MDQ1ODk2MWU3Y2YwODM1MzAyMDMwMTAwMDFhMzUzMzA1MTMwMWQwNjAzNTUxZDBlMDQxNjA0MTQ4YWVlZTU5NDdjYzY3YzVkZDUxNWE3NmUyYTdlY2QzMWVlNTJmZGM4MzAxZjA2MDM1NTFkMjMwNDE4MzAxNjgwMTQ4YWVlZTU5NDdjYzY3YzVkZDUxNWE3NmUyYTdlY2QzMWVlNTJmZGM4MzAwZjA2MDM1NTFkMTMwMTAxZmYwNDA1MzAwMzAxMDFmZjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDAzODIwMTAxMDA4MjFkNmI5OGNkNDU3ZGViZDJiMDgxYWNhMjdlYmVjZDRmOTNhY2M4Mjg0NDNiMzllYWJmZmE5ZmE0ZTllNDU0M2I0NmZjYzMxZTJiNWI0ODE3NzkwM2RlYTY5NjlhYzRhMmNjNjU3MDY1MDM5MGYxYjA4ZDQzYTRjMmY5NzVjN2VkOGJmMzM1NmM3MjE4MzgwMjEyNDUxYThmMTFkZTQ2NTUzY2JjZDY1YjQyNTRkZGI4ZjY2ODM0ZWIyMWRkYTJhOGYzM2I1ODFlMTQ4NDU1N2FjYTFiOTRlZTg5MzFkZGYxNjAzN2I3YTcxNzEzMjFhOTE5MzZhZmMyN2ZmY2UzOTVkZTc1ZDVmNzBjYjhiNWFlZTA1ZmY1MDcwODhkNjVhZjFlNDM5NjZjZDQyY2JlNmY3ZmFjZjhkYWUwNTVkZDgyMjJiMTY5NjUyMTcyM2Y4MTI0NTE3ODU5NWM5ODVhZTkxN2ZkNGIzOTk4NzczZTFhOTdiN2JkMTAwODU0NDZmNDI1OWJjYzA5YTQ1NDkyOTI4MmMxYjg5YjcxZWQ1ODdhNzc1ZTBhM2Q0NTM2MzQxZjQ1ZGFlOTY5ZTgwNmM5NmZlZmM3MTA2Nzc3NmMwMmJhMjIxMjJiOTE5OWIxNGMwYzI4YzA0NDg3NTA5MDcwYjk3ZjNkZDJkNmQ5NzI3MzMxODIwMTc3MzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDViZWNkODcxOTVjMWRlZmY5MGMyNGM5MTI2OWI1NWIzZjA2OWJjMjI1YzMyNmMzMTRjMWE1MTc4NmZmZTE0YzgzMGJlNGU0YmM3M2NiYTM2Yzk3Njc3YjQ0MTY4Mjc5YmU5MWU3Y2RmN2MxOTM4NmFlMjE4NjI3MTlkMTNhM2EwZmZmMDgwM2Q0NjA5NjJmMmNkYTgzNzE0ODQ4NzMyNTJjM2Q3MDU0ZGI4MTQzZTJiMDgxYTM4MTZlZDA4MDRjYTUwOTlhZTVmZWNlODNkNWMyYzM3ODNiMTk4OGI0YjQ2ZGM5NGU1NTU4N2ExMDdlYTE1NDZiZjIyZDI4YTA5N2Y2NTJhNDA2NmRjMjk2NTI2OTA2OWFmMmY1MTc2YmI4Y2U5Y2E2ZDExZjk2NzU3ZjAzMjA0Zjc1NjcwMzU4N2QwMGFkNDI0Nzk2YzkyZmM3YWViNmY0OTQ0MzE5OTllZGEzMDk5MGU0ZjU3NzM2MzJlZDI1OGZlMDI3NjY3MzU5OWRhNmZjZTM1Y2RhZDc3MjZhMGJiMDI0Y2FkOTk2Yjg4ZTBjYjk4ODU0Y2ViNWMwYjZlYzc0OGQ5ZjljZTZhNmNkNDM3ODU4YmFjYjgxNDYxOGEyNzJmZjNhNDE1YzZlMDdmM2RiMDk4ODc3N2ZkZWM4NDVhOTdiZjdkMTAyZGQwIgogCiBQS0NTNyBQYXJzZSBGYWlsdXJlIEludmFsaWQgQVNOMTogQ2hhbmdlIGxlbmd0aCBmcm9tIDIgdG8gMyAjMTA2LjAKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBwa2NzN19hc24xX2ZhaWw6IjMwODIwNTAwMDYwOTJhODY0ODg2ZjcwZDAxMDcwMmEwODIwNGYxMzA4MjA0ZWQwMjAxMDEzMTBmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwYjA2MDkyYTg2NDg4NmY3MGQwMTA3MDFhMDgyMDM0ZDMwODIwMzQ5MzA4MjAyMzFhMDAzMDIwMTAyMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMzRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEzMDFlMTcwZDMyMzIzMTMwMzIzODMxMzYzMTMwMzUzNjVhMTcwZDMyMzMzMTMwMzIzODMxMzYzMTMwMzUzNjVhMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMzA4MjAxMjIzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwMzgyMDEwZjAwMzA4MjAxMGEwMjgyMDEwMTAwYzhiNmNmNjk4OTljZDFmMGViYjRjYTY0NWMwNWU3MGUwZDJlZmVkZGNjNjFkMDg5Y2JkNTE1YTM5YTM1NzliOTIzNDNiNjFlYzc1MDA2MGZiNGVkMzc4NzYzMzI0MDBlNDI1ZjFkMzc2YzdlNzVjMjk3MzMxNGVkZjRiYjMwYzhmOGRkMDNiOWZjZmY5NTVhMjQ1ZDQ5MTM3YWQ2ZTYwMDU2Y2FjMTk1NTJhODY1ZDUyMTg3MTg3Y2MwNDJjOWM0OWUzZTNhOWMxN2E1MzRiNDUzY2RhYmMwY2IxMTNiNGY2M2Y1YjMxNzRiOWVlOTkwMmIxOTEwZDExNDk2YTI3OWE3NDMyNmFkY2ZlZTEwYmZkOWU3ZWJhZmJiMzc3YmU5YjYzOTU5MTY1ZDEzZGQ1NzUxMTcxY2FkYWQzYzFkM2FkYWM2OGJjODAxMWQ2MWI1NGNmNjAxNzhiZTM2ODM5YTg5YWM5MWFiNDE5ZTNjYTM3ZDZiYTg4MWQyNTUxOGM0ZGI2OGJjYTZmN2M4MzYwMmY2OTlhODZiMTdmYjFlNzczYmNiZTc0YmI5M2E0OWIyNTFhZTg2NDI4YjU3NDBlMTg2OGJiMWQ2ZmFiOWUyODcxMmU5OGVjMzE5YWQ4ZmNhNGQ3MzAxMGM0YjA5YzRiODA0NTg5NjFlN2NmMDgzNTMwMjAzMDEwMDAxYTM1MzMwNTEzMDFkMDYwMzU1MWQwZTA0MTYwNDE0OGFlZWU1OTQ3Y2M2N2M1ZGQ1MTVhNzZlMmE3ZWNkMzFlZTUyZmRjODMwMWYwNjAzNTUxZDIzMDQxODMwMTY4MDE0OGFlZWU1OTQ3Y2M2N2M1ZGQ1MTVhNzZlMmE3ZWNkMzFlZTUyZmRjODMwMGYwNjAzNTUxZDEzMDEwMWZmMDQwNTMwMDMwMTAxZmYzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAwMzgyMDEwMTAwODIxZDZiOThjZDQ1N2RlYmQyYjA4MWFjYTI3ZWJlY2Q0ZjkzYWNjODI4NDQzYjM5ZWFiZmZhOWZhNGU5ZTQ1NDNiNDZmY2MzMWUyYjViNDgxNzc5MDNkZWE2OTY5YWM0YTJjYzY1NzA2NTAzOTBmMWIwOGQ0M2E0YzJmOTc1YzdlZDhiZjMzNTZjNzIxODM4MDIxMjQ1MWE4ZjExZGU0NjU1M2NiY2Q2NWI0MjU0ZGRiOGY2NjgzNGViMjFkZGEyYThmMzNiNTgxZTE0ODQ1NTdhY2ExYjk0ZWU4OTMxZGRmMTYwMzdiN2E3MTcxMzIxYTkxOTM2YWZjMjdmZmNlMzk1ZGU3NWQ1ZjcwY2I4YjVhZWUwNWZmNTA3MDg4ZDY1YWYxZTQzOTY2Y2Q0MmNiZTZmN2ZhY2Y4ZGFlMDU1ZGQ4MjIyYjE2OTY1MjE3MjNmODEyNDUxNzg1OTVjOTg1YWU5MTdmZDRiMzk5ODc3M2UxYTk3YjdiZDEwMDg1NDQ2ZjQyNTliY2MwOWE0NTQ5MjkyODJjMWI4OWI3MWVkNTg3YTc3NWUwYTNkNDUzNjM0MWY0NWRhZTk2OWU4MDZjOTZmZWZjNzEwNjc3NzZjMDJiYTIyMTIyYjkxOTliMTRjMGMyOGMwNDQ4NzUwOTA3MGI5N2YzZGQyZDZkOTcyNzMzMTgyMDE3NzMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTAyMTQ3YmRlZGRkMjQ0NGNkMWNkZmU1YzQxYTgxMDJjODliN2RmMmU2Y2JmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDA1YmVjZDg3MTk1YzFkZWZmOTBjMjRjOTEyNjliNTViM2YwNjliYzIyNWMzMjZjMzE0YzFhNTE3ODZmZmUxNGM4MzBiZTRlNGJjNzNjYmEzNmM5NzY3N2I0NDE2ODI3OWJlOTFlN2NkZjdjMTkzODZhZTIxODYyNzE5ZDEzYTNhMGZmZjA4MDNkNDYwOTYyZjJjZGE4MzcxNDg0ODczMjUyYzNkNzA1NGRiODE0M2UyYjA4MWEzODE2ZWQwODA0Y2E1MDk5YWU1ZmVjZTgzZDVjMmMzNzgzYjE5ODhiNGI0NmRjOTRlNTU1ODdhMTA3ZWExNTQ2YmYyMmQyOGEwOTdmNjUyYTQwNjZkYzI5NjUyNjkwNjlhZjJmNTE3NmJiOGNlOWNhNmQxMWY5Njc1N2YwMzIwNGY3NTY3MDM1ODdkMDBhZDQyNDc5NmM5MmZjN2FlYjZmNDk0NDMxOTk5ZWRhMzA5OTBlNGY1NzczNjMyZWQyNThmZTAyNzY2NzM1OTlkYTZmY2UzNWNkYWQ3NzI2YTBiYjAyNGNhZDk5NmI4OGUwY2I5ODg1NGNlYjVjMGI2ZWM3NDhkOWY5Y2U2YTZjZDQzNzg1OGJhY2I4MTQ2MThhMjcyZmYzYTQxNWM2ZTA3ZjNkYjA5ODg3NzdmZGVjODQ1YTk3YmY3ZDEwMmRkMCIKIAogUEtDUzcgUGFyc2UgRmFpbHVyZSBJbnZhbGlkIEFTTjE6IENoYW5nZSBsZW5ndGggZnJvbSAyIHRvIDEgIzEwNy4wCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NgogcGtjczdfYXNuMV9mYWlsOiIzMDgyMDUwMDA2MDkyYTg2NDg4NmY3MGQwMTA3MDJhMDgyMDRmMTMwODIwNGVkMDIwMTAxMzEwZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGIwNjA5MmE4NjQ4ODZmNzBkMDEwNzAxYTA4MjAzNGQzMDgyMDM0OTMwODIwMjMxYTAwMzAyMDEwMjAyMTQ3YmRlZGRkMjQ0NGNkMWNkZmU1YzQxYTgxMDJjODliN2RmMmU2Y2JmMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDE0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMzAxZTE3MGQzMjMyMzEzMDMyMzgzMTM2MzEzMDM1MzY1YTE3MGQzMjMzMzEzMDMyMzgzMTM2MzEzMDM1MzY1YTMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTMwODIwMTIyMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDM4MjAxMGYwMDMwODIwMTBhMDI4MjAxMDEwMGM4YjZjZjY5ODk5Y2QxZjBlYmI0Y2E2NDVjMDVlNzBlMGQyZWZlZGRjYzYxZDA4OWNiZDUxNWEzOWEzNTc5YjkyMzQzYjYxZWM3NTAwNjBmYjRlZDM3ODc2MzMyNDAwZTQyNWYxZDM3NmM3ZTc1YzI5NzMzMTRlZGY0YmIzMGM4ZjhkZDAzYjlmY2ZmOTU1YTI0NWQ0OTEzN2FkNmU2MDA1NmNhYzE5NTUyYTg2NWQ1MjE4NzE4N2NjMDQyYzljNDllM2UzYTljMTdhNTM0YjQ1M2NkYWJjMGNiMTEzYjRmNjNmNWIzMTc0YjllZTk5MDJiMTkxMGQxMTQ5NmEyNzlhNzQzMjZhZGNmZWUxMGJmZDllN2ViYWZiYjM3N2JlOWI2Mzk1OTE2NWQxM2RkNTc1MTE3MWNhZGFkM2MxZDNhZGFjNjhiYzgwMTFkNjFiNTRjZjYwMTc4YmUzNjgzOWE4OWFjOTFhYjQxOWUzY2EzN2Q2YmE4ODFkMjU1MThjNGRiNjhiY2E2ZjdjODM2MDJmNjk5YTg2YjE3ZmIxZTc3M2JjYmU3NGJiOTNhNDliMjUxYWU4NjQyOGI1NzQwZTE4NjhiYjFkNmZhYjllMjg3MTJlOThlYzMxOWFkOGZjYTRkNzMwMTBjNGIwOWM0YjgwNDU4OTYxZTdjZjA4MzUzMDIwMzAxMDAwMWEzNTMzMDUxMzAxZDA2MDM1NTFkMGUwNDE2MDQxNDhhZWVlNTk0N2NjNjdjNWRkNTE1YTc2ZTJhN2VjZDMxZWU1MmZkYzgzMDFmMDYwMzU1MWQyMzA0MTgzMDE2ODAxNDhhZWVlNTk0N2NjNjdjNWRkNTE1YTc2ZTJhN2VjZDMxZWU1MmZkYzgzMDBmMDYwMzU1MWQxMzAxMDFmZjA0MDUzMDAzMDEwMWZmMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMDM4MjAxMDEwMDgyMWQ2Yjk4Y2Q0NTdkZWJkMmIwODFhY2EyN2ViZWNkNGY5M2FjYzgyODQ0M2IzOWVhYmZmYTlmYTRlOWU0NTQzYjQ2ZmNjMzFlMmI1YjQ4MTc3OTAzZGVhNjk2OWFjNGEyY2M2NTcwNjUwMzkwZjFiMDhkNDNhNGMyZjk3NWM3ZWQ4YmYzMzU2YzcyMTgzODAyMTI0NTFhOGYxMWRlNDY1NTNjYmNkNjViNDI1NGRkYjhmNjY4MzRlYjIxZGRhMmE4ZjMzYjU4MWUxNDg0NTU3YWNhMWI5NGVlODkzMWRkZjE2MDM3YjdhNzE3MTMyMWE5MTkzNmFmYzI3ZmZjZTM5NWRlNzVkNWY3MGNiOGI1YWVlMDVmZjUwNzA4OGQ2NWFmMWU0Mzk2NmNkNDJjYmU2ZjdmYWNmOGRhZTA1NWRkODIyMmIxNjk2NTIxNzIzZjgxMjQ1MTc4NTk1Yzk4NWFlOTE3ZmQ0YjM5OTg3NzNlMWE5N2I3YmQxMDA4NTQ0NmY0MjU5YmNjMDlhNDU0OTI5MjgyYzFiODliNzFlZDU4N2E3NzVlMGEzZDQ1MzYzNDFmNDVkYWU5NjllODA2Yzk2ZmVmYzcxMDY3Nzc2YzAyYmEyMjEyMmI5MTk5YjE0YzBjMjhjMDQ0ODc1MDkwNzBiOTdmM2RkMmQ2ZDk3MjczMzE4MjAxNzczMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwNWJlY2Q4NzE5NWMxZGVmZjkwYzI0YzkxMjY5YjU1YjNmMDY5YmMyMjVjMzI2YzMxNGMxYTUxNzg2ZmZlMTRjODMwYmU0ZTRiYzczY2JhMzZjOTc2NzdiNDQxNjgyNzliZTkxZTdjZGY3YzE5Mzg2YWUyMTg2MjcxOWQxM2EzYTBmZmYwODAzZDQ2MDk2MmYyY2RhODM3MTQ4NDg3MzI1MmMzZDcwNTRkYjgxNDNlMmIwODFhMzgxNmVkMDgwNGNhNTA5OWFlNWZlY2U4M2Q1YzJjMzc4M2IxOTg4YjRiNDZkYzk0ZTU1NTg3YTEwN2VhMTU0NmJmMjJkMjhhMDk3ZjY1MmE0MDY2ZGMyOTY1MjY5MDY5YWYyZjUxNzZiYjhjZTljYTZkMTFmOTY3NTdmMDMyMDRmNzU2NzAzNTg3ZDAwYWQ0MjQ3OTZjOTJmYzdhZWI2ZjQ5NDQzMTk5OWVkYTMwOTkwZTRmNTc3MzYzMmVkMjU4ZmUwMjc2NjczNTk5ZGE2ZmNlMzVjZGFkNzcyNmEwYmIwMjRjYWQ5OTZiODhlMGNiOTg4NTRjZWI1YzBiNmVjNzQ4ZDlmOWNlNmE2Y2Q0Mzc4NThiYWNiODE0NjE4YTI3MmZmM2E0MTVjNmUwN2YzZGIwOTg4Nzc3ZmRlYzg0NWE5N2JmN2QxMDJkZDAiCiAKIFBLQ1M3IFBhcnNlIEZhaWx1cmUgSW52YWxpZCBBU04xOiBDaGFuZ2UgdGFnIDMxIHRvIDAyICMxMDguMAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHBrY3M3X2FzbjFfZmFpbDoiMzA4MjA1MDAwNjA5MmE4NjQ4ODZmNzBkMDEwNzAyYTA4MjA0ZjEzMDgyMDRlZDAyMDEwMTMxMGYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBiMDYwOTJhODY0ODg2ZjcwZDAxMDcwMWEwODIwMzRkMzA4MjAzNDkzMDgyMDIzMWEwMDMwMjAxMDIwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzAyMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTMwMWUxNzBkMzIzMjMxMzAzMjM4MzEzNjMxMzAzNTM2NWExNzBkMzIzMzMxMzAzMjM4MzEzNjMxMzAzNTM2NWEzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEzMDgyMDEyMjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDAzODIwMTBmMDAzMDgyMDEwYTAyODIwMTAxMDBjOGI2Y2Y2OTg5OWNkMWYwZWJiNGNhNjQ1YzA1ZTcwZTBkMmVmZWRkY2M2MWQwODljYmQ1MTVhMzlhMzU3OWI5MjM0M2I2MWVjNzUwMDYwZmI0ZWQzNzg3NjMzMjQwMGU0MjVmMWQzNzZjN2U3NWMyOTczMzE0ZWRmNGJiMzBjOGY4ZGQwM2I5ZmNmZjk1NWEyNDVkNDkxMzdhZDZlNjAwNTZjYWMxOTU1MmE4NjVkNTIxODcxODdjYzA0MmM5YzQ5ZTNlM2E5YzE3YTUzNGI0NTNjZGFiYzBjYjExM2I0ZjYzZjViMzE3NGI5ZWU5OTAyYjE5MTBkMTE0OTZhMjc5YTc0MzI2YWRjZmVlMTBiZmQ5ZTdlYmFmYmIzNzdiZTliNjM5NTkxNjVkMTNkZDU3NTExNzFjYWRhZDNjMWQzYWRhYzY4YmM4MDExZDYxYjU0Y2Y2MDE3OGJlMzY4MzlhODlhYzkxYWI0MTllM2NhMzdkNmJhODgxZDI1NTE4YzRkYjY4YmNhNmY3YzgzNjAyZjY5OWE4NmIxN2ZiMWU3NzNiY2JlNzRiYjkzYTQ5YjI1MWFlODY0MjhiNTc0MGUxODY4YmIxZDZmYWI5ZTI4NzEyZTk4ZWMzMTlhZDhmY2E0ZDczMDEwYzRiMDljNGI4MDQ1ODk2MWU3Y2YwODM1MzAyMDMwMTAwMDFhMzUzMzA1MTMwMWQwNjAzNTUxZDBlMDQxNjA0MTQ4YWVlZTU5NDdjYzY3YzVkZDUxNWE3NmUyYTdlY2QzMWVlNTJmZGM4MzAxZjA2MDM1NTFkMjMwNDE4MzAxNjgwMTQ4YWVlZTU5NDdjYzY3YzVkZDUxNWE3NmUyYTdlY2QzMWVlNTJmZGM4MzAwZjA2MDM1NTFkMTMwMTAxZmYwNDA1MzAwMzAxMDFmZjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDAzODIwMTAxMDA4MjFkNmI5OGNkNDU3ZGViZDJiMDgxYWNhMjdlYmVjZDRmOTNhY2M4Mjg0NDNiMzllYWJmZmE5ZmE0ZTllNDU0M2I0NmZjYzMxZTJiNWI0ODE3NzkwM2RlYTY5NjlhYzRhMmNjNjU3MDY1MDM5MGYxYjA4ZDQzYTRjMmY5NzVjN2VkOGJmMzM1NmM3MjE4MzgwMjEyNDUxYThmMTFkZTQ2NTUzY2JjZDY1YjQyNTRkZGI4ZjY2ODM0ZWIyMWRkYTJhOGYzM2I1ODFlMTQ4NDU1N2FjYTFiOTRlZTg5MzFkZGYxNjAzN2I3YTcxNzEzMjFhOTE5MzZhZmMyN2ZmY2UzOTVkZTc1ZDVmNzBjYjhiNWFlZTA1ZmY1MDcwODhkNjVhZjFlNDM5NjZjZDQyY2JlNmY3ZmFjZjhkYWUwNTVkZDgyMjJiMTY5NjUyMTcyM2Y4MTI0NTE3ODU5NWM5ODVhZTkxN2ZkNGIzOTk4NzczZTFhOTdiN2JkMTAwODU0NDZmNDI1OWJjYzA5YTQ1NDkyOTI4MmMxYjg5YjcxZWQ1ODdhNzc1ZTBhM2Q0NTM2MzQxZjQ1ZGFlOTY5ZTgwNmM5NmZlZmM3MTA2Nzc3NmMwMmJhMjIxMjJiOTE5OWIxNGMwYzI4YzA0NDg3NTA5MDcwYjk3ZjNkZDJkNmQ5NzI3MzMxODIwMTc3MzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDViZWNkODcxOTVjMWRlZmY5MGMyNGM5MTI2OWI1NWIzZjA2OWJjMjI1YzMyNmMzMTRjMWE1MTc4NmZmZTE0YzgzMGJlNGU0YmM3M2NiYTM2Yzk3Njc3YjQ0MTY4Mjc5YmU5MWU3Y2RmN2MxOTM4NmFlMjE4NjI3MTlkMTNhM2EwZmZmMDgwM2Q0NjA5NjJmMmNkYTgzNzE0ODQ4NzMyNTJjM2Q3MDU0ZGI4MTQzZTJiMDgxYTM4MTZlZDA4MDRjYTUwOTlhZTVmZWNlODNkNWMyYzM3ODNiMTk4OGI0YjQ2ZGM5NGU1NTU4N2ExMDdlYTE1NDZiZjIyZDI4YTA5N2Y2NTJhNDA2NmRjMjk2NTI2OTA2OWFmMmY1MTc2YmI4Y2U5Y2E2ZDExZjk2NzU3ZjAzMjA0Zjc1NjcwMzU4N2QwMGFkNDI0Nzk2YzkyZmM3YWViNmY0OTQ0MzE5OTllZGEzMDk5MGU0ZjU3NzM2MzJlZDI1OGZlMDI3NjY3MzU5OWRhNmZjZTM1Y2RhZDc3MjZhMGJiMDI0Y2FkOTk2Yjg4ZTBjYjk4ODU0Y2ViNWMwYjZlYzc0OGQ5ZjljZTZhNmNkNDM3ODU4YmFjYjgxNDYxOGEyNzJmZjNhNDE1YzZlMDdmM2RiMDk4ODc3N2ZkZWM4NDVhOTdiZjdkMTAyZGQwIgogCiBQS0NTNyBQYXJzZSBGYWlsdXJlIEludmFsaWQgQVNOMTogQ2hhbmdlIGxlbmd0aCBmcm9tIDE0IHRvIDE1ICMxMDkuMAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHBrY3M3X2FzbjFfZmFpbDoiMzA4MjA1MDAwNjA5MmE4NjQ4ODZmNzBkMDEwNzAyYTA4MjA0ZjEzMDgyMDRlZDAyMDEwMTMxMGYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBiMDYwOTJhODY0ODg2ZjcwZDAxMDcwMWEwODIwMzRkMzA4MjAzNDkzMDgyMDIzMWEwMDMwMjAxMDIwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGYzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTMwMWUxNzBkMzIzMjMxMzAzMjM4MzEzNjMxMzAzNTM2NWExNzBkMzIzMzMxMzAzMjM4MzEzNjMxMzAzNTM2NWEzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEzMDgyMDEyMjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDAzODIwMTBmMDAzMDgyMDEwYTAyODIwMTAxMDBjOGI2Y2Y2OTg5OWNkMWYwZWJiNGNhNjQ1YzA1ZTcwZTBkMmVmZWRkY2M2MWQwODljYmQ1MTVhMzlhMzU3OWI5MjM0M2I2MWVjNzUwMDYwZmI0ZWQzNzg3NjMzMjQwMGU0MjVmMWQzNzZjN2U3NWMyOTczMzE0ZWRmNGJiMzBjOGY4ZGQwM2I5ZmNmZjk1NWEyNDVkNDkxMzdhZDZlNjAwNTZjYWMxOTU1MmE4NjVkNTIxODcxODdjYzA0MmM5YzQ5ZTNlM2E5YzE3YTUzNGI0NTNjZGFiYzBjYjExM2I0ZjYzZjViMzE3NGI5ZWU5OTAyYjE5MTBkMTE0OTZhMjc5YTc0MzI2YWRjZmVlMTBiZmQ5ZTdlYmFmYmIzNzdiZTliNjM5NTkxNjVkMTNkZDU3NTExNzFjYWRhZDNjMWQzYWRhYzY4YmM4MDExZDYxYjU0Y2Y2MDE3OGJlMzY4MzlhODlhYzkxYWI0MTllM2NhMzdkNmJhODgxZDI1NTE4YzRkYjY4YmNhNmY3YzgzNjAyZjY5OWE4NmIxN2ZiMWU3NzNiY2JlNzRiYjkzYTQ5YjI1MWFlODY0MjhiNTc0MGUxODY4YmIxZDZmYWI5ZTI4NzEyZTk4ZWMzMTlhZDhmY2E0ZDczMDEwYzRiMDljNGI4MDQ1ODk2MWU3Y2YwODM1MzAyMDMwMTAwMDFhMzUzMzA1MTMwMWQwNjAzNTUxZDBlMDQxNjA0MTQ4YWVlZTU5NDdjYzY3YzVkZDUxNWE3NmUyYTdlY2QzMWVlNTJmZGM4MzAxZjA2MDM1NTFkMjMwNDE4MzAxNjgwMTQ4YWVlZTU5NDdjYzY3YzVkZDUxNWE3NmUyYTdlY2QzMWVlNTJmZGM4MzAwZjA2MDM1NTFkMTMwMTAxZmYwNDA1MzAwMzAxMDFmZjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDAzODIwMTAxMDA4MjFkNmI5OGNkNDU3ZGViZDJiMDgxYWNhMjdlYmVjZDRmOTNhY2M4Mjg0NDNiMzllYWJmZmE5ZmE0ZTllNDU0M2I0NmZjYzMxZTJiNWI0ODE3NzkwM2RlYTY5NjlhYzRhMmNjNjU3MDY1MDM5MGYxYjA4ZDQzYTRjMmY5NzVjN2VkOGJmMzM1NmM3MjE4MzgwMjEyNDUxYThmMTFkZTQ2NTUzY2JjZDY1YjQyNTRkZGI4ZjY2ODM0ZWIyMWRkYTJhOGYzM2I1ODFlMTQ4NDU1N2FjYTFiOTRlZTg5MzFkZGYxNjAzN2I3YTcxNzEzMjFhOTE5MzZhZmMyN2ZmY2UzOTVkZTc1ZDVmNzBjYjhiNWFlZTA1ZmY1MDcwODhkNjVhZjFlNDM5NjZjZDQyY2JlNmY3ZmFjZjhkYWUwNTVkZDgyMjJiMTY5NjUyMTcyM2Y4MTI0NTE3ODU5NWM5ODVhZTkxN2ZkNGIzOTk4NzczZTFhOTdiN2JkMTAwODU0NDZmNDI1OWJjYzA5YTQ1NDkyOTI4MmMxYjg5YjcxZWQ1ODdhNzc1ZTBhM2Q0NTM2MzQxZjQ1ZGFlOTY5ZTgwNmM5NmZlZmM3MTA2Nzc3NmMwMmJhMjIxMjJiOTE5OWIxNGMwYzI4YzA0NDg3NTA5MDcwYjk3ZjNkZDJkNmQ5NzI3MzMxODIwMTc3MzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDViZWNkODcxOTVjMWRlZmY5MGMyNGM5MTI2OWI1NWIzZjA2OWJjMjI1YzMyNmMzMTRjMWE1MTc4NmZmZTE0YzgzMGJlNGU0YmM3M2NiYTM2Yzk3Njc3YjQ0MTY4Mjc5YmU5MWU3Y2RmN2MxOTM4NmFlMjE4NjI3MTlkMTNhM2EwZmZmMDgwM2Q0NjA5NjJmMmNkYTgzNzE0ODQ4NzMyNTJjM2Q3MDU0ZGI4MTQzZTJiMDgxYTM4MTZlZDA4MDRjYTUwOTlhZTVmZWNlODNkNWMyYzM3ODNiMTk4OGI0YjQ2ZGM5NGU1NTU4N2ExMDdlYTE1NDZiZjIyZDI4YTA5N2Y2NTJhNDA2NmRjMjk2NTI2OTA2OWFmMmY1MTc2YmI4Y2U5Y2E2ZDExZjk2NzU3ZjAzMjA0Zjc1NjcwMzU4N2QwMGFkNDI0Nzk2YzkyZmM3YWViNmY0OTQ0MzE5OTllZGEzMDk5MGU0ZjU3NzM2MzJlZDI1OGZlMDI3NjY3MzU5OWRhNmZjZTM1Y2RhZDc3MjZhMGJiMDI0Y2FkOTk2Yjg4ZTBjYjk4ODU0Y2ViNWMwYjZlYzc0OGQ5ZjljZTZhNmNkNDM3ODU4YmFjYjgxNDYxOGEyNzJmZjNhNDE1YzZlMDdmM2RiMDk4ODc3N2ZkZWM4NDVhOTdiZjdkMTAyZGQwIgogCiBQS0NTNyBQYXJzZSBGYWlsdXJlIEludmFsaWQgQVNOMTogQ2hhbmdlIGNvbnRlbnRzIG9mIHRhZyAzMSB0byBjb250YWluIG9uZSB1bmFjY291bnRlZCBleHRyYSBieXRlICMxMTAuMAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHBrY3M3X2FzbjFfZmFpbDoiMzA4MjA1MDAwNjA5MmE4NjQ4ODZmNzBkMDEwNzAyYTA4MjA0ZjEzMDgyMDRlZDAyMDEwMTMxMGYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBiMDYwOTJhODY0ODg2ZjcwZDAxMDcwMWEwODIwMzRkMzA4MjAzNDkzMDgyMDIzMWEwMDMwMjAxMDIwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGYzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MDAzMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMzAxZTE3MGQzMjMyMzEzMDMyMzgzMTM2MzEzMDM1MzY1YTE3MGQzMjMzMzEzMDMyMzgzMTM2MzEzMDM1MzY1YTMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTMwODIwMTIyMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDM4MjAxMGYwMDMwODIwMTBhMDI4MjAxMDEwMGM4YjZjZjY5ODk5Y2QxZjBlYmI0Y2E2NDVjMDVlNzBlMGQyZWZlZGRjYzYxZDA4OWNiZDUxNWEzOWEzNTc5YjkyMzQzYjYxZWM3NTAwNjBmYjRlZDM3ODc2MzMyNDAwZTQyNWYxZDM3NmM3ZTc1YzI5NzMzMTRlZGY0YmIzMGM4ZjhkZDAzYjlmY2ZmOTU1YTI0NWQ0OTEzN2FkNmU2MDA1NmNhYzE5NTUyYTg2NWQ1MjE4NzE4N2NjMDQyYzljNDllM2UzYTljMTdhNTM0YjQ1M2NkYWJjMGNiMTEzYjRmNjNmNWIzMTc0YjllZTk5MDJiMTkxMGQxMTQ5NmEyNzlhNzQzMjZhZGNmZWUxMGJmZDllN2ViYWZiYjM3N2JlOWI2Mzk1OTE2NWQxM2RkNTc1MTE3MWNhZGFkM2MxZDNhZGFjNjhiYzgwMTFkNjFiNTRjZjYwMTc4YmUzNjgzOWE4OWFjOTFhYjQxOWUzY2EzN2Q2YmE4ODFkMjU1MThjNGRiNjhiY2E2ZjdjODM2MDJmNjk5YTg2YjE3ZmIxZTc3M2JjYmU3NGJiOTNhNDliMjUxYWU4NjQyOGI1NzQwZTE4NjhiYjFkNmZhYjllMjg3MTJlOThlYzMxOWFkOGZjYTRkNzMwMTBjNGIwOWM0YjgwNDU4OTYxZTdjZjA4MzUzMDIwMzAxMDAwMWEzNTMzMDUxMzAxZDA2MDM1NTFkMGUwNDE2MDQxNDhhZWVlNTk0N2NjNjdjNWRkNTE1YTc2ZTJhN2VjZDMxZWU1MmZkYzgzMDFmMDYwMzU1MWQyMzA0MTgzMDE2ODAxNDhhZWVlNTk0N2NjNjdjNWRkNTE1YTc2ZTJhN2VjZDMxZWU1MmZkYzgzMDBmMDYwMzU1MWQxMzAxMDFmZjA0MDUzMDAzMDEwMWZmMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMDM4MjAxMDEwMDgyMWQ2Yjk4Y2Q0NTdkZWJkMmIwODFhY2EyN2ViZWNkNGY5M2FjYzgyODQ0M2IzOWVhYmZmYTlmYTRlOWU0NTQzYjQ2ZmNjMzFlMmI1YjQ4MTc3OTAzZGVhNjk2OWFjNGEyY2M2NTcwNjUwMzkwZjFiMDhkNDNhNGMyZjk3NWM3ZWQ4YmYzMzU2YzcyMTgzODAyMTI0NTFhOGYxMWRlNDY1NTNjYmNkNjViNDI1NGRkYjhmNjY4MzRlYjIxZGRhMmE4ZjMzYjU4MWUxNDg0NTU3YWNhMWI5NGVlODkzMWRkZjE2MDM3YjdhNzE3MTMyMWE5MTkzNmFmYzI3ZmZjZTM5NWRlNzVkNWY3MGNiOGI1YWVlMDVmZjUwNzA4OGQ2NWFmMWU0Mzk2NmNkNDJjYmU2ZjdmYWNmOGRhZTA1NWRkODIyMmIxNjk2NTIxNzIzZjgxMjQ1MTc4NTk1Yzk4NWFlOTE3ZmQ0YjM5OTg3NzNlMWE5N2I3YmQxMDA4NTQ0NmY0MjU5YmNjMDlhNDU0OTI5MjgyYzFiODliNzFlZDU4N2E3NzVlMGEzZDQ1MzYzNDFmNDVkYWU5NjllODA2Yzk2ZmVmYzcxMDY3Nzc2YzAyYmEyMjEyMmI5MTk5YjE0YzBjMjhjMDQ0ODc1MDkwNzBiOTdmM2RkMmQ2ZDk3MjczMzE4MjAxNzczMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwNWJlY2Q4NzE5NWMxZGVmZjkwYzI0YzkxMjY5YjU1YjNmMDY5YmMyMjVjMzI2YzMxNGMxYTUxNzg2ZmZlMTRjODMwYmU0ZTRiYzczY2JhMzZjOTc2NzdiNDQxNjgyNzliZTkxZTdjZGY3YzE5Mzg2YWUyMTg2MjcxOWQxM2EzYTBmZmYwODAzZDQ2MDk2MmYyY2RhODM3MTQ4NDg3MzI1MmMzZDcwNTRkYjgxNDNlMmIwODFhMzgxNmVkMDgwNGNhNTA5OWFlNWZlY2U4M2Q1YzJjMzc4M2IxOTg4YjRiNDZkYzk0ZTU1NTg3YTEwN2VhMTU0NmJmMjJkMjhhMDk3ZjY1MmE0MDY2ZGMyOTY1MjY5MDY5YWYyZjUxNzZiYjhjZTljYTZkMTFmOTY3NTdmMDMyMDRmNzU2NzAzNTg3ZDAwYWQ0MjQ3OTZjOTJmYzdhZWI2ZjQ5NDQzMTk5OWVkYTMwOTkwZTRmNTc3MzYzMmVkMjU4ZmUwMjc2NjczNTk5ZGE2ZmNlMzVjZGFkNzcyNmEwYmIwMjRjYWQ5OTZiODhlMGNiOTg4NTRjZWI1YzBiNmVjNzQ4ZDlmOWNlNmE2Y2Q0Mzc4NThiYWNiODE0NjE4YTI3MmZmM2E0MTVjNmUwN2YzZGIwOTg4Nzc3ZmRlYzg0NWE5N2JmN2QxMDJkZDAiCiAKIFBLQ1M3IFBhcnNlIEZhaWx1cmUgSW52YWxpZCBBU04xOiBDaGFuZ2UgbGVuZ3RoIGZyb20gMTQgdG8gMTMgIzExMS4wCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NgogcGtjczdfYXNuMV9mYWlsOiIzMDgyMDUwMDA2MDkyYTg2NDg4NmY3MGQwMTA3MDJhMDgyMDRmMTMwODIwNGVkMDIwMTAxMzEwZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGIwNjA5MmE4NjQ4ODZmNzBkMDEwNzAxYTA4MjAzNGQzMDgyMDM0OTMwODIwMjMxYTAwMzAyMDEwMjAyMTQ3YmRlZGRkMjQ0NGNkMWNkZmU1YzQxYTgxMDJjODliN2RmMmU2Y2JmMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZDMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMzAxZTE3MGQzMjMyMzEzMDMyMzgzMTM2MzEzMDM1MzY1YTE3MGQzMjMzMzEzMDMyMzgzMTM2MzEzMDM1MzY1YTMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTMwODIwMTIyMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDM4MjAxMGYwMDMwODIwMTBhMDI4MjAxMDEwMGM4YjZjZjY5ODk5Y2QxZjBlYmI0Y2E2NDVjMDVlNzBlMGQyZWZlZGRjYzYxZDA4OWNiZDUxNWEzOWEzNTc5YjkyMzQzYjYxZWM3NTAwNjBmYjRlZDM3ODc2MzMyNDAwZTQyNWYxZDM3NmM3ZTc1YzI5NzMzMTRlZGY0YmIzMGM4ZjhkZDAzYjlmY2ZmOTU1YTI0NWQ0OTEzN2FkNmU2MDA1NmNhYzE5NTUyYTg2NWQ1MjE4NzE4N2NjMDQyYzljNDllM2UzYTljMTdhNTM0YjQ1M2NkYWJjMGNiMTEzYjRmNjNmNWIzMTc0YjllZTk5MDJiMTkxMGQxMTQ5NmEyNzlhNzQzMjZhZGNmZWUxMGJmZDllN2ViYWZiYjM3N2JlOWI2Mzk1OTE2NWQxM2RkNTc1MTE3MWNhZGFkM2MxZDNhZGFjNjhiYzgwMTFkNjFiNTRjZjYwMTc4YmUzNjgzOWE4OWFjOTFhYjQxOWUzY2EzN2Q2YmE4ODFkMjU1MThjNGRiNjhiY2E2ZjdjODM2MDJmNjk5YTg2YjE3ZmIxZTc3M2JjYmU3NGJiOTNhNDliMjUxYWU4NjQyOGI1NzQwZTE4NjhiYjFkNmZhYjllMjg3MTJlOThlYzMxOWFkOGZjYTRkNzMwMTBjNGIwOWM0YjgwNDU4OTYxZTdjZjA4MzUzMDIwMzAxMDAwMWEzNTMzMDUxMzAxZDA2MDM1NTFkMGUwNDE2MDQxNDhhZWVlNTk0N2NjNjdjNWRkNTE1YTc2ZTJhN2VjZDMxZWU1MmZkYzgzMDFmMDYwMzU1MWQyMzA0MTgzMDE2ODAxNDhhZWVlNTk0N2NjNjdjNWRkNTE1YTc2ZTJhN2VjZDMxZWU1MmZkYzgzMDBmMDYwMzU1MWQxMzAxMDFmZjA0MDUzMDAzMDEwMWZmMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMDM4MjAxMDEwMDgyMWQ2Yjk4Y2Q0NTdkZWJkMmIwODFhY2EyN2ViZWNkNGY5M2FjYzgyODQ0M2IzOWVhYmZmYTlmYTRlOWU0NTQzYjQ2ZmNjMzFlMmI1YjQ4MTc3OTAzZGVhNjk2OWFjNGEyY2M2NTcwNjUwMzkwZjFiMDhkNDNhNGMyZjk3NWM3ZWQ4YmYzMzU2YzcyMTgzODAyMTI0NTFhOGYxMWRlNDY1NTNjYmNkNjViNDI1NGRkYjhmNjY4MzRlYjIxZGRhMmE4ZjMzYjU4MWUxNDg0NTU3YWNhMWI5NGVlODkzMWRkZjE2MDM3YjdhNzE3MTMyMWE5MTkzNmFmYzI3ZmZjZTM5NWRlNzVkNWY3MGNiOGI1YWVlMDVmZjUwNzA4OGQ2NWFmMWU0Mzk2NmNkNDJjYmU2ZjdmYWNmOGRhZTA1NWRkODIyMmIxNjk2NTIxNzIzZjgxMjQ1MTc4NTk1Yzk4NWFlOTE3ZmQ0YjM5OTg3NzNlMWE5N2I3YmQxMDA4NTQ0NmY0MjU5YmNjMDlhNDU0OTI5MjgyYzFiODliNzFlZDU4N2E3NzVlMGEzZDQ1MzYzNDFmNDVkYWU5NjllODA2Yzk2ZmVmYzcxMDY3Nzc2YzAyYmEyMjEyMmI5MTk5YjE0YzBjMjhjMDQ0ODc1MDkwNzBiOTdmM2RkMmQ2ZDk3MjczMzE4MjAxNzczMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwNWJlY2Q4NzE5NWMxZGVmZjkwYzI0YzkxMjY5YjU1YjNmMDY5YmMyMjVjMzI2YzMxNGMxYTUxNzg2ZmZlMTRjODMwYmU0ZTRiYzczY2JhMzZjOTc2NzdiNDQxNjgyNzliZTkxZTdjZGY3YzE5Mzg2YWUyMTg2MjcxOWQxM2EzYTBmZmYwODAzZDQ2MDk2MmYyY2RhODM3MTQ4NDg3MzI1MmMzZDcwNTRkYjgxNDNlMmIwODFhMzgxNmVkMDgwNGNhNTA5OWFlNWZlY2U4M2Q1YzJjMzc4M2IxOTg4YjRiNDZkYzk0ZTU1NTg3YTEwN2VhMTU0NmJmMjJkMjhhMDk3ZjY1MmE0MDY2ZGMyOTY1MjY5MDY5YWYyZjUxNzZiYjhjZTljYTZkMTFmOTY3NTdmMDMyMDRmNzU2NzAzNTg3ZDAwYWQ0MjQ3OTZjOTJmYzdhZWI2ZjQ5NDQzMTk5OWVkYTMwOTkwZTRmNTc3MzYzMmVkMjU4ZmUwMjc2NjczNTk5ZGE2ZmNlMzVjZGFkNzcyNmEwYmIwMjRjYWQ5OTZiODhlMGNiOTg4NTRjZWI1YzBiNmVjNzQ4ZDlmOWNlNmE2Y2Q0Mzc4NThiYWNiODE0NjE4YTI3MmZmM2E0MTVjNmUwN2YzZGIwOTg4Nzc3ZmRlYzg0NWE5N2JmN2QxMDJkZDAiCiAKIFBLQ1M3IFBhcnNlIEZhaWx1cmUgSW52YWxpZCBBU04xOiBDaGFuZ2UgdGFnIDMwIHRvIDAyICMxMTIuMAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHBrY3M3X2FzbjFfZmFpbDoiMzA4MjA1MDAwNjA5MmE4NjQ4ODZmNzBkMDEwNzAyYTA4MjA0ZjEzMDgyMDRlZDAyMDEwMTMxMGYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBiMDYwOTJhODY0ODg2ZjcwZDAxMDcwMWEwODIwMzRkMzA4MjAzNDkzMDgyMDIzMWEwMDMwMjAxMDIwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUwMjBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTMwMWUxNzBkMzIzMjMxMzAzMjM4MzEzNjMxMzAzNTM2NWExNzBkMzIzMzMxMzAzMjM4MzEzNjMxMzAzNTM2NWEzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEzMDgyMDEyMjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDAzODIwMTBmMDAzMDgyMDEwYTAyODIwMTAxMDBjOGI2Y2Y2OTg5OWNkMWYwZWJiNGNhNjQ1YzA1ZTcwZTBkMmVmZWRkY2M2MWQwODljYmQ1MTVhMzlhMzU3OWI5MjM0M2I2MWVjNzUwMDYwZmI0ZWQzNzg3NjMzMjQwMGU0MjVmMWQzNzZjN2U3NWMyOTczMzE0ZWRmNGJiMzBjOGY4ZGQwM2I5ZmNmZjk1NWEyNDVkNDkxMzdhZDZlNjAwNTZjYWMxOTU1MmE4NjVkNTIxODcxODdjYzA0MmM5YzQ5ZTNlM2E5YzE3YTUzNGI0NTNjZGFiYzBjYjExM2I0ZjYzZjViMzE3NGI5ZWU5OTAyYjE5MTBkMTE0OTZhMjc5YTc0MzI2YWRjZmVlMTBiZmQ5ZTdlYmFmYmIzNzdiZTliNjM5NTkxNjVkMTNkZDU3NTExNzFjYWRhZDNjMWQzYWRhYzY4YmM4MDExZDYxYjU0Y2Y2MDE3OGJlMzY4MzlhODlhYzkxYWI0MTllM2NhMzdkNmJhODgxZDI1NTE4YzRkYjY4YmNhNmY3YzgzNjAyZjY5OWE4NmIxN2ZiMWU3NzNiY2JlNzRiYjkzYTQ5YjI1MWFlODY0MjhiNTc0MGUxODY4YmIxZDZmYWI5ZTI4NzEyZTk4ZWMzMTlhZDhmY2E0ZDczMDEwYzRiMDljNGI4MDQ1ODk2MWU3Y2YwODM1MzAyMDMwMTAwMDFhMzUzMzA1MTMwMWQwNjAzNTUxZDBlMDQxNjA0MTQ4YWVlZTU5NDdjYzY3YzVkZDUxNWE3NmUyYTdlY2QzMWVlNTJmZGM4MzAxZjA2MDM1NTFkMjMwNDE4MzAxNjgwMTQ4YWVlZTU5NDdjYzY3YzVkZDUxNWE3NmUyYTdlY2QzMWVlNTJmZGM4MzAwZjA2MDM1NTFkMTMwMTAxZmYwNDA1MzAwMzAxMDFmZjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDAzODIwMTAxMDA4MjFkNmI5OGNkNDU3ZGViZDJiMDgxYWNhMjdlYmVjZDRmOTNhY2M4Mjg0NDNiMzllYWJmZmE5ZmE0ZTllNDU0M2I0NmZjYzMxZTJiNWI0ODE3NzkwM2RlYTY5NjlhYzRhMmNjNjU3MDY1MDM5MGYxYjA4ZDQzYTRjMmY5NzVjN2VkOGJmMzM1NmM3MjE4MzgwMjEyNDUxYThmMTFkZTQ2NTUzY2JjZDY1YjQyNTRkZGI4ZjY2ODM0ZWIyMWRkYTJhOGYzM2I1ODFlMTQ4NDU1N2FjYTFiOTRlZTg5MzFkZGYxNjAzN2I3YTcxNzEzMjFhOTE5MzZhZmMyN2ZmY2UzOTVkZTc1ZDVmNzBjYjhiNWFlZTA1ZmY1MDcwODhkNjVhZjFlNDM5NjZjZDQyY2JlNmY3ZmFjZjhkYWUwNTVkZDgyMjJiMTY5NjUyMTcyM2Y4MTI0NTE3ODU5NWM5ODVhZTkxN2ZkNGIzOTk4NzczZTFhOTdiN2JkMTAwODU0NDZmNDI1OWJjYzA5YTQ1NDkyOTI4MmMxYjg5YjcxZWQ1ODdhNzc1ZTBhM2Q0NTM2MzQxZjQ1ZGFlOTY5ZTgwNmM5NmZlZmM3MTA2Nzc3NmMwMmJhMjIxMjJiOTE5OWIxNGMwYzI4YzA0NDg3NTA5MDcwYjk3ZjNkZDJkNmQ5NzI3MzMxODIwMTc3MzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDViZWNkODcxOTVjMWRlZmY5MGMyNGM5MTI2OWI1NWIzZjA2OWJjMjI1YzMyNmMzMTRjMWE1MTc4NmZmZTE0YzgzMGJlNGU0YmM3M2NiYTM2Yzk3Njc3YjQ0MTY4Mjc5YmU5MWU3Y2RmN2MxOTM4NmFlMjE4NjI3MTlkMTNhM2EwZmZmMDgwM2Q0NjA5NjJmMmNkYTgzNzE0ODQ4NzMyNTJjM2Q3MDU0ZGI4MTQzZTJiMDgxYTM4MTZlZDA4MDRjYTUwOTlhZTVmZWNlODNkNWMyYzM3ODNiMTk4OGI0YjQ2ZGM5NGU1NTU4N2ExMDdlYTE1NDZiZjIyZDI4YTA5N2Y2NTJhNDA2NmRjMjk2NTI2OTA2OWFmMmY1MTc2YmI4Y2U5Y2E2ZDExZjk2NzU3ZjAzMjA0Zjc1NjcwMzU4N2QwMGFkNDI0Nzk2YzkyZmM3YWViNmY0OTQ0MzE5OTllZGEzMDk5MGU0ZjU3NzM2MzJlZDI1OGZlMDI3NjY3MzU5OWRhNmZjZTM1Y2RhZDc3MjZhMGJiMDI0Y2FkOTk2Yjg4ZTBjYjk4ODU0Y2ViNWMwYjZlYzc0OGQ5ZjljZTZhNmNkNDM3ODU4YmFjYjgxNDYxOGEyNzJmZjNhNDE1YzZlMDdmM2RiMDk4ODc3N2ZkZWM4NDVhOTdiZjdkMTAyZGQwIgogCiBQS0NTNyBQYXJzZSBGYWlsdXJlIEludmFsaWQgQVNOMTogQ2hhbmdlIGxlbmd0aCBmcm9tIDEyIHRvIDEzICMxMTMuMAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHBrY3M3X2FzbjFfZmFpbDoiMzA4MjA1MDAwNjA5MmE4NjQ4ODZmNzBkMDEwNzAyYTA4MjA0ZjEzMDgyMDRlZDAyMDEwMTMxMGYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBiMDYwOTJhODY0ODg2ZjcwZDAxMDcwMWEwODIwMzRkMzA4MjAzNDkzMDgyMDIzMWEwMDMwMjAxMDIwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBkMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTMwMWUxNzBkMzIzMjMxMzAzMjM4MzEzNjMxMzAzNTM2NWExNzBkMzIzMzMxMzAzMjM4MzEzNjMxMzAzNTM2NWEzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEzMDgyMDEyMjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDAzODIwMTBmMDAzMDgyMDEwYTAyODIwMTAxMDBjOGI2Y2Y2OTg5OWNkMWYwZWJiNGNhNjQ1YzA1ZTcwZTBkMmVmZWRkY2M2MWQwODljYmQ1MTVhMzlhMzU3OWI5MjM0M2I2MWVjNzUwMDYwZmI0ZWQzNzg3NjMzMjQwMGU0MjVmMWQzNzZjN2U3NWMyOTczMzE0ZWRmNGJiMzBjOGY4ZGQwM2I5ZmNmZjk1NWEyNDVkNDkxMzdhZDZlNjAwNTZjYWMxOTU1MmE4NjVkNTIxODcxODdjYzA0MmM5YzQ5ZTNlM2E5YzE3YTUzNGI0NTNjZGFiYzBjYjExM2I0ZjYzZjViMzE3NGI5ZWU5OTAyYjE5MTBkMTE0OTZhMjc5YTc0MzI2YWRjZmVlMTBiZmQ5ZTdlYmFmYmIzNzdiZTliNjM5NTkxNjVkMTNkZDU3NTExNzFjYWRhZDNjMWQzYWRhYzY4YmM4MDExZDYxYjU0Y2Y2MDE3OGJlMzY4MzlhODlhYzkxYWI0MTllM2NhMzdkNmJhODgxZDI1NTE4YzRkYjY4YmNhNmY3YzgzNjAyZjY5OWE4NmIxN2ZiMWU3NzNiY2JlNzRiYjkzYTQ5YjI1MWFlODY0MjhiNTc0MGUxODY4YmIxZDZmYWI5ZTI4NzEyZTk4ZWMzMTlhZDhmY2E0ZDczMDEwYzRiMDljNGI4MDQ1ODk2MWU3Y2YwODM1MzAyMDMwMTAwMDFhMzUzMzA1MTMwMWQwNjAzNTUxZDBlMDQxNjA0MTQ4YWVlZTU5NDdjYzY3YzVkZDUxNWE3NmUyYTdlY2QzMWVlNTJmZGM4MzAxZjA2MDM1NTFkMjMwNDE4MzAxNjgwMTQ4YWVlZTU5NDdjYzY3YzVkZDUxNWE3NmUyYTdlY2QzMWVlNTJmZGM4MzAwZjA2MDM1NTFkMTMwMTAxZmYwNDA1MzAwMzAxMDFmZjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDAzODIwMTAxMDA4MjFkNmI5OGNkNDU3ZGViZDJiMDgxYWNhMjdlYmVjZDRmOTNhY2M4Mjg0NDNiMzllYWJmZmE5ZmE0ZTllNDU0M2I0NmZjYzMxZTJiNWI0ODE3NzkwM2RlYTY5NjlhYzRhMmNjNjU3MDY1MDM5MGYxYjA4ZDQzYTRjMmY5NzVjN2VkOGJmMzM1NmM3MjE4MzgwMjEyNDUxYThmMTFkZTQ2NTUzY2JjZDY1YjQyNTRkZGI4ZjY2ODM0ZWIyMWRkYTJhOGYzM2I1ODFlMTQ4NDU1N2FjYTFiOTRlZTg5MzFkZGYxNjAzN2I3YTcxNzEzMjFhOTE5MzZhZmMyN2ZmY2UzOTVkZTc1ZDVmNzBjYjhiNWFlZTA1ZmY1MDcwODhkNjVhZjFlNDM5NjZjZDQyY2JlNmY3ZmFjZjhkYWUwNTVkZDgyMjJiMTY5NjUyMTcyM2Y4MTI0NTE3ODU5NWM5ODVhZTkxN2ZkNGIzOTk4NzczZTFhOTdiN2JkMTAwODU0NDZmNDI1OWJjYzA5YTQ1NDkyOTI4MmMxYjg5YjcxZWQ1ODdhNzc1ZTBhM2Q0NTM2MzQxZjQ1ZGFlOTY5ZTgwNmM5NmZlZmM3MTA2Nzc3NmMwMmJhMjIxMjJiOTE5OWIxNGMwYzI4YzA0NDg3NTA5MDcwYjk3ZjNkZDJkNmQ5NzI3MzMxODIwMTc3MzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDViZWNkODcxOTVjMWRlZmY5MGMyNGM5MTI2OWI1NWIzZjA2OWJjMjI1YzMyNmMzMTRjMWE1MTc4NmZmZTE0YzgzMGJlNGU0YmM3M2NiYTM2Yzk3Njc3YjQ0MTY4Mjc5YmU5MWU3Y2RmN2MxOTM4NmFlMjE4NjI3MTlkMTNhM2EwZmZmMDgwM2Q0NjA5NjJmMmNkYTgzNzE0ODQ4NzMyNTJjM2Q3MDU0ZGI4MTQzZTJiMDgxYTM4MTZlZDA4MDRjYTUwOTlhZTVmZWNlODNkNWMyYzM3ODNiMTk4OGI0YjQ2ZGM5NGU1NTU4N2ExMDdlYTE1NDZiZjIyZDI4YTA5N2Y2NTJhNDA2NmRjMjk2NTI2OTA2OWFmMmY1MTc2YmI4Y2U5Y2E2ZDExZjk2NzU3ZjAzMjA0Zjc1NjcwMzU4N2QwMGFkNDI0Nzk2YzkyZmM3YWViNmY0OTQ0MzE5OTllZGEzMDk5MGU0ZjU3NzM2MzJlZDI1OGZlMDI3NjY3MzU5OWRhNmZjZTM1Y2RhZDc3MjZhMGJiMDI0Y2FkOTk2Yjg4ZTBjYjk4ODU0Y2ViNWMwYjZlYzc0OGQ5ZjljZTZhNmNkNDM3ODU4YmFjYjgxNDYxOGEyNzJmZjNhNDE1YzZlMDdmM2RiMDk4ODc3N2ZkZWM4NDVhOTdiZjdkMTAyZGQwIgogCiBQS0NTNyBQYXJzZSBGYWlsdXJlIEludmFsaWQgQVNOMTogQ2hhbmdlIGNvbnRlbnRzIG9mIHRhZyAzMCB0byBjb250YWluIG9uZSB1bmFjY291bnRlZCBleHRyYSBieXRlICMxMTQuMAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHBrY3M3X2FzbjFfZmFpbDoiMzA4MjA1MDAwNjA5MmE4NjQ4ODZmNzBkMDEwNzAyYTA4MjA0ZjEzMDgyMDRlZDAyMDEwMTMxMGYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBiMDYwOTJhODY0ODg2ZjcwZDAxMDcwMWEwODIwMzRkMzA4MjAzNDkzMDgyMDIzMWEwMDMwMjAxMDIwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBkMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MDAzMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMzAxZTE3MGQzMjMyMzEzMDMyMzgzMTM2MzEzMDM1MzY1YTE3MGQzMjMzMzEzMDMyMzgzMTM2MzEzMDM1MzY1YTMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTMwODIwMTIyMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDM4MjAxMGYwMDMwODIwMTBhMDI4MjAxMDEwMGM4YjZjZjY5ODk5Y2QxZjBlYmI0Y2E2NDVjMDVlNzBlMGQyZWZlZGRjYzYxZDA4OWNiZDUxNWEzOWEzNTc5YjkyMzQzYjYxZWM3NTAwNjBmYjRlZDM3ODc2MzMyNDAwZTQyNWYxZDM3NmM3ZTc1YzI5NzMzMTRlZGY0YmIzMGM4ZjhkZDAzYjlmY2ZmOTU1YTI0NWQ0OTEzN2FkNmU2MDA1NmNhYzE5NTUyYTg2NWQ1MjE4NzE4N2NjMDQyYzljNDllM2UzYTljMTdhNTM0YjQ1M2NkYWJjMGNiMTEzYjRmNjNmNWIzMTc0YjllZTk5MDJiMTkxMGQxMTQ5NmEyNzlhNzQzMjZhZGNmZWUxMGJmZDllN2ViYWZiYjM3N2JlOWI2Mzk1OTE2NWQxM2RkNTc1MTE3MWNhZGFkM2MxZDNhZGFjNjhiYzgwMTFkNjFiNTRjZjYwMTc4YmUzNjgzOWE4OWFjOTFhYjQxOWUzY2EzN2Q2YmE4ODFkMjU1MThjNGRiNjhiY2E2ZjdjODM2MDJmNjk5YTg2YjE3ZmIxZTc3M2JjYmU3NGJiOTNhNDliMjUxYWU4NjQyOGI1NzQwZTE4NjhiYjFkNmZhYjllMjg3MTJlOThlYzMxOWFkOGZjYTRkNzMwMTBjNGIwOWM0YjgwNDU4OTYxZTdjZjA4MzUzMDIwMzAxMDAwMWEzNTMzMDUxMzAxZDA2MDM1NTFkMGUwNDE2MDQxNDhhZWVlNTk0N2NjNjdjNWRkNTE1YTc2ZTJhN2VjZDMxZWU1MmZkYzgzMDFmMDYwMzU1MWQyMzA0MTgzMDE2ODAxNDhhZWVlNTk0N2NjNjdjNWRkNTE1YTc2ZTJhN2VjZDMxZWU1MmZkYzgzMDBmMDYwMzU1MWQxMzAxMDFmZjA0MDUzMDAzMDEwMWZmMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMDM4MjAxMDEwMDgyMWQ2Yjk4Y2Q0NTdkZWJkMmIwODFhY2EyN2ViZWNkNGY5M2FjYzgyODQ0M2IzOWVhYmZmYTlmYTRlOWU0NTQzYjQ2ZmNjMzFlMmI1YjQ4MTc3OTAzZGVhNjk2OWFjNGEyY2M2NTcwNjUwMzkwZjFiMDhkNDNhNGMyZjk3NWM3ZWQ4YmYzMzU2YzcyMTgzODAyMTI0NTFhOGYxMWRlNDY1NTNjYmNkNjViNDI1NGRkYjhmNjY4MzRlYjIxZGRhMmE4ZjMzYjU4MWUxNDg0NTU3YWNhMWI5NGVlODkzMWRkZjE2MDM3YjdhNzE3MTMyMWE5MTkzNmFmYzI3ZmZjZTM5NWRlNzVkNWY3MGNiOGI1YWVlMDVmZjUwNzA4OGQ2NWFmMWU0Mzk2NmNkNDJjYmU2ZjdmYWNmOGRhZTA1NWRkODIyMmIxNjk2NTIxNzIzZjgxMjQ1MTc4NTk1Yzk4NWFlOTE3ZmQ0YjM5OTg3NzNlMWE5N2I3YmQxMDA4NTQ0NmY0MjU5YmNjMDlhNDU0OTI5MjgyYzFiODliNzFlZDU4N2E3NzVlMGEzZDQ1MzYzNDFmNDVkYWU5NjllODA2Yzk2ZmVmYzcxMDY3Nzc2YzAyYmEyMjEyMmI5MTk5YjE0YzBjMjhjMDQ0ODc1MDkwNzBiOTdmM2RkMmQ2ZDk3MjczMzE4MjAxNzczMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwNWJlY2Q4NzE5NWMxZGVmZjkwYzI0YzkxMjY5YjU1YjNmMDY5YmMyMjVjMzI2YzMxNGMxYTUxNzg2ZmZlMTRjODMwYmU0ZTRiYzczY2JhMzZjOTc2NzdiNDQxNjgyNzliZTkxZTdjZGY3YzE5Mzg2YWUyMTg2MjcxOWQxM2EzYTBmZmYwODAzZDQ2MDk2MmYyY2RhODM3MTQ4NDg3MzI1MmMzZDcwNTRkYjgxNDNlMmIwODFhMzgxNmVkMDgwNGNhNTA5OWFlNWZlY2U4M2Q1YzJjMzc4M2IxOTg4YjRiNDZkYzk0ZTU1NTg3YTEwN2VhMTU0NmJmMjJkMjhhMDk3ZjY1MmE0MDY2ZGMyOTY1MjY5MDY5YWYyZjUxNzZiYjhjZTljYTZkMTFmOTY3NTdmMDMyMDRmNzU2NzAzNTg3ZDAwYWQ0MjQ3OTZjOTJmYzdhZWI2ZjQ5NDQzMTk5OWVkYTMwOTkwZTRmNTc3MzYzMmVkMjU4ZmUwMjc2NjczNTk5ZGE2ZmNlMzVjZGFkNzcyNmEwYmIwMjRjYWQ5OTZiODhlMGNiOTg4NTRjZWI1YzBiNmVjNzQ4ZDlmOWNlNmE2Y2Q0Mzc4NThiYWNiODE0NjE4YTI3MmZmM2E0MTVjNmUwN2YzZGIwOTg4Nzc3ZmRlYzg0NWE5N2JmN2QxMDJkZDAiCiAKIFBLQ1M3IFBhcnNlIEZhaWx1cmUgSW52YWxpZCBBU04xOiBDaGFuZ2UgbGVuZ3RoIGZyb20gMTIgdG8gMTEgIzExNS4wCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NgogcGtjczdfYXNuMV9mYWlsOiIzMDgyMDUwMDA2MDkyYTg2NDg4NmY3MGQwMTA3MDJhMDgyMDRmMTMwODIwNGVkMDIwMTAxMzEwZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGIwNjA5MmE4NjQ4ODZmNzBkMDEwNzAxYTA4MjAzNGQzMDgyMDM0OTMwODIwMjMxYTAwMzAyMDEwMjAyMTQ3YmRlZGRkMjQ0NGNkMWNkZmU1YzQxYTgxMDJjODliN2RmMmU2Y2JmMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGIwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMzAxZTE3MGQzMjMyMzEzMDMyMzgzMTM2MzEzMDM1MzY1YTE3MGQzMjMzMzEzMDMyMzgzMTM2MzEzMDM1MzY1YTMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTMwODIwMTIyMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDM4MjAxMGYwMDMwODIwMTBhMDI4MjAxMDEwMGM4YjZjZjY5ODk5Y2QxZjBlYmI0Y2E2NDVjMDVlNzBlMGQyZWZlZGRjYzYxZDA4OWNiZDUxNWEzOWEzNTc5YjkyMzQzYjYxZWM3NTAwNjBmYjRlZDM3ODc2MzMyNDAwZTQyNWYxZDM3NmM3ZTc1YzI5NzMzMTRlZGY0YmIzMGM4ZjhkZDAzYjlmY2ZmOTU1YTI0NWQ0OTEzN2FkNmU2MDA1NmNhYzE5NTUyYTg2NWQ1MjE4NzE4N2NjMDQyYzljNDllM2UzYTljMTdhNTM0YjQ1M2NkYWJjMGNiMTEzYjRmNjNmNWIzMTc0YjllZTk5MDJiMTkxMGQxMTQ5NmEyNzlhNzQzMjZhZGNmZWUxMGJmZDllN2ViYWZiYjM3N2JlOWI2Mzk1OTE2NWQxM2RkNTc1MTE3MWNhZGFkM2MxZDNhZGFjNjhiYzgwMTFkNjFiNTRjZjYwMTc4YmUzNjgzOWE4OWFjOTFhYjQxOWUzY2EzN2Q2YmE4ODFkMjU1MThjNGRiNjhiY2E2ZjdjODM2MDJmNjk5YTg2YjE3ZmIxZTc3M2JjYmU3NGJiOTNhNDliMjUxYWU4NjQyOGI1NzQwZTE4NjhiYjFkNmZhYjllMjg3MTJlOThlYzMxOWFkOGZjYTRkNzMwMTBjNGIwOWM0YjgwNDU4OTYxZTdjZjA4MzUzMDIwMzAxMDAwMWEzNTMzMDUxMzAxZDA2MDM1NTFkMGUwNDE2MDQxNDhhZWVlNTk0N2NjNjdjNWRkNTE1YTc2ZTJhN2VjZDMxZWU1MmZkYzgzMDFmMDYwMzU1MWQyMzA0MTgzMDE2ODAxNDhhZWVlNTk0N2NjNjdjNWRkNTE1YTc2ZTJhN2VjZDMxZWU1MmZkYzgzMDBmMDYwMzU1MWQxMzAxMDFmZjA0MDUzMDAzMDEwMWZmMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMDM4MjAxMDEwMDgyMWQ2Yjk4Y2Q0NTdkZWJkMmIwODFhY2EyN2ViZWNkNGY5M2FjYzgyODQ0M2IzOWVhYmZmYTlmYTRlOWU0NTQzYjQ2ZmNjMzFlMmI1YjQ4MTc3OTAzZGVhNjk2OWFjNGEyY2M2NTcwNjUwMzkwZjFiMDhkNDNhNGMyZjk3NWM3ZWQ4YmYzMzU2YzcyMTgzODAyMTI0NTFhOGYxMWRlNDY1NTNjYmNkNjViNDI1NGRkYjhmNjY4MzRlYjIxZGRhMmE4ZjMzYjU4MWUxNDg0NTU3YWNhMWI5NGVlODkzMWRkZjE2MDM3YjdhNzE3MTMyMWE5MTkzNmFmYzI3ZmZjZTM5NWRlNzVkNWY3MGNiOGI1YWVlMDVmZjUwNzA4OGQ2NWFmMWU0Mzk2NmNkNDJjYmU2ZjdmYWNmOGRhZTA1NWRkODIyMmIxNjk2NTIxNzIzZjgxMjQ1MTc4NTk1Yzk4NWFlOTE3ZmQ0YjM5OTg3NzNlMWE5N2I3YmQxMDA4NTQ0NmY0MjU5YmNjMDlhNDU0OTI5MjgyYzFiODliNzFlZDU4N2E3NzVlMGEzZDQ1MzYzNDFmNDVkYWU5NjllODA2Yzk2ZmVmYzcxMDY3Nzc2YzAyYmEyMjEyMmI5MTk5YjE0YzBjMjhjMDQ0ODc1MDkwNzBiOTdmM2RkMmQ2ZDk3MjczMzE4MjAxNzczMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwNWJlY2Q4NzE5NWMxZGVmZjkwYzI0YzkxMjY5YjU1YjNmMDY5YmMyMjVjMzI2YzMxNGMxYTUxNzg2ZmZlMTRjODMwYmU0ZTRiYzczY2JhMzZjOTc2NzdiNDQxNjgyNzliZTkxZTdjZGY3YzE5Mzg2YWUyMTg2MjcxOWQxM2EzYTBmZmYwODAzZDQ2MDk2MmYyY2RhODM3MTQ4NDg3MzI1MmMzZDcwNTRkYjgxNDNlMmIwODFhMzgxNmVkMDgwNGNhNTA5OWFlNWZlY2U4M2Q1YzJjMzc4M2IxOTg4YjRiNDZkYzk0ZTU1NTg3YTEwN2VhMTU0NmJmMjJkMjhhMDk3ZjY1MmE0MDY2ZGMyOTY1MjY5MDY5YWYyZjUxNzZiYjhjZTljYTZkMTFmOTY3NTdmMDMyMDRmNzU2NzAzNTg3ZDAwYWQ0MjQ3OTZjOTJmYzdhZWI2ZjQ5NDQzMTk5OWVkYTMwOTkwZTRmNTc3MzYzMmVkMjU4ZmUwMjc2NjczNTk5ZGE2ZmNlMzVjZGFkNzcyNmEwYmIwMjRjYWQ5OTZiODhlMGNiOTg4NTRjZWI1YzBiNmVjNzQ4ZDlmOWNlNmE2Y2Q0Mzc4NThiYWNiODE0NjE4YTI3MmZmM2E0MTVjNmUwN2YzZGIwOTg4Nzc3ZmRlYzg0NWE5N2JmN2QxMDJkZDAiCiAKIFBLQ1M3IFBhcnNlIEZhaWx1cmUgSW52YWxpZCBBU04xOiBDaGFuZ2UgdGFnIDA2IHRvIDAyICMxMTYuMAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHBrY3M3X2FzbjFfZmFpbDoiMzA4MjA1MDAwNjA5MmE4NjQ4ODZmNzBkMDEwNzAyYTA4MjA0ZjEzMDgyMDRlZDAyMDEwMTMxMGYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBiMDYwOTJhODY0ODg2ZjcwZDAxMDcwMWEwODIwMzRkMzA4MjAzNDkzMDgyMDIzMWEwMDMwMjAxMDIwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDIwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTMwMWUxNzBkMzIzMjMxMzAzMjM4MzEzNjMxMzAzNTM2NWExNzBkMzIzMzMxMzAzMjM4MzEzNjMxMzAzNTM2NWEzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEzMDgyMDEyMjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDAzODIwMTBmMDAzMDgyMDEwYTAyODIwMTAxMDBjOGI2Y2Y2OTg5OWNkMWYwZWJiNGNhNjQ1YzA1ZTcwZTBkMmVmZWRkY2M2MWQwODljYmQ1MTVhMzlhMzU3OWI5MjM0M2I2MWVjNzUwMDYwZmI0ZWQzNzg3NjMzMjQwMGU0MjVmMWQzNzZjN2U3NWMyOTczMzE0ZWRmNGJiMzBjOGY4ZGQwM2I5ZmNmZjk1NWEyNDVkNDkxMzdhZDZlNjAwNTZjYWMxOTU1MmE4NjVkNTIxODcxODdjYzA0MmM5YzQ5ZTNlM2E5YzE3YTUzNGI0NTNjZGFiYzBjYjExM2I0ZjYzZjViMzE3NGI5ZWU5OTAyYjE5MTBkMTE0OTZhMjc5YTc0MzI2YWRjZmVlMTBiZmQ5ZTdlYmFmYmIzNzdiZTliNjM5NTkxNjVkMTNkZDU3NTExNzFjYWRhZDNjMWQzYWRhYzY4YmM4MDExZDYxYjU0Y2Y2MDE3OGJlMzY4MzlhODlhYzkxYWI0MTllM2NhMzdkNmJhODgxZDI1NTE4YzRkYjY4YmNhNmY3YzgzNjAyZjY5OWE4NmIxN2ZiMWU3NzNiY2JlNzRiYjkzYTQ5YjI1MWFlODY0MjhiNTc0MGUxODY4YmIxZDZmYWI5ZTI4NzEyZTk4ZWMzMTlhZDhmY2E0ZDczMDEwYzRiMDljNGI4MDQ1ODk2MWU3Y2YwODM1MzAyMDMwMTAwMDFhMzUzMzA1MTMwMWQwNjAzNTUxZDBlMDQxNjA0MTQ4YWVlZTU5NDdjYzY3YzVkZDUxNWE3NmUyYTdlY2QzMWVlNTJmZGM4MzAxZjA2MDM1NTFkMjMwNDE4MzAxNjgwMTQ4YWVlZTU5NDdjYzY3YzVkZDUxNWE3NmUyYTdlY2QzMWVlNTJmZGM4MzAwZjA2MDM1NTFkMTMwMTAxZmYwNDA1MzAwMzAxMDFmZjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDAzODIwMTAxMDA4MjFkNmI5OGNkNDU3ZGViZDJiMDgxYWNhMjdlYmVjZDRmOTNhY2M4Mjg0NDNiMzllYWJmZmE5ZmE0ZTllNDU0M2I0NmZjYzMxZTJiNWI0ODE3NzkwM2RlYTY5NjlhYzRhMmNjNjU3MDY1MDM5MGYxYjA4ZDQzYTRjMmY5NzVjN2VkOGJmMzM1NmM3MjE4MzgwMjEyNDUxYThmMTFkZTQ2NTUzY2JjZDY1YjQyNTRkZGI4ZjY2ODM0ZWIyMWRkYTJhOGYzM2I1ODFlMTQ4NDU1N2FjYTFiOTRlZTg5MzFkZGYxNjAzN2I3YTcxNzEzMjFhOTE5MzZhZmMyN2ZmY2UzOTVkZTc1ZDVmNzBjYjhiNWFlZTA1ZmY1MDcwODhkNjVhZjFlNDM5NjZjZDQyY2JlNmY3ZmFjZjhkYWUwNTVkZDgyMjJiMTY5NjUyMTcyM2Y4MTI0NTE3ODU5NWM5ODVhZTkxN2ZkNGIzOTk4NzczZTFhOTdiN2JkMTAwODU0NDZmNDI1OWJjYzA5YTQ1NDkyOTI4MmMxYjg5YjcxZWQ1ODdhNzc1ZTBhM2Q0NTM2MzQxZjQ1ZGFlOTY5ZTgwNmM5NmZlZmM3MTA2Nzc3NmMwMmJhMjIxMjJiOTE5OWIxNGMwYzI4YzA0NDg3NTA5MDcwYjk3ZjNkZDJkNmQ5NzI3MzMxODIwMTc3MzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDViZWNkODcxOTVjMWRlZmY5MGMyNGM5MTI2OWI1NWIzZjA2OWJjMjI1YzMyNmMzMTRjMWE1MTc4NmZmZTE0YzgzMGJlNGU0YmM3M2NiYTM2Yzk3Njc3YjQ0MTY4Mjc5YmU5MWU3Y2RmN2MxOTM4NmFlMjE4NjI3MTlkMTNhM2EwZmZmMDgwM2Q0NjA5NjJmMmNkYTgzNzE0ODQ4NzMyNTJjM2Q3MDU0ZGI4MTQzZTJiMDgxYTM4MTZlZDA4MDRjYTUwOTlhZTVmZWNlODNkNWMyYzM3ODNiMTk4OGI0YjQ2ZGM5NGU1NTU4N2ExMDdlYTE1NDZiZjIyZDI4YTA5N2Y2NTJhNDA2NmRjMjk2NTI2OTA2OWFmMmY1MTc2YmI4Y2U5Y2E2ZDExZjk2NzU3ZjAzMjA0Zjc1NjcwMzU4N2QwMGFkNDI0Nzk2YzkyZmM3YWViNmY0OTQ0MzE5OTllZGEzMDk5MGU0ZjU3NzM2MzJlZDI1OGZlMDI3NjY3MzU5OWRhNmZjZTM1Y2RhZDc3MjZhMGJiMDI0Y2FkOTk2Yjg4ZTBjYjk4ODU0Y2ViNWMwYjZlYzc0OGQ5ZjljZTZhNmNkNDM3ODU4YmFjYjgxNDYxOGEyNzJmZjNhNDE1YzZlMDdmM2RiMDk4ODc3N2ZkZWM4NDVhOTdiZjdkMTAyZGQwIgogCiBQS0NTNyBQYXJzZSBGYWlsdXJlIEludmFsaWQgQVNOMTogQ2hhbmdlIGxlbmd0aCBmcm9tIDMgdG8gNCAjMTE3LjAKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBwa2NzN19hc24xX2ZhaWw6IjMwODIwNTAwMDYwOTJhODY0ODg2ZjcwZDAxMDcwMmEwODIwNGYxMzA4MjA0ZWQwMjAxMDEzMTBmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwYjA2MDkyYTg2NDg4NmY3MGQwMTA3MDFhMDgyMDM0ZDMwODIwMzQ5MzA4MjAyMzFhMDAzMDIwMTAyMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDQ1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEzMDFlMTcwZDMyMzIzMTMwMzIzODMxMzYzMTMwMzUzNjVhMTcwZDMyMzMzMTMwMzIzODMxMzYzMTMwMzUzNjVhMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMzA4MjAxMjIzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwMzgyMDEwZjAwMzA4MjAxMGEwMjgyMDEwMTAwYzhiNmNmNjk4OTljZDFmMGViYjRjYTY0NWMwNWU3MGUwZDJlZmVkZGNjNjFkMDg5Y2JkNTE1YTM5YTM1NzliOTIzNDNiNjFlYzc1MDA2MGZiNGVkMzc4NzYzMzI0MDBlNDI1ZjFkMzc2YzdlNzVjMjk3MzMxNGVkZjRiYjMwYzhmOGRkMDNiOWZjZmY5NTVhMjQ1ZDQ5MTM3YWQ2ZTYwMDU2Y2FjMTk1NTJhODY1ZDUyMTg3MTg3Y2MwNDJjOWM0OWUzZTNhOWMxN2E1MzRiNDUzY2RhYmMwY2IxMTNiNGY2M2Y1YjMxNzRiOWVlOTkwMmIxOTEwZDExNDk2YTI3OWE3NDMyNmFkY2ZlZTEwYmZkOWU3ZWJhZmJiMzc3YmU5YjYzOTU5MTY1ZDEzZGQ1NzUxMTcxY2FkYWQzYzFkM2FkYWM2OGJjODAxMWQ2MWI1NGNmNjAxNzhiZTM2ODM5YTg5YWM5MWFiNDE5ZTNjYTM3ZDZiYTg4MWQyNTUxOGM0ZGI2OGJjYTZmN2M4MzYwMmY2OTlhODZiMTdmYjFlNzczYmNiZTc0YmI5M2E0OWIyNTFhZTg2NDI4YjU3NDBlMTg2OGJiMWQ2ZmFiOWUyODcxMmU5OGVjMzE5YWQ4ZmNhNGQ3MzAxMGM0YjA5YzRiODA0NTg5NjFlN2NmMDgzNTMwMjAzMDEwMDAxYTM1MzMwNTEzMDFkMDYwMzU1MWQwZTA0MTYwNDE0OGFlZWU1OTQ3Y2M2N2M1ZGQ1MTVhNzZlMmE3ZWNkMzFlZTUyZmRjODMwMWYwNjAzNTUxZDIzMDQxODMwMTY4MDE0OGFlZWU1OTQ3Y2M2N2M1ZGQ1MTVhNzZlMmE3ZWNkMzFlZTUyZmRjODMwMGYwNjAzNTUxZDEzMDEwMWZmMDQwNTMwMDMwMTAxZmYzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAwMzgyMDEwMTAwODIxZDZiOThjZDQ1N2RlYmQyYjA4MWFjYTI3ZWJlY2Q0ZjkzYWNjODI4NDQzYjM5ZWFiZmZhOWZhNGU5ZTQ1NDNiNDZmY2MzMWUyYjViNDgxNzc5MDNkZWE2OTY5YWM0YTJjYzY1NzA2NTAzOTBmMWIwOGQ0M2E0YzJmOTc1YzdlZDhiZjMzNTZjNzIxODM4MDIxMjQ1MWE4ZjExZGU0NjU1M2NiY2Q2NWI0MjU0ZGRiOGY2NjgzNGViMjFkZGEyYThmMzNiNTgxZTE0ODQ1NTdhY2ExYjk0ZWU4OTMxZGRmMTYwMzdiN2E3MTcxMzIxYTkxOTM2YWZjMjdmZmNlMzk1ZGU3NWQ1ZjcwY2I4YjVhZWUwNWZmNTA3MDg4ZDY1YWYxZTQzOTY2Y2Q0MmNiZTZmN2ZhY2Y4ZGFlMDU1ZGQ4MjIyYjE2OTY1MjE3MjNmODEyNDUxNzg1OTVjOTg1YWU5MTdmZDRiMzk5ODc3M2UxYTk3YjdiZDEwMDg1NDQ2ZjQyNTliY2MwOWE0NTQ5MjkyODJjMWI4OWI3MWVkNTg3YTc3NWUwYTNkNDUzNjM0MWY0NWRhZTk2OWU4MDZjOTZmZWZjNzEwNjc3NzZjMDJiYTIyMTIyYjkxOTliMTRjMGMyOGMwNDQ4NzUwOTA3MGI5N2YzZGQyZDZkOTcyNzMzMTgyMDE3NzMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTAyMTQ3YmRlZGRkMjQ0NGNkMWNkZmU1YzQxYTgxMDJjODliN2RmMmU2Y2JmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDA1YmVjZDg3MTk1YzFkZWZmOTBjMjRjOTEyNjliNTViM2YwNjliYzIyNWMzMjZjMzE0YzFhNTE3ODZmZmUxNGM4MzBiZTRlNGJjNzNjYmEzNmM5NzY3N2I0NDE2ODI3OWJlOTFlN2NkZjdjMTkzODZhZTIxODYyNzE5ZDEzYTNhMGZmZjA4MDNkNDYwOTYyZjJjZGE4MzcxNDg0ODczMjUyYzNkNzA1NGRiODE0M2UyYjA4MWEzODE2ZWQwODA0Y2E1MDk5YWU1ZmVjZTgzZDVjMmMzNzgzYjE5ODhiNGI0NmRjOTRlNTU1ODdhMTA3ZWExNTQ2YmYyMmQyOGEwOTdmNjUyYTQwNjZkYzI5NjUyNjkwNjlhZjJmNTE3NmJiOGNlOWNhNmQxMWY5Njc1N2YwMzIwNGY3NTY3MDM1ODdkMDBhZDQyNDc5NmM5MmZjN2FlYjZmNDk0NDMxOTk5ZWRhMzA5OTBlNGY1NzczNjMyZWQyNThmZTAyNzY2NzM1OTlkYTZmY2UzNWNkYWQ3NzI2YTBiYjAyNGNhZDk5NmI4OGUwY2I5ODg1NGNlYjVjMGI2ZWM3NDhkOWY5Y2U2YTZjZDQzNzg1OGJhY2I4MTQ2MThhMjcyZmYzYTQxNWM2ZTA3ZjNkYjA5ODg3NzdmZGVjODQ1YTk3YmY3ZDEwMmRkMCIKIAogUEtDUzcgUGFyc2UgRmFpbHVyZSBJbnZhbGlkIEFTTjE6IENoYW5nZSBsZW5ndGggZnJvbSAzIHRvIDIgIzExOC4wCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NgogcGtjczdfYXNuMV9mYWlsOiIzMDgyMDUwMDA2MDkyYTg2NDg4NmY3MGQwMTA3MDJhMDgyMDRmMTMwODIwNGVkMDIwMTAxMzEwZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGIwNjA5MmE4NjQ4ODZmNzBkMDEwNzAxYTA4MjAzNGQzMDgyMDM0OTMwODIwMjMxYTAwMzAyMDEwMjAyMTQ3YmRlZGRkMjQ0NGNkMWNkZmU1YzQxYTgxMDJjODliN2RmMmU2Y2JmMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAyNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMzAxZTE3MGQzMjMyMzEzMDMyMzgzMTM2MzEzMDM1MzY1YTE3MGQzMjMzMzEzMDMyMzgzMTM2MzEzMDM1MzY1YTMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTMwODIwMTIyMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDM4MjAxMGYwMDMwODIwMTBhMDI4MjAxMDEwMGM4YjZjZjY5ODk5Y2QxZjBlYmI0Y2E2NDVjMDVlNzBlMGQyZWZlZGRjYzYxZDA4OWNiZDUxNWEzOWEzNTc5YjkyMzQzYjYxZWM3NTAwNjBmYjRlZDM3ODc2MzMyNDAwZTQyNWYxZDM3NmM3ZTc1YzI5NzMzMTRlZGY0YmIzMGM4ZjhkZDAzYjlmY2ZmOTU1YTI0NWQ0OTEzN2FkNmU2MDA1NmNhYzE5NTUyYTg2NWQ1MjE4NzE4N2NjMDQyYzljNDllM2UzYTljMTdhNTM0YjQ1M2NkYWJjMGNiMTEzYjRmNjNmNWIzMTc0YjllZTk5MDJiMTkxMGQxMTQ5NmEyNzlhNzQzMjZhZGNmZWUxMGJmZDllN2ViYWZiYjM3N2JlOWI2Mzk1OTE2NWQxM2RkNTc1MTE3MWNhZGFkM2MxZDNhZGFjNjhiYzgwMTFkNjFiNTRjZjYwMTc4YmUzNjgzOWE4OWFjOTFhYjQxOWUzY2EzN2Q2YmE4ODFkMjU1MThjNGRiNjhiY2E2ZjdjODM2MDJmNjk5YTg2YjE3ZmIxZTc3M2JjYmU3NGJiOTNhNDliMjUxYWU4NjQyOGI1NzQwZTE4NjhiYjFkNmZhYjllMjg3MTJlOThlYzMxOWFkOGZjYTRkNzMwMTBjNGIwOWM0YjgwNDU4OTYxZTdjZjA4MzUzMDIwMzAxMDAwMWEzNTMzMDUxMzAxZDA2MDM1NTFkMGUwNDE2MDQxNDhhZWVlNTk0N2NjNjdjNWRkNTE1YTc2ZTJhN2VjZDMxZWU1MmZkYzgzMDFmMDYwMzU1MWQyMzA0MTgzMDE2ODAxNDhhZWVlNTk0N2NjNjdjNWRkNTE1YTc2ZTJhN2VjZDMxZWU1MmZkYzgzMDBmMDYwMzU1MWQxMzAxMDFmZjA0MDUzMDAzMDEwMWZmMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMDM4MjAxMDEwMDgyMWQ2Yjk4Y2Q0NTdkZWJkMmIwODFhY2EyN2ViZWNkNGY5M2FjYzgyODQ0M2IzOWVhYmZmYTlmYTRlOWU0NTQzYjQ2ZmNjMzFlMmI1YjQ4MTc3OTAzZGVhNjk2OWFjNGEyY2M2NTcwNjUwMzkwZjFiMDhkNDNhNGMyZjk3NWM3ZWQ4YmYzMzU2YzcyMTgzODAyMTI0NTFhOGYxMWRlNDY1NTNjYmNkNjViNDI1NGRkYjhmNjY4MzRlYjIxZGRhMmE4ZjMzYjU4MWUxNDg0NTU3YWNhMWI5NGVlODkzMWRkZjE2MDM3YjdhNzE3MTMyMWE5MTkzNmFmYzI3ZmZjZTM5NWRlNzVkNWY3MGNiOGI1YWVlMDVmZjUwNzA4OGQ2NWFmMWU0Mzk2NmNkNDJjYmU2ZjdmYWNmOGRhZTA1NWRkODIyMmIxNjk2NTIxNzIzZjgxMjQ1MTc4NTk1Yzk4NWFlOTE3ZmQ0YjM5OTg3NzNlMWE5N2I3YmQxMDA4NTQ0NmY0MjU5YmNjMDlhNDU0OTI5MjgyYzFiODliNzFlZDU4N2E3NzVlMGEzZDQ1MzYzNDFmNDVkYWU5NjllODA2Yzk2ZmVmYzcxMDY3Nzc2YzAyYmEyMjEyMmI5MTk5YjE0YzBjMjhjMDQ0ODc1MDkwNzBiOTdmM2RkMmQ2ZDk3MjczMzE4MjAxNzczMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwNWJlY2Q4NzE5NWMxZGVmZjkwYzI0YzkxMjY5YjU1YjNmMDY5YmMyMjVjMzI2YzMxNGMxYTUxNzg2ZmZlMTRjODMwYmU0ZTRiYzczY2JhMzZjOTc2NzdiNDQxNjgyNzliZTkxZTdjZGY3YzE5Mzg2YWUyMTg2MjcxOWQxM2EzYTBmZmYwODAzZDQ2MDk2MmYyY2RhODM3MTQ4NDg3MzI1MmMzZDcwNTRkYjgxNDNlMmIwODFhMzgxNmVkMDgwNGNhNTA5OWFlNWZlY2U4M2Q1YzJjMzc4M2IxOTg4YjRiNDZkYzk0ZTU1NTg3YTEwN2VhMTU0NmJmMjJkMjhhMDk3ZjY1MmE0MDY2ZGMyOTY1MjY5MDY5YWYyZjUxNzZiYjhjZTljYTZkMTFmOTY3NTdmMDMyMDRmNzU2NzAzNTg3ZDAwYWQ0MjQ3OTZjOTJmYzdhZWI2ZjQ5NDQzMTk5OWVkYTMwOTkwZTRmNTc3MzYzMmVkMjU4ZmUwMjc2NjczNTk5ZGE2ZmNlMzVjZGFkNzcyNmEwYmIwMjRjYWQ5OTZiODhlMGNiOTg4NTRjZWI1YzBiNmVjNzQ4ZDlmOWNlNmE2Y2Q0Mzc4NThiYWNiODE0NjE4YTI3MmZmM2E0MTVjNmUwN2YzZGIwOTg4Nzc3ZmRlYzg0NWE5N2JmN2QxMDJkZDAiCiAKIFBLQ1M3IFBhcnNlIEZhaWx1cmUgSW52YWxpZCBBU04xOiBDaGFuZ2UgdGFnIDBjIHRvIDAyICMxMTkuMAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHBrY3M3X2FzbjFfZmFpbDoiMzA4MjA1MDAwNjA5MmE4NjQ4ODZmNzBkMDEwNzAyYTA4MjA0ZjEzMDgyMDRlZDAyMDEwMTMxMGYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBiMDYwOTJhODY0ODg2ZjcwZDAxMDcwMWEwODIwMzRkMzA4MjAzNDkzMDgyMDIzMWEwMDMwMjAxMDIwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTAyMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTMwMWUxNzBkMzIzMjMxMzAzMjM4MzEzNjMxMzAzNTM2NWExNzBkMzIzMzMxMzAzMjM4MzEzNjMxMzAzNTM2NWEzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEzMDgyMDEyMjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDAzODIwMTBmMDAzMDgyMDEwYTAyODIwMTAxMDBjOGI2Y2Y2OTg5OWNkMWYwZWJiNGNhNjQ1YzA1ZTcwZTBkMmVmZWRkY2M2MWQwODljYmQ1MTVhMzlhMzU3OWI5MjM0M2I2MWVjNzUwMDYwZmI0ZWQzNzg3NjMzMjQwMGU0MjVmMWQzNzZjN2U3NWMyOTczMzE0ZWRmNGJiMzBjOGY4ZGQwM2I5ZmNmZjk1NWEyNDVkNDkxMzdhZDZlNjAwNTZjYWMxOTU1MmE4NjVkNTIxODcxODdjYzA0MmM5YzQ5ZTNlM2E5YzE3YTUzNGI0NTNjZGFiYzBjYjExM2I0ZjYzZjViMzE3NGI5ZWU5OTAyYjE5MTBkMTE0OTZhMjc5YTc0MzI2YWRjZmVlMTBiZmQ5ZTdlYmFmYmIzNzdiZTliNjM5NTkxNjVkMTNkZDU3NTExNzFjYWRhZDNjMWQzYWRhYzY4YmM4MDExZDYxYjU0Y2Y2MDE3OGJlMzY4MzlhODlhYzkxYWI0MTllM2NhMzdkNmJhODgxZDI1NTE4YzRkYjY4YmNhNmY3YzgzNjAyZjY5OWE4NmIxN2ZiMWU3NzNiY2JlNzRiYjkzYTQ5YjI1MWFlODY0MjhiNTc0MGUxODY4YmIxZDZmYWI5ZTI4NzEyZTk4ZWMzMTlhZDhmY2E0ZDczMDEwYzRiMDljNGI4MDQ1ODk2MWU3Y2YwODM1MzAyMDMwMTAwMDFhMzUzMzA1MTMwMWQwNjAzNTUxZDBlMDQxNjA0MTQ4YWVlZTU5NDdjYzY3YzVkZDUxNWE3NmUyYTdlY2QzMWVlNTJmZGM4MzAxZjA2MDM1NTFkMjMwNDE4MzAxNjgwMTQ4YWVlZTU5NDdjYzY3YzVkZDUxNWE3NmUyYTdlY2QzMWVlNTJmZGM4MzAwZjA2MDM1NTFkMTMwMTAxZmYwNDA1MzAwMzAxMDFmZjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDAzODIwMTAxMDA4MjFkNmI5OGNkNDU3ZGViZDJiMDgxYWNhMjdlYmVjZDRmOTNhY2M4Mjg0NDNiMzllYWJmZmE5ZmE0ZTllNDU0M2I0NmZjYzMxZTJiNWI0ODE3NzkwM2RlYTY5NjlhYzRhMmNjNjU3MDY1MDM5MGYxYjA4ZDQzYTRjMmY5NzVjN2VkOGJmMzM1NmM3MjE4MzgwMjEyNDUxYThmMTFkZTQ2NTUzY2JjZDY1YjQyNTRkZGI4ZjY2ODM0ZWIyMWRkYTJhOGYzM2I1ODFlMTQ4NDU1N2FjYTFiOTRlZTg5MzFkZGYxNjAzN2I3YTcxNzEzMjFhOTE5MzZhZmMyN2ZmY2UzOTVkZTc1ZDVmNzBjYjhiNWFlZTA1ZmY1MDcwODhkNjVhZjFlNDM5NjZjZDQyY2JlNmY3ZmFjZjhkYWUwNTVkZDgyMjJiMTY5NjUyMTcyM2Y4MTI0NTE3ODU5NWM5ODVhZTkxN2ZkNGIzOTk4NzczZTFhOTdiN2JkMTAwODU0NDZmNDI1OWJjYzA5YTQ1NDkyOTI4MmMxYjg5YjcxZWQ1ODdhNzc1ZTBhM2Q0NTM2MzQxZjQ1ZGFlOTY5ZTgwNmM5NmZlZmM3MTA2Nzc3NmMwMmJhMjIxMjJiOTE5OWIxNGMwYzI4YzA0NDg3NTA5MDcwYjk3ZjNkZDJkNmQ5NzI3MzMxODIwMTc3MzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDViZWNkODcxOTVjMWRlZmY5MGMyNGM5MTI2OWI1NWIzZjA2OWJjMjI1YzMyNmMzMTRjMWE1MTc4NmZmZTE0YzgzMGJlNGU0YmM3M2NiYTM2Yzk3Njc3YjQ0MTY4Mjc5YmU5MWU3Y2RmN2MxOTM4NmFlMjE4NjI3MTlkMTNhM2EwZmZmMDgwM2Q0NjA5NjJmMmNkYTgzNzE0ODQ4NzMyNTJjM2Q3MDU0ZGI4MTQzZTJiMDgxYTM4MTZlZDA4MDRjYTUwOTlhZTVmZWNlODNkNWMyYzM3ODNiMTk4OGI0YjQ2ZGM5NGU1NTU4N2ExMDdlYTE1NDZiZjIyZDI4YTA5N2Y2NTJhNDA2NmRjMjk2NTI2OTA2OWFmMmY1MTc2YmI4Y2U5Y2E2ZDExZjk2NzU3ZjAzMjA0Zjc1NjcwMzU4N2QwMGFkNDI0Nzk2YzkyZmM3YWViNmY0OTQ0MzE5OTllZGEzMDk5MGU0ZjU3NzM2MzJlZDI1OGZlMDI3NjY3MzU5OWRhNmZjZTM1Y2RhZDc3MjZhMGJiMDI0Y2FkOTk2Yjg4ZTBjYjk4ODU0Y2ViNWMwYjZlYzc0OGQ5ZjljZTZhNmNkNDM3ODU4YmFjYjgxNDYxOGEyNzJmZjNhNDE1YzZlMDdmM2RiMDk4ODc3N2ZkZWM4NDVhOTdiZjdkMTAyZGQwIgogCiBQS0NTNyBQYXJzZSBGYWlsdXJlIEludmFsaWQgQVNOMTogQ2hhbmdlIGxlbmd0aCBmcm9tIDUgdG8gNiAjMTIwLjAKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBwa2NzN19hc24xX2ZhaWw6IjMwODIwNTAwMDYwOTJhODY0ODg2ZjcwZDAxMDcwMmEwODIwNGYxMzA4MjA0ZWQwMjAxMDEzMTBmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwYjA2MDkyYTg2NDg4NmY3MGQwMTA3MDFhMDgyMDM0ZDMwODIwMzQ5MzA4MjAyMzFhMDAzMDIwMTAyMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA2NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEzMDFlMTcwZDMyMzIzMTMwMzIzODMxMzYzMTMwMzUzNjVhMTcwZDMyMzMzMTMwMzIzODMxMzYzMTMwMzUzNjVhMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMzA4MjAxMjIzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwMzgyMDEwZjAwMzA4MjAxMGEwMjgyMDEwMTAwYzhiNmNmNjk4OTljZDFmMGViYjRjYTY0NWMwNWU3MGUwZDJlZmVkZGNjNjFkMDg5Y2JkNTE1YTM5YTM1NzliOTIzNDNiNjFlYzc1MDA2MGZiNGVkMzc4NzYzMzI0MDBlNDI1ZjFkMzc2YzdlNzVjMjk3MzMxNGVkZjRiYjMwYzhmOGRkMDNiOWZjZmY5NTVhMjQ1ZDQ5MTM3YWQ2ZTYwMDU2Y2FjMTk1NTJhODY1ZDUyMTg3MTg3Y2MwNDJjOWM0OWUzZTNhOWMxN2E1MzRiNDUzY2RhYmMwY2IxMTNiNGY2M2Y1YjMxNzRiOWVlOTkwMmIxOTEwZDExNDk2YTI3OWE3NDMyNmFkY2ZlZTEwYmZkOWU3ZWJhZmJiMzc3YmU5YjYzOTU5MTY1ZDEzZGQ1NzUxMTcxY2FkYWQzYzFkM2FkYWM2OGJjODAxMWQ2MWI1NGNmNjAxNzhiZTM2ODM5YTg5YWM5MWFiNDE5ZTNjYTM3ZDZiYTg4MWQyNTUxOGM0ZGI2OGJjYTZmN2M4MzYwMmY2OTlhODZiMTdmYjFlNzczYmNiZTc0YmI5M2E0OWIyNTFhZTg2NDI4YjU3NDBlMTg2OGJiMWQ2ZmFiOWUyODcxMmU5OGVjMzE5YWQ4ZmNhNGQ3MzAxMGM0YjA5YzRiODA0NTg5NjFlN2NmMDgzNTMwMjAzMDEwMDAxYTM1MzMwNTEzMDFkMDYwMzU1MWQwZTA0MTYwNDE0OGFlZWU1OTQ3Y2M2N2M1ZGQ1MTVhNzZlMmE3ZWNkMzFlZTUyZmRjODMwMWYwNjAzNTUxZDIzMDQxODMwMTY4MDE0OGFlZWU1OTQ3Y2M2N2M1ZGQ1MTVhNzZlMmE3ZWNkMzFlZTUyZmRjODMwMGYwNjAzNTUxZDEzMDEwMWZmMDQwNTMwMDMwMTAxZmYzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAwMzgyMDEwMTAwODIxZDZiOThjZDQ1N2RlYmQyYjA4MWFjYTI3ZWJlY2Q0ZjkzYWNjODI4NDQzYjM5ZWFiZmZhOWZhNGU5ZTQ1NDNiNDZmY2MzMWUyYjViNDgxNzc5MDNkZWE2OTY5YWM0YTJjYzY1NzA2NTAzOTBmMWIwOGQ0M2E0YzJmOTc1YzdlZDhiZjMzNTZjNzIxODM4MDIxMjQ1MWE4ZjExZGU0NjU1M2NiY2Q2NWI0MjU0ZGRiOGY2NjgzNGViMjFkZGEyYThmMzNiNTgxZTE0ODQ1NTdhY2ExYjk0ZWU4OTMxZGRmMTYwMzdiN2E3MTcxMzIxYTkxOTM2YWZjMjdmZmNlMzk1ZGU3NWQ1ZjcwY2I4YjVhZWUwNWZmNTA3MDg4ZDY1YWYxZTQzOTY2Y2Q0MmNiZTZmN2ZhY2Y4ZGFlMDU1ZGQ4MjIyYjE2OTY1MjE3MjNmODEyNDUxNzg1OTVjOTg1YWU5MTdmZDRiMzk5ODc3M2UxYTk3YjdiZDEwMDg1NDQ2ZjQyNTliY2MwOWE0NTQ5MjkyODJjMWI4OWI3MWVkNTg3YTc3NWUwYTNkNDUzNjM0MWY0NWRhZTk2OWU4MDZjOTZmZWZjNzEwNjc3NzZjMDJiYTIyMTIyYjkxOTliMTRjMGMyOGMwNDQ4NzUwOTA3MGI5N2YzZGQyZDZkOTcyNzMzMTgyMDE3NzMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTAyMTQ3YmRlZGRkMjQ0NGNkMWNkZmU1YzQxYTgxMDJjODliN2RmMmU2Y2JmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDA1YmVjZDg3MTk1YzFkZWZmOTBjMjRjOTEyNjliNTViM2YwNjliYzIyNWMzMjZjMzE0YzFhNTE3ODZmZmUxNGM4MzBiZTRlNGJjNzNjYmEzNmM5NzY3N2I0NDE2ODI3OWJlOTFlN2NkZjdjMTkzODZhZTIxODYyNzE5ZDEzYTNhMGZmZjA4MDNkNDYwOTYyZjJjZGE4MzcxNDg0ODczMjUyYzNkNzA1NGRiODE0M2UyYjA4MWEzODE2ZWQwODA0Y2E1MDk5YWU1ZmVjZTgzZDVjMmMzNzgzYjE5ODhiNGI0NmRjOTRlNTU1ODdhMTA3ZWExNTQ2YmYyMmQyOGEwOTdmNjUyYTQwNjZkYzI5NjUyNjkwNjlhZjJmNTE3NmJiOGNlOWNhNmQxMWY5Njc1N2YwMzIwNGY3NTY3MDM1ODdkMDBhZDQyNDc5NmM5MmZjN2FlYjZmNDk0NDMxOTk5ZWRhMzA5OTBlNGY1NzczNjMyZWQyNThmZTAyNzY2NzM1OTlkYTZmY2UzNWNkYWQ3NzI2YTBiYjAyNGNhZDk5NmI4OGUwY2I5ODg1NGNlYjVjMGI2ZWM3NDhkOWY5Y2U2YTZjZDQzNzg1OGJhY2I4MTQ2MThhMjcyZmYzYTQxNWM2ZTA3ZjNkYjA5ODg3NzdmZGVjODQ1YTk3YmY3ZDEwMmRkMCIKIAogUEtDUzcgUGFyc2UgRmFpbHVyZSBJbnZhbGlkIEFTTjE6IENoYW5nZSBsZW5ndGggZnJvbSA1IHRvIDQgIzEyMS4wCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NgogcGtjczdfYXNuMV9mYWlsOiIzMDgyMDUwMDA2MDkyYTg2NDg4NmY3MGQwMTA3MDJhMDgyMDRmMTMwODIwNGVkMDIwMTAxMzEwZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGIwNjA5MmE4NjQ4ODZmNzBkMDEwNzAxYTA4MjAzNGQzMDgyMDM0OTMwODIwMjMxYTAwMzAyMDEwMjAyMTQ3YmRlZGRkMjQ0NGNkMWNkZmU1YzQxYTgxMDJjODliN2RmMmU2Y2JmMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNDUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMzAxZTE3MGQzMjMyMzEzMDMyMzgzMTM2MzEzMDM1MzY1YTE3MGQzMjMzMzEzMDMyMzgzMTM2MzEzMDM1MzY1YTMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTMwODIwMTIyMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDM4MjAxMGYwMDMwODIwMTBhMDI4MjAxMDEwMGM4YjZjZjY5ODk5Y2QxZjBlYmI0Y2E2NDVjMDVlNzBlMGQyZWZlZGRjYzYxZDA4OWNiZDUxNWEzOWEzNTc5YjkyMzQzYjYxZWM3NTAwNjBmYjRlZDM3ODc2MzMyNDAwZTQyNWYxZDM3NmM3ZTc1YzI5NzMzMTRlZGY0YmIzMGM4ZjhkZDAzYjlmY2ZmOTU1YTI0NWQ0OTEzN2FkNmU2MDA1NmNhYzE5NTUyYTg2NWQ1MjE4NzE4N2NjMDQyYzljNDllM2UzYTljMTdhNTM0YjQ1M2NkYWJjMGNiMTEzYjRmNjNmNWIzMTc0YjllZTk5MDJiMTkxMGQxMTQ5NmEyNzlhNzQzMjZhZGNmZWUxMGJmZDllN2ViYWZiYjM3N2JlOWI2Mzk1OTE2NWQxM2RkNTc1MTE3MWNhZGFkM2MxZDNhZGFjNjhiYzgwMTFkNjFiNTRjZjYwMTc4YmUzNjgzOWE4OWFjOTFhYjQxOWUzY2EzN2Q2YmE4ODFkMjU1MThjNGRiNjhiY2E2ZjdjODM2MDJmNjk5YTg2YjE3ZmIxZTc3M2JjYmU3NGJiOTNhNDliMjUxYWU4NjQyOGI1NzQwZTE4NjhiYjFkNmZhYjllMjg3MTJlOThlYzMxOWFkOGZjYTRkNzMwMTBjNGIwOWM0YjgwNDU4OTYxZTdjZjA4MzUzMDIwMzAxMDAwMWEzNTMzMDUxMzAxZDA2MDM1NTFkMGUwNDE2MDQxNDhhZWVlNTk0N2NjNjdjNWRkNTE1YTc2ZTJhN2VjZDMxZWU1MmZkYzgzMDFmMDYwMzU1MWQyMzA0MTgzMDE2ODAxNDhhZWVlNTk0N2NjNjdjNWRkNTE1YTc2ZTJhN2VjZDMxZWU1MmZkYzgzMDBmMDYwMzU1MWQxMzAxMDFmZjA0MDUzMDAzMDEwMWZmMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMDM4MjAxMDEwMDgyMWQ2Yjk4Y2Q0NTdkZWJkMmIwODFhY2EyN2ViZWNkNGY5M2FjYzgyODQ0M2IzOWVhYmZmYTlmYTRlOWU0NTQzYjQ2ZmNjMzFlMmI1YjQ4MTc3OTAzZGVhNjk2OWFjNGEyY2M2NTcwNjUwMzkwZjFiMDhkNDNhNGMyZjk3NWM3ZWQ4YmYzMzU2YzcyMTgzODAyMTI0NTFhOGYxMWRlNDY1NTNjYmNkNjViNDI1NGRkYjhmNjY4MzRlYjIxZGRhMmE4ZjMzYjU4MWUxNDg0NTU3YWNhMWI5NGVlODkzMWRkZjE2MDM3YjdhNzE3MTMyMWE5MTkzNmFmYzI3ZmZjZTM5NWRlNzVkNWY3MGNiOGI1YWVlMDVmZjUwNzA4OGQ2NWFmMWU0Mzk2NmNkNDJjYmU2ZjdmYWNmOGRhZTA1NWRkODIyMmIxNjk2NTIxNzIzZjgxMjQ1MTc4NTk1Yzk4NWFlOTE3ZmQ0YjM5OTg3NzNlMWE5N2I3YmQxMDA4NTQ0NmY0MjU5YmNjMDlhNDU0OTI5MjgyYzFiODliNzFlZDU4N2E3NzVlMGEzZDQ1MzYzNDFmNDVkYWU5NjllODA2Yzk2ZmVmYzcxMDY3Nzc2YzAyYmEyMjEyMmI5MTk5YjE0YzBjMjhjMDQ0ODc1MDkwNzBiOTdmM2RkMmQ2ZDk3MjczMzE4MjAxNzczMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwNWJlY2Q4NzE5NWMxZGVmZjkwYzI0YzkxMjY5YjU1YjNmMDY5YmMyMjVjMzI2YzMxNGMxYTUxNzg2ZmZlMTRjODMwYmU0ZTRiYzczY2JhMzZjOTc2NzdiNDQxNjgyNzliZTkxZTdjZGY3YzE5Mzg2YWUyMTg2MjcxOWQxM2EzYTBmZmYwODAzZDQ2MDk2MmYyY2RhODM3MTQ4NDg3MzI1MmMzZDcwNTRkYjgxNDNlMmIwODFhMzgxNmVkMDgwNGNhNTA5OWFlNWZlY2U4M2Q1YzJjMzc4M2IxOTg4YjRiNDZkYzk0ZTU1NTg3YTEwN2VhMTU0NmJmMjJkMjhhMDk3ZjY1MmE0MDY2ZGMyOTY1MjY5MDY5YWYyZjUxNzZiYjhjZTljYTZkMTFmOTY3NTdmMDMyMDRmNzU2NzAzNTg3ZDAwYWQ0MjQ3OTZjOTJmYzdhZWI2ZjQ5NDQzMTk5OWVkYTMwOTkwZTRmNTc3MzYzMmVkMjU4ZmUwMjc2NjczNTk5ZGE2ZmNlMzVjZGFkNzcyNmEwYmIwMjRjYWQ5OTZiODhlMGNiOTg4NTRjZWI1YzBiNmVjNzQ4ZDlmOWNlNmE2Y2Q0Mzc4NThiYWNiODE0NjE4YTI3MmZmM2E0MTVjNmUwN2YzZGIwOTg4Nzc3ZmRlYzg0NWE5N2JmN2QxMDJkZDAiCiAKIFBLQ1M3IFBhcnNlIEZhaWx1cmUgSW52YWxpZCBBU04xOiBDaGFuZ2UgdGFnIDMxIHRvIDAyICMxMjIuMAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHBrY3M3X2FzbjFfZmFpbDoiMzA4MjA1MDAwNjA5MmE4NjQ4ODZmNzBkMDEwNzAyYTA4MjA0ZjEzMDgyMDRlZDAyMDEwMTMxMGYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBiMDYwOTJhODY0ODg2ZjcwZDAxMDcwMWEwODIwMzRkMzA4MjAzNDkzMDgyMDIzMWEwMDMwMjAxMDIwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MDIxNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTMwMWUxNzBkMzIzMjMxMzAzMjM4MzEzNjMxMzAzNTM2NWExNzBkMzIzMzMxMzAzMjM4MzEzNjMxMzAzNTM2NWEzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEzMDgyMDEyMjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDAzODIwMTBmMDAzMDgyMDEwYTAyODIwMTAxMDBjOGI2Y2Y2OTg5OWNkMWYwZWJiNGNhNjQ1YzA1ZTcwZTBkMmVmZWRkY2M2MWQwODljYmQ1MTVhMzlhMzU3OWI5MjM0M2I2MWVjNzUwMDYwZmI0ZWQzNzg3NjMzMjQwMGU0MjVmMWQzNzZjN2U3NWMyOTczMzE0ZWRmNGJiMzBjOGY4ZGQwM2I5ZmNmZjk1NWEyNDVkNDkxMzdhZDZlNjAwNTZjYWMxOTU1MmE4NjVkNTIxODcxODdjYzA0MmM5YzQ5ZTNlM2E5YzE3YTUzNGI0NTNjZGFiYzBjYjExM2I0ZjYzZjViMzE3NGI5ZWU5OTAyYjE5MTBkMTE0OTZhMjc5YTc0MzI2YWRjZmVlMTBiZmQ5ZTdlYmFmYmIzNzdiZTliNjM5NTkxNjVkMTNkZDU3NTExNzFjYWRhZDNjMWQzYWRhYzY4YmM4MDExZDYxYjU0Y2Y2MDE3OGJlMzY4MzlhODlhYzkxYWI0MTllM2NhMzdkNmJhODgxZDI1NTE4YzRkYjY4YmNhNmY3YzgzNjAyZjY5OWE4NmIxN2ZiMWU3NzNiY2JlNzRiYjkzYTQ5YjI1MWFlODY0MjhiNTc0MGUxODY4YmIxZDZmYWI5ZTI4NzEyZTk4ZWMzMTlhZDhmY2E0ZDczMDEwYzRiMDljNGI4MDQ1ODk2MWU3Y2YwODM1MzAyMDMwMTAwMDFhMzUzMzA1MTMwMWQwNjAzNTUxZDBlMDQxNjA0MTQ4YWVlZTU5NDdjYzY3YzVkZDUxNWE3NmUyYTdlY2QzMWVlNTJmZGM4MzAxZjA2MDM1NTFkMjMwNDE4MzAxNjgwMTQ4YWVlZTU5NDdjYzY3YzVkZDUxNWE3NmUyYTdlY2QzMWVlNTJmZGM4MzAwZjA2MDM1NTFkMTMwMTAxZmYwNDA1MzAwMzAxMDFmZjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDAzODIwMTAxMDA4MjFkNmI5OGNkNDU3ZGViZDJiMDgxYWNhMjdlYmVjZDRmOTNhY2M4Mjg0NDNiMzllYWJmZmE5ZmE0ZTllNDU0M2I0NmZjYzMxZTJiNWI0ODE3NzkwM2RlYTY5NjlhYzRhMmNjNjU3MDY1MDM5MGYxYjA4ZDQzYTRjMmY5NzVjN2VkOGJmMzM1NmM3MjE4MzgwMjEyNDUxYThmMTFkZTQ2NTUzY2JjZDY1YjQyNTRkZGI4ZjY2ODM0ZWIyMWRkYTJhOGYzM2I1ODFlMTQ4NDU1N2FjYTFiOTRlZTg5MzFkZGYxNjAzN2I3YTcxNzEzMjFhOTE5MzZhZmMyN2ZmY2UzOTVkZTc1ZDVmNzBjYjhiNWFlZTA1ZmY1MDcwODhkNjVhZjFlNDM5NjZjZDQyY2JlNmY3ZmFjZjhkYWUwNTVkZDgyMjJiMTY5NjUyMTcyM2Y4MTI0NTE3ODU5NWM5ODVhZTkxN2ZkNGIzOTk4NzczZTFhOTdiN2JkMTAwODU0NDZmNDI1OWJjYzA5YTQ1NDkyOTI4MmMxYjg5YjcxZWQ1ODdhNzc1ZTBhM2Q0NTM2MzQxZjQ1ZGFlOTY5ZTgwNmM5NmZlZmM3MTA2Nzc3NmMwMmJhMjIxMjJiOTE5OWIxNGMwYzI4YzA0NDg3NTA5MDcwYjk3ZjNkZDJkNmQ5NzI3MzMxODIwMTc3MzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDViZWNkODcxOTVjMWRlZmY5MGMyNGM5MTI2OWI1NWIzZjA2OWJjMjI1YzMyNmMzMTRjMWE1MTc4NmZmZTE0YzgzMGJlNGU0YmM3M2NiYTM2Yzk3Njc3YjQ0MTY4Mjc5YmU5MWU3Y2RmN2MxOTM4NmFlMjE4NjI3MTlkMTNhM2EwZmZmMDgwM2Q0NjA5NjJmMmNkYTgzNzE0ODQ4NzMyNTJjM2Q3MDU0ZGI4MTQzZTJiMDgxYTM4MTZlZDA4MDRjYTUwOTlhZTVmZWNlODNkNWMyYzM3ODNiMTk4OGI0YjQ2ZGM5NGU1NTU4N2ExMDdlYTE1NDZiZjIyZDI4YTA5N2Y2NTJhNDA2NmRjMjk2NTI2OTA2OWFmMmY1MTc2YmI4Y2U5Y2E2ZDExZjk2NzU3ZjAzMjA0Zjc1NjcwMzU4N2QwMGFkNDI0Nzk2YzkyZmM3YWViNmY0OTQ0MzE5OTllZGEzMDk5MGU0ZjU3NzM2MzJlZDI1OGZlMDI3NjY3MzU5OWRhNmZjZTM1Y2RhZDc3MjZhMGJiMDI0Y2FkOTk2Yjg4ZTBjYjk4ODU0Y2ViNWMwYjZlYzc0OGQ5ZjljZTZhNmNkNDM3ODU4YmFjYjgxNDYxOGEyNzJmZjNhNDE1YzZlMDdmM2RiMDk4ODc3N2ZkZWM4NDVhOTdiZjdkMTAyZGQwIgogCiBQS0NTNyBQYXJzZSBGYWlsdXJlIEludmFsaWQgQVNOMTogQ2hhbmdlIGxlbmd0aCBmcm9tIDIxIHRvIDIyICMxMjMuMAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHBrY3M3X2FzbjFfZmFpbDoiMzA4MjA1MDAwNjA5MmE4NjQ4ODZmNzBkMDEwNzAyYTA4MjA0ZjEzMDgyMDRlZDAyMDEwMTMxMGYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBiMDYwOTJhODY0ODg2ZjcwZDAxMDcwMWEwODIwMzRkMzA4MjAzNDkzMDgyMDIzMWEwMDMwMjAxMDIwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNjMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTMwMWUxNzBkMzIzMjMxMzAzMjM4MzEzNjMxMzAzNTM2NWExNzBkMzIzMzMxMzAzMjM4MzEzNjMxMzAzNTM2NWEzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEzMDgyMDEyMjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDAzODIwMTBmMDAzMDgyMDEwYTAyODIwMTAxMDBjOGI2Y2Y2OTg5OWNkMWYwZWJiNGNhNjQ1YzA1ZTcwZTBkMmVmZWRkY2M2MWQwODljYmQ1MTVhMzlhMzU3OWI5MjM0M2I2MWVjNzUwMDYwZmI0ZWQzNzg3NjMzMjQwMGU0MjVmMWQzNzZjN2U3NWMyOTczMzE0ZWRmNGJiMzBjOGY4ZGQwM2I5ZmNmZjk1NWEyNDVkNDkxMzdhZDZlNjAwNTZjYWMxOTU1MmE4NjVkNTIxODcxODdjYzA0MmM5YzQ5ZTNlM2E5YzE3YTUzNGI0NTNjZGFiYzBjYjExM2I0ZjYzZjViMzE3NGI5ZWU5OTAyYjE5MTBkMTE0OTZhMjc5YTc0MzI2YWRjZmVlMTBiZmQ5ZTdlYmFmYmIzNzdiZTliNjM5NTkxNjVkMTNkZDU3NTExNzFjYWRhZDNjMWQzYWRhYzY4YmM4MDExZDYxYjU0Y2Y2MDE3OGJlMzY4MzlhODlhYzkxYWI0MTllM2NhMzdkNmJhODgxZDI1NTE4YzRkYjY4YmNhNmY3YzgzNjAyZjY5OWE4NmIxN2ZiMWU3NzNiY2JlNzRiYjkzYTQ5YjI1MWFlODY0MjhiNTc0MGUxODY4YmIxZDZmYWI5ZTI4NzEyZTk4ZWMzMTlhZDhmY2E0ZDczMDEwYzRiMDljNGI4MDQ1ODk2MWU3Y2YwODM1MzAyMDMwMTAwMDFhMzUzMzA1MTMwMWQwNjAzNTUxZDBlMDQxNjA0MTQ4YWVlZTU5NDdjYzY3YzVkZDUxNWE3NmUyYTdlY2QzMWVlNTJmZGM4MzAxZjA2MDM1NTFkMjMwNDE4MzAxNjgwMTQ4YWVlZTU5NDdjYzY3YzVkZDUxNWE3NmUyYTdlY2QzMWVlNTJmZGM4MzAwZjA2MDM1NTFkMTMwMTAxZmYwNDA1MzAwMzAxMDFmZjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDAzODIwMTAxMDA4MjFkNmI5OGNkNDU3ZGViZDJiMDgxYWNhMjdlYmVjZDRmOTNhY2M4Mjg0NDNiMzllYWJmZmE5ZmE0ZTllNDU0M2I0NmZjYzMxZTJiNWI0ODE3NzkwM2RlYTY5NjlhYzRhMmNjNjU3MDY1MDM5MGYxYjA4ZDQzYTRjMmY5NzVjN2VkOGJmMzM1NmM3MjE4MzgwMjEyNDUxYThmMTFkZTQ2NTUzY2JjZDY1YjQyNTRkZGI4ZjY2ODM0ZWIyMWRkYTJhOGYzM2I1ODFlMTQ4NDU1N2FjYTFiOTRlZTg5MzFkZGYxNjAzN2I3YTcxNzEzMjFhOTE5MzZhZmMyN2ZmY2UzOTVkZTc1ZDVmNzBjYjhiNWFlZTA1ZmY1MDcwODhkNjVhZjFlNDM5NjZjZDQyY2JlNmY3ZmFjZjhkYWUwNTVkZDgyMjJiMTY5NjUyMTcyM2Y4MTI0NTE3ODU5NWM5ODVhZTkxN2ZkNGIzOTk4NzczZTFhOTdiN2JkMTAwODU0NDZmNDI1OWJjYzA5YTQ1NDkyOTI4MmMxYjg5YjcxZWQ1ODdhNzc1ZTBhM2Q0NTM2MzQxZjQ1ZGFlOTY5ZTgwNmM5NmZlZmM3MTA2Nzc3NmMwMmJhMjIxMjJiOTE5OWIxNGMwYzI4YzA0NDg3NTA5MDcwYjk3ZjNkZDJkNmQ5NzI3MzMxODIwMTc3MzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDViZWNkODcxOTVjMWRlZmY5MGMyNGM5MTI2OWI1NWIzZjA2OWJjMjI1YzMyNmMzMTRjMWE1MTc4NmZmZTE0YzgzMGJlNGU0YmM3M2NiYTM2Yzk3Njc3YjQ0MTY4Mjc5YmU5MWU3Y2RmN2MxOTM4NmFlMjE4NjI3MTlkMTNhM2EwZmZmMDgwM2Q0NjA5NjJmMmNkYTgzNzE0ODQ4NzMyNTJjM2Q3MDU0ZGI4MTQzZTJiMDgxYTM4MTZlZDA4MDRjYTUwOTlhZTVmZWNlODNkNWMyYzM3ODNiMTk4OGI0YjQ2ZGM5NGU1NTU4N2ExMDdlYTE1NDZiZjIyZDI4YTA5N2Y2NTJhNDA2NmRjMjk2NTI2OTA2OWFmMmY1MTc2YmI4Y2U5Y2E2ZDExZjk2NzU3ZjAzMjA0Zjc1NjcwMzU4N2QwMGFkNDI0Nzk2YzkyZmM3YWViNmY0OTQ0MzE5OTllZGEzMDk5MGU0ZjU3NzM2MzJlZDI1OGZlMDI3NjY3MzU5OWRhNmZjZTM1Y2RhZDc3MjZhMGJiMDI0Y2FkOTk2Yjg4ZTBjYjk4ODU0Y2ViNWMwYjZlYzc0OGQ5ZjljZTZhNmNkNDM3ODU4YmFjYjgxNDYxOGEyNzJmZjNhNDE1YzZlMDdmM2RiMDk4ODc3N2ZkZWM4NDVhOTdiZjdkMTAyZGQwIgogCiBQS0NTNyBQYXJzZSBGYWlsdXJlIEludmFsaWQgQVNOMTogQ2hhbmdlIGNvbnRlbnRzIG9mIHRhZyAzMSB0byBjb250YWluIG9uZSB1bmFjY291bnRlZCBleHRyYSBieXRlICMxMjQuMAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHBrY3M3X2FzbjFfZmFpbDoiMzA4MjA1MDAwNjA5MmE4NjQ4ODZmNzBkMDEwNzAyYTA4MjA0ZjEzMDgyMDRlZDAyMDEwMTMxMGYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBiMDYwOTJhODY0ODg2ZjcwZDAxMDcwMWEwODIwMzRkMzA4MjAzNDkzMDgyMDIzMWEwMDMwMjAxMDIwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNjMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTAwMzAxZTE3MGQzMjMyMzEzMDMyMzgzMTM2MzEzMDM1MzY1YTE3MGQzMjMzMzEzMDMyMzgzMTM2MzEzMDM1MzY1YTMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTMwODIwMTIyMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDM4MjAxMGYwMDMwODIwMTBhMDI4MjAxMDEwMGM4YjZjZjY5ODk5Y2QxZjBlYmI0Y2E2NDVjMDVlNzBlMGQyZWZlZGRjYzYxZDA4OWNiZDUxNWEzOWEzNTc5YjkyMzQzYjYxZWM3NTAwNjBmYjRlZDM3ODc2MzMyNDAwZTQyNWYxZDM3NmM3ZTc1YzI5NzMzMTRlZGY0YmIzMGM4ZjhkZDAzYjlmY2ZmOTU1YTI0NWQ0OTEzN2FkNmU2MDA1NmNhYzE5NTUyYTg2NWQ1MjE4NzE4N2NjMDQyYzljNDllM2UzYTljMTdhNTM0YjQ1M2NkYWJjMGNiMTEzYjRmNjNmNWIzMTc0YjllZTk5MDJiMTkxMGQxMTQ5NmEyNzlhNzQzMjZhZGNmZWUxMGJmZDllN2ViYWZiYjM3N2JlOWI2Mzk1OTE2NWQxM2RkNTc1MTE3MWNhZGFkM2MxZDNhZGFjNjhiYzgwMTFkNjFiNTRjZjYwMTc4YmUzNjgzOWE4OWFjOTFhYjQxOWUzY2EzN2Q2YmE4ODFkMjU1MThjNGRiNjhiY2E2ZjdjODM2MDJmNjk5YTg2YjE3ZmIxZTc3M2JjYmU3NGJiOTNhNDliMjUxYWU4NjQyOGI1NzQwZTE4NjhiYjFkNmZhYjllMjg3MTJlOThlYzMxOWFkOGZjYTRkNzMwMTBjNGIwOWM0YjgwNDU4OTYxZTdjZjA4MzUzMDIwMzAxMDAwMWEzNTMzMDUxMzAxZDA2MDM1NTFkMGUwNDE2MDQxNDhhZWVlNTk0N2NjNjdjNWRkNTE1YTc2ZTJhN2VjZDMxZWU1MmZkYzgzMDFmMDYwMzU1MWQyMzA0MTgzMDE2ODAxNDhhZWVlNTk0N2NjNjdjNWRkNTE1YTc2ZTJhN2VjZDMxZWU1MmZkYzgzMDBmMDYwMzU1MWQxMzAxMDFmZjA0MDUzMDAzMDEwMWZmMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMDM4MjAxMDEwMDgyMWQ2Yjk4Y2Q0NTdkZWJkMmIwODFhY2EyN2ViZWNkNGY5M2FjYzgyODQ0M2IzOWVhYmZmYTlmYTRlOWU0NTQzYjQ2ZmNjMzFlMmI1YjQ4MTc3OTAzZGVhNjk2OWFjNGEyY2M2NTcwNjUwMzkwZjFiMDhkNDNhNGMyZjk3NWM3ZWQ4YmYzMzU2YzcyMTgzODAyMTI0NTFhOGYxMWRlNDY1NTNjYmNkNjViNDI1NGRkYjhmNjY4MzRlYjIxZGRhMmE4ZjMzYjU4MWUxNDg0NTU3YWNhMWI5NGVlODkzMWRkZjE2MDM3YjdhNzE3MTMyMWE5MTkzNmFmYzI3ZmZjZTM5NWRlNzVkNWY3MGNiOGI1YWVlMDVmZjUwNzA4OGQ2NWFmMWU0Mzk2NmNkNDJjYmU2ZjdmYWNmOGRhZTA1NWRkODIyMmIxNjk2NTIxNzIzZjgxMjQ1MTc4NTk1Yzk4NWFlOTE3ZmQ0YjM5OTg3NzNlMWE5N2I3YmQxMDA4NTQ0NmY0MjU5YmNjMDlhNDU0OTI5MjgyYzFiODliNzFlZDU4N2E3NzVlMGEzZDQ1MzYzNDFmNDVkYWU5NjllODA2Yzk2ZmVmYzcxMDY3Nzc2YzAyYmEyMjEyMmI5MTk5YjE0YzBjMjhjMDQ0ODc1MDkwNzBiOTdmM2RkMmQ2ZDk3MjczMzE4MjAxNzczMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwNWJlY2Q4NzE5NWMxZGVmZjkwYzI0YzkxMjY5YjU1YjNmMDY5YmMyMjVjMzI2YzMxNGMxYTUxNzg2ZmZlMTRjODMwYmU0ZTRiYzczY2JhMzZjOTc2NzdiNDQxNjgyNzliZTkxZTdjZGY3YzE5Mzg2YWUyMTg2MjcxOWQxM2EzYTBmZmYwODAzZDQ2MDk2MmYyY2RhODM3MTQ4NDg3MzI1MmMzZDcwNTRkYjgxNDNlMmIwODFhMzgxNmVkMDgwNGNhNTA5OWFlNWZlY2U4M2Q1YzJjMzc4M2IxOTg4YjRiNDZkYzk0ZTU1NTg3YTEwN2VhMTU0NmJmMjJkMjhhMDk3ZjY1MmE0MDY2ZGMyOTY1MjY5MDY5YWYyZjUxNzZiYjhjZTljYTZkMTFmOTY3NTdmMDMyMDRmNzU2NzAzNTg3ZDAwYWQ0MjQ3OTZjOTJmYzdhZWI2ZjQ5NDQzMTk5OWVkYTMwOTkwZTRmNTc3MzYzMmVkMjU4ZmUwMjc2NjczNTk5ZGE2ZmNlMzVjZGFkNzcyNmEwYmIwMjRjYWQ5OTZiODhlMGNiOTg4NTRjZWI1YzBiNmVjNzQ4ZDlmOWNlNmE2Y2Q0Mzc4NThiYWNiODE0NjE4YTI3MmZmM2E0MTVjNmUwN2YzZGIwOTg4Nzc3ZmRlYzg0NWE5N2JmN2QxMDJkZDAiCiAKIFBLQ1M3IFBhcnNlIEZhaWx1cmUgSW52YWxpZCBBU04xOiBDaGFuZ2UgbGVuZ3RoIGZyb20gMjEgdG8gMjAgIzEyNS4wCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NgogcGtjczdfYXNuMV9mYWlsOiIzMDgyMDUwMDA2MDkyYTg2NDg4NmY3MGQwMTA3MDJhMDgyMDRmMTMwODIwNGVkMDIwMTAxMzEwZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGIwNjA5MmE4NjQ4ODZmNzBkMDEwNzAxYTA4MjAzNGQzMDgyMDM0OTMwODIwMjMxYTAwMzAyMDEwMjAyMTQ3YmRlZGRkMjQ0NGNkMWNkZmU1YzQxYTgxMDJjODliN2RmMmU2Y2JmMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE0MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMzAxZTE3MGQzMjMyMzEzMDMyMzgzMTM2MzEzMDM1MzY1YTE3MGQzMjMzMzEzMDMyMzgzMTM2MzEzMDM1MzY1YTMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTMwODIwMTIyMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDM4MjAxMGYwMDMwODIwMTBhMDI4MjAxMDEwMGM4YjZjZjY5ODk5Y2QxZjBlYmI0Y2E2NDVjMDVlNzBlMGQyZWZlZGRjYzYxZDA4OWNiZDUxNWEzOWEzNTc5YjkyMzQzYjYxZWM3NTAwNjBmYjRlZDM3ODc2MzMyNDAwZTQyNWYxZDM3NmM3ZTc1YzI5NzMzMTRlZGY0YmIzMGM4ZjhkZDAzYjlmY2ZmOTU1YTI0NWQ0OTEzN2FkNmU2MDA1NmNhYzE5NTUyYTg2NWQ1MjE4NzE4N2NjMDQyYzljNDllM2UzYTljMTdhNTM0YjQ1M2NkYWJjMGNiMTEzYjRmNjNmNWIzMTc0YjllZTk5MDJiMTkxMGQxMTQ5NmEyNzlhNzQzMjZhZGNmZWUxMGJmZDllN2ViYWZiYjM3N2JlOWI2Mzk1OTE2NWQxM2RkNTc1MTE3MWNhZGFkM2MxZDNhZGFjNjhiYzgwMTFkNjFiNTRjZjYwMTc4YmUzNjgzOWE4OWFjOTFhYjQxOWUzY2EzN2Q2YmE4ODFkMjU1MThjNGRiNjhiY2E2ZjdjODM2MDJmNjk5YTg2YjE3ZmIxZTc3M2JjYmU3NGJiOTNhNDliMjUxYWU4NjQyOGI1NzQwZTE4NjhiYjFkNmZhYjllMjg3MTJlOThlYzMxOWFkOGZjYTRkNzMwMTBjNGIwOWM0YjgwNDU4OTYxZTdjZjA4MzUzMDIwMzAxMDAwMWEzNTMzMDUxMzAxZDA2MDM1NTFkMGUwNDE2MDQxNDhhZWVlNTk0N2NjNjdjNWRkNTE1YTc2ZTJhN2VjZDMxZWU1MmZkYzgzMDFmMDYwMzU1MWQyMzA0MTgzMDE2ODAxNDhhZWVlNTk0N2NjNjdjNWRkNTE1YTc2ZTJhN2VjZDMxZWU1MmZkYzgzMDBmMDYwMzU1MWQxMzAxMDFmZjA0MDUzMDAzMDEwMWZmMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMDM4MjAxMDEwMDgyMWQ2Yjk4Y2Q0NTdkZWJkMmIwODFhY2EyN2ViZWNkNGY5M2FjYzgyODQ0M2IzOWVhYmZmYTlmYTRlOWU0NTQzYjQ2ZmNjMzFlMmI1YjQ4MTc3OTAzZGVhNjk2OWFjNGEyY2M2NTcwNjUwMzkwZjFiMDhkNDNhNGMyZjk3NWM3ZWQ4YmYzMzU2YzcyMTgzODAyMTI0NTFhOGYxMWRlNDY1NTNjYmNkNjViNDI1NGRkYjhmNjY4MzRlYjIxZGRhMmE4ZjMzYjU4MWUxNDg0NTU3YWNhMWI5NGVlODkzMWRkZjE2MDM3YjdhNzE3MTMyMWE5MTkzNmFmYzI3ZmZjZTM5NWRlNzVkNWY3MGNiOGI1YWVlMDVmZjUwNzA4OGQ2NWFmMWU0Mzk2NmNkNDJjYmU2ZjdmYWNmOGRhZTA1NWRkODIyMmIxNjk2NTIxNzIzZjgxMjQ1MTc4NTk1Yzk4NWFlOTE3ZmQ0YjM5OTg3NzNlMWE5N2I3YmQxMDA4NTQ0NmY0MjU5YmNjMDlhNDU0OTI5MjgyYzFiODliNzFlZDU4N2E3NzVlMGEzZDQ1MzYzNDFmNDVkYWU5NjllODA2Yzk2ZmVmYzcxMDY3Nzc2YzAyYmEyMjEyMmI5MTk5YjE0YzBjMjhjMDQ0ODc1MDkwNzBiOTdmM2RkMmQ2ZDk3MjczMzE4MjAxNzczMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwNWJlY2Q4NzE5NWMxZGVmZjkwYzI0YzkxMjY5YjU1YjNmMDY5YmMyMjVjMzI2YzMxNGMxYTUxNzg2ZmZlMTRjODMwYmU0ZTRiYzczY2JhMzZjOTc2NzdiNDQxNjgyNzliZTkxZTdjZGY3YzE5Mzg2YWUyMTg2MjcxOWQxM2EzYTBmZmYwODAzZDQ2MDk2MmYyY2RhODM3MTQ4NDg3MzI1MmMzZDcwNTRkYjgxNDNlMmIwODFhMzgxNmVkMDgwNGNhNTA5OWFlNWZlY2U4M2Q1YzJjMzc4M2IxOTg4YjRiNDZkYzk0ZTU1NTg3YTEwN2VhMTU0NmJmMjJkMjhhMDk3ZjY1MmE0MDY2ZGMyOTY1MjY5MDY5YWYyZjUxNzZiYjhjZTljYTZkMTFmOTY3NTdmMDMyMDRmNzU2NzAzNTg3ZDAwYWQ0MjQ3OTZjOTJmYzdhZWI2ZjQ5NDQzMTk5OWVkYTMwOTkwZTRmNTc3MzYzMmVkMjU4ZmUwMjc2NjczNTk5ZGE2ZmNlMzVjZGFkNzcyNmEwYmIwMjRjYWQ5OTZiODhlMGNiOTg4NTRjZWI1YzBiNmVjNzQ4ZDlmOWNlNmE2Y2Q0Mzc4NThiYWNiODE0NjE4YTI3MmZmM2E0MTVjNmUwN2YzZGIwOTg4Nzc3ZmRlYzg0NWE5N2JmN2QxMDJkZDAiCiAKIFBLQ1M3IFBhcnNlIEZhaWx1cmUgSW52YWxpZCBBU04xOiBDaGFuZ2UgdGFnIDMwIHRvIDAyICMxMjYuMAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHBrY3M3X2FzbjFfZmFpbDoiMzA4MjA1MDAwNjA5MmE4NjQ4ODZmNzBkMDEwNzAyYTA4MjA0ZjEzMDgyMDRlZDAyMDEwMTMxMGYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBiMDYwOTJhODY0ODg2ZjcwZDAxMDcwMWEwODIwMzRkMzA4MjAzNDkzMDgyMDIzMWEwMDMwMjAxMDIwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTAyMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTMwMWUxNzBkMzIzMjMxMzAzMjM4MzEzNjMxMzAzNTM2NWExNzBkMzIzMzMxMzAzMjM4MzEzNjMxMzAzNTM2NWEzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEzMDgyMDEyMjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDAzODIwMTBmMDAzMDgyMDEwYTAyODIwMTAxMDBjOGI2Y2Y2OTg5OWNkMWYwZWJiNGNhNjQ1YzA1ZTcwZTBkMmVmZWRkY2M2MWQwODljYmQ1MTVhMzlhMzU3OWI5MjM0M2I2MWVjNzUwMDYwZmI0ZWQzNzg3NjMzMjQwMGU0MjVmMWQzNzZjN2U3NWMyOTczMzE0ZWRmNGJiMzBjOGY4ZGQwM2I5ZmNmZjk1NWEyNDVkNDkxMzdhZDZlNjAwNTZjYWMxOTU1MmE4NjVkNTIxODcxODdjYzA0MmM5YzQ5ZTNlM2E5YzE3YTUzNGI0NTNjZGFiYzBjYjExM2I0ZjYzZjViMzE3NGI5ZWU5OTAyYjE5MTBkMTE0OTZhMjc5YTc0MzI2YWRjZmVlMTBiZmQ5ZTdlYmFmYmIzNzdiZTliNjM5NTkxNjVkMTNkZDU3NTExNzFjYWRhZDNjMWQzYWRhYzY4YmM4MDExZDYxYjU0Y2Y2MDE3OGJlMzY4MzlhODlhYzkxYWI0MTllM2NhMzdkNmJhODgxZDI1NTE4YzRkYjY4YmNhNmY3YzgzNjAyZjY5OWE4NmIxN2ZiMWU3NzNiY2JlNzRiYjkzYTQ5YjI1MWFlODY0MjhiNTc0MGUxODY4YmIxZDZmYWI5ZTI4NzEyZTk4ZWMzMTlhZDhmY2E0ZDczMDEwYzRiMDljNGI4MDQ1ODk2MWU3Y2YwODM1MzAyMDMwMTAwMDFhMzUzMzA1MTMwMWQwNjAzNTUxZDBlMDQxNjA0MTQ4YWVlZTU5NDdjYzY3YzVkZDUxNWE3NmUyYTdlY2QzMWVlNTJmZGM4MzAxZjA2MDM1NTFkMjMwNDE4MzAxNjgwMTQ4YWVlZTU5NDdjYzY3YzVkZDUxNWE3NmUyYTdlY2QzMWVlNTJmZGM4MzAwZjA2MDM1NTFkMTMwMTAxZmYwNDA1MzAwMzAxMDFmZjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDAzODIwMTAxMDA4MjFkNmI5OGNkNDU3ZGViZDJiMDgxYWNhMjdlYmVjZDRmOTNhY2M4Mjg0NDNiMzllYWJmZmE5ZmE0ZTllNDU0M2I0NmZjYzMxZTJiNWI0ODE3NzkwM2RlYTY5NjlhYzRhMmNjNjU3MDY1MDM5MGYxYjA4ZDQzYTRjMmY5NzVjN2VkOGJmMzM1NmM3MjE4MzgwMjEyNDUxYThmMTFkZTQ2NTUzY2JjZDY1YjQyNTRkZGI4ZjY2ODM0ZWIyMWRkYTJhOGYzM2I1ODFlMTQ4NDU1N2FjYTFiOTRlZTg5MzFkZGYxNjAzN2I3YTcxNzEzMjFhOTE5MzZhZmMyN2ZmY2UzOTVkZTc1ZDVmNzBjYjhiNWFlZTA1ZmY1MDcwODhkNjVhZjFlNDM5NjZjZDQyY2JlNmY3ZmFjZjhkYWUwNTVkZDgyMjJiMTY5NjUyMTcyM2Y4MTI0NTE3ODU5NWM5ODVhZTkxN2ZkNGIzOTk4NzczZTFhOTdiN2JkMTAwODU0NDZmNDI1OWJjYzA5YTQ1NDkyOTI4MmMxYjg5YjcxZWQ1ODdhNzc1ZTBhM2Q0NTM2MzQxZjQ1ZGFlOTY5ZTgwNmM5NmZlZmM3MTA2Nzc3NmMwMmJhMjIxMjJiOTE5OWIxNGMwYzI4YzA0NDg3NTA5MDcwYjk3ZjNkZDJkNmQ5NzI3MzMxODIwMTc3MzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDViZWNkODcxOTVjMWRlZmY5MGMyNGM5MTI2OWI1NWIzZjA2OWJjMjI1YzMyNmMzMTRjMWE1MTc4NmZmZTE0YzgzMGJlNGU0YmM3M2NiYTM2Yzk3Njc3YjQ0MTY4Mjc5YmU5MWU3Y2RmN2MxOTM4NmFlMjE4NjI3MTlkMTNhM2EwZmZmMDgwM2Q0NjA5NjJmMmNkYTgzNzE0ODQ4NzMyNTJjM2Q3MDU0ZGI4MTQzZTJiMDgxYTM4MTZlZDA4MDRjYTUwOTlhZTVmZWNlODNkNWMyYzM3ODNiMTk4OGI0YjQ2ZGM5NGU1NTU4N2ExMDdlYTE1NDZiZjIyZDI4YTA5N2Y2NTJhNDA2NmRjMjk2NTI2OTA2OWFmMmY1MTc2YmI4Y2U5Y2E2ZDExZjk2NzU3ZjAzMjA0Zjc1NjcwMzU4N2QwMGFkNDI0Nzk2YzkyZmM3YWViNmY0OTQ0MzE5OTllZGEzMDk5MGU0ZjU3NzM2MzJlZDI1OGZlMDI3NjY3MzU5OWRhNmZjZTM1Y2RhZDc3MjZhMGJiMDI0Y2FkOTk2Yjg4ZTBjYjk4ODU0Y2ViNWMwYjZlYzc0OGQ5ZjljZTZhNmNkNDM3ODU4YmFjYjgxNDYxOGEyNzJmZjNhNDE1YzZlMDdmM2RiMDk4ODc3N2ZkZWM4NDVhOTdiZjdkMTAyZGQwIgogCiBQS0NTNyBQYXJzZSBGYWlsdXJlIEludmFsaWQgQVNOMTogQ2hhbmdlIGxlbmd0aCBmcm9tIDE5IHRvIDIwICMxMjcuMAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHBrY3M3X2FzbjFfZmFpbDoiMzA4MjA1MDAwNjA5MmE4NjQ4ODZmNzBkMDEwNzAyYTA4MjA0ZjEzMDgyMDRlZDAyMDEwMTMxMGYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBiMDYwOTJhODY0ODg2ZjcwZDAxMDcwMWEwODIwMzRkMzA4MjAzNDkzMDgyMDIzMWEwMDMwMjAxMDIwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTQwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTMwMWUxNzBkMzIzMjMxMzAzMjM4MzEzNjMxMzAzNTM2NWExNzBkMzIzMzMxMzAzMjM4MzEzNjMxMzAzNTM2NWEzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEzMDgyMDEyMjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDAzODIwMTBmMDAzMDgyMDEwYTAyODIwMTAxMDBjOGI2Y2Y2OTg5OWNkMWYwZWJiNGNhNjQ1YzA1ZTcwZTBkMmVmZWRkY2M2MWQwODljYmQ1MTVhMzlhMzU3OWI5MjM0M2I2MWVjNzUwMDYwZmI0ZWQzNzg3NjMzMjQwMGU0MjVmMWQzNzZjN2U3NWMyOTczMzE0ZWRmNGJiMzBjOGY4ZGQwM2I5ZmNmZjk1NWEyNDVkNDkxMzdhZDZlNjAwNTZjYWMxOTU1MmE4NjVkNTIxODcxODdjYzA0MmM5YzQ5ZTNlM2E5YzE3YTUzNGI0NTNjZGFiYzBjYjExM2I0ZjYzZjViMzE3NGI5ZWU5OTAyYjE5MTBkMTE0OTZhMjc5YTc0MzI2YWRjZmVlMTBiZmQ5ZTdlYmFmYmIzNzdiZTliNjM5NTkxNjVkMTNkZDU3NTExNzFjYWRhZDNjMWQzYWRhYzY4YmM4MDExZDYxYjU0Y2Y2MDE3OGJlMzY4MzlhODlhYzkxYWI0MTllM2NhMzdkNmJhODgxZDI1NTE4YzRkYjY4YmNhNmY3YzgzNjAyZjY5OWE4NmIxN2ZiMWU3NzNiY2JlNzRiYjkzYTQ5YjI1MWFlODY0MjhiNTc0MGUxODY4YmIxZDZmYWI5ZTI4NzEyZTk4ZWMzMTlhZDhmY2E0ZDczMDEwYzRiMDljNGI4MDQ1ODk2MWU3Y2YwODM1MzAyMDMwMTAwMDFhMzUzMzA1MTMwMWQwNjAzNTUxZDBlMDQxNjA0MTQ4YWVlZTU5NDdjYzY3YzVkZDUxNWE3NmUyYTdlY2QzMWVlNTJmZGM4MzAxZjA2MDM1NTFkMjMwNDE4MzAxNjgwMTQ4YWVlZTU5NDdjYzY3YzVkZDUxNWE3NmUyYTdlY2QzMWVlNTJmZGM4MzAwZjA2MDM1NTFkMTMwMTAxZmYwNDA1MzAwMzAxMDFmZjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDAzODIwMTAxMDA4MjFkNmI5OGNkNDU3ZGViZDJiMDgxYWNhMjdlYmVjZDRmOTNhY2M4Mjg0NDNiMzllYWJmZmE5ZmE0ZTllNDU0M2I0NmZjYzMxZTJiNWI0ODE3NzkwM2RlYTY5NjlhYzRhMmNjNjU3MDY1MDM5MGYxYjA4ZDQzYTRjMmY5NzVjN2VkOGJmMzM1NmM3MjE4MzgwMjEyNDUxYThmMTFkZTQ2NTUzY2JjZDY1YjQyNTRkZGI4ZjY2ODM0ZWIyMWRkYTJhOGYzM2I1ODFlMTQ4NDU1N2FjYTFiOTRlZTg5MzFkZGYxNjAzN2I3YTcxNzEzMjFhOTE5MzZhZmMyN2ZmY2UzOTVkZTc1ZDVmNzBjYjhiNWFlZTA1ZmY1MDcwODhkNjVhZjFlNDM5NjZjZDQyY2JlNmY3ZmFjZjhkYWUwNTVkZDgyMjJiMTY5NjUyMTcyM2Y4MTI0NTE3ODU5NWM5ODVhZTkxN2ZkNGIzOTk4NzczZTFhOTdiN2JkMTAwODU0NDZmNDI1OWJjYzA5YTQ1NDkyOTI4MmMxYjg5YjcxZWQ1ODdhNzc1ZTBhM2Q0NTM2MzQxZjQ1ZGFlOTY5ZTgwNmM5NmZlZmM3MTA2Nzc3NmMwMmJhMjIxMjJiOTE5OWIxNGMwYzI4YzA0NDg3NTA5MDcwYjk3ZjNkZDJkNmQ5NzI3MzMxODIwMTc3MzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDViZWNkODcxOTVjMWRlZmY5MGMyNGM5MTI2OWI1NWIzZjA2OWJjMjI1YzMyNmMzMTRjMWE1MTc4NmZmZTE0YzgzMGJlNGU0YmM3M2NiYTM2Yzk3Njc3YjQ0MTY4Mjc5YmU5MWU3Y2RmN2MxOTM4NmFlMjE4NjI3MTlkMTNhM2EwZmZmMDgwM2Q0NjA5NjJmMmNkYTgzNzE0ODQ4NzMyNTJjM2Q3MDU0ZGI4MTQzZTJiMDgxYTM4MTZlZDA4MDRjYTUwOTlhZTVmZWNlODNkNWMyYzM3ODNiMTk4OGI0YjQ2ZGM5NGU1NTU4N2ExMDdlYTE1NDZiZjIyZDI4YTA5N2Y2NTJhNDA2NmRjMjk2NTI2OTA2OWFmMmY1MTc2YmI4Y2U5Y2E2ZDExZjk2NzU3ZjAzMjA0Zjc1NjcwMzU4N2QwMGFkNDI0Nzk2YzkyZmM3YWViNmY0OTQ0MzE5OTllZGEzMDk5MGU0ZjU3NzM2MzJlZDI1OGZlMDI3NjY3MzU5OWRhNmZjZTM1Y2RhZDc3MjZhMGJiMDI0Y2FkOTk2Yjg4ZTBjYjk4ODU0Y2ViNWMwYjZlYzc0OGQ5ZjljZTZhNmNkNDM3ODU4YmFjYjgxNDYxOGEyNzJmZjNhNDE1YzZlMDdmM2RiMDk4ODc3N2ZkZWM4NDVhOTdiZjdkMTAyZGQwIgogCiBQS0NTNyBQYXJzZSBGYWlsdXJlIEludmFsaWQgQVNOMTogQ2hhbmdlIGNvbnRlbnRzIG9mIHRhZyAzMCB0byBjb250YWluIG9uZSB1bmFjY291bnRlZCBleHRyYSBieXRlICMxMjguMAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHBrY3M3X2FzbjFfZmFpbDoiMzA4MjA1MDAwNjA5MmE4NjQ4ODZmNzBkMDEwNzAyYTA4MjA0ZjEzMDgyMDRlZDAyMDEwMTMxMGYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBiMDYwOTJhODY0ODg2ZjcwZDAxMDcwMWEwODIwMzRkMzA4MjAzNDkzMDgyMDIzMWEwMDMwMjAxMDIwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTQwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTAwMzAxZTE3MGQzMjMyMzEzMDMyMzgzMTM2MzEzMDM1MzY1YTE3MGQzMjMzMzEzMDMyMzgzMTM2MzEzMDM1MzY1YTMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTMwODIwMTIyMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDM4MjAxMGYwMDMwODIwMTBhMDI4MjAxMDEwMGM4YjZjZjY5ODk5Y2QxZjBlYmI0Y2E2NDVjMDVlNzBlMGQyZWZlZGRjYzYxZDA4OWNiZDUxNWEzOWEzNTc5YjkyMzQzYjYxZWM3NTAwNjBmYjRlZDM3ODc2MzMyNDAwZTQyNWYxZDM3NmM3ZTc1YzI5NzMzMTRlZGY0YmIzMGM4ZjhkZDAzYjlmY2ZmOTU1YTI0NWQ0OTEzN2FkNmU2MDA1NmNhYzE5NTUyYTg2NWQ1MjE4NzE4N2NjMDQyYzljNDllM2UzYTljMTdhNTM0YjQ1M2NkYWJjMGNiMTEzYjRmNjNmNWIzMTc0YjllZTk5MDJiMTkxMGQxMTQ5NmEyNzlhNzQzMjZhZGNmZWUxMGJmZDllN2ViYWZiYjM3N2JlOWI2Mzk1OTE2NWQxM2RkNTc1MTE3MWNhZGFkM2MxZDNhZGFjNjhiYzgwMTFkNjFiNTRjZjYwMTc4YmUzNjgzOWE4OWFjOTFhYjQxOWUzY2EzN2Q2YmE4ODFkMjU1MThjNGRiNjhiY2E2ZjdjODM2MDJmNjk5YTg2YjE3ZmIxZTc3M2JjYmU3NGJiOTNhNDliMjUxYWU4NjQyOGI1NzQwZTE4NjhiYjFkNmZhYjllMjg3MTJlOThlYzMxOWFkOGZjYTRkNzMwMTBjNGIwOWM0YjgwNDU4OTYxZTdjZjA4MzUzMDIwMzAxMDAwMWEzNTMzMDUxMzAxZDA2MDM1NTFkMGUwNDE2MDQxNDhhZWVlNTk0N2NjNjdjNWRkNTE1YTc2ZTJhN2VjZDMxZWU1MmZkYzgzMDFmMDYwMzU1MWQyMzA0MTgzMDE2ODAxNDhhZWVlNTk0N2NjNjdjNWRkNTE1YTc2ZTJhN2VjZDMxZWU1MmZkYzgzMDBmMDYwMzU1MWQxMzAxMDFmZjA0MDUzMDAzMDEwMWZmMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMDM4MjAxMDEwMDgyMWQ2Yjk4Y2Q0NTdkZWJkMmIwODFhY2EyN2ViZWNkNGY5M2FjYzgyODQ0M2IzOWVhYmZmYTlmYTRlOWU0NTQzYjQ2ZmNjMzFlMmI1YjQ4MTc3OTAzZGVhNjk2OWFjNGEyY2M2NTcwNjUwMzkwZjFiMDhkNDNhNGMyZjk3NWM3ZWQ4YmYzMzU2YzcyMTgzODAyMTI0NTFhOGYxMWRlNDY1NTNjYmNkNjViNDI1NGRkYjhmNjY4MzRlYjIxZGRhMmE4ZjMzYjU4MWUxNDg0NTU3YWNhMWI5NGVlODkzMWRkZjE2MDM3YjdhNzE3MTMyMWE5MTkzNmFmYzI3ZmZjZTM5NWRlNzVkNWY3MGNiOGI1YWVlMDVmZjUwNzA4OGQ2NWFmMWU0Mzk2NmNkNDJjYmU2ZjdmYWNmOGRhZTA1NWRkODIyMmIxNjk2NTIxNzIzZjgxMjQ1MTc4NTk1Yzk4NWFlOTE3ZmQ0YjM5OTg3NzNlMWE5N2I3YmQxMDA4NTQ0NmY0MjU5YmNjMDlhNDU0OTI5MjgyYzFiODliNzFlZDU4N2E3NzVlMGEzZDQ1MzYzNDFmNDVkYWU5NjllODA2Yzk2ZmVmYzcxMDY3Nzc2YzAyYmEyMjEyMmI5MTk5YjE0YzBjMjhjMDQ0ODc1MDkwNzBiOTdmM2RkMmQ2ZDk3MjczMzE4MjAxNzczMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwNWJlY2Q4NzE5NWMxZGVmZjkwYzI0YzkxMjY5YjU1YjNmMDY5YmMyMjVjMzI2YzMxNGMxYTUxNzg2ZmZlMTRjODMwYmU0ZTRiYzczY2JhMzZjOTc2NzdiNDQxNjgyNzliZTkxZTdjZGY3YzE5Mzg2YWUyMTg2MjcxOWQxM2EzYTBmZmYwODAzZDQ2MDk2MmYyY2RhODM3MTQ4NDg3MzI1MmMzZDcwNTRkYjgxNDNlMmIwODFhMzgxNmVkMDgwNGNhNTA5OWFlNWZlY2U4M2Q1YzJjMzc4M2IxOTg4YjRiNDZkYzk0ZTU1NTg3YTEwN2VhMTU0NmJmMjJkMjhhMDk3ZjY1MmE0MDY2ZGMyOTY1MjY5MDY5YWYyZjUxNzZiYjhjZTljYTZkMTFmOTY3NTdmMDMyMDRmNzU2NzAzNTg3ZDAwYWQ0MjQ3OTZjOTJmYzdhZWI2ZjQ5NDQzMTk5OWVkYTMwOTkwZTRmNTc3MzYzMmVkMjU4ZmUwMjc2NjczNTk5ZGE2ZmNlMzVjZGFkNzcyNmEwYmIwMjRjYWQ5OTZiODhlMGNiOTg4NTRjZWI1YzBiNmVjNzQ4ZDlmOWNlNmE2Y2Q0Mzc4NThiYWNiODE0NjE4YTI3MmZmM2E0MTVjNmUwN2YzZGIwOTg4Nzc3ZmRlYzg0NWE5N2JmN2QxMDJkZDAiCiAKIFBLQ1M3IFBhcnNlIEZhaWx1cmUgSW52YWxpZCBBU04xOiBDaGFuZ2UgbGVuZ3RoIGZyb20gMTkgdG8gMTggIzEyOS4wCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NgogcGtjczdfYXNuMV9mYWlsOiIzMDgyMDUwMDA2MDkyYTg2NDg4NmY3MGQwMTA3MDJhMDgyMDRmMTMwODIwNGVkMDIwMTAxMzEwZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGIwNjA5MmE4NjQ4ODZmNzBkMDEwNzAxYTA4MjAzNGQzMDgyMDM0OTMwODIwMjMxYTAwMzAyMDEwMjAyMTQ3YmRlZGRkMjQ0NGNkMWNkZmU1YzQxYTgxMDJjODliN2RmMmU2Y2JmMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMjA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMzAxZTE3MGQzMjMyMzEzMDMyMzgzMTM2MzEzMDM1MzY1YTE3MGQzMjMzMzEzMDMyMzgzMTM2MzEzMDM1MzY1YTMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTMwODIwMTIyMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDM4MjAxMGYwMDMwODIwMTBhMDI4MjAxMDEwMGM4YjZjZjY5ODk5Y2QxZjBlYmI0Y2E2NDVjMDVlNzBlMGQyZWZlZGRjYzYxZDA4OWNiZDUxNWEzOWEzNTc5YjkyMzQzYjYxZWM3NTAwNjBmYjRlZDM3ODc2MzMyNDAwZTQyNWYxZDM3NmM3ZTc1YzI5NzMzMTRlZGY0YmIzMGM4ZjhkZDAzYjlmY2ZmOTU1YTI0NWQ0OTEzN2FkNmU2MDA1NmNhYzE5NTUyYTg2NWQ1MjE4NzE4N2NjMDQyYzljNDllM2UzYTljMTdhNTM0YjQ1M2NkYWJjMGNiMTEzYjRmNjNmNWIzMTc0YjllZTk5MDJiMTkxMGQxMTQ5NmEyNzlhNzQzMjZhZGNmZWUxMGJmZDllN2ViYWZiYjM3N2JlOWI2Mzk1OTE2NWQxM2RkNTc1MTE3MWNhZGFkM2MxZDNhZGFjNjhiYzgwMTFkNjFiNTRjZjYwMTc4YmUzNjgzOWE4OWFjOTFhYjQxOWUzY2EzN2Q2YmE4ODFkMjU1MThjNGRiNjhiY2E2ZjdjODM2MDJmNjk5YTg2YjE3ZmIxZTc3M2JjYmU3NGJiOTNhNDliMjUxYWU4NjQyOGI1NzQwZTE4NjhiYjFkNmZhYjllMjg3MTJlOThlYzMxOWFkOGZjYTRkNzMwMTBjNGIwOWM0YjgwNDU4OTYxZTdjZjA4MzUzMDIwMzAxMDAwMWEzNTMzMDUxMzAxZDA2MDM1NTFkMGUwNDE2MDQxNDhhZWVlNTk0N2NjNjdjNWRkNTE1YTc2ZTJhN2VjZDMxZWU1MmZkYzgzMDFmMDYwMzU1MWQyMzA0MTgzMDE2ODAxNDhhZWVlNTk0N2NjNjdjNWRkNTE1YTc2ZTJhN2VjZDMxZWU1MmZkYzgzMDBmMDYwMzU1MWQxMzAxMDFmZjA0MDUzMDAzMDEwMWZmMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMDM4MjAxMDEwMDgyMWQ2Yjk4Y2Q0NTdkZWJkMmIwODFhY2EyN2ViZWNkNGY5M2FjYzgyODQ0M2IzOWVhYmZmYTlmYTRlOWU0NTQzYjQ2ZmNjMzFlMmI1YjQ4MTc3OTAzZGVhNjk2OWFjNGEyY2M2NTcwNjUwMzkwZjFiMDhkNDNhNGMyZjk3NWM3ZWQ4YmYzMzU2YzcyMTgzODAyMTI0NTFhOGYxMWRlNDY1NTNjYmNkNjViNDI1NGRkYjhmNjY4MzRlYjIxZGRhMmE4ZjMzYjU4MWUxNDg0NTU3YWNhMWI5NGVlODkzMWRkZjE2MDM3YjdhNzE3MTMyMWE5MTkzNmFmYzI3ZmZjZTM5NWRlNzVkNWY3MGNiOGI1YWVlMDVmZjUwNzA4OGQ2NWFmMWU0Mzk2NmNkNDJjYmU2ZjdmYWNmOGRhZTA1NWRkODIyMmIxNjk2NTIxNzIzZjgxMjQ1MTc4NTk1Yzk4NWFlOTE3ZmQ0YjM5OTg3NzNlMWE5N2I3YmQxMDA4NTQ0NmY0MjU5YmNjMDlhNDU0OTI5MjgyYzFiODliNzFlZDU4N2E3NzVlMGEzZDQ1MzYzNDFmNDVkYWU5NjllODA2Yzk2ZmVmYzcxMDY3Nzc2YzAyYmEyMjEyMmI5MTk5YjE0YzBjMjhjMDQ0ODc1MDkwNzBiOTdmM2RkMmQ2ZDk3MjczMzE4MjAxNzczMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwNWJlY2Q4NzE5NWMxZGVmZjkwYzI0YzkxMjY5YjU1YjNmMDY5YmMyMjVjMzI2YzMxNGMxYTUxNzg2ZmZlMTRjODMwYmU0ZTRiYzczY2JhMzZjOTc2NzdiNDQxNjgyNzliZTkxZTdjZGY3YzE5Mzg2YWUyMTg2MjcxOWQxM2EzYTBmZmYwODAzZDQ2MDk2MmYyY2RhODM3MTQ4NDg3MzI1MmMzZDcwNTRkYjgxNDNlMmIwODFhMzgxNmVkMDgwNGNhNTA5OWFlNWZlY2U4M2Q1YzJjMzc4M2IxOTg4YjRiNDZkYzk0ZTU1NTg3YTEwN2VhMTU0NmJmMjJkMjhhMDk3ZjY1MmE0MDY2ZGMyOTY1MjY5MDY5YWYyZjUxNzZiYjhjZTljYTZkMTFmOTY3NTdmMDMyMDRmNzU2NzAzNTg3ZDAwYWQ0MjQ3OTZjOTJmYzdhZWI2ZjQ5NDQzMTk5OWVkYTMwOTkwZTRmNTc3MzYzMmVkMjU4ZmUwMjc2NjczNTk5ZGE2ZmNlMzVjZGFkNzcyNmEwYmIwMjRjYWQ5OTZiODhlMGNiOTg4NTRjZWI1YzBiNmVjNzQ4ZDlmOWNlNmE2Y2Q0Mzc4NThiYWNiODE0NjE4YTI3MmZmM2E0MTVjNmUwN2YzZGIwOTg4Nzc3ZmRlYzg0NWE5N2JmN2QxMDJkZDAiCiAKIFBLQ1M3IFBhcnNlIEZhaWx1cmUgSW52YWxpZCBBU04xOiBDaGFuZ2UgdGFnIDA2IHRvIDAyICMxMzAuMAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHBrY3M3X2FzbjFfZmFpbDoiMzA4MjA1MDAwNjA5MmE4NjQ4ODZmNzBkMDEwNzAyYTA4MjA0ZjEzMDgyMDRlZDAyMDEwMTMxMGYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBiMDYwOTJhODY0ODg2ZjcwZDAxMDcwMWEwODIwMzRkMzA4MjAzNDkzMDgyMDIzMWEwMDMwMjAxMDIwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwMjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTMwMWUxNzBkMzIzMjMxMzAzMjM4MzEzNjMxMzAzNTM2NWExNzBkMzIzMzMxMzAzMjM4MzEzNjMxMzAzNTM2NWEzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEzMDgyMDEyMjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDAzODIwMTBmMDAzMDgyMDEwYTAyODIwMTAxMDBjOGI2Y2Y2OTg5OWNkMWYwZWJiNGNhNjQ1YzA1ZTcwZTBkMmVmZWRkY2M2MWQwODljYmQ1MTVhMzlhMzU3OWI5MjM0M2I2MWVjNzUwMDYwZmI0ZWQzNzg3NjMzMjQwMGU0MjVmMWQzNzZjN2U3NWMyOTczMzE0ZWRmNGJiMzBjOGY4ZGQwM2I5ZmNmZjk1NWEyNDVkNDkxMzdhZDZlNjAwNTZjYWMxOTU1MmE4NjVkNTIxODcxODdjYzA0MmM5YzQ5ZTNlM2E5YzE3YTUzNGI0NTNjZGFiYzBjYjExM2I0ZjYzZjViMzE3NGI5ZWU5OTAyYjE5MTBkMTE0OTZhMjc5YTc0MzI2YWRjZmVlMTBiZmQ5ZTdlYmFmYmIzNzdiZTliNjM5NTkxNjVkMTNkZDU3NTExNzFjYWRhZDNjMWQzYWRhYzY4YmM4MDExZDYxYjU0Y2Y2MDE3OGJlMzY4MzlhODlhYzkxYWI0MTllM2NhMzdkNmJhODgxZDI1NTE4YzRkYjY4YmNhNmY3YzgzNjAyZjY5OWE4NmIxN2ZiMWU3NzNiY2JlNzRiYjkzYTQ5YjI1MWFlODY0MjhiNTc0MGUxODY4YmIxZDZmYWI5ZTI4NzEyZTk4ZWMzMTlhZDhmY2E0ZDczMDEwYzRiMDljNGI4MDQ1ODk2MWU3Y2YwODM1MzAyMDMwMTAwMDFhMzUzMzA1MTMwMWQwNjAzNTUxZDBlMDQxNjA0MTQ4YWVlZTU5NDdjYzY3YzVkZDUxNWE3NmUyYTdlY2QzMWVlNTJmZGM4MzAxZjA2MDM1NTFkMjMwNDE4MzAxNjgwMTQ4YWVlZTU5NDdjYzY3YzVkZDUxNWE3NmUyYTdlY2QzMWVlNTJmZGM4MzAwZjA2MDM1NTFkMTMwMTAxZmYwNDA1MzAwMzAxMDFmZjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDAzODIwMTAxMDA4MjFkNmI5OGNkNDU3ZGViZDJiMDgxYWNhMjdlYmVjZDRmOTNhY2M4Mjg0NDNiMzllYWJmZmE5ZmE0ZTllNDU0M2I0NmZjYzMxZTJiNWI0ODE3NzkwM2RlYTY5NjlhYzRhMmNjNjU3MDY1MDM5MGYxYjA4ZDQzYTRjMmY5NzVjN2VkOGJmMzM1NmM3MjE4MzgwMjEyNDUxYThmMTFkZTQ2NTUzY2JjZDY1YjQyNTRkZGI4ZjY2ODM0ZWIyMWRkYTJhOGYzM2I1ODFlMTQ4NDU1N2FjYTFiOTRlZTg5MzFkZGYxNjAzN2I3YTcxNzEzMjFhOTE5MzZhZmMyN2ZmY2UzOTVkZTc1ZDVmNzBjYjhiNWFlZTA1ZmY1MDcwODhkNjVhZjFlNDM5NjZjZDQyY2JlNmY3ZmFjZjhkYWUwNTVkZDgyMjJiMTY5NjUyMTcyM2Y4MTI0NTE3ODU5NWM5ODVhZTkxN2ZkNGIzOTk4NzczZTFhOTdiN2JkMTAwODU0NDZmNDI1OWJjYzA5YTQ1NDkyOTI4MmMxYjg5YjcxZWQ1ODdhNzc1ZTBhM2Q0NTM2MzQxZjQ1ZGFlOTY5ZTgwNmM5NmZlZmM3MTA2Nzc3NmMwMmJhMjIxMjJiOTE5OWIxNGMwYzI4YzA0NDg3NTA5MDcwYjk3ZjNkZDJkNmQ5NzI3MzMxODIwMTc3MzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDViZWNkODcxOTVjMWRlZmY5MGMyNGM5MTI2OWI1NWIzZjA2OWJjMjI1YzMyNmMzMTRjMWE1MTc4NmZmZTE0YzgzMGJlNGU0YmM3M2NiYTM2Yzk3Njc3YjQ0MTY4Mjc5YmU5MWU3Y2RmN2MxOTM4NmFlMjE4NjI3MTlkMTNhM2EwZmZmMDgwM2Q0NjA5NjJmMmNkYTgzNzE0ODQ4NzMyNTJjM2Q3MDU0ZGI4MTQzZTJiMDgxYTM4MTZlZDA4MDRjYTUwOTlhZTVmZWNlODNkNWMyYzM3ODNiMTk4OGI0YjQ2ZGM5NGU1NTU4N2ExMDdlYTE1NDZiZjIyZDI4YTA5N2Y2NTJhNDA2NmRjMjk2NTI2OTA2OWFmMmY1MTc2YmI4Y2U5Y2E2ZDExZjk2NzU3ZjAzMjA0Zjc1NjcwMzU4N2QwMGFkNDI0Nzk2YzkyZmM3YWViNmY0OTQ0MzE5OTllZGEzMDk5MGU0ZjU3NzM2MzJlZDI1OGZlMDI3NjY3MzU5OWRhNmZjZTM1Y2RhZDc3MjZhMGJiMDI0Y2FkOTk2Yjg4ZTBjYjk4ODU0Y2ViNWMwYjZlYzc0OGQ5ZjljZTZhNmNkNDM3ODU4YmFjYjgxNDYxOGEyNzJmZjNhNDE1YzZlMDdmM2RiMDk4ODc3N2ZkZWM4NDVhOTdiZjdkMTAyZGQwIgogCiBQS0NTNyBQYXJzZSBGYWlsdXJlIEludmFsaWQgQVNOMTogQ2hhbmdlIGxlbmd0aCBmcm9tIDMgdG8gNCAjMTMxLjAKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBwa2NzN19hc24xX2ZhaWw6IjMwODIwNTAwMDYwOTJhODY0ODg2ZjcwZDAxMDcwMmEwODIwNGYxMzA4MjA0ZWQwMjAxMDEzMTBmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwYjA2MDkyYTg2NDg4NmY3MGQwMTA3MDFhMDgyMDM0ZDMwODIwMzQ5MzA4MjAyMzFhMDAzMDIwMTAyMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwNDU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEzMDFlMTcwZDMyMzIzMTMwMzIzODMxMzYzMTMwMzUzNjVhMTcwZDMyMzMzMTMwMzIzODMxMzYzMTMwMzUzNjVhMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMzA4MjAxMjIzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwMzgyMDEwZjAwMzA4MjAxMGEwMjgyMDEwMTAwYzhiNmNmNjk4OTljZDFmMGViYjRjYTY0NWMwNWU3MGUwZDJlZmVkZGNjNjFkMDg5Y2JkNTE1YTM5YTM1NzliOTIzNDNiNjFlYzc1MDA2MGZiNGVkMzc4NzYzMzI0MDBlNDI1ZjFkMzc2YzdlNzVjMjk3MzMxNGVkZjRiYjMwYzhmOGRkMDNiOWZjZmY5NTVhMjQ1ZDQ5MTM3YWQ2ZTYwMDU2Y2FjMTk1NTJhODY1ZDUyMTg3MTg3Y2MwNDJjOWM0OWUzZTNhOWMxN2E1MzRiNDUzY2RhYmMwY2IxMTNiNGY2M2Y1YjMxNzRiOWVlOTkwMmIxOTEwZDExNDk2YTI3OWE3NDMyNmFkY2ZlZTEwYmZkOWU3ZWJhZmJiMzc3YmU5YjYzOTU5MTY1ZDEzZGQ1NzUxMTcxY2FkYWQzYzFkM2FkYWM2OGJjODAxMWQ2MWI1NGNmNjAxNzhiZTM2ODM5YTg5YWM5MWFiNDE5ZTNjYTM3ZDZiYTg4MWQyNTUxOGM0ZGI2OGJjYTZmN2M4MzYwMmY2OTlhODZiMTdmYjFlNzczYmNiZTc0YmI5M2E0OWIyNTFhZTg2NDI4YjU3NDBlMTg2OGJiMWQ2ZmFiOWUyODcxMmU5OGVjMzE5YWQ4ZmNhNGQ3MzAxMGM0YjA5YzRiODA0NTg5NjFlN2NmMDgzNTMwMjAzMDEwMDAxYTM1MzMwNTEzMDFkMDYwMzU1MWQwZTA0MTYwNDE0OGFlZWU1OTQ3Y2M2N2M1ZGQ1MTVhNzZlMmE3ZWNkMzFlZTUyZmRjODMwMWYwNjAzNTUxZDIzMDQxODMwMTY4MDE0OGFlZWU1OTQ3Y2M2N2M1ZGQ1MTVhNzZlMmE3ZWNkMzFlZTUyZmRjODMwMGYwNjAzNTUxZDEzMDEwMWZmMDQwNTMwMDMwMTAxZmYzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAwMzgyMDEwMTAwODIxZDZiOThjZDQ1N2RlYmQyYjA4MWFjYTI3ZWJlY2Q0ZjkzYWNjODI4NDQzYjM5ZWFiZmZhOWZhNGU5ZTQ1NDNiNDZmY2MzMWUyYjViNDgxNzc5MDNkZWE2OTY5YWM0YTJjYzY1NzA2NTAzOTBmMWIwOGQ0M2E0YzJmOTc1YzdlZDhiZjMzNTZjNzIxODM4MDIxMjQ1MWE4ZjExZGU0NjU1M2NiY2Q2NWI0MjU0ZGRiOGY2NjgzNGViMjFkZGEyYThmMzNiNTgxZTE0ODQ1NTdhY2ExYjk0ZWU4OTMxZGRmMTYwMzdiN2E3MTcxMzIxYTkxOTM2YWZjMjdmZmNlMzk1ZGU3NWQ1ZjcwY2I4YjVhZWUwNWZmNTA3MDg4ZDY1YWYxZTQzOTY2Y2Q0MmNiZTZmN2ZhY2Y4ZGFlMDU1ZGQ4MjIyYjE2OTY1MjE3MjNmODEyNDUxNzg1OTVjOTg1YWU5MTdmZDRiMzk5ODc3M2UxYTk3YjdiZDEwMDg1NDQ2ZjQyNTliY2MwOWE0NTQ5MjkyODJjMWI4OWI3MWVkNTg3YTc3NWUwYTNkNDUzNjM0MWY0NWRhZTk2OWU4MDZjOTZmZWZjNzEwNjc3NzZjMDJiYTIyMTIyYjkxOTliMTRjMGMyOGMwNDQ4NzUwOTA3MGI5N2YzZGQyZDZkOTcyNzMzMTgyMDE3NzMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTAyMTQ3YmRlZGRkMjQ0NGNkMWNkZmU1YzQxYTgxMDJjODliN2RmMmU2Y2JmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDA1YmVjZDg3MTk1YzFkZWZmOTBjMjRjOTEyNjliNTViM2YwNjliYzIyNWMzMjZjMzE0YzFhNTE3ODZmZmUxNGM4MzBiZTRlNGJjNzNjYmEzNmM5NzY3N2I0NDE2ODI3OWJlOTFlN2NkZjdjMTkzODZhZTIxODYyNzE5ZDEzYTNhMGZmZjA4MDNkNDYwOTYyZjJjZGE4MzcxNDg0ODczMjUyYzNkNzA1NGRiODE0M2UyYjA4MWEzODE2ZWQwODA0Y2E1MDk5YWU1ZmVjZTgzZDVjMmMzNzgzYjE5ODhiNGI0NmRjOTRlNTU1ODdhMTA3ZWExNTQ2YmYyMmQyOGEwOTdmNjUyYTQwNjZkYzI5NjUyNjkwNjlhZjJmNTE3NmJiOGNlOWNhNmQxMWY5Njc1N2YwMzIwNGY3NTY3MDM1ODdkMDBhZDQyNDc5NmM5MmZjN2FlYjZmNDk0NDMxOTk5ZWRhMzA5OTBlNGY1NzczNjMyZWQyNThmZTAyNzY2NzM1OTlkYTZmY2UzNWNkYWQ3NzI2YTBiYjAyNGNhZDk5NmI4OGUwY2I5ODg1NGNlYjVjMGI2ZWM3NDhkOWY5Y2U2YTZjZDQzNzg1OGJhY2I4MTQ2MThhMjcyZmYzYTQxNWM2ZTA3ZjNkYjA5ODg3NzdmZGVjODQ1YTk3YmY3ZDEwMmRkMCIKIAogUEtDUzcgUGFyc2UgRmFpbHVyZSBJbnZhbGlkIEFTTjE6IENoYW5nZSBsZW5ndGggZnJvbSAzIHRvIDIgIzEzMi4wCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NgogcGtjczdfYXNuMV9mYWlsOiIzMDgyMDUwMDA2MDkyYTg2NDg4NmY3MGQwMTA3MDJhMDgyMDRmMTMwODIwNGVkMDIwMTAxMzEwZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGIwNjA5MmE4NjQ4ODZmNzBkMDEwNzAxYTA4MjAzNGQzMDgyMDM0OTMwODIwMjMxYTAwMzAyMDEwMjAyMTQ3YmRlZGRkMjQ0NGNkMWNkZmU1YzQxYTgxMDJjODliN2RmMmU2Y2JmMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDI1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMzAxZTE3MGQzMjMyMzEzMDMyMzgzMTM2MzEzMDM1MzY1YTE3MGQzMjMzMzEzMDMyMzgzMTM2MzEzMDM1MzY1YTMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTMwODIwMTIyMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDM4MjAxMGYwMDMwODIwMTBhMDI4MjAxMDEwMGM4YjZjZjY5ODk5Y2QxZjBlYmI0Y2E2NDVjMDVlNzBlMGQyZWZlZGRjYzYxZDA4OWNiZDUxNWEzOWEzNTc5YjkyMzQzYjYxZWM3NTAwNjBmYjRlZDM3ODc2MzMyNDAwZTQyNWYxZDM3NmM3ZTc1YzI5NzMzMTRlZGY0YmIzMGM4ZjhkZDAzYjlmY2ZmOTU1YTI0NWQ0OTEzN2FkNmU2MDA1NmNhYzE5NTUyYTg2NWQ1MjE4NzE4N2NjMDQyYzljNDllM2UzYTljMTdhNTM0YjQ1M2NkYWJjMGNiMTEzYjRmNjNmNWIzMTc0YjllZTk5MDJiMTkxMGQxMTQ5NmEyNzlhNzQzMjZhZGNmZWUxMGJmZDllN2ViYWZiYjM3N2JlOWI2Mzk1OTE2NWQxM2RkNTc1MTE3MWNhZGFkM2MxZDNhZGFjNjhiYzgwMTFkNjFiNTRjZjYwMTc4YmUzNjgzOWE4OWFjOTFhYjQxOWUzY2EzN2Q2YmE4ODFkMjU1MThjNGRiNjhiY2E2ZjdjODM2MDJmNjk5YTg2YjE3ZmIxZTc3M2JjYmU3NGJiOTNhNDliMjUxYWU4NjQyOGI1NzQwZTE4NjhiYjFkNmZhYjllMjg3MTJlOThlYzMxOWFkOGZjYTRkNzMwMTBjNGIwOWM0YjgwNDU4OTYxZTdjZjA4MzUzMDIwMzAxMDAwMWEzNTMzMDUxMzAxZDA2MDM1NTFkMGUwNDE2MDQxNDhhZWVlNTk0N2NjNjdjNWRkNTE1YTc2ZTJhN2VjZDMxZWU1MmZkYzgzMDFmMDYwMzU1MWQyMzA0MTgzMDE2ODAxNDhhZWVlNTk0N2NjNjdjNWRkNTE1YTc2ZTJhN2VjZDMxZWU1MmZkYzgzMDBmMDYwMzU1MWQxMzAxMDFmZjA0MDUzMDAzMDEwMWZmMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMDM4MjAxMDEwMDgyMWQ2Yjk4Y2Q0NTdkZWJkMmIwODFhY2EyN2ViZWNkNGY5M2FjYzgyODQ0M2IzOWVhYmZmYTlmYTRlOWU0NTQzYjQ2ZmNjMzFlMmI1YjQ4MTc3OTAzZGVhNjk2OWFjNGEyY2M2NTcwNjUwMzkwZjFiMDhkNDNhNGMyZjk3NWM3ZWQ4YmYzMzU2YzcyMTgzODAyMTI0NTFhOGYxMWRlNDY1NTNjYmNkNjViNDI1NGRkYjhmNjY4MzRlYjIxZGRhMmE4ZjMzYjU4MWUxNDg0NTU3YWNhMWI5NGVlODkzMWRkZjE2MDM3YjdhNzE3MTMyMWE5MTkzNmFmYzI3ZmZjZTM5NWRlNzVkNWY3MGNiOGI1YWVlMDVmZjUwNzA4OGQ2NWFmMWU0Mzk2NmNkNDJjYmU2ZjdmYWNmOGRhZTA1NWRkODIyMmIxNjk2NTIxNzIzZjgxMjQ1MTc4NTk1Yzk4NWFlOTE3ZmQ0YjM5OTg3NzNlMWE5N2I3YmQxMDA4NTQ0NmY0MjU5YmNjMDlhNDU0OTI5MjgyYzFiODliNzFlZDU4N2E3NzVlMGEzZDQ1MzYzNDFmNDVkYWU5NjllODA2Yzk2ZmVmYzcxMDY3Nzc2YzAyYmEyMjEyMmI5MTk5YjE0YzBjMjhjMDQ0ODc1MDkwNzBiOTdmM2RkMmQ2ZDk3MjczMzE4MjAxNzczMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwNWJlY2Q4NzE5NWMxZGVmZjkwYzI0YzkxMjY5YjU1YjNmMDY5YmMyMjVjMzI2YzMxNGMxYTUxNzg2ZmZlMTRjODMwYmU0ZTRiYzczY2JhMzZjOTc2NzdiNDQxNjgyNzliZTkxZTdjZGY3YzE5Mzg2YWUyMTg2MjcxOWQxM2EzYTBmZmYwODAzZDQ2MDk2MmYyY2RhODM3MTQ4NDg3MzI1MmMzZDcwNTRkYjgxNDNlMmIwODFhMzgxNmVkMDgwNGNhNTA5OWFlNWZlY2U4M2Q1YzJjMzc4M2IxOTg4YjRiNDZkYzk0ZTU1NTg3YTEwN2VhMTU0NmJmMjJkMjhhMDk3ZjY1MmE0MDY2ZGMyOTY1MjY5MDY5YWYyZjUxNzZiYjhjZTljYTZkMTFmOTY3NTdmMDMyMDRmNzU2NzAzNTg3ZDAwYWQ0MjQ3OTZjOTJmYzdhZWI2ZjQ5NDQzMTk5OWVkYTMwOTkwZTRmNTc3MzYzMmVkMjU4ZmUwMjc2NjczNTk5ZGE2ZmNlMzVjZGFkNzcyNmEwYmIwMjRjYWQ5OTZiODhlMGNiOTg4NTRjZWI1YzBiNmVjNzQ4ZDlmOWNlNmE2Y2Q0Mzc4NThiYWNiODE0NjE4YTI3MmZmM2E0MTVjNmUwN2YzZGIwOTg4Nzc3ZmRlYzg0NWE5N2JmN2QxMDJkZDAiCiAKIFBLQ1M3IFBhcnNlIEZhaWx1cmUgSW52YWxpZCBBU04xOiBDaGFuZ2UgdGFnIDBjIHRvIDAyICMxMzMuMAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHBrY3M3X2FzbjFfZmFpbDoiMzA4MjA1MDAwNjA5MmE4NjQ4ODZmNzBkMDEwNzAyYTA4MjA0ZjEzMDgyMDRlZDAyMDEwMTMxMGYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBiMDYwOTJhODY0ODg2ZjcwZDAxMDcwMWEwODIwMzRkMzA4MjAzNDkzMDgyMDIzMWEwMDMwMjAxMDIwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMDIwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTMwMWUxNzBkMzIzMjMxMzAzMjM4MzEzNjMxMzAzNTM2NWExNzBkMzIzMzMxMzAzMjM4MzEzNjMxMzAzNTM2NWEzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEzMDgyMDEyMjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDAzODIwMTBmMDAzMDgyMDEwYTAyODIwMTAxMDBjOGI2Y2Y2OTg5OWNkMWYwZWJiNGNhNjQ1YzA1ZTcwZTBkMmVmZWRkY2M2MWQwODljYmQ1MTVhMzlhMzU3OWI5MjM0M2I2MWVjNzUwMDYwZmI0ZWQzNzg3NjMzMjQwMGU0MjVmMWQzNzZjN2U3NWMyOTczMzE0ZWRmNGJiMzBjOGY4ZGQwM2I5ZmNmZjk1NWEyNDVkNDkxMzdhZDZlNjAwNTZjYWMxOTU1MmE4NjVkNTIxODcxODdjYzA0MmM5YzQ5ZTNlM2E5YzE3YTUzNGI0NTNjZGFiYzBjYjExM2I0ZjYzZjViMzE3NGI5ZWU5OTAyYjE5MTBkMTE0OTZhMjc5YTc0MzI2YWRjZmVlMTBiZmQ5ZTdlYmFmYmIzNzdiZTliNjM5NTkxNjVkMTNkZDU3NTExNzFjYWRhZDNjMWQzYWRhYzY4YmM4MDExZDYxYjU0Y2Y2MDE3OGJlMzY4MzlhODlhYzkxYWI0MTllM2NhMzdkNmJhODgxZDI1NTE4YzRkYjY4YmNhNmY3YzgzNjAyZjY5OWE4NmIxN2ZiMWU3NzNiY2JlNzRiYjkzYTQ5YjI1MWFlODY0MjhiNTc0MGUxODY4YmIxZDZmYWI5ZTI4NzEyZTk4ZWMzMTlhZDhmY2E0ZDczMDEwYzRiMDljNGI4MDQ1ODk2MWU3Y2YwODM1MzAyMDMwMTAwMDFhMzUzMzA1MTMwMWQwNjAzNTUxZDBlMDQxNjA0MTQ4YWVlZTU5NDdjYzY3YzVkZDUxNWE3NmUyYTdlY2QzMWVlNTJmZGM4MzAxZjA2MDM1NTFkMjMwNDE4MzAxNjgwMTQ4YWVlZTU5NDdjYzY3YzVkZDUxNWE3NmUyYTdlY2QzMWVlNTJmZGM4MzAwZjA2MDM1NTFkMTMwMTAxZmYwNDA1MzAwMzAxMDFmZjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDAzODIwMTAxMDA4MjFkNmI5OGNkNDU3ZGViZDJiMDgxYWNhMjdlYmVjZDRmOTNhY2M4Mjg0NDNiMzllYWJmZmE5ZmE0ZTllNDU0M2I0NmZjYzMxZTJiNWI0ODE3NzkwM2RlYTY5NjlhYzRhMmNjNjU3MDY1MDM5MGYxYjA4ZDQzYTRjMmY5NzVjN2VkOGJmMzM1NmM3MjE4MzgwMjEyNDUxYThmMTFkZTQ2NTUzY2JjZDY1YjQyNTRkZGI4ZjY2ODM0ZWIyMWRkYTJhOGYzM2I1ODFlMTQ4NDU1N2FjYTFiOTRlZTg5MzFkZGYxNjAzN2I3YTcxNzEzMjFhOTE5MzZhZmMyN2ZmY2UzOTVkZTc1ZDVmNzBjYjhiNWFlZTA1ZmY1MDcwODhkNjVhZjFlNDM5NjZjZDQyY2JlNmY3ZmFjZjhkYWUwNTVkZDgyMjJiMTY5NjUyMTcyM2Y4MTI0NTE3ODU5NWM5ODVhZTkxN2ZkNGIzOTk4NzczZTFhOTdiN2JkMTAwODU0NDZmNDI1OWJjYzA5YTQ1NDkyOTI4MmMxYjg5YjcxZWQ1ODdhNzc1ZTBhM2Q0NTM2MzQxZjQ1ZGFlOTY5ZTgwNmM5NmZlZmM3MTA2Nzc3NmMwMmJhMjIxMjJiOTE5OWIxNGMwYzI4YzA0NDg3NTA5MDcwYjk3ZjNkZDJkNmQ5NzI3MzMxODIwMTc3MzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDViZWNkODcxOTVjMWRlZmY5MGMyNGM5MTI2OWI1NWIzZjA2OWJjMjI1YzMyNmMzMTRjMWE1MTc4NmZmZTE0YzgzMGJlNGU0YmM3M2NiYTM2Yzk3Njc3YjQ0MTY4Mjc5YmU5MWU3Y2RmN2MxOTM4NmFlMjE4NjI3MTlkMTNhM2EwZmZmMDgwM2Q0NjA5NjJmMmNkYTgzNzE0ODQ4NzMyNTJjM2Q3MDU0ZGI4MTQzZTJiMDgxYTM4MTZlZDA4MDRjYTUwOTlhZTVmZWNlODNkNWMyYzM3ODNiMTk4OGI0YjQ2ZGM5NGU1NTU4N2ExMDdlYTE1NDZiZjIyZDI4YTA5N2Y2NTJhNDA2NmRjMjk2NTI2OTA2OWFmMmY1MTc2YmI4Y2U5Y2E2ZDExZjk2NzU3ZjAzMjA0Zjc1NjcwMzU4N2QwMGFkNDI0Nzk2YzkyZmM3YWViNmY0OTQ0MzE5OTllZGEzMDk5MGU0ZjU3NzM2MzJlZDI1OGZlMDI3NjY3MzU5OWRhNmZjZTM1Y2RhZDc3MjZhMGJiMDI0Y2FkOTk2Yjg4ZTBjYjk4ODU0Y2ViNWMwYjZlYzc0OGQ5ZjljZTZhNmNkNDM3ODU4YmFjYjgxNDYxOGEyNzJmZjNhNDE1YzZlMDdmM2RiMDk4ODc3N2ZkZWM4NDVhOTdiZjdkMTAyZGQwIgogCiBQS0NTNyBQYXJzZSBGYWlsdXJlIEludmFsaWQgQVNOMTogQ2hhbmdlIGxlbmd0aCBmcm9tIDEyIHRvIDEzICMxMzQuMAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHBrY3M3X2FzbjFfZmFpbDoiMzA4MjA1MDAwNjA5MmE4NjQ4ODZmNzBkMDEwNzAyYTA4MjA0ZjEzMDgyMDRlZDAyMDEwMTMxMGYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBiMDYwOTJhODY0ODg2ZjcwZDAxMDcwMWEwODIwMzRkMzA4MjAzNDkzMDgyMDIzMWEwMDMwMjAxMDIwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwZDUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTMwMWUxNzBkMzIzMjMxMzAzMjM4MzEzNjMxMzAzNTM2NWExNzBkMzIzMzMxMzAzMjM4MzEzNjMxMzAzNTM2NWEzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEzMDgyMDEyMjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDAzODIwMTBmMDAzMDgyMDEwYTAyODIwMTAxMDBjOGI2Y2Y2OTg5OWNkMWYwZWJiNGNhNjQ1YzA1ZTcwZTBkMmVmZWRkY2M2MWQwODljYmQ1MTVhMzlhMzU3OWI5MjM0M2I2MWVjNzUwMDYwZmI0ZWQzNzg3NjMzMjQwMGU0MjVmMWQzNzZjN2U3NWMyOTczMzE0ZWRmNGJiMzBjOGY4ZGQwM2I5ZmNmZjk1NWEyNDVkNDkxMzdhZDZlNjAwNTZjYWMxOTU1MmE4NjVkNTIxODcxODdjYzA0MmM5YzQ5ZTNlM2E5YzE3YTUzNGI0NTNjZGFiYzBjYjExM2I0ZjYzZjViMzE3NGI5ZWU5OTAyYjE5MTBkMTE0OTZhMjc5YTc0MzI2YWRjZmVlMTBiZmQ5ZTdlYmFmYmIzNzdiZTliNjM5NTkxNjVkMTNkZDU3NTExNzFjYWRhZDNjMWQzYWRhYzY4YmM4MDExZDYxYjU0Y2Y2MDE3OGJlMzY4MzlhODlhYzkxYWI0MTllM2NhMzdkNmJhODgxZDI1NTE4YzRkYjY4YmNhNmY3YzgzNjAyZjY5OWE4NmIxN2ZiMWU3NzNiY2JlNzRiYjkzYTQ5YjI1MWFlODY0MjhiNTc0MGUxODY4YmIxZDZmYWI5ZTI4NzEyZTk4ZWMzMTlhZDhmY2E0ZDczMDEwYzRiMDljNGI4MDQ1ODk2MWU3Y2YwODM1MzAyMDMwMTAwMDFhMzUzMzA1MTMwMWQwNjAzNTUxZDBlMDQxNjA0MTQ4YWVlZTU5NDdjYzY3YzVkZDUxNWE3NmUyYTdlY2QzMWVlNTJmZGM4MzAxZjA2MDM1NTFkMjMwNDE4MzAxNjgwMTQ4YWVlZTU5NDdjYzY3YzVkZDUxNWE3NmUyYTdlY2QzMWVlNTJmZGM4MzAwZjA2MDM1NTFkMTMwMTAxZmYwNDA1MzAwMzAxMDFmZjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDAzODIwMTAxMDA4MjFkNmI5OGNkNDU3ZGViZDJiMDgxYWNhMjdlYmVjZDRmOTNhY2M4Mjg0NDNiMzllYWJmZmE5ZmE0ZTllNDU0M2I0NmZjYzMxZTJiNWI0ODE3NzkwM2RlYTY5NjlhYzRhMmNjNjU3MDY1MDM5MGYxYjA4ZDQzYTRjMmY5NzVjN2VkOGJmMzM1NmM3MjE4MzgwMjEyNDUxYThmMTFkZTQ2NTUzY2JjZDY1YjQyNTRkZGI4ZjY2ODM0ZWIyMWRkYTJhOGYzM2I1ODFlMTQ4NDU1N2FjYTFiOTRlZTg5MzFkZGYxNjAzN2I3YTcxNzEzMjFhOTE5MzZhZmMyN2ZmY2UzOTVkZTc1ZDVmNzBjYjhiNWFlZTA1ZmY1MDcwODhkNjVhZjFlNDM5NjZjZDQyY2JlNmY3ZmFjZjhkYWUwNTVkZDgyMjJiMTY5NjUyMTcyM2Y4MTI0NTE3ODU5NWM5ODVhZTkxN2ZkNGIzOTk4NzczZTFhOTdiN2JkMTAwODU0NDZmNDI1OWJjYzA5YTQ1NDkyOTI4MmMxYjg5YjcxZWQ1ODdhNzc1ZTBhM2Q0NTM2MzQxZjQ1ZGFlOTY5ZTgwNmM5NmZlZmM3MTA2Nzc3NmMwMmJhMjIxMjJiOTE5OWIxNGMwYzI4YzA0NDg3NTA5MDcwYjk3ZjNkZDJkNmQ5NzI3MzMxODIwMTc3MzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDViZWNkODcxOTVjMWRlZmY5MGMyNGM5MTI2OWI1NWIzZjA2OWJjMjI1YzMyNmMzMTRjMWE1MTc4NmZmZTE0YzgzMGJlNGU0YmM3M2NiYTM2Yzk3Njc3YjQ0MTY4Mjc5YmU5MWU3Y2RmN2MxOTM4NmFlMjE4NjI3MTlkMTNhM2EwZmZmMDgwM2Q0NjA5NjJmMmNkYTgzNzE0ODQ4NzMyNTJjM2Q3MDU0ZGI4MTQzZTJiMDgxYTM4MTZlZDA4MDRjYTUwOTlhZTVmZWNlODNkNWMyYzM3ODNiMTk4OGI0YjQ2ZGM5NGU1NTU4N2ExMDdlYTE1NDZiZjIyZDI4YTA5N2Y2NTJhNDA2NmRjMjk2NTI2OTA2OWFmMmY1MTc2YmI4Y2U5Y2E2ZDExZjk2NzU3ZjAzMjA0Zjc1NjcwMzU4N2QwMGFkNDI0Nzk2YzkyZmM3YWViNmY0OTQ0MzE5OTllZGEzMDk5MGU0ZjU3NzM2MzJlZDI1OGZlMDI3NjY3MzU5OWRhNmZjZTM1Y2RhZDc3MjZhMGJiMDI0Y2FkOTk2Yjg4ZTBjYjk4ODU0Y2ViNWMwYjZlYzc0OGQ5ZjljZTZhNmNkNDM3ODU4YmFjYjgxNDYxOGEyNzJmZjNhNDE1YzZlMDdmM2RiMDk4ODc3N2ZkZWM4NDVhOTdiZjdkMTAyZGQwIgogCiBQS0NTNyBQYXJzZSBGYWlsdXJlIEludmFsaWQgQVNOMTogQ2hhbmdlIGxlbmd0aCBmcm9tIDEyIHRvIDExICMxMzUuMAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHBrY3M3X2FzbjFfZmFpbDoiMzA4MjA1MDAwNjA5MmE4NjQ4ODZmNzBkMDEwNzAyYTA4MjA0ZjEzMDgyMDRlZDAyMDEwMTMxMGYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBiMDYwOTJhODY0ODg2ZjcwZDAxMDcwMWEwODIwMzRkMzA4MjAzNDkzMDgyMDIzMWEwMDMwMjAxMDIwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYjUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTMwMWUxNzBkMzIzMjMxMzAzMjM4MzEzNjMxMzAzNTM2NWExNzBkMzIzMzMxMzAzMjM4MzEzNjMxMzAzNTM2NWEzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEzMDgyMDEyMjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDAzODIwMTBmMDAzMDgyMDEwYTAyODIwMTAxMDBjOGI2Y2Y2OTg5OWNkMWYwZWJiNGNhNjQ1YzA1ZTcwZTBkMmVmZWRkY2M2MWQwODljYmQ1MTVhMzlhMzU3OWI5MjM0M2I2MWVjNzUwMDYwZmI0ZWQzNzg3NjMzMjQwMGU0MjVmMWQzNzZjN2U3NWMyOTczMzE0ZWRmNGJiMzBjOGY4ZGQwM2I5ZmNmZjk1NWEyNDVkNDkxMzdhZDZlNjAwNTZjYWMxOTU1MmE4NjVkNTIxODcxODdjYzA0MmM5YzQ5ZTNlM2E5YzE3YTUzNGI0NTNjZGFiYzBjYjExM2I0ZjYzZjViMzE3NGI5ZWU5OTAyYjE5MTBkMTE0OTZhMjc5YTc0MzI2YWRjZmVlMTBiZmQ5ZTdlYmFmYmIzNzdiZTliNjM5NTkxNjVkMTNkZDU3NTExNzFjYWRhZDNjMWQzYWRhYzY4YmM4MDExZDYxYjU0Y2Y2MDE3OGJlMzY4MzlhODlhYzkxYWI0MTllM2NhMzdkNmJhODgxZDI1NTE4YzRkYjY4YmNhNmY3YzgzNjAyZjY5OWE4NmIxN2ZiMWU3NzNiY2JlNzRiYjkzYTQ5YjI1MWFlODY0MjhiNTc0MGUxODY4YmIxZDZmYWI5ZTI4NzEyZTk4ZWMzMTlhZDhmY2E0ZDczMDEwYzRiMDljNGI4MDQ1ODk2MWU3Y2YwODM1MzAyMDMwMTAwMDFhMzUzMzA1MTMwMWQwNjAzNTUxZDBlMDQxNjA0MTQ4YWVlZTU5NDdjYzY3YzVkZDUxNWE3NmUyYTdlY2QzMWVlNTJmZGM4MzAxZjA2MDM1NTFkMjMwNDE4MzAxNjgwMTQ4YWVlZTU5NDdjYzY3YzVkZDUxNWE3NmUyYTdlY2QzMWVlNTJmZGM4MzAwZjA2MDM1NTFkMTMwMTAxZmYwNDA1MzAwMzAxMDFmZjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDAzODIwMTAxMDA4MjFkNmI5OGNkNDU3ZGViZDJiMDgxYWNhMjdlYmVjZDRmOTNhY2M4Mjg0NDNiMzllYWJmZmE5ZmE0ZTllNDU0M2I0NmZjYzMxZTJiNWI0ODE3NzkwM2RlYTY5NjlhYzRhMmNjNjU3MDY1MDM5MGYxYjA4ZDQzYTRjMmY5NzVjN2VkOGJmMzM1NmM3MjE4MzgwMjEyNDUxYThmMTFkZTQ2NTUzY2JjZDY1YjQyNTRkZGI4ZjY2ODM0ZWIyMWRkYTJhOGYzM2I1ODFlMTQ4NDU1N2FjYTFiOTRlZTg5MzFkZGYxNjAzN2I3YTcxNzEzMjFhOTE5MzZhZmMyN2ZmY2UzOTVkZTc1ZDVmNzBjYjhiNWFlZTA1ZmY1MDcwODhkNjVhZjFlNDM5NjZjZDQyY2JlNmY3ZmFjZjhkYWUwNTVkZDgyMjJiMTY5NjUyMTcyM2Y4MTI0NTE3ODU5NWM5ODVhZTkxN2ZkNGIzOTk4NzczZTFhOTdiN2JkMTAwODU0NDZmNDI1OWJjYzA5YTQ1NDkyOTI4MmMxYjg5YjcxZWQ1ODdhNzc1ZTBhM2Q0NTM2MzQxZjQ1ZGFlOTY5ZTgwNmM5NmZlZmM3MTA2Nzc3NmMwMmJhMjIxMjJiOTE5OWIxNGMwYzI4YzA0NDg3NTA5MDcwYjk3ZjNkZDJkNmQ5NzI3MzMxODIwMTc3MzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDViZWNkODcxOTVjMWRlZmY5MGMyNGM5MTI2OWI1NWIzZjA2OWJjMjI1YzMyNmMzMTRjMWE1MTc4NmZmZTE0YzgzMGJlNGU0YmM3M2NiYTM2Yzk3Njc3YjQ0MTY4Mjc5YmU5MWU3Y2RmN2MxOTM4NmFlMjE4NjI3MTlkMTNhM2EwZmZmMDgwM2Q0NjA5NjJmMmNkYTgzNzE0ODQ4NzMyNTJjM2Q3MDU0ZGI4MTQzZTJiMDgxYTM4MTZlZDA4MDRjYTUwOTlhZTVmZWNlODNkNWMyYzM3ODNiMTk4OGI0YjQ2ZGM5NGU1NTU4N2ExMDdlYTE1NDZiZjIyZDI4YTA5N2Y2NTJhNDA2NmRjMjk2NTI2OTA2OWFmMmY1MTc2YmI4Y2U5Y2E2ZDExZjk2NzU3ZjAzMjA0Zjc1NjcwMzU4N2QwMGFkNDI0Nzk2YzkyZmM3YWViNmY0OTQ0MzE5OTllZGEzMDk5MGU0ZjU3NzM2MzJlZDI1OGZlMDI3NjY3MzU5OWRhNmZjZTM1Y2RhZDc3MjZhMGJiMDI0Y2FkOTk2Yjg4ZTBjYjk4ODU0Y2ViNWMwYjZlYzc0OGQ5ZjljZTZhNmNkNDM3ODU4YmFjYjgxNDYxOGEyNzJmZjNhNDE1YzZlMDdmM2RiMDk4ODc3N2ZkZWM4NDVhOTdiZjdkMTAyZGQwIgogCiBQS0NTNyBQYXJzZSBGYWlsdXJlIEludmFsaWQgQVNOMTogQ2hhbmdlIHRhZyAzMCB0byAwMiAjMTM2LjAKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBwa2NzN19hc24xX2ZhaWw6IjMwODIwNTAwMDYwOTJhODY0ODg2ZjcwZDAxMDcwMmEwODIwNGYxMzA4MjA0ZWQwMjAxMDEzMTBmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwYjA2MDkyYTg2NDg4NmY3MGQwMTA3MDFhMDgyMDM0ZDMwODIwMzQ5MzA4MjAyMzFhMDAzMDIwMTAyMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEwMjFlMTcwZDMyMzIzMTMwMzIzODMxMzYzMTMwMzUzNjVhMTcwZDMyMzMzMTMwMzIzODMxMzYzMTMwMzUzNjVhMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMzA4MjAxMjIzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwMzgyMDEwZjAwMzA4MjAxMGEwMjgyMDEwMTAwYzhiNmNmNjk4OTljZDFmMGViYjRjYTY0NWMwNWU3MGUwZDJlZmVkZGNjNjFkMDg5Y2JkNTE1YTM5YTM1NzliOTIzNDNiNjFlYzc1MDA2MGZiNGVkMzc4NzYzMzI0MDBlNDI1ZjFkMzc2YzdlNzVjMjk3MzMxNGVkZjRiYjMwYzhmOGRkMDNiOWZjZmY5NTVhMjQ1ZDQ5MTM3YWQ2ZTYwMDU2Y2FjMTk1NTJhODY1ZDUyMTg3MTg3Y2MwNDJjOWM0OWUzZTNhOWMxN2E1MzRiNDUzY2RhYmMwY2IxMTNiNGY2M2Y1YjMxNzRiOWVlOTkwMmIxOTEwZDExNDk2YTI3OWE3NDMyNmFkY2ZlZTEwYmZkOWU3ZWJhZmJiMzc3YmU5YjYzOTU5MTY1ZDEzZGQ1NzUxMTcxY2FkYWQzYzFkM2FkYWM2OGJjODAxMWQ2MWI1NGNmNjAxNzhiZTM2ODM5YTg5YWM5MWFiNDE5ZTNjYTM3ZDZiYTg4MWQyNTUxOGM0ZGI2OGJjYTZmN2M4MzYwMmY2OTlhODZiMTdmYjFlNzczYmNiZTc0YmI5M2E0OWIyNTFhZTg2NDI4YjU3NDBlMTg2OGJiMWQ2ZmFiOWUyODcxMmU5OGVjMzE5YWQ4ZmNhNGQ3MzAxMGM0YjA5YzRiODA0NTg5NjFlN2NmMDgzNTMwMjAzMDEwMDAxYTM1MzMwNTEzMDFkMDYwMzU1MWQwZTA0MTYwNDE0OGFlZWU1OTQ3Y2M2N2M1ZGQ1MTVhNzZlMmE3ZWNkMzFlZTUyZmRjODMwMWYwNjAzNTUxZDIzMDQxODMwMTY4MDE0OGFlZWU1OTQ3Y2M2N2M1ZGQ1MTVhNzZlMmE3ZWNkMzFlZTUyZmRjODMwMGYwNjAzNTUxZDEzMDEwMWZmMDQwNTMwMDMwMTAxZmYzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAwMzgyMDEwMTAwODIxZDZiOThjZDQ1N2RlYmQyYjA4MWFjYTI3ZWJlY2Q0ZjkzYWNjODI4NDQzYjM5ZWFiZmZhOWZhNGU5ZTQ1NDNiNDZmY2MzMWUyYjViNDgxNzc5MDNkZWE2OTY5YWM0YTJjYzY1NzA2NTAzOTBmMWIwOGQ0M2E0YzJmOTc1YzdlZDhiZjMzNTZjNzIxODM4MDIxMjQ1MWE4ZjExZGU0NjU1M2NiY2Q2NWI0MjU0ZGRiOGY2NjgzNGViMjFkZGEyYThmMzNiNTgxZTE0ODQ1NTdhY2ExYjk0ZWU4OTMxZGRmMTYwMzdiN2E3MTcxMzIxYTkxOTM2YWZjMjdmZmNlMzk1ZGU3NWQ1ZjcwY2I4YjVhZWUwNWZmNTA3MDg4ZDY1YWYxZTQzOTY2Y2Q0MmNiZTZmN2ZhY2Y4ZGFlMDU1ZGQ4MjIyYjE2OTY1MjE3MjNmODEyNDUxNzg1OTVjOTg1YWU5MTdmZDRiMzk5ODc3M2UxYTk3YjdiZDEwMDg1NDQ2ZjQyNTliY2MwOWE0NTQ5MjkyODJjMWI4OWI3MWVkNTg3YTc3NWUwYTNkNDUzNjM0MWY0NWRhZTk2OWU4MDZjOTZmZWZjNzEwNjc3NzZjMDJiYTIyMTIyYjkxOTliMTRjMGMyOGMwNDQ4NzUwOTA3MGI5N2YzZGQyZDZkOTcyNzMzMTgyMDE3NzMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTAyMTQ3YmRlZGRkMjQ0NGNkMWNkZmU1YzQxYTgxMDJjODliN2RmMmU2Y2JmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDA1YmVjZDg3MTk1YzFkZWZmOTBjMjRjOTEyNjliNTViM2YwNjliYzIyNWMzMjZjMzE0YzFhNTE3ODZmZmUxNGM4MzBiZTRlNGJjNzNjYmEzNmM5NzY3N2I0NDE2ODI3OWJlOTFlN2NkZjdjMTkzODZhZTIxODYyNzE5ZDEzYTNhMGZmZjA4MDNkNDYwOTYyZjJjZGE4MzcxNDg0ODczMjUyYzNkNzA1NGRiODE0M2UyYjA4MWEzODE2ZWQwODA0Y2E1MDk5YWU1ZmVjZTgzZDVjMmMzNzgzYjE5ODhiNGI0NmRjOTRlNTU1ODdhMTA3ZWExNTQ2YmYyMmQyOGEwOTdmNjUyYTQwNjZkYzI5NjUyNjkwNjlhZjJmNTE3NmJiOGNlOWNhNmQxMWY5Njc1N2YwMzIwNGY3NTY3MDM1ODdkMDBhZDQyNDc5NmM5MmZjN2FlYjZmNDk0NDMxOTk5ZWRhMzA5OTBlNGY1NzczNjMyZWQyNThmZTAyNzY2NzM1OTlkYTZmY2UzNWNkYWQ3NzI2YTBiYjAyNGNhZDk5NmI4OGUwY2I5ODg1NGNlYjVjMGI2ZWM3NDhkOWY5Y2U2YTZjZDQzNzg1OGJhY2I4MTQ2MThhMjcyZmYzYTQxNWM2ZTA3ZjNkYjA5ODg3NzdmZGVjODQ1YTk3YmY3ZDEwMmRkMCIKIAogUEtDUzcgUGFyc2UgRmFpbHVyZSBJbnZhbGlkIEFTTjE6IENoYW5nZSBsZW5ndGggZnJvbSAzMCB0byAzMSAjMTM3LjAKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBwa2NzN19hc24xX2ZhaWw6IjMwODIwNTAwMDYwOTJhODY0ODg2ZjcwZDAxMDcwMmEwODIwNGYxMzA4MjA0ZWQwMjAxMDEzMTBmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwYjA2MDkyYTg2NDg4NmY3MGQwMTA3MDFhMDgyMDM0ZDMwODIwMzQ5MzA4MjAyMzFhMDAzMDIwMTAyMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEzMDFmMTcwZDMyMzIzMTMwMzIzODMxMzYzMTMwMzUzNjVhMTcwZDMyMzMzMTMwMzIzODMxMzYzMTMwMzUzNjVhMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMzA4MjAxMjIzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwMzgyMDEwZjAwMzA4MjAxMGEwMjgyMDEwMTAwYzhiNmNmNjk4OTljZDFmMGViYjRjYTY0NWMwNWU3MGUwZDJlZmVkZGNjNjFkMDg5Y2JkNTE1YTM5YTM1NzliOTIzNDNiNjFlYzc1MDA2MGZiNGVkMzc4NzYzMzI0MDBlNDI1ZjFkMzc2YzdlNzVjMjk3MzMxNGVkZjRiYjMwYzhmOGRkMDNiOWZjZmY5NTVhMjQ1ZDQ5MTM3YWQ2ZTYwMDU2Y2FjMTk1NTJhODY1ZDUyMTg3MTg3Y2MwNDJjOWM0OWUzZTNhOWMxN2E1MzRiNDUzY2RhYmMwY2IxMTNiNGY2M2Y1YjMxNzRiOWVlOTkwMmIxOTEwZDExNDk2YTI3OWE3NDMyNmFkY2ZlZTEwYmZkOWU3ZWJhZmJiMzc3YmU5YjYzOTU5MTY1ZDEzZGQ1NzUxMTcxY2FkYWQzYzFkM2FkYWM2OGJjODAxMWQ2MWI1NGNmNjAxNzhiZTM2ODM5YTg5YWM5MWFiNDE5ZTNjYTM3ZDZiYTg4MWQyNTUxOGM0ZGI2OGJjYTZmN2M4MzYwMmY2OTlhODZiMTdmYjFlNzczYmNiZTc0YmI5M2E0OWIyNTFhZTg2NDI4YjU3NDBlMTg2OGJiMWQ2ZmFiOWUyODcxMmU5OGVjMzE5YWQ4ZmNhNGQ3MzAxMGM0YjA5YzRiODA0NTg5NjFlN2NmMDgzNTMwMjAzMDEwMDAxYTM1MzMwNTEzMDFkMDYwMzU1MWQwZTA0MTYwNDE0OGFlZWU1OTQ3Y2M2N2M1ZGQ1MTVhNzZlMmE3ZWNkMzFlZTUyZmRjODMwMWYwNjAzNTUxZDIzMDQxODMwMTY4MDE0OGFlZWU1OTQ3Y2M2N2M1ZGQ1MTVhNzZlMmE3ZWNkMzFlZTUyZmRjODMwMGYwNjAzNTUxZDEzMDEwMWZmMDQwNTMwMDMwMTAxZmYzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAwMzgyMDEwMTAwODIxZDZiOThjZDQ1N2RlYmQyYjA4MWFjYTI3ZWJlY2Q0ZjkzYWNjODI4NDQzYjM5ZWFiZmZhOWZhNGU5ZTQ1NDNiNDZmY2MzMWUyYjViNDgxNzc5MDNkZWE2OTY5YWM0YTJjYzY1NzA2NTAzOTBmMWIwOGQ0M2E0YzJmOTc1YzdlZDhiZjMzNTZjNzIxODM4MDIxMjQ1MWE4ZjExZGU0NjU1M2NiY2Q2NWI0MjU0ZGRiOGY2NjgzNGViMjFkZGEyYThmMzNiNTgxZTE0ODQ1NTdhY2ExYjk0ZWU4OTMxZGRmMTYwMzdiN2E3MTcxMzIxYTkxOTM2YWZjMjdmZmNlMzk1ZGU3NWQ1ZjcwY2I4YjVhZWUwNWZmNTA3MDg4ZDY1YWYxZTQzOTY2Y2Q0MmNiZTZmN2ZhY2Y4ZGFlMDU1ZGQ4MjIyYjE2OTY1MjE3MjNmODEyNDUxNzg1OTVjOTg1YWU5MTdmZDRiMzk5ODc3M2UxYTk3YjdiZDEwMDg1NDQ2ZjQyNTliY2MwOWE0NTQ5MjkyODJjMWI4OWI3MWVkNTg3YTc3NWUwYTNkNDUzNjM0MWY0NWRhZTk2OWU4MDZjOTZmZWZjNzEwNjc3NzZjMDJiYTIyMTIyYjkxOTliMTRjMGMyOGMwNDQ4NzUwOTA3MGI5N2YzZGQyZDZkOTcyNzMzMTgyMDE3NzMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTAyMTQ3YmRlZGRkMjQ0NGNkMWNkZmU1YzQxYTgxMDJjODliN2RmMmU2Y2JmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDA1YmVjZDg3MTk1YzFkZWZmOTBjMjRjOTEyNjliNTViM2YwNjliYzIyNWMzMjZjMzE0YzFhNTE3ODZmZmUxNGM4MzBiZTRlNGJjNzNjYmEzNmM5NzY3N2I0NDE2ODI3OWJlOTFlN2NkZjdjMTkzODZhZTIxODYyNzE5ZDEzYTNhMGZmZjA4MDNkNDYwOTYyZjJjZGE4MzcxNDg0ODczMjUyYzNkNzA1NGRiODE0M2UyYjA4MWEzODE2ZWQwODA0Y2E1MDk5YWU1ZmVjZTgzZDVjMmMzNzgzYjE5ODhiNGI0NmRjOTRlNTU1ODdhMTA3ZWExNTQ2YmYyMmQyOGEwOTdmNjUyYTQwNjZkYzI5NjUyNjkwNjlhZjJmNTE3NmJiOGNlOWNhNmQxMWY5Njc1N2YwMzIwNGY3NTY3MDM1ODdkMDBhZDQyNDc5NmM5MmZjN2FlYjZmNDk0NDMxOTk5ZWRhMzA5OTBlNGY1NzczNjMyZWQyNThmZTAyNzY2NzM1OTlkYTZmY2UzNWNkYWQ3NzI2YTBiYjAyNGNhZDk5NmI4OGUwY2I5ODg1NGNlYjVjMGI2ZWM3NDhkOWY5Y2U2YTZjZDQzNzg1OGJhY2I4MTQ2MThhMjcyZmYzYTQxNWM2ZTA3ZjNkYjA5ODg3NzdmZGVjODQ1YTk3YmY3ZDEwMmRkMCIKIAogUEtDUzcgUGFyc2UgRmFpbHVyZSBJbnZhbGlkIEFTTjE6IENoYW5nZSBjb250ZW50cyBvZiB0YWcgMzAgdG8gY29udGFpbiBvbmUgdW5hY2NvdW50ZWQgZXh0cmEgYnl0ZSAjMTM4LjAKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBwa2NzN19hc24xX2ZhaWw6IjMwODIwNTAwMDYwOTJhODY0ODg2ZjcwZDAxMDcwMmEwODIwNGYxMzA4MjA0ZWQwMjAxMDEzMTBmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwYjA2MDkyYTg2NDg4NmY3MGQwMTA3MDFhMDgyMDM0ZDMwODIwMzQ5MzA4MjAyMzFhMDAzMDIwMTAyMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEzMDFmMTcwZDMyMzIzMTMwMzIzODMxMzYzMTMwMzUzNjVhMTcwZDMyMzMzMTMwMzIzODMxMzYzMTMwMzUzNjVhMDAzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEzMDgyMDEyMjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDAzODIwMTBmMDAzMDgyMDEwYTAyODIwMTAxMDBjOGI2Y2Y2OTg5OWNkMWYwZWJiNGNhNjQ1YzA1ZTcwZTBkMmVmZWRkY2M2MWQwODljYmQ1MTVhMzlhMzU3OWI5MjM0M2I2MWVjNzUwMDYwZmI0ZWQzNzg3NjMzMjQwMGU0MjVmMWQzNzZjN2U3NWMyOTczMzE0ZWRmNGJiMzBjOGY4ZGQwM2I5ZmNmZjk1NWEyNDVkNDkxMzdhZDZlNjAwNTZjYWMxOTU1MmE4NjVkNTIxODcxODdjYzA0MmM5YzQ5ZTNlM2E5YzE3YTUzNGI0NTNjZGFiYzBjYjExM2I0ZjYzZjViMzE3NGI5ZWU5OTAyYjE5MTBkMTE0OTZhMjc5YTc0MzI2YWRjZmVlMTBiZmQ5ZTdlYmFmYmIzNzdiZTliNjM5NTkxNjVkMTNkZDU3NTExNzFjYWRhZDNjMWQzYWRhYzY4YmM4MDExZDYxYjU0Y2Y2MDE3OGJlMzY4MzlhODlhYzkxYWI0MTllM2NhMzdkNmJhODgxZDI1NTE4YzRkYjY4YmNhNmY3YzgzNjAyZjY5OWE4NmIxN2ZiMWU3NzNiY2JlNzRiYjkzYTQ5YjI1MWFlODY0MjhiNTc0MGUxODY4YmIxZDZmYWI5ZTI4NzEyZTk4ZWMzMTlhZDhmY2E0ZDczMDEwYzRiMDljNGI4MDQ1ODk2MWU3Y2YwODM1MzAyMDMwMTAwMDFhMzUzMzA1MTMwMWQwNjAzNTUxZDBlMDQxNjA0MTQ4YWVlZTU5NDdjYzY3YzVkZDUxNWE3NmUyYTdlY2QzMWVlNTJmZGM4MzAxZjA2MDM1NTFkMjMwNDE4MzAxNjgwMTQ4YWVlZTU5NDdjYzY3YzVkZDUxNWE3NmUyYTdlY2QzMWVlNTJmZGM4MzAwZjA2MDM1NTFkMTMwMTAxZmYwNDA1MzAwMzAxMDFmZjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDAzODIwMTAxMDA4MjFkNmI5OGNkNDU3ZGViZDJiMDgxYWNhMjdlYmVjZDRmOTNhY2M4Mjg0NDNiMzllYWJmZmE5ZmE0ZTllNDU0M2I0NmZjYzMxZTJiNWI0ODE3NzkwM2RlYTY5NjlhYzRhMmNjNjU3MDY1MDM5MGYxYjA4ZDQzYTRjMmY5NzVjN2VkOGJmMzM1NmM3MjE4MzgwMjEyNDUxYThmMTFkZTQ2NTUzY2JjZDY1YjQyNTRkZGI4ZjY2ODM0ZWIyMWRkYTJhOGYzM2I1ODFlMTQ4NDU1N2FjYTFiOTRlZTg5MzFkZGYxNjAzN2I3YTcxNzEzMjFhOTE5MzZhZmMyN2ZmY2UzOTVkZTc1ZDVmNzBjYjhiNWFlZTA1ZmY1MDcwODhkNjVhZjFlNDM5NjZjZDQyY2JlNmY3ZmFjZjhkYWUwNTVkZDgyMjJiMTY5NjUyMTcyM2Y4MTI0NTE3ODU5NWM5ODVhZTkxN2ZkNGIzOTk4NzczZTFhOTdiN2JkMTAwODU0NDZmNDI1OWJjYzA5YTQ1NDkyOTI4MmMxYjg5YjcxZWQ1ODdhNzc1ZTBhM2Q0NTM2MzQxZjQ1ZGFlOTY5ZTgwNmM5NmZlZmM3MTA2Nzc3NmMwMmJhMjIxMjJiOTE5OWIxNGMwYzI4YzA0NDg3NTA5MDcwYjk3ZjNkZDJkNmQ5NzI3MzMxODIwMTc3MzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDViZWNkODcxOTVjMWRlZmY5MGMyNGM5MTI2OWI1NWIzZjA2OWJjMjI1YzMyNmMzMTRjMWE1MTc4NmZmZTE0YzgzMGJlNGU0YmM3M2NiYTM2Yzk3Njc3YjQ0MTY4Mjc5YmU5MWU3Y2RmN2MxOTM4NmFlMjE4NjI3MTlkMTNhM2EwZmZmMDgwM2Q0NjA5NjJmMmNkYTgzNzE0ODQ4NzMyNTJjM2Q3MDU0ZGI4MTQzZTJiMDgxYTM4MTZlZDA4MDRjYTUwOTlhZTVmZWNlODNkNWMyYzM3ODNiMTk4OGI0YjQ2ZGM5NGU1NTU4N2ExMDdlYTE1NDZiZjIyZDI4YTA5N2Y2NTJhNDA2NmRjMjk2NTI2OTA2OWFmMmY1MTc2YmI4Y2U5Y2E2ZDExZjk2NzU3ZjAzMjA0Zjc1NjcwMzU4N2QwMGFkNDI0Nzk2YzkyZmM3YWViNmY0OTQ0MzE5OTllZGEzMDk5MGU0ZjU3NzM2MzJlZDI1OGZlMDI3NjY3MzU5OWRhNmZjZTM1Y2RhZDc3MjZhMGJiMDI0Y2FkOTk2Yjg4ZTBjYjk4ODU0Y2ViNWMwYjZlYzc0OGQ5ZjljZTZhNmNkNDM3ODU4YmFjYjgxNDYxOGEyNzJmZjNhNDE1YzZlMDdmM2RiMDk4ODc3N2ZkZWM4NDVhOTdiZjdkMTAyZGQwIgogCiBQS0NTNyBQYXJzZSBGYWlsdXJlIEludmFsaWQgQVNOMTogQ2hhbmdlIGxlbmd0aCBmcm9tIDMwIHRvIDI5ICMxMzkuMAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHBrY3M3X2FzbjFfZmFpbDoiMzA4MjA1MDAwNjA5MmE4NjQ4ODZmNzBkMDEwNzAyYTA4MjA0ZjEzMDgyMDRlZDAyMDEwMTMxMGYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBiMDYwOTJhODY0ODg2ZjcwZDAxMDcwMWEwODIwMzRkMzA4MjAzNDkzMDgyMDIzMWEwMDMwMjAxMDIwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTMwMWQxNzBkMzIzMjMxMzAzMjM4MzEzNjMxMzAzNTM2NWExNzBkMzIzMzMxMzAzMjM4MzEzNjMxMzAzNTM2NWEzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEzMDgyMDEyMjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDAzODIwMTBmMDAzMDgyMDEwYTAyODIwMTAxMDBjOGI2Y2Y2OTg5OWNkMWYwZWJiNGNhNjQ1YzA1ZTcwZTBkMmVmZWRkY2M2MWQwODljYmQ1MTVhMzlhMzU3OWI5MjM0M2I2MWVjNzUwMDYwZmI0ZWQzNzg3NjMzMjQwMGU0MjVmMWQzNzZjN2U3NWMyOTczMzE0ZWRmNGJiMzBjOGY4ZGQwM2I5ZmNmZjk1NWEyNDVkNDkxMzdhZDZlNjAwNTZjYWMxOTU1MmE4NjVkNTIxODcxODdjYzA0MmM5YzQ5ZTNlM2E5YzE3YTUzNGI0NTNjZGFiYzBjYjExM2I0ZjYzZjViMzE3NGI5ZWU5OTAyYjE5MTBkMTE0OTZhMjc5YTc0MzI2YWRjZmVlMTBiZmQ5ZTdlYmFmYmIzNzdiZTliNjM5NTkxNjVkMTNkZDU3NTExNzFjYWRhZDNjMWQzYWRhYzY4YmM4MDExZDYxYjU0Y2Y2MDE3OGJlMzY4MzlhODlhYzkxYWI0MTllM2NhMzdkNmJhODgxZDI1NTE4YzRkYjY4YmNhNmY3YzgzNjAyZjY5OWE4NmIxN2ZiMWU3NzNiY2JlNzRiYjkzYTQ5YjI1MWFlODY0MjhiNTc0MGUxODY4YmIxZDZmYWI5ZTI4NzEyZTk4ZWMzMTlhZDhmY2E0ZDczMDEwYzRiMDljNGI4MDQ1ODk2MWU3Y2YwODM1MzAyMDMwMTAwMDFhMzUzMzA1MTMwMWQwNjAzNTUxZDBlMDQxNjA0MTQ4YWVlZTU5NDdjYzY3YzVkZDUxNWE3NmUyYTdlY2QzMWVlNTJmZGM4MzAxZjA2MDM1NTFkMjMwNDE4MzAxNjgwMTQ4YWVlZTU5NDdjYzY3YzVkZDUxNWE3NmUyYTdlY2QzMWVlNTJmZGM4MzAwZjA2MDM1NTFkMTMwMTAxZmYwNDA1MzAwMzAxMDFmZjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDAzODIwMTAxMDA4MjFkNmI5OGNkNDU3ZGViZDJiMDgxYWNhMjdlYmVjZDRmOTNhY2M4Mjg0NDNiMzllYWJmZmE5ZmE0ZTllNDU0M2I0NmZjYzMxZTJiNWI0ODE3NzkwM2RlYTY5NjlhYzRhMmNjNjU3MDY1MDM5MGYxYjA4ZDQzYTRjMmY5NzVjN2VkOGJmMzM1NmM3MjE4MzgwMjEyNDUxYThmMTFkZTQ2NTUzY2JjZDY1YjQyNTRkZGI4ZjY2ODM0ZWIyMWRkYTJhOGYzM2I1ODFlMTQ4NDU1N2FjYTFiOTRlZTg5MzFkZGYxNjAzN2I3YTcxNzEzMjFhOTE5MzZhZmMyN2ZmY2UzOTVkZTc1ZDVmNzBjYjhiNWFlZTA1ZmY1MDcwODhkNjVhZjFlNDM5NjZjZDQyY2JlNmY3ZmFjZjhkYWUwNTVkZDgyMjJiMTY5NjUyMTcyM2Y4MTI0NTE3ODU5NWM5ODVhZTkxN2ZkNGIzOTk4NzczZTFhOTdiN2JkMTAwODU0NDZmNDI1OWJjYzA5YTQ1NDkyOTI4MmMxYjg5YjcxZWQ1ODdhNzc1ZTBhM2Q0NTM2MzQxZjQ1ZGFlOTY5ZTgwNmM5NmZlZmM3MTA2Nzc3NmMwMmJhMjIxMjJiOTE5OWIxNGMwYzI4YzA0NDg3NTA5MDcwYjk3ZjNkZDJkNmQ5NzI3MzMxODIwMTc3MzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDViZWNkODcxOTVjMWRlZmY5MGMyNGM5MTI2OWI1NWIzZjA2OWJjMjI1YzMyNmMzMTRjMWE1MTc4NmZmZTE0YzgzMGJlNGU0YmM3M2NiYTM2Yzk3Njc3YjQ0MTY4Mjc5YmU5MWU3Y2RmN2MxOTM4NmFlMjE4NjI3MTlkMTNhM2EwZmZmMDgwM2Q0NjA5NjJmMmNkYTgzNzE0ODQ4NzMyNTJjM2Q3MDU0ZGI4MTQzZTJiMDgxYTM4MTZlZDA4MDRjYTUwOTlhZTVmZWNlODNkNWMyYzM3ODNiMTk4OGI0YjQ2ZGM5NGU1NTU4N2ExMDdlYTE1NDZiZjIyZDI4YTA5N2Y2NTJhNDA2NmRjMjk2NTI2OTA2OWFmMmY1MTc2YmI4Y2U5Y2E2ZDExZjk2NzU3ZjAzMjA0Zjc1NjcwMzU4N2QwMGFkNDI0Nzk2YzkyZmM3YWViNmY0OTQ0MzE5OTllZGEzMDk5MGU0ZjU3NzM2MzJlZDI1OGZlMDI3NjY3MzU5OWRhNmZjZTM1Y2RhZDc3MjZhMGJiMDI0Y2FkOTk2Yjg4ZTBjYjk4ODU0Y2ViNWMwYjZlYzc0OGQ5ZjljZTZhNmNkNDM3ODU4YmFjYjgxNDYxOGEyNzJmZjNhNDE1YzZlMDdmM2RiMDk4ODc3N2ZkZWM4NDVhOTdiZjdkMTAyZGQwIgogCiBQS0NTNyBQYXJzZSBGYWlsdXJlIEludmFsaWQgQVNOMTogQ2hhbmdlIHRhZyAxNyB0byAwMiAjMTQwLjAKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBwa2NzN19hc24xX2ZhaWw6IjMwODIwNTAwMDYwOTJhODY0ODg2ZjcwZDAxMDcwMmEwODIwNGYxMzA4MjA0ZWQwMjAxMDEzMTBmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwYjA2MDkyYTg2NDg4NmY3MGQwMTA3MDFhMDgyMDM0ZDMwODIwMzQ5MzA4MjAyMzFhMDAzMDIwMTAyMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEzMDFlMDIwZDMyMzIzMTMwMzIzODMxMzYzMTMwMzUzNjVhMTcwZDMyMzMzMTMwMzIzODMxMzYzMTMwMzUzNjVhMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMzA4MjAxMjIzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwMzgyMDEwZjAwMzA4MjAxMGEwMjgyMDEwMTAwYzhiNmNmNjk4OTljZDFmMGViYjRjYTY0NWMwNWU3MGUwZDJlZmVkZGNjNjFkMDg5Y2JkNTE1YTM5YTM1NzliOTIzNDNiNjFlYzc1MDA2MGZiNGVkMzc4NzYzMzI0MDBlNDI1ZjFkMzc2YzdlNzVjMjk3MzMxNGVkZjRiYjMwYzhmOGRkMDNiOWZjZmY5NTVhMjQ1ZDQ5MTM3YWQ2ZTYwMDU2Y2FjMTk1NTJhODY1ZDUyMTg3MTg3Y2MwNDJjOWM0OWUzZTNhOWMxN2E1MzRiNDUzY2RhYmMwY2IxMTNiNGY2M2Y1YjMxNzRiOWVlOTkwMmIxOTEwZDExNDk2YTI3OWE3NDMyNmFkY2ZlZTEwYmZkOWU3ZWJhZmJiMzc3YmU5YjYzOTU5MTY1ZDEzZGQ1NzUxMTcxY2FkYWQzYzFkM2FkYWM2OGJjODAxMWQ2MWI1NGNmNjAxNzhiZTM2ODM5YTg5YWM5MWFiNDE5ZTNjYTM3ZDZiYTg4MWQyNTUxOGM0ZGI2OGJjYTZmN2M4MzYwMmY2OTlhODZiMTdmYjFlNzczYmNiZTc0YmI5M2E0OWIyNTFhZTg2NDI4YjU3NDBlMTg2OGJiMWQ2ZmFiOWUyODcxMmU5OGVjMzE5YWQ4ZmNhNGQ3MzAxMGM0YjA5YzRiODA0NTg5NjFlN2NmMDgzNTMwMjAzMDEwMDAxYTM1MzMwNTEzMDFkMDYwMzU1MWQwZTA0MTYwNDE0OGFlZWU1OTQ3Y2M2N2M1ZGQ1MTVhNzZlMmE3ZWNkMzFlZTUyZmRjODMwMWYwNjAzNTUxZDIzMDQxODMwMTY4MDE0OGFlZWU1OTQ3Y2M2N2M1ZGQ1MTVhNzZlMmE3ZWNkMzFlZTUyZmRjODMwMGYwNjAzNTUxZDEzMDEwMWZmMDQwNTMwMDMwMTAxZmYzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAwMzgyMDEwMTAwODIxZDZiOThjZDQ1N2RlYmQyYjA4MWFjYTI3ZWJlY2Q0ZjkzYWNjODI4NDQzYjM5ZWFiZmZhOWZhNGU5ZTQ1NDNiNDZmY2MzMWUyYjViNDgxNzc5MDNkZWE2OTY5YWM0YTJjYzY1NzA2NTAzOTBmMWIwOGQ0M2E0YzJmOTc1YzdlZDhiZjMzNTZjNzIxODM4MDIxMjQ1MWE4ZjExZGU0NjU1M2NiY2Q2NWI0MjU0ZGRiOGY2NjgzNGViMjFkZGEyYThmMzNiNTgxZTE0ODQ1NTdhY2ExYjk0ZWU4OTMxZGRmMTYwMzdiN2E3MTcxMzIxYTkxOTM2YWZjMjdmZmNlMzk1ZGU3NWQ1ZjcwY2I4YjVhZWUwNWZmNTA3MDg4ZDY1YWYxZTQzOTY2Y2Q0MmNiZTZmN2ZhY2Y4ZGFlMDU1ZGQ4MjIyYjE2OTY1MjE3MjNmODEyNDUxNzg1OTVjOTg1YWU5MTdmZDRiMzk5ODc3M2UxYTk3YjdiZDEwMDg1NDQ2ZjQyNTliY2MwOWE0NTQ5MjkyODJjMWI4OWI3MWVkNTg3YTc3NWUwYTNkNDUzNjM0MWY0NWRhZTk2OWU4MDZjOTZmZWZjNzEwNjc3NzZjMDJiYTIyMTIyYjkxOTliMTRjMGMyOGMwNDQ4NzUwOTA3MGI5N2YzZGQyZDZkOTcyNzMzMTgyMDE3NzMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTAyMTQ3YmRlZGRkMjQ0NGNkMWNkZmU1YzQxYTgxMDJjODliN2RmMmU2Y2JmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDA1YmVjZDg3MTk1YzFkZWZmOTBjMjRjOTEyNjliNTViM2YwNjliYzIyNWMzMjZjMzE0YzFhNTE3ODZmZmUxNGM4MzBiZTRlNGJjNzNjYmEzNmM5NzY3N2I0NDE2ODI3OWJlOTFlN2NkZjdjMTkzODZhZTIxODYyNzE5ZDEzYTNhMGZmZjA4MDNkNDYwOTYyZjJjZGE4MzcxNDg0ODczMjUyYzNkNzA1NGRiODE0M2UyYjA4MWEzODE2ZWQwODA0Y2E1MDk5YWU1ZmVjZTgzZDVjMmMzNzgzYjE5ODhiNGI0NmRjOTRlNTU1ODdhMTA3ZWExNTQ2YmYyMmQyOGEwOTdmNjUyYTQwNjZkYzI5NjUyNjkwNjlhZjJmNTE3NmJiOGNlOWNhNmQxMWY5Njc1N2YwMzIwNGY3NTY3MDM1ODdkMDBhZDQyNDc5NmM5MmZjN2FlYjZmNDk0NDMxOTk5ZWRhMzA5OTBlNGY1NzczNjMyZWQyNThmZTAyNzY2NzM1OTlkYTZmY2UzNWNkYWQ3NzI2YTBiYjAyNGNhZDk5NmI4OGUwY2I5ODg1NGNlYjVjMGI2ZWM3NDhkOWY5Y2U2YTZjZDQzNzg1OGJhY2I4MTQ2MThhMjcyZmYzYTQxNWM2ZTA3ZjNkYjA5ODg3NzdmZGVjODQ1YTk3YmY3ZDEwMmRkMCIKIAogUEtDUzcgUGFyc2UgRmFpbHVyZSBJbnZhbGlkIEFTTjE6IENoYW5nZSBsZW5ndGggZnJvbSAxMyB0byAxNCAjMTQxLjAKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBwa2NzN19hc24xX2ZhaWw6IjMwODIwNTAwMDYwOTJhODY0ODg2ZjcwZDAxMDcwMmEwODIwNGYxMzA4MjA0ZWQwMjAxMDEzMTBmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwYjA2MDkyYTg2NDg4NmY3MGQwMTA3MDFhMDgyMDM0ZDMwODIwMzQ5MzA4MjAyMzFhMDAzMDIwMTAyMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEzMDFlMTcwZTMyMzIzMTMwMzIzODMxMzYzMTMwMzUzNjVhMTcwZDMyMzMzMTMwMzIzODMxMzYzMTMwMzUzNjVhMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMzA4MjAxMjIzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwMzgyMDEwZjAwMzA4MjAxMGEwMjgyMDEwMTAwYzhiNmNmNjk4OTljZDFmMGViYjRjYTY0NWMwNWU3MGUwZDJlZmVkZGNjNjFkMDg5Y2JkNTE1YTM5YTM1NzliOTIzNDNiNjFlYzc1MDA2MGZiNGVkMzc4NzYzMzI0MDBlNDI1ZjFkMzc2YzdlNzVjMjk3MzMxNGVkZjRiYjMwYzhmOGRkMDNiOWZjZmY5NTVhMjQ1ZDQ5MTM3YWQ2ZTYwMDU2Y2FjMTk1NTJhODY1ZDUyMTg3MTg3Y2MwNDJjOWM0OWUzZTNhOWMxN2E1MzRiNDUzY2RhYmMwY2IxMTNiNGY2M2Y1YjMxNzRiOWVlOTkwMmIxOTEwZDExNDk2YTI3OWE3NDMyNmFkY2ZlZTEwYmZkOWU3ZWJhZmJiMzc3YmU5YjYzOTU5MTY1ZDEzZGQ1NzUxMTcxY2FkYWQzYzFkM2FkYWM2OGJjODAxMWQ2MWI1NGNmNjAxNzhiZTM2ODM5YTg5YWM5MWFiNDE5ZTNjYTM3ZDZiYTg4MWQyNTUxOGM0ZGI2OGJjYTZmN2M4MzYwMmY2OTlhODZiMTdmYjFlNzczYmNiZTc0YmI5M2E0OWIyNTFhZTg2NDI4YjU3NDBlMTg2OGJiMWQ2ZmFiOWUyODcxMmU5OGVjMzE5YWQ4ZmNhNGQ3MzAxMGM0YjA5YzRiODA0NTg5NjFlN2NmMDgzNTMwMjAzMDEwMDAxYTM1MzMwNTEzMDFkMDYwMzU1MWQwZTA0MTYwNDE0OGFlZWU1OTQ3Y2M2N2M1ZGQ1MTVhNzZlMmE3ZWNkMzFlZTUyZmRjODMwMWYwNjAzNTUxZDIzMDQxODMwMTY4MDE0OGFlZWU1OTQ3Y2M2N2M1ZGQ1MTVhNzZlMmE3ZWNkMzFlZTUyZmRjODMwMGYwNjAzNTUxZDEzMDEwMWZmMDQwNTMwMDMwMTAxZmYzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAwMzgyMDEwMTAwODIxZDZiOThjZDQ1N2RlYmQyYjA4MWFjYTI3ZWJlY2Q0ZjkzYWNjODI4NDQzYjM5ZWFiZmZhOWZhNGU5ZTQ1NDNiNDZmY2MzMWUyYjViNDgxNzc5MDNkZWE2OTY5YWM0YTJjYzY1NzA2NTAzOTBmMWIwOGQ0M2E0YzJmOTc1YzdlZDhiZjMzNTZjNzIxODM4MDIxMjQ1MWE4ZjExZGU0NjU1M2NiY2Q2NWI0MjU0ZGRiOGY2NjgzNGViMjFkZGEyYThmMzNiNTgxZTE0ODQ1NTdhY2ExYjk0ZWU4OTMxZGRmMTYwMzdiN2E3MTcxMzIxYTkxOTM2YWZjMjdmZmNlMzk1ZGU3NWQ1ZjcwY2I4YjVhZWUwNWZmNTA3MDg4ZDY1YWYxZTQzOTY2Y2Q0MmNiZTZmN2ZhY2Y4ZGFlMDU1ZGQ4MjIyYjE2OTY1MjE3MjNmODEyNDUxNzg1OTVjOTg1YWU5MTdmZDRiMzk5ODc3M2UxYTk3YjdiZDEwMDg1NDQ2ZjQyNTliY2MwOWE0NTQ5MjkyODJjMWI4OWI3MWVkNTg3YTc3NWUwYTNkNDUzNjM0MWY0NWRhZTk2OWU4MDZjOTZmZWZjNzEwNjc3NzZjMDJiYTIyMTIyYjkxOTliMTRjMGMyOGMwNDQ4NzUwOTA3MGI5N2YzZGQyZDZkOTcyNzMzMTgyMDE3NzMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTAyMTQ3YmRlZGRkMjQ0NGNkMWNkZmU1YzQxYTgxMDJjODliN2RmMmU2Y2JmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDA1YmVjZDg3MTk1YzFkZWZmOTBjMjRjOTEyNjliNTViM2YwNjliYzIyNWMzMjZjMzE0YzFhNTE3ODZmZmUxNGM4MzBiZTRlNGJjNzNjYmEzNmM5NzY3N2I0NDE2ODI3OWJlOTFlN2NkZjdjMTkzODZhZTIxODYyNzE5ZDEzYTNhMGZmZjA4MDNkNDYwOTYyZjJjZGE4MzcxNDg0ODczMjUyYzNkNzA1NGRiODE0M2UyYjA4MWEzODE2ZWQwODA0Y2E1MDk5YWU1ZmVjZTgzZDVjMmMzNzgzYjE5ODhiNGI0NmRjOTRlNTU1ODdhMTA3ZWExNTQ2YmYyMmQyOGEwOTdmNjUyYTQwNjZkYzI5NjUyNjkwNjlhZjJmNTE3NmJiOGNlOWNhNmQxMWY5Njc1N2YwMzIwNGY3NTY3MDM1ODdkMDBhZDQyNDc5NmM5MmZjN2FlYjZmNDk0NDMxOTk5ZWRhMzA5OTBlNGY1NzczNjMyZWQyNThmZTAyNzY2NzM1OTlkYTZmY2UzNWNkYWQ3NzI2YTBiYjAyNGNhZDk5NmI4OGUwY2I5ODg1NGNlYjVjMGI2ZWM3NDhkOWY5Y2U2YTZjZDQzNzg1OGJhY2I4MTQ2MThhMjcyZmYzYTQxNWM2ZTA3ZjNkYjA5ODg3NzdmZGVjODQ1YTk3YmY3ZDEwMmRkMCIKIAogUEtDUzcgUGFyc2UgRmFpbHVyZSBJbnZhbGlkIEFTTjE6IENoYW5nZSBsZW5ndGggZnJvbSAxMyB0byAxMiAjMTQyLjAKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBwa2NzN19hc24xX2ZhaWw6IjMwODIwNTAwMDYwOTJhODY0ODg2ZjcwZDAxMDcwMmEwODIwNGYxMzA4MjA0ZWQwMjAxMDEzMTBmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwYjA2MDkyYTg2NDg4NmY3MGQwMTA3MDFhMDgyMDM0ZDMwODIwMzQ5MzA4MjAyMzFhMDAzMDIwMTAyMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEzMDFlMTcwYzMyMzIzMTMwMzIzODMxMzYzMTMwMzUzNjVhMTcwZDMyMzMzMTMwMzIzODMxMzYzMTMwMzUzNjVhMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMzA4MjAxMjIzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwMzgyMDEwZjAwMzA4MjAxMGEwMjgyMDEwMTAwYzhiNmNmNjk4OTljZDFmMGViYjRjYTY0NWMwNWU3MGUwZDJlZmVkZGNjNjFkMDg5Y2JkNTE1YTM5YTM1NzliOTIzNDNiNjFlYzc1MDA2MGZiNGVkMzc4NzYzMzI0MDBlNDI1ZjFkMzc2YzdlNzVjMjk3MzMxNGVkZjRiYjMwYzhmOGRkMDNiOWZjZmY5NTVhMjQ1ZDQ5MTM3YWQ2ZTYwMDU2Y2FjMTk1NTJhODY1ZDUyMTg3MTg3Y2MwNDJjOWM0OWUzZTNhOWMxN2E1MzRiNDUzY2RhYmMwY2IxMTNiNGY2M2Y1YjMxNzRiOWVlOTkwMmIxOTEwZDExNDk2YTI3OWE3NDMyNmFkY2ZlZTEwYmZkOWU3ZWJhZmJiMzc3YmU5YjYzOTU5MTY1ZDEzZGQ1NzUxMTcxY2FkYWQzYzFkM2FkYWM2OGJjODAxMWQ2MWI1NGNmNjAxNzhiZTM2ODM5YTg5YWM5MWFiNDE5ZTNjYTM3ZDZiYTg4MWQyNTUxOGM0ZGI2OGJjYTZmN2M4MzYwMmY2OTlhODZiMTdmYjFlNzczYmNiZTc0YmI5M2E0OWIyNTFhZTg2NDI4YjU3NDBlMTg2OGJiMWQ2ZmFiOWUyODcxMmU5OGVjMzE5YWQ4ZmNhNGQ3MzAxMGM0YjA5YzRiODA0NTg5NjFlN2NmMDgzNTMwMjAzMDEwMDAxYTM1MzMwNTEzMDFkMDYwMzU1MWQwZTA0MTYwNDE0OGFlZWU1OTQ3Y2M2N2M1ZGQ1MTVhNzZlMmE3ZWNkMzFlZTUyZmRjODMwMWYwNjAzNTUxZDIzMDQxODMwMTY4MDE0OGFlZWU1OTQ3Y2M2N2M1ZGQ1MTVhNzZlMmE3ZWNkMzFlZTUyZmRjODMwMGYwNjAzNTUxZDEzMDEwMWZmMDQwNTMwMDMwMTAxZmYzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAwMzgyMDEwMTAwODIxZDZiOThjZDQ1N2RlYmQyYjA4MWFjYTI3ZWJlY2Q0ZjkzYWNjODI4NDQzYjM5ZWFiZmZhOWZhNGU5ZTQ1NDNiNDZmY2MzMWUyYjViNDgxNzc5MDNkZWE2OTY5YWM0YTJjYzY1NzA2NTAzOTBmMWIwOGQ0M2E0YzJmOTc1YzdlZDhiZjMzNTZjNzIxODM4MDIxMjQ1MWE4ZjExZGU0NjU1M2NiY2Q2NWI0MjU0ZGRiOGY2NjgzNGViMjFkZGEyYThmMzNiNTgxZTE0ODQ1NTdhY2ExYjk0ZWU4OTMxZGRmMTYwMzdiN2E3MTcxMzIxYTkxOTM2YWZjMjdmZmNlMzk1ZGU3NWQ1ZjcwY2I4YjVhZWUwNWZmNTA3MDg4ZDY1YWYxZTQzOTY2Y2Q0MmNiZTZmN2ZhY2Y4ZGFlMDU1ZGQ4MjIyYjE2OTY1MjE3MjNmODEyNDUxNzg1OTVjOTg1YWU5MTdmZDRiMzk5ODc3M2UxYTk3YjdiZDEwMDg1NDQ2ZjQyNTliY2MwOWE0NTQ5MjkyODJjMWI4OWI3MWVkNTg3YTc3NWUwYTNkNDUzNjM0MWY0NWRhZTk2OWU4MDZjOTZmZWZjNzEwNjc3NzZjMDJiYTIyMTIyYjkxOTliMTRjMGMyOGMwNDQ4NzUwOTA3MGI5N2YzZGQyZDZkOTcyNzMzMTgyMDE3NzMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTAyMTQ3YmRlZGRkMjQ0NGNkMWNkZmU1YzQxYTgxMDJjODliN2RmMmU2Y2JmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDA1YmVjZDg3MTk1YzFkZWZmOTBjMjRjOTEyNjliNTViM2YwNjliYzIyNWMzMjZjMzE0YzFhNTE3ODZmZmUxNGM4MzBiZTRlNGJjNzNjYmEzNmM5NzY3N2I0NDE2ODI3OWJlOTFlN2NkZjdjMTkzODZhZTIxODYyNzE5ZDEzYTNhMGZmZjA4MDNkNDYwOTYyZjJjZGE4MzcxNDg0ODczMjUyYzNkNzA1NGRiODE0M2UyYjA4MWEzODE2ZWQwODA0Y2E1MDk5YWU1ZmVjZTgzZDVjMmMzNzgzYjE5ODhiNGI0NmRjOTRlNTU1ODdhMTA3ZWExNTQ2YmYyMmQyOGEwOTdmNjUyYTQwNjZkYzI5NjUyNjkwNjlhZjJmNTE3NmJiOGNlOWNhNmQxMWY5Njc1N2YwMzIwNGY3NTY3MDM1ODdkMDBhZDQyNDc5NmM5MmZjN2FlYjZmNDk0NDMxOTk5ZWRhMzA5OTBlNGY1NzczNjMyZWQyNThmZTAyNzY2NzM1OTlkYTZmY2UzNWNkYWQ3NzI2YTBiYjAyNGNhZDk5NmI4OGUwY2I5ODg1NGNlYjVjMGI2ZWM3NDhkOWY5Y2U2YTZjZDQzNzg1OGJhY2I4MTQ2MThhMjcyZmYzYTQxNWM2ZTA3ZjNkYjA5ODg3NzdmZGVjODQ1YTk3YmY3ZDEwMmRkMCIKIAogUEtDUzcgUGFyc2UgRmFpbHVyZSBJbnZhbGlkIEFTTjE6IENoYW5nZSB0YWcgMTcgdG8gMDIgIzE0My4wCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NgogcGtjczdfYXNuMV9mYWlsOiIzMDgyMDUwMDA2MDkyYTg2NDg4NmY3MGQwMTA3MDJhMDgyMDRmMTMwODIwNGVkMDIwMTAxMzEwZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGIwNjA5MmE4NjQ4ODZmNzBkMDEwNzAxYTA4MjAzNGQzMDgyMDM0OTMwODIwMjMxYTAwMzAyMDEwMjAyMTQ3YmRlZGRkMjQ0NGNkMWNkZmU1YzQxYTgxMDJjODliN2RmMmU2Y2JmMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMzAxZTE3MGQzMjMyMzEzMDMyMzgzMTM2MzEzMDM1MzY1YTAyMGQzMjMzMzEzMDMyMzgzMTM2MzEzMDM1MzY1YTMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTMwODIwMTIyMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDM4MjAxMGYwMDMwODIwMTBhMDI4MjAxMDEwMGM4YjZjZjY5ODk5Y2QxZjBlYmI0Y2E2NDVjMDVlNzBlMGQyZWZlZGRjYzYxZDA4OWNiZDUxNWEzOWEzNTc5YjkyMzQzYjYxZWM3NTAwNjBmYjRlZDM3ODc2MzMyNDAwZTQyNWYxZDM3NmM3ZTc1YzI5NzMzMTRlZGY0YmIzMGM4ZjhkZDAzYjlmY2ZmOTU1YTI0NWQ0OTEzN2FkNmU2MDA1NmNhYzE5NTUyYTg2NWQ1MjE4NzE4N2NjMDQyYzljNDllM2UzYTljMTdhNTM0YjQ1M2NkYWJjMGNiMTEzYjRmNjNmNWIzMTc0YjllZTk5MDJiMTkxMGQxMTQ5NmEyNzlhNzQzMjZhZGNmZWUxMGJmZDllN2ViYWZiYjM3N2JlOWI2Mzk1OTE2NWQxM2RkNTc1MTE3MWNhZGFkM2MxZDNhZGFjNjhiYzgwMTFkNjFiNTRjZjYwMTc4YmUzNjgzOWE4OWFjOTFhYjQxOWUzY2EzN2Q2YmE4ODFkMjU1MThjNGRiNjhiY2E2ZjdjODM2MDJmNjk5YTg2YjE3ZmIxZTc3M2JjYmU3NGJiOTNhNDliMjUxYWU4NjQyOGI1NzQwZTE4NjhiYjFkNmZhYjllMjg3MTJlOThlYzMxOWFkOGZjYTRkNzMwMTBjNGIwOWM0YjgwNDU4OTYxZTdjZjA4MzUzMDIwMzAxMDAwMWEzNTMzMDUxMzAxZDA2MDM1NTFkMGUwNDE2MDQxNDhhZWVlNTk0N2NjNjdjNWRkNTE1YTc2ZTJhN2VjZDMxZWU1MmZkYzgzMDFmMDYwMzU1MWQyMzA0MTgzMDE2ODAxNDhhZWVlNTk0N2NjNjdjNWRkNTE1YTc2ZTJhN2VjZDMxZWU1MmZkYzgzMDBmMDYwMzU1MWQxMzAxMDFmZjA0MDUzMDAzMDEwMWZmMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMDM4MjAxMDEwMDgyMWQ2Yjk4Y2Q0NTdkZWJkMmIwODFhY2EyN2ViZWNkNGY5M2FjYzgyODQ0M2IzOWVhYmZmYTlmYTRlOWU0NTQzYjQ2ZmNjMzFlMmI1YjQ4MTc3OTAzZGVhNjk2OWFjNGEyY2M2NTcwNjUwMzkwZjFiMDhkNDNhNGMyZjk3NWM3ZWQ4YmYzMzU2YzcyMTgzODAyMTI0NTFhOGYxMWRlNDY1NTNjYmNkNjViNDI1NGRkYjhmNjY4MzRlYjIxZGRhMmE4ZjMzYjU4MWUxNDg0NTU3YWNhMWI5NGVlODkzMWRkZjE2MDM3YjdhNzE3MTMyMWE5MTkzNmFmYzI3ZmZjZTM5NWRlNzVkNWY3MGNiOGI1YWVlMDVmZjUwNzA4OGQ2NWFmMWU0Mzk2NmNkNDJjYmU2ZjdmYWNmOGRhZTA1NWRkODIyMmIxNjk2NTIxNzIzZjgxMjQ1MTc4NTk1Yzk4NWFlOTE3ZmQ0YjM5OTg3NzNlMWE5N2I3YmQxMDA4NTQ0NmY0MjU5YmNjMDlhNDU0OTI5MjgyYzFiODliNzFlZDU4N2E3NzVlMGEzZDQ1MzYzNDFmNDVkYWU5NjllODA2Yzk2ZmVmYzcxMDY3Nzc2YzAyYmEyMjEyMmI5MTk5YjE0YzBjMjhjMDQ0ODc1MDkwNzBiOTdmM2RkMmQ2ZDk3MjczMzE4MjAxNzczMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwNWJlY2Q4NzE5NWMxZGVmZjkwYzI0YzkxMjY5YjU1YjNmMDY5YmMyMjVjMzI2YzMxNGMxYTUxNzg2ZmZlMTRjODMwYmU0ZTRiYzczY2JhMzZjOTc2NzdiNDQxNjgyNzliZTkxZTdjZGY3YzE5Mzg2YWUyMTg2MjcxOWQxM2EzYTBmZmYwODAzZDQ2MDk2MmYyY2RhODM3MTQ4NDg3MzI1MmMzZDcwNTRkYjgxNDNlMmIwODFhMzgxNmVkMDgwNGNhNTA5OWFlNWZlY2U4M2Q1YzJjMzc4M2IxOTg4YjRiNDZkYzk0ZTU1NTg3YTEwN2VhMTU0NmJmMjJkMjhhMDk3ZjY1MmE0MDY2ZGMyOTY1MjY5MDY5YWYyZjUxNzZiYjhjZTljYTZkMTFmOTY3NTdmMDMyMDRmNzU2NzAzNTg3ZDAwYWQ0MjQ3OTZjOTJmYzdhZWI2ZjQ5NDQzMTk5OWVkYTMwOTkwZTRmNTc3MzYzMmVkMjU4ZmUwMjc2NjczNTk5ZGE2ZmNlMzVjZGFkNzcyNmEwYmIwMjRjYWQ5OTZiODhlMGNiOTg4NTRjZWI1YzBiNmVjNzQ4ZDlmOWNlNmE2Y2Q0Mzc4NThiYWNiODE0NjE4YTI3MmZmM2E0MTVjNmUwN2YzZGIwOTg4Nzc3ZmRlYzg0NWE5N2JmN2QxMDJkZDAiCiAKIFBLQ1M3IFBhcnNlIEZhaWx1cmUgSW52YWxpZCBBU04xOiBDaGFuZ2UgbGVuZ3RoIGZyb20gMTMgdG8gMTQgIzE0NC4wCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NgogcGtjczdfYXNuMV9mYWlsOiIzMDgyMDUwMDA2MDkyYTg2NDg4NmY3MGQwMTA3MDJhMDgyMDRmMTMwODIwNGVkMDIwMTAxMzEwZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGIwNjA5MmE4NjQ4ODZmNzBkMDEwNzAxYTA4MjAzNGQzMDgyMDM0OTMwODIwMjMxYTAwMzAyMDEwMjAyMTQ3YmRlZGRkMjQ0NGNkMWNkZmU1YzQxYTgxMDJjODliN2RmMmU2Y2JmMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMzAxZTE3MGQzMjMyMzEzMDMyMzgzMTM2MzEzMDM1MzY1YTE3MGUzMjMzMzEzMDMyMzgzMTM2MzEzMDM1MzY1YTMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTMwODIwMTIyMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDM4MjAxMGYwMDMwODIwMTBhMDI4MjAxMDEwMGM4YjZjZjY5ODk5Y2QxZjBlYmI0Y2E2NDVjMDVlNzBlMGQyZWZlZGRjYzYxZDA4OWNiZDUxNWEzOWEzNTc5YjkyMzQzYjYxZWM3NTAwNjBmYjRlZDM3ODc2MzMyNDAwZTQyNWYxZDM3NmM3ZTc1YzI5NzMzMTRlZGY0YmIzMGM4ZjhkZDAzYjlmY2ZmOTU1YTI0NWQ0OTEzN2FkNmU2MDA1NmNhYzE5NTUyYTg2NWQ1MjE4NzE4N2NjMDQyYzljNDllM2UzYTljMTdhNTM0YjQ1M2NkYWJjMGNiMTEzYjRmNjNmNWIzMTc0YjllZTk5MDJiMTkxMGQxMTQ5NmEyNzlhNzQzMjZhZGNmZWUxMGJmZDllN2ViYWZiYjM3N2JlOWI2Mzk1OTE2NWQxM2RkNTc1MTE3MWNhZGFkM2MxZDNhZGFjNjhiYzgwMTFkNjFiNTRjZjYwMTc4YmUzNjgzOWE4OWFjOTFhYjQxOWUzY2EzN2Q2YmE4ODFkMjU1MThjNGRiNjhiY2E2ZjdjODM2MDJmNjk5YTg2YjE3ZmIxZTc3M2JjYmU3NGJiOTNhNDliMjUxYWU4NjQyOGI1NzQwZTE4NjhiYjFkNmZhYjllMjg3MTJlOThlYzMxOWFkOGZjYTRkNzMwMTBjNGIwOWM0YjgwNDU4OTYxZTdjZjA4MzUzMDIwMzAxMDAwMWEzNTMzMDUxMzAxZDA2MDM1NTFkMGUwNDE2MDQxNDhhZWVlNTk0N2NjNjdjNWRkNTE1YTc2ZTJhN2VjZDMxZWU1MmZkYzgzMDFmMDYwMzU1MWQyMzA0MTgzMDE2ODAxNDhhZWVlNTk0N2NjNjdjNWRkNTE1YTc2ZTJhN2VjZDMxZWU1MmZkYzgzMDBmMDYwMzU1MWQxMzAxMDFmZjA0MDUzMDAzMDEwMWZmMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMDM4MjAxMDEwMDgyMWQ2Yjk4Y2Q0NTdkZWJkMmIwODFhY2EyN2ViZWNkNGY5M2FjYzgyODQ0M2IzOWVhYmZmYTlmYTRlOWU0NTQzYjQ2ZmNjMzFlMmI1YjQ4MTc3OTAzZGVhNjk2OWFjNGEyY2M2NTcwNjUwMzkwZjFiMDhkNDNhNGMyZjk3NWM3ZWQ4YmYzMzU2YzcyMTgzODAyMTI0NTFhOGYxMWRlNDY1NTNjYmNkNjViNDI1NGRkYjhmNjY4MzRlYjIxZGRhMmE4ZjMzYjU4MWUxNDg0NTU3YWNhMWI5NGVlODkzMWRkZjE2MDM3YjdhNzE3MTMyMWE5MTkzNmFmYzI3ZmZjZTM5NWRlNzVkNWY3MGNiOGI1YWVlMDVmZjUwNzA4OGQ2NWFmMWU0Mzk2NmNkNDJjYmU2ZjdmYWNmOGRhZTA1NWRkODIyMmIxNjk2NTIxNzIzZjgxMjQ1MTc4NTk1Yzk4NWFlOTE3ZmQ0YjM5OTg3NzNlMWE5N2I3YmQxMDA4NTQ0NmY0MjU5YmNjMDlhNDU0OTI5MjgyYzFiODliNzFlZDU4N2E3NzVlMGEzZDQ1MzYzNDFmNDVkYWU5NjllODA2Yzk2ZmVmYzcxMDY3Nzc2YzAyYmEyMjEyMmI5MTk5YjE0YzBjMjhjMDQ0ODc1MDkwNzBiOTdmM2RkMmQ2ZDk3MjczMzE4MjAxNzczMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwNWJlY2Q4NzE5NWMxZGVmZjkwYzI0YzkxMjY5YjU1YjNmMDY5YmMyMjVjMzI2YzMxNGMxYTUxNzg2ZmZlMTRjODMwYmU0ZTRiYzczY2JhMzZjOTc2NzdiNDQxNjgyNzliZTkxZTdjZGY3YzE5Mzg2YWUyMTg2MjcxOWQxM2EzYTBmZmYwODAzZDQ2MDk2MmYyY2RhODM3MTQ4NDg3MzI1MmMzZDcwNTRkYjgxNDNlMmIwODFhMzgxNmVkMDgwNGNhNTA5OWFlNWZlY2U4M2Q1YzJjMzc4M2IxOTg4YjRiNDZkYzk0ZTU1NTg3YTEwN2VhMTU0NmJmMjJkMjhhMDk3ZjY1MmE0MDY2ZGMyOTY1MjY5MDY5YWYyZjUxNzZiYjhjZTljYTZkMTFmOTY3NTdmMDMyMDRmNzU2NzAzNTg3ZDAwYWQ0MjQ3OTZjOTJmYzdhZWI2ZjQ5NDQzMTk5OWVkYTMwOTkwZTRmNTc3MzYzMmVkMjU4ZmUwMjc2NjczNTk5ZGE2ZmNlMzVjZGFkNzcyNmEwYmIwMjRjYWQ5OTZiODhlMGNiOTg4NTRjZWI1YzBiNmVjNzQ4ZDlmOWNlNmE2Y2Q0Mzc4NThiYWNiODE0NjE4YTI3MmZmM2E0MTVjNmUwN2YzZGIwOTg4Nzc3ZmRlYzg0NWE5N2JmN2QxMDJkZDAiCiAKIFBLQ1M3IFBhcnNlIEZhaWx1cmUgSW52YWxpZCBBU04xOiBDaGFuZ2UgbGVuZ3RoIGZyb20gMTMgdG8gMTIgIzE0NS4wCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NgogcGtjczdfYXNuMV9mYWlsOiIzMDgyMDUwMDA2MDkyYTg2NDg4NmY3MGQwMTA3MDJhMDgyMDRmMTMwODIwNGVkMDIwMTAxMzEwZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGIwNjA5MmE4NjQ4ODZmNzBkMDEwNzAxYTA4MjAzNGQzMDgyMDM0OTMwODIwMjMxYTAwMzAyMDEwMjAyMTQ3YmRlZGRkMjQ0NGNkMWNkZmU1YzQxYTgxMDJjODliN2RmMmU2Y2JmMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMzAxZTE3MGQzMjMyMzEzMDMyMzgzMTM2MzEzMDM1MzY1YTE3MGMzMjMzMzEzMDMyMzgzMTM2MzEzMDM1MzY1YTMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTMwODIwMTIyMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDM4MjAxMGYwMDMwODIwMTBhMDI4MjAxMDEwMGM4YjZjZjY5ODk5Y2QxZjBlYmI0Y2E2NDVjMDVlNzBlMGQyZWZlZGRjYzYxZDA4OWNiZDUxNWEzOWEzNTc5YjkyMzQzYjYxZWM3NTAwNjBmYjRlZDM3ODc2MzMyNDAwZTQyNWYxZDM3NmM3ZTc1YzI5NzMzMTRlZGY0YmIzMGM4ZjhkZDAzYjlmY2ZmOTU1YTI0NWQ0OTEzN2FkNmU2MDA1NmNhYzE5NTUyYTg2NWQ1MjE4NzE4N2NjMDQyYzljNDllM2UzYTljMTdhNTM0YjQ1M2NkYWJjMGNiMTEzYjRmNjNmNWIzMTc0YjllZTk5MDJiMTkxMGQxMTQ5NmEyNzlhNzQzMjZhZGNmZWUxMGJmZDllN2ViYWZiYjM3N2JlOWI2Mzk1OTE2NWQxM2RkNTc1MTE3MWNhZGFkM2MxZDNhZGFjNjhiYzgwMTFkNjFiNTRjZjYwMTc4YmUzNjgzOWE4OWFjOTFhYjQxOWUzY2EzN2Q2YmE4ODFkMjU1MThjNGRiNjhiY2E2ZjdjODM2MDJmNjk5YTg2YjE3ZmIxZTc3M2JjYmU3NGJiOTNhNDliMjUxYWU4NjQyOGI1NzQwZTE4NjhiYjFkNmZhYjllMjg3MTJlOThlYzMxOWFkOGZjYTRkNzMwMTBjNGIwOWM0YjgwNDU4OTYxZTdjZjA4MzUzMDIwMzAxMDAwMWEzNTMzMDUxMzAxZDA2MDM1NTFkMGUwNDE2MDQxNDhhZWVlNTk0N2NjNjdjNWRkNTE1YTc2ZTJhN2VjZDMxZWU1MmZkYzgzMDFmMDYwMzU1MWQyMzA0MTgzMDE2ODAxNDhhZWVlNTk0N2NjNjdjNWRkNTE1YTc2ZTJhN2VjZDMxZWU1MmZkYzgzMDBmMDYwMzU1MWQxMzAxMDFmZjA0MDUzMDAzMDEwMWZmMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMDM4MjAxMDEwMDgyMWQ2Yjk4Y2Q0NTdkZWJkMmIwODFhY2EyN2ViZWNkNGY5M2FjYzgyODQ0M2IzOWVhYmZmYTlmYTRlOWU0NTQzYjQ2ZmNjMzFlMmI1YjQ4MTc3OTAzZGVhNjk2OWFjNGEyY2M2NTcwNjUwMzkwZjFiMDhkNDNhNGMyZjk3NWM3ZWQ4YmYzMzU2YzcyMTgzODAyMTI0NTFhOGYxMWRlNDY1NTNjYmNkNjViNDI1NGRkYjhmNjY4MzRlYjIxZGRhMmE4ZjMzYjU4MWUxNDg0NTU3YWNhMWI5NGVlODkzMWRkZjE2MDM3YjdhNzE3MTMyMWE5MTkzNmFmYzI3ZmZjZTM5NWRlNzVkNWY3MGNiOGI1YWVlMDVmZjUwNzA4OGQ2NWFmMWU0Mzk2NmNkNDJjYmU2ZjdmYWNmOGRhZTA1NWRkODIyMmIxNjk2NTIxNzIzZjgxMjQ1MTc4NTk1Yzk4NWFlOTE3ZmQ0YjM5OTg3NzNlMWE5N2I3YmQxMDA4NTQ0NmY0MjU5YmNjMDlhNDU0OTI5MjgyYzFiODliNzFlZDU4N2E3NzVlMGEzZDQ1MzYzNDFmNDVkYWU5NjllODA2Yzk2ZmVmYzcxMDY3Nzc2YzAyYmEyMjEyMmI5MTk5YjE0YzBjMjhjMDQ0ODc1MDkwNzBiOTdmM2RkMmQ2ZDk3MjczMzE4MjAxNzczMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwNWJlY2Q4NzE5NWMxZGVmZjkwYzI0YzkxMjY5YjU1YjNmMDY5YmMyMjVjMzI2YzMxNGMxYTUxNzg2ZmZlMTRjODMwYmU0ZTRiYzczY2JhMzZjOTc2NzdiNDQxNjgyNzliZTkxZTdjZGY3YzE5Mzg2YWUyMTg2MjcxOWQxM2EzYTBmZmYwODAzZDQ2MDk2MmYyY2RhODM3MTQ4NDg3MzI1MmMzZDcwNTRkYjgxNDNlMmIwODFhMzgxNmVkMDgwNGNhNTA5OWFlNWZlY2U4M2Q1YzJjMzc4M2IxOTg4YjRiNDZkYzk0ZTU1NTg3YTEwN2VhMTU0NmJmMjJkMjhhMDk3ZjY1MmE0MDY2ZGMyOTY1MjY5MDY5YWYyZjUxNzZiYjhjZTljYTZkMTFmOTY3NTdmMDMyMDRmNzU2NzAzNTg3ZDAwYWQ0MjQ3OTZjOTJmYzdhZWI2ZjQ5NDQzMTk5OWVkYTMwOTkwZTRmNTc3MzYzMmVkMjU4ZmUwMjc2NjczNTk5ZGE2ZmNlMzVjZGFkNzcyNmEwYmIwMjRjYWQ5OTZiODhlMGNiOTg4NTRjZWI1YzBiNmVjNzQ4ZDlmOWNlNmE2Y2Q0Mzc4NThiYWNiODE0NjE4YTI3MmZmM2E0MTVjNmUwN2YzZGIwOTg4Nzc3ZmRlYzg0NWE5N2JmN2QxMDJkZDAiCiAKIFBLQ1M3IFBhcnNlIEZhaWx1cmUgSW52YWxpZCBBU04xOiBDaGFuZ2UgdGFnIDMwIHRvIDAyICMxNDYuMAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHBrY3M3X2FzbjFfZmFpbDoiMzA4MjA1MDAwNjA5MmE4NjQ4ODZmNzBkMDEwNzAyYTA4MjA0ZjEzMDgyMDRlZDAyMDEwMTMxMGYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBiMDYwOTJhODY0ODg2ZjcwZDAxMDcwMWEwODIwMzRkMzA4MjAzNDkzMDgyMDIzMWEwMDMwMjAxMDIwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTMwMWUxNzBkMzIzMjMxMzAzMjM4MzEzNjMxMzAzNTM2NWExNzBkMzIzMzMxMzAzMjM4MzEzNjMxMzAzNTM2NWEwMjM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEzMDgyMDEyMjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDAzODIwMTBmMDAzMDgyMDEwYTAyODIwMTAxMDBjOGI2Y2Y2OTg5OWNkMWYwZWJiNGNhNjQ1YzA1ZTcwZTBkMmVmZWRkY2M2MWQwODljYmQ1MTVhMzlhMzU3OWI5MjM0M2I2MWVjNzUwMDYwZmI0ZWQzNzg3NjMzMjQwMGU0MjVmMWQzNzZjN2U3NWMyOTczMzE0ZWRmNGJiMzBjOGY4ZGQwM2I5ZmNmZjk1NWEyNDVkNDkxMzdhZDZlNjAwNTZjYWMxOTU1MmE4NjVkNTIxODcxODdjYzA0MmM5YzQ5ZTNlM2E5YzE3YTUzNGI0NTNjZGFiYzBjYjExM2I0ZjYzZjViMzE3NGI5ZWU5OTAyYjE5MTBkMTE0OTZhMjc5YTc0MzI2YWRjZmVlMTBiZmQ5ZTdlYmFmYmIzNzdiZTliNjM5NTkxNjVkMTNkZDU3NTExNzFjYWRhZDNjMWQzYWRhYzY4YmM4MDExZDYxYjU0Y2Y2MDE3OGJlMzY4MzlhODlhYzkxYWI0MTllM2NhMzdkNmJhODgxZDI1NTE4YzRkYjY4YmNhNmY3YzgzNjAyZjY5OWE4NmIxN2ZiMWU3NzNiY2JlNzRiYjkzYTQ5YjI1MWFlODY0MjhiNTc0MGUxODY4YmIxZDZmYWI5ZTI4NzEyZTk4ZWMzMTlhZDhmY2E0ZDczMDEwYzRiMDljNGI4MDQ1ODk2MWU3Y2YwODM1MzAyMDMwMTAwMDFhMzUzMzA1MTMwMWQwNjAzNTUxZDBlMDQxNjA0MTQ4YWVlZTU5NDdjYzY3YzVkZDUxNWE3NmUyYTdlY2QzMWVlNTJmZGM4MzAxZjA2MDM1NTFkMjMwNDE4MzAxNjgwMTQ4YWVlZTU5NDdjYzY3YzVkZDUxNWE3NmUyYTdlY2QzMWVlNTJmZGM4MzAwZjA2MDM1NTFkMTMwMTAxZmYwNDA1MzAwMzAxMDFmZjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDAzODIwMTAxMDA4MjFkNmI5OGNkNDU3ZGViZDJiMDgxYWNhMjdlYmVjZDRmOTNhY2M4Mjg0NDNiMzllYWJmZmE5ZmE0ZTllNDU0M2I0NmZjYzMxZTJiNWI0ODE3NzkwM2RlYTY5NjlhYzRhMmNjNjU3MDY1MDM5MGYxYjA4ZDQzYTRjMmY5NzVjN2VkOGJmMzM1NmM3MjE4MzgwMjEyNDUxYThmMTFkZTQ2NTUzY2JjZDY1YjQyNTRkZGI4ZjY2ODM0ZWIyMWRkYTJhOGYzM2I1ODFlMTQ4NDU1N2FjYTFiOTRlZTg5MzFkZGYxNjAzN2I3YTcxNzEzMjFhOTE5MzZhZmMyN2ZmY2UzOTVkZTc1ZDVmNzBjYjhiNWFlZTA1ZmY1MDcwODhkNjVhZjFlNDM5NjZjZDQyY2JlNmY3ZmFjZjhkYWUwNTVkZDgyMjJiMTY5NjUyMTcyM2Y4MTI0NTE3ODU5NWM5ODVhZTkxN2ZkNGIzOTk4NzczZTFhOTdiN2JkMTAwODU0NDZmNDI1OWJjYzA5YTQ1NDkyOTI4MmMxYjg5YjcxZWQ1ODdhNzc1ZTBhM2Q0NTM2MzQxZjQ1ZGFlOTY5ZTgwNmM5NmZlZmM3MTA2Nzc3NmMwMmJhMjIxMjJiOTE5OWIxNGMwYzI4YzA0NDg3NTA5MDcwYjk3ZjNkZDJkNmQ5NzI3MzMxODIwMTc3MzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDViZWNkODcxOTVjMWRlZmY5MGMyNGM5MTI2OWI1NWIzZjA2OWJjMjI1YzMyNmMzMTRjMWE1MTc4NmZmZTE0YzgzMGJlNGU0YmM3M2NiYTM2Yzk3Njc3YjQ0MTY4Mjc5YmU5MWU3Y2RmN2MxOTM4NmFlMjE4NjI3MTlkMTNhM2EwZmZmMDgwM2Q0NjA5NjJmMmNkYTgzNzE0ODQ4NzMyNTJjM2Q3MDU0ZGI4MTQzZTJiMDgxYTM4MTZlZDA4MDRjYTUwOTlhZTVmZWNlODNkNWMyYzM3ODNiMTk4OGI0YjQ2ZGM5NGU1NTU4N2ExMDdlYTE1NDZiZjIyZDI4YTA5N2Y2NTJhNDA2NmRjMjk2NTI2OTA2OWFmMmY1MTc2YmI4Y2U5Y2E2ZDExZjk2NzU3ZjAzMjA0Zjc1NjcwMzU4N2QwMGFkNDI0Nzk2YzkyZmM3YWViNmY0OTQ0MzE5OTllZGEzMDk5MGU0ZjU3NzM2MzJlZDI1OGZlMDI3NjY3MzU5OWRhNmZjZTM1Y2RhZDc3MjZhMGJiMDI0Y2FkOTk2Yjg4ZTBjYjk4ODU0Y2ViNWMwYjZlYzc0OGQ5ZjljZTZhNmNkNDM3ODU4YmFjYjgxNDYxOGEyNzJmZjNhNDE1YzZlMDdmM2RiMDk4ODc3N2ZkZWM4NDVhOTdiZjdkMTAyZGQwIgogCiBQS0NTNyBQYXJzZSBGYWlsdXJlIEludmFsaWQgQVNOMTogQ2hhbmdlIGxlbmd0aCBmcm9tIDUyIHRvIDUzICMxNDcuMAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHBrY3M3X2FzbjFfZmFpbDoiMzA4MjA1MDAwNjA5MmE4NjQ4ODZmNzBkMDEwNzAyYTA4MjA0ZjEzMDgyMDRlZDAyMDEwMTMxMGYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBiMDYwOTJhODY0ODg2ZjcwZDAxMDcwMWEwODIwMzRkMzA4MjAzNDkzMDgyMDIzMWEwMDMwMjAxMDIwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTMwMWUxNzBkMzIzMjMxMzAzMjM4MzEzNjMxMzAzNTM2NWExNzBkMzIzMzMxMzAzMjM4MzEzNjMxMzAzNTM2NWEzMDM1MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEzMDgyMDEyMjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDAzODIwMTBmMDAzMDgyMDEwYTAyODIwMTAxMDBjOGI2Y2Y2OTg5OWNkMWYwZWJiNGNhNjQ1YzA1ZTcwZTBkMmVmZWRkY2M2MWQwODljYmQ1MTVhMzlhMzU3OWI5MjM0M2I2MWVjNzUwMDYwZmI0ZWQzNzg3NjMzMjQwMGU0MjVmMWQzNzZjN2U3NWMyOTczMzE0ZWRmNGJiMzBjOGY4ZGQwM2I5ZmNmZjk1NWEyNDVkNDkxMzdhZDZlNjAwNTZjYWMxOTU1MmE4NjVkNTIxODcxODdjYzA0MmM5YzQ5ZTNlM2E5YzE3YTUzNGI0NTNjZGFiYzBjYjExM2I0ZjYzZjViMzE3NGI5ZWU5OTAyYjE5MTBkMTE0OTZhMjc5YTc0MzI2YWRjZmVlMTBiZmQ5ZTdlYmFmYmIzNzdiZTliNjM5NTkxNjVkMTNkZDU3NTExNzFjYWRhZDNjMWQzYWRhYzY4YmM4MDExZDYxYjU0Y2Y2MDE3OGJlMzY4MzlhODlhYzkxYWI0MTllM2NhMzdkNmJhODgxZDI1NTE4YzRkYjY4YmNhNmY3YzgzNjAyZjY5OWE4NmIxN2ZiMWU3NzNiY2JlNzRiYjkzYTQ5YjI1MWFlODY0MjhiNTc0MGUxODY4YmIxZDZmYWI5ZTI4NzEyZTk4ZWMzMTlhZDhmY2E0ZDczMDEwYzRiMDljNGI4MDQ1ODk2MWU3Y2YwODM1MzAyMDMwMTAwMDFhMzUzMzA1MTMwMWQwNjAzNTUxZDBlMDQxNjA0MTQ4YWVlZTU5NDdjYzY3YzVkZDUxNWE3NmUyYTdlY2QzMWVlNTJmZGM4MzAxZjA2MDM1NTFkMjMwNDE4MzAxNjgwMTQ4YWVlZTU5NDdjYzY3YzVkZDUxNWE3NmUyYTdlY2QzMWVlNTJmZGM4MzAwZjA2MDM1NTFkMTMwMTAxZmYwNDA1MzAwMzAxMDFmZjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDAzODIwMTAxMDA4MjFkNmI5OGNkNDU3ZGViZDJiMDgxYWNhMjdlYmVjZDRmOTNhY2M4Mjg0NDNiMzllYWJmZmE5ZmE0ZTllNDU0M2I0NmZjYzMxZTJiNWI0ODE3NzkwM2RlYTY5NjlhYzRhMmNjNjU3MDY1MDM5MGYxYjA4ZDQzYTRjMmY5NzVjN2VkOGJmMzM1NmM3MjE4MzgwMjEyNDUxYThmMTFkZTQ2NTUzY2JjZDY1YjQyNTRkZGI4ZjY2ODM0ZWIyMWRkYTJhOGYzM2I1ODFlMTQ4NDU1N2FjYTFiOTRlZTg5MzFkZGYxNjAzN2I3YTcxNzEzMjFhOTE5MzZhZmMyN2ZmY2UzOTVkZTc1ZDVmNzBjYjhiNWFlZTA1ZmY1MDcwODhkNjVhZjFlNDM5NjZjZDQyY2JlNmY3ZmFjZjhkYWUwNTVkZDgyMjJiMTY5NjUyMTcyM2Y4MTI0NTE3ODU5NWM5ODVhZTkxN2ZkNGIzOTk4NzczZTFhOTdiN2JkMTAwODU0NDZmNDI1OWJjYzA5YTQ1NDkyOTI4MmMxYjg5YjcxZWQ1ODdhNzc1ZTBhM2Q0NTM2MzQxZjQ1ZGFlOTY5ZTgwNmM5NmZlZmM3MTA2Nzc3NmMwMmJhMjIxMjJiOTE5OWIxNGMwYzI4YzA0NDg3NTA5MDcwYjk3ZjNkZDJkNmQ5NzI3MzMxODIwMTc3MzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDViZWNkODcxOTVjMWRlZmY5MGMyNGM5MTI2OWI1NWIzZjA2OWJjMjI1YzMyNmMzMTRjMWE1MTc4NmZmZTE0YzgzMGJlNGU0YmM3M2NiYTM2Yzk3Njc3YjQ0MTY4Mjc5YmU5MWU3Y2RmN2MxOTM4NmFlMjE4NjI3MTlkMTNhM2EwZmZmMDgwM2Q0NjA5NjJmMmNkYTgzNzE0ODQ4NzMyNTJjM2Q3MDU0ZGI4MTQzZTJiMDgxYTM4MTZlZDA4MDRjYTUwOTlhZTVmZWNlODNkNWMyYzM3ODNiMTk4OGI0YjQ2ZGM5NGU1NTU4N2ExMDdlYTE1NDZiZjIyZDI4YTA5N2Y2NTJhNDA2NmRjMjk2NTI2OTA2OWFmMmY1MTc2YmI4Y2U5Y2E2ZDExZjk2NzU3ZjAzMjA0Zjc1NjcwMzU4N2QwMGFkNDI0Nzk2YzkyZmM3YWViNmY0OTQ0MzE5OTllZGEzMDk5MGU0ZjU3NzM2MzJlZDI1OGZlMDI3NjY3MzU5OWRhNmZjZTM1Y2RhZDc3MjZhMGJiMDI0Y2FkOTk2Yjg4ZTBjYjk4ODU0Y2ViNWMwYjZlYzc0OGQ5ZjljZTZhNmNkNDM3ODU4YmFjYjgxNDYxOGEyNzJmZjNhNDE1YzZlMDdmM2RiMDk4ODc3N2ZkZWM4NDVhOTdiZjdkMTAyZGQwIgogCiBQS0NTNyBQYXJzZSBGYWlsdXJlIEludmFsaWQgQVNOMTogQ2hhbmdlIGNvbnRlbnRzIG9mIHRhZyAzMCB0byBjb250YWluIG9uZSB1bmFjY291bnRlZCBleHRyYSBieXRlICMxNDguMAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHBrY3M3X2FzbjFfZmFpbDoiMzA4MjA1MDAwNjA5MmE4NjQ4ODZmNzBkMDEwNzAyYTA4MjA0ZjEzMDgyMDRlZDAyMDEwMTMxMGYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBiMDYwOTJhODY0ODg2ZjcwZDAxMDcwMWEwODIwMzRkMzA4MjAzNDkzMDgyMDIzMWEwMDMwMjAxMDIwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTMwMWUxNzBkMzIzMjMxMzAzMjM4MzEzNjMxMzAzNTM2NWExNzBkMzIzMzMxMzAzMjM4MzEzNjMxMzAzNTM2NWEzMDM1MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEwMDMwODIwMTIyMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDM4MjAxMGYwMDMwODIwMTBhMDI4MjAxMDEwMGM4YjZjZjY5ODk5Y2QxZjBlYmI0Y2E2NDVjMDVlNzBlMGQyZWZlZGRjYzYxZDA4OWNiZDUxNWEzOWEzNTc5YjkyMzQzYjYxZWM3NTAwNjBmYjRlZDM3ODc2MzMyNDAwZTQyNWYxZDM3NmM3ZTc1YzI5NzMzMTRlZGY0YmIzMGM4ZjhkZDAzYjlmY2ZmOTU1YTI0NWQ0OTEzN2FkNmU2MDA1NmNhYzE5NTUyYTg2NWQ1MjE4NzE4N2NjMDQyYzljNDllM2UzYTljMTdhNTM0YjQ1M2NkYWJjMGNiMTEzYjRmNjNmNWIzMTc0YjllZTk5MDJiMTkxMGQxMTQ5NmEyNzlhNzQzMjZhZGNmZWUxMGJmZDllN2ViYWZiYjM3N2JlOWI2Mzk1OTE2NWQxM2RkNTc1MTE3MWNhZGFkM2MxZDNhZGFjNjhiYzgwMTFkNjFiNTRjZjYwMTc4YmUzNjgzOWE4OWFjOTFhYjQxOWUzY2EzN2Q2YmE4ODFkMjU1MThjNGRiNjhiY2E2ZjdjODM2MDJmNjk5YTg2YjE3ZmIxZTc3M2JjYmU3NGJiOTNhNDliMjUxYWU4NjQyOGI1NzQwZTE4NjhiYjFkNmZhYjllMjg3MTJlOThlYzMxOWFkOGZjYTRkNzMwMTBjNGIwOWM0YjgwNDU4OTYxZTdjZjA4MzUzMDIwMzAxMDAwMWEzNTMzMDUxMzAxZDA2MDM1NTFkMGUwNDE2MDQxNDhhZWVlNTk0N2NjNjdjNWRkNTE1YTc2ZTJhN2VjZDMxZWU1MmZkYzgzMDFmMDYwMzU1MWQyMzA0MTgzMDE2ODAxNDhhZWVlNTk0N2NjNjdjNWRkNTE1YTc2ZTJhN2VjZDMxZWU1MmZkYzgzMDBmMDYwMzU1MWQxMzAxMDFmZjA0MDUzMDAzMDEwMWZmMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMDM4MjAxMDEwMDgyMWQ2Yjk4Y2Q0NTdkZWJkMmIwODFhY2EyN2ViZWNkNGY5M2FjYzgyODQ0M2IzOWVhYmZmYTlmYTRlOWU0NTQzYjQ2ZmNjMzFlMmI1YjQ4MTc3OTAzZGVhNjk2OWFjNGEyY2M2NTcwNjUwMzkwZjFiMDhkNDNhNGMyZjk3NWM3ZWQ4YmYzMzU2YzcyMTgzODAyMTI0NTFhOGYxMWRlNDY1NTNjYmNkNjViNDI1NGRkYjhmNjY4MzRlYjIxZGRhMmE4ZjMzYjU4MWUxNDg0NTU3YWNhMWI5NGVlODkzMWRkZjE2MDM3YjdhNzE3MTMyMWE5MTkzNmFmYzI3ZmZjZTM5NWRlNzVkNWY3MGNiOGI1YWVlMDVmZjUwNzA4OGQ2NWFmMWU0Mzk2NmNkNDJjYmU2ZjdmYWNmOGRhZTA1NWRkODIyMmIxNjk2NTIxNzIzZjgxMjQ1MTc4NTk1Yzk4NWFlOTE3ZmQ0YjM5OTg3NzNlMWE5N2I3YmQxMDA4NTQ0NmY0MjU5YmNjMDlhNDU0OTI5MjgyYzFiODliNzFlZDU4N2E3NzVlMGEzZDQ1MzYzNDFmNDVkYWU5NjllODA2Yzk2ZmVmYzcxMDY3Nzc2YzAyYmEyMjEyMmI5MTk5YjE0YzBjMjhjMDQ0ODc1MDkwNzBiOTdmM2RkMmQ2ZDk3MjczMzE4MjAxNzczMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwNWJlY2Q4NzE5NWMxZGVmZjkwYzI0YzkxMjY5YjU1YjNmMDY5YmMyMjVjMzI2YzMxNGMxYTUxNzg2ZmZlMTRjODMwYmU0ZTRiYzczY2JhMzZjOTc2NzdiNDQxNjgyNzliZTkxZTdjZGY3YzE5Mzg2YWUyMTg2MjcxOWQxM2EzYTBmZmYwODAzZDQ2MDk2MmYyY2RhODM3MTQ4NDg3MzI1MmMzZDcwNTRkYjgxNDNlMmIwODFhMzgxNmVkMDgwNGNhNTA5OWFlNWZlY2U4M2Q1YzJjMzc4M2IxOTg4YjRiNDZkYzk0ZTU1NTg3YTEwN2VhMTU0NmJmMjJkMjhhMDk3ZjY1MmE0MDY2ZGMyOTY1MjY5MDY5YWYyZjUxNzZiYjhjZTljYTZkMTFmOTY3NTdmMDMyMDRmNzU2NzAzNTg3ZDAwYWQ0MjQ3OTZjOTJmYzdhZWI2ZjQ5NDQzMTk5OWVkYTMwOTkwZTRmNTc3MzYzMmVkMjU4ZmUwMjc2NjczNTk5ZGE2ZmNlMzVjZGFkNzcyNmEwYmIwMjRjYWQ5OTZiODhlMGNiOTg4NTRjZWI1YzBiNmVjNzQ4ZDlmOWNlNmE2Y2Q0Mzc4NThiYWNiODE0NjE4YTI3MmZmM2E0MTVjNmUwN2YzZGIwOTg4Nzc3ZmRlYzg0NWE5N2JmN2QxMDJkZDAiCiAKIFBLQ1M3IFBhcnNlIEZhaWx1cmUgSW52YWxpZCBBU04xOiBDaGFuZ2UgbGVuZ3RoIGZyb20gNTIgdG8gNTEgIzE0OS4wCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NgogcGtjczdfYXNuMV9mYWlsOiIzMDgyMDUwMDA2MDkyYTg2NDg4NmY3MGQwMTA3MDJhMDgyMDRmMTMwODIwNGVkMDIwMTAxMzEwZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGIwNjA5MmE4NjQ4ODZmNzBkMDEwNzAxYTA4MjAzNGQzMDgyMDM0OTMwODIwMjMxYTAwMzAyMDEwMjAyMTQ3YmRlZGRkMjQ0NGNkMWNkZmU1YzQxYTgxMDJjODliN2RmMmU2Y2JmMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMzAxZTE3MGQzMjMyMzEzMDMyMzgzMTM2MzEzMDM1MzY1YTE3MGQzMjMzMzEzMDMyMzgzMTM2MzEzMDM1MzY1YTMwMzMzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTMwODIwMTIyMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDM4MjAxMGYwMDMwODIwMTBhMDI4MjAxMDEwMGM4YjZjZjY5ODk5Y2QxZjBlYmI0Y2E2NDVjMDVlNzBlMGQyZWZlZGRjYzYxZDA4OWNiZDUxNWEzOWEzNTc5YjkyMzQzYjYxZWM3NTAwNjBmYjRlZDM3ODc2MzMyNDAwZTQyNWYxZDM3NmM3ZTc1YzI5NzMzMTRlZGY0YmIzMGM4ZjhkZDAzYjlmY2ZmOTU1YTI0NWQ0OTEzN2FkNmU2MDA1NmNhYzE5NTUyYTg2NWQ1MjE4NzE4N2NjMDQyYzljNDllM2UzYTljMTdhNTM0YjQ1M2NkYWJjMGNiMTEzYjRmNjNmNWIzMTc0YjllZTk5MDJiMTkxMGQxMTQ5NmEyNzlhNzQzMjZhZGNmZWUxMGJmZDllN2ViYWZiYjM3N2JlOWI2Mzk1OTE2NWQxM2RkNTc1MTE3MWNhZGFkM2MxZDNhZGFjNjhiYzgwMTFkNjFiNTRjZjYwMTc4YmUzNjgzOWE4OWFjOTFhYjQxOWUzY2EzN2Q2YmE4ODFkMjU1MThjNGRiNjhiY2E2ZjdjODM2MDJmNjk5YTg2YjE3ZmIxZTc3M2JjYmU3NGJiOTNhNDliMjUxYWU4NjQyOGI1NzQwZTE4NjhiYjFkNmZhYjllMjg3MTJlOThlYzMxOWFkOGZjYTRkNzMwMTBjNGIwOWM0YjgwNDU4OTYxZTdjZjA4MzUzMDIwMzAxMDAwMWEzNTMzMDUxMzAxZDA2MDM1NTFkMGUwNDE2MDQxNDhhZWVlNTk0N2NjNjdjNWRkNTE1YTc2ZTJhN2VjZDMxZWU1MmZkYzgzMDFmMDYwMzU1MWQyMzA0MTgzMDE2ODAxNDhhZWVlNTk0N2NjNjdjNWRkNTE1YTc2ZTJhN2VjZDMxZWU1MmZkYzgzMDBmMDYwMzU1MWQxMzAxMDFmZjA0MDUzMDAzMDEwMWZmMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMDM4MjAxMDEwMDgyMWQ2Yjk4Y2Q0NTdkZWJkMmIwODFhY2EyN2ViZWNkNGY5M2FjYzgyODQ0M2IzOWVhYmZmYTlmYTRlOWU0NTQzYjQ2ZmNjMzFlMmI1YjQ4MTc3OTAzZGVhNjk2OWFjNGEyY2M2NTcwNjUwMzkwZjFiMDhkNDNhNGMyZjk3NWM3ZWQ4YmYzMzU2YzcyMTgzODAyMTI0NTFhOGYxMWRlNDY1NTNjYmNkNjViNDI1NGRkYjhmNjY4MzRlYjIxZGRhMmE4ZjMzYjU4MWUxNDg0NTU3YWNhMWI5NGVlODkzMWRkZjE2MDM3YjdhNzE3MTMyMWE5MTkzNmFmYzI3ZmZjZTM5NWRlNzVkNWY3MGNiOGI1YWVlMDVmZjUwNzA4OGQ2NWFmMWU0Mzk2NmNkNDJjYmU2ZjdmYWNmOGRhZTA1NWRkODIyMmIxNjk2NTIxNzIzZjgxMjQ1MTc4NTk1Yzk4NWFlOTE3ZmQ0YjM5OTg3NzNlMWE5N2I3YmQxMDA4NTQ0NmY0MjU5YmNjMDlhNDU0OTI5MjgyYzFiODliNzFlZDU4N2E3NzVlMGEzZDQ1MzYzNDFmNDVkYWU5NjllODA2Yzk2ZmVmYzcxMDY3Nzc2YzAyYmEyMjEyMmI5MTk5YjE0YzBjMjhjMDQ0ODc1MDkwNzBiOTdmM2RkMmQ2ZDk3MjczMzE4MjAxNzczMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwNWJlY2Q4NzE5NWMxZGVmZjkwYzI0YzkxMjY5YjU1YjNmMDY5YmMyMjVjMzI2YzMxNGMxYTUxNzg2ZmZlMTRjODMwYmU0ZTRiYzczY2JhMzZjOTc2NzdiNDQxNjgyNzliZTkxZTdjZGY3YzE5Mzg2YWUyMTg2MjcxOWQxM2EzYTBmZmYwODAzZDQ2MDk2MmYyY2RhODM3MTQ4NDg3MzI1MmMzZDcwNTRkYjgxNDNlMmIwODFhMzgxNmVkMDgwNGNhNTA5OWFlNWZlY2U4M2Q1YzJjMzc4M2IxOTg4YjRiNDZkYzk0ZTU1NTg3YTEwN2VhMTU0NmJmMjJkMjhhMDk3ZjY1MmE0MDY2ZGMyOTY1MjY5MDY5YWYyZjUxNzZiYjhjZTljYTZkMTFmOTY3NTdmMDMyMDRmNzU2NzAzNTg3ZDAwYWQ0MjQ3OTZjOTJmYzdhZWI2ZjQ5NDQzMTk5OWVkYTMwOTkwZTRmNTc3MzYzMmVkMjU4ZmUwMjc2NjczNTk5ZGE2ZmNlMzVjZGFkNzcyNmEwYmIwMjRjYWQ5OTZiODhlMGNiOTg4NTRjZWI1YzBiNmVjNzQ4ZDlmOWNlNmE2Y2Q0Mzc4NThiYWNiODE0NjE4YTI3MmZmM2E0MTVjNmUwN2YzZGIwOTg4Nzc3ZmRlYzg0NWE5N2JmN2QxMDJkZDAiCiAKIFBLQ1M3IFBhcnNlIEZhaWx1cmUgSW52YWxpZCBBU04xOiBDaGFuZ2UgdGFnIDMxIHRvIDAyICMxNTAuMAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHBrY3M3X2FzbjFfZmFpbDoiMzA4MjA1MDAwNjA5MmE4NjQ4ODZmNzBkMDEwNzAyYTA4MjA0ZjEzMDgyMDRlZDAyMDEwMTMxMGYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBiMDYwOTJhODY0ODg2ZjcwZDAxMDcwMWEwODIwMzRkMzA4MjAzNDkzMDgyMDIzMWEwMDMwMjAxMDIwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTMwMWUxNzBkMzIzMjMxMzAzMjM4MzEzNjMxMzAzNTM2NWExNzBkMzIzMzMxMzAzMjM4MzEzNjMxMzAzNTM2NWEzMDM0MDIwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEzMDgyMDEyMjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDAzODIwMTBmMDAzMDgyMDEwYTAyODIwMTAxMDBjOGI2Y2Y2OTg5OWNkMWYwZWJiNGNhNjQ1YzA1ZTcwZTBkMmVmZWRkY2M2MWQwODljYmQ1MTVhMzlhMzU3OWI5MjM0M2I2MWVjNzUwMDYwZmI0ZWQzNzg3NjMzMjQwMGU0MjVmMWQzNzZjN2U3NWMyOTczMzE0ZWRmNGJiMzBjOGY4ZGQwM2I5ZmNmZjk1NWEyNDVkNDkxMzdhZDZlNjAwNTZjYWMxOTU1MmE4NjVkNTIxODcxODdjYzA0MmM5YzQ5ZTNlM2E5YzE3YTUzNGI0NTNjZGFiYzBjYjExM2I0ZjYzZjViMzE3NGI5ZWU5OTAyYjE5MTBkMTE0OTZhMjc5YTc0MzI2YWRjZmVlMTBiZmQ5ZTdlYmFmYmIzNzdiZTliNjM5NTkxNjVkMTNkZDU3NTExNzFjYWRhZDNjMWQzYWRhYzY4YmM4MDExZDYxYjU0Y2Y2MDE3OGJlMzY4MzlhODlhYzkxYWI0MTllM2NhMzdkNmJhODgxZDI1NTE4YzRkYjY4YmNhNmY3YzgzNjAyZjY5OWE4NmIxN2ZiMWU3NzNiY2JlNzRiYjkzYTQ5YjI1MWFlODY0MjhiNTc0MGUxODY4YmIxZDZmYWI5ZTI4NzEyZTk4ZWMzMTlhZDhmY2E0ZDczMDEwYzRiMDljNGI4MDQ1ODk2MWU3Y2YwODM1MzAyMDMwMTAwMDFhMzUzMzA1MTMwMWQwNjAzNTUxZDBlMDQxNjA0MTQ4YWVlZTU5NDdjYzY3YzVkZDUxNWE3NmUyYTdlY2QzMWVlNTJmZGM4MzAxZjA2MDM1NTFkMjMwNDE4MzAxNjgwMTQ4YWVlZTU5NDdjYzY3YzVkZDUxNWE3NmUyYTdlY2QzMWVlNTJmZGM4MzAwZjA2MDM1NTFkMTMwMTAxZmYwNDA1MzAwMzAxMDFmZjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDAzODIwMTAxMDA4MjFkNmI5OGNkNDU3ZGViZDJiMDgxYWNhMjdlYmVjZDRmOTNhY2M4Mjg0NDNiMzllYWJmZmE5ZmE0ZTllNDU0M2I0NmZjYzMxZTJiNWI0ODE3NzkwM2RlYTY5NjlhYzRhMmNjNjU3MDY1MDM5MGYxYjA4ZDQzYTRjMmY5NzVjN2VkOGJmMzM1NmM3MjE4MzgwMjEyNDUxYThmMTFkZTQ2NTUzY2JjZDY1YjQyNTRkZGI4ZjY2ODM0ZWIyMWRkYTJhOGYzM2I1ODFlMTQ4NDU1N2FjYTFiOTRlZTg5MzFkZGYxNjAzN2I3YTcxNzEzMjFhOTE5MzZhZmMyN2ZmY2UzOTVkZTc1ZDVmNzBjYjhiNWFlZTA1ZmY1MDcwODhkNjVhZjFlNDM5NjZjZDQyY2JlNmY3ZmFjZjhkYWUwNTVkZDgyMjJiMTY5NjUyMTcyM2Y4MTI0NTE3ODU5NWM5ODVhZTkxN2ZkNGIzOTk4NzczZTFhOTdiN2JkMTAwODU0NDZmNDI1OWJjYzA5YTQ1NDkyOTI4MmMxYjg5YjcxZWQ1ODdhNzc1ZTBhM2Q0NTM2MzQxZjQ1ZGFlOTY5ZTgwNmM5NmZlZmM3MTA2Nzc3NmMwMmJhMjIxMjJiOTE5OWIxNGMwYzI4YzA0NDg3NTA5MDcwYjk3ZjNkZDJkNmQ5NzI3MzMxODIwMTc3MzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDViZWNkODcxOTVjMWRlZmY5MGMyNGM5MTI2OWI1NWIzZjA2OWJjMjI1YzMyNmMzMTRjMWE1MTc4NmZmZTE0YzgzMGJlNGU0YmM3M2NiYTM2Yzk3Njc3YjQ0MTY4Mjc5YmU5MWU3Y2RmN2MxOTM4NmFlMjE4NjI3MTlkMTNhM2EwZmZmMDgwM2Q0NjA5NjJmMmNkYTgzNzE0ODQ4NzMyNTJjM2Q3MDU0ZGI4MTQzZTJiMDgxYTM4MTZlZDA4MDRjYTUwOTlhZTVmZWNlODNkNWMyYzM3ODNiMTk4OGI0YjQ2ZGM5NGU1NTU4N2ExMDdlYTE1NDZiZjIyZDI4YTA5N2Y2NTJhNDA2NmRjMjk2NTI2OTA2OWFmMmY1MTc2YmI4Y2U5Y2E2ZDExZjk2NzU3ZjAzMjA0Zjc1NjcwMzU4N2QwMGFkNDI0Nzk2YzkyZmM3YWViNmY0OTQ0MzE5OTllZGEzMDk5MGU0ZjU3NzM2MzJlZDI1OGZlMDI3NjY3MzU5OWRhNmZjZTM1Y2RhZDc3MjZhMGJiMDI0Y2FkOTk2Yjg4ZTBjYjk4ODU0Y2ViNWMwYjZlYzc0OGQ5ZjljZTZhNmNkNDM3ODU4YmFjYjgxNDYxOGEyNzJmZjNhNDE1YzZlMDdmM2RiMDk4ODc3N2ZkZWM4NDVhOTdiZjdkMTAyZGQwIgogCiBQS0NTNyBQYXJzZSBGYWlsdXJlIEludmFsaWQgQVNOMTogQ2hhbmdlIGxlbmd0aCBmcm9tIDExIHRvIDEyICMxNTEuMAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHBrY3M3X2FzbjFfZmFpbDoiMzA4MjA1MDAwNjA5MmE4NjQ4ODZmNzBkMDEwNzAyYTA4MjA0ZjEzMDgyMDRlZDAyMDEwMTMxMGYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBiMDYwOTJhODY0ODg2ZjcwZDAxMDcwMWEwODIwMzRkMzA4MjAzNDkzMDgyMDIzMWEwMDMwMjAxMDIwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTMwMWUxNzBkMzIzMjMxMzAzMjM4MzEzNjMxMzAzNTM2NWExNzBkMzIzMzMxMzAzMjM4MzEzNjMxMzAzNTM2NWEzMDM0MzEwYzMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEzMDgyMDEyMjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDAzODIwMTBmMDAzMDgyMDEwYTAyODIwMTAxMDBjOGI2Y2Y2OTg5OWNkMWYwZWJiNGNhNjQ1YzA1ZTcwZTBkMmVmZWRkY2M2MWQwODljYmQ1MTVhMzlhMzU3OWI5MjM0M2I2MWVjNzUwMDYwZmI0ZWQzNzg3NjMzMjQwMGU0MjVmMWQzNzZjN2U3NWMyOTczMzE0ZWRmNGJiMzBjOGY4ZGQwM2I5ZmNmZjk1NWEyNDVkNDkxMzdhZDZlNjAwNTZjYWMxOTU1MmE4NjVkNTIxODcxODdjYzA0MmM5YzQ5ZTNlM2E5YzE3YTUzNGI0NTNjZGFiYzBjYjExM2I0ZjYzZjViMzE3NGI5ZWU5OTAyYjE5MTBkMTE0OTZhMjc5YTc0MzI2YWRjZmVlMTBiZmQ5ZTdlYmFmYmIzNzdiZTliNjM5NTkxNjVkMTNkZDU3NTExNzFjYWRhZDNjMWQzYWRhYzY4YmM4MDExZDYxYjU0Y2Y2MDE3OGJlMzY4MzlhODlhYzkxYWI0MTllM2NhMzdkNmJhODgxZDI1NTE4YzRkYjY4YmNhNmY3YzgzNjAyZjY5OWE4NmIxN2ZiMWU3NzNiY2JlNzRiYjkzYTQ5YjI1MWFlODY0MjhiNTc0MGUxODY4YmIxZDZmYWI5ZTI4NzEyZTk4ZWMzMTlhZDhmY2E0ZDczMDEwYzRiMDljNGI4MDQ1ODk2MWU3Y2YwODM1MzAyMDMwMTAwMDFhMzUzMzA1MTMwMWQwNjAzNTUxZDBlMDQxNjA0MTQ4YWVlZTU5NDdjYzY3YzVkZDUxNWE3NmUyYTdlY2QzMWVlNTJmZGM4MzAxZjA2MDM1NTFkMjMwNDE4MzAxNjgwMTQ4YWVlZTU5NDdjYzY3YzVkZDUxNWE3NmUyYTdlY2QzMWVlNTJmZGM4MzAwZjA2MDM1NTFkMTMwMTAxZmYwNDA1MzAwMzAxMDFmZjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDAzODIwMTAxMDA4MjFkNmI5OGNkNDU3ZGViZDJiMDgxYWNhMjdlYmVjZDRmOTNhY2M4Mjg0NDNiMzllYWJmZmE5ZmE0ZTllNDU0M2I0NmZjYzMxZTJiNWI0ODE3NzkwM2RlYTY5NjlhYzRhMmNjNjU3MDY1MDM5MGYxYjA4ZDQzYTRjMmY5NzVjN2VkOGJmMzM1NmM3MjE4MzgwMjEyNDUxYThmMTFkZTQ2NTUzY2JjZDY1YjQyNTRkZGI4ZjY2ODM0ZWIyMWRkYTJhOGYzM2I1ODFlMTQ4NDU1N2FjYTFiOTRlZTg5MzFkZGYxNjAzN2I3YTcxNzEzMjFhOTE5MzZhZmMyN2ZmY2UzOTVkZTc1ZDVmNzBjYjhiNWFlZTA1ZmY1MDcwODhkNjVhZjFlNDM5NjZjZDQyY2JlNmY3ZmFjZjhkYWUwNTVkZDgyMjJiMTY5NjUyMTcyM2Y4MTI0NTE3ODU5NWM5ODVhZTkxN2ZkNGIzOTk4NzczZTFhOTdiN2JkMTAwODU0NDZmNDI1OWJjYzA5YTQ1NDkyOTI4MmMxYjg5YjcxZWQ1ODdhNzc1ZTBhM2Q0NTM2MzQxZjQ1ZGFlOTY5ZTgwNmM5NmZlZmM3MTA2Nzc3NmMwMmJhMjIxMjJiOTE5OWIxNGMwYzI4YzA0NDg3NTA5MDcwYjk3ZjNkZDJkNmQ5NzI3MzMxODIwMTc3MzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDViZWNkODcxOTVjMWRlZmY5MGMyNGM5MTI2OWI1NWIzZjA2OWJjMjI1YzMyNmMzMTRjMWE1MTc4NmZmZTE0YzgzMGJlNGU0YmM3M2NiYTM2Yzk3Njc3YjQ0MTY4Mjc5YmU5MWU3Y2RmN2MxOTM4NmFlMjE4NjI3MTlkMTNhM2EwZmZmMDgwM2Q0NjA5NjJmMmNkYTgzNzE0ODQ4NzMyNTJjM2Q3MDU0ZGI4MTQzZTJiMDgxYTM4MTZlZDA4MDRjYTUwOTlhZTVmZWNlODNkNWMyYzM3ODNiMTk4OGI0YjQ2ZGM5NGU1NTU4N2ExMDdlYTE1NDZiZjIyZDI4YTA5N2Y2NTJhNDA2NmRjMjk2NTI2OTA2OWFmMmY1MTc2YmI4Y2U5Y2E2ZDExZjk2NzU3ZjAzMjA0Zjc1NjcwMzU4N2QwMGFkNDI0Nzk2YzkyZmM3YWViNmY0OTQ0MzE5OTllZGEzMDk5MGU0ZjU3NzM2MzJlZDI1OGZlMDI3NjY3MzU5OWRhNmZjZTM1Y2RhZDc3MjZhMGJiMDI0Y2FkOTk2Yjg4ZTBjYjk4ODU0Y2ViNWMwYjZlYzc0OGQ5ZjljZTZhNmNkNDM3ODU4YmFjYjgxNDYxOGEyNzJmZjNhNDE1YzZlMDdmM2RiMDk4ODc3N2ZkZWM4NDVhOTdiZjdkMTAyZGQwIgogCiBQS0NTNyBQYXJzZSBGYWlsdXJlIEludmFsaWQgQVNOMTogQ2hhbmdlIGNvbnRlbnRzIG9mIHRhZyAzMSB0byBjb250YWluIG9uZSB1bmFjY291bnRlZCBleHRyYSBieXRlICMxNTIuMAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHBrY3M3X2FzbjFfZmFpbDoiMzA4MjA1MDAwNjA5MmE4NjQ4ODZmNzBkMDEwNzAyYTA4MjA0ZjEzMDgyMDRlZDAyMDEwMTMxMGYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBiMDYwOTJhODY0ODg2ZjcwZDAxMDcwMWEwODIwMzRkMzA4MjAzNDkzMDgyMDIzMWEwMDMwMjAxMDIwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTMwMWUxNzBkMzIzMjMxMzAzMjM4MzEzNjMxMzAzNTM2NWExNzBkMzIzMzMxMzAzMjM4MzEzNjMxMzAzNTM2NWEzMDM0MzEwYzMwMDkwNjAzNTUwNDA2MTMwMjRlNGMwMDMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTMwODIwMTIyMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDM4MjAxMGYwMDMwODIwMTBhMDI4MjAxMDEwMGM4YjZjZjY5ODk5Y2QxZjBlYmI0Y2E2NDVjMDVlNzBlMGQyZWZlZGRjYzYxZDA4OWNiZDUxNWEzOWEzNTc5YjkyMzQzYjYxZWM3NTAwNjBmYjRlZDM3ODc2MzMyNDAwZTQyNWYxZDM3NmM3ZTc1YzI5NzMzMTRlZGY0YmIzMGM4ZjhkZDAzYjlmY2ZmOTU1YTI0NWQ0OTEzN2FkNmU2MDA1NmNhYzE5NTUyYTg2NWQ1MjE4NzE4N2NjMDQyYzljNDllM2UzYTljMTdhNTM0YjQ1M2NkYWJjMGNiMTEzYjRmNjNmNWIzMTc0YjllZTk5MDJiMTkxMGQxMTQ5NmEyNzlhNzQzMjZhZGNmZWUxMGJmZDllN2ViYWZiYjM3N2JlOWI2Mzk1OTE2NWQxM2RkNTc1MTE3MWNhZGFkM2MxZDNhZGFjNjhiYzgwMTFkNjFiNTRjZjYwMTc4YmUzNjgzOWE4OWFjOTFhYjQxOWUzY2EzN2Q2YmE4ODFkMjU1MThjNGRiNjhiY2E2ZjdjODM2MDJmNjk5YTg2YjE3ZmIxZTc3M2JjYmU3NGJiOTNhNDliMjUxYWU4NjQyOGI1NzQwZTE4NjhiYjFkNmZhYjllMjg3MTJlOThlYzMxOWFkOGZjYTRkNzMwMTBjNGIwOWM0YjgwNDU4OTYxZTdjZjA4MzUzMDIwMzAxMDAwMWEzNTMzMDUxMzAxZDA2MDM1NTFkMGUwNDE2MDQxNDhhZWVlNTk0N2NjNjdjNWRkNTE1YTc2ZTJhN2VjZDMxZWU1MmZkYzgzMDFmMDYwMzU1MWQyMzA0MTgzMDE2ODAxNDhhZWVlNTk0N2NjNjdjNWRkNTE1YTc2ZTJhN2VjZDMxZWU1MmZkYzgzMDBmMDYwMzU1MWQxMzAxMDFmZjA0MDUzMDAzMDEwMWZmMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMDM4MjAxMDEwMDgyMWQ2Yjk4Y2Q0NTdkZWJkMmIwODFhY2EyN2ViZWNkNGY5M2FjYzgyODQ0M2IzOWVhYmZmYTlmYTRlOWU0NTQzYjQ2ZmNjMzFlMmI1YjQ4MTc3OTAzZGVhNjk2OWFjNGEyY2M2NTcwNjUwMzkwZjFiMDhkNDNhNGMyZjk3NWM3ZWQ4YmYzMzU2YzcyMTgzODAyMTI0NTFhOGYxMWRlNDY1NTNjYmNkNjViNDI1NGRkYjhmNjY4MzRlYjIxZGRhMmE4ZjMzYjU4MWUxNDg0NTU3YWNhMWI5NGVlODkzMWRkZjE2MDM3YjdhNzE3MTMyMWE5MTkzNmFmYzI3ZmZjZTM5NWRlNzVkNWY3MGNiOGI1YWVlMDVmZjUwNzA4OGQ2NWFmMWU0Mzk2NmNkNDJjYmU2ZjdmYWNmOGRhZTA1NWRkODIyMmIxNjk2NTIxNzIzZjgxMjQ1MTc4NTk1Yzk4NWFlOTE3ZmQ0YjM5OTg3NzNlMWE5N2I3YmQxMDA4NTQ0NmY0MjU5YmNjMDlhNDU0OTI5MjgyYzFiODliNzFlZDU4N2E3NzVlMGEzZDQ1MzYzNDFmNDVkYWU5NjllODA2Yzk2ZmVmYzcxMDY3Nzc2YzAyYmEyMjEyMmI5MTk5YjE0YzBjMjhjMDQ0ODc1MDkwNzBiOTdmM2RkMmQ2ZDk3MjczMzE4MjAxNzczMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwNWJlY2Q4NzE5NWMxZGVmZjkwYzI0YzkxMjY5YjU1YjNmMDY5YmMyMjVjMzI2YzMxNGMxYTUxNzg2ZmZlMTRjODMwYmU0ZTRiYzczY2JhMzZjOTc2NzdiNDQxNjgyNzliZTkxZTdjZGY3YzE5Mzg2YWUyMTg2MjcxOWQxM2EzYTBmZmYwODAzZDQ2MDk2MmYyY2RhODM3MTQ4NDg3MzI1MmMzZDcwNTRkYjgxNDNlMmIwODFhMzgxNmVkMDgwNGNhNTA5OWFlNWZlY2U4M2Q1YzJjMzc4M2IxOTg4YjRiNDZkYzk0ZTU1NTg3YTEwN2VhMTU0NmJmMjJkMjhhMDk3ZjY1MmE0MDY2ZGMyOTY1MjY5MDY5YWYyZjUxNzZiYjhjZTljYTZkMTFmOTY3NTdmMDMyMDRmNzU2NzAzNTg3ZDAwYWQ0MjQ3OTZjOTJmYzdhZWI2ZjQ5NDQzMTk5OWVkYTMwOTkwZTRmNTc3MzYzMmVkMjU4ZmUwMjc2NjczNTk5ZGE2ZmNlMzVjZGFkNzcyNmEwYmIwMjRjYWQ5OTZiODhlMGNiOTg4NTRjZWI1YzBiNmVjNzQ4ZDlmOWNlNmE2Y2Q0Mzc4NThiYWNiODE0NjE4YTI3MmZmM2E0MTVjNmUwN2YzZGIwOTg4Nzc3ZmRlYzg0NWE5N2JmN2QxMDJkZDAiCiAKIFBLQ1M3IFBhcnNlIEZhaWx1cmUgSW52YWxpZCBBU04xOiBDaGFuZ2UgbGVuZ3RoIGZyb20gMTEgdG8gMTAgIzE1My4wCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NgogcGtjczdfYXNuMV9mYWlsOiIzMDgyMDUwMDA2MDkyYTg2NDg4NmY3MGQwMTA3MDJhMDgyMDRmMTMwODIwNGVkMDIwMTAxMzEwZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGIwNjA5MmE4NjQ4ODZmNzBkMDEwNzAxYTA4MjAzNGQzMDgyMDM0OTMwODIwMjMxYTAwMzAyMDEwMjAyMTQ3YmRlZGRkMjQ0NGNkMWNkZmU1YzQxYTgxMDJjODliN2RmMmU2Y2JmMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMzAxZTE3MGQzMjMyMzEzMDMyMzgzMTM2MzEzMDM1MzY1YTE3MGQzMjMzMzEzMDMyMzgzMTM2MzEzMDM1MzY1YTMwMzQzMTBhMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTMwODIwMTIyMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDM4MjAxMGYwMDMwODIwMTBhMDI4MjAxMDEwMGM4YjZjZjY5ODk5Y2QxZjBlYmI0Y2E2NDVjMDVlNzBlMGQyZWZlZGRjYzYxZDA4OWNiZDUxNWEzOWEzNTc5YjkyMzQzYjYxZWM3NTAwNjBmYjRlZDM3ODc2MzMyNDAwZTQyNWYxZDM3NmM3ZTc1YzI5NzMzMTRlZGY0YmIzMGM4ZjhkZDAzYjlmY2ZmOTU1YTI0NWQ0OTEzN2FkNmU2MDA1NmNhYzE5NTUyYTg2NWQ1MjE4NzE4N2NjMDQyYzljNDllM2UzYTljMTdhNTM0YjQ1M2NkYWJjMGNiMTEzYjRmNjNmNWIzMTc0YjllZTk5MDJiMTkxMGQxMTQ5NmEyNzlhNzQzMjZhZGNmZWUxMGJmZDllN2ViYWZiYjM3N2JlOWI2Mzk1OTE2NWQxM2RkNTc1MTE3MWNhZGFkM2MxZDNhZGFjNjhiYzgwMTFkNjFiNTRjZjYwMTc4YmUzNjgzOWE4OWFjOTFhYjQxOWUzY2EzN2Q2YmE4ODFkMjU1MThjNGRiNjhiY2E2ZjdjODM2MDJmNjk5YTg2YjE3ZmIxZTc3M2JjYmU3NGJiOTNhNDliMjUxYWU4NjQyOGI1NzQwZTE4NjhiYjFkNmZhYjllMjg3MTJlOThlYzMxOWFkOGZjYTRkNzMwMTBjNGIwOWM0YjgwNDU4OTYxZTdjZjA4MzUzMDIwMzAxMDAwMWEzNTMzMDUxMzAxZDA2MDM1NTFkMGUwNDE2MDQxNDhhZWVlNTk0N2NjNjdjNWRkNTE1YTc2ZTJhN2VjZDMxZWU1MmZkYzgzMDFmMDYwMzU1MWQyMzA0MTgzMDE2ODAxNDhhZWVlNTk0N2NjNjdjNWRkNTE1YTc2ZTJhN2VjZDMxZWU1MmZkYzgzMDBmMDYwMzU1MWQxMzAxMDFmZjA0MDUzMDAzMDEwMWZmMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMDM4MjAxMDEwMDgyMWQ2Yjk4Y2Q0NTdkZWJkMmIwODFhY2EyN2ViZWNkNGY5M2FjYzgyODQ0M2IzOWVhYmZmYTlmYTRlOWU0NTQzYjQ2ZmNjMzFlMmI1YjQ4MTc3OTAzZGVhNjk2OWFjNGEyY2M2NTcwNjUwMzkwZjFiMDhkNDNhNGMyZjk3NWM3ZWQ4YmYzMzU2YzcyMTgzODAyMTI0NTFhOGYxMWRlNDY1NTNjYmNkNjViNDI1NGRkYjhmNjY4MzRlYjIxZGRhMmE4ZjMzYjU4MWUxNDg0NTU3YWNhMWI5NGVlODkzMWRkZjE2MDM3YjdhNzE3MTMyMWE5MTkzNmFmYzI3ZmZjZTM5NWRlNzVkNWY3MGNiOGI1YWVlMDVmZjUwNzA4OGQ2NWFmMWU0Mzk2NmNkNDJjYmU2ZjdmYWNmOGRhZTA1NWRkODIyMmIxNjk2NTIxNzIzZjgxMjQ1MTc4NTk1Yzk4NWFlOTE3ZmQ0YjM5OTg3NzNlMWE5N2I3YmQxMDA4NTQ0NmY0MjU5YmNjMDlhNDU0OTI5MjgyYzFiODliNzFlZDU4N2E3NzVlMGEzZDQ1MzYzNDFmNDVkYWU5NjllODA2Yzk2ZmVmYzcxMDY3Nzc2YzAyYmEyMjEyMmI5MTk5YjE0YzBjMjhjMDQ0ODc1MDkwNzBiOTdmM2RkMmQ2ZDk3MjczMzE4MjAxNzczMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwNWJlY2Q4NzE5NWMxZGVmZjkwYzI0YzkxMjY5YjU1YjNmMDY5YmMyMjVjMzI2YzMxNGMxYTUxNzg2ZmZlMTRjODMwYmU0ZTRiYzczY2JhMzZjOTc2NzdiNDQxNjgyNzliZTkxZTdjZGY3YzE5Mzg2YWUyMTg2MjcxOWQxM2EzYTBmZmYwODAzZDQ2MDk2MmYyY2RhODM3MTQ4NDg3MzI1MmMzZDcwNTRkYjgxNDNlMmIwODFhMzgxNmVkMDgwNGNhNTA5OWFlNWZlY2U4M2Q1YzJjMzc4M2IxOTg4YjRiNDZkYzk0ZTU1NTg3YTEwN2VhMTU0NmJmMjJkMjhhMDk3ZjY1MmE0MDY2ZGMyOTY1MjY5MDY5YWYyZjUxNzZiYjhjZTljYTZkMTFmOTY3NTdmMDMyMDRmNzU2NzAzNTg3ZDAwYWQ0MjQ3OTZjOTJmYzdhZWI2ZjQ5NDQzMTk5OWVkYTMwOTkwZTRmNTc3MzYzMmVkMjU4ZmUwMjc2NjczNTk5ZGE2ZmNlMzVjZGFkNzcyNmEwYmIwMjRjYWQ5OTZiODhlMGNiOTg4NTRjZWI1YzBiNmVjNzQ4ZDlmOWNlNmE2Y2Q0Mzc4NThiYWNiODE0NjE4YTI3MmZmM2E0MTVjNmUwN2YzZGIwOTg4Nzc3ZmRlYzg0NWE5N2JmN2QxMDJkZDAiCiAKIFBLQ1M3IFBhcnNlIEZhaWx1cmUgSW52YWxpZCBBU04xOiBDaGFuZ2UgdGFnIDMwIHRvIDAyICMxNTQuMAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHBrY3M3X2FzbjFfZmFpbDoiMzA4MjA1MDAwNjA5MmE4NjQ4ODZmNzBkMDEwNzAyYTA4MjA0ZjEzMDgyMDRlZDAyMDEwMTMxMGYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBiMDYwOTJhODY0ODg2ZjcwZDAxMDcwMWEwODIwMzRkMzA4MjAzNDkzMDgyMDIzMWEwMDMwMjAxMDIwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTMwMWUxNzBkMzIzMjMxMzAzMjM4MzEzNjMxMzAzNTM2NWExNzBkMzIzMzMxMzAzMjM4MzEzNjMxMzAzNTM2NWEzMDM0MzEwYjAyMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEzMDgyMDEyMjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDAzODIwMTBmMDAzMDgyMDEwYTAyODIwMTAxMDBjOGI2Y2Y2OTg5OWNkMWYwZWJiNGNhNjQ1YzA1ZTcwZTBkMmVmZWRkY2M2MWQwODljYmQ1MTVhMzlhMzU3OWI5MjM0M2I2MWVjNzUwMDYwZmI0ZWQzNzg3NjMzMjQwMGU0MjVmMWQzNzZjN2U3NWMyOTczMzE0ZWRmNGJiMzBjOGY4ZGQwM2I5ZmNmZjk1NWEyNDVkNDkxMzdhZDZlNjAwNTZjYWMxOTU1MmE4NjVkNTIxODcxODdjYzA0MmM5YzQ5ZTNlM2E5YzE3YTUzNGI0NTNjZGFiYzBjYjExM2I0ZjYzZjViMzE3NGI5ZWU5OTAyYjE5MTBkMTE0OTZhMjc5YTc0MzI2YWRjZmVlMTBiZmQ5ZTdlYmFmYmIzNzdiZTliNjM5NTkxNjVkMTNkZDU3NTExNzFjYWRhZDNjMWQzYWRhYzY4YmM4MDExZDYxYjU0Y2Y2MDE3OGJlMzY4MzlhODlhYzkxYWI0MTllM2NhMzdkNmJhODgxZDI1NTE4YzRkYjY4YmNhNmY3YzgzNjAyZjY5OWE4NmIxN2ZiMWU3NzNiY2JlNzRiYjkzYTQ5YjI1MWFlODY0MjhiNTc0MGUxODY4YmIxZDZmYWI5ZTI4NzEyZTk4ZWMzMTlhZDhmY2E0ZDczMDEwYzRiMDljNGI4MDQ1ODk2MWU3Y2YwODM1MzAyMDMwMTAwMDFhMzUzMzA1MTMwMWQwNjAzNTUxZDBlMDQxNjA0MTQ4YWVlZTU5NDdjYzY3YzVkZDUxNWE3NmUyYTdlY2QzMWVlNTJmZGM4MzAxZjA2MDM1NTFkMjMwNDE4MzAxNjgwMTQ4YWVlZTU5NDdjYzY3YzVkZDUxNWE3NmUyYTdlY2QzMWVlNTJmZGM4MzAwZjA2MDM1NTFkMTMwMTAxZmYwNDA1MzAwMzAxMDFmZjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDAzODIwMTAxMDA4MjFkNmI5OGNkNDU3ZGViZDJiMDgxYWNhMjdlYmVjZDRmOTNhY2M4Mjg0NDNiMzllYWJmZmE5ZmE0ZTllNDU0M2I0NmZjYzMxZTJiNWI0ODE3NzkwM2RlYTY5NjlhYzRhMmNjNjU3MDY1MDM5MGYxYjA4ZDQzYTRjMmY5NzVjN2VkOGJmMzM1NmM3MjE4MzgwMjEyNDUxYThmMTFkZTQ2NTUzY2JjZDY1YjQyNTRkZGI4ZjY2ODM0ZWIyMWRkYTJhOGYzM2I1ODFlMTQ4NDU1N2FjYTFiOTRlZTg5MzFkZGYxNjAzN2I3YTcxNzEzMjFhOTE5MzZhZmMyN2ZmY2UzOTVkZTc1ZDVmNzBjYjhiNWFlZTA1ZmY1MDcwODhkNjVhZjFlNDM5NjZjZDQyY2JlNmY3ZmFjZjhkYWUwNTVkZDgyMjJiMTY5NjUyMTcyM2Y4MTI0NTE3ODU5NWM5ODVhZTkxN2ZkNGIzOTk4NzczZTFhOTdiN2JkMTAwODU0NDZmNDI1OWJjYzA5YTQ1NDkyOTI4MmMxYjg5YjcxZWQ1ODdhNzc1ZTBhM2Q0NTM2MzQxZjQ1ZGFlOTY5ZTgwNmM5NmZlZmM3MTA2Nzc3NmMwMmJhMjIxMjJiOTE5OWIxNGMwYzI4YzA0NDg3NTA5MDcwYjk3ZjNkZDJkNmQ5NzI3MzMxODIwMTc3MzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDViZWNkODcxOTVjMWRlZmY5MGMyNGM5MTI2OWI1NWIzZjA2OWJjMjI1YzMyNmMzMTRjMWE1MTc4NmZmZTE0YzgzMGJlNGU0YmM3M2NiYTM2Yzk3Njc3YjQ0MTY4Mjc5YmU5MWU3Y2RmN2MxOTM4NmFlMjE4NjI3MTlkMTNhM2EwZmZmMDgwM2Q0NjA5NjJmMmNkYTgzNzE0ODQ4NzMyNTJjM2Q3MDU0ZGI4MTQzZTJiMDgxYTM4MTZlZDA4MDRjYTUwOTlhZTVmZWNlODNkNWMyYzM3ODNiMTk4OGI0YjQ2ZGM5NGU1NTU4N2ExMDdlYTE1NDZiZjIyZDI4YTA5N2Y2NTJhNDA2NmRjMjk2NTI2OTA2OWFmMmY1MTc2YmI4Y2U5Y2E2ZDExZjk2NzU3ZjAzMjA0Zjc1NjcwMzU4N2QwMGFkNDI0Nzk2YzkyZmM3YWViNmY0OTQ0MzE5OTllZGEzMDk5MGU0ZjU3NzM2MzJlZDI1OGZlMDI3NjY3MzU5OWRhNmZjZTM1Y2RhZDc3MjZhMGJiMDI0Y2FkOTk2Yjg4ZTBjYjk4ODU0Y2ViNWMwYjZlYzc0OGQ5ZjljZTZhNmNkNDM3ODU4YmFjYjgxNDYxOGEyNzJmZjNhNDE1YzZlMDdmM2RiMDk4ODc3N2ZkZWM4NDVhOTdiZjdkMTAyZGQwIgogCiBQS0NTNyBQYXJzZSBGYWlsdXJlIEludmFsaWQgQVNOMTogQ2hhbmdlIGxlbmd0aCBmcm9tIDkgdG8gMTAgIzE1NS4wCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NgogcGtjczdfYXNuMV9mYWlsOiIzMDgyMDUwMDA2MDkyYTg2NDg4NmY3MGQwMTA3MDJhMDgyMDRmMTMwODIwNGVkMDIwMTAxMzEwZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGIwNjA5MmE4NjQ4ODZmNzBkMDEwNzAxYTA4MjAzNGQzMDgyMDM0OTMwODIwMjMxYTAwMzAyMDEwMjAyMTQ3YmRlZGRkMjQ0NGNkMWNkZmU1YzQxYTgxMDJjODliN2RmMmU2Y2JmMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMzAxZTE3MGQzMjMyMzEzMDMyMzgzMTM2MzEzMDM1MzY1YTE3MGQzMjMzMzEzMDMyMzgzMTM2MzEzMDM1MzY1YTMwMzQzMTBiMzAwYTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTMwODIwMTIyMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDM4MjAxMGYwMDMwODIwMTBhMDI4MjAxMDEwMGM4YjZjZjY5ODk5Y2QxZjBlYmI0Y2E2NDVjMDVlNzBlMGQyZWZlZGRjYzYxZDA4OWNiZDUxNWEzOWEzNTc5YjkyMzQzYjYxZWM3NTAwNjBmYjRlZDM3ODc2MzMyNDAwZTQyNWYxZDM3NmM3ZTc1YzI5NzMzMTRlZGY0YmIzMGM4ZjhkZDAzYjlmY2ZmOTU1YTI0NWQ0OTEzN2FkNmU2MDA1NmNhYzE5NTUyYTg2NWQ1MjE4NzE4N2NjMDQyYzljNDllM2UzYTljMTdhNTM0YjQ1M2NkYWJjMGNiMTEzYjRmNjNmNWIzMTc0YjllZTk5MDJiMTkxMGQxMTQ5NmEyNzlhNzQzMjZhZGNmZWUxMGJmZDllN2ViYWZiYjM3N2JlOWI2Mzk1OTE2NWQxM2RkNTc1MTE3MWNhZGFkM2MxZDNhZGFjNjhiYzgwMTFkNjFiNTRjZjYwMTc4YmUzNjgzOWE4OWFjOTFhYjQxOWUzY2EzN2Q2YmE4ODFkMjU1MThjNGRiNjhiY2E2ZjdjODM2MDJmNjk5YTg2YjE3ZmIxZTc3M2JjYmU3NGJiOTNhNDliMjUxYWU4NjQyOGI1NzQwZTE4NjhiYjFkNmZhYjllMjg3MTJlOThlYzMxOWFkOGZjYTRkNzMwMTBjNGIwOWM0YjgwNDU4OTYxZTdjZjA4MzUzMDIwMzAxMDAwMWEzNTMzMDUxMzAxZDA2MDM1NTFkMGUwNDE2MDQxNDhhZWVlNTk0N2NjNjdjNWRkNTE1YTc2ZTJhN2VjZDMxZWU1MmZkYzgzMDFmMDYwMzU1MWQyMzA0MTgzMDE2ODAxNDhhZWVlNTk0N2NjNjdjNWRkNTE1YTc2ZTJhN2VjZDMxZWU1MmZkYzgzMDBmMDYwMzU1MWQxMzAxMDFmZjA0MDUzMDAzMDEwMWZmMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMDM4MjAxMDEwMDgyMWQ2Yjk4Y2Q0NTdkZWJkMmIwODFhY2EyN2ViZWNkNGY5M2FjYzgyODQ0M2IzOWVhYmZmYTlmYTRlOWU0NTQzYjQ2ZmNjMzFlMmI1YjQ4MTc3OTAzZGVhNjk2OWFjNGEyY2M2NTcwNjUwMzkwZjFiMDhkNDNhNGMyZjk3NWM3ZWQ4YmYzMzU2YzcyMTgzODAyMTI0NTFhOGYxMWRlNDY1NTNjYmNkNjViNDI1NGRkYjhmNjY4MzRlYjIxZGRhMmE4ZjMzYjU4MWUxNDg0NTU3YWNhMWI5NGVlODkzMWRkZjE2MDM3YjdhNzE3MTMyMWE5MTkzNmFmYzI3ZmZjZTM5NWRlNzVkNWY3MGNiOGI1YWVlMDVmZjUwNzA4OGQ2NWFmMWU0Mzk2NmNkNDJjYmU2ZjdmYWNmOGRhZTA1NWRkODIyMmIxNjk2NTIxNzIzZjgxMjQ1MTc4NTk1Yzk4NWFlOTE3ZmQ0YjM5OTg3NzNlMWE5N2I3YmQxMDA4NTQ0NmY0MjU5YmNjMDlhNDU0OTI5MjgyYzFiODliNzFlZDU4N2E3NzVlMGEzZDQ1MzYzNDFmNDVkYWU5NjllODA2Yzk2ZmVmYzcxMDY3Nzc2YzAyYmEyMjEyMmI5MTk5YjE0YzBjMjhjMDQ0ODc1MDkwNzBiOTdmM2RkMmQ2ZDk3MjczMzE4MjAxNzczMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwNWJlY2Q4NzE5NWMxZGVmZjkwYzI0YzkxMjY5YjU1YjNmMDY5YmMyMjVjMzI2YzMxNGMxYTUxNzg2ZmZlMTRjODMwYmU0ZTRiYzczY2JhMzZjOTc2NzdiNDQxNjgyNzliZTkxZTdjZGY3YzE5Mzg2YWUyMTg2MjcxOWQxM2EzYTBmZmYwODAzZDQ2MDk2MmYyY2RhODM3MTQ4NDg3MzI1MmMzZDcwNTRkYjgxNDNlMmIwODFhMzgxNmVkMDgwNGNhNTA5OWFlNWZlY2U4M2Q1YzJjMzc4M2IxOTg4YjRiNDZkYzk0ZTU1NTg3YTEwN2VhMTU0NmJmMjJkMjhhMDk3ZjY1MmE0MDY2ZGMyOTY1MjY5MDY5YWYyZjUxNzZiYjhjZTljYTZkMTFmOTY3NTdmMDMyMDRmNzU2NzAzNTg3ZDAwYWQ0MjQ3OTZjOTJmYzdhZWI2ZjQ5NDQzMTk5OWVkYTMwOTkwZTRmNTc3MzYzMmVkMjU4ZmUwMjc2NjczNTk5ZGE2ZmNlMzVjZGFkNzcyNmEwYmIwMjRjYWQ5OTZiODhlMGNiOTg4NTRjZWI1YzBiNmVjNzQ4ZDlmOWNlNmE2Y2Q0Mzc4NThiYWNiODE0NjE4YTI3MmZmM2E0MTVjNmUwN2YzZGIwOTg4Nzc3ZmRlYzg0NWE5N2JmN2QxMDJkZDAiCiAKIFBLQ1M3IFBhcnNlIEZhaWx1cmUgSW52YWxpZCBBU04xOiBDaGFuZ2UgY29udGVudHMgb2YgdGFnIDMwIHRvIGNvbnRhaW4gb25lIHVuYWNjb3VudGVkIGV4dHJhIGJ5dGUgIzE1Ni4wCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NgogcGtjczdfYXNuMV9mYWlsOiIzMDgyMDUwMDA2MDkyYTg2NDg4NmY3MGQwMTA3MDJhMDgyMDRmMTMwODIwNGVkMDIwMTAxMzEwZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGIwNjA5MmE4NjQ4ODZmNzBkMDEwNzAxYTA4MjAzNGQzMDgyMDM0OTMwODIwMjMxYTAwMzAyMDEwMjAyMTQ3YmRlZGRkMjQ0NGNkMWNkZmU1YzQxYTgxMDJjODliN2RmMmU2Y2JmMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMzAxZTE3MGQzMjMyMzEzMDMyMzgzMTM2MzEzMDM1MzY1YTE3MGQzMjMzMzEzMDMyMzgzMTM2MzEzMDM1MzY1YTMwMzQzMTBiMzAwYTA2MDM1NTA0MDYxMzAyNGU0YzAwMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMzA4MjAxMjIzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwMzgyMDEwZjAwMzA4MjAxMGEwMjgyMDEwMTAwYzhiNmNmNjk4OTljZDFmMGViYjRjYTY0NWMwNWU3MGUwZDJlZmVkZGNjNjFkMDg5Y2JkNTE1YTM5YTM1NzliOTIzNDNiNjFlYzc1MDA2MGZiNGVkMzc4NzYzMzI0MDBlNDI1ZjFkMzc2YzdlNzVjMjk3MzMxNGVkZjRiYjMwYzhmOGRkMDNiOWZjZmY5NTVhMjQ1ZDQ5MTM3YWQ2ZTYwMDU2Y2FjMTk1NTJhODY1ZDUyMTg3MTg3Y2MwNDJjOWM0OWUzZTNhOWMxN2E1MzRiNDUzY2RhYmMwY2IxMTNiNGY2M2Y1YjMxNzRiOWVlOTkwMmIxOTEwZDExNDk2YTI3OWE3NDMyNmFkY2ZlZTEwYmZkOWU3ZWJhZmJiMzc3YmU5YjYzOTU5MTY1ZDEzZGQ1NzUxMTcxY2FkYWQzYzFkM2FkYWM2OGJjODAxMWQ2MWI1NGNmNjAxNzhiZTM2ODM5YTg5YWM5MWFiNDE5ZTNjYTM3ZDZiYTg4MWQyNTUxOGM0ZGI2OGJjYTZmN2M4MzYwMmY2OTlhODZiMTdmYjFlNzczYmNiZTc0YmI5M2E0OWIyNTFhZTg2NDI4YjU3NDBlMTg2OGJiMWQ2ZmFiOWUyODcxMmU5OGVjMzE5YWQ4ZmNhNGQ3MzAxMGM0YjA5YzRiODA0NTg5NjFlN2NmMDgzNTMwMjAzMDEwMDAxYTM1MzMwNTEzMDFkMDYwMzU1MWQwZTA0MTYwNDE0OGFlZWU1OTQ3Y2M2N2M1ZGQ1MTVhNzZlMmE3ZWNkMzFlZTUyZmRjODMwMWYwNjAzNTUxZDIzMDQxODMwMTY4MDE0OGFlZWU1OTQ3Y2M2N2M1ZGQ1MTVhNzZlMmE3ZWNkMzFlZTUyZmRjODMwMGYwNjAzNTUxZDEzMDEwMWZmMDQwNTMwMDMwMTAxZmYzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAwMzgyMDEwMTAwODIxZDZiOThjZDQ1N2RlYmQyYjA4MWFjYTI3ZWJlY2Q0ZjkzYWNjODI4NDQzYjM5ZWFiZmZhOWZhNGU5ZTQ1NDNiNDZmY2MzMWUyYjViNDgxNzc5MDNkZWE2OTY5YWM0YTJjYzY1NzA2NTAzOTBmMWIwOGQ0M2E0YzJmOTc1YzdlZDhiZjMzNTZjNzIxODM4MDIxMjQ1MWE4ZjExZGU0NjU1M2NiY2Q2NWI0MjU0ZGRiOGY2NjgzNGViMjFkZGEyYThmMzNiNTgxZTE0ODQ1NTdhY2ExYjk0ZWU4OTMxZGRmMTYwMzdiN2E3MTcxMzIxYTkxOTM2YWZjMjdmZmNlMzk1ZGU3NWQ1ZjcwY2I4YjVhZWUwNWZmNTA3MDg4ZDY1YWYxZTQzOTY2Y2Q0MmNiZTZmN2ZhY2Y4ZGFlMDU1ZGQ4MjIyYjE2OTY1MjE3MjNmODEyNDUxNzg1OTVjOTg1YWU5MTdmZDRiMzk5ODc3M2UxYTk3YjdiZDEwMDg1NDQ2ZjQyNTliY2MwOWE0NTQ5MjkyODJjMWI4OWI3MWVkNTg3YTc3NWUwYTNkNDUzNjM0MWY0NWRhZTk2OWU4MDZjOTZmZWZjNzEwNjc3NzZjMDJiYTIyMTIyYjkxOTliMTRjMGMyOGMwNDQ4NzUwOTA3MGI5N2YzZGQyZDZkOTcyNzMzMTgyMDE3NzMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTAyMTQ3YmRlZGRkMjQ0NGNkMWNkZmU1YzQxYTgxMDJjODliN2RmMmU2Y2JmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDA1YmVjZDg3MTk1YzFkZWZmOTBjMjRjOTEyNjliNTViM2YwNjliYzIyNWMzMjZjMzE0YzFhNTE3ODZmZmUxNGM4MzBiZTRlNGJjNzNjYmEzNmM5NzY3N2I0NDE2ODI3OWJlOTFlN2NkZjdjMTkzODZhZTIxODYyNzE5ZDEzYTNhMGZmZjA4MDNkNDYwOTYyZjJjZGE4MzcxNDg0ODczMjUyYzNkNzA1NGRiODE0M2UyYjA4MWEzODE2ZWQwODA0Y2E1MDk5YWU1ZmVjZTgzZDVjMmMzNzgzYjE5ODhiNGI0NmRjOTRlNTU1ODdhMTA3ZWExNTQ2YmYyMmQyOGEwOTdmNjUyYTQwNjZkYzI5NjUyNjkwNjlhZjJmNTE3NmJiOGNlOWNhNmQxMWY5Njc1N2YwMzIwNGY3NTY3MDM1ODdkMDBhZDQyNDc5NmM5MmZjN2FlYjZmNDk0NDMxOTk5ZWRhMzA5OTBlNGY1NzczNjMyZWQyNThmZTAyNzY2NzM1OTlkYTZmY2UzNWNkYWQ3NzI2YTBiYjAyNGNhZDk5NmI4OGUwY2I5ODg1NGNlYjVjMGI2ZWM3NDhkOWY5Y2U2YTZjZDQzNzg1OGJhY2I4MTQ2MThhMjcyZmYzYTQxNWM2ZTA3ZjNkYjA5ODg3NzdmZGVjODQ1YTk3YmY3ZDEwMmRkMCIKIAogUEtDUzcgUGFyc2UgRmFpbHVyZSBJbnZhbGlkIEFTTjE6IENoYW5nZSBsZW5ndGggZnJvbSA5IHRvIDggIzE1Ny4wCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NgogcGtjczdfYXNuMV9mYWlsOiIzMDgyMDUwMDA2MDkyYTg2NDg4NmY3MGQwMTA3MDJhMDgyMDRmMTMwODIwNGVkMDIwMTAxMzEwZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGIwNjA5MmE4NjQ4ODZmNzBkMDEwNzAxYTA4MjAzNGQzMDgyMDM0OTMwODIwMjMxYTAwMzAyMDEwMjAyMTQ3YmRlZGRkMjQ0NGNkMWNkZmU1YzQxYTgxMDJjODliN2RmMmU2Y2JmMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMzAxZTE3MGQzMjMyMzEzMDMyMzgzMTM2MzEzMDM1MzY1YTE3MGQzMjMzMzEzMDMyMzgzMTM2MzEzMDM1MzY1YTMwMzQzMTBiMzAwODA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTMwODIwMTIyMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDM4MjAxMGYwMDMwODIwMTBhMDI4MjAxMDEwMGM4YjZjZjY5ODk5Y2QxZjBlYmI0Y2E2NDVjMDVlNzBlMGQyZWZlZGRjYzYxZDA4OWNiZDUxNWEzOWEzNTc5YjkyMzQzYjYxZWM3NTAwNjBmYjRlZDM3ODc2MzMyNDAwZTQyNWYxZDM3NmM3ZTc1YzI5NzMzMTRlZGY0YmIzMGM4ZjhkZDAzYjlmY2ZmOTU1YTI0NWQ0OTEzN2FkNmU2MDA1NmNhYzE5NTUyYTg2NWQ1MjE4NzE4N2NjMDQyYzljNDllM2UzYTljMTdhNTM0YjQ1M2NkYWJjMGNiMTEzYjRmNjNmNWIzMTc0YjllZTk5MDJiMTkxMGQxMTQ5NmEyNzlhNzQzMjZhZGNmZWUxMGJmZDllN2ViYWZiYjM3N2JlOWI2Mzk1OTE2NWQxM2RkNTc1MTE3MWNhZGFkM2MxZDNhZGFjNjhiYzgwMTFkNjFiNTRjZjYwMTc4YmUzNjgzOWE4OWFjOTFhYjQxOWUzY2EzN2Q2YmE4ODFkMjU1MThjNGRiNjhiY2E2ZjdjODM2MDJmNjk5YTg2YjE3ZmIxZTc3M2JjYmU3NGJiOTNhNDliMjUxYWU4NjQyOGI1NzQwZTE4NjhiYjFkNmZhYjllMjg3MTJlOThlYzMxOWFkOGZjYTRkNzMwMTBjNGIwOWM0YjgwNDU4OTYxZTdjZjA4MzUzMDIwMzAxMDAwMWEzNTMzMDUxMzAxZDA2MDM1NTFkMGUwNDE2MDQxNDhhZWVlNTk0N2NjNjdjNWRkNTE1YTc2ZTJhN2VjZDMxZWU1MmZkYzgzMDFmMDYwMzU1MWQyMzA0MTgzMDE2ODAxNDhhZWVlNTk0N2NjNjdjNWRkNTE1YTc2ZTJhN2VjZDMxZWU1MmZkYzgzMDBmMDYwMzU1MWQxMzAxMDFmZjA0MDUzMDAzMDEwMWZmMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMDM4MjAxMDEwMDgyMWQ2Yjk4Y2Q0NTdkZWJkMmIwODFhY2EyN2ViZWNkNGY5M2FjYzgyODQ0M2IzOWVhYmZmYTlmYTRlOWU0NTQzYjQ2ZmNjMzFlMmI1YjQ4MTc3OTAzZGVhNjk2OWFjNGEyY2M2NTcwNjUwMzkwZjFiMDhkNDNhNGMyZjk3NWM3ZWQ4YmYzMzU2YzcyMTgzODAyMTI0NTFhOGYxMWRlNDY1NTNjYmNkNjViNDI1NGRkYjhmNjY4MzRlYjIxZGRhMmE4ZjMzYjU4MWUxNDg0NTU3YWNhMWI5NGVlODkzMWRkZjE2MDM3YjdhNzE3MTMyMWE5MTkzNmFmYzI3ZmZjZTM5NWRlNzVkNWY3MGNiOGI1YWVlMDVmZjUwNzA4OGQ2NWFmMWU0Mzk2NmNkNDJjYmU2ZjdmYWNmOGRhZTA1NWRkODIyMmIxNjk2NTIxNzIzZjgxMjQ1MTc4NTk1Yzk4NWFlOTE3ZmQ0YjM5OTg3NzNlMWE5N2I3YmQxMDA4NTQ0NmY0MjU5YmNjMDlhNDU0OTI5MjgyYzFiODliNzFlZDU4N2E3NzVlMGEzZDQ1MzYzNDFmNDVkYWU5NjllODA2Yzk2ZmVmYzcxMDY3Nzc2YzAyYmEyMjEyMmI5MTk5YjE0YzBjMjhjMDQ0ODc1MDkwNzBiOTdmM2RkMmQ2ZDk3MjczMzE4MjAxNzczMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwNWJlY2Q4NzE5NWMxZGVmZjkwYzI0YzkxMjY5YjU1YjNmMDY5YmMyMjVjMzI2YzMxNGMxYTUxNzg2ZmZlMTRjODMwYmU0ZTRiYzczY2JhMzZjOTc2NzdiNDQxNjgyNzliZTkxZTdjZGY3YzE5Mzg2YWUyMTg2MjcxOWQxM2EzYTBmZmYwODAzZDQ2MDk2MmYyY2RhODM3MTQ4NDg3MzI1MmMzZDcwNTRkYjgxNDNlMmIwODFhMzgxNmVkMDgwNGNhNTA5OWFlNWZlY2U4M2Q1YzJjMzc4M2IxOTg4YjRiNDZkYzk0ZTU1NTg3YTEwN2VhMTU0NmJmMjJkMjhhMDk3ZjY1MmE0MDY2ZGMyOTY1MjY5MDY5YWYyZjUxNzZiYjhjZTljYTZkMTFmOTY3NTdmMDMyMDRmNzU2NzAzNTg3ZDAwYWQ0MjQ3OTZjOTJmYzdhZWI2ZjQ5NDQzMTk5OWVkYTMwOTkwZTRmNTc3MzYzMmVkMjU4ZmUwMjc2NjczNTk5ZGE2ZmNlMzVjZGFkNzcyNmEwYmIwMjRjYWQ5OTZiODhlMGNiOTg4NTRjZWI1YzBiNmVjNzQ4ZDlmOWNlNmE2Y2Q0Mzc4NThiYWNiODE0NjE4YTI3MmZmM2E0MTVjNmUwN2YzZGIwOTg4Nzc3ZmRlYzg0NWE5N2JmN2QxMDJkZDAiCiAKIFBLQ1M3IFBhcnNlIEZhaWx1cmUgSW52YWxpZCBBU04xOiBDaGFuZ2UgdGFnIDA2IHRvIDAyICMxNTguMAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHBrY3M3X2FzbjFfZmFpbDoiMzA4MjA1MDAwNjA5MmE4NjQ4ODZmNzBkMDEwNzAyYTA4MjA0ZjEzMDgyMDRlZDAyMDEwMTMxMGYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBiMDYwOTJhODY0ODg2ZjcwZDAxMDcwMWEwODIwMzRkMzA4MjAzNDkzMDgyMDIzMWEwMDMwMjAxMDIwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTMwMWUxNzBkMzIzMjMxMzAzMjM4MzEzNjMxMzAzNTM2NWExNzBkMzIzMzMxMzAzMjM4MzEzNjMxMzAzNTM2NWEzMDM0MzEwYjMwMDkwMjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEzMDgyMDEyMjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDAzODIwMTBmMDAzMDgyMDEwYTAyODIwMTAxMDBjOGI2Y2Y2OTg5OWNkMWYwZWJiNGNhNjQ1YzA1ZTcwZTBkMmVmZWRkY2M2MWQwODljYmQ1MTVhMzlhMzU3OWI5MjM0M2I2MWVjNzUwMDYwZmI0ZWQzNzg3NjMzMjQwMGU0MjVmMWQzNzZjN2U3NWMyOTczMzE0ZWRmNGJiMzBjOGY4ZGQwM2I5ZmNmZjk1NWEyNDVkNDkxMzdhZDZlNjAwNTZjYWMxOTU1MmE4NjVkNTIxODcxODdjYzA0MmM5YzQ5ZTNlM2E5YzE3YTUzNGI0NTNjZGFiYzBjYjExM2I0ZjYzZjViMzE3NGI5ZWU5OTAyYjE5MTBkMTE0OTZhMjc5YTc0MzI2YWRjZmVlMTBiZmQ5ZTdlYmFmYmIzNzdiZTliNjM5NTkxNjVkMTNkZDU3NTExNzFjYWRhZDNjMWQzYWRhYzY4YmM4MDExZDYxYjU0Y2Y2MDE3OGJlMzY4MzlhODlhYzkxYWI0MTllM2NhMzdkNmJhODgxZDI1NTE4YzRkYjY4YmNhNmY3YzgzNjAyZjY5OWE4NmIxN2ZiMWU3NzNiY2JlNzRiYjkzYTQ5YjI1MWFlODY0MjhiNTc0MGUxODY4YmIxZDZmYWI5ZTI4NzEyZTk4ZWMzMTlhZDhmY2E0ZDczMDEwYzRiMDljNGI4MDQ1ODk2MWU3Y2YwODM1MzAyMDMwMTAwMDFhMzUzMzA1MTMwMWQwNjAzNTUxZDBlMDQxNjA0MTQ4YWVlZTU5NDdjYzY3YzVkZDUxNWE3NmUyYTdlY2QzMWVlNTJmZGM4MzAxZjA2MDM1NTFkMjMwNDE4MzAxNjgwMTQ4YWVlZTU5NDdjYzY3YzVkZDUxNWE3NmUyYTdlY2QzMWVlNTJmZGM4MzAwZjA2MDM1NTFkMTMwMTAxZmYwNDA1MzAwMzAxMDFmZjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDAzODIwMTAxMDA4MjFkNmI5OGNkNDU3ZGViZDJiMDgxYWNhMjdlYmVjZDRmOTNhY2M4Mjg0NDNiMzllYWJmZmE5ZmE0ZTllNDU0M2I0NmZjYzMxZTJiNWI0ODE3NzkwM2RlYTY5NjlhYzRhMmNjNjU3MDY1MDM5MGYxYjA4ZDQzYTRjMmY5NzVjN2VkOGJmMzM1NmM3MjE4MzgwMjEyNDUxYThmMTFkZTQ2NTUzY2JjZDY1YjQyNTRkZGI4ZjY2ODM0ZWIyMWRkYTJhOGYzM2I1ODFlMTQ4NDU1N2FjYTFiOTRlZTg5MzFkZGYxNjAzN2I3YTcxNzEzMjFhOTE5MzZhZmMyN2ZmY2UzOTVkZTc1ZDVmNzBjYjhiNWFlZTA1ZmY1MDcwODhkNjVhZjFlNDM5NjZjZDQyY2JlNmY3ZmFjZjhkYWUwNTVkZDgyMjJiMTY5NjUyMTcyM2Y4MTI0NTE3ODU5NWM5ODVhZTkxN2ZkNGIzOTk4NzczZTFhOTdiN2JkMTAwODU0NDZmNDI1OWJjYzA5YTQ1NDkyOTI4MmMxYjg5YjcxZWQ1ODdhNzc1ZTBhM2Q0NTM2MzQxZjQ1ZGFlOTY5ZTgwNmM5NmZlZmM3MTA2Nzc3NmMwMmJhMjIxMjJiOTE5OWIxNGMwYzI4YzA0NDg3NTA5MDcwYjk3ZjNkZDJkNmQ5NzI3MzMxODIwMTc3MzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDViZWNkODcxOTVjMWRlZmY5MGMyNGM5MTI2OWI1NWIzZjA2OWJjMjI1YzMyNmMzMTRjMWE1MTc4NmZmZTE0YzgzMGJlNGU0YmM3M2NiYTM2Yzk3Njc3YjQ0MTY4Mjc5YmU5MWU3Y2RmN2MxOTM4NmFlMjE4NjI3MTlkMTNhM2EwZmZmMDgwM2Q0NjA5NjJmMmNkYTgzNzE0ODQ4NzMyNTJjM2Q3MDU0ZGI4MTQzZTJiMDgxYTM4MTZlZDA4MDRjYTUwOTlhZTVmZWNlODNkNWMyYzM3ODNiMTk4OGI0YjQ2ZGM5NGU1NTU4N2ExMDdlYTE1NDZiZjIyZDI4YTA5N2Y2NTJhNDA2NmRjMjk2NTI2OTA2OWFmMmY1MTc2YmI4Y2U5Y2E2ZDExZjk2NzU3ZjAzMjA0Zjc1NjcwMzU4N2QwMGFkNDI0Nzk2YzkyZmM3YWViNmY0OTQ0MzE5OTllZGEzMDk5MGU0ZjU3NzM2MzJlZDI1OGZlMDI3NjY3MzU5OWRhNmZjZTM1Y2RhZDc3MjZhMGJiMDI0Y2FkOTk2Yjg4ZTBjYjk4ODU0Y2ViNWMwYjZlYzc0OGQ5ZjljZTZhNmNkNDM3ODU4YmFjYjgxNDYxOGEyNzJmZjNhNDE1YzZlMDdmM2RiMDk4ODc3N2ZkZWM4NDVhOTdiZjdkMTAyZGQwIgogCiBQS0NTNyBQYXJzZSBGYWlsdXJlIEludmFsaWQgQVNOMTogQ2hhbmdlIGxlbmd0aCBmcm9tIDMgdG8gNCAjMTU5LjAKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBwa2NzN19hc24xX2ZhaWw6IjMwODIwNTAwMDYwOTJhODY0ODg2ZjcwZDAxMDcwMmEwODIwNGYxMzA4MjA0ZWQwMjAxMDEzMTBmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwYjA2MDkyYTg2NDg4NmY3MGQwMTA3MDFhMDgyMDM0ZDMwODIwMzQ5MzA4MjAyMzFhMDAzMDIwMTAyMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEzMDFlMTcwZDMyMzIzMTMwMzIzODMxMzYzMTMwMzUzNjVhMTcwZDMyMzMzMTMwMzIzODMxMzYzMTMwMzUzNjVhMzAzNDMxMGIzMDA5MDYwNDU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMzA4MjAxMjIzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwMzgyMDEwZjAwMzA4MjAxMGEwMjgyMDEwMTAwYzhiNmNmNjk4OTljZDFmMGViYjRjYTY0NWMwNWU3MGUwZDJlZmVkZGNjNjFkMDg5Y2JkNTE1YTM5YTM1NzliOTIzNDNiNjFlYzc1MDA2MGZiNGVkMzc4NzYzMzI0MDBlNDI1ZjFkMzc2YzdlNzVjMjk3MzMxNGVkZjRiYjMwYzhmOGRkMDNiOWZjZmY5NTVhMjQ1ZDQ5MTM3YWQ2ZTYwMDU2Y2FjMTk1NTJhODY1ZDUyMTg3MTg3Y2MwNDJjOWM0OWUzZTNhOWMxN2E1MzRiNDUzY2RhYmMwY2IxMTNiNGY2M2Y1YjMxNzRiOWVlOTkwMmIxOTEwZDExNDk2YTI3OWE3NDMyNmFkY2ZlZTEwYmZkOWU3ZWJhZmJiMzc3YmU5YjYzOTU5MTY1ZDEzZGQ1NzUxMTcxY2FkYWQzYzFkM2FkYWM2OGJjODAxMWQ2MWI1NGNmNjAxNzhiZTM2ODM5YTg5YWM5MWFiNDE5ZTNjYTM3ZDZiYTg4MWQyNTUxOGM0ZGI2OGJjYTZmN2M4MzYwMmY2OTlhODZiMTdmYjFlNzczYmNiZTc0YmI5M2E0OWIyNTFhZTg2NDI4YjU3NDBlMTg2OGJiMWQ2ZmFiOWUyODcxMmU5OGVjMzE5YWQ4ZmNhNGQ3MzAxMGM0YjA5YzRiODA0NTg5NjFlN2NmMDgzNTMwMjAzMDEwMDAxYTM1MzMwNTEzMDFkMDYwMzU1MWQwZTA0MTYwNDE0OGFlZWU1OTQ3Y2M2N2M1ZGQ1MTVhNzZlMmE3ZWNkMzFlZTUyZmRjODMwMWYwNjAzNTUxZDIzMDQxODMwMTY4MDE0OGFlZWU1OTQ3Y2M2N2M1ZGQ1MTVhNzZlMmE3ZWNkMzFlZTUyZmRjODMwMGYwNjAzNTUxZDEzMDEwMWZmMDQwNTMwMDMwMTAxZmYzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAwMzgyMDEwMTAwODIxZDZiOThjZDQ1N2RlYmQyYjA4MWFjYTI3ZWJlY2Q0ZjkzYWNjODI4NDQzYjM5ZWFiZmZhOWZhNGU5ZTQ1NDNiNDZmY2MzMWUyYjViNDgxNzc5MDNkZWE2OTY5YWM0YTJjYzY1NzA2NTAzOTBmMWIwOGQ0M2E0YzJmOTc1YzdlZDhiZjMzNTZjNzIxODM4MDIxMjQ1MWE4ZjExZGU0NjU1M2NiY2Q2NWI0MjU0ZGRiOGY2NjgzNGViMjFkZGEyYThmMzNiNTgxZTE0ODQ1NTdhY2ExYjk0ZWU4OTMxZGRmMTYwMzdiN2E3MTcxMzIxYTkxOTM2YWZjMjdmZmNlMzk1ZGU3NWQ1ZjcwY2I4YjVhZWUwNWZmNTA3MDg4ZDY1YWYxZTQzOTY2Y2Q0MmNiZTZmN2ZhY2Y4ZGFlMDU1ZGQ4MjIyYjE2OTY1MjE3MjNmODEyNDUxNzg1OTVjOTg1YWU5MTdmZDRiMzk5ODc3M2UxYTk3YjdiZDEwMDg1NDQ2ZjQyNTliY2MwOWE0NTQ5MjkyODJjMWI4OWI3MWVkNTg3YTc3NWUwYTNkNDUzNjM0MWY0NWRhZTk2OWU4MDZjOTZmZWZjNzEwNjc3NzZjMDJiYTIyMTIyYjkxOTliMTRjMGMyOGMwNDQ4NzUwOTA3MGI5N2YzZGQyZDZkOTcyNzMzMTgyMDE3NzMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTAyMTQ3YmRlZGRkMjQ0NGNkMWNkZmU1YzQxYTgxMDJjODliN2RmMmU2Y2JmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDA1YmVjZDg3MTk1YzFkZWZmOTBjMjRjOTEyNjliNTViM2YwNjliYzIyNWMzMjZjMzE0YzFhNTE3ODZmZmUxNGM4MzBiZTRlNGJjNzNjYmEzNmM5NzY3N2I0NDE2ODI3OWJlOTFlN2NkZjdjMTkzODZhZTIxODYyNzE5ZDEzYTNhMGZmZjA4MDNkNDYwOTYyZjJjZGE4MzcxNDg0ODczMjUyYzNkNzA1NGRiODE0M2UyYjA4MWEzODE2ZWQwODA0Y2E1MDk5YWU1ZmVjZTgzZDVjMmMzNzgzYjE5ODhiNGI0NmRjOTRlNTU1ODdhMTA3ZWExNTQ2YmYyMmQyOGEwOTdmNjUyYTQwNjZkYzI5NjUyNjkwNjlhZjJmNTE3NmJiOGNlOWNhNmQxMWY5Njc1N2YwMzIwNGY3NTY3MDM1ODdkMDBhZDQyNDc5NmM5MmZjN2FlYjZmNDk0NDMxOTk5ZWRhMzA5OTBlNGY1NzczNjMyZWQyNThmZTAyNzY2NzM1OTlkYTZmY2UzNWNkYWQ3NzI2YTBiYjAyNGNhZDk5NmI4OGUwY2I5ODg1NGNlYjVjMGI2ZWM3NDhkOWY5Y2U2YTZjZDQzNzg1OGJhY2I4MTQ2MThhMjcyZmYzYTQxNWM2ZTA3ZjNkYjA5ODg3NzdmZGVjODQ1YTk3YmY3ZDEwMmRkMCIKIAogUEtDUzcgUGFyc2UgRmFpbHVyZSBJbnZhbGlkIEFTTjE6IENoYW5nZSBsZW5ndGggZnJvbSAzIHRvIDIgIzE2MC4wCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NgogcGtjczdfYXNuMV9mYWlsOiIzMDgyMDUwMDA2MDkyYTg2NDg4NmY3MGQwMTA3MDJhMDgyMDRmMTMwODIwNGVkMDIwMTAxMzEwZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGIwNjA5MmE4NjQ4ODZmNzBkMDEwNzAxYTA4MjAzNGQzMDgyMDM0OTMwODIwMjMxYTAwMzAyMDEwMjAyMTQ3YmRlZGRkMjQ0NGNkMWNkZmU1YzQxYTgxMDJjODliN2RmMmU2Y2JmMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMzAxZTE3MGQzMjMyMzEzMDMyMzgzMTM2MzEzMDM1MzY1YTE3MGQzMjMzMzEzMDMyMzgzMTM2MzEzMDM1MzY1YTMwMzQzMTBiMzAwOTA2MDI1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTMwODIwMTIyMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDM4MjAxMGYwMDMwODIwMTBhMDI4MjAxMDEwMGM4YjZjZjY5ODk5Y2QxZjBlYmI0Y2E2NDVjMDVlNzBlMGQyZWZlZGRjYzYxZDA4OWNiZDUxNWEzOWEzNTc5YjkyMzQzYjYxZWM3NTAwNjBmYjRlZDM3ODc2MzMyNDAwZTQyNWYxZDM3NmM3ZTc1YzI5NzMzMTRlZGY0YmIzMGM4ZjhkZDAzYjlmY2ZmOTU1YTI0NWQ0OTEzN2FkNmU2MDA1NmNhYzE5NTUyYTg2NWQ1MjE4NzE4N2NjMDQyYzljNDllM2UzYTljMTdhNTM0YjQ1M2NkYWJjMGNiMTEzYjRmNjNmNWIzMTc0YjllZTk5MDJiMTkxMGQxMTQ5NmEyNzlhNzQzMjZhZGNmZWUxMGJmZDllN2ViYWZiYjM3N2JlOWI2Mzk1OTE2NWQxM2RkNTc1MTE3MWNhZGFkM2MxZDNhZGFjNjhiYzgwMTFkNjFiNTRjZjYwMTc4YmUzNjgzOWE4OWFjOTFhYjQxOWUzY2EzN2Q2YmE4ODFkMjU1MThjNGRiNjhiY2E2ZjdjODM2MDJmNjk5YTg2YjE3ZmIxZTc3M2JjYmU3NGJiOTNhNDliMjUxYWU4NjQyOGI1NzQwZTE4NjhiYjFkNmZhYjllMjg3MTJlOThlYzMxOWFkOGZjYTRkNzMwMTBjNGIwOWM0YjgwNDU4OTYxZTdjZjA4MzUzMDIwMzAxMDAwMWEzNTMzMDUxMzAxZDA2MDM1NTFkMGUwNDE2MDQxNDhhZWVlNTk0N2NjNjdjNWRkNTE1YTc2ZTJhN2VjZDMxZWU1MmZkYzgzMDFmMDYwMzU1MWQyMzA0MTgzMDE2ODAxNDhhZWVlNTk0N2NjNjdjNWRkNTE1YTc2ZTJhN2VjZDMxZWU1MmZkYzgzMDBmMDYwMzU1MWQxMzAxMDFmZjA0MDUzMDAzMDEwMWZmMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMDM4MjAxMDEwMDgyMWQ2Yjk4Y2Q0NTdkZWJkMmIwODFhY2EyN2ViZWNkNGY5M2FjYzgyODQ0M2IzOWVhYmZmYTlmYTRlOWU0NTQzYjQ2ZmNjMzFlMmI1YjQ4MTc3OTAzZGVhNjk2OWFjNGEyY2M2NTcwNjUwMzkwZjFiMDhkNDNhNGMyZjk3NWM3ZWQ4YmYzMzU2YzcyMTgzODAyMTI0NTFhOGYxMWRlNDY1NTNjYmNkNjViNDI1NGRkYjhmNjY4MzRlYjIxZGRhMmE4ZjMzYjU4MWUxNDg0NTU3YWNhMWI5NGVlODkzMWRkZjE2MDM3YjdhNzE3MTMyMWE5MTkzNmFmYzI3ZmZjZTM5NWRlNzVkNWY3MGNiOGI1YWVlMDVmZjUwNzA4OGQ2NWFmMWU0Mzk2NmNkNDJjYmU2ZjdmYWNmOGRhZTA1NWRkODIyMmIxNjk2NTIxNzIzZjgxMjQ1MTc4NTk1Yzk4NWFlOTE3ZmQ0YjM5OTg3NzNlMWE5N2I3YmQxMDA4NTQ0NmY0MjU5YmNjMDlhNDU0OTI5MjgyYzFiODliNzFlZDU4N2E3NzVlMGEzZDQ1MzYzNDFmNDVkYWU5NjllODA2Yzk2ZmVmYzcxMDY3Nzc2YzAyYmEyMjEyMmI5MTk5YjE0YzBjMjhjMDQ0ODc1MDkwNzBiOTdmM2RkMmQ2ZDk3MjczMzE4MjAxNzczMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwNWJlY2Q4NzE5NWMxZGVmZjkwYzI0YzkxMjY5YjU1YjNmMDY5YmMyMjVjMzI2YzMxNGMxYTUxNzg2ZmZlMTRjODMwYmU0ZTRiYzczY2JhMzZjOTc2NzdiNDQxNjgyNzliZTkxZTdjZGY3YzE5Mzg2YWUyMTg2MjcxOWQxM2EzYTBmZmYwODAzZDQ2MDk2MmYyY2RhODM3MTQ4NDg3MzI1MmMzZDcwNTRkYjgxNDNlMmIwODFhMzgxNmVkMDgwNGNhNTA5OWFlNWZlY2U4M2Q1YzJjMzc4M2IxOTg4YjRiNDZkYzk0ZTU1NTg3YTEwN2VhMTU0NmJmMjJkMjhhMDk3ZjY1MmE0MDY2ZGMyOTY1MjY5MDY5YWYyZjUxNzZiYjhjZTljYTZkMTFmOTY3NTdmMDMyMDRmNzU2NzAzNTg3ZDAwYWQ0MjQ3OTZjOTJmYzdhZWI2ZjQ5NDQzMTk5OWVkYTMwOTkwZTRmNTc3MzYzMmVkMjU4ZmUwMjc2NjczNTk5ZGE2ZmNlMzVjZGFkNzcyNmEwYmIwMjRjYWQ5OTZiODhlMGNiOTg4NTRjZWI1YzBiNmVjNzQ4ZDlmOWNlNmE2Y2Q0Mzc4NThiYWNiODE0NjE4YTI3MmZmM2E0MTVjNmUwN2YzZGIwOTg4Nzc3ZmRlYzg0NWE5N2JmN2QxMDJkZDAiCiAKIFBLQ1M3IFBhcnNlIEZhaWx1cmUgSW52YWxpZCBBU04xOiBDaGFuZ2UgdGFnIDEzIHRvIDAyICMxNjEuMAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHBrY3M3X2FzbjFfZmFpbDoiMzA4MjA1MDAwNjA5MmE4NjQ4ODZmNzBkMDEwNzAyYTA4MjA0ZjEzMDgyMDRlZDAyMDEwMTMxMGYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBiMDYwOTJhODY0ODg2ZjcwZDAxMDcwMWEwODIwMzRkMzA4MjAzNDkzMDgyMDIzMWEwMDMwMjAxMDIwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTMwMWUxNzBkMzIzMjMxMzAzMjM4MzEzNjMxMzAzNTM2NWExNzBkMzIzMzMxMzAzMjM4MzEzNjMxMzAzNTM2NWEzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MDIwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEzMDgyMDEyMjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDAzODIwMTBmMDAzMDgyMDEwYTAyODIwMTAxMDBjOGI2Y2Y2OTg5OWNkMWYwZWJiNGNhNjQ1YzA1ZTcwZTBkMmVmZWRkY2M2MWQwODljYmQ1MTVhMzlhMzU3OWI5MjM0M2I2MWVjNzUwMDYwZmI0ZWQzNzg3NjMzMjQwMGU0MjVmMWQzNzZjN2U3NWMyOTczMzE0ZWRmNGJiMzBjOGY4ZGQwM2I5ZmNmZjk1NWEyNDVkNDkxMzdhZDZlNjAwNTZjYWMxOTU1MmE4NjVkNTIxODcxODdjYzA0MmM5YzQ5ZTNlM2E5YzE3YTUzNGI0NTNjZGFiYzBjYjExM2I0ZjYzZjViMzE3NGI5ZWU5OTAyYjE5MTBkMTE0OTZhMjc5YTc0MzI2YWRjZmVlMTBiZmQ5ZTdlYmFmYmIzNzdiZTliNjM5NTkxNjVkMTNkZDU3NTExNzFjYWRhZDNjMWQzYWRhYzY4YmM4MDExZDYxYjU0Y2Y2MDE3OGJlMzY4MzlhODlhYzkxYWI0MTllM2NhMzdkNmJhODgxZDI1NTE4YzRkYjY4YmNhNmY3YzgzNjAyZjY5OWE4NmIxN2ZiMWU3NzNiY2JlNzRiYjkzYTQ5YjI1MWFlODY0MjhiNTc0MGUxODY4YmIxZDZmYWI5ZTI4NzEyZTk4ZWMzMTlhZDhmY2E0ZDczMDEwYzRiMDljNGI4MDQ1ODk2MWU3Y2YwODM1MzAyMDMwMTAwMDFhMzUzMzA1MTMwMWQwNjAzNTUxZDBlMDQxNjA0MTQ4YWVlZTU5NDdjYzY3YzVkZDUxNWE3NmUyYTdlY2QzMWVlNTJmZGM4MzAxZjA2MDM1NTFkMjMwNDE4MzAxNjgwMTQ4YWVlZTU5NDdjYzY3YzVkZDUxNWE3NmUyYTdlY2QzMWVlNTJmZGM4MzAwZjA2MDM1NTFkMTMwMTAxZmYwNDA1MzAwMzAxMDFmZjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDAzODIwMTAxMDA4MjFkNmI5OGNkNDU3ZGViZDJiMDgxYWNhMjdlYmVjZDRmOTNhY2M4Mjg0NDNiMzllYWJmZmE5ZmE0ZTllNDU0M2I0NmZjYzMxZTJiNWI0ODE3NzkwM2RlYTY5NjlhYzRhMmNjNjU3MDY1MDM5MGYxYjA4ZDQzYTRjMmY5NzVjN2VkOGJmMzM1NmM3MjE4MzgwMjEyNDUxYThmMTFkZTQ2NTUzY2JjZDY1YjQyNTRkZGI4ZjY2ODM0ZWIyMWRkYTJhOGYzM2I1ODFlMTQ4NDU1N2FjYTFiOTRlZTg5MzFkZGYxNjAzN2I3YTcxNzEzMjFhOTE5MzZhZmMyN2ZmY2UzOTVkZTc1ZDVmNzBjYjhiNWFlZTA1ZmY1MDcwODhkNjVhZjFlNDM5NjZjZDQyY2JlNmY3ZmFjZjhkYWUwNTVkZDgyMjJiMTY5NjUyMTcyM2Y4MTI0NTE3ODU5NWM5ODVhZTkxN2ZkNGIzOTk4NzczZTFhOTdiN2JkMTAwODU0NDZmNDI1OWJjYzA5YTQ1NDkyOTI4MmMxYjg5YjcxZWQ1ODdhNzc1ZTBhM2Q0NTM2MzQxZjQ1ZGFlOTY5ZTgwNmM5NmZlZmM3MTA2Nzc3NmMwMmJhMjIxMjJiOTE5OWIxNGMwYzI4YzA0NDg3NTA5MDcwYjk3ZjNkZDJkNmQ5NzI3MzMxODIwMTc3MzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDViZWNkODcxOTVjMWRlZmY5MGMyNGM5MTI2OWI1NWIzZjA2OWJjMjI1YzMyNmMzMTRjMWE1MTc4NmZmZTE0YzgzMGJlNGU0YmM3M2NiYTM2Yzk3Njc3YjQ0MTY4Mjc5YmU5MWU3Y2RmN2MxOTM4NmFlMjE4NjI3MTlkMTNhM2EwZmZmMDgwM2Q0NjA5NjJmMmNkYTgzNzE0ODQ4NzMyNTJjM2Q3MDU0ZGI4MTQzZTJiMDgxYTM4MTZlZDA4MDRjYTUwOTlhZTVmZWNlODNkNWMyYzM3ODNiMTk4OGI0YjQ2ZGM5NGU1NTU4N2ExMDdlYTE1NDZiZjIyZDI4YTA5N2Y2NTJhNDA2NmRjMjk2NTI2OTA2OWFmMmY1MTc2YmI4Y2U5Y2E2ZDExZjk2NzU3ZjAzMjA0Zjc1NjcwMzU4N2QwMGFkNDI0Nzk2YzkyZmM3YWViNmY0OTQ0MzE5OTllZGEzMDk5MGU0ZjU3NzM2MzJlZDI1OGZlMDI3NjY3MzU5OWRhNmZjZTM1Y2RhZDc3MjZhMGJiMDI0Y2FkOTk2Yjg4ZTBjYjk4ODU0Y2ViNWMwYjZlYzc0OGQ5ZjljZTZhNmNkNDM3ODU4YmFjYjgxNDYxOGEyNzJmZjNhNDE1YzZlMDdmM2RiMDk4ODc3N2ZkZWM4NDVhOTdiZjdkMTAyZGQwIgogCiBQS0NTNyBQYXJzZSBGYWlsdXJlIEludmFsaWQgQVNOMTogQ2hhbmdlIGxlbmd0aCBmcm9tIDIgdG8gMyAjMTYyLjAKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBwa2NzN19hc24xX2ZhaWw6IjMwODIwNTAwMDYwOTJhODY0ODg2ZjcwZDAxMDcwMmEwODIwNGYxMzA4MjA0ZWQwMjAxMDEzMTBmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwYjA2MDkyYTg2NDg4NmY3MGQwMTA3MDFhMDgyMDM0ZDMwODIwMzQ5MzA4MjAyMzFhMDAzMDIwMTAyMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEzMDFlMTcwZDMyMzIzMTMwMzIzODMxMzYzMTMwMzUzNjVhMTcwZDMyMzMzMTMwMzIzODMxMzYzMTMwMzUzNjVhMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDM0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMzA4MjAxMjIzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwMzgyMDEwZjAwMzA4MjAxMGEwMjgyMDEwMTAwYzhiNmNmNjk4OTljZDFmMGViYjRjYTY0NWMwNWU3MGUwZDJlZmVkZGNjNjFkMDg5Y2JkNTE1YTM5YTM1NzliOTIzNDNiNjFlYzc1MDA2MGZiNGVkMzc4NzYzMzI0MDBlNDI1ZjFkMzc2YzdlNzVjMjk3MzMxNGVkZjRiYjMwYzhmOGRkMDNiOWZjZmY5NTVhMjQ1ZDQ5MTM3YWQ2ZTYwMDU2Y2FjMTk1NTJhODY1ZDUyMTg3MTg3Y2MwNDJjOWM0OWUzZTNhOWMxN2E1MzRiNDUzY2RhYmMwY2IxMTNiNGY2M2Y1YjMxNzRiOWVlOTkwMmIxOTEwZDExNDk2YTI3OWE3NDMyNmFkY2ZlZTEwYmZkOWU3ZWJhZmJiMzc3YmU5YjYzOTU5MTY1ZDEzZGQ1NzUxMTcxY2FkYWQzYzFkM2FkYWM2OGJjODAxMWQ2MWI1NGNmNjAxNzhiZTM2ODM5YTg5YWM5MWFiNDE5ZTNjYTM3ZDZiYTg4MWQyNTUxOGM0ZGI2OGJjYTZmN2M4MzYwMmY2OTlhODZiMTdmYjFlNzczYmNiZTc0YmI5M2E0OWIyNTFhZTg2NDI4YjU3NDBlMTg2OGJiMWQ2ZmFiOWUyODcxMmU5OGVjMzE5YWQ4ZmNhNGQ3MzAxMGM0YjA5YzRiODA0NTg5NjFlN2NmMDgzNTMwMjAzMDEwMDAxYTM1MzMwNTEzMDFkMDYwMzU1MWQwZTA0MTYwNDE0OGFlZWU1OTQ3Y2M2N2M1ZGQ1MTVhNzZlMmE3ZWNkMzFlZTUyZmRjODMwMWYwNjAzNTUxZDIzMDQxODMwMTY4MDE0OGFlZWU1OTQ3Y2M2N2M1ZGQ1MTVhNzZlMmE3ZWNkMzFlZTUyZmRjODMwMGYwNjAzNTUxZDEzMDEwMWZmMDQwNTMwMDMwMTAxZmYzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAwMzgyMDEwMTAwODIxZDZiOThjZDQ1N2RlYmQyYjA4MWFjYTI3ZWJlY2Q0ZjkzYWNjODI4NDQzYjM5ZWFiZmZhOWZhNGU5ZTQ1NDNiNDZmY2MzMWUyYjViNDgxNzc5MDNkZWE2OTY5YWM0YTJjYzY1NzA2NTAzOTBmMWIwOGQ0M2E0YzJmOTc1YzdlZDhiZjMzNTZjNzIxODM4MDIxMjQ1MWE4ZjExZGU0NjU1M2NiY2Q2NWI0MjU0ZGRiOGY2NjgzNGViMjFkZGEyYThmMzNiNTgxZTE0ODQ1NTdhY2ExYjk0ZWU4OTMxZGRmMTYwMzdiN2E3MTcxMzIxYTkxOTM2YWZjMjdmZmNlMzk1ZGU3NWQ1ZjcwY2I4YjVhZWUwNWZmNTA3MDg4ZDY1YWYxZTQzOTY2Y2Q0MmNiZTZmN2ZhY2Y4ZGFlMDU1ZGQ4MjIyYjE2OTY1MjE3MjNmODEyNDUxNzg1OTVjOTg1YWU5MTdmZDRiMzk5ODc3M2UxYTk3YjdiZDEwMDg1NDQ2ZjQyNTliY2MwOWE0NTQ5MjkyODJjMWI4OWI3MWVkNTg3YTc3NWUwYTNkNDUzNjM0MWY0NWRhZTk2OWU4MDZjOTZmZWZjNzEwNjc3NzZjMDJiYTIyMTIyYjkxOTliMTRjMGMyOGMwNDQ4NzUwOTA3MGI5N2YzZGQyZDZkOTcyNzMzMTgyMDE3NzMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTAyMTQ3YmRlZGRkMjQ0NGNkMWNkZmU1YzQxYTgxMDJjODliN2RmMmU2Y2JmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDA1YmVjZDg3MTk1YzFkZWZmOTBjMjRjOTEyNjliNTViM2YwNjliYzIyNWMzMjZjMzE0YzFhNTE3ODZmZmUxNGM4MzBiZTRlNGJjNzNjYmEzNmM5NzY3N2I0NDE2ODI3OWJlOTFlN2NkZjdjMTkzODZhZTIxODYyNzE5ZDEzYTNhMGZmZjA4MDNkNDYwOTYyZjJjZGE4MzcxNDg0ODczMjUyYzNkNzA1NGRiODE0M2UyYjA4MWEzODE2ZWQwODA0Y2E1MDk5YWU1ZmVjZTgzZDVjMmMzNzgzYjE5ODhiNGI0NmRjOTRlNTU1ODdhMTA3ZWExNTQ2YmYyMmQyOGEwOTdmNjUyYTQwNjZkYzI5NjUyNjkwNjlhZjJmNTE3NmJiOGNlOWNhNmQxMWY5Njc1N2YwMzIwNGY3NTY3MDM1ODdkMDBhZDQyNDc5NmM5MmZjN2FlYjZmNDk0NDMxOTk5ZWRhMzA5OTBlNGY1NzczNjMyZWQyNThmZTAyNzY2NzM1OTlkYTZmY2UzNWNkYWQ3NzI2YTBiYjAyNGNhZDk5NmI4OGUwY2I5ODg1NGNlYjVjMGI2ZWM3NDhkOWY5Y2U2YTZjZDQzNzg1OGJhY2I4MTQ2MThhMjcyZmYzYTQxNWM2ZTA3ZjNkYjA5ODg3NzdmZGVjODQ1YTk3YmY3ZDEwMmRkMCIKIAogUEtDUzcgUGFyc2UgRmFpbHVyZSBJbnZhbGlkIEFTTjE6IENoYW5nZSBsZW5ndGggZnJvbSAyIHRvIDEgIzE2My4wCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NgogcGtjczdfYXNuMV9mYWlsOiIzMDgyMDUwMDA2MDkyYTg2NDg4NmY3MGQwMTA3MDJhMDgyMDRmMTMwODIwNGVkMDIwMTAxMzEwZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGIwNjA5MmE4NjQ4ODZmNzBkMDEwNzAxYTA4MjAzNGQzMDgyMDM0OTMwODIwMjMxYTAwMzAyMDEwMjAyMTQ3YmRlZGRkMjQ0NGNkMWNkZmU1YzQxYTgxMDJjODliN2RmMmU2Y2JmMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMzAxZTE3MGQzMjMyMzEzMDMyMzgzMTM2MzEzMDM1MzY1YTE3MGQzMjMzMzEzMDMyMzgzMTM2MzEzMDM1MzY1YTMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAxNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTMwODIwMTIyMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDM4MjAxMGYwMDMwODIwMTBhMDI4MjAxMDEwMGM4YjZjZjY5ODk5Y2QxZjBlYmI0Y2E2NDVjMDVlNzBlMGQyZWZlZGRjYzYxZDA4OWNiZDUxNWEzOWEzNTc5YjkyMzQzYjYxZWM3NTAwNjBmYjRlZDM3ODc2MzMyNDAwZTQyNWYxZDM3NmM3ZTc1YzI5NzMzMTRlZGY0YmIzMGM4ZjhkZDAzYjlmY2ZmOTU1YTI0NWQ0OTEzN2FkNmU2MDA1NmNhYzE5NTUyYTg2NWQ1MjE4NzE4N2NjMDQyYzljNDllM2UzYTljMTdhNTM0YjQ1M2NkYWJjMGNiMTEzYjRmNjNmNWIzMTc0YjllZTk5MDJiMTkxMGQxMTQ5NmEyNzlhNzQzMjZhZGNmZWUxMGJmZDllN2ViYWZiYjM3N2JlOWI2Mzk1OTE2NWQxM2RkNTc1MTE3MWNhZGFkM2MxZDNhZGFjNjhiYzgwMTFkNjFiNTRjZjYwMTc4YmUzNjgzOWE4OWFjOTFhYjQxOWUzY2EzN2Q2YmE4ODFkMjU1MThjNGRiNjhiY2E2ZjdjODM2MDJmNjk5YTg2YjE3ZmIxZTc3M2JjYmU3NGJiOTNhNDliMjUxYWU4NjQyOGI1NzQwZTE4NjhiYjFkNmZhYjllMjg3MTJlOThlYzMxOWFkOGZjYTRkNzMwMTBjNGIwOWM0YjgwNDU4OTYxZTdjZjA4MzUzMDIwMzAxMDAwMWEzNTMzMDUxMzAxZDA2MDM1NTFkMGUwNDE2MDQxNDhhZWVlNTk0N2NjNjdjNWRkNTE1YTc2ZTJhN2VjZDMxZWU1MmZkYzgzMDFmMDYwMzU1MWQyMzA0MTgzMDE2ODAxNDhhZWVlNTk0N2NjNjdjNWRkNTE1YTc2ZTJhN2VjZDMxZWU1MmZkYzgzMDBmMDYwMzU1MWQxMzAxMDFmZjA0MDUzMDAzMDEwMWZmMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMDM4MjAxMDEwMDgyMWQ2Yjk4Y2Q0NTdkZWJkMmIwODFhY2EyN2ViZWNkNGY5M2FjYzgyODQ0M2IzOWVhYmZmYTlmYTRlOWU0NTQzYjQ2ZmNjMzFlMmI1YjQ4MTc3OTAzZGVhNjk2OWFjNGEyY2M2NTcwNjUwMzkwZjFiMDhkNDNhNGMyZjk3NWM3ZWQ4YmYzMzU2YzcyMTgzODAyMTI0NTFhOGYxMWRlNDY1NTNjYmNkNjViNDI1NGRkYjhmNjY4MzRlYjIxZGRhMmE4ZjMzYjU4MWUxNDg0NTU3YWNhMWI5NGVlODkzMWRkZjE2MDM3YjdhNzE3MTMyMWE5MTkzNmFmYzI3ZmZjZTM5NWRlNzVkNWY3MGNiOGI1YWVlMDVmZjUwNzA4OGQ2NWFmMWU0Mzk2NmNkNDJjYmU2ZjdmYWNmOGRhZTA1NWRkODIyMmIxNjk2NTIxNzIzZjgxMjQ1MTc4NTk1Yzk4NWFlOTE3ZmQ0YjM5OTg3NzNlMWE5N2I3YmQxMDA4NTQ0NmY0MjU5YmNjMDlhNDU0OTI5MjgyYzFiODliNzFlZDU4N2E3NzVlMGEzZDQ1MzYzNDFmNDVkYWU5NjllODA2Yzk2ZmVmYzcxMDY3Nzc2YzAyYmEyMjEyMmI5MTk5YjE0YzBjMjhjMDQ0ODc1MDkwNzBiOTdmM2RkMmQ2ZDk3MjczMzE4MjAxNzczMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwNWJlY2Q4NzE5NWMxZGVmZjkwYzI0YzkxMjY5YjU1YjNmMDY5YmMyMjVjMzI2YzMxNGMxYTUxNzg2ZmZlMTRjODMwYmU0ZTRiYzczY2JhMzZjOTc2NzdiNDQxNjgyNzliZTkxZTdjZGY3YzE5Mzg2YWUyMTg2MjcxOWQxM2EzYTBmZmYwODAzZDQ2MDk2MmYyY2RhODM3MTQ4NDg3MzI1MmMzZDcwNTRkYjgxNDNlMmIwODFhMzgxNmVkMDgwNGNhNTA5OWFlNWZlY2U4M2Q1YzJjMzc4M2IxOTg4YjRiNDZkYzk0ZTU1NTg3YTEwN2VhMTU0NmJmMjJkMjhhMDk3ZjY1MmE0MDY2ZGMyOTY1MjY5MDY5YWYyZjUxNzZiYjhjZTljYTZkMTFmOTY3NTdmMDMyMDRmNzU2NzAzNTg3ZDAwYWQ0MjQ3OTZjOTJmYzdhZWI2ZjQ5NDQzMTk5OWVkYTMwOTkwZTRmNTc3MzYzMmVkMjU4ZmUwMjc2NjczNTk5ZGE2ZmNlMzVjZGFkNzcyNmEwYmIwMjRjYWQ5OTZiODhlMGNiOTg4NTRjZWI1YzBiNmVjNzQ4ZDlmOWNlNmE2Y2Q0Mzc4NThiYWNiODE0NjE4YTI3MmZmM2E0MTVjNmUwN2YzZGIwOTg4Nzc3ZmRlYzg0NWE5N2JmN2QxMDJkZDAiCiAKIFBLQ1M3IFBhcnNlIEZhaWx1cmUgSW52YWxpZCBBU04xOiBDaGFuZ2UgdGFnIDMxIHRvIDAyICMxNjQuMAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHBrY3M3X2FzbjFfZmFpbDoiMzA4MjA1MDAwNjA5MmE4NjQ4ODZmNzBkMDEwNzAyYTA4MjA0ZjEzMDgyMDRlZDAyMDEwMTMxMGYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBiMDYwOTJhODY0ODg2ZjcwZDAxMDcwMWEwODIwMzRkMzA4MjAzNDkzMDgyMDIzMWEwMDMwMjAxMDIwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTMwMWUxNzBkMzIzMjMxMzAzMjM4MzEzNjMxMzAzNTM2NWExNzBkMzIzMzMxMzAzMjM4MzEzNjMxMzAzNTM2NWEzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMwMjBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEzMDgyMDEyMjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDAzODIwMTBmMDAzMDgyMDEwYTAyODIwMTAxMDBjOGI2Y2Y2OTg5OWNkMWYwZWJiNGNhNjQ1YzA1ZTcwZTBkMmVmZWRkY2M2MWQwODljYmQ1MTVhMzlhMzU3OWI5MjM0M2I2MWVjNzUwMDYwZmI0ZWQzNzg3NjMzMjQwMGU0MjVmMWQzNzZjN2U3NWMyOTczMzE0ZWRmNGJiMzBjOGY4ZGQwM2I5ZmNmZjk1NWEyNDVkNDkxMzdhZDZlNjAwNTZjYWMxOTU1MmE4NjVkNTIxODcxODdjYzA0MmM5YzQ5ZTNlM2E5YzE3YTUzNGI0NTNjZGFiYzBjYjExM2I0ZjYzZjViMzE3NGI5ZWU5OTAyYjE5MTBkMTE0OTZhMjc5YTc0MzI2YWRjZmVlMTBiZmQ5ZTdlYmFmYmIzNzdiZTliNjM5NTkxNjVkMTNkZDU3NTExNzFjYWRhZDNjMWQzYWRhYzY4YmM4MDExZDYxYjU0Y2Y2MDE3OGJlMzY4MzlhODlhYzkxYWI0MTllM2NhMzdkNmJhODgxZDI1NTE4YzRkYjY4YmNhNmY3YzgzNjAyZjY5OWE4NmIxN2ZiMWU3NzNiY2JlNzRiYjkzYTQ5YjI1MWFlODY0MjhiNTc0MGUxODY4YmIxZDZmYWI5ZTI4NzEyZTk4ZWMzMTlhZDhmY2E0ZDczMDEwYzRiMDljNGI4MDQ1ODk2MWU3Y2YwODM1MzAyMDMwMTAwMDFhMzUzMzA1MTMwMWQwNjAzNTUxZDBlMDQxNjA0MTQ4YWVlZTU5NDdjYzY3YzVkZDUxNWE3NmUyYTdlY2QzMWVlNTJmZGM4MzAxZjA2MDM1NTFkMjMwNDE4MzAxNjgwMTQ4YWVlZTU5NDdjYzY3YzVkZDUxNWE3NmUyYTdlY2QzMWVlNTJmZGM4MzAwZjA2MDM1NTFkMTMwMTAxZmYwNDA1MzAwMzAxMDFmZjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDAzODIwMTAxMDA4MjFkNmI5OGNkNDU3ZGViZDJiMDgxYWNhMjdlYmVjZDRmOTNhY2M4Mjg0NDNiMzllYWJmZmE5ZmE0ZTllNDU0M2I0NmZjYzMxZTJiNWI0ODE3NzkwM2RlYTY5NjlhYzRhMmNjNjU3MDY1MDM5MGYxYjA4ZDQzYTRjMmY5NzVjN2VkOGJmMzM1NmM3MjE4MzgwMjEyNDUxYThmMTFkZTQ2NTUzY2JjZDY1YjQyNTRkZGI4ZjY2ODM0ZWIyMWRkYTJhOGYzM2I1ODFlMTQ4NDU1N2FjYTFiOTRlZTg5MzFkZGYxNjAzN2I3YTcxNzEzMjFhOTE5MzZhZmMyN2ZmY2UzOTVkZTc1ZDVmNzBjYjhiNWFlZTA1ZmY1MDcwODhkNjVhZjFlNDM5NjZjZDQyY2JlNmY3ZmFjZjhkYWUwNTVkZDgyMjJiMTY5NjUyMTcyM2Y4MTI0NTE3ODU5NWM5ODVhZTkxN2ZkNGIzOTk4NzczZTFhOTdiN2JkMTAwODU0NDZmNDI1OWJjYzA5YTQ1NDkyOTI4MmMxYjg5YjcxZWQ1ODdhNzc1ZTBhM2Q0NTM2MzQxZjQ1ZGFlOTY5ZTgwNmM5NmZlZmM3MTA2Nzc3NmMwMmJhMjIxMjJiOTE5OWIxNGMwYzI4YzA0NDg3NTA5MDcwYjk3ZjNkZDJkNmQ5NzI3MzMxODIwMTc3MzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDViZWNkODcxOTVjMWRlZmY5MGMyNGM5MTI2OWI1NWIzZjA2OWJjMjI1YzMyNmMzMTRjMWE1MTc4NmZmZTE0YzgzMGJlNGU0YmM3M2NiYTM2Yzk3Njc3YjQ0MTY4Mjc5YmU5MWU3Y2RmN2MxOTM4NmFlMjE4NjI3MTlkMTNhM2EwZmZmMDgwM2Q0NjA5NjJmMmNkYTgzNzE0ODQ4NzMyNTJjM2Q3MDU0ZGI4MTQzZTJiMDgxYTM4MTZlZDA4MDRjYTUwOTlhZTVmZWNlODNkNWMyYzM3ODNiMTk4OGI0YjQ2ZGM5NGU1NTU4N2ExMDdlYTE1NDZiZjIyZDI4YTA5N2Y2NTJhNDA2NmRjMjk2NTI2OTA2OWFmMmY1MTc2YmI4Y2U5Y2E2ZDExZjk2NzU3ZjAzMjA0Zjc1NjcwMzU4N2QwMGFkNDI0Nzk2YzkyZmM3YWViNmY0OTQ0MzE5OTllZGEzMDk5MGU0ZjU3NzM2MzJlZDI1OGZlMDI3NjY3MzU5OWRhNmZjZTM1Y2RhZDc3MjZhMGJiMDI0Y2FkOTk2Yjg4ZTBjYjk4ODU0Y2ViNWMwYjZlYzc0OGQ5ZjljZTZhNmNkNDM3ODU4YmFjYjgxNDYxOGEyNzJmZjNhNDE1YzZlMDdmM2RiMDk4ODc3N2ZkZWM4NDVhOTdiZjdkMTAyZGQwIgogCiBQS0NTNyBQYXJzZSBGYWlsdXJlIEludmFsaWQgQVNOMTogQ2hhbmdlIGxlbmd0aCBmcm9tIDE0IHRvIDE1ICMxNjUuMAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHBrY3M3X2FzbjFfZmFpbDoiMzA4MjA1MDAwNjA5MmE4NjQ4ODZmNzBkMDEwNzAyYTA4MjA0ZjEzMDgyMDRlZDAyMDEwMTMxMGYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBiMDYwOTJhODY0ODg2ZjcwZDAxMDcwMWEwODIwMzRkMzA4MjAzNDkzMDgyMDIzMWEwMDMwMjAxMDIwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTMwMWUxNzBkMzIzMjMxMzAzMjM4MzEzNjMxMzAzNTM2NWExNzBkMzIzMzMxMzAzMjM4MzEzNjMxMzAzNTM2NWEzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBmMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEzMDgyMDEyMjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDAzODIwMTBmMDAzMDgyMDEwYTAyODIwMTAxMDBjOGI2Y2Y2OTg5OWNkMWYwZWJiNGNhNjQ1YzA1ZTcwZTBkMmVmZWRkY2M2MWQwODljYmQ1MTVhMzlhMzU3OWI5MjM0M2I2MWVjNzUwMDYwZmI0ZWQzNzg3NjMzMjQwMGU0MjVmMWQzNzZjN2U3NWMyOTczMzE0ZWRmNGJiMzBjOGY4ZGQwM2I5ZmNmZjk1NWEyNDVkNDkxMzdhZDZlNjAwNTZjYWMxOTU1MmE4NjVkNTIxODcxODdjYzA0MmM5YzQ5ZTNlM2E5YzE3YTUzNGI0NTNjZGFiYzBjYjExM2I0ZjYzZjViMzE3NGI5ZWU5OTAyYjE5MTBkMTE0OTZhMjc5YTc0MzI2YWRjZmVlMTBiZmQ5ZTdlYmFmYmIzNzdiZTliNjM5NTkxNjVkMTNkZDU3NTExNzFjYWRhZDNjMWQzYWRhYzY4YmM4MDExZDYxYjU0Y2Y2MDE3OGJlMzY4MzlhODlhYzkxYWI0MTllM2NhMzdkNmJhODgxZDI1NTE4YzRkYjY4YmNhNmY3YzgzNjAyZjY5OWE4NmIxN2ZiMWU3NzNiY2JlNzRiYjkzYTQ5YjI1MWFlODY0MjhiNTc0MGUxODY4YmIxZDZmYWI5ZTI4NzEyZTk4ZWMzMTlhZDhmY2E0ZDczMDEwYzRiMDljNGI4MDQ1ODk2MWU3Y2YwODM1MzAyMDMwMTAwMDFhMzUzMzA1MTMwMWQwNjAzNTUxZDBlMDQxNjA0MTQ4YWVlZTU5NDdjYzY3YzVkZDUxNWE3NmUyYTdlY2QzMWVlNTJmZGM4MzAxZjA2MDM1NTFkMjMwNDE4MzAxNjgwMTQ4YWVlZTU5NDdjYzY3YzVkZDUxNWE3NmUyYTdlY2QzMWVlNTJmZGM4MzAwZjA2MDM1NTFkMTMwMTAxZmYwNDA1MzAwMzAxMDFmZjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDAzODIwMTAxMDA4MjFkNmI5OGNkNDU3ZGViZDJiMDgxYWNhMjdlYmVjZDRmOTNhY2M4Mjg0NDNiMzllYWJmZmE5ZmE0ZTllNDU0M2I0NmZjYzMxZTJiNWI0ODE3NzkwM2RlYTY5NjlhYzRhMmNjNjU3MDY1MDM5MGYxYjA4ZDQzYTRjMmY5NzVjN2VkOGJmMzM1NmM3MjE4MzgwMjEyNDUxYThmMTFkZTQ2NTUzY2JjZDY1YjQyNTRkZGI4ZjY2ODM0ZWIyMWRkYTJhOGYzM2I1ODFlMTQ4NDU1N2FjYTFiOTRlZTg5MzFkZGYxNjAzN2I3YTcxNzEzMjFhOTE5MzZhZmMyN2ZmY2UzOTVkZTc1ZDVmNzBjYjhiNWFlZTA1ZmY1MDcwODhkNjVhZjFlNDM5NjZjZDQyY2JlNmY3ZmFjZjhkYWUwNTVkZDgyMjJiMTY5NjUyMTcyM2Y4MTI0NTE3ODU5NWM5ODVhZTkxN2ZkNGIzOTk4NzczZTFhOTdiN2JkMTAwODU0NDZmNDI1OWJjYzA5YTQ1NDkyOTI4MmMxYjg5YjcxZWQ1ODdhNzc1ZTBhM2Q0NTM2MzQxZjQ1ZGFlOTY5ZTgwNmM5NmZlZmM3MTA2Nzc3NmMwMmJhMjIxMjJiOTE5OWIxNGMwYzI4YzA0NDg3NTA5MDcwYjk3ZjNkZDJkNmQ5NzI3MzMxODIwMTc3MzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDViZWNkODcxOTVjMWRlZmY5MGMyNGM5MTI2OWI1NWIzZjA2OWJjMjI1YzMyNmMzMTRjMWE1MTc4NmZmZTE0YzgzMGJlNGU0YmM3M2NiYTM2Yzk3Njc3YjQ0MTY4Mjc5YmU5MWU3Y2RmN2MxOTM4NmFlMjE4NjI3MTlkMTNhM2EwZmZmMDgwM2Q0NjA5NjJmMmNkYTgzNzE0ODQ4NzMyNTJjM2Q3MDU0ZGI4MTQzZTJiMDgxYTM4MTZlZDA4MDRjYTUwOTlhZTVmZWNlODNkNWMyYzM3ODNiMTk4OGI0YjQ2ZGM5NGU1NTU4N2ExMDdlYTE1NDZiZjIyZDI4YTA5N2Y2NTJhNDA2NmRjMjk2NTI2OTA2OWFmMmY1MTc2YmI4Y2U5Y2E2ZDExZjk2NzU3ZjAzMjA0Zjc1NjcwMzU4N2QwMGFkNDI0Nzk2YzkyZmM3YWViNmY0OTQ0MzE5OTllZGEzMDk5MGU0ZjU3NzM2MzJlZDI1OGZlMDI3NjY3MzU5OWRhNmZjZTM1Y2RhZDc3MjZhMGJiMDI0Y2FkOTk2Yjg4ZTBjYjk4ODU0Y2ViNWMwYjZlYzc0OGQ5ZjljZTZhNmNkNDM3ODU4YmFjYjgxNDYxOGEyNzJmZjNhNDE1YzZlMDdmM2RiMDk4ODc3N2ZkZWM4NDVhOTdiZjdkMTAyZGQwIgogCiBQS0NTNyBQYXJzZSBGYWlsdXJlIEludmFsaWQgQVNOMTogQ2hhbmdlIGNvbnRlbnRzIG9mIHRhZyAzMSB0byBjb250YWluIG9uZSB1bmFjY291bnRlZCBleHRyYSBieXRlICMxNjYuMAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHBrY3M3X2FzbjFfZmFpbDoiMzA4MjA1MDAwNjA5MmE4NjQ4ODZmNzBkMDEwNzAyYTA4MjA0ZjEzMDgyMDRlZDAyMDEwMTMxMGYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBiMDYwOTJhODY0ODg2ZjcwZDAxMDcwMWEwODIwMzRkMzA4MjAzNDkzMDgyMDIzMWEwMDMwMjAxMDIwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTMwMWUxNzBkMzIzMjMxMzAzMjM4MzEzNjMxMzAzNTM2NWExNzBkMzIzMzMxMzAzMjM4MzEzNjMxMzAzNTM2NWEzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBmMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzAwMzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTMwODIwMTIyMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDM4MjAxMGYwMDMwODIwMTBhMDI4MjAxMDEwMGM4YjZjZjY5ODk5Y2QxZjBlYmI0Y2E2NDVjMDVlNzBlMGQyZWZlZGRjYzYxZDA4OWNiZDUxNWEzOWEzNTc5YjkyMzQzYjYxZWM3NTAwNjBmYjRlZDM3ODc2MzMyNDAwZTQyNWYxZDM3NmM3ZTc1YzI5NzMzMTRlZGY0YmIzMGM4ZjhkZDAzYjlmY2ZmOTU1YTI0NWQ0OTEzN2FkNmU2MDA1NmNhYzE5NTUyYTg2NWQ1MjE4NzE4N2NjMDQyYzljNDllM2UzYTljMTdhNTM0YjQ1M2NkYWJjMGNiMTEzYjRmNjNmNWIzMTc0YjllZTk5MDJiMTkxMGQxMTQ5NmEyNzlhNzQzMjZhZGNmZWUxMGJmZDllN2ViYWZiYjM3N2JlOWI2Mzk1OTE2NWQxM2RkNTc1MTE3MWNhZGFkM2MxZDNhZGFjNjhiYzgwMTFkNjFiNTRjZjYwMTc4YmUzNjgzOWE4OWFjOTFhYjQxOWUzY2EzN2Q2YmE4ODFkMjU1MThjNGRiNjhiY2E2ZjdjODM2MDJmNjk5YTg2YjE3ZmIxZTc3M2JjYmU3NGJiOTNhNDliMjUxYWU4NjQyOGI1NzQwZTE4NjhiYjFkNmZhYjllMjg3MTJlOThlYzMxOWFkOGZjYTRkNzMwMTBjNGIwOWM0YjgwNDU4OTYxZTdjZjA4MzUzMDIwMzAxMDAwMWEzNTMzMDUxMzAxZDA2MDM1NTFkMGUwNDE2MDQxNDhhZWVlNTk0N2NjNjdjNWRkNTE1YTc2ZTJhN2VjZDMxZWU1MmZkYzgzMDFmMDYwMzU1MWQyMzA0MTgzMDE2ODAxNDhhZWVlNTk0N2NjNjdjNWRkNTE1YTc2ZTJhN2VjZDMxZWU1MmZkYzgzMDBmMDYwMzU1MWQxMzAxMDFmZjA0MDUzMDAzMDEwMWZmMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMDM4MjAxMDEwMDgyMWQ2Yjk4Y2Q0NTdkZWJkMmIwODFhY2EyN2ViZWNkNGY5M2FjYzgyODQ0M2IzOWVhYmZmYTlmYTRlOWU0NTQzYjQ2ZmNjMzFlMmI1YjQ4MTc3OTAzZGVhNjk2OWFjNGEyY2M2NTcwNjUwMzkwZjFiMDhkNDNhNGMyZjk3NWM3ZWQ4YmYzMzU2YzcyMTgzODAyMTI0NTFhOGYxMWRlNDY1NTNjYmNkNjViNDI1NGRkYjhmNjY4MzRlYjIxZGRhMmE4ZjMzYjU4MWUxNDg0NTU3YWNhMWI5NGVlODkzMWRkZjE2MDM3YjdhNzE3MTMyMWE5MTkzNmFmYzI3ZmZjZTM5NWRlNzVkNWY3MGNiOGI1YWVlMDVmZjUwNzA4OGQ2NWFmMWU0Mzk2NmNkNDJjYmU2ZjdmYWNmOGRhZTA1NWRkODIyMmIxNjk2NTIxNzIzZjgxMjQ1MTc4NTk1Yzk4NWFlOTE3ZmQ0YjM5OTg3NzNlMWE5N2I3YmQxMDA4NTQ0NmY0MjU5YmNjMDlhNDU0OTI5MjgyYzFiODliNzFlZDU4N2E3NzVlMGEzZDQ1MzYzNDFmNDVkYWU5NjllODA2Yzk2ZmVmYzcxMDY3Nzc2YzAyYmEyMjEyMmI5MTk5YjE0YzBjMjhjMDQ0ODc1MDkwNzBiOTdmM2RkMmQ2ZDk3MjczMzE4MjAxNzczMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwNWJlY2Q4NzE5NWMxZGVmZjkwYzI0YzkxMjY5YjU1YjNmMDY5YmMyMjVjMzI2YzMxNGMxYTUxNzg2ZmZlMTRjODMwYmU0ZTRiYzczY2JhMzZjOTc2NzdiNDQxNjgyNzliZTkxZTdjZGY3YzE5Mzg2YWUyMTg2MjcxOWQxM2EzYTBmZmYwODAzZDQ2MDk2MmYyY2RhODM3MTQ4NDg3MzI1MmMzZDcwNTRkYjgxNDNlMmIwODFhMzgxNmVkMDgwNGNhNTA5OWFlNWZlY2U4M2Q1YzJjMzc4M2IxOTg4YjRiNDZkYzk0ZTU1NTg3YTEwN2VhMTU0NmJmMjJkMjhhMDk3ZjY1MmE0MDY2ZGMyOTY1MjY5MDY5YWYyZjUxNzZiYjhjZTljYTZkMTFmOTY3NTdmMDMyMDRmNzU2NzAzNTg3ZDAwYWQ0MjQ3OTZjOTJmYzdhZWI2ZjQ5NDQzMTk5OWVkYTMwOTkwZTRmNTc3MzYzMmVkMjU4ZmUwMjc2NjczNTk5ZGE2ZmNlMzVjZGFkNzcyNmEwYmIwMjRjYWQ5OTZiODhlMGNiOTg4NTRjZWI1YzBiNmVjNzQ4ZDlmOWNlNmE2Y2Q0Mzc4NThiYWNiODE0NjE4YTI3MmZmM2E0MTVjNmUwN2YzZGIwOTg4Nzc3ZmRlYzg0NWE5N2JmN2QxMDJkZDAiCiAKIFBLQ1M3IFBhcnNlIEZhaWx1cmUgSW52YWxpZCBBU04xOiBDaGFuZ2UgbGVuZ3RoIGZyb20gMTQgdG8gMTMgIzE2Ny4wCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NgogcGtjczdfYXNuMV9mYWlsOiIzMDgyMDUwMDA2MDkyYTg2NDg4NmY3MGQwMTA3MDJhMDgyMDRmMTMwODIwNGVkMDIwMTAxMzEwZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGIwNjA5MmE4NjQ4ODZmNzBkMDEwNzAxYTA4MjAzNGQzMDgyMDM0OTMwODIwMjMxYTAwMzAyMDEwMjAyMTQ3YmRlZGRkMjQ0NGNkMWNkZmU1YzQxYTgxMDJjODliN2RmMmU2Y2JmMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMzAxZTE3MGQzMjMyMzEzMDMyMzgzMTM2MzEzMDM1MzY1YTE3MGQzMjMzMzEzMDMyMzgzMTM2MzEzMDM1MzY1YTMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGQzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTMwODIwMTIyMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDM4MjAxMGYwMDMwODIwMTBhMDI4MjAxMDEwMGM4YjZjZjY5ODk5Y2QxZjBlYmI0Y2E2NDVjMDVlNzBlMGQyZWZlZGRjYzYxZDA4OWNiZDUxNWEzOWEzNTc5YjkyMzQzYjYxZWM3NTAwNjBmYjRlZDM3ODc2MzMyNDAwZTQyNWYxZDM3NmM3ZTc1YzI5NzMzMTRlZGY0YmIzMGM4ZjhkZDAzYjlmY2ZmOTU1YTI0NWQ0OTEzN2FkNmU2MDA1NmNhYzE5NTUyYTg2NWQ1MjE4NzE4N2NjMDQyYzljNDllM2UzYTljMTdhNTM0YjQ1M2NkYWJjMGNiMTEzYjRmNjNmNWIzMTc0YjllZTk5MDJiMTkxMGQxMTQ5NmEyNzlhNzQzMjZhZGNmZWUxMGJmZDllN2ViYWZiYjM3N2JlOWI2Mzk1OTE2NWQxM2RkNTc1MTE3MWNhZGFkM2MxZDNhZGFjNjhiYzgwMTFkNjFiNTRjZjYwMTc4YmUzNjgzOWE4OWFjOTFhYjQxOWUzY2EzN2Q2YmE4ODFkMjU1MThjNGRiNjhiY2E2ZjdjODM2MDJmNjk5YTg2YjE3ZmIxZTc3M2JjYmU3NGJiOTNhNDliMjUxYWU4NjQyOGI1NzQwZTE4NjhiYjFkNmZhYjllMjg3MTJlOThlYzMxOWFkOGZjYTRkNzMwMTBjNGIwOWM0YjgwNDU4OTYxZTdjZjA4MzUzMDIwMzAxMDAwMWEzNTMzMDUxMzAxZDA2MDM1NTFkMGUwNDE2MDQxNDhhZWVlNTk0N2NjNjdjNWRkNTE1YTc2ZTJhN2VjZDMxZWU1MmZkYzgzMDFmMDYwMzU1MWQyMzA0MTgzMDE2ODAxNDhhZWVlNTk0N2NjNjdjNWRkNTE1YTc2ZTJhN2VjZDMxZWU1MmZkYzgzMDBmMDYwMzU1MWQxMzAxMDFmZjA0MDUzMDAzMDEwMWZmMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMDM4MjAxMDEwMDgyMWQ2Yjk4Y2Q0NTdkZWJkMmIwODFhY2EyN2ViZWNkNGY5M2FjYzgyODQ0M2IzOWVhYmZmYTlmYTRlOWU0NTQzYjQ2ZmNjMzFlMmI1YjQ4MTc3OTAzZGVhNjk2OWFjNGEyY2M2NTcwNjUwMzkwZjFiMDhkNDNhNGMyZjk3NWM3ZWQ4YmYzMzU2YzcyMTgzODAyMTI0NTFhOGYxMWRlNDY1NTNjYmNkNjViNDI1NGRkYjhmNjY4MzRlYjIxZGRhMmE4ZjMzYjU4MWUxNDg0NTU3YWNhMWI5NGVlODkzMWRkZjE2MDM3YjdhNzE3MTMyMWE5MTkzNmFmYzI3ZmZjZTM5NWRlNzVkNWY3MGNiOGI1YWVlMDVmZjUwNzA4OGQ2NWFmMWU0Mzk2NmNkNDJjYmU2ZjdmYWNmOGRhZTA1NWRkODIyMmIxNjk2NTIxNzIzZjgxMjQ1MTc4NTk1Yzk4NWFlOTE3ZmQ0YjM5OTg3NzNlMWE5N2I3YmQxMDA4NTQ0NmY0MjU5YmNjMDlhNDU0OTI5MjgyYzFiODliNzFlZDU4N2E3NzVlMGEzZDQ1MzYzNDFmNDVkYWU5NjllODA2Yzk2ZmVmYzcxMDY3Nzc2YzAyYmEyMjEyMmI5MTk5YjE0YzBjMjhjMDQ0ODc1MDkwNzBiOTdmM2RkMmQ2ZDk3MjczMzE4MjAxNzczMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwNWJlY2Q4NzE5NWMxZGVmZjkwYzI0YzkxMjY5YjU1YjNmMDY5YmMyMjVjMzI2YzMxNGMxYTUxNzg2ZmZlMTRjODMwYmU0ZTRiYzczY2JhMzZjOTc2NzdiNDQxNjgyNzliZTkxZTdjZGY3YzE5Mzg2YWUyMTg2MjcxOWQxM2EzYTBmZmYwODAzZDQ2MDk2MmYyY2RhODM3MTQ4NDg3MzI1MmMzZDcwNTRkYjgxNDNlMmIwODFhMzgxNmVkMDgwNGNhNTA5OWFlNWZlY2U4M2Q1YzJjMzc4M2IxOTg4YjRiNDZkYzk0ZTU1NTg3YTEwN2VhMTU0NmJmMjJkMjhhMDk3ZjY1MmE0MDY2ZGMyOTY1MjY5MDY5YWYyZjUxNzZiYjhjZTljYTZkMTFmOTY3NTdmMDMyMDRmNzU2NzAzNTg3ZDAwYWQ0MjQ3OTZjOTJmYzdhZWI2ZjQ5NDQzMTk5OWVkYTMwOTkwZTRmNTc3MzYzMmVkMjU4ZmUwMjc2NjczNTk5ZGE2ZmNlMzVjZGFkNzcyNmEwYmIwMjRjYWQ5OTZiODhlMGNiOTg4NTRjZWI1YzBiNmVjNzQ4ZDlmOWNlNmE2Y2Q0Mzc4NThiYWNiODE0NjE4YTI3MmZmM2E0MTVjNmUwN2YzZGIwOTg4Nzc3ZmRlYzg0NWE5N2JmN2QxMDJkZDAiCiAKIFBLQ1M3IFBhcnNlIEZhaWx1cmUgSW52YWxpZCBBU04xOiBDaGFuZ2UgdGFnIDMwIHRvIDAyICMxNjguMAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHBrY3M3X2FzbjFfZmFpbDoiMzA4MjA1MDAwNjA5MmE4NjQ4ODZmNzBkMDEwNzAyYTA4MjA0ZjEzMDgyMDRlZDAyMDEwMTMxMGYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBiMDYwOTJhODY0ODg2ZjcwZDAxMDcwMWEwODIwMzRkMzA4MjAzNDkzMDgyMDIzMWEwMDMwMjAxMDIwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTMwMWUxNzBkMzIzMjMxMzAzMjM4MzEzNjMxMzAzNTM2NWExNzBkMzIzMzMxMzAzMjM4MzEzNjMxMzAzNTM2NWEzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMDIwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEzMDgyMDEyMjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDAzODIwMTBmMDAzMDgyMDEwYTAyODIwMTAxMDBjOGI2Y2Y2OTg5OWNkMWYwZWJiNGNhNjQ1YzA1ZTcwZTBkMmVmZWRkY2M2MWQwODljYmQ1MTVhMzlhMzU3OWI5MjM0M2I2MWVjNzUwMDYwZmI0ZWQzNzg3NjMzMjQwMGU0MjVmMWQzNzZjN2U3NWMyOTczMzE0ZWRmNGJiMzBjOGY4ZGQwM2I5ZmNmZjk1NWEyNDVkNDkxMzdhZDZlNjAwNTZjYWMxOTU1MmE4NjVkNTIxODcxODdjYzA0MmM5YzQ5ZTNlM2E5YzE3YTUzNGI0NTNjZGFiYzBjYjExM2I0ZjYzZjViMzE3NGI5ZWU5OTAyYjE5MTBkMTE0OTZhMjc5YTc0MzI2YWRjZmVlMTBiZmQ5ZTdlYmFmYmIzNzdiZTliNjM5NTkxNjVkMTNkZDU3NTExNzFjYWRhZDNjMWQzYWRhYzY4YmM4MDExZDYxYjU0Y2Y2MDE3OGJlMzY4MzlhODlhYzkxYWI0MTllM2NhMzdkNmJhODgxZDI1NTE4YzRkYjY4YmNhNmY3YzgzNjAyZjY5OWE4NmIxN2ZiMWU3NzNiY2JlNzRiYjkzYTQ5YjI1MWFlODY0MjhiNTc0MGUxODY4YmIxZDZmYWI5ZTI4NzEyZTk4ZWMzMTlhZDhmY2E0ZDczMDEwYzRiMDljNGI4MDQ1ODk2MWU3Y2YwODM1MzAyMDMwMTAwMDFhMzUzMzA1MTMwMWQwNjAzNTUxZDBlMDQxNjA0MTQ4YWVlZTU5NDdjYzY3YzVkZDUxNWE3NmUyYTdlY2QzMWVlNTJmZGM4MzAxZjA2MDM1NTFkMjMwNDE4MzAxNjgwMTQ4YWVlZTU5NDdjYzY3YzVkZDUxNWE3NmUyYTdlY2QzMWVlNTJmZGM4MzAwZjA2MDM1NTFkMTMwMTAxZmYwNDA1MzAwMzAxMDFmZjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDAzODIwMTAxMDA4MjFkNmI5OGNkNDU3ZGViZDJiMDgxYWNhMjdlYmVjZDRmOTNhY2M4Mjg0NDNiMzllYWJmZmE5ZmE0ZTllNDU0M2I0NmZjYzMxZTJiNWI0ODE3NzkwM2RlYTY5NjlhYzRhMmNjNjU3MDY1MDM5MGYxYjA4ZDQzYTRjMmY5NzVjN2VkOGJmMzM1NmM3MjE4MzgwMjEyNDUxYThmMTFkZTQ2NTUzY2JjZDY1YjQyNTRkZGI4ZjY2ODM0ZWIyMWRkYTJhOGYzM2I1ODFlMTQ4NDU1N2FjYTFiOTRlZTg5MzFkZGYxNjAzN2I3YTcxNzEzMjFhOTE5MzZhZmMyN2ZmY2UzOTVkZTc1ZDVmNzBjYjhiNWFlZTA1ZmY1MDcwODhkNjVhZjFlNDM5NjZjZDQyY2JlNmY3ZmFjZjhkYWUwNTVkZDgyMjJiMTY5NjUyMTcyM2Y4MTI0NTE3ODU5NWM5ODVhZTkxN2ZkNGIzOTk4NzczZTFhOTdiN2JkMTAwODU0NDZmNDI1OWJjYzA5YTQ1NDkyOTI4MmMxYjg5YjcxZWQ1ODdhNzc1ZTBhM2Q0NTM2MzQxZjQ1ZGFlOTY5ZTgwNmM5NmZlZmM3MTA2Nzc3NmMwMmJhMjIxMjJiOTE5OWIxNGMwYzI4YzA0NDg3NTA5MDcwYjk3ZjNkZDJkNmQ5NzI3MzMxODIwMTc3MzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDViZWNkODcxOTVjMWRlZmY5MGMyNGM5MTI2OWI1NWIzZjA2OWJjMjI1YzMyNmMzMTRjMWE1MTc4NmZmZTE0YzgzMGJlNGU0YmM3M2NiYTM2Yzk3Njc3YjQ0MTY4Mjc5YmU5MWU3Y2RmN2MxOTM4NmFlMjE4NjI3MTlkMTNhM2EwZmZmMDgwM2Q0NjA5NjJmMmNkYTgzNzE0ODQ4NzMyNTJjM2Q3MDU0ZGI4MTQzZTJiMDgxYTM4MTZlZDA4MDRjYTUwOTlhZTVmZWNlODNkNWMyYzM3ODNiMTk4OGI0YjQ2ZGM5NGU1NTU4N2ExMDdlYTE1NDZiZjIyZDI4YTA5N2Y2NTJhNDA2NmRjMjk2NTI2OTA2OWFmMmY1MTc2YmI4Y2U5Y2E2ZDExZjk2NzU3ZjAzMjA0Zjc1NjcwMzU4N2QwMGFkNDI0Nzk2YzkyZmM3YWViNmY0OTQ0MzE5OTllZGEzMDk5MGU0ZjU3NzM2MzJlZDI1OGZlMDI3NjY3MzU5OWRhNmZjZTM1Y2RhZDc3MjZhMGJiMDI0Y2FkOTk2Yjg4ZTBjYjk4ODU0Y2ViNWMwYjZlYzc0OGQ5ZjljZTZhNmNkNDM3ODU4YmFjYjgxNDYxOGEyNzJmZjNhNDE1YzZlMDdmM2RiMDk4ODc3N2ZkZWM4NDVhOTdiZjdkMTAyZGQwIgogCiBQS0NTNyBQYXJzZSBGYWlsdXJlIEludmFsaWQgQVNOMTogQ2hhbmdlIGxlbmd0aCBmcm9tIDEyIHRvIDEzICMxNjkuMAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHBrY3M3X2FzbjFfZmFpbDoiMzA4MjA1MDAwNjA5MmE4NjQ4ODZmNzBkMDEwNzAyYTA4MjA0ZjEzMDgyMDRlZDAyMDEwMTMxMGYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBiMDYwOTJhODY0ODg2ZjcwZDAxMDcwMWEwODIwMzRkMzA4MjAzNDkzMDgyMDIzMWEwMDMwMjAxMDIwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTMwMWUxNzBkMzIzMjMxMzAzMjM4MzEzNjMxMzAzNTM2NWExNzBkMzIzMzMxMzAzMjM4MzEzNjMxMzAzNTM2NWEzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwZDA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEzMDgyMDEyMjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDAzODIwMTBmMDAzMDgyMDEwYTAyODIwMTAxMDBjOGI2Y2Y2OTg5OWNkMWYwZWJiNGNhNjQ1YzA1ZTcwZTBkMmVmZWRkY2M2MWQwODljYmQ1MTVhMzlhMzU3OWI5MjM0M2I2MWVjNzUwMDYwZmI0ZWQzNzg3NjMzMjQwMGU0MjVmMWQzNzZjN2U3NWMyOTczMzE0ZWRmNGJiMzBjOGY4ZGQwM2I5ZmNmZjk1NWEyNDVkNDkxMzdhZDZlNjAwNTZjYWMxOTU1MmE4NjVkNTIxODcxODdjYzA0MmM5YzQ5ZTNlM2E5YzE3YTUzNGI0NTNjZGFiYzBjYjExM2I0ZjYzZjViMzE3NGI5ZWU5OTAyYjE5MTBkMTE0OTZhMjc5YTc0MzI2YWRjZmVlMTBiZmQ5ZTdlYmFmYmIzNzdiZTliNjM5NTkxNjVkMTNkZDU3NTExNzFjYWRhZDNjMWQzYWRhYzY4YmM4MDExZDYxYjU0Y2Y2MDE3OGJlMzY4MzlhODlhYzkxYWI0MTllM2NhMzdkNmJhODgxZDI1NTE4YzRkYjY4YmNhNmY3YzgzNjAyZjY5OWE4NmIxN2ZiMWU3NzNiY2JlNzRiYjkzYTQ5YjI1MWFlODY0MjhiNTc0MGUxODY4YmIxZDZmYWI5ZTI4NzEyZTk4ZWMzMTlhZDhmY2E0ZDczMDEwYzRiMDljNGI4MDQ1ODk2MWU3Y2YwODM1MzAyMDMwMTAwMDFhMzUzMzA1MTMwMWQwNjAzNTUxZDBlMDQxNjA0MTQ4YWVlZTU5NDdjYzY3YzVkZDUxNWE3NmUyYTdlY2QzMWVlNTJmZGM4MzAxZjA2MDM1NTFkMjMwNDE4MzAxNjgwMTQ4YWVlZTU5NDdjYzY3YzVkZDUxNWE3NmUyYTdlY2QzMWVlNTJmZGM4MzAwZjA2MDM1NTFkMTMwMTAxZmYwNDA1MzAwMzAxMDFmZjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDAzODIwMTAxMDA4MjFkNmI5OGNkNDU3ZGViZDJiMDgxYWNhMjdlYmVjZDRmOTNhY2M4Mjg0NDNiMzllYWJmZmE5ZmE0ZTllNDU0M2I0NmZjYzMxZTJiNWI0ODE3NzkwM2RlYTY5NjlhYzRhMmNjNjU3MDY1MDM5MGYxYjA4ZDQzYTRjMmY5NzVjN2VkOGJmMzM1NmM3MjE4MzgwMjEyNDUxYThmMTFkZTQ2NTUzY2JjZDY1YjQyNTRkZGI4ZjY2ODM0ZWIyMWRkYTJhOGYzM2I1ODFlMTQ4NDU1N2FjYTFiOTRlZTg5MzFkZGYxNjAzN2I3YTcxNzEzMjFhOTE5MzZhZmMyN2ZmY2UzOTVkZTc1ZDVmNzBjYjhiNWFlZTA1ZmY1MDcwODhkNjVhZjFlNDM5NjZjZDQyY2JlNmY3ZmFjZjhkYWUwNTVkZDgyMjJiMTY5NjUyMTcyM2Y4MTI0NTE3ODU5NWM5ODVhZTkxN2ZkNGIzOTk4NzczZTFhOTdiN2JkMTAwODU0NDZmNDI1OWJjYzA5YTQ1NDkyOTI4MmMxYjg5YjcxZWQ1ODdhNzc1ZTBhM2Q0NTM2MzQxZjQ1ZGFlOTY5ZTgwNmM5NmZlZmM3MTA2Nzc3NmMwMmJhMjIxMjJiOTE5OWIxNGMwYzI4YzA0NDg3NTA5MDcwYjk3ZjNkZDJkNmQ5NzI3MzMxODIwMTc3MzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDViZWNkODcxOTVjMWRlZmY5MGMyNGM5MTI2OWI1NWIzZjA2OWJjMjI1YzMyNmMzMTRjMWE1MTc4NmZmZTE0YzgzMGJlNGU0YmM3M2NiYTM2Yzk3Njc3YjQ0MTY4Mjc5YmU5MWU3Y2RmN2MxOTM4NmFlMjE4NjI3MTlkMTNhM2EwZmZmMDgwM2Q0NjA5NjJmMmNkYTgzNzE0ODQ4NzMyNTJjM2Q3MDU0ZGI4MTQzZTJiMDgxYTM4MTZlZDA4MDRjYTUwOTlhZTVmZWNlODNkNWMyYzM3ODNiMTk4OGI0YjQ2ZGM5NGU1NTU4N2ExMDdlYTE1NDZiZjIyZDI4YTA5N2Y2NTJhNDA2NmRjMjk2NTI2OTA2OWFmMmY1MTc2YmI4Y2U5Y2E2ZDExZjk2NzU3ZjAzMjA0Zjc1NjcwMzU4N2QwMGFkNDI0Nzk2YzkyZmM3YWViNmY0OTQ0MzE5OTllZGEzMDk5MGU0ZjU3NzM2MzJlZDI1OGZlMDI3NjY3MzU5OWRhNmZjZTM1Y2RhZDc3MjZhMGJiMDI0Y2FkOTk2Yjg4ZTBjYjk4ODU0Y2ViNWMwYjZlYzc0OGQ5ZjljZTZhNmNkNDM3ODU4YmFjYjgxNDYxOGEyNzJmZjNhNDE1YzZlMDdmM2RiMDk4ODc3N2ZkZWM4NDVhOTdiZjdkMTAyZGQwIgogCiBQS0NTNyBQYXJzZSBGYWlsdXJlIEludmFsaWQgQVNOMTogQ2hhbmdlIGNvbnRlbnRzIG9mIHRhZyAzMCB0byBjb250YWluIG9uZSB1bmFjY291bnRlZCBleHRyYSBieXRlICMxNzAuMAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHBrY3M3X2FzbjFfZmFpbDoiMzA4MjA1MDAwNjA5MmE4NjQ4ODZmNzBkMDEwNzAyYTA4MjA0ZjEzMDgyMDRlZDAyMDEwMTMxMGYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBiMDYwOTJhODY0ODg2ZjcwZDAxMDcwMWEwODIwMzRkMzA4MjAzNDkzMDgyMDIzMWEwMDMwMjAxMDIwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTMwMWUxNzBkMzIzMjMxMzAzMjM4MzEzNjMxMzAzNTM2NWExNzBkMzIzMzMxMzAzMjM4MzEzNjMxMzAzNTM2NWEzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwZDA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzAwMzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTMwODIwMTIyMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDM4MjAxMGYwMDMwODIwMTBhMDI4MjAxMDEwMGM4YjZjZjY5ODk5Y2QxZjBlYmI0Y2E2NDVjMDVlNzBlMGQyZWZlZGRjYzYxZDA4OWNiZDUxNWEzOWEzNTc5YjkyMzQzYjYxZWM3NTAwNjBmYjRlZDM3ODc2MzMyNDAwZTQyNWYxZDM3NmM3ZTc1YzI5NzMzMTRlZGY0YmIzMGM4ZjhkZDAzYjlmY2ZmOTU1YTI0NWQ0OTEzN2FkNmU2MDA1NmNhYzE5NTUyYTg2NWQ1MjE4NzE4N2NjMDQyYzljNDllM2UzYTljMTdhNTM0YjQ1M2NkYWJjMGNiMTEzYjRmNjNmNWIzMTc0YjllZTk5MDJiMTkxMGQxMTQ5NmEyNzlhNzQzMjZhZGNmZWUxMGJmZDllN2ViYWZiYjM3N2JlOWI2Mzk1OTE2NWQxM2RkNTc1MTE3MWNhZGFkM2MxZDNhZGFjNjhiYzgwMTFkNjFiNTRjZjYwMTc4YmUzNjgzOWE4OWFjOTFhYjQxOWUzY2EzN2Q2YmE4ODFkMjU1MThjNGRiNjhiY2E2ZjdjODM2MDJmNjk5YTg2YjE3ZmIxZTc3M2JjYmU3NGJiOTNhNDliMjUxYWU4NjQyOGI1NzQwZTE4NjhiYjFkNmZhYjllMjg3MTJlOThlYzMxOWFkOGZjYTRkNzMwMTBjNGIwOWM0YjgwNDU4OTYxZTdjZjA4MzUzMDIwMzAxMDAwMWEzNTMzMDUxMzAxZDA2MDM1NTFkMGUwNDE2MDQxNDhhZWVlNTk0N2NjNjdjNWRkNTE1YTc2ZTJhN2VjZDMxZWU1MmZkYzgzMDFmMDYwMzU1MWQyMzA0MTgzMDE2ODAxNDhhZWVlNTk0N2NjNjdjNWRkNTE1YTc2ZTJhN2VjZDMxZWU1MmZkYzgzMDBmMDYwMzU1MWQxMzAxMDFmZjA0MDUzMDAzMDEwMWZmMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMDM4MjAxMDEwMDgyMWQ2Yjk4Y2Q0NTdkZWJkMmIwODFhY2EyN2ViZWNkNGY5M2FjYzgyODQ0M2IzOWVhYmZmYTlmYTRlOWU0NTQzYjQ2ZmNjMzFlMmI1YjQ4MTc3OTAzZGVhNjk2OWFjNGEyY2M2NTcwNjUwMzkwZjFiMDhkNDNhNGMyZjk3NWM3ZWQ4YmYzMzU2YzcyMTgzODAyMTI0NTFhOGYxMWRlNDY1NTNjYmNkNjViNDI1NGRkYjhmNjY4MzRlYjIxZGRhMmE4ZjMzYjU4MWUxNDg0NTU3YWNhMWI5NGVlODkzMWRkZjE2MDM3YjdhNzE3MTMyMWE5MTkzNmFmYzI3ZmZjZTM5NWRlNzVkNWY3MGNiOGI1YWVlMDVmZjUwNzA4OGQ2NWFmMWU0Mzk2NmNkNDJjYmU2ZjdmYWNmOGRhZTA1NWRkODIyMmIxNjk2NTIxNzIzZjgxMjQ1MTc4NTk1Yzk4NWFlOTE3ZmQ0YjM5OTg3NzNlMWE5N2I3YmQxMDA4NTQ0NmY0MjU5YmNjMDlhNDU0OTI5MjgyYzFiODliNzFlZDU4N2E3NzVlMGEzZDQ1MzYzNDFmNDVkYWU5NjllODA2Yzk2ZmVmYzcxMDY3Nzc2YzAyYmEyMjEyMmI5MTk5YjE0YzBjMjhjMDQ0ODc1MDkwNzBiOTdmM2RkMmQ2ZDk3MjczMzE4MjAxNzczMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwNWJlY2Q4NzE5NWMxZGVmZjkwYzI0YzkxMjY5YjU1YjNmMDY5YmMyMjVjMzI2YzMxNGMxYTUxNzg2ZmZlMTRjODMwYmU0ZTRiYzczY2JhMzZjOTc2NzdiNDQxNjgyNzliZTkxZTdjZGY3YzE5Mzg2YWUyMTg2MjcxOWQxM2EzYTBmZmYwODAzZDQ2MDk2MmYyY2RhODM3MTQ4NDg3MzI1MmMzZDcwNTRkYjgxNDNlMmIwODFhMzgxNmVkMDgwNGNhNTA5OWFlNWZlY2U4M2Q1YzJjMzc4M2IxOTg4YjRiNDZkYzk0ZTU1NTg3YTEwN2VhMTU0NmJmMjJkMjhhMDk3ZjY1MmE0MDY2ZGMyOTY1MjY5MDY5YWYyZjUxNzZiYjhjZTljYTZkMTFmOTY3NTdmMDMyMDRmNzU2NzAzNTg3ZDAwYWQ0MjQ3OTZjOTJmYzdhZWI2ZjQ5NDQzMTk5OWVkYTMwOTkwZTRmNTc3MzYzMmVkMjU4ZmUwMjc2NjczNTk5ZGE2ZmNlMzVjZGFkNzcyNmEwYmIwMjRjYWQ5OTZiODhlMGNiOTg4NTRjZWI1YzBiNmVjNzQ4ZDlmOWNlNmE2Y2Q0Mzc4NThiYWNiODE0NjE4YTI3MmZmM2E0MTVjNmUwN2YzZGIwOTg4Nzc3ZmRlYzg0NWE5N2JmN2QxMDJkZDAiCiAKIFBLQ1M3IFBhcnNlIEZhaWx1cmUgSW52YWxpZCBBU04xOiBDaGFuZ2UgbGVuZ3RoIGZyb20gMTIgdG8gMTEgIzE3MS4wCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NgogcGtjczdfYXNuMV9mYWlsOiIzMDgyMDUwMDA2MDkyYTg2NDg4NmY3MGQwMTA3MDJhMDgyMDRmMTMwODIwNGVkMDIwMTAxMzEwZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGIwNjA5MmE4NjQ4ODZmNzBkMDEwNzAxYTA4MjAzNGQzMDgyMDM0OTMwODIwMjMxYTAwMzAyMDEwMjAyMTQ3YmRlZGRkMjQ0NGNkMWNkZmU1YzQxYTgxMDJjODliN2RmMmU2Y2JmMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMzAxZTE3MGQzMjMyMzEzMDMyMzgzMTM2MzEzMDM1MzY1YTE3MGQzMjMzMzEzMDMyMzgzMTM2MzEzMDM1MzY1YTMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBiMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTMwODIwMTIyMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDM4MjAxMGYwMDMwODIwMTBhMDI4MjAxMDEwMGM4YjZjZjY5ODk5Y2QxZjBlYmI0Y2E2NDVjMDVlNzBlMGQyZWZlZGRjYzYxZDA4OWNiZDUxNWEzOWEzNTc5YjkyMzQzYjYxZWM3NTAwNjBmYjRlZDM3ODc2MzMyNDAwZTQyNWYxZDM3NmM3ZTc1YzI5NzMzMTRlZGY0YmIzMGM4ZjhkZDAzYjlmY2ZmOTU1YTI0NWQ0OTEzN2FkNmU2MDA1NmNhYzE5NTUyYTg2NWQ1MjE4NzE4N2NjMDQyYzljNDllM2UzYTljMTdhNTM0YjQ1M2NkYWJjMGNiMTEzYjRmNjNmNWIzMTc0YjllZTk5MDJiMTkxMGQxMTQ5NmEyNzlhNzQzMjZhZGNmZWUxMGJmZDllN2ViYWZiYjM3N2JlOWI2Mzk1OTE2NWQxM2RkNTc1MTE3MWNhZGFkM2MxZDNhZGFjNjhiYzgwMTFkNjFiNTRjZjYwMTc4YmUzNjgzOWE4OWFjOTFhYjQxOWUzY2EzN2Q2YmE4ODFkMjU1MThjNGRiNjhiY2E2ZjdjODM2MDJmNjk5YTg2YjE3ZmIxZTc3M2JjYmU3NGJiOTNhNDliMjUxYWU4NjQyOGI1NzQwZTE4NjhiYjFkNmZhYjllMjg3MTJlOThlYzMxOWFkOGZjYTRkNzMwMTBjNGIwOWM0YjgwNDU4OTYxZTdjZjA4MzUzMDIwMzAxMDAwMWEzNTMzMDUxMzAxZDA2MDM1NTFkMGUwNDE2MDQxNDhhZWVlNTk0N2NjNjdjNWRkNTE1YTc2ZTJhN2VjZDMxZWU1MmZkYzgzMDFmMDYwMzU1MWQyMzA0MTgzMDE2ODAxNDhhZWVlNTk0N2NjNjdjNWRkNTE1YTc2ZTJhN2VjZDMxZWU1MmZkYzgzMDBmMDYwMzU1MWQxMzAxMDFmZjA0MDUzMDAzMDEwMWZmMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMDM4MjAxMDEwMDgyMWQ2Yjk4Y2Q0NTdkZWJkMmIwODFhY2EyN2ViZWNkNGY5M2FjYzgyODQ0M2IzOWVhYmZmYTlmYTRlOWU0NTQzYjQ2ZmNjMzFlMmI1YjQ4MTc3OTAzZGVhNjk2OWFjNGEyY2M2NTcwNjUwMzkwZjFiMDhkNDNhNGMyZjk3NWM3ZWQ4YmYzMzU2YzcyMTgzODAyMTI0NTFhOGYxMWRlNDY1NTNjYmNkNjViNDI1NGRkYjhmNjY4MzRlYjIxZGRhMmE4ZjMzYjU4MWUxNDg0NTU3YWNhMWI5NGVlODkzMWRkZjE2MDM3YjdhNzE3MTMyMWE5MTkzNmFmYzI3ZmZjZTM5NWRlNzVkNWY3MGNiOGI1YWVlMDVmZjUwNzA4OGQ2NWFmMWU0Mzk2NmNkNDJjYmU2ZjdmYWNmOGRhZTA1NWRkODIyMmIxNjk2NTIxNzIzZjgxMjQ1MTc4NTk1Yzk4NWFlOTE3ZmQ0YjM5OTg3NzNlMWE5N2I3YmQxMDA4NTQ0NmY0MjU5YmNjMDlhNDU0OTI5MjgyYzFiODliNzFlZDU4N2E3NzVlMGEzZDQ1MzYzNDFmNDVkYWU5NjllODA2Yzk2ZmVmYzcxMDY3Nzc2YzAyYmEyMjEyMmI5MTk5YjE0YzBjMjhjMDQ0ODc1MDkwNzBiOTdmM2RkMmQ2ZDk3MjczMzE4MjAxNzczMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwNWJlY2Q4NzE5NWMxZGVmZjkwYzI0YzkxMjY5YjU1YjNmMDY5YmMyMjVjMzI2YzMxNGMxYTUxNzg2ZmZlMTRjODMwYmU0ZTRiYzczY2JhMzZjOTc2NzdiNDQxNjgyNzliZTkxZTdjZGY3YzE5Mzg2YWUyMTg2MjcxOWQxM2EzYTBmZmYwODAzZDQ2MDk2MmYyY2RhODM3MTQ4NDg3MzI1MmMzZDcwNTRkYjgxNDNlMmIwODFhMzgxNmVkMDgwNGNhNTA5OWFlNWZlY2U4M2Q1YzJjMzc4M2IxOTg4YjRiNDZkYzk0ZTU1NTg3YTEwN2VhMTU0NmJmMjJkMjhhMDk3ZjY1MmE0MDY2ZGMyOTY1MjY5MDY5YWYyZjUxNzZiYjhjZTljYTZkMTFmOTY3NTdmMDMyMDRmNzU2NzAzNTg3ZDAwYWQ0MjQ3OTZjOTJmYzdhZWI2ZjQ5NDQzMTk5OWVkYTMwOTkwZTRmNTc3MzYzMmVkMjU4ZmUwMjc2NjczNTk5ZGE2ZmNlMzVjZGFkNzcyNmEwYmIwMjRjYWQ5OTZiODhlMGNiOTg4NTRjZWI1YzBiNmVjNzQ4ZDlmOWNlNmE2Y2Q0Mzc4NThiYWNiODE0NjE4YTI3MmZmM2E0MTVjNmUwN2YzZGIwOTg4Nzc3ZmRlYzg0NWE5N2JmN2QxMDJkZDAiCiAKIFBLQ1M3IFBhcnNlIEZhaWx1cmUgSW52YWxpZCBBU04xOiBDaGFuZ2UgdGFnIDA2IHRvIDAyICMxNzIuMAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHBrY3M3X2FzbjFfZmFpbDoiMzA4MjA1MDAwNjA5MmE4NjQ4ODZmNzBkMDEwNzAyYTA4MjA0ZjEzMDgyMDRlZDAyMDEwMTMxMGYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBiMDYwOTJhODY0ODg2ZjcwZDAxMDcwMWEwODIwMzRkMzA4MjAzNDkzMDgyMDIzMWEwMDMwMjAxMDIwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTMwMWUxNzBkMzIzMjMxMzAzMjM4MzEzNjMxMzAzNTM2NWExNzBkMzIzMzMxMzAzMjM4MzEzNjMxMzAzNTM2NWEzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzAyMDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEzMDgyMDEyMjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDAzODIwMTBmMDAzMDgyMDEwYTAyODIwMTAxMDBjOGI2Y2Y2OTg5OWNkMWYwZWJiNGNhNjQ1YzA1ZTcwZTBkMmVmZWRkY2M2MWQwODljYmQ1MTVhMzlhMzU3OWI5MjM0M2I2MWVjNzUwMDYwZmI0ZWQzNzg3NjMzMjQwMGU0MjVmMWQzNzZjN2U3NWMyOTczMzE0ZWRmNGJiMzBjOGY4ZGQwM2I5ZmNmZjk1NWEyNDVkNDkxMzdhZDZlNjAwNTZjYWMxOTU1MmE4NjVkNTIxODcxODdjYzA0MmM5YzQ5ZTNlM2E5YzE3YTUzNGI0NTNjZGFiYzBjYjExM2I0ZjYzZjViMzE3NGI5ZWU5OTAyYjE5MTBkMTE0OTZhMjc5YTc0MzI2YWRjZmVlMTBiZmQ5ZTdlYmFmYmIzNzdiZTliNjM5NTkxNjVkMTNkZDU3NTExNzFjYWRhZDNjMWQzYWRhYzY4YmM4MDExZDYxYjU0Y2Y2MDE3OGJlMzY4MzlhODlhYzkxYWI0MTllM2NhMzdkNmJhODgxZDI1NTE4YzRkYjY4YmNhNmY3YzgzNjAyZjY5OWE4NmIxN2ZiMWU3NzNiY2JlNzRiYjkzYTQ5YjI1MWFlODY0MjhiNTc0MGUxODY4YmIxZDZmYWI5ZTI4NzEyZTk4ZWMzMTlhZDhmY2E0ZDczMDEwYzRiMDljNGI4MDQ1ODk2MWU3Y2YwODM1MzAyMDMwMTAwMDFhMzUzMzA1MTMwMWQwNjAzNTUxZDBlMDQxNjA0MTQ4YWVlZTU5NDdjYzY3YzVkZDUxNWE3NmUyYTdlY2QzMWVlNTJmZGM4MzAxZjA2MDM1NTFkMjMwNDE4MzAxNjgwMTQ4YWVlZTU5NDdjYzY3YzVkZDUxNWE3NmUyYTdlY2QzMWVlNTJmZGM4MzAwZjA2MDM1NTFkMTMwMTAxZmYwNDA1MzAwMzAxMDFmZjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDAzODIwMTAxMDA4MjFkNmI5OGNkNDU3ZGViZDJiMDgxYWNhMjdlYmVjZDRmOTNhY2M4Mjg0NDNiMzllYWJmZmE5ZmE0ZTllNDU0M2I0NmZjYzMxZTJiNWI0ODE3NzkwM2RlYTY5NjlhYzRhMmNjNjU3MDY1MDM5MGYxYjA4ZDQzYTRjMmY5NzVjN2VkOGJmMzM1NmM3MjE4MzgwMjEyNDUxYThmMTFkZTQ2NTUzY2JjZDY1YjQyNTRkZGI4ZjY2ODM0ZWIyMWRkYTJhOGYzM2I1ODFlMTQ4NDU1N2FjYTFiOTRlZTg5MzFkZGYxNjAzN2I3YTcxNzEzMjFhOTE5MzZhZmMyN2ZmY2UzOTVkZTc1ZDVmNzBjYjhiNWFlZTA1ZmY1MDcwODhkNjVhZjFlNDM5NjZjZDQyY2JlNmY3ZmFjZjhkYWUwNTVkZDgyMjJiMTY5NjUyMTcyM2Y4MTI0NTE3ODU5NWM5ODVhZTkxN2ZkNGIzOTk4NzczZTFhOTdiN2JkMTAwODU0NDZmNDI1OWJjYzA5YTQ1NDkyOTI4MmMxYjg5YjcxZWQ1ODdhNzc1ZTBhM2Q0NTM2MzQxZjQ1ZGFlOTY5ZTgwNmM5NmZlZmM3MTA2Nzc3NmMwMmJhMjIxMjJiOTE5OWIxNGMwYzI4YzA0NDg3NTA5MDcwYjk3ZjNkZDJkNmQ5NzI3MzMxODIwMTc3MzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDViZWNkODcxOTVjMWRlZmY5MGMyNGM5MTI2OWI1NWIzZjA2OWJjMjI1YzMyNmMzMTRjMWE1MTc4NmZmZTE0YzgzMGJlNGU0YmM3M2NiYTM2Yzk3Njc3YjQ0MTY4Mjc5YmU5MWU3Y2RmN2MxOTM4NmFlMjE4NjI3MTlkMTNhM2EwZmZmMDgwM2Q0NjA5NjJmMmNkYTgzNzE0ODQ4NzMyNTJjM2Q3MDU0ZGI4MTQzZTJiMDgxYTM4MTZlZDA4MDRjYTUwOTlhZTVmZWNlODNkNWMyYzM3ODNiMTk4OGI0YjQ2ZGM5NGU1NTU4N2ExMDdlYTE1NDZiZjIyZDI4YTA5N2Y2NTJhNDA2NmRjMjk2NTI2OTA2OWFmMmY1MTc2YmI4Y2U5Y2E2ZDExZjk2NzU3ZjAzMjA0Zjc1NjcwMzU4N2QwMGFkNDI0Nzk2YzkyZmM3YWViNmY0OTQ0MzE5OTllZGEzMDk5MGU0ZjU3NzM2MzJlZDI1OGZlMDI3NjY3MzU5OWRhNmZjZTM1Y2RhZDc3MjZhMGJiMDI0Y2FkOTk2Yjg4ZTBjYjk4ODU0Y2ViNWMwYjZlYzc0OGQ5ZjljZTZhNmNkNDM3ODU4YmFjYjgxNDYxOGEyNzJmZjNhNDE1YzZlMDdmM2RiMDk4ODc3N2ZkZWM4NDVhOTdiZjdkMTAyZGQwIgogCiBQS0NTNyBQYXJzZSBGYWlsdXJlIEludmFsaWQgQVNOMTogQ2hhbmdlIGxlbmd0aCBmcm9tIDMgdG8gNCAjMTczLjAKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBwa2NzN19hc24xX2ZhaWw6IjMwODIwNTAwMDYwOTJhODY0ODg2ZjcwZDAxMDcwMmEwODIwNGYxMzA4MjA0ZWQwMjAxMDEzMTBmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwYjA2MDkyYTg2NDg4NmY3MGQwMTA3MDFhMDgyMDM0ZDMwODIwMzQ5MzA4MjAyMzFhMDAzMDIwMTAyMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEzMDFlMTcwZDMyMzIzMTMwMzIzODMxMzYzMTMwMzUzNjVhMTcwZDMyMzMzMTMwMzIzODMxMzYzMTMwMzUzNjVhMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjA0NTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMzA4MjAxMjIzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwMzgyMDEwZjAwMzA4MjAxMGEwMjgyMDEwMTAwYzhiNmNmNjk4OTljZDFmMGViYjRjYTY0NWMwNWU3MGUwZDJlZmVkZGNjNjFkMDg5Y2JkNTE1YTM5YTM1NzliOTIzNDNiNjFlYzc1MDA2MGZiNGVkMzc4NzYzMzI0MDBlNDI1ZjFkMzc2YzdlNzVjMjk3MzMxNGVkZjRiYjMwYzhmOGRkMDNiOWZjZmY5NTVhMjQ1ZDQ5MTM3YWQ2ZTYwMDU2Y2FjMTk1NTJhODY1ZDUyMTg3MTg3Y2MwNDJjOWM0OWUzZTNhOWMxN2E1MzRiNDUzY2RhYmMwY2IxMTNiNGY2M2Y1YjMxNzRiOWVlOTkwMmIxOTEwZDExNDk2YTI3OWE3NDMyNmFkY2ZlZTEwYmZkOWU3ZWJhZmJiMzc3YmU5YjYzOTU5MTY1ZDEzZGQ1NzUxMTcxY2FkYWQzYzFkM2FkYWM2OGJjODAxMWQ2MWI1NGNmNjAxNzhiZTM2ODM5YTg5YWM5MWFiNDE5ZTNjYTM3ZDZiYTg4MWQyNTUxOGM0ZGI2OGJjYTZmN2M4MzYwMmY2OTlhODZiMTdmYjFlNzczYmNiZTc0YmI5M2E0OWIyNTFhZTg2NDI4YjU3NDBlMTg2OGJiMWQ2ZmFiOWUyODcxMmU5OGVjMzE5YWQ4ZmNhNGQ3MzAxMGM0YjA5YzRiODA0NTg5NjFlN2NmMDgzNTMwMjAzMDEwMDAxYTM1MzMwNTEzMDFkMDYwMzU1MWQwZTA0MTYwNDE0OGFlZWU1OTQ3Y2M2N2M1ZGQ1MTVhNzZlMmE3ZWNkMzFlZTUyZmRjODMwMWYwNjAzNTUxZDIzMDQxODMwMTY4MDE0OGFlZWU1OTQ3Y2M2N2M1ZGQ1MTVhNzZlMmE3ZWNkMzFlZTUyZmRjODMwMGYwNjAzNTUxZDEzMDEwMWZmMDQwNTMwMDMwMTAxZmYzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAwMzgyMDEwMTAwODIxZDZiOThjZDQ1N2RlYmQyYjA4MWFjYTI3ZWJlY2Q0ZjkzYWNjODI4NDQzYjM5ZWFiZmZhOWZhNGU5ZTQ1NDNiNDZmY2MzMWUyYjViNDgxNzc5MDNkZWE2OTY5YWM0YTJjYzY1NzA2NTAzOTBmMWIwOGQ0M2E0YzJmOTc1YzdlZDhiZjMzNTZjNzIxODM4MDIxMjQ1MWE4ZjExZGU0NjU1M2NiY2Q2NWI0MjU0ZGRiOGY2NjgzNGViMjFkZGEyYThmMzNiNTgxZTE0ODQ1NTdhY2ExYjk0ZWU4OTMxZGRmMTYwMzdiN2E3MTcxMzIxYTkxOTM2YWZjMjdmZmNlMzk1ZGU3NWQ1ZjcwY2I4YjVhZWUwNWZmNTA3MDg4ZDY1YWYxZTQzOTY2Y2Q0MmNiZTZmN2ZhY2Y4ZGFlMDU1ZGQ4MjIyYjE2OTY1MjE3MjNmODEyNDUxNzg1OTVjOTg1YWU5MTdmZDRiMzk5ODc3M2UxYTk3YjdiZDEwMDg1NDQ2ZjQyNTliY2MwOWE0NTQ5MjkyODJjMWI4OWI3MWVkNTg3YTc3NWUwYTNkNDUzNjM0MWY0NWRhZTk2OWU4MDZjOTZmZWZjNzEwNjc3NzZjMDJiYTIyMTIyYjkxOTliMTRjMGMyOGMwNDQ4NzUwOTA3MGI5N2YzZGQyZDZkOTcyNzMzMTgyMDE3NzMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTAyMTQ3YmRlZGRkMjQ0NGNkMWNkZmU1YzQxYTgxMDJjODliN2RmMmU2Y2JmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDA1YmVjZDg3MTk1YzFkZWZmOTBjMjRjOTEyNjliNTViM2YwNjliYzIyNWMzMjZjMzE0YzFhNTE3ODZmZmUxNGM4MzBiZTRlNGJjNzNjYmEzNmM5NzY3N2I0NDE2ODI3OWJlOTFlN2NkZjdjMTkzODZhZTIxODYyNzE5ZDEzYTNhMGZmZjA4MDNkNDYwOTYyZjJjZGE4MzcxNDg0ODczMjUyYzNkNzA1NGRiODE0M2UyYjA4MWEzODE2ZWQwODA0Y2E1MDk5YWU1ZmVjZTgzZDVjMmMzNzgzYjE5ODhiNGI0NmRjOTRlNTU1ODdhMTA3ZWExNTQ2YmYyMmQyOGEwOTdmNjUyYTQwNjZkYzI5NjUyNjkwNjlhZjJmNTE3NmJiOGNlOWNhNmQxMWY5Njc1N2YwMzIwNGY3NTY3MDM1ODdkMDBhZDQyNDc5NmM5MmZjN2FlYjZmNDk0NDMxOTk5ZWRhMzA5OTBlNGY1NzczNjMyZWQyNThmZTAyNzY2NzM1OTlkYTZmY2UzNWNkYWQ3NzI2YTBiYjAyNGNhZDk5NmI4OGUwY2I5ODg1NGNlYjVjMGI2ZWM3NDhkOWY5Y2U2YTZjZDQzNzg1OGJhY2I4MTQ2MThhMjcyZmYzYTQxNWM2ZTA3ZjNkYjA5ODg3NzdmZGVjODQ1YTk3YmY3ZDEwMmRkMCIKIAogUEtDUzcgUGFyc2UgRmFpbHVyZSBJbnZhbGlkIEFTTjE6IENoYW5nZSBsZW5ndGggZnJvbSAzIHRvIDIgIzE3NC4wCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NgogcGtjczdfYXNuMV9mYWlsOiIzMDgyMDUwMDA2MDkyYTg2NDg4NmY3MGQwMTA3MDJhMDgyMDRmMTMwODIwNGVkMDIwMTAxMzEwZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGIwNjA5MmE4NjQ4ODZmNzBkMDEwNzAxYTA4MjAzNGQzMDgyMDM0OTMwODIwMjMxYTAwMzAyMDEwMjAyMTQ3YmRlZGRkMjQ0NGNkMWNkZmU1YzQxYTgxMDJjODliN2RmMmU2Y2JmMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMzAxZTE3MGQzMjMyMzEzMDMyMzgzMTM2MzEzMDM1MzY1YTE3MGQzMjMzMzEzMDMyMzgzMTM2MzEzMDM1MzY1YTMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMjU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTMwODIwMTIyMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDM4MjAxMGYwMDMwODIwMTBhMDI4MjAxMDEwMGM4YjZjZjY5ODk5Y2QxZjBlYmI0Y2E2NDVjMDVlNzBlMGQyZWZlZGRjYzYxZDA4OWNiZDUxNWEzOWEzNTc5YjkyMzQzYjYxZWM3NTAwNjBmYjRlZDM3ODc2MzMyNDAwZTQyNWYxZDM3NmM3ZTc1YzI5NzMzMTRlZGY0YmIzMGM4ZjhkZDAzYjlmY2ZmOTU1YTI0NWQ0OTEzN2FkNmU2MDA1NmNhYzE5NTUyYTg2NWQ1MjE4NzE4N2NjMDQyYzljNDllM2UzYTljMTdhNTM0YjQ1M2NkYWJjMGNiMTEzYjRmNjNmNWIzMTc0YjllZTk5MDJiMTkxMGQxMTQ5NmEyNzlhNzQzMjZhZGNmZWUxMGJmZDllN2ViYWZiYjM3N2JlOWI2Mzk1OTE2NWQxM2RkNTc1MTE3MWNhZGFkM2MxZDNhZGFjNjhiYzgwMTFkNjFiNTRjZjYwMTc4YmUzNjgzOWE4OWFjOTFhYjQxOWUzY2EzN2Q2YmE4ODFkMjU1MThjNGRiNjhiY2E2ZjdjODM2MDJmNjk5YTg2YjE3ZmIxZTc3M2JjYmU3NGJiOTNhNDliMjUxYWU4NjQyOGI1NzQwZTE4NjhiYjFkNmZhYjllMjg3MTJlOThlYzMxOWFkOGZjYTRkNzMwMTBjNGIwOWM0YjgwNDU4OTYxZTdjZjA4MzUzMDIwMzAxMDAwMWEzNTMzMDUxMzAxZDA2MDM1NTFkMGUwNDE2MDQxNDhhZWVlNTk0N2NjNjdjNWRkNTE1YTc2ZTJhN2VjZDMxZWU1MmZkYzgzMDFmMDYwMzU1MWQyMzA0MTgzMDE2ODAxNDhhZWVlNTk0N2NjNjdjNWRkNTE1YTc2ZTJhN2VjZDMxZWU1MmZkYzgzMDBmMDYwMzU1MWQxMzAxMDFmZjA0MDUzMDAzMDEwMWZmMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMDM4MjAxMDEwMDgyMWQ2Yjk4Y2Q0NTdkZWJkMmIwODFhY2EyN2ViZWNkNGY5M2FjYzgyODQ0M2IzOWVhYmZmYTlmYTRlOWU0NTQzYjQ2ZmNjMzFlMmI1YjQ4MTc3OTAzZGVhNjk2OWFjNGEyY2M2NTcwNjUwMzkwZjFiMDhkNDNhNGMyZjk3NWM3ZWQ4YmYzMzU2YzcyMTgzODAyMTI0NTFhOGYxMWRlNDY1NTNjYmNkNjViNDI1NGRkYjhmNjY4MzRlYjIxZGRhMmE4ZjMzYjU4MWUxNDg0NTU3YWNhMWI5NGVlODkzMWRkZjE2MDM3YjdhNzE3MTMyMWE5MTkzNmFmYzI3ZmZjZTM5NWRlNzVkNWY3MGNiOGI1YWVlMDVmZjUwNzA4OGQ2NWFmMWU0Mzk2NmNkNDJjYmU2ZjdmYWNmOGRhZTA1NWRkODIyMmIxNjk2NTIxNzIzZjgxMjQ1MTc4NTk1Yzk4NWFlOTE3ZmQ0YjM5OTg3NzNlMWE5N2I3YmQxMDA4NTQ0NmY0MjU5YmNjMDlhNDU0OTI5MjgyYzFiODliNzFlZDU4N2E3NzVlMGEzZDQ1MzYzNDFmNDVkYWU5NjllODA2Yzk2ZmVmYzcxMDY3Nzc2YzAyYmEyMjEyMmI5MTk5YjE0YzBjMjhjMDQ0ODc1MDkwNzBiOTdmM2RkMmQ2ZDk3MjczMzE4MjAxNzczMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwNWJlY2Q4NzE5NWMxZGVmZjkwYzI0YzkxMjY5YjU1YjNmMDY5YmMyMjVjMzI2YzMxNGMxYTUxNzg2ZmZlMTRjODMwYmU0ZTRiYzczY2JhMzZjOTc2NzdiNDQxNjgyNzliZTkxZTdjZGY3YzE5Mzg2YWUyMTg2MjcxOWQxM2EzYTBmZmYwODAzZDQ2MDk2MmYyY2RhODM3MTQ4NDg3MzI1MmMzZDcwNTRkYjgxNDNlMmIwODFhMzgxNmVkMDgwNGNhNTA5OWFlNWZlY2U4M2Q1YzJjMzc4M2IxOTg4YjRiNDZkYzk0ZTU1NTg3YTEwN2VhMTU0NmJmMjJkMjhhMDk3ZjY1MmE0MDY2ZGMyOTY1MjY5MDY5YWYyZjUxNzZiYjhjZTljYTZkMTFmOTY3NTdmMDMyMDRmNzU2NzAzNTg3ZDAwYWQ0MjQ3OTZjOTJmYzdhZWI2ZjQ5NDQzMTk5OWVkYTMwOTkwZTRmNTc3MzYzMmVkMjU4ZmUwMjc2NjczNTk5ZGE2ZmNlMzVjZGFkNzcyNmEwYmIwMjRjYWQ5OTZiODhlMGNiOTg4NTRjZWI1YzBiNmVjNzQ4ZDlmOWNlNmE2Y2Q0Mzc4NThiYWNiODE0NjE4YTI3MmZmM2E0MTVjNmUwN2YzZGIwOTg4Nzc3ZmRlYzg0NWE5N2JmN2QxMDJkZDAiCiAKIFBLQ1M3IFBhcnNlIEZhaWx1cmUgSW52YWxpZCBBU04xOiBDaGFuZ2UgdGFnIDBjIHRvIDAyICMxNzUuMAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHBrY3M3X2FzbjFfZmFpbDoiMzA4MjA1MDAwNjA5MmE4NjQ4ODZmNzBkMDEwNzAyYTA4MjA0ZjEzMDgyMDRlZDAyMDEwMTMxMGYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBiMDYwOTJhODY0ODg2ZjcwZDAxMDcwMWEwODIwMzRkMzA4MjAzNDkzMDgyMDIzMWEwMDMwMjAxMDIwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTMwMWUxNzBkMzIzMjMxMzAzMjM4MzEzNjMxMzAzNTM2NWExNzBkMzIzMzMxMzAzMjM4MzEzNjMxMzAzNTM2NWEzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwMjA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEzMDgyMDEyMjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDAzODIwMTBmMDAzMDgyMDEwYTAyODIwMTAxMDBjOGI2Y2Y2OTg5OWNkMWYwZWJiNGNhNjQ1YzA1ZTcwZTBkMmVmZWRkY2M2MWQwODljYmQ1MTVhMzlhMzU3OWI5MjM0M2I2MWVjNzUwMDYwZmI0ZWQzNzg3NjMzMjQwMGU0MjVmMWQzNzZjN2U3NWMyOTczMzE0ZWRmNGJiMzBjOGY4ZGQwM2I5ZmNmZjk1NWEyNDVkNDkxMzdhZDZlNjAwNTZjYWMxOTU1MmE4NjVkNTIxODcxODdjYzA0MmM5YzQ5ZTNlM2E5YzE3YTUzNGI0NTNjZGFiYzBjYjExM2I0ZjYzZjViMzE3NGI5ZWU5OTAyYjE5MTBkMTE0OTZhMjc5YTc0MzI2YWRjZmVlMTBiZmQ5ZTdlYmFmYmIzNzdiZTliNjM5NTkxNjVkMTNkZDU3NTExNzFjYWRhZDNjMWQzYWRhYzY4YmM4MDExZDYxYjU0Y2Y2MDE3OGJlMzY4MzlhODlhYzkxYWI0MTllM2NhMzdkNmJhODgxZDI1NTE4YzRkYjY4YmNhNmY3YzgzNjAyZjY5OWE4NmIxN2ZiMWU3NzNiY2JlNzRiYjkzYTQ5YjI1MWFlODY0MjhiNTc0MGUxODY4YmIxZDZmYWI5ZTI4NzEyZTk4ZWMzMTlhZDhmY2E0ZDczMDEwYzRiMDljNGI4MDQ1ODk2MWU3Y2YwODM1MzAyMDMwMTAwMDFhMzUzMzA1MTMwMWQwNjAzNTUxZDBlMDQxNjA0MTQ4YWVlZTU5NDdjYzY3YzVkZDUxNWE3NmUyYTdlY2QzMWVlNTJmZGM4MzAxZjA2MDM1NTFkMjMwNDE4MzAxNjgwMTQ4YWVlZTU5NDdjYzY3YzVkZDUxNWE3NmUyYTdlY2QzMWVlNTJmZGM4MzAwZjA2MDM1NTFkMTMwMTAxZmYwNDA1MzAwMzAxMDFmZjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDAzODIwMTAxMDA4MjFkNmI5OGNkNDU3ZGViZDJiMDgxYWNhMjdlYmVjZDRmOTNhY2M4Mjg0NDNiMzllYWJmZmE5ZmE0ZTllNDU0M2I0NmZjYzMxZTJiNWI0ODE3NzkwM2RlYTY5NjlhYzRhMmNjNjU3MDY1MDM5MGYxYjA4ZDQzYTRjMmY5NzVjN2VkOGJmMzM1NmM3MjE4MzgwMjEyNDUxYThmMTFkZTQ2NTUzY2JjZDY1YjQyNTRkZGI4ZjY2ODM0ZWIyMWRkYTJhOGYzM2I1ODFlMTQ4NDU1N2FjYTFiOTRlZTg5MzFkZGYxNjAzN2I3YTcxNzEzMjFhOTE5MzZhZmMyN2ZmY2UzOTVkZTc1ZDVmNzBjYjhiNWFlZTA1ZmY1MDcwODhkNjVhZjFlNDM5NjZjZDQyY2JlNmY3ZmFjZjhkYWUwNTVkZDgyMjJiMTY5NjUyMTcyM2Y4MTI0NTE3ODU5NWM5ODVhZTkxN2ZkNGIzOTk4NzczZTFhOTdiN2JkMTAwODU0NDZmNDI1OWJjYzA5YTQ1NDkyOTI4MmMxYjg5YjcxZWQ1ODdhNzc1ZTBhM2Q0NTM2MzQxZjQ1ZGFlOTY5ZTgwNmM5NmZlZmM3MTA2Nzc3NmMwMmJhMjIxMjJiOTE5OWIxNGMwYzI4YzA0NDg3NTA5MDcwYjk3ZjNkZDJkNmQ5NzI3MzMxODIwMTc3MzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDViZWNkODcxOTVjMWRlZmY5MGMyNGM5MTI2OWI1NWIzZjA2OWJjMjI1YzMyNmMzMTRjMWE1MTc4NmZmZTE0YzgzMGJlNGU0YmM3M2NiYTM2Yzk3Njc3YjQ0MTY4Mjc5YmU5MWU3Y2RmN2MxOTM4NmFlMjE4NjI3MTlkMTNhM2EwZmZmMDgwM2Q0NjA5NjJmMmNkYTgzNzE0ODQ4NzMyNTJjM2Q3MDU0ZGI4MTQzZTJiMDgxYTM4MTZlZDA4MDRjYTUwOTlhZTVmZWNlODNkNWMyYzM3ODNiMTk4OGI0YjQ2ZGM5NGU1NTU4N2ExMDdlYTE1NDZiZjIyZDI4YTA5N2Y2NTJhNDA2NmRjMjk2NTI2OTA2OWFmMmY1MTc2YmI4Y2U5Y2E2ZDExZjk2NzU3ZjAzMjA0Zjc1NjcwMzU4N2QwMGFkNDI0Nzk2YzkyZmM3YWViNmY0OTQ0MzE5OTllZGEzMDk5MGU0ZjU3NzM2MzJlZDI1OGZlMDI3NjY3MzU5OWRhNmZjZTM1Y2RhZDc3MjZhMGJiMDI0Y2FkOTk2Yjg4ZTBjYjk4ODU0Y2ViNWMwYjZlYzc0OGQ5ZjljZTZhNmNkNDM3ODU4YmFjYjgxNDYxOGEyNzJmZjNhNDE1YzZlMDdmM2RiMDk4ODc3N2ZkZWM4NDVhOTdiZjdkMTAyZGQwIgogCiBQS0NTNyBQYXJzZSBGYWlsdXJlIEludmFsaWQgQVNOMTogQ2hhbmdlIGxlbmd0aCBmcm9tIDUgdG8gNiAjMTc2LjAKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBwa2NzN19hc24xX2ZhaWw6IjMwODIwNTAwMDYwOTJhODY0ODg2ZjcwZDAxMDcwMmEwODIwNGYxMzA4MjA0ZWQwMjAxMDEzMTBmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwYjA2MDkyYTg2NDg4NmY3MGQwMTA3MDFhMDgyMDM0ZDMwODIwMzQ5MzA4MjAyMzFhMDAzMDIwMTAyMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEzMDFlMTcwZDMyMzIzMTMwMzIzODMxMzYzMTMwMzUzNjVhMTcwZDMyMzMzMTMwMzIzODMxMzYzMTMwMzUzNjVhMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNjUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMzA4MjAxMjIzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwMzgyMDEwZjAwMzA4MjAxMGEwMjgyMDEwMTAwYzhiNmNmNjk4OTljZDFmMGViYjRjYTY0NWMwNWU3MGUwZDJlZmVkZGNjNjFkMDg5Y2JkNTE1YTM5YTM1NzliOTIzNDNiNjFlYzc1MDA2MGZiNGVkMzc4NzYzMzI0MDBlNDI1ZjFkMzc2YzdlNzVjMjk3MzMxNGVkZjRiYjMwYzhmOGRkMDNiOWZjZmY5NTVhMjQ1ZDQ5MTM3YWQ2ZTYwMDU2Y2FjMTk1NTJhODY1ZDUyMTg3MTg3Y2MwNDJjOWM0OWUzZTNhOWMxN2E1MzRiNDUzY2RhYmMwY2IxMTNiNGY2M2Y1YjMxNzRiOWVlOTkwMmIxOTEwZDExNDk2YTI3OWE3NDMyNmFkY2ZlZTEwYmZkOWU3ZWJhZmJiMzc3YmU5YjYzOTU5MTY1ZDEzZGQ1NzUxMTcxY2FkYWQzYzFkM2FkYWM2OGJjODAxMWQ2MWI1NGNmNjAxNzhiZTM2ODM5YTg5YWM5MWFiNDE5ZTNjYTM3ZDZiYTg4MWQyNTUxOGM0ZGI2OGJjYTZmN2M4MzYwMmY2OTlhODZiMTdmYjFlNzczYmNiZTc0YmI5M2E0OWIyNTFhZTg2NDI4YjU3NDBlMTg2OGJiMWQ2ZmFiOWUyODcxMmU5OGVjMzE5YWQ4ZmNhNGQ3MzAxMGM0YjA5YzRiODA0NTg5NjFlN2NmMDgzNTMwMjAzMDEwMDAxYTM1MzMwNTEzMDFkMDYwMzU1MWQwZTA0MTYwNDE0OGFlZWU1OTQ3Y2M2N2M1ZGQ1MTVhNzZlMmE3ZWNkMzFlZTUyZmRjODMwMWYwNjAzNTUxZDIzMDQxODMwMTY4MDE0OGFlZWU1OTQ3Y2M2N2M1ZGQ1MTVhNzZlMmE3ZWNkMzFlZTUyZmRjODMwMGYwNjAzNTUxZDEzMDEwMWZmMDQwNTMwMDMwMTAxZmYzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAwMzgyMDEwMTAwODIxZDZiOThjZDQ1N2RlYmQyYjA4MWFjYTI3ZWJlY2Q0ZjkzYWNjODI4NDQzYjM5ZWFiZmZhOWZhNGU5ZTQ1NDNiNDZmY2MzMWUyYjViNDgxNzc5MDNkZWE2OTY5YWM0YTJjYzY1NzA2NTAzOTBmMWIwOGQ0M2E0YzJmOTc1YzdlZDhiZjMzNTZjNzIxODM4MDIxMjQ1MWE4ZjExZGU0NjU1M2NiY2Q2NWI0MjU0ZGRiOGY2NjgzNGViMjFkZGEyYThmMzNiNTgxZTE0ODQ1NTdhY2ExYjk0ZWU4OTMxZGRmMTYwMzdiN2E3MTcxMzIxYTkxOTM2YWZjMjdmZmNlMzk1ZGU3NWQ1ZjcwY2I4YjVhZWUwNWZmNTA3MDg4ZDY1YWYxZTQzOTY2Y2Q0MmNiZTZmN2ZhY2Y4ZGFlMDU1ZGQ4MjIyYjE2OTY1MjE3MjNmODEyNDUxNzg1OTVjOTg1YWU5MTdmZDRiMzk5ODc3M2UxYTk3YjdiZDEwMDg1NDQ2ZjQyNTliY2MwOWE0NTQ5MjkyODJjMWI4OWI3MWVkNTg3YTc3NWUwYTNkNDUzNjM0MWY0NWRhZTk2OWU4MDZjOTZmZWZjNzEwNjc3NzZjMDJiYTIyMTIyYjkxOTliMTRjMGMyOGMwNDQ4NzUwOTA3MGI5N2YzZGQyZDZkOTcyNzMzMTgyMDE3NzMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTAyMTQ3YmRlZGRkMjQ0NGNkMWNkZmU1YzQxYTgxMDJjODliN2RmMmU2Y2JmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDA1YmVjZDg3MTk1YzFkZWZmOTBjMjRjOTEyNjliNTViM2YwNjliYzIyNWMzMjZjMzE0YzFhNTE3ODZmZmUxNGM4MzBiZTRlNGJjNzNjYmEzNmM5NzY3N2I0NDE2ODI3OWJlOTFlN2NkZjdjMTkzODZhZTIxODYyNzE5ZDEzYTNhMGZmZjA4MDNkNDYwOTYyZjJjZGE4MzcxNDg0ODczMjUyYzNkNzA1NGRiODE0M2UyYjA4MWEzODE2ZWQwODA0Y2E1MDk5YWU1ZmVjZTgzZDVjMmMzNzgzYjE5ODhiNGI0NmRjOTRlNTU1ODdhMTA3ZWExNTQ2YmYyMmQyOGEwOTdmNjUyYTQwNjZkYzI5NjUyNjkwNjlhZjJmNTE3NmJiOGNlOWNhNmQxMWY5Njc1N2YwMzIwNGY3NTY3MDM1ODdkMDBhZDQyNDc5NmM5MmZjN2FlYjZmNDk0NDMxOTk5ZWRhMzA5OTBlNGY1NzczNjMyZWQyNThmZTAyNzY2NzM1OTlkYTZmY2UzNWNkYWQ3NzI2YTBiYjAyNGNhZDk5NmI4OGUwY2I5ODg1NGNlYjVjMGI2ZWM3NDhkOWY5Y2U2YTZjZDQzNzg1OGJhY2I4MTQ2MThhMjcyZmYzYTQxNWM2ZTA3ZjNkYjA5ODg3NzdmZGVjODQ1YTk3YmY3ZDEwMmRkMCIKIAogUEtDUzcgUGFyc2UgRmFpbHVyZSBJbnZhbGlkIEFTTjE6IENoYW5nZSBsZW5ndGggZnJvbSA1IHRvIDQgIzE3Ny4wCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NgogcGtjczdfYXNuMV9mYWlsOiIzMDgyMDUwMDA2MDkyYTg2NDg4NmY3MGQwMTA3MDJhMDgyMDRmMTMwODIwNGVkMDIwMTAxMzEwZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGIwNjA5MmE4NjQ4ODZmNzBkMDEwNzAxYTA4MjAzNGQzMDgyMDM0OTMwODIwMjMxYTAwMzAyMDEwMjAyMTQ3YmRlZGRkMjQ0NGNkMWNkZmU1YzQxYTgxMDJjODliN2RmMmU2Y2JmMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMzAxZTE3MGQzMjMyMzEzMDMyMzgzMTM2MzEzMDM1MzY1YTE3MGQzMjMzMzEzMDMyMzgzMTM2MzEzMDM1MzY1YTMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDQ1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTMwODIwMTIyMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDM4MjAxMGYwMDMwODIwMTBhMDI4MjAxMDEwMGM4YjZjZjY5ODk5Y2QxZjBlYmI0Y2E2NDVjMDVlNzBlMGQyZWZlZGRjYzYxZDA4OWNiZDUxNWEzOWEzNTc5YjkyMzQzYjYxZWM3NTAwNjBmYjRlZDM3ODc2MzMyNDAwZTQyNWYxZDM3NmM3ZTc1YzI5NzMzMTRlZGY0YmIzMGM4ZjhkZDAzYjlmY2ZmOTU1YTI0NWQ0OTEzN2FkNmU2MDA1NmNhYzE5NTUyYTg2NWQ1MjE4NzE4N2NjMDQyYzljNDllM2UzYTljMTdhNTM0YjQ1M2NkYWJjMGNiMTEzYjRmNjNmNWIzMTc0YjllZTk5MDJiMTkxMGQxMTQ5NmEyNzlhNzQzMjZhZGNmZWUxMGJmZDllN2ViYWZiYjM3N2JlOWI2Mzk1OTE2NWQxM2RkNTc1MTE3MWNhZGFkM2MxZDNhZGFjNjhiYzgwMTFkNjFiNTRjZjYwMTc4YmUzNjgzOWE4OWFjOTFhYjQxOWUzY2EzN2Q2YmE4ODFkMjU1MThjNGRiNjhiY2E2ZjdjODM2MDJmNjk5YTg2YjE3ZmIxZTc3M2JjYmU3NGJiOTNhNDliMjUxYWU4NjQyOGI1NzQwZTE4NjhiYjFkNmZhYjllMjg3MTJlOThlYzMxOWFkOGZjYTRkNzMwMTBjNGIwOWM0YjgwNDU4OTYxZTdjZjA4MzUzMDIwMzAxMDAwMWEzNTMzMDUxMzAxZDA2MDM1NTFkMGUwNDE2MDQxNDhhZWVlNTk0N2NjNjdjNWRkNTE1YTc2ZTJhN2VjZDMxZWU1MmZkYzgzMDFmMDYwMzU1MWQyMzA0MTgzMDE2ODAxNDhhZWVlNTk0N2NjNjdjNWRkNTE1YTc2ZTJhN2VjZDMxZWU1MmZkYzgzMDBmMDYwMzU1MWQxMzAxMDFmZjA0MDUzMDAzMDEwMWZmMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMDM4MjAxMDEwMDgyMWQ2Yjk4Y2Q0NTdkZWJkMmIwODFhY2EyN2ViZWNkNGY5M2FjYzgyODQ0M2IzOWVhYmZmYTlmYTRlOWU0NTQzYjQ2ZmNjMzFlMmI1YjQ4MTc3OTAzZGVhNjk2OWFjNGEyY2M2NTcwNjUwMzkwZjFiMDhkNDNhNGMyZjk3NWM3ZWQ4YmYzMzU2YzcyMTgzODAyMTI0NTFhOGYxMWRlNDY1NTNjYmNkNjViNDI1NGRkYjhmNjY4MzRlYjIxZGRhMmE4ZjMzYjU4MWUxNDg0NTU3YWNhMWI5NGVlODkzMWRkZjE2MDM3YjdhNzE3MTMyMWE5MTkzNmFmYzI3ZmZjZTM5NWRlNzVkNWY3MGNiOGI1YWVlMDVmZjUwNzA4OGQ2NWFmMWU0Mzk2NmNkNDJjYmU2ZjdmYWNmOGRhZTA1NWRkODIyMmIxNjk2NTIxNzIzZjgxMjQ1MTc4NTk1Yzk4NWFlOTE3ZmQ0YjM5OTg3NzNlMWE5N2I3YmQxMDA4NTQ0NmY0MjU5YmNjMDlhNDU0OTI5MjgyYzFiODliNzFlZDU4N2E3NzVlMGEzZDQ1MzYzNDFmNDVkYWU5NjllODA2Yzk2ZmVmYzcxMDY3Nzc2YzAyYmEyMjEyMmI5MTk5YjE0YzBjMjhjMDQ0ODc1MDkwNzBiOTdmM2RkMmQ2ZDk3MjczMzE4MjAxNzczMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwNWJlY2Q4NzE5NWMxZGVmZjkwYzI0YzkxMjY5YjU1YjNmMDY5YmMyMjVjMzI2YzMxNGMxYTUxNzg2ZmZlMTRjODMwYmU0ZTRiYzczY2JhMzZjOTc2NzdiNDQxNjgyNzliZTkxZTdjZGY3YzE5Mzg2YWUyMTg2MjcxOWQxM2EzYTBmZmYwODAzZDQ2MDk2MmYyY2RhODM3MTQ4NDg3MzI1MmMzZDcwNTRkYjgxNDNlMmIwODFhMzgxNmVkMDgwNGNhNTA5OWFlNWZlY2U4M2Q1YzJjMzc4M2IxOTg4YjRiNDZkYzk0ZTU1NTg3YTEwN2VhMTU0NmJmMjJkMjhhMDk3ZjY1MmE0MDY2ZGMyOTY1MjY5MDY5YWYyZjUxNzZiYjhjZTljYTZkMTFmOTY3NTdmMDMyMDRmNzU2NzAzNTg3ZDAwYWQ0MjQ3OTZjOTJmYzdhZWI2ZjQ5NDQzMTk5OWVkYTMwOTkwZTRmNTc3MzYzMmVkMjU4ZmUwMjc2NjczNTk5ZGE2ZmNlMzVjZGFkNzcyNmEwYmIwMjRjYWQ5OTZiODhlMGNiOTg4NTRjZWI1YzBiNmVjNzQ4ZDlmOWNlNmE2Y2Q0Mzc4NThiYWNiODE0NjE4YTI3MmZmM2E0MTVjNmUwN2YzZGIwOTg4Nzc3ZmRlYzg0NWE5N2JmN2QxMDJkZDAiCiAKIFBLQ1M3IFBhcnNlIEZhaWx1cmUgSW52YWxpZCBBU04xOiBDaGFuZ2UgdGFnIDMxIHRvIDAyICMxNzguMAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHBrY3M3X2FzbjFfZmFpbDoiMzA4MjA1MDAwNjA5MmE4NjQ4ODZmNzBkMDEwNzAyYTA4MjA0ZjEzMDgyMDRlZDAyMDEwMTMxMGYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBiMDYwOTJhODY0ODg2ZjcwZDAxMDcwMWEwODIwMzRkMzA4MjAzNDkzMDgyMDIzMWEwMDMwMjAxMDIwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTMwMWUxNzBkMzIzMjMxMzAzMjM4MzEzNjMxMzAzNTM2NWExNzBkMzIzMzMxMzAzMjM4MzEzNjMxMzAzNTM2NWEzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzAyMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEzMDgyMDEyMjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDAzODIwMTBmMDAzMDgyMDEwYTAyODIwMTAxMDBjOGI2Y2Y2OTg5OWNkMWYwZWJiNGNhNjQ1YzA1ZTcwZTBkMmVmZWRkY2M2MWQwODljYmQ1MTVhMzlhMzU3OWI5MjM0M2I2MWVjNzUwMDYwZmI0ZWQzNzg3NjMzMjQwMGU0MjVmMWQzNzZjN2U3NWMyOTczMzE0ZWRmNGJiMzBjOGY4ZGQwM2I5ZmNmZjk1NWEyNDVkNDkxMzdhZDZlNjAwNTZjYWMxOTU1MmE4NjVkNTIxODcxODdjYzA0MmM5YzQ5ZTNlM2E5YzE3YTUzNGI0NTNjZGFiYzBjYjExM2I0ZjYzZjViMzE3NGI5ZWU5OTAyYjE5MTBkMTE0OTZhMjc5YTc0MzI2YWRjZmVlMTBiZmQ5ZTdlYmFmYmIzNzdiZTliNjM5NTkxNjVkMTNkZDU3NTExNzFjYWRhZDNjMWQzYWRhYzY4YmM4MDExZDYxYjU0Y2Y2MDE3OGJlMzY4MzlhODlhYzkxYWI0MTllM2NhMzdkNmJhODgxZDI1NTE4YzRkYjY4YmNhNmY3YzgzNjAyZjY5OWE4NmIxN2ZiMWU3NzNiY2JlNzRiYjkzYTQ5YjI1MWFlODY0MjhiNTc0MGUxODY4YmIxZDZmYWI5ZTI4NzEyZTk4ZWMzMTlhZDhmY2E0ZDczMDEwYzRiMDljNGI4MDQ1ODk2MWU3Y2YwODM1MzAyMDMwMTAwMDFhMzUzMzA1MTMwMWQwNjAzNTUxZDBlMDQxNjA0MTQ4YWVlZTU5NDdjYzY3YzVkZDUxNWE3NmUyYTdlY2QzMWVlNTJmZGM4MzAxZjA2MDM1NTFkMjMwNDE4MzAxNjgwMTQ4YWVlZTU5NDdjYzY3YzVkZDUxNWE3NmUyYTdlY2QzMWVlNTJmZGM4MzAwZjA2MDM1NTFkMTMwMTAxZmYwNDA1MzAwMzAxMDFmZjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDAzODIwMTAxMDA4MjFkNmI5OGNkNDU3ZGViZDJiMDgxYWNhMjdlYmVjZDRmOTNhY2M4Mjg0NDNiMzllYWJmZmE5ZmE0ZTllNDU0M2I0NmZjYzMxZTJiNWI0ODE3NzkwM2RlYTY5NjlhYzRhMmNjNjU3MDY1MDM5MGYxYjA4ZDQzYTRjMmY5NzVjN2VkOGJmMzM1NmM3MjE4MzgwMjEyNDUxYThmMTFkZTQ2NTUzY2JjZDY1YjQyNTRkZGI4ZjY2ODM0ZWIyMWRkYTJhOGYzM2I1ODFlMTQ4NDU1N2FjYTFiOTRlZTg5MzFkZGYxNjAzN2I3YTcxNzEzMjFhOTE5MzZhZmMyN2ZmY2UzOTVkZTc1ZDVmNzBjYjhiNWFlZTA1ZmY1MDcwODhkNjVhZjFlNDM5NjZjZDQyY2JlNmY3ZmFjZjhkYWUwNTVkZDgyMjJiMTY5NjUyMTcyM2Y4MTI0NTE3ODU5NWM5ODVhZTkxN2ZkNGIzOTk4NzczZTFhOTdiN2JkMTAwODU0NDZmNDI1OWJjYzA5YTQ1NDkyOTI4MmMxYjg5YjcxZWQ1ODdhNzc1ZTBhM2Q0NTM2MzQxZjQ1ZGFlOTY5ZTgwNmM5NmZlZmM3MTA2Nzc3NmMwMmJhMjIxMjJiOTE5OWIxNGMwYzI4YzA0NDg3NTA5MDcwYjk3ZjNkZDJkNmQ5NzI3MzMxODIwMTc3MzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDViZWNkODcxOTVjMWRlZmY5MGMyNGM5MTI2OWI1NWIzZjA2OWJjMjI1YzMyNmMzMTRjMWE1MTc4NmZmZTE0YzgzMGJlNGU0YmM3M2NiYTM2Yzk3Njc3YjQ0MTY4Mjc5YmU5MWU3Y2RmN2MxOTM4NmFlMjE4NjI3MTlkMTNhM2EwZmZmMDgwM2Q0NjA5NjJmMmNkYTgzNzE0ODQ4NzMyNTJjM2Q3MDU0ZGI4MTQzZTJiMDgxYTM4MTZlZDA4MDRjYTUwOTlhZTVmZWNlODNkNWMyYzM3ODNiMTk4OGI0YjQ2ZGM5NGU1NTU4N2ExMDdlYTE1NDZiZjIyZDI4YTA5N2Y2NTJhNDA2NmRjMjk2NTI2OTA2OWFmMmY1MTc2YmI4Y2U5Y2E2ZDExZjk2NzU3ZjAzMjA0Zjc1NjcwMzU4N2QwMGFkNDI0Nzk2YzkyZmM3YWViNmY0OTQ0MzE5OTllZGEzMDk5MGU0ZjU3NzM2MzJlZDI1OGZlMDI3NjY3MzU5OWRhNmZjZTM1Y2RhZDc3MjZhMGJiMDI0Y2FkOTk2Yjg4ZTBjYjk4ODU0Y2ViNWMwYjZlYzc0OGQ5ZjljZTZhNmNkNDM3ODU4YmFjYjgxNDYxOGEyNzJmZjNhNDE1YzZlMDdmM2RiMDk4ODc3N2ZkZWM4NDVhOTdiZjdkMTAyZGQwIgogCiBQS0NTNyBQYXJzZSBGYWlsdXJlIEludmFsaWQgQVNOMTogQ2hhbmdlIGxlbmd0aCBmcm9tIDIxIHRvIDIyICMxNzkuMAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHBrY3M3X2FzbjFfZmFpbDoiMzA4MjA1MDAwNjA5MmE4NjQ4ODZmNzBkMDEwNzAyYTA4MjA0ZjEzMDgyMDRlZDAyMDEwMTMxMGYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBiMDYwOTJhODY0ODg2ZjcwZDAxMDcwMWEwODIwMzRkMzA4MjAzNDkzMDgyMDIzMWEwMDMwMjAxMDIwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTMwMWUxNzBkMzIzMjMxMzAzMjM4MzEzNjMxMzAzNTM2NWExNzBkMzIzMzMxMzAzMjM4MzEzNjMxMzAzNTM2NWEzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTYzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEzMDgyMDEyMjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDAzODIwMTBmMDAzMDgyMDEwYTAyODIwMTAxMDBjOGI2Y2Y2OTg5OWNkMWYwZWJiNGNhNjQ1YzA1ZTcwZTBkMmVmZWRkY2M2MWQwODljYmQ1MTVhMzlhMzU3OWI5MjM0M2I2MWVjNzUwMDYwZmI0ZWQzNzg3NjMzMjQwMGU0MjVmMWQzNzZjN2U3NWMyOTczMzE0ZWRmNGJiMzBjOGY4ZGQwM2I5ZmNmZjk1NWEyNDVkNDkxMzdhZDZlNjAwNTZjYWMxOTU1MmE4NjVkNTIxODcxODdjYzA0MmM5YzQ5ZTNlM2E5YzE3YTUzNGI0NTNjZGFiYzBjYjExM2I0ZjYzZjViMzE3NGI5ZWU5OTAyYjE5MTBkMTE0OTZhMjc5YTc0MzI2YWRjZmVlMTBiZmQ5ZTdlYmFmYmIzNzdiZTliNjM5NTkxNjVkMTNkZDU3NTExNzFjYWRhZDNjMWQzYWRhYzY4YmM4MDExZDYxYjU0Y2Y2MDE3OGJlMzY4MzlhODlhYzkxYWI0MTllM2NhMzdkNmJhODgxZDI1NTE4YzRkYjY4YmNhNmY3YzgzNjAyZjY5OWE4NmIxN2ZiMWU3NzNiY2JlNzRiYjkzYTQ5YjI1MWFlODY0MjhiNTc0MGUxODY4YmIxZDZmYWI5ZTI4NzEyZTk4ZWMzMTlhZDhmY2E0ZDczMDEwYzRiMDljNGI4MDQ1ODk2MWU3Y2YwODM1MzAyMDMwMTAwMDFhMzUzMzA1MTMwMWQwNjAzNTUxZDBlMDQxNjA0MTQ4YWVlZTU5NDdjYzY3YzVkZDUxNWE3NmUyYTdlY2QzMWVlNTJmZGM4MzAxZjA2MDM1NTFkMjMwNDE4MzAxNjgwMTQ4YWVlZTU5NDdjYzY3YzVkZDUxNWE3NmUyYTdlY2QzMWVlNTJmZGM4MzAwZjA2MDM1NTFkMTMwMTAxZmYwNDA1MzAwMzAxMDFmZjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDAzODIwMTAxMDA4MjFkNmI5OGNkNDU3ZGViZDJiMDgxYWNhMjdlYmVjZDRmOTNhY2M4Mjg0NDNiMzllYWJmZmE5ZmE0ZTllNDU0M2I0NmZjYzMxZTJiNWI0ODE3NzkwM2RlYTY5NjlhYzRhMmNjNjU3MDY1MDM5MGYxYjA4ZDQzYTRjMmY5NzVjN2VkOGJmMzM1NmM3MjE4MzgwMjEyNDUxYThmMTFkZTQ2NTUzY2JjZDY1YjQyNTRkZGI4ZjY2ODM0ZWIyMWRkYTJhOGYzM2I1ODFlMTQ4NDU1N2FjYTFiOTRlZTg5MzFkZGYxNjAzN2I3YTcxNzEzMjFhOTE5MzZhZmMyN2ZmY2UzOTVkZTc1ZDVmNzBjYjhiNWFlZTA1ZmY1MDcwODhkNjVhZjFlNDM5NjZjZDQyY2JlNmY3ZmFjZjhkYWUwNTVkZDgyMjJiMTY5NjUyMTcyM2Y4MTI0NTE3ODU5NWM5ODVhZTkxN2ZkNGIzOTk4NzczZTFhOTdiN2JkMTAwODU0NDZmNDI1OWJjYzA5YTQ1NDkyOTI4MmMxYjg5YjcxZWQ1ODdhNzc1ZTBhM2Q0NTM2MzQxZjQ1ZGFlOTY5ZTgwNmM5NmZlZmM3MTA2Nzc3NmMwMmJhMjIxMjJiOTE5OWIxNGMwYzI4YzA0NDg3NTA5MDcwYjk3ZjNkZDJkNmQ5NzI3MzMxODIwMTc3MzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDViZWNkODcxOTVjMWRlZmY5MGMyNGM5MTI2OWI1NWIzZjA2OWJjMjI1YzMyNmMzMTRjMWE1MTc4NmZmZTE0YzgzMGJlNGU0YmM3M2NiYTM2Yzk3Njc3YjQ0MTY4Mjc5YmU5MWU3Y2RmN2MxOTM4NmFlMjE4NjI3MTlkMTNhM2EwZmZmMDgwM2Q0NjA5NjJmMmNkYTgzNzE0ODQ4NzMyNTJjM2Q3MDU0ZGI4MTQzZTJiMDgxYTM4MTZlZDA4MDRjYTUwOTlhZTVmZWNlODNkNWMyYzM3ODNiMTk4OGI0YjQ2ZGM5NGU1NTU4N2ExMDdlYTE1NDZiZjIyZDI4YTA5N2Y2NTJhNDA2NmRjMjk2NTI2OTA2OWFmMmY1MTc2YmI4Y2U5Y2E2ZDExZjk2NzU3ZjAzMjA0Zjc1NjcwMzU4N2QwMGFkNDI0Nzk2YzkyZmM3YWViNmY0OTQ0MzE5OTllZGEzMDk5MGU0ZjU3NzM2MzJlZDI1OGZlMDI3NjY3MzU5OWRhNmZjZTM1Y2RhZDc3MjZhMGJiMDI0Y2FkOTk2Yjg4ZTBjYjk4ODU0Y2ViNWMwYjZlYzc0OGQ5ZjljZTZhNmNkNDM3ODU4YmFjYjgxNDYxOGEyNzJmZjNhNDE1YzZlMDdmM2RiMDk4ODc3N2ZkZWM4NDVhOTdiZjdkMTAyZGQwIgogCiBQS0NTNyBQYXJzZSBGYWlsdXJlIEludmFsaWQgQVNOMTogQ2hhbmdlIGNvbnRlbnRzIG9mIHRhZyAzMSB0byBjb250YWluIG9uZSB1bmFjY291bnRlZCBleHRyYSBieXRlICMxODAuMAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHBrY3M3X2FzbjFfZmFpbDoiMzA4MjA1MDAwNjA5MmE4NjQ4ODZmNzBkMDEwNzAyYTA4MjA0ZjEzMDgyMDRlZDAyMDEwMTMxMGYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBiMDYwOTJhODY0ODg2ZjcwZDAxMDcwMWEwODIwMzRkMzA4MjAzNDkzMDgyMDIzMWEwMDMwMjAxMDIwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTMwMWUxNzBkMzIzMjMxMzAzMjM4MzEzNjMxMzAzNTM2NWExNzBkMzIzMzMxMzAzMjM4MzEzNjMxMzAzNTM2NWEzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTYzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEwMDMwODIwMTIyMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDM4MjAxMGYwMDMwODIwMTBhMDI4MjAxMDEwMGM4YjZjZjY5ODk5Y2QxZjBlYmI0Y2E2NDVjMDVlNzBlMGQyZWZlZGRjYzYxZDA4OWNiZDUxNWEzOWEzNTc5YjkyMzQzYjYxZWM3NTAwNjBmYjRlZDM3ODc2MzMyNDAwZTQyNWYxZDM3NmM3ZTc1YzI5NzMzMTRlZGY0YmIzMGM4ZjhkZDAzYjlmY2ZmOTU1YTI0NWQ0OTEzN2FkNmU2MDA1NmNhYzE5NTUyYTg2NWQ1MjE4NzE4N2NjMDQyYzljNDllM2UzYTljMTdhNTM0YjQ1M2NkYWJjMGNiMTEzYjRmNjNmNWIzMTc0YjllZTk5MDJiMTkxMGQxMTQ5NmEyNzlhNzQzMjZhZGNmZWUxMGJmZDllN2ViYWZiYjM3N2JlOWI2Mzk1OTE2NWQxM2RkNTc1MTE3MWNhZGFkM2MxZDNhZGFjNjhiYzgwMTFkNjFiNTRjZjYwMTc4YmUzNjgzOWE4OWFjOTFhYjQxOWUzY2EzN2Q2YmE4ODFkMjU1MThjNGRiNjhiY2E2ZjdjODM2MDJmNjk5YTg2YjE3ZmIxZTc3M2JjYmU3NGJiOTNhNDliMjUxYWU4NjQyOGI1NzQwZTE4NjhiYjFkNmZhYjllMjg3MTJlOThlYzMxOWFkOGZjYTRkNzMwMTBjNGIwOWM0YjgwNDU4OTYxZTdjZjA4MzUzMDIwMzAxMDAwMWEzNTMzMDUxMzAxZDA2MDM1NTFkMGUwNDE2MDQxNDhhZWVlNTk0N2NjNjdjNWRkNTE1YTc2ZTJhN2VjZDMxZWU1MmZkYzgzMDFmMDYwMzU1MWQyMzA0MTgzMDE2ODAxNDhhZWVlNTk0N2NjNjdjNWRkNTE1YTc2ZTJhN2VjZDMxZWU1MmZkYzgzMDBmMDYwMzU1MWQxMzAxMDFmZjA0MDUzMDAzMDEwMWZmMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMDM4MjAxMDEwMDgyMWQ2Yjk4Y2Q0NTdkZWJkMmIwODFhY2EyN2ViZWNkNGY5M2FjYzgyODQ0M2IzOWVhYmZmYTlmYTRlOWU0NTQzYjQ2ZmNjMzFlMmI1YjQ4MTc3OTAzZGVhNjk2OWFjNGEyY2M2NTcwNjUwMzkwZjFiMDhkNDNhNGMyZjk3NWM3ZWQ4YmYzMzU2YzcyMTgzODAyMTI0NTFhOGYxMWRlNDY1NTNjYmNkNjViNDI1NGRkYjhmNjY4MzRlYjIxZGRhMmE4ZjMzYjU4MWUxNDg0NTU3YWNhMWI5NGVlODkzMWRkZjE2MDM3YjdhNzE3MTMyMWE5MTkzNmFmYzI3ZmZjZTM5NWRlNzVkNWY3MGNiOGI1YWVlMDVmZjUwNzA4OGQ2NWFmMWU0Mzk2NmNkNDJjYmU2ZjdmYWNmOGRhZTA1NWRkODIyMmIxNjk2NTIxNzIzZjgxMjQ1MTc4NTk1Yzk4NWFlOTE3ZmQ0YjM5OTg3NzNlMWE5N2I3YmQxMDA4NTQ0NmY0MjU5YmNjMDlhNDU0OTI5MjgyYzFiODliNzFlZDU4N2E3NzVlMGEzZDQ1MzYzNDFmNDVkYWU5NjllODA2Yzk2ZmVmYzcxMDY3Nzc2YzAyYmEyMjEyMmI5MTk5YjE0YzBjMjhjMDQ0ODc1MDkwNzBiOTdmM2RkMmQ2ZDk3MjczMzE4MjAxNzczMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwNWJlY2Q4NzE5NWMxZGVmZjkwYzI0YzkxMjY5YjU1YjNmMDY5YmMyMjVjMzI2YzMxNGMxYTUxNzg2ZmZlMTRjODMwYmU0ZTRiYzczY2JhMzZjOTc2NzdiNDQxNjgyNzliZTkxZTdjZGY3YzE5Mzg2YWUyMTg2MjcxOWQxM2EzYTBmZmYwODAzZDQ2MDk2MmYyY2RhODM3MTQ4NDg3MzI1MmMzZDcwNTRkYjgxNDNlMmIwODFhMzgxNmVkMDgwNGNhNTA5OWFlNWZlY2U4M2Q1YzJjMzc4M2IxOTg4YjRiNDZkYzk0ZTU1NTg3YTEwN2VhMTU0NmJmMjJkMjhhMDk3ZjY1MmE0MDY2ZGMyOTY1MjY5MDY5YWYyZjUxNzZiYjhjZTljYTZkMTFmOTY3NTdmMDMyMDRmNzU2NzAzNTg3ZDAwYWQ0MjQ3OTZjOTJmYzdhZWI2ZjQ5NDQzMTk5OWVkYTMwOTkwZTRmNTc3MzYzMmVkMjU4ZmUwMjc2NjczNTk5ZGE2ZmNlMzVjZGFkNzcyNmEwYmIwMjRjYWQ5OTZiODhlMGNiOTg4NTRjZWI1YzBiNmVjNzQ4ZDlmOWNlNmE2Y2Q0Mzc4NThiYWNiODE0NjE4YTI3MmZmM2E0MTVjNmUwN2YzZGIwOTg4Nzc3ZmRlYzg0NWE5N2JmN2QxMDJkZDAiCiAKIFBLQ1M3IFBhcnNlIEZhaWx1cmUgSW52YWxpZCBBU04xOiBDaGFuZ2UgbGVuZ3RoIGZyb20gMjEgdG8gMjAgIzE4MS4wCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NgogcGtjczdfYXNuMV9mYWlsOiIzMDgyMDUwMDA2MDkyYTg2NDg4NmY3MGQwMTA3MDJhMDgyMDRmMTMwODIwNGVkMDIwMTAxMzEwZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGIwNjA5MmE4NjQ4ODZmNzBkMDEwNzAxYTA4MjAzNGQzMDgyMDM0OTMwODIwMjMxYTAwMzAyMDEwMjAyMTQ3YmRlZGRkMjQ0NGNkMWNkZmU1YzQxYTgxMDJjODliN2RmMmU2Y2JmMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMzAxZTE3MGQzMjMyMzEzMDMyMzgzMTM2MzEzMDM1MzY1YTE3MGQzMjMzMzEzMDMyMzgzMTM2MzEzMDM1MzY1YTMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNDMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTMwODIwMTIyMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDM4MjAxMGYwMDMwODIwMTBhMDI4MjAxMDEwMGM4YjZjZjY5ODk5Y2QxZjBlYmI0Y2E2NDVjMDVlNzBlMGQyZWZlZGRjYzYxZDA4OWNiZDUxNWEzOWEzNTc5YjkyMzQzYjYxZWM3NTAwNjBmYjRlZDM3ODc2MzMyNDAwZTQyNWYxZDM3NmM3ZTc1YzI5NzMzMTRlZGY0YmIzMGM4ZjhkZDAzYjlmY2ZmOTU1YTI0NWQ0OTEzN2FkNmU2MDA1NmNhYzE5NTUyYTg2NWQ1MjE4NzE4N2NjMDQyYzljNDllM2UzYTljMTdhNTM0YjQ1M2NkYWJjMGNiMTEzYjRmNjNmNWIzMTc0YjllZTk5MDJiMTkxMGQxMTQ5NmEyNzlhNzQzMjZhZGNmZWUxMGJmZDllN2ViYWZiYjM3N2JlOWI2Mzk1OTE2NWQxM2RkNTc1MTE3MWNhZGFkM2MxZDNhZGFjNjhiYzgwMTFkNjFiNTRjZjYwMTc4YmUzNjgzOWE4OWFjOTFhYjQxOWUzY2EzN2Q2YmE4ODFkMjU1MThjNGRiNjhiY2E2ZjdjODM2MDJmNjk5YTg2YjE3ZmIxZTc3M2JjYmU3NGJiOTNhNDliMjUxYWU4NjQyOGI1NzQwZTE4NjhiYjFkNmZhYjllMjg3MTJlOThlYzMxOWFkOGZjYTRkNzMwMTBjNGIwOWM0YjgwNDU4OTYxZTdjZjA4MzUzMDIwMzAxMDAwMWEzNTMzMDUxMzAxZDA2MDM1NTFkMGUwNDE2MDQxNDhhZWVlNTk0N2NjNjdjNWRkNTE1YTc2ZTJhN2VjZDMxZWU1MmZkYzgzMDFmMDYwMzU1MWQyMzA0MTgzMDE2ODAxNDhhZWVlNTk0N2NjNjdjNWRkNTE1YTc2ZTJhN2VjZDMxZWU1MmZkYzgzMDBmMDYwMzU1MWQxMzAxMDFmZjA0MDUzMDAzMDEwMWZmMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMDM4MjAxMDEwMDgyMWQ2Yjk4Y2Q0NTdkZWJkMmIwODFhY2EyN2ViZWNkNGY5M2FjYzgyODQ0M2IzOWVhYmZmYTlmYTRlOWU0NTQzYjQ2ZmNjMzFlMmI1YjQ4MTc3OTAzZGVhNjk2OWFjNGEyY2M2NTcwNjUwMzkwZjFiMDhkNDNhNGMyZjk3NWM3ZWQ4YmYzMzU2YzcyMTgzODAyMTI0NTFhOGYxMWRlNDY1NTNjYmNkNjViNDI1NGRkYjhmNjY4MzRlYjIxZGRhMmE4ZjMzYjU4MWUxNDg0NTU3YWNhMWI5NGVlODkzMWRkZjE2MDM3YjdhNzE3MTMyMWE5MTkzNmFmYzI3ZmZjZTM5NWRlNzVkNWY3MGNiOGI1YWVlMDVmZjUwNzA4OGQ2NWFmMWU0Mzk2NmNkNDJjYmU2ZjdmYWNmOGRhZTA1NWRkODIyMmIxNjk2NTIxNzIzZjgxMjQ1MTc4NTk1Yzk4NWFlOTE3ZmQ0YjM5OTg3NzNlMWE5N2I3YmQxMDA4NTQ0NmY0MjU5YmNjMDlhNDU0OTI5MjgyYzFiODliNzFlZDU4N2E3NzVlMGEzZDQ1MzYzNDFmNDVkYWU5NjllODA2Yzk2ZmVmYzcxMDY3Nzc2YzAyYmEyMjEyMmI5MTk5YjE0YzBjMjhjMDQ0ODc1MDkwNzBiOTdmM2RkMmQ2ZDk3MjczMzE4MjAxNzczMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwNWJlY2Q4NzE5NWMxZGVmZjkwYzI0YzkxMjY5YjU1YjNmMDY5YmMyMjVjMzI2YzMxNGMxYTUxNzg2ZmZlMTRjODMwYmU0ZTRiYzczY2JhMzZjOTc2NzdiNDQxNjgyNzliZTkxZTdjZGY3YzE5Mzg2YWUyMTg2MjcxOWQxM2EzYTBmZmYwODAzZDQ2MDk2MmYyY2RhODM3MTQ4NDg3MzI1MmMzZDcwNTRkYjgxNDNlMmIwODFhMzgxNmVkMDgwNGNhNTA5OWFlNWZlY2U4M2Q1YzJjMzc4M2IxOTg4YjRiNDZkYzk0ZTU1NTg3YTEwN2VhMTU0NmJmMjJkMjhhMDk3ZjY1MmE0MDY2ZGMyOTY1MjY5MDY5YWYyZjUxNzZiYjhjZTljYTZkMTFmOTY3NTdmMDMyMDRmNzU2NzAzNTg3ZDAwYWQ0MjQ3OTZjOTJmYzdhZWI2ZjQ5NDQzMTk5OWVkYTMwOTkwZTRmNTc3MzYzMmVkMjU4ZmUwMjc2NjczNTk5ZGE2ZmNlMzVjZGFkNzcyNmEwYmIwMjRjYWQ5OTZiODhlMGNiOTg4NTRjZWI1YzBiNmVjNzQ4ZDlmOWNlNmE2Y2Q0Mzc4NThiYWNiODE0NjE4YTI3MmZmM2E0MTVjNmUwN2YzZGIwOTg4Nzc3ZmRlYzg0NWE5N2JmN2QxMDJkZDAiCiAKIFBLQ1M3IFBhcnNlIEZhaWx1cmUgSW52YWxpZCBBU04xOiBDaGFuZ2UgdGFnIDMwIHRvIDAyICMxODIuMAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHBrY3M3X2FzbjFfZmFpbDoiMzA4MjA1MDAwNjA5MmE4NjQ4ODZmNzBkMDEwNzAyYTA4MjA0ZjEzMDgyMDRlZDAyMDEwMTMxMGYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBiMDYwOTJhODY0ODg2ZjcwZDAxMDcwMWEwODIwMzRkMzA4MjAzNDkzMDgyMDIzMWEwMDMwMjAxMDIwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTMwMWUxNzBkMzIzMjMxMzAzMjM4MzEzNjMxMzAzNTM2NWExNzBkMzIzMzMxMzAzMjM4MzEzNjMxMzAzNTM2NWEzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUwMjEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEzMDgyMDEyMjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDAzODIwMTBmMDAzMDgyMDEwYTAyODIwMTAxMDBjOGI2Y2Y2OTg5OWNkMWYwZWJiNGNhNjQ1YzA1ZTcwZTBkMmVmZWRkY2M2MWQwODljYmQ1MTVhMzlhMzU3OWI5MjM0M2I2MWVjNzUwMDYwZmI0ZWQzNzg3NjMzMjQwMGU0MjVmMWQzNzZjN2U3NWMyOTczMzE0ZWRmNGJiMzBjOGY4ZGQwM2I5ZmNmZjk1NWEyNDVkNDkxMzdhZDZlNjAwNTZjYWMxOTU1MmE4NjVkNTIxODcxODdjYzA0MmM5YzQ5ZTNlM2E5YzE3YTUzNGI0NTNjZGFiYzBjYjExM2I0ZjYzZjViMzE3NGI5ZWU5OTAyYjE5MTBkMTE0OTZhMjc5YTc0MzI2YWRjZmVlMTBiZmQ5ZTdlYmFmYmIzNzdiZTliNjM5NTkxNjVkMTNkZDU3NTExNzFjYWRhZDNjMWQzYWRhYzY4YmM4MDExZDYxYjU0Y2Y2MDE3OGJlMzY4MzlhODlhYzkxYWI0MTllM2NhMzdkNmJhODgxZDI1NTE4YzRkYjY4YmNhNmY3YzgzNjAyZjY5OWE4NmIxN2ZiMWU3NzNiY2JlNzRiYjkzYTQ5YjI1MWFlODY0MjhiNTc0MGUxODY4YmIxZDZmYWI5ZTI4NzEyZTk4ZWMzMTlhZDhmY2E0ZDczMDEwYzRiMDljNGI4MDQ1ODk2MWU3Y2YwODM1MzAyMDMwMTAwMDFhMzUzMzA1MTMwMWQwNjAzNTUxZDBlMDQxNjA0MTQ4YWVlZTU5NDdjYzY3YzVkZDUxNWE3NmUyYTdlY2QzMWVlNTJmZGM4MzAxZjA2MDM1NTFkMjMwNDE4MzAxNjgwMTQ4YWVlZTU5NDdjYzY3YzVkZDUxNWE3NmUyYTdlY2QzMWVlNTJmZGM4MzAwZjA2MDM1NTFkMTMwMTAxZmYwNDA1MzAwMzAxMDFmZjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDAzODIwMTAxMDA4MjFkNmI5OGNkNDU3ZGViZDJiMDgxYWNhMjdlYmVjZDRmOTNhY2M4Mjg0NDNiMzllYWJmZmE5ZmE0ZTllNDU0M2I0NmZjYzMxZTJiNWI0ODE3NzkwM2RlYTY5NjlhYzRhMmNjNjU3MDY1MDM5MGYxYjA4ZDQzYTRjMmY5NzVjN2VkOGJmMzM1NmM3MjE4MzgwMjEyNDUxYThmMTFkZTQ2NTUzY2JjZDY1YjQyNTRkZGI4ZjY2ODM0ZWIyMWRkYTJhOGYzM2I1ODFlMTQ4NDU1N2FjYTFiOTRlZTg5MzFkZGYxNjAzN2I3YTcxNzEzMjFhOTE5MzZhZmMyN2ZmY2UzOTVkZTc1ZDVmNzBjYjhiNWFlZTA1ZmY1MDcwODhkNjVhZjFlNDM5NjZjZDQyY2JlNmY3ZmFjZjhkYWUwNTVkZDgyMjJiMTY5NjUyMTcyM2Y4MTI0NTE3ODU5NWM5ODVhZTkxN2ZkNGIzOTk4NzczZTFhOTdiN2JkMTAwODU0NDZmNDI1OWJjYzA5YTQ1NDkyOTI4MmMxYjg5YjcxZWQ1ODdhNzc1ZTBhM2Q0NTM2MzQxZjQ1ZGFlOTY5ZTgwNmM5NmZlZmM3MTA2Nzc3NmMwMmJhMjIxMjJiOTE5OWIxNGMwYzI4YzA0NDg3NTA5MDcwYjk3ZjNkZDJkNmQ5NzI3MzMxODIwMTc3MzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDViZWNkODcxOTVjMWRlZmY5MGMyNGM5MTI2OWI1NWIzZjA2OWJjMjI1YzMyNmMzMTRjMWE1MTc4NmZmZTE0YzgzMGJlNGU0YmM3M2NiYTM2Yzk3Njc3YjQ0MTY4Mjc5YmU5MWU3Y2RmN2MxOTM4NmFlMjE4NjI3MTlkMTNhM2EwZmZmMDgwM2Q0NjA5NjJmMmNkYTgzNzE0ODQ4NzMyNTJjM2Q3MDU0ZGI4MTQzZTJiMDgxYTM4MTZlZDA4MDRjYTUwOTlhZTVmZWNlODNkNWMyYzM3ODNiMTk4OGI0YjQ2ZGM5NGU1NTU4N2ExMDdlYTE1NDZiZjIyZDI4YTA5N2Y2NTJhNDA2NmRjMjk2NTI2OTA2OWFmMmY1MTc2YmI4Y2U5Y2E2ZDExZjk2NzU3ZjAzMjA0Zjc1NjcwMzU4N2QwMGFkNDI0Nzk2YzkyZmM3YWViNmY0OTQ0MzE5OTllZGEzMDk5MGU0ZjU3NzM2MzJlZDI1OGZlMDI3NjY3MzU5OWRhNmZjZTM1Y2RhZDc3MjZhMGJiMDI0Y2FkOTk2Yjg4ZTBjYjk4ODU0Y2ViNWMwYjZlYzc0OGQ5ZjljZTZhNmNkNDM3ODU4YmFjYjgxNDYxOGEyNzJmZjNhNDE1YzZlMDdmM2RiMDk4ODc3N2ZkZWM4NDVhOTdiZjdkMTAyZGQwIgogCiBQS0NTNyBQYXJzZSBGYWlsdXJlIEludmFsaWQgQVNOMTogQ2hhbmdlIGxlbmd0aCBmcm9tIDE5IHRvIDIwICMxODMuMAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHBrY3M3X2FzbjFfZmFpbDoiMzA4MjA1MDAwNjA5MmE4NjQ4ODZmNzBkMDEwNzAyYTA4MjA0ZjEzMDgyMDRlZDAyMDEwMTMxMGYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBiMDYwOTJhODY0ODg2ZjcwZDAxMDcwMWEwODIwMzRkMzA4MjAzNDkzMDgyMDIzMWEwMDMwMjAxMDIwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTMwMWUxNzBkMzIzMjMxMzAzMjM4MzEzNjMxMzAzNTM2NWExNzBkMzIzMzMxMzAzMjM4MzEzNjMxMzAzNTM2NWEzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDE0MDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEzMDgyMDEyMjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDAzODIwMTBmMDAzMDgyMDEwYTAyODIwMTAxMDBjOGI2Y2Y2OTg5OWNkMWYwZWJiNGNhNjQ1YzA1ZTcwZTBkMmVmZWRkY2M2MWQwODljYmQ1MTVhMzlhMzU3OWI5MjM0M2I2MWVjNzUwMDYwZmI0ZWQzNzg3NjMzMjQwMGU0MjVmMWQzNzZjN2U3NWMyOTczMzE0ZWRmNGJiMzBjOGY4ZGQwM2I5ZmNmZjk1NWEyNDVkNDkxMzdhZDZlNjAwNTZjYWMxOTU1MmE4NjVkNTIxODcxODdjYzA0MmM5YzQ5ZTNlM2E5YzE3YTUzNGI0NTNjZGFiYzBjYjExM2I0ZjYzZjViMzE3NGI5ZWU5OTAyYjE5MTBkMTE0OTZhMjc5YTc0MzI2YWRjZmVlMTBiZmQ5ZTdlYmFmYmIzNzdiZTliNjM5NTkxNjVkMTNkZDU3NTExNzFjYWRhZDNjMWQzYWRhYzY4YmM4MDExZDYxYjU0Y2Y2MDE3OGJlMzY4MzlhODlhYzkxYWI0MTllM2NhMzdkNmJhODgxZDI1NTE4YzRkYjY4YmNhNmY3YzgzNjAyZjY5OWE4NmIxN2ZiMWU3NzNiY2JlNzRiYjkzYTQ5YjI1MWFlODY0MjhiNTc0MGUxODY4YmIxZDZmYWI5ZTI4NzEyZTk4ZWMzMTlhZDhmY2E0ZDczMDEwYzRiMDljNGI4MDQ1ODk2MWU3Y2YwODM1MzAyMDMwMTAwMDFhMzUzMzA1MTMwMWQwNjAzNTUxZDBlMDQxNjA0MTQ4YWVlZTU5NDdjYzY3YzVkZDUxNWE3NmUyYTdlY2QzMWVlNTJmZGM4MzAxZjA2MDM1NTFkMjMwNDE4MzAxNjgwMTQ4YWVlZTU5NDdjYzY3YzVkZDUxNWE3NmUyYTdlY2QzMWVlNTJmZGM4MzAwZjA2MDM1NTFkMTMwMTAxZmYwNDA1MzAwMzAxMDFmZjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDAzODIwMTAxMDA4MjFkNmI5OGNkNDU3ZGViZDJiMDgxYWNhMjdlYmVjZDRmOTNhY2M4Mjg0NDNiMzllYWJmZmE5ZmE0ZTllNDU0M2I0NmZjYzMxZTJiNWI0ODE3NzkwM2RlYTY5NjlhYzRhMmNjNjU3MDY1MDM5MGYxYjA4ZDQzYTRjMmY5NzVjN2VkOGJmMzM1NmM3MjE4MzgwMjEyNDUxYThmMTFkZTQ2NTUzY2JjZDY1YjQyNTRkZGI4ZjY2ODM0ZWIyMWRkYTJhOGYzM2I1ODFlMTQ4NDU1N2FjYTFiOTRlZTg5MzFkZGYxNjAzN2I3YTcxNzEzMjFhOTE5MzZhZmMyN2ZmY2UzOTVkZTc1ZDVmNzBjYjhiNWFlZTA1ZmY1MDcwODhkNjVhZjFlNDM5NjZjZDQyY2JlNmY3ZmFjZjhkYWUwNTVkZDgyMjJiMTY5NjUyMTcyM2Y4MTI0NTE3ODU5NWM5ODVhZTkxN2ZkNGIzOTk4NzczZTFhOTdiN2JkMTAwODU0NDZmNDI1OWJjYzA5YTQ1NDkyOTI4MmMxYjg5YjcxZWQ1ODdhNzc1ZTBhM2Q0NTM2MzQxZjQ1ZGFlOTY5ZTgwNmM5NmZlZmM3MTA2Nzc3NmMwMmJhMjIxMjJiOTE5OWIxNGMwYzI4YzA0NDg3NTA5MDcwYjk3ZjNkZDJkNmQ5NzI3MzMxODIwMTc3MzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDViZWNkODcxOTVjMWRlZmY5MGMyNGM5MTI2OWI1NWIzZjA2OWJjMjI1YzMyNmMzMTRjMWE1MTc4NmZmZTE0YzgzMGJlNGU0YmM3M2NiYTM2Yzk3Njc3YjQ0MTY4Mjc5YmU5MWU3Y2RmN2MxOTM4NmFlMjE4NjI3MTlkMTNhM2EwZmZmMDgwM2Q0NjA5NjJmMmNkYTgzNzE0ODQ4NzMyNTJjM2Q3MDU0ZGI4MTQzZTJiMDgxYTM4MTZlZDA4MDRjYTUwOTlhZTVmZWNlODNkNWMyYzM3ODNiMTk4OGI0YjQ2ZGM5NGU1NTU4N2ExMDdlYTE1NDZiZjIyZDI4YTA5N2Y2NTJhNDA2NmRjMjk2NTI2OTA2OWFmMmY1MTc2YmI4Y2U5Y2E2ZDExZjk2NzU3ZjAzMjA0Zjc1NjcwMzU4N2QwMGFkNDI0Nzk2YzkyZmM3YWViNmY0OTQ0MzE5OTllZGEzMDk5MGU0ZjU3NzM2MzJlZDI1OGZlMDI3NjY3MzU5OWRhNmZjZTM1Y2RhZDc3MjZhMGJiMDI0Y2FkOTk2Yjg4ZTBjYjk4ODU0Y2ViNWMwYjZlYzc0OGQ5ZjljZTZhNmNkNDM3ODU4YmFjYjgxNDYxOGEyNzJmZjNhNDE1YzZlMDdmM2RiMDk4ODc3N2ZkZWM4NDVhOTdiZjdkMTAyZGQwIgogCiBQS0NTNyBQYXJzZSBGYWlsdXJlIEludmFsaWQgQVNOMTogQ2hhbmdlIGNvbnRlbnRzIG9mIHRhZyAzMCB0byBjb250YWluIG9uZSB1bmFjY291bnRlZCBleHRyYSBieXRlICMxODQuMAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHBrY3M3X2FzbjFfZmFpbDoiMzA4MjA1MDAwNjA5MmE4NjQ4ODZmNzBkMDEwNzAyYTA4MjA0ZjEzMDgyMDRlZDAyMDEwMTMxMGYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBiMDYwOTJhODY0ODg2ZjcwZDAxMDcwMWEwODIwMzRkMzA4MjAzNDkzMDgyMDIzMWEwMDMwMjAxMDIwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTMwMWUxNzBkMzIzMjMxMzAzMjM4MzEzNjMxMzAzNTM2NWExNzBkMzIzMzMxMzAzMjM4MzEzNjMxMzAzNTM2NWEzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDE0MDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEwMDMwODIwMTIyMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDM4MjAxMGYwMDMwODIwMTBhMDI4MjAxMDEwMGM4YjZjZjY5ODk5Y2QxZjBlYmI0Y2E2NDVjMDVlNzBlMGQyZWZlZGRjYzYxZDA4OWNiZDUxNWEzOWEzNTc5YjkyMzQzYjYxZWM3NTAwNjBmYjRlZDM3ODc2MzMyNDAwZTQyNWYxZDM3NmM3ZTc1YzI5NzMzMTRlZGY0YmIzMGM4ZjhkZDAzYjlmY2ZmOTU1YTI0NWQ0OTEzN2FkNmU2MDA1NmNhYzE5NTUyYTg2NWQ1MjE4NzE4N2NjMDQyYzljNDllM2UzYTljMTdhNTM0YjQ1M2NkYWJjMGNiMTEzYjRmNjNmNWIzMTc0YjllZTk5MDJiMTkxMGQxMTQ5NmEyNzlhNzQzMjZhZGNmZWUxMGJmZDllN2ViYWZiYjM3N2JlOWI2Mzk1OTE2NWQxM2RkNTc1MTE3MWNhZGFkM2MxZDNhZGFjNjhiYzgwMTFkNjFiNTRjZjYwMTc4YmUzNjgzOWE4OWFjOTFhYjQxOWUzY2EzN2Q2YmE4ODFkMjU1MThjNGRiNjhiY2E2ZjdjODM2MDJmNjk5YTg2YjE3ZmIxZTc3M2JjYmU3NGJiOTNhNDliMjUxYWU4NjQyOGI1NzQwZTE4NjhiYjFkNmZhYjllMjg3MTJlOThlYzMxOWFkOGZjYTRkNzMwMTBjNGIwOWM0YjgwNDU4OTYxZTdjZjA4MzUzMDIwMzAxMDAwMWEzNTMzMDUxMzAxZDA2MDM1NTFkMGUwNDE2MDQxNDhhZWVlNTk0N2NjNjdjNWRkNTE1YTc2ZTJhN2VjZDMxZWU1MmZkYzgzMDFmMDYwMzU1MWQyMzA0MTgzMDE2ODAxNDhhZWVlNTk0N2NjNjdjNWRkNTE1YTc2ZTJhN2VjZDMxZWU1MmZkYzgzMDBmMDYwMzU1MWQxMzAxMDFmZjA0MDUzMDAzMDEwMWZmMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMDM4MjAxMDEwMDgyMWQ2Yjk4Y2Q0NTdkZWJkMmIwODFhY2EyN2ViZWNkNGY5M2FjYzgyODQ0M2IzOWVhYmZmYTlmYTRlOWU0NTQzYjQ2ZmNjMzFlMmI1YjQ4MTc3OTAzZGVhNjk2OWFjNGEyY2M2NTcwNjUwMzkwZjFiMDhkNDNhNGMyZjk3NWM3ZWQ4YmYzMzU2YzcyMTgzODAyMTI0NTFhOGYxMWRlNDY1NTNjYmNkNjViNDI1NGRkYjhmNjY4MzRlYjIxZGRhMmE4ZjMzYjU4MWUxNDg0NTU3YWNhMWI5NGVlODkzMWRkZjE2MDM3YjdhNzE3MTMyMWE5MTkzNmFmYzI3ZmZjZTM5NWRlNzVkNWY3MGNiOGI1YWVlMDVmZjUwNzA4OGQ2NWFmMWU0Mzk2NmNkNDJjYmU2ZjdmYWNmOGRhZTA1NWRkODIyMmIxNjk2NTIxNzIzZjgxMjQ1MTc4NTk1Yzk4NWFlOTE3ZmQ0YjM5OTg3NzNlMWE5N2I3YmQxMDA4NTQ0NmY0MjU5YmNjMDlhNDU0OTI5MjgyYzFiODliNzFlZDU4N2E3NzVlMGEzZDQ1MzYzNDFmNDVkYWU5NjllODA2Yzk2ZmVmYzcxMDY3Nzc2YzAyYmEyMjEyMmI5MTk5YjE0YzBjMjhjMDQ0ODc1MDkwNzBiOTdmM2RkMmQ2ZDk3MjczMzE4MjAxNzczMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwNWJlY2Q4NzE5NWMxZGVmZjkwYzI0YzkxMjY5YjU1YjNmMDY5YmMyMjVjMzI2YzMxNGMxYTUxNzg2ZmZlMTRjODMwYmU0ZTRiYzczY2JhMzZjOTc2NzdiNDQxNjgyNzliZTkxZTdjZGY3YzE5Mzg2YWUyMTg2MjcxOWQxM2EzYTBmZmYwODAzZDQ2MDk2MmYyY2RhODM3MTQ4NDg3MzI1MmMzZDcwNTRkYjgxNDNlMmIwODFhMzgxNmVkMDgwNGNhNTA5OWFlNWZlY2U4M2Q1YzJjMzc4M2IxOTg4YjRiNDZkYzk0ZTU1NTg3YTEwN2VhMTU0NmJmMjJkMjhhMDk3ZjY1MmE0MDY2ZGMyOTY1MjY5MDY5YWYyZjUxNzZiYjhjZTljYTZkMTFmOTY3NTdmMDMyMDRmNzU2NzAzNTg3ZDAwYWQ0MjQ3OTZjOTJmYzdhZWI2ZjQ5NDQzMTk5OWVkYTMwOTkwZTRmNTc3MzYzMmVkMjU4ZmUwMjc2NjczNTk5ZGE2ZmNlMzVjZGFkNzcyNmEwYmIwMjRjYWQ5OTZiODhlMGNiOTg4NTRjZWI1YzBiNmVjNzQ4ZDlmOWNlNmE2Y2Q0Mzc4NThiYWNiODE0NjE4YTI3MmZmM2E0MTVjNmUwN2YzZGIwOTg4Nzc3ZmRlYzg0NWE5N2JmN2QxMDJkZDAiCiAKIFBLQ1M3IFBhcnNlIEZhaWx1cmUgSW52YWxpZCBBU04xOiBDaGFuZ2UgbGVuZ3RoIGZyb20gMTkgdG8gMTggIzE4NS4wCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NgogcGtjczdfYXNuMV9mYWlsOiIzMDgyMDUwMDA2MDkyYTg2NDg4NmY3MGQwMTA3MDJhMDgyMDRmMTMwODIwNGVkMDIwMTAxMzEwZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGIwNjA5MmE4NjQ4ODZmNzBkMDEwNzAxYTA4MjAzNGQzMDgyMDM0OTMwODIwMjMxYTAwMzAyMDEwMjAyMTQ3YmRlZGRkMjQ0NGNkMWNkZmU1YzQxYTgxMDJjODliN2RmMmU2Y2JmMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMzAxZTE3MGQzMjMyMzEzMDMyMzgzMTM2MzEzMDM1MzY1YTE3MGQzMjMzMzEzMDMyMzgzMTM2MzEzMDM1MzY1YTMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTIwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTMwODIwMTIyMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDM4MjAxMGYwMDMwODIwMTBhMDI4MjAxMDEwMGM4YjZjZjY5ODk5Y2QxZjBlYmI0Y2E2NDVjMDVlNzBlMGQyZWZlZGRjYzYxZDA4OWNiZDUxNWEzOWEzNTc5YjkyMzQzYjYxZWM3NTAwNjBmYjRlZDM3ODc2MzMyNDAwZTQyNWYxZDM3NmM3ZTc1YzI5NzMzMTRlZGY0YmIzMGM4ZjhkZDAzYjlmY2ZmOTU1YTI0NWQ0OTEzN2FkNmU2MDA1NmNhYzE5NTUyYTg2NWQ1MjE4NzE4N2NjMDQyYzljNDllM2UzYTljMTdhNTM0YjQ1M2NkYWJjMGNiMTEzYjRmNjNmNWIzMTc0YjllZTk5MDJiMTkxMGQxMTQ5NmEyNzlhNzQzMjZhZGNmZWUxMGJmZDllN2ViYWZiYjM3N2JlOWI2Mzk1OTE2NWQxM2RkNTc1MTE3MWNhZGFkM2MxZDNhZGFjNjhiYzgwMTFkNjFiNTRjZjYwMTc4YmUzNjgzOWE4OWFjOTFhYjQxOWUzY2EzN2Q2YmE4ODFkMjU1MThjNGRiNjhiY2E2ZjdjODM2MDJmNjk5YTg2YjE3ZmIxZTc3M2JjYmU3NGJiOTNhNDliMjUxYWU4NjQyOGI1NzQwZTE4NjhiYjFkNmZhYjllMjg3MTJlOThlYzMxOWFkOGZjYTRkNzMwMTBjNGIwOWM0YjgwNDU4OTYxZTdjZjA4MzUzMDIwMzAxMDAwMWEzNTMzMDUxMzAxZDA2MDM1NTFkMGUwNDE2MDQxNDhhZWVlNTk0N2NjNjdjNWRkNTE1YTc2ZTJhN2VjZDMxZWU1MmZkYzgzMDFmMDYwMzU1MWQyMzA0MTgzMDE2ODAxNDhhZWVlNTk0N2NjNjdjNWRkNTE1YTc2ZTJhN2VjZDMxZWU1MmZkYzgzMDBmMDYwMzU1MWQxMzAxMDFmZjA0MDUzMDAzMDEwMWZmMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMDM4MjAxMDEwMDgyMWQ2Yjk4Y2Q0NTdkZWJkMmIwODFhY2EyN2ViZWNkNGY5M2FjYzgyODQ0M2IzOWVhYmZmYTlmYTRlOWU0NTQzYjQ2ZmNjMzFlMmI1YjQ4MTc3OTAzZGVhNjk2OWFjNGEyY2M2NTcwNjUwMzkwZjFiMDhkNDNhNGMyZjk3NWM3ZWQ4YmYzMzU2YzcyMTgzODAyMTI0NTFhOGYxMWRlNDY1NTNjYmNkNjViNDI1NGRkYjhmNjY4MzRlYjIxZGRhMmE4ZjMzYjU4MWUxNDg0NTU3YWNhMWI5NGVlODkzMWRkZjE2MDM3YjdhNzE3MTMyMWE5MTkzNmFmYzI3ZmZjZTM5NWRlNzVkNWY3MGNiOGI1YWVlMDVmZjUwNzA4OGQ2NWFmMWU0Mzk2NmNkNDJjYmU2ZjdmYWNmOGRhZTA1NWRkODIyMmIxNjk2NTIxNzIzZjgxMjQ1MTc4NTk1Yzk4NWFlOTE3ZmQ0YjM5OTg3NzNlMWE5N2I3YmQxMDA4NTQ0NmY0MjU5YmNjMDlhNDU0OTI5MjgyYzFiODliNzFlZDU4N2E3NzVlMGEzZDQ1MzYzNDFmNDVkYWU5NjllODA2Yzk2ZmVmYzcxMDY3Nzc2YzAyYmEyMjEyMmI5MTk5YjE0YzBjMjhjMDQ0ODc1MDkwNzBiOTdmM2RkMmQ2ZDk3MjczMzE4MjAxNzczMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwNWJlY2Q4NzE5NWMxZGVmZjkwYzI0YzkxMjY5YjU1YjNmMDY5YmMyMjVjMzI2YzMxNGMxYTUxNzg2ZmZlMTRjODMwYmU0ZTRiYzczY2JhMzZjOTc2NzdiNDQxNjgyNzliZTkxZTdjZGY3YzE5Mzg2YWUyMTg2MjcxOWQxM2EzYTBmZmYwODAzZDQ2MDk2MmYyY2RhODM3MTQ4NDg3MzI1MmMzZDcwNTRkYjgxNDNlMmIwODFhMzgxNmVkMDgwNGNhNTA5OWFlNWZlY2U4M2Q1YzJjMzc4M2IxOTg4YjRiNDZkYzk0ZTU1NTg3YTEwN2VhMTU0NmJmMjJkMjhhMDk3ZjY1MmE0MDY2ZGMyOTY1MjY5MDY5YWYyZjUxNzZiYjhjZTljYTZkMTFmOTY3NTdmMDMyMDRmNzU2NzAzNTg3ZDAwYWQ0MjQ3OTZjOTJmYzdhZWI2ZjQ5NDQzMTk5OWVkYTMwOTkwZTRmNTc3MzYzMmVkMjU4ZmUwMjc2NjczNTk5ZGE2ZmNlMzVjZGFkNzcyNmEwYmIwMjRjYWQ5OTZiODhlMGNiOTg4NTRjZWI1YzBiNmVjNzQ4ZDlmOWNlNmE2Y2Q0Mzc4NThiYWNiODE0NjE4YTI3MmZmM2E0MTVjNmUwN2YzZGIwOTg4Nzc3ZmRlYzg0NWE5N2JmN2QxMDJkZDAiCiAKIFBLQ1M3IFBhcnNlIEZhaWx1cmUgSW52YWxpZCBBU04xOiBDaGFuZ2UgdGFnIDA2IHRvIDAyICMxODYuMAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHBrY3M3X2FzbjFfZmFpbDoiMzA4MjA1MDAwNjA5MmE4NjQ4ODZmNzBkMDEwNzAyYTA4MjA0ZjEzMDgyMDRlZDAyMDEwMTMxMGYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBiMDYwOTJhODY0ODg2ZjcwZDAxMDcwMWEwODIwMzRkMzA4MjAzNDkzMDgyMDIzMWEwMDMwMjAxMDIwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTMwMWUxNzBkMzIzMjMxMzAzMjM4MzEzNjMxMzAzNTM2NWExNzBkMzIzMzMxMzAzMjM4MzEzNjMxMzAzNTM2NWEzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDIwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEzMDgyMDEyMjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDAzODIwMTBmMDAzMDgyMDEwYTAyODIwMTAxMDBjOGI2Y2Y2OTg5OWNkMWYwZWJiNGNhNjQ1YzA1ZTcwZTBkMmVmZWRkY2M2MWQwODljYmQ1MTVhMzlhMzU3OWI5MjM0M2I2MWVjNzUwMDYwZmI0ZWQzNzg3NjMzMjQwMGU0MjVmMWQzNzZjN2U3NWMyOTczMzE0ZWRmNGJiMzBjOGY4ZGQwM2I5ZmNmZjk1NWEyNDVkNDkxMzdhZDZlNjAwNTZjYWMxOTU1MmE4NjVkNTIxODcxODdjYzA0MmM5YzQ5ZTNlM2E5YzE3YTUzNGI0NTNjZGFiYzBjYjExM2I0ZjYzZjViMzE3NGI5ZWU5OTAyYjE5MTBkMTE0OTZhMjc5YTc0MzI2YWRjZmVlMTBiZmQ5ZTdlYmFmYmIzNzdiZTliNjM5NTkxNjVkMTNkZDU3NTExNzFjYWRhZDNjMWQzYWRhYzY4YmM4MDExZDYxYjU0Y2Y2MDE3OGJlMzY4MzlhODlhYzkxYWI0MTllM2NhMzdkNmJhODgxZDI1NTE4YzRkYjY4YmNhNmY3YzgzNjAyZjY5OWE4NmIxN2ZiMWU3NzNiY2JlNzRiYjkzYTQ5YjI1MWFlODY0MjhiNTc0MGUxODY4YmIxZDZmYWI5ZTI4NzEyZTk4ZWMzMTlhZDhmY2E0ZDczMDEwYzRiMDljNGI4MDQ1ODk2MWU3Y2YwODM1MzAyMDMwMTAwMDFhMzUzMzA1MTMwMWQwNjAzNTUxZDBlMDQxNjA0MTQ4YWVlZTU5NDdjYzY3YzVkZDUxNWE3NmUyYTdlY2QzMWVlNTJmZGM4MzAxZjA2MDM1NTFkMjMwNDE4MzAxNjgwMTQ4YWVlZTU5NDdjYzY3YzVkZDUxNWE3NmUyYTdlY2QzMWVlNTJmZGM4MzAwZjA2MDM1NTFkMTMwMTAxZmYwNDA1MzAwMzAxMDFmZjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDAzODIwMTAxMDA4MjFkNmI5OGNkNDU3ZGViZDJiMDgxYWNhMjdlYmVjZDRmOTNhY2M4Mjg0NDNiMzllYWJmZmE5ZmE0ZTllNDU0M2I0NmZjYzMxZTJiNWI0ODE3NzkwM2RlYTY5NjlhYzRhMmNjNjU3MDY1MDM5MGYxYjA4ZDQzYTRjMmY5NzVjN2VkOGJmMzM1NmM3MjE4MzgwMjEyNDUxYThmMTFkZTQ2NTUzY2JjZDY1YjQyNTRkZGI4ZjY2ODM0ZWIyMWRkYTJhOGYzM2I1ODFlMTQ4NDU1N2FjYTFiOTRlZTg5MzFkZGYxNjAzN2I3YTcxNzEzMjFhOTE5MzZhZmMyN2ZmY2UzOTVkZTc1ZDVmNzBjYjhiNWFlZTA1ZmY1MDcwODhkNjVhZjFlNDM5NjZjZDQyY2JlNmY3ZmFjZjhkYWUwNTVkZDgyMjJiMTY5NjUyMTcyM2Y4MTI0NTE3ODU5NWM5ODVhZTkxN2ZkNGIzOTk4NzczZTFhOTdiN2JkMTAwODU0NDZmNDI1OWJjYzA5YTQ1NDkyOTI4MmMxYjg5YjcxZWQ1ODdhNzc1ZTBhM2Q0NTM2MzQxZjQ1ZGFlOTY5ZTgwNmM5NmZlZmM3MTA2Nzc3NmMwMmJhMjIxMjJiOTE5OWIxNGMwYzI4YzA0NDg3NTA5MDcwYjk3ZjNkZDJkNmQ5NzI3MzMxODIwMTc3MzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDViZWNkODcxOTVjMWRlZmY5MGMyNGM5MTI2OWI1NWIzZjA2OWJjMjI1YzMyNmMzMTRjMWE1MTc4NmZmZTE0YzgzMGJlNGU0YmM3M2NiYTM2Yzk3Njc3YjQ0MTY4Mjc5YmU5MWU3Y2RmN2MxOTM4NmFlMjE4NjI3MTlkMTNhM2EwZmZmMDgwM2Q0NjA5NjJmMmNkYTgzNzE0ODQ4NzMyNTJjM2Q3MDU0ZGI4MTQzZTJiMDgxYTM4MTZlZDA4MDRjYTUwOTlhZTVmZWNlODNkNWMyYzM3ODNiMTk4OGI0YjQ2ZGM5NGU1NTU4N2ExMDdlYTE1NDZiZjIyZDI4YTA5N2Y2NTJhNDA2NmRjMjk2NTI2OTA2OWFmMmY1MTc2YmI4Y2U5Y2E2ZDExZjk2NzU3ZjAzMjA0Zjc1NjcwMzU4N2QwMGFkNDI0Nzk2YzkyZmM3YWViNmY0OTQ0MzE5OTllZGEzMDk5MGU0ZjU3NzM2MzJlZDI1OGZlMDI3NjY3MzU5OWRhNmZjZTM1Y2RhZDc3MjZhMGJiMDI0Y2FkOTk2Yjg4ZTBjYjk4ODU0Y2ViNWMwYjZlYzc0OGQ5ZjljZTZhNmNkNDM3ODU4YmFjYjgxNDYxOGEyNzJmZjNhNDE1YzZlMDdmM2RiMDk4ODc3N2ZkZWM4NDVhOTdiZjdkMTAyZGQwIgogCiBQS0NTNyBQYXJzZSBGYWlsdXJlIEludmFsaWQgQVNOMTogQ2hhbmdlIGxlbmd0aCBmcm9tIDMgdG8gNCAjMTg3LjAKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBwa2NzN19hc24xX2ZhaWw6IjMwODIwNTAwMDYwOTJhODY0ODg2ZjcwZDAxMDcwMmEwODIwNGYxMzA4MjA0ZWQwMjAxMDEzMTBmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwYjA2MDkyYTg2NDg4NmY3MGQwMTA3MDFhMDgyMDM0ZDMwODIwMzQ5MzA4MjAyMzFhMDAzMDIwMTAyMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEzMDFlMTcwZDMyMzIzMTMwMzIzODMxMzYzMTMwMzUzNjVhMTcwZDMyMzMzMTMwMzIzODMxMzYzMTMwMzUzNjVhMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDQ1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMzA4MjAxMjIzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwMzgyMDEwZjAwMzA4MjAxMGEwMjgyMDEwMTAwYzhiNmNmNjk4OTljZDFmMGViYjRjYTY0NWMwNWU3MGUwZDJlZmVkZGNjNjFkMDg5Y2JkNTE1YTM5YTM1NzliOTIzNDNiNjFlYzc1MDA2MGZiNGVkMzc4NzYzMzI0MDBlNDI1ZjFkMzc2YzdlNzVjMjk3MzMxNGVkZjRiYjMwYzhmOGRkMDNiOWZjZmY5NTVhMjQ1ZDQ5MTM3YWQ2ZTYwMDU2Y2FjMTk1NTJhODY1ZDUyMTg3MTg3Y2MwNDJjOWM0OWUzZTNhOWMxN2E1MzRiNDUzY2RhYmMwY2IxMTNiNGY2M2Y1YjMxNzRiOWVlOTkwMmIxOTEwZDExNDk2YTI3OWE3NDMyNmFkY2ZlZTEwYmZkOWU3ZWJhZmJiMzc3YmU5YjYzOTU5MTY1ZDEzZGQ1NzUxMTcxY2FkYWQzYzFkM2FkYWM2OGJjODAxMWQ2MWI1NGNmNjAxNzhiZTM2ODM5YTg5YWM5MWFiNDE5ZTNjYTM3ZDZiYTg4MWQyNTUxOGM0ZGI2OGJjYTZmN2M4MzYwMmY2OTlhODZiMTdmYjFlNzczYmNiZTc0YmI5M2E0OWIyNTFhZTg2NDI4YjU3NDBlMTg2OGJiMWQ2ZmFiOWUyODcxMmU5OGVjMzE5YWQ4ZmNhNGQ3MzAxMGM0YjA5YzRiODA0NTg5NjFlN2NmMDgzNTMwMjAzMDEwMDAxYTM1MzMwNTEzMDFkMDYwMzU1MWQwZTA0MTYwNDE0OGFlZWU1OTQ3Y2M2N2M1ZGQ1MTVhNzZlMmE3ZWNkMzFlZTUyZmRjODMwMWYwNjAzNTUxZDIzMDQxODMwMTY4MDE0OGFlZWU1OTQ3Y2M2N2M1ZGQ1MTVhNzZlMmE3ZWNkMzFlZTUyZmRjODMwMGYwNjAzNTUxZDEzMDEwMWZmMDQwNTMwMDMwMTAxZmYzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAwMzgyMDEwMTAwODIxZDZiOThjZDQ1N2RlYmQyYjA4MWFjYTI3ZWJlY2Q0ZjkzYWNjODI4NDQzYjM5ZWFiZmZhOWZhNGU5ZTQ1NDNiNDZmY2MzMWUyYjViNDgxNzc5MDNkZWE2OTY5YWM0YTJjYzY1NzA2NTAzOTBmMWIwOGQ0M2E0YzJmOTc1YzdlZDhiZjMzNTZjNzIxODM4MDIxMjQ1MWE4ZjExZGU0NjU1M2NiY2Q2NWI0MjU0ZGRiOGY2NjgzNGViMjFkZGEyYThmMzNiNTgxZTE0ODQ1NTdhY2ExYjk0ZWU4OTMxZGRmMTYwMzdiN2E3MTcxMzIxYTkxOTM2YWZjMjdmZmNlMzk1ZGU3NWQ1ZjcwY2I4YjVhZWUwNWZmNTA3MDg4ZDY1YWYxZTQzOTY2Y2Q0MmNiZTZmN2ZhY2Y4ZGFlMDU1ZGQ4MjIyYjE2OTY1MjE3MjNmODEyNDUxNzg1OTVjOTg1YWU5MTdmZDRiMzk5ODc3M2UxYTk3YjdiZDEwMDg1NDQ2ZjQyNTliY2MwOWE0NTQ5MjkyODJjMWI4OWI3MWVkNTg3YTc3NWUwYTNkNDUzNjM0MWY0NWRhZTk2OWU4MDZjOTZmZWZjNzEwNjc3NzZjMDJiYTIyMTIyYjkxOTliMTRjMGMyOGMwNDQ4NzUwOTA3MGI5N2YzZGQyZDZkOTcyNzMzMTgyMDE3NzMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTAyMTQ3YmRlZGRkMjQ0NGNkMWNkZmU1YzQxYTgxMDJjODliN2RmMmU2Y2JmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDA1YmVjZDg3MTk1YzFkZWZmOTBjMjRjOTEyNjliNTViM2YwNjliYzIyNWMzMjZjMzE0YzFhNTE3ODZmZmUxNGM4MzBiZTRlNGJjNzNjYmEzNmM5NzY3N2I0NDE2ODI3OWJlOTFlN2NkZjdjMTkzODZhZTIxODYyNzE5ZDEzYTNhMGZmZjA4MDNkNDYwOTYyZjJjZGE4MzcxNDg0ODczMjUyYzNkNzA1NGRiODE0M2UyYjA4MWEzODE2ZWQwODA0Y2E1MDk5YWU1ZmVjZTgzZDVjMmMzNzgzYjE5ODhiNGI0NmRjOTRlNTU1ODdhMTA3ZWExNTQ2YmYyMmQyOGEwOTdmNjUyYTQwNjZkYzI5NjUyNjkwNjlhZjJmNTE3NmJiOGNlOWNhNmQxMWY5Njc1N2YwMzIwNGY3NTY3MDM1ODdkMDBhZDQyNDc5NmM5MmZjN2FlYjZmNDk0NDMxOTk5ZWRhMzA5OTBlNGY1NzczNjMyZWQyNThmZTAyNzY2NzM1OTlkYTZmY2UzNWNkYWQ3NzI2YTBiYjAyNGNhZDk5NmI4OGUwY2I5ODg1NGNlYjVjMGI2ZWM3NDhkOWY5Y2U2YTZjZDQzNzg1OGJhY2I4MTQ2MThhMjcyZmYzYTQxNWM2ZTA3ZjNkYjA5ODg3NzdmZGVjODQ1YTk3YmY3ZDEwMmRkMCIKIAogUEtDUzcgUGFyc2UgRmFpbHVyZSBJbnZhbGlkIEFTTjE6IENoYW5nZSBsZW5ndGggZnJvbSAzIHRvIDIgIzE4OC4wCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NgogcGtjczdfYXNuMV9mYWlsOiIzMDgyMDUwMDA2MDkyYTg2NDg4NmY3MGQwMTA3MDJhMDgyMDRmMTMwODIwNGVkMDIwMTAxMzEwZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGIwNjA5MmE4NjQ4ODZmNzBkMDEwNzAxYTA4MjAzNGQzMDgyMDM0OTMwODIwMjMxYTAwMzAyMDEwMjAyMTQ3YmRlZGRkMjQ0NGNkMWNkZmU1YzQxYTgxMDJjODliN2RmMmU2Y2JmMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMzAxZTE3MGQzMjMyMzEzMDMyMzgzMTM2MzEzMDM1MzY1YTE3MGQzMjMzMzEzMDMyMzgzMTM2MzEzMDM1MzY1YTMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAyNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTMwODIwMTIyMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDM4MjAxMGYwMDMwODIwMTBhMDI4MjAxMDEwMGM4YjZjZjY5ODk5Y2QxZjBlYmI0Y2E2NDVjMDVlNzBlMGQyZWZlZGRjYzYxZDA4OWNiZDUxNWEzOWEzNTc5YjkyMzQzYjYxZWM3NTAwNjBmYjRlZDM3ODc2MzMyNDAwZTQyNWYxZDM3NmM3ZTc1YzI5NzMzMTRlZGY0YmIzMGM4ZjhkZDAzYjlmY2ZmOTU1YTI0NWQ0OTEzN2FkNmU2MDA1NmNhYzE5NTUyYTg2NWQ1MjE4NzE4N2NjMDQyYzljNDllM2UzYTljMTdhNTM0YjQ1M2NkYWJjMGNiMTEzYjRmNjNmNWIzMTc0YjllZTk5MDJiMTkxMGQxMTQ5NmEyNzlhNzQzMjZhZGNmZWUxMGJmZDllN2ViYWZiYjM3N2JlOWI2Mzk1OTE2NWQxM2RkNTc1MTE3MWNhZGFkM2MxZDNhZGFjNjhiYzgwMTFkNjFiNTRjZjYwMTc4YmUzNjgzOWE4OWFjOTFhYjQxOWUzY2EzN2Q2YmE4ODFkMjU1MThjNGRiNjhiY2E2ZjdjODM2MDJmNjk5YTg2YjE3ZmIxZTc3M2JjYmU3NGJiOTNhNDliMjUxYWU4NjQyOGI1NzQwZTE4NjhiYjFkNmZhYjllMjg3MTJlOThlYzMxOWFkOGZjYTRkNzMwMTBjNGIwOWM0YjgwNDU4OTYxZTdjZjA4MzUzMDIwMzAxMDAwMWEzNTMzMDUxMzAxZDA2MDM1NTFkMGUwNDE2MDQxNDhhZWVlNTk0N2NjNjdjNWRkNTE1YTc2ZTJhN2VjZDMxZWU1MmZkYzgzMDFmMDYwMzU1MWQyMzA0MTgzMDE2ODAxNDhhZWVlNTk0N2NjNjdjNWRkNTE1YTc2ZTJhN2VjZDMxZWU1MmZkYzgzMDBmMDYwMzU1MWQxMzAxMDFmZjA0MDUzMDAzMDEwMWZmMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMDM4MjAxMDEwMDgyMWQ2Yjk4Y2Q0NTdkZWJkMmIwODFhY2EyN2ViZWNkNGY5M2FjYzgyODQ0M2IzOWVhYmZmYTlmYTRlOWU0NTQzYjQ2ZmNjMzFlMmI1YjQ4MTc3OTAzZGVhNjk2OWFjNGEyY2M2NTcwNjUwMzkwZjFiMDhkNDNhNGMyZjk3NWM3ZWQ4YmYzMzU2YzcyMTgzODAyMTI0NTFhOGYxMWRlNDY1NTNjYmNkNjViNDI1NGRkYjhmNjY4MzRlYjIxZGRhMmE4ZjMzYjU4MWUxNDg0NTU3YWNhMWI5NGVlODkzMWRkZjE2MDM3YjdhNzE3MTMyMWE5MTkzNmFmYzI3ZmZjZTM5NWRlNzVkNWY3MGNiOGI1YWVlMDVmZjUwNzA4OGQ2NWFmMWU0Mzk2NmNkNDJjYmU2ZjdmYWNmOGRhZTA1NWRkODIyMmIxNjk2NTIxNzIzZjgxMjQ1MTc4NTk1Yzk4NWFlOTE3ZmQ0YjM5OTg3NzNlMWE5N2I3YmQxMDA4NTQ0NmY0MjU5YmNjMDlhNDU0OTI5MjgyYzFiODliNzFlZDU4N2E3NzVlMGEzZDQ1MzYzNDFmNDVkYWU5NjllODA2Yzk2ZmVmYzcxMDY3Nzc2YzAyYmEyMjEyMmI5MTk5YjE0YzBjMjhjMDQ0ODc1MDkwNzBiOTdmM2RkMmQ2ZDk3MjczMzE4MjAxNzczMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwNWJlY2Q4NzE5NWMxZGVmZjkwYzI0YzkxMjY5YjU1YjNmMDY5YmMyMjVjMzI2YzMxNGMxYTUxNzg2ZmZlMTRjODMwYmU0ZTRiYzczY2JhMzZjOTc2NzdiNDQxNjgyNzliZTkxZTdjZGY3YzE5Mzg2YWUyMTg2MjcxOWQxM2EzYTBmZmYwODAzZDQ2MDk2MmYyY2RhODM3MTQ4NDg3MzI1MmMzZDcwNTRkYjgxNDNlMmIwODFhMzgxNmVkMDgwNGNhNTA5OWFlNWZlY2U4M2Q1YzJjMzc4M2IxOTg4YjRiNDZkYzk0ZTU1NTg3YTEwN2VhMTU0NmJmMjJkMjhhMDk3ZjY1MmE0MDY2ZGMyOTY1MjY5MDY5YWYyZjUxNzZiYjhjZTljYTZkMTFmOTY3NTdmMDMyMDRmNzU2NzAzNTg3ZDAwYWQ0MjQ3OTZjOTJmYzdhZWI2ZjQ5NDQzMTk5OWVkYTMwOTkwZTRmNTc3MzYzMmVkMjU4ZmUwMjc2NjczNTk5ZGE2ZmNlMzVjZGFkNzcyNmEwYmIwMjRjYWQ5OTZiODhlMGNiOTg4NTRjZWI1YzBiNmVjNzQ4ZDlmOWNlNmE2Y2Q0Mzc4NThiYWNiODE0NjE4YTI3MmZmM2E0MTVjNmUwN2YzZGIwOTg4Nzc3ZmRlYzg0NWE5N2JmN2QxMDJkZDAiCiAKIFBLQ1M3IFBhcnNlIEZhaWx1cmUgSW52YWxpZCBBU04xOiBDaGFuZ2UgdGFnIDBjIHRvIDAyICMxODkuMAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHBrY3M3X2FzbjFfZmFpbDoiMzA4MjA1MDAwNjA5MmE4NjQ4ODZmNzBkMDEwNzAyYTA4MjA0ZjEzMDgyMDRlZDAyMDEwMTMxMGYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBiMDYwOTJhODY0ODg2ZjcwZDAxMDcwMWEwODIwMzRkMzA4MjAzNDkzMDgyMDIzMWEwMDMwMjAxMDIwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTMwMWUxNzBkMzIzMjMxMzAzMjM4MzEzNjMxMzAzNTM2NWExNzBkMzIzMzMxMzAzMjM4MzEzNjMxMzAzNTM2NWEzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzAyMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEzMDgyMDEyMjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDAzODIwMTBmMDAzMDgyMDEwYTAyODIwMTAxMDBjOGI2Y2Y2OTg5OWNkMWYwZWJiNGNhNjQ1YzA1ZTcwZTBkMmVmZWRkY2M2MWQwODljYmQ1MTVhMzlhMzU3OWI5MjM0M2I2MWVjNzUwMDYwZmI0ZWQzNzg3NjMzMjQwMGU0MjVmMWQzNzZjN2U3NWMyOTczMzE0ZWRmNGJiMzBjOGY4ZGQwM2I5ZmNmZjk1NWEyNDVkNDkxMzdhZDZlNjAwNTZjYWMxOTU1MmE4NjVkNTIxODcxODdjYzA0MmM5YzQ5ZTNlM2E5YzE3YTUzNGI0NTNjZGFiYzBjYjExM2I0ZjYzZjViMzE3NGI5ZWU5OTAyYjE5MTBkMTE0OTZhMjc5YTc0MzI2YWRjZmVlMTBiZmQ5ZTdlYmFmYmIzNzdiZTliNjM5NTkxNjVkMTNkZDU3NTExNzFjYWRhZDNjMWQzYWRhYzY4YmM4MDExZDYxYjU0Y2Y2MDE3OGJlMzY4MzlhODlhYzkxYWI0MTllM2NhMzdkNmJhODgxZDI1NTE4YzRkYjY4YmNhNmY3YzgzNjAyZjY5OWE4NmIxN2ZiMWU3NzNiY2JlNzRiYjkzYTQ5YjI1MWFlODY0MjhiNTc0MGUxODY4YmIxZDZmYWI5ZTI4NzEyZTk4ZWMzMTlhZDhmY2E0ZDczMDEwYzRiMDljNGI4MDQ1ODk2MWU3Y2YwODM1MzAyMDMwMTAwMDFhMzUzMzA1MTMwMWQwNjAzNTUxZDBlMDQxNjA0MTQ4YWVlZTU5NDdjYzY3YzVkZDUxNWE3NmUyYTdlY2QzMWVlNTJmZGM4MzAxZjA2MDM1NTFkMjMwNDE4MzAxNjgwMTQ4YWVlZTU5NDdjYzY3YzVkZDUxNWE3NmUyYTdlY2QzMWVlNTJmZGM4MzAwZjA2MDM1NTFkMTMwMTAxZmYwNDA1MzAwMzAxMDFmZjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDAzODIwMTAxMDA4MjFkNmI5OGNkNDU3ZGViZDJiMDgxYWNhMjdlYmVjZDRmOTNhY2M4Mjg0NDNiMzllYWJmZmE5ZmE0ZTllNDU0M2I0NmZjYzMxZTJiNWI0ODE3NzkwM2RlYTY5NjlhYzRhMmNjNjU3MDY1MDM5MGYxYjA4ZDQzYTRjMmY5NzVjN2VkOGJmMzM1NmM3MjE4MzgwMjEyNDUxYThmMTFkZTQ2NTUzY2JjZDY1YjQyNTRkZGI4ZjY2ODM0ZWIyMWRkYTJhOGYzM2I1ODFlMTQ4NDU1N2FjYTFiOTRlZTg5MzFkZGYxNjAzN2I3YTcxNzEzMjFhOTE5MzZhZmMyN2ZmY2UzOTVkZTc1ZDVmNzBjYjhiNWFlZTA1ZmY1MDcwODhkNjVhZjFlNDM5NjZjZDQyY2JlNmY3ZmFjZjhkYWUwNTVkZDgyMjJiMTY5NjUyMTcyM2Y4MTI0NTE3ODU5NWM5ODVhZTkxN2ZkNGIzOTk4NzczZTFhOTdiN2JkMTAwODU0NDZmNDI1OWJjYzA5YTQ1NDkyOTI4MmMxYjg5YjcxZWQ1ODdhNzc1ZTBhM2Q0NTM2MzQxZjQ1ZGFlOTY5ZTgwNmM5NmZlZmM3MTA2Nzc3NmMwMmJhMjIxMjJiOTE5OWIxNGMwYzI4YzA0NDg3NTA5MDcwYjk3ZjNkZDJkNmQ5NzI3MzMxODIwMTc3MzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDViZWNkODcxOTVjMWRlZmY5MGMyNGM5MTI2OWI1NWIzZjA2OWJjMjI1YzMyNmMzMTRjMWE1MTc4NmZmZTE0YzgzMGJlNGU0YmM3M2NiYTM2Yzk3Njc3YjQ0MTY4Mjc5YmU5MWU3Y2RmN2MxOTM4NmFlMjE4NjI3MTlkMTNhM2EwZmZmMDgwM2Q0NjA5NjJmMmNkYTgzNzE0ODQ4NzMyNTJjM2Q3MDU0ZGI4MTQzZTJiMDgxYTM4MTZlZDA4MDRjYTUwOTlhZTVmZWNlODNkNWMyYzM3ODNiMTk4OGI0YjQ2ZGM5NGU1NTU4N2ExMDdlYTE1NDZiZjIyZDI4YTA5N2Y2NTJhNDA2NmRjMjk2NTI2OTA2OWFmMmY1MTc2YmI4Y2U5Y2E2ZDExZjk2NzU3ZjAzMjA0Zjc1NjcwMzU4N2QwMGFkNDI0Nzk2YzkyZmM3YWViNmY0OTQ0MzE5OTllZGEzMDk5MGU0ZjU3NzM2MzJlZDI1OGZlMDI3NjY3MzU5OWRhNmZjZTM1Y2RhZDc3MjZhMGJiMDI0Y2FkOTk2Yjg4ZTBjYjk4ODU0Y2ViNWMwYjZlYzc0OGQ5ZjljZTZhNmNkNDM3ODU4YmFjYjgxNDYxOGEyNzJmZjNhNDE1YzZlMDdmM2RiMDk4ODc3N2ZkZWM4NDVhOTdiZjdkMTAyZGQwIgogCiBQS0NTNyBQYXJzZSBGYWlsdXJlIEludmFsaWQgQVNOMTogQ2hhbmdlIGxlbmd0aCBmcm9tIDEyIHRvIDEzICMxOTAuMAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHBrY3M3X2FzbjFfZmFpbDoiMzA4MjA1MDAwNjA5MmE4NjQ4ODZmNzBkMDEwNzAyYTA4MjA0ZjEzMDgyMDRlZDAyMDEwMTMxMGYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBiMDYwOTJhODY0ODg2ZjcwZDAxMDcwMWEwODIwMzRkMzA4MjAzNDkzMDgyMDIzMWEwMDMwMjAxMDIwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTMwMWUxNzBkMzIzMjMxMzAzMjM4MzEzNjMxMzAzNTM2NWExNzBkMzIzMzMxMzAzMjM4MzEzNjMxMzAzNTM2NWEzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGQ1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEzMDgyMDEyMjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDAzODIwMTBmMDAzMDgyMDEwYTAyODIwMTAxMDBjOGI2Y2Y2OTg5OWNkMWYwZWJiNGNhNjQ1YzA1ZTcwZTBkMmVmZWRkY2M2MWQwODljYmQ1MTVhMzlhMzU3OWI5MjM0M2I2MWVjNzUwMDYwZmI0ZWQzNzg3NjMzMjQwMGU0MjVmMWQzNzZjN2U3NWMyOTczMzE0ZWRmNGJiMzBjOGY4ZGQwM2I5ZmNmZjk1NWEyNDVkNDkxMzdhZDZlNjAwNTZjYWMxOTU1MmE4NjVkNTIxODcxODdjYzA0MmM5YzQ5ZTNlM2E5YzE3YTUzNGI0NTNjZGFiYzBjYjExM2I0ZjYzZjViMzE3NGI5ZWU5OTAyYjE5MTBkMTE0OTZhMjc5YTc0MzI2YWRjZmVlMTBiZmQ5ZTdlYmFmYmIzNzdiZTliNjM5NTkxNjVkMTNkZDU3NTExNzFjYWRhZDNjMWQzYWRhYzY4YmM4MDExZDYxYjU0Y2Y2MDE3OGJlMzY4MzlhODlhYzkxYWI0MTllM2NhMzdkNmJhODgxZDI1NTE4YzRkYjY4YmNhNmY3YzgzNjAyZjY5OWE4NmIxN2ZiMWU3NzNiY2JlNzRiYjkzYTQ5YjI1MWFlODY0MjhiNTc0MGUxODY4YmIxZDZmYWI5ZTI4NzEyZTk4ZWMzMTlhZDhmY2E0ZDczMDEwYzRiMDljNGI4MDQ1ODk2MWU3Y2YwODM1MzAyMDMwMTAwMDFhMzUzMzA1MTMwMWQwNjAzNTUxZDBlMDQxNjA0MTQ4YWVlZTU5NDdjYzY3YzVkZDUxNWE3NmUyYTdlY2QzMWVlNTJmZGM4MzAxZjA2MDM1NTFkMjMwNDE4MzAxNjgwMTQ4YWVlZTU5NDdjYzY3YzVkZDUxNWE3NmUyYTdlY2QzMWVlNTJmZGM4MzAwZjA2MDM1NTFkMTMwMTAxZmYwNDA1MzAwMzAxMDFmZjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDAzODIwMTAxMDA4MjFkNmI5OGNkNDU3ZGViZDJiMDgxYWNhMjdlYmVjZDRmOTNhY2M4Mjg0NDNiMzllYWJmZmE5ZmE0ZTllNDU0M2I0NmZjYzMxZTJiNWI0ODE3NzkwM2RlYTY5NjlhYzRhMmNjNjU3MDY1MDM5MGYxYjA4ZDQzYTRjMmY5NzVjN2VkOGJmMzM1NmM3MjE4MzgwMjEyNDUxYThmMTFkZTQ2NTUzY2JjZDY1YjQyNTRkZGI4ZjY2ODM0ZWIyMWRkYTJhOGYzM2I1ODFlMTQ4NDU1N2FjYTFiOTRlZTg5MzFkZGYxNjAzN2I3YTcxNzEzMjFhOTE5MzZhZmMyN2ZmY2UzOTVkZTc1ZDVmNzBjYjhiNWFlZTA1ZmY1MDcwODhkNjVhZjFlNDM5NjZjZDQyY2JlNmY3ZmFjZjhkYWUwNTVkZDgyMjJiMTY5NjUyMTcyM2Y4MTI0NTE3ODU5NWM5ODVhZTkxN2ZkNGIzOTk4NzczZTFhOTdiN2JkMTAwODU0NDZmNDI1OWJjYzA5YTQ1NDkyOTI4MmMxYjg5YjcxZWQ1ODdhNzc1ZTBhM2Q0NTM2MzQxZjQ1ZGFlOTY5ZTgwNmM5NmZlZmM3MTA2Nzc3NmMwMmJhMjIxMjJiOTE5OWIxNGMwYzI4YzA0NDg3NTA5MDcwYjk3ZjNkZDJkNmQ5NzI3MzMxODIwMTc3MzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDViZWNkODcxOTVjMWRlZmY5MGMyNGM5MTI2OWI1NWIzZjA2OWJjMjI1YzMyNmMzMTRjMWE1MTc4NmZmZTE0YzgzMGJlNGU0YmM3M2NiYTM2Yzk3Njc3YjQ0MTY4Mjc5YmU5MWU3Y2RmN2MxOTM4NmFlMjE4NjI3MTlkMTNhM2EwZmZmMDgwM2Q0NjA5NjJmMmNkYTgzNzE0ODQ4NzMyNTJjM2Q3MDU0ZGI4MTQzZTJiMDgxYTM4MTZlZDA4MDRjYTUwOTlhZTVmZWNlODNkNWMyYzM3ODNiMTk4OGI0YjQ2ZGM5NGU1NTU4N2ExMDdlYTE1NDZiZjIyZDI4YTA5N2Y2NTJhNDA2NmRjMjk2NTI2OTA2OWFmMmY1MTc2YmI4Y2U5Y2E2ZDExZjk2NzU3ZjAzMjA0Zjc1NjcwMzU4N2QwMGFkNDI0Nzk2YzkyZmM3YWViNmY0OTQ0MzE5OTllZGEzMDk5MGU0ZjU3NzM2MzJlZDI1OGZlMDI3NjY3MzU5OWRhNmZjZTM1Y2RhZDc3MjZhMGJiMDI0Y2FkOTk2Yjg4ZTBjYjk4ODU0Y2ViNWMwYjZlYzc0OGQ5ZjljZTZhNmNkNDM3ODU4YmFjYjgxNDYxOGEyNzJmZjNhNDE1YzZlMDdmM2RiMDk4ODc3N2ZkZWM4NDVhOTdiZjdkMTAyZGQwIgogCiBQS0NTNyBQYXJzZSBGYWlsdXJlIEludmFsaWQgQVNOMTogQ2hhbmdlIGxlbmd0aCBmcm9tIDEyIHRvIDExICMxOTEuMAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHBrY3M3X2FzbjFfZmFpbDoiMzA4MjA1MDAwNjA5MmE4NjQ4ODZmNzBkMDEwNzAyYTA4MjA0ZjEzMDgyMDRlZDAyMDEwMTMxMGYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBiMDYwOTJhODY0ODg2ZjcwZDAxMDcwMWEwODIwMzRkMzA4MjAzNDkzMDgyMDIzMWEwMDMwMjAxMDIwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTMwMWUxNzBkMzIzMjMxMzAzMjM4MzEzNjMxMzAzNTM2NWExNzBkMzIzMzMxMzAzMjM4MzEzNjMxMzAzNTM2NWEzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGI1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEzMDgyMDEyMjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDAzODIwMTBmMDAzMDgyMDEwYTAyODIwMTAxMDBjOGI2Y2Y2OTg5OWNkMWYwZWJiNGNhNjQ1YzA1ZTcwZTBkMmVmZWRkY2M2MWQwODljYmQ1MTVhMzlhMzU3OWI5MjM0M2I2MWVjNzUwMDYwZmI0ZWQzNzg3NjMzMjQwMGU0MjVmMWQzNzZjN2U3NWMyOTczMzE0ZWRmNGJiMzBjOGY4ZGQwM2I5ZmNmZjk1NWEyNDVkNDkxMzdhZDZlNjAwNTZjYWMxOTU1MmE4NjVkNTIxODcxODdjYzA0MmM5YzQ5ZTNlM2E5YzE3YTUzNGI0NTNjZGFiYzBjYjExM2I0ZjYzZjViMzE3NGI5ZWU5OTAyYjE5MTBkMTE0OTZhMjc5YTc0MzI2YWRjZmVlMTBiZmQ5ZTdlYmFmYmIzNzdiZTliNjM5NTkxNjVkMTNkZDU3NTExNzFjYWRhZDNjMWQzYWRhYzY4YmM4MDExZDYxYjU0Y2Y2MDE3OGJlMzY4MzlhODlhYzkxYWI0MTllM2NhMzdkNmJhODgxZDI1NTE4YzRkYjY4YmNhNmY3YzgzNjAyZjY5OWE4NmIxN2ZiMWU3NzNiY2JlNzRiYjkzYTQ5YjI1MWFlODY0MjhiNTc0MGUxODY4YmIxZDZmYWI5ZTI4NzEyZTk4ZWMzMTlhZDhmY2E0ZDczMDEwYzRiMDljNGI4MDQ1ODk2MWU3Y2YwODM1MzAyMDMwMTAwMDFhMzUzMzA1MTMwMWQwNjAzNTUxZDBlMDQxNjA0MTQ4YWVlZTU5NDdjYzY3YzVkZDUxNWE3NmUyYTdlY2QzMWVlNTJmZGM4MzAxZjA2MDM1NTFkMjMwNDE4MzAxNjgwMTQ4YWVlZTU5NDdjYzY3YzVkZDUxNWE3NmUyYTdlY2QzMWVlNTJmZGM4MzAwZjA2MDM1NTFkMTMwMTAxZmYwNDA1MzAwMzAxMDFmZjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDAzODIwMTAxMDA4MjFkNmI5OGNkNDU3ZGViZDJiMDgxYWNhMjdlYmVjZDRmOTNhY2M4Mjg0NDNiMzllYWJmZmE5ZmE0ZTllNDU0M2I0NmZjYzMxZTJiNWI0ODE3NzkwM2RlYTY5NjlhYzRhMmNjNjU3MDY1MDM5MGYxYjA4ZDQzYTRjMmY5NzVjN2VkOGJmMzM1NmM3MjE4MzgwMjEyNDUxYThmMTFkZTQ2NTUzY2JjZDY1YjQyNTRkZGI4ZjY2ODM0ZWIyMWRkYTJhOGYzM2I1ODFlMTQ4NDU1N2FjYTFiOTRlZTg5MzFkZGYxNjAzN2I3YTcxNzEzMjFhOTE5MzZhZmMyN2ZmY2UzOTVkZTc1ZDVmNzBjYjhiNWFlZTA1ZmY1MDcwODhkNjVhZjFlNDM5NjZjZDQyY2JlNmY3ZmFjZjhkYWUwNTVkZDgyMjJiMTY5NjUyMTcyM2Y4MTI0NTE3ODU5NWM5ODVhZTkxN2ZkNGIzOTk4NzczZTFhOTdiN2JkMTAwODU0NDZmNDI1OWJjYzA5YTQ1NDkyOTI4MmMxYjg5YjcxZWQ1ODdhNzc1ZTBhM2Q0NTM2MzQxZjQ1ZGFlOTY5ZTgwNmM5NmZlZmM3MTA2Nzc3NmMwMmJhMjIxMjJiOTE5OWIxNGMwYzI4YzA0NDg3NTA5MDcwYjk3ZjNkZDJkNmQ5NzI3MzMxODIwMTc3MzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDViZWNkODcxOTVjMWRlZmY5MGMyNGM5MTI2OWI1NWIzZjA2OWJjMjI1YzMyNmMzMTRjMWE1MTc4NmZmZTE0YzgzMGJlNGU0YmM3M2NiYTM2Yzk3Njc3YjQ0MTY4Mjc5YmU5MWU3Y2RmN2MxOTM4NmFlMjE4NjI3MTlkMTNhM2EwZmZmMDgwM2Q0NjA5NjJmMmNkYTgzNzE0ODQ4NzMyNTJjM2Q3MDU0ZGI4MTQzZTJiMDgxYTM4MTZlZDA4MDRjYTUwOTlhZTVmZWNlODNkNWMyYzM3ODNiMTk4OGI0YjQ2ZGM5NGU1NTU4N2ExMDdlYTE1NDZiZjIyZDI4YTA5N2Y2NTJhNDA2NmRjMjk2NTI2OTA2OWFmMmY1MTc2YmI4Y2U5Y2E2ZDExZjk2NzU3ZjAzMjA0Zjc1NjcwMzU4N2QwMGFkNDI0Nzk2YzkyZmM3YWViNmY0OTQ0MzE5OTllZGEzMDk5MGU0ZjU3NzM2MzJlZDI1OGZlMDI3NjY3MzU5OWRhNmZjZTM1Y2RhZDc3MjZhMGJiMDI0Y2FkOTk2Yjg4ZTBjYjk4ODU0Y2ViNWMwYjZlYzc0OGQ5ZjljZTZhNmNkNDM3ODU4YmFjYjgxNDYxOGEyNzJmZjNhNDE1YzZlMDdmM2RiMDk4ODc3N2ZkZWM4NDVhOTdiZjdkMTAyZGQwIgogCiBQS0NTNyBQYXJzZSBGYWlsdXJlIEludmFsaWQgQVNOMTogQ2hhbmdlIHRhZyAzMCB0byAwMiAjMTkyLjAKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBwa2NzN19hc24xX2ZhaWw6IjMwODIwNTAwMDYwOTJhODY0ODg2ZjcwZDAxMDcwMmEwODIwNGYxMzA4MjA0ZWQwMjAxMDEzMTBmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwYjA2MDkyYTg2NDg4NmY3MGQwMTA3MDFhMDgyMDM0ZDMwODIwMzQ5MzA4MjAyMzFhMDAzMDIwMTAyMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEzMDFlMTcwZDMyMzIzMTMwMzIzODMxMzYzMTMwMzUzNjVhMTcwZDMyMzMzMTMwMzIzODMxMzYzMTMwMzUzNjVhMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMDI4MjAxMjIzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwMzgyMDEwZjAwMzA4MjAxMGEwMjgyMDEwMTAwYzhiNmNmNjk4OTljZDFmMGViYjRjYTY0NWMwNWU3MGUwZDJlZmVkZGNjNjFkMDg5Y2JkNTE1YTM5YTM1NzliOTIzNDNiNjFlYzc1MDA2MGZiNGVkMzc4NzYzMzI0MDBlNDI1ZjFkMzc2YzdlNzVjMjk3MzMxNGVkZjRiYjMwYzhmOGRkMDNiOWZjZmY5NTVhMjQ1ZDQ5MTM3YWQ2ZTYwMDU2Y2FjMTk1NTJhODY1ZDUyMTg3MTg3Y2MwNDJjOWM0OWUzZTNhOWMxN2E1MzRiNDUzY2RhYmMwY2IxMTNiNGY2M2Y1YjMxNzRiOWVlOTkwMmIxOTEwZDExNDk2YTI3OWE3NDMyNmFkY2ZlZTEwYmZkOWU3ZWJhZmJiMzc3YmU5YjYzOTU5MTY1ZDEzZGQ1NzUxMTcxY2FkYWQzYzFkM2FkYWM2OGJjODAxMWQ2MWI1NGNmNjAxNzhiZTM2ODM5YTg5YWM5MWFiNDE5ZTNjYTM3ZDZiYTg4MWQyNTUxOGM0ZGI2OGJjYTZmN2M4MzYwMmY2OTlhODZiMTdmYjFlNzczYmNiZTc0YmI5M2E0OWIyNTFhZTg2NDI4YjU3NDBlMTg2OGJiMWQ2ZmFiOWUyODcxMmU5OGVjMzE5YWQ4ZmNhNGQ3MzAxMGM0YjA5YzRiODA0NTg5NjFlN2NmMDgzNTMwMjAzMDEwMDAxYTM1MzMwNTEzMDFkMDYwMzU1MWQwZTA0MTYwNDE0OGFlZWU1OTQ3Y2M2N2M1ZGQ1MTVhNzZlMmE3ZWNkMzFlZTUyZmRjODMwMWYwNjAzNTUxZDIzMDQxODMwMTY4MDE0OGFlZWU1OTQ3Y2M2N2M1ZGQ1MTVhNzZlMmE3ZWNkMzFlZTUyZmRjODMwMGYwNjAzNTUxZDEzMDEwMWZmMDQwNTMwMDMwMTAxZmYzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAwMzgyMDEwMTAwODIxZDZiOThjZDQ1N2RlYmQyYjA4MWFjYTI3ZWJlY2Q0ZjkzYWNjODI4NDQzYjM5ZWFiZmZhOWZhNGU5ZTQ1NDNiNDZmY2MzMWUyYjViNDgxNzc5MDNkZWE2OTY5YWM0YTJjYzY1NzA2NTAzOTBmMWIwOGQ0M2E0YzJmOTc1YzdlZDhiZjMzNTZjNzIxODM4MDIxMjQ1MWE4ZjExZGU0NjU1M2NiY2Q2NWI0MjU0ZGRiOGY2NjgzNGViMjFkZGEyYThmMzNiNTgxZTE0ODQ1NTdhY2ExYjk0ZWU4OTMxZGRmMTYwMzdiN2E3MTcxMzIxYTkxOTM2YWZjMjdmZmNlMzk1ZGU3NWQ1ZjcwY2I4YjVhZWUwNWZmNTA3MDg4ZDY1YWYxZTQzOTY2Y2Q0MmNiZTZmN2ZhY2Y4ZGFlMDU1ZGQ4MjIyYjE2OTY1MjE3MjNmODEyNDUxNzg1OTVjOTg1YWU5MTdmZDRiMzk5ODc3M2UxYTk3YjdiZDEwMDg1NDQ2ZjQyNTliY2MwOWE0NTQ5MjkyODJjMWI4OWI3MWVkNTg3YTc3NWUwYTNkNDUzNjM0MWY0NWRhZTk2OWU4MDZjOTZmZWZjNzEwNjc3NzZjMDJiYTIyMTIyYjkxOTliMTRjMGMyOGMwNDQ4NzUwOTA3MGI5N2YzZGQyZDZkOTcyNzMzMTgyMDE3NzMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTAyMTQ3YmRlZGRkMjQ0NGNkMWNkZmU1YzQxYTgxMDJjODliN2RmMmU2Y2JmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDA1YmVjZDg3MTk1YzFkZWZmOTBjMjRjOTEyNjliNTViM2YwNjliYzIyNWMzMjZjMzE0YzFhNTE3ODZmZmUxNGM4MzBiZTRlNGJjNzNjYmEzNmM5NzY3N2I0NDE2ODI3OWJlOTFlN2NkZjdjMTkzODZhZTIxODYyNzE5ZDEzYTNhMGZmZjA4MDNkNDYwOTYyZjJjZGE4MzcxNDg0ODczMjUyYzNkNzA1NGRiODE0M2UyYjA4MWEzODE2ZWQwODA0Y2E1MDk5YWU1ZmVjZTgzZDVjMmMzNzgzYjE5ODhiNGI0NmRjOTRlNTU1ODdhMTA3ZWExNTQ2YmYyMmQyOGEwOTdmNjUyYTQwNjZkYzI5NjUyNjkwNjlhZjJmNTE3NmJiOGNlOWNhNmQxMWY5Njc1N2YwMzIwNGY3NTY3MDM1ODdkMDBhZDQyNDc5NmM5MmZjN2FlYjZmNDk0NDMxOTk5ZWRhMzA5OTBlNGY1NzczNjMyZWQyNThmZTAyNzY2NzM1OTlkYTZmY2UzNWNkYWQ3NzI2YTBiYjAyNGNhZDk5NmI4OGUwY2I5ODg1NGNlYjVjMGI2ZWM3NDhkOWY5Y2U2YTZjZDQzNzg1OGJhY2I4MTQ2MThhMjcyZmYzYTQxNWM2ZTA3ZjNkYjA5ODg3NzdmZGVjODQ1YTk3YmY3ZDEwMmRkMCIKIAogUEtDUzcgUGFyc2UgRmFpbHVyZSBJbnZhbGlkIEFTTjE6IENoYW5nZSBsZW5ndGggZnJvbSAyOTAgdG8gMjkxICMxOTMuMAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHBrY3M3X2FzbjFfZmFpbDoiMzA4MjA1MDAwNjA5MmE4NjQ4ODZmNzBkMDEwNzAyYTA4MjA0ZjEzMDgyMDRlZDAyMDEwMTMxMGYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBiMDYwOTJhODY0ODg2ZjcwZDAxMDcwMWEwODIwMzRkMzA4MjAzNDkzMDgyMDIzMWEwMDMwMjAxMDIwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTMwMWUxNzBkMzIzMjMxMzAzMjM4MzEzNjMxMzAzNTM2NWExNzBkMzIzMzMxMzAzMjM4MzEzNjMxMzAzNTM2NWEzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEzMDgyMDEyMzMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDAzODIwMTBmMDAzMDgyMDEwYTAyODIwMTAxMDBjOGI2Y2Y2OTg5OWNkMWYwZWJiNGNhNjQ1YzA1ZTcwZTBkMmVmZWRkY2M2MWQwODljYmQ1MTVhMzlhMzU3OWI5MjM0M2I2MWVjNzUwMDYwZmI0ZWQzNzg3NjMzMjQwMGU0MjVmMWQzNzZjN2U3NWMyOTczMzE0ZWRmNGJiMzBjOGY4ZGQwM2I5ZmNmZjk1NWEyNDVkNDkxMzdhZDZlNjAwNTZjYWMxOTU1MmE4NjVkNTIxODcxODdjYzA0MmM5YzQ5ZTNlM2E5YzE3YTUzNGI0NTNjZGFiYzBjYjExM2I0ZjYzZjViMzE3NGI5ZWU5OTAyYjE5MTBkMTE0OTZhMjc5YTc0MzI2YWRjZmVlMTBiZmQ5ZTdlYmFmYmIzNzdiZTliNjM5NTkxNjVkMTNkZDU3NTExNzFjYWRhZDNjMWQzYWRhYzY4YmM4MDExZDYxYjU0Y2Y2MDE3OGJlMzY4MzlhODlhYzkxYWI0MTllM2NhMzdkNmJhODgxZDI1NTE4YzRkYjY4YmNhNmY3YzgzNjAyZjY5OWE4NmIxN2ZiMWU3NzNiY2JlNzRiYjkzYTQ5YjI1MWFlODY0MjhiNTc0MGUxODY4YmIxZDZmYWI5ZTI4NzEyZTk4ZWMzMTlhZDhmY2E0ZDczMDEwYzRiMDljNGI4MDQ1ODk2MWU3Y2YwODM1MzAyMDMwMTAwMDFhMzUzMzA1MTMwMWQwNjAzNTUxZDBlMDQxNjA0MTQ4YWVlZTU5NDdjYzY3YzVkZDUxNWE3NmUyYTdlY2QzMWVlNTJmZGM4MzAxZjA2MDM1NTFkMjMwNDE4MzAxNjgwMTQ4YWVlZTU5NDdjYzY3YzVkZDUxNWE3NmUyYTdlY2QzMWVlNTJmZGM4MzAwZjA2MDM1NTFkMTMwMTAxZmYwNDA1MzAwMzAxMDFmZjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDAzODIwMTAxMDA4MjFkNmI5OGNkNDU3ZGViZDJiMDgxYWNhMjdlYmVjZDRmOTNhY2M4Mjg0NDNiMzllYWJmZmE5ZmE0ZTllNDU0M2I0NmZjYzMxZTJiNWI0ODE3NzkwM2RlYTY5NjlhYzRhMmNjNjU3MDY1MDM5MGYxYjA4ZDQzYTRjMmY5NzVjN2VkOGJmMzM1NmM3MjE4MzgwMjEyNDUxYThmMTFkZTQ2NTUzY2JjZDY1YjQyNTRkZGI4ZjY2ODM0ZWIyMWRkYTJhOGYzM2I1ODFlMTQ4NDU1N2FjYTFiOTRlZTg5MzFkZGYxNjAzN2I3YTcxNzEzMjFhOTE5MzZhZmMyN2ZmY2UzOTVkZTc1ZDVmNzBjYjhiNWFlZTA1ZmY1MDcwODhkNjVhZjFlNDM5NjZjZDQyY2JlNmY3ZmFjZjhkYWUwNTVkZDgyMjJiMTY5NjUyMTcyM2Y4MTI0NTE3ODU5NWM5ODVhZTkxN2ZkNGIzOTk4NzczZTFhOTdiN2JkMTAwODU0NDZmNDI1OWJjYzA5YTQ1NDkyOTI4MmMxYjg5YjcxZWQ1ODdhNzc1ZTBhM2Q0NTM2MzQxZjQ1ZGFlOTY5ZTgwNmM5NmZlZmM3MTA2Nzc3NmMwMmJhMjIxMjJiOTE5OWIxNGMwYzI4YzA0NDg3NTA5MDcwYjk3ZjNkZDJkNmQ5NzI3MzMxODIwMTc3MzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDViZWNkODcxOTVjMWRlZmY5MGMyNGM5MTI2OWI1NWIzZjA2OWJjMjI1YzMyNmMzMTRjMWE1MTc4NmZmZTE0YzgzMGJlNGU0YmM3M2NiYTM2Yzk3Njc3YjQ0MTY4Mjc5YmU5MWU3Y2RmN2MxOTM4NmFlMjE4NjI3MTlkMTNhM2EwZmZmMDgwM2Q0NjA5NjJmMmNkYTgzNzE0ODQ4NzMyNTJjM2Q3MDU0ZGI4MTQzZTJiMDgxYTM4MTZlZDA4MDRjYTUwOTlhZTVmZWNlODNkNWMyYzM3ODNiMTk4OGI0YjQ2ZGM5NGU1NTU4N2ExMDdlYTE1NDZiZjIyZDI4YTA5N2Y2NTJhNDA2NmRjMjk2NTI2OTA2OWFmMmY1MTc2YmI4Y2U5Y2E2ZDExZjk2NzU3ZjAzMjA0Zjc1NjcwMzU4N2QwMGFkNDI0Nzk2YzkyZmM3YWViNmY0OTQ0MzE5OTllZGEzMDk5MGU0ZjU3NzM2MzJlZDI1OGZlMDI3NjY3MzU5OWRhNmZjZTM1Y2RhZDc3MjZhMGJiMDI0Y2FkOTk2Yjg4ZTBjYjk4ODU0Y2ViNWMwYjZlYzc0OGQ5ZjljZTZhNmNkNDM3ODU4YmFjYjgxNDYxOGEyNzJmZjNhNDE1YzZlMDdmM2RiMDk4ODc3N2ZkZWM4NDVhOTdiZjdkMTAyZGQwIgogCiBQS0NTNyBQYXJzZSBGYWlsdXJlIEludmFsaWQgQVNOMTogQ2hhbmdlIGNvbnRlbnRzIG9mIHRhZyAzMCB0byBjb250YWluIG9uZSB1bmFjY291bnRlZCBleHRyYSBieXRlICMxOTQuMAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHBrY3M3X2FzbjFfZmFpbDoiMzA4MjA1MDAwNjA5MmE4NjQ4ODZmNzBkMDEwNzAyYTA4MjA0ZjEzMDgyMDRlZDAyMDEwMTMxMGYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBiMDYwOTJhODY0ODg2ZjcwZDAxMDcwMWEwODIwMzRkMzA4MjAzNDkzMDgyMDIzMWEwMDMwMjAxMDIwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTMwMWUxNzBkMzIzMjMxMzAzMjM4MzEzNjMxMzAzNTM2NWExNzBkMzIzMzMxMzAzMjM4MzEzNjMxMzAzNTM2NWEzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEzMDgyMDEyMzMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDAzODIwMTBmMDAzMDgyMDEwYTAyODIwMTAxMDBjOGI2Y2Y2OTg5OWNkMWYwZWJiNGNhNjQ1YzA1ZTcwZTBkMmVmZWRkY2M2MWQwODljYmQ1MTVhMzlhMzU3OWI5MjM0M2I2MWVjNzUwMDYwZmI0ZWQzNzg3NjMzMjQwMGU0MjVmMWQzNzZjN2U3NWMyOTczMzE0ZWRmNGJiMzBjOGY4ZGQwM2I5ZmNmZjk1NWEyNDVkNDkxMzdhZDZlNjAwNTZjYWMxOTU1MmE4NjVkNTIxODcxODdjYzA0MmM5YzQ5ZTNlM2E5YzE3YTUzNGI0NTNjZGFiYzBjYjExM2I0ZjYzZjViMzE3NGI5ZWU5OTAyYjE5MTBkMTE0OTZhMjc5YTc0MzI2YWRjZmVlMTBiZmQ5ZTdlYmFmYmIzNzdiZTliNjM5NTkxNjVkMTNkZDU3NTExNzFjYWRhZDNjMWQzYWRhYzY4YmM4MDExZDYxYjU0Y2Y2MDE3OGJlMzY4MzlhODlhYzkxYWI0MTllM2NhMzdkNmJhODgxZDI1NTE4YzRkYjY4YmNhNmY3YzgzNjAyZjY5OWE4NmIxN2ZiMWU3NzNiY2JlNzRiYjkzYTQ5YjI1MWFlODY0MjhiNTc0MGUxODY4YmIxZDZmYWI5ZTI4NzEyZTk4ZWMzMTlhZDhmY2E0ZDczMDEwYzRiMDljNGI4MDQ1ODk2MWU3Y2YwODM1MzAyMDMwMTAwMDEwMGEzNTMzMDUxMzAxZDA2MDM1NTFkMGUwNDE2MDQxNDhhZWVlNTk0N2NjNjdjNWRkNTE1YTc2ZTJhN2VjZDMxZWU1MmZkYzgzMDFmMDYwMzU1MWQyMzA0MTgzMDE2ODAxNDhhZWVlNTk0N2NjNjdjNWRkNTE1YTc2ZTJhN2VjZDMxZWU1MmZkYzgzMDBmMDYwMzU1MWQxMzAxMDFmZjA0MDUzMDAzMDEwMWZmMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMDM4MjAxMDEwMDgyMWQ2Yjk4Y2Q0NTdkZWJkMmIwODFhY2EyN2ViZWNkNGY5M2FjYzgyODQ0M2IzOWVhYmZmYTlmYTRlOWU0NTQzYjQ2ZmNjMzFlMmI1YjQ4MTc3OTAzZGVhNjk2OWFjNGEyY2M2NTcwNjUwMzkwZjFiMDhkNDNhNGMyZjk3NWM3ZWQ4YmYzMzU2YzcyMTgzODAyMTI0NTFhOGYxMWRlNDY1NTNjYmNkNjViNDI1NGRkYjhmNjY4MzRlYjIxZGRhMmE4ZjMzYjU4MWUxNDg0NTU3YWNhMWI5NGVlODkzMWRkZjE2MDM3YjdhNzE3MTMyMWE5MTkzNmFmYzI3ZmZjZTM5NWRlNzVkNWY3MGNiOGI1YWVlMDVmZjUwNzA4OGQ2NWFmMWU0Mzk2NmNkNDJjYmU2ZjdmYWNmOGRhZTA1NWRkODIyMmIxNjk2NTIxNzIzZjgxMjQ1MTc4NTk1Yzk4NWFlOTE3ZmQ0YjM5OTg3NzNlMWE5N2I3YmQxMDA4NTQ0NmY0MjU5YmNjMDlhNDU0OTI5MjgyYzFiODliNzFlZDU4N2E3NzVlMGEzZDQ1MzYzNDFmNDVkYWU5NjllODA2Yzk2ZmVmYzcxMDY3Nzc2YzAyYmEyMjEyMmI5MTk5YjE0YzBjMjhjMDQ0ODc1MDkwNzBiOTdmM2RkMmQ2ZDk3MjczMzE4MjAxNzczMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwNWJlY2Q4NzE5NWMxZGVmZjkwYzI0YzkxMjY5YjU1YjNmMDY5YmMyMjVjMzI2YzMxNGMxYTUxNzg2ZmZlMTRjODMwYmU0ZTRiYzczY2JhMzZjOTc2NzdiNDQxNjgyNzliZTkxZTdjZGY3YzE5Mzg2YWUyMTg2MjcxOWQxM2EzYTBmZmYwODAzZDQ2MDk2MmYyY2RhODM3MTQ4NDg3MzI1MmMzZDcwNTRkYjgxNDNlMmIwODFhMzgxNmVkMDgwNGNhNTA5OWFlNWZlY2U4M2Q1YzJjMzc4M2IxOTg4YjRiNDZkYzk0ZTU1NTg3YTEwN2VhMTU0NmJmMjJkMjhhMDk3ZjY1MmE0MDY2ZGMyOTY1MjY5MDY5YWYyZjUxNzZiYjhjZTljYTZkMTFmOTY3NTdmMDMyMDRmNzU2NzAzNTg3ZDAwYWQ0MjQ3OTZjOTJmYzdhZWI2ZjQ5NDQzMTk5OWVkYTMwOTkwZTRmNTc3MzYzMmVkMjU4ZmUwMjc2NjczNTk5ZGE2ZmNlMzVjZGFkNzcyNmEwYmIwMjRjYWQ5OTZiODhlMGNiOTg4NTRjZWI1YzBiNmVjNzQ4ZDlmOWNlNmE2Y2Q0Mzc4NThiYWNiODE0NjE4YTI3MmZmM2E0MTVjNmUwN2YzZGIwOTg4Nzc3ZmRlYzg0NWE5N2JmN2QxMDJkZDAiCiAKIFBLQ1M3IFBhcnNlIEZhaWx1cmUgSW52YWxpZCBBU04xOiBDaGFuZ2UgbGVuZ3RoIGZyb20gMjkwIHRvIDI4OSAjMTk1LjAKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBwa2NzN19hc24xX2ZhaWw6IjMwODIwNTAwMDYwOTJhODY0ODg2ZjcwZDAxMDcwMmEwODIwNGYxMzA4MjA0ZWQwMjAxMDEzMTBmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwYjA2MDkyYTg2NDg4NmY3MGQwMTA3MDFhMDgyMDM0ZDMwODIwMzQ5MzA4MjAyMzFhMDAzMDIwMTAyMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEzMDFlMTcwZDMyMzIzMTMwMzIzODMxMzYzMTMwMzUzNjVhMTcwZDMyMzMzMTMwMzIzODMxMzYzMTMwMzUzNjVhMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMzA4MjAxMjEzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwMzgyMDEwZjAwMzA4MjAxMGEwMjgyMDEwMTAwYzhiNmNmNjk4OTljZDFmMGViYjRjYTY0NWMwNWU3MGUwZDJlZmVkZGNjNjFkMDg5Y2JkNTE1YTM5YTM1NzliOTIzNDNiNjFlYzc1MDA2MGZiNGVkMzc4NzYzMzI0MDBlNDI1ZjFkMzc2YzdlNzVjMjk3MzMxNGVkZjRiYjMwYzhmOGRkMDNiOWZjZmY5NTVhMjQ1ZDQ5MTM3YWQ2ZTYwMDU2Y2FjMTk1NTJhODY1ZDUyMTg3MTg3Y2MwNDJjOWM0OWUzZTNhOWMxN2E1MzRiNDUzY2RhYmMwY2IxMTNiNGY2M2Y1YjMxNzRiOWVlOTkwMmIxOTEwZDExNDk2YTI3OWE3NDMyNmFkY2ZlZTEwYmZkOWU3ZWJhZmJiMzc3YmU5YjYzOTU5MTY1ZDEzZGQ1NzUxMTcxY2FkYWQzYzFkM2FkYWM2OGJjODAxMWQ2MWI1NGNmNjAxNzhiZTM2ODM5YTg5YWM5MWFiNDE5ZTNjYTM3ZDZiYTg4MWQyNTUxOGM0ZGI2OGJjYTZmN2M4MzYwMmY2OTlhODZiMTdmYjFlNzczYmNiZTc0YmI5M2E0OWIyNTFhZTg2NDI4YjU3NDBlMTg2OGJiMWQ2ZmFiOWUyODcxMmU5OGVjMzE5YWQ4ZmNhNGQ3MzAxMGM0YjA5YzRiODA0NTg5NjFlN2NmMDgzNTMwMjAzMDEwMDAxYTM1MzMwNTEzMDFkMDYwMzU1MWQwZTA0MTYwNDE0OGFlZWU1OTQ3Y2M2N2M1ZGQ1MTVhNzZlMmE3ZWNkMzFlZTUyZmRjODMwMWYwNjAzNTUxZDIzMDQxODMwMTY4MDE0OGFlZWU1OTQ3Y2M2N2M1ZGQ1MTVhNzZlMmE3ZWNkMzFlZTUyZmRjODMwMGYwNjAzNTUxZDEzMDEwMWZmMDQwNTMwMDMwMTAxZmYzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAwMzgyMDEwMTAwODIxZDZiOThjZDQ1N2RlYmQyYjA4MWFjYTI3ZWJlY2Q0ZjkzYWNjODI4NDQzYjM5ZWFiZmZhOWZhNGU5ZTQ1NDNiNDZmY2MzMWUyYjViNDgxNzc5MDNkZWE2OTY5YWM0YTJjYzY1NzA2NTAzOTBmMWIwOGQ0M2E0YzJmOTc1YzdlZDhiZjMzNTZjNzIxODM4MDIxMjQ1MWE4ZjExZGU0NjU1M2NiY2Q2NWI0MjU0ZGRiOGY2NjgzNGViMjFkZGEyYThmMzNiNTgxZTE0ODQ1NTdhY2ExYjk0ZWU4OTMxZGRmMTYwMzdiN2E3MTcxMzIxYTkxOTM2YWZjMjdmZmNlMzk1ZGU3NWQ1ZjcwY2I4YjVhZWUwNWZmNTA3MDg4ZDY1YWYxZTQzOTY2Y2Q0MmNiZTZmN2ZhY2Y4ZGFlMDU1ZGQ4MjIyYjE2OTY1MjE3MjNmODEyNDUxNzg1OTVjOTg1YWU5MTdmZDRiMzk5ODc3M2UxYTk3YjdiZDEwMDg1NDQ2ZjQyNTliY2MwOWE0NTQ5MjkyODJjMWI4OWI3MWVkNTg3YTc3NWUwYTNkNDUzNjM0MWY0NWRhZTk2OWU4MDZjOTZmZWZjNzEwNjc3NzZjMDJiYTIyMTIyYjkxOTliMTRjMGMyOGMwNDQ4NzUwOTA3MGI5N2YzZGQyZDZkOTcyNzMzMTgyMDE3NzMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTAyMTQ3YmRlZGRkMjQ0NGNkMWNkZmU1YzQxYTgxMDJjODliN2RmMmU2Y2JmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDA1YmVjZDg3MTk1YzFkZWZmOTBjMjRjOTEyNjliNTViM2YwNjliYzIyNWMzMjZjMzE0YzFhNTE3ODZmZmUxNGM4MzBiZTRlNGJjNzNjYmEzNmM5NzY3N2I0NDE2ODI3OWJlOTFlN2NkZjdjMTkzODZhZTIxODYyNzE5ZDEzYTNhMGZmZjA4MDNkNDYwOTYyZjJjZGE4MzcxNDg0ODczMjUyYzNkNzA1NGRiODE0M2UyYjA4MWEzODE2ZWQwODA0Y2E1MDk5YWU1ZmVjZTgzZDVjMmMzNzgzYjE5ODhiNGI0NmRjOTRlNTU1ODdhMTA3ZWExNTQ2YmYyMmQyOGEwOTdmNjUyYTQwNjZkYzI5NjUyNjkwNjlhZjJmNTE3NmJiOGNlOWNhNmQxMWY5Njc1N2YwMzIwNGY3NTY3MDM1ODdkMDBhZDQyNDc5NmM5MmZjN2FlYjZmNDk0NDMxOTk5ZWRhMzA5OTBlNGY1NzczNjMyZWQyNThmZTAyNzY2NzM1OTlkYTZmY2UzNWNkYWQ3NzI2YTBiYjAyNGNhZDk5NmI4OGUwY2I5ODg1NGNlYjVjMGI2ZWM3NDhkOWY5Y2U2YTZjZDQzNzg1OGJhY2I4MTQ2MThhMjcyZmYzYTQxNWM2ZTA3ZjNkYjA5ODg3NzdmZGVjODQ1YTk3YmY3ZDEwMmRkMCIKIAogUEtDUzcgUGFyc2UgRmFpbHVyZSBJbnZhbGlkIEFTTjE6IENoYW5nZSB0YWcgMzAgdG8gMDIgIzE5Ni4wCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NgogcGtjczdfYXNuMV9mYWlsOiIzMDgyMDUwMDA2MDkyYTg2NDg4NmY3MGQwMTA3MDJhMDgyMDRmMTMwODIwNGVkMDIwMTAxMzEwZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGIwNjA5MmE4NjQ4ODZmNzBkMDEwNzAxYTA4MjAzNGQzMDgyMDM0OTMwODIwMjMxYTAwMzAyMDEwMjAyMTQ3YmRlZGRkMjQ0NGNkMWNkZmU1YzQxYTgxMDJjODliN2RmMmU2Y2JmMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMzAxZTE3MGQzMjMyMzEzMDMyMzgzMTM2MzEzMDM1MzY1YTE3MGQzMjMzMzEzMDMyMzgzMTM2MzEzMDM1MzY1YTMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTMwODIwMTIyMDIwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDM4MjAxMGYwMDMwODIwMTBhMDI4MjAxMDEwMGM4YjZjZjY5ODk5Y2QxZjBlYmI0Y2E2NDVjMDVlNzBlMGQyZWZlZGRjYzYxZDA4OWNiZDUxNWEzOWEzNTc5YjkyMzQzYjYxZWM3NTAwNjBmYjRlZDM3ODc2MzMyNDAwZTQyNWYxZDM3NmM3ZTc1YzI5NzMzMTRlZGY0YmIzMGM4ZjhkZDAzYjlmY2ZmOTU1YTI0NWQ0OTEzN2FkNmU2MDA1NmNhYzE5NTUyYTg2NWQ1MjE4NzE4N2NjMDQyYzljNDllM2UzYTljMTdhNTM0YjQ1M2NkYWJjMGNiMTEzYjRmNjNmNWIzMTc0YjllZTk5MDJiMTkxMGQxMTQ5NmEyNzlhNzQzMjZhZGNmZWUxMGJmZDllN2ViYWZiYjM3N2JlOWI2Mzk1OTE2NWQxM2RkNTc1MTE3MWNhZGFkM2MxZDNhZGFjNjhiYzgwMTFkNjFiNTRjZjYwMTc4YmUzNjgzOWE4OWFjOTFhYjQxOWUzY2EzN2Q2YmE4ODFkMjU1MThjNGRiNjhiY2E2ZjdjODM2MDJmNjk5YTg2YjE3ZmIxZTc3M2JjYmU3NGJiOTNhNDliMjUxYWU4NjQyOGI1NzQwZTE4NjhiYjFkNmZhYjllMjg3MTJlOThlYzMxOWFkOGZjYTRkNzMwMTBjNGIwOWM0YjgwNDU4OTYxZTdjZjA4MzUzMDIwMzAxMDAwMWEzNTMzMDUxMzAxZDA2MDM1NTFkMGUwNDE2MDQxNDhhZWVlNTk0N2NjNjdjNWRkNTE1YTc2ZTJhN2VjZDMxZWU1MmZkYzgzMDFmMDYwMzU1MWQyMzA0MTgzMDE2ODAxNDhhZWVlNTk0N2NjNjdjNWRkNTE1YTc2ZTJhN2VjZDMxZWU1MmZkYzgzMDBmMDYwMzU1MWQxMzAxMDFmZjA0MDUzMDAzMDEwMWZmMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMDM4MjAxMDEwMDgyMWQ2Yjk4Y2Q0NTdkZWJkMmIwODFhY2EyN2ViZWNkNGY5M2FjYzgyODQ0M2IzOWVhYmZmYTlmYTRlOWU0NTQzYjQ2ZmNjMzFlMmI1YjQ4MTc3OTAzZGVhNjk2OWFjNGEyY2M2NTcwNjUwMzkwZjFiMDhkNDNhNGMyZjk3NWM3ZWQ4YmYzMzU2YzcyMTgzODAyMTI0NTFhOGYxMWRlNDY1NTNjYmNkNjViNDI1NGRkYjhmNjY4MzRlYjIxZGRhMmE4ZjMzYjU4MWUxNDg0NTU3YWNhMWI5NGVlODkzMWRkZjE2MDM3YjdhNzE3MTMyMWE5MTkzNmFmYzI3ZmZjZTM5NWRlNzVkNWY3MGNiOGI1YWVlMDVmZjUwNzA4OGQ2NWFmMWU0Mzk2NmNkNDJjYmU2ZjdmYWNmOGRhZTA1NWRkODIyMmIxNjk2NTIxNzIzZjgxMjQ1MTc4NTk1Yzk4NWFlOTE3ZmQ0YjM5OTg3NzNlMWE5N2I3YmQxMDA4NTQ0NmY0MjU5YmNjMDlhNDU0OTI5MjgyYzFiODliNzFlZDU4N2E3NzVlMGEzZDQ1MzYzNDFmNDVkYWU5NjllODA2Yzk2ZmVmYzcxMDY3Nzc2YzAyYmEyMjEyMmI5MTk5YjE0YzBjMjhjMDQ0ODc1MDkwNzBiOTdmM2RkMmQ2ZDk3MjczMzE4MjAxNzczMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwNWJlY2Q4NzE5NWMxZGVmZjkwYzI0YzkxMjY5YjU1YjNmMDY5YmMyMjVjMzI2YzMxNGMxYTUxNzg2ZmZlMTRjODMwYmU0ZTRiYzczY2JhMzZjOTc2NzdiNDQxNjgyNzliZTkxZTdjZGY3YzE5Mzg2YWUyMTg2MjcxOWQxM2EzYTBmZmYwODAzZDQ2MDk2MmYyY2RhODM3MTQ4NDg3MzI1MmMzZDcwNTRkYjgxNDNlMmIwODFhMzgxNmVkMDgwNGNhNTA5OWFlNWZlY2U4M2Q1YzJjMzc4M2IxOTg4YjRiNDZkYzk0ZTU1NTg3YTEwN2VhMTU0NmJmMjJkMjhhMDk3ZjY1MmE0MDY2ZGMyOTY1MjY5MDY5YWYyZjUxNzZiYjhjZTljYTZkMTFmOTY3NTdmMDMyMDRmNzU2NzAzNTg3ZDAwYWQ0MjQ3OTZjOTJmYzdhZWI2ZjQ5NDQzMTk5OWVkYTMwOTkwZTRmNTc3MzYzMmVkMjU4ZmUwMjc2NjczNTk5ZGE2ZmNlMzVjZGFkNzcyNmEwYmIwMjRjYWQ5OTZiODhlMGNiOTg4NTRjZWI1YzBiNmVjNzQ4ZDlmOWNlNmE2Y2Q0Mzc4NThiYWNiODE0NjE4YTI3MmZmM2E0MTVjNmUwN2YzZGIwOTg4Nzc3ZmRlYzg0NWE5N2JmN2QxMDJkZDAiCiAKIFBLQ1M3IFBhcnNlIEZhaWx1cmUgSW52YWxpZCBBU04xOiBDaGFuZ2UgbGVuZ3RoIGZyb20gMTMgdG8gMTQgIzE5Ny4wCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NgogcGtjczdfYXNuMV9mYWlsOiIzMDgyMDUwMDA2MDkyYTg2NDg4NmY3MGQwMTA3MDJhMDgyMDRmMTMwODIwNGVkMDIwMTAxMzEwZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGIwNjA5MmE4NjQ4ODZmNzBkMDEwNzAxYTA4MjAzNGQzMDgyMDM0OTMwODIwMjMxYTAwMzAyMDEwMjAyMTQ3YmRlZGRkMjQ0NGNkMWNkZmU1YzQxYTgxMDJjODliN2RmMmU2Y2JmMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMzAxZTE3MGQzMjMyMzEzMDMyMzgzMTM2MzEzMDM1MzY1YTE3MGQzMjMzMzEzMDMyMzgzMTM2MzEzMDM1MzY1YTMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTMwODIwMTIyMzAwZTA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDM4MjAxMGYwMDMwODIwMTBhMDI4MjAxMDEwMGM4YjZjZjY5ODk5Y2QxZjBlYmI0Y2E2NDVjMDVlNzBlMGQyZWZlZGRjYzYxZDA4OWNiZDUxNWEzOWEzNTc5YjkyMzQzYjYxZWM3NTAwNjBmYjRlZDM3ODc2MzMyNDAwZTQyNWYxZDM3NmM3ZTc1YzI5NzMzMTRlZGY0YmIzMGM4ZjhkZDAzYjlmY2ZmOTU1YTI0NWQ0OTEzN2FkNmU2MDA1NmNhYzE5NTUyYTg2NWQ1MjE4NzE4N2NjMDQyYzljNDllM2UzYTljMTdhNTM0YjQ1M2NkYWJjMGNiMTEzYjRmNjNmNWIzMTc0YjllZTk5MDJiMTkxMGQxMTQ5NmEyNzlhNzQzMjZhZGNmZWUxMGJmZDllN2ViYWZiYjM3N2JlOWI2Mzk1OTE2NWQxM2RkNTc1MTE3MWNhZGFkM2MxZDNhZGFjNjhiYzgwMTFkNjFiNTRjZjYwMTc4YmUzNjgzOWE4OWFjOTFhYjQxOWUzY2EzN2Q2YmE4ODFkMjU1MThjNGRiNjhiY2E2ZjdjODM2MDJmNjk5YTg2YjE3ZmIxZTc3M2JjYmU3NGJiOTNhNDliMjUxYWU4NjQyOGI1NzQwZTE4NjhiYjFkNmZhYjllMjg3MTJlOThlYzMxOWFkOGZjYTRkNzMwMTBjNGIwOWM0YjgwNDU4OTYxZTdjZjA4MzUzMDIwMzAxMDAwMWEzNTMzMDUxMzAxZDA2MDM1NTFkMGUwNDE2MDQxNDhhZWVlNTk0N2NjNjdjNWRkNTE1YTc2ZTJhN2VjZDMxZWU1MmZkYzgzMDFmMDYwMzU1MWQyMzA0MTgzMDE2ODAxNDhhZWVlNTk0N2NjNjdjNWRkNTE1YTc2ZTJhN2VjZDMxZWU1MmZkYzgzMDBmMDYwMzU1MWQxMzAxMDFmZjA0MDUzMDAzMDEwMWZmMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMDM4MjAxMDEwMDgyMWQ2Yjk4Y2Q0NTdkZWJkMmIwODFhY2EyN2ViZWNkNGY5M2FjYzgyODQ0M2IzOWVhYmZmYTlmYTRlOWU0NTQzYjQ2ZmNjMzFlMmI1YjQ4MTc3OTAzZGVhNjk2OWFjNGEyY2M2NTcwNjUwMzkwZjFiMDhkNDNhNGMyZjk3NWM3ZWQ4YmYzMzU2YzcyMTgzODAyMTI0NTFhOGYxMWRlNDY1NTNjYmNkNjViNDI1NGRkYjhmNjY4MzRlYjIxZGRhMmE4ZjMzYjU4MWUxNDg0NTU3YWNhMWI5NGVlODkzMWRkZjE2MDM3YjdhNzE3MTMyMWE5MTkzNmFmYzI3ZmZjZTM5NWRlNzVkNWY3MGNiOGI1YWVlMDVmZjUwNzA4OGQ2NWFmMWU0Mzk2NmNkNDJjYmU2ZjdmYWNmOGRhZTA1NWRkODIyMmIxNjk2NTIxNzIzZjgxMjQ1MTc4NTk1Yzk4NWFlOTE3ZmQ0YjM5OTg3NzNlMWE5N2I3YmQxMDA4NTQ0NmY0MjU5YmNjMDlhNDU0OTI5MjgyYzFiODliNzFlZDU4N2E3NzVlMGEzZDQ1MzYzNDFmNDVkYWU5NjllODA2Yzk2ZmVmYzcxMDY3Nzc2YzAyYmEyMjEyMmI5MTk5YjE0YzBjMjhjMDQ0ODc1MDkwNzBiOTdmM2RkMmQ2ZDk3MjczMzE4MjAxNzczMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwNWJlY2Q4NzE5NWMxZGVmZjkwYzI0YzkxMjY5YjU1YjNmMDY5YmMyMjVjMzI2YzMxNGMxYTUxNzg2ZmZlMTRjODMwYmU0ZTRiYzczY2JhMzZjOTc2NzdiNDQxNjgyNzliZTkxZTdjZGY3YzE5Mzg2YWUyMTg2MjcxOWQxM2EzYTBmZmYwODAzZDQ2MDk2MmYyY2RhODM3MTQ4NDg3MzI1MmMzZDcwNTRkYjgxNDNlMmIwODFhMzgxNmVkMDgwNGNhNTA5OWFlNWZlY2U4M2Q1YzJjMzc4M2IxOTg4YjRiNDZkYzk0ZTU1NTg3YTEwN2VhMTU0NmJmMjJkMjhhMDk3ZjY1MmE0MDY2ZGMyOTY1MjY5MDY5YWYyZjUxNzZiYjhjZTljYTZkMTFmOTY3NTdmMDMyMDRmNzU2NzAzNTg3ZDAwYWQ0MjQ3OTZjOTJmYzdhZWI2ZjQ5NDQzMTk5OWVkYTMwOTkwZTRmNTc3MzYzMmVkMjU4ZmUwMjc2NjczNTk5ZGE2ZmNlMzVjZGFkNzcyNmEwYmIwMjRjYWQ5OTZiODhlMGNiOTg4NTRjZWI1YzBiNmVjNzQ4ZDlmOWNlNmE2Y2Q0Mzc4NThiYWNiODE0NjE4YTI3MmZmM2E0MTVjNmUwN2YzZGIwOTg4Nzc3ZmRlYzg0NWE5N2JmN2QxMDJkZDAiCiAKIFBLQ1M3IFBhcnNlIEZhaWx1cmUgSW52YWxpZCBBU04xOiBDaGFuZ2UgY29udGVudHMgb2YgdGFnIDMwIHRvIGNvbnRhaW4gb25lIHVuYWNjb3VudGVkIGV4dHJhIGJ5dGUgIzE5OC4wCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NgogcGtjczdfYXNuMV9mYWlsOiIzMDgyMDUwMDA2MDkyYTg2NDg4NmY3MGQwMTA3MDJhMDgyMDRmMTMwODIwNGVkMDIwMTAxMzEwZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGIwNjA5MmE4NjQ4ODZmNzBkMDEwNzAxYTA4MjAzNGQzMDgyMDM0OTMwODIwMjMxYTAwMzAyMDEwMjAyMTQ3YmRlZGRkMjQ0NGNkMWNkZmU1YzQxYTgxMDJjODliN2RmMmU2Y2JmMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMzAxZTE3MGQzMjMyMzEzMDMyMzgzMTM2MzEzMDM1MzY1YTE3MGQzMjMzMzEzMDMyMzgzMTM2MzEzMDM1MzY1YTMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTMwODIwMTIyMzAwZTA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDAwMzgyMDEwZjAwMzA4MjAxMGEwMjgyMDEwMTAwYzhiNmNmNjk4OTljZDFmMGViYjRjYTY0NWMwNWU3MGUwZDJlZmVkZGNjNjFkMDg5Y2JkNTE1YTM5YTM1NzliOTIzNDNiNjFlYzc1MDA2MGZiNGVkMzc4NzYzMzI0MDBlNDI1ZjFkMzc2YzdlNzVjMjk3MzMxNGVkZjRiYjMwYzhmOGRkMDNiOWZjZmY5NTVhMjQ1ZDQ5MTM3YWQ2ZTYwMDU2Y2FjMTk1NTJhODY1ZDUyMTg3MTg3Y2MwNDJjOWM0OWUzZTNhOWMxN2E1MzRiNDUzY2RhYmMwY2IxMTNiNGY2M2Y1YjMxNzRiOWVlOTkwMmIxOTEwZDExNDk2YTI3OWE3NDMyNmFkY2ZlZTEwYmZkOWU3ZWJhZmJiMzc3YmU5YjYzOTU5MTY1ZDEzZGQ1NzUxMTcxY2FkYWQzYzFkM2FkYWM2OGJjODAxMWQ2MWI1NGNmNjAxNzhiZTM2ODM5YTg5YWM5MWFiNDE5ZTNjYTM3ZDZiYTg4MWQyNTUxOGM0ZGI2OGJjYTZmN2M4MzYwMmY2OTlhODZiMTdmYjFlNzczYmNiZTc0YmI5M2E0OWIyNTFhZTg2NDI4YjU3NDBlMTg2OGJiMWQ2ZmFiOWUyODcxMmU5OGVjMzE5YWQ4ZmNhNGQ3MzAxMGM0YjA5YzRiODA0NTg5NjFlN2NmMDgzNTMwMjAzMDEwMDAxYTM1MzMwNTEzMDFkMDYwMzU1MWQwZTA0MTYwNDE0OGFlZWU1OTQ3Y2M2N2M1ZGQ1MTVhNzZlMmE3ZWNkMzFlZTUyZmRjODMwMWYwNjAzNTUxZDIzMDQxODMwMTY4MDE0OGFlZWU1OTQ3Y2M2N2M1ZGQ1MTVhNzZlMmE3ZWNkMzFlZTUyZmRjODMwMGYwNjAzNTUxZDEzMDEwMWZmMDQwNTMwMDMwMTAxZmYzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAwMzgyMDEwMTAwODIxZDZiOThjZDQ1N2RlYmQyYjA4MWFjYTI3ZWJlY2Q0ZjkzYWNjODI4NDQzYjM5ZWFiZmZhOWZhNGU5ZTQ1NDNiNDZmY2MzMWUyYjViNDgxNzc5MDNkZWE2OTY5YWM0YTJjYzY1NzA2NTAzOTBmMWIwOGQ0M2E0YzJmOTc1YzdlZDhiZjMzNTZjNzIxODM4MDIxMjQ1MWE4ZjExZGU0NjU1M2NiY2Q2NWI0MjU0ZGRiOGY2NjgzNGViMjFkZGEyYThmMzNiNTgxZTE0ODQ1NTdhY2ExYjk0ZWU4OTMxZGRmMTYwMzdiN2E3MTcxMzIxYTkxOTM2YWZjMjdmZmNlMzk1ZGU3NWQ1ZjcwY2I4YjVhZWUwNWZmNTA3MDg4ZDY1YWYxZTQzOTY2Y2Q0MmNiZTZmN2ZhY2Y4ZGFlMDU1ZGQ4MjIyYjE2OTY1MjE3MjNmODEyNDUxNzg1OTVjOTg1YWU5MTdmZDRiMzk5ODc3M2UxYTk3YjdiZDEwMDg1NDQ2ZjQyNTliY2MwOWE0NTQ5MjkyODJjMWI4OWI3MWVkNTg3YTc3NWUwYTNkNDUzNjM0MWY0NWRhZTk2OWU4MDZjOTZmZWZjNzEwNjc3NzZjMDJiYTIyMTIyYjkxOTliMTRjMGMyOGMwNDQ4NzUwOTA3MGI5N2YzZGQyZDZkOTcyNzMzMTgyMDE3NzMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTAyMTQ3YmRlZGRkMjQ0NGNkMWNkZmU1YzQxYTgxMDJjODliN2RmMmU2Y2JmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDA1YmVjZDg3MTk1YzFkZWZmOTBjMjRjOTEyNjliNTViM2YwNjliYzIyNWMzMjZjMzE0YzFhNTE3ODZmZmUxNGM4MzBiZTRlNGJjNzNjYmEzNmM5NzY3N2I0NDE2ODI3OWJlOTFlN2NkZjdjMTkzODZhZTIxODYyNzE5ZDEzYTNhMGZmZjA4MDNkNDYwOTYyZjJjZGE4MzcxNDg0ODczMjUyYzNkNzA1NGRiODE0M2UyYjA4MWEzODE2ZWQwODA0Y2E1MDk5YWU1ZmVjZTgzZDVjMmMzNzgzYjE5ODhiNGI0NmRjOTRlNTU1ODdhMTA3ZWExNTQ2YmYyMmQyOGEwOTdmNjUyYTQwNjZkYzI5NjUyNjkwNjlhZjJmNTE3NmJiOGNlOWNhNmQxMWY5Njc1N2YwMzIwNGY3NTY3MDM1ODdkMDBhZDQyNDc5NmM5MmZjN2FlYjZmNDk0NDMxOTk5ZWRhMzA5OTBlNGY1NzczNjMyZWQyNThmZTAyNzY2NzM1OTlkYTZmY2UzNWNkYWQ3NzI2YTBiYjAyNGNhZDk5NmI4OGUwY2I5ODg1NGNlYjVjMGI2ZWM3NDhkOWY5Y2U2YTZjZDQzNzg1OGJhY2I4MTQ2MThhMjcyZmYzYTQxNWM2ZTA3ZjNkYjA5ODg3NzdmZGVjODQ1YTk3YmY3ZDEwMmRkMCIKIAogUEtDUzcgUGFyc2UgRmFpbHVyZSBJbnZhbGlkIEFTTjE6IENoYW5nZSBsZW5ndGggZnJvbSAxMyB0byAxMiAjMTk5LjAKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBwa2NzN19hc24xX2ZhaWw6IjMwODIwNTAwMDYwOTJhODY0ODg2ZjcwZDAxMDcwMmEwODIwNGYxMzA4MjA0ZWQwMjAxMDEzMTBmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwYjA2MDkyYTg2NDg4NmY3MGQwMTA3MDFhMDgyMDM0ZDMwODIwMzQ5MzA4MjAyMzFhMDAzMDIwMTAyMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEzMDFlMTcwZDMyMzIzMTMwMzIzODMxMzYzMTMwMzUzNjVhMTcwZDMyMzMzMTMwMzIzODMxMzYzMTMwMzUzNjVhMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMzA4MjAxMjIzMDBjMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwMzgyMDEwZjAwMzA4MjAxMGEwMjgyMDEwMTAwYzhiNmNmNjk4OTljZDFmMGViYjRjYTY0NWMwNWU3MGUwZDJlZmVkZGNjNjFkMDg5Y2JkNTE1YTM5YTM1NzliOTIzNDNiNjFlYzc1MDA2MGZiNGVkMzc4NzYzMzI0MDBlNDI1ZjFkMzc2YzdlNzVjMjk3MzMxNGVkZjRiYjMwYzhmOGRkMDNiOWZjZmY5NTVhMjQ1ZDQ5MTM3YWQ2ZTYwMDU2Y2FjMTk1NTJhODY1ZDUyMTg3MTg3Y2MwNDJjOWM0OWUzZTNhOWMxN2E1MzRiNDUzY2RhYmMwY2IxMTNiNGY2M2Y1YjMxNzRiOWVlOTkwMmIxOTEwZDExNDk2YTI3OWE3NDMyNmFkY2ZlZTEwYmZkOWU3ZWJhZmJiMzc3YmU5YjYzOTU5MTY1ZDEzZGQ1NzUxMTcxY2FkYWQzYzFkM2FkYWM2OGJjODAxMWQ2MWI1NGNmNjAxNzhiZTM2ODM5YTg5YWM5MWFiNDE5ZTNjYTM3ZDZiYTg4MWQyNTUxOGM0ZGI2OGJjYTZmN2M4MzYwMmY2OTlhODZiMTdmYjFlNzczYmNiZTc0YmI5M2E0OWIyNTFhZTg2NDI4YjU3NDBlMTg2OGJiMWQ2ZmFiOWUyODcxMmU5OGVjMzE5YWQ4ZmNhNGQ3MzAxMGM0YjA5YzRiODA0NTg5NjFlN2NmMDgzNTMwMjAzMDEwMDAxYTM1MzMwNTEzMDFkMDYwMzU1MWQwZTA0MTYwNDE0OGFlZWU1OTQ3Y2M2N2M1ZGQ1MTVhNzZlMmE3ZWNkMzFlZTUyZmRjODMwMWYwNjAzNTUxZDIzMDQxODMwMTY4MDE0OGFlZWU1OTQ3Y2M2N2M1ZGQ1MTVhNzZlMmE3ZWNkMzFlZTUyZmRjODMwMGYwNjAzNTUxZDEzMDEwMWZmMDQwNTMwMDMwMTAxZmYzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAwMzgyMDEwMTAwODIxZDZiOThjZDQ1N2RlYmQyYjA4MWFjYTI3ZWJlY2Q0ZjkzYWNjODI4NDQzYjM5ZWFiZmZhOWZhNGU5ZTQ1NDNiNDZmY2MzMWUyYjViNDgxNzc5MDNkZWE2OTY5YWM0YTJjYzY1NzA2NTAzOTBmMWIwOGQ0M2E0YzJmOTc1YzdlZDhiZjMzNTZjNzIxODM4MDIxMjQ1MWE4ZjExZGU0NjU1M2NiY2Q2NWI0MjU0ZGRiOGY2NjgzNGViMjFkZGEyYThmMzNiNTgxZTE0ODQ1NTdhY2ExYjk0ZWU4OTMxZGRmMTYwMzdiN2E3MTcxMzIxYTkxOTM2YWZjMjdmZmNlMzk1ZGU3NWQ1ZjcwY2I4YjVhZWUwNWZmNTA3MDg4ZDY1YWYxZTQzOTY2Y2Q0MmNiZTZmN2ZhY2Y4ZGFlMDU1ZGQ4MjIyYjE2OTY1MjE3MjNmODEyNDUxNzg1OTVjOTg1YWU5MTdmZDRiMzk5ODc3M2UxYTk3YjdiZDEwMDg1NDQ2ZjQyNTliY2MwOWE0NTQ5MjkyODJjMWI4OWI3MWVkNTg3YTc3NWUwYTNkNDUzNjM0MWY0NWRhZTk2OWU4MDZjOTZmZWZjNzEwNjc3NzZjMDJiYTIyMTIyYjkxOTliMTRjMGMyOGMwNDQ4NzUwOTA3MGI5N2YzZGQyZDZkOTcyNzMzMTgyMDE3NzMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTAyMTQ3YmRlZGRkMjQ0NGNkMWNkZmU1YzQxYTgxMDJjODliN2RmMmU2Y2JmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDA1YmVjZDg3MTk1YzFkZWZmOTBjMjRjOTEyNjliNTViM2YwNjliYzIyNWMzMjZjMzE0YzFhNTE3ODZmZmUxNGM4MzBiZTRlNGJjNzNjYmEzNmM5NzY3N2I0NDE2ODI3OWJlOTFlN2NkZjdjMTkzODZhZTIxODYyNzE5ZDEzYTNhMGZmZjA4MDNkNDYwOTYyZjJjZGE4MzcxNDg0ODczMjUyYzNkNzA1NGRiODE0M2UyYjA4MWEzODE2ZWQwODA0Y2E1MDk5YWU1ZmVjZTgzZDVjMmMzNzgzYjE5ODhiNGI0NmRjOTRlNTU1ODdhMTA3ZWExNTQ2YmYyMmQyOGEwOTdmNjUyYTQwNjZkYzI5NjUyNjkwNjlhZjJmNTE3NmJiOGNlOWNhNmQxMWY5Njc1N2YwMzIwNGY3NTY3MDM1ODdkMDBhZDQyNDc5NmM5MmZjN2FlYjZmNDk0NDMxOTk5ZWRhMzA5OTBlNGY1NzczNjMyZWQyNThmZTAyNzY2NzM1OTlkYTZmY2UzNWNkYWQ3NzI2YTBiYjAyNGNhZDk5NmI4OGUwY2I5ODg1NGNlYjVjMGI2ZWM3NDhkOWY5Y2U2YTZjZDQzNzg1OGJhY2I4MTQ2MThhMjcyZmYzYTQxNWM2ZTA3ZjNkYjA5ODg3NzdmZGVjODQ1YTk3YmY3ZDEwMmRkMCIKIAogUEtDUzcgUGFyc2UgRmFpbHVyZSBJbnZhbGlkIEFTTjE6IENoYW5nZSB0YWcgMDYgdG8gMDIgIzIwMC4wCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NgogcGtjczdfYXNuMV9mYWlsOiIzMDgyMDUwMDA2MDkyYTg2NDg4NmY3MGQwMTA3MDJhMDgyMDRmMTMwODIwNGVkMDIwMTAxMzEwZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGIwNjA5MmE4NjQ4ODZmNzBkMDEwNzAxYTA4MjAzNGQzMDgyMDM0OTMwODIwMjMxYTAwMzAyMDEwMjAyMTQ3YmRlZGRkMjQ0NGNkMWNkZmU1YzQxYTgxMDJjODliN2RmMmU2Y2JmMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMzAxZTE3MGQzMjMyMzEzMDMyMzgzMTM2MzEzMDM1MzY1YTE3MGQzMjMzMzEzMDMyMzgzMTM2MzEzMDM1MzY1YTMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTMwODIwMTIyMzAwZDAyMDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDM4MjAxMGYwMDMwODIwMTBhMDI4MjAxMDEwMGM4YjZjZjY5ODk5Y2QxZjBlYmI0Y2E2NDVjMDVlNzBlMGQyZWZlZGRjYzYxZDA4OWNiZDUxNWEzOWEzNTc5YjkyMzQzYjYxZWM3NTAwNjBmYjRlZDM3ODc2MzMyNDAwZTQyNWYxZDM3NmM3ZTc1YzI5NzMzMTRlZGY0YmIzMGM4ZjhkZDAzYjlmY2ZmOTU1YTI0NWQ0OTEzN2FkNmU2MDA1NmNhYzE5NTUyYTg2NWQ1MjE4NzE4N2NjMDQyYzljNDllM2UzYTljMTdhNTM0YjQ1M2NkYWJjMGNiMTEzYjRmNjNmNWIzMTc0YjllZTk5MDJiMTkxMGQxMTQ5NmEyNzlhNzQzMjZhZGNmZWUxMGJmZDllN2ViYWZiYjM3N2JlOWI2Mzk1OTE2NWQxM2RkNTc1MTE3MWNhZGFkM2MxZDNhZGFjNjhiYzgwMTFkNjFiNTRjZjYwMTc4YmUzNjgzOWE4OWFjOTFhYjQxOWUzY2EzN2Q2YmE4ODFkMjU1MThjNGRiNjhiY2E2ZjdjODM2MDJmNjk5YTg2YjE3ZmIxZTc3M2JjYmU3NGJiOTNhNDliMjUxYWU4NjQyOGI1NzQwZTE4NjhiYjFkNmZhYjllMjg3MTJlOThlYzMxOWFkOGZjYTRkNzMwMTBjNGIwOWM0YjgwNDU4OTYxZTdjZjA4MzUzMDIwMzAxMDAwMWEzNTMzMDUxMzAxZDA2MDM1NTFkMGUwNDE2MDQxNDhhZWVlNTk0N2NjNjdjNWRkNTE1YTc2ZTJhN2VjZDMxZWU1MmZkYzgzMDFmMDYwMzU1MWQyMzA0MTgzMDE2ODAxNDhhZWVlNTk0N2NjNjdjNWRkNTE1YTc2ZTJhN2VjZDMxZWU1MmZkYzgzMDBmMDYwMzU1MWQxMzAxMDFmZjA0MDUzMDAzMDEwMWZmMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMDM4MjAxMDEwMDgyMWQ2Yjk4Y2Q0NTdkZWJkMmIwODFhY2EyN2ViZWNkNGY5M2FjYzgyODQ0M2IzOWVhYmZmYTlmYTRlOWU0NTQzYjQ2ZmNjMzFlMmI1YjQ4MTc3OTAzZGVhNjk2OWFjNGEyY2M2NTcwNjUwMzkwZjFiMDhkNDNhNGMyZjk3NWM3ZWQ4YmYzMzU2YzcyMTgzODAyMTI0NTFhOGYxMWRlNDY1NTNjYmNkNjViNDI1NGRkYjhmNjY4MzRlYjIxZGRhMmE4ZjMzYjU4MWUxNDg0NTU3YWNhMWI5NGVlODkzMWRkZjE2MDM3YjdhNzE3MTMyMWE5MTkzNmFmYzI3ZmZjZTM5NWRlNzVkNWY3MGNiOGI1YWVlMDVmZjUwNzA4OGQ2NWFmMWU0Mzk2NmNkNDJjYmU2ZjdmYWNmOGRhZTA1NWRkODIyMmIxNjk2NTIxNzIzZjgxMjQ1MTc4NTk1Yzk4NWFlOTE3ZmQ0YjM5OTg3NzNlMWE5N2I3YmQxMDA4NTQ0NmY0MjU5YmNjMDlhNDU0OTI5MjgyYzFiODliNzFlZDU4N2E3NzVlMGEzZDQ1MzYzNDFmNDVkYWU5NjllODA2Yzk2ZmVmYzcxMDY3Nzc2YzAyYmEyMjEyMmI5MTk5YjE0YzBjMjhjMDQ0ODc1MDkwNzBiOTdmM2RkMmQ2ZDk3MjczMzE4MjAxNzczMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwNWJlY2Q4NzE5NWMxZGVmZjkwYzI0YzkxMjY5YjU1YjNmMDY5YmMyMjVjMzI2YzMxNGMxYTUxNzg2ZmZlMTRjODMwYmU0ZTRiYzczY2JhMzZjOTc2NzdiNDQxNjgyNzliZTkxZTdjZGY3YzE5Mzg2YWUyMTg2MjcxOWQxM2EzYTBmZmYwODAzZDQ2MDk2MmYyY2RhODM3MTQ4NDg3MzI1MmMzZDcwNTRkYjgxNDNlMmIwODFhMzgxNmVkMDgwNGNhNTA5OWFlNWZlY2U4M2Q1YzJjMzc4M2IxOTg4YjRiNDZkYzk0ZTU1NTg3YTEwN2VhMTU0NmJmMjJkMjhhMDk3ZjY1MmE0MDY2ZGMyOTY1MjY5MDY5YWYyZjUxNzZiYjhjZTljYTZkMTFmOTY3NTdmMDMyMDRmNzU2NzAzNTg3ZDAwYWQ0MjQ3OTZjOTJmYzdhZWI2ZjQ5NDQzMTk5OWVkYTMwOTkwZTRmNTc3MzYzMmVkMjU4ZmUwMjc2NjczNTk5ZGE2ZmNlMzVjZGFkNzcyNmEwYmIwMjRjYWQ5OTZiODhlMGNiOTg4NTRjZWI1YzBiNmVjNzQ4ZDlmOWNlNmE2Y2Q0Mzc4NThiYWNiODE0NjE4YTI3MmZmM2E0MTVjNmUwN2YzZGIwOTg4Nzc3ZmRlYzg0NWE5N2JmN2QxMDJkZDAiCiAKIFBLQ1M3IFBhcnNlIEZhaWx1cmUgSW52YWxpZCBBU04xOiBDaGFuZ2UgbGVuZ3RoIGZyb20gOSB0byAxMCAjMjAxLjAKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBwa2NzN19hc24xX2ZhaWw6IjMwODIwNTAwMDYwOTJhODY0ODg2ZjcwZDAxMDcwMmEwODIwNGYxMzA4MjA0ZWQwMjAxMDEzMTBmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwYjA2MDkyYTg2NDg4NmY3MGQwMTA3MDFhMDgyMDM0ZDMwODIwMzQ5MzA4MjAyMzFhMDAzMDIwMTAyMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEzMDFlMTcwZDMyMzIzMTMwMzIzODMxMzYzMTMwMzUzNjVhMTcwZDMyMzMzMTMwMzIzODMxMzYzMTMwMzUzNjVhMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMzA4MjAxMjIzMDBkMDYwYTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwMzgyMDEwZjAwMzA4MjAxMGEwMjgyMDEwMTAwYzhiNmNmNjk4OTljZDFmMGViYjRjYTY0NWMwNWU3MGUwZDJlZmVkZGNjNjFkMDg5Y2JkNTE1YTM5YTM1NzliOTIzNDNiNjFlYzc1MDA2MGZiNGVkMzc4NzYzMzI0MDBlNDI1ZjFkMzc2YzdlNzVjMjk3MzMxNGVkZjRiYjMwYzhmOGRkMDNiOWZjZmY5NTVhMjQ1ZDQ5MTM3YWQ2ZTYwMDU2Y2FjMTk1NTJhODY1ZDUyMTg3MTg3Y2MwNDJjOWM0OWUzZTNhOWMxN2E1MzRiNDUzY2RhYmMwY2IxMTNiNGY2M2Y1YjMxNzRiOWVlOTkwMmIxOTEwZDExNDk2YTI3OWE3NDMyNmFkY2ZlZTEwYmZkOWU3ZWJhZmJiMzc3YmU5YjYzOTU5MTY1ZDEzZGQ1NzUxMTcxY2FkYWQzYzFkM2FkYWM2OGJjODAxMWQ2MWI1NGNmNjAxNzhiZTM2ODM5YTg5YWM5MWFiNDE5ZTNjYTM3ZDZiYTg4MWQyNTUxOGM0ZGI2OGJjYTZmN2M4MzYwMmY2OTlhODZiMTdmYjFlNzczYmNiZTc0YmI5M2E0OWIyNTFhZTg2NDI4YjU3NDBlMTg2OGJiMWQ2ZmFiOWUyODcxMmU5OGVjMzE5YWQ4ZmNhNGQ3MzAxMGM0YjA5YzRiODA0NTg5NjFlN2NmMDgzNTMwMjAzMDEwMDAxYTM1MzMwNTEzMDFkMDYwMzU1MWQwZTA0MTYwNDE0OGFlZWU1OTQ3Y2M2N2M1ZGQ1MTVhNzZlMmE3ZWNkMzFlZTUyZmRjODMwMWYwNjAzNTUxZDIzMDQxODMwMTY4MDE0OGFlZWU1OTQ3Y2M2N2M1ZGQ1MTVhNzZlMmE3ZWNkMzFlZTUyZmRjODMwMGYwNjAzNTUxZDEzMDEwMWZmMDQwNTMwMDMwMTAxZmYzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAwMzgyMDEwMTAwODIxZDZiOThjZDQ1N2RlYmQyYjA4MWFjYTI3ZWJlY2Q0ZjkzYWNjODI4NDQzYjM5ZWFiZmZhOWZhNGU5ZTQ1NDNiNDZmY2MzMWUyYjViNDgxNzc5MDNkZWE2OTY5YWM0YTJjYzY1NzA2NTAzOTBmMWIwOGQ0M2E0YzJmOTc1YzdlZDhiZjMzNTZjNzIxODM4MDIxMjQ1MWE4ZjExZGU0NjU1M2NiY2Q2NWI0MjU0ZGRiOGY2NjgzNGViMjFkZGEyYThmMzNiNTgxZTE0ODQ1NTdhY2ExYjk0ZWU4OTMxZGRmMTYwMzdiN2E3MTcxMzIxYTkxOTM2YWZjMjdmZmNlMzk1ZGU3NWQ1ZjcwY2I4YjVhZWUwNWZmNTA3MDg4ZDY1YWYxZTQzOTY2Y2Q0MmNiZTZmN2ZhY2Y4ZGFlMDU1ZGQ4MjIyYjE2OTY1MjE3MjNmODEyNDUxNzg1OTVjOTg1YWU5MTdmZDRiMzk5ODc3M2UxYTk3YjdiZDEwMDg1NDQ2ZjQyNTliY2MwOWE0NTQ5MjkyODJjMWI4OWI3MWVkNTg3YTc3NWUwYTNkNDUzNjM0MWY0NWRhZTk2OWU4MDZjOTZmZWZjNzEwNjc3NzZjMDJiYTIyMTIyYjkxOTliMTRjMGMyOGMwNDQ4NzUwOTA3MGI5N2YzZGQyZDZkOTcyNzMzMTgyMDE3NzMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTAyMTQ3YmRlZGRkMjQ0NGNkMWNkZmU1YzQxYTgxMDJjODliN2RmMmU2Y2JmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDA1YmVjZDg3MTk1YzFkZWZmOTBjMjRjOTEyNjliNTViM2YwNjliYzIyNWMzMjZjMzE0YzFhNTE3ODZmZmUxNGM4MzBiZTRlNGJjNzNjYmEzNmM5NzY3N2I0NDE2ODI3OWJlOTFlN2NkZjdjMTkzODZhZTIxODYyNzE5ZDEzYTNhMGZmZjA4MDNkNDYwOTYyZjJjZGE4MzcxNDg0ODczMjUyYzNkNzA1NGRiODE0M2UyYjA4MWEzODE2ZWQwODA0Y2E1MDk5YWU1ZmVjZTgzZDVjMmMzNzgzYjE5ODhiNGI0NmRjOTRlNTU1ODdhMTA3ZWExNTQ2YmYyMmQyOGEwOTdmNjUyYTQwNjZkYzI5NjUyNjkwNjlhZjJmNTE3NmJiOGNlOWNhNmQxMWY5Njc1N2YwMzIwNGY3NTY3MDM1ODdkMDBhZDQyNDc5NmM5MmZjN2FlYjZmNDk0NDMxOTk5ZWRhMzA5OTBlNGY1NzczNjMyZWQyNThmZTAyNzY2NzM1OTlkYTZmY2UzNWNkYWQ3NzI2YTBiYjAyNGNhZDk5NmI4OGUwY2I5ODg1NGNlYjVjMGI2ZWM3NDhkOWY5Y2U2YTZjZDQzNzg1OGJhY2I4MTQ2MThhMjcyZmYzYTQxNWM2ZTA3ZjNkYjA5ODg3NzdmZGVjODQ1YTk3YmY3ZDEwMmRkMCIKIAogUEtDUzcgUGFyc2UgRmFpbHVyZSBJbnZhbGlkIEFTTjE6IENoYW5nZSBsZW5ndGggZnJvbSA5IHRvIDggIzIwMi4wCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NgogcGtjczdfYXNuMV9mYWlsOiIzMDgyMDUwMDA2MDkyYTg2NDg4NmY3MGQwMTA3MDJhMDgyMDRmMTMwODIwNGVkMDIwMTAxMzEwZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGIwNjA5MmE4NjQ4ODZmNzBkMDEwNzAxYTA4MjAzNGQzMDgyMDM0OTMwODIwMjMxYTAwMzAyMDEwMjAyMTQ3YmRlZGRkMjQ0NGNkMWNkZmU1YzQxYTgxMDJjODliN2RmMmU2Y2JmMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMzAxZTE3MGQzMjMyMzEzMDMyMzgzMTM2MzEzMDM1MzY1YTE3MGQzMjMzMzEzMDMyMzgzMTM2MzEzMDM1MzY1YTMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTMwODIwMTIyMzAwZDA2MDgyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDM4MjAxMGYwMDMwODIwMTBhMDI4MjAxMDEwMGM4YjZjZjY5ODk5Y2QxZjBlYmI0Y2E2NDVjMDVlNzBlMGQyZWZlZGRjYzYxZDA4OWNiZDUxNWEzOWEzNTc5YjkyMzQzYjYxZWM3NTAwNjBmYjRlZDM3ODc2MzMyNDAwZTQyNWYxZDM3NmM3ZTc1YzI5NzMzMTRlZGY0YmIzMGM4ZjhkZDAzYjlmY2ZmOTU1YTI0NWQ0OTEzN2FkNmU2MDA1NmNhYzE5NTUyYTg2NWQ1MjE4NzE4N2NjMDQyYzljNDllM2UzYTljMTdhNTM0YjQ1M2NkYWJjMGNiMTEzYjRmNjNmNWIzMTc0YjllZTk5MDJiMTkxMGQxMTQ5NmEyNzlhNzQzMjZhZGNmZWUxMGJmZDllN2ViYWZiYjM3N2JlOWI2Mzk1OTE2NWQxM2RkNTc1MTE3MWNhZGFkM2MxZDNhZGFjNjhiYzgwMTFkNjFiNTRjZjYwMTc4YmUzNjgzOWE4OWFjOTFhYjQxOWUzY2EzN2Q2YmE4ODFkMjU1MThjNGRiNjhiY2E2ZjdjODM2MDJmNjk5YTg2YjE3ZmIxZTc3M2JjYmU3NGJiOTNhNDliMjUxYWU4NjQyOGI1NzQwZTE4NjhiYjFkNmZhYjllMjg3MTJlOThlYzMxOWFkOGZjYTRkNzMwMTBjNGIwOWM0YjgwNDU4OTYxZTdjZjA4MzUzMDIwMzAxMDAwMWEzNTMzMDUxMzAxZDA2MDM1NTFkMGUwNDE2MDQxNDhhZWVlNTk0N2NjNjdjNWRkNTE1YTc2ZTJhN2VjZDMxZWU1MmZkYzgzMDFmMDYwMzU1MWQyMzA0MTgzMDE2ODAxNDhhZWVlNTk0N2NjNjdjNWRkNTE1YTc2ZTJhN2VjZDMxZWU1MmZkYzgzMDBmMDYwMzU1MWQxMzAxMDFmZjA0MDUzMDAzMDEwMWZmMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMDM4MjAxMDEwMDgyMWQ2Yjk4Y2Q0NTdkZWJkMmIwODFhY2EyN2ViZWNkNGY5M2FjYzgyODQ0M2IzOWVhYmZmYTlmYTRlOWU0NTQzYjQ2ZmNjMzFlMmI1YjQ4MTc3OTAzZGVhNjk2OWFjNGEyY2M2NTcwNjUwMzkwZjFiMDhkNDNhNGMyZjk3NWM3ZWQ4YmYzMzU2YzcyMTgzODAyMTI0NTFhOGYxMWRlNDY1NTNjYmNkNjViNDI1NGRkYjhmNjY4MzRlYjIxZGRhMmE4ZjMzYjU4MWUxNDg0NTU3YWNhMWI5NGVlODkzMWRkZjE2MDM3YjdhNzE3MTMyMWE5MTkzNmFmYzI3ZmZjZTM5NWRlNzVkNWY3MGNiOGI1YWVlMDVmZjUwNzA4OGQ2NWFmMWU0Mzk2NmNkNDJjYmU2ZjdmYWNmOGRhZTA1NWRkODIyMmIxNjk2NTIxNzIzZjgxMjQ1MTc4NTk1Yzk4NWFlOTE3ZmQ0YjM5OTg3NzNlMWE5N2I3YmQxMDA4NTQ0NmY0MjU5YmNjMDlhNDU0OTI5MjgyYzFiODliNzFlZDU4N2E3NzVlMGEzZDQ1MzYzNDFmNDVkYWU5NjllODA2Yzk2ZmVmYzcxMDY3Nzc2YzAyYmEyMjEyMmI5MTk5YjE0YzBjMjhjMDQ0ODc1MDkwNzBiOTdmM2RkMmQ2ZDk3MjczMzE4MjAxNzczMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwNWJlY2Q4NzE5NWMxZGVmZjkwYzI0YzkxMjY5YjU1YjNmMDY5YmMyMjVjMzI2YzMxNGMxYTUxNzg2ZmZlMTRjODMwYmU0ZTRiYzczY2JhMzZjOTc2NzdiNDQxNjgyNzliZTkxZTdjZGY3YzE5Mzg2YWUyMTg2MjcxOWQxM2EzYTBmZmYwODAzZDQ2MDk2MmYyY2RhODM3MTQ4NDg3MzI1MmMzZDcwNTRkYjgxNDNlMmIwODFhMzgxNmVkMDgwNGNhNTA5OWFlNWZlY2U4M2Q1YzJjMzc4M2IxOTg4YjRiNDZkYzk0ZTU1NTg3YTEwN2VhMTU0NmJmMjJkMjhhMDk3ZjY1MmE0MDY2ZGMyOTY1MjY5MDY5YWYyZjUxNzZiYjhjZTljYTZkMTFmOTY3NTdmMDMyMDRmNzU2NzAzNTg3ZDAwYWQ0MjQ3OTZjOTJmYzdhZWI2ZjQ5NDQzMTk5OWVkYTMwOTkwZTRmNTc3MzYzMmVkMjU4ZmUwMjc2NjczNTk5ZGE2ZmNlMzVjZGFkNzcyNmEwYmIwMjRjYWQ5OTZiODhlMGNiOTg4NTRjZWI1YzBiNmVjNzQ4ZDlmOWNlNmE2Y2Q0Mzc4NThiYWNiODE0NjE4YTI3MmZmM2E0MTVjNmUwN2YzZGIwOTg4Nzc3ZmRlYzg0NWE5N2JmN2QxMDJkZDAiCiAKIFBLQ1M3IFBhcnNlIEZhaWx1cmUgSW52YWxpZCBBU04xOiBDaGFuZ2UgdGFnIDA1IHRvIDAyICMyMDMuMAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHBrY3M3X2FzbjFfZmFpbDoiMzA4MjA1MDAwNjA5MmE4NjQ4ODZmNzBkMDEwNzAyYTA4MjA0ZjEzMDgyMDRlZDAyMDEwMTMxMGYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBiMDYwOTJhODY0ODg2ZjcwZDAxMDcwMWEwODIwMzRkMzA4MjAzNDkzMDgyMDIzMWEwMDMwMjAxMDIwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTMwMWUxNzBkMzIzMjMxMzAzMjM4MzEzNjMxMzAzNTM2NWExNzBkMzIzMzMxMzAzMjM4MzEzNjMxMzAzNTM2NWEzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEzMDgyMDEyMjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDIwMDAzODIwMTBmMDAzMDgyMDEwYTAyODIwMTAxMDBjOGI2Y2Y2OTg5OWNkMWYwZWJiNGNhNjQ1YzA1ZTcwZTBkMmVmZWRkY2M2MWQwODljYmQ1MTVhMzlhMzU3OWI5MjM0M2I2MWVjNzUwMDYwZmI0ZWQzNzg3NjMzMjQwMGU0MjVmMWQzNzZjN2U3NWMyOTczMzE0ZWRmNGJiMzBjOGY4ZGQwM2I5ZmNmZjk1NWEyNDVkNDkxMzdhZDZlNjAwNTZjYWMxOTU1MmE4NjVkNTIxODcxODdjYzA0MmM5YzQ5ZTNlM2E5YzE3YTUzNGI0NTNjZGFiYzBjYjExM2I0ZjYzZjViMzE3NGI5ZWU5OTAyYjE5MTBkMTE0OTZhMjc5YTc0MzI2YWRjZmVlMTBiZmQ5ZTdlYmFmYmIzNzdiZTliNjM5NTkxNjVkMTNkZDU3NTExNzFjYWRhZDNjMWQzYWRhYzY4YmM4MDExZDYxYjU0Y2Y2MDE3OGJlMzY4MzlhODlhYzkxYWI0MTllM2NhMzdkNmJhODgxZDI1NTE4YzRkYjY4YmNhNmY3YzgzNjAyZjY5OWE4NmIxN2ZiMWU3NzNiY2JlNzRiYjkzYTQ5YjI1MWFlODY0MjhiNTc0MGUxODY4YmIxZDZmYWI5ZTI4NzEyZTk4ZWMzMTlhZDhmY2E0ZDczMDEwYzRiMDljNGI4MDQ1ODk2MWU3Y2YwODM1MzAyMDMwMTAwMDFhMzUzMzA1MTMwMWQwNjAzNTUxZDBlMDQxNjA0MTQ4YWVlZTU5NDdjYzY3YzVkZDUxNWE3NmUyYTdlY2QzMWVlNTJmZGM4MzAxZjA2MDM1NTFkMjMwNDE4MzAxNjgwMTQ4YWVlZTU5NDdjYzY3YzVkZDUxNWE3NmUyYTdlY2QzMWVlNTJmZGM4MzAwZjA2MDM1NTFkMTMwMTAxZmYwNDA1MzAwMzAxMDFmZjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDAzODIwMTAxMDA4MjFkNmI5OGNkNDU3ZGViZDJiMDgxYWNhMjdlYmVjZDRmOTNhY2M4Mjg0NDNiMzllYWJmZmE5ZmE0ZTllNDU0M2I0NmZjYzMxZTJiNWI0ODE3NzkwM2RlYTY5NjlhYzRhMmNjNjU3MDY1MDM5MGYxYjA4ZDQzYTRjMmY5NzVjN2VkOGJmMzM1NmM3MjE4MzgwMjEyNDUxYThmMTFkZTQ2NTUzY2JjZDY1YjQyNTRkZGI4ZjY2ODM0ZWIyMWRkYTJhOGYzM2I1ODFlMTQ4NDU1N2FjYTFiOTRlZTg5MzFkZGYxNjAzN2I3YTcxNzEzMjFhOTE5MzZhZmMyN2ZmY2UzOTVkZTc1ZDVmNzBjYjhiNWFlZTA1ZmY1MDcwODhkNjVhZjFlNDM5NjZjZDQyY2JlNmY3ZmFjZjhkYWUwNTVkZDgyMjJiMTY5NjUyMTcyM2Y4MTI0NTE3ODU5NWM5ODVhZTkxN2ZkNGIzOTk4NzczZTFhOTdiN2JkMTAwODU0NDZmNDI1OWJjYzA5YTQ1NDkyOTI4MmMxYjg5YjcxZWQ1ODdhNzc1ZTBhM2Q0NTM2MzQxZjQ1ZGFlOTY5ZTgwNmM5NmZlZmM3MTA2Nzc3NmMwMmJhMjIxMjJiOTE5OWIxNGMwYzI4YzA0NDg3NTA5MDcwYjk3ZjNkZDJkNmQ5NzI3MzMxODIwMTc3MzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDViZWNkODcxOTVjMWRlZmY5MGMyNGM5MTI2OWI1NWIzZjA2OWJjMjI1YzMyNmMzMTRjMWE1MTc4NmZmZTE0YzgzMGJlNGU0YmM3M2NiYTM2Yzk3Njc3YjQ0MTY4Mjc5YmU5MWU3Y2RmN2MxOTM4NmFlMjE4NjI3MTlkMTNhM2EwZmZmMDgwM2Q0NjA5NjJmMmNkYTgzNzE0ODQ4NzMyNTJjM2Q3MDU0ZGI4MTQzZTJiMDgxYTM4MTZlZDA4MDRjYTUwOTlhZTVmZWNlODNkNWMyYzM3ODNiMTk4OGI0YjQ2ZGM5NGU1NTU4N2ExMDdlYTE1NDZiZjIyZDI4YTA5N2Y2NTJhNDA2NmRjMjk2NTI2OTA2OWFmMmY1MTc2YmI4Y2U5Y2E2ZDExZjk2NzU3ZjAzMjA0Zjc1NjcwMzU4N2QwMGFkNDI0Nzk2YzkyZmM3YWViNmY0OTQ0MzE5OTllZGEzMDk5MGU0ZjU3NzM2MzJlZDI1OGZlMDI3NjY3MzU5OWRhNmZjZTM1Y2RhZDc3MjZhMGJiMDI0Y2FkOTk2Yjg4ZTBjYjk4ODU0Y2ViNWMwYjZlYzc0OGQ5ZjljZTZhNmNkNDM3ODU4YmFjYjgxNDYxOGEyNzJmZjNhNDE1YzZlMDdmM2RiMDk4ODc3N2ZkZWM4NDVhOTdiZjdkMTAyZGQwIgogCiBQS0NTNyBQYXJzZSBGYWlsdXJlIEludmFsaWQgQVNOMTogQ2hhbmdlIGxlbmd0aCBmcm9tIDAgdG8gMSAjMjA0LjAKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBwa2NzN19hc24xX2ZhaWw6IjMwODIwNTAwMDYwOTJhODY0ODg2ZjcwZDAxMDcwMmEwODIwNGYxMzA4MjA0ZWQwMjAxMDEzMTBmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwYjA2MDkyYTg2NDg4NmY3MGQwMTA3MDFhMDgyMDM0ZDMwODIwMzQ5MzA4MjAyMzFhMDAzMDIwMTAyMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEzMDFlMTcwZDMyMzIzMTMwMzIzODMxMzYzMTMwMzUzNjVhMTcwZDMyMzMzMTMwMzIzODMxMzYzMTMwMzUzNjVhMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMzA4MjAxMjIzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDEwMzgyMDEwZjAwMzA4MjAxMGEwMjgyMDEwMTAwYzhiNmNmNjk4OTljZDFmMGViYjRjYTY0NWMwNWU3MGUwZDJlZmVkZGNjNjFkMDg5Y2JkNTE1YTM5YTM1NzliOTIzNDNiNjFlYzc1MDA2MGZiNGVkMzc4NzYzMzI0MDBlNDI1ZjFkMzc2YzdlNzVjMjk3MzMxNGVkZjRiYjMwYzhmOGRkMDNiOWZjZmY5NTVhMjQ1ZDQ5MTM3YWQ2ZTYwMDU2Y2FjMTk1NTJhODY1ZDUyMTg3MTg3Y2MwNDJjOWM0OWUzZTNhOWMxN2E1MzRiNDUzY2RhYmMwY2IxMTNiNGY2M2Y1YjMxNzRiOWVlOTkwMmIxOTEwZDExNDk2YTI3OWE3NDMyNmFkY2ZlZTEwYmZkOWU3ZWJhZmJiMzc3YmU5YjYzOTU5MTY1ZDEzZGQ1NzUxMTcxY2FkYWQzYzFkM2FkYWM2OGJjODAxMWQ2MWI1NGNmNjAxNzhiZTM2ODM5YTg5YWM5MWFiNDE5ZTNjYTM3ZDZiYTg4MWQyNTUxOGM0ZGI2OGJjYTZmN2M4MzYwMmY2OTlhODZiMTdmYjFlNzczYmNiZTc0YmI5M2E0OWIyNTFhZTg2NDI4YjU3NDBlMTg2OGJiMWQ2ZmFiOWUyODcxMmU5OGVjMzE5YWQ4ZmNhNGQ3MzAxMGM0YjA5YzRiODA0NTg5NjFlN2NmMDgzNTMwMjAzMDEwMDAxYTM1MzMwNTEzMDFkMDYwMzU1MWQwZTA0MTYwNDE0OGFlZWU1OTQ3Y2M2N2M1ZGQ1MTVhNzZlMmE3ZWNkMzFlZTUyZmRjODMwMWYwNjAzNTUxZDIzMDQxODMwMTY4MDE0OGFlZWU1OTQ3Y2M2N2M1ZGQ1MTVhNzZlMmE3ZWNkMzFlZTUyZmRjODMwMGYwNjAzNTUxZDEzMDEwMWZmMDQwNTMwMDMwMTAxZmYzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAwMzgyMDEwMTAwODIxZDZiOThjZDQ1N2RlYmQyYjA4MWFjYTI3ZWJlY2Q0ZjkzYWNjODI4NDQzYjM5ZWFiZmZhOWZhNGU5ZTQ1NDNiNDZmY2MzMWUyYjViNDgxNzc5MDNkZWE2OTY5YWM0YTJjYzY1NzA2NTAzOTBmMWIwOGQ0M2E0YzJmOTc1YzdlZDhiZjMzNTZjNzIxODM4MDIxMjQ1MWE4ZjExZGU0NjU1M2NiY2Q2NWI0MjU0ZGRiOGY2NjgzNGViMjFkZGEyYThmMzNiNTgxZTE0ODQ1NTdhY2ExYjk0ZWU4OTMxZGRmMTYwMzdiN2E3MTcxMzIxYTkxOTM2YWZjMjdmZmNlMzk1ZGU3NWQ1ZjcwY2I4YjVhZWUwNWZmNTA3MDg4ZDY1YWYxZTQzOTY2Y2Q0MmNiZTZmN2ZhY2Y4ZGFlMDU1ZGQ4MjIyYjE2OTY1MjE3MjNmODEyNDUxNzg1OTVjOTg1YWU5MTdmZDRiMzk5ODc3M2UxYTk3YjdiZDEwMDg1NDQ2ZjQyNTliY2MwOWE0NTQ5MjkyODJjMWI4OWI3MWVkNTg3YTc3NWUwYTNkNDUzNjM0MWY0NWRhZTk2OWU4MDZjOTZmZWZjNzEwNjc3NzZjMDJiYTIyMTIyYjkxOTliMTRjMGMyOGMwNDQ4NzUwOTA3MGI5N2YzZGQyZDZkOTcyNzMzMTgyMDE3NzMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTAyMTQ3YmRlZGRkMjQ0NGNkMWNkZmU1YzQxYTgxMDJjODliN2RmMmU2Y2JmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDA1YmVjZDg3MTk1YzFkZWZmOTBjMjRjOTEyNjliNTViM2YwNjliYzIyNWMzMjZjMzE0YzFhNTE3ODZmZmUxNGM4MzBiZTRlNGJjNzNjYmEzNmM5NzY3N2I0NDE2ODI3OWJlOTFlN2NkZjdjMTkzODZhZTIxODYyNzE5ZDEzYTNhMGZmZjA4MDNkNDYwOTYyZjJjZGE4MzcxNDg0ODczMjUyYzNkNzA1NGRiODE0M2UyYjA4MWEzODE2ZWQwODA0Y2E1MDk5YWU1ZmVjZTgzZDVjMmMzNzgzYjE5ODhiNGI0NmRjOTRlNTU1ODdhMTA3ZWExNTQ2YmYyMmQyOGEwOTdmNjUyYTQwNjZkYzI5NjUyNjkwNjlhZjJmNTE3NmJiOGNlOWNhNmQxMWY5Njc1N2YwMzIwNGY3NTY3MDM1ODdkMDBhZDQyNDc5NmM5MmZjN2FlYjZmNDk0NDMxOTk5ZWRhMzA5OTBlNGY1NzczNjMyZWQyNThmZTAyNzY2NzM1OTlkYTZmY2UzNWNkYWQ3NzI2YTBiYjAyNGNhZDk5NmI4OGUwY2I5ODg1NGNlYjVjMGI2ZWM3NDhkOWY5Y2U2YTZjZDQzNzg1OGJhY2I4MTQ2MThhMjcyZmYzYTQxNWM2ZTA3ZjNkYjA5ODg3NzdmZGVjODQ1YTk3YmY3ZDEwMmRkMCIKIAogUEtDUzcgUGFyc2UgRmFpbHVyZSBJbnZhbGlkIEFTTjE6IENoYW5nZSB0YWcgMDMgdG8gMDIgIzIwNS4wCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NgogcGtjczdfYXNuMV9mYWlsOiIzMDgyMDUwMDA2MDkyYTg2NDg4NmY3MGQwMTA3MDJhMDgyMDRmMTMwODIwNGVkMDIwMTAxMzEwZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGIwNjA5MmE4NjQ4ODZmNzBkMDEwNzAxYTA4MjAzNGQzMDgyMDM0OTMwODIwMjMxYTAwMzAyMDEwMjAyMTQ3YmRlZGRkMjQ0NGNkMWNkZmU1YzQxYTgxMDJjODliN2RmMmU2Y2JmMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMzAxZTE3MGQzMjMyMzEzMDMyMzgzMTM2MzEzMDM1MzY1YTE3MGQzMjMzMzEzMDMyMzgzMTM2MzEzMDM1MzY1YTMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTMwODIwMTIyMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDI4MjAxMGYwMDMwODIwMTBhMDI4MjAxMDEwMGM4YjZjZjY5ODk5Y2QxZjBlYmI0Y2E2NDVjMDVlNzBlMGQyZWZlZGRjYzYxZDA4OWNiZDUxNWEzOWEzNTc5YjkyMzQzYjYxZWM3NTAwNjBmYjRlZDM3ODc2MzMyNDAwZTQyNWYxZDM3NmM3ZTc1YzI5NzMzMTRlZGY0YmIzMGM4ZjhkZDAzYjlmY2ZmOTU1YTI0NWQ0OTEzN2FkNmU2MDA1NmNhYzE5NTUyYTg2NWQ1MjE4NzE4N2NjMDQyYzljNDllM2UzYTljMTdhNTM0YjQ1M2NkYWJjMGNiMTEzYjRmNjNmNWIzMTc0YjllZTk5MDJiMTkxMGQxMTQ5NmEyNzlhNzQzMjZhZGNmZWUxMGJmZDllN2ViYWZiYjM3N2JlOWI2Mzk1OTE2NWQxM2RkNTc1MTE3MWNhZGFkM2MxZDNhZGFjNjhiYzgwMTFkNjFiNTRjZjYwMTc4YmUzNjgzOWE4OWFjOTFhYjQxOWUzY2EzN2Q2YmE4ODFkMjU1MThjNGRiNjhiY2E2ZjdjODM2MDJmNjk5YTg2YjE3ZmIxZTc3M2JjYmU3NGJiOTNhNDliMjUxYWU4NjQyOGI1NzQwZTE4NjhiYjFkNmZhYjllMjg3MTJlOThlYzMxOWFkOGZjYTRkNzMwMTBjNGIwOWM0YjgwNDU4OTYxZTdjZjA4MzUzMDIwMzAxMDAwMWEzNTMzMDUxMzAxZDA2MDM1NTFkMGUwNDE2MDQxNDhhZWVlNTk0N2NjNjdjNWRkNTE1YTc2ZTJhN2VjZDMxZWU1MmZkYzgzMDFmMDYwMzU1MWQyMzA0MTgzMDE2ODAxNDhhZWVlNTk0N2NjNjdjNWRkNTE1YTc2ZTJhN2VjZDMxZWU1MmZkYzgzMDBmMDYwMzU1MWQxMzAxMDFmZjA0MDUzMDAzMDEwMWZmMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMDM4MjAxMDEwMDgyMWQ2Yjk4Y2Q0NTdkZWJkMmIwODFhY2EyN2ViZWNkNGY5M2FjYzgyODQ0M2IzOWVhYmZmYTlmYTRlOWU0NTQzYjQ2ZmNjMzFlMmI1YjQ4MTc3OTAzZGVhNjk2OWFjNGEyY2M2NTcwNjUwMzkwZjFiMDhkNDNhNGMyZjk3NWM3ZWQ4YmYzMzU2YzcyMTgzODAyMTI0NTFhOGYxMWRlNDY1NTNjYmNkNjViNDI1NGRkYjhmNjY4MzRlYjIxZGRhMmE4ZjMzYjU4MWUxNDg0NTU3YWNhMWI5NGVlODkzMWRkZjE2MDM3YjdhNzE3MTMyMWE5MTkzNmFmYzI3ZmZjZTM5NWRlNzVkNWY3MGNiOGI1YWVlMDVmZjUwNzA4OGQ2NWFmMWU0Mzk2NmNkNDJjYmU2ZjdmYWNmOGRhZTA1NWRkODIyMmIxNjk2NTIxNzIzZjgxMjQ1MTc4NTk1Yzk4NWFlOTE3ZmQ0YjM5OTg3NzNlMWE5N2I3YmQxMDA4NTQ0NmY0MjU5YmNjMDlhNDU0OTI5MjgyYzFiODliNzFlZDU4N2E3NzVlMGEzZDQ1MzYzNDFmNDVkYWU5NjllODA2Yzk2ZmVmYzcxMDY3Nzc2YzAyYmEyMjEyMmI5MTk5YjE0YzBjMjhjMDQ0ODc1MDkwNzBiOTdmM2RkMmQ2ZDk3MjczMzE4MjAxNzczMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwNWJlY2Q4NzE5NWMxZGVmZjkwYzI0YzkxMjY5YjU1YjNmMDY5YmMyMjVjMzI2YzMxNGMxYTUxNzg2ZmZlMTRjODMwYmU0ZTRiYzczY2JhMzZjOTc2NzdiNDQxNjgyNzliZTkxZTdjZGY3YzE5Mzg2YWUyMTg2MjcxOWQxM2EzYTBmZmYwODAzZDQ2MDk2MmYyY2RhODM3MTQ4NDg3MzI1MmMzZDcwNTRkYjgxNDNlMmIwODFhMzgxNmVkMDgwNGNhNTA5OWFlNWZlY2U4M2Q1YzJjMzc4M2IxOTg4YjRiNDZkYzk0ZTU1NTg3YTEwN2VhMTU0NmJmMjJkMjhhMDk3ZjY1MmE0MDY2ZGMyOTY1MjY5MDY5YWYyZjUxNzZiYjhjZTljYTZkMTFmOTY3NTdmMDMyMDRmNzU2NzAzNTg3ZDAwYWQ0MjQ3OTZjOTJmYzdhZWI2ZjQ5NDQzMTk5OWVkYTMwOTkwZTRmNTc3MzYzMmVkMjU4ZmUwMjc2NjczNTk5ZGE2ZmNlMzVjZGFkNzcyNmEwYmIwMjRjYWQ5OTZiODhlMGNiOTg4NTRjZWI1YzBiNmVjNzQ4ZDlmOWNlNmE2Y2Q0Mzc4NThiYWNiODE0NjE4YTI3MmZmM2E0MTVjNmUwN2YzZGIwOTg4Nzc3ZmRlYzg0NWE5N2JmN2QxMDJkZDAiCiAKIFBLQ1M3IFBhcnNlIEZhaWx1cmUgSW52YWxpZCBBU04xOiBDaGFuZ2UgbGVuZ3RoIGZyb20gMjcxIHRvIDI3MiAjMjA2LjAKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBwa2NzN19hc24xX2ZhaWw6IjMwODIwNTAwMDYwOTJhODY0ODg2ZjcwZDAxMDcwMmEwODIwNGYxMzA4MjA0ZWQwMjAxMDEzMTBmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwYjA2MDkyYTg2NDg4NmY3MGQwMTA3MDFhMDgyMDM0ZDMwODIwMzQ5MzA4MjAyMzFhMDAzMDIwMTAyMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEzMDFlMTcwZDMyMzIzMTMwMzIzODMxMzYzMTMwMzUzNjVhMTcwZDMyMzMzMTMwMzIzODMxMzYzMTMwMzUzNjVhMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMzA4MjAxMjIzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwMzgyMDExMDAwMzA4MjAxMGEwMjgyMDEwMTAwYzhiNmNmNjk4OTljZDFmMGViYjRjYTY0NWMwNWU3MGUwZDJlZmVkZGNjNjFkMDg5Y2JkNTE1YTM5YTM1NzliOTIzNDNiNjFlYzc1MDA2MGZiNGVkMzc4NzYzMzI0MDBlNDI1ZjFkMzc2YzdlNzVjMjk3MzMxNGVkZjRiYjMwYzhmOGRkMDNiOWZjZmY5NTVhMjQ1ZDQ5MTM3YWQ2ZTYwMDU2Y2FjMTk1NTJhODY1ZDUyMTg3MTg3Y2MwNDJjOWM0OWUzZTNhOWMxN2E1MzRiNDUzY2RhYmMwY2IxMTNiNGY2M2Y1YjMxNzRiOWVlOTkwMmIxOTEwZDExNDk2YTI3OWE3NDMyNmFkY2ZlZTEwYmZkOWU3ZWJhZmJiMzc3YmU5YjYzOTU5MTY1ZDEzZGQ1NzUxMTcxY2FkYWQzYzFkM2FkYWM2OGJjODAxMWQ2MWI1NGNmNjAxNzhiZTM2ODM5YTg5YWM5MWFiNDE5ZTNjYTM3ZDZiYTg4MWQyNTUxOGM0ZGI2OGJjYTZmN2M4MzYwMmY2OTlhODZiMTdmYjFlNzczYmNiZTc0YmI5M2E0OWIyNTFhZTg2NDI4YjU3NDBlMTg2OGJiMWQ2ZmFiOWUyODcxMmU5OGVjMzE5YWQ4ZmNhNGQ3MzAxMGM0YjA5YzRiODA0NTg5NjFlN2NmMDgzNTMwMjAzMDEwMDAxYTM1MzMwNTEzMDFkMDYwMzU1MWQwZTA0MTYwNDE0OGFlZWU1OTQ3Y2M2N2M1ZGQ1MTVhNzZlMmE3ZWNkMzFlZTUyZmRjODMwMWYwNjAzNTUxZDIzMDQxODMwMTY4MDE0OGFlZWU1OTQ3Y2M2N2M1ZGQ1MTVhNzZlMmE3ZWNkMzFlZTUyZmRjODMwMGYwNjAzNTUxZDEzMDEwMWZmMDQwNTMwMDMwMTAxZmYzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAwMzgyMDEwMTAwODIxZDZiOThjZDQ1N2RlYmQyYjA4MWFjYTI3ZWJlY2Q0ZjkzYWNjODI4NDQzYjM5ZWFiZmZhOWZhNGU5ZTQ1NDNiNDZmY2MzMWUyYjViNDgxNzc5MDNkZWE2OTY5YWM0YTJjYzY1NzA2NTAzOTBmMWIwOGQ0M2E0YzJmOTc1YzdlZDhiZjMzNTZjNzIxODM4MDIxMjQ1MWE4ZjExZGU0NjU1M2NiY2Q2NWI0MjU0ZGRiOGY2NjgzNGViMjFkZGEyYThmMzNiNTgxZTE0ODQ1NTdhY2ExYjk0ZWU4OTMxZGRmMTYwMzdiN2E3MTcxMzIxYTkxOTM2YWZjMjdmZmNlMzk1ZGU3NWQ1ZjcwY2I4YjVhZWUwNWZmNTA3MDg4ZDY1YWYxZTQzOTY2Y2Q0MmNiZTZmN2ZhY2Y4ZGFlMDU1ZGQ4MjIyYjE2OTY1MjE3MjNmODEyNDUxNzg1OTVjOTg1YWU5MTdmZDRiMzk5ODc3M2UxYTk3YjdiZDEwMDg1NDQ2ZjQyNTliY2MwOWE0NTQ5MjkyODJjMWI4OWI3MWVkNTg3YTc3NWUwYTNkNDUzNjM0MWY0NWRhZTk2OWU4MDZjOTZmZWZjNzEwNjc3NzZjMDJiYTIyMTIyYjkxOTliMTRjMGMyOGMwNDQ4NzUwOTA3MGI5N2YzZGQyZDZkOTcyNzMzMTgyMDE3NzMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTAyMTQ3YmRlZGRkMjQ0NGNkMWNkZmU1YzQxYTgxMDJjODliN2RmMmU2Y2JmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDA1YmVjZDg3MTk1YzFkZWZmOTBjMjRjOTEyNjliNTViM2YwNjliYzIyNWMzMjZjMzE0YzFhNTE3ODZmZmUxNGM4MzBiZTRlNGJjNzNjYmEzNmM5NzY3N2I0NDE2ODI3OWJlOTFlN2NkZjdjMTkzODZhZTIxODYyNzE5ZDEzYTNhMGZmZjA4MDNkNDYwOTYyZjJjZGE4MzcxNDg0ODczMjUyYzNkNzA1NGRiODE0M2UyYjA4MWEzODE2ZWQwODA0Y2E1MDk5YWU1ZmVjZTgzZDVjMmMzNzgzYjE5ODhiNGI0NmRjOTRlNTU1ODdhMTA3ZWExNTQ2YmYyMmQyOGEwOTdmNjUyYTQwNjZkYzI5NjUyNjkwNjlhZjJmNTE3NmJiOGNlOWNhNmQxMWY5Njc1N2YwMzIwNGY3NTY3MDM1ODdkMDBhZDQyNDc5NmM5MmZjN2FlYjZmNDk0NDMxOTk5ZWRhMzA5OTBlNGY1NzczNjMyZWQyNThmZTAyNzY2NzM1OTlkYTZmY2UzNWNkYWQ3NzI2YTBiYjAyNGNhZDk5NmI4OGUwY2I5ODg1NGNlYjVjMGI2ZWM3NDhkOWY5Y2U2YTZjZDQzNzg1OGJhY2I4MTQ2MThhMjcyZmYzYTQxNWM2ZTA3ZjNkYjA5ODg3NzdmZGVjODQ1YTk3YmY3ZDEwMmRkMCIKIAogUEtDUzcgUGFyc2UgRmFpbHVyZSBJbnZhbGlkIEFTTjE6IENoYW5nZSBsZW5ndGggZnJvbSAyNzEgdG8gMjcwICMyMDcuMAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHBrY3M3X2FzbjFfZmFpbDoiMzA4MjA1MDAwNjA5MmE4NjQ4ODZmNzBkMDEwNzAyYTA4MjA0ZjEzMDgyMDRlZDAyMDEwMTMxMGYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBiMDYwOTJhODY0ODg2ZjcwZDAxMDcwMWEwODIwMzRkMzA4MjAzNDkzMDgyMDIzMWEwMDMwMjAxMDIwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTMwMWUxNzBkMzIzMjMxMzAzMjM4MzEzNjMxMzAzNTM2NWExNzBkMzIzMzMxMzAzMjM4MzEzNjMxMzAzNTM2NWEzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEzMDgyMDEyMjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDAzODIwMTBlMDAzMDgyMDEwYTAyODIwMTAxMDBjOGI2Y2Y2OTg5OWNkMWYwZWJiNGNhNjQ1YzA1ZTcwZTBkMmVmZWRkY2M2MWQwODljYmQ1MTVhMzlhMzU3OWI5MjM0M2I2MWVjNzUwMDYwZmI0ZWQzNzg3NjMzMjQwMGU0MjVmMWQzNzZjN2U3NWMyOTczMzE0ZWRmNGJiMzBjOGY4ZGQwM2I5ZmNmZjk1NWEyNDVkNDkxMzdhZDZlNjAwNTZjYWMxOTU1MmE4NjVkNTIxODcxODdjYzA0MmM5YzQ5ZTNlM2E5YzE3YTUzNGI0NTNjZGFiYzBjYjExM2I0ZjYzZjViMzE3NGI5ZWU5OTAyYjE5MTBkMTE0OTZhMjc5YTc0MzI2YWRjZmVlMTBiZmQ5ZTdlYmFmYmIzNzdiZTliNjM5NTkxNjVkMTNkZDU3NTExNzFjYWRhZDNjMWQzYWRhYzY4YmM4MDExZDYxYjU0Y2Y2MDE3OGJlMzY4MzlhODlhYzkxYWI0MTllM2NhMzdkNmJhODgxZDI1NTE4YzRkYjY4YmNhNmY3YzgzNjAyZjY5OWE4NmIxN2ZiMWU3NzNiY2JlNzRiYjkzYTQ5YjI1MWFlODY0MjhiNTc0MGUxODY4YmIxZDZmYWI5ZTI4NzEyZTk4ZWMzMTlhZDhmY2E0ZDczMDEwYzRiMDljNGI4MDQ1ODk2MWU3Y2YwODM1MzAyMDMwMTAwMDFhMzUzMzA1MTMwMWQwNjAzNTUxZDBlMDQxNjA0MTQ4YWVlZTU5NDdjYzY3YzVkZDUxNWE3NmUyYTdlY2QzMWVlNTJmZGM4MzAxZjA2MDM1NTFkMjMwNDE4MzAxNjgwMTQ4YWVlZTU5NDdjYzY3YzVkZDUxNWE3NmUyYTdlY2QzMWVlNTJmZGM4MzAwZjA2MDM1NTFkMTMwMTAxZmYwNDA1MzAwMzAxMDFmZjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDAzODIwMTAxMDA4MjFkNmI5OGNkNDU3ZGViZDJiMDgxYWNhMjdlYmVjZDRmOTNhY2M4Mjg0NDNiMzllYWJmZmE5ZmE0ZTllNDU0M2I0NmZjYzMxZTJiNWI0ODE3NzkwM2RlYTY5NjlhYzRhMmNjNjU3MDY1MDM5MGYxYjA4ZDQzYTRjMmY5NzVjN2VkOGJmMzM1NmM3MjE4MzgwMjEyNDUxYThmMTFkZTQ2NTUzY2JjZDY1YjQyNTRkZGI4ZjY2ODM0ZWIyMWRkYTJhOGYzM2I1ODFlMTQ4NDU1N2FjYTFiOTRlZTg5MzFkZGYxNjAzN2I3YTcxNzEzMjFhOTE5MzZhZmMyN2ZmY2UzOTVkZTc1ZDVmNzBjYjhiNWFlZTA1ZmY1MDcwODhkNjVhZjFlNDM5NjZjZDQyY2JlNmY3ZmFjZjhkYWUwNTVkZDgyMjJiMTY5NjUyMTcyM2Y4MTI0NTE3ODU5NWM5ODVhZTkxN2ZkNGIzOTk4NzczZTFhOTdiN2JkMTAwODU0NDZmNDI1OWJjYzA5YTQ1NDkyOTI4MmMxYjg5YjcxZWQ1ODdhNzc1ZTBhM2Q0NTM2MzQxZjQ1ZGFlOTY5ZTgwNmM5NmZlZmM3MTA2Nzc3NmMwMmJhMjIxMjJiOTE5OWIxNGMwYzI4YzA0NDg3NTA5MDcwYjk3ZjNkZDJkNmQ5NzI3MzMxODIwMTc3MzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDViZWNkODcxOTVjMWRlZmY5MGMyNGM5MTI2OWI1NWIzZjA2OWJjMjI1YzMyNmMzMTRjMWE1MTc4NmZmZTE0YzgzMGJlNGU0YmM3M2NiYTM2Yzk3Njc3YjQ0MTY4Mjc5YmU5MWU3Y2RmN2MxOTM4NmFlMjE4NjI3MTlkMTNhM2EwZmZmMDgwM2Q0NjA5NjJmMmNkYTgzNzE0ODQ4NzMyNTJjM2Q3MDU0ZGI4MTQzZTJiMDgxYTM4MTZlZDA4MDRjYTUwOTlhZTVmZWNlODNkNWMyYzM3ODNiMTk4OGI0YjQ2ZGM5NGU1NTU4N2ExMDdlYTE1NDZiZjIyZDI4YTA5N2Y2NTJhNDA2NmRjMjk2NTI2OTA2OWFmMmY1MTc2YmI4Y2U5Y2E2ZDExZjk2NzU3ZjAzMjA0Zjc1NjcwMzU4N2QwMGFkNDI0Nzk2YzkyZmM3YWViNmY0OTQ0MzE5OTllZGEzMDk5MGU0ZjU3NzM2MzJlZDI1OGZlMDI3NjY3MzU5OWRhNmZjZTM1Y2RhZDc3MjZhMGJiMDI0Y2FkOTk2Yjg4ZTBjYjk4ODU0Y2ViNWMwYjZlYzc0OGQ5ZjljZTZhNmNkNDM3ODU4YmFjYjgxNDYxOGEyNzJmZjNhNDE1YzZlMDdmM2RiMDk4ODc3N2ZkZWM4NDVhOTdiZjdkMTAyZGQwIgogCiBQS0NTNyBQYXJzZSBGYWlsdXJlIEludmFsaWQgQVNOMTogQ2hhbmdlIHRhZyBhMyB0byAwMiAjMjA4LjAKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBwa2NzN19hc24xX2ZhaWw6IjMwODIwNTAwMDYwOTJhODY0ODg2ZjcwZDAxMDcwMmEwODIwNGYxMzA4MjA0ZWQwMjAxMDEzMTBmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwYjA2MDkyYTg2NDg4NmY3MGQwMTA3MDFhMDgyMDM0ZDMwODIwMzQ5MzA4MjAyMzFhMDAzMDIwMTAyMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEzMDFlMTcwZDMyMzIzMTMwMzIzODMxMzYzMTMwMzUzNjVhMTcwZDMyMzMzMTMwMzIzODMxMzYzMTMwMzUzNjVhMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMzA4MjAxMjIzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwMzgyMDEwZjAwMzA4MjAxMGEwMjgyMDEwMTAwYzhiNmNmNjk4OTljZDFmMGViYjRjYTY0NWMwNWU3MGUwZDJlZmVkZGNjNjFkMDg5Y2JkNTE1YTM5YTM1NzliOTIzNDNiNjFlYzc1MDA2MGZiNGVkMzc4NzYzMzI0MDBlNDI1ZjFkMzc2YzdlNzVjMjk3MzMxNGVkZjRiYjMwYzhmOGRkMDNiOWZjZmY5NTVhMjQ1ZDQ5MTM3YWQ2ZTYwMDU2Y2FjMTk1NTJhODY1ZDUyMTg3MTg3Y2MwNDJjOWM0OWUzZTNhOWMxN2E1MzRiNDUzY2RhYmMwY2IxMTNiNGY2M2Y1YjMxNzRiOWVlOTkwMmIxOTEwZDExNDk2YTI3OWE3NDMyNmFkY2ZlZTEwYmZkOWU3ZWJhZmJiMzc3YmU5YjYzOTU5MTY1ZDEzZGQ1NzUxMTcxY2FkYWQzYzFkM2FkYWM2OGJjODAxMWQ2MWI1NGNmNjAxNzhiZTM2ODM5YTg5YWM5MWFiNDE5ZTNjYTM3ZDZiYTg4MWQyNTUxOGM0ZGI2OGJjYTZmN2M4MzYwMmY2OTlhODZiMTdmYjFlNzczYmNiZTc0YmI5M2E0OWIyNTFhZTg2NDI4YjU3NDBlMTg2OGJiMWQ2ZmFiOWUyODcxMmU5OGVjMzE5YWQ4ZmNhNGQ3MzAxMGM0YjA5YzRiODA0NTg5NjFlN2NmMDgzNTMwMjAzMDEwMDAxMDI1MzMwNTEzMDFkMDYwMzU1MWQwZTA0MTYwNDE0OGFlZWU1OTQ3Y2M2N2M1ZGQ1MTVhNzZlMmE3ZWNkMzFlZTUyZmRjODMwMWYwNjAzNTUxZDIzMDQxODMwMTY4MDE0OGFlZWU1OTQ3Y2M2N2M1ZGQ1MTVhNzZlMmE3ZWNkMzFlZTUyZmRjODMwMGYwNjAzNTUxZDEzMDEwMWZmMDQwNTMwMDMwMTAxZmYzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAwMzgyMDEwMTAwODIxZDZiOThjZDQ1N2RlYmQyYjA4MWFjYTI3ZWJlY2Q0ZjkzYWNjODI4NDQzYjM5ZWFiZmZhOWZhNGU5ZTQ1NDNiNDZmY2MzMWUyYjViNDgxNzc5MDNkZWE2OTY5YWM0YTJjYzY1NzA2NTAzOTBmMWIwOGQ0M2E0YzJmOTc1YzdlZDhiZjMzNTZjNzIxODM4MDIxMjQ1MWE4ZjExZGU0NjU1M2NiY2Q2NWI0MjU0ZGRiOGY2NjgzNGViMjFkZGEyYThmMzNiNTgxZTE0ODQ1NTdhY2ExYjk0ZWU4OTMxZGRmMTYwMzdiN2E3MTcxMzIxYTkxOTM2YWZjMjdmZmNlMzk1ZGU3NWQ1ZjcwY2I4YjVhZWUwNWZmNTA3MDg4ZDY1YWYxZTQzOTY2Y2Q0MmNiZTZmN2ZhY2Y4ZGFlMDU1ZGQ4MjIyYjE2OTY1MjE3MjNmODEyNDUxNzg1OTVjOTg1YWU5MTdmZDRiMzk5ODc3M2UxYTk3YjdiZDEwMDg1NDQ2ZjQyNTliY2MwOWE0NTQ5MjkyODJjMWI4OWI3MWVkNTg3YTc3NWUwYTNkNDUzNjM0MWY0NWRhZTk2OWU4MDZjOTZmZWZjNzEwNjc3NzZjMDJiYTIyMTIyYjkxOTliMTRjMGMyOGMwNDQ4NzUwOTA3MGI5N2YzZGQyZDZkOTcyNzMzMTgyMDE3NzMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTAyMTQ3YmRlZGRkMjQ0NGNkMWNkZmU1YzQxYTgxMDJjODliN2RmMmU2Y2JmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDA1YmVjZDg3MTk1YzFkZWZmOTBjMjRjOTEyNjliNTViM2YwNjliYzIyNWMzMjZjMzE0YzFhNTE3ODZmZmUxNGM4MzBiZTRlNGJjNzNjYmEzNmM5NzY3N2I0NDE2ODI3OWJlOTFlN2NkZjdjMTkzODZhZTIxODYyNzE5ZDEzYTNhMGZmZjA4MDNkNDYwOTYyZjJjZGE4MzcxNDg0ODczMjUyYzNkNzA1NGRiODE0M2UyYjA4MWEzODE2ZWQwODA0Y2E1MDk5YWU1ZmVjZTgzZDVjMmMzNzgzYjE5ODhiNGI0NmRjOTRlNTU1ODdhMTA3ZWExNTQ2YmYyMmQyOGEwOTdmNjUyYTQwNjZkYzI5NjUyNjkwNjlhZjJmNTE3NmJiOGNlOWNhNmQxMWY5Njc1N2YwMzIwNGY3NTY3MDM1ODdkMDBhZDQyNDc5NmM5MmZjN2FlYjZmNDk0NDMxOTk5ZWRhMzA5OTBlNGY1NzczNjMyZWQyNThmZTAyNzY2NzM1OTlkYTZmY2UzNWNkYWQ3NzI2YTBiYjAyNGNhZDk5NmI4OGUwY2I5ODg1NGNlYjVjMGI2ZWM3NDhkOWY5Y2U2YTZjZDQzNzg1OGJhY2I4MTQ2MThhMjcyZmYzYTQxNWM2ZTA3ZjNkYjA5ODg3NzdmZGVjODQ1YTk3YmY3ZDEwMmRkMCIKIAogUEtDUzcgUGFyc2UgRmFpbHVyZSBJbnZhbGlkIEFTTjE6IENoYW5nZSBsZW5ndGggZnJvbSA4MyB0byA4NCAjMjA5LjAKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBwa2NzN19hc24xX2ZhaWw6IjMwODIwNTAwMDYwOTJhODY0ODg2ZjcwZDAxMDcwMmEwODIwNGYxMzA4MjA0ZWQwMjAxMDEzMTBmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwYjA2MDkyYTg2NDg4NmY3MGQwMTA3MDFhMDgyMDM0ZDMwODIwMzQ5MzA4MjAyMzFhMDAzMDIwMTAyMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEzMDFlMTcwZDMyMzIzMTMwMzIzODMxMzYzMTMwMzUzNjVhMTcwZDMyMzMzMTMwMzIzODMxMzYzMTMwMzUzNjVhMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMzA4MjAxMjIzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwMzgyMDEwZjAwMzA4MjAxMGEwMjgyMDEwMTAwYzhiNmNmNjk4OTljZDFmMGViYjRjYTY0NWMwNWU3MGUwZDJlZmVkZGNjNjFkMDg5Y2JkNTE1YTM5YTM1NzliOTIzNDNiNjFlYzc1MDA2MGZiNGVkMzc4NzYzMzI0MDBlNDI1ZjFkMzc2YzdlNzVjMjk3MzMxNGVkZjRiYjMwYzhmOGRkMDNiOWZjZmY5NTVhMjQ1ZDQ5MTM3YWQ2ZTYwMDU2Y2FjMTk1NTJhODY1ZDUyMTg3MTg3Y2MwNDJjOWM0OWUzZTNhOWMxN2E1MzRiNDUzY2RhYmMwY2IxMTNiNGY2M2Y1YjMxNzRiOWVlOTkwMmIxOTEwZDExNDk2YTI3OWE3NDMyNmFkY2ZlZTEwYmZkOWU3ZWJhZmJiMzc3YmU5YjYzOTU5MTY1ZDEzZGQ1NzUxMTcxY2FkYWQzYzFkM2FkYWM2OGJjODAxMWQ2MWI1NGNmNjAxNzhiZTM2ODM5YTg5YWM5MWFiNDE5ZTNjYTM3ZDZiYTg4MWQyNTUxOGM0ZGI2OGJjYTZmN2M4MzYwMmY2OTlhODZiMTdmYjFlNzczYmNiZTc0YmI5M2E0OWIyNTFhZTg2NDI4YjU3NDBlMTg2OGJiMWQ2ZmFiOWUyODcxMmU5OGVjMzE5YWQ4ZmNhNGQ3MzAxMGM0YjA5YzRiODA0NTg5NjFlN2NmMDgzNTMwMjAzMDEwMDAxYTM1NDMwNTEzMDFkMDYwMzU1MWQwZTA0MTYwNDE0OGFlZWU1OTQ3Y2M2N2M1ZGQ1MTVhNzZlMmE3ZWNkMzFlZTUyZmRjODMwMWYwNjAzNTUxZDIzMDQxODMwMTY4MDE0OGFlZWU1OTQ3Y2M2N2M1ZGQ1MTVhNzZlMmE3ZWNkMzFlZTUyZmRjODMwMGYwNjAzNTUxZDEzMDEwMWZmMDQwNTMwMDMwMTAxZmYzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAwMzgyMDEwMTAwODIxZDZiOThjZDQ1N2RlYmQyYjA4MWFjYTI3ZWJlY2Q0ZjkzYWNjODI4NDQzYjM5ZWFiZmZhOWZhNGU5ZTQ1NDNiNDZmY2MzMWUyYjViNDgxNzc5MDNkZWE2OTY5YWM0YTJjYzY1NzA2NTAzOTBmMWIwOGQ0M2E0YzJmOTc1YzdlZDhiZjMzNTZjNzIxODM4MDIxMjQ1MWE4ZjExZGU0NjU1M2NiY2Q2NWI0MjU0ZGRiOGY2NjgzNGViMjFkZGEyYThmMzNiNTgxZTE0ODQ1NTdhY2ExYjk0ZWU4OTMxZGRmMTYwMzdiN2E3MTcxMzIxYTkxOTM2YWZjMjdmZmNlMzk1ZGU3NWQ1ZjcwY2I4YjVhZWUwNWZmNTA3MDg4ZDY1YWYxZTQzOTY2Y2Q0MmNiZTZmN2ZhY2Y4ZGFlMDU1ZGQ4MjIyYjE2OTY1MjE3MjNmODEyNDUxNzg1OTVjOTg1YWU5MTdmZDRiMzk5ODc3M2UxYTk3YjdiZDEwMDg1NDQ2ZjQyNTliY2MwOWE0NTQ5MjkyODJjMWI4OWI3MWVkNTg3YTc3NWUwYTNkNDUzNjM0MWY0NWRhZTk2OWU4MDZjOTZmZWZjNzEwNjc3NzZjMDJiYTIyMTIyYjkxOTliMTRjMGMyOGMwNDQ4NzUwOTA3MGI5N2YzZGQyZDZkOTcyNzMzMTgyMDE3NzMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTAyMTQ3YmRlZGRkMjQ0NGNkMWNkZmU1YzQxYTgxMDJjODliN2RmMmU2Y2JmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDA1YmVjZDg3MTk1YzFkZWZmOTBjMjRjOTEyNjliNTViM2YwNjliYzIyNWMzMjZjMzE0YzFhNTE3ODZmZmUxNGM4MzBiZTRlNGJjNzNjYmEzNmM5NzY3N2I0NDE2ODI3OWJlOTFlN2NkZjdjMTkzODZhZTIxODYyNzE5ZDEzYTNhMGZmZjA4MDNkNDYwOTYyZjJjZGE4MzcxNDg0ODczMjUyYzNkNzA1NGRiODE0M2UyYjA4MWEzODE2ZWQwODA0Y2E1MDk5YWU1ZmVjZTgzZDVjMmMzNzgzYjE5ODhiNGI0NmRjOTRlNTU1ODdhMTA3ZWExNTQ2YmYyMmQyOGEwOTdmNjUyYTQwNjZkYzI5NjUyNjkwNjlhZjJmNTE3NmJiOGNlOWNhNmQxMWY5Njc1N2YwMzIwNGY3NTY3MDM1ODdkMDBhZDQyNDc5NmM5MmZjN2FlYjZmNDk0NDMxOTk5ZWRhMzA5OTBlNGY1NzczNjMyZWQyNThmZTAyNzY2NzM1OTlkYTZmY2UzNWNkYWQ3NzI2YTBiYjAyNGNhZDk5NmI4OGUwY2I5ODg1NGNlYjVjMGI2ZWM3NDhkOWY5Y2U2YTZjZDQzNzg1OGJhY2I4MTQ2MThhMjcyZmYzYTQxNWM2ZTA3ZjNkYjA5ODg3NzdmZGVjODQ1YTk3YmY3ZDEwMmRkMCIKIAogUEtDUzcgUGFyc2UgRmFpbHVyZSBJbnZhbGlkIEFTTjE6IENoYW5nZSBsZW5ndGggZnJvbSA4MyB0byA4MiAjMjEwLjAKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBwa2NzN19hc24xX2ZhaWw6IjMwODIwNTAwMDYwOTJhODY0ODg2ZjcwZDAxMDcwMmEwODIwNGYxMzA4MjA0ZWQwMjAxMDEzMTBmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwYjA2MDkyYTg2NDg4NmY3MGQwMTA3MDFhMDgyMDM0ZDMwODIwMzQ5MzA4MjAyMzFhMDAzMDIwMTAyMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEzMDFlMTcwZDMyMzIzMTMwMzIzODMxMzYzMTMwMzUzNjVhMTcwZDMyMzMzMTMwMzIzODMxMzYzMTMwMzUzNjVhMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMzA4MjAxMjIzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwMzgyMDEwZjAwMzA4MjAxMGEwMjgyMDEwMTAwYzhiNmNmNjk4OTljZDFmMGViYjRjYTY0NWMwNWU3MGUwZDJlZmVkZGNjNjFkMDg5Y2JkNTE1YTM5YTM1NzliOTIzNDNiNjFlYzc1MDA2MGZiNGVkMzc4NzYzMzI0MDBlNDI1ZjFkMzc2YzdlNzVjMjk3MzMxNGVkZjRiYjMwYzhmOGRkMDNiOWZjZmY5NTVhMjQ1ZDQ5MTM3YWQ2ZTYwMDU2Y2FjMTk1NTJhODY1ZDUyMTg3MTg3Y2MwNDJjOWM0OWUzZTNhOWMxN2E1MzRiNDUzY2RhYmMwY2IxMTNiNGY2M2Y1YjMxNzRiOWVlOTkwMmIxOTEwZDExNDk2YTI3OWE3NDMyNmFkY2ZlZTEwYmZkOWU3ZWJhZmJiMzc3YmU5YjYzOTU5MTY1ZDEzZGQ1NzUxMTcxY2FkYWQzYzFkM2FkYWM2OGJjODAxMWQ2MWI1NGNmNjAxNzhiZTM2ODM5YTg5YWM5MWFiNDE5ZTNjYTM3ZDZiYTg4MWQyNTUxOGM0ZGI2OGJjYTZmN2M4MzYwMmY2OTlhODZiMTdmYjFlNzczYmNiZTc0YmI5M2E0OWIyNTFhZTg2NDI4YjU3NDBlMTg2OGJiMWQ2ZmFiOWUyODcxMmU5OGVjMzE5YWQ4ZmNhNGQ3MzAxMGM0YjA5YzRiODA0NTg5NjFlN2NmMDgzNTMwMjAzMDEwMDAxYTM1MjMwNTEzMDFkMDYwMzU1MWQwZTA0MTYwNDE0OGFlZWU1OTQ3Y2M2N2M1ZGQ1MTVhNzZlMmE3ZWNkMzFlZTUyZmRjODMwMWYwNjAzNTUxZDIzMDQxODMwMTY4MDE0OGFlZWU1OTQ3Y2M2N2M1ZGQ1MTVhNzZlMmE3ZWNkMzFlZTUyZmRjODMwMGYwNjAzNTUxZDEzMDEwMWZmMDQwNTMwMDMwMTAxZmYzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAwMzgyMDEwMTAwODIxZDZiOThjZDQ1N2RlYmQyYjA4MWFjYTI3ZWJlY2Q0ZjkzYWNjODI4NDQzYjM5ZWFiZmZhOWZhNGU5ZTQ1NDNiNDZmY2MzMWUyYjViNDgxNzc5MDNkZWE2OTY5YWM0YTJjYzY1NzA2NTAzOTBmMWIwOGQ0M2E0YzJmOTc1YzdlZDhiZjMzNTZjNzIxODM4MDIxMjQ1MWE4ZjExZGU0NjU1M2NiY2Q2NWI0MjU0ZGRiOGY2NjgzNGViMjFkZGEyYThmMzNiNTgxZTE0ODQ1NTdhY2ExYjk0ZWU4OTMxZGRmMTYwMzdiN2E3MTcxMzIxYTkxOTM2YWZjMjdmZmNlMzk1ZGU3NWQ1ZjcwY2I4YjVhZWUwNWZmNTA3MDg4ZDY1YWYxZTQzOTY2Y2Q0MmNiZTZmN2ZhY2Y4ZGFlMDU1ZGQ4MjIyYjE2OTY1MjE3MjNmODEyNDUxNzg1OTVjOTg1YWU5MTdmZDRiMzk5ODc3M2UxYTk3YjdiZDEwMDg1NDQ2ZjQyNTliY2MwOWE0NTQ5MjkyODJjMWI4OWI3MWVkNTg3YTc3NWUwYTNkNDUzNjM0MWY0NWRhZTk2OWU4MDZjOTZmZWZjNzEwNjc3NzZjMDJiYTIyMTIyYjkxOTliMTRjMGMyOGMwNDQ4NzUwOTA3MGI5N2YzZGQyZDZkOTcyNzMzMTgyMDE3NzMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTAyMTQ3YmRlZGRkMjQ0NGNkMWNkZmU1YzQxYTgxMDJjODliN2RmMmU2Y2JmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDA1YmVjZDg3MTk1YzFkZWZmOTBjMjRjOTEyNjliNTViM2YwNjliYzIyNWMzMjZjMzE0YzFhNTE3ODZmZmUxNGM4MzBiZTRlNGJjNzNjYmEzNmM5NzY3N2I0NDE2ODI3OWJlOTFlN2NkZjdjMTkzODZhZTIxODYyNzE5ZDEzYTNhMGZmZjA4MDNkNDYwOTYyZjJjZGE4MzcxNDg0ODczMjUyYzNkNzA1NGRiODE0M2UyYjA4MWEzODE2ZWQwODA0Y2E1MDk5YWU1ZmVjZTgzZDVjMmMzNzgzYjE5ODhiNGI0NmRjOTRlNTU1ODdhMTA3ZWExNTQ2YmYyMmQyOGEwOTdmNjUyYTQwNjZkYzI5NjUyNjkwNjlhZjJmNTE3NmJiOGNlOWNhNmQxMWY5Njc1N2YwMzIwNGY3NTY3MDM1ODdkMDBhZDQyNDc5NmM5MmZjN2FlYjZmNDk0NDMxOTk5ZWRhMzA5OTBlNGY1NzczNjMyZWQyNThmZTAyNzY2NzM1OTlkYTZmY2UzNWNkYWQ3NzI2YTBiYjAyNGNhZDk5NmI4OGUwY2I5ODg1NGNlYjVjMGI2ZWM3NDhkOWY5Y2U2YTZjZDQzNzg1OGJhY2I4MTQ2MThhMjcyZmYzYTQxNWM2ZTA3ZjNkYjA5ODg3NzdmZGVjODQ1YTk3YmY3ZDEwMmRkMCIKIAogUEtDUzcgUGFyc2UgRmFpbHVyZSBJbnZhbGlkIEFTTjE6IENoYW5nZSB0YWcgMzAgdG8gMDIgIzIxMS4wCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NgogcGtjczdfYXNuMV9mYWlsOiIzMDgyMDUwMDA2MDkyYTg2NDg4NmY3MGQwMTA3MDJhMDgyMDRmMTMwODIwNGVkMDIwMTAxMzEwZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGIwNjA5MmE4NjQ4ODZmNzBkMDEwNzAxYTA4MjAzNGQzMDgyMDM0OTMwODIwMjMxYTAwMzAyMDEwMjAyMTQ3YmRlZGRkMjQ0NGNkMWNkZmU1YzQxYTgxMDJjODliN2RmMmU2Y2JmMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMzAxZTE3MGQzMjMyMzEzMDMyMzgzMTM2MzEzMDM1MzY1YTE3MGQzMjMzMzEzMDMyMzgzMTM2MzEzMDM1MzY1YTMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTMwODIwMTIyMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDM4MjAxMGYwMDMwODIwMTBhMDI4MjAxMDEwMGM4YjZjZjY5ODk5Y2QxZjBlYmI0Y2E2NDVjMDVlNzBlMGQyZWZlZGRjYzYxZDA4OWNiZDUxNWEzOWEzNTc5YjkyMzQzYjYxZWM3NTAwNjBmYjRlZDM3ODc2MzMyNDAwZTQyNWYxZDM3NmM3ZTc1YzI5NzMzMTRlZGY0YmIzMGM4ZjhkZDAzYjlmY2ZmOTU1YTI0NWQ0OTEzN2FkNmU2MDA1NmNhYzE5NTUyYTg2NWQ1MjE4NzE4N2NjMDQyYzljNDllM2UzYTljMTdhNTM0YjQ1M2NkYWJjMGNiMTEzYjRmNjNmNWIzMTc0YjllZTk5MDJiMTkxMGQxMTQ5NmEyNzlhNzQzMjZhZGNmZWUxMGJmZDllN2ViYWZiYjM3N2JlOWI2Mzk1OTE2NWQxM2RkNTc1MTE3MWNhZGFkM2MxZDNhZGFjNjhiYzgwMTFkNjFiNTRjZjYwMTc4YmUzNjgzOWE4OWFjOTFhYjQxOWUzY2EzN2Q2YmE4ODFkMjU1MThjNGRiNjhiY2E2ZjdjODM2MDJmNjk5YTg2YjE3ZmIxZTc3M2JjYmU3NGJiOTNhNDliMjUxYWU4NjQyOGI1NzQwZTE4NjhiYjFkNmZhYjllMjg3MTJlOThlYzMxOWFkOGZjYTRkNzMwMTBjNGIwOWM0YjgwNDU4OTYxZTdjZjA4MzUzMDIwMzAxMDAwMWEzNTMzMDUxMzAxZDA2MDM1NTFkMGUwNDE2MDQxNDhhZWVlNTk0N2NjNjdjNWRkNTE1YTc2ZTJhN2VjZDMxZWU1MmZkYzgzMDFmMDYwMzU1MWQyMzA0MTgzMDE2ODAxNDhhZWVlNTk0N2NjNjdjNWRkNTE1YTc2ZTJhN2VjZDMxZWU1MmZkYzgzMDBmMDYwMzU1MWQxMzAxMDFmZjA0MDUzMDAzMDEwMWZmMDIwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMDM4MjAxMDEwMDgyMWQ2Yjk4Y2Q0NTdkZWJkMmIwODFhY2EyN2ViZWNkNGY5M2FjYzgyODQ0M2IzOWVhYmZmYTlmYTRlOWU0NTQzYjQ2ZmNjMzFlMmI1YjQ4MTc3OTAzZGVhNjk2OWFjNGEyY2M2NTcwNjUwMzkwZjFiMDhkNDNhNGMyZjk3NWM3ZWQ4YmYzMzU2YzcyMTgzODAyMTI0NTFhOGYxMWRlNDY1NTNjYmNkNjViNDI1NGRkYjhmNjY4MzRlYjIxZGRhMmE4ZjMzYjU4MWUxNDg0NTU3YWNhMWI5NGVlODkzMWRkZjE2MDM3YjdhNzE3MTMyMWE5MTkzNmFmYzI3ZmZjZTM5NWRlNzVkNWY3MGNiOGI1YWVlMDVmZjUwNzA4OGQ2NWFmMWU0Mzk2NmNkNDJjYmU2ZjdmYWNmOGRhZTA1NWRkODIyMmIxNjk2NTIxNzIzZjgxMjQ1MTc4NTk1Yzk4NWFlOTE3ZmQ0YjM5OTg3NzNlMWE5N2I3YmQxMDA4NTQ0NmY0MjU5YmNjMDlhNDU0OTI5MjgyYzFiODliNzFlZDU4N2E3NzVlMGEzZDQ1MzYzNDFmNDVkYWU5NjllODA2Yzk2ZmVmYzcxMDY3Nzc2YzAyYmEyMjEyMmI5MTk5YjE0YzBjMjhjMDQ0ODc1MDkwNzBiOTdmM2RkMmQ2ZDk3MjczMzE4MjAxNzczMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwNWJlY2Q4NzE5NWMxZGVmZjkwYzI0YzkxMjY5YjU1YjNmMDY5YmMyMjVjMzI2YzMxNGMxYTUxNzg2ZmZlMTRjODMwYmU0ZTRiYzczY2JhMzZjOTc2NzdiNDQxNjgyNzliZTkxZTdjZGY3YzE5Mzg2YWUyMTg2MjcxOWQxM2EzYTBmZmYwODAzZDQ2MDk2MmYyY2RhODM3MTQ4NDg3MzI1MmMzZDcwNTRkYjgxNDNlMmIwODFhMzgxNmVkMDgwNGNhNTA5OWFlNWZlY2U4M2Q1YzJjMzc4M2IxOTg4YjRiNDZkYzk0ZTU1NTg3YTEwN2VhMTU0NmJmMjJkMjhhMDk3ZjY1MmE0MDY2ZGMyOTY1MjY5MDY5YWYyZjUxNzZiYjhjZTljYTZkMTFmOTY3NTdmMDMyMDRmNzU2NzAzNTg3ZDAwYWQ0MjQ3OTZjOTJmYzdhZWI2ZjQ5NDQzMTk5OWVkYTMwOTkwZTRmNTc3MzYzMmVkMjU4ZmUwMjc2NjczNTk5ZGE2ZmNlMzVjZGFkNzcyNmEwYmIwMjRjYWQ5OTZiODhlMGNiOTg4NTRjZWI1YzBiNmVjNzQ4ZDlmOWNlNmE2Y2Q0Mzc4NThiYWNiODE0NjE4YTI3MmZmM2E0MTVjNmUwN2YzZGIwOTg4Nzc3ZmRlYzg0NWE5N2JmN2QxMDJkZDAiCiAKIFBLQ1M3IFBhcnNlIEZhaWx1cmUgSW52YWxpZCBBU04xOiBDaGFuZ2UgbGVuZ3RoIGZyb20gMTMgdG8gMTQgIzIxMi4wCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NgogcGtjczdfYXNuMV9mYWlsOiIzMDgyMDUwMDA2MDkyYTg2NDg4NmY3MGQwMTA3MDJhMDgyMDRmMTMwODIwNGVkMDIwMTAxMzEwZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGIwNjA5MmE4NjQ4ODZmNzBkMDEwNzAxYTA4MjAzNGQzMDgyMDM0OTMwODIwMjMxYTAwMzAyMDEwMjAyMTQ3YmRlZGRkMjQ0NGNkMWNkZmU1YzQxYTgxMDJjODliN2RmMmU2Y2JmMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMzAxZTE3MGQzMjMyMzEzMDMyMzgzMTM2MzEzMDM1MzY1YTE3MGQzMjMzMzEzMDMyMzgzMTM2MzEzMDM1MzY1YTMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTMwODIwMTIyMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDM4MjAxMGYwMDMwODIwMTBhMDI4MjAxMDEwMGM4YjZjZjY5ODk5Y2QxZjBlYmI0Y2E2NDVjMDVlNzBlMGQyZWZlZGRjYzYxZDA4OWNiZDUxNWEzOWEzNTc5YjkyMzQzYjYxZWM3NTAwNjBmYjRlZDM3ODc2MzMyNDAwZTQyNWYxZDM3NmM3ZTc1YzI5NzMzMTRlZGY0YmIzMGM4ZjhkZDAzYjlmY2ZmOTU1YTI0NWQ0OTEzN2FkNmU2MDA1NmNhYzE5NTUyYTg2NWQ1MjE4NzE4N2NjMDQyYzljNDllM2UzYTljMTdhNTM0YjQ1M2NkYWJjMGNiMTEzYjRmNjNmNWIzMTc0YjllZTk5MDJiMTkxMGQxMTQ5NmEyNzlhNzQzMjZhZGNmZWUxMGJmZDllN2ViYWZiYjM3N2JlOWI2Mzk1OTE2NWQxM2RkNTc1MTE3MWNhZGFkM2MxZDNhZGFjNjhiYzgwMTFkNjFiNTRjZjYwMTc4YmUzNjgzOWE4OWFjOTFhYjQxOWUzY2EzN2Q2YmE4ODFkMjU1MThjNGRiNjhiY2E2ZjdjODM2MDJmNjk5YTg2YjE3ZmIxZTc3M2JjYmU3NGJiOTNhNDliMjUxYWU4NjQyOGI1NzQwZTE4NjhiYjFkNmZhYjllMjg3MTJlOThlYzMxOWFkOGZjYTRkNzMwMTBjNGIwOWM0YjgwNDU4OTYxZTdjZjA4MzUzMDIwMzAxMDAwMWEzNTMzMDUxMzAxZDA2MDM1NTFkMGUwNDE2MDQxNDhhZWVlNTk0N2NjNjdjNWRkNTE1YTc2ZTJhN2VjZDMxZWU1MmZkYzgzMDFmMDYwMzU1MWQyMzA0MTgzMDE2ODAxNDhhZWVlNTk0N2NjNjdjNWRkNTE1YTc2ZTJhN2VjZDMxZWU1MmZkYzgzMDBmMDYwMzU1MWQxMzAxMDFmZjA0MDUzMDAzMDEwMWZmMzAwZTA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMDM4MjAxMDEwMDgyMWQ2Yjk4Y2Q0NTdkZWJkMmIwODFhY2EyN2ViZWNkNGY5M2FjYzgyODQ0M2IzOWVhYmZmYTlmYTRlOWU0NTQzYjQ2ZmNjMzFlMmI1YjQ4MTc3OTAzZGVhNjk2OWFjNGEyY2M2NTcwNjUwMzkwZjFiMDhkNDNhNGMyZjk3NWM3ZWQ4YmYzMzU2YzcyMTgzODAyMTI0NTFhOGYxMWRlNDY1NTNjYmNkNjViNDI1NGRkYjhmNjY4MzRlYjIxZGRhMmE4ZjMzYjU4MWUxNDg0NTU3YWNhMWI5NGVlODkzMWRkZjE2MDM3YjdhNzE3MTMyMWE5MTkzNmFmYzI3ZmZjZTM5NWRlNzVkNWY3MGNiOGI1YWVlMDVmZjUwNzA4OGQ2NWFmMWU0Mzk2NmNkNDJjYmU2ZjdmYWNmOGRhZTA1NWRkODIyMmIxNjk2NTIxNzIzZjgxMjQ1MTc4NTk1Yzk4NWFlOTE3ZmQ0YjM5OTg3NzNlMWE5N2I3YmQxMDA4NTQ0NmY0MjU5YmNjMDlhNDU0OTI5MjgyYzFiODliNzFlZDU4N2E3NzVlMGEzZDQ1MzYzNDFmNDVkYWU5NjllODA2Yzk2ZmVmYzcxMDY3Nzc2YzAyYmEyMjEyMmI5MTk5YjE0YzBjMjhjMDQ0ODc1MDkwNzBiOTdmM2RkMmQ2ZDk3MjczMzE4MjAxNzczMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwNWJlY2Q4NzE5NWMxZGVmZjkwYzI0YzkxMjY5YjU1YjNmMDY5YmMyMjVjMzI2YzMxNGMxYTUxNzg2ZmZlMTRjODMwYmU0ZTRiYzczY2JhMzZjOTc2NzdiNDQxNjgyNzliZTkxZTdjZGY3YzE5Mzg2YWUyMTg2MjcxOWQxM2EzYTBmZmYwODAzZDQ2MDk2MmYyY2RhODM3MTQ4NDg3MzI1MmMzZDcwNTRkYjgxNDNlMmIwODFhMzgxNmVkMDgwNGNhNTA5OWFlNWZlY2U4M2Q1YzJjMzc4M2IxOTg4YjRiNDZkYzk0ZTU1NTg3YTEwN2VhMTU0NmJmMjJkMjhhMDk3ZjY1MmE0MDY2ZGMyOTY1MjY5MDY5YWYyZjUxNzZiYjhjZTljYTZkMTFmOTY3NTdmMDMyMDRmNzU2NzAzNTg3ZDAwYWQ0MjQ3OTZjOTJmYzdhZWI2ZjQ5NDQzMTk5OWVkYTMwOTkwZTRmNTc3MzYzMmVkMjU4ZmUwMjc2NjczNTk5ZGE2ZmNlMzVjZGFkNzcyNmEwYmIwMjRjYWQ5OTZiODhlMGNiOTg4NTRjZWI1YzBiNmVjNzQ4ZDlmOWNlNmE2Y2Q0Mzc4NThiYWNiODE0NjE4YTI3MmZmM2E0MTVjNmUwN2YzZGIwOTg4Nzc3ZmRlYzg0NWE5N2JmN2QxMDJkZDAiCiAKIFBLQ1M3IFBhcnNlIEZhaWx1cmUgSW52YWxpZCBBU04xOiBDaGFuZ2UgY29udGVudHMgb2YgdGFnIDMwIHRvIGNvbnRhaW4gb25lIHVuYWNjb3VudGVkIGV4dHJhIGJ5dGUgIzIxMy4wCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NgogcGtjczdfYXNuMV9mYWlsOiIzMDgyMDUwMDA2MDkyYTg2NDg4NmY3MGQwMTA3MDJhMDgyMDRmMTMwODIwNGVkMDIwMTAxMzEwZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGIwNjA5MmE4NjQ4ODZmNzBkMDEwNzAxYTA4MjAzNGQzMDgyMDM0OTMwODIwMjMxYTAwMzAyMDEwMjAyMTQ3YmRlZGRkMjQ0NGNkMWNkZmU1YzQxYTgxMDJjODliN2RmMmU2Y2JmMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMzAxZTE3MGQzMjMyMzEzMDMyMzgzMTM2MzEzMDM1MzY1YTE3MGQzMjMzMzEzMDMyMzgzMTM2MzEzMDM1MzY1YTMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTMwODIwMTIyMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDM4MjAxMGYwMDMwODIwMTBhMDI4MjAxMDEwMGM4YjZjZjY5ODk5Y2QxZjBlYmI0Y2E2NDVjMDVlNzBlMGQyZWZlZGRjYzYxZDA4OWNiZDUxNWEzOWEzNTc5YjkyMzQzYjYxZWM3NTAwNjBmYjRlZDM3ODc2MzMyNDAwZTQyNWYxZDM3NmM3ZTc1YzI5NzMzMTRlZGY0YmIzMGM4ZjhkZDAzYjlmY2ZmOTU1YTI0NWQ0OTEzN2FkNmU2MDA1NmNhYzE5NTUyYTg2NWQ1MjE4NzE4N2NjMDQyYzljNDllM2UzYTljMTdhNTM0YjQ1M2NkYWJjMGNiMTEzYjRmNjNmNWIzMTc0YjllZTk5MDJiMTkxMGQxMTQ5NmEyNzlhNzQzMjZhZGNmZWUxMGJmZDllN2ViYWZiYjM3N2JlOWI2Mzk1OTE2NWQxM2RkNTc1MTE3MWNhZGFkM2MxZDNhZGFjNjhiYzgwMTFkNjFiNTRjZjYwMTc4YmUzNjgzOWE4OWFjOTFhYjQxOWUzY2EzN2Q2YmE4ODFkMjU1MThjNGRiNjhiY2E2ZjdjODM2MDJmNjk5YTg2YjE3ZmIxZTc3M2JjYmU3NGJiOTNhNDliMjUxYWU4NjQyOGI1NzQwZTE4NjhiYjFkNmZhYjllMjg3MTJlOThlYzMxOWFkOGZjYTRkNzMwMTBjNGIwOWM0YjgwNDU4OTYxZTdjZjA4MzUzMDIwMzAxMDAwMWEzNTMzMDUxMzAxZDA2MDM1NTFkMGUwNDE2MDQxNDhhZWVlNTk0N2NjNjdjNWRkNTE1YTc2ZTJhN2VjZDMxZWU1MmZkYzgzMDFmMDYwMzU1MWQyMzA0MTgzMDE2ODAxNDhhZWVlNTk0N2NjNjdjNWRkNTE1YTc2ZTJhN2VjZDMxZWU1MmZkYzgzMDBmMDYwMzU1MWQxMzAxMDFmZjA0MDUzMDAzMDEwMWZmMzAwZTA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMDAwMzgyMDEwMTAwODIxZDZiOThjZDQ1N2RlYmQyYjA4MWFjYTI3ZWJlY2Q0ZjkzYWNjODI4NDQzYjM5ZWFiZmZhOWZhNGU5ZTQ1NDNiNDZmY2MzMWUyYjViNDgxNzc5MDNkZWE2OTY5YWM0YTJjYzY1NzA2NTAzOTBmMWIwOGQ0M2E0YzJmOTc1YzdlZDhiZjMzNTZjNzIxODM4MDIxMjQ1MWE4ZjExZGU0NjU1M2NiY2Q2NWI0MjU0ZGRiOGY2NjgzNGViMjFkZGEyYThmMzNiNTgxZTE0ODQ1NTdhY2ExYjk0ZWU4OTMxZGRmMTYwMzdiN2E3MTcxMzIxYTkxOTM2YWZjMjdmZmNlMzk1ZGU3NWQ1ZjcwY2I4YjVhZWUwNWZmNTA3MDg4ZDY1YWYxZTQzOTY2Y2Q0MmNiZTZmN2ZhY2Y4ZGFlMDU1ZGQ4MjIyYjE2OTY1MjE3MjNmODEyNDUxNzg1OTVjOTg1YWU5MTdmZDRiMzk5ODc3M2UxYTk3YjdiZDEwMDg1NDQ2ZjQyNTliY2MwOWE0NTQ5MjkyODJjMWI4OWI3MWVkNTg3YTc3NWUwYTNkNDUzNjM0MWY0NWRhZTk2OWU4MDZjOTZmZWZjNzEwNjc3NzZjMDJiYTIyMTIyYjkxOTliMTRjMGMyOGMwNDQ4NzUwOTA3MGI5N2YzZGQyZDZkOTcyNzMzMTgyMDE3NzMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTAyMTQ3YmRlZGRkMjQ0NGNkMWNkZmU1YzQxYTgxMDJjODliN2RmMmU2Y2JmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDA1YmVjZDg3MTk1YzFkZWZmOTBjMjRjOTEyNjliNTViM2YwNjliYzIyNWMzMjZjMzE0YzFhNTE3ODZmZmUxNGM4MzBiZTRlNGJjNzNjYmEzNmM5NzY3N2I0NDE2ODI3OWJlOTFlN2NkZjdjMTkzODZhZTIxODYyNzE5ZDEzYTNhMGZmZjA4MDNkNDYwOTYyZjJjZGE4MzcxNDg0ODczMjUyYzNkNzA1NGRiODE0M2UyYjA4MWEzODE2ZWQwODA0Y2E1MDk5YWU1ZmVjZTgzZDVjMmMzNzgzYjE5ODhiNGI0NmRjOTRlNTU1ODdhMTA3ZWExNTQ2YmYyMmQyOGEwOTdmNjUyYTQwNjZkYzI5NjUyNjkwNjlhZjJmNTE3NmJiOGNlOWNhNmQxMWY5Njc1N2YwMzIwNGY3NTY3MDM1ODdkMDBhZDQyNDc5NmM5MmZjN2FlYjZmNDk0NDMxOTk5ZWRhMzA5OTBlNGY1NzczNjMyZWQyNThmZTAyNzY2NzM1OTlkYTZmY2UzNWNkYWQ3NzI2YTBiYjAyNGNhZDk5NmI4OGUwY2I5ODg1NGNlYjVjMGI2ZWM3NDhkOWY5Y2U2YTZjZDQzNzg1OGJhY2I4MTQ2MThhMjcyZmYzYTQxNWM2ZTA3ZjNkYjA5ODg3NzdmZGVjODQ1YTk3YmY3ZDEwMmRkMCIKIAogUEtDUzcgUGFyc2UgRmFpbHVyZSBJbnZhbGlkIEFTTjE6IENoYW5nZSBsZW5ndGggZnJvbSAxMyB0byAxMiAjMjE0LjAKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBwa2NzN19hc24xX2ZhaWw6IjMwODIwNTAwMDYwOTJhODY0ODg2ZjcwZDAxMDcwMmEwODIwNGYxMzA4MjA0ZWQwMjAxMDEzMTBmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwYjA2MDkyYTg2NDg4NmY3MGQwMTA3MDFhMDgyMDM0ZDMwODIwMzQ5MzA4MjAyMzFhMDAzMDIwMTAyMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEzMDFlMTcwZDMyMzIzMTMwMzIzODMxMzYzMTMwMzUzNjVhMTcwZDMyMzMzMTMwMzIzODMxMzYzMTMwMzUzNjVhMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMzA4MjAxMjIzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwMzgyMDEwZjAwMzA4MjAxMGEwMjgyMDEwMTAwYzhiNmNmNjk4OTljZDFmMGViYjRjYTY0NWMwNWU3MGUwZDJlZmVkZGNjNjFkMDg5Y2JkNTE1YTM5YTM1NzliOTIzNDNiNjFlYzc1MDA2MGZiNGVkMzc4NzYzMzI0MDBlNDI1ZjFkMzc2YzdlNzVjMjk3MzMxNGVkZjRiYjMwYzhmOGRkMDNiOWZjZmY5NTVhMjQ1ZDQ5MTM3YWQ2ZTYwMDU2Y2FjMTk1NTJhODY1ZDUyMTg3MTg3Y2MwNDJjOWM0OWUzZTNhOWMxN2E1MzRiNDUzY2RhYmMwY2IxMTNiNGY2M2Y1YjMxNzRiOWVlOTkwMmIxOTEwZDExNDk2YTI3OWE3NDMyNmFkY2ZlZTEwYmZkOWU3ZWJhZmJiMzc3YmU5YjYzOTU5MTY1ZDEzZGQ1NzUxMTcxY2FkYWQzYzFkM2FkYWM2OGJjODAxMWQ2MWI1NGNmNjAxNzhiZTM2ODM5YTg5YWM5MWFiNDE5ZTNjYTM3ZDZiYTg4MWQyNTUxOGM0ZGI2OGJjYTZmN2M4MzYwMmY2OTlhODZiMTdmYjFlNzczYmNiZTc0YmI5M2E0OWIyNTFhZTg2NDI4YjU3NDBlMTg2OGJiMWQ2ZmFiOWUyODcxMmU5OGVjMzE5YWQ4ZmNhNGQ3MzAxMGM0YjA5YzRiODA0NTg5NjFlN2NmMDgzNTMwMjAzMDEwMDAxYTM1MzMwNTEzMDFkMDYwMzU1MWQwZTA0MTYwNDE0OGFlZWU1OTQ3Y2M2N2M1ZGQ1MTVhNzZlMmE3ZWNkMzFlZTUyZmRjODMwMWYwNjAzNTUxZDIzMDQxODMwMTY4MDE0OGFlZWU1OTQ3Y2M2N2M1ZGQ1MTVhNzZlMmE3ZWNkMzFlZTUyZmRjODMwMGYwNjAzNTUxZDEzMDEwMWZmMDQwNTMwMDMwMTAxZmYzMDBjMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAwMzgyMDEwMTAwODIxZDZiOThjZDQ1N2RlYmQyYjA4MWFjYTI3ZWJlY2Q0ZjkzYWNjODI4NDQzYjM5ZWFiZmZhOWZhNGU5ZTQ1NDNiNDZmY2MzMWUyYjViNDgxNzc5MDNkZWE2OTY5YWM0YTJjYzY1NzA2NTAzOTBmMWIwOGQ0M2E0YzJmOTc1YzdlZDhiZjMzNTZjNzIxODM4MDIxMjQ1MWE4ZjExZGU0NjU1M2NiY2Q2NWI0MjU0ZGRiOGY2NjgzNGViMjFkZGEyYThmMzNiNTgxZTE0ODQ1NTdhY2ExYjk0ZWU4OTMxZGRmMTYwMzdiN2E3MTcxMzIxYTkxOTM2YWZjMjdmZmNlMzk1ZGU3NWQ1ZjcwY2I4YjVhZWUwNWZmNTA3MDg4ZDY1YWYxZTQzOTY2Y2Q0MmNiZTZmN2ZhY2Y4ZGFlMDU1ZGQ4MjIyYjE2OTY1MjE3MjNmODEyNDUxNzg1OTVjOTg1YWU5MTdmZDRiMzk5ODc3M2UxYTk3YjdiZDEwMDg1NDQ2ZjQyNTliY2MwOWE0NTQ5MjkyODJjMWI4OWI3MWVkNTg3YTc3NWUwYTNkNDUzNjM0MWY0NWRhZTk2OWU4MDZjOTZmZWZjNzEwNjc3NzZjMDJiYTIyMTIyYjkxOTliMTRjMGMyOGMwNDQ4NzUwOTA3MGI5N2YzZGQyZDZkOTcyNzMzMTgyMDE3NzMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTAyMTQ3YmRlZGRkMjQ0NGNkMWNkZmU1YzQxYTgxMDJjODliN2RmMmU2Y2JmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDA1YmVjZDg3MTk1YzFkZWZmOTBjMjRjOTEyNjliNTViM2YwNjliYzIyNWMzMjZjMzE0YzFhNTE3ODZmZmUxNGM4MzBiZTRlNGJjNzNjYmEzNmM5NzY3N2I0NDE2ODI3OWJlOTFlN2NkZjdjMTkzODZhZTIxODYyNzE5ZDEzYTNhMGZmZjA4MDNkNDYwOTYyZjJjZGE4MzcxNDg0ODczMjUyYzNkNzA1NGRiODE0M2UyYjA4MWEzODE2ZWQwODA0Y2E1MDk5YWU1ZmVjZTgzZDVjMmMzNzgzYjE5ODhiNGI0NmRjOTRlNTU1ODdhMTA3ZWExNTQ2YmYyMmQyOGEwOTdmNjUyYTQwNjZkYzI5NjUyNjkwNjlhZjJmNTE3NmJiOGNlOWNhNmQxMWY5Njc1N2YwMzIwNGY3NTY3MDM1ODdkMDBhZDQyNDc5NmM5MmZjN2FlYjZmNDk0NDMxOTk5ZWRhMzA5OTBlNGY1NzczNjMyZWQyNThmZTAyNzY2NzM1OTlkYTZmY2UzNWNkYWQ3NzI2YTBiYjAyNGNhZDk5NmI4OGUwY2I5ODg1NGNlYjVjMGI2ZWM3NDhkOWY5Y2U2YTZjZDQzNzg1OGJhY2I4MTQ2MThhMjcyZmYzYTQxNWM2ZTA3ZjNkYjA5ODg3NzdmZGVjODQ1YTk3YmY3ZDEwMmRkMCIKIAogUEtDUzcgUGFyc2UgRmFpbHVyZSBJbnZhbGlkIEFTTjE6IENoYW5nZSB0YWcgMDYgdG8gMDIgIzIxNS4wCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NgogcGtjczdfYXNuMV9mYWlsOiIzMDgyMDUwMDA2MDkyYTg2NDg4NmY3MGQwMTA3MDJhMDgyMDRmMTMwODIwNGVkMDIwMTAxMzEwZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGIwNjA5MmE4NjQ4ODZmNzBkMDEwNzAxYTA4MjAzNGQzMDgyMDM0OTMwODIwMjMxYTAwMzAyMDEwMjAyMTQ3YmRlZGRkMjQ0NGNkMWNkZmU1YzQxYTgxMDJjODliN2RmMmU2Y2JmMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMzAxZTE3MGQzMjMyMzEzMDMyMzgzMTM2MzEzMDM1MzY1YTE3MGQzMjMzMzEzMDMyMzgzMTM2MzEzMDM1MzY1YTMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTMwODIwMTIyMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDM4MjAxMGYwMDMwODIwMTBhMDI4MjAxMDEwMGM4YjZjZjY5ODk5Y2QxZjBlYmI0Y2E2NDVjMDVlNzBlMGQyZWZlZGRjYzYxZDA4OWNiZDUxNWEzOWEzNTc5YjkyMzQzYjYxZWM3NTAwNjBmYjRlZDM3ODc2MzMyNDAwZTQyNWYxZDM3NmM3ZTc1YzI5NzMzMTRlZGY0YmIzMGM4ZjhkZDAzYjlmY2ZmOTU1YTI0NWQ0OTEzN2FkNmU2MDA1NmNhYzE5NTUyYTg2NWQ1MjE4NzE4N2NjMDQyYzljNDllM2UzYTljMTdhNTM0YjQ1M2NkYWJjMGNiMTEzYjRmNjNmNWIzMTc0YjllZTk5MDJiMTkxMGQxMTQ5NmEyNzlhNzQzMjZhZGNmZWUxMGJmZDllN2ViYWZiYjM3N2JlOWI2Mzk1OTE2NWQxM2RkNTc1MTE3MWNhZGFkM2MxZDNhZGFjNjhiYzgwMTFkNjFiNTRjZjYwMTc4YmUzNjgzOWE4OWFjOTFhYjQxOWUzY2EzN2Q2YmE4ODFkMjU1MThjNGRiNjhiY2E2ZjdjODM2MDJmNjk5YTg2YjE3ZmIxZTc3M2JjYmU3NGJiOTNhNDliMjUxYWU4NjQyOGI1NzQwZTE4NjhiYjFkNmZhYjllMjg3MTJlOThlYzMxOWFkOGZjYTRkNzMwMTBjNGIwOWM0YjgwNDU4OTYxZTdjZjA4MzUzMDIwMzAxMDAwMWEzNTMzMDUxMzAxZDA2MDM1NTFkMGUwNDE2MDQxNDhhZWVlNTk0N2NjNjdjNWRkNTE1YTc2ZTJhN2VjZDMxZWU1MmZkYzgzMDFmMDYwMzU1MWQyMzA0MTgzMDE2ODAxNDhhZWVlNTk0N2NjNjdjNWRkNTE1YTc2ZTJhN2VjZDMxZWU1MmZkYzgzMDBmMDYwMzU1MWQxMzAxMDFmZjA0MDUzMDAzMDEwMWZmMzAwZDAyMDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMDM4MjAxMDEwMDgyMWQ2Yjk4Y2Q0NTdkZWJkMmIwODFhY2EyN2ViZWNkNGY5M2FjYzgyODQ0M2IzOWVhYmZmYTlmYTRlOWU0NTQzYjQ2ZmNjMzFlMmI1YjQ4MTc3OTAzZGVhNjk2OWFjNGEyY2M2NTcwNjUwMzkwZjFiMDhkNDNhNGMyZjk3NWM3ZWQ4YmYzMzU2YzcyMTgzODAyMTI0NTFhOGYxMWRlNDY1NTNjYmNkNjViNDI1NGRkYjhmNjY4MzRlYjIxZGRhMmE4ZjMzYjU4MWUxNDg0NTU3YWNhMWI5NGVlODkzMWRkZjE2MDM3YjdhNzE3MTMyMWE5MTkzNmFmYzI3ZmZjZTM5NWRlNzVkNWY3MGNiOGI1YWVlMDVmZjUwNzA4OGQ2NWFmMWU0Mzk2NmNkNDJjYmU2ZjdmYWNmOGRhZTA1NWRkODIyMmIxNjk2NTIxNzIzZjgxMjQ1MTc4NTk1Yzk4NWFlOTE3ZmQ0YjM5OTg3NzNlMWE5N2I3YmQxMDA4NTQ0NmY0MjU5YmNjMDlhNDU0OTI5MjgyYzFiODliNzFlZDU4N2E3NzVlMGEzZDQ1MzYzNDFmNDVkYWU5NjllODA2Yzk2ZmVmYzcxMDY3Nzc2YzAyYmEyMjEyMmI5MTk5YjE0YzBjMjhjMDQ0ODc1MDkwNzBiOTdmM2RkMmQ2ZDk3MjczMzE4MjAxNzczMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwNWJlY2Q4NzE5NWMxZGVmZjkwYzI0YzkxMjY5YjU1YjNmMDY5YmMyMjVjMzI2YzMxNGMxYTUxNzg2ZmZlMTRjODMwYmU0ZTRiYzczY2JhMzZjOTc2NzdiNDQxNjgyNzliZTkxZTdjZGY3YzE5Mzg2YWUyMTg2MjcxOWQxM2EzYTBmZmYwODAzZDQ2MDk2MmYyY2RhODM3MTQ4NDg3MzI1MmMzZDcwNTRkYjgxNDNlMmIwODFhMzgxNmVkMDgwNGNhNTA5OWFlNWZlY2U4M2Q1YzJjMzc4M2IxOTg4YjRiNDZkYzk0ZTU1NTg3YTEwN2VhMTU0NmJmMjJkMjhhMDk3ZjY1MmE0MDY2ZGMyOTY1MjY5MDY5YWYyZjUxNzZiYjhjZTljYTZkMTFmOTY3NTdmMDMyMDRmNzU2NzAzNTg3ZDAwYWQ0MjQ3OTZjOTJmYzdhZWI2ZjQ5NDQzMTk5OWVkYTMwOTkwZTRmNTc3MzYzMmVkMjU4ZmUwMjc2NjczNTk5ZGE2ZmNlMzVjZGFkNzcyNmEwYmIwMjRjYWQ5OTZiODhlMGNiOTg4NTRjZWI1YzBiNmVjNzQ4ZDlmOWNlNmE2Y2Q0Mzc4NThiYWNiODE0NjE4YTI3MmZmM2E0MTVjNmUwN2YzZGIwOTg4Nzc3ZmRlYzg0NWE5N2JmN2QxMDJkZDAiCiAKIFBLQ1M3IFBhcnNlIEZhaWx1cmUgSW52YWxpZCBBU04xOiBDaGFuZ2UgbGVuZ3RoIGZyb20gOSB0byAxMCAjMjE2LjAKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBwa2NzN19hc24xX2ZhaWw6IjMwODIwNTAwMDYwOTJhODY0ODg2ZjcwZDAxMDcwMmEwODIwNGYxMzA4MjA0ZWQwMjAxMDEzMTBmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwYjA2MDkyYTg2NDg4NmY3MGQwMTA3MDFhMDgyMDM0ZDMwODIwMzQ5MzA4MjAyMzFhMDAzMDIwMTAyMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEzMDFlMTcwZDMyMzIzMTMwMzIzODMxMzYzMTMwMzUzNjVhMTcwZDMyMzMzMTMwMzIzODMxMzYzMTMwMzUzNjVhMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMzA4MjAxMjIzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwMzgyMDEwZjAwMzA4MjAxMGEwMjgyMDEwMTAwYzhiNmNmNjk4OTljZDFmMGViYjRjYTY0NWMwNWU3MGUwZDJlZmVkZGNjNjFkMDg5Y2JkNTE1YTM5YTM1NzliOTIzNDNiNjFlYzc1MDA2MGZiNGVkMzc4NzYzMzI0MDBlNDI1ZjFkMzc2YzdlNzVjMjk3MzMxNGVkZjRiYjMwYzhmOGRkMDNiOWZjZmY5NTVhMjQ1ZDQ5MTM3YWQ2ZTYwMDU2Y2FjMTk1NTJhODY1ZDUyMTg3MTg3Y2MwNDJjOWM0OWUzZTNhOWMxN2E1MzRiNDUzY2RhYmMwY2IxMTNiNGY2M2Y1YjMxNzRiOWVlOTkwMmIxOTEwZDExNDk2YTI3OWE3NDMyNmFkY2ZlZTEwYmZkOWU3ZWJhZmJiMzc3YmU5YjYzOTU5MTY1ZDEzZGQ1NzUxMTcxY2FkYWQzYzFkM2FkYWM2OGJjODAxMWQ2MWI1NGNmNjAxNzhiZTM2ODM5YTg5YWM5MWFiNDE5ZTNjYTM3ZDZiYTg4MWQyNTUxOGM0ZGI2OGJjYTZmN2M4MzYwMmY2OTlhODZiMTdmYjFlNzczYmNiZTc0YmI5M2E0OWIyNTFhZTg2NDI4YjU3NDBlMTg2OGJiMWQ2ZmFiOWUyODcxMmU5OGVjMzE5YWQ4ZmNhNGQ3MzAxMGM0YjA5YzRiODA0NTg5NjFlN2NmMDgzNTMwMjAzMDEwMDAxYTM1MzMwNTEzMDFkMDYwMzU1MWQwZTA0MTYwNDE0OGFlZWU1OTQ3Y2M2N2M1ZGQ1MTVhNzZlMmE3ZWNkMzFlZTUyZmRjODMwMWYwNjAzNTUxZDIzMDQxODMwMTY4MDE0OGFlZWU1OTQ3Y2M2N2M1ZGQ1MTVhNzZlMmE3ZWNkMzFlZTUyZmRjODMwMGYwNjAzNTUxZDEzMDEwMWZmMDQwNTMwMDMwMTAxZmYzMDBkMDYwYTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAwMzgyMDEwMTAwODIxZDZiOThjZDQ1N2RlYmQyYjA4MWFjYTI3ZWJlY2Q0ZjkzYWNjODI4NDQzYjM5ZWFiZmZhOWZhNGU5ZTQ1NDNiNDZmY2MzMWUyYjViNDgxNzc5MDNkZWE2OTY5YWM0YTJjYzY1NzA2NTAzOTBmMWIwOGQ0M2E0YzJmOTc1YzdlZDhiZjMzNTZjNzIxODM4MDIxMjQ1MWE4ZjExZGU0NjU1M2NiY2Q2NWI0MjU0ZGRiOGY2NjgzNGViMjFkZGEyYThmMzNiNTgxZTE0ODQ1NTdhY2ExYjk0ZWU4OTMxZGRmMTYwMzdiN2E3MTcxMzIxYTkxOTM2YWZjMjdmZmNlMzk1ZGU3NWQ1ZjcwY2I4YjVhZWUwNWZmNTA3MDg4ZDY1YWYxZTQzOTY2Y2Q0MmNiZTZmN2ZhY2Y4ZGFlMDU1ZGQ4MjIyYjE2OTY1MjE3MjNmODEyNDUxNzg1OTVjOTg1YWU5MTdmZDRiMzk5ODc3M2UxYTk3YjdiZDEwMDg1NDQ2ZjQyNTliY2MwOWE0NTQ5MjkyODJjMWI4OWI3MWVkNTg3YTc3NWUwYTNkNDUzNjM0MWY0NWRhZTk2OWU4MDZjOTZmZWZjNzEwNjc3NzZjMDJiYTIyMTIyYjkxOTliMTRjMGMyOGMwNDQ4NzUwOTA3MGI5N2YzZGQyZDZkOTcyNzMzMTgyMDE3NzMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTAyMTQ3YmRlZGRkMjQ0NGNkMWNkZmU1YzQxYTgxMDJjODliN2RmMmU2Y2JmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDA1YmVjZDg3MTk1YzFkZWZmOTBjMjRjOTEyNjliNTViM2YwNjliYzIyNWMzMjZjMzE0YzFhNTE3ODZmZmUxNGM4MzBiZTRlNGJjNzNjYmEzNmM5NzY3N2I0NDE2ODI3OWJlOTFlN2NkZjdjMTkzODZhZTIxODYyNzE5ZDEzYTNhMGZmZjA4MDNkNDYwOTYyZjJjZGE4MzcxNDg0ODczMjUyYzNkNzA1NGRiODE0M2UyYjA4MWEzODE2ZWQwODA0Y2E1MDk5YWU1ZmVjZTgzZDVjMmMzNzgzYjE5ODhiNGI0NmRjOTRlNTU1ODdhMTA3ZWExNTQ2YmYyMmQyOGEwOTdmNjUyYTQwNjZkYzI5NjUyNjkwNjlhZjJmNTE3NmJiOGNlOWNhNmQxMWY5Njc1N2YwMzIwNGY3NTY3MDM1ODdkMDBhZDQyNDc5NmM5MmZjN2FlYjZmNDk0NDMxOTk5ZWRhMzA5OTBlNGY1NzczNjMyZWQyNThmZTAyNzY2NzM1OTlkYTZmY2UzNWNkYWQ3NzI2YTBiYjAyNGNhZDk5NmI4OGUwY2I5ODg1NGNlYjVjMGI2ZWM3NDhkOWY5Y2U2YTZjZDQzNzg1OGJhY2I4MTQ2MThhMjcyZmYzYTQxNWM2ZTA3ZjNkYjA5ODg3NzdmZGVjODQ1YTk3YmY3ZDEwMmRkMCIKIAogUEtDUzcgUGFyc2UgRmFpbHVyZSBJbnZhbGlkIEFTTjE6IENoYW5nZSBsZW5ndGggZnJvbSA5IHRvIDggIzIxNy4wCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NgogcGtjczdfYXNuMV9mYWlsOiIzMDgyMDUwMDA2MDkyYTg2NDg4NmY3MGQwMTA3MDJhMDgyMDRmMTMwODIwNGVkMDIwMTAxMzEwZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGIwNjA5MmE4NjQ4ODZmNzBkMDEwNzAxYTA4MjAzNGQzMDgyMDM0OTMwODIwMjMxYTAwMzAyMDEwMjAyMTQ3YmRlZGRkMjQ0NGNkMWNkZmU1YzQxYTgxMDJjODliN2RmMmU2Y2JmMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMzAxZTE3MGQzMjMyMzEzMDMyMzgzMTM2MzEzMDM1MzY1YTE3MGQzMjMzMzEzMDMyMzgzMTM2MzEzMDM1MzY1YTMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTMwODIwMTIyMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDM4MjAxMGYwMDMwODIwMTBhMDI4MjAxMDEwMGM4YjZjZjY5ODk5Y2QxZjBlYmI0Y2E2NDVjMDVlNzBlMGQyZWZlZGRjYzYxZDA4OWNiZDUxNWEzOWEzNTc5YjkyMzQzYjYxZWM3NTAwNjBmYjRlZDM3ODc2MzMyNDAwZTQyNWYxZDM3NmM3ZTc1YzI5NzMzMTRlZGY0YmIzMGM4ZjhkZDAzYjlmY2ZmOTU1YTI0NWQ0OTEzN2FkNmU2MDA1NmNhYzE5NTUyYTg2NWQ1MjE4NzE4N2NjMDQyYzljNDllM2UzYTljMTdhNTM0YjQ1M2NkYWJjMGNiMTEzYjRmNjNmNWIzMTc0YjllZTk5MDJiMTkxMGQxMTQ5NmEyNzlhNzQzMjZhZGNmZWUxMGJmZDllN2ViYWZiYjM3N2JlOWI2Mzk1OTE2NWQxM2RkNTc1MTE3MWNhZGFkM2MxZDNhZGFjNjhiYzgwMTFkNjFiNTRjZjYwMTc4YmUzNjgzOWE4OWFjOTFhYjQxOWUzY2EzN2Q2YmE4ODFkMjU1MThjNGRiNjhiY2E2ZjdjODM2MDJmNjk5YTg2YjE3ZmIxZTc3M2JjYmU3NGJiOTNhNDliMjUxYWU4NjQyOGI1NzQwZTE4NjhiYjFkNmZhYjllMjg3MTJlOThlYzMxOWFkOGZjYTRkNzMwMTBjNGIwOWM0YjgwNDU4OTYxZTdjZjA4MzUzMDIwMzAxMDAwMWEzNTMzMDUxMzAxZDA2MDM1NTFkMGUwNDE2MDQxNDhhZWVlNTk0N2NjNjdjNWRkNTE1YTc2ZTJhN2VjZDMxZWU1MmZkYzgzMDFmMDYwMzU1MWQyMzA0MTgzMDE2ODAxNDhhZWVlNTk0N2NjNjdjNWRkNTE1YTc2ZTJhN2VjZDMxZWU1MmZkYzgzMDBmMDYwMzU1MWQxMzAxMDFmZjA0MDUzMDAzMDEwMWZmMzAwZDA2MDgyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMDM4MjAxMDEwMDgyMWQ2Yjk4Y2Q0NTdkZWJkMmIwODFhY2EyN2ViZWNkNGY5M2FjYzgyODQ0M2IzOWVhYmZmYTlmYTRlOWU0NTQzYjQ2ZmNjMzFlMmI1YjQ4MTc3OTAzZGVhNjk2OWFjNGEyY2M2NTcwNjUwMzkwZjFiMDhkNDNhNGMyZjk3NWM3ZWQ4YmYzMzU2YzcyMTgzODAyMTI0NTFhOGYxMWRlNDY1NTNjYmNkNjViNDI1NGRkYjhmNjY4MzRlYjIxZGRhMmE4ZjMzYjU4MWUxNDg0NTU3YWNhMWI5NGVlODkzMWRkZjE2MDM3YjdhNzE3MTMyMWE5MTkzNmFmYzI3ZmZjZTM5NWRlNzVkNWY3MGNiOGI1YWVlMDVmZjUwNzA4OGQ2NWFmMWU0Mzk2NmNkNDJjYmU2ZjdmYWNmOGRhZTA1NWRkODIyMmIxNjk2NTIxNzIzZjgxMjQ1MTc4NTk1Yzk4NWFlOTE3ZmQ0YjM5OTg3NzNlMWE5N2I3YmQxMDA4NTQ0NmY0MjU5YmNjMDlhNDU0OTI5MjgyYzFiODliNzFlZDU4N2E3NzVlMGEzZDQ1MzYzNDFmNDVkYWU5NjllODA2Yzk2ZmVmYzcxMDY3Nzc2YzAyYmEyMjEyMmI5MTk5YjE0YzBjMjhjMDQ0ODc1MDkwNzBiOTdmM2RkMmQ2ZDk3MjczMzE4MjAxNzczMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwNWJlY2Q4NzE5NWMxZGVmZjkwYzI0YzkxMjY5YjU1YjNmMDY5YmMyMjVjMzI2YzMxNGMxYTUxNzg2ZmZlMTRjODMwYmU0ZTRiYzczY2JhMzZjOTc2NzdiNDQxNjgyNzliZTkxZTdjZGY3YzE5Mzg2YWUyMTg2MjcxOWQxM2EzYTBmZmYwODAzZDQ2MDk2MmYyY2RhODM3MTQ4NDg3MzI1MmMzZDcwNTRkYjgxNDNlMmIwODFhMzgxNmVkMDgwNGNhNTA5OWFlNWZlY2U4M2Q1YzJjMzc4M2IxOTg4YjRiNDZkYzk0ZTU1NTg3YTEwN2VhMTU0NmJmMjJkMjhhMDk3ZjY1MmE0MDY2ZGMyOTY1MjY5MDY5YWYyZjUxNzZiYjhjZTljYTZkMTFmOTY3NTdmMDMyMDRmNzU2NzAzNTg3ZDAwYWQ0MjQ3OTZjOTJmYzdhZWI2ZjQ5NDQzMTk5OWVkYTMwOTkwZTRmNTc3MzYzMmVkMjU4ZmUwMjc2NjczNTk5ZGE2ZmNlMzVjZGFkNzcyNmEwYmIwMjRjYWQ5OTZiODhlMGNiOTg4NTRjZWI1YzBiNmVjNzQ4ZDlmOWNlNmE2Y2Q0Mzc4NThiYWNiODE0NjE4YTI3MmZmM2E0MTVjNmUwN2YzZGIwOTg4Nzc3ZmRlYzg0NWE5N2JmN2QxMDJkZDAiCiAKIFBLQ1M3IFBhcnNlIEZhaWx1cmUgSW52YWxpZCBBU04xOiBDaGFuZ2UgdGFnIDA1IHRvIDAyICMyMTguMAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHBrY3M3X2FzbjFfZmFpbDoiMzA4MjA1MDAwNjA5MmE4NjQ4ODZmNzBkMDEwNzAyYTA4MjA0ZjEzMDgyMDRlZDAyMDEwMTMxMGYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBiMDYwOTJhODY0ODg2ZjcwZDAxMDcwMWEwODIwMzRkMzA4MjAzNDkzMDgyMDIzMWEwMDMwMjAxMDIwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTMwMWUxNzBkMzIzMjMxMzAzMjM4MzEzNjMxMzAzNTM2NWExNzBkMzIzMzMxMzAzMjM4MzEzNjMxMzAzNTM2NWEzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEzMDgyMDEyMjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDAzODIwMTBmMDAzMDgyMDEwYTAyODIwMTAxMDBjOGI2Y2Y2OTg5OWNkMWYwZWJiNGNhNjQ1YzA1ZTcwZTBkMmVmZWRkY2M2MWQwODljYmQ1MTVhMzlhMzU3OWI5MjM0M2I2MWVjNzUwMDYwZmI0ZWQzNzg3NjMzMjQwMGU0MjVmMWQzNzZjN2U3NWMyOTczMzE0ZWRmNGJiMzBjOGY4ZGQwM2I5ZmNmZjk1NWEyNDVkNDkxMzdhZDZlNjAwNTZjYWMxOTU1MmE4NjVkNTIxODcxODdjYzA0MmM5YzQ5ZTNlM2E5YzE3YTUzNGI0NTNjZGFiYzBjYjExM2I0ZjYzZjViMzE3NGI5ZWU5OTAyYjE5MTBkMTE0OTZhMjc5YTc0MzI2YWRjZmVlMTBiZmQ5ZTdlYmFmYmIzNzdiZTliNjM5NTkxNjVkMTNkZDU3NTExNzFjYWRhZDNjMWQzYWRhYzY4YmM4MDExZDYxYjU0Y2Y2MDE3OGJlMzY4MzlhODlhYzkxYWI0MTllM2NhMzdkNmJhODgxZDI1NTE4YzRkYjY4YmNhNmY3YzgzNjAyZjY5OWE4NmIxN2ZiMWU3NzNiY2JlNzRiYjkzYTQ5YjI1MWFlODY0MjhiNTc0MGUxODY4YmIxZDZmYWI5ZTI4NzEyZTk4ZWMzMTlhZDhmY2E0ZDczMDEwYzRiMDljNGI4MDQ1ODk2MWU3Y2YwODM1MzAyMDMwMTAwMDFhMzUzMzA1MTMwMWQwNjAzNTUxZDBlMDQxNjA0MTQ4YWVlZTU5NDdjYzY3YzVkZDUxNWE3NmUyYTdlY2QzMWVlNTJmZGM4MzAxZjA2MDM1NTFkMjMwNDE4MzAxNjgwMTQ4YWVlZTU5NDdjYzY3YzVkZDUxNWE3NmUyYTdlY2QzMWVlNTJmZGM4MzAwZjA2MDM1NTFkMTMwMTAxZmYwNDA1MzAwMzAxMDFmZjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDIwMDAzODIwMTAxMDA4MjFkNmI5OGNkNDU3ZGViZDJiMDgxYWNhMjdlYmVjZDRmOTNhY2M4Mjg0NDNiMzllYWJmZmE5ZmE0ZTllNDU0M2I0NmZjYzMxZTJiNWI0ODE3NzkwM2RlYTY5NjlhYzRhMmNjNjU3MDY1MDM5MGYxYjA4ZDQzYTRjMmY5NzVjN2VkOGJmMzM1NmM3MjE4MzgwMjEyNDUxYThmMTFkZTQ2NTUzY2JjZDY1YjQyNTRkZGI4ZjY2ODM0ZWIyMWRkYTJhOGYzM2I1ODFlMTQ4NDU1N2FjYTFiOTRlZTg5MzFkZGYxNjAzN2I3YTcxNzEzMjFhOTE5MzZhZmMyN2ZmY2UzOTVkZTc1ZDVmNzBjYjhiNWFlZTA1ZmY1MDcwODhkNjVhZjFlNDM5NjZjZDQyY2JlNmY3ZmFjZjhkYWUwNTVkZDgyMjJiMTY5NjUyMTcyM2Y4MTI0NTE3ODU5NWM5ODVhZTkxN2ZkNGIzOTk4NzczZTFhOTdiN2JkMTAwODU0NDZmNDI1OWJjYzA5YTQ1NDkyOTI4MmMxYjg5YjcxZWQ1ODdhNzc1ZTBhM2Q0NTM2MzQxZjQ1ZGFlOTY5ZTgwNmM5NmZlZmM3MTA2Nzc3NmMwMmJhMjIxMjJiOTE5OWIxNGMwYzI4YzA0NDg3NTA5MDcwYjk3ZjNkZDJkNmQ5NzI3MzMxODIwMTc3MzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDViZWNkODcxOTVjMWRlZmY5MGMyNGM5MTI2OWI1NWIzZjA2OWJjMjI1YzMyNmMzMTRjMWE1MTc4NmZmZTE0YzgzMGJlNGU0YmM3M2NiYTM2Yzk3Njc3YjQ0MTY4Mjc5YmU5MWU3Y2RmN2MxOTM4NmFlMjE4NjI3MTlkMTNhM2EwZmZmMDgwM2Q0NjA5NjJmMmNkYTgzNzE0ODQ4NzMyNTJjM2Q3MDU0ZGI4MTQzZTJiMDgxYTM4MTZlZDA4MDRjYTUwOTlhZTVmZWNlODNkNWMyYzM3ODNiMTk4OGI0YjQ2ZGM5NGU1NTU4N2ExMDdlYTE1NDZiZjIyZDI4YTA5N2Y2NTJhNDA2NmRjMjk2NTI2OTA2OWFmMmY1MTc2YmI4Y2U5Y2E2ZDExZjk2NzU3ZjAzMjA0Zjc1NjcwMzU4N2QwMGFkNDI0Nzk2YzkyZmM3YWViNmY0OTQ0MzE5OTllZGEzMDk5MGU0ZjU3NzM2MzJlZDI1OGZlMDI3NjY3MzU5OWRhNmZjZTM1Y2RhZDc3MjZhMGJiMDI0Y2FkOTk2Yjg4ZTBjYjk4ODU0Y2ViNWMwYjZlYzc0OGQ5ZjljZTZhNmNkNDM3ODU4YmFjYjgxNDYxOGEyNzJmZjNhNDE1YzZlMDdmM2RiMDk4ODc3N2ZkZWM4NDVhOTdiZjdkMTAyZGQwIgogCiBQS0NTNyBQYXJzZSBGYWlsdXJlIEludmFsaWQgQVNOMTogQ2hhbmdlIGxlbmd0aCBmcm9tIDAgdG8gMSAjMjE5LjAKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBwa2NzN19hc24xX2ZhaWw6IjMwODIwNTAwMDYwOTJhODY0ODg2ZjcwZDAxMDcwMmEwODIwNGYxMzA4MjA0ZWQwMjAxMDEzMTBmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwYjA2MDkyYTg2NDg4NmY3MGQwMTA3MDFhMDgyMDM0ZDMwODIwMzQ5MzA4MjAyMzFhMDAzMDIwMTAyMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEzMDFlMTcwZDMyMzIzMTMwMzIzODMxMzYzMTMwMzUzNjVhMTcwZDMyMzMzMTMwMzIzODMxMzYzMTMwMzUzNjVhMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMzA4MjAxMjIzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwMzgyMDEwZjAwMzA4MjAxMGEwMjgyMDEwMTAwYzhiNmNmNjk4OTljZDFmMGViYjRjYTY0NWMwNWU3MGUwZDJlZmVkZGNjNjFkMDg5Y2JkNTE1YTM5YTM1NzliOTIzNDNiNjFlYzc1MDA2MGZiNGVkMzc4NzYzMzI0MDBlNDI1ZjFkMzc2YzdlNzVjMjk3MzMxNGVkZjRiYjMwYzhmOGRkMDNiOWZjZmY5NTVhMjQ1ZDQ5MTM3YWQ2ZTYwMDU2Y2FjMTk1NTJhODY1ZDUyMTg3MTg3Y2MwNDJjOWM0OWUzZTNhOWMxN2E1MzRiNDUzY2RhYmMwY2IxMTNiNGY2M2Y1YjMxNzRiOWVlOTkwMmIxOTEwZDExNDk2YTI3OWE3NDMyNmFkY2ZlZTEwYmZkOWU3ZWJhZmJiMzc3YmU5YjYzOTU5MTY1ZDEzZGQ1NzUxMTcxY2FkYWQzYzFkM2FkYWM2OGJjODAxMWQ2MWI1NGNmNjAxNzhiZTM2ODM5YTg5YWM5MWFiNDE5ZTNjYTM3ZDZiYTg4MWQyNTUxOGM0ZGI2OGJjYTZmN2M4MzYwMmY2OTlhODZiMTdmYjFlNzczYmNiZTc0YmI5M2E0OWIyNTFhZTg2NDI4YjU3NDBlMTg2OGJiMWQ2ZmFiOWUyODcxMmU5OGVjMzE5YWQ4ZmNhNGQ3MzAxMGM0YjA5YzRiODA0NTg5NjFlN2NmMDgzNTMwMjAzMDEwMDAxYTM1MzMwNTEzMDFkMDYwMzU1MWQwZTA0MTYwNDE0OGFlZWU1OTQ3Y2M2N2M1ZGQ1MTVhNzZlMmE3ZWNkMzFlZTUyZmRjODMwMWYwNjAzNTUxZDIzMDQxODMwMTY4MDE0OGFlZWU1OTQ3Y2M2N2M1ZGQ1MTVhNzZlMmE3ZWNkMzFlZTUyZmRjODMwMGYwNjAzNTUxZDEzMDEwMWZmMDQwNTMwMDMwMTAxZmYzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDEwMzgyMDEwMTAwODIxZDZiOThjZDQ1N2RlYmQyYjA4MWFjYTI3ZWJlY2Q0ZjkzYWNjODI4NDQzYjM5ZWFiZmZhOWZhNGU5ZTQ1NDNiNDZmY2MzMWUyYjViNDgxNzc5MDNkZWE2OTY5YWM0YTJjYzY1NzA2NTAzOTBmMWIwOGQ0M2E0YzJmOTc1YzdlZDhiZjMzNTZjNzIxODM4MDIxMjQ1MWE4ZjExZGU0NjU1M2NiY2Q2NWI0MjU0ZGRiOGY2NjgzNGViMjFkZGEyYThmMzNiNTgxZTE0ODQ1NTdhY2ExYjk0ZWU4OTMxZGRmMTYwMzdiN2E3MTcxMzIxYTkxOTM2YWZjMjdmZmNlMzk1ZGU3NWQ1ZjcwY2I4YjVhZWUwNWZmNTA3MDg4ZDY1YWYxZTQzOTY2Y2Q0MmNiZTZmN2ZhY2Y4ZGFlMDU1ZGQ4MjIyYjE2OTY1MjE3MjNmODEyNDUxNzg1OTVjOTg1YWU5MTdmZDRiMzk5ODc3M2UxYTk3YjdiZDEwMDg1NDQ2ZjQyNTliY2MwOWE0NTQ5MjkyODJjMWI4OWI3MWVkNTg3YTc3NWUwYTNkNDUzNjM0MWY0NWRhZTk2OWU4MDZjOTZmZWZjNzEwNjc3NzZjMDJiYTIyMTIyYjkxOTliMTRjMGMyOGMwNDQ4NzUwOTA3MGI5N2YzZGQyZDZkOTcyNzMzMTgyMDE3NzMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTAyMTQ3YmRlZGRkMjQ0NGNkMWNkZmU1YzQxYTgxMDJjODliN2RmMmU2Y2JmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDA1YmVjZDg3MTk1YzFkZWZmOTBjMjRjOTEyNjliNTViM2YwNjliYzIyNWMzMjZjMzE0YzFhNTE3ODZmZmUxNGM4MzBiZTRlNGJjNzNjYmEzNmM5NzY3N2I0NDE2ODI3OWJlOTFlN2NkZjdjMTkzODZhZTIxODYyNzE5ZDEzYTNhMGZmZjA4MDNkNDYwOTYyZjJjZGE4MzcxNDg0ODczMjUyYzNkNzA1NGRiODE0M2UyYjA4MWEzODE2ZWQwODA0Y2E1MDk5YWU1ZmVjZTgzZDVjMmMzNzgzYjE5ODhiNGI0NmRjOTRlNTU1ODdhMTA3ZWExNTQ2YmYyMmQyOGEwOTdmNjUyYTQwNjZkYzI5NjUyNjkwNjlhZjJmNTE3NmJiOGNlOWNhNmQxMWY5Njc1N2YwMzIwNGY3NTY3MDM1ODdkMDBhZDQyNDc5NmM5MmZjN2FlYjZmNDk0NDMxOTk5ZWRhMzA5OTBlNGY1NzczNjMyZWQyNThmZTAyNzY2NzM1OTlkYTZmY2UzNWNkYWQ3NzI2YTBiYjAyNGNhZDk5NmI4OGUwY2I5ODg1NGNlYjVjMGI2ZWM3NDhkOWY5Y2U2YTZjZDQzNzg1OGJhY2I4MTQ2MThhMjcyZmYzYTQxNWM2ZTA3ZjNkYjA5ODg3NzdmZGVjODQ1YTk3YmY3ZDEwMmRkMCIKIAogUEtDUzcgUGFyc2UgRmFpbHVyZSBJbnZhbGlkIEFTTjE6IENoYW5nZSB0YWcgMDMgdG8gMDIgIzIyMC4wCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NgogcGtjczdfYXNuMV9mYWlsOiIzMDgyMDUwMDA2MDkyYTg2NDg4NmY3MGQwMTA3MDJhMDgyMDRmMTMwODIwNGVkMDIwMTAxMzEwZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGIwNjA5MmE4NjQ4ODZmNzBkMDEwNzAxYTA4MjAzNGQzMDgyMDM0OTMwODIwMjMxYTAwMzAyMDEwMjAyMTQ3YmRlZGRkMjQ0NGNkMWNkZmU1YzQxYTgxMDJjODliN2RmMmU2Y2JmMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMzAxZTE3MGQzMjMyMzEzMDMyMzgzMTM2MzEzMDM1MzY1YTE3MGQzMjMzMzEzMDMyMzgzMTM2MzEzMDM1MzY1YTMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTMwODIwMTIyMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDM4MjAxMGYwMDMwODIwMTBhMDI4MjAxMDEwMGM4YjZjZjY5ODk5Y2QxZjBlYmI0Y2E2NDVjMDVlNzBlMGQyZWZlZGRjYzYxZDA4OWNiZDUxNWEzOWEzNTc5YjkyMzQzYjYxZWM3NTAwNjBmYjRlZDM3ODc2MzMyNDAwZTQyNWYxZDM3NmM3ZTc1YzI5NzMzMTRlZGY0YmIzMGM4ZjhkZDAzYjlmY2ZmOTU1YTI0NWQ0OTEzN2FkNmU2MDA1NmNhYzE5NTUyYTg2NWQ1MjE4NzE4N2NjMDQyYzljNDllM2UzYTljMTdhNTM0YjQ1M2NkYWJjMGNiMTEzYjRmNjNmNWIzMTc0YjllZTk5MDJiMTkxMGQxMTQ5NmEyNzlhNzQzMjZhZGNmZWUxMGJmZDllN2ViYWZiYjM3N2JlOWI2Mzk1OTE2NWQxM2RkNTc1MTE3MWNhZGFkM2MxZDNhZGFjNjhiYzgwMTFkNjFiNTRjZjYwMTc4YmUzNjgzOWE4OWFjOTFhYjQxOWUzY2EzN2Q2YmE4ODFkMjU1MThjNGRiNjhiY2E2ZjdjODM2MDJmNjk5YTg2YjE3ZmIxZTc3M2JjYmU3NGJiOTNhNDliMjUxYWU4NjQyOGI1NzQwZTE4NjhiYjFkNmZhYjllMjg3MTJlOThlYzMxOWFkOGZjYTRkNzMwMTBjNGIwOWM0YjgwNDU4OTYxZTdjZjA4MzUzMDIwMzAxMDAwMWEzNTMzMDUxMzAxZDA2MDM1NTFkMGUwNDE2MDQxNDhhZWVlNTk0N2NjNjdjNWRkNTE1YTc2ZTJhN2VjZDMxZWU1MmZkYzgzMDFmMDYwMzU1MWQyMzA0MTgzMDE2ODAxNDhhZWVlNTk0N2NjNjdjNWRkNTE1YTc2ZTJhN2VjZDMxZWU1MmZkYzgzMDBmMDYwMzU1MWQxMzAxMDFmZjA0MDUzMDAzMDEwMWZmMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMDI4MjAxMDEwMDgyMWQ2Yjk4Y2Q0NTdkZWJkMmIwODFhY2EyN2ViZWNkNGY5M2FjYzgyODQ0M2IzOWVhYmZmYTlmYTRlOWU0NTQzYjQ2ZmNjMzFlMmI1YjQ4MTc3OTAzZGVhNjk2OWFjNGEyY2M2NTcwNjUwMzkwZjFiMDhkNDNhNGMyZjk3NWM3ZWQ4YmYzMzU2YzcyMTgzODAyMTI0NTFhOGYxMWRlNDY1NTNjYmNkNjViNDI1NGRkYjhmNjY4MzRlYjIxZGRhMmE4ZjMzYjU4MWUxNDg0NTU3YWNhMWI5NGVlODkzMWRkZjE2MDM3YjdhNzE3MTMyMWE5MTkzNmFmYzI3ZmZjZTM5NWRlNzVkNWY3MGNiOGI1YWVlMDVmZjUwNzA4OGQ2NWFmMWU0Mzk2NmNkNDJjYmU2ZjdmYWNmOGRhZTA1NWRkODIyMmIxNjk2NTIxNzIzZjgxMjQ1MTc4NTk1Yzk4NWFlOTE3ZmQ0YjM5OTg3NzNlMWE5N2I3YmQxMDA4NTQ0NmY0MjU5YmNjMDlhNDU0OTI5MjgyYzFiODliNzFlZDU4N2E3NzVlMGEzZDQ1MzYzNDFmNDVkYWU5NjllODA2Yzk2ZmVmYzcxMDY3Nzc2YzAyYmEyMjEyMmI5MTk5YjE0YzBjMjhjMDQ0ODc1MDkwNzBiOTdmM2RkMmQ2ZDk3MjczMzE4MjAxNzczMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwNWJlY2Q4NzE5NWMxZGVmZjkwYzI0YzkxMjY5YjU1YjNmMDY5YmMyMjVjMzI2YzMxNGMxYTUxNzg2ZmZlMTRjODMwYmU0ZTRiYzczY2JhMzZjOTc2NzdiNDQxNjgyNzliZTkxZTdjZGY3YzE5Mzg2YWUyMTg2MjcxOWQxM2EzYTBmZmYwODAzZDQ2MDk2MmYyY2RhODM3MTQ4NDg3MzI1MmMzZDcwNTRkYjgxNDNlMmIwODFhMzgxNmVkMDgwNGNhNTA5OWFlNWZlY2U4M2Q1YzJjMzc4M2IxOTg4YjRiNDZkYzk0ZTU1NTg3YTEwN2VhMTU0NmJmMjJkMjhhMDk3ZjY1MmE0MDY2ZGMyOTY1MjY5MDY5YWYyZjUxNzZiYjhjZTljYTZkMTFmOTY3NTdmMDMyMDRmNzU2NzAzNTg3ZDAwYWQ0MjQ3OTZjOTJmYzdhZWI2ZjQ5NDQzMTk5OWVkYTMwOTkwZTRmNTc3MzYzMmVkMjU4ZmUwMjc2NjczNTk5ZGE2ZmNlMzVjZGFkNzcyNmEwYmIwMjRjYWQ5OTZiODhlMGNiOTg4NTRjZWI1YzBiNmVjNzQ4ZDlmOWNlNmE2Y2Q0Mzc4NThiYWNiODE0NjE4YTI3MmZmM2E0MTVjNmUwN2YzZGIwOTg4Nzc3ZmRlYzg0NWE5N2JmN2QxMDJkZDAiCiAKIFBLQ1M3IFBhcnNlIEZhaWx1cmUgSW52YWxpZCBBU04xOiBDaGFuZ2UgbGVuZ3RoIGZyb20gMjU3IHRvIDI1OCAjMjIxLjAKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBwa2NzN19hc24xX2ZhaWw6IjMwODIwNTAwMDYwOTJhODY0ODg2ZjcwZDAxMDcwMmEwODIwNGYxMzA4MjA0ZWQwMjAxMDEzMTBmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwYjA2MDkyYTg2NDg4NmY3MGQwMTA3MDFhMDgyMDM0ZDMwODIwMzQ5MzA4MjAyMzFhMDAzMDIwMTAyMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEzMDFlMTcwZDMyMzIzMTMwMzIzODMxMzYzMTMwMzUzNjVhMTcwZDMyMzMzMTMwMzIzODMxMzYzMTMwMzUzNjVhMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMzA4MjAxMjIzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwMzgyMDEwZjAwMzA4MjAxMGEwMjgyMDEwMTAwYzhiNmNmNjk4OTljZDFmMGViYjRjYTY0NWMwNWU3MGUwZDJlZmVkZGNjNjFkMDg5Y2JkNTE1YTM5YTM1NzliOTIzNDNiNjFlYzc1MDA2MGZiNGVkMzc4NzYzMzI0MDBlNDI1ZjFkMzc2YzdlNzVjMjk3MzMxNGVkZjRiYjMwYzhmOGRkMDNiOWZjZmY5NTVhMjQ1ZDQ5MTM3YWQ2ZTYwMDU2Y2FjMTk1NTJhODY1ZDUyMTg3MTg3Y2MwNDJjOWM0OWUzZTNhOWMxN2E1MzRiNDUzY2RhYmMwY2IxMTNiNGY2M2Y1YjMxNzRiOWVlOTkwMmIxOTEwZDExNDk2YTI3OWE3NDMyNmFkY2ZlZTEwYmZkOWU3ZWJhZmJiMzc3YmU5YjYzOTU5MTY1ZDEzZGQ1NzUxMTcxY2FkYWQzYzFkM2FkYWM2OGJjODAxMWQ2MWI1NGNmNjAxNzhiZTM2ODM5YTg5YWM5MWFiNDE5ZTNjYTM3ZDZiYTg4MWQyNTUxOGM0ZGI2OGJjYTZmN2M4MzYwMmY2OTlhODZiMTdmYjFlNzczYmNiZTc0YmI5M2E0OWIyNTFhZTg2NDI4YjU3NDBlMTg2OGJiMWQ2ZmFiOWUyODcxMmU5OGVjMzE5YWQ4ZmNhNGQ3MzAxMGM0YjA5YzRiODA0NTg5NjFlN2NmMDgzNTMwMjAzMDEwMDAxYTM1MzMwNTEzMDFkMDYwMzU1MWQwZTA0MTYwNDE0OGFlZWU1OTQ3Y2M2N2M1ZGQ1MTVhNzZlMmE3ZWNkMzFlZTUyZmRjODMwMWYwNjAzNTUxZDIzMDQxODMwMTY4MDE0OGFlZWU1OTQ3Y2M2N2M1ZGQ1MTVhNzZlMmE3ZWNkMzFlZTUyZmRjODMwMGYwNjAzNTUxZDEzMDEwMWZmMDQwNTMwMDMwMTAxZmYzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAwMzgyMDEwMjAwODIxZDZiOThjZDQ1N2RlYmQyYjA4MWFjYTI3ZWJlY2Q0ZjkzYWNjODI4NDQzYjM5ZWFiZmZhOWZhNGU5ZTQ1NDNiNDZmY2MzMWUyYjViNDgxNzc5MDNkZWE2OTY5YWM0YTJjYzY1NzA2NTAzOTBmMWIwOGQ0M2E0YzJmOTc1YzdlZDhiZjMzNTZjNzIxODM4MDIxMjQ1MWE4ZjExZGU0NjU1M2NiY2Q2NWI0MjU0ZGRiOGY2NjgzNGViMjFkZGEyYThmMzNiNTgxZTE0ODQ1NTdhY2ExYjk0ZWU4OTMxZGRmMTYwMzdiN2E3MTcxMzIxYTkxOTM2YWZjMjdmZmNlMzk1ZGU3NWQ1ZjcwY2I4YjVhZWUwNWZmNTA3MDg4ZDY1YWYxZTQzOTY2Y2Q0MmNiZTZmN2ZhY2Y4ZGFlMDU1ZGQ4MjIyYjE2OTY1MjE3MjNmODEyNDUxNzg1OTVjOTg1YWU5MTdmZDRiMzk5ODc3M2UxYTk3YjdiZDEwMDg1NDQ2ZjQyNTliY2MwOWE0NTQ5MjkyODJjMWI4OWI3MWVkNTg3YTc3NWUwYTNkNDUzNjM0MWY0NWRhZTk2OWU4MDZjOTZmZWZjNzEwNjc3NzZjMDJiYTIyMTIyYjkxOTliMTRjMGMyOGMwNDQ4NzUwOTA3MGI5N2YzZGQyZDZkOTcyNzMzMTgyMDE3NzMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTAyMTQ3YmRlZGRkMjQ0NGNkMWNkZmU1YzQxYTgxMDJjODliN2RmMmU2Y2JmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDA1YmVjZDg3MTk1YzFkZWZmOTBjMjRjOTEyNjliNTViM2YwNjliYzIyNWMzMjZjMzE0YzFhNTE3ODZmZmUxNGM4MzBiZTRlNGJjNzNjYmEzNmM5NzY3N2I0NDE2ODI3OWJlOTFlN2NkZjdjMTkzODZhZTIxODYyNzE5ZDEzYTNhMGZmZjA4MDNkNDYwOTYyZjJjZGE4MzcxNDg0ODczMjUyYzNkNzA1NGRiODE0M2UyYjA4MWEzODE2ZWQwODA0Y2E1MDk5YWU1ZmVjZTgzZDVjMmMzNzgzYjE5ODhiNGI0NmRjOTRlNTU1ODdhMTA3ZWExNTQ2YmYyMmQyOGEwOTdmNjUyYTQwNjZkYzI5NjUyNjkwNjlhZjJmNTE3NmJiOGNlOWNhNmQxMWY5Njc1N2YwMzIwNGY3NTY3MDM1ODdkMDBhZDQyNDc5NmM5MmZjN2FlYjZmNDk0NDMxOTk5ZWRhMzA5OTBlNGY1NzczNjMyZWQyNThmZTAyNzY2NzM1OTlkYTZmY2UzNWNkYWQ3NzI2YTBiYjAyNGNhZDk5NmI4OGUwY2I5ODg1NGNlYjVjMGI2ZWM3NDhkOWY5Y2U2YTZjZDQzNzg1OGJhY2I4MTQ2MThhMjcyZmYzYTQxNWM2ZTA3ZjNkYjA5ODg3NzdmZGVjODQ1YTk3YmY3ZDEwMmRkMCIKIAogUEtDUzcgUGFyc2UgRmFpbHVyZSBJbnZhbGlkIEFTTjE6IENoYW5nZSBsZW5ndGggZnJvbSAyNTcgdG8gMjU2ICMyMjIuMAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHBrY3M3X2FzbjFfZmFpbDoiMzA4MjA1MDAwNjA5MmE4NjQ4ODZmNzBkMDEwNzAyYTA4MjA0ZjEzMDgyMDRlZDAyMDEwMTMxMGYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBiMDYwOTJhODY0ODg2ZjcwZDAxMDcwMWEwODIwMzRkMzA4MjAzNDkzMDgyMDIzMWEwMDMwMjAxMDIwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTMwMWUxNzBkMzIzMjMxMzAzMjM4MzEzNjMxMzAzNTM2NWExNzBkMzIzMzMxMzAzMjM4MzEzNjMxMzAzNTM2NWEzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEzMDgyMDEyMjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDAzODIwMTBmMDAzMDgyMDEwYTAyODIwMTAxMDBjOGI2Y2Y2OTg5OWNkMWYwZWJiNGNhNjQ1YzA1ZTcwZTBkMmVmZWRkY2M2MWQwODljYmQ1MTVhMzlhMzU3OWI5MjM0M2I2MWVjNzUwMDYwZmI0ZWQzNzg3NjMzMjQwMGU0MjVmMWQzNzZjN2U3NWMyOTczMzE0ZWRmNGJiMzBjOGY4ZGQwM2I5ZmNmZjk1NWEyNDVkNDkxMzdhZDZlNjAwNTZjYWMxOTU1MmE4NjVkNTIxODcxODdjYzA0MmM5YzQ5ZTNlM2E5YzE3YTUzNGI0NTNjZGFiYzBjYjExM2I0ZjYzZjViMzE3NGI5ZWU5OTAyYjE5MTBkMTE0OTZhMjc5YTc0MzI2YWRjZmVlMTBiZmQ5ZTdlYmFmYmIzNzdiZTliNjM5NTkxNjVkMTNkZDU3NTExNzFjYWRhZDNjMWQzYWRhYzY4YmM4MDExZDYxYjU0Y2Y2MDE3OGJlMzY4MzlhODlhYzkxYWI0MTllM2NhMzdkNmJhODgxZDI1NTE4YzRkYjY4YmNhNmY3YzgzNjAyZjY5OWE4NmIxN2ZiMWU3NzNiY2JlNzRiYjkzYTQ5YjI1MWFlODY0MjhiNTc0MGUxODY4YmIxZDZmYWI5ZTI4NzEyZTk4ZWMzMTlhZDhmY2E0ZDczMDEwYzRiMDljNGI4MDQ1ODk2MWU3Y2YwODM1MzAyMDMwMTAwMDFhMzUzMzA1MTMwMWQwNjAzNTUxZDBlMDQxNjA0MTQ4YWVlZTU5NDdjYzY3YzVkZDUxNWE3NmUyYTdlY2QzMWVlNTJmZGM4MzAxZjA2MDM1NTFkMjMwNDE4MzAxNjgwMTQ4YWVlZTU5NDdjYzY3YzVkZDUxNWE3NmUyYTdlY2QzMWVlNTJmZGM4MzAwZjA2MDM1NTFkMTMwMTAxZmYwNDA1MzAwMzAxMDFmZjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDAzODIwMTAwMDA4MjFkNmI5OGNkNDU3ZGViZDJiMDgxYWNhMjdlYmVjZDRmOTNhY2M4Mjg0NDNiMzllYWJmZmE5ZmE0ZTllNDU0M2I0NmZjYzMxZTJiNWI0ODE3NzkwM2RlYTY5NjlhYzRhMmNjNjU3MDY1MDM5MGYxYjA4ZDQzYTRjMmY5NzVjN2VkOGJmMzM1NmM3MjE4MzgwMjEyNDUxYThmMTFkZTQ2NTUzY2JjZDY1YjQyNTRkZGI4ZjY2ODM0ZWIyMWRkYTJhOGYzM2I1ODFlMTQ4NDU1N2FjYTFiOTRlZTg5MzFkZGYxNjAzN2I3YTcxNzEzMjFhOTE5MzZhZmMyN2ZmY2UzOTVkZTc1ZDVmNzBjYjhiNWFlZTA1ZmY1MDcwODhkNjVhZjFlNDM5NjZjZDQyY2JlNmY3ZmFjZjhkYWUwNTVkZDgyMjJiMTY5NjUyMTcyM2Y4MTI0NTE3ODU5NWM5ODVhZTkxN2ZkNGIzOTk4NzczZTFhOTdiN2JkMTAwODU0NDZmNDI1OWJjYzA5YTQ1NDkyOTI4MmMxYjg5YjcxZWQ1ODdhNzc1ZTBhM2Q0NTM2MzQxZjQ1ZGFlOTY5ZTgwNmM5NmZlZmM3MTA2Nzc3NmMwMmJhMjIxMjJiOTE5OWIxNGMwYzI4YzA0NDg3NTA5MDcwYjk3ZjNkZDJkNmQ5NzI3MzMxODIwMTc3MzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDViZWNkODcxOTVjMWRlZmY5MGMyNGM5MTI2OWI1NWIzZjA2OWJjMjI1YzMyNmMzMTRjMWE1MTc4NmZmZTE0YzgzMGJlNGU0YmM3M2NiYTM2Yzk3Njc3YjQ0MTY4Mjc5YmU5MWU3Y2RmN2MxOTM4NmFlMjE4NjI3MTlkMTNhM2EwZmZmMDgwM2Q0NjA5NjJmMmNkYTgzNzE0ODQ4NzMyNTJjM2Q3MDU0ZGI4MTQzZTJiMDgxYTM4MTZlZDA4MDRjYTUwOTlhZTVmZWNlODNkNWMyYzM3ODNiMTk4OGI0YjQ2ZGM5NGU1NTU4N2ExMDdlYTE1NDZiZjIyZDI4YTA5N2Y2NTJhNDA2NmRjMjk2NTI2OTA2OWFmMmY1MTc2YmI4Y2U5Y2E2ZDExZjk2NzU3ZjAzMjA0Zjc1NjcwMzU4N2QwMGFkNDI0Nzk2YzkyZmM3YWViNmY0OTQ0MzE5OTllZGEzMDk5MGU0ZjU3NzM2MzJlZDI1OGZlMDI3NjY3MzU5OWRhNmZjZTM1Y2RhZDc3MjZhMGJiMDI0Y2FkOTk2Yjg4ZTBjYjk4ODU0Y2ViNWMwYjZlYzc0OGQ5ZjljZTZhNmNkNDM3ODU4YmFjYjgxNDYxOGEyNzJmZjNhNDE1YzZlMDdmM2RiMDk4ODc3N2ZkZWM4NDVhOTdiZjdkMTAyZGQwIgogCiBQS0NTNyBQYXJzZSBGYWlsdXJlIEludmFsaWQgQVNOMTogQ2hhbmdlIHRhZyAzMSB0byAwMiAjMjIzLjAKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBwa2NzN19hc24xX2ZhaWw6IjMwODIwNTAwMDYwOTJhODY0ODg2ZjcwZDAxMDcwMmEwODIwNGYxMzA4MjA0ZWQwMjAxMDEzMTBmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwYjA2MDkyYTg2NDg4NmY3MGQwMTA3MDFhMDgyMDM0ZDMwODIwMzQ5MzA4MjAyMzFhMDAzMDIwMTAyMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEzMDFlMTcwZDMyMzIzMTMwMzIzODMxMzYzMTMwMzUzNjVhMTcwZDMyMzMzMTMwMzIzODMxMzYzMTMwMzUzNjVhMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMzA4MjAxMjIzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwMzgyMDEwZjAwMzA4MjAxMGEwMjgyMDEwMTAwYzhiNmNmNjk4OTljZDFmMGViYjRjYTY0NWMwNWU3MGUwZDJlZmVkZGNjNjFkMDg5Y2JkNTE1YTM5YTM1NzliOTIzNDNiNjFlYzc1MDA2MGZiNGVkMzc4NzYzMzI0MDBlNDI1ZjFkMzc2YzdlNzVjMjk3MzMxNGVkZjRiYjMwYzhmOGRkMDNiOWZjZmY5NTVhMjQ1ZDQ5MTM3YWQ2ZTYwMDU2Y2FjMTk1NTJhODY1ZDUyMTg3MTg3Y2MwNDJjOWM0OWUzZTNhOWMxN2E1MzRiNDUzY2RhYmMwY2IxMTNiNGY2M2Y1YjMxNzRiOWVlOTkwMmIxOTEwZDExNDk2YTI3OWE3NDMyNmFkY2ZlZTEwYmZkOWU3ZWJhZmJiMzc3YmU5YjYzOTU5MTY1ZDEzZGQ1NzUxMTcxY2FkYWQzYzFkM2FkYWM2OGJjODAxMWQ2MWI1NGNmNjAxNzhiZTM2ODM5YTg5YWM5MWFiNDE5ZTNjYTM3ZDZiYTg4MWQyNTUxOGM0ZGI2OGJjYTZmN2M4MzYwMmY2OTlhODZiMTdmYjFlNzczYmNiZTc0YmI5M2E0OWIyNTFhZTg2NDI4YjU3NDBlMTg2OGJiMWQ2ZmFiOWUyODcxMmU5OGVjMzE5YWQ4ZmNhNGQ3MzAxMGM0YjA5YzRiODA0NTg5NjFlN2NmMDgzNTMwMjAzMDEwMDAxYTM1MzMwNTEzMDFkMDYwMzU1MWQwZTA0MTYwNDE0OGFlZWU1OTQ3Y2M2N2M1ZGQ1MTVhNzZlMmE3ZWNkMzFlZTUyZmRjODMwMWYwNjAzNTUxZDIzMDQxODMwMTY4MDE0OGFlZWU1OTQ3Y2M2N2M1ZGQ1MTVhNzZlMmE3ZWNkMzFlZTUyZmRjODMwMGYwNjAzNTUxZDEzMDEwMWZmMDQwNTMwMDMwMTAxZmYzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAwMzgyMDEwMTAwODIxZDZiOThjZDQ1N2RlYmQyYjA4MWFjYTI3ZWJlY2Q0ZjkzYWNjODI4NDQzYjM5ZWFiZmZhOWZhNGU5ZTQ1NDNiNDZmY2MzMWUyYjViNDgxNzc5MDNkZWE2OTY5YWM0YTJjYzY1NzA2NTAzOTBmMWIwOGQ0M2E0YzJmOTc1YzdlZDhiZjMzNTZjNzIxODM4MDIxMjQ1MWE4ZjExZGU0NjU1M2NiY2Q2NWI0MjU0ZGRiOGY2NjgzNGViMjFkZGEyYThmMzNiNTgxZTE0ODQ1NTdhY2ExYjk0ZWU4OTMxZGRmMTYwMzdiN2E3MTcxMzIxYTkxOTM2YWZjMjdmZmNlMzk1ZGU3NWQ1ZjcwY2I4YjVhZWUwNWZmNTA3MDg4ZDY1YWYxZTQzOTY2Y2Q0MmNiZTZmN2ZhY2Y4ZGFlMDU1ZGQ4MjIyYjE2OTY1MjE3MjNmODEyNDUxNzg1OTVjOTg1YWU5MTdmZDRiMzk5ODc3M2UxYTk3YjdiZDEwMDg1NDQ2ZjQyNTliY2MwOWE0NTQ5MjkyODJjMWI4OWI3MWVkNTg3YTc3NWUwYTNkNDUzNjM0MWY0NWRhZTk2OWU4MDZjOTZmZWZjNzEwNjc3NzZjMDJiYTIyMTIyYjkxOTliMTRjMGMyOGMwNDQ4NzUwOTA3MGI5N2YzZGQyZDZkOTcyNzMwMjgyMDE3NzMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTAyMTQ3YmRlZGRkMjQ0NGNkMWNkZmU1YzQxYTgxMDJjODliN2RmMmU2Y2JmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDA1YmVjZDg3MTk1YzFkZWZmOTBjMjRjOTEyNjliNTViM2YwNjliYzIyNWMzMjZjMzE0YzFhNTE3ODZmZmUxNGM4MzBiZTRlNGJjNzNjYmEzNmM5NzY3N2I0NDE2ODI3OWJlOTFlN2NkZjdjMTkzODZhZTIxODYyNzE5ZDEzYTNhMGZmZjA4MDNkNDYwOTYyZjJjZGE4MzcxNDg0ODczMjUyYzNkNzA1NGRiODE0M2UyYjA4MWEzODE2ZWQwODA0Y2E1MDk5YWU1ZmVjZTgzZDVjMmMzNzgzYjE5ODhiNGI0NmRjOTRlNTU1ODdhMTA3ZWExNTQ2YmYyMmQyOGEwOTdmNjUyYTQwNjZkYzI5NjUyNjkwNjlhZjJmNTE3NmJiOGNlOWNhNmQxMWY5Njc1N2YwMzIwNGY3NTY3MDM1ODdkMDBhZDQyNDc5NmM5MmZjN2FlYjZmNDk0NDMxOTk5ZWRhMzA5OTBlNGY1NzczNjMyZWQyNThmZTAyNzY2NzM1OTlkYTZmY2UzNWNkYWQ3NzI2YTBiYjAyNGNhZDk5NmI4OGUwY2I5ODg1NGNlYjVjMGI2ZWM3NDhkOWY5Y2U2YTZjZDQzNzg1OGJhY2I4MTQ2MThhMjcyZmYzYTQxNWM2ZTA3ZjNkYjA5ODg3NzdmZGVjODQ1YTk3YmY3ZDEwMmRkMCIKIAogUEtDUzcgUGFyc2UgRmFpbHVyZSBJbnZhbGlkIEFTTjE6IENoYW5nZSBsZW5ndGggZnJvbSAzNzUgdG8gMzc2ICMyMjQuMAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHBrY3M3X2FzbjFfZmFpbDoiMzA4MjA1MDAwNjA5MmE4NjQ4ODZmNzBkMDEwNzAyYTA4MjA0ZjEzMDgyMDRlZDAyMDEwMTMxMGYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBiMDYwOTJhODY0ODg2ZjcwZDAxMDcwMWEwODIwMzRkMzA4MjAzNDkzMDgyMDIzMWEwMDMwMjAxMDIwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTMwMWUxNzBkMzIzMjMxMzAzMjM4MzEzNjMxMzAzNTM2NWExNzBkMzIzMzMxMzAzMjM4MzEzNjMxMzAzNTM2NWEzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEzMDgyMDEyMjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDAzODIwMTBmMDAzMDgyMDEwYTAyODIwMTAxMDBjOGI2Y2Y2OTg5OWNkMWYwZWJiNGNhNjQ1YzA1ZTcwZTBkMmVmZWRkY2M2MWQwODljYmQ1MTVhMzlhMzU3OWI5MjM0M2I2MWVjNzUwMDYwZmI0ZWQzNzg3NjMzMjQwMGU0MjVmMWQzNzZjN2U3NWMyOTczMzE0ZWRmNGJiMzBjOGY4ZGQwM2I5ZmNmZjk1NWEyNDVkNDkxMzdhZDZlNjAwNTZjYWMxOTU1MmE4NjVkNTIxODcxODdjYzA0MmM5YzQ5ZTNlM2E5YzE3YTUzNGI0NTNjZGFiYzBjYjExM2I0ZjYzZjViMzE3NGI5ZWU5OTAyYjE5MTBkMTE0OTZhMjc5YTc0MzI2YWRjZmVlMTBiZmQ5ZTdlYmFmYmIzNzdiZTliNjM5NTkxNjVkMTNkZDU3NTExNzFjYWRhZDNjMWQzYWRhYzY4YmM4MDExZDYxYjU0Y2Y2MDE3OGJlMzY4MzlhODlhYzkxYWI0MTllM2NhMzdkNmJhODgxZDI1NTE4YzRkYjY4YmNhNmY3YzgzNjAyZjY5OWE4NmIxN2ZiMWU3NzNiY2JlNzRiYjkzYTQ5YjI1MWFlODY0MjhiNTc0MGUxODY4YmIxZDZmYWI5ZTI4NzEyZTk4ZWMzMTlhZDhmY2E0ZDczMDEwYzRiMDljNGI4MDQ1ODk2MWU3Y2YwODM1MzAyMDMwMTAwMDFhMzUzMzA1MTMwMWQwNjAzNTUxZDBlMDQxNjA0MTQ4YWVlZTU5NDdjYzY3YzVkZDUxNWE3NmUyYTdlY2QzMWVlNTJmZGM4MzAxZjA2MDM1NTFkMjMwNDE4MzAxNjgwMTQ4YWVlZTU5NDdjYzY3YzVkZDUxNWE3NmUyYTdlY2QzMWVlNTJmZGM4MzAwZjA2MDM1NTFkMTMwMTAxZmYwNDA1MzAwMzAxMDFmZjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDAzODIwMTAxMDA4MjFkNmI5OGNkNDU3ZGViZDJiMDgxYWNhMjdlYmVjZDRmOTNhY2M4Mjg0NDNiMzllYWJmZmE5ZmE0ZTllNDU0M2I0NmZjYzMxZTJiNWI0ODE3NzkwM2RlYTY5NjlhYzRhMmNjNjU3MDY1MDM5MGYxYjA4ZDQzYTRjMmY5NzVjN2VkOGJmMzM1NmM3MjE4MzgwMjEyNDUxYThmMTFkZTQ2NTUzY2JjZDY1YjQyNTRkZGI4ZjY2ODM0ZWIyMWRkYTJhOGYzM2I1ODFlMTQ4NDU1N2FjYTFiOTRlZTg5MzFkZGYxNjAzN2I3YTcxNzEzMjFhOTE5MzZhZmMyN2ZmY2UzOTVkZTc1ZDVmNzBjYjhiNWFlZTA1ZmY1MDcwODhkNjVhZjFlNDM5NjZjZDQyY2JlNmY3ZmFjZjhkYWUwNTVkZDgyMjJiMTY5NjUyMTcyM2Y4MTI0NTE3ODU5NWM5ODVhZTkxN2ZkNGIzOTk4NzczZTFhOTdiN2JkMTAwODU0NDZmNDI1OWJjYzA5YTQ1NDkyOTI4MmMxYjg5YjcxZWQ1ODdhNzc1ZTBhM2Q0NTM2MzQxZjQ1ZGFlOTY5ZTgwNmM5NmZlZmM3MTA2Nzc3NmMwMmJhMjIxMjJiOTE5OWIxNGMwYzI4YzA0NDg3NTA5MDcwYjk3ZjNkZDJkNmQ5NzI3MzMxODIwMTc4MzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDViZWNkODcxOTVjMWRlZmY5MGMyNGM5MTI2OWI1NWIzZjA2OWJjMjI1YzMyNmMzMTRjMWE1MTc4NmZmZTE0YzgzMGJlNGU0YmM3M2NiYTM2Yzk3Njc3YjQ0MTY4Mjc5YmU5MWU3Y2RmN2MxOTM4NmFlMjE4NjI3MTlkMTNhM2EwZmZmMDgwM2Q0NjA5NjJmMmNkYTgzNzE0ODQ4NzMyNTJjM2Q3MDU0ZGI4MTQzZTJiMDgxYTM4MTZlZDA4MDRjYTUwOTlhZTVmZWNlODNkNWMyYzM3ODNiMTk4OGI0YjQ2ZGM5NGU1NTU4N2ExMDdlYTE1NDZiZjIyZDI4YTA5N2Y2NTJhNDA2NmRjMjk2NTI2OTA2OWFmMmY1MTc2YmI4Y2U5Y2E2ZDExZjk2NzU3ZjAzMjA0Zjc1NjcwMzU4N2QwMGFkNDI0Nzk2YzkyZmM3YWViNmY0OTQ0MzE5OTllZGEzMDk5MGU0ZjU3NzM2MzJlZDI1OGZlMDI3NjY3MzU5OWRhNmZjZTM1Y2RhZDc3MjZhMGJiMDI0Y2FkOTk2Yjg4ZTBjYjk4ODU0Y2ViNWMwYjZlYzc0OGQ5ZjljZTZhNmNkNDM3ODU4YmFjYjgxNDYxOGEyNzJmZjNhNDE1YzZlMDdmM2RiMDk4ODc3N2ZkZWM4NDVhOTdiZjdkMTAyZGQwIgogCiBQS0NTNyBQYXJzZSBGYWlsdXJlIEludmFsaWQgQVNOMTogQ2hhbmdlIGNvbnRlbnRzIG9mIHRhZyAzMSB0byBjb250YWluIG9uZSB1bmFjY291bnRlZCBleHRyYSBieXRlICMyMjUuMAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHBrY3M3X2FzbjFfZmFpbDoiMzA4MjA1MDAwNjA5MmE4NjQ4ODZmNzBkMDEwNzAyYTA4MjA0ZjEzMDgyMDRlZDAyMDEwMTMxMGYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBiMDYwOTJhODY0ODg2ZjcwZDAxMDcwMWEwODIwMzRkMzA4MjAzNDkzMDgyMDIzMWEwMDMwMjAxMDIwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTMwMWUxNzBkMzIzMjMxMzAzMjM4MzEzNjMxMzAzNTM2NWExNzBkMzIzMzMxMzAzMjM4MzEzNjMxMzAzNTM2NWEzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEzMDgyMDEyMjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDAzODIwMTBmMDAzMDgyMDEwYTAyODIwMTAxMDBjOGI2Y2Y2OTg5OWNkMWYwZWJiNGNhNjQ1YzA1ZTcwZTBkMmVmZWRkY2M2MWQwODljYmQ1MTVhMzlhMzU3OWI5MjM0M2I2MWVjNzUwMDYwZmI0ZWQzNzg3NjMzMjQwMGU0MjVmMWQzNzZjN2U3NWMyOTczMzE0ZWRmNGJiMzBjOGY4ZGQwM2I5ZmNmZjk1NWEyNDVkNDkxMzdhZDZlNjAwNTZjYWMxOTU1MmE4NjVkNTIxODcxODdjYzA0MmM5YzQ5ZTNlM2E5YzE3YTUzNGI0NTNjZGFiYzBjYjExM2I0ZjYzZjViMzE3NGI5ZWU5OTAyYjE5MTBkMTE0OTZhMjc5YTc0MzI2YWRjZmVlMTBiZmQ5ZTdlYmFmYmIzNzdiZTliNjM5NTkxNjVkMTNkZDU3NTExNzFjYWRhZDNjMWQzYWRhYzY4YmM4MDExZDYxYjU0Y2Y2MDE3OGJlMzY4MzlhODlhYzkxYWI0MTllM2NhMzdkNmJhODgxZDI1NTE4YzRkYjY4YmNhNmY3YzgzNjAyZjY5OWE4NmIxN2ZiMWU3NzNiY2JlNzRiYjkzYTQ5YjI1MWFlODY0MjhiNTc0MGUxODY4YmIxZDZmYWI5ZTI4NzEyZTk4ZWMzMTlhZDhmY2E0ZDczMDEwYzRiMDljNGI4MDQ1ODk2MWU3Y2YwODM1MzAyMDMwMTAwMDFhMzUzMzA1MTMwMWQwNjAzNTUxZDBlMDQxNjA0MTQ4YWVlZTU5NDdjYzY3YzVkZDUxNWE3NmUyYTdlY2QzMWVlNTJmZGM4MzAxZjA2MDM1NTFkMjMwNDE4MzAxNjgwMTQ4YWVlZTU5NDdjYzY3YzVkZDUxNWE3NmUyYTdlY2QzMWVlNTJmZGM4MzAwZjA2MDM1NTFkMTMwMTAxZmYwNDA1MzAwMzAxMDFmZjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDAzODIwMTAxMDA4MjFkNmI5OGNkNDU3ZGViZDJiMDgxYWNhMjdlYmVjZDRmOTNhY2M4Mjg0NDNiMzllYWJmZmE5ZmE0ZTllNDU0M2I0NmZjYzMxZTJiNWI0ODE3NzkwM2RlYTY5NjlhYzRhMmNjNjU3MDY1MDM5MGYxYjA4ZDQzYTRjMmY5NzVjN2VkOGJmMzM1NmM3MjE4MzgwMjEyNDUxYThmMTFkZTQ2NTUzY2JjZDY1YjQyNTRkZGI4ZjY2ODM0ZWIyMWRkYTJhOGYzM2I1ODFlMTQ4NDU1N2FjYTFiOTRlZTg5MzFkZGYxNjAzN2I3YTcxNzEzMjFhOTE5MzZhZmMyN2ZmY2UzOTVkZTc1ZDVmNzBjYjhiNWFlZTA1ZmY1MDcwODhkNjVhZjFlNDM5NjZjZDQyY2JlNmY3ZmFjZjhkYWUwNTVkZDgyMjJiMTY5NjUyMTcyM2Y4MTI0NTE3ODU5NWM5ODVhZTkxN2ZkNGIzOTk4NzczZTFhOTdiN2JkMTAwODU0NDZmNDI1OWJjYzA5YTQ1NDkyOTI4MmMxYjg5YjcxZWQ1ODdhNzc1ZTBhM2Q0NTM2MzQxZjQ1ZGFlOTY5ZTgwNmM5NmZlZmM3MTA2Nzc3NmMwMmJhMjIxMjJiOTE5OWIxNGMwYzI4YzA0NDg3NTA5MDcwYjk3ZjNkZDJkNmQ5NzI3MzMxODIwMTc4MzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDViZWNkODcxOTVjMWRlZmY5MGMyNGM5MTI2OWI1NWIzZjA2OWJjMjI1YzMyNmMzMTRjMWE1MTc4NmZmZTE0YzgzMGJlNGU0YmM3M2NiYTM2Yzk3Njc3YjQ0MTY4Mjc5YmU5MWU3Y2RmN2MxOTM4NmFlMjE4NjI3MTlkMTNhM2EwZmZmMDgwM2Q0NjA5NjJmMmNkYTgzNzE0ODQ4NzMyNTJjM2Q3MDU0ZGI4MTQzZTJiMDgxYTM4MTZlZDA4MDRjYTUwOTlhZTVmZWNlODNkNWMyYzM3ODNiMTk4OGI0YjQ2ZGM5NGU1NTU4N2ExMDdlYTE1NDZiZjIyZDI4YTA5N2Y2NTJhNDA2NmRjMjk2NTI2OTA2OWFmMmY1MTc2YmI4Y2U5Y2E2ZDExZjk2NzU3ZjAzMjA0Zjc1NjcwMzU4N2QwMGFkNDI0Nzk2YzkyZmM3YWViNmY0OTQ0MzE5OTllZGEzMDk5MGU0ZjU3NzM2MzJlZDI1OGZlMDI3NjY3MzU5OWRhNmZjZTM1Y2RhZDc3MjZhMGJiMDI0Y2FkOTk2Yjg4ZTBjYjk4ODU0Y2ViNWMwYjZlYzc0OGQ5ZjljZTZhNmNkNDM3ODU4YmFjYjgxNDYxOGEyNzJmZjNhNDE1YzZlMDdmM2RiMDk4ODc3N2ZkZWM4NDVhOTdiZjdkMTAyZGQwMDAiCiAKIFBLQ1M3IFBhcnNlIEZhaWx1cmUgSW52YWxpZCBBU04xOiBDaGFuZ2UgbGVuZ3RoIGZyb20gMzc1IHRvIDM3NCAjMjI2LjAKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBwa2NzN19hc24xX2ZhaWw6IjMwODIwNTAwMDYwOTJhODY0ODg2ZjcwZDAxMDcwMmEwODIwNGYxMzA4MjA0ZWQwMjAxMDEzMTBmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwYjA2MDkyYTg2NDg4NmY3MGQwMTA3MDFhMDgyMDM0ZDMwODIwMzQ5MzA4MjAyMzFhMDAzMDIwMTAyMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEzMDFlMTcwZDMyMzIzMTMwMzIzODMxMzYzMTMwMzUzNjVhMTcwZDMyMzMzMTMwMzIzODMxMzYzMTMwMzUzNjVhMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMzA4MjAxMjIzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwMzgyMDEwZjAwMzA4MjAxMGEwMjgyMDEwMTAwYzhiNmNmNjk4OTljZDFmMGViYjRjYTY0NWMwNWU3MGUwZDJlZmVkZGNjNjFkMDg5Y2JkNTE1YTM5YTM1NzliOTIzNDNiNjFlYzc1MDA2MGZiNGVkMzc4NzYzMzI0MDBlNDI1ZjFkMzc2YzdlNzVjMjk3MzMxNGVkZjRiYjMwYzhmOGRkMDNiOWZjZmY5NTVhMjQ1ZDQ5MTM3YWQ2ZTYwMDU2Y2FjMTk1NTJhODY1ZDUyMTg3MTg3Y2MwNDJjOWM0OWUzZTNhOWMxN2E1MzRiNDUzY2RhYmMwY2IxMTNiNGY2M2Y1YjMxNzRiOWVlOTkwMmIxOTEwZDExNDk2YTI3OWE3NDMyNmFkY2ZlZTEwYmZkOWU3ZWJhZmJiMzc3YmU5YjYzOTU5MTY1ZDEzZGQ1NzUxMTcxY2FkYWQzYzFkM2FkYWM2OGJjODAxMWQ2MWI1NGNmNjAxNzhiZTM2ODM5YTg5YWM5MWFiNDE5ZTNjYTM3ZDZiYTg4MWQyNTUxOGM0ZGI2OGJjYTZmN2M4MzYwMmY2OTlhODZiMTdmYjFlNzczYmNiZTc0YmI5M2E0OWIyNTFhZTg2NDI4YjU3NDBlMTg2OGJiMWQ2ZmFiOWUyODcxMmU5OGVjMzE5YWQ4ZmNhNGQ3MzAxMGM0YjA5YzRiODA0NTg5NjFlN2NmMDgzNTMwMjAzMDEwMDAxYTM1MzMwNTEzMDFkMDYwMzU1MWQwZTA0MTYwNDE0OGFlZWU1OTQ3Y2M2N2M1ZGQ1MTVhNzZlMmE3ZWNkMzFlZTUyZmRjODMwMWYwNjAzNTUxZDIzMDQxODMwMTY4MDE0OGFlZWU1OTQ3Y2M2N2M1ZGQ1MTVhNzZlMmE3ZWNkMzFlZTUyZmRjODMwMGYwNjAzNTUxZDEzMDEwMWZmMDQwNTMwMDMwMTAxZmYzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAwMzgyMDEwMTAwODIxZDZiOThjZDQ1N2RlYmQyYjA4MWFjYTI3ZWJlY2Q0ZjkzYWNjODI4NDQzYjM5ZWFiZmZhOWZhNGU5ZTQ1NDNiNDZmY2MzMWUyYjViNDgxNzc5MDNkZWE2OTY5YWM0YTJjYzY1NzA2NTAzOTBmMWIwOGQ0M2E0YzJmOTc1YzdlZDhiZjMzNTZjNzIxODM4MDIxMjQ1MWE4ZjExZGU0NjU1M2NiY2Q2NWI0MjU0ZGRiOGY2NjgzNGViMjFkZGEyYThmMzNiNTgxZTE0ODQ1NTdhY2ExYjk0ZWU4OTMxZGRmMTYwMzdiN2E3MTcxMzIxYTkxOTM2YWZjMjdmZmNlMzk1ZGU3NWQ1ZjcwY2I4YjVhZWUwNWZmNTA3MDg4ZDY1YWYxZTQzOTY2Y2Q0MmNiZTZmN2ZhY2Y4ZGFlMDU1ZGQ4MjIyYjE2OTY1MjE3MjNmODEyNDUxNzg1OTVjOTg1YWU5MTdmZDRiMzk5ODc3M2UxYTk3YjdiZDEwMDg1NDQ2ZjQyNTliY2MwOWE0NTQ5MjkyODJjMWI4OWI3MWVkNTg3YTc3NWUwYTNkNDUzNjM0MWY0NWRhZTk2OWU4MDZjOTZmZWZjNzEwNjc3NzZjMDJiYTIyMTIyYjkxOTliMTRjMGMyOGMwNDQ4NzUwOTA3MGI5N2YzZGQyZDZkOTcyNzMzMTgyMDE3NjMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTAyMTQ3YmRlZGRkMjQ0NGNkMWNkZmU1YzQxYTgxMDJjODliN2RmMmU2Y2JmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDA1YmVjZDg3MTk1YzFkZWZmOTBjMjRjOTEyNjliNTViM2YwNjliYzIyNWMzMjZjMzE0YzFhNTE3ODZmZmUxNGM4MzBiZTRlNGJjNzNjYmEzNmM5NzY3N2I0NDE2ODI3OWJlOTFlN2NkZjdjMTkzODZhZTIxODYyNzE5ZDEzYTNhMGZmZjA4MDNkNDYwOTYyZjJjZGE4MzcxNDg0ODczMjUyYzNkNzA1NGRiODE0M2UyYjA4MWEzODE2ZWQwODA0Y2E1MDk5YWU1ZmVjZTgzZDVjMmMzNzgzYjE5ODhiNGI0NmRjOTRlNTU1ODdhMTA3ZWExNTQ2YmYyMmQyOGEwOTdmNjUyYTQwNjZkYzI5NjUyNjkwNjlhZjJmNTE3NmJiOGNlOWNhNmQxMWY5Njc1N2YwMzIwNGY3NTY3MDM1ODdkMDBhZDQyNDc5NmM5MmZjN2FlYjZmNDk0NDMxOTk5ZWRhMzA5OTBlNGY1NzczNjMyZWQyNThmZTAyNzY2NzM1OTlkYTZmY2UzNWNkYWQ3NzI2YTBiYjAyNGNhZDk5NmI4OGUwY2I5ODg1NGNlYjVjMGI2ZWM3NDhkOWY5Y2U2YTZjZDQzNzg1OGJhY2I4MTQ2MThhMjcyZmYzYTQxNWM2ZTA3ZjNkYjA5ODg3NzdmZGVjODQ1YTk3YmY3ZDEwMmRkMCIKIAogUEtDUzcgUGFyc2UgRmFpbHVyZSBJbnZhbGlkIEFTTjE6IENoYW5nZSB0YWcgMzAgdG8gMDIgIzIyNy4wCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NgogcGtjczdfYXNuMV9mYWlsOiIzMDgyMDUwMDA2MDkyYTg2NDg4NmY3MGQwMTA3MDJhMDgyMDRmMTMwODIwNGVkMDIwMTAxMzEwZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGIwNjA5MmE4NjQ4ODZmNzBkMDEwNzAxYTA4MjAzNGQzMDgyMDM0OTMwODIwMjMxYTAwMzAyMDEwMjAyMTQ3YmRlZGRkMjQ0NGNkMWNkZmU1YzQxYTgxMDJjODliN2RmMmU2Y2JmMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMzAxZTE3MGQzMjMyMzEzMDMyMzgzMTM2MzEzMDM1MzY1YTE3MGQzMjMzMzEzMDMyMzgzMTM2MzEzMDM1MzY1YTMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTMwODIwMTIyMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDM4MjAxMGYwMDMwODIwMTBhMDI4MjAxMDEwMGM4YjZjZjY5ODk5Y2QxZjBlYmI0Y2E2NDVjMDVlNzBlMGQyZWZlZGRjYzYxZDA4OWNiZDUxNWEzOWEzNTc5YjkyMzQzYjYxZWM3NTAwNjBmYjRlZDM3ODc2MzMyNDAwZTQyNWYxZDM3NmM3ZTc1YzI5NzMzMTRlZGY0YmIzMGM4ZjhkZDAzYjlmY2ZmOTU1YTI0NWQ0OTEzN2FkNmU2MDA1NmNhYzE5NTUyYTg2NWQ1MjE4NzE4N2NjMDQyYzljNDllM2UzYTljMTdhNTM0YjQ1M2NkYWJjMGNiMTEzYjRmNjNmNWIzMTc0YjllZTk5MDJiMTkxMGQxMTQ5NmEyNzlhNzQzMjZhZGNmZWUxMGJmZDllN2ViYWZiYjM3N2JlOWI2Mzk1OTE2NWQxM2RkNTc1MTE3MWNhZGFkM2MxZDNhZGFjNjhiYzgwMTFkNjFiNTRjZjYwMTc4YmUzNjgzOWE4OWFjOTFhYjQxOWUzY2EzN2Q2YmE4ODFkMjU1MThjNGRiNjhiY2E2ZjdjODM2MDJmNjk5YTg2YjE3ZmIxZTc3M2JjYmU3NGJiOTNhNDliMjUxYWU4NjQyOGI1NzQwZTE4NjhiYjFkNmZhYjllMjg3MTJlOThlYzMxOWFkOGZjYTRkNzMwMTBjNGIwOWM0YjgwNDU4OTYxZTdjZjA4MzUzMDIwMzAxMDAwMWEzNTMzMDUxMzAxZDA2MDM1NTFkMGUwNDE2MDQxNDhhZWVlNTk0N2NjNjdjNWRkNTE1YTc2ZTJhN2VjZDMxZWU1MmZkYzgzMDFmMDYwMzU1MWQyMzA0MTgzMDE2ODAxNDhhZWVlNTk0N2NjNjdjNWRkNTE1YTc2ZTJhN2VjZDMxZWU1MmZkYzgzMDBmMDYwMzU1MWQxMzAxMDFmZjA0MDUzMDAzMDEwMWZmMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMDM4MjAxMDEwMDgyMWQ2Yjk4Y2Q0NTdkZWJkMmIwODFhY2EyN2ViZWNkNGY5M2FjYzgyODQ0M2IzOWVhYmZmYTlmYTRlOWU0NTQzYjQ2ZmNjMzFlMmI1YjQ4MTc3OTAzZGVhNjk2OWFjNGEyY2M2NTcwNjUwMzkwZjFiMDhkNDNhNGMyZjk3NWM3ZWQ4YmYzMzU2YzcyMTgzODAyMTI0NTFhOGYxMWRlNDY1NTNjYmNkNjViNDI1NGRkYjhmNjY4MzRlYjIxZGRhMmE4ZjMzYjU4MWUxNDg0NTU3YWNhMWI5NGVlODkzMWRkZjE2MDM3YjdhNzE3MTMyMWE5MTkzNmFmYzI3ZmZjZTM5NWRlNzVkNWY3MGNiOGI1YWVlMDVmZjUwNzA4OGQ2NWFmMWU0Mzk2NmNkNDJjYmU2ZjdmYWNmOGRhZTA1NWRkODIyMmIxNjk2NTIxNzIzZjgxMjQ1MTc4NTk1Yzk4NWFlOTE3ZmQ0YjM5OTg3NzNlMWE5N2I3YmQxMDA4NTQ0NmY0MjU5YmNjMDlhNDU0OTI5MjgyYzFiODliNzFlZDU4N2E3NzVlMGEzZDQ1MzYzNDFmNDVkYWU5NjllODA2Yzk2ZmVmYzcxMDY3Nzc2YzAyYmEyMjEyMmI5MTk5YjE0YzBjMjhjMDQ0ODc1MDkwNzBiOTdmM2RkMmQ2ZDk3MjczMzE4MjAxNzcwMjgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwNWJlY2Q4NzE5NWMxZGVmZjkwYzI0YzkxMjY5YjU1YjNmMDY5YmMyMjVjMzI2YzMxNGMxYTUxNzg2ZmZlMTRjODMwYmU0ZTRiYzczY2JhMzZjOTc2NzdiNDQxNjgyNzliZTkxZTdjZGY3YzE5Mzg2YWUyMTg2MjcxOWQxM2EzYTBmZmYwODAzZDQ2MDk2MmYyY2RhODM3MTQ4NDg3MzI1MmMzZDcwNTRkYjgxNDNlMmIwODFhMzgxNmVkMDgwNGNhNTA5OWFlNWZlY2U4M2Q1YzJjMzc4M2IxOTg4YjRiNDZkYzk0ZTU1NTg3YTEwN2VhMTU0NmJmMjJkMjhhMDk3ZjY1MmE0MDY2ZGMyOTY1MjY5MDY5YWYyZjUxNzZiYjhjZTljYTZkMTFmOTY3NTdmMDMyMDRmNzU2NzAzNTg3ZDAwYWQ0MjQ3OTZjOTJmYzdhZWI2ZjQ5NDQzMTk5OWVkYTMwOTkwZTRmNTc3MzYzMmVkMjU4ZmUwMjc2NjczNTk5ZGE2ZmNlMzVjZGFkNzcyNmEwYmIwMjRjYWQ5OTZiODhlMGNiOTg4NTRjZWI1YzBiNmVjNzQ4ZDlmOWNlNmE2Y2Q0Mzc4NThiYWNiODE0NjE4YTI3MmZmM2E0MTVjNmUwN2YzZGIwOTg4Nzc3ZmRlYzg0NWE5N2JmN2QxMDJkZDAiCiAKIFBLQ1M3IFBhcnNlIEZhaWx1cmUgSW52YWxpZCBBU04xOiBDaGFuZ2UgbGVuZ3RoIGZyb20gMzcxIHRvIDM3MiAjMjI4LjAKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBwa2NzN19hc24xX2ZhaWw6IjMwODIwNTAwMDYwOTJhODY0ODg2ZjcwZDAxMDcwMmEwODIwNGYxMzA4MjA0ZWQwMjAxMDEzMTBmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwYjA2MDkyYTg2NDg4NmY3MGQwMTA3MDFhMDgyMDM0ZDMwODIwMzQ5MzA4MjAyMzFhMDAzMDIwMTAyMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEzMDFlMTcwZDMyMzIzMTMwMzIzODMxMzYzMTMwMzUzNjVhMTcwZDMyMzMzMTMwMzIzODMxMzYzMTMwMzUzNjVhMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMzA4MjAxMjIzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwMzgyMDEwZjAwMzA4MjAxMGEwMjgyMDEwMTAwYzhiNmNmNjk4OTljZDFmMGViYjRjYTY0NWMwNWU3MGUwZDJlZmVkZGNjNjFkMDg5Y2JkNTE1YTM5YTM1NzliOTIzNDNiNjFlYzc1MDA2MGZiNGVkMzc4NzYzMzI0MDBlNDI1ZjFkMzc2YzdlNzVjMjk3MzMxNGVkZjRiYjMwYzhmOGRkMDNiOWZjZmY5NTVhMjQ1ZDQ5MTM3YWQ2ZTYwMDU2Y2FjMTk1NTJhODY1ZDUyMTg3MTg3Y2MwNDJjOWM0OWUzZTNhOWMxN2E1MzRiNDUzY2RhYmMwY2IxMTNiNGY2M2Y1YjMxNzRiOWVlOTkwMmIxOTEwZDExNDk2YTI3OWE3NDMyNmFkY2ZlZTEwYmZkOWU3ZWJhZmJiMzc3YmU5YjYzOTU5MTY1ZDEzZGQ1NzUxMTcxY2FkYWQzYzFkM2FkYWM2OGJjODAxMWQ2MWI1NGNmNjAxNzhiZTM2ODM5YTg5YWM5MWFiNDE5ZTNjYTM3ZDZiYTg4MWQyNTUxOGM0ZGI2OGJjYTZmN2M4MzYwMmY2OTlhODZiMTdmYjFlNzczYmNiZTc0YmI5M2E0OWIyNTFhZTg2NDI4YjU3NDBlMTg2OGJiMWQ2ZmFiOWUyODcxMmU5OGVjMzE5YWQ4ZmNhNGQ3MzAxMGM0YjA5YzRiODA0NTg5NjFlN2NmMDgzNTMwMjAzMDEwMDAxYTM1MzMwNTEzMDFkMDYwMzU1MWQwZTA0MTYwNDE0OGFlZWU1OTQ3Y2M2N2M1ZGQ1MTVhNzZlMmE3ZWNkMzFlZTUyZmRjODMwMWYwNjAzNTUxZDIzMDQxODMwMTY4MDE0OGFlZWU1OTQ3Y2M2N2M1ZGQ1MTVhNzZlMmE3ZWNkMzFlZTUyZmRjODMwMGYwNjAzNTUxZDEzMDEwMWZmMDQwNTMwMDMwMTAxZmYzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAwMzgyMDEwMTAwODIxZDZiOThjZDQ1N2RlYmQyYjA4MWFjYTI3ZWJlY2Q0ZjkzYWNjODI4NDQzYjM5ZWFiZmZhOWZhNGU5ZTQ1NDNiNDZmY2MzMWUyYjViNDgxNzc5MDNkZWE2OTY5YWM0YTJjYzY1NzA2NTAzOTBmMWIwOGQ0M2E0YzJmOTc1YzdlZDhiZjMzNTZjNzIxODM4MDIxMjQ1MWE4ZjExZGU0NjU1M2NiY2Q2NWI0MjU0ZGRiOGY2NjgzNGViMjFkZGEyYThmMzNiNTgxZTE0ODQ1NTdhY2ExYjk0ZWU4OTMxZGRmMTYwMzdiN2E3MTcxMzIxYTkxOTM2YWZjMjdmZmNlMzk1ZGU3NWQ1ZjcwY2I4YjVhZWUwNWZmNTA3MDg4ZDY1YWYxZTQzOTY2Y2Q0MmNiZTZmN2ZhY2Y4ZGFlMDU1ZGQ4MjIyYjE2OTY1MjE3MjNmODEyNDUxNzg1OTVjOTg1YWU5MTdmZDRiMzk5ODc3M2UxYTk3YjdiZDEwMDg1NDQ2ZjQyNTliY2MwOWE0NTQ5MjkyODJjMWI4OWI3MWVkNTg3YTc3NWUwYTNkNDUzNjM0MWY0NWRhZTk2OWU4MDZjOTZmZWZjNzEwNjc3NzZjMDJiYTIyMTIyYjkxOTliMTRjMGMyOGMwNDQ4NzUwOTA3MGI5N2YzZGQyZDZkOTcyNzMzMTgyMDE3NzMwODIwMTc0MDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTAyMTQ3YmRlZGRkMjQ0NGNkMWNkZmU1YzQxYTgxMDJjODliN2RmMmU2Y2JmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDA1YmVjZDg3MTk1YzFkZWZmOTBjMjRjOTEyNjliNTViM2YwNjliYzIyNWMzMjZjMzE0YzFhNTE3ODZmZmUxNGM4MzBiZTRlNGJjNzNjYmEzNmM5NzY3N2I0NDE2ODI3OWJlOTFlN2NkZjdjMTkzODZhZTIxODYyNzE5ZDEzYTNhMGZmZjA4MDNkNDYwOTYyZjJjZGE4MzcxNDg0ODczMjUyYzNkNzA1NGRiODE0M2UyYjA4MWEzODE2ZWQwODA0Y2E1MDk5YWU1ZmVjZTgzZDVjMmMzNzgzYjE5ODhiNGI0NmRjOTRlNTU1ODdhMTA3ZWExNTQ2YmYyMmQyOGEwOTdmNjUyYTQwNjZkYzI5NjUyNjkwNjlhZjJmNTE3NmJiOGNlOWNhNmQxMWY5Njc1N2YwMzIwNGY3NTY3MDM1ODdkMDBhZDQyNDc5NmM5MmZjN2FlYjZmNDk0NDMxOTk5ZWRhMzA5OTBlNGY1NzczNjMyZWQyNThmZTAyNzY2NzM1OTlkYTZmY2UzNWNkYWQ3NzI2YTBiYjAyNGNhZDk5NmI4OGUwY2I5ODg1NGNlYjVjMGI2ZWM3NDhkOWY5Y2U2YTZjZDQzNzg1OGJhY2I4MTQ2MThhMjcyZmYzYTQxNWM2ZTA3ZjNkYjA5ODg3NzdmZGVjODQ1YTk3YmY3ZDEwMmRkMCIKIAogUEtDUzcgUGFyc2UgRmFpbHVyZSBJbnZhbGlkIEFTTjE6IENoYW5nZSBjb250ZW50cyBvZiB0YWcgMzAgdG8gY29udGFpbiBvbmUgdW5hY2NvdW50ZWQgZXh0cmEgYnl0ZSAjMjI5LjAKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBwa2NzN19hc24xX2ZhaWw6IjMwODIwNTAwMDYwOTJhODY0ODg2ZjcwZDAxMDcwMmEwODIwNGYxMzA4MjA0ZWQwMjAxMDEzMTBmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwYjA2MDkyYTg2NDg4NmY3MGQwMTA3MDFhMDgyMDM0ZDMwODIwMzQ5MzA4MjAyMzFhMDAzMDIwMTAyMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEzMDFlMTcwZDMyMzIzMTMwMzIzODMxMzYzMTMwMzUzNjVhMTcwZDMyMzMzMTMwMzIzODMxMzYzMTMwMzUzNjVhMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMzA4MjAxMjIzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwMzgyMDEwZjAwMzA4MjAxMGEwMjgyMDEwMTAwYzhiNmNmNjk4OTljZDFmMGViYjRjYTY0NWMwNWU3MGUwZDJlZmVkZGNjNjFkMDg5Y2JkNTE1YTM5YTM1NzliOTIzNDNiNjFlYzc1MDA2MGZiNGVkMzc4NzYzMzI0MDBlNDI1ZjFkMzc2YzdlNzVjMjk3MzMxNGVkZjRiYjMwYzhmOGRkMDNiOWZjZmY5NTVhMjQ1ZDQ5MTM3YWQ2ZTYwMDU2Y2FjMTk1NTJhODY1ZDUyMTg3MTg3Y2MwNDJjOWM0OWUzZTNhOWMxN2E1MzRiNDUzY2RhYmMwY2IxMTNiNGY2M2Y1YjMxNzRiOWVlOTkwMmIxOTEwZDExNDk2YTI3OWE3NDMyNmFkY2ZlZTEwYmZkOWU3ZWJhZmJiMzc3YmU5YjYzOTU5MTY1ZDEzZGQ1NzUxMTcxY2FkYWQzYzFkM2FkYWM2OGJjODAxMWQ2MWI1NGNmNjAxNzhiZTM2ODM5YTg5YWM5MWFiNDE5ZTNjYTM3ZDZiYTg4MWQyNTUxOGM0ZGI2OGJjYTZmN2M4MzYwMmY2OTlhODZiMTdmYjFlNzczYmNiZTc0YmI5M2E0OWIyNTFhZTg2NDI4YjU3NDBlMTg2OGJiMWQ2ZmFiOWUyODcxMmU5OGVjMzE5YWQ4ZmNhNGQ3MzAxMGM0YjA5YzRiODA0NTg5NjFlN2NmMDgzNTMwMjAzMDEwMDAxYTM1MzMwNTEzMDFkMDYwMzU1MWQwZTA0MTYwNDE0OGFlZWU1OTQ3Y2M2N2M1ZGQ1MTVhNzZlMmE3ZWNkMzFlZTUyZmRjODMwMWYwNjAzNTUxZDIzMDQxODMwMTY4MDE0OGFlZWU1OTQ3Y2M2N2M1ZGQ1MTVhNzZlMmE3ZWNkMzFlZTUyZmRjODMwMGYwNjAzNTUxZDEzMDEwMWZmMDQwNTMwMDMwMTAxZmYzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAwMzgyMDEwMTAwODIxZDZiOThjZDQ1N2RlYmQyYjA4MWFjYTI3ZWJlY2Q0ZjkzYWNjODI4NDQzYjM5ZWFiZmZhOWZhNGU5ZTQ1NDNiNDZmY2MzMWUyYjViNDgxNzc5MDNkZWE2OTY5YWM0YTJjYzY1NzA2NTAzOTBmMWIwOGQ0M2E0YzJmOTc1YzdlZDhiZjMzNTZjNzIxODM4MDIxMjQ1MWE4ZjExZGU0NjU1M2NiY2Q2NWI0MjU0ZGRiOGY2NjgzNGViMjFkZGEyYThmMzNiNTgxZTE0ODQ1NTdhY2ExYjk0ZWU4OTMxZGRmMTYwMzdiN2E3MTcxMzIxYTkxOTM2YWZjMjdmZmNlMzk1ZGU3NWQ1ZjcwY2I4YjVhZWUwNWZmNTA3MDg4ZDY1YWYxZTQzOTY2Y2Q0MmNiZTZmN2ZhY2Y4ZGFlMDU1ZGQ4MjIyYjE2OTY1MjE3MjNmODEyNDUxNzg1OTVjOTg1YWU5MTdmZDRiMzk5ODc3M2UxYTk3YjdiZDEwMDg1NDQ2ZjQyNTliY2MwOWE0NTQ5MjkyODJjMWI4OWI3MWVkNTg3YTc3NWUwYTNkNDUzNjM0MWY0NWRhZTk2OWU4MDZjOTZmZWZjNzEwNjc3NzZjMDJiYTIyMTIyYjkxOTliMTRjMGMyOGMwNDQ4NzUwOTA3MGI5N2YzZGQyZDZkOTcyNzMzMTgyMDE3NzMwODIwMTc0MDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTAyMTQ3YmRlZGRkMjQ0NGNkMWNkZmU1YzQxYTgxMDJjODliN2RmMmU2Y2JmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDA1YmVjZDg3MTk1YzFkZWZmOTBjMjRjOTEyNjliNTViM2YwNjliYzIyNWMzMjZjMzE0YzFhNTE3ODZmZmUxNGM4MzBiZTRlNGJjNzNjYmEzNmM5NzY3N2I0NDE2ODI3OWJlOTFlN2NkZjdjMTkzODZhZTIxODYyNzE5ZDEzYTNhMGZmZjA4MDNkNDYwOTYyZjJjZGE4MzcxNDg0ODczMjUyYzNkNzA1NGRiODE0M2UyYjA4MWEzODE2ZWQwODA0Y2E1MDk5YWU1ZmVjZTgzZDVjMmMzNzgzYjE5ODhiNGI0NmRjOTRlNTU1ODdhMTA3ZWExNTQ2YmYyMmQyOGEwOTdmNjUyYTQwNjZkYzI5NjUyNjkwNjlhZjJmNTE3NmJiOGNlOWNhNmQxMWY5Njc1N2YwMzIwNGY3NTY3MDM1ODdkMDBhZDQyNDc5NmM5MmZjN2FlYjZmNDk0NDMxOTk5ZWRhMzA5OTBlNGY1NzczNjMyZWQyNThmZTAyNzY2NzM1OTlkYTZmY2UzNWNkYWQ3NzI2YTBiYjAyNGNhZDk5NmI4OGUwY2I5ODg1NGNlYjVjMGI2ZWM3NDhkOWY5Y2U2YTZjZDQzNzg1OGJhY2I4MTQ2MThhMjcyZmYzYTQxNWM2ZTA3ZjNkYjA5ODg3NzdmZGVjODQ1YTk3YmY3ZDEwMmRkMDAwIgogCiBQS0NTNyBQYXJzZSBGYWlsdXJlIEludmFsaWQgQVNOMTogQ2hhbmdlIGxlbmd0aCBmcm9tIDM3MSB0byAzNzAgIzIzMC4wCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NgogcGtjczdfYXNuMV9mYWlsOiIzMDgyMDUwMDA2MDkyYTg2NDg4NmY3MGQwMTA3MDJhMDgyMDRmMTMwODIwNGVkMDIwMTAxMzEwZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGIwNjA5MmE4NjQ4ODZmNzBkMDEwNzAxYTA4MjAzNGQzMDgyMDM0OTMwODIwMjMxYTAwMzAyMDEwMjAyMTQ3YmRlZGRkMjQ0NGNkMWNkZmU1YzQxYTgxMDJjODliN2RmMmU2Y2JmMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMzAxZTE3MGQzMjMyMzEzMDMyMzgzMTM2MzEzMDM1MzY1YTE3MGQzMjMzMzEzMDMyMzgzMTM2MzEzMDM1MzY1YTMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTMwODIwMTIyMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDM4MjAxMGYwMDMwODIwMTBhMDI4MjAxMDEwMGM4YjZjZjY5ODk5Y2QxZjBlYmI0Y2E2NDVjMDVlNzBlMGQyZWZlZGRjYzYxZDA4OWNiZDUxNWEzOWEzNTc5YjkyMzQzYjYxZWM3NTAwNjBmYjRlZDM3ODc2MzMyNDAwZTQyNWYxZDM3NmM3ZTc1YzI5NzMzMTRlZGY0YmIzMGM4ZjhkZDAzYjlmY2ZmOTU1YTI0NWQ0OTEzN2FkNmU2MDA1NmNhYzE5NTUyYTg2NWQ1MjE4NzE4N2NjMDQyYzljNDllM2UzYTljMTdhNTM0YjQ1M2NkYWJjMGNiMTEzYjRmNjNmNWIzMTc0YjllZTk5MDJiMTkxMGQxMTQ5NmEyNzlhNzQzMjZhZGNmZWUxMGJmZDllN2ViYWZiYjM3N2JlOWI2Mzk1OTE2NWQxM2RkNTc1MTE3MWNhZGFkM2MxZDNhZGFjNjhiYzgwMTFkNjFiNTRjZjYwMTc4YmUzNjgzOWE4OWFjOTFhYjQxOWUzY2EzN2Q2YmE4ODFkMjU1MThjNGRiNjhiY2E2ZjdjODM2MDJmNjk5YTg2YjE3ZmIxZTc3M2JjYmU3NGJiOTNhNDliMjUxYWU4NjQyOGI1NzQwZTE4NjhiYjFkNmZhYjllMjg3MTJlOThlYzMxOWFkOGZjYTRkNzMwMTBjNGIwOWM0YjgwNDU4OTYxZTdjZjA4MzUzMDIwMzAxMDAwMWEzNTMzMDUxMzAxZDA2MDM1NTFkMGUwNDE2MDQxNDhhZWVlNTk0N2NjNjdjNWRkNTE1YTc2ZTJhN2VjZDMxZWU1MmZkYzgzMDFmMDYwMzU1MWQyMzA0MTgzMDE2ODAxNDhhZWVlNTk0N2NjNjdjNWRkNTE1YTc2ZTJhN2VjZDMxZWU1MmZkYzgzMDBmMDYwMzU1MWQxMzAxMDFmZjA0MDUzMDAzMDEwMWZmMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMDM4MjAxMDEwMDgyMWQ2Yjk4Y2Q0NTdkZWJkMmIwODFhY2EyN2ViZWNkNGY5M2FjYzgyODQ0M2IzOWVhYmZmYTlmYTRlOWU0NTQzYjQ2ZmNjMzFlMmI1YjQ4MTc3OTAzZGVhNjk2OWFjNGEyY2M2NTcwNjUwMzkwZjFiMDhkNDNhNGMyZjk3NWM3ZWQ4YmYzMzU2YzcyMTgzODAyMTI0NTFhOGYxMWRlNDY1NTNjYmNkNjViNDI1NGRkYjhmNjY4MzRlYjIxZGRhMmE4ZjMzYjU4MWUxNDg0NTU3YWNhMWI5NGVlODkzMWRkZjE2MDM3YjdhNzE3MTMyMWE5MTkzNmFmYzI3ZmZjZTM5NWRlNzVkNWY3MGNiOGI1YWVlMDVmZjUwNzA4OGQ2NWFmMWU0Mzk2NmNkNDJjYmU2ZjdmYWNmOGRhZTA1NWRkODIyMmIxNjk2NTIxNzIzZjgxMjQ1MTc4NTk1Yzk4NWFlOTE3ZmQ0YjM5OTg3NzNlMWE5N2I3YmQxMDA4NTQ0NmY0MjU5YmNjMDlhNDU0OTI5MjgyYzFiODliNzFlZDU4N2E3NzVlMGEzZDQ1MzYzNDFmNDVkYWU5NjllODA2Yzk2ZmVmYzcxMDY3Nzc2YzAyYmEyMjEyMmI5MTk5YjE0YzBjMjhjMDQ0ODc1MDkwNzBiOTdmM2RkMmQ2ZDk3MjczMzE4MjAxNzczMDgyMDE3MjAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwNWJlY2Q4NzE5NWMxZGVmZjkwYzI0YzkxMjY5YjU1YjNmMDY5YmMyMjVjMzI2YzMxNGMxYTUxNzg2ZmZlMTRjODMwYmU0ZTRiYzczY2JhMzZjOTc2NzdiNDQxNjgyNzliZTkxZTdjZGY3YzE5Mzg2YWUyMTg2MjcxOWQxM2EzYTBmZmYwODAzZDQ2MDk2MmYyY2RhODM3MTQ4NDg3MzI1MmMzZDcwNTRkYjgxNDNlMmIwODFhMzgxNmVkMDgwNGNhNTA5OWFlNWZlY2U4M2Q1YzJjMzc4M2IxOTg4YjRiNDZkYzk0ZTU1NTg3YTEwN2VhMTU0NmJmMjJkMjhhMDk3ZjY1MmE0MDY2ZGMyOTY1MjY5MDY5YWYyZjUxNzZiYjhjZTljYTZkMTFmOTY3NTdmMDMyMDRmNzU2NzAzNTg3ZDAwYWQ0MjQ3OTZjOTJmYzdhZWI2ZjQ5NDQzMTk5OWVkYTMwOTkwZTRmNTc3MzYzMmVkMjU4ZmUwMjc2NjczNTk5ZGE2ZmNlMzVjZGFkNzcyNmEwYmIwMjRjYWQ5OTZiODhlMGNiOTg4NTRjZWI1YzBiNmVjNzQ4ZDlmOWNlNmE2Y2Q0Mzc4NThiYWNiODE0NjE4YTI3MmZmM2E0MTVjNmUwN2YzZGIwOTg4Nzc3ZmRlYzg0NWE5N2JmN2QxMDJkZDAiCiAKIFBLQ1M3IFBhcnNlIEZhaWx1cmUgSW52YWxpZCBBU04xOiBDaGFuZ2UgdGFnIDAyIHRvIDA0ICMyMzEuMAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHBrY3M3X2FzbjFfZmFpbDoiMzA4MjA1MDAwNjA5MmE4NjQ4ODZmNzBkMDEwNzAyYTA4MjA0ZjEzMDgyMDRlZDAyMDEwMTMxMGYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBiMDYwOTJhODY0ODg2ZjcwZDAxMDcwMWEwODIwMzRkMzA4MjAzNDkzMDgyMDIzMWEwMDMwMjAxMDIwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTMwMWUxNzBkMzIzMjMxMzAzMjM4MzEzNjMxMzAzNTM2NWExNzBkMzIzMzMxMzAzMjM4MzEzNjMxMzAzNTM2NWEzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEzMDgyMDEyMjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDAzODIwMTBmMDAzMDgyMDEwYTAyODIwMTAxMDBjOGI2Y2Y2OTg5OWNkMWYwZWJiNGNhNjQ1YzA1ZTcwZTBkMmVmZWRkY2M2MWQwODljYmQ1MTVhMzlhMzU3OWI5MjM0M2I2MWVjNzUwMDYwZmI0ZWQzNzg3NjMzMjQwMGU0MjVmMWQzNzZjN2U3NWMyOTczMzE0ZWRmNGJiMzBjOGY4ZGQwM2I5ZmNmZjk1NWEyNDVkNDkxMzdhZDZlNjAwNTZjYWMxOTU1MmE4NjVkNTIxODcxODdjYzA0MmM5YzQ5ZTNlM2E5YzE3YTUzNGI0NTNjZGFiYzBjYjExM2I0ZjYzZjViMzE3NGI5ZWU5OTAyYjE5MTBkMTE0OTZhMjc5YTc0MzI2YWRjZmVlMTBiZmQ5ZTdlYmFmYmIzNzdiZTliNjM5NTkxNjVkMTNkZDU3NTExNzFjYWRhZDNjMWQzYWRhYzY4YmM4MDExZDYxYjU0Y2Y2MDE3OGJlMzY4MzlhODlhYzkxYWI0MTllM2NhMzdkNmJhODgxZDI1NTE4YzRkYjY4YmNhNmY3YzgzNjAyZjY5OWE4NmIxN2ZiMWU3NzNiY2JlNzRiYjkzYTQ5YjI1MWFlODY0MjhiNTc0MGUxODY4YmIxZDZmYWI5ZTI4NzEyZTk4ZWMzMTlhZDhmY2E0ZDczMDEwYzRiMDljNGI4MDQ1ODk2MWU3Y2YwODM1MzAyMDMwMTAwMDFhMzUzMzA1MTMwMWQwNjAzNTUxZDBlMDQxNjA0MTQ4YWVlZTU5NDdjYzY3YzVkZDUxNWE3NmUyYTdlY2QzMWVlNTJmZGM4MzAxZjA2MDM1NTFkMjMwNDE4MzAxNjgwMTQ4YWVlZTU5NDdjYzY3YzVkZDUxNWE3NmUyYTdlY2QzMWVlNTJmZGM4MzAwZjA2MDM1NTFkMTMwMTAxZmYwNDA1MzAwMzAxMDFmZjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDAzODIwMTAxMDA4MjFkNmI5OGNkNDU3ZGViZDJiMDgxYWNhMjdlYmVjZDRmOTNhY2M4Mjg0NDNiMzllYWJmZmE5ZmE0ZTllNDU0M2I0NmZjYzMxZTJiNWI0ODE3NzkwM2RlYTY5NjlhYzRhMmNjNjU3MDY1MDM5MGYxYjA4ZDQzYTRjMmY5NzVjN2VkOGJmMzM1NmM3MjE4MzgwMjEyNDUxYThmMTFkZTQ2NTUzY2JjZDY1YjQyNTRkZGI4ZjY2ODM0ZWIyMWRkYTJhOGYzM2I1ODFlMTQ4NDU1N2FjYTFiOTRlZTg5MzFkZGYxNjAzN2I3YTcxNzEzMjFhOTE5MzZhZmMyN2ZmY2UzOTVkZTc1ZDVmNzBjYjhiNWFlZTA1ZmY1MDcwODhkNjVhZjFlNDM5NjZjZDQyY2JlNmY3ZmFjZjhkYWUwNTVkZDgyMjJiMTY5NjUyMTcyM2Y4MTI0NTE3ODU5NWM5ODVhZTkxN2ZkNGIzOTk4NzczZTFhOTdiN2JkMTAwODU0NDZmNDI1OWJjYzA5YTQ1NDkyOTI4MmMxYjg5YjcxZWQ1ODdhNzc1ZTBhM2Q0NTM2MzQxZjQ1ZGFlOTY5ZTgwNmM5NmZlZmM3MTA2Nzc3NmMwMmJhMjIxMjJiOTE5OWIxNGMwYzI4YzA0NDg3NTA5MDcwYjk3ZjNkZDJkNmQ5NzI3MzMxODIwMTc3MzA4MjAxNzMwNDAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDViZWNkODcxOTVjMWRlZmY5MGMyNGM5MTI2OWI1NWIzZjA2OWJjMjI1YzMyNmMzMTRjMWE1MTc4NmZmZTE0YzgzMGJlNGU0YmM3M2NiYTM2Yzk3Njc3YjQ0MTY4Mjc5YmU5MWU3Y2RmN2MxOTM4NmFlMjE4NjI3MTlkMTNhM2EwZmZmMDgwM2Q0NjA5NjJmMmNkYTgzNzE0ODQ4NzMyNTJjM2Q3MDU0ZGI4MTQzZTJiMDgxYTM4MTZlZDA4MDRjYTUwOTlhZTVmZWNlODNkNWMyYzM3ODNiMTk4OGI0YjQ2ZGM5NGU1NTU4N2ExMDdlYTE1NDZiZjIyZDI4YTA5N2Y2NTJhNDA2NmRjMjk2NTI2OTA2OWFmMmY1MTc2YmI4Y2U5Y2E2ZDExZjk2NzU3ZjAzMjA0Zjc1NjcwMzU4N2QwMGFkNDI0Nzk2YzkyZmM3YWViNmY0OTQ0MzE5OTllZGEzMDk5MGU0ZjU3NzM2MzJlZDI1OGZlMDI3NjY3MzU5OWRhNmZjZTM1Y2RhZDc3MjZhMGJiMDI0Y2FkOTk2Yjg4ZTBjYjk4ODU0Y2ViNWMwYjZlYzc0OGQ5ZjljZTZhNmNkNDM3ODU4YmFjYjgxNDYxOGEyNzJmZjNhNDE1YzZlMDdmM2RiMDk4ODc3N2ZkZWM4NDVhOTdiZjdkMTAyZGQwIgogCiBQS0NTNyBQYXJzZSBGYWlsdXJlIEludmFsaWQgQVNOMTogQ2hhbmdlIGxlbmd0aCBmcm9tIDEgdG8gMiAjMjMyLjAKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBwa2NzN19hc24xX2ZhaWw6IjMwODIwNTAwMDYwOTJhODY0ODg2ZjcwZDAxMDcwMmEwODIwNGYxMzA4MjA0ZWQwMjAxMDEzMTBmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwYjA2MDkyYTg2NDg4NmY3MGQwMTA3MDFhMDgyMDM0ZDMwODIwMzQ5MzA4MjAyMzFhMDAzMDIwMTAyMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEzMDFlMTcwZDMyMzIzMTMwMzIzODMxMzYzMTMwMzUzNjVhMTcwZDMyMzMzMTMwMzIzODMxMzYzMTMwMzUzNjVhMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMzA4MjAxMjIzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwMzgyMDEwZjAwMzA4MjAxMGEwMjgyMDEwMTAwYzhiNmNmNjk4OTljZDFmMGViYjRjYTY0NWMwNWU3MGUwZDJlZmVkZGNjNjFkMDg5Y2JkNTE1YTM5YTM1NzliOTIzNDNiNjFlYzc1MDA2MGZiNGVkMzc4NzYzMzI0MDBlNDI1ZjFkMzc2YzdlNzVjMjk3MzMxNGVkZjRiYjMwYzhmOGRkMDNiOWZjZmY5NTVhMjQ1ZDQ5MTM3YWQ2ZTYwMDU2Y2FjMTk1NTJhODY1ZDUyMTg3MTg3Y2MwNDJjOWM0OWUzZTNhOWMxN2E1MzRiNDUzY2RhYmMwY2IxMTNiNGY2M2Y1YjMxNzRiOWVlOTkwMmIxOTEwZDExNDk2YTI3OWE3NDMyNmFkY2ZlZTEwYmZkOWU3ZWJhZmJiMzc3YmU5YjYzOTU5MTY1ZDEzZGQ1NzUxMTcxY2FkYWQzYzFkM2FkYWM2OGJjODAxMWQ2MWI1NGNmNjAxNzhiZTM2ODM5YTg5YWM5MWFiNDE5ZTNjYTM3ZDZiYTg4MWQyNTUxOGM0ZGI2OGJjYTZmN2M4MzYwMmY2OTlhODZiMTdmYjFlNzczYmNiZTc0YmI5M2E0OWIyNTFhZTg2NDI4YjU3NDBlMTg2OGJiMWQ2ZmFiOWUyODcxMmU5OGVjMzE5YWQ4ZmNhNGQ3MzAxMGM0YjA5YzRiODA0NTg5NjFlN2NmMDgzNTMwMjAzMDEwMDAxYTM1MzMwNTEzMDFkMDYwMzU1MWQwZTA0MTYwNDE0OGFlZWU1OTQ3Y2M2N2M1ZGQ1MTVhNzZlMmE3ZWNkMzFlZTUyZmRjODMwMWYwNjAzNTUxZDIzMDQxODMwMTY4MDE0OGFlZWU1OTQ3Y2M2N2M1ZGQ1MTVhNzZlMmE3ZWNkMzFlZTUyZmRjODMwMGYwNjAzNTUxZDEzMDEwMWZmMDQwNTMwMDMwMTAxZmYzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAwMzgyMDEwMTAwODIxZDZiOThjZDQ1N2RlYmQyYjA4MWFjYTI3ZWJlY2Q0ZjkzYWNjODI4NDQzYjM5ZWFiZmZhOWZhNGU5ZTQ1NDNiNDZmY2MzMWUyYjViNDgxNzc5MDNkZWE2OTY5YWM0YTJjYzY1NzA2NTAzOTBmMWIwOGQ0M2E0YzJmOTc1YzdlZDhiZjMzNTZjNzIxODM4MDIxMjQ1MWE4ZjExZGU0NjU1M2NiY2Q2NWI0MjU0ZGRiOGY2NjgzNGViMjFkZGEyYThmMzNiNTgxZTE0ODQ1NTdhY2ExYjk0ZWU4OTMxZGRmMTYwMzdiN2E3MTcxMzIxYTkxOTM2YWZjMjdmZmNlMzk1ZGU3NWQ1ZjcwY2I4YjVhZWUwNWZmNTA3MDg4ZDY1YWYxZTQzOTY2Y2Q0MmNiZTZmN2ZhY2Y4ZGFlMDU1ZGQ4MjIyYjE2OTY1MjE3MjNmODEyNDUxNzg1OTVjOTg1YWU5MTdmZDRiMzk5ODc3M2UxYTk3YjdiZDEwMDg1NDQ2ZjQyNTliY2MwOWE0NTQ5MjkyODJjMWI4OWI3MWVkNTg3YTc3NWUwYTNkNDUzNjM0MWY0NWRhZTk2OWU4MDZjOTZmZWZjNzEwNjc3NzZjMDJiYTIyMTIyYjkxOTliMTRjMGMyOGMwNDQ4NzUwOTA3MGI5N2YzZGQyZDZkOTcyNzMzMTgyMDE3NzMwODIwMTczMDIwMjAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTAyMTQ3YmRlZGRkMjQ0NGNkMWNkZmU1YzQxYTgxMDJjODliN2RmMmU2Y2JmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDA1YmVjZDg3MTk1YzFkZWZmOTBjMjRjOTEyNjliNTViM2YwNjliYzIyNWMzMjZjMzE0YzFhNTE3ODZmZmUxNGM4MzBiZTRlNGJjNzNjYmEzNmM5NzY3N2I0NDE2ODI3OWJlOTFlN2NkZjdjMTkzODZhZTIxODYyNzE5ZDEzYTNhMGZmZjA4MDNkNDYwOTYyZjJjZGE4MzcxNDg0ODczMjUyYzNkNzA1NGRiODE0M2UyYjA4MWEzODE2ZWQwODA0Y2E1MDk5YWU1ZmVjZTgzZDVjMmMzNzgzYjE5ODhiNGI0NmRjOTRlNTU1ODdhMTA3ZWExNTQ2YmYyMmQyOGEwOTdmNjUyYTQwNjZkYzI5NjUyNjkwNjlhZjJmNTE3NmJiOGNlOWNhNmQxMWY5Njc1N2YwMzIwNGY3NTY3MDM1ODdkMDBhZDQyNDc5NmM5MmZjN2FlYjZmNDk0NDMxOTk5ZWRhMzA5OTBlNGY1NzczNjMyZWQyNThmZTAyNzY2NzM1OTlkYTZmY2UzNWNkYWQ3NzI2YTBiYjAyNGNhZDk5NmI4OGUwY2I5ODg1NGNlYjVjMGI2ZWM3NDhkOWY5Y2U2YTZjZDQzNzg1OGJhY2I4MTQ2MThhMjcyZmYzYTQxNWM2ZTA3ZjNkYjA5ODg3NzdmZGVjODQ1YTk3YmY3ZDEwMmRkMCIKIAogUEtDUzcgUGFyc2UgRmFpbHVyZSBJbnZhbGlkIEFTTjE6IENoYW5nZSBsZW5ndGggZnJvbSAxIHRvIDAgIzIzMy4wCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NgogcGtjczdfYXNuMV9mYWlsOiIzMDgyMDUwMDA2MDkyYTg2NDg4NmY3MGQwMTA3MDJhMDgyMDRmMTMwODIwNGVkMDIwMTAxMzEwZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGIwNjA5MmE4NjQ4ODZmNzBkMDEwNzAxYTA4MjAzNGQzMDgyMDM0OTMwODIwMjMxYTAwMzAyMDEwMjAyMTQ3YmRlZGRkMjQ0NGNkMWNkZmU1YzQxYTgxMDJjODliN2RmMmU2Y2JmMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMzAxZTE3MGQzMjMyMzEzMDMyMzgzMTM2MzEzMDM1MzY1YTE3MGQzMjMzMzEzMDMyMzgzMTM2MzEzMDM1MzY1YTMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTMwODIwMTIyMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDM4MjAxMGYwMDMwODIwMTBhMDI4MjAxMDEwMGM4YjZjZjY5ODk5Y2QxZjBlYmI0Y2E2NDVjMDVlNzBlMGQyZWZlZGRjYzYxZDA4OWNiZDUxNWEzOWEzNTc5YjkyMzQzYjYxZWM3NTAwNjBmYjRlZDM3ODc2MzMyNDAwZTQyNWYxZDM3NmM3ZTc1YzI5NzMzMTRlZGY0YmIzMGM4ZjhkZDAzYjlmY2ZmOTU1YTI0NWQ0OTEzN2FkNmU2MDA1NmNhYzE5NTUyYTg2NWQ1MjE4NzE4N2NjMDQyYzljNDllM2UzYTljMTdhNTM0YjQ1M2NkYWJjMGNiMTEzYjRmNjNmNWIzMTc0YjllZTk5MDJiMTkxMGQxMTQ5NmEyNzlhNzQzMjZhZGNmZWUxMGJmZDllN2ViYWZiYjM3N2JlOWI2Mzk1OTE2NWQxM2RkNTc1MTE3MWNhZGFkM2MxZDNhZGFjNjhiYzgwMTFkNjFiNTRjZjYwMTc4YmUzNjgzOWE4OWFjOTFhYjQxOWUzY2EzN2Q2YmE4ODFkMjU1MThjNGRiNjhiY2E2ZjdjODM2MDJmNjk5YTg2YjE3ZmIxZTc3M2JjYmU3NGJiOTNhNDliMjUxYWU4NjQyOGI1NzQwZTE4NjhiYjFkNmZhYjllMjg3MTJlOThlYzMxOWFkOGZjYTRkNzMwMTBjNGIwOWM0YjgwNDU4OTYxZTdjZjA4MzUzMDIwMzAxMDAwMWEzNTMzMDUxMzAxZDA2MDM1NTFkMGUwNDE2MDQxNDhhZWVlNTk0N2NjNjdjNWRkNTE1YTc2ZTJhN2VjZDMxZWU1MmZkYzgzMDFmMDYwMzU1MWQyMzA0MTgzMDE2ODAxNDhhZWVlNTk0N2NjNjdjNWRkNTE1YTc2ZTJhN2VjZDMxZWU1MmZkYzgzMDBmMDYwMzU1MWQxMzAxMDFmZjA0MDUzMDAzMDEwMWZmMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMDM4MjAxMDEwMDgyMWQ2Yjk4Y2Q0NTdkZWJkMmIwODFhY2EyN2ViZWNkNGY5M2FjYzgyODQ0M2IzOWVhYmZmYTlmYTRlOWU0NTQzYjQ2ZmNjMzFlMmI1YjQ4MTc3OTAzZGVhNjk2OWFjNGEyY2M2NTcwNjUwMzkwZjFiMDhkNDNhNGMyZjk3NWM3ZWQ4YmYzMzU2YzcyMTgzODAyMTI0NTFhOGYxMWRlNDY1NTNjYmNkNjViNDI1NGRkYjhmNjY4MzRlYjIxZGRhMmE4ZjMzYjU4MWUxNDg0NTU3YWNhMWI5NGVlODkzMWRkZjE2MDM3YjdhNzE3MTMyMWE5MTkzNmFmYzI3ZmZjZTM5NWRlNzVkNWY3MGNiOGI1YWVlMDVmZjUwNzA4OGQ2NWFmMWU0Mzk2NmNkNDJjYmU2ZjdmYWNmOGRhZTA1NWRkODIyMmIxNjk2NTIxNzIzZjgxMjQ1MTc4NTk1Yzk4NWFlOTE3ZmQ0YjM5OTg3NzNlMWE5N2I3YmQxMDA4NTQ0NmY0MjU5YmNjMDlhNDU0OTI5MjgyYzFiODliNzFlZDU4N2E3NzVlMGEzZDQ1MzYzNDFmNDVkYWU5NjllODA2Yzk2ZmVmYzcxMDY3Nzc2YzAyYmEyMjEyMmI5MTk5YjE0YzBjMjhjMDQ0ODc1MDkwNzBiOTdmM2RkMmQ2ZDk3MjczMzE4MjAxNzczMDgyMDE3MzAyMDAwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwNWJlY2Q4NzE5NWMxZGVmZjkwYzI0YzkxMjY5YjU1YjNmMDY5YmMyMjVjMzI2YzMxNGMxYTUxNzg2ZmZlMTRjODMwYmU0ZTRiYzczY2JhMzZjOTc2NzdiNDQxNjgyNzliZTkxZTdjZGY3YzE5Mzg2YWUyMTg2MjcxOWQxM2EzYTBmZmYwODAzZDQ2MDk2MmYyY2RhODM3MTQ4NDg3MzI1MmMzZDcwNTRkYjgxNDNlMmIwODFhMzgxNmVkMDgwNGNhNTA5OWFlNWZlY2U4M2Q1YzJjMzc4M2IxOTg4YjRiNDZkYzk0ZTU1NTg3YTEwN2VhMTU0NmJmMjJkMjhhMDk3ZjY1MmE0MDY2ZGMyOTY1MjY5MDY5YWYyZjUxNzZiYjhjZTljYTZkMTFmOTY3NTdmMDMyMDRmNzU2NzAzNTg3ZDAwYWQ0MjQ3OTZjOTJmYzdhZWI2ZjQ5NDQzMTk5OWVkYTMwOTkwZTRmNTc3MzYzMmVkMjU4ZmUwMjc2NjczNTk5ZGE2ZmNlMzVjZGFkNzcyNmEwYmIwMjRjYWQ5OTZiODhlMGNiOTg4NTRjZWI1YzBiNmVjNzQ4ZDlmOWNlNmE2Y2Q0Mzc4NThiYWNiODE0NjE4YTI3MmZmM2E0MTVjNmUwN2YzZGIwOTg4Nzc3ZmRlYzg0NWE5N2JmN2QxMDJkZDAiCiAKIFBLQ1M3IFBhcnNlIEZhaWx1cmUgSW52YWxpZCBBU04xOiBDaGFuZ2UgdGFnIDMwIHRvIDAyICMyMzQuMAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHBrY3M3X2FzbjFfZmFpbDoiMzA4MjA1MDAwNjA5MmE4NjQ4ODZmNzBkMDEwNzAyYTA4MjA0ZjEzMDgyMDRlZDAyMDEwMTMxMGYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBiMDYwOTJhODY0ODg2ZjcwZDAxMDcwMWEwODIwMzRkMzA4MjAzNDkzMDgyMDIzMWEwMDMwMjAxMDIwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTMwMWUxNzBkMzIzMjMxMzAzMjM4MzEzNjMxMzAzNTM2NWExNzBkMzIzMzMxMzAzMjM4MzEzNjMxMzAzNTM2NWEzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEzMDgyMDEyMjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDAzODIwMTBmMDAzMDgyMDEwYTAyODIwMTAxMDBjOGI2Y2Y2OTg5OWNkMWYwZWJiNGNhNjQ1YzA1ZTcwZTBkMmVmZWRkY2M2MWQwODljYmQ1MTVhMzlhMzU3OWI5MjM0M2I2MWVjNzUwMDYwZmI0ZWQzNzg3NjMzMjQwMGU0MjVmMWQzNzZjN2U3NWMyOTczMzE0ZWRmNGJiMzBjOGY4ZGQwM2I5ZmNmZjk1NWEyNDVkNDkxMzdhZDZlNjAwNTZjYWMxOTU1MmE4NjVkNTIxODcxODdjYzA0MmM5YzQ5ZTNlM2E5YzE3YTUzNGI0NTNjZGFiYzBjYjExM2I0ZjYzZjViMzE3NGI5ZWU5OTAyYjE5MTBkMTE0OTZhMjc5YTc0MzI2YWRjZmVlMTBiZmQ5ZTdlYmFmYmIzNzdiZTliNjM5NTkxNjVkMTNkZDU3NTExNzFjYWRhZDNjMWQzYWRhYzY4YmM4MDExZDYxYjU0Y2Y2MDE3OGJlMzY4MzlhODlhYzkxYWI0MTllM2NhMzdkNmJhODgxZDI1NTE4YzRkYjY4YmNhNmY3YzgzNjAyZjY5OWE4NmIxN2ZiMWU3NzNiY2JlNzRiYjkzYTQ5YjI1MWFlODY0MjhiNTc0MGUxODY4YmIxZDZmYWI5ZTI4NzEyZTk4ZWMzMTlhZDhmY2E0ZDczMDEwYzRiMDljNGI4MDQ1ODk2MWU3Y2YwODM1MzAyMDMwMTAwMDFhMzUzMzA1MTMwMWQwNjAzNTUxZDBlMDQxNjA0MTQ4YWVlZTU5NDdjYzY3YzVkZDUxNWE3NmUyYTdlY2QzMWVlNTJmZGM4MzAxZjA2MDM1NTFkMjMwNDE4MzAxNjgwMTQ4YWVlZTU5NDdjYzY3YzVkZDUxNWE3NmUyYTdlY2QzMWVlNTJmZGM4MzAwZjA2MDM1NTFkMTMwMTAxZmYwNDA1MzAwMzAxMDFmZjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDAzODIwMTAxMDA4MjFkNmI5OGNkNDU3ZGViZDJiMDgxYWNhMjdlYmVjZDRmOTNhY2M4Mjg0NDNiMzllYWJmZmE5ZmE0ZTllNDU0M2I0NmZjYzMxZTJiNWI0ODE3NzkwM2RlYTY5NjlhYzRhMmNjNjU3MDY1MDM5MGYxYjA4ZDQzYTRjMmY5NzVjN2VkOGJmMzM1NmM3MjE4MzgwMjEyNDUxYThmMTFkZTQ2NTUzY2JjZDY1YjQyNTRkZGI4ZjY2ODM0ZWIyMWRkYTJhOGYzM2I1ODFlMTQ4NDU1N2FjYTFiOTRlZTg5MzFkZGYxNjAzN2I3YTcxNzEzMjFhOTE5MzZhZmMyN2ZmY2UzOTVkZTc1ZDVmNzBjYjhiNWFlZTA1ZmY1MDcwODhkNjVhZjFlNDM5NjZjZDQyY2JlNmY3ZmFjZjhkYWUwNTVkZDgyMjJiMTY5NjUyMTcyM2Y4MTI0NTE3ODU5NWM5ODVhZTkxN2ZkNGIzOTk4NzczZTFhOTdiN2JkMTAwODU0NDZmNDI1OWJjYzA5YTQ1NDkyOTI4MmMxYjg5YjcxZWQ1ODdhNzc1ZTBhM2Q0NTM2MzQxZjQ1ZGFlOTY5ZTgwNmM5NmZlZmM3MTA2Nzc3NmMwMmJhMjIxMjJiOTE5OWIxNGMwYzI4YzA0NDg3NTA5MDcwYjk3ZjNkZDJkNmQ5NzI3MzMxODIwMTc3MzA4MjAxNzMwMjAxMDEwMjRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDViZWNkODcxOTVjMWRlZmY5MGMyNGM5MTI2OWI1NWIzZjA2OWJjMjI1YzMyNmMzMTRjMWE1MTc4NmZmZTE0YzgzMGJlNGU0YmM3M2NiYTM2Yzk3Njc3YjQ0MTY4Mjc5YmU5MWU3Y2RmN2MxOTM4NmFlMjE4NjI3MTlkMTNhM2EwZmZmMDgwM2Q0NjA5NjJmMmNkYTgzNzE0ODQ4NzMyNTJjM2Q3MDU0ZGI4MTQzZTJiMDgxYTM4MTZlZDA4MDRjYTUwOTlhZTVmZWNlODNkNWMyYzM3ODNiMTk4OGI0YjQ2ZGM5NGU1NTU4N2ExMDdlYTE1NDZiZjIyZDI4YTA5N2Y2NTJhNDA2NmRjMjk2NTI2OTA2OWFmMmY1MTc2YmI4Y2U5Y2E2ZDExZjk2NzU3ZjAzMjA0Zjc1NjcwMzU4N2QwMGFkNDI0Nzk2YzkyZmM3YWViNmY0OTQ0MzE5OTllZGEzMDk5MGU0ZjU3NzM2MzJlZDI1OGZlMDI3NjY3MzU5OWRhNmZjZTM1Y2RhZDc3MjZhMGJiMDI0Y2FkOTk2Yjg4ZTBjYjk4ODU0Y2ViNWMwYjZlYzc0OGQ5ZjljZTZhNmNkNDM3ODU4YmFjYjgxNDYxOGEyNzJmZjNhNDE1YzZlMDdmM2RiMDk4ODc3N2ZkZWM4NDVhOTdiZjdkMTAyZGQwIgogCiBQS0NTNyBQYXJzZSBGYWlsdXJlIEludmFsaWQgQVNOMTogQ2hhbmdlIGxlbmd0aCBmcm9tIDc2IHRvIDc3ICMyMzUuMAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHBrY3M3X2FzbjFfZmFpbDoiMzA4MjA1MDAwNjA5MmE4NjQ4ODZmNzBkMDEwNzAyYTA4MjA0ZjEzMDgyMDRlZDAyMDEwMTMxMGYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBiMDYwOTJhODY0ODg2ZjcwZDAxMDcwMWEwODIwMzRkMzA4MjAzNDkzMDgyMDIzMWEwMDMwMjAxMDIwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTMwMWUxNzBkMzIzMjMxMzAzMjM4MzEzNjMxMzAzNTM2NWExNzBkMzIzMzMxMzAzMjM4MzEzNjMxMzAzNTM2NWEzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEzMDgyMDEyMjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDAzODIwMTBmMDAzMDgyMDEwYTAyODIwMTAxMDBjOGI2Y2Y2OTg5OWNkMWYwZWJiNGNhNjQ1YzA1ZTcwZTBkMmVmZWRkY2M2MWQwODljYmQ1MTVhMzlhMzU3OWI5MjM0M2I2MWVjNzUwMDYwZmI0ZWQzNzg3NjMzMjQwMGU0MjVmMWQzNzZjN2U3NWMyOTczMzE0ZWRmNGJiMzBjOGY4ZGQwM2I5ZmNmZjk1NWEyNDVkNDkxMzdhZDZlNjAwNTZjYWMxOTU1MmE4NjVkNTIxODcxODdjYzA0MmM5YzQ5ZTNlM2E5YzE3YTUzNGI0NTNjZGFiYzBjYjExM2I0ZjYzZjViMzE3NGI5ZWU5OTAyYjE5MTBkMTE0OTZhMjc5YTc0MzI2YWRjZmVlMTBiZmQ5ZTdlYmFmYmIzNzdiZTliNjM5NTkxNjVkMTNkZDU3NTExNzFjYWRhZDNjMWQzYWRhYzY4YmM4MDExZDYxYjU0Y2Y2MDE3OGJlMzY4MzlhODlhYzkxYWI0MTllM2NhMzdkNmJhODgxZDI1NTE4YzRkYjY4YmNhNmY3YzgzNjAyZjY5OWE4NmIxN2ZiMWU3NzNiY2JlNzRiYjkzYTQ5YjI1MWFlODY0MjhiNTc0MGUxODY4YmIxZDZmYWI5ZTI4NzEyZTk4ZWMzMTlhZDhmY2E0ZDczMDEwYzRiMDljNGI4MDQ1ODk2MWU3Y2YwODM1MzAyMDMwMTAwMDFhMzUzMzA1MTMwMWQwNjAzNTUxZDBlMDQxNjA0MTQ4YWVlZTU5NDdjYzY3YzVkZDUxNWE3NmUyYTdlY2QzMWVlNTJmZGM4MzAxZjA2MDM1NTFkMjMwNDE4MzAxNjgwMTQ4YWVlZTU5NDdjYzY3YzVkZDUxNWE3NmUyYTdlY2QzMWVlNTJmZGM4MzAwZjA2MDM1NTFkMTMwMTAxZmYwNDA1MzAwMzAxMDFmZjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDAzODIwMTAxMDA4MjFkNmI5OGNkNDU3ZGViZDJiMDgxYWNhMjdlYmVjZDRmOTNhY2M4Mjg0NDNiMzllYWJmZmE5ZmE0ZTllNDU0M2I0NmZjYzMxZTJiNWI0ODE3NzkwM2RlYTY5NjlhYzRhMmNjNjU3MDY1MDM5MGYxYjA4ZDQzYTRjMmY5NzVjN2VkOGJmMzM1NmM3MjE4MzgwMjEyNDUxYThmMTFkZTQ2NTUzY2JjZDY1YjQyNTRkZGI4ZjY2ODM0ZWIyMWRkYTJhOGYzM2I1ODFlMTQ4NDU1N2FjYTFiOTRlZTg5MzFkZGYxNjAzN2I3YTcxNzEzMjFhOTE5MzZhZmMyN2ZmY2UzOTVkZTc1ZDVmNzBjYjhiNWFlZTA1ZmY1MDcwODhkNjVhZjFlNDM5NjZjZDQyY2JlNmY3ZmFjZjhkYWUwNTVkZDgyMjJiMTY5NjUyMTcyM2Y4MTI0NTE3ODU5NWM5ODVhZTkxN2ZkNGIzOTk4NzczZTFhOTdiN2JkMTAwODU0NDZmNDI1OWJjYzA5YTQ1NDkyOTI4MmMxYjg5YjcxZWQ1ODdhNzc1ZTBhM2Q0NTM2MzQxZjQ1ZGFlOTY5ZTgwNmM5NmZlZmM3MTA2Nzc3NmMwMmJhMjIxMjJiOTE5OWIxNGMwYzI4YzA0NDg3NTA5MDcwYjk3ZjNkZDJkNmQ5NzI3MzMxODIwMTc3MzA4MjAxNzMwMjAxMDEzMDRkMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDViZWNkODcxOTVjMWRlZmY5MGMyNGM5MTI2OWI1NWIzZjA2OWJjMjI1YzMyNmMzMTRjMWE1MTc4NmZmZTE0YzgzMGJlNGU0YmM3M2NiYTM2Yzk3Njc3YjQ0MTY4Mjc5YmU5MWU3Y2RmN2MxOTM4NmFlMjE4NjI3MTlkMTNhM2EwZmZmMDgwM2Q0NjA5NjJmMmNkYTgzNzE0ODQ4NzMyNTJjM2Q3MDU0ZGI4MTQzZTJiMDgxYTM4MTZlZDA4MDRjYTUwOTlhZTVmZWNlODNkNWMyYzM3ODNiMTk4OGI0YjQ2ZGM5NGU1NTU4N2ExMDdlYTE1NDZiZjIyZDI4YTA5N2Y2NTJhNDA2NmRjMjk2NTI2OTA2OWFmMmY1MTc2YmI4Y2U5Y2E2ZDExZjk2NzU3ZjAzMjA0Zjc1NjcwMzU4N2QwMGFkNDI0Nzk2YzkyZmM3YWViNmY0OTQ0MzE5OTllZGEzMDk5MGU0ZjU3NzM2MzJlZDI1OGZlMDI3NjY3MzU5OWRhNmZjZTM1Y2RhZDc3MjZhMGJiMDI0Y2FkOTk2Yjg4ZTBjYjk4ODU0Y2ViNWMwYjZlYzc0OGQ5ZjljZTZhNmNkNDM3ODU4YmFjYjgxNDYxOGEyNzJmZjNhNDE1YzZlMDdmM2RiMDk4ODc3N2ZkZWM4NDVhOTdiZjdkMTAyZGQwIgogCiBQS0NTNyBQYXJzZSBGYWlsdXJlIEludmFsaWQgQVNOMTogQ2hhbmdlIGNvbnRlbnRzIG9mIHRhZyAzMCB0byBjb250YWluIG9uZSB1bmFjY291bnRlZCBleHRyYSBieXRlICMyMzYuMAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHBrY3M3X2FzbjFfZmFpbDoiMzA4MjA1MDAwNjA5MmE4NjQ4ODZmNzBkMDEwNzAyYTA4MjA0ZjEzMDgyMDRlZDAyMDEwMTMxMGYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBiMDYwOTJhODY0ODg2ZjcwZDAxMDcwMWEwODIwMzRkMzA4MjAzNDkzMDgyMDIzMWEwMDMwMjAxMDIwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTMwMWUxNzBkMzIzMjMxMzAzMjM4MzEzNjMxMzAzNTM2NWExNzBkMzIzMzMxMzAzMjM4MzEzNjMxMzAzNTM2NWEzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEzMDgyMDEyMjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDAzODIwMTBmMDAzMDgyMDEwYTAyODIwMTAxMDBjOGI2Y2Y2OTg5OWNkMWYwZWJiNGNhNjQ1YzA1ZTcwZTBkMmVmZWRkY2M2MWQwODljYmQ1MTVhMzlhMzU3OWI5MjM0M2I2MWVjNzUwMDYwZmI0ZWQzNzg3NjMzMjQwMGU0MjVmMWQzNzZjN2U3NWMyOTczMzE0ZWRmNGJiMzBjOGY4ZGQwM2I5ZmNmZjk1NWEyNDVkNDkxMzdhZDZlNjAwNTZjYWMxOTU1MmE4NjVkNTIxODcxODdjYzA0MmM5YzQ5ZTNlM2E5YzE3YTUzNGI0NTNjZGFiYzBjYjExM2I0ZjYzZjViMzE3NGI5ZWU5OTAyYjE5MTBkMTE0OTZhMjc5YTc0MzI2YWRjZmVlMTBiZmQ5ZTdlYmFmYmIzNzdiZTliNjM5NTkxNjVkMTNkZDU3NTExNzFjYWRhZDNjMWQzYWRhYzY4YmM4MDExZDYxYjU0Y2Y2MDE3OGJlMzY4MzlhODlhYzkxYWI0MTllM2NhMzdkNmJhODgxZDI1NTE4YzRkYjY4YmNhNmY3YzgzNjAyZjY5OWE4NmIxN2ZiMWU3NzNiY2JlNzRiYjkzYTQ5YjI1MWFlODY0MjhiNTc0MGUxODY4YmIxZDZmYWI5ZTI4NzEyZTk4ZWMzMTlhZDhmY2E0ZDczMDEwYzRiMDljNGI4MDQ1ODk2MWU3Y2YwODM1MzAyMDMwMTAwMDFhMzUzMzA1MTMwMWQwNjAzNTUxZDBlMDQxNjA0MTQ4YWVlZTU5NDdjYzY3YzVkZDUxNWE3NmUyYTdlY2QzMWVlNTJmZGM4MzAxZjA2MDM1NTFkMjMwNDE4MzAxNjgwMTQ4YWVlZTU5NDdjYzY3YzVkZDUxNWE3NmUyYTdlY2QzMWVlNTJmZGM4MzAwZjA2MDM1NTFkMTMwMTAxZmYwNDA1MzAwMzAxMDFmZjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDAzODIwMTAxMDA4MjFkNmI5OGNkNDU3ZGViZDJiMDgxYWNhMjdlYmVjZDRmOTNhY2M4Mjg0NDNiMzllYWJmZmE5ZmE0ZTllNDU0M2I0NmZjYzMxZTJiNWI0ODE3NzkwM2RlYTY5NjlhYzRhMmNjNjU3MDY1MDM5MGYxYjA4ZDQzYTRjMmY5NzVjN2VkOGJmMzM1NmM3MjE4MzgwMjEyNDUxYThmMTFkZTQ2NTUzY2JjZDY1YjQyNTRkZGI4ZjY2ODM0ZWIyMWRkYTJhOGYzM2I1ODFlMTQ4NDU1N2FjYTFiOTRlZTg5MzFkZGYxNjAzN2I3YTcxNzEzMjFhOTE5MzZhZmMyN2ZmY2UzOTVkZTc1ZDVmNzBjYjhiNWFlZTA1ZmY1MDcwODhkNjVhZjFlNDM5NjZjZDQyY2JlNmY3ZmFjZjhkYWUwNTVkZDgyMjJiMTY5NjUyMTcyM2Y4MTI0NTE3ODU5NWM5ODVhZTkxN2ZkNGIzOTk4NzczZTFhOTdiN2JkMTAwODU0NDZmNDI1OWJjYzA5YTQ1NDkyOTI4MmMxYjg5YjcxZWQ1ODdhNzc1ZTBhM2Q0NTM2MzQxZjQ1ZGFlOTY5ZTgwNmM5NmZlZmM3MTA2Nzc3NmMwMmJhMjIxMjJiOTE5OWIxNGMwYzI4YzA0NDg3NTA5MDcwYjk3ZjNkZDJkNmQ5NzI3MzMxODIwMTc3MzA4MjAxNzMwMjAxMDEzMDRkMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYwMDMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwNWJlY2Q4NzE5NWMxZGVmZjkwYzI0YzkxMjY5YjU1YjNmMDY5YmMyMjVjMzI2YzMxNGMxYTUxNzg2ZmZlMTRjODMwYmU0ZTRiYzczY2JhMzZjOTc2NzdiNDQxNjgyNzliZTkxZTdjZGY3YzE5Mzg2YWUyMTg2MjcxOWQxM2EzYTBmZmYwODAzZDQ2MDk2MmYyY2RhODM3MTQ4NDg3MzI1MmMzZDcwNTRkYjgxNDNlMmIwODFhMzgxNmVkMDgwNGNhNTA5OWFlNWZlY2U4M2Q1YzJjMzc4M2IxOTg4YjRiNDZkYzk0ZTU1NTg3YTEwN2VhMTU0NmJmMjJkMjhhMDk3ZjY1MmE0MDY2ZGMyOTY1MjY5MDY5YWYyZjUxNzZiYjhjZTljYTZkMTFmOTY3NTdmMDMyMDRmNzU2NzAzNTg3ZDAwYWQ0MjQ3OTZjOTJmYzdhZWI2ZjQ5NDQzMTk5OWVkYTMwOTkwZTRmNTc3MzYzMmVkMjU4ZmUwMjc2NjczNTk5ZGE2ZmNlMzVjZGFkNzcyNmEwYmIwMjRjYWQ5OTZiODhlMGNiOTg4NTRjZWI1YzBiNmVjNzQ4ZDlmOWNlNmE2Y2Q0Mzc4NThiYWNiODE0NjE4YTI3MmZmM2E0MTVjNmUwN2YzZGIwOTg4Nzc3ZmRlYzg0NWE5N2JmN2QxMDJkZDAiCiAKIFBLQ1M3IFBhcnNlIEZhaWx1cmUgSW52YWxpZCBBU04xOiBDaGFuZ2UgbGVuZ3RoIGZyb20gNzYgdG8gNzUgIzIzNy4wCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NgogcGtjczdfYXNuMV9mYWlsOiIzMDgyMDUwMDA2MDkyYTg2NDg4NmY3MGQwMTA3MDJhMDgyMDRmMTMwODIwNGVkMDIwMTAxMzEwZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGIwNjA5MmE4NjQ4ODZmNzBkMDEwNzAxYTA4MjAzNGQzMDgyMDM0OTMwODIwMjMxYTAwMzAyMDEwMjAyMTQ3YmRlZGRkMjQ0NGNkMWNkZmU1YzQxYTgxMDJjODliN2RmMmU2Y2JmMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMzAxZTE3MGQzMjMyMzEzMDMyMzgzMTM2MzEzMDM1MzY1YTE3MGQzMjMzMzEzMDMyMzgzMTM2MzEzMDM1MzY1YTMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTMwODIwMTIyMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDM4MjAxMGYwMDMwODIwMTBhMDI4MjAxMDEwMGM4YjZjZjY5ODk5Y2QxZjBlYmI0Y2E2NDVjMDVlNzBlMGQyZWZlZGRjYzYxZDA4OWNiZDUxNWEzOWEzNTc5YjkyMzQzYjYxZWM3NTAwNjBmYjRlZDM3ODc2MzMyNDAwZTQyNWYxZDM3NmM3ZTc1YzI5NzMzMTRlZGY0YmIzMGM4ZjhkZDAzYjlmY2ZmOTU1YTI0NWQ0OTEzN2FkNmU2MDA1NmNhYzE5NTUyYTg2NWQ1MjE4NzE4N2NjMDQyYzljNDllM2UzYTljMTdhNTM0YjQ1M2NkYWJjMGNiMTEzYjRmNjNmNWIzMTc0YjllZTk5MDJiMTkxMGQxMTQ5NmEyNzlhNzQzMjZhZGNmZWUxMGJmZDllN2ViYWZiYjM3N2JlOWI2Mzk1OTE2NWQxM2RkNTc1MTE3MWNhZGFkM2MxZDNhZGFjNjhiYzgwMTFkNjFiNTRjZjYwMTc4YmUzNjgzOWE4OWFjOTFhYjQxOWUzY2EzN2Q2YmE4ODFkMjU1MThjNGRiNjhiY2E2ZjdjODM2MDJmNjk5YTg2YjE3ZmIxZTc3M2JjYmU3NGJiOTNhNDliMjUxYWU4NjQyOGI1NzQwZTE4NjhiYjFkNmZhYjllMjg3MTJlOThlYzMxOWFkOGZjYTRkNzMwMTBjNGIwOWM0YjgwNDU4OTYxZTdjZjA4MzUzMDIwMzAxMDAwMWEzNTMzMDUxMzAxZDA2MDM1NTFkMGUwNDE2MDQxNDhhZWVlNTk0N2NjNjdjNWRkNTE1YTc2ZTJhN2VjZDMxZWU1MmZkYzgzMDFmMDYwMzU1MWQyMzA0MTgzMDE2ODAxNDhhZWVlNTk0N2NjNjdjNWRkNTE1YTc2ZTJhN2VjZDMxZWU1MmZkYzgzMDBmMDYwMzU1MWQxMzAxMDFmZjA0MDUzMDAzMDEwMWZmMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMDM4MjAxMDEwMDgyMWQ2Yjk4Y2Q0NTdkZWJkMmIwODFhY2EyN2ViZWNkNGY5M2FjYzgyODQ0M2IzOWVhYmZmYTlmYTRlOWU0NTQzYjQ2ZmNjMzFlMmI1YjQ4MTc3OTAzZGVhNjk2OWFjNGEyY2M2NTcwNjUwMzkwZjFiMDhkNDNhNGMyZjk3NWM3ZWQ4YmYzMzU2YzcyMTgzODAyMTI0NTFhOGYxMWRlNDY1NTNjYmNkNjViNDI1NGRkYjhmNjY4MzRlYjIxZGRhMmE4ZjMzYjU4MWUxNDg0NTU3YWNhMWI5NGVlODkzMWRkZjE2MDM3YjdhNzE3MTMyMWE5MTkzNmFmYzI3ZmZjZTM5NWRlNzVkNWY3MGNiOGI1YWVlMDVmZjUwNzA4OGQ2NWFmMWU0Mzk2NmNkNDJjYmU2ZjdmYWNmOGRhZTA1NWRkODIyMmIxNjk2NTIxNzIzZjgxMjQ1MTc4NTk1Yzk4NWFlOTE3ZmQ0YjM5OTg3NzNlMWE5N2I3YmQxMDA4NTQ0NmY0MjU5YmNjMDlhNDU0OTI5MjgyYzFiODliNzFlZDU4N2E3NzVlMGEzZDQ1MzYzNDFmNDVkYWU5NjllODA2Yzk2ZmVmYzcxMDY3Nzc2YzAyYmEyMjEyMmI5MTk5YjE0YzBjMjhjMDQ0ODc1MDkwNzBiOTdmM2RkMmQ2ZDk3MjczMzE4MjAxNzczMDgyMDE3MzAyMDEwMTMwNGIzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwNWJlY2Q4NzE5NWMxZGVmZjkwYzI0YzkxMjY5YjU1YjNmMDY5YmMyMjVjMzI2YzMxNGMxYTUxNzg2ZmZlMTRjODMwYmU0ZTRiYzczY2JhMzZjOTc2NzdiNDQxNjgyNzliZTkxZTdjZGY3YzE5Mzg2YWUyMTg2MjcxOWQxM2EzYTBmZmYwODAzZDQ2MDk2MmYyY2RhODM3MTQ4NDg3MzI1MmMzZDcwNTRkYjgxNDNlMmIwODFhMzgxNmVkMDgwNGNhNTA5OWFlNWZlY2U4M2Q1YzJjMzc4M2IxOTg4YjRiNDZkYzk0ZTU1NTg3YTEwN2VhMTU0NmJmMjJkMjhhMDk3ZjY1MmE0MDY2ZGMyOTY1MjY5MDY5YWYyZjUxNzZiYjhjZTljYTZkMTFmOTY3NTdmMDMyMDRmNzU2NzAzNTg3ZDAwYWQ0MjQ3OTZjOTJmYzdhZWI2ZjQ5NDQzMTk5OWVkYTMwOTkwZTRmNTc3MzYzMmVkMjU4ZmUwMjc2NjczNTk5ZGE2ZmNlMzVjZGFkNzcyNmEwYmIwMjRjYWQ5OTZiODhlMGNiOTg4NTRjZWI1YzBiNmVjNzQ4ZDlmOWNlNmE2Y2Q0Mzc4NThiYWNiODE0NjE4YTI3MmZmM2E0MTVjNmUwN2YzZGIwOTg4Nzc3ZmRlYzg0NWE5N2JmN2QxMDJkZDAiCiAKIFBLQ1M3IFBhcnNlIEZhaWx1cmUgSW52YWxpZCBBU04xOiBDaGFuZ2UgdGFnIDMwIHRvIDAyICMyMzguMAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHBrY3M3X2FzbjFfZmFpbDoiMzA4MjA1MDAwNjA5MmE4NjQ4ODZmNzBkMDEwNzAyYTA4MjA0ZjEzMDgyMDRlZDAyMDEwMTMxMGYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBiMDYwOTJhODY0ODg2ZjcwZDAxMDcwMWEwODIwMzRkMzA4MjAzNDkzMDgyMDIzMWEwMDMwMjAxMDIwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTMwMWUxNzBkMzIzMjMxMzAzMjM4MzEzNjMxMzAzNTM2NWExNzBkMzIzMzMxMzAzMjM4MzEzNjMxMzAzNTM2NWEzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEzMDgyMDEyMjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDAzODIwMTBmMDAzMDgyMDEwYTAyODIwMTAxMDBjOGI2Y2Y2OTg5OWNkMWYwZWJiNGNhNjQ1YzA1ZTcwZTBkMmVmZWRkY2M2MWQwODljYmQ1MTVhMzlhMzU3OWI5MjM0M2I2MWVjNzUwMDYwZmI0ZWQzNzg3NjMzMjQwMGU0MjVmMWQzNzZjN2U3NWMyOTczMzE0ZWRmNGJiMzBjOGY4ZGQwM2I5ZmNmZjk1NWEyNDVkNDkxMzdhZDZlNjAwNTZjYWMxOTU1MmE4NjVkNTIxODcxODdjYzA0MmM5YzQ5ZTNlM2E5YzE3YTUzNGI0NTNjZGFiYzBjYjExM2I0ZjYzZjViMzE3NGI5ZWU5OTAyYjE5MTBkMTE0OTZhMjc5YTc0MzI2YWRjZmVlMTBiZmQ5ZTdlYmFmYmIzNzdiZTliNjM5NTkxNjVkMTNkZDU3NTExNzFjYWRhZDNjMWQzYWRhYzY4YmM4MDExZDYxYjU0Y2Y2MDE3OGJlMzY4MzlhODlhYzkxYWI0MTllM2NhMzdkNmJhODgxZDI1NTE4YzRkYjY4YmNhNmY3YzgzNjAyZjY5OWE4NmIxN2ZiMWU3NzNiY2JlNzRiYjkzYTQ5YjI1MWFlODY0MjhiNTc0MGUxODY4YmIxZDZmYWI5ZTI4NzEyZTk4ZWMzMTlhZDhmY2E0ZDczMDEwYzRiMDljNGI4MDQ1ODk2MWU3Y2YwODM1MzAyMDMwMTAwMDFhMzUzMzA1MTMwMWQwNjAzNTUxZDBlMDQxNjA0MTQ4YWVlZTU5NDdjYzY3YzVkZDUxNWE3NmUyYTdlY2QzMWVlNTJmZGM4MzAxZjA2MDM1NTFkMjMwNDE4MzAxNjgwMTQ4YWVlZTU5NDdjYzY3YzVkZDUxNWE3NmUyYTdlY2QzMWVlNTJmZGM4MzAwZjA2MDM1NTFkMTMwMTAxZmYwNDA1MzAwMzAxMDFmZjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDAzODIwMTAxMDA4MjFkNmI5OGNkNDU3ZGViZDJiMDgxYWNhMjdlYmVjZDRmOTNhY2M4Mjg0NDNiMzllYWJmZmE5ZmE0ZTllNDU0M2I0NmZjYzMxZTJiNWI0ODE3NzkwM2RlYTY5NjlhYzRhMmNjNjU3MDY1MDM5MGYxYjA4ZDQzYTRjMmY5NzVjN2VkOGJmMzM1NmM3MjE4MzgwMjEyNDUxYThmMTFkZTQ2NTUzY2JjZDY1YjQyNTRkZGI4ZjY2ODM0ZWIyMWRkYTJhOGYzM2I1ODFlMTQ4NDU1N2FjYTFiOTRlZTg5MzFkZGYxNjAzN2I3YTcxNzEzMjFhOTE5MzZhZmMyN2ZmY2UzOTVkZTc1ZDVmNzBjYjhiNWFlZTA1ZmY1MDcwODhkNjVhZjFlNDM5NjZjZDQyY2JlNmY3ZmFjZjhkYWUwNTVkZDgyMjJiMTY5NjUyMTcyM2Y4MTI0NTE3ODU5NWM5ODVhZTkxN2ZkNGIzOTk4NzczZTFhOTdiN2JkMTAwODU0NDZmNDI1OWJjYzA5YTQ1NDkyOTI4MmMxYjg5YjcxZWQ1ODdhNzc1ZTBhM2Q0NTM2MzQxZjQ1ZGFlOTY5ZTgwNmM5NmZlZmM3MTA2Nzc3NmMwMmJhMjIxMjJiOTE5OWIxNGMwYzI4YzA0NDg3NTA5MDcwYjk3ZjNkZDJkNmQ5NzI3MzMxODIwMTc3MzA4MjAxNzMwMjAxMDEzMDRjMDIzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDViZWNkODcxOTVjMWRlZmY5MGMyNGM5MTI2OWI1NWIzZjA2OWJjMjI1YzMyNmMzMTRjMWE1MTc4NmZmZTE0YzgzMGJlNGU0YmM3M2NiYTM2Yzk3Njc3YjQ0MTY4Mjc5YmU5MWU3Y2RmN2MxOTM4NmFlMjE4NjI3MTlkMTNhM2EwZmZmMDgwM2Q0NjA5NjJmMmNkYTgzNzE0ODQ4NzMyNTJjM2Q3MDU0ZGI4MTQzZTJiMDgxYTM4MTZlZDA4MDRjYTUwOTlhZTVmZWNlODNkNWMyYzM3ODNiMTk4OGI0YjQ2ZGM5NGU1NTU4N2ExMDdlYTE1NDZiZjIyZDI4YTA5N2Y2NTJhNDA2NmRjMjk2NTI2OTA2OWFmMmY1MTc2YmI4Y2U5Y2E2ZDExZjk2NzU3ZjAzMjA0Zjc1NjcwMzU4N2QwMGFkNDI0Nzk2YzkyZmM3YWViNmY0OTQ0MzE5OTllZGEzMDk5MGU0ZjU3NzM2MzJlZDI1OGZlMDI3NjY3MzU5OWRhNmZjZTM1Y2RhZDc3MjZhMGJiMDI0Y2FkOTk2Yjg4ZTBjYjk4ODU0Y2ViNWMwYjZlYzc0OGQ5ZjljZTZhNmNkNDM3ODU4YmFjYjgxNDYxOGEyNzJmZjNhNDE1YzZlMDdmM2RiMDk4ODc3N2ZkZWM4NDVhOTdiZjdkMTAyZGQwIgogCiBQS0NTNyBQYXJzZSBGYWlsdXJlIEludmFsaWQgQVNOMTogQ2hhbmdlIGxlbmd0aCBmcm9tIDUyIHRvIDUzICMyMzkuMAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHBrY3M3X2FzbjFfZmFpbDoiMzA4MjA1MDAwNjA5MmE4NjQ4ODZmNzBkMDEwNzAyYTA4MjA0ZjEzMDgyMDRlZDAyMDEwMTMxMGYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBiMDYwOTJhODY0ODg2ZjcwZDAxMDcwMWEwODIwMzRkMzA4MjAzNDkzMDgyMDIzMWEwMDMwMjAxMDIwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTMwMWUxNzBkMzIzMjMxMzAzMjM4MzEzNjMxMzAzNTM2NWExNzBkMzIzMzMxMzAzMjM4MzEzNjMxMzAzNTM2NWEzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEzMDgyMDEyMjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDAzODIwMTBmMDAzMDgyMDEwYTAyODIwMTAxMDBjOGI2Y2Y2OTg5OWNkMWYwZWJiNGNhNjQ1YzA1ZTcwZTBkMmVmZWRkY2M2MWQwODljYmQ1MTVhMzlhMzU3OWI5MjM0M2I2MWVjNzUwMDYwZmI0ZWQzNzg3NjMzMjQwMGU0MjVmMWQzNzZjN2U3NWMyOTczMzE0ZWRmNGJiMzBjOGY4ZGQwM2I5ZmNmZjk1NWEyNDVkNDkxMzdhZDZlNjAwNTZjYWMxOTU1MmE4NjVkNTIxODcxODdjYzA0MmM5YzQ5ZTNlM2E5YzE3YTUzNGI0NTNjZGFiYzBjYjExM2I0ZjYzZjViMzE3NGI5ZWU5OTAyYjE5MTBkMTE0OTZhMjc5YTc0MzI2YWRjZmVlMTBiZmQ5ZTdlYmFmYmIzNzdiZTliNjM5NTkxNjVkMTNkZDU3NTExNzFjYWRhZDNjMWQzYWRhYzY4YmM4MDExZDYxYjU0Y2Y2MDE3OGJlMzY4MzlhODlhYzkxYWI0MTllM2NhMzdkNmJhODgxZDI1NTE4YzRkYjY4YmNhNmY3YzgzNjAyZjY5OWE4NmIxN2ZiMWU3NzNiY2JlNzRiYjkzYTQ5YjI1MWFlODY0MjhiNTc0MGUxODY4YmIxZDZmYWI5ZTI4NzEyZTk4ZWMzMTlhZDhmY2E0ZDczMDEwYzRiMDljNGI4MDQ1ODk2MWU3Y2YwODM1MzAyMDMwMTAwMDFhMzUzMzA1MTMwMWQwNjAzNTUxZDBlMDQxNjA0MTQ4YWVlZTU5NDdjYzY3YzVkZDUxNWE3NmUyYTdlY2QzMWVlNTJmZGM4MzAxZjA2MDM1NTFkMjMwNDE4MzAxNjgwMTQ4YWVlZTU5NDdjYzY3YzVkZDUxNWE3NmUyYTdlY2QzMWVlNTJmZGM4MzAwZjA2MDM1NTFkMTMwMTAxZmYwNDA1MzAwMzAxMDFmZjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDAzODIwMTAxMDA4MjFkNmI5OGNkNDU3ZGViZDJiMDgxYWNhMjdlYmVjZDRmOTNhY2M4Mjg0NDNiMzllYWJmZmE5ZmE0ZTllNDU0M2I0NmZjYzMxZTJiNWI0ODE3NzkwM2RlYTY5NjlhYzRhMmNjNjU3MDY1MDM5MGYxYjA4ZDQzYTRjMmY5NzVjN2VkOGJmMzM1NmM3MjE4MzgwMjEyNDUxYThmMTFkZTQ2NTUzY2JjZDY1YjQyNTRkZGI4ZjY2ODM0ZWIyMWRkYTJhOGYzM2I1ODFlMTQ4NDU1N2FjYTFiOTRlZTg5MzFkZGYxNjAzN2I3YTcxNzEzMjFhOTE5MzZhZmMyN2ZmY2UzOTVkZTc1ZDVmNzBjYjhiNWFlZTA1ZmY1MDcwODhkNjVhZjFlNDM5NjZjZDQyY2JlNmY3ZmFjZjhkYWUwNTVkZDgyMjJiMTY5NjUyMTcyM2Y4MTI0NTE3ODU5NWM5ODVhZTkxN2ZkNGIzOTk4NzczZTFhOTdiN2JkMTAwODU0NDZmNDI1OWJjYzA5YTQ1NDkyOTI4MmMxYjg5YjcxZWQ1ODdhNzc1ZTBhM2Q0NTM2MzQxZjQ1ZGFlOTY5ZTgwNmM5NmZlZmM3MTA2Nzc3NmMwMmJhMjIxMjJiOTE5OWIxNGMwYzI4YzA0NDg3NTA5MDcwYjk3ZjNkZDJkNmQ5NzI3MzMxODIwMTc3MzA4MjAxNzMwMjAxMDEzMDRjMzAzNTMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDViZWNkODcxOTVjMWRlZmY5MGMyNGM5MTI2OWI1NWIzZjA2OWJjMjI1YzMyNmMzMTRjMWE1MTc4NmZmZTE0YzgzMGJlNGU0YmM3M2NiYTM2Yzk3Njc3YjQ0MTY4Mjc5YmU5MWU3Y2RmN2MxOTM4NmFlMjE4NjI3MTlkMTNhM2EwZmZmMDgwM2Q0NjA5NjJmMmNkYTgzNzE0ODQ4NzMyNTJjM2Q3MDU0ZGI4MTQzZTJiMDgxYTM4MTZlZDA4MDRjYTUwOTlhZTVmZWNlODNkNWMyYzM3ODNiMTk4OGI0YjQ2ZGM5NGU1NTU4N2ExMDdlYTE1NDZiZjIyZDI4YTA5N2Y2NTJhNDA2NmRjMjk2NTI2OTA2OWFmMmY1MTc2YmI4Y2U5Y2E2ZDExZjk2NzU3ZjAzMjA0Zjc1NjcwMzU4N2QwMGFkNDI0Nzk2YzkyZmM3YWViNmY0OTQ0MzE5OTllZGEzMDk5MGU0ZjU3NzM2MzJlZDI1OGZlMDI3NjY3MzU5OWRhNmZjZTM1Y2RhZDc3MjZhMGJiMDI0Y2FkOTk2Yjg4ZTBjYjk4ODU0Y2ViNWMwYjZlYzc0OGQ5ZjljZTZhNmNkNDM3ODU4YmFjYjgxNDYxOGEyNzJmZjNhNDE1YzZlMDdmM2RiMDk4ODc3N2ZkZWM4NDVhOTdiZjdkMTAyZGQwIgogCiBQS0NTNyBQYXJzZSBGYWlsdXJlIEludmFsaWQgQVNOMTogQ2hhbmdlIGNvbnRlbnRzIG9mIHRhZyAzMCB0byBjb250YWluIG9uZSB1bmFjY291bnRlZCBleHRyYSBieXRlICMyNDAuMAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHBrY3M3X2FzbjFfZmFpbDoiMzA4MjA1MDAwNjA5MmE4NjQ4ODZmNzBkMDEwNzAyYTA4MjA0ZjEzMDgyMDRlZDAyMDEwMTMxMGYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBiMDYwOTJhODY0ODg2ZjcwZDAxMDcwMWEwODIwMzRkMzA4MjAzNDkzMDgyMDIzMWEwMDMwMjAxMDIwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTMwMWUxNzBkMzIzMjMxMzAzMjM4MzEzNjMxMzAzNTM2NWExNzBkMzIzMzMxMzAzMjM4MzEzNjMxMzAzNTM2NWEzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEzMDgyMDEyMjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDAzODIwMTBmMDAzMDgyMDEwYTAyODIwMTAxMDBjOGI2Y2Y2OTg5OWNkMWYwZWJiNGNhNjQ1YzA1ZTcwZTBkMmVmZWRkY2M2MWQwODljYmQ1MTVhMzlhMzU3OWI5MjM0M2I2MWVjNzUwMDYwZmI0ZWQzNzg3NjMzMjQwMGU0MjVmMWQzNzZjN2U3NWMyOTczMzE0ZWRmNGJiMzBjOGY4ZGQwM2I5ZmNmZjk1NWEyNDVkNDkxMzdhZDZlNjAwNTZjYWMxOTU1MmE4NjVkNTIxODcxODdjYzA0MmM5YzQ5ZTNlM2E5YzE3YTUzNGI0NTNjZGFiYzBjYjExM2I0ZjYzZjViMzE3NGI5ZWU5OTAyYjE5MTBkMTE0OTZhMjc5YTc0MzI2YWRjZmVlMTBiZmQ5ZTdlYmFmYmIzNzdiZTliNjM5NTkxNjVkMTNkZDU3NTExNzFjYWRhZDNjMWQzYWRhYzY4YmM4MDExZDYxYjU0Y2Y2MDE3OGJlMzY4MzlhODlhYzkxYWI0MTllM2NhMzdkNmJhODgxZDI1NTE4YzRkYjY4YmNhNmY3YzgzNjAyZjY5OWE4NmIxN2ZiMWU3NzNiY2JlNzRiYjkzYTQ5YjI1MWFlODY0MjhiNTc0MGUxODY4YmIxZDZmYWI5ZTI4NzEyZTk4ZWMzMTlhZDhmY2E0ZDczMDEwYzRiMDljNGI4MDQ1ODk2MWU3Y2YwODM1MzAyMDMwMTAwMDFhMzUzMzA1MTMwMWQwNjAzNTUxZDBlMDQxNjA0MTQ4YWVlZTU5NDdjYzY3YzVkZDUxNWE3NmUyYTdlY2QzMWVlNTJmZGM4MzAxZjA2MDM1NTFkMjMwNDE4MzAxNjgwMTQ4YWVlZTU5NDdjYzY3YzVkZDUxNWE3NmUyYTdlY2QzMWVlNTJmZGM4MzAwZjA2MDM1NTFkMTMwMTAxZmYwNDA1MzAwMzAxMDFmZjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDAzODIwMTAxMDA4MjFkNmI5OGNkNDU3ZGViZDJiMDgxYWNhMjdlYmVjZDRmOTNhY2M4Mjg0NDNiMzllYWJmZmE5ZmE0ZTllNDU0M2I0NmZjYzMxZTJiNWI0ODE3NzkwM2RlYTY5NjlhYzRhMmNjNjU3MDY1MDM5MGYxYjA4ZDQzYTRjMmY5NzVjN2VkOGJmMzM1NmM3MjE4MzgwMjEyNDUxYThmMTFkZTQ2NTUzY2JjZDY1YjQyNTRkZGI4ZjY2ODM0ZWIyMWRkYTJhOGYzM2I1ODFlMTQ4NDU1N2FjYTFiOTRlZTg5MzFkZGYxNjAzN2I3YTcxNzEzMjFhOTE5MzZhZmMyN2ZmY2UzOTVkZTc1ZDVmNzBjYjhiNWFlZTA1ZmY1MDcwODhkNjVhZjFlNDM5NjZjZDQyY2JlNmY3ZmFjZjhkYWUwNTVkZDgyMjJiMTY5NjUyMTcyM2Y4MTI0NTE3ODU5NWM5ODVhZTkxN2ZkNGIzOTk4NzczZTFhOTdiN2JkMTAwODU0NDZmNDI1OWJjYzA5YTQ1NDkyOTI4MmMxYjg5YjcxZWQ1ODdhNzc1ZTBhM2Q0NTM2MzQxZjQ1ZGFlOTY5ZTgwNmM5NmZlZmM3MTA2Nzc3NmMwMmJhMjIxMjJiOTE5OWIxNGMwYzI4YzA0NDg3NTA5MDcwYjk3ZjNkZDJkNmQ5NzI3MzMxODIwMTc3MzA4MjAxNzMwMjAxMDEzMDRjMzAzNTMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMDAwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwNWJlY2Q4NzE5NWMxZGVmZjkwYzI0YzkxMjY5YjU1YjNmMDY5YmMyMjVjMzI2YzMxNGMxYTUxNzg2ZmZlMTRjODMwYmU0ZTRiYzczY2JhMzZjOTc2NzdiNDQxNjgyNzliZTkxZTdjZGY3YzE5Mzg2YWUyMTg2MjcxOWQxM2EzYTBmZmYwODAzZDQ2MDk2MmYyY2RhODM3MTQ4NDg3MzI1MmMzZDcwNTRkYjgxNDNlMmIwODFhMzgxNmVkMDgwNGNhNTA5OWFlNWZlY2U4M2Q1YzJjMzc4M2IxOTg4YjRiNDZkYzk0ZTU1NTg3YTEwN2VhMTU0NmJmMjJkMjhhMDk3ZjY1MmE0MDY2ZGMyOTY1MjY5MDY5YWYyZjUxNzZiYjhjZTljYTZkMTFmOTY3NTdmMDMyMDRmNzU2NzAzNTg3ZDAwYWQ0MjQ3OTZjOTJmYzdhZWI2ZjQ5NDQzMTk5OWVkYTMwOTkwZTRmNTc3MzYzMmVkMjU4ZmUwMjc2NjczNTk5ZGE2ZmNlMzVjZGFkNzcyNmEwYmIwMjRjYWQ5OTZiODhlMGNiOTg4NTRjZWI1YzBiNmVjNzQ4ZDlmOWNlNmE2Y2Q0Mzc4NThiYWNiODE0NjE4YTI3MmZmM2E0MTVjNmUwN2YzZGIwOTg4Nzc3ZmRlYzg0NWE5N2JmN2QxMDJkZDAiCiAKIFBLQ1M3IFBhcnNlIEZhaWx1cmUgSW52YWxpZCBBU04xOiBDaGFuZ2UgbGVuZ3RoIGZyb20gNTIgdG8gNTEgIzI0MS4wCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NgogcGtjczdfYXNuMV9mYWlsOiIzMDgyMDUwMDA2MDkyYTg2NDg4NmY3MGQwMTA3MDJhMDgyMDRmMTMwODIwNGVkMDIwMTAxMzEwZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGIwNjA5MmE4NjQ4ODZmNzBkMDEwNzAxYTA4MjAzNGQzMDgyMDM0OTMwODIwMjMxYTAwMzAyMDEwMjAyMTQ3YmRlZGRkMjQ0NGNkMWNkZmU1YzQxYTgxMDJjODliN2RmMmU2Y2JmMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMzAxZTE3MGQzMjMyMzEzMDMyMzgzMTM2MzEzMDM1MzY1YTE3MGQzMjMzMzEzMDMyMzgzMTM2MzEzMDM1MzY1YTMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTMwODIwMTIyMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDM4MjAxMGYwMDMwODIwMTBhMDI4MjAxMDEwMGM4YjZjZjY5ODk5Y2QxZjBlYmI0Y2E2NDVjMDVlNzBlMGQyZWZlZGRjYzYxZDA4OWNiZDUxNWEzOWEzNTc5YjkyMzQzYjYxZWM3NTAwNjBmYjRlZDM3ODc2MzMyNDAwZTQyNWYxZDM3NmM3ZTc1YzI5NzMzMTRlZGY0YmIzMGM4ZjhkZDAzYjlmY2ZmOTU1YTI0NWQ0OTEzN2FkNmU2MDA1NmNhYzE5NTUyYTg2NWQ1MjE4NzE4N2NjMDQyYzljNDllM2UzYTljMTdhNTM0YjQ1M2NkYWJjMGNiMTEzYjRmNjNmNWIzMTc0YjllZTk5MDJiMTkxMGQxMTQ5NmEyNzlhNzQzMjZhZGNmZWUxMGJmZDllN2ViYWZiYjM3N2JlOWI2Mzk1OTE2NWQxM2RkNTc1MTE3MWNhZGFkM2MxZDNhZGFjNjhiYzgwMTFkNjFiNTRjZjYwMTc4YmUzNjgzOWE4OWFjOTFhYjQxOWUzY2EzN2Q2YmE4ODFkMjU1MThjNGRiNjhiY2E2ZjdjODM2MDJmNjk5YTg2YjE3ZmIxZTc3M2JjYmU3NGJiOTNhNDliMjUxYWU4NjQyOGI1NzQwZTE4NjhiYjFkNmZhYjllMjg3MTJlOThlYzMxOWFkOGZjYTRkNzMwMTBjNGIwOWM0YjgwNDU4OTYxZTdjZjA4MzUzMDIwMzAxMDAwMWEzNTMzMDUxMzAxZDA2MDM1NTFkMGUwNDE2MDQxNDhhZWVlNTk0N2NjNjdjNWRkNTE1YTc2ZTJhN2VjZDMxZWU1MmZkYzgzMDFmMDYwMzU1MWQyMzA0MTgzMDE2ODAxNDhhZWVlNTk0N2NjNjdjNWRkNTE1YTc2ZTJhN2VjZDMxZWU1MmZkYzgzMDBmMDYwMzU1MWQxMzAxMDFmZjA0MDUzMDAzMDEwMWZmMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMDM4MjAxMDEwMDgyMWQ2Yjk4Y2Q0NTdkZWJkMmIwODFhY2EyN2ViZWNkNGY5M2FjYzgyODQ0M2IzOWVhYmZmYTlmYTRlOWU0NTQzYjQ2ZmNjMzFlMmI1YjQ4MTc3OTAzZGVhNjk2OWFjNGEyY2M2NTcwNjUwMzkwZjFiMDhkNDNhNGMyZjk3NWM3ZWQ4YmYzMzU2YzcyMTgzODAyMTI0NTFhOGYxMWRlNDY1NTNjYmNkNjViNDI1NGRkYjhmNjY4MzRlYjIxZGRhMmE4ZjMzYjU4MWUxNDg0NTU3YWNhMWI5NGVlODkzMWRkZjE2MDM3YjdhNzE3MTMyMWE5MTkzNmFmYzI3ZmZjZTM5NWRlNzVkNWY3MGNiOGI1YWVlMDVmZjUwNzA4OGQ2NWFmMWU0Mzk2NmNkNDJjYmU2ZjdmYWNmOGRhZTA1NWRkODIyMmIxNjk2NTIxNzIzZjgxMjQ1MTc4NTk1Yzk4NWFlOTE3ZmQ0YjM5OTg3NzNlMWE5N2I3YmQxMDA4NTQ0NmY0MjU5YmNjMDlhNDU0OTI5MjgyYzFiODliNzFlZDU4N2E3NzVlMGEzZDQ1MzYzNDFmNDVkYWU5NjllODA2Yzk2ZmVmYzcxMDY3Nzc2YzAyYmEyMjEyMmI5MTk5YjE0YzBjMjhjMDQ0ODc1MDkwNzBiOTdmM2RkMmQ2ZDk3MjczMzE4MjAxNzczMDgyMDE3MzAyMDEwMTMwNGMzMDMzMzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwNWJlY2Q4NzE5NWMxZGVmZjkwYzI0YzkxMjY5YjU1YjNmMDY5YmMyMjVjMzI2YzMxNGMxYTUxNzg2ZmZlMTRjODMwYmU0ZTRiYzczY2JhMzZjOTc2NzdiNDQxNjgyNzliZTkxZTdjZGY3YzE5Mzg2YWUyMTg2MjcxOWQxM2EzYTBmZmYwODAzZDQ2MDk2MmYyY2RhODM3MTQ4NDg3MzI1MmMzZDcwNTRkYjgxNDNlMmIwODFhMzgxNmVkMDgwNGNhNTA5OWFlNWZlY2U4M2Q1YzJjMzc4M2IxOTg4YjRiNDZkYzk0ZTU1NTg3YTEwN2VhMTU0NmJmMjJkMjhhMDk3ZjY1MmE0MDY2ZGMyOTY1MjY5MDY5YWYyZjUxNzZiYjhjZTljYTZkMTFmOTY3NTdmMDMyMDRmNzU2NzAzNTg3ZDAwYWQ0MjQ3OTZjOTJmYzdhZWI2ZjQ5NDQzMTk5OWVkYTMwOTkwZTRmNTc3MzYzMmVkMjU4ZmUwMjc2NjczNTk5ZGE2ZmNlMzVjZGFkNzcyNmEwYmIwMjRjYWQ5OTZiODhlMGNiOTg4NTRjZWI1YzBiNmVjNzQ4ZDlmOWNlNmE2Y2Q0Mzc4NThiYWNiODE0NjE4YTI3MmZmM2E0MTVjNmUwN2YzZGIwOTg4Nzc3ZmRlYzg0NWE5N2JmN2QxMDJkZDAiCiAKIFBLQ1M3IFBhcnNlIEZhaWx1cmUgSW52YWxpZCBBU04xOiBDaGFuZ2UgdGFnIDMxIHRvIDAyICMyNDIuMAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHBrY3M3X2FzbjFfZmFpbDoiMzA4MjA1MDAwNjA5MmE4NjQ4ODZmNzBkMDEwNzAyYTA4MjA0ZjEzMDgyMDRlZDAyMDEwMTMxMGYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBiMDYwOTJhODY0ODg2ZjcwZDAxMDcwMWEwODIwMzRkMzA4MjAzNDkzMDgyMDIzMWEwMDMwMjAxMDIwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTMwMWUxNzBkMzIzMjMxMzAzMjM4MzEzNjMxMzAzNTM2NWExNzBkMzIzMzMxMzAzMjM4MzEzNjMxMzAzNTM2NWEzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEzMDgyMDEyMjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDAzODIwMTBmMDAzMDgyMDEwYTAyODIwMTAxMDBjOGI2Y2Y2OTg5OWNkMWYwZWJiNGNhNjQ1YzA1ZTcwZTBkMmVmZWRkY2M2MWQwODljYmQ1MTVhMzlhMzU3OWI5MjM0M2I2MWVjNzUwMDYwZmI0ZWQzNzg3NjMzMjQwMGU0MjVmMWQzNzZjN2U3NWMyOTczMzE0ZWRmNGJiMzBjOGY4ZGQwM2I5ZmNmZjk1NWEyNDVkNDkxMzdhZDZlNjAwNTZjYWMxOTU1MmE4NjVkNTIxODcxODdjYzA0MmM5YzQ5ZTNlM2E5YzE3YTUzNGI0NTNjZGFiYzBjYjExM2I0ZjYzZjViMzE3NGI5ZWU5OTAyYjE5MTBkMTE0OTZhMjc5YTc0MzI2YWRjZmVlMTBiZmQ5ZTdlYmFmYmIzNzdiZTliNjM5NTkxNjVkMTNkZDU3NTExNzFjYWRhZDNjMWQzYWRhYzY4YmM4MDExZDYxYjU0Y2Y2MDE3OGJlMzY4MzlhODlhYzkxYWI0MTllM2NhMzdkNmJhODgxZDI1NTE4YzRkYjY4YmNhNmY3YzgzNjAyZjY5OWE4NmIxN2ZiMWU3NzNiY2JlNzRiYjkzYTQ5YjI1MWFlODY0MjhiNTc0MGUxODY4YmIxZDZmYWI5ZTI4NzEyZTk4ZWMzMTlhZDhmY2E0ZDczMDEwYzRiMDljNGI4MDQ1ODk2MWU3Y2YwODM1MzAyMDMwMTAwMDFhMzUzMzA1MTMwMWQwNjAzNTUxZDBlMDQxNjA0MTQ4YWVlZTU5NDdjYzY3YzVkZDUxNWE3NmUyYTdlY2QzMWVlNTJmZGM4MzAxZjA2MDM1NTFkMjMwNDE4MzAxNjgwMTQ4YWVlZTU5NDdjYzY3YzVkZDUxNWE3NmUyYTdlY2QzMWVlNTJmZGM4MzAwZjA2MDM1NTFkMTMwMTAxZmYwNDA1MzAwMzAxMDFmZjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDAzODIwMTAxMDA4MjFkNmI5OGNkNDU3ZGViZDJiMDgxYWNhMjdlYmVjZDRmOTNhY2M4Mjg0NDNiMzllYWJmZmE5ZmE0ZTllNDU0M2I0NmZjYzMxZTJiNWI0ODE3NzkwM2RlYTY5NjlhYzRhMmNjNjU3MDY1MDM5MGYxYjA4ZDQzYTRjMmY5NzVjN2VkOGJmMzM1NmM3MjE4MzgwMjEyNDUxYThmMTFkZTQ2NTUzY2JjZDY1YjQyNTRkZGI4ZjY2ODM0ZWIyMWRkYTJhOGYzM2I1ODFlMTQ4NDU1N2FjYTFiOTRlZTg5MzFkZGYxNjAzN2I3YTcxNzEzMjFhOTE5MzZhZmMyN2ZmY2UzOTVkZTc1ZDVmNzBjYjhiNWFlZTA1ZmY1MDcwODhkNjVhZjFlNDM5NjZjZDQyY2JlNmY3ZmFjZjhkYWUwNTVkZDgyMjJiMTY5NjUyMTcyM2Y4MTI0NTE3ODU5NWM5ODVhZTkxN2ZkNGIzOTk4NzczZTFhOTdiN2JkMTAwODU0NDZmNDI1OWJjYzA5YTQ1NDkyOTI4MmMxYjg5YjcxZWQ1ODdhNzc1ZTBhM2Q0NTM2MzQxZjQ1ZGFlOTY5ZTgwNmM5NmZlZmM3MTA2Nzc3NmMwMmJhMjIxMjJiOTE5OWIxNGMwYzI4YzA0NDg3NTA5MDcwYjk3ZjNkZDJkNmQ5NzI3MzMxODIwMTc3MzA4MjAxNzMwMjAxMDEzMDRjMzAzNDAyMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDViZWNkODcxOTVjMWRlZmY5MGMyNGM5MTI2OWI1NWIzZjA2OWJjMjI1YzMyNmMzMTRjMWE1MTc4NmZmZTE0YzgzMGJlNGU0YmM3M2NiYTM2Yzk3Njc3YjQ0MTY4Mjc5YmU5MWU3Y2RmN2MxOTM4NmFlMjE4NjI3MTlkMTNhM2EwZmZmMDgwM2Q0NjA5NjJmMmNkYTgzNzE0ODQ4NzMyNTJjM2Q3MDU0ZGI4MTQzZTJiMDgxYTM4MTZlZDA4MDRjYTUwOTlhZTVmZWNlODNkNWMyYzM3ODNiMTk4OGI0YjQ2ZGM5NGU1NTU4N2ExMDdlYTE1NDZiZjIyZDI4YTA5N2Y2NTJhNDA2NmRjMjk2NTI2OTA2OWFmMmY1MTc2YmI4Y2U5Y2E2ZDExZjk2NzU3ZjAzMjA0Zjc1NjcwMzU4N2QwMGFkNDI0Nzk2YzkyZmM3YWViNmY0OTQ0MzE5OTllZGEzMDk5MGU0ZjU3NzM2MzJlZDI1OGZlMDI3NjY3MzU5OWRhNmZjZTM1Y2RhZDc3MjZhMGJiMDI0Y2FkOTk2Yjg4ZTBjYjk4ODU0Y2ViNWMwYjZlYzc0OGQ5ZjljZTZhNmNkNDM3ODU4YmFjYjgxNDYxOGEyNzJmZjNhNDE1YzZlMDdmM2RiMDk4ODc3N2ZkZWM4NDVhOTdiZjdkMTAyZGQwIgogCiBQS0NTNyBQYXJzZSBGYWlsdXJlIEludmFsaWQgQVNOMTogQ2hhbmdlIGxlbmd0aCBmcm9tIDExIHRvIDEyICMyNDMuMAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHBrY3M3X2FzbjFfZmFpbDoiMzA4MjA1MDAwNjA5MmE4NjQ4ODZmNzBkMDEwNzAyYTA4MjA0ZjEzMDgyMDRlZDAyMDEwMTMxMGYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBiMDYwOTJhODY0ODg2ZjcwZDAxMDcwMWEwODIwMzRkMzA4MjAzNDkzMDgyMDIzMWEwMDMwMjAxMDIwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTMwMWUxNzBkMzIzMjMxMzAzMjM4MzEzNjMxMzAzNTM2NWExNzBkMzIzMzMxMzAzMjM4MzEzNjMxMzAzNTM2NWEzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEzMDgyMDEyMjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDAzODIwMTBmMDAzMDgyMDEwYTAyODIwMTAxMDBjOGI2Y2Y2OTg5OWNkMWYwZWJiNGNhNjQ1YzA1ZTcwZTBkMmVmZWRkY2M2MWQwODljYmQ1MTVhMzlhMzU3OWI5MjM0M2I2MWVjNzUwMDYwZmI0ZWQzNzg3NjMzMjQwMGU0MjVmMWQzNzZjN2U3NWMyOTczMzE0ZWRmNGJiMzBjOGY4ZGQwM2I5ZmNmZjk1NWEyNDVkNDkxMzdhZDZlNjAwNTZjYWMxOTU1MmE4NjVkNTIxODcxODdjYzA0MmM5YzQ5ZTNlM2E5YzE3YTUzNGI0NTNjZGFiYzBjYjExM2I0ZjYzZjViMzE3NGI5ZWU5OTAyYjE5MTBkMTE0OTZhMjc5YTc0MzI2YWRjZmVlMTBiZmQ5ZTdlYmFmYmIzNzdiZTliNjM5NTkxNjVkMTNkZDU3NTExNzFjYWRhZDNjMWQzYWRhYzY4YmM4MDExZDYxYjU0Y2Y2MDE3OGJlMzY4MzlhODlhYzkxYWI0MTllM2NhMzdkNmJhODgxZDI1NTE4YzRkYjY4YmNhNmY3YzgzNjAyZjY5OWE4NmIxN2ZiMWU3NzNiY2JlNzRiYjkzYTQ5YjI1MWFlODY0MjhiNTc0MGUxODY4YmIxZDZmYWI5ZTI4NzEyZTk4ZWMzMTlhZDhmY2E0ZDczMDEwYzRiMDljNGI4MDQ1ODk2MWU3Y2YwODM1MzAyMDMwMTAwMDFhMzUzMzA1MTMwMWQwNjAzNTUxZDBlMDQxNjA0MTQ4YWVlZTU5NDdjYzY3YzVkZDUxNWE3NmUyYTdlY2QzMWVlNTJmZGM4MzAxZjA2MDM1NTFkMjMwNDE4MzAxNjgwMTQ4YWVlZTU5NDdjYzY3YzVkZDUxNWE3NmUyYTdlY2QzMWVlNTJmZGM4MzAwZjA2MDM1NTFkMTMwMTAxZmYwNDA1MzAwMzAxMDFmZjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDAzODIwMTAxMDA4MjFkNmI5OGNkNDU3ZGViZDJiMDgxYWNhMjdlYmVjZDRmOTNhY2M4Mjg0NDNiMzllYWJmZmE5ZmE0ZTllNDU0M2I0NmZjYzMxZTJiNWI0ODE3NzkwM2RlYTY5NjlhYzRhMmNjNjU3MDY1MDM5MGYxYjA4ZDQzYTRjMmY5NzVjN2VkOGJmMzM1NmM3MjE4MzgwMjEyNDUxYThmMTFkZTQ2NTUzY2JjZDY1YjQyNTRkZGI4ZjY2ODM0ZWIyMWRkYTJhOGYzM2I1ODFlMTQ4NDU1N2FjYTFiOTRlZTg5MzFkZGYxNjAzN2I3YTcxNzEzMjFhOTE5MzZhZmMyN2ZmY2UzOTVkZTc1ZDVmNzBjYjhiNWFlZTA1ZmY1MDcwODhkNjVhZjFlNDM5NjZjZDQyY2JlNmY3ZmFjZjhkYWUwNTVkZDgyMjJiMTY5NjUyMTcyM2Y4MTI0NTE3ODU5NWM5ODVhZTkxN2ZkNGIzOTk4NzczZTFhOTdiN2JkMTAwODU0NDZmNDI1OWJjYzA5YTQ1NDkyOTI4MmMxYjg5YjcxZWQ1ODdhNzc1ZTBhM2Q0NTM2MzQxZjQ1ZGFlOTY5ZTgwNmM5NmZlZmM3MTA2Nzc3NmMwMmJhMjIxMjJiOTE5OWIxNGMwYzI4YzA0NDg3NTA5MDcwYjk3ZjNkZDJkNmQ5NzI3MzMxODIwMTc3MzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGMzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDViZWNkODcxOTVjMWRlZmY5MGMyNGM5MTI2OWI1NWIzZjA2OWJjMjI1YzMyNmMzMTRjMWE1MTc4NmZmZTE0YzgzMGJlNGU0YmM3M2NiYTM2Yzk3Njc3YjQ0MTY4Mjc5YmU5MWU3Y2RmN2MxOTM4NmFlMjE4NjI3MTlkMTNhM2EwZmZmMDgwM2Q0NjA5NjJmMmNkYTgzNzE0ODQ4NzMyNTJjM2Q3MDU0ZGI4MTQzZTJiMDgxYTM4MTZlZDA4MDRjYTUwOTlhZTVmZWNlODNkNWMyYzM3ODNiMTk4OGI0YjQ2ZGM5NGU1NTU4N2ExMDdlYTE1NDZiZjIyZDI4YTA5N2Y2NTJhNDA2NmRjMjk2NTI2OTA2OWFmMmY1MTc2YmI4Y2U5Y2E2ZDExZjk2NzU3ZjAzMjA0Zjc1NjcwMzU4N2QwMGFkNDI0Nzk2YzkyZmM3YWViNmY0OTQ0MzE5OTllZGEzMDk5MGU0ZjU3NzM2MzJlZDI1OGZlMDI3NjY3MzU5OWRhNmZjZTM1Y2RhZDc3MjZhMGJiMDI0Y2FkOTk2Yjg4ZTBjYjk4ODU0Y2ViNWMwYjZlYzc0OGQ5ZjljZTZhNmNkNDM3ODU4YmFjYjgxNDYxOGEyNzJmZjNhNDE1YzZlMDdmM2RiMDk4ODc3N2ZkZWM4NDVhOTdiZjdkMTAyZGQwIgogCiBQS0NTNyBQYXJzZSBGYWlsdXJlIEludmFsaWQgQVNOMTogQ2hhbmdlIGNvbnRlbnRzIG9mIHRhZyAzMSB0byBjb250YWluIG9uZSB1bmFjY291bnRlZCBleHRyYSBieXRlICMyNDQuMAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHBrY3M3X2FzbjFfZmFpbDoiMzA4MjA1MDAwNjA5MmE4NjQ4ODZmNzBkMDEwNzAyYTA4MjA0ZjEzMDgyMDRlZDAyMDEwMTMxMGYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBiMDYwOTJhODY0ODg2ZjcwZDAxMDcwMWEwODIwMzRkMzA4MjAzNDkzMDgyMDIzMWEwMDMwMjAxMDIwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTMwMWUxNzBkMzIzMjMxMzAzMjM4MzEzNjMxMzAzNTM2NWExNzBkMzIzMzMxMzAzMjM4MzEzNjMxMzAzNTM2NWEzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEzMDgyMDEyMjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDAzODIwMTBmMDAzMDgyMDEwYTAyODIwMTAxMDBjOGI2Y2Y2OTg5OWNkMWYwZWJiNGNhNjQ1YzA1ZTcwZTBkMmVmZWRkY2M2MWQwODljYmQ1MTVhMzlhMzU3OWI5MjM0M2I2MWVjNzUwMDYwZmI0ZWQzNzg3NjMzMjQwMGU0MjVmMWQzNzZjN2U3NWMyOTczMzE0ZWRmNGJiMzBjOGY4ZGQwM2I5ZmNmZjk1NWEyNDVkNDkxMzdhZDZlNjAwNTZjYWMxOTU1MmE4NjVkNTIxODcxODdjYzA0MmM5YzQ5ZTNlM2E5YzE3YTUzNGI0NTNjZGFiYzBjYjExM2I0ZjYzZjViMzE3NGI5ZWU5OTAyYjE5MTBkMTE0OTZhMjc5YTc0MzI2YWRjZmVlMTBiZmQ5ZTdlYmFmYmIzNzdiZTliNjM5NTkxNjVkMTNkZDU3NTExNzFjYWRhZDNjMWQzYWRhYzY4YmM4MDExZDYxYjU0Y2Y2MDE3OGJlMzY4MzlhODlhYzkxYWI0MTllM2NhMzdkNmJhODgxZDI1NTE4YzRkYjY4YmNhNmY3YzgzNjAyZjY5OWE4NmIxN2ZiMWU3NzNiY2JlNzRiYjkzYTQ5YjI1MWFlODY0MjhiNTc0MGUxODY4YmIxZDZmYWI5ZTI4NzEyZTk4ZWMzMTlhZDhmY2E0ZDczMDEwYzRiMDljNGI4MDQ1ODk2MWU3Y2YwODM1MzAyMDMwMTAwMDFhMzUzMzA1MTMwMWQwNjAzNTUxZDBlMDQxNjA0MTQ4YWVlZTU5NDdjYzY3YzVkZDUxNWE3NmUyYTdlY2QzMWVlNTJmZGM4MzAxZjA2MDM1NTFkMjMwNDE4MzAxNjgwMTQ4YWVlZTU5NDdjYzY3YzVkZDUxNWE3NmUyYTdlY2QzMWVlNTJmZGM4MzAwZjA2MDM1NTFkMTMwMTAxZmYwNDA1MzAwMzAxMDFmZjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDAzODIwMTAxMDA4MjFkNmI5OGNkNDU3ZGViZDJiMDgxYWNhMjdlYmVjZDRmOTNhY2M4Mjg0NDNiMzllYWJmZmE5ZmE0ZTllNDU0M2I0NmZjYzMxZTJiNWI0ODE3NzkwM2RlYTY5NjlhYzRhMmNjNjU3MDY1MDM5MGYxYjA4ZDQzYTRjMmY5NzVjN2VkOGJmMzM1NmM3MjE4MzgwMjEyNDUxYThmMTFkZTQ2NTUzY2JjZDY1YjQyNTRkZGI4ZjY2ODM0ZWIyMWRkYTJhOGYzM2I1ODFlMTQ4NDU1N2FjYTFiOTRlZTg5MzFkZGYxNjAzN2I3YTcxNzEzMjFhOTE5MzZhZmMyN2ZmY2UzOTVkZTc1ZDVmNzBjYjhiNWFlZTA1ZmY1MDcwODhkNjVhZjFlNDM5NjZjZDQyY2JlNmY3ZmFjZjhkYWUwNTVkZDgyMjJiMTY5NjUyMTcyM2Y4MTI0NTE3ODU5NWM5ODVhZTkxN2ZkNGIzOTk4NzczZTFhOTdiN2JkMTAwODU0NDZmNDI1OWJjYzA5YTQ1NDkyOTI4MmMxYjg5YjcxZWQ1ODdhNzc1ZTBhM2Q0NTM2MzQxZjQ1ZGFlOTY5ZTgwNmM5NmZlZmM3MTA2Nzc3NmMwMmJhMjIxMjJiOTE5OWIxNGMwYzI4YzA0NDg3NTA5MDcwYjk3ZjNkZDJkNmQ5NzI3MzMxODIwMTc3MzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGMzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMDAzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwNWJlY2Q4NzE5NWMxZGVmZjkwYzI0YzkxMjY5YjU1YjNmMDY5YmMyMjVjMzI2YzMxNGMxYTUxNzg2ZmZlMTRjODMwYmU0ZTRiYzczY2JhMzZjOTc2NzdiNDQxNjgyNzliZTkxZTdjZGY3YzE5Mzg2YWUyMTg2MjcxOWQxM2EzYTBmZmYwODAzZDQ2MDk2MmYyY2RhODM3MTQ4NDg3MzI1MmMzZDcwNTRkYjgxNDNlMmIwODFhMzgxNmVkMDgwNGNhNTA5OWFlNWZlY2U4M2Q1YzJjMzc4M2IxOTg4YjRiNDZkYzk0ZTU1NTg3YTEwN2VhMTU0NmJmMjJkMjhhMDk3ZjY1MmE0MDY2ZGMyOTY1MjY5MDY5YWYyZjUxNzZiYjhjZTljYTZkMTFmOTY3NTdmMDMyMDRmNzU2NzAzNTg3ZDAwYWQ0MjQ3OTZjOTJmYzdhZWI2ZjQ5NDQzMTk5OWVkYTMwOTkwZTRmNTc3MzYzMmVkMjU4ZmUwMjc2NjczNTk5ZGE2ZmNlMzVjZGFkNzcyNmEwYmIwMjRjYWQ5OTZiODhlMGNiOTg4NTRjZWI1YzBiNmVjNzQ4ZDlmOWNlNmE2Y2Q0Mzc4NThiYWNiODE0NjE4YTI3MmZmM2E0MTVjNmUwN2YzZGIwOTg4Nzc3ZmRlYzg0NWE5N2JmN2QxMDJkZDAiCiAKIFBLQ1M3IFBhcnNlIEZhaWx1cmUgSW52YWxpZCBBU04xOiBDaGFuZ2UgbGVuZ3RoIGZyb20gMTEgdG8gMTAgIzI0NS4wCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NgogcGtjczdfYXNuMV9mYWlsOiIzMDgyMDUwMDA2MDkyYTg2NDg4NmY3MGQwMTA3MDJhMDgyMDRmMTMwODIwNGVkMDIwMTAxMzEwZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGIwNjA5MmE4NjQ4ODZmNzBkMDEwNzAxYTA4MjAzNGQzMDgyMDM0OTMwODIwMjMxYTAwMzAyMDEwMjAyMTQ3YmRlZGRkMjQ0NGNkMWNkZmU1YzQxYTgxMDJjODliN2RmMmU2Y2JmMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMzAxZTE3MGQzMjMyMzEzMDMyMzgzMTM2MzEzMDM1MzY1YTE3MGQzMjMzMzEzMDMyMzgzMTM2MzEzMDM1MzY1YTMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTMwODIwMTIyMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDM4MjAxMGYwMDMwODIwMTBhMDI4MjAxMDEwMGM4YjZjZjY5ODk5Y2QxZjBlYmI0Y2E2NDVjMDVlNzBlMGQyZWZlZGRjYzYxZDA4OWNiZDUxNWEzOWEzNTc5YjkyMzQzYjYxZWM3NTAwNjBmYjRlZDM3ODc2MzMyNDAwZTQyNWYxZDM3NmM3ZTc1YzI5NzMzMTRlZGY0YmIzMGM4ZjhkZDAzYjlmY2ZmOTU1YTI0NWQ0OTEzN2FkNmU2MDA1NmNhYzE5NTUyYTg2NWQ1MjE4NzE4N2NjMDQyYzljNDllM2UzYTljMTdhNTM0YjQ1M2NkYWJjMGNiMTEzYjRmNjNmNWIzMTc0YjllZTk5MDJiMTkxMGQxMTQ5NmEyNzlhNzQzMjZhZGNmZWUxMGJmZDllN2ViYWZiYjM3N2JlOWI2Mzk1OTE2NWQxM2RkNTc1MTE3MWNhZGFkM2MxZDNhZGFjNjhiYzgwMTFkNjFiNTRjZjYwMTc4YmUzNjgzOWE4OWFjOTFhYjQxOWUzY2EzN2Q2YmE4ODFkMjU1MThjNGRiNjhiY2E2ZjdjODM2MDJmNjk5YTg2YjE3ZmIxZTc3M2JjYmU3NGJiOTNhNDliMjUxYWU4NjQyOGI1NzQwZTE4NjhiYjFkNmZhYjllMjg3MTJlOThlYzMxOWFkOGZjYTRkNzMwMTBjNGIwOWM0YjgwNDU4OTYxZTdjZjA4MzUzMDIwMzAxMDAwMWEzNTMzMDUxMzAxZDA2MDM1NTFkMGUwNDE2MDQxNDhhZWVlNTk0N2NjNjdjNWRkNTE1YTc2ZTJhN2VjZDMxZWU1MmZkYzgzMDFmMDYwMzU1MWQyMzA0MTgzMDE2ODAxNDhhZWVlNTk0N2NjNjdjNWRkNTE1YTc2ZTJhN2VjZDMxZWU1MmZkYzgzMDBmMDYwMzU1MWQxMzAxMDFmZjA0MDUzMDAzMDEwMWZmMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMDM4MjAxMDEwMDgyMWQ2Yjk4Y2Q0NTdkZWJkMmIwODFhY2EyN2ViZWNkNGY5M2FjYzgyODQ0M2IzOWVhYmZmYTlmYTRlOWU0NTQzYjQ2ZmNjMzFlMmI1YjQ4MTc3OTAzZGVhNjk2OWFjNGEyY2M2NTcwNjUwMzkwZjFiMDhkNDNhNGMyZjk3NWM3ZWQ4YmYzMzU2YzcyMTgzODAyMTI0NTFhOGYxMWRlNDY1NTNjYmNkNjViNDI1NGRkYjhmNjY4MzRlYjIxZGRhMmE4ZjMzYjU4MWUxNDg0NTU3YWNhMWI5NGVlODkzMWRkZjE2MDM3YjdhNzE3MTMyMWE5MTkzNmFmYzI3ZmZjZTM5NWRlNzVkNWY3MGNiOGI1YWVlMDVmZjUwNzA4OGQ2NWFmMWU0Mzk2NmNkNDJjYmU2ZjdmYWNmOGRhZTA1NWRkODIyMmIxNjk2NTIxNzIzZjgxMjQ1MTc4NTk1Yzk4NWFlOTE3ZmQ0YjM5OTg3NzNlMWE5N2I3YmQxMDA4NTQ0NmY0MjU5YmNjMDlhNDU0OTI5MjgyYzFiODliNzFlZDU4N2E3NzVlMGEzZDQ1MzYzNDFmNDVkYWU5NjllODA2Yzk2ZmVmYzcxMDY3Nzc2YzAyYmEyMjEyMmI5MTk5YjE0YzBjMjhjMDQ0ODc1MDkwNzBiOTdmM2RkMmQ2ZDk3MjczMzE4MjAxNzczMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYTMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwNWJlY2Q4NzE5NWMxZGVmZjkwYzI0YzkxMjY5YjU1YjNmMDY5YmMyMjVjMzI2YzMxNGMxYTUxNzg2ZmZlMTRjODMwYmU0ZTRiYzczY2JhMzZjOTc2NzdiNDQxNjgyNzliZTkxZTdjZGY3YzE5Mzg2YWUyMTg2MjcxOWQxM2EzYTBmZmYwODAzZDQ2MDk2MmYyY2RhODM3MTQ4NDg3MzI1MmMzZDcwNTRkYjgxNDNlMmIwODFhMzgxNmVkMDgwNGNhNTA5OWFlNWZlY2U4M2Q1YzJjMzc4M2IxOTg4YjRiNDZkYzk0ZTU1NTg3YTEwN2VhMTU0NmJmMjJkMjhhMDk3ZjY1MmE0MDY2ZGMyOTY1MjY5MDY5YWYyZjUxNzZiYjhjZTljYTZkMTFmOTY3NTdmMDMyMDRmNzU2NzAzNTg3ZDAwYWQ0MjQ3OTZjOTJmYzdhZWI2ZjQ5NDQzMTk5OWVkYTMwOTkwZTRmNTc3MzYzMmVkMjU4ZmUwMjc2NjczNTk5ZGE2ZmNlMzVjZGFkNzcyNmEwYmIwMjRjYWQ5OTZiODhlMGNiOTg4NTRjZWI1YzBiNmVjNzQ4ZDlmOWNlNmE2Y2Q0Mzc4NThiYWNiODE0NjE4YTI3MmZmM2E0MTVjNmUwN2YzZGIwOTg4Nzc3ZmRlYzg0NWE5N2JmN2QxMDJkZDAiCiAKIFBLQ1M3IFBhcnNlIEZhaWx1cmUgSW52YWxpZCBBU04xOiBDaGFuZ2UgdGFnIDMwIHRvIDAyICMyNDYuMAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHBrY3M3X2FzbjFfZmFpbDoiMzA4MjA1MDAwNjA5MmE4NjQ4ODZmNzBkMDEwNzAyYTA4MjA0ZjEzMDgyMDRlZDAyMDEwMTMxMGYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBiMDYwOTJhODY0ODg2ZjcwZDAxMDcwMWEwODIwMzRkMzA4MjAzNDkzMDgyMDIzMWEwMDMwMjAxMDIwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTMwMWUxNzBkMzIzMjMxMzAzMjM4MzEzNjMxMzAzNTM2NWExNzBkMzIzMzMxMzAzMjM4MzEzNjMxMzAzNTM2NWEzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEzMDgyMDEyMjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDAzODIwMTBmMDAzMDgyMDEwYTAyODIwMTAxMDBjOGI2Y2Y2OTg5OWNkMWYwZWJiNGNhNjQ1YzA1ZTcwZTBkMmVmZWRkY2M2MWQwODljYmQ1MTVhMzlhMzU3OWI5MjM0M2I2MWVjNzUwMDYwZmI0ZWQzNzg3NjMzMjQwMGU0MjVmMWQzNzZjN2U3NWMyOTczMzE0ZWRmNGJiMzBjOGY4ZGQwM2I5ZmNmZjk1NWEyNDVkNDkxMzdhZDZlNjAwNTZjYWMxOTU1MmE4NjVkNTIxODcxODdjYzA0MmM5YzQ5ZTNlM2E5YzE3YTUzNGI0NTNjZGFiYzBjYjExM2I0ZjYzZjViMzE3NGI5ZWU5OTAyYjE5MTBkMTE0OTZhMjc5YTc0MzI2YWRjZmVlMTBiZmQ5ZTdlYmFmYmIzNzdiZTliNjM5NTkxNjVkMTNkZDU3NTExNzFjYWRhZDNjMWQzYWRhYzY4YmM4MDExZDYxYjU0Y2Y2MDE3OGJlMzY4MzlhODlhYzkxYWI0MTllM2NhMzdkNmJhODgxZDI1NTE4YzRkYjY4YmNhNmY3YzgzNjAyZjY5OWE4NmIxN2ZiMWU3NzNiY2JlNzRiYjkzYTQ5YjI1MWFlODY0MjhiNTc0MGUxODY4YmIxZDZmYWI5ZTI4NzEyZTk4ZWMzMTlhZDhmY2E0ZDczMDEwYzRiMDljNGI4MDQ1ODk2MWU3Y2YwODM1MzAyMDMwMTAwMDFhMzUzMzA1MTMwMWQwNjAzNTUxZDBlMDQxNjA0MTQ4YWVlZTU5NDdjYzY3YzVkZDUxNWE3NmUyYTdlY2QzMWVlNTJmZGM4MzAxZjA2MDM1NTFkMjMwNDE4MzAxNjgwMTQ4YWVlZTU5NDdjYzY3YzVkZDUxNWE3NmUyYTdlY2QzMWVlNTJmZGM4MzAwZjA2MDM1NTFkMTMwMTAxZmYwNDA1MzAwMzAxMDFmZjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDAzODIwMTAxMDA4MjFkNmI5OGNkNDU3ZGViZDJiMDgxYWNhMjdlYmVjZDRmOTNhY2M4Mjg0NDNiMzllYWJmZmE5ZmE0ZTllNDU0M2I0NmZjYzMxZTJiNWI0ODE3NzkwM2RlYTY5NjlhYzRhMmNjNjU3MDY1MDM5MGYxYjA4ZDQzYTRjMmY5NzVjN2VkOGJmMzM1NmM3MjE4MzgwMjEyNDUxYThmMTFkZTQ2NTUzY2JjZDY1YjQyNTRkZGI4ZjY2ODM0ZWIyMWRkYTJhOGYzM2I1ODFlMTQ4NDU1N2FjYTFiOTRlZTg5MzFkZGYxNjAzN2I3YTcxNzEzMjFhOTE5MzZhZmMyN2ZmY2UzOTVkZTc1ZDVmNzBjYjhiNWFlZTA1ZmY1MDcwODhkNjVhZjFlNDM5NjZjZDQyY2JlNmY3ZmFjZjhkYWUwNTVkZDgyMjJiMTY5NjUyMTcyM2Y4MTI0NTE3ODU5NWM5ODVhZTkxN2ZkNGIzOTk4NzczZTFhOTdiN2JkMTAwODU0NDZmNDI1OWJjYzA5YTQ1NDkyOTI4MmMxYjg5YjcxZWQ1ODdhNzc1ZTBhM2Q0NTM2MzQxZjQ1ZGFlOTY5ZTgwNmM5NmZlZmM3MTA2Nzc3NmMwMmJhMjIxMjJiOTE5OWIxNGMwYzI4YzA0NDg3NTA5MDcwYjk3ZjNkZDJkNmQ5NzI3MzMxODIwMTc3MzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIwMjA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDViZWNkODcxOTVjMWRlZmY5MGMyNGM5MTI2OWI1NWIzZjA2OWJjMjI1YzMyNmMzMTRjMWE1MTc4NmZmZTE0YzgzMGJlNGU0YmM3M2NiYTM2Yzk3Njc3YjQ0MTY4Mjc5YmU5MWU3Y2RmN2MxOTM4NmFlMjE4NjI3MTlkMTNhM2EwZmZmMDgwM2Q0NjA5NjJmMmNkYTgzNzE0ODQ4NzMyNTJjM2Q3MDU0ZGI4MTQzZTJiMDgxYTM4MTZlZDA4MDRjYTUwOTlhZTVmZWNlODNkNWMyYzM3ODNiMTk4OGI0YjQ2ZGM5NGU1NTU4N2ExMDdlYTE1NDZiZjIyZDI4YTA5N2Y2NTJhNDA2NmRjMjk2NTI2OTA2OWFmMmY1MTc2YmI4Y2U5Y2E2ZDExZjk2NzU3ZjAzMjA0Zjc1NjcwMzU4N2QwMGFkNDI0Nzk2YzkyZmM3YWViNmY0OTQ0MzE5OTllZGEzMDk5MGU0ZjU3NzM2MzJlZDI1OGZlMDI3NjY3MzU5OWRhNmZjZTM1Y2RhZDc3MjZhMGJiMDI0Y2FkOTk2Yjg4ZTBjYjk4ODU0Y2ViNWMwYjZlYzc0OGQ5ZjljZTZhNmNkNDM3ODU4YmFjYjgxNDYxOGEyNzJmZjNhNDE1YzZlMDdmM2RiMDk4ODc3N2ZkZWM4NDVhOTdiZjdkMTAyZGQwIgogCiBQS0NTNyBQYXJzZSBGYWlsdXJlIEludmFsaWQgQVNOMTogQ2hhbmdlIGxlbmd0aCBmcm9tIDkgdG8gMTAgIzI0Ny4wCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NgogcGtjczdfYXNuMV9mYWlsOiIzMDgyMDUwMDA2MDkyYTg2NDg4NmY3MGQwMTA3MDJhMDgyMDRmMTMwODIwNGVkMDIwMTAxMzEwZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGIwNjA5MmE4NjQ4ODZmNzBkMDEwNzAxYTA4MjAzNGQzMDgyMDM0OTMwODIwMjMxYTAwMzAyMDEwMjAyMTQ3YmRlZGRkMjQ0NGNkMWNkZmU1YzQxYTgxMDJjODliN2RmMmU2Y2JmMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMzAxZTE3MGQzMjMyMzEzMDMyMzgzMTM2MzEzMDM1MzY1YTE3MGQzMjMzMzEzMDMyMzgzMTM2MzEzMDM1MzY1YTMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTMwODIwMTIyMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDM4MjAxMGYwMDMwODIwMTBhMDI4MjAxMDEwMGM4YjZjZjY5ODk5Y2QxZjBlYmI0Y2E2NDVjMDVlNzBlMGQyZWZlZGRjYzYxZDA4OWNiZDUxNWEzOWEzNTc5YjkyMzQzYjYxZWM3NTAwNjBmYjRlZDM3ODc2MzMyNDAwZTQyNWYxZDM3NmM3ZTc1YzI5NzMzMTRlZGY0YmIzMGM4ZjhkZDAzYjlmY2ZmOTU1YTI0NWQ0OTEzN2FkNmU2MDA1NmNhYzE5NTUyYTg2NWQ1MjE4NzE4N2NjMDQyYzljNDllM2UzYTljMTdhNTM0YjQ1M2NkYWJjMGNiMTEzYjRmNjNmNWIzMTc0YjllZTk5MDJiMTkxMGQxMTQ5NmEyNzlhNzQzMjZhZGNmZWUxMGJmZDllN2ViYWZiYjM3N2JlOWI2Mzk1OTE2NWQxM2RkNTc1MTE3MWNhZGFkM2MxZDNhZGFjNjhiYzgwMTFkNjFiNTRjZjYwMTc4YmUzNjgzOWE4OWFjOTFhYjQxOWUzY2EzN2Q2YmE4ODFkMjU1MThjNGRiNjhiY2E2ZjdjODM2MDJmNjk5YTg2YjE3ZmIxZTc3M2JjYmU3NGJiOTNhNDliMjUxYWU4NjQyOGI1NzQwZTE4NjhiYjFkNmZhYjllMjg3MTJlOThlYzMxOWFkOGZjYTRkNzMwMTBjNGIwOWM0YjgwNDU4OTYxZTdjZjA4MzUzMDIwMzAxMDAwMWEzNTMzMDUxMzAxZDA2MDM1NTFkMGUwNDE2MDQxNDhhZWVlNTk0N2NjNjdjNWRkNTE1YTc2ZTJhN2VjZDMxZWU1MmZkYzgzMDFmMDYwMzU1MWQyMzA0MTgzMDE2ODAxNDhhZWVlNTk0N2NjNjdjNWRkNTE1YTc2ZTJhN2VjZDMxZWU1MmZkYzgzMDBmMDYwMzU1MWQxMzAxMDFmZjA0MDUzMDAzMDEwMWZmMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMDM4MjAxMDEwMDgyMWQ2Yjk4Y2Q0NTdkZWJkMmIwODFhY2EyN2ViZWNkNGY5M2FjYzgyODQ0M2IzOWVhYmZmYTlmYTRlOWU0NTQzYjQ2ZmNjMzFlMmI1YjQ4MTc3OTAzZGVhNjk2OWFjNGEyY2M2NTcwNjUwMzkwZjFiMDhkNDNhNGMyZjk3NWM3ZWQ4YmYzMzU2YzcyMTgzODAyMTI0NTFhOGYxMWRlNDY1NTNjYmNkNjViNDI1NGRkYjhmNjY4MzRlYjIxZGRhMmE4ZjMzYjU4MWUxNDg0NTU3YWNhMWI5NGVlODkzMWRkZjE2MDM3YjdhNzE3MTMyMWE5MTkzNmFmYzI3ZmZjZTM5NWRlNzVkNWY3MGNiOGI1YWVlMDVmZjUwNzA4OGQ2NWFmMWU0Mzk2NmNkNDJjYmU2ZjdmYWNmOGRhZTA1NWRkODIyMmIxNjk2NTIxNzIzZjgxMjQ1MTc4NTk1Yzk4NWFlOTE3ZmQ0YjM5OTg3NzNlMWE5N2I3YmQxMDA4NTQ0NmY0MjU5YmNjMDlhNDU0OTI5MjgyYzFiODliNzFlZDU4N2E3NzVlMGEzZDQ1MzYzNDFmNDVkYWU5NjllODA2Yzk2ZmVmYzcxMDY3Nzc2YzAyYmEyMjEyMmI5MTk5YjE0YzBjMjhjMDQ0ODc1MDkwNzBiOTdmM2RkMmQ2ZDk3MjczMzE4MjAxNzczMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMGEwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwNWJlY2Q4NzE5NWMxZGVmZjkwYzI0YzkxMjY5YjU1YjNmMDY5YmMyMjVjMzI2YzMxNGMxYTUxNzg2ZmZlMTRjODMwYmU0ZTRiYzczY2JhMzZjOTc2NzdiNDQxNjgyNzliZTkxZTdjZGY3YzE5Mzg2YWUyMTg2MjcxOWQxM2EzYTBmZmYwODAzZDQ2MDk2MmYyY2RhODM3MTQ4NDg3MzI1MmMzZDcwNTRkYjgxNDNlMmIwODFhMzgxNmVkMDgwNGNhNTA5OWFlNWZlY2U4M2Q1YzJjMzc4M2IxOTg4YjRiNDZkYzk0ZTU1NTg3YTEwN2VhMTU0NmJmMjJkMjhhMDk3ZjY1MmE0MDY2ZGMyOTY1MjY5MDY5YWYyZjUxNzZiYjhjZTljYTZkMTFmOTY3NTdmMDMyMDRmNzU2NzAzNTg3ZDAwYWQ0MjQ3OTZjOTJmYzdhZWI2ZjQ5NDQzMTk5OWVkYTMwOTkwZTRmNTc3MzYzMmVkMjU4ZmUwMjc2NjczNTk5ZGE2ZmNlMzVjZGFkNzcyNmEwYmIwMjRjYWQ5OTZiODhlMGNiOTg4NTRjZWI1YzBiNmVjNzQ4ZDlmOWNlNmE2Y2Q0Mzc4NThiYWNiODE0NjE4YTI3MmZmM2E0MTVjNmUwN2YzZGIwOTg4Nzc3ZmRlYzg0NWE5N2JmN2QxMDJkZDAiCiAKIFBLQ1M3IFBhcnNlIEZhaWx1cmUgSW52YWxpZCBBU04xOiBDaGFuZ2UgY29udGVudHMgb2YgdGFnIDMwIHRvIGNvbnRhaW4gb25lIHVuYWNjb3VudGVkIGV4dHJhIGJ5dGUgIzI0OC4wCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NgogcGtjczdfYXNuMV9mYWlsOiIzMDgyMDUwMDA2MDkyYTg2NDg4NmY3MGQwMTA3MDJhMDgyMDRmMTMwODIwNGVkMDIwMTAxMzEwZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGIwNjA5MmE4NjQ4ODZmNzBkMDEwNzAxYTA4MjAzNGQzMDgyMDM0OTMwODIwMjMxYTAwMzAyMDEwMjAyMTQ3YmRlZGRkMjQ0NGNkMWNkZmU1YzQxYTgxMDJjODliN2RmMmU2Y2JmMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMzAxZTE3MGQzMjMyMzEzMDMyMzgzMTM2MzEzMDM1MzY1YTE3MGQzMjMzMzEzMDMyMzgzMTM2MzEzMDM1MzY1YTMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTMwODIwMTIyMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDM4MjAxMGYwMDMwODIwMTBhMDI4MjAxMDEwMGM4YjZjZjY5ODk5Y2QxZjBlYmI0Y2E2NDVjMDVlNzBlMGQyZWZlZGRjYzYxZDA4OWNiZDUxNWEzOWEzNTc5YjkyMzQzYjYxZWM3NTAwNjBmYjRlZDM3ODc2MzMyNDAwZTQyNWYxZDM3NmM3ZTc1YzI5NzMzMTRlZGY0YmIzMGM4ZjhkZDAzYjlmY2ZmOTU1YTI0NWQ0OTEzN2FkNmU2MDA1NmNhYzE5NTUyYTg2NWQ1MjE4NzE4N2NjMDQyYzljNDllM2UzYTljMTdhNTM0YjQ1M2NkYWJjMGNiMTEzYjRmNjNmNWIzMTc0YjllZTk5MDJiMTkxMGQxMTQ5NmEyNzlhNzQzMjZhZGNmZWUxMGJmZDllN2ViYWZiYjM3N2JlOWI2Mzk1OTE2NWQxM2RkNTc1MTE3MWNhZGFkM2MxZDNhZGFjNjhiYzgwMTFkNjFiNTRjZjYwMTc4YmUzNjgzOWE4OWFjOTFhYjQxOWUzY2EzN2Q2YmE4ODFkMjU1MThjNGRiNjhiY2E2ZjdjODM2MDJmNjk5YTg2YjE3ZmIxZTc3M2JjYmU3NGJiOTNhNDliMjUxYWU4NjQyOGI1NzQwZTE4NjhiYjFkNmZhYjllMjg3MTJlOThlYzMxOWFkOGZjYTRkNzMwMTBjNGIwOWM0YjgwNDU4OTYxZTdjZjA4MzUzMDIwMzAxMDAwMWEzNTMzMDUxMzAxZDA2MDM1NTFkMGUwNDE2MDQxNDhhZWVlNTk0N2NjNjdjNWRkNTE1YTc2ZTJhN2VjZDMxZWU1MmZkYzgzMDFmMDYwMzU1MWQyMzA0MTgzMDE2ODAxNDhhZWVlNTk0N2NjNjdjNWRkNTE1YTc2ZTJhN2VjZDMxZWU1MmZkYzgzMDBmMDYwMzU1MWQxMzAxMDFmZjA0MDUzMDAzMDEwMWZmMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMDM4MjAxMDEwMDgyMWQ2Yjk4Y2Q0NTdkZWJkMmIwODFhY2EyN2ViZWNkNGY5M2FjYzgyODQ0M2IzOWVhYmZmYTlmYTRlOWU0NTQzYjQ2ZmNjMzFlMmI1YjQ4MTc3OTAzZGVhNjk2OWFjNGEyY2M2NTcwNjUwMzkwZjFiMDhkNDNhNGMyZjk3NWM3ZWQ4YmYzMzU2YzcyMTgzODAyMTI0NTFhOGYxMWRlNDY1NTNjYmNkNjViNDI1NGRkYjhmNjY4MzRlYjIxZGRhMmE4ZjMzYjU4MWUxNDg0NTU3YWNhMWI5NGVlODkzMWRkZjE2MDM3YjdhNzE3MTMyMWE5MTkzNmFmYzI3ZmZjZTM5NWRlNzVkNWY3MGNiOGI1YWVlMDVmZjUwNzA4OGQ2NWFmMWU0Mzk2NmNkNDJjYmU2ZjdmYWNmOGRhZTA1NWRkODIyMmIxNjk2NTIxNzIzZjgxMjQ1MTc4NTk1Yzk4NWFlOTE3ZmQ0YjM5OTg3NzNlMWE5N2I3YmQxMDA4NTQ0NmY0MjU5YmNjMDlhNDU0OTI5MjgyYzFiODliNzFlZDU4N2E3NzVlMGEzZDQ1MzYzNDFmNDVkYWU5NjllODA2Yzk2ZmVmYzcxMDY3Nzc2YzAyYmEyMjEyMmI5MTk5YjE0YzBjMjhjMDQ0ODc1MDkwNzBiOTdmM2RkMmQ2ZDk3MjczMzE4MjAxNzczMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMGEwNjAzNTUwNDA2MTMwMjRlNGMwMDMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTAyMTQ3YmRlZGRkMjQ0NGNkMWNkZmU1YzQxYTgxMDJjODliN2RmMmU2Y2JmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDA1YmVjZDg3MTk1YzFkZWZmOTBjMjRjOTEyNjliNTViM2YwNjliYzIyNWMzMjZjMzE0YzFhNTE3ODZmZmUxNGM4MzBiZTRlNGJjNzNjYmEzNmM5NzY3N2I0NDE2ODI3OWJlOTFlN2NkZjdjMTkzODZhZTIxODYyNzE5ZDEzYTNhMGZmZjA4MDNkNDYwOTYyZjJjZGE4MzcxNDg0ODczMjUyYzNkNzA1NGRiODE0M2UyYjA4MWEzODE2ZWQwODA0Y2E1MDk5YWU1ZmVjZTgzZDVjMmMzNzgzYjE5ODhiNGI0NmRjOTRlNTU1ODdhMTA3ZWExNTQ2YmYyMmQyOGEwOTdmNjUyYTQwNjZkYzI5NjUyNjkwNjlhZjJmNTE3NmJiOGNlOWNhNmQxMWY5Njc1N2YwMzIwNGY3NTY3MDM1ODdkMDBhZDQyNDc5NmM5MmZjN2FlYjZmNDk0NDMxOTk5ZWRhMzA5OTBlNGY1NzczNjMyZWQyNThmZTAyNzY2NzM1OTlkYTZmY2UzNWNkYWQ3NzI2YTBiYjAyNGNhZDk5NmI4OGUwY2I5ODg1NGNlYjVjMGI2ZWM3NDhkOWY5Y2U2YTZjZDQzNzg1OGJhY2I4MTQ2MThhMjcyZmYzYTQxNWM2ZTA3ZjNkYjA5ODg3NzdmZGVjODQ1YTk3YmY3ZDEwMmRkMCIKIAogUEtDUzcgUGFyc2UgRmFpbHVyZSBJbnZhbGlkIEFTTjE6IENoYW5nZSBsZW5ndGggZnJvbSA5IHRvIDggIzI0OS4wCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NgogcGtjczdfYXNuMV9mYWlsOiIzMDgyMDUwMDA2MDkyYTg2NDg4NmY3MGQwMTA3MDJhMDgyMDRmMTMwODIwNGVkMDIwMTAxMzEwZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGIwNjA5MmE4NjQ4ODZmNzBkMDEwNzAxYTA4MjAzNGQzMDgyMDM0OTMwODIwMjMxYTAwMzAyMDEwMjAyMTQ3YmRlZGRkMjQ0NGNkMWNkZmU1YzQxYTgxMDJjODliN2RmMmU2Y2JmMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMzAxZTE3MGQzMjMyMzEzMDMyMzgzMTM2MzEzMDM1MzY1YTE3MGQzMjMzMzEzMDMyMzgzMTM2MzEzMDM1MzY1YTMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTMwODIwMTIyMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDM4MjAxMGYwMDMwODIwMTBhMDI4MjAxMDEwMGM4YjZjZjY5ODk5Y2QxZjBlYmI0Y2E2NDVjMDVlNzBlMGQyZWZlZGRjYzYxZDA4OWNiZDUxNWEzOWEzNTc5YjkyMzQzYjYxZWM3NTAwNjBmYjRlZDM3ODc2MzMyNDAwZTQyNWYxZDM3NmM3ZTc1YzI5NzMzMTRlZGY0YmIzMGM4ZjhkZDAzYjlmY2ZmOTU1YTI0NWQ0OTEzN2FkNmU2MDA1NmNhYzE5NTUyYTg2NWQ1MjE4NzE4N2NjMDQyYzljNDllM2UzYTljMTdhNTM0YjQ1M2NkYWJjMGNiMTEzYjRmNjNmNWIzMTc0YjllZTk5MDJiMTkxMGQxMTQ5NmEyNzlhNzQzMjZhZGNmZWUxMGJmZDllN2ViYWZiYjM3N2JlOWI2Mzk1OTE2NWQxM2RkNTc1MTE3MWNhZGFkM2MxZDNhZGFjNjhiYzgwMTFkNjFiNTRjZjYwMTc4YmUzNjgzOWE4OWFjOTFhYjQxOWUzY2EzN2Q2YmE4ODFkMjU1MThjNGRiNjhiY2E2ZjdjODM2MDJmNjk5YTg2YjE3ZmIxZTc3M2JjYmU3NGJiOTNhNDliMjUxYWU4NjQyOGI1NzQwZTE4NjhiYjFkNmZhYjllMjg3MTJlOThlYzMxOWFkOGZjYTRkNzMwMTBjNGIwOWM0YjgwNDU4OTYxZTdjZjA4MzUzMDIwMzAxMDAwMWEzNTMzMDUxMzAxZDA2MDM1NTFkMGUwNDE2MDQxNDhhZWVlNTk0N2NjNjdjNWRkNTE1YTc2ZTJhN2VjZDMxZWU1MmZkYzgzMDFmMDYwMzU1MWQyMzA0MTgzMDE2ODAxNDhhZWVlNTk0N2NjNjdjNWRkNTE1YTc2ZTJhN2VjZDMxZWU1MmZkYzgzMDBmMDYwMzU1MWQxMzAxMDFmZjA0MDUzMDAzMDEwMWZmMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMDM4MjAxMDEwMDgyMWQ2Yjk4Y2Q0NTdkZWJkMmIwODFhY2EyN2ViZWNkNGY5M2FjYzgyODQ0M2IzOWVhYmZmYTlmYTRlOWU0NTQzYjQ2ZmNjMzFlMmI1YjQ4MTc3OTAzZGVhNjk2OWFjNGEyY2M2NTcwNjUwMzkwZjFiMDhkNDNhNGMyZjk3NWM3ZWQ4YmYzMzU2YzcyMTgzODAyMTI0NTFhOGYxMWRlNDY1NTNjYmNkNjViNDI1NGRkYjhmNjY4MzRlYjIxZGRhMmE4ZjMzYjU4MWUxNDg0NTU3YWNhMWI5NGVlODkzMWRkZjE2MDM3YjdhNzE3MTMyMWE5MTkzNmFmYzI3ZmZjZTM5NWRlNzVkNWY3MGNiOGI1YWVlMDVmZjUwNzA4OGQ2NWFmMWU0Mzk2NmNkNDJjYmU2ZjdmYWNmOGRhZTA1NWRkODIyMmIxNjk2NTIxNzIzZjgxMjQ1MTc4NTk1Yzk4NWFlOTE3ZmQ0YjM5OTg3NzNlMWE5N2I3YmQxMDA4NTQ0NmY0MjU5YmNjMDlhNDU0OTI5MjgyYzFiODliNzFlZDU4N2E3NzVlMGEzZDQ1MzYzNDFmNDVkYWU5NjllODA2Yzk2ZmVmYzcxMDY3Nzc2YzAyYmEyMjEyMmI5MTk5YjE0YzBjMjhjMDQ0ODc1MDkwNzBiOTdmM2RkMmQ2ZDk3MjczMzE4MjAxNzczMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDgwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwNWJlY2Q4NzE5NWMxZGVmZjkwYzI0YzkxMjY5YjU1YjNmMDY5YmMyMjVjMzI2YzMxNGMxYTUxNzg2ZmZlMTRjODMwYmU0ZTRiYzczY2JhMzZjOTc2NzdiNDQxNjgyNzliZTkxZTdjZGY3YzE5Mzg2YWUyMTg2MjcxOWQxM2EzYTBmZmYwODAzZDQ2MDk2MmYyY2RhODM3MTQ4NDg3MzI1MmMzZDcwNTRkYjgxNDNlMmIwODFhMzgxNmVkMDgwNGNhNTA5OWFlNWZlY2U4M2Q1YzJjMzc4M2IxOTg4YjRiNDZkYzk0ZTU1NTg3YTEwN2VhMTU0NmJmMjJkMjhhMDk3ZjY1MmE0MDY2ZGMyOTY1MjY5MDY5YWYyZjUxNzZiYjhjZTljYTZkMTFmOTY3NTdmMDMyMDRmNzU2NzAzNTg3ZDAwYWQ0MjQ3OTZjOTJmYzdhZWI2ZjQ5NDQzMTk5OWVkYTMwOTkwZTRmNTc3MzYzMmVkMjU4ZmUwMjc2NjczNTk5ZGE2ZmNlMzVjZGFkNzcyNmEwYmIwMjRjYWQ5OTZiODhlMGNiOTg4NTRjZWI1YzBiNmVjNzQ4ZDlmOWNlNmE2Y2Q0Mzc4NThiYWNiODE0NjE4YTI3MmZmM2E0MTVjNmUwN2YzZGIwOTg4Nzc3ZmRlYzg0NWE5N2JmN2QxMDJkZDAiCiAKIFBLQ1M3IFBhcnNlIEZhaWx1cmUgSW52YWxpZCBBU04xOiBDaGFuZ2UgdGFnIDA2IHRvIDAyICMyNTAuMAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHBrY3M3X2FzbjFfZmFpbDoiMzA4MjA1MDAwNjA5MmE4NjQ4ODZmNzBkMDEwNzAyYTA4MjA0ZjEzMDgyMDRlZDAyMDEwMTMxMGYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBiMDYwOTJhODY0ODg2ZjcwZDAxMDcwMWEwODIwMzRkMzA4MjAzNDkzMDgyMDIzMWEwMDMwMjAxMDIwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTMwMWUxNzBkMzIzMjMxMzAzMjM4MzEzNjMxMzAzNTM2NWExNzBkMzIzMzMxMzAzMjM4MzEzNjMxMzAzNTM2NWEzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEzMDgyMDEyMjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDAzODIwMTBmMDAzMDgyMDEwYTAyODIwMTAxMDBjOGI2Y2Y2OTg5OWNkMWYwZWJiNGNhNjQ1YzA1ZTcwZTBkMmVmZWRkY2M2MWQwODljYmQ1MTVhMzlhMzU3OWI5MjM0M2I2MWVjNzUwMDYwZmI0ZWQzNzg3NjMzMjQwMGU0MjVmMWQzNzZjN2U3NWMyOTczMzE0ZWRmNGJiMzBjOGY4ZGQwM2I5ZmNmZjk1NWEyNDVkNDkxMzdhZDZlNjAwNTZjYWMxOTU1MmE4NjVkNTIxODcxODdjYzA0MmM5YzQ5ZTNlM2E5YzE3YTUzNGI0NTNjZGFiYzBjYjExM2I0ZjYzZjViMzE3NGI5ZWU5OTAyYjE5MTBkMTE0OTZhMjc5YTc0MzI2YWRjZmVlMTBiZmQ5ZTdlYmFmYmIzNzdiZTliNjM5NTkxNjVkMTNkZDU3NTExNzFjYWRhZDNjMWQzYWRhYzY4YmM4MDExZDYxYjU0Y2Y2MDE3OGJlMzY4MzlhODlhYzkxYWI0MTllM2NhMzdkNmJhODgxZDI1NTE4YzRkYjY4YmNhNmY3YzgzNjAyZjY5OWE4NmIxN2ZiMWU3NzNiY2JlNzRiYjkzYTQ5YjI1MWFlODY0MjhiNTc0MGUxODY4YmIxZDZmYWI5ZTI4NzEyZTk4ZWMzMTlhZDhmY2E0ZDczMDEwYzRiMDljNGI4MDQ1ODk2MWU3Y2YwODM1MzAyMDMwMTAwMDFhMzUzMzA1MTMwMWQwNjAzNTUxZDBlMDQxNjA0MTQ4YWVlZTU5NDdjYzY3YzVkZDUxNWE3NmUyYTdlY2QzMWVlNTJmZGM4MzAxZjA2MDM1NTFkMjMwNDE4MzAxNjgwMTQ4YWVlZTU5NDdjYzY3YzVkZDUxNWE3NmUyYTdlY2QzMWVlNTJmZGM4MzAwZjA2MDM1NTFkMTMwMTAxZmYwNDA1MzAwMzAxMDFmZjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDAzODIwMTAxMDA4MjFkNmI5OGNkNDU3ZGViZDJiMDgxYWNhMjdlYmVjZDRmOTNhY2M4Mjg0NDNiMzllYWJmZmE5ZmE0ZTllNDU0M2I0NmZjYzMxZTJiNWI0ODE3NzkwM2RlYTY5NjlhYzRhMmNjNjU3MDY1MDM5MGYxYjA4ZDQzYTRjMmY5NzVjN2VkOGJmMzM1NmM3MjE4MzgwMjEyNDUxYThmMTFkZTQ2NTUzY2JjZDY1YjQyNTRkZGI4ZjY2ODM0ZWIyMWRkYTJhOGYzM2I1ODFlMTQ4NDU1N2FjYTFiOTRlZTg5MzFkZGYxNjAzN2I3YTcxNzEzMjFhOTE5MzZhZmMyN2ZmY2UzOTVkZTc1ZDVmNzBjYjhiNWFlZTA1ZmY1MDcwODhkNjVhZjFlNDM5NjZjZDQyY2JlNmY3ZmFjZjhkYWUwNTVkZDgyMjJiMTY5NjUyMTcyM2Y4MTI0NTE3ODU5NWM5ODVhZTkxN2ZkNGIzOTk4NzczZTFhOTdiN2JkMTAwODU0NDZmNDI1OWJjYzA5YTQ1NDkyOTI4MmMxYjg5YjcxZWQ1ODdhNzc1ZTBhM2Q0NTM2MzQxZjQ1ZGFlOTY5ZTgwNmM5NmZlZmM3MTA2Nzc3NmMwMmJhMjIxMjJiOTE5OWIxNGMwYzI4YzA0NDg3NTA5MDcwYjk3ZjNkZDJkNmQ5NzI3MzMxODIwMTc3MzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDIwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDViZWNkODcxOTVjMWRlZmY5MGMyNGM5MTI2OWI1NWIzZjA2OWJjMjI1YzMyNmMzMTRjMWE1MTc4NmZmZTE0YzgzMGJlNGU0YmM3M2NiYTM2Yzk3Njc3YjQ0MTY4Mjc5YmU5MWU3Y2RmN2MxOTM4NmFlMjE4NjI3MTlkMTNhM2EwZmZmMDgwM2Q0NjA5NjJmMmNkYTgzNzE0ODQ4NzMyNTJjM2Q3MDU0ZGI4MTQzZTJiMDgxYTM4MTZlZDA4MDRjYTUwOTlhZTVmZWNlODNkNWMyYzM3ODNiMTk4OGI0YjQ2ZGM5NGU1NTU4N2ExMDdlYTE1NDZiZjIyZDI4YTA5N2Y2NTJhNDA2NmRjMjk2NTI2OTA2OWFmMmY1MTc2YmI4Y2U5Y2E2ZDExZjk2NzU3ZjAzMjA0Zjc1NjcwMzU4N2QwMGFkNDI0Nzk2YzkyZmM3YWViNmY0OTQ0MzE5OTllZGEzMDk5MGU0ZjU3NzM2MzJlZDI1OGZlMDI3NjY3MzU5OWRhNmZjZTM1Y2RhZDc3MjZhMGJiMDI0Y2FkOTk2Yjg4ZTBjYjk4ODU0Y2ViNWMwYjZlYzc0OGQ5ZjljZTZhNmNkNDM3ODU4YmFjYjgxNDYxOGEyNzJmZjNhNDE1YzZlMDdmM2RiMDk4ODc3N2ZkZWM4NDVhOTdiZjdkMTAyZGQwIgogCiBQS0NTNyBQYXJzZSBGYWlsdXJlIEludmFsaWQgQVNOMTogQ2hhbmdlIGxlbmd0aCBmcm9tIDMgdG8gNCAjMjUxLjAKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBwa2NzN19hc24xX2ZhaWw6IjMwODIwNTAwMDYwOTJhODY0ODg2ZjcwZDAxMDcwMmEwODIwNGYxMzA4MjA0ZWQwMjAxMDEzMTBmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwYjA2MDkyYTg2NDg4NmY3MGQwMTA3MDFhMDgyMDM0ZDMwODIwMzQ5MzA4MjAyMzFhMDAzMDIwMTAyMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEzMDFlMTcwZDMyMzIzMTMwMzIzODMxMzYzMTMwMzUzNjVhMTcwZDMyMzMzMTMwMzIzODMxMzYzMTMwMzUzNjVhMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMzA4MjAxMjIzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwMzgyMDEwZjAwMzA4MjAxMGEwMjgyMDEwMTAwYzhiNmNmNjk4OTljZDFmMGViYjRjYTY0NWMwNWU3MGUwZDJlZmVkZGNjNjFkMDg5Y2JkNTE1YTM5YTM1NzliOTIzNDNiNjFlYzc1MDA2MGZiNGVkMzc4NzYzMzI0MDBlNDI1ZjFkMzc2YzdlNzVjMjk3MzMxNGVkZjRiYjMwYzhmOGRkMDNiOWZjZmY5NTVhMjQ1ZDQ5MTM3YWQ2ZTYwMDU2Y2FjMTk1NTJhODY1ZDUyMTg3MTg3Y2MwNDJjOWM0OWUzZTNhOWMxN2E1MzRiNDUzY2RhYmMwY2IxMTNiNGY2M2Y1YjMxNzRiOWVlOTkwMmIxOTEwZDExNDk2YTI3OWE3NDMyNmFkY2ZlZTEwYmZkOWU3ZWJhZmJiMzc3YmU5YjYzOTU5MTY1ZDEzZGQ1NzUxMTcxY2FkYWQzYzFkM2FkYWM2OGJjODAxMWQ2MWI1NGNmNjAxNzhiZTM2ODM5YTg5YWM5MWFiNDE5ZTNjYTM3ZDZiYTg4MWQyNTUxOGM0ZGI2OGJjYTZmN2M4MzYwMmY2OTlhODZiMTdmYjFlNzczYmNiZTc0YmI5M2E0OWIyNTFhZTg2NDI4YjU3NDBlMTg2OGJiMWQ2ZmFiOWUyODcxMmU5OGVjMzE5YWQ4ZmNhNGQ3MzAxMGM0YjA5YzRiODA0NTg5NjFlN2NmMDgzNTMwMjAzMDEwMDAxYTM1MzMwNTEzMDFkMDYwMzU1MWQwZTA0MTYwNDE0OGFlZWU1OTQ3Y2M2N2M1ZGQ1MTVhNzZlMmE3ZWNkMzFlZTUyZmRjODMwMWYwNjAzNTUxZDIzMDQxODMwMTY4MDE0OGFlZWU1OTQ3Y2M2N2M1ZGQ1MTVhNzZlMmE3ZWNkMzFlZTUyZmRjODMwMGYwNjAzNTUxZDEzMDEwMWZmMDQwNTMwMDMwMTAxZmYzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAwMzgyMDEwMTAwODIxZDZiOThjZDQ1N2RlYmQyYjA4MWFjYTI3ZWJlY2Q0ZjkzYWNjODI4NDQzYjM5ZWFiZmZhOWZhNGU5ZTQ1NDNiNDZmY2MzMWUyYjViNDgxNzc5MDNkZWE2OTY5YWM0YTJjYzY1NzA2NTAzOTBmMWIwOGQ0M2E0YzJmOTc1YzdlZDhiZjMzNTZjNzIxODM4MDIxMjQ1MWE4ZjExZGU0NjU1M2NiY2Q2NWI0MjU0ZGRiOGY2NjgzNGViMjFkZGEyYThmMzNiNTgxZTE0ODQ1NTdhY2ExYjk0ZWU4OTMxZGRmMTYwMzdiN2E3MTcxMzIxYTkxOTM2YWZjMjdmZmNlMzk1ZGU3NWQ1ZjcwY2I4YjVhZWUwNWZmNTA3MDg4ZDY1YWYxZTQzOTY2Y2Q0MmNiZTZmN2ZhY2Y4ZGFlMDU1ZGQ4MjIyYjE2OTY1MjE3MjNmODEyNDUxNzg1OTVjOTg1YWU5MTdmZDRiMzk5ODc3M2UxYTk3YjdiZDEwMDg1NDQ2ZjQyNTliY2MwOWE0NTQ5MjkyODJjMWI4OWI3MWVkNTg3YTc3NWUwYTNkNDUzNjM0MWY0NWRhZTk2OWU4MDZjOTZmZWZjNzEwNjc3NzZjMDJiYTIyMTIyYjkxOTliMTRjMGMyOGMwNDQ4NzUwOTA3MGI5N2YzZGQyZDZkOTcyNzMzMTgyMDE3NzMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDQ1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTAyMTQ3YmRlZGRkMjQ0NGNkMWNkZmU1YzQxYTgxMDJjODliN2RmMmU2Y2JmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDA1YmVjZDg3MTk1YzFkZWZmOTBjMjRjOTEyNjliNTViM2YwNjliYzIyNWMzMjZjMzE0YzFhNTE3ODZmZmUxNGM4MzBiZTRlNGJjNzNjYmEzNmM5NzY3N2I0NDE2ODI3OWJlOTFlN2NkZjdjMTkzODZhZTIxODYyNzE5ZDEzYTNhMGZmZjA4MDNkNDYwOTYyZjJjZGE4MzcxNDg0ODczMjUyYzNkNzA1NGRiODE0M2UyYjA4MWEzODE2ZWQwODA0Y2E1MDk5YWU1ZmVjZTgzZDVjMmMzNzgzYjE5ODhiNGI0NmRjOTRlNTU1ODdhMTA3ZWExNTQ2YmYyMmQyOGEwOTdmNjUyYTQwNjZkYzI5NjUyNjkwNjlhZjJmNTE3NmJiOGNlOWNhNmQxMWY5Njc1N2YwMzIwNGY3NTY3MDM1ODdkMDBhZDQyNDc5NmM5MmZjN2FlYjZmNDk0NDMxOTk5ZWRhMzA5OTBlNGY1NzczNjMyZWQyNThmZTAyNzY2NzM1OTlkYTZmY2UzNWNkYWQ3NzI2YTBiYjAyNGNhZDk5NmI4OGUwY2I5ODg1NGNlYjVjMGI2ZWM3NDhkOWY5Y2U2YTZjZDQzNzg1OGJhY2I4MTQ2MThhMjcyZmYzYTQxNWM2ZTA3ZjNkYjA5ODg3NzdmZGVjODQ1YTk3YmY3ZDEwMmRkMCIKIAogUEtDUzcgUGFyc2UgRmFpbHVyZSBJbnZhbGlkIEFTTjE6IENoYW5nZSBsZW5ndGggZnJvbSAzIHRvIDIgIzI1Mi4wCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NgogcGtjczdfYXNuMV9mYWlsOiIzMDgyMDUwMDA2MDkyYTg2NDg4NmY3MGQwMTA3MDJhMDgyMDRmMTMwODIwNGVkMDIwMTAxMzEwZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGIwNjA5MmE4NjQ4ODZmNzBkMDEwNzAxYTA4MjAzNGQzMDgyMDM0OTMwODIwMjMxYTAwMzAyMDEwMjAyMTQ3YmRlZGRkMjQ0NGNkMWNkZmU1YzQxYTgxMDJjODliN2RmMmU2Y2JmMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMzAxZTE3MGQzMjMyMzEzMDMyMzgzMTM2MzEzMDM1MzY1YTE3MGQzMjMzMzEzMDMyMzgzMTM2MzEzMDM1MzY1YTMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTMwODIwMTIyMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDM4MjAxMGYwMDMwODIwMTBhMDI4MjAxMDEwMGM4YjZjZjY5ODk5Y2QxZjBlYmI0Y2E2NDVjMDVlNzBlMGQyZWZlZGRjYzYxZDA4OWNiZDUxNWEzOWEzNTc5YjkyMzQzYjYxZWM3NTAwNjBmYjRlZDM3ODc2MzMyNDAwZTQyNWYxZDM3NmM3ZTc1YzI5NzMzMTRlZGY0YmIzMGM4ZjhkZDAzYjlmY2ZmOTU1YTI0NWQ0OTEzN2FkNmU2MDA1NmNhYzE5NTUyYTg2NWQ1MjE4NzE4N2NjMDQyYzljNDllM2UzYTljMTdhNTM0YjQ1M2NkYWJjMGNiMTEzYjRmNjNmNWIzMTc0YjllZTk5MDJiMTkxMGQxMTQ5NmEyNzlhNzQzMjZhZGNmZWUxMGJmZDllN2ViYWZiYjM3N2JlOWI2Mzk1OTE2NWQxM2RkNTc1MTE3MWNhZGFkM2MxZDNhZGFjNjhiYzgwMTFkNjFiNTRjZjYwMTc4YmUzNjgzOWE4OWFjOTFhYjQxOWUzY2EzN2Q2YmE4ODFkMjU1MThjNGRiNjhiY2E2ZjdjODM2MDJmNjk5YTg2YjE3ZmIxZTc3M2JjYmU3NGJiOTNhNDliMjUxYWU4NjQyOGI1NzQwZTE4NjhiYjFkNmZhYjllMjg3MTJlOThlYzMxOWFkOGZjYTRkNzMwMTBjNGIwOWM0YjgwNDU4OTYxZTdjZjA4MzUzMDIwMzAxMDAwMWEzNTMzMDUxMzAxZDA2MDM1NTFkMGUwNDE2MDQxNDhhZWVlNTk0N2NjNjdjNWRkNTE1YTc2ZTJhN2VjZDMxZWU1MmZkYzgzMDFmMDYwMzU1MWQyMzA0MTgzMDE2ODAxNDhhZWVlNTk0N2NjNjdjNWRkNTE1YTc2ZTJhN2VjZDMxZWU1MmZkYzgzMDBmMDYwMzU1MWQxMzAxMDFmZjA0MDUzMDAzMDEwMWZmMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMDM4MjAxMDEwMDgyMWQ2Yjk4Y2Q0NTdkZWJkMmIwODFhY2EyN2ViZWNkNGY5M2FjYzgyODQ0M2IzOWVhYmZmYTlmYTRlOWU0NTQzYjQ2ZmNjMzFlMmI1YjQ4MTc3OTAzZGVhNjk2OWFjNGEyY2M2NTcwNjUwMzkwZjFiMDhkNDNhNGMyZjk3NWM3ZWQ4YmYzMzU2YzcyMTgzODAyMTI0NTFhOGYxMWRlNDY1NTNjYmNkNjViNDI1NGRkYjhmNjY4MzRlYjIxZGRhMmE4ZjMzYjU4MWUxNDg0NTU3YWNhMWI5NGVlODkzMWRkZjE2MDM3YjdhNzE3MTMyMWE5MTkzNmFmYzI3ZmZjZTM5NWRlNzVkNWY3MGNiOGI1YWVlMDVmZjUwNzA4OGQ2NWFmMWU0Mzk2NmNkNDJjYmU2ZjdmYWNmOGRhZTA1NWRkODIyMmIxNjk2NTIxNzIzZjgxMjQ1MTc4NTk1Yzk4NWFlOTE3ZmQ0YjM5OTg3NzNlMWE5N2I3YmQxMDA4NTQ0NmY0MjU5YmNjMDlhNDU0OTI5MjgyYzFiODliNzFlZDU4N2E3NzVlMGEzZDQ1MzYzNDFmNDVkYWU5NjllODA2Yzk2ZmVmYzcxMDY3Nzc2YzAyYmEyMjEyMmI5MTk5YjE0YzBjMjhjMDQ0ODc1MDkwNzBiOTdmM2RkMmQ2ZDk3MjczMzE4MjAxNzczMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAyNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwNWJlY2Q4NzE5NWMxZGVmZjkwYzI0YzkxMjY5YjU1YjNmMDY5YmMyMjVjMzI2YzMxNGMxYTUxNzg2ZmZlMTRjODMwYmU0ZTRiYzczY2JhMzZjOTc2NzdiNDQxNjgyNzliZTkxZTdjZGY3YzE5Mzg2YWUyMTg2MjcxOWQxM2EzYTBmZmYwODAzZDQ2MDk2MmYyY2RhODM3MTQ4NDg3MzI1MmMzZDcwNTRkYjgxNDNlMmIwODFhMzgxNmVkMDgwNGNhNTA5OWFlNWZlY2U4M2Q1YzJjMzc4M2IxOTg4YjRiNDZkYzk0ZTU1NTg3YTEwN2VhMTU0NmJmMjJkMjhhMDk3ZjY1MmE0MDY2ZGMyOTY1MjY5MDY5YWYyZjUxNzZiYjhjZTljYTZkMTFmOTY3NTdmMDMyMDRmNzU2NzAzNTg3ZDAwYWQ0MjQ3OTZjOTJmYzdhZWI2ZjQ5NDQzMTk5OWVkYTMwOTkwZTRmNTc3MzYzMmVkMjU4ZmUwMjc2NjczNTk5ZGE2ZmNlMzVjZGFkNzcyNmEwYmIwMjRjYWQ5OTZiODhlMGNiOTg4NTRjZWI1YzBiNmVjNzQ4ZDlmOWNlNmE2Y2Q0Mzc4NThiYWNiODE0NjE4YTI3MmZmM2E0MTVjNmUwN2YzZGIwOTg4Nzc3ZmRlYzg0NWE5N2JmN2QxMDJkZDAiCiAKIFBLQ1M3IFBhcnNlIEZhaWx1cmUgSW52YWxpZCBBU04xOiBDaGFuZ2UgdGFnIDEzIHRvIDAyICMyNTMuMAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHBrY3M3X2FzbjFfZmFpbDoiMzA4MjA1MDAwNjA5MmE4NjQ4ODZmNzBkMDEwNzAyYTA4MjA0ZjEzMDgyMDRlZDAyMDEwMTMxMGYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBiMDYwOTJhODY0ODg2ZjcwZDAxMDcwMWEwODIwMzRkMzA4MjAzNDkzMDgyMDIzMWEwMDMwMjAxMDIwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTMwMWUxNzBkMzIzMjMxMzAzMjM4MzEzNjMxMzAzNTM2NWExNzBkMzIzMzMxMzAzMjM4MzEzNjMxMzAzNTM2NWEzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEzMDgyMDEyMjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDAzODIwMTBmMDAzMDgyMDEwYTAyODIwMTAxMDBjOGI2Y2Y2OTg5OWNkMWYwZWJiNGNhNjQ1YzA1ZTcwZTBkMmVmZWRkY2M2MWQwODljYmQ1MTVhMzlhMzU3OWI5MjM0M2I2MWVjNzUwMDYwZmI0ZWQzNzg3NjMzMjQwMGU0MjVmMWQzNzZjN2U3NWMyOTczMzE0ZWRmNGJiMzBjOGY4ZGQwM2I5ZmNmZjk1NWEyNDVkNDkxMzdhZDZlNjAwNTZjYWMxOTU1MmE4NjVkNTIxODcxODdjYzA0MmM5YzQ5ZTNlM2E5YzE3YTUzNGI0NTNjZGFiYzBjYjExM2I0ZjYzZjViMzE3NGI5ZWU5OTAyYjE5MTBkMTE0OTZhMjc5YTc0MzI2YWRjZmVlMTBiZmQ5ZTdlYmFmYmIzNzdiZTliNjM5NTkxNjVkMTNkZDU3NTExNzFjYWRhZDNjMWQzYWRhYzY4YmM4MDExZDYxYjU0Y2Y2MDE3OGJlMzY4MzlhODlhYzkxYWI0MTllM2NhMzdkNmJhODgxZDI1NTE4YzRkYjY4YmNhNmY3YzgzNjAyZjY5OWE4NmIxN2ZiMWU3NzNiY2JlNzRiYjkzYTQ5YjI1MWFlODY0MjhiNTc0MGUxODY4YmIxZDZmYWI5ZTI4NzEyZTk4ZWMzMTlhZDhmY2E0ZDczMDEwYzRiMDljNGI4MDQ1ODk2MWU3Y2YwODM1MzAyMDMwMTAwMDFhMzUzMzA1MTMwMWQwNjAzNTUxZDBlMDQxNjA0MTQ4YWVlZTU5NDdjYzY3YzVkZDUxNWE3NmUyYTdlY2QzMWVlNTJmZGM4MzAxZjA2MDM1NTFkMjMwNDE4MzAxNjgwMTQ4YWVlZTU5NDdjYzY3YzVkZDUxNWE3NmUyYTdlY2QzMWVlNTJmZGM4MzAwZjA2MDM1NTFkMTMwMTAxZmYwNDA1MzAwMzAxMDFmZjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDAzODIwMTAxMDA4MjFkNmI5OGNkNDU3ZGViZDJiMDgxYWNhMjdlYmVjZDRmOTNhY2M4Mjg0NDNiMzllYWJmZmE5ZmE0ZTllNDU0M2I0NmZjYzMxZTJiNWI0ODE3NzkwM2RlYTY5NjlhYzRhMmNjNjU3MDY1MDM5MGYxYjA4ZDQzYTRjMmY5NzVjN2VkOGJmMzM1NmM3MjE4MzgwMjEyNDUxYThmMTFkZTQ2NTUzY2JjZDY1YjQyNTRkZGI4ZjY2ODM0ZWIyMWRkYTJhOGYzM2I1ODFlMTQ4NDU1N2FjYTFiOTRlZTg5MzFkZGYxNjAzN2I3YTcxNzEzMjFhOTE5MzZhZmMyN2ZmY2UzOTVkZTc1ZDVmNzBjYjhiNWFlZTA1ZmY1MDcwODhkNjVhZjFlNDM5NjZjZDQyY2JlNmY3ZmFjZjhkYWUwNTVkZDgyMjJiMTY5NjUyMTcyM2Y4MTI0NTE3ODU5NWM5ODVhZTkxN2ZkNGIzOTk4NzczZTFhOTdiN2JkMTAwODU0NDZmNDI1OWJjYzA5YTQ1NDkyOTI4MmMxYjg5YjcxZWQ1ODdhNzc1ZTBhM2Q0NTM2MzQxZjQ1ZGFlOTY5ZTgwNmM5NmZlZmM3MTA2Nzc3NmMwMmJhMjIxMjJiOTE5OWIxNGMwYzI4YzA0NDg3NTA5MDcwYjk3ZjNkZDJkNmQ5NzI3MzMxODIwMTc3MzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjAyMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDViZWNkODcxOTVjMWRlZmY5MGMyNGM5MTI2OWI1NWIzZjA2OWJjMjI1YzMyNmMzMTRjMWE1MTc4NmZmZTE0YzgzMGJlNGU0YmM3M2NiYTM2Yzk3Njc3YjQ0MTY4Mjc5YmU5MWU3Y2RmN2MxOTM4NmFlMjE4NjI3MTlkMTNhM2EwZmZmMDgwM2Q0NjA5NjJmMmNkYTgzNzE0ODQ4NzMyNTJjM2Q3MDU0ZGI4MTQzZTJiMDgxYTM4MTZlZDA4MDRjYTUwOTlhZTVmZWNlODNkNWMyYzM3ODNiMTk4OGI0YjQ2ZGM5NGU1NTU4N2ExMDdlYTE1NDZiZjIyZDI4YTA5N2Y2NTJhNDA2NmRjMjk2NTI2OTA2OWFmMmY1MTc2YmI4Y2U5Y2E2ZDExZjk2NzU3ZjAzMjA0Zjc1NjcwMzU4N2QwMGFkNDI0Nzk2YzkyZmM3YWViNmY0OTQ0MzE5OTllZGEzMDk5MGU0ZjU3NzM2MzJlZDI1OGZlMDI3NjY3MzU5OWRhNmZjZTM1Y2RhZDc3MjZhMGJiMDI0Y2FkOTk2Yjg4ZTBjYjk4ODU0Y2ViNWMwYjZlYzc0OGQ5ZjljZTZhNmNkNDM3ODU4YmFjYjgxNDYxOGEyNzJmZjNhNDE1YzZlMDdmM2RiMDk4ODc3N2ZkZWM4NDVhOTdiZjdkMTAyZGQwIgogCiBQS0NTNyBQYXJzZSBGYWlsdXJlIEludmFsaWQgQVNOMTogQ2hhbmdlIGxlbmd0aCBmcm9tIDIgdG8gMyAjMjU0LjAKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBwa2NzN19hc24xX2ZhaWw6IjMwODIwNTAwMDYwOTJhODY0ODg2ZjcwZDAxMDcwMmEwODIwNGYxMzA4MjA0ZWQwMjAxMDEzMTBmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwYjA2MDkyYTg2NDg4NmY3MGQwMTA3MDFhMDgyMDM0ZDMwODIwMzQ5MzA4MjAyMzFhMDAzMDIwMTAyMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEzMDFlMTcwZDMyMzIzMTMwMzIzODMxMzYzMTMwMzUzNjVhMTcwZDMyMzMzMTMwMzIzODMxMzYzMTMwMzUzNjVhMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMzA4MjAxMjIzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwMzgyMDEwZjAwMzA4MjAxMGEwMjgyMDEwMTAwYzhiNmNmNjk4OTljZDFmMGViYjRjYTY0NWMwNWU3MGUwZDJlZmVkZGNjNjFkMDg5Y2JkNTE1YTM5YTM1NzliOTIzNDNiNjFlYzc1MDA2MGZiNGVkMzc4NzYzMzI0MDBlNDI1ZjFkMzc2YzdlNzVjMjk3MzMxNGVkZjRiYjMwYzhmOGRkMDNiOWZjZmY5NTVhMjQ1ZDQ5MTM3YWQ2ZTYwMDU2Y2FjMTk1NTJhODY1ZDUyMTg3MTg3Y2MwNDJjOWM0OWUzZTNhOWMxN2E1MzRiNDUzY2RhYmMwY2IxMTNiNGY2M2Y1YjMxNzRiOWVlOTkwMmIxOTEwZDExNDk2YTI3OWE3NDMyNmFkY2ZlZTEwYmZkOWU3ZWJhZmJiMzc3YmU5YjYzOTU5MTY1ZDEzZGQ1NzUxMTcxY2FkYWQzYzFkM2FkYWM2OGJjODAxMWQ2MWI1NGNmNjAxNzhiZTM2ODM5YTg5YWM5MWFiNDE5ZTNjYTM3ZDZiYTg4MWQyNTUxOGM0ZGI2OGJjYTZmN2M4MzYwMmY2OTlhODZiMTdmYjFlNzczYmNiZTc0YmI5M2E0OWIyNTFhZTg2NDI4YjU3NDBlMTg2OGJiMWQ2ZmFiOWUyODcxMmU5OGVjMzE5YWQ4ZmNhNGQ3MzAxMGM0YjA5YzRiODA0NTg5NjFlN2NmMDgzNTMwMjAzMDEwMDAxYTM1MzMwNTEzMDFkMDYwMzU1MWQwZTA0MTYwNDE0OGFlZWU1OTQ3Y2M2N2M1ZGQ1MTVhNzZlMmE3ZWNkMzFlZTUyZmRjODMwMWYwNjAzNTUxZDIzMDQxODMwMTY4MDE0OGFlZWU1OTQ3Y2M2N2M1ZGQ1MTVhNzZlMmE3ZWNkMzFlZTUyZmRjODMwMGYwNjAzNTUxZDEzMDEwMWZmMDQwNTMwMDMwMTAxZmYzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAwMzgyMDEwMTAwODIxZDZiOThjZDQ1N2RlYmQyYjA4MWFjYTI3ZWJlY2Q0ZjkzYWNjODI4NDQzYjM5ZWFiZmZhOWZhNGU5ZTQ1NDNiNDZmY2MzMWUyYjViNDgxNzc5MDNkZWE2OTY5YWM0YTJjYzY1NzA2NTAzOTBmMWIwOGQ0M2E0YzJmOTc1YzdlZDhiZjMzNTZjNzIxODM4MDIxMjQ1MWE4ZjExZGU0NjU1M2NiY2Q2NWI0MjU0ZGRiOGY2NjgzNGViMjFkZGEyYThmMzNiNTgxZTE0ODQ1NTdhY2ExYjk0ZWU4OTMxZGRmMTYwMzdiN2E3MTcxMzIxYTkxOTM2YWZjMjdmZmNlMzk1ZGU3NWQ1ZjcwY2I4YjVhZWUwNWZmNTA3MDg4ZDY1YWYxZTQzOTY2Y2Q0MmNiZTZmN2ZhY2Y4ZGFlMDU1ZGQ4MjIyYjE2OTY1MjE3MjNmODEyNDUxNzg1OTVjOTg1YWU5MTdmZDRiMzk5ODc3M2UxYTk3YjdiZDEwMDg1NDQ2ZjQyNTliY2MwOWE0NTQ5MjkyODJjMWI4OWI3MWVkNTg3YTc3NWUwYTNkNDUzNjM0MWY0NWRhZTk2OWU4MDZjOTZmZWZjNzEwNjc3NzZjMDJiYTIyMTIyYjkxOTliMTRjMGMyOGMwNDQ4NzUwOTA3MGI5N2YzZGQyZDZkOTcyNzMzMTgyMDE3NzMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAzNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTAyMTQ3YmRlZGRkMjQ0NGNkMWNkZmU1YzQxYTgxMDJjODliN2RmMmU2Y2JmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDA1YmVjZDg3MTk1YzFkZWZmOTBjMjRjOTEyNjliNTViM2YwNjliYzIyNWMzMjZjMzE0YzFhNTE3ODZmZmUxNGM4MzBiZTRlNGJjNzNjYmEzNmM5NzY3N2I0NDE2ODI3OWJlOTFlN2NkZjdjMTkzODZhZTIxODYyNzE5ZDEzYTNhMGZmZjA4MDNkNDYwOTYyZjJjZGE4MzcxNDg0ODczMjUyYzNkNzA1NGRiODE0M2UyYjA4MWEzODE2ZWQwODA0Y2E1MDk5YWU1ZmVjZTgzZDVjMmMzNzgzYjE5ODhiNGI0NmRjOTRlNTU1ODdhMTA3ZWExNTQ2YmYyMmQyOGEwOTdmNjUyYTQwNjZkYzI5NjUyNjkwNjlhZjJmNTE3NmJiOGNlOWNhNmQxMWY5Njc1N2YwMzIwNGY3NTY3MDM1ODdkMDBhZDQyNDc5NmM5MmZjN2FlYjZmNDk0NDMxOTk5ZWRhMzA5OTBlNGY1NzczNjMyZWQyNThmZTAyNzY2NzM1OTlkYTZmY2UzNWNkYWQ3NzI2YTBiYjAyNGNhZDk5NmI4OGUwY2I5ODg1NGNlYjVjMGI2ZWM3NDhkOWY5Y2U2YTZjZDQzNzg1OGJhY2I4MTQ2MThhMjcyZmYzYTQxNWM2ZTA3ZjNkYjA5ODg3NzdmZGVjODQ1YTk3YmY3ZDEwMmRkMCIKIAogUEtDUzcgUGFyc2UgRmFpbHVyZSBJbnZhbGlkIEFTTjE6IENoYW5nZSBsZW5ndGggZnJvbSAyIHRvIDEgIzI1NS4wCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NgogcGtjczdfYXNuMV9mYWlsOiIzMDgyMDUwMDA2MDkyYTg2NDg4NmY3MGQwMTA3MDJhMDgyMDRmMTMwODIwNGVkMDIwMTAxMzEwZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGIwNjA5MmE4NjQ4ODZmNzBkMDEwNzAxYTA4MjAzNGQzMDgyMDM0OTMwODIwMjMxYTAwMzAyMDEwMjAyMTQ3YmRlZGRkMjQ0NGNkMWNkZmU1YzQxYTgxMDJjODliN2RmMmU2Y2JmMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMzAxZTE3MGQzMjMyMzEzMDMyMzgzMTM2MzEzMDM1MzY1YTE3MGQzMjMzMzEzMDMyMzgzMTM2MzEzMDM1MzY1YTMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTMwODIwMTIyMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDM4MjAxMGYwMDMwODIwMTBhMDI4MjAxMDEwMGM4YjZjZjY5ODk5Y2QxZjBlYmI0Y2E2NDVjMDVlNzBlMGQyZWZlZGRjYzYxZDA4OWNiZDUxNWEzOWEzNTc5YjkyMzQzYjYxZWM3NTAwNjBmYjRlZDM3ODc2MzMyNDAwZTQyNWYxZDM3NmM3ZTc1YzI5NzMzMTRlZGY0YmIzMGM4ZjhkZDAzYjlmY2ZmOTU1YTI0NWQ0OTEzN2FkNmU2MDA1NmNhYzE5NTUyYTg2NWQ1MjE4NzE4N2NjMDQyYzljNDllM2UzYTljMTdhNTM0YjQ1M2NkYWJjMGNiMTEzYjRmNjNmNWIzMTc0YjllZTk5MDJiMTkxMGQxMTQ5NmEyNzlhNzQzMjZhZGNmZWUxMGJmZDllN2ViYWZiYjM3N2JlOWI2Mzk1OTE2NWQxM2RkNTc1MTE3MWNhZGFkM2MxZDNhZGFjNjhiYzgwMTFkNjFiNTRjZjYwMTc4YmUzNjgzOWE4OWFjOTFhYjQxOWUzY2EzN2Q2YmE4ODFkMjU1MThjNGRiNjhiY2E2ZjdjODM2MDJmNjk5YTg2YjE3ZmIxZTc3M2JjYmU3NGJiOTNhNDliMjUxYWU4NjQyOGI1NzQwZTE4NjhiYjFkNmZhYjllMjg3MTJlOThlYzMxOWFkOGZjYTRkNzMwMTBjNGIwOWM0YjgwNDU4OTYxZTdjZjA4MzUzMDIwMzAxMDAwMWEzNTMzMDUxMzAxZDA2MDM1NTFkMGUwNDE2MDQxNDhhZWVlNTk0N2NjNjdjNWRkNTE1YTc2ZTJhN2VjZDMxZWU1MmZkYzgzMDFmMDYwMzU1MWQyMzA0MTgzMDE2ODAxNDhhZWVlNTk0N2NjNjdjNWRkNTE1YTc2ZTJhN2VjZDMxZWU1MmZkYzgzMDBmMDYwMzU1MWQxMzAxMDFmZjA0MDUzMDAzMDEwMWZmMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMDM4MjAxMDEwMDgyMWQ2Yjk4Y2Q0NTdkZWJkMmIwODFhY2EyN2ViZWNkNGY5M2FjYzgyODQ0M2IzOWVhYmZmYTlmYTRlOWU0NTQzYjQ2ZmNjMzFlMmI1YjQ4MTc3OTAzZGVhNjk2OWFjNGEyY2M2NTcwNjUwMzkwZjFiMDhkNDNhNGMyZjk3NWM3ZWQ4YmYzMzU2YzcyMTgzODAyMTI0NTFhOGYxMWRlNDY1NTNjYmNkNjViNDI1NGRkYjhmNjY4MzRlYjIxZGRhMmE4ZjMzYjU4MWUxNDg0NTU3YWNhMWI5NGVlODkzMWRkZjE2MDM3YjdhNzE3MTMyMWE5MTkzNmFmYzI3ZmZjZTM5NWRlNzVkNWY3MGNiOGI1YWVlMDVmZjUwNzA4OGQ2NWFmMWU0Mzk2NmNkNDJjYmU2ZjdmYWNmOGRhZTA1NWRkODIyMmIxNjk2NTIxNzIzZjgxMjQ1MTc4NTk1Yzk4NWFlOTE3ZmQ0YjM5OTg3NzNlMWE5N2I3YmQxMDA4NTQ0NmY0MjU5YmNjMDlhNDU0OTI5MjgyYzFiODliNzFlZDU4N2E3NzVlMGEzZDQ1MzYzNDFmNDVkYWU5NjllODA2Yzk2ZmVmYzcxMDY3Nzc2YzAyYmEyMjEyMmI5MTk5YjE0YzBjMjhjMDQ0ODc1MDkwNzBiOTdmM2RkMmQ2ZDk3MjczMzE4MjAxNzczMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMTRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwNWJlY2Q4NzE5NWMxZGVmZjkwYzI0YzkxMjY5YjU1YjNmMDY5YmMyMjVjMzI2YzMxNGMxYTUxNzg2ZmZlMTRjODMwYmU0ZTRiYzczY2JhMzZjOTc2NzdiNDQxNjgyNzliZTkxZTdjZGY3YzE5Mzg2YWUyMTg2MjcxOWQxM2EzYTBmZmYwODAzZDQ2MDk2MmYyY2RhODM3MTQ4NDg3MzI1MmMzZDcwNTRkYjgxNDNlMmIwODFhMzgxNmVkMDgwNGNhNTA5OWFlNWZlY2U4M2Q1YzJjMzc4M2IxOTg4YjRiNDZkYzk0ZTU1NTg3YTEwN2VhMTU0NmJmMjJkMjhhMDk3ZjY1MmE0MDY2ZGMyOTY1MjY5MDY5YWYyZjUxNzZiYjhjZTljYTZkMTFmOTY3NTdmMDMyMDRmNzU2NzAzNTg3ZDAwYWQ0MjQ3OTZjOTJmYzdhZWI2ZjQ5NDQzMTk5OWVkYTMwOTkwZTRmNTc3MzYzMmVkMjU4ZmUwMjc2NjczNTk5ZGE2ZmNlMzVjZGFkNzcyNmEwYmIwMjRjYWQ5OTZiODhlMGNiOTg4NTRjZWI1YzBiNmVjNzQ4ZDlmOWNlNmE2Y2Q0Mzc4NThiYWNiODE0NjE4YTI3MmZmM2E0MTVjNmUwN2YzZGIwOTg4Nzc3ZmRlYzg0NWE5N2JmN2QxMDJkZDAiCiAKIFBLQ1M3IFBhcnNlIEZhaWx1cmUgSW52YWxpZCBBU04xOiBDaGFuZ2UgdGFnIDMxIHRvIDAyICMyNTYuMAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHBrY3M3X2FzbjFfZmFpbDoiMzA4MjA1MDAwNjA5MmE4NjQ4ODZmNzBkMDEwNzAyYTA4MjA0ZjEzMDgyMDRlZDAyMDEwMTMxMGYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBiMDYwOTJhODY0ODg2ZjcwZDAxMDcwMWEwODIwMzRkMzA4MjAzNDkzMDgyMDIzMWEwMDMwMjAxMDIwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTMwMWUxNzBkMzIzMjMxMzAzMjM4MzEzNjMxMzAzNTM2NWExNzBkMzIzMzMxMzAzMjM4MzEzNjMxMzAzNTM2NWEzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEzMDgyMDEyMjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDAzODIwMTBmMDAzMDgyMDEwYTAyODIwMTAxMDBjOGI2Y2Y2OTg5OWNkMWYwZWJiNGNhNjQ1YzA1ZTcwZTBkMmVmZWRkY2M2MWQwODljYmQ1MTVhMzlhMzU3OWI5MjM0M2I2MWVjNzUwMDYwZmI0ZWQzNzg3NjMzMjQwMGU0MjVmMWQzNzZjN2U3NWMyOTczMzE0ZWRmNGJiMzBjOGY4ZGQwM2I5ZmNmZjk1NWEyNDVkNDkxMzdhZDZlNjAwNTZjYWMxOTU1MmE4NjVkNTIxODcxODdjYzA0MmM5YzQ5ZTNlM2E5YzE3YTUzNGI0NTNjZGFiYzBjYjExM2I0ZjYzZjViMzE3NGI5ZWU5OTAyYjE5MTBkMTE0OTZhMjc5YTc0MzI2YWRjZmVlMTBiZmQ5ZTdlYmFmYmIzNzdiZTliNjM5NTkxNjVkMTNkZDU3NTExNzFjYWRhZDNjMWQzYWRhYzY4YmM4MDExZDYxYjU0Y2Y2MDE3OGJlMzY4MzlhODlhYzkxYWI0MTllM2NhMzdkNmJhODgxZDI1NTE4YzRkYjY4YmNhNmY3YzgzNjAyZjY5OWE4NmIxN2ZiMWU3NzNiY2JlNzRiYjkzYTQ5YjI1MWFlODY0MjhiNTc0MGUxODY4YmIxZDZmYWI5ZTI4NzEyZTk4ZWMzMTlhZDhmY2E0ZDczMDEwYzRiMDljNGI4MDQ1ODk2MWU3Y2YwODM1MzAyMDMwMTAwMDFhMzUzMzA1MTMwMWQwNjAzNTUxZDBlMDQxNjA0MTQ4YWVlZTU5NDdjYzY3YzVkZDUxNWE3NmUyYTdlY2QzMWVlNTJmZGM4MzAxZjA2MDM1NTFkMjMwNDE4MzAxNjgwMTQ4YWVlZTU5NDdjYzY3YzVkZDUxNWE3NmUyYTdlY2QzMWVlNTJmZGM4MzAwZjA2MDM1NTFkMTMwMTAxZmYwNDA1MzAwMzAxMDFmZjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDAzODIwMTAxMDA4MjFkNmI5OGNkNDU3ZGViZDJiMDgxYWNhMjdlYmVjZDRmOTNhY2M4Mjg0NDNiMzllYWJmZmE5ZmE0ZTllNDU0M2I0NmZjYzMxZTJiNWI0ODE3NzkwM2RlYTY5NjlhYzRhMmNjNjU3MDY1MDM5MGYxYjA4ZDQzYTRjMmY5NzVjN2VkOGJmMzM1NmM3MjE4MzgwMjEyNDUxYThmMTFkZTQ2NTUzY2JjZDY1YjQyNTRkZGI4ZjY2ODM0ZWIyMWRkYTJhOGYzM2I1ODFlMTQ4NDU1N2FjYTFiOTRlZTg5MzFkZGYxNjAzN2I3YTcxNzEzMjFhOTE5MzZhZmMyN2ZmY2UzOTVkZTc1ZDVmNzBjYjhiNWFlZTA1ZmY1MDcwODhkNjVhZjFlNDM5NjZjZDQyY2JlNmY3ZmFjZjhkYWUwNTVkZDgyMjJiMTY5NjUyMTcyM2Y4MTI0NTE3ODU5NWM5ODVhZTkxN2ZkNGIzOTk4NzczZTFhOTdiN2JkMTAwODU0NDZmNDI1OWJjYzA5YTQ1NDkyOTI4MmMxYjg5YjcxZWQ1ODdhNzc1ZTBhM2Q0NTM2MzQxZjQ1ZGFlOTY5ZTgwNmM5NmZlZmM3MTA2Nzc3NmMwMmJhMjIxMjJiOTE5OWIxNGMwYzI4YzA0NDg3NTA5MDcwYjk3ZjNkZDJkNmQ5NzI3MzMxODIwMTc3MzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMDIwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDViZWNkODcxOTVjMWRlZmY5MGMyNGM5MTI2OWI1NWIzZjA2OWJjMjI1YzMyNmMzMTRjMWE1MTc4NmZmZTE0YzgzMGJlNGU0YmM3M2NiYTM2Yzk3Njc3YjQ0MTY4Mjc5YmU5MWU3Y2RmN2MxOTM4NmFlMjE4NjI3MTlkMTNhM2EwZmZmMDgwM2Q0NjA5NjJmMmNkYTgzNzE0ODQ4NzMyNTJjM2Q3MDU0ZGI4MTQzZTJiMDgxYTM4MTZlZDA4MDRjYTUwOTlhZTVmZWNlODNkNWMyYzM3ODNiMTk4OGI0YjQ2ZGM5NGU1NTU4N2ExMDdlYTE1NDZiZjIyZDI4YTA5N2Y2NTJhNDA2NmRjMjk2NTI2OTA2OWFmMmY1MTc2YmI4Y2U5Y2E2ZDExZjk2NzU3ZjAzMjA0Zjc1NjcwMzU4N2QwMGFkNDI0Nzk2YzkyZmM3YWViNmY0OTQ0MzE5OTllZGEzMDk5MGU0ZjU3NzM2MzJlZDI1OGZlMDI3NjY3MzU5OWRhNmZjZTM1Y2RhZDc3MjZhMGJiMDI0Y2FkOTk2Yjg4ZTBjYjk4ODU0Y2ViNWMwYjZlYzc0OGQ5ZjljZTZhNmNkNDM3ODU4YmFjYjgxNDYxOGEyNzJmZjNhNDE1YzZlMDdmM2RiMDk4ODc3N2ZkZWM4NDVhOTdiZjdkMTAyZGQwIgogCiBQS0NTNyBQYXJzZSBGYWlsdXJlIEludmFsaWQgQVNOMTogQ2hhbmdlIGxlbmd0aCBmcm9tIDE0IHRvIDE1ICMyNTcuMAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHBrY3M3X2FzbjFfZmFpbDoiMzA4MjA1MDAwNjA5MmE4NjQ4ODZmNzBkMDEwNzAyYTA4MjA0ZjEzMDgyMDRlZDAyMDEwMTMxMGYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBiMDYwOTJhODY0ODg2ZjcwZDAxMDcwMWEwODIwMzRkMzA4MjAzNDkzMDgyMDIzMWEwMDMwMjAxMDIwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTMwMWUxNzBkMzIzMjMxMzAzMjM4MzEzNjMxMzAzNTM2NWExNzBkMzIzMzMxMzAzMjM4MzEzNjMxMzAzNTM2NWEzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEzMDgyMDEyMjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDAzODIwMTBmMDAzMDgyMDEwYTAyODIwMTAxMDBjOGI2Y2Y2OTg5OWNkMWYwZWJiNGNhNjQ1YzA1ZTcwZTBkMmVmZWRkY2M2MWQwODljYmQ1MTVhMzlhMzU3OWI5MjM0M2I2MWVjNzUwMDYwZmI0ZWQzNzg3NjMzMjQwMGU0MjVmMWQzNzZjN2U3NWMyOTczMzE0ZWRmNGJiMzBjOGY4ZGQwM2I5ZmNmZjk1NWEyNDVkNDkxMzdhZDZlNjAwNTZjYWMxOTU1MmE4NjVkNTIxODcxODdjYzA0MmM5YzQ5ZTNlM2E5YzE3YTUzNGI0NTNjZGFiYzBjYjExM2I0ZjYzZjViMzE3NGI5ZWU5OTAyYjE5MTBkMTE0OTZhMjc5YTc0MzI2YWRjZmVlMTBiZmQ5ZTdlYmFmYmIzNzdiZTliNjM5NTkxNjVkMTNkZDU3NTExNzFjYWRhZDNjMWQzYWRhYzY4YmM4MDExZDYxYjU0Y2Y2MDE3OGJlMzY4MzlhODlhYzkxYWI0MTllM2NhMzdkNmJhODgxZDI1NTE4YzRkYjY4YmNhNmY3YzgzNjAyZjY5OWE4NmIxN2ZiMWU3NzNiY2JlNzRiYjkzYTQ5YjI1MWFlODY0MjhiNTc0MGUxODY4YmIxZDZmYWI5ZTI4NzEyZTk4ZWMzMTlhZDhmY2E0ZDczMDEwYzRiMDljNGI4MDQ1ODk2MWU3Y2YwODM1MzAyMDMwMTAwMDFhMzUzMzA1MTMwMWQwNjAzNTUxZDBlMDQxNjA0MTQ4YWVlZTU5NDdjYzY3YzVkZDUxNWE3NmUyYTdlY2QzMWVlNTJmZGM4MzAxZjA2MDM1NTFkMjMwNDE4MzAxNjgwMTQ4YWVlZTU5NDdjYzY3YzVkZDUxNWE3NmUyYTdlY2QzMWVlNTJmZGM4MzAwZjA2MDM1NTFkMTMwMTAxZmYwNDA1MzAwMzAxMDFmZjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDAzODIwMTAxMDA4MjFkNmI5OGNkNDU3ZGViZDJiMDgxYWNhMjdlYmVjZDRmOTNhY2M4Mjg0NDNiMzllYWJmZmE5ZmE0ZTllNDU0M2I0NmZjYzMxZTJiNWI0ODE3NzkwM2RlYTY5NjlhYzRhMmNjNjU3MDY1MDM5MGYxYjA4ZDQzYTRjMmY5NzVjN2VkOGJmMzM1NmM3MjE4MzgwMjEyNDUxYThmMTFkZTQ2NTUzY2JjZDY1YjQyNTRkZGI4ZjY2ODM0ZWIyMWRkYTJhOGYzM2I1ODFlMTQ4NDU1N2FjYTFiOTRlZTg5MzFkZGYxNjAzN2I3YTcxNzEzMjFhOTE5MzZhZmMyN2ZmY2UzOTVkZTc1ZDVmNzBjYjhiNWFlZTA1ZmY1MDcwODhkNjVhZjFlNDM5NjZjZDQyY2JlNmY3ZmFjZjhkYWUwNTVkZDgyMjJiMTY5NjUyMTcyM2Y4MTI0NTE3ODU5NWM5ODVhZTkxN2ZkNGIzOTk4NzczZTFhOTdiN2JkMTAwODU0NDZmNDI1OWJjYzA5YTQ1NDkyOTI4MmMxYjg5YjcxZWQ1ODdhNzc1ZTBhM2Q0NTM2MzQxZjQ1ZGFlOTY5ZTgwNmM5NmZlZmM3MTA2Nzc3NmMwMmJhMjIxMjJiOTE5OWIxNGMwYzI4YzA0NDg3NTA5MDcwYjk3ZjNkZDJkNmQ5NzI3MzMxODIwMTc3MzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZjMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDViZWNkODcxOTVjMWRlZmY5MGMyNGM5MTI2OWI1NWIzZjA2OWJjMjI1YzMyNmMzMTRjMWE1MTc4NmZmZTE0YzgzMGJlNGU0YmM3M2NiYTM2Yzk3Njc3YjQ0MTY4Mjc5YmU5MWU3Y2RmN2MxOTM4NmFlMjE4NjI3MTlkMTNhM2EwZmZmMDgwM2Q0NjA5NjJmMmNkYTgzNzE0ODQ4NzMyNTJjM2Q3MDU0ZGI4MTQzZTJiMDgxYTM4MTZlZDA4MDRjYTUwOTlhZTVmZWNlODNkNWMyYzM3ODNiMTk4OGI0YjQ2ZGM5NGU1NTU4N2ExMDdlYTE1NDZiZjIyZDI4YTA5N2Y2NTJhNDA2NmRjMjk2NTI2OTA2OWFmMmY1MTc2YmI4Y2U5Y2E2ZDExZjk2NzU3ZjAzMjA0Zjc1NjcwMzU4N2QwMGFkNDI0Nzk2YzkyZmM3YWViNmY0OTQ0MzE5OTllZGEzMDk5MGU0ZjU3NzM2MzJlZDI1OGZlMDI3NjY3MzU5OWRhNmZjZTM1Y2RhZDc3MjZhMGJiMDI0Y2FkOTk2Yjg4ZTBjYjk4ODU0Y2ViNWMwYjZlYzc0OGQ5ZjljZTZhNmNkNDM3ODU4YmFjYjgxNDYxOGEyNzJmZjNhNDE1YzZlMDdmM2RiMDk4ODc3N2ZkZWM4NDVhOTdiZjdkMTAyZGQwIgogCiBQS0NTNyBQYXJzZSBGYWlsdXJlIEludmFsaWQgQVNOMTogQ2hhbmdlIGNvbnRlbnRzIG9mIHRhZyAzMSB0byBjb250YWluIG9uZSB1bmFjY291bnRlZCBleHRyYSBieXRlICMyNTguMAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHBrY3M3X2FzbjFfZmFpbDoiMzA4MjA1MDAwNjA5MmE4NjQ4ODZmNzBkMDEwNzAyYTA4MjA0ZjEzMDgyMDRlZDAyMDEwMTMxMGYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBiMDYwOTJhODY0ODg2ZjcwZDAxMDcwMWEwODIwMzRkMzA4MjAzNDkzMDgyMDIzMWEwMDMwMjAxMDIwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTMwMWUxNzBkMzIzMjMxMzAzMjM4MzEzNjMxMzAzNTM2NWExNzBkMzIzMzMxMzAzMjM4MzEzNjMxMzAzNTM2NWEzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEzMDgyMDEyMjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDAzODIwMTBmMDAzMDgyMDEwYTAyODIwMTAxMDBjOGI2Y2Y2OTg5OWNkMWYwZWJiNGNhNjQ1YzA1ZTcwZTBkMmVmZWRkY2M2MWQwODljYmQ1MTVhMzlhMzU3OWI5MjM0M2I2MWVjNzUwMDYwZmI0ZWQzNzg3NjMzMjQwMGU0MjVmMWQzNzZjN2U3NWMyOTczMzE0ZWRmNGJiMzBjOGY4ZGQwM2I5ZmNmZjk1NWEyNDVkNDkxMzdhZDZlNjAwNTZjYWMxOTU1MmE4NjVkNTIxODcxODdjYzA0MmM5YzQ5ZTNlM2E5YzE3YTUzNGI0NTNjZGFiYzBjYjExM2I0ZjYzZjViMzE3NGI5ZWU5OTAyYjE5MTBkMTE0OTZhMjc5YTc0MzI2YWRjZmVlMTBiZmQ5ZTdlYmFmYmIzNzdiZTliNjM5NTkxNjVkMTNkZDU3NTExNzFjYWRhZDNjMWQzYWRhYzY4YmM4MDExZDYxYjU0Y2Y2MDE3OGJlMzY4MzlhODlhYzkxYWI0MTllM2NhMzdkNmJhODgxZDI1NTE4YzRkYjY4YmNhNmY3YzgzNjAyZjY5OWE4NmIxN2ZiMWU3NzNiY2JlNzRiYjkzYTQ5YjI1MWFlODY0MjhiNTc0MGUxODY4YmIxZDZmYWI5ZTI4NzEyZTk4ZWMzMTlhZDhmY2E0ZDczMDEwYzRiMDljNGI4MDQ1ODk2MWU3Y2YwODM1MzAyMDMwMTAwMDFhMzUzMzA1MTMwMWQwNjAzNTUxZDBlMDQxNjA0MTQ4YWVlZTU5NDdjYzY3YzVkZDUxNWE3NmUyYTdlY2QzMWVlNTJmZGM4MzAxZjA2MDM1NTFkMjMwNDE4MzAxNjgwMTQ4YWVlZTU5NDdjYzY3YzVkZDUxNWE3NmUyYTdlY2QzMWVlNTJmZGM4MzAwZjA2MDM1NTFkMTMwMTAxZmYwNDA1MzAwMzAxMDFmZjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDAzODIwMTAxMDA4MjFkNmI5OGNkNDU3ZGViZDJiMDgxYWNhMjdlYmVjZDRmOTNhY2M4Mjg0NDNiMzllYWJmZmE5ZmE0ZTllNDU0M2I0NmZjYzMxZTJiNWI0ODE3NzkwM2RlYTY5NjlhYzRhMmNjNjU3MDY1MDM5MGYxYjA4ZDQzYTRjMmY5NzVjN2VkOGJmMzM1NmM3MjE4MzgwMjEyNDUxYThmMTFkZTQ2NTUzY2JjZDY1YjQyNTRkZGI4ZjY2ODM0ZWIyMWRkYTJhOGYzM2I1ODFlMTQ4NDU1N2FjYTFiOTRlZTg5MzFkZGYxNjAzN2I3YTcxNzEzMjFhOTE5MzZhZmMyN2ZmY2UzOTVkZTc1ZDVmNzBjYjhiNWFlZTA1ZmY1MDcwODhkNjVhZjFlNDM5NjZjZDQyY2JlNmY3ZmFjZjhkYWUwNTVkZDgyMjJiMTY5NjUyMTcyM2Y4MTI0NTE3ODU5NWM5ODVhZTkxN2ZkNGIzOTk4NzczZTFhOTdiN2JkMTAwODU0NDZmNDI1OWJjYzA5YTQ1NDkyOTI4MmMxYjg5YjcxZWQ1ODdhNzc1ZTBhM2Q0NTM2MzQxZjQ1ZGFlOTY5ZTgwNmM5NmZlZmM3MTA2Nzc3NmMwMmJhMjIxMjJiOTE5OWIxNGMwYzI4YzA0NDg3NTA5MDcwYjk3ZjNkZDJkNmQ5NzI3MzMxODIwMTc3MzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZjMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzcwMDMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwNWJlY2Q4NzE5NWMxZGVmZjkwYzI0YzkxMjY5YjU1YjNmMDY5YmMyMjVjMzI2YzMxNGMxYTUxNzg2ZmZlMTRjODMwYmU0ZTRiYzczY2JhMzZjOTc2NzdiNDQxNjgyNzliZTkxZTdjZGY3YzE5Mzg2YWUyMTg2MjcxOWQxM2EzYTBmZmYwODAzZDQ2MDk2MmYyY2RhODM3MTQ4NDg3MzI1MmMzZDcwNTRkYjgxNDNlMmIwODFhMzgxNmVkMDgwNGNhNTA5OWFlNWZlY2U4M2Q1YzJjMzc4M2IxOTg4YjRiNDZkYzk0ZTU1NTg3YTEwN2VhMTU0NmJmMjJkMjhhMDk3ZjY1MmE0MDY2ZGMyOTY1MjY5MDY5YWYyZjUxNzZiYjhjZTljYTZkMTFmOTY3NTdmMDMyMDRmNzU2NzAzNTg3ZDAwYWQ0MjQ3OTZjOTJmYzdhZWI2ZjQ5NDQzMTk5OWVkYTMwOTkwZTRmNTc3MzYzMmVkMjU4ZmUwMjc2NjczNTk5ZGE2ZmNlMzVjZGFkNzcyNmEwYmIwMjRjYWQ5OTZiODhlMGNiOTg4NTRjZWI1YzBiNmVjNzQ4ZDlmOWNlNmE2Y2Q0Mzc4NThiYWNiODE0NjE4YTI3MmZmM2E0MTVjNmUwN2YzZGIwOTg4Nzc3ZmRlYzg0NWE5N2JmN2QxMDJkZDAiCiAKIFBLQ1M3IFBhcnNlIEZhaWx1cmUgSW52YWxpZCBBU04xOiBDaGFuZ2UgbGVuZ3RoIGZyb20gMTQgdG8gMTMgIzI1OS4wCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NgogcGtjczdfYXNuMV9mYWlsOiIzMDgyMDUwMDA2MDkyYTg2NDg4NmY3MGQwMTA3MDJhMDgyMDRmMTMwODIwNGVkMDIwMTAxMzEwZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGIwNjA5MmE4NjQ4ODZmNzBkMDEwNzAxYTA4MjAzNGQzMDgyMDM0OTMwODIwMjMxYTAwMzAyMDEwMjAyMTQ3YmRlZGRkMjQ0NGNkMWNkZmU1YzQxYTgxMDJjODliN2RmMmU2Y2JmMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMzAxZTE3MGQzMjMyMzEzMDMyMzgzMTM2MzEzMDM1MzY1YTE3MGQzMjMzMzEzMDMyMzgzMTM2MzEzMDM1MzY1YTMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTMwODIwMTIyMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDM4MjAxMGYwMDMwODIwMTBhMDI4MjAxMDEwMGM4YjZjZjY5ODk5Y2QxZjBlYmI0Y2E2NDVjMDVlNzBlMGQyZWZlZGRjYzYxZDA4OWNiZDUxNWEzOWEzNTc5YjkyMzQzYjYxZWM3NTAwNjBmYjRlZDM3ODc2MzMyNDAwZTQyNWYxZDM3NmM3ZTc1YzI5NzMzMTRlZGY0YmIzMGM4ZjhkZDAzYjlmY2ZmOTU1YTI0NWQ0OTEzN2FkNmU2MDA1NmNhYzE5NTUyYTg2NWQ1MjE4NzE4N2NjMDQyYzljNDllM2UzYTljMTdhNTM0YjQ1M2NkYWJjMGNiMTEzYjRmNjNmNWIzMTc0YjllZTk5MDJiMTkxMGQxMTQ5NmEyNzlhNzQzMjZhZGNmZWUxMGJmZDllN2ViYWZiYjM3N2JlOWI2Mzk1OTE2NWQxM2RkNTc1MTE3MWNhZGFkM2MxZDNhZGFjNjhiYzgwMTFkNjFiNTRjZjYwMTc4YmUzNjgzOWE4OWFjOTFhYjQxOWUzY2EzN2Q2YmE4ODFkMjU1MThjNGRiNjhiY2E2ZjdjODM2MDJmNjk5YTg2YjE3ZmIxZTc3M2JjYmU3NGJiOTNhNDliMjUxYWU4NjQyOGI1NzQwZTE4NjhiYjFkNmZhYjllMjg3MTJlOThlYzMxOWFkOGZjYTRkNzMwMTBjNGIwOWM0YjgwNDU4OTYxZTdjZjA4MzUzMDIwMzAxMDAwMWEzNTMzMDUxMzAxZDA2MDM1NTFkMGUwNDE2MDQxNDhhZWVlNTk0N2NjNjdjNWRkNTE1YTc2ZTJhN2VjZDMxZWU1MmZkYzgzMDFmMDYwMzU1MWQyMzA0MTgzMDE2ODAxNDhhZWVlNTk0N2NjNjdjNWRkNTE1YTc2ZTJhN2VjZDMxZWU1MmZkYzgzMDBmMDYwMzU1MWQxMzAxMDFmZjA0MDUzMDAzMDEwMWZmMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMDM4MjAxMDEwMDgyMWQ2Yjk4Y2Q0NTdkZWJkMmIwODFhY2EyN2ViZWNkNGY5M2FjYzgyODQ0M2IzOWVhYmZmYTlmYTRlOWU0NTQzYjQ2ZmNjMzFlMmI1YjQ4MTc3OTAzZGVhNjk2OWFjNGEyY2M2NTcwNjUwMzkwZjFiMDhkNDNhNGMyZjk3NWM3ZWQ4YmYzMzU2YzcyMTgzODAyMTI0NTFhOGYxMWRlNDY1NTNjYmNkNjViNDI1NGRkYjhmNjY4MzRlYjIxZGRhMmE4ZjMzYjU4MWUxNDg0NTU3YWNhMWI5NGVlODkzMWRkZjE2MDM3YjdhNzE3MTMyMWE5MTkzNmFmYzI3ZmZjZTM5NWRlNzVkNWY3MGNiOGI1YWVlMDVmZjUwNzA4OGQ2NWFmMWU0Mzk2NmNkNDJjYmU2ZjdmYWNmOGRhZTA1NWRkODIyMmIxNjk2NTIxNzIzZjgxMjQ1MTc4NTk1Yzk4NWFlOTE3ZmQ0YjM5OTg3NzNlMWE5N2I3YmQxMDA4NTQ0NmY0MjU5YmNjMDlhNDU0OTI5MjgyYzFiODliNzFlZDU4N2E3NzVlMGEzZDQ1MzYzNDFmNDVkYWU5NjllODA2Yzk2ZmVmYzcxMDY3Nzc2YzAyYmEyMjEyMmI5MTk5YjE0YzBjMjhjMDQ0ODc1MDkwNzBiOTdmM2RkMmQ2ZDk3MjczMzE4MjAxNzczMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBkMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwNWJlY2Q4NzE5NWMxZGVmZjkwYzI0YzkxMjY5YjU1YjNmMDY5YmMyMjVjMzI2YzMxNGMxYTUxNzg2ZmZlMTRjODMwYmU0ZTRiYzczY2JhMzZjOTc2NzdiNDQxNjgyNzliZTkxZTdjZGY3YzE5Mzg2YWUyMTg2MjcxOWQxM2EzYTBmZmYwODAzZDQ2MDk2MmYyY2RhODM3MTQ4NDg3MzI1MmMzZDcwNTRkYjgxNDNlMmIwODFhMzgxNmVkMDgwNGNhNTA5OWFlNWZlY2U4M2Q1YzJjMzc4M2IxOTg4YjRiNDZkYzk0ZTU1NTg3YTEwN2VhMTU0NmJmMjJkMjhhMDk3ZjY1MmE0MDY2ZGMyOTY1MjY5MDY5YWYyZjUxNzZiYjhjZTljYTZkMTFmOTY3NTdmMDMyMDRmNzU2NzAzNTg3ZDAwYWQ0MjQ3OTZjOTJmYzdhZWI2ZjQ5NDQzMTk5OWVkYTMwOTkwZTRmNTc3MzYzMmVkMjU4ZmUwMjc2NjczNTk5ZGE2ZmNlMzVjZGFkNzcyNmEwYmIwMjRjYWQ5OTZiODhlMGNiOTg4NTRjZWI1YzBiNmVjNzQ4ZDlmOWNlNmE2Y2Q0Mzc4NThiYWNiODE0NjE4YTI3MmZmM2E0MTVjNmUwN2YzZGIwOTg4Nzc3ZmRlYzg0NWE5N2JmN2QxMDJkZDAiCiAKIFBLQ1M3IFBhcnNlIEZhaWx1cmUgSW52YWxpZCBBU04xOiBDaGFuZ2UgdGFnIDMwIHRvIDAyICMyNjAuMAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHBrY3M3X2FzbjFfZmFpbDoiMzA4MjA1MDAwNjA5MmE4NjQ4ODZmNzBkMDEwNzAyYTA4MjA0ZjEzMDgyMDRlZDAyMDEwMTMxMGYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBiMDYwOTJhODY0ODg2ZjcwZDAxMDcwMWEwODIwMzRkMzA4MjAzNDkzMDgyMDIzMWEwMDMwMjAxMDIwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTMwMWUxNzBkMzIzMjMxMzAzMjM4MzEzNjMxMzAzNTM2NWExNzBkMzIzMzMxMzAzMjM4MzEzNjMxMzAzNTM2NWEzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEzMDgyMDEyMjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDAzODIwMTBmMDAzMDgyMDEwYTAyODIwMTAxMDBjOGI2Y2Y2OTg5OWNkMWYwZWJiNGNhNjQ1YzA1ZTcwZTBkMmVmZWRkY2M2MWQwODljYmQ1MTVhMzlhMzU3OWI5MjM0M2I2MWVjNzUwMDYwZmI0ZWQzNzg3NjMzMjQwMGU0MjVmMWQzNzZjN2U3NWMyOTczMzE0ZWRmNGJiMzBjOGY4ZGQwM2I5ZmNmZjk1NWEyNDVkNDkxMzdhZDZlNjAwNTZjYWMxOTU1MmE4NjVkNTIxODcxODdjYzA0MmM5YzQ5ZTNlM2E5YzE3YTUzNGI0NTNjZGFiYzBjYjExM2I0ZjYzZjViMzE3NGI5ZWU5OTAyYjE5MTBkMTE0OTZhMjc5YTc0MzI2YWRjZmVlMTBiZmQ5ZTdlYmFmYmIzNzdiZTliNjM5NTkxNjVkMTNkZDU3NTExNzFjYWRhZDNjMWQzYWRhYzY4YmM4MDExZDYxYjU0Y2Y2MDE3OGJlMzY4MzlhODlhYzkxYWI0MTllM2NhMzdkNmJhODgxZDI1NTE4YzRkYjY4YmNhNmY3YzgzNjAyZjY5OWE4NmIxN2ZiMWU3NzNiY2JlNzRiYjkzYTQ5YjI1MWFlODY0MjhiNTc0MGUxODY4YmIxZDZmYWI5ZTI4NzEyZTk4ZWMzMTlhZDhmY2E0ZDczMDEwYzRiMDljNGI4MDQ1ODk2MWU3Y2YwODM1MzAyMDMwMTAwMDFhMzUzMzA1MTMwMWQwNjAzNTUxZDBlMDQxNjA0MTQ4YWVlZTU5NDdjYzY3YzVkZDUxNWE3NmUyYTdlY2QzMWVlNTJmZGM4MzAxZjA2MDM1NTFkMjMwNDE4MzAxNjgwMTQ4YWVlZTU5NDdjYzY3YzVkZDUxNWE3NmUyYTdlY2QzMWVlNTJmZGM4MzAwZjA2MDM1NTFkMTMwMTAxZmYwNDA1MzAwMzAxMDFmZjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDAzODIwMTAxMDA4MjFkNmI5OGNkNDU3ZGViZDJiMDgxYWNhMjdlYmVjZDRmOTNhY2M4Mjg0NDNiMzllYWJmZmE5ZmE0ZTllNDU0M2I0NmZjYzMxZTJiNWI0ODE3NzkwM2RlYTY5NjlhYzRhMmNjNjU3MDY1MDM5MGYxYjA4ZDQzYTRjMmY5NzVjN2VkOGJmMzM1NmM3MjE4MzgwMjEyNDUxYThmMTFkZTQ2NTUzY2JjZDY1YjQyNTRkZGI4ZjY2ODM0ZWIyMWRkYTJhOGYzM2I1ODFlMTQ4NDU1N2FjYTFiOTRlZTg5MzFkZGYxNjAzN2I3YTcxNzEzMjFhOTE5MzZhZmMyN2ZmY2UzOTVkZTc1ZDVmNzBjYjhiNWFlZTA1ZmY1MDcwODhkNjVhZjFlNDM5NjZjZDQyY2JlNmY3ZmFjZjhkYWUwNTVkZDgyMjJiMTY5NjUyMTcyM2Y4MTI0NTE3ODU5NWM5ODVhZTkxN2ZkNGIzOTk4NzczZTFhOTdiN2JkMTAwODU0NDZmNDI1OWJjYzA5YTQ1NDkyOTI4MmMxYjg5YjcxZWQ1ODdhNzc1ZTBhM2Q0NTM2MzQxZjQ1ZGFlOTY5ZTgwNmM5NmZlZmM3MTA2Nzc3NmMwMmJhMjIxMjJiOTE5OWIxNGMwYzI4YzA0NDg3NTA5MDcwYjk3ZjNkZDJkNmQ5NzI3MzMxODIwMTc3MzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTAyMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDViZWNkODcxOTVjMWRlZmY5MGMyNGM5MTI2OWI1NWIzZjA2OWJjMjI1YzMyNmMzMTRjMWE1MTc4NmZmZTE0YzgzMGJlNGU0YmM3M2NiYTM2Yzk3Njc3YjQ0MTY4Mjc5YmU5MWU3Y2RmN2MxOTM4NmFlMjE4NjI3MTlkMTNhM2EwZmZmMDgwM2Q0NjA5NjJmMmNkYTgzNzE0ODQ4NzMyNTJjM2Q3MDU0ZGI4MTQzZTJiMDgxYTM4MTZlZDA4MDRjYTUwOTlhZTVmZWNlODNkNWMyYzM3ODNiMTk4OGI0YjQ2ZGM5NGU1NTU4N2ExMDdlYTE1NDZiZjIyZDI4YTA5N2Y2NTJhNDA2NmRjMjk2NTI2OTA2OWFmMmY1MTc2YmI4Y2U5Y2E2ZDExZjk2NzU3ZjAzMjA0Zjc1NjcwMzU4N2QwMGFkNDI0Nzk2YzkyZmM3YWViNmY0OTQ0MzE5OTllZGEzMDk5MGU0ZjU3NzM2MzJlZDI1OGZlMDI3NjY3MzU5OWRhNmZjZTM1Y2RhZDc3MjZhMGJiMDI0Y2FkOTk2Yjg4ZTBjYjk4ODU0Y2ViNWMwYjZlYzc0OGQ5ZjljZTZhNmNkNDM3ODU4YmFjYjgxNDYxOGEyNzJmZjNhNDE1YzZlMDdmM2RiMDk4ODc3N2ZkZWM4NDVhOTdiZjdkMTAyZGQwIgogCiBQS0NTNyBQYXJzZSBGYWlsdXJlIEludmFsaWQgQVNOMTogQ2hhbmdlIGxlbmd0aCBmcm9tIDEyIHRvIDEzICMyNjEuMAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHBrY3M3X2FzbjFfZmFpbDoiMzA4MjA1MDAwNjA5MmE4NjQ4ODZmNzBkMDEwNzAyYTA4MjA0ZjEzMDgyMDRlZDAyMDEwMTMxMGYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBiMDYwOTJhODY0ODg2ZjcwZDAxMDcwMWEwODIwMzRkMzA4MjAzNDkzMDgyMDIzMWEwMDMwMjAxMDIwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTMwMWUxNzBkMzIzMjMxMzAzMjM4MzEzNjMxMzAzNTM2NWExNzBkMzIzMzMxMzAzMjM4MzEzNjMxMzAzNTM2NWEzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEzMDgyMDEyMjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDAzODIwMTBmMDAzMDgyMDEwYTAyODIwMTAxMDBjOGI2Y2Y2OTg5OWNkMWYwZWJiNGNhNjQ1YzA1ZTcwZTBkMmVmZWRkY2M2MWQwODljYmQ1MTVhMzlhMzU3OWI5MjM0M2I2MWVjNzUwMDYwZmI0ZWQzNzg3NjMzMjQwMGU0MjVmMWQzNzZjN2U3NWMyOTczMzE0ZWRmNGJiMzBjOGY4ZGQwM2I5ZmNmZjk1NWEyNDVkNDkxMzdhZDZlNjAwNTZjYWMxOTU1MmE4NjVkNTIxODcxODdjYzA0MmM5YzQ5ZTNlM2E5YzE3YTUzNGI0NTNjZGFiYzBjYjExM2I0ZjYzZjViMzE3NGI5ZWU5OTAyYjE5MTBkMTE0OTZhMjc5YTc0MzI2YWRjZmVlMTBiZmQ5ZTdlYmFmYmIzNzdiZTliNjM5NTkxNjVkMTNkZDU3NTExNzFjYWRhZDNjMWQzYWRhYzY4YmM4MDExZDYxYjU0Y2Y2MDE3OGJlMzY4MzlhODlhYzkxYWI0MTllM2NhMzdkNmJhODgxZDI1NTE4YzRkYjY4YmNhNmY3YzgzNjAyZjY5OWE4NmIxN2ZiMWU3NzNiY2JlNzRiYjkzYTQ5YjI1MWFlODY0MjhiNTc0MGUxODY4YmIxZDZmYWI5ZTI4NzEyZTk4ZWMzMTlhZDhmY2E0ZDczMDEwYzRiMDljNGI4MDQ1ODk2MWU3Y2YwODM1MzAyMDMwMTAwMDFhMzUzMzA1MTMwMWQwNjAzNTUxZDBlMDQxNjA0MTQ4YWVlZTU5NDdjYzY3YzVkZDUxNWE3NmUyYTdlY2QzMWVlNTJmZGM4MzAxZjA2MDM1NTFkMjMwNDE4MzAxNjgwMTQ4YWVlZTU5NDdjYzY3YzVkZDUxNWE3NmUyYTdlY2QzMWVlNTJmZGM4MzAwZjA2MDM1NTFkMTMwMTAxZmYwNDA1MzAwMzAxMDFmZjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDAzODIwMTAxMDA4MjFkNmI5OGNkNDU3ZGViZDJiMDgxYWNhMjdlYmVjZDRmOTNhY2M4Mjg0NDNiMzllYWJmZmE5ZmE0ZTllNDU0M2I0NmZjYzMxZTJiNWI0ODE3NzkwM2RlYTY5NjlhYzRhMmNjNjU3MDY1MDM5MGYxYjA4ZDQzYTRjMmY5NzVjN2VkOGJmMzM1NmM3MjE4MzgwMjEyNDUxYThmMTFkZTQ2NTUzY2JjZDY1YjQyNTRkZGI4ZjY2ODM0ZWIyMWRkYTJhOGYzM2I1ODFlMTQ4NDU1N2FjYTFiOTRlZTg5MzFkZGYxNjAzN2I3YTcxNzEzMjFhOTE5MzZhZmMyN2ZmY2UzOTVkZTc1ZDVmNzBjYjhiNWFlZTA1ZmY1MDcwODhkNjVhZjFlNDM5NjZjZDQyY2JlNmY3ZmFjZjhkYWUwNTVkZDgyMjJiMTY5NjUyMTcyM2Y4MTI0NTE3ODU5NWM5ODVhZTkxN2ZkNGIzOTk4NzczZTFhOTdiN2JkMTAwODU0NDZmNDI1OWJjYzA5YTQ1NDkyOTI4MmMxYjg5YjcxZWQ1ODdhNzc1ZTBhM2Q0NTM2MzQxZjQ1ZGFlOTY5ZTgwNmM5NmZlZmM3MTA2Nzc3NmMwMmJhMjIxMjJiOTE5OWIxNGMwYzI4YzA0NDg3NTA5MDcwYjk3ZjNkZDJkNmQ5NzI3MzMxODIwMTc3MzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGQwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDViZWNkODcxOTVjMWRlZmY5MGMyNGM5MTI2OWI1NWIzZjA2OWJjMjI1YzMyNmMzMTRjMWE1MTc4NmZmZTE0YzgzMGJlNGU0YmM3M2NiYTM2Yzk3Njc3YjQ0MTY4Mjc5YmU5MWU3Y2RmN2MxOTM4NmFlMjE4NjI3MTlkMTNhM2EwZmZmMDgwM2Q0NjA5NjJmMmNkYTgzNzE0ODQ4NzMyNTJjM2Q3MDU0ZGI4MTQzZTJiMDgxYTM4MTZlZDA4MDRjYTUwOTlhZTVmZWNlODNkNWMyYzM3ODNiMTk4OGI0YjQ2ZGM5NGU1NTU4N2ExMDdlYTE1NDZiZjIyZDI4YTA5N2Y2NTJhNDA2NmRjMjk2NTI2OTA2OWFmMmY1MTc2YmI4Y2U5Y2E2ZDExZjk2NzU3ZjAzMjA0Zjc1NjcwMzU4N2QwMGFkNDI0Nzk2YzkyZmM3YWViNmY0OTQ0MzE5OTllZGEzMDk5MGU0ZjU3NzM2MzJlZDI1OGZlMDI3NjY3MzU5OWRhNmZjZTM1Y2RhZDc3MjZhMGJiMDI0Y2FkOTk2Yjg4ZTBjYjk4ODU0Y2ViNWMwYjZlYzc0OGQ5ZjljZTZhNmNkNDM3ODU4YmFjYjgxNDYxOGEyNzJmZjNhNDE1YzZlMDdmM2RiMDk4ODc3N2ZkZWM4NDVhOTdiZjdkMTAyZGQwIgogCiBQS0NTNyBQYXJzZSBGYWlsdXJlIEludmFsaWQgQVNOMTogQ2hhbmdlIGNvbnRlbnRzIG9mIHRhZyAzMCB0byBjb250YWluIG9uZSB1bmFjY291bnRlZCBleHRyYSBieXRlICMyNjIuMAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHBrY3M3X2FzbjFfZmFpbDoiMzA4MjA1MDAwNjA5MmE4NjQ4ODZmNzBkMDEwNzAyYTA4MjA0ZjEzMDgyMDRlZDAyMDEwMTMxMGYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBiMDYwOTJhODY0ODg2ZjcwZDAxMDcwMWEwODIwMzRkMzA4MjAzNDkzMDgyMDIzMWEwMDMwMjAxMDIwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTMwMWUxNzBkMzIzMjMxMzAzMjM4MzEzNjMxMzAzNTM2NWExNzBkMzIzMzMxMzAzMjM4MzEzNjMxMzAzNTM2NWEzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEzMDgyMDEyMjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDAzODIwMTBmMDAzMDgyMDEwYTAyODIwMTAxMDBjOGI2Y2Y2OTg5OWNkMWYwZWJiNGNhNjQ1YzA1ZTcwZTBkMmVmZWRkY2M2MWQwODljYmQ1MTVhMzlhMzU3OWI5MjM0M2I2MWVjNzUwMDYwZmI0ZWQzNzg3NjMzMjQwMGU0MjVmMWQzNzZjN2U3NWMyOTczMzE0ZWRmNGJiMzBjOGY4ZGQwM2I5ZmNmZjk1NWEyNDVkNDkxMzdhZDZlNjAwNTZjYWMxOTU1MmE4NjVkNTIxODcxODdjYzA0MmM5YzQ5ZTNlM2E5YzE3YTUzNGI0NTNjZGFiYzBjYjExM2I0ZjYzZjViMzE3NGI5ZWU5OTAyYjE5MTBkMTE0OTZhMjc5YTc0MzI2YWRjZmVlMTBiZmQ5ZTdlYmFmYmIzNzdiZTliNjM5NTkxNjVkMTNkZDU3NTExNzFjYWRhZDNjMWQzYWRhYzY4YmM4MDExZDYxYjU0Y2Y2MDE3OGJlMzY4MzlhODlhYzkxYWI0MTllM2NhMzdkNmJhODgxZDI1NTE4YzRkYjY4YmNhNmY3YzgzNjAyZjY5OWE4NmIxN2ZiMWU3NzNiY2JlNzRiYjkzYTQ5YjI1MWFlODY0MjhiNTc0MGUxODY4YmIxZDZmYWI5ZTI4NzEyZTk4ZWMzMTlhZDhmY2E0ZDczMDEwYzRiMDljNGI4MDQ1ODk2MWU3Y2YwODM1MzAyMDMwMTAwMDFhMzUzMzA1MTMwMWQwNjAzNTUxZDBlMDQxNjA0MTQ4YWVlZTU5NDdjYzY3YzVkZDUxNWE3NmUyYTdlY2QzMWVlNTJmZGM4MzAxZjA2MDM1NTFkMjMwNDE4MzAxNjgwMTQ4YWVlZTU5NDdjYzY3YzVkZDUxNWE3NmUyYTdlY2QzMWVlNTJmZGM4MzAwZjA2MDM1NTFkMTMwMTAxZmYwNDA1MzAwMzAxMDFmZjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDAzODIwMTAxMDA4MjFkNmI5OGNkNDU3ZGViZDJiMDgxYWNhMjdlYmVjZDRmOTNhY2M4Mjg0NDNiMzllYWJmZmE5ZmE0ZTllNDU0M2I0NmZjYzMxZTJiNWI0ODE3NzkwM2RlYTY5NjlhYzRhMmNjNjU3MDY1MDM5MGYxYjA4ZDQzYTRjMmY5NzVjN2VkOGJmMzM1NmM3MjE4MzgwMjEyNDUxYThmMTFkZTQ2NTUzY2JjZDY1YjQyNTRkZGI4ZjY2ODM0ZWIyMWRkYTJhOGYzM2I1ODFlMTQ4NDU1N2FjYTFiOTRlZTg5MzFkZGYxNjAzN2I3YTcxNzEzMjFhOTE5MzZhZmMyN2ZmY2UzOTVkZTc1ZDVmNzBjYjhiNWFlZTA1ZmY1MDcwODhkNjVhZjFlNDM5NjZjZDQyY2JlNmY3ZmFjZjhkYWUwNTVkZDgyMjJiMTY5NjUyMTcyM2Y4MTI0NTE3ODU5NWM5ODVhZTkxN2ZkNGIzOTk4NzczZTFhOTdiN2JkMTAwODU0NDZmNDI1OWJjYzA5YTQ1NDkyOTI4MmMxYjg5YjcxZWQ1ODdhNzc1ZTBhM2Q0NTM2MzQxZjQ1ZGFlOTY5ZTgwNmM5NmZlZmM3MTA2Nzc3NmMwMmJhMjIxMjJiOTE5OWIxNGMwYzI4YzA0NDg3NTA5MDcwYjk3ZjNkZDJkNmQ5NzI3MzMxODIwMTc3MzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGQwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzcwMDMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwNWJlY2Q4NzE5NWMxZGVmZjkwYzI0YzkxMjY5YjU1YjNmMDY5YmMyMjVjMzI2YzMxNGMxYTUxNzg2ZmZlMTRjODMwYmU0ZTRiYzczY2JhMzZjOTc2NzdiNDQxNjgyNzliZTkxZTdjZGY3YzE5Mzg2YWUyMTg2MjcxOWQxM2EzYTBmZmYwODAzZDQ2MDk2MmYyY2RhODM3MTQ4NDg3MzI1MmMzZDcwNTRkYjgxNDNlMmIwODFhMzgxNmVkMDgwNGNhNTA5OWFlNWZlY2U4M2Q1YzJjMzc4M2IxOTg4YjRiNDZkYzk0ZTU1NTg3YTEwN2VhMTU0NmJmMjJkMjhhMDk3ZjY1MmE0MDY2ZGMyOTY1MjY5MDY5YWYyZjUxNzZiYjhjZTljYTZkMTFmOTY3NTdmMDMyMDRmNzU2NzAzNTg3ZDAwYWQ0MjQ3OTZjOTJmYzdhZWI2ZjQ5NDQzMTk5OWVkYTMwOTkwZTRmNTc3MzYzMmVkMjU4ZmUwMjc2NjczNTk5ZGE2ZmNlMzVjZGFkNzcyNmEwYmIwMjRjYWQ5OTZiODhlMGNiOTg4NTRjZWI1YzBiNmVjNzQ4ZDlmOWNlNmE2Y2Q0Mzc4NThiYWNiODE0NjE4YTI3MmZmM2E0MTVjNmUwN2YzZGIwOTg4Nzc3ZmRlYzg0NWE5N2JmN2QxMDJkZDAiCiAKIFBLQ1M3IFBhcnNlIEZhaWx1cmUgSW52YWxpZCBBU04xOiBDaGFuZ2UgbGVuZ3RoIGZyb20gMTIgdG8gMTEgIzI2My4wCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NgogcGtjczdfYXNuMV9mYWlsOiIzMDgyMDUwMDA2MDkyYTg2NDg4NmY3MGQwMTA3MDJhMDgyMDRmMTMwODIwNGVkMDIwMTAxMzEwZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGIwNjA5MmE4NjQ4ODZmNzBkMDEwNzAxYTA4MjAzNGQzMDgyMDM0OTMwODIwMjMxYTAwMzAyMDEwMjAyMTQ3YmRlZGRkMjQ0NGNkMWNkZmU1YzQxYTgxMDJjODliN2RmMmU2Y2JmMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMzAxZTE3MGQzMjMyMzEzMDMyMzgzMTM2MzEzMDM1MzY1YTE3MGQzMjMzMzEzMDMyMzgzMTM2MzEzMDM1MzY1YTMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTMwODIwMTIyMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDM4MjAxMGYwMDMwODIwMTBhMDI4MjAxMDEwMGM4YjZjZjY5ODk5Y2QxZjBlYmI0Y2E2NDVjMDVlNzBlMGQyZWZlZGRjYzYxZDA4OWNiZDUxNWEzOWEzNTc5YjkyMzQzYjYxZWM3NTAwNjBmYjRlZDM3ODc2MzMyNDAwZTQyNWYxZDM3NmM3ZTc1YzI5NzMzMTRlZGY0YmIzMGM4ZjhkZDAzYjlmY2ZmOTU1YTI0NWQ0OTEzN2FkNmU2MDA1NmNhYzE5NTUyYTg2NWQ1MjE4NzE4N2NjMDQyYzljNDllM2UzYTljMTdhNTM0YjQ1M2NkYWJjMGNiMTEzYjRmNjNmNWIzMTc0YjllZTk5MDJiMTkxMGQxMTQ5NmEyNzlhNzQzMjZhZGNmZWUxMGJmZDllN2ViYWZiYjM3N2JlOWI2Mzk1OTE2NWQxM2RkNTc1MTE3MWNhZGFkM2MxZDNhZGFjNjhiYzgwMTFkNjFiNTRjZjYwMTc4YmUzNjgzOWE4OWFjOTFhYjQxOWUzY2EzN2Q2YmE4ODFkMjU1MThjNGRiNjhiY2E2ZjdjODM2MDJmNjk5YTg2YjE3ZmIxZTc3M2JjYmU3NGJiOTNhNDliMjUxYWU4NjQyOGI1NzQwZTE4NjhiYjFkNmZhYjllMjg3MTJlOThlYzMxOWFkOGZjYTRkNzMwMTBjNGIwOWM0YjgwNDU4OTYxZTdjZjA4MzUzMDIwMzAxMDAwMWEzNTMzMDUxMzAxZDA2MDM1NTFkMGUwNDE2MDQxNDhhZWVlNTk0N2NjNjdjNWRkNTE1YTc2ZTJhN2VjZDMxZWU1MmZkYzgzMDFmMDYwMzU1MWQyMzA0MTgzMDE2ODAxNDhhZWVlNTk0N2NjNjdjNWRkNTE1YTc2ZTJhN2VjZDMxZWU1MmZkYzgzMDBmMDYwMzU1MWQxMzAxMDFmZjA0MDUzMDAzMDEwMWZmMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMDM4MjAxMDEwMDgyMWQ2Yjk4Y2Q0NTdkZWJkMmIwODFhY2EyN2ViZWNkNGY5M2FjYzgyODQ0M2IzOWVhYmZmYTlmYTRlOWU0NTQzYjQ2ZmNjMzFlMmI1YjQ4MTc3OTAzZGVhNjk2OWFjNGEyY2M2NTcwNjUwMzkwZjFiMDhkNDNhNGMyZjk3NWM3ZWQ4YmYzMzU2YzcyMTgzODAyMTI0NTFhOGYxMWRlNDY1NTNjYmNkNjViNDI1NGRkYjhmNjY4MzRlYjIxZGRhMmE4ZjMzYjU4MWUxNDg0NTU3YWNhMWI5NGVlODkzMWRkZjE2MDM3YjdhNzE3MTMyMWE5MTkzNmFmYzI3ZmZjZTM5NWRlNzVkNWY3MGNiOGI1YWVlMDVmZjUwNzA4OGQ2NWFmMWU0Mzk2NmNkNDJjYmU2ZjdmYWNmOGRhZTA1NWRkODIyMmIxNjk2NTIxNzIzZjgxMjQ1MTc4NTk1Yzk4NWFlOTE3ZmQ0YjM5OTg3NzNlMWE5N2I3YmQxMDA4NTQ0NmY0MjU5YmNjMDlhNDU0OTI5MjgyYzFiODliNzFlZDU4N2E3NzVlMGEzZDQ1MzYzNDFmNDVkYWU5NjllODA2Yzk2ZmVmYzcxMDY3Nzc2YzAyYmEyMjEyMmI5MTk5YjE0YzBjMjhjMDQ0ODc1MDkwNzBiOTdmM2RkMmQ2ZDk3MjczMzE4MjAxNzczMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYjA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwNWJlY2Q4NzE5NWMxZGVmZjkwYzI0YzkxMjY5YjU1YjNmMDY5YmMyMjVjMzI2YzMxNGMxYTUxNzg2ZmZlMTRjODMwYmU0ZTRiYzczY2JhMzZjOTc2NzdiNDQxNjgyNzliZTkxZTdjZGY3YzE5Mzg2YWUyMTg2MjcxOWQxM2EzYTBmZmYwODAzZDQ2MDk2MmYyY2RhODM3MTQ4NDg3MzI1MmMzZDcwNTRkYjgxNDNlMmIwODFhMzgxNmVkMDgwNGNhNTA5OWFlNWZlY2U4M2Q1YzJjMzc4M2IxOTg4YjRiNDZkYzk0ZTU1NTg3YTEwN2VhMTU0NmJmMjJkMjhhMDk3ZjY1MmE0MDY2ZGMyOTY1MjY5MDY5YWYyZjUxNzZiYjhjZTljYTZkMTFmOTY3NTdmMDMyMDRmNzU2NzAzNTg3ZDAwYWQ0MjQ3OTZjOTJmYzdhZWI2ZjQ5NDQzMTk5OWVkYTMwOTkwZTRmNTc3MzYzMmVkMjU4ZmUwMjc2NjczNTk5ZGE2ZmNlMzVjZGFkNzcyNmEwYmIwMjRjYWQ5OTZiODhlMGNiOTg4NTRjZWI1YzBiNmVjNzQ4ZDlmOWNlNmE2Y2Q0Mzc4NThiYWNiODE0NjE4YTI3MmZmM2E0MTVjNmUwN2YzZGIwOTg4Nzc3ZmRlYzg0NWE5N2JmN2QxMDJkZDAiCiAKIFBLQ1M3IFBhcnNlIEZhaWx1cmUgSW52YWxpZCBBU04xOiBDaGFuZ2UgdGFnIDA2IHRvIDAyICMyNjQuMAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHBrY3M3X2FzbjFfZmFpbDoiMzA4MjA1MDAwNjA5MmE4NjQ4ODZmNzBkMDEwNzAyYTA4MjA0ZjEzMDgyMDRlZDAyMDEwMTMxMGYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBiMDYwOTJhODY0ODg2ZjcwZDAxMDcwMWEwODIwMzRkMzA4MjAzNDkzMDgyMDIzMWEwMDMwMjAxMDIwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTMwMWUxNzBkMzIzMjMxMzAzMjM4MzEzNjMxMzAzNTM2NWExNzBkMzIzMzMxMzAzMjM4MzEzNjMxMzAzNTM2NWEzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEzMDgyMDEyMjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDAzODIwMTBmMDAzMDgyMDEwYTAyODIwMTAxMDBjOGI2Y2Y2OTg5OWNkMWYwZWJiNGNhNjQ1YzA1ZTcwZTBkMmVmZWRkY2M2MWQwODljYmQ1MTVhMzlhMzU3OWI5MjM0M2I2MWVjNzUwMDYwZmI0ZWQzNzg3NjMzMjQwMGU0MjVmMWQzNzZjN2U3NWMyOTczMzE0ZWRmNGJiMzBjOGY4ZGQwM2I5ZmNmZjk1NWEyNDVkNDkxMzdhZDZlNjAwNTZjYWMxOTU1MmE4NjVkNTIxODcxODdjYzA0MmM5YzQ5ZTNlM2E5YzE3YTUzNGI0NTNjZGFiYzBjYjExM2I0ZjYzZjViMzE3NGI5ZWU5OTAyYjE5MTBkMTE0OTZhMjc5YTc0MzI2YWRjZmVlMTBiZmQ5ZTdlYmFmYmIzNzdiZTliNjM5NTkxNjVkMTNkZDU3NTExNzFjYWRhZDNjMWQzYWRhYzY4YmM4MDExZDYxYjU0Y2Y2MDE3OGJlMzY4MzlhODlhYzkxYWI0MTllM2NhMzdkNmJhODgxZDI1NTE4YzRkYjY4YmNhNmY3YzgzNjAyZjY5OWE4NmIxN2ZiMWU3NzNiY2JlNzRiYjkzYTQ5YjI1MWFlODY0MjhiNTc0MGUxODY4YmIxZDZmYWI5ZTI4NzEyZTk4ZWMzMTlhZDhmY2E0ZDczMDEwYzRiMDljNGI4MDQ1ODk2MWU3Y2YwODM1MzAyMDMwMTAwMDFhMzUzMzA1MTMwMWQwNjAzNTUxZDBlMDQxNjA0MTQ4YWVlZTU5NDdjYzY3YzVkZDUxNWE3NmUyYTdlY2QzMWVlNTJmZGM4MzAxZjA2MDM1NTFkMjMwNDE4MzAxNjgwMTQ4YWVlZTU5NDdjYzY3YzVkZDUxNWE3NmUyYTdlY2QzMWVlNTJmZGM4MzAwZjA2MDM1NTFkMTMwMTAxZmYwNDA1MzAwMzAxMDFmZjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDAzODIwMTAxMDA4MjFkNmI5OGNkNDU3ZGViZDJiMDgxYWNhMjdlYmVjZDRmOTNhY2M4Mjg0NDNiMzllYWJmZmE5ZmE0ZTllNDU0M2I0NmZjYzMxZTJiNWI0ODE3NzkwM2RlYTY5NjlhYzRhMmNjNjU3MDY1MDM5MGYxYjA4ZDQzYTRjMmY5NzVjN2VkOGJmMzM1NmM3MjE4MzgwMjEyNDUxYThmMTFkZTQ2NTUzY2JjZDY1YjQyNTRkZGI4ZjY2ODM0ZWIyMWRkYTJhOGYzM2I1ODFlMTQ4NDU1N2FjYTFiOTRlZTg5MzFkZGYxNjAzN2I3YTcxNzEzMjFhOTE5MzZhZmMyN2ZmY2UzOTVkZTc1ZDVmNzBjYjhiNWFlZTA1ZmY1MDcwODhkNjVhZjFlNDM5NjZjZDQyY2JlNmY3ZmFjZjhkYWUwNTVkZDgyMjJiMTY5NjUyMTcyM2Y4MTI0NTE3ODU5NWM5ODVhZTkxN2ZkNGIzOTk4NzczZTFhOTdiN2JkMTAwODU0NDZmNDI1OWJjYzA5YTQ1NDkyOTI4MmMxYjg5YjcxZWQ1ODdhNzc1ZTBhM2Q0NTM2MzQxZjQ1ZGFlOTY5ZTgwNmM5NmZlZmM3MTA2Nzc3NmMwMmJhMjIxMjJiOTE5OWIxNGMwYzI4YzA0NDg3NTA5MDcwYjk3ZjNkZDJkNmQ5NzI3MzMxODIwMTc3MzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwMjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDViZWNkODcxOTVjMWRlZmY5MGMyNGM5MTI2OWI1NWIzZjA2OWJjMjI1YzMyNmMzMTRjMWE1MTc4NmZmZTE0YzgzMGJlNGU0YmM3M2NiYTM2Yzk3Njc3YjQ0MTY4Mjc5YmU5MWU3Y2RmN2MxOTM4NmFlMjE4NjI3MTlkMTNhM2EwZmZmMDgwM2Q0NjA5NjJmMmNkYTgzNzE0ODQ4NzMyNTJjM2Q3MDU0ZGI4MTQzZTJiMDgxYTM4MTZlZDA4MDRjYTUwOTlhZTVmZWNlODNkNWMyYzM3ODNiMTk4OGI0YjQ2ZGM5NGU1NTU4N2ExMDdlYTE1NDZiZjIyZDI4YTA5N2Y2NTJhNDA2NmRjMjk2NTI2OTA2OWFmMmY1MTc2YmI4Y2U5Y2E2ZDExZjk2NzU3ZjAzMjA0Zjc1NjcwMzU4N2QwMGFkNDI0Nzk2YzkyZmM3YWViNmY0OTQ0MzE5OTllZGEzMDk5MGU0ZjU3NzM2MzJlZDI1OGZlMDI3NjY3MzU5OWRhNmZjZTM1Y2RhZDc3MjZhMGJiMDI0Y2FkOTk2Yjg4ZTBjYjk4ODU0Y2ViNWMwYjZlYzc0OGQ5ZjljZTZhNmNkNDM3ODU4YmFjYjgxNDYxOGEyNzJmZjNhNDE1YzZlMDdmM2RiMDk4ODc3N2ZkZWM4NDVhOTdiZjdkMTAyZGQwIgogCiBQS0NTNyBQYXJzZSBGYWlsdXJlIEludmFsaWQgQVNOMTogQ2hhbmdlIGxlbmd0aCBmcm9tIDMgdG8gNCAjMjY1LjAKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBwa2NzN19hc24xX2ZhaWw6IjMwODIwNTAwMDYwOTJhODY0ODg2ZjcwZDAxMDcwMmEwODIwNGYxMzA4MjA0ZWQwMjAxMDEzMTBmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwYjA2MDkyYTg2NDg4NmY3MGQwMTA3MDFhMDgyMDM0ZDMwODIwMzQ5MzA4MjAyMzFhMDAzMDIwMTAyMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEzMDFlMTcwZDMyMzIzMTMwMzIzODMxMzYzMTMwMzUzNjVhMTcwZDMyMzMzMTMwMzIzODMxMzYzMTMwMzUzNjVhMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMzA4MjAxMjIzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwMzgyMDEwZjAwMzA4MjAxMGEwMjgyMDEwMTAwYzhiNmNmNjk4OTljZDFmMGViYjRjYTY0NWMwNWU3MGUwZDJlZmVkZGNjNjFkMDg5Y2JkNTE1YTM5YTM1NzliOTIzNDNiNjFlYzc1MDA2MGZiNGVkMzc4NzYzMzI0MDBlNDI1ZjFkMzc2YzdlNzVjMjk3MzMxNGVkZjRiYjMwYzhmOGRkMDNiOWZjZmY5NTVhMjQ1ZDQ5MTM3YWQ2ZTYwMDU2Y2FjMTk1NTJhODY1ZDUyMTg3MTg3Y2MwNDJjOWM0OWUzZTNhOWMxN2E1MzRiNDUzY2RhYmMwY2IxMTNiNGY2M2Y1YjMxNzRiOWVlOTkwMmIxOTEwZDExNDk2YTI3OWE3NDMyNmFkY2ZlZTEwYmZkOWU3ZWJhZmJiMzc3YmU5YjYzOTU5MTY1ZDEzZGQ1NzUxMTcxY2FkYWQzYzFkM2FkYWM2OGJjODAxMWQ2MWI1NGNmNjAxNzhiZTM2ODM5YTg5YWM5MWFiNDE5ZTNjYTM3ZDZiYTg4MWQyNTUxOGM0ZGI2OGJjYTZmN2M4MzYwMmY2OTlhODZiMTdmYjFlNzczYmNiZTc0YmI5M2E0OWIyNTFhZTg2NDI4YjU3NDBlMTg2OGJiMWQ2ZmFiOWUyODcxMmU5OGVjMzE5YWQ4ZmNhNGQ3MzAxMGM0YjA5YzRiODA0NTg5NjFlN2NmMDgzNTMwMjAzMDEwMDAxYTM1MzMwNTEzMDFkMDYwMzU1MWQwZTA0MTYwNDE0OGFlZWU1OTQ3Y2M2N2M1ZGQ1MTVhNzZlMmE3ZWNkMzFlZTUyZmRjODMwMWYwNjAzNTUxZDIzMDQxODMwMTY4MDE0OGFlZWU1OTQ3Y2M2N2M1ZGQ1MTVhNzZlMmE3ZWNkMzFlZTUyZmRjODMwMGYwNjAzNTUxZDEzMDEwMWZmMDQwNTMwMDMwMTAxZmYzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAwMzgyMDEwMTAwODIxZDZiOThjZDQ1N2RlYmQyYjA4MWFjYTI3ZWJlY2Q0ZjkzYWNjODI4NDQzYjM5ZWFiZmZhOWZhNGU5ZTQ1NDNiNDZmY2MzMWUyYjViNDgxNzc5MDNkZWE2OTY5YWM0YTJjYzY1NzA2NTAzOTBmMWIwOGQ0M2E0YzJmOTc1YzdlZDhiZjMzNTZjNzIxODM4MDIxMjQ1MWE4ZjExZGU0NjU1M2NiY2Q2NWI0MjU0ZGRiOGY2NjgzNGViMjFkZGEyYThmMzNiNTgxZTE0ODQ1NTdhY2ExYjk0ZWU4OTMxZGRmMTYwMzdiN2E3MTcxMzIxYTkxOTM2YWZjMjdmZmNlMzk1ZGU3NWQ1ZjcwY2I4YjVhZWUwNWZmNTA3MDg4ZDY1YWYxZTQzOTY2Y2Q0MmNiZTZmN2ZhY2Y4ZGFlMDU1ZGQ4MjIyYjE2OTY1MjE3MjNmODEyNDUxNzg1OTVjOTg1YWU5MTdmZDRiMzk5ODc3M2UxYTk3YjdiZDEwMDg1NDQ2ZjQyNTliY2MwOWE0NTQ5MjkyODJjMWI4OWI3MWVkNTg3YTc3NWUwYTNkNDUzNjM0MWY0NWRhZTk2OWU4MDZjOTZmZWZjNzEwNjc3NzZjMDJiYTIyMTIyYjkxOTliMTRjMGMyOGMwNDQ4NzUwOTA3MGI5N2YzZGQyZDZkOTcyNzMzMTgyMDE3NzMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwNDU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTAyMTQ3YmRlZGRkMjQ0NGNkMWNkZmU1YzQxYTgxMDJjODliN2RmMmU2Y2JmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDA1YmVjZDg3MTk1YzFkZWZmOTBjMjRjOTEyNjliNTViM2YwNjliYzIyNWMzMjZjMzE0YzFhNTE3ODZmZmUxNGM4MzBiZTRlNGJjNzNjYmEzNmM5NzY3N2I0NDE2ODI3OWJlOTFlN2NkZjdjMTkzODZhZTIxODYyNzE5ZDEzYTNhMGZmZjA4MDNkNDYwOTYyZjJjZGE4MzcxNDg0ODczMjUyYzNkNzA1NGRiODE0M2UyYjA4MWEzODE2ZWQwODA0Y2E1MDk5YWU1ZmVjZTgzZDVjMmMzNzgzYjE5ODhiNGI0NmRjOTRlNTU1ODdhMTA3ZWExNTQ2YmYyMmQyOGEwOTdmNjUyYTQwNjZkYzI5NjUyNjkwNjlhZjJmNTE3NmJiOGNlOWNhNmQxMWY5Njc1N2YwMzIwNGY3NTY3MDM1ODdkMDBhZDQyNDc5NmM5MmZjN2FlYjZmNDk0NDMxOTk5ZWRhMzA5OTBlNGY1NzczNjMyZWQyNThmZTAyNzY2NzM1OTlkYTZmY2UzNWNkYWQ3NzI2YTBiYjAyNGNhZDk5NmI4OGUwY2I5ODg1NGNlYjVjMGI2ZWM3NDhkOWY5Y2U2YTZjZDQzNzg1OGJhY2I4MTQ2MThhMjcyZmYzYTQxNWM2ZTA3ZjNkYjA5ODg3NzdmZGVjODQ1YTk3YmY3ZDEwMmRkMCIKIAogUEtDUzcgUGFyc2UgRmFpbHVyZSBJbnZhbGlkIEFTTjE6IENoYW5nZSBsZW5ndGggZnJvbSAzIHRvIDIgIzI2Ni4wCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NgogcGtjczdfYXNuMV9mYWlsOiIzMDgyMDUwMDA2MDkyYTg2NDg4NmY3MGQwMTA3MDJhMDgyMDRmMTMwODIwNGVkMDIwMTAxMzEwZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGIwNjA5MmE4NjQ4ODZmNzBkMDEwNzAxYTA4MjAzNGQzMDgyMDM0OTMwODIwMjMxYTAwMzAyMDEwMjAyMTQ3YmRlZGRkMjQ0NGNkMWNkZmU1YzQxYTgxMDJjODliN2RmMmU2Y2JmMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMzAxZTE3MGQzMjMyMzEzMDMyMzgzMTM2MzEzMDM1MzY1YTE3MGQzMjMzMzEzMDMyMzgzMTM2MzEzMDM1MzY1YTMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTMwODIwMTIyMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDM4MjAxMGYwMDMwODIwMTBhMDI4MjAxMDEwMGM4YjZjZjY5ODk5Y2QxZjBlYmI0Y2E2NDVjMDVlNzBlMGQyZWZlZGRjYzYxZDA4OWNiZDUxNWEzOWEzNTc5YjkyMzQzYjYxZWM3NTAwNjBmYjRlZDM3ODc2MzMyNDAwZTQyNWYxZDM3NmM3ZTc1YzI5NzMzMTRlZGY0YmIzMGM4ZjhkZDAzYjlmY2ZmOTU1YTI0NWQ0OTEzN2FkNmU2MDA1NmNhYzE5NTUyYTg2NWQ1MjE4NzE4N2NjMDQyYzljNDllM2UzYTljMTdhNTM0YjQ1M2NkYWJjMGNiMTEzYjRmNjNmNWIzMTc0YjllZTk5MDJiMTkxMGQxMTQ5NmEyNzlhNzQzMjZhZGNmZWUxMGJmZDllN2ViYWZiYjM3N2JlOWI2Mzk1OTE2NWQxM2RkNTc1MTE3MWNhZGFkM2MxZDNhZGFjNjhiYzgwMTFkNjFiNTRjZjYwMTc4YmUzNjgzOWE4OWFjOTFhYjQxOWUzY2EzN2Q2YmE4ODFkMjU1MThjNGRiNjhiY2E2ZjdjODM2MDJmNjk5YTg2YjE3ZmIxZTc3M2JjYmU3NGJiOTNhNDliMjUxYWU4NjQyOGI1NzQwZTE4NjhiYjFkNmZhYjllMjg3MTJlOThlYzMxOWFkOGZjYTRkNzMwMTBjNGIwOWM0YjgwNDU4OTYxZTdjZjA4MzUzMDIwMzAxMDAwMWEzNTMzMDUxMzAxZDA2MDM1NTFkMGUwNDE2MDQxNDhhZWVlNTk0N2NjNjdjNWRkNTE1YTc2ZTJhN2VjZDMxZWU1MmZkYzgzMDFmMDYwMzU1MWQyMzA0MTgzMDE2ODAxNDhhZWVlNTk0N2NjNjdjNWRkNTE1YTc2ZTJhN2VjZDMxZWU1MmZkYzgzMDBmMDYwMzU1MWQxMzAxMDFmZjA0MDUzMDAzMDEwMWZmMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMDM4MjAxMDEwMDgyMWQ2Yjk4Y2Q0NTdkZWJkMmIwODFhY2EyN2ViZWNkNGY5M2FjYzgyODQ0M2IzOWVhYmZmYTlmYTRlOWU0NTQzYjQ2ZmNjMzFlMmI1YjQ4MTc3OTAzZGVhNjk2OWFjNGEyY2M2NTcwNjUwMzkwZjFiMDhkNDNhNGMyZjk3NWM3ZWQ4YmYzMzU2YzcyMTgzODAyMTI0NTFhOGYxMWRlNDY1NTNjYmNkNjViNDI1NGRkYjhmNjY4MzRlYjIxZGRhMmE4ZjMzYjU4MWUxNDg0NTU3YWNhMWI5NGVlODkzMWRkZjE2MDM3YjdhNzE3MTMyMWE5MTkzNmFmYzI3ZmZjZTM5NWRlNzVkNWY3MGNiOGI1YWVlMDVmZjUwNzA4OGQ2NWFmMWU0Mzk2NmNkNDJjYmU2ZjdmYWNmOGRhZTA1NWRkODIyMmIxNjk2NTIxNzIzZjgxMjQ1MTc4NTk1Yzk4NWFlOTE3ZmQ0YjM5OTg3NzNlMWE5N2I3YmQxMDA4NTQ0NmY0MjU5YmNjMDlhNDU0OTI5MjgyYzFiODliNzFlZDU4N2E3NzVlMGEzZDQ1MzYzNDFmNDVkYWU5NjllODA2Yzk2ZmVmYzcxMDY3Nzc2YzAyYmEyMjEyMmI5MTk5YjE0YzBjMjhjMDQ0ODc1MDkwNzBiOTdmM2RkMmQ2ZDk3MjczMzE4MjAxNzczMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDI1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwNWJlY2Q4NzE5NWMxZGVmZjkwYzI0YzkxMjY5YjU1YjNmMDY5YmMyMjVjMzI2YzMxNGMxYTUxNzg2ZmZlMTRjODMwYmU0ZTRiYzczY2JhMzZjOTc2NzdiNDQxNjgyNzliZTkxZTdjZGY3YzE5Mzg2YWUyMTg2MjcxOWQxM2EzYTBmZmYwODAzZDQ2MDk2MmYyY2RhODM3MTQ4NDg3MzI1MmMzZDcwNTRkYjgxNDNlMmIwODFhMzgxNmVkMDgwNGNhNTA5OWFlNWZlY2U4M2Q1YzJjMzc4M2IxOTg4YjRiNDZkYzk0ZTU1NTg3YTEwN2VhMTU0NmJmMjJkMjhhMDk3ZjY1MmE0MDY2ZGMyOTY1MjY5MDY5YWYyZjUxNzZiYjhjZTljYTZkMTFmOTY3NTdmMDMyMDRmNzU2NzAzNTg3ZDAwYWQ0MjQ3OTZjOTJmYzdhZWI2ZjQ5NDQzMTk5OWVkYTMwOTkwZTRmNTc3MzYzMmVkMjU4ZmUwMjc2NjczNTk5ZGE2ZmNlMzVjZGFkNzcyNmEwYmIwMjRjYWQ5OTZiODhlMGNiOTg4NTRjZWI1YzBiNmVjNzQ4ZDlmOWNlNmE2Y2Q0Mzc4NThiYWNiODE0NjE4YTI3MmZmM2E0MTVjNmUwN2YzZGIwOTg4Nzc3ZmRlYzg0NWE5N2JmN2QxMDJkZDAiCiAKIFBLQ1M3IFBhcnNlIEZhaWx1cmUgSW52YWxpZCBBU04xOiBDaGFuZ2UgdGFnIDBjIHRvIDAyICMyNjcuMAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHBrY3M3X2FzbjFfZmFpbDoiMzA4MjA1MDAwNjA5MmE4NjQ4ODZmNzBkMDEwNzAyYTA4MjA0ZjEzMDgyMDRlZDAyMDEwMTMxMGYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBiMDYwOTJhODY0ODg2ZjcwZDAxMDcwMWEwODIwMzRkMzA4MjAzNDkzMDgyMDIzMWEwMDMwMjAxMDIwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTMwMWUxNzBkMzIzMjMxMzAzMjM4MzEzNjMxMzAzNTM2NWExNzBkMzIzMzMxMzAzMjM4MzEzNjMxMzAzNTM2NWEzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEzMDgyMDEyMjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDAzODIwMTBmMDAzMDgyMDEwYTAyODIwMTAxMDBjOGI2Y2Y2OTg5OWNkMWYwZWJiNGNhNjQ1YzA1ZTcwZTBkMmVmZWRkY2M2MWQwODljYmQ1MTVhMzlhMzU3OWI5MjM0M2I2MWVjNzUwMDYwZmI0ZWQzNzg3NjMzMjQwMGU0MjVmMWQzNzZjN2U3NWMyOTczMzE0ZWRmNGJiMzBjOGY4ZGQwM2I5ZmNmZjk1NWEyNDVkNDkxMzdhZDZlNjAwNTZjYWMxOTU1MmE4NjVkNTIxODcxODdjYzA0MmM5YzQ5ZTNlM2E5YzE3YTUzNGI0NTNjZGFiYzBjYjExM2I0ZjYzZjViMzE3NGI5ZWU5OTAyYjE5MTBkMTE0OTZhMjc5YTc0MzI2YWRjZmVlMTBiZmQ5ZTdlYmFmYmIzNzdiZTliNjM5NTkxNjVkMTNkZDU3NTExNzFjYWRhZDNjMWQzYWRhYzY4YmM4MDExZDYxYjU0Y2Y2MDE3OGJlMzY4MzlhODlhYzkxYWI0MTllM2NhMzdkNmJhODgxZDI1NTE4YzRkYjY4YmNhNmY3YzgzNjAyZjY5OWE4NmIxN2ZiMWU3NzNiY2JlNzRiYjkzYTQ5YjI1MWFlODY0MjhiNTc0MGUxODY4YmIxZDZmYWI5ZTI4NzEyZTk4ZWMzMTlhZDhmY2E0ZDczMDEwYzRiMDljNGI4MDQ1ODk2MWU3Y2YwODM1MzAyMDMwMTAwMDFhMzUzMzA1MTMwMWQwNjAzNTUxZDBlMDQxNjA0MTQ4YWVlZTU5NDdjYzY3YzVkZDUxNWE3NmUyYTdlY2QzMWVlNTJmZGM4MzAxZjA2MDM1NTFkMjMwNDE4MzAxNjgwMTQ4YWVlZTU5NDdjYzY3YzVkZDUxNWE3NmUyYTdlY2QzMWVlNTJmZGM4MzAwZjA2MDM1NTFkMTMwMTAxZmYwNDA1MzAwMzAxMDFmZjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDAzODIwMTAxMDA4MjFkNmI5OGNkNDU3ZGViZDJiMDgxYWNhMjdlYmVjZDRmOTNhY2M4Mjg0NDNiMzllYWJmZmE5ZmE0ZTllNDU0M2I0NmZjYzMxZTJiNWI0ODE3NzkwM2RlYTY5NjlhYzRhMmNjNjU3MDY1MDM5MGYxYjA4ZDQzYTRjMmY5NzVjN2VkOGJmMzM1NmM3MjE4MzgwMjEyNDUxYThmMTFkZTQ2NTUzY2JjZDY1YjQyNTRkZGI4ZjY2ODM0ZWIyMWRkYTJhOGYzM2I1ODFlMTQ4NDU1N2FjYTFiOTRlZTg5MzFkZGYxNjAzN2I3YTcxNzEzMjFhOTE5MzZhZmMyN2ZmY2UzOTVkZTc1ZDVmNzBjYjhiNWFlZTA1ZmY1MDcwODhkNjVhZjFlNDM5NjZjZDQyY2JlNmY3ZmFjZjhkYWUwNTVkZDgyMjJiMTY5NjUyMTcyM2Y4MTI0NTE3ODU5NWM5ODVhZTkxN2ZkNGIzOTk4NzczZTFhOTdiN2JkMTAwODU0NDZmNDI1OWJjYzA5YTQ1NDkyOTI4MmMxYjg5YjcxZWQ1ODdhNzc1ZTBhM2Q0NTM2MzQxZjQ1ZGFlOTY5ZTgwNmM5NmZlZmM3MTA2Nzc3NmMwMmJhMjIxMjJiOTE5OWIxNGMwYzI4YzA0NDg3NTA5MDcwYjk3ZjNkZDJkNmQ5NzI3MzMxODIwMTc3MzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMDIwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDViZWNkODcxOTVjMWRlZmY5MGMyNGM5MTI2OWI1NWIzZjA2OWJjMjI1YzMyNmMzMTRjMWE1MTc4NmZmZTE0YzgzMGJlNGU0YmM3M2NiYTM2Yzk3Njc3YjQ0MTY4Mjc5YmU5MWU3Y2RmN2MxOTM4NmFlMjE4NjI3MTlkMTNhM2EwZmZmMDgwM2Q0NjA5NjJmMmNkYTgzNzE0ODQ4NzMyNTJjM2Q3MDU0ZGI4MTQzZTJiMDgxYTM4MTZlZDA4MDRjYTUwOTlhZTVmZWNlODNkNWMyYzM3ODNiMTk4OGI0YjQ2ZGM5NGU1NTU4N2ExMDdlYTE1NDZiZjIyZDI4YTA5N2Y2NTJhNDA2NmRjMjk2NTI2OTA2OWFmMmY1MTc2YmI4Y2U5Y2E2ZDExZjk2NzU3ZjAzMjA0Zjc1NjcwMzU4N2QwMGFkNDI0Nzk2YzkyZmM3YWViNmY0OTQ0MzE5OTllZGEzMDk5MGU0ZjU3NzM2MzJlZDI1OGZlMDI3NjY3MzU5OWRhNmZjZTM1Y2RhZDc3MjZhMGJiMDI0Y2FkOTk2Yjg4ZTBjYjk4ODU0Y2ViNWMwYjZlYzc0OGQ5ZjljZTZhNmNkNDM3ODU4YmFjYjgxNDYxOGEyNzJmZjNhNDE1YzZlMDdmM2RiMDk4ODc3N2ZkZWM4NDVhOTdiZjdkMTAyZGQwIgogCiBQS0NTNyBQYXJzZSBGYWlsdXJlIEludmFsaWQgQVNOMTogQ2hhbmdlIGxlbmd0aCBmcm9tIDUgdG8gNiAjMjY4LjAKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBwa2NzN19hc24xX2ZhaWw6IjMwODIwNTAwMDYwOTJhODY0ODg2ZjcwZDAxMDcwMmEwODIwNGYxMzA4MjA0ZWQwMjAxMDEzMTBmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwYjA2MDkyYTg2NDg4NmY3MGQwMTA3MDFhMDgyMDM0ZDMwODIwMzQ5MzA4MjAyMzFhMDAzMDIwMTAyMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEzMDFlMTcwZDMyMzIzMTMwMzIzODMxMzYzMTMwMzUzNjVhMTcwZDMyMzMzMTMwMzIzODMxMzYzMTMwMzUzNjVhMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMzA4MjAxMjIzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwMzgyMDEwZjAwMzA4MjAxMGEwMjgyMDEwMTAwYzhiNmNmNjk4OTljZDFmMGViYjRjYTY0NWMwNWU3MGUwZDJlZmVkZGNjNjFkMDg5Y2JkNTE1YTM5YTM1NzliOTIzNDNiNjFlYzc1MDA2MGZiNGVkMzc4NzYzMzI0MDBlNDI1ZjFkMzc2YzdlNzVjMjk3MzMxNGVkZjRiYjMwYzhmOGRkMDNiOWZjZmY5NTVhMjQ1ZDQ5MTM3YWQ2ZTYwMDU2Y2FjMTk1NTJhODY1ZDUyMTg3MTg3Y2MwNDJjOWM0OWUzZTNhOWMxN2E1MzRiNDUzY2RhYmMwY2IxMTNiNGY2M2Y1YjMxNzRiOWVlOTkwMmIxOTEwZDExNDk2YTI3OWE3NDMyNmFkY2ZlZTEwYmZkOWU3ZWJhZmJiMzc3YmU5YjYzOTU5MTY1ZDEzZGQ1NzUxMTcxY2FkYWQzYzFkM2FkYWM2OGJjODAxMWQ2MWI1NGNmNjAxNzhiZTM2ODM5YTg5YWM5MWFiNDE5ZTNjYTM3ZDZiYTg4MWQyNTUxOGM0ZGI2OGJjYTZmN2M4MzYwMmY2OTlhODZiMTdmYjFlNzczYmNiZTc0YmI5M2E0OWIyNTFhZTg2NDI4YjU3NDBlMTg2OGJiMWQ2ZmFiOWUyODcxMmU5OGVjMzE5YWQ4ZmNhNGQ3MzAxMGM0YjA5YzRiODA0NTg5NjFlN2NmMDgzNTMwMjAzMDEwMDAxYTM1MzMwNTEzMDFkMDYwMzU1MWQwZTA0MTYwNDE0OGFlZWU1OTQ3Y2M2N2M1ZGQ1MTVhNzZlMmE3ZWNkMzFlZTUyZmRjODMwMWYwNjAzNTUxZDIzMDQxODMwMTY4MDE0OGFlZWU1OTQ3Y2M2N2M1ZGQ1MTVhNzZlMmE3ZWNkMzFlZTUyZmRjODMwMGYwNjAzNTUxZDEzMDEwMWZmMDQwNTMwMDMwMTAxZmYzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAwMzgyMDEwMTAwODIxZDZiOThjZDQ1N2RlYmQyYjA4MWFjYTI3ZWJlY2Q0ZjkzYWNjODI4NDQzYjM5ZWFiZmZhOWZhNGU5ZTQ1NDNiNDZmY2MzMWUyYjViNDgxNzc5MDNkZWE2OTY5YWM0YTJjYzY1NzA2NTAzOTBmMWIwOGQ0M2E0YzJmOTc1YzdlZDhiZjMzNTZjNzIxODM4MDIxMjQ1MWE4ZjExZGU0NjU1M2NiY2Q2NWI0MjU0ZGRiOGY2NjgzNGViMjFkZGEyYThmMzNiNTgxZTE0ODQ1NTdhY2ExYjk0ZWU4OTMxZGRmMTYwMzdiN2E3MTcxMzIxYTkxOTM2YWZjMjdmZmNlMzk1ZGU3NWQ1ZjcwY2I4YjVhZWUwNWZmNTA3MDg4ZDY1YWYxZTQzOTY2Y2Q0MmNiZTZmN2ZhY2Y4ZGFlMDU1ZGQ4MjIyYjE2OTY1MjE3MjNmODEyNDUxNzg1OTVjOTg1YWU5MTdmZDRiMzk5ODc3M2UxYTk3YjdiZDEwMDg1NDQ2ZjQyNTliY2MwOWE0NTQ5MjkyODJjMWI4OWI3MWVkNTg3YTc3NWUwYTNkNDUzNjM0MWY0NWRhZTk2OWU4MDZjOTZmZWZjNzEwNjc3NzZjMDJiYTIyMTIyYjkxOTliMTRjMGMyOGMwNDQ4NzUwOTA3MGI5N2YzZGQyZDZkOTcyNzMzMTgyMDE3NzMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDY1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTAyMTQ3YmRlZGRkMjQ0NGNkMWNkZmU1YzQxYTgxMDJjODliN2RmMmU2Y2JmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDA1YmVjZDg3MTk1YzFkZWZmOTBjMjRjOTEyNjliNTViM2YwNjliYzIyNWMzMjZjMzE0YzFhNTE3ODZmZmUxNGM4MzBiZTRlNGJjNzNjYmEzNmM5NzY3N2I0NDE2ODI3OWJlOTFlN2NkZjdjMTkzODZhZTIxODYyNzE5ZDEzYTNhMGZmZjA4MDNkNDYwOTYyZjJjZGE4MzcxNDg0ODczMjUyYzNkNzA1NGRiODE0M2UyYjA4MWEzODE2ZWQwODA0Y2E1MDk5YWU1ZmVjZTgzZDVjMmMzNzgzYjE5ODhiNGI0NmRjOTRlNTU1ODdhMTA3ZWExNTQ2YmYyMmQyOGEwOTdmNjUyYTQwNjZkYzI5NjUyNjkwNjlhZjJmNTE3NmJiOGNlOWNhNmQxMWY5Njc1N2YwMzIwNGY3NTY3MDM1ODdkMDBhZDQyNDc5NmM5MmZjN2FlYjZmNDk0NDMxOTk5ZWRhMzA5OTBlNGY1NzczNjMyZWQyNThmZTAyNzY2NzM1OTlkYTZmY2UzNWNkYWQ3NzI2YTBiYjAyNGNhZDk5NmI4OGUwY2I5ODg1NGNlYjVjMGI2ZWM3NDhkOWY5Y2U2YTZjZDQzNzg1OGJhY2I4MTQ2MThhMjcyZmYzYTQxNWM2ZTA3ZjNkYjA5ODg3NzdmZGVjODQ1YTk3YmY3ZDEwMmRkMCIKIAogUEtDUzcgUGFyc2UgRmFpbHVyZSBJbnZhbGlkIEFTTjE6IENoYW5nZSBsZW5ndGggZnJvbSA1IHRvIDQgIzI2OS4wCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NgogcGtjczdfYXNuMV9mYWlsOiIzMDgyMDUwMDA2MDkyYTg2NDg4NmY3MGQwMTA3MDJhMDgyMDRmMTMwODIwNGVkMDIwMTAxMzEwZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGIwNjA5MmE4NjQ4ODZmNzBkMDEwNzAxYTA4MjAzNGQzMDgyMDM0OTMwODIwMjMxYTAwMzAyMDEwMjAyMTQ3YmRlZGRkMjQ0NGNkMWNkZmU1YzQxYTgxMDJjODliN2RmMmU2Y2JmMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMzAxZTE3MGQzMjMyMzEzMDMyMzgzMTM2MzEzMDM1MzY1YTE3MGQzMjMzMzEzMDMyMzgzMTM2MzEzMDM1MzY1YTMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTMwODIwMTIyMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDM4MjAxMGYwMDMwODIwMTBhMDI4MjAxMDEwMGM4YjZjZjY5ODk5Y2QxZjBlYmI0Y2E2NDVjMDVlNzBlMGQyZWZlZGRjYzYxZDA4OWNiZDUxNWEzOWEzNTc5YjkyMzQzYjYxZWM3NTAwNjBmYjRlZDM3ODc2MzMyNDAwZTQyNWYxZDM3NmM3ZTc1YzI5NzMzMTRlZGY0YmIzMGM4ZjhkZDAzYjlmY2ZmOTU1YTI0NWQ0OTEzN2FkNmU2MDA1NmNhYzE5NTUyYTg2NWQ1MjE4NzE4N2NjMDQyYzljNDllM2UzYTljMTdhNTM0YjQ1M2NkYWJjMGNiMTEzYjRmNjNmNWIzMTc0YjllZTk5MDJiMTkxMGQxMTQ5NmEyNzlhNzQzMjZhZGNmZWUxMGJmZDllN2ViYWZiYjM3N2JlOWI2Mzk1OTE2NWQxM2RkNTc1MTE3MWNhZGFkM2MxZDNhZGFjNjhiYzgwMTFkNjFiNTRjZjYwMTc4YmUzNjgzOWE4OWFjOTFhYjQxOWUzY2EzN2Q2YmE4ODFkMjU1MThjNGRiNjhiY2E2ZjdjODM2MDJmNjk5YTg2YjE3ZmIxZTc3M2JjYmU3NGJiOTNhNDliMjUxYWU4NjQyOGI1NzQwZTE4NjhiYjFkNmZhYjllMjg3MTJlOThlYzMxOWFkOGZjYTRkNzMwMTBjNGIwOWM0YjgwNDU4OTYxZTdjZjA4MzUzMDIwMzAxMDAwMWEzNTMzMDUxMzAxZDA2MDM1NTFkMGUwNDE2MDQxNDhhZWVlNTk0N2NjNjdjNWRkNTE1YTc2ZTJhN2VjZDMxZWU1MmZkYzgzMDFmMDYwMzU1MWQyMzA0MTgzMDE2ODAxNDhhZWVlNTk0N2NjNjdjNWRkNTE1YTc2ZTJhN2VjZDMxZWU1MmZkYzgzMDBmMDYwMzU1MWQxMzAxMDFmZjA0MDUzMDAzMDEwMWZmMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMDM4MjAxMDEwMDgyMWQ2Yjk4Y2Q0NTdkZWJkMmIwODFhY2EyN2ViZWNkNGY5M2FjYzgyODQ0M2IzOWVhYmZmYTlmYTRlOWU0NTQzYjQ2ZmNjMzFlMmI1YjQ4MTc3OTAzZGVhNjk2OWFjNGEyY2M2NTcwNjUwMzkwZjFiMDhkNDNhNGMyZjk3NWM3ZWQ4YmYzMzU2YzcyMTgzODAyMTI0NTFhOGYxMWRlNDY1NTNjYmNkNjViNDI1NGRkYjhmNjY4MzRlYjIxZGRhMmE4ZjMzYjU4MWUxNDg0NTU3YWNhMWI5NGVlODkzMWRkZjE2MDM3YjdhNzE3MTMyMWE5MTkzNmFmYzI3ZmZjZTM5NWRlNzVkNWY3MGNiOGI1YWVlMDVmZjUwNzA4OGQ2NWFmMWU0Mzk2NmNkNDJjYmU2ZjdmYWNmOGRhZTA1NWRkODIyMmIxNjk2NTIxNzIzZjgxMjQ1MTc4NTk1Yzk4NWFlOTE3ZmQ0YjM5OTg3NzNlMWE5N2I3YmQxMDA4NTQ0NmY0MjU5YmNjMDlhNDU0OTI5MjgyYzFiODliNzFlZDU4N2E3NzVlMGEzZDQ1MzYzNDFmNDVkYWU5NjllODA2Yzk2ZmVmYzcxMDY3Nzc2YzAyYmEyMjEyMmI5MTk5YjE0YzBjMjhjMDQ0ODc1MDkwNzBiOTdmM2RkMmQ2ZDk3MjczMzE4MjAxNzczMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA0NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwNWJlY2Q4NzE5NWMxZGVmZjkwYzI0YzkxMjY5YjU1YjNmMDY5YmMyMjVjMzI2YzMxNGMxYTUxNzg2ZmZlMTRjODMwYmU0ZTRiYzczY2JhMzZjOTc2NzdiNDQxNjgyNzliZTkxZTdjZGY3YzE5Mzg2YWUyMTg2MjcxOWQxM2EzYTBmZmYwODAzZDQ2MDk2MmYyY2RhODM3MTQ4NDg3MzI1MmMzZDcwNTRkYjgxNDNlMmIwODFhMzgxNmVkMDgwNGNhNTA5OWFlNWZlY2U4M2Q1YzJjMzc4M2IxOTg4YjRiNDZkYzk0ZTU1NTg3YTEwN2VhMTU0NmJmMjJkMjhhMDk3ZjY1MmE0MDY2ZGMyOTY1MjY5MDY5YWYyZjUxNzZiYjhjZTljYTZkMTFmOTY3NTdmMDMyMDRmNzU2NzAzNTg3ZDAwYWQ0MjQ3OTZjOTJmYzdhZWI2ZjQ5NDQzMTk5OWVkYTMwOTkwZTRmNTc3MzYzMmVkMjU4ZmUwMjc2NjczNTk5ZGE2ZmNlMzVjZGFkNzcyNmEwYmIwMjRjYWQ5OTZiODhlMGNiOTg4NTRjZWI1YzBiNmVjNzQ4ZDlmOWNlNmE2Y2Q0Mzc4NThiYWNiODE0NjE4YTI3MmZmM2E0MTVjNmUwN2YzZGIwOTg4Nzc3ZmRlYzg0NWE5N2JmN2QxMDJkZDAiCiAKIFBLQ1M3IFBhcnNlIEZhaWx1cmUgSW52YWxpZCBBU04xOiBDaGFuZ2UgdGFnIDMxIHRvIDAyICMyNzAuMAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHBrY3M3X2FzbjFfZmFpbDoiMzA4MjA1MDAwNjA5MmE4NjQ4ODZmNzBkMDEwNzAyYTA4MjA0ZjEzMDgyMDRlZDAyMDEwMTMxMGYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBiMDYwOTJhODY0ODg2ZjcwZDAxMDcwMWEwODIwMzRkMzA4MjAzNDkzMDgyMDIzMWEwMDMwMjAxMDIwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTMwMWUxNzBkMzIzMjMxMzAzMjM4MzEzNjMxMzAzNTM2NWExNzBkMzIzMzMxMzAzMjM4MzEzNjMxMzAzNTM2NWEzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEzMDgyMDEyMjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDAzODIwMTBmMDAzMDgyMDEwYTAyODIwMTAxMDBjOGI2Y2Y2OTg5OWNkMWYwZWJiNGNhNjQ1YzA1ZTcwZTBkMmVmZWRkY2M2MWQwODljYmQ1MTVhMzlhMzU3OWI5MjM0M2I2MWVjNzUwMDYwZmI0ZWQzNzg3NjMzMjQwMGU0MjVmMWQzNzZjN2U3NWMyOTczMzE0ZWRmNGJiMzBjOGY4ZGQwM2I5ZmNmZjk1NWEyNDVkNDkxMzdhZDZlNjAwNTZjYWMxOTU1MmE4NjVkNTIxODcxODdjYzA0MmM5YzQ5ZTNlM2E5YzE3YTUzNGI0NTNjZGFiYzBjYjExM2I0ZjYzZjViMzE3NGI5ZWU5OTAyYjE5MTBkMTE0OTZhMjc5YTc0MzI2YWRjZmVlMTBiZmQ5ZTdlYmFmYmIzNzdiZTliNjM5NTkxNjVkMTNkZDU3NTExNzFjYWRhZDNjMWQzYWRhYzY4YmM4MDExZDYxYjU0Y2Y2MDE3OGJlMzY4MzlhODlhYzkxYWI0MTllM2NhMzdkNmJhODgxZDI1NTE4YzRkYjY4YmNhNmY3YzgzNjAyZjY5OWE4NmIxN2ZiMWU3NzNiY2JlNzRiYjkzYTQ5YjI1MWFlODY0MjhiNTc0MGUxODY4YmIxZDZmYWI5ZTI4NzEyZTk4ZWMzMTlhZDhmY2E0ZDczMDEwYzRiMDljNGI4MDQ1ODk2MWU3Y2YwODM1MzAyMDMwMTAwMDFhMzUzMzA1MTMwMWQwNjAzNTUxZDBlMDQxNjA0MTQ4YWVlZTU5NDdjYzY3YzVkZDUxNWE3NmUyYTdlY2QzMWVlNTJmZGM4MzAxZjA2MDM1NTFkMjMwNDE4MzAxNjgwMTQ4YWVlZTU5NDdjYzY3YzVkZDUxNWE3NmUyYTdlY2QzMWVlNTJmZGM4MzAwZjA2MDM1NTFkMTMwMTAxZmYwNDA1MzAwMzAxMDFmZjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDAzODIwMTAxMDA4MjFkNmI5OGNkNDU3ZGViZDJiMDgxYWNhMjdlYmVjZDRmOTNhY2M4Mjg0NDNiMzllYWJmZmE5ZmE0ZTllNDU0M2I0NmZjYzMxZTJiNWI0ODE3NzkwM2RlYTY5NjlhYzRhMmNjNjU3MDY1MDM5MGYxYjA4ZDQzYTRjMmY5NzVjN2VkOGJmMzM1NmM3MjE4MzgwMjEyNDUxYThmMTFkZTQ2NTUzY2JjZDY1YjQyNTRkZGI4ZjY2ODM0ZWIyMWRkYTJhOGYzM2I1ODFlMTQ4NDU1N2FjYTFiOTRlZTg5MzFkZGYxNjAzN2I3YTcxNzEzMjFhOTE5MzZhZmMyN2ZmY2UzOTVkZTc1ZDVmNzBjYjhiNWFlZTA1ZmY1MDcwODhkNjVhZjFlNDM5NjZjZDQyY2JlNmY3ZmFjZjhkYWUwNTVkZDgyMjJiMTY5NjUyMTcyM2Y4MTI0NTE3ODU5NWM5ODVhZTkxN2ZkNGIzOTk4NzczZTFhOTdiN2JkMTAwODU0NDZmNDI1OWJjYzA5YTQ1NDkyOTI4MmMxYjg5YjcxZWQ1ODdhNzc1ZTBhM2Q0NTM2MzQxZjQ1ZGFlOTY5ZTgwNmM5NmZlZmM3MTA2Nzc3NmMwMmJhMjIxMjJiOTE5OWIxNGMwYzI4YzA0NDg3NTA5MDcwYjk3ZjNkZDJkNmQ5NzI3MzMxODIwMTc3MzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzcwMjE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDViZWNkODcxOTVjMWRlZmY5MGMyNGM5MTI2OWI1NWIzZjA2OWJjMjI1YzMyNmMzMTRjMWE1MTc4NmZmZTE0YzgzMGJlNGU0YmM3M2NiYTM2Yzk3Njc3YjQ0MTY4Mjc5YmU5MWU3Y2RmN2MxOTM4NmFlMjE4NjI3MTlkMTNhM2EwZmZmMDgwM2Q0NjA5NjJmMmNkYTgzNzE0ODQ4NzMyNTJjM2Q3MDU0ZGI4MTQzZTJiMDgxYTM4MTZlZDA4MDRjYTUwOTlhZTVmZWNlODNkNWMyYzM3ODNiMTk4OGI0YjQ2ZGM5NGU1NTU4N2ExMDdlYTE1NDZiZjIyZDI4YTA5N2Y2NTJhNDA2NmRjMjk2NTI2OTA2OWFmMmY1MTc2YmI4Y2U5Y2E2ZDExZjk2NzU3ZjAzMjA0Zjc1NjcwMzU4N2QwMGFkNDI0Nzk2YzkyZmM3YWViNmY0OTQ0MzE5OTllZGEzMDk5MGU0ZjU3NzM2MzJlZDI1OGZlMDI3NjY3MzU5OWRhNmZjZTM1Y2RhZDc3MjZhMGJiMDI0Y2FkOTk2Yjg4ZTBjYjk4ODU0Y2ViNWMwYjZlYzc0OGQ5ZjljZTZhNmNkNDM3ODU4YmFjYjgxNDYxOGEyNzJmZjNhNDE1YzZlMDdmM2RiMDk4ODc3N2ZkZWM4NDVhOTdiZjdkMTAyZGQwIgogCiBQS0NTNyBQYXJzZSBGYWlsdXJlIEludmFsaWQgQVNOMTogQ2hhbmdlIGxlbmd0aCBmcm9tIDIxIHRvIDIyICMyNzEuMAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHBrY3M3X2FzbjFfZmFpbDoiMzA4MjA1MDAwNjA5MmE4NjQ4ODZmNzBkMDEwNzAyYTA4MjA0ZjEzMDgyMDRlZDAyMDEwMTMxMGYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBiMDYwOTJhODY0ODg2ZjcwZDAxMDcwMWEwODIwMzRkMzA4MjAzNDkzMDgyMDIzMWEwMDMwMjAxMDIwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTMwMWUxNzBkMzIzMjMxMzAzMjM4MzEzNjMxMzAzNTM2NWExNzBkMzIzMzMxMzAzMjM4MzEzNjMxMzAzNTM2NWEzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEzMDgyMDEyMjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDAzODIwMTBmMDAzMDgyMDEwYTAyODIwMTAxMDBjOGI2Y2Y2OTg5OWNkMWYwZWJiNGNhNjQ1YzA1ZTcwZTBkMmVmZWRkY2M2MWQwODljYmQ1MTVhMzlhMzU3OWI5MjM0M2I2MWVjNzUwMDYwZmI0ZWQzNzg3NjMzMjQwMGU0MjVmMWQzNzZjN2U3NWMyOTczMzE0ZWRmNGJiMzBjOGY4ZGQwM2I5ZmNmZjk1NWEyNDVkNDkxMzdhZDZlNjAwNTZjYWMxOTU1MmE4NjVkNTIxODcxODdjYzA0MmM5YzQ5ZTNlM2E5YzE3YTUzNGI0NTNjZGFiYzBjYjExM2I0ZjYzZjViMzE3NGI5ZWU5OTAyYjE5MTBkMTE0OTZhMjc5YTc0MzI2YWRjZmVlMTBiZmQ5ZTdlYmFmYmIzNzdiZTliNjM5NTkxNjVkMTNkZDU3NTExNzFjYWRhZDNjMWQzYWRhYzY4YmM4MDExZDYxYjU0Y2Y2MDE3OGJlMzY4MzlhODlhYzkxYWI0MTllM2NhMzdkNmJhODgxZDI1NTE4YzRkYjY4YmNhNmY3YzgzNjAyZjY5OWE4NmIxN2ZiMWU3NzNiY2JlNzRiYjkzYTQ5YjI1MWFlODY0MjhiNTc0MGUxODY4YmIxZDZmYWI5ZTI4NzEyZTk4ZWMzMTlhZDhmY2E0ZDczMDEwYzRiMDljNGI4MDQ1ODk2MWU3Y2YwODM1MzAyMDMwMTAwMDFhMzUzMzA1MTMwMWQwNjAzNTUxZDBlMDQxNjA0MTQ4YWVlZTU5NDdjYzY3YzVkZDUxNWE3NmUyYTdlY2QzMWVlNTJmZGM4MzAxZjA2MDM1NTFkMjMwNDE4MzAxNjgwMTQ4YWVlZTU5NDdjYzY3YzVkZDUxNWE3NmUyYTdlY2QzMWVlNTJmZGM4MzAwZjA2MDM1NTFkMTMwMTAxZmYwNDA1MzAwMzAxMDFmZjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDAzODIwMTAxMDA4MjFkNmI5OGNkNDU3ZGViZDJiMDgxYWNhMjdlYmVjZDRmOTNhY2M4Mjg0NDNiMzllYWJmZmE5ZmE0ZTllNDU0M2I0NmZjYzMxZTJiNWI0ODE3NzkwM2RlYTY5NjlhYzRhMmNjNjU3MDY1MDM5MGYxYjA4ZDQzYTRjMmY5NzVjN2VkOGJmMzM1NmM3MjE4MzgwMjEyNDUxYThmMTFkZTQ2NTUzY2JjZDY1YjQyNTRkZGI4ZjY2ODM0ZWIyMWRkYTJhOGYzM2I1ODFlMTQ4NDU1N2FjYTFiOTRlZTg5MzFkZGYxNjAzN2I3YTcxNzEzMjFhOTE5MzZhZmMyN2ZmY2UzOTVkZTc1ZDVmNzBjYjhiNWFlZTA1ZmY1MDcwODhkNjVhZjFlNDM5NjZjZDQyY2JlNmY3ZmFjZjhkYWUwNTVkZDgyMjJiMTY5NjUyMTcyM2Y4MTI0NTE3ODU5NWM5ODVhZTkxN2ZkNGIzOTk4NzczZTFhOTdiN2JkMTAwODU0NDZmNDI1OWJjYzA5YTQ1NDkyOTI4MmMxYjg5YjcxZWQ1ODdhNzc1ZTBhM2Q0NTM2MzQxZjQ1ZGFlOTY5ZTgwNmM5NmZlZmM3MTA2Nzc3NmMwMmJhMjIxMjJiOTE5OWIxNGMwYzI4YzA0NDg3NTA5MDcwYjk3ZjNkZDJkNmQ5NzI3MzMxODIwMTc3MzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE2MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDViZWNkODcxOTVjMWRlZmY5MGMyNGM5MTI2OWI1NWIzZjA2OWJjMjI1YzMyNmMzMTRjMWE1MTc4NmZmZTE0YzgzMGJlNGU0YmM3M2NiYTM2Yzk3Njc3YjQ0MTY4Mjc5YmU5MWU3Y2RmN2MxOTM4NmFlMjE4NjI3MTlkMTNhM2EwZmZmMDgwM2Q0NjA5NjJmMmNkYTgzNzE0ODQ4NzMyNTJjM2Q3MDU0ZGI4MTQzZTJiMDgxYTM4MTZlZDA4MDRjYTUwOTlhZTVmZWNlODNkNWMyYzM3ODNiMTk4OGI0YjQ2ZGM5NGU1NTU4N2ExMDdlYTE1NDZiZjIyZDI4YTA5N2Y2NTJhNDA2NmRjMjk2NTI2OTA2OWFmMmY1MTc2YmI4Y2U5Y2E2ZDExZjk2NzU3ZjAzMjA0Zjc1NjcwMzU4N2QwMGFkNDI0Nzk2YzkyZmM3YWViNmY0OTQ0MzE5OTllZGEzMDk5MGU0ZjU3NzM2MzJlZDI1OGZlMDI3NjY3MzU5OWRhNmZjZTM1Y2RhZDc3MjZhMGJiMDI0Y2FkOTk2Yjg4ZTBjYjk4ODU0Y2ViNWMwYjZlYzc0OGQ5ZjljZTZhNmNkNDM3ODU4YmFjYjgxNDYxOGEyNzJmZjNhNDE1YzZlMDdmM2RiMDk4ODc3N2ZkZWM4NDVhOTdiZjdkMTAyZGQwIgogCiBQS0NTNyBQYXJzZSBGYWlsdXJlIEludmFsaWQgQVNOMTogQ2hhbmdlIGNvbnRlbnRzIG9mIHRhZyAzMSB0byBjb250YWluIG9uZSB1bmFjY291bnRlZCBleHRyYSBieXRlICMyNzIuMAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHBrY3M3X2FzbjFfZmFpbDoiMzA4MjA1MDAwNjA5MmE4NjQ4ODZmNzBkMDEwNzAyYTA4MjA0ZjEzMDgyMDRlZDAyMDEwMTMxMGYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBiMDYwOTJhODY0ODg2ZjcwZDAxMDcwMWEwODIwMzRkMzA4MjAzNDkzMDgyMDIzMWEwMDMwMjAxMDIwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTMwMWUxNzBkMzIzMjMxMzAzMjM4MzEzNjMxMzAzNTM2NWExNzBkMzIzMzMxMzAzMjM4MzEzNjMxMzAzNTM2NWEzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEzMDgyMDEyMjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDAzODIwMTBmMDAzMDgyMDEwYTAyODIwMTAxMDBjOGI2Y2Y2OTg5OWNkMWYwZWJiNGNhNjQ1YzA1ZTcwZTBkMmVmZWRkY2M2MWQwODljYmQ1MTVhMzlhMzU3OWI5MjM0M2I2MWVjNzUwMDYwZmI0ZWQzNzg3NjMzMjQwMGU0MjVmMWQzNzZjN2U3NWMyOTczMzE0ZWRmNGJiMzBjOGY4ZGQwM2I5ZmNmZjk1NWEyNDVkNDkxMzdhZDZlNjAwNTZjYWMxOTU1MmE4NjVkNTIxODcxODdjYzA0MmM5YzQ5ZTNlM2E5YzE3YTUzNGI0NTNjZGFiYzBjYjExM2I0ZjYzZjViMzE3NGI5ZWU5OTAyYjE5MTBkMTE0OTZhMjc5YTc0MzI2YWRjZmVlMTBiZmQ5ZTdlYmFmYmIzNzdiZTliNjM5NTkxNjVkMTNkZDU3NTExNzFjYWRhZDNjMWQzYWRhYzY4YmM4MDExZDYxYjU0Y2Y2MDE3OGJlMzY4MzlhODlhYzkxYWI0MTllM2NhMzdkNmJhODgxZDI1NTE4YzRkYjY4YmNhNmY3YzgzNjAyZjY5OWE4NmIxN2ZiMWU3NzNiY2JlNzRiYjkzYTQ5YjI1MWFlODY0MjhiNTc0MGUxODY4YmIxZDZmYWI5ZTI4NzEyZTk4ZWMzMTlhZDhmY2E0ZDczMDEwYzRiMDljNGI4MDQ1ODk2MWU3Y2YwODM1MzAyMDMwMTAwMDFhMzUzMzA1MTMwMWQwNjAzNTUxZDBlMDQxNjA0MTQ4YWVlZTU5NDdjYzY3YzVkZDUxNWE3NmUyYTdlY2QzMWVlNTJmZGM4MzAxZjA2MDM1NTFkMjMwNDE4MzAxNjgwMTQ4YWVlZTU5NDdjYzY3YzVkZDUxNWE3NmUyYTdlY2QzMWVlNTJmZGM4MzAwZjA2MDM1NTFkMTMwMTAxZmYwNDA1MzAwMzAxMDFmZjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDAzODIwMTAxMDA4MjFkNmI5OGNkNDU3ZGViZDJiMDgxYWNhMjdlYmVjZDRmOTNhY2M4Mjg0NDNiMzllYWJmZmE5ZmE0ZTllNDU0M2I0NmZjYzMxZTJiNWI0ODE3NzkwM2RlYTY5NjlhYzRhMmNjNjU3MDY1MDM5MGYxYjA4ZDQzYTRjMmY5NzVjN2VkOGJmMzM1NmM3MjE4MzgwMjEyNDUxYThmMTFkZTQ2NTUzY2JjZDY1YjQyNTRkZGI4ZjY2ODM0ZWIyMWRkYTJhOGYzM2I1ODFlMTQ4NDU1N2FjYTFiOTRlZTg5MzFkZGYxNjAzN2I3YTcxNzEzMjFhOTE5MzZhZmMyN2ZmY2UzOTVkZTc1ZDVmNzBjYjhiNWFlZTA1ZmY1MDcwODhkNjVhZjFlNDM5NjZjZDQyY2JlNmY3ZmFjZjhkYWUwNTVkZDgyMjJiMTY5NjUyMTcyM2Y4MTI0NTE3ODU5NWM5ODVhZTkxN2ZkNGIzOTk4NzczZTFhOTdiN2JkMTAwODU0NDZmNDI1OWJjYzA5YTQ1NDkyOTI4MmMxYjg5YjcxZWQ1ODdhNzc1ZTBhM2Q0NTM2MzQxZjQ1ZGFlOTY5ZTgwNmM5NmZlZmM3MTA2Nzc3NmMwMmJhMjIxMjJiOTE5OWIxNGMwYzI4YzA0NDg3NTA5MDcwYjk3ZjNkZDJkNmQ5NzI3MzMxODIwMTc3MzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE2MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMDAwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwNWJlY2Q4NzE5NWMxZGVmZjkwYzI0YzkxMjY5YjU1YjNmMDY5YmMyMjVjMzI2YzMxNGMxYTUxNzg2ZmZlMTRjODMwYmU0ZTRiYzczY2JhMzZjOTc2NzdiNDQxNjgyNzliZTkxZTdjZGY3YzE5Mzg2YWUyMTg2MjcxOWQxM2EzYTBmZmYwODAzZDQ2MDk2MmYyY2RhODM3MTQ4NDg3MzI1MmMzZDcwNTRkYjgxNDNlMmIwODFhMzgxNmVkMDgwNGNhNTA5OWFlNWZlY2U4M2Q1YzJjMzc4M2IxOTg4YjRiNDZkYzk0ZTU1NTg3YTEwN2VhMTU0NmJmMjJkMjhhMDk3ZjY1MmE0MDY2ZGMyOTY1MjY5MDY5YWYyZjUxNzZiYjhjZTljYTZkMTFmOTY3NTdmMDMyMDRmNzU2NzAzNTg3ZDAwYWQ0MjQ3OTZjOTJmYzdhZWI2ZjQ5NDQzMTk5OWVkYTMwOTkwZTRmNTc3MzYzMmVkMjU4ZmUwMjc2NjczNTk5ZGE2ZmNlMzVjZGFkNzcyNmEwYmIwMjRjYWQ5OTZiODhlMGNiOTg4NTRjZWI1YzBiNmVjNzQ4ZDlmOWNlNmE2Y2Q0Mzc4NThiYWNiODE0NjE4YTI3MmZmM2E0MTVjNmUwN2YzZGIwOTg4Nzc3ZmRlYzg0NWE5N2JmN2QxMDJkZDAiCiAKIFBLQ1M3IFBhcnNlIEZhaWx1cmUgSW52YWxpZCBBU04xOiBDaGFuZ2UgbGVuZ3RoIGZyb20gMjEgdG8gMjAgIzI3My4wCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NgogcGtjczdfYXNuMV9mYWlsOiIzMDgyMDUwMDA2MDkyYTg2NDg4NmY3MGQwMTA3MDJhMDgyMDRmMTMwODIwNGVkMDIwMTAxMzEwZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGIwNjA5MmE4NjQ4ODZmNzBkMDEwNzAxYTA4MjAzNGQzMDgyMDM0OTMwODIwMjMxYTAwMzAyMDEwMjAyMTQ3YmRlZGRkMjQ0NGNkMWNkZmU1YzQxYTgxMDJjODliN2RmMmU2Y2JmMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMzAxZTE3MGQzMjMyMzEzMDMyMzgzMTM2MzEzMDM1MzY1YTE3MGQzMjMzMzEzMDMyMzgzMTM2MzEzMDM1MzY1YTMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTMwODIwMTIyMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDM4MjAxMGYwMDMwODIwMTBhMDI4MjAxMDEwMGM4YjZjZjY5ODk5Y2QxZjBlYmI0Y2E2NDVjMDVlNzBlMGQyZWZlZGRjYzYxZDA4OWNiZDUxNWEzOWEzNTc5YjkyMzQzYjYxZWM3NTAwNjBmYjRlZDM3ODc2MzMyNDAwZTQyNWYxZDM3NmM3ZTc1YzI5NzMzMTRlZGY0YmIzMGM4ZjhkZDAzYjlmY2ZmOTU1YTI0NWQ0OTEzN2FkNmU2MDA1NmNhYzE5NTUyYTg2NWQ1MjE4NzE4N2NjMDQyYzljNDllM2UzYTljMTdhNTM0YjQ1M2NkYWJjMGNiMTEzYjRmNjNmNWIzMTc0YjllZTk5MDJiMTkxMGQxMTQ5NmEyNzlhNzQzMjZhZGNmZWUxMGJmZDllN2ViYWZiYjM3N2JlOWI2Mzk1OTE2NWQxM2RkNTc1MTE3MWNhZGFkM2MxZDNhZGFjNjhiYzgwMTFkNjFiNTRjZjYwMTc4YmUzNjgzOWE4OWFjOTFhYjQxOWUzY2EzN2Q2YmE4ODFkMjU1MThjNGRiNjhiY2E2ZjdjODM2MDJmNjk5YTg2YjE3ZmIxZTc3M2JjYmU3NGJiOTNhNDliMjUxYWU4NjQyOGI1NzQwZTE4NjhiYjFkNmZhYjllMjg3MTJlOThlYzMxOWFkOGZjYTRkNzMwMTBjNGIwOWM0YjgwNDU4OTYxZTdjZjA4MzUzMDIwMzAxMDAwMWEzNTMzMDUxMzAxZDA2MDM1NTFkMGUwNDE2MDQxNDhhZWVlNTk0N2NjNjdjNWRkNTE1YTc2ZTJhN2VjZDMxZWU1MmZkYzgzMDFmMDYwMzU1MWQyMzA0MTgzMDE2ODAxNDhhZWVlNTk0N2NjNjdjNWRkNTE1YTc2ZTJhN2VjZDMxZWU1MmZkYzgzMDBmMDYwMzU1MWQxMzAxMDFmZjA0MDUzMDAzMDEwMWZmMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMDM4MjAxMDEwMDgyMWQ2Yjk4Y2Q0NTdkZWJkMmIwODFhY2EyN2ViZWNkNGY5M2FjYzgyODQ0M2IzOWVhYmZmYTlmYTRlOWU0NTQzYjQ2ZmNjMzFlMmI1YjQ4MTc3OTAzZGVhNjk2OWFjNGEyY2M2NTcwNjUwMzkwZjFiMDhkNDNhNGMyZjk3NWM3ZWQ4YmYzMzU2YzcyMTgzODAyMTI0NTFhOGYxMWRlNDY1NTNjYmNkNjViNDI1NGRkYjhmNjY4MzRlYjIxZGRhMmE4ZjMzYjU4MWUxNDg0NTU3YWNhMWI5NGVlODkzMWRkZjE2MDM3YjdhNzE3MTMyMWE5MTkzNmFmYzI3ZmZjZTM5NWRlNzVkNWY3MGNiOGI1YWVlMDVmZjUwNzA4OGQ2NWFmMWU0Mzk2NmNkNDJjYmU2ZjdmYWNmOGRhZTA1NWRkODIyMmIxNjk2NTIxNzIzZjgxMjQ1MTc4NTk1Yzk4NWFlOTE3ZmQ0YjM5OTg3NzNlMWE5N2I3YmQxMDA4NTQ0NmY0MjU5YmNjMDlhNDU0OTI5MjgyYzFiODliNzFlZDU4N2E3NzVlMGEzZDQ1MzYzNDFmNDVkYWU5NjllODA2Yzk2ZmVmYzcxMDY3Nzc2YzAyYmEyMjEyMmI5MTk5YjE0YzBjMjhjMDQ0ODc1MDkwNzBiOTdmM2RkMmQ2ZDk3MjczMzE4MjAxNzczMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTQzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwNWJlY2Q4NzE5NWMxZGVmZjkwYzI0YzkxMjY5YjU1YjNmMDY5YmMyMjVjMzI2YzMxNGMxYTUxNzg2ZmZlMTRjODMwYmU0ZTRiYzczY2JhMzZjOTc2NzdiNDQxNjgyNzliZTkxZTdjZGY3YzE5Mzg2YWUyMTg2MjcxOWQxM2EzYTBmZmYwODAzZDQ2MDk2MmYyY2RhODM3MTQ4NDg3MzI1MmMzZDcwNTRkYjgxNDNlMmIwODFhMzgxNmVkMDgwNGNhNTA5OWFlNWZlY2U4M2Q1YzJjMzc4M2IxOTg4YjRiNDZkYzk0ZTU1NTg3YTEwN2VhMTU0NmJmMjJkMjhhMDk3ZjY1MmE0MDY2ZGMyOTY1MjY5MDY5YWYyZjUxNzZiYjhjZTljYTZkMTFmOTY3NTdmMDMyMDRmNzU2NzAzNTg3ZDAwYWQ0MjQ3OTZjOTJmYzdhZWI2ZjQ5NDQzMTk5OWVkYTMwOTkwZTRmNTc3MzYzMmVkMjU4ZmUwMjc2NjczNTk5ZGE2ZmNlMzVjZGFkNzcyNmEwYmIwMjRjYWQ5OTZiODhlMGNiOTg4NTRjZWI1YzBiNmVjNzQ4ZDlmOWNlNmE2Y2Q0Mzc4NThiYWNiODE0NjE4YTI3MmZmM2E0MTVjNmUwN2YzZGIwOTg4Nzc3ZmRlYzg0NWE5N2JmN2QxMDJkZDAiCiAKIFBLQ1M3IFBhcnNlIEZhaWx1cmUgSW52YWxpZCBBU04xOiBDaGFuZ2UgdGFnIDMwIHRvIDAyICMyNzQuMAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHBrY3M3X2FzbjFfZmFpbDoiMzA4MjA1MDAwNjA5MmE4NjQ4ODZmNzBkMDEwNzAyYTA4MjA0ZjEzMDgyMDRlZDAyMDEwMTMxMGYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBiMDYwOTJhODY0ODg2ZjcwZDAxMDcwMWEwODIwMzRkMzA4MjAzNDkzMDgyMDIzMWEwMDMwMjAxMDIwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTMwMWUxNzBkMzIzMjMxMzAzMjM4MzEzNjMxMzAzNTM2NWExNzBkMzIzMzMxMzAzMjM4MzEzNjMxMzAzNTM2NWEzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEzMDgyMDEyMjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDAzODIwMTBmMDAzMDgyMDEwYTAyODIwMTAxMDBjOGI2Y2Y2OTg5OWNkMWYwZWJiNGNhNjQ1YzA1ZTcwZTBkMmVmZWRkY2M2MWQwODljYmQ1MTVhMzlhMzU3OWI5MjM0M2I2MWVjNzUwMDYwZmI0ZWQzNzg3NjMzMjQwMGU0MjVmMWQzNzZjN2U3NWMyOTczMzE0ZWRmNGJiMzBjOGY4ZGQwM2I5ZmNmZjk1NWEyNDVkNDkxMzdhZDZlNjAwNTZjYWMxOTU1MmE4NjVkNTIxODcxODdjYzA0MmM5YzQ5ZTNlM2E5YzE3YTUzNGI0NTNjZGFiYzBjYjExM2I0ZjYzZjViMzE3NGI5ZWU5OTAyYjE5MTBkMTE0OTZhMjc5YTc0MzI2YWRjZmVlMTBiZmQ5ZTdlYmFmYmIzNzdiZTliNjM5NTkxNjVkMTNkZDU3NTExNzFjYWRhZDNjMWQzYWRhYzY4YmM4MDExZDYxYjU0Y2Y2MDE3OGJlMzY4MzlhODlhYzkxYWI0MTllM2NhMzdkNmJhODgxZDI1NTE4YzRkYjY4YmNhNmY3YzgzNjAyZjY5OWE4NmIxN2ZiMWU3NzNiY2JlNzRiYjkzYTQ5YjI1MWFlODY0MjhiNTc0MGUxODY4YmIxZDZmYWI5ZTI4NzEyZTk4ZWMzMTlhZDhmY2E0ZDczMDEwYzRiMDljNGI4MDQ1ODk2MWU3Y2YwODM1MzAyMDMwMTAwMDFhMzUzMzA1MTMwMWQwNjAzNTUxZDBlMDQxNjA0MTQ4YWVlZTU5NDdjYzY3YzVkZDUxNWE3NmUyYTdlY2QzMWVlNTJmZGM4MzAxZjA2MDM1NTFkMjMwNDE4MzAxNjgwMTQ4YWVlZTU5NDdjYzY3YzVkZDUxNWE3NmUyYTdlY2QzMWVlNTJmZGM4MzAwZjA2MDM1NTFkMTMwMTAxZmYwNDA1MzAwMzAxMDFmZjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDAzODIwMTAxMDA4MjFkNmI5OGNkNDU3ZGViZDJiMDgxYWNhMjdlYmVjZDRmOTNhY2M4Mjg0NDNiMzllYWJmZmE5ZmE0ZTllNDU0M2I0NmZjYzMxZTJiNWI0ODE3NzkwM2RlYTY5NjlhYzRhMmNjNjU3MDY1MDM5MGYxYjA4ZDQzYTRjMmY5NzVjN2VkOGJmMzM1NmM3MjE4MzgwMjEyNDUxYThmMTFkZTQ2NTUzY2JjZDY1YjQyNTRkZGI4ZjY2ODM0ZWIyMWRkYTJhOGYzM2I1ODFlMTQ4NDU1N2FjYTFiOTRlZTg5MzFkZGYxNjAzN2I3YTcxNzEzMjFhOTE5MzZhZmMyN2ZmY2UzOTVkZTc1ZDVmNzBjYjhiNWFlZTA1ZmY1MDcwODhkNjVhZjFlNDM5NjZjZDQyY2JlNmY3ZmFjZjhkYWUwNTVkZDgyMjJiMTY5NjUyMTcyM2Y4MTI0NTE3ODU5NWM5ODVhZTkxN2ZkNGIzOTk4NzczZTFhOTdiN2JkMTAwODU0NDZmNDI1OWJjYzA5YTQ1NDkyOTI4MmMxYjg5YjcxZWQ1ODdhNzc1ZTBhM2Q0NTM2MzQxZjQ1ZGFlOTY5ZTgwNmM5NmZlZmM3MTA2Nzc3NmMwMmJhMjIxMjJiOTE5OWIxNGMwYzI4YzA0NDg3NTA5MDcwYjk3ZjNkZDJkNmQ5NzI3MzMxODIwMTc3MzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MDIxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDViZWNkODcxOTVjMWRlZmY5MGMyNGM5MTI2OWI1NWIzZjA2OWJjMjI1YzMyNmMzMTRjMWE1MTc4NmZmZTE0YzgzMGJlNGU0YmM3M2NiYTM2Yzk3Njc3YjQ0MTY4Mjc5YmU5MWU3Y2RmN2MxOTM4NmFlMjE4NjI3MTlkMTNhM2EwZmZmMDgwM2Q0NjA5NjJmMmNkYTgzNzE0ODQ4NzMyNTJjM2Q3MDU0ZGI4MTQzZTJiMDgxYTM4MTZlZDA4MDRjYTUwOTlhZTVmZWNlODNkNWMyYzM3ODNiMTk4OGI0YjQ2ZGM5NGU1NTU4N2ExMDdlYTE1NDZiZjIyZDI4YTA5N2Y2NTJhNDA2NmRjMjk2NTI2OTA2OWFmMmY1MTc2YmI4Y2U5Y2E2ZDExZjk2NzU3ZjAzMjA0Zjc1NjcwMzU4N2QwMGFkNDI0Nzk2YzkyZmM3YWViNmY0OTQ0MzE5OTllZGEzMDk5MGU0ZjU3NzM2MzJlZDI1OGZlMDI3NjY3MzU5OWRhNmZjZTM1Y2RhZDc3MjZhMGJiMDI0Y2FkOTk2Yjg4ZTBjYjk4ODU0Y2ViNWMwYjZlYzc0OGQ5ZjljZTZhNmNkNDM3ODU4YmFjYjgxNDYxOGEyNzJmZjNhNDE1YzZlMDdmM2RiMDk4ODc3N2ZkZWM4NDVhOTdiZjdkMTAyZGQwIgogCiBQS0NTNyBQYXJzZSBGYWlsdXJlIEludmFsaWQgQVNOMTogQ2hhbmdlIGxlbmd0aCBmcm9tIDE5IHRvIDIwICMyNzUuMAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHBrY3M3X2FzbjFfZmFpbDoiMzA4MjA1MDAwNjA5MmE4NjQ4ODZmNzBkMDEwNzAyYTA4MjA0ZjEzMDgyMDRlZDAyMDEwMTMxMGYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBiMDYwOTJhODY0ODg2ZjcwZDAxMDcwMWEwODIwMzRkMzA4MjAzNDkzMDgyMDIzMWEwMDMwMjAxMDIwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTMwMWUxNzBkMzIzMjMxMzAzMjM4MzEzNjMxMzAzNTM2NWExNzBkMzIzMzMxMzAzMjM4MzEzNjMxMzAzNTM2NWEzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEzMDgyMDEyMjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDAzODIwMTBmMDAzMDgyMDEwYTAyODIwMTAxMDBjOGI2Y2Y2OTg5OWNkMWYwZWJiNGNhNjQ1YzA1ZTcwZTBkMmVmZWRkY2M2MWQwODljYmQ1MTVhMzlhMzU3OWI5MjM0M2I2MWVjNzUwMDYwZmI0ZWQzNzg3NjMzMjQwMGU0MjVmMWQzNzZjN2U3NWMyOTczMzE0ZWRmNGJiMzBjOGY4ZGQwM2I5ZmNmZjk1NWEyNDVkNDkxMzdhZDZlNjAwNTZjYWMxOTU1MmE4NjVkNTIxODcxODdjYzA0MmM5YzQ5ZTNlM2E5YzE3YTUzNGI0NTNjZGFiYzBjYjExM2I0ZjYzZjViMzE3NGI5ZWU5OTAyYjE5MTBkMTE0OTZhMjc5YTc0MzI2YWRjZmVlMTBiZmQ5ZTdlYmFmYmIzNzdiZTliNjM5NTkxNjVkMTNkZDU3NTExNzFjYWRhZDNjMWQzYWRhYzY4YmM4MDExZDYxYjU0Y2Y2MDE3OGJlMzY4MzlhODlhYzkxYWI0MTllM2NhMzdkNmJhODgxZDI1NTE4YzRkYjY4YmNhNmY3YzgzNjAyZjY5OWE4NmIxN2ZiMWU3NzNiY2JlNzRiYjkzYTQ5YjI1MWFlODY0MjhiNTc0MGUxODY4YmIxZDZmYWI5ZTI4NzEyZTk4ZWMzMTlhZDhmY2E0ZDczMDEwYzRiMDljNGI4MDQ1ODk2MWU3Y2YwODM1MzAyMDMwMTAwMDFhMzUzMzA1MTMwMWQwNjAzNTUxZDBlMDQxNjA0MTQ4YWVlZTU5NDdjYzY3YzVkZDUxNWE3NmUyYTdlY2QzMWVlNTJmZGM4MzAxZjA2MDM1NTFkMjMwNDE4MzAxNjgwMTQ4YWVlZTU5NDdjYzY3YzVkZDUxNWE3NmUyYTdlY2QzMWVlNTJmZGM4MzAwZjA2MDM1NTFkMTMwMTAxZmYwNDA1MzAwMzAxMDFmZjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDAzODIwMTAxMDA4MjFkNmI5OGNkNDU3ZGViZDJiMDgxYWNhMjdlYmVjZDRmOTNhY2M4Mjg0NDNiMzllYWJmZmE5ZmE0ZTllNDU0M2I0NmZjYzMxZTJiNWI0ODE3NzkwM2RlYTY5NjlhYzRhMmNjNjU3MDY1MDM5MGYxYjA4ZDQzYTRjMmY5NzVjN2VkOGJmMzM1NmM3MjE4MzgwMjEyNDUxYThmMTFkZTQ2NTUzY2JjZDY1YjQyNTRkZGI4ZjY2ODM0ZWIyMWRkYTJhOGYzM2I1ODFlMTQ4NDU1N2FjYTFiOTRlZTg5MzFkZGYxNjAzN2I3YTcxNzEzMjFhOTE5MzZhZmMyN2ZmY2UzOTVkZTc1ZDVmNzBjYjhiNWFlZTA1ZmY1MDcwODhkNjVhZjFlNDM5NjZjZDQyY2JlNmY3ZmFjZjhkYWUwNTVkZDgyMjJiMTY5NjUyMTcyM2Y4MTI0NTE3ODU5NWM5ODVhZTkxN2ZkNGIzOTk4NzczZTFhOTdiN2JkMTAwODU0NDZmNDI1OWJjYzA5YTQ1NDkyOTI4MmMxYjg5YjcxZWQ1ODdhNzc1ZTBhM2Q0NTM2MzQxZjQ1ZGFlOTY5ZTgwNmM5NmZlZmM3MTA2Nzc3NmMwMmJhMjIxMjJiOTE5OWIxNGMwYzI4YzA0NDg3NTA5MDcwYjk3ZjNkZDJkNmQ5NzI3MzMxODIwMTc3MzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxNDA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDViZWNkODcxOTVjMWRlZmY5MGMyNGM5MTI2OWI1NWIzZjA2OWJjMjI1YzMyNmMzMTRjMWE1MTc4NmZmZTE0YzgzMGJlNGU0YmM3M2NiYTM2Yzk3Njc3YjQ0MTY4Mjc5YmU5MWU3Y2RmN2MxOTM4NmFlMjE4NjI3MTlkMTNhM2EwZmZmMDgwM2Q0NjA5NjJmMmNkYTgzNzE0ODQ4NzMyNTJjM2Q3MDU0ZGI4MTQzZTJiMDgxYTM4MTZlZDA4MDRjYTUwOTlhZTVmZWNlODNkNWMyYzM3ODNiMTk4OGI0YjQ2ZGM5NGU1NTU4N2ExMDdlYTE1NDZiZjIyZDI4YTA5N2Y2NTJhNDA2NmRjMjk2NTI2OTA2OWFmMmY1MTc2YmI4Y2U5Y2E2ZDExZjk2NzU3ZjAzMjA0Zjc1NjcwMzU4N2QwMGFkNDI0Nzk2YzkyZmM3YWViNmY0OTQ0MzE5OTllZGEzMDk5MGU0ZjU3NzM2MzJlZDI1OGZlMDI3NjY3MzU5OWRhNmZjZTM1Y2RhZDc3MjZhMGJiMDI0Y2FkOTk2Yjg4ZTBjYjk4ODU0Y2ViNWMwYjZlYzc0OGQ5ZjljZTZhNmNkNDM3ODU4YmFjYjgxNDYxOGEyNzJmZjNhNDE1YzZlMDdmM2RiMDk4ODc3N2ZkZWM4NDVhOTdiZjdkMTAyZGQwIgogCiBQS0NTNyBQYXJzZSBGYWlsdXJlIEludmFsaWQgQVNOMTogQ2hhbmdlIGNvbnRlbnRzIG9mIHRhZyAzMCB0byBjb250YWluIG9uZSB1bmFjY291bnRlZCBleHRyYSBieXRlICMyNzYuMAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHBrY3M3X2FzbjFfZmFpbDoiMzA4MjA1MDAwNjA5MmE4NjQ4ODZmNzBkMDEwNzAyYTA4MjA0ZjEzMDgyMDRlZDAyMDEwMTMxMGYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBiMDYwOTJhODY0ODg2ZjcwZDAxMDcwMWEwODIwMzRkMzA4MjAzNDkzMDgyMDIzMWEwMDMwMjAxMDIwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTMwMWUxNzBkMzIzMjMxMzAzMjM4MzEzNjMxMzAzNTM2NWExNzBkMzIzMzMxMzAzMjM4MzEzNjMxMzAzNTM2NWEzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEzMDgyMDEyMjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDAzODIwMTBmMDAzMDgyMDEwYTAyODIwMTAxMDBjOGI2Y2Y2OTg5OWNkMWYwZWJiNGNhNjQ1YzA1ZTcwZTBkMmVmZWRkY2M2MWQwODljYmQ1MTVhMzlhMzU3OWI5MjM0M2I2MWVjNzUwMDYwZmI0ZWQzNzg3NjMzMjQwMGU0MjVmMWQzNzZjN2U3NWMyOTczMzE0ZWRmNGJiMzBjOGY4ZGQwM2I5ZmNmZjk1NWEyNDVkNDkxMzdhZDZlNjAwNTZjYWMxOTU1MmE4NjVkNTIxODcxODdjYzA0MmM5YzQ5ZTNlM2E5YzE3YTUzNGI0NTNjZGFiYzBjYjExM2I0ZjYzZjViMzE3NGI5ZWU5OTAyYjE5MTBkMTE0OTZhMjc5YTc0MzI2YWRjZmVlMTBiZmQ5ZTdlYmFmYmIzNzdiZTliNjM5NTkxNjVkMTNkZDU3NTExNzFjYWRhZDNjMWQzYWRhYzY4YmM4MDExZDYxYjU0Y2Y2MDE3OGJlMzY4MzlhODlhYzkxYWI0MTllM2NhMzdkNmJhODgxZDI1NTE4YzRkYjY4YmNhNmY3YzgzNjAyZjY5OWE4NmIxN2ZiMWU3NzNiY2JlNzRiYjkzYTQ5YjI1MWFlODY0MjhiNTc0MGUxODY4YmIxZDZmYWI5ZTI4NzEyZTk4ZWMzMTlhZDhmY2E0ZDczMDEwYzRiMDljNGI4MDQ1ODk2MWU3Y2YwODM1MzAyMDMwMTAwMDFhMzUzMzA1MTMwMWQwNjAzNTUxZDBlMDQxNjA0MTQ4YWVlZTU5NDdjYzY3YzVkZDUxNWE3NmUyYTdlY2QzMWVlNTJmZGM4MzAxZjA2MDM1NTFkMjMwNDE4MzAxNjgwMTQ4YWVlZTU5NDdjYzY3YzVkZDUxNWE3NmUyYTdlY2QzMWVlNTJmZGM4MzAwZjA2MDM1NTFkMTMwMTAxZmYwNDA1MzAwMzAxMDFmZjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDAzODIwMTAxMDA4MjFkNmI5OGNkNDU3ZGViZDJiMDgxYWNhMjdlYmVjZDRmOTNhY2M4Mjg0NDNiMzllYWJmZmE5ZmE0ZTllNDU0M2I0NmZjYzMxZTJiNWI0ODE3NzkwM2RlYTY5NjlhYzRhMmNjNjU3MDY1MDM5MGYxYjA4ZDQzYTRjMmY5NzVjN2VkOGJmMzM1NmM3MjE4MzgwMjEyNDUxYThmMTFkZTQ2NTUzY2JjZDY1YjQyNTRkZGI4ZjY2ODM0ZWIyMWRkYTJhOGYzM2I1ODFlMTQ4NDU1N2FjYTFiOTRlZTg5MzFkZGYxNjAzN2I3YTcxNzEzMjFhOTE5MzZhZmMyN2ZmY2UzOTVkZTc1ZDVmNzBjYjhiNWFlZTA1ZmY1MDcwODhkNjVhZjFlNDM5NjZjZDQyY2JlNmY3ZmFjZjhkYWUwNTVkZDgyMjJiMTY5NjUyMTcyM2Y4MTI0NTE3ODU5NWM5ODVhZTkxN2ZkNGIzOTk4NzczZTFhOTdiN2JkMTAwODU0NDZmNDI1OWJjYzA5YTQ1NDkyOTI4MmMxYjg5YjcxZWQ1ODdhNzc1ZTBhM2Q0NTM2MzQxZjQ1ZGFlOTY5ZTgwNmM5NmZlZmM3MTA2Nzc3NmMwMmJhMjIxMjJiOTE5OWIxNGMwYzI4YzA0NDg3NTA5MDcwYjk3ZjNkZDJkNmQ5NzI3MzMxODIwMTc3MzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxNDA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMDAwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwNWJlY2Q4NzE5NWMxZGVmZjkwYzI0YzkxMjY5YjU1YjNmMDY5YmMyMjVjMzI2YzMxNGMxYTUxNzg2ZmZlMTRjODMwYmU0ZTRiYzczY2JhMzZjOTc2NzdiNDQxNjgyNzliZTkxZTdjZGY3YzE5Mzg2YWUyMTg2MjcxOWQxM2EzYTBmZmYwODAzZDQ2MDk2MmYyY2RhODM3MTQ4NDg3MzI1MmMzZDcwNTRkYjgxNDNlMmIwODFhMzgxNmVkMDgwNGNhNTA5OWFlNWZlY2U4M2Q1YzJjMzc4M2IxOTg4YjRiNDZkYzk0ZTU1NTg3YTEwN2VhMTU0NmJmMjJkMjhhMDk3ZjY1MmE0MDY2ZGMyOTY1MjY5MDY5YWYyZjUxNzZiYjhjZTljYTZkMTFmOTY3NTdmMDMyMDRmNzU2NzAzNTg3ZDAwYWQ0MjQ3OTZjOTJmYzdhZWI2ZjQ5NDQzMTk5OWVkYTMwOTkwZTRmNTc3MzYzMmVkMjU4ZmUwMjc2NjczNTk5ZGE2ZmNlMzVjZGFkNzcyNmEwYmIwMjRjYWQ5OTZiODhlMGNiOTg4NTRjZWI1YzBiNmVjNzQ4ZDlmOWNlNmE2Y2Q0Mzc4NThiYWNiODE0NjE4YTI3MmZmM2E0MTVjNmUwN2YzZGIwOTg4Nzc3ZmRlYzg0NWE5N2JmN2QxMDJkZDAiCiAKIFBLQ1M3IFBhcnNlIEZhaWx1cmUgSW52YWxpZCBBU04xOiBDaGFuZ2UgbGVuZ3RoIGZyb20gMTkgdG8gMTggIzI3Ny4wCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NgogcGtjczdfYXNuMV9mYWlsOiIzMDgyMDUwMDA2MDkyYTg2NDg4NmY3MGQwMTA3MDJhMDgyMDRmMTMwODIwNGVkMDIwMTAxMzEwZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGIwNjA5MmE4NjQ4ODZmNzBkMDEwNzAxYTA4MjAzNGQzMDgyMDM0OTMwODIwMjMxYTAwMzAyMDEwMjAyMTQ3YmRlZGRkMjQ0NGNkMWNkZmU1YzQxYTgxMDJjODliN2RmMmU2Y2JmMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMzAxZTE3MGQzMjMyMzEzMDMyMzgzMTM2MzEzMDM1MzY1YTE3MGQzMjMzMzEzMDMyMzgzMTM2MzEzMDM1MzY1YTMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTMwODIwMTIyMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDM4MjAxMGYwMDMwODIwMTBhMDI4MjAxMDEwMGM4YjZjZjY5ODk5Y2QxZjBlYmI0Y2E2NDVjMDVlNzBlMGQyZWZlZGRjYzYxZDA4OWNiZDUxNWEzOWEzNTc5YjkyMzQzYjYxZWM3NTAwNjBmYjRlZDM3ODc2MzMyNDAwZTQyNWYxZDM3NmM3ZTc1YzI5NzMzMTRlZGY0YmIzMGM4ZjhkZDAzYjlmY2ZmOTU1YTI0NWQ0OTEzN2FkNmU2MDA1NmNhYzE5NTUyYTg2NWQ1MjE4NzE4N2NjMDQyYzljNDllM2UzYTljMTdhNTM0YjQ1M2NkYWJjMGNiMTEzYjRmNjNmNWIzMTc0YjllZTk5MDJiMTkxMGQxMTQ5NmEyNzlhNzQzMjZhZGNmZWUxMGJmZDllN2ViYWZiYjM3N2JlOWI2Mzk1OTE2NWQxM2RkNTc1MTE3MWNhZGFkM2MxZDNhZGFjNjhiYzgwMTFkNjFiNTRjZjYwMTc4YmUzNjgzOWE4OWFjOTFhYjQxOWUzY2EzN2Q2YmE4ODFkMjU1MThjNGRiNjhiY2E2ZjdjODM2MDJmNjk5YTg2YjE3ZmIxZTc3M2JjYmU3NGJiOTNhNDliMjUxYWU4NjQyOGI1NzQwZTE4NjhiYjFkNmZhYjllMjg3MTJlOThlYzMxOWFkOGZjYTRkNzMwMTBjNGIwOWM0YjgwNDU4OTYxZTdjZjA4MzUzMDIwMzAxMDAwMWEzNTMzMDUxMzAxZDA2MDM1NTFkMGUwNDE2MDQxNDhhZWVlNTk0N2NjNjdjNWRkNTE1YTc2ZTJhN2VjZDMxZWU1MmZkYzgzMDFmMDYwMzU1MWQyMzA0MTgzMDE2ODAxNDhhZWVlNTk0N2NjNjdjNWRkNTE1YTc2ZTJhN2VjZDMxZWU1MmZkYzgzMDBmMDYwMzU1MWQxMzAxMDFmZjA0MDUzMDAzMDEwMWZmMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMDM4MjAxMDEwMDgyMWQ2Yjk4Y2Q0NTdkZWJkMmIwODFhY2EyN2ViZWNkNGY5M2FjYzgyODQ0M2IzOWVhYmZmYTlmYTRlOWU0NTQzYjQ2ZmNjMzFlMmI1YjQ4MTc3OTAzZGVhNjk2OWFjNGEyY2M2NTcwNjUwMzkwZjFiMDhkNDNhNGMyZjk3NWM3ZWQ4YmYzMzU2YzcyMTgzODAyMTI0NTFhOGYxMWRlNDY1NTNjYmNkNjViNDI1NGRkYjhmNjY4MzRlYjIxZGRhMmE4ZjMzYjU4MWUxNDg0NTU3YWNhMWI5NGVlODkzMWRkZjE2MDM3YjdhNzE3MTMyMWE5MTkzNmFmYzI3ZmZjZTM5NWRlNzVkNWY3MGNiOGI1YWVlMDVmZjUwNzA4OGQ2NWFmMWU0Mzk2NmNkNDJjYmU2ZjdmYWNmOGRhZTA1NWRkODIyMmIxNjk2NTIxNzIzZjgxMjQ1MTc4NTk1Yzk4NWFlOTE3ZmQ0YjM5OTg3NzNlMWE5N2I3YmQxMDA4NTQ0NmY0MjU5YmNjMDlhNDU0OTI5MjgyYzFiODliNzFlZDU4N2E3NzVlMGEzZDQ1MzYzNDFmNDVkYWU5NjllODA2Yzk2ZmVmYzcxMDY3Nzc2YzAyYmEyMjEyMmI5MTk5YjE0YzBjMjhjMDQ0ODc1MDkwNzBiOTdmM2RkMmQ2ZDk3MjczMzE4MjAxNzczMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEyMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwNWJlY2Q4NzE5NWMxZGVmZjkwYzI0YzkxMjY5YjU1YjNmMDY5YmMyMjVjMzI2YzMxNGMxYTUxNzg2ZmZlMTRjODMwYmU0ZTRiYzczY2JhMzZjOTc2NzdiNDQxNjgyNzliZTkxZTdjZGY3YzE5Mzg2YWUyMTg2MjcxOWQxM2EzYTBmZmYwODAzZDQ2MDk2MmYyY2RhODM3MTQ4NDg3MzI1MmMzZDcwNTRkYjgxNDNlMmIwODFhMzgxNmVkMDgwNGNhNTA5OWFlNWZlY2U4M2Q1YzJjMzc4M2IxOTg4YjRiNDZkYzk0ZTU1NTg3YTEwN2VhMTU0NmJmMjJkMjhhMDk3ZjY1MmE0MDY2ZGMyOTY1MjY5MDY5YWYyZjUxNzZiYjhjZTljYTZkMTFmOTY3NTdmMDMyMDRmNzU2NzAzNTg3ZDAwYWQ0MjQ3OTZjOTJmYzdhZWI2ZjQ5NDQzMTk5OWVkYTMwOTkwZTRmNTc3MzYzMmVkMjU4ZmUwMjc2NjczNTk5ZGE2ZmNlMzVjZGFkNzcyNmEwYmIwMjRjYWQ5OTZiODhlMGNiOTg4NTRjZWI1YzBiNmVjNzQ4ZDlmOWNlNmE2Y2Q0Mzc4NThiYWNiODE0NjE4YTI3MmZmM2E0MTVjNmUwN2YzZGIwOTg4Nzc3ZmRlYzg0NWE5N2JmN2QxMDJkZDAiCiAKIFBLQ1M3IFBhcnNlIEZhaWx1cmUgSW52YWxpZCBBU04xOiBDaGFuZ2UgdGFnIDA2IHRvIDAyICMyNzguMAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHBrY3M3X2FzbjFfZmFpbDoiMzA4MjA1MDAwNjA5MmE4NjQ4ODZmNzBkMDEwNzAyYTA4MjA0ZjEzMDgyMDRlZDAyMDEwMTMxMGYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBiMDYwOTJhODY0ODg2ZjcwZDAxMDcwMWEwODIwMzRkMzA4MjAzNDkzMDgyMDIzMWEwMDMwMjAxMDIwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTMwMWUxNzBkMzIzMjMxMzAzMjM4MzEzNjMxMzAzNTM2NWExNzBkMzIzMzMxMzAzMjM4MzEzNjMxMzAzNTM2NWEzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEzMDgyMDEyMjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDAzODIwMTBmMDAzMDgyMDEwYTAyODIwMTAxMDBjOGI2Y2Y2OTg5OWNkMWYwZWJiNGNhNjQ1YzA1ZTcwZTBkMmVmZWRkY2M2MWQwODljYmQ1MTVhMzlhMzU3OWI5MjM0M2I2MWVjNzUwMDYwZmI0ZWQzNzg3NjMzMjQwMGU0MjVmMWQzNzZjN2U3NWMyOTczMzE0ZWRmNGJiMzBjOGY4ZGQwM2I5ZmNmZjk1NWEyNDVkNDkxMzdhZDZlNjAwNTZjYWMxOTU1MmE4NjVkNTIxODcxODdjYzA0MmM5YzQ5ZTNlM2E5YzE3YTUzNGI0NTNjZGFiYzBjYjExM2I0ZjYzZjViMzE3NGI5ZWU5OTAyYjE5MTBkMTE0OTZhMjc5YTc0MzI2YWRjZmVlMTBiZmQ5ZTdlYmFmYmIzNzdiZTliNjM5NTkxNjVkMTNkZDU3NTExNzFjYWRhZDNjMWQzYWRhYzY4YmM4MDExZDYxYjU0Y2Y2MDE3OGJlMzY4MzlhODlhYzkxYWI0MTllM2NhMzdkNmJhODgxZDI1NTE4YzRkYjY4YmNhNmY3YzgzNjAyZjY5OWE4NmIxN2ZiMWU3NzNiY2JlNzRiYjkzYTQ5YjI1MWFlODY0MjhiNTc0MGUxODY4YmIxZDZmYWI5ZTI4NzEyZTk4ZWMzMTlhZDhmY2E0ZDczMDEwYzRiMDljNGI4MDQ1ODk2MWU3Y2YwODM1MzAyMDMwMTAwMDFhMzUzMzA1MTMwMWQwNjAzNTUxZDBlMDQxNjA0MTQ4YWVlZTU5NDdjYzY3YzVkZDUxNWE3NmUyYTdlY2QzMWVlNTJmZGM4MzAxZjA2MDM1NTFkMjMwNDE4MzAxNjgwMTQ4YWVlZTU5NDdjYzY3YzVkZDUxNWE3NmUyYTdlY2QzMWVlNTJmZGM4MzAwZjA2MDM1NTFkMTMwMTAxZmYwNDA1MzAwMzAxMDFmZjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDAzODIwMTAxMDA4MjFkNmI5OGNkNDU3ZGViZDJiMDgxYWNhMjdlYmVjZDRmOTNhY2M4Mjg0NDNiMzllYWJmZmE5ZmE0ZTllNDU0M2I0NmZjYzMxZTJiNWI0ODE3NzkwM2RlYTY5NjlhYzRhMmNjNjU3MDY1MDM5MGYxYjA4ZDQzYTRjMmY5NzVjN2VkOGJmMzM1NmM3MjE4MzgwMjEyNDUxYThmMTFkZTQ2NTUzY2JjZDY1YjQyNTRkZGI4ZjY2ODM0ZWIyMWRkYTJhOGYzM2I1ODFlMTQ4NDU1N2FjYTFiOTRlZTg5MzFkZGYxNjAzN2I3YTcxNzEzMjFhOTE5MzZhZmMyN2ZmY2UzOTVkZTc1ZDVmNzBjYjhiNWFlZTA1ZmY1MDcwODhkNjVhZjFlNDM5NjZjZDQyY2JlNmY3ZmFjZjhkYWUwNTVkZDgyMjJiMTY5NjUyMTcyM2Y4MTI0NTE3ODU5NWM5ODVhZTkxN2ZkNGIzOTk4NzczZTFhOTdiN2JkMTAwODU0NDZmNDI1OWJjYzA5YTQ1NDkyOTI4MmMxYjg5YjcxZWQ1ODdhNzc1ZTBhM2Q0NTM2MzQxZjQ1ZGFlOTY5ZTgwNmM5NmZlZmM3MTA2Nzc3NmMwMmJhMjIxMjJiOTE5OWIxNGMwYzI4YzA0NDg3NTA5MDcwYjk3ZjNkZDJkNmQ5NzI3MzMxODIwMTc3MzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzAyMDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDViZWNkODcxOTVjMWRlZmY5MGMyNGM5MTI2OWI1NWIzZjA2OWJjMjI1YzMyNmMzMTRjMWE1MTc4NmZmZTE0YzgzMGJlNGU0YmM3M2NiYTM2Yzk3Njc3YjQ0MTY4Mjc5YmU5MWU3Y2RmN2MxOTM4NmFlMjE4NjI3MTlkMTNhM2EwZmZmMDgwM2Q0NjA5NjJmMmNkYTgzNzE0ODQ4NzMyNTJjM2Q3MDU0ZGI4MTQzZTJiMDgxYTM4MTZlZDA4MDRjYTUwOTlhZTVmZWNlODNkNWMyYzM3ODNiMTk4OGI0YjQ2ZGM5NGU1NTU4N2ExMDdlYTE1NDZiZjIyZDI4YTA5N2Y2NTJhNDA2NmRjMjk2NTI2OTA2OWFmMmY1MTc2YmI4Y2U5Y2E2ZDExZjk2NzU3ZjAzMjA0Zjc1NjcwMzU4N2QwMGFkNDI0Nzk2YzkyZmM3YWViNmY0OTQ0MzE5OTllZGEzMDk5MGU0ZjU3NzM2MzJlZDI1OGZlMDI3NjY3MzU5OWRhNmZjZTM1Y2RhZDc3MjZhMGJiMDI0Y2FkOTk2Yjg4ZTBjYjk4ODU0Y2ViNWMwYjZlYzc0OGQ5ZjljZTZhNmNkNDM3ODU4YmFjYjgxNDYxOGEyNzJmZjNhNDE1YzZlMDdmM2RiMDk4ODc3N2ZkZWM4NDVhOTdiZjdkMTAyZGQwIgogCiBQS0NTNyBQYXJzZSBGYWlsdXJlIEludmFsaWQgQVNOMTogQ2hhbmdlIGxlbmd0aCBmcm9tIDMgdG8gNCAjMjc5LjAKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBwa2NzN19hc24xX2ZhaWw6IjMwODIwNTAwMDYwOTJhODY0ODg2ZjcwZDAxMDcwMmEwODIwNGYxMzA4MjA0ZWQwMjAxMDEzMTBmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwYjA2MDkyYTg2NDg4NmY3MGQwMTA3MDFhMDgyMDM0ZDMwODIwMzQ5MzA4MjAyMzFhMDAzMDIwMTAyMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEzMDFlMTcwZDMyMzIzMTMwMzIzODMxMzYzMTMwMzUzNjVhMTcwZDMyMzMzMTMwMzIzODMxMzYzMTMwMzUzNjVhMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMzA4MjAxMjIzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwMzgyMDEwZjAwMzA4MjAxMGEwMjgyMDEwMTAwYzhiNmNmNjk4OTljZDFmMGViYjRjYTY0NWMwNWU3MGUwZDJlZmVkZGNjNjFkMDg5Y2JkNTE1YTM5YTM1NzliOTIzNDNiNjFlYzc1MDA2MGZiNGVkMzc4NzYzMzI0MDBlNDI1ZjFkMzc2YzdlNzVjMjk3MzMxNGVkZjRiYjMwYzhmOGRkMDNiOWZjZmY5NTVhMjQ1ZDQ5MTM3YWQ2ZTYwMDU2Y2FjMTk1NTJhODY1ZDUyMTg3MTg3Y2MwNDJjOWM0OWUzZTNhOWMxN2E1MzRiNDUzY2RhYmMwY2IxMTNiNGY2M2Y1YjMxNzRiOWVlOTkwMmIxOTEwZDExNDk2YTI3OWE3NDMyNmFkY2ZlZTEwYmZkOWU3ZWJhZmJiMzc3YmU5YjYzOTU5MTY1ZDEzZGQ1NzUxMTcxY2FkYWQzYzFkM2FkYWM2OGJjODAxMWQ2MWI1NGNmNjAxNzhiZTM2ODM5YTg5YWM5MWFiNDE5ZTNjYTM3ZDZiYTg4MWQyNTUxOGM0ZGI2OGJjYTZmN2M4MzYwMmY2OTlhODZiMTdmYjFlNzczYmNiZTc0YmI5M2E0OWIyNTFhZTg2NDI4YjU3NDBlMTg2OGJiMWQ2ZmFiOWUyODcxMmU5OGVjMzE5YWQ4ZmNhNGQ3MzAxMGM0YjA5YzRiODA0NTg5NjFlN2NmMDgzNTMwMjAzMDEwMDAxYTM1MzMwNTEzMDFkMDYwMzU1MWQwZTA0MTYwNDE0OGFlZWU1OTQ3Y2M2N2M1ZGQ1MTVhNzZlMmE3ZWNkMzFlZTUyZmRjODMwMWYwNjAzNTUxZDIzMDQxODMwMTY4MDE0OGFlZWU1OTQ3Y2M2N2M1ZGQ1MTVhNzZlMmE3ZWNkMzFlZTUyZmRjODMwMGYwNjAzNTUxZDEzMDEwMWZmMDQwNTMwMDMwMTAxZmYzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAwMzgyMDEwMTAwODIxZDZiOThjZDQ1N2RlYmQyYjA4MWFjYTI3ZWJlY2Q0ZjkzYWNjODI4NDQzYjM5ZWFiZmZhOWZhNGU5ZTQ1NDNiNDZmY2MzMWUyYjViNDgxNzc5MDNkZWE2OTY5YWM0YTJjYzY1NzA2NTAzOTBmMWIwOGQ0M2E0YzJmOTc1YzdlZDhiZjMzNTZjNzIxODM4MDIxMjQ1MWE4ZjExZGU0NjU1M2NiY2Q2NWI0MjU0ZGRiOGY2NjgzNGViMjFkZGEyYThmMzNiNTgxZTE0ODQ1NTdhY2ExYjk0ZWU4OTMxZGRmMTYwMzdiN2E3MTcxMzIxYTkxOTM2YWZjMjdmZmNlMzk1ZGU3NWQ1ZjcwY2I4YjVhZWUwNWZmNTA3MDg4ZDY1YWYxZTQzOTY2Y2Q0MmNiZTZmN2ZhY2Y4ZGFlMDU1ZGQ4MjIyYjE2OTY1MjE3MjNmODEyNDUxNzg1OTVjOTg1YWU5MTdmZDRiMzk5ODc3M2UxYTk3YjdiZDEwMDg1NDQ2ZjQyNTliY2MwOWE0NTQ5MjkyODJjMWI4OWI3MWVkNTg3YTc3NWUwYTNkNDUzNjM0MWY0NWRhZTk2OWU4MDZjOTZmZWZjNzEwNjc3NzZjMDJiYTIyMTIyYjkxOTliMTRjMGMyOGMwNDQ4NzUwOTA3MGI5N2YzZGQyZDZkOTcyNzMzMTgyMDE3NzMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjA0NTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTAyMTQ3YmRlZGRkMjQ0NGNkMWNkZmU1YzQxYTgxMDJjODliN2RmMmU2Y2JmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDA1YmVjZDg3MTk1YzFkZWZmOTBjMjRjOTEyNjliNTViM2YwNjliYzIyNWMzMjZjMzE0YzFhNTE3ODZmZmUxNGM4MzBiZTRlNGJjNzNjYmEzNmM5NzY3N2I0NDE2ODI3OWJlOTFlN2NkZjdjMTkzODZhZTIxODYyNzE5ZDEzYTNhMGZmZjA4MDNkNDYwOTYyZjJjZGE4MzcxNDg0ODczMjUyYzNkNzA1NGRiODE0M2UyYjA4MWEzODE2ZWQwODA0Y2E1MDk5YWU1ZmVjZTgzZDVjMmMzNzgzYjE5ODhiNGI0NmRjOTRlNTU1ODdhMTA3ZWExNTQ2YmYyMmQyOGEwOTdmNjUyYTQwNjZkYzI5NjUyNjkwNjlhZjJmNTE3NmJiOGNlOWNhNmQxMWY5Njc1N2YwMzIwNGY3NTY3MDM1ODdkMDBhZDQyNDc5NmM5MmZjN2FlYjZmNDk0NDMxOTk5ZWRhMzA5OTBlNGY1NzczNjMyZWQyNThmZTAyNzY2NzM1OTlkYTZmY2UzNWNkYWQ3NzI2YTBiYjAyNGNhZDk5NmI4OGUwY2I5ODg1NGNlYjVjMGI2ZWM3NDhkOWY5Y2U2YTZjZDQzNzg1OGJhY2I4MTQ2MThhMjcyZmYzYTQxNWM2ZTA3ZjNkYjA5ODg3NzdmZGVjODQ1YTk3YmY3ZDEwMmRkMCIKIAogUEtDUzcgUGFyc2UgRmFpbHVyZSBJbnZhbGlkIEFTTjE6IENoYW5nZSBsZW5ndGggZnJvbSAzIHRvIDIgIzI4MC4wCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NgogcGtjczdfYXNuMV9mYWlsOiIzMDgyMDUwMDA2MDkyYTg2NDg4NmY3MGQwMTA3MDJhMDgyMDRmMTMwODIwNGVkMDIwMTAxMzEwZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGIwNjA5MmE4NjQ4ODZmNzBkMDEwNzAxYTA4MjAzNGQzMDgyMDM0OTMwODIwMjMxYTAwMzAyMDEwMjAyMTQ3YmRlZGRkMjQ0NGNkMWNkZmU1YzQxYTgxMDJjODliN2RmMmU2Y2JmMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMzAxZTE3MGQzMjMyMzEzMDMyMzgzMTM2MzEzMDM1MzY1YTE3MGQzMjMzMzEzMDMyMzgzMTM2MzEzMDM1MzY1YTMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTMwODIwMTIyMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDM4MjAxMGYwMDMwODIwMTBhMDI4MjAxMDEwMGM4YjZjZjY5ODk5Y2QxZjBlYmI0Y2E2NDVjMDVlNzBlMGQyZWZlZGRjYzYxZDA4OWNiZDUxNWEzOWEzNTc5YjkyMzQzYjYxZWM3NTAwNjBmYjRlZDM3ODc2MzMyNDAwZTQyNWYxZDM3NmM3ZTc1YzI5NzMzMTRlZGY0YmIzMGM4ZjhkZDAzYjlmY2ZmOTU1YTI0NWQ0OTEzN2FkNmU2MDA1NmNhYzE5NTUyYTg2NWQ1MjE4NzE4N2NjMDQyYzljNDllM2UzYTljMTdhNTM0YjQ1M2NkYWJjMGNiMTEzYjRmNjNmNWIzMTc0YjllZTk5MDJiMTkxMGQxMTQ5NmEyNzlhNzQzMjZhZGNmZWUxMGJmZDllN2ViYWZiYjM3N2JlOWI2Mzk1OTE2NWQxM2RkNTc1MTE3MWNhZGFkM2MxZDNhZGFjNjhiYzgwMTFkNjFiNTRjZjYwMTc4YmUzNjgzOWE4OWFjOTFhYjQxOWUzY2EzN2Q2YmE4ODFkMjU1MThjNGRiNjhiY2E2ZjdjODM2MDJmNjk5YTg2YjE3ZmIxZTc3M2JjYmU3NGJiOTNhNDliMjUxYWU4NjQyOGI1NzQwZTE4NjhiYjFkNmZhYjllMjg3MTJlOThlYzMxOWFkOGZjYTRkNzMwMTBjNGIwOWM0YjgwNDU4OTYxZTdjZjA4MzUzMDIwMzAxMDAwMWEzNTMzMDUxMzAxZDA2MDM1NTFkMGUwNDE2MDQxNDhhZWVlNTk0N2NjNjdjNWRkNTE1YTc2ZTJhN2VjZDMxZWU1MmZkYzgzMDFmMDYwMzU1MWQyMzA0MTgzMDE2ODAxNDhhZWVlNTk0N2NjNjdjNWRkNTE1YTc2ZTJhN2VjZDMxZWU1MmZkYzgzMDBmMDYwMzU1MWQxMzAxMDFmZjA0MDUzMDAzMDEwMWZmMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMDM4MjAxMDEwMDgyMWQ2Yjk4Y2Q0NTdkZWJkMmIwODFhY2EyN2ViZWNkNGY5M2FjYzgyODQ0M2IzOWVhYmZmYTlmYTRlOWU0NTQzYjQ2ZmNjMzFlMmI1YjQ4MTc3OTAzZGVhNjk2OWFjNGEyY2M2NTcwNjUwMzkwZjFiMDhkNDNhNGMyZjk3NWM3ZWQ4YmYzMzU2YzcyMTgzODAyMTI0NTFhOGYxMWRlNDY1NTNjYmNkNjViNDI1NGRkYjhmNjY4MzRlYjIxZGRhMmE4ZjMzYjU4MWUxNDg0NTU3YWNhMWI5NGVlODkzMWRkZjE2MDM3YjdhNzE3MTMyMWE5MTkzNmFmYzI3ZmZjZTM5NWRlNzVkNWY3MGNiOGI1YWVlMDVmZjUwNzA4OGQ2NWFmMWU0Mzk2NmNkNDJjYmU2ZjdmYWNmOGRhZTA1NWRkODIyMmIxNjk2NTIxNzIzZjgxMjQ1MTc4NTk1Yzk4NWFlOTE3ZmQ0YjM5OTg3NzNlMWE5N2I3YmQxMDA4NTQ0NmY0MjU5YmNjMDlhNDU0OTI5MjgyYzFiODliNzFlZDU4N2E3NzVlMGEzZDQ1MzYzNDFmNDVkYWU5NjllODA2Yzk2ZmVmYzcxMDY3Nzc2YzAyYmEyMjEyMmI5MTk5YjE0YzBjMjhjMDQ0ODc1MDkwNzBiOTdmM2RkMmQ2ZDk3MjczMzE4MjAxNzczMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMjU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwNWJlY2Q4NzE5NWMxZGVmZjkwYzI0YzkxMjY5YjU1YjNmMDY5YmMyMjVjMzI2YzMxNGMxYTUxNzg2ZmZlMTRjODMwYmU0ZTRiYzczY2JhMzZjOTc2NzdiNDQxNjgyNzliZTkxZTdjZGY3YzE5Mzg2YWUyMTg2MjcxOWQxM2EzYTBmZmYwODAzZDQ2MDk2MmYyY2RhODM3MTQ4NDg3MzI1MmMzZDcwNTRkYjgxNDNlMmIwODFhMzgxNmVkMDgwNGNhNTA5OWFlNWZlY2U4M2Q1YzJjMzc4M2IxOTg4YjRiNDZkYzk0ZTU1NTg3YTEwN2VhMTU0NmJmMjJkMjhhMDk3ZjY1MmE0MDY2ZGMyOTY1MjY5MDY5YWYyZjUxNzZiYjhjZTljYTZkMTFmOTY3NTdmMDMyMDRmNzU2NzAzNTg3ZDAwYWQ0MjQ3OTZjOTJmYzdhZWI2ZjQ5NDQzMTk5OWVkYTMwOTkwZTRmNTc3MzYzMmVkMjU4ZmUwMjc2NjczNTk5ZGE2ZmNlMzVjZGFkNzcyNmEwYmIwMjRjYWQ5OTZiODhlMGNiOTg4NTRjZWI1YzBiNmVjNzQ4ZDlmOWNlNmE2Y2Q0Mzc4NThiYWNiODE0NjE4YTI3MmZmM2E0MTVjNmUwN2YzZGIwOTg4Nzc3ZmRlYzg0NWE5N2JmN2QxMDJkZDAiCiAKIFBLQ1M3IFBhcnNlIEZhaWx1cmUgSW52YWxpZCBBU04xOiBDaGFuZ2UgdGFnIDBjIHRvIDAyICMyODEuMAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHBrY3M3X2FzbjFfZmFpbDoiMzA4MjA1MDAwNjA5MmE4NjQ4ODZmNzBkMDEwNzAyYTA4MjA0ZjEzMDgyMDRlZDAyMDEwMTMxMGYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBiMDYwOTJhODY0ODg2ZjcwZDAxMDcwMWEwODIwMzRkMzA4MjAzNDkzMDgyMDIzMWEwMDMwMjAxMDIwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTMwMWUxNzBkMzIzMjMxMzAzMjM4MzEzNjMxMzAzNTM2NWExNzBkMzIzMzMxMzAzMjM4MzEzNjMxMzAzNTM2NWEzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEzMDgyMDEyMjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDAzODIwMTBmMDAzMDgyMDEwYTAyODIwMTAxMDBjOGI2Y2Y2OTg5OWNkMWYwZWJiNGNhNjQ1YzA1ZTcwZTBkMmVmZWRkY2M2MWQwODljYmQ1MTVhMzlhMzU3OWI5MjM0M2I2MWVjNzUwMDYwZmI0ZWQzNzg3NjMzMjQwMGU0MjVmMWQzNzZjN2U3NWMyOTczMzE0ZWRmNGJiMzBjOGY4ZGQwM2I5ZmNmZjk1NWEyNDVkNDkxMzdhZDZlNjAwNTZjYWMxOTU1MmE4NjVkNTIxODcxODdjYzA0MmM5YzQ5ZTNlM2E5YzE3YTUzNGI0NTNjZGFiYzBjYjExM2I0ZjYzZjViMzE3NGI5ZWU5OTAyYjE5MTBkMTE0OTZhMjc5YTc0MzI2YWRjZmVlMTBiZmQ5ZTdlYmFmYmIzNzdiZTliNjM5NTkxNjVkMTNkZDU3NTExNzFjYWRhZDNjMWQzYWRhYzY4YmM4MDExZDYxYjU0Y2Y2MDE3OGJlMzY4MzlhODlhYzkxYWI0MTllM2NhMzdkNmJhODgxZDI1NTE4YzRkYjY4YmNhNmY3YzgzNjAyZjY5OWE4NmIxN2ZiMWU3NzNiY2JlNzRiYjkzYTQ5YjI1MWFlODY0MjhiNTc0MGUxODY4YmIxZDZmYWI5ZTI4NzEyZTk4ZWMzMTlhZDhmY2E0ZDczMDEwYzRiMDljNGI4MDQ1ODk2MWU3Y2YwODM1MzAyMDMwMTAwMDFhMzUzMzA1MTMwMWQwNjAzNTUxZDBlMDQxNjA0MTQ4YWVlZTU5NDdjYzY3YzVkZDUxNWE3NmUyYTdlY2QzMWVlNTJmZGM4MzAxZjA2MDM1NTFkMjMwNDE4MzAxNjgwMTQ4YWVlZTU5NDdjYzY3YzVkZDUxNWE3NmUyYTdlY2QzMWVlNTJmZGM4MzAwZjA2MDM1NTFkMTMwMTAxZmYwNDA1MzAwMzAxMDFmZjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDAzODIwMTAxMDA4MjFkNmI5OGNkNDU3ZGViZDJiMDgxYWNhMjdlYmVjZDRmOTNhY2M4Mjg0NDNiMzllYWJmZmE5ZmE0ZTllNDU0M2I0NmZjYzMxZTJiNWI0ODE3NzkwM2RlYTY5NjlhYzRhMmNjNjU3MDY1MDM5MGYxYjA4ZDQzYTRjMmY5NzVjN2VkOGJmMzM1NmM3MjE4MzgwMjEyNDUxYThmMTFkZTQ2NTUzY2JjZDY1YjQyNTRkZGI4ZjY2ODM0ZWIyMWRkYTJhOGYzM2I1ODFlMTQ4NDU1N2FjYTFiOTRlZTg5MzFkZGYxNjAzN2I3YTcxNzEzMjFhOTE5MzZhZmMyN2ZmY2UzOTVkZTc1ZDVmNzBjYjhiNWFlZTA1ZmY1MDcwODhkNjVhZjFlNDM5NjZjZDQyY2JlNmY3ZmFjZjhkYWUwNTVkZDgyMjJiMTY5NjUyMTcyM2Y4MTI0NTE3ODU5NWM5ODVhZTkxN2ZkNGIzOTk4NzczZTFhOTdiN2JkMTAwODU0NDZmNDI1OWJjYzA5YTQ1NDkyOTI4MmMxYjg5YjcxZWQ1ODdhNzc1ZTBhM2Q0NTM2MzQxZjQ1ZGFlOTY5ZTgwNmM5NmZlZmM3MTA2Nzc3NmMwMmJhMjIxMjJiOTE5OWIxNGMwYzI4YzA0NDg3NTA5MDcwYjk3ZjNkZDJkNmQ5NzI3MzMxODIwMTc3MzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwMjBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDViZWNkODcxOTVjMWRlZmY5MGMyNGM5MTI2OWI1NWIzZjA2OWJjMjI1YzMyNmMzMTRjMWE1MTc4NmZmZTE0YzgzMGJlNGU0YmM3M2NiYTM2Yzk3Njc3YjQ0MTY4Mjc5YmU5MWU3Y2RmN2MxOTM4NmFlMjE4NjI3MTlkMTNhM2EwZmZmMDgwM2Q0NjA5NjJmMmNkYTgzNzE0ODQ4NzMyNTJjM2Q3MDU0ZGI4MTQzZTJiMDgxYTM4MTZlZDA4MDRjYTUwOTlhZTVmZWNlODNkNWMyYzM3ODNiMTk4OGI0YjQ2ZGM5NGU1NTU4N2ExMDdlYTE1NDZiZjIyZDI4YTA5N2Y2NTJhNDA2NmRjMjk2NTI2OTA2OWFmMmY1MTc2YmI4Y2U5Y2E2ZDExZjk2NzU3ZjAzMjA0Zjc1NjcwMzU4N2QwMGFkNDI0Nzk2YzkyZmM3YWViNmY0OTQ0MzE5OTllZGEzMDk5MGU0ZjU3NzM2MzJlZDI1OGZlMDI3NjY3MzU5OWRhNmZjZTM1Y2RhZDc3MjZhMGJiMDI0Y2FkOTk2Yjg4ZTBjYjk4ODU0Y2ViNWMwYjZlYzc0OGQ5ZjljZTZhNmNkNDM3ODU4YmFjYjgxNDYxOGEyNzJmZjNhNDE1YzZlMDdmM2RiMDk4ODc3N2ZkZWM4NDVhOTdiZjdkMTAyZGQwIgogCiBQS0NTNyBQYXJzZSBGYWlsdXJlIEludmFsaWQgQVNOMTogQ2hhbmdlIGxlbmd0aCBmcm9tIDEyIHRvIDEzICMyODIuMAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHBrY3M3X2FzbjFfZmFpbDoiMzA4MjA1MDAwNjA5MmE4NjQ4ODZmNzBkMDEwNzAyYTA4MjA0ZjEzMDgyMDRlZDAyMDEwMTMxMGYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBiMDYwOTJhODY0ODg2ZjcwZDAxMDcwMWEwODIwMzRkMzA4MjAzNDkzMDgyMDIzMWEwMDMwMjAxMDIwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTMwMWUxNzBkMzIzMjMxMzAzMjM4MzEzNjMxMzAzNTM2NWExNzBkMzIzMzMxMzAzMjM4MzEzNjMxMzAzNTM2NWEzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEzMDgyMDEyMjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDAzODIwMTBmMDAzMDgyMDEwYTAyODIwMTAxMDBjOGI2Y2Y2OTg5OWNkMWYwZWJiNGNhNjQ1YzA1ZTcwZTBkMmVmZWRkY2M2MWQwODljYmQ1MTVhMzlhMzU3OWI5MjM0M2I2MWVjNzUwMDYwZmI0ZWQzNzg3NjMzMjQwMGU0MjVmMWQzNzZjN2U3NWMyOTczMzE0ZWRmNGJiMzBjOGY4ZGQwM2I5ZmNmZjk1NWEyNDVkNDkxMzdhZDZlNjAwNTZjYWMxOTU1MmE4NjVkNTIxODcxODdjYzA0MmM5YzQ5ZTNlM2E5YzE3YTUzNGI0NTNjZGFiYzBjYjExM2I0ZjYzZjViMzE3NGI5ZWU5OTAyYjE5MTBkMTE0OTZhMjc5YTc0MzI2YWRjZmVlMTBiZmQ5ZTdlYmFmYmIzNzdiZTliNjM5NTkxNjVkMTNkZDU3NTExNzFjYWRhZDNjMWQzYWRhYzY4YmM4MDExZDYxYjU0Y2Y2MDE3OGJlMzY4MzlhODlhYzkxYWI0MTllM2NhMzdkNmJhODgxZDI1NTE4YzRkYjY4YmNhNmY3YzgzNjAyZjY5OWE4NmIxN2ZiMWU3NzNiY2JlNzRiYjkzYTQ5YjI1MWFlODY0MjhiNTc0MGUxODY4YmIxZDZmYWI5ZTI4NzEyZTk4ZWMzMTlhZDhmY2E0ZDczMDEwYzRiMDljNGI4MDQ1ODk2MWU3Y2YwODM1MzAyMDMwMTAwMDFhMzUzMzA1MTMwMWQwNjAzNTUxZDBlMDQxNjA0MTQ4YWVlZTU5NDdjYzY3YzVkZDUxNWE3NmUyYTdlY2QzMWVlNTJmZGM4MzAxZjA2MDM1NTFkMjMwNDE4MzAxNjgwMTQ4YWVlZTU5NDdjYzY3YzVkZDUxNWE3NmUyYTdlY2QzMWVlNTJmZGM4MzAwZjA2MDM1NTFkMTMwMTAxZmYwNDA1MzAwMzAxMDFmZjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDAzODIwMTAxMDA4MjFkNmI5OGNkNDU3ZGViZDJiMDgxYWNhMjdlYmVjZDRmOTNhY2M4Mjg0NDNiMzllYWJmZmE5ZmE0ZTllNDU0M2I0NmZjYzMxZTJiNWI0ODE3NzkwM2RlYTY5NjlhYzRhMmNjNjU3MDY1MDM5MGYxYjA4ZDQzYTRjMmY5NzVjN2VkOGJmMzM1NmM3MjE4MzgwMjEyNDUxYThmMTFkZTQ2NTUzY2JjZDY1YjQyNTRkZGI4ZjY2ODM0ZWIyMWRkYTJhOGYzM2I1ODFlMTQ4NDU1N2FjYTFiOTRlZTg5MzFkZGYxNjAzN2I3YTcxNzEzMjFhOTE5MzZhZmMyN2ZmY2UzOTVkZTc1ZDVmNzBjYjhiNWFlZTA1ZmY1MDcwODhkNjVhZjFlNDM5NjZjZDQyY2JlNmY3ZmFjZjhkYWUwNTVkZDgyMjJiMTY5NjUyMTcyM2Y4MTI0NTE3ODU5NWM5ODVhZTkxN2ZkNGIzOTk4NzczZTFhOTdiN2JkMTAwODU0NDZmNDI1OWJjYzA5YTQ1NDkyOTI4MmMxYjg5YjcxZWQ1ODdhNzc1ZTBhM2Q0NTM2MzQxZjQ1ZGFlOTY5ZTgwNmM5NmZlZmM3MTA2Nzc3NmMwMmJhMjIxMjJiOTE5OWIxNGMwYzI4YzA0NDg3NTA5MDcwYjk3ZjNkZDJkNmQ5NzI3MzMxODIwMTc3MzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBkNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDViZWNkODcxOTVjMWRlZmY5MGMyNGM5MTI2OWI1NWIzZjA2OWJjMjI1YzMyNmMzMTRjMWE1MTc4NmZmZTE0YzgzMGJlNGU0YmM3M2NiYTM2Yzk3Njc3YjQ0MTY4Mjc5YmU5MWU3Y2RmN2MxOTM4NmFlMjE4NjI3MTlkMTNhM2EwZmZmMDgwM2Q0NjA5NjJmMmNkYTgzNzE0ODQ4NzMyNTJjM2Q3MDU0ZGI4MTQzZTJiMDgxYTM4MTZlZDA4MDRjYTUwOTlhZTVmZWNlODNkNWMyYzM3ODNiMTk4OGI0YjQ2ZGM5NGU1NTU4N2ExMDdlYTE1NDZiZjIyZDI4YTA5N2Y2NTJhNDA2NmRjMjk2NTI2OTA2OWFmMmY1MTc2YmI4Y2U5Y2E2ZDExZjk2NzU3ZjAzMjA0Zjc1NjcwMzU4N2QwMGFkNDI0Nzk2YzkyZmM3YWViNmY0OTQ0MzE5OTllZGEzMDk5MGU0ZjU3NzM2MzJlZDI1OGZlMDI3NjY3MzU5OWRhNmZjZTM1Y2RhZDc3MjZhMGJiMDI0Y2FkOTk2Yjg4ZTBjYjk4ODU0Y2ViNWMwYjZlYzc0OGQ5ZjljZTZhNmNkNDM3ODU4YmFjYjgxNDYxOGEyNzJmZjNhNDE1YzZlMDdmM2RiMDk4ODc3N2ZkZWM4NDVhOTdiZjdkMTAyZGQwIgogCiBQS0NTNyBQYXJzZSBGYWlsdXJlIEludmFsaWQgQVNOMTogQ2hhbmdlIGxlbmd0aCBmcm9tIDEyIHRvIDExICMyODMuMAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHBrY3M3X2FzbjFfZmFpbDoiMzA4MjA1MDAwNjA5MmE4NjQ4ODZmNzBkMDEwNzAyYTA4MjA0ZjEzMDgyMDRlZDAyMDEwMTMxMGYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBiMDYwOTJhODY0ODg2ZjcwZDAxMDcwMWEwODIwMzRkMzA4MjAzNDkzMDgyMDIzMWEwMDMwMjAxMDIwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTMwMWUxNzBkMzIzMjMxMzAzMjM4MzEzNjMxMzAzNTM2NWExNzBkMzIzMzMxMzAzMjM4MzEzNjMxMzAzNTM2NWEzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEzMDgyMDEyMjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDAzODIwMTBmMDAzMDgyMDEwYTAyODIwMTAxMDBjOGI2Y2Y2OTg5OWNkMWYwZWJiNGNhNjQ1YzA1ZTcwZTBkMmVmZWRkY2M2MWQwODljYmQ1MTVhMzlhMzU3OWI5MjM0M2I2MWVjNzUwMDYwZmI0ZWQzNzg3NjMzMjQwMGU0MjVmMWQzNzZjN2U3NWMyOTczMzE0ZWRmNGJiMzBjOGY4ZGQwM2I5ZmNmZjk1NWEyNDVkNDkxMzdhZDZlNjAwNTZjYWMxOTU1MmE4NjVkNTIxODcxODdjYzA0MmM5YzQ5ZTNlM2E5YzE3YTUzNGI0NTNjZGFiYzBjYjExM2I0ZjYzZjViMzE3NGI5ZWU5OTAyYjE5MTBkMTE0OTZhMjc5YTc0MzI2YWRjZmVlMTBiZmQ5ZTdlYmFmYmIzNzdiZTliNjM5NTkxNjVkMTNkZDU3NTExNzFjYWRhZDNjMWQzYWRhYzY4YmM4MDExZDYxYjU0Y2Y2MDE3OGJlMzY4MzlhODlhYzkxYWI0MTllM2NhMzdkNmJhODgxZDI1NTE4YzRkYjY4YmNhNmY3YzgzNjAyZjY5OWE4NmIxN2ZiMWU3NzNiY2JlNzRiYjkzYTQ5YjI1MWFlODY0MjhiNTc0MGUxODY4YmIxZDZmYWI5ZTI4NzEyZTk4ZWMzMTlhZDhmY2E0ZDczMDEwYzRiMDljNGI4MDQ1ODk2MWU3Y2YwODM1MzAyMDMwMTAwMDFhMzUzMzA1MTMwMWQwNjAzNTUxZDBlMDQxNjA0MTQ4YWVlZTU5NDdjYzY3YzVkZDUxNWE3NmUyYTdlY2QzMWVlNTJmZGM4MzAxZjA2MDM1NTFkMjMwNDE4MzAxNjgwMTQ4YWVlZTU5NDdjYzY3YzVkZDUxNWE3NmUyYTdlY2QzMWVlNTJmZGM4MzAwZjA2MDM1NTFkMTMwMTAxZmYwNDA1MzAwMzAxMDFmZjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDAzODIwMTAxMDA4MjFkNmI5OGNkNDU3ZGViZDJiMDgxYWNhMjdlYmVjZDRmOTNhY2M4Mjg0NDNiMzllYWJmZmE5ZmE0ZTllNDU0M2I0NmZjYzMxZTJiNWI0ODE3NzkwM2RlYTY5NjlhYzRhMmNjNjU3MDY1MDM5MGYxYjA4ZDQzYTRjMmY5NzVjN2VkOGJmMzM1NmM3MjE4MzgwMjEyNDUxYThmMTFkZTQ2NTUzY2JjZDY1YjQyNTRkZGI4ZjY2ODM0ZWIyMWRkYTJhOGYzM2I1ODFlMTQ4NDU1N2FjYTFiOTRlZTg5MzFkZGYxNjAzN2I3YTcxNzEzMjFhOTE5MzZhZmMyN2ZmY2UzOTVkZTc1ZDVmNzBjYjhiNWFlZTA1ZmY1MDcwODhkNjVhZjFlNDM5NjZjZDQyY2JlNmY3ZmFjZjhkYWUwNTVkZDgyMjJiMTY5NjUyMTcyM2Y4MTI0NTE3ODU5NWM5ODVhZTkxN2ZkNGIzOTk4NzczZTFhOTdiN2JkMTAwODU0NDZmNDI1OWJjYzA5YTQ1NDkyOTI4MmMxYjg5YjcxZWQ1ODdhNzc1ZTBhM2Q0NTM2MzQxZjQ1ZGFlOTY5ZTgwNmM5NmZlZmM3MTA2Nzc3NmMwMmJhMjIxMjJiOTE5OWIxNGMwYzI4YzA0NDg3NTA5MDcwYjk3ZjNkZDJkNmQ5NzI3MzMxODIwMTc3MzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBiNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDViZWNkODcxOTVjMWRlZmY5MGMyNGM5MTI2OWI1NWIzZjA2OWJjMjI1YzMyNmMzMTRjMWE1MTc4NmZmZTE0YzgzMGJlNGU0YmM3M2NiYTM2Yzk3Njc3YjQ0MTY4Mjc5YmU5MWU3Y2RmN2MxOTM4NmFlMjE4NjI3MTlkMTNhM2EwZmZmMDgwM2Q0NjA5NjJmMmNkYTgzNzE0ODQ4NzMyNTJjM2Q3MDU0ZGI4MTQzZTJiMDgxYTM4MTZlZDA4MDRjYTUwOTlhZTVmZWNlODNkNWMyYzM3ODNiMTk4OGI0YjQ2ZGM5NGU1NTU4N2ExMDdlYTE1NDZiZjIyZDI4YTA5N2Y2NTJhNDA2NmRjMjk2NTI2OTA2OWFmMmY1MTc2YmI4Y2U5Y2E2ZDExZjk2NzU3ZjAzMjA0Zjc1NjcwMzU4N2QwMGFkNDI0Nzk2YzkyZmM3YWViNmY0OTQ0MzE5OTllZGEzMDk5MGU0ZjU3NzM2MzJlZDI1OGZlMDI3NjY3MzU5OWRhNmZjZTM1Y2RhZDc3MjZhMGJiMDI0Y2FkOTk2Yjg4ZTBjYjk4ODU0Y2ViNWMwYjZlYzc0OGQ5ZjljZTZhNmNkNDM3ODU4YmFjYjgxNDYxOGEyNzJmZjNhNDE1YzZlMDdmM2RiMDk4ODc3N2ZkZWM4NDVhOTdiZjdkMTAyZGQwIgogCiBQS0NTNyBQYXJzZSBGYWlsdXJlIEludmFsaWQgQVNOMTogQ2hhbmdlIHRhZyAwMiB0byAwNCAjMjg0LjAKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBwa2NzN19hc24xX2ZhaWw6IjMwODIwNTAwMDYwOTJhODY0ODg2ZjcwZDAxMDcwMmEwODIwNGYxMzA4MjA0ZWQwMjAxMDEzMTBmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwYjA2MDkyYTg2NDg4NmY3MGQwMTA3MDFhMDgyMDM0ZDMwODIwMzQ5MzA4MjAyMzFhMDAzMDIwMTAyMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEzMDFlMTcwZDMyMzIzMTMwMzIzODMxMzYzMTMwMzUzNjVhMTcwZDMyMzMzMTMwMzIzODMxMzYzMTMwMzUzNjVhMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMzA4MjAxMjIzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwMzgyMDEwZjAwMzA4MjAxMGEwMjgyMDEwMTAwYzhiNmNmNjk4OTljZDFmMGViYjRjYTY0NWMwNWU3MGUwZDJlZmVkZGNjNjFkMDg5Y2JkNTE1YTM5YTM1NzliOTIzNDNiNjFlYzc1MDA2MGZiNGVkMzc4NzYzMzI0MDBlNDI1ZjFkMzc2YzdlNzVjMjk3MzMxNGVkZjRiYjMwYzhmOGRkMDNiOWZjZmY5NTVhMjQ1ZDQ5MTM3YWQ2ZTYwMDU2Y2FjMTk1NTJhODY1ZDUyMTg3MTg3Y2MwNDJjOWM0OWUzZTNhOWMxN2E1MzRiNDUzY2RhYmMwY2IxMTNiNGY2M2Y1YjMxNzRiOWVlOTkwMmIxOTEwZDExNDk2YTI3OWE3NDMyNmFkY2ZlZTEwYmZkOWU3ZWJhZmJiMzc3YmU5YjYzOTU5MTY1ZDEzZGQ1NzUxMTcxY2FkYWQzYzFkM2FkYWM2OGJjODAxMWQ2MWI1NGNmNjAxNzhiZTM2ODM5YTg5YWM5MWFiNDE5ZTNjYTM3ZDZiYTg4MWQyNTUxOGM0ZGI2OGJjYTZmN2M4MzYwMmY2OTlhODZiMTdmYjFlNzczYmNiZTc0YmI5M2E0OWIyNTFhZTg2NDI4YjU3NDBlMTg2OGJiMWQ2ZmFiOWUyODcxMmU5OGVjMzE5YWQ4ZmNhNGQ3MzAxMGM0YjA5YzRiODA0NTg5NjFlN2NmMDgzNTMwMjAzMDEwMDAxYTM1MzMwNTEzMDFkMDYwMzU1MWQwZTA0MTYwNDE0OGFlZWU1OTQ3Y2M2N2M1ZGQ1MTVhNzZlMmE3ZWNkMzFlZTUyZmRjODMwMWYwNjAzNTUxZDIzMDQxODMwMTY4MDE0OGFlZWU1OTQ3Y2M2N2M1ZGQ1MTVhNzZlMmE3ZWNkMzFlZTUyZmRjODMwMGYwNjAzNTUxZDEzMDEwMWZmMDQwNTMwMDMwMTAxZmYzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAwMzgyMDEwMTAwODIxZDZiOThjZDQ1N2RlYmQyYjA4MWFjYTI3ZWJlY2Q0ZjkzYWNjODI4NDQzYjM5ZWFiZmZhOWZhNGU5ZTQ1NDNiNDZmY2MzMWUyYjViNDgxNzc5MDNkZWE2OTY5YWM0YTJjYzY1NzA2NTAzOTBmMWIwOGQ0M2E0YzJmOTc1YzdlZDhiZjMzNTZjNzIxODM4MDIxMjQ1MWE4ZjExZGU0NjU1M2NiY2Q2NWI0MjU0ZGRiOGY2NjgzNGViMjFkZGEyYThmMzNiNTgxZTE0ODQ1NTdhY2ExYjk0ZWU4OTMxZGRmMTYwMzdiN2E3MTcxMzIxYTkxOTM2YWZjMjdmZmNlMzk1ZGU3NWQ1ZjcwY2I4YjVhZWUwNWZmNTA3MDg4ZDY1YWYxZTQzOTY2Y2Q0MmNiZTZmN2ZhY2Y4ZGFlMDU1ZGQ4MjIyYjE2OTY1MjE3MjNmODEyNDUxNzg1OTVjOTg1YWU5MTdmZDRiMzk5ODc3M2UxYTk3YjdiZDEwMDg1NDQ2ZjQyNTliY2MwOWE0NTQ5MjkyODJjMWI4OWI3MWVkNTg3YTc3NWUwYTNkNDUzNjM0MWY0NWRhZTk2OWU4MDZjOTZmZWZjNzEwNjc3NzZjMDJiYTIyMTIyYjkxOTliMTRjMGMyOGMwNDQ4NzUwOTA3MGI5N2YzZGQyZDZkOTcyNzMzMTgyMDE3NzMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTA0MTQ3YmRlZGRkMjQ0NGNkMWNkZmU1YzQxYTgxMDJjODliN2RmMmU2Y2JmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDA1YmVjZDg3MTk1YzFkZWZmOTBjMjRjOTEyNjliNTViM2YwNjliYzIyNWMzMjZjMzE0YzFhNTE3ODZmZmUxNGM4MzBiZTRlNGJjNzNjYmEzNmM5NzY3N2I0NDE2ODI3OWJlOTFlN2NkZjdjMTkzODZhZTIxODYyNzE5ZDEzYTNhMGZmZjA4MDNkNDYwOTYyZjJjZGE4MzcxNDg0ODczMjUyYzNkNzA1NGRiODE0M2UyYjA4MWEzODE2ZWQwODA0Y2E1MDk5YWU1ZmVjZTgzZDVjMmMzNzgzYjE5ODhiNGI0NmRjOTRlNTU1ODdhMTA3ZWExNTQ2YmYyMmQyOGEwOTdmNjUyYTQwNjZkYzI5NjUyNjkwNjlhZjJmNTE3NmJiOGNlOWNhNmQxMWY5Njc1N2YwMzIwNGY3NTY3MDM1ODdkMDBhZDQyNDc5NmM5MmZjN2FlYjZmNDk0NDMxOTk5ZWRhMzA5OTBlNGY1NzczNjMyZWQyNThmZTAyNzY2NzM1OTlkYTZmY2UzNWNkYWQ3NzI2YTBiYjAyNGNhZDk5NmI4OGUwY2I5ODg1NGNlYjVjMGI2ZWM3NDhkOWY5Y2U2YTZjZDQzNzg1OGJhY2I4MTQ2MThhMjcyZmYzYTQxNWM2ZTA3ZjNkYjA5ODg3NzdmZGVjODQ1YTk3YmY3ZDEwMmRkMCIKIAogUEtDUzcgUGFyc2UgRmFpbHVyZSBJbnZhbGlkIEFTTjE6IENoYW5nZSBsZW5ndGggZnJvbSAyMCB0byAyMSAjMjg1LjAKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBwa2NzN19hc24xX2ZhaWw6IjMwODIwNTAwMDYwOTJhODY0ODg2ZjcwZDAxMDcwMmEwODIwNGYxMzA4MjA0ZWQwMjAxMDEzMTBmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwYjA2MDkyYTg2NDg4NmY3MGQwMTA3MDFhMDgyMDM0ZDMwODIwMzQ5MzA4MjAyMzFhMDAzMDIwMTAyMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEzMDFlMTcwZDMyMzIzMTMwMzIzODMxMzYzMTMwMzUzNjVhMTcwZDMyMzMzMTMwMzIzODMxMzYzMTMwMzUzNjVhMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMzA4MjAxMjIzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwMzgyMDEwZjAwMzA4MjAxMGEwMjgyMDEwMTAwYzhiNmNmNjk4OTljZDFmMGViYjRjYTY0NWMwNWU3MGUwZDJlZmVkZGNjNjFkMDg5Y2JkNTE1YTM5YTM1NzliOTIzNDNiNjFlYzc1MDA2MGZiNGVkMzc4NzYzMzI0MDBlNDI1ZjFkMzc2YzdlNzVjMjk3MzMxNGVkZjRiYjMwYzhmOGRkMDNiOWZjZmY5NTVhMjQ1ZDQ5MTM3YWQ2ZTYwMDU2Y2FjMTk1NTJhODY1ZDUyMTg3MTg3Y2MwNDJjOWM0OWUzZTNhOWMxN2E1MzRiNDUzY2RhYmMwY2IxMTNiNGY2M2Y1YjMxNzRiOWVlOTkwMmIxOTEwZDExNDk2YTI3OWE3NDMyNmFkY2ZlZTEwYmZkOWU3ZWJhZmJiMzc3YmU5YjYzOTU5MTY1ZDEzZGQ1NzUxMTcxY2FkYWQzYzFkM2FkYWM2OGJjODAxMWQ2MWI1NGNmNjAxNzhiZTM2ODM5YTg5YWM5MWFiNDE5ZTNjYTM3ZDZiYTg4MWQyNTUxOGM0ZGI2OGJjYTZmN2M4MzYwMmY2OTlhODZiMTdmYjFlNzczYmNiZTc0YmI5M2E0OWIyNTFhZTg2NDI4YjU3NDBlMTg2OGJiMWQ2ZmFiOWUyODcxMmU5OGVjMzE5YWQ4ZmNhNGQ3MzAxMGM0YjA5YzRiODA0NTg5NjFlN2NmMDgzNTMwMjAzMDEwMDAxYTM1MzMwNTEzMDFkMDYwMzU1MWQwZTA0MTYwNDE0OGFlZWU1OTQ3Y2M2N2M1ZGQ1MTVhNzZlMmE3ZWNkMzFlZTUyZmRjODMwMWYwNjAzNTUxZDIzMDQxODMwMTY4MDE0OGFlZWU1OTQ3Y2M2N2M1ZGQ1MTVhNzZlMmE3ZWNkMzFlZTUyZmRjODMwMGYwNjAzNTUxZDEzMDEwMWZmMDQwNTMwMDMwMTAxZmYzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAwMzgyMDEwMTAwODIxZDZiOThjZDQ1N2RlYmQyYjA4MWFjYTI3ZWJlY2Q0ZjkzYWNjODI4NDQzYjM5ZWFiZmZhOWZhNGU5ZTQ1NDNiNDZmY2MzMWUyYjViNDgxNzc5MDNkZWE2OTY5YWM0YTJjYzY1NzA2NTAzOTBmMWIwOGQ0M2E0YzJmOTc1YzdlZDhiZjMzNTZjNzIxODM4MDIxMjQ1MWE4ZjExZGU0NjU1M2NiY2Q2NWI0MjU0ZGRiOGY2NjgzNGViMjFkZGEyYThmMzNiNTgxZTE0ODQ1NTdhY2ExYjk0ZWU4OTMxZGRmMTYwMzdiN2E3MTcxMzIxYTkxOTM2YWZjMjdmZmNlMzk1ZGU3NWQ1ZjcwY2I4YjVhZWUwNWZmNTA3MDg4ZDY1YWYxZTQzOTY2Y2Q0MmNiZTZmN2ZhY2Y4ZGFlMDU1ZGQ4MjIyYjE2OTY1MjE3MjNmODEyNDUxNzg1OTVjOTg1YWU5MTdmZDRiMzk5ODc3M2UxYTk3YjdiZDEwMDg1NDQ2ZjQyNTliY2MwOWE0NTQ5MjkyODJjMWI4OWI3MWVkNTg3YTc3NWUwYTNkNDUzNjM0MWY0NWRhZTk2OWU4MDZjOTZmZWZjNzEwNjc3NzZjMDJiYTIyMTIyYjkxOTliMTRjMGMyOGMwNDQ4NzUwOTA3MGI5N2YzZGQyZDZkOTcyNzMzMTgyMDE3NzMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTAyMTU3YmRlZGRkMjQ0NGNkMWNkZmU1YzQxYTgxMDJjODliN2RmMmU2Y2JmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDA1YmVjZDg3MTk1YzFkZWZmOTBjMjRjOTEyNjliNTViM2YwNjliYzIyNWMzMjZjMzE0YzFhNTE3ODZmZmUxNGM4MzBiZTRlNGJjNzNjYmEzNmM5NzY3N2I0NDE2ODI3OWJlOTFlN2NkZjdjMTkzODZhZTIxODYyNzE5ZDEzYTNhMGZmZjA4MDNkNDYwOTYyZjJjZGE4MzcxNDg0ODczMjUyYzNkNzA1NGRiODE0M2UyYjA4MWEzODE2ZWQwODA0Y2E1MDk5YWU1ZmVjZTgzZDVjMmMzNzgzYjE5ODhiNGI0NmRjOTRlNTU1ODdhMTA3ZWExNTQ2YmYyMmQyOGEwOTdmNjUyYTQwNjZkYzI5NjUyNjkwNjlhZjJmNTE3NmJiOGNlOWNhNmQxMWY5Njc1N2YwMzIwNGY3NTY3MDM1ODdkMDBhZDQyNDc5NmM5MmZjN2FlYjZmNDk0NDMxOTk5ZWRhMzA5OTBlNGY1NzczNjMyZWQyNThmZTAyNzY2NzM1OTlkYTZmY2UzNWNkYWQ3NzI2YTBiYjAyNGNhZDk5NmI4OGUwY2I5ODg1NGNlYjVjMGI2ZWM3NDhkOWY5Y2U2YTZjZDQzNzg1OGJhY2I4MTQ2MThhMjcyZmYzYTQxNWM2ZTA3ZjNkYjA5ODg3NzdmZGVjODQ1YTk3YmY3ZDEwMmRkMCIKIAogUEtDUzcgUGFyc2UgRmFpbHVyZSBJbnZhbGlkIEFTTjE6IENoYW5nZSBsZW5ndGggZnJvbSAyMCB0byAxOSAjMjg2LjAKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBwa2NzN19hc24xX2ZhaWw6IjMwODIwNTAwMDYwOTJhODY0ODg2ZjcwZDAxMDcwMmEwODIwNGYxMzA4MjA0ZWQwMjAxMDEzMTBmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwYjA2MDkyYTg2NDg4NmY3MGQwMTA3MDFhMDgyMDM0ZDMwODIwMzQ5MzA4MjAyMzFhMDAzMDIwMTAyMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEzMDFlMTcwZDMyMzIzMTMwMzIzODMxMzYzMTMwMzUzNjVhMTcwZDMyMzMzMTMwMzIzODMxMzYzMTMwMzUzNjVhMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMzA4MjAxMjIzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwMzgyMDEwZjAwMzA4MjAxMGEwMjgyMDEwMTAwYzhiNmNmNjk4OTljZDFmMGViYjRjYTY0NWMwNWU3MGUwZDJlZmVkZGNjNjFkMDg5Y2JkNTE1YTM5YTM1NzliOTIzNDNiNjFlYzc1MDA2MGZiNGVkMzc4NzYzMzI0MDBlNDI1ZjFkMzc2YzdlNzVjMjk3MzMxNGVkZjRiYjMwYzhmOGRkMDNiOWZjZmY5NTVhMjQ1ZDQ5MTM3YWQ2ZTYwMDU2Y2FjMTk1NTJhODY1ZDUyMTg3MTg3Y2MwNDJjOWM0OWUzZTNhOWMxN2E1MzRiNDUzY2RhYmMwY2IxMTNiNGY2M2Y1YjMxNzRiOWVlOTkwMmIxOTEwZDExNDk2YTI3OWE3NDMyNmFkY2ZlZTEwYmZkOWU3ZWJhZmJiMzc3YmU5YjYzOTU5MTY1ZDEzZGQ1NzUxMTcxY2FkYWQzYzFkM2FkYWM2OGJjODAxMWQ2MWI1NGNmNjAxNzhiZTM2ODM5YTg5YWM5MWFiNDE5ZTNjYTM3ZDZiYTg4MWQyNTUxOGM0ZGI2OGJjYTZmN2M4MzYwMmY2OTlhODZiMTdmYjFlNzczYmNiZTc0YmI5M2E0OWIyNTFhZTg2NDI4YjU3NDBlMTg2OGJiMWQ2ZmFiOWUyODcxMmU5OGVjMzE5YWQ4ZmNhNGQ3MzAxMGM0YjA5YzRiODA0NTg5NjFlN2NmMDgzNTMwMjAzMDEwMDAxYTM1MzMwNTEzMDFkMDYwMzU1MWQwZTA0MTYwNDE0OGFlZWU1OTQ3Y2M2N2M1ZGQ1MTVhNzZlMmE3ZWNkMzFlZTUyZmRjODMwMWYwNjAzNTUxZDIzMDQxODMwMTY4MDE0OGFlZWU1OTQ3Y2M2N2M1ZGQ1MTVhNzZlMmE3ZWNkMzFlZTUyZmRjODMwMGYwNjAzNTUxZDEzMDEwMWZmMDQwNTMwMDMwMTAxZmYzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAwMzgyMDEwMTAwODIxZDZiOThjZDQ1N2RlYmQyYjA4MWFjYTI3ZWJlY2Q0ZjkzYWNjODI4NDQzYjM5ZWFiZmZhOWZhNGU5ZTQ1NDNiNDZmY2MzMWUyYjViNDgxNzc5MDNkZWE2OTY5YWM0YTJjYzY1NzA2NTAzOTBmMWIwOGQ0M2E0YzJmOTc1YzdlZDhiZjMzNTZjNzIxODM4MDIxMjQ1MWE4ZjExZGU0NjU1M2NiY2Q2NWI0MjU0ZGRiOGY2NjgzNGViMjFkZGEyYThmMzNiNTgxZTE0ODQ1NTdhY2ExYjk0ZWU4OTMxZGRmMTYwMzdiN2E3MTcxMzIxYTkxOTM2YWZjMjdmZmNlMzk1ZGU3NWQ1ZjcwY2I4YjVhZWUwNWZmNTA3MDg4ZDY1YWYxZTQzOTY2Y2Q0MmNiZTZmN2ZhY2Y4ZGFlMDU1ZGQ4MjIyYjE2OTY1MjE3MjNmODEyNDUxNzg1OTVjOTg1YWU5MTdmZDRiMzk5ODc3M2UxYTk3YjdiZDEwMDg1NDQ2ZjQyNTliY2MwOWE0NTQ5MjkyODJjMWI4OWI3MWVkNTg3YTc3NWUwYTNkNDUzNjM0MWY0NWRhZTk2OWU4MDZjOTZmZWZjNzEwNjc3NzZjMDJiYTIyMTIyYjkxOTliMTRjMGMyOGMwNDQ4NzUwOTA3MGI5N2YzZGQyZDZkOTcyNzMzMTgyMDE3NzMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTAyMTM3YmRlZGRkMjQ0NGNkMWNkZmU1YzQxYTgxMDJjODliN2RmMmU2Y2JmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDA1YmVjZDg3MTk1YzFkZWZmOTBjMjRjOTEyNjliNTViM2YwNjliYzIyNWMzMjZjMzE0YzFhNTE3ODZmZmUxNGM4MzBiZTRlNGJjNzNjYmEzNmM5NzY3N2I0NDE2ODI3OWJlOTFlN2NkZjdjMTkzODZhZTIxODYyNzE5ZDEzYTNhMGZmZjA4MDNkNDYwOTYyZjJjZGE4MzcxNDg0ODczMjUyYzNkNzA1NGRiODE0M2UyYjA4MWEzODE2ZWQwODA0Y2E1MDk5YWU1ZmVjZTgzZDVjMmMzNzgzYjE5ODhiNGI0NmRjOTRlNTU1ODdhMTA3ZWExNTQ2YmYyMmQyOGEwOTdmNjUyYTQwNjZkYzI5NjUyNjkwNjlhZjJmNTE3NmJiOGNlOWNhNmQxMWY5Njc1N2YwMzIwNGY3NTY3MDM1ODdkMDBhZDQyNDc5NmM5MmZjN2FlYjZmNDk0NDMxOTk5ZWRhMzA5OTBlNGY1NzczNjMyZWQyNThmZTAyNzY2NzM1OTlkYTZmY2UzNWNkYWQ3NzI2YTBiYjAyNGNhZDk5NmI4OGUwY2I5ODg1NGNlYjVjMGI2ZWM3NDhkOWY5Y2U2YTZjZDQzNzg1OGJhY2I4MTQ2MThhMjcyZmYzYTQxNWM2ZTA3ZjNkYjA5ODg3NzdmZGVjODQ1YTk3YmY3ZDEwMmRkMCIKIAogUEtDUzcgUGFyc2UgRmFpbHVyZSBJbnZhbGlkIEFTTjE6IENoYW5nZSB0YWcgMzAgdG8gMDIgIzI4Ny4wCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NgogcGtjczdfYXNuMV9mYWlsOiIzMDgyMDUwMDA2MDkyYTg2NDg4NmY3MGQwMTA3MDJhMDgyMDRmMTMwODIwNGVkMDIwMTAxMzEwZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGIwNjA5MmE4NjQ4ODZmNzBkMDEwNzAxYTA4MjAzNGQzMDgyMDM0OTMwODIwMjMxYTAwMzAyMDEwMjAyMTQ3YmRlZGRkMjQ0NGNkMWNkZmU1YzQxYTgxMDJjODliN2RmMmU2Y2JmMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMzAxZTE3MGQzMjMyMzEzMDMyMzgzMTM2MzEzMDM1MzY1YTE3MGQzMjMzMzEzMDMyMzgzMTM2MzEzMDM1MzY1YTMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTMwODIwMTIyMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDM4MjAxMGYwMDMwODIwMTBhMDI4MjAxMDEwMGM4YjZjZjY5ODk5Y2QxZjBlYmI0Y2E2NDVjMDVlNzBlMGQyZWZlZGRjYzYxZDA4OWNiZDUxNWEzOWEzNTc5YjkyMzQzYjYxZWM3NTAwNjBmYjRlZDM3ODc2MzMyNDAwZTQyNWYxZDM3NmM3ZTc1YzI5NzMzMTRlZGY0YmIzMGM4ZjhkZDAzYjlmY2ZmOTU1YTI0NWQ0OTEzN2FkNmU2MDA1NmNhYzE5NTUyYTg2NWQ1MjE4NzE4N2NjMDQyYzljNDllM2UzYTljMTdhNTM0YjQ1M2NkYWJjMGNiMTEzYjRmNjNmNWIzMTc0YjllZTk5MDJiMTkxMGQxMTQ5NmEyNzlhNzQzMjZhZGNmZWUxMGJmZDllN2ViYWZiYjM3N2JlOWI2Mzk1OTE2NWQxM2RkNTc1MTE3MWNhZGFkM2MxZDNhZGFjNjhiYzgwMTFkNjFiNTRjZjYwMTc4YmUzNjgzOWE4OWFjOTFhYjQxOWUzY2EzN2Q2YmE4ODFkMjU1MThjNGRiNjhiY2E2ZjdjODM2MDJmNjk5YTg2YjE3ZmIxZTc3M2JjYmU3NGJiOTNhNDliMjUxYWU4NjQyOGI1NzQwZTE4NjhiYjFkNmZhYjllMjg3MTJlOThlYzMxOWFkOGZjYTRkNzMwMTBjNGIwOWM0YjgwNDU4OTYxZTdjZjA4MzUzMDIwMzAxMDAwMWEzNTMzMDUxMzAxZDA2MDM1NTFkMGUwNDE2MDQxNDhhZWVlNTk0N2NjNjdjNWRkNTE1YTc2ZTJhN2VjZDMxZWU1MmZkYzgzMDFmMDYwMzU1MWQyMzA0MTgzMDE2ODAxNDhhZWVlNTk0N2NjNjdjNWRkNTE1YTc2ZTJhN2VjZDMxZWU1MmZkYzgzMDBmMDYwMzU1MWQxMzAxMDFmZjA0MDUzMDAzMDEwMWZmMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMDM4MjAxMDEwMDgyMWQ2Yjk4Y2Q0NTdkZWJkMmIwODFhY2EyN2ViZWNkNGY5M2FjYzgyODQ0M2IzOWVhYmZmYTlmYTRlOWU0NTQzYjQ2ZmNjMzFlMmI1YjQ4MTc3OTAzZGVhNjk2OWFjNGEyY2M2NTcwNjUwMzkwZjFiMDhkNDNhNGMyZjk3NWM3ZWQ4YmYzMzU2YzcyMTgzODAyMTI0NTFhOGYxMWRlNDY1NTNjYmNkNjViNDI1NGRkYjhmNjY4MzRlYjIxZGRhMmE4ZjMzYjU4MWUxNDg0NTU3YWNhMWI5NGVlODkzMWRkZjE2MDM3YjdhNzE3MTMyMWE5MTkzNmFmYzI3ZmZjZTM5NWRlNzVkNWY3MGNiOGI1YWVlMDVmZjUwNzA4OGQ2NWFmMWU0Mzk2NmNkNDJjYmU2ZjdmYWNmOGRhZTA1NWRkODIyMmIxNjk2NTIxNzIzZjgxMjQ1MTc4NTk1Yzk4NWFlOTE3ZmQ0YjM5OTg3NzNlMWE5N2I3YmQxMDA4NTQ0NmY0MjU5YmNjMDlhNDU0OTI5MjgyYzFiODliNzFlZDU4N2E3NzVlMGEzZDQ1MzYzNDFmNDVkYWU5NjllODA2Yzk2ZmVmYzcxMDY3Nzc2YzAyYmEyMjEyMmI5MTk5YjE0YzBjMjhjMDQ0ODc1MDkwNzBiOTdmM2RkMmQ2ZDk3MjczMzE4MjAxNzczMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjAyMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwNWJlY2Q4NzE5NWMxZGVmZjkwYzI0YzkxMjY5YjU1YjNmMDY5YmMyMjVjMzI2YzMxNGMxYTUxNzg2ZmZlMTRjODMwYmU0ZTRiYzczY2JhMzZjOTc2NzdiNDQxNjgyNzliZTkxZTdjZGY3YzE5Mzg2YWUyMTg2MjcxOWQxM2EzYTBmZmYwODAzZDQ2MDk2MmYyY2RhODM3MTQ4NDg3MzI1MmMzZDcwNTRkYjgxNDNlMmIwODFhMzgxNmVkMDgwNGNhNTA5OWFlNWZlY2U4M2Q1YzJjMzc4M2IxOTg4YjRiNDZkYzk0ZTU1NTg3YTEwN2VhMTU0NmJmMjJkMjhhMDk3ZjY1MmE0MDY2ZGMyOTY1MjY5MDY5YWYyZjUxNzZiYjhjZTljYTZkMTFmOTY3NTdmMDMyMDRmNzU2NzAzNTg3ZDAwYWQ0MjQ3OTZjOTJmYzdhZWI2ZjQ5NDQzMTk5OWVkYTMwOTkwZTRmNTc3MzYzMmVkMjU4ZmUwMjc2NjczNTk5ZGE2ZmNlMzVjZGFkNzcyNmEwYmIwMjRjYWQ5OTZiODhlMGNiOTg4NTRjZWI1YzBiNmVjNzQ4ZDlmOWNlNmE2Y2Q0Mzc4NThiYWNiODE0NjE4YTI3MmZmM2E0MTVjNmUwN2YzZGIwOTg4Nzc3ZmRlYzg0NWE5N2JmN2QxMDJkZDAiCiAKIFBLQ1M3IFBhcnNlIEZhaWx1cmUgSW52YWxpZCBBU04xOiBDaGFuZ2UgbGVuZ3RoIGZyb20gMTMgdG8gMTQgIzI4OC4wCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NgogcGtjczdfYXNuMV9mYWlsOiIzMDgyMDUwMDA2MDkyYTg2NDg4NmY3MGQwMTA3MDJhMDgyMDRmMTMwODIwNGVkMDIwMTAxMzEwZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGIwNjA5MmE4NjQ4ODZmNzBkMDEwNzAxYTA4MjAzNGQzMDgyMDM0OTMwODIwMjMxYTAwMzAyMDEwMjAyMTQ3YmRlZGRkMjQ0NGNkMWNkZmU1YzQxYTgxMDJjODliN2RmMmU2Y2JmMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMzAxZTE3MGQzMjMyMzEzMDMyMzgzMTM2MzEzMDM1MzY1YTE3MGQzMjMzMzEzMDMyMzgzMTM2MzEzMDM1MzY1YTMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTMwODIwMTIyMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDM4MjAxMGYwMDMwODIwMTBhMDI4MjAxMDEwMGM4YjZjZjY5ODk5Y2QxZjBlYmI0Y2E2NDVjMDVlNzBlMGQyZWZlZGRjYzYxZDA4OWNiZDUxNWEzOWEzNTc5YjkyMzQzYjYxZWM3NTAwNjBmYjRlZDM3ODc2MzMyNDAwZTQyNWYxZDM3NmM3ZTc1YzI5NzMzMTRlZGY0YmIzMGM4ZjhkZDAzYjlmY2ZmOTU1YTI0NWQ0OTEzN2FkNmU2MDA1NmNhYzE5NTUyYTg2NWQ1MjE4NzE4N2NjMDQyYzljNDllM2UzYTljMTdhNTM0YjQ1M2NkYWJjMGNiMTEzYjRmNjNmNWIzMTc0YjllZTk5MDJiMTkxMGQxMTQ5NmEyNzlhNzQzMjZhZGNmZWUxMGJmZDllN2ViYWZiYjM3N2JlOWI2Mzk1OTE2NWQxM2RkNTc1MTE3MWNhZGFkM2MxZDNhZGFjNjhiYzgwMTFkNjFiNTRjZjYwMTc4YmUzNjgzOWE4OWFjOTFhYjQxOWUzY2EzN2Q2YmE4ODFkMjU1MThjNGRiNjhiY2E2ZjdjODM2MDJmNjk5YTg2YjE3ZmIxZTc3M2JjYmU3NGJiOTNhNDliMjUxYWU4NjQyOGI1NzQwZTE4NjhiYjFkNmZhYjllMjg3MTJlOThlYzMxOWFkOGZjYTRkNzMwMTBjNGIwOWM0YjgwNDU4OTYxZTdjZjA4MzUzMDIwMzAxMDAwMWEzNTMzMDUxMzAxZDA2MDM1NTFkMGUwNDE2MDQxNDhhZWVlNTk0N2NjNjdjNWRkNTE1YTc2ZTJhN2VjZDMxZWU1MmZkYzgzMDFmMDYwMzU1MWQyMzA0MTgzMDE2ODAxNDhhZWVlNTk0N2NjNjdjNWRkNTE1YTc2ZTJhN2VjZDMxZWU1MmZkYzgzMDBmMDYwMzU1MWQxMzAxMDFmZjA0MDUzMDAzMDEwMWZmMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMDM4MjAxMDEwMDgyMWQ2Yjk4Y2Q0NTdkZWJkMmIwODFhY2EyN2ViZWNkNGY5M2FjYzgyODQ0M2IzOWVhYmZmYTlmYTRlOWU0NTQzYjQ2ZmNjMzFlMmI1YjQ4MTc3OTAzZGVhNjk2OWFjNGEyY2M2NTcwNjUwMzkwZjFiMDhkNDNhNGMyZjk3NWM3ZWQ4YmYzMzU2YzcyMTgzODAyMTI0NTFhOGYxMWRlNDY1NTNjYmNkNjViNDI1NGRkYjhmNjY4MzRlYjIxZGRhMmE4ZjMzYjU4MWUxNDg0NTU3YWNhMWI5NGVlODkzMWRkZjE2MDM3YjdhNzE3MTMyMWE5MTkzNmFmYzI3ZmZjZTM5NWRlNzVkNWY3MGNiOGI1YWVlMDVmZjUwNzA4OGQ2NWFmMWU0Mzk2NmNkNDJjYmU2ZjdmYWNmOGRhZTA1NWRkODIyMmIxNjk2NTIxNzIzZjgxMjQ1MTc4NTk1Yzk4NWFlOTE3ZmQ0YjM5OTg3NzNlMWE5N2I3YmQxMDA4NTQ0NmY0MjU5YmNjMDlhNDU0OTI5MjgyYzFiODliNzFlZDU4N2E3NzVlMGEzZDQ1MzYzNDFmNDVkYWU5NjllODA2Yzk2ZmVmYzcxMDY3Nzc2YzAyYmEyMjEyMmI5MTk5YjE0YzBjMjhjMDQ0ODc1MDkwNzBiOTdmM2RkMmQ2ZDk3MjczMzE4MjAxNzczMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGUwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwNWJlY2Q4NzE5NWMxZGVmZjkwYzI0YzkxMjY5YjU1YjNmMDY5YmMyMjVjMzI2YzMxNGMxYTUxNzg2ZmZlMTRjODMwYmU0ZTRiYzczY2JhMzZjOTc2NzdiNDQxNjgyNzliZTkxZTdjZGY3YzE5Mzg2YWUyMTg2MjcxOWQxM2EzYTBmZmYwODAzZDQ2MDk2MmYyY2RhODM3MTQ4NDg3MzI1MmMzZDcwNTRkYjgxNDNlMmIwODFhMzgxNmVkMDgwNGNhNTA5OWFlNWZlY2U4M2Q1YzJjMzc4M2IxOTg4YjRiNDZkYzk0ZTU1NTg3YTEwN2VhMTU0NmJmMjJkMjhhMDk3ZjY1MmE0MDY2ZGMyOTY1MjY5MDY5YWYyZjUxNzZiYjhjZTljYTZkMTFmOTY3NTdmMDMyMDRmNzU2NzAzNTg3ZDAwYWQ0MjQ3OTZjOTJmYzdhZWI2ZjQ5NDQzMTk5OWVkYTMwOTkwZTRmNTc3MzYzMmVkMjU4ZmUwMjc2NjczNTk5ZGE2ZmNlMzVjZGFkNzcyNmEwYmIwMjRjYWQ5OTZiODhlMGNiOTg4NTRjZWI1YzBiNmVjNzQ4ZDlmOWNlNmE2Y2Q0Mzc4NThiYWNiODE0NjE4YTI3MmZmM2E0MTVjNmUwN2YzZGIwOTg4Nzc3ZmRlYzg0NWE5N2JmN2QxMDJkZDAiCiAKIFBLQ1M3IFBhcnNlIEZhaWx1cmUgSW52YWxpZCBBU04xOiBDaGFuZ2UgY29udGVudHMgb2YgdGFnIDMwIHRvIGNvbnRhaW4gb25lIHVuYWNjb3VudGVkIGV4dHJhIGJ5dGUgIzI4OS4wCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NgogcGtjczdfYXNuMV9mYWlsOiIzMDgyMDUwMDA2MDkyYTg2NDg4NmY3MGQwMTA3MDJhMDgyMDRmMTMwODIwNGVkMDIwMTAxMzEwZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGIwNjA5MmE4NjQ4ODZmNzBkMDEwNzAxYTA4MjAzNGQzMDgyMDM0OTMwODIwMjMxYTAwMzAyMDEwMjAyMTQ3YmRlZGRkMjQ0NGNkMWNkZmU1YzQxYTgxMDJjODliN2RmMmU2Y2JmMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMzAxZTE3MGQzMjMyMzEzMDMyMzgzMTM2MzEzMDM1MzY1YTE3MGQzMjMzMzEzMDMyMzgzMTM2MzEzMDM1MzY1YTMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTMwODIwMTIyMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDM4MjAxMGYwMDMwODIwMTBhMDI4MjAxMDEwMGM4YjZjZjY5ODk5Y2QxZjBlYmI0Y2E2NDVjMDVlNzBlMGQyZWZlZGRjYzYxZDA4OWNiZDUxNWEzOWEzNTc5YjkyMzQzYjYxZWM3NTAwNjBmYjRlZDM3ODc2MzMyNDAwZTQyNWYxZDM3NmM3ZTc1YzI5NzMzMTRlZGY0YmIzMGM4ZjhkZDAzYjlmY2ZmOTU1YTI0NWQ0OTEzN2FkNmU2MDA1NmNhYzE5NTUyYTg2NWQ1MjE4NzE4N2NjMDQyYzljNDllM2UzYTljMTdhNTM0YjQ1M2NkYWJjMGNiMTEzYjRmNjNmNWIzMTc0YjllZTk5MDJiMTkxMGQxMTQ5NmEyNzlhNzQzMjZhZGNmZWUxMGJmZDllN2ViYWZiYjM3N2JlOWI2Mzk1OTE2NWQxM2RkNTc1MTE3MWNhZGFkM2MxZDNhZGFjNjhiYzgwMTFkNjFiNTRjZjYwMTc4YmUzNjgzOWE4OWFjOTFhYjQxOWUzY2EzN2Q2YmE4ODFkMjU1MThjNGRiNjhiY2E2ZjdjODM2MDJmNjk5YTg2YjE3ZmIxZTc3M2JjYmU3NGJiOTNhNDliMjUxYWU4NjQyOGI1NzQwZTE4NjhiYjFkNmZhYjllMjg3MTJlOThlYzMxOWFkOGZjYTRkNzMwMTBjNGIwOWM0YjgwNDU4OTYxZTdjZjA4MzUzMDIwMzAxMDAwMWEzNTMzMDUxMzAxZDA2MDM1NTFkMGUwNDE2MDQxNDhhZWVlNTk0N2NjNjdjNWRkNTE1YTc2ZTJhN2VjZDMxZWU1MmZkYzgzMDFmMDYwMzU1MWQyMzA0MTgzMDE2ODAxNDhhZWVlNTk0N2NjNjdjNWRkNTE1YTc2ZTJhN2VjZDMxZWU1MmZkYzgzMDBmMDYwMzU1MWQxMzAxMDFmZjA0MDUzMDAzMDEwMWZmMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMDM4MjAxMDEwMDgyMWQ2Yjk4Y2Q0NTdkZWJkMmIwODFhY2EyN2ViZWNkNGY5M2FjYzgyODQ0M2IzOWVhYmZmYTlmYTRlOWU0NTQzYjQ2ZmNjMzFlMmI1YjQ4MTc3OTAzZGVhNjk2OWFjNGEyY2M2NTcwNjUwMzkwZjFiMDhkNDNhNGMyZjk3NWM3ZWQ4YmYzMzU2YzcyMTgzODAyMTI0NTFhOGYxMWRlNDY1NTNjYmNkNjViNDI1NGRkYjhmNjY4MzRlYjIxZGRhMmE4ZjMzYjU4MWUxNDg0NTU3YWNhMWI5NGVlODkzMWRkZjE2MDM3YjdhNzE3MTMyMWE5MTkzNmFmYzI3ZmZjZTM5NWRlNzVkNWY3MGNiOGI1YWVlMDVmZjUwNzA4OGQ2NWFmMWU0Mzk2NmNkNDJjYmU2ZjdmYWNmOGRhZTA1NWRkODIyMmIxNjk2NTIxNzIzZjgxMjQ1MTc4NTk1Yzk4NWFlOTE3ZmQ0YjM5OTg3NzNlMWE5N2I3YmQxMDA4NTQ0NmY0MjU5YmNjMDlhNDU0OTI5MjgyYzFiODliNzFlZDU4N2E3NzVlMGEzZDQ1MzYzNDFmNDVkYWU5NjllODA2Yzk2ZmVmYzcxMDY3Nzc2YzAyYmEyMjEyMmI5MTk5YjE0YzBjMjhjMDQ0ODc1MDkwNzBiOTdmM2RkMmQ2ZDk3MjczMzE4MjAxNzczMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGUwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDA1YmVjZDg3MTk1YzFkZWZmOTBjMjRjOTEyNjliNTViM2YwNjliYzIyNWMzMjZjMzE0YzFhNTE3ODZmZmUxNGM4MzBiZTRlNGJjNzNjYmEzNmM5NzY3N2I0NDE2ODI3OWJlOTFlN2NkZjdjMTkzODZhZTIxODYyNzE5ZDEzYTNhMGZmZjA4MDNkNDYwOTYyZjJjZGE4MzcxNDg0ODczMjUyYzNkNzA1NGRiODE0M2UyYjA4MWEzODE2ZWQwODA0Y2E1MDk5YWU1ZmVjZTgzZDVjMmMzNzgzYjE5ODhiNGI0NmRjOTRlNTU1ODdhMTA3ZWExNTQ2YmYyMmQyOGEwOTdmNjUyYTQwNjZkYzI5NjUyNjkwNjlhZjJmNTE3NmJiOGNlOWNhNmQxMWY5Njc1N2YwMzIwNGY3NTY3MDM1ODdkMDBhZDQyNDc5NmM5MmZjN2FlYjZmNDk0NDMxOTk5ZWRhMzA5OTBlNGY1NzczNjMyZWQyNThmZTAyNzY2NzM1OTlkYTZmY2UzNWNkYWQ3NzI2YTBiYjAyNGNhZDk5NmI4OGUwY2I5ODg1NGNlYjVjMGI2ZWM3NDhkOWY5Y2U2YTZjZDQzNzg1OGJhY2I4MTQ2MThhMjcyZmYzYTQxNWM2ZTA3ZjNkYjA5ODg3NzdmZGVjODQ1YTk3YmY3ZDEwMmRkMCIKIAogUEtDUzcgUGFyc2UgRmFpbHVyZSBJbnZhbGlkIEFTTjE6IENoYW5nZSBsZW5ndGggZnJvbSAxMyB0byAxMiAjMjkwLjAKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBwa2NzN19hc24xX2ZhaWw6IjMwODIwNTAwMDYwOTJhODY0ODg2ZjcwZDAxMDcwMmEwODIwNGYxMzA4MjA0ZWQwMjAxMDEzMTBmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwYjA2MDkyYTg2NDg4NmY3MGQwMTA3MDFhMDgyMDM0ZDMwODIwMzQ5MzA4MjAyMzFhMDAzMDIwMTAyMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEzMDFlMTcwZDMyMzIzMTMwMzIzODMxMzYzMTMwMzUzNjVhMTcwZDMyMzMzMTMwMzIzODMxMzYzMTMwMzUzNjVhMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMzA4MjAxMjIzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwMzgyMDEwZjAwMzA4MjAxMGEwMjgyMDEwMTAwYzhiNmNmNjk4OTljZDFmMGViYjRjYTY0NWMwNWU3MGUwZDJlZmVkZGNjNjFkMDg5Y2JkNTE1YTM5YTM1NzliOTIzNDNiNjFlYzc1MDA2MGZiNGVkMzc4NzYzMzI0MDBlNDI1ZjFkMzc2YzdlNzVjMjk3MzMxNGVkZjRiYjMwYzhmOGRkMDNiOWZjZmY5NTVhMjQ1ZDQ5MTM3YWQ2ZTYwMDU2Y2FjMTk1NTJhODY1ZDUyMTg3MTg3Y2MwNDJjOWM0OWUzZTNhOWMxN2E1MzRiNDUzY2RhYmMwY2IxMTNiNGY2M2Y1YjMxNzRiOWVlOTkwMmIxOTEwZDExNDk2YTI3OWE3NDMyNmFkY2ZlZTEwYmZkOWU3ZWJhZmJiMzc3YmU5YjYzOTU5MTY1ZDEzZGQ1NzUxMTcxY2FkYWQzYzFkM2FkYWM2OGJjODAxMWQ2MWI1NGNmNjAxNzhiZTM2ODM5YTg5YWM5MWFiNDE5ZTNjYTM3ZDZiYTg4MWQyNTUxOGM0ZGI2OGJjYTZmN2M4MzYwMmY2OTlhODZiMTdmYjFlNzczYmNiZTc0YmI5M2E0OWIyNTFhZTg2NDI4YjU3NDBlMTg2OGJiMWQ2ZmFiOWUyODcxMmU5OGVjMzE5YWQ4ZmNhNGQ3MzAxMGM0YjA5YzRiODA0NTg5NjFlN2NmMDgzNTMwMjAzMDEwMDAxYTM1MzMwNTEzMDFkMDYwMzU1MWQwZTA0MTYwNDE0OGFlZWU1OTQ3Y2M2N2M1ZGQ1MTVhNzZlMmE3ZWNkMzFlZTUyZmRjODMwMWYwNjAzNTUxZDIzMDQxODMwMTY4MDE0OGFlZWU1OTQ3Y2M2N2M1ZGQ1MTVhNzZlMmE3ZWNkMzFlZTUyZmRjODMwMGYwNjAzNTUxZDEzMDEwMWZmMDQwNTMwMDMwMTAxZmYzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAwMzgyMDEwMTAwODIxZDZiOThjZDQ1N2RlYmQyYjA4MWFjYTI3ZWJlY2Q0ZjkzYWNjODI4NDQzYjM5ZWFiZmZhOWZhNGU5ZTQ1NDNiNDZmY2MzMWUyYjViNDgxNzc5MDNkZWE2OTY5YWM0YTJjYzY1NzA2NTAzOTBmMWIwOGQ0M2E0YzJmOTc1YzdlZDhiZjMzNTZjNzIxODM4MDIxMjQ1MWE4ZjExZGU0NjU1M2NiY2Q2NWI0MjU0ZGRiOGY2NjgzNGViMjFkZGEyYThmMzNiNTgxZTE0ODQ1NTdhY2ExYjk0ZWU4OTMxZGRmMTYwMzdiN2E3MTcxMzIxYTkxOTM2YWZjMjdmZmNlMzk1ZGU3NWQ1ZjcwY2I4YjVhZWUwNWZmNTA3MDg4ZDY1YWYxZTQzOTY2Y2Q0MmNiZTZmN2ZhY2Y4ZGFlMDU1ZGQ4MjIyYjE2OTY1MjE3MjNmODEyNDUxNzg1OTVjOTg1YWU5MTdmZDRiMzk5ODc3M2UxYTk3YjdiZDEwMDg1NDQ2ZjQyNTliY2MwOWE0NTQ5MjkyODJjMWI4OWI3MWVkNTg3YTc3NWUwYTNkNDUzNjM0MWY0NWRhZTk2OWU4MDZjOTZmZWZjNzEwNjc3NzZjMDJiYTIyMTIyYjkxOTliMTRjMGMyOGMwNDQ4NzUwOTA3MGI5N2YzZGQyZDZkOTcyNzMzMTgyMDE3NzMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTAyMTQ3YmRlZGRkMjQ0NGNkMWNkZmU1YzQxYTgxMDJjODliN2RmMmU2Y2JmMzAwYzA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDA1YmVjZDg3MTk1YzFkZWZmOTBjMjRjOTEyNjliNTViM2YwNjliYzIyNWMzMjZjMzE0YzFhNTE3ODZmZmUxNGM4MzBiZTRlNGJjNzNjYmEzNmM5NzY3N2I0NDE2ODI3OWJlOTFlN2NkZjdjMTkzODZhZTIxODYyNzE5ZDEzYTNhMGZmZjA4MDNkNDYwOTYyZjJjZGE4MzcxNDg0ODczMjUyYzNkNzA1NGRiODE0M2UyYjA4MWEzODE2ZWQwODA0Y2E1MDk5YWU1ZmVjZTgzZDVjMmMzNzgzYjE5ODhiNGI0NmRjOTRlNTU1ODdhMTA3ZWExNTQ2YmYyMmQyOGEwOTdmNjUyYTQwNjZkYzI5NjUyNjkwNjlhZjJmNTE3NmJiOGNlOWNhNmQxMWY5Njc1N2YwMzIwNGY3NTY3MDM1ODdkMDBhZDQyNDc5NmM5MmZjN2FlYjZmNDk0NDMxOTk5ZWRhMzA5OTBlNGY1NzczNjMyZWQyNThmZTAyNzY2NzM1OTlkYTZmY2UzNWNkYWQ3NzI2YTBiYjAyNGNhZDk5NmI4OGUwY2I5ODg1NGNlYjVjMGI2ZWM3NDhkOWY5Y2U2YTZjZDQzNzg1OGJhY2I4MTQ2MThhMjcyZmYzYTQxNWM2ZTA3ZjNkYjA5ODg3NzdmZGVjODQ1YTk3YmY3ZDEwMmRkMCIKIAogUEtDUzcgUGFyc2UgRmFpbHVyZSBJbnZhbGlkIEFTTjE6IENoYW5nZSB0YWcgMDYgdG8gMDIgIzI5MS4wCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NgogcGtjczdfYXNuMV9mYWlsOiIzMDgyMDUwMDA2MDkyYTg2NDg4NmY3MGQwMTA3MDJhMDgyMDRmMTMwODIwNGVkMDIwMTAxMzEwZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGIwNjA5MmE4NjQ4ODZmNzBkMDEwNzAxYTA4MjAzNGQzMDgyMDM0OTMwODIwMjMxYTAwMzAyMDEwMjAyMTQ3YmRlZGRkMjQ0NGNkMWNkZmU1YzQxYTgxMDJjODliN2RmMmU2Y2JmMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMzAxZTE3MGQzMjMyMzEzMDMyMzgzMTM2MzEzMDM1MzY1YTE3MGQzMjMzMzEzMDMyMzgzMTM2MzEzMDM1MzY1YTMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTMwODIwMTIyMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDM4MjAxMGYwMDMwODIwMTBhMDI4MjAxMDEwMGM4YjZjZjY5ODk5Y2QxZjBlYmI0Y2E2NDVjMDVlNzBlMGQyZWZlZGRjYzYxZDA4OWNiZDUxNWEzOWEzNTc5YjkyMzQzYjYxZWM3NTAwNjBmYjRlZDM3ODc2MzMyNDAwZTQyNWYxZDM3NmM3ZTc1YzI5NzMzMTRlZGY0YmIzMGM4ZjhkZDAzYjlmY2ZmOTU1YTI0NWQ0OTEzN2FkNmU2MDA1NmNhYzE5NTUyYTg2NWQ1MjE4NzE4N2NjMDQyYzljNDllM2UzYTljMTdhNTM0YjQ1M2NkYWJjMGNiMTEzYjRmNjNmNWIzMTc0YjllZTk5MDJiMTkxMGQxMTQ5NmEyNzlhNzQzMjZhZGNmZWUxMGJmZDllN2ViYWZiYjM3N2JlOWI2Mzk1OTE2NWQxM2RkNTc1MTE3MWNhZGFkM2MxZDNhZGFjNjhiYzgwMTFkNjFiNTRjZjYwMTc4YmUzNjgzOWE4OWFjOTFhYjQxOWUzY2EzN2Q2YmE4ODFkMjU1MThjNGRiNjhiY2E2ZjdjODM2MDJmNjk5YTg2YjE3ZmIxZTc3M2JjYmU3NGJiOTNhNDliMjUxYWU4NjQyOGI1NzQwZTE4NjhiYjFkNmZhYjllMjg3MTJlOThlYzMxOWFkOGZjYTRkNzMwMTBjNGIwOWM0YjgwNDU4OTYxZTdjZjA4MzUzMDIwMzAxMDAwMWEzNTMzMDUxMzAxZDA2MDM1NTFkMGUwNDE2MDQxNDhhZWVlNTk0N2NjNjdjNWRkNTE1YTc2ZTJhN2VjZDMxZWU1MmZkYzgzMDFmMDYwMzU1MWQyMzA0MTgzMDE2ODAxNDhhZWVlNTk0N2NjNjdjNWRkNTE1YTc2ZTJhN2VjZDMxZWU1MmZkYzgzMDBmMDYwMzU1MWQxMzAxMDFmZjA0MDUzMDAzMDEwMWZmMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMDM4MjAxMDEwMDgyMWQ2Yjk4Y2Q0NTdkZWJkMmIwODFhY2EyN2ViZWNkNGY5M2FjYzgyODQ0M2IzOWVhYmZmYTlmYTRlOWU0NTQzYjQ2ZmNjMzFlMmI1YjQ4MTc3OTAzZGVhNjk2OWFjNGEyY2M2NTcwNjUwMzkwZjFiMDhkNDNhNGMyZjk3NWM3ZWQ4YmYzMzU2YzcyMTgzODAyMTI0NTFhOGYxMWRlNDY1NTNjYmNkNjViNDI1NGRkYjhmNjY4MzRlYjIxZGRhMmE4ZjMzYjU4MWUxNDg0NTU3YWNhMWI5NGVlODkzMWRkZjE2MDM3YjdhNzE3MTMyMWE5MTkzNmFmYzI3ZmZjZTM5NWRlNzVkNWY3MGNiOGI1YWVlMDVmZjUwNzA4OGQ2NWFmMWU0Mzk2NmNkNDJjYmU2ZjdmYWNmOGRhZTA1NWRkODIyMmIxNjk2NTIxNzIzZjgxMjQ1MTc4NTk1Yzk4NWFlOTE3ZmQ0YjM5OTg3NzNlMWE5N2I3YmQxMDA4NTQ0NmY0MjU5YmNjMDlhNDU0OTI5MjgyYzFiODliNzFlZDU4N2E3NzVlMGEzZDQ1MzYzNDFmNDVkYWU5NjllODA2Yzk2ZmVmYzcxMDY3Nzc2YzAyYmEyMjEyMmI5MTk5YjE0YzBjMjhjMDQ0ODc1MDkwNzBiOTdmM2RkMmQ2ZDk3MjczMzE4MjAxNzczMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwMjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwNWJlY2Q4NzE5NWMxZGVmZjkwYzI0YzkxMjY5YjU1YjNmMDY5YmMyMjVjMzI2YzMxNGMxYTUxNzg2ZmZlMTRjODMwYmU0ZTRiYzczY2JhMzZjOTc2NzdiNDQxNjgyNzliZTkxZTdjZGY3YzE5Mzg2YWUyMTg2MjcxOWQxM2EzYTBmZmYwODAzZDQ2MDk2MmYyY2RhODM3MTQ4NDg3MzI1MmMzZDcwNTRkYjgxNDNlMmIwODFhMzgxNmVkMDgwNGNhNTA5OWFlNWZlY2U4M2Q1YzJjMzc4M2IxOTg4YjRiNDZkYzk0ZTU1NTg3YTEwN2VhMTU0NmJmMjJkMjhhMDk3ZjY1MmE0MDY2ZGMyOTY1MjY5MDY5YWYyZjUxNzZiYjhjZTljYTZkMTFmOTY3NTdmMDMyMDRmNzU2NzAzNTg3ZDAwYWQ0MjQ3OTZjOTJmYzdhZWI2ZjQ5NDQzMTk5OWVkYTMwOTkwZTRmNTc3MzYzMmVkMjU4ZmUwMjc2NjczNTk5ZGE2ZmNlMzVjZGFkNzcyNmEwYmIwMjRjYWQ5OTZiODhlMGNiOTg4NTRjZWI1YzBiNmVjNzQ4ZDlmOWNlNmE2Y2Q0Mzc4NThiYWNiODE0NjE4YTI3MmZmM2E0MTVjNmUwN2YzZGIwOTg4Nzc3ZmRlYzg0NWE5N2JmN2QxMDJkZDAiCiAKIFBLQ1M3IFBhcnNlIEZhaWx1cmUgSW52YWxpZCBBU04xOiBDaGFuZ2UgbGVuZ3RoIGZyb20gOSB0byAxMCAjMjkyLjAKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBwa2NzN19hc24xX2ZhaWw6IjMwODIwNTAwMDYwOTJhODY0ODg2ZjcwZDAxMDcwMmEwODIwNGYxMzA4MjA0ZWQwMjAxMDEzMTBmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwYjA2MDkyYTg2NDg4NmY3MGQwMTA3MDFhMDgyMDM0ZDMwODIwMzQ5MzA4MjAyMzFhMDAzMDIwMTAyMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEzMDFlMTcwZDMyMzIzMTMwMzIzODMxMzYzMTMwMzUzNjVhMTcwZDMyMzMzMTMwMzIzODMxMzYzMTMwMzUzNjVhMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMzA4MjAxMjIzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwMzgyMDEwZjAwMzA4MjAxMGEwMjgyMDEwMTAwYzhiNmNmNjk4OTljZDFmMGViYjRjYTY0NWMwNWU3MGUwZDJlZmVkZGNjNjFkMDg5Y2JkNTE1YTM5YTM1NzliOTIzNDNiNjFlYzc1MDA2MGZiNGVkMzc4NzYzMzI0MDBlNDI1ZjFkMzc2YzdlNzVjMjk3MzMxNGVkZjRiYjMwYzhmOGRkMDNiOWZjZmY5NTVhMjQ1ZDQ5MTM3YWQ2ZTYwMDU2Y2FjMTk1NTJhODY1ZDUyMTg3MTg3Y2MwNDJjOWM0OWUzZTNhOWMxN2E1MzRiNDUzY2RhYmMwY2IxMTNiNGY2M2Y1YjMxNzRiOWVlOTkwMmIxOTEwZDExNDk2YTI3OWE3NDMyNmFkY2ZlZTEwYmZkOWU3ZWJhZmJiMzc3YmU5YjYzOTU5MTY1ZDEzZGQ1NzUxMTcxY2FkYWQzYzFkM2FkYWM2OGJjODAxMWQ2MWI1NGNmNjAxNzhiZTM2ODM5YTg5YWM5MWFiNDE5ZTNjYTM3ZDZiYTg4MWQyNTUxOGM0ZGI2OGJjYTZmN2M4MzYwMmY2OTlhODZiMTdmYjFlNzczYmNiZTc0YmI5M2E0OWIyNTFhZTg2NDI4YjU3NDBlMTg2OGJiMWQ2ZmFiOWUyODcxMmU5OGVjMzE5YWQ4ZmNhNGQ3MzAxMGM0YjA5YzRiODA0NTg5NjFlN2NmMDgzNTMwMjAzMDEwMDAxYTM1MzMwNTEzMDFkMDYwMzU1MWQwZTA0MTYwNDE0OGFlZWU1OTQ3Y2M2N2M1ZGQ1MTVhNzZlMmE3ZWNkMzFlZTUyZmRjODMwMWYwNjAzNTUxZDIzMDQxODMwMTY4MDE0OGFlZWU1OTQ3Y2M2N2M1ZGQ1MTVhNzZlMmE3ZWNkMzFlZTUyZmRjODMwMGYwNjAzNTUxZDEzMDEwMWZmMDQwNTMwMDMwMTAxZmYzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAwMzgyMDEwMTAwODIxZDZiOThjZDQ1N2RlYmQyYjA4MWFjYTI3ZWJlY2Q0ZjkzYWNjODI4NDQzYjM5ZWFiZmZhOWZhNGU5ZTQ1NDNiNDZmY2MzMWUyYjViNDgxNzc5MDNkZWE2OTY5YWM0YTJjYzY1NzA2NTAzOTBmMWIwOGQ0M2E0YzJmOTc1YzdlZDhiZjMzNTZjNzIxODM4MDIxMjQ1MWE4ZjExZGU0NjU1M2NiY2Q2NWI0MjU0ZGRiOGY2NjgzNGViMjFkZGEyYThmMzNiNTgxZTE0ODQ1NTdhY2ExYjk0ZWU4OTMxZGRmMTYwMzdiN2E3MTcxMzIxYTkxOTM2YWZjMjdmZmNlMzk1ZGU3NWQ1ZjcwY2I4YjVhZWUwNWZmNTA3MDg4ZDY1YWYxZTQzOTY2Y2Q0MmNiZTZmN2ZhY2Y4ZGFlMDU1ZGQ4MjIyYjE2OTY1MjE3MjNmODEyNDUxNzg1OTVjOTg1YWU5MTdmZDRiMzk5ODc3M2UxYTk3YjdiZDEwMDg1NDQ2ZjQyNTliY2MwOWE0NTQ5MjkyODJjMWI4OWI3MWVkNTg3YTc3NWUwYTNkNDUzNjM0MWY0NWRhZTk2OWU4MDZjOTZmZWZjNzEwNjc3NzZjMDJiYTIyMTIyYjkxOTliMTRjMGMyOGMwNDQ4NzUwOTA3MGI5N2YzZGQyZDZkOTcyNzMzMTgyMDE3NzMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTAyMTQ3YmRlZGRkMjQ0NGNkMWNkZmU1YzQxYTgxMDJjODliN2RmMmU2Y2JmMzAwZDA2MGE2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDA1YmVjZDg3MTk1YzFkZWZmOTBjMjRjOTEyNjliNTViM2YwNjliYzIyNWMzMjZjMzE0YzFhNTE3ODZmZmUxNGM4MzBiZTRlNGJjNzNjYmEzNmM5NzY3N2I0NDE2ODI3OWJlOTFlN2NkZjdjMTkzODZhZTIxODYyNzE5ZDEzYTNhMGZmZjA4MDNkNDYwOTYyZjJjZGE4MzcxNDg0ODczMjUyYzNkNzA1NGRiODE0M2UyYjA4MWEzODE2ZWQwODA0Y2E1MDk5YWU1ZmVjZTgzZDVjMmMzNzgzYjE5ODhiNGI0NmRjOTRlNTU1ODdhMTA3ZWExNTQ2YmYyMmQyOGEwOTdmNjUyYTQwNjZkYzI5NjUyNjkwNjlhZjJmNTE3NmJiOGNlOWNhNmQxMWY5Njc1N2YwMzIwNGY3NTY3MDM1ODdkMDBhZDQyNDc5NmM5MmZjN2FlYjZmNDk0NDMxOTk5ZWRhMzA5OTBlNGY1NzczNjMyZWQyNThmZTAyNzY2NzM1OTlkYTZmY2UzNWNkYWQ3NzI2YTBiYjAyNGNhZDk5NmI4OGUwY2I5ODg1NGNlYjVjMGI2ZWM3NDhkOWY5Y2U2YTZjZDQzNzg1OGJhY2I4MTQ2MThhMjcyZmYzYTQxNWM2ZTA3ZjNkYjA5ODg3NzdmZGVjODQ1YTk3YmY3ZDEwMmRkMCIKIAogUEtDUzcgUGFyc2UgRmFpbHVyZSBJbnZhbGlkIEFTTjE6IENoYW5nZSBsZW5ndGggZnJvbSA5IHRvIDggIzI5My4wCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NgogcGtjczdfYXNuMV9mYWlsOiIzMDgyMDUwMDA2MDkyYTg2NDg4NmY3MGQwMTA3MDJhMDgyMDRmMTMwODIwNGVkMDIwMTAxMzEwZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGIwNjA5MmE4NjQ4ODZmNzBkMDEwNzAxYTA4MjAzNGQzMDgyMDM0OTMwODIwMjMxYTAwMzAyMDEwMjAyMTQ3YmRlZGRkMjQ0NGNkMWNkZmU1YzQxYTgxMDJjODliN2RmMmU2Y2JmMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMzAxZTE3MGQzMjMyMzEzMDMyMzgzMTM2MzEzMDM1MzY1YTE3MGQzMjMzMzEzMDMyMzgzMTM2MzEzMDM1MzY1YTMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTMwODIwMTIyMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDM4MjAxMGYwMDMwODIwMTBhMDI4MjAxMDEwMGM4YjZjZjY5ODk5Y2QxZjBlYmI0Y2E2NDVjMDVlNzBlMGQyZWZlZGRjYzYxZDA4OWNiZDUxNWEzOWEzNTc5YjkyMzQzYjYxZWM3NTAwNjBmYjRlZDM3ODc2MzMyNDAwZTQyNWYxZDM3NmM3ZTc1YzI5NzMzMTRlZGY0YmIzMGM4ZjhkZDAzYjlmY2ZmOTU1YTI0NWQ0OTEzN2FkNmU2MDA1NmNhYzE5NTUyYTg2NWQ1MjE4NzE4N2NjMDQyYzljNDllM2UzYTljMTdhNTM0YjQ1M2NkYWJjMGNiMTEzYjRmNjNmNWIzMTc0YjllZTk5MDJiMTkxMGQxMTQ5NmEyNzlhNzQzMjZhZGNmZWUxMGJmZDllN2ViYWZiYjM3N2JlOWI2Mzk1OTE2NWQxM2RkNTc1MTE3MWNhZGFkM2MxZDNhZGFjNjhiYzgwMTFkNjFiNTRjZjYwMTc4YmUzNjgzOWE4OWFjOTFhYjQxOWUzY2EzN2Q2YmE4ODFkMjU1MThjNGRiNjhiY2E2ZjdjODM2MDJmNjk5YTg2YjE3ZmIxZTc3M2JjYmU3NGJiOTNhNDliMjUxYWU4NjQyOGI1NzQwZTE4NjhiYjFkNmZhYjllMjg3MTJlOThlYzMxOWFkOGZjYTRkNzMwMTBjNGIwOWM0YjgwNDU4OTYxZTdjZjA4MzUzMDIwMzAxMDAwMWEzNTMzMDUxMzAxZDA2MDM1NTFkMGUwNDE2MDQxNDhhZWVlNTk0N2NjNjdjNWRkNTE1YTc2ZTJhN2VjZDMxZWU1MmZkYzgzMDFmMDYwMzU1MWQyMzA0MTgzMDE2ODAxNDhhZWVlNTk0N2NjNjdjNWRkNTE1YTc2ZTJhN2VjZDMxZWU1MmZkYzgzMDBmMDYwMzU1MWQxMzAxMDFmZjA0MDUzMDAzMDEwMWZmMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMDM4MjAxMDEwMDgyMWQ2Yjk4Y2Q0NTdkZWJkMmIwODFhY2EyN2ViZWNkNGY5M2FjYzgyODQ0M2IzOWVhYmZmYTlmYTRlOWU0NTQzYjQ2ZmNjMzFlMmI1YjQ4MTc3OTAzZGVhNjk2OWFjNGEyY2M2NTcwNjUwMzkwZjFiMDhkNDNhNGMyZjk3NWM3ZWQ4YmYzMzU2YzcyMTgzODAyMTI0NTFhOGYxMWRlNDY1NTNjYmNkNjViNDI1NGRkYjhmNjY4MzRlYjIxZGRhMmE4ZjMzYjU4MWUxNDg0NTU3YWNhMWI5NGVlODkzMWRkZjE2MDM3YjdhNzE3MTMyMWE5MTkzNmFmYzI3ZmZjZTM5NWRlNzVkNWY3MGNiOGI1YWVlMDVmZjUwNzA4OGQ2NWFmMWU0Mzk2NmNkNDJjYmU2ZjdmYWNmOGRhZTA1NWRkODIyMmIxNjk2NTIxNzIzZjgxMjQ1MTc4NTk1Yzk4NWFlOTE3ZmQ0YjM5OTg3NzNlMWE5N2I3YmQxMDA4NTQ0NmY0MjU5YmNjMDlhNDU0OTI5MjgyYzFiODliNzFlZDU4N2E3NzVlMGEzZDQ1MzYzNDFmNDVkYWU5NjllODA2Yzk2ZmVmYzcxMDY3Nzc2YzAyYmEyMjEyMmI5MTk5YjE0YzBjMjhjMDQ0ODc1MDkwNzBiOTdmM2RkMmQ2ZDk3MjczMzE4MjAxNzczMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA4NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwNWJlY2Q4NzE5NWMxZGVmZjkwYzI0YzkxMjY5YjU1YjNmMDY5YmMyMjVjMzI2YzMxNGMxYTUxNzg2ZmZlMTRjODMwYmU0ZTRiYzczY2JhMzZjOTc2NzdiNDQxNjgyNzliZTkxZTdjZGY3YzE5Mzg2YWUyMTg2MjcxOWQxM2EzYTBmZmYwODAzZDQ2MDk2MmYyY2RhODM3MTQ4NDg3MzI1MmMzZDcwNTRkYjgxNDNlMmIwODFhMzgxNmVkMDgwNGNhNTA5OWFlNWZlY2U4M2Q1YzJjMzc4M2IxOTg4YjRiNDZkYzk0ZTU1NTg3YTEwN2VhMTU0NmJmMjJkMjhhMDk3ZjY1MmE0MDY2ZGMyOTY1MjY5MDY5YWYyZjUxNzZiYjhjZTljYTZkMTFmOTY3NTdmMDMyMDRmNzU2NzAzNTg3ZDAwYWQ0MjQ3OTZjOTJmYzdhZWI2ZjQ5NDQzMTk5OWVkYTMwOTkwZTRmNTc3MzYzMmVkMjU4ZmUwMjc2NjczNTk5ZGE2ZmNlMzVjZGFkNzcyNmEwYmIwMjRjYWQ5OTZiODhlMGNiOTg4NTRjZWI1YzBiNmVjNzQ4ZDlmOWNlNmE2Y2Q0Mzc4NThiYWNiODE0NjE4YTI3MmZmM2E0MTVjNmUwN2YzZGIwOTg4Nzc3ZmRlYzg0NWE5N2JmN2QxMDJkZDAiCiAKIFBLQ1M3IFBhcnNlIEZhaWx1cmUgSW52YWxpZCBBU04xOiBDaGFuZ2UgdGFnIDA1IHRvIDAyICMyOTQuMAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHBrY3M3X2FzbjFfZmFpbDoiMzA4MjA1MDAwNjA5MmE4NjQ4ODZmNzBkMDEwNzAyYTA4MjA0ZjEzMDgyMDRlZDAyMDEwMTMxMGYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBiMDYwOTJhODY0ODg2ZjcwZDAxMDcwMWEwODIwMzRkMzA4MjAzNDkzMDgyMDIzMWEwMDMwMjAxMDIwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTMwMWUxNzBkMzIzMjMxMzAzMjM4MzEzNjMxMzAzNTM2NWExNzBkMzIzMzMxMzAzMjM4MzEzNjMxMzAzNTM2NWEzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEzMDgyMDEyMjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDAzODIwMTBmMDAzMDgyMDEwYTAyODIwMTAxMDBjOGI2Y2Y2OTg5OWNkMWYwZWJiNGNhNjQ1YzA1ZTcwZTBkMmVmZWRkY2M2MWQwODljYmQ1MTVhMzlhMzU3OWI5MjM0M2I2MWVjNzUwMDYwZmI0ZWQzNzg3NjMzMjQwMGU0MjVmMWQzNzZjN2U3NWMyOTczMzE0ZWRmNGJiMzBjOGY4ZGQwM2I5ZmNmZjk1NWEyNDVkNDkxMzdhZDZlNjAwNTZjYWMxOTU1MmE4NjVkNTIxODcxODdjYzA0MmM5YzQ5ZTNlM2E5YzE3YTUzNGI0NTNjZGFiYzBjYjExM2I0ZjYzZjViMzE3NGI5ZWU5OTAyYjE5MTBkMTE0OTZhMjc5YTc0MzI2YWRjZmVlMTBiZmQ5ZTdlYmFmYmIzNzdiZTliNjM5NTkxNjVkMTNkZDU3NTExNzFjYWRhZDNjMWQzYWRhYzY4YmM4MDExZDYxYjU0Y2Y2MDE3OGJlMzY4MzlhODlhYzkxYWI0MTllM2NhMzdkNmJhODgxZDI1NTE4YzRkYjY4YmNhNmY3YzgzNjAyZjY5OWE4NmIxN2ZiMWU3NzNiY2JlNzRiYjkzYTQ5YjI1MWFlODY0MjhiNTc0MGUxODY4YmIxZDZmYWI5ZTI4NzEyZTk4ZWMzMTlhZDhmY2E0ZDczMDEwYzRiMDljNGI4MDQ1ODk2MWU3Y2YwODM1MzAyMDMwMTAwMDFhMzUzMzA1MTMwMWQwNjAzNTUxZDBlMDQxNjA0MTQ4YWVlZTU5NDdjYzY3YzVkZDUxNWE3NmUyYTdlY2QzMWVlNTJmZGM4MzAxZjA2MDM1NTFkMjMwNDE4MzAxNjgwMTQ4YWVlZTU5NDdjYzY3YzVkZDUxNWE3NmUyYTdlY2QzMWVlNTJmZGM4MzAwZjA2MDM1NTFkMTMwMTAxZmYwNDA1MzAwMzAxMDFmZjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDAzODIwMTAxMDA4MjFkNmI5OGNkNDU3ZGViZDJiMDgxYWNhMjdlYmVjZDRmOTNhY2M4Mjg0NDNiMzllYWJmZmE5ZmE0ZTllNDU0M2I0NmZjYzMxZTJiNWI0ODE3NzkwM2RlYTY5NjlhYzRhMmNjNjU3MDY1MDM5MGYxYjA4ZDQzYTRjMmY5NzVjN2VkOGJmMzM1NmM3MjE4MzgwMjEyNDUxYThmMTFkZTQ2NTUzY2JjZDY1YjQyNTRkZGI4ZjY2ODM0ZWIyMWRkYTJhOGYzM2I1ODFlMTQ4NDU1N2FjYTFiOTRlZTg5MzFkZGYxNjAzN2I3YTcxNzEzMjFhOTE5MzZhZmMyN2ZmY2UzOTVkZTc1ZDVmNzBjYjhiNWFlZTA1ZmY1MDcwODhkNjVhZjFlNDM5NjZjZDQyY2JlNmY3ZmFjZjhkYWUwNTVkZDgyMjJiMTY5NjUyMTcyM2Y4MTI0NTE3ODU5NWM5ODVhZTkxN2ZkNGIzOTk4NzczZTFhOTdiN2JkMTAwODU0NDZmNDI1OWJjYzA5YTQ1NDkyOTI4MmMxYjg5YjcxZWQ1ODdhNzc1ZTBhM2Q0NTM2MzQxZjQ1ZGFlOTY5ZTgwNmM5NmZlZmM3MTA2Nzc3NmMwMmJhMjIxMjJiOTE5OWIxNGMwYzI4YzA0NDg3NTA5MDcwYjk3ZjNkZDJkNmQ5NzI3MzMxODIwMTc3MzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTAyMDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDViZWNkODcxOTVjMWRlZmY5MGMyNGM5MTI2OWI1NWIzZjA2OWJjMjI1YzMyNmMzMTRjMWE1MTc4NmZmZTE0YzgzMGJlNGU0YmM3M2NiYTM2Yzk3Njc3YjQ0MTY4Mjc5YmU5MWU3Y2RmN2MxOTM4NmFlMjE4NjI3MTlkMTNhM2EwZmZmMDgwM2Q0NjA5NjJmMmNkYTgzNzE0ODQ4NzMyNTJjM2Q3MDU0ZGI4MTQzZTJiMDgxYTM4MTZlZDA4MDRjYTUwOTlhZTVmZWNlODNkNWMyYzM3ODNiMTk4OGI0YjQ2ZGM5NGU1NTU4N2ExMDdlYTE1NDZiZjIyZDI4YTA5N2Y2NTJhNDA2NmRjMjk2NTI2OTA2OWFmMmY1MTc2YmI4Y2U5Y2E2ZDExZjk2NzU3ZjAzMjA0Zjc1NjcwMzU4N2QwMGFkNDI0Nzk2YzkyZmM3YWViNmY0OTQ0MzE5OTllZGEzMDk5MGU0ZjU3NzM2MzJlZDI1OGZlMDI3NjY3MzU5OWRhNmZjZTM1Y2RhZDc3MjZhMGJiMDI0Y2FkOTk2Yjg4ZTBjYjk4ODU0Y2ViNWMwYjZlYzc0OGQ5ZjljZTZhNmNkNDM3ODU4YmFjYjgxNDYxOGEyNzJmZjNhNDE1YzZlMDdmM2RiMDk4ODc3N2ZkZWM4NDVhOTdiZjdkMTAyZGQwIgogCiBQS0NTNyBQYXJzZSBGYWlsdXJlIEludmFsaWQgQVNOMTogQ2hhbmdlIGxlbmd0aCBmcm9tIDAgdG8gMSAjMjk1LjAKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBwa2NzN19hc24xX2ZhaWw6IjMwODIwNTAwMDYwOTJhODY0ODg2ZjcwZDAxMDcwMmEwODIwNGYxMzA4MjA0ZWQwMjAxMDEzMTBmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwYjA2MDkyYTg2NDg4NmY3MGQwMTA3MDFhMDgyMDM0ZDMwODIwMzQ5MzA4MjAyMzFhMDAzMDIwMTAyMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEzMDFlMTcwZDMyMzIzMTMwMzIzODMxMzYzMTMwMzUzNjVhMTcwZDMyMzMzMTMwMzIzODMxMzYzMTMwMzUzNjVhMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMzA4MjAxMjIzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwMzgyMDEwZjAwMzA4MjAxMGEwMjgyMDEwMTAwYzhiNmNmNjk4OTljZDFmMGViYjRjYTY0NWMwNWU3MGUwZDJlZmVkZGNjNjFkMDg5Y2JkNTE1YTM5YTM1NzliOTIzNDNiNjFlYzc1MDA2MGZiNGVkMzc4NzYzMzI0MDBlNDI1ZjFkMzc2YzdlNzVjMjk3MzMxNGVkZjRiYjMwYzhmOGRkMDNiOWZjZmY5NTVhMjQ1ZDQ5MTM3YWQ2ZTYwMDU2Y2FjMTk1NTJhODY1ZDUyMTg3MTg3Y2MwNDJjOWM0OWUzZTNhOWMxN2E1MzRiNDUzY2RhYmMwY2IxMTNiNGY2M2Y1YjMxNzRiOWVlOTkwMmIxOTEwZDExNDk2YTI3OWE3NDMyNmFkY2ZlZTEwYmZkOWU3ZWJhZmJiMzc3YmU5YjYzOTU5MTY1ZDEzZGQ1NzUxMTcxY2FkYWQzYzFkM2FkYWM2OGJjODAxMWQ2MWI1NGNmNjAxNzhiZTM2ODM5YTg5YWM5MWFiNDE5ZTNjYTM3ZDZiYTg4MWQyNTUxOGM0ZGI2OGJjYTZmN2M4MzYwMmY2OTlhODZiMTdmYjFlNzczYmNiZTc0YmI5M2E0OWIyNTFhZTg2NDI4YjU3NDBlMTg2OGJiMWQ2ZmFiOWUyODcxMmU5OGVjMzE5YWQ4ZmNhNGQ3MzAxMGM0YjA5YzRiODA0NTg5NjFlN2NmMDgzNTMwMjAzMDEwMDAxYTM1MzMwNTEzMDFkMDYwMzU1MWQwZTA0MTYwNDE0OGFlZWU1OTQ3Y2M2N2M1ZGQ1MTVhNzZlMmE3ZWNkMzFlZTUyZmRjODMwMWYwNjAzNTUxZDIzMDQxODMwMTY4MDE0OGFlZWU1OTQ3Y2M2N2M1ZGQ1MTVhNzZlMmE3ZWNkMzFlZTUyZmRjODMwMGYwNjAzNTUxZDEzMDEwMWZmMDQwNTMwMDMwMTAxZmYzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAwMzgyMDEwMTAwODIxZDZiOThjZDQ1N2RlYmQyYjA4MWFjYTI3ZWJlY2Q0ZjkzYWNjODI4NDQzYjM5ZWFiZmZhOWZhNGU5ZTQ1NDNiNDZmY2MzMWUyYjViNDgxNzc5MDNkZWE2OTY5YWM0YTJjYzY1NzA2NTAzOTBmMWIwOGQ0M2E0YzJmOTc1YzdlZDhiZjMzNTZjNzIxODM4MDIxMjQ1MWE4ZjExZGU0NjU1M2NiY2Q2NWI0MjU0ZGRiOGY2NjgzNGViMjFkZGEyYThmMzNiNTgxZTE0ODQ1NTdhY2ExYjk0ZWU4OTMxZGRmMTYwMzdiN2E3MTcxMzIxYTkxOTM2YWZjMjdmZmNlMzk1ZGU3NWQ1ZjcwY2I4YjVhZWUwNWZmNTA3MDg4ZDY1YWYxZTQzOTY2Y2Q0MmNiZTZmN2ZhY2Y4ZGFlMDU1ZGQ4MjIyYjE2OTY1MjE3MjNmODEyNDUxNzg1OTVjOTg1YWU5MTdmZDRiMzk5ODc3M2UxYTk3YjdiZDEwMDg1NDQ2ZjQyNTliY2MwOWE0NTQ5MjkyODJjMWI4OWI3MWVkNTg3YTc3NWUwYTNkNDUzNjM0MWY0NWRhZTk2OWU4MDZjOTZmZWZjNzEwNjc3NzZjMDJiYTIyMTIyYjkxOTliMTRjMGMyOGMwNDQ4NzUwOTA3MGI5N2YzZGQyZDZkOTcyNzMzMTgyMDE3NzMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTAyMTQ3YmRlZGRkMjQ0NGNkMWNkZmU1YzQxYTgxMDJjODliN2RmMmU2Y2JmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAxMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDA1YmVjZDg3MTk1YzFkZWZmOTBjMjRjOTEyNjliNTViM2YwNjliYzIyNWMzMjZjMzE0YzFhNTE3ODZmZmUxNGM4MzBiZTRlNGJjNzNjYmEzNmM5NzY3N2I0NDE2ODI3OWJlOTFlN2NkZjdjMTkzODZhZTIxODYyNzE5ZDEzYTNhMGZmZjA4MDNkNDYwOTYyZjJjZGE4MzcxNDg0ODczMjUyYzNkNzA1NGRiODE0M2UyYjA4MWEzODE2ZWQwODA0Y2E1MDk5YWU1ZmVjZTgzZDVjMmMzNzgzYjE5ODhiNGI0NmRjOTRlNTU1ODdhMTA3ZWExNTQ2YmYyMmQyOGEwOTdmNjUyYTQwNjZkYzI5NjUyNjkwNjlhZjJmNTE3NmJiOGNlOWNhNmQxMWY5Njc1N2YwMzIwNGY3NTY3MDM1ODdkMDBhZDQyNDc5NmM5MmZjN2FlYjZmNDk0NDMxOTk5ZWRhMzA5OTBlNGY1NzczNjMyZWQyNThmZTAyNzY2NzM1OTlkYTZmY2UzNWNkYWQ3NzI2YTBiYjAyNGNhZDk5NmI4OGUwY2I5ODg1NGNlYjVjMGI2ZWM3NDhkOWY5Y2U2YTZjZDQzNzg1OGJhY2I4MTQ2MThhMjcyZmYzYTQxNWM2ZTA3ZjNkYjA5ODg3NzdmZGVjODQ1YTk3YmY3ZDEwMmRkMCIKIAogUEtDUzcgUGFyc2UgRmFpbHVyZSBJbnZhbGlkIEFTTjE6IENoYW5nZSB0YWcgMzAgdG8gMDIgIzI5Ni4wCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NgogcGtjczdfYXNuMV9mYWlsOiIzMDgyMDUwMDA2MDkyYTg2NDg4NmY3MGQwMTA3MDJhMDgyMDRmMTMwODIwNGVkMDIwMTAxMzEwZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGIwNjA5MmE4NjQ4ODZmNzBkMDEwNzAxYTA4MjAzNGQzMDgyMDM0OTMwODIwMjMxYTAwMzAyMDEwMjAyMTQ3YmRlZGRkMjQ0NGNkMWNkZmU1YzQxYTgxMDJjODliN2RmMmU2Y2JmMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMzAxZTE3MGQzMjMyMzEzMDMyMzgzMTM2MzEzMDM1MzY1YTE3MGQzMjMzMzEzMDMyMzgzMTM2MzEzMDM1MzY1YTMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTMwODIwMTIyMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDM4MjAxMGYwMDMwODIwMTBhMDI4MjAxMDEwMGM4YjZjZjY5ODk5Y2QxZjBlYmI0Y2E2NDVjMDVlNzBlMGQyZWZlZGRjYzYxZDA4OWNiZDUxNWEzOWEzNTc5YjkyMzQzYjYxZWM3NTAwNjBmYjRlZDM3ODc2MzMyNDAwZTQyNWYxZDM3NmM3ZTc1YzI5NzMzMTRlZGY0YmIzMGM4ZjhkZDAzYjlmY2ZmOTU1YTI0NWQ0OTEzN2FkNmU2MDA1NmNhYzE5NTUyYTg2NWQ1MjE4NzE4N2NjMDQyYzljNDllM2UzYTljMTdhNTM0YjQ1M2NkYWJjMGNiMTEzYjRmNjNmNWIzMTc0YjllZTk5MDJiMTkxMGQxMTQ5NmEyNzlhNzQzMjZhZGNmZWUxMGJmZDllN2ViYWZiYjM3N2JlOWI2Mzk1OTE2NWQxM2RkNTc1MTE3MWNhZGFkM2MxZDNhZGFjNjhiYzgwMTFkNjFiNTRjZjYwMTc4YmUzNjgzOWE4OWFjOTFhYjQxOWUzY2EzN2Q2YmE4ODFkMjU1MThjNGRiNjhiY2E2ZjdjODM2MDJmNjk5YTg2YjE3ZmIxZTc3M2JjYmU3NGJiOTNhNDliMjUxYWU4NjQyOGI1NzQwZTE4NjhiYjFkNmZhYjllMjg3MTJlOThlYzMxOWFkOGZjYTRkNzMwMTBjNGIwOWM0YjgwNDU4OTYxZTdjZjA4MzUzMDIwMzAxMDAwMWEzNTMzMDUxMzAxZDA2MDM1NTFkMGUwNDE2MDQxNDhhZWVlNTk0N2NjNjdjNWRkNTE1YTc2ZTJhN2VjZDMxZWU1MmZkYzgzMDFmMDYwMzU1MWQyMzA0MTgzMDE2ODAxNDhhZWVlNTk0N2NjNjdjNWRkNTE1YTc2ZTJhN2VjZDMxZWU1MmZkYzgzMDBmMDYwMzU1MWQxMzAxMDFmZjA0MDUzMDAzMDEwMWZmMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMDM4MjAxMDEwMDgyMWQ2Yjk4Y2Q0NTdkZWJkMmIwODFhY2EyN2ViZWNkNGY5M2FjYzgyODQ0M2IzOWVhYmZmYTlmYTRlOWU0NTQzYjQ2ZmNjMzFlMmI1YjQ4MTc3OTAzZGVhNjk2OWFjNGEyY2M2NTcwNjUwMzkwZjFiMDhkNDNhNGMyZjk3NWM3ZWQ4YmYzMzU2YzcyMTgzODAyMTI0NTFhOGYxMWRlNDY1NTNjYmNkNjViNDI1NGRkYjhmNjY4MzRlYjIxZGRhMmE4ZjMzYjU4MWUxNDg0NTU3YWNhMWI5NGVlODkzMWRkZjE2MDM3YjdhNzE3MTMyMWE5MTkzNmFmYzI3ZmZjZTM5NWRlNzVkNWY3MGNiOGI1YWVlMDVmZjUwNzA4OGQ2NWFmMWU0Mzk2NmNkNDJjYmU2ZjdmYWNmOGRhZTA1NWRkODIyMmIxNjk2NTIxNzIzZjgxMjQ1MTc4NTk1Yzk4NWFlOTE3ZmQ0YjM5OTg3NzNlMWE5N2I3YmQxMDA4NTQ0NmY0MjU5YmNjMDlhNDU0OTI5MjgyYzFiODliNzFlZDU4N2E3NzVlMGEzZDQ1MzYzNDFmNDVkYWU5NjllODA2Yzk2ZmVmYzcxMDY3Nzc2YzAyYmEyMjEyMmI5MTk5YjE0YzBjMjhjMDQ0ODc1MDkwNzBiOTdmM2RkMmQ2ZDk3MjczMzE4MjAxNzczMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDAyMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwNWJlY2Q4NzE5NWMxZGVmZjkwYzI0YzkxMjY5YjU1YjNmMDY5YmMyMjVjMzI2YzMxNGMxYTUxNzg2ZmZlMTRjODMwYmU0ZTRiYzczY2JhMzZjOTc2NzdiNDQxNjgyNzliZTkxZTdjZGY3YzE5Mzg2YWUyMTg2MjcxOWQxM2EzYTBmZmYwODAzZDQ2MDk2MmYyY2RhODM3MTQ4NDg3MzI1MmMzZDcwNTRkYjgxNDNlMmIwODFhMzgxNmVkMDgwNGNhNTA5OWFlNWZlY2U4M2Q1YzJjMzc4M2IxOTg4YjRiNDZkYzk0ZTU1NTg3YTEwN2VhMTU0NmJmMjJkMjhhMDk3ZjY1MmE0MDY2ZGMyOTY1MjY5MDY5YWYyZjUxNzZiYjhjZTljYTZkMTFmOTY3NTdmMDMyMDRmNzU2NzAzNTg3ZDAwYWQ0MjQ3OTZjOTJmYzdhZWI2ZjQ5NDQzMTk5OWVkYTMwOTkwZTRmNTc3MzYzMmVkMjU4ZmUwMjc2NjczNTk5ZGE2ZmNlMzVjZGFkNzcyNmEwYmIwMjRjYWQ5OTZiODhlMGNiOTg4NTRjZWI1YzBiNmVjNzQ4ZDlmOWNlNmE2Y2Q0Mzc4NThiYWNiODE0NjE4YTI3MmZmM2E0MTVjNmUwN2YzZGIwOTg4Nzc3ZmRlYzg0NWE5N2JmN2QxMDJkZDAiCiAKIFBLQ1M3IFBhcnNlIEZhaWx1cmUgSW52YWxpZCBBU04xOiBDaGFuZ2UgbGVuZ3RoIGZyb20gMTMgdG8gMTQgIzI5Ny4wCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NgogcGtjczdfYXNuMV9mYWlsOiIzMDgyMDUwMDA2MDkyYTg2NDg4NmY3MGQwMTA3MDJhMDgyMDRmMTMwODIwNGVkMDIwMTAxMzEwZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGIwNjA5MmE4NjQ4ODZmNzBkMDEwNzAxYTA4MjAzNGQzMDgyMDM0OTMwODIwMjMxYTAwMzAyMDEwMjAyMTQ3YmRlZGRkMjQ0NGNkMWNkZmU1YzQxYTgxMDJjODliN2RmMmU2Y2JmMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMzAxZTE3MGQzMjMyMzEzMDMyMzgzMTM2MzEzMDM1MzY1YTE3MGQzMjMzMzEzMDMyMzgzMTM2MzEzMDM1MzY1YTMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTMwODIwMTIyMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDM4MjAxMGYwMDMwODIwMTBhMDI4MjAxMDEwMGM4YjZjZjY5ODk5Y2QxZjBlYmI0Y2E2NDVjMDVlNzBlMGQyZWZlZGRjYzYxZDA4OWNiZDUxNWEzOWEzNTc5YjkyMzQzYjYxZWM3NTAwNjBmYjRlZDM3ODc2MzMyNDAwZTQyNWYxZDM3NmM3ZTc1YzI5NzMzMTRlZGY0YmIzMGM4ZjhkZDAzYjlmY2ZmOTU1YTI0NWQ0OTEzN2FkNmU2MDA1NmNhYzE5NTUyYTg2NWQ1MjE4NzE4N2NjMDQyYzljNDllM2UzYTljMTdhNTM0YjQ1M2NkYWJjMGNiMTEzYjRmNjNmNWIzMTc0YjllZTk5MDJiMTkxMGQxMTQ5NmEyNzlhNzQzMjZhZGNmZWUxMGJmZDllN2ViYWZiYjM3N2JlOWI2Mzk1OTE2NWQxM2RkNTc1MTE3MWNhZGFkM2MxZDNhZGFjNjhiYzgwMTFkNjFiNTRjZjYwMTc4YmUzNjgzOWE4OWFjOTFhYjQxOWUzY2EzN2Q2YmE4ODFkMjU1MThjNGRiNjhiY2E2ZjdjODM2MDJmNjk5YTg2YjE3ZmIxZTc3M2JjYmU3NGJiOTNhNDliMjUxYWU4NjQyOGI1NzQwZTE4NjhiYjFkNmZhYjllMjg3MTJlOThlYzMxOWFkOGZjYTRkNzMwMTBjNGIwOWM0YjgwNDU4OTYxZTdjZjA4MzUzMDIwMzAxMDAwMWEzNTMzMDUxMzAxZDA2MDM1NTFkMGUwNDE2MDQxNDhhZWVlNTk0N2NjNjdjNWRkNTE1YTc2ZTJhN2VjZDMxZWU1MmZkYzgzMDFmMDYwMzU1MWQyMzA0MTgzMDE2ODAxNDhhZWVlNTk0N2NjNjdjNWRkNTE1YTc2ZTJhN2VjZDMxZWU1MmZkYzgzMDBmMDYwMzU1MWQxMzAxMDFmZjA0MDUzMDAzMDEwMWZmMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMDM4MjAxMDEwMDgyMWQ2Yjk4Y2Q0NTdkZWJkMmIwODFhY2EyN2ViZWNkNGY5M2FjYzgyODQ0M2IzOWVhYmZmYTlmYTRlOWU0NTQzYjQ2ZmNjMzFlMmI1YjQ4MTc3OTAzZGVhNjk2OWFjNGEyY2M2NTcwNjUwMzkwZjFiMDhkNDNhNGMyZjk3NWM3ZWQ4YmYzMzU2YzcyMTgzODAyMTI0NTFhOGYxMWRlNDY1NTNjYmNkNjViNDI1NGRkYjhmNjY4MzRlYjIxZGRhMmE4ZjMzYjU4MWUxNDg0NTU3YWNhMWI5NGVlODkzMWRkZjE2MDM3YjdhNzE3MTMyMWE5MTkzNmFmYzI3ZmZjZTM5NWRlNzVkNWY3MGNiOGI1YWVlMDVmZjUwNzA4OGQ2NWFmMWU0Mzk2NmNkNDJjYmU2ZjdmYWNmOGRhZTA1NWRkODIyMmIxNjk2NTIxNzIzZjgxMjQ1MTc4NTk1Yzk4NWFlOTE3ZmQ0YjM5OTg3NzNlMWE5N2I3YmQxMDA4NTQ0NmY0MjU5YmNjMDlhNDU0OTI5MjgyYzFiODliNzFlZDU4N2E3NzVlMGEzZDQ1MzYzNDFmNDVkYWU5NjllODA2Yzk2ZmVmYzcxMDY3Nzc2YzAyYmEyMjEyMmI5MTk5YjE0YzBjMjhjMDQ0ODc1MDkwNzBiOTdmM2RkMmQ2ZDk3MjczMzE4MjAxNzczMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGUwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwNWJlY2Q4NzE5NWMxZGVmZjkwYzI0YzkxMjY5YjU1YjNmMDY5YmMyMjVjMzI2YzMxNGMxYTUxNzg2ZmZlMTRjODMwYmU0ZTRiYzczY2JhMzZjOTc2NzdiNDQxNjgyNzliZTkxZTdjZGY3YzE5Mzg2YWUyMTg2MjcxOWQxM2EzYTBmZmYwODAzZDQ2MDk2MmYyY2RhODM3MTQ4NDg3MzI1MmMzZDcwNTRkYjgxNDNlMmIwODFhMzgxNmVkMDgwNGNhNTA5OWFlNWZlY2U4M2Q1YzJjMzc4M2IxOTg4YjRiNDZkYzk0ZTU1NTg3YTEwN2VhMTU0NmJmMjJkMjhhMDk3ZjY1MmE0MDY2ZGMyOTY1MjY5MDY5YWYyZjUxNzZiYjhjZTljYTZkMTFmOTY3NTdmMDMyMDRmNzU2NzAzNTg3ZDAwYWQ0MjQ3OTZjOTJmYzdhZWI2ZjQ5NDQzMTk5OWVkYTMwOTkwZTRmNTc3MzYzMmVkMjU4ZmUwMjc2NjczNTk5ZGE2ZmNlMzVjZGFkNzcyNmEwYmIwMjRjYWQ5OTZiODhlMGNiOTg4NTRjZWI1YzBiNmVjNzQ4ZDlmOWNlNmE2Y2Q0Mzc4NThiYWNiODE0NjE4YTI3MmZmM2E0MTVjNmUwN2YzZGIwOTg4Nzc3ZmRlYzg0NWE5N2JmN2QxMDJkZDAiCiAKIFBLQ1M3IFBhcnNlIEZhaWx1cmUgSW52YWxpZCBBU04xOiBDaGFuZ2UgY29udGVudHMgb2YgdGFnIDMwIHRvIGNvbnRhaW4gb25lIHVuYWNjb3VudGVkIGV4dHJhIGJ5dGUgIzI5OC4wCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NgogcGtjczdfYXNuMV9mYWlsOiIzMDgyMDUwMDA2MDkyYTg2NDg4NmY3MGQwMTA3MDJhMDgyMDRmMTMwODIwNGVkMDIwMTAxMzEwZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGIwNjA5MmE4NjQ4ODZmNzBkMDEwNzAxYTA4MjAzNGQzMDgyMDM0OTMwODIwMjMxYTAwMzAyMDEwMjAyMTQ3YmRlZGRkMjQ0NGNkMWNkZmU1YzQxYTgxMDJjODliN2RmMmU2Y2JmMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMzAxZTE3MGQzMjMyMzEzMDMyMzgzMTM2MzEzMDM1MzY1YTE3MGQzMjMzMzEzMDMyMzgzMTM2MzEzMDM1MzY1YTMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTMwODIwMTIyMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDM4MjAxMGYwMDMwODIwMTBhMDI4MjAxMDEwMGM4YjZjZjY5ODk5Y2QxZjBlYmI0Y2E2NDVjMDVlNzBlMGQyZWZlZGRjYzYxZDA4OWNiZDUxNWEzOWEzNTc5YjkyMzQzYjYxZWM3NTAwNjBmYjRlZDM3ODc2MzMyNDAwZTQyNWYxZDM3NmM3ZTc1YzI5NzMzMTRlZGY0YmIzMGM4ZjhkZDAzYjlmY2ZmOTU1YTI0NWQ0OTEzN2FkNmU2MDA1NmNhYzE5NTUyYTg2NWQ1MjE4NzE4N2NjMDQyYzljNDllM2UzYTljMTdhNTM0YjQ1M2NkYWJjMGNiMTEzYjRmNjNmNWIzMTc0YjllZTk5MDJiMTkxMGQxMTQ5NmEyNzlhNzQzMjZhZGNmZWUxMGJmZDllN2ViYWZiYjM3N2JlOWI2Mzk1OTE2NWQxM2RkNTc1MTE3MWNhZGFkM2MxZDNhZGFjNjhiYzgwMTFkNjFiNTRjZjYwMTc4YmUzNjgzOWE4OWFjOTFhYjQxOWUzY2EzN2Q2YmE4ODFkMjU1MThjNGRiNjhiY2E2ZjdjODM2MDJmNjk5YTg2YjE3ZmIxZTc3M2JjYmU3NGJiOTNhNDliMjUxYWU4NjQyOGI1NzQwZTE4NjhiYjFkNmZhYjllMjg3MTJlOThlYzMxOWFkOGZjYTRkNzMwMTBjNGIwOWM0YjgwNDU4OTYxZTdjZjA4MzUzMDIwMzAxMDAwMWEzNTMzMDUxMzAxZDA2MDM1NTFkMGUwNDE2MDQxNDhhZWVlNTk0N2NjNjdjNWRkNTE1YTc2ZTJhN2VjZDMxZWU1MmZkYzgzMDFmMDYwMzU1MWQyMzA0MTgzMDE2ODAxNDhhZWVlNTk0N2NjNjdjNWRkNTE1YTc2ZTJhN2VjZDMxZWU1MmZkYzgzMDBmMDYwMzU1MWQxMzAxMDFmZjA0MDUzMDAzMDEwMWZmMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMDM4MjAxMDEwMDgyMWQ2Yjk4Y2Q0NTdkZWJkMmIwODFhY2EyN2ViZWNkNGY5M2FjYzgyODQ0M2IzOWVhYmZmYTlmYTRlOWU0NTQzYjQ2ZmNjMzFlMmI1YjQ4MTc3OTAzZGVhNjk2OWFjNGEyY2M2NTcwNjUwMzkwZjFiMDhkNDNhNGMyZjk3NWM3ZWQ4YmYzMzU2YzcyMTgzODAyMTI0NTFhOGYxMWRlNDY1NTNjYmNkNjViNDI1NGRkYjhmNjY4MzRlYjIxZGRhMmE4ZjMzYjU4MWUxNDg0NTU3YWNhMWI5NGVlODkzMWRkZjE2MDM3YjdhNzE3MTMyMWE5MTkzNmFmYzI3ZmZjZTM5NWRlNzVkNWY3MGNiOGI1YWVlMDVmZjUwNzA4OGQ2NWFmMWU0Mzk2NmNkNDJjYmU2ZjdmYWNmOGRhZTA1NWRkODIyMmIxNjk2NTIxNzIzZjgxMjQ1MTc4NTk1Yzk4NWFlOTE3ZmQ0YjM5OTg3NzNlMWE5N2I3YmQxMDA4NTQ0NmY0MjU5YmNjMDlhNDU0OTI5MjgyYzFiODliNzFlZDU4N2E3NzVlMGEzZDQ1MzYzNDFmNDVkYWU5NjllODA2Yzk2ZmVmYzcxMDY3Nzc2YzAyYmEyMjEyMmI5MTk5YjE0YzBjMjhjMDQ0ODc1MDkwNzBiOTdmM2RkMmQ2ZDk3MjczMzE4MjAxNzczMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGUwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDAwMDQ4MjAxMDA1YmVjZDg3MTk1YzFkZWZmOTBjMjRjOTEyNjliNTViM2YwNjliYzIyNWMzMjZjMzE0YzFhNTE3ODZmZmUxNGM4MzBiZTRlNGJjNzNjYmEzNmM5NzY3N2I0NDE2ODI3OWJlOTFlN2NkZjdjMTkzODZhZTIxODYyNzE5ZDEzYTNhMGZmZjA4MDNkNDYwOTYyZjJjZGE4MzcxNDg0ODczMjUyYzNkNzA1NGRiODE0M2UyYjA4MWEzODE2ZWQwODA0Y2E1MDk5YWU1ZmVjZTgzZDVjMmMzNzgzYjE5ODhiNGI0NmRjOTRlNTU1ODdhMTA3ZWExNTQ2YmYyMmQyOGEwOTdmNjUyYTQwNjZkYzI5NjUyNjkwNjlhZjJmNTE3NmJiOGNlOWNhNmQxMWY5Njc1N2YwMzIwNGY3NTY3MDM1ODdkMDBhZDQyNDc5NmM5MmZjN2FlYjZmNDk0NDMxOTk5ZWRhMzA5OTBlNGY1NzczNjMyZWQyNThmZTAyNzY2NzM1OTlkYTZmY2UzNWNkYWQ3NzI2YTBiYjAyNGNhZDk5NmI4OGUwY2I5ODg1NGNlYjVjMGI2ZWM3NDhkOWY5Y2U2YTZjZDQzNzg1OGJhY2I4MTQ2MThhMjcyZmYzYTQxNWM2ZTA3ZjNkYjA5ODg3NzdmZGVjODQ1YTk3YmY3ZDEwMmRkMCIKIAogUEtDUzcgUGFyc2UgRmFpbHVyZSBJbnZhbGlkIEFTTjE6IENoYW5nZSBsZW5ndGggZnJvbSAxMyB0byAxMiAjMjk5LjAKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBwa2NzN19hc24xX2ZhaWw6IjMwODIwNTAwMDYwOTJhODY0ODg2ZjcwZDAxMDcwMmEwODIwNGYxMzA4MjA0ZWQwMjAxMDEzMTBmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwYjA2MDkyYTg2NDg4NmY3MGQwMTA3MDFhMDgyMDM0ZDMwODIwMzQ5MzA4MjAyMzFhMDAzMDIwMTAyMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEzMDFlMTcwZDMyMzIzMTMwMzIzODMxMzYzMTMwMzUzNjVhMTcwZDMyMzMzMTMwMzIzODMxMzYzMTMwMzUzNjVhMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMzA4MjAxMjIzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwMzgyMDEwZjAwMzA4MjAxMGEwMjgyMDEwMTAwYzhiNmNmNjk4OTljZDFmMGViYjRjYTY0NWMwNWU3MGUwZDJlZmVkZGNjNjFkMDg5Y2JkNTE1YTM5YTM1NzliOTIzNDNiNjFlYzc1MDA2MGZiNGVkMzc4NzYzMzI0MDBlNDI1ZjFkMzc2YzdlNzVjMjk3MzMxNGVkZjRiYjMwYzhmOGRkMDNiOWZjZmY5NTVhMjQ1ZDQ5MTM3YWQ2ZTYwMDU2Y2FjMTk1NTJhODY1ZDUyMTg3MTg3Y2MwNDJjOWM0OWUzZTNhOWMxN2E1MzRiNDUzY2RhYmMwY2IxMTNiNGY2M2Y1YjMxNzRiOWVlOTkwMmIxOTEwZDExNDk2YTI3OWE3NDMyNmFkY2ZlZTEwYmZkOWU3ZWJhZmJiMzc3YmU5YjYzOTU5MTY1ZDEzZGQ1NzUxMTcxY2FkYWQzYzFkM2FkYWM2OGJjODAxMWQ2MWI1NGNmNjAxNzhiZTM2ODM5YTg5YWM5MWFiNDE5ZTNjYTM3ZDZiYTg4MWQyNTUxOGM0ZGI2OGJjYTZmN2M4MzYwMmY2OTlhODZiMTdmYjFlNzczYmNiZTc0YmI5M2E0OWIyNTFhZTg2NDI4YjU3NDBlMTg2OGJiMWQ2ZmFiOWUyODcxMmU5OGVjMzE5YWQ4ZmNhNGQ3MzAxMGM0YjA5YzRiODA0NTg5NjFlN2NmMDgzNTMwMjAzMDEwMDAxYTM1MzMwNTEzMDFkMDYwMzU1MWQwZTA0MTYwNDE0OGFlZWU1OTQ3Y2M2N2M1ZGQ1MTVhNzZlMmE3ZWNkMzFlZTUyZmRjODMwMWYwNjAzNTUxZDIzMDQxODMwMTY4MDE0OGFlZWU1OTQ3Y2M2N2M1ZGQ1MTVhNzZlMmE3ZWNkMzFlZTUyZmRjODMwMGYwNjAzNTUxZDEzMDEwMWZmMDQwNTMwMDMwMTAxZmYzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAwMzgyMDEwMTAwODIxZDZiOThjZDQ1N2RlYmQyYjA4MWFjYTI3ZWJlY2Q0ZjkzYWNjODI4NDQzYjM5ZWFiZmZhOWZhNGU5ZTQ1NDNiNDZmY2MzMWUyYjViNDgxNzc5MDNkZWE2OTY5YWM0YTJjYzY1NzA2NTAzOTBmMWIwOGQ0M2E0YzJmOTc1YzdlZDhiZjMzNTZjNzIxODM4MDIxMjQ1MWE4ZjExZGU0NjU1M2NiY2Q2NWI0MjU0ZGRiOGY2NjgzNGViMjFkZGEyYThmMzNiNTgxZTE0ODQ1NTdhY2ExYjk0ZWU4OTMxZGRmMTYwMzdiN2E3MTcxMzIxYTkxOTM2YWZjMjdmZmNlMzk1ZGU3NWQ1ZjcwY2I4YjVhZWUwNWZmNTA3MDg4ZDY1YWYxZTQzOTY2Y2Q0MmNiZTZmN2ZhY2Y4ZGFlMDU1ZGQ4MjIyYjE2OTY1MjE3MjNmODEyNDUxNzg1OTVjOTg1YWU5MTdmZDRiMzk5ODc3M2UxYTk3YjdiZDEwMDg1NDQ2ZjQyNTliY2MwOWE0NTQ5MjkyODJjMWI4OWI3MWVkNTg3YTc3NWUwYTNkNDUzNjM0MWY0NWRhZTk2OWU4MDZjOTZmZWZjNzEwNjc3NzZjMDJiYTIyMTIyYjkxOTliMTRjMGMyOGMwNDQ4NzUwOTA3MGI5N2YzZGQyZDZkOTcyNzMzMTgyMDE3NzMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTAyMTQ3YmRlZGRkMjQ0NGNkMWNkZmU1YzQxYTgxMDJjODliN2RmMmU2Y2JmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwYzA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDA1YmVjZDg3MTk1YzFkZWZmOTBjMjRjOTEyNjliNTViM2YwNjliYzIyNWMzMjZjMzE0YzFhNTE3ODZmZmUxNGM4MzBiZTRlNGJjNzNjYmEzNmM5NzY3N2I0NDE2ODI3OWJlOTFlN2NkZjdjMTkzODZhZTIxODYyNzE5ZDEzYTNhMGZmZjA4MDNkNDYwOTYyZjJjZGE4MzcxNDg0ODczMjUyYzNkNzA1NGRiODE0M2UyYjA4MWEzODE2ZWQwODA0Y2E1MDk5YWU1ZmVjZTgzZDVjMmMzNzgzYjE5ODhiNGI0NmRjOTRlNTU1ODdhMTA3ZWExNTQ2YmYyMmQyOGEwOTdmNjUyYTQwNjZkYzI5NjUyNjkwNjlhZjJmNTE3NmJiOGNlOWNhNmQxMWY5Njc1N2YwMzIwNGY3NTY3MDM1ODdkMDBhZDQyNDc5NmM5MmZjN2FlYjZmNDk0NDMxOTk5ZWRhMzA5OTBlNGY1NzczNjMyZWQyNThmZTAyNzY2NzM1OTlkYTZmY2UzNWNkYWQ3NzI2YTBiYjAyNGNhZDk5NmI4OGUwY2I5ODg1NGNlYjVjMGI2ZWM3NDhkOWY5Y2U2YTZjZDQzNzg1OGJhY2I4MTQ2MThhMjcyZmYzYTQxNWM2ZTA3ZjNkYjA5ODg3NzdmZGVjODQ1YTk3YmY3ZDEwMmRkMCIKIAogUEtDUzcgUGFyc2UgRmFpbHVyZSBJbnZhbGlkIEFTTjE6IENoYW5nZSB0YWcgMDYgdG8gMDIgIzMwMC4wCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NgogcGtjczdfYXNuMV9mYWlsOiIzMDgyMDUwMDA2MDkyYTg2NDg4NmY3MGQwMTA3MDJhMDgyMDRmMTMwODIwNGVkMDIwMTAxMzEwZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGIwNjA5MmE4NjQ4ODZmNzBkMDEwNzAxYTA4MjAzNGQzMDgyMDM0OTMwODIwMjMxYTAwMzAyMDEwMjAyMTQ3YmRlZGRkMjQ0NGNkMWNkZmU1YzQxYTgxMDJjODliN2RmMmU2Y2JmMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMzAxZTE3MGQzMjMyMzEzMDMyMzgzMTM2MzEzMDM1MzY1YTE3MGQzMjMzMzEzMDMyMzgzMTM2MzEzMDM1MzY1YTMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTMwODIwMTIyMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDM4MjAxMGYwMDMwODIwMTBhMDI4MjAxMDEwMGM4YjZjZjY5ODk5Y2QxZjBlYmI0Y2E2NDVjMDVlNzBlMGQyZWZlZGRjYzYxZDA4OWNiZDUxNWEzOWEzNTc5YjkyMzQzYjYxZWM3NTAwNjBmYjRlZDM3ODc2MzMyNDAwZTQyNWYxZDM3NmM3ZTc1YzI5NzMzMTRlZGY0YmIzMGM4ZjhkZDAzYjlmY2ZmOTU1YTI0NWQ0OTEzN2FkNmU2MDA1NmNhYzE5NTUyYTg2NWQ1MjE4NzE4N2NjMDQyYzljNDllM2UzYTljMTdhNTM0YjQ1M2NkYWJjMGNiMTEzYjRmNjNmNWIzMTc0YjllZTk5MDJiMTkxMGQxMTQ5NmEyNzlhNzQzMjZhZGNmZWUxMGJmZDllN2ViYWZiYjM3N2JlOWI2Mzk1OTE2NWQxM2RkNTc1MTE3MWNhZGFkM2MxZDNhZGFjNjhiYzgwMTFkNjFiNTRjZjYwMTc4YmUzNjgzOWE4OWFjOTFhYjQxOWUzY2EzN2Q2YmE4ODFkMjU1MThjNGRiNjhiY2E2ZjdjODM2MDJmNjk5YTg2YjE3ZmIxZTc3M2JjYmU3NGJiOTNhNDliMjUxYWU4NjQyOGI1NzQwZTE4NjhiYjFkNmZhYjllMjg3MTJlOThlYzMxOWFkOGZjYTRkNzMwMTBjNGIwOWM0YjgwNDU4OTYxZTdjZjA4MzUzMDIwMzAxMDAwMWEzNTMzMDUxMzAxZDA2MDM1NTFkMGUwNDE2MDQxNDhhZWVlNTk0N2NjNjdjNWRkNTE1YTc2ZTJhN2VjZDMxZWU1MmZkYzgzMDFmMDYwMzU1MWQyMzA0MTgzMDE2ODAxNDhhZWVlNTk0N2NjNjdjNWRkNTE1YTc2ZTJhN2VjZDMxZWU1MmZkYzgzMDBmMDYwMzU1MWQxMzAxMDFmZjA0MDUzMDAzMDEwMWZmMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMDM4MjAxMDEwMDgyMWQ2Yjk4Y2Q0NTdkZWJkMmIwODFhY2EyN2ViZWNkNGY5M2FjYzgyODQ0M2IzOWVhYmZmYTlmYTRlOWU0NTQzYjQ2ZmNjMzFlMmI1YjQ4MTc3OTAzZGVhNjk2OWFjNGEyY2M2NTcwNjUwMzkwZjFiMDhkNDNhNGMyZjk3NWM3ZWQ4YmYzMzU2YzcyMTgzODAyMTI0NTFhOGYxMWRlNDY1NTNjYmNkNjViNDI1NGRkYjhmNjY4MzRlYjIxZGRhMmE4ZjMzYjU4MWUxNDg0NTU3YWNhMWI5NGVlODkzMWRkZjE2MDM3YjdhNzE3MTMyMWE5MTkzNmFmYzI3ZmZjZTM5NWRlNzVkNWY3MGNiOGI1YWVlMDVmZjUwNzA4OGQ2NWFmMWU0Mzk2NmNkNDJjYmU2ZjdmYWNmOGRhZTA1NWRkODIyMmIxNjk2NTIxNzIzZjgxMjQ1MTc4NTk1Yzk4NWFlOTE3ZmQ0YjM5OTg3NzNlMWE5N2I3YmQxMDA4NTQ0NmY0MjU5YmNjMDlhNDU0OTI5MjgyYzFiODliNzFlZDU4N2E3NzVlMGEzZDQ1MzYzNDFmNDVkYWU5NjllODA2Yzk2ZmVmYzcxMDY3Nzc2YzAyYmEyMjEyMmI5MTk5YjE0YzBjMjhjMDQ0ODc1MDkwNzBiOTdmM2RkMmQ2ZDk3MjczMzE4MjAxNzczMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwMjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwNWJlY2Q4NzE5NWMxZGVmZjkwYzI0YzkxMjY5YjU1YjNmMDY5YmMyMjVjMzI2YzMxNGMxYTUxNzg2ZmZlMTRjODMwYmU0ZTRiYzczY2JhMzZjOTc2NzdiNDQxNjgyNzliZTkxZTdjZGY3YzE5Mzg2YWUyMTg2MjcxOWQxM2EzYTBmZmYwODAzZDQ2MDk2MmYyY2RhODM3MTQ4NDg3MzI1MmMzZDcwNTRkYjgxNDNlMmIwODFhMzgxNmVkMDgwNGNhNTA5OWFlNWZlY2U4M2Q1YzJjMzc4M2IxOTg4YjRiNDZkYzk0ZTU1NTg3YTEwN2VhMTU0NmJmMjJkMjhhMDk3ZjY1MmE0MDY2ZGMyOTY1MjY5MDY5YWYyZjUxNzZiYjhjZTljYTZkMTFmOTY3NTdmMDMyMDRmNzU2NzAzNTg3ZDAwYWQ0MjQ3OTZjOTJmYzdhZWI2ZjQ5NDQzMTk5OWVkYTMwOTkwZTRmNTc3MzYzMmVkMjU4ZmUwMjc2NjczNTk5ZGE2ZmNlMzVjZGFkNzcyNmEwYmIwMjRjYWQ5OTZiODhlMGNiOTg4NTRjZWI1YzBiNmVjNzQ4ZDlmOWNlNmE2Y2Q0Mzc4NThiYWNiODE0NjE4YTI3MmZmM2E0MTVjNmUwN2YzZGIwOTg4Nzc3ZmRlYzg0NWE5N2JmN2QxMDJkZDAiCiAKIFBLQ1M3IFBhcnNlIEZhaWx1cmUgSW52YWxpZCBBU04xOiBDaGFuZ2UgbGVuZ3RoIGZyb20gOSB0byAxMCAjMzAxLjAKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBwa2NzN19hc24xX2ZhaWw6IjMwODIwNTAwMDYwOTJhODY0ODg2ZjcwZDAxMDcwMmEwODIwNGYxMzA4MjA0ZWQwMjAxMDEzMTBmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwYjA2MDkyYTg2NDg4NmY3MGQwMTA3MDFhMDgyMDM0ZDMwODIwMzQ5MzA4MjAyMzFhMDAzMDIwMTAyMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEzMDFlMTcwZDMyMzIzMTMwMzIzODMxMzYzMTMwMzUzNjVhMTcwZDMyMzMzMTMwMzIzODMxMzYzMTMwMzUzNjVhMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMzA4MjAxMjIzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwMzgyMDEwZjAwMzA4MjAxMGEwMjgyMDEwMTAwYzhiNmNmNjk4OTljZDFmMGViYjRjYTY0NWMwNWU3MGUwZDJlZmVkZGNjNjFkMDg5Y2JkNTE1YTM5YTM1NzliOTIzNDNiNjFlYzc1MDA2MGZiNGVkMzc4NzYzMzI0MDBlNDI1ZjFkMzc2YzdlNzVjMjk3MzMxNGVkZjRiYjMwYzhmOGRkMDNiOWZjZmY5NTVhMjQ1ZDQ5MTM3YWQ2ZTYwMDU2Y2FjMTk1NTJhODY1ZDUyMTg3MTg3Y2MwNDJjOWM0OWUzZTNhOWMxN2E1MzRiNDUzY2RhYmMwY2IxMTNiNGY2M2Y1YjMxNzRiOWVlOTkwMmIxOTEwZDExNDk2YTI3OWE3NDMyNmFkY2ZlZTEwYmZkOWU3ZWJhZmJiMzc3YmU5YjYzOTU5MTY1ZDEzZGQ1NzUxMTcxY2FkYWQzYzFkM2FkYWM2OGJjODAxMWQ2MWI1NGNmNjAxNzhiZTM2ODM5YTg5YWM5MWFiNDE5ZTNjYTM3ZDZiYTg4MWQyNTUxOGM0ZGI2OGJjYTZmN2M4MzYwMmY2OTlhODZiMTdmYjFlNzczYmNiZTc0YmI5M2E0OWIyNTFhZTg2NDI4YjU3NDBlMTg2OGJiMWQ2ZmFiOWUyODcxMmU5OGVjMzE5YWQ4ZmNhNGQ3MzAxMGM0YjA5YzRiODA0NTg5NjFlN2NmMDgzNTMwMjAzMDEwMDAxYTM1MzMwNTEzMDFkMDYwMzU1MWQwZTA0MTYwNDE0OGFlZWU1OTQ3Y2M2N2M1ZGQ1MTVhNzZlMmE3ZWNkMzFlZTUyZmRjODMwMWYwNjAzNTUxZDIzMDQxODMwMTY4MDE0OGFlZWU1OTQ3Y2M2N2M1ZGQ1MTVhNzZlMmE3ZWNkMzFlZTUyZmRjODMwMGYwNjAzNTUxZDEzMDEwMWZmMDQwNTMwMDMwMTAxZmYzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAwMzgyMDEwMTAwODIxZDZiOThjZDQ1N2RlYmQyYjA4MWFjYTI3ZWJlY2Q0ZjkzYWNjODI4NDQzYjM5ZWFiZmZhOWZhNGU5ZTQ1NDNiNDZmY2MzMWUyYjViNDgxNzc5MDNkZWE2OTY5YWM0YTJjYzY1NzA2NTAzOTBmMWIwOGQ0M2E0YzJmOTc1YzdlZDhiZjMzNTZjNzIxODM4MDIxMjQ1MWE4ZjExZGU0NjU1M2NiY2Q2NWI0MjU0ZGRiOGY2NjgzNGViMjFkZGEyYThmMzNiNTgxZTE0ODQ1NTdhY2ExYjk0ZWU4OTMxZGRmMTYwMzdiN2E3MTcxMzIxYTkxOTM2YWZjMjdmZmNlMzk1ZGU3NWQ1ZjcwY2I4YjVhZWUwNWZmNTA3MDg4ZDY1YWYxZTQzOTY2Y2Q0MmNiZTZmN2ZhY2Y4ZGFlMDU1ZGQ4MjIyYjE2OTY1MjE3MjNmODEyNDUxNzg1OTVjOTg1YWU5MTdmZDRiMzk5ODc3M2UxYTk3YjdiZDEwMDg1NDQ2ZjQyNTliY2MwOWE0NTQ5MjkyODJjMWI4OWI3MWVkNTg3YTc3NWUwYTNkNDUzNjM0MWY0NWRhZTk2OWU4MDZjOTZmZWZjNzEwNjc3NzZjMDJiYTIyMTIyYjkxOTliMTRjMGMyOGMwNDQ4NzUwOTA3MGI5N2YzZGQyZDZkOTcyNzMzMTgyMDE3NzMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTAyMTQ3YmRlZGRkMjQ0NGNkMWNkZmU1YzQxYTgxMDJjODliN2RmMmU2Y2JmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MGEyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDA1YmVjZDg3MTk1YzFkZWZmOTBjMjRjOTEyNjliNTViM2YwNjliYzIyNWMzMjZjMzE0YzFhNTE3ODZmZmUxNGM4MzBiZTRlNGJjNzNjYmEzNmM5NzY3N2I0NDE2ODI3OWJlOTFlN2NkZjdjMTkzODZhZTIxODYyNzE5ZDEzYTNhMGZmZjA4MDNkNDYwOTYyZjJjZGE4MzcxNDg0ODczMjUyYzNkNzA1NGRiODE0M2UyYjA4MWEzODE2ZWQwODA0Y2E1MDk5YWU1ZmVjZTgzZDVjMmMzNzgzYjE5ODhiNGI0NmRjOTRlNTU1ODdhMTA3ZWExNTQ2YmYyMmQyOGEwOTdmNjUyYTQwNjZkYzI5NjUyNjkwNjlhZjJmNTE3NmJiOGNlOWNhNmQxMWY5Njc1N2YwMzIwNGY3NTY3MDM1ODdkMDBhZDQyNDc5NmM5MmZjN2FlYjZmNDk0NDMxOTk5ZWRhMzA5OTBlNGY1NzczNjMyZWQyNThmZTAyNzY2NzM1OTlkYTZmY2UzNWNkYWQ3NzI2YTBiYjAyNGNhZDk5NmI4OGUwY2I5ODg1NGNlYjVjMGI2ZWM3NDhkOWY5Y2U2YTZjZDQzNzg1OGJhY2I4MTQ2MThhMjcyZmYzYTQxNWM2ZTA3ZjNkYjA5ODg3NzdmZGVjODQ1YTk3YmY3ZDEwMmRkMCIKIAogUEtDUzcgUGFyc2UgRmFpbHVyZSBJbnZhbGlkIEFTTjE6IENoYW5nZSBsZW5ndGggZnJvbSA5IHRvIDggIzMwMi4wCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NgogcGtjczdfYXNuMV9mYWlsOiIzMDgyMDUwMDA2MDkyYTg2NDg4NmY3MGQwMTA3MDJhMDgyMDRmMTMwODIwNGVkMDIwMTAxMzEwZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGIwNjA5MmE4NjQ4ODZmNzBkMDEwNzAxYTA4MjAzNGQzMDgyMDM0OTMwODIwMjMxYTAwMzAyMDEwMjAyMTQ3YmRlZGRkMjQ0NGNkMWNkZmU1YzQxYTgxMDJjODliN2RmMmU2Y2JmMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMzAxZTE3MGQzMjMyMzEzMDMyMzgzMTM2MzEzMDM1MzY1YTE3MGQzMjMzMzEzMDMyMzgzMTM2MzEzMDM1MzY1YTMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTMwODIwMTIyMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDM4MjAxMGYwMDMwODIwMTBhMDI4MjAxMDEwMGM4YjZjZjY5ODk5Y2QxZjBlYmI0Y2E2NDVjMDVlNzBlMGQyZWZlZGRjYzYxZDA4OWNiZDUxNWEzOWEzNTc5YjkyMzQzYjYxZWM3NTAwNjBmYjRlZDM3ODc2MzMyNDAwZTQyNWYxZDM3NmM3ZTc1YzI5NzMzMTRlZGY0YmIzMGM4ZjhkZDAzYjlmY2ZmOTU1YTI0NWQ0OTEzN2FkNmU2MDA1NmNhYzE5NTUyYTg2NWQ1MjE4NzE4N2NjMDQyYzljNDllM2UzYTljMTdhNTM0YjQ1M2NkYWJjMGNiMTEzYjRmNjNmNWIzMTc0YjllZTk5MDJiMTkxMGQxMTQ5NmEyNzlhNzQzMjZhZGNmZWUxMGJmZDllN2ViYWZiYjM3N2JlOWI2Mzk1OTE2NWQxM2RkNTc1MTE3MWNhZGFkM2MxZDNhZGFjNjhiYzgwMTFkNjFiNTRjZjYwMTc4YmUzNjgzOWE4OWFjOTFhYjQxOWUzY2EzN2Q2YmE4ODFkMjU1MThjNGRiNjhiY2E2ZjdjODM2MDJmNjk5YTg2YjE3ZmIxZTc3M2JjYmU3NGJiOTNhNDliMjUxYWU4NjQyOGI1NzQwZTE4NjhiYjFkNmZhYjllMjg3MTJlOThlYzMxOWFkOGZjYTRkNzMwMTBjNGIwOWM0YjgwNDU4OTYxZTdjZjA4MzUzMDIwMzAxMDAwMWEzNTMzMDUxMzAxZDA2MDM1NTFkMGUwNDE2MDQxNDhhZWVlNTk0N2NjNjdjNWRkNTE1YTc2ZTJhN2VjZDMxZWU1MmZkYzgzMDFmMDYwMzU1MWQyMzA0MTgzMDE2ODAxNDhhZWVlNTk0N2NjNjdjNWRkNTE1YTc2ZTJhN2VjZDMxZWU1MmZkYzgzMDBmMDYwMzU1MWQxMzAxMDFmZjA0MDUzMDAzMDEwMWZmMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMDM4MjAxMDEwMDgyMWQ2Yjk4Y2Q0NTdkZWJkMmIwODFhY2EyN2ViZWNkNGY5M2FjYzgyODQ0M2IzOWVhYmZmYTlmYTRlOWU0NTQzYjQ2ZmNjMzFlMmI1YjQ4MTc3OTAzZGVhNjk2OWFjNGEyY2M2NTcwNjUwMzkwZjFiMDhkNDNhNGMyZjk3NWM3ZWQ4YmYzMzU2YzcyMTgzODAyMTI0NTFhOGYxMWRlNDY1NTNjYmNkNjViNDI1NGRkYjhmNjY4MzRlYjIxZGRhMmE4ZjMzYjU4MWUxNDg0NTU3YWNhMWI5NGVlODkzMWRkZjE2MDM3YjdhNzE3MTMyMWE5MTkzNmFmYzI3ZmZjZTM5NWRlNzVkNWY3MGNiOGI1YWVlMDVmZjUwNzA4OGQ2NWFmMWU0Mzk2NmNkNDJjYmU2ZjdmYWNmOGRhZTA1NWRkODIyMmIxNjk2NTIxNzIzZjgxMjQ1MTc4NTk1Yzk4NWFlOTE3ZmQ0YjM5OTg3NzNlMWE5N2I3YmQxMDA4NTQ0NmY0MjU5YmNjMDlhNDU0OTI5MjgyYzFiODliNzFlZDU4N2E3NzVlMGEzZDQ1MzYzNDFmNDVkYWU5NjllODA2Yzk2ZmVmYzcxMDY3Nzc2YzAyYmEyMjEyMmI5MTk5YjE0YzBjMjhjMDQ0ODc1MDkwNzBiOTdmM2RkMmQ2ZDk3MjczMzE4MjAxNzczMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA4MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwNWJlY2Q4NzE5NWMxZGVmZjkwYzI0YzkxMjY5YjU1YjNmMDY5YmMyMjVjMzI2YzMxNGMxYTUxNzg2ZmZlMTRjODMwYmU0ZTRiYzczY2JhMzZjOTc2NzdiNDQxNjgyNzliZTkxZTdjZGY3YzE5Mzg2YWUyMTg2MjcxOWQxM2EzYTBmZmYwODAzZDQ2MDk2MmYyY2RhODM3MTQ4NDg3MzI1MmMzZDcwNTRkYjgxNDNlMmIwODFhMzgxNmVkMDgwNGNhNTA5OWFlNWZlY2U4M2Q1YzJjMzc4M2IxOTg4YjRiNDZkYzk0ZTU1NTg3YTEwN2VhMTU0NmJmMjJkMjhhMDk3ZjY1MmE0MDY2ZGMyOTY1MjY5MDY5YWYyZjUxNzZiYjhjZTljYTZkMTFmOTY3NTdmMDMyMDRmNzU2NzAzNTg3ZDAwYWQ0MjQ3OTZjOTJmYzdhZWI2ZjQ5NDQzMTk5OWVkYTMwOTkwZTRmNTc3MzYzMmVkMjU4ZmUwMjc2NjczNTk5ZGE2ZmNlMzVjZGFkNzcyNmEwYmIwMjRjYWQ5OTZiODhlMGNiOTg4NTRjZWI1YzBiNmVjNzQ4ZDlmOWNlNmE2Y2Q0Mzc4NThiYWNiODE0NjE4YTI3MmZmM2E0MTVjNmUwN2YzZGIwOTg4Nzc3ZmRlYzg0NWE5N2JmN2QxMDJkZDAiCiAKIFBLQ1M3IFBhcnNlIEZhaWx1cmUgSW52YWxpZCBBU04xOiBDaGFuZ2UgdGFnIDA1IHRvIDAyICMzMDMuMAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHBrY3M3X2FzbjFfZmFpbDoiMzA4MjA1MDAwNjA5MmE4NjQ4ODZmNzBkMDEwNzAyYTA4MjA0ZjEzMDgyMDRlZDAyMDEwMTMxMGYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBiMDYwOTJhODY0ODg2ZjcwZDAxMDcwMWEwODIwMzRkMzA4MjAzNDkzMDgyMDIzMWEwMDMwMjAxMDIwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTMwMWUxNzBkMzIzMjMxMzAzMjM4MzEzNjMxMzAzNTM2NWExNzBkMzIzMzMxMzAzMjM4MzEzNjMxMzAzNTM2NWEzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEzMDgyMDEyMjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDAzODIwMTBmMDAzMDgyMDEwYTAyODIwMTAxMDBjOGI2Y2Y2OTg5OWNkMWYwZWJiNGNhNjQ1YzA1ZTcwZTBkMmVmZWRkY2M2MWQwODljYmQ1MTVhMzlhMzU3OWI5MjM0M2I2MWVjNzUwMDYwZmI0ZWQzNzg3NjMzMjQwMGU0MjVmMWQzNzZjN2U3NWMyOTczMzE0ZWRmNGJiMzBjOGY4ZGQwM2I5ZmNmZjk1NWEyNDVkNDkxMzdhZDZlNjAwNTZjYWMxOTU1MmE4NjVkNTIxODcxODdjYzA0MmM5YzQ5ZTNlM2E5YzE3YTUzNGI0NTNjZGFiYzBjYjExM2I0ZjYzZjViMzE3NGI5ZWU5OTAyYjE5MTBkMTE0OTZhMjc5YTc0MzI2YWRjZmVlMTBiZmQ5ZTdlYmFmYmIzNzdiZTliNjM5NTkxNjVkMTNkZDU3NTExNzFjYWRhZDNjMWQzYWRhYzY4YmM4MDExZDYxYjU0Y2Y2MDE3OGJlMzY4MzlhODlhYzkxYWI0MTllM2NhMzdkNmJhODgxZDI1NTE4YzRkYjY4YmNhNmY3YzgzNjAyZjY5OWE4NmIxN2ZiMWU3NzNiY2JlNzRiYjkzYTQ5YjI1MWFlODY0MjhiNTc0MGUxODY4YmIxZDZmYWI5ZTI4NzEyZTk4ZWMzMTlhZDhmY2E0ZDczMDEwYzRiMDljNGI4MDQ1ODk2MWU3Y2YwODM1MzAyMDMwMTAwMDFhMzUzMzA1MTMwMWQwNjAzNTUxZDBlMDQxNjA0MTQ4YWVlZTU5NDdjYzY3YzVkZDUxNWE3NmUyYTdlY2QzMWVlNTJmZGM4MzAxZjA2MDM1NTFkMjMwNDE4MzAxNjgwMTQ4YWVlZTU5NDdjYzY3YzVkZDUxNWE3NmUyYTdlY2QzMWVlNTJmZGM4MzAwZjA2MDM1NTFkMTMwMTAxZmYwNDA1MzAwMzAxMDFmZjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDAzODIwMTAxMDA4MjFkNmI5OGNkNDU3ZGViZDJiMDgxYWNhMjdlYmVjZDRmOTNhY2M4Mjg0NDNiMzllYWJmZmE5ZmE0ZTllNDU0M2I0NmZjYzMxZTJiNWI0ODE3NzkwM2RlYTY5NjlhYzRhMmNjNjU3MDY1MDM5MGYxYjA4ZDQzYTRjMmY5NzVjN2VkOGJmMzM1NmM3MjE4MzgwMjEyNDUxYThmMTFkZTQ2NTUzY2JjZDY1YjQyNTRkZGI4ZjY2ODM0ZWIyMWRkYTJhOGYzM2I1ODFlMTQ4NDU1N2FjYTFiOTRlZTg5MzFkZGYxNjAzN2I3YTcxNzEzMjFhOTE5MzZhZmMyN2ZmY2UzOTVkZTc1ZDVmNzBjYjhiNWFlZTA1ZmY1MDcwODhkNjVhZjFlNDM5NjZjZDQyY2JlNmY3ZmFjZjhkYWUwNTVkZDgyMjJiMTY5NjUyMTcyM2Y4MTI0NTE3ODU5NWM5ODVhZTkxN2ZkNGIzOTk4NzczZTFhOTdiN2JkMTAwODU0NDZmNDI1OWJjYzA5YTQ1NDkyOTI4MmMxYjg5YjcxZWQ1ODdhNzc1ZTBhM2Q0NTM2MzQxZjQ1ZGFlOTY5ZTgwNmM5NmZlZmM3MTA2Nzc3NmMwMmJhMjIxMjJiOTE5OWIxNGMwYzI4YzA0NDg3NTA5MDcwYjk3ZjNkZDJkNmQ5NzI3MzMxODIwMTc3MzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTAyMDAwNDgyMDEwMDViZWNkODcxOTVjMWRlZmY5MGMyNGM5MTI2OWI1NWIzZjA2OWJjMjI1YzMyNmMzMTRjMWE1MTc4NmZmZTE0YzgzMGJlNGU0YmM3M2NiYTM2Yzk3Njc3YjQ0MTY4Mjc5YmU5MWU3Y2RmN2MxOTM4NmFlMjE4NjI3MTlkMTNhM2EwZmZmMDgwM2Q0NjA5NjJmMmNkYTgzNzE0ODQ4NzMyNTJjM2Q3MDU0ZGI4MTQzZTJiMDgxYTM4MTZlZDA4MDRjYTUwOTlhZTVmZWNlODNkNWMyYzM3ODNiMTk4OGI0YjQ2ZGM5NGU1NTU4N2ExMDdlYTE1NDZiZjIyZDI4YTA5N2Y2NTJhNDA2NmRjMjk2NTI2OTA2OWFmMmY1MTc2YmI4Y2U5Y2E2ZDExZjk2NzU3ZjAzMjA0Zjc1NjcwMzU4N2QwMGFkNDI0Nzk2YzkyZmM3YWViNmY0OTQ0MzE5OTllZGEzMDk5MGU0ZjU3NzM2MzJlZDI1OGZlMDI3NjY3MzU5OWRhNmZjZTM1Y2RhZDc3MjZhMGJiMDI0Y2FkOTk2Yjg4ZTBjYjk4ODU0Y2ViNWMwYjZlYzc0OGQ5ZjljZTZhNmNkNDM3ODU4YmFjYjgxNDYxOGEyNzJmZjNhNDE1YzZlMDdmM2RiMDk4ODc3N2ZkZWM4NDVhOTdiZjdkMTAyZGQwIgogCiBQS0NTNyBQYXJzZSBGYWlsdXJlIEludmFsaWQgQVNOMTogQ2hhbmdlIGxlbmd0aCBmcm9tIDAgdG8gMSAjMzA0LjAKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBwa2NzN19hc24xX2ZhaWw6IjMwODIwNTAwMDYwOTJhODY0ODg2ZjcwZDAxMDcwMmEwODIwNGYxMzA4MjA0ZWQwMjAxMDEzMTBmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwYjA2MDkyYTg2NDg4NmY3MGQwMTA3MDFhMDgyMDM0ZDMwODIwMzQ5MzA4MjAyMzFhMDAzMDIwMTAyMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEzMDFlMTcwZDMyMzIzMTMwMzIzODMxMzYzMTMwMzUzNjVhMTcwZDMyMzMzMTMwMzIzODMxMzYzMTMwMzUzNjVhMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMzA4MjAxMjIzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwMzgyMDEwZjAwMzA4MjAxMGEwMjgyMDEwMTAwYzhiNmNmNjk4OTljZDFmMGViYjRjYTY0NWMwNWU3MGUwZDJlZmVkZGNjNjFkMDg5Y2JkNTE1YTM5YTM1NzliOTIzNDNiNjFlYzc1MDA2MGZiNGVkMzc4NzYzMzI0MDBlNDI1ZjFkMzc2YzdlNzVjMjk3MzMxNGVkZjRiYjMwYzhmOGRkMDNiOWZjZmY5NTVhMjQ1ZDQ5MTM3YWQ2ZTYwMDU2Y2FjMTk1NTJhODY1ZDUyMTg3MTg3Y2MwNDJjOWM0OWUzZTNhOWMxN2E1MzRiNDUzY2RhYmMwY2IxMTNiNGY2M2Y1YjMxNzRiOWVlOTkwMmIxOTEwZDExNDk2YTI3OWE3NDMyNmFkY2ZlZTEwYmZkOWU3ZWJhZmJiMzc3YmU5YjYzOTU5MTY1ZDEzZGQ1NzUxMTcxY2FkYWQzYzFkM2FkYWM2OGJjODAxMWQ2MWI1NGNmNjAxNzhiZTM2ODM5YTg5YWM5MWFiNDE5ZTNjYTM3ZDZiYTg4MWQyNTUxOGM0ZGI2OGJjYTZmN2M4MzYwMmY2OTlhODZiMTdmYjFlNzczYmNiZTc0YmI5M2E0OWIyNTFhZTg2NDI4YjU3NDBlMTg2OGJiMWQ2ZmFiOWUyODcxMmU5OGVjMzE5YWQ4ZmNhNGQ3MzAxMGM0YjA5YzRiODA0NTg5NjFlN2NmMDgzNTMwMjAzMDEwMDAxYTM1MzMwNTEzMDFkMDYwMzU1MWQwZTA0MTYwNDE0OGFlZWU1OTQ3Y2M2N2M1ZGQ1MTVhNzZlMmE3ZWNkMzFlZTUyZmRjODMwMWYwNjAzNTUxZDIzMDQxODMwMTY4MDE0OGFlZWU1OTQ3Y2M2N2M1ZGQ1MTVhNzZlMmE3ZWNkMzFlZTUyZmRjODMwMGYwNjAzNTUxZDEzMDEwMWZmMDQwNTMwMDMwMTAxZmYzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAwMzgyMDEwMTAwODIxZDZiOThjZDQ1N2RlYmQyYjA4MWFjYTI3ZWJlY2Q0ZjkzYWNjODI4NDQzYjM5ZWFiZmZhOWZhNGU5ZTQ1NDNiNDZmY2MzMWUyYjViNDgxNzc5MDNkZWE2OTY5YWM0YTJjYzY1NzA2NTAzOTBmMWIwOGQ0M2E0YzJmOTc1YzdlZDhiZjMzNTZjNzIxODM4MDIxMjQ1MWE4ZjExZGU0NjU1M2NiY2Q2NWI0MjU0ZGRiOGY2NjgzNGViMjFkZGEyYThmMzNiNTgxZTE0ODQ1NTdhY2ExYjk0ZWU4OTMxZGRmMTYwMzdiN2E3MTcxMzIxYTkxOTM2YWZjMjdmZmNlMzk1ZGU3NWQ1ZjcwY2I4YjVhZWUwNWZmNTA3MDg4ZDY1YWYxZTQzOTY2Y2Q0MmNiZTZmN2ZhY2Y4ZGFlMDU1ZGQ4MjIyYjE2OTY1MjE3MjNmODEyNDUxNzg1OTVjOTg1YWU5MTdmZDRiMzk5ODc3M2UxYTk3YjdiZDEwMDg1NDQ2ZjQyNTliY2MwOWE0NTQ5MjkyODJjMWI4OWI3MWVkNTg3YTc3NWUwYTNkNDUzNjM0MWY0NWRhZTk2OWU4MDZjOTZmZWZjNzEwNjc3NzZjMDJiYTIyMTIyYjkxOTliMTRjMGMyOGMwNDQ4NzUwOTA3MGI5N2YzZGQyZDZkOTcyNzMzMTgyMDE3NzMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTAyMTQ3YmRlZGRkMjQ0NGNkMWNkZmU1YzQxYTgxMDJjODliN2RmMmU2Y2JmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAxMDQ4MjAxMDA1YmVjZDg3MTk1YzFkZWZmOTBjMjRjOTEyNjliNTViM2YwNjliYzIyNWMzMjZjMzE0YzFhNTE3ODZmZmUxNGM4MzBiZTRlNGJjNzNjYmEzNmM5NzY3N2I0NDE2ODI3OWJlOTFlN2NkZjdjMTkzODZhZTIxODYyNzE5ZDEzYTNhMGZmZjA4MDNkNDYwOTYyZjJjZGE4MzcxNDg0ODczMjUyYzNkNzA1NGRiODE0M2UyYjA4MWEzODE2ZWQwODA0Y2E1MDk5YWU1ZmVjZTgzZDVjMmMzNzgzYjE5ODhiNGI0NmRjOTRlNTU1ODdhMTA3ZWExNTQ2YmYyMmQyOGEwOTdmNjUyYTQwNjZkYzI5NjUyNjkwNjlhZjJmNTE3NmJiOGNlOWNhNmQxMWY5Njc1N2YwMzIwNGY3NTY3MDM1ODdkMDBhZDQyNDc5NmM5MmZjN2FlYjZmNDk0NDMxOTk5ZWRhMzA5OTBlNGY1NzczNjMyZWQyNThmZTAyNzY2NzM1OTlkYTZmY2UzNWNkYWQ3NzI2YTBiYjAyNGNhZDk5NmI4OGUwY2I5ODg1NGNlYjVjMGI2ZWM3NDhkOWY5Y2U2YTZjZDQzNzg1OGJhY2I4MTQ2MThhMjcyZmYzYTQxNWM2ZTA3ZjNkYjA5ODg3NzdmZGVjODQ1YTk3YmY3ZDEwMmRkMCIKIAogUEtDUzcgUGFyc2UgRmFpbHVyZSBJbnZhbGlkIEFTTjE6IENoYW5nZSB0YWcgMDQgdG8gMDIgIzMwNS4wCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NgogcGtjczdfYXNuMV9mYWlsOiIzMDgyMDUwMDA2MDkyYTg2NDg4NmY3MGQwMTA3MDJhMDgyMDRmMTMwODIwNGVkMDIwMTAxMzEwZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGIwNjA5MmE4NjQ4ODZmNzBkMDEwNzAxYTA4MjAzNGQzMDgyMDM0OTMwODIwMjMxYTAwMzAyMDEwMjAyMTQ3YmRlZGRkMjQ0NGNkMWNkZmU1YzQxYTgxMDJjODliN2RmMmU2Y2JmMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMzAxZTE3MGQzMjMyMzEzMDMyMzgzMTM2MzEzMDM1MzY1YTE3MGQzMjMzMzEzMDMyMzgzMTM2MzEzMDM1MzY1YTMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTMwODIwMTIyMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDM4MjAxMGYwMDMwODIwMTBhMDI4MjAxMDEwMGM4YjZjZjY5ODk5Y2QxZjBlYmI0Y2E2NDVjMDVlNzBlMGQyZWZlZGRjYzYxZDA4OWNiZDUxNWEzOWEzNTc5YjkyMzQzYjYxZWM3NTAwNjBmYjRlZDM3ODc2MzMyNDAwZTQyNWYxZDM3NmM3ZTc1YzI5NzMzMTRlZGY0YmIzMGM4ZjhkZDAzYjlmY2ZmOTU1YTI0NWQ0OTEzN2FkNmU2MDA1NmNhYzE5NTUyYTg2NWQ1MjE4NzE4N2NjMDQyYzljNDllM2UzYTljMTdhNTM0YjQ1M2NkYWJjMGNiMTEzYjRmNjNmNWIzMTc0YjllZTk5MDJiMTkxMGQxMTQ5NmEyNzlhNzQzMjZhZGNmZWUxMGJmZDllN2ViYWZiYjM3N2JlOWI2Mzk1OTE2NWQxM2RkNTc1MTE3MWNhZGFkM2MxZDNhZGFjNjhiYzgwMTFkNjFiNTRjZjYwMTc4YmUzNjgzOWE4OWFjOTFhYjQxOWUzY2EzN2Q2YmE4ODFkMjU1MThjNGRiNjhiY2E2ZjdjODM2MDJmNjk5YTg2YjE3ZmIxZTc3M2JjYmU3NGJiOTNhNDliMjUxYWU4NjQyOGI1NzQwZTE4NjhiYjFkNmZhYjllMjg3MTJlOThlYzMxOWFkOGZjYTRkNzMwMTBjNGIwOWM0YjgwNDU4OTYxZTdjZjA4MzUzMDIwMzAxMDAwMWEzNTMzMDUxMzAxZDA2MDM1NTFkMGUwNDE2MDQxNDhhZWVlNTk0N2NjNjdjNWRkNTE1YTc2ZTJhN2VjZDMxZWU1MmZkYzgzMDFmMDYwMzU1MWQyMzA0MTgzMDE2ODAxNDhhZWVlNTk0N2NjNjdjNWRkNTE1YTc2ZTJhN2VjZDMxZWU1MmZkYzgzMDBmMDYwMzU1MWQxMzAxMDFmZjA0MDUzMDAzMDEwMWZmMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMDM4MjAxMDEwMDgyMWQ2Yjk4Y2Q0NTdkZWJkMmIwODFhY2EyN2ViZWNkNGY5M2FjYzgyODQ0M2IzOWVhYmZmYTlmYTRlOWU0NTQzYjQ2ZmNjMzFlMmI1YjQ4MTc3OTAzZGVhNjk2OWFjNGEyY2M2NTcwNjUwMzkwZjFiMDhkNDNhNGMyZjk3NWM3ZWQ4YmYzMzU2YzcyMTgzODAyMTI0NTFhOGYxMWRlNDY1NTNjYmNkNjViNDI1NGRkYjhmNjY4MzRlYjIxZGRhMmE4ZjMzYjU4MWUxNDg0NTU3YWNhMWI5NGVlODkzMWRkZjE2MDM3YjdhNzE3MTMyMWE5MTkzNmFmYzI3ZmZjZTM5NWRlNzVkNWY3MGNiOGI1YWVlMDVmZjUwNzA4OGQ2NWFmMWU0Mzk2NmNkNDJjYmU2ZjdmYWNmOGRhZTA1NWRkODIyMmIxNjk2NTIxNzIzZjgxMjQ1MTc4NTk1Yzk4NWFlOTE3ZmQ0YjM5OTg3NzNlMWE5N2I3YmQxMDA4NTQ0NmY0MjU5YmNjMDlhNDU0OTI5MjgyYzFiODliNzFlZDU4N2E3NzVlMGEzZDQ1MzYzNDFmNDVkYWU5NjllODA2Yzk2ZmVmYzcxMDY3Nzc2YzAyYmEyMjEyMmI5MTk5YjE0YzBjMjhjMDQ0ODc1MDkwNzBiOTdmM2RkMmQ2ZDk3MjczMzE4MjAxNzczMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDAyODIwMTAwNWJlY2Q4NzE5NWMxZGVmZjkwYzI0YzkxMjY5YjU1YjNmMDY5YmMyMjVjMzI2YzMxNGMxYTUxNzg2ZmZlMTRjODMwYmU0ZTRiYzczY2JhMzZjOTc2NzdiNDQxNjgyNzliZTkxZTdjZGY3YzE5Mzg2YWUyMTg2MjcxOWQxM2EzYTBmZmYwODAzZDQ2MDk2MmYyY2RhODM3MTQ4NDg3MzI1MmMzZDcwNTRkYjgxNDNlMmIwODFhMzgxNmVkMDgwNGNhNTA5OWFlNWZlY2U4M2Q1YzJjMzc4M2IxOTg4YjRiNDZkYzk0ZTU1NTg3YTEwN2VhMTU0NmJmMjJkMjhhMDk3ZjY1MmE0MDY2ZGMyOTY1MjY5MDY5YWYyZjUxNzZiYjhjZTljYTZkMTFmOTY3NTdmMDMyMDRmNzU2NzAzNTg3ZDAwYWQ0MjQ3OTZjOTJmYzdhZWI2ZjQ5NDQzMTk5OWVkYTMwOTkwZTRmNTc3MzYzMmVkMjU4ZmUwMjc2NjczNTk5ZGE2ZmNlMzVjZGFkNzcyNmEwYmIwMjRjYWQ5OTZiODhlMGNiOTg4NTRjZWI1YzBiNmVjNzQ4ZDlmOWNlNmE2Y2Q0Mzc4NThiYWNiODE0NjE4YTI3MmZmM2E0MTVjNmUwN2YzZGIwOTg4Nzc3ZmRlYzg0NWE5N2JmN2QxMDJkZDAiCiAKIFBLQ1M3IFBhcnNlIEZhaWx1cmUgSW52YWxpZCBBU04xOiBDaGFuZ2UgbGVuZ3RoIGZyb20gMjU2IHRvIDI1NyAjMzA2LjAKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBwa2NzN19hc24xX2ZhaWw6IjMwODIwNTAwMDYwOTJhODY0ODg2ZjcwZDAxMDcwMmEwODIwNGYxMzA4MjA0ZWQwMjAxMDEzMTBmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwYjA2MDkyYTg2NDg4NmY3MGQwMTA3MDFhMDgyMDM0ZDMwODIwMzQ5MzA4MjAyMzFhMDAzMDIwMTAyMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEzMDFlMTcwZDMyMzIzMTMwMzIzODMxMzYzMTMwMzUzNjVhMTcwZDMyMzMzMTMwMzIzODMxMzYzMTMwMzUzNjVhMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMzA4MjAxMjIzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwMzgyMDEwZjAwMzA4MjAxMGEwMjgyMDEwMTAwYzhiNmNmNjk4OTljZDFmMGViYjRjYTY0NWMwNWU3MGUwZDJlZmVkZGNjNjFkMDg5Y2JkNTE1YTM5YTM1NzliOTIzNDNiNjFlYzc1MDA2MGZiNGVkMzc4NzYzMzI0MDBlNDI1ZjFkMzc2YzdlNzVjMjk3MzMxNGVkZjRiYjMwYzhmOGRkMDNiOWZjZmY5NTVhMjQ1ZDQ5MTM3YWQ2ZTYwMDU2Y2FjMTk1NTJhODY1ZDUyMTg3MTg3Y2MwNDJjOWM0OWUzZTNhOWMxN2E1MzRiNDUzY2RhYmMwY2IxMTNiNGY2M2Y1YjMxNzRiOWVlOTkwMmIxOTEwZDExNDk2YTI3OWE3NDMyNmFkY2ZlZTEwYmZkOWU3ZWJhZmJiMzc3YmU5YjYzOTU5MTY1ZDEzZGQ1NzUxMTcxY2FkYWQzYzFkM2FkYWM2OGJjODAxMWQ2MWI1NGNmNjAxNzhiZTM2ODM5YTg5YWM5MWFiNDE5ZTNjYTM3ZDZiYTg4MWQyNTUxOGM0ZGI2OGJjYTZmN2M4MzYwMmY2OTlhODZiMTdmYjFlNzczYmNiZTc0YmI5M2E0OWIyNTFhZTg2NDI4YjU3NDBlMTg2OGJiMWQ2ZmFiOWUyODcxMmU5OGVjMzE5YWQ4ZmNhNGQ3MzAxMGM0YjA5YzRiODA0NTg5NjFlN2NmMDgzNTMwMjAzMDEwMDAxYTM1MzMwNTEzMDFkMDYwMzU1MWQwZTA0MTYwNDE0OGFlZWU1OTQ3Y2M2N2M1ZGQ1MTVhNzZlMmE3ZWNkMzFlZTUyZmRjODMwMWYwNjAzNTUxZDIzMDQxODMwMTY4MDE0OGFlZWU1OTQ3Y2M2N2M1ZGQ1MTVhNzZlMmE3ZWNkMzFlZTUyZmRjODMwMGYwNjAzNTUxZDEzMDEwMWZmMDQwNTMwMDMwMTAxZmYzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAwMzgyMDEwMTAwODIxZDZiOThjZDQ1N2RlYmQyYjA4MWFjYTI3ZWJlY2Q0ZjkzYWNjODI4NDQzYjM5ZWFiZmZhOWZhNGU5ZTQ1NDNiNDZmY2MzMWUyYjViNDgxNzc5MDNkZWE2OTY5YWM0YTJjYzY1NzA2NTAzOTBmMWIwOGQ0M2E0YzJmOTc1YzdlZDhiZjMzNTZjNzIxODM4MDIxMjQ1MWE4ZjExZGU0NjU1M2NiY2Q2NWI0MjU0ZGRiOGY2NjgzNGViMjFkZGEyYThmMzNiNTgxZTE0ODQ1NTdhY2ExYjk0ZWU4OTMxZGRmMTYwMzdiN2E3MTcxMzIxYTkxOTM2YWZjMjdmZmNlMzk1ZGU3NWQ1ZjcwY2I4YjVhZWUwNWZmNTA3MDg4ZDY1YWYxZTQzOTY2Y2Q0MmNiZTZmN2ZhY2Y4ZGFlMDU1ZGQ4MjIyYjE2OTY1MjE3MjNmODEyNDUxNzg1OTVjOTg1YWU5MTdmZDRiMzk5ODc3M2UxYTk3YjdiZDEwMDg1NDQ2ZjQyNTliY2MwOWE0NTQ5MjkyODJjMWI4OWI3MWVkNTg3YTc3NWUwYTNkNDUzNjM0MWY0NWRhZTk2OWU4MDZjOTZmZWZjNzEwNjc3NzZjMDJiYTIyMTIyYjkxOTliMTRjMGMyOGMwNDQ4NzUwOTA3MGI5N2YzZGQyZDZkOTcyNzMzMTgyMDE3NzMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTAyMTQ3YmRlZGRkMjQ0NGNkMWNkZmU1YzQxYTgxMDJjODliN2RmMmU2Y2JmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDE1YmVjZDg3MTk1YzFkZWZmOTBjMjRjOTEyNjliNTViM2YwNjliYzIyNWMzMjZjMzE0YzFhNTE3ODZmZmUxNGM4MzBiZTRlNGJjNzNjYmEzNmM5NzY3N2I0NDE2ODI3OWJlOTFlN2NkZjdjMTkzODZhZTIxODYyNzE5ZDEzYTNhMGZmZjA4MDNkNDYwOTYyZjJjZGE4MzcxNDg0ODczMjUyYzNkNzA1NGRiODE0M2UyYjA4MWEzODE2ZWQwODA0Y2E1MDk5YWU1ZmVjZTgzZDVjMmMzNzgzYjE5ODhiNGI0NmRjOTRlNTU1ODdhMTA3ZWExNTQ2YmYyMmQyOGEwOTdmNjUyYTQwNjZkYzI5NjUyNjkwNjlhZjJmNTE3NmJiOGNlOWNhNmQxMWY5Njc1N2YwMzIwNGY3NTY3MDM1ODdkMDBhZDQyNDc5NmM5MmZjN2FlYjZmNDk0NDMxOTk5ZWRhMzA5OTBlNGY1NzczNjMyZWQyNThmZTAyNzY2NzM1OTlkYTZmY2UzNWNkYWQ3NzI2YTBiYjAyNGNhZDk5NmI4OGUwY2I5ODg1NGNlYjVjMGI2ZWM3NDhkOWY5Y2U2YTZjZDQzNzg1OGJhY2I4MTQ2MThhMjcyZmYzYTQxNWM2ZTA3ZjNkYjA5ODg3NzdmZGVjODQ1YTk3YmY3ZDEwMmRkMCIKIAogCiBQS0NTNyBQYXJzZSBGYWlsdXJlIEludmFsaWQgQVNOMTogQWRkIG51bGwgYnl0ZSB0byBzdGFydCAjMzA3LjAKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBwa2NzN19hc24xX2ZhaWw6IjAwMzA4MjAzMjYwNjA5MmE4NjQ4ODZmNzBkMDEwNzAyYTA4MjAzMTczMDgyMDMxMzAyMDEwMTMxMGYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBiMDYwOTJhODY0ODg2ZjcwZDAxMDcwMTMxODIwMmVlMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDViZWNkODcxOTVjMWRlZmY5MGMyNGM5MTI2OWI1NWIzZjA2OWJjMjI1YzMyNmMzMTRjMWE1MTc4NmZmZTE0YzgzMGJlNGU0YmM3M2NiYTM2Yzk3Njc3YjQ0MTY4Mjc5YmU5MWU3Y2RmN2MxOTM4NmFlMjE4NjI3MTlkMTNhM2EwZmZmMDgwM2Q0NjA5NjJmMmNkYTgzNzE0ODQ4NzMyNTJjM2Q3MDU0ZGI4MTQzZTJiMDgxYTM4MTZlZDA4MDRjYTUwOTlhZTVmZWNlODNkNWMyYzM3ODNiMTk4OGI0YjQ2ZGM5NGU1NTU4N2ExMDdlYTE1NDZiZjIyZDI4YTA5N2Y2NTJhNDA2NmRjMjk2NTI2OTA2OWFmMmY1MTc2YmI4Y2U5Y2E2ZDExZjk2NzU3ZjAzMjA0Zjc1NjcwMzU4N2QwMGFkNDI0Nzk2YzkyZmM3YWViNmY0OTQ0MzE5OTllZGEzMDk5MGU0ZjU3NzM2MzJlZDI1OGZlMDI3NjY3MzU5OWRhNmZjZTM1Y2RhZDc3MjZhMGJiMDI0Y2FkOTk2Yjg4ZTBjYjk4ODU0Y2ViNWMwYjZlYzc0OGQ5ZjljZTZhNmNkNDM3ODU4YmFjYjgxNDYxOGEyNzJmZjNhNDE1YzZlMDdmM2RiMDk4ODc3N2ZkZWM4NDVhOTdiZjdkMTAyZGQwMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMyMDIxNDU2NGQ1NTQwMjVhZjU5OWUzMjcwNzliMjcyMGVmMDBkZjM3Y2ZiN2MzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDA0NjA5OGRjNWYyYjk5ZTNiYzJlZDY2NDJkN2YwYTYxZWZhYmMxNWMzOGM3NjMzM2JjY2NlZWVlMzY5YTRmNGE1YmRkYThlYTU5MjY0MTI0ZTQyOWYwODYzMjY4M2RkYmExN2JiZjI2MmQ4MmI2YmVmYTNiNGUxNDgwMzc2YThjN2YzYzdkN2UyYTY3NzliYmYxODI2MmFhODU3ZGU4YzIwYTEyYjZhMmNlOGU0ZDdmMzFkZDFiMTk1MzkyY2Y2MTg1YWZjZTM0YWZlMDU4OTYwNTdiMzZlOWIxNzFiNmM2N2VkN2MyMjg2Y2JmYTgzZmY4YTE2N2M3YmM3MTA5YWVlN2Q3ZTE5MDliZDM4NGZiZmM2MTkzOGVmY2E1MWM4OTkzYzcxZGIzMTc3MzBmMTZlN2U3NzY4NjdhZTRmZGM1NjJkNmYxNWRlNTg1ZTdiOTRlZjQ5NmEzNjc2MzY3YTJjYmFhYjdiNjM2NjQ4YjAwNzZiYWQ1Y2RmMWUwOTc0MGVjNmE0NTFiZmY1MzRlZmEyMTUwOWYzYmE3N2I4MTAxYjkxZWE3ZTU1ZGRiZmUxNDAxNTE3MDY3ZDdiMDFhMmEwODc5ZjA4ODVjODk0YTg3Y2ZiNjhjNGQ3ZWU4OTA2MDQ4ODFhZWI5N2MyMmQxZjMzN2VmOTIzZTAzNWE2NDAwIgogCiBQS0NTNyBQYXJzZSBGYWlsdXJlIEludmFsaWQgQVNOMTogQWRkIG51bGwgYnl0ZSB0byBlbmQgIzMwOC4wCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NgogcGtjczdfYXNuMV9mYWlsOiIzMDgyMDMyNjA2MDkyYTg2NDg4NmY3MGQwMTA3MDJhMDgyMDMxNzMwODIwMzEzMDIwMTAxMzEwZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGIwNjA5MmE4NjQ4ODZmNzBkMDEwNzAxMzE4MjAyZWUzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwNWJlY2Q4NzE5NWMxZGVmZjkwYzI0YzkxMjY5YjU1YjNmMDY5YmMyMjVjMzI2YzMxNGMxYTUxNzg2ZmZlMTRjODMwYmU0ZTRiYzczY2JhMzZjOTc2NzdiNDQxNjgyNzliZTkxZTdjZGY3YzE5Mzg2YWUyMTg2MjcxOWQxM2EzYTBmZmYwODAzZDQ2MDk2MmYyY2RhODM3MTQ4NDg3MzI1MmMzZDcwNTRkYjgxNDNlMmIwODFhMzgxNmVkMDgwNGNhNTA5OWFlNWZlY2U4M2Q1YzJjMzc4M2IxOTg4YjRiNDZkYzk0ZTU1NTg3YTEwN2VhMTU0NmJmMjJkMjhhMDk3ZjY1MmE0MDY2ZGMyOTY1MjY5MDY5YWYyZjUxNzZiYjhjZTljYTZkMTFmOTY3NTdmMDMyMDRmNzU2NzAzNTg3ZDAwYWQ0MjQ3OTZjOTJmYzdhZWI2ZjQ5NDQzMTk5OWVkYTMwOTkwZTRmNTc3MzYzMmVkMjU4ZmUwMjc2NjczNTk5ZGE2ZmNlMzVjZGFkNzcyNmEwYmIwMjRjYWQ5OTZiODhlMGNiOTg4NTRjZWI1YzBiNmVjNzQ4ZDlmOWNlNmE2Y2Q0Mzc4NThiYWNiODE0NjE4YTI3MmZmM2E0MTVjNmUwN2YzZGIwOTg4Nzc3ZmRlYzg0NWE5N2JmN2QxMDJkZDAzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzIwMjE0NTY0ZDU1NDAyNWFmNTk5ZTMyNzA3OWIyNzIwZWYwMGRmMzdjZmI3YzMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwMDQ2MDk4ZGM1ZjJiOTllM2JjMmVkNjY0MmQ3ZjBhNjFlZmFiYzE1YzM4Yzc2MzMzYmNjY2VlZWUzNjlhNGY0YTViZGRhOGVhNTkyNjQxMjRlNDI5ZjA4NjMyNjgzZGRiYTE3YmJmMjYyZDgyYjZiZWZhM2I0ZTE0ODAzNzZhOGM3ZjNjN2Q3ZTJhNjc3OWJiZjE4MjYyYWE4NTdkZThjMjBhMTJiNmEyY2U4ZTRkN2YzMWRkMWIxOTUzOTJjZjYxODVhZmNlMzRhZmUwNTg5NjA1N2IzNmU5YjE3MWI2YzY3ZWQ3YzIyODZjYmZhODNmZjhhMTY3YzdiYzcxMDlhZWU3ZDdlMTkwOWJkMzg0ZmJmYzYxOTM4ZWZjYTUxYzg5OTNjNzFkYjMxNzczMGYxNmU3ZTc3Njg2N2FlNGZkYzU2MmQ2ZjE1ZGU1ODVlN2I5NGVmNDk2YTM2NzYzNjdhMmNiYWFiN2I2MzY2NDhiMDA3NmJhZDVjZGYxZTA5NzQwZWM2YTQ1MWJmZjUzNGVmYTIxNTA5ZjNiYTc3YjgxMDFiOTFlYTdlNTVkZGJmZTE0MDE1MTcwNjdkN2IwMWEyYTA4NzlmMDg4NWM4OTRhODdjZmI2OGM0ZDdlZTg5MDYwNDg4MWFlYjk3YzIyZDFmMzM3ZWY5MjNlMDM1YTY0MDAwMCIKIAogUEtDUzcgUGFyc2UgRmFpbHVyZSBJbnZhbGlkIEFTTjE6IENoYW5nZSB0YWcgMzAgdG8gMDIgIzMwOS4wCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NgogcGtjczdfYXNuMV9mYWlsOiIwMjgyMDMyNjA2MDkyYTg2NDg4NmY3MGQwMTA3MDJhMDgyMDMxNzMwODIwMzEzMDIwMTAxMzEwZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGIwNjA5MmE4NjQ4ODZmNzBkMDEwNzAxMzE4MjAyZWUzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwNWJlY2Q4NzE5NWMxZGVmZjkwYzI0YzkxMjY5YjU1YjNmMDY5YmMyMjVjMzI2YzMxNGMxYTUxNzg2ZmZlMTRjODMwYmU0ZTRiYzczY2JhMzZjOTc2NzdiNDQxNjgyNzliZTkxZTdjZGY3YzE5Mzg2YWUyMTg2MjcxOWQxM2EzYTBmZmYwODAzZDQ2MDk2MmYyY2RhODM3MTQ4NDg3MzI1MmMzZDcwNTRkYjgxNDNlMmIwODFhMzgxNmVkMDgwNGNhNTA5OWFlNWZlY2U4M2Q1YzJjMzc4M2IxOTg4YjRiNDZkYzk0ZTU1NTg3YTEwN2VhMTU0NmJmMjJkMjhhMDk3ZjY1MmE0MDY2ZGMyOTY1MjY5MDY5YWYyZjUxNzZiYjhjZTljYTZkMTFmOTY3NTdmMDMyMDRmNzU2NzAzNTg3ZDAwYWQ0MjQ3OTZjOTJmYzdhZWI2ZjQ5NDQzMTk5OWVkYTMwOTkwZTRmNTc3MzYzMmVkMjU4ZmUwMjc2NjczNTk5ZGE2ZmNlMzVjZGFkNzcyNmEwYmIwMjRjYWQ5OTZiODhlMGNiOTg4NTRjZWI1YzBiNmVjNzQ4ZDlmOWNlNmE2Y2Q0Mzc4NThiYWNiODE0NjE4YTI3MmZmM2E0MTVjNmUwN2YzZGIwOTg4Nzc3ZmRlYzg0NWE5N2JmN2QxMDJkZDAzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzIwMjE0NTY0ZDU1NDAyNWFmNTk5ZTMyNzA3OWIyNzIwZWYwMGRmMzdjZmI3YzMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwMDQ2MDk4ZGM1ZjJiOTllM2JjMmVkNjY0MmQ3ZjBhNjFlZmFiYzE1YzM4Yzc2MzMzYmNjY2VlZWUzNjlhNGY0YTViZGRhOGVhNTkyNjQxMjRlNDI5ZjA4NjMyNjgzZGRiYTE3YmJmMjYyZDgyYjZiZWZhM2I0ZTE0ODAzNzZhOGM3ZjNjN2Q3ZTJhNjc3OWJiZjE4MjYyYWE4NTdkZThjMjBhMTJiNmEyY2U4ZTRkN2YzMWRkMWIxOTUzOTJjZjYxODVhZmNlMzRhZmUwNTg5NjA1N2IzNmU5YjE3MWI2YzY3ZWQ3YzIyODZjYmZhODNmZjhhMTY3YzdiYzcxMDlhZWU3ZDdlMTkwOWJkMzg0ZmJmYzYxOTM4ZWZjYTUxYzg5OTNjNzFkYjMxNzczMGYxNmU3ZTc3Njg2N2FlNGZkYzU2MmQ2ZjE1ZGU1ODVlN2I5NGVmNDk2YTM2NzYzNjdhMmNiYWFiN2I2MzY2NDhiMDA3NmJhZDVjZGYxZTA5NzQwZWM2YTQ1MWJmZjUzNGVmYTIxNTA5ZjNiYTc3YjgxMDFiOTFlYTdlNTVkZGJmZTE0MDE1MTcwNjdkN2IwMWEyYTA4NzlmMDg4NWM4OTRhODdjZmI2OGM0ZDdlZTg5MDYwNDg4MWFlYjk3YzIyZDFmMzM3ZWY5MjNlMDM1YTY0MDAiCiAKIFBLQ1M3IFBhcnNlIEZhaWx1cmUgSW52YWxpZCBBU04xOiBDaGFuZ2UgbGVuZ3RoIGZyb20gODA2IHRvIDgwNyAjMzEwLjAKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBwa2NzN19hc24xX2ZhaWw6IjMwODIwMzI3MDYwOTJhODY0ODg2ZjcwZDAxMDcwMmEwODIwMzE3MzA4MjAzMTMwMjAxMDEzMTBmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwYjA2MDkyYTg2NDg4NmY3MGQwMTA3MDEzMTgyMDJlZTMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTAyMTQ3YmRlZGRkMjQ0NGNkMWNkZmU1YzQxYTgxMDJjODliN2RmMmU2Y2JmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDA1YmVjZDg3MTk1YzFkZWZmOTBjMjRjOTEyNjliNTViM2YwNjliYzIyNWMzMjZjMzE0YzFhNTE3ODZmZmUxNGM4MzBiZTRlNGJjNzNjYmEzNmM5NzY3N2I0NDE2ODI3OWJlOTFlN2NkZjdjMTkzODZhZTIxODYyNzE5ZDEzYTNhMGZmZjA4MDNkNDYwOTYyZjJjZGE4MzcxNDg0ODczMjUyYzNkNzA1NGRiODE0M2UyYjA4MWEzODE2ZWQwODA0Y2E1MDk5YWU1ZmVjZTgzZDVjMmMzNzgzYjE5ODhiNGI0NmRjOTRlNTU1ODdhMTA3ZWExNTQ2YmYyMmQyOGEwOTdmNjUyYTQwNjZkYzI5NjUyNjkwNjlhZjJmNTE3NmJiOGNlOWNhNmQxMWY5Njc1N2YwMzIwNGY3NTY3MDM1ODdkMDBhZDQyNDc5NmM5MmZjN2FlYjZmNDk0NDMxOTk5ZWRhMzA5OTBlNGY1NzczNjMyZWQyNThmZTAyNzY2NzM1OTlkYTZmY2UzNWNkYWQ3NzI2YTBiYjAyNGNhZDk5NmI4OGUwY2I5ODg1NGNlYjVjMGI2ZWM3NDhkOWY5Y2U2YTZjZDQzNzg1OGJhY2I4MTQ2MThhMjcyZmYzYTQxNWM2ZTA3ZjNkYjA5ODg3NzdmZGVjODQ1YTk3YmY3ZDEwMmRkMDMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMjAyMTQ1NjRkNTU0MDI1YWY1OTllMzI3MDc5YjI3MjBlZjAwZGYzN2NmYjdjMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDAwNDYwOThkYzVmMmI5OWUzYmMyZWQ2NjQyZDdmMGE2MWVmYWJjMTVjMzhjNzYzMzNiY2NjZWVlZTM2OWE0ZjRhNWJkZGE4ZWE1OTI2NDEyNGU0MjlmMDg2MzI2ODNkZGJhMTdiYmYyNjJkODJiNmJlZmEzYjRlMTQ4MDM3NmE4YzdmM2M3ZDdlMmE2Nzc5YmJmMTgyNjJhYTg1N2RlOGMyMGExMmI2YTJjZThlNGQ3ZjMxZGQxYjE5NTM5MmNmNjE4NWFmY2UzNGFmZTA1ODk2MDU3YjM2ZTliMTcxYjZjNjdlZDdjMjI4NmNiZmE4M2ZmOGExNjdjN2JjNzEwOWFlZTdkN2UxOTA5YmQzODRmYmZjNjE5MzhlZmNhNTFjODk5M2M3MWRiMzE3NzMwZjE2ZTdlNzc2ODY3YWU0ZmRjNTYyZDZmMTVkZTU4NWU3Yjk0ZWY0OTZhMzY3NjM2N2EyY2JhYWI3YjYzNjY0OGIwMDc2YmFkNWNkZjFlMDk3NDBlYzZhNDUxYmZmNTM0ZWZhMjE1MDlmM2JhNzdiODEwMWI5MWVhN2U1NWRkYmZlMTQwMTUxNzA2N2Q3YjAxYTJhMDg3OWYwODg1Yzg5NGE4N2NmYjY4YzRkN2VlODkwNjA0ODgxYWViOTdjMjJkMWYzMzdlZjkyM2UwMzVhNjQwMCIKIAogUEtDUzcgUGFyc2UgRmFpbHVyZSBJbnZhbGlkIEFTTjE6IENoYW5nZSBjb250ZW50cyBvZiB0YWcgMzAgdG8gY29udGFpbiBvbmUgdW5hY2NvdW50ZWQgZXh0cmEgYnl0ZSAjMzExLjAKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBwa2NzN19hc24xX2ZhaWw6IjMwODIwMzI3MDYwOTJhODY0ODg2ZjcwZDAxMDcwMmEwODIwMzE3MzA4MjAzMTMwMjAxMDEzMTBmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwYjA2MDkyYTg2NDg4NmY3MGQwMTA3MDEzMTgyMDJlZTMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTAyMTQ3YmRlZGRkMjQ0NGNkMWNkZmU1YzQxYTgxMDJjODliN2RmMmU2Y2JmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDA1YmVjZDg3MTk1YzFkZWZmOTBjMjRjOTEyNjliNTViM2YwNjliYzIyNWMzMjZjMzE0YzFhNTE3ODZmZmUxNGM4MzBiZTRlNGJjNzNjYmEzNmM5NzY3N2I0NDE2ODI3OWJlOTFlN2NkZjdjMTkzODZhZTIxODYyNzE5ZDEzYTNhMGZmZjA4MDNkNDYwOTYyZjJjZGE4MzcxNDg0ODczMjUyYzNkNzA1NGRiODE0M2UyYjA4MWEzODE2ZWQwODA0Y2E1MDk5YWU1ZmVjZTgzZDVjMmMzNzgzYjE5ODhiNGI0NmRjOTRlNTU1ODdhMTA3ZWExNTQ2YmYyMmQyOGEwOTdmNjUyYTQwNjZkYzI5NjUyNjkwNjlhZjJmNTE3NmJiOGNlOWNhNmQxMWY5Njc1N2YwMzIwNGY3NTY3MDM1ODdkMDBhZDQyNDc5NmM5MmZjN2FlYjZmNDk0NDMxOTk5ZWRhMzA5OTBlNGY1NzczNjMyZWQyNThmZTAyNzY2NzM1OTlkYTZmY2UzNWNkYWQ3NzI2YTBiYjAyNGNhZDk5NmI4OGUwY2I5ODg1NGNlYjVjMGI2ZWM3NDhkOWY5Y2U2YTZjZDQzNzg1OGJhY2I4MTQ2MThhMjcyZmYzYTQxNWM2ZTA3ZjNkYjA5ODg3NzdmZGVjODQ1YTk3YmY3ZDEwMmRkMDMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMjAyMTQ1NjRkNTU0MDI1YWY1OTllMzI3MDc5YjI3MjBlZjAwZGYzN2NmYjdjMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDAwNDYwOThkYzVmMmI5OWUzYmMyZWQ2NjQyZDdmMGE2MWVmYWJjMTVjMzhjNzYzMzNiY2NjZWVlZTM2OWE0ZjRhNWJkZGE4ZWE1OTI2NDEyNGU0MjlmMDg2MzI2ODNkZGJhMTdiYmYyNjJkODJiNmJlZmEzYjRlMTQ4MDM3NmE4YzdmM2M3ZDdlMmE2Nzc5YmJmMTgyNjJhYTg1N2RlOGMyMGExMmI2YTJjZThlNGQ3ZjMxZGQxYjE5NTM5MmNmNjE4NWFmY2UzNGFmZTA1ODk2MDU3YjM2ZTliMTcxYjZjNjdlZDdjMjI4NmNiZmE4M2ZmOGExNjdjN2JjNzEwOWFlZTdkN2UxOTA5YmQzODRmYmZjNjE5MzhlZmNhNTFjODk5M2M3MWRiMzE3NzMwZjE2ZTdlNzc2ODY3YWU0ZmRjNTYyZDZmMTVkZTU4NWU3Yjk0ZWY0OTZhMzY3NjM2N2EyY2JhYWI3YjYzNjY0OGIwMDc2YmFkNWNkZjFlMDk3NDBlYzZhNDUxYmZmNTM0ZWZhMjE1MDlmM2JhNzdiODEwMWI5MWVhN2U1NWRkYmZlMTQwMTUxNzA2N2Q3YjAxYTJhMDg3OWYwODg1Yzg5NGE4N2NmYjY4YzRkN2VlODkwNjA0ODgxYWViOTdjMjJkMWYzMzdlZjkyM2UwMzVhNjQwMDAwIgogCiBQS0NTNyBQYXJzZSBGYWlsdXJlIEludmFsaWQgQVNOMTogQ2hhbmdlIGxlbmd0aCBmcm9tIDgwNiB0byA4MDUgIzMxMi4wCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NgogcGtjczdfYXNuMV9mYWlsOiIzMDgyMDMyNTA2MDkyYTg2NDg4NmY3MGQwMTA3MDJhMDgyMDMxNzMwODIwMzEzMDIwMTAxMzEwZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGIwNjA5MmE4NjQ4ODZmNzBkMDEwNzAxMzE4MjAyZWUzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwNWJlY2Q4NzE5NWMxZGVmZjkwYzI0YzkxMjY5YjU1YjNmMDY5YmMyMjVjMzI2YzMxNGMxYTUxNzg2ZmZlMTRjODMwYmU0ZTRiYzczY2JhMzZjOTc2NzdiNDQxNjgyNzliZTkxZTdjZGY3YzE5Mzg2YWUyMTg2MjcxOWQxM2EzYTBmZmYwODAzZDQ2MDk2MmYyY2RhODM3MTQ4NDg3MzI1MmMzZDcwNTRkYjgxNDNlMmIwODFhMzgxNmVkMDgwNGNhNTA5OWFlNWZlY2U4M2Q1YzJjMzc4M2IxOTg4YjRiNDZkYzk0ZTU1NTg3YTEwN2VhMTU0NmJmMjJkMjhhMDk3ZjY1MmE0MDY2ZGMyOTY1MjY5MDY5YWYyZjUxNzZiYjhjZTljYTZkMTFmOTY3NTdmMDMyMDRmNzU2NzAzNTg3ZDAwYWQ0MjQ3OTZjOTJmYzdhZWI2ZjQ5NDQzMTk5OWVkYTMwOTkwZTRmNTc3MzYzMmVkMjU4ZmUwMjc2NjczNTk5ZGE2ZmNlMzVjZGFkNzcyNmEwYmIwMjRjYWQ5OTZiODhlMGNiOTg4NTRjZWI1YzBiNmVjNzQ4ZDlmOWNlNmE2Y2Q0Mzc4NThiYWNiODE0NjE4YTI3MmZmM2E0MTVjNmUwN2YzZGIwOTg4Nzc3ZmRlYzg0NWE5N2JmN2QxMDJkZDAzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzIwMjE0NTY0ZDU1NDAyNWFmNTk5ZTMyNzA3OWIyNzIwZWYwMGRmMzdjZmI3YzMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwMDQ2MDk4ZGM1ZjJiOTllM2JjMmVkNjY0MmQ3ZjBhNjFlZmFiYzE1YzM4Yzc2MzMzYmNjY2VlZWUzNjlhNGY0YTViZGRhOGVhNTkyNjQxMjRlNDI5ZjA4NjMyNjgzZGRiYTE3YmJmMjYyZDgyYjZiZWZhM2I0ZTE0ODAzNzZhOGM3ZjNjN2Q3ZTJhNjc3OWJiZjE4MjYyYWE4NTdkZThjMjBhMTJiNmEyY2U4ZTRkN2YzMWRkMWIxOTUzOTJjZjYxODVhZmNlMzRhZmUwNTg5NjA1N2IzNmU5YjE3MWI2YzY3ZWQ3YzIyODZjYmZhODNmZjhhMTY3YzdiYzcxMDlhZWU3ZDdlMTkwOWJkMzg0ZmJmYzYxOTM4ZWZjYTUxYzg5OTNjNzFkYjMxNzczMGYxNmU3ZTc3Njg2N2FlNGZkYzU2MmQ2ZjE1ZGU1ODVlN2I5NGVmNDk2YTM2NzYzNjdhMmNiYWFiN2I2MzY2NDhiMDA3NmJhZDVjZGYxZTA5NzQwZWM2YTQ1MWJmZjUzNGVmYTIxNTA5ZjNiYTc3YjgxMDFiOTFlYTdlNTVkZGJmZTE0MDE1MTcwNjdkN2IwMWEyYTA4NzlmMDg4NWM4OTRhODdjZmI2OGM0ZDdlZTg5MDYwNDg4MWFlYjk3YzIyZDFmMzM3ZWY5MjNlMDM1YTY0MDAiCiAKIFBLQ1M3IFBhcnNlIEZhaWx1cmUgSW52YWxpZCBBU04xOiBDaGFuZ2UgdGFnIDA2IHRvIDAyICMzMTMuMAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHBrY3M3X2FzbjFfZmFpbDoiMzA4MjAzMjYwMjA5MmE4NjQ4ODZmNzBkMDEwNzAyYTA4MjAzMTczMDgyMDMxMzAyMDEwMTMxMGYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBiMDYwOTJhODY0ODg2ZjcwZDAxMDcwMTMxODIwMmVlMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDViZWNkODcxOTVjMWRlZmY5MGMyNGM5MTI2OWI1NWIzZjA2OWJjMjI1YzMyNmMzMTRjMWE1MTc4NmZmZTE0YzgzMGJlNGU0YmM3M2NiYTM2Yzk3Njc3YjQ0MTY4Mjc5YmU5MWU3Y2RmN2MxOTM4NmFlMjE4NjI3MTlkMTNhM2EwZmZmMDgwM2Q0NjA5NjJmMmNkYTgzNzE0ODQ4NzMyNTJjM2Q3MDU0ZGI4MTQzZTJiMDgxYTM4MTZlZDA4MDRjYTUwOTlhZTVmZWNlODNkNWMyYzM3ODNiMTk4OGI0YjQ2ZGM5NGU1NTU4N2ExMDdlYTE1NDZiZjIyZDI4YTA5N2Y2NTJhNDA2NmRjMjk2NTI2OTA2OWFmMmY1MTc2YmI4Y2U5Y2E2ZDExZjk2NzU3ZjAzMjA0Zjc1NjcwMzU4N2QwMGFkNDI0Nzk2YzkyZmM3YWViNmY0OTQ0MzE5OTllZGEzMDk5MGU0ZjU3NzM2MzJlZDI1OGZlMDI3NjY3MzU5OWRhNmZjZTM1Y2RhZDc3MjZhMGJiMDI0Y2FkOTk2Yjg4ZTBjYjk4ODU0Y2ViNWMwYjZlYzc0OGQ5ZjljZTZhNmNkNDM3ODU4YmFjYjgxNDYxOGEyNzJmZjNhNDE1YzZlMDdmM2RiMDk4ODc3N2ZkZWM4NDVhOTdiZjdkMTAyZGQwMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMyMDIxNDU2NGQ1NTQwMjVhZjU5OWUzMjcwNzliMjcyMGVmMDBkZjM3Y2ZiN2MzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDA0NjA5OGRjNWYyYjk5ZTNiYzJlZDY2NDJkN2YwYTYxZWZhYmMxNWMzOGM3NjMzM2JjY2NlZWVlMzY5YTRmNGE1YmRkYThlYTU5MjY0MTI0ZTQyOWYwODYzMjY4M2RkYmExN2JiZjI2MmQ4MmI2YmVmYTNiNGUxNDgwMzc2YThjN2YzYzdkN2UyYTY3NzliYmYxODI2MmFhODU3ZGU4YzIwYTEyYjZhMmNlOGU0ZDdmMzFkZDFiMTk1MzkyY2Y2MTg1YWZjZTM0YWZlMDU4OTYwNTdiMzZlOWIxNzFiNmM2N2VkN2MyMjg2Y2JmYTgzZmY4YTE2N2M3YmM3MTA5YWVlN2Q3ZTE5MDliZDM4NGZiZmM2MTkzOGVmY2E1MWM4OTkzYzcxZGIzMTc3MzBmMTZlN2U3NzY4NjdhZTRmZGM1NjJkNmYxNWRlNTg1ZTdiOTRlZjQ5NmEzNjc2MzY3YTJjYmFhYjdiNjM2NjQ4YjAwNzZiYWQ1Y2RmMWUwOTc0MGVjNmE0NTFiZmY1MzRlZmEyMTUwOWYzYmE3N2I4MTAxYjkxZWE3ZTU1ZGRiZmUxNDAxNTE3MDY3ZDdiMDFhMmEwODc5ZjA4ODVjODk0YTg3Y2ZiNjhjNGQ3ZWU4OTA2MDQ4ODFhZWI5N2MyMmQxZjMzN2VmOTIzZTAzNWE2NDAwIgogCiBQS0NTNyBQYXJzZSBGYWlsdXJlIEludmFsaWQgQVNOMTogQ2hhbmdlIGxlbmd0aCBmcm9tIDkgdG8gMTAgIzMxNC4wCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NgogcGtjczdfYXNuMV9mYWlsOiIzMDgyMDMyNjA2MGEyYTg2NDg4NmY3MGQwMTA3MDJhMDgyMDMxNzMwODIwMzEzMDIwMTAxMzEwZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGIwNjA5MmE4NjQ4ODZmNzBkMDEwNzAxMzE4MjAyZWUzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwNWJlY2Q4NzE5NWMxZGVmZjkwYzI0YzkxMjY5YjU1YjNmMDY5YmMyMjVjMzI2YzMxNGMxYTUxNzg2ZmZlMTRjODMwYmU0ZTRiYzczY2JhMzZjOTc2NzdiNDQxNjgyNzliZTkxZTdjZGY3YzE5Mzg2YWUyMTg2MjcxOWQxM2EzYTBmZmYwODAzZDQ2MDk2MmYyY2RhODM3MTQ4NDg3MzI1MmMzZDcwNTRkYjgxNDNlMmIwODFhMzgxNmVkMDgwNGNhNTA5OWFlNWZlY2U4M2Q1YzJjMzc4M2IxOTg4YjRiNDZkYzk0ZTU1NTg3YTEwN2VhMTU0NmJmMjJkMjhhMDk3ZjY1MmE0MDY2ZGMyOTY1MjY5MDY5YWYyZjUxNzZiYjhjZTljYTZkMTFmOTY3NTdmMDMyMDRmNzU2NzAzNTg3ZDAwYWQ0MjQ3OTZjOTJmYzdhZWI2ZjQ5NDQzMTk5OWVkYTMwOTkwZTRmNTc3MzYzMmVkMjU4ZmUwMjc2NjczNTk5ZGE2ZmNlMzVjZGFkNzcyNmEwYmIwMjRjYWQ5OTZiODhlMGNiOTg4NTRjZWI1YzBiNmVjNzQ4ZDlmOWNlNmE2Y2Q0Mzc4NThiYWNiODE0NjE4YTI3MmZmM2E0MTVjNmUwN2YzZGIwOTg4Nzc3ZmRlYzg0NWE5N2JmN2QxMDJkZDAzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzIwMjE0NTY0ZDU1NDAyNWFmNTk5ZTMyNzA3OWIyNzIwZWYwMGRmMzdjZmI3YzMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwMDQ2MDk4ZGM1ZjJiOTllM2JjMmVkNjY0MmQ3ZjBhNjFlZmFiYzE1YzM4Yzc2MzMzYmNjY2VlZWUzNjlhNGY0YTViZGRhOGVhNTkyNjQxMjRlNDI5ZjA4NjMyNjgzZGRiYTE3YmJmMjYyZDgyYjZiZWZhM2I0ZTE0ODAzNzZhOGM3ZjNjN2Q3ZTJhNjc3OWJiZjE4MjYyYWE4NTdkZThjMjBhMTJiNmEyY2U4ZTRkN2YzMWRkMWIxOTUzOTJjZjYxODVhZmNlMzRhZmUwNTg5NjA1N2IzNmU5YjE3MWI2YzY3ZWQ3YzIyODZjYmZhODNmZjhhMTY3YzdiYzcxMDlhZWU3ZDdlMTkwOWJkMzg0ZmJmYzYxOTM4ZWZjYTUxYzg5OTNjNzFkYjMxNzczMGYxNmU3ZTc3Njg2N2FlNGZkYzU2MmQ2ZjE1ZGU1ODVlN2I5NGVmNDk2YTM2NzYzNjdhMmNiYWFiN2I2MzY2NDhiMDA3NmJhZDVjZGYxZTA5NzQwZWM2YTQ1MWJmZjUzNGVmYTIxNTA5ZjNiYTc3YjgxMDFiOTFlYTdlNTVkZGJmZTE0MDE1MTcwNjdkN2IwMWEyYTA4NzlmMDg4NWM4OTRhODdjZmI2OGM0ZDdlZTg5MDYwNDg4MWFlYjk3YzIyZDFmMzM3ZWY5MjNlMDM1YTY0MDAiCiAKIFBLQ1M3IFBhcnNlIEZhaWx1cmUgSW52YWxpZCBBU04xOiBDaGFuZ2UgbGVuZ3RoIGZyb20gOSB0byA4ICMzMTUuMAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHBrY3M3X2FzbjFfZmFpbDoiMzA4MjAzMjYwNjA4MmE4NjQ4ODZmNzBkMDEwNzAyYTA4MjAzMTczMDgyMDMxMzAyMDEwMTMxMGYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBiMDYwOTJhODY0ODg2ZjcwZDAxMDcwMTMxODIwMmVlMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDViZWNkODcxOTVjMWRlZmY5MGMyNGM5MTI2OWI1NWIzZjA2OWJjMjI1YzMyNmMzMTRjMWE1MTc4NmZmZTE0YzgzMGJlNGU0YmM3M2NiYTM2Yzk3Njc3YjQ0MTY4Mjc5YmU5MWU3Y2RmN2MxOTM4NmFlMjE4NjI3MTlkMTNhM2EwZmZmMDgwM2Q0NjA5NjJmMmNkYTgzNzE0ODQ4NzMyNTJjM2Q3MDU0ZGI4MTQzZTJiMDgxYTM4MTZlZDA4MDRjYTUwOTlhZTVmZWNlODNkNWMyYzM3ODNiMTk4OGI0YjQ2ZGM5NGU1NTU4N2ExMDdlYTE1NDZiZjIyZDI4YTA5N2Y2NTJhNDA2NmRjMjk2NTI2OTA2OWFmMmY1MTc2YmI4Y2U5Y2E2ZDExZjk2NzU3ZjAzMjA0Zjc1NjcwMzU4N2QwMGFkNDI0Nzk2YzkyZmM3YWViNmY0OTQ0MzE5OTllZGEzMDk5MGU0ZjU3NzM2MzJlZDI1OGZlMDI3NjY3MzU5OWRhNmZjZTM1Y2RhZDc3MjZhMGJiMDI0Y2FkOTk2Yjg4ZTBjYjk4ODU0Y2ViNWMwYjZlYzc0OGQ5ZjljZTZhNmNkNDM3ODU4YmFjYjgxNDYxOGEyNzJmZjNhNDE1YzZlMDdmM2RiMDk4ODc3N2ZkZWM4NDVhOTdiZjdkMTAyZGQwMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMyMDIxNDU2NGQ1NTQwMjVhZjU5OWUzMjcwNzliMjcyMGVmMDBkZjM3Y2ZiN2MzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDA0NjA5OGRjNWYyYjk5ZTNiYzJlZDY2NDJkN2YwYTYxZWZhYmMxNWMzOGM3NjMzM2JjY2NlZWVlMzY5YTRmNGE1YmRkYThlYTU5MjY0MTI0ZTQyOWYwODYzMjY4M2RkYmExN2JiZjI2MmQ4MmI2YmVmYTNiNGUxNDgwMzc2YThjN2YzYzdkN2UyYTY3NzliYmYxODI2MmFhODU3ZGU4YzIwYTEyYjZhMmNlOGU0ZDdmMzFkZDFiMTk1MzkyY2Y2MTg1YWZjZTM0YWZlMDU4OTYwNTdiMzZlOWIxNzFiNmM2N2VkN2MyMjg2Y2JmYTgzZmY4YTE2N2M3YmM3MTA5YWVlN2Q3ZTE5MDliZDM4NGZiZmM2MTkzOGVmY2E1MWM4OTkzYzcxZGIzMTc3MzBmMTZlN2U3NzY4NjdhZTRmZGM1NjJkNmYxNWRlNTg1ZTdiOTRlZjQ5NmEzNjc2MzY3YTJjYmFhYjdiNjM2NjQ4YjAwNzZiYWQ1Y2RmMWUwOTc0MGVjNmE0NTFiZmY1MzRlZmEyMTUwOWYzYmE3N2I4MTAxYjkxZWE3ZTU1ZGRiZmUxNDAxNTE3MDY3ZDdiMDFhMmEwODc5ZjA4ODVjODk0YTg3Y2ZiNjhjNGQ3ZWU4OTA2MDQ4ODFhZWI5N2MyMmQxZjMzN2VmOTIzZTAzNWE2NDAwIgogCiBQS0NTNyBQYXJzZSBGYWlsdXJlIEludmFsaWQgQVNOMTogQ2hhbmdlIHRhZyBhMCB0byAwMiAjMzE2LjAKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBwa2NzN19hc24xX2ZhaWw6IjMwODIwMzI2MDYwOTJhODY0ODg2ZjcwZDAxMDcwMjAyODIwMzE3MzA4MjAzMTMwMjAxMDEzMTBmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwYjA2MDkyYTg2NDg4NmY3MGQwMTA3MDEzMTgyMDJlZTMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTAyMTQ3YmRlZGRkMjQ0NGNkMWNkZmU1YzQxYTgxMDJjODliN2RmMmU2Y2JmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDA1YmVjZDg3MTk1YzFkZWZmOTBjMjRjOTEyNjliNTViM2YwNjliYzIyNWMzMjZjMzE0YzFhNTE3ODZmZmUxNGM4MzBiZTRlNGJjNzNjYmEzNmM5NzY3N2I0NDE2ODI3OWJlOTFlN2NkZjdjMTkzODZhZTIxODYyNzE5ZDEzYTNhMGZmZjA4MDNkNDYwOTYyZjJjZGE4MzcxNDg0ODczMjUyYzNkNzA1NGRiODE0M2UyYjA4MWEzODE2ZWQwODA0Y2E1MDk5YWU1ZmVjZTgzZDVjMmMzNzgzYjE5ODhiNGI0NmRjOTRlNTU1ODdhMTA3ZWExNTQ2YmYyMmQyOGEwOTdmNjUyYTQwNjZkYzI5NjUyNjkwNjlhZjJmNTE3NmJiOGNlOWNhNmQxMWY5Njc1N2YwMzIwNGY3NTY3MDM1ODdkMDBhZDQyNDc5NmM5MmZjN2FlYjZmNDk0NDMxOTk5ZWRhMzA5OTBlNGY1NzczNjMyZWQyNThmZTAyNzY2NzM1OTlkYTZmY2UzNWNkYWQ3NzI2YTBiYjAyNGNhZDk5NmI4OGUwY2I5ODg1NGNlYjVjMGI2ZWM3NDhkOWY5Y2U2YTZjZDQzNzg1OGJhY2I4MTQ2MThhMjcyZmYzYTQxNWM2ZTA3ZjNkYjA5ODg3NzdmZGVjODQ1YTk3YmY3ZDEwMmRkMDMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMjAyMTQ1NjRkNTU0MDI1YWY1OTllMzI3MDc5YjI3MjBlZjAwZGYzN2NmYjdjMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDAwNDYwOThkYzVmMmI5OWUzYmMyZWQ2NjQyZDdmMGE2MWVmYWJjMTVjMzhjNzYzMzNiY2NjZWVlZTM2OWE0ZjRhNWJkZGE4ZWE1OTI2NDEyNGU0MjlmMDg2MzI2ODNkZGJhMTdiYmYyNjJkODJiNmJlZmEzYjRlMTQ4MDM3NmE4YzdmM2M3ZDdlMmE2Nzc5YmJmMTgyNjJhYTg1N2RlOGMyMGExMmI2YTJjZThlNGQ3ZjMxZGQxYjE5NTM5MmNmNjE4NWFmY2UzNGFmZTA1ODk2MDU3YjM2ZTliMTcxYjZjNjdlZDdjMjI4NmNiZmE4M2ZmOGExNjdjN2JjNzEwOWFlZTdkN2UxOTA5YmQzODRmYmZjNjE5MzhlZmNhNTFjODk5M2M3MWRiMzE3NzMwZjE2ZTdlNzc2ODY3YWU0ZmRjNTYyZDZmMTVkZTU4NWU3Yjk0ZWY0OTZhMzY3NjM2N2EyY2JhYWI3YjYzNjY0OGIwMDc2YmFkNWNkZjFlMDk3NDBlYzZhNDUxYmZmNTM0ZWZhMjE1MDlmM2JhNzdiODEwMWI5MWVhN2U1NWRkYmZlMTQwMTUxNzA2N2Q3YjAxYTJhMDg3OWYwODg1Yzg5NGE4N2NmYjY4YzRkN2VlODkwNjA0ODgxYWViOTdjMjJkMWYzMzdlZjkyM2UwMzVhNjQwMCIKIAogUEtDUzcgUGFyc2UgRmFpbHVyZSBJbnZhbGlkIEFTTjE6IENoYW5nZSBsZW5ndGggZnJvbSA3OTEgdG8gNzkyICMzMTcuMAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHBrY3M3X2FzbjFfZmFpbDoiMzA4MjAzMjYwNjA5MmE4NjQ4ODZmNzBkMDEwNzAyYTA4MjAzMTgzMDgyMDMxMzAyMDEwMTMxMGYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBiMDYwOTJhODY0ODg2ZjcwZDAxMDcwMTMxODIwMmVlMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDViZWNkODcxOTVjMWRlZmY5MGMyNGM5MTI2OWI1NWIzZjA2OWJjMjI1YzMyNmMzMTRjMWE1MTc4NmZmZTE0YzgzMGJlNGU0YmM3M2NiYTM2Yzk3Njc3YjQ0MTY4Mjc5YmU5MWU3Y2RmN2MxOTM4NmFlMjE4NjI3MTlkMTNhM2EwZmZmMDgwM2Q0NjA5NjJmMmNkYTgzNzE0ODQ4NzMyNTJjM2Q3MDU0ZGI4MTQzZTJiMDgxYTM4MTZlZDA4MDRjYTUwOTlhZTVmZWNlODNkNWMyYzM3ODNiMTk4OGI0YjQ2ZGM5NGU1NTU4N2ExMDdlYTE1NDZiZjIyZDI4YTA5N2Y2NTJhNDA2NmRjMjk2NTI2OTA2OWFmMmY1MTc2YmI4Y2U5Y2E2ZDExZjk2NzU3ZjAzMjA0Zjc1NjcwMzU4N2QwMGFkNDI0Nzk2YzkyZmM3YWViNmY0OTQ0MzE5OTllZGEzMDk5MGU0ZjU3NzM2MzJlZDI1OGZlMDI3NjY3MzU5OWRhNmZjZTM1Y2RhZDc3MjZhMGJiMDI0Y2FkOTk2Yjg4ZTBjYjk4ODU0Y2ViNWMwYjZlYzc0OGQ5ZjljZTZhNmNkNDM3ODU4YmFjYjgxNDYxOGEyNzJmZjNhNDE1YzZlMDdmM2RiMDk4ODc3N2ZkZWM4NDVhOTdiZjdkMTAyZGQwMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMyMDIxNDU2NGQ1NTQwMjVhZjU5OWUzMjcwNzliMjcyMGVmMDBkZjM3Y2ZiN2MzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDA0NjA5OGRjNWYyYjk5ZTNiYzJlZDY2NDJkN2YwYTYxZWZhYmMxNWMzOGM3NjMzM2JjY2NlZWVlMzY5YTRmNGE1YmRkYThlYTU5MjY0MTI0ZTQyOWYwODYzMjY4M2RkYmExN2JiZjI2MmQ4MmI2YmVmYTNiNGUxNDgwMzc2YThjN2YzYzdkN2UyYTY3NzliYmYxODI2MmFhODU3ZGU4YzIwYTEyYjZhMmNlOGU0ZDdmMzFkZDFiMTk1MzkyY2Y2MTg1YWZjZTM0YWZlMDU4OTYwNTdiMzZlOWIxNzFiNmM2N2VkN2MyMjg2Y2JmYTgzZmY4YTE2N2M3YmM3MTA5YWVlN2Q3ZTE5MDliZDM4NGZiZmM2MTkzOGVmY2E1MWM4OTkzYzcxZGIzMTc3MzBmMTZlN2U3NzY4NjdhZTRmZGM1NjJkNmYxNWRlNTg1ZTdiOTRlZjQ5NmEzNjc2MzY3YTJjYmFhYjdiNjM2NjQ4YjAwNzZiYWQ1Y2RmMWUwOTc0MGVjNmE0NTFiZmY1MzRlZmEyMTUwOWYzYmE3N2I4MTAxYjkxZWE3ZTU1ZGRiZmUxNDAxNTE3MDY3ZDdiMDFhMmEwODc5ZjA4ODVjODk0YTg3Y2ZiNjhjNGQ3ZWU4OTA2MDQ4ODFhZWI5N2MyMmQxZjMzN2VmOTIzZTAzNWE2NDAwIgogCiBQS0NTNyBQYXJzZSBGYWlsdXJlIEludmFsaWQgQVNOMTogQ2hhbmdlIGNvbnRlbnRzIG9mIHRhZyBhMCB0byBjb250YWluIG9uZSB1bmFjY291bnRlZCBleHRyYSBieXRlICMzMTguMAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHBrY3M3X2FzbjFfZmFpbDoiMzA4MjAzMjYwNjA5MmE4NjQ4ODZmNzBkMDEwNzAyYTA4MjAzMTgzMDgyMDMxMzAyMDEwMTMxMGYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBiMDYwOTJhODY0ODg2ZjcwZDAxMDcwMTMxODIwMmVlMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDViZWNkODcxOTVjMWRlZmY5MGMyNGM5MTI2OWI1NWIzZjA2OWJjMjI1YzMyNmMzMTRjMWE1MTc4NmZmZTE0YzgzMGJlNGU0YmM3M2NiYTM2Yzk3Njc3YjQ0MTY4Mjc5YmU5MWU3Y2RmN2MxOTM4NmFlMjE4NjI3MTlkMTNhM2EwZmZmMDgwM2Q0NjA5NjJmMmNkYTgzNzE0ODQ4NzMyNTJjM2Q3MDU0ZGI4MTQzZTJiMDgxYTM4MTZlZDA4MDRjYTUwOTlhZTVmZWNlODNkNWMyYzM3ODNiMTk4OGI0YjQ2ZGM5NGU1NTU4N2ExMDdlYTE1NDZiZjIyZDI4YTA5N2Y2NTJhNDA2NmRjMjk2NTI2OTA2OWFmMmY1MTc2YmI4Y2U5Y2E2ZDExZjk2NzU3ZjAzMjA0Zjc1NjcwMzU4N2QwMGFkNDI0Nzk2YzkyZmM3YWViNmY0OTQ0MzE5OTllZGEzMDk5MGU0ZjU3NzM2MzJlZDI1OGZlMDI3NjY3MzU5OWRhNmZjZTM1Y2RhZDc3MjZhMGJiMDI0Y2FkOTk2Yjg4ZTBjYjk4ODU0Y2ViNWMwYjZlYzc0OGQ5ZjljZTZhNmNkNDM3ODU4YmFjYjgxNDYxOGEyNzJmZjNhNDE1YzZlMDdmM2RiMDk4ODc3N2ZkZWM4NDVhOTdiZjdkMTAyZGQwMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMyMDIxNDU2NGQ1NTQwMjVhZjU5OWUzMjcwNzliMjcyMGVmMDBkZjM3Y2ZiN2MzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDA0NjA5OGRjNWYyYjk5ZTNiYzJlZDY2NDJkN2YwYTYxZWZhYmMxNWMzOGM3NjMzM2JjY2NlZWVlMzY5YTRmNGE1YmRkYThlYTU5MjY0MTI0ZTQyOWYwODYzMjY4M2RkYmExN2JiZjI2MmQ4MmI2YmVmYTNiNGUxNDgwMzc2YThjN2YzYzdkN2UyYTY3NzliYmYxODI2MmFhODU3ZGU4YzIwYTEyYjZhMmNlOGU0ZDdmMzFkZDFiMTk1MzkyY2Y2MTg1YWZjZTM0YWZlMDU4OTYwNTdiMzZlOWIxNzFiNmM2N2VkN2MyMjg2Y2JmYTgzZmY4YTE2N2M3YmM3MTA5YWVlN2Q3ZTE5MDliZDM4NGZiZmM2MTkzOGVmY2E1MWM4OTkzYzcxZGIzMTc3MzBmMTZlN2U3NzY4NjdhZTRmZGM1NjJkNmYxNWRlNTg1ZTdiOTRlZjQ5NmEzNjc2MzY3YTJjYmFhYjdiNjM2NjQ4YjAwNzZiYWQ1Y2RmMWUwOTc0MGVjNmE0NTFiZmY1MzRlZmEyMTUwOWYzYmE3N2I4MTAxYjkxZWE3ZTU1ZGRiZmUxNDAxNTE3MDY3ZDdiMDFhMmEwODc5ZjA4ODVjODk0YTg3Y2ZiNjhjNGQ3ZWU4OTA2MDQ4ODFhZWI5N2MyMmQxZjMzN2VmOTIzZTAzNWE2NDAwMDAiCiAKIFBLQ1M3IFBhcnNlIEZhaWx1cmUgSW52YWxpZCBBU04xOiBDaGFuZ2UgbGVuZ3RoIGZyb20gNzkxIHRvIDc5MCAjMzE5LjAKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBwa2NzN19hc24xX2ZhaWw6IjMwODIwMzI2MDYwOTJhODY0ODg2ZjcwZDAxMDcwMmEwODIwMzE2MzA4MjAzMTMwMjAxMDEzMTBmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwYjA2MDkyYTg2NDg4NmY3MGQwMTA3MDEzMTgyMDJlZTMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTAyMTQ3YmRlZGRkMjQ0NGNkMWNkZmU1YzQxYTgxMDJjODliN2RmMmU2Y2JmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDA1YmVjZDg3MTk1YzFkZWZmOTBjMjRjOTEyNjliNTViM2YwNjliYzIyNWMzMjZjMzE0YzFhNTE3ODZmZmUxNGM4MzBiZTRlNGJjNzNjYmEzNmM5NzY3N2I0NDE2ODI3OWJlOTFlN2NkZjdjMTkzODZhZTIxODYyNzE5ZDEzYTNhMGZmZjA4MDNkNDYwOTYyZjJjZGE4MzcxNDg0ODczMjUyYzNkNzA1NGRiODE0M2UyYjA4MWEzODE2ZWQwODA0Y2E1MDk5YWU1ZmVjZTgzZDVjMmMzNzgzYjE5ODhiNGI0NmRjOTRlNTU1ODdhMTA3ZWExNTQ2YmYyMmQyOGEwOTdmNjUyYTQwNjZkYzI5NjUyNjkwNjlhZjJmNTE3NmJiOGNlOWNhNmQxMWY5Njc1N2YwMzIwNGY3NTY3MDM1ODdkMDBhZDQyNDc5NmM5MmZjN2FlYjZmNDk0NDMxOTk5ZWRhMzA5OTBlNGY1NzczNjMyZWQyNThmZTAyNzY2NzM1OTlkYTZmY2UzNWNkYWQ3NzI2YTBiYjAyNGNhZDk5NmI4OGUwY2I5ODg1NGNlYjVjMGI2ZWM3NDhkOWY5Y2U2YTZjZDQzNzg1OGJhY2I4MTQ2MThhMjcyZmYzYTQxNWM2ZTA3ZjNkYjA5ODg3NzdmZGVjODQ1YTk3YmY3ZDEwMmRkMDMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMjAyMTQ1NjRkNTU0MDI1YWY1OTllMzI3MDc5YjI3MjBlZjAwZGYzN2NmYjdjMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDAwNDYwOThkYzVmMmI5OWUzYmMyZWQ2NjQyZDdmMGE2MWVmYWJjMTVjMzhjNzYzMzNiY2NjZWVlZTM2OWE0ZjRhNWJkZGE4ZWE1OTI2NDEyNGU0MjlmMDg2MzI2ODNkZGJhMTdiYmYyNjJkODJiNmJlZmEzYjRlMTQ4MDM3NmE4YzdmM2M3ZDdlMmE2Nzc5YmJmMTgyNjJhYTg1N2RlOGMyMGExMmI2YTJjZThlNGQ3ZjMxZGQxYjE5NTM5MmNmNjE4NWFmY2UzNGFmZTA1ODk2MDU3YjM2ZTliMTcxYjZjNjdlZDdjMjI4NmNiZmE4M2ZmOGExNjdjN2JjNzEwOWFlZTdkN2UxOTA5YmQzODRmYmZjNjE5MzhlZmNhNTFjODk5M2M3MWRiMzE3NzMwZjE2ZTdlNzc2ODY3YWU0ZmRjNTYyZDZmMTVkZTU4NWU3Yjk0ZWY0OTZhMzY3NjM2N2EyY2JhYWI3YjYzNjY0OGIwMDc2YmFkNWNkZjFlMDk3NDBlYzZhNDUxYmZmNTM0ZWZhMjE1MDlmM2JhNzdiODEwMWI5MWVhN2U1NWRkYmZlMTQwMTUxNzA2N2Q3YjAxYTJhMDg3OWYwODg1Yzg5NGE4N2NmYjY4YzRkN2VlODkwNjA0ODgxYWViOTdjMjJkMWYzMzdlZjkyM2UwMzVhNjQwMCIKIAogUEtDUzcgUGFyc2UgRmFpbHVyZSBJbnZhbGlkIEFTTjE6IENoYW5nZSB0YWcgMzAgdG8gMDIgIzMyMC4wCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NgogcGtjczdfYXNuMV9mYWlsOiIzMDgyMDMyNjA2MDkyYTg2NDg4NmY3MGQwMTA3MDJhMDgyMDMxNzAyODIwMzEzMDIwMTAxMzEwZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGIwNjA5MmE4NjQ4ODZmNzBkMDEwNzAxMzE4MjAyZWUzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwNWJlY2Q4NzE5NWMxZGVmZjkwYzI0YzkxMjY5YjU1YjNmMDY5YmMyMjVjMzI2YzMxNGMxYTUxNzg2ZmZlMTRjODMwYmU0ZTRiYzczY2JhMzZjOTc2NzdiNDQxNjgyNzliZTkxZTdjZGY3YzE5Mzg2YWUyMTg2MjcxOWQxM2EzYTBmZmYwODAzZDQ2MDk2MmYyY2RhODM3MTQ4NDg3MzI1MmMzZDcwNTRkYjgxNDNlMmIwODFhMzgxNmVkMDgwNGNhNTA5OWFlNWZlY2U4M2Q1YzJjMzc4M2IxOTg4YjRiNDZkYzk0ZTU1NTg3YTEwN2VhMTU0NmJmMjJkMjhhMDk3ZjY1MmE0MDY2ZGMyOTY1MjY5MDY5YWYyZjUxNzZiYjhjZTljYTZkMTFmOTY3NTdmMDMyMDRmNzU2NzAzNTg3ZDAwYWQ0MjQ3OTZjOTJmYzdhZWI2ZjQ5NDQzMTk5OWVkYTMwOTkwZTRmNTc3MzYzMmVkMjU4ZmUwMjc2NjczNTk5ZGE2ZmNlMzVjZGFkNzcyNmEwYmIwMjRjYWQ5OTZiODhlMGNiOTg4NTRjZWI1YzBiNmVjNzQ4ZDlmOWNlNmE2Y2Q0Mzc4NThiYWNiODE0NjE4YTI3MmZmM2E0MTVjNmUwN2YzZGIwOTg4Nzc3ZmRlYzg0NWE5N2JmN2QxMDJkZDAzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzIwMjE0NTY0ZDU1NDAyNWFmNTk5ZTMyNzA3OWIyNzIwZWYwMGRmMzdjZmI3YzMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwMDQ2MDk4ZGM1ZjJiOTllM2JjMmVkNjY0MmQ3ZjBhNjFlZmFiYzE1YzM4Yzc2MzMzYmNjY2VlZWUzNjlhNGY0YTViZGRhOGVhNTkyNjQxMjRlNDI5ZjA4NjMyNjgzZGRiYTE3YmJmMjYyZDgyYjZiZWZhM2I0ZTE0ODAzNzZhOGM3ZjNjN2Q3ZTJhNjc3OWJiZjE4MjYyYWE4NTdkZThjMjBhMTJiNmEyY2U4ZTRkN2YzMWRkMWIxOTUzOTJjZjYxODVhZmNlMzRhZmUwNTg5NjA1N2IzNmU5YjE3MWI2YzY3ZWQ3YzIyODZjYmZhODNmZjhhMTY3YzdiYzcxMDlhZWU3ZDdlMTkwOWJkMzg0ZmJmYzYxOTM4ZWZjYTUxYzg5OTNjNzFkYjMxNzczMGYxNmU3ZTc3Njg2N2FlNGZkYzU2MmQ2ZjE1ZGU1ODVlN2I5NGVmNDk2YTM2NzYzNjdhMmNiYWFiN2I2MzY2NDhiMDA3NmJhZDVjZGYxZTA5NzQwZWM2YTQ1MWJmZjUzNGVmYTIxNTA5ZjNiYTc3YjgxMDFiOTFlYTdlNTVkZGJmZTE0MDE1MTcwNjdkN2IwMWEyYTA4NzlmMDg4NWM4OTRhODdjZmI2OGM0ZDdlZTg5MDYwNDg4MWFlYjk3YzIyZDFmMzM3ZWY5MjNlMDM1YTY0MDAiCiAKIFBLQ1M3IFBhcnNlIEZhaWx1cmUgSW52YWxpZCBBU04xOiBDaGFuZ2UgbGVuZ3RoIGZyb20gNzg3IHRvIDc4OCAjMzIxLjAKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBwa2NzN19hc24xX2ZhaWw6IjMwODIwMzI2MDYwOTJhODY0ODg2ZjcwZDAxMDcwMmEwODIwMzE3MzA4MjAzMTQwMjAxMDEzMTBmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwYjA2MDkyYTg2NDg4NmY3MGQwMTA3MDEzMTgyMDJlZTMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTAyMTQ3YmRlZGRkMjQ0NGNkMWNkZmU1YzQxYTgxMDJjODliN2RmMmU2Y2JmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDA1YmVjZDg3MTk1YzFkZWZmOTBjMjRjOTEyNjliNTViM2YwNjliYzIyNWMzMjZjMzE0YzFhNTE3ODZmZmUxNGM4MzBiZTRlNGJjNzNjYmEzNmM5NzY3N2I0NDE2ODI3OWJlOTFlN2NkZjdjMTkzODZhZTIxODYyNzE5ZDEzYTNhMGZmZjA4MDNkNDYwOTYyZjJjZGE4MzcxNDg0ODczMjUyYzNkNzA1NGRiODE0M2UyYjA4MWEzODE2ZWQwODA0Y2E1MDk5YWU1ZmVjZTgzZDVjMmMzNzgzYjE5ODhiNGI0NmRjOTRlNTU1ODdhMTA3ZWExNTQ2YmYyMmQyOGEwOTdmNjUyYTQwNjZkYzI5NjUyNjkwNjlhZjJmNTE3NmJiOGNlOWNhNmQxMWY5Njc1N2YwMzIwNGY3NTY3MDM1ODdkMDBhZDQyNDc5NmM5MmZjN2FlYjZmNDk0NDMxOTk5ZWRhMzA5OTBlNGY1NzczNjMyZWQyNThmZTAyNzY2NzM1OTlkYTZmY2UzNWNkYWQ3NzI2YTBiYjAyNGNhZDk5NmI4OGUwY2I5ODg1NGNlYjVjMGI2ZWM3NDhkOWY5Y2U2YTZjZDQzNzg1OGJhY2I4MTQ2MThhMjcyZmYzYTQxNWM2ZTA3ZjNkYjA5ODg3NzdmZGVjODQ1YTk3YmY3ZDEwMmRkMDMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMjAyMTQ1NjRkNTU0MDI1YWY1OTllMzI3MDc5YjI3MjBlZjAwZGYzN2NmYjdjMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDAwNDYwOThkYzVmMmI5OWUzYmMyZWQ2NjQyZDdmMGE2MWVmYWJjMTVjMzhjNzYzMzNiY2NjZWVlZTM2OWE0ZjRhNWJkZGE4ZWE1OTI2NDEyNGU0MjlmMDg2MzI2ODNkZGJhMTdiYmYyNjJkODJiNmJlZmEzYjRlMTQ4MDM3NmE4YzdmM2M3ZDdlMmE2Nzc5YmJmMTgyNjJhYTg1N2RlOGMyMGExMmI2YTJjZThlNGQ3ZjMxZGQxYjE5NTM5MmNmNjE4NWFmY2UzNGFmZTA1ODk2MDU3YjM2ZTliMTcxYjZjNjdlZDdjMjI4NmNiZmE4M2ZmOGExNjdjN2JjNzEwOWFlZTdkN2UxOTA5YmQzODRmYmZjNjE5MzhlZmNhNTFjODk5M2M3MWRiMzE3NzMwZjE2ZTdlNzc2ODY3YWU0ZmRjNTYyZDZmMTVkZTU4NWU3Yjk0ZWY0OTZhMzY3NjM2N2EyY2JhYWI3YjYzNjY0OGIwMDc2YmFkNWNkZjFlMDk3NDBlYzZhNDUxYmZmNTM0ZWZhMjE1MDlmM2JhNzdiODEwMWI5MWVhN2U1NWRkYmZlMTQwMTUxNzA2N2Q3YjAxYTJhMDg3OWYwODg1Yzg5NGE4N2NmYjY4YzRkN2VlODkwNjA0ODgxYWViOTdjMjJkMWYzMzdlZjkyM2UwMzVhNjQwMCIKIAogUEtDUzcgUGFyc2UgRmFpbHVyZSBJbnZhbGlkIEFTTjE6IENoYW5nZSBjb250ZW50cyBvZiB0YWcgMzAgdG8gY29udGFpbiBvbmUgdW5hY2NvdW50ZWQgZXh0cmEgYnl0ZSAjMzIyLjAKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBwa2NzN19hc24xX2ZhaWw6IjMwODIwMzI2MDYwOTJhODY0ODg2ZjcwZDAxMDcwMmEwODIwMzE3MzA4MjAzMTQwMjAxMDEzMTBmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwYjA2MDkyYTg2NDg4NmY3MGQwMTA3MDEzMTgyMDJlZTMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTAyMTQ3YmRlZGRkMjQ0NGNkMWNkZmU1YzQxYTgxMDJjODliN2RmMmU2Y2JmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDA1YmVjZDg3MTk1YzFkZWZmOTBjMjRjOTEyNjliNTViM2YwNjliYzIyNWMzMjZjMzE0YzFhNTE3ODZmZmUxNGM4MzBiZTRlNGJjNzNjYmEzNmM5NzY3N2I0NDE2ODI3OWJlOTFlN2NkZjdjMTkzODZhZTIxODYyNzE5ZDEzYTNhMGZmZjA4MDNkNDYwOTYyZjJjZGE4MzcxNDg0ODczMjUyYzNkNzA1NGRiODE0M2UyYjA4MWEzODE2ZWQwODA0Y2E1MDk5YWU1ZmVjZTgzZDVjMmMzNzgzYjE5ODhiNGI0NmRjOTRlNTU1ODdhMTA3ZWExNTQ2YmYyMmQyOGEwOTdmNjUyYTQwNjZkYzI5NjUyNjkwNjlhZjJmNTE3NmJiOGNlOWNhNmQxMWY5Njc1N2YwMzIwNGY3NTY3MDM1ODdkMDBhZDQyNDc5NmM5MmZjN2FlYjZmNDk0NDMxOTk5ZWRhMzA5OTBlNGY1NzczNjMyZWQyNThmZTAyNzY2NzM1OTlkYTZmY2UzNWNkYWQ3NzI2YTBiYjAyNGNhZDk5NmI4OGUwY2I5ODg1NGNlYjVjMGI2ZWM3NDhkOWY5Y2U2YTZjZDQzNzg1OGJhY2I4MTQ2MThhMjcyZmYzYTQxNWM2ZTA3ZjNkYjA5ODg3NzdmZGVjODQ1YTk3YmY3ZDEwMmRkMDMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMjAyMTQ1NjRkNTU0MDI1YWY1OTllMzI3MDc5YjI3MjBlZjAwZGYzN2NmYjdjMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDAwNDYwOThkYzVmMmI5OWUzYmMyZWQ2NjQyZDdmMGE2MWVmYWJjMTVjMzhjNzYzMzNiY2NjZWVlZTM2OWE0ZjRhNWJkZGE4ZWE1OTI2NDEyNGU0MjlmMDg2MzI2ODNkZGJhMTdiYmYyNjJkODJiNmJlZmEzYjRlMTQ4MDM3NmE4YzdmM2M3ZDdlMmE2Nzc5YmJmMTgyNjJhYTg1N2RlOGMyMGExMmI2YTJjZThlNGQ3ZjMxZGQxYjE5NTM5MmNmNjE4NWFmY2UzNGFmZTA1ODk2MDU3YjM2ZTliMTcxYjZjNjdlZDdjMjI4NmNiZmE4M2ZmOGExNjdjN2JjNzEwOWFlZTdkN2UxOTA5YmQzODRmYmZjNjE5MzhlZmNhNTFjODk5M2M3MWRiMzE3NzMwZjE2ZTdlNzc2ODY3YWU0ZmRjNTYyZDZmMTVkZTU4NWU3Yjk0ZWY0OTZhMzY3NjM2N2EyY2JhYWI3YjYzNjY0OGIwMDc2YmFkNWNkZjFlMDk3NDBlYzZhNDUxYmZmNTM0ZWZhMjE1MDlmM2JhNzdiODEwMWI5MWVhN2U1NWRkYmZlMTQwMTUxNzA2N2Q3YjAxYTJhMDg3OWYwODg1Yzg5NGE4N2NmYjY4YzRkN2VlODkwNjA0ODgxYWViOTdjMjJkMWYzMzdlZjkyM2UwMzVhNjQwMDAwIgogCiBQS0NTNyBQYXJzZSBGYWlsdXJlIEludmFsaWQgQVNOMTogQ2hhbmdlIGxlbmd0aCBmcm9tIDc4NyB0byA3ODYgIzMyMy4wCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NgogcGtjczdfYXNuMV9mYWlsOiIzMDgyMDMyNjA2MDkyYTg2NDg4NmY3MGQwMTA3MDJhMDgyMDMxNzMwODIwMzEyMDIwMTAxMzEwZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGIwNjA5MmE4NjQ4ODZmNzBkMDEwNzAxMzE4MjAyZWUzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwNWJlY2Q4NzE5NWMxZGVmZjkwYzI0YzkxMjY5YjU1YjNmMDY5YmMyMjVjMzI2YzMxNGMxYTUxNzg2ZmZlMTRjODMwYmU0ZTRiYzczY2JhMzZjOTc2NzdiNDQxNjgyNzliZTkxZTdjZGY3YzE5Mzg2YWUyMTg2MjcxOWQxM2EzYTBmZmYwODAzZDQ2MDk2MmYyY2RhODM3MTQ4NDg3MzI1MmMzZDcwNTRkYjgxNDNlMmIwODFhMzgxNmVkMDgwNGNhNTA5OWFlNWZlY2U4M2Q1YzJjMzc4M2IxOTg4YjRiNDZkYzk0ZTU1NTg3YTEwN2VhMTU0NmJmMjJkMjhhMDk3ZjY1MmE0MDY2ZGMyOTY1MjY5MDY5YWYyZjUxNzZiYjhjZTljYTZkMTFmOTY3NTdmMDMyMDRmNzU2NzAzNTg3ZDAwYWQ0MjQ3OTZjOTJmYzdhZWI2ZjQ5NDQzMTk5OWVkYTMwOTkwZTRmNTc3MzYzMmVkMjU4ZmUwMjc2NjczNTk5ZGE2ZmNlMzVjZGFkNzcyNmEwYmIwMjRjYWQ5OTZiODhlMGNiOTg4NTRjZWI1YzBiNmVjNzQ4ZDlmOWNlNmE2Y2Q0Mzc4NThiYWNiODE0NjE4YTI3MmZmM2E0MTVjNmUwN2YzZGIwOTg4Nzc3ZmRlYzg0NWE5N2JmN2QxMDJkZDAzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzIwMjE0NTY0ZDU1NDAyNWFmNTk5ZTMyNzA3OWIyNzIwZWYwMGRmMzdjZmI3YzMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwMDQ2MDk4ZGM1ZjJiOTllM2JjMmVkNjY0MmQ3ZjBhNjFlZmFiYzE1YzM4Yzc2MzMzYmNjY2VlZWUzNjlhNGY0YTViZGRhOGVhNTkyNjQxMjRlNDI5ZjA4NjMyNjgzZGRiYTE3YmJmMjYyZDgyYjZiZWZhM2I0ZTE0ODAzNzZhOGM3ZjNjN2Q3ZTJhNjc3OWJiZjE4MjYyYWE4NTdkZThjMjBhMTJiNmEyY2U4ZTRkN2YzMWRkMWIxOTUzOTJjZjYxODVhZmNlMzRhZmUwNTg5NjA1N2IzNmU5YjE3MWI2YzY3ZWQ3YzIyODZjYmZhODNmZjhhMTY3YzdiYzcxMDlhZWU3ZDdlMTkwOWJkMzg0ZmJmYzYxOTM4ZWZjYTUxYzg5OTNjNzFkYjMxNzczMGYxNmU3ZTc3Njg2N2FlNGZkYzU2MmQ2ZjE1ZGU1ODVlN2I5NGVmNDk2YTM2NzYzNjdhMmNiYWFiN2I2MzY2NDhiMDA3NmJhZDVjZGYxZTA5NzQwZWM2YTQ1MWJmZjUzNGVmYTIxNTA5ZjNiYTc3YjgxMDFiOTFlYTdlNTVkZGJmZTE0MDE1MTcwNjdkN2IwMWEyYTA4NzlmMDg4NWM4OTRhODdjZmI2OGM0ZDdlZTg5MDYwNDg4MWFlYjk3YzIyZDFmMzM3ZWY5MjNlMDM1YTY0MDAiCiAKIFBLQ1M3IFBhcnNlIEZhaWx1cmUgSW52YWxpZCBBU04xOiBDaGFuZ2UgdGFnIDAyIHRvIDA0ICMzMjQuMAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHBrY3M3X2FzbjFfZmFpbDoiMzA4MjAzMjYwNjA5MmE4NjQ4ODZmNzBkMDEwNzAyYTA4MjAzMTczMDgyMDMxMzA0MDEwMTMxMGYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBiMDYwOTJhODY0ODg2ZjcwZDAxMDcwMTMxODIwMmVlMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDViZWNkODcxOTVjMWRlZmY5MGMyNGM5MTI2OWI1NWIzZjA2OWJjMjI1YzMyNmMzMTRjMWE1MTc4NmZmZTE0YzgzMGJlNGU0YmM3M2NiYTM2Yzk3Njc3YjQ0MTY4Mjc5YmU5MWU3Y2RmN2MxOTM4NmFlMjE4NjI3MTlkMTNhM2EwZmZmMDgwM2Q0NjA5NjJmMmNkYTgzNzE0ODQ4NzMyNTJjM2Q3MDU0ZGI4MTQzZTJiMDgxYTM4MTZlZDA4MDRjYTUwOTlhZTVmZWNlODNkNWMyYzM3ODNiMTk4OGI0YjQ2ZGM5NGU1NTU4N2ExMDdlYTE1NDZiZjIyZDI4YTA5N2Y2NTJhNDA2NmRjMjk2NTI2OTA2OWFmMmY1MTc2YmI4Y2U5Y2E2ZDExZjk2NzU3ZjAzMjA0Zjc1NjcwMzU4N2QwMGFkNDI0Nzk2YzkyZmM3YWViNmY0OTQ0MzE5OTllZGEzMDk5MGU0ZjU3NzM2MzJlZDI1OGZlMDI3NjY3MzU5OWRhNmZjZTM1Y2RhZDc3MjZhMGJiMDI0Y2FkOTk2Yjg4ZTBjYjk4ODU0Y2ViNWMwYjZlYzc0OGQ5ZjljZTZhNmNkNDM3ODU4YmFjYjgxNDYxOGEyNzJmZjNhNDE1YzZlMDdmM2RiMDk4ODc3N2ZkZWM4NDVhOTdiZjdkMTAyZGQwMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMyMDIxNDU2NGQ1NTQwMjVhZjU5OWUzMjcwNzliMjcyMGVmMDBkZjM3Y2ZiN2MzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDA0NjA5OGRjNWYyYjk5ZTNiYzJlZDY2NDJkN2YwYTYxZWZhYmMxNWMzOGM3NjMzM2JjY2NlZWVlMzY5YTRmNGE1YmRkYThlYTU5MjY0MTI0ZTQyOWYwODYzMjY4M2RkYmExN2JiZjI2MmQ4MmI2YmVmYTNiNGUxNDgwMzc2YThjN2YzYzdkN2UyYTY3NzliYmYxODI2MmFhODU3ZGU4YzIwYTEyYjZhMmNlOGU0ZDdmMzFkZDFiMTk1MzkyY2Y2MTg1YWZjZTM0YWZlMDU4OTYwNTdiMzZlOWIxNzFiNmM2N2VkN2MyMjg2Y2JmYTgzZmY4YTE2N2M3YmM3MTA5YWVlN2Q3ZTE5MDliZDM4NGZiZmM2MTkzOGVmY2E1MWM4OTkzYzcxZGIzMTc3MzBmMTZlN2U3NzY4NjdhZTRmZGM1NjJkNmYxNWRlNTg1ZTdiOTRlZjQ5NmEzNjc2MzY3YTJjYmFhYjdiNjM2NjQ4YjAwNzZiYWQ1Y2RmMWUwOTc0MGVjNmE0NTFiZmY1MzRlZmEyMTUwOWYzYmE3N2I4MTAxYjkxZWE3ZTU1ZGRiZmUxNDAxNTE3MDY3ZDdiMDFhMmEwODc5ZjA4ODVjODk0YTg3Y2ZiNjhjNGQ3ZWU4OTA2MDQ4ODFhZWI5N2MyMmQxZjMzN2VmOTIzZTAzNWE2NDAwIgogCiBQS0NTNyBQYXJzZSBGYWlsdXJlIEludmFsaWQgQVNOMTogQ2hhbmdlIGxlbmd0aCBmcm9tIDEgdG8gMiAjMzI1LjAKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBwa2NzN19hc24xX2ZhaWw6IjMwODIwMzI2MDYwOTJhODY0ODg2ZjcwZDAxMDcwMmEwODIwMzE3MzA4MjAzMTMwMjAyMDEzMTBmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwYjA2MDkyYTg2NDg4NmY3MGQwMTA3MDEzMTgyMDJlZTMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTAyMTQ3YmRlZGRkMjQ0NGNkMWNkZmU1YzQxYTgxMDJjODliN2RmMmU2Y2JmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDA1YmVjZDg3MTk1YzFkZWZmOTBjMjRjOTEyNjliNTViM2YwNjliYzIyNWMzMjZjMzE0YzFhNTE3ODZmZmUxNGM4MzBiZTRlNGJjNzNjYmEzNmM5NzY3N2I0NDE2ODI3OWJlOTFlN2NkZjdjMTkzODZhZTIxODYyNzE5ZDEzYTNhMGZmZjA4MDNkNDYwOTYyZjJjZGE4MzcxNDg0ODczMjUyYzNkNzA1NGRiODE0M2UyYjA4MWEzODE2ZWQwODA0Y2E1MDk5YWU1ZmVjZTgzZDVjMmMzNzgzYjE5ODhiNGI0NmRjOTRlNTU1ODdhMTA3ZWExNTQ2YmYyMmQyOGEwOTdmNjUyYTQwNjZkYzI5NjUyNjkwNjlhZjJmNTE3NmJiOGNlOWNhNmQxMWY5Njc1N2YwMzIwNGY3NTY3MDM1ODdkMDBhZDQyNDc5NmM5MmZjN2FlYjZmNDk0NDMxOTk5ZWRhMzA5OTBlNGY1NzczNjMyZWQyNThmZTAyNzY2NzM1OTlkYTZmY2UzNWNkYWQ3NzI2YTBiYjAyNGNhZDk5NmI4OGUwY2I5ODg1NGNlYjVjMGI2ZWM3NDhkOWY5Y2U2YTZjZDQzNzg1OGJhY2I4MTQ2MThhMjcyZmYzYTQxNWM2ZTA3ZjNkYjA5ODg3NzdmZGVjODQ1YTk3YmY3ZDEwMmRkMDMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMjAyMTQ1NjRkNTU0MDI1YWY1OTllMzI3MDc5YjI3MjBlZjAwZGYzN2NmYjdjMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDAwNDYwOThkYzVmMmI5OWUzYmMyZWQ2NjQyZDdmMGE2MWVmYWJjMTVjMzhjNzYzMzNiY2NjZWVlZTM2OWE0ZjRhNWJkZGE4ZWE1OTI2NDEyNGU0MjlmMDg2MzI2ODNkZGJhMTdiYmYyNjJkODJiNmJlZmEzYjRlMTQ4MDM3NmE4YzdmM2M3ZDdlMmE2Nzc5YmJmMTgyNjJhYTg1N2RlOGMyMGExMmI2YTJjZThlNGQ3ZjMxZGQxYjE5NTM5MmNmNjE4NWFmY2UzNGFmZTA1ODk2MDU3YjM2ZTliMTcxYjZjNjdlZDdjMjI4NmNiZmE4M2ZmOGExNjdjN2JjNzEwOWFlZTdkN2UxOTA5YmQzODRmYmZjNjE5MzhlZmNhNTFjODk5M2M3MWRiMzE3NzMwZjE2ZTdlNzc2ODY3YWU0ZmRjNTYyZDZmMTVkZTU4NWU3Yjk0ZWY0OTZhMzY3NjM2N2EyY2JhYWI3YjYzNjY0OGIwMDc2YmFkNWNkZjFlMDk3NDBlYzZhNDUxYmZmNTM0ZWZhMjE1MDlmM2JhNzdiODEwMWI5MWVhN2U1NWRkYmZlMTQwMTUxNzA2N2Q3YjAxYTJhMDg3OWYwODg1Yzg5NGE4N2NmYjY4YzRkN2VlODkwNjA0ODgxYWViOTdjMjJkMWYzMzdlZjkyM2UwMzVhNjQwMCIKIAogUEtDUzcgUGFyc2UgRmFpbHVyZSBJbnZhbGlkIEFTTjE6IENoYW5nZSBsZW5ndGggZnJvbSAxIHRvIDAgIzMyNi4wCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NgogcGtjczdfYXNuMV9mYWlsOiIzMDgyMDMyNjA2MDkyYTg2NDg4NmY3MGQwMTA3MDJhMDgyMDMxNzMwODIwMzEzMDIwMDAxMzEwZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGIwNjA5MmE4NjQ4ODZmNzBkMDEwNzAxMzE4MjAyZWUzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwNWJlY2Q4NzE5NWMxZGVmZjkwYzI0YzkxMjY5YjU1YjNmMDY5YmMyMjVjMzI2YzMxNGMxYTUxNzg2ZmZlMTRjODMwYmU0ZTRiYzczY2JhMzZjOTc2NzdiNDQxNjgyNzliZTkxZTdjZGY3YzE5Mzg2YWUyMTg2MjcxOWQxM2EzYTBmZmYwODAzZDQ2MDk2MmYyY2RhODM3MTQ4NDg3MzI1MmMzZDcwNTRkYjgxNDNlMmIwODFhMzgxNmVkMDgwNGNhNTA5OWFlNWZlY2U4M2Q1YzJjMzc4M2IxOTg4YjRiNDZkYzk0ZTU1NTg3YTEwN2VhMTU0NmJmMjJkMjhhMDk3ZjY1MmE0MDY2ZGMyOTY1MjY5MDY5YWYyZjUxNzZiYjhjZTljYTZkMTFmOTY3NTdmMDMyMDRmNzU2NzAzNTg3ZDAwYWQ0MjQ3OTZjOTJmYzdhZWI2ZjQ5NDQzMTk5OWVkYTMwOTkwZTRmNTc3MzYzMmVkMjU4ZmUwMjc2NjczNTk5ZGE2ZmNlMzVjZGFkNzcyNmEwYmIwMjRjYWQ5OTZiODhlMGNiOTg4NTRjZWI1YzBiNmVjNzQ4ZDlmOWNlNmE2Y2Q0Mzc4NThiYWNiODE0NjE4YTI3MmZmM2E0MTVjNmUwN2YzZGIwOTg4Nzc3ZmRlYzg0NWE5N2JmN2QxMDJkZDAzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzIwMjE0NTY0ZDU1NDAyNWFmNTk5ZTMyNzA3OWIyNzIwZWYwMGRmMzdjZmI3YzMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwMDQ2MDk4ZGM1ZjJiOTllM2JjMmVkNjY0MmQ3ZjBhNjFlZmFiYzE1YzM4Yzc2MzMzYmNjY2VlZWUzNjlhNGY0YTViZGRhOGVhNTkyNjQxMjRlNDI5ZjA4NjMyNjgzZGRiYTE3YmJmMjYyZDgyYjZiZWZhM2I0ZTE0ODAzNzZhOGM3ZjNjN2Q3ZTJhNjc3OWJiZjE4MjYyYWE4NTdkZThjMjBhMTJiNmEyY2U4ZTRkN2YzMWRkMWIxOTUzOTJjZjYxODVhZmNlMzRhZmUwNTg5NjA1N2IzNmU5YjE3MWI2YzY3ZWQ3YzIyODZjYmZhODNmZjhhMTY3YzdiYzcxMDlhZWU3ZDdlMTkwOWJkMzg0ZmJmYzYxOTM4ZWZjYTUxYzg5OTNjNzFkYjMxNzczMGYxNmU3ZTc3Njg2N2FlNGZkYzU2MmQ2ZjE1ZGU1ODVlN2I5NGVmNDk2YTM2NzYzNjdhMmNiYWFiN2I2MzY2NDhiMDA3NmJhZDVjZGYxZTA5NzQwZWM2YTQ1MWJmZjUzNGVmYTIxNTA5ZjNiYTc3YjgxMDFiOTFlYTdlNTVkZGJmZTE0MDE1MTcwNjdkN2IwMWEyYTA4NzlmMDg4NWM4OTRhODdjZmI2OGM0ZDdlZTg5MDYwNDg4MWFlYjk3YzIyZDFmMzM3ZWY5MjNlMDM1YTY0MDAiCiAKIFBLQ1M3IFBhcnNlIEZhaWx1cmUgSW52YWxpZCBBU04xOiBDaGFuZ2UgdGFnIDMxIHRvIDAyICMzMjcuMAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHBrY3M3X2FzbjFfZmFpbDoiMzA4MjAzMjYwNjA5MmE4NjQ4ODZmNzBkMDEwNzAyYTA4MjAzMTczMDgyMDMxMzAyMDEwMTAyMGYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBiMDYwOTJhODY0ODg2ZjcwZDAxMDcwMTMxODIwMmVlMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDViZWNkODcxOTVjMWRlZmY5MGMyNGM5MTI2OWI1NWIzZjA2OWJjMjI1YzMyNmMzMTRjMWE1MTc4NmZmZTE0YzgzMGJlNGU0YmM3M2NiYTM2Yzk3Njc3YjQ0MTY4Mjc5YmU5MWU3Y2RmN2MxOTM4NmFlMjE4NjI3MTlkMTNhM2EwZmZmMDgwM2Q0NjA5NjJmMmNkYTgzNzE0ODQ4NzMyNTJjM2Q3MDU0ZGI4MTQzZTJiMDgxYTM4MTZlZDA4MDRjYTUwOTlhZTVmZWNlODNkNWMyYzM3ODNiMTk4OGI0YjQ2ZGM5NGU1NTU4N2ExMDdlYTE1NDZiZjIyZDI4YTA5N2Y2NTJhNDA2NmRjMjk2NTI2OTA2OWFmMmY1MTc2YmI4Y2U5Y2E2ZDExZjk2NzU3ZjAzMjA0Zjc1NjcwMzU4N2QwMGFkNDI0Nzk2YzkyZmM3YWViNmY0OTQ0MzE5OTllZGEzMDk5MGU0ZjU3NzM2MzJlZDI1OGZlMDI3NjY3MzU5OWRhNmZjZTM1Y2RhZDc3MjZhMGJiMDI0Y2FkOTk2Yjg4ZTBjYjk4ODU0Y2ViNWMwYjZlYzc0OGQ5ZjljZTZhNmNkNDM3ODU4YmFjYjgxNDYxOGEyNzJmZjNhNDE1YzZlMDdmM2RiMDk4ODc3N2ZkZWM4NDVhOTdiZjdkMTAyZGQwMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMyMDIxNDU2NGQ1NTQwMjVhZjU5OWUzMjcwNzliMjcyMGVmMDBkZjM3Y2ZiN2MzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDA0NjA5OGRjNWYyYjk5ZTNiYzJlZDY2NDJkN2YwYTYxZWZhYmMxNWMzOGM3NjMzM2JjY2NlZWVlMzY5YTRmNGE1YmRkYThlYTU5MjY0MTI0ZTQyOWYwODYzMjY4M2RkYmExN2JiZjI2MmQ4MmI2YmVmYTNiNGUxNDgwMzc2YThjN2YzYzdkN2UyYTY3NzliYmYxODI2MmFhODU3ZGU4YzIwYTEyYjZhMmNlOGU0ZDdmMzFkZDFiMTk1MzkyY2Y2MTg1YWZjZTM0YWZlMDU4OTYwNTdiMzZlOWIxNzFiNmM2N2VkN2MyMjg2Y2JmYTgzZmY4YTE2N2M3YmM3MTA5YWVlN2Q3ZTE5MDliZDM4NGZiZmM2MTkzOGVmY2E1MWM4OTkzYzcxZGIzMTc3MzBmMTZlN2U3NzY4NjdhZTRmZGM1NjJkNmYxNWRlNTg1ZTdiOTRlZjQ5NmEzNjc2MzY3YTJjYmFhYjdiNjM2NjQ4YjAwNzZiYWQ1Y2RmMWUwOTc0MGVjNmE0NTFiZmY1MzRlZmEyMTUwOWYzYmE3N2I4MTAxYjkxZWE3ZTU1ZGRiZmUxNDAxNTE3MDY3ZDdiMDFhMmEwODc5ZjA4ODVjODk0YTg3Y2ZiNjhjNGQ3ZWU4OTA2MDQ4ODFhZWI5N2MyMmQxZjMzN2VmOTIzZTAzNWE2NDAwIgogCiBQS0NTNyBQYXJzZSBGYWlsdXJlIEludmFsaWQgQVNOMTogQ2hhbmdlIGxlbmd0aCBmcm9tIDE1IHRvIDE2ICMzMjguMAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHBrY3M3X2FzbjFfZmFpbDoiMzA4MjAzMjYwNjA5MmE4NjQ4ODZmNzBkMDEwNzAyYTA4MjAzMTczMDgyMDMxMzAyMDEwMTMxMTAzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBiMDYwOTJhODY0ODg2ZjcwZDAxMDcwMTMxODIwMmVlMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDViZWNkODcxOTVjMWRlZmY5MGMyNGM5MTI2OWI1NWIzZjA2OWJjMjI1YzMyNmMzMTRjMWE1MTc4NmZmZTE0YzgzMGJlNGU0YmM3M2NiYTM2Yzk3Njc3YjQ0MTY4Mjc5YmU5MWU3Y2RmN2MxOTM4NmFlMjE4NjI3MTlkMTNhM2EwZmZmMDgwM2Q0NjA5NjJmMmNkYTgzNzE0ODQ4NzMyNTJjM2Q3MDU0ZGI4MTQzZTJiMDgxYTM4MTZlZDA4MDRjYTUwOTlhZTVmZWNlODNkNWMyYzM3ODNiMTk4OGI0YjQ2ZGM5NGU1NTU4N2ExMDdlYTE1NDZiZjIyZDI4YTA5N2Y2NTJhNDA2NmRjMjk2NTI2OTA2OWFmMmY1MTc2YmI4Y2U5Y2E2ZDExZjk2NzU3ZjAzMjA0Zjc1NjcwMzU4N2QwMGFkNDI0Nzk2YzkyZmM3YWViNmY0OTQ0MzE5OTllZGEzMDk5MGU0ZjU3NzM2MzJlZDI1OGZlMDI3NjY3MzU5OWRhNmZjZTM1Y2RhZDc3MjZhMGJiMDI0Y2FkOTk2Yjg4ZTBjYjk4ODU0Y2ViNWMwYjZlYzc0OGQ5ZjljZTZhNmNkNDM3ODU4YmFjYjgxNDYxOGEyNzJmZjNhNDE1YzZlMDdmM2RiMDk4ODc3N2ZkZWM4NDVhOTdiZjdkMTAyZGQwMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMyMDIxNDU2NGQ1NTQwMjVhZjU5OWUzMjcwNzliMjcyMGVmMDBkZjM3Y2ZiN2MzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDA0NjA5OGRjNWYyYjk5ZTNiYzJlZDY2NDJkN2YwYTYxZWZhYmMxNWMzOGM3NjMzM2JjY2NlZWVlMzY5YTRmNGE1YmRkYThlYTU5MjY0MTI0ZTQyOWYwODYzMjY4M2RkYmExN2JiZjI2MmQ4MmI2YmVmYTNiNGUxNDgwMzc2YThjN2YzYzdkN2UyYTY3NzliYmYxODI2MmFhODU3ZGU4YzIwYTEyYjZhMmNlOGU0ZDdmMzFkZDFiMTk1MzkyY2Y2MTg1YWZjZTM0YWZlMDU4OTYwNTdiMzZlOWIxNzFiNmM2N2VkN2MyMjg2Y2JmYTgzZmY4YTE2N2M3YmM3MTA5YWVlN2Q3ZTE5MDliZDM4NGZiZmM2MTkzOGVmY2E1MWM4OTkzYzcxZGIzMTc3MzBmMTZlN2U3NzY4NjdhZTRmZGM1NjJkNmYxNWRlNTg1ZTdiOTRlZjQ5NmEzNjc2MzY3YTJjYmFhYjdiNjM2NjQ4YjAwNzZiYWQ1Y2RmMWUwOTc0MGVjNmE0NTFiZmY1MzRlZmEyMTUwOWYzYmE3N2I4MTAxYjkxZWE3ZTU1ZGRiZmUxNDAxNTE3MDY3ZDdiMDFhMmEwODc5ZjA4ODVjODk0YTg3Y2ZiNjhjNGQ3ZWU4OTA2MDQ4ODFhZWI5N2MyMmQxZjMzN2VmOTIzZTAzNWE2NDAwIgogCiBQS0NTNyBQYXJzZSBGYWlsdXJlIEludmFsaWQgQVNOMTogQ2hhbmdlIGNvbnRlbnRzIG9mIHRhZyAzMSB0byBjb250YWluIG9uZSB1bmFjY291bnRlZCBleHRyYSBieXRlICMzMjkuMAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHBrY3M3X2FzbjFfZmFpbDoiMzA4MjAzMjYwNjA5MmE4NjQ4ODZmNzBkMDEwNzAyYTA4MjAzMTczMDgyMDMxMzAyMDEwMTMxMTAzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAwMDMwMGIwNjA5MmE4NjQ4ODZmNzBkMDEwNzAxMzE4MjAyZWUzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwNWJlY2Q4NzE5NWMxZGVmZjkwYzI0YzkxMjY5YjU1YjNmMDY5YmMyMjVjMzI2YzMxNGMxYTUxNzg2ZmZlMTRjODMwYmU0ZTRiYzczY2JhMzZjOTc2NzdiNDQxNjgyNzliZTkxZTdjZGY3YzE5Mzg2YWUyMTg2MjcxOWQxM2EzYTBmZmYwODAzZDQ2MDk2MmYyY2RhODM3MTQ4NDg3MzI1MmMzZDcwNTRkYjgxNDNlMmIwODFhMzgxNmVkMDgwNGNhNTA5OWFlNWZlY2U4M2Q1YzJjMzc4M2IxOTg4YjRiNDZkYzk0ZTU1NTg3YTEwN2VhMTU0NmJmMjJkMjhhMDk3ZjY1MmE0MDY2ZGMyOTY1MjY5MDY5YWYyZjUxNzZiYjhjZTljYTZkMTFmOTY3NTdmMDMyMDRmNzU2NzAzNTg3ZDAwYWQ0MjQ3OTZjOTJmYzdhZWI2ZjQ5NDQzMTk5OWVkYTMwOTkwZTRmNTc3MzYzMmVkMjU4ZmUwMjc2NjczNTk5ZGE2ZmNlMzVjZGFkNzcyNmEwYmIwMjRjYWQ5OTZiODhlMGNiOTg4NTRjZWI1YzBiNmVjNzQ4ZDlmOWNlNmE2Y2Q0Mzc4NThiYWNiODE0NjE4YTI3MmZmM2E0MTVjNmUwN2YzZGIwOTg4Nzc3ZmRlYzg0NWE5N2JmN2QxMDJkZDAzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzIwMjE0NTY0ZDU1NDAyNWFmNTk5ZTMyNzA3OWIyNzIwZWYwMGRmMzdjZmI3YzMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwMDQ2MDk4ZGM1ZjJiOTllM2JjMmVkNjY0MmQ3ZjBhNjFlZmFiYzE1YzM4Yzc2MzMzYmNjY2VlZWUzNjlhNGY0YTViZGRhOGVhNTkyNjQxMjRlNDI5ZjA4NjMyNjgzZGRiYTE3YmJmMjYyZDgyYjZiZWZhM2I0ZTE0ODAzNzZhOGM3ZjNjN2Q3ZTJhNjc3OWJiZjE4MjYyYWE4NTdkZThjMjBhMTJiNmEyY2U4ZTRkN2YzMWRkMWIxOTUzOTJjZjYxODVhZmNlMzRhZmUwNTg5NjA1N2IzNmU5YjE3MWI2YzY3ZWQ3YzIyODZjYmZhODNmZjhhMTY3YzdiYzcxMDlhZWU3ZDdlMTkwOWJkMzg0ZmJmYzYxOTM4ZWZjYTUxYzg5OTNjNzFkYjMxNzczMGYxNmU3ZTc3Njg2N2FlNGZkYzU2MmQ2ZjE1ZGU1ODVlN2I5NGVmNDk2YTM2NzYzNjdhMmNiYWFiN2I2MzY2NDhiMDA3NmJhZDVjZGYxZTA5NzQwZWM2YTQ1MWJmZjUzNGVmYTIxNTA5ZjNiYTc3YjgxMDFiOTFlYTdlNTVkZGJmZTE0MDE1MTcwNjdkN2IwMWEyYTA4NzlmMDg4NWM4OTRhODdjZmI2OGM0ZDdlZTg5MDYwNDg4MWFlYjk3YzIyZDFmMzM3ZWY5MjNlMDM1YTY0MDAiCiAKIFBLQ1M3IFBhcnNlIEZhaWx1cmUgSW52YWxpZCBBU04xOiBDaGFuZ2UgbGVuZ3RoIGZyb20gMTUgdG8gMTQgIzMzMC4wCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NgogcGtjczdfYXNuMV9mYWlsOiIzMDgyMDMyNjA2MDkyYTg2NDg4NmY3MGQwMTA3MDJhMDgyMDMxNzMwODIwMzEzMDIwMTAxMzEwZTMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGIwNjA5MmE4NjQ4ODZmNzBkMDEwNzAxMzE4MjAyZWUzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwNWJlY2Q4NzE5NWMxZGVmZjkwYzI0YzkxMjY5YjU1YjNmMDY5YmMyMjVjMzI2YzMxNGMxYTUxNzg2ZmZlMTRjODMwYmU0ZTRiYzczY2JhMzZjOTc2NzdiNDQxNjgyNzliZTkxZTdjZGY3YzE5Mzg2YWUyMTg2MjcxOWQxM2EzYTBmZmYwODAzZDQ2MDk2MmYyY2RhODM3MTQ4NDg3MzI1MmMzZDcwNTRkYjgxNDNlMmIwODFhMzgxNmVkMDgwNGNhNTA5OWFlNWZlY2U4M2Q1YzJjMzc4M2IxOTg4YjRiNDZkYzk0ZTU1NTg3YTEwN2VhMTU0NmJmMjJkMjhhMDk3ZjY1MmE0MDY2ZGMyOTY1MjY5MDY5YWYyZjUxNzZiYjhjZTljYTZkMTFmOTY3NTdmMDMyMDRmNzU2NzAzNTg3ZDAwYWQ0MjQ3OTZjOTJmYzdhZWI2ZjQ5NDQzMTk5OWVkYTMwOTkwZTRmNTc3MzYzMmVkMjU4ZmUwMjc2NjczNTk5ZGE2ZmNlMzVjZGFkNzcyNmEwYmIwMjRjYWQ5OTZiODhlMGNiOTg4NTRjZWI1YzBiNmVjNzQ4ZDlmOWNlNmE2Y2Q0Mzc4NThiYWNiODE0NjE4YTI3MmZmM2E0MTVjNmUwN2YzZGIwOTg4Nzc3ZmRlYzg0NWE5N2JmN2QxMDJkZDAzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzIwMjE0NTY0ZDU1NDAyNWFmNTk5ZTMyNzA3OWIyNzIwZWYwMGRmMzdjZmI3YzMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwMDQ2MDk4ZGM1ZjJiOTllM2JjMmVkNjY0MmQ3ZjBhNjFlZmFiYzE1YzM4Yzc2MzMzYmNjY2VlZWUzNjlhNGY0YTViZGRhOGVhNTkyNjQxMjRlNDI5ZjA4NjMyNjgzZGRiYTE3YmJmMjYyZDgyYjZiZWZhM2I0ZTE0ODAzNzZhOGM3ZjNjN2Q3ZTJhNjc3OWJiZjE4MjYyYWE4NTdkZThjMjBhMTJiNmEyY2U4ZTRkN2YzMWRkMWIxOTUzOTJjZjYxODVhZmNlMzRhZmUwNTg5NjA1N2IzNmU5YjE3MWI2YzY3ZWQ3YzIyODZjYmZhODNmZjhhMTY3YzdiYzcxMDlhZWU3ZDdlMTkwOWJkMzg0ZmJmYzYxOTM4ZWZjYTUxYzg5OTNjNzFkYjMxNzczMGYxNmU3ZTc3Njg2N2FlNGZkYzU2MmQ2ZjE1ZGU1ODVlN2I5NGVmNDk2YTM2NzYzNjdhMmNiYWFiN2I2MzY2NDhiMDA3NmJhZDVjZGYxZTA5NzQwZWM2YTQ1MWJmZjUzNGVmYTIxNTA5ZjNiYTc3YjgxMDFiOTFlYTdlNTVkZGJmZTE0MDE1MTcwNjdkN2IwMWEyYTA4NzlmMDg4NWM4OTRhODdjZmI2OGM0ZDdlZTg5MDYwNDg4MWFlYjk3YzIyZDFmMzM3ZWY5MjNlMDM1YTY0MDAiCiAKIFBLQ1M3IFBhcnNlIEZhaWx1cmUgSW52YWxpZCBBU04xOiBDaGFuZ2UgdGFnIDMwIHRvIDAyICMzMzEuMAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHBrY3M3X2FzbjFfZmFpbDoiMzA4MjAzMjYwNjA5MmE4NjQ4ODZmNzBkMDEwNzAyYTA4MjAzMTczMDgyMDMxMzAyMDEwMTMxMGYwMjBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBiMDYwOTJhODY0ODg2ZjcwZDAxMDcwMTMxODIwMmVlMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDViZWNkODcxOTVjMWRlZmY5MGMyNGM5MTI2OWI1NWIzZjA2OWJjMjI1YzMyNmMzMTRjMWE1MTc4NmZmZTE0YzgzMGJlNGU0YmM3M2NiYTM2Yzk3Njc3YjQ0MTY4Mjc5YmU5MWU3Y2RmN2MxOTM4NmFlMjE4NjI3MTlkMTNhM2EwZmZmMDgwM2Q0NjA5NjJmMmNkYTgzNzE0ODQ4NzMyNTJjM2Q3MDU0ZGI4MTQzZTJiMDgxYTM4MTZlZDA4MDRjYTUwOTlhZTVmZWNlODNkNWMyYzM3ODNiMTk4OGI0YjQ2ZGM5NGU1NTU4N2ExMDdlYTE1NDZiZjIyZDI4YTA5N2Y2NTJhNDA2NmRjMjk2NTI2OTA2OWFmMmY1MTc2YmI4Y2U5Y2E2ZDExZjk2NzU3ZjAzMjA0Zjc1NjcwMzU4N2QwMGFkNDI0Nzk2YzkyZmM3YWViNmY0OTQ0MzE5OTllZGEzMDk5MGU0ZjU3NzM2MzJlZDI1OGZlMDI3NjY3MzU5OWRhNmZjZTM1Y2RhZDc3MjZhMGJiMDI0Y2FkOTk2Yjg4ZTBjYjk4ODU0Y2ViNWMwYjZlYzc0OGQ5ZjljZTZhNmNkNDM3ODU4YmFjYjgxNDYxOGEyNzJmZjNhNDE1YzZlMDdmM2RiMDk4ODc3N2ZkZWM4NDVhOTdiZjdkMTAyZGQwMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMyMDIxNDU2NGQ1NTQwMjVhZjU5OWUzMjcwNzliMjcyMGVmMDBkZjM3Y2ZiN2MzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDA0NjA5OGRjNWYyYjk5ZTNiYzJlZDY2NDJkN2YwYTYxZWZhYmMxNWMzOGM3NjMzM2JjY2NlZWVlMzY5YTRmNGE1YmRkYThlYTU5MjY0MTI0ZTQyOWYwODYzMjY4M2RkYmExN2JiZjI2MmQ4MmI2YmVmYTNiNGUxNDgwMzc2YThjN2YzYzdkN2UyYTY3NzliYmYxODI2MmFhODU3ZGU4YzIwYTEyYjZhMmNlOGU0ZDdmMzFkZDFiMTk1MzkyY2Y2MTg1YWZjZTM0YWZlMDU4OTYwNTdiMzZlOWIxNzFiNmM2N2VkN2MyMjg2Y2JmYTgzZmY4YTE2N2M3YmM3MTA5YWVlN2Q3ZTE5MDliZDM4NGZiZmM2MTkzOGVmY2E1MWM4OTkzYzcxZGIzMTc3MzBmMTZlN2U3NzY4NjdhZTRmZGM1NjJkNmYxNWRlNTg1ZTdiOTRlZjQ5NmEzNjc2MzY3YTJjYmFhYjdiNjM2NjQ4YjAwNzZiYWQ1Y2RmMWUwOTc0MGVjNmE0NTFiZmY1MzRlZmEyMTUwOWYzYmE3N2I4MTAxYjkxZWE3ZTU1ZGRiZmUxNDAxNTE3MDY3ZDdiMDFhMmEwODc5ZjA4ODVjODk0YTg3Y2ZiNjhjNGQ3ZWU4OTA2MDQ4ODFhZWI5N2MyMmQxZjMzN2VmOTIzZTAzNWE2NDAwIgogCiBQS0NTNyBQYXJzZSBGYWlsdXJlIEludmFsaWQgQVNOMTogQ2hhbmdlIGxlbmd0aCBmcm9tIDEzIHRvIDE0ICMzMzIuMAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHBrY3M3X2FzbjFfZmFpbDoiMzA4MjAzMjYwNjA5MmE4NjQ4ODZmNzBkMDEwNzAyYTA4MjAzMTczMDgyMDMxMzAyMDEwMTMxMGYzMDBlMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBiMDYwOTJhODY0ODg2ZjcwZDAxMDcwMTMxODIwMmVlMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDViZWNkODcxOTVjMWRlZmY5MGMyNGM5MTI2OWI1NWIzZjA2OWJjMjI1YzMyNmMzMTRjMWE1MTc4NmZmZTE0YzgzMGJlNGU0YmM3M2NiYTM2Yzk3Njc3YjQ0MTY4Mjc5YmU5MWU3Y2RmN2MxOTM4NmFlMjE4NjI3MTlkMTNhM2EwZmZmMDgwM2Q0NjA5NjJmMmNkYTgzNzE0ODQ4NzMyNTJjM2Q3MDU0ZGI4MTQzZTJiMDgxYTM4MTZlZDA4MDRjYTUwOTlhZTVmZWNlODNkNWMyYzM3ODNiMTk4OGI0YjQ2ZGM5NGU1NTU4N2ExMDdlYTE1NDZiZjIyZDI4YTA5N2Y2NTJhNDA2NmRjMjk2NTI2OTA2OWFmMmY1MTc2YmI4Y2U5Y2E2ZDExZjk2NzU3ZjAzMjA0Zjc1NjcwMzU4N2QwMGFkNDI0Nzk2YzkyZmM3YWViNmY0OTQ0MzE5OTllZGEzMDk5MGU0ZjU3NzM2MzJlZDI1OGZlMDI3NjY3MzU5OWRhNmZjZTM1Y2RhZDc3MjZhMGJiMDI0Y2FkOTk2Yjg4ZTBjYjk4ODU0Y2ViNWMwYjZlYzc0OGQ5ZjljZTZhNmNkNDM3ODU4YmFjYjgxNDYxOGEyNzJmZjNhNDE1YzZlMDdmM2RiMDk4ODc3N2ZkZWM4NDVhOTdiZjdkMTAyZGQwMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMyMDIxNDU2NGQ1NTQwMjVhZjU5OWUzMjcwNzliMjcyMGVmMDBkZjM3Y2ZiN2MzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDA0NjA5OGRjNWYyYjk5ZTNiYzJlZDY2NDJkN2YwYTYxZWZhYmMxNWMzOGM3NjMzM2JjY2NlZWVlMzY5YTRmNGE1YmRkYThlYTU5MjY0MTI0ZTQyOWYwODYzMjY4M2RkYmExN2JiZjI2MmQ4MmI2YmVmYTNiNGUxNDgwMzc2YThjN2YzYzdkN2UyYTY3NzliYmYxODI2MmFhODU3ZGU4YzIwYTEyYjZhMmNlOGU0ZDdmMzFkZDFiMTk1MzkyY2Y2MTg1YWZjZTM0YWZlMDU4OTYwNTdiMzZlOWIxNzFiNmM2N2VkN2MyMjg2Y2JmYTgzZmY4YTE2N2M3YmM3MTA5YWVlN2Q3ZTE5MDliZDM4NGZiZmM2MTkzOGVmY2E1MWM4OTkzYzcxZGIzMTc3MzBmMTZlN2U3NzY4NjdhZTRmZGM1NjJkNmYxNWRlNTg1ZTdiOTRlZjQ5NmEzNjc2MzY3YTJjYmFhYjdiNjM2NjQ4YjAwNzZiYWQ1Y2RmMWUwOTc0MGVjNmE0NTFiZmY1MzRlZmEyMTUwOWYzYmE3N2I4MTAxYjkxZWE3ZTU1ZGRiZmUxNDAxNTE3MDY3ZDdiMDFhMmEwODc5ZjA4ODVjODk0YTg3Y2ZiNjhjNGQ3ZWU4OTA2MDQ4ODFhZWI5N2MyMmQxZjMzN2VmOTIzZTAzNWE2NDAwIgogCiBQS0NTNyBQYXJzZSBGYWlsdXJlIEludmFsaWQgQVNOMTogQ2hhbmdlIGNvbnRlbnRzIG9mIHRhZyAzMCB0byBjb250YWluIG9uZSB1bmFjY291bnRlZCBleHRyYSBieXRlICMzMzMuMAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHBrY3M3X2FzbjFfZmFpbDoiMzA4MjAzMjYwNjA5MmE4NjQ4ODZmNzBkMDEwNzAyYTA4MjAzMTczMDgyMDMxMzAyMDEwMTMxMGYzMDBlMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAwMDMwMGIwNjA5MmE4NjQ4ODZmNzBkMDEwNzAxMzE4MjAyZWUzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwNWJlY2Q4NzE5NWMxZGVmZjkwYzI0YzkxMjY5YjU1YjNmMDY5YmMyMjVjMzI2YzMxNGMxYTUxNzg2ZmZlMTRjODMwYmU0ZTRiYzczY2JhMzZjOTc2NzdiNDQxNjgyNzliZTkxZTdjZGY3YzE5Mzg2YWUyMTg2MjcxOWQxM2EzYTBmZmYwODAzZDQ2MDk2MmYyY2RhODM3MTQ4NDg3MzI1MmMzZDcwNTRkYjgxNDNlMmIwODFhMzgxNmVkMDgwNGNhNTA5OWFlNWZlY2U4M2Q1YzJjMzc4M2IxOTg4YjRiNDZkYzk0ZTU1NTg3YTEwN2VhMTU0NmJmMjJkMjhhMDk3ZjY1MmE0MDY2ZGMyOTY1MjY5MDY5YWYyZjUxNzZiYjhjZTljYTZkMTFmOTY3NTdmMDMyMDRmNzU2NzAzNTg3ZDAwYWQ0MjQ3OTZjOTJmYzdhZWI2ZjQ5NDQzMTk5OWVkYTMwOTkwZTRmNTc3MzYzMmVkMjU4ZmUwMjc2NjczNTk5ZGE2ZmNlMzVjZGFkNzcyNmEwYmIwMjRjYWQ5OTZiODhlMGNiOTg4NTRjZWI1YzBiNmVjNzQ4ZDlmOWNlNmE2Y2Q0Mzc4NThiYWNiODE0NjE4YTI3MmZmM2E0MTVjNmUwN2YzZGIwOTg4Nzc3ZmRlYzg0NWE5N2JmN2QxMDJkZDAzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzIwMjE0NTY0ZDU1NDAyNWFmNTk5ZTMyNzA3OWIyNzIwZWYwMGRmMzdjZmI3YzMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwMDQ2MDk4ZGM1ZjJiOTllM2JjMmVkNjY0MmQ3ZjBhNjFlZmFiYzE1YzM4Yzc2MzMzYmNjY2VlZWUzNjlhNGY0YTViZGRhOGVhNTkyNjQxMjRlNDI5ZjA4NjMyNjgzZGRiYTE3YmJmMjYyZDgyYjZiZWZhM2I0ZTE0ODAzNzZhOGM3ZjNjN2Q3ZTJhNjc3OWJiZjE4MjYyYWE4NTdkZThjMjBhMTJiNmEyY2U4ZTRkN2YzMWRkMWIxOTUzOTJjZjYxODVhZmNlMzRhZmUwNTg5NjA1N2IzNmU5YjE3MWI2YzY3ZWQ3YzIyODZjYmZhODNmZjhhMTY3YzdiYzcxMDlhZWU3ZDdlMTkwOWJkMzg0ZmJmYzYxOTM4ZWZjYTUxYzg5OTNjNzFkYjMxNzczMGYxNmU3ZTc3Njg2N2FlNGZkYzU2MmQ2ZjE1ZGU1ODVlN2I5NGVmNDk2YTM2NzYzNjdhMmNiYWFiN2I2MzY2NDhiMDA3NmJhZDVjZGYxZTA5NzQwZWM2YTQ1MWJmZjUzNGVmYTIxNTA5ZjNiYTc3YjgxMDFiOTFlYTdlNTVkZGJmZTE0MDE1MTcwNjdkN2IwMWEyYTA4NzlmMDg4NWM4OTRhODdjZmI2OGM0ZDdlZTg5MDYwNDg4MWFlYjk3YzIyZDFmMzM3ZWY5MjNlMDM1YTY0MDAiCiAKIFBLQ1M3IFBhcnNlIEZhaWx1cmUgSW52YWxpZCBBU04xOiBDaGFuZ2UgbGVuZ3RoIGZyb20gMTMgdG8gMTIgIzMzNC4wCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NgogcGtjczdfYXNuMV9mYWlsOiIzMDgyMDMyNjA2MDkyYTg2NDg4NmY3MGQwMTA3MDJhMDgyMDMxNzMwODIwMzEzMDIwMTAxMzEwZjMwMGMwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGIwNjA5MmE4NjQ4ODZmNzBkMDEwNzAxMzE4MjAyZWUzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwNWJlY2Q4NzE5NWMxZGVmZjkwYzI0YzkxMjY5YjU1YjNmMDY5YmMyMjVjMzI2YzMxNGMxYTUxNzg2ZmZlMTRjODMwYmU0ZTRiYzczY2JhMzZjOTc2NzdiNDQxNjgyNzliZTkxZTdjZGY3YzE5Mzg2YWUyMTg2MjcxOWQxM2EzYTBmZmYwODAzZDQ2MDk2MmYyY2RhODM3MTQ4NDg3MzI1MmMzZDcwNTRkYjgxNDNlMmIwODFhMzgxNmVkMDgwNGNhNTA5OWFlNWZlY2U4M2Q1YzJjMzc4M2IxOTg4YjRiNDZkYzk0ZTU1NTg3YTEwN2VhMTU0NmJmMjJkMjhhMDk3ZjY1MmE0MDY2ZGMyOTY1MjY5MDY5YWYyZjUxNzZiYjhjZTljYTZkMTFmOTY3NTdmMDMyMDRmNzU2NzAzNTg3ZDAwYWQ0MjQ3OTZjOTJmYzdhZWI2ZjQ5NDQzMTk5OWVkYTMwOTkwZTRmNTc3MzYzMmVkMjU4ZmUwMjc2NjczNTk5ZGE2ZmNlMzVjZGFkNzcyNmEwYmIwMjRjYWQ5OTZiODhlMGNiOTg4NTRjZWI1YzBiNmVjNzQ4ZDlmOWNlNmE2Y2Q0Mzc4NThiYWNiODE0NjE4YTI3MmZmM2E0MTVjNmUwN2YzZGIwOTg4Nzc3ZmRlYzg0NWE5N2JmN2QxMDJkZDAzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzIwMjE0NTY0ZDU1NDAyNWFmNTk5ZTMyNzA3OWIyNzIwZWYwMGRmMzdjZmI3YzMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwMDQ2MDk4ZGM1ZjJiOTllM2JjMmVkNjY0MmQ3ZjBhNjFlZmFiYzE1YzM4Yzc2MzMzYmNjY2VlZWUzNjlhNGY0YTViZGRhOGVhNTkyNjQxMjRlNDI5ZjA4NjMyNjgzZGRiYTE3YmJmMjYyZDgyYjZiZWZhM2I0ZTE0ODAzNzZhOGM3ZjNjN2Q3ZTJhNjc3OWJiZjE4MjYyYWE4NTdkZThjMjBhMTJiNmEyY2U4ZTRkN2YzMWRkMWIxOTUzOTJjZjYxODVhZmNlMzRhZmUwNTg5NjA1N2IzNmU5YjE3MWI2YzY3ZWQ3YzIyODZjYmZhODNmZjhhMTY3YzdiYzcxMDlhZWU3ZDdlMTkwOWJkMzg0ZmJmYzYxOTM4ZWZjYTUxYzg5OTNjNzFkYjMxNzczMGYxNmU3ZTc3Njg2N2FlNGZkYzU2MmQ2ZjE1ZGU1ODVlN2I5NGVmNDk2YTM2NzYzNjdhMmNiYWFiN2I2MzY2NDhiMDA3NmJhZDVjZGYxZTA5NzQwZWM2YTQ1MWJmZjUzNGVmYTIxNTA5ZjNiYTc3YjgxMDFiOTFlYTdlNTVkZGJmZTE0MDE1MTcwNjdkN2IwMWEyYTA4NzlmMDg4NWM4OTRhODdjZmI2OGM0ZDdlZTg5MDYwNDg4MWFlYjk3YzIyZDFmMzM3ZWY5MjNlMDM1YTY0MDAiCiAKIFBLQ1M3IFBhcnNlIEZhaWx1cmUgSW52YWxpZCBBU04xOiBDaGFuZ2UgdGFnIDA2IHRvIDAyICMzMzUuMAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHBrY3M3X2FzbjFfZmFpbDoiMzA4MjAzMjYwNjA5MmE4NjQ4ODZmNzBkMDEwNzAyYTA4MjAzMTczMDgyMDMxMzAyMDEwMTMxMGYzMDBkMDIwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBiMDYwOTJhODY0ODg2ZjcwZDAxMDcwMTMxODIwMmVlMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDViZWNkODcxOTVjMWRlZmY5MGMyNGM5MTI2OWI1NWIzZjA2OWJjMjI1YzMyNmMzMTRjMWE1MTc4NmZmZTE0YzgzMGJlNGU0YmM3M2NiYTM2Yzk3Njc3YjQ0MTY4Mjc5YmU5MWU3Y2RmN2MxOTM4NmFlMjE4NjI3MTlkMTNhM2EwZmZmMDgwM2Q0NjA5NjJmMmNkYTgzNzE0ODQ4NzMyNTJjM2Q3MDU0ZGI4MTQzZTJiMDgxYTM4MTZlZDA4MDRjYTUwOTlhZTVmZWNlODNkNWMyYzM3ODNiMTk4OGI0YjQ2ZGM5NGU1NTU4N2ExMDdlYTE1NDZiZjIyZDI4YTA5N2Y2NTJhNDA2NmRjMjk2NTI2OTA2OWFmMmY1MTc2YmI4Y2U5Y2E2ZDExZjk2NzU3ZjAzMjA0Zjc1NjcwMzU4N2QwMGFkNDI0Nzk2YzkyZmM3YWViNmY0OTQ0MzE5OTllZGEzMDk5MGU0ZjU3NzM2MzJlZDI1OGZlMDI3NjY3MzU5OWRhNmZjZTM1Y2RhZDc3MjZhMGJiMDI0Y2FkOTk2Yjg4ZTBjYjk4ODU0Y2ViNWMwYjZlYzc0OGQ5ZjljZTZhNmNkNDM3ODU4YmFjYjgxNDYxOGEyNzJmZjNhNDE1YzZlMDdmM2RiMDk4ODc3N2ZkZWM4NDVhOTdiZjdkMTAyZGQwMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMyMDIxNDU2NGQ1NTQwMjVhZjU5OWUzMjcwNzliMjcyMGVmMDBkZjM3Y2ZiN2MzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDA0NjA5OGRjNWYyYjk5ZTNiYzJlZDY2NDJkN2YwYTYxZWZhYmMxNWMzOGM3NjMzM2JjY2NlZWVlMzY5YTRmNGE1YmRkYThlYTU5MjY0MTI0ZTQyOWYwODYzMjY4M2RkYmExN2JiZjI2MmQ4MmI2YmVmYTNiNGUxNDgwMzc2YThjN2YzYzdkN2UyYTY3NzliYmYxODI2MmFhODU3ZGU4YzIwYTEyYjZhMmNlOGU0ZDdmMzFkZDFiMTk1MzkyY2Y2MTg1YWZjZTM0YWZlMDU4OTYwNTdiMzZlOWIxNzFiNmM2N2VkN2MyMjg2Y2JmYTgzZmY4YTE2N2M3YmM3MTA5YWVlN2Q3ZTE5MDliZDM4NGZiZmM2MTkzOGVmY2E1MWM4OTkzYzcxZGIzMTc3MzBmMTZlN2U3NzY4NjdhZTRmZGM1NjJkNmYxNWRlNTg1ZTdiOTRlZjQ5NmEzNjc2MzY3YTJjYmFhYjdiNjM2NjQ4YjAwNzZiYWQ1Y2RmMWUwOTc0MGVjNmE0NTFiZmY1MzRlZmEyMTUwOWYzYmE3N2I4MTAxYjkxZWE3ZTU1ZGRiZmUxNDAxNTE3MDY3ZDdiMDFhMmEwODc5ZjA4ODVjODk0YTg3Y2ZiNjhjNGQ3ZWU4OTA2MDQ4ODFhZWI5N2MyMmQxZjMzN2VmOTIzZTAzNWE2NDAwIgogCiBQS0NTNyBQYXJzZSBGYWlsdXJlIEludmFsaWQgQVNOMTogQ2hhbmdlIGxlbmd0aCBmcm9tIDkgdG8gMTAgIzMzNi4wCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NgogcGtjczdfYXNuMV9mYWlsOiIzMDgyMDMyNjA2MDkyYTg2NDg4NmY3MGQwMTA3MDJhMDgyMDMxNzMwODIwMzEzMDIwMTAxMzEwZjMwMGQwNjBhNjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGIwNjA5MmE4NjQ4ODZmNzBkMDEwNzAxMzE4MjAyZWUzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwNWJlY2Q4NzE5NWMxZGVmZjkwYzI0YzkxMjY5YjU1YjNmMDY5YmMyMjVjMzI2YzMxNGMxYTUxNzg2ZmZlMTRjODMwYmU0ZTRiYzczY2JhMzZjOTc2NzdiNDQxNjgyNzliZTkxZTdjZGY3YzE5Mzg2YWUyMTg2MjcxOWQxM2EzYTBmZmYwODAzZDQ2MDk2MmYyY2RhODM3MTQ4NDg3MzI1MmMzZDcwNTRkYjgxNDNlMmIwODFhMzgxNmVkMDgwNGNhNTA5OWFlNWZlY2U4M2Q1YzJjMzc4M2IxOTg4YjRiNDZkYzk0ZTU1NTg3YTEwN2VhMTU0NmJmMjJkMjhhMDk3ZjY1MmE0MDY2ZGMyOTY1MjY5MDY5YWYyZjUxNzZiYjhjZTljYTZkMTFmOTY3NTdmMDMyMDRmNzU2NzAzNTg3ZDAwYWQ0MjQ3OTZjOTJmYzdhZWI2ZjQ5NDQzMTk5OWVkYTMwOTkwZTRmNTc3MzYzMmVkMjU4ZmUwMjc2NjczNTk5ZGE2ZmNlMzVjZGFkNzcyNmEwYmIwMjRjYWQ5OTZiODhlMGNiOTg4NTRjZWI1YzBiNmVjNzQ4ZDlmOWNlNmE2Y2Q0Mzc4NThiYWNiODE0NjE4YTI3MmZmM2E0MTVjNmUwN2YzZGIwOTg4Nzc3ZmRlYzg0NWE5N2JmN2QxMDJkZDAzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzIwMjE0NTY0ZDU1NDAyNWFmNTk5ZTMyNzA3OWIyNzIwZWYwMGRmMzdjZmI3YzMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwMDQ2MDk4ZGM1ZjJiOTllM2JjMmVkNjY0MmQ3ZjBhNjFlZmFiYzE1YzM4Yzc2MzMzYmNjY2VlZWUzNjlhNGY0YTViZGRhOGVhNTkyNjQxMjRlNDI5ZjA4NjMyNjgzZGRiYTE3YmJmMjYyZDgyYjZiZWZhM2I0ZTE0ODAzNzZhOGM3ZjNjN2Q3ZTJhNjc3OWJiZjE4MjYyYWE4NTdkZThjMjBhMTJiNmEyY2U4ZTRkN2YzMWRkMWIxOTUzOTJjZjYxODVhZmNlMzRhZmUwNTg5NjA1N2IzNmU5YjE3MWI2YzY3ZWQ3YzIyODZjYmZhODNmZjhhMTY3YzdiYzcxMDlhZWU3ZDdlMTkwOWJkMzg0ZmJmYzYxOTM4ZWZjYTUxYzg5OTNjNzFkYjMxNzczMGYxNmU3ZTc3Njg2N2FlNGZkYzU2MmQ2ZjE1ZGU1ODVlN2I5NGVmNDk2YTM2NzYzNjdhMmNiYWFiN2I2MzY2NDhiMDA3NmJhZDVjZGYxZTA5NzQwZWM2YTQ1MWJmZjUzNGVmYTIxNTA5ZjNiYTc3YjgxMDFiOTFlYTdlNTVkZGJmZTE0MDE1MTcwNjdkN2IwMWEyYTA4NzlmMDg4NWM4OTRhODdjZmI2OGM0ZDdlZTg5MDYwNDg4MWFlYjk3YzIyZDFmMzM3ZWY5MjNlMDM1YTY0MDAiCiAKIFBLQ1M3IFBhcnNlIEZhaWx1cmUgSW52YWxpZCBBU04xOiBDaGFuZ2UgbGVuZ3RoIGZyb20gOSB0byA4ICMzMzcuMAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHBrY3M3X2FzbjFfZmFpbDoiMzA4MjAzMjYwNjA5MmE4NjQ4ODZmNzBkMDEwNzAyYTA4MjAzMTczMDgyMDMxMzAyMDEwMTMxMGYzMDBkMDYwODYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBiMDYwOTJhODY0ODg2ZjcwZDAxMDcwMTMxODIwMmVlMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDViZWNkODcxOTVjMWRlZmY5MGMyNGM5MTI2OWI1NWIzZjA2OWJjMjI1YzMyNmMzMTRjMWE1MTc4NmZmZTE0YzgzMGJlNGU0YmM3M2NiYTM2Yzk3Njc3YjQ0MTY4Mjc5YmU5MWU3Y2RmN2MxOTM4NmFlMjE4NjI3MTlkMTNhM2EwZmZmMDgwM2Q0NjA5NjJmMmNkYTgzNzE0ODQ4NzMyNTJjM2Q3MDU0ZGI4MTQzZTJiMDgxYTM4MTZlZDA4MDRjYTUwOTlhZTVmZWNlODNkNWMyYzM3ODNiMTk4OGI0YjQ2ZGM5NGU1NTU4N2ExMDdlYTE1NDZiZjIyZDI4YTA5N2Y2NTJhNDA2NmRjMjk2NTI2OTA2OWFmMmY1MTc2YmI4Y2U5Y2E2ZDExZjk2NzU3ZjAzMjA0Zjc1NjcwMzU4N2QwMGFkNDI0Nzk2YzkyZmM3YWViNmY0OTQ0MzE5OTllZGEzMDk5MGU0ZjU3NzM2MzJlZDI1OGZlMDI3NjY3MzU5OWRhNmZjZTM1Y2RhZDc3MjZhMGJiMDI0Y2FkOTk2Yjg4ZTBjYjk4ODU0Y2ViNWMwYjZlYzc0OGQ5ZjljZTZhNmNkNDM3ODU4YmFjYjgxNDYxOGEyNzJmZjNhNDE1YzZlMDdmM2RiMDk4ODc3N2ZkZWM4NDVhOTdiZjdkMTAyZGQwMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMyMDIxNDU2NGQ1NTQwMjVhZjU5OWUzMjcwNzliMjcyMGVmMDBkZjM3Y2ZiN2MzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDA0NjA5OGRjNWYyYjk5ZTNiYzJlZDY2NDJkN2YwYTYxZWZhYmMxNWMzOGM3NjMzM2JjY2NlZWVlMzY5YTRmNGE1YmRkYThlYTU5MjY0MTI0ZTQyOWYwODYzMjY4M2RkYmExN2JiZjI2MmQ4MmI2YmVmYTNiNGUxNDgwMzc2YThjN2YzYzdkN2UyYTY3NzliYmYxODI2MmFhODU3ZGU4YzIwYTEyYjZhMmNlOGU0ZDdmMzFkZDFiMTk1MzkyY2Y2MTg1YWZjZTM0YWZlMDU4OTYwNTdiMzZlOWIxNzFiNmM2N2VkN2MyMjg2Y2JmYTgzZmY4YTE2N2M3YmM3MTA5YWVlN2Q3ZTE5MDliZDM4NGZiZmM2MTkzOGVmY2E1MWM4OTkzYzcxZGIzMTc3MzBmMTZlN2U3NzY4NjdhZTRmZGM1NjJkNmYxNWRlNTg1ZTdiOTRlZjQ5NmEzNjc2MzY3YTJjYmFhYjdiNjM2NjQ4YjAwNzZiYWQ1Y2RmMWUwOTc0MGVjNmE0NTFiZmY1MzRlZmEyMTUwOWYzYmE3N2I4MTAxYjkxZWE3ZTU1ZGRiZmUxNDAxNTE3MDY3ZDdiMDFhMmEwODc5ZjA4ODVjODk0YTg3Y2ZiNjhjNGQ3ZWU4OTA2MDQ4ODFhZWI5N2MyMmQxZjMzN2VmOTIzZTAzNWE2NDAwIgogCiBQS0NTNyBQYXJzZSBGYWlsdXJlIEludmFsaWQgQVNOMTogQ2hhbmdlIHRhZyAwNSB0byAwMiAjMzM4LjAKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBwa2NzN19hc24xX2ZhaWw6IjMwODIwMzI2MDYwOTJhODY0ODg2ZjcwZDAxMDcwMmEwODIwMzE3MzA4MjAzMTMwMjAxMDEzMTBmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwMjAwMzAwYjA2MDkyYTg2NDg4NmY3MGQwMTA3MDEzMTgyMDJlZTMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTAyMTQ3YmRlZGRkMjQ0NGNkMWNkZmU1YzQxYTgxMDJjODliN2RmMmU2Y2JmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDA1YmVjZDg3MTk1YzFkZWZmOTBjMjRjOTEyNjliNTViM2YwNjliYzIyNWMzMjZjMzE0YzFhNTE3ODZmZmUxNGM4MzBiZTRlNGJjNzNjYmEzNmM5NzY3N2I0NDE2ODI3OWJlOTFlN2NkZjdjMTkzODZhZTIxODYyNzE5ZDEzYTNhMGZmZjA4MDNkNDYwOTYyZjJjZGE4MzcxNDg0ODczMjUyYzNkNzA1NGRiODE0M2UyYjA4MWEzODE2ZWQwODA0Y2E1MDk5YWU1ZmVjZTgzZDVjMmMzNzgzYjE5ODhiNGI0NmRjOTRlNTU1ODdhMTA3ZWExNTQ2YmYyMmQyOGEwOTdmNjUyYTQwNjZkYzI5NjUyNjkwNjlhZjJmNTE3NmJiOGNlOWNhNmQxMWY5Njc1N2YwMzIwNGY3NTY3MDM1ODdkMDBhZDQyNDc5NmM5MmZjN2FlYjZmNDk0NDMxOTk5ZWRhMzA5OTBlNGY1NzczNjMyZWQyNThmZTAyNzY2NzM1OTlkYTZmY2UzNWNkYWQ3NzI2YTBiYjAyNGNhZDk5NmI4OGUwY2I5ODg1NGNlYjVjMGI2ZWM3NDhkOWY5Y2U2YTZjZDQzNzg1OGJhY2I4MTQ2MThhMjcyZmYzYTQxNWM2ZTA3ZjNkYjA5ODg3NzdmZGVjODQ1YTk3YmY3ZDEwMmRkMDMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMjAyMTQ1NjRkNTU0MDI1YWY1OTllMzI3MDc5YjI3MjBlZjAwZGYzN2NmYjdjMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDAwNDYwOThkYzVmMmI5OWUzYmMyZWQ2NjQyZDdmMGE2MWVmYWJjMTVjMzhjNzYzMzNiY2NjZWVlZTM2OWE0ZjRhNWJkZGE4ZWE1OTI2NDEyNGU0MjlmMDg2MzI2ODNkZGJhMTdiYmYyNjJkODJiNmJlZmEzYjRlMTQ4MDM3NmE4YzdmM2M3ZDdlMmE2Nzc5YmJmMTgyNjJhYTg1N2RlOGMyMGExMmI2YTJjZThlNGQ3ZjMxZGQxYjE5NTM5MmNmNjE4NWFmY2UzNGFmZTA1ODk2MDU3YjM2ZTliMTcxYjZjNjdlZDdjMjI4NmNiZmE4M2ZmOGExNjdjN2JjNzEwOWFlZTdkN2UxOTA5YmQzODRmYmZjNjE5MzhlZmNhNTFjODk5M2M3MWRiMzE3NzMwZjE2ZTdlNzc2ODY3YWU0ZmRjNTYyZDZmMTVkZTU4NWU3Yjk0ZWY0OTZhMzY3NjM2N2EyY2JhYWI3YjYzNjY0OGIwMDc2YmFkNWNkZjFlMDk3NDBlYzZhNDUxYmZmNTM0ZWZhMjE1MDlmM2JhNzdiODEwMWI5MWVhN2U1NWRkYmZlMTQwMTUxNzA2N2Q3YjAxYTJhMDg3OWYwODg1Yzg5NGE4N2NmYjY4YzRkN2VlODkwNjA0ODgxYWViOTdjMjJkMWYzMzdlZjkyM2UwMzVhNjQwMCIKIAogUEtDUzcgUGFyc2UgRmFpbHVyZSBJbnZhbGlkIEFTTjE6IENoYW5nZSBsZW5ndGggZnJvbSAwIHRvIDEgIzMzOS4wCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NgogcGtjczdfYXNuMV9mYWlsOiIzMDgyMDMyNjA2MDkyYTg2NDg4NmY3MGQwMTA3MDJhMDgyMDMxNzMwODIwMzEzMDIwMTAxMzEwZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMTMwMGIwNjA5MmE4NjQ4ODZmNzBkMDEwNzAxMzE4MjAyZWUzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwNWJlY2Q4NzE5NWMxZGVmZjkwYzI0YzkxMjY5YjU1YjNmMDY5YmMyMjVjMzI2YzMxNGMxYTUxNzg2ZmZlMTRjODMwYmU0ZTRiYzczY2JhMzZjOTc2NzdiNDQxNjgyNzliZTkxZTdjZGY3YzE5Mzg2YWUyMTg2MjcxOWQxM2EzYTBmZmYwODAzZDQ2MDk2MmYyY2RhODM3MTQ4NDg3MzI1MmMzZDcwNTRkYjgxNDNlMmIwODFhMzgxNmVkMDgwNGNhNTA5OWFlNWZlY2U4M2Q1YzJjMzc4M2IxOTg4YjRiNDZkYzk0ZTU1NTg3YTEwN2VhMTU0NmJmMjJkMjhhMDk3ZjY1MmE0MDY2ZGMyOTY1MjY5MDY5YWYyZjUxNzZiYjhjZTljYTZkMTFmOTY3NTdmMDMyMDRmNzU2NzAzNTg3ZDAwYWQ0MjQ3OTZjOTJmYzdhZWI2ZjQ5NDQzMTk5OWVkYTMwOTkwZTRmNTc3MzYzMmVkMjU4ZmUwMjc2NjczNTk5ZGE2ZmNlMzVjZGFkNzcyNmEwYmIwMjRjYWQ5OTZiODhlMGNiOTg4NTRjZWI1YzBiNmVjNzQ4ZDlmOWNlNmE2Y2Q0Mzc4NThiYWNiODE0NjE4YTI3MmZmM2E0MTVjNmUwN2YzZGIwOTg4Nzc3ZmRlYzg0NWE5N2JmN2QxMDJkZDAzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzIwMjE0NTY0ZDU1NDAyNWFmNTk5ZTMyNzA3OWIyNzIwZWYwMGRmMzdjZmI3YzMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwMDQ2MDk4ZGM1ZjJiOTllM2JjMmVkNjY0MmQ3ZjBhNjFlZmFiYzE1YzM4Yzc2MzMzYmNjY2VlZWUzNjlhNGY0YTViZGRhOGVhNTkyNjQxMjRlNDI5ZjA4NjMyNjgzZGRiYTE3YmJmMjYyZDgyYjZiZWZhM2I0ZTE0ODAzNzZhOGM3ZjNjN2Q3ZTJhNjc3OWJiZjE4MjYyYWE4NTdkZThjMjBhMTJiNmEyY2U4ZTRkN2YzMWRkMWIxOTUzOTJjZjYxODVhZmNlMzRhZmUwNTg5NjA1N2IzNmU5YjE3MWI2YzY3ZWQ3YzIyODZjYmZhODNmZjhhMTY3YzdiYzcxMDlhZWU3ZDdlMTkwOWJkMzg0ZmJmYzYxOTM4ZWZjYTUxYzg5OTNjNzFkYjMxNzczMGYxNmU3ZTc3Njg2N2FlNGZkYzU2MmQ2ZjE1ZGU1ODVlN2I5NGVmNDk2YTM2NzYzNjdhMmNiYWFiN2I2MzY2NDhiMDA3NmJhZDVjZGYxZTA5NzQwZWM2YTQ1MWJmZjUzNGVmYTIxNTA5ZjNiYTc3YjgxMDFiOTFlYTdlNTVkZGJmZTE0MDE1MTcwNjdkN2IwMWEyYTA4NzlmMDg4NWM4OTRhODdjZmI2OGM0ZDdlZTg5MDYwNDg4MWFlYjk3YzIyZDFmMzM3ZWY5MjNlMDM1YTY0MDAiCiAKIFBLQ1M3IFBhcnNlIEZhaWx1cmUgSW52YWxpZCBBU04xOiBDaGFuZ2UgdGFnIDMwIHRvIDAyICMzNDAuMAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHBrY3M3X2FzbjFfZmFpbDoiMzA4MjAzMjYwNjA5MmE4NjQ4ODZmNzBkMDEwNzAyYTA4MjAzMTczMDgyMDMxMzAyMDEwMTMxMGYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAwMjBiMDYwOTJhODY0ODg2ZjcwZDAxMDcwMTMxODIwMmVlMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDViZWNkODcxOTVjMWRlZmY5MGMyNGM5MTI2OWI1NWIzZjA2OWJjMjI1YzMyNmMzMTRjMWE1MTc4NmZmZTE0YzgzMGJlNGU0YmM3M2NiYTM2Yzk3Njc3YjQ0MTY4Mjc5YmU5MWU3Y2RmN2MxOTM4NmFlMjE4NjI3MTlkMTNhM2EwZmZmMDgwM2Q0NjA5NjJmMmNkYTgzNzE0ODQ4NzMyNTJjM2Q3MDU0ZGI4MTQzZTJiMDgxYTM4MTZlZDA4MDRjYTUwOTlhZTVmZWNlODNkNWMyYzM3ODNiMTk4OGI0YjQ2ZGM5NGU1NTU4N2ExMDdlYTE1NDZiZjIyZDI4YTA5N2Y2NTJhNDA2NmRjMjk2NTI2OTA2OWFmMmY1MTc2YmI4Y2U5Y2E2ZDExZjk2NzU3ZjAzMjA0Zjc1NjcwMzU4N2QwMGFkNDI0Nzk2YzkyZmM3YWViNmY0OTQ0MzE5OTllZGEzMDk5MGU0ZjU3NzM2MzJlZDI1OGZlMDI3NjY3MzU5OWRhNmZjZTM1Y2RhZDc3MjZhMGJiMDI0Y2FkOTk2Yjg4ZTBjYjk4ODU0Y2ViNWMwYjZlYzc0OGQ5ZjljZTZhNmNkNDM3ODU4YmFjYjgxNDYxOGEyNzJmZjNhNDE1YzZlMDdmM2RiMDk4ODc3N2ZkZWM4NDVhOTdiZjdkMTAyZGQwMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMyMDIxNDU2NGQ1NTQwMjVhZjU5OWUzMjcwNzliMjcyMGVmMDBkZjM3Y2ZiN2MzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDA0NjA5OGRjNWYyYjk5ZTNiYzJlZDY2NDJkN2YwYTYxZWZhYmMxNWMzOGM3NjMzM2JjY2NlZWVlMzY5YTRmNGE1YmRkYThlYTU5MjY0MTI0ZTQyOWYwODYzMjY4M2RkYmExN2JiZjI2MmQ4MmI2YmVmYTNiNGUxNDgwMzc2YThjN2YzYzdkN2UyYTY3NzliYmYxODI2MmFhODU3ZGU4YzIwYTEyYjZhMmNlOGU0ZDdmMzFkZDFiMTk1MzkyY2Y2MTg1YWZjZTM0YWZlMDU4OTYwNTdiMzZlOWIxNzFiNmM2N2VkN2MyMjg2Y2JmYTgzZmY4YTE2N2M3YmM3MTA5YWVlN2Q3ZTE5MDliZDM4NGZiZmM2MTkzOGVmY2E1MWM4OTkzYzcxZGIzMTc3MzBmMTZlN2U3NzY4NjdhZTRmZGM1NjJkNmYxNWRlNTg1ZTdiOTRlZjQ5NmEzNjc2MzY3YTJjYmFhYjdiNjM2NjQ4YjAwNzZiYWQ1Y2RmMWUwOTc0MGVjNmE0NTFiZmY1MzRlZmEyMTUwOWYzYmE3N2I4MTAxYjkxZWE3ZTU1ZGRiZmUxNDAxNTE3MDY3ZDdiMDFhMmEwODc5ZjA4ODVjODk0YTg3Y2ZiNjhjNGQ3ZWU4OTA2MDQ4ODFhZWI5N2MyMmQxZjMzN2VmOTIzZTAzNWE2NDAwIgogCiBQS0NTNyBQYXJzZSBGYWlsdXJlIEludmFsaWQgQVNOMTogQ2hhbmdlIGxlbmd0aCBmcm9tIDExIHRvIDEyICMzNDEuMAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHBrY3M3X2FzbjFfZmFpbDoiMzA4MjAzMjYwNjA5MmE4NjQ4ODZmNzBkMDEwNzAyYTA4MjAzMTczMDgyMDMxMzAyMDEwMTMxMGYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBjMDYwOTJhODY0ODg2ZjcwZDAxMDcwMTMxODIwMmVlMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDViZWNkODcxOTVjMWRlZmY5MGMyNGM5MTI2OWI1NWIzZjA2OWJjMjI1YzMyNmMzMTRjMWE1MTc4NmZmZTE0YzgzMGJlNGU0YmM3M2NiYTM2Yzk3Njc3YjQ0MTY4Mjc5YmU5MWU3Y2RmN2MxOTM4NmFlMjE4NjI3MTlkMTNhM2EwZmZmMDgwM2Q0NjA5NjJmMmNkYTgzNzE0ODQ4NzMyNTJjM2Q3MDU0ZGI4MTQzZTJiMDgxYTM4MTZlZDA4MDRjYTUwOTlhZTVmZWNlODNkNWMyYzM3ODNiMTk4OGI0YjQ2ZGM5NGU1NTU4N2ExMDdlYTE1NDZiZjIyZDI4YTA5N2Y2NTJhNDA2NmRjMjk2NTI2OTA2OWFmMmY1MTc2YmI4Y2U5Y2E2ZDExZjk2NzU3ZjAzMjA0Zjc1NjcwMzU4N2QwMGFkNDI0Nzk2YzkyZmM3YWViNmY0OTQ0MzE5OTllZGEzMDk5MGU0ZjU3NzM2MzJlZDI1OGZlMDI3NjY3MzU5OWRhNmZjZTM1Y2RhZDc3MjZhMGJiMDI0Y2FkOTk2Yjg4ZTBjYjk4ODU0Y2ViNWMwYjZlYzc0OGQ5ZjljZTZhNmNkNDM3ODU4YmFjYjgxNDYxOGEyNzJmZjNhNDE1YzZlMDdmM2RiMDk4ODc3N2ZkZWM4NDVhOTdiZjdkMTAyZGQwMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMyMDIxNDU2NGQ1NTQwMjVhZjU5OWUzMjcwNzliMjcyMGVmMDBkZjM3Y2ZiN2MzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDA0NjA5OGRjNWYyYjk5ZTNiYzJlZDY2NDJkN2YwYTYxZWZhYmMxNWMzOGM3NjMzM2JjY2NlZWVlMzY5YTRmNGE1YmRkYThlYTU5MjY0MTI0ZTQyOWYwODYzMjY4M2RkYmExN2JiZjI2MmQ4MmI2YmVmYTNiNGUxNDgwMzc2YThjN2YzYzdkN2UyYTY3NzliYmYxODI2MmFhODU3ZGU4YzIwYTEyYjZhMmNlOGU0ZDdmMzFkZDFiMTk1MzkyY2Y2MTg1YWZjZTM0YWZlMDU4OTYwNTdiMzZlOWIxNzFiNmM2N2VkN2MyMjg2Y2JmYTgzZmY4YTE2N2M3YmM3MTA5YWVlN2Q3ZTE5MDliZDM4NGZiZmM2MTkzOGVmY2E1MWM4OTkzYzcxZGIzMTc3MzBmMTZlN2U3NzY4NjdhZTRmZGM1NjJkNmYxNWRlNTg1ZTdiOTRlZjQ5NmEzNjc2MzY3YTJjYmFhYjdiNjM2NjQ4YjAwNzZiYWQ1Y2RmMWUwOTc0MGVjNmE0NTFiZmY1MzRlZmEyMTUwOWYzYmE3N2I4MTAxYjkxZWE3ZTU1ZGRiZmUxNDAxNTE3MDY3ZDdiMDFhMmEwODc5ZjA4ODVjODk0YTg3Y2ZiNjhjNGQ3ZWU4OTA2MDQ4ODFhZWI5N2MyMmQxZjMzN2VmOTIzZTAzNWE2NDAwIgogCiBQS0NTNyBQYXJzZSBGYWlsdXJlIEludmFsaWQgQVNOMTogQ2hhbmdlIGNvbnRlbnRzIG9mIHRhZyAzMCB0byBjb250YWluIG9uZSB1bmFjY291bnRlZCBleHRyYSBieXRlICMzNDIuMAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHBrY3M3X2FzbjFfZmFpbDoiMzA4MjAzMjYwNjA5MmE4NjQ4ODZmNzBkMDEwNzAyYTA4MjAzMTczMDgyMDMxMzAyMDEwMTMxMGYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBjMDYwOTJhODY0ODg2ZjcwZDAxMDcwMTAwMzE4MjAyZWUzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwNWJlY2Q4NzE5NWMxZGVmZjkwYzI0YzkxMjY5YjU1YjNmMDY5YmMyMjVjMzI2YzMxNGMxYTUxNzg2ZmZlMTRjODMwYmU0ZTRiYzczY2JhMzZjOTc2NzdiNDQxNjgyNzliZTkxZTdjZGY3YzE5Mzg2YWUyMTg2MjcxOWQxM2EzYTBmZmYwODAzZDQ2MDk2MmYyY2RhODM3MTQ4NDg3MzI1MmMzZDcwNTRkYjgxNDNlMmIwODFhMzgxNmVkMDgwNGNhNTA5OWFlNWZlY2U4M2Q1YzJjMzc4M2IxOTg4YjRiNDZkYzk0ZTU1NTg3YTEwN2VhMTU0NmJmMjJkMjhhMDk3ZjY1MmE0MDY2ZGMyOTY1MjY5MDY5YWYyZjUxNzZiYjhjZTljYTZkMTFmOTY3NTdmMDMyMDRmNzU2NzAzNTg3ZDAwYWQ0MjQ3OTZjOTJmYzdhZWI2ZjQ5NDQzMTk5OWVkYTMwOTkwZTRmNTc3MzYzMmVkMjU4ZmUwMjc2NjczNTk5ZGE2ZmNlMzVjZGFkNzcyNmEwYmIwMjRjYWQ5OTZiODhlMGNiOTg4NTRjZWI1YzBiNmVjNzQ4ZDlmOWNlNmE2Y2Q0Mzc4NThiYWNiODE0NjE4YTI3MmZmM2E0MTVjNmUwN2YzZGIwOTg4Nzc3ZmRlYzg0NWE5N2JmN2QxMDJkZDAzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzIwMjE0NTY0ZDU1NDAyNWFmNTk5ZTMyNzA3OWIyNzIwZWYwMGRmMzdjZmI3YzMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwMDQ2MDk4ZGM1ZjJiOTllM2JjMmVkNjY0MmQ3ZjBhNjFlZmFiYzE1YzM4Yzc2MzMzYmNjY2VlZWUzNjlhNGY0YTViZGRhOGVhNTkyNjQxMjRlNDI5ZjA4NjMyNjgzZGRiYTE3YmJmMjYyZDgyYjZiZWZhM2I0ZTE0ODAzNzZhOGM3ZjNjN2Q3ZTJhNjc3OWJiZjE4MjYyYWE4NTdkZThjMjBhMTJiNmEyY2U4ZTRkN2YzMWRkMWIxOTUzOTJjZjYxODVhZmNlMzRhZmUwNTg5NjA1N2IzNmU5YjE3MWI2YzY3ZWQ3YzIyODZjYmZhODNmZjhhMTY3YzdiYzcxMDlhZWU3ZDdlMTkwOWJkMzg0ZmJmYzYxOTM4ZWZjYTUxYzg5OTNjNzFkYjMxNzczMGYxNmU3ZTc3Njg2N2FlNGZkYzU2MmQ2ZjE1ZGU1ODVlN2I5NGVmNDk2YTM2NzYzNjdhMmNiYWFiN2I2MzY2NDhiMDA3NmJhZDVjZGYxZTA5NzQwZWM2YTQ1MWJmZjUzNGVmYTIxNTA5ZjNiYTc3YjgxMDFiOTFlYTdlNTVkZGJmZTE0MDE1MTcwNjdkN2IwMWEyYTA4NzlmMDg4NWM4OTRhODdjZmI2OGM0ZDdlZTg5MDYwNDg4MWFlYjk3YzIyZDFmMzM3ZWY5MjNlMDM1YTY0MDAiCiAKIFBLQ1M3IFBhcnNlIEZhaWx1cmUgSW52YWxpZCBBU04xOiBDaGFuZ2UgbGVuZ3RoIGZyb20gMTEgdG8gMTAgIzM0My4wCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NgogcGtjczdfYXNuMV9mYWlsOiIzMDgyMDMyNjA2MDkyYTg2NDg4NmY3MGQwMTA3MDJhMDgyMDMxNzMwODIwMzEzMDIwMTAxMzEwZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGEwNjA5MmE4NjQ4ODZmNzBkMDEwNzAxMzE4MjAyZWUzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwNWJlY2Q4NzE5NWMxZGVmZjkwYzI0YzkxMjY5YjU1YjNmMDY5YmMyMjVjMzI2YzMxNGMxYTUxNzg2ZmZlMTRjODMwYmU0ZTRiYzczY2JhMzZjOTc2NzdiNDQxNjgyNzliZTkxZTdjZGY3YzE5Mzg2YWUyMTg2MjcxOWQxM2EzYTBmZmYwODAzZDQ2MDk2MmYyY2RhODM3MTQ4NDg3MzI1MmMzZDcwNTRkYjgxNDNlMmIwODFhMzgxNmVkMDgwNGNhNTA5OWFlNWZlY2U4M2Q1YzJjMzc4M2IxOTg4YjRiNDZkYzk0ZTU1NTg3YTEwN2VhMTU0NmJmMjJkMjhhMDk3ZjY1MmE0MDY2ZGMyOTY1MjY5MDY5YWYyZjUxNzZiYjhjZTljYTZkMTFmOTY3NTdmMDMyMDRmNzU2NzAzNTg3ZDAwYWQ0MjQ3OTZjOTJmYzdhZWI2ZjQ5NDQzMTk5OWVkYTMwOTkwZTRmNTc3MzYzMmVkMjU4ZmUwMjc2NjczNTk5ZGE2ZmNlMzVjZGFkNzcyNmEwYmIwMjRjYWQ5OTZiODhlMGNiOTg4NTRjZWI1YzBiNmVjNzQ4ZDlmOWNlNmE2Y2Q0Mzc4NThiYWNiODE0NjE4YTI3MmZmM2E0MTVjNmUwN2YzZGIwOTg4Nzc3ZmRlYzg0NWE5N2JmN2QxMDJkZDAzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzIwMjE0NTY0ZDU1NDAyNWFmNTk5ZTMyNzA3OWIyNzIwZWYwMGRmMzdjZmI3YzMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwMDQ2MDk4ZGM1ZjJiOTllM2JjMmVkNjY0MmQ3ZjBhNjFlZmFiYzE1YzM4Yzc2MzMzYmNjY2VlZWUzNjlhNGY0YTViZGRhOGVhNTkyNjQxMjRlNDI5ZjA4NjMyNjgzZGRiYTE3YmJmMjYyZDgyYjZiZWZhM2I0ZTE0ODAzNzZhOGM3ZjNjN2Q3ZTJhNjc3OWJiZjE4MjYyYWE4NTdkZThjMjBhMTJiNmEyY2U4ZTRkN2YzMWRkMWIxOTUzOTJjZjYxODVhZmNlMzRhZmUwNTg5NjA1N2IzNmU5YjE3MWI2YzY3ZWQ3YzIyODZjYmZhODNmZjhhMTY3YzdiYzcxMDlhZWU3ZDdlMTkwOWJkMzg0ZmJmYzYxOTM4ZWZjYTUxYzg5OTNjNzFkYjMxNzczMGYxNmU3ZTc3Njg2N2FlNGZkYzU2MmQ2ZjE1ZGU1ODVlN2I5NGVmNDk2YTM2NzYzNjdhMmNiYWFiN2I2MzY2NDhiMDA3NmJhZDVjZGYxZTA5NzQwZWM2YTQ1MWJmZjUzNGVmYTIxNTA5ZjNiYTc3YjgxMDFiOTFlYTdlNTVkZGJmZTE0MDE1MTcwNjdkN2IwMWEyYTA4NzlmMDg4NWM4OTRhODdjZmI2OGM0ZDdlZTg5MDYwNDg4MWFlYjk3YzIyZDFmMzM3ZWY5MjNlMDM1YTY0MDAiCiAKIFBLQ1M3IFBhcnNlIEZhaWx1cmUgSW52YWxpZCBBU04xOiBDaGFuZ2UgdGFnIDA2IHRvIDAyICMzNDQuMAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHBrY3M3X2FzbjFfZmFpbDoiMzA4MjAzMjYwNjA5MmE4NjQ4ODZmNzBkMDEwNzAyYTA4MjAzMTczMDgyMDMxMzAyMDEwMTMxMGYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBiMDIwOTJhODY0ODg2ZjcwZDAxMDcwMTMxODIwMmVlMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDViZWNkODcxOTVjMWRlZmY5MGMyNGM5MTI2OWI1NWIzZjA2OWJjMjI1YzMyNmMzMTRjMWE1MTc4NmZmZTE0YzgzMGJlNGU0YmM3M2NiYTM2Yzk3Njc3YjQ0MTY4Mjc5YmU5MWU3Y2RmN2MxOTM4NmFlMjE4NjI3MTlkMTNhM2EwZmZmMDgwM2Q0NjA5NjJmMmNkYTgzNzE0ODQ4NzMyNTJjM2Q3MDU0ZGI4MTQzZTJiMDgxYTM4MTZlZDA4MDRjYTUwOTlhZTVmZWNlODNkNWMyYzM3ODNiMTk4OGI0YjQ2ZGM5NGU1NTU4N2ExMDdlYTE1NDZiZjIyZDI4YTA5N2Y2NTJhNDA2NmRjMjk2NTI2OTA2OWFmMmY1MTc2YmI4Y2U5Y2E2ZDExZjk2NzU3ZjAzMjA0Zjc1NjcwMzU4N2QwMGFkNDI0Nzk2YzkyZmM3YWViNmY0OTQ0MzE5OTllZGEzMDk5MGU0ZjU3NzM2MzJlZDI1OGZlMDI3NjY3MzU5OWRhNmZjZTM1Y2RhZDc3MjZhMGJiMDI0Y2FkOTk2Yjg4ZTBjYjk4ODU0Y2ViNWMwYjZlYzc0OGQ5ZjljZTZhNmNkNDM3ODU4YmFjYjgxNDYxOGEyNzJmZjNhNDE1YzZlMDdmM2RiMDk4ODc3N2ZkZWM4NDVhOTdiZjdkMTAyZGQwMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMyMDIxNDU2NGQ1NTQwMjVhZjU5OWUzMjcwNzliMjcyMGVmMDBkZjM3Y2ZiN2MzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDA0NjA5OGRjNWYyYjk5ZTNiYzJlZDY2NDJkN2YwYTYxZWZhYmMxNWMzOGM3NjMzM2JjY2NlZWVlMzY5YTRmNGE1YmRkYThlYTU5MjY0MTI0ZTQyOWYwODYzMjY4M2RkYmExN2JiZjI2MmQ4MmI2YmVmYTNiNGUxNDgwMzc2YThjN2YzYzdkN2UyYTY3NzliYmYxODI2MmFhODU3ZGU4YzIwYTEyYjZhMmNlOGU0ZDdmMzFkZDFiMTk1MzkyY2Y2MTg1YWZjZTM0YWZlMDU4OTYwNTdiMzZlOWIxNzFiNmM2N2VkN2MyMjg2Y2JmYTgzZmY4YTE2N2M3YmM3MTA5YWVlN2Q3ZTE5MDliZDM4NGZiZmM2MTkzOGVmY2E1MWM4OTkzYzcxZGIzMTc3MzBmMTZlN2U3NzY4NjdhZTRmZGM1NjJkNmYxNWRlNTg1ZTdiOTRlZjQ5NmEzNjc2MzY3YTJjYmFhYjdiNjM2NjQ4YjAwNzZiYWQ1Y2RmMWUwOTc0MGVjNmE0NTFiZmY1MzRlZmEyMTUwOWYzYmE3N2I4MTAxYjkxZWE3ZTU1ZGRiZmUxNDAxNTE3MDY3ZDdiMDFhMmEwODc5ZjA4ODVjODk0YTg3Y2ZiNjhjNGQ3ZWU4OTA2MDQ4ODFhZWI5N2MyMmQxZjMzN2VmOTIzZTAzNWE2NDAwIgogCiBQS0NTNyBQYXJzZSBGYWlsdXJlIEludmFsaWQgQVNOMTogQ2hhbmdlIGxlbmd0aCBmcm9tIDkgdG8gMTAgIzM0NS4wCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NgogcGtjczdfYXNuMV9mYWlsOiIzMDgyMDMyNjA2MDkyYTg2NDg4NmY3MGQwMTA3MDJhMDgyMDMxNzMwODIwMzEzMDIwMTAxMzEwZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGIwNjBhMmE4NjQ4ODZmNzBkMDEwNzAxMzE4MjAyZWUzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwNWJlY2Q4NzE5NWMxZGVmZjkwYzI0YzkxMjY5YjU1YjNmMDY5YmMyMjVjMzI2YzMxNGMxYTUxNzg2ZmZlMTRjODMwYmU0ZTRiYzczY2JhMzZjOTc2NzdiNDQxNjgyNzliZTkxZTdjZGY3YzE5Mzg2YWUyMTg2MjcxOWQxM2EzYTBmZmYwODAzZDQ2MDk2MmYyY2RhODM3MTQ4NDg3MzI1MmMzZDcwNTRkYjgxNDNlMmIwODFhMzgxNmVkMDgwNGNhNTA5OWFlNWZlY2U4M2Q1YzJjMzc4M2IxOTg4YjRiNDZkYzk0ZTU1NTg3YTEwN2VhMTU0NmJmMjJkMjhhMDk3ZjY1MmE0MDY2ZGMyOTY1MjY5MDY5YWYyZjUxNzZiYjhjZTljYTZkMTFmOTY3NTdmMDMyMDRmNzU2NzAzNTg3ZDAwYWQ0MjQ3OTZjOTJmYzdhZWI2ZjQ5NDQzMTk5OWVkYTMwOTkwZTRmNTc3MzYzMmVkMjU4ZmUwMjc2NjczNTk5ZGE2ZmNlMzVjZGFkNzcyNmEwYmIwMjRjYWQ5OTZiODhlMGNiOTg4NTRjZWI1YzBiNmVjNzQ4ZDlmOWNlNmE2Y2Q0Mzc4NThiYWNiODE0NjE4YTI3MmZmM2E0MTVjNmUwN2YzZGIwOTg4Nzc3ZmRlYzg0NWE5N2JmN2QxMDJkZDAzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzIwMjE0NTY0ZDU1NDAyNWFmNTk5ZTMyNzA3OWIyNzIwZWYwMGRmMzdjZmI3YzMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwMDQ2MDk4ZGM1ZjJiOTllM2JjMmVkNjY0MmQ3ZjBhNjFlZmFiYzE1YzM4Yzc2MzMzYmNjY2VlZWUzNjlhNGY0YTViZGRhOGVhNTkyNjQxMjRlNDI5ZjA4NjMyNjgzZGRiYTE3YmJmMjYyZDgyYjZiZWZhM2I0ZTE0ODAzNzZhOGM3ZjNjN2Q3ZTJhNjc3OWJiZjE4MjYyYWE4NTdkZThjMjBhMTJiNmEyY2U4ZTRkN2YzMWRkMWIxOTUzOTJjZjYxODVhZmNlMzRhZmUwNTg5NjA1N2IzNmU5YjE3MWI2YzY3ZWQ3YzIyODZjYmZhODNmZjhhMTY3YzdiYzcxMDlhZWU3ZDdlMTkwOWJkMzg0ZmJmYzYxOTM4ZWZjYTUxYzg5OTNjNzFkYjMxNzczMGYxNmU3ZTc3Njg2N2FlNGZkYzU2MmQ2ZjE1ZGU1ODVlN2I5NGVmNDk2YTM2NzYzNjdhMmNiYWFiN2I2MzY2NDhiMDA3NmJhZDVjZGYxZTA5NzQwZWM2YTQ1MWJmZjUzNGVmYTIxNTA5ZjNiYTc3YjgxMDFiOTFlYTdlNTVkZGJmZTE0MDE1MTcwNjdkN2IwMWEyYTA4NzlmMDg4NWM4OTRhODdjZmI2OGM0ZDdlZTg5MDYwNDg4MWFlYjk3YzIyZDFmMzM3ZWY5MjNlMDM1YTY0MDAiCiAKIFBLQ1M3IFBhcnNlIEZhaWx1cmUgSW52YWxpZCBBU04xOiBDaGFuZ2UgbGVuZ3RoIGZyb20gOSB0byA4ICMzNDYuMAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHBrY3M3X2FzbjFfZmFpbDoiMzA4MjAzMjYwNjA5MmE4NjQ4ODZmNzBkMDEwNzAyYTA4MjAzMTczMDgyMDMxMzAyMDEwMTMxMGYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBiMDYwODJhODY0ODg2ZjcwZDAxMDcwMTMxODIwMmVlMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDViZWNkODcxOTVjMWRlZmY5MGMyNGM5MTI2OWI1NWIzZjA2OWJjMjI1YzMyNmMzMTRjMWE1MTc4NmZmZTE0YzgzMGJlNGU0YmM3M2NiYTM2Yzk3Njc3YjQ0MTY4Mjc5YmU5MWU3Y2RmN2MxOTM4NmFlMjE4NjI3MTlkMTNhM2EwZmZmMDgwM2Q0NjA5NjJmMmNkYTgzNzE0ODQ4NzMyNTJjM2Q3MDU0ZGI4MTQzZTJiMDgxYTM4MTZlZDA4MDRjYTUwOTlhZTVmZWNlODNkNWMyYzM3ODNiMTk4OGI0YjQ2ZGM5NGU1NTU4N2ExMDdlYTE1NDZiZjIyZDI4YTA5N2Y2NTJhNDA2NmRjMjk2NTI2OTA2OWFmMmY1MTc2YmI4Y2U5Y2E2ZDExZjk2NzU3ZjAzMjA0Zjc1NjcwMzU4N2QwMGFkNDI0Nzk2YzkyZmM3YWViNmY0OTQ0MzE5OTllZGEzMDk5MGU0ZjU3NzM2MzJlZDI1OGZlMDI3NjY3MzU5OWRhNmZjZTM1Y2RhZDc3MjZhMGJiMDI0Y2FkOTk2Yjg4ZTBjYjk4ODU0Y2ViNWMwYjZlYzc0OGQ5ZjljZTZhNmNkNDM3ODU4YmFjYjgxNDYxOGEyNzJmZjNhNDE1YzZlMDdmM2RiMDk4ODc3N2ZkZWM4NDVhOTdiZjdkMTAyZGQwMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMyMDIxNDU2NGQ1NTQwMjVhZjU5OWUzMjcwNzliMjcyMGVmMDBkZjM3Y2ZiN2MzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDA0NjA5OGRjNWYyYjk5ZTNiYzJlZDY2NDJkN2YwYTYxZWZhYmMxNWMzOGM3NjMzM2JjY2NlZWVlMzY5YTRmNGE1YmRkYThlYTU5MjY0MTI0ZTQyOWYwODYzMjY4M2RkYmExN2JiZjI2MmQ4MmI2YmVmYTNiNGUxNDgwMzc2YThjN2YzYzdkN2UyYTY3NzliYmYxODI2MmFhODU3ZGU4YzIwYTEyYjZhMmNlOGU0ZDdmMzFkZDFiMTk1MzkyY2Y2MTg1YWZjZTM0YWZlMDU4OTYwNTdiMzZlOWIxNzFiNmM2N2VkN2MyMjg2Y2JmYTgzZmY4YTE2N2M3YmM3MTA5YWVlN2Q3ZTE5MDliZDM4NGZiZmM2MTkzOGVmY2E1MWM4OTkzYzcxZGIzMTc3MzBmMTZlN2U3NzY4NjdhZTRmZGM1NjJkNmYxNWRlNTg1ZTdiOTRlZjQ5NmEzNjc2MzY3YTJjYmFhYjdiNjM2NjQ4YjAwNzZiYWQ1Y2RmMWUwOTc0MGVjNmE0NTFiZmY1MzRlZmEyMTUwOWYzYmE3N2I4MTAxYjkxZWE3ZTU1ZGRiZmUxNDAxNTE3MDY3ZDdiMDFhMmEwODc5ZjA4ODVjODk0YTg3Y2ZiNjhjNGQ3ZWU4OTA2MDQ4ODFhZWI5N2MyMmQxZjMzN2VmOTIzZTAzNWE2NDAwIgogCiBQS0NTNyBQYXJzZSBGYWlsdXJlIEludmFsaWQgQVNOMTogQ2hhbmdlIHRhZyAzMSB0byAwMiAjMzQ3LjAKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBwa2NzN19hc24xX2ZhaWw6IjMwODIwMzI2MDYwOTJhODY0ODg2ZjcwZDAxMDcwMmEwODIwMzE3MzA4MjAzMTMwMjAxMDEzMTBmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwYjA2MDkyYTg2NDg4NmY3MGQwMTA3MDEwMjgyMDJlZTMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTAyMTQ3YmRlZGRkMjQ0NGNkMWNkZmU1YzQxYTgxMDJjODliN2RmMmU2Y2JmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDA1YmVjZDg3MTk1YzFkZWZmOTBjMjRjOTEyNjliNTViM2YwNjliYzIyNWMzMjZjMzE0YzFhNTE3ODZmZmUxNGM4MzBiZTRlNGJjNzNjYmEzNmM5NzY3N2I0NDE2ODI3OWJlOTFlN2NkZjdjMTkzODZhZTIxODYyNzE5ZDEzYTNhMGZmZjA4MDNkNDYwOTYyZjJjZGE4MzcxNDg0ODczMjUyYzNkNzA1NGRiODE0M2UyYjA4MWEzODE2ZWQwODA0Y2E1MDk5YWU1ZmVjZTgzZDVjMmMzNzgzYjE5ODhiNGI0NmRjOTRlNTU1ODdhMTA3ZWExNTQ2YmYyMmQyOGEwOTdmNjUyYTQwNjZkYzI5NjUyNjkwNjlhZjJmNTE3NmJiOGNlOWNhNmQxMWY5Njc1N2YwMzIwNGY3NTY3MDM1ODdkMDBhZDQyNDc5NmM5MmZjN2FlYjZmNDk0NDMxOTk5ZWRhMzA5OTBlNGY1NzczNjMyZWQyNThmZTAyNzY2NzM1OTlkYTZmY2UzNWNkYWQ3NzI2YTBiYjAyNGNhZDk5NmI4OGUwY2I5ODg1NGNlYjVjMGI2ZWM3NDhkOWY5Y2U2YTZjZDQzNzg1OGJhY2I4MTQ2MThhMjcyZmYzYTQxNWM2ZTA3ZjNkYjA5ODg3NzdmZGVjODQ1YTk3YmY3ZDEwMmRkMDMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMjAyMTQ1NjRkNTU0MDI1YWY1OTllMzI3MDc5YjI3MjBlZjAwZGYzN2NmYjdjMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDAwNDYwOThkYzVmMmI5OWUzYmMyZWQ2NjQyZDdmMGE2MWVmYWJjMTVjMzhjNzYzMzNiY2NjZWVlZTM2OWE0ZjRhNWJkZGE4ZWE1OTI2NDEyNGU0MjlmMDg2MzI2ODNkZGJhMTdiYmYyNjJkODJiNmJlZmEzYjRlMTQ4MDM3NmE4YzdmM2M3ZDdlMmE2Nzc5YmJmMTgyNjJhYTg1N2RlOGMyMGExMmI2YTJjZThlNGQ3ZjMxZGQxYjE5NTM5MmNmNjE4NWFmY2UzNGFmZTA1ODk2MDU3YjM2ZTliMTcxYjZjNjdlZDdjMjI4NmNiZmE4M2ZmOGExNjdjN2JjNzEwOWFlZTdkN2UxOTA5YmQzODRmYmZjNjE5MzhlZmNhNTFjODk5M2M3MWRiMzE3NzMwZjE2ZTdlNzc2ODY3YWU0ZmRjNTYyZDZmMTVkZTU4NWU3Yjk0ZWY0OTZhMzY3NjM2N2EyY2JhYWI3YjYzNjY0OGIwMDc2YmFkNWNkZjFlMDk3NDBlYzZhNDUxYmZmNTM0ZWZhMjE1MDlmM2JhNzdiODEwMWI5MWVhN2U1NWRkYmZlMTQwMTUxNzA2N2Q3YjAxYTJhMDg3OWYwODg1Yzg5NGE4N2NmYjY4YzRkN2VlODkwNjA0ODgxYWViOTdjMjJkMWYzMzdlZjkyM2UwMzVhNjQwMCIKIAogUEtDUzcgUGFyc2UgRmFpbHVyZSBJbnZhbGlkIEFTTjE6IENoYW5nZSBsZW5ndGggZnJvbSA3NTAgdG8gNzUxICMzNDguMAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHBrY3M3X2FzbjFfZmFpbDoiMzA4MjAzMjYwNjA5MmE4NjQ4ODZmNzBkMDEwNzAyYTA4MjAzMTczMDgyMDMxMzAyMDEwMTMxMGYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBiMDYwOTJhODY0ODg2ZjcwZDAxMDcwMTMxODIwMmVmMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDViZWNkODcxOTVjMWRlZmY5MGMyNGM5MTI2OWI1NWIzZjA2OWJjMjI1YzMyNmMzMTRjMWE1MTc4NmZmZTE0YzgzMGJlNGU0YmM3M2NiYTM2Yzk3Njc3YjQ0MTY4Mjc5YmU5MWU3Y2RmN2MxOTM4NmFlMjE4NjI3MTlkMTNhM2EwZmZmMDgwM2Q0NjA5NjJmMmNkYTgzNzE0ODQ4NzMyNTJjM2Q3MDU0ZGI4MTQzZTJiMDgxYTM4MTZlZDA4MDRjYTUwOTlhZTVmZWNlODNkNWMyYzM3ODNiMTk4OGI0YjQ2ZGM5NGU1NTU4N2ExMDdlYTE1NDZiZjIyZDI4YTA5N2Y2NTJhNDA2NmRjMjk2NTI2OTA2OWFmMmY1MTc2YmI4Y2U5Y2E2ZDExZjk2NzU3ZjAzMjA0Zjc1NjcwMzU4N2QwMGFkNDI0Nzk2YzkyZmM3YWViNmY0OTQ0MzE5OTllZGEzMDk5MGU0ZjU3NzM2MzJlZDI1OGZlMDI3NjY3MzU5OWRhNmZjZTM1Y2RhZDc3MjZhMGJiMDI0Y2FkOTk2Yjg4ZTBjYjk4ODU0Y2ViNWMwYjZlYzc0OGQ5ZjljZTZhNmNkNDM3ODU4YmFjYjgxNDYxOGEyNzJmZjNhNDE1YzZlMDdmM2RiMDk4ODc3N2ZkZWM4NDVhOTdiZjdkMTAyZGQwMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMyMDIxNDU2NGQ1NTQwMjVhZjU5OWUzMjcwNzliMjcyMGVmMDBkZjM3Y2ZiN2MzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDA0NjA5OGRjNWYyYjk5ZTNiYzJlZDY2NDJkN2YwYTYxZWZhYmMxNWMzOGM3NjMzM2JjY2NlZWVlMzY5YTRmNGE1YmRkYThlYTU5MjY0MTI0ZTQyOWYwODYzMjY4M2RkYmExN2JiZjI2MmQ4MmI2YmVmYTNiNGUxNDgwMzc2YThjN2YzYzdkN2UyYTY3NzliYmYxODI2MmFhODU3ZGU4YzIwYTEyYjZhMmNlOGU0ZDdmMzFkZDFiMTk1MzkyY2Y2MTg1YWZjZTM0YWZlMDU4OTYwNTdiMzZlOWIxNzFiNmM2N2VkN2MyMjg2Y2JmYTgzZmY4YTE2N2M3YmM3MTA5YWVlN2Q3ZTE5MDliZDM4NGZiZmM2MTkzOGVmY2E1MWM4OTkzYzcxZGIzMTc3MzBmMTZlN2U3NzY4NjdhZTRmZGM1NjJkNmYxNWRlNTg1ZTdiOTRlZjQ5NmEzNjc2MzY3YTJjYmFhYjdiNjM2NjQ4YjAwNzZiYWQ1Y2RmMWUwOTc0MGVjNmE0NTFiZmY1MzRlZmEyMTUwOWYzYmE3N2I4MTAxYjkxZWE3ZTU1ZGRiZmUxNDAxNTE3MDY3ZDdiMDFhMmEwODc5ZjA4ODVjODk0YTg3Y2ZiNjhjNGQ3ZWU4OTA2MDQ4ODFhZWI5N2MyMmQxZjMzN2VmOTIzZTAzNWE2NDAwIgogCiBQS0NTNyBQYXJzZSBGYWlsdXJlIEludmFsaWQgQVNOMTogQ2hhbmdlIGNvbnRlbnRzIG9mIHRhZyAzMSB0byBjb250YWluIG9uZSB1bmFjY291bnRlZCBleHRyYSBieXRlICMzNDkuMAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHBrY3M3X2FzbjFfZmFpbDoiMzA4MjAzMjYwNjA5MmE4NjQ4ODZmNzBkMDEwNzAyYTA4MjAzMTczMDgyMDMxMzAyMDEwMTMxMGYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBiMDYwOTJhODY0ODg2ZjcwZDAxMDcwMTMxODIwMmVmMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDViZWNkODcxOTVjMWRlZmY5MGMyNGM5MTI2OWI1NWIzZjA2OWJjMjI1YzMyNmMzMTRjMWE1MTc4NmZmZTE0YzgzMGJlNGU0YmM3M2NiYTM2Yzk3Njc3YjQ0MTY4Mjc5YmU5MWU3Y2RmN2MxOTM4NmFlMjE4NjI3MTlkMTNhM2EwZmZmMDgwM2Q0NjA5NjJmMmNkYTgzNzE0ODQ4NzMyNTJjM2Q3MDU0ZGI4MTQzZTJiMDgxYTM4MTZlZDA4MDRjYTUwOTlhZTVmZWNlODNkNWMyYzM3ODNiMTk4OGI0YjQ2ZGM5NGU1NTU4N2ExMDdlYTE1NDZiZjIyZDI4YTA5N2Y2NTJhNDA2NmRjMjk2NTI2OTA2OWFmMmY1MTc2YmI4Y2U5Y2E2ZDExZjk2NzU3ZjAzMjA0Zjc1NjcwMzU4N2QwMGFkNDI0Nzk2YzkyZmM3YWViNmY0OTQ0MzE5OTllZGEzMDk5MGU0ZjU3NzM2MzJlZDI1OGZlMDI3NjY3MzU5OWRhNmZjZTM1Y2RhZDc3MjZhMGJiMDI0Y2FkOTk2Yjg4ZTBjYjk4ODU0Y2ViNWMwYjZlYzc0OGQ5ZjljZTZhNmNkNDM3ODU4YmFjYjgxNDYxOGEyNzJmZjNhNDE1YzZlMDdmM2RiMDk4ODc3N2ZkZWM4NDVhOTdiZjdkMTAyZGQwMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMyMDIxNDU2NGQ1NTQwMjVhZjU5OWUzMjcwNzliMjcyMGVmMDBkZjM3Y2ZiN2MzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDA0NjA5OGRjNWYyYjk5ZTNiYzJlZDY2NDJkN2YwYTYxZWZhYmMxNWMzOGM3NjMzM2JjY2NlZWVlMzY5YTRmNGE1YmRkYThlYTU5MjY0MTI0ZTQyOWYwODYzMjY4M2RkYmExN2JiZjI2MmQ4MmI2YmVmYTNiNGUxNDgwMzc2YThjN2YzYzdkN2UyYTY3NzliYmYxODI2MmFhODU3ZGU4YzIwYTEyYjZhMmNlOGU0ZDdmMzFkZDFiMTk1MzkyY2Y2MTg1YWZjZTM0YWZlMDU4OTYwNTdiMzZlOWIxNzFiNmM2N2VkN2MyMjg2Y2JmYTgzZmY4YTE2N2M3YmM3MTA5YWVlN2Q3ZTE5MDliZDM4NGZiZmM2MTkzOGVmY2E1MWM4OTkzYzcxZGIzMTc3MzBmMTZlN2U3NzY4NjdhZTRmZGM1NjJkNmYxNWRlNTg1ZTdiOTRlZjQ5NmEzNjc2MzY3YTJjYmFhYjdiNjM2NjQ4YjAwNzZiYWQ1Y2RmMWUwOTc0MGVjNmE0NTFiZmY1MzRlZmEyMTUwOWYzYmE3N2I4MTAxYjkxZWE3ZTU1ZGRiZmUxNDAxNTE3MDY3ZDdiMDFhMmEwODc5ZjA4ODVjODk0YTg3Y2ZiNjhjNGQ3ZWU4OTA2MDQ4ODFhZWI5N2MyMmQxZjMzN2VmOTIzZTAzNWE2NDAwMDAiCiAKIFBLQ1M3IFBhcnNlIEZhaWx1cmUgSW52YWxpZCBBU04xOiBDaGFuZ2UgbGVuZ3RoIGZyb20gNzUwIHRvIDc0OSAjMzUwLjAKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBwa2NzN19hc24xX2ZhaWw6IjMwODIwMzI2MDYwOTJhODY0ODg2ZjcwZDAxMDcwMmEwODIwMzE3MzA4MjAzMTMwMjAxMDEzMTBmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwYjA2MDkyYTg2NDg4NmY3MGQwMTA3MDEzMTgyMDJlZDMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTAyMTQ3YmRlZGRkMjQ0NGNkMWNkZmU1YzQxYTgxMDJjODliN2RmMmU2Y2JmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDA1YmVjZDg3MTk1YzFkZWZmOTBjMjRjOTEyNjliNTViM2YwNjliYzIyNWMzMjZjMzE0YzFhNTE3ODZmZmUxNGM4MzBiZTRlNGJjNzNjYmEzNmM5NzY3N2I0NDE2ODI3OWJlOTFlN2NkZjdjMTkzODZhZTIxODYyNzE5ZDEzYTNhMGZmZjA4MDNkNDYwOTYyZjJjZGE4MzcxNDg0ODczMjUyYzNkNzA1NGRiODE0M2UyYjA4MWEzODE2ZWQwODA0Y2E1MDk5YWU1ZmVjZTgzZDVjMmMzNzgzYjE5ODhiNGI0NmRjOTRlNTU1ODdhMTA3ZWExNTQ2YmYyMmQyOGEwOTdmNjUyYTQwNjZkYzI5NjUyNjkwNjlhZjJmNTE3NmJiOGNlOWNhNmQxMWY5Njc1N2YwMzIwNGY3NTY3MDM1ODdkMDBhZDQyNDc5NmM5MmZjN2FlYjZmNDk0NDMxOTk5ZWRhMzA5OTBlNGY1NzczNjMyZWQyNThmZTAyNzY2NzM1OTlkYTZmY2UzNWNkYWQ3NzI2YTBiYjAyNGNhZDk5NmI4OGUwY2I5ODg1NGNlYjVjMGI2ZWM3NDhkOWY5Y2U2YTZjZDQzNzg1OGJhY2I4MTQ2MThhMjcyZmYzYTQxNWM2ZTA3ZjNkYjA5ODg3NzdmZGVjODQ1YTk3YmY3ZDEwMmRkMDMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMjAyMTQ1NjRkNTU0MDI1YWY1OTllMzI3MDc5YjI3MjBlZjAwZGYzN2NmYjdjMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDAwNDYwOThkYzVmMmI5OWUzYmMyZWQ2NjQyZDdmMGE2MWVmYWJjMTVjMzhjNzYzMzNiY2NjZWVlZTM2OWE0ZjRhNWJkZGE4ZWE1OTI2NDEyNGU0MjlmMDg2MzI2ODNkZGJhMTdiYmYyNjJkODJiNmJlZmEzYjRlMTQ4MDM3NmE4YzdmM2M3ZDdlMmE2Nzc5YmJmMTgyNjJhYTg1N2RlOGMyMGExMmI2YTJjZThlNGQ3ZjMxZGQxYjE5NTM5MmNmNjE4NWFmY2UzNGFmZTA1ODk2MDU3YjM2ZTliMTcxYjZjNjdlZDdjMjI4NmNiZmE4M2ZmOGExNjdjN2JjNzEwOWFlZTdkN2UxOTA5YmQzODRmYmZjNjE5MzhlZmNhNTFjODk5M2M3MWRiMzE3NzMwZjE2ZTdlNzc2ODY3YWU0ZmRjNTYyZDZmMTVkZTU4NWU3Yjk0ZWY0OTZhMzY3NjM2N2EyY2JhYWI3YjYzNjY0OGIwMDc2YmFkNWNkZjFlMDk3NDBlYzZhNDUxYmZmNTM0ZWZhMjE1MDlmM2JhNzdiODEwMWI5MWVhN2U1NWRkYmZlMTQwMTUxNzA2N2Q3YjAxYTJhMDg3OWYwODg1Yzg5NGE4N2NmYjY4YzRkN2VlODkwNjA0ODgxYWViOTdjMjJkMWYzMzdlZjkyM2UwMzVhNjQwMCIKIAogUEtDUzcgUGFyc2UgRmFpbHVyZSBJbnZhbGlkIEFTTjE6IENoYW5nZSB0YWcgMzAgdG8gMDIgIzM1MS4wCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NgogcGtjczdfYXNuMV9mYWlsOiIzMDgyMDMyNjA2MDkyYTg2NDg4NmY3MGQwMTA3MDJhMDgyMDMxNzMwODIwMzEzMDIwMTAxMzEwZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGIwNjA5MmE4NjQ4ODZmNzBkMDEwNzAxMzE4MjAyZWUwMjgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwNWJlY2Q4NzE5NWMxZGVmZjkwYzI0YzkxMjY5YjU1YjNmMDY5YmMyMjVjMzI2YzMxNGMxYTUxNzg2ZmZlMTRjODMwYmU0ZTRiYzczY2JhMzZjOTc2NzdiNDQxNjgyNzliZTkxZTdjZGY3YzE5Mzg2YWUyMTg2MjcxOWQxM2EzYTBmZmYwODAzZDQ2MDk2MmYyY2RhODM3MTQ4NDg3MzI1MmMzZDcwNTRkYjgxNDNlMmIwODFhMzgxNmVkMDgwNGNhNTA5OWFlNWZlY2U4M2Q1YzJjMzc4M2IxOTg4YjRiNDZkYzk0ZTU1NTg3YTEwN2VhMTU0NmJmMjJkMjhhMDk3ZjY1MmE0MDY2ZGMyOTY1MjY5MDY5YWYyZjUxNzZiYjhjZTljYTZkMTFmOTY3NTdmMDMyMDRmNzU2NzAzNTg3ZDAwYWQ0MjQ3OTZjOTJmYzdhZWI2ZjQ5NDQzMTk5OWVkYTMwOTkwZTRmNTc3MzYzMmVkMjU4ZmUwMjc2NjczNTk5ZGE2ZmNlMzVjZGFkNzcyNmEwYmIwMjRjYWQ5OTZiODhlMGNiOTg4NTRjZWI1YzBiNmVjNzQ4ZDlmOWNlNmE2Y2Q0Mzc4NThiYWNiODE0NjE4YTI3MmZmM2E0MTVjNmUwN2YzZGIwOTg4Nzc3ZmRlYzg0NWE5N2JmN2QxMDJkZDAzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzIwMjE0NTY0ZDU1NDAyNWFmNTk5ZTMyNzA3OWIyNzIwZWYwMGRmMzdjZmI3YzMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwMDQ2MDk4ZGM1ZjJiOTllM2JjMmVkNjY0MmQ3ZjBhNjFlZmFiYzE1YzM4Yzc2MzMzYmNjY2VlZWUzNjlhNGY0YTViZGRhOGVhNTkyNjQxMjRlNDI5ZjA4NjMyNjgzZGRiYTE3YmJmMjYyZDgyYjZiZWZhM2I0ZTE0ODAzNzZhOGM3ZjNjN2Q3ZTJhNjc3OWJiZjE4MjYyYWE4NTdkZThjMjBhMTJiNmEyY2U4ZTRkN2YzMWRkMWIxOTUzOTJjZjYxODVhZmNlMzRhZmUwNTg5NjA1N2IzNmU5YjE3MWI2YzY3ZWQ3YzIyODZjYmZhODNmZjhhMTY3YzdiYzcxMDlhZWU3ZDdlMTkwOWJkMzg0ZmJmYzYxOTM4ZWZjYTUxYzg5OTNjNzFkYjMxNzczMGYxNmU3ZTc3Njg2N2FlNGZkYzU2MmQ2ZjE1ZGU1ODVlN2I5NGVmNDk2YTM2NzYzNjdhMmNiYWFiN2I2MzY2NDhiMDA3NmJhZDVjZGYxZTA5NzQwZWM2YTQ1MWJmZjUzNGVmYTIxNTA5ZjNiYTc3YjgxMDFiOTFlYTdlNTVkZGJmZTE0MDE1MTcwNjdkN2IwMWEyYTA4NzlmMDg4NWM4OTRhODdjZmI2OGM0ZDdlZTg5MDYwNDg4MWFlYjk3YzIyZDFmMzM3ZWY5MjNlMDM1YTY0MDAiCiAKIFBLQ1M3IFBhcnNlIEZhaWx1cmUgSW52YWxpZCBBU04xOiBDaGFuZ2UgbGVuZ3RoIGZyb20gMzcxIHRvIDM3MiAjMzUyLjAKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBwa2NzN19hc24xX2ZhaWw6IjMwODIwMzI2MDYwOTJhODY0ODg2ZjcwZDAxMDcwMmEwODIwMzE3MzA4MjAzMTMwMjAxMDEzMTBmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwYjA2MDkyYTg2NDg4NmY3MGQwMTA3MDEzMTgyMDJlZTMwODIwMTc0MDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTAyMTQ3YmRlZGRkMjQ0NGNkMWNkZmU1YzQxYTgxMDJjODliN2RmMmU2Y2JmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDA1YmVjZDg3MTk1YzFkZWZmOTBjMjRjOTEyNjliNTViM2YwNjliYzIyNWMzMjZjMzE0YzFhNTE3ODZmZmUxNGM4MzBiZTRlNGJjNzNjYmEzNmM5NzY3N2I0NDE2ODI3OWJlOTFlN2NkZjdjMTkzODZhZTIxODYyNzE5ZDEzYTNhMGZmZjA4MDNkNDYwOTYyZjJjZGE4MzcxNDg0ODczMjUyYzNkNzA1NGRiODE0M2UyYjA4MWEzODE2ZWQwODA0Y2E1MDk5YWU1ZmVjZTgzZDVjMmMzNzgzYjE5ODhiNGI0NmRjOTRlNTU1ODdhMTA3ZWExNTQ2YmYyMmQyOGEwOTdmNjUyYTQwNjZkYzI5NjUyNjkwNjlhZjJmNTE3NmJiOGNlOWNhNmQxMWY5Njc1N2YwMzIwNGY3NTY3MDM1ODdkMDBhZDQyNDc5NmM5MmZjN2FlYjZmNDk0NDMxOTk5ZWRhMzA5OTBlNGY1NzczNjMyZWQyNThmZTAyNzY2NzM1OTlkYTZmY2UzNWNkYWQ3NzI2YTBiYjAyNGNhZDk5NmI4OGUwY2I5ODg1NGNlYjVjMGI2ZWM3NDhkOWY5Y2U2YTZjZDQzNzg1OGJhY2I4MTQ2MThhMjcyZmYzYTQxNWM2ZTA3ZjNkYjA5ODg3NzdmZGVjODQ1YTk3YmY3ZDEwMmRkMDMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMjAyMTQ1NjRkNTU0MDI1YWY1OTllMzI3MDc5YjI3MjBlZjAwZGYzN2NmYjdjMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDAwNDYwOThkYzVmMmI5OWUzYmMyZWQ2NjQyZDdmMGE2MWVmYWJjMTVjMzhjNzYzMzNiY2NjZWVlZTM2OWE0ZjRhNWJkZGE4ZWE1OTI2NDEyNGU0MjlmMDg2MzI2ODNkZGJhMTdiYmYyNjJkODJiNmJlZmEzYjRlMTQ4MDM3NmE4YzdmM2M3ZDdlMmE2Nzc5YmJmMTgyNjJhYTg1N2RlOGMyMGExMmI2YTJjZThlNGQ3ZjMxZGQxYjE5NTM5MmNmNjE4NWFmY2UzNGFmZTA1ODk2MDU3YjM2ZTliMTcxYjZjNjdlZDdjMjI4NmNiZmE4M2ZmOGExNjdjN2JjNzEwOWFlZTdkN2UxOTA5YmQzODRmYmZjNjE5MzhlZmNhNTFjODk5M2M3MWRiMzE3NzMwZjE2ZTdlNzc2ODY3YWU0ZmRjNTYyZDZmMTVkZTU4NWU3Yjk0ZWY0OTZhMzY3NjM2N2EyY2JhYWI3YjYzNjY0OGIwMDc2YmFkNWNkZjFlMDk3NDBlYzZhNDUxYmZmNTM0ZWZhMjE1MDlmM2JhNzdiODEwMWI5MWVhN2U1NWRkYmZlMTQwMTUxNzA2N2Q3YjAxYTJhMDg3OWYwODg1Yzg5NGE4N2NmYjY4YzRkN2VlODkwNjA0ODgxYWViOTdjMjJkMWYzMzdlZjkyM2UwMzVhNjQwMCIKIAogUEtDUzcgUGFyc2UgRmFpbHVyZSBJbnZhbGlkIEFTTjE6IENoYW5nZSBjb250ZW50cyBvZiB0YWcgMzAgdG8gY29udGFpbiBvbmUgdW5hY2NvdW50ZWQgZXh0cmEgYnl0ZSAjMzUzLjAKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBwa2NzN19hc24xX2ZhaWw6IjMwODIwMzI2MDYwOTJhODY0ODg2ZjcwZDAxMDcwMmEwODIwMzE3MzA4MjAzMTMwMjAxMDEzMTBmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwYjA2MDkyYTg2NDg4NmY3MGQwMTA3MDEzMTgyMDJlZTMwODIwMTc0MDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTAyMTQ3YmRlZGRkMjQ0NGNkMWNkZmU1YzQxYTgxMDJjODliN2RmMmU2Y2JmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDA1YmVjZDg3MTk1YzFkZWZmOTBjMjRjOTEyNjliNTViM2YwNjliYzIyNWMzMjZjMzE0YzFhNTE3ODZmZmUxNGM4MzBiZTRlNGJjNzNjYmEzNmM5NzY3N2I0NDE2ODI3OWJlOTFlN2NkZjdjMTkzODZhZTIxODYyNzE5ZDEzYTNhMGZmZjA4MDNkNDYwOTYyZjJjZGE4MzcxNDg0ODczMjUyYzNkNzA1NGRiODE0M2UyYjA4MWEzODE2ZWQwODA0Y2E1MDk5YWU1ZmVjZTgzZDVjMmMzNzgzYjE5ODhiNGI0NmRjOTRlNTU1ODdhMTA3ZWExNTQ2YmYyMmQyOGEwOTdmNjUyYTQwNjZkYzI5NjUyNjkwNjlhZjJmNTE3NmJiOGNlOWNhNmQxMWY5Njc1N2YwMzIwNGY3NTY3MDM1ODdkMDBhZDQyNDc5NmM5MmZjN2FlYjZmNDk0NDMxOTk5ZWRhMzA5OTBlNGY1NzczNjMyZWQyNThmZTAyNzY2NzM1OTlkYTZmY2UzNWNkYWQ3NzI2YTBiYjAyNGNhZDk5NmI4OGUwY2I5ODg1NGNlYjVjMGI2ZWM3NDhkOWY5Y2U2YTZjZDQzNzg1OGJhY2I4MTQ2MThhMjcyZmYzYTQxNWM2ZTA3ZjNkYjA5ODg3NzdmZGVjODQ1YTk3YmY3ZDEwMmRkMDAwMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMyMDIxNDU2NGQ1NTQwMjVhZjU5OWUzMjcwNzliMjcyMGVmMDBkZjM3Y2ZiN2MzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDA0NjA5OGRjNWYyYjk5ZTNiYzJlZDY2NDJkN2YwYTYxZWZhYmMxNWMzOGM3NjMzM2JjY2NlZWVlMzY5YTRmNGE1YmRkYThlYTU5MjY0MTI0ZTQyOWYwODYzMjY4M2RkYmExN2JiZjI2MmQ4MmI2YmVmYTNiNGUxNDgwMzc2YThjN2YzYzdkN2UyYTY3NzliYmYxODI2MmFhODU3ZGU4YzIwYTEyYjZhMmNlOGU0ZDdmMzFkZDFiMTk1MzkyY2Y2MTg1YWZjZTM0YWZlMDU4OTYwNTdiMzZlOWIxNzFiNmM2N2VkN2MyMjg2Y2JmYTgzZmY4YTE2N2M3YmM3MTA5YWVlN2Q3ZTE5MDliZDM4NGZiZmM2MTkzOGVmY2E1MWM4OTkzYzcxZGIzMTc3MzBmMTZlN2U3NzY4NjdhZTRmZGM1NjJkNmYxNWRlNTg1ZTdiOTRlZjQ5NmEzNjc2MzY3YTJjYmFhYjdiNjM2NjQ4YjAwNzZiYWQ1Y2RmMWUwOTc0MGVjNmE0NTFiZmY1MzRlZmEyMTUwOWYzYmE3N2I4MTAxYjkxZWE3ZTU1ZGRiZmUxNDAxNTE3MDY3ZDdiMDFhMmEwODc5ZjA4ODVjODk0YTg3Y2ZiNjhjNGQ3ZWU4OTA2MDQ4ODFhZWI5N2MyMmQxZjMzN2VmOTIzZTAzNWE2NDAwIgogCiBQS0NTNyBQYXJzZSBGYWlsdXJlIEludmFsaWQgQVNOMTogQ2hhbmdlIGxlbmd0aCBmcm9tIDM3MSB0byAzNzAgIzM1NC4wCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NgogcGtjczdfYXNuMV9mYWlsOiIzMDgyMDMyNjA2MDkyYTg2NDg4NmY3MGQwMTA3MDJhMDgyMDMxNzMwODIwMzEzMDIwMTAxMzEwZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGIwNjA5MmE4NjQ4ODZmNzBkMDEwNzAxMzE4MjAyZWUzMDgyMDE3MjAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwNWJlY2Q4NzE5NWMxZGVmZjkwYzI0YzkxMjY5YjU1YjNmMDY5YmMyMjVjMzI2YzMxNGMxYTUxNzg2ZmZlMTRjODMwYmU0ZTRiYzczY2JhMzZjOTc2NzdiNDQxNjgyNzliZTkxZTdjZGY3YzE5Mzg2YWUyMTg2MjcxOWQxM2EzYTBmZmYwODAzZDQ2MDk2MmYyY2RhODM3MTQ4NDg3MzI1MmMzZDcwNTRkYjgxNDNlMmIwODFhMzgxNmVkMDgwNGNhNTA5OWFlNWZlY2U4M2Q1YzJjMzc4M2IxOTg4YjRiNDZkYzk0ZTU1NTg3YTEwN2VhMTU0NmJmMjJkMjhhMDk3ZjY1MmE0MDY2ZGMyOTY1MjY5MDY5YWYyZjUxNzZiYjhjZTljYTZkMTFmOTY3NTdmMDMyMDRmNzU2NzAzNTg3ZDAwYWQ0MjQ3OTZjOTJmYzdhZWI2ZjQ5NDQzMTk5OWVkYTMwOTkwZTRmNTc3MzYzMmVkMjU4ZmUwMjc2NjczNTk5ZGE2ZmNlMzVjZGFkNzcyNmEwYmIwMjRjYWQ5OTZiODhlMGNiOTg4NTRjZWI1YzBiNmVjNzQ4ZDlmOWNlNmE2Y2Q0Mzc4NThiYWNiODE0NjE4YTI3MmZmM2E0MTVjNmUwN2YzZGIwOTg4Nzc3ZmRlYzg0NWE5N2JmN2QxMDJkZDAzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzIwMjE0NTY0ZDU1NDAyNWFmNTk5ZTMyNzA3OWIyNzIwZWYwMGRmMzdjZmI3YzMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwMDQ2MDk4ZGM1ZjJiOTllM2JjMmVkNjY0MmQ3ZjBhNjFlZmFiYzE1YzM4Yzc2MzMzYmNjY2VlZWUzNjlhNGY0YTViZGRhOGVhNTkyNjQxMjRlNDI5ZjA4NjMyNjgzZGRiYTE3YmJmMjYyZDgyYjZiZWZhM2I0ZTE0ODAzNzZhOGM3ZjNjN2Q3ZTJhNjc3OWJiZjE4MjYyYWE4NTdkZThjMjBhMTJiNmEyY2U4ZTRkN2YzMWRkMWIxOTUzOTJjZjYxODVhZmNlMzRhZmUwNTg5NjA1N2IzNmU5YjE3MWI2YzY3ZWQ3YzIyODZjYmZhODNmZjhhMTY3YzdiYzcxMDlhZWU3ZDdlMTkwOWJkMzg0ZmJmYzYxOTM4ZWZjYTUxYzg5OTNjNzFkYjMxNzczMGYxNmU3ZTc3Njg2N2FlNGZkYzU2MmQ2ZjE1ZGU1ODVlN2I5NGVmNDk2YTM2NzYzNjdhMmNiYWFiN2I2MzY2NDhiMDA3NmJhZDVjZGYxZTA5NzQwZWM2YTQ1MWJmZjUzNGVmYTIxNTA5ZjNiYTc3YjgxMDFiOTFlYTdlNTVkZGJmZTE0MDE1MTcwNjdkN2IwMWEyYTA4NzlmMDg4NWM4OTRhODdjZmI2OGM0ZDdlZTg5MDYwNDg4MWFlYjk3YzIyZDFmMzM3ZWY5MjNlMDM1YTY0MDAiCiAKIFBLQ1M3IFBhcnNlIEZhaWx1cmUgSW52YWxpZCBBU04xOiBDaGFuZ2UgdGFnIDAyIHRvIDA0ICMzNTUuMAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHBrY3M3X2FzbjFfZmFpbDoiMzA4MjAzMjYwNjA5MmE4NjQ4ODZmNzBkMDEwNzAyYTA4MjAzMTczMDgyMDMxMzAyMDEwMTMxMGYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBiMDYwOTJhODY0ODg2ZjcwZDAxMDcwMTMxODIwMmVlMzA4MjAxNzMwNDAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDViZWNkODcxOTVjMWRlZmY5MGMyNGM5MTI2OWI1NWIzZjA2OWJjMjI1YzMyNmMzMTRjMWE1MTc4NmZmZTE0YzgzMGJlNGU0YmM3M2NiYTM2Yzk3Njc3YjQ0MTY4Mjc5YmU5MWU3Y2RmN2MxOTM4NmFlMjE4NjI3MTlkMTNhM2EwZmZmMDgwM2Q0NjA5NjJmMmNkYTgzNzE0ODQ4NzMyNTJjM2Q3MDU0ZGI4MTQzZTJiMDgxYTM4MTZlZDA4MDRjYTUwOTlhZTVmZWNlODNkNWMyYzM3ODNiMTk4OGI0YjQ2ZGM5NGU1NTU4N2ExMDdlYTE1NDZiZjIyZDI4YTA5N2Y2NTJhNDA2NmRjMjk2NTI2OTA2OWFmMmY1MTc2YmI4Y2U5Y2E2ZDExZjk2NzU3ZjAzMjA0Zjc1NjcwMzU4N2QwMGFkNDI0Nzk2YzkyZmM3YWViNmY0OTQ0MzE5OTllZGEzMDk5MGU0ZjU3NzM2MzJlZDI1OGZlMDI3NjY3MzU5OWRhNmZjZTM1Y2RhZDc3MjZhMGJiMDI0Y2FkOTk2Yjg4ZTBjYjk4ODU0Y2ViNWMwYjZlYzc0OGQ5ZjljZTZhNmNkNDM3ODU4YmFjYjgxNDYxOGEyNzJmZjNhNDE1YzZlMDdmM2RiMDk4ODc3N2ZkZWM4NDVhOTdiZjdkMTAyZGQwMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMyMDIxNDU2NGQ1NTQwMjVhZjU5OWUzMjcwNzliMjcyMGVmMDBkZjM3Y2ZiN2MzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDA0NjA5OGRjNWYyYjk5ZTNiYzJlZDY2NDJkN2YwYTYxZWZhYmMxNWMzOGM3NjMzM2JjY2NlZWVlMzY5YTRmNGE1YmRkYThlYTU5MjY0MTI0ZTQyOWYwODYzMjY4M2RkYmExN2JiZjI2MmQ4MmI2YmVmYTNiNGUxNDgwMzc2YThjN2YzYzdkN2UyYTY3NzliYmYxODI2MmFhODU3ZGU4YzIwYTEyYjZhMmNlOGU0ZDdmMzFkZDFiMTk1MzkyY2Y2MTg1YWZjZTM0YWZlMDU4OTYwNTdiMzZlOWIxNzFiNmM2N2VkN2MyMjg2Y2JmYTgzZmY4YTE2N2M3YmM3MTA5YWVlN2Q3ZTE5MDliZDM4NGZiZmM2MTkzOGVmY2E1MWM4OTkzYzcxZGIzMTc3MzBmMTZlN2U3NzY4NjdhZTRmZGM1NjJkNmYxNWRlNTg1ZTdiOTRlZjQ5NmEzNjc2MzY3YTJjYmFhYjdiNjM2NjQ4YjAwNzZiYWQ1Y2RmMWUwOTc0MGVjNmE0NTFiZmY1MzRlZmEyMTUwOWYzYmE3N2I4MTAxYjkxZWE3ZTU1ZGRiZmUxNDAxNTE3MDY3ZDdiMDFhMmEwODc5ZjA4ODVjODk0YTg3Y2ZiNjhjNGQ3ZWU4OTA2MDQ4ODFhZWI5N2MyMmQxZjMzN2VmOTIzZTAzNWE2NDAwIgogCiBQS0NTNyBQYXJzZSBGYWlsdXJlIEludmFsaWQgQVNOMTogQ2hhbmdlIGxlbmd0aCBmcm9tIDEgdG8gMiAjMzU2LjAKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBwa2NzN19hc24xX2ZhaWw6IjMwODIwMzI2MDYwOTJhODY0ODg2ZjcwZDAxMDcwMmEwODIwMzE3MzA4MjAzMTMwMjAxMDEzMTBmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwYjA2MDkyYTg2NDg4NmY3MGQwMTA3MDEzMTgyMDJlZTMwODIwMTczMDIwMjAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTAyMTQ3YmRlZGRkMjQ0NGNkMWNkZmU1YzQxYTgxMDJjODliN2RmMmU2Y2JmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDA1YmVjZDg3MTk1YzFkZWZmOTBjMjRjOTEyNjliNTViM2YwNjliYzIyNWMzMjZjMzE0YzFhNTE3ODZmZmUxNGM4MzBiZTRlNGJjNzNjYmEzNmM5NzY3N2I0NDE2ODI3OWJlOTFlN2NkZjdjMTkzODZhZTIxODYyNzE5ZDEzYTNhMGZmZjA4MDNkNDYwOTYyZjJjZGE4MzcxNDg0ODczMjUyYzNkNzA1NGRiODE0M2UyYjA4MWEzODE2ZWQwODA0Y2E1MDk5YWU1ZmVjZTgzZDVjMmMzNzgzYjE5ODhiNGI0NmRjOTRlNTU1ODdhMTA3ZWExNTQ2YmYyMmQyOGEwOTdmNjUyYTQwNjZkYzI5NjUyNjkwNjlhZjJmNTE3NmJiOGNlOWNhNmQxMWY5Njc1N2YwMzIwNGY3NTY3MDM1ODdkMDBhZDQyNDc5NmM5MmZjN2FlYjZmNDk0NDMxOTk5ZWRhMzA5OTBlNGY1NzczNjMyZWQyNThmZTAyNzY2NzM1OTlkYTZmY2UzNWNkYWQ3NzI2YTBiYjAyNGNhZDk5NmI4OGUwY2I5ODg1NGNlYjVjMGI2ZWM3NDhkOWY5Y2U2YTZjZDQzNzg1OGJhY2I4MTQ2MThhMjcyZmYzYTQxNWM2ZTA3ZjNkYjA5ODg3NzdmZGVjODQ1YTk3YmY3ZDEwMmRkMDMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMjAyMTQ1NjRkNTU0MDI1YWY1OTllMzI3MDc5YjI3MjBlZjAwZGYzN2NmYjdjMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDAwNDYwOThkYzVmMmI5OWUzYmMyZWQ2NjQyZDdmMGE2MWVmYWJjMTVjMzhjNzYzMzNiY2NjZWVlZTM2OWE0ZjRhNWJkZGE4ZWE1OTI2NDEyNGU0MjlmMDg2MzI2ODNkZGJhMTdiYmYyNjJkODJiNmJlZmEzYjRlMTQ4MDM3NmE4YzdmM2M3ZDdlMmE2Nzc5YmJmMTgyNjJhYTg1N2RlOGMyMGExMmI2YTJjZThlNGQ3ZjMxZGQxYjE5NTM5MmNmNjE4NWFmY2UzNGFmZTA1ODk2MDU3YjM2ZTliMTcxYjZjNjdlZDdjMjI4NmNiZmE4M2ZmOGExNjdjN2JjNzEwOWFlZTdkN2UxOTA5YmQzODRmYmZjNjE5MzhlZmNhNTFjODk5M2M3MWRiMzE3NzMwZjE2ZTdlNzc2ODY3YWU0ZmRjNTYyZDZmMTVkZTU4NWU3Yjk0ZWY0OTZhMzY3NjM2N2EyY2JhYWI3YjYzNjY0OGIwMDc2YmFkNWNkZjFlMDk3NDBlYzZhNDUxYmZmNTM0ZWZhMjE1MDlmM2JhNzdiODEwMWI5MWVhN2U1NWRkYmZlMTQwMTUxNzA2N2Q3YjAxYTJhMDg3OWYwODg1Yzg5NGE4N2NmYjY4YzRkN2VlODkwNjA0ODgxYWViOTdjMjJkMWYzMzdlZjkyM2UwMzVhNjQwMCIKIAogUEtDUzcgUGFyc2UgRmFpbHVyZSBJbnZhbGlkIEFTTjE6IENoYW5nZSBsZW5ndGggZnJvbSAxIHRvIDAgIzM1Ny4wCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NgogcGtjczdfYXNuMV9mYWlsOiIzMDgyMDMyNjA2MDkyYTg2NDg4NmY3MGQwMTA3MDJhMDgyMDMxNzMwODIwMzEzMDIwMTAxMzEwZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGIwNjA5MmE4NjQ4ODZmNzBkMDEwNzAxMzE4MjAyZWUzMDgyMDE3MzAyMDAwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwNWJlY2Q4NzE5NWMxZGVmZjkwYzI0YzkxMjY5YjU1YjNmMDY5YmMyMjVjMzI2YzMxNGMxYTUxNzg2ZmZlMTRjODMwYmU0ZTRiYzczY2JhMzZjOTc2NzdiNDQxNjgyNzliZTkxZTdjZGY3YzE5Mzg2YWUyMTg2MjcxOWQxM2EzYTBmZmYwODAzZDQ2MDk2MmYyY2RhODM3MTQ4NDg3MzI1MmMzZDcwNTRkYjgxNDNlMmIwODFhMzgxNmVkMDgwNGNhNTA5OWFlNWZlY2U4M2Q1YzJjMzc4M2IxOTg4YjRiNDZkYzk0ZTU1NTg3YTEwN2VhMTU0NmJmMjJkMjhhMDk3ZjY1MmE0MDY2ZGMyOTY1MjY5MDY5YWYyZjUxNzZiYjhjZTljYTZkMTFmOTY3NTdmMDMyMDRmNzU2NzAzNTg3ZDAwYWQ0MjQ3OTZjOTJmYzdhZWI2ZjQ5NDQzMTk5OWVkYTMwOTkwZTRmNTc3MzYzMmVkMjU4ZmUwMjc2NjczNTk5ZGE2ZmNlMzVjZGFkNzcyNmEwYmIwMjRjYWQ5OTZiODhlMGNiOTg4NTRjZWI1YzBiNmVjNzQ4ZDlmOWNlNmE2Y2Q0Mzc4NThiYWNiODE0NjE4YTI3MmZmM2E0MTVjNmUwN2YzZGIwOTg4Nzc3ZmRlYzg0NWE5N2JmN2QxMDJkZDAzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzIwMjE0NTY0ZDU1NDAyNWFmNTk5ZTMyNzA3OWIyNzIwZWYwMGRmMzdjZmI3YzMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwMDQ2MDk4ZGM1ZjJiOTllM2JjMmVkNjY0MmQ3ZjBhNjFlZmFiYzE1YzM4Yzc2MzMzYmNjY2VlZWUzNjlhNGY0YTViZGRhOGVhNTkyNjQxMjRlNDI5ZjA4NjMyNjgzZGRiYTE3YmJmMjYyZDgyYjZiZWZhM2I0ZTE0ODAzNzZhOGM3ZjNjN2Q3ZTJhNjc3OWJiZjE4MjYyYWE4NTdkZThjMjBhMTJiNmEyY2U4ZTRkN2YzMWRkMWIxOTUzOTJjZjYxODVhZmNlMzRhZmUwNTg5NjA1N2IzNmU5YjE3MWI2YzY3ZWQ3YzIyODZjYmZhODNmZjhhMTY3YzdiYzcxMDlhZWU3ZDdlMTkwOWJkMzg0ZmJmYzYxOTM4ZWZjYTUxYzg5OTNjNzFkYjMxNzczMGYxNmU3ZTc3Njg2N2FlNGZkYzU2MmQ2ZjE1ZGU1ODVlN2I5NGVmNDk2YTM2NzYzNjdhMmNiYWFiN2I2MzY2NDhiMDA3NmJhZDVjZGYxZTA5NzQwZWM2YTQ1MWJmZjUzNGVmYTIxNTA5ZjNiYTc3YjgxMDFiOTFlYTdlNTVkZGJmZTE0MDE1MTcwNjdkN2IwMWEyYTA4NzlmMDg4NWM4OTRhODdjZmI2OGM0ZDdlZTg5MDYwNDg4MWFlYjk3YzIyZDFmMzM3ZWY5MjNlMDM1YTY0MDAiCiAKIFBLQ1M3IFBhcnNlIEZhaWx1cmUgSW52YWxpZCBBU04xOiBDaGFuZ2UgdGFnIDMwIHRvIDAyICMzNTguMAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHBrY3M3X2FzbjFfZmFpbDoiMzA4MjAzMjYwNjA5MmE4NjQ4ODZmNzBkMDEwNzAyYTA4MjAzMTczMDgyMDMxMzAyMDEwMTMxMGYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBiMDYwOTJhODY0ODg2ZjcwZDAxMDcwMTMxODIwMmVlMzA4MjAxNzMwMjAxMDEwMjRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDViZWNkODcxOTVjMWRlZmY5MGMyNGM5MTI2OWI1NWIzZjA2OWJjMjI1YzMyNmMzMTRjMWE1MTc4NmZmZTE0YzgzMGJlNGU0YmM3M2NiYTM2Yzk3Njc3YjQ0MTY4Mjc5YmU5MWU3Y2RmN2MxOTM4NmFlMjE4NjI3MTlkMTNhM2EwZmZmMDgwM2Q0NjA5NjJmMmNkYTgzNzE0ODQ4NzMyNTJjM2Q3MDU0ZGI4MTQzZTJiMDgxYTM4MTZlZDA4MDRjYTUwOTlhZTVmZWNlODNkNWMyYzM3ODNiMTk4OGI0YjQ2ZGM5NGU1NTU4N2ExMDdlYTE1NDZiZjIyZDI4YTA5N2Y2NTJhNDA2NmRjMjk2NTI2OTA2OWFmMmY1MTc2YmI4Y2U5Y2E2ZDExZjk2NzU3ZjAzMjA0Zjc1NjcwMzU4N2QwMGFkNDI0Nzk2YzkyZmM3YWViNmY0OTQ0MzE5OTllZGEzMDk5MGU0ZjU3NzM2MzJlZDI1OGZlMDI3NjY3MzU5OWRhNmZjZTM1Y2RhZDc3MjZhMGJiMDI0Y2FkOTk2Yjg4ZTBjYjk4ODU0Y2ViNWMwYjZlYzc0OGQ5ZjljZTZhNmNkNDM3ODU4YmFjYjgxNDYxOGEyNzJmZjNhNDE1YzZlMDdmM2RiMDk4ODc3N2ZkZWM4NDVhOTdiZjdkMTAyZGQwMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMyMDIxNDU2NGQ1NTQwMjVhZjU5OWUzMjcwNzliMjcyMGVmMDBkZjM3Y2ZiN2MzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDA0NjA5OGRjNWYyYjk5ZTNiYzJlZDY2NDJkN2YwYTYxZWZhYmMxNWMzOGM3NjMzM2JjY2NlZWVlMzY5YTRmNGE1YmRkYThlYTU5MjY0MTI0ZTQyOWYwODYzMjY4M2RkYmExN2JiZjI2MmQ4MmI2YmVmYTNiNGUxNDgwMzc2YThjN2YzYzdkN2UyYTY3NzliYmYxODI2MmFhODU3ZGU4YzIwYTEyYjZhMmNlOGU0ZDdmMzFkZDFiMTk1MzkyY2Y2MTg1YWZjZTM0YWZlMDU4OTYwNTdiMzZlOWIxNzFiNmM2N2VkN2MyMjg2Y2JmYTgzZmY4YTE2N2M3YmM3MTA5YWVlN2Q3ZTE5MDliZDM4NGZiZmM2MTkzOGVmY2E1MWM4OTkzYzcxZGIzMTc3MzBmMTZlN2U3NzY4NjdhZTRmZGM1NjJkNmYxNWRlNTg1ZTdiOTRlZjQ5NmEzNjc2MzY3YTJjYmFhYjdiNjM2NjQ4YjAwNzZiYWQ1Y2RmMWUwOTc0MGVjNmE0NTFiZmY1MzRlZmEyMTUwOWYzYmE3N2I4MTAxYjkxZWE3ZTU1ZGRiZmUxNDAxNTE3MDY3ZDdiMDFhMmEwODc5ZjA4ODVjODk0YTg3Y2ZiNjhjNGQ3ZWU4OTA2MDQ4ODFhZWI5N2MyMmQxZjMzN2VmOTIzZTAzNWE2NDAwIgogCiBQS0NTNyBQYXJzZSBGYWlsdXJlIEludmFsaWQgQVNOMTogQ2hhbmdlIGxlbmd0aCBmcm9tIDc2IHRvIDc3ICMzNTkuMAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHBrY3M3X2FzbjFfZmFpbDoiMzA4MjAzMjYwNjA5MmE4NjQ4ODZmNzBkMDEwNzAyYTA4MjAzMTczMDgyMDMxMzAyMDEwMTMxMGYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBiMDYwOTJhODY0ODg2ZjcwZDAxMDcwMTMxODIwMmVlMzA4MjAxNzMwMjAxMDEzMDRkMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDViZWNkODcxOTVjMWRlZmY5MGMyNGM5MTI2OWI1NWIzZjA2OWJjMjI1YzMyNmMzMTRjMWE1MTc4NmZmZTE0YzgzMGJlNGU0YmM3M2NiYTM2Yzk3Njc3YjQ0MTY4Mjc5YmU5MWU3Y2RmN2MxOTM4NmFlMjE4NjI3MTlkMTNhM2EwZmZmMDgwM2Q0NjA5NjJmMmNkYTgzNzE0ODQ4NzMyNTJjM2Q3MDU0ZGI4MTQzZTJiMDgxYTM4MTZlZDA4MDRjYTUwOTlhZTVmZWNlODNkNWMyYzM3ODNiMTk4OGI0YjQ2ZGM5NGU1NTU4N2ExMDdlYTE1NDZiZjIyZDI4YTA5N2Y2NTJhNDA2NmRjMjk2NTI2OTA2OWFmMmY1MTc2YmI4Y2U5Y2E2ZDExZjk2NzU3ZjAzMjA0Zjc1NjcwMzU4N2QwMGFkNDI0Nzk2YzkyZmM3YWViNmY0OTQ0MzE5OTllZGEzMDk5MGU0ZjU3NzM2MzJlZDI1OGZlMDI3NjY3MzU5OWRhNmZjZTM1Y2RhZDc3MjZhMGJiMDI0Y2FkOTk2Yjg4ZTBjYjk4ODU0Y2ViNWMwYjZlYzc0OGQ5ZjljZTZhNmNkNDM3ODU4YmFjYjgxNDYxOGEyNzJmZjNhNDE1YzZlMDdmM2RiMDk4ODc3N2ZkZWM4NDVhOTdiZjdkMTAyZGQwMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMyMDIxNDU2NGQ1NTQwMjVhZjU5OWUzMjcwNzliMjcyMGVmMDBkZjM3Y2ZiN2MzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDA0NjA5OGRjNWYyYjk5ZTNiYzJlZDY2NDJkN2YwYTYxZWZhYmMxNWMzOGM3NjMzM2JjY2NlZWVlMzY5YTRmNGE1YmRkYThlYTU5MjY0MTI0ZTQyOWYwODYzMjY4M2RkYmExN2JiZjI2MmQ4MmI2YmVmYTNiNGUxNDgwMzc2YThjN2YzYzdkN2UyYTY3NzliYmYxODI2MmFhODU3ZGU4YzIwYTEyYjZhMmNlOGU0ZDdmMzFkZDFiMTk1MzkyY2Y2MTg1YWZjZTM0YWZlMDU4OTYwNTdiMzZlOWIxNzFiNmM2N2VkN2MyMjg2Y2JmYTgzZmY4YTE2N2M3YmM3MTA5YWVlN2Q3ZTE5MDliZDM4NGZiZmM2MTkzOGVmY2E1MWM4OTkzYzcxZGIzMTc3MzBmMTZlN2U3NzY4NjdhZTRmZGM1NjJkNmYxNWRlNTg1ZTdiOTRlZjQ5NmEzNjc2MzY3YTJjYmFhYjdiNjM2NjQ4YjAwNzZiYWQ1Y2RmMWUwOTc0MGVjNmE0NTFiZmY1MzRlZmEyMTUwOWYzYmE3N2I4MTAxYjkxZWE3ZTU1ZGRiZmUxNDAxNTE3MDY3ZDdiMDFhMmEwODc5ZjA4ODVjODk0YTg3Y2ZiNjhjNGQ3ZWU4OTA2MDQ4ODFhZWI5N2MyMmQxZjMzN2VmOTIzZTAzNWE2NDAwIgogCiBQS0NTNyBQYXJzZSBGYWlsdXJlIEludmFsaWQgQVNOMTogQ2hhbmdlIGNvbnRlbnRzIG9mIHRhZyAzMCB0byBjb250YWluIG9uZSB1bmFjY291bnRlZCBleHRyYSBieXRlICMzNjAuMAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHBrY3M3X2FzbjFfZmFpbDoiMzA4MjAzMjYwNjA5MmE4NjQ4ODZmNzBkMDEwNzAyYTA4MjAzMTczMDgyMDMxMzAyMDEwMTMxMGYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBiMDYwOTJhODY0ODg2ZjcwZDAxMDcwMTMxODIwMmVlMzA4MjAxNzMwMjAxMDEzMDRkMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYwMDMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwNWJlY2Q4NzE5NWMxZGVmZjkwYzI0YzkxMjY5YjU1YjNmMDY5YmMyMjVjMzI2YzMxNGMxYTUxNzg2ZmZlMTRjODMwYmU0ZTRiYzczY2JhMzZjOTc2NzdiNDQxNjgyNzliZTkxZTdjZGY3YzE5Mzg2YWUyMTg2MjcxOWQxM2EzYTBmZmYwODAzZDQ2MDk2MmYyY2RhODM3MTQ4NDg3MzI1MmMzZDcwNTRkYjgxNDNlMmIwODFhMzgxNmVkMDgwNGNhNTA5OWFlNWZlY2U4M2Q1YzJjMzc4M2IxOTg4YjRiNDZkYzk0ZTU1NTg3YTEwN2VhMTU0NmJmMjJkMjhhMDk3ZjY1MmE0MDY2ZGMyOTY1MjY5MDY5YWYyZjUxNzZiYjhjZTljYTZkMTFmOTY3NTdmMDMyMDRmNzU2NzAzNTg3ZDAwYWQ0MjQ3OTZjOTJmYzdhZWI2ZjQ5NDQzMTk5OWVkYTMwOTkwZTRmNTc3MzYzMmVkMjU4ZmUwMjc2NjczNTk5ZGE2ZmNlMzVjZGFkNzcyNmEwYmIwMjRjYWQ5OTZiODhlMGNiOTg4NTRjZWI1YzBiNmVjNzQ4ZDlmOWNlNmE2Y2Q0Mzc4NThiYWNiODE0NjE4YTI3MmZmM2E0MTVjNmUwN2YzZGIwOTg4Nzc3ZmRlYzg0NWE5N2JmN2QxMDJkZDAzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzIwMjE0NTY0ZDU1NDAyNWFmNTk5ZTMyNzA3OWIyNzIwZWYwMGRmMzdjZmI3YzMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwMDQ2MDk4ZGM1ZjJiOTllM2JjMmVkNjY0MmQ3ZjBhNjFlZmFiYzE1YzM4Yzc2MzMzYmNjY2VlZWUzNjlhNGY0YTViZGRhOGVhNTkyNjQxMjRlNDI5ZjA4NjMyNjgzZGRiYTE3YmJmMjYyZDgyYjZiZWZhM2I0ZTE0ODAzNzZhOGM3ZjNjN2Q3ZTJhNjc3OWJiZjE4MjYyYWE4NTdkZThjMjBhMTJiNmEyY2U4ZTRkN2YzMWRkMWIxOTUzOTJjZjYxODVhZmNlMzRhZmUwNTg5NjA1N2IzNmU5YjE3MWI2YzY3ZWQ3YzIyODZjYmZhODNmZjhhMTY3YzdiYzcxMDlhZWU3ZDdlMTkwOWJkMzg0ZmJmYzYxOTM4ZWZjYTUxYzg5OTNjNzFkYjMxNzczMGYxNmU3ZTc3Njg2N2FlNGZkYzU2MmQ2ZjE1ZGU1ODVlN2I5NGVmNDk2YTM2NzYzNjdhMmNiYWFiN2I2MzY2NDhiMDA3NmJhZDVjZGYxZTA5NzQwZWM2YTQ1MWJmZjUzNGVmYTIxNTA5ZjNiYTc3YjgxMDFiOTFlYTdlNTVkZGJmZTE0MDE1MTcwNjdkN2IwMWEyYTA4NzlmMDg4NWM4OTRhODdjZmI2OGM0ZDdlZTg5MDYwNDg4MWFlYjk3YzIyZDFmMzM3ZWY5MjNlMDM1YTY0MDAiCiAKIFBLQ1M3IFBhcnNlIEZhaWx1cmUgSW52YWxpZCBBU04xOiBDaGFuZ2UgbGVuZ3RoIGZyb20gNzYgdG8gNzUgIzM2MS4wCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NgogcGtjczdfYXNuMV9mYWlsOiIzMDgyMDMyNjA2MDkyYTg2NDg4NmY3MGQwMTA3MDJhMDgyMDMxNzMwODIwMzEzMDIwMTAxMzEwZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGIwNjA5MmE4NjQ4ODZmNzBkMDEwNzAxMzE4MjAyZWUzMDgyMDE3MzAyMDEwMTMwNGIzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwNWJlY2Q4NzE5NWMxZGVmZjkwYzI0YzkxMjY5YjU1YjNmMDY5YmMyMjVjMzI2YzMxNGMxYTUxNzg2ZmZlMTRjODMwYmU0ZTRiYzczY2JhMzZjOTc2NzdiNDQxNjgyNzliZTkxZTdjZGY3YzE5Mzg2YWUyMTg2MjcxOWQxM2EzYTBmZmYwODAzZDQ2MDk2MmYyY2RhODM3MTQ4NDg3MzI1MmMzZDcwNTRkYjgxNDNlMmIwODFhMzgxNmVkMDgwNGNhNTA5OWFlNWZlY2U4M2Q1YzJjMzc4M2IxOTg4YjRiNDZkYzk0ZTU1NTg3YTEwN2VhMTU0NmJmMjJkMjhhMDk3ZjY1MmE0MDY2ZGMyOTY1MjY5MDY5YWYyZjUxNzZiYjhjZTljYTZkMTFmOTY3NTdmMDMyMDRmNzU2NzAzNTg3ZDAwYWQ0MjQ3OTZjOTJmYzdhZWI2ZjQ5NDQzMTk5OWVkYTMwOTkwZTRmNTc3MzYzMmVkMjU4ZmUwMjc2NjczNTk5ZGE2ZmNlMzVjZGFkNzcyNmEwYmIwMjRjYWQ5OTZiODhlMGNiOTg4NTRjZWI1YzBiNmVjNzQ4ZDlmOWNlNmE2Y2Q0Mzc4NThiYWNiODE0NjE4YTI3MmZmM2E0MTVjNmUwN2YzZGIwOTg4Nzc3ZmRlYzg0NWE5N2JmN2QxMDJkZDAzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzIwMjE0NTY0ZDU1NDAyNWFmNTk5ZTMyNzA3OWIyNzIwZWYwMGRmMzdjZmI3YzMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwMDQ2MDk4ZGM1ZjJiOTllM2JjMmVkNjY0MmQ3ZjBhNjFlZmFiYzE1YzM4Yzc2MzMzYmNjY2VlZWUzNjlhNGY0YTViZGRhOGVhNTkyNjQxMjRlNDI5ZjA4NjMyNjgzZGRiYTE3YmJmMjYyZDgyYjZiZWZhM2I0ZTE0ODAzNzZhOGM3ZjNjN2Q3ZTJhNjc3OWJiZjE4MjYyYWE4NTdkZThjMjBhMTJiNmEyY2U4ZTRkN2YzMWRkMWIxOTUzOTJjZjYxODVhZmNlMzRhZmUwNTg5NjA1N2IzNmU5YjE3MWI2YzY3ZWQ3YzIyODZjYmZhODNmZjhhMTY3YzdiYzcxMDlhZWU3ZDdlMTkwOWJkMzg0ZmJmYzYxOTM4ZWZjYTUxYzg5OTNjNzFkYjMxNzczMGYxNmU3ZTc3Njg2N2FlNGZkYzU2MmQ2ZjE1ZGU1ODVlN2I5NGVmNDk2YTM2NzYzNjdhMmNiYWFiN2I2MzY2NDhiMDA3NmJhZDVjZGYxZTA5NzQwZWM2YTQ1MWJmZjUzNGVmYTIxNTA5ZjNiYTc3YjgxMDFiOTFlYTdlNTVkZGJmZTE0MDE1MTcwNjdkN2IwMWEyYTA4NzlmMDg4NWM4OTRhODdjZmI2OGM0ZDdlZTg5MDYwNDg4MWFlYjk3YzIyZDFmMzM3ZWY5MjNlMDM1YTY0MDAiCiAKIFBLQ1M3IFBhcnNlIEZhaWx1cmUgSW52YWxpZCBBU04xOiBDaGFuZ2UgdGFnIDMwIHRvIDAyICMzNjIuMAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHBrY3M3X2FzbjFfZmFpbDoiMzA4MjAzMjYwNjA5MmE4NjQ4ODZmNzBkMDEwNzAyYTA4MjAzMTczMDgyMDMxMzAyMDEwMTMxMGYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBiMDYwOTJhODY0ODg2ZjcwZDAxMDcwMTMxODIwMmVlMzA4MjAxNzMwMjAxMDEzMDRjMDIzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDViZWNkODcxOTVjMWRlZmY5MGMyNGM5MTI2OWI1NWIzZjA2OWJjMjI1YzMyNmMzMTRjMWE1MTc4NmZmZTE0YzgzMGJlNGU0YmM3M2NiYTM2Yzk3Njc3YjQ0MTY4Mjc5YmU5MWU3Y2RmN2MxOTM4NmFlMjE4NjI3MTlkMTNhM2EwZmZmMDgwM2Q0NjA5NjJmMmNkYTgzNzE0ODQ4NzMyNTJjM2Q3MDU0ZGI4MTQzZTJiMDgxYTM4MTZlZDA4MDRjYTUwOTlhZTVmZWNlODNkNWMyYzM3ODNiMTk4OGI0YjQ2ZGM5NGU1NTU4N2ExMDdlYTE1NDZiZjIyZDI4YTA5N2Y2NTJhNDA2NmRjMjk2NTI2OTA2OWFmMmY1MTc2YmI4Y2U5Y2E2ZDExZjk2NzU3ZjAzMjA0Zjc1NjcwMzU4N2QwMGFkNDI0Nzk2YzkyZmM3YWViNmY0OTQ0MzE5OTllZGEzMDk5MGU0ZjU3NzM2MzJlZDI1OGZlMDI3NjY3MzU5OWRhNmZjZTM1Y2RhZDc3MjZhMGJiMDI0Y2FkOTk2Yjg4ZTBjYjk4ODU0Y2ViNWMwYjZlYzc0OGQ5ZjljZTZhNmNkNDM3ODU4YmFjYjgxNDYxOGEyNzJmZjNhNDE1YzZlMDdmM2RiMDk4ODc3N2ZkZWM4NDVhOTdiZjdkMTAyZGQwMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMyMDIxNDU2NGQ1NTQwMjVhZjU5OWUzMjcwNzliMjcyMGVmMDBkZjM3Y2ZiN2MzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDA0NjA5OGRjNWYyYjk5ZTNiYzJlZDY2NDJkN2YwYTYxZWZhYmMxNWMzOGM3NjMzM2JjY2NlZWVlMzY5YTRmNGE1YmRkYThlYTU5MjY0MTI0ZTQyOWYwODYzMjY4M2RkYmExN2JiZjI2MmQ4MmI2YmVmYTNiNGUxNDgwMzc2YThjN2YzYzdkN2UyYTY3NzliYmYxODI2MmFhODU3ZGU4YzIwYTEyYjZhMmNlOGU0ZDdmMzFkZDFiMTk1MzkyY2Y2MTg1YWZjZTM0YWZlMDU4OTYwNTdiMzZlOWIxNzFiNmM2N2VkN2MyMjg2Y2JmYTgzZmY4YTE2N2M3YmM3MTA5YWVlN2Q3ZTE5MDliZDM4NGZiZmM2MTkzOGVmY2E1MWM4OTkzYzcxZGIzMTc3MzBmMTZlN2U3NzY4NjdhZTRmZGM1NjJkNmYxNWRlNTg1ZTdiOTRlZjQ5NmEzNjc2MzY3YTJjYmFhYjdiNjM2NjQ4YjAwNzZiYWQ1Y2RmMWUwOTc0MGVjNmE0NTFiZmY1MzRlZmEyMTUwOWYzYmE3N2I4MTAxYjkxZWE3ZTU1ZGRiZmUxNDAxNTE3MDY3ZDdiMDFhMmEwODc5ZjA4ODVjODk0YTg3Y2ZiNjhjNGQ3ZWU4OTA2MDQ4ODFhZWI5N2MyMmQxZjMzN2VmOTIzZTAzNWE2NDAwIgogCiBQS0NTNyBQYXJzZSBGYWlsdXJlIEludmFsaWQgQVNOMTogQ2hhbmdlIGxlbmd0aCBmcm9tIDUyIHRvIDUzICMzNjMuMAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHBrY3M3X2FzbjFfZmFpbDoiMzA4MjAzMjYwNjA5MmE4NjQ4ODZmNzBkMDEwNzAyYTA4MjAzMTczMDgyMDMxMzAyMDEwMTMxMGYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBiMDYwOTJhODY0ODg2ZjcwZDAxMDcwMTMxODIwMmVlMzA4MjAxNzMwMjAxMDEzMDRjMzAzNTMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDViZWNkODcxOTVjMWRlZmY5MGMyNGM5MTI2OWI1NWIzZjA2OWJjMjI1YzMyNmMzMTRjMWE1MTc4NmZmZTE0YzgzMGJlNGU0YmM3M2NiYTM2Yzk3Njc3YjQ0MTY4Mjc5YmU5MWU3Y2RmN2MxOTM4NmFlMjE4NjI3MTlkMTNhM2EwZmZmMDgwM2Q0NjA5NjJmMmNkYTgzNzE0ODQ4NzMyNTJjM2Q3MDU0ZGI4MTQzZTJiMDgxYTM4MTZlZDA4MDRjYTUwOTlhZTVmZWNlODNkNWMyYzM3ODNiMTk4OGI0YjQ2ZGM5NGU1NTU4N2ExMDdlYTE1NDZiZjIyZDI4YTA5N2Y2NTJhNDA2NmRjMjk2NTI2OTA2OWFmMmY1MTc2YmI4Y2U5Y2E2ZDExZjk2NzU3ZjAzMjA0Zjc1NjcwMzU4N2QwMGFkNDI0Nzk2YzkyZmM3YWViNmY0OTQ0MzE5OTllZGEzMDk5MGU0ZjU3NzM2MzJlZDI1OGZlMDI3NjY3MzU5OWRhNmZjZTM1Y2RhZDc3MjZhMGJiMDI0Y2FkOTk2Yjg4ZTBjYjk4ODU0Y2ViNWMwYjZlYzc0OGQ5ZjljZTZhNmNkNDM3ODU4YmFjYjgxNDYxOGEyNzJmZjNhNDE1YzZlMDdmM2RiMDk4ODc3N2ZkZWM4NDVhOTdiZjdkMTAyZGQwMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMyMDIxNDU2NGQ1NTQwMjVhZjU5OWUzMjcwNzliMjcyMGVmMDBkZjM3Y2ZiN2MzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDA0NjA5OGRjNWYyYjk5ZTNiYzJlZDY2NDJkN2YwYTYxZWZhYmMxNWMzOGM3NjMzM2JjY2NlZWVlMzY5YTRmNGE1YmRkYThlYTU5MjY0MTI0ZTQyOWYwODYzMjY4M2RkYmExN2JiZjI2MmQ4MmI2YmVmYTNiNGUxNDgwMzc2YThjN2YzYzdkN2UyYTY3NzliYmYxODI2MmFhODU3ZGU4YzIwYTEyYjZhMmNlOGU0ZDdmMzFkZDFiMTk1MzkyY2Y2MTg1YWZjZTM0YWZlMDU4OTYwNTdiMzZlOWIxNzFiNmM2N2VkN2MyMjg2Y2JmYTgzZmY4YTE2N2M3YmM3MTA5YWVlN2Q3ZTE5MDliZDM4NGZiZmM2MTkzOGVmY2E1MWM4OTkzYzcxZGIzMTc3MzBmMTZlN2U3NzY4NjdhZTRmZGM1NjJkNmYxNWRlNTg1ZTdiOTRlZjQ5NmEzNjc2MzY3YTJjYmFhYjdiNjM2NjQ4YjAwNzZiYWQ1Y2RmMWUwOTc0MGVjNmE0NTFiZmY1MzRlZmEyMTUwOWYzYmE3N2I4MTAxYjkxZWE3ZTU1ZGRiZmUxNDAxNTE3MDY3ZDdiMDFhMmEwODc5ZjA4ODVjODk0YTg3Y2ZiNjhjNGQ3ZWU4OTA2MDQ4ODFhZWI5N2MyMmQxZjMzN2VmOTIzZTAzNWE2NDAwIgogCiBQS0NTNyBQYXJzZSBGYWlsdXJlIEludmFsaWQgQVNOMTogQ2hhbmdlIGNvbnRlbnRzIG9mIHRhZyAzMCB0byBjb250YWluIG9uZSB1bmFjY291bnRlZCBleHRyYSBieXRlICMzNjQuMAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHBrY3M3X2FzbjFfZmFpbDoiMzA4MjAzMjYwNjA5MmE4NjQ4ODZmNzBkMDEwNzAyYTA4MjAzMTczMDgyMDMxMzAyMDEwMTMxMGYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBiMDYwOTJhODY0ODg2ZjcwZDAxMDcwMTMxODIwMmVlMzA4MjAxNzMwMjAxMDEzMDRjMzAzNTMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMDAwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwNWJlY2Q4NzE5NWMxZGVmZjkwYzI0YzkxMjY5YjU1YjNmMDY5YmMyMjVjMzI2YzMxNGMxYTUxNzg2ZmZlMTRjODMwYmU0ZTRiYzczY2JhMzZjOTc2NzdiNDQxNjgyNzliZTkxZTdjZGY3YzE5Mzg2YWUyMTg2MjcxOWQxM2EzYTBmZmYwODAzZDQ2MDk2MmYyY2RhODM3MTQ4NDg3MzI1MmMzZDcwNTRkYjgxNDNlMmIwODFhMzgxNmVkMDgwNGNhNTA5OWFlNWZlY2U4M2Q1YzJjMzc4M2IxOTg4YjRiNDZkYzk0ZTU1NTg3YTEwN2VhMTU0NmJmMjJkMjhhMDk3ZjY1MmE0MDY2ZGMyOTY1MjY5MDY5YWYyZjUxNzZiYjhjZTljYTZkMTFmOTY3NTdmMDMyMDRmNzU2NzAzNTg3ZDAwYWQ0MjQ3OTZjOTJmYzdhZWI2ZjQ5NDQzMTk5OWVkYTMwOTkwZTRmNTc3MzYzMmVkMjU4ZmUwMjc2NjczNTk5ZGE2ZmNlMzVjZGFkNzcyNmEwYmIwMjRjYWQ5OTZiODhlMGNiOTg4NTRjZWI1YzBiNmVjNzQ4ZDlmOWNlNmE2Y2Q0Mzc4NThiYWNiODE0NjE4YTI3MmZmM2E0MTVjNmUwN2YzZGIwOTg4Nzc3ZmRlYzg0NWE5N2JmN2QxMDJkZDAzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzIwMjE0NTY0ZDU1NDAyNWFmNTk5ZTMyNzA3OWIyNzIwZWYwMGRmMzdjZmI3YzMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwMDQ2MDk4ZGM1ZjJiOTllM2JjMmVkNjY0MmQ3ZjBhNjFlZmFiYzE1YzM4Yzc2MzMzYmNjY2VlZWUzNjlhNGY0YTViZGRhOGVhNTkyNjQxMjRlNDI5ZjA4NjMyNjgzZGRiYTE3YmJmMjYyZDgyYjZiZWZhM2I0ZTE0ODAzNzZhOGM3ZjNjN2Q3ZTJhNjc3OWJiZjE4MjYyYWE4NTdkZThjMjBhMTJiNmEyY2U4ZTRkN2YzMWRkMWIxOTUzOTJjZjYxODVhZmNlMzRhZmUwNTg5NjA1N2IzNmU5YjE3MWI2YzY3ZWQ3YzIyODZjYmZhODNmZjhhMTY3YzdiYzcxMDlhZWU3ZDdlMTkwOWJkMzg0ZmJmYzYxOTM4ZWZjYTUxYzg5OTNjNzFkYjMxNzczMGYxNmU3ZTc3Njg2N2FlNGZkYzU2MmQ2ZjE1ZGU1ODVlN2I5NGVmNDk2YTM2NzYzNjdhMmNiYWFiN2I2MzY2NDhiMDA3NmJhZDVjZGYxZTA5NzQwZWM2YTQ1MWJmZjUzNGVmYTIxNTA5ZjNiYTc3YjgxMDFiOTFlYTdlNTVkZGJmZTE0MDE1MTcwNjdkN2IwMWEyYTA4NzlmMDg4NWM4OTRhODdjZmI2OGM0ZDdlZTg5MDYwNDg4MWFlYjk3YzIyZDFmMzM3ZWY5MjNlMDM1YTY0MDAiCiAKIFBLQ1M3IFBhcnNlIEZhaWx1cmUgSW52YWxpZCBBU04xOiBDaGFuZ2UgbGVuZ3RoIGZyb20gNTIgdG8gNTEgIzM2NS4wCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NgogcGtjczdfYXNuMV9mYWlsOiIzMDgyMDMyNjA2MDkyYTg2NDg4NmY3MGQwMTA3MDJhMDgyMDMxNzMwODIwMzEzMDIwMTAxMzEwZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGIwNjA5MmE4NjQ4ODZmNzBkMDEwNzAxMzE4MjAyZWUzMDgyMDE3MzAyMDEwMTMwNGMzMDMzMzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwNWJlY2Q4NzE5NWMxZGVmZjkwYzI0YzkxMjY5YjU1YjNmMDY5YmMyMjVjMzI2YzMxNGMxYTUxNzg2ZmZlMTRjODMwYmU0ZTRiYzczY2JhMzZjOTc2NzdiNDQxNjgyNzliZTkxZTdjZGY3YzE5Mzg2YWUyMTg2MjcxOWQxM2EzYTBmZmYwODAzZDQ2MDk2MmYyY2RhODM3MTQ4NDg3MzI1MmMzZDcwNTRkYjgxNDNlMmIwODFhMzgxNmVkMDgwNGNhNTA5OWFlNWZlY2U4M2Q1YzJjMzc4M2IxOTg4YjRiNDZkYzk0ZTU1NTg3YTEwN2VhMTU0NmJmMjJkMjhhMDk3ZjY1MmE0MDY2ZGMyOTY1MjY5MDY5YWYyZjUxNzZiYjhjZTljYTZkMTFmOTY3NTdmMDMyMDRmNzU2NzAzNTg3ZDAwYWQ0MjQ3OTZjOTJmYzdhZWI2ZjQ5NDQzMTk5OWVkYTMwOTkwZTRmNTc3MzYzMmVkMjU4ZmUwMjc2NjczNTk5ZGE2ZmNlMzVjZGFkNzcyNmEwYmIwMjRjYWQ5OTZiODhlMGNiOTg4NTRjZWI1YzBiNmVjNzQ4ZDlmOWNlNmE2Y2Q0Mzc4NThiYWNiODE0NjE4YTI3MmZmM2E0MTVjNmUwN2YzZGIwOTg4Nzc3ZmRlYzg0NWE5N2JmN2QxMDJkZDAzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzIwMjE0NTY0ZDU1NDAyNWFmNTk5ZTMyNzA3OWIyNzIwZWYwMGRmMzdjZmI3YzMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwMDQ2MDk4ZGM1ZjJiOTllM2JjMmVkNjY0MmQ3ZjBhNjFlZmFiYzE1YzM4Yzc2MzMzYmNjY2VlZWUzNjlhNGY0YTViZGRhOGVhNTkyNjQxMjRlNDI5ZjA4NjMyNjgzZGRiYTE3YmJmMjYyZDgyYjZiZWZhM2I0ZTE0ODAzNzZhOGM3ZjNjN2Q3ZTJhNjc3OWJiZjE4MjYyYWE4NTdkZThjMjBhMTJiNmEyY2U4ZTRkN2YzMWRkMWIxOTUzOTJjZjYxODVhZmNlMzRhZmUwNTg5NjA1N2IzNmU5YjE3MWI2YzY3ZWQ3YzIyODZjYmZhODNmZjhhMTY3YzdiYzcxMDlhZWU3ZDdlMTkwOWJkMzg0ZmJmYzYxOTM4ZWZjYTUxYzg5OTNjNzFkYjMxNzczMGYxNmU3ZTc3Njg2N2FlNGZkYzU2MmQ2ZjE1ZGU1ODVlN2I5NGVmNDk2YTM2NzYzNjdhMmNiYWFiN2I2MzY2NDhiMDA3NmJhZDVjZGYxZTA5NzQwZWM2YTQ1MWJmZjUzNGVmYTIxNTA5ZjNiYTc3YjgxMDFiOTFlYTdlNTVkZGJmZTE0MDE1MTcwNjdkN2IwMWEyYTA4NzlmMDg4NWM4OTRhODdjZmI2OGM0ZDdlZTg5MDYwNDg4MWFlYjk3YzIyZDFmMzM3ZWY5MjNlMDM1YTY0MDAiCiAKIFBLQ1M3IFBhcnNlIEZhaWx1cmUgSW52YWxpZCBBU04xOiBDaGFuZ2UgdGFnIDMxIHRvIDAyICMzNjYuMAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHBrY3M3X2FzbjFfZmFpbDoiMzA4MjAzMjYwNjA5MmE4NjQ4ODZmNzBkMDEwNzAyYTA4MjAzMTczMDgyMDMxMzAyMDEwMTMxMGYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBiMDYwOTJhODY0ODg2ZjcwZDAxMDcwMTMxODIwMmVlMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDAyMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDViZWNkODcxOTVjMWRlZmY5MGMyNGM5MTI2OWI1NWIzZjA2OWJjMjI1YzMyNmMzMTRjMWE1MTc4NmZmZTE0YzgzMGJlNGU0YmM3M2NiYTM2Yzk3Njc3YjQ0MTY4Mjc5YmU5MWU3Y2RmN2MxOTM4NmFlMjE4NjI3MTlkMTNhM2EwZmZmMDgwM2Q0NjA5NjJmMmNkYTgzNzE0ODQ4NzMyNTJjM2Q3MDU0ZGI4MTQzZTJiMDgxYTM4MTZlZDA4MDRjYTUwOTlhZTVmZWNlODNkNWMyYzM3ODNiMTk4OGI0YjQ2ZGM5NGU1NTU4N2ExMDdlYTE1NDZiZjIyZDI4YTA5N2Y2NTJhNDA2NmRjMjk2NTI2OTA2OWFmMmY1MTc2YmI4Y2U5Y2E2ZDExZjk2NzU3ZjAzMjA0Zjc1NjcwMzU4N2QwMGFkNDI0Nzk2YzkyZmM3YWViNmY0OTQ0MzE5OTllZGEzMDk5MGU0ZjU3NzM2MzJlZDI1OGZlMDI3NjY3MzU5OWRhNmZjZTM1Y2RhZDc3MjZhMGJiMDI0Y2FkOTk2Yjg4ZTBjYjk4ODU0Y2ViNWMwYjZlYzc0OGQ5ZjljZTZhNmNkNDM3ODU4YmFjYjgxNDYxOGEyNzJmZjNhNDE1YzZlMDdmM2RiMDk4ODc3N2ZkZWM4NDVhOTdiZjdkMTAyZGQwMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMyMDIxNDU2NGQ1NTQwMjVhZjU5OWUzMjcwNzliMjcyMGVmMDBkZjM3Y2ZiN2MzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDA0NjA5OGRjNWYyYjk5ZTNiYzJlZDY2NDJkN2YwYTYxZWZhYmMxNWMzOGM3NjMzM2JjY2NlZWVlMzY5YTRmNGE1YmRkYThlYTU5MjY0MTI0ZTQyOWYwODYzMjY4M2RkYmExN2JiZjI2MmQ4MmI2YmVmYTNiNGUxNDgwMzc2YThjN2YzYzdkN2UyYTY3NzliYmYxODI2MmFhODU3ZGU4YzIwYTEyYjZhMmNlOGU0ZDdmMzFkZDFiMTk1MzkyY2Y2MTg1YWZjZTM0YWZlMDU4OTYwNTdiMzZlOWIxNzFiNmM2N2VkN2MyMjg2Y2JmYTgzZmY4YTE2N2M3YmM3MTA5YWVlN2Q3ZTE5MDliZDM4NGZiZmM2MTkzOGVmY2E1MWM4OTkzYzcxZGIzMTc3MzBmMTZlN2U3NzY4NjdhZTRmZGM1NjJkNmYxNWRlNTg1ZTdiOTRlZjQ5NmEzNjc2MzY3YTJjYmFhYjdiNjM2NjQ4YjAwNzZiYWQ1Y2RmMWUwOTc0MGVjNmE0NTFiZmY1MzRlZmEyMTUwOWYzYmE3N2I4MTAxYjkxZWE3ZTU1ZGRiZmUxNDAxNTE3MDY3ZDdiMDFhMmEwODc5ZjA4ODVjODk0YTg3Y2ZiNjhjNGQ3ZWU4OTA2MDQ4ODFhZWI5N2MyMmQxZjMzN2VmOTIzZTAzNWE2NDAwIgogCiBQS0NTNyBQYXJzZSBGYWlsdXJlIEludmFsaWQgQVNOMTogQ2hhbmdlIGxlbmd0aCBmcm9tIDExIHRvIDEyICMzNjcuMAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHBrY3M3X2FzbjFfZmFpbDoiMzA4MjAzMjYwNjA5MmE4NjQ4ODZmNzBkMDEwNzAyYTA4MjAzMTczMDgyMDMxMzAyMDEwMTMxMGYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBiMDYwOTJhODY0ODg2ZjcwZDAxMDcwMTMxODIwMmVlMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGMzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDViZWNkODcxOTVjMWRlZmY5MGMyNGM5MTI2OWI1NWIzZjA2OWJjMjI1YzMyNmMzMTRjMWE1MTc4NmZmZTE0YzgzMGJlNGU0YmM3M2NiYTM2Yzk3Njc3YjQ0MTY4Mjc5YmU5MWU3Y2RmN2MxOTM4NmFlMjE4NjI3MTlkMTNhM2EwZmZmMDgwM2Q0NjA5NjJmMmNkYTgzNzE0ODQ4NzMyNTJjM2Q3MDU0ZGI4MTQzZTJiMDgxYTM4MTZlZDA4MDRjYTUwOTlhZTVmZWNlODNkNWMyYzM3ODNiMTk4OGI0YjQ2ZGM5NGU1NTU4N2ExMDdlYTE1NDZiZjIyZDI4YTA5N2Y2NTJhNDA2NmRjMjk2NTI2OTA2OWFmMmY1MTc2YmI4Y2U5Y2E2ZDExZjk2NzU3ZjAzMjA0Zjc1NjcwMzU4N2QwMGFkNDI0Nzk2YzkyZmM3YWViNmY0OTQ0MzE5OTllZGEzMDk5MGU0ZjU3NzM2MzJlZDI1OGZlMDI3NjY3MzU5OWRhNmZjZTM1Y2RhZDc3MjZhMGJiMDI0Y2FkOTk2Yjg4ZTBjYjk4ODU0Y2ViNWMwYjZlYzc0OGQ5ZjljZTZhNmNkNDM3ODU4YmFjYjgxNDYxOGEyNzJmZjNhNDE1YzZlMDdmM2RiMDk4ODc3N2ZkZWM4NDVhOTdiZjdkMTAyZGQwMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMyMDIxNDU2NGQ1NTQwMjVhZjU5OWUzMjcwNzliMjcyMGVmMDBkZjM3Y2ZiN2MzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDA0NjA5OGRjNWYyYjk5ZTNiYzJlZDY2NDJkN2YwYTYxZWZhYmMxNWMzOGM3NjMzM2JjY2NlZWVlMzY5YTRmNGE1YmRkYThlYTU5MjY0MTI0ZTQyOWYwODYzMjY4M2RkYmExN2JiZjI2MmQ4MmI2YmVmYTNiNGUxNDgwMzc2YThjN2YzYzdkN2UyYTY3NzliYmYxODI2MmFhODU3ZGU4YzIwYTEyYjZhMmNlOGU0ZDdmMzFkZDFiMTk1MzkyY2Y2MTg1YWZjZTM0YWZlMDU4OTYwNTdiMzZlOWIxNzFiNmM2N2VkN2MyMjg2Y2JmYTgzZmY4YTE2N2M3YmM3MTA5YWVlN2Q3ZTE5MDliZDM4NGZiZmM2MTkzOGVmY2E1MWM4OTkzYzcxZGIzMTc3MzBmMTZlN2U3NzY4NjdhZTRmZGM1NjJkNmYxNWRlNTg1ZTdiOTRlZjQ5NmEzNjc2MzY3YTJjYmFhYjdiNjM2NjQ4YjAwNzZiYWQ1Y2RmMWUwOTc0MGVjNmE0NTFiZmY1MzRlZmEyMTUwOWYzYmE3N2I4MTAxYjkxZWE3ZTU1ZGRiZmUxNDAxNTE3MDY3ZDdiMDFhMmEwODc5ZjA4ODVjODk0YTg3Y2ZiNjhjNGQ3ZWU4OTA2MDQ4ODFhZWI5N2MyMmQxZjMzN2VmOTIzZTAzNWE2NDAwIgogCiBQS0NTNyBQYXJzZSBGYWlsdXJlIEludmFsaWQgQVNOMTogQ2hhbmdlIGNvbnRlbnRzIG9mIHRhZyAzMSB0byBjb250YWluIG9uZSB1bmFjY291bnRlZCBleHRyYSBieXRlICMzNjguMAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHBrY3M3X2FzbjFfZmFpbDoiMzA4MjAzMjYwNjA5MmE4NjQ4ODZmNzBkMDEwNzAyYTA4MjAzMTczMDgyMDMxMzAyMDEwMTMxMGYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBiMDYwOTJhODY0ODg2ZjcwZDAxMDcwMTMxODIwMmVlMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGMzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMDAzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwNWJlY2Q4NzE5NWMxZGVmZjkwYzI0YzkxMjY5YjU1YjNmMDY5YmMyMjVjMzI2YzMxNGMxYTUxNzg2ZmZlMTRjODMwYmU0ZTRiYzczY2JhMzZjOTc2NzdiNDQxNjgyNzliZTkxZTdjZGY3YzE5Mzg2YWUyMTg2MjcxOWQxM2EzYTBmZmYwODAzZDQ2MDk2MmYyY2RhODM3MTQ4NDg3MzI1MmMzZDcwNTRkYjgxNDNlMmIwODFhMzgxNmVkMDgwNGNhNTA5OWFlNWZlY2U4M2Q1YzJjMzc4M2IxOTg4YjRiNDZkYzk0ZTU1NTg3YTEwN2VhMTU0NmJmMjJkMjhhMDk3ZjY1MmE0MDY2ZGMyOTY1MjY5MDY5YWYyZjUxNzZiYjhjZTljYTZkMTFmOTY3NTdmMDMyMDRmNzU2NzAzNTg3ZDAwYWQ0MjQ3OTZjOTJmYzdhZWI2ZjQ5NDQzMTk5OWVkYTMwOTkwZTRmNTc3MzYzMmVkMjU4ZmUwMjc2NjczNTk5ZGE2ZmNlMzVjZGFkNzcyNmEwYmIwMjRjYWQ5OTZiODhlMGNiOTg4NTRjZWI1YzBiNmVjNzQ4ZDlmOWNlNmE2Y2Q0Mzc4NThiYWNiODE0NjE4YTI3MmZmM2E0MTVjNmUwN2YzZGIwOTg4Nzc3ZmRlYzg0NWE5N2JmN2QxMDJkZDAzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzIwMjE0NTY0ZDU1NDAyNWFmNTk5ZTMyNzA3OWIyNzIwZWYwMGRmMzdjZmI3YzMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwMDQ2MDk4ZGM1ZjJiOTllM2JjMmVkNjY0MmQ3ZjBhNjFlZmFiYzE1YzM4Yzc2MzMzYmNjY2VlZWUzNjlhNGY0YTViZGRhOGVhNTkyNjQxMjRlNDI5ZjA4NjMyNjgzZGRiYTE3YmJmMjYyZDgyYjZiZWZhM2I0ZTE0ODAzNzZhOGM3ZjNjN2Q3ZTJhNjc3OWJiZjE4MjYyYWE4NTdkZThjMjBhMTJiNmEyY2U4ZTRkN2YzMWRkMWIxOTUzOTJjZjYxODVhZmNlMzRhZmUwNTg5NjA1N2IzNmU5YjE3MWI2YzY3ZWQ3YzIyODZjYmZhODNmZjhhMTY3YzdiYzcxMDlhZWU3ZDdlMTkwOWJkMzg0ZmJmYzYxOTM4ZWZjYTUxYzg5OTNjNzFkYjMxNzczMGYxNmU3ZTc3Njg2N2FlNGZkYzU2MmQ2ZjE1ZGU1ODVlN2I5NGVmNDk2YTM2NzYzNjdhMmNiYWFiN2I2MzY2NDhiMDA3NmJhZDVjZGYxZTA5NzQwZWM2YTQ1MWJmZjUzNGVmYTIxNTA5ZjNiYTc3YjgxMDFiOTFlYTdlNTVkZGJmZTE0MDE1MTcwNjdkN2IwMWEyYTA4NzlmMDg4NWM4OTRhODdjZmI2OGM0ZDdlZTg5MDYwNDg4MWFlYjk3YzIyZDFmMzM3ZWY5MjNlMDM1YTY0MDAiCiAKIFBLQ1M3IFBhcnNlIEZhaWx1cmUgSW52YWxpZCBBU04xOiBDaGFuZ2UgbGVuZ3RoIGZyb20gMTEgdG8gMTAgIzM2OS4wCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NgogcGtjczdfYXNuMV9mYWlsOiIzMDgyMDMyNjA2MDkyYTg2NDg4NmY3MGQwMTA3MDJhMDgyMDMxNzMwODIwMzEzMDIwMTAxMzEwZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGIwNjA5MmE4NjQ4ODZmNzBkMDEwNzAxMzE4MjAyZWUzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYTMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwNWJlY2Q4NzE5NWMxZGVmZjkwYzI0YzkxMjY5YjU1YjNmMDY5YmMyMjVjMzI2YzMxNGMxYTUxNzg2ZmZlMTRjODMwYmU0ZTRiYzczY2JhMzZjOTc2NzdiNDQxNjgyNzliZTkxZTdjZGY3YzE5Mzg2YWUyMTg2MjcxOWQxM2EzYTBmZmYwODAzZDQ2MDk2MmYyY2RhODM3MTQ4NDg3MzI1MmMzZDcwNTRkYjgxNDNlMmIwODFhMzgxNmVkMDgwNGNhNTA5OWFlNWZlY2U4M2Q1YzJjMzc4M2IxOTg4YjRiNDZkYzk0ZTU1NTg3YTEwN2VhMTU0NmJmMjJkMjhhMDk3ZjY1MmE0MDY2ZGMyOTY1MjY5MDY5YWYyZjUxNzZiYjhjZTljYTZkMTFmOTY3NTdmMDMyMDRmNzU2NzAzNTg3ZDAwYWQ0MjQ3OTZjOTJmYzdhZWI2ZjQ5NDQzMTk5OWVkYTMwOTkwZTRmNTc3MzYzMmVkMjU4ZmUwMjc2NjczNTk5ZGE2ZmNlMzVjZGFkNzcyNmEwYmIwMjRjYWQ5OTZiODhlMGNiOTg4NTRjZWI1YzBiNmVjNzQ4ZDlmOWNlNmE2Y2Q0Mzc4NThiYWNiODE0NjE4YTI3MmZmM2E0MTVjNmUwN2YzZGIwOTg4Nzc3ZmRlYzg0NWE5N2JmN2QxMDJkZDAzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzIwMjE0NTY0ZDU1NDAyNWFmNTk5ZTMyNzA3OWIyNzIwZWYwMGRmMzdjZmI3YzMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwMDQ2MDk4ZGM1ZjJiOTllM2JjMmVkNjY0MmQ3ZjBhNjFlZmFiYzE1YzM4Yzc2MzMzYmNjY2VlZWUzNjlhNGY0YTViZGRhOGVhNTkyNjQxMjRlNDI5ZjA4NjMyNjgzZGRiYTE3YmJmMjYyZDgyYjZiZWZhM2I0ZTE0ODAzNzZhOGM3ZjNjN2Q3ZTJhNjc3OWJiZjE4MjYyYWE4NTdkZThjMjBhMTJiNmEyY2U4ZTRkN2YzMWRkMWIxOTUzOTJjZjYxODVhZmNlMzRhZmUwNTg5NjA1N2IzNmU5YjE3MWI2YzY3ZWQ3YzIyODZjYmZhODNmZjhhMTY3YzdiYzcxMDlhZWU3ZDdlMTkwOWJkMzg0ZmJmYzYxOTM4ZWZjYTUxYzg5OTNjNzFkYjMxNzczMGYxNmU3ZTc3Njg2N2FlNGZkYzU2MmQ2ZjE1ZGU1ODVlN2I5NGVmNDk2YTM2NzYzNjdhMmNiYWFiN2I2MzY2NDhiMDA3NmJhZDVjZGYxZTA5NzQwZWM2YTQ1MWJmZjUzNGVmYTIxNTA5ZjNiYTc3YjgxMDFiOTFlYTdlNTVkZGJmZTE0MDE1MTcwNjdkN2IwMWEyYTA4NzlmMDg4NWM4OTRhODdjZmI2OGM0ZDdlZTg5MDYwNDg4MWFlYjk3YzIyZDFmMzM3ZWY5MjNlMDM1YTY0MDAiCiAKIFBLQ1M3IFBhcnNlIEZhaWx1cmUgSW52YWxpZCBBU04xOiBDaGFuZ2UgdGFnIDMwIHRvIDAyICMzNzAuMAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHBrY3M3X2FzbjFfZmFpbDoiMzA4MjAzMjYwNjA5MmE4NjQ4ODZmNzBkMDEwNzAyYTA4MjAzMTczMDgyMDMxMzAyMDEwMTMxMGYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBiMDYwOTJhODY0ODg2ZjcwZDAxMDcwMTMxODIwMmVlMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIwMjA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDViZWNkODcxOTVjMWRlZmY5MGMyNGM5MTI2OWI1NWIzZjA2OWJjMjI1YzMyNmMzMTRjMWE1MTc4NmZmZTE0YzgzMGJlNGU0YmM3M2NiYTM2Yzk3Njc3YjQ0MTY4Mjc5YmU5MWU3Y2RmN2MxOTM4NmFlMjE4NjI3MTlkMTNhM2EwZmZmMDgwM2Q0NjA5NjJmMmNkYTgzNzE0ODQ4NzMyNTJjM2Q3MDU0ZGI4MTQzZTJiMDgxYTM4MTZlZDA4MDRjYTUwOTlhZTVmZWNlODNkNWMyYzM3ODNiMTk4OGI0YjQ2ZGM5NGU1NTU4N2ExMDdlYTE1NDZiZjIyZDI4YTA5N2Y2NTJhNDA2NmRjMjk2NTI2OTA2OWFmMmY1MTc2YmI4Y2U5Y2E2ZDExZjk2NzU3ZjAzMjA0Zjc1NjcwMzU4N2QwMGFkNDI0Nzk2YzkyZmM3YWViNmY0OTQ0MzE5OTllZGEzMDk5MGU0ZjU3NzM2MzJlZDI1OGZlMDI3NjY3MzU5OWRhNmZjZTM1Y2RhZDc3MjZhMGJiMDI0Y2FkOTk2Yjg4ZTBjYjk4ODU0Y2ViNWMwYjZlYzc0OGQ5ZjljZTZhNmNkNDM3ODU4YmFjYjgxNDYxOGEyNzJmZjNhNDE1YzZlMDdmM2RiMDk4ODc3N2ZkZWM4NDVhOTdiZjdkMTAyZGQwMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMyMDIxNDU2NGQ1NTQwMjVhZjU5OWUzMjcwNzliMjcyMGVmMDBkZjM3Y2ZiN2MzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDA0NjA5OGRjNWYyYjk5ZTNiYzJlZDY2NDJkN2YwYTYxZWZhYmMxNWMzOGM3NjMzM2JjY2NlZWVlMzY5YTRmNGE1YmRkYThlYTU5MjY0MTI0ZTQyOWYwODYzMjY4M2RkYmExN2JiZjI2MmQ4MmI2YmVmYTNiNGUxNDgwMzc2YThjN2YzYzdkN2UyYTY3NzliYmYxODI2MmFhODU3ZGU4YzIwYTEyYjZhMmNlOGU0ZDdmMzFkZDFiMTk1MzkyY2Y2MTg1YWZjZTM0YWZlMDU4OTYwNTdiMzZlOWIxNzFiNmM2N2VkN2MyMjg2Y2JmYTgzZmY4YTE2N2M3YmM3MTA5YWVlN2Q3ZTE5MDliZDM4NGZiZmM2MTkzOGVmY2E1MWM4OTkzYzcxZGIzMTc3MzBmMTZlN2U3NzY4NjdhZTRmZGM1NjJkNmYxNWRlNTg1ZTdiOTRlZjQ5NmEzNjc2MzY3YTJjYmFhYjdiNjM2NjQ4YjAwNzZiYWQ1Y2RmMWUwOTc0MGVjNmE0NTFiZmY1MzRlZmEyMTUwOWYzYmE3N2I4MTAxYjkxZWE3ZTU1ZGRiZmUxNDAxNTE3MDY3ZDdiMDFhMmEwODc5ZjA4ODVjODk0YTg3Y2ZiNjhjNGQ3ZWU4OTA2MDQ4ODFhZWI5N2MyMmQxZjMzN2VmOTIzZTAzNWE2NDAwIgogCiBQS0NTNyBQYXJzZSBGYWlsdXJlIEludmFsaWQgQVNOMTogQ2hhbmdlIGxlbmd0aCBmcm9tIDkgdG8gMTAgIzM3MS4wCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NgogcGtjczdfYXNuMV9mYWlsOiIzMDgyMDMyNjA2MDkyYTg2NDg4NmY3MGQwMTA3MDJhMDgyMDMxNzMwODIwMzEzMDIwMTAxMzEwZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGIwNjA5MmE4NjQ4ODZmNzBkMDEwNzAxMzE4MjAyZWUzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMGEwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwNWJlY2Q4NzE5NWMxZGVmZjkwYzI0YzkxMjY5YjU1YjNmMDY5YmMyMjVjMzI2YzMxNGMxYTUxNzg2ZmZlMTRjODMwYmU0ZTRiYzczY2JhMzZjOTc2NzdiNDQxNjgyNzliZTkxZTdjZGY3YzE5Mzg2YWUyMTg2MjcxOWQxM2EzYTBmZmYwODAzZDQ2MDk2MmYyY2RhODM3MTQ4NDg3MzI1MmMzZDcwNTRkYjgxNDNlMmIwODFhMzgxNmVkMDgwNGNhNTA5OWFlNWZlY2U4M2Q1YzJjMzc4M2IxOTg4YjRiNDZkYzk0ZTU1NTg3YTEwN2VhMTU0NmJmMjJkMjhhMDk3ZjY1MmE0MDY2ZGMyOTY1MjY5MDY5YWYyZjUxNzZiYjhjZTljYTZkMTFmOTY3NTdmMDMyMDRmNzU2NzAzNTg3ZDAwYWQ0MjQ3OTZjOTJmYzdhZWI2ZjQ5NDQzMTk5OWVkYTMwOTkwZTRmNTc3MzYzMmVkMjU4ZmUwMjc2NjczNTk5ZGE2ZmNlMzVjZGFkNzcyNmEwYmIwMjRjYWQ5OTZiODhlMGNiOTg4NTRjZWI1YzBiNmVjNzQ4ZDlmOWNlNmE2Y2Q0Mzc4NThiYWNiODE0NjE4YTI3MmZmM2E0MTVjNmUwN2YzZGIwOTg4Nzc3ZmRlYzg0NWE5N2JmN2QxMDJkZDAzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzIwMjE0NTY0ZDU1NDAyNWFmNTk5ZTMyNzA3OWIyNzIwZWYwMGRmMzdjZmI3YzMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwMDQ2MDk4ZGM1ZjJiOTllM2JjMmVkNjY0MmQ3ZjBhNjFlZmFiYzE1YzM4Yzc2MzMzYmNjY2VlZWUzNjlhNGY0YTViZGRhOGVhNTkyNjQxMjRlNDI5ZjA4NjMyNjgzZGRiYTE3YmJmMjYyZDgyYjZiZWZhM2I0ZTE0ODAzNzZhOGM3ZjNjN2Q3ZTJhNjc3OWJiZjE4MjYyYWE4NTdkZThjMjBhMTJiNmEyY2U4ZTRkN2YzMWRkMWIxOTUzOTJjZjYxODVhZmNlMzRhZmUwNTg5NjA1N2IzNmU5YjE3MWI2YzY3ZWQ3YzIyODZjYmZhODNmZjhhMTY3YzdiYzcxMDlhZWU3ZDdlMTkwOWJkMzg0ZmJmYzYxOTM4ZWZjYTUxYzg5OTNjNzFkYjMxNzczMGYxNmU3ZTc3Njg2N2FlNGZkYzU2MmQ2ZjE1ZGU1ODVlN2I5NGVmNDk2YTM2NzYzNjdhMmNiYWFiN2I2MzY2NDhiMDA3NmJhZDVjZGYxZTA5NzQwZWM2YTQ1MWJmZjUzNGVmYTIxNTA5ZjNiYTc3YjgxMDFiOTFlYTdlNTVkZGJmZTE0MDE1MTcwNjdkN2IwMWEyYTA4NzlmMDg4NWM4OTRhODdjZmI2OGM0ZDdlZTg5MDYwNDg4MWFlYjk3YzIyZDFmMzM3ZWY5MjNlMDM1YTY0MDAiCiAKIFBLQ1M3IFBhcnNlIEZhaWx1cmUgSW52YWxpZCBBU04xOiBDaGFuZ2UgY29udGVudHMgb2YgdGFnIDMwIHRvIGNvbnRhaW4gb25lIHVuYWNjb3VudGVkIGV4dHJhIGJ5dGUgIzM3Mi4wCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NgogcGtjczdfYXNuMV9mYWlsOiIzMDgyMDMyNjA2MDkyYTg2NDg4NmY3MGQwMTA3MDJhMDgyMDMxNzMwODIwMzEzMDIwMTAxMzEwZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGIwNjA5MmE4NjQ4ODZmNzBkMDEwNzAxMzE4MjAyZWUzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMGEwNjAzNTUwNDA2MTMwMjRlNGMwMDMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTAyMTQ3YmRlZGRkMjQ0NGNkMWNkZmU1YzQxYTgxMDJjODliN2RmMmU2Y2JmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDA1YmVjZDg3MTk1YzFkZWZmOTBjMjRjOTEyNjliNTViM2YwNjliYzIyNWMzMjZjMzE0YzFhNTE3ODZmZmUxNGM4MzBiZTRlNGJjNzNjYmEzNmM5NzY3N2I0NDE2ODI3OWJlOTFlN2NkZjdjMTkzODZhZTIxODYyNzE5ZDEzYTNhMGZmZjA4MDNkNDYwOTYyZjJjZGE4MzcxNDg0ODczMjUyYzNkNzA1NGRiODE0M2UyYjA4MWEzODE2ZWQwODA0Y2E1MDk5YWU1ZmVjZTgzZDVjMmMzNzgzYjE5ODhiNGI0NmRjOTRlNTU1ODdhMTA3ZWExNTQ2YmYyMmQyOGEwOTdmNjUyYTQwNjZkYzI5NjUyNjkwNjlhZjJmNTE3NmJiOGNlOWNhNmQxMWY5Njc1N2YwMzIwNGY3NTY3MDM1ODdkMDBhZDQyNDc5NmM5MmZjN2FlYjZmNDk0NDMxOTk5ZWRhMzA5OTBlNGY1NzczNjMyZWQyNThmZTAyNzY2NzM1OTlkYTZmY2UzNWNkYWQ3NzI2YTBiYjAyNGNhZDk5NmI4OGUwY2I5ODg1NGNlYjVjMGI2ZWM3NDhkOWY5Y2U2YTZjZDQzNzg1OGJhY2I4MTQ2MThhMjcyZmYzYTQxNWM2ZTA3ZjNkYjA5ODg3NzdmZGVjODQ1YTk3YmY3ZDEwMmRkMDMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMjAyMTQ1NjRkNTU0MDI1YWY1OTllMzI3MDc5YjI3MjBlZjAwZGYzN2NmYjdjMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDAwNDYwOThkYzVmMmI5OWUzYmMyZWQ2NjQyZDdmMGE2MWVmYWJjMTVjMzhjNzYzMzNiY2NjZWVlZTM2OWE0ZjRhNWJkZGE4ZWE1OTI2NDEyNGU0MjlmMDg2MzI2ODNkZGJhMTdiYmYyNjJkODJiNmJlZmEzYjRlMTQ4MDM3NmE4YzdmM2M3ZDdlMmE2Nzc5YmJmMTgyNjJhYTg1N2RlOGMyMGExMmI2YTJjZThlNGQ3ZjMxZGQxYjE5NTM5MmNmNjE4NWFmY2UzNGFmZTA1ODk2MDU3YjM2ZTliMTcxYjZjNjdlZDdjMjI4NmNiZmE4M2ZmOGExNjdjN2JjNzEwOWFlZTdkN2UxOTA5YmQzODRmYmZjNjE5MzhlZmNhNTFjODk5M2M3MWRiMzE3NzMwZjE2ZTdlNzc2ODY3YWU0ZmRjNTYyZDZmMTVkZTU4NWU3Yjk0ZWY0OTZhMzY3NjM2N2EyY2JhYWI3YjYzNjY0OGIwMDc2YmFkNWNkZjFlMDk3NDBlYzZhNDUxYmZmNTM0ZWZhMjE1MDlmM2JhNzdiODEwMWI5MWVhN2U1NWRkYmZlMTQwMTUxNzA2N2Q3YjAxYTJhMDg3OWYwODg1Yzg5NGE4N2NmYjY4YzRkN2VlODkwNjA0ODgxYWViOTdjMjJkMWYzMzdlZjkyM2UwMzVhNjQwMCIKIAogUEtDUzcgUGFyc2UgRmFpbHVyZSBJbnZhbGlkIEFTTjE6IENoYW5nZSBsZW5ndGggZnJvbSA5IHRvIDggIzM3My4wCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NgogcGtjczdfYXNuMV9mYWlsOiIzMDgyMDMyNjA2MDkyYTg2NDg4NmY3MGQwMTA3MDJhMDgyMDMxNzMwODIwMzEzMDIwMTAxMzEwZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGIwNjA5MmE4NjQ4ODZmNzBkMDEwNzAxMzE4MjAyZWUzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDgwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwNWJlY2Q4NzE5NWMxZGVmZjkwYzI0YzkxMjY5YjU1YjNmMDY5YmMyMjVjMzI2YzMxNGMxYTUxNzg2ZmZlMTRjODMwYmU0ZTRiYzczY2JhMzZjOTc2NzdiNDQxNjgyNzliZTkxZTdjZGY3YzE5Mzg2YWUyMTg2MjcxOWQxM2EzYTBmZmYwODAzZDQ2MDk2MmYyY2RhODM3MTQ4NDg3MzI1MmMzZDcwNTRkYjgxNDNlMmIwODFhMzgxNmVkMDgwNGNhNTA5OWFlNWZlY2U4M2Q1YzJjMzc4M2IxOTg4YjRiNDZkYzk0ZTU1NTg3YTEwN2VhMTU0NmJmMjJkMjhhMDk3ZjY1MmE0MDY2ZGMyOTY1MjY5MDY5YWYyZjUxNzZiYjhjZTljYTZkMTFmOTY3NTdmMDMyMDRmNzU2NzAzNTg3ZDAwYWQ0MjQ3OTZjOTJmYzdhZWI2ZjQ5NDQzMTk5OWVkYTMwOTkwZTRmNTc3MzYzMmVkMjU4ZmUwMjc2NjczNTk5ZGE2ZmNlMzVjZGFkNzcyNmEwYmIwMjRjYWQ5OTZiODhlMGNiOTg4NTRjZWI1YzBiNmVjNzQ4ZDlmOWNlNmE2Y2Q0Mzc4NThiYWNiODE0NjE4YTI3MmZmM2E0MTVjNmUwN2YzZGIwOTg4Nzc3ZmRlYzg0NWE5N2JmN2QxMDJkZDAzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzIwMjE0NTY0ZDU1NDAyNWFmNTk5ZTMyNzA3OWIyNzIwZWYwMGRmMzdjZmI3YzMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwMDQ2MDk4ZGM1ZjJiOTllM2JjMmVkNjY0MmQ3ZjBhNjFlZmFiYzE1YzM4Yzc2MzMzYmNjY2VlZWUzNjlhNGY0YTViZGRhOGVhNTkyNjQxMjRlNDI5ZjA4NjMyNjgzZGRiYTE3YmJmMjYyZDgyYjZiZWZhM2I0ZTE0ODAzNzZhOGM3ZjNjN2Q3ZTJhNjc3OWJiZjE4MjYyYWE4NTdkZThjMjBhMTJiNmEyY2U4ZTRkN2YzMWRkMWIxOTUzOTJjZjYxODVhZmNlMzRhZmUwNTg5NjA1N2IzNmU5YjE3MWI2YzY3ZWQ3YzIyODZjYmZhODNmZjhhMTY3YzdiYzcxMDlhZWU3ZDdlMTkwOWJkMzg0ZmJmYzYxOTM4ZWZjYTUxYzg5OTNjNzFkYjMxNzczMGYxNmU3ZTc3Njg2N2FlNGZkYzU2MmQ2ZjE1ZGU1ODVlN2I5NGVmNDk2YTM2NzYzNjdhMmNiYWFiN2I2MzY2NDhiMDA3NmJhZDVjZGYxZTA5NzQwZWM2YTQ1MWJmZjUzNGVmYTIxNTA5ZjNiYTc3YjgxMDFiOTFlYTdlNTVkZGJmZTE0MDE1MTcwNjdkN2IwMWEyYTA4NzlmMDg4NWM4OTRhODdjZmI2OGM0ZDdlZTg5MDYwNDg4MWFlYjk3YzIyZDFmMzM3ZWY5MjNlMDM1YTY0MDAiCiAKIFBLQ1M3IFBhcnNlIEZhaWx1cmUgSW52YWxpZCBBU04xOiBDaGFuZ2UgdGFnIDA2IHRvIDAyICMzNzQuMAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHBrY3M3X2FzbjFfZmFpbDoiMzA4MjAzMjYwNjA5MmE4NjQ4ODZmNzBkMDEwNzAyYTA4MjAzMTczMDgyMDMxMzAyMDEwMTMxMGYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBiMDYwOTJhODY0ODg2ZjcwZDAxMDcwMTMxODIwMmVlMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDIwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDViZWNkODcxOTVjMWRlZmY5MGMyNGM5MTI2OWI1NWIzZjA2OWJjMjI1YzMyNmMzMTRjMWE1MTc4NmZmZTE0YzgzMGJlNGU0YmM3M2NiYTM2Yzk3Njc3YjQ0MTY4Mjc5YmU5MWU3Y2RmN2MxOTM4NmFlMjE4NjI3MTlkMTNhM2EwZmZmMDgwM2Q0NjA5NjJmMmNkYTgzNzE0ODQ4NzMyNTJjM2Q3MDU0ZGI4MTQzZTJiMDgxYTM4MTZlZDA4MDRjYTUwOTlhZTVmZWNlODNkNWMyYzM3ODNiMTk4OGI0YjQ2ZGM5NGU1NTU4N2ExMDdlYTE1NDZiZjIyZDI4YTA5N2Y2NTJhNDA2NmRjMjk2NTI2OTA2OWFmMmY1MTc2YmI4Y2U5Y2E2ZDExZjk2NzU3ZjAzMjA0Zjc1NjcwMzU4N2QwMGFkNDI0Nzk2YzkyZmM3YWViNmY0OTQ0MzE5OTllZGEzMDk5MGU0ZjU3NzM2MzJlZDI1OGZlMDI3NjY3MzU5OWRhNmZjZTM1Y2RhZDc3MjZhMGJiMDI0Y2FkOTk2Yjg4ZTBjYjk4ODU0Y2ViNWMwYjZlYzc0OGQ5ZjljZTZhNmNkNDM3ODU4YmFjYjgxNDYxOGEyNzJmZjNhNDE1YzZlMDdmM2RiMDk4ODc3N2ZkZWM4NDVhOTdiZjdkMTAyZGQwMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMyMDIxNDU2NGQ1NTQwMjVhZjU5OWUzMjcwNzliMjcyMGVmMDBkZjM3Y2ZiN2MzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDA0NjA5OGRjNWYyYjk5ZTNiYzJlZDY2NDJkN2YwYTYxZWZhYmMxNWMzOGM3NjMzM2JjY2NlZWVlMzY5YTRmNGE1YmRkYThlYTU5MjY0MTI0ZTQyOWYwODYzMjY4M2RkYmExN2JiZjI2MmQ4MmI2YmVmYTNiNGUxNDgwMzc2YThjN2YzYzdkN2UyYTY3NzliYmYxODI2MmFhODU3ZGU4YzIwYTEyYjZhMmNlOGU0ZDdmMzFkZDFiMTk1MzkyY2Y2MTg1YWZjZTM0YWZlMDU4OTYwNTdiMzZlOWIxNzFiNmM2N2VkN2MyMjg2Y2JmYTgzZmY4YTE2N2M3YmM3MTA5YWVlN2Q3ZTE5MDliZDM4NGZiZmM2MTkzOGVmY2E1MWM4OTkzYzcxZGIzMTc3MzBmMTZlN2U3NzY4NjdhZTRmZGM1NjJkNmYxNWRlNTg1ZTdiOTRlZjQ5NmEzNjc2MzY3YTJjYmFhYjdiNjM2NjQ4YjAwNzZiYWQ1Y2RmMWUwOTc0MGVjNmE0NTFiZmY1MzRlZmEyMTUwOWYzYmE3N2I4MTAxYjkxZWE3ZTU1ZGRiZmUxNDAxNTE3MDY3ZDdiMDFhMmEwODc5ZjA4ODVjODk0YTg3Y2ZiNjhjNGQ3ZWU4OTA2MDQ4ODFhZWI5N2MyMmQxZjMzN2VmOTIzZTAzNWE2NDAwIgogCiBQS0NTNyBQYXJzZSBGYWlsdXJlIEludmFsaWQgQVNOMTogQ2hhbmdlIGxlbmd0aCBmcm9tIDMgdG8gNCAjMzc1LjAKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBwa2NzN19hc24xX2ZhaWw6IjMwODIwMzI2MDYwOTJhODY0ODg2ZjcwZDAxMDcwMmEwODIwMzE3MzA4MjAzMTMwMjAxMDEzMTBmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwYjA2MDkyYTg2NDg4NmY3MGQwMTA3MDEzMTgyMDJlZTMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDQ1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTAyMTQ3YmRlZGRkMjQ0NGNkMWNkZmU1YzQxYTgxMDJjODliN2RmMmU2Y2JmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDA1YmVjZDg3MTk1YzFkZWZmOTBjMjRjOTEyNjliNTViM2YwNjliYzIyNWMzMjZjMzE0YzFhNTE3ODZmZmUxNGM4MzBiZTRlNGJjNzNjYmEzNmM5NzY3N2I0NDE2ODI3OWJlOTFlN2NkZjdjMTkzODZhZTIxODYyNzE5ZDEzYTNhMGZmZjA4MDNkNDYwOTYyZjJjZGE4MzcxNDg0ODczMjUyYzNkNzA1NGRiODE0M2UyYjA4MWEzODE2ZWQwODA0Y2E1MDk5YWU1ZmVjZTgzZDVjMmMzNzgzYjE5ODhiNGI0NmRjOTRlNTU1ODdhMTA3ZWExNTQ2YmYyMmQyOGEwOTdmNjUyYTQwNjZkYzI5NjUyNjkwNjlhZjJmNTE3NmJiOGNlOWNhNmQxMWY5Njc1N2YwMzIwNGY3NTY3MDM1ODdkMDBhZDQyNDc5NmM5MmZjN2FlYjZmNDk0NDMxOTk5ZWRhMzA5OTBlNGY1NzczNjMyZWQyNThmZTAyNzY2NzM1OTlkYTZmY2UzNWNkYWQ3NzI2YTBiYjAyNGNhZDk5NmI4OGUwY2I5ODg1NGNlYjVjMGI2ZWM3NDhkOWY5Y2U2YTZjZDQzNzg1OGJhY2I4MTQ2MThhMjcyZmYzYTQxNWM2ZTA3ZjNkYjA5ODg3NzdmZGVjODQ1YTk3YmY3ZDEwMmRkMDMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMjAyMTQ1NjRkNTU0MDI1YWY1OTllMzI3MDc5YjI3MjBlZjAwZGYzN2NmYjdjMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDAwNDYwOThkYzVmMmI5OWUzYmMyZWQ2NjQyZDdmMGE2MWVmYWJjMTVjMzhjNzYzMzNiY2NjZWVlZTM2OWE0ZjRhNWJkZGE4ZWE1OTI2NDEyNGU0MjlmMDg2MzI2ODNkZGJhMTdiYmYyNjJkODJiNmJlZmEzYjRlMTQ4MDM3NmE4YzdmM2M3ZDdlMmE2Nzc5YmJmMTgyNjJhYTg1N2RlOGMyMGExMmI2YTJjZThlNGQ3ZjMxZGQxYjE5NTM5MmNmNjE4NWFmY2UzNGFmZTA1ODk2MDU3YjM2ZTliMTcxYjZjNjdlZDdjMjI4NmNiZmE4M2ZmOGExNjdjN2JjNzEwOWFlZTdkN2UxOTA5YmQzODRmYmZjNjE5MzhlZmNhNTFjODk5M2M3MWRiMzE3NzMwZjE2ZTdlNzc2ODY3YWU0ZmRjNTYyZDZmMTVkZTU4NWU3Yjk0ZWY0OTZhMzY3NjM2N2EyY2JhYWI3YjYzNjY0OGIwMDc2YmFkNWNkZjFlMDk3NDBlYzZhNDUxYmZmNTM0ZWZhMjE1MDlmM2JhNzdiODEwMWI5MWVhN2U1NWRkYmZlMTQwMTUxNzA2N2Q3YjAxYTJhMDg3OWYwODg1Yzg5NGE4N2NmYjY4YzRkN2VlODkwNjA0ODgxYWViOTdjMjJkMWYzMzdlZjkyM2UwMzVhNjQwMCIKIAogUEtDUzcgUGFyc2UgRmFpbHVyZSBJbnZhbGlkIEFTTjE6IENoYW5nZSBsZW5ndGggZnJvbSAzIHRvIDIgIzM3Ni4wCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NgogcGtjczdfYXNuMV9mYWlsOiIzMDgyMDMyNjA2MDkyYTg2NDg4NmY3MGQwMTA3MDJhMDgyMDMxNzMwODIwMzEzMDIwMTAxMzEwZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGIwNjA5MmE4NjQ4ODZmNzBkMDEwNzAxMzE4MjAyZWUzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAyNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwNWJlY2Q4NzE5NWMxZGVmZjkwYzI0YzkxMjY5YjU1YjNmMDY5YmMyMjVjMzI2YzMxNGMxYTUxNzg2ZmZlMTRjODMwYmU0ZTRiYzczY2JhMzZjOTc2NzdiNDQxNjgyNzliZTkxZTdjZGY3YzE5Mzg2YWUyMTg2MjcxOWQxM2EzYTBmZmYwODAzZDQ2MDk2MmYyY2RhODM3MTQ4NDg3MzI1MmMzZDcwNTRkYjgxNDNlMmIwODFhMzgxNmVkMDgwNGNhNTA5OWFlNWZlY2U4M2Q1YzJjMzc4M2IxOTg4YjRiNDZkYzk0ZTU1NTg3YTEwN2VhMTU0NmJmMjJkMjhhMDk3ZjY1MmE0MDY2ZGMyOTY1MjY5MDY5YWYyZjUxNzZiYjhjZTljYTZkMTFmOTY3NTdmMDMyMDRmNzU2NzAzNTg3ZDAwYWQ0MjQ3OTZjOTJmYzdhZWI2ZjQ5NDQzMTk5OWVkYTMwOTkwZTRmNTc3MzYzMmVkMjU4ZmUwMjc2NjczNTk5ZGE2ZmNlMzVjZGFkNzcyNmEwYmIwMjRjYWQ5OTZiODhlMGNiOTg4NTRjZWI1YzBiNmVjNzQ4ZDlmOWNlNmE2Y2Q0Mzc4NThiYWNiODE0NjE4YTI3MmZmM2E0MTVjNmUwN2YzZGIwOTg4Nzc3ZmRlYzg0NWE5N2JmN2QxMDJkZDAzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzIwMjE0NTY0ZDU1NDAyNWFmNTk5ZTMyNzA3OWIyNzIwZWYwMGRmMzdjZmI3YzMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwMDQ2MDk4ZGM1ZjJiOTllM2JjMmVkNjY0MmQ3ZjBhNjFlZmFiYzE1YzM4Yzc2MzMzYmNjY2VlZWUzNjlhNGY0YTViZGRhOGVhNTkyNjQxMjRlNDI5ZjA4NjMyNjgzZGRiYTE3YmJmMjYyZDgyYjZiZWZhM2I0ZTE0ODAzNzZhOGM3ZjNjN2Q3ZTJhNjc3OWJiZjE4MjYyYWE4NTdkZThjMjBhMTJiNmEyY2U4ZTRkN2YzMWRkMWIxOTUzOTJjZjYxODVhZmNlMzRhZmUwNTg5NjA1N2IzNmU5YjE3MWI2YzY3ZWQ3YzIyODZjYmZhODNmZjhhMTY3YzdiYzcxMDlhZWU3ZDdlMTkwOWJkMzg0ZmJmYzYxOTM4ZWZjYTUxYzg5OTNjNzFkYjMxNzczMGYxNmU3ZTc3Njg2N2FlNGZkYzU2MmQ2ZjE1ZGU1ODVlN2I5NGVmNDk2YTM2NzYzNjdhMmNiYWFiN2I2MzY2NDhiMDA3NmJhZDVjZGYxZTA5NzQwZWM2YTQ1MWJmZjUzNGVmYTIxNTA5ZjNiYTc3YjgxMDFiOTFlYTdlNTVkZGJmZTE0MDE1MTcwNjdkN2IwMWEyYTA4NzlmMDg4NWM4OTRhODdjZmI2OGM0ZDdlZTg5MDYwNDg4MWFlYjk3YzIyZDFmMzM3ZWY5MjNlMDM1YTY0MDAiCiAKIFBLQ1M3IFBhcnNlIEZhaWx1cmUgSW52YWxpZCBBU04xOiBDaGFuZ2UgdGFnIDEzIHRvIDAyICMzNzcuMAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHBrY3M3X2FzbjFfZmFpbDoiMzA4MjAzMjYwNjA5MmE4NjQ4ODZmNzBkMDEwNzAyYTA4MjAzMTczMDgyMDMxMzAyMDEwMTMxMGYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBiMDYwOTJhODY0ODg2ZjcwZDAxMDcwMTMxODIwMmVlMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjAyMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDViZWNkODcxOTVjMWRlZmY5MGMyNGM5MTI2OWI1NWIzZjA2OWJjMjI1YzMyNmMzMTRjMWE1MTc4NmZmZTE0YzgzMGJlNGU0YmM3M2NiYTM2Yzk3Njc3YjQ0MTY4Mjc5YmU5MWU3Y2RmN2MxOTM4NmFlMjE4NjI3MTlkMTNhM2EwZmZmMDgwM2Q0NjA5NjJmMmNkYTgzNzE0ODQ4NzMyNTJjM2Q3MDU0ZGI4MTQzZTJiMDgxYTM4MTZlZDA4MDRjYTUwOTlhZTVmZWNlODNkNWMyYzM3ODNiMTk4OGI0YjQ2ZGM5NGU1NTU4N2ExMDdlYTE1NDZiZjIyZDI4YTA5N2Y2NTJhNDA2NmRjMjk2NTI2OTA2OWFmMmY1MTc2YmI4Y2U5Y2E2ZDExZjk2NzU3ZjAzMjA0Zjc1NjcwMzU4N2QwMGFkNDI0Nzk2YzkyZmM3YWViNmY0OTQ0MzE5OTllZGEzMDk5MGU0ZjU3NzM2MzJlZDI1OGZlMDI3NjY3MzU5OWRhNmZjZTM1Y2RhZDc3MjZhMGJiMDI0Y2FkOTk2Yjg4ZTBjYjk4ODU0Y2ViNWMwYjZlYzc0OGQ5ZjljZTZhNmNkNDM3ODU4YmFjYjgxNDYxOGEyNzJmZjNhNDE1YzZlMDdmM2RiMDk4ODc3N2ZkZWM4NDVhOTdiZjdkMTAyZGQwMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMyMDIxNDU2NGQ1NTQwMjVhZjU5OWUzMjcwNzliMjcyMGVmMDBkZjM3Y2ZiN2MzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDA0NjA5OGRjNWYyYjk5ZTNiYzJlZDY2NDJkN2YwYTYxZWZhYmMxNWMzOGM3NjMzM2JjY2NlZWVlMzY5YTRmNGE1YmRkYThlYTU5MjY0MTI0ZTQyOWYwODYzMjY4M2RkYmExN2JiZjI2MmQ4MmI2YmVmYTNiNGUxNDgwMzc2YThjN2YzYzdkN2UyYTY3NzliYmYxODI2MmFhODU3ZGU4YzIwYTEyYjZhMmNlOGU0ZDdmMzFkZDFiMTk1MzkyY2Y2MTg1YWZjZTM0YWZlMDU4OTYwNTdiMzZlOWIxNzFiNmM2N2VkN2MyMjg2Y2JmYTgzZmY4YTE2N2M3YmM3MTA5YWVlN2Q3ZTE5MDliZDM4NGZiZmM2MTkzOGVmY2E1MWM4OTkzYzcxZGIzMTc3MzBmMTZlN2U3NzY4NjdhZTRmZGM1NjJkNmYxNWRlNTg1ZTdiOTRlZjQ5NmEzNjc2MzY3YTJjYmFhYjdiNjM2NjQ4YjAwNzZiYWQ1Y2RmMWUwOTc0MGVjNmE0NTFiZmY1MzRlZmEyMTUwOWYzYmE3N2I4MTAxYjkxZWE3ZTU1ZGRiZmUxNDAxNTE3MDY3ZDdiMDFhMmEwODc5ZjA4ODVjODk0YTg3Y2ZiNjhjNGQ3ZWU4OTA2MDQ4ODFhZWI5N2MyMmQxZjMzN2VmOTIzZTAzNWE2NDAwIgogCiBQS0NTNyBQYXJzZSBGYWlsdXJlIEludmFsaWQgQVNOMTogQ2hhbmdlIGxlbmd0aCBmcm9tIDIgdG8gMyAjMzc4LjAKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBwa2NzN19hc24xX2ZhaWw6IjMwODIwMzI2MDYwOTJhODY0ODg2ZjcwZDAxMDcwMmEwODIwMzE3MzA4MjAzMTMwMjAxMDEzMTBmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwYjA2MDkyYTg2NDg4NmY3MGQwMTA3MDEzMTgyMDJlZTMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAzNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTAyMTQ3YmRlZGRkMjQ0NGNkMWNkZmU1YzQxYTgxMDJjODliN2RmMmU2Y2JmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDA1YmVjZDg3MTk1YzFkZWZmOTBjMjRjOTEyNjliNTViM2YwNjliYzIyNWMzMjZjMzE0YzFhNTE3ODZmZmUxNGM4MzBiZTRlNGJjNzNjYmEzNmM5NzY3N2I0NDE2ODI3OWJlOTFlN2NkZjdjMTkzODZhZTIxODYyNzE5ZDEzYTNhMGZmZjA4MDNkNDYwOTYyZjJjZGE4MzcxNDg0ODczMjUyYzNkNzA1NGRiODE0M2UyYjA4MWEzODE2ZWQwODA0Y2E1MDk5YWU1ZmVjZTgzZDVjMmMzNzgzYjE5ODhiNGI0NmRjOTRlNTU1ODdhMTA3ZWExNTQ2YmYyMmQyOGEwOTdmNjUyYTQwNjZkYzI5NjUyNjkwNjlhZjJmNTE3NmJiOGNlOWNhNmQxMWY5Njc1N2YwMzIwNGY3NTY3MDM1ODdkMDBhZDQyNDc5NmM5MmZjN2FlYjZmNDk0NDMxOTk5ZWRhMzA5OTBlNGY1NzczNjMyZWQyNThmZTAyNzY2NzM1OTlkYTZmY2UzNWNkYWQ3NzI2YTBiYjAyNGNhZDk5NmI4OGUwY2I5ODg1NGNlYjVjMGI2ZWM3NDhkOWY5Y2U2YTZjZDQzNzg1OGJhY2I4MTQ2MThhMjcyZmYzYTQxNWM2ZTA3ZjNkYjA5ODg3NzdmZGVjODQ1YTk3YmY3ZDEwMmRkMDMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMjAyMTQ1NjRkNTU0MDI1YWY1OTllMzI3MDc5YjI3MjBlZjAwZGYzN2NmYjdjMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDAwNDYwOThkYzVmMmI5OWUzYmMyZWQ2NjQyZDdmMGE2MWVmYWJjMTVjMzhjNzYzMzNiY2NjZWVlZTM2OWE0ZjRhNWJkZGE4ZWE1OTI2NDEyNGU0MjlmMDg2MzI2ODNkZGJhMTdiYmYyNjJkODJiNmJlZmEzYjRlMTQ4MDM3NmE4YzdmM2M3ZDdlMmE2Nzc5YmJmMTgyNjJhYTg1N2RlOGMyMGExMmI2YTJjZThlNGQ3ZjMxZGQxYjE5NTM5MmNmNjE4NWFmY2UzNGFmZTA1ODk2MDU3YjM2ZTliMTcxYjZjNjdlZDdjMjI4NmNiZmE4M2ZmOGExNjdjN2JjNzEwOWFlZTdkN2UxOTA5YmQzODRmYmZjNjE5MzhlZmNhNTFjODk5M2M3MWRiMzE3NzMwZjE2ZTdlNzc2ODY3YWU0ZmRjNTYyZDZmMTVkZTU4NWU3Yjk0ZWY0OTZhMzY3NjM2N2EyY2JhYWI3YjYzNjY0OGIwMDc2YmFkNWNkZjFlMDk3NDBlYzZhNDUxYmZmNTM0ZWZhMjE1MDlmM2JhNzdiODEwMWI5MWVhN2U1NWRkYmZlMTQwMTUxNzA2N2Q3YjAxYTJhMDg3OWYwODg1Yzg5NGE4N2NmYjY4YzRkN2VlODkwNjA0ODgxYWViOTdjMjJkMWYzMzdlZjkyM2UwMzVhNjQwMCIKIAogUEtDUzcgUGFyc2UgRmFpbHVyZSBJbnZhbGlkIEFTTjE6IENoYW5nZSBsZW5ndGggZnJvbSAyIHRvIDEgIzM3OS4wCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NgogcGtjczdfYXNuMV9mYWlsOiIzMDgyMDMyNjA2MDkyYTg2NDg4NmY3MGQwMTA3MDJhMDgyMDMxNzMwODIwMzEzMDIwMTAxMzEwZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGIwNjA5MmE4NjQ4ODZmNzBkMDEwNzAxMzE4MjAyZWUzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMTRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwNWJlY2Q4NzE5NWMxZGVmZjkwYzI0YzkxMjY5YjU1YjNmMDY5YmMyMjVjMzI2YzMxNGMxYTUxNzg2ZmZlMTRjODMwYmU0ZTRiYzczY2JhMzZjOTc2NzdiNDQxNjgyNzliZTkxZTdjZGY3YzE5Mzg2YWUyMTg2MjcxOWQxM2EzYTBmZmYwODAzZDQ2MDk2MmYyY2RhODM3MTQ4NDg3MzI1MmMzZDcwNTRkYjgxNDNlMmIwODFhMzgxNmVkMDgwNGNhNTA5OWFlNWZlY2U4M2Q1YzJjMzc4M2IxOTg4YjRiNDZkYzk0ZTU1NTg3YTEwN2VhMTU0NmJmMjJkMjhhMDk3ZjY1MmE0MDY2ZGMyOTY1MjY5MDY5YWYyZjUxNzZiYjhjZTljYTZkMTFmOTY3NTdmMDMyMDRmNzU2NzAzNTg3ZDAwYWQ0MjQ3OTZjOTJmYzdhZWI2ZjQ5NDQzMTk5OWVkYTMwOTkwZTRmNTc3MzYzMmVkMjU4ZmUwMjc2NjczNTk5ZGE2ZmNlMzVjZGFkNzcyNmEwYmIwMjRjYWQ5OTZiODhlMGNiOTg4NTRjZWI1YzBiNmVjNzQ4ZDlmOWNlNmE2Y2Q0Mzc4NThiYWNiODE0NjE4YTI3MmZmM2E0MTVjNmUwN2YzZGIwOTg4Nzc3ZmRlYzg0NWE5N2JmN2QxMDJkZDAzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzIwMjE0NTY0ZDU1NDAyNWFmNTk5ZTMyNzA3OWIyNzIwZWYwMGRmMzdjZmI3YzMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwMDQ2MDk4ZGM1ZjJiOTllM2JjMmVkNjY0MmQ3ZjBhNjFlZmFiYzE1YzM4Yzc2MzMzYmNjY2VlZWUzNjlhNGY0YTViZGRhOGVhNTkyNjQxMjRlNDI5ZjA4NjMyNjgzZGRiYTE3YmJmMjYyZDgyYjZiZWZhM2I0ZTE0ODAzNzZhOGM3ZjNjN2Q3ZTJhNjc3OWJiZjE4MjYyYWE4NTdkZThjMjBhMTJiNmEyY2U4ZTRkN2YzMWRkMWIxOTUzOTJjZjYxODVhZmNlMzRhZmUwNTg5NjA1N2IzNmU5YjE3MWI2YzY3ZWQ3YzIyODZjYmZhODNmZjhhMTY3YzdiYzcxMDlhZWU3ZDdlMTkwOWJkMzg0ZmJmYzYxOTM4ZWZjYTUxYzg5OTNjNzFkYjMxNzczMGYxNmU3ZTc3Njg2N2FlNGZkYzU2MmQ2ZjE1ZGU1ODVlN2I5NGVmNDk2YTM2NzYzNjdhMmNiYWFiN2I2MzY2NDhiMDA3NmJhZDVjZGYxZTA5NzQwZWM2YTQ1MWJmZjUzNGVmYTIxNTA5ZjNiYTc3YjgxMDFiOTFlYTdlNTVkZGJmZTE0MDE1MTcwNjdkN2IwMWEyYTA4NzlmMDg4NWM4OTRhODdjZmI2OGM0ZDdlZTg5MDYwNDg4MWFlYjk3YzIyZDFmMzM3ZWY5MjNlMDM1YTY0MDAiCiAKIFBLQ1M3IFBhcnNlIEZhaWx1cmUgSW52YWxpZCBBU04xOiBDaGFuZ2UgdGFnIDMxIHRvIDAyICMzODAuMAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHBrY3M3X2FzbjFfZmFpbDoiMzA4MjAzMjYwNjA5MmE4NjQ4ODZmNzBkMDEwNzAyYTA4MjAzMTczMDgyMDMxMzAyMDEwMTMxMGYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBiMDYwOTJhODY0ODg2ZjcwZDAxMDcwMTMxODIwMmVlMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMDIwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDViZWNkODcxOTVjMWRlZmY5MGMyNGM5MTI2OWI1NWIzZjA2OWJjMjI1YzMyNmMzMTRjMWE1MTc4NmZmZTE0YzgzMGJlNGU0YmM3M2NiYTM2Yzk3Njc3YjQ0MTY4Mjc5YmU5MWU3Y2RmN2MxOTM4NmFlMjE4NjI3MTlkMTNhM2EwZmZmMDgwM2Q0NjA5NjJmMmNkYTgzNzE0ODQ4NzMyNTJjM2Q3MDU0ZGI4MTQzZTJiMDgxYTM4MTZlZDA4MDRjYTUwOTlhZTVmZWNlODNkNWMyYzM3ODNiMTk4OGI0YjQ2ZGM5NGU1NTU4N2ExMDdlYTE1NDZiZjIyZDI4YTA5N2Y2NTJhNDA2NmRjMjk2NTI2OTA2OWFmMmY1MTc2YmI4Y2U5Y2E2ZDExZjk2NzU3ZjAzMjA0Zjc1NjcwMzU4N2QwMGFkNDI0Nzk2YzkyZmM3YWViNmY0OTQ0MzE5OTllZGEzMDk5MGU0ZjU3NzM2MzJlZDI1OGZlMDI3NjY3MzU5OWRhNmZjZTM1Y2RhZDc3MjZhMGJiMDI0Y2FkOTk2Yjg4ZTBjYjk4ODU0Y2ViNWMwYjZlYzc0OGQ5ZjljZTZhNmNkNDM3ODU4YmFjYjgxNDYxOGEyNzJmZjNhNDE1YzZlMDdmM2RiMDk4ODc3N2ZkZWM4NDVhOTdiZjdkMTAyZGQwMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMyMDIxNDU2NGQ1NTQwMjVhZjU5OWUzMjcwNzliMjcyMGVmMDBkZjM3Y2ZiN2MzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDA0NjA5OGRjNWYyYjk5ZTNiYzJlZDY2NDJkN2YwYTYxZWZhYmMxNWMzOGM3NjMzM2JjY2NlZWVlMzY5YTRmNGE1YmRkYThlYTU5MjY0MTI0ZTQyOWYwODYzMjY4M2RkYmExN2JiZjI2MmQ4MmI2YmVmYTNiNGUxNDgwMzc2YThjN2YzYzdkN2UyYTY3NzliYmYxODI2MmFhODU3ZGU4YzIwYTEyYjZhMmNlOGU0ZDdmMzFkZDFiMTk1MzkyY2Y2MTg1YWZjZTM0YWZlMDU4OTYwNTdiMzZlOWIxNzFiNmM2N2VkN2MyMjg2Y2JmYTgzZmY4YTE2N2M3YmM3MTA5YWVlN2Q3ZTE5MDliZDM4NGZiZmM2MTkzOGVmY2E1MWM4OTkzYzcxZGIzMTc3MzBmMTZlN2U3NzY4NjdhZTRmZGM1NjJkNmYxNWRlNTg1ZTdiOTRlZjQ5NmEzNjc2MzY3YTJjYmFhYjdiNjM2NjQ4YjAwNzZiYWQ1Y2RmMWUwOTc0MGVjNmE0NTFiZmY1MzRlZmEyMTUwOWYzYmE3N2I4MTAxYjkxZWE3ZTU1ZGRiZmUxNDAxNTE3MDY3ZDdiMDFhMmEwODc5ZjA4ODVjODk0YTg3Y2ZiNjhjNGQ3ZWU4OTA2MDQ4ODFhZWI5N2MyMmQxZjMzN2VmOTIzZTAzNWE2NDAwIgogCiBQS0NTNyBQYXJzZSBGYWlsdXJlIEludmFsaWQgQVNOMTogQ2hhbmdlIGxlbmd0aCBmcm9tIDE0IHRvIDE1ICMzODEuMAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHBrY3M3X2FzbjFfZmFpbDoiMzA4MjAzMjYwNjA5MmE4NjQ4ODZmNzBkMDEwNzAyYTA4MjAzMTczMDgyMDMxMzAyMDEwMTMxMGYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBiMDYwOTJhODY0ODg2ZjcwZDAxMDcwMTMxODIwMmVlMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZjMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDViZWNkODcxOTVjMWRlZmY5MGMyNGM5MTI2OWI1NWIzZjA2OWJjMjI1YzMyNmMzMTRjMWE1MTc4NmZmZTE0YzgzMGJlNGU0YmM3M2NiYTM2Yzk3Njc3YjQ0MTY4Mjc5YmU5MWU3Y2RmN2MxOTM4NmFlMjE4NjI3MTlkMTNhM2EwZmZmMDgwM2Q0NjA5NjJmMmNkYTgzNzE0ODQ4NzMyNTJjM2Q3MDU0ZGI4MTQzZTJiMDgxYTM4MTZlZDA4MDRjYTUwOTlhZTVmZWNlODNkNWMyYzM3ODNiMTk4OGI0YjQ2ZGM5NGU1NTU4N2ExMDdlYTE1NDZiZjIyZDI4YTA5N2Y2NTJhNDA2NmRjMjk2NTI2OTA2OWFmMmY1MTc2YmI4Y2U5Y2E2ZDExZjk2NzU3ZjAzMjA0Zjc1NjcwMzU4N2QwMGFkNDI0Nzk2YzkyZmM3YWViNmY0OTQ0MzE5OTllZGEzMDk5MGU0ZjU3NzM2MzJlZDI1OGZlMDI3NjY3MzU5OWRhNmZjZTM1Y2RhZDc3MjZhMGJiMDI0Y2FkOTk2Yjg4ZTBjYjk4ODU0Y2ViNWMwYjZlYzc0OGQ5ZjljZTZhNmNkNDM3ODU4YmFjYjgxNDYxOGEyNzJmZjNhNDE1YzZlMDdmM2RiMDk4ODc3N2ZkZWM4NDVhOTdiZjdkMTAyZGQwMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMyMDIxNDU2NGQ1NTQwMjVhZjU5OWUzMjcwNzliMjcyMGVmMDBkZjM3Y2ZiN2MzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDA0NjA5OGRjNWYyYjk5ZTNiYzJlZDY2NDJkN2YwYTYxZWZhYmMxNWMzOGM3NjMzM2JjY2NlZWVlMzY5YTRmNGE1YmRkYThlYTU5MjY0MTI0ZTQyOWYwODYzMjY4M2RkYmExN2JiZjI2MmQ4MmI2YmVmYTNiNGUxNDgwMzc2YThjN2YzYzdkN2UyYTY3NzliYmYxODI2MmFhODU3ZGU4YzIwYTEyYjZhMmNlOGU0ZDdmMzFkZDFiMTk1MzkyY2Y2MTg1YWZjZTM0YWZlMDU4OTYwNTdiMzZlOWIxNzFiNmM2N2VkN2MyMjg2Y2JmYTgzZmY4YTE2N2M3YmM3MTA5YWVlN2Q3ZTE5MDliZDM4NGZiZmM2MTkzOGVmY2E1MWM4OTkzYzcxZGIzMTc3MzBmMTZlN2U3NzY4NjdhZTRmZGM1NjJkNmYxNWRlNTg1ZTdiOTRlZjQ5NmEzNjc2MzY3YTJjYmFhYjdiNjM2NjQ4YjAwNzZiYWQ1Y2RmMWUwOTc0MGVjNmE0NTFiZmY1MzRlZmEyMTUwOWYzYmE3N2I4MTAxYjkxZWE3ZTU1ZGRiZmUxNDAxNTE3MDY3ZDdiMDFhMmEwODc5ZjA4ODVjODk0YTg3Y2ZiNjhjNGQ3ZWU4OTA2MDQ4ODFhZWI5N2MyMmQxZjMzN2VmOTIzZTAzNWE2NDAwIgogCiBQS0NTNyBQYXJzZSBGYWlsdXJlIEludmFsaWQgQVNOMTogQ2hhbmdlIGNvbnRlbnRzIG9mIHRhZyAzMSB0byBjb250YWluIG9uZSB1bmFjY291bnRlZCBleHRyYSBieXRlICMzODIuMAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHBrY3M3X2FzbjFfZmFpbDoiMzA4MjAzMjYwNjA5MmE4NjQ4ODZmNzBkMDEwNzAyYTA4MjAzMTczMDgyMDMxMzAyMDEwMTMxMGYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBiMDYwOTJhODY0ODg2ZjcwZDAxMDcwMTMxODIwMmVlMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZjMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzcwMDMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwNWJlY2Q4NzE5NWMxZGVmZjkwYzI0YzkxMjY5YjU1YjNmMDY5YmMyMjVjMzI2YzMxNGMxYTUxNzg2ZmZlMTRjODMwYmU0ZTRiYzczY2JhMzZjOTc2NzdiNDQxNjgyNzliZTkxZTdjZGY3YzE5Mzg2YWUyMTg2MjcxOWQxM2EzYTBmZmYwODAzZDQ2MDk2MmYyY2RhODM3MTQ4NDg3MzI1MmMzZDcwNTRkYjgxNDNlMmIwODFhMzgxNmVkMDgwNGNhNTA5OWFlNWZlY2U4M2Q1YzJjMzc4M2IxOTg4YjRiNDZkYzk0ZTU1NTg3YTEwN2VhMTU0NmJmMjJkMjhhMDk3ZjY1MmE0MDY2ZGMyOTY1MjY5MDY5YWYyZjUxNzZiYjhjZTljYTZkMTFmOTY3NTdmMDMyMDRmNzU2NzAzNTg3ZDAwYWQ0MjQ3OTZjOTJmYzdhZWI2ZjQ5NDQzMTk5OWVkYTMwOTkwZTRmNTc3MzYzMmVkMjU4ZmUwMjc2NjczNTk5ZGE2ZmNlMzVjZGFkNzcyNmEwYmIwMjRjYWQ5OTZiODhlMGNiOTg4NTRjZWI1YzBiNmVjNzQ4ZDlmOWNlNmE2Y2Q0Mzc4NThiYWNiODE0NjE4YTI3MmZmM2E0MTVjNmUwN2YzZGIwOTg4Nzc3ZmRlYzg0NWE5N2JmN2QxMDJkZDAzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzIwMjE0NTY0ZDU1NDAyNWFmNTk5ZTMyNzA3OWIyNzIwZWYwMGRmMzdjZmI3YzMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwMDQ2MDk4ZGM1ZjJiOTllM2JjMmVkNjY0MmQ3ZjBhNjFlZmFiYzE1YzM4Yzc2MzMzYmNjY2VlZWUzNjlhNGY0YTViZGRhOGVhNTkyNjQxMjRlNDI5ZjA4NjMyNjgzZGRiYTE3YmJmMjYyZDgyYjZiZWZhM2I0ZTE0ODAzNzZhOGM3ZjNjN2Q3ZTJhNjc3OWJiZjE4MjYyYWE4NTdkZThjMjBhMTJiNmEyY2U4ZTRkN2YzMWRkMWIxOTUzOTJjZjYxODVhZmNlMzRhZmUwNTg5NjA1N2IzNmU5YjE3MWI2YzY3ZWQ3YzIyODZjYmZhODNmZjhhMTY3YzdiYzcxMDlhZWU3ZDdlMTkwOWJkMzg0ZmJmYzYxOTM4ZWZjYTUxYzg5OTNjNzFkYjMxNzczMGYxNmU3ZTc3Njg2N2FlNGZkYzU2MmQ2ZjE1ZGU1ODVlN2I5NGVmNDk2YTM2NzYzNjdhMmNiYWFiN2I2MzY2NDhiMDA3NmJhZDVjZGYxZTA5NzQwZWM2YTQ1MWJmZjUzNGVmYTIxNTA5ZjNiYTc3YjgxMDFiOTFlYTdlNTVkZGJmZTE0MDE1MTcwNjdkN2IwMWEyYTA4NzlmMDg4NWM4OTRhODdjZmI2OGM0ZDdlZTg5MDYwNDg4MWFlYjk3YzIyZDFmMzM3ZWY5MjNlMDM1YTY0MDAiCiAKIFBLQ1M3IFBhcnNlIEZhaWx1cmUgSW52YWxpZCBBU04xOiBDaGFuZ2UgbGVuZ3RoIGZyb20gMTQgdG8gMTMgIzM4My4wCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NgogcGtjczdfYXNuMV9mYWlsOiIzMDgyMDMyNjA2MDkyYTg2NDg4NmY3MGQwMTA3MDJhMDgyMDMxNzMwODIwMzEzMDIwMTAxMzEwZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGIwNjA5MmE4NjQ4ODZmNzBkMDEwNzAxMzE4MjAyZWUzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBkMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwNWJlY2Q4NzE5NWMxZGVmZjkwYzI0YzkxMjY5YjU1YjNmMDY5YmMyMjVjMzI2YzMxNGMxYTUxNzg2ZmZlMTRjODMwYmU0ZTRiYzczY2JhMzZjOTc2NzdiNDQxNjgyNzliZTkxZTdjZGY3YzE5Mzg2YWUyMTg2MjcxOWQxM2EzYTBmZmYwODAzZDQ2MDk2MmYyY2RhODM3MTQ4NDg3MzI1MmMzZDcwNTRkYjgxNDNlMmIwODFhMzgxNmVkMDgwNGNhNTA5OWFlNWZlY2U4M2Q1YzJjMzc4M2IxOTg4YjRiNDZkYzk0ZTU1NTg3YTEwN2VhMTU0NmJmMjJkMjhhMDk3ZjY1MmE0MDY2ZGMyOTY1MjY5MDY5YWYyZjUxNzZiYjhjZTljYTZkMTFmOTY3NTdmMDMyMDRmNzU2NzAzNTg3ZDAwYWQ0MjQ3OTZjOTJmYzdhZWI2ZjQ5NDQzMTk5OWVkYTMwOTkwZTRmNTc3MzYzMmVkMjU4ZmUwMjc2NjczNTk5ZGE2ZmNlMzVjZGFkNzcyNmEwYmIwMjRjYWQ5OTZiODhlMGNiOTg4NTRjZWI1YzBiNmVjNzQ4ZDlmOWNlNmE2Y2Q0Mzc4NThiYWNiODE0NjE4YTI3MmZmM2E0MTVjNmUwN2YzZGIwOTg4Nzc3ZmRlYzg0NWE5N2JmN2QxMDJkZDAzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzIwMjE0NTY0ZDU1NDAyNWFmNTk5ZTMyNzA3OWIyNzIwZWYwMGRmMzdjZmI3YzMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwMDQ2MDk4ZGM1ZjJiOTllM2JjMmVkNjY0MmQ3ZjBhNjFlZmFiYzE1YzM4Yzc2MzMzYmNjY2VlZWUzNjlhNGY0YTViZGRhOGVhNTkyNjQxMjRlNDI5ZjA4NjMyNjgzZGRiYTE3YmJmMjYyZDgyYjZiZWZhM2I0ZTE0ODAzNzZhOGM3ZjNjN2Q3ZTJhNjc3OWJiZjE4MjYyYWE4NTdkZThjMjBhMTJiNmEyY2U4ZTRkN2YzMWRkMWIxOTUzOTJjZjYxODVhZmNlMzRhZmUwNTg5NjA1N2IzNmU5YjE3MWI2YzY3ZWQ3YzIyODZjYmZhODNmZjhhMTY3YzdiYzcxMDlhZWU3ZDdlMTkwOWJkMzg0ZmJmYzYxOTM4ZWZjYTUxYzg5OTNjNzFkYjMxNzczMGYxNmU3ZTc3Njg2N2FlNGZkYzU2MmQ2ZjE1ZGU1ODVlN2I5NGVmNDk2YTM2NzYzNjdhMmNiYWFiN2I2MzY2NDhiMDA3NmJhZDVjZGYxZTA5NzQwZWM2YTQ1MWJmZjUzNGVmYTIxNTA5ZjNiYTc3YjgxMDFiOTFlYTdlNTVkZGJmZTE0MDE1MTcwNjdkN2IwMWEyYTA4NzlmMDg4NWM4OTRhODdjZmI2OGM0ZDdlZTg5MDYwNDg4MWFlYjk3YzIyZDFmMzM3ZWY5MjNlMDM1YTY0MDAiCiAKIFBLQ1M3IFBhcnNlIEZhaWx1cmUgSW52YWxpZCBBU04xOiBDaGFuZ2UgdGFnIDMwIHRvIDAyICMzODQuMAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHBrY3M3X2FzbjFfZmFpbDoiMzA4MjAzMjYwNjA5MmE4NjQ4ODZmNzBkMDEwNzAyYTA4MjAzMTczMDgyMDMxMzAyMDEwMTMxMGYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBiMDYwOTJhODY0ODg2ZjcwZDAxMDcwMTMxODIwMmVlMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTAyMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDViZWNkODcxOTVjMWRlZmY5MGMyNGM5MTI2OWI1NWIzZjA2OWJjMjI1YzMyNmMzMTRjMWE1MTc4NmZmZTE0YzgzMGJlNGU0YmM3M2NiYTM2Yzk3Njc3YjQ0MTY4Mjc5YmU5MWU3Y2RmN2MxOTM4NmFlMjE4NjI3MTlkMTNhM2EwZmZmMDgwM2Q0NjA5NjJmMmNkYTgzNzE0ODQ4NzMyNTJjM2Q3MDU0ZGI4MTQzZTJiMDgxYTM4MTZlZDA4MDRjYTUwOTlhZTVmZWNlODNkNWMyYzM3ODNiMTk4OGI0YjQ2ZGM5NGU1NTU4N2ExMDdlYTE1NDZiZjIyZDI4YTA5N2Y2NTJhNDA2NmRjMjk2NTI2OTA2OWFmMmY1MTc2YmI4Y2U5Y2E2ZDExZjk2NzU3ZjAzMjA0Zjc1NjcwMzU4N2QwMGFkNDI0Nzk2YzkyZmM3YWViNmY0OTQ0MzE5OTllZGEzMDk5MGU0ZjU3NzM2MzJlZDI1OGZlMDI3NjY3MzU5OWRhNmZjZTM1Y2RhZDc3MjZhMGJiMDI0Y2FkOTk2Yjg4ZTBjYjk4ODU0Y2ViNWMwYjZlYzc0OGQ5ZjljZTZhNmNkNDM3ODU4YmFjYjgxNDYxOGEyNzJmZjNhNDE1YzZlMDdmM2RiMDk4ODc3N2ZkZWM4NDVhOTdiZjdkMTAyZGQwMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMyMDIxNDU2NGQ1NTQwMjVhZjU5OWUzMjcwNzliMjcyMGVmMDBkZjM3Y2ZiN2MzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDA0NjA5OGRjNWYyYjk5ZTNiYzJlZDY2NDJkN2YwYTYxZWZhYmMxNWMzOGM3NjMzM2JjY2NlZWVlMzY5YTRmNGE1YmRkYThlYTU5MjY0MTI0ZTQyOWYwODYzMjY4M2RkYmExN2JiZjI2MmQ4MmI2YmVmYTNiNGUxNDgwMzc2YThjN2YzYzdkN2UyYTY3NzliYmYxODI2MmFhODU3ZGU4YzIwYTEyYjZhMmNlOGU0ZDdmMzFkZDFiMTk1MzkyY2Y2MTg1YWZjZTM0YWZlMDU4OTYwNTdiMzZlOWIxNzFiNmM2N2VkN2MyMjg2Y2JmYTgzZmY4YTE2N2M3YmM3MTA5YWVlN2Q3ZTE5MDliZDM4NGZiZmM2MTkzOGVmY2E1MWM4OTkzYzcxZGIzMTc3MzBmMTZlN2U3NzY4NjdhZTRmZGM1NjJkNmYxNWRlNTg1ZTdiOTRlZjQ5NmEzNjc2MzY3YTJjYmFhYjdiNjM2NjQ4YjAwNzZiYWQ1Y2RmMWUwOTc0MGVjNmE0NTFiZmY1MzRlZmEyMTUwOWYzYmE3N2I4MTAxYjkxZWE3ZTU1ZGRiZmUxNDAxNTE3MDY3ZDdiMDFhMmEwODc5ZjA4ODVjODk0YTg3Y2ZiNjhjNGQ3ZWU4OTA2MDQ4ODFhZWI5N2MyMmQxZjMzN2VmOTIzZTAzNWE2NDAwIgogCiBQS0NTNyBQYXJzZSBGYWlsdXJlIEludmFsaWQgQVNOMTogQ2hhbmdlIGxlbmd0aCBmcm9tIDEyIHRvIDEzICMzODUuMAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHBrY3M3X2FzbjFfZmFpbDoiMzA4MjAzMjYwNjA5MmE4NjQ4ODZmNzBkMDEwNzAyYTA4MjAzMTczMDgyMDMxMzAyMDEwMTMxMGYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBiMDYwOTJhODY0ODg2ZjcwZDAxMDcwMTMxODIwMmVlMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGQwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDViZWNkODcxOTVjMWRlZmY5MGMyNGM5MTI2OWI1NWIzZjA2OWJjMjI1YzMyNmMzMTRjMWE1MTc4NmZmZTE0YzgzMGJlNGU0YmM3M2NiYTM2Yzk3Njc3YjQ0MTY4Mjc5YmU5MWU3Y2RmN2MxOTM4NmFlMjE4NjI3MTlkMTNhM2EwZmZmMDgwM2Q0NjA5NjJmMmNkYTgzNzE0ODQ4NzMyNTJjM2Q3MDU0ZGI4MTQzZTJiMDgxYTM4MTZlZDA4MDRjYTUwOTlhZTVmZWNlODNkNWMyYzM3ODNiMTk4OGI0YjQ2ZGM5NGU1NTU4N2ExMDdlYTE1NDZiZjIyZDI4YTA5N2Y2NTJhNDA2NmRjMjk2NTI2OTA2OWFmMmY1MTc2YmI4Y2U5Y2E2ZDExZjk2NzU3ZjAzMjA0Zjc1NjcwMzU4N2QwMGFkNDI0Nzk2YzkyZmM3YWViNmY0OTQ0MzE5OTllZGEzMDk5MGU0ZjU3NzM2MzJlZDI1OGZlMDI3NjY3MzU5OWRhNmZjZTM1Y2RhZDc3MjZhMGJiMDI0Y2FkOTk2Yjg4ZTBjYjk4ODU0Y2ViNWMwYjZlYzc0OGQ5ZjljZTZhNmNkNDM3ODU4YmFjYjgxNDYxOGEyNzJmZjNhNDE1YzZlMDdmM2RiMDk4ODc3N2ZkZWM4NDVhOTdiZjdkMTAyZGQwMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMyMDIxNDU2NGQ1NTQwMjVhZjU5OWUzMjcwNzliMjcyMGVmMDBkZjM3Y2ZiN2MzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDA0NjA5OGRjNWYyYjk5ZTNiYzJlZDY2NDJkN2YwYTYxZWZhYmMxNWMzOGM3NjMzM2JjY2NlZWVlMzY5YTRmNGE1YmRkYThlYTU5MjY0MTI0ZTQyOWYwODYzMjY4M2RkYmExN2JiZjI2MmQ4MmI2YmVmYTNiNGUxNDgwMzc2YThjN2YzYzdkN2UyYTY3NzliYmYxODI2MmFhODU3ZGU4YzIwYTEyYjZhMmNlOGU0ZDdmMzFkZDFiMTk1MzkyY2Y2MTg1YWZjZTM0YWZlMDU4OTYwNTdiMzZlOWIxNzFiNmM2N2VkN2MyMjg2Y2JmYTgzZmY4YTE2N2M3YmM3MTA5YWVlN2Q3ZTE5MDliZDM4NGZiZmM2MTkzOGVmY2E1MWM4OTkzYzcxZGIzMTc3MzBmMTZlN2U3NzY4NjdhZTRmZGM1NjJkNmYxNWRlNTg1ZTdiOTRlZjQ5NmEzNjc2MzY3YTJjYmFhYjdiNjM2NjQ4YjAwNzZiYWQ1Y2RmMWUwOTc0MGVjNmE0NTFiZmY1MzRlZmEyMTUwOWYzYmE3N2I4MTAxYjkxZWE3ZTU1ZGRiZmUxNDAxNTE3MDY3ZDdiMDFhMmEwODc5ZjA4ODVjODk0YTg3Y2ZiNjhjNGQ3ZWU4OTA2MDQ4ODFhZWI5N2MyMmQxZjMzN2VmOTIzZTAzNWE2NDAwIgogCiBQS0NTNyBQYXJzZSBGYWlsdXJlIEludmFsaWQgQVNOMTogQ2hhbmdlIGNvbnRlbnRzIG9mIHRhZyAzMCB0byBjb250YWluIG9uZSB1bmFjY291bnRlZCBleHRyYSBieXRlICMzODYuMAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHBrY3M3X2FzbjFfZmFpbDoiMzA4MjAzMjYwNjA5MmE4NjQ4ODZmNzBkMDEwNzAyYTA4MjAzMTczMDgyMDMxMzAyMDEwMTMxMGYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBiMDYwOTJhODY0ODg2ZjcwZDAxMDcwMTMxODIwMmVlMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGQwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzcwMDMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwNWJlY2Q4NzE5NWMxZGVmZjkwYzI0YzkxMjY5YjU1YjNmMDY5YmMyMjVjMzI2YzMxNGMxYTUxNzg2ZmZlMTRjODMwYmU0ZTRiYzczY2JhMzZjOTc2NzdiNDQxNjgyNzliZTkxZTdjZGY3YzE5Mzg2YWUyMTg2MjcxOWQxM2EzYTBmZmYwODAzZDQ2MDk2MmYyY2RhODM3MTQ4NDg3MzI1MmMzZDcwNTRkYjgxNDNlMmIwODFhMzgxNmVkMDgwNGNhNTA5OWFlNWZlY2U4M2Q1YzJjMzc4M2IxOTg4YjRiNDZkYzk0ZTU1NTg3YTEwN2VhMTU0NmJmMjJkMjhhMDk3ZjY1MmE0MDY2ZGMyOTY1MjY5MDY5YWYyZjUxNzZiYjhjZTljYTZkMTFmOTY3NTdmMDMyMDRmNzU2NzAzNTg3ZDAwYWQ0MjQ3OTZjOTJmYzdhZWI2ZjQ5NDQzMTk5OWVkYTMwOTkwZTRmNTc3MzYzMmVkMjU4ZmUwMjc2NjczNTk5ZGE2ZmNlMzVjZGFkNzcyNmEwYmIwMjRjYWQ5OTZiODhlMGNiOTg4NTRjZWI1YzBiNmVjNzQ4ZDlmOWNlNmE2Y2Q0Mzc4NThiYWNiODE0NjE4YTI3MmZmM2E0MTVjNmUwN2YzZGIwOTg4Nzc3ZmRlYzg0NWE5N2JmN2QxMDJkZDAzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzIwMjE0NTY0ZDU1NDAyNWFmNTk5ZTMyNzA3OWIyNzIwZWYwMGRmMzdjZmI3YzMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwMDQ2MDk4ZGM1ZjJiOTllM2JjMmVkNjY0MmQ3ZjBhNjFlZmFiYzE1YzM4Yzc2MzMzYmNjY2VlZWUzNjlhNGY0YTViZGRhOGVhNTkyNjQxMjRlNDI5ZjA4NjMyNjgzZGRiYTE3YmJmMjYyZDgyYjZiZWZhM2I0ZTE0ODAzNzZhOGM3ZjNjN2Q3ZTJhNjc3OWJiZjE4MjYyYWE4NTdkZThjMjBhMTJiNmEyY2U4ZTRkN2YzMWRkMWIxOTUzOTJjZjYxODVhZmNlMzRhZmUwNTg5NjA1N2IzNmU5YjE3MWI2YzY3ZWQ3YzIyODZjYmZhODNmZjhhMTY3YzdiYzcxMDlhZWU3ZDdlMTkwOWJkMzg0ZmJmYzYxOTM4ZWZjYTUxYzg5OTNjNzFkYjMxNzczMGYxNmU3ZTc3Njg2N2FlNGZkYzU2MmQ2ZjE1ZGU1ODVlN2I5NGVmNDk2YTM2NzYzNjdhMmNiYWFiN2I2MzY2NDhiMDA3NmJhZDVjZGYxZTA5NzQwZWM2YTQ1MWJmZjUzNGVmYTIxNTA5ZjNiYTc3YjgxMDFiOTFlYTdlNTVkZGJmZTE0MDE1MTcwNjdkN2IwMWEyYTA4NzlmMDg4NWM4OTRhODdjZmI2OGM0ZDdlZTg5MDYwNDg4MWFlYjk3YzIyZDFmMzM3ZWY5MjNlMDM1YTY0MDAiCiAKIFBLQ1M3IFBhcnNlIEZhaWx1cmUgSW52YWxpZCBBU04xOiBDaGFuZ2UgbGVuZ3RoIGZyb20gMTIgdG8gMTEgIzM4Ny4wCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NgogcGtjczdfYXNuMV9mYWlsOiIzMDgyMDMyNjA2MDkyYTg2NDg4NmY3MGQwMTA3MDJhMDgyMDMxNzMwODIwMzEzMDIwMTAxMzEwZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGIwNjA5MmE4NjQ4ODZmNzBkMDEwNzAxMzE4MjAyZWUzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYjA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwNWJlY2Q4NzE5NWMxZGVmZjkwYzI0YzkxMjY5YjU1YjNmMDY5YmMyMjVjMzI2YzMxNGMxYTUxNzg2ZmZlMTRjODMwYmU0ZTRiYzczY2JhMzZjOTc2NzdiNDQxNjgyNzliZTkxZTdjZGY3YzE5Mzg2YWUyMTg2MjcxOWQxM2EzYTBmZmYwODAzZDQ2MDk2MmYyY2RhODM3MTQ4NDg3MzI1MmMzZDcwNTRkYjgxNDNlMmIwODFhMzgxNmVkMDgwNGNhNTA5OWFlNWZlY2U4M2Q1YzJjMzc4M2IxOTg4YjRiNDZkYzk0ZTU1NTg3YTEwN2VhMTU0NmJmMjJkMjhhMDk3ZjY1MmE0MDY2ZGMyOTY1MjY5MDY5YWYyZjUxNzZiYjhjZTljYTZkMTFmOTY3NTdmMDMyMDRmNzU2NzAzNTg3ZDAwYWQ0MjQ3OTZjOTJmYzdhZWI2ZjQ5NDQzMTk5OWVkYTMwOTkwZTRmNTc3MzYzMmVkMjU4ZmUwMjc2NjczNTk5ZGE2ZmNlMzVjZGFkNzcyNmEwYmIwMjRjYWQ5OTZiODhlMGNiOTg4NTRjZWI1YzBiNmVjNzQ4ZDlmOWNlNmE2Y2Q0Mzc4NThiYWNiODE0NjE4YTI3MmZmM2E0MTVjNmUwN2YzZGIwOTg4Nzc3ZmRlYzg0NWE5N2JmN2QxMDJkZDAzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzIwMjE0NTY0ZDU1NDAyNWFmNTk5ZTMyNzA3OWIyNzIwZWYwMGRmMzdjZmI3YzMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwMDQ2MDk4ZGM1ZjJiOTllM2JjMmVkNjY0MmQ3ZjBhNjFlZmFiYzE1YzM4Yzc2MzMzYmNjY2VlZWUzNjlhNGY0YTViZGRhOGVhNTkyNjQxMjRlNDI5ZjA4NjMyNjgzZGRiYTE3YmJmMjYyZDgyYjZiZWZhM2I0ZTE0ODAzNzZhOGM3ZjNjN2Q3ZTJhNjc3OWJiZjE4MjYyYWE4NTdkZThjMjBhMTJiNmEyY2U4ZTRkN2YzMWRkMWIxOTUzOTJjZjYxODVhZmNlMzRhZmUwNTg5NjA1N2IzNmU5YjE3MWI2YzY3ZWQ3YzIyODZjYmZhODNmZjhhMTY3YzdiYzcxMDlhZWU3ZDdlMTkwOWJkMzg0ZmJmYzYxOTM4ZWZjYTUxYzg5OTNjNzFkYjMxNzczMGYxNmU3ZTc3Njg2N2FlNGZkYzU2MmQ2ZjE1ZGU1ODVlN2I5NGVmNDk2YTM2NzYzNjdhMmNiYWFiN2I2MzY2NDhiMDA3NmJhZDVjZGYxZTA5NzQwZWM2YTQ1MWJmZjUzNGVmYTIxNTA5ZjNiYTc3YjgxMDFiOTFlYTdlNTVkZGJmZTE0MDE1MTcwNjdkN2IwMWEyYTA4NzlmMDg4NWM4OTRhODdjZmI2OGM0ZDdlZTg5MDYwNDg4MWFlYjk3YzIyZDFmMzM3ZWY5MjNlMDM1YTY0MDAiCiAKIFBLQ1M3IFBhcnNlIEZhaWx1cmUgSW52YWxpZCBBU04xOiBDaGFuZ2UgdGFnIDA2IHRvIDAyICMzODguMAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHBrY3M3X2FzbjFfZmFpbDoiMzA4MjAzMjYwNjA5MmE4NjQ4ODZmNzBkMDEwNzAyYTA4MjAzMTczMDgyMDMxMzAyMDEwMTMxMGYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBiMDYwOTJhODY0ODg2ZjcwZDAxMDcwMTMxODIwMmVlMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwMjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDViZWNkODcxOTVjMWRlZmY5MGMyNGM5MTI2OWI1NWIzZjA2OWJjMjI1YzMyNmMzMTRjMWE1MTc4NmZmZTE0YzgzMGJlNGU0YmM3M2NiYTM2Yzk3Njc3YjQ0MTY4Mjc5YmU5MWU3Y2RmN2MxOTM4NmFlMjE4NjI3MTlkMTNhM2EwZmZmMDgwM2Q0NjA5NjJmMmNkYTgzNzE0ODQ4NzMyNTJjM2Q3MDU0ZGI4MTQzZTJiMDgxYTM4MTZlZDA4MDRjYTUwOTlhZTVmZWNlODNkNWMyYzM3ODNiMTk4OGI0YjQ2ZGM5NGU1NTU4N2ExMDdlYTE1NDZiZjIyZDI4YTA5N2Y2NTJhNDA2NmRjMjk2NTI2OTA2OWFmMmY1MTc2YmI4Y2U5Y2E2ZDExZjk2NzU3ZjAzMjA0Zjc1NjcwMzU4N2QwMGFkNDI0Nzk2YzkyZmM3YWViNmY0OTQ0MzE5OTllZGEzMDk5MGU0ZjU3NzM2MzJlZDI1OGZlMDI3NjY3MzU5OWRhNmZjZTM1Y2RhZDc3MjZhMGJiMDI0Y2FkOTk2Yjg4ZTBjYjk4ODU0Y2ViNWMwYjZlYzc0OGQ5ZjljZTZhNmNkNDM3ODU4YmFjYjgxNDYxOGEyNzJmZjNhNDE1YzZlMDdmM2RiMDk4ODc3N2ZkZWM4NDVhOTdiZjdkMTAyZGQwMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMyMDIxNDU2NGQ1NTQwMjVhZjU5OWUzMjcwNzliMjcyMGVmMDBkZjM3Y2ZiN2MzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDA0NjA5OGRjNWYyYjk5ZTNiYzJlZDY2NDJkN2YwYTYxZWZhYmMxNWMzOGM3NjMzM2JjY2NlZWVlMzY5YTRmNGE1YmRkYThlYTU5MjY0MTI0ZTQyOWYwODYzMjY4M2RkYmExN2JiZjI2MmQ4MmI2YmVmYTNiNGUxNDgwMzc2YThjN2YzYzdkN2UyYTY3NzliYmYxODI2MmFhODU3ZGU4YzIwYTEyYjZhMmNlOGU0ZDdmMzFkZDFiMTk1MzkyY2Y2MTg1YWZjZTM0YWZlMDU4OTYwNTdiMzZlOWIxNzFiNmM2N2VkN2MyMjg2Y2JmYTgzZmY4YTE2N2M3YmM3MTA5YWVlN2Q3ZTE5MDliZDM4NGZiZmM2MTkzOGVmY2E1MWM4OTkzYzcxZGIzMTc3MzBmMTZlN2U3NzY4NjdhZTRmZGM1NjJkNmYxNWRlNTg1ZTdiOTRlZjQ5NmEzNjc2MzY3YTJjYmFhYjdiNjM2NjQ4YjAwNzZiYWQ1Y2RmMWUwOTc0MGVjNmE0NTFiZmY1MzRlZmEyMTUwOWYzYmE3N2I4MTAxYjkxZWE3ZTU1ZGRiZmUxNDAxNTE3MDY3ZDdiMDFhMmEwODc5ZjA4ODVjODk0YTg3Y2ZiNjhjNGQ3ZWU4OTA2MDQ4ODFhZWI5N2MyMmQxZjMzN2VmOTIzZTAzNWE2NDAwIgogCiBQS0NTNyBQYXJzZSBGYWlsdXJlIEludmFsaWQgQVNOMTogQ2hhbmdlIGxlbmd0aCBmcm9tIDMgdG8gNCAjMzg5LjAKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBwa2NzN19hc24xX2ZhaWw6IjMwODIwMzI2MDYwOTJhODY0ODg2ZjcwZDAxMDcwMmEwODIwMzE3MzA4MjAzMTMwMjAxMDEzMTBmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwYjA2MDkyYTg2NDg4NmY3MGQwMTA3MDEzMTgyMDJlZTMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwNDU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTAyMTQ3YmRlZGRkMjQ0NGNkMWNkZmU1YzQxYTgxMDJjODliN2RmMmU2Y2JmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDA1YmVjZDg3MTk1YzFkZWZmOTBjMjRjOTEyNjliNTViM2YwNjliYzIyNWMzMjZjMzE0YzFhNTE3ODZmZmUxNGM4MzBiZTRlNGJjNzNjYmEzNmM5NzY3N2I0NDE2ODI3OWJlOTFlN2NkZjdjMTkzODZhZTIxODYyNzE5ZDEzYTNhMGZmZjA4MDNkNDYwOTYyZjJjZGE4MzcxNDg0ODczMjUyYzNkNzA1NGRiODE0M2UyYjA4MWEzODE2ZWQwODA0Y2E1MDk5YWU1ZmVjZTgzZDVjMmMzNzgzYjE5ODhiNGI0NmRjOTRlNTU1ODdhMTA3ZWExNTQ2YmYyMmQyOGEwOTdmNjUyYTQwNjZkYzI5NjUyNjkwNjlhZjJmNTE3NmJiOGNlOWNhNmQxMWY5Njc1N2YwMzIwNGY3NTY3MDM1ODdkMDBhZDQyNDc5NmM5MmZjN2FlYjZmNDk0NDMxOTk5ZWRhMzA5OTBlNGY1NzczNjMyZWQyNThmZTAyNzY2NzM1OTlkYTZmY2UzNWNkYWQ3NzI2YTBiYjAyNGNhZDk5NmI4OGUwY2I5ODg1NGNlYjVjMGI2ZWM3NDhkOWY5Y2U2YTZjZDQzNzg1OGJhY2I4MTQ2MThhMjcyZmYzYTQxNWM2ZTA3ZjNkYjA5ODg3NzdmZGVjODQ1YTk3YmY3ZDEwMmRkMDMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMjAyMTQ1NjRkNTU0MDI1YWY1OTllMzI3MDc5YjI3MjBlZjAwZGYzN2NmYjdjMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDAwNDYwOThkYzVmMmI5OWUzYmMyZWQ2NjQyZDdmMGE2MWVmYWJjMTVjMzhjNzYzMzNiY2NjZWVlZTM2OWE0ZjRhNWJkZGE4ZWE1OTI2NDEyNGU0MjlmMDg2MzI2ODNkZGJhMTdiYmYyNjJkODJiNmJlZmEzYjRlMTQ4MDM3NmE4YzdmM2M3ZDdlMmE2Nzc5YmJmMTgyNjJhYTg1N2RlOGMyMGExMmI2YTJjZThlNGQ3ZjMxZGQxYjE5NTM5MmNmNjE4NWFmY2UzNGFmZTA1ODk2MDU3YjM2ZTliMTcxYjZjNjdlZDdjMjI4NmNiZmE4M2ZmOGExNjdjN2JjNzEwOWFlZTdkN2UxOTA5YmQzODRmYmZjNjE5MzhlZmNhNTFjODk5M2M3MWRiMzE3NzMwZjE2ZTdlNzc2ODY3YWU0ZmRjNTYyZDZmMTVkZTU4NWU3Yjk0ZWY0OTZhMzY3NjM2N2EyY2JhYWI3YjYzNjY0OGIwMDc2YmFkNWNkZjFlMDk3NDBlYzZhNDUxYmZmNTM0ZWZhMjE1MDlmM2JhNzdiODEwMWI5MWVhN2U1NWRkYmZlMTQwMTUxNzA2N2Q3YjAxYTJhMDg3OWYwODg1Yzg5NGE4N2NmYjY4YzRkN2VlODkwNjA0ODgxYWViOTdjMjJkMWYzMzdlZjkyM2UwMzVhNjQwMCIKIAogUEtDUzcgUGFyc2UgRmFpbHVyZSBJbnZhbGlkIEFTTjE6IENoYW5nZSBsZW5ndGggZnJvbSAzIHRvIDIgIzM5MC4wCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NgogcGtjczdfYXNuMV9mYWlsOiIzMDgyMDMyNjA2MDkyYTg2NDg4NmY3MGQwMTA3MDJhMDgyMDMxNzMwODIwMzEzMDIwMTAxMzEwZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGIwNjA5MmE4NjQ4ODZmNzBkMDEwNzAxMzE4MjAyZWUzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDI1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwNWJlY2Q4NzE5NWMxZGVmZjkwYzI0YzkxMjY5YjU1YjNmMDY5YmMyMjVjMzI2YzMxNGMxYTUxNzg2ZmZlMTRjODMwYmU0ZTRiYzczY2JhMzZjOTc2NzdiNDQxNjgyNzliZTkxZTdjZGY3YzE5Mzg2YWUyMTg2MjcxOWQxM2EzYTBmZmYwODAzZDQ2MDk2MmYyY2RhODM3MTQ4NDg3MzI1MmMzZDcwNTRkYjgxNDNlMmIwODFhMzgxNmVkMDgwNGNhNTA5OWFlNWZlY2U4M2Q1YzJjMzc4M2IxOTg4YjRiNDZkYzk0ZTU1NTg3YTEwN2VhMTU0NmJmMjJkMjhhMDk3ZjY1MmE0MDY2ZGMyOTY1MjY5MDY5YWYyZjUxNzZiYjhjZTljYTZkMTFmOTY3NTdmMDMyMDRmNzU2NzAzNTg3ZDAwYWQ0MjQ3OTZjOTJmYzdhZWI2ZjQ5NDQzMTk5OWVkYTMwOTkwZTRmNTc3MzYzMmVkMjU4ZmUwMjc2NjczNTk5ZGE2ZmNlMzVjZGFkNzcyNmEwYmIwMjRjYWQ5OTZiODhlMGNiOTg4NTRjZWI1YzBiNmVjNzQ4ZDlmOWNlNmE2Y2Q0Mzc4NThiYWNiODE0NjE4YTI3MmZmM2E0MTVjNmUwN2YzZGIwOTg4Nzc3ZmRlYzg0NWE5N2JmN2QxMDJkZDAzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzIwMjE0NTY0ZDU1NDAyNWFmNTk5ZTMyNzA3OWIyNzIwZWYwMGRmMzdjZmI3YzMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwMDQ2MDk4ZGM1ZjJiOTllM2JjMmVkNjY0MmQ3ZjBhNjFlZmFiYzE1YzM4Yzc2MzMzYmNjY2VlZWUzNjlhNGY0YTViZGRhOGVhNTkyNjQxMjRlNDI5ZjA4NjMyNjgzZGRiYTE3YmJmMjYyZDgyYjZiZWZhM2I0ZTE0ODAzNzZhOGM3ZjNjN2Q3ZTJhNjc3OWJiZjE4MjYyYWE4NTdkZThjMjBhMTJiNmEyY2U4ZTRkN2YzMWRkMWIxOTUzOTJjZjYxODVhZmNlMzRhZmUwNTg5NjA1N2IzNmU5YjE3MWI2YzY3ZWQ3YzIyODZjYmZhODNmZjhhMTY3YzdiYzcxMDlhZWU3ZDdlMTkwOWJkMzg0ZmJmYzYxOTM4ZWZjYTUxYzg5OTNjNzFkYjMxNzczMGYxNmU3ZTc3Njg2N2FlNGZkYzU2MmQ2ZjE1ZGU1ODVlN2I5NGVmNDk2YTM2NzYzNjdhMmNiYWFiN2I2MzY2NDhiMDA3NmJhZDVjZGYxZTA5NzQwZWM2YTQ1MWJmZjUzNGVmYTIxNTA5ZjNiYTc3YjgxMDFiOTFlYTdlNTVkZGJmZTE0MDE1MTcwNjdkN2IwMWEyYTA4NzlmMDg4NWM4OTRhODdjZmI2OGM0ZDdlZTg5MDYwNDg4MWFlYjk3YzIyZDFmMzM3ZWY5MjNlMDM1YTY0MDAiCiAKIFBLQ1M3IFBhcnNlIEZhaWx1cmUgSW52YWxpZCBBU04xOiBDaGFuZ2UgdGFnIDBjIHRvIDAyICMzOTEuMAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHBrY3M3X2FzbjFfZmFpbDoiMzA4MjAzMjYwNjA5MmE4NjQ4ODZmNzBkMDEwNzAyYTA4MjAzMTczMDgyMDMxMzAyMDEwMTMxMGYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBiMDYwOTJhODY0ODg2ZjcwZDAxMDcwMTMxODIwMmVlMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMDIwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDViZWNkODcxOTVjMWRlZmY5MGMyNGM5MTI2OWI1NWIzZjA2OWJjMjI1YzMyNmMzMTRjMWE1MTc4NmZmZTE0YzgzMGJlNGU0YmM3M2NiYTM2Yzk3Njc3YjQ0MTY4Mjc5YmU5MWU3Y2RmN2MxOTM4NmFlMjE4NjI3MTlkMTNhM2EwZmZmMDgwM2Q0NjA5NjJmMmNkYTgzNzE0ODQ4NzMyNTJjM2Q3MDU0ZGI4MTQzZTJiMDgxYTM4MTZlZDA4MDRjYTUwOTlhZTVmZWNlODNkNWMyYzM3ODNiMTk4OGI0YjQ2ZGM5NGU1NTU4N2ExMDdlYTE1NDZiZjIyZDI4YTA5N2Y2NTJhNDA2NmRjMjk2NTI2OTA2OWFmMmY1MTc2YmI4Y2U5Y2E2ZDExZjk2NzU3ZjAzMjA0Zjc1NjcwMzU4N2QwMGFkNDI0Nzk2YzkyZmM3YWViNmY0OTQ0MzE5OTllZGEzMDk5MGU0ZjU3NzM2MzJlZDI1OGZlMDI3NjY3MzU5OWRhNmZjZTM1Y2RhZDc3MjZhMGJiMDI0Y2FkOTk2Yjg4ZTBjYjk4ODU0Y2ViNWMwYjZlYzc0OGQ5ZjljZTZhNmNkNDM3ODU4YmFjYjgxNDYxOGEyNzJmZjNhNDE1YzZlMDdmM2RiMDk4ODc3N2ZkZWM4NDVhOTdiZjdkMTAyZGQwMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMyMDIxNDU2NGQ1NTQwMjVhZjU5OWUzMjcwNzliMjcyMGVmMDBkZjM3Y2ZiN2MzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDA0NjA5OGRjNWYyYjk5ZTNiYzJlZDY2NDJkN2YwYTYxZWZhYmMxNWMzOGM3NjMzM2JjY2NlZWVlMzY5YTRmNGE1YmRkYThlYTU5MjY0MTI0ZTQyOWYwODYzMjY4M2RkYmExN2JiZjI2MmQ4MmI2YmVmYTNiNGUxNDgwMzc2YThjN2YzYzdkN2UyYTY3NzliYmYxODI2MmFhODU3ZGU4YzIwYTEyYjZhMmNlOGU0ZDdmMzFkZDFiMTk1MzkyY2Y2MTg1YWZjZTM0YWZlMDU4OTYwNTdiMzZlOWIxNzFiNmM2N2VkN2MyMjg2Y2JmYTgzZmY4YTE2N2M3YmM3MTA5YWVlN2Q3ZTE5MDliZDM4NGZiZmM2MTkzOGVmY2E1MWM4OTkzYzcxZGIzMTc3MzBmMTZlN2U3NzY4NjdhZTRmZGM1NjJkNmYxNWRlNTg1ZTdiOTRlZjQ5NmEzNjc2MzY3YTJjYmFhYjdiNjM2NjQ4YjAwNzZiYWQ1Y2RmMWUwOTc0MGVjNmE0NTFiZmY1MzRlZmEyMTUwOWYzYmE3N2I4MTAxYjkxZWE3ZTU1ZGRiZmUxNDAxNTE3MDY3ZDdiMDFhMmEwODc5ZjA4ODVjODk0YTg3Y2ZiNjhjNGQ3ZWU4OTA2MDQ4ODFhZWI5N2MyMmQxZjMzN2VmOTIzZTAzNWE2NDAwIgogCiBQS0NTNyBQYXJzZSBGYWlsdXJlIEludmFsaWQgQVNOMTogQ2hhbmdlIGxlbmd0aCBmcm9tIDUgdG8gNiAjMzkyLjAKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBwa2NzN19hc24xX2ZhaWw6IjMwODIwMzI2MDYwOTJhODY0ODg2ZjcwZDAxMDcwMmEwODIwMzE3MzA4MjAzMTMwMjAxMDEzMTBmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwYjA2MDkyYTg2NDg4NmY3MGQwMTA3MDEzMTgyMDJlZTMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDY1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTAyMTQ3YmRlZGRkMjQ0NGNkMWNkZmU1YzQxYTgxMDJjODliN2RmMmU2Y2JmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDA1YmVjZDg3MTk1YzFkZWZmOTBjMjRjOTEyNjliNTViM2YwNjliYzIyNWMzMjZjMzE0YzFhNTE3ODZmZmUxNGM4MzBiZTRlNGJjNzNjYmEzNmM5NzY3N2I0NDE2ODI3OWJlOTFlN2NkZjdjMTkzODZhZTIxODYyNzE5ZDEzYTNhMGZmZjA4MDNkNDYwOTYyZjJjZGE4MzcxNDg0ODczMjUyYzNkNzA1NGRiODE0M2UyYjA4MWEzODE2ZWQwODA0Y2E1MDk5YWU1ZmVjZTgzZDVjMmMzNzgzYjE5ODhiNGI0NmRjOTRlNTU1ODdhMTA3ZWExNTQ2YmYyMmQyOGEwOTdmNjUyYTQwNjZkYzI5NjUyNjkwNjlhZjJmNTE3NmJiOGNlOWNhNmQxMWY5Njc1N2YwMzIwNGY3NTY3MDM1ODdkMDBhZDQyNDc5NmM5MmZjN2FlYjZmNDk0NDMxOTk5ZWRhMzA5OTBlNGY1NzczNjMyZWQyNThmZTAyNzY2NzM1OTlkYTZmY2UzNWNkYWQ3NzI2YTBiYjAyNGNhZDk5NmI4OGUwY2I5ODg1NGNlYjVjMGI2ZWM3NDhkOWY5Y2U2YTZjZDQzNzg1OGJhY2I4MTQ2MThhMjcyZmYzYTQxNWM2ZTA3ZjNkYjA5ODg3NzdmZGVjODQ1YTk3YmY3ZDEwMmRkMDMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMjAyMTQ1NjRkNTU0MDI1YWY1OTllMzI3MDc5YjI3MjBlZjAwZGYzN2NmYjdjMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDAwNDYwOThkYzVmMmI5OWUzYmMyZWQ2NjQyZDdmMGE2MWVmYWJjMTVjMzhjNzYzMzNiY2NjZWVlZTM2OWE0ZjRhNWJkZGE4ZWE1OTI2NDEyNGU0MjlmMDg2MzI2ODNkZGJhMTdiYmYyNjJkODJiNmJlZmEzYjRlMTQ4MDM3NmE4YzdmM2M3ZDdlMmE2Nzc5YmJmMTgyNjJhYTg1N2RlOGMyMGExMmI2YTJjZThlNGQ3ZjMxZGQxYjE5NTM5MmNmNjE4NWFmY2UzNGFmZTA1ODk2MDU3YjM2ZTliMTcxYjZjNjdlZDdjMjI4NmNiZmE4M2ZmOGExNjdjN2JjNzEwOWFlZTdkN2UxOTA5YmQzODRmYmZjNjE5MzhlZmNhNTFjODk5M2M3MWRiMzE3NzMwZjE2ZTdlNzc2ODY3YWU0ZmRjNTYyZDZmMTVkZTU4NWU3Yjk0ZWY0OTZhMzY3NjM2N2EyY2JhYWI3YjYzNjY0OGIwMDc2YmFkNWNkZjFlMDk3NDBlYzZhNDUxYmZmNTM0ZWZhMjE1MDlmM2JhNzdiODEwMWI5MWVhN2U1NWRkYmZlMTQwMTUxNzA2N2Q3YjAxYTJhMDg3OWYwODg1Yzg5NGE4N2NmYjY4YzRkN2VlODkwNjA0ODgxYWViOTdjMjJkMWYzMzdlZjkyM2UwMzVhNjQwMCIKIAogUEtDUzcgUGFyc2UgRmFpbHVyZSBJbnZhbGlkIEFTTjE6IENoYW5nZSBsZW5ndGggZnJvbSA1IHRvIDQgIzM5My4wCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NgogcGtjczdfYXNuMV9mYWlsOiIzMDgyMDMyNjA2MDkyYTg2NDg4NmY3MGQwMTA3MDJhMDgyMDMxNzMwODIwMzEzMDIwMTAxMzEwZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGIwNjA5MmE4NjQ4ODZmNzBkMDEwNzAxMzE4MjAyZWUzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA0NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwNWJlY2Q4NzE5NWMxZGVmZjkwYzI0YzkxMjY5YjU1YjNmMDY5YmMyMjVjMzI2YzMxNGMxYTUxNzg2ZmZlMTRjODMwYmU0ZTRiYzczY2JhMzZjOTc2NzdiNDQxNjgyNzliZTkxZTdjZGY3YzE5Mzg2YWUyMTg2MjcxOWQxM2EzYTBmZmYwODAzZDQ2MDk2MmYyY2RhODM3MTQ4NDg3MzI1MmMzZDcwNTRkYjgxNDNlMmIwODFhMzgxNmVkMDgwNGNhNTA5OWFlNWZlY2U4M2Q1YzJjMzc4M2IxOTg4YjRiNDZkYzk0ZTU1NTg3YTEwN2VhMTU0NmJmMjJkMjhhMDk3ZjY1MmE0MDY2ZGMyOTY1MjY5MDY5YWYyZjUxNzZiYjhjZTljYTZkMTFmOTY3NTdmMDMyMDRmNzU2NzAzNTg3ZDAwYWQ0MjQ3OTZjOTJmYzdhZWI2ZjQ5NDQzMTk5OWVkYTMwOTkwZTRmNTc3MzYzMmVkMjU4ZmUwMjc2NjczNTk5ZGE2ZmNlMzVjZGFkNzcyNmEwYmIwMjRjYWQ5OTZiODhlMGNiOTg4NTRjZWI1YzBiNmVjNzQ4ZDlmOWNlNmE2Y2Q0Mzc4NThiYWNiODE0NjE4YTI3MmZmM2E0MTVjNmUwN2YzZGIwOTg4Nzc3ZmRlYzg0NWE5N2JmN2QxMDJkZDAzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzIwMjE0NTY0ZDU1NDAyNWFmNTk5ZTMyNzA3OWIyNzIwZWYwMGRmMzdjZmI3YzMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwMDQ2MDk4ZGM1ZjJiOTllM2JjMmVkNjY0MmQ3ZjBhNjFlZmFiYzE1YzM4Yzc2MzMzYmNjY2VlZWUzNjlhNGY0YTViZGRhOGVhNTkyNjQxMjRlNDI5ZjA4NjMyNjgzZGRiYTE3YmJmMjYyZDgyYjZiZWZhM2I0ZTE0ODAzNzZhOGM3ZjNjN2Q3ZTJhNjc3OWJiZjE4MjYyYWE4NTdkZThjMjBhMTJiNmEyY2U4ZTRkN2YzMWRkMWIxOTUzOTJjZjYxODVhZmNlMzRhZmUwNTg5NjA1N2IzNmU5YjE3MWI2YzY3ZWQ3YzIyODZjYmZhODNmZjhhMTY3YzdiYzcxMDlhZWU3ZDdlMTkwOWJkMzg0ZmJmYzYxOTM4ZWZjYTUxYzg5OTNjNzFkYjMxNzczMGYxNmU3ZTc3Njg2N2FlNGZkYzU2MmQ2ZjE1ZGU1ODVlN2I5NGVmNDk2YTM2NzYzNjdhMmNiYWFiN2I2MzY2NDhiMDA3NmJhZDVjZGYxZTA5NzQwZWM2YTQ1MWJmZjUzNGVmYTIxNTA5ZjNiYTc3YjgxMDFiOTFlYTdlNTVkZGJmZTE0MDE1MTcwNjdkN2IwMWEyYTA4NzlmMDg4NWM4OTRhODdjZmI2OGM0ZDdlZTg5MDYwNDg4MWFlYjk3YzIyZDFmMzM3ZWY5MjNlMDM1YTY0MDAiCiAKIFBLQ1M3IFBhcnNlIEZhaWx1cmUgSW52YWxpZCBBU04xOiBDaGFuZ2UgdGFnIDMxIHRvIDAyICMzOTQuMAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHBrY3M3X2FzbjFfZmFpbDoiMzA4MjAzMjYwNjA5MmE4NjQ4ODZmNzBkMDEwNzAyYTA4MjAzMTczMDgyMDMxMzAyMDEwMTMxMGYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBiMDYwOTJhODY0ODg2ZjcwZDAxMDcwMTMxODIwMmVlMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzcwMjE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDViZWNkODcxOTVjMWRlZmY5MGMyNGM5MTI2OWI1NWIzZjA2OWJjMjI1YzMyNmMzMTRjMWE1MTc4NmZmZTE0YzgzMGJlNGU0YmM3M2NiYTM2Yzk3Njc3YjQ0MTY4Mjc5YmU5MWU3Y2RmN2MxOTM4NmFlMjE4NjI3MTlkMTNhM2EwZmZmMDgwM2Q0NjA5NjJmMmNkYTgzNzE0ODQ4NzMyNTJjM2Q3MDU0ZGI4MTQzZTJiMDgxYTM4MTZlZDA4MDRjYTUwOTlhZTVmZWNlODNkNWMyYzM3ODNiMTk4OGI0YjQ2ZGM5NGU1NTU4N2ExMDdlYTE1NDZiZjIyZDI4YTA5N2Y2NTJhNDA2NmRjMjk2NTI2OTA2OWFmMmY1MTc2YmI4Y2U5Y2E2ZDExZjk2NzU3ZjAzMjA0Zjc1NjcwMzU4N2QwMGFkNDI0Nzk2YzkyZmM3YWViNmY0OTQ0MzE5OTllZGEzMDk5MGU0ZjU3NzM2MzJlZDI1OGZlMDI3NjY3MzU5OWRhNmZjZTM1Y2RhZDc3MjZhMGJiMDI0Y2FkOTk2Yjg4ZTBjYjk4ODU0Y2ViNWMwYjZlYzc0OGQ5ZjljZTZhNmNkNDM3ODU4YmFjYjgxNDYxOGEyNzJmZjNhNDE1YzZlMDdmM2RiMDk4ODc3N2ZkZWM4NDVhOTdiZjdkMTAyZGQwMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMyMDIxNDU2NGQ1NTQwMjVhZjU5OWUzMjcwNzliMjcyMGVmMDBkZjM3Y2ZiN2MzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDA0NjA5OGRjNWYyYjk5ZTNiYzJlZDY2NDJkN2YwYTYxZWZhYmMxNWMzOGM3NjMzM2JjY2NlZWVlMzY5YTRmNGE1YmRkYThlYTU5MjY0MTI0ZTQyOWYwODYzMjY4M2RkYmExN2JiZjI2MmQ4MmI2YmVmYTNiNGUxNDgwMzc2YThjN2YzYzdkN2UyYTY3NzliYmYxODI2MmFhODU3ZGU4YzIwYTEyYjZhMmNlOGU0ZDdmMzFkZDFiMTk1MzkyY2Y2MTg1YWZjZTM0YWZlMDU4OTYwNTdiMzZlOWIxNzFiNmM2N2VkN2MyMjg2Y2JmYTgzZmY4YTE2N2M3YmM3MTA5YWVlN2Q3ZTE5MDliZDM4NGZiZmM2MTkzOGVmY2E1MWM4OTkzYzcxZGIzMTc3MzBmMTZlN2U3NzY4NjdhZTRmZGM1NjJkNmYxNWRlNTg1ZTdiOTRlZjQ5NmEzNjc2MzY3YTJjYmFhYjdiNjM2NjQ4YjAwNzZiYWQ1Y2RmMWUwOTc0MGVjNmE0NTFiZmY1MzRlZmEyMTUwOWYzYmE3N2I4MTAxYjkxZWE3ZTU1ZGRiZmUxNDAxNTE3MDY3ZDdiMDFhMmEwODc5ZjA4ODVjODk0YTg3Y2ZiNjhjNGQ3ZWU4OTA2MDQ4ODFhZWI5N2MyMmQxZjMzN2VmOTIzZTAzNWE2NDAwIgogCiBQS0NTNyBQYXJzZSBGYWlsdXJlIEludmFsaWQgQVNOMTogQ2hhbmdlIGxlbmd0aCBmcm9tIDIxIHRvIDIyICMzOTUuMAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHBrY3M3X2FzbjFfZmFpbDoiMzA4MjAzMjYwNjA5MmE4NjQ4ODZmNzBkMDEwNzAyYTA4MjAzMTczMDgyMDMxMzAyMDEwMTMxMGYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBiMDYwOTJhODY0ODg2ZjcwZDAxMDcwMTMxODIwMmVlMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE2MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDViZWNkODcxOTVjMWRlZmY5MGMyNGM5MTI2OWI1NWIzZjA2OWJjMjI1YzMyNmMzMTRjMWE1MTc4NmZmZTE0YzgzMGJlNGU0YmM3M2NiYTM2Yzk3Njc3YjQ0MTY4Mjc5YmU5MWU3Y2RmN2MxOTM4NmFlMjE4NjI3MTlkMTNhM2EwZmZmMDgwM2Q0NjA5NjJmMmNkYTgzNzE0ODQ4NzMyNTJjM2Q3MDU0ZGI4MTQzZTJiMDgxYTM4MTZlZDA4MDRjYTUwOTlhZTVmZWNlODNkNWMyYzM3ODNiMTk4OGI0YjQ2ZGM5NGU1NTU4N2ExMDdlYTE1NDZiZjIyZDI4YTA5N2Y2NTJhNDA2NmRjMjk2NTI2OTA2OWFmMmY1MTc2YmI4Y2U5Y2E2ZDExZjk2NzU3ZjAzMjA0Zjc1NjcwMzU4N2QwMGFkNDI0Nzk2YzkyZmM3YWViNmY0OTQ0MzE5OTllZGEzMDk5MGU0ZjU3NzM2MzJlZDI1OGZlMDI3NjY3MzU5OWRhNmZjZTM1Y2RhZDc3MjZhMGJiMDI0Y2FkOTk2Yjg4ZTBjYjk4ODU0Y2ViNWMwYjZlYzc0OGQ5ZjljZTZhNmNkNDM3ODU4YmFjYjgxNDYxOGEyNzJmZjNhNDE1YzZlMDdmM2RiMDk4ODc3N2ZkZWM4NDVhOTdiZjdkMTAyZGQwMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMyMDIxNDU2NGQ1NTQwMjVhZjU5OWUzMjcwNzliMjcyMGVmMDBkZjM3Y2ZiN2MzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDA0NjA5OGRjNWYyYjk5ZTNiYzJlZDY2NDJkN2YwYTYxZWZhYmMxNWMzOGM3NjMzM2JjY2NlZWVlMzY5YTRmNGE1YmRkYThlYTU5MjY0MTI0ZTQyOWYwODYzMjY4M2RkYmExN2JiZjI2MmQ4MmI2YmVmYTNiNGUxNDgwMzc2YThjN2YzYzdkN2UyYTY3NzliYmYxODI2MmFhODU3ZGU4YzIwYTEyYjZhMmNlOGU0ZDdmMzFkZDFiMTk1MzkyY2Y2MTg1YWZjZTM0YWZlMDU4OTYwNTdiMzZlOWIxNzFiNmM2N2VkN2MyMjg2Y2JmYTgzZmY4YTE2N2M3YmM3MTA5YWVlN2Q3ZTE5MDliZDM4NGZiZmM2MTkzOGVmY2E1MWM4OTkzYzcxZGIzMTc3MzBmMTZlN2U3NzY4NjdhZTRmZGM1NjJkNmYxNWRlNTg1ZTdiOTRlZjQ5NmEzNjc2MzY3YTJjYmFhYjdiNjM2NjQ4YjAwNzZiYWQ1Y2RmMWUwOTc0MGVjNmE0NTFiZmY1MzRlZmEyMTUwOWYzYmE3N2I4MTAxYjkxZWE3ZTU1ZGRiZmUxNDAxNTE3MDY3ZDdiMDFhMmEwODc5ZjA4ODVjODk0YTg3Y2ZiNjhjNGQ3ZWU4OTA2MDQ4ODFhZWI5N2MyMmQxZjMzN2VmOTIzZTAzNWE2NDAwIgogCiBQS0NTNyBQYXJzZSBGYWlsdXJlIEludmFsaWQgQVNOMTogQ2hhbmdlIGNvbnRlbnRzIG9mIHRhZyAzMSB0byBjb250YWluIG9uZSB1bmFjY291bnRlZCBleHRyYSBieXRlICMzOTYuMAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHBrY3M3X2FzbjFfZmFpbDoiMzA4MjAzMjYwNjA5MmE4NjQ4ODZmNzBkMDEwNzAyYTA4MjAzMTczMDgyMDMxMzAyMDEwMTMxMGYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBiMDYwOTJhODY0ODg2ZjcwZDAxMDcwMTMxODIwMmVlMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE2MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMDAwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwNWJlY2Q4NzE5NWMxZGVmZjkwYzI0YzkxMjY5YjU1YjNmMDY5YmMyMjVjMzI2YzMxNGMxYTUxNzg2ZmZlMTRjODMwYmU0ZTRiYzczY2JhMzZjOTc2NzdiNDQxNjgyNzliZTkxZTdjZGY3YzE5Mzg2YWUyMTg2MjcxOWQxM2EzYTBmZmYwODAzZDQ2MDk2MmYyY2RhODM3MTQ4NDg3MzI1MmMzZDcwNTRkYjgxNDNlMmIwODFhMzgxNmVkMDgwNGNhNTA5OWFlNWZlY2U4M2Q1YzJjMzc4M2IxOTg4YjRiNDZkYzk0ZTU1NTg3YTEwN2VhMTU0NmJmMjJkMjhhMDk3ZjY1MmE0MDY2ZGMyOTY1MjY5MDY5YWYyZjUxNzZiYjhjZTljYTZkMTFmOTY3NTdmMDMyMDRmNzU2NzAzNTg3ZDAwYWQ0MjQ3OTZjOTJmYzdhZWI2ZjQ5NDQzMTk5OWVkYTMwOTkwZTRmNTc3MzYzMmVkMjU4ZmUwMjc2NjczNTk5ZGE2ZmNlMzVjZGFkNzcyNmEwYmIwMjRjYWQ5OTZiODhlMGNiOTg4NTRjZWI1YzBiNmVjNzQ4ZDlmOWNlNmE2Y2Q0Mzc4NThiYWNiODE0NjE4YTI3MmZmM2E0MTVjNmUwN2YzZGIwOTg4Nzc3ZmRlYzg0NWE5N2JmN2QxMDJkZDAzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzIwMjE0NTY0ZDU1NDAyNWFmNTk5ZTMyNzA3OWIyNzIwZWYwMGRmMzdjZmI3YzMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwMDQ2MDk4ZGM1ZjJiOTllM2JjMmVkNjY0MmQ3ZjBhNjFlZmFiYzE1YzM4Yzc2MzMzYmNjY2VlZWUzNjlhNGY0YTViZGRhOGVhNTkyNjQxMjRlNDI5ZjA4NjMyNjgzZGRiYTE3YmJmMjYyZDgyYjZiZWZhM2I0ZTE0ODAzNzZhOGM3ZjNjN2Q3ZTJhNjc3OWJiZjE4MjYyYWE4NTdkZThjMjBhMTJiNmEyY2U4ZTRkN2YzMWRkMWIxOTUzOTJjZjYxODVhZmNlMzRhZmUwNTg5NjA1N2IzNmU5YjE3MWI2YzY3ZWQ3YzIyODZjYmZhODNmZjhhMTY3YzdiYzcxMDlhZWU3ZDdlMTkwOWJkMzg0ZmJmYzYxOTM4ZWZjYTUxYzg5OTNjNzFkYjMxNzczMGYxNmU3ZTc3Njg2N2FlNGZkYzU2MmQ2ZjE1ZGU1ODVlN2I5NGVmNDk2YTM2NzYzNjdhMmNiYWFiN2I2MzY2NDhiMDA3NmJhZDVjZGYxZTA5NzQwZWM2YTQ1MWJmZjUzNGVmYTIxNTA5ZjNiYTc3YjgxMDFiOTFlYTdlNTVkZGJmZTE0MDE1MTcwNjdkN2IwMWEyYTA4NzlmMDg4NWM4OTRhODdjZmI2OGM0ZDdlZTg5MDYwNDg4MWFlYjk3YzIyZDFmMzM3ZWY5MjNlMDM1YTY0MDAiCiAKIFBLQ1M3IFBhcnNlIEZhaWx1cmUgSW52YWxpZCBBU04xOiBDaGFuZ2UgbGVuZ3RoIGZyb20gMjEgdG8gMjAgIzM5Ny4wCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NgogcGtjczdfYXNuMV9mYWlsOiIzMDgyMDMyNjA2MDkyYTg2NDg4NmY3MGQwMTA3MDJhMDgyMDMxNzMwODIwMzEzMDIwMTAxMzEwZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGIwNjA5MmE4NjQ4ODZmNzBkMDEwNzAxMzE4MjAyZWUzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTQzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwNWJlY2Q4NzE5NWMxZGVmZjkwYzI0YzkxMjY5YjU1YjNmMDY5YmMyMjVjMzI2YzMxNGMxYTUxNzg2ZmZlMTRjODMwYmU0ZTRiYzczY2JhMzZjOTc2NzdiNDQxNjgyNzliZTkxZTdjZGY3YzE5Mzg2YWUyMTg2MjcxOWQxM2EzYTBmZmYwODAzZDQ2MDk2MmYyY2RhODM3MTQ4NDg3MzI1MmMzZDcwNTRkYjgxNDNlMmIwODFhMzgxNmVkMDgwNGNhNTA5OWFlNWZlY2U4M2Q1YzJjMzc4M2IxOTg4YjRiNDZkYzk0ZTU1NTg3YTEwN2VhMTU0NmJmMjJkMjhhMDk3ZjY1MmE0MDY2ZGMyOTY1MjY5MDY5YWYyZjUxNzZiYjhjZTljYTZkMTFmOTY3NTdmMDMyMDRmNzU2NzAzNTg3ZDAwYWQ0MjQ3OTZjOTJmYzdhZWI2ZjQ5NDQzMTk5OWVkYTMwOTkwZTRmNTc3MzYzMmVkMjU4ZmUwMjc2NjczNTk5ZGE2ZmNlMzVjZGFkNzcyNmEwYmIwMjRjYWQ5OTZiODhlMGNiOTg4NTRjZWI1YzBiNmVjNzQ4ZDlmOWNlNmE2Y2Q0Mzc4NThiYWNiODE0NjE4YTI3MmZmM2E0MTVjNmUwN2YzZGIwOTg4Nzc3ZmRlYzg0NWE5N2JmN2QxMDJkZDAzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzIwMjE0NTY0ZDU1NDAyNWFmNTk5ZTMyNzA3OWIyNzIwZWYwMGRmMzdjZmI3YzMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwMDQ2MDk4ZGM1ZjJiOTllM2JjMmVkNjY0MmQ3ZjBhNjFlZmFiYzE1YzM4Yzc2MzMzYmNjY2VlZWUzNjlhNGY0YTViZGRhOGVhNTkyNjQxMjRlNDI5ZjA4NjMyNjgzZGRiYTE3YmJmMjYyZDgyYjZiZWZhM2I0ZTE0ODAzNzZhOGM3ZjNjN2Q3ZTJhNjc3OWJiZjE4MjYyYWE4NTdkZThjMjBhMTJiNmEyY2U4ZTRkN2YzMWRkMWIxOTUzOTJjZjYxODVhZmNlMzRhZmUwNTg5NjA1N2IzNmU5YjE3MWI2YzY3ZWQ3YzIyODZjYmZhODNmZjhhMTY3YzdiYzcxMDlhZWU3ZDdlMTkwOWJkMzg0ZmJmYzYxOTM4ZWZjYTUxYzg5OTNjNzFkYjMxNzczMGYxNmU3ZTc3Njg2N2FlNGZkYzU2MmQ2ZjE1ZGU1ODVlN2I5NGVmNDk2YTM2NzYzNjdhMmNiYWFiN2I2MzY2NDhiMDA3NmJhZDVjZGYxZTA5NzQwZWM2YTQ1MWJmZjUzNGVmYTIxNTA5ZjNiYTc3YjgxMDFiOTFlYTdlNTVkZGJmZTE0MDE1MTcwNjdkN2IwMWEyYTA4NzlmMDg4NWM4OTRhODdjZmI2OGM0ZDdlZTg5MDYwNDg4MWFlYjk3YzIyZDFmMzM3ZWY5MjNlMDM1YTY0MDAiCiAKIFBLQ1M3IFBhcnNlIEZhaWx1cmUgSW52YWxpZCBBU04xOiBDaGFuZ2UgdGFnIDMwIHRvIDAyICMzOTguMAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHBrY3M3X2FzbjFfZmFpbDoiMzA4MjAzMjYwNjA5MmE4NjQ4ODZmNzBkMDEwNzAyYTA4MjAzMTczMDgyMDMxMzAyMDEwMTMxMGYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBiMDYwOTJhODY0ODg2ZjcwZDAxMDcwMTMxODIwMmVlMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MDIxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDViZWNkODcxOTVjMWRlZmY5MGMyNGM5MTI2OWI1NWIzZjA2OWJjMjI1YzMyNmMzMTRjMWE1MTc4NmZmZTE0YzgzMGJlNGU0YmM3M2NiYTM2Yzk3Njc3YjQ0MTY4Mjc5YmU5MWU3Y2RmN2MxOTM4NmFlMjE4NjI3MTlkMTNhM2EwZmZmMDgwM2Q0NjA5NjJmMmNkYTgzNzE0ODQ4NzMyNTJjM2Q3MDU0ZGI4MTQzZTJiMDgxYTM4MTZlZDA4MDRjYTUwOTlhZTVmZWNlODNkNWMyYzM3ODNiMTk4OGI0YjQ2ZGM5NGU1NTU4N2ExMDdlYTE1NDZiZjIyZDI4YTA5N2Y2NTJhNDA2NmRjMjk2NTI2OTA2OWFmMmY1MTc2YmI4Y2U5Y2E2ZDExZjk2NzU3ZjAzMjA0Zjc1NjcwMzU4N2QwMGFkNDI0Nzk2YzkyZmM3YWViNmY0OTQ0MzE5OTllZGEzMDk5MGU0ZjU3NzM2MzJlZDI1OGZlMDI3NjY3MzU5OWRhNmZjZTM1Y2RhZDc3MjZhMGJiMDI0Y2FkOTk2Yjg4ZTBjYjk4ODU0Y2ViNWMwYjZlYzc0OGQ5ZjljZTZhNmNkNDM3ODU4YmFjYjgxNDYxOGEyNzJmZjNhNDE1YzZlMDdmM2RiMDk4ODc3N2ZkZWM4NDVhOTdiZjdkMTAyZGQwMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMyMDIxNDU2NGQ1NTQwMjVhZjU5OWUzMjcwNzliMjcyMGVmMDBkZjM3Y2ZiN2MzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDA0NjA5OGRjNWYyYjk5ZTNiYzJlZDY2NDJkN2YwYTYxZWZhYmMxNWMzOGM3NjMzM2JjY2NlZWVlMzY5YTRmNGE1YmRkYThlYTU5MjY0MTI0ZTQyOWYwODYzMjY4M2RkYmExN2JiZjI2MmQ4MmI2YmVmYTNiNGUxNDgwMzc2YThjN2YzYzdkN2UyYTY3NzliYmYxODI2MmFhODU3ZGU4YzIwYTEyYjZhMmNlOGU0ZDdmMzFkZDFiMTk1MzkyY2Y2MTg1YWZjZTM0YWZlMDU4OTYwNTdiMzZlOWIxNzFiNmM2N2VkN2MyMjg2Y2JmYTgzZmY4YTE2N2M3YmM3MTA5YWVlN2Q3ZTE5MDliZDM4NGZiZmM2MTkzOGVmY2E1MWM4OTkzYzcxZGIzMTc3MzBmMTZlN2U3NzY4NjdhZTRmZGM1NjJkNmYxNWRlNTg1ZTdiOTRlZjQ5NmEzNjc2MzY3YTJjYmFhYjdiNjM2NjQ4YjAwNzZiYWQ1Y2RmMWUwOTc0MGVjNmE0NTFiZmY1MzRlZmEyMTUwOWYzYmE3N2I4MTAxYjkxZWE3ZTU1ZGRiZmUxNDAxNTE3MDY3ZDdiMDFhMmEwODc5ZjA4ODVjODk0YTg3Y2ZiNjhjNGQ3ZWU4OTA2MDQ4ODFhZWI5N2MyMmQxZjMzN2VmOTIzZTAzNWE2NDAwIgogCiBQS0NTNyBQYXJzZSBGYWlsdXJlIEludmFsaWQgQVNOMTogQ2hhbmdlIGxlbmd0aCBmcm9tIDE5IHRvIDIwICMzOTkuMAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHBrY3M3X2FzbjFfZmFpbDoiMzA4MjAzMjYwNjA5MmE4NjQ4ODZmNzBkMDEwNzAyYTA4MjAzMTczMDgyMDMxMzAyMDEwMTMxMGYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBiMDYwOTJhODY0ODg2ZjcwZDAxMDcwMTMxODIwMmVlMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxNDA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDViZWNkODcxOTVjMWRlZmY5MGMyNGM5MTI2OWI1NWIzZjA2OWJjMjI1YzMyNmMzMTRjMWE1MTc4NmZmZTE0YzgzMGJlNGU0YmM3M2NiYTM2Yzk3Njc3YjQ0MTY4Mjc5YmU5MWU3Y2RmN2MxOTM4NmFlMjE4NjI3MTlkMTNhM2EwZmZmMDgwM2Q0NjA5NjJmMmNkYTgzNzE0ODQ4NzMyNTJjM2Q3MDU0ZGI4MTQzZTJiMDgxYTM4MTZlZDA4MDRjYTUwOTlhZTVmZWNlODNkNWMyYzM3ODNiMTk4OGI0YjQ2ZGM5NGU1NTU4N2ExMDdlYTE1NDZiZjIyZDI4YTA5N2Y2NTJhNDA2NmRjMjk2NTI2OTA2OWFmMmY1MTc2YmI4Y2U5Y2E2ZDExZjk2NzU3ZjAzMjA0Zjc1NjcwMzU4N2QwMGFkNDI0Nzk2YzkyZmM3YWViNmY0OTQ0MzE5OTllZGEzMDk5MGU0ZjU3NzM2MzJlZDI1OGZlMDI3NjY3MzU5OWRhNmZjZTM1Y2RhZDc3MjZhMGJiMDI0Y2FkOTk2Yjg4ZTBjYjk4ODU0Y2ViNWMwYjZlYzc0OGQ5ZjljZTZhNmNkNDM3ODU4YmFjYjgxNDYxOGEyNzJmZjNhNDE1YzZlMDdmM2RiMDk4ODc3N2ZkZWM4NDVhOTdiZjdkMTAyZGQwMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMyMDIxNDU2NGQ1NTQwMjVhZjU5OWUzMjcwNzliMjcyMGVmMDBkZjM3Y2ZiN2MzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDA0NjA5OGRjNWYyYjk5ZTNiYzJlZDY2NDJkN2YwYTYxZWZhYmMxNWMzOGM3NjMzM2JjY2NlZWVlMzY5YTRmNGE1YmRkYThlYTU5MjY0MTI0ZTQyOWYwODYzMjY4M2RkYmExN2JiZjI2MmQ4MmI2YmVmYTNiNGUxNDgwMzc2YThjN2YzYzdkN2UyYTY3NzliYmYxODI2MmFhODU3ZGU4YzIwYTEyYjZhMmNlOGU0ZDdmMzFkZDFiMTk1MzkyY2Y2MTg1YWZjZTM0YWZlMDU4OTYwNTdiMzZlOWIxNzFiNmM2N2VkN2MyMjg2Y2JmYTgzZmY4YTE2N2M3YmM3MTA5YWVlN2Q3ZTE5MDliZDM4NGZiZmM2MTkzOGVmY2E1MWM4OTkzYzcxZGIzMTc3MzBmMTZlN2U3NzY4NjdhZTRmZGM1NjJkNmYxNWRlNTg1ZTdiOTRlZjQ5NmEzNjc2MzY3YTJjYmFhYjdiNjM2NjQ4YjAwNzZiYWQ1Y2RmMWUwOTc0MGVjNmE0NTFiZmY1MzRlZmEyMTUwOWYzYmE3N2I4MTAxYjkxZWE3ZTU1ZGRiZmUxNDAxNTE3MDY3ZDdiMDFhMmEwODc5ZjA4ODVjODk0YTg3Y2ZiNjhjNGQ3ZWU4OTA2MDQ4ODFhZWI5N2MyMmQxZjMzN2VmOTIzZTAzNWE2NDAwIgogCiBQS0NTNyBQYXJzZSBGYWlsdXJlIEludmFsaWQgQVNOMTogQ2hhbmdlIGNvbnRlbnRzIG9mIHRhZyAzMCB0byBjb250YWluIG9uZSB1bmFjY291bnRlZCBleHRyYSBieXRlICM0MDAuMAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHBrY3M3X2FzbjFfZmFpbDoiMzA4MjAzMjYwNjA5MmE4NjQ4ODZmNzBkMDEwNzAyYTA4MjAzMTczMDgyMDMxMzAyMDEwMTMxMGYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBiMDYwOTJhODY0ODg2ZjcwZDAxMDcwMTMxODIwMmVlMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxNDA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMDAwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwNWJlY2Q4NzE5NWMxZGVmZjkwYzI0YzkxMjY5YjU1YjNmMDY5YmMyMjVjMzI2YzMxNGMxYTUxNzg2ZmZlMTRjODMwYmU0ZTRiYzczY2JhMzZjOTc2NzdiNDQxNjgyNzliZTkxZTdjZGY3YzE5Mzg2YWUyMTg2MjcxOWQxM2EzYTBmZmYwODAzZDQ2MDk2MmYyY2RhODM3MTQ4NDg3MzI1MmMzZDcwNTRkYjgxNDNlMmIwODFhMzgxNmVkMDgwNGNhNTA5OWFlNWZlY2U4M2Q1YzJjMzc4M2IxOTg4YjRiNDZkYzk0ZTU1NTg3YTEwN2VhMTU0NmJmMjJkMjhhMDk3ZjY1MmE0MDY2ZGMyOTY1MjY5MDY5YWYyZjUxNzZiYjhjZTljYTZkMTFmOTY3NTdmMDMyMDRmNzU2NzAzNTg3ZDAwYWQ0MjQ3OTZjOTJmYzdhZWI2ZjQ5NDQzMTk5OWVkYTMwOTkwZTRmNTc3MzYzMmVkMjU4ZmUwMjc2NjczNTk5ZGE2ZmNlMzVjZGFkNzcyNmEwYmIwMjRjYWQ5OTZiODhlMGNiOTg4NTRjZWI1YzBiNmVjNzQ4ZDlmOWNlNmE2Y2Q0Mzc4NThiYWNiODE0NjE4YTI3MmZmM2E0MTVjNmUwN2YzZGIwOTg4Nzc3ZmRlYzg0NWE5N2JmN2QxMDJkZDAzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzIwMjE0NTY0ZDU1NDAyNWFmNTk5ZTMyNzA3OWIyNzIwZWYwMGRmMzdjZmI3YzMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwMDQ2MDk4ZGM1ZjJiOTllM2JjMmVkNjY0MmQ3ZjBhNjFlZmFiYzE1YzM4Yzc2MzMzYmNjY2VlZWUzNjlhNGY0YTViZGRhOGVhNTkyNjQxMjRlNDI5ZjA4NjMyNjgzZGRiYTE3YmJmMjYyZDgyYjZiZWZhM2I0ZTE0ODAzNzZhOGM3ZjNjN2Q3ZTJhNjc3OWJiZjE4MjYyYWE4NTdkZThjMjBhMTJiNmEyY2U4ZTRkN2YzMWRkMWIxOTUzOTJjZjYxODVhZmNlMzRhZmUwNTg5NjA1N2IzNmU5YjE3MWI2YzY3ZWQ3YzIyODZjYmZhODNmZjhhMTY3YzdiYzcxMDlhZWU3ZDdlMTkwOWJkMzg0ZmJmYzYxOTM4ZWZjYTUxYzg5OTNjNzFkYjMxNzczMGYxNmU3ZTc3Njg2N2FlNGZkYzU2MmQ2ZjE1ZGU1ODVlN2I5NGVmNDk2YTM2NzYzNjdhMmNiYWFiN2I2MzY2NDhiMDA3NmJhZDVjZGYxZTA5NzQwZWM2YTQ1MWJmZjUzNGVmYTIxNTA5ZjNiYTc3YjgxMDFiOTFlYTdlNTVkZGJmZTE0MDE1MTcwNjdkN2IwMWEyYTA4NzlmMDg4NWM4OTRhODdjZmI2OGM0ZDdlZTg5MDYwNDg4MWFlYjk3YzIyZDFmMzM3ZWY5MjNlMDM1YTY0MDAiCiAKIFBLQ1M3IFBhcnNlIEZhaWx1cmUgSW52YWxpZCBBU04xOiBDaGFuZ2UgbGVuZ3RoIGZyb20gMTkgdG8gMTggIzQwMS4wCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NgogcGtjczdfYXNuMV9mYWlsOiIzMDgyMDMyNjA2MDkyYTg2NDg4NmY3MGQwMTA3MDJhMDgyMDMxNzMwODIwMzEzMDIwMTAxMzEwZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGIwNjA5MmE4NjQ4ODZmNzBkMDEwNzAxMzE4MjAyZWUzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEyMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwNWJlY2Q4NzE5NWMxZGVmZjkwYzI0YzkxMjY5YjU1YjNmMDY5YmMyMjVjMzI2YzMxNGMxYTUxNzg2ZmZlMTRjODMwYmU0ZTRiYzczY2JhMzZjOTc2NzdiNDQxNjgyNzliZTkxZTdjZGY3YzE5Mzg2YWUyMTg2MjcxOWQxM2EzYTBmZmYwODAzZDQ2MDk2MmYyY2RhODM3MTQ4NDg3MzI1MmMzZDcwNTRkYjgxNDNlMmIwODFhMzgxNmVkMDgwNGNhNTA5OWFlNWZlY2U4M2Q1YzJjMzc4M2IxOTg4YjRiNDZkYzk0ZTU1NTg3YTEwN2VhMTU0NmJmMjJkMjhhMDk3ZjY1MmE0MDY2ZGMyOTY1MjY5MDY5YWYyZjUxNzZiYjhjZTljYTZkMTFmOTY3NTdmMDMyMDRmNzU2NzAzNTg3ZDAwYWQ0MjQ3OTZjOTJmYzdhZWI2ZjQ5NDQzMTk5OWVkYTMwOTkwZTRmNTc3MzYzMmVkMjU4ZmUwMjc2NjczNTk5ZGE2ZmNlMzVjZGFkNzcyNmEwYmIwMjRjYWQ5OTZiODhlMGNiOTg4NTRjZWI1YzBiNmVjNzQ4ZDlmOWNlNmE2Y2Q0Mzc4NThiYWNiODE0NjE4YTI3MmZmM2E0MTVjNmUwN2YzZGIwOTg4Nzc3ZmRlYzg0NWE5N2JmN2QxMDJkZDAzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzIwMjE0NTY0ZDU1NDAyNWFmNTk5ZTMyNzA3OWIyNzIwZWYwMGRmMzdjZmI3YzMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwMDQ2MDk4ZGM1ZjJiOTllM2JjMmVkNjY0MmQ3ZjBhNjFlZmFiYzE1YzM4Yzc2MzMzYmNjY2VlZWUzNjlhNGY0YTViZGRhOGVhNTkyNjQxMjRlNDI5ZjA4NjMyNjgzZGRiYTE3YmJmMjYyZDgyYjZiZWZhM2I0ZTE0ODAzNzZhOGM3ZjNjN2Q3ZTJhNjc3OWJiZjE4MjYyYWE4NTdkZThjMjBhMTJiNmEyY2U4ZTRkN2YzMWRkMWIxOTUzOTJjZjYxODVhZmNlMzRhZmUwNTg5NjA1N2IzNmU5YjE3MWI2YzY3ZWQ3YzIyODZjYmZhODNmZjhhMTY3YzdiYzcxMDlhZWU3ZDdlMTkwOWJkMzg0ZmJmYzYxOTM4ZWZjYTUxYzg5OTNjNzFkYjMxNzczMGYxNmU3ZTc3Njg2N2FlNGZkYzU2MmQ2ZjE1ZGU1ODVlN2I5NGVmNDk2YTM2NzYzNjdhMmNiYWFiN2I2MzY2NDhiMDA3NmJhZDVjZGYxZTA5NzQwZWM2YTQ1MWJmZjUzNGVmYTIxNTA5ZjNiYTc3YjgxMDFiOTFlYTdlNTVkZGJmZTE0MDE1MTcwNjdkN2IwMWEyYTA4NzlmMDg4NWM4OTRhODdjZmI2OGM0ZDdlZTg5MDYwNDg4MWFlYjk3YzIyZDFmMzM3ZWY5MjNlMDM1YTY0MDAiCiAKIFBLQ1M3IFBhcnNlIEZhaWx1cmUgSW52YWxpZCBBU04xOiBDaGFuZ2UgdGFnIDA2IHRvIDAyICM0MDIuMAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHBrY3M3X2FzbjFfZmFpbDoiMzA4MjAzMjYwNjA5MmE4NjQ4ODZmNzBkMDEwNzAyYTA4MjAzMTczMDgyMDMxMzAyMDEwMTMxMGYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBiMDYwOTJhODY0ODg2ZjcwZDAxMDcwMTMxODIwMmVlMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzAyMDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDViZWNkODcxOTVjMWRlZmY5MGMyNGM5MTI2OWI1NWIzZjA2OWJjMjI1YzMyNmMzMTRjMWE1MTc4NmZmZTE0YzgzMGJlNGU0YmM3M2NiYTM2Yzk3Njc3YjQ0MTY4Mjc5YmU5MWU3Y2RmN2MxOTM4NmFlMjE4NjI3MTlkMTNhM2EwZmZmMDgwM2Q0NjA5NjJmMmNkYTgzNzE0ODQ4NzMyNTJjM2Q3MDU0ZGI4MTQzZTJiMDgxYTM4MTZlZDA4MDRjYTUwOTlhZTVmZWNlODNkNWMyYzM3ODNiMTk4OGI0YjQ2ZGM5NGU1NTU4N2ExMDdlYTE1NDZiZjIyZDI4YTA5N2Y2NTJhNDA2NmRjMjk2NTI2OTA2OWFmMmY1MTc2YmI4Y2U5Y2E2ZDExZjk2NzU3ZjAzMjA0Zjc1NjcwMzU4N2QwMGFkNDI0Nzk2YzkyZmM3YWViNmY0OTQ0MzE5OTllZGEzMDk5MGU0ZjU3NzM2MzJlZDI1OGZlMDI3NjY3MzU5OWRhNmZjZTM1Y2RhZDc3MjZhMGJiMDI0Y2FkOTk2Yjg4ZTBjYjk4ODU0Y2ViNWMwYjZlYzc0OGQ5ZjljZTZhNmNkNDM3ODU4YmFjYjgxNDYxOGEyNzJmZjNhNDE1YzZlMDdmM2RiMDk4ODc3N2ZkZWM4NDVhOTdiZjdkMTAyZGQwMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMyMDIxNDU2NGQ1NTQwMjVhZjU5OWUzMjcwNzliMjcyMGVmMDBkZjM3Y2ZiN2MzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDA0NjA5OGRjNWYyYjk5ZTNiYzJlZDY2NDJkN2YwYTYxZWZhYmMxNWMzOGM3NjMzM2JjY2NlZWVlMzY5YTRmNGE1YmRkYThlYTU5MjY0MTI0ZTQyOWYwODYzMjY4M2RkYmExN2JiZjI2MmQ4MmI2YmVmYTNiNGUxNDgwMzc2YThjN2YzYzdkN2UyYTY3NzliYmYxODI2MmFhODU3ZGU4YzIwYTEyYjZhMmNlOGU0ZDdmMzFkZDFiMTk1MzkyY2Y2MTg1YWZjZTM0YWZlMDU4OTYwNTdiMzZlOWIxNzFiNmM2N2VkN2MyMjg2Y2JmYTgzZmY4YTE2N2M3YmM3MTA5YWVlN2Q3ZTE5MDliZDM4NGZiZmM2MTkzOGVmY2E1MWM4OTkzYzcxZGIzMTc3MzBmMTZlN2U3NzY4NjdhZTRmZGM1NjJkNmYxNWRlNTg1ZTdiOTRlZjQ5NmEzNjc2MzY3YTJjYmFhYjdiNjM2NjQ4YjAwNzZiYWQ1Y2RmMWUwOTc0MGVjNmE0NTFiZmY1MzRlZmEyMTUwOWYzYmE3N2I4MTAxYjkxZWE3ZTU1ZGRiZmUxNDAxNTE3MDY3ZDdiMDFhMmEwODc5ZjA4ODVjODk0YTg3Y2ZiNjhjNGQ3ZWU4OTA2MDQ4ODFhZWI5N2MyMmQxZjMzN2VmOTIzZTAzNWE2NDAwIgogCiBQS0NTNyBQYXJzZSBGYWlsdXJlIEludmFsaWQgQVNOMTogQ2hhbmdlIGxlbmd0aCBmcm9tIDMgdG8gNCAjNDAzLjAKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBwa2NzN19hc24xX2ZhaWw6IjMwODIwMzI2MDYwOTJhODY0ODg2ZjcwZDAxMDcwMmEwODIwMzE3MzA4MjAzMTMwMjAxMDEzMTBmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwYjA2MDkyYTg2NDg4NmY3MGQwMTA3MDEzMTgyMDJlZTMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjA0NTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTAyMTQ3YmRlZGRkMjQ0NGNkMWNkZmU1YzQxYTgxMDJjODliN2RmMmU2Y2JmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDA1YmVjZDg3MTk1YzFkZWZmOTBjMjRjOTEyNjliNTViM2YwNjliYzIyNWMzMjZjMzE0YzFhNTE3ODZmZmUxNGM4MzBiZTRlNGJjNzNjYmEzNmM5NzY3N2I0NDE2ODI3OWJlOTFlN2NkZjdjMTkzODZhZTIxODYyNzE5ZDEzYTNhMGZmZjA4MDNkNDYwOTYyZjJjZGE4MzcxNDg0ODczMjUyYzNkNzA1NGRiODE0M2UyYjA4MWEzODE2ZWQwODA0Y2E1MDk5YWU1ZmVjZTgzZDVjMmMzNzgzYjE5ODhiNGI0NmRjOTRlNTU1ODdhMTA3ZWExNTQ2YmYyMmQyOGEwOTdmNjUyYTQwNjZkYzI5NjUyNjkwNjlhZjJmNTE3NmJiOGNlOWNhNmQxMWY5Njc1N2YwMzIwNGY3NTY3MDM1ODdkMDBhZDQyNDc5NmM5MmZjN2FlYjZmNDk0NDMxOTk5ZWRhMzA5OTBlNGY1NzczNjMyZWQyNThmZTAyNzY2NzM1OTlkYTZmY2UzNWNkYWQ3NzI2YTBiYjAyNGNhZDk5NmI4OGUwY2I5ODg1NGNlYjVjMGI2ZWM3NDhkOWY5Y2U2YTZjZDQzNzg1OGJhY2I4MTQ2MThhMjcyZmYzYTQxNWM2ZTA3ZjNkYjA5ODg3NzdmZGVjODQ1YTk3YmY3ZDEwMmRkMDMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMjAyMTQ1NjRkNTU0MDI1YWY1OTllMzI3MDc5YjI3MjBlZjAwZGYzN2NmYjdjMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDAwNDYwOThkYzVmMmI5OWUzYmMyZWQ2NjQyZDdmMGE2MWVmYWJjMTVjMzhjNzYzMzNiY2NjZWVlZTM2OWE0ZjRhNWJkZGE4ZWE1OTI2NDEyNGU0MjlmMDg2MzI2ODNkZGJhMTdiYmYyNjJkODJiNmJlZmEzYjRlMTQ4MDM3NmE4YzdmM2M3ZDdlMmE2Nzc5YmJmMTgyNjJhYTg1N2RlOGMyMGExMmI2YTJjZThlNGQ3ZjMxZGQxYjE5NTM5MmNmNjE4NWFmY2UzNGFmZTA1ODk2MDU3YjM2ZTliMTcxYjZjNjdlZDdjMjI4NmNiZmE4M2ZmOGExNjdjN2JjNzEwOWFlZTdkN2UxOTA5YmQzODRmYmZjNjE5MzhlZmNhNTFjODk5M2M3MWRiMzE3NzMwZjE2ZTdlNzc2ODY3YWU0ZmRjNTYyZDZmMTVkZTU4NWU3Yjk0ZWY0OTZhMzY3NjM2N2EyY2JhYWI3YjYzNjY0OGIwMDc2YmFkNWNkZjFlMDk3NDBlYzZhNDUxYmZmNTM0ZWZhMjE1MDlmM2JhNzdiODEwMWI5MWVhN2U1NWRkYmZlMTQwMTUxNzA2N2Q3YjAxYTJhMDg3OWYwODg1Yzg5NGE4N2NmYjY4YzRkN2VlODkwNjA0ODgxYWViOTdjMjJkMWYzMzdlZjkyM2UwMzVhNjQwMCIKIAogUEtDUzcgUGFyc2UgRmFpbHVyZSBJbnZhbGlkIEFTTjE6IENoYW5nZSBsZW5ndGggZnJvbSAzIHRvIDIgIzQwNC4wCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NgogcGtjczdfYXNuMV9mYWlsOiIzMDgyMDMyNjA2MDkyYTg2NDg4NmY3MGQwMTA3MDJhMDgyMDMxNzMwODIwMzEzMDIwMTAxMzEwZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGIwNjA5MmE4NjQ4ODZmNzBkMDEwNzAxMzE4MjAyZWUzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMjU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwNWJlY2Q4NzE5NWMxZGVmZjkwYzI0YzkxMjY5YjU1YjNmMDY5YmMyMjVjMzI2YzMxNGMxYTUxNzg2ZmZlMTRjODMwYmU0ZTRiYzczY2JhMzZjOTc2NzdiNDQxNjgyNzliZTkxZTdjZGY3YzE5Mzg2YWUyMTg2MjcxOWQxM2EzYTBmZmYwODAzZDQ2MDk2MmYyY2RhODM3MTQ4NDg3MzI1MmMzZDcwNTRkYjgxNDNlMmIwODFhMzgxNmVkMDgwNGNhNTA5OWFlNWZlY2U4M2Q1YzJjMzc4M2IxOTg4YjRiNDZkYzk0ZTU1NTg3YTEwN2VhMTU0NmJmMjJkMjhhMDk3ZjY1MmE0MDY2ZGMyOTY1MjY5MDY5YWYyZjUxNzZiYjhjZTljYTZkMTFmOTY3NTdmMDMyMDRmNzU2NzAzNTg3ZDAwYWQ0MjQ3OTZjOTJmYzdhZWI2ZjQ5NDQzMTk5OWVkYTMwOTkwZTRmNTc3MzYzMmVkMjU4ZmUwMjc2NjczNTk5ZGE2ZmNlMzVjZGFkNzcyNmEwYmIwMjRjYWQ5OTZiODhlMGNiOTg4NTRjZWI1YzBiNmVjNzQ4ZDlmOWNlNmE2Y2Q0Mzc4NThiYWNiODE0NjE4YTI3MmZmM2E0MTVjNmUwN2YzZGIwOTg4Nzc3ZmRlYzg0NWE5N2JmN2QxMDJkZDAzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzIwMjE0NTY0ZDU1NDAyNWFmNTk5ZTMyNzA3OWIyNzIwZWYwMGRmMzdjZmI3YzMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwMDQ2MDk4ZGM1ZjJiOTllM2JjMmVkNjY0MmQ3ZjBhNjFlZmFiYzE1YzM4Yzc2MzMzYmNjY2VlZWUzNjlhNGY0YTViZGRhOGVhNTkyNjQxMjRlNDI5ZjA4NjMyNjgzZGRiYTE3YmJmMjYyZDgyYjZiZWZhM2I0ZTE0ODAzNzZhOGM3ZjNjN2Q3ZTJhNjc3OWJiZjE4MjYyYWE4NTdkZThjMjBhMTJiNmEyY2U4ZTRkN2YzMWRkMWIxOTUzOTJjZjYxODVhZmNlMzRhZmUwNTg5NjA1N2IzNmU5YjE3MWI2YzY3ZWQ3YzIyODZjYmZhODNmZjhhMTY3YzdiYzcxMDlhZWU3ZDdlMTkwOWJkMzg0ZmJmYzYxOTM4ZWZjYTUxYzg5OTNjNzFkYjMxNzczMGYxNmU3ZTc3Njg2N2FlNGZkYzU2MmQ2ZjE1ZGU1ODVlN2I5NGVmNDk2YTM2NzYzNjdhMmNiYWFiN2I2MzY2NDhiMDA3NmJhZDVjZGYxZTA5NzQwZWM2YTQ1MWJmZjUzNGVmYTIxNTA5ZjNiYTc3YjgxMDFiOTFlYTdlNTVkZGJmZTE0MDE1MTcwNjdkN2IwMWEyYTA4NzlmMDg4NWM4OTRhODdjZmI2OGM0ZDdlZTg5MDYwNDg4MWFlYjk3YzIyZDFmMzM3ZWY5MjNlMDM1YTY0MDAiCiAKIFBLQ1M3IFBhcnNlIEZhaWx1cmUgSW52YWxpZCBBU04xOiBDaGFuZ2UgdGFnIDBjIHRvIDAyICM0MDUuMAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHBrY3M3X2FzbjFfZmFpbDoiMzA4MjAzMjYwNjA5MmE4NjQ4ODZmNzBkMDEwNzAyYTA4MjAzMTczMDgyMDMxMzAyMDEwMTMxMGYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBiMDYwOTJhODY0ODg2ZjcwZDAxMDcwMTMxODIwMmVlMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwMjBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDViZWNkODcxOTVjMWRlZmY5MGMyNGM5MTI2OWI1NWIzZjA2OWJjMjI1YzMyNmMzMTRjMWE1MTc4NmZmZTE0YzgzMGJlNGU0YmM3M2NiYTM2Yzk3Njc3YjQ0MTY4Mjc5YmU5MWU3Y2RmN2MxOTM4NmFlMjE4NjI3MTlkMTNhM2EwZmZmMDgwM2Q0NjA5NjJmMmNkYTgzNzE0ODQ4NzMyNTJjM2Q3MDU0ZGI4MTQzZTJiMDgxYTM4MTZlZDA4MDRjYTUwOTlhZTVmZWNlODNkNWMyYzM3ODNiMTk4OGI0YjQ2ZGM5NGU1NTU4N2ExMDdlYTE1NDZiZjIyZDI4YTA5N2Y2NTJhNDA2NmRjMjk2NTI2OTA2OWFmMmY1MTc2YmI4Y2U5Y2E2ZDExZjk2NzU3ZjAzMjA0Zjc1NjcwMzU4N2QwMGFkNDI0Nzk2YzkyZmM3YWViNmY0OTQ0MzE5OTllZGEzMDk5MGU0ZjU3NzM2MzJlZDI1OGZlMDI3NjY3MzU5OWRhNmZjZTM1Y2RhZDc3MjZhMGJiMDI0Y2FkOTk2Yjg4ZTBjYjk4ODU0Y2ViNWMwYjZlYzc0OGQ5ZjljZTZhNmNkNDM3ODU4YmFjYjgxNDYxOGEyNzJmZjNhNDE1YzZlMDdmM2RiMDk4ODc3N2ZkZWM4NDVhOTdiZjdkMTAyZGQwMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMyMDIxNDU2NGQ1NTQwMjVhZjU5OWUzMjcwNzliMjcyMGVmMDBkZjM3Y2ZiN2MzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDA0NjA5OGRjNWYyYjk5ZTNiYzJlZDY2NDJkN2YwYTYxZWZhYmMxNWMzOGM3NjMzM2JjY2NlZWVlMzY5YTRmNGE1YmRkYThlYTU5MjY0MTI0ZTQyOWYwODYzMjY4M2RkYmExN2JiZjI2MmQ4MmI2YmVmYTNiNGUxNDgwMzc2YThjN2YzYzdkN2UyYTY3NzliYmYxODI2MmFhODU3ZGU4YzIwYTEyYjZhMmNlOGU0ZDdmMzFkZDFiMTk1MzkyY2Y2MTg1YWZjZTM0YWZlMDU4OTYwNTdiMzZlOWIxNzFiNmM2N2VkN2MyMjg2Y2JmYTgzZmY4YTE2N2M3YmM3MTA5YWVlN2Q3ZTE5MDliZDM4NGZiZmM2MTkzOGVmY2E1MWM4OTkzYzcxZGIzMTc3MzBmMTZlN2U3NzY4NjdhZTRmZGM1NjJkNmYxNWRlNTg1ZTdiOTRlZjQ5NmEzNjc2MzY3YTJjYmFhYjdiNjM2NjQ4YjAwNzZiYWQ1Y2RmMWUwOTc0MGVjNmE0NTFiZmY1MzRlZmEyMTUwOWYzYmE3N2I4MTAxYjkxZWE3ZTU1ZGRiZmUxNDAxNTE3MDY3ZDdiMDFhMmEwODc5ZjA4ODVjODk0YTg3Y2ZiNjhjNGQ3ZWU4OTA2MDQ4ODFhZWI5N2MyMmQxZjMzN2VmOTIzZTAzNWE2NDAwIgogCiBQS0NTNyBQYXJzZSBGYWlsdXJlIEludmFsaWQgQVNOMTogQ2hhbmdlIGxlbmd0aCBmcm9tIDEyIHRvIDEzICM0MDYuMAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHBrY3M3X2FzbjFfZmFpbDoiMzA4MjAzMjYwNjA5MmE4NjQ4ODZmNzBkMDEwNzAyYTA4MjAzMTczMDgyMDMxMzAyMDEwMTMxMGYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBiMDYwOTJhODY0ODg2ZjcwZDAxMDcwMTMxODIwMmVlMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBkNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDViZWNkODcxOTVjMWRlZmY5MGMyNGM5MTI2OWI1NWIzZjA2OWJjMjI1YzMyNmMzMTRjMWE1MTc4NmZmZTE0YzgzMGJlNGU0YmM3M2NiYTM2Yzk3Njc3YjQ0MTY4Mjc5YmU5MWU3Y2RmN2MxOTM4NmFlMjE4NjI3MTlkMTNhM2EwZmZmMDgwM2Q0NjA5NjJmMmNkYTgzNzE0ODQ4NzMyNTJjM2Q3MDU0ZGI4MTQzZTJiMDgxYTM4MTZlZDA4MDRjYTUwOTlhZTVmZWNlODNkNWMyYzM3ODNiMTk4OGI0YjQ2ZGM5NGU1NTU4N2ExMDdlYTE1NDZiZjIyZDI4YTA5N2Y2NTJhNDA2NmRjMjk2NTI2OTA2OWFmMmY1MTc2YmI4Y2U5Y2E2ZDExZjk2NzU3ZjAzMjA0Zjc1NjcwMzU4N2QwMGFkNDI0Nzk2YzkyZmM3YWViNmY0OTQ0MzE5OTllZGEzMDk5MGU0ZjU3NzM2MzJlZDI1OGZlMDI3NjY3MzU5OWRhNmZjZTM1Y2RhZDc3MjZhMGJiMDI0Y2FkOTk2Yjg4ZTBjYjk4ODU0Y2ViNWMwYjZlYzc0OGQ5ZjljZTZhNmNkNDM3ODU4YmFjYjgxNDYxOGEyNzJmZjNhNDE1YzZlMDdmM2RiMDk4ODc3N2ZkZWM4NDVhOTdiZjdkMTAyZGQwMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMyMDIxNDU2NGQ1NTQwMjVhZjU5OWUzMjcwNzliMjcyMGVmMDBkZjM3Y2ZiN2MzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDA0NjA5OGRjNWYyYjk5ZTNiYzJlZDY2NDJkN2YwYTYxZWZhYmMxNWMzOGM3NjMzM2JjY2NlZWVlMzY5YTRmNGE1YmRkYThlYTU5MjY0MTI0ZTQyOWYwODYzMjY4M2RkYmExN2JiZjI2MmQ4MmI2YmVmYTNiNGUxNDgwMzc2YThjN2YzYzdkN2UyYTY3NzliYmYxODI2MmFhODU3ZGU4YzIwYTEyYjZhMmNlOGU0ZDdmMzFkZDFiMTk1MzkyY2Y2MTg1YWZjZTM0YWZlMDU4OTYwNTdiMzZlOWIxNzFiNmM2N2VkN2MyMjg2Y2JmYTgzZmY4YTE2N2M3YmM3MTA5YWVlN2Q3ZTE5MDliZDM4NGZiZmM2MTkzOGVmY2E1MWM4OTkzYzcxZGIzMTc3MzBmMTZlN2U3NzY4NjdhZTRmZGM1NjJkNmYxNWRlNTg1ZTdiOTRlZjQ5NmEzNjc2MzY3YTJjYmFhYjdiNjM2NjQ4YjAwNzZiYWQ1Y2RmMWUwOTc0MGVjNmE0NTFiZmY1MzRlZmEyMTUwOWYzYmE3N2I4MTAxYjkxZWE3ZTU1ZGRiZmUxNDAxNTE3MDY3ZDdiMDFhMmEwODc5ZjA4ODVjODk0YTg3Y2ZiNjhjNGQ3ZWU4OTA2MDQ4ODFhZWI5N2MyMmQxZjMzN2VmOTIzZTAzNWE2NDAwIgogCiBQS0NTNyBQYXJzZSBGYWlsdXJlIEludmFsaWQgQVNOMTogQ2hhbmdlIGxlbmd0aCBmcm9tIDEyIHRvIDExICM0MDcuMAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHBrY3M3X2FzbjFfZmFpbDoiMzA4MjAzMjYwNjA5MmE4NjQ4ODZmNzBkMDEwNzAyYTA4MjAzMTczMDgyMDMxMzAyMDEwMTMxMGYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBiMDYwOTJhODY0ODg2ZjcwZDAxMDcwMTMxODIwMmVlMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBiNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDViZWNkODcxOTVjMWRlZmY5MGMyNGM5MTI2OWI1NWIzZjA2OWJjMjI1YzMyNmMzMTRjMWE1MTc4NmZmZTE0YzgzMGJlNGU0YmM3M2NiYTM2Yzk3Njc3YjQ0MTY4Mjc5YmU5MWU3Y2RmN2MxOTM4NmFlMjE4NjI3MTlkMTNhM2EwZmZmMDgwM2Q0NjA5NjJmMmNkYTgzNzE0ODQ4NzMyNTJjM2Q3MDU0ZGI4MTQzZTJiMDgxYTM4MTZlZDA4MDRjYTUwOTlhZTVmZWNlODNkNWMyYzM3ODNiMTk4OGI0YjQ2ZGM5NGU1NTU4N2ExMDdlYTE1NDZiZjIyZDI4YTA5N2Y2NTJhNDA2NmRjMjk2NTI2OTA2OWFmMmY1MTc2YmI4Y2U5Y2E2ZDExZjk2NzU3ZjAzMjA0Zjc1NjcwMzU4N2QwMGFkNDI0Nzk2YzkyZmM3YWViNmY0OTQ0MzE5OTllZGEzMDk5MGU0ZjU3NzM2MzJlZDI1OGZlMDI3NjY3MzU5OWRhNmZjZTM1Y2RhZDc3MjZhMGJiMDI0Y2FkOTk2Yjg4ZTBjYjk4ODU0Y2ViNWMwYjZlYzc0OGQ5ZjljZTZhNmNkNDM3ODU4YmFjYjgxNDYxOGEyNzJmZjNhNDE1YzZlMDdmM2RiMDk4ODc3N2ZkZWM4NDVhOTdiZjdkMTAyZGQwMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMyMDIxNDU2NGQ1NTQwMjVhZjU5OWUzMjcwNzliMjcyMGVmMDBkZjM3Y2ZiN2MzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDA0NjA5OGRjNWYyYjk5ZTNiYzJlZDY2NDJkN2YwYTYxZWZhYmMxNWMzOGM3NjMzM2JjY2NlZWVlMzY5YTRmNGE1YmRkYThlYTU5MjY0MTI0ZTQyOWYwODYzMjY4M2RkYmExN2JiZjI2MmQ4MmI2YmVmYTNiNGUxNDgwMzc2YThjN2YzYzdkN2UyYTY3NzliYmYxODI2MmFhODU3ZGU4YzIwYTEyYjZhMmNlOGU0ZDdmMzFkZDFiMTk1MzkyY2Y2MTg1YWZjZTM0YWZlMDU4OTYwNTdiMzZlOWIxNzFiNmM2N2VkN2MyMjg2Y2JmYTgzZmY4YTE2N2M3YmM3MTA5YWVlN2Q3ZTE5MDliZDM4NGZiZmM2MTkzOGVmY2E1MWM4OTkzYzcxZGIzMTc3MzBmMTZlN2U3NzY4NjdhZTRmZGM1NjJkNmYxNWRlNTg1ZTdiOTRlZjQ5NmEzNjc2MzY3YTJjYmFhYjdiNjM2NjQ4YjAwNzZiYWQ1Y2RmMWUwOTc0MGVjNmE0NTFiZmY1MzRlZmEyMTUwOWYzYmE3N2I4MTAxYjkxZWE3ZTU1ZGRiZmUxNDAxNTE3MDY3ZDdiMDFhMmEwODc5ZjA4ODVjODk0YTg3Y2ZiNjhjNGQ3ZWU4OTA2MDQ4ODFhZWI5N2MyMmQxZjMzN2VmOTIzZTAzNWE2NDAwIgogCiBQS0NTNyBQYXJzZSBGYWlsdXJlIEludmFsaWQgQVNOMTogQ2hhbmdlIHRhZyAwMiB0byAwNCAjNDA4LjAKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBwa2NzN19hc24xX2ZhaWw6IjMwODIwMzI2MDYwOTJhODY0ODg2ZjcwZDAxMDcwMmEwODIwMzE3MzA4MjAzMTMwMjAxMDEzMTBmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwYjA2MDkyYTg2NDg4NmY3MGQwMTA3MDEzMTgyMDJlZTMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTA0MTQ3YmRlZGRkMjQ0NGNkMWNkZmU1YzQxYTgxMDJjODliN2RmMmU2Y2JmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDA1YmVjZDg3MTk1YzFkZWZmOTBjMjRjOTEyNjliNTViM2YwNjliYzIyNWMzMjZjMzE0YzFhNTE3ODZmZmUxNGM4MzBiZTRlNGJjNzNjYmEzNmM5NzY3N2I0NDE2ODI3OWJlOTFlN2NkZjdjMTkzODZhZTIxODYyNzE5ZDEzYTNhMGZmZjA4MDNkNDYwOTYyZjJjZGE4MzcxNDg0ODczMjUyYzNkNzA1NGRiODE0M2UyYjA4MWEzODE2ZWQwODA0Y2E1MDk5YWU1ZmVjZTgzZDVjMmMzNzgzYjE5ODhiNGI0NmRjOTRlNTU1ODdhMTA3ZWExNTQ2YmYyMmQyOGEwOTdmNjUyYTQwNjZkYzI5NjUyNjkwNjlhZjJmNTE3NmJiOGNlOWNhNmQxMWY5Njc1N2YwMzIwNGY3NTY3MDM1ODdkMDBhZDQyNDc5NmM5MmZjN2FlYjZmNDk0NDMxOTk5ZWRhMzA5OTBlNGY1NzczNjMyZWQyNThmZTAyNzY2NzM1OTlkYTZmY2UzNWNkYWQ3NzI2YTBiYjAyNGNhZDk5NmI4OGUwY2I5ODg1NGNlYjVjMGI2ZWM3NDhkOWY5Y2U2YTZjZDQzNzg1OGJhY2I4MTQ2MThhMjcyZmYzYTQxNWM2ZTA3ZjNkYjA5ODg3NzdmZGVjODQ1YTk3YmY3ZDEwMmRkMDMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMjAyMTQ1NjRkNTU0MDI1YWY1OTllMzI3MDc5YjI3MjBlZjAwZGYzN2NmYjdjMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDAwNDYwOThkYzVmMmI5OWUzYmMyZWQ2NjQyZDdmMGE2MWVmYWJjMTVjMzhjNzYzMzNiY2NjZWVlZTM2OWE0ZjRhNWJkZGE4ZWE1OTI2NDEyNGU0MjlmMDg2MzI2ODNkZGJhMTdiYmYyNjJkODJiNmJlZmEzYjRlMTQ4MDM3NmE4YzdmM2M3ZDdlMmE2Nzc5YmJmMTgyNjJhYTg1N2RlOGMyMGExMmI2YTJjZThlNGQ3ZjMxZGQxYjE5NTM5MmNmNjE4NWFmY2UzNGFmZTA1ODk2MDU3YjM2ZTliMTcxYjZjNjdlZDdjMjI4NmNiZmE4M2ZmOGExNjdjN2JjNzEwOWFlZTdkN2UxOTA5YmQzODRmYmZjNjE5MzhlZmNhNTFjODk5M2M3MWRiMzE3NzMwZjE2ZTdlNzc2ODY3YWU0ZmRjNTYyZDZmMTVkZTU4NWU3Yjk0ZWY0OTZhMzY3NjM2N2EyY2JhYWI3YjYzNjY0OGIwMDc2YmFkNWNkZjFlMDk3NDBlYzZhNDUxYmZmNTM0ZWZhMjE1MDlmM2JhNzdiODEwMWI5MWVhN2U1NWRkYmZlMTQwMTUxNzA2N2Q3YjAxYTJhMDg3OWYwODg1Yzg5NGE4N2NmYjY4YzRkN2VlODkwNjA0ODgxYWViOTdjMjJkMWYzMzdlZjkyM2UwMzVhNjQwMCIKIAogUEtDUzcgUGFyc2UgRmFpbHVyZSBJbnZhbGlkIEFTTjE6IENoYW5nZSBsZW5ndGggZnJvbSAyMCB0byAyMSAjNDA5LjAKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBwa2NzN19hc24xX2ZhaWw6IjMwODIwMzI2MDYwOTJhODY0ODg2ZjcwZDAxMDcwMmEwODIwMzE3MzA4MjAzMTMwMjAxMDEzMTBmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwYjA2MDkyYTg2NDg4NmY3MGQwMTA3MDEzMTgyMDJlZTMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTAyMTU3YmRlZGRkMjQ0NGNkMWNkZmU1YzQxYTgxMDJjODliN2RmMmU2Y2JmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDA1YmVjZDg3MTk1YzFkZWZmOTBjMjRjOTEyNjliNTViM2YwNjliYzIyNWMzMjZjMzE0YzFhNTE3ODZmZmUxNGM4MzBiZTRlNGJjNzNjYmEzNmM5NzY3N2I0NDE2ODI3OWJlOTFlN2NkZjdjMTkzODZhZTIxODYyNzE5ZDEzYTNhMGZmZjA4MDNkNDYwOTYyZjJjZGE4MzcxNDg0ODczMjUyYzNkNzA1NGRiODE0M2UyYjA4MWEzODE2ZWQwODA0Y2E1MDk5YWU1ZmVjZTgzZDVjMmMzNzgzYjE5ODhiNGI0NmRjOTRlNTU1ODdhMTA3ZWExNTQ2YmYyMmQyOGEwOTdmNjUyYTQwNjZkYzI5NjUyNjkwNjlhZjJmNTE3NmJiOGNlOWNhNmQxMWY5Njc1N2YwMzIwNGY3NTY3MDM1ODdkMDBhZDQyNDc5NmM5MmZjN2FlYjZmNDk0NDMxOTk5ZWRhMzA5OTBlNGY1NzczNjMyZWQyNThmZTAyNzY2NzM1OTlkYTZmY2UzNWNkYWQ3NzI2YTBiYjAyNGNhZDk5NmI4OGUwY2I5ODg1NGNlYjVjMGI2ZWM3NDhkOWY5Y2U2YTZjZDQzNzg1OGJhY2I4MTQ2MThhMjcyZmYzYTQxNWM2ZTA3ZjNkYjA5ODg3NzdmZGVjODQ1YTk3YmY3ZDEwMmRkMDMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMjAyMTQ1NjRkNTU0MDI1YWY1OTllMzI3MDc5YjI3MjBlZjAwZGYzN2NmYjdjMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDAwNDYwOThkYzVmMmI5OWUzYmMyZWQ2NjQyZDdmMGE2MWVmYWJjMTVjMzhjNzYzMzNiY2NjZWVlZTM2OWE0ZjRhNWJkZGE4ZWE1OTI2NDEyNGU0MjlmMDg2MzI2ODNkZGJhMTdiYmYyNjJkODJiNmJlZmEzYjRlMTQ4MDM3NmE4YzdmM2M3ZDdlMmE2Nzc5YmJmMTgyNjJhYTg1N2RlOGMyMGExMmI2YTJjZThlNGQ3ZjMxZGQxYjE5NTM5MmNmNjE4NWFmY2UzNGFmZTA1ODk2MDU3YjM2ZTliMTcxYjZjNjdlZDdjMjI4NmNiZmE4M2ZmOGExNjdjN2JjNzEwOWFlZTdkN2UxOTA5YmQzODRmYmZjNjE5MzhlZmNhNTFjODk5M2M3MWRiMzE3NzMwZjE2ZTdlNzc2ODY3YWU0ZmRjNTYyZDZmMTVkZTU4NWU3Yjk0ZWY0OTZhMzY3NjM2N2EyY2JhYWI3YjYzNjY0OGIwMDc2YmFkNWNkZjFlMDk3NDBlYzZhNDUxYmZmNTM0ZWZhMjE1MDlmM2JhNzdiODEwMWI5MWVhN2U1NWRkYmZlMTQwMTUxNzA2N2Q3YjAxYTJhMDg3OWYwODg1Yzg5NGE4N2NmYjY4YzRkN2VlODkwNjA0ODgxYWViOTdjMjJkMWYzMzdlZjkyM2UwMzVhNjQwMCIKIAogUEtDUzcgUGFyc2UgRmFpbHVyZSBJbnZhbGlkIEFTTjE6IENoYW5nZSBsZW5ndGggZnJvbSAyMCB0byAxOSAjNDEwLjAKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBwa2NzN19hc24xX2ZhaWw6IjMwODIwMzI2MDYwOTJhODY0ODg2ZjcwZDAxMDcwMmEwODIwMzE3MzA4MjAzMTMwMjAxMDEzMTBmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwYjA2MDkyYTg2NDg4NmY3MGQwMTA3MDEzMTgyMDJlZTMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTAyMTM3YmRlZGRkMjQ0NGNkMWNkZmU1YzQxYTgxMDJjODliN2RmMmU2Y2JmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDA1YmVjZDg3MTk1YzFkZWZmOTBjMjRjOTEyNjliNTViM2YwNjliYzIyNWMzMjZjMzE0YzFhNTE3ODZmZmUxNGM4MzBiZTRlNGJjNzNjYmEzNmM5NzY3N2I0NDE2ODI3OWJlOTFlN2NkZjdjMTkzODZhZTIxODYyNzE5ZDEzYTNhMGZmZjA4MDNkNDYwOTYyZjJjZGE4MzcxNDg0ODczMjUyYzNkNzA1NGRiODE0M2UyYjA4MWEzODE2ZWQwODA0Y2E1MDk5YWU1ZmVjZTgzZDVjMmMzNzgzYjE5ODhiNGI0NmRjOTRlNTU1ODdhMTA3ZWExNTQ2YmYyMmQyOGEwOTdmNjUyYTQwNjZkYzI5NjUyNjkwNjlhZjJmNTE3NmJiOGNlOWNhNmQxMWY5Njc1N2YwMzIwNGY3NTY3MDM1ODdkMDBhZDQyNDc5NmM5MmZjN2FlYjZmNDk0NDMxOTk5ZWRhMzA5OTBlNGY1NzczNjMyZWQyNThmZTAyNzY2NzM1OTlkYTZmY2UzNWNkYWQ3NzI2YTBiYjAyNGNhZDk5NmI4OGUwY2I5ODg1NGNlYjVjMGI2ZWM3NDhkOWY5Y2U2YTZjZDQzNzg1OGJhY2I4MTQ2MThhMjcyZmYzYTQxNWM2ZTA3ZjNkYjA5ODg3NzdmZGVjODQ1YTk3YmY3ZDEwMmRkMDMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMjAyMTQ1NjRkNTU0MDI1YWY1OTllMzI3MDc5YjI3MjBlZjAwZGYzN2NmYjdjMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDAwNDYwOThkYzVmMmI5OWUzYmMyZWQ2NjQyZDdmMGE2MWVmYWJjMTVjMzhjNzYzMzNiY2NjZWVlZTM2OWE0ZjRhNWJkZGE4ZWE1OTI2NDEyNGU0MjlmMDg2MzI2ODNkZGJhMTdiYmYyNjJkODJiNmJlZmEzYjRlMTQ4MDM3NmE4YzdmM2M3ZDdlMmE2Nzc5YmJmMTgyNjJhYTg1N2RlOGMyMGExMmI2YTJjZThlNGQ3ZjMxZGQxYjE5NTM5MmNmNjE4NWFmY2UzNGFmZTA1ODk2MDU3YjM2ZTliMTcxYjZjNjdlZDdjMjI4NmNiZmE4M2ZmOGExNjdjN2JjNzEwOWFlZTdkN2UxOTA5YmQzODRmYmZjNjE5MzhlZmNhNTFjODk5M2M3MWRiMzE3NzMwZjE2ZTdlNzc2ODY3YWU0ZmRjNTYyZDZmMTVkZTU4NWU3Yjk0ZWY0OTZhMzY3NjM2N2EyY2JhYWI3YjYzNjY0OGIwMDc2YmFkNWNkZjFlMDk3NDBlYzZhNDUxYmZmNTM0ZWZhMjE1MDlmM2JhNzdiODEwMWI5MWVhN2U1NWRkYmZlMTQwMTUxNzA2N2Q3YjAxYTJhMDg3OWYwODg1Yzg5NGE4N2NmYjY4YzRkN2VlODkwNjA0ODgxYWViOTdjMjJkMWYzMzdlZjkyM2UwMzVhNjQwMCIKIAogUEtDUzcgUGFyc2UgRmFpbHVyZSBJbnZhbGlkIEFTTjE6IENoYW5nZSB0YWcgMzAgdG8gMDIgIzQxMS4wCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NgogcGtjczdfYXNuMV9mYWlsOiIzMDgyMDMyNjA2MDkyYTg2NDg4NmY3MGQwMTA3MDJhMDgyMDMxNzMwODIwMzEzMDIwMTAxMzEwZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGIwNjA5MmE4NjQ4ODZmNzBkMDEwNzAxMzE4MjAyZWUzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjAyMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwNWJlY2Q4NzE5NWMxZGVmZjkwYzI0YzkxMjY5YjU1YjNmMDY5YmMyMjVjMzI2YzMxNGMxYTUxNzg2ZmZlMTRjODMwYmU0ZTRiYzczY2JhMzZjOTc2NzdiNDQxNjgyNzliZTkxZTdjZGY3YzE5Mzg2YWUyMTg2MjcxOWQxM2EzYTBmZmYwODAzZDQ2MDk2MmYyY2RhODM3MTQ4NDg3MzI1MmMzZDcwNTRkYjgxNDNlMmIwODFhMzgxNmVkMDgwNGNhNTA5OWFlNWZlY2U4M2Q1YzJjMzc4M2IxOTg4YjRiNDZkYzk0ZTU1NTg3YTEwN2VhMTU0NmJmMjJkMjhhMDk3ZjY1MmE0MDY2ZGMyOTY1MjY5MDY5YWYyZjUxNzZiYjhjZTljYTZkMTFmOTY3NTdmMDMyMDRmNzU2NzAzNTg3ZDAwYWQ0MjQ3OTZjOTJmYzdhZWI2ZjQ5NDQzMTk5OWVkYTMwOTkwZTRmNTc3MzYzMmVkMjU4ZmUwMjc2NjczNTk5ZGE2ZmNlMzVjZGFkNzcyNmEwYmIwMjRjYWQ5OTZiODhlMGNiOTg4NTRjZWI1YzBiNmVjNzQ4ZDlmOWNlNmE2Y2Q0Mzc4NThiYWNiODE0NjE4YTI3MmZmM2E0MTVjNmUwN2YzZGIwOTg4Nzc3ZmRlYzg0NWE5N2JmN2QxMDJkZDAzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzIwMjE0NTY0ZDU1NDAyNWFmNTk5ZTMyNzA3OWIyNzIwZWYwMGRmMzdjZmI3YzMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwMDQ2MDk4ZGM1ZjJiOTllM2JjMmVkNjY0MmQ3ZjBhNjFlZmFiYzE1YzM4Yzc2MzMzYmNjY2VlZWUzNjlhNGY0YTViZGRhOGVhNTkyNjQxMjRlNDI5ZjA4NjMyNjgzZGRiYTE3YmJmMjYyZDgyYjZiZWZhM2I0ZTE0ODAzNzZhOGM3ZjNjN2Q3ZTJhNjc3OWJiZjE4MjYyYWE4NTdkZThjMjBhMTJiNmEyY2U4ZTRkN2YzMWRkMWIxOTUzOTJjZjYxODVhZmNlMzRhZmUwNTg5NjA1N2IzNmU5YjE3MWI2YzY3ZWQ3YzIyODZjYmZhODNmZjhhMTY3YzdiYzcxMDlhZWU3ZDdlMTkwOWJkMzg0ZmJmYzYxOTM4ZWZjYTUxYzg5OTNjNzFkYjMxNzczMGYxNmU3ZTc3Njg2N2FlNGZkYzU2MmQ2ZjE1ZGU1ODVlN2I5NGVmNDk2YTM2NzYzNjdhMmNiYWFiN2I2MzY2NDhiMDA3NmJhZDVjZGYxZTA5NzQwZWM2YTQ1MWJmZjUzNGVmYTIxNTA5ZjNiYTc3YjgxMDFiOTFlYTdlNTVkZGJmZTE0MDE1MTcwNjdkN2IwMWEyYTA4NzlmMDg4NWM4OTRhODdjZmI2OGM0ZDdlZTg5MDYwNDg4MWFlYjk3YzIyZDFmMzM3ZWY5MjNlMDM1YTY0MDAiCiAKIFBLQ1M3IFBhcnNlIEZhaWx1cmUgSW52YWxpZCBBU04xOiBDaGFuZ2UgbGVuZ3RoIGZyb20gMTMgdG8gMTQgIzQxMi4wCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NgogcGtjczdfYXNuMV9mYWlsOiIzMDgyMDMyNjA2MDkyYTg2NDg4NmY3MGQwMTA3MDJhMDgyMDMxNzMwODIwMzEzMDIwMTAxMzEwZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGIwNjA5MmE4NjQ4ODZmNzBkMDEwNzAxMzE4MjAyZWUzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGUwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwNWJlY2Q4NzE5NWMxZGVmZjkwYzI0YzkxMjY5YjU1YjNmMDY5YmMyMjVjMzI2YzMxNGMxYTUxNzg2ZmZlMTRjODMwYmU0ZTRiYzczY2JhMzZjOTc2NzdiNDQxNjgyNzliZTkxZTdjZGY3YzE5Mzg2YWUyMTg2MjcxOWQxM2EzYTBmZmYwODAzZDQ2MDk2MmYyY2RhODM3MTQ4NDg3MzI1MmMzZDcwNTRkYjgxNDNlMmIwODFhMzgxNmVkMDgwNGNhNTA5OWFlNWZlY2U4M2Q1YzJjMzc4M2IxOTg4YjRiNDZkYzk0ZTU1NTg3YTEwN2VhMTU0NmJmMjJkMjhhMDk3ZjY1MmE0MDY2ZGMyOTY1MjY5MDY5YWYyZjUxNzZiYjhjZTljYTZkMTFmOTY3NTdmMDMyMDRmNzU2NzAzNTg3ZDAwYWQ0MjQ3OTZjOTJmYzdhZWI2ZjQ5NDQzMTk5OWVkYTMwOTkwZTRmNTc3MzYzMmVkMjU4ZmUwMjc2NjczNTk5ZGE2ZmNlMzVjZGFkNzcyNmEwYmIwMjRjYWQ5OTZiODhlMGNiOTg4NTRjZWI1YzBiNmVjNzQ4ZDlmOWNlNmE2Y2Q0Mzc4NThiYWNiODE0NjE4YTI3MmZmM2E0MTVjNmUwN2YzZGIwOTg4Nzc3ZmRlYzg0NWE5N2JmN2QxMDJkZDAzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzIwMjE0NTY0ZDU1NDAyNWFmNTk5ZTMyNzA3OWIyNzIwZWYwMGRmMzdjZmI3YzMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwMDQ2MDk4ZGM1ZjJiOTllM2JjMmVkNjY0MmQ3ZjBhNjFlZmFiYzE1YzM4Yzc2MzMzYmNjY2VlZWUzNjlhNGY0YTViZGRhOGVhNTkyNjQxMjRlNDI5ZjA4NjMyNjgzZGRiYTE3YmJmMjYyZDgyYjZiZWZhM2I0ZTE0ODAzNzZhOGM3ZjNjN2Q3ZTJhNjc3OWJiZjE4MjYyYWE4NTdkZThjMjBhMTJiNmEyY2U4ZTRkN2YzMWRkMWIxOTUzOTJjZjYxODVhZmNlMzRhZmUwNTg5NjA1N2IzNmU5YjE3MWI2YzY3ZWQ3YzIyODZjYmZhODNmZjhhMTY3YzdiYzcxMDlhZWU3ZDdlMTkwOWJkMzg0ZmJmYzYxOTM4ZWZjYTUxYzg5OTNjNzFkYjMxNzczMGYxNmU3ZTc3Njg2N2FlNGZkYzU2MmQ2ZjE1ZGU1ODVlN2I5NGVmNDk2YTM2NzYzNjdhMmNiYWFiN2I2MzY2NDhiMDA3NmJhZDVjZGYxZTA5NzQwZWM2YTQ1MWJmZjUzNGVmYTIxNTA5ZjNiYTc3YjgxMDFiOTFlYTdlNTVkZGJmZTE0MDE1MTcwNjdkN2IwMWEyYTA4NzlmMDg4NWM4OTRhODdjZmI2OGM0ZDdlZTg5MDYwNDg4MWFlYjk3YzIyZDFmMzM3ZWY5MjNlMDM1YTY0MDAiCiAKIFBLQ1M3IFBhcnNlIEZhaWx1cmUgSW52YWxpZCBBU04xOiBDaGFuZ2UgY29udGVudHMgb2YgdGFnIDMwIHRvIGNvbnRhaW4gb25lIHVuYWNjb3VudGVkIGV4dHJhIGJ5dGUgIzQxMy4wCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NgogcGtjczdfYXNuMV9mYWlsOiIzMDgyMDMyNjA2MDkyYTg2NDg4NmY3MGQwMTA3MDJhMDgyMDMxNzMwODIwMzEzMDIwMTAxMzEwZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGIwNjA5MmE4NjQ4ODZmNzBkMDEwNzAxMzE4MjAyZWUzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGUwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDA1YmVjZDg3MTk1YzFkZWZmOTBjMjRjOTEyNjliNTViM2YwNjliYzIyNWMzMjZjMzE0YzFhNTE3ODZmZmUxNGM4MzBiZTRlNGJjNzNjYmEzNmM5NzY3N2I0NDE2ODI3OWJlOTFlN2NkZjdjMTkzODZhZTIxODYyNzE5ZDEzYTNhMGZmZjA4MDNkNDYwOTYyZjJjZGE4MzcxNDg0ODczMjUyYzNkNzA1NGRiODE0M2UyYjA4MWEzODE2ZWQwODA0Y2E1MDk5YWU1ZmVjZTgzZDVjMmMzNzgzYjE5ODhiNGI0NmRjOTRlNTU1ODdhMTA3ZWExNTQ2YmYyMmQyOGEwOTdmNjUyYTQwNjZkYzI5NjUyNjkwNjlhZjJmNTE3NmJiOGNlOWNhNmQxMWY5Njc1N2YwMzIwNGY3NTY3MDM1ODdkMDBhZDQyNDc5NmM5MmZjN2FlYjZmNDk0NDMxOTk5ZWRhMzA5OTBlNGY1NzczNjMyZWQyNThmZTAyNzY2NzM1OTlkYTZmY2UzNWNkYWQ3NzI2YTBiYjAyNGNhZDk5NmI4OGUwY2I5ODg1NGNlYjVjMGI2ZWM3NDhkOWY5Y2U2YTZjZDQzNzg1OGJhY2I4MTQ2MThhMjcyZmYzYTQxNWM2ZTA3ZjNkYjA5ODg3NzdmZGVjODQ1YTk3YmY3ZDEwMmRkMDMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMjAyMTQ1NjRkNTU0MDI1YWY1OTllMzI3MDc5YjI3MjBlZjAwZGYzN2NmYjdjMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDAwNDYwOThkYzVmMmI5OWUzYmMyZWQ2NjQyZDdmMGE2MWVmYWJjMTVjMzhjNzYzMzNiY2NjZWVlZTM2OWE0ZjRhNWJkZGE4ZWE1OTI2NDEyNGU0MjlmMDg2MzI2ODNkZGJhMTdiYmYyNjJkODJiNmJlZmEzYjRlMTQ4MDM3NmE4YzdmM2M3ZDdlMmE2Nzc5YmJmMTgyNjJhYTg1N2RlOGMyMGExMmI2YTJjZThlNGQ3ZjMxZGQxYjE5NTM5MmNmNjE4NWFmY2UzNGFmZTA1ODk2MDU3YjM2ZTliMTcxYjZjNjdlZDdjMjI4NmNiZmE4M2ZmOGExNjdjN2JjNzEwOWFlZTdkN2UxOTA5YmQzODRmYmZjNjE5MzhlZmNhNTFjODk5M2M3MWRiMzE3NzMwZjE2ZTdlNzc2ODY3YWU0ZmRjNTYyZDZmMTVkZTU4NWU3Yjk0ZWY0OTZhMzY3NjM2N2EyY2JhYWI3YjYzNjY0OGIwMDc2YmFkNWNkZjFlMDk3NDBlYzZhNDUxYmZmNTM0ZWZhMjE1MDlmM2JhNzdiODEwMWI5MWVhN2U1NWRkYmZlMTQwMTUxNzA2N2Q3YjAxYTJhMDg3OWYwODg1Yzg5NGE4N2NmYjY4YzRkN2VlODkwNjA0ODgxYWViOTdjMjJkMWYzMzdlZjkyM2UwMzVhNjQwMCIKIAogUEtDUzcgUGFyc2UgRmFpbHVyZSBJbnZhbGlkIEFTTjE6IENoYW5nZSBsZW5ndGggZnJvbSAxMyB0byAxMiAjNDE0LjAKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBwa2NzN19hc24xX2ZhaWw6IjMwODIwMzI2MDYwOTJhODY0ODg2ZjcwZDAxMDcwMmEwODIwMzE3MzA4MjAzMTMwMjAxMDEzMTBmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwYjA2MDkyYTg2NDg4NmY3MGQwMTA3MDEzMTgyMDJlZTMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTAyMTQ3YmRlZGRkMjQ0NGNkMWNkZmU1YzQxYTgxMDJjODliN2RmMmU2Y2JmMzAwYzA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDA1YmVjZDg3MTk1YzFkZWZmOTBjMjRjOTEyNjliNTViM2YwNjliYzIyNWMzMjZjMzE0YzFhNTE3ODZmZmUxNGM4MzBiZTRlNGJjNzNjYmEzNmM5NzY3N2I0NDE2ODI3OWJlOTFlN2NkZjdjMTkzODZhZTIxODYyNzE5ZDEzYTNhMGZmZjA4MDNkNDYwOTYyZjJjZGE4MzcxNDg0ODczMjUyYzNkNzA1NGRiODE0M2UyYjA4MWEzODE2ZWQwODA0Y2E1MDk5YWU1ZmVjZTgzZDVjMmMzNzgzYjE5ODhiNGI0NmRjOTRlNTU1ODdhMTA3ZWExNTQ2YmYyMmQyOGEwOTdmNjUyYTQwNjZkYzI5NjUyNjkwNjlhZjJmNTE3NmJiOGNlOWNhNmQxMWY5Njc1N2YwMzIwNGY3NTY3MDM1ODdkMDBhZDQyNDc5NmM5MmZjN2FlYjZmNDk0NDMxOTk5ZWRhMzA5OTBlNGY1NzczNjMyZWQyNThmZTAyNzY2NzM1OTlkYTZmY2UzNWNkYWQ3NzI2YTBiYjAyNGNhZDk5NmI4OGUwY2I5ODg1NGNlYjVjMGI2ZWM3NDhkOWY5Y2U2YTZjZDQzNzg1OGJhY2I4MTQ2MThhMjcyZmYzYTQxNWM2ZTA3ZjNkYjA5ODg3NzdmZGVjODQ1YTk3YmY3ZDEwMmRkMDMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMjAyMTQ1NjRkNTU0MDI1YWY1OTllMzI3MDc5YjI3MjBlZjAwZGYzN2NmYjdjMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDAwNDYwOThkYzVmMmI5OWUzYmMyZWQ2NjQyZDdmMGE2MWVmYWJjMTVjMzhjNzYzMzNiY2NjZWVlZTM2OWE0ZjRhNWJkZGE4ZWE1OTI2NDEyNGU0MjlmMDg2MzI2ODNkZGJhMTdiYmYyNjJkODJiNmJlZmEzYjRlMTQ4MDM3NmE4YzdmM2M3ZDdlMmE2Nzc5YmJmMTgyNjJhYTg1N2RlOGMyMGExMmI2YTJjZThlNGQ3ZjMxZGQxYjE5NTM5MmNmNjE4NWFmY2UzNGFmZTA1ODk2MDU3YjM2ZTliMTcxYjZjNjdlZDdjMjI4NmNiZmE4M2ZmOGExNjdjN2JjNzEwOWFlZTdkN2UxOTA5YmQzODRmYmZjNjE5MzhlZmNhNTFjODk5M2M3MWRiMzE3NzMwZjE2ZTdlNzc2ODY3YWU0ZmRjNTYyZDZmMTVkZTU4NWU3Yjk0ZWY0OTZhMzY3NjM2N2EyY2JhYWI3YjYzNjY0OGIwMDc2YmFkNWNkZjFlMDk3NDBlYzZhNDUxYmZmNTM0ZWZhMjE1MDlmM2JhNzdiODEwMWI5MWVhN2U1NWRkYmZlMTQwMTUxNzA2N2Q3YjAxYTJhMDg3OWYwODg1Yzg5NGE4N2NmYjY4YzRkN2VlODkwNjA0ODgxYWViOTdjMjJkMWYzMzdlZjkyM2UwMzVhNjQwMCIKIAogUEtDUzcgUGFyc2UgRmFpbHVyZSBJbnZhbGlkIEFTTjE6IENoYW5nZSB0YWcgMDYgdG8gMDIgIzQxNS4wCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NgogcGtjczdfYXNuMV9mYWlsOiIzMDgyMDMyNjA2MDkyYTg2NDg4NmY3MGQwMTA3MDJhMDgyMDMxNzMwODIwMzEzMDIwMTAxMzEwZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGIwNjA5MmE4NjQ4ODZmNzBkMDEwNzAxMzE4MjAyZWUzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwMjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwNWJlY2Q4NzE5NWMxZGVmZjkwYzI0YzkxMjY5YjU1YjNmMDY5YmMyMjVjMzI2YzMxNGMxYTUxNzg2ZmZlMTRjODMwYmU0ZTRiYzczY2JhMzZjOTc2NzdiNDQxNjgyNzliZTkxZTdjZGY3YzE5Mzg2YWUyMTg2MjcxOWQxM2EzYTBmZmYwODAzZDQ2MDk2MmYyY2RhODM3MTQ4NDg3MzI1MmMzZDcwNTRkYjgxNDNlMmIwODFhMzgxNmVkMDgwNGNhNTA5OWFlNWZlY2U4M2Q1YzJjMzc4M2IxOTg4YjRiNDZkYzk0ZTU1NTg3YTEwN2VhMTU0NmJmMjJkMjhhMDk3ZjY1MmE0MDY2ZGMyOTY1MjY5MDY5YWYyZjUxNzZiYjhjZTljYTZkMTFmOTY3NTdmMDMyMDRmNzU2NzAzNTg3ZDAwYWQ0MjQ3OTZjOTJmYzdhZWI2ZjQ5NDQzMTk5OWVkYTMwOTkwZTRmNTc3MzYzMmVkMjU4ZmUwMjc2NjczNTk5ZGE2ZmNlMzVjZGFkNzcyNmEwYmIwMjRjYWQ5OTZiODhlMGNiOTg4NTRjZWI1YzBiNmVjNzQ4ZDlmOWNlNmE2Y2Q0Mzc4NThiYWNiODE0NjE4YTI3MmZmM2E0MTVjNmUwN2YzZGIwOTg4Nzc3ZmRlYzg0NWE5N2JmN2QxMDJkZDAzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzIwMjE0NTY0ZDU1NDAyNWFmNTk5ZTMyNzA3OWIyNzIwZWYwMGRmMzdjZmI3YzMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwMDQ2MDk4ZGM1ZjJiOTllM2JjMmVkNjY0MmQ3ZjBhNjFlZmFiYzE1YzM4Yzc2MzMzYmNjY2VlZWUzNjlhNGY0YTViZGRhOGVhNTkyNjQxMjRlNDI5ZjA4NjMyNjgzZGRiYTE3YmJmMjYyZDgyYjZiZWZhM2I0ZTE0ODAzNzZhOGM3ZjNjN2Q3ZTJhNjc3OWJiZjE4MjYyYWE4NTdkZThjMjBhMTJiNmEyY2U4ZTRkN2YzMWRkMWIxOTUzOTJjZjYxODVhZmNlMzRhZmUwNTg5NjA1N2IzNmU5YjE3MWI2YzY3ZWQ3YzIyODZjYmZhODNmZjhhMTY3YzdiYzcxMDlhZWU3ZDdlMTkwOWJkMzg0ZmJmYzYxOTM4ZWZjYTUxYzg5OTNjNzFkYjMxNzczMGYxNmU3ZTc3Njg2N2FlNGZkYzU2MmQ2ZjE1ZGU1ODVlN2I5NGVmNDk2YTM2NzYzNjdhMmNiYWFiN2I2MzY2NDhiMDA3NmJhZDVjZGYxZTA5NzQwZWM2YTQ1MWJmZjUzNGVmYTIxNTA5ZjNiYTc3YjgxMDFiOTFlYTdlNTVkZGJmZTE0MDE1MTcwNjdkN2IwMWEyYTA4NzlmMDg4NWM4OTRhODdjZmI2OGM0ZDdlZTg5MDYwNDg4MWFlYjk3YzIyZDFmMzM3ZWY5MjNlMDM1YTY0MDAiCiAKIFBLQ1M3IFBhcnNlIEZhaWx1cmUgSW52YWxpZCBBU04xOiBDaGFuZ2UgbGVuZ3RoIGZyb20gOSB0byAxMCAjNDE2LjAKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBwa2NzN19hc24xX2ZhaWw6IjMwODIwMzI2MDYwOTJhODY0ODg2ZjcwZDAxMDcwMmEwODIwMzE3MzA4MjAzMTMwMjAxMDEzMTBmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwYjA2MDkyYTg2NDg4NmY3MGQwMTA3MDEzMTgyMDJlZTMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTAyMTQ3YmRlZGRkMjQ0NGNkMWNkZmU1YzQxYTgxMDJjODliN2RmMmU2Y2JmMzAwZDA2MGE2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDA1YmVjZDg3MTk1YzFkZWZmOTBjMjRjOTEyNjliNTViM2YwNjliYzIyNWMzMjZjMzE0YzFhNTE3ODZmZmUxNGM4MzBiZTRlNGJjNzNjYmEzNmM5NzY3N2I0NDE2ODI3OWJlOTFlN2NkZjdjMTkzODZhZTIxODYyNzE5ZDEzYTNhMGZmZjA4MDNkNDYwOTYyZjJjZGE4MzcxNDg0ODczMjUyYzNkNzA1NGRiODE0M2UyYjA4MWEzODE2ZWQwODA0Y2E1MDk5YWU1ZmVjZTgzZDVjMmMzNzgzYjE5ODhiNGI0NmRjOTRlNTU1ODdhMTA3ZWExNTQ2YmYyMmQyOGEwOTdmNjUyYTQwNjZkYzI5NjUyNjkwNjlhZjJmNTE3NmJiOGNlOWNhNmQxMWY5Njc1N2YwMzIwNGY3NTY3MDM1ODdkMDBhZDQyNDc5NmM5MmZjN2FlYjZmNDk0NDMxOTk5ZWRhMzA5OTBlNGY1NzczNjMyZWQyNThmZTAyNzY2NzM1OTlkYTZmY2UzNWNkYWQ3NzI2YTBiYjAyNGNhZDk5NmI4OGUwY2I5ODg1NGNlYjVjMGI2ZWM3NDhkOWY5Y2U2YTZjZDQzNzg1OGJhY2I4MTQ2MThhMjcyZmYzYTQxNWM2ZTA3ZjNkYjA5ODg3NzdmZGVjODQ1YTk3YmY3ZDEwMmRkMDMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMjAyMTQ1NjRkNTU0MDI1YWY1OTllMzI3MDc5YjI3MjBlZjAwZGYzN2NmYjdjMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDAwNDYwOThkYzVmMmI5OWUzYmMyZWQ2NjQyZDdmMGE2MWVmYWJjMTVjMzhjNzYzMzNiY2NjZWVlZTM2OWE0ZjRhNWJkZGE4ZWE1OTI2NDEyNGU0MjlmMDg2MzI2ODNkZGJhMTdiYmYyNjJkODJiNmJlZmEzYjRlMTQ4MDM3NmE4YzdmM2M3ZDdlMmE2Nzc5YmJmMTgyNjJhYTg1N2RlOGMyMGExMmI2YTJjZThlNGQ3ZjMxZGQxYjE5NTM5MmNmNjE4NWFmY2UzNGFmZTA1ODk2MDU3YjM2ZTliMTcxYjZjNjdlZDdjMjI4NmNiZmE4M2ZmOGExNjdjN2JjNzEwOWFlZTdkN2UxOTA5YmQzODRmYmZjNjE5MzhlZmNhNTFjODk5M2M3MWRiMzE3NzMwZjE2ZTdlNzc2ODY3YWU0ZmRjNTYyZDZmMTVkZTU4NWU3Yjk0ZWY0OTZhMzY3NjM2N2EyY2JhYWI3YjYzNjY0OGIwMDc2YmFkNWNkZjFlMDk3NDBlYzZhNDUxYmZmNTM0ZWZhMjE1MDlmM2JhNzdiODEwMWI5MWVhN2U1NWRkYmZlMTQwMTUxNzA2N2Q3YjAxYTJhMDg3OWYwODg1Yzg5NGE4N2NmYjY4YzRkN2VlODkwNjA0ODgxYWViOTdjMjJkMWYzMzdlZjkyM2UwMzVhNjQwMCIKIAogUEtDUzcgUGFyc2UgRmFpbHVyZSBJbnZhbGlkIEFTTjE6IENoYW5nZSBsZW5ndGggZnJvbSA5IHRvIDggIzQxNy4wCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NgogcGtjczdfYXNuMV9mYWlsOiIzMDgyMDMyNjA2MDkyYTg2NDg4NmY3MGQwMTA3MDJhMDgyMDMxNzMwODIwMzEzMDIwMTAxMzEwZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGIwNjA5MmE4NjQ4ODZmNzBkMDEwNzAxMzE4MjAyZWUzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA4NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwNWJlY2Q4NzE5NWMxZGVmZjkwYzI0YzkxMjY5YjU1YjNmMDY5YmMyMjVjMzI2YzMxNGMxYTUxNzg2ZmZlMTRjODMwYmU0ZTRiYzczY2JhMzZjOTc2NzdiNDQxNjgyNzliZTkxZTdjZGY3YzE5Mzg2YWUyMTg2MjcxOWQxM2EzYTBmZmYwODAzZDQ2MDk2MmYyY2RhODM3MTQ4NDg3MzI1MmMzZDcwNTRkYjgxNDNlMmIwODFhMzgxNmVkMDgwNGNhNTA5OWFlNWZlY2U4M2Q1YzJjMzc4M2IxOTg4YjRiNDZkYzk0ZTU1NTg3YTEwN2VhMTU0NmJmMjJkMjhhMDk3ZjY1MmE0MDY2ZGMyOTY1MjY5MDY5YWYyZjUxNzZiYjhjZTljYTZkMTFmOTY3NTdmMDMyMDRmNzU2NzAzNTg3ZDAwYWQ0MjQ3OTZjOTJmYzdhZWI2ZjQ5NDQzMTk5OWVkYTMwOTkwZTRmNTc3MzYzMmVkMjU4ZmUwMjc2NjczNTk5ZGE2ZmNlMzVjZGFkNzcyNmEwYmIwMjRjYWQ5OTZiODhlMGNiOTg4NTRjZWI1YzBiNmVjNzQ4ZDlmOWNlNmE2Y2Q0Mzc4NThiYWNiODE0NjE4YTI3MmZmM2E0MTVjNmUwN2YzZGIwOTg4Nzc3ZmRlYzg0NWE5N2JmN2QxMDJkZDAzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzIwMjE0NTY0ZDU1NDAyNWFmNTk5ZTMyNzA3OWIyNzIwZWYwMGRmMzdjZmI3YzMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwMDQ2MDk4ZGM1ZjJiOTllM2JjMmVkNjY0MmQ3ZjBhNjFlZmFiYzE1YzM4Yzc2MzMzYmNjY2VlZWUzNjlhNGY0YTViZGRhOGVhNTkyNjQxMjRlNDI5ZjA4NjMyNjgzZGRiYTE3YmJmMjYyZDgyYjZiZWZhM2I0ZTE0ODAzNzZhOGM3ZjNjN2Q3ZTJhNjc3OWJiZjE4MjYyYWE4NTdkZThjMjBhMTJiNmEyY2U4ZTRkN2YzMWRkMWIxOTUzOTJjZjYxODVhZmNlMzRhZmUwNTg5NjA1N2IzNmU5YjE3MWI2YzY3ZWQ3YzIyODZjYmZhODNmZjhhMTY3YzdiYzcxMDlhZWU3ZDdlMTkwOWJkMzg0ZmJmYzYxOTM4ZWZjYTUxYzg5OTNjNzFkYjMxNzczMGYxNmU3ZTc3Njg2N2FlNGZkYzU2MmQ2ZjE1ZGU1ODVlN2I5NGVmNDk2YTM2NzYzNjdhMmNiYWFiN2I2MzY2NDhiMDA3NmJhZDVjZGYxZTA5NzQwZWM2YTQ1MWJmZjUzNGVmYTIxNTA5ZjNiYTc3YjgxMDFiOTFlYTdlNTVkZGJmZTE0MDE1MTcwNjdkN2IwMWEyYTA4NzlmMDg4NWM4OTRhODdjZmI2OGM0ZDdlZTg5MDYwNDg4MWFlYjk3YzIyZDFmMzM3ZWY5MjNlMDM1YTY0MDAiCiAKIFBLQ1M3IFBhcnNlIEZhaWx1cmUgSW52YWxpZCBBU04xOiBDaGFuZ2UgdGFnIDA1IHRvIDAyICM0MTguMAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHBrY3M3X2FzbjFfZmFpbDoiMzA4MjAzMjYwNjA5MmE4NjQ4ODZmNzBkMDEwNzAyYTA4MjAzMTczMDgyMDMxMzAyMDEwMTMxMGYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBiMDYwOTJhODY0ODg2ZjcwZDAxMDcwMTMxODIwMmVlMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTAyMDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDViZWNkODcxOTVjMWRlZmY5MGMyNGM5MTI2OWI1NWIzZjA2OWJjMjI1YzMyNmMzMTRjMWE1MTc4NmZmZTE0YzgzMGJlNGU0YmM3M2NiYTM2Yzk3Njc3YjQ0MTY4Mjc5YmU5MWU3Y2RmN2MxOTM4NmFlMjE4NjI3MTlkMTNhM2EwZmZmMDgwM2Q0NjA5NjJmMmNkYTgzNzE0ODQ4NzMyNTJjM2Q3MDU0ZGI4MTQzZTJiMDgxYTM4MTZlZDA4MDRjYTUwOTlhZTVmZWNlODNkNWMyYzM3ODNiMTk4OGI0YjQ2ZGM5NGU1NTU4N2ExMDdlYTE1NDZiZjIyZDI4YTA5N2Y2NTJhNDA2NmRjMjk2NTI2OTA2OWFmMmY1MTc2YmI4Y2U5Y2E2ZDExZjk2NzU3ZjAzMjA0Zjc1NjcwMzU4N2QwMGFkNDI0Nzk2YzkyZmM3YWViNmY0OTQ0MzE5OTllZGEzMDk5MGU0ZjU3NzM2MzJlZDI1OGZlMDI3NjY3MzU5OWRhNmZjZTM1Y2RhZDc3MjZhMGJiMDI0Y2FkOTk2Yjg4ZTBjYjk4ODU0Y2ViNWMwYjZlYzc0OGQ5ZjljZTZhNmNkNDM3ODU4YmFjYjgxNDYxOGEyNzJmZjNhNDE1YzZlMDdmM2RiMDk4ODc3N2ZkZWM4NDVhOTdiZjdkMTAyZGQwMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMyMDIxNDU2NGQ1NTQwMjVhZjU5OWUzMjcwNzliMjcyMGVmMDBkZjM3Y2ZiN2MzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDA0NjA5OGRjNWYyYjk5ZTNiYzJlZDY2NDJkN2YwYTYxZWZhYmMxNWMzOGM3NjMzM2JjY2NlZWVlMzY5YTRmNGE1YmRkYThlYTU5MjY0MTI0ZTQyOWYwODYzMjY4M2RkYmExN2JiZjI2MmQ4MmI2YmVmYTNiNGUxNDgwMzc2YThjN2YzYzdkN2UyYTY3NzliYmYxODI2MmFhODU3ZGU4YzIwYTEyYjZhMmNlOGU0ZDdmMzFkZDFiMTk1MzkyY2Y2MTg1YWZjZTM0YWZlMDU4OTYwNTdiMzZlOWIxNzFiNmM2N2VkN2MyMjg2Y2JmYTgzZmY4YTE2N2M3YmM3MTA5YWVlN2Q3ZTE5MDliZDM4NGZiZmM2MTkzOGVmY2E1MWM4OTkzYzcxZGIzMTc3MzBmMTZlN2U3NzY4NjdhZTRmZGM1NjJkNmYxNWRlNTg1ZTdiOTRlZjQ5NmEzNjc2MzY3YTJjYmFhYjdiNjM2NjQ4YjAwNzZiYWQ1Y2RmMWUwOTc0MGVjNmE0NTFiZmY1MzRlZmEyMTUwOWYzYmE3N2I4MTAxYjkxZWE3ZTU1ZGRiZmUxNDAxNTE3MDY3ZDdiMDFhMmEwODc5ZjA4ODVjODk0YTg3Y2ZiNjhjNGQ3ZWU4OTA2MDQ4ODFhZWI5N2MyMmQxZjMzN2VmOTIzZTAzNWE2NDAwIgogCiBQS0NTNyBQYXJzZSBGYWlsdXJlIEludmFsaWQgQVNOMTogQ2hhbmdlIGxlbmd0aCBmcm9tIDAgdG8gMSAjNDE5LjAKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBwa2NzN19hc24xX2ZhaWw6IjMwODIwMzI2MDYwOTJhODY0ODg2ZjcwZDAxMDcwMmEwODIwMzE3MzA4MjAzMTMwMjAxMDEzMTBmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwYjA2MDkyYTg2NDg4NmY3MGQwMTA3MDEzMTgyMDJlZTMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTAyMTQ3YmRlZGRkMjQ0NGNkMWNkZmU1YzQxYTgxMDJjODliN2RmMmU2Y2JmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAxMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDA1YmVjZDg3MTk1YzFkZWZmOTBjMjRjOTEyNjliNTViM2YwNjliYzIyNWMzMjZjMzE0YzFhNTE3ODZmZmUxNGM4MzBiZTRlNGJjNzNjYmEzNmM5NzY3N2I0NDE2ODI3OWJlOTFlN2NkZjdjMTkzODZhZTIxODYyNzE5ZDEzYTNhMGZmZjA4MDNkNDYwOTYyZjJjZGE4MzcxNDg0ODczMjUyYzNkNzA1NGRiODE0M2UyYjA4MWEzODE2ZWQwODA0Y2E1MDk5YWU1ZmVjZTgzZDVjMmMzNzgzYjE5ODhiNGI0NmRjOTRlNTU1ODdhMTA3ZWExNTQ2YmYyMmQyOGEwOTdmNjUyYTQwNjZkYzI5NjUyNjkwNjlhZjJmNTE3NmJiOGNlOWNhNmQxMWY5Njc1N2YwMzIwNGY3NTY3MDM1ODdkMDBhZDQyNDc5NmM5MmZjN2FlYjZmNDk0NDMxOTk5ZWRhMzA5OTBlNGY1NzczNjMyZWQyNThmZTAyNzY2NzM1OTlkYTZmY2UzNWNkYWQ3NzI2YTBiYjAyNGNhZDk5NmI4OGUwY2I5ODg1NGNlYjVjMGI2ZWM3NDhkOWY5Y2U2YTZjZDQzNzg1OGJhY2I4MTQ2MThhMjcyZmYzYTQxNWM2ZTA3ZjNkYjA5ODg3NzdmZGVjODQ1YTk3YmY3ZDEwMmRkMDMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMjAyMTQ1NjRkNTU0MDI1YWY1OTllMzI3MDc5YjI3MjBlZjAwZGYzN2NmYjdjMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDAwNDYwOThkYzVmMmI5OWUzYmMyZWQ2NjQyZDdmMGE2MWVmYWJjMTVjMzhjNzYzMzNiY2NjZWVlZTM2OWE0ZjRhNWJkZGE4ZWE1OTI2NDEyNGU0MjlmMDg2MzI2ODNkZGJhMTdiYmYyNjJkODJiNmJlZmEzYjRlMTQ4MDM3NmE4YzdmM2M3ZDdlMmE2Nzc5YmJmMTgyNjJhYTg1N2RlOGMyMGExMmI2YTJjZThlNGQ3ZjMxZGQxYjE5NTM5MmNmNjE4NWFmY2UzNGFmZTA1ODk2MDU3YjM2ZTliMTcxYjZjNjdlZDdjMjI4NmNiZmE4M2ZmOGExNjdjN2JjNzEwOWFlZTdkN2UxOTA5YmQzODRmYmZjNjE5MzhlZmNhNTFjODk5M2M3MWRiMzE3NzMwZjE2ZTdlNzc2ODY3YWU0ZmRjNTYyZDZmMTVkZTU4NWU3Yjk0ZWY0OTZhMzY3NjM2N2EyY2JhYWI3YjYzNjY0OGIwMDc2YmFkNWNkZjFlMDk3NDBlYzZhNDUxYmZmNTM0ZWZhMjE1MDlmM2JhNzdiODEwMWI5MWVhN2U1NWRkYmZlMTQwMTUxNzA2N2Q3YjAxYTJhMDg3OWYwODg1Yzg5NGE4N2NmYjY4YzRkN2VlODkwNjA0ODgxYWViOTdjMjJkMWYzMzdlZjkyM2UwMzVhNjQwMCIKIAogUEtDUzcgUGFyc2UgRmFpbHVyZSBJbnZhbGlkIEFTTjE6IENoYW5nZSB0YWcgMzAgdG8gMDIgIzQyMC4wCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NgogcGtjczdfYXNuMV9mYWlsOiIzMDgyMDMyNjA2MDkyYTg2NDg4NmY3MGQwMTA3MDJhMDgyMDMxNzMwODIwMzEzMDIwMTAxMzEwZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGIwNjA5MmE4NjQ4ODZmNzBkMDEwNzAxMzE4MjAyZWUzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDAyMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwNWJlY2Q4NzE5NWMxZGVmZjkwYzI0YzkxMjY5YjU1YjNmMDY5YmMyMjVjMzI2YzMxNGMxYTUxNzg2ZmZlMTRjODMwYmU0ZTRiYzczY2JhMzZjOTc2NzdiNDQxNjgyNzliZTkxZTdjZGY3YzE5Mzg2YWUyMTg2MjcxOWQxM2EzYTBmZmYwODAzZDQ2MDk2MmYyY2RhODM3MTQ4NDg3MzI1MmMzZDcwNTRkYjgxNDNlMmIwODFhMzgxNmVkMDgwNGNhNTA5OWFlNWZlY2U4M2Q1YzJjMzc4M2IxOTg4YjRiNDZkYzk0ZTU1NTg3YTEwN2VhMTU0NmJmMjJkMjhhMDk3ZjY1MmE0MDY2ZGMyOTY1MjY5MDY5YWYyZjUxNzZiYjhjZTljYTZkMTFmOTY3NTdmMDMyMDRmNzU2NzAzNTg3ZDAwYWQ0MjQ3OTZjOTJmYzdhZWI2ZjQ5NDQzMTk5OWVkYTMwOTkwZTRmNTc3MzYzMmVkMjU4ZmUwMjc2NjczNTk5ZGE2ZmNlMzVjZGFkNzcyNmEwYmIwMjRjYWQ5OTZiODhlMGNiOTg4NTRjZWI1YzBiNmVjNzQ4ZDlmOWNlNmE2Y2Q0Mzc4NThiYWNiODE0NjE4YTI3MmZmM2E0MTVjNmUwN2YzZGIwOTg4Nzc3ZmRlYzg0NWE5N2JmN2QxMDJkZDAzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzIwMjE0NTY0ZDU1NDAyNWFmNTk5ZTMyNzA3OWIyNzIwZWYwMGRmMzdjZmI3YzMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwMDQ2MDk4ZGM1ZjJiOTllM2JjMmVkNjY0MmQ3ZjBhNjFlZmFiYzE1YzM4Yzc2MzMzYmNjY2VlZWUzNjlhNGY0YTViZGRhOGVhNTkyNjQxMjRlNDI5ZjA4NjMyNjgzZGRiYTE3YmJmMjYyZDgyYjZiZWZhM2I0ZTE0ODAzNzZhOGM3ZjNjN2Q3ZTJhNjc3OWJiZjE4MjYyYWE4NTdkZThjMjBhMTJiNmEyY2U4ZTRkN2YzMWRkMWIxOTUzOTJjZjYxODVhZmNlMzRhZmUwNTg5NjA1N2IzNmU5YjE3MWI2YzY3ZWQ3YzIyODZjYmZhODNmZjhhMTY3YzdiYzcxMDlhZWU3ZDdlMTkwOWJkMzg0ZmJmYzYxOTM4ZWZjYTUxYzg5OTNjNzFkYjMxNzczMGYxNmU3ZTc3Njg2N2FlNGZkYzU2MmQ2ZjE1ZGU1ODVlN2I5NGVmNDk2YTM2NzYzNjdhMmNiYWFiN2I2MzY2NDhiMDA3NmJhZDVjZGYxZTA5NzQwZWM2YTQ1MWJmZjUzNGVmYTIxNTA5ZjNiYTc3YjgxMDFiOTFlYTdlNTVkZGJmZTE0MDE1MTcwNjdkN2IwMWEyYTA4NzlmMDg4NWM4OTRhODdjZmI2OGM0ZDdlZTg5MDYwNDg4MWFlYjk3YzIyZDFmMzM3ZWY5MjNlMDM1YTY0MDAiCiAKIFBLQ1M3IFBhcnNlIEZhaWx1cmUgSW52YWxpZCBBU04xOiBDaGFuZ2UgbGVuZ3RoIGZyb20gMTMgdG8gMTQgIzQyMS4wCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NgogcGtjczdfYXNuMV9mYWlsOiIzMDgyMDMyNjA2MDkyYTg2NDg4NmY3MGQwMTA3MDJhMDgyMDMxNzMwODIwMzEzMDIwMTAxMzEwZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGIwNjA5MmE4NjQ4ODZmNzBkMDEwNzAxMzE4MjAyZWUzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGUwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwNWJlY2Q4NzE5NWMxZGVmZjkwYzI0YzkxMjY5YjU1YjNmMDY5YmMyMjVjMzI2YzMxNGMxYTUxNzg2ZmZlMTRjODMwYmU0ZTRiYzczY2JhMzZjOTc2NzdiNDQxNjgyNzliZTkxZTdjZGY3YzE5Mzg2YWUyMTg2MjcxOWQxM2EzYTBmZmYwODAzZDQ2MDk2MmYyY2RhODM3MTQ4NDg3MzI1MmMzZDcwNTRkYjgxNDNlMmIwODFhMzgxNmVkMDgwNGNhNTA5OWFlNWZlY2U4M2Q1YzJjMzc4M2IxOTg4YjRiNDZkYzk0ZTU1NTg3YTEwN2VhMTU0NmJmMjJkMjhhMDk3ZjY1MmE0MDY2ZGMyOTY1MjY5MDY5YWYyZjUxNzZiYjhjZTljYTZkMTFmOTY3NTdmMDMyMDRmNzU2NzAzNTg3ZDAwYWQ0MjQ3OTZjOTJmYzdhZWI2ZjQ5NDQzMTk5OWVkYTMwOTkwZTRmNTc3MzYzMmVkMjU4ZmUwMjc2NjczNTk5ZGE2ZmNlMzVjZGFkNzcyNmEwYmIwMjRjYWQ5OTZiODhlMGNiOTg4NTRjZWI1YzBiNmVjNzQ4ZDlmOWNlNmE2Y2Q0Mzc4NThiYWNiODE0NjE4YTI3MmZmM2E0MTVjNmUwN2YzZGIwOTg4Nzc3ZmRlYzg0NWE5N2JmN2QxMDJkZDAzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzIwMjE0NTY0ZDU1NDAyNWFmNTk5ZTMyNzA3OWIyNzIwZWYwMGRmMzdjZmI3YzMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwMDQ2MDk4ZGM1ZjJiOTllM2JjMmVkNjY0MmQ3ZjBhNjFlZmFiYzE1YzM4Yzc2MzMzYmNjY2VlZWUzNjlhNGY0YTViZGRhOGVhNTkyNjQxMjRlNDI5ZjA4NjMyNjgzZGRiYTE3YmJmMjYyZDgyYjZiZWZhM2I0ZTE0ODAzNzZhOGM3ZjNjN2Q3ZTJhNjc3OWJiZjE4MjYyYWE4NTdkZThjMjBhMTJiNmEyY2U4ZTRkN2YzMWRkMWIxOTUzOTJjZjYxODVhZmNlMzRhZmUwNTg5NjA1N2IzNmU5YjE3MWI2YzY3ZWQ3YzIyODZjYmZhODNmZjhhMTY3YzdiYzcxMDlhZWU3ZDdlMTkwOWJkMzg0ZmJmYzYxOTM4ZWZjYTUxYzg5OTNjNzFkYjMxNzczMGYxNmU3ZTc3Njg2N2FlNGZkYzU2MmQ2ZjE1ZGU1ODVlN2I5NGVmNDk2YTM2NzYzNjdhMmNiYWFiN2I2MzY2NDhiMDA3NmJhZDVjZGYxZTA5NzQwZWM2YTQ1MWJmZjUzNGVmYTIxNTA5ZjNiYTc3YjgxMDFiOTFlYTdlNTVkZGJmZTE0MDE1MTcwNjdkN2IwMWEyYTA4NzlmMDg4NWM4OTRhODdjZmI2OGM0ZDdlZTg5MDYwNDg4MWFlYjk3YzIyZDFmMzM3ZWY5MjNlMDM1YTY0MDAiCiAKIFBLQ1M3IFBhcnNlIEZhaWx1cmUgSW52YWxpZCBBU04xOiBDaGFuZ2UgY29udGVudHMgb2YgdGFnIDMwIHRvIGNvbnRhaW4gb25lIHVuYWNjb3VudGVkIGV4dHJhIGJ5dGUgIzQyMi4wCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NgogcGtjczdfYXNuMV9mYWlsOiIzMDgyMDMyNjA2MDkyYTg2NDg4NmY3MGQwMTA3MDJhMDgyMDMxNzMwODIwMzEzMDIwMTAxMzEwZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGIwNjA5MmE4NjQ4ODZmNzBkMDEwNzAxMzE4MjAyZWUzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGUwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDAwMDQ4MjAxMDA1YmVjZDg3MTk1YzFkZWZmOTBjMjRjOTEyNjliNTViM2YwNjliYzIyNWMzMjZjMzE0YzFhNTE3ODZmZmUxNGM4MzBiZTRlNGJjNzNjYmEzNmM5NzY3N2I0NDE2ODI3OWJlOTFlN2NkZjdjMTkzODZhZTIxODYyNzE5ZDEzYTNhMGZmZjA4MDNkNDYwOTYyZjJjZGE4MzcxNDg0ODczMjUyYzNkNzA1NGRiODE0M2UyYjA4MWEzODE2ZWQwODA0Y2E1MDk5YWU1ZmVjZTgzZDVjMmMzNzgzYjE5ODhiNGI0NmRjOTRlNTU1ODdhMTA3ZWExNTQ2YmYyMmQyOGEwOTdmNjUyYTQwNjZkYzI5NjUyNjkwNjlhZjJmNTE3NmJiOGNlOWNhNmQxMWY5Njc1N2YwMzIwNGY3NTY3MDM1ODdkMDBhZDQyNDc5NmM5MmZjN2FlYjZmNDk0NDMxOTk5ZWRhMzA5OTBlNGY1NzczNjMyZWQyNThmZTAyNzY2NzM1OTlkYTZmY2UzNWNkYWQ3NzI2YTBiYjAyNGNhZDk5NmI4OGUwY2I5ODg1NGNlYjVjMGI2ZWM3NDhkOWY5Y2U2YTZjZDQzNzg1OGJhY2I4MTQ2MThhMjcyZmYzYTQxNWM2ZTA3ZjNkYjA5ODg3NzdmZGVjODQ1YTk3YmY3ZDEwMmRkMDMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMjAyMTQ1NjRkNTU0MDI1YWY1OTllMzI3MDc5YjI3MjBlZjAwZGYzN2NmYjdjMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDAwNDYwOThkYzVmMmI5OWUzYmMyZWQ2NjQyZDdmMGE2MWVmYWJjMTVjMzhjNzYzMzNiY2NjZWVlZTM2OWE0ZjRhNWJkZGE4ZWE1OTI2NDEyNGU0MjlmMDg2MzI2ODNkZGJhMTdiYmYyNjJkODJiNmJlZmEzYjRlMTQ4MDM3NmE4YzdmM2M3ZDdlMmE2Nzc5YmJmMTgyNjJhYTg1N2RlOGMyMGExMmI2YTJjZThlNGQ3ZjMxZGQxYjE5NTM5MmNmNjE4NWFmY2UzNGFmZTA1ODk2MDU3YjM2ZTliMTcxYjZjNjdlZDdjMjI4NmNiZmE4M2ZmOGExNjdjN2JjNzEwOWFlZTdkN2UxOTA5YmQzODRmYmZjNjE5MzhlZmNhNTFjODk5M2M3MWRiMzE3NzMwZjE2ZTdlNzc2ODY3YWU0ZmRjNTYyZDZmMTVkZTU4NWU3Yjk0ZWY0OTZhMzY3NjM2N2EyY2JhYWI3YjYzNjY0OGIwMDc2YmFkNWNkZjFlMDk3NDBlYzZhNDUxYmZmNTM0ZWZhMjE1MDlmM2JhNzdiODEwMWI5MWVhN2U1NWRkYmZlMTQwMTUxNzA2N2Q3YjAxYTJhMDg3OWYwODg1Yzg5NGE4N2NmYjY4YzRkN2VlODkwNjA0ODgxYWViOTdjMjJkMWYzMzdlZjkyM2UwMzVhNjQwMCIKIAogUEtDUzcgUGFyc2UgRmFpbHVyZSBJbnZhbGlkIEFTTjE6IENoYW5nZSBsZW5ndGggZnJvbSAxMyB0byAxMiAjNDIzLjAKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBwa2NzN19hc24xX2ZhaWw6IjMwODIwMzI2MDYwOTJhODY0ODg2ZjcwZDAxMDcwMmEwODIwMzE3MzA4MjAzMTMwMjAxMDEzMTBmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwYjA2MDkyYTg2NDg4NmY3MGQwMTA3MDEzMTgyMDJlZTMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTAyMTQ3YmRlZGRkMjQ0NGNkMWNkZmU1YzQxYTgxMDJjODliN2RmMmU2Y2JmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwYzA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDA1YmVjZDg3MTk1YzFkZWZmOTBjMjRjOTEyNjliNTViM2YwNjliYzIyNWMzMjZjMzE0YzFhNTE3ODZmZmUxNGM4MzBiZTRlNGJjNzNjYmEzNmM5NzY3N2I0NDE2ODI3OWJlOTFlN2NkZjdjMTkzODZhZTIxODYyNzE5ZDEzYTNhMGZmZjA4MDNkNDYwOTYyZjJjZGE4MzcxNDg0ODczMjUyYzNkNzA1NGRiODE0M2UyYjA4MWEzODE2ZWQwODA0Y2E1MDk5YWU1ZmVjZTgzZDVjMmMzNzgzYjE5ODhiNGI0NmRjOTRlNTU1ODdhMTA3ZWExNTQ2YmYyMmQyOGEwOTdmNjUyYTQwNjZkYzI5NjUyNjkwNjlhZjJmNTE3NmJiOGNlOWNhNmQxMWY5Njc1N2YwMzIwNGY3NTY3MDM1ODdkMDBhZDQyNDc5NmM5MmZjN2FlYjZmNDk0NDMxOTk5ZWRhMzA5OTBlNGY1NzczNjMyZWQyNThmZTAyNzY2NzM1OTlkYTZmY2UzNWNkYWQ3NzI2YTBiYjAyNGNhZDk5NmI4OGUwY2I5ODg1NGNlYjVjMGI2ZWM3NDhkOWY5Y2U2YTZjZDQzNzg1OGJhY2I4MTQ2MThhMjcyZmYzYTQxNWM2ZTA3ZjNkYjA5ODg3NzdmZGVjODQ1YTk3YmY3ZDEwMmRkMDMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMjAyMTQ1NjRkNTU0MDI1YWY1OTllMzI3MDc5YjI3MjBlZjAwZGYzN2NmYjdjMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDAwNDYwOThkYzVmMmI5OWUzYmMyZWQ2NjQyZDdmMGE2MWVmYWJjMTVjMzhjNzYzMzNiY2NjZWVlZTM2OWE0ZjRhNWJkZGE4ZWE1OTI2NDEyNGU0MjlmMDg2MzI2ODNkZGJhMTdiYmYyNjJkODJiNmJlZmEzYjRlMTQ4MDM3NmE4YzdmM2M3ZDdlMmE2Nzc5YmJmMTgyNjJhYTg1N2RlOGMyMGExMmI2YTJjZThlNGQ3ZjMxZGQxYjE5NTM5MmNmNjE4NWFmY2UzNGFmZTA1ODk2MDU3YjM2ZTliMTcxYjZjNjdlZDdjMjI4NmNiZmE4M2ZmOGExNjdjN2JjNzEwOWFlZTdkN2UxOTA5YmQzODRmYmZjNjE5MzhlZmNhNTFjODk5M2M3MWRiMzE3NzMwZjE2ZTdlNzc2ODY3YWU0ZmRjNTYyZDZmMTVkZTU4NWU3Yjk0ZWY0OTZhMzY3NjM2N2EyY2JhYWI3YjYzNjY0OGIwMDc2YmFkNWNkZjFlMDk3NDBlYzZhNDUxYmZmNTM0ZWZhMjE1MDlmM2JhNzdiODEwMWI5MWVhN2U1NWRkYmZlMTQwMTUxNzA2N2Q3YjAxYTJhMDg3OWYwODg1Yzg5NGE4N2NmYjY4YzRkN2VlODkwNjA0ODgxYWViOTdjMjJkMWYzMzdlZjkyM2UwMzVhNjQwMCIKIAogUEtDUzcgUGFyc2UgRmFpbHVyZSBJbnZhbGlkIEFTTjE6IENoYW5nZSB0YWcgMDYgdG8gMDIgIzQyNC4wCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NgogcGtjczdfYXNuMV9mYWlsOiIzMDgyMDMyNjA2MDkyYTg2NDg4NmY3MGQwMTA3MDJhMDgyMDMxNzMwODIwMzEzMDIwMTAxMzEwZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGIwNjA5MmE4NjQ4ODZmNzBkMDEwNzAxMzE4MjAyZWUzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwMjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwNWJlY2Q4NzE5NWMxZGVmZjkwYzI0YzkxMjY5YjU1YjNmMDY5YmMyMjVjMzI2YzMxNGMxYTUxNzg2ZmZlMTRjODMwYmU0ZTRiYzczY2JhMzZjOTc2NzdiNDQxNjgyNzliZTkxZTdjZGY3YzE5Mzg2YWUyMTg2MjcxOWQxM2EzYTBmZmYwODAzZDQ2MDk2MmYyY2RhODM3MTQ4NDg3MzI1MmMzZDcwNTRkYjgxNDNlMmIwODFhMzgxNmVkMDgwNGNhNTA5OWFlNWZlY2U4M2Q1YzJjMzc4M2IxOTg4YjRiNDZkYzk0ZTU1NTg3YTEwN2VhMTU0NmJmMjJkMjhhMDk3ZjY1MmE0MDY2ZGMyOTY1MjY5MDY5YWYyZjUxNzZiYjhjZTljYTZkMTFmOTY3NTdmMDMyMDRmNzU2NzAzNTg3ZDAwYWQ0MjQ3OTZjOTJmYzdhZWI2ZjQ5NDQzMTk5OWVkYTMwOTkwZTRmNTc3MzYzMmVkMjU4ZmUwMjc2NjczNTk5ZGE2ZmNlMzVjZGFkNzcyNmEwYmIwMjRjYWQ5OTZiODhlMGNiOTg4NTRjZWI1YzBiNmVjNzQ4ZDlmOWNlNmE2Y2Q0Mzc4NThiYWNiODE0NjE4YTI3MmZmM2E0MTVjNmUwN2YzZGIwOTg4Nzc3ZmRlYzg0NWE5N2JmN2QxMDJkZDAzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzIwMjE0NTY0ZDU1NDAyNWFmNTk5ZTMyNzA3OWIyNzIwZWYwMGRmMzdjZmI3YzMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwMDQ2MDk4ZGM1ZjJiOTllM2JjMmVkNjY0MmQ3ZjBhNjFlZmFiYzE1YzM4Yzc2MzMzYmNjY2VlZWUzNjlhNGY0YTViZGRhOGVhNTkyNjQxMjRlNDI5ZjA4NjMyNjgzZGRiYTE3YmJmMjYyZDgyYjZiZWZhM2I0ZTE0ODAzNzZhOGM3ZjNjN2Q3ZTJhNjc3OWJiZjE4MjYyYWE4NTdkZThjMjBhMTJiNmEyY2U4ZTRkN2YzMWRkMWIxOTUzOTJjZjYxODVhZmNlMzRhZmUwNTg5NjA1N2IzNmU5YjE3MWI2YzY3ZWQ3YzIyODZjYmZhODNmZjhhMTY3YzdiYzcxMDlhZWU3ZDdlMTkwOWJkMzg0ZmJmYzYxOTM4ZWZjYTUxYzg5OTNjNzFkYjMxNzczMGYxNmU3ZTc3Njg2N2FlNGZkYzU2MmQ2ZjE1ZGU1ODVlN2I5NGVmNDk2YTM2NzYzNjdhMmNiYWFiN2I2MzY2NDhiMDA3NmJhZDVjZGYxZTA5NzQwZWM2YTQ1MWJmZjUzNGVmYTIxNTA5ZjNiYTc3YjgxMDFiOTFlYTdlNTVkZGJmZTE0MDE1MTcwNjdkN2IwMWEyYTA4NzlmMDg4NWM4OTRhODdjZmI2OGM0ZDdlZTg5MDYwNDg4MWFlYjk3YzIyZDFmMzM3ZWY5MjNlMDM1YTY0MDAiCiAKIFBLQ1M3IFBhcnNlIEZhaWx1cmUgSW52YWxpZCBBU04xOiBDaGFuZ2UgbGVuZ3RoIGZyb20gOSB0byAxMCAjNDI1LjAKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBwa2NzN19hc24xX2ZhaWw6IjMwODIwMzI2MDYwOTJhODY0ODg2ZjcwZDAxMDcwMmEwODIwMzE3MzA4MjAzMTMwMjAxMDEzMTBmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwYjA2MDkyYTg2NDg4NmY3MGQwMTA3MDEzMTgyMDJlZTMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTAyMTQ3YmRlZGRkMjQ0NGNkMWNkZmU1YzQxYTgxMDJjODliN2RmMmU2Y2JmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MGEyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDA1YmVjZDg3MTk1YzFkZWZmOTBjMjRjOTEyNjliNTViM2YwNjliYzIyNWMzMjZjMzE0YzFhNTE3ODZmZmUxNGM4MzBiZTRlNGJjNzNjYmEzNmM5NzY3N2I0NDE2ODI3OWJlOTFlN2NkZjdjMTkzODZhZTIxODYyNzE5ZDEzYTNhMGZmZjA4MDNkNDYwOTYyZjJjZGE4MzcxNDg0ODczMjUyYzNkNzA1NGRiODE0M2UyYjA4MWEzODE2ZWQwODA0Y2E1MDk5YWU1ZmVjZTgzZDVjMmMzNzgzYjE5ODhiNGI0NmRjOTRlNTU1ODdhMTA3ZWExNTQ2YmYyMmQyOGEwOTdmNjUyYTQwNjZkYzI5NjUyNjkwNjlhZjJmNTE3NmJiOGNlOWNhNmQxMWY5Njc1N2YwMzIwNGY3NTY3MDM1ODdkMDBhZDQyNDc5NmM5MmZjN2FlYjZmNDk0NDMxOTk5ZWRhMzA5OTBlNGY1NzczNjMyZWQyNThmZTAyNzY2NzM1OTlkYTZmY2UzNWNkYWQ3NzI2YTBiYjAyNGNhZDk5NmI4OGUwY2I5ODg1NGNlYjVjMGI2ZWM3NDhkOWY5Y2U2YTZjZDQzNzg1OGJhY2I4MTQ2MThhMjcyZmYzYTQxNWM2ZTA3ZjNkYjA5ODg3NzdmZGVjODQ1YTk3YmY3ZDEwMmRkMDMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMjAyMTQ1NjRkNTU0MDI1YWY1OTllMzI3MDc5YjI3MjBlZjAwZGYzN2NmYjdjMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDAwNDYwOThkYzVmMmI5OWUzYmMyZWQ2NjQyZDdmMGE2MWVmYWJjMTVjMzhjNzYzMzNiY2NjZWVlZTM2OWE0ZjRhNWJkZGE4ZWE1OTI2NDEyNGU0MjlmMDg2MzI2ODNkZGJhMTdiYmYyNjJkODJiNmJlZmEzYjRlMTQ4MDM3NmE4YzdmM2M3ZDdlMmE2Nzc5YmJmMTgyNjJhYTg1N2RlOGMyMGExMmI2YTJjZThlNGQ3ZjMxZGQxYjE5NTM5MmNmNjE4NWFmY2UzNGFmZTA1ODk2MDU3YjM2ZTliMTcxYjZjNjdlZDdjMjI4NmNiZmE4M2ZmOGExNjdjN2JjNzEwOWFlZTdkN2UxOTA5YmQzODRmYmZjNjE5MzhlZmNhNTFjODk5M2M3MWRiMzE3NzMwZjE2ZTdlNzc2ODY3YWU0ZmRjNTYyZDZmMTVkZTU4NWU3Yjk0ZWY0OTZhMzY3NjM2N2EyY2JhYWI3YjYzNjY0OGIwMDc2YmFkNWNkZjFlMDk3NDBlYzZhNDUxYmZmNTM0ZWZhMjE1MDlmM2JhNzdiODEwMWI5MWVhN2U1NWRkYmZlMTQwMTUxNzA2N2Q3YjAxYTJhMDg3OWYwODg1Yzg5NGE4N2NmYjY4YzRkN2VlODkwNjA0ODgxYWViOTdjMjJkMWYzMzdlZjkyM2UwMzVhNjQwMCIKIAogUEtDUzcgUGFyc2UgRmFpbHVyZSBJbnZhbGlkIEFTTjE6IENoYW5nZSBsZW5ndGggZnJvbSA5IHRvIDggIzQyNi4wCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NgogcGtjczdfYXNuMV9mYWlsOiIzMDgyMDMyNjA2MDkyYTg2NDg4NmY3MGQwMTA3MDJhMDgyMDMxNzMwODIwMzEzMDIwMTAxMzEwZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGIwNjA5MmE4NjQ4ODZmNzBkMDEwNzAxMzE4MjAyZWUzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA4MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwNWJlY2Q4NzE5NWMxZGVmZjkwYzI0YzkxMjY5YjU1YjNmMDY5YmMyMjVjMzI2YzMxNGMxYTUxNzg2ZmZlMTRjODMwYmU0ZTRiYzczY2JhMzZjOTc2NzdiNDQxNjgyNzliZTkxZTdjZGY3YzE5Mzg2YWUyMTg2MjcxOWQxM2EzYTBmZmYwODAzZDQ2MDk2MmYyY2RhODM3MTQ4NDg3MzI1MmMzZDcwNTRkYjgxNDNlMmIwODFhMzgxNmVkMDgwNGNhNTA5OWFlNWZlY2U4M2Q1YzJjMzc4M2IxOTg4YjRiNDZkYzk0ZTU1NTg3YTEwN2VhMTU0NmJmMjJkMjhhMDk3ZjY1MmE0MDY2ZGMyOTY1MjY5MDY5YWYyZjUxNzZiYjhjZTljYTZkMTFmOTY3NTdmMDMyMDRmNzU2NzAzNTg3ZDAwYWQ0MjQ3OTZjOTJmYzdhZWI2ZjQ5NDQzMTk5OWVkYTMwOTkwZTRmNTc3MzYzMmVkMjU4ZmUwMjc2NjczNTk5ZGE2ZmNlMzVjZGFkNzcyNmEwYmIwMjRjYWQ5OTZiODhlMGNiOTg4NTRjZWI1YzBiNmVjNzQ4ZDlmOWNlNmE2Y2Q0Mzc4NThiYWNiODE0NjE4YTI3MmZmM2E0MTVjNmUwN2YzZGIwOTg4Nzc3ZmRlYzg0NWE5N2JmN2QxMDJkZDAzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzIwMjE0NTY0ZDU1NDAyNWFmNTk5ZTMyNzA3OWIyNzIwZWYwMGRmMzdjZmI3YzMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwMDQ2MDk4ZGM1ZjJiOTllM2JjMmVkNjY0MmQ3ZjBhNjFlZmFiYzE1YzM4Yzc2MzMzYmNjY2VlZWUzNjlhNGY0YTViZGRhOGVhNTkyNjQxMjRlNDI5ZjA4NjMyNjgzZGRiYTE3YmJmMjYyZDgyYjZiZWZhM2I0ZTE0ODAzNzZhOGM3ZjNjN2Q3ZTJhNjc3OWJiZjE4MjYyYWE4NTdkZThjMjBhMTJiNmEyY2U4ZTRkN2YzMWRkMWIxOTUzOTJjZjYxODVhZmNlMzRhZmUwNTg5NjA1N2IzNmU5YjE3MWI2YzY3ZWQ3YzIyODZjYmZhODNmZjhhMTY3YzdiYzcxMDlhZWU3ZDdlMTkwOWJkMzg0ZmJmYzYxOTM4ZWZjYTUxYzg5OTNjNzFkYjMxNzczMGYxNmU3ZTc3Njg2N2FlNGZkYzU2MmQ2ZjE1ZGU1ODVlN2I5NGVmNDk2YTM2NzYzNjdhMmNiYWFiN2I2MzY2NDhiMDA3NmJhZDVjZGYxZTA5NzQwZWM2YTQ1MWJmZjUzNGVmYTIxNTA5ZjNiYTc3YjgxMDFiOTFlYTdlNTVkZGJmZTE0MDE1MTcwNjdkN2IwMWEyYTA4NzlmMDg4NWM4OTRhODdjZmI2OGM0ZDdlZTg5MDYwNDg4MWFlYjk3YzIyZDFmMzM3ZWY5MjNlMDM1YTY0MDAiCiAKIFBLQ1M3IFBhcnNlIEZhaWx1cmUgSW52YWxpZCBBU04xOiBDaGFuZ2UgdGFnIDA1IHRvIDAyICM0MjcuMAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHBrY3M3X2FzbjFfZmFpbDoiMzA4MjAzMjYwNjA5MmE4NjQ4ODZmNzBkMDEwNzAyYTA4MjAzMTczMDgyMDMxMzAyMDEwMTMxMGYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBiMDYwOTJhODY0ODg2ZjcwZDAxMDcwMTMxODIwMmVlMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTAyMDAwNDgyMDEwMDViZWNkODcxOTVjMWRlZmY5MGMyNGM5MTI2OWI1NWIzZjA2OWJjMjI1YzMyNmMzMTRjMWE1MTc4NmZmZTE0YzgzMGJlNGU0YmM3M2NiYTM2Yzk3Njc3YjQ0MTY4Mjc5YmU5MWU3Y2RmN2MxOTM4NmFlMjE4NjI3MTlkMTNhM2EwZmZmMDgwM2Q0NjA5NjJmMmNkYTgzNzE0ODQ4NzMyNTJjM2Q3MDU0ZGI4MTQzZTJiMDgxYTM4MTZlZDA4MDRjYTUwOTlhZTVmZWNlODNkNWMyYzM3ODNiMTk4OGI0YjQ2ZGM5NGU1NTU4N2ExMDdlYTE1NDZiZjIyZDI4YTA5N2Y2NTJhNDA2NmRjMjk2NTI2OTA2OWFmMmY1MTc2YmI4Y2U5Y2E2ZDExZjk2NzU3ZjAzMjA0Zjc1NjcwMzU4N2QwMGFkNDI0Nzk2YzkyZmM3YWViNmY0OTQ0MzE5OTllZGEzMDk5MGU0ZjU3NzM2MzJlZDI1OGZlMDI3NjY3MzU5OWRhNmZjZTM1Y2RhZDc3MjZhMGJiMDI0Y2FkOTk2Yjg4ZTBjYjk4ODU0Y2ViNWMwYjZlYzc0OGQ5ZjljZTZhNmNkNDM3ODU4YmFjYjgxNDYxOGEyNzJmZjNhNDE1YzZlMDdmM2RiMDk4ODc3N2ZkZWM4NDVhOTdiZjdkMTAyZGQwMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMyMDIxNDU2NGQ1NTQwMjVhZjU5OWUzMjcwNzliMjcyMGVmMDBkZjM3Y2ZiN2MzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDA0NjA5OGRjNWYyYjk5ZTNiYzJlZDY2NDJkN2YwYTYxZWZhYmMxNWMzOGM3NjMzM2JjY2NlZWVlMzY5YTRmNGE1YmRkYThlYTU5MjY0MTI0ZTQyOWYwODYzMjY4M2RkYmExN2JiZjI2MmQ4MmI2YmVmYTNiNGUxNDgwMzc2YThjN2YzYzdkN2UyYTY3NzliYmYxODI2MmFhODU3ZGU4YzIwYTEyYjZhMmNlOGU0ZDdmMzFkZDFiMTk1MzkyY2Y2MTg1YWZjZTM0YWZlMDU4OTYwNTdiMzZlOWIxNzFiNmM2N2VkN2MyMjg2Y2JmYTgzZmY4YTE2N2M3YmM3MTA5YWVlN2Q3ZTE5MDliZDM4NGZiZmM2MTkzOGVmY2E1MWM4OTkzYzcxZGIzMTc3MzBmMTZlN2U3NzY4NjdhZTRmZGM1NjJkNmYxNWRlNTg1ZTdiOTRlZjQ5NmEzNjc2MzY3YTJjYmFhYjdiNjM2NjQ4YjAwNzZiYWQ1Y2RmMWUwOTc0MGVjNmE0NTFiZmY1MzRlZmEyMTUwOWYzYmE3N2I4MTAxYjkxZWE3ZTU1ZGRiZmUxNDAxNTE3MDY3ZDdiMDFhMmEwODc5ZjA4ODVjODk0YTg3Y2ZiNjhjNGQ3ZWU4OTA2MDQ4ODFhZWI5N2MyMmQxZjMzN2VmOTIzZTAzNWE2NDAwIgogCiBQS0NTNyBQYXJzZSBGYWlsdXJlIEludmFsaWQgQVNOMTogQ2hhbmdlIGxlbmd0aCBmcm9tIDAgdG8gMSAjNDI4LjAKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBwa2NzN19hc24xX2ZhaWw6IjMwODIwMzI2MDYwOTJhODY0ODg2ZjcwZDAxMDcwMmEwODIwMzE3MzA4MjAzMTMwMjAxMDEzMTBmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwYjA2MDkyYTg2NDg4NmY3MGQwMTA3MDEzMTgyMDJlZTMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTAyMTQ3YmRlZGRkMjQ0NGNkMWNkZmU1YzQxYTgxMDJjODliN2RmMmU2Y2JmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAxMDQ4MjAxMDA1YmVjZDg3MTk1YzFkZWZmOTBjMjRjOTEyNjliNTViM2YwNjliYzIyNWMzMjZjMzE0YzFhNTE3ODZmZmUxNGM4MzBiZTRlNGJjNzNjYmEzNmM5NzY3N2I0NDE2ODI3OWJlOTFlN2NkZjdjMTkzODZhZTIxODYyNzE5ZDEzYTNhMGZmZjA4MDNkNDYwOTYyZjJjZGE4MzcxNDg0ODczMjUyYzNkNzA1NGRiODE0M2UyYjA4MWEzODE2ZWQwODA0Y2E1MDk5YWU1ZmVjZTgzZDVjMmMzNzgzYjE5ODhiNGI0NmRjOTRlNTU1ODdhMTA3ZWExNTQ2YmYyMmQyOGEwOTdmNjUyYTQwNjZkYzI5NjUyNjkwNjlhZjJmNTE3NmJiOGNlOWNhNmQxMWY5Njc1N2YwMzIwNGY3NTY3MDM1ODdkMDBhZDQyNDc5NmM5MmZjN2FlYjZmNDk0NDMxOTk5ZWRhMzA5OTBlNGY1NzczNjMyZWQyNThmZTAyNzY2NzM1OTlkYTZmY2UzNWNkYWQ3NzI2YTBiYjAyNGNhZDk5NmI4OGUwY2I5ODg1NGNlYjVjMGI2ZWM3NDhkOWY5Y2U2YTZjZDQzNzg1OGJhY2I4MTQ2MThhMjcyZmYzYTQxNWM2ZTA3ZjNkYjA5ODg3NzdmZGVjODQ1YTk3YmY3ZDEwMmRkMDMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMjAyMTQ1NjRkNTU0MDI1YWY1OTllMzI3MDc5YjI3MjBlZjAwZGYzN2NmYjdjMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDAwNDYwOThkYzVmMmI5OWUzYmMyZWQ2NjQyZDdmMGE2MWVmYWJjMTVjMzhjNzYzMzNiY2NjZWVlZTM2OWE0ZjRhNWJkZGE4ZWE1OTI2NDEyNGU0MjlmMDg2MzI2ODNkZGJhMTdiYmYyNjJkODJiNmJlZmEzYjRlMTQ4MDM3NmE4YzdmM2M3ZDdlMmE2Nzc5YmJmMTgyNjJhYTg1N2RlOGMyMGExMmI2YTJjZThlNGQ3ZjMxZGQxYjE5NTM5MmNmNjE4NWFmY2UzNGFmZTA1ODk2MDU3YjM2ZTliMTcxYjZjNjdlZDdjMjI4NmNiZmE4M2ZmOGExNjdjN2JjNzEwOWFlZTdkN2UxOTA5YmQzODRmYmZjNjE5MzhlZmNhNTFjODk5M2M3MWRiMzE3NzMwZjE2ZTdlNzc2ODY3YWU0ZmRjNTYyZDZmMTVkZTU4NWU3Yjk0ZWY0OTZhMzY3NjM2N2EyY2JhYWI3YjYzNjY0OGIwMDc2YmFkNWNkZjFlMDk3NDBlYzZhNDUxYmZmNTM0ZWZhMjE1MDlmM2JhNzdiODEwMWI5MWVhN2U1NWRkYmZlMTQwMTUxNzA2N2Q3YjAxYTJhMDg3OWYwODg1Yzg5NGE4N2NmYjY4YzRkN2VlODkwNjA0ODgxYWViOTdjMjJkMWYzMzdlZjkyM2UwMzVhNjQwMCIKIAogUEtDUzcgUGFyc2UgRmFpbHVyZSBJbnZhbGlkIEFTTjE6IENoYW5nZSB0YWcgMDQgdG8gMDIgIzQyOS4wCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NgogcGtjczdfYXNuMV9mYWlsOiIzMDgyMDMyNjA2MDkyYTg2NDg4NmY3MGQwMTA3MDJhMDgyMDMxNzMwODIwMzEzMDIwMTAxMzEwZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGIwNjA5MmE4NjQ4ODZmNzBkMDEwNzAxMzE4MjAyZWUzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDAyODIwMTAwNWJlY2Q4NzE5NWMxZGVmZjkwYzI0YzkxMjY5YjU1YjNmMDY5YmMyMjVjMzI2YzMxNGMxYTUxNzg2ZmZlMTRjODMwYmU0ZTRiYzczY2JhMzZjOTc2NzdiNDQxNjgyNzliZTkxZTdjZGY3YzE5Mzg2YWUyMTg2MjcxOWQxM2EzYTBmZmYwODAzZDQ2MDk2MmYyY2RhODM3MTQ4NDg3MzI1MmMzZDcwNTRkYjgxNDNlMmIwODFhMzgxNmVkMDgwNGNhNTA5OWFlNWZlY2U4M2Q1YzJjMzc4M2IxOTg4YjRiNDZkYzk0ZTU1NTg3YTEwN2VhMTU0NmJmMjJkMjhhMDk3ZjY1MmE0MDY2ZGMyOTY1MjY5MDY5YWYyZjUxNzZiYjhjZTljYTZkMTFmOTY3NTdmMDMyMDRmNzU2NzAzNTg3ZDAwYWQ0MjQ3OTZjOTJmYzdhZWI2ZjQ5NDQzMTk5OWVkYTMwOTkwZTRmNTc3MzYzMmVkMjU4ZmUwMjc2NjczNTk5ZGE2ZmNlMzVjZGFkNzcyNmEwYmIwMjRjYWQ5OTZiODhlMGNiOTg4NTRjZWI1YzBiNmVjNzQ4ZDlmOWNlNmE2Y2Q0Mzc4NThiYWNiODE0NjE4YTI3MmZmM2E0MTVjNmUwN2YzZGIwOTg4Nzc3ZmRlYzg0NWE5N2JmN2QxMDJkZDAzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzIwMjE0NTY0ZDU1NDAyNWFmNTk5ZTMyNzA3OWIyNzIwZWYwMGRmMzdjZmI3YzMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwMDQ2MDk4ZGM1ZjJiOTllM2JjMmVkNjY0MmQ3ZjBhNjFlZmFiYzE1YzM4Yzc2MzMzYmNjY2VlZWUzNjlhNGY0YTViZGRhOGVhNTkyNjQxMjRlNDI5ZjA4NjMyNjgzZGRiYTE3YmJmMjYyZDgyYjZiZWZhM2I0ZTE0ODAzNzZhOGM3ZjNjN2Q3ZTJhNjc3OWJiZjE4MjYyYWE4NTdkZThjMjBhMTJiNmEyY2U4ZTRkN2YzMWRkMWIxOTUzOTJjZjYxODVhZmNlMzRhZmUwNTg5NjA1N2IzNmU5YjE3MWI2YzY3ZWQ3YzIyODZjYmZhODNmZjhhMTY3YzdiYzcxMDlhZWU3ZDdlMTkwOWJkMzg0ZmJmYzYxOTM4ZWZjYTUxYzg5OTNjNzFkYjMxNzczMGYxNmU3ZTc3Njg2N2FlNGZkYzU2MmQ2ZjE1ZGU1ODVlN2I5NGVmNDk2YTM2NzYzNjdhMmNiYWFiN2I2MzY2NDhiMDA3NmJhZDVjZGYxZTA5NzQwZWM2YTQ1MWJmZjUzNGVmYTIxNTA5ZjNiYTc3YjgxMDFiOTFlYTdlNTVkZGJmZTE0MDE1MTcwNjdkN2IwMWEyYTA4NzlmMDg4NWM4OTRhODdjZmI2OGM0ZDdlZTg5MDYwNDg4MWFlYjk3YzIyZDFmMzM3ZWY5MjNlMDM1YTY0MDAiCiAKIFBLQ1M3IFBhcnNlIEZhaWx1cmUgSW52YWxpZCBBU04xOiBDaGFuZ2UgbGVuZ3RoIGZyb20gMjU2IHRvIDI1NyAjNDMwLjAKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBwa2NzN19hc24xX2ZhaWw6IjMwODIwMzI2MDYwOTJhODY0ODg2ZjcwZDAxMDcwMmEwODIwMzE3MzA4MjAzMTMwMjAxMDEzMTBmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwYjA2MDkyYTg2NDg4NmY3MGQwMTA3MDEzMTgyMDJlZTMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTAyMTQ3YmRlZGRkMjQ0NGNkMWNkZmU1YzQxYTgxMDJjODliN2RmMmU2Y2JmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDE1YmVjZDg3MTk1YzFkZWZmOTBjMjRjOTEyNjliNTViM2YwNjliYzIyNWMzMjZjMzE0YzFhNTE3ODZmZmUxNGM4MzBiZTRlNGJjNzNjYmEzNmM5NzY3N2I0NDE2ODI3OWJlOTFlN2NkZjdjMTkzODZhZTIxODYyNzE5ZDEzYTNhMGZmZjA4MDNkNDYwOTYyZjJjZGE4MzcxNDg0ODczMjUyYzNkNzA1NGRiODE0M2UyYjA4MWEzODE2ZWQwODA0Y2E1MDk5YWU1ZmVjZTgzZDVjMmMzNzgzYjE5ODhiNGI0NmRjOTRlNTU1ODdhMTA3ZWExNTQ2YmYyMmQyOGEwOTdmNjUyYTQwNjZkYzI5NjUyNjkwNjlhZjJmNTE3NmJiOGNlOWNhNmQxMWY5Njc1N2YwMzIwNGY3NTY3MDM1ODdkMDBhZDQyNDc5NmM5MmZjN2FlYjZmNDk0NDMxOTk5ZWRhMzA5OTBlNGY1NzczNjMyZWQyNThmZTAyNzY2NzM1OTlkYTZmY2UzNWNkYWQ3NzI2YTBiYjAyNGNhZDk5NmI4OGUwY2I5ODg1NGNlYjVjMGI2ZWM3NDhkOWY5Y2U2YTZjZDQzNzg1OGJhY2I4MTQ2MThhMjcyZmYzYTQxNWM2ZTA3ZjNkYjA5ODg3NzdmZGVjODQ1YTk3YmY3ZDEwMmRkMDMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMjAyMTQ1NjRkNTU0MDI1YWY1OTllMzI3MDc5YjI3MjBlZjAwZGYzN2NmYjdjMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDAwNDYwOThkYzVmMmI5OWUzYmMyZWQ2NjQyZDdmMGE2MWVmYWJjMTVjMzhjNzYzMzNiY2NjZWVlZTM2OWE0ZjRhNWJkZGE4ZWE1OTI2NDEyNGU0MjlmMDg2MzI2ODNkZGJhMTdiYmYyNjJkODJiNmJlZmEzYjRlMTQ4MDM3NmE4YzdmM2M3ZDdlMmE2Nzc5YmJmMTgyNjJhYTg1N2RlOGMyMGExMmI2YTJjZThlNGQ3ZjMxZGQxYjE5NTM5MmNmNjE4NWFmY2UzNGFmZTA1ODk2MDU3YjM2ZTliMTcxYjZjNjdlZDdjMjI4NmNiZmE4M2ZmOGExNjdjN2JjNzEwOWFlZTdkN2UxOTA5YmQzODRmYmZjNjE5MzhlZmNhNTFjODk5M2M3MWRiMzE3NzMwZjE2ZTdlNzc2ODY3YWU0ZmRjNTYyZDZmMTVkZTU4NWU3Yjk0ZWY0OTZhMzY3NjM2N2EyY2JhYWI3YjYzNjY0OGIwMDc2YmFkNWNkZjFlMDk3NDBlYzZhNDUxYmZmNTM0ZWZhMjE1MDlmM2JhNzdiODEwMWI5MWVhN2U1NWRkYmZlMTQwMTUxNzA2N2Q3YjAxYTJhMDg3OWYwODg1Yzg5NGE4N2NmYjY4YzRkN2VlODkwNjA0ODgxYWViOTdjMjJkMWYzMzdlZjkyM2UwMzVhNjQwMCIKIAogUEtDUzcgUGFyc2UgRmFpbHVyZSBJbnZhbGlkIEFTTjE6IENoYW5nZSB0YWcgMzAgdG8gMDIgIzQzMS4wCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NgogcGtjczdfYXNuMV9mYWlsOiIzMDgyMDMyNjA2MDkyYTg2NDg4NmY3MGQwMTA3MDJhMDgyMDMxNzMwODIwMzEzMDIwMTAxMzEwZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGIwNjA5MmE4NjQ4ODZmNzBkMDEwNzAxMzE4MjAyZWUzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwNWJlY2Q4NzE5NWMxZGVmZjkwYzI0YzkxMjY5YjU1YjNmMDY5YmMyMjVjMzI2YzMxNGMxYTUxNzg2ZmZlMTRjODMwYmU0ZTRiYzczY2JhMzZjOTc2NzdiNDQxNjgyNzliZTkxZTdjZGY3YzE5Mzg2YWUyMTg2MjcxOWQxM2EzYTBmZmYwODAzZDQ2MDk2MmYyY2RhODM3MTQ4NDg3MzI1MmMzZDcwNTRkYjgxNDNlMmIwODFhMzgxNmVkMDgwNGNhNTA5OWFlNWZlY2U4M2Q1YzJjMzc4M2IxOTg4YjRiNDZkYzk0ZTU1NTg3YTEwN2VhMTU0NmJmMjJkMjhhMDk3ZjY1MmE0MDY2ZGMyOTY1MjY5MDY5YWYyZjUxNzZiYjhjZTljYTZkMTFmOTY3NTdmMDMyMDRmNzU2NzAzNTg3ZDAwYWQ0MjQ3OTZjOTJmYzdhZWI2ZjQ5NDQzMTk5OWVkYTMwOTkwZTRmNTc3MzYzMmVkMjU4ZmUwMjc2NjczNTk5ZGE2ZmNlMzVjZGFkNzcyNmEwYmIwMjRjYWQ5OTZiODhlMGNiOTg4NTRjZWI1YzBiNmVjNzQ4ZDlmOWNlNmE2Y2Q0Mzc4NThiYWNiODE0NjE4YTI3MmZmM2E0MTVjNmUwN2YzZGIwOTg4Nzc3ZmRlYzg0NWE5N2JmN2QxMDJkZDAwMjgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzIwMjE0NTY0ZDU1NDAyNWFmNTk5ZTMyNzA3OWIyNzIwZWYwMGRmMzdjZmI3YzMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwMDQ2MDk4ZGM1ZjJiOTllM2JjMmVkNjY0MmQ3ZjBhNjFlZmFiYzE1YzM4Yzc2MzMzYmNjY2VlZWUzNjlhNGY0YTViZGRhOGVhNTkyNjQxMjRlNDI5ZjA4NjMyNjgzZGRiYTE3YmJmMjYyZDgyYjZiZWZhM2I0ZTE0ODAzNzZhOGM3ZjNjN2Q3ZTJhNjc3OWJiZjE4MjYyYWE4NTdkZThjMjBhMTJiNmEyY2U4ZTRkN2YzMWRkMWIxOTUzOTJjZjYxODVhZmNlMzRhZmUwNTg5NjA1N2IzNmU5YjE3MWI2YzY3ZWQ3YzIyODZjYmZhODNmZjhhMTY3YzdiYzcxMDlhZWU3ZDdlMTkwOWJkMzg0ZmJmYzYxOTM4ZWZjYTUxYzg5OTNjNzFkYjMxNzczMGYxNmU3ZTc3Njg2N2FlNGZkYzU2MmQ2ZjE1ZGU1ODVlN2I5NGVmNDk2YTM2NzYzNjdhMmNiYWFiN2I2MzY2NDhiMDA3NmJhZDVjZGYxZTA5NzQwZWM2YTQ1MWJmZjUzNGVmYTIxNTA5ZjNiYTc3YjgxMDFiOTFlYTdlNTVkZGJmZTE0MDE1MTcwNjdkN2IwMWEyYTA4NzlmMDg4NWM4OTRhODdjZmI2OGM0ZDdlZTg5MDYwNDg4MWFlYjk3YzIyZDFmMzM3ZWY5MjNlMDM1YTY0MDAiCiAKIFBLQ1M3IFBhcnNlIEZhaWx1cmUgSW52YWxpZCBBU04xOiBDaGFuZ2UgbGVuZ3RoIGZyb20gMzcxIHRvIDM3MiAjNDMyLjAKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBwa2NzN19hc24xX2ZhaWw6IjMwODIwMzI2MDYwOTJhODY0ODg2ZjcwZDAxMDcwMmEwODIwMzE3MzA4MjAzMTMwMjAxMDEzMTBmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwYjA2MDkyYTg2NDg4NmY3MGQwMTA3MDEzMTgyMDJlZTMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTAyMTQ3YmRlZGRkMjQ0NGNkMWNkZmU1YzQxYTgxMDJjODliN2RmMmU2Y2JmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDA1YmVjZDg3MTk1YzFkZWZmOTBjMjRjOTEyNjliNTViM2YwNjliYzIyNWMzMjZjMzE0YzFhNTE3ODZmZmUxNGM4MzBiZTRlNGJjNzNjYmEzNmM5NzY3N2I0NDE2ODI3OWJlOTFlN2NkZjdjMTkzODZhZTIxODYyNzE5ZDEzYTNhMGZmZjA4MDNkNDYwOTYyZjJjZGE4MzcxNDg0ODczMjUyYzNkNzA1NGRiODE0M2UyYjA4MWEzODE2ZWQwODA0Y2E1MDk5YWU1ZmVjZTgzZDVjMmMzNzgzYjE5ODhiNGI0NmRjOTRlNTU1ODdhMTA3ZWExNTQ2YmYyMmQyOGEwOTdmNjUyYTQwNjZkYzI5NjUyNjkwNjlhZjJmNTE3NmJiOGNlOWNhNmQxMWY5Njc1N2YwMzIwNGY3NTY3MDM1ODdkMDBhZDQyNDc5NmM5MmZjN2FlYjZmNDk0NDMxOTk5ZWRhMzA5OTBlNGY1NzczNjMyZWQyNThmZTAyNzY2NzM1OTlkYTZmY2UzNWNkYWQ3NzI2YTBiYjAyNGNhZDk5NmI4OGUwY2I5ODg1NGNlYjVjMGI2ZWM3NDhkOWY5Y2U2YTZjZDQzNzg1OGJhY2I4MTQ2MThhMjcyZmYzYTQxNWM2ZTA3ZjNkYjA5ODg3NzdmZGVjODQ1YTk3YmY3ZDEwMmRkMDMwODIwMTc0MDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMjAyMTQ1NjRkNTU0MDI1YWY1OTllMzI3MDc5YjI3MjBlZjAwZGYzN2NmYjdjMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDAwNDYwOThkYzVmMmI5OWUzYmMyZWQ2NjQyZDdmMGE2MWVmYWJjMTVjMzhjNzYzMzNiY2NjZWVlZTM2OWE0ZjRhNWJkZGE4ZWE1OTI2NDEyNGU0MjlmMDg2MzI2ODNkZGJhMTdiYmYyNjJkODJiNmJlZmEzYjRlMTQ4MDM3NmE4YzdmM2M3ZDdlMmE2Nzc5YmJmMTgyNjJhYTg1N2RlOGMyMGExMmI2YTJjZThlNGQ3ZjMxZGQxYjE5NTM5MmNmNjE4NWFmY2UzNGFmZTA1ODk2MDU3YjM2ZTliMTcxYjZjNjdlZDdjMjI4NmNiZmE4M2ZmOGExNjdjN2JjNzEwOWFlZTdkN2UxOTA5YmQzODRmYmZjNjE5MzhlZmNhNTFjODk5M2M3MWRiMzE3NzMwZjE2ZTdlNzc2ODY3YWU0ZmRjNTYyZDZmMTVkZTU4NWU3Yjk0ZWY0OTZhMzY3NjM2N2EyY2JhYWI3YjYzNjY0OGIwMDc2YmFkNWNkZjFlMDk3NDBlYzZhNDUxYmZmNTM0ZWZhMjE1MDlmM2JhNzdiODEwMWI5MWVhN2U1NWRkYmZlMTQwMTUxNzA2N2Q3YjAxYTJhMDg3OWYwODg1Yzg5NGE4N2NmYjY4YzRkN2VlODkwNjA0ODgxYWViOTdjMjJkMWYzMzdlZjkyM2UwMzVhNjQwMCIKIAogUEtDUzcgUGFyc2UgRmFpbHVyZSBJbnZhbGlkIEFTTjE6IENoYW5nZSBjb250ZW50cyBvZiB0YWcgMzAgdG8gY29udGFpbiBvbmUgdW5hY2NvdW50ZWQgZXh0cmEgYnl0ZSAjNDMzLjAKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBwa2NzN19hc24xX2ZhaWw6IjMwODIwMzI2MDYwOTJhODY0ODg2ZjcwZDAxMDcwMmEwODIwMzE3MzA4MjAzMTMwMjAxMDEzMTBmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwYjA2MDkyYTg2NDg4NmY3MGQwMTA3MDEzMTgyMDJlZTMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTAyMTQ3YmRlZGRkMjQ0NGNkMWNkZmU1YzQxYTgxMDJjODliN2RmMmU2Y2JmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDA1YmVjZDg3MTk1YzFkZWZmOTBjMjRjOTEyNjliNTViM2YwNjliYzIyNWMzMjZjMzE0YzFhNTE3ODZmZmUxNGM4MzBiZTRlNGJjNzNjYmEzNmM5NzY3N2I0NDE2ODI3OWJlOTFlN2NkZjdjMTkzODZhZTIxODYyNzE5ZDEzYTNhMGZmZjA4MDNkNDYwOTYyZjJjZGE4MzcxNDg0ODczMjUyYzNkNzA1NGRiODE0M2UyYjA4MWEzODE2ZWQwODA0Y2E1MDk5YWU1ZmVjZTgzZDVjMmMzNzgzYjE5ODhiNGI0NmRjOTRlNTU1ODdhMTA3ZWExNTQ2YmYyMmQyOGEwOTdmNjUyYTQwNjZkYzI5NjUyNjkwNjlhZjJmNTE3NmJiOGNlOWNhNmQxMWY5Njc1N2YwMzIwNGY3NTY3MDM1ODdkMDBhZDQyNDc5NmM5MmZjN2FlYjZmNDk0NDMxOTk5ZWRhMzA5OTBlNGY1NzczNjMyZWQyNThmZTAyNzY2NzM1OTlkYTZmY2UzNWNkYWQ3NzI2YTBiYjAyNGNhZDk5NmI4OGUwY2I5ODg1NGNlYjVjMGI2ZWM3NDhkOWY5Y2U2YTZjZDQzNzg1OGJhY2I4MTQ2MThhMjcyZmYzYTQxNWM2ZTA3ZjNkYjA5ODg3NzdmZGVjODQ1YTk3YmY3ZDEwMmRkMDMwODIwMTc0MDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMjAyMTQ1NjRkNTU0MDI1YWY1OTllMzI3MDc5YjI3MjBlZjAwZGYzN2NmYjdjMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDAwNDYwOThkYzVmMmI5OWUzYmMyZWQ2NjQyZDdmMGE2MWVmYWJjMTVjMzhjNzYzMzNiY2NjZWVlZTM2OWE0ZjRhNWJkZGE4ZWE1OTI2NDEyNGU0MjlmMDg2MzI2ODNkZGJhMTdiYmYyNjJkODJiNmJlZmEzYjRlMTQ4MDM3NmE4YzdmM2M3ZDdlMmE2Nzc5YmJmMTgyNjJhYTg1N2RlOGMyMGExMmI2YTJjZThlNGQ3ZjMxZGQxYjE5NTM5MmNmNjE4NWFmY2UzNGFmZTA1ODk2MDU3YjM2ZTliMTcxYjZjNjdlZDdjMjI4NmNiZmE4M2ZmOGExNjdjN2JjNzEwOWFlZTdkN2UxOTA5YmQzODRmYmZjNjE5MzhlZmNhNTFjODk5M2M3MWRiMzE3NzMwZjE2ZTdlNzc2ODY3YWU0ZmRjNTYyZDZmMTVkZTU4NWU3Yjk0ZWY0OTZhMzY3NjM2N2EyY2JhYWI3YjYzNjY0OGIwMDc2YmFkNWNkZjFlMDk3NDBlYzZhNDUxYmZmNTM0ZWZhMjE1MDlmM2JhNzdiODEwMWI5MWVhN2U1NWRkYmZlMTQwMTUxNzA2N2Q3YjAxYTJhMDg3OWYwODg1Yzg5NGE4N2NmYjY4YzRkN2VlODkwNjA0ODgxYWViOTdjMjJkMWYzMzdlZjkyM2UwMzVhNjQwMDAwIgogCiBQS0NTNyBQYXJzZSBGYWlsdXJlIEludmFsaWQgQVNOMTogQ2hhbmdlIGxlbmd0aCBmcm9tIDM3MSB0byAzNzAgIzQzNC4wCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NgogcGtjczdfYXNuMV9mYWlsOiIzMDgyMDMyNjA2MDkyYTg2NDg4NmY3MGQwMTA3MDJhMDgyMDMxNzMwODIwMzEzMDIwMTAxMzEwZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGIwNjA5MmE4NjQ4ODZmNzBkMDEwNzAxMzE4MjAyZWUzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwNWJlY2Q4NzE5NWMxZGVmZjkwYzI0YzkxMjY5YjU1YjNmMDY5YmMyMjVjMzI2YzMxNGMxYTUxNzg2ZmZlMTRjODMwYmU0ZTRiYzczY2JhMzZjOTc2NzdiNDQxNjgyNzliZTkxZTdjZGY3YzE5Mzg2YWUyMTg2MjcxOWQxM2EzYTBmZmYwODAzZDQ2MDk2MmYyY2RhODM3MTQ4NDg3MzI1MmMzZDcwNTRkYjgxNDNlMmIwODFhMzgxNmVkMDgwNGNhNTA5OWFlNWZlY2U4M2Q1YzJjMzc4M2IxOTg4YjRiNDZkYzk0ZTU1NTg3YTEwN2VhMTU0NmJmMjJkMjhhMDk3ZjY1MmE0MDY2ZGMyOTY1MjY5MDY5YWYyZjUxNzZiYjhjZTljYTZkMTFmOTY3NTdmMDMyMDRmNzU2NzAzNTg3ZDAwYWQ0MjQ3OTZjOTJmYzdhZWI2ZjQ5NDQzMTk5OWVkYTMwOTkwZTRmNTc3MzYzMmVkMjU4ZmUwMjc2NjczNTk5ZGE2ZmNlMzVjZGFkNzcyNmEwYmIwMjRjYWQ5OTZiODhlMGNiOTg4NTRjZWI1YzBiNmVjNzQ4ZDlmOWNlNmE2Y2Q0Mzc4NThiYWNiODE0NjE4YTI3MmZmM2E0MTVjNmUwN2YzZGIwOTg4Nzc3ZmRlYzg0NWE5N2JmN2QxMDJkZDAzMDgyMDE3MjAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzIwMjE0NTY0ZDU1NDAyNWFmNTk5ZTMyNzA3OWIyNzIwZWYwMGRmMzdjZmI3YzMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwMDQ2MDk4ZGM1ZjJiOTllM2JjMmVkNjY0MmQ3ZjBhNjFlZmFiYzE1YzM4Yzc2MzMzYmNjY2VlZWUzNjlhNGY0YTViZGRhOGVhNTkyNjQxMjRlNDI5ZjA4NjMyNjgzZGRiYTE3YmJmMjYyZDgyYjZiZWZhM2I0ZTE0ODAzNzZhOGM3ZjNjN2Q3ZTJhNjc3OWJiZjE4MjYyYWE4NTdkZThjMjBhMTJiNmEyY2U4ZTRkN2YzMWRkMWIxOTUzOTJjZjYxODVhZmNlMzRhZmUwNTg5NjA1N2IzNmU5YjE3MWI2YzY3ZWQ3YzIyODZjYmZhODNmZjhhMTY3YzdiYzcxMDlhZWU3ZDdlMTkwOWJkMzg0ZmJmYzYxOTM4ZWZjYTUxYzg5OTNjNzFkYjMxNzczMGYxNmU3ZTc3Njg2N2FlNGZkYzU2MmQ2ZjE1ZGU1ODVlN2I5NGVmNDk2YTM2NzYzNjdhMmNiYWFiN2I2MzY2NDhiMDA3NmJhZDVjZGYxZTA5NzQwZWM2YTQ1MWJmZjUzNGVmYTIxNTA5ZjNiYTc3YjgxMDFiOTFlYTdlNTVkZGJmZTE0MDE1MTcwNjdkN2IwMWEyYTA4NzlmMDg4NWM4OTRhODdjZmI2OGM0ZDdlZTg5MDYwNDg4MWFlYjk3YzIyZDFmMzM3ZWY5MjNlMDM1YTY0MDAiCiAKIFBLQ1M3IFBhcnNlIEZhaWx1cmUgSW52YWxpZCBBU04xOiBDaGFuZ2UgdGFnIDAyIHRvIDA0ICM0MzUuMAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHBrY3M3X2FzbjFfZmFpbDoiMzA4MjAzMjYwNjA5MmE4NjQ4ODZmNzBkMDEwNzAyYTA4MjAzMTczMDgyMDMxMzAyMDEwMTMxMGYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBiMDYwOTJhODY0ODg2ZjcwZDAxMDcwMTMxODIwMmVlMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDViZWNkODcxOTVjMWRlZmY5MGMyNGM5MTI2OWI1NWIzZjA2OWJjMjI1YzMyNmMzMTRjMWE1MTc4NmZmZTE0YzgzMGJlNGU0YmM3M2NiYTM2Yzk3Njc3YjQ0MTY4Mjc5YmU5MWU3Y2RmN2MxOTM4NmFlMjE4NjI3MTlkMTNhM2EwZmZmMDgwM2Q0NjA5NjJmMmNkYTgzNzE0ODQ4NzMyNTJjM2Q3MDU0ZGI4MTQzZTJiMDgxYTM4MTZlZDA4MDRjYTUwOTlhZTVmZWNlODNkNWMyYzM3ODNiMTk4OGI0YjQ2ZGM5NGU1NTU4N2ExMDdlYTE1NDZiZjIyZDI4YTA5N2Y2NTJhNDA2NmRjMjk2NTI2OTA2OWFmMmY1MTc2YmI4Y2U5Y2E2ZDExZjk2NzU3ZjAzMjA0Zjc1NjcwMzU4N2QwMGFkNDI0Nzk2YzkyZmM3YWViNmY0OTQ0MzE5OTllZGEzMDk5MGU0ZjU3NzM2MzJlZDI1OGZlMDI3NjY3MzU5OWRhNmZjZTM1Y2RhZDc3MjZhMGJiMDI0Y2FkOTk2Yjg4ZTBjYjk4ODU0Y2ViNWMwYjZlYzc0OGQ5ZjljZTZhNmNkNDM3ODU4YmFjYjgxNDYxOGEyNzJmZjNhNDE1YzZlMDdmM2RiMDk4ODc3N2ZkZWM4NDVhOTdiZjdkMTAyZGQwMzA4MjAxNzMwNDAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMyMDIxNDU2NGQ1NTQwMjVhZjU5OWUzMjcwNzliMjcyMGVmMDBkZjM3Y2ZiN2MzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDA0NjA5OGRjNWYyYjk5ZTNiYzJlZDY2NDJkN2YwYTYxZWZhYmMxNWMzOGM3NjMzM2JjY2NlZWVlMzY5YTRmNGE1YmRkYThlYTU5MjY0MTI0ZTQyOWYwODYzMjY4M2RkYmExN2JiZjI2MmQ4MmI2YmVmYTNiNGUxNDgwMzc2YThjN2YzYzdkN2UyYTY3NzliYmYxODI2MmFhODU3ZGU4YzIwYTEyYjZhMmNlOGU0ZDdmMzFkZDFiMTk1MzkyY2Y2MTg1YWZjZTM0YWZlMDU4OTYwNTdiMzZlOWIxNzFiNmM2N2VkN2MyMjg2Y2JmYTgzZmY4YTE2N2M3YmM3MTA5YWVlN2Q3ZTE5MDliZDM4NGZiZmM2MTkzOGVmY2E1MWM4OTkzYzcxZGIzMTc3MzBmMTZlN2U3NzY4NjdhZTRmZGM1NjJkNmYxNWRlNTg1ZTdiOTRlZjQ5NmEzNjc2MzY3YTJjYmFhYjdiNjM2NjQ4YjAwNzZiYWQ1Y2RmMWUwOTc0MGVjNmE0NTFiZmY1MzRlZmEyMTUwOWYzYmE3N2I4MTAxYjkxZWE3ZTU1ZGRiZmUxNDAxNTE3MDY3ZDdiMDFhMmEwODc5ZjA4ODVjODk0YTg3Y2ZiNjhjNGQ3ZWU4OTA2MDQ4ODFhZWI5N2MyMmQxZjMzN2VmOTIzZTAzNWE2NDAwIgogCiBQS0NTNyBQYXJzZSBGYWlsdXJlIEludmFsaWQgQVNOMTogQ2hhbmdlIGxlbmd0aCBmcm9tIDEgdG8gMiAjNDM2LjAKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBwa2NzN19hc24xX2ZhaWw6IjMwODIwMzI2MDYwOTJhODY0ODg2ZjcwZDAxMDcwMmEwODIwMzE3MzA4MjAzMTMwMjAxMDEzMTBmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwYjA2MDkyYTg2NDg4NmY3MGQwMTA3MDEzMTgyMDJlZTMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTAyMTQ3YmRlZGRkMjQ0NGNkMWNkZmU1YzQxYTgxMDJjODliN2RmMmU2Y2JmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDA1YmVjZDg3MTk1YzFkZWZmOTBjMjRjOTEyNjliNTViM2YwNjliYzIyNWMzMjZjMzE0YzFhNTE3ODZmZmUxNGM4MzBiZTRlNGJjNzNjYmEzNmM5NzY3N2I0NDE2ODI3OWJlOTFlN2NkZjdjMTkzODZhZTIxODYyNzE5ZDEzYTNhMGZmZjA4MDNkNDYwOTYyZjJjZGE4MzcxNDg0ODczMjUyYzNkNzA1NGRiODE0M2UyYjA4MWEzODE2ZWQwODA0Y2E1MDk5YWU1ZmVjZTgzZDVjMmMzNzgzYjE5ODhiNGI0NmRjOTRlNTU1ODdhMTA3ZWExNTQ2YmYyMmQyOGEwOTdmNjUyYTQwNjZkYzI5NjUyNjkwNjlhZjJmNTE3NmJiOGNlOWNhNmQxMWY5Njc1N2YwMzIwNGY3NTY3MDM1ODdkMDBhZDQyNDc5NmM5MmZjN2FlYjZmNDk0NDMxOTk5ZWRhMzA5OTBlNGY1NzczNjMyZWQyNThmZTAyNzY2NzM1OTlkYTZmY2UzNWNkYWQ3NzI2YTBiYjAyNGNhZDk5NmI4OGUwY2I5ODg1NGNlYjVjMGI2ZWM3NDhkOWY5Y2U2YTZjZDQzNzg1OGJhY2I4MTQ2MThhMjcyZmYzYTQxNWM2ZTA3ZjNkYjA5ODg3NzdmZGVjODQ1YTk3YmY3ZDEwMmRkMDMwODIwMTczMDIwMjAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMjAyMTQ1NjRkNTU0MDI1YWY1OTllMzI3MDc5YjI3MjBlZjAwZGYzN2NmYjdjMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDAwNDYwOThkYzVmMmI5OWUzYmMyZWQ2NjQyZDdmMGE2MWVmYWJjMTVjMzhjNzYzMzNiY2NjZWVlZTM2OWE0ZjRhNWJkZGE4ZWE1OTI2NDEyNGU0MjlmMDg2MzI2ODNkZGJhMTdiYmYyNjJkODJiNmJlZmEzYjRlMTQ4MDM3NmE4YzdmM2M3ZDdlMmE2Nzc5YmJmMTgyNjJhYTg1N2RlOGMyMGExMmI2YTJjZThlNGQ3ZjMxZGQxYjE5NTM5MmNmNjE4NWFmY2UzNGFmZTA1ODk2MDU3YjM2ZTliMTcxYjZjNjdlZDdjMjI4NmNiZmE4M2ZmOGExNjdjN2JjNzEwOWFlZTdkN2UxOTA5YmQzODRmYmZjNjE5MzhlZmNhNTFjODk5M2M3MWRiMzE3NzMwZjE2ZTdlNzc2ODY3YWU0ZmRjNTYyZDZmMTVkZTU4NWU3Yjk0ZWY0OTZhMzY3NjM2N2EyY2JhYWI3YjYzNjY0OGIwMDc2YmFkNWNkZjFlMDk3NDBlYzZhNDUxYmZmNTM0ZWZhMjE1MDlmM2JhNzdiODEwMWI5MWVhN2U1NWRkYmZlMTQwMTUxNzA2N2Q3YjAxYTJhMDg3OWYwODg1Yzg5NGE4N2NmYjY4YzRkN2VlODkwNjA0ODgxYWViOTdjMjJkMWYzMzdlZjkyM2UwMzVhNjQwMCIKIAogUEtDUzcgUGFyc2UgRmFpbHVyZSBJbnZhbGlkIEFTTjE6IENoYW5nZSBsZW5ndGggZnJvbSAxIHRvIDAgIzQzNy4wCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NgogcGtjczdfYXNuMV9mYWlsOiIzMDgyMDMyNjA2MDkyYTg2NDg4NmY3MGQwMTA3MDJhMDgyMDMxNzMwODIwMzEzMDIwMTAxMzEwZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGIwNjA5MmE4NjQ4ODZmNzBkMDEwNzAxMzE4MjAyZWUzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwNWJlY2Q4NzE5NWMxZGVmZjkwYzI0YzkxMjY5YjU1YjNmMDY5YmMyMjVjMzI2YzMxNGMxYTUxNzg2ZmZlMTRjODMwYmU0ZTRiYzczY2JhMzZjOTc2NzdiNDQxNjgyNzliZTkxZTdjZGY3YzE5Mzg2YWUyMTg2MjcxOWQxM2EzYTBmZmYwODAzZDQ2MDk2MmYyY2RhODM3MTQ4NDg3MzI1MmMzZDcwNTRkYjgxNDNlMmIwODFhMzgxNmVkMDgwNGNhNTA5OWFlNWZlY2U4M2Q1YzJjMzc4M2IxOTg4YjRiNDZkYzk0ZTU1NTg3YTEwN2VhMTU0NmJmMjJkMjhhMDk3ZjY1MmE0MDY2ZGMyOTY1MjY5MDY5YWYyZjUxNzZiYjhjZTljYTZkMTFmOTY3NTdmMDMyMDRmNzU2NzAzNTg3ZDAwYWQ0MjQ3OTZjOTJmYzdhZWI2ZjQ5NDQzMTk5OWVkYTMwOTkwZTRmNTc3MzYzMmVkMjU4ZmUwMjc2NjczNTk5ZGE2ZmNlMzVjZGFkNzcyNmEwYmIwMjRjYWQ5OTZiODhlMGNiOTg4NTRjZWI1YzBiNmVjNzQ4ZDlmOWNlNmE2Y2Q0Mzc4NThiYWNiODE0NjE4YTI3MmZmM2E0MTVjNmUwN2YzZGIwOTg4Nzc3ZmRlYzg0NWE5N2JmN2QxMDJkZDAzMDgyMDE3MzAyMDAwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzIwMjE0NTY0ZDU1NDAyNWFmNTk5ZTMyNzA3OWIyNzIwZWYwMGRmMzdjZmI3YzMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwMDQ2MDk4ZGM1ZjJiOTllM2JjMmVkNjY0MmQ3ZjBhNjFlZmFiYzE1YzM4Yzc2MzMzYmNjY2VlZWUzNjlhNGY0YTViZGRhOGVhNTkyNjQxMjRlNDI5ZjA4NjMyNjgzZGRiYTE3YmJmMjYyZDgyYjZiZWZhM2I0ZTE0ODAzNzZhOGM3ZjNjN2Q3ZTJhNjc3OWJiZjE4MjYyYWE4NTdkZThjMjBhMTJiNmEyY2U4ZTRkN2YzMWRkMWIxOTUzOTJjZjYxODVhZmNlMzRhZmUwNTg5NjA1N2IzNmU5YjE3MWI2YzY3ZWQ3YzIyODZjYmZhODNmZjhhMTY3YzdiYzcxMDlhZWU3ZDdlMTkwOWJkMzg0ZmJmYzYxOTM4ZWZjYTUxYzg5OTNjNzFkYjMxNzczMGYxNmU3ZTc3Njg2N2FlNGZkYzU2MmQ2ZjE1ZGU1ODVlN2I5NGVmNDk2YTM2NzYzNjdhMmNiYWFiN2I2MzY2NDhiMDA3NmJhZDVjZGYxZTA5NzQwZWM2YTQ1MWJmZjUzNGVmYTIxNTA5ZjNiYTc3YjgxMDFiOTFlYTdlNTVkZGJmZTE0MDE1MTcwNjdkN2IwMWEyYTA4NzlmMDg4NWM4OTRhODdjZmI2OGM0ZDdlZTg5MDYwNDg4MWFlYjk3YzIyZDFmMzM3ZWY5MjNlMDM1YTY0MDAiCiAKIFBLQ1M3IFBhcnNlIEZhaWx1cmUgSW52YWxpZCBBU04xOiBDaGFuZ2UgdGFnIDMwIHRvIDAyICM0MzguMAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHBrY3M3X2FzbjFfZmFpbDoiMzA4MjAzMjYwNjA5MmE4NjQ4ODZmNzBkMDEwNzAyYTA4MjAzMTczMDgyMDMxMzAyMDEwMTMxMGYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBiMDYwOTJhODY0ODg2ZjcwZDAxMDcwMTMxODIwMmVlMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDViZWNkODcxOTVjMWRlZmY5MGMyNGM5MTI2OWI1NWIzZjA2OWJjMjI1YzMyNmMzMTRjMWE1MTc4NmZmZTE0YzgzMGJlNGU0YmM3M2NiYTM2Yzk3Njc3YjQ0MTY4Mjc5YmU5MWU3Y2RmN2MxOTM4NmFlMjE4NjI3MTlkMTNhM2EwZmZmMDgwM2Q0NjA5NjJmMmNkYTgzNzE0ODQ4NzMyNTJjM2Q3MDU0ZGI4MTQzZTJiMDgxYTM4MTZlZDA4MDRjYTUwOTlhZTVmZWNlODNkNWMyYzM3ODNiMTk4OGI0YjQ2ZGM5NGU1NTU4N2ExMDdlYTE1NDZiZjIyZDI4YTA5N2Y2NTJhNDA2NmRjMjk2NTI2OTA2OWFmMmY1MTc2YmI4Y2U5Y2E2ZDExZjk2NzU3ZjAzMjA0Zjc1NjcwMzU4N2QwMGFkNDI0Nzk2YzkyZmM3YWViNmY0OTQ0MzE5OTllZGEzMDk5MGU0ZjU3NzM2MzJlZDI1OGZlMDI3NjY3MzU5OWRhNmZjZTM1Y2RhZDc3MjZhMGJiMDI0Y2FkOTk2Yjg4ZTBjYjk4ODU0Y2ViNWMwYjZlYzc0OGQ5ZjljZTZhNmNkNDM3ODU4YmFjYjgxNDYxOGEyNzJmZjNhNDE1YzZlMDdmM2RiMDk4ODc3N2ZkZWM4NDVhOTdiZjdkMTAyZGQwMzA4MjAxNzMwMjAxMDEwMjRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMyMDIxNDU2NGQ1NTQwMjVhZjU5OWUzMjcwNzliMjcyMGVmMDBkZjM3Y2ZiN2MzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDA0NjA5OGRjNWYyYjk5ZTNiYzJlZDY2NDJkN2YwYTYxZWZhYmMxNWMzOGM3NjMzM2JjY2NlZWVlMzY5YTRmNGE1YmRkYThlYTU5MjY0MTI0ZTQyOWYwODYzMjY4M2RkYmExN2JiZjI2MmQ4MmI2YmVmYTNiNGUxNDgwMzc2YThjN2YzYzdkN2UyYTY3NzliYmYxODI2MmFhODU3ZGU4YzIwYTEyYjZhMmNlOGU0ZDdmMzFkZDFiMTk1MzkyY2Y2MTg1YWZjZTM0YWZlMDU4OTYwNTdiMzZlOWIxNzFiNmM2N2VkN2MyMjg2Y2JmYTgzZmY4YTE2N2M3YmM3MTA5YWVlN2Q3ZTE5MDliZDM4NGZiZmM2MTkzOGVmY2E1MWM4OTkzYzcxZGIzMTc3MzBmMTZlN2U3NzY4NjdhZTRmZGM1NjJkNmYxNWRlNTg1ZTdiOTRlZjQ5NmEzNjc2MzY3YTJjYmFhYjdiNjM2NjQ4YjAwNzZiYWQ1Y2RmMWUwOTc0MGVjNmE0NTFiZmY1MzRlZmEyMTUwOWYzYmE3N2I4MTAxYjkxZWE3ZTU1ZGRiZmUxNDAxNTE3MDY3ZDdiMDFhMmEwODc5ZjA4ODVjODk0YTg3Y2ZiNjhjNGQ3ZWU4OTA2MDQ4ODFhZWI5N2MyMmQxZjMzN2VmOTIzZTAzNWE2NDAwIgogCiBQS0NTNyBQYXJzZSBGYWlsdXJlIEludmFsaWQgQVNOMTogQ2hhbmdlIGxlbmd0aCBmcm9tIDc2IHRvIDc3ICM0MzkuMAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHBrY3M3X2FzbjFfZmFpbDoiMzA4MjAzMjYwNjA5MmE4NjQ4ODZmNzBkMDEwNzAyYTA4MjAzMTczMDgyMDMxMzAyMDEwMTMxMGYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBiMDYwOTJhODY0ODg2ZjcwZDAxMDcwMTMxODIwMmVlMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDViZWNkODcxOTVjMWRlZmY5MGMyNGM5MTI2OWI1NWIzZjA2OWJjMjI1YzMyNmMzMTRjMWE1MTc4NmZmZTE0YzgzMGJlNGU0YmM3M2NiYTM2Yzk3Njc3YjQ0MTY4Mjc5YmU5MWU3Y2RmN2MxOTM4NmFlMjE4NjI3MTlkMTNhM2EwZmZmMDgwM2Q0NjA5NjJmMmNkYTgzNzE0ODQ4NzMyNTJjM2Q3MDU0ZGI4MTQzZTJiMDgxYTM4MTZlZDA4MDRjYTUwOTlhZTVmZWNlODNkNWMyYzM3ODNiMTk4OGI0YjQ2ZGM5NGU1NTU4N2ExMDdlYTE1NDZiZjIyZDI4YTA5N2Y2NTJhNDA2NmRjMjk2NTI2OTA2OWFmMmY1MTc2YmI4Y2U5Y2E2ZDExZjk2NzU3ZjAzMjA0Zjc1NjcwMzU4N2QwMGFkNDI0Nzk2YzkyZmM3YWViNmY0OTQ0MzE5OTllZGEzMDk5MGU0ZjU3NzM2MzJlZDI1OGZlMDI3NjY3MzU5OWRhNmZjZTM1Y2RhZDc3MjZhMGJiMDI0Y2FkOTk2Yjg4ZTBjYjk4ODU0Y2ViNWMwYjZlYzc0OGQ5ZjljZTZhNmNkNDM3ODU4YmFjYjgxNDYxOGEyNzJmZjNhNDE1YzZlMDdmM2RiMDk4ODc3N2ZkZWM4NDVhOTdiZjdkMTAyZGQwMzA4MjAxNzMwMjAxMDEzMDRkMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMyMDIxNDU2NGQ1NTQwMjVhZjU5OWUzMjcwNzliMjcyMGVmMDBkZjM3Y2ZiN2MzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDA0NjA5OGRjNWYyYjk5ZTNiYzJlZDY2NDJkN2YwYTYxZWZhYmMxNWMzOGM3NjMzM2JjY2NlZWVlMzY5YTRmNGE1YmRkYThlYTU5MjY0MTI0ZTQyOWYwODYzMjY4M2RkYmExN2JiZjI2MmQ4MmI2YmVmYTNiNGUxNDgwMzc2YThjN2YzYzdkN2UyYTY3NzliYmYxODI2MmFhODU3ZGU4YzIwYTEyYjZhMmNlOGU0ZDdmMzFkZDFiMTk1MzkyY2Y2MTg1YWZjZTM0YWZlMDU4OTYwNTdiMzZlOWIxNzFiNmM2N2VkN2MyMjg2Y2JmYTgzZmY4YTE2N2M3YmM3MTA5YWVlN2Q3ZTE5MDliZDM4NGZiZmM2MTkzOGVmY2E1MWM4OTkzYzcxZGIzMTc3MzBmMTZlN2U3NzY4NjdhZTRmZGM1NjJkNmYxNWRlNTg1ZTdiOTRlZjQ5NmEzNjc2MzY3YTJjYmFhYjdiNjM2NjQ4YjAwNzZiYWQ1Y2RmMWUwOTc0MGVjNmE0NTFiZmY1MzRlZmEyMTUwOWYzYmE3N2I4MTAxYjkxZWE3ZTU1ZGRiZmUxNDAxNTE3MDY3ZDdiMDFhMmEwODc5ZjA4ODVjODk0YTg3Y2ZiNjhjNGQ3ZWU4OTA2MDQ4ODFhZWI5N2MyMmQxZjMzN2VmOTIzZTAzNWE2NDAwIgogCiBQS0NTNyBQYXJzZSBGYWlsdXJlIEludmFsaWQgQVNOMTogQ2hhbmdlIGNvbnRlbnRzIG9mIHRhZyAzMCB0byBjb250YWluIG9uZSB1bmFjY291bnRlZCBleHRyYSBieXRlICM0NDAuMAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHBrY3M3X2FzbjFfZmFpbDoiMzA4MjAzMjYwNjA5MmE4NjQ4ODZmNzBkMDEwNzAyYTA4MjAzMTczMDgyMDMxMzAyMDEwMTMxMGYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBiMDYwOTJhODY0ODg2ZjcwZDAxMDcwMTMxODIwMmVlMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDViZWNkODcxOTVjMWRlZmY5MGMyNGM5MTI2OWI1NWIzZjA2OWJjMjI1YzMyNmMzMTRjMWE1MTc4NmZmZTE0YzgzMGJlNGU0YmM3M2NiYTM2Yzk3Njc3YjQ0MTY4Mjc5YmU5MWU3Y2RmN2MxOTM4NmFlMjE4NjI3MTlkMTNhM2EwZmZmMDgwM2Q0NjA5NjJmMmNkYTgzNzE0ODQ4NzMyNTJjM2Q3MDU0ZGI4MTQzZTJiMDgxYTM4MTZlZDA4MDRjYTUwOTlhZTVmZWNlODNkNWMyYzM3ODNiMTk4OGI0YjQ2ZGM5NGU1NTU4N2ExMDdlYTE1NDZiZjIyZDI4YTA5N2Y2NTJhNDA2NmRjMjk2NTI2OTA2OWFmMmY1MTc2YmI4Y2U5Y2E2ZDExZjk2NzU3ZjAzMjA0Zjc1NjcwMzU4N2QwMGFkNDI0Nzk2YzkyZmM3YWViNmY0OTQ0MzE5OTllZGEzMDk5MGU0ZjU3NzM2MzJlZDI1OGZlMDI3NjY3MzU5OWRhNmZjZTM1Y2RhZDc3MjZhMGJiMDI0Y2FkOTk2Yjg4ZTBjYjk4ODU0Y2ViNWMwYjZlYzc0OGQ5ZjljZTZhNmNkNDM3ODU4YmFjYjgxNDYxOGEyNzJmZjNhNDE1YzZlMDdmM2RiMDk4ODc3N2ZkZWM4NDVhOTdiZjdkMTAyZGQwMzA4MjAxNzMwMjAxMDEzMDRkMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMyMDIxNDU2NGQ1NTQwMjVhZjU5OWUzMjcwNzliMjcyMGVmMDBkZjM3Y2ZiN2MwMDMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwMDQ2MDk4ZGM1ZjJiOTllM2JjMmVkNjY0MmQ3ZjBhNjFlZmFiYzE1YzM4Yzc2MzMzYmNjY2VlZWUzNjlhNGY0YTViZGRhOGVhNTkyNjQxMjRlNDI5ZjA4NjMyNjgzZGRiYTE3YmJmMjYyZDgyYjZiZWZhM2I0ZTE0ODAzNzZhOGM3ZjNjN2Q3ZTJhNjc3OWJiZjE4MjYyYWE4NTdkZThjMjBhMTJiNmEyY2U4ZTRkN2YzMWRkMWIxOTUzOTJjZjYxODVhZmNlMzRhZmUwNTg5NjA1N2IzNmU5YjE3MWI2YzY3ZWQ3YzIyODZjYmZhODNmZjhhMTY3YzdiYzcxMDlhZWU3ZDdlMTkwOWJkMzg0ZmJmYzYxOTM4ZWZjYTUxYzg5OTNjNzFkYjMxNzczMGYxNmU3ZTc3Njg2N2FlNGZkYzU2MmQ2ZjE1ZGU1ODVlN2I5NGVmNDk2YTM2NzYzNjdhMmNiYWFiN2I2MzY2NDhiMDA3NmJhZDVjZGYxZTA5NzQwZWM2YTQ1MWJmZjUzNGVmYTIxNTA5ZjNiYTc3YjgxMDFiOTFlYTdlNTVkZGJmZTE0MDE1MTcwNjdkN2IwMWEyYTA4NzlmMDg4NWM4OTRhODdjZmI2OGM0ZDdlZTg5MDYwNDg4MWFlYjk3YzIyZDFmMzM3ZWY5MjNlMDM1YTY0MDAiCiAKIFBLQ1M3IFBhcnNlIEZhaWx1cmUgSW52YWxpZCBBU04xOiBDaGFuZ2UgbGVuZ3RoIGZyb20gNzYgdG8gNzUgIzQ0MS4wCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NgogcGtjczdfYXNuMV9mYWlsOiIzMDgyMDMyNjA2MDkyYTg2NDg4NmY3MGQwMTA3MDJhMDgyMDMxNzMwODIwMzEzMDIwMTAxMzEwZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGIwNjA5MmE4NjQ4ODZmNzBkMDEwNzAxMzE4MjAyZWUzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwNWJlY2Q4NzE5NWMxZGVmZjkwYzI0YzkxMjY5YjU1YjNmMDY5YmMyMjVjMzI2YzMxNGMxYTUxNzg2ZmZlMTRjODMwYmU0ZTRiYzczY2JhMzZjOTc2NzdiNDQxNjgyNzliZTkxZTdjZGY3YzE5Mzg2YWUyMTg2MjcxOWQxM2EzYTBmZmYwODAzZDQ2MDk2MmYyY2RhODM3MTQ4NDg3MzI1MmMzZDcwNTRkYjgxNDNlMmIwODFhMzgxNmVkMDgwNGNhNTA5OWFlNWZlY2U4M2Q1YzJjMzc4M2IxOTg4YjRiNDZkYzk0ZTU1NTg3YTEwN2VhMTU0NmJmMjJkMjhhMDk3ZjY1MmE0MDY2ZGMyOTY1MjY5MDY5YWYyZjUxNzZiYjhjZTljYTZkMTFmOTY3NTdmMDMyMDRmNzU2NzAzNTg3ZDAwYWQ0MjQ3OTZjOTJmYzdhZWI2ZjQ5NDQzMTk5OWVkYTMwOTkwZTRmNTc3MzYzMmVkMjU4ZmUwMjc2NjczNTk5ZGE2ZmNlMzVjZGFkNzcyNmEwYmIwMjRjYWQ5OTZiODhlMGNiOTg4NTRjZWI1YzBiNmVjNzQ4ZDlmOWNlNmE2Y2Q0Mzc4NThiYWNiODE0NjE4YTI3MmZmM2E0MTVjNmUwN2YzZGIwOTg4Nzc3ZmRlYzg0NWE5N2JmN2QxMDJkZDAzMDgyMDE3MzAyMDEwMTMwNGIzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzIwMjE0NTY0ZDU1NDAyNWFmNTk5ZTMyNzA3OWIyNzIwZWYwMGRmMzdjZmI3YzMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwMDQ2MDk4ZGM1ZjJiOTllM2JjMmVkNjY0MmQ3ZjBhNjFlZmFiYzE1YzM4Yzc2MzMzYmNjY2VlZWUzNjlhNGY0YTViZGRhOGVhNTkyNjQxMjRlNDI5ZjA4NjMyNjgzZGRiYTE3YmJmMjYyZDgyYjZiZWZhM2I0ZTE0ODAzNzZhOGM3ZjNjN2Q3ZTJhNjc3OWJiZjE4MjYyYWE4NTdkZThjMjBhMTJiNmEyY2U4ZTRkN2YzMWRkMWIxOTUzOTJjZjYxODVhZmNlMzRhZmUwNTg5NjA1N2IzNmU5YjE3MWI2YzY3ZWQ3YzIyODZjYmZhODNmZjhhMTY3YzdiYzcxMDlhZWU3ZDdlMTkwOWJkMzg0ZmJmYzYxOTM4ZWZjYTUxYzg5OTNjNzFkYjMxNzczMGYxNmU3ZTc3Njg2N2FlNGZkYzU2MmQ2ZjE1ZGU1ODVlN2I5NGVmNDk2YTM2NzYzNjdhMmNiYWFiN2I2MzY2NDhiMDA3NmJhZDVjZGYxZTA5NzQwZWM2YTQ1MWJmZjUzNGVmYTIxNTA5ZjNiYTc3YjgxMDFiOTFlYTdlNTVkZGJmZTE0MDE1MTcwNjdkN2IwMWEyYTA4NzlmMDg4NWM4OTRhODdjZmI2OGM0ZDdlZTg5MDYwNDg4MWFlYjk3YzIyZDFmMzM3ZWY5MjNlMDM1YTY0MDAiCiAKIFBLQ1M3IFBhcnNlIEZhaWx1cmUgSW52YWxpZCBBU04xOiBDaGFuZ2UgdGFnIDMwIHRvIDAyICM0NDIuMAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHBrY3M3X2FzbjFfZmFpbDoiMzA4MjAzMjYwNjA5MmE4NjQ4ODZmNzBkMDEwNzAyYTA4MjAzMTczMDgyMDMxMzAyMDEwMTMxMGYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBiMDYwOTJhODY0ODg2ZjcwZDAxMDcwMTMxODIwMmVlMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDViZWNkODcxOTVjMWRlZmY5MGMyNGM5MTI2OWI1NWIzZjA2OWJjMjI1YzMyNmMzMTRjMWE1MTc4NmZmZTE0YzgzMGJlNGU0YmM3M2NiYTM2Yzk3Njc3YjQ0MTY4Mjc5YmU5MWU3Y2RmN2MxOTM4NmFlMjE4NjI3MTlkMTNhM2EwZmZmMDgwM2Q0NjA5NjJmMmNkYTgzNzE0ODQ4NzMyNTJjM2Q3MDU0ZGI4MTQzZTJiMDgxYTM4MTZlZDA4MDRjYTUwOTlhZTVmZWNlODNkNWMyYzM3ODNiMTk4OGI0YjQ2ZGM5NGU1NTU4N2ExMDdlYTE1NDZiZjIyZDI4YTA5N2Y2NTJhNDA2NmRjMjk2NTI2OTA2OWFmMmY1MTc2YmI4Y2U5Y2E2ZDExZjk2NzU3ZjAzMjA0Zjc1NjcwMzU4N2QwMGFkNDI0Nzk2YzkyZmM3YWViNmY0OTQ0MzE5OTllZGEzMDk5MGU0ZjU3NzM2MzJlZDI1OGZlMDI3NjY3MzU5OWRhNmZjZTM1Y2RhZDc3MjZhMGJiMDI0Y2FkOTk2Yjg4ZTBjYjk4ODU0Y2ViNWMwYjZlYzc0OGQ5ZjljZTZhNmNkNDM3ODU4YmFjYjgxNDYxOGEyNzJmZjNhNDE1YzZlMDdmM2RiMDk4ODc3N2ZkZWM4NDVhOTdiZjdkMTAyZGQwMzA4MjAxNzMwMjAxMDEzMDRjMDIzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMyMDIxNDU2NGQ1NTQwMjVhZjU5OWUzMjcwNzliMjcyMGVmMDBkZjM3Y2ZiN2MzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDA0NjA5OGRjNWYyYjk5ZTNiYzJlZDY2NDJkN2YwYTYxZWZhYmMxNWMzOGM3NjMzM2JjY2NlZWVlMzY5YTRmNGE1YmRkYThlYTU5MjY0MTI0ZTQyOWYwODYzMjY4M2RkYmExN2JiZjI2MmQ4MmI2YmVmYTNiNGUxNDgwMzc2YThjN2YzYzdkN2UyYTY3NzliYmYxODI2MmFhODU3ZGU4YzIwYTEyYjZhMmNlOGU0ZDdmMzFkZDFiMTk1MzkyY2Y2MTg1YWZjZTM0YWZlMDU4OTYwNTdiMzZlOWIxNzFiNmM2N2VkN2MyMjg2Y2JmYTgzZmY4YTE2N2M3YmM3MTA5YWVlN2Q3ZTE5MDliZDM4NGZiZmM2MTkzOGVmY2E1MWM4OTkzYzcxZGIzMTc3MzBmMTZlN2U3NzY4NjdhZTRmZGM1NjJkNmYxNWRlNTg1ZTdiOTRlZjQ5NmEzNjc2MzY3YTJjYmFhYjdiNjM2NjQ4YjAwNzZiYWQ1Y2RmMWUwOTc0MGVjNmE0NTFiZmY1MzRlZmEyMTUwOWYzYmE3N2I4MTAxYjkxZWE3ZTU1ZGRiZmUxNDAxNTE3MDY3ZDdiMDFhMmEwODc5ZjA4ODVjODk0YTg3Y2ZiNjhjNGQ3ZWU4OTA2MDQ4ODFhZWI5N2MyMmQxZjMzN2VmOTIzZTAzNWE2NDAwIgogCiBQS0NTNyBQYXJzZSBGYWlsdXJlIEludmFsaWQgQVNOMTogQ2hhbmdlIGxlbmd0aCBmcm9tIDUyIHRvIDUzICM0NDMuMAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHBrY3M3X2FzbjFfZmFpbDoiMzA4MjAzMjYwNjA5MmE4NjQ4ODZmNzBkMDEwNzAyYTA4MjAzMTczMDgyMDMxMzAyMDEwMTMxMGYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBiMDYwOTJhODY0ODg2ZjcwZDAxMDcwMTMxODIwMmVlMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDViZWNkODcxOTVjMWRlZmY5MGMyNGM5MTI2OWI1NWIzZjA2OWJjMjI1YzMyNmMzMTRjMWE1MTc4NmZmZTE0YzgzMGJlNGU0YmM3M2NiYTM2Yzk3Njc3YjQ0MTY4Mjc5YmU5MWU3Y2RmN2MxOTM4NmFlMjE4NjI3MTlkMTNhM2EwZmZmMDgwM2Q0NjA5NjJmMmNkYTgzNzE0ODQ4NzMyNTJjM2Q3MDU0ZGI4MTQzZTJiMDgxYTM4MTZlZDA4MDRjYTUwOTlhZTVmZWNlODNkNWMyYzM3ODNiMTk4OGI0YjQ2ZGM5NGU1NTU4N2ExMDdlYTE1NDZiZjIyZDI4YTA5N2Y2NTJhNDA2NmRjMjk2NTI2OTA2OWFmMmY1MTc2YmI4Y2U5Y2E2ZDExZjk2NzU3ZjAzMjA0Zjc1NjcwMzU4N2QwMGFkNDI0Nzk2YzkyZmM3YWViNmY0OTQ0MzE5OTllZGEzMDk5MGU0ZjU3NzM2MzJlZDI1OGZlMDI3NjY3MzU5OWRhNmZjZTM1Y2RhZDc3MjZhMGJiMDI0Y2FkOTk2Yjg4ZTBjYjk4ODU0Y2ViNWMwYjZlYzc0OGQ5ZjljZTZhNmNkNDM3ODU4YmFjYjgxNDYxOGEyNzJmZjNhNDE1YzZlMDdmM2RiMDk4ODc3N2ZkZWM4NDVhOTdiZjdkMTAyZGQwMzA4MjAxNzMwMjAxMDEzMDRjMzAzNTMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMyMDIxNDU2NGQ1NTQwMjVhZjU5OWUzMjcwNzliMjcyMGVmMDBkZjM3Y2ZiN2MzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDA0NjA5OGRjNWYyYjk5ZTNiYzJlZDY2NDJkN2YwYTYxZWZhYmMxNWMzOGM3NjMzM2JjY2NlZWVlMzY5YTRmNGE1YmRkYThlYTU5MjY0MTI0ZTQyOWYwODYzMjY4M2RkYmExN2JiZjI2MmQ4MmI2YmVmYTNiNGUxNDgwMzc2YThjN2YzYzdkN2UyYTY3NzliYmYxODI2MmFhODU3ZGU4YzIwYTEyYjZhMmNlOGU0ZDdmMzFkZDFiMTk1MzkyY2Y2MTg1YWZjZTM0YWZlMDU4OTYwNTdiMzZlOWIxNzFiNmM2N2VkN2MyMjg2Y2JmYTgzZmY4YTE2N2M3YmM3MTA5YWVlN2Q3ZTE5MDliZDM4NGZiZmM2MTkzOGVmY2E1MWM4OTkzYzcxZGIzMTc3MzBmMTZlN2U3NzY4NjdhZTRmZGM1NjJkNmYxNWRlNTg1ZTdiOTRlZjQ5NmEzNjc2MzY3YTJjYmFhYjdiNjM2NjQ4YjAwNzZiYWQ1Y2RmMWUwOTc0MGVjNmE0NTFiZmY1MzRlZmEyMTUwOWYzYmE3N2I4MTAxYjkxZWE3ZTU1ZGRiZmUxNDAxNTE3MDY3ZDdiMDFhMmEwODc5ZjA4ODVjODk0YTg3Y2ZiNjhjNGQ3ZWU4OTA2MDQ4ODFhZWI5N2MyMmQxZjMzN2VmOTIzZTAzNWE2NDAwIgogCiBQS0NTNyBQYXJzZSBGYWlsdXJlIEludmFsaWQgQVNOMTogQ2hhbmdlIGNvbnRlbnRzIG9mIHRhZyAzMCB0byBjb250YWluIG9uZSB1bmFjY291bnRlZCBleHRyYSBieXRlICM0NDQuMAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHBrY3M3X2FzbjFfZmFpbDoiMzA4MjAzMjYwNjA5MmE4NjQ4ODZmNzBkMDEwNzAyYTA4MjAzMTczMDgyMDMxMzAyMDEwMTMxMGYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBiMDYwOTJhODY0ODg2ZjcwZDAxMDcwMTMxODIwMmVlMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDViZWNkODcxOTVjMWRlZmY5MGMyNGM5MTI2OWI1NWIzZjA2OWJjMjI1YzMyNmMzMTRjMWE1MTc4NmZmZTE0YzgzMGJlNGU0YmM3M2NiYTM2Yzk3Njc3YjQ0MTY4Mjc5YmU5MWU3Y2RmN2MxOTM4NmFlMjE4NjI3MTlkMTNhM2EwZmZmMDgwM2Q0NjA5NjJmMmNkYTgzNzE0ODQ4NzMyNTJjM2Q3MDU0ZGI4MTQzZTJiMDgxYTM4MTZlZDA4MDRjYTUwOTlhZTVmZWNlODNkNWMyYzM3ODNiMTk4OGI0YjQ2ZGM5NGU1NTU4N2ExMDdlYTE1NDZiZjIyZDI4YTA5N2Y2NTJhNDA2NmRjMjk2NTI2OTA2OWFmMmY1MTc2YmI4Y2U5Y2E2ZDExZjk2NzU3ZjAzMjA0Zjc1NjcwMzU4N2QwMGFkNDI0Nzk2YzkyZmM3YWViNmY0OTQ0MzE5OTllZGEzMDk5MGU0ZjU3NzM2MzJlZDI1OGZlMDI3NjY3MzU5OWRhNmZjZTM1Y2RhZDc3MjZhMGJiMDI0Y2FkOTk2Yjg4ZTBjYjk4ODU0Y2ViNWMwYjZlYzc0OGQ5ZjljZTZhNmNkNDM3ODU4YmFjYjgxNDYxOGEyNzJmZjNhNDE1YzZlMDdmM2RiMDk4ODc3N2ZkZWM4NDVhOTdiZjdkMTAyZGQwMzA4MjAxNzMwMjAxMDEzMDRjMzAzNTMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMyMDAwMjE0NTY0ZDU1NDAyNWFmNTk5ZTMyNzA3OWIyNzIwZWYwMGRmMzdjZmI3YzMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwMDQ2MDk4ZGM1ZjJiOTllM2JjMmVkNjY0MmQ3ZjBhNjFlZmFiYzE1YzM4Yzc2MzMzYmNjY2VlZWUzNjlhNGY0YTViZGRhOGVhNTkyNjQxMjRlNDI5ZjA4NjMyNjgzZGRiYTE3YmJmMjYyZDgyYjZiZWZhM2I0ZTE0ODAzNzZhOGM3ZjNjN2Q3ZTJhNjc3OWJiZjE4MjYyYWE4NTdkZThjMjBhMTJiNmEyY2U4ZTRkN2YzMWRkMWIxOTUzOTJjZjYxODVhZmNlMzRhZmUwNTg5NjA1N2IzNmU5YjE3MWI2YzY3ZWQ3YzIyODZjYmZhODNmZjhhMTY3YzdiYzcxMDlhZWU3ZDdlMTkwOWJkMzg0ZmJmYzYxOTM4ZWZjYTUxYzg5OTNjNzFkYjMxNzczMGYxNmU3ZTc3Njg2N2FlNGZkYzU2MmQ2ZjE1ZGU1ODVlN2I5NGVmNDk2YTM2NzYzNjdhMmNiYWFiN2I2MzY2NDhiMDA3NmJhZDVjZGYxZTA5NzQwZWM2YTQ1MWJmZjUzNGVmYTIxNTA5ZjNiYTc3YjgxMDFiOTFlYTdlNTVkZGJmZTE0MDE1MTcwNjdkN2IwMWEyYTA4NzlmMDg4NWM4OTRhODdjZmI2OGM0ZDdlZTg5MDYwNDg4MWFlYjk3YzIyZDFmMzM3ZWY5MjNlMDM1YTY0MDAiCiAKIFBLQ1M3IFBhcnNlIEZhaWx1cmUgSW52YWxpZCBBU04xOiBDaGFuZ2UgbGVuZ3RoIGZyb20gNTIgdG8gNTEgIzQ0NS4wCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NgogcGtjczdfYXNuMV9mYWlsOiIzMDgyMDMyNjA2MDkyYTg2NDg4NmY3MGQwMTA3MDJhMDgyMDMxNzMwODIwMzEzMDIwMTAxMzEwZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGIwNjA5MmE4NjQ4ODZmNzBkMDEwNzAxMzE4MjAyZWUzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwNWJlY2Q4NzE5NWMxZGVmZjkwYzI0YzkxMjY5YjU1YjNmMDY5YmMyMjVjMzI2YzMxNGMxYTUxNzg2ZmZlMTRjODMwYmU0ZTRiYzczY2JhMzZjOTc2NzdiNDQxNjgyNzliZTkxZTdjZGY3YzE5Mzg2YWUyMTg2MjcxOWQxM2EzYTBmZmYwODAzZDQ2MDk2MmYyY2RhODM3MTQ4NDg3MzI1MmMzZDcwNTRkYjgxNDNlMmIwODFhMzgxNmVkMDgwNGNhNTA5OWFlNWZlY2U4M2Q1YzJjMzc4M2IxOTg4YjRiNDZkYzk0ZTU1NTg3YTEwN2VhMTU0NmJmMjJkMjhhMDk3ZjY1MmE0MDY2ZGMyOTY1MjY5MDY5YWYyZjUxNzZiYjhjZTljYTZkMTFmOTY3NTdmMDMyMDRmNzU2NzAzNTg3ZDAwYWQ0MjQ3OTZjOTJmYzdhZWI2ZjQ5NDQzMTk5OWVkYTMwOTkwZTRmNTc3MzYzMmVkMjU4ZmUwMjc2NjczNTk5ZGE2ZmNlMzVjZGFkNzcyNmEwYmIwMjRjYWQ5OTZiODhlMGNiOTg4NTRjZWI1YzBiNmVjNzQ4ZDlmOWNlNmE2Y2Q0Mzc4NThiYWNiODE0NjE4YTI3MmZmM2E0MTVjNmUwN2YzZGIwOTg4Nzc3ZmRlYzg0NWE5N2JmN2QxMDJkZDAzMDgyMDE3MzAyMDEwMTMwNGMzMDMzMzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzIwMjE0NTY0ZDU1NDAyNWFmNTk5ZTMyNzA3OWIyNzIwZWYwMGRmMzdjZmI3YzMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwMDQ2MDk4ZGM1ZjJiOTllM2JjMmVkNjY0MmQ3ZjBhNjFlZmFiYzE1YzM4Yzc2MzMzYmNjY2VlZWUzNjlhNGY0YTViZGRhOGVhNTkyNjQxMjRlNDI5ZjA4NjMyNjgzZGRiYTE3YmJmMjYyZDgyYjZiZWZhM2I0ZTE0ODAzNzZhOGM3ZjNjN2Q3ZTJhNjc3OWJiZjE4MjYyYWE4NTdkZThjMjBhMTJiNmEyY2U4ZTRkN2YzMWRkMWIxOTUzOTJjZjYxODVhZmNlMzRhZmUwNTg5NjA1N2IzNmU5YjE3MWI2YzY3ZWQ3YzIyODZjYmZhODNmZjhhMTY3YzdiYzcxMDlhZWU3ZDdlMTkwOWJkMzg0ZmJmYzYxOTM4ZWZjYTUxYzg5OTNjNzFkYjMxNzczMGYxNmU3ZTc3Njg2N2FlNGZkYzU2MmQ2ZjE1ZGU1ODVlN2I5NGVmNDk2YTM2NzYzNjdhMmNiYWFiN2I2MzY2NDhiMDA3NmJhZDVjZGYxZTA5NzQwZWM2YTQ1MWJmZjUzNGVmYTIxNTA5ZjNiYTc3YjgxMDFiOTFlYTdlNTVkZGJmZTE0MDE1MTcwNjdkN2IwMWEyYTA4NzlmMDg4NWM4OTRhODdjZmI2OGM0ZDdlZTg5MDYwNDg4MWFlYjk3YzIyZDFmMzM3ZWY5MjNlMDM1YTY0MDAiCiAKIFBLQ1M3IFBhcnNlIEZhaWx1cmUgSW52YWxpZCBBU04xOiBDaGFuZ2UgdGFnIDMxIHRvIDAyICM0NDYuMAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHBrY3M3X2FzbjFfZmFpbDoiMzA4MjAzMjYwNjA5MmE4NjQ4ODZmNzBkMDEwNzAyYTA4MjAzMTczMDgyMDMxMzAyMDEwMTMxMGYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBiMDYwOTJhODY0ODg2ZjcwZDAxMDcwMTMxODIwMmVlMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDViZWNkODcxOTVjMWRlZmY5MGMyNGM5MTI2OWI1NWIzZjA2OWJjMjI1YzMyNmMzMTRjMWE1MTc4NmZmZTE0YzgzMGJlNGU0YmM3M2NiYTM2Yzk3Njc3YjQ0MTY4Mjc5YmU5MWU3Y2RmN2MxOTM4NmFlMjE4NjI3MTlkMTNhM2EwZmZmMDgwM2Q0NjA5NjJmMmNkYTgzNzE0ODQ4NzMyNTJjM2Q3MDU0ZGI4MTQzZTJiMDgxYTM4MTZlZDA4MDRjYTUwOTlhZTVmZWNlODNkNWMyYzM3ODNiMTk4OGI0YjQ2ZGM5NGU1NTU4N2ExMDdlYTE1NDZiZjIyZDI4YTA5N2Y2NTJhNDA2NmRjMjk2NTI2OTA2OWFmMmY1MTc2YmI4Y2U5Y2E2ZDExZjk2NzU3ZjAzMjA0Zjc1NjcwMzU4N2QwMGFkNDI0Nzk2YzkyZmM3YWViNmY0OTQ0MzE5OTllZGEzMDk5MGU0ZjU3NzM2MzJlZDI1OGZlMDI3NjY3MzU5OWRhNmZjZTM1Y2RhZDc3MjZhMGJiMDI0Y2FkOTk2Yjg4ZTBjYjk4ODU0Y2ViNWMwYjZlYzc0OGQ5ZjljZTZhNmNkNDM3ODU4YmFjYjgxNDYxOGEyNzJmZjNhNDE1YzZlMDdmM2RiMDk4ODc3N2ZkZWM4NDVhOTdiZjdkMTAyZGQwMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDAyMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMyMDIxNDU2NGQ1NTQwMjVhZjU5OWUzMjcwNzliMjcyMGVmMDBkZjM3Y2ZiN2MzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDA0NjA5OGRjNWYyYjk5ZTNiYzJlZDY2NDJkN2YwYTYxZWZhYmMxNWMzOGM3NjMzM2JjY2NlZWVlMzY5YTRmNGE1YmRkYThlYTU5MjY0MTI0ZTQyOWYwODYzMjY4M2RkYmExN2JiZjI2MmQ4MmI2YmVmYTNiNGUxNDgwMzc2YThjN2YzYzdkN2UyYTY3NzliYmYxODI2MmFhODU3ZGU4YzIwYTEyYjZhMmNlOGU0ZDdmMzFkZDFiMTk1MzkyY2Y2MTg1YWZjZTM0YWZlMDU4OTYwNTdiMzZlOWIxNzFiNmM2N2VkN2MyMjg2Y2JmYTgzZmY4YTE2N2M3YmM3MTA5YWVlN2Q3ZTE5MDliZDM4NGZiZmM2MTkzOGVmY2E1MWM4OTkzYzcxZGIzMTc3MzBmMTZlN2U3NzY4NjdhZTRmZGM1NjJkNmYxNWRlNTg1ZTdiOTRlZjQ5NmEzNjc2MzY3YTJjYmFhYjdiNjM2NjQ4YjAwNzZiYWQ1Y2RmMWUwOTc0MGVjNmE0NTFiZmY1MzRlZmEyMTUwOWYzYmE3N2I4MTAxYjkxZWE3ZTU1ZGRiZmUxNDAxNTE3MDY3ZDdiMDFhMmEwODc5ZjA4ODVjODk0YTg3Y2ZiNjhjNGQ3ZWU4OTA2MDQ4ODFhZWI5N2MyMmQxZjMzN2VmOTIzZTAzNWE2NDAwIgogCiBQS0NTNyBQYXJzZSBGYWlsdXJlIEludmFsaWQgQVNOMTogQ2hhbmdlIGxlbmd0aCBmcm9tIDExIHRvIDEyICM0NDcuMAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHBrY3M3X2FzbjFfZmFpbDoiMzA4MjAzMjYwNjA5MmE4NjQ4ODZmNzBkMDEwNzAyYTA4MjAzMTczMDgyMDMxMzAyMDEwMTMxMGYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBiMDYwOTJhODY0ODg2ZjcwZDAxMDcwMTMxODIwMmVlMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDViZWNkODcxOTVjMWRlZmY5MGMyNGM5MTI2OWI1NWIzZjA2OWJjMjI1YzMyNmMzMTRjMWE1MTc4NmZmZTE0YzgzMGJlNGU0YmM3M2NiYTM2Yzk3Njc3YjQ0MTY4Mjc5YmU5MWU3Y2RmN2MxOTM4NmFlMjE4NjI3MTlkMTNhM2EwZmZmMDgwM2Q0NjA5NjJmMmNkYTgzNzE0ODQ4NzMyNTJjM2Q3MDU0ZGI4MTQzZTJiMDgxYTM4MTZlZDA4MDRjYTUwOTlhZTVmZWNlODNkNWMyYzM3ODNiMTk4OGI0YjQ2ZGM5NGU1NTU4N2ExMDdlYTE1NDZiZjIyZDI4YTA5N2Y2NTJhNDA2NmRjMjk2NTI2OTA2OWFmMmY1MTc2YmI4Y2U5Y2E2ZDExZjk2NzU3ZjAzMjA0Zjc1NjcwMzU4N2QwMGFkNDI0Nzk2YzkyZmM3YWViNmY0OTQ0MzE5OTllZGEzMDk5MGU0ZjU3NzM2MzJlZDI1OGZlMDI3NjY3MzU5OWRhNmZjZTM1Y2RhZDc3MjZhMGJiMDI0Y2FkOTk2Yjg4ZTBjYjk4ODU0Y2ViNWMwYjZlYzc0OGQ5ZjljZTZhNmNkNDM3ODU4YmFjYjgxNDYxOGEyNzJmZjNhNDE1YzZlMDdmM2RiMDk4ODc3N2ZkZWM4NDVhOTdiZjdkMTAyZGQwMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGMzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMyMDIxNDU2NGQ1NTQwMjVhZjU5OWUzMjcwNzliMjcyMGVmMDBkZjM3Y2ZiN2MzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDA0NjA5OGRjNWYyYjk5ZTNiYzJlZDY2NDJkN2YwYTYxZWZhYmMxNWMzOGM3NjMzM2JjY2NlZWVlMzY5YTRmNGE1YmRkYThlYTU5MjY0MTI0ZTQyOWYwODYzMjY4M2RkYmExN2JiZjI2MmQ4MmI2YmVmYTNiNGUxNDgwMzc2YThjN2YzYzdkN2UyYTY3NzliYmYxODI2MmFhODU3ZGU4YzIwYTEyYjZhMmNlOGU0ZDdmMzFkZDFiMTk1MzkyY2Y2MTg1YWZjZTM0YWZlMDU4OTYwNTdiMzZlOWIxNzFiNmM2N2VkN2MyMjg2Y2JmYTgzZmY4YTE2N2M3YmM3MTA5YWVlN2Q3ZTE5MDliZDM4NGZiZmM2MTkzOGVmY2E1MWM4OTkzYzcxZGIzMTc3MzBmMTZlN2U3NzY4NjdhZTRmZGM1NjJkNmYxNWRlNTg1ZTdiOTRlZjQ5NmEzNjc2MzY3YTJjYmFhYjdiNjM2NjQ4YjAwNzZiYWQ1Y2RmMWUwOTc0MGVjNmE0NTFiZmY1MzRlZmEyMTUwOWYzYmE3N2I4MTAxYjkxZWE3ZTU1ZGRiZmUxNDAxNTE3MDY3ZDdiMDFhMmEwODc5ZjA4ODVjODk0YTg3Y2ZiNjhjNGQ3ZWU4OTA2MDQ4ODFhZWI5N2MyMmQxZjMzN2VmOTIzZTAzNWE2NDAwIgogCiBQS0NTNyBQYXJzZSBGYWlsdXJlIEludmFsaWQgQVNOMTogQ2hhbmdlIGNvbnRlbnRzIG9mIHRhZyAzMSB0byBjb250YWluIG9uZSB1bmFjY291bnRlZCBleHRyYSBieXRlICM0NDguMAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHBrY3M3X2FzbjFfZmFpbDoiMzA4MjAzMjYwNjA5MmE4NjQ4ODZmNzBkMDEwNzAyYTA4MjAzMTczMDgyMDMxMzAyMDEwMTMxMGYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBiMDYwOTJhODY0ODg2ZjcwZDAxMDcwMTMxODIwMmVlMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDViZWNkODcxOTVjMWRlZmY5MGMyNGM5MTI2OWI1NWIzZjA2OWJjMjI1YzMyNmMzMTRjMWE1MTc4NmZmZTE0YzgzMGJlNGU0YmM3M2NiYTM2Yzk3Njc3YjQ0MTY4Mjc5YmU5MWU3Y2RmN2MxOTM4NmFlMjE4NjI3MTlkMTNhM2EwZmZmMDgwM2Q0NjA5NjJmMmNkYTgzNzE0ODQ4NzMyNTJjM2Q3MDU0ZGI4MTQzZTJiMDgxYTM4MTZlZDA4MDRjYTUwOTlhZTVmZWNlODNkNWMyYzM3ODNiMTk4OGI0YjQ2ZGM5NGU1NTU4N2ExMDdlYTE1NDZiZjIyZDI4YTA5N2Y2NTJhNDA2NmRjMjk2NTI2OTA2OWFmMmY1MTc2YmI4Y2U5Y2E2ZDExZjk2NzU3ZjAzMjA0Zjc1NjcwMzU4N2QwMGFkNDI0Nzk2YzkyZmM3YWViNmY0OTQ0MzE5OTllZGEzMDk5MGU0ZjU3NzM2MzJlZDI1OGZlMDI3NjY3MzU5OWRhNmZjZTM1Y2RhZDc3MjZhMGJiMDI0Y2FkOTk2Yjg4ZTBjYjk4ODU0Y2ViNWMwYjZlYzc0OGQ5ZjljZTZhNmNkNDM3ODU4YmFjYjgxNDYxOGEyNzJmZjNhNDE1YzZlMDdmM2RiMDk4ODc3N2ZkZWM4NDVhOTdiZjdkMTAyZGQwMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGMzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMDAzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzIwMjE0NTY0ZDU1NDAyNWFmNTk5ZTMyNzA3OWIyNzIwZWYwMGRmMzdjZmI3YzMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwMDQ2MDk4ZGM1ZjJiOTllM2JjMmVkNjY0MmQ3ZjBhNjFlZmFiYzE1YzM4Yzc2MzMzYmNjY2VlZWUzNjlhNGY0YTViZGRhOGVhNTkyNjQxMjRlNDI5ZjA4NjMyNjgzZGRiYTE3YmJmMjYyZDgyYjZiZWZhM2I0ZTE0ODAzNzZhOGM3ZjNjN2Q3ZTJhNjc3OWJiZjE4MjYyYWE4NTdkZThjMjBhMTJiNmEyY2U4ZTRkN2YzMWRkMWIxOTUzOTJjZjYxODVhZmNlMzRhZmUwNTg5NjA1N2IzNmU5YjE3MWI2YzY3ZWQ3YzIyODZjYmZhODNmZjhhMTY3YzdiYzcxMDlhZWU3ZDdlMTkwOWJkMzg0ZmJmYzYxOTM4ZWZjYTUxYzg5OTNjNzFkYjMxNzczMGYxNmU3ZTc3Njg2N2FlNGZkYzU2MmQ2ZjE1ZGU1ODVlN2I5NGVmNDk2YTM2NzYzNjdhMmNiYWFiN2I2MzY2NDhiMDA3NmJhZDVjZGYxZTA5NzQwZWM2YTQ1MWJmZjUzNGVmYTIxNTA5ZjNiYTc3YjgxMDFiOTFlYTdlNTVkZGJmZTE0MDE1MTcwNjdkN2IwMWEyYTA4NzlmMDg4NWM4OTRhODdjZmI2OGM0ZDdlZTg5MDYwNDg4MWFlYjk3YzIyZDFmMzM3ZWY5MjNlMDM1YTY0MDAiCiAKIFBLQ1M3IFBhcnNlIEZhaWx1cmUgSW52YWxpZCBBU04xOiBDaGFuZ2UgbGVuZ3RoIGZyb20gMTEgdG8gMTAgIzQ0OS4wCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NgogcGtjczdfYXNuMV9mYWlsOiIzMDgyMDMyNjA2MDkyYTg2NDg4NmY3MGQwMTA3MDJhMDgyMDMxNzMwODIwMzEzMDIwMTAxMzEwZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGIwNjA5MmE4NjQ4ODZmNzBkMDEwNzAxMzE4MjAyZWUzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwNWJlY2Q4NzE5NWMxZGVmZjkwYzI0YzkxMjY5YjU1YjNmMDY5YmMyMjVjMzI2YzMxNGMxYTUxNzg2ZmZlMTRjODMwYmU0ZTRiYzczY2JhMzZjOTc2NzdiNDQxNjgyNzliZTkxZTdjZGY3YzE5Mzg2YWUyMTg2MjcxOWQxM2EzYTBmZmYwODAzZDQ2MDk2MmYyY2RhODM3MTQ4NDg3MzI1MmMzZDcwNTRkYjgxNDNlMmIwODFhMzgxNmVkMDgwNGNhNTA5OWFlNWZlY2U4M2Q1YzJjMzc4M2IxOTg4YjRiNDZkYzk0ZTU1NTg3YTEwN2VhMTU0NmJmMjJkMjhhMDk3ZjY1MmE0MDY2ZGMyOTY1MjY5MDY5YWYyZjUxNzZiYjhjZTljYTZkMTFmOTY3NTdmMDMyMDRmNzU2NzAzNTg3ZDAwYWQ0MjQ3OTZjOTJmYzdhZWI2ZjQ5NDQzMTk5OWVkYTMwOTkwZTRmNTc3MzYzMmVkMjU4ZmUwMjc2NjczNTk5ZGE2ZmNlMzVjZGFkNzcyNmEwYmIwMjRjYWQ5OTZiODhlMGNiOTg4NTRjZWI1YzBiNmVjNzQ4ZDlmOWNlNmE2Y2Q0Mzc4NThiYWNiODE0NjE4YTI3MmZmM2E0MTVjNmUwN2YzZGIwOTg4Nzc3ZmRlYzg0NWE5N2JmN2QxMDJkZDAzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYTMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzIwMjE0NTY0ZDU1NDAyNWFmNTk5ZTMyNzA3OWIyNzIwZWYwMGRmMzdjZmI3YzMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwMDQ2MDk4ZGM1ZjJiOTllM2JjMmVkNjY0MmQ3ZjBhNjFlZmFiYzE1YzM4Yzc2MzMzYmNjY2VlZWUzNjlhNGY0YTViZGRhOGVhNTkyNjQxMjRlNDI5ZjA4NjMyNjgzZGRiYTE3YmJmMjYyZDgyYjZiZWZhM2I0ZTE0ODAzNzZhOGM3ZjNjN2Q3ZTJhNjc3OWJiZjE4MjYyYWE4NTdkZThjMjBhMTJiNmEyY2U4ZTRkN2YzMWRkMWIxOTUzOTJjZjYxODVhZmNlMzRhZmUwNTg5NjA1N2IzNmU5YjE3MWI2YzY3ZWQ3YzIyODZjYmZhODNmZjhhMTY3YzdiYzcxMDlhZWU3ZDdlMTkwOWJkMzg0ZmJmYzYxOTM4ZWZjYTUxYzg5OTNjNzFkYjMxNzczMGYxNmU3ZTc3Njg2N2FlNGZkYzU2MmQ2ZjE1ZGU1ODVlN2I5NGVmNDk2YTM2NzYzNjdhMmNiYWFiN2I2MzY2NDhiMDA3NmJhZDVjZGYxZTA5NzQwZWM2YTQ1MWJmZjUzNGVmYTIxNTA5ZjNiYTc3YjgxMDFiOTFlYTdlNTVkZGJmZTE0MDE1MTcwNjdkN2IwMWEyYTA4NzlmMDg4NWM4OTRhODdjZmI2OGM0ZDdlZTg5MDYwNDg4MWFlYjk3YzIyZDFmMzM3ZWY5MjNlMDM1YTY0MDAiCiAKIFBLQ1M3IFBhcnNlIEZhaWx1cmUgSW52YWxpZCBBU04xOiBDaGFuZ2UgdGFnIDMwIHRvIDAyICM0NTAuMAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHBrY3M3X2FzbjFfZmFpbDoiMzA4MjAzMjYwNjA5MmE4NjQ4ODZmNzBkMDEwNzAyYTA4MjAzMTczMDgyMDMxMzAyMDEwMTMxMGYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBiMDYwOTJhODY0ODg2ZjcwZDAxMDcwMTMxODIwMmVlMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDViZWNkODcxOTVjMWRlZmY5MGMyNGM5MTI2OWI1NWIzZjA2OWJjMjI1YzMyNmMzMTRjMWE1MTc4NmZmZTE0YzgzMGJlNGU0YmM3M2NiYTM2Yzk3Njc3YjQ0MTY4Mjc5YmU5MWU3Y2RmN2MxOTM4NmFlMjE4NjI3MTlkMTNhM2EwZmZmMDgwM2Q0NjA5NjJmMmNkYTgzNzE0ODQ4NzMyNTJjM2Q3MDU0ZGI4MTQzZTJiMDgxYTM4MTZlZDA4MDRjYTUwOTlhZTVmZWNlODNkNWMyYzM3ODNiMTk4OGI0YjQ2ZGM5NGU1NTU4N2ExMDdlYTE1NDZiZjIyZDI4YTA5N2Y2NTJhNDA2NmRjMjk2NTI2OTA2OWFmMmY1MTc2YmI4Y2U5Y2E2ZDExZjk2NzU3ZjAzMjA0Zjc1NjcwMzU4N2QwMGFkNDI0Nzk2YzkyZmM3YWViNmY0OTQ0MzE5OTllZGEzMDk5MGU0ZjU3NzM2MzJlZDI1OGZlMDI3NjY3MzU5OWRhNmZjZTM1Y2RhZDc3MjZhMGJiMDI0Y2FkOTk2Yjg4ZTBjYjk4ODU0Y2ViNWMwYjZlYzc0OGQ5ZjljZTZhNmNkNDM3ODU4YmFjYjgxNDYxOGEyNzJmZjNhNDE1YzZlMDdmM2RiMDk4ODc3N2ZkZWM4NDVhOTdiZjdkMTAyZGQwMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIwMjA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMyMDIxNDU2NGQ1NTQwMjVhZjU5OWUzMjcwNzliMjcyMGVmMDBkZjM3Y2ZiN2MzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDA0NjA5OGRjNWYyYjk5ZTNiYzJlZDY2NDJkN2YwYTYxZWZhYmMxNWMzOGM3NjMzM2JjY2NlZWVlMzY5YTRmNGE1YmRkYThlYTU5MjY0MTI0ZTQyOWYwODYzMjY4M2RkYmExN2JiZjI2MmQ4MmI2YmVmYTNiNGUxNDgwMzc2YThjN2YzYzdkN2UyYTY3NzliYmYxODI2MmFhODU3ZGU4YzIwYTEyYjZhMmNlOGU0ZDdmMzFkZDFiMTk1MzkyY2Y2MTg1YWZjZTM0YWZlMDU4OTYwNTdiMzZlOWIxNzFiNmM2N2VkN2MyMjg2Y2JmYTgzZmY4YTE2N2M3YmM3MTA5YWVlN2Q3ZTE5MDliZDM4NGZiZmM2MTkzOGVmY2E1MWM4OTkzYzcxZGIzMTc3MzBmMTZlN2U3NzY4NjdhZTRmZGM1NjJkNmYxNWRlNTg1ZTdiOTRlZjQ5NmEzNjc2MzY3YTJjYmFhYjdiNjM2NjQ4YjAwNzZiYWQ1Y2RmMWUwOTc0MGVjNmE0NTFiZmY1MzRlZmEyMTUwOWYzYmE3N2I4MTAxYjkxZWE3ZTU1ZGRiZmUxNDAxNTE3MDY3ZDdiMDFhMmEwODc5ZjA4ODVjODk0YTg3Y2ZiNjhjNGQ3ZWU4OTA2MDQ4ODFhZWI5N2MyMmQxZjMzN2VmOTIzZTAzNWE2NDAwIgogCiBQS0NTNyBQYXJzZSBGYWlsdXJlIEludmFsaWQgQVNOMTogQ2hhbmdlIGxlbmd0aCBmcm9tIDkgdG8gMTAgIzQ1MS4wCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NgogcGtjczdfYXNuMV9mYWlsOiIzMDgyMDMyNjA2MDkyYTg2NDg4NmY3MGQwMTA3MDJhMDgyMDMxNzMwODIwMzEzMDIwMTAxMzEwZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGIwNjA5MmE4NjQ4ODZmNzBkMDEwNzAxMzE4MjAyZWUzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwNWJlY2Q4NzE5NWMxZGVmZjkwYzI0YzkxMjY5YjU1YjNmMDY5YmMyMjVjMzI2YzMxNGMxYTUxNzg2ZmZlMTRjODMwYmU0ZTRiYzczY2JhMzZjOTc2NzdiNDQxNjgyNzliZTkxZTdjZGY3YzE5Mzg2YWUyMTg2MjcxOWQxM2EzYTBmZmYwODAzZDQ2MDk2MmYyY2RhODM3MTQ4NDg3MzI1MmMzZDcwNTRkYjgxNDNlMmIwODFhMzgxNmVkMDgwNGNhNTA5OWFlNWZlY2U4M2Q1YzJjMzc4M2IxOTg4YjRiNDZkYzk0ZTU1NTg3YTEwN2VhMTU0NmJmMjJkMjhhMDk3ZjY1MmE0MDY2ZGMyOTY1MjY5MDY5YWYyZjUxNzZiYjhjZTljYTZkMTFmOTY3NTdmMDMyMDRmNzU2NzAzNTg3ZDAwYWQ0MjQ3OTZjOTJmYzdhZWI2ZjQ5NDQzMTk5OWVkYTMwOTkwZTRmNTc3MzYzMmVkMjU4ZmUwMjc2NjczNTk5ZGE2ZmNlMzVjZGFkNzcyNmEwYmIwMjRjYWQ5OTZiODhlMGNiOTg4NTRjZWI1YzBiNmVjNzQ4ZDlmOWNlNmE2Y2Q0Mzc4NThiYWNiODE0NjE4YTI3MmZmM2E0MTVjNmUwN2YzZGIwOTg4Nzc3ZmRlYzg0NWE5N2JmN2QxMDJkZDAzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMGEwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzIwMjE0NTY0ZDU1NDAyNWFmNTk5ZTMyNzA3OWIyNzIwZWYwMGRmMzdjZmI3YzMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwMDQ2MDk4ZGM1ZjJiOTllM2JjMmVkNjY0MmQ3ZjBhNjFlZmFiYzE1YzM4Yzc2MzMzYmNjY2VlZWUzNjlhNGY0YTViZGRhOGVhNTkyNjQxMjRlNDI5ZjA4NjMyNjgzZGRiYTE3YmJmMjYyZDgyYjZiZWZhM2I0ZTE0ODAzNzZhOGM3ZjNjN2Q3ZTJhNjc3OWJiZjE4MjYyYWE4NTdkZThjMjBhMTJiNmEyY2U4ZTRkN2YzMWRkMWIxOTUzOTJjZjYxODVhZmNlMzRhZmUwNTg5NjA1N2IzNmU5YjE3MWI2YzY3ZWQ3YzIyODZjYmZhODNmZjhhMTY3YzdiYzcxMDlhZWU3ZDdlMTkwOWJkMzg0ZmJmYzYxOTM4ZWZjYTUxYzg5OTNjNzFkYjMxNzczMGYxNmU3ZTc3Njg2N2FlNGZkYzU2MmQ2ZjE1ZGU1ODVlN2I5NGVmNDk2YTM2NzYzNjdhMmNiYWFiN2I2MzY2NDhiMDA3NmJhZDVjZGYxZTA5NzQwZWM2YTQ1MWJmZjUzNGVmYTIxNTA5ZjNiYTc3YjgxMDFiOTFlYTdlNTVkZGJmZTE0MDE1MTcwNjdkN2IwMWEyYTA4NzlmMDg4NWM4OTRhODdjZmI2OGM0ZDdlZTg5MDYwNDg4MWFlYjk3YzIyZDFmMzM3ZWY5MjNlMDM1YTY0MDAiCiAKIFBLQ1M3IFBhcnNlIEZhaWx1cmUgSW52YWxpZCBBU04xOiBDaGFuZ2UgY29udGVudHMgb2YgdGFnIDMwIHRvIGNvbnRhaW4gb25lIHVuYWNjb3VudGVkIGV4dHJhIGJ5dGUgIzQ1Mi4wCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NgogcGtjczdfYXNuMV9mYWlsOiIzMDgyMDMyNjA2MDkyYTg2NDg4NmY3MGQwMTA3MDJhMDgyMDMxNzMwODIwMzEzMDIwMTAxMzEwZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGIwNjA5MmE4NjQ4ODZmNzBkMDEwNzAxMzE4MjAyZWUzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwNWJlY2Q4NzE5NWMxZGVmZjkwYzI0YzkxMjY5YjU1YjNmMDY5YmMyMjVjMzI2YzMxNGMxYTUxNzg2ZmZlMTRjODMwYmU0ZTRiYzczY2JhMzZjOTc2NzdiNDQxNjgyNzliZTkxZTdjZGY3YzE5Mzg2YWUyMTg2MjcxOWQxM2EzYTBmZmYwODAzZDQ2MDk2MmYyY2RhODM3MTQ4NDg3MzI1MmMzZDcwNTRkYjgxNDNlMmIwODFhMzgxNmVkMDgwNGNhNTA5OWFlNWZlY2U4M2Q1YzJjMzc4M2IxOTg4YjRiNDZkYzk0ZTU1NTg3YTEwN2VhMTU0NmJmMjJkMjhhMDk3ZjY1MmE0MDY2ZGMyOTY1MjY5MDY5YWYyZjUxNzZiYjhjZTljYTZkMTFmOTY3NTdmMDMyMDRmNzU2NzAzNTg3ZDAwYWQ0MjQ3OTZjOTJmYzdhZWI2ZjQ5NDQzMTk5OWVkYTMwOTkwZTRmNTc3MzYzMmVkMjU4ZmUwMjc2NjczNTk5ZGE2ZmNlMzVjZGFkNzcyNmEwYmIwMjRjYWQ5OTZiODhlMGNiOTg4NTRjZWI1YzBiNmVjNzQ4ZDlmOWNlNmE2Y2Q0Mzc4NThiYWNiODE0NjE4YTI3MmZmM2E0MTVjNmUwN2YzZGIwOTg4Nzc3ZmRlYzg0NWE5N2JmN2QxMDJkZDAzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMGEwNjAzNTUwNDA2MTMwMjRlNGMwMDMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMjAyMTQ1NjRkNTU0MDI1YWY1OTllMzI3MDc5YjI3MjBlZjAwZGYzN2NmYjdjMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDAwNDYwOThkYzVmMmI5OWUzYmMyZWQ2NjQyZDdmMGE2MWVmYWJjMTVjMzhjNzYzMzNiY2NjZWVlZTM2OWE0ZjRhNWJkZGE4ZWE1OTI2NDEyNGU0MjlmMDg2MzI2ODNkZGJhMTdiYmYyNjJkODJiNmJlZmEzYjRlMTQ4MDM3NmE4YzdmM2M3ZDdlMmE2Nzc5YmJmMTgyNjJhYTg1N2RlOGMyMGExMmI2YTJjZThlNGQ3ZjMxZGQxYjE5NTM5MmNmNjE4NWFmY2UzNGFmZTA1ODk2MDU3YjM2ZTliMTcxYjZjNjdlZDdjMjI4NmNiZmE4M2ZmOGExNjdjN2JjNzEwOWFlZTdkN2UxOTA5YmQzODRmYmZjNjE5MzhlZmNhNTFjODk5M2M3MWRiMzE3NzMwZjE2ZTdlNzc2ODY3YWU0ZmRjNTYyZDZmMTVkZTU4NWU3Yjk0ZWY0OTZhMzY3NjM2N2EyY2JhYWI3YjYzNjY0OGIwMDc2YmFkNWNkZjFlMDk3NDBlYzZhNDUxYmZmNTM0ZWZhMjE1MDlmM2JhNzdiODEwMWI5MWVhN2U1NWRkYmZlMTQwMTUxNzA2N2Q3YjAxYTJhMDg3OWYwODg1Yzg5NGE4N2NmYjY4YzRkN2VlODkwNjA0ODgxYWViOTdjMjJkMWYzMzdlZjkyM2UwMzVhNjQwMCIKIAogUEtDUzcgUGFyc2UgRmFpbHVyZSBJbnZhbGlkIEFTTjE6IENoYW5nZSBsZW5ndGggZnJvbSA5IHRvIDggIzQ1My4wCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NgogcGtjczdfYXNuMV9mYWlsOiIzMDgyMDMyNjA2MDkyYTg2NDg4NmY3MGQwMTA3MDJhMDgyMDMxNzMwODIwMzEzMDIwMTAxMzEwZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGIwNjA5MmE4NjQ4ODZmNzBkMDEwNzAxMzE4MjAyZWUzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwNWJlY2Q4NzE5NWMxZGVmZjkwYzI0YzkxMjY5YjU1YjNmMDY5YmMyMjVjMzI2YzMxNGMxYTUxNzg2ZmZlMTRjODMwYmU0ZTRiYzczY2JhMzZjOTc2NzdiNDQxNjgyNzliZTkxZTdjZGY3YzE5Mzg2YWUyMTg2MjcxOWQxM2EzYTBmZmYwODAzZDQ2MDk2MmYyY2RhODM3MTQ4NDg3MzI1MmMzZDcwNTRkYjgxNDNlMmIwODFhMzgxNmVkMDgwNGNhNTA5OWFlNWZlY2U4M2Q1YzJjMzc4M2IxOTg4YjRiNDZkYzk0ZTU1NTg3YTEwN2VhMTU0NmJmMjJkMjhhMDk3ZjY1MmE0MDY2ZGMyOTY1MjY5MDY5YWYyZjUxNzZiYjhjZTljYTZkMTFmOTY3NTdmMDMyMDRmNzU2NzAzNTg3ZDAwYWQ0MjQ3OTZjOTJmYzdhZWI2ZjQ5NDQzMTk5OWVkYTMwOTkwZTRmNTc3MzYzMmVkMjU4ZmUwMjc2NjczNTk5ZGE2ZmNlMzVjZGFkNzcyNmEwYmIwMjRjYWQ5OTZiODhlMGNiOTg4NTRjZWI1YzBiNmVjNzQ4ZDlmOWNlNmE2Y2Q0Mzc4NThiYWNiODE0NjE4YTI3MmZmM2E0MTVjNmUwN2YzZGIwOTg4Nzc3ZmRlYzg0NWE5N2JmN2QxMDJkZDAzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDgwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzIwMjE0NTY0ZDU1NDAyNWFmNTk5ZTMyNzA3OWIyNzIwZWYwMGRmMzdjZmI3YzMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwMDQ2MDk4ZGM1ZjJiOTllM2JjMmVkNjY0MmQ3ZjBhNjFlZmFiYzE1YzM4Yzc2MzMzYmNjY2VlZWUzNjlhNGY0YTViZGRhOGVhNTkyNjQxMjRlNDI5ZjA4NjMyNjgzZGRiYTE3YmJmMjYyZDgyYjZiZWZhM2I0ZTE0ODAzNzZhOGM3ZjNjN2Q3ZTJhNjc3OWJiZjE4MjYyYWE4NTdkZThjMjBhMTJiNmEyY2U4ZTRkN2YzMWRkMWIxOTUzOTJjZjYxODVhZmNlMzRhZmUwNTg5NjA1N2IzNmU5YjE3MWI2YzY3ZWQ3YzIyODZjYmZhODNmZjhhMTY3YzdiYzcxMDlhZWU3ZDdlMTkwOWJkMzg0ZmJmYzYxOTM4ZWZjYTUxYzg5OTNjNzFkYjMxNzczMGYxNmU3ZTc3Njg2N2FlNGZkYzU2MmQ2ZjE1ZGU1ODVlN2I5NGVmNDk2YTM2NzYzNjdhMmNiYWFiN2I2MzY2NDhiMDA3NmJhZDVjZGYxZTA5NzQwZWM2YTQ1MWJmZjUzNGVmYTIxNTA5ZjNiYTc3YjgxMDFiOTFlYTdlNTVkZGJmZTE0MDE1MTcwNjdkN2IwMWEyYTA4NzlmMDg4NWM4OTRhODdjZmI2OGM0ZDdlZTg5MDYwNDg4MWFlYjk3YzIyZDFmMzM3ZWY5MjNlMDM1YTY0MDAiCiAKIFBLQ1M3IFBhcnNlIEZhaWx1cmUgSW52YWxpZCBBU04xOiBDaGFuZ2UgdGFnIDA2IHRvIDAyICM0NTQuMAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHBrY3M3X2FzbjFfZmFpbDoiMzA4MjAzMjYwNjA5MmE4NjQ4ODZmNzBkMDEwNzAyYTA4MjAzMTczMDgyMDMxMzAyMDEwMTMxMGYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBiMDYwOTJhODY0ODg2ZjcwZDAxMDcwMTMxODIwMmVlMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDViZWNkODcxOTVjMWRlZmY5MGMyNGM5MTI2OWI1NWIzZjA2OWJjMjI1YzMyNmMzMTRjMWE1MTc4NmZmZTE0YzgzMGJlNGU0YmM3M2NiYTM2Yzk3Njc3YjQ0MTY4Mjc5YmU5MWU3Y2RmN2MxOTM4NmFlMjE4NjI3MTlkMTNhM2EwZmZmMDgwM2Q0NjA5NjJmMmNkYTgzNzE0ODQ4NzMyNTJjM2Q3MDU0ZGI4MTQzZTJiMDgxYTM4MTZlZDA4MDRjYTUwOTlhZTVmZWNlODNkNWMyYzM3ODNiMTk4OGI0YjQ2ZGM5NGU1NTU4N2ExMDdlYTE1NDZiZjIyZDI4YTA5N2Y2NTJhNDA2NmRjMjk2NTI2OTA2OWFmMmY1MTc2YmI4Y2U5Y2E2ZDExZjk2NzU3ZjAzMjA0Zjc1NjcwMzU4N2QwMGFkNDI0Nzk2YzkyZmM3YWViNmY0OTQ0MzE5OTllZGEzMDk5MGU0ZjU3NzM2MzJlZDI1OGZlMDI3NjY3MzU5OWRhNmZjZTM1Y2RhZDc3MjZhMGJiMDI0Y2FkOTk2Yjg4ZTBjYjk4ODU0Y2ViNWMwYjZlYzc0OGQ5ZjljZTZhNmNkNDM3ODU4YmFjYjgxNDYxOGEyNzJmZjNhNDE1YzZlMDdmM2RiMDk4ODc3N2ZkZWM4NDVhOTdiZjdkMTAyZGQwMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDIwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMyMDIxNDU2NGQ1NTQwMjVhZjU5OWUzMjcwNzliMjcyMGVmMDBkZjM3Y2ZiN2MzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDA0NjA5OGRjNWYyYjk5ZTNiYzJlZDY2NDJkN2YwYTYxZWZhYmMxNWMzOGM3NjMzM2JjY2NlZWVlMzY5YTRmNGE1YmRkYThlYTU5MjY0MTI0ZTQyOWYwODYzMjY4M2RkYmExN2JiZjI2MmQ4MmI2YmVmYTNiNGUxNDgwMzc2YThjN2YzYzdkN2UyYTY3NzliYmYxODI2MmFhODU3ZGU4YzIwYTEyYjZhMmNlOGU0ZDdmMzFkZDFiMTk1MzkyY2Y2MTg1YWZjZTM0YWZlMDU4OTYwNTdiMzZlOWIxNzFiNmM2N2VkN2MyMjg2Y2JmYTgzZmY4YTE2N2M3YmM3MTA5YWVlN2Q3ZTE5MDliZDM4NGZiZmM2MTkzOGVmY2E1MWM4OTkzYzcxZGIzMTc3MzBmMTZlN2U3NzY4NjdhZTRmZGM1NjJkNmYxNWRlNTg1ZTdiOTRlZjQ5NmEzNjc2MzY3YTJjYmFhYjdiNjM2NjQ4YjAwNzZiYWQ1Y2RmMWUwOTc0MGVjNmE0NTFiZmY1MzRlZmEyMTUwOWYzYmE3N2I4MTAxYjkxZWE3ZTU1ZGRiZmUxNDAxNTE3MDY3ZDdiMDFhMmEwODc5ZjA4ODVjODk0YTg3Y2ZiNjhjNGQ3ZWU4OTA2MDQ4ODFhZWI5N2MyMmQxZjMzN2VmOTIzZTAzNWE2NDAwIgogCiBQS0NTNyBQYXJzZSBGYWlsdXJlIEludmFsaWQgQVNOMTogQ2hhbmdlIGxlbmd0aCBmcm9tIDMgdG8gNCAjNDU1LjAKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBwa2NzN19hc24xX2ZhaWw6IjMwODIwMzI2MDYwOTJhODY0ODg2ZjcwZDAxMDcwMmEwODIwMzE3MzA4MjAzMTMwMjAxMDEzMTBmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwYjA2MDkyYTg2NDg4NmY3MGQwMTA3MDEzMTgyMDJlZTMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTAyMTQ3YmRlZGRkMjQ0NGNkMWNkZmU1YzQxYTgxMDJjODliN2RmMmU2Y2JmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDA1YmVjZDg3MTk1YzFkZWZmOTBjMjRjOTEyNjliNTViM2YwNjliYzIyNWMzMjZjMzE0YzFhNTE3ODZmZmUxNGM4MzBiZTRlNGJjNzNjYmEzNmM5NzY3N2I0NDE2ODI3OWJlOTFlN2NkZjdjMTkzODZhZTIxODYyNzE5ZDEzYTNhMGZmZjA4MDNkNDYwOTYyZjJjZGE4MzcxNDg0ODczMjUyYzNkNzA1NGRiODE0M2UyYjA4MWEzODE2ZWQwODA0Y2E1MDk5YWU1ZmVjZTgzZDVjMmMzNzgzYjE5ODhiNGI0NmRjOTRlNTU1ODdhMTA3ZWExNTQ2YmYyMmQyOGEwOTdmNjUyYTQwNjZkYzI5NjUyNjkwNjlhZjJmNTE3NmJiOGNlOWNhNmQxMWY5Njc1N2YwMzIwNGY3NTY3MDM1ODdkMDBhZDQyNDc5NmM5MmZjN2FlYjZmNDk0NDMxOTk5ZWRhMzA5OTBlNGY1NzczNjMyZWQyNThmZTAyNzY2NzM1OTlkYTZmY2UzNWNkYWQ3NzI2YTBiYjAyNGNhZDk5NmI4OGUwY2I5ODg1NGNlYjVjMGI2ZWM3NDhkOWY5Y2U2YTZjZDQzNzg1OGJhY2I4MTQ2MThhMjcyZmYzYTQxNWM2ZTA3ZjNkYjA5ODg3NzdmZGVjODQ1YTk3YmY3ZDEwMmRkMDMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDQ1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMjAyMTQ1NjRkNTU0MDI1YWY1OTllMzI3MDc5YjI3MjBlZjAwZGYzN2NmYjdjMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDAwNDYwOThkYzVmMmI5OWUzYmMyZWQ2NjQyZDdmMGE2MWVmYWJjMTVjMzhjNzYzMzNiY2NjZWVlZTM2OWE0ZjRhNWJkZGE4ZWE1OTI2NDEyNGU0MjlmMDg2MzI2ODNkZGJhMTdiYmYyNjJkODJiNmJlZmEzYjRlMTQ4MDM3NmE4YzdmM2M3ZDdlMmE2Nzc5YmJmMTgyNjJhYTg1N2RlOGMyMGExMmI2YTJjZThlNGQ3ZjMxZGQxYjE5NTM5MmNmNjE4NWFmY2UzNGFmZTA1ODk2MDU3YjM2ZTliMTcxYjZjNjdlZDdjMjI4NmNiZmE4M2ZmOGExNjdjN2JjNzEwOWFlZTdkN2UxOTA5YmQzODRmYmZjNjE5MzhlZmNhNTFjODk5M2M3MWRiMzE3NzMwZjE2ZTdlNzc2ODY3YWU0ZmRjNTYyZDZmMTVkZTU4NWU3Yjk0ZWY0OTZhMzY3NjM2N2EyY2JhYWI3YjYzNjY0OGIwMDc2YmFkNWNkZjFlMDk3NDBlYzZhNDUxYmZmNTM0ZWZhMjE1MDlmM2JhNzdiODEwMWI5MWVhN2U1NWRkYmZlMTQwMTUxNzA2N2Q3YjAxYTJhMDg3OWYwODg1Yzg5NGE4N2NmYjY4YzRkN2VlODkwNjA0ODgxYWViOTdjMjJkMWYzMzdlZjkyM2UwMzVhNjQwMCIKIAogUEtDUzcgUGFyc2UgRmFpbHVyZSBJbnZhbGlkIEFTTjE6IENoYW5nZSBsZW5ndGggZnJvbSAzIHRvIDIgIzQ1Ni4wCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NgogcGtjczdfYXNuMV9mYWlsOiIzMDgyMDMyNjA2MDkyYTg2NDg4NmY3MGQwMTA3MDJhMDgyMDMxNzMwODIwMzEzMDIwMTAxMzEwZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGIwNjA5MmE4NjQ4ODZmNzBkMDEwNzAxMzE4MjAyZWUzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwNWJlY2Q4NzE5NWMxZGVmZjkwYzI0YzkxMjY5YjU1YjNmMDY5YmMyMjVjMzI2YzMxNGMxYTUxNzg2ZmZlMTRjODMwYmU0ZTRiYzczY2JhMzZjOTc2NzdiNDQxNjgyNzliZTkxZTdjZGY3YzE5Mzg2YWUyMTg2MjcxOWQxM2EzYTBmZmYwODAzZDQ2MDk2MmYyY2RhODM3MTQ4NDg3MzI1MmMzZDcwNTRkYjgxNDNlMmIwODFhMzgxNmVkMDgwNGNhNTA5OWFlNWZlY2U4M2Q1YzJjMzc4M2IxOTg4YjRiNDZkYzk0ZTU1NTg3YTEwN2VhMTU0NmJmMjJkMjhhMDk3ZjY1MmE0MDY2ZGMyOTY1MjY5MDY5YWYyZjUxNzZiYjhjZTljYTZkMTFmOTY3NTdmMDMyMDRmNzU2NzAzNTg3ZDAwYWQ0MjQ3OTZjOTJmYzdhZWI2ZjQ5NDQzMTk5OWVkYTMwOTkwZTRmNTc3MzYzMmVkMjU4ZmUwMjc2NjczNTk5ZGE2ZmNlMzVjZGFkNzcyNmEwYmIwMjRjYWQ5OTZiODhlMGNiOTg4NTRjZWI1YzBiNmVjNzQ4ZDlmOWNlNmE2Y2Q0Mzc4NThiYWNiODE0NjE4YTI3MmZmM2E0MTVjNmUwN2YzZGIwOTg4Nzc3ZmRlYzg0NWE5N2JmN2QxMDJkZDAzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAyNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzIwMjE0NTY0ZDU1NDAyNWFmNTk5ZTMyNzA3OWIyNzIwZWYwMGRmMzdjZmI3YzMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwMDQ2MDk4ZGM1ZjJiOTllM2JjMmVkNjY0MmQ3ZjBhNjFlZmFiYzE1YzM4Yzc2MzMzYmNjY2VlZWUzNjlhNGY0YTViZGRhOGVhNTkyNjQxMjRlNDI5ZjA4NjMyNjgzZGRiYTE3YmJmMjYyZDgyYjZiZWZhM2I0ZTE0ODAzNzZhOGM3ZjNjN2Q3ZTJhNjc3OWJiZjE4MjYyYWE4NTdkZThjMjBhMTJiNmEyY2U4ZTRkN2YzMWRkMWIxOTUzOTJjZjYxODVhZmNlMzRhZmUwNTg5NjA1N2IzNmU5YjE3MWI2YzY3ZWQ3YzIyODZjYmZhODNmZjhhMTY3YzdiYzcxMDlhZWU3ZDdlMTkwOWJkMzg0ZmJmYzYxOTM4ZWZjYTUxYzg5OTNjNzFkYjMxNzczMGYxNmU3ZTc3Njg2N2FlNGZkYzU2MmQ2ZjE1ZGU1ODVlN2I5NGVmNDk2YTM2NzYzNjdhMmNiYWFiN2I2MzY2NDhiMDA3NmJhZDVjZGYxZTA5NzQwZWM2YTQ1MWJmZjUzNGVmYTIxNTA5ZjNiYTc3YjgxMDFiOTFlYTdlNTVkZGJmZTE0MDE1MTcwNjdkN2IwMWEyYTA4NzlmMDg4NWM4OTRhODdjZmI2OGM0ZDdlZTg5MDYwNDg4MWFlYjk3YzIyZDFmMzM3ZWY5MjNlMDM1YTY0MDAiCiAKIFBLQ1M3IFBhcnNlIEZhaWx1cmUgSW52YWxpZCBBU04xOiBDaGFuZ2UgdGFnIDEzIHRvIDAyICM0NTcuMAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHBrY3M3X2FzbjFfZmFpbDoiMzA4MjAzMjYwNjA5MmE4NjQ4ODZmNzBkMDEwNzAyYTA4MjAzMTczMDgyMDMxMzAyMDEwMTMxMGYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBiMDYwOTJhODY0ODg2ZjcwZDAxMDcwMTMxODIwMmVlMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDViZWNkODcxOTVjMWRlZmY5MGMyNGM5MTI2OWI1NWIzZjA2OWJjMjI1YzMyNmMzMTRjMWE1MTc4NmZmZTE0YzgzMGJlNGU0YmM3M2NiYTM2Yzk3Njc3YjQ0MTY4Mjc5YmU5MWU3Y2RmN2MxOTM4NmFlMjE4NjI3MTlkMTNhM2EwZmZmMDgwM2Q0NjA5NjJmMmNkYTgzNzE0ODQ4NzMyNTJjM2Q3MDU0ZGI4MTQzZTJiMDgxYTM4MTZlZDA4MDRjYTUwOTlhZTVmZWNlODNkNWMyYzM3ODNiMTk4OGI0YjQ2ZGM5NGU1NTU4N2ExMDdlYTE1NDZiZjIyZDI4YTA5N2Y2NTJhNDA2NmRjMjk2NTI2OTA2OWFmMmY1MTc2YmI4Y2U5Y2E2ZDExZjk2NzU3ZjAzMjA0Zjc1NjcwMzU4N2QwMGFkNDI0Nzk2YzkyZmM3YWViNmY0OTQ0MzE5OTllZGEzMDk5MGU0ZjU3NzM2MzJlZDI1OGZlMDI3NjY3MzU5OWRhNmZjZTM1Y2RhZDc3MjZhMGJiMDI0Y2FkOTk2Yjg4ZTBjYjk4ODU0Y2ViNWMwYjZlYzc0OGQ5ZjljZTZhNmNkNDM3ODU4YmFjYjgxNDYxOGEyNzJmZjNhNDE1YzZlMDdmM2RiMDk4ODc3N2ZkZWM4NDVhOTdiZjdkMTAyZGQwMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjAyMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMyMDIxNDU2NGQ1NTQwMjVhZjU5OWUzMjcwNzliMjcyMGVmMDBkZjM3Y2ZiN2MzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDA0NjA5OGRjNWYyYjk5ZTNiYzJlZDY2NDJkN2YwYTYxZWZhYmMxNWMzOGM3NjMzM2JjY2NlZWVlMzY5YTRmNGE1YmRkYThlYTU5MjY0MTI0ZTQyOWYwODYzMjY4M2RkYmExN2JiZjI2MmQ4MmI2YmVmYTNiNGUxNDgwMzc2YThjN2YzYzdkN2UyYTY3NzliYmYxODI2MmFhODU3ZGU4YzIwYTEyYjZhMmNlOGU0ZDdmMzFkZDFiMTk1MzkyY2Y2MTg1YWZjZTM0YWZlMDU4OTYwNTdiMzZlOWIxNzFiNmM2N2VkN2MyMjg2Y2JmYTgzZmY4YTE2N2M3YmM3MTA5YWVlN2Q3ZTE5MDliZDM4NGZiZmM2MTkzOGVmY2E1MWM4OTkzYzcxZGIzMTc3MzBmMTZlN2U3NzY4NjdhZTRmZGM1NjJkNmYxNWRlNTg1ZTdiOTRlZjQ5NmEzNjc2MzY3YTJjYmFhYjdiNjM2NjQ4YjAwNzZiYWQ1Y2RmMWUwOTc0MGVjNmE0NTFiZmY1MzRlZmEyMTUwOWYzYmE3N2I4MTAxYjkxZWE3ZTU1ZGRiZmUxNDAxNTE3MDY3ZDdiMDFhMmEwODc5ZjA4ODVjODk0YTg3Y2ZiNjhjNGQ3ZWU4OTA2MDQ4ODFhZWI5N2MyMmQxZjMzN2VmOTIzZTAzNWE2NDAwIgogCiBQS0NTNyBQYXJzZSBGYWlsdXJlIEludmFsaWQgQVNOMTogQ2hhbmdlIGxlbmd0aCBmcm9tIDIgdG8gMyAjNDU4LjAKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBwa2NzN19hc24xX2ZhaWw6IjMwODIwMzI2MDYwOTJhODY0ODg2ZjcwZDAxMDcwMmEwODIwMzE3MzA4MjAzMTMwMjAxMDEzMTBmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwYjA2MDkyYTg2NDg4NmY3MGQwMTA3MDEzMTgyMDJlZTMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTAyMTQ3YmRlZGRkMjQ0NGNkMWNkZmU1YzQxYTgxMDJjODliN2RmMmU2Y2JmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDA1YmVjZDg3MTk1YzFkZWZmOTBjMjRjOTEyNjliNTViM2YwNjliYzIyNWMzMjZjMzE0YzFhNTE3ODZmZmUxNGM4MzBiZTRlNGJjNzNjYmEzNmM5NzY3N2I0NDE2ODI3OWJlOTFlN2NkZjdjMTkzODZhZTIxODYyNzE5ZDEzYTNhMGZmZjA4MDNkNDYwOTYyZjJjZGE4MzcxNDg0ODczMjUyYzNkNzA1NGRiODE0M2UyYjA4MWEzODE2ZWQwODA0Y2E1MDk5YWU1ZmVjZTgzZDVjMmMzNzgzYjE5ODhiNGI0NmRjOTRlNTU1ODdhMTA3ZWExNTQ2YmYyMmQyOGEwOTdmNjUyYTQwNjZkYzI5NjUyNjkwNjlhZjJmNTE3NmJiOGNlOWNhNmQxMWY5Njc1N2YwMzIwNGY3NTY3MDM1ODdkMDBhZDQyNDc5NmM5MmZjN2FlYjZmNDk0NDMxOTk5ZWRhMzA5OTBlNGY1NzczNjMyZWQyNThmZTAyNzY2NzM1OTlkYTZmY2UzNWNkYWQ3NzI2YTBiYjAyNGNhZDk5NmI4OGUwY2I5ODg1NGNlYjVjMGI2ZWM3NDhkOWY5Y2U2YTZjZDQzNzg1OGJhY2I4MTQ2MThhMjcyZmYzYTQxNWM2ZTA3ZjNkYjA5ODg3NzdmZGVjODQ1YTk3YmY3ZDEwMmRkMDMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAzNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMjAyMTQ1NjRkNTU0MDI1YWY1OTllMzI3MDc5YjI3MjBlZjAwZGYzN2NmYjdjMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDAwNDYwOThkYzVmMmI5OWUzYmMyZWQ2NjQyZDdmMGE2MWVmYWJjMTVjMzhjNzYzMzNiY2NjZWVlZTM2OWE0ZjRhNWJkZGE4ZWE1OTI2NDEyNGU0MjlmMDg2MzI2ODNkZGJhMTdiYmYyNjJkODJiNmJlZmEzYjRlMTQ4MDM3NmE4YzdmM2M3ZDdlMmE2Nzc5YmJmMTgyNjJhYTg1N2RlOGMyMGExMmI2YTJjZThlNGQ3ZjMxZGQxYjE5NTM5MmNmNjE4NWFmY2UzNGFmZTA1ODk2MDU3YjM2ZTliMTcxYjZjNjdlZDdjMjI4NmNiZmE4M2ZmOGExNjdjN2JjNzEwOWFlZTdkN2UxOTA5YmQzODRmYmZjNjE5MzhlZmNhNTFjODk5M2M3MWRiMzE3NzMwZjE2ZTdlNzc2ODY3YWU0ZmRjNTYyZDZmMTVkZTU4NWU3Yjk0ZWY0OTZhMzY3NjM2N2EyY2JhYWI3YjYzNjY0OGIwMDc2YmFkNWNkZjFlMDk3NDBlYzZhNDUxYmZmNTM0ZWZhMjE1MDlmM2JhNzdiODEwMWI5MWVhN2U1NWRkYmZlMTQwMTUxNzA2N2Q3YjAxYTJhMDg3OWYwODg1Yzg5NGE4N2NmYjY4YzRkN2VlODkwNjA0ODgxYWViOTdjMjJkMWYzMzdlZjkyM2UwMzVhNjQwMCIKIAogUEtDUzcgUGFyc2UgRmFpbHVyZSBJbnZhbGlkIEFTTjE6IENoYW5nZSBsZW5ndGggZnJvbSAyIHRvIDEgIzQ1OS4wCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NgogcGtjczdfYXNuMV9mYWlsOiIzMDgyMDMyNjA2MDkyYTg2NDg4NmY3MGQwMTA3MDJhMDgyMDMxNzMwODIwMzEzMDIwMTAxMzEwZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGIwNjA5MmE4NjQ4ODZmNzBkMDEwNzAxMzE4MjAyZWUzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwNWJlY2Q4NzE5NWMxZGVmZjkwYzI0YzkxMjY5YjU1YjNmMDY5YmMyMjVjMzI2YzMxNGMxYTUxNzg2ZmZlMTRjODMwYmU0ZTRiYzczY2JhMzZjOTc2NzdiNDQxNjgyNzliZTkxZTdjZGY3YzE5Mzg2YWUyMTg2MjcxOWQxM2EzYTBmZmYwODAzZDQ2MDk2MmYyY2RhODM3MTQ4NDg3MzI1MmMzZDcwNTRkYjgxNDNlMmIwODFhMzgxNmVkMDgwNGNhNTA5OWFlNWZlY2U4M2Q1YzJjMzc4M2IxOTg4YjRiNDZkYzk0ZTU1NTg3YTEwN2VhMTU0NmJmMjJkMjhhMDk3ZjY1MmE0MDY2ZGMyOTY1MjY5MDY5YWYyZjUxNzZiYjhjZTljYTZkMTFmOTY3NTdmMDMyMDRmNzU2NzAzNTg3ZDAwYWQ0MjQ3OTZjOTJmYzdhZWI2ZjQ5NDQzMTk5OWVkYTMwOTkwZTRmNTc3MzYzMmVkMjU4ZmUwMjc2NjczNTk5ZGE2ZmNlMzVjZGFkNzcyNmEwYmIwMjRjYWQ5OTZiODhlMGNiOTg4NTRjZWI1YzBiNmVjNzQ4ZDlmOWNlNmE2Y2Q0Mzc4NThiYWNiODE0NjE4YTI3MmZmM2E0MTVjNmUwN2YzZGIwOTg4Nzc3ZmRlYzg0NWE5N2JmN2QxMDJkZDAzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMTRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzIwMjE0NTY0ZDU1NDAyNWFmNTk5ZTMyNzA3OWIyNzIwZWYwMGRmMzdjZmI3YzMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwMDQ2MDk4ZGM1ZjJiOTllM2JjMmVkNjY0MmQ3ZjBhNjFlZmFiYzE1YzM4Yzc2MzMzYmNjY2VlZWUzNjlhNGY0YTViZGRhOGVhNTkyNjQxMjRlNDI5ZjA4NjMyNjgzZGRiYTE3YmJmMjYyZDgyYjZiZWZhM2I0ZTE0ODAzNzZhOGM3ZjNjN2Q3ZTJhNjc3OWJiZjE4MjYyYWE4NTdkZThjMjBhMTJiNmEyY2U4ZTRkN2YzMWRkMWIxOTUzOTJjZjYxODVhZmNlMzRhZmUwNTg5NjA1N2IzNmU5YjE3MWI2YzY3ZWQ3YzIyODZjYmZhODNmZjhhMTY3YzdiYzcxMDlhZWU3ZDdlMTkwOWJkMzg0ZmJmYzYxOTM4ZWZjYTUxYzg5OTNjNzFkYjMxNzczMGYxNmU3ZTc3Njg2N2FlNGZkYzU2MmQ2ZjE1ZGU1ODVlN2I5NGVmNDk2YTM2NzYzNjdhMmNiYWFiN2I2MzY2NDhiMDA3NmJhZDVjZGYxZTA5NzQwZWM2YTQ1MWJmZjUzNGVmYTIxNTA5ZjNiYTc3YjgxMDFiOTFlYTdlNTVkZGJmZTE0MDE1MTcwNjdkN2IwMWEyYTA4NzlmMDg4NWM4OTRhODdjZmI2OGM0ZDdlZTg5MDYwNDg4MWFlYjk3YzIyZDFmMzM3ZWY5MjNlMDM1YTY0MDAiCiAKIFBLQ1M3IFBhcnNlIEZhaWx1cmUgSW52YWxpZCBBU04xOiBDaGFuZ2UgdGFnIDMxIHRvIDAyICM0NjAuMAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHBrY3M3X2FzbjFfZmFpbDoiMzA4MjAzMjYwNjA5MmE4NjQ4ODZmNzBkMDEwNzAyYTA4MjAzMTczMDgyMDMxMzAyMDEwMTMxMGYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBiMDYwOTJhODY0ODg2ZjcwZDAxMDcwMTMxODIwMmVlMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDViZWNkODcxOTVjMWRlZmY5MGMyNGM5MTI2OWI1NWIzZjA2OWJjMjI1YzMyNmMzMTRjMWE1MTc4NmZmZTE0YzgzMGJlNGU0YmM3M2NiYTM2Yzk3Njc3YjQ0MTY4Mjc5YmU5MWU3Y2RmN2MxOTM4NmFlMjE4NjI3MTlkMTNhM2EwZmZmMDgwM2Q0NjA5NjJmMmNkYTgzNzE0ODQ4NzMyNTJjM2Q3MDU0ZGI4MTQzZTJiMDgxYTM4MTZlZDA4MDRjYTUwOTlhZTVmZWNlODNkNWMyYzM3ODNiMTk4OGI0YjQ2ZGM5NGU1NTU4N2ExMDdlYTE1NDZiZjIyZDI4YTA5N2Y2NTJhNDA2NmRjMjk2NTI2OTA2OWFmMmY1MTc2YmI4Y2U5Y2E2ZDExZjk2NzU3ZjAzMjA0Zjc1NjcwMzU4N2QwMGFkNDI0Nzk2YzkyZmM3YWViNmY0OTQ0MzE5OTllZGEzMDk5MGU0ZjU3NzM2MzJlZDI1OGZlMDI3NjY3MzU5OWRhNmZjZTM1Y2RhZDc3MjZhMGJiMDI0Y2FkOTk2Yjg4ZTBjYjk4ODU0Y2ViNWMwYjZlYzc0OGQ5ZjljZTZhNmNkNDM3ODU4YmFjYjgxNDYxOGEyNzJmZjNhNDE1YzZlMDdmM2RiMDk4ODc3N2ZkZWM4NDVhOTdiZjdkMTAyZGQwMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMDIwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMyMDIxNDU2NGQ1NTQwMjVhZjU5OWUzMjcwNzliMjcyMGVmMDBkZjM3Y2ZiN2MzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDA0NjA5OGRjNWYyYjk5ZTNiYzJlZDY2NDJkN2YwYTYxZWZhYmMxNWMzOGM3NjMzM2JjY2NlZWVlMzY5YTRmNGE1YmRkYThlYTU5MjY0MTI0ZTQyOWYwODYzMjY4M2RkYmExN2JiZjI2MmQ4MmI2YmVmYTNiNGUxNDgwMzc2YThjN2YzYzdkN2UyYTY3NzliYmYxODI2MmFhODU3ZGU4YzIwYTEyYjZhMmNlOGU0ZDdmMzFkZDFiMTk1MzkyY2Y2MTg1YWZjZTM0YWZlMDU4OTYwNTdiMzZlOWIxNzFiNmM2N2VkN2MyMjg2Y2JmYTgzZmY4YTE2N2M3YmM3MTA5YWVlN2Q3ZTE5MDliZDM4NGZiZmM2MTkzOGVmY2E1MWM4OTkzYzcxZGIzMTc3MzBmMTZlN2U3NzY4NjdhZTRmZGM1NjJkNmYxNWRlNTg1ZTdiOTRlZjQ5NmEzNjc2MzY3YTJjYmFhYjdiNjM2NjQ4YjAwNzZiYWQ1Y2RmMWUwOTc0MGVjNmE0NTFiZmY1MzRlZmEyMTUwOWYzYmE3N2I4MTAxYjkxZWE3ZTU1ZGRiZmUxNDAxNTE3MDY3ZDdiMDFhMmEwODc5ZjA4ODVjODk0YTg3Y2ZiNjhjNGQ3ZWU4OTA2MDQ4ODFhZWI5N2MyMmQxZjMzN2VmOTIzZTAzNWE2NDAwIgogCiBQS0NTNyBQYXJzZSBGYWlsdXJlIEludmFsaWQgQVNOMTogQ2hhbmdlIGxlbmd0aCBmcm9tIDE0IHRvIDE1ICM0NjEuMAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHBrY3M3X2FzbjFfZmFpbDoiMzA4MjAzMjYwNjA5MmE4NjQ4ODZmNzBkMDEwNzAyYTA4MjAzMTczMDgyMDMxMzAyMDEwMTMxMGYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBiMDYwOTJhODY0ODg2ZjcwZDAxMDcwMTMxODIwMmVlMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDViZWNkODcxOTVjMWRlZmY5MGMyNGM5MTI2OWI1NWIzZjA2OWJjMjI1YzMyNmMzMTRjMWE1MTc4NmZmZTE0YzgzMGJlNGU0YmM3M2NiYTM2Yzk3Njc3YjQ0MTY4Mjc5YmU5MWU3Y2RmN2MxOTM4NmFlMjE4NjI3MTlkMTNhM2EwZmZmMDgwM2Q0NjA5NjJmMmNkYTgzNzE0ODQ4NzMyNTJjM2Q3MDU0ZGI4MTQzZTJiMDgxYTM4MTZlZDA4MDRjYTUwOTlhZTVmZWNlODNkNWMyYzM3ODNiMTk4OGI0YjQ2ZGM5NGU1NTU4N2ExMDdlYTE1NDZiZjIyZDI4YTA5N2Y2NTJhNDA2NmRjMjk2NTI2OTA2OWFmMmY1MTc2YmI4Y2U5Y2E2ZDExZjk2NzU3ZjAzMjA0Zjc1NjcwMzU4N2QwMGFkNDI0Nzk2YzkyZmM3YWViNmY0OTQ0MzE5OTllZGEzMDk5MGU0ZjU3NzM2MzJlZDI1OGZlMDI3NjY3MzU5OWRhNmZjZTM1Y2RhZDc3MjZhMGJiMDI0Y2FkOTk2Yjg4ZTBjYjk4ODU0Y2ViNWMwYjZlYzc0OGQ5ZjljZTZhNmNkNDM3ODU4YmFjYjgxNDYxOGEyNzJmZjNhNDE1YzZlMDdmM2RiMDk4ODc3N2ZkZWM4NDVhOTdiZjdkMTAyZGQwMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZjMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMyMDIxNDU2NGQ1NTQwMjVhZjU5OWUzMjcwNzliMjcyMGVmMDBkZjM3Y2ZiN2MzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDA0NjA5OGRjNWYyYjk5ZTNiYzJlZDY2NDJkN2YwYTYxZWZhYmMxNWMzOGM3NjMzM2JjY2NlZWVlMzY5YTRmNGE1YmRkYThlYTU5MjY0MTI0ZTQyOWYwODYzMjY4M2RkYmExN2JiZjI2MmQ4MmI2YmVmYTNiNGUxNDgwMzc2YThjN2YzYzdkN2UyYTY3NzliYmYxODI2MmFhODU3ZGU4YzIwYTEyYjZhMmNlOGU0ZDdmMzFkZDFiMTk1MzkyY2Y2MTg1YWZjZTM0YWZlMDU4OTYwNTdiMzZlOWIxNzFiNmM2N2VkN2MyMjg2Y2JmYTgzZmY4YTE2N2M3YmM3MTA5YWVlN2Q3ZTE5MDliZDM4NGZiZmM2MTkzOGVmY2E1MWM4OTkzYzcxZGIzMTc3MzBmMTZlN2U3NzY4NjdhZTRmZGM1NjJkNmYxNWRlNTg1ZTdiOTRlZjQ5NmEzNjc2MzY3YTJjYmFhYjdiNjM2NjQ4YjAwNzZiYWQ1Y2RmMWUwOTc0MGVjNmE0NTFiZmY1MzRlZmEyMTUwOWYzYmE3N2I4MTAxYjkxZWE3ZTU1ZGRiZmUxNDAxNTE3MDY3ZDdiMDFhMmEwODc5ZjA4ODVjODk0YTg3Y2ZiNjhjNGQ3ZWU4OTA2MDQ4ODFhZWI5N2MyMmQxZjMzN2VmOTIzZTAzNWE2NDAwIgogCiBQS0NTNyBQYXJzZSBGYWlsdXJlIEludmFsaWQgQVNOMTogQ2hhbmdlIGNvbnRlbnRzIG9mIHRhZyAzMSB0byBjb250YWluIG9uZSB1bmFjY291bnRlZCBleHRyYSBieXRlICM0NjIuMAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHBrY3M3X2FzbjFfZmFpbDoiMzA4MjAzMjYwNjA5MmE4NjQ4ODZmNzBkMDEwNzAyYTA4MjAzMTczMDgyMDMxMzAyMDEwMTMxMGYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBiMDYwOTJhODY0ODg2ZjcwZDAxMDcwMTMxODIwMmVlMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDViZWNkODcxOTVjMWRlZmY5MGMyNGM5MTI2OWI1NWIzZjA2OWJjMjI1YzMyNmMzMTRjMWE1MTc4NmZmZTE0YzgzMGJlNGU0YmM3M2NiYTM2Yzk3Njc3YjQ0MTY4Mjc5YmU5MWU3Y2RmN2MxOTM4NmFlMjE4NjI3MTlkMTNhM2EwZmZmMDgwM2Q0NjA5NjJmMmNkYTgzNzE0ODQ4NzMyNTJjM2Q3MDU0ZGI4MTQzZTJiMDgxYTM4MTZlZDA4MDRjYTUwOTlhZTVmZWNlODNkNWMyYzM3ODNiMTk4OGI0YjQ2ZGM5NGU1NTU4N2ExMDdlYTE1NDZiZjIyZDI4YTA5N2Y2NTJhNDA2NmRjMjk2NTI2OTA2OWFmMmY1MTc2YmI4Y2U5Y2E2ZDExZjk2NzU3ZjAzMjA0Zjc1NjcwMzU4N2QwMGFkNDI0Nzk2YzkyZmM3YWViNmY0OTQ0MzE5OTllZGEzMDk5MGU0ZjU3NzM2MzJlZDI1OGZlMDI3NjY3MzU5OWRhNmZjZTM1Y2RhZDc3MjZhMGJiMDI0Y2FkOTk2Yjg4ZTBjYjk4ODU0Y2ViNWMwYjZlYzc0OGQ5ZjljZTZhNmNkNDM3ODU4YmFjYjgxNDYxOGEyNzJmZjNhNDE1YzZlMDdmM2RiMDk4ODc3N2ZkZWM4NDVhOTdiZjdkMTAyZGQwMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZjMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzcwMDMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzIwMjE0NTY0ZDU1NDAyNWFmNTk5ZTMyNzA3OWIyNzIwZWYwMGRmMzdjZmI3YzMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwMDQ2MDk4ZGM1ZjJiOTllM2JjMmVkNjY0MmQ3ZjBhNjFlZmFiYzE1YzM4Yzc2MzMzYmNjY2VlZWUzNjlhNGY0YTViZGRhOGVhNTkyNjQxMjRlNDI5ZjA4NjMyNjgzZGRiYTE3YmJmMjYyZDgyYjZiZWZhM2I0ZTE0ODAzNzZhOGM3ZjNjN2Q3ZTJhNjc3OWJiZjE4MjYyYWE4NTdkZThjMjBhMTJiNmEyY2U4ZTRkN2YzMWRkMWIxOTUzOTJjZjYxODVhZmNlMzRhZmUwNTg5NjA1N2IzNmU5YjE3MWI2YzY3ZWQ3YzIyODZjYmZhODNmZjhhMTY3YzdiYzcxMDlhZWU3ZDdlMTkwOWJkMzg0ZmJmYzYxOTM4ZWZjYTUxYzg5OTNjNzFkYjMxNzczMGYxNmU3ZTc3Njg2N2FlNGZkYzU2MmQ2ZjE1ZGU1ODVlN2I5NGVmNDk2YTM2NzYzNjdhMmNiYWFiN2I2MzY2NDhiMDA3NmJhZDVjZGYxZTA5NzQwZWM2YTQ1MWJmZjUzNGVmYTIxNTA5ZjNiYTc3YjgxMDFiOTFlYTdlNTVkZGJmZTE0MDE1MTcwNjdkN2IwMWEyYTA4NzlmMDg4NWM4OTRhODdjZmI2OGM0ZDdlZTg5MDYwNDg4MWFlYjk3YzIyZDFmMzM3ZWY5MjNlMDM1YTY0MDAiCiAKIFBLQ1M3IFBhcnNlIEZhaWx1cmUgSW52YWxpZCBBU04xOiBDaGFuZ2UgbGVuZ3RoIGZyb20gMTQgdG8gMTMgIzQ2My4wCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NgogcGtjczdfYXNuMV9mYWlsOiIzMDgyMDMyNjA2MDkyYTg2NDg4NmY3MGQwMTA3MDJhMDgyMDMxNzMwODIwMzEzMDIwMTAxMzEwZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGIwNjA5MmE4NjQ4ODZmNzBkMDEwNzAxMzE4MjAyZWUzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwNWJlY2Q4NzE5NWMxZGVmZjkwYzI0YzkxMjY5YjU1YjNmMDY5YmMyMjVjMzI2YzMxNGMxYTUxNzg2ZmZlMTRjODMwYmU0ZTRiYzczY2JhMzZjOTc2NzdiNDQxNjgyNzliZTkxZTdjZGY3YzE5Mzg2YWUyMTg2MjcxOWQxM2EzYTBmZmYwODAzZDQ2MDk2MmYyY2RhODM3MTQ4NDg3MzI1MmMzZDcwNTRkYjgxNDNlMmIwODFhMzgxNmVkMDgwNGNhNTA5OWFlNWZlY2U4M2Q1YzJjMzc4M2IxOTg4YjRiNDZkYzk0ZTU1NTg3YTEwN2VhMTU0NmJmMjJkMjhhMDk3ZjY1MmE0MDY2ZGMyOTY1MjY5MDY5YWYyZjUxNzZiYjhjZTljYTZkMTFmOTY3NTdmMDMyMDRmNzU2NzAzNTg3ZDAwYWQ0MjQ3OTZjOTJmYzdhZWI2ZjQ5NDQzMTk5OWVkYTMwOTkwZTRmNTc3MzYzMmVkMjU4ZmUwMjc2NjczNTk5ZGE2ZmNlMzVjZGFkNzcyNmEwYmIwMjRjYWQ5OTZiODhlMGNiOTg4NTRjZWI1YzBiNmVjNzQ4ZDlmOWNlNmE2Y2Q0Mzc4NThiYWNiODE0NjE4YTI3MmZmM2E0MTVjNmUwN2YzZGIwOTg4Nzc3ZmRlYzg0NWE5N2JmN2QxMDJkZDAzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBkMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzIwMjE0NTY0ZDU1NDAyNWFmNTk5ZTMyNzA3OWIyNzIwZWYwMGRmMzdjZmI3YzMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwMDQ2MDk4ZGM1ZjJiOTllM2JjMmVkNjY0MmQ3ZjBhNjFlZmFiYzE1YzM4Yzc2MzMzYmNjY2VlZWUzNjlhNGY0YTViZGRhOGVhNTkyNjQxMjRlNDI5ZjA4NjMyNjgzZGRiYTE3YmJmMjYyZDgyYjZiZWZhM2I0ZTE0ODAzNzZhOGM3ZjNjN2Q3ZTJhNjc3OWJiZjE4MjYyYWE4NTdkZThjMjBhMTJiNmEyY2U4ZTRkN2YzMWRkMWIxOTUzOTJjZjYxODVhZmNlMzRhZmUwNTg5NjA1N2IzNmU5YjE3MWI2YzY3ZWQ3YzIyODZjYmZhODNmZjhhMTY3YzdiYzcxMDlhZWU3ZDdlMTkwOWJkMzg0ZmJmYzYxOTM4ZWZjYTUxYzg5OTNjNzFkYjMxNzczMGYxNmU3ZTc3Njg2N2FlNGZkYzU2MmQ2ZjE1ZGU1ODVlN2I5NGVmNDk2YTM2NzYzNjdhMmNiYWFiN2I2MzY2NDhiMDA3NmJhZDVjZGYxZTA5NzQwZWM2YTQ1MWJmZjUzNGVmYTIxNTA5ZjNiYTc3YjgxMDFiOTFlYTdlNTVkZGJmZTE0MDE1MTcwNjdkN2IwMWEyYTA4NzlmMDg4NWM4OTRhODdjZmI2OGM0ZDdlZTg5MDYwNDg4MWFlYjk3YzIyZDFmMzM3ZWY5MjNlMDM1YTY0MDAiCiAKIFBLQ1M3IFBhcnNlIEZhaWx1cmUgSW52YWxpZCBBU04xOiBDaGFuZ2UgdGFnIDMwIHRvIDAyICM0NjQuMAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHBrY3M3X2FzbjFfZmFpbDoiMzA4MjAzMjYwNjA5MmE4NjQ4ODZmNzBkMDEwNzAyYTA4MjAzMTczMDgyMDMxMzAyMDEwMTMxMGYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBiMDYwOTJhODY0ODg2ZjcwZDAxMDcwMTMxODIwMmVlMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDViZWNkODcxOTVjMWRlZmY5MGMyNGM5MTI2OWI1NWIzZjA2OWJjMjI1YzMyNmMzMTRjMWE1MTc4NmZmZTE0YzgzMGJlNGU0YmM3M2NiYTM2Yzk3Njc3YjQ0MTY4Mjc5YmU5MWU3Y2RmN2MxOTM4NmFlMjE4NjI3MTlkMTNhM2EwZmZmMDgwM2Q0NjA5NjJmMmNkYTgzNzE0ODQ4NzMyNTJjM2Q3MDU0ZGI4MTQzZTJiMDgxYTM4MTZlZDA4MDRjYTUwOTlhZTVmZWNlODNkNWMyYzM3ODNiMTk4OGI0YjQ2ZGM5NGU1NTU4N2ExMDdlYTE1NDZiZjIyZDI4YTA5N2Y2NTJhNDA2NmRjMjk2NTI2OTA2OWFmMmY1MTc2YmI4Y2U5Y2E2ZDExZjk2NzU3ZjAzMjA0Zjc1NjcwMzU4N2QwMGFkNDI0Nzk2YzkyZmM3YWViNmY0OTQ0MzE5OTllZGEzMDk5MGU0ZjU3NzM2MzJlZDI1OGZlMDI3NjY3MzU5OWRhNmZjZTM1Y2RhZDc3MjZhMGJiMDI0Y2FkOTk2Yjg4ZTBjYjk4ODU0Y2ViNWMwYjZlYzc0OGQ5ZjljZTZhNmNkNDM3ODU4YmFjYjgxNDYxOGEyNzJmZjNhNDE1YzZlMDdmM2RiMDk4ODc3N2ZkZWM4NDVhOTdiZjdkMTAyZGQwMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTAyMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMyMDIxNDU2NGQ1NTQwMjVhZjU5OWUzMjcwNzliMjcyMGVmMDBkZjM3Y2ZiN2MzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDA0NjA5OGRjNWYyYjk5ZTNiYzJlZDY2NDJkN2YwYTYxZWZhYmMxNWMzOGM3NjMzM2JjY2NlZWVlMzY5YTRmNGE1YmRkYThlYTU5MjY0MTI0ZTQyOWYwODYzMjY4M2RkYmExN2JiZjI2MmQ4MmI2YmVmYTNiNGUxNDgwMzc2YThjN2YzYzdkN2UyYTY3NzliYmYxODI2MmFhODU3ZGU4YzIwYTEyYjZhMmNlOGU0ZDdmMzFkZDFiMTk1MzkyY2Y2MTg1YWZjZTM0YWZlMDU4OTYwNTdiMzZlOWIxNzFiNmM2N2VkN2MyMjg2Y2JmYTgzZmY4YTE2N2M3YmM3MTA5YWVlN2Q3ZTE5MDliZDM4NGZiZmM2MTkzOGVmY2E1MWM4OTkzYzcxZGIzMTc3MzBmMTZlN2U3NzY4NjdhZTRmZGM1NjJkNmYxNWRlNTg1ZTdiOTRlZjQ5NmEzNjc2MzY3YTJjYmFhYjdiNjM2NjQ4YjAwNzZiYWQ1Y2RmMWUwOTc0MGVjNmE0NTFiZmY1MzRlZmEyMTUwOWYzYmE3N2I4MTAxYjkxZWE3ZTU1ZGRiZmUxNDAxNTE3MDY3ZDdiMDFhMmEwODc5ZjA4ODVjODk0YTg3Y2ZiNjhjNGQ3ZWU4OTA2MDQ4ODFhZWI5N2MyMmQxZjMzN2VmOTIzZTAzNWE2NDAwIgogCiBQS0NTNyBQYXJzZSBGYWlsdXJlIEludmFsaWQgQVNOMTogQ2hhbmdlIGxlbmd0aCBmcm9tIDEyIHRvIDEzICM0NjUuMAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHBrY3M3X2FzbjFfZmFpbDoiMzA4MjAzMjYwNjA5MmE4NjQ4ODZmNzBkMDEwNzAyYTA4MjAzMTczMDgyMDMxMzAyMDEwMTMxMGYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBiMDYwOTJhODY0ODg2ZjcwZDAxMDcwMTMxODIwMmVlMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDViZWNkODcxOTVjMWRlZmY5MGMyNGM5MTI2OWI1NWIzZjA2OWJjMjI1YzMyNmMzMTRjMWE1MTc4NmZmZTE0YzgzMGJlNGU0YmM3M2NiYTM2Yzk3Njc3YjQ0MTY4Mjc5YmU5MWU3Y2RmN2MxOTM4NmFlMjE4NjI3MTlkMTNhM2EwZmZmMDgwM2Q0NjA5NjJmMmNkYTgzNzE0ODQ4NzMyNTJjM2Q3MDU0ZGI4MTQzZTJiMDgxYTM4MTZlZDA4MDRjYTUwOTlhZTVmZWNlODNkNWMyYzM3ODNiMTk4OGI0YjQ2ZGM5NGU1NTU4N2ExMDdlYTE1NDZiZjIyZDI4YTA5N2Y2NTJhNDA2NmRjMjk2NTI2OTA2OWFmMmY1MTc2YmI4Y2U5Y2E2ZDExZjk2NzU3ZjAzMjA0Zjc1NjcwMzU4N2QwMGFkNDI0Nzk2YzkyZmM3YWViNmY0OTQ0MzE5OTllZGEzMDk5MGU0ZjU3NzM2MzJlZDI1OGZlMDI3NjY3MzU5OWRhNmZjZTM1Y2RhZDc3MjZhMGJiMDI0Y2FkOTk2Yjg4ZTBjYjk4ODU0Y2ViNWMwYjZlYzc0OGQ5ZjljZTZhNmNkNDM3ODU4YmFjYjgxNDYxOGEyNzJmZjNhNDE1YzZlMDdmM2RiMDk4ODc3N2ZkZWM4NDVhOTdiZjdkMTAyZGQwMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGQwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMyMDIxNDU2NGQ1NTQwMjVhZjU5OWUzMjcwNzliMjcyMGVmMDBkZjM3Y2ZiN2MzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDA0NjA5OGRjNWYyYjk5ZTNiYzJlZDY2NDJkN2YwYTYxZWZhYmMxNWMzOGM3NjMzM2JjY2NlZWVlMzY5YTRmNGE1YmRkYThlYTU5MjY0MTI0ZTQyOWYwODYzMjY4M2RkYmExN2JiZjI2MmQ4MmI2YmVmYTNiNGUxNDgwMzc2YThjN2YzYzdkN2UyYTY3NzliYmYxODI2MmFhODU3ZGU4YzIwYTEyYjZhMmNlOGU0ZDdmMzFkZDFiMTk1MzkyY2Y2MTg1YWZjZTM0YWZlMDU4OTYwNTdiMzZlOWIxNzFiNmM2N2VkN2MyMjg2Y2JmYTgzZmY4YTE2N2M3YmM3MTA5YWVlN2Q3ZTE5MDliZDM4NGZiZmM2MTkzOGVmY2E1MWM4OTkzYzcxZGIzMTc3MzBmMTZlN2U3NzY4NjdhZTRmZGM1NjJkNmYxNWRlNTg1ZTdiOTRlZjQ5NmEzNjc2MzY3YTJjYmFhYjdiNjM2NjQ4YjAwNzZiYWQ1Y2RmMWUwOTc0MGVjNmE0NTFiZmY1MzRlZmEyMTUwOWYzYmE3N2I4MTAxYjkxZWE3ZTU1ZGRiZmUxNDAxNTE3MDY3ZDdiMDFhMmEwODc5ZjA4ODVjODk0YTg3Y2ZiNjhjNGQ3ZWU4OTA2MDQ4ODFhZWI5N2MyMmQxZjMzN2VmOTIzZTAzNWE2NDAwIgogCiBQS0NTNyBQYXJzZSBGYWlsdXJlIEludmFsaWQgQVNOMTogQ2hhbmdlIGNvbnRlbnRzIG9mIHRhZyAzMCB0byBjb250YWluIG9uZSB1bmFjY291bnRlZCBleHRyYSBieXRlICM0NjYuMAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHBrY3M3X2FzbjFfZmFpbDoiMzA4MjAzMjYwNjA5MmE4NjQ4ODZmNzBkMDEwNzAyYTA4MjAzMTczMDgyMDMxMzAyMDEwMTMxMGYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBiMDYwOTJhODY0ODg2ZjcwZDAxMDcwMTMxODIwMmVlMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDViZWNkODcxOTVjMWRlZmY5MGMyNGM5MTI2OWI1NWIzZjA2OWJjMjI1YzMyNmMzMTRjMWE1MTc4NmZmZTE0YzgzMGJlNGU0YmM3M2NiYTM2Yzk3Njc3YjQ0MTY4Mjc5YmU5MWU3Y2RmN2MxOTM4NmFlMjE4NjI3MTlkMTNhM2EwZmZmMDgwM2Q0NjA5NjJmMmNkYTgzNzE0ODQ4NzMyNTJjM2Q3MDU0ZGI4MTQzZTJiMDgxYTM4MTZlZDA4MDRjYTUwOTlhZTVmZWNlODNkNWMyYzM3ODNiMTk4OGI0YjQ2ZGM5NGU1NTU4N2ExMDdlYTE1NDZiZjIyZDI4YTA5N2Y2NTJhNDA2NmRjMjk2NTI2OTA2OWFmMmY1MTc2YmI4Y2U5Y2E2ZDExZjk2NzU3ZjAzMjA0Zjc1NjcwMzU4N2QwMGFkNDI0Nzk2YzkyZmM3YWViNmY0OTQ0MzE5OTllZGEzMDk5MGU0ZjU3NzM2MzJlZDI1OGZlMDI3NjY3MzU5OWRhNmZjZTM1Y2RhZDc3MjZhMGJiMDI0Y2FkOTk2Yjg4ZTBjYjk4ODU0Y2ViNWMwYjZlYzc0OGQ5ZjljZTZhNmNkNDM3ODU4YmFjYjgxNDYxOGEyNzJmZjNhNDE1YzZlMDdmM2RiMDk4ODc3N2ZkZWM4NDVhOTdiZjdkMTAyZGQwMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGQwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzcwMDMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzIwMjE0NTY0ZDU1NDAyNWFmNTk5ZTMyNzA3OWIyNzIwZWYwMGRmMzdjZmI3YzMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwMDQ2MDk4ZGM1ZjJiOTllM2JjMmVkNjY0MmQ3ZjBhNjFlZmFiYzE1YzM4Yzc2MzMzYmNjY2VlZWUzNjlhNGY0YTViZGRhOGVhNTkyNjQxMjRlNDI5ZjA4NjMyNjgzZGRiYTE3YmJmMjYyZDgyYjZiZWZhM2I0ZTE0ODAzNzZhOGM3ZjNjN2Q3ZTJhNjc3OWJiZjE4MjYyYWE4NTdkZThjMjBhMTJiNmEyY2U4ZTRkN2YzMWRkMWIxOTUzOTJjZjYxODVhZmNlMzRhZmUwNTg5NjA1N2IzNmU5YjE3MWI2YzY3ZWQ3YzIyODZjYmZhODNmZjhhMTY3YzdiYzcxMDlhZWU3ZDdlMTkwOWJkMzg0ZmJmYzYxOTM4ZWZjYTUxYzg5OTNjNzFkYjMxNzczMGYxNmU3ZTc3Njg2N2FlNGZkYzU2MmQ2ZjE1ZGU1ODVlN2I5NGVmNDk2YTM2NzYzNjdhMmNiYWFiN2I2MzY2NDhiMDA3NmJhZDVjZGYxZTA5NzQwZWM2YTQ1MWJmZjUzNGVmYTIxNTA5ZjNiYTc3YjgxMDFiOTFlYTdlNTVkZGJmZTE0MDE1MTcwNjdkN2IwMWEyYTA4NzlmMDg4NWM4OTRhODdjZmI2OGM0ZDdlZTg5MDYwNDg4MWFlYjk3YzIyZDFmMzM3ZWY5MjNlMDM1YTY0MDAiCiAKIFBLQ1M3IFBhcnNlIEZhaWx1cmUgSW52YWxpZCBBU04xOiBDaGFuZ2UgbGVuZ3RoIGZyb20gMTIgdG8gMTEgIzQ2Ny4wCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NgogcGtjczdfYXNuMV9mYWlsOiIzMDgyMDMyNjA2MDkyYTg2NDg4NmY3MGQwMTA3MDJhMDgyMDMxNzMwODIwMzEzMDIwMTAxMzEwZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGIwNjA5MmE4NjQ4ODZmNzBkMDEwNzAxMzE4MjAyZWUzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwNWJlY2Q4NzE5NWMxZGVmZjkwYzI0YzkxMjY5YjU1YjNmMDY5YmMyMjVjMzI2YzMxNGMxYTUxNzg2ZmZlMTRjODMwYmU0ZTRiYzczY2JhMzZjOTc2NzdiNDQxNjgyNzliZTkxZTdjZGY3YzE5Mzg2YWUyMTg2MjcxOWQxM2EzYTBmZmYwODAzZDQ2MDk2MmYyY2RhODM3MTQ4NDg3MzI1MmMzZDcwNTRkYjgxNDNlMmIwODFhMzgxNmVkMDgwNGNhNTA5OWFlNWZlY2U4M2Q1YzJjMzc4M2IxOTg4YjRiNDZkYzk0ZTU1NTg3YTEwN2VhMTU0NmJmMjJkMjhhMDk3ZjY1MmE0MDY2ZGMyOTY1MjY5MDY5YWYyZjUxNzZiYjhjZTljYTZkMTFmOTY3NTdmMDMyMDRmNzU2NzAzNTg3ZDAwYWQ0MjQ3OTZjOTJmYzdhZWI2ZjQ5NDQzMTk5OWVkYTMwOTkwZTRmNTc3MzYzMmVkMjU4ZmUwMjc2NjczNTk5ZGE2ZmNlMzVjZGFkNzcyNmEwYmIwMjRjYWQ5OTZiODhlMGNiOTg4NTRjZWI1YzBiNmVjNzQ4ZDlmOWNlNmE2Y2Q0Mzc4NThiYWNiODE0NjE4YTI3MmZmM2E0MTVjNmUwN2YzZGIwOTg4Nzc3ZmRlYzg0NWE5N2JmN2QxMDJkZDAzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYjA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzIwMjE0NTY0ZDU1NDAyNWFmNTk5ZTMyNzA3OWIyNzIwZWYwMGRmMzdjZmI3YzMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwMDQ2MDk4ZGM1ZjJiOTllM2JjMmVkNjY0MmQ3ZjBhNjFlZmFiYzE1YzM4Yzc2MzMzYmNjY2VlZWUzNjlhNGY0YTViZGRhOGVhNTkyNjQxMjRlNDI5ZjA4NjMyNjgzZGRiYTE3YmJmMjYyZDgyYjZiZWZhM2I0ZTE0ODAzNzZhOGM3ZjNjN2Q3ZTJhNjc3OWJiZjE4MjYyYWE4NTdkZThjMjBhMTJiNmEyY2U4ZTRkN2YzMWRkMWIxOTUzOTJjZjYxODVhZmNlMzRhZmUwNTg5NjA1N2IzNmU5YjE3MWI2YzY3ZWQ3YzIyODZjYmZhODNmZjhhMTY3YzdiYzcxMDlhZWU3ZDdlMTkwOWJkMzg0ZmJmYzYxOTM4ZWZjYTUxYzg5OTNjNzFkYjMxNzczMGYxNmU3ZTc3Njg2N2FlNGZkYzU2MmQ2ZjE1ZGU1ODVlN2I5NGVmNDk2YTM2NzYzNjdhMmNiYWFiN2I2MzY2NDhiMDA3NmJhZDVjZGYxZTA5NzQwZWM2YTQ1MWJmZjUzNGVmYTIxNTA5ZjNiYTc3YjgxMDFiOTFlYTdlNTVkZGJmZTE0MDE1MTcwNjdkN2IwMWEyYTA4NzlmMDg4NWM4OTRhODdjZmI2OGM0ZDdlZTg5MDYwNDg4MWFlYjk3YzIyZDFmMzM3ZWY5MjNlMDM1YTY0MDAiCiAKIFBLQ1M3IFBhcnNlIEZhaWx1cmUgSW52YWxpZCBBU04xOiBDaGFuZ2UgdGFnIDA2IHRvIDAyICM0NjguMAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHBrY3M3X2FzbjFfZmFpbDoiMzA4MjAzMjYwNjA5MmE4NjQ4ODZmNzBkMDEwNzAyYTA4MjAzMTczMDgyMDMxMzAyMDEwMTMxMGYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBiMDYwOTJhODY0ODg2ZjcwZDAxMDcwMTMxODIwMmVlMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDViZWNkODcxOTVjMWRlZmY5MGMyNGM5MTI2OWI1NWIzZjA2OWJjMjI1YzMyNmMzMTRjMWE1MTc4NmZmZTE0YzgzMGJlNGU0YmM3M2NiYTM2Yzk3Njc3YjQ0MTY4Mjc5YmU5MWU3Y2RmN2MxOTM4NmFlMjE4NjI3MTlkMTNhM2EwZmZmMDgwM2Q0NjA5NjJmMmNkYTgzNzE0ODQ4NzMyNTJjM2Q3MDU0ZGI4MTQzZTJiMDgxYTM4MTZlZDA4MDRjYTUwOTlhZTVmZWNlODNkNWMyYzM3ODNiMTk4OGI0YjQ2ZGM5NGU1NTU4N2ExMDdlYTE1NDZiZjIyZDI4YTA5N2Y2NTJhNDA2NmRjMjk2NTI2OTA2OWFmMmY1MTc2YmI4Y2U5Y2E2ZDExZjk2NzU3ZjAzMjA0Zjc1NjcwMzU4N2QwMGFkNDI0Nzk2YzkyZmM3YWViNmY0OTQ0MzE5OTllZGEzMDk5MGU0ZjU3NzM2MzJlZDI1OGZlMDI3NjY3MzU5OWRhNmZjZTM1Y2RhZDc3MjZhMGJiMDI0Y2FkOTk2Yjg4ZTBjYjk4ODU0Y2ViNWMwYjZlYzc0OGQ5ZjljZTZhNmNkNDM3ODU4YmFjYjgxNDYxOGEyNzJmZjNhNDE1YzZlMDdmM2RiMDk4ODc3N2ZkZWM4NDVhOTdiZjdkMTAyZGQwMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwMjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMyMDIxNDU2NGQ1NTQwMjVhZjU5OWUzMjcwNzliMjcyMGVmMDBkZjM3Y2ZiN2MzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDA0NjA5OGRjNWYyYjk5ZTNiYzJlZDY2NDJkN2YwYTYxZWZhYmMxNWMzOGM3NjMzM2JjY2NlZWVlMzY5YTRmNGE1YmRkYThlYTU5MjY0MTI0ZTQyOWYwODYzMjY4M2RkYmExN2JiZjI2MmQ4MmI2YmVmYTNiNGUxNDgwMzc2YThjN2YzYzdkN2UyYTY3NzliYmYxODI2MmFhODU3ZGU4YzIwYTEyYjZhMmNlOGU0ZDdmMzFkZDFiMTk1MzkyY2Y2MTg1YWZjZTM0YWZlMDU4OTYwNTdiMzZlOWIxNzFiNmM2N2VkN2MyMjg2Y2JmYTgzZmY4YTE2N2M3YmM3MTA5YWVlN2Q3ZTE5MDliZDM4NGZiZmM2MTkzOGVmY2E1MWM4OTkzYzcxZGIzMTc3MzBmMTZlN2U3NzY4NjdhZTRmZGM1NjJkNmYxNWRlNTg1ZTdiOTRlZjQ5NmEzNjc2MzY3YTJjYmFhYjdiNjM2NjQ4YjAwNzZiYWQ1Y2RmMWUwOTc0MGVjNmE0NTFiZmY1MzRlZmEyMTUwOWYzYmE3N2I4MTAxYjkxZWE3ZTU1ZGRiZmUxNDAxNTE3MDY3ZDdiMDFhMmEwODc5ZjA4ODVjODk0YTg3Y2ZiNjhjNGQ3ZWU4OTA2MDQ4ODFhZWI5N2MyMmQxZjMzN2VmOTIzZTAzNWE2NDAwIgogCiBQS0NTNyBQYXJzZSBGYWlsdXJlIEludmFsaWQgQVNOMTogQ2hhbmdlIGxlbmd0aCBmcm9tIDMgdG8gNCAjNDY5LjAKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBwa2NzN19hc24xX2ZhaWw6IjMwODIwMzI2MDYwOTJhODY0ODg2ZjcwZDAxMDcwMmEwODIwMzE3MzA4MjAzMTMwMjAxMDEzMTBmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwYjA2MDkyYTg2NDg4NmY3MGQwMTA3MDEzMTgyMDJlZTMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTAyMTQ3YmRlZGRkMjQ0NGNkMWNkZmU1YzQxYTgxMDJjODliN2RmMmU2Y2JmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDA1YmVjZDg3MTk1YzFkZWZmOTBjMjRjOTEyNjliNTViM2YwNjliYzIyNWMzMjZjMzE0YzFhNTE3ODZmZmUxNGM4MzBiZTRlNGJjNzNjYmEzNmM5NzY3N2I0NDE2ODI3OWJlOTFlN2NkZjdjMTkzODZhZTIxODYyNzE5ZDEzYTNhMGZmZjA4MDNkNDYwOTYyZjJjZGE4MzcxNDg0ODczMjUyYzNkNzA1NGRiODE0M2UyYjA4MWEzODE2ZWQwODA0Y2E1MDk5YWU1ZmVjZTgzZDVjMmMzNzgzYjE5ODhiNGI0NmRjOTRlNTU1ODdhMTA3ZWExNTQ2YmYyMmQyOGEwOTdmNjUyYTQwNjZkYzI5NjUyNjkwNjlhZjJmNTE3NmJiOGNlOWNhNmQxMWY5Njc1N2YwMzIwNGY3NTY3MDM1ODdkMDBhZDQyNDc5NmM5MmZjN2FlYjZmNDk0NDMxOTk5ZWRhMzA5OTBlNGY1NzczNjMyZWQyNThmZTAyNzY2NzM1OTlkYTZmY2UzNWNkYWQ3NzI2YTBiYjAyNGNhZDk5NmI4OGUwY2I5ODg1NGNlYjVjMGI2ZWM3NDhkOWY5Y2U2YTZjZDQzNzg1OGJhY2I4MTQ2MThhMjcyZmYzYTQxNWM2ZTA3ZjNkYjA5ODg3NzdmZGVjODQ1YTk3YmY3ZDEwMmRkMDMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwNDU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMjAyMTQ1NjRkNTU0MDI1YWY1OTllMzI3MDc5YjI3MjBlZjAwZGYzN2NmYjdjMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDAwNDYwOThkYzVmMmI5OWUzYmMyZWQ2NjQyZDdmMGE2MWVmYWJjMTVjMzhjNzYzMzNiY2NjZWVlZTM2OWE0ZjRhNWJkZGE4ZWE1OTI2NDEyNGU0MjlmMDg2MzI2ODNkZGJhMTdiYmYyNjJkODJiNmJlZmEzYjRlMTQ4MDM3NmE4YzdmM2M3ZDdlMmE2Nzc5YmJmMTgyNjJhYTg1N2RlOGMyMGExMmI2YTJjZThlNGQ3ZjMxZGQxYjE5NTM5MmNmNjE4NWFmY2UzNGFmZTA1ODk2MDU3YjM2ZTliMTcxYjZjNjdlZDdjMjI4NmNiZmE4M2ZmOGExNjdjN2JjNzEwOWFlZTdkN2UxOTA5YmQzODRmYmZjNjE5MzhlZmNhNTFjODk5M2M3MWRiMzE3NzMwZjE2ZTdlNzc2ODY3YWU0ZmRjNTYyZDZmMTVkZTU4NWU3Yjk0ZWY0OTZhMzY3NjM2N2EyY2JhYWI3YjYzNjY0OGIwMDc2YmFkNWNkZjFlMDk3NDBlYzZhNDUxYmZmNTM0ZWZhMjE1MDlmM2JhNzdiODEwMWI5MWVhN2U1NWRkYmZlMTQwMTUxNzA2N2Q3YjAxYTJhMDg3OWYwODg1Yzg5NGE4N2NmYjY4YzRkN2VlODkwNjA0ODgxYWViOTdjMjJkMWYzMzdlZjkyM2UwMzVhNjQwMCIKIAogUEtDUzcgUGFyc2UgRmFpbHVyZSBJbnZhbGlkIEFTTjE6IENoYW5nZSBsZW5ndGggZnJvbSAzIHRvIDIgIzQ3MC4wCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NgogcGtjczdfYXNuMV9mYWlsOiIzMDgyMDMyNjA2MDkyYTg2NDg4NmY3MGQwMTA3MDJhMDgyMDMxNzMwODIwMzEzMDIwMTAxMzEwZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGIwNjA5MmE4NjQ4ODZmNzBkMDEwNzAxMzE4MjAyZWUzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwNWJlY2Q4NzE5NWMxZGVmZjkwYzI0YzkxMjY5YjU1YjNmMDY5YmMyMjVjMzI2YzMxNGMxYTUxNzg2ZmZlMTRjODMwYmU0ZTRiYzczY2JhMzZjOTc2NzdiNDQxNjgyNzliZTkxZTdjZGY3YzE5Mzg2YWUyMTg2MjcxOWQxM2EzYTBmZmYwODAzZDQ2MDk2MmYyY2RhODM3MTQ4NDg3MzI1MmMzZDcwNTRkYjgxNDNlMmIwODFhMzgxNmVkMDgwNGNhNTA5OWFlNWZlY2U4M2Q1YzJjMzc4M2IxOTg4YjRiNDZkYzk0ZTU1NTg3YTEwN2VhMTU0NmJmMjJkMjhhMDk3ZjY1MmE0MDY2ZGMyOTY1MjY5MDY5YWYyZjUxNzZiYjhjZTljYTZkMTFmOTY3NTdmMDMyMDRmNzU2NzAzNTg3ZDAwYWQ0MjQ3OTZjOTJmYzdhZWI2ZjQ5NDQzMTk5OWVkYTMwOTkwZTRmNTc3MzYzMmVkMjU4ZmUwMjc2NjczNTk5ZGE2ZmNlMzVjZGFkNzcyNmEwYmIwMjRjYWQ5OTZiODhlMGNiOTg4NTRjZWI1YzBiNmVjNzQ4ZDlmOWNlNmE2Y2Q0Mzc4NThiYWNiODE0NjE4YTI3MmZmM2E0MTVjNmUwN2YzZGIwOTg4Nzc3ZmRlYzg0NWE5N2JmN2QxMDJkZDAzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDI1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzIwMjE0NTY0ZDU1NDAyNWFmNTk5ZTMyNzA3OWIyNzIwZWYwMGRmMzdjZmI3YzMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwMDQ2MDk4ZGM1ZjJiOTllM2JjMmVkNjY0MmQ3ZjBhNjFlZmFiYzE1YzM4Yzc2MzMzYmNjY2VlZWUzNjlhNGY0YTViZGRhOGVhNTkyNjQxMjRlNDI5ZjA4NjMyNjgzZGRiYTE3YmJmMjYyZDgyYjZiZWZhM2I0ZTE0ODAzNzZhOGM3ZjNjN2Q3ZTJhNjc3OWJiZjE4MjYyYWE4NTdkZThjMjBhMTJiNmEyY2U4ZTRkN2YzMWRkMWIxOTUzOTJjZjYxODVhZmNlMzRhZmUwNTg5NjA1N2IzNmU5YjE3MWI2YzY3ZWQ3YzIyODZjYmZhODNmZjhhMTY3YzdiYzcxMDlhZWU3ZDdlMTkwOWJkMzg0ZmJmYzYxOTM4ZWZjYTUxYzg5OTNjNzFkYjMxNzczMGYxNmU3ZTc3Njg2N2FlNGZkYzU2MmQ2ZjE1ZGU1ODVlN2I5NGVmNDk2YTM2NzYzNjdhMmNiYWFiN2I2MzY2NDhiMDA3NmJhZDVjZGYxZTA5NzQwZWM2YTQ1MWJmZjUzNGVmYTIxNTA5ZjNiYTc3YjgxMDFiOTFlYTdlNTVkZGJmZTE0MDE1MTcwNjdkN2IwMWEyYTA4NzlmMDg4NWM4OTRhODdjZmI2OGM0ZDdlZTg5MDYwNDg4MWFlYjk3YzIyZDFmMzM3ZWY5MjNlMDM1YTY0MDAiCiAKIFBLQ1M3IFBhcnNlIEZhaWx1cmUgSW52YWxpZCBBU04xOiBDaGFuZ2UgdGFnIDBjIHRvIDAyICM0NzEuMAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHBrY3M3X2FzbjFfZmFpbDoiMzA4MjAzMjYwNjA5MmE4NjQ4ODZmNzBkMDEwNzAyYTA4MjAzMTczMDgyMDMxMzAyMDEwMTMxMGYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBiMDYwOTJhODY0ODg2ZjcwZDAxMDcwMTMxODIwMmVlMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDViZWNkODcxOTVjMWRlZmY5MGMyNGM5MTI2OWI1NWIzZjA2OWJjMjI1YzMyNmMzMTRjMWE1MTc4NmZmZTE0YzgzMGJlNGU0YmM3M2NiYTM2Yzk3Njc3YjQ0MTY4Mjc5YmU5MWU3Y2RmN2MxOTM4NmFlMjE4NjI3MTlkMTNhM2EwZmZmMDgwM2Q0NjA5NjJmMmNkYTgzNzE0ODQ4NzMyNTJjM2Q3MDU0ZGI4MTQzZTJiMDgxYTM4MTZlZDA4MDRjYTUwOTlhZTVmZWNlODNkNWMyYzM3ODNiMTk4OGI0YjQ2ZGM5NGU1NTU4N2ExMDdlYTE1NDZiZjIyZDI4YTA5N2Y2NTJhNDA2NmRjMjk2NTI2OTA2OWFmMmY1MTc2YmI4Y2U5Y2E2ZDExZjk2NzU3ZjAzMjA0Zjc1NjcwMzU4N2QwMGFkNDI0Nzk2YzkyZmM3YWViNmY0OTQ0MzE5OTllZGEzMDk5MGU0ZjU3NzM2MzJlZDI1OGZlMDI3NjY3MzU5OWRhNmZjZTM1Y2RhZDc3MjZhMGJiMDI0Y2FkOTk2Yjg4ZTBjYjk4ODU0Y2ViNWMwYjZlYzc0OGQ5ZjljZTZhNmNkNDM3ODU4YmFjYjgxNDYxOGEyNzJmZjNhNDE1YzZlMDdmM2RiMDk4ODc3N2ZkZWM4NDVhOTdiZjdkMTAyZGQwMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMDIwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMyMDIxNDU2NGQ1NTQwMjVhZjU5OWUzMjcwNzliMjcyMGVmMDBkZjM3Y2ZiN2MzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDA0NjA5OGRjNWYyYjk5ZTNiYzJlZDY2NDJkN2YwYTYxZWZhYmMxNWMzOGM3NjMzM2JjY2NlZWVlMzY5YTRmNGE1YmRkYThlYTU5MjY0MTI0ZTQyOWYwODYzMjY4M2RkYmExN2JiZjI2MmQ4MmI2YmVmYTNiNGUxNDgwMzc2YThjN2YzYzdkN2UyYTY3NzliYmYxODI2MmFhODU3ZGU4YzIwYTEyYjZhMmNlOGU0ZDdmMzFkZDFiMTk1MzkyY2Y2MTg1YWZjZTM0YWZlMDU4OTYwNTdiMzZlOWIxNzFiNmM2N2VkN2MyMjg2Y2JmYTgzZmY4YTE2N2M3YmM3MTA5YWVlN2Q3ZTE5MDliZDM4NGZiZmM2MTkzOGVmY2E1MWM4OTkzYzcxZGIzMTc3MzBmMTZlN2U3NzY4NjdhZTRmZGM1NjJkNmYxNWRlNTg1ZTdiOTRlZjQ5NmEzNjc2MzY3YTJjYmFhYjdiNjM2NjQ4YjAwNzZiYWQ1Y2RmMWUwOTc0MGVjNmE0NTFiZmY1MzRlZmEyMTUwOWYzYmE3N2I4MTAxYjkxZWE3ZTU1ZGRiZmUxNDAxNTE3MDY3ZDdiMDFhMmEwODc5ZjA4ODVjODk0YTg3Y2ZiNjhjNGQ3ZWU4OTA2MDQ4ODFhZWI5N2MyMmQxZjMzN2VmOTIzZTAzNWE2NDAwIgogCiBQS0NTNyBQYXJzZSBGYWlsdXJlIEludmFsaWQgQVNOMTogQ2hhbmdlIGxlbmd0aCBmcm9tIDUgdG8gNiAjNDcyLjAKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBwa2NzN19hc24xX2ZhaWw6IjMwODIwMzI2MDYwOTJhODY0ODg2ZjcwZDAxMDcwMmEwODIwMzE3MzA4MjAzMTMwMjAxMDEzMTBmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwYjA2MDkyYTg2NDg4NmY3MGQwMTA3MDEzMTgyMDJlZTMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTAyMTQ3YmRlZGRkMjQ0NGNkMWNkZmU1YzQxYTgxMDJjODliN2RmMmU2Y2JmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDA1YmVjZDg3MTk1YzFkZWZmOTBjMjRjOTEyNjliNTViM2YwNjliYzIyNWMzMjZjMzE0YzFhNTE3ODZmZmUxNGM4MzBiZTRlNGJjNzNjYmEzNmM5NzY3N2I0NDE2ODI3OWJlOTFlN2NkZjdjMTkzODZhZTIxODYyNzE5ZDEzYTNhMGZmZjA4MDNkNDYwOTYyZjJjZGE4MzcxNDg0ODczMjUyYzNkNzA1NGRiODE0M2UyYjA4MWEzODE2ZWQwODA0Y2E1MDk5YWU1ZmVjZTgzZDVjMmMzNzgzYjE5ODhiNGI0NmRjOTRlNTU1ODdhMTA3ZWExNTQ2YmYyMmQyOGEwOTdmNjUyYTQwNjZkYzI5NjUyNjkwNjlhZjJmNTE3NmJiOGNlOWNhNmQxMWY5Njc1N2YwMzIwNGY3NTY3MDM1ODdkMDBhZDQyNDc5NmM5MmZjN2FlYjZmNDk0NDMxOTk5ZWRhMzA5OTBlNGY1NzczNjMyZWQyNThmZTAyNzY2NzM1OTlkYTZmY2UzNWNkYWQ3NzI2YTBiYjAyNGNhZDk5NmI4OGUwY2I5ODg1NGNlYjVjMGI2ZWM3NDhkOWY5Y2U2YTZjZDQzNzg1OGJhY2I4MTQ2MThhMjcyZmYzYTQxNWM2ZTA3ZjNkYjA5ODg3NzdmZGVjODQ1YTk3YmY3ZDEwMmRkMDMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDY1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMjAyMTQ1NjRkNTU0MDI1YWY1OTllMzI3MDc5YjI3MjBlZjAwZGYzN2NmYjdjMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDAwNDYwOThkYzVmMmI5OWUzYmMyZWQ2NjQyZDdmMGE2MWVmYWJjMTVjMzhjNzYzMzNiY2NjZWVlZTM2OWE0ZjRhNWJkZGE4ZWE1OTI2NDEyNGU0MjlmMDg2MzI2ODNkZGJhMTdiYmYyNjJkODJiNmJlZmEzYjRlMTQ4MDM3NmE4YzdmM2M3ZDdlMmE2Nzc5YmJmMTgyNjJhYTg1N2RlOGMyMGExMmI2YTJjZThlNGQ3ZjMxZGQxYjE5NTM5MmNmNjE4NWFmY2UzNGFmZTA1ODk2MDU3YjM2ZTliMTcxYjZjNjdlZDdjMjI4NmNiZmE4M2ZmOGExNjdjN2JjNzEwOWFlZTdkN2UxOTA5YmQzODRmYmZjNjE5MzhlZmNhNTFjODk5M2M3MWRiMzE3NzMwZjE2ZTdlNzc2ODY3YWU0ZmRjNTYyZDZmMTVkZTU4NWU3Yjk0ZWY0OTZhMzY3NjM2N2EyY2JhYWI3YjYzNjY0OGIwMDc2YmFkNWNkZjFlMDk3NDBlYzZhNDUxYmZmNTM0ZWZhMjE1MDlmM2JhNzdiODEwMWI5MWVhN2U1NWRkYmZlMTQwMTUxNzA2N2Q3YjAxYTJhMDg3OWYwODg1Yzg5NGE4N2NmYjY4YzRkN2VlODkwNjA0ODgxYWViOTdjMjJkMWYzMzdlZjkyM2UwMzVhNjQwMCIKIAogUEtDUzcgUGFyc2UgRmFpbHVyZSBJbnZhbGlkIEFTTjE6IENoYW5nZSBsZW5ndGggZnJvbSA1IHRvIDQgIzQ3My4wCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NgogcGtjczdfYXNuMV9mYWlsOiIzMDgyMDMyNjA2MDkyYTg2NDg4NmY3MGQwMTA3MDJhMDgyMDMxNzMwODIwMzEzMDIwMTAxMzEwZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGIwNjA5MmE4NjQ4ODZmNzBkMDEwNzAxMzE4MjAyZWUzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwNWJlY2Q4NzE5NWMxZGVmZjkwYzI0YzkxMjY5YjU1YjNmMDY5YmMyMjVjMzI2YzMxNGMxYTUxNzg2ZmZlMTRjODMwYmU0ZTRiYzczY2JhMzZjOTc2NzdiNDQxNjgyNzliZTkxZTdjZGY3YzE5Mzg2YWUyMTg2MjcxOWQxM2EzYTBmZmYwODAzZDQ2MDk2MmYyY2RhODM3MTQ4NDg3MzI1MmMzZDcwNTRkYjgxNDNlMmIwODFhMzgxNmVkMDgwNGNhNTA5OWFlNWZlY2U4M2Q1YzJjMzc4M2IxOTg4YjRiNDZkYzk0ZTU1NTg3YTEwN2VhMTU0NmJmMjJkMjhhMDk3ZjY1MmE0MDY2ZGMyOTY1MjY5MDY5YWYyZjUxNzZiYjhjZTljYTZkMTFmOTY3NTdmMDMyMDRmNzU2NzAzNTg3ZDAwYWQ0MjQ3OTZjOTJmYzdhZWI2ZjQ5NDQzMTk5OWVkYTMwOTkwZTRmNTc3MzYzMmVkMjU4ZmUwMjc2NjczNTk5ZGE2ZmNlMzVjZGFkNzcyNmEwYmIwMjRjYWQ5OTZiODhlMGNiOTg4NTRjZWI1YzBiNmVjNzQ4ZDlmOWNlNmE2Y2Q0Mzc4NThiYWNiODE0NjE4YTI3MmZmM2E0MTVjNmUwN2YzZGIwOTg4Nzc3ZmRlYzg0NWE5N2JmN2QxMDJkZDAzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA0NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzIwMjE0NTY0ZDU1NDAyNWFmNTk5ZTMyNzA3OWIyNzIwZWYwMGRmMzdjZmI3YzMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwMDQ2MDk4ZGM1ZjJiOTllM2JjMmVkNjY0MmQ3ZjBhNjFlZmFiYzE1YzM4Yzc2MzMzYmNjY2VlZWUzNjlhNGY0YTViZGRhOGVhNTkyNjQxMjRlNDI5ZjA4NjMyNjgzZGRiYTE3YmJmMjYyZDgyYjZiZWZhM2I0ZTE0ODAzNzZhOGM3ZjNjN2Q3ZTJhNjc3OWJiZjE4MjYyYWE4NTdkZThjMjBhMTJiNmEyY2U4ZTRkN2YzMWRkMWIxOTUzOTJjZjYxODVhZmNlMzRhZmUwNTg5NjA1N2IzNmU5YjE3MWI2YzY3ZWQ3YzIyODZjYmZhODNmZjhhMTY3YzdiYzcxMDlhZWU3ZDdlMTkwOWJkMzg0ZmJmYzYxOTM4ZWZjYTUxYzg5OTNjNzFkYjMxNzczMGYxNmU3ZTc3Njg2N2FlNGZkYzU2MmQ2ZjE1ZGU1ODVlN2I5NGVmNDk2YTM2NzYzNjdhMmNiYWFiN2I2MzY2NDhiMDA3NmJhZDVjZGYxZTA5NzQwZWM2YTQ1MWJmZjUzNGVmYTIxNTA5ZjNiYTc3YjgxMDFiOTFlYTdlNTVkZGJmZTE0MDE1MTcwNjdkN2IwMWEyYTA4NzlmMDg4NWM4OTRhODdjZmI2OGM0ZDdlZTg5MDYwNDg4MWFlYjk3YzIyZDFmMzM3ZWY5MjNlMDM1YTY0MDAiCiAKIFBLQ1M3IFBhcnNlIEZhaWx1cmUgSW52YWxpZCBBU04xOiBDaGFuZ2UgdGFnIDMxIHRvIDAyICM0NzQuMAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHBrY3M3X2FzbjFfZmFpbDoiMzA4MjAzMjYwNjA5MmE4NjQ4ODZmNzBkMDEwNzAyYTA4MjAzMTczMDgyMDMxMzAyMDEwMTMxMGYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBiMDYwOTJhODY0ODg2ZjcwZDAxMDcwMTMxODIwMmVlMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDViZWNkODcxOTVjMWRlZmY5MGMyNGM5MTI2OWI1NWIzZjA2OWJjMjI1YzMyNmMzMTRjMWE1MTc4NmZmZTE0YzgzMGJlNGU0YmM3M2NiYTM2Yzk3Njc3YjQ0MTY4Mjc5YmU5MWU3Y2RmN2MxOTM4NmFlMjE4NjI3MTlkMTNhM2EwZmZmMDgwM2Q0NjA5NjJmMmNkYTgzNzE0ODQ4NzMyNTJjM2Q3MDU0ZGI4MTQzZTJiMDgxYTM4MTZlZDA4MDRjYTUwOTlhZTVmZWNlODNkNWMyYzM3ODNiMTk4OGI0YjQ2ZGM5NGU1NTU4N2ExMDdlYTE1NDZiZjIyZDI4YTA5N2Y2NTJhNDA2NmRjMjk2NTI2OTA2OWFmMmY1MTc2YmI4Y2U5Y2E2ZDExZjk2NzU3ZjAzMjA0Zjc1NjcwMzU4N2QwMGFkNDI0Nzk2YzkyZmM3YWViNmY0OTQ0MzE5OTllZGEzMDk5MGU0ZjU3NzM2MzJlZDI1OGZlMDI3NjY3MzU5OWRhNmZjZTM1Y2RhZDc3MjZhMGJiMDI0Y2FkOTk2Yjg4ZTBjYjk4ODU0Y2ViNWMwYjZlYzc0OGQ5ZjljZTZhNmNkNDM3ODU4YmFjYjgxNDYxOGEyNzJmZjNhNDE1YzZlMDdmM2RiMDk4ODc3N2ZkZWM4NDVhOTdiZjdkMTAyZGQwMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzcwMjE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMyMDIxNDU2NGQ1NTQwMjVhZjU5OWUzMjcwNzliMjcyMGVmMDBkZjM3Y2ZiN2MzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDA0NjA5OGRjNWYyYjk5ZTNiYzJlZDY2NDJkN2YwYTYxZWZhYmMxNWMzOGM3NjMzM2JjY2NlZWVlMzY5YTRmNGE1YmRkYThlYTU5MjY0MTI0ZTQyOWYwODYzMjY4M2RkYmExN2JiZjI2MmQ4MmI2YmVmYTNiNGUxNDgwMzc2YThjN2YzYzdkN2UyYTY3NzliYmYxODI2MmFhODU3ZGU4YzIwYTEyYjZhMmNlOGU0ZDdmMzFkZDFiMTk1MzkyY2Y2MTg1YWZjZTM0YWZlMDU4OTYwNTdiMzZlOWIxNzFiNmM2N2VkN2MyMjg2Y2JmYTgzZmY4YTE2N2M3YmM3MTA5YWVlN2Q3ZTE5MDliZDM4NGZiZmM2MTkzOGVmY2E1MWM4OTkzYzcxZGIzMTc3MzBmMTZlN2U3NzY4NjdhZTRmZGM1NjJkNmYxNWRlNTg1ZTdiOTRlZjQ5NmEzNjc2MzY3YTJjYmFhYjdiNjM2NjQ4YjAwNzZiYWQ1Y2RmMWUwOTc0MGVjNmE0NTFiZmY1MzRlZmEyMTUwOWYzYmE3N2I4MTAxYjkxZWE3ZTU1ZGRiZmUxNDAxNTE3MDY3ZDdiMDFhMmEwODc5ZjA4ODVjODk0YTg3Y2ZiNjhjNGQ3ZWU4OTA2MDQ4ODFhZWI5N2MyMmQxZjMzN2VmOTIzZTAzNWE2NDAwIgogCiBQS0NTNyBQYXJzZSBGYWlsdXJlIEludmFsaWQgQVNOMTogQ2hhbmdlIGxlbmd0aCBmcm9tIDIxIHRvIDIyICM0NzUuMAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHBrY3M3X2FzbjFfZmFpbDoiMzA4MjAzMjYwNjA5MmE4NjQ4ODZmNzBkMDEwNzAyYTA4MjAzMTczMDgyMDMxMzAyMDEwMTMxMGYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBiMDYwOTJhODY0ODg2ZjcwZDAxMDcwMTMxODIwMmVlMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDViZWNkODcxOTVjMWRlZmY5MGMyNGM5MTI2OWI1NWIzZjA2OWJjMjI1YzMyNmMzMTRjMWE1MTc4NmZmZTE0YzgzMGJlNGU0YmM3M2NiYTM2Yzk3Njc3YjQ0MTY4Mjc5YmU5MWU3Y2RmN2MxOTM4NmFlMjE4NjI3MTlkMTNhM2EwZmZmMDgwM2Q0NjA5NjJmMmNkYTgzNzE0ODQ4NzMyNTJjM2Q3MDU0ZGI4MTQzZTJiMDgxYTM4MTZlZDA4MDRjYTUwOTlhZTVmZWNlODNkNWMyYzM3ODNiMTk4OGI0YjQ2ZGM5NGU1NTU4N2ExMDdlYTE1NDZiZjIyZDI4YTA5N2Y2NTJhNDA2NmRjMjk2NTI2OTA2OWFmMmY1MTc2YmI4Y2U5Y2E2ZDExZjk2NzU3ZjAzMjA0Zjc1NjcwMzU4N2QwMGFkNDI0Nzk2YzkyZmM3YWViNmY0OTQ0MzE5OTllZGEzMDk5MGU0ZjU3NzM2MzJlZDI1OGZlMDI3NjY3MzU5OWRhNmZjZTM1Y2RhZDc3MjZhMGJiMDI0Y2FkOTk2Yjg4ZTBjYjk4ODU0Y2ViNWMwYjZlYzc0OGQ5ZjljZTZhNmNkNDM3ODU4YmFjYjgxNDYxOGEyNzJmZjNhNDE1YzZlMDdmM2RiMDk4ODc3N2ZkZWM4NDVhOTdiZjdkMTAyZGQwMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE2MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMyMDIxNDU2NGQ1NTQwMjVhZjU5OWUzMjcwNzliMjcyMGVmMDBkZjM3Y2ZiN2MzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDA0NjA5OGRjNWYyYjk5ZTNiYzJlZDY2NDJkN2YwYTYxZWZhYmMxNWMzOGM3NjMzM2JjY2NlZWVlMzY5YTRmNGE1YmRkYThlYTU5MjY0MTI0ZTQyOWYwODYzMjY4M2RkYmExN2JiZjI2MmQ4MmI2YmVmYTNiNGUxNDgwMzc2YThjN2YzYzdkN2UyYTY3NzliYmYxODI2MmFhODU3ZGU4YzIwYTEyYjZhMmNlOGU0ZDdmMzFkZDFiMTk1MzkyY2Y2MTg1YWZjZTM0YWZlMDU4OTYwNTdiMzZlOWIxNzFiNmM2N2VkN2MyMjg2Y2JmYTgzZmY4YTE2N2M3YmM3MTA5YWVlN2Q3ZTE5MDliZDM4NGZiZmM2MTkzOGVmY2E1MWM4OTkzYzcxZGIzMTc3MzBmMTZlN2U3NzY4NjdhZTRmZGM1NjJkNmYxNWRlNTg1ZTdiOTRlZjQ5NmEzNjc2MzY3YTJjYmFhYjdiNjM2NjQ4YjAwNzZiYWQ1Y2RmMWUwOTc0MGVjNmE0NTFiZmY1MzRlZmEyMTUwOWYzYmE3N2I4MTAxYjkxZWE3ZTU1ZGRiZmUxNDAxNTE3MDY3ZDdiMDFhMmEwODc5ZjA4ODVjODk0YTg3Y2ZiNjhjNGQ3ZWU4OTA2MDQ4ODFhZWI5N2MyMmQxZjMzN2VmOTIzZTAzNWE2NDAwIgogCiBQS0NTNyBQYXJzZSBGYWlsdXJlIEludmFsaWQgQVNOMTogQ2hhbmdlIGNvbnRlbnRzIG9mIHRhZyAzMSB0byBjb250YWluIG9uZSB1bmFjY291bnRlZCBleHRyYSBieXRlICM0NzYuMAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHBrY3M3X2FzbjFfZmFpbDoiMzA4MjAzMjYwNjA5MmE4NjQ4ODZmNzBkMDEwNzAyYTA4MjAzMTczMDgyMDMxMzAyMDEwMTMxMGYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBiMDYwOTJhODY0ODg2ZjcwZDAxMDcwMTMxODIwMmVlMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDViZWNkODcxOTVjMWRlZmY5MGMyNGM5MTI2OWI1NWIzZjA2OWJjMjI1YzMyNmMzMTRjMWE1MTc4NmZmZTE0YzgzMGJlNGU0YmM3M2NiYTM2Yzk3Njc3YjQ0MTY4Mjc5YmU5MWU3Y2RmN2MxOTM4NmFlMjE4NjI3MTlkMTNhM2EwZmZmMDgwM2Q0NjA5NjJmMmNkYTgzNzE0ODQ4NzMyNTJjM2Q3MDU0ZGI4MTQzZTJiMDgxYTM4MTZlZDA4MDRjYTUwOTlhZTVmZWNlODNkNWMyYzM3ODNiMTk4OGI0YjQ2ZGM5NGU1NTU4N2ExMDdlYTE1NDZiZjIyZDI4YTA5N2Y2NTJhNDA2NmRjMjk2NTI2OTA2OWFmMmY1MTc2YmI4Y2U5Y2E2ZDExZjk2NzU3ZjAzMjA0Zjc1NjcwMzU4N2QwMGFkNDI0Nzk2YzkyZmM3YWViNmY0OTQ0MzE5OTllZGEzMDk5MGU0ZjU3NzM2MzJlZDI1OGZlMDI3NjY3MzU5OWRhNmZjZTM1Y2RhZDc3MjZhMGJiMDI0Y2FkOTk2Yjg4ZTBjYjk4ODU0Y2ViNWMwYjZlYzc0OGQ5ZjljZTZhNmNkNDM3ODU4YmFjYjgxNDYxOGEyNzJmZjNhNDE1YzZlMDdmM2RiMDk4ODc3N2ZkZWM4NDVhOTdiZjdkMTAyZGQwMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE2MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMyMDAwMjE0NTY0ZDU1NDAyNWFmNTk5ZTMyNzA3OWIyNzIwZWYwMGRmMzdjZmI3YzMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwMDQ2MDk4ZGM1ZjJiOTllM2JjMmVkNjY0MmQ3ZjBhNjFlZmFiYzE1YzM4Yzc2MzMzYmNjY2VlZWUzNjlhNGY0YTViZGRhOGVhNTkyNjQxMjRlNDI5ZjA4NjMyNjgzZGRiYTE3YmJmMjYyZDgyYjZiZWZhM2I0ZTE0ODAzNzZhOGM3ZjNjN2Q3ZTJhNjc3OWJiZjE4MjYyYWE4NTdkZThjMjBhMTJiNmEyY2U4ZTRkN2YzMWRkMWIxOTUzOTJjZjYxODVhZmNlMzRhZmUwNTg5NjA1N2IzNmU5YjE3MWI2YzY3ZWQ3YzIyODZjYmZhODNmZjhhMTY3YzdiYzcxMDlhZWU3ZDdlMTkwOWJkMzg0ZmJmYzYxOTM4ZWZjYTUxYzg5OTNjNzFkYjMxNzczMGYxNmU3ZTc3Njg2N2FlNGZkYzU2MmQ2ZjE1ZGU1ODVlN2I5NGVmNDk2YTM2NzYzNjdhMmNiYWFiN2I2MzY2NDhiMDA3NmJhZDVjZGYxZTA5NzQwZWM2YTQ1MWJmZjUzNGVmYTIxNTA5ZjNiYTc3YjgxMDFiOTFlYTdlNTVkZGJmZTE0MDE1MTcwNjdkN2IwMWEyYTA4NzlmMDg4NWM4OTRhODdjZmI2OGM0ZDdlZTg5MDYwNDg4MWFlYjk3YzIyZDFmMzM3ZWY5MjNlMDM1YTY0MDAiCiAKIFBLQ1M3IFBhcnNlIEZhaWx1cmUgSW52YWxpZCBBU04xOiBDaGFuZ2UgbGVuZ3RoIGZyb20gMjEgdG8gMjAgIzQ3Ny4wCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NgogcGtjczdfYXNuMV9mYWlsOiIzMDgyMDMyNjA2MDkyYTg2NDg4NmY3MGQwMTA3MDJhMDgyMDMxNzMwODIwMzEzMDIwMTAxMzEwZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGIwNjA5MmE4NjQ4ODZmNzBkMDEwNzAxMzE4MjAyZWUzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwNWJlY2Q4NzE5NWMxZGVmZjkwYzI0YzkxMjY5YjU1YjNmMDY5YmMyMjVjMzI2YzMxNGMxYTUxNzg2ZmZlMTRjODMwYmU0ZTRiYzczY2JhMzZjOTc2NzdiNDQxNjgyNzliZTkxZTdjZGY3YzE5Mzg2YWUyMTg2MjcxOWQxM2EzYTBmZmYwODAzZDQ2MDk2MmYyY2RhODM3MTQ4NDg3MzI1MmMzZDcwNTRkYjgxNDNlMmIwODFhMzgxNmVkMDgwNGNhNTA5OWFlNWZlY2U4M2Q1YzJjMzc4M2IxOTg4YjRiNDZkYzk0ZTU1NTg3YTEwN2VhMTU0NmJmMjJkMjhhMDk3ZjY1MmE0MDY2ZGMyOTY1MjY5MDY5YWYyZjUxNzZiYjhjZTljYTZkMTFmOTY3NTdmMDMyMDRmNzU2NzAzNTg3ZDAwYWQ0MjQ3OTZjOTJmYzdhZWI2ZjQ5NDQzMTk5OWVkYTMwOTkwZTRmNTc3MzYzMmVkMjU4ZmUwMjc2NjczNTk5ZGE2ZmNlMzVjZGFkNzcyNmEwYmIwMjRjYWQ5OTZiODhlMGNiOTg4NTRjZWI1YzBiNmVjNzQ4ZDlmOWNlNmE2Y2Q0Mzc4NThiYWNiODE0NjE4YTI3MmZmM2E0MTVjNmUwN2YzZGIwOTg4Nzc3ZmRlYzg0NWE5N2JmN2QxMDJkZDAzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTQzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzIwMjE0NTY0ZDU1NDAyNWFmNTk5ZTMyNzA3OWIyNzIwZWYwMGRmMzdjZmI3YzMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwMDQ2MDk4ZGM1ZjJiOTllM2JjMmVkNjY0MmQ3ZjBhNjFlZmFiYzE1YzM4Yzc2MzMzYmNjY2VlZWUzNjlhNGY0YTViZGRhOGVhNTkyNjQxMjRlNDI5ZjA4NjMyNjgzZGRiYTE3YmJmMjYyZDgyYjZiZWZhM2I0ZTE0ODAzNzZhOGM3ZjNjN2Q3ZTJhNjc3OWJiZjE4MjYyYWE4NTdkZThjMjBhMTJiNmEyY2U4ZTRkN2YzMWRkMWIxOTUzOTJjZjYxODVhZmNlMzRhZmUwNTg5NjA1N2IzNmU5YjE3MWI2YzY3ZWQ3YzIyODZjYmZhODNmZjhhMTY3YzdiYzcxMDlhZWU3ZDdlMTkwOWJkMzg0ZmJmYzYxOTM4ZWZjYTUxYzg5OTNjNzFkYjMxNzczMGYxNmU3ZTc3Njg2N2FlNGZkYzU2MmQ2ZjE1ZGU1ODVlN2I5NGVmNDk2YTM2NzYzNjdhMmNiYWFiN2I2MzY2NDhiMDA3NmJhZDVjZGYxZTA5NzQwZWM2YTQ1MWJmZjUzNGVmYTIxNTA5ZjNiYTc3YjgxMDFiOTFlYTdlNTVkZGJmZTE0MDE1MTcwNjdkN2IwMWEyYTA4NzlmMDg4NWM4OTRhODdjZmI2OGM0ZDdlZTg5MDYwNDg4MWFlYjk3YzIyZDFmMzM3ZWY5MjNlMDM1YTY0MDAiCiAKIFBLQ1M3IFBhcnNlIEZhaWx1cmUgSW52YWxpZCBBU04xOiBDaGFuZ2UgdGFnIDMwIHRvIDAyICM0NzguMAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHBrY3M3X2FzbjFfZmFpbDoiMzA4MjAzMjYwNjA5MmE4NjQ4ODZmNzBkMDEwNzAyYTA4MjAzMTczMDgyMDMxMzAyMDEwMTMxMGYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBiMDYwOTJhODY0ODg2ZjcwZDAxMDcwMTMxODIwMmVlMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDViZWNkODcxOTVjMWRlZmY5MGMyNGM5MTI2OWI1NWIzZjA2OWJjMjI1YzMyNmMzMTRjMWE1MTc4NmZmZTE0YzgzMGJlNGU0YmM3M2NiYTM2Yzk3Njc3YjQ0MTY4Mjc5YmU5MWU3Y2RmN2MxOTM4NmFlMjE4NjI3MTlkMTNhM2EwZmZmMDgwM2Q0NjA5NjJmMmNkYTgzNzE0ODQ4NzMyNTJjM2Q3MDU0ZGI4MTQzZTJiMDgxYTM4MTZlZDA4MDRjYTUwOTlhZTVmZWNlODNkNWMyYzM3ODNiMTk4OGI0YjQ2ZGM5NGU1NTU4N2ExMDdlYTE1NDZiZjIyZDI4YTA5N2Y2NTJhNDA2NmRjMjk2NTI2OTA2OWFmMmY1MTc2YmI4Y2U5Y2E2ZDExZjk2NzU3ZjAzMjA0Zjc1NjcwMzU4N2QwMGFkNDI0Nzk2YzkyZmM3YWViNmY0OTQ0MzE5OTllZGEzMDk5MGU0ZjU3NzM2MzJlZDI1OGZlMDI3NjY3MzU5OWRhNmZjZTM1Y2RhZDc3MjZhMGJiMDI0Y2FkOTk2Yjg4ZTBjYjk4ODU0Y2ViNWMwYjZlYzc0OGQ5ZjljZTZhNmNkNDM3ODU4YmFjYjgxNDYxOGEyNzJmZjNhNDE1YzZlMDdmM2RiMDk4ODc3N2ZkZWM4NDVhOTdiZjdkMTAyZGQwMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MDIxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMyMDIxNDU2NGQ1NTQwMjVhZjU5OWUzMjcwNzliMjcyMGVmMDBkZjM3Y2ZiN2MzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDA0NjA5OGRjNWYyYjk5ZTNiYzJlZDY2NDJkN2YwYTYxZWZhYmMxNWMzOGM3NjMzM2JjY2NlZWVlMzY5YTRmNGE1YmRkYThlYTU5MjY0MTI0ZTQyOWYwODYzMjY4M2RkYmExN2JiZjI2MmQ4MmI2YmVmYTNiNGUxNDgwMzc2YThjN2YzYzdkN2UyYTY3NzliYmYxODI2MmFhODU3ZGU4YzIwYTEyYjZhMmNlOGU0ZDdmMzFkZDFiMTk1MzkyY2Y2MTg1YWZjZTM0YWZlMDU4OTYwNTdiMzZlOWIxNzFiNmM2N2VkN2MyMjg2Y2JmYTgzZmY4YTE2N2M3YmM3MTA5YWVlN2Q3ZTE5MDliZDM4NGZiZmM2MTkzOGVmY2E1MWM4OTkzYzcxZGIzMTc3MzBmMTZlN2U3NzY4NjdhZTRmZGM1NjJkNmYxNWRlNTg1ZTdiOTRlZjQ5NmEzNjc2MzY3YTJjYmFhYjdiNjM2NjQ4YjAwNzZiYWQ1Y2RmMWUwOTc0MGVjNmE0NTFiZmY1MzRlZmEyMTUwOWYzYmE3N2I4MTAxYjkxZWE3ZTU1ZGRiZmUxNDAxNTE3MDY3ZDdiMDFhMmEwODc5ZjA4ODVjODk0YTg3Y2ZiNjhjNGQ3ZWU4OTA2MDQ4ODFhZWI5N2MyMmQxZjMzN2VmOTIzZTAzNWE2NDAwIgogCiBQS0NTNyBQYXJzZSBGYWlsdXJlIEludmFsaWQgQVNOMTogQ2hhbmdlIGxlbmd0aCBmcm9tIDE5IHRvIDIwICM0NzkuMAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHBrY3M3X2FzbjFfZmFpbDoiMzA4MjAzMjYwNjA5MmE4NjQ4ODZmNzBkMDEwNzAyYTA4MjAzMTczMDgyMDMxMzAyMDEwMTMxMGYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBiMDYwOTJhODY0ODg2ZjcwZDAxMDcwMTMxODIwMmVlMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDViZWNkODcxOTVjMWRlZmY5MGMyNGM5MTI2OWI1NWIzZjA2OWJjMjI1YzMyNmMzMTRjMWE1MTc4NmZmZTE0YzgzMGJlNGU0YmM3M2NiYTM2Yzk3Njc3YjQ0MTY4Mjc5YmU5MWU3Y2RmN2MxOTM4NmFlMjE4NjI3MTlkMTNhM2EwZmZmMDgwM2Q0NjA5NjJmMmNkYTgzNzE0ODQ4NzMyNTJjM2Q3MDU0ZGI4MTQzZTJiMDgxYTM4MTZlZDA4MDRjYTUwOTlhZTVmZWNlODNkNWMyYzM3ODNiMTk4OGI0YjQ2ZGM5NGU1NTU4N2ExMDdlYTE1NDZiZjIyZDI4YTA5N2Y2NTJhNDA2NmRjMjk2NTI2OTA2OWFmMmY1MTc2YmI4Y2U5Y2E2ZDExZjk2NzU3ZjAzMjA0Zjc1NjcwMzU4N2QwMGFkNDI0Nzk2YzkyZmM3YWViNmY0OTQ0MzE5OTllZGEzMDk5MGU0ZjU3NzM2MzJlZDI1OGZlMDI3NjY3MzU5OWRhNmZjZTM1Y2RhZDc3MjZhMGJiMDI0Y2FkOTk2Yjg4ZTBjYjk4ODU0Y2ViNWMwYjZlYzc0OGQ5ZjljZTZhNmNkNDM3ODU4YmFjYjgxNDYxOGEyNzJmZjNhNDE1YzZlMDdmM2RiMDk4ODc3N2ZkZWM4NDVhOTdiZjdkMTAyZGQwMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxNDA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMyMDIxNDU2NGQ1NTQwMjVhZjU5OWUzMjcwNzliMjcyMGVmMDBkZjM3Y2ZiN2MzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDA0NjA5OGRjNWYyYjk5ZTNiYzJlZDY2NDJkN2YwYTYxZWZhYmMxNWMzOGM3NjMzM2JjY2NlZWVlMzY5YTRmNGE1YmRkYThlYTU5MjY0MTI0ZTQyOWYwODYzMjY4M2RkYmExN2JiZjI2MmQ4MmI2YmVmYTNiNGUxNDgwMzc2YThjN2YzYzdkN2UyYTY3NzliYmYxODI2MmFhODU3ZGU4YzIwYTEyYjZhMmNlOGU0ZDdmMzFkZDFiMTk1MzkyY2Y2MTg1YWZjZTM0YWZlMDU4OTYwNTdiMzZlOWIxNzFiNmM2N2VkN2MyMjg2Y2JmYTgzZmY4YTE2N2M3YmM3MTA5YWVlN2Q3ZTE5MDliZDM4NGZiZmM2MTkzOGVmY2E1MWM4OTkzYzcxZGIzMTc3MzBmMTZlN2U3NzY4NjdhZTRmZGM1NjJkNmYxNWRlNTg1ZTdiOTRlZjQ5NmEzNjc2MzY3YTJjYmFhYjdiNjM2NjQ4YjAwNzZiYWQ1Y2RmMWUwOTc0MGVjNmE0NTFiZmY1MzRlZmEyMTUwOWYzYmE3N2I4MTAxYjkxZWE3ZTU1ZGRiZmUxNDAxNTE3MDY3ZDdiMDFhMmEwODc5ZjA4ODVjODk0YTg3Y2ZiNjhjNGQ3ZWU4OTA2MDQ4ODFhZWI5N2MyMmQxZjMzN2VmOTIzZTAzNWE2NDAwIgogCiBQS0NTNyBQYXJzZSBGYWlsdXJlIEludmFsaWQgQVNOMTogQ2hhbmdlIGNvbnRlbnRzIG9mIHRhZyAzMCB0byBjb250YWluIG9uZSB1bmFjY291bnRlZCBleHRyYSBieXRlICM0ODAuMAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHBrY3M3X2FzbjFfZmFpbDoiMzA4MjAzMjYwNjA5MmE4NjQ4ODZmNzBkMDEwNzAyYTA4MjAzMTczMDgyMDMxMzAyMDEwMTMxMGYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBiMDYwOTJhODY0ODg2ZjcwZDAxMDcwMTMxODIwMmVlMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDViZWNkODcxOTVjMWRlZmY5MGMyNGM5MTI2OWI1NWIzZjA2OWJjMjI1YzMyNmMzMTRjMWE1MTc4NmZmZTE0YzgzMGJlNGU0YmM3M2NiYTM2Yzk3Njc3YjQ0MTY4Mjc5YmU5MWU3Y2RmN2MxOTM4NmFlMjE4NjI3MTlkMTNhM2EwZmZmMDgwM2Q0NjA5NjJmMmNkYTgzNzE0ODQ4NzMyNTJjM2Q3MDU0ZGI4MTQzZTJiMDgxYTM4MTZlZDA4MDRjYTUwOTlhZTVmZWNlODNkNWMyYzM3ODNiMTk4OGI0YjQ2ZGM5NGU1NTU4N2ExMDdlYTE1NDZiZjIyZDI4YTA5N2Y2NTJhNDA2NmRjMjk2NTI2OTA2OWFmMmY1MTc2YmI4Y2U5Y2E2ZDExZjk2NzU3ZjAzMjA0Zjc1NjcwMzU4N2QwMGFkNDI0Nzk2YzkyZmM3YWViNmY0OTQ0MzE5OTllZGEzMDk5MGU0ZjU3NzM2MzJlZDI1OGZlMDI3NjY3MzU5OWRhNmZjZTM1Y2RhZDc3MjZhMGJiMDI0Y2FkOTk2Yjg4ZTBjYjk4ODU0Y2ViNWMwYjZlYzc0OGQ5ZjljZTZhNmNkNDM3ODU4YmFjYjgxNDYxOGEyNzJmZjNhNDE1YzZlMDdmM2RiMDk4ODc3N2ZkZWM4NDVhOTdiZjdkMTAyZGQwMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxNDA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMyMDAwMjE0NTY0ZDU1NDAyNWFmNTk5ZTMyNzA3OWIyNzIwZWYwMGRmMzdjZmI3YzMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwMDQ2MDk4ZGM1ZjJiOTllM2JjMmVkNjY0MmQ3ZjBhNjFlZmFiYzE1YzM4Yzc2MzMzYmNjY2VlZWUzNjlhNGY0YTViZGRhOGVhNTkyNjQxMjRlNDI5ZjA4NjMyNjgzZGRiYTE3YmJmMjYyZDgyYjZiZWZhM2I0ZTE0ODAzNzZhOGM3ZjNjN2Q3ZTJhNjc3OWJiZjE4MjYyYWE4NTdkZThjMjBhMTJiNmEyY2U4ZTRkN2YzMWRkMWIxOTUzOTJjZjYxODVhZmNlMzRhZmUwNTg5NjA1N2IzNmU5YjE3MWI2YzY3ZWQ3YzIyODZjYmZhODNmZjhhMTY3YzdiYzcxMDlhZWU3ZDdlMTkwOWJkMzg0ZmJmYzYxOTM4ZWZjYTUxYzg5OTNjNzFkYjMxNzczMGYxNmU3ZTc3Njg2N2FlNGZkYzU2MmQ2ZjE1ZGU1ODVlN2I5NGVmNDk2YTM2NzYzNjdhMmNiYWFiN2I2MzY2NDhiMDA3NmJhZDVjZGYxZTA5NzQwZWM2YTQ1MWJmZjUzNGVmYTIxNTA5ZjNiYTc3YjgxMDFiOTFlYTdlNTVkZGJmZTE0MDE1MTcwNjdkN2IwMWEyYTA4NzlmMDg4NWM4OTRhODdjZmI2OGM0ZDdlZTg5MDYwNDg4MWFlYjk3YzIyZDFmMzM3ZWY5MjNlMDM1YTY0MDAiCiAKIFBLQ1M3IFBhcnNlIEZhaWx1cmUgSW52YWxpZCBBU04xOiBDaGFuZ2UgbGVuZ3RoIGZyb20gMTkgdG8gMTggIzQ4MS4wCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NgogcGtjczdfYXNuMV9mYWlsOiIzMDgyMDMyNjA2MDkyYTg2NDg4NmY3MGQwMTA3MDJhMDgyMDMxNzMwODIwMzEzMDIwMTAxMzEwZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGIwNjA5MmE4NjQ4ODZmNzBkMDEwNzAxMzE4MjAyZWUzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwNWJlY2Q4NzE5NWMxZGVmZjkwYzI0YzkxMjY5YjU1YjNmMDY5YmMyMjVjMzI2YzMxNGMxYTUxNzg2ZmZlMTRjODMwYmU0ZTRiYzczY2JhMzZjOTc2NzdiNDQxNjgyNzliZTkxZTdjZGY3YzE5Mzg2YWUyMTg2MjcxOWQxM2EzYTBmZmYwODAzZDQ2MDk2MmYyY2RhODM3MTQ4NDg3MzI1MmMzZDcwNTRkYjgxNDNlMmIwODFhMzgxNmVkMDgwNGNhNTA5OWFlNWZlY2U4M2Q1YzJjMzc4M2IxOTg4YjRiNDZkYzk0ZTU1NTg3YTEwN2VhMTU0NmJmMjJkMjhhMDk3ZjY1MmE0MDY2ZGMyOTY1MjY5MDY5YWYyZjUxNzZiYjhjZTljYTZkMTFmOTY3NTdmMDMyMDRmNzU2NzAzNTg3ZDAwYWQ0MjQ3OTZjOTJmYzdhZWI2ZjQ5NDQzMTk5OWVkYTMwOTkwZTRmNTc3MzYzMmVkMjU4ZmUwMjc2NjczNTk5ZGE2ZmNlMzVjZGFkNzcyNmEwYmIwMjRjYWQ5OTZiODhlMGNiOTg4NTRjZWI1YzBiNmVjNzQ4ZDlmOWNlNmE2Y2Q0Mzc4NThiYWNiODE0NjE4YTI3MmZmM2E0MTVjNmUwN2YzZGIwOTg4Nzc3ZmRlYzg0NWE5N2JmN2QxMDJkZDAzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEyMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzIwMjE0NTY0ZDU1NDAyNWFmNTk5ZTMyNzA3OWIyNzIwZWYwMGRmMzdjZmI3YzMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwMDQ2MDk4ZGM1ZjJiOTllM2JjMmVkNjY0MmQ3ZjBhNjFlZmFiYzE1YzM4Yzc2MzMzYmNjY2VlZWUzNjlhNGY0YTViZGRhOGVhNTkyNjQxMjRlNDI5ZjA4NjMyNjgzZGRiYTE3YmJmMjYyZDgyYjZiZWZhM2I0ZTE0ODAzNzZhOGM3ZjNjN2Q3ZTJhNjc3OWJiZjE4MjYyYWE4NTdkZThjMjBhMTJiNmEyY2U4ZTRkN2YzMWRkMWIxOTUzOTJjZjYxODVhZmNlMzRhZmUwNTg5NjA1N2IzNmU5YjE3MWI2YzY3ZWQ3YzIyODZjYmZhODNmZjhhMTY3YzdiYzcxMDlhZWU3ZDdlMTkwOWJkMzg0ZmJmYzYxOTM4ZWZjYTUxYzg5OTNjNzFkYjMxNzczMGYxNmU3ZTc3Njg2N2FlNGZkYzU2MmQ2ZjE1ZGU1ODVlN2I5NGVmNDk2YTM2NzYzNjdhMmNiYWFiN2I2MzY2NDhiMDA3NmJhZDVjZGYxZTA5NzQwZWM2YTQ1MWJmZjUzNGVmYTIxNTA5ZjNiYTc3YjgxMDFiOTFlYTdlNTVkZGJmZTE0MDE1MTcwNjdkN2IwMWEyYTA4NzlmMDg4NWM4OTRhODdjZmI2OGM0ZDdlZTg5MDYwNDg4MWFlYjk3YzIyZDFmMzM3ZWY5MjNlMDM1YTY0MDAiCiAKIFBLQ1M3IFBhcnNlIEZhaWx1cmUgSW52YWxpZCBBU04xOiBDaGFuZ2UgdGFnIDA2IHRvIDAyICM0ODIuMAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHBrY3M3X2FzbjFfZmFpbDoiMzA4MjAzMjYwNjA5MmE4NjQ4ODZmNzBkMDEwNzAyYTA4MjAzMTczMDgyMDMxMzAyMDEwMTMxMGYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBiMDYwOTJhODY0ODg2ZjcwZDAxMDcwMTMxODIwMmVlMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDViZWNkODcxOTVjMWRlZmY5MGMyNGM5MTI2OWI1NWIzZjA2OWJjMjI1YzMyNmMzMTRjMWE1MTc4NmZmZTE0YzgzMGJlNGU0YmM3M2NiYTM2Yzk3Njc3YjQ0MTY4Mjc5YmU5MWU3Y2RmN2MxOTM4NmFlMjE4NjI3MTlkMTNhM2EwZmZmMDgwM2Q0NjA5NjJmMmNkYTgzNzE0ODQ4NzMyNTJjM2Q3MDU0ZGI4MTQzZTJiMDgxYTM4MTZlZDA4MDRjYTUwOTlhZTVmZWNlODNkNWMyYzM3ODNiMTk4OGI0YjQ2ZGM5NGU1NTU4N2ExMDdlYTE1NDZiZjIyZDI4YTA5N2Y2NTJhNDA2NmRjMjk2NTI2OTA2OWFmMmY1MTc2YmI4Y2U5Y2E2ZDExZjk2NzU3ZjAzMjA0Zjc1NjcwMzU4N2QwMGFkNDI0Nzk2YzkyZmM3YWViNmY0OTQ0MzE5OTllZGEzMDk5MGU0ZjU3NzM2MzJlZDI1OGZlMDI3NjY3MzU5OWRhNmZjZTM1Y2RhZDc3MjZhMGJiMDI0Y2FkOTk2Yjg4ZTBjYjk4ODU0Y2ViNWMwYjZlYzc0OGQ5ZjljZTZhNmNkNDM3ODU4YmFjYjgxNDYxOGEyNzJmZjNhNDE1YzZlMDdmM2RiMDk4ODc3N2ZkZWM4NDVhOTdiZjdkMTAyZGQwMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzAyMDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMyMDIxNDU2NGQ1NTQwMjVhZjU5OWUzMjcwNzliMjcyMGVmMDBkZjM3Y2ZiN2MzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDA0NjA5OGRjNWYyYjk5ZTNiYzJlZDY2NDJkN2YwYTYxZWZhYmMxNWMzOGM3NjMzM2JjY2NlZWVlMzY5YTRmNGE1YmRkYThlYTU5MjY0MTI0ZTQyOWYwODYzMjY4M2RkYmExN2JiZjI2MmQ4MmI2YmVmYTNiNGUxNDgwMzc2YThjN2YzYzdkN2UyYTY3NzliYmYxODI2MmFhODU3ZGU4YzIwYTEyYjZhMmNlOGU0ZDdmMzFkZDFiMTk1MzkyY2Y2MTg1YWZjZTM0YWZlMDU4OTYwNTdiMzZlOWIxNzFiNmM2N2VkN2MyMjg2Y2JmYTgzZmY4YTE2N2M3YmM3MTA5YWVlN2Q3ZTE5MDliZDM4NGZiZmM2MTkzOGVmY2E1MWM4OTkzYzcxZGIzMTc3MzBmMTZlN2U3NzY4NjdhZTRmZGM1NjJkNmYxNWRlNTg1ZTdiOTRlZjQ5NmEzNjc2MzY3YTJjYmFhYjdiNjM2NjQ4YjAwNzZiYWQ1Y2RmMWUwOTc0MGVjNmE0NTFiZmY1MzRlZmEyMTUwOWYzYmE3N2I4MTAxYjkxZWE3ZTU1ZGRiZmUxNDAxNTE3MDY3ZDdiMDFhMmEwODc5ZjA4ODVjODk0YTg3Y2ZiNjhjNGQ3ZWU4OTA2MDQ4ODFhZWI5N2MyMmQxZjMzN2VmOTIzZTAzNWE2NDAwIgogCiBQS0NTNyBQYXJzZSBGYWlsdXJlIEludmFsaWQgQVNOMTogQ2hhbmdlIGxlbmd0aCBmcm9tIDMgdG8gNCAjNDgzLjAKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBwa2NzN19hc24xX2ZhaWw6IjMwODIwMzI2MDYwOTJhODY0ODg2ZjcwZDAxMDcwMmEwODIwMzE3MzA4MjAzMTMwMjAxMDEzMTBmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwYjA2MDkyYTg2NDg4NmY3MGQwMTA3MDEzMTgyMDJlZTMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTAyMTQ3YmRlZGRkMjQ0NGNkMWNkZmU1YzQxYTgxMDJjODliN2RmMmU2Y2JmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDA1YmVjZDg3MTk1YzFkZWZmOTBjMjRjOTEyNjliNTViM2YwNjliYzIyNWMzMjZjMzE0YzFhNTE3ODZmZmUxNGM4MzBiZTRlNGJjNzNjYmEzNmM5NzY3N2I0NDE2ODI3OWJlOTFlN2NkZjdjMTkzODZhZTIxODYyNzE5ZDEzYTNhMGZmZjA4MDNkNDYwOTYyZjJjZGE4MzcxNDg0ODczMjUyYzNkNzA1NGRiODE0M2UyYjA4MWEzODE2ZWQwODA0Y2E1MDk5YWU1ZmVjZTgzZDVjMmMzNzgzYjE5ODhiNGI0NmRjOTRlNTU1ODdhMTA3ZWExNTQ2YmYyMmQyOGEwOTdmNjUyYTQwNjZkYzI5NjUyNjkwNjlhZjJmNTE3NmJiOGNlOWNhNmQxMWY5Njc1N2YwMzIwNGY3NTY3MDM1ODdkMDBhZDQyNDc5NmM5MmZjN2FlYjZmNDk0NDMxOTk5ZWRhMzA5OTBlNGY1NzczNjMyZWQyNThmZTAyNzY2NzM1OTlkYTZmY2UzNWNkYWQ3NzI2YTBiYjAyNGNhZDk5NmI4OGUwY2I5ODg1NGNlYjVjMGI2ZWM3NDhkOWY5Y2U2YTZjZDQzNzg1OGJhY2I4MTQ2MThhMjcyZmYzYTQxNWM2ZTA3ZjNkYjA5ODg3NzdmZGVjODQ1YTk3YmY3ZDEwMmRkMDMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjA0NTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMjAyMTQ1NjRkNTU0MDI1YWY1OTllMzI3MDc5YjI3MjBlZjAwZGYzN2NmYjdjMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDAwNDYwOThkYzVmMmI5OWUzYmMyZWQ2NjQyZDdmMGE2MWVmYWJjMTVjMzhjNzYzMzNiY2NjZWVlZTM2OWE0ZjRhNWJkZGE4ZWE1OTI2NDEyNGU0MjlmMDg2MzI2ODNkZGJhMTdiYmYyNjJkODJiNmJlZmEzYjRlMTQ4MDM3NmE4YzdmM2M3ZDdlMmE2Nzc5YmJmMTgyNjJhYTg1N2RlOGMyMGExMmI2YTJjZThlNGQ3ZjMxZGQxYjE5NTM5MmNmNjE4NWFmY2UzNGFmZTA1ODk2MDU3YjM2ZTliMTcxYjZjNjdlZDdjMjI4NmNiZmE4M2ZmOGExNjdjN2JjNzEwOWFlZTdkN2UxOTA5YmQzODRmYmZjNjE5MzhlZmNhNTFjODk5M2M3MWRiMzE3NzMwZjE2ZTdlNzc2ODY3YWU0ZmRjNTYyZDZmMTVkZTU4NWU3Yjk0ZWY0OTZhMzY3NjM2N2EyY2JhYWI3YjYzNjY0OGIwMDc2YmFkNWNkZjFlMDk3NDBlYzZhNDUxYmZmNTM0ZWZhMjE1MDlmM2JhNzdiODEwMWI5MWVhN2U1NWRkYmZlMTQwMTUxNzA2N2Q3YjAxYTJhMDg3OWYwODg1Yzg5NGE4N2NmYjY4YzRkN2VlODkwNjA0ODgxYWViOTdjMjJkMWYzMzdlZjkyM2UwMzVhNjQwMCIKIAogUEtDUzcgUGFyc2UgRmFpbHVyZSBJbnZhbGlkIEFTTjE6IENoYW5nZSBsZW5ndGggZnJvbSAzIHRvIDIgIzQ4NC4wCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NgogcGtjczdfYXNuMV9mYWlsOiIzMDgyMDMyNjA2MDkyYTg2NDg4NmY3MGQwMTA3MDJhMDgyMDMxNzMwODIwMzEzMDIwMTAxMzEwZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGIwNjA5MmE4NjQ4ODZmNzBkMDEwNzAxMzE4MjAyZWUzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwNWJlY2Q4NzE5NWMxZGVmZjkwYzI0YzkxMjY5YjU1YjNmMDY5YmMyMjVjMzI2YzMxNGMxYTUxNzg2ZmZlMTRjODMwYmU0ZTRiYzczY2JhMzZjOTc2NzdiNDQxNjgyNzliZTkxZTdjZGY3YzE5Mzg2YWUyMTg2MjcxOWQxM2EzYTBmZmYwODAzZDQ2MDk2MmYyY2RhODM3MTQ4NDg3MzI1MmMzZDcwNTRkYjgxNDNlMmIwODFhMzgxNmVkMDgwNGNhNTA5OWFlNWZlY2U4M2Q1YzJjMzc4M2IxOTg4YjRiNDZkYzk0ZTU1NTg3YTEwN2VhMTU0NmJmMjJkMjhhMDk3ZjY1MmE0MDY2ZGMyOTY1MjY5MDY5YWYyZjUxNzZiYjhjZTljYTZkMTFmOTY3NTdmMDMyMDRmNzU2NzAzNTg3ZDAwYWQ0MjQ3OTZjOTJmYzdhZWI2ZjQ5NDQzMTk5OWVkYTMwOTkwZTRmNTc3MzYzMmVkMjU4ZmUwMjc2NjczNTk5ZGE2ZmNlMzVjZGFkNzcyNmEwYmIwMjRjYWQ5OTZiODhlMGNiOTg4NTRjZWI1YzBiNmVjNzQ4ZDlmOWNlNmE2Y2Q0Mzc4NThiYWNiODE0NjE4YTI3MmZmM2E0MTVjNmUwN2YzZGIwOTg4Nzc3ZmRlYzg0NWE5N2JmN2QxMDJkZDAzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMjU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzIwMjE0NTY0ZDU1NDAyNWFmNTk5ZTMyNzA3OWIyNzIwZWYwMGRmMzdjZmI3YzMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwMDQ2MDk4ZGM1ZjJiOTllM2JjMmVkNjY0MmQ3ZjBhNjFlZmFiYzE1YzM4Yzc2MzMzYmNjY2VlZWUzNjlhNGY0YTViZGRhOGVhNTkyNjQxMjRlNDI5ZjA4NjMyNjgzZGRiYTE3YmJmMjYyZDgyYjZiZWZhM2I0ZTE0ODAzNzZhOGM3ZjNjN2Q3ZTJhNjc3OWJiZjE4MjYyYWE4NTdkZThjMjBhMTJiNmEyY2U4ZTRkN2YzMWRkMWIxOTUzOTJjZjYxODVhZmNlMzRhZmUwNTg5NjA1N2IzNmU5YjE3MWI2YzY3ZWQ3YzIyODZjYmZhODNmZjhhMTY3YzdiYzcxMDlhZWU3ZDdlMTkwOWJkMzg0ZmJmYzYxOTM4ZWZjYTUxYzg5OTNjNzFkYjMxNzczMGYxNmU3ZTc3Njg2N2FlNGZkYzU2MmQ2ZjE1ZGU1ODVlN2I5NGVmNDk2YTM2NzYzNjdhMmNiYWFiN2I2MzY2NDhiMDA3NmJhZDVjZGYxZTA5NzQwZWM2YTQ1MWJmZjUzNGVmYTIxNTA5ZjNiYTc3YjgxMDFiOTFlYTdlNTVkZGJmZTE0MDE1MTcwNjdkN2IwMWEyYTA4NzlmMDg4NWM4OTRhODdjZmI2OGM0ZDdlZTg5MDYwNDg4MWFlYjk3YzIyZDFmMzM3ZWY5MjNlMDM1YTY0MDAiCiAKIFBLQ1M3IFBhcnNlIEZhaWx1cmUgSW52YWxpZCBBU04xOiBDaGFuZ2UgdGFnIDBjIHRvIDAyICM0ODUuMAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHBrY3M3X2FzbjFfZmFpbDoiMzA4MjAzMjYwNjA5MmE4NjQ4ODZmNzBkMDEwNzAyYTA4MjAzMTczMDgyMDMxMzAyMDEwMTMxMGYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBiMDYwOTJhODY0ODg2ZjcwZDAxMDcwMTMxODIwMmVlMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDViZWNkODcxOTVjMWRlZmY5MGMyNGM5MTI2OWI1NWIzZjA2OWJjMjI1YzMyNmMzMTRjMWE1MTc4NmZmZTE0YzgzMGJlNGU0YmM3M2NiYTM2Yzk3Njc3YjQ0MTY4Mjc5YmU5MWU3Y2RmN2MxOTM4NmFlMjE4NjI3MTlkMTNhM2EwZmZmMDgwM2Q0NjA5NjJmMmNkYTgzNzE0ODQ4NzMyNTJjM2Q3MDU0ZGI4MTQzZTJiMDgxYTM4MTZlZDA4MDRjYTUwOTlhZTVmZWNlODNkNWMyYzM3ODNiMTk4OGI0YjQ2ZGM5NGU1NTU4N2ExMDdlYTE1NDZiZjIyZDI4YTA5N2Y2NTJhNDA2NmRjMjk2NTI2OTA2OWFmMmY1MTc2YmI4Y2U5Y2E2ZDExZjk2NzU3ZjAzMjA0Zjc1NjcwMzU4N2QwMGFkNDI0Nzk2YzkyZmM3YWViNmY0OTQ0MzE5OTllZGEzMDk5MGU0ZjU3NzM2MzJlZDI1OGZlMDI3NjY3MzU5OWRhNmZjZTM1Y2RhZDc3MjZhMGJiMDI0Y2FkOTk2Yjg4ZTBjYjk4ODU0Y2ViNWMwYjZlYzc0OGQ5ZjljZTZhNmNkNDM3ODU4YmFjYjgxNDYxOGEyNzJmZjNhNDE1YzZlMDdmM2RiMDk4ODc3N2ZkZWM4NDVhOTdiZjdkMTAyZGQwMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwMjBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMyMDIxNDU2NGQ1NTQwMjVhZjU5OWUzMjcwNzliMjcyMGVmMDBkZjM3Y2ZiN2MzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDA0NjA5OGRjNWYyYjk5ZTNiYzJlZDY2NDJkN2YwYTYxZWZhYmMxNWMzOGM3NjMzM2JjY2NlZWVlMzY5YTRmNGE1YmRkYThlYTU5MjY0MTI0ZTQyOWYwODYzMjY4M2RkYmExN2JiZjI2MmQ4MmI2YmVmYTNiNGUxNDgwMzc2YThjN2YzYzdkN2UyYTY3NzliYmYxODI2MmFhODU3ZGU4YzIwYTEyYjZhMmNlOGU0ZDdmMzFkZDFiMTk1MzkyY2Y2MTg1YWZjZTM0YWZlMDU4OTYwNTdiMzZlOWIxNzFiNmM2N2VkN2MyMjg2Y2JmYTgzZmY4YTE2N2M3YmM3MTA5YWVlN2Q3ZTE5MDliZDM4NGZiZmM2MTkzOGVmY2E1MWM4OTkzYzcxZGIzMTc3MzBmMTZlN2U3NzY4NjdhZTRmZGM1NjJkNmYxNWRlNTg1ZTdiOTRlZjQ5NmEzNjc2MzY3YTJjYmFhYjdiNjM2NjQ4YjAwNzZiYWQ1Y2RmMWUwOTc0MGVjNmE0NTFiZmY1MzRlZmEyMTUwOWYzYmE3N2I4MTAxYjkxZWE3ZTU1ZGRiZmUxNDAxNTE3MDY3ZDdiMDFhMmEwODc5ZjA4ODVjODk0YTg3Y2ZiNjhjNGQ3ZWU4OTA2MDQ4ODFhZWI5N2MyMmQxZjMzN2VmOTIzZTAzNWE2NDAwIgogCiBQS0NTNyBQYXJzZSBGYWlsdXJlIEludmFsaWQgQVNOMTogQ2hhbmdlIGxlbmd0aCBmcm9tIDEyIHRvIDEzICM0ODYuMAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHBrY3M3X2FzbjFfZmFpbDoiMzA4MjAzMjYwNjA5MmE4NjQ4ODZmNzBkMDEwNzAyYTA4MjAzMTczMDgyMDMxMzAyMDEwMTMxMGYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBiMDYwOTJhODY0ODg2ZjcwZDAxMDcwMTMxODIwMmVlMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDViZWNkODcxOTVjMWRlZmY5MGMyNGM5MTI2OWI1NWIzZjA2OWJjMjI1YzMyNmMzMTRjMWE1MTc4NmZmZTE0YzgzMGJlNGU0YmM3M2NiYTM2Yzk3Njc3YjQ0MTY4Mjc5YmU5MWU3Y2RmN2MxOTM4NmFlMjE4NjI3MTlkMTNhM2EwZmZmMDgwM2Q0NjA5NjJmMmNkYTgzNzE0ODQ4NzMyNTJjM2Q3MDU0ZGI4MTQzZTJiMDgxYTM4MTZlZDA4MDRjYTUwOTlhZTVmZWNlODNkNWMyYzM3ODNiMTk4OGI0YjQ2ZGM5NGU1NTU4N2ExMDdlYTE1NDZiZjIyZDI4YTA5N2Y2NTJhNDA2NmRjMjk2NTI2OTA2OWFmMmY1MTc2YmI4Y2U5Y2E2ZDExZjk2NzU3ZjAzMjA0Zjc1NjcwMzU4N2QwMGFkNDI0Nzk2YzkyZmM3YWViNmY0OTQ0MzE5OTllZGEzMDk5MGU0ZjU3NzM2MzJlZDI1OGZlMDI3NjY3MzU5OWRhNmZjZTM1Y2RhZDc3MjZhMGJiMDI0Y2FkOTk2Yjg4ZTBjYjk4ODU0Y2ViNWMwYjZlYzc0OGQ5ZjljZTZhNmNkNDM3ODU4YmFjYjgxNDYxOGEyNzJmZjNhNDE1YzZlMDdmM2RiMDk4ODc3N2ZkZWM4NDVhOTdiZjdkMTAyZGQwMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBkNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMyMDIxNDU2NGQ1NTQwMjVhZjU5OWUzMjcwNzliMjcyMGVmMDBkZjM3Y2ZiN2MzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDA0NjA5OGRjNWYyYjk5ZTNiYzJlZDY2NDJkN2YwYTYxZWZhYmMxNWMzOGM3NjMzM2JjY2NlZWVlMzY5YTRmNGE1YmRkYThlYTU5MjY0MTI0ZTQyOWYwODYzMjY4M2RkYmExN2JiZjI2MmQ4MmI2YmVmYTNiNGUxNDgwMzc2YThjN2YzYzdkN2UyYTY3NzliYmYxODI2MmFhODU3ZGU4YzIwYTEyYjZhMmNlOGU0ZDdmMzFkZDFiMTk1MzkyY2Y2MTg1YWZjZTM0YWZlMDU4OTYwNTdiMzZlOWIxNzFiNmM2N2VkN2MyMjg2Y2JmYTgzZmY4YTE2N2M3YmM3MTA5YWVlN2Q3ZTE5MDliZDM4NGZiZmM2MTkzOGVmY2E1MWM4OTkzYzcxZGIzMTc3MzBmMTZlN2U3NzY4NjdhZTRmZGM1NjJkNmYxNWRlNTg1ZTdiOTRlZjQ5NmEzNjc2MzY3YTJjYmFhYjdiNjM2NjQ4YjAwNzZiYWQ1Y2RmMWUwOTc0MGVjNmE0NTFiZmY1MzRlZmEyMTUwOWYzYmE3N2I4MTAxYjkxZWE3ZTU1ZGRiZmUxNDAxNTE3MDY3ZDdiMDFhMmEwODc5ZjA4ODVjODk0YTg3Y2ZiNjhjNGQ3ZWU4OTA2MDQ4ODFhZWI5N2MyMmQxZjMzN2VmOTIzZTAzNWE2NDAwIgogCiBQS0NTNyBQYXJzZSBGYWlsdXJlIEludmFsaWQgQVNOMTogQ2hhbmdlIGxlbmd0aCBmcm9tIDEyIHRvIDExICM0ODcuMAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHBrY3M3X2FzbjFfZmFpbDoiMzA4MjAzMjYwNjA5MmE4NjQ4ODZmNzBkMDEwNzAyYTA4MjAzMTczMDgyMDMxMzAyMDEwMTMxMGYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBiMDYwOTJhODY0ODg2ZjcwZDAxMDcwMTMxODIwMmVlMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDViZWNkODcxOTVjMWRlZmY5MGMyNGM5MTI2OWI1NWIzZjA2OWJjMjI1YzMyNmMzMTRjMWE1MTc4NmZmZTE0YzgzMGJlNGU0YmM3M2NiYTM2Yzk3Njc3YjQ0MTY4Mjc5YmU5MWU3Y2RmN2MxOTM4NmFlMjE4NjI3MTlkMTNhM2EwZmZmMDgwM2Q0NjA5NjJmMmNkYTgzNzE0ODQ4NzMyNTJjM2Q3MDU0ZGI4MTQzZTJiMDgxYTM4MTZlZDA4MDRjYTUwOTlhZTVmZWNlODNkNWMyYzM3ODNiMTk4OGI0YjQ2ZGM5NGU1NTU4N2ExMDdlYTE1NDZiZjIyZDI4YTA5N2Y2NTJhNDA2NmRjMjk2NTI2OTA2OWFmMmY1MTc2YmI4Y2U5Y2E2ZDExZjk2NzU3ZjAzMjA0Zjc1NjcwMzU4N2QwMGFkNDI0Nzk2YzkyZmM3YWViNmY0OTQ0MzE5OTllZGEzMDk5MGU0ZjU3NzM2MzJlZDI1OGZlMDI3NjY3MzU5OWRhNmZjZTM1Y2RhZDc3MjZhMGJiMDI0Y2FkOTk2Yjg4ZTBjYjk4ODU0Y2ViNWMwYjZlYzc0OGQ5ZjljZTZhNmNkNDM3ODU4YmFjYjgxNDYxOGEyNzJmZjNhNDE1YzZlMDdmM2RiMDk4ODc3N2ZkZWM4NDVhOTdiZjdkMTAyZGQwMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBiNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMyMDIxNDU2NGQ1NTQwMjVhZjU5OWUzMjcwNzliMjcyMGVmMDBkZjM3Y2ZiN2MzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDA0NjA5OGRjNWYyYjk5ZTNiYzJlZDY2NDJkN2YwYTYxZWZhYmMxNWMzOGM3NjMzM2JjY2NlZWVlMzY5YTRmNGE1YmRkYThlYTU5MjY0MTI0ZTQyOWYwODYzMjY4M2RkYmExN2JiZjI2MmQ4MmI2YmVmYTNiNGUxNDgwMzc2YThjN2YzYzdkN2UyYTY3NzliYmYxODI2MmFhODU3ZGU4YzIwYTEyYjZhMmNlOGU0ZDdmMzFkZDFiMTk1MzkyY2Y2MTg1YWZjZTM0YWZlMDU4OTYwNTdiMzZlOWIxNzFiNmM2N2VkN2MyMjg2Y2JmYTgzZmY4YTE2N2M3YmM3MTA5YWVlN2Q3ZTE5MDliZDM4NGZiZmM2MTkzOGVmY2E1MWM4OTkzYzcxZGIzMTc3MzBmMTZlN2U3NzY4NjdhZTRmZGM1NjJkNmYxNWRlNTg1ZTdiOTRlZjQ5NmEzNjc2MzY3YTJjYmFhYjdiNjM2NjQ4YjAwNzZiYWQ1Y2RmMWUwOTc0MGVjNmE0NTFiZmY1MzRlZmEyMTUwOWYzYmE3N2I4MTAxYjkxZWE3ZTU1ZGRiZmUxNDAxNTE3MDY3ZDdiMDFhMmEwODc5ZjA4ODVjODk0YTg3Y2ZiNjhjNGQ3ZWU4OTA2MDQ4ODFhZWI5N2MyMmQxZjMzN2VmOTIzZTAzNWE2NDAwIgogCiBQS0NTNyBQYXJzZSBGYWlsdXJlIEludmFsaWQgQVNOMTogQ2hhbmdlIHRhZyAwMiB0byAwNCAjNDg4LjAKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBwa2NzN19hc24xX2ZhaWw6IjMwODIwMzI2MDYwOTJhODY0ODg2ZjcwZDAxMDcwMmEwODIwMzE3MzA4MjAzMTMwMjAxMDEzMTBmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwYjA2MDkyYTg2NDg4NmY3MGQwMTA3MDEzMTgyMDJlZTMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTAyMTQ3YmRlZGRkMjQ0NGNkMWNkZmU1YzQxYTgxMDJjODliN2RmMmU2Y2JmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDA1YmVjZDg3MTk1YzFkZWZmOTBjMjRjOTEyNjliNTViM2YwNjliYzIyNWMzMjZjMzE0YzFhNTE3ODZmZmUxNGM4MzBiZTRlNGJjNzNjYmEzNmM5NzY3N2I0NDE2ODI3OWJlOTFlN2NkZjdjMTkzODZhZTIxODYyNzE5ZDEzYTNhMGZmZjA4MDNkNDYwOTYyZjJjZGE4MzcxNDg0ODczMjUyYzNkNzA1NGRiODE0M2UyYjA4MWEzODE2ZWQwODA0Y2E1MDk5YWU1ZmVjZTgzZDVjMmMzNzgzYjE5ODhiNGI0NmRjOTRlNTU1ODdhMTA3ZWExNTQ2YmYyMmQyOGEwOTdmNjUyYTQwNjZkYzI5NjUyNjkwNjlhZjJmNTE3NmJiOGNlOWNhNmQxMWY5Njc1N2YwMzIwNGY3NTY3MDM1ODdkMDBhZDQyNDc5NmM5MmZjN2FlYjZmNDk0NDMxOTk5ZWRhMzA5OTBlNGY1NzczNjMyZWQyNThmZTAyNzY2NzM1OTlkYTZmY2UzNWNkYWQ3NzI2YTBiYjAyNGNhZDk5NmI4OGUwY2I5ODg1NGNlYjVjMGI2ZWM3NDhkOWY5Y2U2YTZjZDQzNzg1OGJhY2I4MTQ2MThhMjcyZmYzYTQxNWM2ZTA3ZjNkYjA5ODg3NzdmZGVjODQ1YTk3YmY3ZDEwMmRkMDMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMjA0MTQ1NjRkNTU0MDI1YWY1OTllMzI3MDc5YjI3MjBlZjAwZGYzN2NmYjdjMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDAwNDYwOThkYzVmMmI5OWUzYmMyZWQ2NjQyZDdmMGE2MWVmYWJjMTVjMzhjNzYzMzNiY2NjZWVlZTM2OWE0ZjRhNWJkZGE4ZWE1OTI2NDEyNGU0MjlmMDg2MzI2ODNkZGJhMTdiYmYyNjJkODJiNmJlZmEzYjRlMTQ4MDM3NmE4YzdmM2M3ZDdlMmE2Nzc5YmJmMTgyNjJhYTg1N2RlOGMyMGExMmI2YTJjZThlNGQ3ZjMxZGQxYjE5NTM5MmNmNjE4NWFmY2UzNGFmZTA1ODk2MDU3YjM2ZTliMTcxYjZjNjdlZDdjMjI4NmNiZmE4M2ZmOGExNjdjN2JjNzEwOWFlZTdkN2UxOTA5YmQzODRmYmZjNjE5MzhlZmNhNTFjODk5M2M3MWRiMzE3NzMwZjE2ZTdlNzc2ODY3YWU0ZmRjNTYyZDZmMTVkZTU4NWU3Yjk0ZWY0OTZhMzY3NjM2N2EyY2JhYWI3YjYzNjY0OGIwMDc2YmFkNWNkZjFlMDk3NDBlYzZhNDUxYmZmNTM0ZWZhMjE1MDlmM2JhNzdiODEwMWI5MWVhN2U1NWRkYmZlMTQwMTUxNzA2N2Q3YjAxYTJhMDg3OWYwODg1Yzg5NGE4N2NmYjY4YzRkN2VlODkwNjA0ODgxYWViOTdjMjJkMWYzMzdlZjkyM2UwMzVhNjQwMCIKIAogUEtDUzcgUGFyc2UgRmFpbHVyZSBJbnZhbGlkIEFTTjE6IENoYW5nZSBsZW5ndGggZnJvbSAyMCB0byAyMSAjNDg5LjAKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBwa2NzN19hc24xX2ZhaWw6IjMwODIwMzI2MDYwOTJhODY0ODg2ZjcwZDAxMDcwMmEwODIwMzE3MzA4MjAzMTMwMjAxMDEzMTBmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwYjA2MDkyYTg2NDg4NmY3MGQwMTA3MDEzMTgyMDJlZTMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTAyMTQ3YmRlZGRkMjQ0NGNkMWNkZmU1YzQxYTgxMDJjODliN2RmMmU2Y2JmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDA1YmVjZDg3MTk1YzFkZWZmOTBjMjRjOTEyNjliNTViM2YwNjliYzIyNWMzMjZjMzE0YzFhNTE3ODZmZmUxNGM4MzBiZTRlNGJjNzNjYmEzNmM5NzY3N2I0NDE2ODI3OWJlOTFlN2NkZjdjMTkzODZhZTIxODYyNzE5ZDEzYTNhMGZmZjA4MDNkNDYwOTYyZjJjZGE4MzcxNDg0ODczMjUyYzNkNzA1NGRiODE0M2UyYjA4MWEzODE2ZWQwODA0Y2E1MDk5YWU1ZmVjZTgzZDVjMmMzNzgzYjE5ODhiNGI0NmRjOTRlNTU1ODdhMTA3ZWExNTQ2YmYyMmQyOGEwOTdmNjUyYTQwNjZkYzI5NjUyNjkwNjlhZjJmNTE3NmJiOGNlOWNhNmQxMWY5Njc1N2YwMzIwNGY3NTY3MDM1ODdkMDBhZDQyNDc5NmM5MmZjN2FlYjZmNDk0NDMxOTk5ZWRhMzA5OTBlNGY1NzczNjMyZWQyNThmZTAyNzY2NzM1OTlkYTZmY2UzNWNkYWQ3NzI2YTBiYjAyNGNhZDk5NmI4OGUwY2I5ODg1NGNlYjVjMGI2ZWM3NDhkOWY5Y2U2YTZjZDQzNzg1OGJhY2I4MTQ2MThhMjcyZmYzYTQxNWM2ZTA3ZjNkYjA5ODg3NzdmZGVjODQ1YTk3YmY3ZDEwMmRkMDMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMjAyMTU1NjRkNTU0MDI1YWY1OTllMzI3MDc5YjI3MjBlZjAwZGYzN2NmYjdjMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDAwNDYwOThkYzVmMmI5OWUzYmMyZWQ2NjQyZDdmMGE2MWVmYWJjMTVjMzhjNzYzMzNiY2NjZWVlZTM2OWE0ZjRhNWJkZGE4ZWE1OTI2NDEyNGU0MjlmMDg2MzI2ODNkZGJhMTdiYmYyNjJkODJiNmJlZmEzYjRlMTQ4MDM3NmE4YzdmM2M3ZDdlMmE2Nzc5YmJmMTgyNjJhYTg1N2RlOGMyMGExMmI2YTJjZThlNGQ3ZjMxZGQxYjE5NTM5MmNmNjE4NWFmY2UzNGFmZTA1ODk2MDU3YjM2ZTliMTcxYjZjNjdlZDdjMjI4NmNiZmE4M2ZmOGExNjdjN2JjNzEwOWFlZTdkN2UxOTA5YmQzODRmYmZjNjE5MzhlZmNhNTFjODk5M2M3MWRiMzE3NzMwZjE2ZTdlNzc2ODY3YWU0ZmRjNTYyZDZmMTVkZTU4NWU3Yjk0ZWY0OTZhMzY3NjM2N2EyY2JhYWI3YjYzNjY0OGIwMDc2YmFkNWNkZjFlMDk3NDBlYzZhNDUxYmZmNTM0ZWZhMjE1MDlmM2JhNzdiODEwMWI5MWVhN2U1NWRkYmZlMTQwMTUxNzA2N2Q3YjAxYTJhMDg3OWYwODg1Yzg5NGE4N2NmYjY4YzRkN2VlODkwNjA0ODgxYWViOTdjMjJkMWYzMzdlZjkyM2UwMzVhNjQwMCIKIAogUEtDUzcgUGFyc2UgRmFpbHVyZSBJbnZhbGlkIEFTTjE6IENoYW5nZSBsZW5ndGggZnJvbSAyMCB0byAxOSAjNDkwLjAKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBwa2NzN19hc24xX2ZhaWw6IjMwODIwMzI2MDYwOTJhODY0ODg2ZjcwZDAxMDcwMmEwODIwMzE3MzA4MjAzMTMwMjAxMDEzMTBmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwYjA2MDkyYTg2NDg4NmY3MGQwMTA3MDEzMTgyMDJlZTMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTAyMTQ3YmRlZGRkMjQ0NGNkMWNkZmU1YzQxYTgxMDJjODliN2RmMmU2Y2JmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDA1YmVjZDg3MTk1YzFkZWZmOTBjMjRjOTEyNjliNTViM2YwNjliYzIyNWMzMjZjMzE0YzFhNTE3ODZmZmUxNGM4MzBiZTRlNGJjNzNjYmEzNmM5NzY3N2I0NDE2ODI3OWJlOTFlN2NkZjdjMTkzODZhZTIxODYyNzE5ZDEzYTNhMGZmZjA4MDNkNDYwOTYyZjJjZGE4MzcxNDg0ODczMjUyYzNkNzA1NGRiODE0M2UyYjA4MWEzODE2ZWQwODA0Y2E1MDk5YWU1ZmVjZTgzZDVjMmMzNzgzYjE5ODhiNGI0NmRjOTRlNTU1ODdhMTA3ZWExNTQ2YmYyMmQyOGEwOTdmNjUyYTQwNjZkYzI5NjUyNjkwNjlhZjJmNTE3NmJiOGNlOWNhNmQxMWY5Njc1N2YwMzIwNGY3NTY3MDM1ODdkMDBhZDQyNDc5NmM5MmZjN2FlYjZmNDk0NDMxOTk5ZWRhMzA5OTBlNGY1NzczNjMyZWQyNThmZTAyNzY2NzM1OTlkYTZmY2UzNWNkYWQ3NzI2YTBiYjAyNGNhZDk5NmI4OGUwY2I5ODg1NGNlYjVjMGI2ZWM3NDhkOWY5Y2U2YTZjZDQzNzg1OGJhY2I4MTQ2MThhMjcyZmYzYTQxNWM2ZTA3ZjNkYjA5ODg3NzdmZGVjODQ1YTk3YmY3ZDEwMmRkMDMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMjAyMTM1NjRkNTU0MDI1YWY1OTllMzI3MDc5YjI3MjBlZjAwZGYzN2NmYjdjMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDAwNDYwOThkYzVmMmI5OWUzYmMyZWQ2NjQyZDdmMGE2MWVmYWJjMTVjMzhjNzYzMzNiY2NjZWVlZTM2OWE0ZjRhNWJkZGE4ZWE1OTI2NDEyNGU0MjlmMDg2MzI2ODNkZGJhMTdiYmYyNjJkODJiNmJlZmEzYjRlMTQ4MDM3NmE4YzdmM2M3ZDdlMmE2Nzc5YmJmMTgyNjJhYTg1N2RlOGMyMGExMmI2YTJjZThlNGQ3ZjMxZGQxYjE5NTM5MmNmNjE4NWFmY2UzNGFmZTA1ODk2MDU3YjM2ZTliMTcxYjZjNjdlZDdjMjI4NmNiZmE4M2ZmOGExNjdjN2JjNzEwOWFlZTdkN2UxOTA5YmQzODRmYmZjNjE5MzhlZmNhNTFjODk5M2M3MWRiMzE3NzMwZjE2ZTdlNzc2ODY3YWU0ZmRjNTYyZDZmMTVkZTU4NWU3Yjk0ZWY0OTZhMzY3NjM2N2EyY2JhYWI3YjYzNjY0OGIwMDc2YmFkNWNkZjFlMDk3NDBlYzZhNDUxYmZmNTM0ZWZhMjE1MDlmM2JhNzdiODEwMWI5MWVhN2U1NWRkYmZlMTQwMTUxNzA2N2Q3YjAxYTJhMDg3OWYwODg1Yzg5NGE4N2NmYjY4YzRkN2VlODkwNjA0ODgxYWViOTdjMjJkMWYzMzdlZjkyM2UwMzVhNjQwMCIKIAogUEtDUzcgUGFyc2UgRmFpbHVyZSBJbnZhbGlkIEFTTjE6IENoYW5nZSB0YWcgMzAgdG8gMDIgIzQ5MS4wCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NgogcGtjczdfYXNuMV9mYWlsOiIzMDgyMDMyNjA2MDkyYTg2NDg4NmY3MGQwMTA3MDJhMDgyMDMxNzMwODIwMzEzMDIwMTAxMzEwZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGIwNjA5MmE4NjQ4ODZmNzBkMDEwNzAxMzE4MjAyZWUzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwNWJlY2Q4NzE5NWMxZGVmZjkwYzI0YzkxMjY5YjU1YjNmMDY5YmMyMjVjMzI2YzMxNGMxYTUxNzg2ZmZlMTRjODMwYmU0ZTRiYzczY2JhMzZjOTc2NzdiNDQxNjgyNzliZTkxZTdjZGY3YzE5Mzg2YWUyMTg2MjcxOWQxM2EzYTBmZmYwODAzZDQ2MDk2MmYyY2RhODM3MTQ4NDg3MzI1MmMzZDcwNTRkYjgxNDNlMmIwODFhMzgxNmVkMDgwNGNhNTA5OWFlNWZlY2U4M2Q1YzJjMzc4M2IxOTg4YjRiNDZkYzk0ZTU1NTg3YTEwN2VhMTU0NmJmMjJkMjhhMDk3ZjY1MmE0MDY2ZGMyOTY1MjY5MDY5YWYyZjUxNzZiYjhjZTljYTZkMTFmOTY3NTdmMDMyMDRmNzU2NzAzNTg3ZDAwYWQ0MjQ3OTZjOTJmYzdhZWI2ZjQ5NDQzMTk5OWVkYTMwOTkwZTRmNTc3MzYzMmVkMjU4ZmUwMjc2NjczNTk5ZGE2ZmNlMzVjZGFkNzcyNmEwYmIwMjRjYWQ5OTZiODhlMGNiOTg4NTRjZWI1YzBiNmVjNzQ4ZDlmOWNlNmE2Y2Q0Mzc4NThiYWNiODE0NjE4YTI3MmZmM2E0MTVjNmUwN2YzZGIwOTg4Nzc3ZmRlYzg0NWE5N2JmN2QxMDJkZDAzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzIwMjE0NTY0ZDU1NDAyNWFmNTk5ZTMyNzA3OWIyNzIwZWYwMGRmMzdjZmI3YzAyMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwMDQ2MDk4ZGM1ZjJiOTllM2JjMmVkNjY0MmQ3ZjBhNjFlZmFiYzE1YzM4Yzc2MzMzYmNjY2VlZWUzNjlhNGY0YTViZGRhOGVhNTkyNjQxMjRlNDI5ZjA4NjMyNjgzZGRiYTE3YmJmMjYyZDgyYjZiZWZhM2I0ZTE0ODAzNzZhOGM3ZjNjN2Q3ZTJhNjc3OWJiZjE4MjYyYWE4NTdkZThjMjBhMTJiNmEyY2U4ZTRkN2YzMWRkMWIxOTUzOTJjZjYxODVhZmNlMzRhZmUwNTg5NjA1N2IzNmU5YjE3MWI2YzY3ZWQ3YzIyODZjYmZhODNmZjhhMTY3YzdiYzcxMDlhZWU3ZDdlMTkwOWJkMzg0ZmJmYzYxOTM4ZWZjYTUxYzg5OTNjNzFkYjMxNzczMGYxNmU3ZTc3Njg2N2FlNGZkYzU2MmQ2ZjE1ZGU1ODVlN2I5NGVmNDk2YTM2NzYzNjdhMmNiYWFiN2I2MzY2NDhiMDA3NmJhZDVjZGYxZTA5NzQwZWM2YTQ1MWJmZjUzNGVmYTIxNTA5ZjNiYTc3YjgxMDFiOTFlYTdlNTVkZGJmZTE0MDE1MTcwNjdkN2IwMWEyYTA4NzlmMDg4NWM4OTRhODdjZmI2OGM0ZDdlZTg5MDYwNDg4MWFlYjk3YzIyZDFmMzM3ZWY5MjNlMDM1YTY0MDAiCiAKIFBLQ1M3IFBhcnNlIEZhaWx1cmUgSW52YWxpZCBBU04xOiBDaGFuZ2UgbGVuZ3RoIGZyb20gMTMgdG8gMTQgIzQ5Mi4wCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NgogcGtjczdfYXNuMV9mYWlsOiIzMDgyMDMyNjA2MDkyYTg2NDg4NmY3MGQwMTA3MDJhMDgyMDMxNzMwODIwMzEzMDIwMTAxMzEwZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGIwNjA5MmE4NjQ4ODZmNzBkMDEwNzAxMzE4MjAyZWUzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwNWJlY2Q4NzE5NWMxZGVmZjkwYzI0YzkxMjY5YjU1YjNmMDY5YmMyMjVjMzI2YzMxNGMxYTUxNzg2ZmZlMTRjODMwYmU0ZTRiYzczY2JhMzZjOTc2NzdiNDQxNjgyNzliZTkxZTdjZGY3YzE5Mzg2YWUyMTg2MjcxOWQxM2EzYTBmZmYwODAzZDQ2MDk2MmYyY2RhODM3MTQ4NDg3MzI1MmMzZDcwNTRkYjgxNDNlMmIwODFhMzgxNmVkMDgwNGNhNTA5OWFlNWZlY2U4M2Q1YzJjMzc4M2IxOTg4YjRiNDZkYzk0ZTU1NTg3YTEwN2VhMTU0NmJmMjJkMjhhMDk3ZjY1MmE0MDY2ZGMyOTY1MjY5MDY5YWYyZjUxNzZiYjhjZTljYTZkMTFmOTY3NTdmMDMyMDRmNzU2NzAzNTg3ZDAwYWQ0MjQ3OTZjOTJmYzdhZWI2ZjQ5NDQzMTk5OWVkYTMwOTkwZTRmNTc3MzYzMmVkMjU4ZmUwMjc2NjczNTk5ZGE2ZmNlMzVjZGFkNzcyNmEwYmIwMjRjYWQ5OTZiODhlMGNiOTg4NTRjZWI1YzBiNmVjNzQ4ZDlmOWNlNmE2Y2Q0Mzc4NThiYWNiODE0NjE4YTI3MmZmM2E0MTVjNmUwN2YzZGIwOTg4Nzc3ZmRlYzg0NWE5N2JmN2QxMDJkZDAzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzIwMjE0NTY0ZDU1NDAyNWFmNTk5ZTMyNzA3OWIyNzIwZWYwMGRmMzdjZmI3YzMwMGUwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwMDQ2MDk4ZGM1ZjJiOTllM2JjMmVkNjY0MmQ3ZjBhNjFlZmFiYzE1YzM4Yzc2MzMzYmNjY2VlZWUzNjlhNGY0YTViZGRhOGVhNTkyNjQxMjRlNDI5ZjA4NjMyNjgzZGRiYTE3YmJmMjYyZDgyYjZiZWZhM2I0ZTE0ODAzNzZhOGM3ZjNjN2Q3ZTJhNjc3OWJiZjE4MjYyYWE4NTdkZThjMjBhMTJiNmEyY2U4ZTRkN2YzMWRkMWIxOTUzOTJjZjYxODVhZmNlMzRhZmUwNTg5NjA1N2IzNmU5YjE3MWI2YzY3ZWQ3YzIyODZjYmZhODNmZjhhMTY3YzdiYzcxMDlhZWU3ZDdlMTkwOWJkMzg0ZmJmYzYxOTM4ZWZjYTUxYzg5OTNjNzFkYjMxNzczMGYxNmU3ZTc3Njg2N2FlNGZkYzU2MmQ2ZjE1ZGU1ODVlN2I5NGVmNDk2YTM2NzYzNjdhMmNiYWFiN2I2MzY2NDhiMDA3NmJhZDVjZGYxZTA5NzQwZWM2YTQ1MWJmZjUzNGVmYTIxNTA5ZjNiYTc3YjgxMDFiOTFlYTdlNTVkZGJmZTE0MDE1MTcwNjdkN2IwMWEyYTA4NzlmMDg4NWM4OTRhODdjZmI2OGM0ZDdlZTg5MDYwNDg4MWFlYjk3YzIyZDFmMzM3ZWY5MjNlMDM1YTY0MDAiCiAKIFBLQ1M3IFBhcnNlIEZhaWx1cmUgSW52YWxpZCBBU04xOiBDaGFuZ2UgY29udGVudHMgb2YgdGFnIDMwIHRvIGNvbnRhaW4gb25lIHVuYWNjb3VudGVkIGV4dHJhIGJ5dGUgIzQ5My4wCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NgogcGtjczdfYXNuMV9mYWlsOiIzMDgyMDMyNjA2MDkyYTg2NDg4NmY3MGQwMTA3MDJhMDgyMDMxNzMwODIwMzEzMDIwMTAxMzEwZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGIwNjA5MmE4NjQ4ODZmNzBkMDEwNzAxMzE4MjAyZWUzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwNWJlY2Q4NzE5NWMxZGVmZjkwYzI0YzkxMjY5YjU1YjNmMDY5YmMyMjVjMzI2YzMxNGMxYTUxNzg2ZmZlMTRjODMwYmU0ZTRiYzczY2JhMzZjOTc2NzdiNDQxNjgyNzliZTkxZTdjZGY3YzE5Mzg2YWUyMTg2MjcxOWQxM2EzYTBmZmYwODAzZDQ2MDk2MmYyY2RhODM3MTQ4NDg3MzI1MmMzZDcwNTRkYjgxNDNlMmIwODFhMzgxNmVkMDgwNGNhNTA5OWFlNWZlY2U4M2Q1YzJjMzc4M2IxOTg4YjRiNDZkYzk0ZTU1NTg3YTEwN2VhMTU0NmJmMjJkMjhhMDk3ZjY1MmE0MDY2ZGMyOTY1MjY5MDY5YWYyZjUxNzZiYjhjZTljYTZkMTFmOTY3NTdmMDMyMDRmNzU2NzAzNTg3ZDAwYWQ0MjQ3OTZjOTJmYzdhZWI2ZjQ5NDQzMTk5OWVkYTMwOTkwZTRmNTc3MzYzMmVkMjU4ZmUwMjc2NjczNTk5ZGE2ZmNlMzVjZGFkNzcyNmEwYmIwMjRjYWQ5OTZiODhlMGNiOTg4NTRjZWI1YzBiNmVjNzQ4ZDlmOWNlNmE2Y2Q0Mzc4NThiYWNiODE0NjE4YTI3MmZmM2E0MTVjNmUwN2YzZGIwOTg4Nzc3ZmRlYzg0NWE5N2JmN2QxMDJkZDAzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzIwMjE0NTY0ZDU1NDAyNWFmNTk5ZTMyNzA3OWIyNzIwZWYwMGRmMzdjZmI3YzMwMGUwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDAwNDYwOThkYzVmMmI5OWUzYmMyZWQ2NjQyZDdmMGE2MWVmYWJjMTVjMzhjNzYzMzNiY2NjZWVlZTM2OWE0ZjRhNWJkZGE4ZWE1OTI2NDEyNGU0MjlmMDg2MzI2ODNkZGJhMTdiYmYyNjJkODJiNmJlZmEzYjRlMTQ4MDM3NmE4YzdmM2M3ZDdlMmE2Nzc5YmJmMTgyNjJhYTg1N2RlOGMyMGExMmI2YTJjZThlNGQ3ZjMxZGQxYjE5NTM5MmNmNjE4NWFmY2UzNGFmZTA1ODk2MDU3YjM2ZTliMTcxYjZjNjdlZDdjMjI4NmNiZmE4M2ZmOGExNjdjN2JjNzEwOWFlZTdkN2UxOTA5YmQzODRmYmZjNjE5MzhlZmNhNTFjODk5M2M3MWRiMzE3NzMwZjE2ZTdlNzc2ODY3YWU0ZmRjNTYyZDZmMTVkZTU4NWU3Yjk0ZWY0OTZhMzY3NjM2N2EyY2JhYWI3YjYzNjY0OGIwMDc2YmFkNWNkZjFlMDk3NDBlYzZhNDUxYmZmNTM0ZWZhMjE1MDlmM2JhNzdiODEwMWI5MWVhN2U1NWRkYmZlMTQwMTUxNzA2N2Q3YjAxYTJhMDg3OWYwODg1Yzg5NGE4N2NmYjY4YzRkN2VlODkwNjA0ODgxYWViOTdjMjJkMWYzMzdlZjkyM2UwMzVhNjQwMCIKIAogUEtDUzcgUGFyc2UgRmFpbHVyZSBJbnZhbGlkIEFTTjE6IENoYW5nZSBsZW5ndGggZnJvbSAxMyB0byAxMiAjNDk0LjAKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBwa2NzN19hc24xX2ZhaWw6IjMwODIwMzI2MDYwOTJhODY0ODg2ZjcwZDAxMDcwMmEwODIwMzE3MzA4MjAzMTMwMjAxMDEzMTBmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwYjA2MDkyYTg2NDg4NmY3MGQwMTA3MDEzMTgyMDJlZTMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTAyMTQ3YmRlZGRkMjQ0NGNkMWNkZmU1YzQxYTgxMDJjODliN2RmMmU2Y2JmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDA1YmVjZDg3MTk1YzFkZWZmOTBjMjRjOTEyNjliNTViM2YwNjliYzIyNWMzMjZjMzE0YzFhNTE3ODZmZmUxNGM4MzBiZTRlNGJjNzNjYmEzNmM5NzY3N2I0NDE2ODI3OWJlOTFlN2NkZjdjMTkzODZhZTIxODYyNzE5ZDEzYTNhMGZmZjA4MDNkNDYwOTYyZjJjZGE4MzcxNDg0ODczMjUyYzNkNzA1NGRiODE0M2UyYjA4MWEzODE2ZWQwODA0Y2E1MDk5YWU1ZmVjZTgzZDVjMmMzNzgzYjE5ODhiNGI0NmRjOTRlNTU1ODdhMTA3ZWExNTQ2YmYyMmQyOGEwOTdmNjUyYTQwNjZkYzI5NjUyNjkwNjlhZjJmNTE3NmJiOGNlOWNhNmQxMWY5Njc1N2YwMzIwNGY3NTY3MDM1ODdkMDBhZDQyNDc5NmM5MmZjN2FlYjZmNDk0NDMxOTk5ZWRhMzA5OTBlNGY1NzczNjMyZWQyNThmZTAyNzY2NzM1OTlkYTZmY2UzNWNkYWQ3NzI2YTBiYjAyNGNhZDk5NmI4OGUwY2I5ODg1NGNlYjVjMGI2ZWM3NDhkOWY5Y2U2YTZjZDQzNzg1OGJhY2I4MTQ2MThhMjcyZmYzYTQxNWM2ZTA3ZjNkYjA5ODg3NzdmZGVjODQ1YTk3YmY3ZDEwMmRkMDMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMjAyMTQ1NjRkNTU0MDI1YWY1OTllMzI3MDc5YjI3MjBlZjAwZGYzN2NmYjdjMzAwYzA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDAwNDYwOThkYzVmMmI5OWUzYmMyZWQ2NjQyZDdmMGE2MWVmYWJjMTVjMzhjNzYzMzNiY2NjZWVlZTM2OWE0ZjRhNWJkZGE4ZWE1OTI2NDEyNGU0MjlmMDg2MzI2ODNkZGJhMTdiYmYyNjJkODJiNmJlZmEzYjRlMTQ4MDM3NmE4YzdmM2M3ZDdlMmE2Nzc5YmJmMTgyNjJhYTg1N2RlOGMyMGExMmI2YTJjZThlNGQ3ZjMxZGQxYjE5NTM5MmNmNjE4NWFmY2UzNGFmZTA1ODk2MDU3YjM2ZTliMTcxYjZjNjdlZDdjMjI4NmNiZmE4M2ZmOGExNjdjN2JjNzEwOWFlZTdkN2UxOTA5YmQzODRmYmZjNjE5MzhlZmNhNTFjODk5M2M3MWRiMzE3NzMwZjE2ZTdlNzc2ODY3YWU0ZmRjNTYyZDZmMTVkZTU4NWU3Yjk0ZWY0OTZhMzY3NjM2N2EyY2JhYWI3YjYzNjY0OGIwMDc2YmFkNWNkZjFlMDk3NDBlYzZhNDUxYmZmNTM0ZWZhMjE1MDlmM2JhNzdiODEwMWI5MWVhN2U1NWRkYmZlMTQwMTUxNzA2N2Q3YjAxYTJhMDg3OWYwODg1Yzg5NGE4N2NmYjY4YzRkN2VlODkwNjA0ODgxYWViOTdjMjJkMWYzMzdlZjkyM2UwMzVhNjQwMCIKIAogUEtDUzcgUGFyc2UgRmFpbHVyZSBJbnZhbGlkIEFTTjE6IENoYW5nZSB0YWcgMDYgdG8gMDIgIzQ5NS4wCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NgogcGtjczdfYXNuMV9mYWlsOiIzMDgyMDMyNjA2MDkyYTg2NDg4NmY3MGQwMTA3MDJhMDgyMDMxNzMwODIwMzEzMDIwMTAxMzEwZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGIwNjA5MmE4NjQ4ODZmNzBkMDEwNzAxMzE4MjAyZWUzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwNWJlY2Q4NzE5NWMxZGVmZjkwYzI0YzkxMjY5YjU1YjNmMDY5YmMyMjVjMzI2YzMxNGMxYTUxNzg2ZmZlMTRjODMwYmU0ZTRiYzczY2JhMzZjOTc2NzdiNDQxNjgyNzliZTkxZTdjZGY3YzE5Mzg2YWUyMTg2MjcxOWQxM2EzYTBmZmYwODAzZDQ2MDk2MmYyY2RhODM3MTQ4NDg3MzI1MmMzZDcwNTRkYjgxNDNlMmIwODFhMzgxNmVkMDgwNGNhNTA5OWFlNWZlY2U4M2Q1YzJjMzc4M2IxOTg4YjRiNDZkYzk0ZTU1NTg3YTEwN2VhMTU0NmJmMjJkMjhhMDk3ZjY1MmE0MDY2ZGMyOTY1MjY5MDY5YWYyZjUxNzZiYjhjZTljYTZkMTFmOTY3NTdmMDMyMDRmNzU2NzAzNTg3ZDAwYWQ0MjQ3OTZjOTJmYzdhZWI2ZjQ5NDQzMTk5OWVkYTMwOTkwZTRmNTc3MzYzMmVkMjU4ZmUwMjc2NjczNTk5ZGE2ZmNlMzVjZGFkNzcyNmEwYmIwMjRjYWQ5OTZiODhlMGNiOTg4NTRjZWI1YzBiNmVjNzQ4ZDlmOWNlNmE2Y2Q0Mzc4NThiYWNiODE0NjE4YTI3MmZmM2E0MTVjNmUwN2YzZGIwOTg4Nzc3ZmRlYzg0NWE5N2JmN2QxMDJkZDAzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzIwMjE0NTY0ZDU1NDAyNWFmNTk5ZTMyNzA3OWIyNzIwZWYwMGRmMzdjZmI3YzMwMGQwMjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwMDQ2MDk4ZGM1ZjJiOTllM2JjMmVkNjY0MmQ3ZjBhNjFlZmFiYzE1YzM4Yzc2MzMzYmNjY2VlZWUzNjlhNGY0YTViZGRhOGVhNTkyNjQxMjRlNDI5ZjA4NjMyNjgzZGRiYTE3YmJmMjYyZDgyYjZiZWZhM2I0ZTE0ODAzNzZhOGM3ZjNjN2Q3ZTJhNjc3OWJiZjE4MjYyYWE4NTdkZThjMjBhMTJiNmEyY2U4ZTRkN2YzMWRkMWIxOTUzOTJjZjYxODVhZmNlMzRhZmUwNTg5NjA1N2IzNmU5YjE3MWI2YzY3ZWQ3YzIyODZjYmZhODNmZjhhMTY3YzdiYzcxMDlhZWU3ZDdlMTkwOWJkMzg0ZmJmYzYxOTM4ZWZjYTUxYzg5OTNjNzFkYjMxNzczMGYxNmU3ZTc3Njg2N2FlNGZkYzU2MmQ2ZjE1ZGU1ODVlN2I5NGVmNDk2YTM2NzYzNjdhMmNiYWFiN2I2MzY2NDhiMDA3NmJhZDVjZGYxZTA5NzQwZWM2YTQ1MWJmZjUzNGVmYTIxNTA5ZjNiYTc3YjgxMDFiOTFlYTdlNTVkZGJmZTE0MDE1MTcwNjdkN2IwMWEyYTA4NzlmMDg4NWM4OTRhODdjZmI2OGM0ZDdlZTg5MDYwNDg4MWFlYjk3YzIyZDFmMzM3ZWY5MjNlMDM1YTY0MDAiCiAKIFBLQ1M3IFBhcnNlIEZhaWx1cmUgSW52YWxpZCBBU04xOiBDaGFuZ2UgbGVuZ3RoIGZyb20gOSB0byAxMCAjNDk2LjAKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBwa2NzN19hc24xX2ZhaWw6IjMwODIwMzI2MDYwOTJhODY0ODg2ZjcwZDAxMDcwMmEwODIwMzE3MzA4MjAzMTMwMjAxMDEzMTBmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwYjA2MDkyYTg2NDg4NmY3MGQwMTA3MDEzMTgyMDJlZTMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTAyMTQ3YmRlZGRkMjQ0NGNkMWNkZmU1YzQxYTgxMDJjODliN2RmMmU2Y2JmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDA1YmVjZDg3MTk1YzFkZWZmOTBjMjRjOTEyNjliNTViM2YwNjliYzIyNWMzMjZjMzE0YzFhNTE3ODZmZmUxNGM4MzBiZTRlNGJjNzNjYmEzNmM5NzY3N2I0NDE2ODI3OWJlOTFlN2NkZjdjMTkzODZhZTIxODYyNzE5ZDEzYTNhMGZmZjA4MDNkNDYwOTYyZjJjZGE4MzcxNDg0ODczMjUyYzNkNzA1NGRiODE0M2UyYjA4MWEzODE2ZWQwODA0Y2E1MDk5YWU1ZmVjZTgzZDVjMmMzNzgzYjE5ODhiNGI0NmRjOTRlNTU1ODdhMTA3ZWExNTQ2YmYyMmQyOGEwOTdmNjUyYTQwNjZkYzI5NjUyNjkwNjlhZjJmNTE3NmJiOGNlOWNhNmQxMWY5Njc1N2YwMzIwNGY3NTY3MDM1ODdkMDBhZDQyNDc5NmM5MmZjN2FlYjZmNDk0NDMxOTk5ZWRhMzA5OTBlNGY1NzczNjMyZWQyNThmZTAyNzY2NzM1OTlkYTZmY2UzNWNkYWQ3NzI2YTBiYjAyNGNhZDk5NmI4OGUwY2I5ODg1NGNlYjVjMGI2ZWM3NDhkOWY5Y2U2YTZjZDQzNzg1OGJhY2I4MTQ2MThhMjcyZmYzYTQxNWM2ZTA3ZjNkYjA5ODg3NzdmZGVjODQ1YTk3YmY3ZDEwMmRkMDMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMjAyMTQ1NjRkNTU0MDI1YWY1OTllMzI3MDc5YjI3MjBlZjAwZGYzN2NmYjdjMzAwZDA2MGE2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDAwNDYwOThkYzVmMmI5OWUzYmMyZWQ2NjQyZDdmMGE2MWVmYWJjMTVjMzhjNzYzMzNiY2NjZWVlZTM2OWE0ZjRhNWJkZGE4ZWE1OTI2NDEyNGU0MjlmMDg2MzI2ODNkZGJhMTdiYmYyNjJkODJiNmJlZmEzYjRlMTQ4MDM3NmE4YzdmM2M3ZDdlMmE2Nzc5YmJmMTgyNjJhYTg1N2RlOGMyMGExMmI2YTJjZThlNGQ3ZjMxZGQxYjE5NTM5MmNmNjE4NWFmY2UzNGFmZTA1ODk2MDU3YjM2ZTliMTcxYjZjNjdlZDdjMjI4NmNiZmE4M2ZmOGExNjdjN2JjNzEwOWFlZTdkN2UxOTA5YmQzODRmYmZjNjE5MzhlZmNhNTFjODk5M2M3MWRiMzE3NzMwZjE2ZTdlNzc2ODY3YWU0ZmRjNTYyZDZmMTVkZTU4NWU3Yjk0ZWY0OTZhMzY3NjM2N2EyY2JhYWI3YjYzNjY0OGIwMDc2YmFkNWNkZjFlMDk3NDBlYzZhNDUxYmZmNTM0ZWZhMjE1MDlmM2JhNzdiODEwMWI5MWVhN2U1NWRkYmZlMTQwMTUxNzA2N2Q3YjAxYTJhMDg3OWYwODg1Yzg5NGE4N2NmYjY4YzRkN2VlODkwNjA0ODgxYWViOTdjMjJkMWYzMzdlZjkyM2UwMzVhNjQwMCIKIAogUEtDUzcgUGFyc2UgRmFpbHVyZSBJbnZhbGlkIEFTTjE6IENoYW5nZSBsZW5ndGggZnJvbSA5IHRvIDggIzQ5Ny4wCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NgogcGtjczdfYXNuMV9mYWlsOiIzMDgyMDMyNjA2MDkyYTg2NDg4NmY3MGQwMTA3MDJhMDgyMDMxNzMwODIwMzEzMDIwMTAxMzEwZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGIwNjA5MmE4NjQ4ODZmNzBkMDEwNzAxMzE4MjAyZWUzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwNWJlY2Q4NzE5NWMxZGVmZjkwYzI0YzkxMjY5YjU1YjNmMDY5YmMyMjVjMzI2YzMxNGMxYTUxNzg2ZmZlMTRjODMwYmU0ZTRiYzczY2JhMzZjOTc2NzdiNDQxNjgyNzliZTkxZTdjZGY3YzE5Mzg2YWUyMTg2MjcxOWQxM2EzYTBmZmYwODAzZDQ2MDk2MmYyY2RhODM3MTQ4NDg3MzI1MmMzZDcwNTRkYjgxNDNlMmIwODFhMzgxNmVkMDgwNGNhNTA5OWFlNWZlY2U4M2Q1YzJjMzc4M2IxOTg4YjRiNDZkYzk0ZTU1NTg3YTEwN2VhMTU0NmJmMjJkMjhhMDk3ZjY1MmE0MDY2ZGMyOTY1MjY5MDY5YWYyZjUxNzZiYjhjZTljYTZkMTFmOTY3NTdmMDMyMDRmNzU2NzAzNTg3ZDAwYWQ0MjQ3OTZjOTJmYzdhZWI2ZjQ5NDQzMTk5OWVkYTMwOTkwZTRmNTc3MzYzMmVkMjU4ZmUwMjc2NjczNTk5ZGE2ZmNlMzVjZGFkNzcyNmEwYmIwMjRjYWQ5OTZiODhlMGNiOTg4NTRjZWI1YzBiNmVjNzQ4ZDlmOWNlNmE2Y2Q0Mzc4NThiYWNiODE0NjE4YTI3MmZmM2E0MTVjNmUwN2YzZGIwOTg4Nzc3ZmRlYzg0NWE5N2JmN2QxMDJkZDAzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzIwMjE0NTY0ZDU1NDAyNWFmNTk5ZTMyNzA3OWIyNzIwZWYwMGRmMzdjZmI3YzMwMGQwNjA4NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwMDQ2MDk4ZGM1ZjJiOTllM2JjMmVkNjY0MmQ3ZjBhNjFlZmFiYzE1YzM4Yzc2MzMzYmNjY2VlZWUzNjlhNGY0YTViZGRhOGVhNTkyNjQxMjRlNDI5ZjA4NjMyNjgzZGRiYTE3YmJmMjYyZDgyYjZiZWZhM2I0ZTE0ODAzNzZhOGM3ZjNjN2Q3ZTJhNjc3OWJiZjE4MjYyYWE4NTdkZThjMjBhMTJiNmEyY2U4ZTRkN2YzMWRkMWIxOTUzOTJjZjYxODVhZmNlMzRhZmUwNTg5NjA1N2IzNmU5YjE3MWI2YzY3ZWQ3YzIyODZjYmZhODNmZjhhMTY3YzdiYzcxMDlhZWU3ZDdlMTkwOWJkMzg0ZmJmYzYxOTM4ZWZjYTUxYzg5OTNjNzFkYjMxNzczMGYxNmU3ZTc3Njg2N2FlNGZkYzU2MmQ2ZjE1ZGU1ODVlN2I5NGVmNDk2YTM2NzYzNjdhMmNiYWFiN2I2MzY2NDhiMDA3NmJhZDVjZGYxZTA5NzQwZWM2YTQ1MWJmZjUzNGVmYTIxNTA5ZjNiYTc3YjgxMDFiOTFlYTdlNTVkZGJmZTE0MDE1MTcwNjdkN2IwMWEyYTA4NzlmMDg4NWM4OTRhODdjZmI2OGM0ZDdlZTg5MDYwNDg4MWFlYjk3YzIyZDFmMzM3ZWY5MjNlMDM1YTY0MDAiCiAKIFBLQ1M3IFBhcnNlIEZhaWx1cmUgSW52YWxpZCBBU04xOiBDaGFuZ2UgdGFnIDA1IHRvIDAyICM0OTguMAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHBrY3M3X2FzbjFfZmFpbDoiMzA4MjAzMjYwNjA5MmE4NjQ4ODZmNzBkMDEwNzAyYTA4MjAzMTczMDgyMDMxMzAyMDEwMTMxMGYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBiMDYwOTJhODY0ODg2ZjcwZDAxMDcwMTMxODIwMmVlMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDViZWNkODcxOTVjMWRlZmY5MGMyNGM5MTI2OWI1NWIzZjA2OWJjMjI1YzMyNmMzMTRjMWE1MTc4NmZmZTE0YzgzMGJlNGU0YmM3M2NiYTM2Yzk3Njc3YjQ0MTY4Mjc5YmU5MWU3Y2RmN2MxOTM4NmFlMjE4NjI3MTlkMTNhM2EwZmZmMDgwM2Q0NjA5NjJmMmNkYTgzNzE0ODQ4NzMyNTJjM2Q3MDU0ZGI4MTQzZTJiMDgxYTM4MTZlZDA4MDRjYTUwOTlhZTVmZWNlODNkNWMyYzM3ODNiMTk4OGI0YjQ2ZGM5NGU1NTU4N2ExMDdlYTE1NDZiZjIyZDI4YTA5N2Y2NTJhNDA2NmRjMjk2NTI2OTA2OWFmMmY1MTc2YmI4Y2U5Y2E2ZDExZjk2NzU3ZjAzMjA0Zjc1NjcwMzU4N2QwMGFkNDI0Nzk2YzkyZmM3YWViNmY0OTQ0MzE5OTllZGEzMDk5MGU0ZjU3NzM2MzJlZDI1OGZlMDI3NjY3MzU5OWRhNmZjZTM1Y2RhZDc3MjZhMGJiMDI0Y2FkOTk2Yjg4ZTBjYjk4ODU0Y2ViNWMwYjZlYzc0OGQ5ZjljZTZhNmNkNDM3ODU4YmFjYjgxNDYxOGEyNzJmZjNhNDE1YzZlMDdmM2RiMDk4ODc3N2ZkZWM4NDVhOTdiZjdkMTAyZGQwMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMyMDIxNDU2NGQ1NTQwMjVhZjU5OWUzMjcwNzliMjcyMGVmMDBkZjM3Y2ZiN2MzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTAyMDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDA0NjA5OGRjNWYyYjk5ZTNiYzJlZDY2NDJkN2YwYTYxZWZhYmMxNWMzOGM3NjMzM2JjY2NlZWVlMzY5YTRmNGE1YmRkYThlYTU5MjY0MTI0ZTQyOWYwODYzMjY4M2RkYmExN2JiZjI2MmQ4MmI2YmVmYTNiNGUxNDgwMzc2YThjN2YzYzdkN2UyYTY3NzliYmYxODI2MmFhODU3ZGU4YzIwYTEyYjZhMmNlOGU0ZDdmMzFkZDFiMTk1MzkyY2Y2MTg1YWZjZTM0YWZlMDU4OTYwNTdiMzZlOWIxNzFiNmM2N2VkN2MyMjg2Y2JmYTgzZmY4YTE2N2M3YmM3MTA5YWVlN2Q3ZTE5MDliZDM4NGZiZmM2MTkzOGVmY2E1MWM4OTkzYzcxZGIzMTc3MzBmMTZlN2U3NzY4NjdhZTRmZGM1NjJkNmYxNWRlNTg1ZTdiOTRlZjQ5NmEzNjc2MzY3YTJjYmFhYjdiNjM2NjQ4YjAwNzZiYWQ1Y2RmMWUwOTc0MGVjNmE0NTFiZmY1MzRlZmEyMTUwOWYzYmE3N2I4MTAxYjkxZWE3ZTU1ZGRiZmUxNDAxNTE3MDY3ZDdiMDFhMmEwODc5ZjA4ODVjODk0YTg3Y2ZiNjhjNGQ3ZWU4OTA2MDQ4ODFhZWI5N2MyMmQxZjMzN2VmOTIzZTAzNWE2NDAwIgogCiBQS0NTNyBQYXJzZSBGYWlsdXJlIEludmFsaWQgQVNOMTogQ2hhbmdlIGxlbmd0aCBmcm9tIDAgdG8gMSAjNDk5LjAKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBwa2NzN19hc24xX2ZhaWw6IjMwODIwMzI2MDYwOTJhODY0ODg2ZjcwZDAxMDcwMmEwODIwMzE3MzA4MjAzMTMwMjAxMDEzMTBmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwYjA2MDkyYTg2NDg4NmY3MGQwMTA3MDEzMTgyMDJlZTMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTAyMTQ3YmRlZGRkMjQ0NGNkMWNkZmU1YzQxYTgxMDJjODliN2RmMmU2Y2JmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDA1YmVjZDg3MTk1YzFkZWZmOTBjMjRjOTEyNjliNTViM2YwNjliYzIyNWMzMjZjMzE0YzFhNTE3ODZmZmUxNGM4MzBiZTRlNGJjNzNjYmEzNmM5NzY3N2I0NDE2ODI3OWJlOTFlN2NkZjdjMTkzODZhZTIxODYyNzE5ZDEzYTNhMGZmZjA4MDNkNDYwOTYyZjJjZGE4MzcxNDg0ODczMjUyYzNkNzA1NGRiODE0M2UyYjA4MWEzODE2ZWQwODA0Y2E1MDk5YWU1ZmVjZTgzZDVjMmMzNzgzYjE5ODhiNGI0NmRjOTRlNTU1ODdhMTA3ZWExNTQ2YmYyMmQyOGEwOTdmNjUyYTQwNjZkYzI5NjUyNjkwNjlhZjJmNTE3NmJiOGNlOWNhNmQxMWY5Njc1N2YwMzIwNGY3NTY3MDM1ODdkMDBhZDQyNDc5NmM5MmZjN2FlYjZmNDk0NDMxOTk5ZWRhMzA5OTBlNGY1NzczNjMyZWQyNThmZTAyNzY2NzM1OTlkYTZmY2UzNWNkYWQ3NzI2YTBiYjAyNGNhZDk5NmI4OGUwY2I5ODg1NGNlYjVjMGI2ZWM3NDhkOWY5Y2U2YTZjZDQzNzg1OGJhY2I4MTQ2MThhMjcyZmYzYTQxNWM2ZTA3ZjNkYjA5ODg3NzdmZGVjODQ1YTk3YmY3ZDEwMmRkMDMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMjAyMTQ1NjRkNTU0MDI1YWY1OTllMzI3MDc5YjI3MjBlZjAwZGYzN2NmYjdjMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAxMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDAwNDYwOThkYzVmMmI5OWUzYmMyZWQ2NjQyZDdmMGE2MWVmYWJjMTVjMzhjNzYzMzNiY2NjZWVlZTM2OWE0ZjRhNWJkZGE4ZWE1OTI2NDEyNGU0MjlmMDg2MzI2ODNkZGJhMTdiYmYyNjJkODJiNmJlZmEzYjRlMTQ4MDM3NmE4YzdmM2M3ZDdlMmE2Nzc5YmJmMTgyNjJhYTg1N2RlOGMyMGExMmI2YTJjZThlNGQ3ZjMxZGQxYjE5NTM5MmNmNjE4NWFmY2UzNGFmZTA1ODk2MDU3YjM2ZTliMTcxYjZjNjdlZDdjMjI4NmNiZmE4M2ZmOGExNjdjN2JjNzEwOWFlZTdkN2UxOTA5YmQzODRmYmZjNjE5MzhlZmNhNTFjODk5M2M3MWRiMzE3NzMwZjE2ZTdlNzc2ODY3YWU0ZmRjNTYyZDZmMTVkZTU4NWU3Yjk0ZWY0OTZhMzY3NjM2N2EyY2JhYWI3YjYzNjY0OGIwMDc2YmFkNWNkZjFlMDk3NDBlYzZhNDUxYmZmNTM0ZWZhMjE1MDlmM2JhNzdiODEwMWI5MWVhN2U1NWRkYmZlMTQwMTUxNzA2N2Q3YjAxYTJhMDg3OWYwODg1Yzg5NGE4N2NmYjY4YzRkN2VlODkwNjA0ODgxYWViOTdjMjJkMWYzMzdlZjkyM2UwMzVhNjQwMCIKIAogUEtDUzcgUGFyc2UgRmFpbHVyZSBJbnZhbGlkIEFTTjE6IENoYW5nZSB0YWcgMzAgdG8gMDIgIzUwMC4wCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NgogcGtjczdfYXNuMV9mYWlsOiIzMDgyMDMyNjA2MDkyYTg2NDg4NmY3MGQwMTA3MDJhMDgyMDMxNzMwODIwMzEzMDIwMTAxMzEwZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGIwNjA5MmE4NjQ4ODZmNzBkMDEwNzAxMzE4MjAyZWUzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwNWJlY2Q4NzE5NWMxZGVmZjkwYzI0YzkxMjY5YjU1YjNmMDY5YmMyMjVjMzI2YzMxNGMxYTUxNzg2ZmZlMTRjODMwYmU0ZTRiYzczY2JhMzZjOTc2NzdiNDQxNjgyNzliZTkxZTdjZGY3YzE5Mzg2YWUyMTg2MjcxOWQxM2EzYTBmZmYwODAzZDQ2MDk2MmYyY2RhODM3MTQ4NDg3MzI1MmMzZDcwNTRkYjgxNDNlMmIwODFhMzgxNmVkMDgwNGNhNTA5OWFlNWZlY2U4M2Q1YzJjMzc4M2IxOTg4YjRiNDZkYzk0ZTU1NTg3YTEwN2VhMTU0NmJmMjJkMjhhMDk3ZjY1MmE0MDY2ZGMyOTY1MjY5MDY5YWYyZjUxNzZiYjhjZTljYTZkMTFmOTY3NTdmMDMyMDRmNzU2NzAzNTg3ZDAwYWQ0MjQ3OTZjOTJmYzdhZWI2ZjQ5NDQzMTk5OWVkYTMwOTkwZTRmNTc3MzYzMmVkMjU4ZmUwMjc2NjczNTk5ZGE2ZmNlMzVjZGFkNzcyNmEwYmIwMjRjYWQ5OTZiODhlMGNiOTg4NTRjZWI1YzBiNmVjNzQ4ZDlmOWNlNmE2Y2Q0Mzc4NThiYWNiODE0NjE4YTI3MmZmM2E0MTVjNmUwN2YzZGIwOTg4Nzc3ZmRlYzg0NWE5N2JmN2QxMDJkZDAzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzIwMjE0NTY0ZDU1NDAyNWFmNTk5ZTMyNzA3OWIyNzIwZWYwMGRmMzdjZmI3YzMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDAyMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwMDQ2MDk4ZGM1ZjJiOTllM2JjMmVkNjY0MmQ3ZjBhNjFlZmFiYzE1YzM4Yzc2MzMzYmNjY2VlZWUzNjlhNGY0YTViZGRhOGVhNTkyNjQxMjRlNDI5ZjA4NjMyNjgzZGRiYTE3YmJmMjYyZDgyYjZiZWZhM2I0ZTE0ODAzNzZhOGM3ZjNjN2Q3ZTJhNjc3OWJiZjE4MjYyYWE4NTdkZThjMjBhMTJiNmEyY2U4ZTRkN2YzMWRkMWIxOTUzOTJjZjYxODVhZmNlMzRhZmUwNTg5NjA1N2IzNmU5YjE3MWI2YzY3ZWQ3YzIyODZjYmZhODNmZjhhMTY3YzdiYzcxMDlhZWU3ZDdlMTkwOWJkMzg0ZmJmYzYxOTM4ZWZjYTUxYzg5OTNjNzFkYjMxNzczMGYxNmU3ZTc3Njg2N2FlNGZkYzU2MmQ2ZjE1ZGU1ODVlN2I5NGVmNDk2YTM2NzYzNjdhMmNiYWFiN2I2MzY2NDhiMDA3NmJhZDVjZGYxZTA5NzQwZWM2YTQ1MWJmZjUzNGVmYTIxNTA5ZjNiYTc3YjgxMDFiOTFlYTdlNTVkZGJmZTE0MDE1MTcwNjdkN2IwMWEyYTA4NzlmMDg4NWM4OTRhODdjZmI2OGM0ZDdlZTg5MDYwNDg4MWFlYjk3YzIyZDFmMzM3ZWY5MjNlMDM1YTY0MDAiCiAKIFBLQ1M3IFBhcnNlIEZhaWx1cmUgSW52YWxpZCBBU04xOiBDaGFuZ2UgbGVuZ3RoIGZyb20gMTMgdG8gMTQgIzUwMS4wCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NgogcGtjczdfYXNuMV9mYWlsOiIzMDgyMDMyNjA2MDkyYTg2NDg4NmY3MGQwMTA3MDJhMDgyMDMxNzMwODIwMzEzMDIwMTAxMzEwZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGIwNjA5MmE4NjQ4ODZmNzBkMDEwNzAxMzE4MjAyZWUzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwNWJlY2Q4NzE5NWMxZGVmZjkwYzI0YzkxMjY5YjU1YjNmMDY5YmMyMjVjMzI2YzMxNGMxYTUxNzg2ZmZlMTRjODMwYmU0ZTRiYzczY2JhMzZjOTc2NzdiNDQxNjgyNzliZTkxZTdjZGY3YzE5Mzg2YWUyMTg2MjcxOWQxM2EzYTBmZmYwODAzZDQ2MDk2MmYyY2RhODM3MTQ4NDg3MzI1MmMzZDcwNTRkYjgxNDNlMmIwODFhMzgxNmVkMDgwNGNhNTA5OWFlNWZlY2U4M2Q1YzJjMzc4M2IxOTg4YjRiNDZkYzk0ZTU1NTg3YTEwN2VhMTU0NmJmMjJkMjhhMDk3ZjY1MmE0MDY2ZGMyOTY1MjY5MDY5YWYyZjUxNzZiYjhjZTljYTZkMTFmOTY3NTdmMDMyMDRmNzU2NzAzNTg3ZDAwYWQ0MjQ3OTZjOTJmYzdhZWI2ZjQ5NDQzMTk5OWVkYTMwOTkwZTRmNTc3MzYzMmVkMjU4ZmUwMjc2NjczNTk5ZGE2ZmNlMzVjZGFkNzcyNmEwYmIwMjRjYWQ5OTZiODhlMGNiOTg4NTRjZWI1YzBiNmVjNzQ4ZDlmOWNlNmE2Y2Q0Mzc4NThiYWNiODE0NjE4YTI3MmZmM2E0MTVjNmUwN2YzZGIwOTg4Nzc3ZmRlYzg0NWE5N2JmN2QxMDJkZDAzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzIwMjE0NTY0ZDU1NDAyNWFmNTk5ZTMyNzA3OWIyNzIwZWYwMGRmMzdjZmI3YzMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGUwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwMDQ2MDk4ZGM1ZjJiOTllM2JjMmVkNjY0MmQ3ZjBhNjFlZmFiYzE1YzM4Yzc2MzMzYmNjY2VlZWUzNjlhNGY0YTViZGRhOGVhNTkyNjQxMjRlNDI5ZjA4NjMyNjgzZGRiYTE3YmJmMjYyZDgyYjZiZWZhM2I0ZTE0ODAzNzZhOGM3ZjNjN2Q3ZTJhNjc3OWJiZjE4MjYyYWE4NTdkZThjMjBhMTJiNmEyY2U4ZTRkN2YzMWRkMWIxOTUzOTJjZjYxODVhZmNlMzRhZmUwNTg5NjA1N2IzNmU5YjE3MWI2YzY3ZWQ3YzIyODZjYmZhODNmZjhhMTY3YzdiYzcxMDlhZWU3ZDdlMTkwOWJkMzg0ZmJmYzYxOTM4ZWZjYTUxYzg5OTNjNzFkYjMxNzczMGYxNmU3ZTc3Njg2N2FlNGZkYzU2MmQ2ZjE1ZGU1ODVlN2I5NGVmNDk2YTM2NzYzNjdhMmNiYWFiN2I2MzY2NDhiMDA3NmJhZDVjZGYxZTA5NzQwZWM2YTQ1MWJmZjUzNGVmYTIxNTA5ZjNiYTc3YjgxMDFiOTFlYTdlNTVkZGJmZTE0MDE1MTcwNjdkN2IwMWEyYTA4NzlmMDg4NWM4OTRhODdjZmI2OGM0ZDdlZTg5MDYwNDg4MWFlYjk3YzIyZDFmMzM3ZWY5MjNlMDM1YTY0MDAiCiAKIFBLQ1M3IFBhcnNlIEZhaWx1cmUgSW52YWxpZCBBU04xOiBDaGFuZ2UgY29udGVudHMgb2YgdGFnIDMwIHRvIGNvbnRhaW4gb25lIHVuYWNjb3VudGVkIGV4dHJhIGJ5dGUgIzUwMi4wCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NgogcGtjczdfYXNuMV9mYWlsOiIzMDgyMDMyNjA2MDkyYTg2NDg4NmY3MGQwMTA3MDJhMDgyMDMxNzMwODIwMzEzMDIwMTAxMzEwZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGIwNjA5MmE4NjQ4ODZmNzBkMDEwNzAxMzE4MjAyZWUzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwNWJlY2Q4NzE5NWMxZGVmZjkwYzI0YzkxMjY5YjU1YjNmMDY5YmMyMjVjMzI2YzMxNGMxYTUxNzg2ZmZlMTRjODMwYmU0ZTRiYzczY2JhMzZjOTc2NzdiNDQxNjgyNzliZTkxZTdjZGY3YzE5Mzg2YWUyMTg2MjcxOWQxM2EzYTBmZmYwODAzZDQ2MDk2MmYyY2RhODM3MTQ4NDg3MzI1MmMzZDcwNTRkYjgxNDNlMmIwODFhMzgxNmVkMDgwNGNhNTA5OWFlNWZlY2U4M2Q1YzJjMzc4M2IxOTg4YjRiNDZkYzk0ZTU1NTg3YTEwN2VhMTU0NmJmMjJkMjhhMDk3ZjY1MmE0MDY2ZGMyOTY1MjY5MDY5YWYyZjUxNzZiYjhjZTljYTZkMTFmOTY3NTdmMDMyMDRmNzU2NzAzNTg3ZDAwYWQ0MjQ3OTZjOTJmYzdhZWI2ZjQ5NDQzMTk5OWVkYTMwOTkwZTRmNTc3MzYzMmVkMjU4ZmUwMjc2NjczNTk5ZGE2ZmNlMzVjZGFkNzcyNmEwYmIwMjRjYWQ5OTZiODhlMGNiOTg4NTRjZWI1YzBiNmVjNzQ4ZDlmOWNlNmE2Y2Q0Mzc4NThiYWNiODE0NjE4YTI3MmZmM2E0MTVjNmUwN2YzZGIwOTg4Nzc3ZmRlYzg0NWE5N2JmN2QxMDJkZDAzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzIwMjE0NTY0ZDU1NDAyNWFmNTk5ZTMyNzA3OWIyNzIwZWYwMGRmMzdjZmI3YzMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGUwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDAwMDQ4MjAxMDAwNDYwOThkYzVmMmI5OWUzYmMyZWQ2NjQyZDdmMGE2MWVmYWJjMTVjMzhjNzYzMzNiY2NjZWVlZTM2OWE0ZjRhNWJkZGE4ZWE1OTI2NDEyNGU0MjlmMDg2MzI2ODNkZGJhMTdiYmYyNjJkODJiNmJlZmEzYjRlMTQ4MDM3NmE4YzdmM2M3ZDdlMmE2Nzc5YmJmMTgyNjJhYTg1N2RlOGMyMGExMmI2YTJjZThlNGQ3ZjMxZGQxYjE5NTM5MmNmNjE4NWFmY2UzNGFmZTA1ODk2MDU3YjM2ZTliMTcxYjZjNjdlZDdjMjI4NmNiZmE4M2ZmOGExNjdjN2JjNzEwOWFlZTdkN2UxOTA5YmQzODRmYmZjNjE5MzhlZmNhNTFjODk5M2M3MWRiMzE3NzMwZjE2ZTdlNzc2ODY3YWU0ZmRjNTYyZDZmMTVkZTU4NWU3Yjk0ZWY0OTZhMzY3NjM2N2EyY2JhYWI3YjYzNjY0OGIwMDc2YmFkNWNkZjFlMDk3NDBlYzZhNDUxYmZmNTM0ZWZhMjE1MDlmM2JhNzdiODEwMWI5MWVhN2U1NWRkYmZlMTQwMTUxNzA2N2Q3YjAxYTJhMDg3OWYwODg1Yzg5NGE4N2NmYjY4YzRkN2VlODkwNjA0ODgxYWViOTdjMjJkMWYzMzdlZjkyM2UwMzVhNjQwMCIKIAogUEtDUzcgUGFyc2UgRmFpbHVyZSBJbnZhbGlkIEFTTjE6IENoYW5nZSBsZW5ndGggZnJvbSAxMyB0byAxMiAjNTAzLjAKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBwa2NzN19hc24xX2ZhaWw6IjMwODIwMzI2MDYwOTJhODY0ODg2ZjcwZDAxMDcwMmEwODIwMzE3MzA4MjAzMTMwMjAxMDEzMTBmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwYjA2MDkyYTg2NDg4NmY3MGQwMTA3MDEzMTgyMDJlZTMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTAyMTQ3YmRlZGRkMjQ0NGNkMWNkZmU1YzQxYTgxMDJjODliN2RmMmU2Y2JmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDA1YmVjZDg3MTk1YzFkZWZmOTBjMjRjOTEyNjliNTViM2YwNjliYzIyNWMzMjZjMzE0YzFhNTE3ODZmZmUxNGM4MzBiZTRlNGJjNzNjYmEzNmM5NzY3N2I0NDE2ODI3OWJlOTFlN2NkZjdjMTkzODZhZTIxODYyNzE5ZDEzYTNhMGZmZjA4MDNkNDYwOTYyZjJjZGE4MzcxNDg0ODczMjUyYzNkNzA1NGRiODE0M2UyYjA4MWEzODE2ZWQwODA0Y2E1MDk5YWU1ZmVjZTgzZDVjMmMzNzgzYjE5ODhiNGI0NmRjOTRlNTU1ODdhMTA3ZWExNTQ2YmYyMmQyOGEwOTdmNjUyYTQwNjZkYzI5NjUyNjkwNjlhZjJmNTE3NmJiOGNlOWNhNmQxMWY5Njc1N2YwMzIwNGY3NTY3MDM1ODdkMDBhZDQyNDc5NmM5MmZjN2FlYjZmNDk0NDMxOTk5ZWRhMzA5OTBlNGY1NzczNjMyZWQyNThmZTAyNzY2NzM1OTlkYTZmY2UzNWNkYWQ3NzI2YTBiYjAyNGNhZDk5NmI4OGUwY2I5ODg1NGNlYjVjMGI2ZWM3NDhkOWY5Y2U2YTZjZDQzNzg1OGJhY2I4MTQ2MThhMjcyZmYzYTQxNWM2ZTA3ZjNkYjA5ODg3NzdmZGVjODQ1YTk3YmY3ZDEwMmRkMDMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMjAyMTQ1NjRkNTU0MDI1YWY1OTllMzI3MDc5YjI3MjBlZjAwZGYzN2NmYjdjMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwYzA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDAwNDYwOThkYzVmMmI5OWUzYmMyZWQ2NjQyZDdmMGE2MWVmYWJjMTVjMzhjNzYzMzNiY2NjZWVlZTM2OWE0ZjRhNWJkZGE4ZWE1OTI2NDEyNGU0MjlmMDg2MzI2ODNkZGJhMTdiYmYyNjJkODJiNmJlZmEzYjRlMTQ4MDM3NmE4YzdmM2M3ZDdlMmE2Nzc5YmJmMTgyNjJhYTg1N2RlOGMyMGExMmI2YTJjZThlNGQ3ZjMxZGQxYjE5NTM5MmNmNjE4NWFmY2UzNGFmZTA1ODk2MDU3YjM2ZTliMTcxYjZjNjdlZDdjMjI4NmNiZmE4M2ZmOGExNjdjN2JjNzEwOWFlZTdkN2UxOTA5YmQzODRmYmZjNjE5MzhlZmNhNTFjODk5M2M3MWRiMzE3NzMwZjE2ZTdlNzc2ODY3YWU0ZmRjNTYyZDZmMTVkZTU4NWU3Yjk0ZWY0OTZhMzY3NjM2N2EyY2JhYWI3YjYzNjY0OGIwMDc2YmFkNWNkZjFlMDk3NDBlYzZhNDUxYmZmNTM0ZWZhMjE1MDlmM2JhNzdiODEwMWI5MWVhN2U1NWRkYmZlMTQwMTUxNzA2N2Q3YjAxYTJhMDg3OWYwODg1Yzg5NGE4N2NmYjY4YzRkN2VlODkwNjA0ODgxYWViOTdjMjJkMWYzMzdlZjkyM2UwMzVhNjQwMCIKIAogUEtDUzcgUGFyc2UgRmFpbHVyZSBJbnZhbGlkIEFTTjE6IENoYW5nZSB0YWcgMDYgdG8gMDIgIzUwNC4wCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NgogcGtjczdfYXNuMV9mYWlsOiIzMDgyMDMyNjA2MDkyYTg2NDg4NmY3MGQwMTA3MDJhMDgyMDMxNzMwODIwMzEzMDIwMTAxMzEwZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGIwNjA5MmE4NjQ4ODZmNzBkMDEwNzAxMzE4MjAyZWUzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwNWJlY2Q4NzE5NWMxZGVmZjkwYzI0YzkxMjY5YjU1YjNmMDY5YmMyMjVjMzI2YzMxNGMxYTUxNzg2ZmZlMTRjODMwYmU0ZTRiYzczY2JhMzZjOTc2NzdiNDQxNjgyNzliZTkxZTdjZGY3YzE5Mzg2YWUyMTg2MjcxOWQxM2EzYTBmZmYwODAzZDQ2MDk2MmYyY2RhODM3MTQ4NDg3MzI1MmMzZDcwNTRkYjgxNDNlMmIwODFhMzgxNmVkMDgwNGNhNTA5OWFlNWZlY2U4M2Q1YzJjMzc4M2IxOTg4YjRiNDZkYzk0ZTU1NTg3YTEwN2VhMTU0NmJmMjJkMjhhMDk3ZjY1MmE0MDY2ZGMyOTY1MjY5MDY5YWYyZjUxNzZiYjhjZTljYTZkMTFmOTY3NTdmMDMyMDRmNzU2NzAzNTg3ZDAwYWQ0MjQ3OTZjOTJmYzdhZWI2ZjQ5NDQzMTk5OWVkYTMwOTkwZTRmNTc3MzYzMmVkMjU4ZmUwMjc2NjczNTk5ZGE2ZmNlMzVjZGFkNzcyNmEwYmIwMjRjYWQ5OTZiODhlMGNiOTg4NTRjZWI1YzBiNmVjNzQ4ZDlmOWNlNmE2Y2Q0Mzc4NThiYWNiODE0NjE4YTI3MmZmM2E0MTVjNmUwN2YzZGIwOTg4Nzc3ZmRlYzg0NWE5N2JmN2QxMDJkZDAzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzIwMjE0NTY0ZDU1NDAyNWFmNTk5ZTMyNzA3OWIyNzIwZWYwMGRmMzdjZmI3YzMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwMjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwMDQ2MDk4ZGM1ZjJiOTllM2JjMmVkNjY0MmQ3ZjBhNjFlZmFiYzE1YzM4Yzc2MzMzYmNjY2VlZWUzNjlhNGY0YTViZGRhOGVhNTkyNjQxMjRlNDI5ZjA4NjMyNjgzZGRiYTE3YmJmMjYyZDgyYjZiZWZhM2I0ZTE0ODAzNzZhOGM3ZjNjN2Q3ZTJhNjc3OWJiZjE4MjYyYWE4NTdkZThjMjBhMTJiNmEyY2U4ZTRkN2YzMWRkMWIxOTUzOTJjZjYxODVhZmNlMzRhZmUwNTg5NjA1N2IzNmU5YjE3MWI2YzY3ZWQ3YzIyODZjYmZhODNmZjhhMTY3YzdiYzcxMDlhZWU3ZDdlMTkwOWJkMzg0ZmJmYzYxOTM4ZWZjYTUxYzg5OTNjNzFkYjMxNzczMGYxNmU3ZTc3Njg2N2FlNGZkYzU2MmQ2ZjE1ZGU1ODVlN2I5NGVmNDk2YTM2NzYzNjdhMmNiYWFiN2I2MzY2NDhiMDA3NmJhZDVjZGYxZTA5NzQwZWM2YTQ1MWJmZjUzNGVmYTIxNTA5ZjNiYTc3YjgxMDFiOTFlYTdlNTVkZGJmZTE0MDE1MTcwNjdkN2IwMWEyYTA4NzlmMDg4NWM4OTRhODdjZmI2OGM0ZDdlZTg5MDYwNDg4MWFlYjk3YzIyZDFmMzM3ZWY5MjNlMDM1YTY0MDAiCiAKIFBLQ1M3IFBhcnNlIEZhaWx1cmUgSW52YWxpZCBBU04xOiBDaGFuZ2UgbGVuZ3RoIGZyb20gOSB0byAxMCAjNTA1LjAKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBwa2NzN19hc24xX2ZhaWw6IjMwODIwMzI2MDYwOTJhODY0ODg2ZjcwZDAxMDcwMmEwODIwMzE3MzA4MjAzMTMwMjAxMDEzMTBmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwYjA2MDkyYTg2NDg4NmY3MGQwMTA3MDEzMTgyMDJlZTMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTAyMTQ3YmRlZGRkMjQ0NGNkMWNkZmU1YzQxYTgxMDJjODliN2RmMmU2Y2JmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDA1YmVjZDg3MTk1YzFkZWZmOTBjMjRjOTEyNjliNTViM2YwNjliYzIyNWMzMjZjMzE0YzFhNTE3ODZmZmUxNGM4MzBiZTRlNGJjNzNjYmEzNmM5NzY3N2I0NDE2ODI3OWJlOTFlN2NkZjdjMTkzODZhZTIxODYyNzE5ZDEzYTNhMGZmZjA4MDNkNDYwOTYyZjJjZGE4MzcxNDg0ODczMjUyYzNkNzA1NGRiODE0M2UyYjA4MWEzODE2ZWQwODA0Y2E1MDk5YWU1ZmVjZTgzZDVjMmMzNzgzYjE5ODhiNGI0NmRjOTRlNTU1ODdhMTA3ZWExNTQ2YmYyMmQyOGEwOTdmNjUyYTQwNjZkYzI5NjUyNjkwNjlhZjJmNTE3NmJiOGNlOWNhNmQxMWY5Njc1N2YwMzIwNGY3NTY3MDM1ODdkMDBhZDQyNDc5NmM5MmZjN2FlYjZmNDk0NDMxOTk5ZWRhMzA5OTBlNGY1NzczNjMyZWQyNThmZTAyNzY2NzM1OTlkYTZmY2UzNWNkYWQ3NzI2YTBiYjAyNGNhZDk5NmI4OGUwY2I5ODg1NGNlYjVjMGI2ZWM3NDhkOWY5Y2U2YTZjZDQzNzg1OGJhY2I4MTQ2MThhMjcyZmYzYTQxNWM2ZTA3ZjNkYjA5ODg3NzdmZGVjODQ1YTk3YmY3ZDEwMmRkMDMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMjAyMTQ1NjRkNTU0MDI1YWY1OTllMzI3MDc5YjI3MjBlZjAwZGYzN2NmYjdjMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MGEyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDAwNDYwOThkYzVmMmI5OWUzYmMyZWQ2NjQyZDdmMGE2MWVmYWJjMTVjMzhjNzYzMzNiY2NjZWVlZTM2OWE0ZjRhNWJkZGE4ZWE1OTI2NDEyNGU0MjlmMDg2MzI2ODNkZGJhMTdiYmYyNjJkODJiNmJlZmEzYjRlMTQ4MDM3NmE4YzdmM2M3ZDdlMmE2Nzc5YmJmMTgyNjJhYTg1N2RlOGMyMGExMmI2YTJjZThlNGQ3ZjMxZGQxYjE5NTM5MmNmNjE4NWFmY2UzNGFmZTA1ODk2MDU3YjM2ZTliMTcxYjZjNjdlZDdjMjI4NmNiZmE4M2ZmOGExNjdjN2JjNzEwOWFlZTdkN2UxOTA5YmQzODRmYmZjNjE5MzhlZmNhNTFjODk5M2M3MWRiMzE3NzMwZjE2ZTdlNzc2ODY3YWU0ZmRjNTYyZDZmMTVkZTU4NWU3Yjk0ZWY0OTZhMzY3NjM2N2EyY2JhYWI3YjYzNjY0OGIwMDc2YmFkNWNkZjFlMDk3NDBlYzZhNDUxYmZmNTM0ZWZhMjE1MDlmM2JhNzdiODEwMWI5MWVhN2U1NWRkYmZlMTQwMTUxNzA2N2Q3YjAxYTJhMDg3OWYwODg1Yzg5NGE4N2NmYjY4YzRkN2VlODkwNjA0ODgxYWViOTdjMjJkMWYzMzdlZjkyM2UwMzVhNjQwMCIKIAogUEtDUzcgUGFyc2UgRmFpbHVyZSBJbnZhbGlkIEFTTjE6IENoYW5nZSBsZW5ndGggZnJvbSA5IHRvIDggIzUwNi4wCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NgogcGtjczdfYXNuMV9mYWlsOiIzMDgyMDMyNjA2MDkyYTg2NDg4NmY3MGQwMTA3MDJhMDgyMDMxNzMwODIwMzEzMDIwMTAxMzEwZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGIwNjA5MmE4NjQ4ODZmNzBkMDEwNzAxMzE4MjAyZWUzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwNWJlY2Q4NzE5NWMxZGVmZjkwYzI0YzkxMjY5YjU1YjNmMDY5YmMyMjVjMzI2YzMxNGMxYTUxNzg2ZmZlMTRjODMwYmU0ZTRiYzczY2JhMzZjOTc2NzdiNDQxNjgyNzliZTkxZTdjZGY3YzE5Mzg2YWUyMTg2MjcxOWQxM2EzYTBmZmYwODAzZDQ2MDk2MmYyY2RhODM3MTQ4NDg3MzI1MmMzZDcwNTRkYjgxNDNlMmIwODFhMzgxNmVkMDgwNGNhNTA5OWFlNWZlY2U4M2Q1YzJjMzc4M2IxOTg4YjRiNDZkYzk0ZTU1NTg3YTEwN2VhMTU0NmJmMjJkMjhhMDk3ZjY1MmE0MDY2ZGMyOTY1MjY5MDY5YWYyZjUxNzZiYjhjZTljYTZkMTFmOTY3NTdmMDMyMDRmNzU2NzAzNTg3ZDAwYWQ0MjQ3OTZjOTJmYzdhZWI2ZjQ5NDQzMTk5OWVkYTMwOTkwZTRmNTc3MzYzMmVkMjU4ZmUwMjc2NjczNTk5ZGE2ZmNlMzVjZGFkNzcyNmEwYmIwMjRjYWQ5OTZiODhlMGNiOTg4NTRjZWI1YzBiNmVjNzQ4ZDlmOWNlNmE2Y2Q0Mzc4NThiYWNiODE0NjE4YTI3MmZmM2E0MTVjNmUwN2YzZGIwOTg4Nzc3ZmRlYzg0NWE5N2JmN2QxMDJkZDAzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzIwMjE0NTY0ZDU1NDAyNWFmNTk5ZTMyNzA3OWIyNzIwZWYwMGRmMzdjZmI3YzMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA4MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwMDQ2MDk4ZGM1ZjJiOTllM2JjMmVkNjY0MmQ3ZjBhNjFlZmFiYzE1YzM4Yzc2MzMzYmNjY2VlZWUzNjlhNGY0YTViZGRhOGVhNTkyNjQxMjRlNDI5ZjA4NjMyNjgzZGRiYTE3YmJmMjYyZDgyYjZiZWZhM2I0ZTE0ODAzNzZhOGM3ZjNjN2Q3ZTJhNjc3OWJiZjE4MjYyYWE4NTdkZThjMjBhMTJiNmEyY2U4ZTRkN2YzMWRkMWIxOTUzOTJjZjYxODVhZmNlMzRhZmUwNTg5NjA1N2IzNmU5YjE3MWI2YzY3ZWQ3YzIyODZjYmZhODNmZjhhMTY3YzdiYzcxMDlhZWU3ZDdlMTkwOWJkMzg0ZmJmYzYxOTM4ZWZjYTUxYzg5OTNjNzFkYjMxNzczMGYxNmU3ZTc3Njg2N2FlNGZkYzU2MmQ2ZjE1ZGU1ODVlN2I5NGVmNDk2YTM2NzYzNjdhMmNiYWFiN2I2MzY2NDhiMDA3NmJhZDVjZGYxZTA5NzQwZWM2YTQ1MWJmZjUzNGVmYTIxNTA5ZjNiYTc3YjgxMDFiOTFlYTdlNTVkZGJmZTE0MDE1MTcwNjdkN2IwMWEyYTA4NzlmMDg4NWM4OTRhODdjZmI2OGM0ZDdlZTg5MDYwNDg4MWFlYjk3YzIyZDFmMzM3ZWY5MjNlMDM1YTY0MDAiCiAKIFBLQ1M3IFBhcnNlIEZhaWx1cmUgSW52YWxpZCBBU04xOiBDaGFuZ2UgdGFnIDA1IHRvIDAyICM1MDcuMAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHBrY3M3X2FzbjFfZmFpbDoiMzA4MjAzMjYwNjA5MmE4NjQ4ODZmNzBkMDEwNzAyYTA4MjAzMTczMDgyMDMxMzAyMDEwMTMxMGYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBiMDYwOTJhODY0ODg2ZjcwZDAxMDcwMTMxODIwMmVlMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDViZWNkODcxOTVjMWRlZmY5MGMyNGM5MTI2OWI1NWIzZjA2OWJjMjI1YzMyNmMzMTRjMWE1MTc4NmZmZTE0YzgzMGJlNGU0YmM3M2NiYTM2Yzk3Njc3YjQ0MTY4Mjc5YmU5MWU3Y2RmN2MxOTM4NmFlMjE4NjI3MTlkMTNhM2EwZmZmMDgwM2Q0NjA5NjJmMmNkYTgzNzE0ODQ4NzMyNTJjM2Q3MDU0ZGI4MTQzZTJiMDgxYTM4MTZlZDA4MDRjYTUwOTlhZTVmZWNlODNkNWMyYzM3ODNiMTk4OGI0YjQ2ZGM5NGU1NTU4N2ExMDdlYTE1NDZiZjIyZDI4YTA5N2Y2NTJhNDA2NmRjMjk2NTI2OTA2OWFmMmY1MTc2YmI4Y2U5Y2E2ZDExZjk2NzU3ZjAzMjA0Zjc1NjcwMzU4N2QwMGFkNDI0Nzk2YzkyZmM3YWViNmY0OTQ0MzE5OTllZGEzMDk5MGU0ZjU3NzM2MzJlZDI1OGZlMDI3NjY3MzU5OWRhNmZjZTM1Y2RhZDc3MjZhMGJiMDI0Y2FkOTk2Yjg4ZTBjYjk4ODU0Y2ViNWMwYjZlYzc0OGQ5ZjljZTZhNmNkNDM3ODU4YmFjYjgxNDYxOGEyNzJmZjNhNDE1YzZlMDdmM2RiMDk4ODc3N2ZkZWM4NDVhOTdiZjdkMTAyZGQwMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMyMDIxNDU2NGQ1NTQwMjVhZjU5OWUzMjcwNzliMjcyMGVmMDBkZjM3Y2ZiN2MzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTAyMDAwNDgyMDEwMDA0NjA5OGRjNWYyYjk5ZTNiYzJlZDY2NDJkN2YwYTYxZWZhYmMxNWMzOGM3NjMzM2JjY2NlZWVlMzY5YTRmNGE1YmRkYThlYTU5MjY0MTI0ZTQyOWYwODYzMjY4M2RkYmExN2JiZjI2MmQ4MmI2YmVmYTNiNGUxNDgwMzc2YThjN2YzYzdkN2UyYTY3NzliYmYxODI2MmFhODU3ZGU4YzIwYTEyYjZhMmNlOGU0ZDdmMzFkZDFiMTk1MzkyY2Y2MTg1YWZjZTM0YWZlMDU4OTYwNTdiMzZlOWIxNzFiNmM2N2VkN2MyMjg2Y2JmYTgzZmY4YTE2N2M3YmM3MTA5YWVlN2Q3ZTE5MDliZDM4NGZiZmM2MTkzOGVmY2E1MWM4OTkzYzcxZGIzMTc3MzBmMTZlN2U3NzY4NjdhZTRmZGM1NjJkNmYxNWRlNTg1ZTdiOTRlZjQ5NmEzNjc2MzY3YTJjYmFhYjdiNjM2NjQ4YjAwNzZiYWQ1Y2RmMWUwOTc0MGVjNmE0NTFiZmY1MzRlZmEyMTUwOWYzYmE3N2I4MTAxYjkxZWE3ZTU1ZGRiZmUxNDAxNTE3MDY3ZDdiMDFhMmEwODc5ZjA4ODVjODk0YTg3Y2ZiNjhjNGQ3ZWU4OTA2MDQ4ODFhZWI5N2MyMmQxZjMzN2VmOTIzZTAzNWE2NDAwIgogCiBQS0NTNyBQYXJzZSBGYWlsdXJlIEludmFsaWQgQVNOMTogQ2hhbmdlIGxlbmd0aCBmcm9tIDAgdG8gMSAjNTA4LjAKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBwa2NzN19hc24xX2ZhaWw6IjMwODIwMzI2MDYwOTJhODY0ODg2ZjcwZDAxMDcwMmEwODIwMzE3MzA4MjAzMTMwMjAxMDEzMTBmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwYjA2MDkyYTg2NDg4NmY3MGQwMTA3MDEzMTgyMDJlZTMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTAyMTQ3YmRlZGRkMjQ0NGNkMWNkZmU1YzQxYTgxMDJjODliN2RmMmU2Y2JmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDA1YmVjZDg3MTk1YzFkZWZmOTBjMjRjOTEyNjliNTViM2YwNjliYzIyNWMzMjZjMzE0YzFhNTE3ODZmZmUxNGM4MzBiZTRlNGJjNzNjYmEzNmM5NzY3N2I0NDE2ODI3OWJlOTFlN2NkZjdjMTkzODZhZTIxODYyNzE5ZDEzYTNhMGZmZjA4MDNkNDYwOTYyZjJjZGE4MzcxNDg0ODczMjUyYzNkNzA1NGRiODE0M2UyYjA4MWEzODE2ZWQwODA0Y2E1MDk5YWU1ZmVjZTgzZDVjMmMzNzgzYjE5ODhiNGI0NmRjOTRlNTU1ODdhMTA3ZWExNTQ2YmYyMmQyOGEwOTdmNjUyYTQwNjZkYzI5NjUyNjkwNjlhZjJmNTE3NmJiOGNlOWNhNmQxMWY5Njc1N2YwMzIwNGY3NTY3MDM1ODdkMDBhZDQyNDc5NmM5MmZjN2FlYjZmNDk0NDMxOTk5ZWRhMzA5OTBlNGY1NzczNjMyZWQyNThmZTAyNzY2NzM1OTlkYTZmY2UzNWNkYWQ3NzI2YTBiYjAyNGNhZDk5NmI4OGUwY2I5ODg1NGNlYjVjMGI2ZWM3NDhkOWY5Y2U2YTZjZDQzNzg1OGJhY2I4MTQ2MThhMjcyZmYzYTQxNWM2ZTA3ZjNkYjA5ODg3NzdmZGVjODQ1YTk3YmY3ZDEwMmRkMDMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMjAyMTQ1NjRkNTU0MDI1YWY1OTllMzI3MDc5YjI3MjBlZjAwZGYzN2NmYjdjMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAxMDQ4MjAxMDAwNDYwOThkYzVmMmI5OWUzYmMyZWQ2NjQyZDdmMGE2MWVmYWJjMTVjMzhjNzYzMzNiY2NjZWVlZTM2OWE0ZjRhNWJkZGE4ZWE1OTI2NDEyNGU0MjlmMDg2MzI2ODNkZGJhMTdiYmYyNjJkODJiNmJlZmEzYjRlMTQ4MDM3NmE4YzdmM2M3ZDdlMmE2Nzc5YmJmMTgyNjJhYTg1N2RlOGMyMGExMmI2YTJjZThlNGQ3ZjMxZGQxYjE5NTM5MmNmNjE4NWFmY2UzNGFmZTA1ODk2MDU3YjM2ZTliMTcxYjZjNjdlZDdjMjI4NmNiZmE4M2ZmOGExNjdjN2JjNzEwOWFlZTdkN2UxOTA5YmQzODRmYmZjNjE5MzhlZmNhNTFjODk5M2M3MWRiMzE3NzMwZjE2ZTdlNzc2ODY3YWU0ZmRjNTYyZDZmMTVkZTU4NWU3Yjk0ZWY0OTZhMzY3NjM2N2EyY2JhYWI3YjYzNjY0OGIwMDc2YmFkNWNkZjFlMDk3NDBlYzZhNDUxYmZmNTM0ZWZhMjE1MDlmM2JhNzdiODEwMWI5MWVhN2U1NWRkYmZlMTQwMTUxNzA2N2Q3YjAxYTJhMDg3OWYwODg1Yzg5NGE4N2NmYjY4YzRkN2VlODkwNjA0ODgxYWViOTdjMjJkMWYzMzdlZjkyM2UwMzVhNjQwMCIKIAogUEtDUzcgUGFyc2UgRmFpbHVyZSBJbnZhbGlkIEFTTjE6IENoYW5nZSB0YWcgMDQgdG8gMDIgIzUwOS4wCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NgogcGtjczdfYXNuMV9mYWlsOiIzMDgyMDMyNjA2MDkyYTg2NDg4NmY3MGQwMTA3MDJhMDgyMDMxNzMwODIwMzEzMDIwMTAxMzEwZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGIwNjA5MmE4NjQ4ODZmNzBkMDEwNzAxMzE4MjAyZWUzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwNWJlY2Q4NzE5NWMxZGVmZjkwYzI0YzkxMjY5YjU1YjNmMDY5YmMyMjVjMzI2YzMxNGMxYTUxNzg2ZmZlMTRjODMwYmU0ZTRiYzczY2JhMzZjOTc2NzdiNDQxNjgyNzliZTkxZTdjZGY3YzE5Mzg2YWUyMTg2MjcxOWQxM2EzYTBmZmYwODAzZDQ2MDk2MmYyY2RhODM3MTQ4NDg3MzI1MmMzZDcwNTRkYjgxNDNlMmIwODFhMzgxNmVkMDgwNGNhNTA5OWFlNWZlY2U4M2Q1YzJjMzc4M2IxOTg4YjRiNDZkYzk0ZTU1NTg3YTEwN2VhMTU0NmJmMjJkMjhhMDk3ZjY1MmE0MDY2ZGMyOTY1MjY5MDY5YWYyZjUxNzZiYjhjZTljYTZkMTFmOTY3NTdmMDMyMDRmNzU2NzAzNTg3ZDAwYWQ0MjQ3OTZjOTJmYzdhZWI2ZjQ5NDQzMTk5OWVkYTMwOTkwZTRmNTc3MzYzMmVkMjU4ZmUwMjc2NjczNTk5ZGE2ZmNlMzVjZGFkNzcyNmEwYmIwMjRjYWQ5OTZiODhlMGNiOTg4NTRjZWI1YzBiNmVjNzQ4ZDlmOWNlNmE2Y2Q0Mzc4NThiYWNiODE0NjE4YTI3MmZmM2E0MTVjNmUwN2YzZGIwOTg4Nzc3ZmRlYzg0NWE5N2JmN2QxMDJkZDAzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzIwMjE0NTY0ZDU1NDAyNWFmNTk5ZTMyNzA3OWIyNzIwZWYwMGRmMzdjZmI3YzMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDAyODIwMTAwMDQ2MDk4ZGM1ZjJiOTllM2JjMmVkNjY0MmQ3ZjBhNjFlZmFiYzE1YzM4Yzc2MzMzYmNjY2VlZWUzNjlhNGY0YTViZGRhOGVhNTkyNjQxMjRlNDI5ZjA4NjMyNjgzZGRiYTE3YmJmMjYyZDgyYjZiZWZhM2I0ZTE0ODAzNzZhOGM3ZjNjN2Q3ZTJhNjc3OWJiZjE4MjYyYWE4NTdkZThjMjBhMTJiNmEyY2U4ZTRkN2YzMWRkMWIxOTUzOTJjZjYxODVhZmNlMzRhZmUwNTg5NjA1N2IzNmU5YjE3MWI2YzY3ZWQ3YzIyODZjYmZhODNmZjhhMTY3YzdiYzcxMDlhZWU3ZDdlMTkwOWJkMzg0ZmJmYzYxOTM4ZWZjYTUxYzg5OTNjNzFkYjMxNzczMGYxNmU3ZTc3Njg2N2FlNGZkYzU2MmQ2ZjE1ZGU1ODVlN2I5NGVmNDk2YTM2NzYzNjdhMmNiYWFiN2I2MzY2NDhiMDA3NmJhZDVjZGYxZTA5NzQwZWM2YTQ1MWJmZjUzNGVmYTIxNTA5ZjNiYTc3YjgxMDFiOTFlYTdlNTVkZGJmZTE0MDE1MTcwNjdkN2IwMWEyYTA4NzlmMDg4NWM4OTRhODdjZmI2OGM0ZDdlZTg5MDYwNDg4MWFlYjk3YzIyZDFmMzM3ZWY5MjNlMDM1YTY0MDAiCiAKIFBLQ1M3IFBhcnNlIEZhaWx1cmUgSW52YWxpZCBBU04xOiBDaGFuZ2UgbGVuZ3RoIGZyb20gMjU2IHRvIDI1NyAjNTEwLjAKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBwa2NzN19hc24xX2ZhaWw6IjMwODIwMzI2MDYwOTJhODY0ODg2ZjcwZDAxMDcwMmEwODIwMzE3MzA4MjAzMTMwMjAxMDEzMTBmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwYjA2MDkyYTg2NDg4NmY3MGQwMTA3MDEzMTgyMDJlZTMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTAyMTQ3YmRlZGRkMjQ0NGNkMWNkZmU1YzQxYTgxMDJjODliN2RmMmU2Y2JmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDA1YmVjZDg3MTk1YzFkZWZmOTBjMjRjOTEyNjliNTViM2YwNjliYzIyNWMzMjZjMzE0YzFhNTE3ODZmZmUxNGM4MzBiZTRlNGJjNzNjYmEzNmM5NzY3N2I0NDE2ODI3OWJlOTFlN2NkZjdjMTkzODZhZTIxODYyNzE5ZDEzYTNhMGZmZjA4MDNkNDYwOTYyZjJjZGE4MzcxNDg0ODczMjUyYzNkNzA1NGRiODE0M2UyYjA4MWEzODE2ZWQwODA0Y2E1MDk5YWU1ZmVjZTgzZDVjMmMzNzgzYjE5ODhiNGI0NmRjOTRlNTU1ODdhMTA3ZWExNTQ2YmYyMmQyOGEwOTdmNjUyYTQwNjZkYzI5NjUyNjkwNjlhZjJmNTE3NmJiOGNlOWNhNmQxMWY5Njc1N2YwMzIwNGY3NTY3MDM1ODdkMDBhZDQyNDc5NmM5MmZjN2FlYjZmNDk0NDMxOTk5ZWRhMzA5OTBlNGY1NzczNjMyZWQyNThmZTAyNzY2NzM1OTlkYTZmY2UzNWNkYWQ3NzI2YTBiYjAyNGNhZDk5NmI4OGUwY2I5ODg1NGNlYjVjMGI2ZWM3NDhkOWY5Y2U2YTZjZDQzNzg1OGJhY2I4MTQ2MThhMjcyZmYzYTQxNWM2ZTA3ZjNkYjA5ODg3NzdmZGVjODQ1YTk3YmY3ZDEwMmRkMDMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMjAyMTQ1NjRkNTU0MDI1YWY1OTllMzI3MDc5YjI3MjBlZjAwZGYzN2NmYjdjMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDEwNDYwOThkYzVmMmI5OWUzYmMyZWQ2NjQyZDdmMGE2MWVmYWJjMTVjMzhjNzYzMzNiY2NjZWVlZTM2OWE0ZjRhNWJkZGE4ZWE1OTI2NDEyNGU0MjlmMDg2MzI2ODNkZGJhMTdiYmYyNjJkODJiNmJlZmEzYjRlMTQ4MDM3NmE4YzdmM2M3ZDdlMmE2Nzc5YmJmMTgyNjJhYTg1N2RlOGMyMGExMmI2YTJjZThlNGQ3ZjMxZGQxYjE5NTM5MmNmNjE4NWFmY2UzNGFmZTA1ODk2MDU3YjM2ZTliMTcxYjZjNjdlZDdjMjI4NmNiZmE4M2ZmOGExNjdjN2JjNzEwOWFlZTdkN2UxOTA5YmQzODRmYmZjNjE5MzhlZmNhNTFjODk5M2M3MWRiMzE3NzMwZjE2ZTdlNzc2ODY3YWU0ZmRjNTYyZDZmMTVkZTU4NWU3Yjk0ZWY0OTZhMzY3NjM2N2EyY2JhYWI3YjYzNjY0OGIwMDc2YmFkNWNkZjFlMDk3NDBlYzZhNDUxYmZmNTM0ZWZhMjE1MDlmM2JhNzdiODEwMWI5MWVhN2U1NWRkYmZlMTQwMTUxNzA2N2Q3YjAxYTJhMDg3OWYwODg1Yzg5NGE4N2NmYjY4YzRkN2VlODkwNjA0ODgxYWViOTdjMjJkMWYzMzdlZjkyM2UwMzVhNjQwMCIKIAogCiBQS0NTNyBQYXJzZSBGYWlsdXJlIEludmFsaWQgQVNOMTogQWRkIG51bGwgYnl0ZSB0byBzdGFydCAjNTExLjAKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBwa2NzN19hc24xX2ZhaWw6IjAwMzA4MjA0OWQwNjA5MmE4NjQ4ODZmNzBkMDEwNzAyYTA4MjA0OGUzMDgyMDQ4YTAyMDEwMTMxMGYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBiMDYwOTJhODY0ODg2ZjcwZDAxMDcwMTMxODIwNDY1MzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDViZWNkODcxOTVjMWRlZmY5MGMyNGM5MTI2OWI1NWIzZjA2OWJjMjI1YzMyNmMzMTRjMWE1MTc4NmZmZTE0YzgzMGJlNGU0YmM3M2NiYTM2Yzk3Njc3YjQ0MTY4Mjc5YmU5MWU3Y2RmN2MxOTM4NmFlMjE4NjI3MTlkMTNhM2EwZmZmMDgwM2Q0NjA5NjJmMmNkYTgzNzE0ODQ4NzMyNTJjM2Q3MDU0ZGI4MTQzZTJiMDgxYTM4MTZlZDA4MDRjYTUwOTlhZTVmZWNlODNkNWMyYzM3ODNiMTk4OGI0YjQ2ZGM5NGU1NTU4N2ExMDdlYTE1NDZiZjIyZDI4YTA5N2Y2NTJhNDA2NmRjMjk2NTI2OTA2OWFmMmY1MTc2YmI4Y2U5Y2E2ZDExZjk2NzU3ZjAzMjA0Zjc1NjcwMzU4N2QwMGFkNDI0Nzk2YzkyZmM3YWViNmY0OTQ0MzE5OTllZGEzMDk5MGU0ZjU3NzM2MzJlZDI1OGZlMDI3NjY3MzU5OWRhNmZjZTM1Y2RhZDc3MjZhMGJiMDI0Y2FkOTk2Yjg4ZTBjYjk4ODU0Y2ViNWMwYjZlYzc0OGQ5ZjljZTZhNmNkNDM3ODU4YmFjYjgxNDYxOGEyNzJmZjNhNDE1YzZlMDdmM2RiMDk4ODc3N2ZkZWM4NDVhOTdiZjdkMTAyZGQwMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMyMDIxNDU2NGQ1NTQwMjVhZjU5OWUzMjcwNzliMjcyMGVmMDBkZjM3Y2ZiN2MzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDA0NjA5OGRjNWYyYjk5ZTNiYzJlZDY2NDJkN2YwYTYxZWZhYmMxNWMzOGM3NjMzM2JjY2NlZWVlMzY5YTRmNGE1YmRkYThlYTU5MjY0MTI0ZTQyOWYwODYzMjY4M2RkYmExN2JiZjI2MmQ4MmI2YmVmYTNiNGUxNDgwMzc2YThjN2YzYzdkN2UyYTY3NzliYmYxODI2MmFhODU3ZGU4YzIwYTEyYjZhMmNlOGU0ZDdmMzFkZDFiMTk1MzkyY2Y2MTg1YWZjZTM0YWZlMDU4OTYwNTdiMzZlOWIxNzFiNmM2N2VkN2MyMjg2Y2JmYTgzZmY4YTE2N2M3YmM3MTA5YWVlN2Q3ZTE5MDliZDM4NGZiZmM2MTkzOGVmY2E1MWM4OTkzYzcxZGIzMTc3MzBmMTZlN2U3NzY4NjdhZTRmZGM1NjJkNmYxNWRlNTg1ZTdiOTRlZjQ5NmEzNjc2MzY3YTJjYmFhYjdiNjM2NjQ4YjAwNzZiYWQ1Y2RmMWUwOTc0MGVjNmE0NTFiZmY1MzRlZmEyMTUwOWYzYmE3N2I4MTAxYjkxZWE3ZTU1ZGRiZmUxNDAxNTE3MDY3ZDdiMDFhMmEwODc5ZjA4ODVjODk0YTg3Y2ZiNjhjNGQ3ZWU4OTA2MDQ4ODFhZWI5N2MyMmQxZjMzN2VmOTIzZTAzNWE2NDAwMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMzMDIxNDYyNDc3Mjk4NzU5ZThlMDQ3MThhZTU2MzE1NWYzNTIzY2ZiODRjZGIzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDZkMmNiYjM3ZmQxMjk1N2U1YTc0ODBjZTA0MzVlOGVmNjA3N2RlZjA4ZmYyNzA4NDRkZTI1MTZhNDc0MmYyMTFkOGM3NDY5MGJjMDk0OGUwOGEyOTZhYmJhOTI4NWY2YmIzMDViOTViN2Y5NDA4Y2U0NGU4Mzg4MGM3MTk0NDQ2NzJlYzk5NzQ2YmE3OGNjNGJkZTQ3NTMxOWQwMWJkZTc3YzQ5ZDU4ZDE2ZDNiMmU5MWMyZTYxZTgzMDNjYTNkN2VkYTM3OTdmZDhiMzVjYTcyYmIxNGIxNWEyNGI1NmJiNzBkYzEzNDg0NTY1ODA4MTEwZmY1ZGI1OGM1NmY3YTA0MzU2MDdlM2MzNTJmYmY0ZjU1MTA2ZjI5ODBmZDNjZDQyMzk3ZGJmNzEzN2VlN2YxZTMyY2Q4MGEzYjdhYjEyYjQ2YzE2OTIyMDI3OGQ3NzE3Yjc4YTNjNDVkNjM5NWExMzBhOGI1ODg0MWNiYzI5MGU0ZjgxN2RlM2E0ZmUxNmVjZDA3N2NhMzNhMGFhMjVlMjM1Y2M3ZjY2NTVhODBiYThhZWVjODc5MDViYjJhNzU0NTliN2JjYzVhMTMzZjI5OTM0OTNiNDFmZmNmNjNjZDdhMzkxZTNlNmY3ODA5NGNhNDQyYzgwMTQ0NDAzY2IwYTVmMDBiZmM2MWFlODgwIgogCiBQS0NTNyBQYXJzZSBGYWlsdXJlIEludmFsaWQgQVNOMTogQWRkIG51bGwgYnl0ZSB0byBlbmQgIzUxMi4wCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NgogcGtjczdfYXNuMV9mYWlsOiIzMDgyMDQ5ZDA2MDkyYTg2NDg4NmY3MGQwMTA3MDJhMDgyMDQ4ZTMwODIwNDhhMDIwMTAxMzEwZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGIwNjA5MmE4NjQ4ODZmNzBkMDEwNzAxMzE4MjA0NjUzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwNWJlY2Q4NzE5NWMxZGVmZjkwYzI0YzkxMjY5YjU1YjNmMDY5YmMyMjVjMzI2YzMxNGMxYTUxNzg2ZmZlMTRjODMwYmU0ZTRiYzczY2JhMzZjOTc2NzdiNDQxNjgyNzliZTkxZTdjZGY3YzE5Mzg2YWUyMTg2MjcxOWQxM2EzYTBmZmYwODAzZDQ2MDk2MmYyY2RhODM3MTQ4NDg3MzI1MmMzZDcwNTRkYjgxNDNlMmIwODFhMzgxNmVkMDgwNGNhNTA5OWFlNWZlY2U4M2Q1YzJjMzc4M2IxOTg4YjRiNDZkYzk0ZTU1NTg3YTEwN2VhMTU0NmJmMjJkMjhhMDk3ZjY1MmE0MDY2ZGMyOTY1MjY5MDY5YWYyZjUxNzZiYjhjZTljYTZkMTFmOTY3NTdmMDMyMDRmNzU2NzAzNTg3ZDAwYWQ0MjQ3OTZjOTJmYzdhZWI2ZjQ5NDQzMTk5OWVkYTMwOTkwZTRmNTc3MzYzMmVkMjU4ZmUwMjc2NjczNTk5ZGE2ZmNlMzVjZGFkNzcyNmEwYmIwMjRjYWQ5OTZiODhlMGNiOTg4NTRjZWI1YzBiNmVjNzQ4ZDlmOWNlNmE2Y2Q0Mzc4NThiYWNiODE0NjE4YTI3MmZmM2E0MTVjNmUwN2YzZGIwOTg4Nzc3ZmRlYzg0NWE5N2JmN2QxMDJkZDAzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzIwMjE0NTY0ZDU1NDAyNWFmNTk5ZTMyNzA3OWIyNzIwZWYwMGRmMzdjZmI3YzMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwMDQ2MDk4ZGM1ZjJiOTllM2JjMmVkNjY0MmQ3ZjBhNjFlZmFiYzE1YzM4Yzc2MzMzYmNjY2VlZWUzNjlhNGY0YTViZGRhOGVhNTkyNjQxMjRlNDI5ZjA4NjMyNjgzZGRiYTE3YmJmMjYyZDgyYjZiZWZhM2I0ZTE0ODAzNzZhOGM3ZjNjN2Q3ZTJhNjc3OWJiZjE4MjYyYWE4NTdkZThjMjBhMTJiNmEyY2U4ZTRkN2YzMWRkMWIxOTUzOTJjZjYxODVhZmNlMzRhZmUwNTg5NjA1N2IzNmU5YjE3MWI2YzY3ZWQ3YzIyODZjYmZhODNmZjhhMTY3YzdiYzcxMDlhZWU3ZDdlMTkwOWJkMzg0ZmJmYzYxOTM4ZWZjYTUxYzg5OTNjNzFkYjMxNzczMGYxNmU3ZTc3Njg2N2FlNGZkYzU2MmQ2ZjE1ZGU1ODVlN2I5NGVmNDk2YTM2NzYzNjdhMmNiYWFiN2I2MzY2NDhiMDA3NmJhZDVjZGYxZTA5NzQwZWM2YTQ1MWJmZjUzNGVmYTIxNTA5ZjNiYTc3YjgxMDFiOTFlYTdlNTVkZGJmZTE0MDE1MTcwNjdkN2IwMWEyYTA4NzlmMDg4NWM4OTRhODdjZmI2OGM0ZDdlZTg5MDYwNDg4MWFlYjk3YzIyZDFmMzM3ZWY5MjNlMDM1YTY0MDAzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzMwMjE0NjI0NzcyOTg3NTllOGUwNDcxOGFlNTYzMTU1ZjM1MjNjZmI4NGNkYjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwNmQyY2JiMzdmZDEyOTU3ZTVhNzQ4MGNlMDQzNWU4ZWY2MDc3ZGVmMDhmZjI3MDg0NGRlMjUxNmE0NzQyZjIxMWQ4Yzc0NjkwYmMwOTQ4ZTA4YTI5NmFiYmE5Mjg1ZjZiYjMwNWI5NWI3Zjk0MDhjZTQ0ZTgzODgwYzcxOTQ0NDY3MmVjOTk3NDZiYTc4Y2M0YmRlNDc1MzE5ZDAxYmRlNzdjNDlkNThkMTZkM2IyZTkxYzJlNjFlODMwM2NhM2Q3ZWRhMzc5N2ZkOGIzNWNhNzJiYjE0YjE1YTI0YjU2YmI3MGRjMTM0ODQ1NjU4MDgxMTBmZjVkYjU4YzU2ZjdhMDQzNTYwN2UzYzM1MmZiZjRmNTUxMDZmMjk4MGZkM2NkNDIzOTdkYmY3MTM3ZWU3ZjFlMzJjZDgwYTNiN2FiMTJiNDZjMTY5MjIwMjc4ZDc3MTdiNzhhM2M0NWQ2Mzk1YTEzMGE4YjU4ODQxY2JjMjkwZTRmODE3ZGUzYTRmZTE2ZWNkMDc3Y2EzM2EwYWEyNWUyMzVjYzdmNjY1NWE4MGJhOGFlZWM4NzkwNWJiMmE3NTQ1OWI3YmNjNWExMzNmMjk5MzQ5M2I0MWZmY2Y2M2NkN2EzOTFlM2U2Zjc4MDk0Y2E0NDJjODAxNDQ0MDNjYjBhNWYwMGJmYzYxYWU4ODAwMCIKIAogUEtDUzcgUGFyc2UgRmFpbHVyZSBJbnZhbGlkIEFTTjE6IENoYW5nZSB0YWcgMzAgdG8gMDIgIzUxMy4wCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NgogcGtjczdfYXNuMV9mYWlsOiIwMjgyMDQ5ZDA2MDkyYTg2NDg4NmY3MGQwMTA3MDJhMDgyMDQ4ZTMwODIwNDhhMDIwMTAxMzEwZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGIwNjA5MmE4NjQ4ODZmNzBkMDEwNzAxMzE4MjA0NjUzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwNWJlY2Q4NzE5NWMxZGVmZjkwYzI0YzkxMjY5YjU1YjNmMDY5YmMyMjVjMzI2YzMxNGMxYTUxNzg2ZmZlMTRjODMwYmU0ZTRiYzczY2JhMzZjOTc2NzdiNDQxNjgyNzliZTkxZTdjZGY3YzE5Mzg2YWUyMTg2MjcxOWQxM2EzYTBmZmYwODAzZDQ2MDk2MmYyY2RhODM3MTQ4NDg3MzI1MmMzZDcwNTRkYjgxNDNlMmIwODFhMzgxNmVkMDgwNGNhNTA5OWFlNWZlY2U4M2Q1YzJjMzc4M2IxOTg4YjRiNDZkYzk0ZTU1NTg3YTEwN2VhMTU0NmJmMjJkMjhhMDk3ZjY1MmE0MDY2ZGMyOTY1MjY5MDY5YWYyZjUxNzZiYjhjZTljYTZkMTFmOTY3NTdmMDMyMDRmNzU2NzAzNTg3ZDAwYWQ0MjQ3OTZjOTJmYzdhZWI2ZjQ5NDQzMTk5OWVkYTMwOTkwZTRmNTc3MzYzMmVkMjU4ZmUwMjc2NjczNTk5ZGE2ZmNlMzVjZGFkNzcyNmEwYmIwMjRjYWQ5OTZiODhlMGNiOTg4NTRjZWI1YzBiNmVjNzQ4ZDlmOWNlNmE2Y2Q0Mzc4NThiYWNiODE0NjE4YTI3MmZmM2E0MTVjNmUwN2YzZGIwOTg4Nzc3ZmRlYzg0NWE5N2JmN2QxMDJkZDAzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzIwMjE0NTY0ZDU1NDAyNWFmNTk5ZTMyNzA3OWIyNzIwZWYwMGRmMzdjZmI3YzMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwMDQ2MDk4ZGM1ZjJiOTllM2JjMmVkNjY0MmQ3ZjBhNjFlZmFiYzE1YzM4Yzc2MzMzYmNjY2VlZWUzNjlhNGY0YTViZGRhOGVhNTkyNjQxMjRlNDI5ZjA4NjMyNjgzZGRiYTE3YmJmMjYyZDgyYjZiZWZhM2I0ZTE0ODAzNzZhOGM3ZjNjN2Q3ZTJhNjc3OWJiZjE4MjYyYWE4NTdkZThjMjBhMTJiNmEyY2U4ZTRkN2YzMWRkMWIxOTUzOTJjZjYxODVhZmNlMzRhZmUwNTg5NjA1N2IzNmU5YjE3MWI2YzY3ZWQ3YzIyODZjYmZhODNmZjhhMTY3YzdiYzcxMDlhZWU3ZDdlMTkwOWJkMzg0ZmJmYzYxOTM4ZWZjYTUxYzg5OTNjNzFkYjMxNzczMGYxNmU3ZTc3Njg2N2FlNGZkYzU2MmQ2ZjE1ZGU1ODVlN2I5NGVmNDk2YTM2NzYzNjdhMmNiYWFiN2I2MzY2NDhiMDA3NmJhZDVjZGYxZTA5NzQwZWM2YTQ1MWJmZjUzNGVmYTIxNTA5ZjNiYTc3YjgxMDFiOTFlYTdlNTVkZGJmZTE0MDE1MTcwNjdkN2IwMWEyYTA4NzlmMDg4NWM4OTRhODdjZmI2OGM0ZDdlZTg5MDYwNDg4MWFlYjk3YzIyZDFmMzM3ZWY5MjNlMDM1YTY0MDAzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzMwMjE0NjI0NzcyOTg3NTllOGUwNDcxOGFlNTYzMTU1ZjM1MjNjZmI4NGNkYjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwNmQyY2JiMzdmZDEyOTU3ZTVhNzQ4MGNlMDQzNWU4ZWY2MDc3ZGVmMDhmZjI3MDg0NGRlMjUxNmE0NzQyZjIxMWQ4Yzc0NjkwYmMwOTQ4ZTA4YTI5NmFiYmE5Mjg1ZjZiYjMwNWI5NWI3Zjk0MDhjZTQ0ZTgzODgwYzcxOTQ0NDY3MmVjOTk3NDZiYTc4Y2M0YmRlNDc1MzE5ZDAxYmRlNzdjNDlkNThkMTZkM2IyZTkxYzJlNjFlODMwM2NhM2Q3ZWRhMzc5N2ZkOGIzNWNhNzJiYjE0YjE1YTI0YjU2YmI3MGRjMTM0ODQ1NjU4MDgxMTBmZjVkYjU4YzU2ZjdhMDQzNTYwN2UzYzM1MmZiZjRmNTUxMDZmMjk4MGZkM2NkNDIzOTdkYmY3MTM3ZWU3ZjFlMzJjZDgwYTNiN2FiMTJiNDZjMTY5MjIwMjc4ZDc3MTdiNzhhM2M0NWQ2Mzk1YTEzMGE4YjU4ODQxY2JjMjkwZTRmODE3ZGUzYTRmZTE2ZWNkMDc3Y2EzM2EwYWEyNWUyMzVjYzdmNjY1NWE4MGJhOGFlZWM4NzkwNWJiMmE3NTQ1OWI3YmNjNWExMzNmMjk5MzQ5M2I0MWZmY2Y2M2NkN2EzOTFlM2U2Zjc4MDk0Y2E0NDJjODAxNDQ0MDNjYjBhNWYwMGJmYzYxYWU4ODAiCiAKIFBLQ1M3IFBhcnNlIEZhaWx1cmUgSW52YWxpZCBBU04xOiBDaGFuZ2UgbGVuZ3RoIGZyb20gMTE4MSB0byAxMTgyICM1MTQuMAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHBrY3M3X2FzbjFfZmFpbDoiMzA4MjA0OWUwNjA5MmE4NjQ4ODZmNzBkMDEwNzAyYTA4MjA0OGUzMDgyMDQ4YTAyMDEwMTMxMGYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBiMDYwOTJhODY0ODg2ZjcwZDAxMDcwMTMxODIwNDY1MzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDViZWNkODcxOTVjMWRlZmY5MGMyNGM5MTI2OWI1NWIzZjA2OWJjMjI1YzMyNmMzMTRjMWE1MTc4NmZmZTE0YzgzMGJlNGU0YmM3M2NiYTM2Yzk3Njc3YjQ0MTY4Mjc5YmU5MWU3Y2RmN2MxOTM4NmFlMjE4NjI3MTlkMTNhM2EwZmZmMDgwM2Q0NjA5NjJmMmNkYTgzNzE0ODQ4NzMyNTJjM2Q3MDU0ZGI4MTQzZTJiMDgxYTM4MTZlZDA4MDRjYTUwOTlhZTVmZWNlODNkNWMyYzM3ODNiMTk4OGI0YjQ2ZGM5NGU1NTU4N2ExMDdlYTE1NDZiZjIyZDI4YTA5N2Y2NTJhNDA2NmRjMjk2NTI2OTA2OWFmMmY1MTc2YmI4Y2U5Y2E2ZDExZjk2NzU3ZjAzMjA0Zjc1NjcwMzU4N2QwMGFkNDI0Nzk2YzkyZmM3YWViNmY0OTQ0MzE5OTllZGEzMDk5MGU0ZjU3NzM2MzJlZDI1OGZlMDI3NjY3MzU5OWRhNmZjZTM1Y2RhZDc3MjZhMGJiMDI0Y2FkOTk2Yjg4ZTBjYjk4ODU0Y2ViNWMwYjZlYzc0OGQ5ZjljZTZhNmNkNDM3ODU4YmFjYjgxNDYxOGEyNzJmZjNhNDE1YzZlMDdmM2RiMDk4ODc3N2ZkZWM4NDVhOTdiZjdkMTAyZGQwMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMyMDIxNDU2NGQ1NTQwMjVhZjU5OWUzMjcwNzliMjcyMGVmMDBkZjM3Y2ZiN2MzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDA0NjA5OGRjNWYyYjk5ZTNiYzJlZDY2NDJkN2YwYTYxZWZhYmMxNWMzOGM3NjMzM2JjY2NlZWVlMzY5YTRmNGE1YmRkYThlYTU5MjY0MTI0ZTQyOWYwODYzMjY4M2RkYmExN2JiZjI2MmQ4MmI2YmVmYTNiNGUxNDgwMzc2YThjN2YzYzdkN2UyYTY3NzliYmYxODI2MmFhODU3ZGU4YzIwYTEyYjZhMmNlOGU0ZDdmMzFkZDFiMTk1MzkyY2Y2MTg1YWZjZTM0YWZlMDU4OTYwNTdiMzZlOWIxNzFiNmM2N2VkN2MyMjg2Y2JmYTgzZmY4YTE2N2M3YmM3MTA5YWVlN2Q3ZTE5MDliZDM4NGZiZmM2MTkzOGVmY2E1MWM4OTkzYzcxZGIzMTc3MzBmMTZlN2U3NzY4NjdhZTRmZGM1NjJkNmYxNWRlNTg1ZTdiOTRlZjQ5NmEzNjc2MzY3YTJjYmFhYjdiNjM2NjQ4YjAwNzZiYWQ1Y2RmMWUwOTc0MGVjNmE0NTFiZmY1MzRlZmEyMTUwOWYzYmE3N2I4MTAxYjkxZWE3ZTU1ZGRiZmUxNDAxNTE3MDY3ZDdiMDFhMmEwODc5ZjA4ODVjODk0YTg3Y2ZiNjhjNGQ3ZWU4OTA2MDQ4ODFhZWI5N2MyMmQxZjMzN2VmOTIzZTAzNWE2NDAwMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMzMDIxNDYyNDc3Mjk4NzU5ZThlMDQ3MThhZTU2MzE1NWYzNTIzY2ZiODRjZGIzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDZkMmNiYjM3ZmQxMjk1N2U1YTc0ODBjZTA0MzVlOGVmNjA3N2RlZjA4ZmYyNzA4NDRkZTI1MTZhNDc0MmYyMTFkOGM3NDY5MGJjMDk0OGUwOGEyOTZhYmJhOTI4NWY2YmIzMDViOTViN2Y5NDA4Y2U0NGU4Mzg4MGM3MTk0NDQ2NzJlYzk5NzQ2YmE3OGNjNGJkZTQ3NTMxOWQwMWJkZTc3YzQ5ZDU4ZDE2ZDNiMmU5MWMyZTYxZTgzMDNjYTNkN2VkYTM3OTdmZDhiMzVjYTcyYmIxNGIxNWEyNGI1NmJiNzBkYzEzNDg0NTY1ODA4MTEwZmY1ZGI1OGM1NmY3YTA0MzU2MDdlM2MzNTJmYmY0ZjU1MTA2ZjI5ODBmZDNjZDQyMzk3ZGJmNzEzN2VlN2YxZTMyY2Q4MGEzYjdhYjEyYjQ2YzE2OTIyMDI3OGQ3NzE3Yjc4YTNjNDVkNjM5NWExMzBhOGI1ODg0MWNiYzI5MGU0ZjgxN2RlM2E0ZmUxNmVjZDA3N2NhMzNhMGFhMjVlMjM1Y2M3ZjY2NTVhODBiYThhZWVjODc5MDViYjJhNzU0NTliN2JjYzVhMTMzZjI5OTM0OTNiNDFmZmNmNjNjZDdhMzkxZTNlNmY3ODA5NGNhNDQyYzgwMTQ0NDAzY2IwYTVmMDBiZmM2MWFlODgwIgogCiBQS0NTNyBQYXJzZSBGYWlsdXJlIEludmFsaWQgQVNOMTogQ2hhbmdlIGNvbnRlbnRzIG9mIHRhZyAzMCB0byBjb250YWluIG9uZSB1bmFjY291bnRlZCBleHRyYSBieXRlICM1MTUuMAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHBrY3M3X2FzbjFfZmFpbDoiMzA4MjA0OWUwNjA5MmE4NjQ4ODZmNzBkMDEwNzAyYTA4MjA0OGUzMDgyMDQ4YTAyMDEwMTMxMGYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBiMDYwOTJhODY0ODg2ZjcwZDAxMDcwMTMxODIwNDY1MzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDViZWNkODcxOTVjMWRlZmY5MGMyNGM5MTI2OWI1NWIzZjA2OWJjMjI1YzMyNmMzMTRjMWE1MTc4NmZmZTE0YzgzMGJlNGU0YmM3M2NiYTM2Yzk3Njc3YjQ0MTY4Mjc5YmU5MWU3Y2RmN2MxOTM4NmFlMjE4NjI3MTlkMTNhM2EwZmZmMDgwM2Q0NjA5NjJmMmNkYTgzNzE0ODQ4NzMyNTJjM2Q3MDU0ZGI4MTQzZTJiMDgxYTM4MTZlZDA4MDRjYTUwOTlhZTVmZWNlODNkNWMyYzM3ODNiMTk4OGI0YjQ2ZGM5NGU1NTU4N2ExMDdlYTE1NDZiZjIyZDI4YTA5N2Y2NTJhNDA2NmRjMjk2NTI2OTA2OWFmMmY1MTc2YmI4Y2U5Y2E2ZDExZjk2NzU3ZjAzMjA0Zjc1NjcwMzU4N2QwMGFkNDI0Nzk2YzkyZmM3YWViNmY0OTQ0MzE5OTllZGEzMDk5MGU0ZjU3NzM2MzJlZDI1OGZlMDI3NjY3MzU5OWRhNmZjZTM1Y2RhZDc3MjZhMGJiMDI0Y2FkOTk2Yjg4ZTBjYjk4ODU0Y2ViNWMwYjZlYzc0OGQ5ZjljZTZhNmNkNDM3ODU4YmFjYjgxNDYxOGEyNzJmZjNhNDE1YzZlMDdmM2RiMDk4ODc3N2ZkZWM4NDVhOTdiZjdkMTAyZGQwMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMyMDIxNDU2NGQ1NTQwMjVhZjU5OWUzMjcwNzliMjcyMGVmMDBkZjM3Y2ZiN2MzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDA0NjA5OGRjNWYyYjk5ZTNiYzJlZDY2NDJkN2YwYTYxZWZhYmMxNWMzOGM3NjMzM2JjY2NlZWVlMzY5YTRmNGE1YmRkYThlYTU5MjY0MTI0ZTQyOWYwODYzMjY4M2RkYmExN2JiZjI2MmQ4MmI2YmVmYTNiNGUxNDgwMzc2YThjN2YzYzdkN2UyYTY3NzliYmYxODI2MmFhODU3ZGU4YzIwYTEyYjZhMmNlOGU0ZDdmMzFkZDFiMTk1MzkyY2Y2MTg1YWZjZTM0YWZlMDU4OTYwNTdiMzZlOWIxNzFiNmM2N2VkN2MyMjg2Y2JmYTgzZmY4YTE2N2M3YmM3MTA5YWVlN2Q3ZTE5MDliZDM4NGZiZmM2MTkzOGVmY2E1MWM4OTkzYzcxZGIzMTc3MzBmMTZlN2U3NzY4NjdhZTRmZGM1NjJkNmYxNWRlNTg1ZTdiOTRlZjQ5NmEzNjc2MzY3YTJjYmFhYjdiNjM2NjQ4YjAwNzZiYWQ1Y2RmMWUwOTc0MGVjNmE0NTFiZmY1MzRlZmEyMTUwOWYzYmE3N2I4MTAxYjkxZWE3ZTU1ZGRiZmUxNDAxNTE3MDY3ZDdiMDFhMmEwODc5ZjA4ODVjODk0YTg3Y2ZiNjhjNGQ3ZWU4OTA2MDQ4ODFhZWI5N2MyMmQxZjMzN2VmOTIzZTAzNWE2NDAwMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMzMDIxNDYyNDc3Mjk4NzU5ZThlMDQ3MThhZTU2MzE1NWYzNTIzY2ZiODRjZGIzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDZkMmNiYjM3ZmQxMjk1N2U1YTc0ODBjZTA0MzVlOGVmNjA3N2RlZjA4ZmYyNzA4NDRkZTI1MTZhNDc0MmYyMTFkOGM3NDY5MGJjMDk0OGUwOGEyOTZhYmJhOTI4NWY2YmIzMDViOTViN2Y5NDA4Y2U0NGU4Mzg4MGM3MTk0NDQ2NzJlYzk5NzQ2YmE3OGNjNGJkZTQ3NTMxOWQwMWJkZTc3YzQ5ZDU4ZDE2ZDNiMmU5MWMyZTYxZTgzMDNjYTNkN2VkYTM3OTdmZDhiMzVjYTcyYmIxNGIxNWEyNGI1NmJiNzBkYzEzNDg0NTY1ODA4MTEwZmY1ZGI1OGM1NmY3YTA0MzU2MDdlM2MzNTJmYmY0ZjU1MTA2ZjI5ODBmZDNjZDQyMzk3ZGJmNzEzN2VlN2YxZTMyY2Q4MGEzYjdhYjEyYjQ2YzE2OTIyMDI3OGQ3NzE3Yjc4YTNjNDVkNjM5NWExMzBhOGI1ODg0MWNiYzI5MGU0ZjgxN2RlM2E0ZmUxNmVjZDA3N2NhMzNhMGFhMjVlMjM1Y2M3ZjY2NTVhODBiYThhZWVjODc5MDViYjJhNzU0NTliN2JjYzVhMTMzZjI5OTM0OTNiNDFmZmNmNjNjZDdhMzkxZTNlNmY3ODA5NGNhNDQyYzgwMTQ0NDAzY2IwYTVmMDBiZmM2MWFlODgwMDAiCiAKIFBLQ1M3IFBhcnNlIEZhaWx1cmUgSW52YWxpZCBBU04xOiBDaGFuZ2UgbGVuZ3RoIGZyb20gMTE4MSB0byAxMTgwICM1MTYuMAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHBrY3M3X2FzbjFfZmFpbDoiMzA4MjA0OWMwNjA5MmE4NjQ4ODZmNzBkMDEwNzAyYTA4MjA0OGUzMDgyMDQ4YTAyMDEwMTMxMGYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBiMDYwOTJhODY0ODg2ZjcwZDAxMDcwMTMxODIwNDY1MzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDViZWNkODcxOTVjMWRlZmY5MGMyNGM5MTI2OWI1NWIzZjA2OWJjMjI1YzMyNmMzMTRjMWE1MTc4NmZmZTE0YzgzMGJlNGU0YmM3M2NiYTM2Yzk3Njc3YjQ0MTY4Mjc5YmU5MWU3Y2RmN2MxOTM4NmFlMjE4NjI3MTlkMTNhM2EwZmZmMDgwM2Q0NjA5NjJmMmNkYTgzNzE0ODQ4NzMyNTJjM2Q3MDU0ZGI4MTQzZTJiMDgxYTM4MTZlZDA4MDRjYTUwOTlhZTVmZWNlODNkNWMyYzM3ODNiMTk4OGI0YjQ2ZGM5NGU1NTU4N2ExMDdlYTE1NDZiZjIyZDI4YTA5N2Y2NTJhNDA2NmRjMjk2NTI2OTA2OWFmMmY1MTc2YmI4Y2U5Y2E2ZDExZjk2NzU3ZjAzMjA0Zjc1NjcwMzU4N2QwMGFkNDI0Nzk2YzkyZmM3YWViNmY0OTQ0MzE5OTllZGEzMDk5MGU0ZjU3NzM2MzJlZDI1OGZlMDI3NjY3MzU5OWRhNmZjZTM1Y2RhZDc3MjZhMGJiMDI0Y2FkOTk2Yjg4ZTBjYjk4ODU0Y2ViNWMwYjZlYzc0OGQ5ZjljZTZhNmNkNDM3ODU4YmFjYjgxNDYxOGEyNzJmZjNhNDE1YzZlMDdmM2RiMDk4ODc3N2ZkZWM4NDVhOTdiZjdkMTAyZGQwMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMyMDIxNDU2NGQ1NTQwMjVhZjU5OWUzMjcwNzliMjcyMGVmMDBkZjM3Y2ZiN2MzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDA0NjA5OGRjNWYyYjk5ZTNiYzJlZDY2NDJkN2YwYTYxZWZhYmMxNWMzOGM3NjMzM2JjY2NlZWVlMzY5YTRmNGE1YmRkYThlYTU5MjY0MTI0ZTQyOWYwODYzMjY4M2RkYmExN2JiZjI2MmQ4MmI2YmVmYTNiNGUxNDgwMzc2YThjN2YzYzdkN2UyYTY3NzliYmYxODI2MmFhODU3ZGU4YzIwYTEyYjZhMmNlOGU0ZDdmMzFkZDFiMTk1MzkyY2Y2MTg1YWZjZTM0YWZlMDU4OTYwNTdiMzZlOWIxNzFiNmM2N2VkN2MyMjg2Y2JmYTgzZmY4YTE2N2M3YmM3MTA5YWVlN2Q3ZTE5MDliZDM4NGZiZmM2MTkzOGVmY2E1MWM4OTkzYzcxZGIzMTc3MzBmMTZlN2U3NzY4NjdhZTRmZGM1NjJkNmYxNWRlNTg1ZTdiOTRlZjQ5NmEzNjc2MzY3YTJjYmFhYjdiNjM2NjQ4YjAwNzZiYWQ1Y2RmMWUwOTc0MGVjNmE0NTFiZmY1MzRlZmEyMTUwOWYzYmE3N2I4MTAxYjkxZWE3ZTU1ZGRiZmUxNDAxNTE3MDY3ZDdiMDFhMmEwODc5ZjA4ODVjODk0YTg3Y2ZiNjhjNGQ3ZWU4OTA2MDQ4ODFhZWI5N2MyMmQxZjMzN2VmOTIzZTAzNWE2NDAwMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMzMDIxNDYyNDc3Mjk4NzU5ZThlMDQ3MThhZTU2MzE1NWYzNTIzY2ZiODRjZGIzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDZkMmNiYjM3ZmQxMjk1N2U1YTc0ODBjZTA0MzVlOGVmNjA3N2RlZjA4ZmYyNzA4NDRkZTI1MTZhNDc0MmYyMTFkOGM3NDY5MGJjMDk0OGUwOGEyOTZhYmJhOTI4NWY2YmIzMDViOTViN2Y5NDA4Y2U0NGU4Mzg4MGM3MTk0NDQ2NzJlYzk5NzQ2YmE3OGNjNGJkZTQ3NTMxOWQwMWJkZTc3YzQ5ZDU4ZDE2ZDNiMmU5MWMyZTYxZTgzMDNjYTNkN2VkYTM3OTdmZDhiMzVjYTcyYmIxNGIxNWEyNGI1NmJiNzBkYzEzNDg0NTY1ODA4MTEwZmY1ZGI1OGM1NmY3YTA0MzU2MDdlM2MzNTJmYmY0ZjU1MTA2ZjI5ODBmZDNjZDQyMzk3ZGJmNzEzN2VlN2YxZTMyY2Q4MGEzYjdhYjEyYjQ2YzE2OTIyMDI3OGQ3NzE3Yjc4YTNjNDVkNjM5NWExMzBhOGI1ODg0MWNiYzI5MGU0ZjgxN2RlM2E0ZmUxNmVjZDA3N2NhMzNhMGFhMjVlMjM1Y2M3ZjY2NTVhODBiYThhZWVjODc5MDViYjJhNzU0NTliN2JjYzVhMTMzZjI5OTM0OTNiNDFmZmNmNjNjZDdhMzkxZTNlNmY3ODA5NGNhNDQyYzgwMTQ0NDAzY2IwYTVmMDBiZmM2MWFlODgwIgogCiBQS0NTNyBQYXJzZSBGYWlsdXJlIEludmFsaWQgQVNOMTogQ2hhbmdlIHRhZyAwNiB0byAwMiAjNTE3LjAKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBwa2NzN19hc24xX2ZhaWw6IjMwODIwNDlkMDIwOTJhODY0ODg2ZjcwZDAxMDcwMmEwODIwNDhlMzA4MjA0OGEwMjAxMDEzMTBmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwYjA2MDkyYTg2NDg4NmY3MGQwMTA3MDEzMTgyMDQ2NTMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTAyMTQ3YmRlZGRkMjQ0NGNkMWNkZmU1YzQxYTgxMDJjODliN2RmMmU2Y2JmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDA1YmVjZDg3MTk1YzFkZWZmOTBjMjRjOTEyNjliNTViM2YwNjliYzIyNWMzMjZjMzE0YzFhNTE3ODZmZmUxNGM4MzBiZTRlNGJjNzNjYmEzNmM5NzY3N2I0NDE2ODI3OWJlOTFlN2NkZjdjMTkzODZhZTIxODYyNzE5ZDEzYTNhMGZmZjA4MDNkNDYwOTYyZjJjZGE4MzcxNDg0ODczMjUyYzNkNzA1NGRiODE0M2UyYjA4MWEzODE2ZWQwODA0Y2E1MDk5YWU1ZmVjZTgzZDVjMmMzNzgzYjE5ODhiNGI0NmRjOTRlNTU1ODdhMTA3ZWExNTQ2YmYyMmQyOGEwOTdmNjUyYTQwNjZkYzI5NjUyNjkwNjlhZjJmNTE3NmJiOGNlOWNhNmQxMWY5Njc1N2YwMzIwNGY3NTY3MDM1ODdkMDBhZDQyNDc5NmM5MmZjN2FlYjZmNDk0NDMxOTk5ZWRhMzA5OTBlNGY1NzczNjMyZWQyNThmZTAyNzY2NzM1OTlkYTZmY2UzNWNkYWQ3NzI2YTBiYjAyNGNhZDk5NmI4OGUwY2I5ODg1NGNlYjVjMGI2ZWM3NDhkOWY5Y2U2YTZjZDQzNzg1OGJhY2I4MTQ2MThhMjcyZmYzYTQxNWM2ZTA3ZjNkYjA5ODg3NzdmZGVjODQ1YTk3YmY3ZDEwMmRkMDMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMjAyMTQ1NjRkNTU0MDI1YWY1OTllMzI3MDc5YjI3MjBlZjAwZGYzN2NmYjdjMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDAwNDYwOThkYzVmMmI5OWUzYmMyZWQ2NjQyZDdmMGE2MWVmYWJjMTVjMzhjNzYzMzNiY2NjZWVlZTM2OWE0ZjRhNWJkZGE4ZWE1OTI2NDEyNGU0MjlmMDg2MzI2ODNkZGJhMTdiYmYyNjJkODJiNmJlZmEzYjRlMTQ4MDM3NmE4YzdmM2M3ZDdlMmE2Nzc5YmJmMTgyNjJhYTg1N2RlOGMyMGExMmI2YTJjZThlNGQ3ZjMxZGQxYjE5NTM5MmNmNjE4NWFmY2UzNGFmZTA1ODk2MDU3YjM2ZTliMTcxYjZjNjdlZDdjMjI4NmNiZmE4M2ZmOGExNjdjN2JjNzEwOWFlZTdkN2UxOTA5YmQzODRmYmZjNjE5MzhlZmNhNTFjODk5M2M3MWRiMzE3NzMwZjE2ZTdlNzc2ODY3YWU0ZmRjNTYyZDZmMTVkZTU4NWU3Yjk0ZWY0OTZhMzY3NjM2N2EyY2JhYWI3YjYzNjY0OGIwMDc2YmFkNWNkZjFlMDk3NDBlYzZhNDUxYmZmNTM0ZWZhMjE1MDlmM2JhNzdiODEwMWI5MWVhN2U1NWRkYmZlMTQwMTUxNzA2N2Q3YjAxYTJhMDg3OWYwODg1Yzg5NGE4N2NmYjY4YzRkN2VlODkwNjA0ODgxYWViOTdjMjJkMWYzMzdlZjkyM2UwMzVhNjQwMDMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMzAyMTQ2MjQ3NzI5ODc1OWU4ZTA0NzE4YWU1NjMxNTVmMzUyM2NmYjg0Y2RiMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDA2ZDJjYmIzN2ZkMTI5NTdlNWE3NDgwY2UwNDM1ZThlZjYwNzdkZWYwOGZmMjcwODQ0ZGUyNTE2YTQ3NDJmMjExZDhjNzQ2OTBiYzA5NDhlMDhhMjk2YWJiYTkyODVmNmJiMzA1Yjk1YjdmOTQwOGNlNDRlODM4ODBjNzE5NDQ0NjcyZWM5OTc0NmJhNzhjYzRiZGU0NzUzMTlkMDFiZGU3N2M0OWQ1OGQxNmQzYjJlOTFjMmU2MWU4MzAzY2EzZDdlZGEzNzk3ZmQ4YjM1Y2E3MmJiMTRiMTVhMjRiNTZiYjcwZGMxMzQ4NDU2NTgwODExMGZmNWRiNThjNTZmN2EwNDM1NjA3ZTNjMzUyZmJmNGY1NTEwNmYyOTgwZmQzY2Q0MjM5N2RiZjcxMzdlZTdmMWUzMmNkODBhM2I3YWIxMmI0NmMxNjkyMjAyNzhkNzcxN2I3OGEzYzQ1ZDYzOTVhMTMwYThiNTg4NDFjYmMyOTBlNGY4MTdkZTNhNGZlMTZlY2QwNzdjYTMzYTBhYTI1ZTIzNWNjN2Y2NjU1YTgwYmE4YWVlYzg3OTA1YmIyYTc1NDU5YjdiY2M1YTEzM2YyOTkzNDkzYjQxZmZjZjYzY2Q3YTM5MWUzZTZmNzgwOTRjYTQ0MmM4MDE0NDQwM2NiMGE1ZjAwYmZjNjFhZTg4MCIKIAogUEtDUzcgUGFyc2UgRmFpbHVyZSBJbnZhbGlkIEFTTjE6IENoYW5nZSBsZW5ndGggZnJvbSA5IHRvIDEwICM1MTguMAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHBrY3M3X2FzbjFfZmFpbDoiMzA4MjA0OWQwNjBhMmE4NjQ4ODZmNzBkMDEwNzAyYTA4MjA0OGUzMDgyMDQ4YTAyMDEwMTMxMGYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBiMDYwOTJhODY0ODg2ZjcwZDAxMDcwMTMxODIwNDY1MzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDViZWNkODcxOTVjMWRlZmY5MGMyNGM5MTI2OWI1NWIzZjA2OWJjMjI1YzMyNmMzMTRjMWE1MTc4NmZmZTE0YzgzMGJlNGU0YmM3M2NiYTM2Yzk3Njc3YjQ0MTY4Mjc5YmU5MWU3Y2RmN2MxOTM4NmFlMjE4NjI3MTlkMTNhM2EwZmZmMDgwM2Q0NjA5NjJmMmNkYTgzNzE0ODQ4NzMyNTJjM2Q3MDU0ZGI4MTQzZTJiMDgxYTM4MTZlZDA4MDRjYTUwOTlhZTVmZWNlODNkNWMyYzM3ODNiMTk4OGI0YjQ2ZGM5NGU1NTU4N2ExMDdlYTE1NDZiZjIyZDI4YTA5N2Y2NTJhNDA2NmRjMjk2NTI2OTA2OWFmMmY1MTc2YmI4Y2U5Y2E2ZDExZjk2NzU3ZjAzMjA0Zjc1NjcwMzU4N2QwMGFkNDI0Nzk2YzkyZmM3YWViNmY0OTQ0MzE5OTllZGEzMDk5MGU0ZjU3NzM2MzJlZDI1OGZlMDI3NjY3MzU5OWRhNmZjZTM1Y2RhZDc3MjZhMGJiMDI0Y2FkOTk2Yjg4ZTBjYjk4ODU0Y2ViNWMwYjZlYzc0OGQ5ZjljZTZhNmNkNDM3ODU4YmFjYjgxNDYxOGEyNzJmZjNhNDE1YzZlMDdmM2RiMDk4ODc3N2ZkZWM4NDVhOTdiZjdkMTAyZGQwMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMyMDIxNDU2NGQ1NTQwMjVhZjU5OWUzMjcwNzliMjcyMGVmMDBkZjM3Y2ZiN2MzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDA0NjA5OGRjNWYyYjk5ZTNiYzJlZDY2NDJkN2YwYTYxZWZhYmMxNWMzOGM3NjMzM2JjY2NlZWVlMzY5YTRmNGE1YmRkYThlYTU5MjY0MTI0ZTQyOWYwODYzMjY4M2RkYmExN2JiZjI2MmQ4MmI2YmVmYTNiNGUxNDgwMzc2YThjN2YzYzdkN2UyYTY3NzliYmYxODI2MmFhODU3ZGU4YzIwYTEyYjZhMmNlOGU0ZDdmMzFkZDFiMTk1MzkyY2Y2MTg1YWZjZTM0YWZlMDU4OTYwNTdiMzZlOWIxNzFiNmM2N2VkN2MyMjg2Y2JmYTgzZmY4YTE2N2M3YmM3MTA5YWVlN2Q3ZTE5MDliZDM4NGZiZmM2MTkzOGVmY2E1MWM4OTkzYzcxZGIzMTc3MzBmMTZlN2U3NzY4NjdhZTRmZGM1NjJkNmYxNWRlNTg1ZTdiOTRlZjQ5NmEzNjc2MzY3YTJjYmFhYjdiNjM2NjQ4YjAwNzZiYWQ1Y2RmMWUwOTc0MGVjNmE0NTFiZmY1MzRlZmEyMTUwOWYzYmE3N2I4MTAxYjkxZWE3ZTU1ZGRiZmUxNDAxNTE3MDY3ZDdiMDFhMmEwODc5ZjA4ODVjODk0YTg3Y2ZiNjhjNGQ3ZWU4OTA2MDQ4ODFhZWI5N2MyMmQxZjMzN2VmOTIzZTAzNWE2NDAwMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMzMDIxNDYyNDc3Mjk4NzU5ZThlMDQ3MThhZTU2MzE1NWYzNTIzY2ZiODRjZGIzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDZkMmNiYjM3ZmQxMjk1N2U1YTc0ODBjZTA0MzVlOGVmNjA3N2RlZjA4ZmYyNzA4NDRkZTI1MTZhNDc0MmYyMTFkOGM3NDY5MGJjMDk0OGUwOGEyOTZhYmJhOTI4NWY2YmIzMDViOTViN2Y5NDA4Y2U0NGU4Mzg4MGM3MTk0NDQ2NzJlYzk5NzQ2YmE3OGNjNGJkZTQ3NTMxOWQwMWJkZTc3YzQ5ZDU4ZDE2ZDNiMmU5MWMyZTYxZTgzMDNjYTNkN2VkYTM3OTdmZDhiMzVjYTcyYmIxNGIxNWEyNGI1NmJiNzBkYzEzNDg0NTY1ODA4MTEwZmY1ZGI1OGM1NmY3YTA0MzU2MDdlM2MzNTJmYmY0ZjU1MTA2ZjI5ODBmZDNjZDQyMzk3ZGJmNzEzN2VlN2YxZTMyY2Q4MGEzYjdhYjEyYjQ2YzE2OTIyMDI3OGQ3NzE3Yjc4YTNjNDVkNjM5NWExMzBhOGI1ODg0MWNiYzI5MGU0ZjgxN2RlM2E0ZmUxNmVjZDA3N2NhMzNhMGFhMjVlMjM1Y2M3ZjY2NTVhODBiYThhZWVjODc5MDViYjJhNzU0NTliN2JjYzVhMTMzZjI5OTM0OTNiNDFmZmNmNjNjZDdhMzkxZTNlNmY3ODA5NGNhNDQyYzgwMTQ0NDAzY2IwYTVmMDBiZmM2MWFlODgwIgogCiBQS0NTNyBQYXJzZSBGYWlsdXJlIEludmFsaWQgQVNOMTogQ2hhbmdlIGxlbmd0aCBmcm9tIDkgdG8gOCAjNTE5LjAKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBwa2NzN19hc24xX2ZhaWw6IjMwODIwNDlkMDYwODJhODY0ODg2ZjcwZDAxMDcwMmEwODIwNDhlMzA4MjA0OGEwMjAxMDEzMTBmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwYjA2MDkyYTg2NDg4NmY3MGQwMTA3MDEzMTgyMDQ2NTMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTAyMTQ3YmRlZGRkMjQ0NGNkMWNkZmU1YzQxYTgxMDJjODliN2RmMmU2Y2JmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDA1YmVjZDg3MTk1YzFkZWZmOTBjMjRjOTEyNjliNTViM2YwNjliYzIyNWMzMjZjMzE0YzFhNTE3ODZmZmUxNGM4MzBiZTRlNGJjNzNjYmEzNmM5NzY3N2I0NDE2ODI3OWJlOTFlN2NkZjdjMTkzODZhZTIxODYyNzE5ZDEzYTNhMGZmZjA4MDNkNDYwOTYyZjJjZGE4MzcxNDg0ODczMjUyYzNkNzA1NGRiODE0M2UyYjA4MWEzODE2ZWQwODA0Y2E1MDk5YWU1ZmVjZTgzZDVjMmMzNzgzYjE5ODhiNGI0NmRjOTRlNTU1ODdhMTA3ZWExNTQ2YmYyMmQyOGEwOTdmNjUyYTQwNjZkYzI5NjUyNjkwNjlhZjJmNTE3NmJiOGNlOWNhNmQxMWY5Njc1N2YwMzIwNGY3NTY3MDM1ODdkMDBhZDQyNDc5NmM5MmZjN2FlYjZmNDk0NDMxOTk5ZWRhMzA5OTBlNGY1NzczNjMyZWQyNThmZTAyNzY2NzM1OTlkYTZmY2UzNWNkYWQ3NzI2YTBiYjAyNGNhZDk5NmI4OGUwY2I5ODg1NGNlYjVjMGI2ZWM3NDhkOWY5Y2U2YTZjZDQzNzg1OGJhY2I4MTQ2MThhMjcyZmYzYTQxNWM2ZTA3ZjNkYjA5ODg3NzdmZGVjODQ1YTk3YmY3ZDEwMmRkMDMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMjAyMTQ1NjRkNTU0MDI1YWY1OTllMzI3MDc5YjI3MjBlZjAwZGYzN2NmYjdjMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDAwNDYwOThkYzVmMmI5OWUzYmMyZWQ2NjQyZDdmMGE2MWVmYWJjMTVjMzhjNzYzMzNiY2NjZWVlZTM2OWE0ZjRhNWJkZGE4ZWE1OTI2NDEyNGU0MjlmMDg2MzI2ODNkZGJhMTdiYmYyNjJkODJiNmJlZmEzYjRlMTQ4MDM3NmE4YzdmM2M3ZDdlMmE2Nzc5YmJmMTgyNjJhYTg1N2RlOGMyMGExMmI2YTJjZThlNGQ3ZjMxZGQxYjE5NTM5MmNmNjE4NWFmY2UzNGFmZTA1ODk2MDU3YjM2ZTliMTcxYjZjNjdlZDdjMjI4NmNiZmE4M2ZmOGExNjdjN2JjNzEwOWFlZTdkN2UxOTA5YmQzODRmYmZjNjE5MzhlZmNhNTFjODk5M2M3MWRiMzE3NzMwZjE2ZTdlNzc2ODY3YWU0ZmRjNTYyZDZmMTVkZTU4NWU3Yjk0ZWY0OTZhMzY3NjM2N2EyY2JhYWI3YjYzNjY0OGIwMDc2YmFkNWNkZjFlMDk3NDBlYzZhNDUxYmZmNTM0ZWZhMjE1MDlmM2JhNzdiODEwMWI5MWVhN2U1NWRkYmZlMTQwMTUxNzA2N2Q3YjAxYTJhMDg3OWYwODg1Yzg5NGE4N2NmYjY4YzRkN2VlODkwNjA0ODgxYWViOTdjMjJkMWYzMzdlZjkyM2UwMzVhNjQwMDMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMzAyMTQ2MjQ3NzI5ODc1OWU4ZTA0NzE4YWU1NjMxNTVmMzUyM2NmYjg0Y2RiMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDA2ZDJjYmIzN2ZkMTI5NTdlNWE3NDgwY2UwNDM1ZThlZjYwNzdkZWYwOGZmMjcwODQ0ZGUyNTE2YTQ3NDJmMjExZDhjNzQ2OTBiYzA5NDhlMDhhMjk2YWJiYTkyODVmNmJiMzA1Yjk1YjdmOTQwOGNlNDRlODM4ODBjNzE5NDQ0NjcyZWM5OTc0NmJhNzhjYzRiZGU0NzUzMTlkMDFiZGU3N2M0OWQ1OGQxNmQzYjJlOTFjMmU2MWU4MzAzY2EzZDdlZGEzNzk3ZmQ4YjM1Y2E3MmJiMTRiMTVhMjRiNTZiYjcwZGMxMzQ4NDU2NTgwODExMGZmNWRiNThjNTZmN2EwNDM1NjA3ZTNjMzUyZmJmNGY1NTEwNmYyOTgwZmQzY2Q0MjM5N2RiZjcxMzdlZTdmMWUzMmNkODBhM2I3YWIxMmI0NmMxNjkyMjAyNzhkNzcxN2I3OGEzYzQ1ZDYzOTVhMTMwYThiNTg4NDFjYmMyOTBlNGY4MTdkZTNhNGZlMTZlY2QwNzdjYTMzYTBhYTI1ZTIzNWNjN2Y2NjU1YTgwYmE4YWVlYzg3OTA1YmIyYTc1NDU5YjdiY2M1YTEzM2YyOTkzNDkzYjQxZmZjZjYzY2Q3YTM5MWUzZTZmNzgwOTRjYTQ0MmM4MDE0NDQwM2NiMGE1ZjAwYmZjNjFhZTg4MCIKIAogUEtDUzcgUGFyc2UgRmFpbHVyZSBJbnZhbGlkIEFTTjE6IENoYW5nZSB0YWcgYTAgdG8gMDIgIzUyMC4wCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NgogcGtjczdfYXNuMV9mYWlsOiIzMDgyMDQ5ZDA2MDkyYTg2NDg4NmY3MGQwMTA3MDIwMjgyMDQ4ZTMwODIwNDhhMDIwMTAxMzEwZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGIwNjA5MmE4NjQ4ODZmNzBkMDEwNzAxMzE4MjA0NjUzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwNWJlY2Q4NzE5NWMxZGVmZjkwYzI0YzkxMjY5YjU1YjNmMDY5YmMyMjVjMzI2YzMxNGMxYTUxNzg2ZmZlMTRjODMwYmU0ZTRiYzczY2JhMzZjOTc2NzdiNDQxNjgyNzliZTkxZTdjZGY3YzE5Mzg2YWUyMTg2MjcxOWQxM2EzYTBmZmYwODAzZDQ2MDk2MmYyY2RhODM3MTQ4NDg3MzI1MmMzZDcwNTRkYjgxNDNlMmIwODFhMzgxNmVkMDgwNGNhNTA5OWFlNWZlY2U4M2Q1YzJjMzc4M2IxOTg4YjRiNDZkYzk0ZTU1NTg3YTEwN2VhMTU0NmJmMjJkMjhhMDk3ZjY1MmE0MDY2ZGMyOTY1MjY5MDY5YWYyZjUxNzZiYjhjZTljYTZkMTFmOTY3NTdmMDMyMDRmNzU2NzAzNTg3ZDAwYWQ0MjQ3OTZjOTJmYzdhZWI2ZjQ5NDQzMTk5OWVkYTMwOTkwZTRmNTc3MzYzMmVkMjU4ZmUwMjc2NjczNTk5ZGE2ZmNlMzVjZGFkNzcyNmEwYmIwMjRjYWQ5OTZiODhlMGNiOTg4NTRjZWI1YzBiNmVjNzQ4ZDlmOWNlNmE2Y2Q0Mzc4NThiYWNiODE0NjE4YTI3MmZmM2E0MTVjNmUwN2YzZGIwOTg4Nzc3ZmRlYzg0NWE5N2JmN2QxMDJkZDAzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzIwMjE0NTY0ZDU1NDAyNWFmNTk5ZTMyNzA3OWIyNzIwZWYwMGRmMzdjZmI3YzMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwMDQ2MDk4ZGM1ZjJiOTllM2JjMmVkNjY0MmQ3ZjBhNjFlZmFiYzE1YzM4Yzc2MzMzYmNjY2VlZWUzNjlhNGY0YTViZGRhOGVhNTkyNjQxMjRlNDI5ZjA4NjMyNjgzZGRiYTE3YmJmMjYyZDgyYjZiZWZhM2I0ZTE0ODAzNzZhOGM3ZjNjN2Q3ZTJhNjc3OWJiZjE4MjYyYWE4NTdkZThjMjBhMTJiNmEyY2U4ZTRkN2YzMWRkMWIxOTUzOTJjZjYxODVhZmNlMzRhZmUwNTg5NjA1N2IzNmU5YjE3MWI2YzY3ZWQ3YzIyODZjYmZhODNmZjhhMTY3YzdiYzcxMDlhZWU3ZDdlMTkwOWJkMzg0ZmJmYzYxOTM4ZWZjYTUxYzg5OTNjNzFkYjMxNzczMGYxNmU3ZTc3Njg2N2FlNGZkYzU2MmQ2ZjE1ZGU1ODVlN2I5NGVmNDk2YTM2NzYzNjdhMmNiYWFiN2I2MzY2NDhiMDA3NmJhZDVjZGYxZTA5NzQwZWM2YTQ1MWJmZjUzNGVmYTIxNTA5ZjNiYTc3YjgxMDFiOTFlYTdlNTVkZGJmZTE0MDE1MTcwNjdkN2IwMWEyYTA4NzlmMDg4NWM4OTRhODdjZmI2OGM0ZDdlZTg5MDYwNDg4MWFlYjk3YzIyZDFmMzM3ZWY5MjNlMDM1YTY0MDAzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzMwMjE0NjI0NzcyOTg3NTllOGUwNDcxOGFlNTYzMTU1ZjM1MjNjZmI4NGNkYjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwNmQyY2JiMzdmZDEyOTU3ZTVhNzQ4MGNlMDQzNWU4ZWY2MDc3ZGVmMDhmZjI3MDg0NGRlMjUxNmE0NzQyZjIxMWQ4Yzc0NjkwYmMwOTQ4ZTA4YTI5NmFiYmE5Mjg1ZjZiYjMwNWI5NWI3Zjk0MDhjZTQ0ZTgzODgwYzcxOTQ0NDY3MmVjOTk3NDZiYTc4Y2M0YmRlNDc1MzE5ZDAxYmRlNzdjNDlkNThkMTZkM2IyZTkxYzJlNjFlODMwM2NhM2Q3ZWRhMzc5N2ZkOGIzNWNhNzJiYjE0YjE1YTI0YjU2YmI3MGRjMTM0ODQ1NjU4MDgxMTBmZjVkYjU4YzU2ZjdhMDQzNTYwN2UzYzM1MmZiZjRmNTUxMDZmMjk4MGZkM2NkNDIzOTdkYmY3MTM3ZWU3ZjFlMzJjZDgwYTNiN2FiMTJiNDZjMTY5MjIwMjc4ZDc3MTdiNzhhM2M0NWQ2Mzk1YTEzMGE4YjU4ODQxY2JjMjkwZTRmODE3ZGUzYTRmZTE2ZWNkMDc3Y2EzM2EwYWEyNWUyMzVjYzdmNjY1NWE4MGJhOGFlZWM4NzkwNWJiMmE3NTQ1OWI3YmNjNWExMzNmMjk5MzQ5M2I0MWZmY2Y2M2NkN2EzOTFlM2U2Zjc4MDk0Y2E0NDJjODAxNDQ0MDNjYjBhNWYwMGJmYzYxYWU4ODAiCiAKIFBLQ1M3IFBhcnNlIEZhaWx1cmUgSW52YWxpZCBBU04xOiBDaGFuZ2UgbGVuZ3RoIGZyb20gMTE2NiB0byAxMTY3ICM1MjEuMAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHBrY3M3X2FzbjFfZmFpbDoiMzA4MjA0OWQwNjA5MmE4NjQ4ODZmNzBkMDEwNzAyYTA4MjA0OGYzMDgyMDQ4YTAyMDEwMTMxMGYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBiMDYwOTJhODY0ODg2ZjcwZDAxMDcwMTMxODIwNDY1MzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDViZWNkODcxOTVjMWRlZmY5MGMyNGM5MTI2OWI1NWIzZjA2OWJjMjI1YzMyNmMzMTRjMWE1MTc4NmZmZTE0YzgzMGJlNGU0YmM3M2NiYTM2Yzk3Njc3YjQ0MTY4Mjc5YmU5MWU3Y2RmN2MxOTM4NmFlMjE4NjI3MTlkMTNhM2EwZmZmMDgwM2Q0NjA5NjJmMmNkYTgzNzE0ODQ4NzMyNTJjM2Q3MDU0ZGI4MTQzZTJiMDgxYTM4MTZlZDA4MDRjYTUwOTlhZTVmZWNlODNkNWMyYzM3ODNiMTk4OGI0YjQ2ZGM5NGU1NTU4N2ExMDdlYTE1NDZiZjIyZDI4YTA5N2Y2NTJhNDA2NmRjMjk2NTI2OTA2OWFmMmY1MTc2YmI4Y2U5Y2E2ZDExZjk2NzU3ZjAzMjA0Zjc1NjcwMzU4N2QwMGFkNDI0Nzk2YzkyZmM3YWViNmY0OTQ0MzE5OTllZGEzMDk5MGU0ZjU3NzM2MzJlZDI1OGZlMDI3NjY3MzU5OWRhNmZjZTM1Y2RhZDc3MjZhMGJiMDI0Y2FkOTk2Yjg4ZTBjYjk4ODU0Y2ViNWMwYjZlYzc0OGQ5ZjljZTZhNmNkNDM3ODU4YmFjYjgxNDYxOGEyNzJmZjNhNDE1YzZlMDdmM2RiMDk4ODc3N2ZkZWM4NDVhOTdiZjdkMTAyZGQwMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMyMDIxNDU2NGQ1NTQwMjVhZjU5OWUzMjcwNzliMjcyMGVmMDBkZjM3Y2ZiN2MzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDA0NjA5OGRjNWYyYjk5ZTNiYzJlZDY2NDJkN2YwYTYxZWZhYmMxNWMzOGM3NjMzM2JjY2NlZWVlMzY5YTRmNGE1YmRkYThlYTU5MjY0MTI0ZTQyOWYwODYzMjY4M2RkYmExN2JiZjI2MmQ4MmI2YmVmYTNiNGUxNDgwMzc2YThjN2YzYzdkN2UyYTY3NzliYmYxODI2MmFhODU3ZGU4YzIwYTEyYjZhMmNlOGU0ZDdmMzFkZDFiMTk1MzkyY2Y2MTg1YWZjZTM0YWZlMDU4OTYwNTdiMzZlOWIxNzFiNmM2N2VkN2MyMjg2Y2JmYTgzZmY4YTE2N2M3YmM3MTA5YWVlN2Q3ZTE5MDliZDM4NGZiZmM2MTkzOGVmY2E1MWM4OTkzYzcxZGIzMTc3MzBmMTZlN2U3NzY4NjdhZTRmZGM1NjJkNmYxNWRlNTg1ZTdiOTRlZjQ5NmEzNjc2MzY3YTJjYmFhYjdiNjM2NjQ4YjAwNzZiYWQ1Y2RmMWUwOTc0MGVjNmE0NTFiZmY1MzRlZmEyMTUwOWYzYmE3N2I4MTAxYjkxZWE3ZTU1ZGRiZmUxNDAxNTE3MDY3ZDdiMDFhMmEwODc5ZjA4ODVjODk0YTg3Y2ZiNjhjNGQ3ZWU4OTA2MDQ4ODFhZWI5N2MyMmQxZjMzN2VmOTIzZTAzNWE2NDAwMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMzMDIxNDYyNDc3Mjk4NzU5ZThlMDQ3MThhZTU2MzE1NWYzNTIzY2ZiODRjZGIzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDZkMmNiYjM3ZmQxMjk1N2U1YTc0ODBjZTA0MzVlOGVmNjA3N2RlZjA4ZmYyNzA4NDRkZTI1MTZhNDc0MmYyMTFkOGM3NDY5MGJjMDk0OGUwOGEyOTZhYmJhOTI4NWY2YmIzMDViOTViN2Y5NDA4Y2U0NGU4Mzg4MGM3MTk0NDQ2NzJlYzk5NzQ2YmE3OGNjNGJkZTQ3NTMxOWQwMWJkZTc3YzQ5ZDU4ZDE2ZDNiMmU5MWMyZTYxZTgzMDNjYTNkN2VkYTM3OTdmZDhiMzVjYTcyYmIxNGIxNWEyNGI1NmJiNzBkYzEzNDg0NTY1ODA4MTEwZmY1ZGI1OGM1NmY3YTA0MzU2MDdlM2MzNTJmYmY0ZjU1MTA2ZjI5ODBmZDNjZDQyMzk3ZGJmNzEzN2VlN2YxZTMyY2Q4MGEzYjdhYjEyYjQ2YzE2OTIyMDI3OGQ3NzE3Yjc4YTNjNDVkNjM5NWExMzBhOGI1ODg0MWNiYzI5MGU0ZjgxN2RlM2E0ZmUxNmVjZDA3N2NhMzNhMGFhMjVlMjM1Y2M3ZjY2NTVhODBiYThhZWVjODc5MDViYjJhNzU0NTliN2JjYzVhMTMzZjI5OTM0OTNiNDFmZmNmNjNjZDdhMzkxZTNlNmY3ODA5NGNhNDQyYzgwMTQ0NDAzY2IwYTVmMDBiZmM2MWFlODgwIgogCiBQS0NTNyBQYXJzZSBGYWlsdXJlIEludmFsaWQgQVNOMTogQ2hhbmdlIGNvbnRlbnRzIG9mIHRhZyBhMCB0byBjb250YWluIG9uZSB1bmFjY291bnRlZCBleHRyYSBieXRlICM1MjIuMAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHBrY3M3X2FzbjFfZmFpbDoiMzA4MjA0OWQwNjA5MmE4NjQ4ODZmNzBkMDEwNzAyYTA4MjA0OGYzMDgyMDQ4YTAyMDEwMTMxMGYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBiMDYwOTJhODY0ODg2ZjcwZDAxMDcwMTMxODIwNDY1MzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDViZWNkODcxOTVjMWRlZmY5MGMyNGM5MTI2OWI1NWIzZjA2OWJjMjI1YzMyNmMzMTRjMWE1MTc4NmZmZTE0YzgzMGJlNGU0YmM3M2NiYTM2Yzk3Njc3YjQ0MTY4Mjc5YmU5MWU3Y2RmN2MxOTM4NmFlMjE4NjI3MTlkMTNhM2EwZmZmMDgwM2Q0NjA5NjJmMmNkYTgzNzE0ODQ4NzMyNTJjM2Q3MDU0ZGI4MTQzZTJiMDgxYTM4MTZlZDA4MDRjYTUwOTlhZTVmZWNlODNkNWMyYzM3ODNiMTk4OGI0YjQ2ZGM5NGU1NTU4N2ExMDdlYTE1NDZiZjIyZDI4YTA5N2Y2NTJhNDA2NmRjMjk2NTI2OTA2OWFmMmY1MTc2YmI4Y2U5Y2E2ZDExZjk2NzU3ZjAzMjA0Zjc1NjcwMzU4N2QwMGFkNDI0Nzk2YzkyZmM3YWViNmY0OTQ0MzE5OTllZGEzMDk5MGU0ZjU3NzM2MzJlZDI1OGZlMDI3NjY3MzU5OWRhNmZjZTM1Y2RhZDc3MjZhMGJiMDI0Y2FkOTk2Yjg4ZTBjYjk4ODU0Y2ViNWMwYjZlYzc0OGQ5ZjljZTZhNmNkNDM3ODU4YmFjYjgxNDYxOGEyNzJmZjNhNDE1YzZlMDdmM2RiMDk4ODc3N2ZkZWM4NDVhOTdiZjdkMTAyZGQwMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMyMDIxNDU2NGQ1NTQwMjVhZjU5OWUzMjcwNzliMjcyMGVmMDBkZjM3Y2ZiN2MzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDA0NjA5OGRjNWYyYjk5ZTNiYzJlZDY2NDJkN2YwYTYxZWZhYmMxNWMzOGM3NjMzM2JjY2NlZWVlMzY5YTRmNGE1YmRkYThlYTU5MjY0MTI0ZTQyOWYwODYzMjY4M2RkYmExN2JiZjI2MmQ4MmI2YmVmYTNiNGUxNDgwMzc2YThjN2YzYzdkN2UyYTY3NzliYmYxODI2MmFhODU3ZGU4YzIwYTEyYjZhMmNlOGU0ZDdmMzFkZDFiMTk1MzkyY2Y2MTg1YWZjZTM0YWZlMDU4OTYwNTdiMzZlOWIxNzFiNmM2N2VkN2MyMjg2Y2JmYTgzZmY4YTE2N2M3YmM3MTA5YWVlN2Q3ZTE5MDliZDM4NGZiZmM2MTkzOGVmY2E1MWM4OTkzYzcxZGIzMTc3MzBmMTZlN2U3NzY4NjdhZTRmZGM1NjJkNmYxNWRlNTg1ZTdiOTRlZjQ5NmEzNjc2MzY3YTJjYmFhYjdiNjM2NjQ4YjAwNzZiYWQ1Y2RmMWUwOTc0MGVjNmE0NTFiZmY1MzRlZmEyMTUwOWYzYmE3N2I4MTAxYjkxZWE3ZTU1ZGRiZmUxNDAxNTE3MDY3ZDdiMDFhMmEwODc5ZjA4ODVjODk0YTg3Y2ZiNjhjNGQ3ZWU4OTA2MDQ4ODFhZWI5N2MyMmQxZjMzN2VmOTIzZTAzNWE2NDAwMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMzMDIxNDYyNDc3Mjk4NzU5ZThlMDQ3MThhZTU2MzE1NWYzNTIzY2ZiODRjZGIzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDZkMmNiYjM3ZmQxMjk1N2U1YTc0ODBjZTA0MzVlOGVmNjA3N2RlZjA4ZmYyNzA4NDRkZTI1MTZhNDc0MmYyMTFkOGM3NDY5MGJjMDk0OGUwOGEyOTZhYmJhOTI4NWY2YmIzMDViOTViN2Y5NDA4Y2U0NGU4Mzg4MGM3MTk0NDQ2NzJlYzk5NzQ2YmE3OGNjNGJkZTQ3NTMxOWQwMWJkZTc3YzQ5ZDU4ZDE2ZDNiMmU5MWMyZTYxZTgzMDNjYTNkN2VkYTM3OTdmZDhiMzVjYTcyYmIxNGIxNWEyNGI1NmJiNzBkYzEzNDg0NTY1ODA4MTEwZmY1ZGI1OGM1NmY3YTA0MzU2MDdlM2MzNTJmYmY0ZjU1MTA2ZjI5ODBmZDNjZDQyMzk3ZGJmNzEzN2VlN2YxZTMyY2Q4MGEzYjdhYjEyYjQ2YzE2OTIyMDI3OGQ3NzE3Yjc4YTNjNDVkNjM5NWExMzBhOGI1ODg0MWNiYzI5MGU0ZjgxN2RlM2E0ZmUxNmVjZDA3N2NhMzNhMGFhMjVlMjM1Y2M3ZjY2NTVhODBiYThhZWVjODc5MDViYjJhNzU0NTliN2JjYzVhMTMzZjI5OTM0OTNiNDFmZmNmNjNjZDdhMzkxZTNlNmY3ODA5NGNhNDQyYzgwMTQ0NDAzY2IwYTVmMDBiZmM2MWFlODgwMDAiCiAKIFBLQ1M3IFBhcnNlIEZhaWx1cmUgSW52YWxpZCBBU04xOiBDaGFuZ2UgbGVuZ3RoIGZyb20gMTE2NiB0byAxMTY1ICM1MjMuMAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHBrY3M3X2FzbjFfZmFpbDoiMzA4MjA0OWQwNjA5MmE4NjQ4ODZmNzBkMDEwNzAyYTA4MjA0OGQzMDgyMDQ4YTAyMDEwMTMxMGYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBiMDYwOTJhODY0ODg2ZjcwZDAxMDcwMTMxODIwNDY1MzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDViZWNkODcxOTVjMWRlZmY5MGMyNGM5MTI2OWI1NWIzZjA2OWJjMjI1YzMyNmMzMTRjMWE1MTc4NmZmZTE0YzgzMGJlNGU0YmM3M2NiYTM2Yzk3Njc3YjQ0MTY4Mjc5YmU5MWU3Y2RmN2MxOTM4NmFlMjE4NjI3MTlkMTNhM2EwZmZmMDgwM2Q0NjA5NjJmMmNkYTgzNzE0ODQ4NzMyNTJjM2Q3MDU0ZGI4MTQzZTJiMDgxYTM4MTZlZDA4MDRjYTUwOTlhZTVmZWNlODNkNWMyYzM3ODNiMTk4OGI0YjQ2ZGM5NGU1NTU4N2ExMDdlYTE1NDZiZjIyZDI4YTA5N2Y2NTJhNDA2NmRjMjk2NTI2OTA2OWFmMmY1MTc2YmI4Y2U5Y2E2ZDExZjk2NzU3ZjAzMjA0Zjc1NjcwMzU4N2QwMGFkNDI0Nzk2YzkyZmM3YWViNmY0OTQ0MzE5OTllZGEzMDk5MGU0ZjU3NzM2MzJlZDI1OGZlMDI3NjY3MzU5OWRhNmZjZTM1Y2RhZDc3MjZhMGJiMDI0Y2FkOTk2Yjg4ZTBjYjk4ODU0Y2ViNWMwYjZlYzc0OGQ5ZjljZTZhNmNkNDM3ODU4YmFjYjgxNDYxOGEyNzJmZjNhNDE1YzZlMDdmM2RiMDk4ODc3N2ZkZWM4NDVhOTdiZjdkMTAyZGQwMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMyMDIxNDU2NGQ1NTQwMjVhZjU5OWUzMjcwNzliMjcyMGVmMDBkZjM3Y2ZiN2MzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDA0NjA5OGRjNWYyYjk5ZTNiYzJlZDY2NDJkN2YwYTYxZWZhYmMxNWMzOGM3NjMzM2JjY2NlZWVlMzY5YTRmNGE1YmRkYThlYTU5MjY0MTI0ZTQyOWYwODYzMjY4M2RkYmExN2JiZjI2MmQ4MmI2YmVmYTNiNGUxNDgwMzc2YThjN2YzYzdkN2UyYTY3NzliYmYxODI2MmFhODU3ZGU4YzIwYTEyYjZhMmNlOGU0ZDdmMzFkZDFiMTk1MzkyY2Y2MTg1YWZjZTM0YWZlMDU4OTYwNTdiMzZlOWIxNzFiNmM2N2VkN2MyMjg2Y2JmYTgzZmY4YTE2N2M3YmM3MTA5YWVlN2Q3ZTE5MDliZDM4NGZiZmM2MTkzOGVmY2E1MWM4OTkzYzcxZGIzMTc3MzBmMTZlN2U3NzY4NjdhZTRmZGM1NjJkNmYxNWRlNTg1ZTdiOTRlZjQ5NmEzNjc2MzY3YTJjYmFhYjdiNjM2NjQ4YjAwNzZiYWQ1Y2RmMWUwOTc0MGVjNmE0NTFiZmY1MzRlZmEyMTUwOWYzYmE3N2I4MTAxYjkxZWE3ZTU1ZGRiZmUxNDAxNTE3MDY3ZDdiMDFhMmEwODc5ZjA4ODVjODk0YTg3Y2ZiNjhjNGQ3ZWU4OTA2MDQ4ODFhZWI5N2MyMmQxZjMzN2VmOTIzZTAzNWE2NDAwMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMzMDIxNDYyNDc3Mjk4NzU5ZThlMDQ3MThhZTU2MzE1NWYzNTIzY2ZiODRjZGIzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDZkMmNiYjM3ZmQxMjk1N2U1YTc0ODBjZTA0MzVlOGVmNjA3N2RlZjA4ZmYyNzA4NDRkZTI1MTZhNDc0MmYyMTFkOGM3NDY5MGJjMDk0OGUwOGEyOTZhYmJhOTI4NWY2YmIzMDViOTViN2Y5NDA4Y2U0NGU4Mzg4MGM3MTk0NDQ2NzJlYzk5NzQ2YmE3OGNjNGJkZTQ3NTMxOWQwMWJkZTc3YzQ5ZDU4ZDE2ZDNiMmU5MWMyZTYxZTgzMDNjYTNkN2VkYTM3OTdmZDhiMzVjYTcyYmIxNGIxNWEyNGI1NmJiNzBkYzEzNDg0NTY1ODA4MTEwZmY1ZGI1OGM1NmY3YTA0MzU2MDdlM2MzNTJmYmY0ZjU1MTA2ZjI5ODBmZDNjZDQyMzk3ZGJmNzEzN2VlN2YxZTMyY2Q4MGEzYjdhYjEyYjQ2YzE2OTIyMDI3OGQ3NzE3Yjc4YTNjNDVkNjM5NWExMzBhOGI1ODg0MWNiYzI5MGU0ZjgxN2RlM2E0ZmUxNmVjZDA3N2NhMzNhMGFhMjVlMjM1Y2M3ZjY2NTVhODBiYThhZWVjODc5MDViYjJhNzU0NTliN2JjYzVhMTMzZjI5OTM0OTNiNDFmZmNmNjNjZDdhMzkxZTNlNmY3ODA5NGNhNDQyYzgwMTQ0NDAzY2IwYTVmMDBiZmM2MWFlODgwIgogCiBQS0NTNyBQYXJzZSBGYWlsdXJlIEludmFsaWQgQVNOMTogQ2hhbmdlIHRhZyAzMCB0byAwMiAjNTI0LjAKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBwa2NzN19hc24xX2ZhaWw6IjMwODIwNDlkMDYwOTJhODY0ODg2ZjcwZDAxMDcwMmEwODIwNDhlMDI4MjA0OGEwMjAxMDEzMTBmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwYjA2MDkyYTg2NDg4NmY3MGQwMTA3MDEzMTgyMDQ2NTMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTAyMTQ3YmRlZGRkMjQ0NGNkMWNkZmU1YzQxYTgxMDJjODliN2RmMmU2Y2JmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDA1YmVjZDg3MTk1YzFkZWZmOTBjMjRjOTEyNjliNTViM2YwNjliYzIyNWMzMjZjMzE0YzFhNTE3ODZmZmUxNGM4MzBiZTRlNGJjNzNjYmEzNmM5NzY3N2I0NDE2ODI3OWJlOTFlN2NkZjdjMTkzODZhZTIxODYyNzE5ZDEzYTNhMGZmZjA4MDNkNDYwOTYyZjJjZGE4MzcxNDg0ODczMjUyYzNkNzA1NGRiODE0M2UyYjA4MWEzODE2ZWQwODA0Y2E1MDk5YWU1ZmVjZTgzZDVjMmMzNzgzYjE5ODhiNGI0NmRjOTRlNTU1ODdhMTA3ZWExNTQ2YmYyMmQyOGEwOTdmNjUyYTQwNjZkYzI5NjUyNjkwNjlhZjJmNTE3NmJiOGNlOWNhNmQxMWY5Njc1N2YwMzIwNGY3NTY3MDM1ODdkMDBhZDQyNDc5NmM5MmZjN2FlYjZmNDk0NDMxOTk5ZWRhMzA5OTBlNGY1NzczNjMyZWQyNThmZTAyNzY2NzM1OTlkYTZmY2UzNWNkYWQ3NzI2YTBiYjAyNGNhZDk5NmI4OGUwY2I5ODg1NGNlYjVjMGI2ZWM3NDhkOWY5Y2U2YTZjZDQzNzg1OGJhY2I4MTQ2MThhMjcyZmYzYTQxNWM2ZTA3ZjNkYjA5ODg3NzdmZGVjODQ1YTk3YmY3ZDEwMmRkMDMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMjAyMTQ1NjRkNTU0MDI1YWY1OTllMzI3MDc5YjI3MjBlZjAwZGYzN2NmYjdjMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDAwNDYwOThkYzVmMmI5OWUzYmMyZWQ2NjQyZDdmMGE2MWVmYWJjMTVjMzhjNzYzMzNiY2NjZWVlZTM2OWE0ZjRhNWJkZGE4ZWE1OTI2NDEyNGU0MjlmMDg2MzI2ODNkZGJhMTdiYmYyNjJkODJiNmJlZmEzYjRlMTQ4MDM3NmE4YzdmM2M3ZDdlMmE2Nzc5YmJmMTgyNjJhYTg1N2RlOGMyMGExMmI2YTJjZThlNGQ3ZjMxZGQxYjE5NTM5MmNmNjE4NWFmY2UzNGFmZTA1ODk2MDU3YjM2ZTliMTcxYjZjNjdlZDdjMjI4NmNiZmE4M2ZmOGExNjdjN2JjNzEwOWFlZTdkN2UxOTA5YmQzODRmYmZjNjE5MzhlZmNhNTFjODk5M2M3MWRiMzE3NzMwZjE2ZTdlNzc2ODY3YWU0ZmRjNTYyZDZmMTVkZTU4NWU3Yjk0ZWY0OTZhMzY3NjM2N2EyY2JhYWI3YjYzNjY0OGIwMDc2YmFkNWNkZjFlMDk3NDBlYzZhNDUxYmZmNTM0ZWZhMjE1MDlmM2JhNzdiODEwMWI5MWVhN2U1NWRkYmZlMTQwMTUxNzA2N2Q3YjAxYTJhMDg3OWYwODg1Yzg5NGE4N2NmYjY4YzRkN2VlODkwNjA0ODgxYWViOTdjMjJkMWYzMzdlZjkyM2UwMzVhNjQwMDMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMzAyMTQ2MjQ3NzI5ODc1OWU4ZTA0NzE4YWU1NjMxNTVmMzUyM2NmYjg0Y2RiMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDA2ZDJjYmIzN2ZkMTI5NTdlNWE3NDgwY2UwNDM1ZThlZjYwNzdkZWYwOGZmMjcwODQ0ZGUyNTE2YTQ3NDJmMjExZDhjNzQ2OTBiYzA5NDhlMDhhMjk2YWJiYTkyODVmNmJiMzA1Yjk1YjdmOTQwOGNlNDRlODM4ODBjNzE5NDQ0NjcyZWM5OTc0NmJhNzhjYzRiZGU0NzUzMTlkMDFiZGU3N2M0OWQ1OGQxNmQzYjJlOTFjMmU2MWU4MzAzY2EzZDdlZGEzNzk3ZmQ4YjM1Y2E3MmJiMTRiMTVhMjRiNTZiYjcwZGMxMzQ4NDU2NTgwODExMGZmNWRiNThjNTZmN2EwNDM1NjA3ZTNjMzUyZmJmNGY1NTEwNmYyOTgwZmQzY2Q0MjM5N2RiZjcxMzdlZTdmMWUzMmNkODBhM2I3YWIxMmI0NmMxNjkyMjAyNzhkNzcxN2I3OGEzYzQ1ZDYzOTVhMTMwYThiNTg4NDFjYmMyOTBlNGY4MTdkZTNhNGZlMTZlY2QwNzdjYTMzYTBhYTI1ZTIzNWNjN2Y2NjU1YTgwYmE4YWVlYzg3OTA1YmIyYTc1NDU5YjdiY2M1YTEzM2YyOTkzNDkzYjQxZmZjZjYzY2Q3YTM5MWUzZTZmNzgwOTRjYTQ0MmM4MDE0NDQwM2NiMGE1ZjAwYmZjNjFhZTg4MCIKIAogUEtDUzcgUGFyc2UgRmFpbHVyZSBJbnZhbGlkIEFTTjE6IENoYW5nZSBsZW5ndGggZnJvbSAxMTYyIHRvIDExNjMgIzUyNS4wCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NgogcGtjczdfYXNuMV9mYWlsOiIzMDgyMDQ5ZDA2MDkyYTg2NDg4NmY3MGQwMTA3MDJhMDgyMDQ4ZTMwODIwNDhiMDIwMTAxMzEwZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGIwNjA5MmE4NjQ4ODZmNzBkMDEwNzAxMzE4MjA0NjUzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwNWJlY2Q4NzE5NWMxZGVmZjkwYzI0YzkxMjY5YjU1YjNmMDY5YmMyMjVjMzI2YzMxNGMxYTUxNzg2ZmZlMTRjODMwYmU0ZTRiYzczY2JhMzZjOTc2NzdiNDQxNjgyNzliZTkxZTdjZGY3YzE5Mzg2YWUyMTg2MjcxOWQxM2EzYTBmZmYwODAzZDQ2MDk2MmYyY2RhODM3MTQ4NDg3MzI1MmMzZDcwNTRkYjgxNDNlMmIwODFhMzgxNmVkMDgwNGNhNTA5OWFlNWZlY2U4M2Q1YzJjMzc4M2IxOTg4YjRiNDZkYzk0ZTU1NTg3YTEwN2VhMTU0NmJmMjJkMjhhMDk3ZjY1MmE0MDY2ZGMyOTY1MjY5MDY5YWYyZjUxNzZiYjhjZTljYTZkMTFmOTY3NTdmMDMyMDRmNzU2NzAzNTg3ZDAwYWQ0MjQ3OTZjOTJmYzdhZWI2ZjQ5NDQzMTk5OWVkYTMwOTkwZTRmNTc3MzYzMmVkMjU4ZmUwMjc2NjczNTk5ZGE2ZmNlMzVjZGFkNzcyNmEwYmIwMjRjYWQ5OTZiODhlMGNiOTg4NTRjZWI1YzBiNmVjNzQ4ZDlmOWNlNmE2Y2Q0Mzc4NThiYWNiODE0NjE4YTI3MmZmM2E0MTVjNmUwN2YzZGIwOTg4Nzc3ZmRlYzg0NWE5N2JmN2QxMDJkZDAzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzIwMjE0NTY0ZDU1NDAyNWFmNTk5ZTMyNzA3OWIyNzIwZWYwMGRmMzdjZmI3YzMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwMDQ2MDk4ZGM1ZjJiOTllM2JjMmVkNjY0MmQ3ZjBhNjFlZmFiYzE1YzM4Yzc2MzMzYmNjY2VlZWUzNjlhNGY0YTViZGRhOGVhNTkyNjQxMjRlNDI5ZjA4NjMyNjgzZGRiYTE3YmJmMjYyZDgyYjZiZWZhM2I0ZTE0ODAzNzZhOGM3ZjNjN2Q3ZTJhNjc3OWJiZjE4MjYyYWE4NTdkZThjMjBhMTJiNmEyY2U4ZTRkN2YzMWRkMWIxOTUzOTJjZjYxODVhZmNlMzRhZmUwNTg5NjA1N2IzNmU5YjE3MWI2YzY3ZWQ3YzIyODZjYmZhODNmZjhhMTY3YzdiYzcxMDlhZWU3ZDdlMTkwOWJkMzg0ZmJmYzYxOTM4ZWZjYTUxYzg5OTNjNzFkYjMxNzczMGYxNmU3ZTc3Njg2N2FlNGZkYzU2MmQ2ZjE1ZGU1ODVlN2I5NGVmNDk2YTM2NzYzNjdhMmNiYWFiN2I2MzY2NDhiMDA3NmJhZDVjZGYxZTA5NzQwZWM2YTQ1MWJmZjUzNGVmYTIxNTA5ZjNiYTc3YjgxMDFiOTFlYTdlNTVkZGJmZTE0MDE1MTcwNjdkN2IwMWEyYTA4NzlmMDg4NWM4OTRhODdjZmI2OGM0ZDdlZTg5MDYwNDg4MWFlYjk3YzIyZDFmMzM3ZWY5MjNlMDM1YTY0MDAzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzMwMjE0NjI0NzcyOTg3NTllOGUwNDcxOGFlNTYzMTU1ZjM1MjNjZmI4NGNkYjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwNmQyY2JiMzdmZDEyOTU3ZTVhNzQ4MGNlMDQzNWU4ZWY2MDc3ZGVmMDhmZjI3MDg0NGRlMjUxNmE0NzQyZjIxMWQ4Yzc0NjkwYmMwOTQ4ZTA4YTI5NmFiYmE5Mjg1ZjZiYjMwNWI5NWI3Zjk0MDhjZTQ0ZTgzODgwYzcxOTQ0NDY3MmVjOTk3NDZiYTc4Y2M0YmRlNDc1MzE5ZDAxYmRlNzdjNDlkNThkMTZkM2IyZTkxYzJlNjFlODMwM2NhM2Q3ZWRhMzc5N2ZkOGIzNWNhNzJiYjE0YjE1YTI0YjU2YmI3MGRjMTM0ODQ1NjU4MDgxMTBmZjVkYjU4YzU2ZjdhMDQzNTYwN2UzYzM1MmZiZjRmNTUxMDZmMjk4MGZkM2NkNDIzOTdkYmY3MTM3ZWU3ZjFlMzJjZDgwYTNiN2FiMTJiNDZjMTY5MjIwMjc4ZDc3MTdiNzhhM2M0NWQ2Mzk1YTEzMGE4YjU4ODQxY2JjMjkwZTRmODE3ZGUzYTRmZTE2ZWNkMDc3Y2EzM2EwYWEyNWUyMzVjYzdmNjY1NWE4MGJhOGFlZWM4NzkwNWJiMmE3NTQ1OWI3YmNjNWExMzNmMjk5MzQ5M2I0MWZmY2Y2M2NkN2EzOTFlM2U2Zjc4MDk0Y2E0NDJjODAxNDQ0MDNjYjBhNWYwMGJmYzYxYWU4ODAiCiAKIFBLQ1M3IFBhcnNlIEZhaWx1cmUgSW52YWxpZCBBU04xOiBDaGFuZ2UgY29udGVudHMgb2YgdGFnIDMwIHRvIGNvbnRhaW4gb25lIHVuYWNjb3VudGVkIGV4dHJhIGJ5dGUgIzUyNi4wCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NgogcGtjczdfYXNuMV9mYWlsOiIzMDgyMDQ5ZDA2MDkyYTg2NDg4NmY3MGQwMTA3MDJhMDgyMDQ4ZTMwODIwNDhiMDIwMTAxMzEwZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGIwNjA5MmE4NjQ4ODZmNzBkMDEwNzAxMzE4MjA0NjUzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwNWJlY2Q4NzE5NWMxZGVmZjkwYzI0YzkxMjY5YjU1YjNmMDY5YmMyMjVjMzI2YzMxNGMxYTUxNzg2ZmZlMTRjODMwYmU0ZTRiYzczY2JhMzZjOTc2NzdiNDQxNjgyNzliZTkxZTdjZGY3YzE5Mzg2YWUyMTg2MjcxOWQxM2EzYTBmZmYwODAzZDQ2MDk2MmYyY2RhODM3MTQ4NDg3MzI1MmMzZDcwNTRkYjgxNDNlMmIwODFhMzgxNmVkMDgwNGNhNTA5OWFlNWZlY2U4M2Q1YzJjMzc4M2IxOTg4YjRiNDZkYzk0ZTU1NTg3YTEwN2VhMTU0NmJmMjJkMjhhMDk3ZjY1MmE0MDY2ZGMyOTY1MjY5MDY5YWYyZjUxNzZiYjhjZTljYTZkMTFmOTY3NTdmMDMyMDRmNzU2NzAzNTg3ZDAwYWQ0MjQ3OTZjOTJmYzdhZWI2ZjQ5NDQzMTk5OWVkYTMwOTkwZTRmNTc3MzYzMmVkMjU4ZmUwMjc2NjczNTk5ZGE2ZmNlMzVjZGFkNzcyNmEwYmIwMjRjYWQ5OTZiODhlMGNiOTg4NTRjZWI1YzBiNmVjNzQ4ZDlmOWNlNmE2Y2Q0Mzc4NThiYWNiODE0NjE4YTI3MmZmM2E0MTVjNmUwN2YzZGIwOTg4Nzc3ZmRlYzg0NWE5N2JmN2QxMDJkZDAzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzIwMjE0NTY0ZDU1NDAyNWFmNTk5ZTMyNzA3OWIyNzIwZWYwMGRmMzdjZmI3YzMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwMDQ2MDk4ZGM1ZjJiOTllM2JjMmVkNjY0MmQ3ZjBhNjFlZmFiYzE1YzM4Yzc2MzMzYmNjY2VlZWUzNjlhNGY0YTViZGRhOGVhNTkyNjQxMjRlNDI5ZjA4NjMyNjgzZGRiYTE3YmJmMjYyZDgyYjZiZWZhM2I0ZTE0ODAzNzZhOGM3ZjNjN2Q3ZTJhNjc3OWJiZjE4MjYyYWE4NTdkZThjMjBhMTJiNmEyY2U4ZTRkN2YzMWRkMWIxOTUzOTJjZjYxODVhZmNlMzRhZmUwNTg5NjA1N2IzNmU5YjE3MWI2YzY3ZWQ3YzIyODZjYmZhODNmZjhhMTY3YzdiYzcxMDlhZWU3ZDdlMTkwOWJkMzg0ZmJmYzYxOTM4ZWZjYTUxYzg5OTNjNzFkYjMxNzczMGYxNmU3ZTc3Njg2N2FlNGZkYzU2MmQ2ZjE1ZGU1ODVlN2I5NGVmNDk2YTM2NzYzNjdhMmNiYWFiN2I2MzY2NDhiMDA3NmJhZDVjZGYxZTA5NzQwZWM2YTQ1MWJmZjUzNGVmYTIxNTA5ZjNiYTc3YjgxMDFiOTFlYTdlNTVkZGJmZTE0MDE1MTcwNjdkN2IwMWEyYTA4NzlmMDg4NWM4OTRhODdjZmI2OGM0ZDdlZTg5MDYwNDg4MWFlYjk3YzIyZDFmMzM3ZWY5MjNlMDM1YTY0MDAzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzMwMjE0NjI0NzcyOTg3NTllOGUwNDcxOGFlNTYzMTU1ZjM1MjNjZmI4NGNkYjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwNmQyY2JiMzdmZDEyOTU3ZTVhNzQ4MGNlMDQzNWU4ZWY2MDc3ZGVmMDhmZjI3MDg0NGRlMjUxNmE0NzQyZjIxMWQ4Yzc0NjkwYmMwOTQ4ZTA4YTI5NmFiYmE5Mjg1ZjZiYjMwNWI5NWI3Zjk0MDhjZTQ0ZTgzODgwYzcxOTQ0NDY3MmVjOTk3NDZiYTc4Y2M0YmRlNDc1MzE5ZDAxYmRlNzdjNDlkNThkMTZkM2IyZTkxYzJlNjFlODMwM2NhM2Q3ZWRhMzc5N2ZkOGIzNWNhNzJiYjE0YjE1YTI0YjU2YmI3MGRjMTM0ODQ1NjU4MDgxMTBmZjVkYjU4YzU2ZjdhMDQzNTYwN2UzYzM1MmZiZjRmNTUxMDZmMjk4MGZkM2NkNDIzOTdkYmY3MTM3ZWU3ZjFlMzJjZDgwYTNiN2FiMTJiNDZjMTY5MjIwMjc4ZDc3MTdiNzhhM2M0NWQ2Mzk1YTEzMGE4YjU4ODQxY2JjMjkwZTRmODE3ZGUzYTRmZTE2ZWNkMDc3Y2EzM2EwYWEyNWUyMzVjYzdmNjY1NWE4MGJhOGFlZWM4NzkwNWJiMmE3NTQ1OWI3YmNjNWExMzNmMjk5MzQ5M2I0MWZmY2Y2M2NkN2EzOTFlM2U2Zjc4MDk0Y2E0NDJjODAxNDQ0MDNjYjBhNWYwMGJmYzYxYWU4ODAwMCIKIAogUEtDUzcgUGFyc2UgRmFpbHVyZSBJbnZhbGlkIEFTTjE6IENoYW5nZSBsZW5ndGggZnJvbSAxMTYyIHRvIDExNjEgIzUyNy4wCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NgogcGtjczdfYXNuMV9mYWlsOiIzMDgyMDQ5ZDA2MDkyYTg2NDg4NmY3MGQwMTA3MDJhMDgyMDQ4ZTMwODIwNDg5MDIwMTAxMzEwZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGIwNjA5MmE4NjQ4ODZmNzBkMDEwNzAxMzE4MjA0NjUzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwNWJlY2Q4NzE5NWMxZGVmZjkwYzI0YzkxMjY5YjU1YjNmMDY5YmMyMjVjMzI2YzMxNGMxYTUxNzg2ZmZlMTRjODMwYmU0ZTRiYzczY2JhMzZjOTc2NzdiNDQxNjgyNzliZTkxZTdjZGY3YzE5Mzg2YWUyMTg2MjcxOWQxM2EzYTBmZmYwODAzZDQ2MDk2MmYyY2RhODM3MTQ4NDg3MzI1MmMzZDcwNTRkYjgxNDNlMmIwODFhMzgxNmVkMDgwNGNhNTA5OWFlNWZlY2U4M2Q1YzJjMzc4M2IxOTg4YjRiNDZkYzk0ZTU1NTg3YTEwN2VhMTU0NmJmMjJkMjhhMDk3ZjY1MmE0MDY2ZGMyOTY1MjY5MDY5YWYyZjUxNzZiYjhjZTljYTZkMTFmOTY3NTdmMDMyMDRmNzU2NzAzNTg3ZDAwYWQ0MjQ3OTZjOTJmYzdhZWI2ZjQ5NDQzMTk5OWVkYTMwOTkwZTRmNTc3MzYzMmVkMjU4ZmUwMjc2NjczNTk5ZGE2ZmNlMzVjZGFkNzcyNmEwYmIwMjRjYWQ5OTZiODhlMGNiOTg4NTRjZWI1YzBiNmVjNzQ4ZDlmOWNlNmE2Y2Q0Mzc4NThiYWNiODE0NjE4YTI3MmZmM2E0MTVjNmUwN2YzZGIwOTg4Nzc3ZmRlYzg0NWE5N2JmN2QxMDJkZDAzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzIwMjE0NTY0ZDU1NDAyNWFmNTk5ZTMyNzA3OWIyNzIwZWYwMGRmMzdjZmI3YzMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwMDQ2MDk4ZGM1ZjJiOTllM2JjMmVkNjY0MmQ3ZjBhNjFlZmFiYzE1YzM4Yzc2MzMzYmNjY2VlZWUzNjlhNGY0YTViZGRhOGVhNTkyNjQxMjRlNDI5ZjA4NjMyNjgzZGRiYTE3YmJmMjYyZDgyYjZiZWZhM2I0ZTE0ODAzNzZhOGM3ZjNjN2Q3ZTJhNjc3OWJiZjE4MjYyYWE4NTdkZThjMjBhMTJiNmEyY2U4ZTRkN2YzMWRkMWIxOTUzOTJjZjYxODVhZmNlMzRhZmUwNTg5NjA1N2IzNmU5YjE3MWI2YzY3ZWQ3YzIyODZjYmZhODNmZjhhMTY3YzdiYzcxMDlhZWU3ZDdlMTkwOWJkMzg0ZmJmYzYxOTM4ZWZjYTUxYzg5OTNjNzFkYjMxNzczMGYxNmU3ZTc3Njg2N2FlNGZkYzU2MmQ2ZjE1ZGU1ODVlN2I5NGVmNDk2YTM2NzYzNjdhMmNiYWFiN2I2MzY2NDhiMDA3NmJhZDVjZGYxZTA5NzQwZWM2YTQ1MWJmZjUzNGVmYTIxNTA5ZjNiYTc3YjgxMDFiOTFlYTdlNTVkZGJmZTE0MDE1MTcwNjdkN2IwMWEyYTA4NzlmMDg4NWM4OTRhODdjZmI2OGM0ZDdlZTg5MDYwNDg4MWFlYjk3YzIyZDFmMzM3ZWY5MjNlMDM1YTY0MDAzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzMwMjE0NjI0NzcyOTg3NTllOGUwNDcxOGFlNTYzMTU1ZjM1MjNjZmI4NGNkYjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwNmQyY2JiMzdmZDEyOTU3ZTVhNzQ4MGNlMDQzNWU4ZWY2MDc3ZGVmMDhmZjI3MDg0NGRlMjUxNmE0NzQyZjIxMWQ4Yzc0NjkwYmMwOTQ4ZTA4YTI5NmFiYmE5Mjg1ZjZiYjMwNWI5NWI3Zjk0MDhjZTQ0ZTgzODgwYzcxOTQ0NDY3MmVjOTk3NDZiYTc4Y2M0YmRlNDc1MzE5ZDAxYmRlNzdjNDlkNThkMTZkM2IyZTkxYzJlNjFlODMwM2NhM2Q3ZWRhMzc5N2ZkOGIzNWNhNzJiYjE0YjE1YTI0YjU2YmI3MGRjMTM0ODQ1NjU4MDgxMTBmZjVkYjU4YzU2ZjdhMDQzNTYwN2UzYzM1MmZiZjRmNTUxMDZmMjk4MGZkM2NkNDIzOTdkYmY3MTM3ZWU3ZjFlMzJjZDgwYTNiN2FiMTJiNDZjMTY5MjIwMjc4ZDc3MTdiNzhhM2M0NWQ2Mzk1YTEzMGE4YjU4ODQxY2JjMjkwZTRmODE3ZGUzYTRmZTE2ZWNkMDc3Y2EzM2EwYWEyNWUyMzVjYzdmNjY1NWE4MGJhOGFlZWM4NzkwNWJiMmE3NTQ1OWI3YmNjNWExMzNmMjk5MzQ5M2I0MWZmY2Y2M2NkN2EzOTFlM2U2Zjc4MDk0Y2E0NDJjODAxNDQ0MDNjYjBhNWYwMGJmYzYxYWU4ODAiCiAKIFBLQ1M3IFBhcnNlIEZhaWx1cmUgSW52YWxpZCBBU04xOiBDaGFuZ2UgdGFnIDAyIHRvIDA0ICM1MjguMAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHBrY3M3X2FzbjFfZmFpbDoiMzA4MjA0OWQwNjA5MmE4NjQ4ODZmNzBkMDEwNzAyYTA4MjA0OGUzMDgyMDQ4YTA0MDEwMTMxMGYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBiMDYwOTJhODY0ODg2ZjcwZDAxMDcwMTMxODIwNDY1MzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDViZWNkODcxOTVjMWRlZmY5MGMyNGM5MTI2OWI1NWIzZjA2OWJjMjI1YzMyNmMzMTRjMWE1MTc4NmZmZTE0YzgzMGJlNGU0YmM3M2NiYTM2Yzk3Njc3YjQ0MTY4Mjc5YmU5MWU3Y2RmN2MxOTM4NmFlMjE4NjI3MTlkMTNhM2EwZmZmMDgwM2Q0NjA5NjJmMmNkYTgzNzE0ODQ4NzMyNTJjM2Q3MDU0ZGI4MTQzZTJiMDgxYTM4MTZlZDA4MDRjYTUwOTlhZTVmZWNlODNkNWMyYzM3ODNiMTk4OGI0YjQ2ZGM5NGU1NTU4N2ExMDdlYTE1NDZiZjIyZDI4YTA5N2Y2NTJhNDA2NmRjMjk2NTI2OTA2OWFmMmY1MTc2YmI4Y2U5Y2E2ZDExZjk2NzU3ZjAzMjA0Zjc1NjcwMzU4N2QwMGFkNDI0Nzk2YzkyZmM3YWViNmY0OTQ0MzE5OTllZGEzMDk5MGU0ZjU3NzM2MzJlZDI1OGZlMDI3NjY3MzU5OWRhNmZjZTM1Y2RhZDc3MjZhMGJiMDI0Y2FkOTk2Yjg4ZTBjYjk4ODU0Y2ViNWMwYjZlYzc0OGQ5ZjljZTZhNmNkNDM3ODU4YmFjYjgxNDYxOGEyNzJmZjNhNDE1YzZlMDdmM2RiMDk4ODc3N2ZkZWM4NDVhOTdiZjdkMTAyZGQwMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMyMDIxNDU2NGQ1NTQwMjVhZjU5OWUzMjcwNzliMjcyMGVmMDBkZjM3Y2ZiN2MzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDA0NjA5OGRjNWYyYjk5ZTNiYzJlZDY2NDJkN2YwYTYxZWZhYmMxNWMzOGM3NjMzM2JjY2NlZWVlMzY5YTRmNGE1YmRkYThlYTU5MjY0MTI0ZTQyOWYwODYzMjY4M2RkYmExN2JiZjI2MmQ4MmI2YmVmYTNiNGUxNDgwMzc2YThjN2YzYzdkN2UyYTY3NzliYmYxODI2MmFhODU3ZGU4YzIwYTEyYjZhMmNlOGU0ZDdmMzFkZDFiMTk1MzkyY2Y2MTg1YWZjZTM0YWZlMDU4OTYwNTdiMzZlOWIxNzFiNmM2N2VkN2MyMjg2Y2JmYTgzZmY4YTE2N2M3YmM3MTA5YWVlN2Q3ZTE5MDliZDM4NGZiZmM2MTkzOGVmY2E1MWM4OTkzYzcxZGIzMTc3MzBmMTZlN2U3NzY4NjdhZTRmZGM1NjJkNmYxNWRlNTg1ZTdiOTRlZjQ5NmEzNjc2MzY3YTJjYmFhYjdiNjM2NjQ4YjAwNzZiYWQ1Y2RmMWUwOTc0MGVjNmE0NTFiZmY1MzRlZmEyMTUwOWYzYmE3N2I4MTAxYjkxZWE3ZTU1ZGRiZmUxNDAxNTE3MDY3ZDdiMDFhMmEwODc5ZjA4ODVjODk0YTg3Y2ZiNjhjNGQ3ZWU4OTA2MDQ4ODFhZWI5N2MyMmQxZjMzN2VmOTIzZTAzNWE2NDAwMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMzMDIxNDYyNDc3Mjk4NzU5ZThlMDQ3MThhZTU2MzE1NWYzNTIzY2ZiODRjZGIzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDZkMmNiYjM3ZmQxMjk1N2U1YTc0ODBjZTA0MzVlOGVmNjA3N2RlZjA4ZmYyNzA4NDRkZTI1MTZhNDc0MmYyMTFkOGM3NDY5MGJjMDk0OGUwOGEyOTZhYmJhOTI4NWY2YmIzMDViOTViN2Y5NDA4Y2U0NGU4Mzg4MGM3MTk0NDQ2NzJlYzk5NzQ2YmE3OGNjNGJkZTQ3NTMxOWQwMWJkZTc3YzQ5ZDU4ZDE2ZDNiMmU5MWMyZTYxZTgzMDNjYTNkN2VkYTM3OTdmZDhiMzVjYTcyYmIxNGIxNWEyNGI1NmJiNzBkYzEzNDg0NTY1ODA4MTEwZmY1ZGI1OGM1NmY3YTA0MzU2MDdlM2MzNTJmYmY0ZjU1MTA2ZjI5ODBmZDNjZDQyMzk3ZGJmNzEzN2VlN2YxZTMyY2Q4MGEzYjdhYjEyYjQ2YzE2OTIyMDI3OGQ3NzE3Yjc4YTNjNDVkNjM5NWExMzBhOGI1ODg0MWNiYzI5MGU0ZjgxN2RlM2E0ZmUxNmVjZDA3N2NhMzNhMGFhMjVlMjM1Y2M3ZjY2NTVhODBiYThhZWVjODc5MDViYjJhNzU0NTliN2JjYzVhMTMzZjI5OTM0OTNiNDFmZmNmNjNjZDdhMzkxZTNlNmY3ODA5NGNhNDQyYzgwMTQ0NDAzY2IwYTVmMDBiZmM2MWFlODgwIgogCiBQS0NTNyBQYXJzZSBGYWlsdXJlIEludmFsaWQgQVNOMTogQ2hhbmdlIGxlbmd0aCBmcm9tIDEgdG8gMiAjNTI5LjAKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBwa2NzN19hc24xX2ZhaWw6IjMwODIwNDlkMDYwOTJhODY0ODg2ZjcwZDAxMDcwMmEwODIwNDhlMzA4MjA0OGEwMjAyMDEzMTBmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwYjA2MDkyYTg2NDg4NmY3MGQwMTA3MDEzMTgyMDQ2NTMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTAyMTQ3YmRlZGRkMjQ0NGNkMWNkZmU1YzQxYTgxMDJjODliN2RmMmU2Y2JmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDA1YmVjZDg3MTk1YzFkZWZmOTBjMjRjOTEyNjliNTViM2YwNjliYzIyNWMzMjZjMzE0YzFhNTE3ODZmZmUxNGM4MzBiZTRlNGJjNzNjYmEzNmM5NzY3N2I0NDE2ODI3OWJlOTFlN2NkZjdjMTkzODZhZTIxODYyNzE5ZDEzYTNhMGZmZjA4MDNkNDYwOTYyZjJjZGE4MzcxNDg0ODczMjUyYzNkNzA1NGRiODE0M2UyYjA4MWEzODE2ZWQwODA0Y2E1MDk5YWU1ZmVjZTgzZDVjMmMzNzgzYjE5ODhiNGI0NmRjOTRlNTU1ODdhMTA3ZWExNTQ2YmYyMmQyOGEwOTdmNjUyYTQwNjZkYzI5NjUyNjkwNjlhZjJmNTE3NmJiOGNlOWNhNmQxMWY5Njc1N2YwMzIwNGY3NTY3MDM1ODdkMDBhZDQyNDc5NmM5MmZjN2FlYjZmNDk0NDMxOTk5ZWRhMzA5OTBlNGY1NzczNjMyZWQyNThmZTAyNzY2NzM1OTlkYTZmY2UzNWNkYWQ3NzI2YTBiYjAyNGNhZDk5NmI4OGUwY2I5ODg1NGNlYjVjMGI2ZWM3NDhkOWY5Y2U2YTZjZDQzNzg1OGJhY2I4MTQ2MThhMjcyZmYzYTQxNWM2ZTA3ZjNkYjA5ODg3NzdmZGVjODQ1YTk3YmY3ZDEwMmRkMDMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMjAyMTQ1NjRkNTU0MDI1YWY1OTllMzI3MDc5YjI3MjBlZjAwZGYzN2NmYjdjMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDAwNDYwOThkYzVmMmI5OWUzYmMyZWQ2NjQyZDdmMGE2MWVmYWJjMTVjMzhjNzYzMzNiY2NjZWVlZTM2OWE0ZjRhNWJkZGE4ZWE1OTI2NDEyNGU0MjlmMDg2MzI2ODNkZGJhMTdiYmYyNjJkODJiNmJlZmEzYjRlMTQ4MDM3NmE4YzdmM2M3ZDdlMmE2Nzc5YmJmMTgyNjJhYTg1N2RlOGMyMGExMmI2YTJjZThlNGQ3ZjMxZGQxYjE5NTM5MmNmNjE4NWFmY2UzNGFmZTA1ODk2MDU3YjM2ZTliMTcxYjZjNjdlZDdjMjI4NmNiZmE4M2ZmOGExNjdjN2JjNzEwOWFlZTdkN2UxOTA5YmQzODRmYmZjNjE5MzhlZmNhNTFjODk5M2M3MWRiMzE3NzMwZjE2ZTdlNzc2ODY3YWU0ZmRjNTYyZDZmMTVkZTU4NWU3Yjk0ZWY0OTZhMzY3NjM2N2EyY2JhYWI3YjYzNjY0OGIwMDc2YmFkNWNkZjFlMDk3NDBlYzZhNDUxYmZmNTM0ZWZhMjE1MDlmM2JhNzdiODEwMWI5MWVhN2U1NWRkYmZlMTQwMTUxNzA2N2Q3YjAxYTJhMDg3OWYwODg1Yzg5NGE4N2NmYjY4YzRkN2VlODkwNjA0ODgxYWViOTdjMjJkMWYzMzdlZjkyM2UwMzVhNjQwMDMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMzAyMTQ2MjQ3NzI5ODc1OWU4ZTA0NzE4YWU1NjMxNTVmMzUyM2NmYjg0Y2RiMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDA2ZDJjYmIzN2ZkMTI5NTdlNWE3NDgwY2UwNDM1ZThlZjYwNzdkZWYwOGZmMjcwODQ0ZGUyNTE2YTQ3NDJmMjExZDhjNzQ2OTBiYzA5NDhlMDhhMjk2YWJiYTkyODVmNmJiMzA1Yjk1YjdmOTQwOGNlNDRlODM4ODBjNzE5NDQ0NjcyZWM5OTc0NmJhNzhjYzRiZGU0NzUzMTlkMDFiZGU3N2M0OWQ1OGQxNmQzYjJlOTFjMmU2MWU4MzAzY2EzZDdlZGEzNzk3ZmQ4YjM1Y2E3MmJiMTRiMTVhMjRiNTZiYjcwZGMxMzQ4NDU2NTgwODExMGZmNWRiNThjNTZmN2EwNDM1NjA3ZTNjMzUyZmJmNGY1NTEwNmYyOTgwZmQzY2Q0MjM5N2RiZjcxMzdlZTdmMWUzMmNkODBhM2I3YWIxMmI0NmMxNjkyMjAyNzhkNzcxN2I3OGEzYzQ1ZDYzOTVhMTMwYThiNTg4NDFjYmMyOTBlNGY4MTdkZTNhNGZlMTZlY2QwNzdjYTMzYTBhYTI1ZTIzNWNjN2Y2NjU1YTgwYmE4YWVlYzg3OTA1YmIyYTc1NDU5YjdiY2M1YTEzM2YyOTkzNDkzYjQxZmZjZjYzY2Q3YTM5MWUzZTZmNzgwOTRjYTQ0MmM4MDE0NDQwM2NiMGE1ZjAwYmZjNjFhZTg4MCIKIAogUEtDUzcgUGFyc2UgRmFpbHVyZSBJbnZhbGlkIEFTTjE6IENoYW5nZSBsZW5ndGggZnJvbSAxIHRvIDAgIzUzMC4wCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NgogcGtjczdfYXNuMV9mYWlsOiIzMDgyMDQ5ZDA2MDkyYTg2NDg4NmY3MGQwMTA3MDJhMDgyMDQ4ZTMwODIwNDhhMDIwMDAxMzEwZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGIwNjA5MmE4NjQ4ODZmNzBkMDEwNzAxMzE4MjA0NjUzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwNWJlY2Q4NzE5NWMxZGVmZjkwYzI0YzkxMjY5YjU1YjNmMDY5YmMyMjVjMzI2YzMxNGMxYTUxNzg2ZmZlMTRjODMwYmU0ZTRiYzczY2JhMzZjOTc2NzdiNDQxNjgyNzliZTkxZTdjZGY3YzE5Mzg2YWUyMTg2MjcxOWQxM2EzYTBmZmYwODAzZDQ2MDk2MmYyY2RhODM3MTQ4NDg3MzI1MmMzZDcwNTRkYjgxNDNlMmIwODFhMzgxNmVkMDgwNGNhNTA5OWFlNWZlY2U4M2Q1YzJjMzc4M2IxOTg4YjRiNDZkYzk0ZTU1NTg3YTEwN2VhMTU0NmJmMjJkMjhhMDk3ZjY1MmE0MDY2ZGMyOTY1MjY5MDY5YWYyZjUxNzZiYjhjZTljYTZkMTFmOTY3NTdmMDMyMDRmNzU2NzAzNTg3ZDAwYWQ0MjQ3OTZjOTJmYzdhZWI2ZjQ5NDQzMTk5OWVkYTMwOTkwZTRmNTc3MzYzMmVkMjU4ZmUwMjc2NjczNTk5ZGE2ZmNlMzVjZGFkNzcyNmEwYmIwMjRjYWQ5OTZiODhlMGNiOTg4NTRjZWI1YzBiNmVjNzQ4ZDlmOWNlNmE2Y2Q0Mzc4NThiYWNiODE0NjE4YTI3MmZmM2E0MTVjNmUwN2YzZGIwOTg4Nzc3ZmRlYzg0NWE5N2JmN2QxMDJkZDAzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzIwMjE0NTY0ZDU1NDAyNWFmNTk5ZTMyNzA3OWIyNzIwZWYwMGRmMzdjZmI3YzMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwMDQ2MDk4ZGM1ZjJiOTllM2JjMmVkNjY0MmQ3ZjBhNjFlZmFiYzE1YzM4Yzc2MzMzYmNjY2VlZWUzNjlhNGY0YTViZGRhOGVhNTkyNjQxMjRlNDI5ZjA4NjMyNjgzZGRiYTE3YmJmMjYyZDgyYjZiZWZhM2I0ZTE0ODAzNzZhOGM3ZjNjN2Q3ZTJhNjc3OWJiZjE4MjYyYWE4NTdkZThjMjBhMTJiNmEyY2U4ZTRkN2YzMWRkMWIxOTUzOTJjZjYxODVhZmNlMzRhZmUwNTg5NjA1N2IzNmU5YjE3MWI2YzY3ZWQ3YzIyODZjYmZhODNmZjhhMTY3YzdiYzcxMDlhZWU3ZDdlMTkwOWJkMzg0ZmJmYzYxOTM4ZWZjYTUxYzg5OTNjNzFkYjMxNzczMGYxNmU3ZTc3Njg2N2FlNGZkYzU2MmQ2ZjE1ZGU1ODVlN2I5NGVmNDk2YTM2NzYzNjdhMmNiYWFiN2I2MzY2NDhiMDA3NmJhZDVjZGYxZTA5NzQwZWM2YTQ1MWJmZjUzNGVmYTIxNTA5ZjNiYTc3YjgxMDFiOTFlYTdlNTVkZGJmZTE0MDE1MTcwNjdkN2IwMWEyYTA4NzlmMDg4NWM4OTRhODdjZmI2OGM0ZDdlZTg5MDYwNDg4MWFlYjk3YzIyZDFmMzM3ZWY5MjNlMDM1YTY0MDAzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzMwMjE0NjI0NzcyOTg3NTllOGUwNDcxOGFlNTYzMTU1ZjM1MjNjZmI4NGNkYjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwNmQyY2JiMzdmZDEyOTU3ZTVhNzQ4MGNlMDQzNWU4ZWY2MDc3ZGVmMDhmZjI3MDg0NGRlMjUxNmE0NzQyZjIxMWQ4Yzc0NjkwYmMwOTQ4ZTA4YTI5NmFiYmE5Mjg1ZjZiYjMwNWI5NWI3Zjk0MDhjZTQ0ZTgzODgwYzcxOTQ0NDY3MmVjOTk3NDZiYTc4Y2M0YmRlNDc1MzE5ZDAxYmRlNzdjNDlkNThkMTZkM2IyZTkxYzJlNjFlODMwM2NhM2Q3ZWRhMzc5N2ZkOGIzNWNhNzJiYjE0YjE1YTI0YjU2YmI3MGRjMTM0ODQ1NjU4MDgxMTBmZjVkYjU4YzU2ZjdhMDQzNTYwN2UzYzM1MmZiZjRmNTUxMDZmMjk4MGZkM2NkNDIzOTdkYmY3MTM3ZWU3ZjFlMzJjZDgwYTNiN2FiMTJiNDZjMTY5MjIwMjc4ZDc3MTdiNzhhM2M0NWQ2Mzk1YTEzMGE4YjU4ODQxY2JjMjkwZTRmODE3ZGUzYTRmZTE2ZWNkMDc3Y2EzM2EwYWEyNWUyMzVjYzdmNjY1NWE4MGJhOGFlZWM4NzkwNWJiMmE3NTQ1OWI3YmNjNWExMzNmMjk5MzQ5M2I0MWZmY2Y2M2NkN2EzOTFlM2U2Zjc4MDk0Y2E0NDJjODAxNDQ0MDNjYjBhNWYwMGJmYzYxYWU4ODAiCiAKIFBLQ1M3IFBhcnNlIEZhaWx1cmUgSW52YWxpZCBBU04xOiBDaGFuZ2UgdGFnIDMxIHRvIDAyICM1MzEuMAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHBrY3M3X2FzbjFfZmFpbDoiMzA4MjA0OWQwNjA5MmE4NjQ4ODZmNzBkMDEwNzAyYTA4MjA0OGUzMDgyMDQ4YTAyMDEwMTAyMGYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBiMDYwOTJhODY0ODg2ZjcwZDAxMDcwMTMxODIwNDY1MzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDViZWNkODcxOTVjMWRlZmY5MGMyNGM5MTI2OWI1NWIzZjA2OWJjMjI1YzMyNmMzMTRjMWE1MTc4NmZmZTE0YzgzMGJlNGU0YmM3M2NiYTM2Yzk3Njc3YjQ0MTY4Mjc5YmU5MWU3Y2RmN2MxOTM4NmFlMjE4NjI3MTlkMTNhM2EwZmZmMDgwM2Q0NjA5NjJmMmNkYTgzNzE0ODQ4NzMyNTJjM2Q3MDU0ZGI4MTQzZTJiMDgxYTM4MTZlZDA4MDRjYTUwOTlhZTVmZWNlODNkNWMyYzM3ODNiMTk4OGI0YjQ2ZGM5NGU1NTU4N2ExMDdlYTE1NDZiZjIyZDI4YTA5N2Y2NTJhNDA2NmRjMjk2NTI2OTA2OWFmMmY1MTc2YmI4Y2U5Y2E2ZDExZjk2NzU3ZjAzMjA0Zjc1NjcwMzU4N2QwMGFkNDI0Nzk2YzkyZmM3YWViNmY0OTQ0MzE5OTllZGEzMDk5MGU0ZjU3NzM2MzJlZDI1OGZlMDI3NjY3MzU5OWRhNmZjZTM1Y2RhZDc3MjZhMGJiMDI0Y2FkOTk2Yjg4ZTBjYjk4ODU0Y2ViNWMwYjZlYzc0OGQ5ZjljZTZhNmNkNDM3ODU4YmFjYjgxNDYxOGEyNzJmZjNhNDE1YzZlMDdmM2RiMDk4ODc3N2ZkZWM4NDVhOTdiZjdkMTAyZGQwMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMyMDIxNDU2NGQ1NTQwMjVhZjU5OWUzMjcwNzliMjcyMGVmMDBkZjM3Y2ZiN2MzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDA0NjA5OGRjNWYyYjk5ZTNiYzJlZDY2NDJkN2YwYTYxZWZhYmMxNWMzOGM3NjMzM2JjY2NlZWVlMzY5YTRmNGE1YmRkYThlYTU5MjY0MTI0ZTQyOWYwODYzMjY4M2RkYmExN2JiZjI2MmQ4MmI2YmVmYTNiNGUxNDgwMzc2YThjN2YzYzdkN2UyYTY3NzliYmYxODI2MmFhODU3ZGU4YzIwYTEyYjZhMmNlOGU0ZDdmMzFkZDFiMTk1MzkyY2Y2MTg1YWZjZTM0YWZlMDU4OTYwNTdiMzZlOWIxNzFiNmM2N2VkN2MyMjg2Y2JmYTgzZmY4YTE2N2M3YmM3MTA5YWVlN2Q3ZTE5MDliZDM4NGZiZmM2MTkzOGVmY2E1MWM4OTkzYzcxZGIzMTc3MzBmMTZlN2U3NzY4NjdhZTRmZGM1NjJkNmYxNWRlNTg1ZTdiOTRlZjQ5NmEzNjc2MzY3YTJjYmFhYjdiNjM2NjQ4YjAwNzZiYWQ1Y2RmMWUwOTc0MGVjNmE0NTFiZmY1MzRlZmEyMTUwOWYzYmE3N2I4MTAxYjkxZWE3ZTU1ZGRiZmUxNDAxNTE3MDY3ZDdiMDFhMmEwODc5ZjA4ODVjODk0YTg3Y2ZiNjhjNGQ3ZWU4OTA2MDQ4ODFhZWI5N2MyMmQxZjMzN2VmOTIzZTAzNWE2NDAwMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMzMDIxNDYyNDc3Mjk4NzU5ZThlMDQ3MThhZTU2MzE1NWYzNTIzY2ZiODRjZGIzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDZkMmNiYjM3ZmQxMjk1N2U1YTc0ODBjZTA0MzVlOGVmNjA3N2RlZjA4ZmYyNzA4NDRkZTI1MTZhNDc0MmYyMTFkOGM3NDY5MGJjMDk0OGUwOGEyOTZhYmJhOTI4NWY2YmIzMDViOTViN2Y5NDA4Y2U0NGU4Mzg4MGM3MTk0NDQ2NzJlYzk5NzQ2YmE3OGNjNGJkZTQ3NTMxOWQwMWJkZTc3YzQ5ZDU4ZDE2ZDNiMmU5MWMyZTYxZTgzMDNjYTNkN2VkYTM3OTdmZDhiMzVjYTcyYmIxNGIxNWEyNGI1NmJiNzBkYzEzNDg0NTY1ODA4MTEwZmY1ZGI1OGM1NmY3YTA0MzU2MDdlM2MzNTJmYmY0ZjU1MTA2ZjI5ODBmZDNjZDQyMzk3ZGJmNzEzN2VlN2YxZTMyY2Q4MGEzYjdhYjEyYjQ2YzE2OTIyMDI3OGQ3NzE3Yjc4YTNjNDVkNjM5NWExMzBhOGI1ODg0MWNiYzI5MGU0ZjgxN2RlM2E0ZmUxNmVjZDA3N2NhMzNhMGFhMjVlMjM1Y2M3ZjY2NTVhODBiYThhZWVjODc5MDViYjJhNzU0NTliN2JjYzVhMTMzZjI5OTM0OTNiNDFmZmNmNjNjZDdhMzkxZTNlNmY3ODA5NGNhNDQyYzgwMTQ0NDAzY2IwYTVmMDBiZmM2MWFlODgwIgogCiBQS0NTNyBQYXJzZSBGYWlsdXJlIEludmFsaWQgQVNOMTogQ2hhbmdlIGxlbmd0aCBmcm9tIDE1IHRvIDE2ICM1MzIuMAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHBrY3M3X2FzbjFfZmFpbDoiMzA4MjA0OWQwNjA5MmE4NjQ4ODZmNzBkMDEwNzAyYTA4MjA0OGUzMDgyMDQ4YTAyMDEwMTMxMTAzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBiMDYwOTJhODY0ODg2ZjcwZDAxMDcwMTMxODIwNDY1MzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDViZWNkODcxOTVjMWRlZmY5MGMyNGM5MTI2OWI1NWIzZjA2OWJjMjI1YzMyNmMzMTRjMWE1MTc4NmZmZTE0YzgzMGJlNGU0YmM3M2NiYTM2Yzk3Njc3YjQ0MTY4Mjc5YmU5MWU3Y2RmN2MxOTM4NmFlMjE4NjI3MTlkMTNhM2EwZmZmMDgwM2Q0NjA5NjJmMmNkYTgzNzE0ODQ4NzMyNTJjM2Q3MDU0ZGI4MTQzZTJiMDgxYTM4MTZlZDA4MDRjYTUwOTlhZTVmZWNlODNkNWMyYzM3ODNiMTk4OGI0YjQ2ZGM5NGU1NTU4N2ExMDdlYTE1NDZiZjIyZDI4YTA5N2Y2NTJhNDA2NmRjMjk2NTI2OTA2OWFmMmY1MTc2YmI4Y2U5Y2E2ZDExZjk2NzU3ZjAzMjA0Zjc1NjcwMzU4N2QwMGFkNDI0Nzk2YzkyZmM3YWViNmY0OTQ0MzE5OTllZGEzMDk5MGU0ZjU3NzM2MzJlZDI1OGZlMDI3NjY3MzU5OWRhNmZjZTM1Y2RhZDc3MjZhMGJiMDI0Y2FkOTk2Yjg4ZTBjYjk4ODU0Y2ViNWMwYjZlYzc0OGQ5ZjljZTZhNmNkNDM3ODU4YmFjYjgxNDYxOGEyNzJmZjNhNDE1YzZlMDdmM2RiMDk4ODc3N2ZkZWM4NDVhOTdiZjdkMTAyZGQwMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMyMDIxNDU2NGQ1NTQwMjVhZjU5OWUzMjcwNzliMjcyMGVmMDBkZjM3Y2ZiN2MzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDA0NjA5OGRjNWYyYjk5ZTNiYzJlZDY2NDJkN2YwYTYxZWZhYmMxNWMzOGM3NjMzM2JjY2NlZWVlMzY5YTRmNGE1YmRkYThlYTU5MjY0MTI0ZTQyOWYwODYzMjY4M2RkYmExN2JiZjI2MmQ4MmI2YmVmYTNiNGUxNDgwMzc2YThjN2YzYzdkN2UyYTY3NzliYmYxODI2MmFhODU3ZGU4YzIwYTEyYjZhMmNlOGU0ZDdmMzFkZDFiMTk1MzkyY2Y2MTg1YWZjZTM0YWZlMDU4OTYwNTdiMzZlOWIxNzFiNmM2N2VkN2MyMjg2Y2JmYTgzZmY4YTE2N2M3YmM3MTA5YWVlN2Q3ZTE5MDliZDM4NGZiZmM2MTkzOGVmY2E1MWM4OTkzYzcxZGIzMTc3MzBmMTZlN2U3NzY4NjdhZTRmZGM1NjJkNmYxNWRlNTg1ZTdiOTRlZjQ5NmEzNjc2MzY3YTJjYmFhYjdiNjM2NjQ4YjAwNzZiYWQ1Y2RmMWUwOTc0MGVjNmE0NTFiZmY1MzRlZmEyMTUwOWYzYmE3N2I4MTAxYjkxZWE3ZTU1ZGRiZmUxNDAxNTE3MDY3ZDdiMDFhMmEwODc5ZjA4ODVjODk0YTg3Y2ZiNjhjNGQ3ZWU4OTA2MDQ4ODFhZWI5N2MyMmQxZjMzN2VmOTIzZTAzNWE2NDAwMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMzMDIxNDYyNDc3Mjk4NzU5ZThlMDQ3MThhZTU2MzE1NWYzNTIzY2ZiODRjZGIzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDZkMmNiYjM3ZmQxMjk1N2U1YTc0ODBjZTA0MzVlOGVmNjA3N2RlZjA4ZmYyNzA4NDRkZTI1MTZhNDc0MmYyMTFkOGM3NDY5MGJjMDk0OGUwOGEyOTZhYmJhOTI4NWY2YmIzMDViOTViN2Y5NDA4Y2U0NGU4Mzg4MGM3MTk0NDQ2NzJlYzk5NzQ2YmE3OGNjNGJkZTQ3NTMxOWQwMWJkZTc3YzQ5ZDU4ZDE2ZDNiMmU5MWMyZTYxZTgzMDNjYTNkN2VkYTM3OTdmZDhiMzVjYTcyYmIxNGIxNWEyNGI1NmJiNzBkYzEzNDg0NTY1ODA4MTEwZmY1ZGI1OGM1NmY3YTA0MzU2MDdlM2MzNTJmYmY0ZjU1MTA2ZjI5ODBmZDNjZDQyMzk3ZGJmNzEzN2VlN2YxZTMyY2Q4MGEzYjdhYjEyYjQ2YzE2OTIyMDI3OGQ3NzE3Yjc4YTNjNDVkNjM5NWExMzBhOGI1ODg0MWNiYzI5MGU0ZjgxN2RlM2E0ZmUxNmVjZDA3N2NhMzNhMGFhMjVlMjM1Y2M3ZjY2NTVhODBiYThhZWVjODc5MDViYjJhNzU0NTliN2JjYzVhMTMzZjI5OTM0OTNiNDFmZmNmNjNjZDdhMzkxZTNlNmY3ODA5NGNhNDQyYzgwMTQ0NDAzY2IwYTVmMDBiZmM2MWFlODgwIgogCiBQS0NTNyBQYXJzZSBGYWlsdXJlIEludmFsaWQgQVNOMTogQ2hhbmdlIGNvbnRlbnRzIG9mIHRhZyAzMSB0byBjb250YWluIG9uZSB1bmFjY291bnRlZCBleHRyYSBieXRlICM1MzMuMAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHBrY3M3X2FzbjFfZmFpbDoiMzA4MjA0OWQwNjA5MmE4NjQ4ODZmNzBkMDEwNzAyYTA4MjA0OGUzMDgyMDQ4YTAyMDEwMTMxMTAzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAwMDMwMGIwNjA5MmE4NjQ4ODZmNzBkMDEwNzAxMzE4MjA0NjUzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwNWJlY2Q4NzE5NWMxZGVmZjkwYzI0YzkxMjY5YjU1YjNmMDY5YmMyMjVjMzI2YzMxNGMxYTUxNzg2ZmZlMTRjODMwYmU0ZTRiYzczY2JhMzZjOTc2NzdiNDQxNjgyNzliZTkxZTdjZGY3YzE5Mzg2YWUyMTg2MjcxOWQxM2EzYTBmZmYwODAzZDQ2MDk2MmYyY2RhODM3MTQ4NDg3MzI1MmMzZDcwNTRkYjgxNDNlMmIwODFhMzgxNmVkMDgwNGNhNTA5OWFlNWZlY2U4M2Q1YzJjMzc4M2IxOTg4YjRiNDZkYzk0ZTU1NTg3YTEwN2VhMTU0NmJmMjJkMjhhMDk3ZjY1MmE0MDY2ZGMyOTY1MjY5MDY5YWYyZjUxNzZiYjhjZTljYTZkMTFmOTY3NTdmMDMyMDRmNzU2NzAzNTg3ZDAwYWQ0MjQ3OTZjOTJmYzdhZWI2ZjQ5NDQzMTk5OWVkYTMwOTkwZTRmNTc3MzYzMmVkMjU4ZmUwMjc2NjczNTk5ZGE2ZmNlMzVjZGFkNzcyNmEwYmIwMjRjYWQ5OTZiODhlMGNiOTg4NTRjZWI1YzBiNmVjNzQ4ZDlmOWNlNmE2Y2Q0Mzc4NThiYWNiODE0NjE4YTI3MmZmM2E0MTVjNmUwN2YzZGIwOTg4Nzc3ZmRlYzg0NWE5N2JmN2QxMDJkZDAzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzIwMjE0NTY0ZDU1NDAyNWFmNTk5ZTMyNzA3OWIyNzIwZWYwMGRmMzdjZmI3YzMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwMDQ2MDk4ZGM1ZjJiOTllM2JjMmVkNjY0MmQ3ZjBhNjFlZmFiYzE1YzM4Yzc2MzMzYmNjY2VlZWUzNjlhNGY0YTViZGRhOGVhNTkyNjQxMjRlNDI5ZjA4NjMyNjgzZGRiYTE3YmJmMjYyZDgyYjZiZWZhM2I0ZTE0ODAzNzZhOGM3ZjNjN2Q3ZTJhNjc3OWJiZjE4MjYyYWE4NTdkZThjMjBhMTJiNmEyY2U4ZTRkN2YzMWRkMWIxOTUzOTJjZjYxODVhZmNlMzRhZmUwNTg5NjA1N2IzNmU5YjE3MWI2YzY3ZWQ3YzIyODZjYmZhODNmZjhhMTY3YzdiYzcxMDlhZWU3ZDdlMTkwOWJkMzg0ZmJmYzYxOTM4ZWZjYTUxYzg5OTNjNzFkYjMxNzczMGYxNmU3ZTc3Njg2N2FlNGZkYzU2MmQ2ZjE1ZGU1ODVlN2I5NGVmNDk2YTM2NzYzNjdhMmNiYWFiN2I2MzY2NDhiMDA3NmJhZDVjZGYxZTA5NzQwZWM2YTQ1MWJmZjUzNGVmYTIxNTA5ZjNiYTc3YjgxMDFiOTFlYTdlNTVkZGJmZTE0MDE1MTcwNjdkN2IwMWEyYTA4NzlmMDg4NWM4OTRhODdjZmI2OGM0ZDdlZTg5MDYwNDg4MWFlYjk3YzIyZDFmMzM3ZWY5MjNlMDM1YTY0MDAzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzMwMjE0NjI0NzcyOTg3NTllOGUwNDcxOGFlNTYzMTU1ZjM1MjNjZmI4NGNkYjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwNmQyY2JiMzdmZDEyOTU3ZTVhNzQ4MGNlMDQzNWU4ZWY2MDc3ZGVmMDhmZjI3MDg0NGRlMjUxNmE0NzQyZjIxMWQ4Yzc0NjkwYmMwOTQ4ZTA4YTI5NmFiYmE5Mjg1ZjZiYjMwNWI5NWI3Zjk0MDhjZTQ0ZTgzODgwYzcxOTQ0NDY3MmVjOTk3NDZiYTc4Y2M0YmRlNDc1MzE5ZDAxYmRlNzdjNDlkNThkMTZkM2IyZTkxYzJlNjFlODMwM2NhM2Q3ZWRhMzc5N2ZkOGIzNWNhNzJiYjE0YjE1YTI0YjU2YmI3MGRjMTM0ODQ1NjU4MDgxMTBmZjVkYjU4YzU2ZjdhMDQzNTYwN2UzYzM1MmZiZjRmNTUxMDZmMjk4MGZkM2NkNDIzOTdkYmY3MTM3ZWU3ZjFlMzJjZDgwYTNiN2FiMTJiNDZjMTY5MjIwMjc4ZDc3MTdiNzhhM2M0NWQ2Mzk1YTEzMGE4YjU4ODQxY2JjMjkwZTRmODE3ZGUzYTRmZTE2ZWNkMDc3Y2EzM2EwYWEyNWUyMzVjYzdmNjY1NWE4MGJhOGFlZWM4NzkwNWJiMmE3NTQ1OWI3YmNjNWExMzNmMjk5MzQ5M2I0MWZmY2Y2M2NkN2EzOTFlM2U2Zjc4MDk0Y2E0NDJjODAxNDQ0MDNjYjBhNWYwMGJmYzYxYWU4ODAiCiAKIFBLQ1M3IFBhcnNlIEZhaWx1cmUgSW52YWxpZCBBU04xOiBDaGFuZ2UgbGVuZ3RoIGZyb20gMTUgdG8gMTQgIzUzNC4wCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NgogcGtjczdfYXNuMV9mYWlsOiIzMDgyMDQ5ZDA2MDkyYTg2NDg4NmY3MGQwMTA3MDJhMDgyMDQ4ZTMwODIwNDhhMDIwMTAxMzEwZTMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGIwNjA5MmE4NjQ4ODZmNzBkMDEwNzAxMzE4MjA0NjUzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwNWJlY2Q4NzE5NWMxZGVmZjkwYzI0YzkxMjY5YjU1YjNmMDY5YmMyMjVjMzI2YzMxNGMxYTUxNzg2ZmZlMTRjODMwYmU0ZTRiYzczY2JhMzZjOTc2NzdiNDQxNjgyNzliZTkxZTdjZGY3YzE5Mzg2YWUyMTg2MjcxOWQxM2EzYTBmZmYwODAzZDQ2MDk2MmYyY2RhODM3MTQ4NDg3MzI1MmMzZDcwNTRkYjgxNDNlMmIwODFhMzgxNmVkMDgwNGNhNTA5OWFlNWZlY2U4M2Q1YzJjMzc4M2IxOTg4YjRiNDZkYzk0ZTU1NTg3YTEwN2VhMTU0NmJmMjJkMjhhMDk3ZjY1MmE0MDY2ZGMyOTY1MjY5MDY5YWYyZjUxNzZiYjhjZTljYTZkMTFmOTY3NTdmMDMyMDRmNzU2NzAzNTg3ZDAwYWQ0MjQ3OTZjOTJmYzdhZWI2ZjQ5NDQzMTk5OWVkYTMwOTkwZTRmNTc3MzYzMmVkMjU4ZmUwMjc2NjczNTk5ZGE2ZmNlMzVjZGFkNzcyNmEwYmIwMjRjYWQ5OTZiODhlMGNiOTg4NTRjZWI1YzBiNmVjNzQ4ZDlmOWNlNmE2Y2Q0Mzc4NThiYWNiODE0NjE4YTI3MmZmM2E0MTVjNmUwN2YzZGIwOTg4Nzc3ZmRlYzg0NWE5N2JmN2QxMDJkZDAzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzIwMjE0NTY0ZDU1NDAyNWFmNTk5ZTMyNzA3OWIyNzIwZWYwMGRmMzdjZmI3YzMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwMDQ2MDk4ZGM1ZjJiOTllM2JjMmVkNjY0MmQ3ZjBhNjFlZmFiYzE1YzM4Yzc2MzMzYmNjY2VlZWUzNjlhNGY0YTViZGRhOGVhNTkyNjQxMjRlNDI5ZjA4NjMyNjgzZGRiYTE3YmJmMjYyZDgyYjZiZWZhM2I0ZTE0ODAzNzZhOGM3ZjNjN2Q3ZTJhNjc3OWJiZjE4MjYyYWE4NTdkZThjMjBhMTJiNmEyY2U4ZTRkN2YzMWRkMWIxOTUzOTJjZjYxODVhZmNlMzRhZmUwNTg5NjA1N2IzNmU5YjE3MWI2YzY3ZWQ3YzIyODZjYmZhODNmZjhhMTY3YzdiYzcxMDlhZWU3ZDdlMTkwOWJkMzg0ZmJmYzYxOTM4ZWZjYTUxYzg5OTNjNzFkYjMxNzczMGYxNmU3ZTc3Njg2N2FlNGZkYzU2MmQ2ZjE1ZGU1ODVlN2I5NGVmNDk2YTM2NzYzNjdhMmNiYWFiN2I2MzY2NDhiMDA3NmJhZDVjZGYxZTA5NzQwZWM2YTQ1MWJmZjUzNGVmYTIxNTA5ZjNiYTc3YjgxMDFiOTFlYTdlNTVkZGJmZTE0MDE1MTcwNjdkN2IwMWEyYTA4NzlmMDg4NWM4OTRhODdjZmI2OGM0ZDdlZTg5MDYwNDg4MWFlYjk3YzIyZDFmMzM3ZWY5MjNlMDM1YTY0MDAzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzMwMjE0NjI0NzcyOTg3NTllOGUwNDcxOGFlNTYzMTU1ZjM1MjNjZmI4NGNkYjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwNmQyY2JiMzdmZDEyOTU3ZTVhNzQ4MGNlMDQzNWU4ZWY2MDc3ZGVmMDhmZjI3MDg0NGRlMjUxNmE0NzQyZjIxMWQ4Yzc0NjkwYmMwOTQ4ZTA4YTI5NmFiYmE5Mjg1ZjZiYjMwNWI5NWI3Zjk0MDhjZTQ0ZTgzODgwYzcxOTQ0NDY3MmVjOTk3NDZiYTc4Y2M0YmRlNDc1MzE5ZDAxYmRlNzdjNDlkNThkMTZkM2IyZTkxYzJlNjFlODMwM2NhM2Q3ZWRhMzc5N2ZkOGIzNWNhNzJiYjE0YjE1YTI0YjU2YmI3MGRjMTM0ODQ1NjU4MDgxMTBmZjVkYjU4YzU2ZjdhMDQzNTYwN2UzYzM1MmZiZjRmNTUxMDZmMjk4MGZkM2NkNDIzOTdkYmY3MTM3ZWU3ZjFlMzJjZDgwYTNiN2FiMTJiNDZjMTY5MjIwMjc4ZDc3MTdiNzhhM2M0NWQ2Mzk1YTEzMGE4YjU4ODQxY2JjMjkwZTRmODE3ZGUzYTRmZTE2ZWNkMDc3Y2EzM2EwYWEyNWUyMzVjYzdmNjY1NWE4MGJhOGFlZWM4NzkwNWJiMmE3NTQ1OWI3YmNjNWExMzNmMjk5MzQ5M2I0MWZmY2Y2M2NkN2EzOTFlM2U2Zjc4MDk0Y2E0NDJjODAxNDQ0MDNjYjBhNWYwMGJmYzYxYWU4ODAiCiAKIFBLQ1M3IFBhcnNlIEZhaWx1cmUgSW52YWxpZCBBU04xOiBDaGFuZ2UgdGFnIDMwIHRvIDAyICM1MzUuMAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHBrY3M3X2FzbjFfZmFpbDoiMzA4MjA0OWQwNjA5MmE4NjQ4ODZmNzBkMDEwNzAyYTA4MjA0OGUzMDgyMDQ4YTAyMDEwMTMxMGYwMjBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBiMDYwOTJhODY0ODg2ZjcwZDAxMDcwMTMxODIwNDY1MzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDViZWNkODcxOTVjMWRlZmY5MGMyNGM5MTI2OWI1NWIzZjA2OWJjMjI1YzMyNmMzMTRjMWE1MTc4NmZmZTE0YzgzMGJlNGU0YmM3M2NiYTM2Yzk3Njc3YjQ0MTY4Mjc5YmU5MWU3Y2RmN2MxOTM4NmFlMjE4NjI3MTlkMTNhM2EwZmZmMDgwM2Q0NjA5NjJmMmNkYTgzNzE0ODQ4NzMyNTJjM2Q3MDU0ZGI4MTQzZTJiMDgxYTM4MTZlZDA4MDRjYTUwOTlhZTVmZWNlODNkNWMyYzM3ODNiMTk4OGI0YjQ2ZGM5NGU1NTU4N2ExMDdlYTE1NDZiZjIyZDI4YTA5N2Y2NTJhNDA2NmRjMjk2NTI2OTA2OWFmMmY1MTc2YmI4Y2U5Y2E2ZDExZjk2NzU3ZjAzMjA0Zjc1NjcwMzU4N2QwMGFkNDI0Nzk2YzkyZmM3YWViNmY0OTQ0MzE5OTllZGEzMDk5MGU0ZjU3NzM2MzJlZDI1OGZlMDI3NjY3MzU5OWRhNmZjZTM1Y2RhZDc3MjZhMGJiMDI0Y2FkOTk2Yjg4ZTBjYjk4ODU0Y2ViNWMwYjZlYzc0OGQ5ZjljZTZhNmNkNDM3ODU4YmFjYjgxNDYxOGEyNzJmZjNhNDE1YzZlMDdmM2RiMDk4ODc3N2ZkZWM4NDVhOTdiZjdkMTAyZGQwMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMyMDIxNDU2NGQ1NTQwMjVhZjU5OWUzMjcwNzliMjcyMGVmMDBkZjM3Y2ZiN2MzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDA0NjA5OGRjNWYyYjk5ZTNiYzJlZDY2NDJkN2YwYTYxZWZhYmMxNWMzOGM3NjMzM2JjY2NlZWVlMzY5YTRmNGE1YmRkYThlYTU5MjY0MTI0ZTQyOWYwODYzMjY4M2RkYmExN2JiZjI2MmQ4MmI2YmVmYTNiNGUxNDgwMzc2YThjN2YzYzdkN2UyYTY3NzliYmYxODI2MmFhODU3ZGU4YzIwYTEyYjZhMmNlOGU0ZDdmMzFkZDFiMTk1MzkyY2Y2MTg1YWZjZTM0YWZlMDU4OTYwNTdiMzZlOWIxNzFiNmM2N2VkN2MyMjg2Y2JmYTgzZmY4YTE2N2M3YmM3MTA5YWVlN2Q3ZTE5MDliZDM4NGZiZmM2MTkzOGVmY2E1MWM4OTkzYzcxZGIzMTc3MzBmMTZlN2U3NzY4NjdhZTRmZGM1NjJkNmYxNWRlNTg1ZTdiOTRlZjQ5NmEzNjc2MzY3YTJjYmFhYjdiNjM2NjQ4YjAwNzZiYWQ1Y2RmMWUwOTc0MGVjNmE0NTFiZmY1MzRlZmEyMTUwOWYzYmE3N2I4MTAxYjkxZWE3ZTU1ZGRiZmUxNDAxNTE3MDY3ZDdiMDFhMmEwODc5ZjA4ODVjODk0YTg3Y2ZiNjhjNGQ3ZWU4OTA2MDQ4ODFhZWI5N2MyMmQxZjMzN2VmOTIzZTAzNWE2NDAwMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMzMDIxNDYyNDc3Mjk4NzU5ZThlMDQ3MThhZTU2MzE1NWYzNTIzY2ZiODRjZGIzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDZkMmNiYjM3ZmQxMjk1N2U1YTc0ODBjZTA0MzVlOGVmNjA3N2RlZjA4ZmYyNzA4NDRkZTI1MTZhNDc0MmYyMTFkOGM3NDY5MGJjMDk0OGUwOGEyOTZhYmJhOTI4NWY2YmIzMDViOTViN2Y5NDA4Y2U0NGU4Mzg4MGM3MTk0NDQ2NzJlYzk5NzQ2YmE3OGNjNGJkZTQ3NTMxOWQwMWJkZTc3YzQ5ZDU4ZDE2ZDNiMmU5MWMyZTYxZTgzMDNjYTNkN2VkYTM3OTdmZDhiMzVjYTcyYmIxNGIxNWEyNGI1NmJiNzBkYzEzNDg0NTY1ODA4MTEwZmY1ZGI1OGM1NmY3YTA0MzU2MDdlM2MzNTJmYmY0ZjU1MTA2ZjI5ODBmZDNjZDQyMzk3ZGJmNzEzN2VlN2YxZTMyY2Q4MGEzYjdhYjEyYjQ2YzE2OTIyMDI3OGQ3NzE3Yjc4YTNjNDVkNjM5NWExMzBhOGI1ODg0MWNiYzI5MGU0ZjgxN2RlM2E0ZmUxNmVjZDA3N2NhMzNhMGFhMjVlMjM1Y2M3ZjY2NTVhODBiYThhZWVjODc5MDViYjJhNzU0NTliN2JjYzVhMTMzZjI5OTM0OTNiNDFmZmNmNjNjZDdhMzkxZTNlNmY3ODA5NGNhNDQyYzgwMTQ0NDAzY2IwYTVmMDBiZmM2MWFlODgwIgogCiBQS0NTNyBQYXJzZSBGYWlsdXJlIEludmFsaWQgQVNOMTogQ2hhbmdlIGxlbmd0aCBmcm9tIDEzIHRvIDE0ICM1MzYuMAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHBrY3M3X2FzbjFfZmFpbDoiMzA4MjA0OWQwNjA5MmE4NjQ4ODZmNzBkMDEwNzAyYTA4MjA0OGUzMDgyMDQ4YTAyMDEwMTMxMGYzMDBlMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBiMDYwOTJhODY0ODg2ZjcwZDAxMDcwMTMxODIwNDY1MzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDViZWNkODcxOTVjMWRlZmY5MGMyNGM5MTI2OWI1NWIzZjA2OWJjMjI1YzMyNmMzMTRjMWE1MTc4NmZmZTE0YzgzMGJlNGU0YmM3M2NiYTM2Yzk3Njc3YjQ0MTY4Mjc5YmU5MWU3Y2RmN2MxOTM4NmFlMjE4NjI3MTlkMTNhM2EwZmZmMDgwM2Q0NjA5NjJmMmNkYTgzNzE0ODQ4NzMyNTJjM2Q3MDU0ZGI4MTQzZTJiMDgxYTM4MTZlZDA4MDRjYTUwOTlhZTVmZWNlODNkNWMyYzM3ODNiMTk4OGI0YjQ2ZGM5NGU1NTU4N2ExMDdlYTE1NDZiZjIyZDI4YTA5N2Y2NTJhNDA2NmRjMjk2NTI2OTA2OWFmMmY1MTc2YmI4Y2U5Y2E2ZDExZjk2NzU3ZjAzMjA0Zjc1NjcwMzU4N2QwMGFkNDI0Nzk2YzkyZmM3YWViNmY0OTQ0MzE5OTllZGEzMDk5MGU0ZjU3NzM2MzJlZDI1OGZlMDI3NjY3MzU5OWRhNmZjZTM1Y2RhZDc3MjZhMGJiMDI0Y2FkOTk2Yjg4ZTBjYjk4ODU0Y2ViNWMwYjZlYzc0OGQ5ZjljZTZhNmNkNDM3ODU4YmFjYjgxNDYxOGEyNzJmZjNhNDE1YzZlMDdmM2RiMDk4ODc3N2ZkZWM4NDVhOTdiZjdkMTAyZGQwMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMyMDIxNDU2NGQ1NTQwMjVhZjU5OWUzMjcwNzliMjcyMGVmMDBkZjM3Y2ZiN2MzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDA0NjA5OGRjNWYyYjk5ZTNiYzJlZDY2NDJkN2YwYTYxZWZhYmMxNWMzOGM3NjMzM2JjY2NlZWVlMzY5YTRmNGE1YmRkYThlYTU5MjY0MTI0ZTQyOWYwODYzMjY4M2RkYmExN2JiZjI2MmQ4MmI2YmVmYTNiNGUxNDgwMzc2YThjN2YzYzdkN2UyYTY3NzliYmYxODI2MmFhODU3ZGU4YzIwYTEyYjZhMmNlOGU0ZDdmMzFkZDFiMTk1MzkyY2Y2MTg1YWZjZTM0YWZlMDU4OTYwNTdiMzZlOWIxNzFiNmM2N2VkN2MyMjg2Y2JmYTgzZmY4YTE2N2M3YmM3MTA5YWVlN2Q3ZTE5MDliZDM4NGZiZmM2MTkzOGVmY2E1MWM4OTkzYzcxZGIzMTc3MzBmMTZlN2U3NzY4NjdhZTRmZGM1NjJkNmYxNWRlNTg1ZTdiOTRlZjQ5NmEzNjc2MzY3YTJjYmFhYjdiNjM2NjQ4YjAwNzZiYWQ1Y2RmMWUwOTc0MGVjNmE0NTFiZmY1MzRlZmEyMTUwOWYzYmE3N2I4MTAxYjkxZWE3ZTU1ZGRiZmUxNDAxNTE3MDY3ZDdiMDFhMmEwODc5ZjA4ODVjODk0YTg3Y2ZiNjhjNGQ3ZWU4OTA2MDQ4ODFhZWI5N2MyMmQxZjMzN2VmOTIzZTAzNWE2NDAwMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMzMDIxNDYyNDc3Mjk4NzU5ZThlMDQ3MThhZTU2MzE1NWYzNTIzY2ZiODRjZGIzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDZkMmNiYjM3ZmQxMjk1N2U1YTc0ODBjZTA0MzVlOGVmNjA3N2RlZjA4ZmYyNzA4NDRkZTI1MTZhNDc0MmYyMTFkOGM3NDY5MGJjMDk0OGUwOGEyOTZhYmJhOTI4NWY2YmIzMDViOTViN2Y5NDA4Y2U0NGU4Mzg4MGM3MTk0NDQ2NzJlYzk5NzQ2YmE3OGNjNGJkZTQ3NTMxOWQwMWJkZTc3YzQ5ZDU4ZDE2ZDNiMmU5MWMyZTYxZTgzMDNjYTNkN2VkYTM3OTdmZDhiMzVjYTcyYmIxNGIxNWEyNGI1NmJiNzBkYzEzNDg0NTY1ODA4MTEwZmY1ZGI1OGM1NmY3YTA0MzU2MDdlM2MzNTJmYmY0ZjU1MTA2ZjI5ODBmZDNjZDQyMzk3ZGJmNzEzN2VlN2YxZTMyY2Q4MGEzYjdhYjEyYjQ2YzE2OTIyMDI3OGQ3NzE3Yjc4YTNjNDVkNjM5NWExMzBhOGI1ODg0MWNiYzI5MGU0ZjgxN2RlM2E0ZmUxNmVjZDA3N2NhMzNhMGFhMjVlMjM1Y2M3ZjY2NTVhODBiYThhZWVjODc5MDViYjJhNzU0NTliN2JjYzVhMTMzZjI5OTM0OTNiNDFmZmNmNjNjZDdhMzkxZTNlNmY3ODA5NGNhNDQyYzgwMTQ0NDAzY2IwYTVmMDBiZmM2MWFlODgwIgogCiBQS0NTNyBQYXJzZSBGYWlsdXJlIEludmFsaWQgQVNOMTogQ2hhbmdlIGNvbnRlbnRzIG9mIHRhZyAzMCB0byBjb250YWluIG9uZSB1bmFjY291bnRlZCBleHRyYSBieXRlICM1MzcuMAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHBrY3M3X2FzbjFfZmFpbDoiMzA4MjA0OWQwNjA5MmE4NjQ4ODZmNzBkMDEwNzAyYTA4MjA0OGUzMDgyMDQ4YTAyMDEwMTMxMGYzMDBlMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAwMDMwMGIwNjA5MmE4NjQ4ODZmNzBkMDEwNzAxMzE4MjA0NjUzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwNWJlY2Q4NzE5NWMxZGVmZjkwYzI0YzkxMjY5YjU1YjNmMDY5YmMyMjVjMzI2YzMxNGMxYTUxNzg2ZmZlMTRjODMwYmU0ZTRiYzczY2JhMzZjOTc2NzdiNDQxNjgyNzliZTkxZTdjZGY3YzE5Mzg2YWUyMTg2MjcxOWQxM2EzYTBmZmYwODAzZDQ2MDk2MmYyY2RhODM3MTQ4NDg3MzI1MmMzZDcwNTRkYjgxNDNlMmIwODFhMzgxNmVkMDgwNGNhNTA5OWFlNWZlY2U4M2Q1YzJjMzc4M2IxOTg4YjRiNDZkYzk0ZTU1NTg3YTEwN2VhMTU0NmJmMjJkMjhhMDk3ZjY1MmE0MDY2ZGMyOTY1MjY5MDY5YWYyZjUxNzZiYjhjZTljYTZkMTFmOTY3NTdmMDMyMDRmNzU2NzAzNTg3ZDAwYWQ0MjQ3OTZjOTJmYzdhZWI2ZjQ5NDQzMTk5OWVkYTMwOTkwZTRmNTc3MzYzMmVkMjU4ZmUwMjc2NjczNTk5ZGE2ZmNlMzVjZGFkNzcyNmEwYmIwMjRjYWQ5OTZiODhlMGNiOTg4NTRjZWI1YzBiNmVjNzQ4ZDlmOWNlNmE2Y2Q0Mzc4NThiYWNiODE0NjE4YTI3MmZmM2E0MTVjNmUwN2YzZGIwOTg4Nzc3ZmRlYzg0NWE5N2JmN2QxMDJkZDAzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzIwMjE0NTY0ZDU1NDAyNWFmNTk5ZTMyNzA3OWIyNzIwZWYwMGRmMzdjZmI3YzMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwMDQ2MDk4ZGM1ZjJiOTllM2JjMmVkNjY0MmQ3ZjBhNjFlZmFiYzE1YzM4Yzc2MzMzYmNjY2VlZWUzNjlhNGY0YTViZGRhOGVhNTkyNjQxMjRlNDI5ZjA4NjMyNjgzZGRiYTE3YmJmMjYyZDgyYjZiZWZhM2I0ZTE0ODAzNzZhOGM3ZjNjN2Q3ZTJhNjc3OWJiZjE4MjYyYWE4NTdkZThjMjBhMTJiNmEyY2U4ZTRkN2YzMWRkMWIxOTUzOTJjZjYxODVhZmNlMzRhZmUwNTg5NjA1N2IzNmU5YjE3MWI2YzY3ZWQ3YzIyODZjYmZhODNmZjhhMTY3YzdiYzcxMDlhZWU3ZDdlMTkwOWJkMzg0ZmJmYzYxOTM4ZWZjYTUxYzg5OTNjNzFkYjMxNzczMGYxNmU3ZTc3Njg2N2FlNGZkYzU2MmQ2ZjE1ZGU1ODVlN2I5NGVmNDk2YTM2NzYzNjdhMmNiYWFiN2I2MzY2NDhiMDA3NmJhZDVjZGYxZTA5NzQwZWM2YTQ1MWJmZjUzNGVmYTIxNTA5ZjNiYTc3YjgxMDFiOTFlYTdlNTVkZGJmZTE0MDE1MTcwNjdkN2IwMWEyYTA4NzlmMDg4NWM4OTRhODdjZmI2OGM0ZDdlZTg5MDYwNDg4MWFlYjk3YzIyZDFmMzM3ZWY5MjNlMDM1YTY0MDAzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzMwMjE0NjI0NzcyOTg3NTllOGUwNDcxOGFlNTYzMTU1ZjM1MjNjZmI4NGNkYjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwNmQyY2JiMzdmZDEyOTU3ZTVhNzQ4MGNlMDQzNWU4ZWY2MDc3ZGVmMDhmZjI3MDg0NGRlMjUxNmE0NzQyZjIxMWQ4Yzc0NjkwYmMwOTQ4ZTA4YTI5NmFiYmE5Mjg1ZjZiYjMwNWI5NWI3Zjk0MDhjZTQ0ZTgzODgwYzcxOTQ0NDY3MmVjOTk3NDZiYTc4Y2M0YmRlNDc1MzE5ZDAxYmRlNzdjNDlkNThkMTZkM2IyZTkxYzJlNjFlODMwM2NhM2Q3ZWRhMzc5N2ZkOGIzNWNhNzJiYjE0YjE1YTI0YjU2YmI3MGRjMTM0ODQ1NjU4MDgxMTBmZjVkYjU4YzU2ZjdhMDQzNTYwN2UzYzM1MmZiZjRmNTUxMDZmMjk4MGZkM2NkNDIzOTdkYmY3MTM3ZWU3ZjFlMzJjZDgwYTNiN2FiMTJiNDZjMTY5MjIwMjc4ZDc3MTdiNzhhM2M0NWQ2Mzk1YTEzMGE4YjU4ODQxY2JjMjkwZTRmODE3ZGUzYTRmZTE2ZWNkMDc3Y2EzM2EwYWEyNWUyMzVjYzdmNjY1NWE4MGJhOGFlZWM4NzkwNWJiMmE3NTQ1OWI3YmNjNWExMzNmMjk5MzQ5M2I0MWZmY2Y2M2NkN2EzOTFlM2U2Zjc4MDk0Y2E0NDJjODAxNDQ0MDNjYjBhNWYwMGJmYzYxYWU4ODAiCiAKIFBLQ1M3IFBhcnNlIEZhaWx1cmUgSW52YWxpZCBBU04xOiBDaGFuZ2UgbGVuZ3RoIGZyb20gMTMgdG8gMTIgIzUzOC4wCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NgogcGtjczdfYXNuMV9mYWlsOiIzMDgyMDQ5ZDA2MDkyYTg2NDg4NmY3MGQwMTA3MDJhMDgyMDQ4ZTMwODIwNDhhMDIwMTAxMzEwZjMwMGMwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGIwNjA5MmE4NjQ4ODZmNzBkMDEwNzAxMzE4MjA0NjUzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwNWJlY2Q4NzE5NWMxZGVmZjkwYzI0YzkxMjY5YjU1YjNmMDY5YmMyMjVjMzI2YzMxNGMxYTUxNzg2ZmZlMTRjODMwYmU0ZTRiYzczY2JhMzZjOTc2NzdiNDQxNjgyNzliZTkxZTdjZGY3YzE5Mzg2YWUyMTg2MjcxOWQxM2EzYTBmZmYwODAzZDQ2MDk2MmYyY2RhODM3MTQ4NDg3MzI1MmMzZDcwNTRkYjgxNDNlMmIwODFhMzgxNmVkMDgwNGNhNTA5OWFlNWZlY2U4M2Q1YzJjMzc4M2IxOTg4YjRiNDZkYzk0ZTU1NTg3YTEwN2VhMTU0NmJmMjJkMjhhMDk3ZjY1MmE0MDY2ZGMyOTY1MjY5MDY5YWYyZjUxNzZiYjhjZTljYTZkMTFmOTY3NTdmMDMyMDRmNzU2NzAzNTg3ZDAwYWQ0MjQ3OTZjOTJmYzdhZWI2ZjQ5NDQzMTk5OWVkYTMwOTkwZTRmNTc3MzYzMmVkMjU4ZmUwMjc2NjczNTk5ZGE2ZmNlMzVjZGFkNzcyNmEwYmIwMjRjYWQ5OTZiODhlMGNiOTg4NTRjZWI1YzBiNmVjNzQ4ZDlmOWNlNmE2Y2Q0Mzc4NThiYWNiODE0NjE4YTI3MmZmM2E0MTVjNmUwN2YzZGIwOTg4Nzc3ZmRlYzg0NWE5N2JmN2QxMDJkZDAzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzIwMjE0NTY0ZDU1NDAyNWFmNTk5ZTMyNzA3OWIyNzIwZWYwMGRmMzdjZmI3YzMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwMDQ2MDk4ZGM1ZjJiOTllM2JjMmVkNjY0MmQ3ZjBhNjFlZmFiYzE1YzM4Yzc2MzMzYmNjY2VlZWUzNjlhNGY0YTViZGRhOGVhNTkyNjQxMjRlNDI5ZjA4NjMyNjgzZGRiYTE3YmJmMjYyZDgyYjZiZWZhM2I0ZTE0ODAzNzZhOGM3ZjNjN2Q3ZTJhNjc3OWJiZjE4MjYyYWE4NTdkZThjMjBhMTJiNmEyY2U4ZTRkN2YzMWRkMWIxOTUzOTJjZjYxODVhZmNlMzRhZmUwNTg5NjA1N2IzNmU5YjE3MWI2YzY3ZWQ3YzIyODZjYmZhODNmZjhhMTY3YzdiYzcxMDlhZWU3ZDdlMTkwOWJkMzg0ZmJmYzYxOTM4ZWZjYTUxYzg5OTNjNzFkYjMxNzczMGYxNmU3ZTc3Njg2N2FlNGZkYzU2MmQ2ZjE1ZGU1ODVlN2I5NGVmNDk2YTM2NzYzNjdhMmNiYWFiN2I2MzY2NDhiMDA3NmJhZDVjZGYxZTA5NzQwZWM2YTQ1MWJmZjUzNGVmYTIxNTA5ZjNiYTc3YjgxMDFiOTFlYTdlNTVkZGJmZTE0MDE1MTcwNjdkN2IwMWEyYTA4NzlmMDg4NWM4OTRhODdjZmI2OGM0ZDdlZTg5MDYwNDg4MWFlYjk3YzIyZDFmMzM3ZWY5MjNlMDM1YTY0MDAzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzMwMjE0NjI0NzcyOTg3NTllOGUwNDcxOGFlNTYzMTU1ZjM1MjNjZmI4NGNkYjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwNmQyY2JiMzdmZDEyOTU3ZTVhNzQ4MGNlMDQzNWU4ZWY2MDc3ZGVmMDhmZjI3MDg0NGRlMjUxNmE0NzQyZjIxMWQ4Yzc0NjkwYmMwOTQ4ZTA4YTI5NmFiYmE5Mjg1ZjZiYjMwNWI5NWI3Zjk0MDhjZTQ0ZTgzODgwYzcxOTQ0NDY3MmVjOTk3NDZiYTc4Y2M0YmRlNDc1MzE5ZDAxYmRlNzdjNDlkNThkMTZkM2IyZTkxYzJlNjFlODMwM2NhM2Q3ZWRhMzc5N2ZkOGIzNWNhNzJiYjE0YjE1YTI0YjU2YmI3MGRjMTM0ODQ1NjU4MDgxMTBmZjVkYjU4YzU2ZjdhMDQzNTYwN2UzYzM1MmZiZjRmNTUxMDZmMjk4MGZkM2NkNDIzOTdkYmY3MTM3ZWU3ZjFlMzJjZDgwYTNiN2FiMTJiNDZjMTY5MjIwMjc4ZDc3MTdiNzhhM2M0NWQ2Mzk1YTEzMGE4YjU4ODQxY2JjMjkwZTRmODE3ZGUzYTRmZTE2ZWNkMDc3Y2EzM2EwYWEyNWUyMzVjYzdmNjY1NWE4MGJhOGFlZWM4NzkwNWJiMmE3NTQ1OWI3YmNjNWExMzNmMjk5MzQ5M2I0MWZmY2Y2M2NkN2EzOTFlM2U2Zjc4MDk0Y2E0NDJjODAxNDQ0MDNjYjBhNWYwMGJmYzYxYWU4ODAiCiAKIFBLQ1M3IFBhcnNlIEZhaWx1cmUgSW52YWxpZCBBU04xOiBDaGFuZ2UgdGFnIDA2IHRvIDAyICM1MzkuMAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHBrY3M3X2FzbjFfZmFpbDoiMzA4MjA0OWQwNjA5MmE4NjQ4ODZmNzBkMDEwNzAyYTA4MjA0OGUzMDgyMDQ4YTAyMDEwMTMxMGYzMDBkMDIwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBiMDYwOTJhODY0ODg2ZjcwZDAxMDcwMTMxODIwNDY1MzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDViZWNkODcxOTVjMWRlZmY5MGMyNGM5MTI2OWI1NWIzZjA2OWJjMjI1YzMyNmMzMTRjMWE1MTc4NmZmZTE0YzgzMGJlNGU0YmM3M2NiYTM2Yzk3Njc3YjQ0MTY4Mjc5YmU5MWU3Y2RmN2MxOTM4NmFlMjE4NjI3MTlkMTNhM2EwZmZmMDgwM2Q0NjA5NjJmMmNkYTgzNzE0ODQ4NzMyNTJjM2Q3MDU0ZGI4MTQzZTJiMDgxYTM4MTZlZDA4MDRjYTUwOTlhZTVmZWNlODNkNWMyYzM3ODNiMTk4OGI0YjQ2ZGM5NGU1NTU4N2ExMDdlYTE1NDZiZjIyZDI4YTA5N2Y2NTJhNDA2NmRjMjk2NTI2OTA2OWFmMmY1MTc2YmI4Y2U5Y2E2ZDExZjk2NzU3ZjAzMjA0Zjc1NjcwMzU4N2QwMGFkNDI0Nzk2YzkyZmM3YWViNmY0OTQ0MzE5OTllZGEzMDk5MGU0ZjU3NzM2MzJlZDI1OGZlMDI3NjY3MzU5OWRhNmZjZTM1Y2RhZDc3MjZhMGJiMDI0Y2FkOTk2Yjg4ZTBjYjk4ODU0Y2ViNWMwYjZlYzc0OGQ5ZjljZTZhNmNkNDM3ODU4YmFjYjgxNDYxOGEyNzJmZjNhNDE1YzZlMDdmM2RiMDk4ODc3N2ZkZWM4NDVhOTdiZjdkMTAyZGQwMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMyMDIxNDU2NGQ1NTQwMjVhZjU5OWUzMjcwNzliMjcyMGVmMDBkZjM3Y2ZiN2MzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDA0NjA5OGRjNWYyYjk5ZTNiYzJlZDY2NDJkN2YwYTYxZWZhYmMxNWMzOGM3NjMzM2JjY2NlZWVlMzY5YTRmNGE1YmRkYThlYTU5MjY0MTI0ZTQyOWYwODYzMjY4M2RkYmExN2JiZjI2MmQ4MmI2YmVmYTNiNGUxNDgwMzc2YThjN2YzYzdkN2UyYTY3NzliYmYxODI2MmFhODU3ZGU4YzIwYTEyYjZhMmNlOGU0ZDdmMzFkZDFiMTk1MzkyY2Y2MTg1YWZjZTM0YWZlMDU4OTYwNTdiMzZlOWIxNzFiNmM2N2VkN2MyMjg2Y2JmYTgzZmY4YTE2N2M3YmM3MTA5YWVlN2Q3ZTE5MDliZDM4NGZiZmM2MTkzOGVmY2E1MWM4OTkzYzcxZGIzMTc3MzBmMTZlN2U3NzY4NjdhZTRmZGM1NjJkNmYxNWRlNTg1ZTdiOTRlZjQ5NmEzNjc2MzY3YTJjYmFhYjdiNjM2NjQ4YjAwNzZiYWQ1Y2RmMWUwOTc0MGVjNmE0NTFiZmY1MzRlZmEyMTUwOWYzYmE3N2I4MTAxYjkxZWE3ZTU1ZGRiZmUxNDAxNTE3MDY3ZDdiMDFhMmEwODc5ZjA4ODVjODk0YTg3Y2ZiNjhjNGQ3ZWU4OTA2MDQ4ODFhZWI5N2MyMmQxZjMzN2VmOTIzZTAzNWE2NDAwMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMzMDIxNDYyNDc3Mjk4NzU5ZThlMDQ3MThhZTU2MzE1NWYzNTIzY2ZiODRjZGIzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDZkMmNiYjM3ZmQxMjk1N2U1YTc0ODBjZTA0MzVlOGVmNjA3N2RlZjA4ZmYyNzA4NDRkZTI1MTZhNDc0MmYyMTFkOGM3NDY5MGJjMDk0OGUwOGEyOTZhYmJhOTI4NWY2YmIzMDViOTViN2Y5NDA4Y2U0NGU4Mzg4MGM3MTk0NDQ2NzJlYzk5NzQ2YmE3OGNjNGJkZTQ3NTMxOWQwMWJkZTc3YzQ5ZDU4ZDE2ZDNiMmU5MWMyZTYxZTgzMDNjYTNkN2VkYTM3OTdmZDhiMzVjYTcyYmIxNGIxNWEyNGI1NmJiNzBkYzEzNDg0NTY1ODA4MTEwZmY1ZGI1OGM1NmY3YTA0MzU2MDdlM2MzNTJmYmY0ZjU1MTA2ZjI5ODBmZDNjZDQyMzk3ZGJmNzEzN2VlN2YxZTMyY2Q4MGEzYjdhYjEyYjQ2YzE2OTIyMDI3OGQ3NzE3Yjc4YTNjNDVkNjM5NWExMzBhOGI1ODg0MWNiYzI5MGU0ZjgxN2RlM2E0ZmUxNmVjZDA3N2NhMzNhMGFhMjVlMjM1Y2M3ZjY2NTVhODBiYThhZWVjODc5MDViYjJhNzU0NTliN2JjYzVhMTMzZjI5OTM0OTNiNDFmZmNmNjNjZDdhMzkxZTNlNmY3ODA5NGNhNDQyYzgwMTQ0NDAzY2IwYTVmMDBiZmM2MWFlODgwIgogCiBQS0NTNyBQYXJzZSBGYWlsdXJlIEludmFsaWQgQVNOMTogQ2hhbmdlIGxlbmd0aCBmcm9tIDkgdG8gMTAgIzU0MC4wCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NgogcGtjczdfYXNuMV9mYWlsOiIzMDgyMDQ5ZDA2MDkyYTg2NDg4NmY3MGQwMTA3MDJhMDgyMDQ4ZTMwODIwNDhhMDIwMTAxMzEwZjMwMGQwNjBhNjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGIwNjA5MmE4NjQ4ODZmNzBkMDEwNzAxMzE4MjA0NjUzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwNWJlY2Q4NzE5NWMxZGVmZjkwYzI0YzkxMjY5YjU1YjNmMDY5YmMyMjVjMzI2YzMxNGMxYTUxNzg2ZmZlMTRjODMwYmU0ZTRiYzczY2JhMzZjOTc2NzdiNDQxNjgyNzliZTkxZTdjZGY3YzE5Mzg2YWUyMTg2MjcxOWQxM2EzYTBmZmYwODAzZDQ2MDk2MmYyY2RhODM3MTQ4NDg3MzI1MmMzZDcwNTRkYjgxNDNlMmIwODFhMzgxNmVkMDgwNGNhNTA5OWFlNWZlY2U4M2Q1YzJjMzc4M2IxOTg4YjRiNDZkYzk0ZTU1NTg3YTEwN2VhMTU0NmJmMjJkMjhhMDk3ZjY1MmE0MDY2ZGMyOTY1MjY5MDY5YWYyZjUxNzZiYjhjZTljYTZkMTFmOTY3NTdmMDMyMDRmNzU2NzAzNTg3ZDAwYWQ0MjQ3OTZjOTJmYzdhZWI2ZjQ5NDQzMTk5OWVkYTMwOTkwZTRmNTc3MzYzMmVkMjU4ZmUwMjc2NjczNTk5ZGE2ZmNlMzVjZGFkNzcyNmEwYmIwMjRjYWQ5OTZiODhlMGNiOTg4NTRjZWI1YzBiNmVjNzQ4ZDlmOWNlNmE2Y2Q0Mzc4NThiYWNiODE0NjE4YTI3MmZmM2E0MTVjNmUwN2YzZGIwOTg4Nzc3ZmRlYzg0NWE5N2JmN2QxMDJkZDAzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzIwMjE0NTY0ZDU1NDAyNWFmNTk5ZTMyNzA3OWIyNzIwZWYwMGRmMzdjZmI3YzMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwMDQ2MDk4ZGM1ZjJiOTllM2JjMmVkNjY0MmQ3ZjBhNjFlZmFiYzE1YzM4Yzc2MzMzYmNjY2VlZWUzNjlhNGY0YTViZGRhOGVhNTkyNjQxMjRlNDI5ZjA4NjMyNjgzZGRiYTE3YmJmMjYyZDgyYjZiZWZhM2I0ZTE0ODAzNzZhOGM3ZjNjN2Q3ZTJhNjc3OWJiZjE4MjYyYWE4NTdkZThjMjBhMTJiNmEyY2U4ZTRkN2YzMWRkMWIxOTUzOTJjZjYxODVhZmNlMzRhZmUwNTg5NjA1N2IzNmU5YjE3MWI2YzY3ZWQ3YzIyODZjYmZhODNmZjhhMTY3YzdiYzcxMDlhZWU3ZDdlMTkwOWJkMzg0ZmJmYzYxOTM4ZWZjYTUxYzg5OTNjNzFkYjMxNzczMGYxNmU3ZTc3Njg2N2FlNGZkYzU2MmQ2ZjE1ZGU1ODVlN2I5NGVmNDk2YTM2NzYzNjdhMmNiYWFiN2I2MzY2NDhiMDA3NmJhZDVjZGYxZTA5NzQwZWM2YTQ1MWJmZjUzNGVmYTIxNTA5ZjNiYTc3YjgxMDFiOTFlYTdlNTVkZGJmZTE0MDE1MTcwNjdkN2IwMWEyYTA4NzlmMDg4NWM4OTRhODdjZmI2OGM0ZDdlZTg5MDYwNDg4MWFlYjk3YzIyZDFmMzM3ZWY5MjNlMDM1YTY0MDAzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzMwMjE0NjI0NzcyOTg3NTllOGUwNDcxOGFlNTYzMTU1ZjM1MjNjZmI4NGNkYjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwNmQyY2JiMzdmZDEyOTU3ZTVhNzQ4MGNlMDQzNWU4ZWY2MDc3ZGVmMDhmZjI3MDg0NGRlMjUxNmE0NzQyZjIxMWQ4Yzc0NjkwYmMwOTQ4ZTA4YTI5NmFiYmE5Mjg1ZjZiYjMwNWI5NWI3Zjk0MDhjZTQ0ZTgzODgwYzcxOTQ0NDY3MmVjOTk3NDZiYTc4Y2M0YmRlNDc1MzE5ZDAxYmRlNzdjNDlkNThkMTZkM2IyZTkxYzJlNjFlODMwM2NhM2Q3ZWRhMzc5N2ZkOGIzNWNhNzJiYjE0YjE1YTI0YjU2YmI3MGRjMTM0ODQ1NjU4MDgxMTBmZjVkYjU4YzU2ZjdhMDQzNTYwN2UzYzM1MmZiZjRmNTUxMDZmMjk4MGZkM2NkNDIzOTdkYmY3MTM3ZWU3ZjFlMzJjZDgwYTNiN2FiMTJiNDZjMTY5MjIwMjc4ZDc3MTdiNzhhM2M0NWQ2Mzk1YTEzMGE4YjU4ODQxY2JjMjkwZTRmODE3ZGUzYTRmZTE2ZWNkMDc3Y2EzM2EwYWEyNWUyMzVjYzdmNjY1NWE4MGJhOGFlZWM4NzkwNWJiMmE3NTQ1OWI3YmNjNWExMzNmMjk5MzQ5M2I0MWZmY2Y2M2NkN2EzOTFlM2U2Zjc4MDk0Y2E0NDJjODAxNDQ0MDNjYjBhNWYwMGJmYzYxYWU4ODAiCiAKIFBLQ1M3IFBhcnNlIEZhaWx1cmUgSW52YWxpZCBBU04xOiBDaGFuZ2UgbGVuZ3RoIGZyb20gOSB0byA4ICM1NDEuMAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHBrY3M3X2FzbjFfZmFpbDoiMzA4MjA0OWQwNjA5MmE4NjQ4ODZmNzBkMDEwNzAyYTA4MjA0OGUzMDgyMDQ4YTAyMDEwMTMxMGYzMDBkMDYwODYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBiMDYwOTJhODY0ODg2ZjcwZDAxMDcwMTMxODIwNDY1MzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDViZWNkODcxOTVjMWRlZmY5MGMyNGM5MTI2OWI1NWIzZjA2OWJjMjI1YzMyNmMzMTRjMWE1MTc4NmZmZTE0YzgzMGJlNGU0YmM3M2NiYTM2Yzk3Njc3YjQ0MTY4Mjc5YmU5MWU3Y2RmN2MxOTM4NmFlMjE4NjI3MTlkMTNhM2EwZmZmMDgwM2Q0NjA5NjJmMmNkYTgzNzE0ODQ4NzMyNTJjM2Q3MDU0ZGI4MTQzZTJiMDgxYTM4MTZlZDA4MDRjYTUwOTlhZTVmZWNlODNkNWMyYzM3ODNiMTk4OGI0YjQ2ZGM5NGU1NTU4N2ExMDdlYTE1NDZiZjIyZDI4YTA5N2Y2NTJhNDA2NmRjMjk2NTI2OTA2OWFmMmY1MTc2YmI4Y2U5Y2E2ZDExZjk2NzU3ZjAzMjA0Zjc1NjcwMzU4N2QwMGFkNDI0Nzk2YzkyZmM3YWViNmY0OTQ0MzE5OTllZGEzMDk5MGU0ZjU3NzM2MzJlZDI1OGZlMDI3NjY3MzU5OWRhNmZjZTM1Y2RhZDc3MjZhMGJiMDI0Y2FkOTk2Yjg4ZTBjYjk4ODU0Y2ViNWMwYjZlYzc0OGQ5ZjljZTZhNmNkNDM3ODU4YmFjYjgxNDYxOGEyNzJmZjNhNDE1YzZlMDdmM2RiMDk4ODc3N2ZkZWM4NDVhOTdiZjdkMTAyZGQwMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMyMDIxNDU2NGQ1NTQwMjVhZjU5OWUzMjcwNzliMjcyMGVmMDBkZjM3Y2ZiN2MzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDA0NjA5OGRjNWYyYjk5ZTNiYzJlZDY2NDJkN2YwYTYxZWZhYmMxNWMzOGM3NjMzM2JjY2NlZWVlMzY5YTRmNGE1YmRkYThlYTU5MjY0MTI0ZTQyOWYwODYzMjY4M2RkYmExN2JiZjI2MmQ4MmI2YmVmYTNiNGUxNDgwMzc2YThjN2YzYzdkN2UyYTY3NzliYmYxODI2MmFhODU3ZGU4YzIwYTEyYjZhMmNlOGU0ZDdmMzFkZDFiMTk1MzkyY2Y2MTg1YWZjZTM0YWZlMDU4OTYwNTdiMzZlOWIxNzFiNmM2N2VkN2MyMjg2Y2JmYTgzZmY4YTE2N2M3YmM3MTA5YWVlN2Q3ZTE5MDliZDM4NGZiZmM2MTkzOGVmY2E1MWM4OTkzYzcxZGIzMTc3MzBmMTZlN2U3NzY4NjdhZTRmZGM1NjJkNmYxNWRlNTg1ZTdiOTRlZjQ5NmEzNjc2MzY3YTJjYmFhYjdiNjM2NjQ4YjAwNzZiYWQ1Y2RmMWUwOTc0MGVjNmE0NTFiZmY1MzRlZmEyMTUwOWYzYmE3N2I4MTAxYjkxZWE3ZTU1ZGRiZmUxNDAxNTE3MDY3ZDdiMDFhMmEwODc5ZjA4ODVjODk0YTg3Y2ZiNjhjNGQ3ZWU4OTA2MDQ4ODFhZWI5N2MyMmQxZjMzN2VmOTIzZTAzNWE2NDAwMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMzMDIxNDYyNDc3Mjk4NzU5ZThlMDQ3MThhZTU2MzE1NWYzNTIzY2ZiODRjZGIzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDZkMmNiYjM3ZmQxMjk1N2U1YTc0ODBjZTA0MzVlOGVmNjA3N2RlZjA4ZmYyNzA4NDRkZTI1MTZhNDc0MmYyMTFkOGM3NDY5MGJjMDk0OGUwOGEyOTZhYmJhOTI4NWY2YmIzMDViOTViN2Y5NDA4Y2U0NGU4Mzg4MGM3MTk0NDQ2NzJlYzk5NzQ2YmE3OGNjNGJkZTQ3NTMxOWQwMWJkZTc3YzQ5ZDU4ZDE2ZDNiMmU5MWMyZTYxZTgzMDNjYTNkN2VkYTM3OTdmZDhiMzVjYTcyYmIxNGIxNWEyNGI1NmJiNzBkYzEzNDg0NTY1ODA4MTEwZmY1ZGI1OGM1NmY3YTA0MzU2MDdlM2MzNTJmYmY0ZjU1MTA2ZjI5ODBmZDNjZDQyMzk3ZGJmNzEzN2VlN2YxZTMyY2Q4MGEzYjdhYjEyYjQ2YzE2OTIyMDI3OGQ3NzE3Yjc4YTNjNDVkNjM5NWExMzBhOGI1ODg0MWNiYzI5MGU0ZjgxN2RlM2E0ZmUxNmVjZDA3N2NhMzNhMGFhMjVlMjM1Y2M3ZjY2NTVhODBiYThhZWVjODc5MDViYjJhNzU0NTliN2JjYzVhMTMzZjI5OTM0OTNiNDFmZmNmNjNjZDdhMzkxZTNlNmY3ODA5NGNhNDQyYzgwMTQ0NDAzY2IwYTVmMDBiZmM2MWFlODgwIgogCiBQS0NTNyBQYXJzZSBGYWlsdXJlIEludmFsaWQgQVNOMTogQ2hhbmdlIHRhZyAwNSB0byAwMiAjNTQyLjAKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBwa2NzN19hc24xX2ZhaWw6IjMwODIwNDlkMDYwOTJhODY0ODg2ZjcwZDAxMDcwMmEwODIwNDhlMzA4MjA0OGEwMjAxMDEzMTBmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwMjAwMzAwYjA2MDkyYTg2NDg4NmY3MGQwMTA3MDEzMTgyMDQ2NTMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTAyMTQ3YmRlZGRkMjQ0NGNkMWNkZmU1YzQxYTgxMDJjODliN2RmMmU2Y2JmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDA1YmVjZDg3MTk1YzFkZWZmOTBjMjRjOTEyNjliNTViM2YwNjliYzIyNWMzMjZjMzE0YzFhNTE3ODZmZmUxNGM4MzBiZTRlNGJjNzNjYmEzNmM5NzY3N2I0NDE2ODI3OWJlOTFlN2NkZjdjMTkzODZhZTIxODYyNzE5ZDEzYTNhMGZmZjA4MDNkNDYwOTYyZjJjZGE4MzcxNDg0ODczMjUyYzNkNzA1NGRiODE0M2UyYjA4MWEzODE2ZWQwODA0Y2E1MDk5YWU1ZmVjZTgzZDVjMmMzNzgzYjE5ODhiNGI0NmRjOTRlNTU1ODdhMTA3ZWExNTQ2YmYyMmQyOGEwOTdmNjUyYTQwNjZkYzI5NjUyNjkwNjlhZjJmNTE3NmJiOGNlOWNhNmQxMWY5Njc1N2YwMzIwNGY3NTY3MDM1ODdkMDBhZDQyNDc5NmM5MmZjN2FlYjZmNDk0NDMxOTk5ZWRhMzA5OTBlNGY1NzczNjMyZWQyNThmZTAyNzY2NzM1OTlkYTZmY2UzNWNkYWQ3NzI2YTBiYjAyNGNhZDk5NmI4OGUwY2I5ODg1NGNlYjVjMGI2ZWM3NDhkOWY5Y2U2YTZjZDQzNzg1OGJhY2I4MTQ2MThhMjcyZmYzYTQxNWM2ZTA3ZjNkYjA5ODg3NzdmZGVjODQ1YTk3YmY3ZDEwMmRkMDMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMjAyMTQ1NjRkNTU0MDI1YWY1OTllMzI3MDc5YjI3MjBlZjAwZGYzN2NmYjdjMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDAwNDYwOThkYzVmMmI5OWUzYmMyZWQ2NjQyZDdmMGE2MWVmYWJjMTVjMzhjNzYzMzNiY2NjZWVlZTM2OWE0ZjRhNWJkZGE4ZWE1OTI2NDEyNGU0MjlmMDg2MzI2ODNkZGJhMTdiYmYyNjJkODJiNmJlZmEzYjRlMTQ4MDM3NmE4YzdmM2M3ZDdlMmE2Nzc5YmJmMTgyNjJhYTg1N2RlOGMyMGExMmI2YTJjZThlNGQ3ZjMxZGQxYjE5NTM5MmNmNjE4NWFmY2UzNGFmZTA1ODk2MDU3YjM2ZTliMTcxYjZjNjdlZDdjMjI4NmNiZmE4M2ZmOGExNjdjN2JjNzEwOWFlZTdkN2UxOTA5YmQzODRmYmZjNjE5MzhlZmNhNTFjODk5M2M3MWRiMzE3NzMwZjE2ZTdlNzc2ODY3YWU0ZmRjNTYyZDZmMTVkZTU4NWU3Yjk0ZWY0OTZhMzY3NjM2N2EyY2JhYWI3YjYzNjY0OGIwMDc2YmFkNWNkZjFlMDk3NDBlYzZhNDUxYmZmNTM0ZWZhMjE1MDlmM2JhNzdiODEwMWI5MWVhN2U1NWRkYmZlMTQwMTUxNzA2N2Q3YjAxYTJhMDg3OWYwODg1Yzg5NGE4N2NmYjY4YzRkN2VlODkwNjA0ODgxYWViOTdjMjJkMWYzMzdlZjkyM2UwMzVhNjQwMDMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMzAyMTQ2MjQ3NzI5ODc1OWU4ZTA0NzE4YWU1NjMxNTVmMzUyM2NmYjg0Y2RiMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDA2ZDJjYmIzN2ZkMTI5NTdlNWE3NDgwY2UwNDM1ZThlZjYwNzdkZWYwOGZmMjcwODQ0ZGUyNTE2YTQ3NDJmMjExZDhjNzQ2OTBiYzA5NDhlMDhhMjk2YWJiYTkyODVmNmJiMzA1Yjk1YjdmOTQwOGNlNDRlODM4ODBjNzE5NDQ0NjcyZWM5OTc0NmJhNzhjYzRiZGU0NzUzMTlkMDFiZGU3N2M0OWQ1OGQxNmQzYjJlOTFjMmU2MWU4MzAzY2EzZDdlZGEzNzk3ZmQ4YjM1Y2E3MmJiMTRiMTVhMjRiNTZiYjcwZGMxMzQ4NDU2NTgwODExMGZmNWRiNThjNTZmN2EwNDM1NjA3ZTNjMzUyZmJmNGY1NTEwNmYyOTgwZmQzY2Q0MjM5N2RiZjcxMzdlZTdmMWUzMmNkODBhM2I3YWIxMmI0NmMxNjkyMjAyNzhkNzcxN2I3OGEzYzQ1ZDYzOTVhMTMwYThiNTg4NDFjYmMyOTBlNGY4MTdkZTNhNGZlMTZlY2QwNzdjYTMzYTBhYTI1ZTIzNWNjN2Y2NjU1YTgwYmE4YWVlYzg3OTA1YmIyYTc1NDU5YjdiY2M1YTEzM2YyOTkzNDkzYjQxZmZjZjYzY2Q3YTM5MWUzZTZmNzgwOTRjYTQ0MmM4MDE0NDQwM2NiMGE1ZjAwYmZjNjFhZTg4MCIKIAogUEtDUzcgUGFyc2UgRmFpbHVyZSBJbnZhbGlkIEFTTjE6IENoYW5nZSBsZW5ndGggZnJvbSAwIHRvIDEgIzU0My4wCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NgogcGtjczdfYXNuMV9mYWlsOiIzMDgyMDQ5ZDA2MDkyYTg2NDg4NmY3MGQwMTA3MDJhMDgyMDQ4ZTMwODIwNDhhMDIwMTAxMzEwZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMTMwMGIwNjA5MmE4NjQ4ODZmNzBkMDEwNzAxMzE4MjA0NjUzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwNWJlY2Q4NzE5NWMxZGVmZjkwYzI0YzkxMjY5YjU1YjNmMDY5YmMyMjVjMzI2YzMxNGMxYTUxNzg2ZmZlMTRjODMwYmU0ZTRiYzczY2JhMzZjOTc2NzdiNDQxNjgyNzliZTkxZTdjZGY3YzE5Mzg2YWUyMTg2MjcxOWQxM2EzYTBmZmYwODAzZDQ2MDk2MmYyY2RhODM3MTQ4NDg3MzI1MmMzZDcwNTRkYjgxNDNlMmIwODFhMzgxNmVkMDgwNGNhNTA5OWFlNWZlY2U4M2Q1YzJjMzc4M2IxOTg4YjRiNDZkYzk0ZTU1NTg3YTEwN2VhMTU0NmJmMjJkMjhhMDk3ZjY1MmE0MDY2ZGMyOTY1MjY5MDY5YWYyZjUxNzZiYjhjZTljYTZkMTFmOTY3NTdmMDMyMDRmNzU2NzAzNTg3ZDAwYWQ0MjQ3OTZjOTJmYzdhZWI2ZjQ5NDQzMTk5OWVkYTMwOTkwZTRmNTc3MzYzMmVkMjU4ZmUwMjc2NjczNTk5ZGE2ZmNlMzVjZGFkNzcyNmEwYmIwMjRjYWQ5OTZiODhlMGNiOTg4NTRjZWI1YzBiNmVjNzQ4ZDlmOWNlNmE2Y2Q0Mzc4NThiYWNiODE0NjE4YTI3MmZmM2E0MTVjNmUwN2YzZGIwOTg4Nzc3ZmRlYzg0NWE5N2JmN2QxMDJkZDAzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzIwMjE0NTY0ZDU1NDAyNWFmNTk5ZTMyNzA3OWIyNzIwZWYwMGRmMzdjZmI3YzMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwMDQ2MDk4ZGM1ZjJiOTllM2JjMmVkNjY0MmQ3ZjBhNjFlZmFiYzE1YzM4Yzc2MzMzYmNjY2VlZWUzNjlhNGY0YTViZGRhOGVhNTkyNjQxMjRlNDI5ZjA4NjMyNjgzZGRiYTE3YmJmMjYyZDgyYjZiZWZhM2I0ZTE0ODAzNzZhOGM3ZjNjN2Q3ZTJhNjc3OWJiZjE4MjYyYWE4NTdkZThjMjBhMTJiNmEyY2U4ZTRkN2YzMWRkMWIxOTUzOTJjZjYxODVhZmNlMzRhZmUwNTg5NjA1N2IzNmU5YjE3MWI2YzY3ZWQ3YzIyODZjYmZhODNmZjhhMTY3YzdiYzcxMDlhZWU3ZDdlMTkwOWJkMzg0ZmJmYzYxOTM4ZWZjYTUxYzg5OTNjNzFkYjMxNzczMGYxNmU3ZTc3Njg2N2FlNGZkYzU2MmQ2ZjE1ZGU1ODVlN2I5NGVmNDk2YTM2NzYzNjdhMmNiYWFiN2I2MzY2NDhiMDA3NmJhZDVjZGYxZTA5NzQwZWM2YTQ1MWJmZjUzNGVmYTIxNTA5ZjNiYTc3YjgxMDFiOTFlYTdlNTVkZGJmZTE0MDE1MTcwNjdkN2IwMWEyYTA4NzlmMDg4NWM4OTRhODdjZmI2OGM0ZDdlZTg5MDYwNDg4MWFlYjk3YzIyZDFmMzM3ZWY5MjNlMDM1YTY0MDAzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzMwMjE0NjI0NzcyOTg3NTllOGUwNDcxOGFlNTYzMTU1ZjM1MjNjZmI4NGNkYjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwNmQyY2JiMzdmZDEyOTU3ZTVhNzQ4MGNlMDQzNWU4ZWY2MDc3ZGVmMDhmZjI3MDg0NGRlMjUxNmE0NzQyZjIxMWQ4Yzc0NjkwYmMwOTQ4ZTA4YTI5NmFiYmE5Mjg1ZjZiYjMwNWI5NWI3Zjk0MDhjZTQ0ZTgzODgwYzcxOTQ0NDY3MmVjOTk3NDZiYTc4Y2M0YmRlNDc1MzE5ZDAxYmRlNzdjNDlkNThkMTZkM2IyZTkxYzJlNjFlODMwM2NhM2Q3ZWRhMzc5N2ZkOGIzNWNhNzJiYjE0YjE1YTI0YjU2YmI3MGRjMTM0ODQ1NjU4MDgxMTBmZjVkYjU4YzU2ZjdhMDQzNTYwN2UzYzM1MmZiZjRmNTUxMDZmMjk4MGZkM2NkNDIzOTdkYmY3MTM3ZWU3ZjFlMzJjZDgwYTNiN2FiMTJiNDZjMTY5MjIwMjc4ZDc3MTdiNzhhM2M0NWQ2Mzk1YTEzMGE4YjU4ODQxY2JjMjkwZTRmODE3ZGUzYTRmZTE2ZWNkMDc3Y2EzM2EwYWEyNWUyMzVjYzdmNjY1NWE4MGJhOGFlZWM4NzkwNWJiMmE3NTQ1OWI3YmNjNWExMzNmMjk5MzQ5M2I0MWZmY2Y2M2NkN2EzOTFlM2U2Zjc4MDk0Y2E0NDJjODAxNDQ0MDNjYjBhNWYwMGJmYzYxYWU4ODAiCiAKIFBLQ1M3IFBhcnNlIEZhaWx1cmUgSW52YWxpZCBBU04xOiBDaGFuZ2UgdGFnIDMwIHRvIDAyICM1NDQuMAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHBrY3M3X2FzbjFfZmFpbDoiMzA4MjA0OWQwNjA5MmE4NjQ4ODZmNzBkMDEwNzAyYTA4MjA0OGUzMDgyMDQ4YTAyMDEwMTMxMGYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAwMjBiMDYwOTJhODY0ODg2ZjcwZDAxMDcwMTMxODIwNDY1MzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDViZWNkODcxOTVjMWRlZmY5MGMyNGM5MTI2OWI1NWIzZjA2OWJjMjI1YzMyNmMzMTRjMWE1MTc4NmZmZTE0YzgzMGJlNGU0YmM3M2NiYTM2Yzk3Njc3YjQ0MTY4Mjc5YmU5MWU3Y2RmN2MxOTM4NmFlMjE4NjI3MTlkMTNhM2EwZmZmMDgwM2Q0NjA5NjJmMmNkYTgzNzE0ODQ4NzMyNTJjM2Q3MDU0ZGI4MTQzZTJiMDgxYTM4MTZlZDA4MDRjYTUwOTlhZTVmZWNlODNkNWMyYzM3ODNiMTk4OGI0YjQ2ZGM5NGU1NTU4N2ExMDdlYTE1NDZiZjIyZDI4YTA5N2Y2NTJhNDA2NmRjMjk2NTI2OTA2OWFmMmY1MTc2YmI4Y2U5Y2E2ZDExZjk2NzU3ZjAzMjA0Zjc1NjcwMzU4N2QwMGFkNDI0Nzk2YzkyZmM3YWViNmY0OTQ0MzE5OTllZGEzMDk5MGU0ZjU3NzM2MzJlZDI1OGZlMDI3NjY3MzU5OWRhNmZjZTM1Y2RhZDc3MjZhMGJiMDI0Y2FkOTk2Yjg4ZTBjYjk4ODU0Y2ViNWMwYjZlYzc0OGQ5ZjljZTZhNmNkNDM3ODU4YmFjYjgxNDYxOGEyNzJmZjNhNDE1YzZlMDdmM2RiMDk4ODc3N2ZkZWM4NDVhOTdiZjdkMTAyZGQwMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMyMDIxNDU2NGQ1NTQwMjVhZjU5OWUzMjcwNzliMjcyMGVmMDBkZjM3Y2ZiN2MzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDA0NjA5OGRjNWYyYjk5ZTNiYzJlZDY2NDJkN2YwYTYxZWZhYmMxNWMzOGM3NjMzM2JjY2NlZWVlMzY5YTRmNGE1YmRkYThlYTU5MjY0MTI0ZTQyOWYwODYzMjY4M2RkYmExN2JiZjI2MmQ4MmI2YmVmYTNiNGUxNDgwMzc2YThjN2YzYzdkN2UyYTY3NzliYmYxODI2MmFhODU3ZGU4YzIwYTEyYjZhMmNlOGU0ZDdmMzFkZDFiMTk1MzkyY2Y2MTg1YWZjZTM0YWZlMDU4OTYwNTdiMzZlOWIxNzFiNmM2N2VkN2MyMjg2Y2JmYTgzZmY4YTE2N2M3YmM3MTA5YWVlN2Q3ZTE5MDliZDM4NGZiZmM2MTkzOGVmY2E1MWM4OTkzYzcxZGIzMTc3MzBmMTZlN2U3NzY4NjdhZTRmZGM1NjJkNmYxNWRlNTg1ZTdiOTRlZjQ5NmEzNjc2MzY3YTJjYmFhYjdiNjM2NjQ4YjAwNzZiYWQ1Y2RmMWUwOTc0MGVjNmE0NTFiZmY1MzRlZmEyMTUwOWYzYmE3N2I4MTAxYjkxZWE3ZTU1ZGRiZmUxNDAxNTE3MDY3ZDdiMDFhMmEwODc5ZjA4ODVjODk0YTg3Y2ZiNjhjNGQ3ZWU4OTA2MDQ4ODFhZWI5N2MyMmQxZjMzN2VmOTIzZTAzNWE2NDAwMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMzMDIxNDYyNDc3Mjk4NzU5ZThlMDQ3MThhZTU2MzE1NWYzNTIzY2ZiODRjZGIzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDZkMmNiYjM3ZmQxMjk1N2U1YTc0ODBjZTA0MzVlOGVmNjA3N2RlZjA4ZmYyNzA4NDRkZTI1MTZhNDc0MmYyMTFkOGM3NDY5MGJjMDk0OGUwOGEyOTZhYmJhOTI4NWY2YmIzMDViOTViN2Y5NDA4Y2U0NGU4Mzg4MGM3MTk0NDQ2NzJlYzk5NzQ2YmE3OGNjNGJkZTQ3NTMxOWQwMWJkZTc3YzQ5ZDU4ZDE2ZDNiMmU5MWMyZTYxZTgzMDNjYTNkN2VkYTM3OTdmZDhiMzVjYTcyYmIxNGIxNWEyNGI1NmJiNzBkYzEzNDg0NTY1ODA4MTEwZmY1ZGI1OGM1NmY3YTA0MzU2MDdlM2MzNTJmYmY0ZjU1MTA2ZjI5ODBmZDNjZDQyMzk3ZGJmNzEzN2VlN2YxZTMyY2Q4MGEzYjdhYjEyYjQ2YzE2OTIyMDI3OGQ3NzE3Yjc4YTNjNDVkNjM5NWExMzBhOGI1ODg0MWNiYzI5MGU0ZjgxN2RlM2E0ZmUxNmVjZDA3N2NhMzNhMGFhMjVlMjM1Y2M3ZjY2NTVhODBiYThhZWVjODc5MDViYjJhNzU0NTliN2JjYzVhMTMzZjI5OTM0OTNiNDFmZmNmNjNjZDdhMzkxZTNlNmY3ODA5NGNhNDQyYzgwMTQ0NDAzY2IwYTVmMDBiZmM2MWFlODgwIgogCiBQS0NTNyBQYXJzZSBGYWlsdXJlIEludmFsaWQgQVNOMTogQ2hhbmdlIGxlbmd0aCBmcm9tIDExIHRvIDEyICM1NDUuMAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHBrY3M3X2FzbjFfZmFpbDoiMzA4MjA0OWQwNjA5MmE4NjQ4ODZmNzBkMDEwNzAyYTA4MjA0OGUzMDgyMDQ4YTAyMDEwMTMxMGYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBjMDYwOTJhODY0ODg2ZjcwZDAxMDcwMTMxODIwNDY1MzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDViZWNkODcxOTVjMWRlZmY5MGMyNGM5MTI2OWI1NWIzZjA2OWJjMjI1YzMyNmMzMTRjMWE1MTc4NmZmZTE0YzgzMGJlNGU0YmM3M2NiYTM2Yzk3Njc3YjQ0MTY4Mjc5YmU5MWU3Y2RmN2MxOTM4NmFlMjE4NjI3MTlkMTNhM2EwZmZmMDgwM2Q0NjA5NjJmMmNkYTgzNzE0ODQ4NzMyNTJjM2Q3MDU0ZGI4MTQzZTJiMDgxYTM4MTZlZDA4MDRjYTUwOTlhZTVmZWNlODNkNWMyYzM3ODNiMTk4OGI0YjQ2ZGM5NGU1NTU4N2ExMDdlYTE1NDZiZjIyZDI4YTA5N2Y2NTJhNDA2NmRjMjk2NTI2OTA2OWFmMmY1MTc2YmI4Y2U5Y2E2ZDExZjk2NzU3ZjAzMjA0Zjc1NjcwMzU4N2QwMGFkNDI0Nzk2YzkyZmM3YWViNmY0OTQ0MzE5OTllZGEzMDk5MGU0ZjU3NzM2MzJlZDI1OGZlMDI3NjY3MzU5OWRhNmZjZTM1Y2RhZDc3MjZhMGJiMDI0Y2FkOTk2Yjg4ZTBjYjk4ODU0Y2ViNWMwYjZlYzc0OGQ5ZjljZTZhNmNkNDM3ODU4YmFjYjgxNDYxOGEyNzJmZjNhNDE1YzZlMDdmM2RiMDk4ODc3N2ZkZWM4NDVhOTdiZjdkMTAyZGQwMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMyMDIxNDU2NGQ1NTQwMjVhZjU5OWUzMjcwNzliMjcyMGVmMDBkZjM3Y2ZiN2MzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDA0NjA5OGRjNWYyYjk5ZTNiYzJlZDY2NDJkN2YwYTYxZWZhYmMxNWMzOGM3NjMzM2JjY2NlZWVlMzY5YTRmNGE1YmRkYThlYTU5MjY0MTI0ZTQyOWYwODYzMjY4M2RkYmExN2JiZjI2MmQ4MmI2YmVmYTNiNGUxNDgwMzc2YThjN2YzYzdkN2UyYTY3NzliYmYxODI2MmFhODU3ZGU4YzIwYTEyYjZhMmNlOGU0ZDdmMzFkZDFiMTk1MzkyY2Y2MTg1YWZjZTM0YWZlMDU4OTYwNTdiMzZlOWIxNzFiNmM2N2VkN2MyMjg2Y2JmYTgzZmY4YTE2N2M3YmM3MTA5YWVlN2Q3ZTE5MDliZDM4NGZiZmM2MTkzOGVmY2E1MWM4OTkzYzcxZGIzMTc3MzBmMTZlN2U3NzY4NjdhZTRmZGM1NjJkNmYxNWRlNTg1ZTdiOTRlZjQ5NmEzNjc2MzY3YTJjYmFhYjdiNjM2NjQ4YjAwNzZiYWQ1Y2RmMWUwOTc0MGVjNmE0NTFiZmY1MzRlZmEyMTUwOWYzYmE3N2I4MTAxYjkxZWE3ZTU1ZGRiZmUxNDAxNTE3MDY3ZDdiMDFhMmEwODc5ZjA4ODVjODk0YTg3Y2ZiNjhjNGQ3ZWU4OTA2MDQ4ODFhZWI5N2MyMmQxZjMzN2VmOTIzZTAzNWE2NDAwMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMzMDIxNDYyNDc3Mjk4NzU5ZThlMDQ3MThhZTU2MzE1NWYzNTIzY2ZiODRjZGIzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDZkMmNiYjM3ZmQxMjk1N2U1YTc0ODBjZTA0MzVlOGVmNjA3N2RlZjA4ZmYyNzA4NDRkZTI1MTZhNDc0MmYyMTFkOGM3NDY5MGJjMDk0OGUwOGEyOTZhYmJhOTI4NWY2YmIzMDViOTViN2Y5NDA4Y2U0NGU4Mzg4MGM3MTk0NDQ2NzJlYzk5NzQ2YmE3OGNjNGJkZTQ3NTMxOWQwMWJkZTc3YzQ5ZDU4ZDE2ZDNiMmU5MWMyZTYxZTgzMDNjYTNkN2VkYTM3OTdmZDhiMzVjYTcyYmIxNGIxNWEyNGI1NmJiNzBkYzEzNDg0NTY1ODA4MTEwZmY1ZGI1OGM1NmY3YTA0MzU2MDdlM2MzNTJmYmY0ZjU1MTA2ZjI5ODBmZDNjZDQyMzk3ZGJmNzEzN2VlN2YxZTMyY2Q4MGEzYjdhYjEyYjQ2YzE2OTIyMDI3OGQ3NzE3Yjc4YTNjNDVkNjM5NWExMzBhOGI1ODg0MWNiYzI5MGU0ZjgxN2RlM2E0ZmUxNmVjZDA3N2NhMzNhMGFhMjVlMjM1Y2M3ZjY2NTVhODBiYThhZWVjODc5MDViYjJhNzU0NTliN2JjYzVhMTMzZjI5OTM0OTNiNDFmZmNmNjNjZDdhMzkxZTNlNmY3ODA5NGNhNDQyYzgwMTQ0NDAzY2IwYTVmMDBiZmM2MWFlODgwIgogCiBQS0NTNyBQYXJzZSBGYWlsdXJlIEludmFsaWQgQVNOMTogQ2hhbmdlIGNvbnRlbnRzIG9mIHRhZyAzMCB0byBjb250YWluIG9uZSB1bmFjY291bnRlZCBleHRyYSBieXRlICM1NDYuMAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHBrY3M3X2FzbjFfZmFpbDoiMzA4MjA0OWQwNjA5MmE4NjQ4ODZmNzBkMDEwNzAyYTA4MjA0OGUzMDgyMDQ4YTAyMDEwMTMxMGYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBjMDYwOTJhODY0ODg2ZjcwZDAxMDcwMTAwMzE4MjA0NjUzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwNWJlY2Q4NzE5NWMxZGVmZjkwYzI0YzkxMjY5YjU1YjNmMDY5YmMyMjVjMzI2YzMxNGMxYTUxNzg2ZmZlMTRjODMwYmU0ZTRiYzczY2JhMzZjOTc2NzdiNDQxNjgyNzliZTkxZTdjZGY3YzE5Mzg2YWUyMTg2MjcxOWQxM2EzYTBmZmYwODAzZDQ2MDk2MmYyY2RhODM3MTQ4NDg3MzI1MmMzZDcwNTRkYjgxNDNlMmIwODFhMzgxNmVkMDgwNGNhNTA5OWFlNWZlY2U4M2Q1YzJjMzc4M2IxOTg4YjRiNDZkYzk0ZTU1NTg3YTEwN2VhMTU0NmJmMjJkMjhhMDk3ZjY1MmE0MDY2ZGMyOTY1MjY5MDY5YWYyZjUxNzZiYjhjZTljYTZkMTFmOTY3NTdmMDMyMDRmNzU2NzAzNTg3ZDAwYWQ0MjQ3OTZjOTJmYzdhZWI2ZjQ5NDQzMTk5OWVkYTMwOTkwZTRmNTc3MzYzMmVkMjU4ZmUwMjc2NjczNTk5ZGE2ZmNlMzVjZGFkNzcyNmEwYmIwMjRjYWQ5OTZiODhlMGNiOTg4NTRjZWI1YzBiNmVjNzQ4ZDlmOWNlNmE2Y2Q0Mzc4NThiYWNiODE0NjE4YTI3MmZmM2E0MTVjNmUwN2YzZGIwOTg4Nzc3ZmRlYzg0NWE5N2JmN2QxMDJkZDAzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzIwMjE0NTY0ZDU1NDAyNWFmNTk5ZTMyNzA3OWIyNzIwZWYwMGRmMzdjZmI3YzMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwMDQ2MDk4ZGM1ZjJiOTllM2JjMmVkNjY0MmQ3ZjBhNjFlZmFiYzE1YzM4Yzc2MzMzYmNjY2VlZWUzNjlhNGY0YTViZGRhOGVhNTkyNjQxMjRlNDI5ZjA4NjMyNjgzZGRiYTE3YmJmMjYyZDgyYjZiZWZhM2I0ZTE0ODAzNzZhOGM3ZjNjN2Q3ZTJhNjc3OWJiZjE4MjYyYWE4NTdkZThjMjBhMTJiNmEyY2U4ZTRkN2YzMWRkMWIxOTUzOTJjZjYxODVhZmNlMzRhZmUwNTg5NjA1N2IzNmU5YjE3MWI2YzY3ZWQ3YzIyODZjYmZhODNmZjhhMTY3YzdiYzcxMDlhZWU3ZDdlMTkwOWJkMzg0ZmJmYzYxOTM4ZWZjYTUxYzg5OTNjNzFkYjMxNzczMGYxNmU3ZTc3Njg2N2FlNGZkYzU2MmQ2ZjE1ZGU1ODVlN2I5NGVmNDk2YTM2NzYzNjdhMmNiYWFiN2I2MzY2NDhiMDA3NmJhZDVjZGYxZTA5NzQwZWM2YTQ1MWJmZjUzNGVmYTIxNTA5ZjNiYTc3YjgxMDFiOTFlYTdlNTVkZGJmZTE0MDE1MTcwNjdkN2IwMWEyYTA4NzlmMDg4NWM4OTRhODdjZmI2OGM0ZDdlZTg5MDYwNDg4MWFlYjk3YzIyZDFmMzM3ZWY5MjNlMDM1YTY0MDAzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzMwMjE0NjI0NzcyOTg3NTllOGUwNDcxOGFlNTYzMTU1ZjM1MjNjZmI4NGNkYjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwNmQyY2JiMzdmZDEyOTU3ZTVhNzQ4MGNlMDQzNWU4ZWY2MDc3ZGVmMDhmZjI3MDg0NGRlMjUxNmE0NzQyZjIxMWQ4Yzc0NjkwYmMwOTQ4ZTA4YTI5NmFiYmE5Mjg1ZjZiYjMwNWI5NWI3Zjk0MDhjZTQ0ZTgzODgwYzcxOTQ0NDY3MmVjOTk3NDZiYTc4Y2M0YmRlNDc1MzE5ZDAxYmRlNzdjNDlkNThkMTZkM2IyZTkxYzJlNjFlODMwM2NhM2Q3ZWRhMzc5N2ZkOGIzNWNhNzJiYjE0YjE1YTI0YjU2YmI3MGRjMTM0ODQ1NjU4MDgxMTBmZjVkYjU4YzU2ZjdhMDQzNTYwN2UzYzM1MmZiZjRmNTUxMDZmMjk4MGZkM2NkNDIzOTdkYmY3MTM3ZWU3ZjFlMzJjZDgwYTNiN2FiMTJiNDZjMTY5MjIwMjc4ZDc3MTdiNzhhM2M0NWQ2Mzk1YTEzMGE4YjU4ODQxY2JjMjkwZTRmODE3ZGUzYTRmZTE2ZWNkMDc3Y2EzM2EwYWEyNWUyMzVjYzdmNjY1NWE4MGJhOGFlZWM4NzkwNWJiMmE3NTQ1OWI3YmNjNWExMzNmMjk5MzQ5M2I0MWZmY2Y2M2NkN2EzOTFlM2U2Zjc4MDk0Y2E0NDJjODAxNDQ0MDNjYjBhNWYwMGJmYzYxYWU4ODAiCiAKIFBLQ1M3IFBhcnNlIEZhaWx1cmUgSW52YWxpZCBBU04xOiBDaGFuZ2UgbGVuZ3RoIGZyb20gMTEgdG8gMTAgIzU0Ny4wCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NgogcGtjczdfYXNuMV9mYWlsOiIzMDgyMDQ5ZDA2MDkyYTg2NDg4NmY3MGQwMTA3MDJhMDgyMDQ4ZTMwODIwNDhhMDIwMTAxMzEwZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGEwNjA5MmE4NjQ4ODZmNzBkMDEwNzAxMzE4MjA0NjUzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwNWJlY2Q4NzE5NWMxZGVmZjkwYzI0YzkxMjY5YjU1YjNmMDY5YmMyMjVjMzI2YzMxNGMxYTUxNzg2ZmZlMTRjODMwYmU0ZTRiYzczY2JhMzZjOTc2NzdiNDQxNjgyNzliZTkxZTdjZGY3YzE5Mzg2YWUyMTg2MjcxOWQxM2EzYTBmZmYwODAzZDQ2MDk2MmYyY2RhODM3MTQ4NDg3MzI1MmMzZDcwNTRkYjgxNDNlMmIwODFhMzgxNmVkMDgwNGNhNTA5OWFlNWZlY2U4M2Q1YzJjMzc4M2IxOTg4YjRiNDZkYzk0ZTU1NTg3YTEwN2VhMTU0NmJmMjJkMjhhMDk3ZjY1MmE0MDY2ZGMyOTY1MjY5MDY5YWYyZjUxNzZiYjhjZTljYTZkMTFmOTY3NTdmMDMyMDRmNzU2NzAzNTg3ZDAwYWQ0MjQ3OTZjOTJmYzdhZWI2ZjQ5NDQzMTk5OWVkYTMwOTkwZTRmNTc3MzYzMmVkMjU4ZmUwMjc2NjczNTk5ZGE2ZmNlMzVjZGFkNzcyNmEwYmIwMjRjYWQ5OTZiODhlMGNiOTg4NTRjZWI1YzBiNmVjNzQ4ZDlmOWNlNmE2Y2Q0Mzc4NThiYWNiODE0NjE4YTI3MmZmM2E0MTVjNmUwN2YzZGIwOTg4Nzc3ZmRlYzg0NWE5N2JmN2QxMDJkZDAzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzIwMjE0NTY0ZDU1NDAyNWFmNTk5ZTMyNzA3OWIyNzIwZWYwMGRmMzdjZmI3YzMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwMDQ2MDk4ZGM1ZjJiOTllM2JjMmVkNjY0MmQ3ZjBhNjFlZmFiYzE1YzM4Yzc2MzMzYmNjY2VlZWUzNjlhNGY0YTViZGRhOGVhNTkyNjQxMjRlNDI5ZjA4NjMyNjgzZGRiYTE3YmJmMjYyZDgyYjZiZWZhM2I0ZTE0ODAzNzZhOGM3ZjNjN2Q3ZTJhNjc3OWJiZjE4MjYyYWE4NTdkZThjMjBhMTJiNmEyY2U4ZTRkN2YzMWRkMWIxOTUzOTJjZjYxODVhZmNlMzRhZmUwNTg5NjA1N2IzNmU5YjE3MWI2YzY3ZWQ3YzIyODZjYmZhODNmZjhhMTY3YzdiYzcxMDlhZWU3ZDdlMTkwOWJkMzg0ZmJmYzYxOTM4ZWZjYTUxYzg5OTNjNzFkYjMxNzczMGYxNmU3ZTc3Njg2N2FlNGZkYzU2MmQ2ZjE1ZGU1ODVlN2I5NGVmNDk2YTM2NzYzNjdhMmNiYWFiN2I2MzY2NDhiMDA3NmJhZDVjZGYxZTA5NzQwZWM2YTQ1MWJmZjUzNGVmYTIxNTA5ZjNiYTc3YjgxMDFiOTFlYTdlNTVkZGJmZTE0MDE1MTcwNjdkN2IwMWEyYTA4NzlmMDg4NWM4OTRhODdjZmI2OGM0ZDdlZTg5MDYwNDg4MWFlYjk3YzIyZDFmMzM3ZWY5MjNlMDM1YTY0MDAzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzMwMjE0NjI0NzcyOTg3NTllOGUwNDcxOGFlNTYzMTU1ZjM1MjNjZmI4NGNkYjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwNmQyY2JiMzdmZDEyOTU3ZTVhNzQ4MGNlMDQzNWU4ZWY2MDc3ZGVmMDhmZjI3MDg0NGRlMjUxNmE0NzQyZjIxMWQ4Yzc0NjkwYmMwOTQ4ZTA4YTI5NmFiYmE5Mjg1ZjZiYjMwNWI5NWI3Zjk0MDhjZTQ0ZTgzODgwYzcxOTQ0NDY3MmVjOTk3NDZiYTc4Y2M0YmRlNDc1MzE5ZDAxYmRlNzdjNDlkNThkMTZkM2IyZTkxYzJlNjFlODMwM2NhM2Q3ZWRhMzc5N2ZkOGIzNWNhNzJiYjE0YjE1YTI0YjU2YmI3MGRjMTM0ODQ1NjU4MDgxMTBmZjVkYjU4YzU2ZjdhMDQzNTYwN2UzYzM1MmZiZjRmNTUxMDZmMjk4MGZkM2NkNDIzOTdkYmY3MTM3ZWU3ZjFlMzJjZDgwYTNiN2FiMTJiNDZjMTY5MjIwMjc4ZDc3MTdiNzhhM2M0NWQ2Mzk1YTEzMGE4YjU4ODQxY2JjMjkwZTRmODE3ZGUzYTRmZTE2ZWNkMDc3Y2EzM2EwYWEyNWUyMzVjYzdmNjY1NWE4MGJhOGFlZWM4NzkwNWJiMmE3NTQ1OWI3YmNjNWExMzNmMjk5MzQ5M2I0MWZmY2Y2M2NkN2EzOTFlM2U2Zjc4MDk0Y2E0NDJjODAxNDQ0MDNjYjBhNWYwMGJmYzYxYWU4ODAiCiAKIFBLQ1M3IFBhcnNlIEZhaWx1cmUgSW52YWxpZCBBU04xOiBDaGFuZ2UgdGFnIDA2IHRvIDAyICM1NDguMAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHBrY3M3X2FzbjFfZmFpbDoiMzA4MjA0OWQwNjA5MmE4NjQ4ODZmNzBkMDEwNzAyYTA4MjA0OGUzMDgyMDQ4YTAyMDEwMTMxMGYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBiMDIwOTJhODY0ODg2ZjcwZDAxMDcwMTMxODIwNDY1MzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDViZWNkODcxOTVjMWRlZmY5MGMyNGM5MTI2OWI1NWIzZjA2OWJjMjI1YzMyNmMzMTRjMWE1MTc4NmZmZTE0YzgzMGJlNGU0YmM3M2NiYTM2Yzk3Njc3YjQ0MTY4Mjc5YmU5MWU3Y2RmN2MxOTM4NmFlMjE4NjI3MTlkMTNhM2EwZmZmMDgwM2Q0NjA5NjJmMmNkYTgzNzE0ODQ4NzMyNTJjM2Q3MDU0ZGI4MTQzZTJiMDgxYTM4MTZlZDA4MDRjYTUwOTlhZTVmZWNlODNkNWMyYzM3ODNiMTk4OGI0YjQ2ZGM5NGU1NTU4N2ExMDdlYTE1NDZiZjIyZDI4YTA5N2Y2NTJhNDA2NmRjMjk2NTI2OTA2OWFmMmY1MTc2YmI4Y2U5Y2E2ZDExZjk2NzU3ZjAzMjA0Zjc1NjcwMzU4N2QwMGFkNDI0Nzk2YzkyZmM3YWViNmY0OTQ0MzE5OTllZGEzMDk5MGU0ZjU3NzM2MzJlZDI1OGZlMDI3NjY3MzU5OWRhNmZjZTM1Y2RhZDc3MjZhMGJiMDI0Y2FkOTk2Yjg4ZTBjYjk4ODU0Y2ViNWMwYjZlYzc0OGQ5ZjljZTZhNmNkNDM3ODU4YmFjYjgxNDYxOGEyNzJmZjNhNDE1YzZlMDdmM2RiMDk4ODc3N2ZkZWM4NDVhOTdiZjdkMTAyZGQwMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMyMDIxNDU2NGQ1NTQwMjVhZjU5OWUzMjcwNzliMjcyMGVmMDBkZjM3Y2ZiN2MzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDA0NjA5OGRjNWYyYjk5ZTNiYzJlZDY2NDJkN2YwYTYxZWZhYmMxNWMzOGM3NjMzM2JjY2NlZWVlMzY5YTRmNGE1YmRkYThlYTU5MjY0MTI0ZTQyOWYwODYzMjY4M2RkYmExN2JiZjI2MmQ4MmI2YmVmYTNiNGUxNDgwMzc2YThjN2YzYzdkN2UyYTY3NzliYmYxODI2MmFhODU3ZGU4YzIwYTEyYjZhMmNlOGU0ZDdmMzFkZDFiMTk1MzkyY2Y2MTg1YWZjZTM0YWZlMDU4OTYwNTdiMzZlOWIxNzFiNmM2N2VkN2MyMjg2Y2JmYTgzZmY4YTE2N2M3YmM3MTA5YWVlN2Q3ZTE5MDliZDM4NGZiZmM2MTkzOGVmY2E1MWM4OTkzYzcxZGIzMTc3MzBmMTZlN2U3NzY4NjdhZTRmZGM1NjJkNmYxNWRlNTg1ZTdiOTRlZjQ5NmEzNjc2MzY3YTJjYmFhYjdiNjM2NjQ4YjAwNzZiYWQ1Y2RmMWUwOTc0MGVjNmE0NTFiZmY1MzRlZmEyMTUwOWYzYmE3N2I4MTAxYjkxZWE3ZTU1ZGRiZmUxNDAxNTE3MDY3ZDdiMDFhMmEwODc5ZjA4ODVjODk0YTg3Y2ZiNjhjNGQ3ZWU4OTA2MDQ4ODFhZWI5N2MyMmQxZjMzN2VmOTIzZTAzNWE2NDAwMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMzMDIxNDYyNDc3Mjk4NzU5ZThlMDQ3MThhZTU2MzE1NWYzNTIzY2ZiODRjZGIzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDZkMmNiYjM3ZmQxMjk1N2U1YTc0ODBjZTA0MzVlOGVmNjA3N2RlZjA4ZmYyNzA4NDRkZTI1MTZhNDc0MmYyMTFkOGM3NDY5MGJjMDk0OGUwOGEyOTZhYmJhOTI4NWY2YmIzMDViOTViN2Y5NDA4Y2U0NGU4Mzg4MGM3MTk0NDQ2NzJlYzk5NzQ2YmE3OGNjNGJkZTQ3NTMxOWQwMWJkZTc3YzQ5ZDU4ZDE2ZDNiMmU5MWMyZTYxZTgzMDNjYTNkN2VkYTM3OTdmZDhiMzVjYTcyYmIxNGIxNWEyNGI1NmJiNzBkYzEzNDg0NTY1ODA4MTEwZmY1ZGI1OGM1NmY3YTA0MzU2MDdlM2MzNTJmYmY0ZjU1MTA2ZjI5ODBmZDNjZDQyMzk3ZGJmNzEzN2VlN2YxZTMyY2Q4MGEzYjdhYjEyYjQ2YzE2OTIyMDI3OGQ3NzE3Yjc4YTNjNDVkNjM5NWExMzBhOGI1ODg0MWNiYzI5MGU0ZjgxN2RlM2E0ZmUxNmVjZDA3N2NhMzNhMGFhMjVlMjM1Y2M3ZjY2NTVhODBiYThhZWVjODc5MDViYjJhNzU0NTliN2JjYzVhMTMzZjI5OTM0OTNiNDFmZmNmNjNjZDdhMzkxZTNlNmY3ODA5NGNhNDQyYzgwMTQ0NDAzY2IwYTVmMDBiZmM2MWFlODgwIgogCiBQS0NTNyBQYXJzZSBGYWlsdXJlIEludmFsaWQgQVNOMTogQ2hhbmdlIGxlbmd0aCBmcm9tIDkgdG8gMTAgIzU0OS4wCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NgogcGtjczdfYXNuMV9mYWlsOiIzMDgyMDQ5ZDA2MDkyYTg2NDg4NmY3MGQwMTA3MDJhMDgyMDQ4ZTMwODIwNDhhMDIwMTAxMzEwZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGIwNjBhMmE4NjQ4ODZmNzBkMDEwNzAxMzE4MjA0NjUzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwNWJlY2Q4NzE5NWMxZGVmZjkwYzI0YzkxMjY5YjU1YjNmMDY5YmMyMjVjMzI2YzMxNGMxYTUxNzg2ZmZlMTRjODMwYmU0ZTRiYzczY2JhMzZjOTc2NzdiNDQxNjgyNzliZTkxZTdjZGY3YzE5Mzg2YWUyMTg2MjcxOWQxM2EzYTBmZmYwODAzZDQ2MDk2MmYyY2RhODM3MTQ4NDg3MzI1MmMzZDcwNTRkYjgxNDNlMmIwODFhMzgxNmVkMDgwNGNhNTA5OWFlNWZlY2U4M2Q1YzJjMzc4M2IxOTg4YjRiNDZkYzk0ZTU1NTg3YTEwN2VhMTU0NmJmMjJkMjhhMDk3ZjY1MmE0MDY2ZGMyOTY1MjY5MDY5YWYyZjUxNzZiYjhjZTljYTZkMTFmOTY3NTdmMDMyMDRmNzU2NzAzNTg3ZDAwYWQ0MjQ3OTZjOTJmYzdhZWI2ZjQ5NDQzMTk5OWVkYTMwOTkwZTRmNTc3MzYzMmVkMjU4ZmUwMjc2NjczNTk5ZGE2ZmNlMzVjZGFkNzcyNmEwYmIwMjRjYWQ5OTZiODhlMGNiOTg4NTRjZWI1YzBiNmVjNzQ4ZDlmOWNlNmE2Y2Q0Mzc4NThiYWNiODE0NjE4YTI3MmZmM2E0MTVjNmUwN2YzZGIwOTg4Nzc3ZmRlYzg0NWE5N2JmN2QxMDJkZDAzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzIwMjE0NTY0ZDU1NDAyNWFmNTk5ZTMyNzA3OWIyNzIwZWYwMGRmMzdjZmI3YzMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwMDQ2MDk4ZGM1ZjJiOTllM2JjMmVkNjY0MmQ3ZjBhNjFlZmFiYzE1YzM4Yzc2MzMzYmNjY2VlZWUzNjlhNGY0YTViZGRhOGVhNTkyNjQxMjRlNDI5ZjA4NjMyNjgzZGRiYTE3YmJmMjYyZDgyYjZiZWZhM2I0ZTE0ODAzNzZhOGM3ZjNjN2Q3ZTJhNjc3OWJiZjE4MjYyYWE4NTdkZThjMjBhMTJiNmEyY2U4ZTRkN2YzMWRkMWIxOTUzOTJjZjYxODVhZmNlMzRhZmUwNTg5NjA1N2IzNmU5YjE3MWI2YzY3ZWQ3YzIyODZjYmZhODNmZjhhMTY3YzdiYzcxMDlhZWU3ZDdlMTkwOWJkMzg0ZmJmYzYxOTM4ZWZjYTUxYzg5OTNjNzFkYjMxNzczMGYxNmU3ZTc3Njg2N2FlNGZkYzU2MmQ2ZjE1ZGU1ODVlN2I5NGVmNDk2YTM2NzYzNjdhMmNiYWFiN2I2MzY2NDhiMDA3NmJhZDVjZGYxZTA5NzQwZWM2YTQ1MWJmZjUzNGVmYTIxNTA5ZjNiYTc3YjgxMDFiOTFlYTdlNTVkZGJmZTE0MDE1MTcwNjdkN2IwMWEyYTA4NzlmMDg4NWM4OTRhODdjZmI2OGM0ZDdlZTg5MDYwNDg4MWFlYjk3YzIyZDFmMzM3ZWY5MjNlMDM1YTY0MDAzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzMwMjE0NjI0NzcyOTg3NTllOGUwNDcxOGFlNTYzMTU1ZjM1MjNjZmI4NGNkYjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwNmQyY2JiMzdmZDEyOTU3ZTVhNzQ4MGNlMDQzNWU4ZWY2MDc3ZGVmMDhmZjI3MDg0NGRlMjUxNmE0NzQyZjIxMWQ4Yzc0NjkwYmMwOTQ4ZTA4YTI5NmFiYmE5Mjg1ZjZiYjMwNWI5NWI3Zjk0MDhjZTQ0ZTgzODgwYzcxOTQ0NDY3MmVjOTk3NDZiYTc4Y2M0YmRlNDc1MzE5ZDAxYmRlNzdjNDlkNThkMTZkM2IyZTkxYzJlNjFlODMwM2NhM2Q3ZWRhMzc5N2ZkOGIzNWNhNzJiYjE0YjE1YTI0YjU2YmI3MGRjMTM0ODQ1NjU4MDgxMTBmZjVkYjU4YzU2ZjdhMDQzNTYwN2UzYzM1MmZiZjRmNTUxMDZmMjk4MGZkM2NkNDIzOTdkYmY3MTM3ZWU3ZjFlMzJjZDgwYTNiN2FiMTJiNDZjMTY5MjIwMjc4ZDc3MTdiNzhhM2M0NWQ2Mzk1YTEzMGE4YjU4ODQxY2JjMjkwZTRmODE3ZGUzYTRmZTE2ZWNkMDc3Y2EzM2EwYWEyNWUyMzVjYzdmNjY1NWE4MGJhOGFlZWM4NzkwNWJiMmE3NTQ1OWI3YmNjNWExMzNmMjk5MzQ5M2I0MWZmY2Y2M2NkN2EzOTFlM2U2Zjc4MDk0Y2E0NDJjODAxNDQ0MDNjYjBhNWYwMGJmYzYxYWU4ODAiCiAKIFBLQ1M3IFBhcnNlIEZhaWx1cmUgSW52YWxpZCBBU04xOiBDaGFuZ2UgbGVuZ3RoIGZyb20gOSB0byA4ICM1NTAuMAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHBrY3M3X2FzbjFfZmFpbDoiMzA4MjA0OWQwNjA5MmE4NjQ4ODZmNzBkMDEwNzAyYTA4MjA0OGUzMDgyMDQ4YTAyMDEwMTMxMGYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBiMDYwODJhODY0ODg2ZjcwZDAxMDcwMTMxODIwNDY1MzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDViZWNkODcxOTVjMWRlZmY5MGMyNGM5MTI2OWI1NWIzZjA2OWJjMjI1YzMyNmMzMTRjMWE1MTc4NmZmZTE0YzgzMGJlNGU0YmM3M2NiYTM2Yzk3Njc3YjQ0MTY4Mjc5YmU5MWU3Y2RmN2MxOTM4NmFlMjE4NjI3MTlkMTNhM2EwZmZmMDgwM2Q0NjA5NjJmMmNkYTgzNzE0ODQ4NzMyNTJjM2Q3MDU0ZGI4MTQzZTJiMDgxYTM4MTZlZDA4MDRjYTUwOTlhZTVmZWNlODNkNWMyYzM3ODNiMTk4OGI0YjQ2ZGM5NGU1NTU4N2ExMDdlYTE1NDZiZjIyZDI4YTA5N2Y2NTJhNDA2NmRjMjk2NTI2OTA2OWFmMmY1MTc2YmI4Y2U5Y2E2ZDExZjk2NzU3ZjAzMjA0Zjc1NjcwMzU4N2QwMGFkNDI0Nzk2YzkyZmM3YWViNmY0OTQ0MzE5OTllZGEzMDk5MGU0ZjU3NzM2MzJlZDI1OGZlMDI3NjY3MzU5OWRhNmZjZTM1Y2RhZDc3MjZhMGJiMDI0Y2FkOTk2Yjg4ZTBjYjk4ODU0Y2ViNWMwYjZlYzc0OGQ5ZjljZTZhNmNkNDM3ODU4YmFjYjgxNDYxOGEyNzJmZjNhNDE1YzZlMDdmM2RiMDk4ODc3N2ZkZWM4NDVhOTdiZjdkMTAyZGQwMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMyMDIxNDU2NGQ1NTQwMjVhZjU5OWUzMjcwNzliMjcyMGVmMDBkZjM3Y2ZiN2MzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDA0NjA5OGRjNWYyYjk5ZTNiYzJlZDY2NDJkN2YwYTYxZWZhYmMxNWMzOGM3NjMzM2JjY2NlZWVlMzY5YTRmNGE1YmRkYThlYTU5MjY0MTI0ZTQyOWYwODYzMjY4M2RkYmExN2JiZjI2MmQ4MmI2YmVmYTNiNGUxNDgwMzc2YThjN2YzYzdkN2UyYTY3NzliYmYxODI2MmFhODU3ZGU4YzIwYTEyYjZhMmNlOGU0ZDdmMzFkZDFiMTk1MzkyY2Y2MTg1YWZjZTM0YWZlMDU4OTYwNTdiMzZlOWIxNzFiNmM2N2VkN2MyMjg2Y2JmYTgzZmY4YTE2N2M3YmM3MTA5YWVlN2Q3ZTE5MDliZDM4NGZiZmM2MTkzOGVmY2E1MWM4OTkzYzcxZGIzMTc3MzBmMTZlN2U3NzY4NjdhZTRmZGM1NjJkNmYxNWRlNTg1ZTdiOTRlZjQ5NmEzNjc2MzY3YTJjYmFhYjdiNjM2NjQ4YjAwNzZiYWQ1Y2RmMWUwOTc0MGVjNmE0NTFiZmY1MzRlZmEyMTUwOWYzYmE3N2I4MTAxYjkxZWE3ZTU1ZGRiZmUxNDAxNTE3MDY3ZDdiMDFhMmEwODc5ZjA4ODVjODk0YTg3Y2ZiNjhjNGQ3ZWU4OTA2MDQ4ODFhZWI5N2MyMmQxZjMzN2VmOTIzZTAzNWE2NDAwMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMzMDIxNDYyNDc3Mjk4NzU5ZThlMDQ3MThhZTU2MzE1NWYzNTIzY2ZiODRjZGIzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDZkMmNiYjM3ZmQxMjk1N2U1YTc0ODBjZTA0MzVlOGVmNjA3N2RlZjA4ZmYyNzA4NDRkZTI1MTZhNDc0MmYyMTFkOGM3NDY5MGJjMDk0OGUwOGEyOTZhYmJhOTI4NWY2YmIzMDViOTViN2Y5NDA4Y2U0NGU4Mzg4MGM3MTk0NDQ2NzJlYzk5NzQ2YmE3OGNjNGJkZTQ3NTMxOWQwMWJkZTc3YzQ5ZDU4ZDE2ZDNiMmU5MWMyZTYxZTgzMDNjYTNkN2VkYTM3OTdmZDhiMzVjYTcyYmIxNGIxNWEyNGI1NmJiNzBkYzEzNDg0NTY1ODA4MTEwZmY1ZGI1OGM1NmY3YTA0MzU2MDdlM2MzNTJmYmY0ZjU1MTA2ZjI5ODBmZDNjZDQyMzk3ZGJmNzEzN2VlN2YxZTMyY2Q4MGEzYjdhYjEyYjQ2YzE2OTIyMDI3OGQ3NzE3Yjc4YTNjNDVkNjM5NWExMzBhOGI1ODg0MWNiYzI5MGU0ZjgxN2RlM2E0ZmUxNmVjZDA3N2NhMzNhMGFhMjVlMjM1Y2M3ZjY2NTVhODBiYThhZWVjODc5MDViYjJhNzU0NTliN2JjYzVhMTMzZjI5OTM0OTNiNDFmZmNmNjNjZDdhMzkxZTNlNmY3ODA5NGNhNDQyYzgwMTQ0NDAzY2IwYTVmMDBiZmM2MWFlODgwIgogCiBQS0NTNyBQYXJzZSBGYWlsdXJlIEludmFsaWQgQVNOMTogQ2hhbmdlIHRhZyAzMSB0byAwMiAjNTUxLjAKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBwa2NzN19hc24xX2ZhaWw6IjMwODIwNDlkMDYwOTJhODY0ODg2ZjcwZDAxMDcwMmEwODIwNDhlMzA4MjA0OGEwMjAxMDEzMTBmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwYjA2MDkyYTg2NDg4NmY3MGQwMTA3MDEwMjgyMDQ2NTMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTAyMTQ3YmRlZGRkMjQ0NGNkMWNkZmU1YzQxYTgxMDJjODliN2RmMmU2Y2JmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDA1YmVjZDg3MTk1YzFkZWZmOTBjMjRjOTEyNjliNTViM2YwNjliYzIyNWMzMjZjMzE0YzFhNTE3ODZmZmUxNGM4MzBiZTRlNGJjNzNjYmEzNmM5NzY3N2I0NDE2ODI3OWJlOTFlN2NkZjdjMTkzODZhZTIxODYyNzE5ZDEzYTNhMGZmZjA4MDNkNDYwOTYyZjJjZGE4MzcxNDg0ODczMjUyYzNkNzA1NGRiODE0M2UyYjA4MWEzODE2ZWQwODA0Y2E1MDk5YWU1ZmVjZTgzZDVjMmMzNzgzYjE5ODhiNGI0NmRjOTRlNTU1ODdhMTA3ZWExNTQ2YmYyMmQyOGEwOTdmNjUyYTQwNjZkYzI5NjUyNjkwNjlhZjJmNTE3NmJiOGNlOWNhNmQxMWY5Njc1N2YwMzIwNGY3NTY3MDM1ODdkMDBhZDQyNDc5NmM5MmZjN2FlYjZmNDk0NDMxOTk5ZWRhMzA5OTBlNGY1NzczNjMyZWQyNThmZTAyNzY2NzM1OTlkYTZmY2UzNWNkYWQ3NzI2YTBiYjAyNGNhZDk5NmI4OGUwY2I5ODg1NGNlYjVjMGI2ZWM3NDhkOWY5Y2U2YTZjZDQzNzg1OGJhY2I4MTQ2MThhMjcyZmYzYTQxNWM2ZTA3ZjNkYjA5ODg3NzdmZGVjODQ1YTk3YmY3ZDEwMmRkMDMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMjAyMTQ1NjRkNTU0MDI1YWY1OTllMzI3MDc5YjI3MjBlZjAwZGYzN2NmYjdjMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDAwNDYwOThkYzVmMmI5OWUzYmMyZWQ2NjQyZDdmMGE2MWVmYWJjMTVjMzhjNzYzMzNiY2NjZWVlZTM2OWE0ZjRhNWJkZGE4ZWE1OTI2NDEyNGU0MjlmMDg2MzI2ODNkZGJhMTdiYmYyNjJkODJiNmJlZmEzYjRlMTQ4MDM3NmE4YzdmM2M3ZDdlMmE2Nzc5YmJmMTgyNjJhYTg1N2RlOGMyMGExMmI2YTJjZThlNGQ3ZjMxZGQxYjE5NTM5MmNmNjE4NWFmY2UzNGFmZTA1ODk2MDU3YjM2ZTliMTcxYjZjNjdlZDdjMjI4NmNiZmE4M2ZmOGExNjdjN2JjNzEwOWFlZTdkN2UxOTA5YmQzODRmYmZjNjE5MzhlZmNhNTFjODk5M2M3MWRiMzE3NzMwZjE2ZTdlNzc2ODY3YWU0ZmRjNTYyZDZmMTVkZTU4NWU3Yjk0ZWY0OTZhMzY3NjM2N2EyY2JhYWI3YjYzNjY0OGIwMDc2YmFkNWNkZjFlMDk3NDBlYzZhNDUxYmZmNTM0ZWZhMjE1MDlmM2JhNzdiODEwMWI5MWVhN2U1NWRkYmZlMTQwMTUxNzA2N2Q3YjAxYTJhMDg3OWYwODg1Yzg5NGE4N2NmYjY4YzRkN2VlODkwNjA0ODgxYWViOTdjMjJkMWYzMzdlZjkyM2UwMzVhNjQwMDMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMzAyMTQ2MjQ3NzI5ODc1OWU4ZTA0NzE4YWU1NjMxNTVmMzUyM2NmYjg0Y2RiMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDA2ZDJjYmIzN2ZkMTI5NTdlNWE3NDgwY2UwNDM1ZThlZjYwNzdkZWYwOGZmMjcwODQ0ZGUyNTE2YTQ3NDJmMjExZDhjNzQ2OTBiYzA5NDhlMDhhMjk2YWJiYTkyODVmNmJiMzA1Yjk1YjdmOTQwOGNlNDRlODM4ODBjNzE5NDQ0NjcyZWM5OTc0NmJhNzhjYzRiZGU0NzUzMTlkMDFiZGU3N2M0OWQ1OGQxNmQzYjJlOTFjMmU2MWU4MzAzY2EzZDdlZGEzNzk3ZmQ4YjM1Y2E3MmJiMTRiMTVhMjRiNTZiYjcwZGMxMzQ4NDU2NTgwODExMGZmNWRiNThjNTZmN2EwNDM1NjA3ZTNjMzUyZmJmNGY1NTEwNmYyOTgwZmQzY2Q0MjM5N2RiZjcxMzdlZTdmMWUzMmNkODBhM2I3YWIxMmI0NmMxNjkyMjAyNzhkNzcxN2I3OGEzYzQ1ZDYzOTVhMTMwYThiNTg4NDFjYmMyOTBlNGY4MTdkZTNhNGZlMTZlY2QwNzdjYTMzYTBhYTI1ZTIzNWNjN2Y2NjU1YTgwYmE4YWVlYzg3OTA1YmIyYTc1NDU5YjdiY2M1YTEzM2YyOTkzNDkzYjQxZmZjZjYzY2Q3YTM5MWUzZTZmNzgwOTRjYTQ0MmM4MDE0NDQwM2NiMGE1ZjAwYmZjNjFhZTg4MCIKIAogUEtDUzcgUGFyc2UgRmFpbHVyZSBJbnZhbGlkIEFTTjE6IENoYW5nZSBsZW5ndGggZnJvbSAxMTI1IHRvIDExMjYgIzU1Mi4wCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NgogcGtjczdfYXNuMV9mYWlsOiIzMDgyMDQ5ZDA2MDkyYTg2NDg4NmY3MGQwMTA3MDJhMDgyMDQ4ZTMwODIwNDhhMDIwMTAxMzEwZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGIwNjA5MmE4NjQ4ODZmNzBkMDEwNzAxMzE4MjA0NjYzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwNWJlY2Q4NzE5NWMxZGVmZjkwYzI0YzkxMjY5YjU1YjNmMDY5YmMyMjVjMzI2YzMxNGMxYTUxNzg2ZmZlMTRjODMwYmU0ZTRiYzczY2JhMzZjOTc2NzdiNDQxNjgyNzliZTkxZTdjZGY3YzE5Mzg2YWUyMTg2MjcxOWQxM2EzYTBmZmYwODAzZDQ2MDk2MmYyY2RhODM3MTQ4NDg3MzI1MmMzZDcwNTRkYjgxNDNlMmIwODFhMzgxNmVkMDgwNGNhNTA5OWFlNWZlY2U4M2Q1YzJjMzc4M2IxOTg4YjRiNDZkYzk0ZTU1NTg3YTEwN2VhMTU0NmJmMjJkMjhhMDk3ZjY1MmE0MDY2ZGMyOTY1MjY5MDY5YWYyZjUxNzZiYjhjZTljYTZkMTFmOTY3NTdmMDMyMDRmNzU2NzAzNTg3ZDAwYWQ0MjQ3OTZjOTJmYzdhZWI2ZjQ5NDQzMTk5OWVkYTMwOTkwZTRmNTc3MzYzMmVkMjU4ZmUwMjc2NjczNTk5ZGE2ZmNlMzVjZGFkNzcyNmEwYmIwMjRjYWQ5OTZiODhlMGNiOTg4NTRjZWI1YzBiNmVjNzQ4ZDlmOWNlNmE2Y2Q0Mzc4NThiYWNiODE0NjE4YTI3MmZmM2E0MTVjNmUwN2YzZGIwOTg4Nzc3ZmRlYzg0NWE5N2JmN2QxMDJkZDAzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzIwMjE0NTY0ZDU1NDAyNWFmNTk5ZTMyNzA3OWIyNzIwZWYwMGRmMzdjZmI3YzMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwMDQ2MDk4ZGM1ZjJiOTllM2JjMmVkNjY0MmQ3ZjBhNjFlZmFiYzE1YzM4Yzc2MzMzYmNjY2VlZWUzNjlhNGY0YTViZGRhOGVhNTkyNjQxMjRlNDI5ZjA4NjMyNjgzZGRiYTE3YmJmMjYyZDgyYjZiZWZhM2I0ZTE0ODAzNzZhOGM3ZjNjN2Q3ZTJhNjc3OWJiZjE4MjYyYWE4NTdkZThjMjBhMTJiNmEyY2U4ZTRkN2YzMWRkMWIxOTUzOTJjZjYxODVhZmNlMzRhZmUwNTg5NjA1N2IzNmU5YjE3MWI2YzY3ZWQ3YzIyODZjYmZhODNmZjhhMTY3YzdiYzcxMDlhZWU3ZDdlMTkwOWJkMzg0ZmJmYzYxOTM4ZWZjYTUxYzg5OTNjNzFkYjMxNzczMGYxNmU3ZTc3Njg2N2FlNGZkYzU2MmQ2ZjE1ZGU1ODVlN2I5NGVmNDk2YTM2NzYzNjdhMmNiYWFiN2I2MzY2NDhiMDA3NmJhZDVjZGYxZTA5NzQwZWM2YTQ1MWJmZjUzNGVmYTIxNTA5ZjNiYTc3YjgxMDFiOTFlYTdlNTVkZGJmZTE0MDE1MTcwNjdkN2IwMWEyYTA4NzlmMDg4NWM4OTRhODdjZmI2OGM0ZDdlZTg5MDYwNDg4MWFlYjk3YzIyZDFmMzM3ZWY5MjNlMDM1YTY0MDAzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzMwMjE0NjI0NzcyOTg3NTllOGUwNDcxOGFlNTYzMTU1ZjM1MjNjZmI4NGNkYjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwNmQyY2JiMzdmZDEyOTU3ZTVhNzQ4MGNlMDQzNWU4ZWY2MDc3ZGVmMDhmZjI3MDg0NGRlMjUxNmE0NzQyZjIxMWQ4Yzc0NjkwYmMwOTQ4ZTA4YTI5NmFiYmE5Mjg1ZjZiYjMwNWI5NWI3Zjk0MDhjZTQ0ZTgzODgwYzcxOTQ0NDY3MmVjOTk3NDZiYTc4Y2M0YmRlNDc1MzE5ZDAxYmRlNzdjNDlkNThkMTZkM2IyZTkxYzJlNjFlODMwM2NhM2Q3ZWRhMzc5N2ZkOGIzNWNhNzJiYjE0YjE1YTI0YjU2YmI3MGRjMTM0ODQ1NjU4MDgxMTBmZjVkYjU4YzU2ZjdhMDQzNTYwN2UzYzM1MmZiZjRmNTUxMDZmMjk4MGZkM2NkNDIzOTdkYmY3MTM3ZWU3ZjFlMzJjZDgwYTNiN2FiMTJiNDZjMTY5MjIwMjc4ZDc3MTdiNzhhM2M0NWQ2Mzk1YTEzMGE4YjU4ODQxY2JjMjkwZTRmODE3ZGUzYTRmZTE2ZWNkMDc3Y2EzM2EwYWEyNWUyMzVjYzdmNjY1NWE4MGJhOGFlZWM4NzkwNWJiMmE3NTQ1OWI3YmNjNWExMzNmMjk5MzQ5M2I0MWZmY2Y2M2NkN2EzOTFlM2U2Zjc4MDk0Y2E0NDJjODAxNDQ0MDNjYjBhNWYwMGJmYzYxYWU4ODAiCiAKIFBLQ1M3IFBhcnNlIEZhaWx1cmUgSW52YWxpZCBBU04xOiBDaGFuZ2UgY29udGVudHMgb2YgdGFnIDMxIHRvIGNvbnRhaW4gb25lIHVuYWNjb3VudGVkIGV4dHJhIGJ5dGUgIzU1My4wCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NgogcGtjczdfYXNuMV9mYWlsOiIzMDgyMDQ5ZDA2MDkyYTg2NDg4NmY3MGQwMTA3MDJhMDgyMDQ4ZTMwODIwNDhhMDIwMTAxMzEwZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGIwNjA5MmE4NjQ4ODZmNzBkMDEwNzAxMzE4MjA0NjYzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwNWJlY2Q4NzE5NWMxZGVmZjkwYzI0YzkxMjY5YjU1YjNmMDY5YmMyMjVjMzI2YzMxNGMxYTUxNzg2ZmZlMTRjODMwYmU0ZTRiYzczY2JhMzZjOTc2NzdiNDQxNjgyNzliZTkxZTdjZGY3YzE5Mzg2YWUyMTg2MjcxOWQxM2EzYTBmZmYwODAzZDQ2MDk2MmYyY2RhODM3MTQ4NDg3MzI1MmMzZDcwNTRkYjgxNDNlMmIwODFhMzgxNmVkMDgwNGNhNTA5OWFlNWZlY2U4M2Q1YzJjMzc4M2IxOTg4YjRiNDZkYzk0ZTU1NTg3YTEwN2VhMTU0NmJmMjJkMjhhMDk3ZjY1MmE0MDY2ZGMyOTY1MjY5MDY5YWYyZjUxNzZiYjhjZTljYTZkMTFmOTY3NTdmMDMyMDRmNzU2NzAzNTg3ZDAwYWQ0MjQ3OTZjOTJmYzdhZWI2ZjQ5NDQzMTk5OWVkYTMwOTkwZTRmNTc3MzYzMmVkMjU4ZmUwMjc2NjczNTk5ZGE2ZmNlMzVjZGFkNzcyNmEwYmIwMjRjYWQ5OTZiODhlMGNiOTg4NTRjZWI1YzBiNmVjNzQ4ZDlmOWNlNmE2Y2Q0Mzc4NThiYWNiODE0NjE4YTI3MmZmM2E0MTVjNmUwN2YzZGIwOTg4Nzc3ZmRlYzg0NWE5N2JmN2QxMDJkZDAzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzIwMjE0NTY0ZDU1NDAyNWFmNTk5ZTMyNzA3OWIyNzIwZWYwMGRmMzdjZmI3YzMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwMDQ2MDk4ZGM1ZjJiOTllM2JjMmVkNjY0MmQ3ZjBhNjFlZmFiYzE1YzM4Yzc2MzMzYmNjY2VlZWUzNjlhNGY0YTViZGRhOGVhNTkyNjQxMjRlNDI5ZjA4NjMyNjgzZGRiYTE3YmJmMjYyZDgyYjZiZWZhM2I0ZTE0ODAzNzZhOGM3ZjNjN2Q3ZTJhNjc3OWJiZjE4MjYyYWE4NTdkZThjMjBhMTJiNmEyY2U4ZTRkN2YzMWRkMWIxOTUzOTJjZjYxODVhZmNlMzRhZmUwNTg5NjA1N2IzNmU5YjE3MWI2YzY3ZWQ3YzIyODZjYmZhODNmZjhhMTY3YzdiYzcxMDlhZWU3ZDdlMTkwOWJkMzg0ZmJmYzYxOTM4ZWZjYTUxYzg5OTNjNzFkYjMxNzczMGYxNmU3ZTc3Njg2N2FlNGZkYzU2MmQ2ZjE1ZGU1ODVlN2I5NGVmNDk2YTM2NzYzNjdhMmNiYWFiN2I2MzY2NDhiMDA3NmJhZDVjZGYxZTA5NzQwZWM2YTQ1MWJmZjUzNGVmYTIxNTA5ZjNiYTc3YjgxMDFiOTFlYTdlNTVkZGJmZTE0MDE1MTcwNjdkN2IwMWEyYTA4NzlmMDg4NWM4OTRhODdjZmI2OGM0ZDdlZTg5MDYwNDg4MWFlYjk3YzIyZDFmMzM3ZWY5MjNlMDM1YTY0MDAzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzMwMjE0NjI0NzcyOTg3NTllOGUwNDcxOGFlNTYzMTU1ZjM1MjNjZmI4NGNkYjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwNmQyY2JiMzdmZDEyOTU3ZTVhNzQ4MGNlMDQzNWU4ZWY2MDc3ZGVmMDhmZjI3MDg0NGRlMjUxNmE0NzQyZjIxMWQ4Yzc0NjkwYmMwOTQ4ZTA4YTI5NmFiYmE5Mjg1ZjZiYjMwNWI5NWI3Zjk0MDhjZTQ0ZTgzODgwYzcxOTQ0NDY3MmVjOTk3NDZiYTc4Y2M0YmRlNDc1MzE5ZDAxYmRlNzdjNDlkNThkMTZkM2IyZTkxYzJlNjFlODMwM2NhM2Q3ZWRhMzc5N2ZkOGIzNWNhNzJiYjE0YjE1YTI0YjU2YmI3MGRjMTM0ODQ1NjU4MDgxMTBmZjVkYjU4YzU2ZjdhMDQzNTYwN2UzYzM1MmZiZjRmNTUxMDZmMjk4MGZkM2NkNDIzOTdkYmY3MTM3ZWU3ZjFlMzJjZDgwYTNiN2FiMTJiNDZjMTY5MjIwMjc4ZDc3MTdiNzhhM2M0NWQ2Mzk1YTEzMGE4YjU4ODQxY2JjMjkwZTRmODE3ZGUzYTRmZTE2ZWNkMDc3Y2EzM2EwYWEyNWUyMzVjYzdmNjY1NWE4MGJhOGFlZWM4NzkwNWJiMmE3NTQ1OWI3YmNjNWExMzNmMjk5MzQ5M2I0MWZmY2Y2M2NkN2EzOTFlM2U2Zjc4MDk0Y2E0NDJjODAxNDQ0MDNjYjBhNWYwMGJmYzYxYWU4ODAwMCIKIAogUEtDUzcgUGFyc2UgRmFpbHVyZSBJbnZhbGlkIEFTTjE6IENoYW5nZSBsZW5ndGggZnJvbSAxMTI1IHRvIDExMjQgIzU1NC4wCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NgogcGtjczdfYXNuMV9mYWlsOiIzMDgyMDQ5ZDA2MDkyYTg2NDg4NmY3MGQwMTA3MDJhMDgyMDQ4ZTMwODIwNDhhMDIwMTAxMzEwZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGIwNjA5MmE4NjQ4ODZmNzBkMDEwNzAxMzE4MjA0NjQzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwNWJlY2Q4NzE5NWMxZGVmZjkwYzI0YzkxMjY5YjU1YjNmMDY5YmMyMjVjMzI2YzMxNGMxYTUxNzg2ZmZlMTRjODMwYmU0ZTRiYzczY2JhMzZjOTc2NzdiNDQxNjgyNzliZTkxZTdjZGY3YzE5Mzg2YWUyMTg2MjcxOWQxM2EzYTBmZmYwODAzZDQ2MDk2MmYyY2RhODM3MTQ4NDg3MzI1MmMzZDcwNTRkYjgxNDNlMmIwODFhMzgxNmVkMDgwNGNhNTA5OWFlNWZlY2U4M2Q1YzJjMzc4M2IxOTg4YjRiNDZkYzk0ZTU1NTg3YTEwN2VhMTU0NmJmMjJkMjhhMDk3ZjY1MmE0MDY2ZGMyOTY1MjY5MDY5YWYyZjUxNzZiYjhjZTljYTZkMTFmOTY3NTdmMDMyMDRmNzU2NzAzNTg3ZDAwYWQ0MjQ3OTZjOTJmYzdhZWI2ZjQ5NDQzMTk5OWVkYTMwOTkwZTRmNTc3MzYzMmVkMjU4ZmUwMjc2NjczNTk5ZGE2ZmNlMzVjZGFkNzcyNmEwYmIwMjRjYWQ5OTZiODhlMGNiOTg4NTRjZWI1YzBiNmVjNzQ4ZDlmOWNlNmE2Y2Q0Mzc4NThiYWNiODE0NjE4YTI3MmZmM2E0MTVjNmUwN2YzZGIwOTg4Nzc3ZmRlYzg0NWE5N2JmN2QxMDJkZDAzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzIwMjE0NTY0ZDU1NDAyNWFmNTk5ZTMyNzA3OWIyNzIwZWYwMGRmMzdjZmI3YzMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwMDQ2MDk4ZGM1ZjJiOTllM2JjMmVkNjY0MmQ3ZjBhNjFlZmFiYzE1YzM4Yzc2MzMzYmNjY2VlZWUzNjlhNGY0YTViZGRhOGVhNTkyNjQxMjRlNDI5ZjA4NjMyNjgzZGRiYTE3YmJmMjYyZDgyYjZiZWZhM2I0ZTE0ODAzNzZhOGM3ZjNjN2Q3ZTJhNjc3OWJiZjE4MjYyYWE4NTdkZThjMjBhMTJiNmEyY2U4ZTRkN2YzMWRkMWIxOTUzOTJjZjYxODVhZmNlMzRhZmUwNTg5NjA1N2IzNmU5YjE3MWI2YzY3ZWQ3YzIyODZjYmZhODNmZjhhMTY3YzdiYzcxMDlhZWU3ZDdlMTkwOWJkMzg0ZmJmYzYxOTM4ZWZjYTUxYzg5OTNjNzFkYjMxNzczMGYxNmU3ZTc3Njg2N2FlNGZkYzU2MmQ2ZjE1ZGU1ODVlN2I5NGVmNDk2YTM2NzYzNjdhMmNiYWFiN2I2MzY2NDhiMDA3NmJhZDVjZGYxZTA5NzQwZWM2YTQ1MWJmZjUzNGVmYTIxNTA5ZjNiYTc3YjgxMDFiOTFlYTdlNTVkZGJmZTE0MDE1MTcwNjdkN2IwMWEyYTA4NzlmMDg4NWM4OTRhODdjZmI2OGM0ZDdlZTg5MDYwNDg4MWFlYjk3YzIyZDFmMzM3ZWY5MjNlMDM1YTY0MDAzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzMwMjE0NjI0NzcyOTg3NTllOGUwNDcxOGFlNTYzMTU1ZjM1MjNjZmI4NGNkYjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwNmQyY2JiMzdmZDEyOTU3ZTVhNzQ4MGNlMDQzNWU4ZWY2MDc3ZGVmMDhmZjI3MDg0NGRlMjUxNmE0NzQyZjIxMWQ4Yzc0NjkwYmMwOTQ4ZTA4YTI5NmFiYmE5Mjg1ZjZiYjMwNWI5NWI3Zjk0MDhjZTQ0ZTgzODgwYzcxOTQ0NDY3MmVjOTk3NDZiYTc4Y2M0YmRlNDc1MzE5ZDAxYmRlNzdjNDlkNThkMTZkM2IyZTkxYzJlNjFlODMwM2NhM2Q3ZWRhMzc5N2ZkOGIzNWNhNzJiYjE0YjE1YTI0YjU2YmI3MGRjMTM0ODQ1NjU4MDgxMTBmZjVkYjU4YzU2ZjdhMDQzNTYwN2UzYzM1MmZiZjRmNTUxMDZmMjk4MGZkM2NkNDIzOTdkYmY3MTM3ZWU3ZjFlMzJjZDgwYTNiN2FiMTJiNDZjMTY5MjIwMjc4ZDc3MTdiNzhhM2M0NWQ2Mzk1YTEzMGE4YjU4ODQxY2JjMjkwZTRmODE3ZGUzYTRmZTE2ZWNkMDc3Y2EzM2EwYWEyNWUyMzVjYzdmNjY1NWE4MGJhOGFlZWM4NzkwNWJiMmE3NTQ1OWI3YmNjNWExMzNmMjk5MzQ5M2I0MWZmY2Y2M2NkN2EzOTFlM2U2Zjc4MDk0Y2E0NDJjODAxNDQ0MDNjYjBhNWYwMGJmYzYxYWU4ODAiCiAKIFBLQ1M3IFBhcnNlIEZhaWx1cmUgSW52YWxpZCBBU04xOiBDaGFuZ2UgdGFnIDMwIHRvIDAyICM1NTUuMAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHBrY3M3X2FzbjFfZmFpbDoiMzA4MjA0OWQwNjA5MmE4NjQ4ODZmNzBkMDEwNzAyYTA4MjA0OGUzMDgyMDQ4YTAyMDEwMTMxMGYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBiMDYwOTJhODY0ODg2ZjcwZDAxMDcwMTMxODIwNDY1MDI4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDViZWNkODcxOTVjMWRlZmY5MGMyNGM5MTI2OWI1NWIzZjA2OWJjMjI1YzMyNmMzMTRjMWE1MTc4NmZmZTE0YzgzMGJlNGU0YmM3M2NiYTM2Yzk3Njc3YjQ0MTY4Mjc5YmU5MWU3Y2RmN2MxOTM4NmFlMjE4NjI3MTlkMTNhM2EwZmZmMDgwM2Q0NjA5NjJmMmNkYTgzNzE0ODQ4NzMyNTJjM2Q3MDU0ZGI4MTQzZTJiMDgxYTM4MTZlZDA4MDRjYTUwOTlhZTVmZWNlODNkNWMyYzM3ODNiMTk4OGI0YjQ2ZGM5NGU1NTU4N2ExMDdlYTE1NDZiZjIyZDI4YTA5N2Y2NTJhNDA2NmRjMjk2NTI2OTA2OWFmMmY1MTc2YmI4Y2U5Y2E2ZDExZjk2NzU3ZjAzMjA0Zjc1NjcwMzU4N2QwMGFkNDI0Nzk2YzkyZmM3YWViNmY0OTQ0MzE5OTllZGEzMDk5MGU0ZjU3NzM2MzJlZDI1OGZlMDI3NjY3MzU5OWRhNmZjZTM1Y2RhZDc3MjZhMGJiMDI0Y2FkOTk2Yjg4ZTBjYjk4ODU0Y2ViNWMwYjZlYzc0OGQ5ZjljZTZhNmNkNDM3ODU4YmFjYjgxNDYxOGEyNzJmZjNhNDE1YzZlMDdmM2RiMDk4ODc3N2ZkZWM4NDVhOTdiZjdkMTAyZGQwMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMyMDIxNDU2NGQ1NTQwMjVhZjU5OWUzMjcwNzliMjcyMGVmMDBkZjM3Y2ZiN2MzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDA0NjA5OGRjNWYyYjk5ZTNiYzJlZDY2NDJkN2YwYTYxZWZhYmMxNWMzOGM3NjMzM2JjY2NlZWVlMzY5YTRmNGE1YmRkYThlYTU5MjY0MTI0ZTQyOWYwODYzMjY4M2RkYmExN2JiZjI2MmQ4MmI2YmVmYTNiNGUxNDgwMzc2YThjN2YzYzdkN2UyYTY3NzliYmYxODI2MmFhODU3ZGU4YzIwYTEyYjZhMmNlOGU0ZDdmMzFkZDFiMTk1MzkyY2Y2MTg1YWZjZTM0YWZlMDU4OTYwNTdiMzZlOWIxNzFiNmM2N2VkN2MyMjg2Y2JmYTgzZmY4YTE2N2M3YmM3MTA5YWVlN2Q3ZTE5MDliZDM4NGZiZmM2MTkzOGVmY2E1MWM4OTkzYzcxZGIzMTc3MzBmMTZlN2U3NzY4NjdhZTRmZGM1NjJkNmYxNWRlNTg1ZTdiOTRlZjQ5NmEzNjc2MzY3YTJjYmFhYjdiNjM2NjQ4YjAwNzZiYWQ1Y2RmMWUwOTc0MGVjNmE0NTFiZmY1MzRlZmEyMTUwOWYzYmE3N2I4MTAxYjkxZWE3ZTU1ZGRiZmUxNDAxNTE3MDY3ZDdiMDFhMmEwODc5ZjA4ODVjODk0YTg3Y2ZiNjhjNGQ3ZWU4OTA2MDQ4ODFhZWI5N2MyMmQxZjMzN2VmOTIzZTAzNWE2NDAwMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMzMDIxNDYyNDc3Mjk4NzU5ZThlMDQ3MThhZTU2MzE1NWYzNTIzY2ZiODRjZGIzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDZkMmNiYjM3ZmQxMjk1N2U1YTc0ODBjZTA0MzVlOGVmNjA3N2RlZjA4ZmYyNzA4NDRkZTI1MTZhNDc0MmYyMTFkOGM3NDY5MGJjMDk0OGUwOGEyOTZhYmJhOTI4NWY2YmIzMDViOTViN2Y5NDA4Y2U0NGU4Mzg4MGM3MTk0NDQ2NzJlYzk5NzQ2YmE3OGNjNGJkZTQ3NTMxOWQwMWJkZTc3YzQ5ZDU4ZDE2ZDNiMmU5MWMyZTYxZTgzMDNjYTNkN2VkYTM3OTdmZDhiMzVjYTcyYmIxNGIxNWEyNGI1NmJiNzBkYzEzNDg0NTY1ODA4MTEwZmY1ZGI1OGM1NmY3YTA0MzU2MDdlM2MzNTJmYmY0ZjU1MTA2ZjI5ODBmZDNjZDQyMzk3ZGJmNzEzN2VlN2YxZTMyY2Q4MGEzYjdhYjEyYjQ2YzE2OTIyMDI3OGQ3NzE3Yjc4YTNjNDVkNjM5NWExMzBhOGI1ODg0MWNiYzI5MGU0ZjgxN2RlM2E0ZmUxNmVjZDA3N2NhMzNhMGFhMjVlMjM1Y2M3ZjY2NTVhODBiYThhZWVjODc5MDViYjJhNzU0NTliN2JjYzVhMTMzZjI5OTM0OTNiNDFmZmNmNjNjZDdhMzkxZTNlNmY3ODA5NGNhNDQyYzgwMTQ0NDAzY2IwYTVmMDBiZmM2MWFlODgwIgogCiBQS0NTNyBQYXJzZSBGYWlsdXJlIEludmFsaWQgQVNOMTogQ2hhbmdlIGxlbmd0aCBmcm9tIDM3MSB0byAzNzIgIzU1Ni4wCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NgogcGtjczdfYXNuMV9mYWlsOiIzMDgyMDQ5ZDA2MDkyYTg2NDg4NmY3MGQwMTA3MDJhMDgyMDQ4ZTMwODIwNDhhMDIwMTAxMzEwZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGIwNjA5MmE4NjQ4ODZmNzBkMDEwNzAxMzE4MjA0NjUzMDgyMDE3NDAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwNWJlY2Q4NzE5NWMxZGVmZjkwYzI0YzkxMjY5YjU1YjNmMDY5YmMyMjVjMzI2YzMxNGMxYTUxNzg2ZmZlMTRjODMwYmU0ZTRiYzczY2JhMzZjOTc2NzdiNDQxNjgyNzliZTkxZTdjZGY3YzE5Mzg2YWUyMTg2MjcxOWQxM2EzYTBmZmYwODAzZDQ2MDk2MmYyY2RhODM3MTQ4NDg3MzI1MmMzZDcwNTRkYjgxNDNlMmIwODFhMzgxNmVkMDgwNGNhNTA5OWFlNWZlY2U4M2Q1YzJjMzc4M2IxOTg4YjRiNDZkYzk0ZTU1NTg3YTEwN2VhMTU0NmJmMjJkMjhhMDk3ZjY1MmE0MDY2ZGMyOTY1MjY5MDY5YWYyZjUxNzZiYjhjZTljYTZkMTFmOTY3NTdmMDMyMDRmNzU2NzAzNTg3ZDAwYWQ0MjQ3OTZjOTJmYzdhZWI2ZjQ5NDQzMTk5OWVkYTMwOTkwZTRmNTc3MzYzMmVkMjU4ZmUwMjc2NjczNTk5ZGE2ZmNlMzVjZGFkNzcyNmEwYmIwMjRjYWQ5OTZiODhlMGNiOTg4NTRjZWI1YzBiNmVjNzQ4ZDlmOWNlNmE2Y2Q0Mzc4NThiYWNiODE0NjE4YTI3MmZmM2E0MTVjNmUwN2YzZGIwOTg4Nzc3ZmRlYzg0NWE5N2JmN2QxMDJkZDAzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzIwMjE0NTY0ZDU1NDAyNWFmNTk5ZTMyNzA3OWIyNzIwZWYwMGRmMzdjZmI3YzMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwMDQ2MDk4ZGM1ZjJiOTllM2JjMmVkNjY0MmQ3ZjBhNjFlZmFiYzE1YzM4Yzc2MzMzYmNjY2VlZWUzNjlhNGY0YTViZGRhOGVhNTkyNjQxMjRlNDI5ZjA4NjMyNjgzZGRiYTE3YmJmMjYyZDgyYjZiZWZhM2I0ZTE0ODAzNzZhOGM3ZjNjN2Q3ZTJhNjc3OWJiZjE4MjYyYWE4NTdkZThjMjBhMTJiNmEyY2U4ZTRkN2YzMWRkMWIxOTUzOTJjZjYxODVhZmNlMzRhZmUwNTg5NjA1N2IzNmU5YjE3MWI2YzY3ZWQ3YzIyODZjYmZhODNmZjhhMTY3YzdiYzcxMDlhZWU3ZDdlMTkwOWJkMzg0ZmJmYzYxOTM4ZWZjYTUxYzg5OTNjNzFkYjMxNzczMGYxNmU3ZTc3Njg2N2FlNGZkYzU2MmQ2ZjE1ZGU1ODVlN2I5NGVmNDk2YTM2NzYzNjdhMmNiYWFiN2I2MzY2NDhiMDA3NmJhZDVjZGYxZTA5NzQwZWM2YTQ1MWJmZjUzNGVmYTIxNTA5ZjNiYTc3YjgxMDFiOTFlYTdlNTVkZGJmZTE0MDE1MTcwNjdkN2IwMWEyYTA4NzlmMDg4NWM4OTRhODdjZmI2OGM0ZDdlZTg5MDYwNDg4MWFlYjk3YzIyZDFmMzM3ZWY5MjNlMDM1YTY0MDAzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzMwMjE0NjI0NzcyOTg3NTllOGUwNDcxOGFlNTYzMTU1ZjM1MjNjZmI4NGNkYjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwNmQyY2JiMzdmZDEyOTU3ZTVhNzQ4MGNlMDQzNWU4ZWY2MDc3ZGVmMDhmZjI3MDg0NGRlMjUxNmE0NzQyZjIxMWQ4Yzc0NjkwYmMwOTQ4ZTA4YTI5NmFiYmE5Mjg1ZjZiYjMwNWI5NWI3Zjk0MDhjZTQ0ZTgzODgwYzcxOTQ0NDY3MmVjOTk3NDZiYTc4Y2M0YmRlNDc1MzE5ZDAxYmRlNzdjNDlkNThkMTZkM2IyZTkxYzJlNjFlODMwM2NhM2Q3ZWRhMzc5N2ZkOGIzNWNhNzJiYjE0YjE1YTI0YjU2YmI3MGRjMTM0ODQ1NjU4MDgxMTBmZjVkYjU4YzU2ZjdhMDQzNTYwN2UzYzM1MmZiZjRmNTUxMDZmMjk4MGZkM2NkNDIzOTdkYmY3MTM3ZWU3ZjFlMzJjZDgwYTNiN2FiMTJiNDZjMTY5MjIwMjc4ZDc3MTdiNzhhM2M0NWQ2Mzk1YTEzMGE4YjU4ODQxY2JjMjkwZTRmODE3ZGUzYTRmZTE2ZWNkMDc3Y2EzM2EwYWEyNWUyMzVjYzdmNjY1NWE4MGJhOGFlZWM4NzkwNWJiMmE3NTQ1OWI3YmNjNWExMzNmMjk5MzQ5M2I0MWZmY2Y2M2NkN2EzOTFlM2U2Zjc4MDk0Y2E0NDJjODAxNDQ0MDNjYjBhNWYwMGJmYzYxYWU4ODAiCiAKIFBLQ1M3IFBhcnNlIEZhaWx1cmUgSW52YWxpZCBBU04xOiBDaGFuZ2UgY29udGVudHMgb2YgdGFnIDMwIHRvIGNvbnRhaW4gb25lIHVuYWNjb3VudGVkIGV4dHJhIGJ5dGUgIzU1Ny4wCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NgogcGtjczdfYXNuMV9mYWlsOiIzMDgyMDQ5ZDA2MDkyYTg2NDg4NmY3MGQwMTA3MDJhMDgyMDQ4ZTMwODIwNDhhMDIwMTAxMzEwZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGIwNjA5MmE4NjQ4ODZmNzBkMDEwNzAxMzE4MjA0NjUzMDgyMDE3NDAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwNWJlY2Q4NzE5NWMxZGVmZjkwYzI0YzkxMjY5YjU1YjNmMDY5YmMyMjVjMzI2YzMxNGMxYTUxNzg2ZmZlMTRjODMwYmU0ZTRiYzczY2JhMzZjOTc2NzdiNDQxNjgyNzliZTkxZTdjZGY3YzE5Mzg2YWUyMTg2MjcxOWQxM2EzYTBmZmYwODAzZDQ2MDk2MmYyY2RhODM3MTQ4NDg3MzI1MmMzZDcwNTRkYjgxNDNlMmIwODFhMzgxNmVkMDgwNGNhNTA5OWFlNWZlY2U4M2Q1YzJjMzc4M2IxOTg4YjRiNDZkYzk0ZTU1NTg3YTEwN2VhMTU0NmJmMjJkMjhhMDk3ZjY1MmE0MDY2ZGMyOTY1MjY5MDY5YWYyZjUxNzZiYjhjZTljYTZkMTFmOTY3NTdmMDMyMDRmNzU2NzAzNTg3ZDAwYWQ0MjQ3OTZjOTJmYzdhZWI2ZjQ5NDQzMTk5OWVkYTMwOTkwZTRmNTc3MzYzMmVkMjU4ZmUwMjc2NjczNTk5ZGE2ZmNlMzVjZGFkNzcyNmEwYmIwMjRjYWQ5OTZiODhlMGNiOTg4NTRjZWI1YzBiNmVjNzQ4ZDlmOWNlNmE2Y2Q0Mzc4NThiYWNiODE0NjE4YTI3MmZmM2E0MTVjNmUwN2YzZGIwOTg4Nzc3ZmRlYzg0NWE5N2JmN2QxMDJkZDAwMDMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMjAyMTQ1NjRkNTU0MDI1YWY1OTllMzI3MDc5YjI3MjBlZjAwZGYzN2NmYjdjMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDAwNDYwOThkYzVmMmI5OWUzYmMyZWQ2NjQyZDdmMGE2MWVmYWJjMTVjMzhjNzYzMzNiY2NjZWVlZTM2OWE0ZjRhNWJkZGE4ZWE1OTI2NDEyNGU0MjlmMDg2MzI2ODNkZGJhMTdiYmYyNjJkODJiNmJlZmEzYjRlMTQ4MDM3NmE4YzdmM2M3ZDdlMmE2Nzc5YmJmMTgyNjJhYTg1N2RlOGMyMGExMmI2YTJjZThlNGQ3ZjMxZGQxYjE5NTM5MmNmNjE4NWFmY2UzNGFmZTA1ODk2MDU3YjM2ZTliMTcxYjZjNjdlZDdjMjI4NmNiZmE4M2ZmOGExNjdjN2JjNzEwOWFlZTdkN2UxOTA5YmQzODRmYmZjNjE5MzhlZmNhNTFjODk5M2M3MWRiMzE3NzMwZjE2ZTdlNzc2ODY3YWU0ZmRjNTYyZDZmMTVkZTU4NWU3Yjk0ZWY0OTZhMzY3NjM2N2EyY2JhYWI3YjYzNjY0OGIwMDc2YmFkNWNkZjFlMDk3NDBlYzZhNDUxYmZmNTM0ZWZhMjE1MDlmM2JhNzdiODEwMWI5MWVhN2U1NWRkYmZlMTQwMTUxNzA2N2Q3YjAxYTJhMDg3OWYwODg1Yzg5NGE4N2NmYjY4YzRkN2VlODkwNjA0ODgxYWViOTdjMjJkMWYzMzdlZjkyM2UwMzVhNjQwMDMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMzAyMTQ2MjQ3NzI5ODc1OWU4ZTA0NzE4YWU1NjMxNTVmMzUyM2NmYjg0Y2RiMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDA2ZDJjYmIzN2ZkMTI5NTdlNWE3NDgwY2UwNDM1ZThlZjYwNzdkZWYwOGZmMjcwODQ0ZGUyNTE2YTQ3NDJmMjExZDhjNzQ2OTBiYzA5NDhlMDhhMjk2YWJiYTkyODVmNmJiMzA1Yjk1YjdmOTQwOGNlNDRlODM4ODBjNzE5NDQ0NjcyZWM5OTc0NmJhNzhjYzRiZGU0NzUzMTlkMDFiZGU3N2M0OWQ1OGQxNmQzYjJlOTFjMmU2MWU4MzAzY2EzZDdlZGEzNzk3ZmQ4YjM1Y2E3MmJiMTRiMTVhMjRiNTZiYjcwZGMxMzQ4NDU2NTgwODExMGZmNWRiNThjNTZmN2EwNDM1NjA3ZTNjMzUyZmJmNGY1NTEwNmYyOTgwZmQzY2Q0MjM5N2RiZjcxMzdlZTdmMWUzMmNkODBhM2I3YWIxMmI0NmMxNjkyMjAyNzhkNzcxN2I3OGEzYzQ1ZDYzOTVhMTMwYThiNTg4NDFjYmMyOTBlNGY4MTdkZTNhNGZlMTZlY2QwNzdjYTMzYTBhYTI1ZTIzNWNjN2Y2NjU1YTgwYmE4YWVlYzg3OTA1YmIyYTc1NDU5YjdiY2M1YTEzM2YyOTkzNDkzYjQxZmZjZjYzY2Q3YTM5MWUzZTZmNzgwOTRjYTQ0MmM4MDE0NDQwM2NiMGE1ZjAwYmZjNjFhZTg4MCIKIAogUEtDUzcgUGFyc2UgRmFpbHVyZSBJbnZhbGlkIEFTTjE6IENoYW5nZSBsZW5ndGggZnJvbSAzNzEgdG8gMzcwICM1NTguMAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHBrY3M3X2FzbjFfZmFpbDoiMzA4MjA0OWQwNjA5MmE4NjQ4ODZmNzBkMDEwNzAyYTA4MjA0OGUzMDgyMDQ4YTAyMDEwMTMxMGYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBiMDYwOTJhODY0ODg2ZjcwZDAxMDcwMTMxODIwNDY1MzA4MjAxNzIwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDViZWNkODcxOTVjMWRlZmY5MGMyNGM5MTI2OWI1NWIzZjA2OWJjMjI1YzMyNmMzMTRjMWE1MTc4NmZmZTE0YzgzMGJlNGU0YmM3M2NiYTM2Yzk3Njc3YjQ0MTY4Mjc5YmU5MWU3Y2RmN2MxOTM4NmFlMjE4NjI3MTlkMTNhM2EwZmZmMDgwM2Q0NjA5NjJmMmNkYTgzNzE0ODQ4NzMyNTJjM2Q3MDU0ZGI4MTQzZTJiMDgxYTM4MTZlZDA4MDRjYTUwOTlhZTVmZWNlODNkNWMyYzM3ODNiMTk4OGI0YjQ2ZGM5NGU1NTU4N2ExMDdlYTE1NDZiZjIyZDI4YTA5N2Y2NTJhNDA2NmRjMjk2NTI2OTA2OWFmMmY1MTc2YmI4Y2U5Y2E2ZDExZjk2NzU3ZjAzMjA0Zjc1NjcwMzU4N2QwMGFkNDI0Nzk2YzkyZmM3YWViNmY0OTQ0MzE5OTllZGEzMDk5MGU0ZjU3NzM2MzJlZDI1OGZlMDI3NjY3MzU5OWRhNmZjZTM1Y2RhZDc3MjZhMGJiMDI0Y2FkOTk2Yjg4ZTBjYjk4ODU0Y2ViNWMwYjZlYzc0OGQ5ZjljZTZhNmNkNDM3ODU4YmFjYjgxNDYxOGEyNzJmZjNhNDE1YzZlMDdmM2RiMDk4ODc3N2ZkZWM4NDVhOTdiZjdkMTAyZGQwMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMyMDIxNDU2NGQ1NTQwMjVhZjU5OWUzMjcwNzliMjcyMGVmMDBkZjM3Y2ZiN2MzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDA0NjA5OGRjNWYyYjk5ZTNiYzJlZDY2NDJkN2YwYTYxZWZhYmMxNWMzOGM3NjMzM2JjY2NlZWVlMzY5YTRmNGE1YmRkYThlYTU5MjY0MTI0ZTQyOWYwODYzMjY4M2RkYmExN2JiZjI2MmQ4MmI2YmVmYTNiNGUxNDgwMzc2YThjN2YzYzdkN2UyYTY3NzliYmYxODI2MmFhODU3ZGU4YzIwYTEyYjZhMmNlOGU0ZDdmMzFkZDFiMTk1MzkyY2Y2MTg1YWZjZTM0YWZlMDU4OTYwNTdiMzZlOWIxNzFiNmM2N2VkN2MyMjg2Y2JmYTgzZmY4YTE2N2M3YmM3MTA5YWVlN2Q3ZTE5MDliZDM4NGZiZmM2MTkzOGVmY2E1MWM4OTkzYzcxZGIzMTc3MzBmMTZlN2U3NzY4NjdhZTRmZGM1NjJkNmYxNWRlNTg1ZTdiOTRlZjQ5NmEzNjc2MzY3YTJjYmFhYjdiNjM2NjQ4YjAwNzZiYWQ1Y2RmMWUwOTc0MGVjNmE0NTFiZmY1MzRlZmEyMTUwOWYzYmE3N2I4MTAxYjkxZWE3ZTU1ZGRiZmUxNDAxNTE3MDY3ZDdiMDFhMmEwODc5ZjA4ODVjODk0YTg3Y2ZiNjhjNGQ3ZWU4OTA2MDQ4ODFhZWI5N2MyMmQxZjMzN2VmOTIzZTAzNWE2NDAwMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMzMDIxNDYyNDc3Mjk4NzU5ZThlMDQ3MThhZTU2MzE1NWYzNTIzY2ZiODRjZGIzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDZkMmNiYjM3ZmQxMjk1N2U1YTc0ODBjZTA0MzVlOGVmNjA3N2RlZjA4ZmYyNzA4NDRkZTI1MTZhNDc0MmYyMTFkOGM3NDY5MGJjMDk0OGUwOGEyOTZhYmJhOTI4NWY2YmIzMDViOTViN2Y5NDA4Y2U0NGU4Mzg4MGM3MTk0NDQ2NzJlYzk5NzQ2YmE3OGNjNGJkZTQ3NTMxOWQwMWJkZTc3YzQ5ZDU4ZDE2ZDNiMmU5MWMyZTYxZTgzMDNjYTNkN2VkYTM3OTdmZDhiMzVjYTcyYmIxNGIxNWEyNGI1NmJiNzBkYzEzNDg0NTY1ODA4MTEwZmY1ZGI1OGM1NmY3YTA0MzU2MDdlM2MzNTJmYmY0ZjU1MTA2ZjI5ODBmZDNjZDQyMzk3ZGJmNzEzN2VlN2YxZTMyY2Q4MGEzYjdhYjEyYjQ2YzE2OTIyMDI3OGQ3NzE3Yjc4YTNjNDVkNjM5NWExMzBhOGI1ODg0MWNiYzI5MGU0ZjgxN2RlM2E0ZmUxNmVjZDA3N2NhMzNhMGFhMjVlMjM1Y2M3ZjY2NTVhODBiYThhZWVjODc5MDViYjJhNzU0NTliN2JjYzVhMTMzZjI5OTM0OTNiNDFmZmNmNjNjZDdhMzkxZTNlNmY3ODA5NGNhNDQyYzgwMTQ0NDAzY2IwYTVmMDBiZmM2MWFlODgwIgogCiBQS0NTNyBQYXJzZSBGYWlsdXJlIEludmFsaWQgQVNOMTogQ2hhbmdlIHRhZyAwMiB0byAwNCAjNTU5LjAKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBwa2NzN19hc24xX2ZhaWw6IjMwODIwNDlkMDYwOTJhODY0ODg2ZjcwZDAxMDcwMmEwODIwNDhlMzA4MjA0OGEwMjAxMDEzMTBmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwYjA2MDkyYTg2NDg4NmY3MGQwMTA3MDEzMTgyMDQ2NTMwODIwMTczMDQwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTAyMTQ3YmRlZGRkMjQ0NGNkMWNkZmU1YzQxYTgxMDJjODliN2RmMmU2Y2JmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDA1YmVjZDg3MTk1YzFkZWZmOTBjMjRjOTEyNjliNTViM2YwNjliYzIyNWMzMjZjMzE0YzFhNTE3ODZmZmUxNGM4MzBiZTRlNGJjNzNjYmEzNmM5NzY3N2I0NDE2ODI3OWJlOTFlN2NkZjdjMTkzODZhZTIxODYyNzE5ZDEzYTNhMGZmZjA4MDNkNDYwOTYyZjJjZGE4MzcxNDg0ODczMjUyYzNkNzA1NGRiODE0M2UyYjA4MWEzODE2ZWQwODA0Y2E1MDk5YWU1ZmVjZTgzZDVjMmMzNzgzYjE5ODhiNGI0NmRjOTRlNTU1ODdhMTA3ZWExNTQ2YmYyMmQyOGEwOTdmNjUyYTQwNjZkYzI5NjUyNjkwNjlhZjJmNTE3NmJiOGNlOWNhNmQxMWY5Njc1N2YwMzIwNGY3NTY3MDM1ODdkMDBhZDQyNDc5NmM5MmZjN2FlYjZmNDk0NDMxOTk5ZWRhMzA5OTBlNGY1NzczNjMyZWQyNThmZTAyNzY2NzM1OTlkYTZmY2UzNWNkYWQ3NzI2YTBiYjAyNGNhZDk5NmI4OGUwY2I5ODg1NGNlYjVjMGI2ZWM3NDhkOWY5Y2U2YTZjZDQzNzg1OGJhY2I4MTQ2MThhMjcyZmYzYTQxNWM2ZTA3ZjNkYjA5ODg3NzdmZGVjODQ1YTk3YmY3ZDEwMmRkMDMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMjAyMTQ1NjRkNTU0MDI1YWY1OTllMzI3MDc5YjI3MjBlZjAwZGYzN2NmYjdjMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDAwNDYwOThkYzVmMmI5OWUzYmMyZWQ2NjQyZDdmMGE2MWVmYWJjMTVjMzhjNzYzMzNiY2NjZWVlZTM2OWE0ZjRhNWJkZGE4ZWE1OTI2NDEyNGU0MjlmMDg2MzI2ODNkZGJhMTdiYmYyNjJkODJiNmJlZmEzYjRlMTQ4MDM3NmE4YzdmM2M3ZDdlMmE2Nzc5YmJmMTgyNjJhYTg1N2RlOGMyMGExMmI2YTJjZThlNGQ3ZjMxZGQxYjE5NTM5MmNmNjE4NWFmY2UzNGFmZTA1ODk2MDU3YjM2ZTliMTcxYjZjNjdlZDdjMjI4NmNiZmE4M2ZmOGExNjdjN2JjNzEwOWFlZTdkN2UxOTA5YmQzODRmYmZjNjE5MzhlZmNhNTFjODk5M2M3MWRiMzE3NzMwZjE2ZTdlNzc2ODY3YWU0ZmRjNTYyZDZmMTVkZTU4NWU3Yjk0ZWY0OTZhMzY3NjM2N2EyY2JhYWI3YjYzNjY0OGIwMDc2YmFkNWNkZjFlMDk3NDBlYzZhNDUxYmZmNTM0ZWZhMjE1MDlmM2JhNzdiODEwMWI5MWVhN2U1NWRkYmZlMTQwMTUxNzA2N2Q3YjAxYTJhMDg3OWYwODg1Yzg5NGE4N2NmYjY4YzRkN2VlODkwNjA0ODgxYWViOTdjMjJkMWYzMzdlZjkyM2UwMzVhNjQwMDMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMzAyMTQ2MjQ3NzI5ODc1OWU4ZTA0NzE4YWU1NjMxNTVmMzUyM2NmYjg0Y2RiMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDA2ZDJjYmIzN2ZkMTI5NTdlNWE3NDgwY2UwNDM1ZThlZjYwNzdkZWYwOGZmMjcwODQ0ZGUyNTE2YTQ3NDJmMjExZDhjNzQ2OTBiYzA5NDhlMDhhMjk2YWJiYTkyODVmNmJiMzA1Yjk1YjdmOTQwOGNlNDRlODM4ODBjNzE5NDQ0NjcyZWM5OTc0NmJhNzhjYzRiZGU0NzUzMTlkMDFiZGU3N2M0OWQ1OGQxNmQzYjJlOTFjMmU2MWU4MzAzY2EzZDdlZGEzNzk3ZmQ4YjM1Y2E3MmJiMTRiMTVhMjRiNTZiYjcwZGMxMzQ4NDU2NTgwODExMGZmNWRiNThjNTZmN2EwNDM1NjA3ZTNjMzUyZmJmNGY1NTEwNmYyOTgwZmQzY2Q0MjM5N2RiZjcxMzdlZTdmMWUzMmNkODBhM2I3YWIxMmI0NmMxNjkyMjAyNzhkNzcxN2I3OGEzYzQ1ZDYzOTVhMTMwYThiNTg4NDFjYmMyOTBlNGY4MTdkZTNhNGZlMTZlY2QwNzdjYTMzYTBhYTI1ZTIzNWNjN2Y2NjU1YTgwYmE4YWVlYzg3OTA1YmIyYTc1NDU5YjdiY2M1YTEzM2YyOTkzNDkzYjQxZmZjZjYzY2Q3YTM5MWUzZTZmNzgwOTRjYTQ0MmM4MDE0NDQwM2NiMGE1ZjAwYmZjNjFhZTg4MCIKIAogUEtDUzcgUGFyc2UgRmFpbHVyZSBJbnZhbGlkIEFTTjE6IENoYW5nZSBsZW5ndGggZnJvbSAxIHRvIDIgIzU2MC4wCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NgogcGtjczdfYXNuMV9mYWlsOiIzMDgyMDQ5ZDA2MDkyYTg2NDg4NmY3MGQwMTA3MDJhMDgyMDQ4ZTMwODIwNDhhMDIwMTAxMzEwZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGIwNjA5MmE4NjQ4ODZmNzBkMDEwNzAxMzE4MjA0NjUzMDgyMDE3MzAyMDIwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwNWJlY2Q4NzE5NWMxZGVmZjkwYzI0YzkxMjY5YjU1YjNmMDY5YmMyMjVjMzI2YzMxNGMxYTUxNzg2ZmZlMTRjODMwYmU0ZTRiYzczY2JhMzZjOTc2NzdiNDQxNjgyNzliZTkxZTdjZGY3YzE5Mzg2YWUyMTg2MjcxOWQxM2EzYTBmZmYwODAzZDQ2MDk2MmYyY2RhODM3MTQ4NDg3MzI1MmMzZDcwNTRkYjgxNDNlMmIwODFhMzgxNmVkMDgwNGNhNTA5OWFlNWZlY2U4M2Q1YzJjMzc4M2IxOTg4YjRiNDZkYzk0ZTU1NTg3YTEwN2VhMTU0NmJmMjJkMjhhMDk3ZjY1MmE0MDY2ZGMyOTY1MjY5MDY5YWYyZjUxNzZiYjhjZTljYTZkMTFmOTY3NTdmMDMyMDRmNzU2NzAzNTg3ZDAwYWQ0MjQ3OTZjOTJmYzdhZWI2ZjQ5NDQzMTk5OWVkYTMwOTkwZTRmNTc3MzYzMmVkMjU4ZmUwMjc2NjczNTk5ZGE2ZmNlMzVjZGFkNzcyNmEwYmIwMjRjYWQ5OTZiODhlMGNiOTg4NTRjZWI1YzBiNmVjNzQ4ZDlmOWNlNmE2Y2Q0Mzc4NThiYWNiODE0NjE4YTI3MmZmM2E0MTVjNmUwN2YzZGIwOTg4Nzc3ZmRlYzg0NWE5N2JmN2QxMDJkZDAzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzIwMjE0NTY0ZDU1NDAyNWFmNTk5ZTMyNzA3OWIyNzIwZWYwMGRmMzdjZmI3YzMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwMDQ2MDk4ZGM1ZjJiOTllM2JjMmVkNjY0MmQ3ZjBhNjFlZmFiYzE1YzM4Yzc2MzMzYmNjY2VlZWUzNjlhNGY0YTViZGRhOGVhNTkyNjQxMjRlNDI5ZjA4NjMyNjgzZGRiYTE3YmJmMjYyZDgyYjZiZWZhM2I0ZTE0ODAzNzZhOGM3ZjNjN2Q3ZTJhNjc3OWJiZjE4MjYyYWE4NTdkZThjMjBhMTJiNmEyY2U4ZTRkN2YzMWRkMWIxOTUzOTJjZjYxODVhZmNlMzRhZmUwNTg5NjA1N2IzNmU5YjE3MWI2YzY3ZWQ3YzIyODZjYmZhODNmZjhhMTY3YzdiYzcxMDlhZWU3ZDdlMTkwOWJkMzg0ZmJmYzYxOTM4ZWZjYTUxYzg5OTNjNzFkYjMxNzczMGYxNmU3ZTc3Njg2N2FlNGZkYzU2MmQ2ZjE1ZGU1ODVlN2I5NGVmNDk2YTM2NzYzNjdhMmNiYWFiN2I2MzY2NDhiMDA3NmJhZDVjZGYxZTA5NzQwZWM2YTQ1MWJmZjUzNGVmYTIxNTA5ZjNiYTc3YjgxMDFiOTFlYTdlNTVkZGJmZTE0MDE1MTcwNjdkN2IwMWEyYTA4NzlmMDg4NWM4OTRhODdjZmI2OGM0ZDdlZTg5MDYwNDg4MWFlYjk3YzIyZDFmMzM3ZWY5MjNlMDM1YTY0MDAzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzMwMjE0NjI0NzcyOTg3NTllOGUwNDcxOGFlNTYzMTU1ZjM1MjNjZmI4NGNkYjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwNmQyY2JiMzdmZDEyOTU3ZTVhNzQ4MGNlMDQzNWU4ZWY2MDc3ZGVmMDhmZjI3MDg0NGRlMjUxNmE0NzQyZjIxMWQ4Yzc0NjkwYmMwOTQ4ZTA4YTI5NmFiYmE5Mjg1ZjZiYjMwNWI5NWI3Zjk0MDhjZTQ0ZTgzODgwYzcxOTQ0NDY3MmVjOTk3NDZiYTc4Y2M0YmRlNDc1MzE5ZDAxYmRlNzdjNDlkNThkMTZkM2IyZTkxYzJlNjFlODMwM2NhM2Q3ZWRhMzc5N2ZkOGIzNWNhNzJiYjE0YjE1YTI0YjU2YmI3MGRjMTM0ODQ1NjU4MDgxMTBmZjVkYjU4YzU2ZjdhMDQzNTYwN2UzYzM1MmZiZjRmNTUxMDZmMjk4MGZkM2NkNDIzOTdkYmY3MTM3ZWU3ZjFlMzJjZDgwYTNiN2FiMTJiNDZjMTY5MjIwMjc4ZDc3MTdiNzhhM2M0NWQ2Mzk1YTEzMGE4YjU4ODQxY2JjMjkwZTRmODE3ZGUzYTRmZTE2ZWNkMDc3Y2EzM2EwYWEyNWUyMzVjYzdmNjY1NWE4MGJhOGFlZWM4NzkwNWJiMmE3NTQ1OWI3YmNjNWExMzNmMjk5MzQ5M2I0MWZmY2Y2M2NkN2EzOTFlM2U2Zjc4MDk0Y2E0NDJjODAxNDQ0MDNjYjBhNWYwMGJmYzYxYWU4ODAiCiAKIFBLQ1M3IFBhcnNlIEZhaWx1cmUgSW52YWxpZCBBU04xOiBDaGFuZ2UgbGVuZ3RoIGZyb20gMSB0byAwICM1NjEuMAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHBrY3M3X2FzbjFfZmFpbDoiMzA4MjA0OWQwNjA5MmE4NjQ4ODZmNzBkMDEwNzAyYTA4MjA0OGUzMDgyMDQ4YTAyMDEwMTMxMGYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBiMDYwOTJhODY0ODg2ZjcwZDAxMDcwMTMxODIwNDY1MzA4MjAxNzMwMjAwMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDViZWNkODcxOTVjMWRlZmY5MGMyNGM5MTI2OWI1NWIzZjA2OWJjMjI1YzMyNmMzMTRjMWE1MTc4NmZmZTE0YzgzMGJlNGU0YmM3M2NiYTM2Yzk3Njc3YjQ0MTY4Mjc5YmU5MWU3Y2RmN2MxOTM4NmFlMjE4NjI3MTlkMTNhM2EwZmZmMDgwM2Q0NjA5NjJmMmNkYTgzNzE0ODQ4NzMyNTJjM2Q3MDU0ZGI4MTQzZTJiMDgxYTM4MTZlZDA4MDRjYTUwOTlhZTVmZWNlODNkNWMyYzM3ODNiMTk4OGI0YjQ2ZGM5NGU1NTU4N2ExMDdlYTE1NDZiZjIyZDI4YTA5N2Y2NTJhNDA2NmRjMjk2NTI2OTA2OWFmMmY1MTc2YmI4Y2U5Y2E2ZDExZjk2NzU3ZjAzMjA0Zjc1NjcwMzU4N2QwMGFkNDI0Nzk2YzkyZmM3YWViNmY0OTQ0MzE5OTllZGEzMDk5MGU0ZjU3NzM2MzJlZDI1OGZlMDI3NjY3MzU5OWRhNmZjZTM1Y2RhZDc3MjZhMGJiMDI0Y2FkOTk2Yjg4ZTBjYjk4ODU0Y2ViNWMwYjZlYzc0OGQ5ZjljZTZhNmNkNDM3ODU4YmFjYjgxNDYxOGEyNzJmZjNhNDE1YzZlMDdmM2RiMDk4ODc3N2ZkZWM4NDVhOTdiZjdkMTAyZGQwMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMyMDIxNDU2NGQ1NTQwMjVhZjU5OWUzMjcwNzliMjcyMGVmMDBkZjM3Y2ZiN2MzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDA0NjA5OGRjNWYyYjk5ZTNiYzJlZDY2NDJkN2YwYTYxZWZhYmMxNWMzOGM3NjMzM2JjY2NlZWVlMzY5YTRmNGE1YmRkYThlYTU5MjY0MTI0ZTQyOWYwODYzMjY4M2RkYmExN2JiZjI2MmQ4MmI2YmVmYTNiNGUxNDgwMzc2YThjN2YzYzdkN2UyYTY3NzliYmYxODI2MmFhODU3ZGU4YzIwYTEyYjZhMmNlOGU0ZDdmMzFkZDFiMTk1MzkyY2Y2MTg1YWZjZTM0YWZlMDU4OTYwNTdiMzZlOWIxNzFiNmM2N2VkN2MyMjg2Y2JmYTgzZmY4YTE2N2M3YmM3MTA5YWVlN2Q3ZTE5MDliZDM4NGZiZmM2MTkzOGVmY2E1MWM4OTkzYzcxZGIzMTc3MzBmMTZlN2U3NzY4NjdhZTRmZGM1NjJkNmYxNWRlNTg1ZTdiOTRlZjQ5NmEzNjc2MzY3YTJjYmFhYjdiNjM2NjQ4YjAwNzZiYWQ1Y2RmMWUwOTc0MGVjNmE0NTFiZmY1MzRlZmEyMTUwOWYzYmE3N2I4MTAxYjkxZWE3ZTU1ZGRiZmUxNDAxNTE3MDY3ZDdiMDFhMmEwODc5ZjA4ODVjODk0YTg3Y2ZiNjhjNGQ3ZWU4OTA2MDQ4ODFhZWI5N2MyMmQxZjMzN2VmOTIzZTAzNWE2NDAwMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMzMDIxNDYyNDc3Mjk4NzU5ZThlMDQ3MThhZTU2MzE1NWYzNTIzY2ZiODRjZGIzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDZkMmNiYjM3ZmQxMjk1N2U1YTc0ODBjZTA0MzVlOGVmNjA3N2RlZjA4ZmYyNzA4NDRkZTI1MTZhNDc0MmYyMTFkOGM3NDY5MGJjMDk0OGUwOGEyOTZhYmJhOTI4NWY2YmIzMDViOTViN2Y5NDA4Y2U0NGU4Mzg4MGM3MTk0NDQ2NzJlYzk5NzQ2YmE3OGNjNGJkZTQ3NTMxOWQwMWJkZTc3YzQ5ZDU4ZDE2ZDNiMmU5MWMyZTYxZTgzMDNjYTNkN2VkYTM3OTdmZDhiMzVjYTcyYmIxNGIxNWEyNGI1NmJiNzBkYzEzNDg0NTY1ODA4MTEwZmY1ZGI1OGM1NmY3YTA0MzU2MDdlM2MzNTJmYmY0ZjU1MTA2ZjI5ODBmZDNjZDQyMzk3ZGJmNzEzN2VlN2YxZTMyY2Q4MGEzYjdhYjEyYjQ2YzE2OTIyMDI3OGQ3NzE3Yjc4YTNjNDVkNjM5NWExMzBhOGI1ODg0MWNiYzI5MGU0ZjgxN2RlM2E0ZmUxNmVjZDA3N2NhMzNhMGFhMjVlMjM1Y2M3ZjY2NTVhODBiYThhZWVjODc5MDViYjJhNzU0NTliN2JjYzVhMTMzZjI5OTM0OTNiNDFmZmNmNjNjZDdhMzkxZTNlNmY3ODA5NGNhNDQyYzgwMTQ0NDAzY2IwYTVmMDBiZmM2MWFlODgwIgogCiBQS0NTNyBQYXJzZSBGYWlsdXJlIEludmFsaWQgQVNOMTogQ2hhbmdlIHRhZyAzMCB0byAwMiAjNTYyLjAKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBwa2NzN19hc24xX2ZhaWw6IjMwODIwNDlkMDYwOTJhODY0ODg2ZjcwZDAxMDcwMmEwODIwNDhlMzA4MjA0OGEwMjAxMDEzMTBmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwYjA2MDkyYTg2NDg4NmY3MGQwMTA3MDEzMTgyMDQ2NTMwODIwMTczMDIwMTAxMDI0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTAyMTQ3YmRlZGRkMjQ0NGNkMWNkZmU1YzQxYTgxMDJjODliN2RmMmU2Y2JmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDA1YmVjZDg3MTk1YzFkZWZmOTBjMjRjOTEyNjliNTViM2YwNjliYzIyNWMzMjZjMzE0YzFhNTE3ODZmZmUxNGM4MzBiZTRlNGJjNzNjYmEzNmM5NzY3N2I0NDE2ODI3OWJlOTFlN2NkZjdjMTkzODZhZTIxODYyNzE5ZDEzYTNhMGZmZjA4MDNkNDYwOTYyZjJjZGE4MzcxNDg0ODczMjUyYzNkNzA1NGRiODE0M2UyYjA4MWEzODE2ZWQwODA0Y2E1MDk5YWU1ZmVjZTgzZDVjMmMzNzgzYjE5ODhiNGI0NmRjOTRlNTU1ODdhMTA3ZWExNTQ2YmYyMmQyOGEwOTdmNjUyYTQwNjZkYzI5NjUyNjkwNjlhZjJmNTE3NmJiOGNlOWNhNmQxMWY5Njc1N2YwMzIwNGY3NTY3MDM1ODdkMDBhZDQyNDc5NmM5MmZjN2FlYjZmNDk0NDMxOTk5ZWRhMzA5OTBlNGY1NzczNjMyZWQyNThmZTAyNzY2NzM1OTlkYTZmY2UzNWNkYWQ3NzI2YTBiYjAyNGNhZDk5NmI4OGUwY2I5ODg1NGNlYjVjMGI2ZWM3NDhkOWY5Y2U2YTZjZDQzNzg1OGJhY2I4MTQ2MThhMjcyZmYzYTQxNWM2ZTA3ZjNkYjA5ODg3NzdmZGVjODQ1YTk3YmY3ZDEwMmRkMDMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMjAyMTQ1NjRkNTU0MDI1YWY1OTllMzI3MDc5YjI3MjBlZjAwZGYzN2NmYjdjMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDAwNDYwOThkYzVmMmI5OWUzYmMyZWQ2NjQyZDdmMGE2MWVmYWJjMTVjMzhjNzYzMzNiY2NjZWVlZTM2OWE0ZjRhNWJkZGE4ZWE1OTI2NDEyNGU0MjlmMDg2MzI2ODNkZGJhMTdiYmYyNjJkODJiNmJlZmEzYjRlMTQ4MDM3NmE4YzdmM2M3ZDdlMmE2Nzc5YmJmMTgyNjJhYTg1N2RlOGMyMGExMmI2YTJjZThlNGQ3ZjMxZGQxYjE5NTM5MmNmNjE4NWFmY2UzNGFmZTA1ODk2MDU3YjM2ZTliMTcxYjZjNjdlZDdjMjI4NmNiZmE4M2ZmOGExNjdjN2JjNzEwOWFlZTdkN2UxOTA5YmQzODRmYmZjNjE5MzhlZmNhNTFjODk5M2M3MWRiMzE3NzMwZjE2ZTdlNzc2ODY3YWU0ZmRjNTYyZDZmMTVkZTU4NWU3Yjk0ZWY0OTZhMzY3NjM2N2EyY2JhYWI3YjYzNjY0OGIwMDc2YmFkNWNkZjFlMDk3NDBlYzZhNDUxYmZmNTM0ZWZhMjE1MDlmM2JhNzdiODEwMWI5MWVhN2U1NWRkYmZlMTQwMTUxNzA2N2Q3YjAxYTJhMDg3OWYwODg1Yzg5NGE4N2NmYjY4YzRkN2VlODkwNjA0ODgxYWViOTdjMjJkMWYzMzdlZjkyM2UwMzVhNjQwMDMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMzAyMTQ2MjQ3NzI5ODc1OWU4ZTA0NzE4YWU1NjMxNTVmMzUyM2NmYjg0Y2RiMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDA2ZDJjYmIzN2ZkMTI5NTdlNWE3NDgwY2UwNDM1ZThlZjYwNzdkZWYwOGZmMjcwODQ0ZGUyNTE2YTQ3NDJmMjExZDhjNzQ2OTBiYzA5NDhlMDhhMjk2YWJiYTkyODVmNmJiMzA1Yjk1YjdmOTQwOGNlNDRlODM4ODBjNzE5NDQ0NjcyZWM5OTc0NmJhNzhjYzRiZGU0NzUzMTlkMDFiZGU3N2M0OWQ1OGQxNmQzYjJlOTFjMmU2MWU4MzAzY2EzZDdlZGEzNzk3ZmQ4YjM1Y2E3MmJiMTRiMTVhMjRiNTZiYjcwZGMxMzQ4NDU2NTgwODExMGZmNWRiNThjNTZmN2EwNDM1NjA3ZTNjMzUyZmJmNGY1NTEwNmYyOTgwZmQzY2Q0MjM5N2RiZjcxMzdlZTdmMWUzMmNkODBhM2I3YWIxMmI0NmMxNjkyMjAyNzhkNzcxN2I3OGEzYzQ1ZDYzOTVhMTMwYThiNTg4NDFjYmMyOTBlNGY4MTdkZTNhNGZlMTZlY2QwNzdjYTMzYTBhYTI1ZTIzNWNjN2Y2NjU1YTgwYmE4YWVlYzg3OTA1YmIyYTc1NDU5YjdiY2M1YTEzM2YyOTkzNDkzYjQxZmZjZjYzY2Q3YTM5MWUzZTZmNzgwOTRjYTQ0MmM4MDE0NDQwM2NiMGE1ZjAwYmZjNjFhZTg4MCIKIAogUEtDUzcgUGFyc2UgRmFpbHVyZSBJbnZhbGlkIEFTTjE6IENoYW5nZSBsZW5ndGggZnJvbSA3NiB0byA3NyAjNTYzLjAKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBwa2NzN19hc24xX2ZhaWw6IjMwODIwNDlkMDYwOTJhODY0ODg2ZjcwZDAxMDcwMmEwODIwNDhlMzA4MjA0OGEwMjAxMDEzMTBmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwYjA2MDkyYTg2NDg4NmY3MGQwMTA3MDEzMTgyMDQ2NTMwODIwMTczMDIwMTAxMzA0ZDMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTAyMTQ3YmRlZGRkMjQ0NGNkMWNkZmU1YzQxYTgxMDJjODliN2RmMmU2Y2JmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDA1YmVjZDg3MTk1YzFkZWZmOTBjMjRjOTEyNjliNTViM2YwNjliYzIyNWMzMjZjMzE0YzFhNTE3ODZmZmUxNGM4MzBiZTRlNGJjNzNjYmEzNmM5NzY3N2I0NDE2ODI3OWJlOTFlN2NkZjdjMTkzODZhZTIxODYyNzE5ZDEzYTNhMGZmZjA4MDNkNDYwOTYyZjJjZGE4MzcxNDg0ODczMjUyYzNkNzA1NGRiODE0M2UyYjA4MWEzODE2ZWQwODA0Y2E1MDk5YWU1ZmVjZTgzZDVjMmMzNzgzYjE5ODhiNGI0NmRjOTRlNTU1ODdhMTA3ZWExNTQ2YmYyMmQyOGEwOTdmNjUyYTQwNjZkYzI5NjUyNjkwNjlhZjJmNTE3NmJiOGNlOWNhNmQxMWY5Njc1N2YwMzIwNGY3NTY3MDM1ODdkMDBhZDQyNDc5NmM5MmZjN2FlYjZmNDk0NDMxOTk5ZWRhMzA5OTBlNGY1NzczNjMyZWQyNThmZTAyNzY2NzM1OTlkYTZmY2UzNWNkYWQ3NzI2YTBiYjAyNGNhZDk5NmI4OGUwY2I5ODg1NGNlYjVjMGI2ZWM3NDhkOWY5Y2U2YTZjZDQzNzg1OGJhY2I4MTQ2MThhMjcyZmYzYTQxNWM2ZTA3ZjNkYjA5ODg3NzdmZGVjODQ1YTk3YmY3ZDEwMmRkMDMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMjAyMTQ1NjRkNTU0MDI1YWY1OTllMzI3MDc5YjI3MjBlZjAwZGYzN2NmYjdjMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDAwNDYwOThkYzVmMmI5OWUzYmMyZWQ2NjQyZDdmMGE2MWVmYWJjMTVjMzhjNzYzMzNiY2NjZWVlZTM2OWE0ZjRhNWJkZGE4ZWE1OTI2NDEyNGU0MjlmMDg2MzI2ODNkZGJhMTdiYmYyNjJkODJiNmJlZmEzYjRlMTQ4MDM3NmE4YzdmM2M3ZDdlMmE2Nzc5YmJmMTgyNjJhYTg1N2RlOGMyMGExMmI2YTJjZThlNGQ3ZjMxZGQxYjE5NTM5MmNmNjE4NWFmY2UzNGFmZTA1ODk2MDU3YjM2ZTliMTcxYjZjNjdlZDdjMjI4NmNiZmE4M2ZmOGExNjdjN2JjNzEwOWFlZTdkN2UxOTA5YmQzODRmYmZjNjE5MzhlZmNhNTFjODk5M2M3MWRiMzE3NzMwZjE2ZTdlNzc2ODY3YWU0ZmRjNTYyZDZmMTVkZTU4NWU3Yjk0ZWY0OTZhMzY3NjM2N2EyY2JhYWI3YjYzNjY0OGIwMDc2YmFkNWNkZjFlMDk3NDBlYzZhNDUxYmZmNTM0ZWZhMjE1MDlmM2JhNzdiODEwMWI5MWVhN2U1NWRkYmZlMTQwMTUxNzA2N2Q3YjAxYTJhMDg3OWYwODg1Yzg5NGE4N2NmYjY4YzRkN2VlODkwNjA0ODgxYWViOTdjMjJkMWYzMzdlZjkyM2UwMzVhNjQwMDMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMzAyMTQ2MjQ3NzI5ODc1OWU4ZTA0NzE4YWU1NjMxNTVmMzUyM2NmYjg0Y2RiMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDA2ZDJjYmIzN2ZkMTI5NTdlNWE3NDgwY2UwNDM1ZThlZjYwNzdkZWYwOGZmMjcwODQ0ZGUyNTE2YTQ3NDJmMjExZDhjNzQ2OTBiYzA5NDhlMDhhMjk2YWJiYTkyODVmNmJiMzA1Yjk1YjdmOTQwOGNlNDRlODM4ODBjNzE5NDQ0NjcyZWM5OTc0NmJhNzhjYzRiZGU0NzUzMTlkMDFiZGU3N2M0OWQ1OGQxNmQzYjJlOTFjMmU2MWU4MzAzY2EzZDdlZGEzNzk3ZmQ4YjM1Y2E3MmJiMTRiMTVhMjRiNTZiYjcwZGMxMzQ4NDU2NTgwODExMGZmNWRiNThjNTZmN2EwNDM1NjA3ZTNjMzUyZmJmNGY1NTEwNmYyOTgwZmQzY2Q0MjM5N2RiZjcxMzdlZTdmMWUzMmNkODBhM2I3YWIxMmI0NmMxNjkyMjAyNzhkNzcxN2I3OGEzYzQ1ZDYzOTVhMTMwYThiNTg4NDFjYmMyOTBlNGY4MTdkZTNhNGZlMTZlY2QwNzdjYTMzYTBhYTI1ZTIzNWNjN2Y2NjU1YTgwYmE4YWVlYzg3OTA1YmIyYTc1NDU5YjdiY2M1YTEzM2YyOTkzNDkzYjQxZmZjZjYzY2Q3YTM5MWUzZTZmNzgwOTRjYTQ0MmM4MDE0NDQwM2NiMGE1ZjAwYmZjNjFhZTg4MCIKIAogUEtDUzcgUGFyc2UgRmFpbHVyZSBJbnZhbGlkIEFTTjE6IENoYW5nZSBjb250ZW50cyBvZiB0YWcgMzAgdG8gY29udGFpbiBvbmUgdW5hY2NvdW50ZWQgZXh0cmEgYnl0ZSAjNTY0LjAKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBwa2NzN19hc24xX2ZhaWw6IjMwODIwNDlkMDYwOTJhODY0ODg2ZjcwZDAxMDcwMmEwODIwNDhlMzA4MjA0OGEwMjAxMDEzMTBmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwYjA2MDkyYTg2NDg4NmY3MGQwMTA3MDEzMTgyMDQ2NTMwODIwMTczMDIwMTAxMzA0ZDMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTAyMTQ3YmRlZGRkMjQ0NGNkMWNkZmU1YzQxYTgxMDJjODliN2RmMmU2Y2JmMDAzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDViZWNkODcxOTVjMWRlZmY5MGMyNGM5MTI2OWI1NWIzZjA2OWJjMjI1YzMyNmMzMTRjMWE1MTc4NmZmZTE0YzgzMGJlNGU0YmM3M2NiYTM2Yzk3Njc3YjQ0MTY4Mjc5YmU5MWU3Y2RmN2MxOTM4NmFlMjE4NjI3MTlkMTNhM2EwZmZmMDgwM2Q0NjA5NjJmMmNkYTgzNzE0ODQ4NzMyNTJjM2Q3MDU0ZGI4MTQzZTJiMDgxYTM4MTZlZDA4MDRjYTUwOTlhZTVmZWNlODNkNWMyYzM3ODNiMTk4OGI0YjQ2ZGM5NGU1NTU4N2ExMDdlYTE1NDZiZjIyZDI4YTA5N2Y2NTJhNDA2NmRjMjk2NTI2OTA2OWFmMmY1MTc2YmI4Y2U5Y2E2ZDExZjk2NzU3ZjAzMjA0Zjc1NjcwMzU4N2QwMGFkNDI0Nzk2YzkyZmM3YWViNmY0OTQ0MzE5OTllZGEzMDk5MGU0ZjU3NzM2MzJlZDI1OGZlMDI3NjY3MzU5OWRhNmZjZTM1Y2RhZDc3MjZhMGJiMDI0Y2FkOTk2Yjg4ZTBjYjk4ODU0Y2ViNWMwYjZlYzc0OGQ5ZjljZTZhNmNkNDM3ODU4YmFjYjgxNDYxOGEyNzJmZjNhNDE1YzZlMDdmM2RiMDk4ODc3N2ZkZWM4NDVhOTdiZjdkMTAyZGQwMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMyMDIxNDU2NGQ1NTQwMjVhZjU5OWUzMjcwNzliMjcyMGVmMDBkZjM3Y2ZiN2MzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDA0NjA5OGRjNWYyYjk5ZTNiYzJlZDY2NDJkN2YwYTYxZWZhYmMxNWMzOGM3NjMzM2JjY2NlZWVlMzY5YTRmNGE1YmRkYThlYTU5MjY0MTI0ZTQyOWYwODYzMjY4M2RkYmExN2JiZjI2MmQ4MmI2YmVmYTNiNGUxNDgwMzc2YThjN2YzYzdkN2UyYTY3NzliYmYxODI2MmFhODU3ZGU4YzIwYTEyYjZhMmNlOGU0ZDdmMzFkZDFiMTk1MzkyY2Y2MTg1YWZjZTM0YWZlMDU4OTYwNTdiMzZlOWIxNzFiNmM2N2VkN2MyMjg2Y2JmYTgzZmY4YTE2N2M3YmM3MTA5YWVlN2Q3ZTE5MDliZDM4NGZiZmM2MTkzOGVmY2E1MWM4OTkzYzcxZGIzMTc3MzBmMTZlN2U3NzY4NjdhZTRmZGM1NjJkNmYxNWRlNTg1ZTdiOTRlZjQ5NmEzNjc2MzY3YTJjYmFhYjdiNjM2NjQ4YjAwNzZiYWQ1Y2RmMWUwOTc0MGVjNmE0NTFiZmY1MzRlZmEyMTUwOWYzYmE3N2I4MTAxYjkxZWE3ZTU1ZGRiZmUxNDAxNTE3MDY3ZDdiMDFhMmEwODc5ZjA4ODVjODk0YTg3Y2ZiNjhjNGQ3ZWU4OTA2MDQ4ODFhZWI5N2MyMmQxZjMzN2VmOTIzZTAzNWE2NDAwMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMzMDIxNDYyNDc3Mjk4NzU5ZThlMDQ3MThhZTU2MzE1NWYzNTIzY2ZiODRjZGIzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDZkMmNiYjM3ZmQxMjk1N2U1YTc0ODBjZTA0MzVlOGVmNjA3N2RlZjA4ZmYyNzA4NDRkZTI1MTZhNDc0MmYyMTFkOGM3NDY5MGJjMDk0OGUwOGEyOTZhYmJhOTI4NWY2YmIzMDViOTViN2Y5NDA4Y2U0NGU4Mzg4MGM3MTk0NDQ2NzJlYzk5NzQ2YmE3OGNjNGJkZTQ3NTMxOWQwMWJkZTc3YzQ5ZDU4ZDE2ZDNiMmU5MWMyZTYxZTgzMDNjYTNkN2VkYTM3OTdmZDhiMzVjYTcyYmIxNGIxNWEyNGI1NmJiNzBkYzEzNDg0NTY1ODA4MTEwZmY1ZGI1OGM1NmY3YTA0MzU2MDdlM2MzNTJmYmY0ZjU1MTA2ZjI5ODBmZDNjZDQyMzk3ZGJmNzEzN2VlN2YxZTMyY2Q4MGEzYjdhYjEyYjQ2YzE2OTIyMDI3OGQ3NzE3Yjc4YTNjNDVkNjM5NWExMzBhOGI1ODg0MWNiYzI5MGU0ZjgxN2RlM2E0ZmUxNmVjZDA3N2NhMzNhMGFhMjVlMjM1Y2M3ZjY2NTVhODBiYThhZWVjODc5MDViYjJhNzU0NTliN2JjYzVhMTMzZjI5OTM0OTNiNDFmZmNmNjNjZDdhMzkxZTNlNmY3ODA5NGNhNDQyYzgwMTQ0NDAzY2IwYTVmMDBiZmM2MWFlODgwIgogCiBQS0NTNyBQYXJzZSBGYWlsdXJlIEludmFsaWQgQVNOMTogQ2hhbmdlIGxlbmd0aCBmcm9tIDc2IHRvIDc1ICM1NjUuMAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHBrY3M3X2FzbjFfZmFpbDoiMzA4MjA0OWQwNjA5MmE4NjQ4ODZmNzBkMDEwNzAyYTA4MjA0OGUzMDgyMDQ4YTAyMDEwMTMxMGYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBiMDYwOTJhODY0ODg2ZjcwZDAxMDcwMTMxODIwNDY1MzA4MjAxNzMwMjAxMDEzMDRiMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDViZWNkODcxOTVjMWRlZmY5MGMyNGM5MTI2OWI1NWIzZjA2OWJjMjI1YzMyNmMzMTRjMWE1MTc4NmZmZTE0YzgzMGJlNGU0YmM3M2NiYTM2Yzk3Njc3YjQ0MTY4Mjc5YmU5MWU3Y2RmN2MxOTM4NmFlMjE4NjI3MTlkMTNhM2EwZmZmMDgwM2Q0NjA5NjJmMmNkYTgzNzE0ODQ4NzMyNTJjM2Q3MDU0ZGI4MTQzZTJiMDgxYTM4MTZlZDA4MDRjYTUwOTlhZTVmZWNlODNkNWMyYzM3ODNiMTk4OGI0YjQ2ZGM5NGU1NTU4N2ExMDdlYTE1NDZiZjIyZDI4YTA5N2Y2NTJhNDA2NmRjMjk2NTI2OTA2OWFmMmY1MTc2YmI4Y2U5Y2E2ZDExZjk2NzU3ZjAzMjA0Zjc1NjcwMzU4N2QwMGFkNDI0Nzk2YzkyZmM3YWViNmY0OTQ0MzE5OTllZGEzMDk5MGU0ZjU3NzM2MzJlZDI1OGZlMDI3NjY3MzU5OWRhNmZjZTM1Y2RhZDc3MjZhMGJiMDI0Y2FkOTk2Yjg4ZTBjYjk4ODU0Y2ViNWMwYjZlYzc0OGQ5ZjljZTZhNmNkNDM3ODU4YmFjYjgxNDYxOGEyNzJmZjNhNDE1YzZlMDdmM2RiMDk4ODc3N2ZkZWM4NDVhOTdiZjdkMTAyZGQwMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMyMDIxNDU2NGQ1NTQwMjVhZjU5OWUzMjcwNzliMjcyMGVmMDBkZjM3Y2ZiN2MzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDA0NjA5OGRjNWYyYjk5ZTNiYzJlZDY2NDJkN2YwYTYxZWZhYmMxNWMzOGM3NjMzM2JjY2NlZWVlMzY5YTRmNGE1YmRkYThlYTU5MjY0MTI0ZTQyOWYwODYzMjY4M2RkYmExN2JiZjI2MmQ4MmI2YmVmYTNiNGUxNDgwMzc2YThjN2YzYzdkN2UyYTY3NzliYmYxODI2MmFhODU3ZGU4YzIwYTEyYjZhMmNlOGU0ZDdmMzFkZDFiMTk1MzkyY2Y2MTg1YWZjZTM0YWZlMDU4OTYwNTdiMzZlOWIxNzFiNmM2N2VkN2MyMjg2Y2JmYTgzZmY4YTE2N2M3YmM3MTA5YWVlN2Q3ZTE5MDliZDM4NGZiZmM2MTkzOGVmY2E1MWM4OTkzYzcxZGIzMTc3MzBmMTZlN2U3NzY4NjdhZTRmZGM1NjJkNmYxNWRlNTg1ZTdiOTRlZjQ5NmEzNjc2MzY3YTJjYmFhYjdiNjM2NjQ4YjAwNzZiYWQ1Y2RmMWUwOTc0MGVjNmE0NTFiZmY1MzRlZmEyMTUwOWYzYmE3N2I4MTAxYjkxZWE3ZTU1ZGRiZmUxNDAxNTE3MDY3ZDdiMDFhMmEwODc5ZjA4ODVjODk0YTg3Y2ZiNjhjNGQ3ZWU4OTA2MDQ4ODFhZWI5N2MyMmQxZjMzN2VmOTIzZTAzNWE2NDAwMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMzMDIxNDYyNDc3Mjk4NzU5ZThlMDQ3MThhZTU2MzE1NWYzNTIzY2ZiODRjZGIzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDZkMmNiYjM3ZmQxMjk1N2U1YTc0ODBjZTA0MzVlOGVmNjA3N2RlZjA4ZmYyNzA4NDRkZTI1MTZhNDc0MmYyMTFkOGM3NDY5MGJjMDk0OGUwOGEyOTZhYmJhOTI4NWY2YmIzMDViOTViN2Y5NDA4Y2U0NGU4Mzg4MGM3MTk0NDQ2NzJlYzk5NzQ2YmE3OGNjNGJkZTQ3NTMxOWQwMWJkZTc3YzQ5ZDU4ZDE2ZDNiMmU5MWMyZTYxZTgzMDNjYTNkN2VkYTM3OTdmZDhiMzVjYTcyYmIxNGIxNWEyNGI1NmJiNzBkYzEzNDg0NTY1ODA4MTEwZmY1ZGI1OGM1NmY3YTA0MzU2MDdlM2MzNTJmYmY0ZjU1MTA2ZjI5ODBmZDNjZDQyMzk3ZGJmNzEzN2VlN2YxZTMyY2Q4MGEzYjdhYjEyYjQ2YzE2OTIyMDI3OGQ3NzE3Yjc4YTNjNDVkNjM5NWExMzBhOGI1ODg0MWNiYzI5MGU0ZjgxN2RlM2E0ZmUxNmVjZDA3N2NhMzNhMGFhMjVlMjM1Y2M3ZjY2NTVhODBiYThhZWVjODc5MDViYjJhNzU0NTliN2JjYzVhMTMzZjI5OTM0OTNiNDFmZmNmNjNjZDdhMzkxZTNlNmY3ODA5NGNhNDQyYzgwMTQ0NDAzY2IwYTVmMDBiZmM2MWFlODgwIgogCiBQS0NTNyBQYXJzZSBGYWlsdXJlIEludmFsaWQgQVNOMTogQ2hhbmdlIHRhZyAzMCB0byAwMiAjNTY2LjAKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBwa2NzN19hc24xX2ZhaWw6IjMwODIwNDlkMDYwOTJhODY0ODg2ZjcwZDAxMDcwMmEwODIwNDhlMzA4MjA0OGEwMjAxMDEzMTBmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwYjA2MDkyYTg2NDg4NmY3MGQwMTA3MDEzMTgyMDQ2NTMwODIwMTczMDIwMTAxMzA0YzAyMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTAyMTQ3YmRlZGRkMjQ0NGNkMWNkZmU1YzQxYTgxMDJjODliN2RmMmU2Y2JmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDA1YmVjZDg3MTk1YzFkZWZmOTBjMjRjOTEyNjliNTViM2YwNjliYzIyNWMzMjZjMzE0YzFhNTE3ODZmZmUxNGM4MzBiZTRlNGJjNzNjYmEzNmM5NzY3N2I0NDE2ODI3OWJlOTFlN2NkZjdjMTkzODZhZTIxODYyNzE5ZDEzYTNhMGZmZjA4MDNkNDYwOTYyZjJjZGE4MzcxNDg0ODczMjUyYzNkNzA1NGRiODE0M2UyYjA4MWEzODE2ZWQwODA0Y2E1MDk5YWU1ZmVjZTgzZDVjMmMzNzgzYjE5ODhiNGI0NmRjOTRlNTU1ODdhMTA3ZWExNTQ2YmYyMmQyOGEwOTdmNjUyYTQwNjZkYzI5NjUyNjkwNjlhZjJmNTE3NmJiOGNlOWNhNmQxMWY5Njc1N2YwMzIwNGY3NTY3MDM1ODdkMDBhZDQyNDc5NmM5MmZjN2FlYjZmNDk0NDMxOTk5ZWRhMzA5OTBlNGY1NzczNjMyZWQyNThmZTAyNzY2NzM1OTlkYTZmY2UzNWNkYWQ3NzI2YTBiYjAyNGNhZDk5NmI4OGUwY2I5ODg1NGNlYjVjMGI2ZWM3NDhkOWY5Y2U2YTZjZDQzNzg1OGJhY2I4MTQ2MThhMjcyZmYzYTQxNWM2ZTA3ZjNkYjA5ODg3NzdmZGVjODQ1YTk3YmY3ZDEwMmRkMDMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMjAyMTQ1NjRkNTU0MDI1YWY1OTllMzI3MDc5YjI3MjBlZjAwZGYzN2NmYjdjMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDAwNDYwOThkYzVmMmI5OWUzYmMyZWQ2NjQyZDdmMGE2MWVmYWJjMTVjMzhjNzYzMzNiY2NjZWVlZTM2OWE0ZjRhNWJkZGE4ZWE1OTI2NDEyNGU0MjlmMDg2MzI2ODNkZGJhMTdiYmYyNjJkODJiNmJlZmEzYjRlMTQ4MDM3NmE4YzdmM2M3ZDdlMmE2Nzc5YmJmMTgyNjJhYTg1N2RlOGMyMGExMmI2YTJjZThlNGQ3ZjMxZGQxYjE5NTM5MmNmNjE4NWFmY2UzNGFmZTA1ODk2MDU3YjM2ZTliMTcxYjZjNjdlZDdjMjI4NmNiZmE4M2ZmOGExNjdjN2JjNzEwOWFlZTdkN2UxOTA5YmQzODRmYmZjNjE5MzhlZmNhNTFjODk5M2M3MWRiMzE3NzMwZjE2ZTdlNzc2ODY3YWU0ZmRjNTYyZDZmMTVkZTU4NWU3Yjk0ZWY0OTZhMzY3NjM2N2EyY2JhYWI3YjYzNjY0OGIwMDc2YmFkNWNkZjFlMDk3NDBlYzZhNDUxYmZmNTM0ZWZhMjE1MDlmM2JhNzdiODEwMWI5MWVhN2U1NWRkYmZlMTQwMTUxNzA2N2Q3YjAxYTJhMDg3OWYwODg1Yzg5NGE4N2NmYjY4YzRkN2VlODkwNjA0ODgxYWViOTdjMjJkMWYzMzdlZjkyM2UwMzVhNjQwMDMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMzAyMTQ2MjQ3NzI5ODc1OWU4ZTA0NzE4YWU1NjMxNTVmMzUyM2NmYjg0Y2RiMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDA2ZDJjYmIzN2ZkMTI5NTdlNWE3NDgwY2UwNDM1ZThlZjYwNzdkZWYwOGZmMjcwODQ0ZGUyNTE2YTQ3NDJmMjExZDhjNzQ2OTBiYzA5NDhlMDhhMjk2YWJiYTkyODVmNmJiMzA1Yjk1YjdmOTQwOGNlNDRlODM4ODBjNzE5NDQ0NjcyZWM5OTc0NmJhNzhjYzRiZGU0NzUzMTlkMDFiZGU3N2M0OWQ1OGQxNmQzYjJlOTFjMmU2MWU4MzAzY2EzZDdlZGEzNzk3ZmQ4YjM1Y2E3MmJiMTRiMTVhMjRiNTZiYjcwZGMxMzQ4NDU2NTgwODExMGZmNWRiNThjNTZmN2EwNDM1NjA3ZTNjMzUyZmJmNGY1NTEwNmYyOTgwZmQzY2Q0MjM5N2RiZjcxMzdlZTdmMWUzMmNkODBhM2I3YWIxMmI0NmMxNjkyMjAyNzhkNzcxN2I3OGEzYzQ1ZDYzOTVhMTMwYThiNTg4NDFjYmMyOTBlNGY4MTdkZTNhNGZlMTZlY2QwNzdjYTMzYTBhYTI1ZTIzNWNjN2Y2NjU1YTgwYmE4YWVlYzg3OTA1YmIyYTc1NDU5YjdiY2M1YTEzM2YyOTkzNDkzYjQxZmZjZjYzY2Q3YTM5MWUzZTZmNzgwOTRjYTQ0MmM4MDE0NDQwM2NiMGE1ZjAwYmZjNjFhZTg4MCIKIAogUEtDUzcgUGFyc2UgRmFpbHVyZSBJbnZhbGlkIEFTTjE6IENoYW5nZSBsZW5ndGggZnJvbSA1MiB0byA1MyAjNTY3LjAKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBwa2NzN19hc24xX2ZhaWw6IjMwODIwNDlkMDYwOTJhODY0ODg2ZjcwZDAxMDcwMmEwODIwNDhlMzA4MjA0OGEwMjAxMDEzMTBmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwYjA2MDkyYTg2NDg4NmY3MGQwMTA3MDEzMTgyMDQ2NTMwODIwMTczMDIwMTAxMzA0YzMwMzUzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTAyMTQ3YmRlZGRkMjQ0NGNkMWNkZmU1YzQxYTgxMDJjODliN2RmMmU2Y2JmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDA1YmVjZDg3MTk1YzFkZWZmOTBjMjRjOTEyNjliNTViM2YwNjliYzIyNWMzMjZjMzE0YzFhNTE3ODZmZmUxNGM4MzBiZTRlNGJjNzNjYmEzNmM5NzY3N2I0NDE2ODI3OWJlOTFlN2NkZjdjMTkzODZhZTIxODYyNzE5ZDEzYTNhMGZmZjA4MDNkNDYwOTYyZjJjZGE4MzcxNDg0ODczMjUyYzNkNzA1NGRiODE0M2UyYjA4MWEzODE2ZWQwODA0Y2E1MDk5YWU1ZmVjZTgzZDVjMmMzNzgzYjE5ODhiNGI0NmRjOTRlNTU1ODdhMTA3ZWExNTQ2YmYyMmQyOGEwOTdmNjUyYTQwNjZkYzI5NjUyNjkwNjlhZjJmNTE3NmJiOGNlOWNhNmQxMWY5Njc1N2YwMzIwNGY3NTY3MDM1ODdkMDBhZDQyNDc5NmM5MmZjN2FlYjZmNDk0NDMxOTk5ZWRhMzA5OTBlNGY1NzczNjMyZWQyNThmZTAyNzY2NzM1OTlkYTZmY2UzNWNkYWQ3NzI2YTBiYjAyNGNhZDk5NmI4OGUwY2I5ODg1NGNlYjVjMGI2ZWM3NDhkOWY5Y2U2YTZjZDQzNzg1OGJhY2I4MTQ2MThhMjcyZmYzYTQxNWM2ZTA3ZjNkYjA5ODg3NzdmZGVjODQ1YTk3YmY3ZDEwMmRkMDMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMjAyMTQ1NjRkNTU0MDI1YWY1OTllMzI3MDc5YjI3MjBlZjAwZGYzN2NmYjdjMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDAwNDYwOThkYzVmMmI5OWUzYmMyZWQ2NjQyZDdmMGE2MWVmYWJjMTVjMzhjNzYzMzNiY2NjZWVlZTM2OWE0ZjRhNWJkZGE4ZWE1OTI2NDEyNGU0MjlmMDg2MzI2ODNkZGJhMTdiYmYyNjJkODJiNmJlZmEzYjRlMTQ4MDM3NmE4YzdmM2M3ZDdlMmE2Nzc5YmJmMTgyNjJhYTg1N2RlOGMyMGExMmI2YTJjZThlNGQ3ZjMxZGQxYjE5NTM5MmNmNjE4NWFmY2UzNGFmZTA1ODk2MDU3YjM2ZTliMTcxYjZjNjdlZDdjMjI4NmNiZmE4M2ZmOGExNjdjN2JjNzEwOWFlZTdkN2UxOTA5YmQzODRmYmZjNjE5MzhlZmNhNTFjODk5M2M3MWRiMzE3NzMwZjE2ZTdlNzc2ODY3YWU0ZmRjNTYyZDZmMTVkZTU4NWU3Yjk0ZWY0OTZhMzY3NjM2N2EyY2JhYWI3YjYzNjY0OGIwMDc2YmFkNWNkZjFlMDk3NDBlYzZhNDUxYmZmNTM0ZWZhMjE1MDlmM2JhNzdiODEwMWI5MWVhN2U1NWRkYmZlMTQwMTUxNzA2N2Q3YjAxYTJhMDg3OWYwODg1Yzg5NGE4N2NmYjY4YzRkN2VlODkwNjA0ODgxYWViOTdjMjJkMWYzMzdlZjkyM2UwMzVhNjQwMDMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMzAyMTQ2MjQ3NzI5ODc1OWU4ZTA0NzE4YWU1NjMxNTVmMzUyM2NmYjg0Y2RiMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDA2ZDJjYmIzN2ZkMTI5NTdlNWE3NDgwY2UwNDM1ZThlZjYwNzdkZWYwOGZmMjcwODQ0ZGUyNTE2YTQ3NDJmMjExZDhjNzQ2OTBiYzA5NDhlMDhhMjk2YWJiYTkyODVmNmJiMzA1Yjk1YjdmOTQwOGNlNDRlODM4ODBjNzE5NDQ0NjcyZWM5OTc0NmJhNzhjYzRiZGU0NzUzMTlkMDFiZGU3N2M0OWQ1OGQxNmQzYjJlOTFjMmU2MWU4MzAzY2EzZDdlZGEzNzk3ZmQ4YjM1Y2E3MmJiMTRiMTVhMjRiNTZiYjcwZGMxMzQ4NDU2NTgwODExMGZmNWRiNThjNTZmN2EwNDM1NjA3ZTNjMzUyZmJmNGY1NTEwNmYyOTgwZmQzY2Q0MjM5N2RiZjcxMzdlZTdmMWUzMmNkODBhM2I3YWIxMmI0NmMxNjkyMjAyNzhkNzcxN2I3OGEzYzQ1ZDYzOTVhMTMwYThiNTg4NDFjYmMyOTBlNGY4MTdkZTNhNGZlMTZlY2QwNzdjYTMzYTBhYTI1ZTIzNWNjN2Y2NjU1YTgwYmE4YWVlYzg3OTA1YmIyYTc1NDU5YjdiY2M1YTEzM2YyOTkzNDkzYjQxZmZjZjYzY2Q3YTM5MWUzZTZmNzgwOTRjYTQ0MmM4MDE0NDQwM2NiMGE1ZjAwYmZjNjFhZTg4MCIKIAogUEtDUzcgUGFyc2UgRmFpbHVyZSBJbnZhbGlkIEFTTjE6IENoYW5nZSBjb250ZW50cyBvZiB0YWcgMzAgdG8gY29udGFpbiBvbmUgdW5hY2NvdW50ZWQgZXh0cmEgYnl0ZSAjNTY4LjAKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBwa2NzN19hc24xX2ZhaWw6IjMwODIwNDlkMDYwOTJhODY0ODg2ZjcwZDAxMDcwMmEwODIwNDhlMzA4MjA0OGEwMjAxMDEzMTBmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwYjA2MDkyYTg2NDg4NmY3MGQwMTA3MDEzMTgyMDQ2NTMwODIwMTczMDIwMTAxMzA0YzMwMzUzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTAwMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDViZWNkODcxOTVjMWRlZmY5MGMyNGM5MTI2OWI1NWIzZjA2OWJjMjI1YzMyNmMzMTRjMWE1MTc4NmZmZTE0YzgzMGJlNGU0YmM3M2NiYTM2Yzk3Njc3YjQ0MTY4Mjc5YmU5MWU3Y2RmN2MxOTM4NmFlMjE4NjI3MTlkMTNhM2EwZmZmMDgwM2Q0NjA5NjJmMmNkYTgzNzE0ODQ4NzMyNTJjM2Q3MDU0ZGI4MTQzZTJiMDgxYTM4MTZlZDA4MDRjYTUwOTlhZTVmZWNlODNkNWMyYzM3ODNiMTk4OGI0YjQ2ZGM5NGU1NTU4N2ExMDdlYTE1NDZiZjIyZDI4YTA5N2Y2NTJhNDA2NmRjMjk2NTI2OTA2OWFmMmY1MTc2YmI4Y2U5Y2E2ZDExZjk2NzU3ZjAzMjA0Zjc1NjcwMzU4N2QwMGFkNDI0Nzk2YzkyZmM3YWViNmY0OTQ0MzE5OTllZGEzMDk5MGU0ZjU3NzM2MzJlZDI1OGZlMDI3NjY3MzU5OWRhNmZjZTM1Y2RhZDc3MjZhMGJiMDI0Y2FkOTk2Yjg4ZTBjYjk4ODU0Y2ViNWMwYjZlYzc0OGQ5ZjljZTZhNmNkNDM3ODU4YmFjYjgxNDYxOGEyNzJmZjNhNDE1YzZlMDdmM2RiMDk4ODc3N2ZkZWM4NDVhOTdiZjdkMTAyZGQwMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMyMDIxNDU2NGQ1NTQwMjVhZjU5OWUzMjcwNzliMjcyMGVmMDBkZjM3Y2ZiN2MzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDA0NjA5OGRjNWYyYjk5ZTNiYzJlZDY2NDJkN2YwYTYxZWZhYmMxNWMzOGM3NjMzM2JjY2NlZWVlMzY5YTRmNGE1YmRkYThlYTU5MjY0MTI0ZTQyOWYwODYzMjY4M2RkYmExN2JiZjI2MmQ4MmI2YmVmYTNiNGUxNDgwMzc2YThjN2YzYzdkN2UyYTY3NzliYmYxODI2MmFhODU3ZGU4YzIwYTEyYjZhMmNlOGU0ZDdmMzFkZDFiMTk1MzkyY2Y2MTg1YWZjZTM0YWZlMDU4OTYwNTdiMzZlOWIxNzFiNmM2N2VkN2MyMjg2Y2JmYTgzZmY4YTE2N2M3YmM3MTA5YWVlN2Q3ZTE5MDliZDM4NGZiZmM2MTkzOGVmY2E1MWM4OTkzYzcxZGIzMTc3MzBmMTZlN2U3NzY4NjdhZTRmZGM1NjJkNmYxNWRlNTg1ZTdiOTRlZjQ5NmEzNjc2MzY3YTJjYmFhYjdiNjM2NjQ4YjAwNzZiYWQ1Y2RmMWUwOTc0MGVjNmE0NTFiZmY1MzRlZmEyMTUwOWYzYmE3N2I4MTAxYjkxZWE3ZTU1ZGRiZmUxNDAxNTE3MDY3ZDdiMDFhMmEwODc5ZjA4ODVjODk0YTg3Y2ZiNjhjNGQ3ZWU4OTA2MDQ4ODFhZWI5N2MyMmQxZjMzN2VmOTIzZTAzNWE2NDAwMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMzMDIxNDYyNDc3Mjk4NzU5ZThlMDQ3MThhZTU2MzE1NWYzNTIzY2ZiODRjZGIzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDZkMmNiYjM3ZmQxMjk1N2U1YTc0ODBjZTA0MzVlOGVmNjA3N2RlZjA4ZmYyNzA4NDRkZTI1MTZhNDc0MmYyMTFkOGM3NDY5MGJjMDk0OGUwOGEyOTZhYmJhOTI4NWY2YmIzMDViOTViN2Y5NDA4Y2U0NGU4Mzg4MGM3MTk0NDQ2NzJlYzk5NzQ2YmE3OGNjNGJkZTQ3NTMxOWQwMWJkZTc3YzQ5ZDU4ZDE2ZDNiMmU5MWMyZTYxZTgzMDNjYTNkN2VkYTM3OTdmZDhiMzVjYTcyYmIxNGIxNWEyNGI1NmJiNzBkYzEzNDg0NTY1ODA4MTEwZmY1ZGI1OGM1NmY3YTA0MzU2MDdlM2MzNTJmYmY0ZjU1MTA2ZjI5ODBmZDNjZDQyMzk3ZGJmNzEzN2VlN2YxZTMyY2Q4MGEzYjdhYjEyYjQ2YzE2OTIyMDI3OGQ3NzE3Yjc4YTNjNDVkNjM5NWExMzBhOGI1ODg0MWNiYzI5MGU0ZjgxN2RlM2E0ZmUxNmVjZDA3N2NhMzNhMGFhMjVlMjM1Y2M3ZjY2NTVhODBiYThhZWVjODc5MDViYjJhNzU0NTliN2JjYzVhMTMzZjI5OTM0OTNiNDFmZmNmNjNjZDdhMzkxZTNlNmY3ODA5NGNhNDQyYzgwMTQ0NDAzY2IwYTVmMDBiZmM2MWFlODgwIgogCiBQS0NTNyBQYXJzZSBGYWlsdXJlIEludmFsaWQgQVNOMTogQ2hhbmdlIGxlbmd0aCBmcm9tIDUyIHRvIDUxICM1NjkuMAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHBrY3M3X2FzbjFfZmFpbDoiMzA4MjA0OWQwNjA5MmE4NjQ4ODZmNzBkMDEwNzAyYTA4MjA0OGUzMDgyMDQ4YTAyMDEwMTMxMGYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBiMDYwOTJhODY0ODg2ZjcwZDAxMDcwMTMxODIwNDY1MzA4MjAxNzMwMjAxMDEzMDRjMzAzMzMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDViZWNkODcxOTVjMWRlZmY5MGMyNGM5MTI2OWI1NWIzZjA2OWJjMjI1YzMyNmMzMTRjMWE1MTc4NmZmZTE0YzgzMGJlNGU0YmM3M2NiYTM2Yzk3Njc3YjQ0MTY4Mjc5YmU5MWU3Y2RmN2MxOTM4NmFlMjE4NjI3MTlkMTNhM2EwZmZmMDgwM2Q0NjA5NjJmMmNkYTgzNzE0ODQ4NzMyNTJjM2Q3MDU0ZGI4MTQzZTJiMDgxYTM4MTZlZDA4MDRjYTUwOTlhZTVmZWNlODNkNWMyYzM3ODNiMTk4OGI0YjQ2ZGM5NGU1NTU4N2ExMDdlYTE1NDZiZjIyZDI4YTA5N2Y2NTJhNDA2NmRjMjk2NTI2OTA2OWFmMmY1MTc2YmI4Y2U5Y2E2ZDExZjk2NzU3ZjAzMjA0Zjc1NjcwMzU4N2QwMGFkNDI0Nzk2YzkyZmM3YWViNmY0OTQ0MzE5OTllZGEzMDk5MGU0ZjU3NzM2MzJlZDI1OGZlMDI3NjY3MzU5OWRhNmZjZTM1Y2RhZDc3MjZhMGJiMDI0Y2FkOTk2Yjg4ZTBjYjk4ODU0Y2ViNWMwYjZlYzc0OGQ5ZjljZTZhNmNkNDM3ODU4YmFjYjgxNDYxOGEyNzJmZjNhNDE1YzZlMDdmM2RiMDk4ODc3N2ZkZWM4NDVhOTdiZjdkMTAyZGQwMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMyMDIxNDU2NGQ1NTQwMjVhZjU5OWUzMjcwNzliMjcyMGVmMDBkZjM3Y2ZiN2MzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDA0NjA5OGRjNWYyYjk5ZTNiYzJlZDY2NDJkN2YwYTYxZWZhYmMxNWMzOGM3NjMzM2JjY2NlZWVlMzY5YTRmNGE1YmRkYThlYTU5MjY0MTI0ZTQyOWYwODYzMjY4M2RkYmExN2JiZjI2MmQ4MmI2YmVmYTNiNGUxNDgwMzc2YThjN2YzYzdkN2UyYTY3NzliYmYxODI2MmFhODU3ZGU4YzIwYTEyYjZhMmNlOGU0ZDdmMzFkZDFiMTk1MzkyY2Y2MTg1YWZjZTM0YWZlMDU4OTYwNTdiMzZlOWIxNzFiNmM2N2VkN2MyMjg2Y2JmYTgzZmY4YTE2N2M3YmM3MTA5YWVlN2Q3ZTE5MDliZDM4NGZiZmM2MTkzOGVmY2E1MWM4OTkzYzcxZGIzMTc3MzBmMTZlN2U3NzY4NjdhZTRmZGM1NjJkNmYxNWRlNTg1ZTdiOTRlZjQ5NmEzNjc2MzY3YTJjYmFhYjdiNjM2NjQ4YjAwNzZiYWQ1Y2RmMWUwOTc0MGVjNmE0NTFiZmY1MzRlZmEyMTUwOWYzYmE3N2I4MTAxYjkxZWE3ZTU1ZGRiZmUxNDAxNTE3MDY3ZDdiMDFhMmEwODc5ZjA4ODVjODk0YTg3Y2ZiNjhjNGQ3ZWU4OTA2MDQ4ODFhZWI5N2MyMmQxZjMzN2VmOTIzZTAzNWE2NDAwMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMzMDIxNDYyNDc3Mjk4NzU5ZThlMDQ3MThhZTU2MzE1NWYzNTIzY2ZiODRjZGIzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDZkMmNiYjM3ZmQxMjk1N2U1YTc0ODBjZTA0MzVlOGVmNjA3N2RlZjA4ZmYyNzA4NDRkZTI1MTZhNDc0MmYyMTFkOGM3NDY5MGJjMDk0OGUwOGEyOTZhYmJhOTI4NWY2YmIzMDViOTViN2Y5NDA4Y2U0NGU4Mzg4MGM3MTk0NDQ2NzJlYzk5NzQ2YmE3OGNjNGJkZTQ3NTMxOWQwMWJkZTc3YzQ5ZDU4ZDE2ZDNiMmU5MWMyZTYxZTgzMDNjYTNkN2VkYTM3OTdmZDhiMzVjYTcyYmIxNGIxNWEyNGI1NmJiNzBkYzEzNDg0NTY1ODA4MTEwZmY1ZGI1OGM1NmY3YTA0MzU2MDdlM2MzNTJmYmY0ZjU1MTA2ZjI5ODBmZDNjZDQyMzk3ZGJmNzEzN2VlN2YxZTMyY2Q4MGEzYjdhYjEyYjQ2YzE2OTIyMDI3OGQ3NzE3Yjc4YTNjNDVkNjM5NWExMzBhOGI1ODg0MWNiYzI5MGU0ZjgxN2RlM2E0ZmUxNmVjZDA3N2NhMzNhMGFhMjVlMjM1Y2M3ZjY2NTVhODBiYThhZWVjODc5MDViYjJhNzU0NTliN2JjYzVhMTMzZjI5OTM0OTNiNDFmZmNmNjNjZDdhMzkxZTNlNmY3ODA5NGNhNDQyYzgwMTQ0NDAzY2IwYTVmMDBiZmM2MWFlODgwIgogCiBQS0NTNyBQYXJzZSBGYWlsdXJlIEludmFsaWQgQVNOMTogQ2hhbmdlIHRhZyAzMSB0byAwMiAjNTcwLjAKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBwa2NzN19hc24xX2ZhaWw6IjMwODIwNDlkMDYwOTJhODY0ODg2ZjcwZDAxMDcwMmEwODIwNDhlMzA4MjA0OGEwMjAxMDEzMTBmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwYjA2MDkyYTg2NDg4NmY3MGQwMTA3MDEzMTgyMDQ2NTMwODIwMTczMDIwMTAxMzA0YzMwMzQwMjBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTAyMTQ3YmRlZGRkMjQ0NGNkMWNkZmU1YzQxYTgxMDJjODliN2RmMmU2Y2JmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDA1YmVjZDg3MTk1YzFkZWZmOTBjMjRjOTEyNjliNTViM2YwNjliYzIyNWMzMjZjMzE0YzFhNTE3ODZmZmUxNGM4MzBiZTRlNGJjNzNjYmEzNmM5NzY3N2I0NDE2ODI3OWJlOTFlN2NkZjdjMTkzODZhZTIxODYyNzE5ZDEzYTNhMGZmZjA4MDNkNDYwOTYyZjJjZGE4MzcxNDg0ODczMjUyYzNkNzA1NGRiODE0M2UyYjA4MWEzODE2ZWQwODA0Y2E1MDk5YWU1ZmVjZTgzZDVjMmMzNzgzYjE5ODhiNGI0NmRjOTRlNTU1ODdhMTA3ZWExNTQ2YmYyMmQyOGEwOTdmNjUyYTQwNjZkYzI5NjUyNjkwNjlhZjJmNTE3NmJiOGNlOWNhNmQxMWY5Njc1N2YwMzIwNGY3NTY3MDM1ODdkMDBhZDQyNDc5NmM5MmZjN2FlYjZmNDk0NDMxOTk5ZWRhMzA5OTBlNGY1NzczNjMyZWQyNThmZTAyNzY2NzM1OTlkYTZmY2UzNWNkYWQ3NzI2YTBiYjAyNGNhZDk5NmI4OGUwY2I5ODg1NGNlYjVjMGI2ZWM3NDhkOWY5Y2U2YTZjZDQzNzg1OGJhY2I4MTQ2MThhMjcyZmYzYTQxNWM2ZTA3ZjNkYjA5ODg3NzdmZGVjODQ1YTk3YmY3ZDEwMmRkMDMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMjAyMTQ1NjRkNTU0MDI1YWY1OTllMzI3MDc5YjI3MjBlZjAwZGYzN2NmYjdjMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDAwNDYwOThkYzVmMmI5OWUzYmMyZWQ2NjQyZDdmMGE2MWVmYWJjMTVjMzhjNzYzMzNiY2NjZWVlZTM2OWE0ZjRhNWJkZGE4ZWE1OTI2NDEyNGU0MjlmMDg2MzI2ODNkZGJhMTdiYmYyNjJkODJiNmJlZmEzYjRlMTQ4MDM3NmE4YzdmM2M3ZDdlMmE2Nzc5YmJmMTgyNjJhYTg1N2RlOGMyMGExMmI2YTJjZThlNGQ3ZjMxZGQxYjE5NTM5MmNmNjE4NWFmY2UzNGFmZTA1ODk2MDU3YjM2ZTliMTcxYjZjNjdlZDdjMjI4NmNiZmE4M2ZmOGExNjdjN2JjNzEwOWFlZTdkN2UxOTA5YmQzODRmYmZjNjE5MzhlZmNhNTFjODk5M2M3MWRiMzE3NzMwZjE2ZTdlNzc2ODY3YWU0ZmRjNTYyZDZmMTVkZTU4NWU3Yjk0ZWY0OTZhMzY3NjM2N2EyY2JhYWI3YjYzNjY0OGIwMDc2YmFkNWNkZjFlMDk3NDBlYzZhNDUxYmZmNTM0ZWZhMjE1MDlmM2JhNzdiODEwMWI5MWVhN2U1NWRkYmZlMTQwMTUxNzA2N2Q3YjAxYTJhMDg3OWYwODg1Yzg5NGE4N2NmYjY4YzRkN2VlODkwNjA0ODgxYWViOTdjMjJkMWYzMzdlZjkyM2UwMzVhNjQwMDMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMzAyMTQ2MjQ3NzI5ODc1OWU4ZTA0NzE4YWU1NjMxNTVmMzUyM2NmYjg0Y2RiMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDA2ZDJjYmIzN2ZkMTI5NTdlNWE3NDgwY2UwNDM1ZThlZjYwNzdkZWYwOGZmMjcwODQ0ZGUyNTE2YTQ3NDJmMjExZDhjNzQ2OTBiYzA5NDhlMDhhMjk2YWJiYTkyODVmNmJiMzA1Yjk1YjdmOTQwOGNlNDRlODM4ODBjNzE5NDQ0NjcyZWM5OTc0NmJhNzhjYzRiZGU0NzUzMTlkMDFiZGU3N2M0OWQ1OGQxNmQzYjJlOTFjMmU2MWU4MzAzY2EzZDdlZGEzNzk3ZmQ4YjM1Y2E3MmJiMTRiMTVhMjRiNTZiYjcwZGMxMzQ4NDU2NTgwODExMGZmNWRiNThjNTZmN2EwNDM1NjA3ZTNjMzUyZmJmNGY1NTEwNmYyOTgwZmQzY2Q0MjM5N2RiZjcxMzdlZTdmMWUzMmNkODBhM2I3YWIxMmI0NmMxNjkyMjAyNzhkNzcxN2I3OGEzYzQ1ZDYzOTVhMTMwYThiNTg4NDFjYmMyOTBlNGY4MTdkZTNhNGZlMTZlY2QwNzdjYTMzYTBhYTI1ZTIzNWNjN2Y2NjU1YTgwYmE4YWVlYzg3OTA1YmIyYTc1NDU5YjdiY2M1YTEzM2YyOTkzNDkzYjQxZmZjZjYzY2Q3YTM5MWUzZTZmNzgwOTRjYTQ0MmM4MDE0NDQwM2NiMGE1ZjAwYmZjNjFhZTg4MCIKIAogUEtDUzcgUGFyc2UgRmFpbHVyZSBJbnZhbGlkIEFTTjE6IENoYW5nZSBsZW5ndGggZnJvbSAxMSB0byAxMiAjNTcxLjAKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBwa2NzN19hc24xX2ZhaWw6IjMwODIwNDlkMDYwOTJhODY0ODg2ZjcwZDAxMDcwMmEwODIwNDhlMzA4MjA0OGEwMjAxMDEzMTBmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwYjA2MDkyYTg2NDg4NmY3MGQwMTA3MDEzMTgyMDQ2NTMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBjMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTAyMTQ3YmRlZGRkMjQ0NGNkMWNkZmU1YzQxYTgxMDJjODliN2RmMmU2Y2JmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDA1YmVjZDg3MTk1YzFkZWZmOTBjMjRjOTEyNjliNTViM2YwNjliYzIyNWMzMjZjMzE0YzFhNTE3ODZmZmUxNGM4MzBiZTRlNGJjNzNjYmEzNmM5NzY3N2I0NDE2ODI3OWJlOTFlN2NkZjdjMTkzODZhZTIxODYyNzE5ZDEzYTNhMGZmZjA4MDNkNDYwOTYyZjJjZGE4MzcxNDg0ODczMjUyYzNkNzA1NGRiODE0M2UyYjA4MWEzODE2ZWQwODA0Y2E1MDk5YWU1ZmVjZTgzZDVjMmMzNzgzYjE5ODhiNGI0NmRjOTRlNTU1ODdhMTA3ZWExNTQ2YmYyMmQyOGEwOTdmNjUyYTQwNjZkYzI5NjUyNjkwNjlhZjJmNTE3NmJiOGNlOWNhNmQxMWY5Njc1N2YwMzIwNGY3NTY3MDM1ODdkMDBhZDQyNDc5NmM5MmZjN2FlYjZmNDk0NDMxOTk5ZWRhMzA5OTBlNGY1NzczNjMyZWQyNThmZTAyNzY2NzM1OTlkYTZmY2UzNWNkYWQ3NzI2YTBiYjAyNGNhZDk5NmI4OGUwY2I5ODg1NGNlYjVjMGI2ZWM3NDhkOWY5Y2U2YTZjZDQzNzg1OGJhY2I4MTQ2MThhMjcyZmYzYTQxNWM2ZTA3ZjNkYjA5ODg3NzdmZGVjODQ1YTk3YmY3ZDEwMmRkMDMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMjAyMTQ1NjRkNTU0MDI1YWY1OTllMzI3MDc5YjI3MjBlZjAwZGYzN2NmYjdjMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDAwNDYwOThkYzVmMmI5OWUzYmMyZWQ2NjQyZDdmMGE2MWVmYWJjMTVjMzhjNzYzMzNiY2NjZWVlZTM2OWE0ZjRhNWJkZGE4ZWE1OTI2NDEyNGU0MjlmMDg2MzI2ODNkZGJhMTdiYmYyNjJkODJiNmJlZmEzYjRlMTQ4MDM3NmE4YzdmM2M3ZDdlMmE2Nzc5YmJmMTgyNjJhYTg1N2RlOGMyMGExMmI2YTJjZThlNGQ3ZjMxZGQxYjE5NTM5MmNmNjE4NWFmY2UzNGFmZTA1ODk2MDU3YjM2ZTliMTcxYjZjNjdlZDdjMjI4NmNiZmE4M2ZmOGExNjdjN2JjNzEwOWFlZTdkN2UxOTA5YmQzODRmYmZjNjE5MzhlZmNhNTFjODk5M2M3MWRiMzE3NzMwZjE2ZTdlNzc2ODY3YWU0ZmRjNTYyZDZmMTVkZTU4NWU3Yjk0ZWY0OTZhMzY3NjM2N2EyY2JhYWI3YjYzNjY0OGIwMDc2YmFkNWNkZjFlMDk3NDBlYzZhNDUxYmZmNTM0ZWZhMjE1MDlmM2JhNzdiODEwMWI5MWVhN2U1NWRkYmZlMTQwMTUxNzA2N2Q3YjAxYTJhMDg3OWYwODg1Yzg5NGE4N2NmYjY4YzRkN2VlODkwNjA0ODgxYWViOTdjMjJkMWYzMzdlZjkyM2UwMzVhNjQwMDMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMzAyMTQ2MjQ3NzI5ODc1OWU4ZTA0NzE4YWU1NjMxNTVmMzUyM2NmYjg0Y2RiMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDA2ZDJjYmIzN2ZkMTI5NTdlNWE3NDgwY2UwNDM1ZThlZjYwNzdkZWYwOGZmMjcwODQ0ZGUyNTE2YTQ3NDJmMjExZDhjNzQ2OTBiYzA5NDhlMDhhMjk2YWJiYTkyODVmNmJiMzA1Yjk1YjdmOTQwOGNlNDRlODM4ODBjNzE5NDQ0NjcyZWM5OTc0NmJhNzhjYzRiZGU0NzUzMTlkMDFiZGU3N2M0OWQ1OGQxNmQzYjJlOTFjMmU2MWU4MzAzY2EzZDdlZGEzNzk3ZmQ4YjM1Y2E3MmJiMTRiMTVhMjRiNTZiYjcwZGMxMzQ4NDU2NTgwODExMGZmNWRiNThjNTZmN2EwNDM1NjA3ZTNjMzUyZmJmNGY1NTEwNmYyOTgwZmQzY2Q0MjM5N2RiZjcxMzdlZTdmMWUzMmNkODBhM2I3YWIxMmI0NmMxNjkyMjAyNzhkNzcxN2I3OGEzYzQ1ZDYzOTVhMTMwYThiNTg4NDFjYmMyOTBlNGY4MTdkZTNhNGZlMTZlY2QwNzdjYTMzYTBhYTI1ZTIzNWNjN2Y2NjU1YTgwYmE4YWVlYzg3OTA1YmIyYTc1NDU5YjdiY2M1YTEzM2YyOTkzNDkzYjQxZmZjZjYzY2Q3YTM5MWUzZTZmNzgwOTRjYTQ0MmM4MDE0NDQwM2NiMGE1ZjAwYmZjNjFhZTg4MCIKIAogUEtDUzcgUGFyc2UgRmFpbHVyZSBJbnZhbGlkIEFTTjE6IENoYW5nZSBjb250ZW50cyBvZiB0YWcgMzEgdG8gY29udGFpbiBvbmUgdW5hY2NvdW50ZWQgZXh0cmEgYnl0ZSAjNTcyLjAKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBwa2NzN19hc24xX2ZhaWw6IjMwODIwNDlkMDYwOTJhODY0ODg2ZjcwZDAxMDcwMmEwODIwNDhlMzA4MjA0OGEwMjAxMDEzMTBmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwYjA2MDkyYTg2NDg4NmY3MGQwMTA3MDEzMTgyMDQ2NTMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBjMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzAwMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDViZWNkODcxOTVjMWRlZmY5MGMyNGM5MTI2OWI1NWIzZjA2OWJjMjI1YzMyNmMzMTRjMWE1MTc4NmZmZTE0YzgzMGJlNGU0YmM3M2NiYTM2Yzk3Njc3YjQ0MTY4Mjc5YmU5MWU3Y2RmN2MxOTM4NmFlMjE4NjI3MTlkMTNhM2EwZmZmMDgwM2Q0NjA5NjJmMmNkYTgzNzE0ODQ4NzMyNTJjM2Q3MDU0ZGI4MTQzZTJiMDgxYTM4MTZlZDA4MDRjYTUwOTlhZTVmZWNlODNkNWMyYzM3ODNiMTk4OGI0YjQ2ZGM5NGU1NTU4N2ExMDdlYTE1NDZiZjIyZDI4YTA5N2Y2NTJhNDA2NmRjMjk2NTI2OTA2OWFmMmY1MTc2YmI4Y2U5Y2E2ZDExZjk2NzU3ZjAzMjA0Zjc1NjcwMzU4N2QwMGFkNDI0Nzk2YzkyZmM3YWViNmY0OTQ0MzE5OTllZGEzMDk5MGU0ZjU3NzM2MzJlZDI1OGZlMDI3NjY3MzU5OWRhNmZjZTM1Y2RhZDc3MjZhMGJiMDI0Y2FkOTk2Yjg4ZTBjYjk4ODU0Y2ViNWMwYjZlYzc0OGQ5ZjljZTZhNmNkNDM3ODU4YmFjYjgxNDYxOGEyNzJmZjNhNDE1YzZlMDdmM2RiMDk4ODc3N2ZkZWM4NDVhOTdiZjdkMTAyZGQwMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMyMDIxNDU2NGQ1NTQwMjVhZjU5OWUzMjcwNzliMjcyMGVmMDBkZjM3Y2ZiN2MzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDA0NjA5OGRjNWYyYjk5ZTNiYzJlZDY2NDJkN2YwYTYxZWZhYmMxNWMzOGM3NjMzM2JjY2NlZWVlMzY5YTRmNGE1YmRkYThlYTU5MjY0MTI0ZTQyOWYwODYzMjY4M2RkYmExN2JiZjI2MmQ4MmI2YmVmYTNiNGUxNDgwMzc2YThjN2YzYzdkN2UyYTY3NzliYmYxODI2MmFhODU3ZGU4YzIwYTEyYjZhMmNlOGU0ZDdmMzFkZDFiMTk1MzkyY2Y2MTg1YWZjZTM0YWZlMDU4OTYwNTdiMzZlOWIxNzFiNmM2N2VkN2MyMjg2Y2JmYTgzZmY4YTE2N2M3YmM3MTA5YWVlN2Q3ZTE5MDliZDM4NGZiZmM2MTkzOGVmY2E1MWM4OTkzYzcxZGIzMTc3MzBmMTZlN2U3NzY4NjdhZTRmZGM1NjJkNmYxNWRlNTg1ZTdiOTRlZjQ5NmEzNjc2MzY3YTJjYmFhYjdiNjM2NjQ4YjAwNzZiYWQ1Y2RmMWUwOTc0MGVjNmE0NTFiZmY1MzRlZmEyMTUwOWYzYmE3N2I4MTAxYjkxZWE3ZTU1ZGRiZmUxNDAxNTE3MDY3ZDdiMDFhMmEwODc5ZjA4ODVjODk0YTg3Y2ZiNjhjNGQ3ZWU4OTA2MDQ4ODFhZWI5N2MyMmQxZjMzN2VmOTIzZTAzNWE2NDAwMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMzMDIxNDYyNDc3Mjk4NzU5ZThlMDQ3MThhZTU2MzE1NWYzNTIzY2ZiODRjZGIzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDZkMmNiYjM3ZmQxMjk1N2U1YTc0ODBjZTA0MzVlOGVmNjA3N2RlZjA4ZmYyNzA4NDRkZTI1MTZhNDc0MmYyMTFkOGM3NDY5MGJjMDk0OGUwOGEyOTZhYmJhOTI4NWY2YmIzMDViOTViN2Y5NDA4Y2U0NGU4Mzg4MGM3MTk0NDQ2NzJlYzk5NzQ2YmE3OGNjNGJkZTQ3NTMxOWQwMWJkZTc3YzQ5ZDU4ZDE2ZDNiMmU5MWMyZTYxZTgzMDNjYTNkN2VkYTM3OTdmZDhiMzVjYTcyYmIxNGIxNWEyNGI1NmJiNzBkYzEzNDg0NTY1ODA4MTEwZmY1ZGI1OGM1NmY3YTA0MzU2MDdlM2MzNTJmYmY0ZjU1MTA2ZjI5ODBmZDNjZDQyMzk3ZGJmNzEzN2VlN2YxZTMyY2Q4MGEzYjdhYjEyYjQ2YzE2OTIyMDI3OGQ3NzE3Yjc4YTNjNDVkNjM5NWExMzBhOGI1ODg0MWNiYzI5MGU0ZjgxN2RlM2E0ZmUxNmVjZDA3N2NhMzNhMGFhMjVlMjM1Y2M3ZjY2NTVhODBiYThhZWVjODc5MDViYjJhNzU0NTliN2JjYzVhMTMzZjI5OTM0OTNiNDFmZmNmNjNjZDdhMzkxZTNlNmY3ODA5NGNhNDQyYzgwMTQ0NDAzY2IwYTVmMDBiZmM2MWFlODgwIgogCiBQS0NTNyBQYXJzZSBGYWlsdXJlIEludmFsaWQgQVNOMTogQ2hhbmdlIGxlbmd0aCBmcm9tIDExIHRvIDEwICM1NzMuMAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHBrY3M3X2FzbjFfZmFpbDoiMzA4MjA0OWQwNjA5MmE4NjQ4ODZmNzBkMDEwNzAyYTA4MjA0OGUzMDgyMDQ4YTAyMDEwMTMxMGYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBiMDYwOTJhODY0ODg2ZjcwZDAxMDcwMTMxODIwNDY1MzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGEzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDViZWNkODcxOTVjMWRlZmY5MGMyNGM5MTI2OWI1NWIzZjA2OWJjMjI1YzMyNmMzMTRjMWE1MTc4NmZmZTE0YzgzMGJlNGU0YmM3M2NiYTM2Yzk3Njc3YjQ0MTY4Mjc5YmU5MWU3Y2RmN2MxOTM4NmFlMjE4NjI3MTlkMTNhM2EwZmZmMDgwM2Q0NjA5NjJmMmNkYTgzNzE0ODQ4NzMyNTJjM2Q3MDU0ZGI4MTQzZTJiMDgxYTM4MTZlZDA4MDRjYTUwOTlhZTVmZWNlODNkNWMyYzM3ODNiMTk4OGI0YjQ2ZGM5NGU1NTU4N2ExMDdlYTE1NDZiZjIyZDI4YTA5N2Y2NTJhNDA2NmRjMjk2NTI2OTA2OWFmMmY1MTc2YmI4Y2U5Y2E2ZDExZjk2NzU3ZjAzMjA0Zjc1NjcwMzU4N2QwMGFkNDI0Nzk2YzkyZmM3YWViNmY0OTQ0MzE5OTllZGEzMDk5MGU0ZjU3NzM2MzJlZDI1OGZlMDI3NjY3MzU5OWRhNmZjZTM1Y2RhZDc3MjZhMGJiMDI0Y2FkOTk2Yjg4ZTBjYjk4ODU0Y2ViNWMwYjZlYzc0OGQ5ZjljZTZhNmNkNDM3ODU4YmFjYjgxNDYxOGEyNzJmZjNhNDE1YzZlMDdmM2RiMDk4ODc3N2ZkZWM4NDVhOTdiZjdkMTAyZGQwMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMyMDIxNDU2NGQ1NTQwMjVhZjU5OWUzMjcwNzliMjcyMGVmMDBkZjM3Y2ZiN2MzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDA0NjA5OGRjNWYyYjk5ZTNiYzJlZDY2NDJkN2YwYTYxZWZhYmMxNWMzOGM3NjMzM2JjY2NlZWVlMzY5YTRmNGE1YmRkYThlYTU5MjY0MTI0ZTQyOWYwODYzMjY4M2RkYmExN2JiZjI2MmQ4MmI2YmVmYTNiNGUxNDgwMzc2YThjN2YzYzdkN2UyYTY3NzliYmYxODI2MmFhODU3ZGU4YzIwYTEyYjZhMmNlOGU0ZDdmMzFkZDFiMTk1MzkyY2Y2MTg1YWZjZTM0YWZlMDU4OTYwNTdiMzZlOWIxNzFiNmM2N2VkN2MyMjg2Y2JmYTgzZmY4YTE2N2M3YmM3MTA5YWVlN2Q3ZTE5MDliZDM4NGZiZmM2MTkzOGVmY2E1MWM4OTkzYzcxZGIzMTc3MzBmMTZlN2U3NzY4NjdhZTRmZGM1NjJkNmYxNWRlNTg1ZTdiOTRlZjQ5NmEzNjc2MzY3YTJjYmFhYjdiNjM2NjQ4YjAwNzZiYWQ1Y2RmMWUwOTc0MGVjNmE0NTFiZmY1MzRlZmEyMTUwOWYzYmE3N2I4MTAxYjkxZWE3ZTU1ZGRiZmUxNDAxNTE3MDY3ZDdiMDFhMmEwODc5ZjA4ODVjODk0YTg3Y2ZiNjhjNGQ3ZWU4OTA2MDQ4ODFhZWI5N2MyMmQxZjMzN2VmOTIzZTAzNWE2NDAwMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMzMDIxNDYyNDc3Mjk4NzU5ZThlMDQ3MThhZTU2MzE1NWYzNTIzY2ZiODRjZGIzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDZkMmNiYjM3ZmQxMjk1N2U1YTc0ODBjZTA0MzVlOGVmNjA3N2RlZjA4ZmYyNzA4NDRkZTI1MTZhNDc0MmYyMTFkOGM3NDY5MGJjMDk0OGUwOGEyOTZhYmJhOTI4NWY2YmIzMDViOTViN2Y5NDA4Y2U0NGU4Mzg4MGM3MTk0NDQ2NzJlYzk5NzQ2YmE3OGNjNGJkZTQ3NTMxOWQwMWJkZTc3YzQ5ZDU4ZDE2ZDNiMmU5MWMyZTYxZTgzMDNjYTNkN2VkYTM3OTdmZDhiMzVjYTcyYmIxNGIxNWEyNGI1NmJiNzBkYzEzNDg0NTY1ODA4MTEwZmY1ZGI1OGM1NmY3YTA0MzU2MDdlM2MzNTJmYmY0ZjU1MTA2ZjI5ODBmZDNjZDQyMzk3ZGJmNzEzN2VlN2YxZTMyY2Q4MGEzYjdhYjEyYjQ2YzE2OTIyMDI3OGQ3NzE3Yjc4YTNjNDVkNjM5NWExMzBhOGI1ODg0MWNiYzI5MGU0ZjgxN2RlM2E0ZmUxNmVjZDA3N2NhMzNhMGFhMjVlMjM1Y2M3ZjY2NTVhODBiYThhZWVjODc5MDViYjJhNzU0NTliN2JjYzVhMTMzZjI5OTM0OTNiNDFmZmNmNjNjZDdhMzkxZTNlNmY3ODA5NGNhNDQyYzgwMTQ0NDAzY2IwYTVmMDBiZmM2MWFlODgwIgogCiBQS0NTNyBQYXJzZSBGYWlsdXJlIEludmFsaWQgQVNOMTogQ2hhbmdlIHRhZyAzMCB0byAwMiAjNTc0LjAKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBwa2NzN19hc24xX2ZhaWw6IjMwODIwNDlkMDYwOTJhODY0ODg2ZjcwZDAxMDcwMmEwODIwNDhlMzA4MjA0OGEwMjAxMDEzMTBmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwYjA2MDkyYTg2NDg4NmY3MGQwMTA3MDEzMTgyMDQ2NTMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMDIwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTAyMTQ3YmRlZGRkMjQ0NGNkMWNkZmU1YzQxYTgxMDJjODliN2RmMmU2Y2JmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDA1YmVjZDg3MTk1YzFkZWZmOTBjMjRjOTEyNjliNTViM2YwNjliYzIyNWMzMjZjMzE0YzFhNTE3ODZmZmUxNGM4MzBiZTRlNGJjNzNjYmEzNmM5NzY3N2I0NDE2ODI3OWJlOTFlN2NkZjdjMTkzODZhZTIxODYyNzE5ZDEzYTNhMGZmZjA4MDNkNDYwOTYyZjJjZGE4MzcxNDg0ODczMjUyYzNkNzA1NGRiODE0M2UyYjA4MWEzODE2ZWQwODA0Y2E1MDk5YWU1ZmVjZTgzZDVjMmMzNzgzYjE5ODhiNGI0NmRjOTRlNTU1ODdhMTA3ZWExNTQ2YmYyMmQyOGEwOTdmNjUyYTQwNjZkYzI5NjUyNjkwNjlhZjJmNTE3NmJiOGNlOWNhNmQxMWY5Njc1N2YwMzIwNGY3NTY3MDM1ODdkMDBhZDQyNDc5NmM5MmZjN2FlYjZmNDk0NDMxOTk5ZWRhMzA5OTBlNGY1NzczNjMyZWQyNThmZTAyNzY2NzM1OTlkYTZmY2UzNWNkYWQ3NzI2YTBiYjAyNGNhZDk5NmI4OGUwY2I5ODg1NGNlYjVjMGI2ZWM3NDhkOWY5Y2U2YTZjZDQzNzg1OGJhY2I4MTQ2MThhMjcyZmYzYTQxNWM2ZTA3ZjNkYjA5ODg3NzdmZGVjODQ1YTk3YmY3ZDEwMmRkMDMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMjAyMTQ1NjRkNTU0MDI1YWY1OTllMzI3MDc5YjI3MjBlZjAwZGYzN2NmYjdjMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDAwNDYwOThkYzVmMmI5OWUzYmMyZWQ2NjQyZDdmMGE2MWVmYWJjMTVjMzhjNzYzMzNiY2NjZWVlZTM2OWE0ZjRhNWJkZGE4ZWE1OTI2NDEyNGU0MjlmMDg2MzI2ODNkZGJhMTdiYmYyNjJkODJiNmJlZmEzYjRlMTQ4MDM3NmE4YzdmM2M3ZDdlMmE2Nzc5YmJmMTgyNjJhYTg1N2RlOGMyMGExMmI2YTJjZThlNGQ3ZjMxZGQxYjE5NTM5MmNmNjE4NWFmY2UzNGFmZTA1ODk2MDU3YjM2ZTliMTcxYjZjNjdlZDdjMjI4NmNiZmE4M2ZmOGExNjdjN2JjNzEwOWFlZTdkN2UxOTA5YmQzODRmYmZjNjE5MzhlZmNhNTFjODk5M2M3MWRiMzE3NzMwZjE2ZTdlNzc2ODY3YWU0ZmRjNTYyZDZmMTVkZTU4NWU3Yjk0ZWY0OTZhMzY3NjM2N2EyY2JhYWI3YjYzNjY0OGIwMDc2YmFkNWNkZjFlMDk3NDBlYzZhNDUxYmZmNTM0ZWZhMjE1MDlmM2JhNzdiODEwMWI5MWVhN2U1NWRkYmZlMTQwMTUxNzA2N2Q3YjAxYTJhMDg3OWYwODg1Yzg5NGE4N2NmYjY4YzRkN2VlODkwNjA0ODgxYWViOTdjMjJkMWYzMzdlZjkyM2UwMzVhNjQwMDMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMzAyMTQ2MjQ3NzI5ODc1OWU4ZTA0NzE4YWU1NjMxNTVmMzUyM2NmYjg0Y2RiMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDA2ZDJjYmIzN2ZkMTI5NTdlNWE3NDgwY2UwNDM1ZThlZjYwNzdkZWYwOGZmMjcwODQ0ZGUyNTE2YTQ3NDJmMjExZDhjNzQ2OTBiYzA5NDhlMDhhMjk2YWJiYTkyODVmNmJiMzA1Yjk1YjdmOTQwOGNlNDRlODM4ODBjNzE5NDQ0NjcyZWM5OTc0NmJhNzhjYzRiZGU0NzUzMTlkMDFiZGU3N2M0OWQ1OGQxNmQzYjJlOTFjMmU2MWU4MzAzY2EzZDdlZGEzNzk3ZmQ4YjM1Y2E3MmJiMTRiMTVhMjRiNTZiYjcwZGMxMzQ4NDU2NTgwODExMGZmNWRiNThjNTZmN2EwNDM1NjA3ZTNjMzUyZmJmNGY1NTEwNmYyOTgwZmQzY2Q0MjM5N2RiZjcxMzdlZTdmMWUzMmNkODBhM2I3YWIxMmI0NmMxNjkyMjAyNzhkNzcxN2I3OGEzYzQ1ZDYzOTVhMTMwYThiNTg4NDFjYmMyOTBlNGY4MTdkZTNhNGZlMTZlY2QwNzdjYTMzYTBhYTI1ZTIzNWNjN2Y2NjU1YTgwYmE4YWVlYzg3OTA1YmIyYTc1NDU5YjdiY2M1YTEzM2YyOTkzNDkzYjQxZmZjZjYzY2Q3YTM5MWUzZTZmNzgwOTRjYTQ0MmM4MDE0NDQwM2NiMGE1ZjAwYmZjNjFhZTg4MCIKIAogUEtDUzcgUGFyc2UgRmFpbHVyZSBJbnZhbGlkIEFTTjE6IENoYW5nZSBsZW5ndGggZnJvbSA5IHRvIDEwICM1NzUuMAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHBrY3M3X2FzbjFfZmFpbDoiMzA4MjA0OWQwNjA5MmE4NjQ4ODZmNzBkMDEwNzAyYTA4MjA0OGUzMDgyMDQ4YTAyMDEwMTMxMGYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBiMDYwOTJhODY0ODg2ZjcwZDAxMDcwMTMxODIwNDY1MzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDBhMDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDViZWNkODcxOTVjMWRlZmY5MGMyNGM5MTI2OWI1NWIzZjA2OWJjMjI1YzMyNmMzMTRjMWE1MTc4NmZmZTE0YzgzMGJlNGU0YmM3M2NiYTM2Yzk3Njc3YjQ0MTY4Mjc5YmU5MWU3Y2RmN2MxOTM4NmFlMjE4NjI3MTlkMTNhM2EwZmZmMDgwM2Q0NjA5NjJmMmNkYTgzNzE0ODQ4NzMyNTJjM2Q3MDU0ZGI4MTQzZTJiMDgxYTM4MTZlZDA4MDRjYTUwOTlhZTVmZWNlODNkNWMyYzM3ODNiMTk4OGI0YjQ2ZGM5NGU1NTU4N2ExMDdlYTE1NDZiZjIyZDI4YTA5N2Y2NTJhNDA2NmRjMjk2NTI2OTA2OWFmMmY1MTc2YmI4Y2U5Y2E2ZDExZjk2NzU3ZjAzMjA0Zjc1NjcwMzU4N2QwMGFkNDI0Nzk2YzkyZmM3YWViNmY0OTQ0MzE5OTllZGEzMDk5MGU0ZjU3NzM2MzJlZDI1OGZlMDI3NjY3MzU5OWRhNmZjZTM1Y2RhZDc3MjZhMGJiMDI0Y2FkOTk2Yjg4ZTBjYjk4ODU0Y2ViNWMwYjZlYzc0OGQ5ZjljZTZhNmNkNDM3ODU4YmFjYjgxNDYxOGEyNzJmZjNhNDE1YzZlMDdmM2RiMDk4ODc3N2ZkZWM4NDVhOTdiZjdkMTAyZGQwMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMyMDIxNDU2NGQ1NTQwMjVhZjU5OWUzMjcwNzliMjcyMGVmMDBkZjM3Y2ZiN2MzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDA0NjA5OGRjNWYyYjk5ZTNiYzJlZDY2NDJkN2YwYTYxZWZhYmMxNWMzOGM3NjMzM2JjY2NlZWVlMzY5YTRmNGE1YmRkYThlYTU5MjY0MTI0ZTQyOWYwODYzMjY4M2RkYmExN2JiZjI2MmQ4MmI2YmVmYTNiNGUxNDgwMzc2YThjN2YzYzdkN2UyYTY3NzliYmYxODI2MmFhODU3ZGU4YzIwYTEyYjZhMmNlOGU0ZDdmMzFkZDFiMTk1MzkyY2Y2MTg1YWZjZTM0YWZlMDU4OTYwNTdiMzZlOWIxNzFiNmM2N2VkN2MyMjg2Y2JmYTgzZmY4YTE2N2M3YmM3MTA5YWVlN2Q3ZTE5MDliZDM4NGZiZmM2MTkzOGVmY2E1MWM4OTkzYzcxZGIzMTc3MzBmMTZlN2U3NzY4NjdhZTRmZGM1NjJkNmYxNWRlNTg1ZTdiOTRlZjQ5NmEzNjc2MzY3YTJjYmFhYjdiNjM2NjQ4YjAwNzZiYWQ1Y2RmMWUwOTc0MGVjNmE0NTFiZmY1MzRlZmEyMTUwOWYzYmE3N2I4MTAxYjkxZWE3ZTU1ZGRiZmUxNDAxNTE3MDY3ZDdiMDFhMmEwODc5ZjA4ODVjODk0YTg3Y2ZiNjhjNGQ3ZWU4OTA2MDQ4ODFhZWI5N2MyMmQxZjMzN2VmOTIzZTAzNWE2NDAwMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMzMDIxNDYyNDc3Mjk4NzU5ZThlMDQ3MThhZTU2MzE1NWYzNTIzY2ZiODRjZGIzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDZkMmNiYjM3ZmQxMjk1N2U1YTc0ODBjZTA0MzVlOGVmNjA3N2RlZjA4ZmYyNzA4NDRkZTI1MTZhNDc0MmYyMTFkOGM3NDY5MGJjMDk0OGUwOGEyOTZhYmJhOTI4NWY2YmIzMDViOTViN2Y5NDA4Y2U0NGU4Mzg4MGM3MTk0NDQ2NzJlYzk5NzQ2YmE3OGNjNGJkZTQ3NTMxOWQwMWJkZTc3YzQ5ZDU4ZDE2ZDNiMmU5MWMyZTYxZTgzMDNjYTNkN2VkYTM3OTdmZDhiMzVjYTcyYmIxNGIxNWEyNGI1NmJiNzBkYzEzNDg0NTY1ODA4MTEwZmY1ZGI1OGM1NmY3YTA0MzU2MDdlM2MzNTJmYmY0ZjU1MTA2ZjI5ODBmZDNjZDQyMzk3ZGJmNzEzN2VlN2YxZTMyY2Q4MGEzYjdhYjEyYjQ2YzE2OTIyMDI3OGQ3NzE3Yjc4YTNjNDVkNjM5NWExMzBhOGI1ODg0MWNiYzI5MGU0ZjgxN2RlM2E0ZmUxNmVjZDA3N2NhMzNhMGFhMjVlMjM1Y2M3ZjY2NTVhODBiYThhZWVjODc5MDViYjJhNzU0NTliN2JjYzVhMTMzZjI5OTM0OTNiNDFmZmNmNjNjZDdhMzkxZTNlNmY3ODA5NGNhNDQyYzgwMTQ0NDAzY2IwYTVmMDBiZmM2MWFlODgwIgogCiBQS0NTNyBQYXJzZSBGYWlsdXJlIEludmFsaWQgQVNOMTogQ2hhbmdlIGNvbnRlbnRzIG9mIHRhZyAzMCB0byBjb250YWluIG9uZSB1bmFjY291bnRlZCBleHRyYSBieXRlICM1NzYuMAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHBrY3M3X2FzbjFfZmFpbDoiMzA4MjA0OWQwNjA5MmE4NjQ4ODZmNzBkMDEwNzAyYTA4MjA0OGUzMDgyMDQ4YTAyMDEwMTMxMGYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBiMDYwOTJhODY0ODg2ZjcwZDAxMDcwMTMxODIwNDY1MzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDBhMDYwMzU1MDQwNjEzMDI0ZTRjMDAzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwNWJlY2Q4NzE5NWMxZGVmZjkwYzI0YzkxMjY5YjU1YjNmMDY5YmMyMjVjMzI2YzMxNGMxYTUxNzg2ZmZlMTRjODMwYmU0ZTRiYzczY2JhMzZjOTc2NzdiNDQxNjgyNzliZTkxZTdjZGY3YzE5Mzg2YWUyMTg2MjcxOWQxM2EzYTBmZmYwODAzZDQ2MDk2MmYyY2RhODM3MTQ4NDg3MzI1MmMzZDcwNTRkYjgxNDNlMmIwODFhMzgxNmVkMDgwNGNhNTA5OWFlNWZlY2U4M2Q1YzJjMzc4M2IxOTg4YjRiNDZkYzk0ZTU1NTg3YTEwN2VhMTU0NmJmMjJkMjhhMDk3ZjY1MmE0MDY2ZGMyOTY1MjY5MDY5YWYyZjUxNzZiYjhjZTljYTZkMTFmOTY3NTdmMDMyMDRmNzU2NzAzNTg3ZDAwYWQ0MjQ3OTZjOTJmYzdhZWI2ZjQ5NDQzMTk5OWVkYTMwOTkwZTRmNTc3MzYzMmVkMjU4ZmUwMjc2NjczNTk5ZGE2ZmNlMzVjZGFkNzcyNmEwYmIwMjRjYWQ5OTZiODhlMGNiOTg4NTRjZWI1YzBiNmVjNzQ4ZDlmOWNlNmE2Y2Q0Mzc4NThiYWNiODE0NjE4YTI3MmZmM2E0MTVjNmUwN2YzZGIwOTg4Nzc3ZmRlYzg0NWE5N2JmN2QxMDJkZDAzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzIwMjE0NTY0ZDU1NDAyNWFmNTk5ZTMyNzA3OWIyNzIwZWYwMGRmMzdjZmI3YzMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwMDQ2MDk4ZGM1ZjJiOTllM2JjMmVkNjY0MmQ3ZjBhNjFlZmFiYzE1YzM4Yzc2MzMzYmNjY2VlZWUzNjlhNGY0YTViZGRhOGVhNTkyNjQxMjRlNDI5ZjA4NjMyNjgzZGRiYTE3YmJmMjYyZDgyYjZiZWZhM2I0ZTE0ODAzNzZhOGM3ZjNjN2Q3ZTJhNjc3OWJiZjE4MjYyYWE4NTdkZThjMjBhMTJiNmEyY2U4ZTRkN2YzMWRkMWIxOTUzOTJjZjYxODVhZmNlMzRhZmUwNTg5NjA1N2IzNmU5YjE3MWI2YzY3ZWQ3YzIyODZjYmZhODNmZjhhMTY3YzdiYzcxMDlhZWU3ZDdlMTkwOWJkMzg0ZmJmYzYxOTM4ZWZjYTUxYzg5OTNjNzFkYjMxNzczMGYxNmU3ZTc3Njg2N2FlNGZkYzU2MmQ2ZjE1ZGU1ODVlN2I5NGVmNDk2YTM2NzYzNjdhMmNiYWFiN2I2MzY2NDhiMDA3NmJhZDVjZGYxZTA5NzQwZWM2YTQ1MWJmZjUzNGVmYTIxNTA5ZjNiYTc3YjgxMDFiOTFlYTdlNTVkZGJmZTE0MDE1MTcwNjdkN2IwMWEyYTA4NzlmMDg4NWM4OTRhODdjZmI2OGM0ZDdlZTg5MDYwNDg4MWFlYjk3YzIyZDFmMzM3ZWY5MjNlMDM1YTY0MDAzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzMwMjE0NjI0NzcyOTg3NTllOGUwNDcxOGFlNTYzMTU1ZjM1MjNjZmI4NGNkYjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwNmQyY2JiMzdmZDEyOTU3ZTVhNzQ4MGNlMDQzNWU4ZWY2MDc3ZGVmMDhmZjI3MDg0NGRlMjUxNmE0NzQyZjIxMWQ4Yzc0NjkwYmMwOTQ4ZTA4YTI5NmFiYmE5Mjg1ZjZiYjMwNWI5NWI3Zjk0MDhjZTQ0ZTgzODgwYzcxOTQ0NDY3MmVjOTk3NDZiYTc4Y2M0YmRlNDc1MzE5ZDAxYmRlNzdjNDlkNThkMTZkM2IyZTkxYzJlNjFlODMwM2NhM2Q3ZWRhMzc5N2ZkOGIzNWNhNzJiYjE0YjE1YTI0YjU2YmI3MGRjMTM0ODQ1NjU4MDgxMTBmZjVkYjU4YzU2ZjdhMDQzNTYwN2UzYzM1MmZiZjRmNTUxMDZmMjk4MGZkM2NkNDIzOTdkYmY3MTM3ZWU3ZjFlMzJjZDgwYTNiN2FiMTJiNDZjMTY5MjIwMjc4ZDc3MTdiNzhhM2M0NWQ2Mzk1YTEzMGE4YjU4ODQxY2JjMjkwZTRmODE3ZGUzYTRmZTE2ZWNkMDc3Y2EzM2EwYWEyNWUyMzVjYzdmNjY1NWE4MGJhOGFlZWM4NzkwNWJiMmE3NTQ1OWI3YmNjNWExMzNmMjk5MzQ5M2I0MWZmY2Y2M2NkN2EzOTFlM2U2Zjc4MDk0Y2E0NDJjODAxNDQ0MDNjYjBhNWYwMGJmYzYxYWU4ODAiCiAKIFBLQ1M3IFBhcnNlIEZhaWx1cmUgSW52YWxpZCBBU04xOiBDaGFuZ2UgbGVuZ3RoIGZyb20gOSB0byA4ICM1NzcuMAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHBrY3M3X2FzbjFfZmFpbDoiMzA4MjA0OWQwNjA5MmE4NjQ4ODZmNzBkMDEwNzAyYTA4MjA0OGUzMDgyMDQ4YTAyMDEwMTMxMGYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBiMDYwOTJhODY0ODg2ZjcwZDAxMDcwMTMxODIwNDY1MzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA4MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDViZWNkODcxOTVjMWRlZmY5MGMyNGM5MTI2OWI1NWIzZjA2OWJjMjI1YzMyNmMzMTRjMWE1MTc4NmZmZTE0YzgzMGJlNGU0YmM3M2NiYTM2Yzk3Njc3YjQ0MTY4Mjc5YmU5MWU3Y2RmN2MxOTM4NmFlMjE4NjI3MTlkMTNhM2EwZmZmMDgwM2Q0NjA5NjJmMmNkYTgzNzE0ODQ4NzMyNTJjM2Q3MDU0ZGI4MTQzZTJiMDgxYTM4MTZlZDA4MDRjYTUwOTlhZTVmZWNlODNkNWMyYzM3ODNiMTk4OGI0YjQ2ZGM5NGU1NTU4N2ExMDdlYTE1NDZiZjIyZDI4YTA5N2Y2NTJhNDA2NmRjMjk2NTI2OTA2OWFmMmY1MTc2YmI4Y2U5Y2E2ZDExZjk2NzU3ZjAzMjA0Zjc1NjcwMzU4N2QwMGFkNDI0Nzk2YzkyZmM3YWViNmY0OTQ0MzE5OTllZGEzMDk5MGU0ZjU3NzM2MzJlZDI1OGZlMDI3NjY3MzU5OWRhNmZjZTM1Y2RhZDc3MjZhMGJiMDI0Y2FkOTk2Yjg4ZTBjYjk4ODU0Y2ViNWMwYjZlYzc0OGQ5ZjljZTZhNmNkNDM3ODU4YmFjYjgxNDYxOGEyNzJmZjNhNDE1YzZlMDdmM2RiMDk4ODc3N2ZkZWM4NDVhOTdiZjdkMTAyZGQwMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMyMDIxNDU2NGQ1NTQwMjVhZjU5OWUzMjcwNzliMjcyMGVmMDBkZjM3Y2ZiN2MzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDA0NjA5OGRjNWYyYjk5ZTNiYzJlZDY2NDJkN2YwYTYxZWZhYmMxNWMzOGM3NjMzM2JjY2NlZWVlMzY5YTRmNGE1YmRkYThlYTU5MjY0MTI0ZTQyOWYwODYzMjY4M2RkYmExN2JiZjI2MmQ4MmI2YmVmYTNiNGUxNDgwMzc2YThjN2YzYzdkN2UyYTY3NzliYmYxODI2MmFhODU3ZGU4YzIwYTEyYjZhMmNlOGU0ZDdmMzFkZDFiMTk1MzkyY2Y2MTg1YWZjZTM0YWZlMDU4OTYwNTdiMzZlOWIxNzFiNmM2N2VkN2MyMjg2Y2JmYTgzZmY4YTE2N2M3YmM3MTA5YWVlN2Q3ZTE5MDliZDM4NGZiZmM2MTkzOGVmY2E1MWM4OTkzYzcxZGIzMTc3MzBmMTZlN2U3NzY4NjdhZTRmZGM1NjJkNmYxNWRlNTg1ZTdiOTRlZjQ5NmEzNjc2MzY3YTJjYmFhYjdiNjM2NjQ4YjAwNzZiYWQ1Y2RmMWUwOTc0MGVjNmE0NTFiZmY1MzRlZmEyMTUwOWYzYmE3N2I4MTAxYjkxZWE3ZTU1ZGRiZmUxNDAxNTE3MDY3ZDdiMDFhMmEwODc5ZjA4ODVjODk0YTg3Y2ZiNjhjNGQ3ZWU4OTA2MDQ4ODFhZWI5N2MyMmQxZjMzN2VmOTIzZTAzNWE2NDAwMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMzMDIxNDYyNDc3Mjk4NzU5ZThlMDQ3MThhZTU2MzE1NWYzNTIzY2ZiODRjZGIzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDZkMmNiYjM3ZmQxMjk1N2U1YTc0ODBjZTA0MzVlOGVmNjA3N2RlZjA4ZmYyNzA4NDRkZTI1MTZhNDc0MmYyMTFkOGM3NDY5MGJjMDk0OGUwOGEyOTZhYmJhOTI4NWY2YmIzMDViOTViN2Y5NDA4Y2U0NGU4Mzg4MGM3MTk0NDQ2NzJlYzk5NzQ2YmE3OGNjNGJkZTQ3NTMxOWQwMWJkZTc3YzQ5ZDU4ZDE2ZDNiMmU5MWMyZTYxZTgzMDNjYTNkN2VkYTM3OTdmZDhiMzVjYTcyYmIxNGIxNWEyNGI1NmJiNzBkYzEzNDg0NTY1ODA4MTEwZmY1ZGI1OGM1NmY3YTA0MzU2MDdlM2MzNTJmYmY0ZjU1MTA2ZjI5ODBmZDNjZDQyMzk3ZGJmNzEzN2VlN2YxZTMyY2Q4MGEzYjdhYjEyYjQ2YzE2OTIyMDI3OGQ3NzE3Yjc4YTNjNDVkNjM5NWExMzBhOGI1ODg0MWNiYzI5MGU0ZjgxN2RlM2E0ZmUxNmVjZDA3N2NhMzNhMGFhMjVlMjM1Y2M3ZjY2NTVhODBiYThhZWVjODc5MDViYjJhNzU0NTliN2JjYzVhMTMzZjI5OTM0OTNiNDFmZmNmNjNjZDdhMzkxZTNlNmY3ODA5NGNhNDQyYzgwMTQ0NDAzY2IwYTVmMDBiZmM2MWFlODgwIgogCiBQS0NTNyBQYXJzZSBGYWlsdXJlIEludmFsaWQgQVNOMTogQ2hhbmdlIHRhZyAwNiB0byAwMiAjNTc4LjAKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBwa2NzN19hc24xX2ZhaWw6IjMwODIwNDlkMDYwOTJhODY0ODg2ZjcwZDAxMDcwMmEwODIwNDhlMzA4MjA0OGEwMjAxMDEzMTBmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwYjA2MDkyYTg2NDg4NmY3MGQwMTA3MDEzMTgyMDQ2NTMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTAyMDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTAyMTQ3YmRlZGRkMjQ0NGNkMWNkZmU1YzQxYTgxMDJjODliN2RmMmU2Y2JmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDA1YmVjZDg3MTk1YzFkZWZmOTBjMjRjOTEyNjliNTViM2YwNjliYzIyNWMzMjZjMzE0YzFhNTE3ODZmZmUxNGM4MzBiZTRlNGJjNzNjYmEzNmM5NzY3N2I0NDE2ODI3OWJlOTFlN2NkZjdjMTkzODZhZTIxODYyNzE5ZDEzYTNhMGZmZjA4MDNkNDYwOTYyZjJjZGE4MzcxNDg0ODczMjUyYzNkNzA1NGRiODE0M2UyYjA4MWEzODE2ZWQwODA0Y2E1MDk5YWU1ZmVjZTgzZDVjMmMzNzgzYjE5ODhiNGI0NmRjOTRlNTU1ODdhMTA3ZWExNTQ2YmYyMmQyOGEwOTdmNjUyYTQwNjZkYzI5NjUyNjkwNjlhZjJmNTE3NmJiOGNlOWNhNmQxMWY5Njc1N2YwMzIwNGY3NTY3MDM1ODdkMDBhZDQyNDc5NmM5MmZjN2FlYjZmNDk0NDMxOTk5ZWRhMzA5OTBlNGY1NzczNjMyZWQyNThmZTAyNzY2NzM1OTlkYTZmY2UzNWNkYWQ3NzI2YTBiYjAyNGNhZDk5NmI4OGUwY2I5ODg1NGNlYjVjMGI2ZWM3NDhkOWY5Y2U2YTZjZDQzNzg1OGJhY2I4MTQ2MThhMjcyZmYzYTQxNWM2ZTA3ZjNkYjA5ODg3NzdmZGVjODQ1YTk3YmY3ZDEwMmRkMDMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMjAyMTQ1NjRkNTU0MDI1YWY1OTllMzI3MDc5YjI3MjBlZjAwZGYzN2NmYjdjMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDAwNDYwOThkYzVmMmI5OWUzYmMyZWQ2NjQyZDdmMGE2MWVmYWJjMTVjMzhjNzYzMzNiY2NjZWVlZTM2OWE0ZjRhNWJkZGE4ZWE1OTI2NDEyNGU0MjlmMDg2MzI2ODNkZGJhMTdiYmYyNjJkODJiNmJlZmEzYjRlMTQ4MDM3NmE4YzdmM2M3ZDdlMmE2Nzc5YmJmMTgyNjJhYTg1N2RlOGMyMGExMmI2YTJjZThlNGQ3ZjMxZGQxYjE5NTM5MmNmNjE4NWFmY2UzNGFmZTA1ODk2MDU3YjM2ZTliMTcxYjZjNjdlZDdjMjI4NmNiZmE4M2ZmOGExNjdjN2JjNzEwOWFlZTdkN2UxOTA5YmQzODRmYmZjNjE5MzhlZmNhNTFjODk5M2M3MWRiMzE3NzMwZjE2ZTdlNzc2ODY3YWU0ZmRjNTYyZDZmMTVkZTU4NWU3Yjk0ZWY0OTZhMzY3NjM2N2EyY2JhYWI3YjYzNjY0OGIwMDc2YmFkNWNkZjFlMDk3NDBlYzZhNDUxYmZmNTM0ZWZhMjE1MDlmM2JhNzdiODEwMWI5MWVhN2U1NWRkYmZlMTQwMTUxNzA2N2Q3YjAxYTJhMDg3OWYwODg1Yzg5NGE4N2NmYjY4YzRkN2VlODkwNjA0ODgxYWViOTdjMjJkMWYzMzdlZjkyM2UwMzVhNjQwMDMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMzAyMTQ2MjQ3NzI5ODc1OWU4ZTA0NzE4YWU1NjMxNTVmMzUyM2NmYjg0Y2RiMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDA2ZDJjYmIzN2ZkMTI5NTdlNWE3NDgwY2UwNDM1ZThlZjYwNzdkZWYwOGZmMjcwODQ0ZGUyNTE2YTQ3NDJmMjExZDhjNzQ2OTBiYzA5NDhlMDhhMjk2YWJiYTkyODVmNmJiMzA1Yjk1YjdmOTQwOGNlNDRlODM4ODBjNzE5NDQ0NjcyZWM5OTc0NmJhNzhjYzRiZGU0NzUzMTlkMDFiZGU3N2M0OWQ1OGQxNmQzYjJlOTFjMmU2MWU4MzAzY2EzZDdlZGEzNzk3ZmQ4YjM1Y2E3MmJiMTRiMTVhMjRiNTZiYjcwZGMxMzQ4NDU2NTgwODExMGZmNWRiNThjNTZmN2EwNDM1NjA3ZTNjMzUyZmJmNGY1NTEwNmYyOTgwZmQzY2Q0MjM5N2RiZjcxMzdlZTdmMWUzMmNkODBhM2I3YWIxMmI0NmMxNjkyMjAyNzhkNzcxN2I3OGEzYzQ1ZDYzOTVhMTMwYThiNTg4NDFjYmMyOTBlNGY4MTdkZTNhNGZlMTZlY2QwNzdjYTMzYTBhYTI1ZTIzNWNjN2Y2NjU1YTgwYmE4YWVlYzg3OTA1YmIyYTc1NDU5YjdiY2M1YTEzM2YyOTkzNDkzYjQxZmZjZjYzY2Q3YTM5MWUzZTZmNzgwOTRjYTQ0MmM4MDE0NDQwM2NiMGE1ZjAwYmZjNjFhZTg4MCIKIAogUEtDUzcgUGFyc2UgRmFpbHVyZSBJbnZhbGlkIEFTTjE6IENoYW5nZSBsZW5ndGggZnJvbSAzIHRvIDQgIzU3OS4wCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NgogcGtjczdfYXNuMV9mYWlsOiIzMDgyMDQ5ZDA2MDkyYTg2NDg4NmY3MGQwMTA3MDJhMDgyMDQ4ZTMwODIwNDhhMDIwMTAxMzEwZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGIwNjA5MmE4NjQ4ODZmNzBkMDEwNzAxMzE4MjA0NjUzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjA0NTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwNWJlY2Q4NzE5NWMxZGVmZjkwYzI0YzkxMjY5YjU1YjNmMDY5YmMyMjVjMzI2YzMxNGMxYTUxNzg2ZmZlMTRjODMwYmU0ZTRiYzczY2JhMzZjOTc2NzdiNDQxNjgyNzliZTkxZTdjZGY3YzE5Mzg2YWUyMTg2MjcxOWQxM2EzYTBmZmYwODAzZDQ2MDk2MmYyY2RhODM3MTQ4NDg3MzI1MmMzZDcwNTRkYjgxNDNlMmIwODFhMzgxNmVkMDgwNGNhNTA5OWFlNWZlY2U4M2Q1YzJjMzc4M2IxOTg4YjRiNDZkYzk0ZTU1NTg3YTEwN2VhMTU0NmJmMjJkMjhhMDk3ZjY1MmE0MDY2ZGMyOTY1MjY5MDY5YWYyZjUxNzZiYjhjZTljYTZkMTFmOTY3NTdmMDMyMDRmNzU2NzAzNTg3ZDAwYWQ0MjQ3OTZjOTJmYzdhZWI2ZjQ5NDQzMTk5OWVkYTMwOTkwZTRmNTc3MzYzMmVkMjU4ZmUwMjc2NjczNTk5ZGE2ZmNlMzVjZGFkNzcyNmEwYmIwMjRjYWQ5OTZiODhlMGNiOTg4NTRjZWI1YzBiNmVjNzQ4ZDlmOWNlNmE2Y2Q0Mzc4NThiYWNiODE0NjE4YTI3MmZmM2E0MTVjNmUwN2YzZGIwOTg4Nzc3ZmRlYzg0NWE5N2JmN2QxMDJkZDAzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzIwMjE0NTY0ZDU1NDAyNWFmNTk5ZTMyNzA3OWIyNzIwZWYwMGRmMzdjZmI3YzMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwMDQ2MDk4ZGM1ZjJiOTllM2JjMmVkNjY0MmQ3ZjBhNjFlZmFiYzE1YzM4Yzc2MzMzYmNjY2VlZWUzNjlhNGY0YTViZGRhOGVhNTkyNjQxMjRlNDI5ZjA4NjMyNjgzZGRiYTE3YmJmMjYyZDgyYjZiZWZhM2I0ZTE0ODAzNzZhOGM3ZjNjN2Q3ZTJhNjc3OWJiZjE4MjYyYWE4NTdkZThjMjBhMTJiNmEyY2U4ZTRkN2YzMWRkMWIxOTUzOTJjZjYxODVhZmNlMzRhZmUwNTg5NjA1N2IzNmU5YjE3MWI2YzY3ZWQ3YzIyODZjYmZhODNmZjhhMTY3YzdiYzcxMDlhZWU3ZDdlMTkwOWJkMzg0ZmJmYzYxOTM4ZWZjYTUxYzg5OTNjNzFkYjMxNzczMGYxNmU3ZTc3Njg2N2FlNGZkYzU2MmQ2ZjE1ZGU1ODVlN2I5NGVmNDk2YTM2NzYzNjdhMmNiYWFiN2I2MzY2NDhiMDA3NmJhZDVjZGYxZTA5NzQwZWM2YTQ1MWJmZjUzNGVmYTIxNTA5ZjNiYTc3YjgxMDFiOTFlYTdlNTVkZGJmZTE0MDE1MTcwNjdkN2IwMWEyYTA4NzlmMDg4NWM4OTRhODdjZmI2OGM0ZDdlZTg5MDYwNDg4MWFlYjk3YzIyZDFmMzM3ZWY5MjNlMDM1YTY0MDAzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzMwMjE0NjI0NzcyOTg3NTllOGUwNDcxOGFlNTYzMTU1ZjM1MjNjZmI4NGNkYjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwNmQyY2JiMzdmZDEyOTU3ZTVhNzQ4MGNlMDQzNWU4ZWY2MDc3ZGVmMDhmZjI3MDg0NGRlMjUxNmE0NzQyZjIxMWQ4Yzc0NjkwYmMwOTQ4ZTA4YTI5NmFiYmE5Mjg1ZjZiYjMwNWI5NWI3Zjk0MDhjZTQ0ZTgzODgwYzcxOTQ0NDY3MmVjOTk3NDZiYTc4Y2M0YmRlNDc1MzE5ZDAxYmRlNzdjNDlkNThkMTZkM2IyZTkxYzJlNjFlODMwM2NhM2Q3ZWRhMzc5N2ZkOGIzNWNhNzJiYjE0YjE1YTI0YjU2YmI3MGRjMTM0ODQ1NjU4MDgxMTBmZjVkYjU4YzU2ZjdhMDQzNTYwN2UzYzM1MmZiZjRmNTUxMDZmMjk4MGZkM2NkNDIzOTdkYmY3MTM3ZWU3ZjFlMzJjZDgwYTNiN2FiMTJiNDZjMTY5MjIwMjc4ZDc3MTdiNzhhM2M0NWQ2Mzk1YTEzMGE4YjU4ODQxY2JjMjkwZTRmODE3ZGUzYTRmZTE2ZWNkMDc3Y2EzM2EwYWEyNWUyMzVjYzdmNjY1NWE4MGJhOGFlZWM4NzkwNWJiMmE3NTQ1OWI3YmNjNWExMzNmMjk5MzQ5M2I0MWZmY2Y2M2NkN2EzOTFlM2U2Zjc4MDk0Y2E0NDJjODAxNDQ0MDNjYjBhNWYwMGJmYzYxYWU4ODAiCiAKIFBLQ1M3IFBhcnNlIEZhaWx1cmUgSW52YWxpZCBBU04xOiBDaGFuZ2UgbGVuZ3RoIGZyb20gMyB0byAyICM1ODAuMAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHBrY3M3X2FzbjFfZmFpbDoiMzA4MjA0OWQwNjA5MmE4NjQ4ODZmNzBkMDEwNzAyYTA4MjA0OGUzMDgyMDQ4YTAyMDEwMTMxMGYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBiMDYwOTJhODY0ODg2ZjcwZDAxMDcwMTMxODIwNDY1MzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMjU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDViZWNkODcxOTVjMWRlZmY5MGMyNGM5MTI2OWI1NWIzZjA2OWJjMjI1YzMyNmMzMTRjMWE1MTc4NmZmZTE0YzgzMGJlNGU0YmM3M2NiYTM2Yzk3Njc3YjQ0MTY4Mjc5YmU5MWU3Y2RmN2MxOTM4NmFlMjE4NjI3MTlkMTNhM2EwZmZmMDgwM2Q0NjA5NjJmMmNkYTgzNzE0ODQ4NzMyNTJjM2Q3MDU0ZGI4MTQzZTJiMDgxYTM4MTZlZDA4MDRjYTUwOTlhZTVmZWNlODNkNWMyYzM3ODNiMTk4OGI0YjQ2ZGM5NGU1NTU4N2ExMDdlYTE1NDZiZjIyZDI4YTA5N2Y2NTJhNDA2NmRjMjk2NTI2OTA2OWFmMmY1MTc2YmI4Y2U5Y2E2ZDExZjk2NzU3ZjAzMjA0Zjc1NjcwMzU4N2QwMGFkNDI0Nzk2YzkyZmM3YWViNmY0OTQ0MzE5OTllZGEzMDk5MGU0ZjU3NzM2MzJlZDI1OGZlMDI3NjY3MzU5OWRhNmZjZTM1Y2RhZDc3MjZhMGJiMDI0Y2FkOTk2Yjg4ZTBjYjk4ODU0Y2ViNWMwYjZlYzc0OGQ5ZjljZTZhNmNkNDM3ODU4YmFjYjgxNDYxOGEyNzJmZjNhNDE1YzZlMDdmM2RiMDk4ODc3N2ZkZWM4NDVhOTdiZjdkMTAyZGQwMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMyMDIxNDU2NGQ1NTQwMjVhZjU5OWUzMjcwNzliMjcyMGVmMDBkZjM3Y2ZiN2MzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDA0NjA5OGRjNWYyYjk5ZTNiYzJlZDY2NDJkN2YwYTYxZWZhYmMxNWMzOGM3NjMzM2JjY2NlZWVlMzY5YTRmNGE1YmRkYThlYTU5MjY0MTI0ZTQyOWYwODYzMjY4M2RkYmExN2JiZjI2MmQ4MmI2YmVmYTNiNGUxNDgwMzc2YThjN2YzYzdkN2UyYTY3NzliYmYxODI2MmFhODU3ZGU4YzIwYTEyYjZhMmNlOGU0ZDdmMzFkZDFiMTk1MzkyY2Y2MTg1YWZjZTM0YWZlMDU4OTYwNTdiMzZlOWIxNzFiNmM2N2VkN2MyMjg2Y2JmYTgzZmY4YTE2N2M3YmM3MTA5YWVlN2Q3ZTE5MDliZDM4NGZiZmM2MTkzOGVmY2E1MWM4OTkzYzcxZGIzMTc3MzBmMTZlN2U3NzY4NjdhZTRmZGM1NjJkNmYxNWRlNTg1ZTdiOTRlZjQ5NmEzNjc2MzY3YTJjYmFhYjdiNjM2NjQ4YjAwNzZiYWQ1Y2RmMWUwOTc0MGVjNmE0NTFiZmY1MzRlZmEyMTUwOWYzYmE3N2I4MTAxYjkxZWE3ZTU1ZGRiZmUxNDAxNTE3MDY3ZDdiMDFhMmEwODc5ZjA4ODVjODk0YTg3Y2ZiNjhjNGQ3ZWU4OTA2MDQ4ODFhZWI5N2MyMmQxZjMzN2VmOTIzZTAzNWE2NDAwMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMzMDIxNDYyNDc3Mjk4NzU5ZThlMDQ3MThhZTU2MzE1NWYzNTIzY2ZiODRjZGIzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDZkMmNiYjM3ZmQxMjk1N2U1YTc0ODBjZTA0MzVlOGVmNjA3N2RlZjA4ZmYyNzA4NDRkZTI1MTZhNDc0MmYyMTFkOGM3NDY5MGJjMDk0OGUwOGEyOTZhYmJhOTI4NWY2YmIzMDViOTViN2Y5NDA4Y2U0NGU4Mzg4MGM3MTk0NDQ2NzJlYzk5NzQ2YmE3OGNjNGJkZTQ3NTMxOWQwMWJkZTc3YzQ5ZDU4ZDE2ZDNiMmU5MWMyZTYxZTgzMDNjYTNkN2VkYTM3OTdmZDhiMzVjYTcyYmIxNGIxNWEyNGI1NmJiNzBkYzEzNDg0NTY1ODA4MTEwZmY1ZGI1OGM1NmY3YTA0MzU2MDdlM2MzNTJmYmY0ZjU1MTA2ZjI5ODBmZDNjZDQyMzk3ZGJmNzEzN2VlN2YxZTMyY2Q4MGEzYjdhYjEyYjQ2YzE2OTIyMDI3OGQ3NzE3Yjc4YTNjNDVkNjM5NWExMzBhOGI1ODg0MWNiYzI5MGU0ZjgxN2RlM2E0ZmUxNmVjZDA3N2NhMzNhMGFhMjVlMjM1Y2M3ZjY2NTVhODBiYThhZWVjODc5MDViYjJhNzU0NTliN2JjYzVhMTMzZjI5OTM0OTNiNDFmZmNmNjNjZDdhMzkxZTNlNmY3ODA5NGNhNDQyYzgwMTQ0NDAzY2IwYTVmMDBiZmM2MWFlODgwIgogCiBQS0NTNyBQYXJzZSBGYWlsdXJlIEludmFsaWQgQVNOMTogQ2hhbmdlIHRhZyAxMyB0byAwMiAjNTgxLjAKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBwa2NzN19hc24xX2ZhaWw6IjMwODIwNDlkMDYwOTJhODY0ODg2ZjcwZDAxMDcwMmEwODIwNDhlMzA4MjA0OGEwMjAxMDEzMTBmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwYjA2MDkyYTg2NDg4NmY3MGQwMTA3MDEzMTgyMDQ2NTMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYwMjAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTAyMTQ3YmRlZGRkMjQ0NGNkMWNkZmU1YzQxYTgxMDJjODliN2RmMmU2Y2JmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDA1YmVjZDg3MTk1YzFkZWZmOTBjMjRjOTEyNjliNTViM2YwNjliYzIyNWMzMjZjMzE0YzFhNTE3ODZmZmUxNGM4MzBiZTRlNGJjNzNjYmEzNmM5NzY3N2I0NDE2ODI3OWJlOTFlN2NkZjdjMTkzODZhZTIxODYyNzE5ZDEzYTNhMGZmZjA4MDNkNDYwOTYyZjJjZGE4MzcxNDg0ODczMjUyYzNkNzA1NGRiODE0M2UyYjA4MWEzODE2ZWQwODA0Y2E1MDk5YWU1ZmVjZTgzZDVjMmMzNzgzYjE5ODhiNGI0NmRjOTRlNTU1ODdhMTA3ZWExNTQ2YmYyMmQyOGEwOTdmNjUyYTQwNjZkYzI5NjUyNjkwNjlhZjJmNTE3NmJiOGNlOWNhNmQxMWY5Njc1N2YwMzIwNGY3NTY3MDM1ODdkMDBhZDQyNDc5NmM5MmZjN2FlYjZmNDk0NDMxOTk5ZWRhMzA5OTBlNGY1NzczNjMyZWQyNThmZTAyNzY2NzM1OTlkYTZmY2UzNWNkYWQ3NzI2YTBiYjAyNGNhZDk5NmI4OGUwY2I5ODg1NGNlYjVjMGI2ZWM3NDhkOWY5Y2U2YTZjZDQzNzg1OGJhY2I4MTQ2MThhMjcyZmYzYTQxNWM2ZTA3ZjNkYjA5ODg3NzdmZGVjODQ1YTk3YmY3ZDEwMmRkMDMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMjAyMTQ1NjRkNTU0MDI1YWY1OTllMzI3MDc5YjI3MjBlZjAwZGYzN2NmYjdjMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDAwNDYwOThkYzVmMmI5OWUzYmMyZWQ2NjQyZDdmMGE2MWVmYWJjMTVjMzhjNzYzMzNiY2NjZWVlZTM2OWE0ZjRhNWJkZGE4ZWE1OTI2NDEyNGU0MjlmMDg2MzI2ODNkZGJhMTdiYmYyNjJkODJiNmJlZmEzYjRlMTQ4MDM3NmE4YzdmM2M3ZDdlMmE2Nzc5YmJmMTgyNjJhYTg1N2RlOGMyMGExMmI2YTJjZThlNGQ3ZjMxZGQxYjE5NTM5MmNmNjE4NWFmY2UzNGFmZTA1ODk2MDU3YjM2ZTliMTcxYjZjNjdlZDdjMjI4NmNiZmE4M2ZmOGExNjdjN2JjNzEwOWFlZTdkN2UxOTA5YmQzODRmYmZjNjE5MzhlZmNhNTFjODk5M2M3MWRiMzE3NzMwZjE2ZTdlNzc2ODY3YWU0ZmRjNTYyZDZmMTVkZTU4NWU3Yjk0ZWY0OTZhMzY3NjM2N2EyY2JhYWI3YjYzNjY0OGIwMDc2YmFkNWNkZjFlMDk3NDBlYzZhNDUxYmZmNTM0ZWZhMjE1MDlmM2JhNzdiODEwMWI5MWVhN2U1NWRkYmZlMTQwMTUxNzA2N2Q3YjAxYTJhMDg3OWYwODg1Yzg5NGE4N2NmYjY4YzRkN2VlODkwNjA0ODgxYWViOTdjMjJkMWYzMzdlZjkyM2UwMzVhNjQwMDMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMzAyMTQ2MjQ3NzI5ODc1OWU4ZTA0NzE4YWU1NjMxNTVmMzUyM2NmYjg0Y2RiMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDA2ZDJjYmIzN2ZkMTI5NTdlNWE3NDgwY2UwNDM1ZThlZjYwNzdkZWYwOGZmMjcwODQ0ZGUyNTE2YTQ3NDJmMjExZDhjNzQ2OTBiYzA5NDhlMDhhMjk2YWJiYTkyODVmNmJiMzA1Yjk1YjdmOTQwOGNlNDRlODM4ODBjNzE5NDQ0NjcyZWM5OTc0NmJhNzhjYzRiZGU0NzUzMTlkMDFiZGU3N2M0OWQ1OGQxNmQzYjJlOTFjMmU2MWU4MzAzY2EzZDdlZGEzNzk3ZmQ4YjM1Y2E3MmJiMTRiMTVhMjRiNTZiYjcwZGMxMzQ4NDU2NTgwODExMGZmNWRiNThjNTZmN2EwNDM1NjA3ZTNjMzUyZmJmNGY1NTEwNmYyOTgwZmQzY2Q0MjM5N2RiZjcxMzdlZTdmMWUzMmNkODBhM2I3YWIxMmI0NmMxNjkyMjAyNzhkNzcxN2I3OGEzYzQ1ZDYzOTVhMTMwYThiNTg4NDFjYmMyOTBlNGY4MTdkZTNhNGZlMTZlY2QwNzdjYTMzYTBhYTI1ZTIzNWNjN2Y2NjU1YTgwYmE4YWVlYzg3OTA1YmIyYTc1NDU5YjdiY2M1YTEzM2YyOTkzNDkzYjQxZmZjZjYzY2Q3YTM5MWUzZTZmNzgwOTRjYTQ0MmM4MDE0NDQwM2NiMGE1ZjAwYmZjNjFhZTg4MCIKIAogUEtDUzcgUGFyc2UgRmFpbHVyZSBJbnZhbGlkIEFTTjE6IENoYW5nZSBsZW5ndGggZnJvbSAyIHRvIDMgIzU4Mi4wCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NgogcGtjczdfYXNuMV9mYWlsOiIzMDgyMDQ5ZDA2MDkyYTg2NDg4NmY3MGQwMTA3MDJhMDgyMDQ4ZTMwODIwNDhhMDIwMTAxMzEwZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGIwNjA5MmE4NjQ4ODZmNzBkMDEwNzAxMzE4MjA0NjUzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMzRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwNWJlY2Q4NzE5NWMxZGVmZjkwYzI0YzkxMjY5YjU1YjNmMDY5YmMyMjVjMzI2YzMxNGMxYTUxNzg2ZmZlMTRjODMwYmU0ZTRiYzczY2JhMzZjOTc2NzdiNDQxNjgyNzliZTkxZTdjZGY3YzE5Mzg2YWUyMTg2MjcxOWQxM2EzYTBmZmYwODAzZDQ2MDk2MmYyY2RhODM3MTQ4NDg3MzI1MmMzZDcwNTRkYjgxNDNlMmIwODFhMzgxNmVkMDgwNGNhNTA5OWFlNWZlY2U4M2Q1YzJjMzc4M2IxOTg4YjRiNDZkYzk0ZTU1NTg3YTEwN2VhMTU0NmJmMjJkMjhhMDk3ZjY1MmE0MDY2ZGMyOTY1MjY5MDY5YWYyZjUxNzZiYjhjZTljYTZkMTFmOTY3NTdmMDMyMDRmNzU2NzAzNTg3ZDAwYWQ0MjQ3OTZjOTJmYzdhZWI2ZjQ5NDQzMTk5OWVkYTMwOTkwZTRmNTc3MzYzMmVkMjU4ZmUwMjc2NjczNTk5ZGE2ZmNlMzVjZGFkNzcyNmEwYmIwMjRjYWQ5OTZiODhlMGNiOTg4NTRjZWI1YzBiNmVjNzQ4ZDlmOWNlNmE2Y2Q0Mzc4NThiYWNiODE0NjE4YTI3MmZmM2E0MTVjNmUwN2YzZGIwOTg4Nzc3ZmRlYzg0NWE5N2JmN2QxMDJkZDAzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzIwMjE0NTY0ZDU1NDAyNWFmNTk5ZTMyNzA3OWIyNzIwZWYwMGRmMzdjZmI3YzMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwMDQ2MDk4ZGM1ZjJiOTllM2JjMmVkNjY0MmQ3ZjBhNjFlZmFiYzE1YzM4Yzc2MzMzYmNjY2VlZWUzNjlhNGY0YTViZGRhOGVhNTkyNjQxMjRlNDI5ZjA4NjMyNjgzZGRiYTE3YmJmMjYyZDgyYjZiZWZhM2I0ZTE0ODAzNzZhOGM3ZjNjN2Q3ZTJhNjc3OWJiZjE4MjYyYWE4NTdkZThjMjBhMTJiNmEyY2U4ZTRkN2YzMWRkMWIxOTUzOTJjZjYxODVhZmNlMzRhZmUwNTg5NjA1N2IzNmU5YjE3MWI2YzY3ZWQ3YzIyODZjYmZhODNmZjhhMTY3YzdiYzcxMDlhZWU3ZDdlMTkwOWJkMzg0ZmJmYzYxOTM4ZWZjYTUxYzg5OTNjNzFkYjMxNzczMGYxNmU3ZTc3Njg2N2FlNGZkYzU2MmQ2ZjE1ZGU1ODVlN2I5NGVmNDk2YTM2NzYzNjdhMmNiYWFiN2I2MzY2NDhiMDA3NmJhZDVjZGYxZTA5NzQwZWM2YTQ1MWJmZjUzNGVmYTIxNTA5ZjNiYTc3YjgxMDFiOTFlYTdlNTVkZGJmZTE0MDE1MTcwNjdkN2IwMWEyYTA4NzlmMDg4NWM4OTRhODdjZmI2OGM0ZDdlZTg5MDYwNDg4MWFlYjk3YzIyZDFmMzM3ZWY5MjNlMDM1YTY0MDAzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzMwMjE0NjI0NzcyOTg3NTllOGUwNDcxOGFlNTYzMTU1ZjM1MjNjZmI4NGNkYjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwNmQyY2JiMzdmZDEyOTU3ZTVhNzQ4MGNlMDQzNWU4ZWY2MDc3ZGVmMDhmZjI3MDg0NGRlMjUxNmE0NzQyZjIxMWQ4Yzc0NjkwYmMwOTQ4ZTA4YTI5NmFiYmE5Mjg1ZjZiYjMwNWI5NWI3Zjk0MDhjZTQ0ZTgzODgwYzcxOTQ0NDY3MmVjOTk3NDZiYTc4Y2M0YmRlNDc1MzE5ZDAxYmRlNzdjNDlkNThkMTZkM2IyZTkxYzJlNjFlODMwM2NhM2Q3ZWRhMzc5N2ZkOGIzNWNhNzJiYjE0YjE1YTI0YjU2YmI3MGRjMTM0ODQ1NjU4MDgxMTBmZjVkYjU4YzU2ZjdhMDQzNTYwN2UzYzM1MmZiZjRmNTUxMDZmMjk4MGZkM2NkNDIzOTdkYmY3MTM3ZWU3ZjFlMzJjZDgwYTNiN2FiMTJiNDZjMTY5MjIwMjc4ZDc3MTdiNzhhM2M0NWQ2Mzk1YTEzMGE4YjU4ODQxY2JjMjkwZTRmODE3ZGUzYTRmZTE2ZWNkMDc3Y2EzM2EwYWEyNWUyMzVjYzdmNjY1NWE4MGJhOGFlZWM4NzkwNWJiMmE3NTQ1OWI3YmNjNWExMzNmMjk5MzQ5M2I0MWZmY2Y2M2NkN2EzOTFlM2U2Zjc4MDk0Y2E0NDJjODAxNDQ0MDNjYjBhNWYwMGJmYzYxYWU4ODAiCiAKIFBLQ1M3IFBhcnNlIEZhaWx1cmUgSW52YWxpZCBBU04xOiBDaGFuZ2UgbGVuZ3RoIGZyb20gMiB0byAxICM1ODMuMAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHBrY3M3X2FzbjFfZmFpbDoiMzA4MjA0OWQwNjA5MmE4NjQ4ODZmNzBkMDEwNzAyYTA4MjA0OGUzMDgyMDQ4YTAyMDEwMTMxMGYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBiMDYwOTJhODY0ODg2ZjcwZDAxMDcwMTMxODIwNDY1MzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDE0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDViZWNkODcxOTVjMWRlZmY5MGMyNGM5MTI2OWI1NWIzZjA2OWJjMjI1YzMyNmMzMTRjMWE1MTc4NmZmZTE0YzgzMGJlNGU0YmM3M2NiYTM2Yzk3Njc3YjQ0MTY4Mjc5YmU5MWU3Y2RmN2MxOTM4NmFlMjE4NjI3MTlkMTNhM2EwZmZmMDgwM2Q0NjA5NjJmMmNkYTgzNzE0ODQ4NzMyNTJjM2Q3MDU0ZGI4MTQzZTJiMDgxYTM4MTZlZDA4MDRjYTUwOTlhZTVmZWNlODNkNWMyYzM3ODNiMTk4OGI0YjQ2ZGM5NGU1NTU4N2ExMDdlYTE1NDZiZjIyZDI4YTA5N2Y2NTJhNDA2NmRjMjk2NTI2OTA2OWFmMmY1MTc2YmI4Y2U5Y2E2ZDExZjk2NzU3ZjAzMjA0Zjc1NjcwMzU4N2QwMGFkNDI0Nzk2YzkyZmM3YWViNmY0OTQ0MzE5OTllZGEzMDk5MGU0ZjU3NzM2MzJlZDI1OGZlMDI3NjY3MzU5OWRhNmZjZTM1Y2RhZDc3MjZhMGJiMDI0Y2FkOTk2Yjg4ZTBjYjk4ODU0Y2ViNWMwYjZlYzc0OGQ5ZjljZTZhNmNkNDM3ODU4YmFjYjgxNDYxOGEyNzJmZjNhNDE1YzZlMDdmM2RiMDk4ODc3N2ZkZWM4NDVhOTdiZjdkMTAyZGQwMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMyMDIxNDU2NGQ1NTQwMjVhZjU5OWUzMjcwNzliMjcyMGVmMDBkZjM3Y2ZiN2MzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDA0NjA5OGRjNWYyYjk5ZTNiYzJlZDY2NDJkN2YwYTYxZWZhYmMxNWMzOGM3NjMzM2JjY2NlZWVlMzY5YTRmNGE1YmRkYThlYTU5MjY0MTI0ZTQyOWYwODYzMjY4M2RkYmExN2JiZjI2MmQ4MmI2YmVmYTNiNGUxNDgwMzc2YThjN2YzYzdkN2UyYTY3NzliYmYxODI2MmFhODU3ZGU4YzIwYTEyYjZhMmNlOGU0ZDdmMzFkZDFiMTk1MzkyY2Y2MTg1YWZjZTM0YWZlMDU4OTYwNTdiMzZlOWIxNzFiNmM2N2VkN2MyMjg2Y2JmYTgzZmY4YTE2N2M3YmM3MTA5YWVlN2Q3ZTE5MDliZDM4NGZiZmM2MTkzOGVmY2E1MWM4OTkzYzcxZGIzMTc3MzBmMTZlN2U3NzY4NjdhZTRmZGM1NjJkNmYxNWRlNTg1ZTdiOTRlZjQ5NmEzNjc2MzY3YTJjYmFhYjdiNjM2NjQ4YjAwNzZiYWQ1Y2RmMWUwOTc0MGVjNmE0NTFiZmY1MzRlZmEyMTUwOWYzYmE3N2I4MTAxYjkxZWE3ZTU1ZGRiZmUxNDAxNTE3MDY3ZDdiMDFhMmEwODc5ZjA4ODVjODk0YTg3Y2ZiNjhjNGQ3ZWU4OTA2MDQ4ODFhZWI5N2MyMmQxZjMzN2VmOTIzZTAzNWE2NDAwMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMzMDIxNDYyNDc3Mjk4NzU5ZThlMDQ3MThhZTU2MzE1NWYzNTIzY2ZiODRjZGIzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDZkMmNiYjM3ZmQxMjk1N2U1YTc0ODBjZTA0MzVlOGVmNjA3N2RlZjA4ZmYyNzA4NDRkZTI1MTZhNDc0MmYyMTFkOGM3NDY5MGJjMDk0OGUwOGEyOTZhYmJhOTI4NWY2YmIzMDViOTViN2Y5NDA4Y2U0NGU4Mzg4MGM3MTk0NDQ2NzJlYzk5NzQ2YmE3OGNjNGJkZTQ3NTMxOWQwMWJkZTc3YzQ5ZDU4ZDE2ZDNiMmU5MWMyZTYxZTgzMDNjYTNkN2VkYTM3OTdmZDhiMzVjYTcyYmIxNGIxNWEyNGI1NmJiNzBkYzEzNDg0NTY1ODA4MTEwZmY1ZGI1OGM1NmY3YTA0MzU2MDdlM2MzNTJmYmY0ZjU1MTA2ZjI5ODBmZDNjZDQyMzk3ZGJmNzEzN2VlN2YxZTMyY2Q4MGEzYjdhYjEyYjQ2YzE2OTIyMDI3OGQ3NzE3Yjc4YTNjNDVkNjM5NWExMzBhOGI1ODg0MWNiYzI5MGU0ZjgxN2RlM2E0ZmUxNmVjZDA3N2NhMzNhMGFhMjVlMjM1Y2M3ZjY2NTVhODBiYThhZWVjODc5MDViYjJhNzU0NTliN2JjYzVhMTMzZjI5OTM0OTNiNDFmZmNmNjNjZDdhMzkxZTNlNmY3ODA5NGNhNDQyYzgwMTQ0NDAzY2IwYTVmMDBiZmM2MWFlODgwIgogCiBQS0NTNyBQYXJzZSBGYWlsdXJlIEludmFsaWQgQVNOMTogQ2hhbmdlIHRhZyAzMSB0byAwMiAjNTg0LjAKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBwa2NzN19hc24xX2ZhaWw6IjMwODIwNDlkMDYwOTJhODY0ODg2ZjcwZDAxMDcwMmEwODIwNDhlMzA4MjA0OGEwMjAxMDEzMTBmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwYjA2MDkyYTg2NDg4NmY3MGQwMTA3MDEzMTgyMDQ2NTMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzAyMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTAyMTQ3YmRlZGRkMjQ0NGNkMWNkZmU1YzQxYTgxMDJjODliN2RmMmU2Y2JmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDA1YmVjZDg3MTk1YzFkZWZmOTBjMjRjOTEyNjliNTViM2YwNjliYzIyNWMzMjZjMzE0YzFhNTE3ODZmZmUxNGM4MzBiZTRlNGJjNzNjYmEzNmM5NzY3N2I0NDE2ODI3OWJlOTFlN2NkZjdjMTkzODZhZTIxODYyNzE5ZDEzYTNhMGZmZjA4MDNkNDYwOTYyZjJjZGE4MzcxNDg0ODczMjUyYzNkNzA1NGRiODE0M2UyYjA4MWEzODE2ZWQwODA0Y2E1MDk5YWU1ZmVjZTgzZDVjMmMzNzgzYjE5ODhiNGI0NmRjOTRlNTU1ODdhMTA3ZWExNTQ2YmYyMmQyOGEwOTdmNjUyYTQwNjZkYzI5NjUyNjkwNjlhZjJmNTE3NmJiOGNlOWNhNmQxMWY5Njc1N2YwMzIwNGY3NTY3MDM1ODdkMDBhZDQyNDc5NmM5MmZjN2FlYjZmNDk0NDMxOTk5ZWRhMzA5OTBlNGY1NzczNjMyZWQyNThmZTAyNzY2NzM1OTlkYTZmY2UzNWNkYWQ3NzI2YTBiYjAyNGNhZDk5NmI4OGUwY2I5ODg1NGNlYjVjMGI2ZWM3NDhkOWY5Y2U2YTZjZDQzNzg1OGJhY2I4MTQ2MThhMjcyZmYzYTQxNWM2ZTA3ZjNkYjA5ODg3NzdmZGVjODQ1YTk3YmY3ZDEwMmRkMDMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMjAyMTQ1NjRkNTU0MDI1YWY1OTllMzI3MDc5YjI3MjBlZjAwZGYzN2NmYjdjMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDAwNDYwOThkYzVmMmI5OWUzYmMyZWQ2NjQyZDdmMGE2MWVmYWJjMTVjMzhjNzYzMzNiY2NjZWVlZTM2OWE0ZjRhNWJkZGE4ZWE1OTI2NDEyNGU0MjlmMDg2MzI2ODNkZGJhMTdiYmYyNjJkODJiNmJlZmEzYjRlMTQ4MDM3NmE4YzdmM2M3ZDdlMmE2Nzc5YmJmMTgyNjJhYTg1N2RlOGMyMGExMmI2YTJjZThlNGQ3ZjMxZGQxYjE5NTM5MmNmNjE4NWFmY2UzNGFmZTA1ODk2MDU3YjM2ZTliMTcxYjZjNjdlZDdjMjI4NmNiZmE4M2ZmOGExNjdjN2JjNzEwOWFlZTdkN2UxOTA5YmQzODRmYmZjNjE5MzhlZmNhNTFjODk5M2M3MWRiMzE3NzMwZjE2ZTdlNzc2ODY3YWU0ZmRjNTYyZDZmMTVkZTU4NWU3Yjk0ZWY0OTZhMzY3NjM2N2EyY2JhYWI3YjYzNjY0OGIwMDc2YmFkNWNkZjFlMDk3NDBlYzZhNDUxYmZmNTM0ZWZhMjE1MDlmM2JhNzdiODEwMWI5MWVhN2U1NWRkYmZlMTQwMTUxNzA2N2Q3YjAxYTJhMDg3OWYwODg1Yzg5NGE4N2NmYjY4YzRkN2VlODkwNjA0ODgxYWViOTdjMjJkMWYzMzdlZjkyM2UwMzVhNjQwMDMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMzAyMTQ2MjQ3NzI5ODc1OWU4ZTA0NzE4YWU1NjMxNTVmMzUyM2NmYjg0Y2RiMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDA2ZDJjYmIzN2ZkMTI5NTdlNWE3NDgwY2UwNDM1ZThlZjYwNzdkZWYwOGZmMjcwODQ0ZGUyNTE2YTQ3NDJmMjExZDhjNzQ2OTBiYzA5NDhlMDhhMjk2YWJiYTkyODVmNmJiMzA1Yjk1YjdmOTQwOGNlNDRlODM4ODBjNzE5NDQ0NjcyZWM5OTc0NmJhNzhjYzRiZGU0NzUzMTlkMDFiZGU3N2M0OWQ1OGQxNmQzYjJlOTFjMmU2MWU4MzAzY2EzZDdlZGEzNzk3ZmQ4YjM1Y2E3MmJiMTRiMTVhMjRiNTZiYjcwZGMxMzQ4NDU2NTgwODExMGZmNWRiNThjNTZmN2EwNDM1NjA3ZTNjMzUyZmJmNGY1NTEwNmYyOTgwZmQzY2Q0MjM5N2RiZjcxMzdlZTdmMWUzMmNkODBhM2I3YWIxMmI0NmMxNjkyMjAyNzhkNzcxN2I3OGEzYzQ1ZDYzOTVhMTMwYThiNTg4NDFjYmMyOTBlNGY4MTdkZTNhNGZlMTZlY2QwNzdjYTMzYTBhYTI1ZTIzNWNjN2Y2NjU1YTgwYmE4YWVlYzg3OTA1YmIyYTc1NDU5YjdiY2M1YTEzM2YyOTkzNDkzYjQxZmZjZjYzY2Q3YTM5MWUzZTZmNzgwOTRjYTQ0MmM4MDE0NDQwM2NiMGE1ZjAwYmZjNjFhZTg4MCIKIAogUEtDUzcgUGFyc2UgRmFpbHVyZSBJbnZhbGlkIEFTTjE6IENoYW5nZSBsZW5ndGggZnJvbSAxNCB0byAxNSAjNTg1LjAKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBwa2NzN19hc24xX2ZhaWw6IjMwODIwNDlkMDYwOTJhODY0ODg2ZjcwZDAxMDcwMmEwODIwNDhlMzA4MjA0OGEwMjAxMDEzMTBmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwYjA2MDkyYTg2NDg4NmY3MGQwMTA3MDEzMTgyMDQ2NTMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGYzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTAyMTQ3YmRlZGRkMjQ0NGNkMWNkZmU1YzQxYTgxMDJjODliN2RmMmU2Y2JmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDA1YmVjZDg3MTk1YzFkZWZmOTBjMjRjOTEyNjliNTViM2YwNjliYzIyNWMzMjZjMzE0YzFhNTE3ODZmZmUxNGM4MzBiZTRlNGJjNzNjYmEzNmM5NzY3N2I0NDE2ODI3OWJlOTFlN2NkZjdjMTkzODZhZTIxODYyNzE5ZDEzYTNhMGZmZjA4MDNkNDYwOTYyZjJjZGE4MzcxNDg0ODczMjUyYzNkNzA1NGRiODE0M2UyYjA4MWEzODE2ZWQwODA0Y2E1MDk5YWU1ZmVjZTgzZDVjMmMzNzgzYjE5ODhiNGI0NmRjOTRlNTU1ODdhMTA3ZWExNTQ2YmYyMmQyOGEwOTdmNjUyYTQwNjZkYzI5NjUyNjkwNjlhZjJmNTE3NmJiOGNlOWNhNmQxMWY5Njc1N2YwMzIwNGY3NTY3MDM1ODdkMDBhZDQyNDc5NmM5MmZjN2FlYjZmNDk0NDMxOTk5ZWRhMzA5OTBlNGY1NzczNjMyZWQyNThmZTAyNzY2NzM1OTlkYTZmY2UzNWNkYWQ3NzI2YTBiYjAyNGNhZDk5NmI4OGUwY2I5ODg1NGNlYjVjMGI2ZWM3NDhkOWY5Y2U2YTZjZDQzNzg1OGJhY2I4MTQ2MThhMjcyZmYzYTQxNWM2ZTA3ZjNkYjA5ODg3NzdmZGVjODQ1YTk3YmY3ZDEwMmRkMDMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMjAyMTQ1NjRkNTU0MDI1YWY1OTllMzI3MDc5YjI3MjBlZjAwZGYzN2NmYjdjMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDAwNDYwOThkYzVmMmI5OWUzYmMyZWQ2NjQyZDdmMGE2MWVmYWJjMTVjMzhjNzYzMzNiY2NjZWVlZTM2OWE0ZjRhNWJkZGE4ZWE1OTI2NDEyNGU0MjlmMDg2MzI2ODNkZGJhMTdiYmYyNjJkODJiNmJlZmEzYjRlMTQ4MDM3NmE4YzdmM2M3ZDdlMmE2Nzc5YmJmMTgyNjJhYTg1N2RlOGMyMGExMmI2YTJjZThlNGQ3ZjMxZGQxYjE5NTM5MmNmNjE4NWFmY2UzNGFmZTA1ODk2MDU3YjM2ZTliMTcxYjZjNjdlZDdjMjI4NmNiZmE4M2ZmOGExNjdjN2JjNzEwOWFlZTdkN2UxOTA5YmQzODRmYmZjNjE5MzhlZmNhNTFjODk5M2M3MWRiMzE3NzMwZjE2ZTdlNzc2ODY3YWU0ZmRjNTYyZDZmMTVkZTU4NWU3Yjk0ZWY0OTZhMzY3NjM2N2EyY2JhYWI3YjYzNjY0OGIwMDc2YmFkNWNkZjFlMDk3NDBlYzZhNDUxYmZmNTM0ZWZhMjE1MDlmM2JhNzdiODEwMWI5MWVhN2U1NWRkYmZlMTQwMTUxNzA2N2Q3YjAxYTJhMDg3OWYwODg1Yzg5NGE4N2NmYjY4YzRkN2VlODkwNjA0ODgxYWViOTdjMjJkMWYzMzdlZjkyM2UwMzVhNjQwMDMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMzAyMTQ2MjQ3NzI5ODc1OWU4ZTA0NzE4YWU1NjMxNTVmMzUyM2NmYjg0Y2RiMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDA2ZDJjYmIzN2ZkMTI5NTdlNWE3NDgwY2UwNDM1ZThlZjYwNzdkZWYwOGZmMjcwODQ0ZGUyNTE2YTQ3NDJmMjExZDhjNzQ2OTBiYzA5NDhlMDhhMjk2YWJiYTkyODVmNmJiMzA1Yjk1YjdmOTQwOGNlNDRlODM4ODBjNzE5NDQ0NjcyZWM5OTc0NmJhNzhjYzRiZGU0NzUzMTlkMDFiZGU3N2M0OWQ1OGQxNmQzYjJlOTFjMmU2MWU4MzAzY2EzZDdlZGEzNzk3ZmQ4YjM1Y2E3MmJiMTRiMTVhMjRiNTZiYjcwZGMxMzQ4NDU2NTgwODExMGZmNWRiNThjNTZmN2EwNDM1NjA3ZTNjMzUyZmJmNGY1NTEwNmYyOTgwZmQzY2Q0MjM5N2RiZjcxMzdlZTdmMWUzMmNkODBhM2I3YWIxMmI0NmMxNjkyMjAyNzhkNzcxN2I3OGEzYzQ1ZDYzOTVhMTMwYThiNTg4NDFjYmMyOTBlNGY4MTdkZTNhNGZlMTZlY2QwNzdjYTMzYTBhYTI1ZTIzNWNjN2Y2NjU1YTgwYmE4YWVlYzg3OTA1YmIyYTc1NDU5YjdiY2M1YTEzM2YyOTkzNDkzYjQxZmZjZjYzY2Q3YTM5MWUzZTZmNzgwOTRjYTQ0MmM4MDE0NDQwM2NiMGE1ZjAwYmZjNjFhZTg4MCIKIAogUEtDUzcgUGFyc2UgRmFpbHVyZSBJbnZhbGlkIEFTTjE6IENoYW5nZSBjb250ZW50cyBvZiB0YWcgMzEgdG8gY29udGFpbiBvbmUgdW5hY2NvdW50ZWQgZXh0cmEgYnl0ZSAjNTg2LjAKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBwa2NzN19hc24xX2ZhaWw6IjMwODIwNDlkMDYwOTJhODY0ODg2ZjcwZDAxMDcwMmEwODIwNDhlMzA4MjA0OGEwMjAxMDEzMTBmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwYjA2MDkyYTg2NDg4NmY3MGQwMTA3MDEzMTgyMDQ2NTMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGYzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MDAzMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDViZWNkODcxOTVjMWRlZmY5MGMyNGM5MTI2OWI1NWIzZjA2OWJjMjI1YzMyNmMzMTRjMWE1MTc4NmZmZTE0YzgzMGJlNGU0YmM3M2NiYTM2Yzk3Njc3YjQ0MTY4Mjc5YmU5MWU3Y2RmN2MxOTM4NmFlMjE4NjI3MTlkMTNhM2EwZmZmMDgwM2Q0NjA5NjJmMmNkYTgzNzE0ODQ4NzMyNTJjM2Q3MDU0ZGI4MTQzZTJiMDgxYTM4MTZlZDA4MDRjYTUwOTlhZTVmZWNlODNkNWMyYzM3ODNiMTk4OGI0YjQ2ZGM5NGU1NTU4N2ExMDdlYTE1NDZiZjIyZDI4YTA5N2Y2NTJhNDA2NmRjMjk2NTI2OTA2OWFmMmY1MTc2YmI4Y2U5Y2E2ZDExZjk2NzU3ZjAzMjA0Zjc1NjcwMzU4N2QwMGFkNDI0Nzk2YzkyZmM3YWViNmY0OTQ0MzE5OTllZGEzMDk5MGU0ZjU3NzM2MzJlZDI1OGZlMDI3NjY3MzU5OWRhNmZjZTM1Y2RhZDc3MjZhMGJiMDI0Y2FkOTk2Yjg4ZTBjYjk4ODU0Y2ViNWMwYjZlYzc0OGQ5ZjljZTZhNmNkNDM3ODU4YmFjYjgxNDYxOGEyNzJmZjNhNDE1YzZlMDdmM2RiMDk4ODc3N2ZkZWM4NDVhOTdiZjdkMTAyZGQwMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMyMDIxNDU2NGQ1NTQwMjVhZjU5OWUzMjcwNzliMjcyMGVmMDBkZjM3Y2ZiN2MzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDA0NjA5OGRjNWYyYjk5ZTNiYzJlZDY2NDJkN2YwYTYxZWZhYmMxNWMzOGM3NjMzM2JjY2NlZWVlMzY5YTRmNGE1YmRkYThlYTU5MjY0MTI0ZTQyOWYwODYzMjY4M2RkYmExN2JiZjI2MmQ4MmI2YmVmYTNiNGUxNDgwMzc2YThjN2YzYzdkN2UyYTY3NzliYmYxODI2MmFhODU3ZGU4YzIwYTEyYjZhMmNlOGU0ZDdmMzFkZDFiMTk1MzkyY2Y2MTg1YWZjZTM0YWZlMDU4OTYwNTdiMzZlOWIxNzFiNmM2N2VkN2MyMjg2Y2JmYTgzZmY4YTE2N2M3YmM3MTA5YWVlN2Q3ZTE5MDliZDM4NGZiZmM2MTkzOGVmY2E1MWM4OTkzYzcxZGIzMTc3MzBmMTZlN2U3NzY4NjdhZTRmZGM1NjJkNmYxNWRlNTg1ZTdiOTRlZjQ5NmEzNjc2MzY3YTJjYmFhYjdiNjM2NjQ4YjAwNzZiYWQ1Y2RmMWUwOTc0MGVjNmE0NTFiZmY1MzRlZmEyMTUwOWYzYmE3N2I4MTAxYjkxZWE3ZTU1ZGRiZmUxNDAxNTE3MDY3ZDdiMDFhMmEwODc5ZjA4ODVjODk0YTg3Y2ZiNjhjNGQ3ZWU4OTA2MDQ4ODFhZWI5N2MyMmQxZjMzN2VmOTIzZTAzNWE2NDAwMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMzMDIxNDYyNDc3Mjk4NzU5ZThlMDQ3MThhZTU2MzE1NWYzNTIzY2ZiODRjZGIzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDZkMmNiYjM3ZmQxMjk1N2U1YTc0ODBjZTA0MzVlOGVmNjA3N2RlZjA4ZmYyNzA4NDRkZTI1MTZhNDc0MmYyMTFkOGM3NDY5MGJjMDk0OGUwOGEyOTZhYmJhOTI4NWY2YmIzMDViOTViN2Y5NDA4Y2U0NGU4Mzg4MGM3MTk0NDQ2NzJlYzk5NzQ2YmE3OGNjNGJkZTQ3NTMxOWQwMWJkZTc3YzQ5ZDU4ZDE2ZDNiMmU5MWMyZTYxZTgzMDNjYTNkN2VkYTM3OTdmZDhiMzVjYTcyYmIxNGIxNWEyNGI1NmJiNzBkYzEzNDg0NTY1ODA4MTEwZmY1ZGI1OGM1NmY3YTA0MzU2MDdlM2MzNTJmYmY0ZjU1MTA2ZjI5ODBmZDNjZDQyMzk3ZGJmNzEzN2VlN2YxZTMyY2Q4MGEzYjdhYjEyYjQ2YzE2OTIyMDI3OGQ3NzE3Yjc4YTNjNDVkNjM5NWExMzBhOGI1ODg0MWNiYzI5MGU0ZjgxN2RlM2E0ZmUxNmVjZDA3N2NhMzNhMGFhMjVlMjM1Y2M3ZjY2NTVhODBiYThhZWVjODc5MDViYjJhNzU0NTliN2JjYzVhMTMzZjI5OTM0OTNiNDFmZmNmNjNjZDdhMzkxZTNlNmY3ODA5NGNhNDQyYzgwMTQ0NDAzY2IwYTVmMDBiZmM2MWFlODgwIgogCiBQS0NTNyBQYXJzZSBGYWlsdXJlIEludmFsaWQgQVNOMTogQ2hhbmdlIGxlbmd0aCBmcm9tIDE0IHRvIDEzICM1ODcuMAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHBrY3M3X2FzbjFfZmFpbDoiMzA4MjA0OWQwNjA5MmE4NjQ4ODZmNzBkMDEwNzAyYTA4MjA0OGUzMDgyMDQ4YTAyMDEwMTMxMGYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBiMDYwOTJhODY0ODg2ZjcwZDAxMDcwMTMxODIwNDY1MzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZDMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDViZWNkODcxOTVjMWRlZmY5MGMyNGM5MTI2OWI1NWIzZjA2OWJjMjI1YzMyNmMzMTRjMWE1MTc4NmZmZTE0YzgzMGJlNGU0YmM3M2NiYTM2Yzk3Njc3YjQ0MTY4Mjc5YmU5MWU3Y2RmN2MxOTM4NmFlMjE4NjI3MTlkMTNhM2EwZmZmMDgwM2Q0NjA5NjJmMmNkYTgzNzE0ODQ4NzMyNTJjM2Q3MDU0ZGI4MTQzZTJiMDgxYTM4MTZlZDA4MDRjYTUwOTlhZTVmZWNlODNkNWMyYzM3ODNiMTk4OGI0YjQ2ZGM5NGU1NTU4N2ExMDdlYTE1NDZiZjIyZDI4YTA5N2Y2NTJhNDA2NmRjMjk2NTI2OTA2OWFmMmY1MTc2YmI4Y2U5Y2E2ZDExZjk2NzU3ZjAzMjA0Zjc1NjcwMzU4N2QwMGFkNDI0Nzk2YzkyZmM3YWViNmY0OTQ0MzE5OTllZGEzMDk5MGU0ZjU3NzM2MzJlZDI1OGZlMDI3NjY3MzU5OWRhNmZjZTM1Y2RhZDc3MjZhMGJiMDI0Y2FkOTk2Yjg4ZTBjYjk4ODU0Y2ViNWMwYjZlYzc0OGQ5ZjljZTZhNmNkNDM3ODU4YmFjYjgxNDYxOGEyNzJmZjNhNDE1YzZlMDdmM2RiMDk4ODc3N2ZkZWM4NDVhOTdiZjdkMTAyZGQwMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMyMDIxNDU2NGQ1NTQwMjVhZjU5OWUzMjcwNzliMjcyMGVmMDBkZjM3Y2ZiN2MzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDA0NjA5OGRjNWYyYjk5ZTNiYzJlZDY2NDJkN2YwYTYxZWZhYmMxNWMzOGM3NjMzM2JjY2NlZWVlMzY5YTRmNGE1YmRkYThlYTU5MjY0MTI0ZTQyOWYwODYzMjY4M2RkYmExN2JiZjI2MmQ4MmI2YmVmYTNiNGUxNDgwMzc2YThjN2YzYzdkN2UyYTY3NzliYmYxODI2MmFhODU3ZGU4YzIwYTEyYjZhMmNlOGU0ZDdmMzFkZDFiMTk1MzkyY2Y2MTg1YWZjZTM0YWZlMDU4OTYwNTdiMzZlOWIxNzFiNmM2N2VkN2MyMjg2Y2JmYTgzZmY4YTE2N2M3YmM3MTA5YWVlN2Q3ZTE5MDliZDM4NGZiZmM2MTkzOGVmY2E1MWM4OTkzYzcxZGIzMTc3MzBmMTZlN2U3NzY4NjdhZTRmZGM1NjJkNmYxNWRlNTg1ZTdiOTRlZjQ5NmEzNjc2MzY3YTJjYmFhYjdiNjM2NjQ4YjAwNzZiYWQ1Y2RmMWUwOTc0MGVjNmE0NTFiZmY1MzRlZmEyMTUwOWYzYmE3N2I4MTAxYjkxZWE3ZTU1ZGRiZmUxNDAxNTE3MDY3ZDdiMDFhMmEwODc5ZjA4ODVjODk0YTg3Y2ZiNjhjNGQ3ZWU4OTA2MDQ4ODFhZWI5N2MyMmQxZjMzN2VmOTIzZTAzNWE2NDAwMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMzMDIxNDYyNDc3Mjk4NzU5ZThlMDQ3MThhZTU2MzE1NWYzNTIzY2ZiODRjZGIzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDZkMmNiYjM3ZmQxMjk1N2U1YTc0ODBjZTA0MzVlOGVmNjA3N2RlZjA4ZmYyNzA4NDRkZTI1MTZhNDc0MmYyMTFkOGM3NDY5MGJjMDk0OGUwOGEyOTZhYmJhOTI4NWY2YmIzMDViOTViN2Y5NDA4Y2U0NGU4Mzg4MGM3MTk0NDQ2NzJlYzk5NzQ2YmE3OGNjNGJkZTQ3NTMxOWQwMWJkZTc3YzQ5ZDU4ZDE2ZDNiMmU5MWMyZTYxZTgzMDNjYTNkN2VkYTM3OTdmZDhiMzVjYTcyYmIxNGIxNWEyNGI1NmJiNzBkYzEzNDg0NTY1ODA4MTEwZmY1ZGI1OGM1NmY3YTA0MzU2MDdlM2MzNTJmYmY0ZjU1MTA2ZjI5ODBmZDNjZDQyMzk3ZGJmNzEzN2VlN2YxZTMyY2Q4MGEzYjdhYjEyYjQ2YzE2OTIyMDI3OGQ3NzE3Yjc4YTNjNDVkNjM5NWExMzBhOGI1ODg0MWNiYzI5MGU0ZjgxN2RlM2E0ZmUxNmVjZDA3N2NhMzNhMGFhMjVlMjM1Y2M3ZjY2NTVhODBiYThhZWVjODc5MDViYjJhNzU0NTliN2JjYzVhMTMzZjI5OTM0OTNiNDFmZmNmNjNjZDdhMzkxZTNlNmY3ODA5NGNhNDQyYzgwMTQ0NDAzY2IwYTVmMDBiZmM2MWFlODgwIgogCiBQS0NTNyBQYXJzZSBGYWlsdXJlIEludmFsaWQgQVNOMTogQ2hhbmdlIHRhZyAzMCB0byAwMiAjNTg4LjAKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBwa2NzN19hc24xX2ZhaWw6IjMwODIwNDlkMDYwOTJhODY0ODg2ZjcwZDAxMDcwMmEwODIwNDhlMzA4MjA0OGEwMjAxMDEzMTBmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwYjA2MDkyYTg2NDg4NmY3MGQwMTA3MDEzMTgyMDQ2NTMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUwMjBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTAyMTQ3YmRlZGRkMjQ0NGNkMWNkZmU1YzQxYTgxMDJjODliN2RmMmU2Y2JmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDA1YmVjZDg3MTk1YzFkZWZmOTBjMjRjOTEyNjliNTViM2YwNjliYzIyNWMzMjZjMzE0YzFhNTE3ODZmZmUxNGM4MzBiZTRlNGJjNzNjYmEzNmM5NzY3N2I0NDE2ODI3OWJlOTFlN2NkZjdjMTkzODZhZTIxODYyNzE5ZDEzYTNhMGZmZjA4MDNkNDYwOTYyZjJjZGE4MzcxNDg0ODczMjUyYzNkNzA1NGRiODE0M2UyYjA4MWEzODE2ZWQwODA0Y2E1MDk5YWU1ZmVjZTgzZDVjMmMzNzgzYjE5ODhiNGI0NmRjOTRlNTU1ODdhMTA3ZWExNTQ2YmYyMmQyOGEwOTdmNjUyYTQwNjZkYzI5NjUyNjkwNjlhZjJmNTE3NmJiOGNlOWNhNmQxMWY5Njc1N2YwMzIwNGY3NTY3MDM1ODdkMDBhZDQyNDc5NmM5MmZjN2FlYjZmNDk0NDMxOTk5ZWRhMzA5OTBlNGY1NzczNjMyZWQyNThmZTAyNzY2NzM1OTlkYTZmY2UzNWNkYWQ3NzI2YTBiYjAyNGNhZDk5NmI4OGUwY2I5ODg1NGNlYjVjMGI2ZWM3NDhkOWY5Y2U2YTZjZDQzNzg1OGJhY2I4MTQ2MThhMjcyZmYzYTQxNWM2ZTA3ZjNkYjA5ODg3NzdmZGVjODQ1YTk3YmY3ZDEwMmRkMDMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMjAyMTQ1NjRkNTU0MDI1YWY1OTllMzI3MDc5YjI3MjBlZjAwZGYzN2NmYjdjMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDAwNDYwOThkYzVmMmI5OWUzYmMyZWQ2NjQyZDdmMGE2MWVmYWJjMTVjMzhjNzYzMzNiY2NjZWVlZTM2OWE0ZjRhNWJkZGE4ZWE1OTI2NDEyNGU0MjlmMDg2MzI2ODNkZGJhMTdiYmYyNjJkODJiNmJlZmEzYjRlMTQ4MDM3NmE4YzdmM2M3ZDdlMmE2Nzc5YmJmMTgyNjJhYTg1N2RlOGMyMGExMmI2YTJjZThlNGQ3ZjMxZGQxYjE5NTM5MmNmNjE4NWFmY2UzNGFmZTA1ODk2MDU3YjM2ZTliMTcxYjZjNjdlZDdjMjI4NmNiZmE4M2ZmOGExNjdjN2JjNzEwOWFlZTdkN2UxOTA5YmQzODRmYmZjNjE5MzhlZmNhNTFjODk5M2M3MWRiMzE3NzMwZjE2ZTdlNzc2ODY3YWU0ZmRjNTYyZDZmMTVkZTU4NWU3Yjk0ZWY0OTZhMzY3NjM2N2EyY2JhYWI3YjYzNjY0OGIwMDc2YmFkNWNkZjFlMDk3NDBlYzZhNDUxYmZmNTM0ZWZhMjE1MDlmM2JhNzdiODEwMWI5MWVhN2U1NWRkYmZlMTQwMTUxNzA2N2Q3YjAxYTJhMDg3OWYwODg1Yzg5NGE4N2NmYjY4YzRkN2VlODkwNjA0ODgxYWViOTdjMjJkMWYzMzdlZjkyM2UwMzVhNjQwMDMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMzAyMTQ2MjQ3NzI5ODc1OWU4ZTA0NzE4YWU1NjMxNTVmMzUyM2NmYjg0Y2RiMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDA2ZDJjYmIzN2ZkMTI5NTdlNWE3NDgwY2UwNDM1ZThlZjYwNzdkZWYwOGZmMjcwODQ0ZGUyNTE2YTQ3NDJmMjExZDhjNzQ2OTBiYzA5NDhlMDhhMjk2YWJiYTkyODVmNmJiMzA1Yjk1YjdmOTQwOGNlNDRlODM4ODBjNzE5NDQ0NjcyZWM5OTc0NmJhNzhjYzRiZGU0NzUzMTlkMDFiZGU3N2M0OWQ1OGQxNmQzYjJlOTFjMmU2MWU4MzAzY2EzZDdlZGEzNzk3ZmQ4YjM1Y2E3MmJiMTRiMTVhMjRiNTZiYjcwZGMxMzQ4NDU2NTgwODExMGZmNWRiNThjNTZmN2EwNDM1NjA3ZTNjMzUyZmJmNGY1NTEwNmYyOTgwZmQzY2Q0MjM5N2RiZjcxMzdlZTdmMWUzMmNkODBhM2I3YWIxMmI0NmMxNjkyMjAyNzhkNzcxN2I3OGEzYzQ1ZDYzOTVhMTMwYThiNTg4NDFjYmMyOTBlNGY4MTdkZTNhNGZlMTZlY2QwNzdjYTMzYTBhYTI1ZTIzNWNjN2Y2NjU1YTgwYmE4YWVlYzg3OTA1YmIyYTc1NDU5YjdiY2M1YTEzM2YyOTkzNDkzYjQxZmZjZjYzY2Q3YTM5MWUzZTZmNzgwOTRjYTQ0MmM4MDE0NDQwM2NiMGE1ZjAwYmZjNjFhZTg4MCIKIAogUEtDUzcgUGFyc2UgRmFpbHVyZSBJbnZhbGlkIEFTTjE6IENoYW5nZSBsZW5ndGggZnJvbSAxMiB0byAxMyAjNTg5LjAKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBwa2NzN19hc24xX2ZhaWw6IjMwODIwNDlkMDYwOTJhODY0ODg2ZjcwZDAxMDcwMmEwODIwNDhlMzA4MjA0OGEwMjAxMDEzMTBmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwYjA2MDkyYTg2NDg4NmY3MGQwMTA3MDEzMTgyMDQ2NTMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBkMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTAyMTQ3YmRlZGRkMjQ0NGNkMWNkZmU1YzQxYTgxMDJjODliN2RmMmU2Y2JmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDA1YmVjZDg3MTk1YzFkZWZmOTBjMjRjOTEyNjliNTViM2YwNjliYzIyNWMzMjZjMzE0YzFhNTE3ODZmZmUxNGM4MzBiZTRlNGJjNzNjYmEzNmM5NzY3N2I0NDE2ODI3OWJlOTFlN2NkZjdjMTkzODZhZTIxODYyNzE5ZDEzYTNhMGZmZjA4MDNkNDYwOTYyZjJjZGE4MzcxNDg0ODczMjUyYzNkNzA1NGRiODE0M2UyYjA4MWEzODE2ZWQwODA0Y2E1MDk5YWU1ZmVjZTgzZDVjMmMzNzgzYjE5ODhiNGI0NmRjOTRlNTU1ODdhMTA3ZWExNTQ2YmYyMmQyOGEwOTdmNjUyYTQwNjZkYzI5NjUyNjkwNjlhZjJmNTE3NmJiOGNlOWNhNmQxMWY5Njc1N2YwMzIwNGY3NTY3MDM1ODdkMDBhZDQyNDc5NmM5MmZjN2FlYjZmNDk0NDMxOTk5ZWRhMzA5OTBlNGY1NzczNjMyZWQyNThmZTAyNzY2NzM1OTlkYTZmY2UzNWNkYWQ3NzI2YTBiYjAyNGNhZDk5NmI4OGUwY2I5ODg1NGNlYjVjMGI2ZWM3NDhkOWY5Y2U2YTZjZDQzNzg1OGJhY2I4MTQ2MThhMjcyZmYzYTQxNWM2ZTA3ZjNkYjA5ODg3NzdmZGVjODQ1YTk3YmY3ZDEwMmRkMDMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMjAyMTQ1NjRkNTU0MDI1YWY1OTllMzI3MDc5YjI3MjBlZjAwZGYzN2NmYjdjMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDAwNDYwOThkYzVmMmI5OWUzYmMyZWQ2NjQyZDdmMGE2MWVmYWJjMTVjMzhjNzYzMzNiY2NjZWVlZTM2OWE0ZjRhNWJkZGE4ZWE1OTI2NDEyNGU0MjlmMDg2MzI2ODNkZGJhMTdiYmYyNjJkODJiNmJlZmEzYjRlMTQ4MDM3NmE4YzdmM2M3ZDdlMmE2Nzc5YmJmMTgyNjJhYTg1N2RlOGMyMGExMmI2YTJjZThlNGQ3ZjMxZGQxYjE5NTM5MmNmNjE4NWFmY2UzNGFmZTA1ODk2MDU3YjM2ZTliMTcxYjZjNjdlZDdjMjI4NmNiZmE4M2ZmOGExNjdjN2JjNzEwOWFlZTdkN2UxOTA5YmQzODRmYmZjNjE5MzhlZmNhNTFjODk5M2M3MWRiMzE3NzMwZjE2ZTdlNzc2ODY3YWU0ZmRjNTYyZDZmMTVkZTU4NWU3Yjk0ZWY0OTZhMzY3NjM2N2EyY2JhYWI3YjYzNjY0OGIwMDc2YmFkNWNkZjFlMDk3NDBlYzZhNDUxYmZmNTM0ZWZhMjE1MDlmM2JhNzdiODEwMWI5MWVhN2U1NWRkYmZlMTQwMTUxNzA2N2Q3YjAxYTJhMDg3OWYwODg1Yzg5NGE4N2NmYjY4YzRkN2VlODkwNjA0ODgxYWViOTdjMjJkMWYzMzdlZjkyM2UwMzVhNjQwMDMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMzAyMTQ2MjQ3NzI5ODc1OWU4ZTA0NzE4YWU1NjMxNTVmMzUyM2NmYjg0Y2RiMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDA2ZDJjYmIzN2ZkMTI5NTdlNWE3NDgwY2UwNDM1ZThlZjYwNzdkZWYwOGZmMjcwODQ0ZGUyNTE2YTQ3NDJmMjExZDhjNzQ2OTBiYzA5NDhlMDhhMjk2YWJiYTkyODVmNmJiMzA1Yjk1YjdmOTQwOGNlNDRlODM4ODBjNzE5NDQ0NjcyZWM5OTc0NmJhNzhjYzRiZGU0NzUzMTlkMDFiZGU3N2M0OWQ1OGQxNmQzYjJlOTFjMmU2MWU4MzAzY2EzZDdlZGEzNzk3ZmQ4YjM1Y2E3MmJiMTRiMTVhMjRiNTZiYjcwZGMxMzQ4NDU2NTgwODExMGZmNWRiNThjNTZmN2EwNDM1NjA3ZTNjMzUyZmJmNGY1NTEwNmYyOTgwZmQzY2Q0MjM5N2RiZjcxMzdlZTdmMWUzMmNkODBhM2I3YWIxMmI0NmMxNjkyMjAyNzhkNzcxN2I3OGEzYzQ1ZDYzOTVhMTMwYThiNTg4NDFjYmMyOTBlNGY4MTdkZTNhNGZlMTZlY2QwNzdjYTMzYTBhYTI1ZTIzNWNjN2Y2NjU1YTgwYmE4YWVlYzg3OTA1YmIyYTc1NDU5YjdiY2M1YTEzM2YyOTkzNDkzYjQxZmZjZjYzY2Q3YTM5MWUzZTZmNzgwOTRjYTQ0MmM4MDE0NDQwM2NiMGE1ZjAwYmZjNjFhZTg4MCIKIAogUEtDUzcgUGFyc2UgRmFpbHVyZSBJbnZhbGlkIEFTTjE6IENoYW5nZSBjb250ZW50cyBvZiB0YWcgMzAgdG8gY29udGFpbiBvbmUgdW5hY2NvdW50ZWQgZXh0cmEgYnl0ZSAjNTkwLjAKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBwa2NzN19hc24xX2ZhaWw6IjMwODIwNDlkMDYwOTJhODY0ODg2ZjcwZDAxMDcwMmEwODIwNDhlMzA4MjA0OGEwMjAxMDEzMTBmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwYjA2MDkyYTg2NDg4NmY3MGQwMTA3MDEzMTgyMDQ2NTMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBkMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MDAzMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDViZWNkODcxOTVjMWRlZmY5MGMyNGM5MTI2OWI1NWIzZjA2OWJjMjI1YzMyNmMzMTRjMWE1MTc4NmZmZTE0YzgzMGJlNGU0YmM3M2NiYTM2Yzk3Njc3YjQ0MTY4Mjc5YmU5MWU3Y2RmN2MxOTM4NmFlMjE4NjI3MTlkMTNhM2EwZmZmMDgwM2Q0NjA5NjJmMmNkYTgzNzE0ODQ4NzMyNTJjM2Q3MDU0ZGI4MTQzZTJiMDgxYTM4MTZlZDA4MDRjYTUwOTlhZTVmZWNlODNkNWMyYzM3ODNiMTk4OGI0YjQ2ZGM5NGU1NTU4N2ExMDdlYTE1NDZiZjIyZDI4YTA5N2Y2NTJhNDA2NmRjMjk2NTI2OTA2OWFmMmY1MTc2YmI4Y2U5Y2E2ZDExZjk2NzU3ZjAzMjA0Zjc1NjcwMzU4N2QwMGFkNDI0Nzk2YzkyZmM3YWViNmY0OTQ0MzE5OTllZGEzMDk5MGU0ZjU3NzM2MzJlZDI1OGZlMDI3NjY3MzU5OWRhNmZjZTM1Y2RhZDc3MjZhMGJiMDI0Y2FkOTk2Yjg4ZTBjYjk4ODU0Y2ViNWMwYjZlYzc0OGQ5ZjljZTZhNmNkNDM3ODU4YmFjYjgxNDYxOGEyNzJmZjNhNDE1YzZlMDdmM2RiMDk4ODc3N2ZkZWM4NDVhOTdiZjdkMTAyZGQwMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMyMDIxNDU2NGQ1NTQwMjVhZjU5OWUzMjcwNzliMjcyMGVmMDBkZjM3Y2ZiN2MzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDA0NjA5OGRjNWYyYjk5ZTNiYzJlZDY2NDJkN2YwYTYxZWZhYmMxNWMzOGM3NjMzM2JjY2NlZWVlMzY5YTRmNGE1YmRkYThlYTU5MjY0MTI0ZTQyOWYwODYzMjY4M2RkYmExN2JiZjI2MmQ4MmI2YmVmYTNiNGUxNDgwMzc2YThjN2YzYzdkN2UyYTY3NzliYmYxODI2MmFhODU3ZGU4YzIwYTEyYjZhMmNlOGU0ZDdmMzFkZDFiMTk1MzkyY2Y2MTg1YWZjZTM0YWZlMDU4OTYwNTdiMzZlOWIxNzFiNmM2N2VkN2MyMjg2Y2JmYTgzZmY4YTE2N2M3YmM3MTA5YWVlN2Q3ZTE5MDliZDM4NGZiZmM2MTkzOGVmY2E1MWM4OTkzYzcxZGIzMTc3MzBmMTZlN2U3NzY4NjdhZTRmZGM1NjJkNmYxNWRlNTg1ZTdiOTRlZjQ5NmEzNjc2MzY3YTJjYmFhYjdiNjM2NjQ4YjAwNzZiYWQ1Y2RmMWUwOTc0MGVjNmE0NTFiZmY1MzRlZmEyMTUwOWYzYmE3N2I4MTAxYjkxZWE3ZTU1ZGRiZmUxNDAxNTE3MDY3ZDdiMDFhMmEwODc5ZjA4ODVjODk0YTg3Y2ZiNjhjNGQ3ZWU4OTA2MDQ4ODFhZWI5N2MyMmQxZjMzN2VmOTIzZTAzNWE2NDAwMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMzMDIxNDYyNDc3Mjk4NzU5ZThlMDQ3MThhZTU2MzE1NWYzNTIzY2ZiODRjZGIzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDZkMmNiYjM3ZmQxMjk1N2U1YTc0ODBjZTA0MzVlOGVmNjA3N2RlZjA4ZmYyNzA4NDRkZTI1MTZhNDc0MmYyMTFkOGM3NDY5MGJjMDk0OGUwOGEyOTZhYmJhOTI4NWY2YmIzMDViOTViN2Y5NDA4Y2U0NGU4Mzg4MGM3MTk0NDQ2NzJlYzk5NzQ2YmE3OGNjNGJkZTQ3NTMxOWQwMWJkZTc3YzQ5ZDU4ZDE2ZDNiMmU5MWMyZTYxZTgzMDNjYTNkN2VkYTM3OTdmZDhiMzVjYTcyYmIxNGIxNWEyNGI1NmJiNzBkYzEzNDg0NTY1ODA4MTEwZmY1ZGI1OGM1NmY3YTA0MzU2MDdlM2MzNTJmYmY0ZjU1MTA2ZjI5ODBmZDNjZDQyMzk3ZGJmNzEzN2VlN2YxZTMyY2Q4MGEzYjdhYjEyYjQ2YzE2OTIyMDI3OGQ3NzE3Yjc4YTNjNDVkNjM5NWExMzBhOGI1ODg0MWNiYzI5MGU0ZjgxN2RlM2E0ZmUxNmVjZDA3N2NhMzNhMGFhMjVlMjM1Y2M3ZjY2NTVhODBiYThhZWVjODc5MDViYjJhNzU0NTliN2JjYzVhMTMzZjI5OTM0OTNiNDFmZmNmNjNjZDdhMzkxZTNlNmY3ODA5NGNhNDQyYzgwMTQ0NDAzY2IwYTVmMDBiZmM2MWFlODgwIgogCiBQS0NTNyBQYXJzZSBGYWlsdXJlIEludmFsaWQgQVNOMTogQ2hhbmdlIGxlbmd0aCBmcm9tIDEyIHRvIDExICM1OTEuMAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHBrY3M3X2FzbjFfZmFpbDoiMzA4MjA0OWQwNjA5MmE4NjQ4ODZmNzBkMDEwNzAyYTA4MjA0OGUzMDgyMDQ4YTAyMDEwMTMxMGYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBiMDYwOTJhODY0ODg2ZjcwZDAxMDcwMTMxODIwNDY1MzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGIwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDViZWNkODcxOTVjMWRlZmY5MGMyNGM5MTI2OWI1NWIzZjA2OWJjMjI1YzMyNmMzMTRjMWE1MTc4NmZmZTE0YzgzMGJlNGU0YmM3M2NiYTM2Yzk3Njc3YjQ0MTY4Mjc5YmU5MWU3Y2RmN2MxOTM4NmFlMjE4NjI3MTlkMTNhM2EwZmZmMDgwM2Q0NjA5NjJmMmNkYTgzNzE0ODQ4NzMyNTJjM2Q3MDU0ZGI4MTQzZTJiMDgxYTM4MTZlZDA4MDRjYTUwOTlhZTVmZWNlODNkNWMyYzM3ODNiMTk4OGI0YjQ2ZGM5NGU1NTU4N2ExMDdlYTE1NDZiZjIyZDI4YTA5N2Y2NTJhNDA2NmRjMjk2NTI2OTA2OWFmMmY1MTc2YmI4Y2U5Y2E2ZDExZjk2NzU3ZjAzMjA0Zjc1NjcwMzU4N2QwMGFkNDI0Nzk2YzkyZmM3YWViNmY0OTQ0MzE5OTllZGEzMDk5MGU0ZjU3NzM2MzJlZDI1OGZlMDI3NjY3MzU5OWRhNmZjZTM1Y2RhZDc3MjZhMGJiMDI0Y2FkOTk2Yjg4ZTBjYjk4ODU0Y2ViNWMwYjZlYzc0OGQ5ZjljZTZhNmNkNDM3ODU4YmFjYjgxNDYxOGEyNzJmZjNhNDE1YzZlMDdmM2RiMDk4ODc3N2ZkZWM4NDVhOTdiZjdkMTAyZGQwMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMyMDIxNDU2NGQ1NTQwMjVhZjU5OWUzMjcwNzliMjcyMGVmMDBkZjM3Y2ZiN2MzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDA0NjA5OGRjNWYyYjk5ZTNiYzJlZDY2NDJkN2YwYTYxZWZhYmMxNWMzOGM3NjMzM2JjY2NlZWVlMzY5YTRmNGE1YmRkYThlYTU5MjY0MTI0ZTQyOWYwODYzMjY4M2RkYmExN2JiZjI2MmQ4MmI2YmVmYTNiNGUxNDgwMzc2YThjN2YzYzdkN2UyYTY3NzliYmYxODI2MmFhODU3ZGU4YzIwYTEyYjZhMmNlOGU0ZDdmMzFkZDFiMTk1MzkyY2Y2MTg1YWZjZTM0YWZlMDU4OTYwNTdiMzZlOWIxNzFiNmM2N2VkN2MyMjg2Y2JmYTgzZmY4YTE2N2M3YmM3MTA5YWVlN2Q3ZTE5MDliZDM4NGZiZmM2MTkzOGVmY2E1MWM4OTkzYzcxZGIzMTc3MzBmMTZlN2U3NzY4NjdhZTRmZGM1NjJkNmYxNWRlNTg1ZTdiOTRlZjQ5NmEzNjc2MzY3YTJjYmFhYjdiNjM2NjQ4YjAwNzZiYWQ1Y2RmMWUwOTc0MGVjNmE0NTFiZmY1MzRlZmEyMTUwOWYzYmE3N2I4MTAxYjkxZWE3ZTU1ZGRiZmUxNDAxNTE3MDY3ZDdiMDFhMmEwODc5ZjA4ODVjODk0YTg3Y2ZiNjhjNGQ3ZWU4OTA2MDQ4ODFhZWI5N2MyMmQxZjMzN2VmOTIzZTAzNWE2NDAwMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMzMDIxNDYyNDc3Mjk4NzU5ZThlMDQ3MThhZTU2MzE1NWYzNTIzY2ZiODRjZGIzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDZkMmNiYjM3ZmQxMjk1N2U1YTc0ODBjZTA0MzVlOGVmNjA3N2RlZjA4ZmYyNzA4NDRkZTI1MTZhNDc0MmYyMTFkOGM3NDY5MGJjMDk0OGUwOGEyOTZhYmJhOTI4NWY2YmIzMDViOTViN2Y5NDA4Y2U0NGU4Mzg4MGM3MTk0NDQ2NzJlYzk5NzQ2YmE3OGNjNGJkZTQ3NTMxOWQwMWJkZTc3YzQ5ZDU4ZDE2ZDNiMmU5MWMyZTYxZTgzMDNjYTNkN2VkYTM3OTdmZDhiMzVjYTcyYmIxNGIxNWEyNGI1NmJiNzBkYzEzNDg0NTY1ODA4MTEwZmY1ZGI1OGM1NmY3YTA0MzU2MDdlM2MzNTJmYmY0ZjU1MTA2ZjI5ODBmZDNjZDQyMzk3ZGJmNzEzN2VlN2YxZTMyY2Q4MGEzYjdhYjEyYjQ2YzE2OTIyMDI3OGQ3NzE3Yjc4YTNjNDVkNjM5NWExMzBhOGI1ODg0MWNiYzI5MGU0ZjgxN2RlM2E0ZmUxNmVjZDA3N2NhMzNhMGFhMjVlMjM1Y2M3ZjY2NTVhODBiYThhZWVjODc5MDViYjJhNzU0NTliN2JjYzVhMTMzZjI5OTM0OTNiNDFmZmNmNjNjZDdhMzkxZTNlNmY3ODA5NGNhNDQyYzgwMTQ0NDAzY2IwYTVmMDBiZmM2MWFlODgwIgogCiBQS0NTNyBQYXJzZSBGYWlsdXJlIEludmFsaWQgQVNOMTogQ2hhbmdlIHRhZyAwNiB0byAwMiAjNTkyLjAKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBwa2NzN19hc24xX2ZhaWw6IjMwODIwNDlkMDYwOTJhODY0ODg2ZjcwZDAxMDcwMmEwODIwNDhlMzA4MjA0OGEwMjAxMDEzMTBmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwYjA2MDkyYTg2NDg4NmY3MGQwMTA3MDEzMTgyMDQ2NTMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDIwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTAyMTQ3YmRlZGRkMjQ0NGNkMWNkZmU1YzQxYTgxMDJjODliN2RmMmU2Y2JmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDA1YmVjZDg3MTk1YzFkZWZmOTBjMjRjOTEyNjliNTViM2YwNjliYzIyNWMzMjZjMzE0YzFhNTE3ODZmZmUxNGM4MzBiZTRlNGJjNzNjYmEzNmM5NzY3N2I0NDE2ODI3OWJlOTFlN2NkZjdjMTkzODZhZTIxODYyNzE5ZDEzYTNhMGZmZjA4MDNkNDYwOTYyZjJjZGE4MzcxNDg0ODczMjUyYzNkNzA1NGRiODE0M2UyYjA4MWEzODE2ZWQwODA0Y2E1MDk5YWU1ZmVjZTgzZDVjMmMzNzgzYjE5ODhiNGI0NmRjOTRlNTU1ODdhMTA3ZWExNTQ2YmYyMmQyOGEwOTdmNjUyYTQwNjZkYzI5NjUyNjkwNjlhZjJmNTE3NmJiOGNlOWNhNmQxMWY5Njc1N2YwMzIwNGY3NTY3MDM1ODdkMDBhZDQyNDc5NmM5MmZjN2FlYjZmNDk0NDMxOTk5ZWRhMzA5OTBlNGY1NzczNjMyZWQyNThmZTAyNzY2NzM1OTlkYTZmY2UzNWNkYWQ3NzI2YTBiYjAyNGNhZDk5NmI4OGUwY2I5ODg1NGNlYjVjMGI2ZWM3NDhkOWY5Y2U2YTZjZDQzNzg1OGJhY2I4MTQ2MThhMjcyZmYzYTQxNWM2ZTA3ZjNkYjA5ODg3NzdmZGVjODQ1YTk3YmY3ZDEwMmRkMDMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMjAyMTQ1NjRkNTU0MDI1YWY1OTllMzI3MDc5YjI3MjBlZjAwZGYzN2NmYjdjMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDAwNDYwOThkYzVmMmI5OWUzYmMyZWQ2NjQyZDdmMGE2MWVmYWJjMTVjMzhjNzYzMzNiY2NjZWVlZTM2OWE0ZjRhNWJkZGE4ZWE1OTI2NDEyNGU0MjlmMDg2MzI2ODNkZGJhMTdiYmYyNjJkODJiNmJlZmEzYjRlMTQ4MDM3NmE4YzdmM2M3ZDdlMmE2Nzc5YmJmMTgyNjJhYTg1N2RlOGMyMGExMmI2YTJjZThlNGQ3ZjMxZGQxYjE5NTM5MmNmNjE4NWFmY2UzNGFmZTA1ODk2MDU3YjM2ZTliMTcxYjZjNjdlZDdjMjI4NmNiZmE4M2ZmOGExNjdjN2JjNzEwOWFlZTdkN2UxOTA5YmQzODRmYmZjNjE5MzhlZmNhNTFjODk5M2M3MWRiMzE3NzMwZjE2ZTdlNzc2ODY3YWU0ZmRjNTYyZDZmMTVkZTU4NWU3Yjk0ZWY0OTZhMzY3NjM2N2EyY2JhYWI3YjYzNjY0OGIwMDc2YmFkNWNkZjFlMDk3NDBlYzZhNDUxYmZmNTM0ZWZhMjE1MDlmM2JhNzdiODEwMWI5MWVhN2U1NWRkYmZlMTQwMTUxNzA2N2Q3YjAxYTJhMDg3OWYwODg1Yzg5NGE4N2NmYjY4YzRkN2VlODkwNjA0ODgxYWViOTdjMjJkMWYzMzdlZjkyM2UwMzVhNjQwMDMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMzAyMTQ2MjQ3NzI5ODc1OWU4ZTA0NzE4YWU1NjMxNTVmMzUyM2NmYjg0Y2RiMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDA2ZDJjYmIzN2ZkMTI5NTdlNWE3NDgwY2UwNDM1ZThlZjYwNzdkZWYwOGZmMjcwODQ0ZGUyNTE2YTQ3NDJmMjExZDhjNzQ2OTBiYzA5NDhlMDhhMjk2YWJiYTkyODVmNmJiMzA1Yjk1YjdmOTQwOGNlNDRlODM4ODBjNzE5NDQ0NjcyZWM5OTc0NmJhNzhjYzRiZGU0NzUzMTlkMDFiZGU3N2M0OWQ1OGQxNmQzYjJlOTFjMmU2MWU4MzAzY2EzZDdlZGEzNzk3ZmQ4YjM1Y2E3MmJiMTRiMTVhMjRiNTZiYjcwZGMxMzQ4NDU2NTgwODExMGZmNWRiNThjNTZmN2EwNDM1NjA3ZTNjMzUyZmJmNGY1NTEwNmYyOTgwZmQzY2Q0MjM5N2RiZjcxMzdlZTdmMWUzMmNkODBhM2I3YWIxMmI0NmMxNjkyMjAyNzhkNzcxN2I3OGEzYzQ1ZDYzOTVhMTMwYThiNTg4NDFjYmMyOTBlNGY4MTdkZTNhNGZlMTZlY2QwNzdjYTMzYTBhYTI1ZTIzNWNjN2Y2NjU1YTgwYmE4YWVlYzg3OTA1YmIyYTc1NDU5YjdiY2M1YTEzM2YyOTkzNDkzYjQxZmZjZjYzY2Q3YTM5MWUzZTZmNzgwOTRjYTQ0MmM4MDE0NDQwM2NiMGE1ZjAwYmZjNjFhZTg4MCIKIAogUEtDUzcgUGFyc2UgRmFpbHVyZSBJbnZhbGlkIEFTTjE6IENoYW5nZSBsZW5ndGggZnJvbSAzIHRvIDQgIzU5My4wCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NgogcGtjczdfYXNuMV9mYWlsOiIzMDgyMDQ5ZDA2MDkyYTg2NDg4NmY3MGQwMTA3MDJhMDgyMDQ4ZTMwODIwNDhhMDIwMTAxMzEwZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGIwNjA5MmE4NjQ4ODZmNzBkMDEwNzAxMzE4MjA0NjUzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDQ1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwNWJlY2Q4NzE5NWMxZGVmZjkwYzI0YzkxMjY5YjU1YjNmMDY5YmMyMjVjMzI2YzMxNGMxYTUxNzg2ZmZlMTRjODMwYmU0ZTRiYzczY2JhMzZjOTc2NzdiNDQxNjgyNzliZTkxZTdjZGY3YzE5Mzg2YWUyMTg2MjcxOWQxM2EzYTBmZmYwODAzZDQ2MDk2MmYyY2RhODM3MTQ4NDg3MzI1MmMzZDcwNTRkYjgxNDNlMmIwODFhMzgxNmVkMDgwNGNhNTA5OWFlNWZlY2U4M2Q1YzJjMzc4M2IxOTg4YjRiNDZkYzk0ZTU1NTg3YTEwN2VhMTU0NmJmMjJkMjhhMDk3ZjY1MmE0MDY2ZGMyOTY1MjY5MDY5YWYyZjUxNzZiYjhjZTljYTZkMTFmOTY3NTdmMDMyMDRmNzU2NzAzNTg3ZDAwYWQ0MjQ3OTZjOTJmYzdhZWI2ZjQ5NDQzMTk5OWVkYTMwOTkwZTRmNTc3MzYzMmVkMjU4ZmUwMjc2NjczNTk5ZGE2ZmNlMzVjZGFkNzcyNmEwYmIwMjRjYWQ5OTZiODhlMGNiOTg4NTRjZWI1YzBiNmVjNzQ4ZDlmOWNlNmE2Y2Q0Mzc4NThiYWNiODE0NjE4YTI3MmZmM2E0MTVjNmUwN2YzZGIwOTg4Nzc3ZmRlYzg0NWE5N2JmN2QxMDJkZDAzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzIwMjE0NTY0ZDU1NDAyNWFmNTk5ZTMyNzA3OWIyNzIwZWYwMGRmMzdjZmI3YzMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwMDQ2MDk4ZGM1ZjJiOTllM2JjMmVkNjY0MmQ3ZjBhNjFlZmFiYzE1YzM4Yzc2MzMzYmNjY2VlZWUzNjlhNGY0YTViZGRhOGVhNTkyNjQxMjRlNDI5ZjA4NjMyNjgzZGRiYTE3YmJmMjYyZDgyYjZiZWZhM2I0ZTE0ODAzNzZhOGM3ZjNjN2Q3ZTJhNjc3OWJiZjE4MjYyYWE4NTdkZThjMjBhMTJiNmEyY2U4ZTRkN2YzMWRkMWIxOTUzOTJjZjYxODVhZmNlMzRhZmUwNTg5NjA1N2IzNmU5YjE3MWI2YzY3ZWQ3YzIyODZjYmZhODNmZjhhMTY3YzdiYzcxMDlhZWU3ZDdlMTkwOWJkMzg0ZmJmYzYxOTM4ZWZjYTUxYzg5OTNjNzFkYjMxNzczMGYxNmU3ZTc3Njg2N2FlNGZkYzU2MmQ2ZjE1ZGU1ODVlN2I5NGVmNDk2YTM2NzYzNjdhMmNiYWFiN2I2MzY2NDhiMDA3NmJhZDVjZGYxZTA5NzQwZWM2YTQ1MWJmZjUzNGVmYTIxNTA5ZjNiYTc3YjgxMDFiOTFlYTdlNTVkZGJmZTE0MDE1MTcwNjdkN2IwMWEyYTA4NzlmMDg4NWM4OTRhODdjZmI2OGM0ZDdlZTg5MDYwNDg4MWFlYjk3YzIyZDFmMzM3ZWY5MjNlMDM1YTY0MDAzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzMwMjE0NjI0NzcyOTg3NTllOGUwNDcxOGFlNTYzMTU1ZjM1MjNjZmI4NGNkYjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwNmQyY2JiMzdmZDEyOTU3ZTVhNzQ4MGNlMDQzNWU4ZWY2MDc3ZGVmMDhmZjI3MDg0NGRlMjUxNmE0NzQyZjIxMWQ4Yzc0NjkwYmMwOTQ4ZTA4YTI5NmFiYmE5Mjg1ZjZiYjMwNWI5NWI3Zjk0MDhjZTQ0ZTgzODgwYzcxOTQ0NDY3MmVjOTk3NDZiYTc4Y2M0YmRlNDc1MzE5ZDAxYmRlNzdjNDlkNThkMTZkM2IyZTkxYzJlNjFlODMwM2NhM2Q3ZWRhMzc5N2ZkOGIzNWNhNzJiYjE0YjE1YTI0YjU2YmI3MGRjMTM0ODQ1NjU4MDgxMTBmZjVkYjU4YzU2ZjdhMDQzNTYwN2UzYzM1MmZiZjRmNTUxMDZmMjk4MGZkM2NkNDIzOTdkYmY3MTM3ZWU3ZjFlMzJjZDgwYTNiN2FiMTJiNDZjMTY5MjIwMjc4ZDc3MTdiNzhhM2M0NWQ2Mzk1YTEzMGE4YjU4ODQxY2JjMjkwZTRmODE3ZGUzYTRmZTE2ZWNkMDc3Y2EzM2EwYWEyNWUyMzVjYzdmNjY1NWE4MGJhOGFlZWM4NzkwNWJiMmE3NTQ1OWI3YmNjNWExMzNmMjk5MzQ5M2I0MWZmY2Y2M2NkN2EzOTFlM2U2Zjc4MDk0Y2E0NDJjODAxNDQ0MDNjYjBhNWYwMGJmYzYxYWU4ODAiCiAKIFBLQ1M3IFBhcnNlIEZhaWx1cmUgSW52YWxpZCBBU04xOiBDaGFuZ2UgbGVuZ3RoIGZyb20gMyB0byAyICM1OTQuMAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHBrY3M3X2FzbjFfZmFpbDoiMzA4MjA0OWQwNjA5MmE4NjQ4ODZmNzBkMDEwNzAyYTA4MjA0OGUzMDgyMDQ4YTAyMDEwMTMxMGYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBiMDYwOTJhODY0ODg2ZjcwZDAxMDcwMTMxODIwNDY1MzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAyNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDViZWNkODcxOTVjMWRlZmY5MGMyNGM5MTI2OWI1NWIzZjA2OWJjMjI1YzMyNmMzMTRjMWE1MTc4NmZmZTE0YzgzMGJlNGU0YmM3M2NiYTM2Yzk3Njc3YjQ0MTY4Mjc5YmU5MWU3Y2RmN2MxOTM4NmFlMjE4NjI3MTlkMTNhM2EwZmZmMDgwM2Q0NjA5NjJmMmNkYTgzNzE0ODQ4NzMyNTJjM2Q3MDU0ZGI4MTQzZTJiMDgxYTM4MTZlZDA4MDRjYTUwOTlhZTVmZWNlODNkNWMyYzM3ODNiMTk4OGI0YjQ2ZGM5NGU1NTU4N2ExMDdlYTE1NDZiZjIyZDI4YTA5N2Y2NTJhNDA2NmRjMjk2NTI2OTA2OWFmMmY1MTc2YmI4Y2U5Y2E2ZDExZjk2NzU3ZjAzMjA0Zjc1NjcwMzU4N2QwMGFkNDI0Nzk2YzkyZmM3YWViNmY0OTQ0MzE5OTllZGEzMDk5MGU0ZjU3NzM2MzJlZDI1OGZlMDI3NjY3MzU5OWRhNmZjZTM1Y2RhZDc3MjZhMGJiMDI0Y2FkOTk2Yjg4ZTBjYjk4ODU0Y2ViNWMwYjZlYzc0OGQ5ZjljZTZhNmNkNDM3ODU4YmFjYjgxNDYxOGEyNzJmZjNhNDE1YzZlMDdmM2RiMDk4ODc3N2ZkZWM4NDVhOTdiZjdkMTAyZGQwMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMyMDIxNDU2NGQ1NTQwMjVhZjU5OWUzMjcwNzliMjcyMGVmMDBkZjM3Y2ZiN2MzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDA0NjA5OGRjNWYyYjk5ZTNiYzJlZDY2NDJkN2YwYTYxZWZhYmMxNWMzOGM3NjMzM2JjY2NlZWVlMzY5YTRmNGE1YmRkYThlYTU5MjY0MTI0ZTQyOWYwODYzMjY4M2RkYmExN2JiZjI2MmQ4MmI2YmVmYTNiNGUxNDgwMzc2YThjN2YzYzdkN2UyYTY3NzliYmYxODI2MmFhODU3ZGU4YzIwYTEyYjZhMmNlOGU0ZDdmMzFkZDFiMTk1MzkyY2Y2MTg1YWZjZTM0YWZlMDU4OTYwNTdiMzZlOWIxNzFiNmM2N2VkN2MyMjg2Y2JmYTgzZmY4YTE2N2M3YmM3MTA5YWVlN2Q3ZTE5MDliZDM4NGZiZmM2MTkzOGVmY2E1MWM4OTkzYzcxZGIzMTc3MzBmMTZlN2U3NzY4NjdhZTRmZGM1NjJkNmYxNWRlNTg1ZTdiOTRlZjQ5NmEzNjc2MzY3YTJjYmFhYjdiNjM2NjQ4YjAwNzZiYWQ1Y2RmMWUwOTc0MGVjNmE0NTFiZmY1MzRlZmEyMTUwOWYzYmE3N2I4MTAxYjkxZWE3ZTU1ZGRiZmUxNDAxNTE3MDY3ZDdiMDFhMmEwODc5ZjA4ODVjODk0YTg3Y2ZiNjhjNGQ3ZWU4OTA2MDQ4ODFhZWI5N2MyMmQxZjMzN2VmOTIzZTAzNWE2NDAwMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMzMDIxNDYyNDc3Mjk4NzU5ZThlMDQ3MThhZTU2MzE1NWYzNTIzY2ZiODRjZGIzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDZkMmNiYjM3ZmQxMjk1N2U1YTc0ODBjZTA0MzVlOGVmNjA3N2RlZjA4ZmYyNzA4NDRkZTI1MTZhNDc0MmYyMTFkOGM3NDY5MGJjMDk0OGUwOGEyOTZhYmJhOTI4NWY2YmIzMDViOTViN2Y5NDA4Y2U0NGU4Mzg4MGM3MTk0NDQ2NzJlYzk5NzQ2YmE3OGNjNGJkZTQ3NTMxOWQwMWJkZTc3YzQ5ZDU4ZDE2ZDNiMmU5MWMyZTYxZTgzMDNjYTNkN2VkYTM3OTdmZDhiMzVjYTcyYmIxNGIxNWEyNGI1NmJiNzBkYzEzNDg0NTY1ODA4MTEwZmY1ZGI1OGM1NmY3YTA0MzU2MDdlM2MzNTJmYmY0ZjU1MTA2ZjI5ODBmZDNjZDQyMzk3ZGJmNzEzN2VlN2YxZTMyY2Q4MGEzYjdhYjEyYjQ2YzE2OTIyMDI3OGQ3NzE3Yjc4YTNjNDVkNjM5NWExMzBhOGI1ODg0MWNiYzI5MGU0ZjgxN2RlM2E0ZmUxNmVjZDA3N2NhMzNhMGFhMjVlMjM1Y2M3ZjY2NTVhODBiYThhZWVjODc5MDViYjJhNzU0NTliN2JjYzVhMTMzZjI5OTM0OTNiNDFmZmNmNjNjZDdhMzkxZTNlNmY3ODA5NGNhNDQyYzgwMTQ0NDAzY2IwYTVmMDBiZmM2MWFlODgwIgogCiBQS0NTNyBQYXJzZSBGYWlsdXJlIEludmFsaWQgQVNOMTogQ2hhbmdlIHRhZyAwYyB0byAwMiAjNTk1LjAKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBwa2NzN19hc24xX2ZhaWw6IjMwODIwNDlkMDYwOTJhODY0ODg2ZjcwZDAxMDcwMmEwODIwNDhlMzA4MjA0OGEwMjAxMDEzMTBmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwYjA2MDkyYTg2NDg4NmY3MGQwMTA3MDEzMTgyMDQ2NTMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTAyMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTAyMTQ3YmRlZGRkMjQ0NGNkMWNkZmU1YzQxYTgxMDJjODliN2RmMmU2Y2JmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDA1YmVjZDg3MTk1YzFkZWZmOTBjMjRjOTEyNjliNTViM2YwNjliYzIyNWMzMjZjMzE0YzFhNTE3ODZmZmUxNGM4MzBiZTRlNGJjNzNjYmEzNmM5NzY3N2I0NDE2ODI3OWJlOTFlN2NkZjdjMTkzODZhZTIxODYyNzE5ZDEzYTNhMGZmZjA4MDNkNDYwOTYyZjJjZGE4MzcxNDg0ODczMjUyYzNkNzA1NGRiODE0M2UyYjA4MWEzODE2ZWQwODA0Y2E1MDk5YWU1ZmVjZTgzZDVjMmMzNzgzYjE5ODhiNGI0NmRjOTRlNTU1ODdhMTA3ZWExNTQ2YmYyMmQyOGEwOTdmNjUyYTQwNjZkYzI5NjUyNjkwNjlhZjJmNTE3NmJiOGNlOWNhNmQxMWY5Njc1N2YwMzIwNGY3NTY3MDM1ODdkMDBhZDQyNDc5NmM5MmZjN2FlYjZmNDk0NDMxOTk5ZWRhMzA5OTBlNGY1NzczNjMyZWQyNThmZTAyNzY2NzM1OTlkYTZmY2UzNWNkYWQ3NzI2YTBiYjAyNGNhZDk5NmI4OGUwY2I5ODg1NGNlYjVjMGI2ZWM3NDhkOWY5Y2U2YTZjZDQzNzg1OGJhY2I4MTQ2MThhMjcyZmYzYTQxNWM2ZTA3ZjNkYjA5ODg3NzdmZGVjODQ1YTk3YmY3ZDEwMmRkMDMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMjAyMTQ1NjRkNTU0MDI1YWY1OTllMzI3MDc5YjI3MjBlZjAwZGYzN2NmYjdjMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDAwNDYwOThkYzVmMmI5OWUzYmMyZWQ2NjQyZDdmMGE2MWVmYWJjMTVjMzhjNzYzMzNiY2NjZWVlZTM2OWE0ZjRhNWJkZGE4ZWE1OTI2NDEyNGU0MjlmMDg2MzI2ODNkZGJhMTdiYmYyNjJkODJiNmJlZmEzYjRlMTQ4MDM3NmE4YzdmM2M3ZDdlMmE2Nzc5YmJmMTgyNjJhYTg1N2RlOGMyMGExMmI2YTJjZThlNGQ3ZjMxZGQxYjE5NTM5MmNmNjE4NWFmY2UzNGFmZTA1ODk2MDU3YjM2ZTliMTcxYjZjNjdlZDdjMjI4NmNiZmE4M2ZmOGExNjdjN2JjNzEwOWFlZTdkN2UxOTA5YmQzODRmYmZjNjE5MzhlZmNhNTFjODk5M2M3MWRiMzE3NzMwZjE2ZTdlNzc2ODY3YWU0ZmRjNTYyZDZmMTVkZTU4NWU3Yjk0ZWY0OTZhMzY3NjM2N2EyY2JhYWI3YjYzNjY0OGIwMDc2YmFkNWNkZjFlMDk3NDBlYzZhNDUxYmZmNTM0ZWZhMjE1MDlmM2JhNzdiODEwMWI5MWVhN2U1NWRkYmZlMTQwMTUxNzA2N2Q3YjAxYTJhMDg3OWYwODg1Yzg5NGE4N2NmYjY4YzRkN2VlODkwNjA0ODgxYWViOTdjMjJkMWYzMzdlZjkyM2UwMzVhNjQwMDMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMzAyMTQ2MjQ3NzI5ODc1OWU4ZTA0NzE4YWU1NjMxNTVmMzUyM2NmYjg0Y2RiMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDA2ZDJjYmIzN2ZkMTI5NTdlNWE3NDgwY2UwNDM1ZThlZjYwNzdkZWYwOGZmMjcwODQ0ZGUyNTE2YTQ3NDJmMjExZDhjNzQ2OTBiYzA5NDhlMDhhMjk2YWJiYTkyODVmNmJiMzA1Yjk1YjdmOTQwOGNlNDRlODM4ODBjNzE5NDQ0NjcyZWM5OTc0NmJhNzhjYzRiZGU0NzUzMTlkMDFiZGU3N2M0OWQ1OGQxNmQzYjJlOTFjMmU2MWU4MzAzY2EzZDdlZGEzNzk3ZmQ4YjM1Y2E3MmJiMTRiMTVhMjRiNTZiYjcwZGMxMzQ4NDU2NTgwODExMGZmNWRiNThjNTZmN2EwNDM1NjA3ZTNjMzUyZmJmNGY1NTEwNmYyOTgwZmQzY2Q0MjM5N2RiZjcxMzdlZTdmMWUzMmNkODBhM2I3YWIxMmI0NmMxNjkyMjAyNzhkNzcxN2I3OGEzYzQ1ZDYzOTVhMTMwYThiNTg4NDFjYmMyOTBlNGY4MTdkZTNhNGZlMTZlY2QwNzdjYTMzYTBhYTI1ZTIzNWNjN2Y2NjU1YTgwYmE4YWVlYzg3OTA1YmIyYTc1NDU5YjdiY2M1YTEzM2YyOTkzNDkzYjQxZmZjZjYzY2Q3YTM5MWUzZTZmNzgwOTRjYTQ0MmM4MDE0NDQwM2NiMGE1ZjAwYmZjNjFhZTg4MCIKIAogUEtDUzcgUGFyc2UgRmFpbHVyZSBJbnZhbGlkIEFTTjE6IENoYW5nZSBsZW5ndGggZnJvbSA1IHRvIDYgIzU5Ni4wCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NgogcGtjczdfYXNuMV9mYWlsOiIzMDgyMDQ5ZDA2MDkyYTg2NDg4NmY3MGQwMTA3MDJhMDgyMDQ4ZTMwODIwNDhhMDIwMTAxMzEwZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGIwNjA5MmE4NjQ4ODZmNzBkMDEwNzAxMzE4MjA0NjUzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA2NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwNWJlY2Q4NzE5NWMxZGVmZjkwYzI0YzkxMjY5YjU1YjNmMDY5YmMyMjVjMzI2YzMxNGMxYTUxNzg2ZmZlMTRjODMwYmU0ZTRiYzczY2JhMzZjOTc2NzdiNDQxNjgyNzliZTkxZTdjZGY3YzE5Mzg2YWUyMTg2MjcxOWQxM2EzYTBmZmYwODAzZDQ2MDk2MmYyY2RhODM3MTQ4NDg3MzI1MmMzZDcwNTRkYjgxNDNlMmIwODFhMzgxNmVkMDgwNGNhNTA5OWFlNWZlY2U4M2Q1YzJjMzc4M2IxOTg4YjRiNDZkYzk0ZTU1NTg3YTEwN2VhMTU0NmJmMjJkMjhhMDk3ZjY1MmE0MDY2ZGMyOTY1MjY5MDY5YWYyZjUxNzZiYjhjZTljYTZkMTFmOTY3NTdmMDMyMDRmNzU2NzAzNTg3ZDAwYWQ0MjQ3OTZjOTJmYzdhZWI2ZjQ5NDQzMTk5OWVkYTMwOTkwZTRmNTc3MzYzMmVkMjU4ZmUwMjc2NjczNTk5ZGE2ZmNlMzVjZGFkNzcyNmEwYmIwMjRjYWQ5OTZiODhlMGNiOTg4NTRjZWI1YzBiNmVjNzQ4ZDlmOWNlNmE2Y2Q0Mzc4NThiYWNiODE0NjE4YTI3MmZmM2E0MTVjNmUwN2YzZGIwOTg4Nzc3ZmRlYzg0NWE5N2JmN2QxMDJkZDAzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzIwMjE0NTY0ZDU1NDAyNWFmNTk5ZTMyNzA3OWIyNzIwZWYwMGRmMzdjZmI3YzMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwMDQ2MDk4ZGM1ZjJiOTllM2JjMmVkNjY0MmQ3ZjBhNjFlZmFiYzE1YzM4Yzc2MzMzYmNjY2VlZWUzNjlhNGY0YTViZGRhOGVhNTkyNjQxMjRlNDI5ZjA4NjMyNjgzZGRiYTE3YmJmMjYyZDgyYjZiZWZhM2I0ZTE0ODAzNzZhOGM3ZjNjN2Q3ZTJhNjc3OWJiZjE4MjYyYWE4NTdkZThjMjBhMTJiNmEyY2U4ZTRkN2YzMWRkMWIxOTUzOTJjZjYxODVhZmNlMzRhZmUwNTg5NjA1N2IzNmU5YjE3MWI2YzY3ZWQ3YzIyODZjYmZhODNmZjhhMTY3YzdiYzcxMDlhZWU3ZDdlMTkwOWJkMzg0ZmJmYzYxOTM4ZWZjYTUxYzg5OTNjNzFkYjMxNzczMGYxNmU3ZTc3Njg2N2FlNGZkYzU2MmQ2ZjE1ZGU1ODVlN2I5NGVmNDk2YTM2NzYzNjdhMmNiYWFiN2I2MzY2NDhiMDA3NmJhZDVjZGYxZTA5NzQwZWM2YTQ1MWJmZjUzNGVmYTIxNTA5ZjNiYTc3YjgxMDFiOTFlYTdlNTVkZGJmZTE0MDE1MTcwNjdkN2IwMWEyYTA4NzlmMDg4NWM4OTRhODdjZmI2OGM0ZDdlZTg5MDYwNDg4MWFlYjk3YzIyZDFmMzM3ZWY5MjNlMDM1YTY0MDAzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzMwMjE0NjI0NzcyOTg3NTllOGUwNDcxOGFlNTYzMTU1ZjM1MjNjZmI4NGNkYjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwNmQyY2JiMzdmZDEyOTU3ZTVhNzQ4MGNlMDQzNWU4ZWY2MDc3ZGVmMDhmZjI3MDg0NGRlMjUxNmE0NzQyZjIxMWQ4Yzc0NjkwYmMwOTQ4ZTA4YTI5NmFiYmE5Mjg1ZjZiYjMwNWI5NWI3Zjk0MDhjZTQ0ZTgzODgwYzcxOTQ0NDY3MmVjOTk3NDZiYTc4Y2M0YmRlNDc1MzE5ZDAxYmRlNzdjNDlkNThkMTZkM2IyZTkxYzJlNjFlODMwM2NhM2Q3ZWRhMzc5N2ZkOGIzNWNhNzJiYjE0YjE1YTI0YjU2YmI3MGRjMTM0ODQ1NjU4MDgxMTBmZjVkYjU4YzU2ZjdhMDQzNTYwN2UzYzM1MmZiZjRmNTUxMDZmMjk4MGZkM2NkNDIzOTdkYmY3MTM3ZWU3ZjFlMzJjZDgwYTNiN2FiMTJiNDZjMTY5MjIwMjc4ZDc3MTdiNzhhM2M0NWQ2Mzk1YTEzMGE4YjU4ODQxY2JjMjkwZTRmODE3ZGUzYTRmZTE2ZWNkMDc3Y2EzM2EwYWEyNWUyMzVjYzdmNjY1NWE4MGJhOGFlZWM4NzkwNWJiMmE3NTQ1OWI3YmNjNWExMzNmMjk5MzQ5M2I0MWZmY2Y2M2NkN2EzOTFlM2U2Zjc4MDk0Y2E0NDJjODAxNDQ0MDNjYjBhNWYwMGJmYzYxYWU4ODAiCiAKIFBLQ1M3IFBhcnNlIEZhaWx1cmUgSW52YWxpZCBBU04xOiBDaGFuZ2UgbGVuZ3RoIGZyb20gNSB0byA0ICM1OTcuMAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHBrY3M3X2FzbjFfZmFpbDoiMzA4MjA0OWQwNjA5MmE4NjQ4ODZmNzBkMDEwNzAyYTA4MjA0OGUzMDgyMDQ4YTAyMDEwMTMxMGYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBiMDYwOTJhODY0ODg2ZjcwZDAxMDcwMTMxODIwNDY1MzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNDUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDViZWNkODcxOTVjMWRlZmY5MGMyNGM5MTI2OWI1NWIzZjA2OWJjMjI1YzMyNmMzMTRjMWE1MTc4NmZmZTE0YzgzMGJlNGU0YmM3M2NiYTM2Yzk3Njc3YjQ0MTY4Mjc5YmU5MWU3Y2RmN2MxOTM4NmFlMjE4NjI3MTlkMTNhM2EwZmZmMDgwM2Q0NjA5NjJmMmNkYTgzNzE0ODQ4NzMyNTJjM2Q3MDU0ZGI4MTQzZTJiMDgxYTM4MTZlZDA4MDRjYTUwOTlhZTVmZWNlODNkNWMyYzM3ODNiMTk4OGI0YjQ2ZGM5NGU1NTU4N2ExMDdlYTE1NDZiZjIyZDI4YTA5N2Y2NTJhNDA2NmRjMjk2NTI2OTA2OWFmMmY1MTc2YmI4Y2U5Y2E2ZDExZjk2NzU3ZjAzMjA0Zjc1NjcwMzU4N2QwMGFkNDI0Nzk2YzkyZmM3YWViNmY0OTQ0MzE5OTllZGEzMDk5MGU0ZjU3NzM2MzJlZDI1OGZlMDI3NjY3MzU5OWRhNmZjZTM1Y2RhZDc3MjZhMGJiMDI0Y2FkOTk2Yjg4ZTBjYjk4ODU0Y2ViNWMwYjZlYzc0OGQ5ZjljZTZhNmNkNDM3ODU4YmFjYjgxNDYxOGEyNzJmZjNhNDE1YzZlMDdmM2RiMDk4ODc3N2ZkZWM4NDVhOTdiZjdkMTAyZGQwMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMyMDIxNDU2NGQ1NTQwMjVhZjU5OWUzMjcwNzliMjcyMGVmMDBkZjM3Y2ZiN2MzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDA0NjA5OGRjNWYyYjk5ZTNiYzJlZDY2NDJkN2YwYTYxZWZhYmMxNWMzOGM3NjMzM2JjY2NlZWVlMzY5YTRmNGE1YmRkYThlYTU5MjY0MTI0ZTQyOWYwODYzMjY4M2RkYmExN2JiZjI2MmQ4MmI2YmVmYTNiNGUxNDgwMzc2YThjN2YzYzdkN2UyYTY3NzliYmYxODI2MmFhODU3ZGU4YzIwYTEyYjZhMmNlOGU0ZDdmMzFkZDFiMTk1MzkyY2Y2MTg1YWZjZTM0YWZlMDU4OTYwNTdiMzZlOWIxNzFiNmM2N2VkN2MyMjg2Y2JmYTgzZmY4YTE2N2M3YmM3MTA5YWVlN2Q3ZTE5MDliZDM4NGZiZmM2MTkzOGVmY2E1MWM4OTkzYzcxZGIzMTc3MzBmMTZlN2U3NzY4NjdhZTRmZGM1NjJkNmYxNWRlNTg1ZTdiOTRlZjQ5NmEzNjc2MzY3YTJjYmFhYjdiNjM2NjQ4YjAwNzZiYWQ1Y2RmMWUwOTc0MGVjNmE0NTFiZmY1MzRlZmEyMTUwOWYzYmE3N2I4MTAxYjkxZWE3ZTU1ZGRiZmUxNDAxNTE3MDY3ZDdiMDFhMmEwODc5ZjA4ODVjODk0YTg3Y2ZiNjhjNGQ3ZWU4OTA2MDQ4ODFhZWI5N2MyMmQxZjMzN2VmOTIzZTAzNWE2NDAwMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMzMDIxNDYyNDc3Mjk4NzU5ZThlMDQ3MThhZTU2MzE1NWYzNTIzY2ZiODRjZGIzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDZkMmNiYjM3ZmQxMjk1N2U1YTc0ODBjZTA0MzVlOGVmNjA3N2RlZjA4ZmYyNzA4NDRkZTI1MTZhNDc0MmYyMTFkOGM3NDY5MGJjMDk0OGUwOGEyOTZhYmJhOTI4NWY2YmIzMDViOTViN2Y5NDA4Y2U0NGU4Mzg4MGM3MTk0NDQ2NzJlYzk5NzQ2YmE3OGNjNGJkZTQ3NTMxOWQwMWJkZTc3YzQ5ZDU4ZDE2ZDNiMmU5MWMyZTYxZTgzMDNjYTNkN2VkYTM3OTdmZDhiMzVjYTcyYmIxNGIxNWEyNGI1NmJiNzBkYzEzNDg0NTY1ODA4MTEwZmY1ZGI1OGM1NmY3YTA0MzU2MDdlM2MzNTJmYmY0ZjU1MTA2ZjI5ODBmZDNjZDQyMzk3ZGJmNzEzN2VlN2YxZTMyY2Q4MGEzYjdhYjEyYjQ2YzE2OTIyMDI3OGQ3NzE3Yjc4YTNjNDVkNjM5NWExMzBhOGI1ODg0MWNiYzI5MGU0ZjgxN2RlM2E0ZmUxNmVjZDA3N2NhMzNhMGFhMjVlMjM1Y2M3ZjY2NTVhODBiYThhZWVjODc5MDViYjJhNzU0NTliN2JjYzVhMTMzZjI5OTM0OTNiNDFmZmNmNjNjZDdhMzkxZTNlNmY3ODA5NGNhNDQyYzgwMTQ0NDAzY2IwYTVmMDBiZmM2MWFlODgwIgogCiBQS0NTNyBQYXJzZSBGYWlsdXJlIEludmFsaWQgQVNOMTogQ2hhbmdlIHRhZyAzMSB0byAwMiAjNTk4LjAKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBwa2NzN19hc24xX2ZhaWw6IjMwODIwNDlkMDYwOTJhODY0ODg2ZjcwZDAxMDcwMmEwODIwNDhlMzA4MjA0OGEwMjAxMDEzMTBmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwYjA2MDkyYTg2NDg4NmY3MGQwMTA3MDEzMTgyMDQ2NTMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MDIxNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTAyMTQ3YmRlZGRkMjQ0NGNkMWNkZmU1YzQxYTgxMDJjODliN2RmMmU2Y2JmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDA1YmVjZDg3MTk1YzFkZWZmOTBjMjRjOTEyNjliNTViM2YwNjliYzIyNWMzMjZjMzE0YzFhNTE3ODZmZmUxNGM4MzBiZTRlNGJjNzNjYmEzNmM5NzY3N2I0NDE2ODI3OWJlOTFlN2NkZjdjMTkzODZhZTIxODYyNzE5ZDEzYTNhMGZmZjA4MDNkNDYwOTYyZjJjZGE4MzcxNDg0ODczMjUyYzNkNzA1NGRiODE0M2UyYjA4MWEzODE2ZWQwODA0Y2E1MDk5YWU1ZmVjZTgzZDVjMmMzNzgzYjE5ODhiNGI0NmRjOTRlNTU1ODdhMTA3ZWExNTQ2YmYyMmQyOGEwOTdmNjUyYTQwNjZkYzI5NjUyNjkwNjlhZjJmNTE3NmJiOGNlOWNhNmQxMWY5Njc1N2YwMzIwNGY3NTY3MDM1ODdkMDBhZDQyNDc5NmM5MmZjN2FlYjZmNDk0NDMxOTk5ZWRhMzA5OTBlNGY1NzczNjMyZWQyNThmZTAyNzY2NzM1OTlkYTZmY2UzNWNkYWQ3NzI2YTBiYjAyNGNhZDk5NmI4OGUwY2I5ODg1NGNlYjVjMGI2ZWM3NDhkOWY5Y2U2YTZjZDQzNzg1OGJhY2I4MTQ2MThhMjcyZmYzYTQxNWM2ZTA3ZjNkYjA5ODg3NzdmZGVjODQ1YTk3YmY3ZDEwMmRkMDMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMjAyMTQ1NjRkNTU0MDI1YWY1OTllMzI3MDc5YjI3MjBlZjAwZGYzN2NmYjdjMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDAwNDYwOThkYzVmMmI5OWUzYmMyZWQ2NjQyZDdmMGE2MWVmYWJjMTVjMzhjNzYzMzNiY2NjZWVlZTM2OWE0ZjRhNWJkZGE4ZWE1OTI2NDEyNGU0MjlmMDg2MzI2ODNkZGJhMTdiYmYyNjJkODJiNmJlZmEzYjRlMTQ4MDM3NmE4YzdmM2M3ZDdlMmE2Nzc5YmJmMTgyNjJhYTg1N2RlOGMyMGExMmI2YTJjZThlNGQ3ZjMxZGQxYjE5NTM5MmNmNjE4NWFmY2UzNGFmZTA1ODk2MDU3YjM2ZTliMTcxYjZjNjdlZDdjMjI4NmNiZmE4M2ZmOGExNjdjN2JjNzEwOWFlZTdkN2UxOTA5YmQzODRmYmZjNjE5MzhlZmNhNTFjODk5M2M3MWRiMzE3NzMwZjE2ZTdlNzc2ODY3YWU0ZmRjNTYyZDZmMTVkZTU4NWU3Yjk0ZWY0OTZhMzY3NjM2N2EyY2JhYWI3YjYzNjY0OGIwMDc2YmFkNWNkZjFlMDk3NDBlYzZhNDUxYmZmNTM0ZWZhMjE1MDlmM2JhNzdiODEwMWI5MWVhN2U1NWRkYmZlMTQwMTUxNzA2N2Q3YjAxYTJhMDg3OWYwODg1Yzg5NGE4N2NmYjY4YzRkN2VlODkwNjA0ODgxYWViOTdjMjJkMWYzMzdlZjkyM2UwMzVhNjQwMDMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMzAyMTQ2MjQ3NzI5ODc1OWU4ZTA0NzE4YWU1NjMxNTVmMzUyM2NmYjg0Y2RiMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDA2ZDJjYmIzN2ZkMTI5NTdlNWE3NDgwY2UwNDM1ZThlZjYwNzdkZWYwOGZmMjcwODQ0ZGUyNTE2YTQ3NDJmMjExZDhjNzQ2OTBiYzA5NDhlMDhhMjk2YWJiYTkyODVmNmJiMzA1Yjk1YjdmOTQwOGNlNDRlODM4ODBjNzE5NDQ0NjcyZWM5OTc0NmJhNzhjYzRiZGU0NzUzMTlkMDFiZGU3N2M0OWQ1OGQxNmQzYjJlOTFjMmU2MWU4MzAzY2EzZDdlZGEzNzk3ZmQ4YjM1Y2E3MmJiMTRiMTVhMjRiNTZiYjcwZGMxMzQ4NDU2NTgwODExMGZmNWRiNThjNTZmN2EwNDM1NjA3ZTNjMzUyZmJmNGY1NTEwNmYyOTgwZmQzY2Q0MjM5N2RiZjcxMzdlZTdmMWUzMmNkODBhM2I3YWIxMmI0NmMxNjkyMjAyNzhkNzcxN2I3OGEzYzQ1ZDYzOTVhMTMwYThiNTg4NDFjYmMyOTBlNGY4MTdkZTNhNGZlMTZlY2QwNzdjYTMzYTBhYTI1ZTIzNWNjN2Y2NjU1YTgwYmE4YWVlYzg3OTA1YmIyYTc1NDU5YjdiY2M1YTEzM2YyOTkzNDkzYjQxZmZjZjYzY2Q3YTM5MWUzZTZmNzgwOTRjYTQ0MmM4MDE0NDQwM2NiMGE1ZjAwYmZjNjFhZTg4MCIKIAogUEtDUzcgUGFyc2UgRmFpbHVyZSBJbnZhbGlkIEFTTjE6IENoYW5nZSBsZW5ndGggZnJvbSAyMSB0byAyMiAjNTk5LjAKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBwa2NzN19hc24xX2ZhaWw6IjMwODIwNDlkMDYwOTJhODY0ODg2ZjcwZDAxMDcwMmEwODIwNDhlMzA4MjA0OGEwMjAxMDEzMTBmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwYjA2MDkyYTg2NDg4NmY3MGQwMTA3MDEzMTgyMDQ2NTMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNjMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTAyMTQ3YmRlZGRkMjQ0NGNkMWNkZmU1YzQxYTgxMDJjODliN2RmMmU2Y2JmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDA1YmVjZDg3MTk1YzFkZWZmOTBjMjRjOTEyNjliNTViM2YwNjliYzIyNWMzMjZjMzE0YzFhNTE3ODZmZmUxNGM4MzBiZTRlNGJjNzNjYmEzNmM5NzY3N2I0NDE2ODI3OWJlOTFlN2NkZjdjMTkzODZhZTIxODYyNzE5ZDEzYTNhMGZmZjA4MDNkNDYwOTYyZjJjZGE4MzcxNDg0ODczMjUyYzNkNzA1NGRiODE0M2UyYjA4MWEzODE2ZWQwODA0Y2E1MDk5YWU1ZmVjZTgzZDVjMmMzNzgzYjE5ODhiNGI0NmRjOTRlNTU1ODdhMTA3ZWExNTQ2YmYyMmQyOGEwOTdmNjUyYTQwNjZkYzI5NjUyNjkwNjlhZjJmNTE3NmJiOGNlOWNhNmQxMWY5Njc1N2YwMzIwNGY3NTY3MDM1ODdkMDBhZDQyNDc5NmM5MmZjN2FlYjZmNDk0NDMxOTk5ZWRhMzA5OTBlNGY1NzczNjMyZWQyNThmZTAyNzY2NzM1OTlkYTZmY2UzNWNkYWQ3NzI2YTBiYjAyNGNhZDk5NmI4OGUwY2I5ODg1NGNlYjVjMGI2ZWM3NDhkOWY5Y2U2YTZjZDQzNzg1OGJhY2I4MTQ2MThhMjcyZmYzYTQxNWM2ZTA3ZjNkYjA5ODg3NzdmZGVjODQ1YTk3YmY3ZDEwMmRkMDMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMjAyMTQ1NjRkNTU0MDI1YWY1OTllMzI3MDc5YjI3MjBlZjAwZGYzN2NmYjdjMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDAwNDYwOThkYzVmMmI5OWUzYmMyZWQ2NjQyZDdmMGE2MWVmYWJjMTVjMzhjNzYzMzNiY2NjZWVlZTM2OWE0ZjRhNWJkZGE4ZWE1OTI2NDEyNGU0MjlmMDg2MzI2ODNkZGJhMTdiYmYyNjJkODJiNmJlZmEzYjRlMTQ4MDM3NmE4YzdmM2M3ZDdlMmE2Nzc5YmJmMTgyNjJhYTg1N2RlOGMyMGExMmI2YTJjZThlNGQ3ZjMxZGQxYjE5NTM5MmNmNjE4NWFmY2UzNGFmZTA1ODk2MDU3YjM2ZTliMTcxYjZjNjdlZDdjMjI4NmNiZmE4M2ZmOGExNjdjN2JjNzEwOWFlZTdkN2UxOTA5YmQzODRmYmZjNjE5MzhlZmNhNTFjODk5M2M3MWRiMzE3NzMwZjE2ZTdlNzc2ODY3YWU0ZmRjNTYyZDZmMTVkZTU4NWU3Yjk0ZWY0OTZhMzY3NjM2N2EyY2JhYWI3YjYzNjY0OGIwMDc2YmFkNWNkZjFlMDk3NDBlYzZhNDUxYmZmNTM0ZWZhMjE1MDlmM2JhNzdiODEwMWI5MWVhN2U1NWRkYmZlMTQwMTUxNzA2N2Q3YjAxYTJhMDg3OWYwODg1Yzg5NGE4N2NmYjY4YzRkN2VlODkwNjA0ODgxYWViOTdjMjJkMWYzMzdlZjkyM2UwMzVhNjQwMDMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMzAyMTQ2MjQ3NzI5ODc1OWU4ZTA0NzE4YWU1NjMxNTVmMzUyM2NmYjg0Y2RiMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDA2ZDJjYmIzN2ZkMTI5NTdlNWE3NDgwY2UwNDM1ZThlZjYwNzdkZWYwOGZmMjcwODQ0ZGUyNTE2YTQ3NDJmMjExZDhjNzQ2OTBiYzA5NDhlMDhhMjk2YWJiYTkyODVmNmJiMzA1Yjk1YjdmOTQwOGNlNDRlODM4ODBjNzE5NDQ0NjcyZWM5OTc0NmJhNzhjYzRiZGU0NzUzMTlkMDFiZGU3N2M0OWQ1OGQxNmQzYjJlOTFjMmU2MWU4MzAzY2EzZDdlZGEzNzk3ZmQ4YjM1Y2E3MmJiMTRiMTVhMjRiNTZiYjcwZGMxMzQ4NDU2NTgwODExMGZmNWRiNThjNTZmN2EwNDM1NjA3ZTNjMzUyZmJmNGY1NTEwNmYyOTgwZmQzY2Q0MjM5N2RiZjcxMzdlZTdmMWUzMmNkODBhM2I3YWIxMmI0NmMxNjkyMjAyNzhkNzcxN2I3OGEzYzQ1ZDYzOTVhMTMwYThiNTg4NDFjYmMyOTBlNGY4MTdkZTNhNGZlMTZlY2QwNzdjYTMzYTBhYTI1ZTIzNWNjN2Y2NjU1YTgwYmE4YWVlYzg3OTA1YmIyYTc1NDU5YjdiY2M1YTEzM2YyOTkzNDkzYjQxZmZjZjYzY2Q3YTM5MWUzZTZmNzgwOTRjYTQ0MmM4MDE0NDQwM2NiMGE1ZjAwYmZjNjFhZTg4MCIKIAogUEtDUzcgUGFyc2UgRmFpbHVyZSBJbnZhbGlkIEFTTjE6IENoYW5nZSBjb250ZW50cyBvZiB0YWcgMzEgdG8gY29udGFpbiBvbmUgdW5hY2NvdW50ZWQgZXh0cmEgYnl0ZSAjNjAwLjAKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBwa2NzN19hc24xX2ZhaWw6IjMwODIwNDlkMDYwOTJhODY0ODg2ZjcwZDAxMDcwMmEwODIwNDhlMzA4MjA0OGEwMjAxMDEzMTBmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwYjA2MDkyYTg2NDg4NmY3MGQwMTA3MDEzMTgyMDQ2NTMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNjMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTAwMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDViZWNkODcxOTVjMWRlZmY5MGMyNGM5MTI2OWI1NWIzZjA2OWJjMjI1YzMyNmMzMTRjMWE1MTc4NmZmZTE0YzgzMGJlNGU0YmM3M2NiYTM2Yzk3Njc3YjQ0MTY4Mjc5YmU5MWU3Y2RmN2MxOTM4NmFlMjE4NjI3MTlkMTNhM2EwZmZmMDgwM2Q0NjA5NjJmMmNkYTgzNzE0ODQ4NzMyNTJjM2Q3MDU0ZGI4MTQzZTJiMDgxYTM4MTZlZDA4MDRjYTUwOTlhZTVmZWNlODNkNWMyYzM3ODNiMTk4OGI0YjQ2ZGM5NGU1NTU4N2ExMDdlYTE1NDZiZjIyZDI4YTA5N2Y2NTJhNDA2NmRjMjk2NTI2OTA2OWFmMmY1MTc2YmI4Y2U5Y2E2ZDExZjk2NzU3ZjAzMjA0Zjc1NjcwMzU4N2QwMGFkNDI0Nzk2YzkyZmM3YWViNmY0OTQ0MzE5OTllZGEzMDk5MGU0ZjU3NzM2MzJlZDI1OGZlMDI3NjY3MzU5OWRhNmZjZTM1Y2RhZDc3MjZhMGJiMDI0Y2FkOTk2Yjg4ZTBjYjk4ODU0Y2ViNWMwYjZlYzc0OGQ5ZjljZTZhNmNkNDM3ODU4YmFjYjgxNDYxOGEyNzJmZjNhNDE1YzZlMDdmM2RiMDk4ODc3N2ZkZWM4NDVhOTdiZjdkMTAyZGQwMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMyMDIxNDU2NGQ1NTQwMjVhZjU5OWUzMjcwNzliMjcyMGVmMDBkZjM3Y2ZiN2MzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDA0NjA5OGRjNWYyYjk5ZTNiYzJlZDY2NDJkN2YwYTYxZWZhYmMxNWMzOGM3NjMzM2JjY2NlZWVlMzY5YTRmNGE1YmRkYThlYTU5MjY0MTI0ZTQyOWYwODYzMjY4M2RkYmExN2JiZjI2MmQ4MmI2YmVmYTNiNGUxNDgwMzc2YThjN2YzYzdkN2UyYTY3NzliYmYxODI2MmFhODU3ZGU4YzIwYTEyYjZhMmNlOGU0ZDdmMzFkZDFiMTk1MzkyY2Y2MTg1YWZjZTM0YWZlMDU4OTYwNTdiMzZlOWIxNzFiNmM2N2VkN2MyMjg2Y2JmYTgzZmY4YTE2N2M3YmM3MTA5YWVlN2Q3ZTE5MDliZDM4NGZiZmM2MTkzOGVmY2E1MWM4OTkzYzcxZGIzMTc3MzBmMTZlN2U3NzY4NjdhZTRmZGM1NjJkNmYxNWRlNTg1ZTdiOTRlZjQ5NmEzNjc2MzY3YTJjYmFhYjdiNjM2NjQ4YjAwNzZiYWQ1Y2RmMWUwOTc0MGVjNmE0NTFiZmY1MzRlZmEyMTUwOWYzYmE3N2I4MTAxYjkxZWE3ZTU1ZGRiZmUxNDAxNTE3MDY3ZDdiMDFhMmEwODc5ZjA4ODVjODk0YTg3Y2ZiNjhjNGQ3ZWU4OTA2MDQ4ODFhZWI5N2MyMmQxZjMzN2VmOTIzZTAzNWE2NDAwMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMzMDIxNDYyNDc3Mjk4NzU5ZThlMDQ3MThhZTU2MzE1NWYzNTIzY2ZiODRjZGIzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDZkMmNiYjM3ZmQxMjk1N2U1YTc0ODBjZTA0MzVlOGVmNjA3N2RlZjA4ZmYyNzA4NDRkZTI1MTZhNDc0MmYyMTFkOGM3NDY5MGJjMDk0OGUwOGEyOTZhYmJhOTI4NWY2YmIzMDViOTViN2Y5NDA4Y2U0NGU4Mzg4MGM3MTk0NDQ2NzJlYzk5NzQ2YmE3OGNjNGJkZTQ3NTMxOWQwMWJkZTc3YzQ5ZDU4ZDE2ZDNiMmU5MWMyZTYxZTgzMDNjYTNkN2VkYTM3OTdmZDhiMzVjYTcyYmIxNGIxNWEyNGI1NmJiNzBkYzEzNDg0NTY1ODA4MTEwZmY1ZGI1OGM1NmY3YTA0MzU2MDdlM2MzNTJmYmY0ZjU1MTA2ZjI5ODBmZDNjZDQyMzk3ZGJmNzEzN2VlN2YxZTMyY2Q4MGEzYjdhYjEyYjQ2YzE2OTIyMDI3OGQ3NzE3Yjc4YTNjNDVkNjM5NWExMzBhOGI1ODg0MWNiYzI5MGU0ZjgxN2RlM2E0ZmUxNmVjZDA3N2NhMzNhMGFhMjVlMjM1Y2M3ZjY2NTVhODBiYThhZWVjODc5MDViYjJhNzU0NTliN2JjYzVhMTMzZjI5OTM0OTNiNDFmZmNmNjNjZDdhMzkxZTNlNmY3ODA5NGNhNDQyYzgwMTQ0NDAzY2IwYTVmMDBiZmM2MWFlODgwIgogCiBQS0NTNyBQYXJzZSBGYWlsdXJlIEludmFsaWQgQVNOMTogQ2hhbmdlIGxlbmd0aCBmcm9tIDIxIHRvIDIwICM2MDEuMAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHBrY3M3X2FzbjFfZmFpbDoiMzA4MjA0OWQwNjA5MmE4NjQ4ODZmNzBkMDEwNzAyYTA4MjA0OGUzMDgyMDQ4YTAyMDEwMTMxMGYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBiMDYwOTJhODY0ODg2ZjcwZDAxMDcwMTMxODIwNDY1MzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE0MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDViZWNkODcxOTVjMWRlZmY5MGMyNGM5MTI2OWI1NWIzZjA2OWJjMjI1YzMyNmMzMTRjMWE1MTc4NmZmZTE0YzgzMGJlNGU0YmM3M2NiYTM2Yzk3Njc3YjQ0MTY4Mjc5YmU5MWU3Y2RmN2MxOTM4NmFlMjE4NjI3MTlkMTNhM2EwZmZmMDgwM2Q0NjA5NjJmMmNkYTgzNzE0ODQ4NzMyNTJjM2Q3MDU0ZGI4MTQzZTJiMDgxYTM4MTZlZDA4MDRjYTUwOTlhZTVmZWNlODNkNWMyYzM3ODNiMTk4OGI0YjQ2ZGM5NGU1NTU4N2ExMDdlYTE1NDZiZjIyZDI4YTA5N2Y2NTJhNDA2NmRjMjk2NTI2OTA2OWFmMmY1MTc2YmI4Y2U5Y2E2ZDExZjk2NzU3ZjAzMjA0Zjc1NjcwMzU4N2QwMGFkNDI0Nzk2YzkyZmM3YWViNmY0OTQ0MzE5OTllZGEzMDk5MGU0ZjU3NzM2MzJlZDI1OGZlMDI3NjY3MzU5OWRhNmZjZTM1Y2RhZDc3MjZhMGJiMDI0Y2FkOTk2Yjg4ZTBjYjk4ODU0Y2ViNWMwYjZlYzc0OGQ5ZjljZTZhNmNkNDM3ODU4YmFjYjgxNDYxOGEyNzJmZjNhNDE1YzZlMDdmM2RiMDk4ODc3N2ZkZWM4NDVhOTdiZjdkMTAyZGQwMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMyMDIxNDU2NGQ1NTQwMjVhZjU5OWUzMjcwNzliMjcyMGVmMDBkZjM3Y2ZiN2MzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDA0NjA5OGRjNWYyYjk5ZTNiYzJlZDY2NDJkN2YwYTYxZWZhYmMxNWMzOGM3NjMzM2JjY2NlZWVlMzY5YTRmNGE1YmRkYThlYTU5MjY0MTI0ZTQyOWYwODYzMjY4M2RkYmExN2JiZjI2MmQ4MmI2YmVmYTNiNGUxNDgwMzc2YThjN2YzYzdkN2UyYTY3NzliYmYxODI2MmFhODU3ZGU4YzIwYTEyYjZhMmNlOGU0ZDdmMzFkZDFiMTk1MzkyY2Y2MTg1YWZjZTM0YWZlMDU4OTYwNTdiMzZlOWIxNzFiNmM2N2VkN2MyMjg2Y2JmYTgzZmY4YTE2N2M3YmM3MTA5YWVlN2Q3ZTE5MDliZDM4NGZiZmM2MTkzOGVmY2E1MWM4OTkzYzcxZGIzMTc3MzBmMTZlN2U3NzY4NjdhZTRmZGM1NjJkNmYxNWRlNTg1ZTdiOTRlZjQ5NmEzNjc2MzY3YTJjYmFhYjdiNjM2NjQ4YjAwNzZiYWQ1Y2RmMWUwOTc0MGVjNmE0NTFiZmY1MzRlZmEyMTUwOWYzYmE3N2I4MTAxYjkxZWE3ZTU1ZGRiZmUxNDAxNTE3MDY3ZDdiMDFhMmEwODc5ZjA4ODVjODk0YTg3Y2ZiNjhjNGQ3ZWU4OTA2MDQ4ODFhZWI5N2MyMmQxZjMzN2VmOTIzZTAzNWE2NDAwMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMzMDIxNDYyNDc3Mjk4NzU5ZThlMDQ3MThhZTU2MzE1NWYzNTIzY2ZiODRjZGIzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDZkMmNiYjM3ZmQxMjk1N2U1YTc0ODBjZTA0MzVlOGVmNjA3N2RlZjA4ZmYyNzA4NDRkZTI1MTZhNDc0MmYyMTFkOGM3NDY5MGJjMDk0OGUwOGEyOTZhYmJhOTI4NWY2YmIzMDViOTViN2Y5NDA4Y2U0NGU4Mzg4MGM3MTk0NDQ2NzJlYzk5NzQ2YmE3OGNjNGJkZTQ3NTMxOWQwMWJkZTc3YzQ5ZDU4ZDE2ZDNiMmU5MWMyZTYxZTgzMDNjYTNkN2VkYTM3OTdmZDhiMzVjYTcyYmIxNGIxNWEyNGI1NmJiNzBkYzEzNDg0NTY1ODA4MTEwZmY1ZGI1OGM1NmY3YTA0MzU2MDdlM2MzNTJmYmY0ZjU1MTA2ZjI5ODBmZDNjZDQyMzk3ZGJmNzEzN2VlN2YxZTMyY2Q4MGEzYjdhYjEyYjQ2YzE2OTIyMDI3OGQ3NzE3Yjc4YTNjNDVkNjM5NWExMzBhOGI1ODg0MWNiYzI5MGU0ZjgxN2RlM2E0ZmUxNmVjZDA3N2NhMzNhMGFhMjVlMjM1Y2M3ZjY2NTVhODBiYThhZWVjODc5MDViYjJhNzU0NTliN2JjYzVhMTMzZjI5OTM0OTNiNDFmZmNmNjNjZDdhMzkxZTNlNmY3ODA5NGNhNDQyYzgwMTQ0NDAzY2IwYTVmMDBiZmM2MWFlODgwIgogCiBQS0NTNyBQYXJzZSBGYWlsdXJlIEludmFsaWQgQVNOMTogQ2hhbmdlIHRhZyAzMCB0byAwMiAjNjAyLjAKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBwa2NzN19hc24xX2ZhaWw6IjMwODIwNDlkMDYwOTJhODY0ODg2ZjcwZDAxMDcwMmEwODIwNDhlMzA4MjA0OGEwMjAxMDEzMTBmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwYjA2MDkyYTg2NDg4NmY3MGQwMTA3MDEzMTgyMDQ2NTMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTAyMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTAyMTQ3YmRlZGRkMjQ0NGNkMWNkZmU1YzQxYTgxMDJjODliN2RmMmU2Y2JmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDA1YmVjZDg3MTk1YzFkZWZmOTBjMjRjOTEyNjliNTViM2YwNjliYzIyNWMzMjZjMzE0YzFhNTE3ODZmZmUxNGM4MzBiZTRlNGJjNzNjYmEzNmM5NzY3N2I0NDE2ODI3OWJlOTFlN2NkZjdjMTkzODZhZTIxODYyNzE5ZDEzYTNhMGZmZjA4MDNkNDYwOTYyZjJjZGE4MzcxNDg0ODczMjUyYzNkNzA1NGRiODE0M2UyYjA4MWEzODE2ZWQwODA0Y2E1MDk5YWU1ZmVjZTgzZDVjMmMzNzgzYjE5ODhiNGI0NmRjOTRlNTU1ODdhMTA3ZWExNTQ2YmYyMmQyOGEwOTdmNjUyYTQwNjZkYzI5NjUyNjkwNjlhZjJmNTE3NmJiOGNlOWNhNmQxMWY5Njc1N2YwMzIwNGY3NTY3MDM1ODdkMDBhZDQyNDc5NmM5MmZjN2FlYjZmNDk0NDMxOTk5ZWRhMzA5OTBlNGY1NzczNjMyZWQyNThmZTAyNzY2NzM1OTlkYTZmY2UzNWNkYWQ3NzI2YTBiYjAyNGNhZDk5NmI4OGUwY2I5ODg1NGNlYjVjMGI2ZWM3NDhkOWY5Y2U2YTZjZDQzNzg1OGJhY2I4MTQ2MThhMjcyZmYzYTQxNWM2ZTA3ZjNkYjA5ODg3NzdmZGVjODQ1YTk3YmY3ZDEwMmRkMDMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMjAyMTQ1NjRkNTU0MDI1YWY1OTllMzI3MDc5YjI3MjBlZjAwZGYzN2NmYjdjMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDAwNDYwOThkYzVmMmI5OWUzYmMyZWQ2NjQyZDdmMGE2MWVmYWJjMTVjMzhjNzYzMzNiY2NjZWVlZTM2OWE0ZjRhNWJkZGE4ZWE1OTI2NDEyNGU0MjlmMDg2MzI2ODNkZGJhMTdiYmYyNjJkODJiNmJlZmEzYjRlMTQ4MDM3NmE4YzdmM2M3ZDdlMmE2Nzc5YmJmMTgyNjJhYTg1N2RlOGMyMGExMmI2YTJjZThlNGQ3ZjMxZGQxYjE5NTM5MmNmNjE4NWFmY2UzNGFmZTA1ODk2MDU3YjM2ZTliMTcxYjZjNjdlZDdjMjI4NmNiZmE4M2ZmOGExNjdjN2JjNzEwOWFlZTdkN2UxOTA5YmQzODRmYmZjNjE5MzhlZmNhNTFjODk5M2M3MWRiMzE3NzMwZjE2ZTdlNzc2ODY3YWU0ZmRjNTYyZDZmMTVkZTU4NWU3Yjk0ZWY0OTZhMzY3NjM2N2EyY2JhYWI3YjYzNjY0OGIwMDc2YmFkNWNkZjFlMDk3NDBlYzZhNDUxYmZmNTM0ZWZhMjE1MDlmM2JhNzdiODEwMWI5MWVhN2U1NWRkYmZlMTQwMTUxNzA2N2Q3YjAxYTJhMDg3OWYwODg1Yzg5NGE4N2NmYjY4YzRkN2VlODkwNjA0ODgxYWViOTdjMjJkMWYzMzdlZjkyM2UwMzVhNjQwMDMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMzAyMTQ2MjQ3NzI5ODc1OWU4ZTA0NzE4YWU1NjMxNTVmMzUyM2NmYjg0Y2RiMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDA2ZDJjYmIzN2ZkMTI5NTdlNWE3NDgwY2UwNDM1ZThlZjYwNzdkZWYwOGZmMjcwODQ0ZGUyNTE2YTQ3NDJmMjExZDhjNzQ2OTBiYzA5NDhlMDhhMjk2YWJiYTkyODVmNmJiMzA1Yjk1YjdmOTQwOGNlNDRlODM4ODBjNzE5NDQ0NjcyZWM5OTc0NmJhNzhjYzRiZGU0NzUzMTlkMDFiZGU3N2M0OWQ1OGQxNmQzYjJlOTFjMmU2MWU4MzAzY2EzZDdlZGEzNzk3ZmQ4YjM1Y2E3MmJiMTRiMTVhMjRiNTZiYjcwZGMxMzQ4NDU2NTgwODExMGZmNWRiNThjNTZmN2EwNDM1NjA3ZTNjMzUyZmJmNGY1NTEwNmYyOTgwZmQzY2Q0MjM5N2RiZjcxMzdlZTdmMWUzMmNkODBhM2I3YWIxMmI0NmMxNjkyMjAyNzhkNzcxN2I3OGEzYzQ1ZDYzOTVhMTMwYThiNTg4NDFjYmMyOTBlNGY4MTdkZTNhNGZlMTZlY2QwNzdjYTMzYTBhYTI1ZTIzNWNjN2Y2NjU1YTgwYmE4YWVlYzg3OTA1YmIyYTc1NDU5YjdiY2M1YTEzM2YyOTkzNDkzYjQxZmZjZjYzY2Q3YTM5MWUzZTZmNzgwOTRjYTQ0MmM4MDE0NDQwM2NiMGE1ZjAwYmZjNjFhZTg4MCIKIAogUEtDUzcgUGFyc2UgRmFpbHVyZSBJbnZhbGlkIEFTTjE6IENoYW5nZSBsZW5ndGggZnJvbSAxOSB0byAyMCAjNjAzLjAKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBwa2NzN19hc24xX2ZhaWw6IjMwODIwNDlkMDYwOTJhODY0ODg2ZjcwZDAxMDcwMmEwODIwNDhlMzA4MjA0OGEwMjAxMDEzMTBmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwYjA2MDkyYTg2NDg4NmY3MGQwMTA3MDEzMTgyMDQ2NTMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTQwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTAyMTQ3YmRlZGRkMjQ0NGNkMWNkZmU1YzQxYTgxMDJjODliN2RmMmU2Y2JmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDA1YmVjZDg3MTk1YzFkZWZmOTBjMjRjOTEyNjliNTViM2YwNjliYzIyNWMzMjZjMzE0YzFhNTE3ODZmZmUxNGM4MzBiZTRlNGJjNzNjYmEzNmM5NzY3N2I0NDE2ODI3OWJlOTFlN2NkZjdjMTkzODZhZTIxODYyNzE5ZDEzYTNhMGZmZjA4MDNkNDYwOTYyZjJjZGE4MzcxNDg0ODczMjUyYzNkNzA1NGRiODE0M2UyYjA4MWEzODE2ZWQwODA0Y2E1MDk5YWU1ZmVjZTgzZDVjMmMzNzgzYjE5ODhiNGI0NmRjOTRlNTU1ODdhMTA3ZWExNTQ2YmYyMmQyOGEwOTdmNjUyYTQwNjZkYzI5NjUyNjkwNjlhZjJmNTE3NmJiOGNlOWNhNmQxMWY5Njc1N2YwMzIwNGY3NTY3MDM1ODdkMDBhZDQyNDc5NmM5MmZjN2FlYjZmNDk0NDMxOTk5ZWRhMzA5OTBlNGY1NzczNjMyZWQyNThmZTAyNzY2NzM1OTlkYTZmY2UzNWNkYWQ3NzI2YTBiYjAyNGNhZDk5NmI4OGUwY2I5ODg1NGNlYjVjMGI2ZWM3NDhkOWY5Y2U2YTZjZDQzNzg1OGJhY2I4MTQ2MThhMjcyZmYzYTQxNWM2ZTA3ZjNkYjA5ODg3NzdmZGVjODQ1YTk3YmY3ZDEwMmRkMDMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMjAyMTQ1NjRkNTU0MDI1YWY1OTllMzI3MDc5YjI3MjBlZjAwZGYzN2NmYjdjMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDAwNDYwOThkYzVmMmI5OWUzYmMyZWQ2NjQyZDdmMGE2MWVmYWJjMTVjMzhjNzYzMzNiY2NjZWVlZTM2OWE0ZjRhNWJkZGE4ZWE1OTI2NDEyNGU0MjlmMDg2MzI2ODNkZGJhMTdiYmYyNjJkODJiNmJlZmEzYjRlMTQ4MDM3NmE4YzdmM2M3ZDdlMmE2Nzc5YmJmMTgyNjJhYTg1N2RlOGMyMGExMmI2YTJjZThlNGQ3ZjMxZGQxYjE5NTM5MmNmNjE4NWFmY2UzNGFmZTA1ODk2MDU3YjM2ZTliMTcxYjZjNjdlZDdjMjI4NmNiZmE4M2ZmOGExNjdjN2JjNzEwOWFlZTdkN2UxOTA5YmQzODRmYmZjNjE5MzhlZmNhNTFjODk5M2M3MWRiMzE3NzMwZjE2ZTdlNzc2ODY3YWU0ZmRjNTYyZDZmMTVkZTU4NWU3Yjk0ZWY0OTZhMzY3NjM2N2EyY2JhYWI3YjYzNjY0OGIwMDc2YmFkNWNkZjFlMDk3NDBlYzZhNDUxYmZmNTM0ZWZhMjE1MDlmM2JhNzdiODEwMWI5MWVhN2U1NWRkYmZlMTQwMTUxNzA2N2Q3YjAxYTJhMDg3OWYwODg1Yzg5NGE4N2NmYjY4YzRkN2VlODkwNjA0ODgxYWViOTdjMjJkMWYzMzdlZjkyM2UwMzVhNjQwMDMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMzAyMTQ2MjQ3NzI5ODc1OWU4ZTA0NzE4YWU1NjMxNTVmMzUyM2NmYjg0Y2RiMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDA2ZDJjYmIzN2ZkMTI5NTdlNWE3NDgwY2UwNDM1ZThlZjYwNzdkZWYwOGZmMjcwODQ0ZGUyNTE2YTQ3NDJmMjExZDhjNzQ2OTBiYzA5NDhlMDhhMjk2YWJiYTkyODVmNmJiMzA1Yjk1YjdmOTQwOGNlNDRlODM4ODBjNzE5NDQ0NjcyZWM5OTc0NmJhNzhjYzRiZGU0NzUzMTlkMDFiZGU3N2M0OWQ1OGQxNmQzYjJlOTFjMmU2MWU4MzAzY2EzZDdlZGEzNzk3ZmQ4YjM1Y2E3MmJiMTRiMTVhMjRiNTZiYjcwZGMxMzQ4NDU2NTgwODExMGZmNWRiNThjNTZmN2EwNDM1NjA3ZTNjMzUyZmJmNGY1NTEwNmYyOTgwZmQzY2Q0MjM5N2RiZjcxMzdlZTdmMWUzMmNkODBhM2I3YWIxMmI0NmMxNjkyMjAyNzhkNzcxN2I3OGEzYzQ1ZDYzOTVhMTMwYThiNTg4NDFjYmMyOTBlNGY4MTdkZTNhNGZlMTZlY2QwNzdjYTMzYTBhYTI1ZTIzNWNjN2Y2NjU1YTgwYmE4YWVlYzg3OTA1YmIyYTc1NDU5YjdiY2M1YTEzM2YyOTkzNDkzYjQxZmZjZjYzY2Q3YTM5MWUzZTZmNzgwOTRjYTQ0MmM4MDE0NDQwM2NiMGE1ZjAwYmZjNjFhZTg4MCIKIAogUEtDUzcgUGFyc2UgRmFpbHVyZSBJbnZhbGlkIEFTTjE6IENoYW5nZSBjb250ZW50cyBvZiB0YWcgMzAgdG8gY29udGFpbiBvbmUgdW5hY2NvdW50ZWQgZXh0cmEgYnl0ZSAjNjA0LjAKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBwa2NzN19hc24xX2ZhaWw6IjMwODIwNDlkMDYwOTJhODY0ODg2ZjcwZDAxMDcwMmEwODIwNDhlMzA4MjA0OGEwMjAxMDEzMTBmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwYjA2MDkyYTg2NDg4NmY3MGQwMTA3MDEzMTgyMDQ2NTMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTQwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTAwMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDViZWNkODcxOTVjMWRlZmY5MGMyNGM5MTI2OWI1NWIzZjA2OWJjMjI1YzMyNmMzMTRjMWE1MTc4NmZmZTE0YzgzMGJlNGU0YmM3M2NiYTM2Yzk3Njc3YjQ0MTY4Mjc5YmU5MWU3Y2RmN2MxOTM4NmFlMjE4NjI3MTlkMTNhM2EwZmZmMDgwM2Q0NjA5NjJmMmNkYTgzNzE0ODQ4NzMyNTJjM2Q3MDU0ZGI4MTQzZTJiMDgxYTM4MTZlZDA4MDRjYTUwOTlhZTVmZWNlODNkNWMyYzM3ODNiMTk4OGI0YjQ2ZGM5NGU1NTU4N2ExMDdlYTE1NDZiZjIyZDI4YTA5N2Y2NTJhNDA2NmRjMjk2NTI2OTA2OWFmMmY1MTc2YmI4Y2U5Y2E2ZDExZjk2NzU3ZjAzMjA0Zjc1NjcwMzU4N2QwMGFkNDI0Nzk2YzkyZmM3YWViNmY0OTQ0MzE5OTllZGEzMDk5MGU0ZjU3NzM2MzJlZDI1OGZlMDI3NjY3MzU5OWRhNmZjZTM1Y2RhZDc3MjZhMGJiMDI0Y2FkOTk2Yjg4ZTBjYjk4ODU0Y2ViNWMwYjZlYzc0OGQ5ZjljZTZhNmNkNDM3ODU4YmFjYjgxNDYxOGEyNzJmZjNhNDE1YzZlMDdmM2RiMDk4ODc3N2ZkZWM4NDVhOTdiZjdkMTAyZGQwMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMyMDIxNDU2NGQ1NTQwMjVhZjU5OWUzMjcwNzliMjcyMGVmMDBkZjM3Y2ZiN2MzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDA0NjA5OGRjNWYyYjk5ZTNiYzJlZDY2NDJkN2YwYTYxZWZhYmMxNWMzOGM3NjMzM2JjY2NlZWVlMzY5YTRmNGE1YmRkYThlYTU5MjY0MTI0ZTQyOWYwODYzMjY4M2RkYmExN2JiZjI2MmQ4MmI2YmVmYTNiNGUxNDgwMzc2YThjN2YzYzdkN2UyYTY3NzliYmYxODI2MmFhODU3ZGU4YzIwYTEyYjZhMmNlOGU0ZDdmMzFkZDFiMTk1MzkyY2Y2MTg1YWZjZTM0YWZlMDU4OTYwNTdiMzZlOWIxNzFiNmM2N2VkN2MyMjg2Y2JmYTgzZmY4YTE2N2M3YmM3MTA5YWVlN2Q3ZTE5MDliZDM4NGZiZmM2MTkzOGVmY2E1MWM4OTkzYzcxZGIzMTc3MzBmMTZlN2U3NzY4NjdhZTRmZGM1NjJkNmYxNWRlNTg1ZTdiOTRlZjQ5NmEzNjc2MzY3YTJjYmFhYjdiNjM2NjQ4YjAwNzZiYWQ1Y2RmMWUwOTc0MGVjNmE0NTFiZmY1MzRlZmEyMTUwOWYzYmE3N2I4MTAxYjkxZWE3ZTU1ZGRiZmUxNDAxNTE3MDY3ZDdiMDFhMmEwODc5ZjA4ODVjODk0YTg3Y2ZiNjhjNGQ3ZWU4OTA2MDQ4ODFhZWI5N2MyMmQxZjMzN2VmOTIzZTAzNWE2NDAwMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMzMDIxNDYyNDc3Mjk4NzU5ZThlMDQ3MThhZTU2MzE1NWYzNTIzY2ZiODRjZGIzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDZkMmNiYjM3ZmQxMjk1N2U1YTc0ODBjZTA0MzVlOGVmNjA3N2RlZjA4ZmYyNzA4NDRkZTI1MTZhNDc0MmYyMTFkOGM3NDY5MGJjMDk0OGUwOGEyOTZhYmJhOTI4NWY2YmIzMDViOTViN2Y5NDA4Y2U0NGU4Mzg4MGM3MTk0NDQ2NzJlYzk5NzQ2YmE3OGNjNGJkZTQ3NTMxOWQwMWJkZTc3YzQ5ZDU4ZDE2ZDNiMmU5MWMyZTYxZTgzMDNjYTNkN2VkYTM3OTdmZDhiMzVjYTcyYmIxNGIxNWEyNGI1NmJiNzBkYzEzNDg0NTY1ODA4MTEwZmY1ZGI1OGM1NmY3YTA0MzU2MDdlM2MzNTJmYmY0ZjU1MTA2ZjI5ODBmZDNjZDQyMzk3ZGJmNzEzN2VlN2YxZTMyY2Q4MGEzYjdhYjEyYjQ2YzE2OTIyMDI3OGQ3NzE3Yjc4YTNjNDVkNjM5NWExMzBhOGI1ODg0MWNiYzI5MGU0ZjgxN2RlM2E0ZmUxNmVjZDA3N2NhMzNhMGFhMjVlMjM1Y2M3ZjY2NTVhODBiYThhZWVjODc5MDViYjJhNzU0NTliN2JjYzVhMTMzZjI5OTM0OTNiNDFmZmNmNjNjZDdhMzkxZTNlNmY3ODA5NGNhNDQyYzgwMTQ0NDAzY2IwYTVmMDBiZmM2MWFlODgwIgogCiBQS0NTNyBQYXJzZSBGYWlsdXJlIEludmFsaWQgQVNOMTogQ2hhbmdlIGxlbmd0aCBmcm9tIDE5IHRvIDE4ICM2MDUuMAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHBrY3M3X2FzbjFfZmFpbDoiMzA4MjA0OWQwNjA5MmE4NjQ4ODZmNzBkMDEwNzAyYTA4MjA0OGUzMDgyMDQ4YTAyMDEwMTMxMGYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBiMDYwOTJhODY0ODg2ZjcwZDAxMDcwMTMxODIwNDY1MzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMjA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDViZWNkODcxOTVjMWRlZmY5MGMyNGM5MTI2OWI1NWIzZjA2OWJjMjI1YzMyNmMzMTRjMWE1MTc4NmZmZTE0YzgzMGJlNGU0YmM3M2NiYTM2Yzk3Njc3YjQ0MTY4Mjc5YmU5MWU3Y2RmN2MxOTM4NmFlMjE4NjI3MTlkMTNhM2EwZmZmMDgwM2Q0NjA5NjJmMmNkYTgzNzE0ODQ4NzMyNTJjM2Q3MDU0ZGI4MTQzZTJiMDgxYTM4MTZlZDA4MDRjYTUwOTlhZTVmZWNlODNkNWMyYzM3ODNiMTk4OGI0YjQ2ZGM5NGU1NTU4N2ExMDdlYTE1NDZiZjIyZDI4YTA5N2Y2NTJhNDA2NmRjMjk2NTI2OTA2OWFmMmY1MTc2YmI4Y2U5Y2E2ZDExZjk2NzU3ZjAzMjA0Zjc1NjcwMzU4N2QwMGFkNDI0Nzk2YzkyZmM3YWViNmY0OTQ0MzE5OTllZGEzMDk5MGU0ZjU3NzM2MzJlZDI1OGZlMDI3NjY3MzU5OWRhNmZjZTM1Y2RhZDc3MjZhMGJiMDI0Y2FkOTk2Yjg4ZTBjYjk4ODU0Y2ViNWMwYjZlYzc0OGQ5ZjljZTZhNmNkNDM3ODU4YmFjYjgxNDYxOGEyNzJmZjNhNDE1YzZlMDdmM2RiMDk4ODc3N2ZkZWM4NDVhOTdiZjdkMTAyZGQwMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMyMDIxNDU2NGQ1NTQwMjVhZjU5OWUzMjcwNzliMjcyMGVmMDBkZjM3Y2ZiN2MzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDA0NjA5OGRjNWYyYjk5ZTNiYzJlZDY2NDJkN2YwYTYxZWZhYmMxNWMzOGM3NjMzM2JjY2NlZWVlMzY5YTRmNGE1YmRkYThlYTU5MjY0MTI0ZTQyOWYwODYzMjY4M2RkYmExN2JiZjI2MmQ4MmI2YmVmYTNiNGUxNDgwMzc2YThjN2YzYzdkN2UyYTY3NzliYmYxODI2MmFhODU3ZGU4YzIwYTEyYjZhMmNlOGU0ZDdmMzFkZDFiMTk1MzkyY2Y2MTg1YWZjZTM0YWZlMDU4OTYwNTdiMzZlOWIxNzFiNmM2N2VkN2MyMjg2Y2JmYTgzZmY4YTE2N2M3YmM3MTA5YWVlN2Q3ZTE5MDliZDM4NGZiZmM2MTkzOGVmY2E1MWM4OTkzYzcxZGIzMTc3MzBmMTZlN2U3NzY4NjdhZTRmZGM1NjJkNmYxNWRlNTg1ZTdiOTRlZjQ5NmEzNjc2MzY3YTJjYmFhYjdiNjM2NjQ4YjAwNzZiYWQ1Y2RmMWUwOTc0MGVjNmE0NTFiZmY1MzRlZmEyMTUwOWYzYmE3N2I4MTAxYjkxZWE3ZTU1ZGRiZmUxNDAxNTE3MDY3ZDdiMDFhMmEwODc5ZjA4ODVjODk0YTg3Y2ZiNjhjNGQ3ZWU4OTA2MDQ4ODFhZWI5N2MyMmQxZjMzN2VmOTIzZTAzNWE2NDAwMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMzMDIxNDYyNDc3Mjk4NzU5ZThlMDQ3MThhZTU2MzE1NWYzNTIzY2ZiODRjZGIzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDZkMmNiYjM3ZmQxMjk1N2U1YTc0ODBjZTA0MzVlOGVmNjA3N2RlZjA4ZmYyNzA4NDRkZTI1MTZhNDc0MmYyMTFkOGM3NDY5MGJjMDk0OGUwOGEyOTZhYmJhOTI4NWY2YmIzMDViOTViN2Y5NDA4Y2U0NGU4Mzg4MGM3MTk0NDQ2NzJlYzk5NzQ2YmE3OGNjNGJkZTQ3NTMxOWQwMWJkZTc3YzQ5ZDU4ZDE2ZDNiMmU5MWMyZTYxZTgzMDNjYTNkN2VkYTM3OTdmZDhiMzVjYTcyYmIxNGIxNWEyNGI1NmJiNzBkYzEzNDg0NTY1ODA4MTEwZmY1ZGI1OGM1NmY3YTA0MzU2MDdlM2MzNTJmYmY0ZjU1MTA2ZjI5ODBmZDNjZDQyMzk3ZGJmNzEzN2VlN2YxZTMyY2Q4MGEzYjdhYjEyYjQ2YzE2OTIyMDI3OGQ3NzE3Yjc4YTNjNDVkNjM5NWExMzBhOGI1ODg0MWNiYzI5MGU0ZjgxN2RlM2E0ZmUxNmVjZDA3N2NhMzNhMGFhMjVlMjM1Y2M3ZjY2NTVhODBiYThhZWVjODc5MDViYjJhNzU0NTliN2JjYzVhMTMzZjI5OTM0OTNiNDFmZmNmNjNjZDdhMzkxZTNlNmY3ODA5NGNhNDQyYzgwMTQ0NDAzY2IwYTVmMDBiZmM2MWFlODgwIgogCiBQS0NTNyBQYXJzZSBGYWlsdXJlIEludmFsaWQgQVNOMTogQ2hhbmdlIHRhZyAwNiB0byAwMiAjNjA2LjAKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBwa2NzN19hc24xX2ZhaWw6IjMwODIwNDlkMDYwOTJhODY0ODg2ZjcwZDAxMDcwMmEwODIwNDhlMzA4MjA0OGEwMjAxMDEzMTBmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwYjA2MDkyYTg2NDg4NmY3MGQwMTA3MDEzMTgyMDQ2NTMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwMjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTAyMTQ3YmRlZGRkMjQ0NGNkMWNkZmU1YzQxYTgxMDJjODliN2RmMmU2Y2JmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDA1YmVjZDg3MTk1YzFkZWZmOTBjMjRjOTEyNjliNTViM2YwNjliYzIyNWMzMjZjMzE0YzFhNTE3ODZmZmUxNGM4MzBiZTRlNGJjNzNjYmEzNmM5NzY3N2I0NDE2ODI3OWJlOTFlN2NkZjdjMTkzODZhZTIxODYyNzE5ZDEzYTNhMGZmZjA4MDNkNDYwOTYyZjJjZGE4MzcxNDg0ODczMjUyYzNkNzA1NGRiODE0M2UyYjA4MWEzODE2ZWQwODA0Y2E1MDk5YWU1ZmVjZTgzZDVjMmMzNzgzYjE5ODhiNGI0NmRjOTRlNTU1ODdhMTA3ZWExNTQ2YmYyMmQyOGEwOTdmNjUyYTQwNjZkYzI5NjUyNjkwNjlhZjJmNTE3NmJiOGNlOWNhNmQxMWY5Njc1N2YwMzIwNGY3NTY3MDM1ODdkMDBhZDQyNDc5NmM5MmZjN2FlYjZmNDk0NDMxOTk5ZWRhMzA5OTBlNGY1NzczNjMyZWQyNThmZTAyNzY2NzM1OTlkYTZmY2UzNWNkYWQ3NzI2YTBiYjAyNGNhZDk5NmI4OGUwY2I5ODg1NGNlYjVjMGI2ZWM3NDhkOWY5Y2U2YTZjZDQzNzg1OGJhY2I4MTQ2MThhMjcyZmYzYTQxNWM2ZTA3ZjNkYjA5ODg3NzdmZGVjODQ1YTk3YmY3ZDEwMmRkMDMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMjAyMTQ1NjRkNTU0MDI1YWY1OTllMzI3MDc5YjI3MjBlZjAwZGYzN2NmYjdjMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDAwNDYwOThkYzVmMmI5OWUzYmMyZWQ2NjQyZDdmMGE2MWVmYWJjMTVjMzhjNzYzMzNiY2NjZWVlZTM2OWE0ZjRhNWJkZGE4ZWE1OTI2NDEyNGU0MjlmMDg2MzI2ODNkZGJhMTdiYmYyNjJkODJiNmJlZmEzYjRlMTQ4MDM3NmE4YzdmM2M3ZDdlMmE2Nzc5YmJmMTgyNjJhYTg1N2RlOGMyMGExMmI2YTJjZThlNGQ3ZjMxZGQxYjE5NTM5MmNmNjE4NWFmY2UzNGFmZTA1ODk2MDU3YjM2ZTliMTcxYjZjNjdlZDdjMjI4NmNiZmE4M2ZmOGExNjdjN2JjNzEwOWFlZTdkN2UxOTA5YmQzODRmYmZjNjE5MzhlZmNhNTFjODk5M2M3MWRiMzE3NzMwZjE2ZTdlNzc2ODY3YWU0ZmRjNTYyZDZmMTVkZTU4NWU3Yjk0ZWY0OTZhMzY3NjM2N2EyY2JhYWI3YjYzNjY0OGIwMDc2YmFkNWNkZjFlMDk3NDBlYzZhNDUxYmZmNTM0ZWZhMjE1MDlmM2JhNzdiODEwMWI5MWVhN2U1NWRkYmZlMTQwMTUxNzA2N2Q3YjAxYTJhMDg3OWYwODg1Yzg5NGE4N2NmYjY4YzRkN2VlODkwNjA0ODgxYWViOTdjMjJkMWYzMzdlZjkyM2UwMzVhNjQwMDMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMzAyMTQ2MjQ3NzI5ODc1OWU4ZTA0NzE4YWU1NjMxNTVmMzUyM2NmYjg0Y2RiMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDA2ZDJjYmIzN2ZkMTI5NTdlNWE3NDgwY2UwNDM1ZThlZjYwNzdkZWYwOGZmMjcwODQ0ZGUyNTE2YTQ3NDJmMjExZDhjNzQ2OTBiYzA5NDhlMDhhMjk2YWJiYTkyODVmNmJiMzA1Yjk1YjdmOTQwOGNlNDRlODM4ODBjNzE5NDQ0NjcyZWM5OTc0NmJhNzhjYzRiZGU0NzUzMTlkMDFiZGU3N2M0OWQ1OGQxNmQzYjJlOTFjMmU2MWU4MzAzY2EzZDdlZGEzNzk3ZmQ4YjM1Y2E3MmJiMTRiMTVhMjRiNTZiYjcwZGMxMzQ4NDU2NTgwODExMGZmNWRiNThjNTZmN2EwNDM1NjA3ZTNjMzUyZmJmNGY1NTEwNmYyOTgwZmQzY2Q0MjM5N2RiZjcxMzdlZTdmMWUzMmNkODBhM2I3YWIxMmI0NmMxNjkyMjAyNzhkNzcxN2I3OGEzYzQ1ZDYzOTVhMTMwYThiNTg4NDFjYmMyOTBlNGY4MTdkZTNhNGZlMTZlY2QwNzdjYTMzYTBhYTI1ZTIzNWNjN2Y2NjU1YTgwYmE4YWVlYzg3OTA1YmIyYTc1NDU5YjdiY2M1YTEzM2YyOTkzNDkzYjQxZmZjZjYzY2Q3YTM5MWUzZTZmNzgwOTRjYTQ0MmM4MDE0NDQwM2NiMGE1ZjAwYmZjNjFhZTg4MCIKIAogUEtDUzcgUGFyc2UgRmFpbHVyZSBJbnZhbGlkIEFTTjE6IENoYW5nZSBsZW5ndGggZnJvbSAzIHRvIDQgIzYwNy4wCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NgogcGtjczdfYXNuMV9mYWlsOiIzMDgyMDQ5ZDA2MDkyYTg2NDg4NmY3MGQwMTA3MDJhMDgyMDQ4ZTMwODIwNDhhMDIwMTAxMzEwZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGIwNjA5MmE4NjQ4ODZmNzBkMDEwNzAxMzE4MjA0NjUzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwNDU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwNWJlY2Q4NzE5NWMxZGVmZjkwYzI0YzkxMjY5YjU1YjNmMDY5YmMyMjVjMzI2YzMxNGMxYTUxNzg2ZmZlMTRjODMwYmU0ZTRiYzczY2JhMzZjOTc2NzdiNDQxNjgyNzliZTkxZTdjZGY3YzE5Mzg2YWUyMTg2MjcxOWQxM2EzYTBmZmYwODAzZDQ2MDk2MmYyY2RhODM3MTQ4NDg3MzI1MmMzZDcwNTRkYjgxNDNlMmIwODFhMzgxNmVkMDgwNGNhNTA5OWFlNWZlY2U4M2Q1YzJjMzc4M2IxOTg4YjRiNDZkYzk0ZTU1NTg3YTEwN2VhMTU0NmJmMjJkMjhhMDk3ZjY1MmE0MDY2ZGMyOTY1MjY5MDY5YWYyZjUxNzZiYjhjZTljYTZkMTFmOTY3NTdmMDMyMDRmNzU2NzAzNTg3ZDAwYWQ0MjQ3OTZjOTJmYzdhZWI2ZjQ5NDQzMTk5OWVkYTMwOTkwZTRmNTc3MzYzMmVkMjU4ZmUwMjc2NjczNTk5ZGE2ZmNlMzVjZGFkNzcyNmEwYmIwMjRjYWQ5OTZiODhlMGNiOTg4NTRjZWI1YzBiNmVjNzQ4ZDlmOWNlNmE2Y2Q0Mzc4NThiYWNiODE0NjE4YTI3MmZmM2E0MTVjNmUwN2YzZGIwOTg4Nzc3ZmRlYzg0NWE5N2JmN2QxMDJkZDAzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzIwMjE0NTY0ZDU1NDAyNWFmNTk5ZTMyNzA3OWIyNzIwZWYwMGRmMzdjZmI3YzMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwMDQ2MDk4ZGM1ZjJiOTllM2JjMmVkNjY0MmQ3ZjBhNjFlZmFiYzE1YzM4Yzc2MzMzYmNjY2VlZWUzNjlhNGY0YTViZGRhOGVhNTkyNjQxMjRlNDI5ZjA4NjMyNjgzZGRiYTE3YmJmMjYyZDgyYjZiZWZhM2I0ZTE0ODAzNzZhOGM3ZjNjN2Q3ZTJhNjc3OWJiZjE4MjYyYWE4NTdkZThjMjBhMTJiNmEyY2U4ZTRkN2YzMWRkMWIxOTUzOTJjZjYxODVhZmNlMzRhZmUwNTg5NjA1N2IzNmU5YjE3MWI2YzY3ZWQ3YzIyODZjYmZhODNmZjhhMTY3YzdiYzcxMDlhZWU3ZDdlMTkwOWJkMzg0ZmJmYzYxOTM4ZWZjYTUxYzg5OTNjNzFkYjMxNzczMGYxNmU3ZTc3Njg2N2FlNGZkYzU2MmQ2ZjE1ZGU1ODVlN2I5NGVmNDk2YTM2NzYzNjdhMmNiYWFiN2I2MzY2NDhiMDA3NmJhZDVjZGYxZTA5NzQwZWM2YTQ1MWJmZjUzNGVmYTIxNTA5ZjNiYTc3YjgxMDFiOTFlYTdlNTVkZGJmZTE0MDE1MTcwNjdkN2IwMWEyYTA4NzlmMDg4NWM4OTRhODdjZmI2OGM0ZDdlZTg5MDYwNDg4MWFlYjk3YzIyZDFmMzM3ZWY5MjNlMDM1YTY0MDAzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzMwMjE0NjI0NzcyOTg3NTllOGUwNDcxOGFlNTYzMTU1ZjM1MjNjZmI4NGNkYjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwNmQyY2JiMzdmZDEyOTU3ZTVhNzQ4MGNlMDQzNWU4ZWY2MDc3ZGVmMDhmZjI3MDg0NGRlMjUxNmE0NzQyZjIxMWQ4Yzc0NjkwYmMwOTQ4ZTA4YTI5NmFiYmE5Mjg1ZjZiYjMwNWI5NWI3Zjk0MDhjZTQ0ZTgzODgwYzcxOTQ0NDY3MmVjOTk3NDZiYTc4Y2M0YmRlNDc1MzE5ZDAxYmRlNzdjNDlkNThkMTZkM2IyZTkxYzJlNjFlODMwM2NhM2Q3ZWRhMzc5N2ZkOGIzNWNhNzJiYjE0YjE1YTI0YjU2YmI3MGRjMTM0ODQ1NjU4MDgxMTBmZjVkYjU4YzU2ZjdhMDQzNTYwN2UzYzM1MmZiZjRmNTUxMDZmMjk4MGZkM2NkNDIzOTdkYmY3MTM3ZWU3ZjFlMzJjZDgwYTNiN2FiMTJiNDZjMTY5MjIwMjc4ZDc3MTdiNzhhM2M0NWQ2Mzk1YTEzMGE4YjU4ODQxY2JjMjkwZTRmODE3ZGUzYTRmZTE2ZWNkMDc3Y2EzM2EwYWEyNWUyMzVjYzdmNjY1NWE4MGJhOGFlZWM4NzkwNWJiMmE3NTQ1OWI3YmNjNWExMzNmMjk5MzQ5M2I0MWZmY2Y2M2NkN2EzOTFlM2U2Zjc4MDk0Y2E0NDJjODAxNDQ0MDNjYjBhNWYwMGJmYzYxYWU4ODAiCiAKIFBLQ1M3IFBhcnNlIEZhaWx1cmUgSW52YWxpZCBBU04xOiBDaGFuZ2UgbGVuZ3RoIGZyb20gMyB0byAyICM2MDguMAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHBrY3M3X2FzbjFfZmFpbDoiMzA4MjA0OWQwNjA5MmE4NjQ4ODZmNzBkMDEwNzAyYTA4MjA0OGUzMDgyMDQ4YTAyMDEwMTMxMGYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBiMDYwOTJhODY0ODg2ZjcwZDAxMDcwMTMxODIwNDY1MzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDI1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDViZWNkODcxOTVjMWRlZmY5MGMyNGM5MTI2OWI1NWIzZjA2OWJjMjI1YzMyNmMzMTRjMWE1MTc4NmZmZTE0YzgzMGJlNGU0YmM3M2NiYTM2Yzk3Njc3YjQ0MTY4Mjc5YmU5MWU3Y2RmN2MxOTM4NmFlMjE4NjI3MTlkMTNhM2EwZmZmMDgwM2Q0NjA5NjJmMmNkYTgzNzE0ODQ4NzMyNTJjM2Q3MDU0ZGI4MTQzZTJiMDgxYTM4MTZlZDA4MDRjYTUwOTlhZTVmZWNlODNkNWMyYzM3ODNiMTk4OGI0YjQ2ZGM5NGU1NTU4N2ExMDdlYTE1NDZiZjIyZDI4YTA5N2Y2NTJhNDA2NmRjMjk2NTI2OTA2OWFmMmY1MTc2YmI4Y2U5Y2E2ZDExZjk2NzU3ZjAzMjA0Zjc1NjcwMzU4N2QwMGFkNDI0Nzk2YzkyZmM3YWViNmY0OTQ0MzE5OTllZGEzMDk5MGU0ZjU3NzM2MzJlZDI1OGZlMDI3NjY3MzU5OWRhNmZjZTM1Y2RhZDc3MjZhMGJiMDI0Y2FkOTk2Yjg4ZTBjYjk4ODU0Y2ViNWMwYjZlYzc0OGQ5ZjljZTZhNmNkNDM3ODU4YmFjYjgxNDYxOGEyNzJmZjNhNDE1YzZlMDdmM2RiMDk4ODc3N2ZkZWM4NDVhOTdiZjdkMTAyZGQwMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMyMDIxNDU2NGQ1NTQwMjVhZjU5OWUzMjcwNzliMjcyMGVmMDBkZjM3Y2ZiN2MzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDA0NjA5OGRjNWYyYjk5ZTNiYzJlZDY2NDJkN2YwYTYxZWZhYmMxNWMzOGM3NjMzM2JjY2NlZWVlMzY5YTRmNGE1YmRkYThlYTU5MjY0MTI0ZTQyOWYwODYzMjY4M2RkYmExN2JiZjI2MmQ4MmI2YmVmYTNiNGUxNDgwMzc2YThjN2YzYzdkN2UyYTY3NzliYmYxODI2MmFhODU3ZGU4YzIwYTEyYjZhMmNlOGU0ZDdmMzFkZDFiMTk1MzkyY2Y2MTg1YWZjZTM0YWZlMDU4OTYwNTdiMzZlOWIxNzFiNmM2N2VkN2MyMjg2Y2JmYTgzZmY4YTE2N2M3YmM3MTA5YWVlN2Q3ZTE5MDliZDM4NGZiZmM2MTkzOGVmY2E1MWM4OTkzYzcxZGIzMTc3MzBmMTZlN2U3NzY4NjdhZTRmZGM1NjJkNmYxNWRlNTg1ZTdiOTRlZjQ5NmEzNjc2MzY3YTJjYmFhYjdiNjM2NjQ4YjAwNzZiYWQ1Y2RmMWUwOTc0MGVjNmE0NTFiZmY1MzRlZmEyMTUwOWYzYmE3N2I4MTAxYjkxZWE3ZTU1ZGRiZmUxNDAxNTE3MDY3ZDdiMDFhMmEwODc5ZjA4ODVjODk0YTg3Y2ZiNjhjNGQ3ZWU4OTA2MDQ4ODFhZWI5N2MyMmQxZjMzN2VmOTIzZTAzNWE2NDAwMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMzMDIxNDYyNDc3Mjk4NzU5ZThlMDQ3MThhZTU2MzE1NWYzNTIzY2ZiODRjZGIzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDZkMmNiYjM3ZmQxMjk1N2U1YTc0ODBjZTA0MzVlOGVmNjA3N2RlZjA4ZmYyNzA4NDRkZTI1MTZhNDc0MmYyMTFkOGM3NDY5MGJjMDk0OGUwOGEyOTZhYmJhOTI4NWY2YmIzMDViOTViN2Y5NDA4Y2U0NGU4Mzg4MGM3MTk0NDQ2NzJlYzk5NzQ2YmE3OGNjNGJkZTQ3NTMxOWQwMWJkZTc3YzQ5ZDU4ZDE2ZDNiMmU5MWMyZTYxZTgzMDNjYTNkN2VkYTM3OTdmZDhiMzVjYTcyYmIxNGIxNWEyNGI1NmJiNzBkYzEzNDg0NTY1ODA4MTEwZmY1ZGI1OGM1NmY3YTA0MzU2MDdlM2MzNTJmYmY0ZjU1MTA2ZjI5ODBmZDNjZDQyMzk3ZGJmNzEzN2VlN2YxZTMyY2Q4MGEzYjdhYjEyYjQ2YzE2OTIyMDI3OGQ3NzE3Yjc4YTNjNDVkNjM5NWExMzBhOGI1ODg0MWNiYzI5MGU0ZjgxN2RlM2E0ZmUxNmVjZDA3N2NhMzNhMGFhMjVlMjM1Y2M3ZjY2NTVhODBiYThhZWVjODc5MDViYjJhNzU0NTliN2JjYzVhMTMzZjI5OTM0OTNiNDFmZmNmNjNjZDdhMzkxZTNlNmY3ODA5NGNhNDQyYzgwMTQ0NDAzY2IwYTVmMDBiZmM2MWFlODgwIgogCiBQS0NTNyBQYXJzZSBGYWlsdXJlIEludmFsaWQgQVNOMTogQ2hhbmdlIHRhZyAwYyB0byAwMiAjNjA5LjAKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBwa2NzN19hc24xX2ZhaWw6IjMwODIwNDlkMDYwOTJhODY0ODg2ZjcwZDAxMDcwMmEwODIwNDhlMzA4MjA0OGEwMjAxMDEzMTBmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwYjA2MDkyYTg2NDg4NmY3MGQwMTA3MDEzMTgyMDQ2NTMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMDIwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTAyMTQ3YmRlZGRkMjQ0NGNkMWNkZmU1YzQxYTgxMDJjODliN2RmMmU2Y2JmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDA1YmVjZDg3MTk1YzFkZWZmOTBjMjRjOTEyNjliNTViM2YwNjliYzIyNWMzMjZjMzE0YzFhNTE3ODZmZmUxNGM4MzBiZTRlNGJjNzNjYmEzNmM5NzY3N2I0NDE2ODI3OWJlOTFlN2NkZjdjMTkzODZhZTIxODYyNzE5ZDEzYTNhMGZmZjA4MDNkNDYwOTYyZjJjZGE4MzcxNDg0ODczMjUyYzNkNzA1NGRiODE0M2UyYjA4MWEzODE2ZWQwODA0Y2E1MDk5YWU1ZmVjZTgzZDVjMmMzNzgzYjE5ODhiNGI0NmRjOTRlNTU1ODdhMTA3ZWExNTQ2YmYyMmQyOGEwOTdmNjUyYTQwNjZkYzI5NjUyNjkwNjlhZjJmNTE3NmJiOGNlOWNhNmQxMWY5Njc1N2YwMzIwNGY3NTY3MDM1ODdkMDBhZDQyNDc5NmM5MmZjN2FlYjZmNDk0NDMxOTk5ZWRhMzA5OTBlNGY1NzczNjMyZWQyNThmZTAyNzY2NzM1OTlkYTZmY2UzNWNkYWQ3NzI2YTBiYjAyNGNhZDk5NmI4OGUwY2I5ODg1NGNlYjVjMGI2ZWM3NDhkOWY5Y2U2YTZjZDQzNzg1OGJhY2I4MTQ2MThhMjcyZmYzYTQxNWM2ZTA3ZjNkYjA5ODg3NzdmZGVjODQ1YTk3YmY3ZDEwMmRkMDMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMjAyMTQ1NjRkNTU0MDI1YWY1OTllMzI3MDc5YjI3MjBlZjAwZGYzN2NmYjdjMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDAwNDYwOThkYzVmMmI5OWUzYmMyZWQ2NjQyZDdmMGE2MWVmYWJjMTVjMzhjNzYzMzNiY2NjZWVlZTM2OWE0ZjRhNWJkZGE4ZWE1OTI2NDEyNGU0MjlmMDg2MzI2ODNkZGJhMTdiYmYyNjJkODJiNmJlZmEzYjRlMTQ4MDM3NmE4YzdmM2M3ZDdlMmE2Nzc5YmJmMTgyNjJhYTg1N2RlOGMyMGExMmI2YTJjZThlNGQ3ZjMxZGQxYjE5NTM5MmNmNjE4NWFmY2UzNGFmZTA1ODk2MDU3YjM2ZTliMTcxYjZjNjdlZDdjMjI4NmNiZmE4M2ZmOGExNjdjN2JjNzEwOWFlZTdkN2UxOTA5YmQzODRmYmZjNjE5MzhlZmNhNTFjODk5M2M3MWRiMzE3NzMwZjE2ZTdlNzc2ODY3YWU0ZmRjNTYyZDZmMTVkZTU4NWU3Yjk0ZWY0OTZhMzY3NjM2N2EyY2JhYWI3YjYzNjY0OGIwMDc2YmFkNWNkZjFlMDk3NDBlYzZhNDUxYmZmNTM0ZWZhMjE1MDlmM2JhNzdiODEwMWI5MWVhN2U1NWRkYmZlMTQwMTUxNzA2N2Q3YjAxYTJhMDg3OWYwODg1Yzg5NGE4N2NmYjY4YzRkN2VlODkwNjA0ODgxYWViOTdjMjJkMWYzMzdlZjkyM2UwMzVhNjQwMDMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMzAyMTQ2MjQ3NzI5ODc1OWU4ZTA0NzE4YWU1NjMxNTVmMzUyM2NmYjg0Y2RiMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDA2ZDJjYmIzN2ZkMTI5NTdlNWE3NDgwY2UwNDM1ZThlZjYwNzdkZWYwOGZmMjcwODQ0ZGUyNTE2YTQ3NDJmMjExZDhjNzQ2OTBiYzA5NDhlMDhhMjk2YWJiYTkyODVmNmJiMzA1Yjk1YjdmOTQwOGNlNDRlODM4ODBjNzE5NDQ0NjcyZWM5OTc0NmJhNzhjYzRiZGU0NzUzMTlkMDFiZGU3N2M0OWQ1OGQxNmQzYjJlOTFjMmU2MWU4MzAzY2EzZDdlZGEzNzk3ZmQ4YjM1Y2E3MmJiMTRiMTVhMjRiNTZiYjcwZGMxMzQ4NDU2NTgwODExMGZmNWRiNThjNTZmN2EwNDM1NjA3ZTNjMzUyZmJmNGY1NTEwNmYyOTgwZmQzY2Q0MjM5N2RiZjcxMzdlZTdmMWUzMmNkODBhM2I3YWIxMmI0NmMxNjkyMjAyNzhkNzcxN2I3OGEzYzQ1ZDYzOTVhMTMwYThiNTg4NDFjYmMyOTBlNGY4MTdkZTNhNGZlMTZlY2QwNzdjYTMzYTBhYTI1ZTIzNWNjN2Y2NjU1YTgwYmE4YWVlYzg3OTA1YmIyYTc1NDU5YjdiY2M1YTEzM2YyOTkzNDkzYjQxZmZjZjYzY2Q3YTM5MWUzZTZmNzgwOTRjYTQ0MmM4MDE0NDQwM2NiMGE1ZjAwYmZjNjFhZTg4MCIKIAogUEtDUzcgUGFyc2UgRmFpbHVyZSBJbnZhbGlkIEFTTjE6IENoYW5nZSBsZW5ndGggZnJvbSAxMiB0byAxMyAjNjEwLjAKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBwa2NzN19hc24xX2ZhaWw6IjMwODIwNDlkMDYwOTJhODY0ODg2ZjcwZDAxMDcwMmEwODIwNDhlMzA4MjA0OGEwMjAxMDEzMTBmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwYjA2MDkyYTg2NDg4NmY3MGQwMTA3MDEzMTgyMDQ2NTMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwZDUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTAyMTQ3YmRlZGRkMjQ0NGNkMWNkZmU1YzQxYTgxMDJjODliN2RmMmU2Y2JmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDA1YmVjZDg3MTk1YzFkZWZmOTBjMjRjOTEyNjliNTViM2YwNjliYzIyNWMzMjZjMzE0YzFhNTE3ODZmZmUxNGM4MzBiZTRlNGJjNzNjYmEzNmM5NzY3N2I0NDE2ODI3OWJlOTFlN2NkZjdjMTkzODZhZTIxODYyNzE5ZDEzYTNhMGZmZjA4MDNkNDYwOTYyZjJjZGE4MzcxNDg0ODczMjUyYzNkNzA1NGRiODE0M2UyYjA4MWEzODE2ZWQwODA0Y2E1MDk5YWU1ZmVjZTgzZDVjMmMzNzgzYjE5ODhiNGI0NmRjOTRlNTU1ODdhMTA3ZWExNTQ2YmYyMmQyOGEwOTdmNjUyYTQwNjZkYzI5NjUyNjkwNjlhZjJmNTE3NmJiOGNlOWNhNmQxMWY5Njc1N2YwMzIwNGY3NTY3MDM1ODdkMDBhZDQyNDc5NmM5MmZjN2FlYjZmNDk0NDMxOTk5ZWRhMzA5OTBlNGY1NzczNjMyZWQyNThmZTAyNzY2NzM1OTlkYTZmY2UzNWNkYWQ3NzI2YTBiYjAyNGNhZDk5NmI4OGUwY2I5ODg1NGNlYjVjMGI2ZWM3NDhkOWY5Y2U2YTZjZDQzNzg1OGJhY2I4MTQ2MThhMjcyZmYzYTQxNWM2ZTA3ZjNkYjA5ODg3NzdmZGVjODQ1YTk3YmY3ZDEwMmRkMDMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMjAyMTQ1NjRkNTU0MDI1YWY1OTllMzI3MDc5YjI3MjBlZjAwZGYzN2NmYjdjMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDAwNDYwOThkYzVmMmI5OWUzYmMyZWQ2NjQyZDdmMGE2MWVmYWJjMTVjMzhjNzYzMzNiY2NjZWVlZTM2OWE0ZjRhNWJkZGE4ZWE1OTI2NDEyNGU0MjlmMDg2MzI2ODNkZGJhMTdiYmYyNjJkODJiNmJlZmEzYjRlMTQ4MDM3NmE4YzdmM2M3ZDdlMmE2Nzc5YmJmMTgyNjJhYTg1N2RlOGMyMGExMmI2YTJjZThlNGQ3ZjMxZGQxYjE5NTM5MmNmNjE4NWFmY2UzNGFmZTA1ODk2MDU3YjM2ZTliMTcxYjZjNjdlZDdjMjI4NmNiZmE4M2ZmOGExNjdjN2JjNzEwOWFlZTdkN2UxOTA5YmQzODRmYmZjNjE5MzhlZmNhNTFjODk5M2M3MWRiMzE3NzMwZjE2ZTdlNzc2ODY3YWU0ZmRjNTYyZDZmMTVkZTU4NWU3Yjk0ZWY0OTZhMzY3NjM2N2EyY2JhYWI3YjYzNjY0OGIwMDc2YmFkNWNkZjFlMDk3NDBlYzZhNDUxYmZmNTM0ZWZhMjE1MDlmM2JhNzdiODEwMWI5MWVhN2U1NWRkYmZlMTQwMTUxNzA2N2Q3YjAxYTJhMDg3OWYwODg1Yzg5NGE4N2NmYjY4YzRkN2VlODkwNjA0ODgxYWViOTdjMjJkMWYzMzdlZjkyM2UwMzVhNjQwMDMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMzAyMTQ2MjQ3NzI5ODc1OWU4ZTA0NzE4YWU1NjMxNTVmMzUyM2NmYjg0Y2RiMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDA2ZDJjYmIzN2ZkMTI5NTdlNWE3NDgwY2UwNDM1ZThlZjYwNzdkZWYwOGZmMjcwODQ0ZGUyNTE2YTQ3NDJmMjExZDhjNzQ2OTBiYzA5NDhlMDhhMjk2YWJiYTkyODVmNmJiMzA1Yjk1YjdmOTQwOGNlNDRlODM4ODBjNzE5NDQ0NjcyZWM5OTc0NmJhNzhjYzRiZGU0NzUzMTlkMDFiZGU3N2M0OWQ1OGQxNmQzYjJlOTFjMmU2MWU4MzAzY2EzZDdlZGEzNzk3ZmQ4YjM1Y2E3MmJiMTRiMTVhMjRiNTZiYjcwZGMxMzQ4NDU2NTgwODExMGZmNWRiNThjNTZmN2EwNDM1NjA3ZTNjMzUyZmJmNGY1NTEwNmYyOTgwZmQzY2Q0MjM5N2RiZjcxMzdlZTdmMWUzMmNkODBhM2I3YWIxMmI0NmMxNjkyMjAyNzhkNzcxN2I3OGEzYzQ1ZDYzOTVhMTMwYThiNTg4NDFjYmMyOTBlNGY4MTdkZTNhNGZlMTZlY2QwNzdjYTMzYTBhYTI1ZTIzNWNjN2Y2NjU1YTgwYmE4YWVlYzg3OTA1YmIyYTc1NDU5YjdiY2M1YTEzM2YyOTkzNDkzYjQxZmZjZjYzY2Q3YTM5MWUzZTZmNzgwOTRjYTQ0MmM4MDE0NDQwM2NiMGE1ZjAwYmZjNjFhZTg4MCIKIAogUEtDUzcgUGFyc2UgRmFpbHVyZSBJbnZhbGlkIEFTTjE6IENoYW5nZSBsZW5ndGggZnJvbSAxMiB0byAxMSAjNjExLjAKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBwa2NzN19hc24xX2ZhaWw6IjMwODIwNDlkMDYwOTJhODY0ODg2ZjcwZDAxMDcwMmEwODIwNDhlMzA4MjA0OGEwMjAxMDEzMTBmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwYjA2MDkyYTg2NDg4NmY3MGQwMTA3MDEzMTgyMDQ2NTMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYjUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTAyMTQ3YmRlZGRkMjQ0NGNkMWNkZmU1YzQxYTgxMDJjODliN2RmMmU2Y2JmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDA1YmVjZDg3MTk1YzFkZWZmOTBjMjRjOTEyNjliNTViM2YwNjliYzIyNWMzMjZjMzE0YzFhNTE3ODZmZmUxNGM4MzBiZTRlNGJjNzNjYmEzNmM5NzY3N2I0NDE2ODI3OWJlOTFlN2NkZjdjMTkzODZhZTIxODYyNzE5ZDEzYTNhMGZmZjA4MDNkNDYwOTYyZjJjZGE4MzcxNDg0ODczMjUyYzNkNzA1NGRiODE0M2UyYjA4MWEzODE2ZWQwODA0Y2E1MDk5YWU1ZmVjZTgzZDVjMmMzNzgzYjE5ODhiNGI0NmRjOTRlNTU1ODdhMTA3ZWExNTQ2YmYyMmQyOGEwOTdmNjUyYTQwNjZkYzI5NjUyNjkwNjlhZjJmNTE3NmJiOGNlOWNhNmQxMWY5Njc1N2YwMzIwNGY3NTY3MDM1ODdkMDBhZDQyNDc5NmM5MmZjN2FlYjZmNDk0NDMxOTk5ZWRhMzA5OTBlNGY1NzczNjMyZWQyNThmZTAyNzY2NzM1OTlkYTZmY2UzNWNkYWQ3NzI2YTBiYjAyNGNhZDk5NmI4OGUwY2I5ODg1NGNlYjVjMGI2ZWM3NDhkOWY5Y2U2YTZjZDQzNzg1OGJhY2I4MTQ2MThhMjcyZmYzYTQxNWM2ZTA3ZjNkYjA5ODg3NzdmZGVjODQ1YTk3YmY3ZDEwMmRkMDMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMjAyMTQ1NjRkNTU0MDI1YWY1OTllMzI3MDc5YjI3MjBlZjAwZGYzN2NmYjdjMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDAwNDYwOThkYzVmMmI5OWUzYmMyZWQ2NjQyZDdmMGE2MWVmYWJjMTVjMzhjNzYzMzNiY2NjZWVlZTM2OWE0ZjRhNWJkZGE4ZWE1OTI2NDEyNGU0MjlmMDg2MzI2ODNkZGJhMTdiYmYyNjJkODJiNmJlZmEzYjRlMTQ4MDM3NmE4YzdmM2M3ZDdlMmE2Nzc5YmJmMTgyNjJhYTg1N2RlOGMyMGExMmI2YTJjZThlNGQ3ZjMxZGQxYjE5NTM5MmNmNjE4NWFmY2UzNGFmZTA1ODk2MDU3YjM2ZTliMTcxYjZjNjdlZDdjMjI4NmNiZmE4M2ZmOGExNjdjN2JjNzEwOWFlZTdkN2UxOTA5YmQzODRmYmZjNjE5MzhlZmNhNTFjODk5M2M3MWRiMzE3NzMwZjE2ZTdlNzc2ODY3YWU0ZmRjNTYyZDZmMTVkZTU4NWU3Yjk0ZWY0OTZhMzY3NjM2N2EyY2JhYWI3YjYzNjY0OGIwMDc2YmFkNWNkZjFlMDk3NDBlYzZhNDUxYmZmNTM0ZWZhMjE1MDlmM2JhNzdiODEwMWI5MWVhN2U1NWRkYmZlMTQwMTUxNzA2N2Q3YjAxYTJhMDg3OWYwODg1Yzg5NGE4N2NmYjY4YzRkN2VlODkwNjA0ODgxYWViOTdjMjJkMWYzMzdlZjkyM2UwMzVhNjQwMDMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMzAyMTQ2MjQ3NzI5ODc1OWU4ZTA0NzE4YWU1NjMxNTVmMzUyM2NmYjg0Y2RiMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDA2ZDJjYmIzN2ZkMTI5NTdlNWE3NDgwY2UwNDM1ZThlZjYwNzdkZWYwOGZmMjcwODQ0ZGUyNTE2YTQ3NDJmMjExZDhjNzQ2OTBiYzA5NDhlMDhhMjk2YWJiYTkyODVmNmJiMzA1Yjk1YjdmOTQwOGNlNDRlODM4ODBjNzE5NDQ0NjcyZWM5OTc0NmJhNzhjYzRiZGU0NzUzMTlkMDFiZGU3N2M0OWQ1OGQxNmQzYjJlOTFjMmU2MWU4MzAzY2EzZDdlZGEzNzk3ZmQ4YjM1Y2E3MmJiMTRiMTVhMjRiNTZiYjcwZGMxMzQ4NDU2NTgwODExMGZmNWRiNThjNTZmN2EwNDM1NjA3ZTNjMzUyZmJmNGY1NTEwNmYyOTgwZmQzY2Q0MjM5N2RiZjcxMzdlZTdmMWUzMmNkODBhM2I3YWIxMmI0NmMxNjkyMjAyNzhkNzcxN2I3OGEzYzQ1ZDYzOTVhMTMwYThiNTg4NDFjYmMyOTBlNGY4MTdkZTNhNGZlMTZlY2QwNzdjYTMzYTBhYTI1ZTIzNWNjN2Y2NjU1YTgwYmE4YWVlYzg3OTA1YmIyYTc1NDU5YjdiY2M1YTEzM2YyOTkzNDkzYjQxZmZjZjYzY2Q3YTM5MWUzZTZmNzgwOTRjYTQ0MmM4MDE0NDQwM2NiMGE1ZjAwYmZjNjFhZTg4MCIKIAogUEtDUzcgUGFyc2UgRmFpbHVyZSBJbnZhbGlkIEFTTjE6IENoYW5nZSB0YWcgMDIgdG8gMDQgIzYxMi4wCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NgogcGtjczdfYXNuMV9mYWlsOiIzMDgyMDQ5ZDA2MDkyYTg2NDg4NmY3MGQwMTA3MDJhMDgyMDQ4ZTMwODIwNDhhMDIwMTAxMzEwZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGIwNjA5MmE4NjQ4ODZmNzBkMDEwNzAxMzE4MjA0NjUzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEwNDE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwNWJlY2Q4NzE5NWMxZGVmZjkwYzI0YzkxMjY5YjU1YjNmMDY5YmMyMjVjMzI2YzMxNGMxYTUxNzg2ZmZlMTRjODMwYmU0ZTRiYzczY2JhMzZjOTc2NzdiNDQxNjgyNzliZTkxZTdjZGY3YzE5Mzg2YWUyMTg2MjcxOWQxM2EzYTBmZmYwODAzZDQ2MDk2MmYyY2RhODM3MTQ4NDg3MzI1MmMzZDcwNTRkYjgxNDNlMmIwODFhMzgxNmVkMDgwNGNhNTA5OWFlNWZlY2U4M2Q1YzJjMzc4M2IxOTg4YjRiNDZkYzk0ZTU1NTg3YTEwN2VhMTU0NmJmMjJkMjhhMDk3ZjY1MmE0MDY2ZGMyOTY1MjY5MDY5YWYyZjUxNzZiYjhjZTljYTZkMTFmOTY3NTdmMDMyMDRmNzU2NzAzNTg3ZDAwYWQ0MjQ3OTZjOTJmYzdhZWI2ZjQ5NDQzMTk5OWVkYTMwOTkwZTRmNTc3MzYzMmVkMjU4ZmUwMjc2NjczNTk5ZGE2ZmNlMzVjZGFkNzcyNmEwYmIwMjRjYWQ5OTZiODhlMGNiOTg4NTRjZWI1YzBiNmVjNzQ4ZDlmOWNlNmE2Y2Q0Mzc4NThiYWNiODE0NjE4YTI3MmZmM2E0MTVjNmUwN2YzZGIwOTg4Nzc3ZmRlYzg0NWE5N2JmN2QxMDJkZDAzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzIwMjE0NTY0ZDU1NDAyNWFmNTk5ZTMyNzA3OWIyNzIwZWYwMGRmMzdjZmI3YzMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwMDQ2MDk4ZGM1ZjJiOTllM2JjMmVkNjY0MmQ3ZjBhNjFlZmFiYzE1YzM4Yzc2MzMzYmNjY2VlZWUzNjlhNGY0YTViZGRhOGVhNTkyNjQxMjRlNDI5ZjA4NjMyNjgzZGRiYTE3YmJmMjYyZDgyYjZiZWZhM2I0ZTE0ODAzNzZhOGM3ZjNjN2Q3ZTJhNjc3OWJiZjE4MjYyYWE4NTdkZThjMjBhMTJiNmEyY2U4ZTRkN2YzMWRkMWIxOTUzOTJjZjYxODVhZmNlMzRhZmUwNTg5NjA1N2IzNmU5YjE3MWI2YzY3ZWQ3YzIyODZjYmZhODNmZjhhMTY3YzdiYzcxMDlhZWU3ZDdlMTkwOWJkMzg0ZmJmYzYxOTM4ZWZjYTUxYzg5OTNjNzFkYjMxNzczMGYxNmU3ZTc3Njg2N2FlNGZkYzU2MmQ2ZjE1ZGU1ODVlN2I5NGVmNDk2YTM2NzYzNjdhMmNiYWFiN2I2MzY2NDhiMDA3NmJhZDVjZGYxZTA5NzQwZWM2YTQ1MWJmZjUzNGVmYTIxNTA5ZjNiYTc3YjgxMDFiOTFlYTdlNTVkZGJmZTE0MDE1MTcwNjdkN2IwMWEyYTA4NzlmMDg4NWM4OTRhODdjZmI2OGM0ZDdlZTg5MDYwNDg4MWFlYjk3YzIyZDFmMzM3ZWY5MjNlMDM1YTY0MDAzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzMwMjE0NjI0NzcyOTg3NTllOGUwNDcxOGFlNTYzMTU1ZjM1MjNjZmI4NGNkYjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwNmQyY2JiMzdmZDEyOTU3ZTVhNzQ4MGNlMDQzNWU4ZWY2MDc3ZGVmMDhmZjI3MDg0NGRlMjUxNmE0NzQyZjIxMWQ4Yzc0NjkwYmMwOTQ4ZTA4YTI5NmFiYmE5Mjg1ZjZiYjMwNWI5NWI3Zjk0MDhjZTQ0ZTgzODgwYzcxOTQ0NDY3MmVjOTk3NDZiYTc4Y2M0YmRlNDc1MzE5ZDAxYmRlNzdjNDlkNThkMTZkM2IyZTkxYzJlNjFlODMwM2NhM2Q3ZWRhMzc5N2ZkOGIzNWNhNzJiYjE0YjE1YTI0YjU2YmI3MGRjMTM0ODQ1NjU4MDgxMTBmZjVkYjU4YzU2ZjdhMDQzNTYwN2UzYzM1MmZiZjRmNTUxMDZmMjk4MGZkM2NkNDIzOTdkYmY3MTM3ZWU3ZjFlMzJjZDgwYTNiN2FiMTJiNDZjMTY5MjIwMjc4ZDc3MTdiNzhhM2M0NWQ2Mzk1YTEzMGE4YjU4ODQxY2JjMjkwZTRmODE3ZGUzYTRmZTE2ZWNkMDc3Y2EzM2EwYWEyNWUyMzVjYzdmNjY1NWE4MGJhOGFlZWM4NzkwNWJiMmE3NTQ1OWI3YmNjNWExMzNmMjk5MzQ5M2I0MWZmY2Y2M2NkN2EzOTFlM2U2Zjc4MDk0Y2E0NDJjODAxNDQ0MDNjYjBhNWYwMGJmYzYxYWU4ODAiCiAKIFBLQ1M3IFBhcnNlIEZhaWx1cmUgSW52YWxpZCBBU04xOiBDaGFuZ2UgbGVuZ3RoIGZyb20gMjAgdG8gMjEgIzYxMy4wCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NgogcGtjczdfYXNuMV9mYWlsOiIzMDgyMDQ5ZDA2MDkyYTg2NDg4NmY3MGQwMTA3MDJhMDgyMDQ4ZTMwODIwNDhhMDIwMTAxMzEwZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGIwNjA5MmE4NjQ4ODZmNzBkMDEwNzAxMzE4MjA0NjUzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEwMjE1N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwNWJlY2Q4NzE5NWMxZGVmZjkwYzI0YzkxMjY5YjU1YjNmMDY5YmMyMjVjMzI2YzMxNGMxYTUxNzg2ZmZlMTRjODMwYmU0ZTRiYzczY2JhMzZjOTc2NzdiNDQxNjgyNzliZTkxZTdjZGY3YzE5Mzg2YWUyMTg2MjcxOWQxM2EzYTBmZmYwODAzZDQ2MDk2MmYyY2RhODM3MTQ4NDg3MzI1MmMzZDcwNTRkYjgxNDNlMmIwODFhMzgxNmVkMDgwNGNhNTA5OWFlNWZlY2U4M2Q1YzJjMzc4M2IxOTg4YjRiNDZkYzk0ZTU1NTg3YTEwN2VhMTU0NmJmMjJkMjhhMDk3ZjY1MmE0MDY2ZGMyOTY1MjY5MDY5YWYyZjUxNzZiYjhjZTljYTZkMTFmOTY3NTdmMDMyMDRmNzU2NzAzNTg3ZDAwYWQ0MjQ3OTZjOTJmYzdhZWI2ZjQ5NDQzMTk5OWVkYTMwOTkwZTRmNTc3MzYzMmVkMjU4ZmUwMjc2NjczNTk5ZGE2ZmNlMzVjZGFkNzcyNmEwYmIwMjRjYWQ5OTZiODhlMGNiOTg4NTRjZWI1YzBiNmVjNzQ4ZDlmOWNlNmE2Y2Q0Mzc4NThiYWNiODE0NjE4YTI3MmZmM2E0MTVjNmUwN2YzZGIwOTg4Nzc3ZmRlYzg0NWE5N2JmN2QxMDJkZDAzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzIwMjE0NTY0ZDU1NDAyNWFmNTk5ZTMyNzA3OWIyNzIwZWYwMGRmMzdjZmI3YzMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwMDQ2MDk4ZGM1ZjJiOTllM2JjMmVkNjY0MmQ3ZjBhNjFlZmFiYzE1YzM4Yzc2MzMzYmNjY2VlZWUzNjlhNGY0YTViZGRhOGVhNTkyNjQxMjRlNDI5ZjA4NjMyNjgzZGRiYTE3YmJmMjYyZDgyYjZiZWZhM2I0ZTE0ODAzNzZhOGM3ZjNjN2Q3ZTJhNjc3OWJiZjE4MjYyYWE4NTdkZThjMjBhMTJiNmEyY2U4ZTRkN2YzMWRkMWIxOTUzOTJjZjYxODVhZmNlMzRhZmUwNTg5NjA1N2IzNmU5YjE3MWI2YzY3ZWQ3YzIyODZjYmZhODNmZjhhMTY3YzdiYzcxMDlhZWU3ZDdlMTkwOWJkMzg0ZmJmYzYxOTM4ZWZjYTUxYzg5OTNjNzFkYjMxNzczMGYxNmU3ZTc3Njg2N2FlNGZkYzU2MmQ2ZjE1ZGU1ODVlN2I5NGVmNDk2YTM2NzYzNjdhMmNiYWFiN2I2MzY2NDhiMDA3NmJhZDVjZGYxZTA5NzQwZWM2YTQ1MWJmZjUzNGVmYTIxNTA5ZjNiYTc3YjgxMDFiOTFlYTdlNTVkZGJmZTE0MDE1MTcwNjdkN2IwMWEyYTA4NzlmMDg4NWM4OTRhODdjZmI2OGM0ZDdlZTg5MDYwNDg4MWFlYjk3YzIyZDFmMzM3ZWY5MjNlMDM1YTY0MDAzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzMwMjE0NjI0NzcyOTg3NTllOGUwNDcxOGFlNTYzMTU1ZjM1MjNjZmI4NGNkYjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwNmQyY2JiMzdmZDEyOTU3ZTVhNzQ4MGNlMDQzNWU4ZWY2MDc3ZGVmMDhmZjI3MDg0NGRlMjUxNmE0NzQyZjIxMWQ4Yzc0NjkwYmMwOTQ4ZTA4YTI5NmFiYmE5Mjg1ZjZiYjMwNWI5NWI3Zjk0MDhjZTQ0ZTgzODgwYzcxOTQ0NDY3MmVjOTk3NDZiYTc4Y2M0YmRlNDc1MzE5ZDAxYmRlNzdjNDlkNThkMTZkM2IyZTkxYzJlNjFlODMwM2NhM2Q3ZWRhMzc5N2ZkOGIzNWNhNzJiYjE0YjE1YTI0YjU2YmI3MGRjMTM0ODQ1NjU4MDgxMTBmZjVkYjU4YzU2ZjdhMDQzNTYwN2UzYzM1MmZiZjRmNTUxMDZmMjk4MGZkM2NkNDIzOTdkYmY3MTM3ZWU3ZjFlMzJjZDgwYTNiN2FiMTJiNDZjMTY5MjIwMjc4ZDc3MTdiNzhhM2M0NWQ2Mzk1YTEzMGE4YjU4ODQxY2JjMjkwZTRmODE3ZGUzYTRmZTE2ZWNkMDc3Y2EzM2EwYWEyNWUyMzVjYzdmNjY1NWE4MGJhOGFlZWM4NzkwNWJiMmE3NTQ1OWI3YmNjNWExMzNmMjk5MzQ5M2I0MWZmY2Y2M2NkN2EzOTFlM2U2Zjc4MDk0Y2E0NDJjODAxNDQ0MDNjYjBhNWYwMGJmYzYxYWU4ODAiCiAKIFBLQ1M3IFBhcnNlIEZhaWx1cmUgSW52YWxpZCBBU04xOiBDaGFuZ2UgbGVuZ3RoIGZyb20gMjAgdG8gMTkgIzYxNC4wCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NgogcGtjczdfYXNuMV9mYWlsOiIzMDgyMDQ5ZDA2MDkyYTg2NDg4NmY3MGQwMTA3MDJhMDgyMDQ4ZTMwODIwNDhhMDIwMTAxMzEwZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGIwNjA5MmE4NjQ4ODZmNzBkMDEwNzAxMzE4MjA0NjUzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEwMjEzN2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwNWJlY2Q4NzE5NWMxZGVmZjkwYzI0YzkxMjY5YjU1YjNmMDY5YmMyMjVjMzI2YzMxNGMxYTUxNzg2ZmZlMTRjODMwYmU0ZTRiYzczY2JhMzZjOTc2NzdiNDQxNjgyNzliZTkxZTdjZGY3YzE5Mzg2YWUyMTg2MjcxOWQxM2EzYTBmZmYwODAzZDQ2MDk2MmYyY2RhODM3MTQ4NDg3MzI1MmMzZDcwNTRkYjgxNDNlMmIwODFhMzgxNmVkMDgwNGNhNTA5OWFlNWZlY2U4M2Q1YzJjMzc4M2IxOTg4YjRiNDZkYzk0ZTU1NTg3YTEwN2VhMTU0NmJmMjJkMjhhMDk3ZjY1MmE0MDY2ZGMyOTY1MjY5MDY5YWYyZjUxNzZiYjhjZTljYTZkMTFmOTY3NTdmMDMyMDRmNzU2NzAzNTg3ZDAwYWQ0MjQ3OTZjOTJmYzdhZWI2ZjQ5NDQzMTk5OWVkYTMwOTkwZTRmNTc3MzYzMmVkMjU4ZmUwMjc2NjczNTk5ZGE2ZmNlMzVjZGFkNzcyNmEwYmIwMjRjYWQ5OTZiODhlMGNiOTg4NTRjZWI1YzBiNmVjNzQ4ZDlmOWNlNmE2Y2Q0Mzc4NThiYWNiODE0NjE4YTI3MmZmM2E0MTVjNmUwN2YzZGIwOTg4Nzc3ZmRlYzg0NWE5N2JmN2QxMDJkZDAzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzIwMjE0NTY0ZDU1NDAyNWFmNTk5ZTMyNzA3OWIyNzIwZWYwMGRmMzdjZmI3YzMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwMDQ2MDk4ZGM1ZjJiOTllM2JjMmVkNjY0MmQ3ZjBhNjFlZmFiYzE1YzM4Yzc2MzMzYmNjY2VlZWUzNjlhNGY0YTViZGRhOGVhNTkyNjQxMjRlNDI5ZjA4NjMyNjgzZGRiYTE3YmJmMjYyZDgyYjZiZWZhM2I0ZTE0ODAzNzZhOGM3ZjNjN2Q3ZTJhNjc3OWJiZjE4MjYyYWE4NTdkZThjMjBhMTJiNmEyY2U4ZTRkN2YzMWRkMWIxOTUzOTJjZjYxODVhZmNlMzRhZmUwNTg5NjA1N2IzNmU5YjE3MWI2YzY3ZWQ3YzIyODZjYmZhODNmZjhhMTY3YzdiYzcxMDlhZWU3ZDdlMTkwOWJkMzg0ZmJmYzYxOTM4ZWZjYTUxYzg5OTNjNzFkYjMxNzczMGYxNmU3ZTc3Njg2N2FlNGZkYzU2MmQ2ZjE1ZGU1ODVlN2I5NGVmNDk2YTM2NzYzNjdhMmNiYWFiN2I2MzY2NDhiMDA3NmJhZDVjZGYxZTA5NzQwZWM2YTQ1MWJmZjUzNGVmYTIxNTA5ZjNiYTc3YjgxMDFiOTFlYTdlNTVkZGJmZTE0MDE1MTcwNjdkN2IwMWEyYTA4NzlmMDg4NWM4OTRhODdjZmI2OGM0ZDdlZTg5MDYwNDg4MWFlYjk3YzIyZDFmMzM3ZWY5MjNlMDM1YTY0MDAzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzMwMjE0NjI0NzcyOTg3NTllOGUwNDcxOGFlNTYzMTU1ZjM1MjNjZmI4NGNkYjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwNmQyY2JiMzdmZDEyOTU3ZTVhNzQ4MGNlMDQzNWU4ZWY2MDc3ZGVmMDhmZjI3MDg0NGRlMjUxNmE0NzQyZjIxMWQ4Yzc0NjkwYmMwOTQ4ZTA4YTI5NmFiYmE5Mjg1ZjZiYjMwNWI5NWI3Zjk0MDhjZTQ0ZTgzODgwYzcxOTQ0NDY3MmVjOTk3NDZiYTc4Y2M0YmRlNDc1MzE5ZDAxYmRlNzdjNDlkNThkMTZkM2IyZTkxYzJlNjFlODMwM2NhM2Q3ZWRhMzc5N2ZkOGIzNWNhNzJiYjE0YjE1YTI0YjU2YmI3MGRjMTM0ODQ1NjU4MDgxMTBmZjVkYjU4YzU2ZjdhMDQzNTYwN2UzYzM1MmZiZjRmNTUxMDZmMjk4MGZkM2NkNDIzOTdkYmY3MTM3ZWU3ZjFlMzJjZDgwYTNiN2FiMTJiNDZjMTY5MjIwMjc4ZDc3MTdiNzhhM2M0NWQ2Mzk1YTEzMGE4YjU4ODQxY2JjMjkwZTRmODE3ZGUzYTRmZTE2ZWNkMDc3Y2EzM2EwYWEyNWUyMzVjYzdmNjY1NWE4MGJhOGFlZWM4NzkwNWJiMmE3NTQ1OWI3YmNjNWExMzNmMjk5MzQ5M2I0MWZmY2Y2M2NkN2EzOTFlM2U2Zjc4MDk0Y2E0NDJjODAxNDQ0MDNjYjBhNWYwMGJmYzYxYWU4ODAiCiAKIFBLQ1M3IFBhcnNlIEZhaWx1cmUgSW52YWxpZCBBU04xOiBDaGFuZ2UgdGFnIDMwIHRvIDAyICM2MTUuMAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHBrY3M3X2FzbjFfZmFpbDoiMzA4MjA0OWQwNjA5MmE4NjQ4ODZmNzBkMDEwNzAyYTA4MjA0OGUzMDgyMDQ4YTAyMDEwMTMxMGYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBiMDYwOTJhODY0ODg2ZjcwZDAxMDcwMTMxODIwNDY1MzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYwMjBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDViZWNkODcxOTVjMWRlZmY5MGMyNGM5MTI2OWI1NWIzZjA2OWJjMjI1YzMyNmMzMTRjMWE1MTc4NmZmZTE0YzgzMGJlNGU0YmM3M2NiYTM2Yzk3Njc3YjQ0MTY4Mjc5YmU5MWU3Y2RmN2MxOTM4NmFlMjE4NjI3MTlkMTNhM2EwZmZmMDgwM2Q0NjA5NjJmMmNkYTgzNzE0ODQ4NzMyNTJjM2Q3MDU0ZGI4MTQzZTJiMDgxYTM4MTZlZDA4MDRjYTUwOTlhZTVmZWNlODNkNWMyYzM3ODNiMTk4OGI0YjQ2ZGM5NGU1NTU4N2ExMDdlYTE1NDZiZjIyZDI4YTA5N2Y2NTJhNDA2NmRjMjk2NTI2OTA2OWFmMmY1MTc2YmI4Y2U5Y2E2ZDExZjk2NzU3ZjAzMjA0Zjc1NjcwMzU4N2QwMGFkNDI0Nzk2YzkyZmM3YWViNmY0OTQ0MzE5OTllZGEzMDk5MGU0ZjU3NzM2MzJlZDI1OGZlMDI3NjY3MzU5OWRhNmZjZTM1Y2RhZDc3MjZhMGJiMDI0Y2FkOTk2Yjg4ZTBjYjk4ODU0Y2ViNWMwYjZlYzc0OGQ5ZjljZTZhNmNkNDM3ODU4YmFjYjgxNDYxOGEyNzJmZjNhNDE1YzZlMDdmM2RiMDk4ODc3N2ZkZWM4NDVhOTdiZjdkMTAyZGQwMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMyMDIxNDU2NGQ1NTQwMjVhZjU5OWUzMjcwNzliMjcyMGVmMDBkZjM3Y2ZiN2MzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDA0NjA5OGRjNWYyYjk5ZTNiYzJlZDY2NDJkN2YwYTYxZWZhYmMxNWMzOGM3NjMzM2JjY2NlZWVlMzY5YTRmNGE1YmRkYThlYTU5MjY0MTI0ZTQyOWYwODYzMjY4M2RkYmExN2JiZjI2MmQ4MmI2YmVmYTNiNGUxNDgwMzc2YThjN2YzYzdkN2UyYTY3NzliYmYxODI2MmFhODU3ZGU4YzIwYTEyYjZhMmNlOGU0ZDdmMzFkZDFiMTk1MzkyY2Y2MTg1YWZjZTM0YWZlMDU4OTYwNTdiMzZlOWIxNzFiNmM2N2VkN2MyMjg2Y2JmYTgzZmY4YTE2N2M3YmM3MTA5YWVlN2Q3ZTE5MDliZDM4NGZiZmM2MTkzOGVmY2E1MWM4OTkzYzcxZGIzMTc3MzBmMTZlN2U3NzY4NjdhZTRmZGM1NjJkNmYxNWRlNTg1ZTdiOTRlZjQ5NmEzNjc2MzY3YTJjYmFhYjdiNjM2NjQ4YjAwNzZiYWQ1Y2RmMWUwOTc0MGVjNmE0NTFiZmY1MzRlZmEyMTUwOWYzYmE3N2I4MTAxYjkxZWE3ZTU1ZGRiZmUxNDAxNTE3MDY3ZDdiMDFhMmEwODc5ZjA4ODVjODk0YTg3Y2ZiNjhjNGQ3ZWU4OTA2MDQ4ODFhZWI5N2MyMmQxZjMzN2VmOTIzZTAzNWE2NDAwMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMzMDIxNDYyNDc3Mjk4NzU5ZThlMDQ3MThhZTU2MzE1NWYzNTIzY2ZiODRjZGIzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDZkMmNiYjM3ZmQxMjk1N2U1YTc0ODBjZTA0MzVlOGVmNjA3N2RlZjA4ZmYyNzA4NDRkZTI1MTZhNDc0MmYyMTFkOGM3NDY5MGJjMDk0OGUwOGEyOTZhYmJhOTI4NWY2YmIzMDViOTViN2Y5NDA4Y2U0NGU4Mzg4MGM3MTk0NDQ2NzJlYzk5NzQ2YmE3OGNjNGJkZTQ3NTMxOWQwMWJkZTc3YzQ5ZDU4ZDE2ZDNiMmU5MWMyZTYxZTgzMDNjYTNkN2VkYTM3OTdmZDhiMzVjYTcyYmIxNGIxNWEyNGI1NmJiNzBkYzEzNDg0NTY1ODA4MTEwZmY1ZGI1OGM1NmY3YTA0MzU2MDdlM2MzNTJmYmY0ZjU1MTA2ZjI5ODBmZDNjZDQyMzk3ZGJmNzEzN2VlN2YxZTMyY2Q4MGEzYjdhYjEyYjQ2YzE2OTIyMDI3OGQ3NzE3Yjc4YTNjNDVkNjM5NWExMzBhOGI1ODg0MWNiYzI5MGU0ZjgxN2RlM2E0ZmUxNmVjZDA3N2NhMzNhMGFhMjVlMjM1Y2M3ZjY2NTVhODBiYThhZWVjODc5MDViYjJhNzU0NTliN2JjYzVhMTMzZjI5OTM0OTNiNDFmZmNmNjNjZDdhMzkxZTNlNmY3ODA5NGNhNDQyYzgwMTQ0NDAzY2IwYTVmMDBiZmM2MWFlODgwIgogCiBQS0NTNyBQYXJzZSBGYWlsdXJlIEludmFsaWQgQVNOMTogQ2hhbmdlIGxlbmd0aCBmcm9tIDEzIHRvIDE0ICM2MTYuMAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHBrY3M3X2FzbjFfZmFpbDoiMzA4MjA0OWQwNjA5MmE4NjQ4ODZmNzBkMDEwNzAyYTA4MjA0OGUzMDgyMDQ4YTAyMDEwMTMxMGYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBiMDYwOTJhODY0ODg2ZjcwZDAxMDcwMTMxODIwNDY1MzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBlMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDViZWNkODcxOTVjMWRlZmY5MGMyNGM5MTI2OWI1NWIzZjA2OWJjMjI1YzMyNmMzMTRjMWE1MTc4NmZmZTE0YzgzMGJlNGU0YmM3M2NiYTM2Yzk3Njc3YjQ0MTY4Mjc5YmU5MWU3Y2RmN2MxOTM4NmFlMjE4NjI3MTlkMTNhM2EwZmZmMDgwM2Q0NjA5NjJmMmNkYTgzNzE0ODQ4NzMyNTJjM2Q3MDU0ZGI4MTQzZTJiMDgxYTM4MTZlZDA4MDRjYTUwOTlhZTVmZWNlODNkNWMyYzM3ODNiMTk4OGI0YjQ2ZGM5NGU1NTU4N2ExMDdlYTE1NDZiZjIyZDI4YTA5N2Y2NTJhNDA2NmRjMjk2NTI2OTA2OWFmMmY1MTc2YmI4Y2U5Y2E2ZDExZjk2NzU3ZjAzMjA0Zjc1NjcwMzU4N2QwMGFkNDI0Nzk2YzkyZmM3YWViNmY0OTQ0MzE5OTllZGEzMDk5MGU0ZjU3NzM2MzJlZDI1OGZlMDI3NjY3MzU5OWRhNmZjZTM1Y2RhZDc3MjZhMGJiMDI0Y2FkOTk2Yjg4ZTBjYjk4ODU0Y2ViNWMwYjZlYzc0OGQ5ZjljZTZhNmNkNDM3ODU4YmFjYjgxNDYxOGEyNzJmZjNhNDE1YzZlMDdmM2RiMDk4ODc3N2ZkZWM4NDVhOTdiZjdkMTAyZGQwMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMyMDIxNDU2NGQ1NTQwMjVhZjU5OWUzMjcwNzliMjcyMGVmMDBkZjM3Y2ZiN2MzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDA0NjA5OGRjNWYyYjk5ZTNiYzJlZDY2NDJkN2YwYTYxZWZhYmMxNWMzOGM3NjMzM2JjY2NlZWVlMzY5YTRmNGE1YmRkYThlYTU5MjY0MTI0ZTQyOWYwODYzMjY4M2RkYmExN2JiZjI2MmQ4MmI2YmVmYTNiNGUxNDgwMzc2YThjN2YzYzdkN2UyYTY3NzliYmYxODI2MmFhODU3ZGU4YzIwYTEyYjZhMmNlOGU0ZDdmMzFkZDFiMTk1MzkyY2Y2MTg1YWZjZTM0YWZlMDU4OTYwNTdiMzZlOWIxNzFiNmM2N2VkN2MyMjg2Y2JmYTgzZmY4YTE2N2M3YmM3MTA5YWVlN2Q3ZTE5MDliZDM4NGZiZmM2MTkzOGVmY2E1MWM4OTkzYzcxZGIzMTc3MzBmMTZlN2U3NzY4NjdhZTRmZGM1NjJkNmYxNWRlNTg1ZTdiOTRlZjQ5NmEzNjc2MzY3YTJjYmFhYjdiNjM2NjQ4YjAwNzZiYWQ1Y2RmMWUwOTc0MGVjNmE0NTFiZmY1MzRlZmEyMTUwOWYzYmE3N2I4MTAxYjkxZWE3ZTU1ZGRiZmUxNDAxNTE3MDY3ZDdiMDFhMmEwODc5ZjA4ODVjODk0YTg3Y2ZiNjhjNGQ3ZWU4OTA2MDQ4ODFhZWI5N2MyMmQxZjMzN2VmOTIzZTAzNWE2NDAwMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMzMDIxNDYyNDc3Mjk4NzU5ZThlMDQ3MThhZTU2MzE1NWYzNTIzY2ZiODRjZGIzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDZkMmNiYjM3ZmQxMjk1N2U1YTc0ODBjZTA0MzVlOGVmNjA3N2RlZjA4ZmYyNzA4NDRkZTI1MTZhNDc0MmYyMTFkOGM3NDY5MGJjMDk0OGUwOGEyOTZhYmJhOTI4NWY2YmIzMDViOTViN2Y5NDA4Y2U0NGU4Mzg4MGM3MTk0NDQ2NzJlYzk5NzQ2YmE3OGNjNGJkZTQ3NTMxOWQwMWJkZTc3YzQ5ZDU4ZDE2ZDNiMmU5MWMyZTYxZTgzMDNjYTNkN2VkYTM3OTdmZDhiMzVjYTcyYmIxNGIxNWEyNGI1NmJiNzBkYzEzNDg0NTY1ODA4MTEwZmY1ZGI1OGM1NmY3YTA0MzU2MDdlM2MzNTJmYmY0ZjU1MTA2ZjI5ODBmZDNjZDQyMzk3ZGJmNzEzN2VlN2YxZTMyY2Q4MGEzYjdhYjEyYjQ2YzE2OTIyMDI3OGQ3NzE3Yjc4YTNjNDVkNjM5NWExMzBhOGI1ODg0MWNiYzI5MGU0ZjgxN2RlM2E0ZmUxNmVjZDA3N2NhMzNhMGFhMjVlMjM1Y2M3ZjY2NTVhODBiYThhZWVjODc5MDViYjJhNzU0NTliN2JjYzVhMTMzZjI5OTM0OTNiNDFmZmNmNjNjZDdhMzkxZTNlNmY3ODA5NGNhNDQyYzgwMTQ0NDAzY2IwYTVmMDBiZmM2MWFlODgwIgogCiBQS0NTNyBQYXJzZSBGYWlsdXJlIEludmFsaWQgQVNOMTogQ2hhbmdlIGNvbnRlbnRzIG9mIHRhZyAzMCB0byBjb250YWluIG9uZSB1bmFjY291bnRlZCBleHRyYSBieXRlICM2MTcuMAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHBrY3M3X2FzbjFfZmFpbDoiMzA4MjA0OWQwNjA5MmE4NjQ4ODZmNzBkMDEwNzAyYTA4MjA0OGUzMDgyMDQ4YTAyMDEwMTMxMGYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBiMDYwOTJhODY0ODg2ZjcwZDAxMDcwMTMxODIwNDY1MzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBlMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwNWJlY2Q4NzE5NWMxZGVmZjkwYzI0YzkxMjY5YjU1YjNmMDY5YmMyMjVjMzI2YzMxNGMxYTUxNzg2ZmZlMTRjODMwYmU0ZTRiYzczY2JhMzZjOTc2NzdiNDQxNjgyNzliZTkxZTdjZGY3YzE5Mzg2YWUyMTg2MjcxOWQxM2EzYTBmZmYwODAzZDQ2MDk2MmYyY2RhODM3MTQ4NDg3MzI1MmMzZDcwNTRkYjgxNDNlMmIwODFhMzgxNmVkMDgwNGNhNTA5OWFlNWZlY2U4M2Q1YzJjMzc4M2IxOTg4YjRiNDZkYzk0ZTU1NTg3YTEwN2VhMTU0NmJmMjJkMjhhMDk3ZjY1MmE0MDY2ZGMyOTY1MjY5MDY5YWYyZjUxNzZiYjhjZTljYTZkMTFmOTY3NTdmMDMyMDRmNzU2NzAzNTg3ZDAwYWQ0MjQ3OTZjOTJmYzdhZWI2ZjQ5NDQzMTk5OWVkYTMwOTkwZTRmNTc3MzYzMmVkMjU4ZmUwMjc2NjczNTk5ZGE2ZmNlMzVjZGFkNzcyNmEwYmIwMjRjYWQ5OTZiODhlMGNiOTg4NTRjZWI1YzBiNmVjNzQ4ZDlmOWNlNmE2Y2Q0Mzc4NThiYWNiODE0NjE4YTI3MmZmM2E0MTVjNmUwN2YzZGIwOTg4Nzc3ZmRlYzg0NWE5N2JmN2QxMDJkZDAzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzIwMjE0NTY0ZDU1NDAyNWFmNTk5ZTMyNzA3OWIyNzIwZWYwMGRmMzdjZmI3YzMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwMDQ2MDk4ZGM1ZjJiOTllM2JjMmVkNjY0MmQ3ZjBhNjFlZmFiYzE1YzM4Yzc2MzMzYmNjY2VlZWUzNjlhNGY0YTViZGRhOGVhNTkyNjQxMjRlNDI5ZjA4NjMyNjgzZGRiYTE3YmJmMjYyZDgyYjZiZWZhM2I0ZTE0ODAzNzZhOGM3ZjNjN2Q3ZTJhNjc3OWJiZjE4MjYyYWE4NTdkZThjMjBhMTJiNmEyY2U4ZTRkN2YzMWRkMWIxOTUzOTJjZjYxODVhZmNlMzRhZmUwNTg5NjA1N2IzNmU5YjE3MWI2YzY3ZWQ3YzIyODZjYmZhODNmZjhhMTY3YzdiYzcxMDlhZWU3ZDdlMTkwOWJkMzg0ZmJmYzYxOTM4ZWZjYTUxYzg5OTNjNzFkYjMxNzczMGYxNmU3ZTc3Njg2N2FlNGZkYzU2MmQ2ZjE1ZGU1ODVlN2I5NGVmNDk2YTM2NzYzNjdhMmNiYWFiN2I2MzY2NDhiMDA3NmJhZDVjZGYxZTA5NzQwZWM2YTQ1MWJmZjUzNGVmYTIxNTA5ZjNiYTc3YjgxMDFiOTFlYTdlNTVkZGJmZTE0MDE1MTcwNjdkN2IwMWEyYTA4NzlmMDg4NWM4OTRhODdjZmI2OGM0ZDdlZTg5MDYwNDg4MWFlYjk3YzIyZDFmMzM3ZWY5MjNlMDM1YTY0MDAzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzMwMjE0NjI0NzcyOTg3NTllOGUwNDcxOGFlNTYzMTU1ZjM1MjNjZmI4NGNkYjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwNmQyY2JiMzdmZDEyOTU3ZTVhNzQ4MGNlMDQzNWU4ZWY2MDc3ZGVmMDhmZjI3MDg0NGRlMjUxNmE0NzQyZjIxMWQ4Yzc0NjkwYmMwOTQ4ZTA4YTI5NmFiYmE5Mjg1ZjZiYjMwNWI5NWI3Zjk0MDhjZTQ0ZTgzODgwYzcxOTQ0NDY3MmVjOTk3NDZiYTc4Y2M0YmRlNDc1MzE5ZDAxYmRlNzdjNDlkNThkMTZkM2IyZTkxYzJlNjFlODMwM2NhM2Q3ZWRhMzc5N2ZkOGIzNWNhNzJiYjE0YjE1YTI0YjU2YmI3MGRjMTM0ODQ1NjU4MDgxMTBmZjVkYjU4YzU2ZjdhMDQzNTYwN2UzYzM1MmZiZjRmNTUxMDZmMjk4MGZkM2NkNDIzOTdkYmY3MTM3ZWU3ZjFlMzJjZDgwYTNiN2FiMTJiNDZjMTY5MjIwMjc4ZDc3MTdiNzhhM2M0NWQ2Mzk1YTEzMGE4YjU4ODQxY2JjMjkwZTRmODE3ZGUzYTRmZTE2ZWNkMDc3Y2EzM2EwYWEyNWUyMzVjYzdmNjY1NWE4MGJhOGFlZWM4NzkwNWJiMmE3NTQ1OWI3YmNjNWExMzNmMjk5MzQ5M2I0MWZmY2Y2M2NkN2EzOTFlM2U2Zjc4MDk0Y2E0NDJjODAxNDQ0MDNjYjBhNWYwMGJmYzYxYWU4ODAiCiAKIFBLQ1M3IFBhcnNlIEZhaWx1cmUgSW52YWxpZCBBU04xOiBDaGFuZ2UgbGVuZ3RoIGZyb20gMTMgdG8gMTIgIzYxOC4wCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NgogcGtjczdfYXNuMV9mYWlsOiIzMDgyMDQ5ZDA2MDkyYTg2NDg4NmY3MGQwMTA3MDJhMDgyMDQ4ZTMwODIwNDhhMDIwMTAxMzEwZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGIwNjA5MmE4NjQ4ODZmNzBkMDEwNzAxMzE4MjA0NjUzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGMwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwNWJlY2Q4NzE5NWMxZGVmZjkwYzI0YzkxMjY5YjU1YjNmMDY5YmMyMjVjMzI2YzMxNGMxYTUxNzg2ZmZlMTRjODMwYmU0ZTRiYzczY2JhMzZjOTc2NzdiNDQxNjgyNzliZTkxZTdjZGY3YzE5Mzg2YWUyMTg2MjcxOWQxM2EzYTBmZmYwODAzZDQ2MDk2MmYyY2RhODM3MTQ4NDg3MzI1MmMzZDcwNTRkYjgxNDNlMmIwODFhMzgxNmVkMDgwNGNhNTA5OWFlNWZlY2U4M2Q1YzJjMzc4M2IxOTg4YjRiNDZkYzk0ZTU1NTg3YTEwN2VhMTU0NmJmMjJkMjhhMDk3ZjY1MmE0MDY2ZGMyOTY1MjY5MDY5YWYyZjUxNzZiYjhjZTljYTZkMTFmOTY3NTdmMDMyMDRmNzU2NzAzNTg3ZDAwYWQ0MjQ3OTZjOTJmYzdhZWI2ZjQ5NDQzMTk5OWVkYTMwOTkwZTRmNTc3MzYzMmVkMjU4ZmUwMjc2NjczNTk5ZGE2ZmNlMzVjZGFkNzcyNmEwYmIwMjRjYWQ5OTZiODhlMGNiOTg4NTRjZWI1YzBiNmVjNzQ4ZDlmOWNlNmE2Y2Q0Mzc4NThiYWNiODE0NjE4YTI3MmZmM2E0MTVjNmUwN2YzZGIwOTg4Nzc3ZmRlYzg0NWE5N2JmN2QxMDJkZDAzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzIwMjE0NTY0ZDU1NDAyNWFmNTk5ZTMyNzA3OWIyNzIwZWYwMGRmMzdjZmI3YzMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwMDQ2MDk4ZGM1ZjJiOTllM2JjMmVkNjY0MmQ3ZjBhNjFlZmFiYzE1YzM4Yzc2MzMzYmNjY2VlZWUzNjlhNGY0YTViZGRhOGVhNTkyNjQxMjRlNDI5ZjA4NjMyNjgzZGRiYTE3YmJmMjYyZDgyYjZiZWZhM2I0ZTE0ODAzNzZhOGM3ZjNjN2Q3ZTJhNjc3OWJiZjE4MjYyYWE4NTdkZThjMjBhMTJiNmEyY2U4ZTRkN2YzMWRkMWIxOTUzOTJjZjYxODVhZmNlMzRhZmUwNTg5NjA1N2IzNmU5YjE3MWI2YzY3ZWQ3YzIyODZjYmZhODNmZjhhMTY3YzdiYzcxMDlhZWU3ZDdlMTkwOWJkMzg0ZmJmYzYxOTM4ZWZjYTUxYzg5OTNjNzFkYjMxNzczMGYxNmU3ZTc3Njg2N2FlNGZkYzU2MmQ2ZjE1ZGU1ODVlN2I5NGVmNDk2YTM2NzYzNjdhMmNiYWFiN2I2MzY2NDhiMDA3NmJhZDVjZGYxZTA5NzQwZWM2YTQ1MWJmZjUzNGVmYTIxNTA5ZjNiYTc3YjgxMDFiOTFlYTdlNTVkZGJmZTE0MDE1MTcwNjdkN2IwMWEyYTA4NzlmMDg4NWM4OTRhODdjZmI2OGM0ZDdlZTg5MDYwNDg4MWFlYjk3YzIyZDFmMzM3ZWY5MjNlMDM1YTY0MDAzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzMwMjE0NjI0NzcyOTg3NTllOGUwNDcxOGFlNTYzMTU1ZjM1MjNjZmI4NGNkYjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwNmQyY2JiMzdmZDEyOTU3ZTVhNzQ4MGNlMDQzNWU4ZWY2MDc3ZGVmMDhmZjI3MDg0NGRlMjUxNmE0NzQyZjIxMWQ4Yzc0NjkwYmMwOTQ4ZTA4YTI5NmFiYmE5Mjg1ZjZiYjMwNWI5NWI3Zjk0MDhjZTQ0ZTgzODgwYzcxOTQ0NDY3MmVjOTk3NDZiYTc4Y2M0YmRlNDc1MzE5ZDAxYmRlNzdjNDlkNThkMTZkM2IyZTkxYzJlNjFlODMwM2NhM2Q3ZWRhMzc5N2ZkOGIzNWNhNzJiYjE0YjE1YTI0YjU2YmI3MGRjMTM0ODQ1NjU4MDgxMTBmZjVkYjU4YzU2ZjdhMDQzNTYwN2UzYzM1MmZiZjRmNTUxMDZmMjk4MGZkM2NkNDIzOTdkYmY3MTM3ZWU3ZjFlMzJjZDgwYTNiN2FiMTJiNDZjMTY5MjIwMjc4ZDc3MTdiNzhhM2M0NWQ2Mzk1YTEzMGE4YjU4ODQxY2JjMjkwZTRmODE3ZGUzYTRmZTE2ZWNkMDc3Y2EzM2EwYWEyNWUyMzVjYzdmNjY1NWE4MGJhOGFlZWM4NzkwNWJiMmE3NTQ1OWI3YmNjNWExMzNmMjk5MzQ5M2I0MWZmY2Y2M2NkN2EzOTFlM2U2Zjc4MDk0Y2E0NDJjODAxNDQ0MDNjYjBhNWYwMGJmYzYxYWU4ODAiCiAKIFBLQ1M3IFBhcnNlIEZhaWx1cmUgSW52YWxpZCBBU04xOiBDaGFuZ2UgdGFnIDA2IHRvIDAyICM2MTkuMAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHBrY3M3X2FzbjFfZmFpbDoiMzA4MjA0OWQwNjA5MmE4NjQ4ODZmNzBkMDEwNzAyYTA4MjA0OGUzMDgyMDQ4YTAyMDEwMTMxMGYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBiMDYwOTJhODY0ODg2ZjcwZDAxMDcwMTMxODIwNDY1MzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDIwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDViZWNkODcxOTVjMWRlZmY5MGMyNGM5MTI2OWI1NWIzZjA2OWJjMjI1YzMyNmMzMTRjMWE1MTc4NmZmZTE0YzgzMGJlNGU0YmM3M2NiYTM2Yzk3Njc3YjQ0MTY4Mjc5YmU5MWU3Y2RmN2MxOTM4NmFlMjE4NjI3MTlkMTNhM2EwZmZmMDgwM2Q0NjA5NjJmMmNkYTgzNzE0ODQ4NzMyNTJjM2Q3MDU0ZGI4MTQzZTJiMDgxYTM4MTZlZDA4MDRjYTUwOTlhZTVmZWNlODNkNWMyYzM3ODNiMTk4OGI0YjQ2ZGM5NGU1NTU4N2ExMDdlYTE1NDZiZjIyZDI4YTA5N2Y2NTJhNDA2NmRjMjk2NTI2OTA2OWFmMmY1MTc2YmI4Y2U5Y2E2ZDExZjk2NzU3ZjAzMjA0Zjc1NjcwMzU4N2QwMGFkNDI0Nzk2YzkyZmM3YWViNmY0OTQ0MzE5OTllZGEzMDk5MGU0ZjU3NzM2MzJlZDI1OGZlMDI3NjY3MzU5OWRhNmZjZTM1Y2RhZDc3MjZhMGJiMDI0Y2FkOTk2Yjg4ZTBjYjk4ODU0Y2ViNWMwYjZlYzc0OGQ5ZjljZTZhNmNkNDM3ODU4YmFjYjgxNDYxOGEyNzJmZjNhNDE1YzZlMDdmM2RiMDk4ODc3N2ZkZWM4NDVhOTdiZjdkMTAyZGQwMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMyMDIxNDU2NGQ1NTQwMjVhZjU5OWUzMjcwNzliMjcyMGVmMDBkZjM3Y2ZiN2MzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDA0NjA5OGRjNWYyYjk5ZTNiYzJlZDY2NDJkN2YwYTYxZWZhYmMxNWMzOGM3NjMzM2JjY2NlZWVlMzY5YTRmNGE1YmRkYThlYTU5MjY0MTI0ZTQyOWYwODYzMjY4M2RkYmExN2JiZjI2MmQ4MmI2YmVmYTNiNGUxNDgwMzc2YThjN2YzYzdkN2UyYTY3NzliYmYxODI2MmFhODU3ZGU4YzIwYTEyYjZhMmNlOGU0ZDdmMzFkZDFiMTk1MzkyY2Y2MTg1YWZjZTM0YWZlMDU4OTYwNTdiMzZlOWIxNzFiNmM2N2VkN2MyMjg2Y2JmYTgzZmY4YTE2N2M3YmM3MTA5YWVlN2Q3ZTE5MDliZDM4NGZiZmM2MTkzOGVmY2E1MWM4OTkzYzcxZGIzMTc3MzBmMTZlN2U3NzY4NjdhZTRmZGM1NjJkNmYxNWRlNTg1ZTdiOTRlZjQ5NmEzNjc2MzY3YTJjYmFhYjdiNjM2NjQ4YjAwNzZiYWQ1Y2RmMWUwOTc0MGVjNmE0NTFiZmY1MzRlZmEyMTUwOWYzYmE3N2I4MTAxYjkxZWE3ZTU1ZGRiZmUxNDAxNTE3MDY3ZDdiMDFhMmEwODc5ZjA4ODVjODk0YTg3Y2ZiNjhjNGQ3ZWU4OTA2MDQ4ODFhZWI5N2MyMmQxZjMzN2VmOTIzZTAzNWE2NDAwMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMzMDIxNDYyNDc3Mjk4NzU5ZThlMDQ3MThhZTU2MzE1NWYzNTIzY2ZiODRjZGIzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDZkMmNiYjM3ZmQxMjk1N2U1YTc0ODBjZTA0MzVlOGVmNjA3N2RlZjA4ZmYyNzA4NDRkZTI1MTZhNDc0MmYyMTFkOGM3NDY5MGJjMDk0OGUwOGEyOTZhYmJhOTI4NWY2YmIzMDViOTViN2Y5NDA4Y2U0NGU4Mzg4MGM3MTk0NDQ2NzJlYzk5NzQ2YmE3OGNjNGJkZTQ3NTMxOWQwMWJkZTc3YzQ5ZDU4ZDE2ZDNiMmU5MWMyZTYxZTgzMDNjYTNkN2VkYTM3OTdmZDhiMzVjYTcyYmIxNGIxNWEyNGI1NmJiNzBkYzEzNDg0NTY1ODA4MTEwZmY1ZGI1OGM1NmY3YTA0MzU2MDdlM2MzNTJmYmY0ZjU1MTA2ZjI5ODBmZDNjZDQyMzk3ZGJmNzEzN2VlN2YxZTMyY2Q4MGEzYjdhYjEyYjQ2YzE2OTIyMDI3OGQ3NzE3Yjc4YTNjNDVkNjM5NWExMzBhOGI1ODg0MWNiYzI5MGU0ZjgxN2RlM2E0ZmUxNmVjZDA3N2NhMzNhMGFhMjVlMjM1Y2M3ZjY2NTVhODBiYThhZWVjODc5MDViYjJhNzU0NTliN2JjYzVhMTMzZjI5OTM0OTNiNDFmZmNmNjNjZDdhMzkxZTNlNmY3ODA5NGNhNDQyYzgwMTQ0NDAzY2IwYTVmMDBiZmM2MWFlODgwIgogCiBQS0NTNyBQYXJzZSBGYWlsdXJlIEludmFsaWQgQVNOMTogQ2hhbmdlIGxlbmd0aCBmcm9tIDkgdG8gMTAgIzYyMC4wCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NgogcGtjczdfYXNuMV9mYWlsOiIzMDgyMDQ5ZDA2MDkyYTg2NDg4NmY3MGQwMTA3MDJhMDgyMDQ4ZTMwODIwNDhhMDIwMTAxMzEwZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGIwNjA5MmE4NjQ4ODZmNzBkMDEwNzAxMzE4MjA0NjUzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjBhNjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwNWJlY2Q4NzE5NWMxZGVmZjkwYzI0YzkxMjY5YjU1YjNmMDY5YmMyMjVjMzI2YzMxNGMxYTUxNzg2ZmZlMTRjODMwYmU0ZTRiYzczY2JhMzZjOTc2NzdiNDQxNjgyNzliZTkxZTdjZGY3YzE5Mzg2YWUyMTg2MjcxOWQxM2EzYTBmZmYwODAzZDQ2MDk2MmYyY2RhODM3MTQ4NDg3MzI1MmMzZDcwNTRkYjgxNDNlMmIwODFhMzgxNmVkMDgwNGNhNTA5OWFlNWZlY2U4M2Q1YzJjMzc4M2IxOTg4YjRiNDZkYzk0ZTU1NTg3YTEwN2VhMTU0NmJmMjJkMjhhMDk3ZjY1MmE0MDY2ZGMyOTY1MjY5MDY5YWYyZjUxNzZiYjhjZTljYTZkMTFmOTY3NTdmMDMyMDRmNzU2NzAzNTg3ZDAwYWQ0MjQ3OTZjOTJmYzdhZWI2ZjQ5NDQzMTk5OWVkYTMwOTkwZTRmNTc3MzYzMmVkMjU4ZmUwMjc2NjczNTk5ZGE2ZmNlMzVjZGFkNzcyNmEwYmIwMjRjYWQ5OTZiODhlMGNiOTg4NTRjZWI1YzBiNmVjNzQ4ZDlmOWNlNmE2Y2Q0Mzc4NThiYWNiODE0NjE4YTI3MmZmM2E0MTVjNmUwN2YzZGIwOTg4Nzc3ZmRlYzg0NWE5N2JmN2QxMDJkZDAzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzIwMjE0NTY0ZDU1NDAyNWFmNTk5ZTMyNzA3OWIyNzIwZWYwMGRmMzdjZmI3YzMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwMDQ2MDk4ZGM1ZjJiOTllM2JjMmVkNjY0MmQ3ZjBhNjFlZmFiYzE1YzM4Yzc2MzMzYmNjY2VlZWUzNjlhNGY0YTViZGRhOGVhNTkyNjQxMjRlNDI5ZjA4NjMyNjgzZGRiYTE3YmJmMjYyZDgyYjZiZWZhM2I0ZTE0ODAzNzZhOGM3ZjNjN2Q3ZTJhNjc3OWJiZjE4MjYyYWE4NTdkZThjMjBhMTJiNmEyY2U4ZTRkN2YzMWRkMWIxOTUzOTJjZjYxODVhZmNlMzRhZmUwNTg5NjA1N2IzNmU5YjE3MWI2YzY3ZWQ3YzIyODZjYmZhODNmZjhhMTY3YzdiYzcxMDlhZWU3ZDdlMTkwOWJkMzg0ZmJmYzYxOTM4ZWZjYTUxYzg5OTNjNzFkYjMxNzczMGYxNmU3ZTc3Njg2N2FlNGZkYzU2MmQ2ZjE1ZGU1ODVlN2I5NGVmNDk2YTM2NzYzNjdhMmNiYWFiN2I2MzY2NDhiMDA3NmJhZDVjZGYxZTA5NzQwZWM2YTQ1MWJmZjUzNGVmYTIxNTA5ZjNiYTc3YjgxMDFiOTFlYTdlNTVkZGJmZTE0MDE1MTcwNjdkN2IwMWEyYTA4NzlmMDg4NWM4OTRhODdjZmI2OGM0ZDdlZTg5MDYwNDg4MWFlYjk3YzIyZDFmMzM3ZWY5MjNlMDM1YTY0MDAzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzMwMjE0NjI0NzcyOTg3NTllOGUwNDcxOGFlNTYzMTU1ZjM1MjNjZmI4NGNkYjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwNmQyY2JiMzdmZDEyOTU3ZTVhNzQ4MGNlMDQzNWU4ZWY2MDc3ZGVmMDhmZjI3MDg0NGRlMjUxNmE0NzQyZjIxMWQ4Yzc0NjkwYmMwOTQ4ZTA4YTI5NmFiYmE5Mjg1ZjZiYjMwNWI5NWI3Zjk0MDhjZTQ0ZTgzODgwYzcxOTQ0NDY3MmVjOTk3NDZiYTc4Y2M0YmRlNDc1MzE5ZDAxYmRlNzdjNDlkNThkMTZkM2IyZTkxYzJlNjFlODMwM2NhM2Q3ZWRhMzc5N2ZkOGIzNWNhNzJiYjE0YjE1YTI0YjU2YmI3MGRjMTM0ODQ1NjU4MDgxMTBmZjVkYjU4YzU2ZjdhMDQzNTYwN2UzYzM1MmZiZjRmNTUxMDZmMjk4MGZkM2NkNDIzOTdkYmY3MTM3ZWU3ZjFlMzJjZDgwYTNiN2FiMTJiNDZjMTY5MjIwMjc4ZDc3MTdiNzhhM2M0NWQ2Mzk1YTEzMGE4YjU4ODQxY2JjMjkwZTRmODE3ZGUzYTRmZTE2ZWNkMDc3Y2EzM2EwYWEyNWUyMzVjYzdmNjY1NWE4MGJhOGFlZWM4NzkwNWJiMmE3NTQ1OWI3YmNjNWExMzNmMjk5MzQ5M2I0MWZmY2Y2M2NkN2EzOTFlM2U2Zjc4MDk0Y2E0NDJjODAxNDQ0MDNjYjBhNWYwMGJmYzYxYWU4ODAiCiAKIFBLQ1M3IFBhcnNlIEZhaWx1cmUgSW52YWxpZCBBU04xOiBDaGFuZ2UgbGVuZ3RoIGZyb20gOSB0byA4ICM2MjEuMAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHBrY3M3X2FzbjFfZmFpbDoiMzA4MjA0OWQwNjA5MmE4NjQ4ODZmNzBkMDEwNzAyYTA4MjA0OGUzMDgyMDQ4YTAyMDEwMTMxMGYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBiMDYwOTJhODY0ODg2ZjcwZDAxMDcwMTMxODIwNDY1MzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwODYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDViZWNkODcxOTVjMWRlZmY5MGMyNGM5MTI2OWI1NWIzZjA2OWJjMjI1YzMyNmMzMTRjMWE1MTc4NmZmZTE0YzgzMGJlNGU0YmM3M2NiYTM2Yzk3Njc3YjQ0MTY4Mjc5YmU5MWU3Y2RmN2MxOTM4NmFlMjE4NjI3MTlkMTNhM2EwZmZmMDgwM2Q0NjA5NjJmMmNkYTgzNzE0ODQ4NzMyNTJjM2Q3MDU0ZGI4MTQzZTJiMDgxYTM4MTZlZDA4MDRjYTUwOTlhZTVmZWNlODNkNWMyYzM3ODNiMTk4OGI0YjQ2ZGM5NGU1NTU4N2ExMDdlYTE1NDZiZjIyZDI4YTA5N2Y2NTJhNDA2NmRjMjk2NTI2OTA2OWFmMmY1MTc2YmI4Y2U5Y2E2ZDExZjk2NzU3ZjAzMjA0Zjc1NjcwMzU4N2QwMGFkNDI0Nzk2YzkyZmM3YWViNmY0OTQ0MzE5OTllZGEzMDk5MGU0ZjU3NzM2MzJlZDI1OGZlMDI3NjY3MzU5OWRhNmZjZTM1Y2RhZDc3MjZhMGJiMDI0Y2FkOTk2Yjg4ZTBjYjk4ODU0Y2ViNWMwYjZlYzc0OGQ5ZjljZTZhNmNkNDM3ODU4YmFjYjgxNDYxOGEyNzJmZjNhNDE1YzZlMDdmM2RiMDk4ODc3N2ZkZWM4NDVhOTdiZjdkMTAyZGQwMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMyMDIxNDU2NGQ1NTQwMjVhZjU5OWUzMjcwNzliMjcyMGVmMDBkZjM3Y2ZiN2MzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDA0NjA5OGRjNWYyYjk5ZTNiYzJlZDY2NDJkN2YwYTYxZWZhYmMxNWMzOGM3NjMzM2JjY2NlZWVlMzY5YTRmNGE1YmRkYThlYTU5MjY0MTI0ZTQyOWYwODYzMjY4M2RkYmExN2JiZjI2MmQ4MmI2YmVmYTNiNGUxNDgwMzc2YThjN2YzYzdkN2UyYTY3NzliYmYxODI2MmFhODU3ZGU4YzIwYTEyYjZhMmNlOGU0ZDdmMzFkZDFiMTk1MzkyY2Y2MTg1YWZjZTM0YWZlMDU4OTYwNTdiMzZlOWIxNzFiNmM2N2VkN2MyMjg2Y2JmYTgzZmY4YTE2N2M3YmM3MTA5YWVlN2Q3ZTE5MDliZDM4NGZiZmM2MTkzOGVmY2E1MWM4OTkzYzcxZGIzMTc3MzBmMTZlN2U3NzY4NjdhZTRmZGM1NjJkNmYxNWRlNTg1ZTdiOTRlZjQ5NmEzNjc2MzY3YTJjYmFhYjdiNjM2NjQ4YjAwNzZiYWQ1Y2RmMWUwOTc0MGVjNmE0NTFiZmY1MzRlZmEyMTUwOWYzYmE3N2I4MTAxYjkxZWE3ZTU1ZGRiZmUxNDAxNTE3MDY3ZDdiMDFhMmEwODc5ZjA4ODVjODk0YTg3Y2ZiNjhjNGQ3ZWU4OTA2MDQ4ODFhZWI5N2MyMmQxZjMzN2VmOTIzZTAzNWE2NDAwMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMzMDIxNDYyNDc3Mjk4NzU5ZThlMDQ3MThhZTU2MzE1NWYzNTIzY2ZiODRjZGIzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDZkMmNiYjM3ZmQxMjk1N2U1YTc0ODBjZTA0MzVlOGVmNjA3N2RlZjA4ZmYyNzA4NDRkZTI1MTZhNDc0MmYyMTFkOGM3NDY5MGJjMDk0OGUwOGEyOTZhYmJhOTI4NWY2YmIzMDViOTViN2Y5NDA4Y2U0NGU4Mzg4MGM3MTk0NDQ2NzJlYzk5NzQ2YmE3OGNjNGJkZTQ3NTMxOWQwMWJkZTc3YzQ5ZDU4ZDE2ZDNiMmU5MWMyZTYxZTgzMDNjYTNkN2VkYTM3OTdmZDhiMzVjYTcyYmIxNGIxNWEyNGI1NmJiNzBkYzEzNDg0NTY1ODA4MTEwZmY1ZGI1OGM1NmY3YTA0MzU2MDdlM2MzNTJmYmY0ZjU1MTA2ZjI5ODBmZDNjZDQyMzk3ZGJmNzEzN2VlN2YxZTMyY2Q4MGEzYjdhYjEyYjQ2YzE2OTIyMDI3OGQ3NzE3Yjc4YTNjNDVkNjM5NWExMzBhOGI1ODg0MWNiYzI5MGU0ZjgxN2RlM2E0ZmUxNmVjZDA3N2NhMzNhMGFhMjVlMjM1Y2M3ZjY2NTVhODBiYThhZWVjODc5MDViYjJhNzU0NTliN2JjYzVhMTMzZjI5OTM0OTNiNDFmZmNmNjNjZDdhMzkxZTNlNmY3ODA5NGNhNDQyYzgwMTQ0NDAzY2IwYTVmMDBiZmM2MWFlODgwIgogCiBQS0NTNyBQYXJzZSBGYWlsdXJlIEludmFsaWQgQVNOMTogQ2hhbmdlIHRhZyAwNSB0byAwMiAjNjIyLjAKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBwa2NzN19hc24xX2ZhaWw6IjMwODIwNDlkMDYwOTJhODY0ODg2ZjcwZDAxMDcwMmEwODIwNDhlMzA4MjA0OGEwMjAxMDEzMTBmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwYjA2MDkyYTg2NDg4NmY3MGQwMTA3MDEzMTgyMDQ2NTMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTAyMTQ3YmRlZGRkMjQ0NGNkMWNkZmU1YzQxYTgxMDJjODliN2RmMmU2Y2JmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwMjAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDA1YmVjZDg3MTk1YzFkZWZmOTBjMjRjOTEyNjliNTViM2YwNjliYzIyNWMzMjZjMzE0YzFhNTE3ODZmZmUxNGM4MzBiZTRlNGJjNzNjYmEzNmM5NzY3N2I0NDE2ODI3OWJlOTFlN2NkZjdjMTkzODZhZTIxODYyNzE5ZDEzYTNhMGZmZjA4MDNkNDYwOTYyZjJjZGE4MzcxNDg0ODczMjUyYzNkNzA1NGRiODE0M2UyYjA4MWEzODE2ZWQwODA0Y2E1MDk5YWU1ZmVjZTgzZDVjMmMzNzgzYjE5ODhiNGI0NmRjOTRlNTU1ODdhMTA3ZWExNTQ2YmYyMmQyOGEwOTdmNjUyYTQwNjZkYzI5NjUyNjkwNjlhZjJmNTE3NmJiOGNlOWNhNmQxMWY5Njc1N2YwMzIwNGY3NTY3MDM1ODdkMDBhZDQyNDc5NmM5MmZjN2FlYjZmNDk0NDMxOTk5ZWRhMzA5OTBlNGY1NzczNjMyZWQyNThmZTAyNzY2NzM1OTlkYTZmY2UzNWNkYWQ3NzI2YTBiYjAyNGNhZDk5NmI4OGUwY2I5ODg1NGNlYjVjMGI2ZWM3NDhkOWY5Y2U2YTZjZDQzNzg1OGJhY2I4MTQ2MThhMjcyZmYzYTQxNWM2ZTA3ZjNkYjA5ODg3NzdmZGVjODQ1YTk3YmY3ZDEwMmRkMDMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMjAyMTQ1NjRkNTU0MDI1YWY1OTllMzI3MDc5YjI3MjBlZjAwZGYzN2NmYjdjMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDAwNDYwOThkYzVmMmI5OWUzYmMyZWQ2NjQyZDdmMGE2MWVmYWJjMTVjMzhjNzYzMzNiY2NjZWVlZTM2OWE0ZjRhNWJkZGE4ZWE1OTI2NDEyNGU0MjlmMDg2MzI2ODNkZGJhMTdiYmYyNjJkODJiNmJlZmEzYjRlMTQ4MDM3NmE4YzdmM2M3ZDdlMmE2Nzc5YmJmMTgyNjJhYTg1N2RlOGMyMGExMmI2YTJjZThlNGQ3ZjMxZGQxYjE5NTM5MmNmNjE4NWFmY2UzNGFmZTA1ODk2MDU3YjM2ZTliMTcxYjZjNjdlZDdjMjI4NmNiZmE4M2ZmOGExNjdjN2JjNzEwOWFlZTdkN2UxOTA5YmQzODRmYmZjNjE5MzhlZmNhNTFjODk5M2M3MWRiMzE3NzMwZjE2ZTdlNzc2ODY3YWU0ZmRjNTYyZDZmMTVkZTU4NWU3Yjk0ZWY0OTZhMzY3NjM2N2EyY2JhYWI3YjYzNjY0OGIwMDc2YmFkNWNkZjFlMDk3NDBlYzZhNDUxYmZmNTM0ZWZhMjE1MDlmM2JhNzdiODEwMWI5MWVhN2U1NWRkYmZlMTQwMTUxNzA2N2Q3YjAxYTJhMDg3OWYwODg1Yzg5NGE4N2NmYjY4YzRkN2VlODkwNjA0ODgxYWViOTdjMjJkMWYzMzdlZjkyM2UwMzVhNjQwMDMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMzAyMTQ2MjQ3NzI5ODc1OWU4ZTA0NzE4YWU1NjMxNTVmMzUyM2NmYjg0Y2RiMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDA2ZDJjYmIzN2ZkMTI5NTdlNWE3NDgwY2UwNDM1ZThlZjYwNzdkZWYwOGZmMjcwODQ0ZGUyNTE2YTQ3NDJmMjExZDhjNzQ2OTBiYzA5NDhlMDhhMjk2YWJiYTkyODVmNmJiMzA1Yjk1YjdmOTQwOGNlNDRlODM4ODBjNzE5NDQ0NjcyZWM5OTc0NmJhNzhjYzRiZGU0NzUzMTlkMDFiZGU3N2M0OWQ1OGQxNmQzYjJlOTFjMmU2MWU4MzAzY2EzZDdlZGEzNzk3ZmQ4YjM1Y2E3MmJiMTRiMTVhMjRiNTZiYjcwZGMxMzQ4NDU2NTgwODExMGZmNWRiNThjNTZmN2EwNDM1NjA3ZTNjMzUyZmJmNGY1NTEwNmYyOTgwZmQzY2Q0MjM5N2RiZjcxMzdlZTdmMWUzMmNkODBhM2I3YWIxMmI0NmMxNjkyMjAyNzhkNzcxN2I3OGEzYzQ1ZDYzOTVhMTMwYThiNTg4NDFjYmMyOTBlNGY4MTdkZTNhNGZlMTZlY2QwNzdjYTMzYTBhYTI1ZTIzNWNjN2Y2NjU1YTgwYmE4YWVlYzg3OTA1YmIyYTc1NDU5YjdiY2M1YTEzM2YyOTkzNDkzYjQxZmZjZjYzY2Q3YTM5MWUzZTZmNzgwOTRjYTQ0MmM4MDE0NDQwM2NiMGE1ZjAwYmZjNjFhZTg4MCIKIAogUEtDUzcgUGFyc2UgRmFpbHVyZSBJbnZhbGlkIEFTTjE6IENoYW5nZSBsZW5ndGggZnJvbSAwIHRvIDEgIzYyMy4wCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NgogcGtjczdfYXNuMV9mYWlsOiIzMDgyMDQ5ZDA2MDkyYTg2NDg4NmY3MGQwMTA3MDJhMDgyMDQ4ZTMwODIwNDhhMDIwMTAxMzEwZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGIwNjA5MmE4NjQ4ODZmNzBkMDEwNzAxMzE4MjA0NjUzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMTMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwNWJlY2Q4NzE5NWMxZGVmZjkwYzI0YzkxMjY5YjU1YjNmMDY5YmMyMjVjMzI2YzMxNGMxYTUxNzg2ZmZlMTRjODMwYmU0ZTRiYzczY2JhMzZjOTc2NzdiNDQxNjgyNzliZTkxZTdjZGY3YzE5Mzg2YWUyMTg2MjcxOWQxM2EzYTBmZmYwODAzZDQ2MDk2MmYyY2RhODM3MTQ4NDg3MzI1MmMzZDcwNTRkYjgxNDNlMmIwODFhMzgxNmVkMDgwNGNhNTA5OWFlNWZlY2U4M2Q1YzJjMzc4M2IxOTg4YjRiNDZkYzk0ZTU1NTg3YTEwN2VhMTU0NmJmMjJkMjhhMDk3ZjY1MmE0MDY2ZGMyOTY1MjY5MDY5YWYyZjUxNzZiYjhjZTljYTZkMTFmOTY3NTdmMDMyMDRmNzU2NzAzNTg3ZDAwYWQ0MjQ3OTZjOTJmYzdhZWI2ZjQ5NDQzMTk5OWVkYTMwOTkwZTRmNTc3MzYzMmVkMjU4ZmUwMjc2NjczNTk5ZGE2ZmNlMzVjZGFkNzcyNmEwYmIwMjRjYWQ5OTZiODhlMGNiOTg4NTRjZWI1YzBiNmVjNzQ4ZDlmOWNlNmE2Y2Q0Mzc4NThiYWNiODE0NjE4YTI3MmZmM2E0MTVjNmUwN2YzZGIwOTg4Nzc3ZmRlYzg0NWE5N2JmN2QxMDJkZDAzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzIwMjE0NTY0ZDU1NDAyNWFmNTk5ZTMyNzA3OWIyNzIwZWYwMGRmMzdjZmI3YzMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwMDQ2MDk4ZGM1ZjJiOTllM2JjMmVkNjY0MmQ3ZjBhNjFlZmFiYzE1YzM4Yzc2MzMzYmNjY2VlZWUzNjlhNGY0YTViZGRhOGVhNTkyNjQxMjRlNDI5ZjA4NjMyNjgzZGRiYTE3YmJmMjYyZDgyYjZiZWZhM2I0ZTE0ODAzNzZhOGM3ZjNjN2Q3ZTJhNjc3OWJiZjE4MjYyYWE4NTdkZThjMjBhMTJiNmEyY2U4ZTRkN2YzMWRkMWIxOTUzOTJjZjYxODVhZmNlMzRhZmUwNTg5NjA1N2IzNmU5YjE3MWI2YzY3ZWQ3YzIyODZjYmZhODNmZjhhMTY3YzdiYzcxMDlhZWU3ZDdlMTkwOWJkMzg0ZmJmYzYxOTM4ZWZjYTUxYzg5OTNjNzFkYjMxNzczMGYxNmU3ZTc3Njg2N2FlNGZkYzU2MmQ2ZjE1ZGU1ODVlN2I5NGVmNDk2YTM2NzYzNjdhMmNiYWFiN2I2MzY2NDhiMDA3NmJhZDVjZGYxZTA5NzQwZWM2YTQ1MWJmZjUzNGVmYTIxNTA5ZjNiYTc3YjgxMDFiOTFlYTdlNTVkZGJmZTE0MDE1MTcwNjdkN2IwMWEyYTA4NzlmMDg4NWM4OTRhODdjZmI2OGM0ZDdlZTg5MDYwNDg4MWFlYjk3YzIyZDFmMzM3ZWY5MjNlMDM1YTY0MDAzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzMwMjE0NjI0NzcyOTg3NTllOGUwNDcxOGFlNTYzMTU1ZjM1MjNjZmI4NGNkYjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwNmQyY2JiMzdmZDEyOTU3ZTVhNzQ4MGNlMDQzNWU4ZWY2MDc3ZGVmMDhmZjI3MDg0NGRlMjUxNmE0NzQyZjIxMWQ4Yzc0NjkwYmMwOTQ4ZTA4YTI5NmFiYmE5Mjg1ZjZiYjMwNWI5NWI3Zjk0MDhjZTQ0ZTgzODgwYzcxOTQ0NDY3MmVjOTk3NDZiYTc4Y2M0YmRlNDc1MzE5ZDAxYmRlNzdjNDlkNThkMTZkM2IyZTkxYzJlNjFlODMwM2NhM2Q3ZWRhMzc5N2ZkOGIzNWNhNzJiYjE0YjE1YTI0YjU2YmI3MGRjMTM0ODQ1NjU4MDgxMTBmZjVkYjU4YzU2ZjdhMDQzNTYwN2UzYzM1MmZiZjRmNTUxMDZmMjk4MGZkM2NkNDIzOTdkYmY3MTM3ZWU3ZjFlMzJjZDgwYTNiN2FiMTJiNDZjMTY5MjIwMjc4ZDc3MTdiNzhhM2M0NWQ2Mzk1YTEzMGE4YjU4ODQxY2JjMjkwZTRmODE3ZGUzYTRmZTE2ZWNkMDc3Y2EzM2EwYWEyNWUyMzVjYzdmNjY1NWE4MGJhOGFlZWM4NzkwNWJiMmE3NTQ1OWI3YmNjNWExMzNmMjk5MzQ5M2I0MWZmY2Y2M2NkN2EzOTFlM2U2Zjc4MDk0Y2E0NDJjODAxNDQ0MDNjYjBhNWYwMGJmYzYxYWU4ODAiCiAKIFBLQ1M3IFBhcnNlIEZhaWx1cmUgSW52YWxpZCBBU04xOiBDaGFuZ2UgdGFnIDMwIHRvIDAyICM2MjQuMAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHBrY3M3X2FzbjFfZmFpbDoiMzA4MjA0OWQwNjA5MmE4NjQ4ODZmNzBkMDEwNzAyYTA4MjA0OGUzMDgyMDQ4YTAyMDEwMTMxMGYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBiMDYwOTJhODY0ODg2ZjcwZDAxMDcwMTMxODIwNDY1MzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAwMjBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDViZWNkODcxOTVjMWRlZmY5MGMyNGM5MTI2OWI1NWIzZjA2OWJjMjI1YzMyNmMzMTRjMWE1MTc4NmZmZTE0YzgzMGJlNGU0YmM3M2NiYTM2Yzk3Njc3YjQ0MTY4Mjc5YmU5MWU3Y2RmN2MxOTM4NmFlMjE4NjI3MTlkMTNhM2EwZmZmMDgwM2Q0NjA5NjJmMmNkYTgzNzE0ODQ4NzMyNTJjM2Q3MDU0ZGI4MTQzZTJiMDgxYTM4MTZlZDA4MDRjYTUwOTlhZTVmZWNlODNkNWMyYzM3ODNiMTk4OGI0YjQ2ZGM5NGU1NTU4N2ExMDdlYTE1NDZiZjIyZDI4YTA5N2Y2NTJhNDA2NmRjMjk2NTI2OTA2OWFmMmY1MTc2YmI4Y2U5Y2E2ZDExZjk2NzU3ZjAzMjA0Zjc1NjcwMzU4N2QwMGFkNDI0Nzk2YzkyZmM3YWViNmY0OTQ0MzE5OTllZGEzMDk5MGU0ZjU3NzM2MzJlZDI1OGZlMDI3NjY3MzU5OWRhNmZjZTM1Y2RhZDc3MjZhMGJiMDI0Y2FkOTk2Yjg4ZTBjYjk4ODU0Y2ViNWMwYjZlYzc0OGQ5ZjljZTZhNmNkNDM3ODU4YmFjYjgxNDYxOGEyNzJmZjNhNDE1YzZlMDdmM2RiMDk4ODc3N2ZkZWM4NDVhOTdiZjdkMTAyZGQwMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMyMDIxNDU2NGQ1NTQwMjVhZjU5OWUzMjcwNzliMjcyMGVmMDBkZjM3Y2ZiN2MzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDA0NjA5OGRjNWYyYjk5ZTNiYzJlZDY2NDJkN2YwYTYxZWZhYmMxNWMzOGM3NjMzM2JjY2NlZWVlMzY5YTRmNGE1YmRkYThlYTU5MjY0MTI0ZTQyOWYwODYzMjY4M2RkYmExN2JiZjI2MmQ4MmI2YmVmYTNiNGUxNDgwMzc2YThjN2YzYzdkN2UyYTY3NzliYmYxODI2MmFhODU3ZGU4YzIwYTEyYjZhMmNlOGU0ZDdmMzFkZDFiMTk1MzkyY2Y2MTg1YWZjZTM0YWZlMDU4OTYwNTdiMzZlOWIxNzFiNmM2N2VkN2MyMjg2Y2JmYTgzZmY4YTE2N2M3YmM3MTA5YWVlN2Q3ZTE5MDliZDM4NGZiZmM2MTkzOGVmY2E1MWM4OTkzYzcxZGIzMTc3MzBmMTZlN2U3NzY4NjdhZTRmZGM1NjJkNmYxNWRlNTg1ZTdiOTRlZjQ5NmEzNjc2MzY3YTJjYmFhYjdiNjM2NjQ4YjAwNzZiYWQ1Y2RmMWUwOTc0MGVjNmE0NTFiZmY1MzRlZmEyMTUwOWYzYmE3N2I4MTAxYjkxZWE3ZTU1ZGRiZmUxNDAxNTE3MDY3ZDdiMDFhMmEwODc5ZjA4ODVjODk0YTg3Y2ZiNjhjNGQ3ZWU4OTA2MDQ4ODFhZWI5N2MyMmQxZjMzN2VmOTIzZTAzNWE2NDAwMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMzMDIxNDYyNDc3Mjk4NzU5ZThlMDQ3MThhZTU2MzE1NWYzNTIzY2ZiODRjZGIzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDZkMmNiYjM3ZmQxMjk1N2U1YTc0ODBjZTA0MzVlOGVmNjA3N2RlZjA4ZmYyNzA4NDRkZTI1MTZhNDc0MmYyMTFkOGM3NDY5MGJjMDk0OGUwOGEyOTZhYmJhOTI4NWY2YmIzMDViOTViN2Y5NDA4Y2U0NGU4Mzg4MGM3MTk0NDQ2NzJlYzk5NzQ2YmE3OGNjNGJkZTQ3NTMxOWQwMWJkZTc3YzQ5ZDU4ZDE2ZDNiMmU5MWMyZTYxZTgzMDNjYTNkN2VkYTM3OTdmZDhiMzVjYTcyYmIxNGIxNWEyNGI1NmJiNzBkYzEzNDg0NTY1ODA4MTEwZmY1ZGI1OGM1NmY3YTA0MzU2MDdlM2MzNTJmYmY0ZjU1MTA2ZjI5ODBmZDNjZDQyMzk3ZGJmNzEzN2VlN2YxZTMyY2Q4MGEzYjdhYjEyYjQ2YzE2OTIyMDI3OGQ3NzE3Yjc4YTNjNDVkNjM5NWExMzBhOGI1ODg0MWNiYzI5MGU0ZjgxN2RlM2E0ZmUxNmVjZDA3N2NhMzNhMGFhMjVlMjM1Y2M3ZjY2NTVhODBiYThhZWVjODc5MDViYjJhNzU0NTliN2JjYzVhMTMzZjI5OTM0OTNiNDFmZmNmNjNjZDdhMzkxZTNlNmY3ODA5NGNhNDQyYzgwMTQ0NDAzY2IwYTVmMDBiZmM2MWFlODgwIgogCiBQS0NTNyBQYXJzZSBGYWlsdXJlIEludmFsaWQgQVNOMTogQ2hhbmdlIGxlbmd0aCBmcm9tIDEzIHRvIDE0ICM2MjUuMAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHBrY3M3X2FzbjFfZmFpbDoiMzA4MjA0OWQwNjA5MmE4NjQ4ODZmNzBkMDEwNzAyYTA4MjA0OGUzMDgyMDQ4YTAyMDEwMTMxMGYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBiMDYwOTJhODY0ODg2ZjcwZDAxMDcwMTMxODIwNDY1MzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBlMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDViZWNkODcxOTVjMWRlZmY5MGMyNGM5MTI2OWI1NWIzZjA2OWJjMjI1YzMyNmMzMTRjMWE1MTc4NmZmZTE0YzgzMGJlNGU0YmM3M2NiYTM2Yzk3Njc3YjQ0MTY4Mjc5YmU5MWU3Y2RmN2MxOTM4NmFlMjE4NjI3MTlkMTNhM2EwZmZmMDgwM2Q0NjA5NjJmMmNkYTgzNzE0ODQ4NzMyNTJjM2Q3MDU0ZGI4MTQzZTJiMDgxYTM4MTZlZDA4MDRjYTUwOTlhZTVmZWNlODNkNWMyYzM3ODNiMTk4OGI0YjQ2ZGM5NGU1NTU4N2ExMDdlYTE1NDZiZjIyZDI4YTA5N2Y2NTJhNDA2NmRjMjk2NTI2OTA2OWFmMmY1MTc2YmI4Y2U5Y2E2ZDExZjk2NzU3ZjAzMjA0Zjc1NjcwMzU4N2QwMGFkNDI0Nzk2YzkyZmM3YWViNmY0OTQ0MzE5OTllZGEzMDk5MGU0ZjU3NzM2MzJlZDI1OGZlMDI3NjY3MzU5OWRhNmZjZTM1Y2RhZDc3MjZhMGJiMDI0Y2FkOTk2Yjg4ZTBjYjk4ODU0Y2ViNWMwYjZlYzc0OGQ5ZjljZTZhNmNkNDM3ODU4YmFjYjgxNDYxOGEyNzJmZjNhNDE1YzZlMDdmM2RiMDk4ODc3N2ZkZWM4NDVhOTdiZjdkMTAyZGQwMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMyMDIxNDU2NGQ1NTQwMjVhZjU5OWUzMjcwNzliMjcyMGVmMDBkZjM3Y2ZiN2MzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDA0NjA5OGRjNWYyYjk5ZTNiYzJlZDY2NDJkN2YwYTYxZWZhYmMxNWMzOGM3NjMzM2JjY2NlZWVlMzY5YTRmNGE1YmRkYThlYTU5MjY0MTI0ZTQyOWYwODYzMjY4M2RkYmExN2JiZjI2MmQ4MmI2YmVmYTNiNGUxNDgwMzc2YThjN2YzYzdkN2UyYTY3NzliYmYxODI2MmFhODU3ZGU4YzIwYTEyYjZhMmNlOGU0ZDdmMzFkZDFiMTk1MzkyY2Y2MTg1YWZjZTM0YWZlMDU4OTYwNTdiMzZlOWIxNzFiNmM2N2VkN2MyMjg2Y2JmYTgzZmY4YTE2N2M3YmM3MTA5YWVlN2Q3ZTE5MDliZDM4NGZiZmM2MTkzOGVmY2E1MWM4OTkzYzcxZGIzMTc3MzBmMTZlN2U3NzY4NjdhZTRmZGM1NjJkNmYxNWRlNTg1ZTdiOTRlZjQ5NmEzNjc2MzY3YTJjYmFhYjdiNjM2NjQ4YjAwNzZiYWQ1Y2RmMWUwOTc0MGVjNmE0NTFiZmY1MzRlZmEyMTUwOWYzYmE3N2I4MTAxYjkxZWE3ZTU1ZGRiZmUxNDAxNTE3MDY3ZDdiMDFhMmEwODc5ZjA4ODVjODk0YTg3Y2ZiNjhjNGQ3ZWU4OTA2MDQ4ODFhZWI5N2MyMmQxZjMzN2VmOTIzZTAzNWE2NDAwMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMzMDIxNDYyNDc3Mjk4NzU5ZThlMDQ3MThhZTU2MzE1NWYzNTIzY2ZiODRjZGIzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDZkMmNiYjM3ZmQxMjk1N2U1YTc0ODBjZTA0MzVlOGVmNjA3N2RlZjA4ZmYyNzA4NDRkZTI1MTZhNDc0MmYyMTFkOGM3NDY5MGJjMDk0OGUwOGEyOTZhYmJhOTI4NWY2YmIzMDViOTViN2Y5NDA4Y2U0NGU4Mzg4MGM3MTk0NDQ2NzJlYzk5NzQ2YmE3OGNjNGJkZTQ3NTMxOWQwMWJkZTc3YzQ5ZDU4ZDE2ZDNiMmU5MWMyZTYxZTgzMDNjYTNkN2VkYTM3OTdmZDhiMzVjYTcyYmIxNGIxNWEyNGI1NmJiNzBkYzEzNDg0NTY1ODA4MTEwZmY1ZGI1OGM1NmY3YTA0MzU2MDdlM2MzNTJmYmY0ZjU1MTA2ZjI5ODBmZDNjZDQyMzk3ZGJmNzEzN2VlN2YxZTMyY2Q4MGEzYjdhYjEyYjQ2YzE2OTIyMDI3OGQ3NzE3Yjc4YTNjNDVkNjM5NWExMzBhOGI1ODg0MWNiYzI5MGU0ZjgxN2RlM2E0ZmUxNmVjZDA3N2NhMzNhMGFhMjVlMjM1Y2M3ZjY2NTVhODBiYThhZWVjODc5MDViYjJhNzU0NTliN2JjYzVhMTMzZjI5OTM0OTNiNDFmZmNmNjNjZDdhMzkxZTNlNmY3ODA5NGNhNDQyYzgwMTQ0NDAzY2IwYTVmMDBiZmM2MWFlODgwIgogCiBQS0NTNyBQYXJzZSBGYWlsdXJlIEludmFsaWQgQVNOMTogQ2hhbmdlIGNvbnRlbnRzIG9mIHRhZyAzMCB0byBjb250YWluIG9uZSB1bmFjY291bnRlZCBleHRyYSBieXRlICM2MjYuMAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHBrY3M3X2FzbjFfZmFpbDoiMzA4MjA0OWQwNjA5MmE4NjQ4ODZmNzBkMDEwNzAyYTA4MjA0OGUzMDgyMDQ4YTAyMDEwMTMxMGYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBiMDYwOTJhODY0ODg2ZjcwZDAxMDcwMTMxODIwNDY1MzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBlMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwMDA0ODIwMTAwNWJlY2Q4NzE5NWMxZGVmZjkwYzI0YzkxMjY5YjU1YjNmMDY5YmMyMjVjMzI2YzMxNGMxYTUxNzg2ZmZlMTRjODMwYmU0ZTRiYzczY2JhMzZjOTc2NzdiNDQxNjgyNzliZTkxZTdjZGY3YzE5Mzg2YWUyMTg2MjcxOWQxM2EzYTBmZmYwODAzZDQ2MDk2MmYyY2RhODM3MTQ4NDg3MzI1MmMzZDcwNTRkYjgxNDNlMmIwODFhMzgxNmVkMDgwNGNhNTA5OWFlNWZlY2U4M2Q1YzJjMzc4M2IxOTg4YjRiNDZkYzk0ZTU1NTg3YTEwN2VhMTU0NmJmMjJkMjhhMDk3ZjY1MmE0MDY2ZGMyOTY1MjY5MDY5YWYyZjUxNzZiYjhjZTljYTZkMTFmOTY3NTdmMDMyMDRmNzU2NzAzNTg3ZDAwYWQ0MjQ3OTZjOTJmYzdhZWI2ZjQ5NDQzMTk5OWVkYTMwOTkwZTRmNTc3MzYzMmVkMjU4ZmUwMjc2NjczNTk5ZGE2ZmNlMzVjZGFkNzcyNmEwYmIwMjRjYWQ5OTZiODhlMGNiOTg4NTRjZWI1YzBiNmVjNzQ4ZDlmOWNlNmE2Y2Q0Mzc4NThiYWNiODE0NjE4YTI3MmZmM2E0MTVjNmUwN2YzZGIwOTg4Nzc3ZmRlYzg0NWE5N2JmN2QxMDJkZDAzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzIwMjE0NTY0ZDU1NDAyNWFmNTk5ZTMyNzA3OWIyNzIwZWYwMGRmMzdjZmI3YzMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwMDQ2MDk4ZGM1ZjJiOTllM2JjMmVkNjY0MmQ3ZjBhNjFlZmFiYzE1YzM4Yzc2MzMzYmNjY2VlZWUzNjlhNGY0YTViZGRhOGVhNTkyNjQxMjRlNDI5ZjA4NjMyNjgzZGRiYTE3YmJmMjYyZDgyYjZiZWZhM2I0ZTE0ODAzNzZhOGM3ZjNjN2Q3ZTJhNjc3OWJiZjE4MjYyYWE4NTdkZThjMjBhMTJiNmEyY2U4ZTRkN2YzMWRkMWIxOTUzOTJjZjYxODVhZmNlMzRhZmUwNTg5NjA1N2IzNmU5YjE3MWI2YzY3ZWQ3YzIyODZjYmZhODNmZjhhMTY3YzdiYzcxMDlhZWU3ZDdlMTkwOWJkMzg0ZmJmYzYxOTM4ZWZjYTUxYzg5OTNjNzFkYjMxNzczMGYxNmU3ZTc3Njg2N2FlNGZkYzU2MmQ2ZjE1ZGU1ODVlN2I5NGVmNDk2YTM2NzYzNjdhMmNiYWFiN2I2MzY2NDhiMDA3NmJhZDVjZGYxZTA5NzQwZWM2YTQ1MWJmZjUzNGVmYTIxNTA5ZjNiYTc3YjgxMDFiOTFlYTdlNTVkZGJmZTE0MDE1MTcwNjdkN2IwMWEyYTA4NzlmMDg4NWM4OTRhODdjZmI2OGM0ZDdlZTg5MDYwNDg4MWFlYjk3YzIyZDFmMzM3ZWY5MjNlMDM1YTY0MDAzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzMwMjE0NjI0NzcyOTg3NTllOGUwNDcxOGFlNTYzMTU1ZjM1MjNjZmI4NGNkYjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwNmQyY2JiMzdmZDEyOTU3ZTVhNzQ4MGNlMDQzNWU4ZWY2MDc3ZGVmMDhmZjI3MDg0NGRlMjUxNmE0NzQyZjIxMWQ4Yzc0NjkwYmMwOTQ4ZTA4YTI5NmFiYmE5Mjg1ZjZiYjMwNWI5NWI3Zjk0MDhjZTQ0ZTgzODgwYzcxOTQ0NDY3MmVjOTk3NDZiYTc4Y2M0YmRlNDc1MzE5ZDAxYmRlNzdjNDlkNThkMTZkM2IyZTkxYzJlNjFlODMwM2NhM2Q3ZWRhMzc5N2ZkOGIzNWNhNzJiYjE0YjE1YTI0YjU2YmI3MGRjMTM0ODQ1NjU4MDgxMTBmZjVkYjU4YzU2ZjdhMDQzNTYwN2UzYzM1MmZiZjRmNTUxMDZmMjk4MGZkM2NkNDIzOTdkYmY3MTM3ZWU3ZjFlMzJjZDgwYTNiN2FiMTJiNDZjMTY5MjIwMjc4ZDc3MTdiNzhhM2M0NWQ2Mzk1YTEzMGE4YjU4ODQxY2JjMjkwZTRmODE3ZGUzYTRmZTE2ZWNkMDc3Y2EzM2EwYWEyNWUyMzVjYzdmNjY1NWE4MGJhOGFlZWM4NzkwNWJiMmE3NTQ1OWI3YmNjNWExMzNmMjk5MzQ5M2I0MWZmY2Y2M2NkN2EzOTFlM2U2Zjc4MDk0Y2E0NDJjODAxNDQ0MDNjYjBhNWYwMGJmYzYxYWU4ODAiCiAKIFBLQ1M3IFBhcnNlIEZhaWx1cmUgSW52YWxpZCBBU04xOiBDaGFuZ2UgbGVuZ3RoIGZyb20gMTMgdG8gMTIgIzYyNy4wCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NgogcGtjczdfYXNuMV9mYWlsOiIzMDgyMDQ5ZDA2MDkyYTg2NDg4NmY3MGQwMTA3MDJhMDgyMDQ4ZTMwODIwNDhhMDIwMTAxMzEwZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGIwNjA5MmE4NjQ4ODZmNzBkMDEwNzAxMzE4MjA0NjUzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGMwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwNWJlY2Q4NzE5NWMxZGVmZjkwYzI0YzkxMjY5YjU1YjNmMDY5YmMyMjVjMzI2YzMxNGMxYTUxNzg2ZmZlMTRjODMwYmU0ZTRiYzczY2JhMzZjOTc2NzdiNDQxNjgyNzliZTkxZTdjZGY3YzE5Mzg2YWUyMTg2MjcxOWQxM2EzYTBmZmYwODAzZDQ2MDk2MmYyY2RhODM3MTQ4NDg3MzI1MmMzZDcwNTRkYjgxNDNlMmIwODFhMzgxNmVkMDgwNGNhNTA5OWFlNWZlY2U4M2Q1YzJjMzc4M2IxOTg4YjRiNDZkYzk0ZTU1NTg3YTEwN2VhMTU0NmJmMjJkMjhhMDk3ZjY1MmE0MDY2ZGMyOTY1MjY5MDY5YWYyZjUxNzZiYjhjZTljYTZkMTFmOTY3NTdmMDMyMDRmNzU2NzAzNTg3ZDAwYWQ0MjQ3OTZjOTJmYzdhZWI2ZjQ5NDQzMTk5OWVkYTMwOTkwZTRmNTc3MzYzMmVkMjU4ZmUwMjc2NjczNTk5ZGE2ZmNlMzVjZGFkNzcyNmEwYmIwMjRjYWQ5OTZiODhlMGNiOTg4NTRjZWI1YzBiNmVjNzQ4ZDlmOWNlNmE2Y2Q0Mzc4NThiYWNiODE0NjE4YTI3MmZmM2E0MTVjNmUwN2YzZGIwOTg4Nzc3ZmRlYzg0NWE5N2JmN2QxMDJkZDAzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzIwMjE0NTY0ZDU1NDAyNWFmNTk5ZTMyNzA3OWIyNzIwZWYwMGRmMzdjZmI3YzMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwMDQ2MDk4ZGM1ZjJiOTllM2JjMmVkNjY0MmQ3ZjBhNjFlZmFiYzE1YzM4Yzc2MzMzYmNjY2VlZWUzNjlhNGY0YTViZGRhOGVhNTkyNjQxMjRlNDI5ZjA4NjMyNjgzZGRiYTE3YmJmMjYyZDgyYjZiZWZhM2I0ZTE0ODAzNzZhOGM3ZjNjN2Q3ZTJhNjc3OWJiZjE4MjYyYWE4NTdkZThjMjBhMTJiNmEyY2U4ZTRkN2YzMWRkMWIxOTUzOTJjZjYxODVhZmNlMzRhZmUwNTg5NjA1N2IzNmU5YjE3MWI2YzY3ZWQ3YzIyODZjYmZhODNmZjhhMTY3YzdiYzcxMDlhZWU3ZDdlMTkwOWJkMzg0ZmJmYzYxOTM4ZWZjYTUxYzg5OTNjNzFkYjMxNzczMGYxNmU3ZTc3Njg2N2FlNGZkYzU2MmQ2ZjE1ZGU1ODVlN2I5NGVmNDk2YTM2NzYzNjdhMmNiYWFiN2I2MzY2NDhiMDA3NmJhZDVjZGYxZTA5NzQwZWM2YTQ1MWJmZjUzNGVmYTIxNTA5ZjNiYTc3YjgxMDFiOTFlYTdlNTVkZGJmZTE0MDE1MTcwNjdkN2IwMWEyYTA4NzlmMDg4NWM4OTRhODdjZmI2OGM0ZDdlZTg5MDYwNDg4MWFlYjk3YzIyZDFmMzM3ZWY5MjNlMDM1YTY0MDAzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzMwMjE0NjI0NzcyOTg3NTllOGUwNDcxOGFlNTYzMTU1ZjM1MjNjZmI4NGNkYjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwNmQyY2JiMzdmZDEyOTU3ZTVhNzQ4MGNlMDQzNWU4ZWY2MDc3ZGVmMDhmZjI3MDg0NGRlMjUxNmE0NzQyZjIxMWQ4Yzc0NjkwYmMwOTQ4ZTA4YTI5NmFiYmE5Mjg1ZjZiYjMwNWI5NWI3Zjk0MDhjZTQ0ZTgzODgwYzcxOTQ0NDY3MmVjOTk3NDZiYTc4Y2M0YmRlNDc1MzE5ZDAxYmRlNzdjNDlkNThkMTZkM2IyZTkxYzJlNjFlODMwM2NhM2Q3ZWRhMzc5N2ZkOGIzNWNhNzJiYjE0YjE1YTI0YjU2YmI3MGRjMTM0ODQ1NjU4MDgxMTBmZjVkYjU4YzU2ZjdhMDQzNTYwN2UzYzM1MmZiZjRmNTUxMDZmMjk4MGZkM2NkNDIzOTdkYmY3MTM3ZWU3ZjFlMzJjZDgwYTNiN2FiMTJiNDZjMTY5MjIwMjc4ZDc3MTdiNzhhM2M0NWQ2Mzk1YTEzMGE4YjU4ODQxY2JjMjkwZTRmODE3ZGUzYTRmZTE2ZWNkMDc3Y2EzM2EwYWEyNWUyMzVjYzdmNjY1NWE4MGJhOGFlZWM4NzkwNWJiMmE3NTQ1OWI3YmNjNWExMzNmMjk5MzQ5M2I0MWZmY2Y2M2NkN2EzOTFlM2U2Zjc4MDk0Y2E0NDJjODAxNDQ0MDNjYjBhNWYwMGJmYzYxYWU4ODAiCiAKIFBLQ1M3IFBhcnNlIEZhaWx1cmUgSW52YWxpZCBBU04xOiBDaGFuZ2UgdGFnIDA2IHRvIDAyICM2MjguMAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHBrY3M3X2FzbjFfZmFpbDoiMzA4MjA0OWQwNjA5MmE4NjQ4ODZmNzBkMDEwNzAyYTA4MjA0OGUzMDgyMDQ4YTAyMDEwMTMxMGYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBiMDYwOTJhODY0ODg2ZjcwZDAxMDcwMTMxODIwNDY1MzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDIwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDViZWNkODcxOTVjMWRlZmY5MGMyNGM5MTI2OWI1NWIzZjA2OWJjMjI1YzMyNmMzMTRjMWE1MTc4NmZmZTE0YzgzMGJlNGU0YmM3M2NiYTM2Yzk3Njc3YjQ0MTY4Mjc5YmU5MWU3Y2RmN2MxOTM4NmFlMjE4NjI3MTlkMTNhM2EwZmZmMDgwM2Q0NjA5NjJmMmNkYTgzNzE0ODQ4NzMyNTJjM2Q3MDU0ZGI4MTQzZTJiMDgxYTM4MTZlZDA4MDRjYTUwOTlhZTVmZWNlODNkNWMyYzM3ODNiMTk4OGI0YjQ2ZGM5NGU1NTU4N2ExMDdlYTE1NDZiZjIyZDI4YTA5N2Y2NTJhNDA2NmRjMjk2NTI2OTA2OWFmMmY1MTc2YmI4Y2U5Y2E2ZDExZjk2NzU3ZjAzMjA0Zjc1NjcwMzU4N2QwMGFkNDI0Nzk2YzkyZmM3YWViNmY0OTQ0MzE5OTllZGEzMDk5MGU0ZjU3NzM2MzJlZDI1OGZlMDI3NjY3MzU5OWRhNmZjZTM1Y2RhZDc3MjZhMGJiMDI0Y2FkOTk2Yjg4ZTBjYjk4ODU0Y2ViNWMwYjZlYzc0OGQ5ZjljZTZhNmNkNDM3ODU4YmFjYjgxNDYxOGEyNzJmZjNhNDE1YzZlMDdmM2RiMDk4ODc3N2ZkZWM4NDVhOTdiZjdkMTAyZGQwMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMyMDIxNDU2NGQ1NTQwMjVhZjU5OWUzMjcwNzliMjcyMGVmMDBkZjM3Y2ZiN2MzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDA0NjA5OGRjNWYyYjk5ZTNiYzJlZDY2NDJkN2YwYTYxZWZhYmMxNWMzOGM3NjMzM2JjY2NlZWVlMzY5YTRmNGE1YmRkYThlYTU5MjY0MTI0ZTQyOWYwODYzMjY4M2RkYmExN2JiZjI2MmQ4MmI2YmVmYTNiNGUxNDgwMzc2YThjN2YzYzdkN2UyYTY3NzliYmYxODI2MmFhODU3ZGU4YzIwYTEyYjZhMmNlOGU0ZDdmMzFkZDFiMTk1MzkyY2Y2MTg1YWZjZTM0YWZlMDU4OTYwNTdiMzZlOWIxNzFiNmM2N2VkN2MyMjg2Y2JmYTgzZmY4YTE2N2M3YmM3MTA5YWVlN2Q3ZTE5MDliZDM4NGZiZmM2MTkzOGVmY2E1MWM4OTkzYzcxZGIzMTc3MzBmMTZlN2U3NzY4NjdhZTRmZGM1NjJkNmYxNWRlNTg1ZTdiOTRlZjQ5NmEzNjc2MzY3YTJjYmFhYjdiNjM2NjQ4YjAwNzZiYWQ1Y2RmMWUwOTc0MGVjNmE0NTFiZmY1MzRlZmEyMTUwOWYzYmE3N2I4MTAxYjkxZWE3ZTU1ZGRiZmUxNDAxNTE3MDY3ZDdiMDFhMmEwODc5ZjA4ODVjODk0YTg3Y2ZiNjhjNGQ3ZWU4OTA2MDQ4ODFhZWI5N2MyMmQxZjMzN2VmOTIzZTAzNWE2NDAwMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMzMDIxNDYyNDc3Mjk4NzU5ZThlMDQ3MThhZTU2MzE1NWYzNTIzY2ZiODRjZGIzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDZkMmNiYjM3ZmQxMjk1N2U1YTc0ODBjZTA0MzVlOGVmNjA3N2RlZjA4ZmYyNzA4NDRkZTI1MTZhNDc0MmYyMTFkOGM3NDY5MGJjMDk0OGUwOGEyOTZhYmJhOTI4NWY2YmIzMDViOTViN2Y5NDA4Y2U0NGU4Mzg4MGM3MTk0NDQ2NzJlYzk5NzQ2YmE3OGNjNGJkZTQ3NTMxOWQwMWJkZTc3YzQ5ZDU4ZDE2ZDNiMmU5MWMyZTYxZTgzMDNjYTNkN2VkYTM3OTdmZDhiMzVjYTcyYmIxNGIxNWEyNGI1NmJiNzBkYzEzNDg0NTY1ODA4MTEwZmY1ZGI1OGM1NmY3YTA0MzU2MDdlM2MzNTJmYmY0ZjU1MTA2ZjI5ODBmZDNjZDQyMzk3ZGJmNzEzN2VlN2YxZTMyY2Q4MGEzYjdhYjEyYjQ2YzE2OTIyMDI3OGQ3NzE3Yjc4YTNjNDVkNjM5NWExMzBhOGI1ODg0MWNiYzI5MGU0ZjgxN2RlM2E0ZmUxNmVjZDA3N2NhMzNhMGFhMjVlMjM1Y2M3ZjY2NTVhODBiYThhZWVjODc5MDViYjJhNzU0NTliN2JjYzVhMTMzZjI5OTM0OTNiNDFmZmNmNjNjZDdhMzkxZTNlNmY3ODA5NGNhNDQyYzgwMTQ0NDAzY2IwYTVmMDBiZmM2MWFlODgwIgogCiBQS0NTNyBQYXJzZSBGYWlsdXJlIEludmFsaWQgQVNOMTogQ2hhbmdlIGxlbmd0aCBmcm9tIDkgdG8gMTAgIzYyOS4wCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NgogcGtjczdfYXNuMV9mYWlsOiIzMDgyMDQ5ZDA2MDkyYTg2NDg4NmY3MGQwMTA3MDJhMDgyMDQ4ZTMwODIwNDhhMDIwMTAxMzEwZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGIwNjA5MmE4NjQ4ODZmNzBkMDEwNzAxMzE4MjA0NjUzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjBhMmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwNWJlY2Q4NzE5NWMxZGVmZjkwYzI0YzkxMjY5YjU1YjNmMDY5YmMyMjVjMzI2YzMxNGMxYTUxNzg2ZmZlMTRjODMwYmU0ZTRiYzczY2JhMzZjOTc2NzdiNDQxNjgyNzliZTkxZTdjZGY3YzE5Mzg2YWUyMTg2MjcxOWQxM2EzYTBmZmYwODAzZDQ2MDk2MmYyY2RhODM3MTQ4NDg3MzI1MmMzZDcwNTRkYjgxNDNlMmIwODFhMzgxNmVkMDgwNGNhNTA5OWFlNWZlY2U4M2Q1YzJjMzc4M2IxOTg4YjRiNDZkYzk0ZTU1NTg3YTEwN2VhMTU0NmJmMjJkMjhhMDk3ZjY1MmE0MDY2ZGMyOTY1MjY5MDY5YWYyZjUxNzZiYjhjZTljYTZkMTFmOTY3NTdmMDMyMDRmNzU2NzAzNTg3ZDAwYWQ0MjQ3OTZjOTJmYzdhZWI2ZjQ5NDQzMTk5OWVkYTMwOTkwZTRmNTc3MzYzMmVkMjU4ZmUwMjc2NjczNTk5ZGE2ZmNlMzVjZGFkNzcyNmEwYmIwMjRjYWQ5OTZiODhlMGNiOTg4NTRjZWI1YzBiNmVjNzQ4ZDlmOWNlNmE2Y2Q0Mzc4NThiYWNiODE0NjE4YTI3MmZmM2E0MTVjNmUwN2YzZGIwOTg4Nzc3ZmRlYzg0NWE5N2JmN2QxMDJkZDAzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzIwMjE0NTY0ZDU1NDAyNWFmNTk5ZTMyNzA3OWIyNzIwZWYwMGRmMzdjZmI3YzMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwMDQ2MDk4ZGM1ZjJiOTllM2JjMmVkNjY0MmQ3ZjBhNjFlZmFiYzE1YzM4Yzc2MzMzYmNjY2VlZWUzNjlhNGY0YTViZGRhOGVhNTkyNjQxMjRlNDI5ZjA4NjMyNjgzZGRiYTE3YmJmMjYyZDgyYjZiZWZhM2I0ZTE0ODAzNzZhOGM3ZjNjN2Q3ZTJhNjc3OWJiZjE4MjYyYWE4NTdkZThjMjBhMTJiNmEyY2U4ZTRkN2YzMWRkMWIxOTUzOTJjZjYxODVhZmNlMzRhZmUwNTg5NjA1N2IzNmU5YjE3MWI2YzY3ZWQ3YzIyODZjYmZhODNmZjhhMTY3YzdiYzcxMDlhZWU3ZDdlMTkwOWJkMzg0ZmJmYzYxOTM4ZWZjYTUxYzg5OTNjNzFkYjMxNzczMGYxNmU3ZTc3Njg2N2FlNGZkYzU2MmQ2ZjE1ZGU1ODVlN2I5NGVmNDk2YTM2NzYzNjdhMmNiYWFiN2I2MzY2NDhiMDA3NmJhZDVjZGYxZTA5NzQwZWM2YTQ1MWJmZjUzNGVmYTIxNTA5ZjNiYTc3YjgxMDFiOTFlYTdlNTVkZGJmZTE0MDE1MTcwNjdkN2IwMWEyYTA4NzlmMDg4NWM4OTRhODdjZmI2OGM0ZDdlZTg5MDYwNDg4MWFlYjk3YzIyZDFmMzM3ZWY5MjNlMDM1YTY0MDAzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzMwMjE0NjI0NzcyOTg3NTllOGUwNDcxOGFlNTYzMTU1ZjM1MjNjZmI4NGNkYjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwNmQyY2JiMzdmZDEyOTU3ZTVhNzQ4MGNlMDQzNWU4ZWY2MDc3ZGVmMDhmZjI3MDg0NGRlMjUxNmE0NzQyZjIxMWQ4Yzc0NjkwYmMwOTQ4ZTA4YTI5NmFiYmE5Mjg1ZjZiYjMwNWI5NWI3Zjk0MDhjZTQ0ZTgzODgwYzcxOTQ0NDY3MmVjOTk3NDZiYTc4Y2M0YmRlNDc1MzE5ZDAxYmRlNzdjNDlkNThkMTZkM2IyZTkxYzJlNjFlODMwM2NhM2Q3ZWRhMzc5N2ZkOGIzNWNhNzJiYjE0YjE1YTI0YjU2YmI3MGRjMTM0ODQ1NjU4MDgxMTBmZjVkYjU4YzU2ZjdhMDQzNTYwN2UzYzM1MmZiZjRmNTUxMDZmMjk4MGZkM2NkNDIzOTdkYmY3MTM3ZWU3ZjFlMzJjZDgwYTNiN2FiMTJiNDZjMTY5MjIwMjc4ZDc3MTdiNzhhM2M0NWQ2Mzk1YTEzMGE4YjU4ODQxY2JjMjkwZTRmODE3ZGUzYTRmZTE2ZWNkMDc3Y2EzM2EwYWEyNWUyMzVjYzdmNjY1NWE4MGJhOGFlZWM4NzkwNWJiMmE3NTQ1OWI3YmNjNWExMzNmMjk5MzQ5M2I0MWZmY2Y2M2NkN2EzOTFlM2U2Zjc4MDk0Y2E0NDJjODAxNDQ0MDNjYjBhNWYwMGJmYzYxYWU4ODAiCiAKIFBLQ1M3IFBhcnNlIEZhaWx1cmUgSW52YWxpZCBBU04xOiBDaGFuZ2UgbGVuZ3RoIGZyb20gOSB0byA4ICM2MzAuMAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHBrY3M3X2FzbjFfZmFpbDoiMzA4MjA0OWQwNjA5MmE4NjQ4ODZmNzBkMDEwNzAyYTA4MjA0OGUzMDgyMDQ4YTAyMDEwMTMxMGYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBiMDYwOTJhODY0ODg2ZjcwZDAxMDcwMTMxODIwNDY1MzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwODJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDViZWNkODcxOTVjMWRlZmY5MGMyNGM5MTI2OWI1NWIzZjA2OWJjMjI1YzMyNmMzMTRjMWE1MTc4NmZmZTE0YzgzMGJlNGU0YmM3M2NiYTM2Yzk3Njc3YjQ0MTY4Mjc5YmU5MWU3Y2RmN2MxOTM4NmFlMjE4NjI3MTlkMTNhM2EwZmZmMDgwM2Q0NjA5NjJmMmNkYTgzNzE0ODQ4NzMyNTJjM2Q3MDU0ZGI4MTQzZTJiMDgxYTM4MTZlZDA4MDRjYTUwOTlhZTVmZWNlODNkNWMyYzM3ODNiMTk4OGI0YjQ2ZGM5NGU1NTU4N2ExMDdlYTE1NDZiZjIyZDI4YTA5N2Y2NTJhNDA2NmRjMjk2NTI2OTA2OWFmMmY1MTc2YmI4Y2U5Y2E2ZDExZjk2NzU3ZjAzMjA0Zjc1NjcwMzU4N2QwMGFkNDI0Nzk2YzkyZmM3YWViNmY0OTQ0MzE5OTllZGEzMDk5MGU0ZjU3NzM2MzJlZDI1OGZlMDI3NjY3MzU5OWRhNmZjZTM1Y2RhZDc3MjZhMGJiMDI0Y2FkOTk2Yjg4ZTBjYjk4ODU0Y2ViNWMwYjZlYzc0OGQ5ZjljZTZhNmNkNDM3ODU4YmFjYjgxNDYxOGEyNzJmZjNhNDE1YzZlMDdmM2RiMDk4ODc3N2ZkZWM4NDVhOTdiZjdkMTAyZGQwMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMyMDIxNDU2NGQ1NTQwMjVhZjU5OWUzMjcwNzliMjcyMGVmMDBkZjM3Y2ZiN2MzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDA0NjA5OGRjNWYyYjk5ZTNiYzJlZDY2NDJkN2YwYTYxZWZhYmMxNWMzOGM3NjMzM2JjY2NlZWVlMzY5YTRmNGE1YmRkYThlYTU5MjY0MTI0ZTQyOWYwODYzMjY4M2RkYmExN2JiZjI2MmQ4MmI2YmVmYTNiNGUxNDgwMzc2YThjN2YzYzdkN2UyYTY3NzliYmYxODI2MmFhODU3ZGU4YzIwYTEyYjZhMmNlOGU0ZDdmMzFkZDFiMTk1MzkyY2Y2MTg1YWZjZTM0YWZlMDU4OTYwNTdiMzZlOWIxNzFiNmM2N2VkN2MyMjg2Y2JmYTgzZmY4YTE2N2M3YmM3MTA5YWVlN2Q3ZTE5MDliZDM4NGZiZmM2MTkzOGVmY2E1MWM4OTkzYzcxZGIzMTc3MzBmMTZlN2U3NzY4NjdhZTRmZGM1NjJkNmYxNWRlNTg1ZTdiOTRlZjQ5NmEzNjc2MzY3YTJjYmFhYjdiNjM2NjQ4YjAwNzZiYWQ1Y2RmMWUwOTc0MGVjNmE0NTFiZmY1MzRlZmEyMTUwOWYzYmE3N2I4MTAxYjkxZWE3ZTU1ZGRiZmUxNDAxNTE3MDY3ZDdiMDFhMmEwODc5ZjA4ODVjODk0YTg3Y2ZiNjhjNGQ3ZWU4OTA2MDQ4ODFhZWI5N2MyMmQxZjMzN2VmOTIzZTAzNWE2NDAwMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMzMDIxNDYyNDc3Mjk4NzU5ZThlMDQ3MThhZTU2MzE1NWYzNTIzY2ZiODRjZGIzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDZkMmNiYjM3ZmQxMjk1N2U1YTc0ODBjZTA0MzVlOGVmNjA3N2RlZjA4ZmYyNzA4NDRkZTI1MTZhNDc0MmYyMTFkOGM3NDY5MGJjMDk0OGUwOGEyOTZhYmJhOTI4NWY2YmIzMDViOTViN2Y5NDA4Y2U0NGU4Mzg4MGM3MTk0NDQ2NzJlYzk5NzQ2YmE3OGNjNGJkZTQ3NTMxOWQwMWJkZTc3YzQ5ZDU4ZDE2ZDNiMmU5MWMyZTYxZTgzMDNjYTNkN2VkYTM3OTdmZDhiMzVjYTcyYmIxNGIxNWEyNGI1NmJiNzBkYzEzNDg0NTY1ODA4MTEwZmY1ZGI1OGM1NmY3YTA0MzU2MDdlM2MzNTJmYmY0ZjU1MTA2ZjI5ODBmZDNjZDQyMzk3ZGJmNzEzN2VlN2YxZTMyY2Q4MGEzYjdhYjEyYjQ2YzE2OTIyMDI3OGQ3NzE3Yjc4YTNjNDVkNjM5NWExMzBhOGI1ODg0MWNiYzI5MGU0ZjgxN2RlM2E0ZmUxNmVjZDA3N2NhMzNhMGFhMjVlMjM1Y2M3ZjY2NTVhODBiYThhZWVjODc5MDViYjJhNzU0NTliN2JjYzVhMTMzZjI5OTM0OTNiNDFmZmNmNjNjZDdhMzkxZTNlNmY3ODA5NGNhNDQyYzgwMTQ0NDAzY2IwYTVmMDBiZmM2MWFlODgwIgogCiBQS0NTNyBQYXJzZSBGYWlsdXJlIEludmFsaWQgQVNOMTogQ2hhbmdlIHRhZyAwNSB0byAwMiAjNjMxLjAKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBwa2NzN19hc24xX2ZhaWw6IjMwODIwNDlkMDYwOTJhODY0ODg2ZjcwZDAxMDcwMmEwODIwNDhlMzA4MjA0OGEwMjAxMDEzMTBmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwYjA2MDkyYTg2NDg4NmY3MGQwMTA3MDEzMTgyMDQ2NTMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTAyMTQ3YmRlZGRkMjQ0NGNkMWNkZmU1YzQxYTgxMDJjODliN2RmMmU2Y2JmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwMjAwMDQ4MjAxMDA1YmVjZDg3MTk1YzFkZWZmOTBjMjRjOTEyNjliNTViM2YwNjliYzIyNWMzMjZjMzE0YzFhNTE3ODZmZmUxNGM4MzBiZTRlNGJjNzNjYmEzNmM5NzY3N2I0NDE2ODI3OWJlOTFlN2NkZjdjMTkzODZhZTIxODYyNzE5ZDEzYTNhMGZmZjA4MDNkNDYwOTYyZjJjZGE4MzcxNDg0ODczMjUyYzNkNzA1NGRiODE0M2UyYjA4MWEzODE2ZWQwODA0Y2E1MDk5YWU1ZmVjZTgzZDVjMmMzNzgzYjE5ODhiNGI0NmRjOTRlNTU1ODdhMTA3ZWExNTQ2YmYyMmQyOGEwOTdmNjUyYTQwNjZkYzI5NjUyNjkwNjlhZjJmNTE3NmJiOGNlOWNhNmQxMWY5Njc1N2YwMzIwNGY3NTY3MDM1ODdkMDBhZDQyNDc5NmM5MmZjN2FlYjZmNDk0NDMxOTk5ZWRhMzA5OTBlNGY1NzczNjMyZWQyNThmZTAyNzY2NzM1OTlkYTZmY2UzNWNkYWQ3NzI2YTBiYjAyNGNhZDk5NmI4OGUwY2I5ODg1NGNlYjVjMGI2ZWM3NDhkOWY5Y2U2YTZjZDQzNzg1OGJhY2I4MTQ2MThhMjcyZmYzYTQxNWM2ZTA3ZjNkYjA5ODg3NzdmZGVjODQ1YTk3YmY3ZDEwMmRkMDMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMjAyMTQ1NjRkNTU0MDI1YWY1OTllMzI3MDc5YjI3MjBlZjAwZGYzN2NmYjdjMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDAwNDYwOThkYzVmMmI5OWUzYmMyZWQ2NjQyZDdmMGE2MWVmYWJjMTVjMzhjNzYzMzNiY2NjZWVlZTM2OWE0ZjRhNWJkZGE4ZWE1OTI2NDEyNGU0MjlmMDg2MzI2ODNkZGJhMTdiYmYyNjJkODJiNmJlZmEzYjRlMTQ4MDM3NmE4YzdmM2M3ZDdlMmE2Nzc5YmJmMTgyNjJhYTg1N2RlOGMyMGExMmI2YTJjZThlNGQ3ZjMxZGQxYjE5NTM5MmNmNjE4NWFmY2UzNGFmZTA1ODk2MDU3YjM2ZTliMTcxYjZjNjdlZDdjMjI4NmNiZmE4M2ZmOGExNjdjN2JjNzEwOWFlZTdkN2UxOTA5YmQzODRmYmZjNjE5MzhlZmNhNTFjODk5M2M3MWRiMzE3NzMwZjE2ZTdlNzc2ODY3YWU0ZmRjNTYyZDZmMTVkZTU4NWU3Yjk0ZWY0OTZhMzY3NjM2N2EyY2JhYWI3YjYzNjY0OGIwMDc2YmFkNWNkZjFlMDk3NDBlYzZhNDUxYmZmNTM0ZWZhMjE1MDlmM2JhNzdiODEwMWI5MWVhN2U1NWRkYmZlMTQwMTUxNzA2N2Q3YjAxYTJhMDg3OWYwODg1Yzg5NGE4N2NmYjY4YzRkN2VlODkwNjA0ODgxYWViOTdjMjJkMWYzMzdlZjkyM2UwMzVhNjQwMDMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMzAyMTQ2MjQ3NzI5ODc1OWU4ZTA0NzE4YWU1NjMxNTVmMzUyM2NmYjg0Y2RiMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDA2ZDJjYmIzN2ZkMTI5NTdlNWE3NDgwY2UwNDM1ZThlZjYwNzdkZWYwOGZmMjcwODQ0ZGUyNTE2YTQ3NDJmMjExZDhjNzQ2OTBiYzA5NDhlMDhhMjk2YWJiYTkyODVmNmJiMzA1Yjk1YjdmOTQwOGNlNDRlODM4ODBjNzE5NDQ0NjcyZWM5OTc0NmJhNzhjYzRiZGU0NzUzMTlkMDFiZGU3N2M0OWQ1OGQxNmQzYjJlOTFjMmU2MWU4MzAzY2EzZDdlZGEzNzk3ZmQ4YjM1Y2E3MmJiMTRiMTVhMjRiNTZiYjcwZGMxMzQ4NDU2NTgwODExMGZmNWRiNThjNTZmN2EwNDM1NjA3ZTNjMzUyZmJmNGY1NTEwNmYyOTgwZmQzY2Q0MjM5N2RiZjcxMzdlZTdmMWUzMmNkODBhM2I3YWIxMmI0NmMxNjkyMjAyNzhkNzcxN2I3OGEzYzQ1ZDYzOTVhMTMwYThiNTg4NDFjYmMyOTBlNGY4MTdkZTNhNGZlMTZlY2QwNzdjYTMzYTBhYTI1ZTIzNWNjN2Y2NjU1YTgwYmE4YWVlYzg3OTA1YmIyYTc1NDU5YjdiY2M1YTEzM2YyOTkzNDkzYjQxZmZjZjYzY2Q3YTM5MWUzZTZmNzgwOTRjYTQ0MmM4MDE0NDQwM2NiMGE1ZjAwYmZjNjFhZTg4MCIKIAogUEtDUzcgUGFyc2UgRmFpbHVyZSBJbnZhbGlkIEFTTjE6IENoYW5nZSBsZW5ndGggZnJvbSAwIHRvIDEgIzYzMi4wCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NgogcGtjczdfYXNuMV9mYWlsOiIzMDgyMDQ5ZDA2MDkyYTg2NDg4NmY3MGQwMTA3MDJhMDgyMDQ4ZTMwODIwNDhhMDIwMTAxMzEwZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGIwNjA5MmE4NjQ4ODZmNzBkMDEwNzAxMzE4MjA0NjUzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMTA0ODIwMTAwNWJlY2Q4NzE5NWMxZGVmZjkwYzI0YzkxMjY5YjU1YjNmMDY5YmMyMjVjMzI2YzMxNGMxYTUxNzg2ZmZlMTRjODMwYmU0ZTRiYzczY2JhMzZjOTc2NzdiNDQxNjgyNzliZTkxZTdjZGY3YzE5Mzg2YWUyMTg2MjcxOWQxM2EzYTBmZmYwODAzZDQ2MDk2MmYyY2RhODM3MTQ4NDg3MzI1MmMzZDcwNTRkYjgxNDNlMmIwODFhMzgxNmVkMDgwNGNhNTA5OWFlNWZlY2U4M2Q1YzJjMzc4M2IxOTg4YjRiNDZkYzk0ZTU1NTg3YTEwN2VhMTU0NmJmMjJkMjhhMDk3ZjY1MmE0MDY2ZGMyOTY1MjY5MDY5YWYyZjUxNzZiYjhjZTljYTZkMTFmOTY3NTdmMDMyMDRmNzU2NzAzNTg3ZDAwYWQ0MjQ3OTZjOTJmYzdhZWI2ZjQ5NDQzMTk5OWVkYTMwOTkwZTRmNTc3MzYzMmVkMjU4ZmUwMjc2NjczNTk5ZGE2ZmNlMzVjZGFkNzcyNmEwYmIwMjRjYWQ5OTZiODhlMGNiOTg4NTRjZWI1YzBiNmVjNzQ4ZDlmOWNlNmE2Y2Q0Mzc4NThiYWNiODE0NjE4YTI3MmZmM2E0MTVjNmUwN2YzZGIwOTg4Nzc3ZmRlYzg0NWE5N2JmN2QxMDJkZDAzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzIwMjE0NTY0ZDU1NDAyNWFmNTk5ZTMyNzA3OWIyNzIwZWYwMGRmMzdjZmI3YzMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwMDQ2MDk4ZGM1ZjJiOTllM2JjMmVkNjY0MmQ3ZjBhNjFlZmFiYzE1YzM4Yzc2MzMzYmNjY2VlZWUzNjlhNGY0YTViZGRhOGVhNTkyNjQxMjRlNDI5ZjA4NjMyNjgzZGRiYTE3YmJmMjYyZDgyYjZiZWZhM2I0ZTE0ODAzNzZhOGM3ZjNjN2Q3ZTJhNjc3OWJiZjE4MjYyYWE4NTdkZThjMjBhMTJiNmEyY2U4ZTRkN2YzMWRkMWIxOTUzOTJjZjYxODVhZmNlMzRhZmUwNTg5NjA1N2IzNmU5YjE3MWI2YzY3ZWQ3YzIyODZjYmZhODNmZjhhMTY3YzdiYzcxMDlhZWU3ZDdlMTkwOWJkMzg0ZmJmYzYxOTM4ZWZjYTUxYzg5OTNjNzFkYjMxNzczMGYxNmU3ZTc3Njg2N2FlNGZkYzU2MmQ2ZjE1ZGU1ODVlN2I5NGVmNDk2YTM2NzYzNjdhMmNiYWFiN2I2MzY2NDhiMDA3NmJhZDVjZGYxZTA5NzQwZWM2YTQ1MWJmZjUzNGVmYTIxNTA5ZjNiYTc3YjgxMDFiOTFlYTdlNTVkZGJmZTE0MDE1MTcwNjdkN2IwMWEyYTA4NzlmMDg4NWM4OTRhODdjZmI2OGM0ZDdlZTg5MDYwNDg4MWFlYjk3YzIyZDFmMzM3ZWY5MjNlMDM1YTY0MDAzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzMwMjE0NjI0NzcyOTg3NTllOGUwNDcxOGFlNTYzMTU1ZjM1MjNjZmI4NGNkYjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwNmQyY2JiMzdmZDEyOTU3ZTVhNzQ4MGNlMDQzNWU4ZWY2MDc3ZGVmMDhmZjI3MDg0NGRlMjUxNmE0NzQyZjIxMWQ4Yzc0NjkwYmMwOTQ4ZTA4YTI5NmFiYmE5Mjg1ZjZiYjMwNWI5NWI3Zjk0MDhjZTQ0ZTgzODgwYzcxOTQ0NDY3MmVjOTk3NDZiYTc4Y2M0YmRlNDc1MzE5ZDAxYmRlNzdjNDlkNThkMTZkM2IyZTkxYzJlNjFlODMwM2NhM2Q3ZWRhMzc5N2ZkOGIzNWNhNzJiYjE0YjE1YTI0YjU2YmI3MGRjMTM0ODQ1NjU4MDgxMTBmZjVkYjU4YzU2ZjdhMDQzNTYwN2UzYzM1MmZiZjRmNTUxMDZmMjk4MGZkM2NkNDIzOTdkYmY3MTM3ZWU3ZjFlMzJjZDgwYTNiN2FiMTJiNDZjMTY5MjIwMjc4ZDc3MTdiNzhhM2M0NWQ2Mzk1YTEzMGE4YjU4ODQxY2JjMjkwZTRmODE3ZGUzYTRmZTE2ZWNkMDc3Y2EzM2EwYWEyNWUyMzVjYzdmNjY1NWE4MGJhOGFlZWM4NzkwNWJiMmE3NTQ1OWI3YmNjNWExMzNmMjk5MzQ5M2I0MWZmY2Y2M2NkN2EzOTFlM2U2Zjc4MDk0Y2E0NDJjODAxNDQ0MDNjYjBhNWYwMGJmYzYxYWU4ODAiCiAKIFBLQ1M3IFBhcnNlIEZhaWx1cmUgSW52YWxpZCBBU04xOiBDaGFuZ2UgdGFnIDA0IHRvIDAyICM2MzMuMAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHBrY3M3X2FzbjFfZmFpbDoiMzA4MjA0OWQwNjA5MmE4NjQ4ODZmNzBkMDEwNzAyYTA4MjA0OGUzMDgyMDQ4YTAyMDEwMTMxMGYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBiMDYwOTJhODY0ODg2ZjcwZDAxMDcwMTMxODIwNDY1MzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwMjgyMDEwMDViZWNkODcxOTVjMWRlZmY5MGMyNGM5MTI2OWI1NWIzZjA2OWJjMjI1YzMyNmMzMTRjMWE1MTc4NmZmZTE0YzgzMGJlNGU0YmM3M2NiYTM2Yzk3Njc3YjQ0MTY4Mjc5YmU5MWU3Y2RmN2MxOTM4NmFlMjE4NjI3MTlkMTNhM2EwZmZmMDgwM2Q0NjA5NjJmMmNkYTgzNzE0ODQ4NzMyNTJjM2Q3MDU0ZGI4MTQzZTJiMDgxYTM4MTZlZDA4MDRjYTUwOTlhZTVmZWNlODNkNWMyYzM3ODNiMTk4OGI0YjQ2ZGM5NGU1NTU4N2ExMDdlYTE1NDZiZjIyZDI4YTA5N2Y2NTJhNDA2NmRjMjk2NTI2OTA2OWFmMmY1MTc2YmI4Y2U5Y2E2ZDExZjk2NzU3ZjAzMjA0Zjc1NjcwMzU4N2QwMGFkNDI0Nzk2YzkyZmM3YWViNmY0OTQ0MzE5OTllZGEzMDk5MGU0ZjU3NzM2MzJlZDI1OGZlMDI3NjY3MzU5OWRhNmZjZTM1Y2RhZDc3MjZhMGJiMDI0Y2FkOTk2Yjg4ZTBjYjk4ODU0Y2ViNWMwYjZlYzc0OGQ5ZjljZTZhNmNkNDM3ODU4YmFjYjgxNDYxOGEyNzJmZjNhNDE1YzZlMDdmM2RiMDk4ODc3N2ZkZWM4NDVhOTdiZjdkMTAyZGQwMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMyMDIxNDU2NGQ1NTQwMjVhZjU5OWUzMjcwNzliMjcyMGVmMDBkZjM3Y2ZiN2MzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDA0NjA5OGRjNWYyYjk5ZTNiYzJlZDY2NDJkN2YwYTYxZWZhYmMxNWMzOGM3NjMzM2JjY2NlZWVlMzY5YTRmNGE1YmRkYThlYTU5MjY0MTI0ZTQyOWYwODYzMjY4M2RkYmExN2JiZjI2MmQ4MmI2YmVmYTNiNGUxNDgwMzc2YThjN2YzYzdkN2UyYTY3NzliYmYxODI2MmFhODU3ZGU4YzIwYTEyYjZhMmNlOGU0ZDdmMzFkZDFiMTk1MzkyY2Y2MTg1YWZjZTM0YWZlMDU4OTYwNTdiMzZlOWIxNzFiNmM2N2VkN2MyMjg2Y2JmYTgzZmY4YTE2N2M3YmM3MTA5YWVlN2Q3ZTE5MDliZDM4NGZiZmM2MTkzOGVmY2E1MWM4OTkzYzcxZGIzMTc3MzBmMTZlN2U3NzY4NjdhZTRmZGM1NjJkNmYxNWRlNTg1ZTdiOTRlZjQ5NmEzNjc2MzY3YTJjYmFhYjdiNjM2NjQ4YjAwNzZiYWQ1Y2RmMWUwOTc0MGVjNmE0NTFiZmY1MzRlZmEyMTUwOWYzYmE3N2I4MTAxYjkxZWE3ZTU1ZGRiZmUxNDAxNTE3MDY3ZDdiMDFhMmEwODc5ZjA4ODVjODk0YTg3Y2ZiNjhjNGQ3ZWU4OTA2MDQ4ODFhZWI5N2MyMmQxZjMzN2VmOTIzZTAzNWE2NDAwMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMzMDIxNDYyNDc3Mjk4NzU5ZThlMDQ3MThhZTU2MzE1NWYzNTIzY2ZiODRjZGIzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDZkMmNiYjM3ZmQxMjk1N2U1YTc0ODBjZTA0MzVlOGVmNjA3N2RlZjA4ZmYyNzA4NDRkZTI1MTZhNDc0MmYyMTFkOGM3NDY5MGJjMDk0OGUwOGEyOTZhYmJhOTI4NWY2YmIzMDViOTViN2Y5NDA4Y2U0NGU4Mzg4MGM3MTk0NDQ2NzJlYzk5NzQ2YmE3OGNjNGJkZTQ3NTMxOWQwMWJkZTc3YzQ5ZDU4ZDE2ZDNiMmU5MWMyZTYxZTgzMDNjYTNkN2VkYTM3OTdmZDhiMzVjYTcyYmIxNGIxNWEyNGI1NmJiNzBkYzEzNDg0NTY1ODA4MTEwZmY1ZGI1OGM1NmY3YTA0MzU2MDdlM2MzNTJmYmY0ZjU1MTA2ZjI5ODBmZDNjZDQyMzk3ZGJmNzEzN2VlN2YxZTMyY2Q4MGEzYjdhYjEyYjQ2YzE2OTIyMDI3OGQ3NzE3Yjc4YTNjNDVkNjM5NWExMzBhOGI1ODg0MWNiYzI5MGU0ZjgxN2RlM2E0ZmUxNmVjZDA3N2NhMzNhMGFhMjVlMjM1Y2M3ZjY2NTVhODBiYThhZWVjODc5MDViYjJhNzU0NTliN2JjYzVhMTMzZjI5OTM0OTNiNDFmZmNmNjNjZDdhMzkxZTNlNmY3ODA5NGNhNDQyYzgwMTQ0NDAzY2IwYTVmMDBiZmM2MWFlODgwIgogCiBQS0NTNyBQYXJzZSBGYWlsdXJlIEludmFsaWQgQVNOMTogQ2hhbmdlIGxlbmd0aCBmcm9tIDI1NiB0byAyNTcgIzYzNC4wCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NgogcGtjczdfYXNuMV9mYWlsOiIzMDgyMDQ5ZDA2MDkyYTg2NDg4NmY3MGQwMTA3MDJhMDgyMDQ4ZTMwODIwNDhhMDIwMTAxMzEwZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGIwNjA5MmE4NjQ4ODZmNzBkMDEwNzAxMzE4MjA0NjUzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAxNWJlY2Q4NzE5NWMxZGVmZjkwYzI0YzkxMjY5YjU1YjNmMDY5YmMyMjVjMzI2YzMxNGMxYTUxNzg2ZmZlMTRjODMwYmU0ZTRiYzczY2JhMzZjOTc2NzdiNDQxNjgyNzliZTkxZTdjZGY3YzE5Mzg2YWUyMTg2MjcxOWQxM2EzYTBmZmYwODAzZDQ2MDk2MmYyY2RhODM3MTQ4NDg3MzI1MmMzZDcwNTRkYjgxNDNlMmIwODFhMzgxNmVkMDgwNGNhNTA5OWFlNWZlY2U4M2Q1YzJjMzc4M2IxOTg4YjRiNDZkYzk0ZTU1NTg3YTEwN2VhMTU0NmJmMjJkMjhhMDk3ZjY1MmE0MDY2ZGMyOTY1MjY5MDY5YWYyZjUxNzZiYjhjZTljYTZkMTFmOTY3NTdmMDMyMDRmNzU2NzAzNTg3ZDAwYWQ0MjQ3OTZjOTJmYzdhZWI2ZjQ5NDQzMTk5OWVkYTMwOTkwZTRmNTc3MzYzMmVkMjU4ZmUwMjc2NjczNTk5ZGE2ZmNlMzVjZGFkNzcyNmEwYmIwMjRjYWQ5OTZiODhlMGNiOTg4NTRjZWI1YzBiNmVjNzQ4ZDlmOWNlNmE2Y2Q0Mzc4NThiYWNiODE0NjE4YTI3MmZmM2E0MTVjNmUwN2YzZGIwOTg4Nzc3ZmRlYzg0NWE5N2JmN2QxMDJkZDAzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzIwMjE0NTY0ZDU1NDAyNWFmNTk5ZTMyNzA3OWIyNzIwZWYwMGRmMzdjZmI3YzMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwMDQ2MDk4ZGM1ZjJiOTllM2JjMmVkNjY0MmQ3ZjBhNjFlZmFiYzE1YzM4Yzc2MzMzYmNjY2VlZWUzNjlhNGY0YTViZGRhOGVhNTkyNjQxMjRlNDI5ZjA4NjMyNjgzZGRiYTE3YmJmMjYyZDgyYjZiZWZhM2I0ZTE0ODAzNzZhOGM3ZjNjN2Q3ZTJhNjc3OWJiZjE4MjYyYWE4NTdkZThjMjBhMTJiNmEyY2U4ZTRkN2YzMWRkMWIxOTUzOTJjZjYxODVhZmNlMzRhZmUwNTg5NjA1N2IzNmU5YjE3MWI2YzY3ZWQ3YzIyODZjYmZhODNmZjhhMTY3YzdiYzcxMDlhZWU3ZDdlMTkwOWJkMzg0ZmJmYzYxOTM4ZWZjYTUxYzg5OTNjNzFkYjMxNzczMGYxNmU3ZTc3Njg2N2FlNGZkYzU2MmQ2ZjE1ZGU1ODVlN2I5NGVmNDk2YTM2NzYzNjdhMmNiYWFiN2I2MzY2NDhiMDA3NmJhZDVjZGYxZTA5NzQwZWM2YTQ1MWJmZjUzNGVmYTIxNTA5ZjNiYTc3YjgxMDFiOTFlYTdlNTVkZGJmZTE0MDE1MTcwNjdkN2IwMWEyYTA4NzlmMDg4NWM4OTRhODdjZmI2OGM0ZDdlZTg5MDYwNDg4MWFlYjk3YzIyZDFmMzM3ZWY5MjNlMDM1YTY0MDAzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzMwMjE0NjI0NzcyOTg3NTllOGUwNDcxOGFlNTYzMTU1ZjM1MjNjZmI4NGNkYjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwNmQyY2JiMzdmZDEyOTU3ZTVhNzQ4MGNlMDQzNWU4ZWY2MDc3ZGVmMDhmZjI3MDg0NGRlMjUxNmE0NzQyZjIxMWQ4Yzc0NjkwYmMwOTQ4ZTA4YTI5NmFiYmE5Mjg1ZjZiYjMwNWI5NWI3Zjk0MDhjZTQ0ZTgzODgwYzcxOTQ0NDY3MmVjOTk3NDZiYTc4Y2M0YmRlNDc1MzE5ZDAxYmRlNzdjNDlkNThkMTZkM2IyZTkxYzJlNjFlODMwM2NhM2Q3ZWRhMzc5N2ZkOGIzNWNhNzJiYjE0YjE1YTI0YjU2YmI3MGRjMTM0ODQ1NjU4MDgxMTBmZjVkYjU4YzU2ZjdhMDQzNTYwN2UzYzM1MmZiZjRmNTUxMDZmMjk4MGZkM2NkNDIzOTdkYmY3MTM3ZWU3ZjFlMzJjZDgwYTNiN2FiMTJiNDZjMTY5MjIwMjc4ZDc3MTdiNzhhM2M0NWQ2Mzk1YTEzMGE4YjU4ODQxY2JjMjkwZTRmODE3ZGUzYTRmZTE2ZWNkMDc3Y2EzM2EwYWEyNWUyMzVjYzdmNjY1NWE4MGJhOGFlZWM4NzkwNWJiMmE3NTQ1OWI3YmNjNWExMzNmMjk5MzQ5M2I0MWZmY2Y2M2NkN2EzOTFlM2U2Zjc4MDk0Y2E0NDJjODAxNDQ0MDNjYjBhNWYwMGJmYzYxYWU4ODAiCiAKIFBLQ1M3IFBhcnNlIEZhaWx1cmUgSW52YWxpZCBBU04xOiBDaGFuZ2UgdGFnIDMwIHRvIDAyICM2MzUuMAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHBrY3M3X2FzbjFfZmFpbDoiMzA4MjA0OWQwNjA5MmE4NjQ4ODZmNzBkMDEwNzAyYTA4MjA0OGUzMDgyMDQ4YTAyMDEwMTMxMGYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBiMDYwOTJhODY0ODg2ZjcwZDAxMDcwMTMxODIwNDY1MzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDViZWNkODcxOTVjMWRlZmY5MGMyNGM5MTI2OWI1NWIzZjA2OWJjMjI1YzMyNmMzMTRjMWE1MTc4NmZmZTE0YzgzMGJlNGU0YmM3M2NiYTM2Yzk3Njc3YjQ0MTY4Mjc5YmU5MWU3Y2RmN2MxOTM4NmFlMjE4NjI3MTlkMTNhM2EwZmZmMDgwM2Q0NjA5NjJmMmNkYTgzNzE0ODQ4NzMyNTJjM2Q3MDU0ZGI4MTQzZTJiMDgxYTM4MTZlZDA4MDRjYTUwOTlhZTVmZWNlODNkNWMyYzM3ODNiMTk4OGI0YjQ2ZGM5NGU1NTU4N2ExMDdlYTE1NDZiZjIyZDI4YTA5N2Y2NTJhNDA2NmRjMjk2NTI2OTA2OWFmMmY1MTc2YmI4Y2U5Y2E2ZDExZjk2NzU3ZjAzMjA0Zjc1NjcwMzU4N2QwMGFkNDI0Nzk2YzkyZmM3YWViNmY0OTQ0MzE5OTllZGEzMDk5MGU0ZjU3NzM2MzJlZDI1OGZlMDI3NjY3MzU5OWRhNmZjZTM1Y2RhZDc3MjZhMGJiMDI0Y2FkOTk2Yjg4ZTBjYjk4ODU0Y2ViNWMwYjZlYzc0OGQ5ZjljZTZhNmNkNDM3ODU4YmFjYjgxNDYxOGEyNzJmZjNhNDE1YzZlMDdmM2RiMDk4ODc3N2ZkZWM4NDVhOTdiZjdkMTAyZGQwMDI4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMyMDIxNDU2NGQ1NTQwMjVhZjU5OWUzMjcwNzliMjcyMGVmMDBkZjM3Y2ZiN2MzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDA0NjA5OGRjNWYyYjk5ZTNiYzJlZDY2NDJkN2YwYTYxZWZhYmMxNWMzOGM3NjMzM2JjY2NlZWVlMzY5YTRmNGE1YmRkYThlYTU5MjY0MTI0ZTQyOWYwODYzMjY4M2RkYmExN2JiZjI2MmQ4MmI2YmVmYTNiNGUxNDgwMzc2YThjN2YzYzdkN2UyYTY3NzliYmYxODI2MmFhODU3ZGU4YzIwYTEyYjZhMmNlOGU0ZDdmMzFkZDFiMTk1MzkyY2Y2MTg1YWZjZTM0YWZlMDU4OTYwNTdiMzZlOWIxNzFiNmM2N2VkN2MyMjg2Y2JmYTgzZmY4YTE2N2M3YmM3MTA5YWVlN2Q3ZTE5MDliZDM4NGZiZmM2MTkzOGVmY2E1MWM4OTkzYzcxZGIzMTc3MzBmMTZlN2U3NzY4NjdhZTRmZGM1NjJkNmYxNWRlNTg1ZTdiOTRlZjQ5NmEzNjc2MzY3YTJjYmFhYjdiNjM2NjQ4YjAwNzZiYWQ1Y2RmMWUwOTc0MGVjNmE0NTFiZmY1MzRlZmEyMTUwOWYzYmE3N2I4MTAxYjkxZWE3ZTU1ZGRiZmUxNDAxNTE3MDY3ZDdiMDFhMmEwODc5ZjA4ODVjODk0YTg3Y2ZiNjhjNGQ3ZWU4OTA2MDQ4ODFhZWI5N2MyMmQxZjMzN2VmOTIzZTAzNWE2NDAwMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMzMDIxNDYyNDc3Mjk4NzU5ZThlMDQ3MThhZTU2MzE1NWYzNTIzY2ZiODRjZGIzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDZkMmNiYjM3ZmQxMjk1N2U1YTc0ODBjZTA0MzVlOGVmNjA3N2RlZjA4ZmYyNzA4NDRkZTI1MTZhNDc0MmYyMTFkOGM3NDY5MGJjMDk0OGUwOGEyOTZhYmJhOTI4NWY2YmIzMDViOTViN2Y5NDA4Y2U0NGU4Mzg4MGM3MTk0NDQ2NzJlYzk5NzQ2YmE3OGNjNGJkZTQ3NTMxOWQwMWJkZTc3YzQ5ZDU4ZDE2ZDNiMmU5MWMyZTYxZTgzMDNjYTNkN2VkYTM3OTdmZDhiMzVjYTcyYmIxNGIxNWEyNGI1NmJiNzBkYzEzNDg0NTY1ODA4MTEwZmY1ZGI1OGM1NmY3YTA0MzU2MDdlM2MzNTJmYmY0ZjU1MTA2ZjI5ODBmZDNjZDQyMzk3ZGJmNzEzN2VlN2YxZTMyY2Q4MGEzYjdhYjEyYjQ2YzE2OTIyMDI3OGQ3NzE3Yjc4YTNjNDVkNjM5NWExMzBhOGI1ODg0MWNiYzI5MGU0ZjgxN2RlM2E0ZmUxNmVjZDA3N2NhMzNhMGFhMjVlMjM1Y2M3ZjY2NTVhODBiYThhZWVjODc5MDViYjJhNzU0NTliN2JjYzVhMTMzZjI5OTM0OTNiNDFmZmNmNjNjZDdhMzkxZTNlNmY3ODA5NGNhNDQyYzgwMTQ0NDAzY2IwYTVmMDBiZmM2MWFlODgwIgogCiBQS0NTNyBQYXJzZSBGYWlsdXJlIEludmFsaWQgQVNOMTogQ2hhbmdlIGxlbmd0aCBmcm9tIDM3MSB0byAzNzIgIzYzNi4wCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NgogcGtjczdfYXNuMV9mYWlsOiIzMDgyMDQ5ZDA2MDkyYTg2NDg4NmY3MGQwMTA3MDJhMDgyMDQ4ZTMwODIwNDhhMDIwMTAxMzEwZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGIwNjA5MmE4NjQ4ODZmNzBkMDEwNzAxMzE4MjA0NjUzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwNWJlY2Q4NzE5NWMxZGVmZjkwYzI0YzkxMjY5YjU1YjNmMDY5YmMyMjVjMzI2YzMxNGMxYTUxNzg2ZmZlMTRjODMwYmU0ZTRiYzczY2JhMzZjOTc2NzdiNDQxNjgyNzliZTkxZTdjZGY3YzE5Mzg2YWUyMTg2MjcxOWQxM2EzYTBmZmYwODAzZDQ2MDk2MmYyY2RhODM3MTQ4NDg3MzI1MmMzZDcwNTRkYjgxNDNlMmIwODFhMzgxNmVkMDgwNGNhNTA5OWFlNWZlY2U4M2Q1YzJjMzc4M2IxOTg4YjRiNDZkYzk0ZTU1NTg3YTEwN2VhMTU0NmJmMjJkMjhhMDk3ZjY1MmE0MDY2ZGMyOTY1MjY5MDY5YWYyZjUxNzZiYjhjZTljYTZkMTFmOTY3NTdmMDMyMDRmNzU2NzAzNTg3ZDAwYWQ0MjQ3OTZjOTJmYzdhZWI2ZjQ5NDQzMTk5OWVkYTMwOTkwZTRmNTc3MzYzMmVkMjU4ZmUwMjc2NjczNTk5ZGE2ZmNlMzVjZGFkNzcyNmEwYmIwMjRjYWQ5OTZiODhlMGNiOTg4NTRjZWI1YzBiNmVjNzQ4ZDlmOWNlNmE2Y2Q0Mzc4NThiYWNiODE0NjE4YTI3MmZmM2E0MTVjNmUwN2YzZGIwOTg4Nzc3ZmRlYzg0NWE5N2JmN2QxMDJkZDAzMDgyMDE3NDAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzIwMjE0NTY0ZDU1NDAyNWFmNTk5ZTMyNzA3OWIyNzIwZWYwMGRmMzdjZmI3YzMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwMDQ2MDk4ZGM1ZjJiOTllM2JjMmVkNjY0MmQ3ZjBhNjFlZmFiYzE1YzM4Yzc2MzMzYmNjY2VlZWUzNjlhNGY0YTViZGRhOGVhNTkyNjQxMjRlNDI5ZjA4NjMyNjgzZGRiYTE3YmJmMjYyZDgyYjZiZWZhM2I0ZTE0ODAzNzZhOGM3ZjNjN2Q3ZTJhNjc3OWJiZjE4MjYyYWE4NTdkZThjMjBhMTJiNmEyY2U4ZTRkN2YzMWRkMWIxOTUzOTJjZjYxODVhZmNlMzRhZmUwNTg5NjA1N2IzNmU5YjE3MWI2YzY3ZWQ3YzIyODZjYmZhODNmZjhhMTY3YzdiYzcxMDlhZWU3ZDdlMTkwOWJkMzg0ZmJmYzYxOTM4ZWZjYTUxYzg5OTNjNzFkYjMxNzczMGYxNmU3ZTc3Njg2N2FlNGZkYzU2MmQ2ZjE1ZGU1ODVlN2I5NGVmNDk2YTM2NzYzNjdhMmNiYWFiN2I2MzY2NDhiMDA3NmJhZDVjZGYxZTA5NzQwZWM2YTQ1MWJmZjUzNGVmYTIxNTA5ZjNiYTc3YjgxMDFiOTFlYTdlNTVkZGJmZTE0MDE1MTcwNjdkN2IwMWEyYTA4NzlmMDg4NWM4OTRhODdjZmI2OGM0ZDdlZTg5MDYwNDg4MWFlYjk3YzIyZDFmMzM3ZWY5MjNlMDM1YTY0MDAzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzMwMjE0NjI0NzcyOTg3NTllOGUwNDcxOGFlNTYzMTU1ZjM1MjNjZmI4NGNkYjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwNmQyY2JiMzdmZDEyOTU3ZTVhNzQ4MGNlMDQzNWU4ZWY2MDc3ZGVmMDhmZjI3MDg0NGRlMjUxNmE0NzQyZjIxMWQ4Yzc0NjkwYmMwOTQ4ZTA4YTI5NmFiYmE5Mjg1ZjZiYjMwNWI5NWI3Zjk0MDhjZTQ0ZTgzODgwYzcxOTQ0NDY3MmVjOTk3NDZiYTc4Y2M0YmRlNDc1MzE5ZDAxYmRlNzdjNDlkNThkMTZkM2IyZTkxYzJlNjFlODMwM2NhM2Q3ZWRhMzc5N2ZkOGIzNWNhNzJiYjE0YjE1YTI0YjU2YmI3MGRjMTM0ODQ1NjU4MDgxMTBmZjVkYjU4YzU2ZjdhMDQzNTYwN2UzYzM1MmZiZjRmNTUxMDZmMjk4MGZkM2NkNDIzOTdkYmY3MTM3ZWU3ZjFlMzJjZDgwYTNiN2FiMTJiNDZjMTY5MjIwMjc4ZDc3MTdiNzhhM2M0NWQ2Mzk1YTEzMGE4YjU4ODQxY2JjMjkwZTRmODE3ZGUzYTRmZTE2ZWNkMDc3Y2EzM2EwYWEyNWUyMzVjYzdmNjY1NWE4MGJhOGFlZWM4NzkwNWJiMmE3NTQ1OWI3YmNjNWExMzNmMjk5MzQ5M2I0MWZmY2Y2M2NkN2EzOTFlM2U2Zjc4MDk0Y2E0NDJjODAxNDQ0MDNjYjBhNWYwMGJmYzYxYWU4ODAiCiAKIFBLQ1M3IFBhcnNlIEZhaWx1cmUgSW52YWxpZCBBU04xOiBDaGFuZ2UgY29udGVudHMgb2YgdGFnIDMwIHRvIGNvbnRhaW4gb25lIHVuYWNjb3VudGVkIGV4dHJhIGJ5dGUgIzYzNy4wCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NgogcGtjczdfYXNuMV9mYWlsOiIzMDgyMDQ5ZDA2MDkyYTg2NDg4NmY3MGQwMTA3MDJhMDgyMDQ4ZTMwODIwNDhhMDIwMTAxMzEwZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGIwNjA5MmE4NjQ4ODZmNzBkMDEwNzAxMzE4MjA0NjUzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwNWJlY2Q4NzE5NWMxZGVmZjkwYzI0YzkxMjY5YjU1YjNmMDY5YmMyMjVjMzI2YzMxNGMxYTUxNzg2ZmZlMTRjODMwYmU0ZTRiYzczY2JhMzZjOTc2NzdiNDQxNjgyNzliZTkxZTdjZGY3YzE5Mzg2YWUyMTg2MjcxOWQxM2EzYTBmZmYwODAzZDQ2MDk2MmYyY2RhODM3MTQ4NDg3MzI1MmMzZDcwNTRkYjgxNDNlMmIwODFhMzgxNmVkMDgwNGNhNTA5OWFlNWZlY2U4M2Q1YzJjMzc4M2IxOTg4YjRiNDZkYzk0ZTU1NTg3YTEwN2VhMTU0NmJmMjJkMjhhMDk3ZjY1MmE0MDY2ZGMyOTY1MjY5MDY5YWYyZjUxNzZiYjhjZTljYTZkMTFmOTY3NTdmMDMyMDRmNzU2NzAzNTg3ZDAwYWQ0MjQ3OTZjOTJmYzdhZWI2ZjQ5NDQzMTk5OWVkYTMwOTkwZTRmNTc3MzYzMmVkMjU4ZmUwMjc2NjczNTk5ZGE2ZmNlMzVjZGFkNzcyNmEwYmIwMjRjYWQ5OTZiODhlMGNiOTg4NTRjZWI1YzBiNmVjNzQ4ZDlmOWNlNmE2Y2Q0Mzc4NThiYWNiODE0NjE4YTI3MmZmM2E0MTVjNmUwN2YzZGIwOTg4Nzc3ZmRlYzg0NWE5N2JmN2QxMDJkZDAzMDgyMDE3NDAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzIwMjE0NTY0ZDU1NDAyNWFmNTk5ZTMyNzA3OWIyNzIwZWYwMGRmMzdjZmI3YzMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwMDQ2MDk4ZGM1ZjJiOTllM2JjMmVkNjY0MmQ3ZjBhNjFlZmFiYzE1YzM4Yzc2MzMzYmNjY2VlZWUzNjlhNGY0YTViZGRhOGVhNTkyNjQxMjRlNDI5ZjA4NjMyNjgzZGRiYTE3YmJmMjYyZDgyYjZiZWZhM2I0ZTE0ODAzNzZhOGM3ZjNjN2Q3ZTJhNjc3OWJiZjE4MjYyYWE4NTdkZThjMjBhMTJiNmEyY2U4ZTRkN2YzMWRkMWIxOTUzOTJjZjYxODVhZmNlMzRhZmUwNTg5NjA1N2IzNmU5YjE3MWI2YzY3ZWQ3YzIyODZjYmZhODNmZjhhMTY3YzdiYzcxMDlhZWU3ZDdlMTkwOWJkMzg0ZmJmYzYxOTM4ZWZjYTUxYzg5OTNjNzFkYjMxNzczMGYxNmU3ZTc3Njg2N2FlNGZkYzU2MmQ2ZjE1ZGU1ODVlN2I5NGVmNDk2YTM2NzYzNjdhMmNiYWFiN2I2MzY2NDhiMDA3NmJhZDVjZGYxZTA5NzQwZWM2YTQ1MWJmZjUzNGVmYTIxNTA5ZjNiYTc3YjgxMDFiOTFlYTdlNTVkZGJmZTE0MDE1MTcwNjdkN2IwMWEyYTA4NzlmMDg4NWM4OTRhODdjZmI2OGM0ZDdlZTg5MDYwNDg4MWFlYjk3YzIyZDFmMzM3ZWY5MjNlMDM1YTY0MDAwMDMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMzAyMTQ2MjQ3NzI5ODc1OWU4ZTA0NzE4YWU1NjMxNTVmMzUyM2NmYjg0Y2RiMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDA2ZDJjYmIzN2ZkMTI5NTdlNWE3NDgwY2UwNDM1ZThlZjYwNzdkZWYwOGZmMjcwODQ0ZGUyNTE2YTQ3NDJmMjExZDhjNzQ2OTBiYzA5NDhlMDhhMjk2YWJiYTkyODVmNmJiMzA1Yjk1YjdmOTQwOGNlNDRlODM4ODBjNzE5NDQ0NjcyZWM5OTc0NmJhNzhjYzRiZGU0NzUzMTlkMDFiZGU3N2M0OWQ1OGQxNmQzYjJlOTFjMmU2MWU4MzAzY2EzZDdlZGEzNzk3ZmQ4YjM1Y2E3MmJiMTRiMTVhMjRiNTZiYjcwZGMxMzQ4NDU2NTgwODExMGZmNWRiNThjNTZmN2EwNDM1NjA3ZTNjMzUyZmJmNGY1NTEwNmYyOTgwZmQzY2Q0MjM5N2RiZjcxMzdlZTdmMWUzMmNkODBhM2I3YWIxMmI0NmMxNjkyMjAyNzhkNzcxN2I3OGEzYzQ1ZDYzOTVhMTMwYThiNTg4NDFjYmMyOTBlNGY4MTdkZTNhNGZlMTZlY2QwNzdjYTMzYTBhYTI1ZTIzNWNjN2Y2NjU1YTgwYmE4YWVlYzg3OTA1YmIyYTc1NDU5YjdiY2M1YTEzM2YyOTkzNDkzYjQxZmZjZjYzY2Q3YTM5MWUzZTZmNzgwOTRjYTQ0MmM4MDE0NDQwM2NiMGE1ZjAwYmZjNjFhZTg4MCIKIAogUEtDUzcgUGFyc2UgRmFpbHVyZSBJbnZhbGlkIEFTTjE6IENoYW5nZSBsZW5ndGggZnJvbSAzNzEgdG8gMzcwICM2MzguMAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHBrY3M3X2FzbjFfZmFpbDoiMzA4MjA0OWQwNjA5MmE4NjQ4ODZmNzBkMDEwNzAyYTA4MjA0OGUzMDgyMDQ4YTAyMDEwMTMxMGYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBiMDYwOTJhODY0ODg2ZjcwZDAxMDcwMTMxODIwNDY1MzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDViZWNkODcxOTVjMWRlZmY5MGMyNGM5MTI2OWI1NWIzZjA2OWJjMjI1YzMyNmMzMTRjMWE1MTc4NmZmZTE0YzgzMGJlNGU0YmM3M2NiYTM2Yzk3Njc3YjQ0MTY4Mjc5YmU5MWU3Y2RmN2MxOTM4NmFlMjE4NjI3MTlkMTNhM2EwZmZmMDgwM2Q0NjA5NjJmMmNkYTgzNzE0ODQ4NzMyNTJjM2Q3MDU0ZGI4MTQzZTJiMDgxYTM4MTZlZDA4MDRjYTUwOTlhZTVmZWNlODNkNWMyYzM3ODNiMTk4OGI0YjQ2ZGM5NGU1NTU4N2ExMDdlYTE1NDZiZjIyZDI4YTA5N2Y2NTJhNDA2NmRjMjk2NTI2OTA2OWFmMmY1MTc2YmI4Y2U5Y2E2ZDExZjk2NzU3ZjAzMjA0Zjc1NjcwMzU4N2QwMGFkNDI0Nzk2YzkyZmM3YWViNmY0OTQ0MzE5OTllZGEzMDk5MGU0ZjU3NzM2MzJlZDI1OGZlMDI3NjY3MzU5OWRhNmZjZTM1Y2RhZDc3MjZhMGJiMDI0Y2FkOTk2Yjg4ZTBjYjk4ODU0Y2ViNWMwYjZlYzc0OGQ5ZjljZTZhNmNkNDM3ODU4YmFjYjgxNDYxOGEyNzJmZjNhNDE1YzZlMDdmM2RiMDk4ODc3N2ZkZWM4NDVhOTdiZjdkMTAyZGQwMzA4MjAxNzIwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMyMDIxNDU2NGQ1NTQwMjVhZjU5OWUzMjcwNzliMjcyMGVmMDBkZjM3Y2ZiN2MzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDA0NjA5OGRjNWYyYjk5ZTNiYzJlZDY2NDJkN2YwYTYxZWZhYmMxNWMzOGM3NjMzM2JjY2NlZWVlMzY5YTRmNGE1YmRkYThlYTU5MjY0MTI0ZTQyOWYwODYzMjY4M2RkYmExN2JiZjI2MmQ4MmI2YmVmYTNiNGUxNDgwMzc2YThjN2YzYzdkN2UyYTY3NzliYmYxODI2MmFhODU3ZGU4YzIwYTEyYjZhMmNlOGU0ZDdmMzFkZDFiMTk1MzkyY2Y2MTg1YWZjZTM0YWZlMDU4OTYwNTdiMzZlOWIxNzFiNmM2N2VkN2MyMjg2Y2JmYTgzZmY4YTE2N2M3YmM3MTA5YWVlN2Q3ZTE5MDliZDM4NGZiZmM2MTkzOGVmY2E1MWM4OTkzYzcxZGIzMTc3MzBmMTZlN2U3NzY4NjdhZTRmZGM1NjJkNmYxNWRlNTg1ZTdiOTRlZjQ5NmEzNjc2MzY3YTJjYmFhYjdiNjM2NjQ4YjAwNzZiYWQ1Y2RmMWUwOTc0MGVjNmE0NTFiZmY1MzRlZmEyMTUwOWYzYmE3N2I4MTAxYjkxZWE3ZTU1ZGRiZmUxNDAxNTE3MDY3ZDdiMDFhMmEwODc5ZjA4ODVjODk0YTg3Y2ZiNjhjNGQ3ZWU4OTA2MDQ4ODFhZWI5N2MyMmQxZjMzN2VmOTIzZTAzNWE2NDAwMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMzMDIxNDYyNDc3Mjk4NzU5ZThlMDQ3MThhZTU2MzE1NWYzNTIzY2ZiODRjZGIzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDZkMmNiYjM3ZmQxMjk1N2U1YTc0ODBjZTA0MzVlOGVmNjA3N2RlZjA4ZmYyNzA4NDRkZTI1MTZhNDc0MmYyMTFkOGM3NDY5MGJjMDk0OGUwOGEyOTZhYmJhOTI4NWY2YmIzMDViOTViN2Y5NDA4Y2U0NGU4Mzg4MGM3MTk0NDQ2NzJlYzk5NzQ2YmE3OGNjNGJkZTQ3NTMxOWQwMWJkZTc3YzQ5ZDU4ZDE2ZDNiMmU5MWMyZTYxZTgzMDNjYTNkN2VkYTM3OTdmZDhiMzVjYTcyYmIxNGIxNWEyNGI1NmJiNzBkYzEzNDg0NTY1ODA4MTEwZmY1ZGI1OGM1NmY3YTA0MzU2MDdlM2MzNTJmYmY0ZjU1MTA2ZjI5ODBmZDNjZDQyMzk3ZGJmNzEzN2VlN2YxZTMyY2Q4MGEzYjdhYjEyYjQ2YzE2OTIyMDI3OGQ3NzE3Yjc4YTNjNDVkNjM5NWExMzBhOGI1ODg0MWNiYzI5MGU0ZjgxN2RlM2E0ZmUxNmVjZDA3N2NhMzNhMGFhMjVlMjM1Y2M3ZjY2NTVhODBiYThhZWVjODc5MDViYjJhNzU0NTliN2JjYzVhMTMzZjI5OTM0OTNiNDFmZmNmNjNjZDdhMzkxZTNlNmY3ODA5NGNhNDQyYzgwMTQ0NDAzY2IwYTVmMDBiZmM2MWFlODgwIgogCiBQS0NTNyBQYXJzZSBGYWlsdXJlIEludmFsaWQgQVNOMTogQ2hhbmdlIHRhZyAwMiB0byAwNCAjNjM5LjAKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBwa2NzN19hc24xX2ZhaWw6IjMwODIwNDlkMDYwOTJhODY0ODg2ZjcwZDAxMDcwMmEwODIwNDhlMzA4MjA0OGEwMjAxMDEzMTBmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwYjA2MDkyYTg2NDg4NmY3MGQwMTA3MDEzMTgyMDQ2NTMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTAyMTQ3YmRlZGRkMjQ0NGNkMWNkZmU1YzQxYTgxMDJjODliN2RmMmU2Y2JmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDA1YmVjZDg3MTk1YzFkZWZmOTBjMjRjOTEyNjliNTViM2YwNjliYzIyNWMzMjZjMzE0YzFhNTE3ODZmZmUxNGM4MzBiZTRlNGJjNzNjYmEzNmM5NzY3N2I0NDE2ODI3OWJlOTFlN2NkZjdjMTkzODZhZTIxODYyNzE5ZDEzYTNhMGZmZjA4MDNkNDYwOTYyZjJjZGE4MzcxNDg0ODczMjUyYzNkNzA1NGRiODE0M2UyYjA4MWEzODE2ZWQwODA0Y2E1MDk5YWU1ZmVjZTgzZDVjMmMzNzgzYjE5ODhiNGI0NmRjOTRlNTU1ODdhMTA3ZWExNTQ2YmYyMmQyOGEwOTdmNjUyYTQwNjZkYzI5NjUyNjkwNjlhZjJmNTE3NmJiOGNlOWNhNmQxMWY5Njc1N2YwMzIwNGY3NTY3MDM1ODdkMDBhZDQyNDc5NmM5MmZjN2FlYjZmNDk0NDMxOTk5ZWRhMzA5OTBlNGY1NzczNjMyZWQyNThmZTAyNzY2NzM1OTlkYTZmY2UzNWNkYWQ3NzI2YTBiYjAyNGNhZDk5NmI4OGUwY2I5ODg1NGNlYjVjMGI2ZWM3NDhkOWY5Y2U2YTZjZDQzNzg1OGJhY2I4MTQ2MThhMjcyZmYzYTQxNWM2ZTA3ZjNkYjA5ODg3NzdmZGVjODQ1YTk3YmY3ZDEwMmRkMDMwODIwMTczMDQwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMjAyMTQ1NjRkNTU0MDI1YWY1OTllMzI3MDc5YjI3MjBlZjAwZGYzN2NmYjdjMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDAwNDYwOThkYzVmMmI5OWUzYmMyZWQ2NjQyZDdmMGE2MWVmYWJjMTVjMzhjNzYzMzNiY2NjZWVlZTM2OWE0ZjRhNWJkZGE4ZWE1OTI2NDEyNGU0MjlmMDg2MzI2ODNkZGJhMTdiYmYyNjJkODJiNmJlZmEzYjRlMTQ4MDM3NmE4YzdmM2M3ZDdlMmE2Nzc5YmJmMTgyNjJhYTg1N2RlOGMyMGExMmI2YTJjZThlNGQ3ZjMxZGQxYjE5NTM5MmNmNjE4NWFmY2UzNGFmZTA1ODk2MDU3YjM2ZTliMTcxYjZjNjdlZDdjMjI4NmNiZmE4M2ZmOGExNjdjN2JjNzEwOWFlZTdkN2UxOTA5YmQzODRmYmZjNjE5MzhlZmNhNTFjODk5M2M3MWRiMzE3NzMwZjE2ZTdlNzc2ODY3YWU0ZmRjNTYyZDZmMTVkZTU4NWU3Yjk0ZWY0OTZhMzY3NjM2N2EyY2JhYWI3YjYzNjY0OGIwMDc2YmFkNWNkZjFlMDk3NDBlYzZhNDUxYmZmNTM0ZWZhMjE1MDlmM2JhNzdiODEwMWI5MWVhN2U1NWRkYmZlMTQwMTUxNzA2N2Q3YjAxYTJhMDg3OWYwODg1Yzg5NGE4N2NmYjY4YzRkN2VlODkwNjA0ODgxYWViOTdjMjJkMWYzMzdlZjkyM2UwMzVhNjQwMDMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMzAyMTQ2MjQ3NzI5ODc1OWU4ZTA0NzE4YWU1NjMxNTVmMzUyM2NmYjg0Y2RiMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDA2ZDJjYmIzN2ZkMTI5NTdlNWE3NDgwY2UwNDM1ZThlZjYwNzdkZWYwOGZmMjcwODQ0ZGUyNTE2YTQ3NDJmMjExZDhjNzQ2OTBiYzA5NDhlMDhhMjk2YWJiYTkyODVmNmJiMzA1Yjk1YjdmOTQwOGNlNDRlODM4ODBjNzE5NDQ0NjcyZWM5OTc0NmJhNzhjYzRiZGU0NzUzMTlkMDFiZGU3N2M0OWQ1OGQxNmQzYjJlOTFjMmU2MWU4MzAzY2EzZDdlZGEzNzk3ZmQ4YjM1Y2E3MmJiMTRiMTVhMjRiNTZiYjcwZGMxMzQ4NDU2NTgwODExMGZmNWRiNThjNTZmN2EwNDM1NjA3ZTNjMzUyZmJmNGY1NTEwNmYyOTgwZmQzY2Q0MjM5N2RiZjcxMzdlZTdmMWUzMmNkODBhM2I3YWIxMmI0NmMxNjkyMjAyNzhkNzcxN2I3OGEzYzQ1ZDYzOTVhMTMwYThiNTg4NDFjYmMyOTBlNGY4MTdkZTNhNGZlMTZlY2QwNzdjYTMzYTBhYTI1ZTIzNWNjN2Y2NjU1YTgwYmE4YWVlYzg3OTA1YmIyYTc1NDU5YjdiY2M1YTEzM2YyOTkzNDkzYjQxZmZjZjYzY2Q3YTM5MWUzZTZmNzgwOTRjYTQ0MmM4MDE0NDQwM2NiMGE1ZjAwYmZjNjFhZTg4MCIKIAogUEtDUzcgUGFyc2UgRmFpbHVyZSBJbnZhbGlkIEFTTjE6IENoYW5nZSBsZW5ndGggZnJvbSAxIHRvIDIgIzY0MC4wCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NgogcGtjczdfYXNuMV9mYWlsOiIzMDgyMDQ5ZDA2MDkyYTg2NDg4NmY3MGQwMTA3MDJhMDgyMDQ4ZTMwODIwNDhhMDIwMTAxMzEwZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGIwNjA5MmE4NjQ4ODZmNzBkMDEwNzAxMzE4MjA0NjUzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwNWJlY2Q4NzE5NWMxZGVmZjkwYzI0YzkxMjY5YjU1YjNmMDY5YmMyMjVjMzI2YzMxNGMxYTUxNzg2ZmZlMTRjODMwYmU0ZTRiYzczY2JhMzZjOTc2NzdiNDQxNjgyNzliZTkxZTdjZGY3YzE5Mzg2YWUyMTg2MjcxOWQxM2EzYTBmZmYwODAzZDQ2MDk2MmYyY2RhODM3MTQ4NDg3MzI1MmMzZDcwNTRkYjgxNDNlMmIwODFhMzgxNmVkMDgwNGNhNTA5OWFlNWZlY2U4M2Q1YzJjMzc4M2IxOTg4YjRiNDZkYzk0ZTU1NTg3YTEwN2VhMTU0NmJmMjJkMjhhMDk3ZjY1MmE0MDY2ZGMyOTY1MjY5MDY5YWYyZjUxNzZiYjhjZTljYTZkMTFmOTY3NTdmMDMyMDRmNzU2NzAzNTg3ZDAwYWQ0MjQ3OTZjOTJmYzdhZWI2ZjQ5NDQzMTk5OWVkYTMwOTkwZTRmNTc3MzYzMmVkMjU4ZmUwMjc2NjczNTk5ZGE2ZmNlMzVjZGFkNzcyNmEwYmIwMjRjYWQ5OTZiODhlMGNiOTg4NTRjZWI1YzBiNmVjNzQ4ZDlmOWNlNmE2Y2Q0Mzc4NThiYWNiODE0NjE4YTI3MmZmM2E0MTVjNmUwN2YzZGIwOTg4Nzc3ZmRlYzg0NWE5N2JmN2QxMDJkZDAzMDgyMDE3MzAyMDIwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzIwMjE0NTY0ZDU1NDAyNWFmNTk5ZTMyNzA3OWIyNzIwZWYwMGRmMzdjZmI3YzMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwMDQ2MDk4ZGM1ZjJiOTllM2JjMmVkNjY0MmQ3ZjBhNjFlZmFiYzE1YzM4Yzc2MzMzYmNjY2VlZWUzNjlhNGY0YTViZGRhOGVhNTkyNjQxMjRlNDI5ZjA4NjMyNjgzZGRiYTE3YmJmMjYyZDgyYjZiZWZhM2I0ZTE0ODAzNzZhOGM3ZjNjN2Q3ZTJhNjc3OWJiZjE4MjYyYWE4NTdkZThjMjBhMTJiNmEyY2U4ZTRkN2YzMWRkMWIxOTUzOTJjZjYxODVhZmNlMzRhZmUwNTg5NjA1N2IzNmU5YjE3MWI2YzY3ZWQ3YzIyODZjYmZhODNmZjhhMTY3YzdiYzcxMDlhZWU3ZDdlMTkwOWJkMzg0ZmJmYzYxOTM4ZWZjYTUxYzg5OTNjNzFkYjMxNzczMGYxNmU3ZTc3Njg2N2FlNGZkYzU2MmQ2ZjE1ZGU1ODVlN2I5NGVmNDk2YTM2NzYzNjdhMmNiYWFiN2I2MzY2NDhiMDA3NmJhZDVjZGYxZTA5NzQwZWM2YTQ1MWJmZjUzNGVmYTIxNTA5ZjNiYTc3YjgxMDFiOTFlYTdlNTVkZGJmZTE0MDE1MTcwNjdkN2IwMWEyYTA4NzlmMDg4NWM4OTRhODdjZmI2OGM0ZDdlZTg5MDYwNDg4MWFlYjk3YzIyZDFmMzM3ZWY5MjNlMDM1YTY0MDAzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzMwMjE0NjI0NzcyOTg3NTllOGUwNDcxOGFlNTYzMTU1ZjM1MjNjZmI4NGNkYjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwNmQyY2JiMzdmZDEyOTU3ZTVhNzQ4MGNlMDQzNWU4ZWY2MDc3ZGVmMDhmZjI3MDg0NGRlMjUxNmE0NzQyZjIxMWQ4Yzc0NjkwYmMwOTQ4ZTA4YTI5NmFiYmE5Mjg1ZjZiYjMwNWI5NWI3Zjk0MDhjZTQ0ZTgzODgwYzcxOTQ0NDY3MmVjOTk3NDZiYTc4Y2M0YmRlNDc1MzE5ZDAxYmRlNzdjNDlkNThkMTZkM2IyZTkxYzJlNjFlODMwM2NhM2Q3ZWRhMzc5N2ZkOGIzNWNhNzJiYjE0YjE1YTI0YjU2YmI3MGRjMTM0ODQ1NjU4MDgxMTBmZjVkYjU4YzU2ZjdhMDQzNTYwN2UzYzM1MmZiZjRmNTUxMDZmMjk4MGZkM2NkNDIzOTdkYmY3MTM3ZWU3ZjFlMzJjZDgwYTNiN2FiMTJiNDZjMTY5MjIwMjc4ZDc3MTdiNzhhM2M0NWQ2Mzk1YTEzMGE4YjU4ODQxY2JjMjkwZTRmODE3ZGUzYTRmZTE2ZWNkMDc3Y2EzM2EwYWEyNWUyMzVjYzdmNjY1NWE4MGJhOGFlZWM4NzkwNWJiMmE3NTQ1OWI3YmNjNWExMzNmMjk5MzQ5M2I0MWZmY2Y2M2NkN2EzOTFlM2U2Zjc4MDk0Y2E0NDJjODAxNDQ0MDNjYjBhNWYwMGJmYzYxYWU4ODAiCiAKIFBLQ1M3IFBhcnNlIEZhaWx1cmUgSW52YWxpZCBBU04xOiBDaGFuZ2UgbGVuZ3RoIGZyb20gMSB0byAwICM2NDEuMAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHBrY3M3X2FzbjFfZmFpbDoiMzA4MjA0OWQwNjA5MmE4NjQ4ODZmNzBkMDEwNzAyYTA4MjA0OGUzMDgyMDQ4YTAyMDEwMTMxMGYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBiMDYwOTJhODY0ODg2ZjcwZDAxMDcwMTMxODIwNDY1MzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDViZWNkODcxOTVjMWRlZmY5MGMyNGM5MTI2OWI1NWIzZjA2OWJjMjI1YzMyNmMzMTRjMWE1MTc4NmZmZTE0YzgzMGJlNGU0YmM3M2NiYTM2Yzk3Njc3YjQ0MTY4Mjc5YmU5MWU3Y2RmN2MxOTM4NmFlMjE4NjI3MTlkMTNhM2EwZmZmMDgwM2Q0NjA5NjJmMmNkYTgzNzE0ODQ4NzMyNTJjM2Q3MDU0ZGI4MTQzZTJiMDgxYTM4MTZlZDA4MDRjYTUwOTlhZTVmZWNlODNkNWMyYzM3ODNiMTk4OGI0YjQ2ZGM5NGU1NTU4N2ExMDdlYTE1NDZiZjIyZDI4YTA5N2Y2NTJhNDA2NmRjMjk2NTI2OTA2OWFmMmY1MTc2YmI4Y2U5Y2E2ZDExZjk2NzU3ZjAzMjA0Zjc1NjcwMzU4N2QwMGFkNDI0Nzk2YzkyZmM3YWViNmY0OTQ0MzE5OTllZGEzMDk5MGU0ZjU3NzM2MzJlZDI1OGZlMDI3NjY3MzU5OWRhNmZjZTM1Y2RhZDc3MjZhMGJiMDI0Y2FkOTk2Yjg4ZTBjYjk4ODU0Y2ViNWMwYjZlYzc0OGQ5ZjljZTZhNmNkNDM3ODU4YmFjYjgxNDYxOGEyNzJmZjNhNDE1YzZlMDdmM2RiMDk4ODc3N2ZkZWM4NDVhOTdiZjdkMTAyZGQwMzA4MjAxNzMwMjAwMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMyMDIxNDU2NGQ1NTQwMjVhZjU5OWUzMjcwNzliMjcyMGVmMDBkZjM3Y2ZiN2MzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDA0NjA5OGRjNWYyYjk5ZTNiYzJlZDY2NDJkN2YwYTYxZWZhYmMxNWMzOGM3NjMzM2JjY2NlZWVlMzY5YTRmNGE1YmRkYThlYTU5MjY0MTI0ZTQyOWYwODYzMjY4M2RkYmExN2JiZjI2MmQ4MmI2YmVmYTNiNGUxNDgwMzc2YThjN2YzYzdkN2UyYTY3NzliYmYxODI2MmFhODU3ZGU4YzIwYTEyYjZhMmNlOGU0ZDdmMzFkZDFiMTk1MzkyY2Y2MTg1YWZjZTM0YWZlMDU4OTYwNTdiMzZlOWIxNzFiNmM2N2VkN2MyMjg2Y2JmYTgzZmY4YTE2N2M3YmM3MTA5YWVlN2Q3ZTE5MDliZDM4NGZiZmM2MTkzOGVmY2E1MWM4OTkzYzcxZGIzMTc3MzBmMTZlN2U3NzY4NjdhZTRmZGM1NjJkNmYxNWRlNTg1ZTdiOTRlZjQ5NmEzNjc2MzY3YTJjYmFhYjdiNjM2NjQ4YjAwNzZiYWQ1Y2RmMWUwOTc0MGVjNmE0NTFiZmY1MzRlZmEyMTUwOWYzYmE3N2I4MTAxYjkxZWE3ZTU1ZGRiZmUxNDAxNTE3MDY3ZDdiMDFhMmEwODc5ZjA4ODVjODk0YTg3Y2ZiNjhjNGQ3ZWU4OTA2MDQ4ODFhZWI5N2MyMmQxZjMzN2VmOTIzZTAzNWE2NDAwMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMzMDIxNDYyNDc3Mjk4NzU5ZThlMDQ3MThhZTU2MzE1NWYzNTIzY2ZiODRjZGIzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDZkMmNiYjM3ZmQxMjk1N2U1YTc0ODBjZTA0MzVlOGVmNjA3N2RlZjA4ZmYyNzA4NDRkZTI1MTZhNDc0MmYyMTFkOGM3NDY5MGJjMDk0OGUwOGEyOTZhYmJhOTI4NWY2YmIzMDViOTViN2Y5NDA4Y2U0NGU4Mzg4MGM3MTk0NDQ2NzJlYzk5NzQ2YmE3OGNjNGJkZTQ3NTMxOWQwMWJkZTc3YzQ5ZDU4ZDE2ZDNiMmU5MWMyZTYxZTgzMDNjYTNkN2VkYTM3OTdmZDhiMzVjYTcyYmIxNGIxNWEyNGI1NmJiNzBkYzEzNDg0NTY1ODA4MTEwZmY1ZGI1OGM1NmY3YTA0MzU2MDdlM2MzNTJmYmY0ZjU1MTA2ZjI5ODBmZDNjZDQyMzk3ZGJmNzEzN2VlN2YxZTMyY2Q4MGEzYjdhYjEyYjQ2YzE2OTIyMDI3OGQ3NzE3Yjc4YTNjNDVkNjM5NWExMzBhOGI1ODg0MWNiYzI5MGU0ZjgxN2RlM2E0ZmUxNmVjZDA3N2NhMzNhMGFhMjVlMjM1Y2M3ZjY2NTVhODBiYThhZWVjODc5MDViYjJhNzU0NTliN2JjYzVhMTMzZjI5OTM0OTNiNDFmZmNmNjNjZDdhMzkxZTNlNmY3ODA5NGNhNDQyYzgwMTQ0NDAzY2IwYTVmMDBiZmM2MWFlODgwIgogCiBQS0NTNyBQYXJzZSBGYWlsdXJlIEludmFsaWQgQVNOMTogQ2hhbmdlIHRhZyAzMCB0byAwMiAjNjQyLjAKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBwa2NzN19hc24xX2ZhaWw6IjMwODIwNDlkMDYwOTJhODY0ODg2ZjcwZDAxMDcwMmEwODIwNDhlMzA4MjA0OGEwMjAxMDEzMTBmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwYjA2MDkyYTg2NDg4NmY3MGQwMTA3MDEzMTgyMDQ2NTMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTAyMTQ3YmRlZGRkMjQ0NGNkMWNkZmU1YzQxYTgxMDJjODliN2RmMmU2Y2JmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDA1YmVjZDg3MTk1YzFkZWZmOTBjMjRjOTEyNjliNTViM2YwNjliYzIyNWMzMjZjMzE0YzFhNTE3ODZmZmUxNGM4MzBiZTRlNGJjNzNjYmEzNmM5NzY3N2I0NDE2ODI3OWJlOTFlN2NkZjdjMTkzODZhZTIxODYyNzE5ZDEzYTNhMGZmZjA4MDNkNDYwOTYyZjJjZGE4MzcxNDg0ODczMjUyYzNkNzA1NGRiODE0M2UyYjA4MWEzODE2ZWQwODA0Y2E1MDk5YWU1ZmVjZTgzZDVjMmMzNzgzYjE5ODhiNGI0NmRjOTRlNTU1ODdhMTA3ZWExNTQ2YmYyMmQyOGEwOTdmNjUyYTQwNjZkYzI5NjUyNjkwNjlhZjJmNTE3NmJiOGNlOWNhNmQxMWY5Njc1N2YwMzIwNGY3NTY3MDM1ODdkMDBhZDQyNDc5NmM5MmZjN2FlYjZmNDk0NDMxOTk5ZWRhMzA5OTBlNGY1NzczNjMyZWQyNThmZTAyNzY2NzM1OTlkYTZmY2UzNWNkYWQ3NzI2YTBiYjAyNGNhZDk5NmI4OGUwY2I5ODg1NGNlYjVjMGI2ZWM3NDhkOWY5Y2U2YTZjZDQzNzg1OGJhY2I4MTQ2MThhMjcyZmYzYTQxNWM2ZTA3ZjNkYjA5ODg3NzdmZGVjODQ1YTk3YmY3ZDEwMmRkMDMwODIwMTczMDIwMTAxMDI0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMjAyMTQ1NjRkNTU0MDI1YWY1OTllMzI3MDc5YjI3MjBlZjAwZGYzN2NmYjdjMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDAwNDYwOThkYzVmMmI5OWUzYmMyZWQ2NjQyZDdmMGE2MWVmYWJjMTVjMzhjNzYzMzNiY2NjZWVlZTM2OWE0ZjRhNWJkZGE4ZWE1OTI2NDEyNGU0MjlmMDg2MzI2ODNkZGJhMTdiYmYyNjJkODJiNmJlZmEzYjRlMTQ4MDM3NmE4YzdmM2M3ZDdlMmE2Nzc5YmJmMTgyNjJhYTg1N2RlOGMyMGExMmI2YTJjZThlNGQ3ZjMxZGQxYjE5NTM5MmNmNjE4NWFmY2UzNGFmZTA1ODk2MDU3YjM2ZTliMTcxYjZjNjdlZDdjMjI4NmNiZmE4M2ZmOGExNjdjN2JjNzEwOWFlZTdkN2UxOTA5YmQzODRmYmZjNjE5MzhlZmNhNTFjODk5M2M3MWRiMzE3NzMwZjE2ZTdlNzc2ODY3YWU0ZmRjNTYyZDZmMTVkZTU4NWU3Yjk0ZWY0OTZhMzY3NjM2N2EyY2JhYWI3YjYzNjY0OGIwMDc2YmFkNWNkZjFlMDk3NDBlYzZhNDUxYmZmNTM0ZWZhMjE1MDlmM2JhNzdiODEwMWI5MWVhN2U1NWRkYmZlMTQwMTUxNzA2N2Q3YjAxYTJhMDg3OWYwODg1Yzg5NGE4N2NmYjY4YzRkN2VlODkwNjA0ODgxYWViOTdjMjJkMWYzMzdlZjkyM2UwMzVhNjQwMDMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMzAyMTQ2MjQ3NzI5ODc1OWU4ZTA0NzE4YWU1NjMxNTVmMzUyM2NmYjg0Y2RiMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDA2ZDJjYmIzN2ZkMTI5NTdlNWE3NDgwY2UwNDM1ZThlZjYwNzdkZWYwOGZmMjcwODQ0ZGUyNTE2YTQ3NDJmMjExZDhjNzQ2OTBiYzA5NDhlMDhhMjk2YWJiYTkyODVmNmJiMzA1Yjk1YjdmOTQwOGNlNDRlODM4ODBjNzE5NDQ0NjcyZWM5OTc0NmJhNzhjYzRiZGU0NzUzMTlkMDFiZGU3N2M0OWQ1OGQxNmQzYjJlOTFjMmU2MWU4MzAzY2EzZDdlZGEzNzk3ZmQ4YjM1Y2E3MmJiMTRiMTVhMjRiNTZiYjcwZGMxMzQ4NDU2NTgwODExMGZmNWRiNThjNTZmN2EwNDM1NjA3ZTNjMzUyZmJmNGY1NTEwNmYyOTgwZmQzY2Q0MjM5N2RiZjcxMzdlZTdmMWUzMmNkODBhM2I3YWIxMmI0NmMxNjkyMjAyNzhkNzcxN2I3OGEzYzQ1ZDYzOTVhMTMwYThiNTg4NDFjYmMyOTBlNGY4MTdkZTNhNGZlMTZlY2QwNzdjYTMzYTBhYTI1ZTIzNWNjN2Y2NjU1YTgwYmE4YWVlYzg3OTA1YmIyYTc1NDU5YjdiY2M1YTEzM2YyOTkzNDkzYjQxZmZjZjYzY2Q3YTM5MWUzZTZmNzgwOTRjYTQ0MmM4MDE0NDQwM2NiMGE1ZjAwYmZjNjFhZTg4MCIKIAogUEtDUzcgUGFyc2UgRmFpbHVyZSBJbnZhbGlkIEFTTjE6IENoYW5nZSBsZW5ndGggZnJvbSA3NiB0byA3NyAjNjQzLjAKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBwa2NzN19hc24xX2ZhaWw6IjMwODIwNDlkMDYwOTJhODY0ODg2ZjcwZDAxMDcwMmEwODIwNDhlMzA4MjA0OGEwMjAxMDEzMTBmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwYjA2MDkyYTg2NDg4NmY3MGQwMTA3MDEzMTgyMDQ2NTMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTAyMTQ3YmRlZGRkMjQ0NGNkMWNkZmU1YzQxYTgxMDJjODliN2RmMmU2Y2JmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDA1YmVjZDg3MTk1YzFkZWZmOTBjMjRjOTEyNjliNTViM2YwNjliYzIyNWMzMjZjMzE0YzFhNTE3ODZmZmUxNGM4MzBiZTRlNGJjNzNjYmEzNmM5NzY3N2I0NDE2ODI3OWJlOTFlN2NkZjdjMTkzODZhZTIxODYyNzE5ZDEzYTNhMGZmZjA4MDNkNDYwOTYyZjJjZGE4MzcxNDg0ODczMjUyYzNkNzA1NGRiODE0M2UyYjA4MWEzODE2ZWQwODA0Y2E1MDk5YWU1ZmVjZTgzZDVjMmMzNzgzYjE5ODhiNGI0NmRjOTRlNTU1ODdhMTA3ZWExNTQ2YmYyMmQyOGEwOTdmNjUyYTQwNjZkYzI5NjUyNjkwNjlhZjJmNTE3NmJiOGNlOWNhNmQxMWY5Njc1N2YwMzIwNGY3NTY3MDM1ODdkMDBhZDQyNDc5NmM5MmZjN2FlYjZmNDk0NDMxOTk5ZWRhMzA5OTBlNGY1NzczNjMyZWQyNThmZTAyNzY2NzM1OTlkYTZmY2UzNWNkYWQ3NzI2YTBiYjAyNGNhZDk5NmI4OGUwY2I5ODg1NGNlYjVjMGI2ZWM3NDhkOWY5Y2U2YTZjZDQzNzg1OGJhY2I4MTQ2MThhMjcyZmYzYTQxNWM2ZTA3ZjNkYjA5ODg3NzdmZGVjODQ1YTk3YmY3ZDEwMmRkMDMwODIwMTczMDIwMTAxMzA0ZDMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMjAyMTQ1NjRkNTU0MDI1YWY1OTllMzI3MDc5YjI3MjBlZjAwZGYzN2NmYjdjMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDAwNDYwOThkYzVmMmI5OWUzYmMyZWQ2NjQyZDdmMGE2MWVmYWJjMTVjMzhjNzYzMzNiY2NjZWVlZTM2OWE0ZjRhNWJkZGE4ZWE1OTI2NDEyNGU0MjlmMDg2MzI2ODNkZGJhMTdiYmYyNjJkODJiNmJlZmEzYjRlMTQ4MDM3NmE4YzdmM2M3ZDdlMmE2Nzc5YmJmMTgyNjJhYTg1N2RlOGMyMGExMmI2YTJjZThlNGQ3ZjMxZGQxYjE5NTM5MmNmNjE4NWFmY2UzNGFmZTA1ODk2MDU3YjM2ZTliMTcxYjZjNjdlZDdjMjI4NmNiZmE4M2ZmOGExNjdjN2JjNzEwOWFlZTdkN2UxOTA5YmQzODRmYmZjNjE5MzhlZmNhNTFjODk5M2M3MWRiMzE3NzMwZjE2ZTdlNzc2ODY3YWU0ZmRjNTYyZDZmMTVkZTU4NWU3Yjk0ZWY0OTZhMzY3NjM2N2EyY2JhYWI3YjYzNjY0OGIwMDc2YmFkNWNkZjFlMDk3NDBlYzZhNDUxYmZmNTM0ZWZhMjE1MDlmM2JhNzdiODEwMWI5MWVhN2U1NWRkYmZlMTQwMTUxNzA2N2Q3YjAxYTJhMDg3OWYwODg1Yzg5NGE4N2NmYjY4YzRkN2VlODkwNjA0ODgxYWViOTdjMjJkMWYzMzdlZjkyM2UwMzVhNjQwMDMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMzAyMTQ2MjQ3NzI5ODc1OWU4ZTA0NzE4YWU1NjMxNTVmMzUyM2NmYjg0Y2RiMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDA2ZDJjYmIzN2ZkMTI5NTdlNWE3NDgwY2UwNDM1ZThlZjYwNzdkZWYwOGZmMjcwODQ0ZGUyNTE2YTQ3NDJmMjExZDhjNzQ2OTBiYzA5NDhlMDhhMjk2YWJiYTkyODVmNmJiMzA1Yjk1YjdmOTQwOGNlNDRlODM4ODBjNzE5NDQ0NjcyZWM5OTc0NmJhNzhjYzRiZGU0NzUzMTlkMDFiZGU3N2M0OWQ1OGQxNmQzYjJlOTFjMmU2MWU4MzAzY2EzZDdlZGEzNzk3ZmQ4YjM1Y2E3MmJiMTRiMTVhMjRiNTZiYjcwZGMxMzQ4NDU2NTgwODExMGZmNWRiNThjNTZmN2EwNDM1NjA3ZTNjMzUyZmJmNGY1NTEwNmYyOTgwZmQzY2Q0MjM5N2RiZjcxMzdlZTdmMWUzMmNkODBhM2I3YWIxMmI0NmMxNjkyMjAyNzhkNzcxN2I3OGEzYzQ1ZDYzOTVhMTMwYThiNTg4NDFjYmMyOTBlNGY4MTdkZTNhNGZlMTZlY2QwNzdjYTMzYTBhYTI1ZTIzNWNjN2Y2NjU1YTgwYmE4YWVlYzg3OTA1YmIyYTc1NDU5YjdiY2M1YTEzM2YyOTkzNDkzYjQxZmZjZjYzY2Q3YTM5MWUzZTZmNzgwOTRjYTQ0MmM4MDE0NDQwM2NiMGE1ZjAwYmZjNjFhZTg4MCIKIAogUEtDUzcgUGFyc2UgRmFpbHVyZSBJbnZhbGlkIEFTTjE6IENoYW5nZSBjb250ZW50cyBvZiB0YWcgMzAgdG8gY29udGFpbiBvbmUgdW5hY2NvdW50ZWQgZXh0cmEgYnl0ZSAjNjQ0LjAKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBwa2NzN19hc24xX2ZhaWw6IjMwODIwNDlkMDYwOTJhODY0ODg2ZjcwZDAxMDcwMmEwODIwNDhlMzA4MjA0OGEwMjAxMDEzMTBmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwYjA2MDkyYTg2NDg4NmY3MGQwMTA3MDEzMTgyMDQ2NTMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTAyMTQ3YmRlZGRkMjQ0NGNkMWNkZmU1YzQxYTgxMDJjODliN2RmMmU2Y2JmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDA1YmVjZDg3MTk1YzFkZWZmOTBjMjRjOTEyNjliNTViM2YwNjliYzIyNWMzMjZjMzE0YzFhNTE3ODZmZmUxNGM4MzBiZTRlNGJjNzNjYmEzNmM5NzY3N2I0NDE2ODI3OWJlOTFlN2NkZjdjMTkzODZhZTIxODYyNzE5ZDEzYTNhMGZmZjA4MDNkNDYwOTYyZjJjZGE4MzcxNDg0ODczMjUyYzNkNzA1NGRiODE0M2UyYjA4MWEzODE2ZWQwODA0Y2E1MDk5YWU1ZmVjZTgzZDVjMmMzNzgzYjE5ODhiNGI0NmRjOTRlNTU1ODdhMTA3ZWExNTQ2YmYyMmQyOGEwOTdmNjUyYTQwNjZkYzI5NjUyNjkwNjlhZjJmNTE3NmJiOGNlOWNhNmQxMWY5Njc1N2YwMzIwNGY3NTY3MDM1ODdkMDBhZDQyNDc5NmM5MmZjN2FlYjZmNDk0NDMxOTk5ZWRhMzA5OTBlNGY1NzczNjMyZWQyNThmZTAyNzY2NzM1OTlkYTZmY2UzNWNkYWQ3NzI2YTBiYjAyNGNhZDk5NmI4OGUwY2I5ODg1NGNlYjVjMGI2ZWM3NDhkOWY5Y2U2YTZjZDQzNzg1OGJhY2I4MTQ2MThhMjcyZmYzYTQxNWM2ZTA3ZjNkYjA5ODg3NzdmZGVjODQ1YTk3YmY3ZDEwMmRkMDMwODIwMTczMDIwMTAxMzA0ZDMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMjAyMTQ1NjRkNTU0MDI1YWY1OTllMzI3MDc5YjI3MjBlZjAwZGYzN2NmYjdjMDAzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDA0NjA5OGRjNWYyYjk5ZTNiYzJlZDY2NDJkN2YwYTYxZWZhYmMxNWMzOGM3NjMzM2JjY2NlZWVlMzY5YTRmNGE1YmRkYThlYTU5MjY0MTI0ZTQyOWYwODYzMjY4M2RkYmExN2JiZjI2MmQ4MmI2YmVmYTNiNGUxNDgwMzc2YThjN2YzYzdkN2UyYTY3NzliYmYxODI2MmFhODU3ZGU4YzIwYTEyYjZhMmNlOGU0ZDdmMzFkZDFiMTk1MzkyY2Y2MTg1YWZjZTM0YWZlMDU4OTYwNTdiMzZlOWIxNzFiNmM2N2VkN2MyMjg2Y2JmYTgzZmY4YTE2N2M3YmM3MTA5YWVlN2Q3ZTE5MDliZDM4NGZiZmM2MTkzOGVmY2E1MWM4OTkzYzcxZGIzMTc3MzBmMTZlN2U3NzY4NjdhZTRmZGM1NjJkNmYxNWRlNTg1ZTdiOTRlZjQ5NmEzNjc2MzY3YTJjYmFhYjdiNjM2NjQ4YjAwNzZiYWQ1Y2RmMWUwOTc0MGVjNmE0NTFiZmY1MzRlZmEyMTUwOWYzYmE3N2I4MTAxYjkxZWE3ZTU1ZGRiZmUxNDAxNTE3MDY3ZDdiMDFhMmEwODc5ZjA4ODVjODk0YTg3Y2ZiNjhjNGQ3ZWU4OTA2MDQ4ODFhZWI5N2MyMmQxZjMzN2VmOTIzZTAzNWE2NDAwMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMzMDIxNDYyNDc3Mjk4NzU5ZThlMDQ3MThhZTU2MzE1NWYzNTIzY2ZiODRjZGIzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDZkMmNiYjM3ZmQxMjk1N2U1YTc0ODBjZTA0MzVlOGVmNjA3N2RlZjA4ZmYyNzA4NDRkZTI1MTZhNDc0MmYyMTFkOGM3NDY5MGJjMDk0OGUwOGEyOTZhYmJhOTI4NWY2YmIzMDViOTViN2Y5NDA4Y2U0NGU4Mzg4MGM3MTk0NDQ2NzJlYzk5NzQ2YmE3OGNjNGJkZTQ3NTMxOWQwMWJkZTc3YzQ5ZDU4ZDE2ZDNiMmU5MWMyZTYxZTgzMDNjYTNkN2VkYTM3OTdmZDhiMzVjYTcyYmIxNGIxNWEyNGI1NmJiNzBkYzEzNDg0NTY1ODA4MTEwZmY1ZGI1OGM1NmY3YTA0MzU2MDdlM2MzNTJmYmY0ZjU1MTA2ZjI5ODBmZDNjZDQyMzk3ZGJmNzEzN2VlN2YxZTMyY2Q4MGEzYjdhYjEyYjQ2YzE2OTIyMDI3OGQ3NzE3Yjc4YTNjNDVkNjM5NWExMzBhOGI1ODg0MWNiYzI5MGU0ZjgxN2RlM2E0ZmUxNmVjZDA3N2NhMzNhMGFhMjVlMjM1Y2M3ZjY2NTVhODBiYThhZWVjODc5MDViYjJhNzU0NTliN2JjYzVhMTMzZjI5OTM0OTNiNDFmZmNmNjNjZDdhMzkxZTNlNmY3ODA5NGNhNDQyYzgwMTQ0NDAzY2IwYTVmMDBiZmM2MWFlODgwIgogCiBQS0NTNyBQYXJzZSBGYWlsdXJlIEludmFsaWQgQVNOMTogQ2hhbmdlIGxlbmd0aCBmcm9tIDc2IHRvIDc1ICM2NDUuMAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHBrY3M3X2FzbjFfZmFpbDoiMzA4MjA0OWQwNjA5MmE4NjQ4ODZmNzBkMDEwNzAyYTA4MjA0OGUzMDgyMDQ4YTAyMDEwMTMxMGYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBiMDYwOTJhODY0ODg2ZjcwZDAxMDcwMTMxODIwNDY1MzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDViZWNkODcxOTVjMWRlZmY5MGMyNGM5MTI2OWI1NWIzZjA2OWJjMjI1YzMyNmMzMTRjMWE1MTc4NmZmZTE0YzgzMGJlNGU0YmM3M2NiYTM2Yzk3Njc3YjQ0MTY4Mjc5YmU5MWU3Y2RmN2MxOTM4NmFlMjE4NjI3MTlkMTNhM2EwZmZmMDgwM2Q0NjA5NjJmMmNkYTgzNzE0ODQ4NzMyNTJjM2Q3MDU0ZGI4MTQzZTJiMDgxYTM4MTZlZDA4MDRjYTUwOTlhZTVmZWNlODNkNWMyYzM3ODNiMTk4OGI0YjQ2ZGM5NGU1NTU4N2ExMDdlYTE1NDZiZjIyZDI4YTA5N2Y2NTJhNDA2NmRjMjk2NTI2OTA2OWFmMmY1MTc2YmI4Y2U5Y2E2ZDExZjk2NzU3ZjAzMjA0Zjc1NjcwMzU4N2QwMGFkNDI0Nzk2YzkyZmM3YWViNmY0OTQ0MzE5OTllZGEzMDk5MGU0ZjU3NzM2MzJlZDI1OGZlMDI3NjY3MzU5OWRhNmZjZTM1Y2RhZDc3MjZhMGJiMDI0Y2FkOTk2Yjg4ZTBjYjk4ODU0Y2ViNWMwYjZlYzc0OGQ5ZjljZTZhNmNkNDM3ODU4YmFjYjgxNDYxOGEyNzJmZjNhNDE1YzZlMDdmM2RiMDk4ODc3N2ZkZWM4NDVhOTdiZjdkMTAyZGQwMzA4MjAxNzMwMjAxMDEzMDRiMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMyMDIxNDU2NGQ1NTQwMjVhZjU5OWUzMjcwNzliMjcyMGVmMDBkZjM3Y2ZiN2MzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDA0NjA5OGRjNWYyYjk5ZTNiYzJlZDY2NDJkN2YwYTYxZWZhYmMxNWMzOGM3NjMzM2JjY2NlZWVlMzY5YTRmNGE1YmRkYThlYTU5MjY0MTI0ZTQyOWYwODYzMjY4M2RkYmExN2JiZjI2MmQ4MmI2YmVmYTNiNGUxNDgwMzc2YThjN2YzYzdkN2UyYTY3NzliYmYxODI2MmFhODU3ZGU4YzIwYTEyYjZhMmNlOGU0ZDdmMzFkZDFiMTk1MzkyY2Y2MTg1YWZjZTM0YWZlMDU4OTYwNTdiMzZlOWIxNzFiNmM2N2VkN2MyMjg2Y2JmYTgzZmY4YTE2N2M3YmM3MTA5YWVlN2Q3ZTE5MDliZDM4NGZiZmM2MTkzOGVmY2E1MWM4OTkzYzcxZGIzMTc3MzBmMTZlN2U3NzY4NjdhZTRmZGM1NjJkNmYxNWRlNTg1ZTdiOTRlZjQ5NmEzNjc2MzY3YTJjYmFhYjdiNjM2NjQ4YjAwNzZiYWQ1Y2RmMWUwOTc0MGVjNmE0NTFiZmY1MzRlZmEyMTUwOWYzYmE3N2I4MTAxYjkxZWE3ZTU1ZGRiZmUxNDAxNTE3MDY3ZDdiMDFhMmEwODc5ZjA4ODVjODk0YTg3Y2ZiNjhjNGQ3ZWU4OTA2MDQ4ODFhZWI5N2MyMmQxZjMzN2VmOTIzZTAzNWE2NDAwMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMzMDIxNDYyNDc3Mjk4NzU5ZThlMDQ3MThhZTU2MzE1NWYzNTIzY2ZiODRjZGIzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDZkMmNiYjM3ZmQxMjk1N2U1YTc0ODBjZTA0MzVlOGVmNjA3N2RlZjA4ZmYyNzA4NDRkZTI1MTZhNDc0MmYyMTFkOGM3NDY5MGJjMDk0OGUwOGEyOTZhYmJhOTI4NWY2YmIzMDViOTViN2Y5NDA4Y2U0NGU4Mzg4MGM3MTk0NDQ2NzJlYzk5NzQ2YmE3OGNjNGJkZTQ3NTMxOWQwMWJkZTc3YzQ5ZDU4ZDE2ZDNiMmU5MWMyZTYxZTgzMDNjYTNkN2VkYTM3OTdmZDhiMzVjYTcyYmIxNGIxNWEyNGI1NmJiNzBkYzEzNDg0NTY1ODA4MTEwZmY1ZGI1OGM1NmY3YTA0MzU2MDdlM2MzNTJmYmY0ZjU1MTA2ZjI5ODBmZDNjZDQyMzk3ZGJmNzEzN2VlN2YxZTMyY2Q4MGEzYjdhYjEyYjQ2YzE2OTIyMDI3OGQ3NzE3Yjc4YTNjNDVkNjM5NWExMzBhOGI1ODg0MWNiYzI5MGU0ZjgxN2RlM2E0ZmUxNmVjZDA3N2NhMzNhMGFhMjVlMjM1Y2M3ZjY2NTVhODBiYThhZWVjODc5MDViYjJhNzU0NTliN2JjYzVhMTMzZjI5OTM0OTNiNDFmZmNmNjNjZDdhMzkxZTNlNmY3ODA5NGNhNDQyYzgwMTQ0NDAzY2IwYTVmMDBiZmM2MWFlODgwIgogCiBQS0NTNyBQYXJzZSBGYWlsdXJlIEludmFsaWQgQVNOMTogQ2hhbmdlIHRhZyAzMCB0byAwMiAjNjQ2LjAKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBwa2NzN19hc24xX2ZhaWw6IjMwODIwNDlkMDYwOTJhODY0ODg2ZjcwZDAxMDcwMmEwODIwNDhlMzA4MjA0OGEwMjAxMDEzMTBmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwYjA2MDkyYTg2NDg4NmY3MGQwMTA3MDEzMTgyMDQ2NTMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTAyMTQ3YmRlZGRkMjQ0NGNkMWNkZmU1YzQxYTgxMDJjODliN2RmMmU2Y2JmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDA1YmVjZDg3MTk1YzFkZWZmOTBjMjRjOTEyNjliNTViM2YwNjliYzIyNWMzMjZjMzE0YzFhNTE3ODZmZmUxNGM4MzBiZTRlNGJjNzNjYmEzNmM5NzY3N2I0NDE2ODI3OWJlOTFlN2NkZjdjMTkzODZhZTIxODYyNzE5ZDEzYTNhMGZmZjA4MDNkNDYwOTYyZjJjZGE4MzcxNDg0ODczMjUyYzNkNzA1NGRiODE0M2UyYjA4MWEzODE2ZWQwODA0Y2E1MDk5YWU1ZmVjZTgzZDVjMmMzNzgzYjE5ODhiNGI0NmRjOTRlNTU1ODdhMTA3ZWExNTQ2YmYyMmQyOGEwOTdmNjUyYTQwNjZkYzI5NjUyNjkwNjlhZjJmNTE3NmJiOGNlOWNhNmQxMWY5Njc1N2YwMzIwNGY3NTY3MDM1ODdkMDBhZDQyNDc5NmM5MmZjN2FlYjZmNDk0NDMxOTk5ZWRhMzA5OTBlNGY1NzczNjMyZWQyNThmZTAyNzY2NzM1OTlkYTZmY2UzNWNkYWQ3NzI2YTBiYjAyNGNhZDk5NmI4OGUwY2I5ODg1NGNlYjVjMGI2ZWM3NDhkOWY5Y2U2YTZjZDQzNzg1OGJhY2I4MTQ2MThhMjcyZmYzYTQxNWM2ZTA3ZjNkYjA5ODg3NzdmZGVjODQ1YTk3YmY3ZDEwMmRkMDMwODIwMTczMDIwMTAxMzA0YzAyMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMjAyMTQ1NjRkNTU0MDI1YWY1OTllMzI3MDc5YjI3MjBlZjAwZGYzN2NmYjdjMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDAwNDYwOThkYzVmMmI5OWUzYmMyZWQ2NjQyZDdmMGE2MWVmYWJjMTVjMzhjNzYzMzNiY2NjZWVlZTM2OWE0ZjRhNWJkZGE4ZWE1OTI2NDEyNGU0MjlmMDg2MzI2ODNkZGJhMTdiYmYyNjJkODJiNmJlZmEzYjRlMTQ4MDM3NmE4YzdmM2M3ZDdlMmE2Nzc5YmJmMTgyNjJhYTg1N2RlOGMyMGExMmI2YTJjZThlNGQ3ZjMxZGQxYjE5NTM5MmNmNjE4NWFmY2UzNGFmZTA1ODk2MDU3YjM2ZTliMTcxYjZjNjdlZDdjMjI4NmNiZmE4M2ZmOGExNjdjN2JjNzEwOWFlZTdkN2UxOTA5YmQzODRmYmZjNjE5MzhlZmNhNTFjODk5M2M3MWRiMzE3NzMwZjE2ZTdlNzc2ODY3YWU0ZmRjNTYyZDZmMTVkZTU4NWU3Yjk0ZWY0OTZhMzY3NjM2N2EyY2JhYWI3YjYzNjY0OGIwMDc2YmFkNWNkZjFlMDk3NDBlYzZhNDUxYmZmNTM0ZWZhMjE1MDlmM2JhNzdiODEwMWI5MWVhN2U1NWRkYmZlMTQwMTUxNzA2N2Q3YjAxYTJhMDg3OWYwODg1Yzg5NGE4N2NmYjY4YzRkN2VlODkwNjA0ODgxYWViOTdjMjJkMWYzMzdlZjkyM2UwMzVhNjQwMDMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMzAyMTQ2MjQ3NzI5ODc1OWU4ZTA0NzE4YWU1NjMxNTVmMzUyM2NmYjg0Y2RiMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDA2ZDJjYmIzN2ZkMTI5NTdlNWE3NDgwY2UwNDM1ZThlZjYwNzdkZWYwOGZmMjcwODQ0ZGUyNTE2YTQ3NDJmMjExZDhjNzQ2OTBiYzA5NDhlMDhhMjk2YWJiYTkyODVmNmJiMzA1Yjk1YjdmOTQwOGNlNDRlODM4ODBjNzE5NDQ0NjcyZWM5OTc0NmJhNzhjYzRiZGU0NzUzMTlkMDFiZGU3N2M0OWQ1OGQxNmQzYjJlOTFjMmU2MWU4MzAzY2EzZDdlZGEzNzk3ZmQ4YjM1Y2E3MmJiMTRiMTVhMjRiNTZiYjcwZGMxMzQ4NDU2NTgwODExMGZmNWRiNThjNTZmN2EwNDM1NjA3ZTNjMzUyZmJmNGY1NTEwNmYyOTgwZmQzY2Q0MjM5N2RiZjcxMzdlZTdmMWUzMmNkODBhM2I3YWIxMmI0NmMxNjkyMjAyNzhkNzcxN2I3OGEzYzQ1ZDYzOTVhMTMwYThiNTg4NDFjYmMyOTBlNGY4MTdkZTNhNGZlMTZlY2QwNzdjYTMzYTBhYTI1ZTIzNWNjN2Y2NjU1YTgwYmE4YWVlYzg3OTA1YmIyYTc1NDU5YjdiY2M1YTEzM2YyOTkzNDkzYjQxZmZjZjYzY2Q3YTM5MWUzZTZmNzgwOTRjYTQ0MmM4MDE0NDQwM2NiMGE1ZjAwYmZjNjFhZTg4MCIKIAogUEtDUzcgUGFyc2UgRmFpbHVyZSBJbnZhbGlkIEFTTjE6IENoYW5nZSBsZW5ndGggZnJvbSA1MiB0byA1MyAjNjQ3LjAKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBwa2NzN19hc24xX2ZhaWw6IjMwODIwNDlkMDYwOTJhODY0ODg2ZjcwZDAxMDcwMmEwODIwNDhlMzA4MjA0OGEwMjAxMDEzMTBmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwYjA2MDkyYTg2NDg4NmY3MGQwMTA3MDEzMTgyMDQ2NTMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTAyMTQ3YmRlZGRkMjQ0NGNkMWNkZmU1YzQxYTgxMDJjODliN2RmMmU2Y2JmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDA1YmVjZDg3MTk1YzFkZWZmOTBjMjRjOTEyNjliNTViM2YwNjliYzIyNWMzMjZjMzE0YzFhNTE3ODZmZmUxNGM4MzBiZTRlNGJjNzNjYmEzNmM5NzY3N2I0NDE2ODI3OWJlOTFlN2NkZjdjMTkzODZhZTIxODYyNzE5ZDEzYTNhMGZmZjA4MDNkNDYwOTYyZjJjZGE4MzcxNDg0ODczMjUyYzNkNzA1NGRiODE0M2UyYjA4MWEzODE2ZWQwODA0Y2E1MDk5YWU1ZmVjZTgzZDVjMmMzNzgzYjE5ODhiNGI0NmRjOTRlNTU1ODdhMTA3ZWExNTQ2YmYyMmQyOGEwOTdmNjUyYTQwNjZkYzI5NjUyNjkwNjlhZjJmNTE3NmJiOGNlOWNhNmQxMWY5Njc1N2YwMzIwNGY3NTY3MDM1ODdkMDBhZDQyNDc5NmM5MmZjN2FlYjZmNDk0NDMxOTk5ZWRhMzA5OTBlNGY1NzczNjMyZWQyNThmZTAyNzY2NzM1OTlkYTZmY2UzNWNkYWQ3NzI2YTBiYjAyNGNhZDk5NmI4OGUwY2I5ODg1NGNlYjVjMGI2ZWM3NDhkOWY5Y2U2YTZjZDQzNzg1OGJhY2I4MTQ2MThhMjcyZmYzYTQxNWM2ZTA3ZjNkYjA5ODg3NzdmZGVjODQ1YTk3YmY3ZDEwMmRkMDMwODIwMTczMDIwMTAxMzA0YzMwMzUzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMjAyMTQ1NjRkNTU0MDI1YWY1OTllMzI3MDc5YjI3MjBlZjAwZGYzN2NmYjdjMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDAwNDYwOThkYzVmMmI5OWUzYmMyZWQ2NjQyZDdmMGE2MWVmYWJjMTVjMzhjNzYzMzNiY2NjZWVlZTM2OWE0ZjRhNWJkZGE4ZWE1OTI2NDEyNGU0MjlmMDg2MzI2ODNkZGJhMTdiYmYyNjJkODJiNmJlZmEzYjRlMTQ4MDM3NmE4YzdmM2M3ZDdlMmE2Nzc5YmJmMTgyNjJhYTg1N2RlOGMyMGExMmI2YTJjZThlNGQ3ZjMxZGQxYjE5NTM5MmNmNjE4NWFmY2UzNGFmZTA1ODk2MDU3YjM2ZTliMTcxYjZjNjdlZDdjMjI4NmNiZmE4M2ZmOGExNjdjN2JjNzEwOWFlZTdkN2UxOTA5YmQzODRmYmZjNjE5MzhlZmNhNTFjODk5M2M3MWRiMzE3NzMwZjE2ZTdlNzc2ODY3YWU0ZmRjNTYyZDZmMTVkZTU4NWU3Yjk0ZWY0OTZhMzY3NjM2N2EyY2JhYWI3YjYzNjY0OGIwMDc2YmFkNWNkZjFlMDk3NDBlYzZhNDUxYmZmNTM0ZWZhMjE1MDlmM2JhNzdiODEwMWI5MWVhN2U1NWRkYmZlMTQwMTUxNzA2N2Q3YjAxYTJhMDg3OWYwODg1Yzg5NGE4N2NmYjY4YzRkN2VlODkwNjA0ODgxYWViOTdjMjJkMWYzMzdlZjkyM2UwMzVhNjQwMDMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMzAyMTQ2MjQ3NzI5ODc1OWU4ZTA0NzE4YWU1NjMxNTVmMzUyM2NmYjg0Y2RiMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDA2ZDJjYmIzN2ZkMTI5NTdlNWE3NDgwY2UwNDM1ZThlZjYwNzdkZWYwOGZmMjcwODQ0ZGUyNTE2YTQ3NDJmMjExZDhjNzQ2OTBiYzA5NDhlMDhhMjk2YWJiYTkyODVmNmJiMzA1Yjk1YjdmOTQwOGNlNDRlODM4ODBjNzE5NDQ0NjcyZWM5OTc0NmJhNzhjYzRiZGU0NzUzMTlkMDFiZGU3N2M0OWQ1OGQxNmQzYjJlOTFjMmU2MWU4MzAzY2EzZDdlZGEzNzk3ZmQ4YjM1Y2E3MmJiMTRiMTVhMjRiNTZiYjcwZGMxMzQ4NDU2NTgwODExMGZmNWRiNThjNTZmN2EwNDM1NjA3ZTNjMzUyZmJmNGY1NTEwNmYyOTgwZmQzY2Q0MjM5N2RiZjcxMzdlZTdmMWUzMmNkODBhM2I3YWIxMmI0NmMxNjkyMjAyNzhkNzcxN2I3OGEzYzQ1ZDYzOTVhMTMwYThiNTg4NDFjYmMyOTBlNGY4MTdkZTNhNGZlMTZlY2QwNzdjYTMzYTBhYTI1ZTIzNWNjN2Y2NjU1YTgwYmE4YWVlYzg3OTA1YmIyYTc1NDU5YjdiY2M1YTEzM2YyOTkzNDkzYjQxZmZjZjYzY2Q3YTM5MWUzZTZmNzgwOTRjYTQ0MmM4MDE0NDQwM2NiMGE1ZjAwYmZjNjFhZTg4MCIKIAogUEtDUzcgUGFyc2UgRmFpbHVyZSBJbnZhbGlkIEFTTjE6IENoYW5nZSBjb250ZW50cyBvZiB0YWcgMzAgdG8gY29udGFpbiBvbmUgdW5hY2NvdW50ZWQgZXh0cmEgYnl0ZSAjNjQ4LjAKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBwa2NzN19hc24xX2ZhaWw6IjMwODIwNDlkMDYwOTJhODY0ODg2ZjcwZDAxMDcwMmEwODIwNDhlMzA4MjA0OGEwMjAxMDEzMTBmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwYjA2MDkyYTg2NDg4NmY3MGQwMTA3MDEzMTgyMDQ2NTMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTAyMTQ3YmRlZGRkMjQ0NGNkMWNkZmU1YzQxYTgxMDJjODliN2RmMmU2Y2JmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDA1YmVjZDg3MTk1YzFkZWZmOTBjMjRjOTEyNjliNTViM2YwNjliYzIyNWMzMjZjMzE0YzFhNTE3ODZmZmUxNGM4MzBiZTRlNGJjNzNjYmEzNmM5NzY3N2I0NDE2ODI3OWJlOTFlN2NkZjdjMTkzODZhZTIxODYyNzE5ZDEzYTNhMGZmZjA4MDNkNDYwOTYyZjJjZGE4MzcxNDg0ODczMjUyYzNkNzA1NGRiODE0M2UyYjA4MWEzODE2ZWQwODA0Y2E1MDk5YWU1ZmVjZTgzZDVjMmMzNzgzYjE5ODhiNGI0NmRjOTRlNTU1ODdhMTA3ZWExNTQ2YmYyMmQyOGEwOTdmNjUyYTQwNjZkYzI5NjUyNjkwNjlhZjJmNTE3NmJiOGNlOWNhNmQxMWY5Njc1N2YwMzIwNGY3NTY3MDM1ODdkMDBhZDQyNDc5NmM5MmZjN2FlYjZmNDk0NDMxOTk5ZWRhMzA5OTBlNGY1NzczNjMyZWQyNThmZTAyNzY2NzM1OTlkYTZmY2UzNWNkYWQ3NzI2YTBiYjAyNGNhZDk5NmI4OGUwY2I5ODg1NGNlYjVjMGI2ZWM3NDhkOWY5Y2U2YTZjZDQzNzg1OGJhY2I4MTQ2MThhMjcyZmYzYTQxNWM2ZTA3ZjNkYjA5ODg3NzdmZGVjODQ1YTk3YmY3ZDEwMmRkMDMwODIwMTczMDIwMTAxMzA0YzMwMzUzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMjAwMDIxNDU2NGQ1NTQwMjVhZjU5OWUzMjcwNzliMjcyMGVmMDBkZjM3Y2ZiN2MzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDA0NjA5OGRjNWYyYjk5ZTNiYzJlZDY2NDJkN2YwYTYxZWZhYmMxNWMzOGM3NjMzM2JjY2NlZWVlMzY5YTRmNGE1YmRkYThlYTU5MjY0MTI0ZTQyOWYwODYzMjY4M2RkYmExN2JiZjI2MmQ4MmI2YmVmYTNiNGUxNDgwMzc2YThjN2YzYzdkN2UyYTY3NzliYmYxODI2MmFhODU3ZGU4YzIwYTEyYjZhMmNlOGU0ZDdmMzFkZDFiMTk1MzkyY2Y2MTg1YWZjZTM0YWZlMDU4OTYwNTdiMzZlOWIxNzFiNmM2N2VkN2MyMjg2Y2JmYTgzZmY4YTE2N2M3YmM3MTA5YWVlN2Q3ZTE5MDliZDM4NGZiZmM2MTkzOGVmY2E1MWM4OTkzYzcxZGIzMTc3MzBmMTZlN2U3NzY4NjdhZTRmZGM1NjJkNmYxNWRlNTg1ZTdiOTRlZjQ5NmEzNjc2MzY3YTJjYmFhYjdiNjM2NjQ4YjAwNzZiYWQ1Y2RmMWUwOTc0MGVjNmE0NTFiZmY1MzRlZmEyMTUwOWYzYmE3N2I4MTAxYjkxZWE3ZTU1ZGRiZmUxNDAxNTE3MDY3ZDdiMDFhMmEwODc5ZjA4ODVjODk0YTg3Y2ZiNjhjNGQ3ZWU4OTA2MDQ4ODFhZWI5N2MyMmQxZjMzN2VmOTIzZTAzNWE2NDAwMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMzMDIxNDYyNDc3Mjk4NzU5ZThlMDQ3MThhZTU2MzE1NWYzNTIzY2ZiODRjZGIzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDZkMmNiYjM3ZmQxMjk1N2U1YTc0ODBjZTA0MzVlOGVmNjA3N2RlZjA4ZmYyNzA4NDRkZTI1MTZhNDc0MmYyMTFkOGM3NDY5MGJjMDk0OGUwOGEyOTZhYmJhOTI4NWY2YmIzMDViOTViN2Y5NDA4Y2U0NGU4Mzg4MGM3MTk0NDQ2NzJlYzk5NzQ2YmE3OGNjNGJkZTQ3NTMxOWQwMWJkZTc3YzQ5ZDU4ZDE2ZDNiMmU5MWMyZTYxZTgzMDNjYTNkN2VkYTM3OTdmZDhiMzVjYTcyYmIxNGIxNWEyNGI1NmJiNzBkYzEzNDg0NTY1ODA4MTEwZmY1ZGI1OGM1NmY3YTA0MzU2MDdlM2MzNTJmYmY0ZjU1MTA2ZjI5ODBmZDNjZDQyMzk3ZGJmNzEzN2VlN2YxZTMyY2Q4MGEzYjdhYjEyYjQ2YzE2OTIyMDI3OGQ3NzE3Yjc4YTNjNDVkNjM5NWExMzBhOGI1ODg0MWNiYzI5MGU0ZjgxN2RlM2E0ZmUxNmVjZDA3N2NhMzNhMGFhMjVlMjM1Y2M3ZjY2NTVhODBiYThhZWVjODc5MDViYjJhNzU0NTliN2JjYzVhMTMzZjI5OTM0OTNiNDFmZmNmNjNjZDdhMzkxZTNlNmY3ODA5NGNhNDQyYzgwMTQ0NDAzY2IwYTVmMDBiZmM2MWFlODgwIgogCiBQS0NTNyBQYXJzZSBGYWlsdXJlIEludmFsaWQgQVNOMTogQ2hhbmdlIGxlbmd0aCBmcm9tIDUyIHRvIDUxICM2NDkuMAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHBrY3M3X2FzbjFfZmFpbDoiMzA4MjA0OWQwNjA5MmE4NjQ4ODZmNzBkMDEwNzAyYTA4MjA0OGUzMDgyMDQ4YTAyMDEwMTMxMGYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBiMDYwOTJhODY0ODg2ZjcwZDAxMDcwMTMxODIwNDY1MzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDViZWNkODcxOTVjMWRlZmY5MGMyNGM5MTI2OWI1NWIzZjA2OWJjMjI1YzMyNmMzMTRjMWE1MTc4NmZmZTE0YzgzMGJlNGU0YmM3M2NiYTM2Yzk3Njc3YjQ0MTY4Mjc5YmU5MWU3Y2RmN2MxOTM4NmFlMjE4NjI3MTlkMTNhM2EwZmZmMDgwM2Q0NjA5NjJmMmNkYTgzNzE0ODQ4NzMyNTJjM2Q3MDU0ZGI4MTQzZTJiMDgxYTM4MTZlZDA4MDRjYTUwOTlhZTVmZWNlODNkNWMyYzM3ODNiMTk4OGI0YjQ2ZGM5NGU1NTU4N2ExMDdlYTE1NDZiZjIyZDI4YTA5N2Y2NTJhNDA2NmRjMjk2NTI2OTA2OWFmMmY1MTc2YmI4Y2U5Y2E2ZDExZjk2NzU3ZjAzMjA0Zjc1NjcwMzU4N2QwMGFkNDI0Nzk2YzkyZmM3YWViNmY0OTQ0MzE5OTllZGEzMDk5MGU0ZjU3NzM2MzJlZDI1OGZlMDI3NjY3MzU5OWRhNmZjZTM1Y2RhZDc3MjZhMGJiMDI0Y2FkOTk2Yjg4ZTBjYjk4ODU0Y2ViNWMwYjZlYzc0OGQ5ZjljZTZhNmNkNDM3ODU4YmFjYjgxNDYxOGEyNzJmZjNhNDE1YzZlMDdmM2RiMDk4ODc3N2ZkZWM4NDVhOTdiZjdkMTAyZGQwMzA4MjAxNzMwMjAxMDEzMDRjMzAzMzMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMyMDIxNDU2NGQ1NTQwMjVhZjU5OWUzMjcwNzliMjcyMGVmMDBkZjM3Y2ZiN2MzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDA0NjA5OGRjNWYyYjk5ZTNiYzJlZDY2NDJkN2YwYTYxZWZhYmMxNWMzOGM3NjMzM2JjY2NlZWVlMzY5YTRmNGE1YmRkYThlYTU5MjY0MTI0ZTQyOWYwODYzMjY4M2RkYmExN2JiZjI2MmQ4MmI2YmVmYTNiNGUxNDgwMzc2YThjN2YzYzdkN2UyYTY3NzliYmYxODI2MmFhODU3ZGU4YzIwYTEyYjZhMmNlOGU0ZDdmMzFkZDFiMTk1MzkyY2Y2MTg1YWZjZTM0YWZlMDU4OTYwNTdiMzZlOWIxNzFiNmM2N2VkN2MyMjg2Y2JmYTgzZmY4YTE2N2M3YmM3MTA5YWVlN2Q3ZTE5MDliZDM4NGZiZmM2MTkzOGVmY2E1MWM4OTkzYzcxZGIzMTc3MzBmMTZlN2U3NzY4NjdhZTRmZGM1NjJkNmYxNWRlNTg1ZTdiOTRlZjQ5NmEzNjc2MzY3YTJjYmFhYjdiNjM2NjQ4YjAwNzZiYWQ1Y2RmMWUwOTc0MGVjNmE0NTFiZmY1MzRlZmEyMTUwOWYzYmE3N2I4MTAxYjkxZWE3ZTU1ZGRiZmUxNDAxNTE3MDY3ZDdiMDFhMmEwODc5ZjA4ODVjODk0YTg3Y2ZiNjhjNGQ3ZWU4OTA2MDQ4ODFhZWI5N2MyMmQxZjMzN2VmOTIzZTAzNWE2NDAwMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMzMDIxNDYyNDc3Mjk4NzU5ZThlMDQ3MThhZTU2MzE1NWYzNTIzY2ZiODRjZGIzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDZkMmNiYjM3ZmQxMjk1N2U1YTc0ODBjZTA0MzVlOGVmNjA3N2RlZjA4ZmYyNzA4NDRkZTI1MTZhNDc0MmYyMTFkOGM3NDY5MGJjMDk0OGUwOGEyOTZhYmJhOTI4NWY2YmIzMDViOTViN2Y5NDA4Y2U0NGU4Mzg4MGM3MTk0NDQ2NzJlYzk5NzQ2YmE3OGNjNGJkZTQ3NTMxOWQwMWJkZTc3YzQ5ZDU4ZDE2ZDNiMmU5MWMyZTYxZTgzMDNjYTNkN2VkYTM3OTdmZDhiMzVjYTcyYmIxNGIxNWEyNGI1NmJiNzBkYzEzNDg0NTY1ODA4MTEwZmY1ZGI1OGM1NmY3YTA0MzU2MDdlM2MzNTJmYmY0ZjU1MTA2ZjI5ODBmZDNjZDQyMzk3ZGJmNzEzN2VlN2YxZTMyY2Q4MGEzYjdhYjEyYjQ2YzE2OTIyMDI3OGQ3NzE3Yjc4YTNjNDVkNjM5NWExMzBhOGI1ODg0MWNiYzI5MGU0ZjgxN2RlM2E0ZmUxNmVjZDA3N2NhMzNhMGFhMjVlMjM1Y2M3ZjY2NTVhODBiYThhZWVjODc5MDViYjJhNzU0NTliN2JjYzVhMTMzZjI5OTM0OTNiNDFmZmNmNjNjZDdhMzkxZTNlNmY3ODA5NGNhNDQyYzgwMTQ0NDAzY2IwYTVmMDBiZmM2MWFlODgwIgogCiBQS0NTNyBQYXJzZSBGYWlsdXJlIEludmFsaWQgQVNOMTogQ2hhbmdlIHRhZyAzMSB0byAwMiAjNjUwLjAKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBwa2NzN19hc24xX2ZhaWw6IjMwODIwNDlkMDYwOTJhODY0ODg2ZjcwZDAxMDcwMmEwODIwNDhlMzA4MjA0OGEwMjAxMDEzMTBmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwYjA2MDkyYTg2NDg4NmY3MGQwMTA3MDEzMTgyMDQ2NTMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTAyMTQ3YmRlZGRkMjQ0NGNkMWNkZmU1YzQxYTgxMDJjODliN2RmMmU2Y2JmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDA1YmVjZDg3MTk1YzFkZWZmOTBjMjRjOTEyNjliNTViM2YwNjliYzIyNWMzMjZjMzE0YzFhNTE3ODZmZmUxNGM4MzBiZTRlNGJjNzNjYmEzNmM5NzY3N2I0NDE2ODI3OWJlOTFlN2NkZjdjMTkzODZhZTIxODYyNzE5ZDEzYTNhMGZmZjA4MDNkNDYwOTYyZjJjZGE4MzcxNDg0ODczMjUyYzNkNzA1NGRiODE0M2UyYjA4MWEzODE2ZWQwODA0Y2E1MDk5YWU1ZmVjZTgzZDVjMmMzNzgzYjE5ODhiNGI0NmRjOTRlNTU1ODdhMTA3ZWExNTQ2YmYyMmQyOGEwOTdmNjUyYTQwNjZkYzI5NjUyNjkwNjlhZjJmNTE3NmJiOGNlOWNhNmQxMWY5Njc1N2YwMzIwNGY3NTY3MDM1ODdkMDBhZDQyNDc5NmM5MmZjN2FlYjZmNDk0NDMxOTk5ZWRhMzA5OTBlNGY1NzczNjMyZWQyNThmZTAyNzY2NzM1OTlkYTZmY2UzNWNkYWQ3NzI2YTBiYjAyNGNhZDk5NmI4OGUwY2I5ODg1NGNlYjVjMGI2ZWM3NDhkOWY5Y2U2YTZjZDQzNzg1OGJhY2I4MTQ2MThhMjcyZmYzYTQxNWM2ZTA3ZjNkYjA5ODg3NzdmZGVjODQ1YTk3YmY3ZDEwMmRkMDMwODIwMTczMDIwMTAxMzA0YzMwMzQwMjBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMjAyMTQ1NjRkNTU0MDI1YWY1OTllMzI3MDc5YjI3MjBlZjAwZGYzN2NmYjdjMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDAwNDYwOThkYzVmMmI5OWUzYmMyZWQ2NjQyZDdmMGE2MWVmYWJjMTVjMzhjNzYzMzNiY2NjZWVlZTM2OWE0ZjRhNWJkZGE4ZWE1OTI2NDEyNGU0MjlmMDg2MzI2ODNkZGJhMTdiYmYyNjJkODJiNmJlZmEzYjRlMTQ4MDM3NmE4YzdmM2M3ZDdlMmE2Nzc5YmJmMTgyNjJhYTg1N2RlOGMyMGExMmI2YTJjZThlNGQ3ZjMxZGQxYjE5NTM5MmNmNjE4NWFmY2UzNGFmZTA1ODk2MDU3YjM2ZTliMTcxYjZjNjdlZDdjMjI4NmNiZmE4M2ZmOGExNjdjN2JjNzEwOWFlZTdkN2UxOTA5YmQzODRmYmZjNjE5MzhlZmNhNTFjODk5M2M3MWRiMzE3NzMwZjE2ZTdlNzc2ODY3YWU0ZmRjNTYyZDZmMTVkZTU4NWU3Yjk0ZWY0OTZhMzY3NjM2N2EyY2JhYWI3YjYzNjY0OGIwMDc2YmFkNWNkZjFlMDk3NDBlYzZhNDUxYmZmNTM0ZWZhMjE1MDlmM2JhNzdiODEwMWI5MWVhN2U1NWRkYmZlMTQwMTUxNzA2N2Q3YjAxYTJhMDg3OWYwODg1Yzg5NGE4N2NmYjY4YzRkN2VlODkwNjA0ODgxYWViOTdjMjJkMWYzMzdlZjkyM2UwMzVhNjQwMDMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMzAyMTQ2MjQ3NzI5ODc1OWU4ZTA0NzE4YWU1NjMxNTVmMzUyM2NmYjg0Y2RiMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDA2ZDJjYmIzN2ZkMTI5NTdlNWE3NDgwY2UwNDM1ZThlZjYwNzdkZWYwOGZmMjcwODQ0ZGUyNTE2YTQ3NDJmMjExZDhjNzQ2OTBiYzA5NDhlMDhhMjk2YWJiYTkyODVmNmJiMzA1Yjk1YjdmOTQwOGNlNDRlODM4ODBjNzE5NDQ0NjcyZWM5OTc0NmJhNzhjYzRiZGU0NzUzMTlkMDFiZGU3N2M0OWQ1OGQxNmQzYjJlOTFjMmU2MWU4MzAzY2EzZDdlZGEzNzk3ZmQ4YjM1Y2E3MmJiMTRiMTVhMjRiNTZiYjcwZGMxMzQ4NDU2NTgwODExMGZmNWRiNThjNTZmN2EwNDM1NjA3ZTNjMzUyZmJmNGY1NTEwNmYyOTgwZmQzY2Q0MjM5N2RiZjcxMzdlZTdmMWUzMmNkODBhM2I3YWIxMmI0NmMxNjkyMjAyNzhkNzcxN2I3OGEzYzQ1ZDYzOTVhMTMwYThiNTg4NDFjYmMyOTBlNGY4MTdkZTNhNGZlMTZlY2QwNzdjYTMzYTBhYTI1ZTIzNWNjN2Y2NjU1YTgwYmE4YWVlYzg3OTA1YmIyYTc1NDU5YjdiY2M1YTEzM2YyOTkzNDkzYjQxZmZjZjYzY2Q3YTM5MWUzZTZmNzgwOTRjYTQ0MmM4MDE0NDQwM2NiMGE1ZjAwYmZjNjFhZTg4MCIKIAogUEtDUzcgUGFyc2UgRmFpbHVyZSBJbnZhbGlkIEFTTjE6IENoYW5nZSBsZW5ndGggZnJvbSAxMSB0byAxMiAjNjUxLjAKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBwa2NzN19hc24xX2ZhaWw6IjMwODIwNDlkMDYwOTJhODY0ODg2ZjcwZDAxMDcwMmEwODIwNDhlMzA4MjA0OGEwMjAxMDEzMTBmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwYjA2MDkyYTg2NDg4NmY3MGQwMTA3MDEzMTgyMDQ2NTMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTAyMTQ3YmRlZGRkMjQ0NGNkMWNkZmU1YzQxYTgxMDJjODliN2RmMmU2Y2JmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDA1YmVjZDg3MTk1YzFkZWZmOTBjMjRjOTEyNjliNTViM2YwNjliYzIyNWMzMjZjMzE0YzFhNTE3ODZmZmUxNGM4MzBiZTRlNGJjNzNjYmEzNmM5NzY3N2I0NDE2ODI3OWJlOTFlN2NkZjdjMTkzODZhZTIxODYyNzE5ZDEzYTNhMGZmZjA4MDNkNDYwOTYyZjJjZGE4MzcxNDg0ODczMjUyYzNkNzA1NGRiODE0M2UyYjA4MWEzODE2ZWQwODA0Y2E1MDk5YWU1ZmVjZTgzZDVjMmMzNzgzYjE5ODhiNGI0NmRjOTRlNTU1ODdhMTA3ZWExNTQ2YmYyMmQyOGEwOTdmNjUyYTQwNjZkYzI5NjUyNjkwNjlhZjJmNTE3NmJiOGNlOWNhNmQxMWY5Njc1N2YwMzIwNGY3NTY3MDM1ODdkMDBhZDQyNDc5NmM5MmZjN2FlYjZmNDk0NDMxOTk5ZWRhMzA5OTBlNGY1NzczNjMyZWQyNThmZTAyNzY2NzM1OTlkYTZmY2UzNWNkYWQ3NzI2YTBiYjAyNGNhZDk5NmI4OGUwY2I5ODg1NGNlYjVjMGI2ZWM3NDhkOWY5Y2U2YTZjZDQzNzg1OGJhY2I4MTQ2MThhMjcyZmYzYTQxNWM2ZTA3ZjNkYjA5ODg3NzdmZGVjODQ1YTk3YmY3ZDEwMmRkMDMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBjMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMjAyMTQ1NjRkNTU0MDI1YWY1OTllMzI3MDc5YjI3MjBlZjAwZGYzN2NmYjdjMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDAwNDYwOThkYzVmMmI5OWUzYmMyZWQ2NjQyZDdmMGE2MWVmYWJjMTVjMzhjNzYzMzNiY2NjZWVlZTM2OWE0ZjRhNWJkZGE4ZWE1OTI2NDEyNGU0MjlmMDg2MzI2ODNkZGJhMTdiYmYyNjJkODJiNmJlZmEzYjRlMTQ4MDM3NmE4YzdmM2M3ZDdlMmE2Nzc5YmJmMTgyNjJhYTg1N2RlOGMyMGExMmI2YTJjZThlNGQ3ZjMxZGQxYjE5NTM5MmNmNjE4NWFmY2UzNGFmZTA1ODk2MDU3YjM2ZTliMTcxYjZjNjdlZDdjMjI4NmNiZmE4M2ZmOGExNjdjN2JjNzEwOWFlZTdkN2UxOTA5YmQzODRmYmZjNjE5MzhlZmNhNTFjODk5M2M3MWRiMzE3NzMwZjE2ZTdlNzc2ODY3YWU0ZmRjNTYyZDZmMTVkZTU4NWU3Yjk0ZWY0OTZhMzY3NjM2N2EyY2JhYWI3YjYzNjY0OGIwMDc2YmFkNWNkZjFlMDk3NDBlYzZhNDUxYmZmNTM0ZWZhMjE1MDlmM2JhNzdiODEwMWI5MWVhN2U1NWRkYmZlMTQwMTUxNzA2N2Q3YjAxYTJhMDg3OWYwODg1Yzg5NGE4N2NmYjY4YzRkN2VlODkwNjA0ODgxYWViOTdjMjJkMWYzMzdlZjkyM2UwMzVhNjQwMDMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMzAyMTQ2MjQ3NzI5ODc1OWU4ZTA0NzE4YWU1NjMxNTVmMzUyM2NmYjg0Y2RiMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDA2ZDJjYmIzN2ZkMTI5NTdlNWE3NDgwY2UwNDM1ZThlZjYwNzdkZWYwOGZmMjcwODQ0ZGUyNTE2YTQ3NDJmMjExZDhjNzQ2OTBiYzA5NDhlMDhhMjk2YWJiYTkyODVmNmJiMzA1Yjk1YjdmOTQwOGNlNDRlODM4ODBjNzE5NDQ0NjcyZWM5OTc0NmJhNzhjYzRiZGU0NzUzMTlkMDFiZGU3N2M0OWQ1OGQxNmQzYjJlOTFjMmU2MWU4MzAzY2EzZDdlZGEzNzk3ZmQ4YjM1Y2E3MmJiMTRiMTVhMjRiNTZiYjcwZGMxMzQ4NDU2NTgwODExMGZmNWRiNThjNTZmN2EwNDM1NjA3ZTNjMzUyZmJmNGY1NTEwNmYyOTgwZmQzY2Q0MjM5N2RiZjcxMzdlZTdmMWUzMmNkODBhM2I3YWIxMmI0NmMxNjkyMjAyNzhkNzcxN2I3OGEzYzQ1ZDYzOTVhMTMwYThiNTg4NDFjYmMyOTBlNGY4MTdkZTNhNGZlMTZlY2QwNzdjYTMzYTBhYTI1ZTIzNWNjN2Y2NjU1YTgwYmE4YWVlYzg3OTA1YmIyYTc1NDU5YjdiY2M1YTEzM2YyOTkzNDkzYjQxZmZjZjYzY2Q3YTM5MWUzZTZmNzgwOTRjYTQ0MmM4MDE0NDQwM2NiMGE1ZjAwYmZjNjFhZTg4MCIKIAogUEtDUzcgUGFyc2UgRmFpbHVyZSBJbnZhbGlkIEFTTjE6IENoYW5nZSBjb250ZW50cyBvZiB0YWcgMzEgdG8gY29udGFpbiBvbmUgdW5hY2NvdW50ZWQgZXh0cmEgYnl0ZSAjNjUyLjAKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBwa2NzN19hc24xX2ZhaWw6IjMwODIwNDlkMDYwOTJhODY0ODg2ZjcwZDAxMDcwMmEwODIwNDhlMzA4MjA0OGEwMjAxMDEzMTBmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwYjA2MDkyYTg2NDg4NmY3MGQwMTA3MDEzMTgyMDQ2NTMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTAyMTQ3YmRlZGRkMjQ0NGNkMWNkZmU1YzQxYTgxMDJjODliN2RmMmU2Y2JmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDA1YmVjZDg3MTk1YzFkZWZmOTBjMjRjOTEyNjliNTViM2YwNjliYzIyNWMzMjZjMzE0YzFhNTE3ODZmZmUxNGM4MzBiZTRlNGJjNzNjYmEzNmM5NzY3N2I0NDE2ODI3OWJlOTFlN2NkZjdjMTkzODZhZTIxODYyNzE5ZDEzYTNhMGZmZjA4MDNkNDYwOTYyZjJjZGE4MzcxNDg0ODczMjUyYzNkNzA1NGRiODE0M2UyYjA4MWEzODE2ZWQwODA0Y2E1MDk5YWU1ZmVjZTgzZDVjMmMzNzgzYjE5ODhiNGI0NmRjOTRlNTU1ODdhMTA3ZWExNTQ2YmYyMmQyOGEwOTdmNjUyYTQwNjZkYzI5NjUyNjkwNjlhZjJmNTE3NmJiOGNlOWNhNmQxMWY5Njc1N2YwMzIwNGY3NTY3MDM1ODdkMDBhZDQyNDc5NmM5MmZjN2FlYjZmNDk0NDMxOTk5ZWRhMzA5OTBlNGY1NzczNjMyZWQyNThmZTAyNzY2NzM1OTlkYTZmY2UzNWNkYWQ3NzI2YTBiYjAyNGNhZDk5NmI4OGUwY2I5ODg1NGNlYjVjMGI2ZWM3NDhkOWY5Y2U2YTZjZDQzNzg1OGJhY2I4MTQ2MThhMjcyZmYzYTQxNWM2ZTA3ZjNkYjA5ODg3NzdmZGVjODQ1YTk3YmY3ZDEwMmRkMDMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBjMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzAwMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMyMDIxNDU2NGQ1NTQwMjVhZjU5OWUzMjcwNzliMjcyMGVmMDBkZjM3Y2ZiN2MzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDA0NjA5OGRjNWYyYjk5ZTNiYzJlZDY2NDJkN2YwYTYxZWZhYmMxNWMzOGM3NjMzM2JjY2NlZWVlMzY5YTRmNGE1YmRkYThlYTU5MjY0MTI0ZTQyOWYwODYzMjY4M2RkYmExN2JiZjI2MmQ4MmI2YmVmYTNiNGUxNDgwMzc2YThjN2YzYzdkN2UyYTY3NzliYmYxODI2MmFhODU3ZGU4YzIwYTEyYjZhMmNlOGU0ZDdmMzFkZDFiMTk1MzkyY2Y2MTg1YWZjZTM0YWZlMDU4OTYwNTdiMzZlOWIxNzFiNmM2N2VkN2MyMjg2Y2JmYTgzZmY4YTE2N2M3YmM3MTA5YWVlN2Q3ZTE5MDliZDM4NGZiZmM2MTkzOGVmY2E1MWM4OTkzYzcxZGIzMTc3MzBmMTZlN2U3NzY4NjdhZTRmZGM1NjJkNmYxNWRlNTg1ZTdiOTRlZjQ5NmEzNjc2MzY3YTJjYmFhYjdiNjM2NjQ4YjAwNzZiYWQ1Y2RmMWUwOTc0MGVjNmE0NTFiZmY1MzRlZmEyMTUwOWYzYmE3N2I4MTAxYjkxZWE3ZTU1ZGRiZmUxNDAxNTE3MDY3ZDdiMDFhMmEwODc5ZjA4ODVjODk0YTg3Y2ZiNjhjNGQ3ZWU4OTA2MDQ4ODFhZWI5N2MyMmQxZjMzN2VmOTIzZTAzNWE2NDAwMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMzMDIxNDYyNDc3Mjk4NzU5ZThlMDQ3MThhZTU2MzE1NWYzNTIzY2ZiODRjZGIzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDZkMmNiYjM3ZmQxMjk1N2U1YTc0ODBjZTA0MzVlOGVmNjA3N2RlZjA4ZmYyNzA4NDRkZTI1MTZhNDc0MmYyMTFkOGM3NDY5MGJjMDk0OGUwOGEyOTZhYmJhOTI4NWY2YmIzMDViOTViN2Y5NDA4Y2U0NGU4Mzg4MGM3MTk0NDQ2NzJlYzk5NzQ2YmE3OGNjNGJkZTQ3NTMxOWQwMWJkZTc3YzQ5ZDU4ZDE2ZDNiMmU5MWMyZTYxZTgzMDNjYTNkN2VkYTM3OTdmZDhiMzVjYTcyYmIxNGIxNWEyNGI1NmJiNzBkYzEzNDg0NTY1ODA4MTEwZmY1ZGI1OGM1NmY3YTA0MzU2MDdlM2MzNTJmYmY0ZjU1MTA2ZjI5ODBmZDNjZDQyMzk3ZGJmNzEzN2VlN2YxZTMyY2Q4MGEzYjdhYjEyYjQ2YzE2OTIyMDI3OGQ3NzE3Yjc4YTNjNDVkNjM5NWExMzBhOGI1ODg0MWNiYzI5MGU0ZjgxN2RlM2E0ZmUxNmVjZDA3N2NhMzNhMGFhMjVlMjM1Y2M3ZjY2NTVhODBiYThhZWVjODc5MDViYjJhNzU0NTliN2JjYzVhMTMzZjI5OTM0OTNiNDFmZmNmNjNjZDdhMzkxZTNlNmY3ODA5NGNhNDQyYzgwMTQ0NDAzY2IwYTVmMDBiZmM2MWFlODgwIgogCiBQS0NTNyBQYXJzZSBGYWlsdXJlIEludmFsaWQgQVNOMTogQ2hhbmdlIGxlbmd0aCBmcm9tIDExIHRvIDEwICM2NTMuMAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHBrY3M3X2FzbjFfZmFpbDoiMzA4MjA0OWQwNjA5MmE4NjQ4ODZmNzBkMDEwNzAyYTA4MjA0OGUzMDgyMDQ4YTAyMDEwMTMxMGYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBiMDYwOTJhODY0ODg2ZjcwZDAxMDcwMTMxODIwNDY1MzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDViZWNkODcxOTVjMWRlZmY5MGMyNGM5MTI2OWI1NWIzZjA2OWJjMjI1YzMyNmMzMTRjMWE1MTc4NmZmZTE0YzgzMGJlNGU0YmM3M2NiYTM2Yzk3Njc3YjQ0MTY4Mjc5YmU5MWU3Y2RmN2MxOTM4NmFlMjE4NjI3MTlkMTNhM2EwZmZmMDgwM2Q0NjA5NjJmMmNkYTgzNzE0ODQ4NzMyNTJjM2Q3MDU0ZGI4MTQzZTJiMDgxYTM4MTZlZDA4MDRjYTUwOTlhZTVmZWNlODNkNWMyYzM3ODNiMTk4OGI0YjQ2ZGM5NGU1NTU4N2ExMDdlYTE1NDZiZjIyZDI4YTA5N2Y2NTJhNDA2NmRjMjk2NTI2OTA2OWFmMmY1MTc2YmI4Y2U5Y2E2ZDExZjk2NzU3ZjAzMjA0Zjc1NjcwMzU4N2QwMGFkNDI0Nzk2YzkyZmM3YWViNmY0OTQ0MzE5OTllZGEzMDk5MGU0ZjU3NzM2MzJlZDI1OGZlMDI3NjY3MzU5OWRhNmZjZTM1Y2RhZDc3MjZhMGJiMDI0Y2FkOTk2Yjg4ZTBjYjk4ODU0Y2ViNWMwYjZlYzc0OGQ5ZjljZTZhNmNkNDM3ODU4YmFjYjgxNDYxOGEyNzJmZjNhNDE1YzZlMDdmM2RiMDk4ODc3N2ZkZWM4NDVhOTdiZjdkMTAyZGQwMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGEzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMyMDIxNDU2NGQ1NTQwMjVhZjU5OWUzMjcwNzliMjcyMGVmMDBkZjM3Y2ZiN2MzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDA0NjA5OGRjNWYyYjk5ZTNiYzJlZDY2NDJkN2YwYTYxZWZhYmMxNWMzOGM3NjMzM2JjY2NlZWVlMzY5YTRmNGE1YmRkYThlYTU5MjY0MTI0ZTQyOWYwODYzMjY4M2RkYmExN2JiZjI2MmQ4MmI2YmVmYTNiNGUxNDgwMzc2YThjN2YzYzdkN2UyYTY3NzliYmYxODI2MmFhODU3ZGU4YzIwYTEyYjZhMmNlOGU0ZDdmMzFkZDFiMTk1MzkyY2Y2MTg1YWZjZTM0YWZlMDU4OTYwNTdiMzZlOWIxNzFiNmM2N2VkN2MyMjg2Y2JmYTgzZmY4YTE2N2M3YmM3MTA5YWVlN2Q3ZTE5MDliZDM4NGZiZmM2MTkzOGVmY2E1MWM4OTkzYzcxZGIzMTc3MzBmMTZlN2U3NzY4NjdhZTRmZGM1NjJkNmYxNWRlNTg1ZTdiOTRlZjQ5NmEzNjc2MzY3YTJjYmFhYjdiNjM2NjQ4YjAwNzZiYWQ1Y2RmMWUwOTc0MGVjNmE0NTFiZmY1MzRlZmEyMTUwOWYzYmE3N2I4MTAxYjkxZWE3ZTU1ZGRiZmUxNDAxNTE3MDY3ZDdiMDFhMmEwODc5ZjA4ODVjODk0YTg3Y2ZiNjhjNGQ3ZWU4OTA2MDQ4ODFhZWI5N2MyMmQxZjMzN2VmOTIzZTAzNWE2NDAwMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMzMDIxNDYyNDc3Mjk4NzU5ZThlMDQ3MThhZTU2MzE1NWYzNTIzY2ZiODRjZGIzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDZkMmNiYjM3ZmQxMjk1N2U1YTc0ODBjZTA0MzVlOGVmNjA3N2RlZjA4ZmYyNzA4NDRkZTI1MTZhNDc0MmYyMTFkOGM3NDY5MGJjMDk0OGUwOGEyOTZhYmJhOTI4NWY2YmIzMDViOTViN2Y5NDA4Y2U0NGU4Mzg4MGM3MTk0NDQ2NzJlYzk5NzQ2YmE3OGNjNGJkZTQ3NTMxOWQwMWJkZTc3YzQ5ZDU4ZDE2ZDNiMmU5MWMyZTYxZTgzMDNjYTNkN2VkYTM3OTdmZDhiMzVjYTcyYmIxNGIxNWEyNGI1NmJiNzBkYzEzNDg0NTY1ODA4MTEwZmY1ZGI1OGM1NmY3YTA0MzU2MDdlM2MzNTJmYmY0ZjU1MTA2ZjI5ODBmZDNjZDQyMzk3ZGJmNzEzN2VlN2YxZTMyY2Q4MGEzYjdhYjEyYjQ2YzE2OTIyMDI3OGQ3NzE3Yjc4YTNjNDVkNjM5NWExMzBhOGI1ODg0MWNiYzI5MGU0ZjgxN2RlM2E0ZmUxNmVjZDA3N2NhMzNhMGFhMjVlMjM1Y2M3ZjY2NTVhODBiYThhZWVjODc5MDViYjJhNzU0NTliN2JjYzVhMTMzZjI5OTM0OTNiNDFmZmNmNjNjZDdhMzkxZTNlNmY3ODA5NGNhNDQyYzgwMTQ0NDAzY2IwYTVmMDBiZmM2MWFlODgwIgogCiBQS0NTNyBQYXJzZSBGYWlsdXJlIEludmFsaWQgQVNOMTogQ2hhbmdlIHRhZyAzMCB0byAwMiAjNjU0LjAKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBwa2NzN19hc24xX2ZhaWw6IjMwODIwNDlkMDYwOTJhODY0ODg2ZjcwZDAxMDcwMmEwODIwNDhlMzA4MjA0OGEwMjAxMDEzMTBmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwYjA2MDkyYTg2NDg4NmY3MGQwMTA3MDEzMTgyMDQ2NTMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTAyMTQ3YmRlZGRkMjQ0NGNkMWNkZmU1YzQxYTgxMDJjODliN2RmMmU2Y2JmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDA1YmVjZDg3MTk1YzFkZWZmOTBjMjRjOTEyNjliNTViM2YwNjliYzIyNWMzMjZjMzE0YzFhNTE3ODZmZmUxNGM4MzBiZTRlNGJjNzNjYmEzNmM5NzY3N2I0NDE2ODI3OWJlOTFlN2NkZjdjMTkzODZhZTIxODYyNzE5ZDEzYTNhMGZmZjA4MDNkNDYwOTYyZjJjZGE4MzcxNDg0ODczMjUyYzNkNzA1NGRiODE0M2UyYjA4MWEzODE2ZWQwODA0Y2E1MDk5YWU1ZmVjZTgzZDVjMmMzNzgzYjE5ODhiNGI0NmRjOTRlNTU1ODdhMTA3ZWExNTQ2YmYyMmQyOGEwOTdmNjUyYTQwNjZkYzI5NjUyNjkwNjlhZjJmNTE3NmJiOGNlOWNhNmQxMWY5Njc1N2YwMzIwNGY3NTY3MDM1ODdkMDBhZDQyNDc5NmM5MmZjN2FlYjZmNDk0NDMxOTk5ZWRhMzA5OTBlNGY1NzczNjMyZWQyNThmZTAyNzY2NzM1OTlkYTZmY2UzNWNkYWQ3NzI2YTBiYjAyNGNhZDk5NmI4OGUwY2I5ODg1NGNlYjVjMGI2ZWM3NDhkOWY5Y2U2YTZjZDQzNzg1OGJhY2I4MTQ2MThhMjcyZmYzYTQxNWM2ZTA3ZjNkYjA5ODg3NzdmZGVjODQ1YTk3YmY3ZDEwMmRkMDMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMDIwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMjAyMTQ1NjRkNTU0MDI1YWY1OTllMzI3MDc5YjI3MjBlZjAwZGYzN2NmYjdjMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDAwNDYwOThkYzVmMmI5OWUzYmMyZWQ2NjQyZDdmMGE2MWVmYWJjMTVjMzhjNzYzMzNiY2NjZWVlZTM2OWE0ZjRhNWJkZGE4ZWE1OTI2NDEyNGU0MjlmMDg2MzI2ODNkZGJhMTdiYmYyNjJkODJiNmJlZmEzYjRlMTQ4MDM3NmE4YzdmM2M3ZDdlMmE2Nzc5YmJmMTgyNjJhYTg1N2RlOGMyMGExMmI2YTJjZThlNGQ3ZjMxZGQxYjE5NTM5MmNmNjE4NWFmY2UzNGFmZTA1ODk2MDU3YjM2ZTliMTcxYjZjNjdlZDdjMjI4NmNiZmE4M2ZmOGExNjdjN2JjNzEwOWFlZTdkN2UxOTA5YmQzODRmYmZjNjE5MzhlZmNhNTFjODk5M2M3MWRiMzE3NzMwZjE2ZTdlNzc2ODY3YWU0ZmRjNTYyZDZmMTVkZTU4NWU3Yjk0ZWY0OTZhMzY3NjM2N2EyY2JhYWI3YjYzNjY0OGIwMDc2YmFkNWNkZjFlMDk3NDBlYzZhNDUxYmZmNTM0ZWZhMjE1MDlmM2JhNzdiODEwMWI5MWVhN2U1NWRkYmZlMTQwMTUxNzA2N2Q3YjAxYTJhMDg3OWYwODg1Yzg5NGE4N2NmYjY4YzRkN2VlODkwNjA0ODgxYWViOTdjMjJkMWYzMzdlZjkyM2UwMzVhNjQwMDMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMzAyMTQ2MjQ3NzI5ODc1OWU4ZTA0NzE4YWU1NjMxNTVmMzUyM2NmYjg0Y2RiMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDA2ZDJjYmIzN2ZkMTI5NTdlNWE3NDgwY2UwNDM1ZThlZjYwNzdkZWYwOGZmMjcwODQ0ZGUyNTE2YTQ3NDJmMjExZDhjNzQ2OTBiYzA5NDhlMDhhMjk2YWJiYTkyODVmNmJiMzA1Yjk1YjdmOTQwOGNlNDRlODM4ODBjNzE5NDQ0NjcyZWM5OTc0NmJhNzhjYzRiZGU0NzUzMTlkMDFiZGU3N2M0OWQ1OGQxNmQzYjJlOTFjMmU2MWU4MzAzY2EzZDdlZGEzNzk3ZmQ4YjM1Y2E3MmJiMTRiMTVhMjRiNTZiYjcwZGMxMzQ4NDU2NTgwODExMGZmNWRiNThjNTZmN2EwNDM1NjA3ZTNjMzUyZmJmNGY1NTEwNmYyOTgwZmQzY2Q0MjM5N2RiZjcxMzdlZTdmMWUzMmNkODBhM2I3YWIxMmI0NmMxNjkyMjAyNzhkNzcxN2I3OGEzYzQ1ZDYzOTVhMTMwYThiNTg4NDFjYmMyOTBlNGY4MTdkZTNhNGZlMTZlY2QwNzdjYTMzYTBhYTI1ZTIzNWNjN2Y2NjU1YTgwYmE4YWVlYzg3OTA1YmIyYTc1NDU5YjdiY2M1YTEzM2YyOTkzNDkzYjQxZmZjZjYzY2Q3YTM5MWUzZTZmNzgwOTRjYTQ0MmM4MDE0NDQwM2NiMGE1ZjAwYmZjNjFhZTg4MCIKIAogUEtDUzcgUGFyc2UgRmFpbHVyZSBJbnZhbGlkIEFTTjE6IENoYW5nZSBsZW5ndGggZnJvbSA5IHRvIDEwICM2NTUuMAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHBrY3M3X2FzbjFfZmFpbDoiMzA4MjA0OWQwNjA5MmE4NjQ4ODZmNzBkMDEwNzAyYTA4MjA0OGUzMDgyMDQ4YTAyMDEwMTMxMGYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBiMDYwOTJhODY0ODg2ZjcwZDAxMDcwMTMxODIwNDY1MzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDViZWNkODcxOTVjMWRlZmY5MGMyNGM5MTI2OWI1NWIzZjA2OWJjMjI1YzMyNmMzMTRjMWE1MTc4NmZmZTE0YzgzMGJlNGU0YmM3M2NiYTM2Yzk3Njc3YjQ0MTY4Mjc5YmU5MWU3Y2RmN2MxOTM4NmFlMjE4NjI3MTlkMTNhM2EwZmZmMDgwM2Q0NjA5NjJmMmNkYTgzNzE0ODQ4NzMyNTJjM2Q3MDU0ZGI4MTQzZTJiMDgxYTM4MTZlZDA4MDRjYTUwOTlhZTVmZWNlODNkNWMyYzM3ODNiMTk4OGI0YjQ2ZGM5NGU1NTU4N2ExMDdlYTE1NDZiZjIyZDI4YTA5N2Y2NTJhNDA2NmRjMjk2NTI2OTA2OWFmMmY1MTc2YmI4Y2U5Y2E2ZDExZjk2NzU3ZjAzMjA0Zjc1NjcwMzU4N2QwMGFkNDI0Nzk2YzkyZmM3YWViNmY0OTQ0MzE5OTllZGEzMDk5MGU0ZjU3NzM2MzJlZDI1OGZlMDI3NjY3MzU5OWRhNmZjZTM1Y2RhZDc3MjZhMGJiMDI0Y2FkOTk2Yjg4ZTBjYjk4ODU0Y2ViNWMwYjZlYzc0OGQ5ZjljZTZhNmNkNDM3ODU4YmFjYjgxNDYxOGEyNzJmZjNhNDE1YzZlMDdmM2RiMDk4ODc3N2ZkZWM4NDVhOTdiZjdkMTAyZGQwMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDBhMDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMyMDIxNDU2NGQ1NTQwMjVhZjU5OWUzMjcwNzliMjcyMGVmMDBkZjM3Y2ZiN2MzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDA0NjA5OGRjNWYyYjk5ZTNiYzJlZDY2NDJkN2YwYTYxZWZhYmMxNWMzOGM3NjMzM2JjY2NlZWVlMzY5YTRmNGE1YmRkYThlYTU5MjY0MTI0ZTQyOWYwODYzMjY4M2RkYmExN2JiZjI2MmQ4MmI2YmVmYTNiNGUxNDgwMzc2YThjN2YzYzdkN2UyYTY3NzliYmYxODI2MmFhODU3ZGU4YzIwYTEyYjZhMmNlOGU0ZDdmMzFkZDFiMTk1MzkyY2Y2MTg1YWZjZTM0YWZlMDU4OTYwNTdiMzZlOWIxNzFiNmM2N2VkN2MyMjg2Y2JmYTgzZmY4YTE2N2M3YmM3MTA5YWVlN2Q3ZTE5MDliZDM4NGZiZmM2MTkzOGVmY2E1MWM4OTkzYzcxZGIzMTc3MzBmMTZlN2U3NzY4NjdhZTRmZGM1NjJkNmYxNWRlNTg1ZTdiOTRlZjQ5NmEzNjc2MzY3YTJjYmFhYjdiNjM2NjQ4YjAwNzZiYWQ1Y2RmMWUwOTc0MGVjNmE0NTFiZmY1MzRlZmEyMTUwOWYzYmE3N2I4MTAxYjkxZWE3ZTU1ZGRiZmUxNDAxNTE3MDY3ZDdiMDFhMmEwODc5ZjA4ODVjODk0YTg3Y2ZiNjhjNGQ3ZWU4OTA2MDQ4ODFhZWI5N2MyMmQxZjMzN2VmOTIzZTAzNWE2NDAwMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMzMDIxNDYyNDc3Mjk4NzU5ZThlMDQ3MThhZTU2MzE1NWYzNTIzY2ZiODRjZGIzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDZkMmNiYjM3ZmQxMjk1N2U1YTc0ODBjZTA0MzVlOGVmNjA3N2RlZjA4ZmYyNzA4NDRkZTI1MTZhNDc0MmYyMTFkOGM3NDY5MGJjMDk0OGUwOGEyOTZhYmJhOTI4NWY2YmIzMDViOTViN2Y5NDA4Y2U0NGU4Mzg4MGM3MTk0NDQ2NzJlYzk5NzQ2YmE3OGNjNGJkZTQ3NTMxOWQwMWJkZTc3YzQ5ZDU4ZDE2ZDNiMmU5MWMyZTYxZTgzMDNjYTNkN2VkYTM3OTdmZDhiMzVjYTcyYmIxNGIxNWEyNGI1NmJiNzBkYzEzNDg0NTY1ODA4MTEwZmY1ZGI1OGM1NmY3YTA0MzU2MDdlM2MzNTJmYmY0ZjU1MTA2ZjI5ODBmZDNjZDQyMzk3ZGJmNzEzN2VlN2YxZTMyY2Q4MGEzYjdhYjEyYjQ2YzE2OTIyMDI3OGQ3NzE3Yjc4YTNjNDVkNjM5NWExMzBhOGI1ODg0MWNiYzI5MGU0ZjgxN2RlM2E0ZmUxNmVjZDA3N2NhMzNhMGFhMjVlMjM1Y2M3ZjY2NTVhODBiYThhZWVjODc5MDViYjJhNzU0NTliN2JjYzVhMTMzZjI5OTM0OTNiNDFmZmNmNjNjZDdhMzkxZTNlNmY3ODA5NGNhNDQyYzgwMTQ0NDAzY2IwYTVmMDBiZmM2MWFlODgwIgogCiBQS0NTNyBQYXJzZSBGYWlsdXJlIEludmFsaWQgQVNOMTogQ2hhbmdlIGNvbnRlbnRzIG9mIHRhZyAzMCB0byBjb250YWluIG9uZSB1bmFjY291bnRlZCBleHRyYSBieXRlICM2NTYuMAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHBrY3M3X2FzbjFfZmFpbDoiMzA4MjA0OWQwNjA5MmE4NjQ4ODZmNzBkMDEwNzAyYTA4MjA0OGUzMDgyMDQ4YTAyMDEwMTMxMGYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBiMDYwOTJhODY0ODg2ZjcwZDAxMDcwMTMxODIwNDY1MzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDViZWNkODcxOTVjMWRlZmY5MGMyNGM5MTI2OWI1NWIzZjA2OWJjMjI1YzMyNmMzMTRjMWE1MTc4NmZmZTE0YzgzMGJlNGU0YmM3M2NiYTM2Yzk3Njc3YjQ0MTY4Mjc5YmU5MWU3Y2RmN2MxOTM4NmFlMjE4NjI3MTlkMTNhM2EwZmZmMDgwM2Q0NjA5NjJmMmNkYTgzNzE0ODQ4NzMyNTJjM2Q3MDU0ZGI4MTQzZTJiMDgxYTM4MTZlZDA4MDRjYTUwOTlhZTVmZWNlODNkNWMyYzM3ODNiMTk4OGI0YjQ2ZGM5NGU1NTU4N2ExMDdlYTE1NDZiZjIyZDI4YTA5N2Y2NTJhNDA2NmRjMjk2NTI2OTA2OWFmMmY1MTc2YmI4Y2U5Y2E2ZDExZjk2NzU3ZjAzMjA0Zjc1NjcwMzU4N2QwMGFkNDI0Nzk2YzkyZmM3YWViNmY0OTQ0MzE5OTllZGEzMDk5MGU0ZjU3NzM2MzJlZDI1OGZlMDI3NjY3MzU5OWRhNmZjZTM1Y2RhZDc3MjZhMGJiMDI0Y2FkOTk2Yjg4ZTBjYjk4ODU0Y2ViNWMwYjZlYzc0OGQ5ZjljZTZhNmNkNDM3ODU4YmFjYjgxNDYxOGEyNzJmZjNhNDE1YzZlMDdmM2RiMDk4ODc3N2ZkZWM4NDVhOTdiZjdkMTAyZGQwMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDBhMDYwMzU1MDQwNjEzMDI0ZTRjMDAzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzIwMjE0NTY0ZDU1NDAyNWFmNTk5ZTMyNzA3OWIyNzIwZWYwMGRmMzdjZmI3YzMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwMDQ2MDk4ZGM1ZjJiOTllM2JjMmVkNjY0MmQ3ZjBhNjFlZmFiYzE1YzM4Yzc2MzMzYmNjY2VlZWUzNjlhNGY0YTViZGRhOGVhNTkyNjQxMjRlNDI5ZjA4NjMyNjgzZGRiYTE3YmJmMjYyZDgyYjZiZWZhM2I0ZTE0ODAzNzZhOGM3ZjNjN2Q3ZTJhNjc3OWJiZjE4MjYyYWE4NTdkZThjMjBhMTJiNmEyY2U4ZTRkN2YzMWRkMWIxOTUzOTJjZjYxODVhZmNlMzRhZmUwNTg5NjA1N2IzNmU5YjE3MWI2YzY3ZWQ3YzIyODZjYmZhODNmZjhhMTY3YzdiYzcxMDlhZWU3ZDdlMTkwOWJkMzg0ZmJmYzYxOTM4ZWZjYTUxYzg5OTNjNzFkYjMxNzczMGYxNmU3ZTc3Njg2N2FlNGZkYzU2MmQ2ZjE1ZGU1ODVlN2I5NGVmNDk2YTM2NzYzNjdhMmNiYWFiN2I2MzY2NDhiMDA3NmJhZDVjZGYxZTA5NzQwZWM2YTQ1MWJmZjUzNGVmYTIxNTA5ZjNiYTc3YjgxMDFiOTFlYTdlNTVkZGJmZTE0MDE1MTcwNjdkN2IwMWEyYTA4NzlmMDg4NWM4OTRhODdjZmI2OGM0ZDdlZTg5MDYwNDg4MWFlYjk3YzIyZDFmMzM3ZWY5MjNlMDM1YTY0MDAzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzMwMjE0NjI0NzcyOTg3NTllOGUwNDcxOGFlNTYzMTU1ZjM1MjNjZmI4NGNkYjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwNmQyY2JiMzdmZDEyOTU3ZTVhNzQ4MGNlMDQzNWU4ZWY2MDc3ZGVmMDhmZjI3MDg0NGRlMjUxNmE0NzQyZjIxMWQ4Yzc0NjkwYmMwOTQ4ZTA4YTI5NmFiYmE5Mjg1ZjZiYjMwNWI5NWI3Zjk0MDhjZTQ0ZTgzODgwYzcxOTQ0NDY3MmVjOTk3NDZiYTc4Y2M0YmRlNDc1MzE5ZDAxYmRlNzdjNDlkNThkMTZkM2IyZTkxYzJlNjFlODMwM2NhM2Q3ZWRhMzc5N2ZkOGIzNWNhNzJiYjE0YjE1YTI0YjU2YmI3MGRjMTM0ODQ1NjU4MDgxMTBmZjVkYjU4YzU2ZjdhMDQzNTYwN2UzYzM1MmZiZjRmNTUxMDZmMjk4MGZkM2NkNDIzOTdkYmY3MTM3ZWU3ZjFlMzJjZDgwYTNiN2FiMTJiNDZjMTY5MjIwMjc4ZDc3MTdiNzhhM2M0NWQ2Mzk1YTEzMGE4YjU4ODQxY2JjMjkwZTRmODE3ZGUzYTRmZTE2ZWNkMDc3Y2EzM2EwYWEyNWUyMzVjYzdmNjY1NWE4MGJhOGFlZWM4NzkwNWJiMmE3NTQ1OWI3YmNjNWExMzNmMjk5MzQ5M2I0MWZmY2Y2M2NkN2EzOTFlM2U2Zjc4MDk0Y2E0NDJjODAxNDQ0MDNjYjBhNWYwMGJmYzYxYWU4ODAiCiAKIFBLQ1M3IFBhcnNlIEZhaWx1cmUgSW52YWxpZCBBU04xOiBDaGFuZ2UgbGVuZ3RoIGZyb20gOSB0byA4ICM2NTcuMAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHBrY3M3X2FzbjFfZmFpbDoiMzA4MjA0OWQwNjA5MmE4NjQ4ODZmNzBkMDEwNzAyYTA4MjA0OGUzMDgyMDQ4YTAyMDEwMTMxMGYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBiMDYwOTJhODY0ODg2ZjcwZDAxMDcwMTMxODIwNDY1MzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDViZWNkODcxOTVjMWRlZmY5MGMyNGM5MTI2OWI1NWIzZjA2OWJjMjI1YzMyNmMzMTRjMWE1MTc4NmZmZTE0YzgzMGJlNGU0YmM3M2NiYTM2Yzk3Njc3YjQ0MTY4Mjc5YmU5MWU3Y2RmN2MxOTM4NmFlMjE4NjI3MTlkMTNhM2EwZmZmMDgwM2Q0NjA5NjJmMmNkYTgzNzE0ODQ4NzMyNTJjM2Q3MDU0ZGI4MTQzZTJiMDgxYTM4MTZlZDA4MDRjYTUwOTlhZTVmZWNlODNkNWMyYzM3ODNiMTk4OGI0YjQ2ZGM5NGU1NTU4N2ExMDdlYTE1NDZiZjIyZDI4YTA5N2Y2NTJhNDA2NmRjMjk2NTI2OTA2OWFmMmY1MTc2YmI4Y2U5Y2E2ZDExZjk2NzU3ZjAzMjA0Zjc1NjcwMzU4N2QwMGFkNDI0Nzk2YzkyZmM3YWViNmY0OTQ0MzE5OTllZGEzMDk5MGU0ZjU3NzM2MzJlZDI1OGZlMDI3NjY3MzU5OWRhNmZjZTM1Y2RhZDc3MjZhMGJiMDI0Y2FkOTk2Yjg4ZTBjYjk4ODU0Y2ViNWMwYjZlYzc0OGQ5ZjljZTZhNmNkNDM3ODU4YmFjYjgxNDYxOGEyNzJmZjNhNDE1YzZlMDdmM2RiMDk4ODc3N2ZkZWM4NDVhOTdiZjdkMTAyZGQwMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA4MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMyMDIxNDU2NGQ1NTQwMjVhZjU5OWUzMjcwNzliMjcyMGVmMDBkZjM3Y2ZiN2MzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDA0NjA5OGRjNWYyYjk5ZTNiYzJlZDY2NDJkN2YwYTYxZWZhYmMxNWMzOGM3NjMzM2JjY2NlZWVlMzY5YTRmNGE1YmRkYThlYTU5MjY0MTI0ZTQyOWYwODYzMjY4M2RkYmExN2JiZjI2MmQ4MmI2YmVmYTNiNGUxNDgwMzc2YThjN2YzYzdkN2UyYTY3NzliYmYxODI2MmFhODU3ZGU4YzIwYTEyYjZhMmNlOGU0ZDdmMzFkZDFiMTk1MzkyY2Y2MTg1YWZjZTM0YWZlMDU4OTYwNTdiMzZlOWIxNzFiNmM2N2VkN2MyMjg2Y2JmYTgzZmY4YTE2N2M3YmM3MTA5YWVlN2Q3ZTE5MDliZDM4NGZiZmM2MTkzOGVmY2E1MWM4OTkzYzcxZGIzMTc3MzBmMTZlN2U3NzY4NjdhZTRmZGM1NjJkNmYxNWRlNTg1ZTdiOTRlZjQ5NmEzNjc2MzY3YTJjYmFhYjdiNjM2NjQ4YjAwNzZiYWQ1Y2RmMWUwOTc0MGVjNmE0NTFiZmY1MzRlZmEyMTUwOWYzYmE3N2I4MTAxYjkxZWE3ZTU1ZGRiZmUxNDAxNTE3MDY3ZDdiMDFhMmEwODc5ZjA4ODVjODk0YTg3Y2ZiNjhjNGQ3ZWU4OTA2MDQ4ODFhZWI5N2MyMmQxZjMzN2VmOTIzZTAzNWE2NDAwMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMzMDIxNDYyNDc3Mjk4NzU5ZThlMDQ3MThhZTU2MzE1NWYzNTIzY2ZiODRjZGIzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDZkMmNiYjM3ZmQxMjk1N2U1YTc0ODBjZTA0MzVlOGVmNjA3N2RlZjA4ZmYyNzA4NDRkZTI1MTZhNDc0MmYyMTFkOGM3NDY5MGJjMDk0OGUwOGEyOTZhYmJhOTI4NWY2YmIzMDViOTViN2Y5NDA4Y2U0NGU4Mzg4MGM3MTk0NDQ2NzJlYzk5NzQ2YmE3OGNjNGJkZTQ3NTMxOWQwMWJkZTc3YzQ5ZDU4ZDE2ZDNiMmU5MWMyZTYxZTgzMDNjYTNkN2VkYTM3OTdmZDhiMzVjYTcyYmIxNGIxNWEyNGI1NmJiNzBkYzEzNDg0NTY1ODA4MTEwZmY1ZGI1OGM1NmY3YTA0MzU2MDdlM2MzNTJmYmY0ZjU1MTA2ZjI5ODBmZDNjZDQyMzk3ZGJmNzEzN2VlN2YxZTMyY2Q4MGEzYjdhYjEyYjQ2YzE2OTIyMDI3OGQ3NzE3Yjc4YTNjNDVkNjM5NWExMzBhOGI1ODg0MWNiYzI5MGU0ZjgxN2RlM2E0ZmUxNmVjZDA3N2NhMzNhMGFhMjVlMjM1Y2M3ZjY2NTVhODBiYThhZWVjODc5MDViYjJhNzU0NTliN2JjYzVhMTMzZjI5OTM0OTNiNDFmZmNmNjNjZDdhMzkxZTNlNmY3ODA5NGNhNDQyYzgwMTQ0NDAzY2IwYTVmMDBiZmM2MWFlODgwIgogCiBQS0NTNyBQYXJzZSBGYWlsdXJlIEludmFsaWQgQVNOMTogQ2hhbmdlIHRhZyAwNiB0byAwMiAjNjU4LjAKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBwa2NzN19hc24xX2ZhaWw6IjMwODIwNDlkMDYwOTJhODY0ODg2ZjcwZDAxMDcwMmEwODIwNDhlMzA4MjA0OGEwMjAxMDEzMTBmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwYjA2MDkyYTg2NDg4NmY3MGQwMTA3MDEzMTgyMDQ2NTMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTAyMTQ3YmRlZGRkMjQ0NGNkMWNkZmU1YzQxYTgxMDJjODliN2RmMmU2Y2JmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDA1YmVjZDg3MTk1YzFkZWZmOTBjMjRjOTEyNjliNTViM2YwNjliYzIyNWMzMjZjMzE0YzFhNTE3ODZmZmUxNGM4MzBiZTRlNGJjNzNjYmEzNmM5NzY3N2I0NDE2ODI3OWJlOTFlN2NkZjdjMTkzODZhZTIxODYyNzE5ZDEzYTNhMGZmZjA4MDNkNDYwOTYyZjJjZGE4MzcxNDg0ODczMjUyYzNkNzA1NGRiODE0M2UyYjA4MWEzODE2ZWQwODA0Y2E1MDk5YWU1ZmVjZTgzZDVjMmMzNzgzYjE5ODhiNGI0NmRjOTRlNTU1ODdhMTA3ZWExNTQ2YmYyMmQyOGEwOTdmNjUyYTQwNjZkYzI5NjUyNjkwNjlhZjJmNTE3NmJiOGNlOWNhNmQxMWY5Njc1N2YwMzIwNGY3NTY3MDM1ODdkMDBhZDQyNDc5NmM5MmZjN2FlYjZmNDk0NDMxOTk5ZWRhMzA5OTBlNGY1NzczNjMyZWQyNThmZTAyNzY2NzM1OTlkYTZmY2UzNWNkYWQ3NzI2YTBiYjAyNGNhZDk5NmI4OGUwY2I5ODg1NGNlYjVjMGI2ZWM3NDhkOWY5Y2U2YTZjZDQzNzg1OGJhY2I4MTQ2MThhMjcyZmYzYTQxNWM2ZTA3ZjNkYjA5ODg3NzdmZGVjODQ1YTk3YmY3ZDEwMmRkMDMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTAyMDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMjAyMTQ1NjRkNTU0MDI1YWY1OTllMzI3MDc5YjI3MjBlZjAwZGYzN2NmYjdjMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDAwNDYwOThkYzVmMmI5OWUzYmMyZWQ2NjQyZDdmMGE2MWVmYWJjMTVjMzhjNzYzMzNiY2NjZWVlZTM2OWE0ZjRhNWJkZGE4ZWE1OTI2NDEyNGU0MjlmMDg2MzI2ODNkZGJhMTdiYmYyNjJkODJiNmJlZmEzYjRlMTQ4MDM3NmE4YzdmM2M3ZDdlMmE2Nzc5YmJmMTgyNjJhYTg1N2RlOGMyMGExMmI2YTJjZThlNGQ3ZjMxZGQxYjE5NTM5MmNmNjE4NWFmY2UzNGFmZTA1ODk2MDU3YjM2ZTliMTcxYjZjNjdlZDdjMjI4NmNiZmE4M2ZmOGExNjdjN2JjNzEwOWFlZTdkN2UxOTA5YmQzODRmYmZjNjE5MzhlZmNhNTFjODk5M2M3MWRiMzE3NzMwZjE2ZTdlNzc2ODY3YWU0ZmRjNTYyZDZmMTVkZTU4NWU3Yjk0ZWY0OTZhMzY3NjM2N2EyY2JhYWI3YjYzNjY0OGIwMDc2YmFkNWNkZjFlMDk3NDBlYzZhNDUxYmZmNTM0ZWZhMjE1MDlmM2JhNzdiODEwMWI5MWVhN2U1NWRkYmZlMTQwMTUxNzA2N2Q3YjAxYTJhMDg3OWYwODg1Yzg5NGE4N2NmYjY4YzRkN2VlODkwNjA0ODgxYWViOTdjMjJkMWYzMzdlZjkyM2UwMzVhNjQwMDMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMzAyMTQ2MjQ3NzI5ODc1OWU4ZTA0NzE4YWU1NjMxNTVmMzUyM2NmYjg0Y2RiMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDA2ZDJjYmIzN2ZkMTI5NTdlNWE3NDgwY2UwNDM1ZThlZjYwNzdkZWYwOGZmMjcwODQ0ZGUyNTE2YTQ3NDJmMjExZDhjNzQ2OTBiYzA5NDhlMDhhMjk2YWJiYTkyODVmNmJiMzA1Yjk1YjdmOTQwOGNlNDRlODM4ODBjNzE5NDQ0NjcyZWM5OTc0NmJhNzhjYzRiZGU0NzUzMTlkMDFiZGU3N2M0OWQ1OGQxNmQzYjJlOTFjMmU2MWU4MzAzY2EzZDdlZGEzNzk3ZmQ4YjM1Y2E3MmJiMTRiMTVhMjRiNTZiYjcwZGMxMzQ4NDU2NTgwODExMGZmNWRiNThjNTZmN2EwNDM1NjA3ZTNjMzUyZmJmNGY1NTEwNmYyOTgwZmQzY2Q0MjM5N2RiZjcxMzdlZTdmMWUzMmNkODBhM2I3YWIxMmI0NmMxNjkyMjAyNzhkNzcxN2I3OGEzYzQ1ZDYzOTVhMTMwYThiNTg4NDFjYmMyOTBlNGY4MTdkZTNhNGZlMTZlY2QwNzdjYTMzYTBhYTI1ZTIzNWNjN2Y2NjU1YTgwYmE4YWVlYzg3OTA1YmIyYTc1NDU5YjdiY2M1YTEzM2YyOTkzNDkzYjQxZmZjZjYzY2Q3YTM5MWUzZTZmNzgwOTRjYTQ0MmM4MDE0NDQwM2NiMGE1ZjAwYmZjNjFhZTg4MCIKIAogUEtDUzcgUGFyc2UgRmFpbHVyZSBJbnZhbGlkIEFTTjE6IENoYW5nZSBsZW5ndGggZnJvbSAzIHRvIDQgIzY1OS4wCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NgogcGtjczdfYXNuMV9mYWlsOiIzMDgyMDQ5ZDA2MDkyYTg2NDg4NmY3MGQwMTA3MDJhMDgyMDQ4ZTMwODIwNDhhMDIwMTAxMzEwZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGIwNjA5MmE4NjQ4ODZmNzBkMDEwNzAxMzE4MjA0NjUzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwNWJlY2Q4NzE5NWMxZGVmZjkwYzI0YzkxMjY5YjU1YjNmMDY5YmMyMjVjMzI2YzMxNGMxYTUxNzg2ZmZlMTRjODMwYmU0ZTRiYzczY2JhMzZjOTc2NzdiNDQxNjgyNzliZTkxZTdjZGY3YzE5Mzg2YWUyMTg2MjcxOWQxM2EzYTBmZmYwODAzZDQ2MDk2MmYyY2RhODM3MTQ4NDg3MzI1MmMzZDcwNTRkYjgxNDNlMmIwODFhMzgxNmVkMDgwNGNhNTA5OWFlNWZlY2U4M2Q1YzJjMzc4M2IxOTg4YjRiNDZkYzk0ZTU1NTg3YTEwN2VhMTU0NmJmMjJkMjhhMDk3ZjY1MmE0MDY2ZGMyOTY1MjY5MDY5YWYyZjUxNzZiYjhjZTljYTZkMTFmOTY3NTdmMDMyMDRmNzU2NzAzNTg3ZDAwYWQ0MjQ3OTZjOTJmYzdhZWI2ZjQ5NDQzMTk5OWVkYTMwOTkwZTRmNTc3MzYzMmVkMjU4ZmUwMjc2NjczNTk5ZGE2ZmNlMzVjZGFkNzcyNmEwYmIwMjRjYWQ5OTZiODhlMGNiOTg4NTRjZWI1YzBiNmVjNzQ4ZDlmOWNlNmE2Y2Q0Mzc4NThiYWNiODE0NjE4YTI3MmZmM2E0MTVjNmUwN2YzZGIwOTg4Nzc3ZmRlYzg0NWE5N2JmN2QxMDJkZDAzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjA0NTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzIwMjE0NTY0ZDU1NDAyNWFmNTk5ZTMyNzA3OWIyNzIwZWYwMGRmMzdjZmI3YzMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwMDQ2MDk4ZGM1ZjJiOTllM2JjMmVkNjY0MmQ3ZjBhNjFlZmFiYzE1YzM4Yzc2MzMzYmNjY2VlZWUzNjlhNGY0YTViZGRhOGVhNTkyNjQxMjRlNDI5ZjA4NjMyNjgzZGRiYTE3YmJmMjYyZDgyYjZiZWZhM2I0ZTE0ODAzNzZhOGM3ZjNjN2Q3ZTJhNjc3OWJiZjE4MjYyYWE4NTdkZThjMjBhMTJiNmEyY2U4ZTRkN2YzMWRkMWIxOTUzOTJjZjYxODVhZmNlMzRhZmUwNTg5NjA1N2IzNmU5YjE3MWI2YzY3ZWQ3YzIyODZjYmZhODNmZjhhMTY3YzdiYzcxMDlhZWU3ZDdlMTkwOWJkMzg0ZmJmYzYxOTM4ZWZjYTUxYzg5OTNjNzFkYjMxNzczMGYxNmU3ZTc3Njg2N2FlNGZkYzU2MmQ2ZjE1ZGU1ODVlN2I5NGVmNDk2YTM2NzYzNjdhMmNiYWFiN2I2MzY2NDhiMDA3NmJhZDVjZGYxZTA5NzQwZWM2YTQ1MWJmZjUzNGVmYTIxNTA5ZjNiYTc3YjgxMDFiOTFlYTdlNTVkZGJmZTE0MDE1MTcwNjdkN2IwMWEyYTA4NzlmMDg4NWM4OTRhODdjZmI2OGM0ZDdlZTg5MDYwNDg4MWFlYjk3YzIyZDFmMzM3ZWY5MjNlMDM1YTY0MDAzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzMwMjE0NjI0NzcyOTg3NTllOGUwNDcxOGFlNTYzMTU1ZjM1MjNjZmI4NGNkYjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwNmQyY2JiMzdmZDEyOTU3ZTVhNzQ4MGNlMDQzNWU4ZWY2MDc3ZGVmMDhmZjI3MDg0NGRlMjUxNmE0NzQyZjIxMWQ4Yzc0NjkwYmMwOTQ4ZTA4YTI5NmFiYmE5Mjg1ZjZiYjMwNWI5NWI3Zjk0MDhjZTQ0ZTgzODgwYzcxOTQ0NDY3MmVjOTk3NDZiYTc4Y2M0YmRlNDc1MzE5ZDAxYmRlNzdjNDlkNThkMTZkM2IyZTkxYzJlNjFlODMwM2NhM2Q3ZWRhMzc5N2ZkOGIzNWNhNzJiYjE0YjE1YTI0YjU2YmI3MGRjMTM0ODQ1NjU4MDgxMTBmZjVkYjU4YzU2ZjdhMDQzNTYwN2UzYzM1MmZiZjRmNTUxMDZmMjk4MGZkM2NkNDIzOTdkYmY3MTM3ZWU3ZjFlMzJjZDgwYTNiN2FiMTJiNDZjMTY5MjIwMjc4ZDc3MTdiNzhhM2M0NWQ2Mzk1YTEzMGE4YjU4ODQxY2JjMjkwZTRmODE3ZGUzYTRmZTE2ZWNkMDc3Y2EzM2EwYWEyNWUyMzVjYzdmNjY1NWE4MGJhOGFlZWM4NzkwNWJiMmE3NTQ1OWI3YmNjNWExMzNmMjk5MzQ5M2I0MWZmY2Y2M2NkN2EzOTFlM2U2Zjc4MDk0Y2E0NDJjODAxNDQ0MDNjYjBhNWYwMGJmYzYxYWU4ODAiCiAKIFBLQ1M3IFBhcnNlIEZhaWx1cmUgSW52YWxpZCBBU04xOiBDaGFuZ2UgbGVuZ3RoIGZyb20gMyB0byAyICM2NjAuMAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHBrY3M3X2FzbjFfZmFpbDoiMzA4MjA0OWQwNjA5MmE4NjQ4ODZmNzBkMDEwNzAyYTA4MjA0OGUzMDgyMDQ4YTAyMDEwMTMxMGYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBiMDYwOTJhODY0ODg2ZjcwZDAxMDcwMTMxODIwNDY1MzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDViZWNkODcxOTVjMWRlZmY5MGMyNGM5MTI2OWI1NWIzZjA2OWJjMjI1YzMyNmMzMTRjMWE1MTc4NmZmZTE0YzgzMGJlNGU0YmM3M2NiYTM2Yzk3Njc3YjQ0MTY4Mjc5YmU5MWU3Y2RmN2MxOTM4NmFlMjE4NjI3MTlkMTNhM2EwZmZmMDgwM2Q0NjA5NjJmMmNkYTgzNzE0ODQ4NzMyNTJjM2Q3MDU0ZGI4MTQzZTJiMDgxYTM4MTZlZDA4MDRjYTUwOTlhZTVmZWNlODNkNWMyYzM3ODNiMTk4OGI0YjQ2ZGM5NGU1NTU4N2ExMDdlYTE1NDZiZjIyZDI4YTA5N2Y2NTJhNDA2NmRjMjk2NTI2OTA2OWFmMmY1MTc2YmI4Y2U5Y2E2ZDExZjk2NzU3ZjAzMjA0Zjc1NjcwMzU4N2QwMGFkNDI0Nzk2YzkyZmM3YWViNmY0OTQ0MzE5OTllZGEzMDk5MGU0ZjU3NzM2MzJlZDI1OGZlMDI3NjY3MzU5OWRhNmZjZTM1Y2RhZDc3MjZhMGJiMDI0Y2FkOTk2Yjg4ZTBjYjk4ODU0Y2ViNWMwYjZlYzc0OGQ5ZjljZTZhNmNkNDM3ODU4YmFjYjgxNDYxOGEyNzJmZjNhNDE1YzZlMDdmM2RiMDk4ODc3N2ZkZWM4NDVhOTdiZjdkMTAyZGQwMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMjU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMyMDIxNDU2NGQ1NTQwMjVhZjU5OWUzMjcwNzliMjcyMGVmMDBkZjM3Y2ZiN2MzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDA0NjA5OGRjNWYyYjk5ZTNiYzJlZDY2NDJkN2YwYTYxZWZhYmMxNWMzOGM3NjMzM2JjY2NlZWVlMzY5YTRmNGE1YmRkYThlYTU5MjY0MTI0ZTQyOWYwODYzMjY4M2RkYmExN2JiZjI2MmQ4MmI2YmVmYTNiNGUxNDgwMzc2YThjN2YzYzdkN2UyYTY3NzliYmYxODI2MmFhODU3ZGU4YzIwYTEyYjZhMmNlOGU0ZDdmMzFkZDFiMTk1MzkyY2Y2MTg1YWZjZTM0YWZlMDU4OTYwNTdiMzZlOWIxNzFiNmM2N2VkN2MyMjg2Y2JmYTgzZmY4YTE2N2M3YmM3MTA5YWVlN2Q3ZTE5MDliZDM4NGZiZmM2MTkzOGVmY2E1MWM4OTkzYzcxZGIzMTc3MzBmMTZlN2U3NzY4NjdhZTRmZGM1NjJkNmYxNWRlNTg1ZTdiOTRlZjQ5NmEzNjc2MzY3YTJjYmFhYjdiNjM2NjQ4YjAwNzZiYWQ1Y2RmMWUwOTc0MGVjNmE0NTFiZmY1MzRlZmEyMTUwOWYzYmE3N2I4MTAxYjkxZWE3ZTU1ZGRiZmUxNDAxNTE3MDY3ZDdiMDFhMmEwODc5ZjA4ODVjODk0YTg3Y2ZiNjhjNGQ3ZWU4OTA2MDQ4ODFhZWI5N2MyMmQxZjMzN2VmOTIzZTAzNWE2NDAwMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMzMDIxNDYyNDc3Mjk4NzU5ZThlMDQ3MThhZTU2MzE1NWYzNTIzY2ZiODRjZGIzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDZkMmNiYjM3ZmQxMjk1N2U1YTc0ODBjZTA0MzVlOGVmNjA3N2RlZjA4ZmYyNzA4NDRkZTI1MTZhNDc0MmYyMTFkOGM3NDY5MGJjMDk0OGUwOGEyOTZhYmJhOTI4NWY2YmIzMDViOTViN2Y5NDA4Y2U0NGU4Mzg4MGM3MTk0NDQ2NzJlYzk5NzQ2YmE3OGNjNGJkZTQ3NTMxOWQwMWJkZTc3YzQ5ZDU4ZDE2ZDNiMmU5MWMyZTYxZTgzMDNjYTNkN2VkYTM3OTdmZDhiMzVjYTcyYmIxNGIxNWEyNGI1NmJiNzBkYzEzNDg0NTY1ODA4MTEwZmY1ZGI1OGM1NmY3YTA0MzU2MDdlM2MzNTJmYmY0ZjU1MTA2ZjI5ODBmZDNjZDQyMzk3ZGJmNzEzN2VlN2YxZTMyY2Q4MGEzYjdhYjEyYjQ2YzE2OTIyMDI3OGQ3NzE3Yjc4YTNjNDVkNjM5NWExMzBhOGI1ODg0MWNiYzI5MGU0ZjgxN2RlM2E0ZmUxNmVjZDA3N2NhMzNhMGFhMjVlMjM1Y2M3ZjY2NTVhODBiYThhZWVjODc5MDViYjJhNzU0NTliN2JjYzVhMTMzZjI5OTM0OTNiNDFmZmNmNjNjZDdhMzkxZTNlNmY3ODA5NGNhNDQyYzgwMTQ0NDAzY2IwYTVmMDBiZmM2MWFlODgwIgogCiBQS0NTNyBQYXJzZSBGYWlsdXJlIEludmFsaWQgQVNOMTogQ2hhbmdlIHRhZyAxMyB0byAwMiAjNjYxLjAKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBwa2NzN19hc24xX2ZhaWw6IjMwODIwNDlkMDYwOTJhODY0ODg2ZjcwZDAxMDcwMmEwODIwNDhlMzA4MjA0OGEwMjAxMDEzMTBmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwYjA2MDkyYTg2NDg4NmY3MGQwMTA3MDEzMTgyMDQ2NTMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTAyMTQ3YmRlZGRkMjQ0NGNkMWNkZmU1YzQxYTgxMDJjODliN2RmMmU2Y2JmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDA1YmVjZDg3MTk1YzFkZWZmOTBjMjRjOTEyNjliNTViM2YwNjliYzIyNWMzMjZjMzE0YzFhNTE3ODZmZmUxNGM4MzBiZTRlNGJjNzNjYmEzNmM5NzY3N2I0NDE2ODI3OWJlOTFlN2NkZjdjMTkzODZhZTIxODYyNzE5ZDEzYTNhMGZmZjA4MDNkNDYwOTYyZjJjZGE4MzcxNDg0ODczMjUyYzNkNzA1NGRiODE0M2UyYjA4MWEzODE2ZWQwODA0Y2E1MDk5YWU1ZmVjZTgzZDVjMmMzNzgzYjE5ODhiNGI0NmRjOTRlNTU1ODdhMTA3ZWExNTQ2YmYyMmQyOGEwOTdmNjUyYTQwNjZkYzI5NjUyNjkwNjlhZjJmNTE3NmJiOGNlOWNhNmQxMWY5Njc1N2YwMzIwNGY3NTY3MDM1ODdkMDBhZDQyNDc5NmM5MmZjN2FlYjZmNDk0NDMxOTk5ZWRhMzA5OTBlNGY1NzczNjMyZWQyNThmZTAyNzY2NzM1OTlkYTZmY2UzNWNkYWQ3NzI2YTBiYjAyNGNhZDk5NmI4OGUwY2I5ODg1NGNlYjVjMGI2ZWM3NDhkOWY5Y2U2YTZjZDQzNzg1OGJhY2I4MTQ2MThhMjcyZmYzYTQxNWM2ZTA3ZjNkYjA5ODg3NzdmZGVjODQ1YTk3YmY3ZDEwMmRkMDMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYwMjAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMjAyMTQ1NjRkNTU0MDI1YWY1OTllMzI3MDc5YjI3MjBlZjAwZGYzN2NmYjdjMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDAwNDYwOThkYzVmMmI5OWUzYmMyZWQ2NjQyZDdmMGE2MWVmYWJjMTVjMzhjNzYzMzNiY2NjZWVlZTM2OWE0ZjRhNWJkZGE4ZWE1OTI2NDEyNGU0MjlmMDg2MzI2ODNkZGJhMTdiYmYyNjJkODJiNmJlZmEzYjRlMTQ4MDM3NmE4YzdmM2M3ZDdlMmE2Nzc5YmJmMTgyNjJhYTg1N2RlOGMyMGExMmI2YTJjZThlNGQ3ZjMxZGQxYjE5NTM5MmNmNjE4NWFmY2UzNGFmZTA1ODk2MDU3YjM2ZTliMTcxYjZjNjdlZDdjMjI4NmNiZmE4M2ZmOGExNjdjN2JjNzEwOWFlZTdkN2UxOTA5YmQzODRmYmZjNjE5MzhlZmNhNTFjODk5M2M3MWRiMzE3NzMwZjE2ZTdlNzc2ODY3YWU0ZmRjNTYyZDZmMTVkZTU4NWU3Yjk0ZWY0OTZhMzY3NjM2N2EyY2JhYWI3YjYzNjY0OGIwMDc2YmFkNWNkZjFlMDk3NDBlYzZhNDUxYmZmNTM0ZWZhMjE1MDlmM2JhNzdiODEwMWI5MWVhN2U1NWRkYmZlMTQwMTUxNzA2N2Q3YjAxYTJhMDg3OWYwODg1Yzg5NGE4N2NmYjY4YzRkN2VlODkwNjA0ODgxYWViOTdjMjJkMWYzMzdlZjkyM2UwMzVhNjQwMDMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMzAyMTQ2MjQ3NzI5ODc1OWU4ZTA0NzE4YWU1NjMxNTVmMzUyM2NmYjg0Y2RiMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDA2ZDJjYmIzN2ZkMTI5NTdlNWE3NDgwY2UwNDM1ZThlZjYwNzdkZWYwOGZmMjcwODQ0ZGUyNTE2YTQ3NDJmMjExZDhjNzQ2OTBiYzA5NDhlMDhhMjk2YWJiYTkyODVmNmJiMzA1Yjk1YjdmOTQwOGNlNDRlODM4ODBjNzE5NDQ0NjcyZWM5OTc0NmJhNzhjYzRiZGU0NzUzMTlkMDFiZGU3N2M0OWQ1OGQxNmQzYjJlOTFjMmU2MWU4MzAzY2EzZDdlZGEzNzk3ZmQ4YjM1Y2E3MmJiMTRiMTVhMjRiNTZiYjcwZGMxMzQ4NDU2NTgwODExMGZmNWRiNThjNTZmN2EwNDM1NjA3ZTNjMzUyZmJmNGY1NTEwNmYyOTgwZmQzY2Q0MjM5N2RiZjcxMzdlZTdmMWUzMmNkODBhM2I3YWIxMmI0NmMxNjkyMjAyNzhkNzcxN2I3OGEzYzQ1ZDYzOTVhMTMwYThiNTg4NDFjYmMyOTBlNGY4MTdkZTNhNGZlMTZlY2QwNzdjYTMzYTBhYTI1ZTIzNWNjN2Y2NjU1YTgwYmE4YWVlYzg3OTA1YmIyYTc1NDU5YjdiY2M1YTEzM2YyOTkzNDkzYjQxZmZjZjYzY2Q3YTM5MWUzZTZmNzgwOTRjYTQ0MmM4MDE0NDQwM2NiMGE1ZjAwYmZjNjFhZTg4MCIKIAogUEtDUzcgUGFyc2UgRmFpbHVyZSBJbnZhbGlkIEFTTjE6IENoYW5nZSBsZW5ndGggZnJvbSAyIHRvIDMgIzY2Mi4wCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NgogcGtjczdfYXNuMV9mYWlsOiIzMDgyMDQ5ZDA2MDkyYTg2NDg4NmY3MGQwMTA3MDJhMDgyMDQ4ZTMwODIwNDhhMDIwMTAxMzEwZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGIwNjA5MmE4NjQ4ODZmNzBkMDEwNzAxMzE4MjA0NjUzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwNWJlY2Q4NzE5NWMxZGVmZjkwYzI0YzkxMjY5YjU1YjNmMDY5YmMyMjVjMzI2YzMxNGMxYTUxNzg2ZmZlMTRjODMwYmU0ZTRiYzczY2JhMzZjOTc2NzdiNDQxNjgyNzliZTkxZTdjZGY3YzE5Mzg2YWUyMTg2MjcxOWQxM2EzYTBmZmYwODAzZDQ2MDk2MmYyY2RhODM3MTQ4NDg3MzI1MmMzZDcwNTRkYjgxNDNlMmIwODFhMzgxNmVkMDgwNGNhNTA5OWFlNWZlY2U4M2Q1YzJjMzc4M2IxOTg4YjRiNDZkYzk0ZTU1NTg3YTEwN2VhMTU0NmJmMjJkMjhhMDk3ZjY1MmE0MDY2ZGMyOTY1MjY5MDY5YWYyZjUxNzZiYjhjZTljYTZkMTFmOTY3NTdmMDMyMDRmNzU2NzAzNTg3ZDAwYWQ0MjQ3OTZjOTJmYzdhZWI2ZjQ5NDQzMTk5OWVkYTMwOTkwZTRmNTc3MzYzMmVkMjU4ZmUwMjc2NjczNTk5ZGE2ZmNlMzVjZGFkNzcyNmEwYmIwMjRjYWQ5OTZiODhlMGNiOTg4NTRjZWI1YzBiNmVjNzQ4ZDlmOWNlNmE2Y2Q0Mzc4NThiYWNiODE0NjE4YTI3MmZmM2E0MTVjNmUwN2YzZGIwOTg4Nzc3ZmRlYzg0NWE5N2JmN2QxMDJkZDAzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMzRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzIwMjE0NTY0ZDU1NDAyNWFmNTk5ZTMyNzA3OWIyNzIwZWYwMGRmMzdjZmI3YzMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwMDQ2MDk4ZGM1ZjJiOTllM2JjMmVkNjY0MmQ3ZjBhNjFlZmFiYzE1YzM4Yzc2MzMzYmNjY2VlZWUzNjlhNGY0YTViZGRhOGVhNTkyNjQxMjRlNDI5ZjA4NjMyNjgzZGRiYTE3YmJmMjYyZDgyYjZiZWZhM2I0ZTE0ODAzNzZhOGM3ZjNjN2Q3ZTJhNjc3OWJiZjE4MjYyYWE4NTdkZThjMjBhMTJiNmEyY2U4ZTRkN2YzMWRkMWIxOTUzOTJjZjYxODVhZmNlMzRhZmUwNTg5NjA1N2IzNmU5YjE3MWI2YzY3ZWQ3YzIyODZjYmZhODNmZjhhMTY3YzdiYzcxMDlhZWU3ZDdlMTkwOWJkMzg0ZmJmYzYxOTM4ZWZjYTUxYzg5OTNjNzFkYjMxNzczMGYxNmU3ZTc3Njg2N2FlNGZkYzU2MmQ2ZjE1ZGU1ODVlN2I5NGVmNDk2YTM2NzYzNjdhMmNiYWFiN2I2MzY2NDhiMDA3NmJhZDVjZGYxZTA5NzQwZWM2YTQ1MWJmZjUzNGVmYTIxNTA5ZjNiYTc3YjgxMDFiOTFlYTdlNTVkZGJmZTE0MDE1MTcwNjdkN2IwMWEyYTA4NzlmMDg4NWM4OTRhODdjZmI2OGM0ZDdlZTg5MDYwNDg4MWFlYjk3YzIyZDFmMzM3ZWY5MjNlMDM1YTY0MDAzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzMwMjE0NjI0NzcyOTg3NTllOGUwNDcxOGFlNTYzMTU1ZjM1MjNjZmI4NGNkYjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwNmQyY2JiMzdmZDEyOTU3ZTVhNzQ4MGNlMDQzNWU4ZWY2MDc3ZGVmMDhmZjI3MDg0NGRlMjUxNmE0NzQyZjIxMWQ4Yzc0NjkwYmMwOTQ4ZTA4YTI5NmFiYmE5Mjg1ZjZiYjMwNWI5NWI3Zjk0MDhjZTQ0ZTgzODgwYzcxOTQ0NDY3MmVjOTk3NDZiYTc4Y2M0YmRlNDc1MzE5ZDAxYmRlNzdjNDlkNThkMTZkM2IyZTkxYzJlNjFlODMwM2NhM2Q3ZWRhMzc5N2ZkOGIzNWNhNzJiYjE0YjE1YTI0YjU2YmI3MGRjMTM0ODQ1NjU4MDgxMTBmZjVkYjU4YzU2ZjdhMDQzNTYwN2UzYzM1MmZiZjRmNTUxMDZmMjk4MGZkM2NkNDIzOTdkYmY3MTM3ZWU3ZjFlMzJjZDgwYTNiN2FiMTJiNDZjMTY5MjIwMjc4ZDc3MTdiNzhhM2M0NWQ2Mzk1YTEzMGE4YjU4ODQxY2JjMjkwZTRmODE3ZGUzYTRmZTE2ZWNkMDc3Y2EzM2EwYWEyNWUyMzVjYzdmNjY1NWE4MGJhOGFlZWM4NzkwNWJiMmE3NTQ1OWI3YmNjNWExMzNmMjk5MzQ5M2I0MWZmY2Y2M2NkN2EzOTFlM2U2Zjc4MDk0Y2E0NDJjODAxNDQ0MDNjYjBhNWYwMGJmYzYxYWU4ODAiCiAKIFBLQ1M3IFBhcnNlIEZhaWx1cmUgSW52YWxpZCBBU04xOiBDaGFuZ2UgbGVuZ3RoIGZyb20gMiB0byAxICM2NjMuMAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHBrY3M3X2FzbjFfZmFpbDoiMzA4MjA0OWQwNjA5MmE4NjQ4ODZmNzBkMDEwNzAyYTA4MjA0OGUzMDgyMDQ4YTAyMDEwMTMxMGYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBiMDYwOTJhODY0ODg2ZjcwZDAxMDcwMTMxODIwNDY1MzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDViZWNkODcxOTVjMWRlZmY5MGMyNGM5MTI2OWI1NWIzZjA2OWJjMjI1YzMyNmMzMTRjMWE1MTc4NmZmZTE0YzgzMGJlNGU0YmM3M2NiYTM2Yzk3Njc3YjQ0MTY4Mjc5YmU5MWU3Y2RmN2MxOTM4NmFlMjE4NjI3MTlkMTNhM2EwZmZmMDgwM2Q0NjA5NjJmMmNkYTgzNzE0ODQ4NzMyNTJjM2Q3MDU0ZGI4MTQzZTJiMDgxYTM4MTZlZDA4MDRjYTUwOTlhZTVmZWNlODNkNWMyYzM3ODNiMTk4OGI0YjQ2ZGM5NGU1NTU4N2ExMDdlYTE1NDZiZjIyZDI4YTA5N2Y2NTJhNDA2NmRjMjk2NTI2OTA2OWFmMmY1MTc2YmI4Y2U5Y2E2ZDExZjk2NzU3ZjAzMjA0Zjc1NjcwMzU4N2QwMGFkNDI0Nzk2YzkyZmM3YWViNmY0OTQ0MzE5OTllZGEzMDk5MGU0ZjU3NzM2MzJlZDI1OGZlMDI3NjY3MzU5OWRhNmZjZTM1Y2RhZDc3MjZhMGJiMDI0Y2FkOTk2Yjg4ZTBjYjk4ODU0Y2ViNWMwYjZlYzc0OGQ5ZjljZTZhNmNkNDM3ODU4YmFjYjgxNDYxOGEyNzJmZjNhNDE1YzZlMDdmM2RiMDk4ODc3N2ZkZWM4NDVhOTdiZjdkMTAyZGQwMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDE0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMyMDIxNDU2NGQ1NTQwMjVhZjU5OWUzMjcwNzliMjcyMGVmMDBkZjM3Y2ZiN2MzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDA0NjA5OGRjNWYyYjk5ZTNiYzJlZDY2NDJkN2YwYTYxZWZhYmMxNWMzOGM3NjMzM2JjY2NlZWVlMzY5YTRmNGE1YmRkYThlYTU5MjY0MTI0ZTQyOWYwODYzMjY4M2RkYmExN2JiZjI2MmQ4MmI2YmVmYTNiNGUxNDgwMzc2YThjN2YzYzdkN2UyYTY3NzliYmYxODI2MmFhODU3ZGU4YzIwYTEyYjZhMmNlOGU0ZDdmMzFkZDFiMTk1MzkyY2Y2MTg1YWZjZTM0YWZlMDU4OTYwNTdiMzZlOWIxNzFiNmM2N2VkN2MyMjg2Y2JmYTgzZmY4YTE2N2M3YmM3MTA5YWVlN2Q3ZTE5MDliZDM4NGZiZmM2MTkzOGVmY2E1MWM4OTkzYzcxZGIzMTc3MzBmMTZlN2U3NzY4NjdhZTRmZGM1NjJkNmYxNWRlNTg1ZTdiOTRlZjQ5NmEzNjc2MzY3YTJjYmFhYjdiNjM2NjQ4YjAwNzZiYWQ1Y2RmMWUwOTc0MGVjNmE0NTFiZmY1MzRlZmEyMTUwOWYzYmE3N2I4MTAxYjkxZWE3ZTU1ZGRiZmUxNDAxNTE3MDY3ZDdiMDFhMmEwODc5ZjA4ODVjODk0YTg3Y2ZiNjhjNGQ3ZWU4OTA2MDQ4ODFhZWI5N2MyMmQxZjMzN2VmOTIzZTAzNWE2NDAwMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMzMDIxNDYyNDc3Mjk4NzU5ZThlMDQ3MThhZTU2MzE1NWYzNTIzY2ZiODRjZGIzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDZkMmNiYjM3ZmQxMjk1N2U1YTc0ODBjZTA0MzVlOGVmNjA3N2RlZjA4ZmYyNzA4NDRkZTI1MTZhNDc0MmYyMTFkOGM3NDY5MGJjMDk0OGUwOGEyOTZhYmJhOTI4NWY2YmIzMDViOTViN2Y5NDA4Y2U0NGU4Mzg4MGM3MTk0NDQ2NzJlYzk5NzQ2YmE3OGNjNGJkZTQ3NTMxOWQwMWJkZTc3YzQ5ZDU4ZDE2ZDNiMmU5MWMyZTYxZTgzMDNjYTNkN2VkYTM3OTdmZDhiMzVjYTcyYmIxNGIxNWEyNGI1NmJiNzBkYzEzNDg0NTY1ODA4MTEwZmY1ZGI1OGM1NmY3YTA0MzU2MDdlM2MzNTJmYmY0ZjU1MTA2ZjI5ODBmZDNjZDQyMzk3ZGJmNzEzN2VlN2YxZTMyY2Q4MGEzYjdhYjEyYjQ2YzE2OTIyMDI3OGQ3NzE3Yjc4YTNjNDVkNjM5NWExMzBhOGI1ODg0MWNiYzI5MGU0ZjgxN2RlM2E0ZmUxNmVjZDA3N2NhMzNhMGFhMjVlMjM1Y2M3ZjY2NTVhODBiYThhZWVjODc5MDViYjJhNzU0NTliN2JjYzVhMTMzZjI5OTM0OTNiNDFmZmNmNjNjZDdhMzkxZTNlNmY3ODA5NGNhNDQyYzgwMTQ0NDAzY2IwYTVmMDBiZmM2MWFlODgwIgogCiBQS0NTNyBQYXJzZSBGYWlsdXJlIEludmFsaWQgQVNOMTogQ2hhbmdlIHRhZyAzMSB0byAwMiAjNjY0LjAKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBwa2NzN19hc24xX2ZhaWw6IjMwODIwNDlkMDYwOTJhODY0ODg2ZjcwZDAxMDcwMmEwODIwNDhlMzA4MjA0OGEwMjAxMDEzMTBmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwYjA2MDkyYTg2NDg4NmY3MGQwMTA3MDEzMTgyMDQ2NTMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTAyMTQ3YmRlZGRkMjQ0NGNkMWNkZmU1YzQxYTgxMDJjODliN2RmMmU2Y2JmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDA1YmVjZDg3MTk1YzFkZWZmOTBjMjRjOTEyNjliNTViM2YwNjliYzIyNWMzMjZjMzE0YzFhNTE3ODZmZmUxNGM4MzBiZTRlNGJjNzNjYmEzNmM5NzY3N2I0NDE2ODI3OWJlOTFlN2NkZjdjMTkzODZhZTIxODYyNzE5ZDEzYTNhMGZmZjA4MDNkNDYwOTYyZjJjZGE4MzcxNDg0ODczMjUyYzNkNzA1NGRiODE0M2UyYjA4MWEzODE2ZWQwODA0Y2E1MDk5YWU1ZmVjZTgzZDVjMmMzNzgzYjE5ODhiNGI0NmRjOTRlNTU1ODdhMTA3ZWExNTQ2YmYyMmQyOGEwOTdmNjUyYTQwNjZkYzI5NjUyNjkwNjlhZjJmNTE3NmJiOGNlOWNhNmQxMWY5Njc1N2YwMzIwNGY3NTY3MDM1ODdkMDBhZDQyNDc5NmM5MmZjN2FlYjZmNDk0NDMxOTk5ZWRhMzA5OTBlNGY1NzczNjMyZWQyNThmZTAyNzY2NzM1OTlkYTZmY2UzNWNkYWQ3NzI2YTBiYjAyNGNhZDk5NmI4OGUwY2I5ODg1NGNlYjVjMGI2ZWM3NDhkOWY5Y2U2YTZjZDQzNzg1OGJhY2I4MTQ2MThhMjcyZmYzYTQxNWM2ZTA3ZjNkYjA5ODg3NzdmZGVjODQ1YTk3YmY3ZDEwMmRkMDMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzAyMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMjAyMTQ1NjRkNTU0MDI1YWY1OTllMzI3MDc5YjI3MjBlZjAwZGYzN2NmYjdjMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDAwNDYwOThkYzVmMmI5OWUzYmMyZWQ2NjQyZDdmMGE2MWVmYWJjMTVjMzhjNzYzMzNiY2NjZWVlZTM2OWE0ZjRhNWJkZGE4ZWE1OTI2NDEyNGU0MjlmMDg2MzI2ODNkZGJhMTdiYmYyNjJkODJiNmJlZmEzYjRlMTQ4MDM3NmE4YzdmM2M3ZDdlMmE2Nzc5YmJmMTgyNjJhYTg1N2RlOGMyMGExMmI2YTJjZThlNGQ3ZjMxZGQxYjE5NTM5MmNmNjE4NWFmY2UzNGFmZTA1ODk2MDU3YjM2ZTliMTcxYjZjNjdlZDdjMjI4NmNiZmE4M2ZmOGExNjdjN2JjNzEwOWFlZTdkN2UxOTA5YmQzODRmYmZjNjE5MzhlZmNhNTFjODk5M2M3MWRiMzE3NzMwZjE2ZTdlNzc2ODY3YWU0ZmRjNTYyZDZmMTVkZTU4NWU3Yjk0ZWY0OTZhMzY3NjM2N2EyY2JhYWI3YjYzNjY0OGIwMDc2YmFkNWNkZjFlMDk3NDBlYzZhNDUxYmZmNTM0ZWZhMjE1MDlmM2JhNzdiODEwMWI5MWVhN2U1NWRkYmZlMTQwMTUxNzA2N2Q3YjAxYTJhMDg3OWYwODg1Yzg5NGE4N2NmYjY4YzRkN2VlODkwNjA0ODgxYWViOTdjMjJkMWYzMzdlZjkyM2UwMzVhNjQwMDMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMzAyMTQ2MjQ3NzI5ODc1OWU4ZTA0NzE4YWU1NjMxNTVmMzUyM2NmYjg0Y2RiMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDA2ZDJjYmIzN2ZkMTI5NTdlNWE3NDgwY2UwNDM1ZThlZjYwNzdkZWYwOGZmMjcwODQ0ZGUyNTE2YTQ3NDJmMjExZDhjNzQ2OTBiYzA5NDhlMDhhMjk2YWJiYTkyODVmNmJiMzA1Yjk1YjdmOTQwOGNlNDRlODM4ODBjNzE5NDQ0NjcyZWM5OTc0NmJhNzhjYzRiZGU0NzUzMTlkMDFiZGU3N2M0OWQ1OGQxNmQzYjJlOTFjMmU2MWU4MzAzY2EzZDdlZGEzNzk3ZmQ4YjM1Y2E3MmJiMTRiMTVhMjRiNTZiYjcwZGMxMzQ4NDU2NTgwODExMGZmNWRiNThjNTZmN2EwNDM1NjA3ZTNjMzUyZmJmNGY1NTEwNmYyOTgwZmQzY2Q0MjM5N2RiZjcxMzdlZTdmMWUzMmNkODBhM2I3YWIxMmI0NmMxNjkyMjAyNzhkNzcxN2I3OGEzYzQ1ZDYzOTVhMTMwYThiNTg4NDFjYmMyOTBlNGY4MTdkZTNhNGZlMTZlY2QwNzdjYTMzYTBhYTI1ZTIzNWNjN2Y2NjU1YTgwYmE4YWVlYzg3OTA1YmIyYTc1NDU5YjdiY2M1YTEzM2YyOTkzNDkzYjQxZmZjZjYzY2Q3YTM5MWUzZTZmNzgwOTRjYTQ0MmM4MDE0NDQwM2NiMGE1ZjAwYmZjNjFhZTg4MCIKIAogUEtDUzcgUGFyc2UgRmFpbHVyZSBJbnZhbGlkIEFTTjE6IENoYW5nZSBsZW5ndGggZnJvbSAxNCB0byAxNSAjNjY1LjAKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBwa2NzN19hc24xX2ZhaWw6IjMwODIwNDlkMDYwOTJhODY0ODg2ZjcwZDAxMDcwMmEwODIwNDhlMzA4MjA0OGEwMjAxMDEzMTBmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwYjA2MDkyYTg2NDg4NmY3MGQwMTA3MDEzMTgyMDQ2NTMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTAyMTQ3YmRlZGRkMjQ0NGNkMWNkZmU1YzQxYTgxMDJjODliN2RmMmU2Y2JmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDA1YmVjZDg3MTk1YzFkZWZmOTBjMjRjOTEyNjliNTViM2YwNjliYzIyNWMzMjZjMzE0YzFhNTE3ODZmZmUxNGM4MzBiZTRlNGJjNzNjYmEzNmM5NzY3N2I0NDE2ODI3OWJlOTFlN2NkZjdjMTkzODZhZTIxODYyNzE5ZDEzYTNhMGZmZjA4MDNkNDYwOTYyZjJjZGE4MzcxNDg0ODczMjUyYzNkNzA1NGRiODE0M2UyYjA4MWEzODE2ZWQwODA0Y2E1MDk5YWU1ZmVjZTgzZDVjMmMzNzgzYjE5ODhiNGI0NmRjOTRlNTU1ODdhMTA3ZWExNTQ2YmYyMmQyOGEwOTdmNjUyYTQwNjZkYzI5NjUyNjkwNjlhZjJmNTE3NmJiOGNlOWNhNmQxMWY5Njc1N2YwMzIwNGY3NTY3MDM1ODdkMDBhZDQyNDc5NmM5MmZjN2FlYjZmNDk0NDMxOTk5ZWRhMzA5OTBlNGY1NzczNjMyZWQyNThmZTAyNzY2NzM1OTlkYTZmY2UzNWNkYWQ3NzI2YTBiYjAyNGNhZDk5NmI4OGUwY2I5ODg1NGNlYjVjMGI2ZWM3NDhkOWY5Y2U2YTZjZDQzNzg1OGJhY2I4MTQ2MThhMjcyZmYzYTQxNWM2ZTA3ZjNkYjA5ODg3NzdmZGVjODQ1YTk3YmY3ZDEwMmRkMDMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGYzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMjAyMTQ1NjRkNTU0MDI1YWY1OTllMzI3MDc5YjI3MjBlZjAwZGYzN2NmYjdjMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDAwNDYwOThkYzVmMmI5OWUzYmMyZWQ2NjQyZDdmMGE2MWVmYWJjMTVjMzhjNzYzMzNiY2NjZWVlZTM2OWE0ZjRhNWJkZGE4ZWE1OTI2NDEyNGU0MjlmMDg2MzI2ODNkZGJhMTdiYmYyNjJkODJiNmJlZmEzYjRlMTQ4MDM3NmE4YzdmM2M3ZDdlMmE2Nzc5YmJmMTgyNjJhYTg1N2RlOGMyMGExMmI2YTJjZThlNGQ3ZjMxZGQxYjE5NTM5MmNmNjE4NWFmY2UzNGFmZTA1ODk2MDU3YjM2ZTliMTcxYjZjNjdlZDdjMjI4NmNiZmE4M2ZmOGExNjdjN2JjNzEwOWFlZTdkN2UxOTA5YmQzODRmYmZjNjE5MzhlZmNhNTFjODk5M2M3MWRiMzE3NzMwZjE2ZTdlNzc2ODY3YWU0ZmRjNTYyZDZmMTVkZTU4NWU3Yjk0ZWY0OTZhMzY3NjM2N2EyY2JhYWI3YjYzNjY0OGIwMDc2YmFkNWNkZjFlMDk3NDBlYzZhNDUxYmZmNTM0ZWZhMjE1MDlmM2JhNzdiODEwMWI5MWVhN2U1NWRkYmZlMTQwMTUxNzA2N2Q3YjAxYTJhMDg3OWYwODg1Yzg5NGE4N2NmYjY4YzRkN2VlODkwNjA0ODgxYWViOTdjMjJkMWYzMzdlZjkyM2UwMzVhNjQwMDMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMzAyMTQ2MjQ3NzI5ODc1OWU4ZTA0NzE4YWU1NjMxNTVmMzUyM2NmYjg0Y2RiMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDA2ZDJjYmIzN2ZkMTI5NTdlNWE3NDgwY2UwNDM1ZThlZjYwNzdkZWYwOGZmMjcwODQ0ZGUyNTE2YTQ3NDJmMjExZDhjNzQ2OTBiYzA5NDhlMDhhMjk2YWJiYTkyODVmNmJiMzA1Yjk1YjdmOTQwOGNlNDRlODM4ODBjNzE5NDQ0NjcyZWM5OTc0NmJhNzhjYzRiZGU0NzUzMTlkMDFiZGU3N2M0OWQ1OGQxNmQzYjJlOTFjMmU2MWU4MzAzY2EzZDdlZGEzNzk3ZmQ4YjM1Y2E3MmJiMTRiMTVhMjRiNTZiYjcwZGMxMzQ4NDU2NTgwODExMGZmNWRiNThjNTZmN2EwNDM1NjA3ZTNjMzUyZmJmNGY1NTEwNmYyOTgwZmQzY2Q0MjM5N2RiZjcxMzdlZTdmMWUzMmNkODBhM2I3YWIxMmI0NmMxNjkyMjAyNzhkNzcxN2I3OGEzYzQ1ZDYzOTVhMTMwYThiNTg4NDFjYmMyOTBlNGY4MTdkZTNhNGZlMTZlY2QwNzdjYTMzYTBhYTI1ZTIzNWNjN2Y2NjU1YTgwYmE4YWVlYzg3OTA1YmIyYTc1NDU5YjdiY2M1YTEzM2YyOTkzNDkzYjQxZmZjZjYzY2Q3YTM5MWUzZTZmNzgwOTRjYTQ0MmM4MDE0NDQwM2NiMGE1ZjAwYmZjNjFhZTg4MCIKIAogUEtDUzcgUGFyc2UgRmFpbHVyZSBJbnZhbGlkIEFTTjE6IENoYW5nZSBjb250ZW50cyBvZiB0YWcgMzEgdG8gY29udGFpbiBvbmUgdW5hY2NvdW50ZWQgZXh0cmEgYnl0ZSAjNjY2LjAKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBwa2NzN19hc24xX2ZhaWw6IjMwODIwNDlkMDYwOTJhODY0ODg2ZjcwZDAxMDcwMmEwODIwNDhlMzA4MjA0OGEwMjAxMDEzMTBmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwYjA2MDkyYTg2NDg4NmY3MGQwMTA3MDEzMTgyMDQ2NTMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTAyMTQ3YmRlZGRkMjQ0NGNkMWNkZmU1YzQxYTgxMDJjODliN2RmMmU2Y2JmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDA1YmVjZDg3MTk1YzFkZWZmOTBjMjRjOTEyNjliNTViM2YwNjliYzIyNWMzMjZjMzE0YzFhNTE3ODZmZmUxNGM4MzBiZTRlNGJjNzNjYmEzNmM5NzY3N2I0NDE2ODI3OWJlOTFlN2NkZjdjMTkzODZhZTIxODYyNzE5ZDEzYTNhMGZmZjA4MDNkNDYwOTYyZjJjZGE4MzcxNDg0ODczMjUyYzNkNzA1NGRiODE0M2UyYjA4MWEzODE2ZWQwODA0Y2E1MDk5YWU1ZmVjZTgzZDVjMmMzNzgzYjE5ODhiNGI0NmRjOTRlNTU1ODdhMTA3ZWExNTQ2YmYyMmQyOGEwOTdmNjUyYTQwNjZkYzI5NjUyNjkwNjlhZjJmNTE3NmJiOGNlOWNhNmQxMWY5Njc1N2YwMzIwNGY3NTY3MDM1ODdkMDBhZDQyNDc5NmM5MmZjN2FlYjZmNDk0NDMxOTk5ZWRhMzA5OTBlNGY1NzczNjMyZWQyNThmZTAyNzY2NzM1OTlkYTZmY2UzNWNkYWQ3NzI2YTBiYjAyNGNhZDk5NmI4OGUwY2I5ODg1NGNlYjVjMGI2ZWM3NDhkOWY5Y2U2YTZjZDQzNzg1OGJhY2I4MTQ2MThhMjcyZmYzYTQxNWM2ZTA3ZjNkYjA5ODg3NzdmZGVjODQ1YTk3YmY3ZDEwMmRkMDMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGYzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MDAzMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMyMDIxNDU2NGQ1NTQwMjVhZjU5OWUzMjcwNzliMjcyMGVmMDBkZjM3Y2ZiN2MzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDA0NjA5OGRjNWYyYjk5ZTNiYzJlZDY2NDJkN2YwYTYxZWZhYmMxNWMzOGM3NjMzM2JjY2NlZWVlMzY5YTRmNGE1YmRkYThlYTU5MjY0MTI0ZTQyOWYwODYzMjY4M2RkYmExN2JiZjI2MmQ4MmI2YmVmYTNiNGUxNDgwMzc2YThjN2YzYzdkN2UyYTY3NzliYmYxODI2MmFhODU3ZGU4YzIwYTEyYjZhMmNlOGU0ZDdmMzFkZDFiMTk1MzkyY2Y2MTg1YWZjZTM0YWZlMDU4OTYwNTdiMzZlOWIxNzFiNmM2N2VkN2MyMjg2Y2JmYTgzZmY4YTE2N2M3YmM3MTA5YWVlN2Q3ZTE5MDliZDM4NGZiZmM2MTkzOGVmY2E1MWM4OTkzYzcxZGIzMTc3MzBmMTZlN2U3NzY4NjdhZTRmZGM1NjJkNmYxNWRlNTg1ZTdiOTRlZjQ5NmEzNjc2MzY3YTJjYmFhYjdiNjM2NjQ4YjAwNzZiYWQ1Y2RmMWUwOTc0MGVjNmE0NTFiZmY1MzRlZmEyMTUwOWYzYmE3N2I4MTAxYjkxZWE3ZTU1ZGRiZmUxNDAxNTE3MDY3ZDdiMDFhMmEwODc5ZjA4ODVjODk0YTg3Y2ZiNjhjNGQ3ZWU4OTA2MDQ4ODFhZWI5N2MyMmQxZjMzN2VmOTIzZTAzNWE2NDAwMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMzMDIxNDYyNDc3Mjk4NzU5ZThlMDQ3MThhZTU2MzE1NWYzNTIzY2ZiODRjZGIzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDZkMmNiYjM3ZmQxMjk1N2U1YTc0ODBjZTA0MzVlOGVmNjA3N2RlZjA4ZmYyNzA4NDRkZTI1MTZhNDc0MmYyMTFkOGM3NDY5MGJjMDk0OGUwOGEyOTZhYmJhOTI4NWY2YmIzMDViOTViN2Y5NDA4Y2U0NGU4Mzg4MGM3MTk0NDQ2NzJlYzk5NzQ2YmE3OGNjNGJkZTQ3NTMxOWQwMWJkZTc3YzQ5ZDU4ZDE2ZDNiMmU5MWMyZTYxZTgzMDNjYTNkN2VkYTM3OTdmZDhiMzVjYTcyYmIxNGIxNWEyNGI1NmJiNzBkYzEzNDg0NTY1ODA4MTEwZmY1ZGI1OGM1NmY3YTA0MzU2MDdlM2MzNTJmYmY0ZjU1MTA2ZjI5ODBmZDNjZDQyMzk3ZGJmNzEzN2VlN2YxZTMyY2Q4MGEzYjdhYjEyYjQ2YzE2OTIyMDI3OGQ3NzE3Yjc4YTNjNDVkNjM5NWExMzBhOGI1ODg0MWNiYzI5MGU0ZjgxN2RlM2E0ZmUxNmVjZDA3N2NhMzNhMGFhMjVlMjM1Y2M3ZjY2NTVhODBiYThhZWVjODc5MDViYjJhNzU0NTliN2JjYzVhMTMzZjI5OTM0OTNiNDFmZmNmNjNjZDdhMzkxZTNlNmY3ODA5NGNhNDQyYzgwMTQ0NDAzY2IwYTVmMDBiZmM2MWFlODgwIgogCiBQS0NTNyBQYXJzZSBGYWlsdXJlIEludmFsaWQgQVNOMTogQ2hhbmdlIGxlbmd0aCBmcm9tIDE0IHRvIDEzICM2NjcuMAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHBrY3M3X2FzbjFfZmFpbDoiMzA4MjA0OWQwNjA5MmE4NjQ4ODZmNzBkMDEwNzAyYTA4MjA0OGUzMDgyMDQ4YTAyMDEwMTMxMGYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBiMDYwOTJhODY0ODg2ZjcwZDAxMDcwMTMxODIwNDY1MzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDViZWNkODcxOTVjMWRlZmY5MGMyNGM5MTI2OWI1NWIzZjA2OWJjMjI1YzMyNmMzMTRjMWE1MTc4NmZmZTE0YzgzMGJlNGU0YmM3M2NiYTM2Yzk3Njc3YjQ0MTY4Mjc5YmU5MWU3Y2RmN2MxOTM4NmFlMjE4NjI3MTlkMTNhM2EwZmZmMDgwM2Q0NjA5NjJmMmNkYTgzNzE0ODQ4NzMyNTJjM2Q3MDU0ZGI4MTQzZTJiMDgxYTM4MTZlZDA4MDRjYTUwOTlhZTVmZWNlODNkNWMyYzM3ODNiMTk4OGI0YjQ2ZGM5NGU1NTU4N2ExMDdlYTE1NDZiZjIyZDI4YTA5N2Y2NTJhNDA2NmRjMjk2NTI2OTA2OWFmMmY1MTc2YmI4Y2U5Y2E2ZDExZjk2NzU3ZjAzMjA0Zjc1NjcwMzU4N2QwMGFkNDI0Nzk2YzkyZmM3YWViNmY0OTQ0MzE5OTllZGEzMDk5MGU0ZjU3NzM2MzJlZDI1OGZlMDI3NjY3MzU5OWRhNmZjZTM1Y2RhZDc3MjZhMGJiMDI0Y2FkOTk2Yjg4ZTBjYjk4ODU0Y2ViNWMwYjZlYzc0OGQ5ZjljZTZhNmNkNDM3ODU4YmFjYjgxNDYxOGEyNzJmZjNhNDE1YzZlMDdmM2RiMDk4ODc3N2ZkZWM4NDVhOTdiZjdkMTAyZGQwMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZDMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMyMDIxNDU2NGQ1NTQwMjVhZjU5OWUzMjcwNzliMjcyMGVmMDBkZjM3Y2ZiN2MzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDA0NjA5OGRjNWYyYjk5ZTNiYzJlZDY2NDJkN2YwYTYxZWZhYmMxNWMzOGM3NjMzM2JjY2NlZWVlMzY5YTRmNGE1YmRkYThlYTU5MjY0MTI0ZTQyOWYwODYzMjY4M2RkYmExN2JiZjI2MmQ4MmI2YmVmYTNiNGUxNDgwMzc2YThjN2YzYzdkN2UyYTY3NzliYmYxODI2MmFhODU3ZGU4YzIwYTEyYjZhMmNlOGU0ZDdmMzFkZDFiMTk1MzkyY2Y2MTg1YWZjZTM0YWZlMDU4OTYwNTdiMzZlOWIxNzFiNmM2N2VkN2MyMjg2Y2JmYTgzZmY4YTE2N2M3YmM3MTA5YWVlN2Q3ZTE5MDliZDM4NGZiZmM2MTkzOGVmY2E1MWM4OTkzYzcxZGIzMTc3MzBmMTZlN2U3NzY4NjdhZTRmZGM1NjJkNmYxNWRlNTg1ZTdiOTRlZjQ5NmEzNjc2MzY3YTJjYmFhYjdiNjM2NjQ4YjAwNzZiYWQ1Y2RmMWUwOTc0MGVjNmE0NTFiZmY1MzRlZmEyMTUwOWYzYmE3N2I4MTAxYjkxZWE3ZTU1ZGRiZmUxNDAxNTE3MDY3ZDdiMDFhMmEwODc5ZjA4ODVjODk0YTg3Y2ZiNjhjNGQ3ZWU4OTA2MDQ4ODFhZWI5N2MyMmQxZjMzN2VmOTIzZTAzNWE2NDAwMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMzMDIxNDYyNDc3Mjk4NzU5ZThlMDQ3MThhZTU2MzE1NWYzNTIzY2ZiODRjZGIzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDZkMmNiYjM3ZmQxMjk1N2U1YTc0ODBjZTA0MzVlOGVmNjA3N2RlZjA4ZmYyNzA4NDRkZTI1MTZhNDc0MmYyMTFkOGM3NDY5MGJjMDk0OGUwOGEyOTZhYmJhOTI4NWY2YmIzMDViOTViN2Y5NDA4Y2U0NGU4Mzg4MGM3MTk0NDQ2NzJlYzk5NzQ2YmE3OGNjNGJkZTQ3NTMxOWQwMWJkZTc3YzQ5ZDU4ZDE2ZDNiMmU5MWMyZTYxZTgzMDNjYTNkN2VkYTM3OTdmZDhiMzVjYTcyYmIxNGIxNWEyNGI1NmJiNzBkYzEzNDg0NTY1ODA4MTEwZmY1ZGI1OGM1NmY3YTA0MzU2MDdlM2MzNTJmYmY0ZjU1MTA2ZjI5ODBmZDNjZDQyMzk3ZGJmNzEzN2VlN2YxZTMyY2Q4MGEzYjdhYjEyYjQ2YzE2OTIyMDI3OGQ3NzE3Yjc4YTNjNDVkNjM5NWExMzBhOGI1ODg0MWNiYzI5MGU0ZjgxN2RlM2E0ZmUxNmVjZDA3N2NhMzNhMGFhMjVlMjM1Y2M3ZjY2NTVhODBiYThhZWVjODc5MDViYjJhNzU0NTliN2JjYzVhMTMzZjI5OTM0OTNiNDFmZmNmNjNjZDdhMzkxZTNlNmY3ODA5NGNhNDQyYzgwMTQ0NDAzY2IwYTVmMDBiZmM2MWFlODgwIgogCiBQS0NTNyBQYXJzZSBGYWlsdXJlIEludmFsaWQgQVNOMTogQ2hhbmdlIHRhZyAzMCB0byAwMiAjNjY4LjAKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBwa2NzN19hc24xX2ZhaWw6IjMwODIwNDlkMDYwOTJhODY0ODg2ZjcwZDAxMDcwMmEwODIwNDhlMzA4MjA0OGEwMjAxMDEzMTBmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwYjA2MDkyYTg2NDg4NmY3MGQwMTA3MDEzMTgyMDQ2NTMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTAyMTQ3YmRlZGRkMjQ0NGNkMWNkZmU1YzQxYTgxMDJjODliN2RmMmU2Y2JmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDA1YmVjZDg3MTk1YzFkZWZmOTBjMjRjOTEyNjliNTViM2YwNjliYzIyNWMzMjZjMzE0YzFhNTE3ODZmZmUxNGM4MzBiZTRlNGJjNzNjYmEzNmM5NzY3N2I0NDE2ODI3OWJlOTFlN2NkZjdjMTkzODZhZTIxODYyNzE5ZDEzYTNhMGZmZjA4MDNkNDYwOTYyZjJjZGE4MzcxNDg0ODczMjUyYzNkNzA1NGRiODE0M2UyYjA4MWEzODE2ZWQwODA0Y2E1MDk5YWU1ZmVjZTgzZDVjMmMzNzgzYjE5ODhiNGI0NmRjOTRlNTU1ODdhMTA3ZWExNTQ2YmYyMmQyOGEwOTdmNjUyYTQwNjZkYzI5NjUyNjkwNjlhZjJmNTE3NmJiOGNlOWNhNmQxMWY5Njc1N2YwMzIwNGY3NTY3MDM1ODdkMDBhZDQyNDc5NmM5MmZjN2FlYjZmNDk0NDMxOTk5ZWRhMzA5OTBlNGY1NzczNjMyZWQyNThmZTAyNzY2NzM1OTlkYTZmY2UzNWNkYWQ3NzI2YTBiYjAyNGNhZDk5NmI4OGUwY2I5ODg1NGNlYjVjMGI2ZWM3NDhkOWY5Y2U2YTZjZDQzNzg1OGJhY2I4MTQ2MThhMjcyZmYzYTQxNWM2ZTA3ZjNkYjA5ODg3NzdmZGVjODQ1YTk3YmY3ZDEwMmRkMDMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUwMjBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMjAyMTQ1NjRkNTU0MDI1YWY1OTllMzI3MDc5YjI3MjBlZjAwZGYzN2NmYjdjMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDAwNDYwOThkYzVmMmI5OWUzYmMyZWQ2NjQyZDdmMGE2MWVmYWJjMTVjMzhjNzYzMzNiY2NjZWVlZTM2OWE0ZjRhNWJkZGE4ZWE1OTI2NDEyNGU0MjlmMDg2MzI2ODNkZGJhMTdiYmYyNjJkODJiNmJlZmEzYjRlMTQ4MDM3NmE4YzdmM2M3ZDdlMmE2Nzc5YmJmMTgyNjJhYTg1N2RlOGMyMGExMmI2YTJjZThlNGQ3ZjMxZGQxYjE5NTM5MmNmNjE4NWFmY2UzNGFmZTA1ODk2MDU3YjM2ZTliMTcxYjZjNjdlZDdjMjI4NmNiZmE4M2ZmOGExNjdjN2JjNzEwOWFlZTdkN2UxOTA5YmQzODRmYmZjNjE5MzhlZmNhNTFjODk5M2M3MWRiMzE3NzMwZjE2ZTdlNzc2ODY3YWU0ZmRjNTYyZDZmMTVkZTU4NWU3Yjk0ZWY0OTZhMzY3NjM2N2EyY2JhYWI3YjYzNjY0OGIwMDc2YmFkNWNkZjFlMDk3NDBlYzZhNDUxYmZmNTM0ZWZhMjE1MDlmM2JhNzdiODEwMWI5MWVhN2U1NWRkYmZlMTQwMTUxNzA2N2Q3YjAxYTJhMDg3OWYwODg1Yzg5NGE4N2NmYjY4YzRkN2VlODkwNjA0ODgxYWViOTdjMjJkMWYzMzdlZjkyM2UwMzVhNjQwMDMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMzAyMTQ2MjQ3NzI5ODc1OWU4ZTA0NzE4YWU1NjMxNTVmMzUyM2NmYjg0Y2RiMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDA2ZDJjYmIzN2ZkMTI5NTdlNWE3NDgwY2UwNDM1ZThlZjYwNzdkZWYwOGZmMjcwODQ0ZGUyNTE2YTQ3NDJmMjExZDhjNzQ2OTBiYzA5NDhlMDhhMjk2YWJiYTkyODVmNmJiMzA1Yjk1YjdmOTQwOGNlNDRlODM4ODBjNzE5NDQ0NjcyZWM5OTc0NmJhNzhjYzRiZGU0NzUzMTlkMDFiZGU3N2M0OWQ1OGQxNmQzYjJlOTFjMmU2MWU4MzAzY2EzZDdlZGEzNzk3ZmQ4YjM1Y2E3MmJiMTRiMTVhMjRiNTZiYjcwZGMxMzQ4NDU2NTgwODExMGZmNWRiNThjNTZmN2EwNDM1NjA3ZTNjMzUyZmJmNGY1NTEwNmYyOTgwZmQzY2Q0MjM5N2RiZjcxMzdlZTdmMWUzMmNkODBhM2I3YWIxMmI0NmMxNjkyMjAyNzhkNzcxN2I3OGEzYzQ1ZDYzOTVhMTMwYThiNTg4NDFjYmMyOTBlNGY4MTdkZTNhNGZlMTZlY2QwNzdjYTMzYTBhYTI1ZTIzNWNjN2Y2NjU1YTgwYmE4YWVlYzg3OTA1YmIyYTc1NDU5YjdiY2M1YTEzM2YyOTkzNDkzYjQxZmZjZjYzY2Q3YTM5MWUzZTZmNzgwOTRjYTQ0MmM4MDE0NDQwM2NiMGE1ZjAwYmZjNjFhZTg4MCIKIAogUEtDUzcgUGFyc2UgRmFpbHVyZSBJbnZhbGlkIEFTTjE6IENoYW5nZSBsZW5ndGggZnJvbSAxMiB0byAxMyAjNjY5LjAKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBwa2NzN19hc24xX2ZhaWw6IjMwODIwNDlkMDYwOTJhODY0ODg2ZjcwZDAxMDcwMmEwODIwNDhlMzA4MjA0OGEwMjAxMDEzMTBmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwYjA2MDkyYTg2NDg4NmY3MGQwMTA3MDEzMTgyMDQ2NTMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTAyMTQ3YmRlZGRkMjQ0NGNkMWNkZmU1YzQxYTgxMDJjODliN2RmMmU2Y2JmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDA1YmVjZDg3MTk1YzFkZWZmOTBjMjRjOTEyNjliNTViM2YwNjliYzIyNWMzMjZjMzE0YzFhNTE3ODZmZmUxNGM4MzBiZTRlNGJjNzNjYmEzNmM5NzY3N2I0NDE2ODI3OWJlOTFlN2NkZjdjMTkzODZhZTIxODYyNzE5ZDEzYTNhMGZmZjA4MDNkNDYwOTYyZjJjZGE4MzcxNDg0ODczMjUyYzNkNzA1NGRiODE0M2UyYjA4MWEzODE2ZWQwODA0Y2E1MDk5YWU1ZmVjZTgzZDVjMmMzNzgzYjE5ODhiNGI0NmRjOTRlNTU1ODdhMTA3ZWExNTQ2YmYyMmQyOGEwOTdmNjUyYTQwNjZkYzI5NjUyNjkwNjlhZjJmNTE3NmJiOGNlOWNhNmQxMWY5Njc1N2YwMzIwNGY3NTY3MDM1ODdkMDBhZDQyNDc5NmM5MmZjN2FlYjZmNDk0NDMxOTk5ZWRhMzA5OTBlNGY1NzczNjMyZWQyNThmZTAyNzY2NzM1OTlkYTZmY2UzNWNkYWQ3NzI2YTBiYjAyNGNhZDk5NmI4OGUwY2I5ODg1NGNlYjVjMGI2ZWM3NDhkOWY5Y2U2YTZjZDQzNzg1OGJhY2I4MTQ2MThhMjcyZmYzYTQxNWM2ZTA3ZjNkYjA5ODg3NzdmZGVjODQ1YTk3YmY3ZDEwMmRkMDMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBkMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMjAyMTQ1NjRkNTU0MDI1YWY1OTllMzI3MDc5YjI3MjBlZjAwZGYzN2NmYjdjMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDAwNDYwOThkYzVmMmI5OWUzYmMyZWQ2NjQyZDdmMGE2MWVmYWJjMTVjMzhjNzYzMzNiY2NjZWVlZTM2OWE0ZjRhNWJkZGE4ZWE1OTI2NDEyNGU0MjlmMDg2MzI2ODNkZGJhMTdiYmYyNjJkODJiNmJlZmEzYjRlMTQ4MDM3NmE4YzdmM2M3ZDdlMmE2Nzc5YmJmMTgyNjJhYTg1N2RlOGMyMGExMmI2YTJjZThlNGQ3ZjMxZGQxYjE5NTM5MmNmNjE4NWFmY2UzNGFmZTA1ODk2MDU3YjM2ZTliMTcxYjZjNjdlZDdjMjI4NmNiZmE4M2ZmOGExNjdjN2JjNzEwOWFlZTdkN2UxOTA5YmQzODRmYmZjNjE5MzhlZmNhNTFjODk5M2M3MWRiMzE3NzMwZjE2ZTdlNzc2ODY3YWU0ZmRjNTYyZDZmMTVkZTU4NWU3Yjk0ZWY0OTZhMzY3NjM2N2EyY2JhYWI3YjYzNjY0OGIwMDc2YmFkNWNkZjFlMDk3NDBlYzZhNDUxYmZmNTM0ZWZhMjE1MDlmM2JhNzdiODEwMWI5MWVhN2U1NWRkYmZlMTQwMTUxNzA2N2Q3YjAxYTJhMDg3OWYwODg1Yzg5NGE4N2NmYjY4YzRkN2VlODkwNjA0ODgxYWViOTdjMjJkMWYzMzdlZjkyM2UwMzVhNjQwMDMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMzAyMTQ2MjQ3NzI5ODc1OWU4ZTA0NzE4YWU1NjMxNTVmMzUyM2NmYjg0Y2RiMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDA2ZDJjYmIzN2ZkMTI5NTdlNWE3NDgwY2UwNDM1ZThlZjYwNzdkZWYwOGZmMjcwODQ0ZGUyNTE2YTQ3NDJmMjExZDhjNzQ2OTBiYzA5NDhlMDhhMjk2YWJiYTkyODVmNmJiMzA1Yjk1YjdmOTQwOGNlNDRlODM4ODBjNzE5NDQ0NjcyZWM5OTc0NmJhNzhjYzRiZGU0NzUzMTlkMDFiZGU3N2M0OWQ1OGQxNmQzYjJlOTFjMmU2MWU4MzAzY2EzZDdlZGEzNzk3ZmQ4YjM1Y2E3MmJiMTRiMTVhMjRiNTZiYjcwZGMxMzQ4NDU2NTgwODExMGZmNWRiNThjNTZmN2EwNDM1NjA3ZTNjMzUyZmJmNGY1NTEwNmYyOTgwZmQzY2Q0MjM5N2RiZjcxMzdlZTdmMWUzMmNkODBhM2I3YWIxMmI0NmMxNjkyMjAyNzhkNzcxN2I3OGEzYzQ1ZDYzOTVhMTMwYThiNTg4NDFjYmMyOTBlNGY4MTdkZTNhNGZlMTZlY2QwNzdjYTMzYTBhYTI1ZTIzNWNjN2Y2NjU1YTgwYmE4YWVlYzg3OTA1YmIyYTc1NDU5YjdiY2M1YTEzM2YyOTkzNDkzYjQxZmZjZjYzY2Q3YTM5MWUzZTZmNzgwOTRjYTQ0MmM4MDE0NDQwM2NiMGE1ZjAwYmZjNjFhZTg4MCIKIAogUEtDUzcgUGFyc2UgRmFpbHVyZSBJbnZhbGlkIEFTTjE6IENoYW5nZSBjb250ZW50cyBvZiB0YWcgMzAgdG8gY29udGFpbiBvbmUgdW5hY2NvdW50ZWQgZXh0cmEgYnl0ZSAjNjcwLjAKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBwa2NzN19hc24xX2ZhaWw6IjMwODIwNDlkMDYwOTJhODY0ODg2ZjcwZDAxMDcwMmEwODIwNDhlMzA4MjA0OGEwMjAxMDEzMTBmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwYjA2MDkyYTg2NDg4NmY3MGQwMTA3MDEzMTgyMDQ2NTMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTAyMTQ3YmRlZGRkMjQ0NGNkMWNkZmU1YzQxYTgxMDJjODliN2RmMmU2Y2JmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDA1YmVjZDg3MTk1YzFkZWZmOTBjMjRjOTEyNjliNTViM2YwNjliYzIyNWMzMjZjMzE0YzFhNTE3ODZmZmUxNGM4MzBiZTRlNGJjNzNjYmEzNmM5NzY3N2I0NDE2ODI3OWJlOTFlN2NkZjdjMTkzODZhZTIxODYyNzE5ZDEzYTNhMGZmZjA4MDNkNDYwOTYyZjJjZGE4MzcxNDg0ODczMjUyYzNkNzA1NGRiODE0M2UyYjA4MWEzODE2ZWQwODA0Y2E1MDk5YWU1ZmVjZTgzZDVjMmMzNzgzYjE5ODhiNGI0NmRjOTRlNTU1ODdhMTA3ZWExNTQ2YmYyMmQyOGEwOTdmNjUyYTQwNjZkYzI5NjUyNjkwNjlhZjJmNTE3NmJiOGNlOWNhNmQxMWY5Njc1N2YwMzIwNGY3NTY3MDM1ODdkMDBhZDQyNDc5NmM5MmZjN2FlYjZmNDk0NDMxOTk5ZWRhMzA5OTBlNGY1NzczNjMyZWQyNThmZTAyNzY2NzM1OTlkYTZmY2UzNWNkYWQ3NzI2YTBiYjAyNGNhZDk5NmI4OGUwY2I5ODg1NGNlYjVjMGI2ZWM3NDhkOWY5Y2U2YTZjZDQzNzg1OGJhY2I4MTQ2MThhMjcyZmYzYTQxNWM2ZTA3ZjNkYjA5ODg3NzdmZGVjODQ1YTk3YmY3ZDEwMmRkMDMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBkMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MDAzMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMyMDIxNDU2NGQ1NTQwMjVhZjU5OWUzMjcwNzliMjcyMGVmMDBkZjM3Y2ZiN2MzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDA0NjA5OGRjNWYyYjk5ZTNiYzJlZDY2NDJkN2YwYTYxZWZhYmMxNWMzOGM3NjMzM2JjY2NlZWVlMzY5YTRmNGE1YmRkYThlYTU5MjY0MTI0ZTQyOWYwODYzMjY4M2RkYmExN2JiZjI2MmQ4MmI2YmVmYTNiNGUxNDgwMzc2YThjN2YzYzdkN2UyYTY3NzliYmYxODI2MmFhODU3ZGU4YzIwYTEyYjZhMmNlOGU0ZDdmMzFkZDFiMTk1MzkyY2Y2MTg1YWZjZTM0YWZlMDU4OTYwNTdiMzZlOWIxNzFiNmM2N2VkN2MyMjg2Y2JmYTgzZmY4YTE2N2M3YmM3MTA5YWVlN2Q3ZTE5MDliZDM4NGZiZmM2MTkzOGVmY2E1MWM4OTkzYzcxZGIzMTc3MzBmMTZlN2U3NzY4NjdhZTRmZGM1NjJkNmYxNWRlNTg1ZTdiOTRlZjQ5NmEzNjc2MzY3YTJjYmFhYjdiNjM2NjQ4YjAwNzZiYWQ1Y2RmMWUwOTc0MGVjNmE0NTFiZmY1MzRlZmEyMTUwOWYzYmE3N2I4MTAxYjkxZWE3ZTU1ZGRiZmUxNDAxNTE3MDY3ZDdiMDFhMmEwODc5ZjA4ODVjODk0YTg3Y2ZiNjhjNGQ3ZWU4OTA2MDQ4ODFhZWI5N2MyMmQxZjMzN2VmOTIzZTAzNWE2NDAwMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMzMDIxNDYyNDc3Mjk4NzU5ZThlMDQ3MThhZTU2MzE1NWYzNTIzY2ZiODRjZGIzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDZkMmNiYjM3ZmQxMjk1N2U1YTc0ODBjZTA0MzVlOGVmNjA3N2RlZjA4ZmYyNzA4NDRkZTI1MTZhNDc0MmYyMTFkOGM3NDY5MGJjMDk0OGUwOGEyOTZhYmJhOTI4NWY2YmIzMDViOTViN2Y5NDA4Y2U0NGU4Mzg4MGM3MTk0NDQ2NzJlYzk5NzQ2YmE3OGNjNGJkZTQ3NTMxOWQwMWJkZTc3YzQ5ZDU4ZDE2ZDNiMmU5MWMyZTYxZTgzMDNjYTNkN2VkYTM3OTdmZDhiMzVjYTcyYmIxNGIxNWEyNGI1NmJiNzBkYzEzNDg0NTY1ODA4MTEwZmY1ZGI1OGM1NmY3YTA0MzU2MDdlM2MzNTJmYmY0ZjU1MTA2ZjI5ODBmZDNjZDQyMzk3ZGJmNzEzN2VlN2YxZTMyY2Q4MGEzYjdhYjEyYjQ2YzE2OTIyMDI3OGQ3NzE3Yjc4YTNjNDVkNjM5NWExMzBhOGI1ODg0MWNiYzI5MGU0ZjgxN2RlM2E0ZmUxNmVjZDA3N2NhMzNhMGFhMjVlMjM1Y2M3ZjY2NTVhODBiYThhZWVjODc5MDViYjJhNzU0NTliN2JjYzVhMTMzZjI5OTM0OTNiNDFmZmNmNjNjZDdhMzkxZTNlNmY3ODA5NGNhNDQyYzgwMTQ0NDAzY2IwYTVmMDBiZmM2MWFlODgwIgogCiBQS0NTNyBQYXJzZSBGYWlsdXJlIEludmFsaWQgQVNOMTogQ2hhbmdlIGxlbmd0aCBmcm9tIDEyIHRvIDExICM2NzEuMAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHBrY3M3X2FzbjFfZmFpbDoiMzA4MjA0OWQwNjA5MmE4NjQ4ODZmNzBkMDEwNzAyYTA4MjA0OGUzMDgyMDQ4YTAyMDEwMTMxMGYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBiMDYwOTJhODY0ODg2ZjcwZDAxMDcwMTMxODIwNDY1MzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDViZWNkODcxOTVjMWRlZmY5MGMyNGM5MTI2OWI1NWIzZjA2OWJjMjI1YzMyNmMzMTRjMWE1MTc4NmZmZTE0YzgzMGJlNGU0YmM3M2NiYTM2Yzk3Njc3YjQ0MTY4Mjc5YmU5MWU3Y2RmN2MxOTM4NmFlMjE4NjI3MTlkMTNhM2EwZmZmMDgwM2Q0NjA5NjJmMmNkYTgzNzE0ODQ4NzMyNTJjM2Q3MDU0ZGI4MTQzZTJiMDgxYTM4MTZlZDA4MDRjYTUwOTlhZTVmZWNlODNkNWMyYzM3ODNiMTk4OGI0YjQ2ZGM5NGU1NTU4N2ExMDdlYTE1NDZiZjIyZDI4YTA5N2Y2NTJhNDA2NmRjMjk2NTI2OTA2OWFmMmY1MTc2YmI4Y2U5Y2E2ZDExZjk2NzU3ZjAzMjA0Zjc1NjcwMzU4N2QwMGFkNDI0Nzk2YzkyZmM3YWViNmY0OTQ0MzE5OTllZGEzMDk5MGU0ZjU3NzM2MzJlZDI1OGZlMDI3NjY3MzU5OWRhNmZjZTM1Y2RhZDc3MjZhMGJiMDI0Y2FkOTk2Yjg4ZTBjYjk4ODU0Y2ViNWMwYjZlYzc0OGQ5ZjljZTZhNmNkNDM3ODU4YmFjYjgxNDYxOGEyNzJmZjNhNDE1YzZlMDdmM2RiMDk4ODc3N2ZkZWM4NDVhOTdiZjdkMTAyZGQwMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGIwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMyMDIxNDU2NGQ1NTQwMjVhZjU5OWUzMjcwNzliMjcyMGVmMDBkZjM3Y2ZiN2MzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDA0NjA5OGRjNWYyYjk5ZTNiYzJlZDY2NDJkN2YwYTYxZWZhYmMxNWMzOGM3NjMzM2JjY2NlZWVlMzY5YTRmNGE1YmRkYThlYTU5MjY0MTI0ZTQyOWYwODYzMjY4M2RkYmExN2JiZjI2MmQ4MmI2YmVmYTNiNGUxNDgwMzc2YThjN2YzYzdkN2UyYTY3NzliYmYxODI2MmFhODU3ZGU4YzIwYTEyYjZhMmNlOGU0ZDdmMzFkZDFiMTk1MzkyY2Y2MTg1YWZjZTM0YWZlMDU4OTYwNTdiMzZlOWIxNzFiNmM2N2VkN2MyMjg2Y2JmYTgzZmY4YTE2N2M3YmM3MTA5YWVlN2Q3ZTE5MDliZDM4NGZiZmM2MTkzOGVmY2E1MWM4OTkzYzcxZGIzMTc3MzBmMTZlN2U3NzY4NjdhZTRmZGM1NjJkNmYxNWRlNTg1ZTdiOTRlZjQ5NmEzNjc2MzY3YTJjYmFhYjdiNjM2NjQ4YjAwNzZiYWQ1Y2RmMWUwOTc0MGVjNmE0NTFiZmY1MzRlZmEyMTUwOWYzYmE3N2I4MTAxYjkxZWE3ZTU1ZGRiZmUxNDAxNTE3MDY3ZDdiMDFhMmEwODc5ZjA4ODVjODk0YTg3Y2ZiNjhjNGQ3ZWU4OTA2MDQ4ODFhZWI5N2MyMmQxZjMzN2VmOTIzZTAzNWE2NDAwMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMzMDIxNDYyNDc3Mjk4NzU5ZThlMDQ3MThhZTU2MzE1NWYzNTIzY2ZiODRjZGIzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDZkMmNiYjM3ZmQxMjk1N2U1YTc0ODBjZTA0MzVlOGVmNjA3N2RlZjA4ZmYyNzA4NDRkZTI1MTZhNDc0MmYyMTFkOGM3NDY5MGJjMDk0OGUwOGEyOTZhYmJhOTI4NWY2YmIzMDViOTViN2Y5NDA4Y2U0NGU4Mzg4MGM3MTk0NDQ2NzJlYzk5NzQ2YmE3OGNjNGJkZTQ3NTMxOWQwMWJkZTc3YzQ5ZDU4ZDE2ZDNiMmU5MWMyZTYxZTgzMDNjYTNkN2VkYTM3OTdmZDhiMzVjYTcyYmIxNGIxNWEyNGI1NmJiNzBkYzEzNDg0NTY1ODA4MTEwZmY1ZGI1OGM1NmY3YTA0MzU2MDdlM2MzNTJmYmY0ZjU1MTA2ZjI5ODBmZDNjZDQyMzk3ZGJmNzEzN2VlN2YxZTMyY2Q4MGEzYjdhYjEyYjQ2YzE2OTIyMDI3OGQ3NzE3Yjc4YTNjNDVkNjM5NWExMzBhOGI1ODg0MWNiYzI5MGU0ZjgxN2RlM2E0ZmUxNmVjZDA3N2NhMzNhMGFhMjVlMjM1Y2M3ZjY2NTVhODBiYThhZWVjODc5MDViYjJhNzU0NTliN2JjYzVhMTMzZjI5OTM0OTNiNDFmZmNmNjNjZDdhMzkxZTNlNmY3ODA5NGNhNDQyYzgwMTQ0NDAzY2IwYTVmMDBiZmM2MWFlODgwIgogCiBQS0NTNyBQYXJzZSBGYWlsdXJlIEludmFsaWQgQVNOMTogQ2hhbmdlIHRhZyAwNiB0byAwMiAjNjcyLjAKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBwa2NzN19hc24xX2ZhaWw6IjMwODIwNDlkMDYwOTJhODY0ODg2ZjcwZDAxMDcwMmEwODIwNDhlMzA4MjA0OGEwMjAxMDEzMTBmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwYjA2MDkyYTg2NDg4NmY3MGQwMTA3MDEzMTgyMDQ2NTMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTAyMTQ3YmRlZGRkMjQ0NGNkMWNkZmU1YzQxYTgxMDJjODliN2RmMmU2Y2JmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDA1YmVjZDg3MTk1YzFkZWZmOTBjMjRjOTEyNjliNTViM2YwNjliYzIyNWMzMjZjMzE0YzFhNTE3ODZmZmUxNGM4MzBiZTRlNGJjNzNjYmEzNmM5NzY3N2I0NDE2ODI3OWJlOTFlN2NkZjdjMTkzODZhZTIxODYyNzE5ZDEzYTNhMGZmZjA4MDNkNDYwOTYyZjJjZGE4MzcxNDg0ODczMjUyYzNkNzA1NGRiODE0M2UyYjA4MWEzODE2ZWQwODA0Y2E1MDk5YWU1ZmVjZTgzZDVjMmMzNzgzYjE5ODhiNGI0NmRjOTRlNTU1ODdhMTA3ZWExNTQ2YmYyMmQyOGEwOTdmNjUyYTQwNjZkYzI5NjUyNjkwNjlhZjJmNTE3NmJiOGNlOWNhNmQxMWY5Njc1N2YwMzIwNGY3NTY3MDM1ODdkMDBhZDQyNDc5NmM5MmZjN2FlYjZmNDk0NDMxOTk5ZWRhMzA5OTBlNGY1NzczNjMyZWQyNThmZTAyNzY2NzM1OTlkYTZmY2UzNWNkYWQ3NzI2YTBiYjAyNGNhZDk5NmI4OGUwY2I5ODg1NGNlYjVjMGI2ZWM3NDhkOWY5Y2U2YTZjZDQzNzg1OGJhY2I4MTQ2MThhMjcyZmYzYTQxNWM2ZTA3ZjNkYjA5ODg3NzdmZGVjODQ1YTk3YmY3ZDEwMmRkMDMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDIwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMjAyMTQ1NjRkNTU0MDI1YWY1OTllMzI3MDc5YjI3MjBlZjAwZGYzN2NmYjdjMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDAwNDYwOThkYzVmMmI5OWUzYmMyZWQ2NjQyZDdmMGE2MWVmYWJjMTVjMzhjNzYzMzNiY2NjZWVlZTM2OWE0ZjRhNWJkZGE4ZWE1OTI2NDEyNGU0MjlmMDg2MzI2ODNkZGJhMTdiYmYyNjJkODJiNmJlZmEzYjRlMTQ4MDM3NmE4YzdmM2M3ZDdlMmE2Nzc5YmJmMTgyNjJhYTg1N2RlOGMyMGExMmI2YTJjZThlNGQ3ZjMxZGQxYjE5NTM5MmNmNjE4NWFmY2UzNGFmZTA1ODk2MDU3YjM2ZTliMTcxYjZjNjdlZDdjMjI4NmNiZmE4M2ZmOGExNjdjN2JjNzEwOWFlZTdkN2UxOTA5YmQzODRmYmZjNjE5MzhlZmNhNTFjODk5M2M3MWRiMzE3NzMwZjE2ZTdlNzc2ODY3YWU0ZmRjNTYyZDZmMTVkZTU4NWU3Yjk0ZWY0OTZhMzY3NjM2N2EyY2JhYWI3YjYzNjY0OGIwMDc2YmFkNWNkZjFlMDk3NDBlYzZhNDUxYmZmNTM0ZWZhMjE1MDlmM2JhNzdiODEwMWI5MWVhN2U1NWRkYmZlMTQwMTUxNzA2N2Q3YjAxYTJhMDg3OWYwODg1Yzg5NGE4N2NmYjY4YzRkN2VlODkwNjA0ODgxYWViOTdjMjJkMWYzMzdlZjkyM2UwMzVhNjQwMDMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMzAyMTQ2MjQ3NzI5ODc1OWU4ZTA0NzE4YWU1NjMxNTVmMzUyM2NmYjg0Y2RiMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDA2ZDJjYmIzN2ZkMTI5NTdlNWE3NDgwY2UwNDM1ZThlZjYwNzdkZWYwOGZmMjcwODQ0ZGUyNTE2YTQ3NDJmMjExZDhjNzQ2OTBiYzA5NDhlMDhhMjk2YWJiYTkyODVmNmJiMzA1Yjk1YjdmOTQwOGNlNDRlODM4ODBjNzE5NDQ0NjcyZWM5OTc0NmJhNzhjYzRiZGU0NzUzMTlkMDFiZGU3N2M0OWQ1OGQxNmQzYjJlOTFjMmU2MWU4MzAzY2EzZDdlZGEzNzk3ZmQ4YjM1Y2E3MmJiMTRiMTVhMjRiNTZiYjcwZGMxMzQ4NDU2NTgwODExMGZmNWRiNThjNTZmN2EwNDM1NjA3ZTNjMzUyZmJmNGY1NTEwNmYyOTgwZmQzY2Q0MjM5N2RiZjcxMzdlZTdmMWUzMmNkODBhM2I3YWIxMmI0NmMxNjkyMjAyNzhkNzcxN2I3OGEzYzQ1ZDYzOTVhMTMwYThiNTg4NDFjYmMyOTBlNGY4MTdkZTNhNGZlMTZlY2QwNzdjYTMzYTBhYTI1ZTIzNWNjN2Y2NjU1YTgwYmE4YWVlYzg3OTA1YmIyYTc1NDU5YjdiY2M1YTEzM2YyOTkzNDkzYjQxZmZjZjYzY2Q3YTM5MWUzZTZmNzgwOTRjYTQ0MmM4MDE0NDQwM2NiMGE1ZjAwYmZjNjFhZTg4MCIKIAogUEtDUzcgUGFyc2UgRmFpbHVyZSBJbnZhbGlkIEFTTjE6IENoYW5nZSBsZW5ndGggZnJvbSAzIHRvIDQgIzY3My4wCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NgogcGtjczdfYXNuMV9mYWlsOiIzMDgyMDQ5ZDA2MDkyYTg2NDg4NmY3MGQwMTA3MDJhMDgyMDQ4ZTMwODIwNDhhMDIwMTAxMzEwZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGIwNjA5MmE4NjQ4ODZmNzBkMDEwNzAxMzE4MjA0NjUzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwNWJlY2Q4NzE5NWMxZGVmZjkwYzI0YzkxMjY5YjU1YjNmMDY5YmMyMjVjMzI2YzMxNGMxYTUxNzg2ZmZlMTRjODMwYmU0ZTRiYzczY2JhMzZjOTc2NzdiNDQxNjgyNzliZTkxZTdjZGY3YzE5Mzg2YWUyMTg2MjcxOWQxM2EzYTBmZmYwODAzZDQ2MDk2MmYyY2RhODM3MTQ4NDg3MzI1MmMzZDcwNTRkYjgxNDNlMmIwODFhMzgxNmVkMDgwNGNhNTA5OWFlNWZlY2U4M2Q1YzJjMzc4M2IxOTg4YjRiNDZkYzk0ZTU1NTg3YTEwN2VhMTU0NmJmMjJkMjhhMDk3ZjY1MmE0MDY2ZGMyOTY1MjY5MDY5YWYyZjUxNzZiYjhjZTljYTZkMTFmOTY3NTdmMDMyMDRmNzU2NzAzNTg3ZDAwYWQ0MjQ3OTZjOTJmYzdhZWI2ZjQ5NDQzMTk5OWVkYTMwOTkwZTRmNTc3MzYzMmVkMjU4ZmUwMjc2NjczNTk5ZGE2ZmNlMzVjZGFkNzcyNmEwYmIwMjRjYWQ5OTZiODhlMGNiOTg4NTRjZWI1YzBiNmVjNzQ4ZDlmOWNlNmE2Y2Q0Mzc4NThiYWNiODE0NjE4YTI3MmZmM2E0MTVjNmUwN2YzZGIwOTg4Nzc3ZmRlYzg0NWE5N2JmN2QxMDJkZDAzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDQ1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzIwMjE0NTY0ZDU1NDAyNWFmNTk5ZTMyNzA3OWIyNzIwZWYwMGRmMzdjZmI3YzMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwMDQ2MDk4ZGM1ZjJiOTllM2JjMmVkNjY0MmQ3ZjBhNjFlZmFiYzE1YzM4Yzc2MzMzYmNjY2VlZWUzNjlhNGY0YTViZGRhOGVhNTkyNjQxMjRlNDI5ZjA4NjMyNjgzZGRiYTE3YmJmMjYyZDgyYjZiZWZhM2I0ZTE0ODAzNzZhOGM3ZjNjN2Q3ZTJhNjc3OWJiZjE4MjYyYWE4NTdkZThjMjBhMTJiNmEyY2U4ZTRkN2YzMWRkMWIxOTUzOTJjZjYxODVhZmNlMzRhZmUwNTg5NjA1N2IzNmU5YjE3MWI2YzY3ZWQ3YzIyODZjYmZhODNmZjhhMTY3YzdiYzcxMDlhZWU3ZDdlMTkwOWJkMzg0ZmJmYzYxOTM4ZWZjYTUxYzg5OTNjNzFkYjMxNzczMGYxNmU3ZTc3Njg2N2FlNGZkYzU2MmQ2ZjE1ZGU1ODVlN2I5NGVmNDk2YTM2NzYzNjdhMmNiYWFiN2I2MzY2NDhiMDA3NmJhZDVjZGYxZTA5NzQwZWM2YTQ1MWJmZjUzNGVmYTIxNTA5ZjNiYTc3YjgxMDFiOTFlYTdlNTVkZGJmZTE0MDE1MTcwNjdkN2IwMWEyYTA4NzlmMDg4NWM4OTRhODdjZmI2OGM0ZDdlZTg5MDYwNDg4MWFlYjk3YzIyZDFmMzM3ZWY5MjNlMDM1YTY0MDAzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzMwMjE0NjI0NzcyOTg3NTllOGUwNDcxOGFlNTYzMTU1ZjM1MjNjZmI4NGNkYjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwNmQyY2JiMzdmZDEyOTU3ZTVhNzQ4MGNlMDQzNWU4ZWY2MDc3ZGVmMDhmZjI3MDg0NGRlMjUxNmE0NzQyZjIxMWQ4Yzc0NjkwYmMwOTQ4ZTA4YTI5NmFiYmE5Mjg1ZjZiYjMwNWI5NWI3Zjk0MDhjZTQ0ZTgzODgwYzcxOTQ0NDY3MmVjOTk3NDZiYTc4Y2M0YmRlNDc1MzE5ZDAxYmRlNzdjNDlkNThkMTZkM2IyZTkxYzJlNjFlODMwM2NhM2Q3ZWRhMzc5N2ZkOGIzNWNhNzJiYjE0YjE1YTI0YjU2YmI3MGRjMTM0ODQ1NjU4MDgxMTBmZjVkYjU4YzU2ZjdhMDQzNTYwN2UzYzM1MmZiZjRmNTUxMDZmMjk4MGZkM2NkNDIzOTdkYmY3MTM3ZWU3ZjFlMzJjZDgwYTNiN2FiMTJiNDZjMTY5MjIwMjc4ZDc3MTdiNzhhM2M0NWQ2Mzk1YTEzMGE4YjU4ODQxY2JjMjkwZTRmODE3ZGUzYTRmZTE2ZWNkMDc3Y2EzM2EwYWEyNWUyMzVjYzdmNjY1NWE4MGJhOGFlZWM4NzkwNWJiMmE3NTQ1OWI3YmNjNWExMzNmMjk5MzQ5M2I0MWZmY2Y2M2NkN2EzOTFlM2U2Zjc4MDk0Y2E0NDJjODAxNDQ0MDNjYjBhNWYwMGJmYzYxYWU4ODAiCiAKIFBLQ1M3IFBhcnNlIEZhaWx1cmUgSW52YWxpZCBBU04xOiBDaGFuZ2UgbGVuZ3RoIGZyb20gMyB0byAyICM2NzQuMAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHBrY3M3X2FzbjFfZmFpbDoiMzA4MjA0OWQwNjA5MmE4NjQ4ODZmNzBkMDEwNzAyYTA4MjA0OGUzMDgyMDQ4YTAyMDEwMTMxMGYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBiMDYwOTJhODY0ODg2ZjcwZDAxMDcwMTMxODIwNDY1MzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDViZWNkODcxOTVjMWRlZmY5MGMyNGM5MTI2OWI1NWIzZjA2OWJjMjI1YzMyNmMzMTRjMWE1MTc4NmZmZTE0YzgzMGJlNGU0YmM3M2NiYTM2Yzk3Njc3YjQ0MTY4Mjc5YmU5MWU3Y2RmN2MxOTM4NmFlMjE4NjI3MTlkMTNhM2EwZmZmMDgwM2Q0NjA5NjJmMmNkYTgzNzE0ODQ4NzMyNTJjM2Q3MDU0ZGI4MTQzZTJiMDgxYTM4MTZlZDA4MDRjYTUwOTlhZTVmZWNlODNkNWMyYzM3ODNiMTk4OGI0YjQ2ZGM5NGU1NTU4N2ExMDdlYTE1NDZiZjIyZDI4YTA5N2Y2NTJhNDA2NmRjMjk2NTI2OTA2OWFmMmY1MTc2YmI4Y2U5Y2E2ZDExZjk2NzU3ZjAzMjA0Zjc1NjcwMzU4N2QwMGFkNDI0Nzk2YzkyZmM3YWViNmY0OTQ0MzE5OTllZGEzMDk5MGU0ZjU3NzM2MzJlZDI1OGZlMDI3NjY3MzU5OWRhNmZjZTM1Y2RhZDc3MjZhMGJiMDI0Y2FkOTk2Yjg4ZTBjYjk4ODU0Y2ViNWMwYjZlYzc0OGQ5ZjljZTZhNmNkNDM3ODU4YmFjYjgxNDYxOGEyNzJmZjNhNDE1YzZlMDdmM2RiMDk4ODc3N2ZkZWM4NDVhOTdiZjdkMTAyZGQwMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAyNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMyMDIxNDU2NGQ1NTQwMjVhZjU5OWUzMjcwNzliMjcyMGVmMDBkZjM3Y2ZiN2MzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDA0NjA5OGRjNWYyYjk5ZTNiYzJlZDY2NDJkN2YwYTYxZWZhYmMxNWMzOGM3NjMzM2JjY2NlZWVlMzY5YTRmNGE1YmRkYThlYTU5MjY0MTI0ZTQyOWYwODYzMjY4M2RkYmExN2JiZjI2MmQ4MmI2YmVmYTNiNGUxNDgwMzc2YThjN2YzYzdkN2UyYTY3NzliYmYxODI2MmFhODU3ZGU4YzIwYTEyYjZhMmNlOGU0ZDdmMzFkZDFiMTk1MzkyY2Y2MTg1YWZjZTM0YWZlMDU4OTYwNTdiMzZlOWIxNzFiNmM2N2VkN2MyMjg2Y2JmYTgzZmY4YTE2N2M3YmM3MTA5YWVlN2Q3ZTE5MDliZDM4NGZiZmM2MTkzOGVmY2E1MWM4OTkzYzcxZGIzMTc3MzBmMTZlN2U3NzY4NjdhZTRmZGM1NjJkNmYxNWRlNTg1ZTdiOTRlZjQ5NmEzNjc2MzY3YTJjYmFhYjdiNjM2NjQ4YjAwNzZiYWQ1Y2RmMWUwOTc0MGVjNmE0NTFiZmY1MzRlZmEyMTUwOWYzYmE3N2I4MTAxYjkxZWE3ZTU1ZGRiZmUxNDAxNTE3MDY3ZDdiMDFhMmEwODc5ZjA4ODVjODk0YTg3Y2ZiNjhjNGQ3ZWU4OTA2MDQ4ODFhZWI5N2MyMmQxZjMzN2VmOTIzZTAzNWE2NDAwMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMzMDIxNDYyNDc3Mjk4NzU5ZThlMDQ3MThhZTU2MzE1NWYzNTIzY2ZiODRjZGIzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDZkMmNiYjM3ZmQxMjk1N2U1YTc0ODBjZTA0MzVlOGVmNjA3N2RlZjA4ZmYyNzA4NDRkZTI1MTZhNDc0MmYyMTFkOGM3NDY5MGJjMDk0OGUwOGEyOTZhYmJhOTI4NWY2YmIzMDViOTViN2Y5NDA4Y2U0NGU4Mzg4MGM3MTk0NDQ2NzJlYzk5NzQ2YmE3OGNjNGJkZTQ3NTMxOWQwMWJkZTc3YzQ5ZDU4ZDE2ZDNiMmU5MWMyZTYxZTgzMDNjYTNkN2VkYTM3OTdmZDhiMzVjYTcyYmIxNGIxNWEyNGI1NmJiNzBkYzEzNDg0NTY1ODA4MTEwZmY1ZGI1OGM1NmY3YTA0MzU2MDdlM2MzNTJmYmY0ZjU1MTA2ZjI5ODBmZDNjZDQyMzk3ZGJmNzEzN2VlN2YxZTMyY2Q4MGEzYjdhYjEyYjQ2YzE2OTIyMDI3OGQ3NzE3Yjc4YTNjNDVkNjM5NWExMzBhOGI1ODg0MWNiYzI5MGU0ZjgxN2RlM2E0ZmUxNmVjZDA3N2NhMzNhMGFhMjVlMjM1Y2M3ZjY2NTVhODBiYThhZWVjODc5MDViYjJhNzU0NTliN2JjYzVhMTMzZjI5OTM0OTNiNDFmZmNmNjNjZDdhMzkxZTNlNmY3ODA5NGNhNDQyYzgwMTQ0NDAzY2IwYTVmMDBiZmM2MWFlODgwIgogCiBQS0NTNyBQYXJzZSBGYWlsdXJlIEludmFsaWQgQVNOMTogQ2hhbmdlIHRhZyAwYyB0byAwMiAjNjc1LjAKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBwa2NzN19hc24xX2ZhaWw6IjMwODIwNDlkMDYwOTJhODY0ODg2ZjcwZDAxMDcwMmEwODIwNDhlMzA4MjA0OGEwMjAxMDEzMTBmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwYjA2MDkyYTg2NDg4NmY3MGQwMTA3MDEzMTgyMDQ2NTMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTAyMTQ3YmRlZGRkMjQ0NGNkMWNkZmU1YzQxYTgxMDJjODliN2RmMmU2Y2JmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDA1YmVjZDg3MTk1YzFkZWZmOTBjMjRjOTEyNjliNTViM2YwNjliYzIyNWMzMjZjMzE0YzFhNTE3ODZmZmUxNGM4MzBiZTRlNGJjNzNjYmEzNmM5NzY3N2I0NDE2ODI3OWJlOTFlN2NkZjdjMTkzODZhZTIxODYyNzE5ZDEzYTNhMGZmZjA4MDNkNDYwOTYyZjJjZGE4MzcxNDg0ODczMjUyYzNkNzA1NGRiODE0M2UyYjA4MWEzODE2ZWQwODA0Y2E1MDk5YWU1ZmVjZTgzZDVjMmMzNzgzYjE5ODhiNGI0NmRjOTRlNTU1ODdhMTA3ZWExNTQ2YmYyMmQyOGEwOTdmNjUyYTQwNjZkYzI5NjUyNjkwNjlhZjJmNTE3NmJiOGNlOWNhNmQxMWY5Njc1N2YwMzIwNGY3NTY3MDM1ODdkMDBhZDQyNDc5NmM5MmZjN2FlYjZmNDk0NDMxOTk5ZWRhMzA5OTBlNGY1NzczNjMyZWQyNThmZTAyNzY2NzM1OTlkYTZmY2UzNWNkYWQ3NzI2YTBiYjAyNGNhZDk5NmI4OGUwY2I5ODg1NGNlYjVjMGI2ZWM3NDhkOWY5Y2U2YTZjZDQzNzg1OGJhY2I4MTQ2MThhMjcyZmYzYTQxNWM2ZTA3ZjNkYjA5ODg3NzdmZGVjODQ1YTk3YmY3ZDEwMmRkMDMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTAyMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMjAyMTQ1NjRkNTU0MDI1YWY1OTllMzI3MDc5YjI3MjBlZjAwZGYzN2NmYjdjMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDAwNDYwOThkYzVmMmI5OWUzYmMyZWQ2NjQyZDdmMGE2MWVmYWJjMTVjMzhjNzYzMzNiY2NjZWVlZTM2OWE0ZjRhNWJkZGE4ZWE1OTI2NDEyNGU0MjlmMDg2MzI2ODNkZGJhMTdiYmYyNjJkODJiNmJlZmEzYjRlMTQ4MDM3NmE4YzdmM2M3ZDdlMmE2Nzc5YmJmMTgyNjJhYTg1N2RlOGMyMGExMmI2YTJjZThlNGQ3ZjMxZGQxYjE5NTM5MmNmNjE4NWFmY2UzNGFmZTA1ODk2MDU3YjM2ZTliMTcxYjZjNjdlZDdjMjI4NmNiZmE4M2ZmOGExNjdjN2JjNzEwOWFlZTdkN2UxOTA5YmQzODRmYmZjNjE5MzhlZmNhNTFjODk5M2M3MWRiMzE3NzMwZjE2ZTdlNzc2ODY3YWU0ZmRjNTYyZDZmMTVkZTU4NWU3Yjk0ZWY0OTZhMzY3NjM2N2EyY2JhYWI3YjYzNjY0OGIwMDc2YmFkNWNkZjFlMDk3NDBlYzZhNDUxYmZmNTM0ZWZhMjE1MDlmM2JhNzdiODEwMWI5MWVhN2U1NWRkYmZlMTQwMTUxNzA2N2Q3YjAxYTJhMDg3OWYwODg1Yzg5NGE4N2NmYjY4YzRkN2VlODkwNjA0ODgxYWViOTdjMjJkMWYzMzdlZjkyM2UwMzVhNjQwMDMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMzAyMTQ2MjQ3NzI5ODc1OWU4ZTA0NzE4YWU1NjMxNTVmMzUyM2NmYjg0Y2RiMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDA2ZDJjYmIzN2ZkMTI5NTdlNWE3NDgwY2UwNDM1ZThlZjYwNzdkZWYwOGZmMjcwODQ0ZGUyNTE2YTQ3NDJmMjExZDhjNzQ2OTBiYzA5NDhlMDhhMjk2YWJiYTkyODVmNmJiMzA1Yjk1YjdmOTQwOGNlNDRlODM4ODBjNzE5NDQ0NjcyZWM5OTc0NmJhNzhjYzRiZGU0NzUzMTlkMDFiZGU3N2M0OWQ1OGQxNmQzYjJlOTFjMmU2MWU4MzAzY2EzZDdlZGEzNzk3ZmQ4YjM1Y2E3MmJiMTRiMTVhMjRiNTZiYjcwZGMxMzQ4NDU2NTgwODExMGZmNWRiNThjNTZmN2EwNDM1NjA3ZTNjMzUyZmJmNGY1NTEwNmYyOTgwZmQzY2Q0MjM5N2RiZjcxMzdlZTdmMWUzMmNkODBhM2I3YWIxMmI0NmMxNjkyMjAyNzhkNzcxN2I3OGEzYzQ1ZDYzOTVhMTMwYThiNTg4NDFjYmMyOTBlNGY4MTdkZTNhNGZlMTZlY2QwNzdjYTMzYTBhYTI1ZTIzNWNjN2Y2NjU1YTgwYmE4YWVlYzg3OTA1YmIyYTc1NDU5YjdiY2M1YTEzM2YyOTkzNDkzYjQxZmZjZjYzY2Q3YTM5MWUzZTZmNzgwOTRjYTQ0MmM4MDE0NDQwM2NiMGE1ZjAwYmZjNjFhZTg4MCIKIAogUEtDUzcgUGFyc2UgRmFpbHVyZSBJbnZhbGlkIEFTTjE6IENoYW5nZSBsZW5ndGggZnJvbSA1IHRvIDYgIzY3Ni4wCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NgogcGtjczdfYXNuMV9mYWlsOiIzMDgyMDQ5ZDA2MDkyYTg2NDg4NmY3MGQwMTA3MDJhMDgyMDQ4ZTMwODIwNDhhMDIwMTAxMzEwZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGIwNjA5MmE4NjQ4ODZmNzBkMDEwNzAxMzE4MjA0NjUzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwNWJlY2Q4NzE5NWMxZGVmZjkwYzI0YzkxMjY5YjU1YjNmMDY5YmMyMjVjMzI2YzMxNGMxYTUxNzg2ZmZlMTRjODMwYmU0ZTRiYzczY2JhMzZjOTc2NzdiNDQxNjgyNzliZTkxZTdjZGY3YzE5Mzg2YWUyMTg2MjcxOWQxM2EzYTBmZmYwODAzZDQ2MDk2MmYyY2RhODM3MTQ4NDg3MzI1MmMzZDcwNTRkYjgxNDNlMmIwODFhMzgxNmVkMDgwNGNhNTA5OWFlNWZlY2U4M2Q1YzJjMzc4M2IxOTg4YjRiNDZkYzk0ZTU1NTg3YTEwN2VhMTU0NmJmMjJkMjhhMDk3ZjY1MmE0MDY2ZGMyOTY1MjY5MDY5YWYyZjUxNzZiYjhjZTljYTZkMTFmOTY3NTdmMDMyMDRmNzU2NzAzNTg3ZDAwYWQ0MjQ3OTZjOTJmYzdhZWI2ZjQ5NDQzMTk5OWVkYTMwOTkwZTRmNTc3MzYzMmVkMjU4ZmUwMjc2NjczNTk5ZGE2ZmNlMzVjZGFkNzcyNmEwYmIwMjRjYWQ5OTZiODhlMGNiOTg4NTRjZWI1YzBiNmVjNzQ4ZDlmOWNlNmE2Y2Q0Mzc4NThiYWNiODE0NjE4YTI3MmZmM2E0MTVjNmUwN2YzZGIwOTg4Nzc3ZmRlYzg0NWE5N2JmN2QxMDJkZDAzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA2NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzIwMjE0NTY0ZDU1NDAyNWFmNTk5ZTMyNzA3OWIyNzIwZWYwMGRmMzdjZmI3YzMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwMDQ2MDk4ZGM1ZjJiOTllM2JjMmVkNjY0MmQ3ZjBhNjFlZmFiYzE1YzM4Yzc2MzMzYmNjY2VlZWUzNjlhNGY0YTViZGRhOGVhNTkyNjQxMjRlNDI5ZjA4NjMyNjgzZGRiYTE3YmJmMjYyZDgyYjZiZWZhM2I0ZTE0ODAzNzZhOGM3ZjNjN2Q3ZTJhNjc3OWJiZjE4MjYyYWE4NTdkZThjMjBhMTJiNmEyY2U4ZTRkN2YzMWRkMWIxOTUzOTJjZjYxODVhZmNlMzRhZmUwNTg5NjA1N2IzNmU5YjE3MWI2YzY3ZWQ3YzIyODZjYmZhODNmZjhhMTY3YzdiYzcxMDlhZWU3ZDdlMTkwOWJkMzg0ZmJmYzYxOTM4ZWZjYTUxYzg5OTNjNzFkYjMxNzczMGYxNmU3ZTc3Njg2N2FlNGZkYzU2MmQ2ZjE1ZGU1ODVlN2I5NGVmNDk2YTM2NzYzNjdhMmNiYWFiN2I2MzY2NDhiMDA3NmJhZDVjZGYxZTA5NzQwZWM2YTQ1MWJmZjUzNGVmYTIxNTA5ZjNiYTc3YjgxMDFiOTFlYTdlNTVkZGJmZTE0MDE1MTcwNjdkN2IwMWEyYTA4NzlmMDg4NWM4OTRhODdjZmI2OGM0ZDdlZTg5MDYwNDg4MWFlYjk3YzIyZDFmMzM3ZWY5MjNlMDM1YTY0MDAzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzMwMjE0NjI0NzcyOTg3NTllOGUwNDcxOGFlNTYzMTU1ZjM1MjNjZmI4NGNkYjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwNmQyY2JiMzdmZDEyOTU3ZTVhNzQ4MGNlMDQzNWU4ZWY2MDc3ZGVmMDhmZjI3MDg0NGRlMjUxNmE0NzQyZjIxMWQ4Yzc0NjkwYmMwOTQ4ZTA4YTI5NmFiYmE5Mjg1ZjZiYjMwNWI5NWI3Zjk0MDhjZTQ0ZTgzODgwYzcxOTQ0NDY3MmVjOTk3NDZiYTc4Y2M0YmRlNDc1MzE5ZDAxYmRlNzdjNDlkNThkMTZkM2IyZTkxYzJlNjFlODMwM2NhM2Q3ZWRhMzc5N2ZkOGIzNWNhNzJiYjE0YjE1YTI0YjU2YmI3MGRjMTM0ODQ1NjU4MDgxMTBmZjVkYjU4YzU2ZjdhMDQzNTYwN2UzYzM1MmZiZjRmNTUxMDZmMjk4MGZkM2NkNDIzOTdkYmY3MTM3ZWU3ZjFlMzJjZDgwYTNiN2FiMTJiNDZjMTY5MjIwMjc4ZDc3MTdiNzhhM2M0NWQ2Mzk1YTEzMGE4YjU4ODQxY2JjMjkwZTRmODE3ZGUzYTRmZTE2ZWNkMDc3Y2EzM2EwYWEyNWUyMzVjYzdmNjY1NWE4MGJhOGFlZWM4NzkwNWJiMmE3NTQ1OWI3YmNjNWExMzNmMjk5MzQ5M2I0MWZmY2Y2M2NkN2EzOTFlM2U2Zjc4MDk0Y2E0NDJjODAxNDQ0MDNjYjBhNWYwMGJmYzYxYWU4ODAiCiAKIFBLQ1M3IFBhcnNlIEZhaWx1cmUgSW52YWxpZCBBU04xOiBDaGFuZ2UgbGVuZ3RoIGZyb20gNSB0byA0ICM2NzcuMAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHBrY3M3X2FzbjFfZmFpbDoiMzA4MjA0OWQwNjA5MmE4NjQ4ODZmNzBkMDEwNzAyYTA4MjA0OGUzMDgyMDQ4YTAyMDEwMTMxMGYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBiMDYwOTJhODY0ODg2ZjcwZDAxMDcwMTMxODIwNDY1MzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDViZWNkODcxOTVjMWRlZmY5MGMyNGM5MTI2OWI1NWIzZjA2OWJjMjI1YzMyNmMzMTRjMWE1MTc4NmZmZTE0YzgzMGJlNGU0YmM3M2NiYTM2Yzk3Njc3YjQ0MTY4Mjc5YmU5MWU3Y2RmN2MxOTM4NmFlMjE4NjI3MTlkMTNhM2EwZmZmMDgwM2Q0NjA5NjJmMmNkYTgzNzE0ODQ4NzMyNTJjM2Q3MDU0ZGI4MTQzZTJiMDgxYTM4MTZlZDA4MDRjYTUwOTlhZTVmZWNlODNkNWMyYzM3ODNiMTk4OGI0YjQ2ZGM5NGU1NTU4N2ExMDdlYTE1NDZiZjIyZDI4YTA5N2Y2NTJhNDA2NmRjMjk2NTI2OTA2OWFmMmY1MTc2YmI4Y2U5Y2E2ZDExZjk2NzU3ZjAzMjA0Zjc1NjcwMzU4N2QwMGFkNDI0Nzk2YzkyZmM3YWViNmY0OTQ0MzE5OTllZGEzMDk5MGU0ZjU3NzM2MzJlZDI1OGZlMDI3NjY3MzU5OWRhNmZjZTM1Y2RhZDc3MjZhMGJiMDI0Y2FkOTk2Yjg4ZTBjYjk4ODU0Y2ViNWMwYjZlYzc0OGQ5ZjljZTZhNmNkNDM3ODU4YmFjYjgxNDYxOGEyNzJmZjNhNDE1YzZlMDdmM2RiMDk4ODc3N2ZkZWM4NDVhOTdiZjdkMTAyZGQwMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNDUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMyMDIxNDU2NGQ1NTQwMjVhZjU5OWUzMjcwNzliMjcyMGVmMDBkZjM3Y2ZiN2MzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDA0NjA5OGRjNWYyYjk5ZTNiYzJlZDY2NDJkN2YwYTYxZWZhYmMxNWMzOGM3NjMzM2JjY2NlZWVlMzY5YTRmNGE1YmRkYThlYTU5MjY0MTI0ZTQyOWYwODYzMjY4M2RkYmExN2JiZjI2MmQ4MmI2YmVmYTNiNGUxNDgwMzc2YThjN2YzYzdkN2UyYTY3NzliYmYxODI2MmFhODU3ZGU4YzIwYTEyYjZhMmNlOGU0ZDdmMzFkZDFiMTk1MzkyY2Y2MTg1YWZjZTM0YWZlMDU4OTYwNTdiMzZlOWIxNzFiNmM2N2VkN2MyMjg2Y2JmYTgzZmY4YTE2N2M3YmM3MTA5YWVlN2Q3ZTE5MDliZDM4NGZiZmM2MTkzOGVmY2E1MWM4OTkzYzcxZGIzMTc3MzBmMTZlN2U3NzY4NjdhZTRmZGM1NjJkNmYxNWRlNTg1ZTdiOTRlZjQ5NmEzNjc2MzY3YTJjYmFhYjdiNjM2NjQ4YjAwNzZiYWQ1Y2RmMWUwOTc0MGVjNmE0NTFiZmY1MzRlZmEyMTUwOWYzYmE3N2I4MTAxYjkxZWE3ZTU1ZGRiZmUxNDAxNTE3MDY3ZDdiMDFhMmEwODc5ZjA4ODVjODk0YTg3Y2ZiNjhjNGQ3ZWU4OTA2MDQ4ODFhZWI5N2MyMmQxZjMzN2VmOTIzZTAzNWE2NDAwMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMzMDIxNDYyNDc3Mjk4NzU5ZThlMDQ3MThhZTU2MzE1NWYzNTIzY2ZiODRjZGIzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDZkMmNiYjM3ZmQxMjk1N2U1YTc0ODBjZTA0MzVlOGVmNjA3N2RlZjA4ZmYyNzA4NDRkZTI1MTZhNDc0MmYyMTFkOGM3NDY5MGJjMDk0OGUwOGEyOTZhYmJhOTI4NWY2YmIzMDViOTViN2Y5NDA4Y2U0NGU4Mzg4MGM3MTk0NDQ2NzJlYzk5NzQ2YmE3OGNjNGJkZTQ3NTMxOWQwMWJkZTc3YzQ5ZDU4ZDE2ZDNiMmU5MWMyZTYxZTgzMDNjYTNkN2VkYTM3OTdmZDhiMzVjYTcyYmIxNGIxNWEyNGI1NmJiNzBkYzEzNDg0NTY1ODA4MTEwZmY1ZGI1OGM1NmY3YTA0MzU2MDdlM2MzNTJmYmY0ZjU1MTA2ZjI5ODBmZDNjZDQyMzk3ZGJmNzEzN2VlN2YxZTMyY2Q4MGEzYjdhYjEyYjQ2YzE2OTIyMDI3OGQ3NzE3Yjc4YTNjNDVkNjM5NWExMzBhOGI1ODg0MWNiYzI5MGU0ZjgxN2RlM2E0ZmUxNmVjZDA3N2NhMzNhMGFhMjVlMjM1Y2M3ZjY2NTVhODBiYThhZWVjODc5MDViYjJhNzU0NTliN2JjYzVhMTMzZjI5OTM0OTNiNDFmZmNmNjNjZDdhMzkxZTNlNmY3ODA5NGNhNDQyYzgwMTQ0NDAzY2IwYTVmMDBiZmM2MWFlODgwIgogCiBQS0NTNyBQYXJzZSBGYWlsdXJlIEludmFsaWQgQVNOMTogQ2hhbmdlIHRhZyAzMSB0byAwMiAjNjc4LjAKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBwa2NzN19hc24xX2ZhaWw6IjMwODIwNDlkMDYwOTJhODY0ODg2ZjcwZDAxMDcwMmEwODIwNDhlMzA4MjA0OGEwMjAxMDEzMTBmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwYjA2MDkyYTg2NDg4NmY3MGQwMTA3MDEzMTgyMDQ2NTMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTAyMTQ3YmRlZGRkMjQ0NGNkMWNkZmU1YzQxYTgxMDJjODliN2RmMmU2Y2JmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDA1YmVjZDg3MTk1YzFkZWZmOTBjMjRjOTEyNjliNTViM2YwNjliYzIyNWMzMjZjMzE0YzFhNTE3ODZmZmUxNGM4MzBiZTRlNGJjNzNjYmEzNmM5NzY3N2I0NDE2ODI3OWJlOTFlN2NkZjdjMTkzODZhZTIxODYyNzE5ZDEzYTNhMGZmZjA4MDNkNDYwOTYyZjJjZGE4MzcxNDg0ODczMjUyYzNkNzA1NGRiODE0M2UyYjA4MWEzODE2ZWQwODA0Y2E1MDk5YWU1ZmVjZTgzZDVjMmMzNzgzYjE5ODhiNGI0NmRjOTRlNTU1ODdhMTA3ZWExNTQ2YmYyMmQyOGEwOTdmNjUyYTQwNjZkYzI5NjUyNjkwNjlhZjJmNTE3NmJiOGNlOWNhNmQxMWY5Njc1N2YwMzIwNGY3NTY3MDM1ODdkMDBhZDQyNDc5NmM5MmZjN2FlYjZmNDk0NDMxOTk5ZWRhMzA5OTBlNGY1NzczNjMyZWQyNThmZTAyNzY2NzM1OTlkYTZmY2UzNWNkYWQ3NzI2YTBiYjAyNGNhZDk5NmI4OGUwY2I5ODg1NGNlYjVjMGI2ZWM3NDhkOWY5Y2U2YTZjZDQzNzg1OGJhY2I4MTQ2MThhMjcyZmYzYTQxNWM2ZTA3ZjNkYjA5ODg3NzdmZGVjODQ1YTk3YmY3ZDEwMmRkMDMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MDIxNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMjAyMTQ1NjRkNTU0MDI1YWY1OTllMzI3MDc5YjI3MjBlZjAwZGYzN2NmYjdjMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDAwNDYwOThkYzVmMmI5OWUzYmMyZWQ2NjQyZDdmMGE2MWVmYWJjMTVjMzhjNzYzMzNiY2NjZWVlZTM2OWE0ZjRhNWJkZGE4ZWE1OTI2NDEyNGU0MjlmMDg2MzI2ODNkZGJhMTdiYmYyNjJkODJiNmJlZmEzYjRlMTQ4MDM3NmE4YzdmM2M3ZDdlMmE2Nzc5YmJmMTgyNjJhYTg1N2RlOGMyMGExMmI2YTJjZThlNGQ3ZjMxZGQxYjE5NTM5MmNmNjE4NWFmY2UzNGFmZTA1ODk2MDU3YjM2ZTliMTcxYjZjNjdlZDdjMjI4NmNiZmE4M2ZmOGExNjdjN2JjNzEwOWFlZTdkN2UxOTA5YmQzODRmYmZjNjE5MzhlZmNhNTFjODk5M2M3MWRiMzE3NzMwZjE2ZTdlNzc2ODY3YWU0ZmRjNTYyZDZmMTVkZTU4NWU3Yjk0ZWY0OTZhMzY3NjM2N2EyY2JhYWI3YjYzNjY0OGIwMDc2YmFkNWNkZjFlMDk3NDBlYzZhNDUxYmZmNTM0ZWZhMjE1MDlmM2JhNzdiODEwMWI5MWVhN2U1NWRkYmZlMTQwMTUxNzA2N2Q3YjAxYTJhMDg3OWYwODg1Yzg5NGE4N2NmYjY4YzRkN2VlODkwNjA0ODgxYWViOTdjMjJkMWYzMzdlZjkyM2UwMzVhNjQwMDMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMzAyMTQ2MjQ3NzI5ODc1OWU4ZTA0NzE4YWU1NjMxNTVmMzUyM2NmYjg0Y2RiMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDA2ZDJjYmIzN2ZkMTI5NTdlNWE3NDgwY2UwNDM1ZThlZjYwNzdkZWYwOGZmMjcwODQ0ZGUyNTE2YTQ3NDJmMjExZDhjNzQ2OTBiYzA5NDhlMDhhMjk2YWJiYTkyODVmNmJiMzA1Yjk1YjdmOTQwOGNlNDRlODM4ODBjNzE5NDQ0NjcyZWM5OTc0NmJhNzhjYzRiZGU0NzUzMTlkMDFiZGU3N2M0OWQ1OGQxNmQzYjJlOTFjMmU2MWU4MzAzY2EzZDdlZGEzNzk3ZmQ4YjM1Y2E3MmJiMTRiMTVhMjRiNTZiYjcwZGMxMzQ4NDU2NTgwODExMGZmNWRiNThjNTZmN2EwNDM1NjA3ZTNjMzUyZmJmNGY1NTEwNmYyOTgwZmQzY2Q0MjM5N2RiZjcxMzdlZTdmMWUzMmNkODBhM2I3YWIxMmI0NmMxNjkyMjAyNzhkNzcxN2I3OGEzYzQ1ZDYzOTVhMTMwYThiNTg4NDFjYmMyOTBlNGY4MTdkZTNhNGZlMTZlY2QwNzdjYTMzYTBhYTI1ZTIzNWNjN2Y2NjU1YTgwYmE4YWVlYzg3OTA1YmIyYTc1NDU5YjdiY2M1YTEzM2YyOTkzNDkzYjQxZmZjZjYzY2Q3YTM5MWUzZTZmNzgwOTRjYTQ0MmM4MDE0NDQwM2NiMGE1ZjAwYmZjNjFhZTg4MCIKIAogUEtDUzcgUGFyc2UgRmFpbHVyZSBJbnZhbGlkIEFTTjE6IENoYW5nZSBsZW5ndGggZnJvbSAyMSB0byAyMiAjNjc5LjAKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBwa2NzN19hc24xX2ZhaWw6IjMwODIwNDlkMDYwOTJhODY0ODg2ZjcwZDAxMDcwMmEwODIwNDhlMzA4MjA0OGEwMjAxMDEzMTBmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwYjA2MDkyYTg2NDg4NmY3MGQwMTA3MDEzMTgyMDQ2NTMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTAyMTQ3YmRlZGRkMjQ0NGNkMWNkZmU1YzQxYTgxMDJjODliN2RmMmU2Y2JmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDA1YmVjZDg3MTk1YzFkZWZmOTBjMjRjOTEyNjliNTViM2YwNjliYzIyNWMzMjZjMzE0YzFhNTE3ODZmZmUxNGM4MzBiZTRlNGJjNzNjYmEzNmM5NzY3N2I0NDE2ODI3OWJlOTFlN2NkZjdjMTkzODZhZTIxODYyNzE5ZDEzYTNhMGZmZjA4MDNkNDYwOTYyZjJjZGE4MzcxNDg0ODczMjUyYzNkNzA1NGRiODE0M2UyYjA4MWEzODE2ZWQwODA0Y2E1MDk5YWU1ZmVjZTgzZDVjMmMzNzgzYjE5ODhiNGI0NmRjOTRlNTU1ODdhMTA3ZWExNTQ2YmYyMmQyOGEwOTdmNjUyYTQwNjZkYzI5NjUyNjkwNjlhZjJmNTE3NmJiOGNlOWNhNmQxMWY5Njc1N2YwMzIwNGY3NTY3MDM1ODdkMDBhZDQyNDc5NmM5MmZjN2FlYjZmNDk0NDMxOTk5ZWRhMzA5OTBlNGY1NzczNjMyZWQyNThmZTAyNzY2NzM1OTlkYTZmY2UzNWNkYWQ3NzI2YTBiYjAyNGNhZDk5NmI4OGUwY2I5ODg1NGNlYjVjMGI2ZWM3NDhkOWY5Y2U2YTZjZDQzNzg1OGJhY2I4MTQ2MThhMjcyZmYzYTQxNWM2ZTA3ZjNkYjA5ODg3NzdmZGVjODQ1YTk3YmY3ZDEwMmRkMDMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNjMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMjAyMTQ1NjRkNTU0MDI1YWY1OTllMzI3MDc5YjI3MjBlZjAwZGYzN2NmYjdjMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDAwNDYwOThkYzVmMmI5OWUzYmMyZWQ2NjQyZDdmMGE2MWVmYWJjMTVjMzhjNzYzMzNiY2NjZWVlZTM2OWE0ZjRhNWJkZGE4ZWE1OTI2NDEyNGU0MjlmMDg2MzI2ODNkZGJhMTdiYmYyNjJkODJiNmJlZmEzYjRlMTQ4MDM3NmE4YzdmM2M3ZDdlMmE2Nzc5YmJmMTgyNjJhYTg1N2RlOGMyMGExMmI2YTJjZThlNGQ3ZjMxZGQxYjE5NTM5MmNmNjE4NWFmY2UzNGFmZTA1ODk2MDU3YjM2ZTliMTcxYjZjNjdlZDdjMjI4NmNiZmE4M2ZmOGExNjdjN2JjNzEwOWFlZTdkN2UxOTA5YmQzODRmYmZjNjE5MzhlZmNhNTFjODk5M2M3MWRiMzE3NzMwZjE2ZTdlNzc2ODY3YWU0ZmRjNTYyZDZmMTVkZTU4NWU3Yjk0ZWY0OTZhMzY3NjM2N2EyY2JhYWI3YjYzNjY0OGIwMDc2YmFkNWNkZjFlMDk3NDBlYzZhNDUxYmZmNTM0ZWZhMjE1MDlmM2JhNzdiODEwMWI5MWVhN2U1NWRkYmZlMTQwMTUxNzA2N2Q3YjAxYTJhMDg3OWYwODg1Yzg5NGE4N2NmYjY4YzRkN2VlODkwNjA0ODgxYWViOTdjMjJkMWYzMzdlZjkyM2UwMzVhNjQwMDMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMzAyMTQ2MjQ3NzI5ODc1OWU4ZTA0NzE4YWU1NjMxNTVmMzUyM2NmYjg0Y2RiMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDA2ZDJjYmIzN2ZkMTI5NTdlNWE3NDgwY2UwNDM1ZThlZjYwNzdkZWYwOGZmMjcwODQ0ZGUyNTE2YTQ3NDJmMjExZDhjNzQ2OTBiYzA5NDhlMDhhMjk2YWJiYTkyODVmNmJiMzA1Yjk1YjdmOTQwOGNlNDRlODM4ODBjNzE5NDQ0NjcyZWM5OTc0NmJhNzhjYzRiZGU0NzUzMTlkMDFiZGU3N2M0OWQ1OGQxNmQzYjJlOTFjMmU2MWU4MzAzY2EzZDdlZGEzNzk3ZmQ4YjM1Y2E3MmJiMTRiMTVhMjRiNTZiYjcwZGMxMzQ4NDU2NTgwODExMGZmNWRiNThjNTZmN2EwNDM1NjA3ZTNjMzUyZmJmNGY1NTEwNmYyOTgwZmQzY2Q0MjM5N2RiZjcxMzdlZTdmMWUzMmNkODBhM2I3YWIxMmI0NmMxNjkyMjAyNzhkNzcxN2I3OGEzYzQ1ZDYzOTVhMTMwYThiNTg4NDFjYmMyOTBlNGY4MTdkZTNhNGZlMTZlY2QwNzdjYTMzYTBhYTI1ZTIzNWNjN2Y2NjU1YTgwYmE4YWVlYzg3OTA1YmIyYTc1NDU5YjdiY2M1YTEzM2YyOTkzNDkzYjQxZmZjZjYzY2Q3YTM5MWUzZTZmNzgwOTRjYTQ0MmM4MDE0NDQwM2NiMGE1ZjAwYmZjNjFhZTg4MCIKIAogUEtDUzcgUGFyc2UgRmFpbHVyZSBJbnZhbGlkIEFTTjE6IENoYW5nZSBjb250ZW50cyBvZiB0YWcgMzEgdG8gY29udGFpbiBvbmUgdW5hY2NvdW50ZWQgZXh0cmEgYnl0ZSAjNjgwLjAKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBwa2NzN19hc24xX2ZhaWw6IjMwODIwNDlkMDYwOTJhODY0ODg2ZjcwZDAxMDcwMmEwODIwNDhlMzA4MjA0OGEwMjAxMDEzMTBmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwYjA2MDkyYTg2NDg4NmY3MGQwMTA3MDEzMTgyMDQ2NTMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTAyMTQ3YmRlZGRkMjQ0NGNkMWNkZmU1YzQxYTgxMDJjODliN2RmMmU2Y2JmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDA1YmVjZDg3MTk1YzFkZWZmOTBjMjRjOTEyNjliNTViM2YwNjliYzIyNWMzMjZjMzE0YzFhNTE3ODZmZmUxNGM4MzBiZTRlNGJjNzNjYmEzNmM5NzY3N2I0NDE2ODI3OWJlOTFlN2NkZjdjMTkzODZhZTIxODYyNzE5ZDEzYTNhMGZmZjA4MDNkNDYwOTYyZjJjZGE4MzcxNDg0ODczMjUyYzNkNzA1NGRiODE0M2UyYjA4MWEzODE2ZWQwODA0Y2E1MDk5YWU1ZmVjZTgzZDVjMmMzNzgzYjE5ODhiNGI0NmRjOTRlNTU1ODdhMTA3ZWExNTQ2YmYyMmQyOGEwOTdmNjUyYTQwNjZkYzI5NjUyNjkwNjlhZjJmNTE3NmJiOGNlOWNhNmQxMWY5Njc1N2YwMzIwNGY3NTY3MDM1ODdkMDBhZDQyNDc5NmM5MmZjN2FlYjZmNDk0NDMxOTk5ZWRhMzA5OTBlNGY1NzczNjMyZWQyNThmZTAyNzY2NzM1OTlkYTZmY2UzNWNkYWQ3NzI2YTBiYjAyNGNhZDk5NmI4OGUwY2I5ODg1NGNlYjVjMGI2ZWM3NDhkOWY5Y2U2YTZjZDQzNzg1OGJhY2I4MTQ2MThhMjcyZmYzYTQxNWM2ZTA3ZjNkYjA5ODg3NzdmZGVjODQ1YTk3YmY3ZDEwMmRkMDMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNjMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMjAwMDIxNDU2NGQ1NTQwMjVhZjU5OWUzMjcwNzliMjcyMGVmMDBkZjM3Y2ZiN2MzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDA0NjA5OGRjNWYyYjk5ZTNiYzJlZDY2NDJkN2YwYTYxZWZhYmMxNWMzOGM3NjMzM2JjY2NlZWVlMzY5YTRmNGE1YmRkYThlYTU5MjY0MTI0ZTQyOWYwODYzMjY4M2RkYmExN2JiZjI2MmQ4MmI2YmVmYTNiNGUxNDgwMzc2YThjN2YzYzdkN2UyYTY3NzliYmYxODI2MmFhODU3ZGU4YzIwYTEyYjZhMmNlOGU0ZDdmMzFkZDFiMTk1MzkyY2Y2MTg1YWZjZTM0YWZlMDU4OTYwNTdiMzZlOWIxNzFiNmM2N2VkN2MyMjg2Y2JmYTgzZmY4YTE2N2M3YmM3MTA5YWVlN2Q3ZTE5MDliZDM4NGZiZmM2MTkzOGVmY2E1MWM4OTkzYzcxZGIzMTc3MzBmMTZlN2U3NzY4NjdhZTRmZGM1NjJkNmYxNWRlNTg1ZTdiOTRlZjQ5NmEzNjc2MzY3YTJjYmFhYjdiNjM2NjQ4YjAwNzZiYWQ1Y2RmMWUwOTc0MGVjNmE0NTFiZmY1MzRlZmEyMTUwOWYzYmE3N2I4MTAxYjkxZWE3ZTU1ZGRiZmUxNDAxNTE3MDY3ZDdiMDFhMmEwODc5ZjA4ODVjODk0YTg3Y2ZiNjhjNGQ3ZWU4OTA2MDQ4ODFhZWI5N2MyMmQxZjMzN2VmOTIzZTAzNWE2NDAwMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMzMDIxNDYyNDc3Mjk4NzU5ZThlMDQ3MThhZTU2MzE1NWYzNTIzY2ZiODRjZGIzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDZkMmNiYjM3ZmQxMjk1N2U1YTc0ODBjZTA0MzVlOGVmNjA3N2RlZjA4ZmYyNzA4NDRkZTI1MTZhNDc0MmYyMTFkOGM3NDY5MGJjMDk0OGUwOGEyOTZhYmJhOTI4NWY2YmIzMDViOTViN2Y5NDA4Y2U0NGU4Mzg4MGM3MTk0NDQ2NzJlYzk5NzQ2YmE3OGNjNGJkZTQ3NTMxOWQwMWJkZTc3YzQ5ZDU4ZDE2ZDNiMmU5MWMyZTYxZTgzMDNjYTNkN2VkYTM3OTdmZDhiMzVjYTcyYmIxNGIxNWEyNGI1NmJiNzBkYzEzNDg0NTY1ODA4MTEwZmY1ZGI1OGM1NmY3YTA0MzU2MDdlM2MzNTJmYmY0ZjU1MTA2ZjI5ODBmZDNjZDQyMzk3ZGJmNzEzN2VlN2YxZTMyY2Q4MGEzYjdhYjEyYjQ2YzE2OTIyMDI3OGQ3NzE3Yjc4YTNjNDVkNjM5NWExMzBhOGI1ODg0MWNiYzI5MGU0ZjgxN2RlM2E0ZmUxNmVjZDA3N2NhMzNhMGFhMjVlMjM1Y2M3ZjY2NTVhODBiYThhZWVjODc5MDViYjJhNzU0NTliN2JjYzVhMTMzZjI5OTM0OTNiNDFmZmNmNjNjZDdhMzkxZTNlNmY3ODA5NGNhNDQyYzgwMTQ0NDAzY2IwYTVmMDBiZmM2MWFlODgwIgogCiBQS0NTNyBQYXJzZSBGYWlsdXJlIEludmFsaWQgQVNOMTogQ2hhbmdlIGxlbmd0aCBmcm9tIDIxIHRvIDIwICM2ODEuMAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHBrY3M3X2FzbjFfZmFpbDoiMzA4MjA0OWQwNjA5MmE4NjQ4ODZmNzBkMDEwNzAyYTA4MjA0OGUzMDgyMDQ4YTAyMDEwMTMxMGYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBiMDYwOTJhODY0ODg2ZjcwZDAxMDcwMTMxODIwNDY1MzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDViZWNkODcxOTVjMWRlZmY5MGMyNGM5MTI2OWI1NWIzZjA2OWJjMjI1YzMyNmMzMTRjMWE1MTc4NmZmZTE0YzgzMGJlNGU0YmM3M2NiYTM2Yzk3Njc3YjQ0MTY4Mjc5YmU5MWU3Y2RmN2MxOTM4NmFlMjE4NjI3MTlkMTNhM2EwZmZmMDgwM2Q0NjA5NjJmMmNkYTgzNzE0ODQ4NzMyNTJjM2Q3MDU0ZGI4MTQzZTJiMDgxYTM4MTZlZDA4MDRjYTUwOTlhZTVmZWNlODNkNWMyYzM3ODNiMTk4OGI0YjQ2ZGM5NGU1NTU4N2ExMDdlYTE1NDZiZjIyZDI4YTA5N2Y2NTJhNDA2NmRjMjk2NTI2OTA2OWFmMmY1MTc2YmI4Y2U5Y2E2ZDExZjk2NzU3ZjAzMjA0Zjc1NjcwMzU4N2QwMGFkNDI0Nzk2YzkyZmM3YWViNmY0OTQ0MzE5OTllZGEzMDk5MGU0ZjU3NzM2MzJlZDI1OGZlMDI3NjY3MzU5OWRhNmZjZTM1Y2RhZDc3MjZhMGJiMDI0Y2FkOTk2Yjg4ZTBjYjk4ODU0Y2ViNWMwYjZlYzc0OGQ5ZjljZTZhNmNkNDM3ODU4YmFjYjgxNDYxOGEyNzJmZjNhNDE1YzZlMDdmM2RiMDk4ODc3N2ZkZWM4NDVhOTdiZjdkMTAyZGQwMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE0MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMyMDIxNDU2NGQ1NTQwMjVhZjU5OWUzMjcwNzliMjcyMGVmMDBkZjM3Y2ZiN2MzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDA0NjA5OGRjNWYyYjk5ZTNiYzJlZDY2NDJkN2YwYTYxZWZhYmMxNWMzOGM3NjMzM2JjY2NlZWVlMzY5YTRmNGE1YmRkYThlYTU5MjY0MTI0ZTQyOWYwODYzMjY4M2RkYmExN2JiZjI2MmQ4MmI2YmVmYTNiNGUxNDgwMzc2YThjN2YzYzdkN2UyYTY3NzliYmYxODI2MmFhODU3ZGU4YzIwYTEyYjZhMmNlOGU0ZDdmMzFkZDFiMTk1MzkyY2Y2MTg1YWZjZTM0YWZlMDU4OTYwNTdiMzZlOWIxNzFiNmM2N2VkN2MyMjg2Y2JmYTgzZmY4YTE2N2M3YmM3MTA5YWVlN2Q3ZTE5MDliZDM4NGZiZmM2MTkzOGVmY2E1MWM4OTkzYzcxZGIzMTc3MzBmMTZlN2U3NzY4NjdhZTRmZGM1NjJkNmYxNWRlNTg1ZTdiOTRlZjQ5NmEzNjc2MzY3YTJjYmFhYjdiNjM2NjQ4YjAwNzZiYWQ1Y2RmMWUwOTc0MGVjNmE0NTFiZmY1MzRlZmEyMTUwOWYzYmE3N2I4MTAxYjkxZWE3ZTU1ZGRiZmUxNDAxNTE3MDY3ZDdiMDFhMmEwODc5ZjA4ODVjODk0YTg3Y2ZiNjhjNGQ3ZWU4OTA2MDQ4ODFhZWI5N2MyMmQxZjMzN2VmOTIzZTAzNWE2NDAwMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMzMDIxNDYyNDc3Mjk4NzU5ZThlMDQ3MThhZTU2MzE1NWYzNTIzY2ZiODRjZGIzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDZkMmNiYjM3ZmQxMjk1N2U1YTc0ODBjZTA0MzVlOGVmNjA3N2RlZjA4ZmYyNzA4NDRkZTI1MTZhNDc0MmYyMTFkOGM3NDY5MGJjMDk0OGUwOGEyOTZhYmJhOTI4NWY2YmIzMDViOTViN2Y5NDA4Y2U0NGU4Mzg4MGM3MTk0NDQ2NzJlYzk5NzQ2YmE3OGNjNGJkZTQ3NTMxOWQwMWJkZTc3YzQ5ZDU4ZDE2ZDNiMmU5MWMyZTYxZTgzMDNjYTNkN2VkYTM3OTdmZDhiMzVjYTcyYmIxNGIxNWEyNGI1NmJiNzBkYzEzNDg0NTY1ODA4MTEwZmY1ZGI1OGM1NmY3YTA0MzU2MDdlM2MzNTJmYmY0ZjU1MTA2ZjI5ODBmZDNjZDQyMzk3ZGJmNzEzN2VlN2YxZTMyY2Q4MGEzYjdhYjEyYjQ2YzE2OTIyMDI3OGQ3NzE3Yjc4YTNjNDVkNjM5NWExMzBhOGI1ODg0MWNiYzI5MGU0ZjgxN2RlM2E0ZmUxNmVjZDA3N2NhMzNhMGFhMjVlMjM1Y2M3ZjY2NTVhODBiYThhZWVjODc5MDViYjJhNzU0NTliN2JjYzVhMTMzZjI5OTM0OTNiNDFmZmNmNjNjZDdhMzkxZTNlNmY3ODA5NGNhNDQyYzgwMTQ0NDAzY2IwYTVmMDBiZmM2MWFlODgwIgogCiBQS0NTNyBQYXJzZSBGYWlsdXJlIEludmFsaWQgQVNOMTogQ2hhbmdlIHRhZyAzMCB0byAwMiAjNjgyLjAKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBwa2NzN19hc24xX2ZhaWw6IjMwODIwNDlkMDYwOTJhODY0ODg2ZjcwZDAxMDcwMmEwODIwNDhlMzA4MjA0OGEwMjAxMDEzMTBmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwYjA2MDkyYTg2NDg4NmY3MGQwMTA3MDEzMTgyMDQ2NTMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTAyMTQ3YmRlZGRkMjQ0NGNkMWNkZmU1YzQxYTgxMDJjODliN2RmMmU2Y2JmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDA1YmVjZDg3MTk1YzFkZWZmOTBjMjRjOTEyNjliNTViM2YwNjliYzIyNWMzMjZjMzE0YzFhNTE3ODZmZmUxNGM4MzBiZTRlNGJjNzNjYmEzNmM5NzY3N2I0NDE2ODI3OWJlOTFlN2NkZjdjMTkzODZhZTIxODYyNzE5ZDEzYTNhMGZmZjA4MDNkNDYwOTYyZjJjZGE4MzcxNDg0ODczMjUyYzNkNzA1NGRiODE0M2UyYjA4MWEzODE2ZWQwODA0Y2E1MDk5YWU1ZmVjZTgzZDVjMmMzNzgzYjE5ODhiNGI0NmRjOTRlNTU1ODdhMTA3ZWExNTQ2YmYyMmQyOGEwOTdmNjUyYTQwNjZkYzI5NjUyNjkwNjlhZjJmNTE3NmJiOGNlOWNhNmQxMWY5Njc1N2YwMzIwNGY3NTY3MDM1ODdkMDBhZDQyNDc5NmM5MmZjN2FlYjZmNDk0NDMxOTk5ZWRhMzA5OTBlNGY1NzczNjMyZWQyNThmZTAyNzY2NzM1OTlkYTZmY2UzNWNkYWQ3NzI2YTBiYjAyNGNhZDk5NmI4OGUwY2I5ODg1NGNlYjVjMGI2ZWM3NDhkOWY5Y2U2YTZjZDQzNzg1OGJhY2I4MTQ2MThhMjcyZmYzYTQxNWM2ZTA3ZjNkYjA5ODg3NzdmZGVjODQ1YTk3YmY3ZDEwMmRkMDMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTAyMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMjAyMTQ1NjRkNTU0MDI1YWY1OTllMzI3MDc5YjI3MjBlZjAwZGYzN2NmYjdjMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDAwNDYwOThkYzVmMmI5OWUzYmMyZWQ2NjQyZDdmMGE2MWVmYWJjMTVjMzhjNzYzMzNiY2NjZWVlZTM2OWE0ZjRhNWJkZGE4ZWE1OTI2NDEyNGU0MjlmMDg2MzI2ODNkZGJhMTdiYmYyNjJkODJiNmJlZmEzYjRlMTQ4MDM3NmE4YzdmM2M3ZDdlMmE2Nzc5YmJmMTgyNjJhYTg1N2RlOGMyMGExMmI2YTJjZThlNGQ3ZjMxZGQxYjE5NTM5MmNmNjE4NWFmY2UzNGFmZTA1ODk2MDU3YjM2ZTliMTcxYjZjNjdlZDdjMjI4NmNiZmE4M2ZmOGExNjdjN2JjNzEwOWFlZTdkN2UxOTA5YmQzODRmYmZjNjE5MzhlZmNhNTFjODk5M2M3MWRiMzE3NzMwZjE2ZTdlNzc2ODY3YWU0ZmRjNTYyZDZmMTVkZTU4NWU3Yjk0ZWY0OTZhMzY3NjM2N2EyY2JhYWI3YjYzNjY0OGIwMDc2YmFkNWNkZjFlMDk3NDBlYzZhNDUxYmZmNTM0ZWZhMjE1MDlmM2JhNzdiODEwMWI5MWVhN2U1NWRkYmZlMTQwMTUxNzA2N2Q3YjAxYTJhMDg3OWYwODg1Yzg5NGE4N2NmYjY4YzRkN2VlODkwNjA0ODgxYWViOTdjMjJkMWYzMzdlZjkyM2UwMzVhNjQwMDMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMzAyMTQ2MjQ3NzI5ODc1OWU4ZTA0NzE4YWU1NjMxNTVmMzUyM2NmYjg0Y2RiMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDA2ZDJjYmIzN2ZkMTI5NTdlNWE3NDgwY2UwNDM1ZThlZjYwNzdkZWYwOGZmMjcwODQ0ZGUyNTE2YTQ3NDJmMjExZDhjNzQ2OTBiYzA5NDhlMDhhMjk2YWJiYTkyODVmNmJiMzA1Yjk1YjdmOTQwOGNlNDRlODM4ODBjNzE5NDQ0NjcyZWM5OTc0NmJhNzhjYzRiZGU0NzUzMTlkMDFiZGU3N2M0OWQ1OGQxNmQzYjJlOTFjMmU2MWU4MzAzY2EzZDdlZGEzNzk3ZmQ4YjM1Y2E3MmJiMTRiMTVhMjRiNTZiYjcwZGMxMzQ4NDU2NTgwODExMGZmNWRiNThjNTZmN2EwNDM1NjA3ZTNjMzUyZmJmNGY1NTEwNmYyOTgwZmQzY2Q0MjM5N2RiZjcxMzdlZTdmMWUzMmNkODBhM2I3YWIxMmI0NmMxNjkyMjAyNzhkNzcxN2I3OGEzYzQ1ZDYzOTVhMTMwYThiNTg4NDFjYmMyOTBlNGY4MTdkZTNhNGZlMTZlY2QwNzdjYTMzYTBhYTI1ZTIzNWNjN2Y2NjU1YTgwYmE4YWVlYzg3OTA1YmIyYTc1NDU5YjdiY2M1YTEzM2YyOTkzNDkzYjQxZmZjZjYzY2Q3YTM5MWUzZTZmNzgwOTRjYTQ0MmM4MDE0NDQwM2NiMGE1ZjAwYmZjNjFhZTg4MCIKIAogUEtDUzcgUGFyc2UgRmFpbHVyZSBJbnZhbGlkIEFTTjE6IENoYW5nZSBsZW5ndGggZnJvbSAxOSB0byAyMCAjNjgzLjAKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBwa2NzN19hc24xX2ZhaWw6IjMwODIwNDlkMDYwOTJhODY0ODg2ZjcwZDAxMDcwMmEwODIwNDhlMzA4MjA0OGEwMjAxMDEzMTBmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwYjA2MDkyYTg2NDg4NmY3MGQwMTA3MDEzMTgyMDQ2NTMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTAyMTQ3YmRlZGRkMjQ0NGNkMWNkZmU1YzQxYTgxMDJjODliN2RmMmU2Y2JmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDA1YmVjZDg3MTk1YzFkZWZmOTBjMjRjOTEyNjliNTViM2YwNjliYzIyNWMzMjZjMzE0YzFhNTE3ODZmZmUxNGM4MzBiZTRlNGJjNzNjYmEzNmM5NzY3N2I0NDE2ODI3OWJlOTFlN2NkZjdjMTkzODZhZTIxODYyNzE5ZDEzYTNhMGZmZjA4MDNkNDYwOTYyZjJjZGE4MzcxNDg0ODczMjUyYzNkNzA1NGRiODE0M2UyYjA4MWEzODE2ZWQwODA0Y2E1MDk5YWU1ZmVjZTgzZDVjMmMzNzgzYjE5ODhiNGI0NmRjOTRlNTU1ODdhMTA3ZWExNTQ2YmYyMmQyOGEwOTdmNjUyYTQwNjZkYzI5NjUyNjkwNjlhZjJmNTE3NmJiOGNlOWNhNmQxMWY5Njc1N2YwMzIwNGY3NTY3MDM1ODdkMDBhZDQyNDc5NmM5MmZjN2FlYjZmNDk0NDMxOTk5ZWRhMzA5OTBlNGY1NzczNjMyZWQyNThmZTAyNzY2NzM1OTlkYTZmY2UzNWNkYWQ3NzI2YTBiYjAyNGNhZDk5NmI4OGUwY2I5ODg1NGNlYjVjMGI2ZWM3NDhkOWY5Y2U2YTZjZDQzNzg1OGJhY2I4MTQ2MThhMjcyZmYzYTQxNWM2ZTA3ZjNkYjA5ODg3NzdmZGVjODQ1YTk3YmY3ZDEwMmRkMDMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTQwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMjAyMTQ1NjRkNTU0MDI1YWY1OTllMzI3MDc5YjI3MjBlZjAwZGYzN2NmYjdjMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDAwNDYwOThkYzVmMmI5OWUzYmMyZWQ2NjQyZDdmMGE2MWVmYWJjMTVjMzhjNzYzMzNiY2NjZWVlZTM2OWE0ZjRhNWJkZGE4ZWE1OTI2NDEyNGU0MjlmMDg2MzI2ODNkZGJhMTdiYmYyNjJkODJiNmJlZmEzYjRlMTQ4MDM3NmE4YzdmM2M3ZDdlMmE2Nzc5YmJmMTgyNjJhYTg1N2RlOGMyMGExMmI2YTJjZThlNGQ3ZjMxZGQxYjE5NTM5MmNmNjE4NWFmY2UzNGFmZTA1ODk2MDU3YjM2ZTliMTcxYjZjNjdlZDdjMjI4NmNiZmE4M2ZmOGExNjdjN2JjNzEwOWFlZTdkN2UxOTA5YmQzODRmYmZjNjE5MzhlZmNhNTFjODk5M2M3MWRiMzE3NzMwZjE2ZTdlNzc2ODY3YWU0ZmRjNTYyZDZmMTVkZTU4NWU3Yjk0ZWY0OTZhMzY3NjM2N2EyY2JhYWI3YjYzNjY0OGIwMDc2YmFkNWNkZjFlMDk3NDBlYzZhNDUxYmZmNTM0ZWZhMjE1MDlmM2JhNzdiODEwMWI5MWVhN2U1NWRkYmZlMTQwMTUxNzA2N2Q3YjAxYTJhMDg3OWYwODg1Yzg5NGE4N2NmYjY4YzRkN2VlODkwNjA0ODgxYWViOTdjMjJkMWYzMzdlZjkyM2UwMzVhNjQwMDMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMzAyMTQ2MjQ3NzI5ODc1OWU4ZTA0NzE4YWU1NjMxNTVmMzUyM2NmYjg0Y2RiMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDA2ZDJjYmIzN2ZkMTI5NTdlNWE3NDgwY2UwNDM1ZThlZjYwNzdkZWYwOGZmMjcwODQ0ZGUyNTE2YTQ3NDJmMjExZDhjNzQ2OTBiYzA5NDhlMDhhMjk2YWJiYTkyODVmNmJiMzA1Yjk1YjdmOTQwOGNlNDRlODM4ODBjNzE5NDQ0NjcyZWM5OTc0NmJhNzhjYzRiZGU0NzUzMTlkMDFiZGU3N2M0OWQ1OGQxNmQzYjJlOTFjMmU2MWU4MzAzY2EzZDdlZGEzNzk3ZmQ4YjM1Y2E3MmJiMTRiMTVhMjRiNTZiYjcwZGMxMzQ4NDU2NTgwODExMGZmNWRiNThjNTZmN2EwNDM1NjA3ZTNjMzUyZmJmNGY1NTEwNmYyOTgwZmQzY2Q0MjM5N2RiZjcxMzdlZTdmMWUzMmNkODBhM2I3YWIxMmI0NmMxNjkyMjAyNzhkNzcxN2I3OGEzYzQ1ZDYzOTVhMTMwYThiNTg4NDFjYmMyOTBlNGY4MTdkZTNhNGZlMTZlY2QwNzdjYTMzYTBhYTI1ZTIzNWNjN2Y2NjU1YTgwYmE4YWVlYzg3OTA1YmIyYTc1NDU5YjdiY2M1YTEzM2YyOTkzNDkzYjQxZmZjZjYzY2Q3YTM5MWUzZTZmNzgwOTRjYTQ0MmM4MDE0NDQwM2NiMGE1ZjAwYmZjNjFhZTg4MCIKIAogUEtDUzcgUGFyc2UgRmFpbHVyZSBJbnZhbGlkIEFTTjE6IENoYW5nZSBjb250ZW50cyBvZiB0YWcgMzAgdG8gY29udGFpbiBvbmUgdW5hY2NvdW50ZWQgZXh0cmEgYnl0ZSAjNjg0LjAKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBwa2NzN19hc24xX2ZhaWw6IjMwODIwNDlkMDYwOTJhODY0ODg2ZjcwZDAxMDcwMmEwODIwNDhlMzA4MjA0OGEwMjAxMDEzMTBmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwYjA2MDkyYTg2NDg4NmY3MGQwMTA3MDEzMTgyMDQ2NTMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTAyMTQ3YmRlZGRkMjQ0NGNkMWNkZmU1YzQxYTgxMDJjODliN2RmMmU2Y2JmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDA1YmVjZDg3MTk1YzFkZWZmOTBjMjRjOTEyNjliNTViM2YwNjliYzIyNWMzMjZjMzE0YzFhNTE3ODZmZmUxNGM4MzBiZTRlNGJjNzNjYmEzNmM5NzY3N2I0NDE2ODI3OWJlOTFlN2NkZjdjMTkzODZhZTIxODYyNzE5ZDEzYTNhMGZmZjA4MDNkNDYwOTYyZjJjZGE4MzcxNDg0ODczMjUyYzNkNzA1NGRiODE0M2UyYjA4MWEzODE2ZWQwODA0Y2E1MDk5YWU1ZmVjZTgzZDVjMmMzNzgzYjE5ODhiNGI0NmRjOTRlNTU1ODdhMTA3ZWExNTQ2YmYyMmQyOGEwOTdmNjUyYTQwNjZkYzI5NjUyNjkwNjlhZjJmNTE3NmJiOGNlOWNhNmQxMWY5Njc1N2YwMzIwNGY3NTY3MDM1ODdkMDBhZDQyNDc5NmM5MmZjN2FlYjZmNDk0NDMxOTk5ZWRhMzA5OTBlNGY1NzczNjMyZWQyNThmZTAyNzY2NzM1OTlkYTZmY2UzNWNkYWQ3NzI2YTBiYjAyNGNhZDk5NmI4OGUwY2I5ODg1NGNlYjVjMGI2ZWM3NDhkOWY5Y2U2YTZjZDQzNzg1OGJhY2I4MTQ2MThhMjcyZmYzYTQxNWM2ZTA3ZjNkYjA5ODg3NzdmZGVjODQ1YTk3YmY3ZDEwMmRkMDMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTQwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMjAwMDIxNDU2NGQ1NTQwMjVhZjU5OWUzMjcwNzliMjcyMGVmMDBkZjM3Y2ZiN2MzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDA0NjA5OGRjNWYyYjk5ZTNiYzJlZDY2NDJkN2YwYTYxZWZhYmMxNWMzOGM3NjMzM2JjY2NlZWVlMzY5YTRmNGE1YmRkYThlYTU5MjY0MTI0ZTQyOWYwODYzMjY4M2RkYmExN2JiZjI2MmQ4MmI2YmVmYTNiNGUxNDgwMzc2YThjN2YzYzdkN2UyYTY3NzliYmYxODI2MmFhODU3ZGU4YzIwYTEyYjZhMmNlOGU0ZDdmMzFkZDFiMTk1MzkyY2Y2MTg1YWZjZTM0YWZlMDU4OTYwNTdiMzZlOWIxNzFiNmM2N2VkN2MyMjg2Y2JmYTgzZmY4YTE2N2M3YmM3MTA5YWVlN2Q3ZTE5MDliZDM4NGZiZmM2MTkzOGVmY2E1MWM4OTkzYzcxZGIzMTc3MzBmMTZlN2U3NzY4NjdhZTRmZGM1NjJkNmYxNWRlNTg1ZTdiOTRlZjQ5NmEzNjc2MzY3YTJjYmFhYjdiNjM2NjQ4YjAwNzZiYWQ1Y2RmMWUwOTc0MGVjNmE0NTFiZmY1MzRlZmEyMTUwOWYzYmE3N2I4MTAxYjkxZWE3ZTU1ZGRiZmUxNDAxNTE3MDY3ZDdiMDFhMmEwODc5ZjA4ODVjODk0YTg3Y2ZiNjhjNGQ3ZWU4OTA2MDQ4ODFhZWI5N2MyMmQxZjMzN2VmOTIzZTAzNWE2NDAwMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMzMDIxNDYyNDc3Mjk4NzU5ZThlMDQ3MThhZTU2MzE1NWYzNTIzY2ZiODRjZGIzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDZkMmNiYjM3ZmQxMjk1N2U1YTc0ODBjZTA0MzVlOGVmNjA3N2RlZjA4ZmYyNzA4NDRkZTI1MTZhNDc0MmYyMTFkOGM3NDY5MGJjMDk0OGUwOGEyOTZhYmJhOTI4NWY2YmIzMDViOTViN2Y5NDA4Y2U0NGU4Mzg4MGM3MTk0NDQ2NzJlYzk5NzQ2YmE3OGNjNGJkZTQ3NTMxOWQwMWJkZTc3YzQ5ZDU4ZDE2ZDNiMmU5MWMyZTYxZTgzMDNjYTNkN2VkYTM3OTdmZDhiMzVjYTcyYmIxNGIxNWEyNGI1NmJiNzBkYzEzNDg0NTY1ODA4MTEwZmY1ZGI1OGM1NmY3YTA0MzU2MDdlM2MzNTJmYmY0ZjU1MTA2ZjI5ODBmZDNjZDQyMzk3ZGJmNzEzN2VlN2YxZTMyY2Q4MGEzYjdhYjEyYjQ2YzE2OTIyMDI3OGQ3NzE3Yjc4YTNjNDVkNjM5NWExMzBhOGI1ODg0MWNiYzI5MGU0ZjgxN2RlM2E0ZmUxNmVjZDA3N2NhMzNhMGFhMjVlMjM1Y2M3ZjY2NTVhODBiYThhZWVjODc5MDViYjJhNzU0NTliN2JjYzVhMTMzZjI5OTM0OTNiNDFmZmNmNjNjZDdhMzkxZTNlNmY3ODA5NGNhNDQyYzgwMTQ0NDAzY2IwYTVmMDBiZmM2MWFlODgwIgogCiBQS0NTNyBQYXJzZSBGYWlsdXJlIEludmFsaWQgQVNOMTogQ2hhbmdlIGxlbmd0aCBmcm9tIDE5IHRvIDE4ICM2ODUuMAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHBrY3M3X2FzbjFfZmFpbDoiMzA4MjA0OWQwNjA5MmE4NjQ4ODZmNzBkMDEwNzAyYTA4MjA0OGUzMDgyMDQ4YTAyMDEwMTMxMGYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBiMDYwOTJhODY0ODg2ZjcwZDAxMDcwMTMxODIwNDY1MzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDViZWNkODcxOTVjMWRlZmY5MGMyNGM5MTI2OWI1NWIzZjA2OWJjMjI1YzMyNmMzMTRjMWE1MTc4NmZmZTE0YzgzMGJlNGU0YmM3M2NiYTM2Yzk3Njc3YjQ0MTY4Mjc5YmU5MWU3Y2RmN2MxOTM4NmFlMjE4NjI3MTlkMTNhM2EwZmZmMDgwM2Q0NjA5NjJmMmNkYTgzNzE0ODQ4NzMyNTJjM2Q3MDU0ZGI4MTQzZTJiMDgxYTM4MTZlZDA4MDRjYTUwOTlhZTVmZWNlODNkNWMyYzM3ODNiMTk4OGI0YjQ2ZGM5NGU1NTU4N2ExMDdlYTE1NDZiZjIyZDI4YTA5N2Y2NTJhNDA2NmRjMjk2NTI2OTA2OWFmMmY1MTc2YmI4Y2U5Y2E2ZDExZjk2NzU3ZjAzMjA0Zjc1NjcwMzU4N2QwMGFkNDI0Nzk2YzkyZmM3YWViNmY0OTQ0MzE5OTllZGEzMDk5MGU0ZjU3NzM2MzJlZDI1OGZlMDI3NjY3MzU5OWRhNmZjZTM1Y2RhZDc3MjZhMGJiMDI0Y2FkOTk2Yjg4ZTBjYjk4ODU0Y2ViNWMwYjZlYzc0OGQ5ZjljZTZhNmNkNDM3ODU4YmFjYjgxNDYxOGEyNzJmZjNhNDE1YzZlMDdmM2RiMDk4ODc3N2ZkZWM4NDVhOTdiZjdkMTAyZGQwMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMjA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMyMDIxNDU2NGQ1NTQwMjVhZjU5OWUzMjcwNzliMjcyMGVmMDBkZjM3Y2ZiN2MzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDA0NjA5OGRjNWYyYjk5ZTNiYzJlZDY2NDJkN2YwYTYxZWZhYmMxNWMzOGM3NjMzM2JjY2NlZWVlMzY5YTRmNGE1YmRkYThlYTU5MjY0MTI0ZTQyOWYwODYzMjY4M2RkYmExN2JiZjI2MmQ4MmI2YmVmYTNiNGUxNDgwMzc2YThjN2YzYzdkN2UyYTY3NzliYmYxODI2MmFhODU3ZGU4YzIwYTEyYjZhMmNlOGU0ZDdmMzFkZDFiMTk1MzkyY2Y2MTg1YWZjZTM0YWZlMDU4OTYwNTdiMzZlOWIxNzFiNmM2N2VkN2MyMjg2Y2JmYTgzZmY4YTE2N2M3YmM3MTA5YWVlN2Q3ZTE5MDliZDM4NGZiZmM2MTkzOGVmY2E1MWM4OTkzYzcxZGIzMTc3MzBmMTZlN2U3NzY4NjdhZTRmZGM1NjJkNmYxNWRlNTg1ZTdiOTRlZjQ5NmEzNjc2MzY3YTJjYmFhYjdiNjM2NjQ4YjAwNzZiYWQ1Y2RmMWUwOTc0MGVjNmE0NTFiZmY1MzRlZmEyMTUwOWYzYmE3N2I4MTAxYjkxZWE3ZTU1ZGRiZmUxNDAxNTE3MDY3ZDdiMDFhMmEwODc5ZjA4ODVjODk0YTg3Y2ZiNjhjNGQ3ZWU4OTA2MDQ4ODFhZWI5N2MyMmQxZjMzN2VmOTIzZTAzNWE2NDAwMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMzMDIxNDYyNDc3Mjk4NzU5ZThlMDQ3MThhZTU2MzE1NWYzNTIzY2ZiODRjZGIzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDZkMmNiYjM3ZmQxMjk1N2U1YTc0ODBjZTA0MzVlOGVmNjA3N2RlZjA4ZmYyNzA4NDRkZTI1MTZhNDc0MmYyMTFkOGM3NDY5MGJjMDk0OGUwOGEyOTZhYmJhOTI4NWY2YmIzMDViOTViN2Y5NDA4Y2U0NGU4Mzg4MGM3MTk0NDQ2NzJlYzk5NzQ2YmE3OGNjNGJkZTQ3NTMxOWQwMWJkZTc3YzQ5ZDU4ZDE2ZDNiMmU5MWMyZTYxZTgzMDNjYTNkN2VkYTM3OTdmZDhiMzVjYTcyYmIxNGIxNWEyNGI1NmJiNzBkYzEzNDg0NTY1ODA4MTEwZmY1ZGI1OGM1NmY3YTA0MzU2MDdlM2MzNTJmYmY0ZjU1MTA2ZjI5ODBmZDNjZDQyMzk3ZGJmNzEzN2VlN2YxZTMyY2Q4MGEzYjdhYjEyYjQ2YzE2OTIyMDI3OGQ3NzE3Yjc4YTNjNDVkNjM5NWExMzBhOGI1ODg0MWNiYzI5MGU0ZjgxN2RlM2E0ZmUxNmVjZDA3N2NhMzNhMGFhMjVlMjM1Y2M3ZjY2NTVhODBiYThhZWVjODc5MDViYjJhNzU0NTliN2JjYzVhMTMzZjI5OTM0OTNiNDFmZmNmNjNjZDdhMzkxZTNlNmY3ODA5NGNhNDQyYzgwMTQ0NDAzY2IwYTVmMDBiZmM2MWFlODgwIgogCiBQS0NTNyBQYXJzZSBGYWlsdXJlIEludmFsaWQgQVNOMTogQ2hhbmdlIHRhZyAwNiB0byAwMiAjNjg2LjAKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBwa2NzN19hc24xX2ZhaWw6IjMwODIwNDlkMDYwOTJhODY0ODg2ZjcwZDAxMDcwMmEwODIwNDhlMzA4MjA0OGEwMjAxMDEzMTBmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwYjA2MDkyYTg2NDg4NmY3MGQwMTA3MDEzMTgyMDQ2NTMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTAyMTQ3YmRlZGRkMjQ0NGNkMWNkZmU1YzQxYTgxMDJjODliN2RmMmU2Y2JmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDA1YmVjZDg3MTk1YzFkZWZmOTBjMjRjOTEyNjliNTViM2YwNjliYzIyNWMzMjZjMzE0YzFhNTE3ODZmZmUxNGM4MzBiZTRlNGJjNzNjYmEzNmM5NzY3N2I0NDE2ODI3OWJlOTFlN2NkZjdjMTkzODZhZTIxODYyNzE5ZDEzYTNhMGZmZjA4MDNkNDYwOTYyZjJjZGE4MzcxNDg0ODczMjUyYzNkNzA1NGRiODE0M2UyYjA4MWEzODE2ZWQwODA0Y2E1MDk5YWU1ZmVjZTgzZDVjMmMzNzgzYjE5ODhiNGI0NmRjOTRlNTU1ODdhMTA3ZWExNTQ2YmYyMmQyOGEwOTdmNjUyYTQwNjZkYzI5NjUyNjkwNjlhZjJmNTE3NmJiOGNlOWNhNmQxMWY5Njc1N2YwMzIwNGY3NTY3MDM1ODdkMDBhZDQyNDc5NmM5MmZjN2FlYjZmNDk0NDMxOTk5ZWRhMzA5OTBlNGY1NzczNjMyZWQyNThmZTAyNzY2NzM1OTlkYTZmY2UzNWNkYWQ3NzI2YTBiYjAyNGNhZDk5NmI4OGUwY2I5ODg1NGNlYjVjMGI2ZWM3NDhkOWY5Y2U2YTZjZDQzNzg1OGJhY2I4MTQ2MThhMjcyZmYzYTQxNWM2ZTA3ZjNkYjA5ODg3NzdmZGVjODQ1YTk3YmY3ZDEwMmRkMDMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwMjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMjAyMTQ1NjRkNTU0MDI1YWY1OTllMzI3MDc5YjI3MjBlZjAwZGYzN2NmYjdjMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDAwNDYwOThkYzVmMmI5OWUzYmMyZWQ2NjQyZDdmMGE2MWVmYWJjMTVjMzhjNzYzMzNiY2NjZWVlZTM2OWE0ZjRhNWJkZGE4ZWE1OTI2NDEyNGU0MjlmMDg2MzI2ODNkZGJhMTdiYmYyNjJkODJiNmJlZmEzYjRlMTQ4MDM3NmE4YzdmM2M3ZDdlMmE2Nzc5YmJmMTgyNjJhYTg1N2RlOGMyMGExMmI2YTJjZThlNGQ3ZjMxZGQxYjE5NTM5MmNmNjE4NWFmY2UzNGFmZTA1ODk2MDU3YjM2ZTliMTcxYjZjNjdlZDdjMjI4NmNiZmE4M2ZmOGExNjdjN2JjNzEwOWFlZTdkN2UxOTA5YmQzODRmYmZjNjE5MzhlZmNhNTFjODk5M2M3MWRiMzE3NzMwZjE2ZTdlNzc2ODY3YWU0ZmRjNTYyZDZmMTVkZTU4NWU3Yjk0ZWY0OTZhMzY3NjM2N2EyY2JhYWI3YjYzNjY0OGIwMDc2YmFkNWNkZjFlMDk3NDBlYzZhNDUxYmZmNTM0ZWZhMjE1MDlmM2JhNzdiODEwMWI5MWVhN2U1NWRkYmZlMTQwMTUxNzA2N2Q3YjAxYTJhMDg3OWYwODg1Yzg5NGE4N2NmYjY4YzRkN2VlODkwNjA0ODgxYWViOTdjMjJkMWYzMzdlZjkyM2UwMzVhNjQwMDMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMzAyMTQ2MjQ3NzI5ODc1OWU4ZTA0NzE4YWU1NjMxNTVmMzUyM2NmYjg0Y2RiMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDA2ZDJjYmIzN2ZkMTI5NTdlNWE3NDgwY2UwNDM1ZThlZjYwNzdkZWYwOGZmMjcwODQ0ZGUyNTE2YTQ3NDJmMjExZDhjNzQ2OTBiYzA5NDhlMDhhMjk2YWJiYTkyODVmNmJiMzA1Yjk1YjdmOTQwOGNlNDRlODM4ODBjNzE5NDQ0NjcyZWM5OTc0NmJhNzhjYzRiZGU0NzUzMTlkMDFiZGU3N2M0OWQ1OGQxNmQzYjJlOTFjMmU2MWU4MzAzY2EzZDdlZGEzNzk3ZmQ4YjM1Y2E3MmJiMTRiMTVhMjRiNTZiYjcwZGMxMzQ4NDU2NTgwODExMGZmNWRiNThjNTZmN2EwNDM1NjA3ZTNjMzUyZmJmNGY1NTEwNmYyOTgwZmQzY2Q0MjM5N2RiZjcxMzdlZTdmMWUzMmNkODBhM2I3YWIxMmI0NmMxNjkyMjAyNzhkNzcxN2I3OGEzYzQ1ZDYzOTVhMTMwYThiNTg4NDFjYmMyOTBlNGY4MTdkZTNhNGZlMTZlY2QwNzdjYTMzYTBhYTI1ZTIzNWNjN2Y2NjU1YTgwYmE4YWVlYzg3OTA1YmIyYTc1NDU5YjdiY2M1YTEzM2YyOTkzNDkzYjQxZmZjZjYzY2Q3YTM5MWUzZTZmNzgwOTRjYTQ0MmM4MDE0NDQwM2NiMGE1ZjAwYmZjNjFhZTg4MCIKIAogUEtDUzcgUGFyc2UgRmFpbHVyZSBJbnZhbGlkIEFTTjE6IENoYW5nZSBsZW5ndGggZnJvbSAzIHRvIDQgIzY4Ny4wCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NgogcGtjczdfYXNuMV9mYWlsOiIzMDgyMDQ5ZDA2MDkyYTg2NDg4NmY3MGQwMTA3MDJhMDgyMDQ4ZTMwODIwNDhhMDIwMTAxMzEwZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGIwNjA5MmE4NjQ4ODZmNzBkMDEwNzAxMzE4MjA0NjUzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwNWJlY2Q4NzE5NWMxZGVmZjkwYzI0YzkxMjY5YjU1YjNmMDY5YmMyMjVjMzI2YzMxNGMxYTUxNzg2ZmZlMTRjODMwYmU0ZTRiYzczY2JhMzZjOTc2NzdiNDQxNjgyNzliZTkxZTdjZGY3YzE5Mzg2YWUyMTg2MjcxOWQxM2EzYTBmZmYwODAzZDQ2MDk2MmYyY2RhODM3MTQ4NDg3MzI1MmMzZDcwNTRkYjgxNDNlMmIwODFhMzgxNmVkMDgwNGNhNTA5OWFlNWZlY2U4M2Q1YzJjMzc4M2IxOTg4YjRiNDZkYzk0ZTU1NTg3YTEwN2VhMTU0NmJmMjJkMjhhMDk3ZjY1MmE0MDY2ZGMyOTY1MjY5MDY5YWYyZjUxNzZiYjhjZTljYTZkMTFmOTY3NTdmMDMyMDRmNzU2NzAzNTg3ZDAwYWQ0MjQ3OTZjOTJmYzdhZWI2ZjQ5NDQzMTk5OWVkYTMwOTkwZTRmNTc3MzYzMmVkMjU4ZmUwMjc2NjczNTk5ZGE2ZmNlMzVjZGFkNzcyNmEwYmIwMjRjYWQ5OTZiODhlMGNiOTg4NTRjZWI1YzBiNmVjNzQ4ZDlmOWNlNmE2Y2Q0Mzc4NThiYWNiODE0NjE4YTI3MmZmM2E0MTVjNmUwN2YzZGIwOTg4Nzc3ZmRlYzg0NWE5N2JmN2QxMDJkZDAzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwNDU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzIwMjE0NTY0ZDU1NDAyNWFmNTk5ZTMyNzA3OWIyNzIwZWYwMGRmMzdjZmI3YzMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwMDQ2MDk4ZGM1ZjJiOTllM2JjMmVkNjY0MmQ3ZjBhNjFlZmFiYzE1YzM4Yzc2MzMzYmNjY2VlZWUzNjlhNGY0YTViZGRhOGVhNTkyNjQxMjRlNDI5ZjA4NjMyNjgzZGRiYTE3YmJmMjYyZDgyYjZiZWZhM2I0ZTE0ODAzNzZhOGM3ZjNjN2Q3ZTJhNjc3OWJiZjE4MjYyYWE4NTdkZThjMjBhMTJiNmEyY2U4ZTRkN2YzMWRkMWIxOTUzOTJjZjYxODVhZmNlMzRhZmUwNTg5NjA1N2IzNmU5YjE3MWI2YzY3ZWQ3YzIyODZjYmZhODNmZjhhMTY3YzdiYzcxMDlhZWU3ZDdlMTkwOWJkMzg0ZmJmYzYxOTM4ZWZjYTUxYzg5OTNjNzFkYjMxNzczMGYxNmU3ZTc3Njg2N2FlNGZkYzU2MmQ2ZjE1ZGU1ODVlN2I5NGVmNDk2YTM2NzYzNjdhMmNiYWFiN2I2MzY2NDhiMDA3NmJhZDVjZGYxZTA5NzQwZWM2YTQ1MWJmZjUzNGVmYTIxNTA5ZjNiYTc3YjgxMDFiOTFlYTdlNTVkZGJmZTE0MDE1MTcwNjdkN2IwMWEyYTA4NzlmMDg4NWM4OTRhODdjZmI2OGM0ZDdlZTg5MDYwNDg4MWFlYjk3YzIyZDFmMzM3ZWY5MjNlMDM1YTY0MDAzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzMwMjE0NjI0NzcyOTg3NTllOGUwNDcxOGFlNTYzMTU1ZjM1MjNjZmI4NGNkYjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwNmQyY2JiMzdmZDEyOTU3ZTVhNzQ4MGNlMDQzNWU4ZWY2MDc3ZGVmMDhmZjI3MDg0NGRlMjUxNmE0NzQyZjIxMWQ4Yzc0NjkwYmMwOTQ4ZTA4YTI5NmFiYmE5Mjg1ZjZiYjMwNWI5NWI3Zjk0MDhjZTQ0ZTgzODgwYzcxOTQ0NDY3MmVjOTk3NDZiYTc4Y2M0YmRlNDc1MzE5ZDAxYmRlNzdjNDlkNThkMTZkM2IyZTkxYzJlNjFlODMwM2NhM2Q3ZWRhMzc5N2ZkOGIzNWNhNzJiYjE0YjE1YTI0YjU2YmI3MGRjMTM0ODQ1NjU4MDgxMTBmZjVkYjU4YzU2ZjdhMDQzNTYwN2UzYzM1MmZiZjRmNTUxMDZmMjk4MGZkM2NkNDIzOTdkYmY3MTM3ZWU3ZjFlMzJjZDgwYTNiN2FiMTJiNDZjMTY5MjIwMjc4ZDc3MTdiNzhhM2M0NWQ2Mzk1YTEzMGE4YjU4ODQxY2JjMjkwZTRmODE3ZGUzYTRmZTE2ZWNkMDc3Y2EzM2EwYWEyNWUyMzVjYzdmNjY1NWE4MGJhOGFlZWM4NzkwNWJiMmE3NTQ1OWI3YmNjNWExMzNmMjk5MzQ5M2I0MWZmY2Y2M2NkN2EzOTFlM2U2Zjc4MDk0Y2E0NDJjODAxNDQ0MDNjYjBhNWYwMGJmYzYxYWU4ODAiCiAKIFBLQ1M3IFBhcnNlIEZhaWx1cmUgSW52YWxpZCBBU04xOiBDaGFuZ2UgbGVuZ3RoIGZyb20gMyB0byAyICM2ODguMAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHBrY3M3X2FzbjFfZmFpbDoiMzA4MjA0OWQwNjA5MmE4NjQ4ODZmNzBkMDEwNzAyYTA4MjA0OGUzMDgyMDQ4YTAyMDEwMTMxMGYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBiMDYwOTJhODY0ODg2ZjcwZDAxMDcwMTMxODIwNDY1MzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDViZWNkODcxOTVjMWRlZmY5MGMyNGM5MTI2OWI1NWIzZjA2OWJjMjI1YzMyNmMzMTRjMWE1MTc4NmZmZTE0YzgzMGJlNGU0YmM3M2NiYTM2Yzk3Njc3YjQ0MTY4Mjc5YmU5MWU3Y2RmN2MxOTM4NmFlMjE4NjI3MTlkMTNhM2EwZmZmMDgwM2Q0NjA5NjJmMmNkYTgzNzE0ODQ4NzMyNTJjM2Q3MDU0ZGI4MTQzZTJiMDgxYTM4MTZlZDA4MDRjYTUwOTlhZTVmZWNlODNkNWMyYzM3ODNiMTk4OGI0YjQ2ZGM5NGU1NTU4N2ExMDdlYTE1NDZiZjIyZDI4YTA5N2Y2NTJhNDA2NmRjMjk2NTI2OTA2OWFmMmY1MTc2YmI4Y2U5Y2E2ZDExZjk2NzU3ZjAzMjA0Zjc1NjcwMzU4N2QwMGFkNDI0Nzk2YzkyZmM3YWViNmY0OTQ0MzE5OTllZGEzMDk5MGU0ZjU3NzM2MzJlZDI1OGZlMDI3NjY3MzU5OWRhNmZjZTM1Y2RhZDc3MjZhMGJiMDI0Y2FkOTk2Yjg4ZTBjYjk4ODU0Y2ViNWMwYjZlYzc0OGQ5ZjljZTZhNmNkNDM3ODU4YmFjYjgxNDYxOGEyNzJmZjNhNDE1YzZlMDdmM2RiMDk4ODc3N2ZkZWM4NDVhOTdiZjdkMTAyZGQwMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDI1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMyMDIxNDU2NGQ1NTQwMjVhZjU5OWUzMjcwNzliMjcyMGVmMDBkZjM3Y2ZiN2MzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDA0NjA5OGRjNWYyYjk5ZTNiYzJlZDY2NDJkN2YwYTYxZWZhYmMxNWMzOGM3NjMzM2JjY2NlZWVlMzY5YTRmNGE1YmRkYThlYTU5MjY0MTI0ZTQyOWYwODYzMjY4M2RkYmExN2JiZjI2MmQ4MmI2YmVmYTNiNGUxNDgwMzc2YThjN2YzYzdkN2UyYTY3NzliYmYxODI2MmFhODU3ZGU4YzIwYTEyYjZhMmNlOGU0ZDdmMzFkZDFiMTk1MzkyY2Y2MTg1YWZjZTM0YWZlMDU4OTYwNTdiMzZlOWIxNzFiNmM2N2VkN2MyMjg2Y2JmYTgzZmY4YTE2N2M3YmM3MTA5YWVlN2Q3ZTE5MDliZDM4NGZiZmM2MTkzOGVmY2E1MWM4OTkzYzcxZGIzMTc3MzBmMTZlN2U3NzY4NjdhZTRmZGM1NjJkNmYxNWRlNTg1ZTdiOTRlZjQ5NmEzNjc2MzY3YTJjYmFhYjdiNjM2NjQ4YjAwNzZiYWQ1Y2RmMWUwOTc0MGVjNmE0NTFiZmY1MzRlZmEyMTUwOWYzYmE3N2I4MTAxYjkxZWE3ZTU1ZGRiZmUxNDAxNTE3MDY3ZDdiMDFhMmEwODc5ZjA4ODVjODk0YTg3Y2ZiNjhjNGQ3ZWU4OTA2MDQ4ODFhZWI5N2MyMmQxZjMzN2VmOTIzZTAzNWE2NDAwMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMzMDIxNDYyNDc3Mjk4NzU5ZThlMDQ3MThhZTU2MzE1NWYzNTIzY2ZiODRjZGIzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDZkMmNiYjM3ZmQxMjk1N2U1YTc0ODBjZTA0MzVlOGVmNjA3N2RlZjA4ZmYyNzA4NDRkZTI1MTZhNDc0MmYyMTFkOGM3NDY5MGJjMDk0OGUwOGEyOTZhYmJhOTI4NWY2YmIzMDViOTViN2Y5NDA4Y2U0NGU4Mzg4MGM3MTk0NDQ2NzJlYzk5NzQ2YmE3OGNjNGJkZTQ3NTMxOWQwMWJkZTc3YzQ5ZDU4ZDE2ZDNiMmU5MWMyZTYxZTgzMDNjYTNkN2VkYTM3OTdmZDhiMzVjYTcyYmIxNGIxNWEyNGI1NmJiNzBkYzEzNDg0NTY1ODA4MTEwZmY1ZGI1OGM1NmY3YTA0MzU2MDdlM2MzNTJmYmY0ZjU1MTA2ZjI5ODBmZDNjZDQyMzk3ZGJmNzEzN2VlN2YxZTMyY2Q4MGEzYjdhYjEyYjQ2YzE2OTIyMDI3OGQ3NzE3Yjc4YTNjNDVkNjM5NWExMzBhOGI1ODg0MWNiYzI5MGU0ZjgxN2RlM2E0ZmUxNmVjZDA3N2NhMzNhMGFhMjVlMjM1Y2M3ZjY2NTVhODBiYThhZWVjODc5MDViYjJhNzU0NTliN2JjYzVhMTMzZjI5OTM0OTNiNDFmZmNmNjNjZDdhMzkxZTNlNmY3ODA5NGNhNDQyYzgwMTQ0NDAzY2IwYTVmMDBiZmM2MWFlODgwIgogCiBQS0NTNyBQYXJzZSBGYWlsdXJlIEludmFsaWQgQVNOMTogQ2hhbmdlIHRhZyAwYyB0byAwMiAjNjg5LjAKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBwa2NzN19hc24xX2ZhaWw6IjMwODIwNDlkMDYwOTJhODY0ODg2ZjcwZDAxMDcwMmEwODIwNDhlMzA4MjA0OGEwMjAxMDEzMTBmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwYjA2MDkyYTg2NDg4NmY3MGQwMTA3MDEzMTgyMDQ2NTMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTAyMTQ3YmRlZGRkMjQ0NGNkMWNkZmU1YzQxYTgxMDJjODliN2RmMmU2Y2JmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDA1YmVjZDg3MTk1YzFkZWZmOTBjMjRjOTEyNjliNTViM2YwNjliYzIyNWMzMjZjMzE0YzFhNTE3ODZmZmUxNGM4MzBiZTRlNGJjNzNjYmEzNmM5NzY3N2I0NDE2ODI3OWJlOTFlN2NkZjdjMTkzODZhZTIxODYyNzE5ZDEzYTNhMGZmZjA4MDNkNDYwOTYyZjJjZGE4MzcxNDg0ODczMjUyYzNkNzA1NGRiODE0M2UyYjA4MWEzODE2ZWQwODA0Y2E1MDk5YWU1ZmVjZTgzZDVjMmMzNzgzYjE5ODhiNGI0NmRjOTRlNTU1ODdhMTA3ZWExNTQ2YmYyMmQyOGEwOTdmNjUyYTQwNjZkYzI5NjUyNjkwNjlhZjJmNTE3NmJiOGNlOWNhNmQxMWY5Njc1N2YwMzIwNGY3NTY3MDM1ODdkMDBhZDQyNDc5NmM5MmZjN2FlYjZmNDk0NDMxOTk5ZWRhMzA5OTBlNGY1NzczNjMyZWQyNThmZTAyNzY2NzM1OTlkYTZmY2UzNWNkYWQ3NzI2YTBiYjAyNGNhZDk5NmI4OGUwY2I5ODg1NGNlYjVjMGI2ZWM3NDhkOWY5Y2U2YTZjZDQzNzg1OGJhY2I4MTQ2MThhMjcyZmYzYTQxNWM2ZTA3ZjNkYjA5ODg3NzdmZGVjODQ1YTk3YmY3ZDEwMmRkMDMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMDIwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMjAyMTQ1NjRkNTU0MDI1YWY1OTllMzI3MDc5YjI3MjBlZjAwZGYzN2NmYjdjMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDAwNDYwOThkYzVmMmI5OWUzYmMyZWQ2NjQyZDdmMGE2MWVmYWJjMTVjMzhjNzYzMzNiY2NjZWVlZTM2OWE0ZjRhNWJkZGE4ZWE1OTI2NDEyNGU0MjlmMDg2MzI2ODNkZGJhMTdiYmYyNjJkODJiNmJlZmEzYjRlMTQ4MDM3NmE4YzdmM2M3ZDdlMmE2Nzc5YmJmMTgyNjJhYTg1N2RlOGMyMGExMmI2YTJjZThlNGQ3ZjMxZGQxYjE5NTM5MmNmNjE4NWFmY2UzNGFmZTA1ODk2MDU3YjM2ZTliMTcxYjZjNjdlZDdjMjI4NmNiZmE4M2ZmOGExNjdjN2JjNzEwOWFlZTdkN2UxOTA5YmQzODRmYmZjNjE5MzhlZmNhNTFjODk5M2M3MWRiMzE3NzMwZjE2ZTdlNzc2ODY3YWU0ZmRjNTYyZDZmMTVkZTU4NWU3Yjk0ZWY0OTZhMzY3NjM2N2EyY2JhYWI3YjYzNjY0OGIwMDc2YmFkNWNkZjFlMDk3NDBlYzZhNDUxYmZmNTM0ZWZhMjE1MDlmM2JhNzdiODEwMWI5MWVhN2U1NWRkYmZlMTQwMTUxNzA2N2Q3YjAxYTJhMDg3OWYwODg1Yzg5NGE4N2NmYjY4YzRkN2VlODkwNjA0ODgxYWViOTdjMjJkMWYzMzdlZjkyM2UwMzVhNjQwMDMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMzAyMTQ2MjQ3NzI5ODc1OWU4ZTA0NzE4YWU1NjMxNTVmMzUyM2NmYjg0Y2RiMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDA2ZDJjYmIzN2ZkMTI5NTdlNWE3NDgwY2UwNDM1ZThlZjYwNzdkZWYwOGZmMjcwODQ0ZGUyNTE2YTQ3NDJmMjExZDhjNzQ2OTBiYzA5NDhlMDhhMjk2YWJiYTkyODVmNmJiMzA1Yjk1YjdmOTQwOGNlNDRlODM4ODBjNzE5NDQ0NjcyZWM5OTc0NmJhNzhjYzRiZGU0NzUzMTlkMDFiZGU3N2M0OWQ1OGQxNmQzYjJlOTFjMmU2MWU4MzAzY2EzZDdlZGEzNzk3ZmQ4YjM1Y2E3MmJiMTRiMTVhMjRiNTZiYjcwZGMxMzQ4NDU2NTgwODExMGZmNWRiNThjNTZmN2EwNDM1NjA3ZTNjMzUyZmJmNGY1NTEwNmYyOTgwZmQzY2Q0MjM5N2RiZjcxMzdlZTdmMWUzMmNkODBhM2I3YWIxMmI0NmMxNjkyMjAyNzhkNzcxN2I3OGEzYzQ1ZDYzOTVhMTMwYThiNTg4NDFjYmMyOTBlNGY4MTdkZTNhNGZlMTZlY2QwNzdjYTMzYTBhYTI1ZTIzNWNjN2Y2NjU1YTgwYmE4YWVlYzg3OTA1YmIyYTc1NDU5YjdiY2M1YTEzM2YyOTkzNDkzYjQxZmZjZjYzY2Q3YTM5MWUzZTZmNzgwOTRjYTQ0MmM4MDE0NDQwM2NiMGE1ZjAwYmZjNjFhZTg4MCIKIAogUEtDUzcgUGFyc2UgRmFpbHVyZSBJbnZhbGlkIEFTTjE6IENoYW5nZSBsZW5ndGggZnJvbSAxMiB0byAxMyAjNjkwLjAKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBwa2NzN19hc24xX2ZhaWw6IjMwODIwNDlkMDYwOTJhODY0ODg2ZjcwZDAxMDcwMmEwODIwNDhlMzA4MjA0OGEwMjAxMDEzMTBmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwYjA2MDkyYTg2NDg4NmY3MGQwMTA3MDEzMTgyMDQ2NTMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTAyMTQ3YmRlZGRkMjQ0NGNkMWNkZmU1YzQxYTgxMDJjODliN2RmMmU2Y2JmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDA1YmVjZDg3MTk1YzFkZWZmOTBjMjRjOTEyNjliNTViM2YwNjliYzIyNWMzMjZjMzE0YzFhNTE3ODZmZmUxNGM4MzBiZTRlNGJjNzNjYmEzNmM5NzY3N2I0NDE2ODI3OWJlOTFlN2NkZjdjMTkzODZhZTIxODYyNzE5ZDEzYTNhMGZmZjA4MDNkNDYwOTYyZjJjZGE4MzcxNDg0ODczMjUyYzNkNzA1NGRiODE0M2UyYjA4MWEzODE2ZWQwODA0Y2E1MDk5YWU1ZmVjZTgzZDVjMmMzNzgzYjE5ODhiNGI0NmRjOTRlNTU1ODdhMTA3ZWExNTQ2YmYyMmQyOGEwOTdmNjUyYTQwNjZkYzI5NjUyNjkwNjlhZjJmNTE3NmJiOGNlOWNhNmQxMWY5Njc1N2YwMzIwNGY3NTY3MDM1ODdkMDBhZDQyNDc5NmM5MmZjN2FlYjZmNDk0NDMxOTk5ZWRhMzA5OTBlNGY1NzczNjMyZWQyNThmZTAyNzY2NzM1OTlkYTZmY2UzNWNkYWQ3NzI2YTBiYjAyNGNhZDk5NmI4OGUwY2I5ODg1NGNlYjVjMGI2ZWM3NDhkOWY5Y2U2YTZjZDQzNzg1OGJhY2I4MTQ2MThhMjcyZmYzYTQxNWM2ZTA3ZjNkYjA5ODg3NzdmZGVjODQ1YTk3YmY3ZDEwMmRkMDMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwZDUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMjAyMTQ1NjRkNTU0MDI1YWY1OTllMzI3MDc5YjI3MjBlZjAwZGYzN2NmYjdjMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDAwNDYwOThkYzVmMmI5OWUzYmMyZWQ2NjQyZDdmMGE2MWVmYWJjMTVjMzhjNzYzMzNiY2NjZWVlZTM2OWE0ZjRhNWJkZGE4ZWE1OTI2NDEyNGU0MjlmMDg2MzI2ODNkZGJhMTdiYmYyNjJkODJiNmJlZmEzYjRlMTQ4MDM3NmE4YzdmM2M3ZDdlMmE2Nzc5YmJmMTgyNjJhYTg1N2RlOGMyMGExMmI2YTJjZThlNGQ3ZjMxZGQxYjE5NTM5MmNmNjE4NWFmY2UzNGFmZTA1ODk2MDU3YjM2ZTliMTcxYjZjNjdlZDdjMjI4NmNiZmE4M2ZmOGExNjdjN2JjNzEwOWFlZTdkN2UxOTA5YmQzODRmYmZjNjE5MzhlZmNhNTFjODk5M2M3MWRiMzE3NzMwZjE2ZTdlNzc2ODY3YWU0ZmRjNTYyZDZmMTVkZTU4NWU3Yjk0ZWY0OTZhMzY3NjM2N2EyY2JhYWI3YjYzNjY0OGIwMDc2YmFkNWNkZjFlMDk3NDBlYzZhNDUxYmZmNTM0ZWZhMjE1MDlmM2JhNzdiODEwMWI5MWVhN2U1NWRkYmZlMTQwMTUxNzA2N2Q3YjAxYTJhMDg3OWYwODg1Yzg5NGE4N2NmYjY4YzRkN2VlODkwNjA0ODgxYWViOTdjMjJkMWYzMzdlZjkyM2UwMzVhNjQwMDMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMzAyMTQ2MjQ3NzI5ODc1OWU4ZTA0NzE4YWU1NjMxNTVmMzUyM2NmYjg0Y2RiMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDA2ZDJjYmIzN2ZkMTI5NTdlNWE3NDgwY2UwNDM1ZThlZjYwNzdkZWYwOGZmMjcwODQ0ZGUyNTE2YTQ3NDJmMjExZDhjNzQ2OTBiYzA5NDhlMDhhMjk2YWJiYTkyODVmNmJiMzA1Yjk1YjdmOTQwOGNlNDRlODM4ODBjNzE5NDQ0NjcyZWM5OTc0NmJhNzhjYzRiZGU0NzUzMTlkMDFiZGU3N2M0OWQ1OGQxNmQzYjJlOTFjMmU2MWU4MzAzY2EzZDdlZGEzNzk3ZmQ4YjM1Y2E3MmJiMTRiMTVhMjRiNTZiYjcwZGMxMzQ4NDU2NTgwODExMGZmNWRiNThjNTZmN2EwNDM1NjA3ZTNjMzUyZmJmNGY1NTEwNmYyOTgwZmQzY2Q0MjM5N2RiZjcxMzdlZTdmMWUzMmNkODBhM2I3YWIxMmI0NmMxNjkyMjAyNzhkNzcxN2I3OGEzYzQ1ZDYzOTVhMTMwYThiNTg4NDFjYmMyOTBlNGY4MTdkZTNhNGZlMTZlY2QwNzdjYTMzYTBhYTI1ZTIzNWNjN2Y2NjU1YTgwYmE4YWVlYzg3OTA1YmIyYTc1NDU5YjdiY2M1YTEzM2YyOTkzNDkzYjQxZmZjZjYzY2Q3YTM5MWUzZTZmNzgwOTRjYTQ0MmM4MDE0NDQwM2NiMGE1ZjAwYmZjNjFhZTg4MCIKIAogUEtDUzcgUGFyc2UgRmFpbHVyZSBJbnZhbGlkIEFTTjE6IENoYW5nZSBsZW5ndGggZnJvbSAxMiB0byAxMSAjNjkxLjAKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBwa2NzN19hc24xX2ZhaWw6IjMwODIwNDlkMDYwOTJhODY0ODg2ZjcwZDAxMDcwMmEwODIwNDhlMzA4MjA0OGEwMjAxMDEzMTBmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwYjA2MDkyYTg2NDg4NmY3MGQwMTA3MDEzMTgyMDQ2NTMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTAyMTQ3YmRlZGRkMjQ0NGNkMWNkZmU1YzQxYTgxMDJjODliN2RmMmU2Y2JmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDA1YmVjZDg3MTk1YzFkZWZmOTBjMjRjOTEyNjliNTViM2YwNjliYzIyNWMzMjZjMzE0YzFhNTE3ODZmZmUxNGM4MzBiZTRlNGJjNzNjYmEzNmM5NzY3N2I0NDE2ODI3OWJlOTFlN2NkZjdjMTkzODZhZTIxODYyNzE5ZDEzYTNhMGZmZjA4MDNkNDYwOTYyZjJjZGE4MzcxNDg0ODczMjUyYzNkNzA1NGRiODE0M2UyYjA4MWEzODE2ZWQwODA0Y2E1MDk5YWU1ZmVjZTgzZDVjMmMzNzgzYjE5ODhiNGI0NmRjOTRlNTU1ODdhMTA3ZWExNTQ2YmYyMmQyOGEwOTdmNjUyYTQwNjZkYzI5NjUyNjkwNjlhZjJmNTE3NmJiOGNlOWNhNmQxMWY5Njc1N2YwMzIwNGY3NTY3MDM1ODdkMDBhZDQyNDc5NmM5MmZjN2FlYjZmNDk0NDMxOTk5ZWRhMzA5OTBlNGY1NzczNjMyZWQyNThmZTAyNzY2NzM1OTlkYTZmY2UzNWNkYWQ3NzI2YTBiYjAyNGNhZDk5NmI4OGUwY2I5ODg1NGNlYjVjMGI2ZWM3NDhkOWY5Y2U2YTZjZDQzNzg1OGJhY2I4MTQ2MThhMjcyZmYzYTQxNWM2ZTA3ZjNkYjA5ODg3NzdmZGVjODQ1YTk3YmY3ZDEwMmRkMDMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYjUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMjAyMTQ1NjRkNTU0MDI1YWY1OTllMzI3MDc5YjI3MjBlZjAwZGYzN2NmYjdjMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDAwNDYwOThkYzVmMmI5OWUzYmMyZWQ2NjQyZDdmMGE2MWVmYWJjMTVjMzhjNzYzMzNiY2NjZWVlZTM2OWE0ZjRhNWJkZGE4ZWE1OTI2NDEyNGU0MjlmMDg2MzI2ODNkZGJhMTdiYmYyNjJkODJiNmJlZmEzYjRlMTQ4MDM3NmE4YzdmM2M3ZDdlMmE2Nzc5YmJmMTgyNjJhYTg1N2RlOGMyMGExMmI2YTJjZThlNGQ3ZjMxZGQxYjE5NTM5MmNmNjE4NWFmY2UzNGFmZTA1ODk2MDU3YjM2ZTliMTcxYjZjNjdlZDdjMjI4NmNiZmE4M2ZmOGExNjdjN2JjNzEwOWFlZTdkN2UxOTA5YmQzODRmYmZjNjE5MzhlZmNhNTFjODk5M2M3MWRiMzE3NzMwZjE2ZTdlNzc2ODY3YWU0ZmRjNTYyZDZmMTVkZTU4NWU3Yjk0ZWY0OTZhMzY3NjM2N2EyY2JhYWI3YjYzNjY0OGIwMDc2YmFkNWNkZjFlMDk3NDBlYzZhNDUxYmZmNTM0ZWZhMjE1MDlmM2JhNzdiODEwMWI5MWVhN2U1NWRkYmZlMTQwMTUxNzA2N2Q3YjAxYTJhMDg3OWYwODg1Yzg5NGE4N2NmYjY4YzRkN2VlODkwNjA0ODgxYWViOTdjMjJkMWYzMzdlZjkyM2UwMzVhNjQwMDMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMzAyMTQ2MjQ3NzI5ODc1OWU4ZTA0NzE4YWU1NjMxNTVmMzUyM2NmYjg0Y2RiMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDA2ZDJjYmIzN2ZkMTI5NTdlNWE3NDgwY2UwNDM1ZThlZjYwNzdkZWYwOGZmMjcwODQ0ZGUyNTE2YTQ3NDJmMjExZDhjNzQ2OTBiYzA5NDhlMDhhMjk2YWJiYTkyODVmNmJiMzA1Yjk1YjdmOTQwOGNlNDRlODM4ODBjNzE5NDQ0NjcyZWM5OTc0NmJhNzhjYzRiZGU0NzUzMTlkMDFiZGU3N2M0OWQ1OGQxNmQzYjJlOTFjMmU2MWU4MzAzY2EzZDdlZGEzNzk3ZmQ4YjM1Y2E3MmJiMTRiMTVhMjRiNTZiYjcwZGMxMzQ4NDU2NTgwODExMGZmNWRiNThjNTZmN2EwNDM1NjA3ZTNjMzUyZmJmNGY1NTEwNmYyOTgwZmQzY2Q0MjM5N2RiZjcxMzdlZTdmMWUzMmNkODBhM2I3YWIxMmI0NmMxNjkyMjAyNzhkNzcxN2I3OGEzYzQ1ZDYzOTVhMTMwYThiNTg4NDFjYmMyOTBlNGY4MTdkZTNhNGZlMTZlY2QwNzdjYTMzYTBhYTI1ZTIzNWNjN2Y2NjU1YTgwYmE4YWVlYzg3OTA1YmIyYTc1NDU5YjdiY2M1YTEzM2YyOTkzNDkzYjQxZmZjZjYzY2Q3YTM5MWUzZTZmNzgwOTRjYTQ0MmM4MDE0NDQwM2NiMGE1ZjAwYmZjNjFhZTg4MCIKIAogUEtDUzcgUGFyc2UgRmFpbHVyZSBJbnZhbGlkIEFTTjE6IENoYW5nZSB0YWcgMDIgdG8gMDQgIzY5Mi4wCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NgogcGtjczdfYXNuMV9mYWlsOiIzMDgyMDQ5ZDA2MDkyYTg2NDg4NmY3MGQwMTA3MDJhMDgyMDQ4ZTMwODIwNDhhMDIwMTAxMzEwZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGIwNjA5MmE4NjQ4ODZmNzBkMDEwNzAxMzE4MjA0NjUzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwNWJlY2Q4NzE5NWMxZGVmZjkwYzI0YzkxMjY5YjU1YjNmMDY5YmMyMjVjMzI2YzMxNGMxYTUxNzg2ZmZlMTRjODMwYmU0ZTRiYzczY2JhMzZjOTc2NzdiNDQxNjgyNzliZTkxZTdjZGY3YzE5Mzg2YWUyMTg2MjcxOWQxM2EzYTBmZmYwODAzZDQ2MDk2MmYyY2RhODM3MTQ4NDg3MzI1MmMzZDcwNTRkYjgxNDNlMmIwODFhMzgxNmVkMDgwNGNhNTA5OWFlNWZlY2U4M2Q1YzJjMzc4M2IxOTg4YjRiNDZkYzk0ZTU1NTg3YTEwN2VhMTU0NmJmMjJkMjhhMDk3ZjY1MmE0MDY2ZGMyOTY1MjY5MDY5YWYyZjUxNzZiYjhjZTljYTZkMTFmOTY3NTdmMDMyMDRmNzU2NzAzNTg3ZDAwYWQ0MjQ3OTZjOTJmYzdhZWI2ZjQ5NDQzMTk5OWVkYTMwOTkwZTRmNTc3MzYzMmVkMjU4ZmUwMjc2NjczNTk5ZGE2ZmNlMzVjZGFkNzcyNmEwYmIwMjRjYWQ5OTZiODhlMGNiOTg4NTRjZWI1YzBiNmVjNzQ4ZDlmOWNlNmE2Y2Q0Mzc4NThiYWNiODE0NjE4YTI3MmZmM2E0MTVjNmUwN2YzZGIwOTg4Nzc3ZmRlYzg0NWE5N2JmN2QxMDJkZDAzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzIwNDE0NTY0ZDU1NDAyNWFmNTk5ZTMyNzA3OWIyNzIwZWYwMGRmMzdjZmI3YzMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwMDQ2MDk4ZGM1ZjJiOTllM2JjMmVkNjY0MmQ3ZjBhNjFlZmFiYzE1YzM4Yzc2MzMzYmNjY2VlZWUzNjlhNGY0YTViZGRhOGVhNTkyNjQxMjRlNDI5ZjA4NjMyNjgzZGRiYTE3YmJmMjYyZDgyYjZiZWZhM2I0ZTE0ODAzNzZhOGM3ZjNjN2Q3ZTJhNjc3OWJiZjE4MjYyYWE4NTdkZThjMjBhMTJiNmEyY2U4ZTRkN2YzMWRkMWIxOTUzOTJjZjYxODVhZmNlMzRhZmUwNTg5NjA1N2IzNmU5YjE3MWI2YzY3ZWQ3YzIyODZjYmZhODNmZjhhMTY3YzdiYzcxMDlhZWU3ZDdlMTkwOWJkMzg0ZmJmYzYxOTM4ZWZjYTUxYzg5OTNjNzFkYjMxNzczMGYxNmU3ZTc3Njg2N2FlNGZkYzU2MmQ2ZjE1ZGU1ODVlN2I5NGVmNDk2YTM2NzYzNjdhMmNiYWFiN2I2MzY2NDhiMDA3NmJhZDVjZGYxZTA5NzQwZWM2YTQ1MWJmZjUzNGVmYTIxNTA5ZjNiYTc3YjgxMDFiOTFlYTdlNTVkZGJmZTE0MDE1MTcwNjdkN2IwMWEyYTA4NzlmMDg4NWM4OTRhODdjZmI2OGM0ZDdlZTg5MDYwNDg4MWFlYjk3YzIyZDFmMzM3ZWY5MjNlMDM1YTY0MDAzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzMwMjE0NjI0NzcyOTg3NTllOGUwNDcxOGFlNTYzMTU1ZjM1MjNjZmI4NGNkYjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwNmQyY2JiMzdmZDEyOTU3ZTVhNzQ4MGNlMDQzNWU4ZWY2MDc3ZGVmMDhmZjI3MDg0NGRlMjUxNmE0NzQyZjIxMWQ4Yzc0NjkwYmMwOTQ4ZTA4YTI5NmFiYmE5Mjg1ZjZiYjMwNWI5NWI3Zjk0MDhjZTQ0ZTgzODgwYzcxOTQ0NDY3MmVjOTk3NDZiYTc4Y2M0YmRlNDc1MzE5ZDAxYmRlNzdjNDlkNThkMTZkM2IyZTkxYzJlNjFlODMwM2NhM2Q3ZWRhMzc5N2ZkOGIzNWNhNzJiYjE0YjE1YTI0YjU2YmI3MGRjMTM0ODQ1NjU4MDgxMTBmZjVkYjU4YzU2ZjdhMDQzNTYwN2UzYzM1MmZiZjRmNTUxMDZmMjk4MGZkM2NkNDIzOTdkYmY3MTM3ZWU3ZjFlMzJjZDgwYTNiN2FiMTJiNDZjMTY5MjIwMjc4ZDc3MTdiNzhhM2M0NWQ2Mzk1YTEzMGE4YjU4ODQxY2JjMjkwZTRmODE3ZGUzYTRmZTE2ZWNkMDc3Y2EzM2EwYWEyNWUyMzVjYzdmNjY1NWE4MGJhOGFlZWM4NzkwNWJiMmE3NTQ1OWI3YmNjNWExMzNmMjk5MzQ5M2I0MWZmY2Y2M2NkN2EzOTFlM2U2Zjc4MDk0Y2E0NDJjODAxNDQ0MDNjYjBhNWYwMGJmYzYxYWU4ODAiCiAKIFBLQ1M3IFBhcnNlIEZhaWx1cmUgSW52YWxpZCBBU04xOiBDaGFuZ2UgbGVuZ3RoIGZyb20gMjAgdG8gMjEgIzY5My4wCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NgogcGtjczdfYXNuMV9mYWlsOiIzMDgyMDQ5ZDA2MDkyYTg2NDg4NmY3MGQwMTA3MDJhMDgyMDQ4ZTMwODIwNDhhMDIwMTAxMzEwZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGIwNjA5MmE4NjQ4ODZmNzBkMDEwNzAxMzE4MjA0NjUzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwNWJlY2Q4NzE5NWMxZGVmZjkwYzI0YzkxMjY5YjU1YjNmMDY5YmMyMjVjMzI2YzMxNGMxYTUxNzg2ZmZlMTRjODMwYmU0ZTRiYzczY2JhMzZjOTc2NzdiNDQxNjgyNzliZTkxZTdjZGY3YzE5Mzg2YWUyMTg2MjcxOWQxM2EzYTBmZmYwODAzZDQ2MDk2MmYyY2RhODM3MTQ4NDg3MzI1MmMzZDcwNTRkYjgxNDNlMmIwODFhMzgxNmVkMDgwNGNhNTA5OWFlNWZlY2U4M2Q1YzJjMzc4M2IxOTg4YjRiNDZkYzk0ZTU1NTg3YTEwN2VhMTU0NmJmMjJkMjhhMDk3ZjY1MmE0MDY2ZGMyOTY1MjY5MDY5YWYyZjUxNzZiYjhjZTljYTZkMTFmOTY3NTdmMDMyMDRmNzU2NzAzNTg3ZDAwYWQ0MjQ3OTZjOTJmYzdhZWI2ZjQ5NDQzMTk5OWVkYTMwOTkwZTRmNTc3MzYzMmVkMjU4ZmUwMjc2NjczNTk5ZGE2ZmNlMzVjZGFkNzcyNmEwYmIwMjRjYWQ5OTZiODhlMGNiOTg4NTRjZWI1YzBiNmVjNzQ4ZDlmOWNlNmE2Y2Q0Mzc4NThiYWNiODE0NjE4YTI3MmZmM2E0MTVjNmUwN2YzZGIwOTg4Nzc3ZmRlYzg0NWE5N2JmN2QxMDJkZDAzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzIwMjE1NTY0ZDU1NDAyNWFmNTk5ZTMyNzA3OWIyNzIwZWYwMGRmMzdjZmI3YzMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwMDQ2MDk4ZGM1ZjJiOTllM2JjMmVkNjY0MmQ3ZjBhNjFlZmFiYzE1YzM4Yzc2MzMzYmNjY2VlZWUzNjlhNGY0YTViZGRhOGVhNTkyNjQxMjRlNDI5ZjA4NjMyNjgzZGRiYTE3YmJmMjYyZDgyYjZiZWZhM2I0ZTE0ODAzNzZhOGM3ZjNjN2Q3ZTJhNjc3OWJiZjE4MjYyYWE4NTdkZThjMjBhMTJiNmEyY2U4ZTRkN2YzMWRkMWIxOTUzOTJjZjYxODVhZmNlMzRhZmUwNTg5NjA1N2IzNmU5YjE3MWI2YzY3ZWQ3YzIyODZjYmZhODNmZjhhMTY3YzdiYzcxMDlhZWU3ZDdlMTkwOWJkMzg0ZmJmYzYxOTM4ZWZjYTUxYzg5OTNjNzFkYjMxNzczMGYxNmU3ZTc3Njg2N2FlNGZkYzU2MmQ2ZjE1ZGU1ODVlN2I5NGVmNDk2YTM2NzYzNjdhMmNiYWFiN2I2MzY2NDhiMDA3NmJhZDVjZGYxZTA5NzQwZWM2YTQ1MWJmZjUzNGVmYTIxNTA5ZjNiYTc3YjgxMDFiOTFlYTdlNTVkZGJmZTE0MDE1MTcwNjdkN2IwMWEyYTA4NzlmMDg4NWM4OTRhODdjZmI2OGM0ZDdlZTg5MDYwNDg4MWFlYjk3YzIyZDFmMzM3ZWY5MjNlMDM1YTY0MDAzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzMwMjE0NjI0NzcyOTg3NTllOGUwNDcxOGFlNTYzMTU1ZjM1MjNjZmI4NGNkYjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwNmQyY2JiMzdmZDEyOTU3ZTVhNzQ4MGNlMDQzNWU4ZWY2MDc3ZGVmMDhmZjI3MDg0NGRlMjUxNmE0NzQyZjIxMWQ4Yzc0NjkwYmMwOTQ4ZTA4YTI5NmFiYmE5Mjg1ZjZiYjMwNWI5NWI3Zjk0MDhjZTQ0ZTgzODgwYzcxOTQ0NDY3MmVjOTk3NDZiYTc4Y2M0YmRlNDc1MzE5ZDAxYmRlNzdjNDlkNThkMTZkM2IyZTkxYzJlNjFlODMwM2NhM2Q3ZWRhMzc5N2ZkOGIzNWNhNzJiYjE0YjE1YTI0YjU2YmI3MGRjMTM0ODQ1NjU4MDgxMTBmZjVkYjU4YzU2ZjdhMDQzNTYwN2UzYzM1MmZiZjRmNTUxMDZmMjk4MGZkM2NkNDIzOTdkYmY3MTM3ZWU3ZjFlMzJjZDgwYTNiN2FiMTJiNDZjMTY5MjIwMjc4ZDc3MTdiNzhhM2M0NWQ2Mzk1YTEzMGE4YjU4ODQxY2JjMjkwZTRmODE3ZGUzYTRmZTE2ZWNkMDc3Y2EzM2EwYWEyNWUyMzVjYzdmNjY1NWE4MGJhOGFlZWM4NzkwNWJiMmE3NTQ1OWI3YmNjNWExMzNmMjk5MzQ5M2I0MWZmY2Y2M2NkN2EzOTFlM2U2Zjc4MDk0Y2E0NDJjODAxNDQ0MDNjYjBhNWYwMGJmYzYxYWU4ODAiCiAKIFBLQ1M3IFBhcnNlIEZhaWx1cmUgSW52YWxpZCBBU04xOiBDaGFuZ2UgbGVuZ3RoIGZyb20gMjAgdG8gMTkgIzY5NC4wCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NgogcGtjczdfYXNuMV9mYWlsOiIzMDgyMDQ5ZDA2MDkyYTg2NDg4NmY3MGQwMTA3MDJhMDgyMDQ4ZTMwODIwNDhhMDIwMTAxMzEwZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGIwNjA5MmE4NjQ4ODZmNzBkMDEwNzAxMzE4MjA0NjUzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwNWJlY2Q4NzE5NWMxZGVmZjkwYzI0YzkxMjY5YjU1YjNmMDY5YmMyMjVjMzI2YzMxNGMxYTUxNzg2ZmZlMTRjODMwYmU0ZTRiYzczY2JhMzZjOTc2NzdiNDQxNjgyNzliZTkxZTdjZGY3YzE5Mzg2YWUyMTg2MjcxOWQxM2EzYTBmZmYwODAzZDQ2MDk2MmYyY2RhODM3MTQ4NDg3MzI1MmMzZDcwNTRkYjgxNDNlMmIwODFhMzgxNmVkMDgwNGNhNTA5OWFlNWZlY2U4M2Q1YzJjMzc4M2IxOTg4YjRiNDZkYzk0ZTU1NTg3YTEwN2VhMTU0NmJmMjJkMjhhMDk3ZjY1MmE0MDY2ZGMyOTY1MjY5MDY5YWYyZjUxNzZiYjhjZTljYTZkMTFmOTY3NTdmMDMyMDRmNzU2NzAzNTg3ZDAwYWQ0MjQ3OTZjOTJmYzdhZWI2ZjQ5NDQzMTk5OWVkYTMwOTkwZTRmNTc3MzYzMmVkMjU4ZmUwMjc2NjczNTk5ZGE2ZmNlMzVjZGFkNzcyNmEwYmIwMjRjYWQ5OTZiODhlMGNiOTg4NTRjZWI1YzBiNmVjNzQ4ZDlmOWNlNmE2Y2Q0Mzc4NThiYWNiODE0NjE4YTI3MmZmM2E0MTVjNmUwN2YzZGIwOTg4Nzc3ZmRlYzg0NWE5N2JmN2QxMDJkZDAzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzIwMjEzNTY0ZDU1NDAyNWFmNTk5ZTMyNzA3OWIyNzIwZWYwMGRmMzdjZmI3YzMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwMDQ2MDk4ZGM1ZjJiOTllM2JjMmVkNjY0MmQ3ZjBhNjFlZmFiYzE1YzM4Yzc2MzMzYmNjY2VlZWUzNjlhNGY0YTViZGRhOGVhNTkyNjQxMjRlNDI5ZjA4NjMyNjgzZGRiYTE3YmJmMjYyZDgyYjZiZWZhM2I0ZTE0ODAzNzZhOGM3ZjNjN2Q3ZTJhNjc3OWJiZjE4MjYyYWE4NTdkZThjMjBhMTJiNmEyY2U4ZTRkN2YzMWRkMWIxOTUzOTJjZjYxODVhZmNlMzRhZmUwNTg5NjA1N2IzNmU5YjE3MWI2YzY3ZWQ3YzIyODZjYmZhODNmZjhhMTY3YzdiYzcxMDlhZWU3ZDdlMTkwOWJkMzg0ZmJmYzYxOTM4ZWZjYTUxYzg5OTNjNzFkYjMxNzczMGYxNmU3ZTc3Njg2N2FlNGZkYzU2MmQ2ZjE1ZGU1ODVlN2I5NGVmNDk2YTM2NzYzNjdhMmNiYWFiN2I2MzY2NDhiMDA3NmJhZDVjZGYxZTA5NzQwZWM2YTQ1MWJmZjUzNGVmYTIxNTA5ZjNiYTc3YjgxMDFiOTFlYTdlNTVkZGJmZTE0MDE1MTcwNjdkN2IwMWEyYTA4NzlmMDg4NWM4OTRhODdjZmI2OGM0ZDdlZTg5MDYwNDg4MWFlYjk3YzIyZDFmMzM3ZWY5MjNlMDM1YTY0MDAzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzMwMjE0NjI0NzcyOTg3NTllOGUwNDcxOGFlNTYzMTU1ZjM1MjNjZmI4NGNkYjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwNmQyY2JiMzdmZDEyOTU3ZTVhNzQ4MGNlMDQzNWU4ZWY2MDc3ZGVmMDhmZjI3MDg0NGRlMjUxNmE0NzQyZjIxMWQ4Yzc0NjkwYmMwOTQ4ZTA4YTI5NmFiYmE5Mjg1ZjZiYjMwNWI5NWI3Zjk0MDhjZTQ0ZTgzODgwYzcxOTQ0NDY3MmVjOTk3NDZiYTc4Y2M0YmRlNDc1MzE5ZDAxYmRlNzdjNDlkNThkMTZkM2IyZTkxYzJlNjFlODMwM2NhM2Q3ZWRhMzc5N2ZkOGIzNWNhNzJiYjE0YjE1YTI0YjU2YmI3MGRjMTM0ODQ1NjU4MDgxMTBmZjVkYjU4YzU2ZjdhMDQzNTYwN2UzYzM1MmZiZjRmNTUxMDZmMjk4MGZkM2NkNDIzOTdkYmY3MTM3ZWU3ZjFlMzJjZDgwYTNiN2FiMTJiNDZjMTY5MjIwMjc4ZDc3MTdiNzhhM2M0NWQ2Mzk1YTEzMGE4YjU4ODQxY2JjMjkwZTRmODE3ZGUzYTRmZTE2ZWNkMDc3Y2EzM2EwYWEyNWUyMzVjYzdmNjY1NWE4MGJhOGFlZWM4NzkwNWJiMmE3NTQ1OWI3YmNjNWExMzNmMjk5MzQ5M2I0MWZmY2Y2M2NkN2EzOTFlM2U2Zjc4MDk0Y2E0NDJjODAxNDQ0MDNjYjBhNWYwMGJmYzYxYWU4ODAiCiAKIFBLQ1M3IFBhcnNlIEZhaWx1cmUgSW52YWxpZCBBU04xOiBDaGFuZ2UgdGFnIDMwIHRvIDAyICM2OTUuMAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHBrY3M3X2FzbjFfZmFpbDoiMzA4MjA0OWQwNjA5MmE4NjQ4ODZmNzBkMDEwNzAyYTA4MjA0OGUzMDgyMDQ4YTAyMDEwMTMxMGYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBiMDYwOTJhODY0ODg2ZjcwZDAxMDcwMTMxODIwNDY1MzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDViZWNkODcxOTVjMWRlZmY5MGMyNGM5MTI2OWI1NWIzZjA2OWJjMjI1YzMyNmMzMTRjMWE1MTc4NmZmZTE0YzgzMGJlNGU0YmM3M2NiYTM2Yzk3Njc3YjQ0MTY4Mjc5YmU5MWU3Y2RmN2MxOTM4NmFlMjE4NjI3MTlkMTNhM2EwZmZmMDgwM2Q0NjA5NjJmMmNkYTgzNzE0ODQ4NzMyNTJjM2Q3MDU0ZGI4MTQzZTJiMDgxYTM4MTZlZDA4MDRjYTUwOTlhZTVmZWNlODNkNWMyYzM3ODNiMTk4OGI0YjQ2ZGM5NGU1NTU4N2ExMDdlYTE1NDZiZjIyZDI4YTA5N2Y2NTJhNDA2NmRjMjk2NTI2OTA2OWFmMmY1MTc2YmI4Y2U5Y2E2ZDExZjk2NzU3ZjAzMjA0Zjc1NjcwMzU4N2QwMGFkNDI0Nzk2YzkyZmM3YWViNmY0OTQ0MzE5OTllZGEzMDk5MGU0ZjU3NzM2MzJlZDI1OGZlMDI3NjY3MzU5OWRhNmZjZTM1Y2RhZDc3MjZhMGJiMDI0Y2FkOTk2Yjg4ZTBjYjk4ODU0Y2ViNWMwYjZlYzc0OGQ5ZjljZTZhNmNkNDM3ODU4YmFjYjgxNDYxOGEyNzJmZjNhNDE1YzZlMDdmM2RiMDk4ODc3N2ZkZWM4NDVhOTdiZjdkMTAyZGQwMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMyMDIxNDU2NGQ1NTQwMjVhZjU5OWUzMjcwNzliMjcyMGVmMDBkZjM3Y2ZiN2MwMjBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDA0NjA5OGRjNWYyYjk5ZTNiYzJlZDY2NDJkN2YwYTYxZWZhYmMxNWMzOGM3NjMzM2JjY2NlZWVlMzY5YTRmNGE1YmRkYThlYTU5MjY0MTI0ZTQyOWYwODYzMjY4M2RkYmExN2JiZjI2MmQ4MmI2YmVmYTNiNGUxNDgwMzc2YThjN2YzYzdkN2UyYTY3NzliYmYxODI2MmFhODU3ZGU4YzIwYTEyYjZhMmNlOGU0ZDdmMzFkZDFiMTk1MzkyY2Y2MTg1YWZjZTM0YWZlMDU4OTYwNTdiMzZlOWIxNzFiNmM2N2VkN2MyMjg2Y2JmYTgzZmY4YTE2N2M3YmM3MTA5YWVlN2Q3ZTE5MDliZDM4NGZiZmM2MTkzOGVmY2E1MWM4OTkzYzcxZGIzMTc3MzBmMTZlN2U3NzY4NjdhZTRmZGM1NjJkNmYxNWRlNTg1ZTdiOTRlZjQ5NmEzNjc2MzY3YTJjYmFhYjdiNjM2NjQ4YjAwNzZiYWQ1Y2RmMWUwOTc0MGVjNmE0NTFiZmY1MzRlZmEyMTUwOWYzYmE3N2I4MTAxYjkxZWE3ZTU1ZGRiZmUxNDAxNTE3MDY3ZDdiMDFhMmEwODc5ZjA4ODVjODk0YTg3Y2ZiNjhjNGQ3ZWU4OTA2MDQ4ODFhZWI5N2MyMmQxZjMzN2VmOTIzZTAzNWE2NDAwMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMzMDIxNDYyNDc3Mjk4NzU5ZThlMDQ3MThhZTU2MzE1NWYzNTIzY2ZiODRjZGIzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDZkMmNiYjM3ZmQxMjk1N2U1YTc0ODBjZTA0MzVlOGVmNjA3N2RlZjA4ZmYyNzA4NDRkZTI1MTZhNDc0MmYyMTFkOGM3NDY5MGJjMDk0OGUwOGEyOTZhYmJhOTI4NWY2YmIzMDViOTViN2Y5NDA4Y2U0NGU4Mzg4MGM3MTk0NDQ2NzJlYzk5NzQ2YmE3OGNjNGJkZTQ3NTMxOWQwMWJkZTc3YzQ5ZDU4ZDE2ZDNiMmU5MWMyZTYxZTgzMDNjYTNkN2VkYTM3OTdmZDhiMzVjYTcyYmIxNGIxNWEyNGI1NmJiNzBkYzEzNDg0NTY1ODA4MTEwZmY1ZGI1OGM1NmY3YTA0MzU2MDdlM2MzNTJmYmY0ZjU1MTA2ZjI5ODBmZDNjZDQyMzk3ZGJmNzEzN2VlN2YxZTMyY2Q4MGEzYjdhYjEyYjQ2YzE2OTIyMDI3OGQ3NzE3Yjc4YTNjNDVkNjM5NWExMzBhOGI1ODg0MWNiYzI5MGU0ZjgxN2RlM2E0ZmUxNmVjZDA3N2NhMzNhMGFhMjVlMjM1Y2M3ZjY2NTVhODBiYThhZWVjODc5MDViYjJhNzU0NTliN2JjYzVhMTMzZjI5OTM0OTNiNDFmZmNmNjNjZDdhMzkxZTNlNmY3ODA5NGNhNDQyYzgwMTQ0NDAzY2IwYTVmMDBiZmM2MWFlODgwIgogCiBQS0NTNyBQYXJzZSBGYWlsdXJlIEludmFsaWQgQVNOMTogQ2hhbmdlIGxlbmd0aCBmcm9tIDEzIHRvIDE0ICM2OTYuMAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHBrY3M3X2FzbjFfZmFpbDoiMzA4MjA0OWQwNjA5MmE4NjQ4ODZmNzBkMDEwNzAyYTA4MjA0OGUzMDgyMDQ4YTAyMDEwMTMxMGYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBiMDYwOTJhODY0ODg2ZjcwZDAxMDcwMTMxODIwNDY1MzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDViZWNkODcxOTVjMWRlZmY5MGMyNGM5MTI2OWI1NWIzZjA2OWJjMjI1YzMyNmMzMTRjMWE1MTc4NmZmZTE0YzgzMGJlNGU0YmM3M2NiYTM2Yzk3Njc3YjQ0MTY4Mjc5YmU5MWU3Y2RmN2MxOTM4NmFlMjE4NjI3MTlkMTNhM2EwZmZmMDgwM2Q0NjA5NjJmMmNkYTgzNzE0ODQ4NzMyNTJjM2Q3MDU0ZGI4MTQzZTJiMDgxYTM4MTZlZDA4MDRjYTUwOTlhZTVmZWNlODNkNWMyYzM3ODNiMTk4OGI0YjQ2ZGM5NGU1NTU4N2ExMDdlYTE1NDZiZjIyZDI4YTA5N2Y2NTJhNDA2NmRjMjk2NTI2OTA2OWFmMmY1MTc2YmI4Y2U5Y2E2ZDExZjk2NzU3ZjAzMjA0Zjc1NjcwMzU4N2QwMGFkNDI0Nzk2YzkyZmM3YWViNmY0OTQ0MzE5OTllZGEzMDk5MGU0ZjU3NzM2MzJlZDI1OGZlMDI3NjY3MzU5OWRhNmZjZTM1Y2RhZDc3MjZhMGJiMDI0Y2FkOTk2Yjg4ZTBjYjk4ODU0Y2ViNWMwYjZlYzc0OGQ5ZjljZTZhNmNkNDM3ODU4YmFjYjgxNDYxOGEyNzJmZjNhNDE1YzZlMDdmM2RiMDk4ODc3N2ZkZWM4NDVhOTdiZjdkMTAyZGQwMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMyMDIxNDU2NGQ1NTQwMjVhZjU5OWUzMjcwNzliMjcyMGVmMDBkZjM3Y2ZiN2MzMDBlMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDA0NjA5OGRjNWYyYjk5ZTNiYzJlZDY2NDJkN2YwYTYxZWZhYmMxNWMzOGM3NjMzM2JjY2NlZWVlMzY5YTRmNGE1YmRkYThlYTU5MjY0MTI0ZTQyOWYwODYzMjY4M2RkYmExN2JiZjI2MmQ4MmI2YmVmYTNiNGUxNDgwMzc2YThjN2YzYzdkN2UyYTY3NzliYmYxODI2MmFhODU3ZGU4YzIwYTEyYjZhMmNlOGU0ZDdmMzFkZDFiMTk1MzkyY2Y2MTg1YWZjZTM0YWZlMDU4OTYwNTdiMzZlOWIxNzFiNmM2N2VkN2MyMjg2Y2JmYTgzZmY4YTE2N2M3YmM3MTA5YWVlN2Q3ZTE5MDliZDM4NGZiZmM2MTkzOGVmY2E1MWM4OTkzYzcxZGIzMTc3MzBmMTZlN2U3NzY4NjdhZTRmZGM1NjJkNmYxNWRlNTg1ZTdiOTRlZjQ5NmEzNjc2MzY3YTJjYmFhYjdiNjM2NjQ4YjAwNzZiYWQ1Y2RmMWUwOTc0MGVjNmE0NTFiZmY1MzRlZmEyMTUwOWYzYmE3N2I4MTAxYjkxZWE3ZTU1ZGRiZmUxNDAxNTE3MDY3ZDdiMDFhMmEwODc5ZjA4ODVjODk0YTg3Y2ZiNjhjNGQ3ZWU4OTA2MDQ4ODFhZWI5N2MyMmQxZjMzN2VmOTIzZTAzNWE2NDAwMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMzMDIxNDYyNDc3Mjk4NzU5ZThlMDQ3MThhZTU2MzE1NWYzNTIzY2ZiODRjZGIzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDZkMmNiYjM3ZmQxMjk1N2U1YTc0ODBjZTA0MzVlOGVmNjA3N2RlZjA4ZmYyNzA4NDRkZTI1MTZhNDc0MmYyMTFkOGM3NDY5MGJjMDk0OGUwOGEyOTZhYmJhOTI4NWY2YmIzMDViOTViN2Y5NDA4Y2U0NGU4Mzg4MGM3MTk0NDQ2NzJlYzk5NzQ2YmE3OGNjNGJkZTQ3NTMxOWQwMWJkZTc3YzQ5ZDU4ZDE2ZDNiMmU5MWMyZTYxZTgzMDNjYTNkN2VkYTM3OTdmZDhiMzVjYTcyYmIxNGIxNWEyNGI1NmJiNzBkYzEzNDg0NTY1ODA4MTEwZmY1ZGI1OGM1NmY3YTA0MzU2MDdlM2MzNTJmYmY0ZjU1MTA2ZjI5ODBmZDNjZDQyMzk3ZGJmNzEzN2VlN2YxZTMyY2Q4MGEzYjdhYjEyYjQ2YzE2OTIyMDI3OGQ3NzE3Yjc4YTNjNDVkNjM5NWExMzBhOGI1ODg0MWNiYzI5MGU0ZjgxN2RlM2E0ZmUxNmVjZDA3N2NhMzNhMGFhMjVlMjM1Y2M3ZjY2NTVhODBiYThhZWVjODc5MDViYjJhNzU0NTliN2JjYzVhMTMzZjI5OTM0OTNiNDFmZmNmNjNjZDdhMzkxZTNlNmY3ODA5NGNhNDQyYzgwMTQ0NDAzY2IwYTVmMDBiZmM2MWFlODgwIgogCiBQS0NTNyBQYXJzZSBGYWlsdXJlIEludmFsaWQgQVNOMTogQ2hhbmdlIGNvbnRlbnRzIG9mIHRhZyAzMCB0byBjb250YWluIG9uZSB1bmFjY291bnRlZCBleHRyYSBieXRlICM2OTcuMAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHBrY3M3X2FzbjFfZmFpbDoiMzA4MjA0OWQwNjA5MmE4NjQ4ODZmNzBkMDEwNzAyYTA4MjA0OGUzMDgyMDQ4YTAyMDEwMTMxMGYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBiMDYwOTJhODY0ODg2ZjcwZDAxMDcwMTMxODIwNDY1MzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDViZWNkODcxOTVjMWRlZmY5MGMyNGM5MTI2OWI1NWIzZjA2OWJjMjI1YzMyNmMzMTRjMWE1MTc4NmZmZTE0YzgzMGJlNGU0YmM3M2NiYTM2Yzk3Njc3YjQ0MTY4Mjc5YmU5MWU3Y2RmN2MxOTM4NmFlMjE4NjI3MTlkMTNhM2EwZmZmMDgwM2Q0NjA5NjJmMmNkYTgzNzE0ODQ4NzMyNTJjM2Q3MDU0ZGI4MTQzZTJiMDgxYTM4MTZlZDA4MDRjYTUwOTlhZTVmZWNlODNkNWMyYzM3ODNiMTk4OGI0YjQ2ZGM5NGU1NTU4N2ExMDdlYTE1NDZiZjIyZDI4YTA5N2Y2NTJhNDA2NmRjMjk2NTI2OTA2OWFmMmY1MTc2YmI4Y2U5Y2E2ZDExZjk2NzU3ZjAzMjA0Zjc1NjcwMzU4N2QwMGFkNDI0Nzk2YzkyZmM3YWViNmY0OTQ0MzE5OTllZGEzMDk5MGU0ZjU3NzM2MzJlZDI1OGZlMDI3NjY3MzU5OWRhNmZjZTM1Y2RhZDc3MjZhMGJiMDI0Y2FkOTk2Yjg4ZTBjYjk4ODU0Y2ViNWMwYjZlYzc0OGQ5ZjljZTZhNmNkNDM3ODU4YmFjYjgxNDYxOGEyNzJmZjNhNDE1YzZlMDdmM2RiMDk4ODc3N2ZkZWM4NDVhOTdiZjdkMTAyZGQwMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMyMDIxNDU2NGQ1NTQwMjVhZjU5OWUzMjcwNzliMjcyMGVmMDBkZjM3Y2ZiN2MzMDBlMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwMDQ2MDk4ZGM1ZjJiOTllM2JjMmVkNjY0MmQ3ZjBhNjFlZmFiYzE1YzM4Yzc2MzMzYmNjY2VlZWUzNjlhNGY0YTViZGRhOGVhNTkyNjQxMjRlNDI5ZjA4NjMyNjgzZGRiYTE3YmJmMjYyZDgyYjZiZWZhM2I0ZTE0ODAzNzZhOGM3ZjNjN2Q3ZTJhNjc3OWJiZjE4MjYyYWE4NTdkZThjMjBhMTJiNmEyY2U4ZTRkN2YzMWRkMWIxOTUzOTJjZjYxODVhZmNlMzRhZmUwNTg5NjA1N2IzNmU5YjE3MWI2YzY3ZWQ3YzIyODZjYmZhODNmZjhhMTY3YzdiYzcxMDlhZWU3ZDdlMTkwOWJkMzg0ZmJmYzYxOTM4ZWZjYTUxYzg5OTNjNzFkYjMxNzczMGYxNmU3ZTc3Njg2N2FlNGZkYzU2MmQ2ZjE1ZGU1ODVlN2I5NGVmNDk2YTM2NzYzNjdhMmNiYWFiN2I2MzY2NDhiMDA3NmJhZDVjZGYxZTA5NzQwZWM2YTQ1MWJmZjUzNGVmYTIxNTA5ZjNiYTc3YjgxMDFiOTFlYTdlNTVkZGJmZTE0MDE1MTcwNjdkN2IwMWEyYTA4NzlmMDg4NWM4OTRhODdjZmI2OGM0ZDdlZTg5MDYwNDg4MWFlYjk3YzIyZDFmMzM3ZWY5MjNlMDM1YTY0MDAzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzMwMjE0NjI0NzcyOTg3NTllOGUwNDcxOGFlNTYzMTU1ZjM1MjNjZmI4NGNkYjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwNmQyY2JiMzdmZDEyOTU3ZTVhNzQ4MGNlMDQzNWU4ZWY2MDc3ZGVmMDhmZjI3MDg0NGRlMjUxNmE0NzQyZjIxMWQ4Yzc0NjkwYmMwOTQ4ZTA4YTI5NmFiYmE5Mjg1ZjZiYjMwNWI5NWI3Zjk0MDhjZTQ0ZTgzODgwYzcxOTQ0NDY3MmVjOTk3NDZiYTc4Y2M0YmRlNDc1MzE5ZDAxYmRlNzdjNDlkNThkMTZkM2IyZTkxYzJlNjFlODMwM2NhM2Q3ZWRhMzc5N2ZkOGIzNWNhNzJiYjE0YjE1YTI0YjU2YmI3MGRjMTM0ODQ1NjU4MDgxMTBmZjVkYjU4YzU2ZjdhMDQzNTYwN2UzYzM1MmZiZjRmNTUxMDZmMjk4MGZkM2NkNDIzOTdkYmY3MTM3ZWU3ZjFlMzJjZDgwYTNiN2FiMTJiNDZjMTY5MjIwMjc4ZDc3MTdiNzhhM2M0NWQ2Mzk1YTEzMGE4YjU4ODQxY2JjMjkwZTRmODE3ZGUzYTRmZTE2ZWNkMDc3Y2EzM2EwYWEyNWUyMzVjYzdmNjY1NWE4MGJhOGFlZWM4NzkwNWJiMmE3NTQ1OWI3YmNjNWExMzNmMjk5MzQ5M2I0MWZmY2Y2M2NkN2EzOTFlM2U2Zjc4MDk0Y2E0NDJjODAxNDQ0MDNjYjBhNWYwMGJmYzYxYWU4ODAiCiAKIFBLQ1M3IFBhcnNlIEZhaWx1cmUgSW52YWxpZCBBU04xOiBDaGFuZ2UgbGVuZ3RoIGZyb20gMTMgdG8gMTIgIzY5OC4wCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NgogcGtjczdfYXNuMV9mYWlsOiIzMDgyMDQ5ZDA2MDkyYTg2NDg4NmY3MGQwMTA3MDJhMDgyMDQ4ZTMwODIwNDhhMDIwMTAxMzEwZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGIwNjA5MmE4NjQ4ODZmNzBkMDEwNzAxMzE4MjA0NjUzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwNWJlY2Q4NzE5NWMxZGVmZjkwYzI0YzkxMjY5YjU1YjNmMDY5YmMyMjVjMzI2YzMxNGMxYTUxNzg2ZmZlMTRjODMwYmU0ZTRiYzczY2JhMzZjOTc2NzdiNDQxNjgyNzliZTkxZTdjZGY3YzE5Mzg2YWUyMTg2MjcxOWQxM2EzYTBmZmYwODAzZDQ2MDk2MmYyY2RhODM3MTQ4NDg3MzI1MmMzZDcwNTRkYjgxNDNlMmIwODFhMzgxNmVkMDgwNGNhNTA5OWFlNWZlY2U4M2Q1YzJjMzc4M2IxOTg4YjRiNDZkYzk0ZTU1NTg3YTEwN2VhMTU0NmJmMjJkMjhhMDk3ZjY1MmE0MDY2ZGMyOTY1MjY5MDY5YWYyZjUxNzZiYjhjZTljYTZkMTFmOTY3NTdmMDMyMDRmNzU2NzAzNTg3ZDAwYWQ0MjQ3OTZjOTJmYzdhZWI2ZjQ5NDQzMTk5OWVkYTMwOTkwZTRmNTc3MzYzMmVkMjU4ZmUwMjc2NjczNTk5ZGE2ZmNlMzVjZGFkNzcyNmEwYmIwMjRjYWQ5OTZiODhlMGNiOTg4NTRjZWI1YzBiNmVjNzQ4ZDlmOWNlNmE2Y2Q0Mzc4NThiYWNiODE0NjE4YTI3MmZmM2E0MTVjNmUwN2YzZGIwOTg4Nzc3ZmRlYzg0NWE5N2JmN2QxMDJkZDAzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzIwMjE0NTY0ZDU1NDAyNWFmNTk5ZTMyNzA3OWIyNzIwZWYwMGRmMzdjZmI3YzMwMGMwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwMDQ2MDk4ZGM1ZjJiOTllM2JjMmVkNjY0MmQ3ZjBhNjFlZmFiYzE1YzM4Yzc2MzMzYmNjY2VlZWUzNjlhNGY0YTViZGRhOGVhNTkyNjQxMjRlNDI5ZjA4NjMyNjgzZGRiYTE3YmJmMjYyZDgyYjZiZWZhM2I0ZTE0ODAzNzZhOGM3ZjNjN2Q3ZTJhNjc3OWJiZjE4MjYyYWE4NTdkZThjMjBhMTJiNmEyY2U4ZTRkN2YzMWRkMWIxOTUzOTJjZjYxODVhZmNlMzRhZmUwNTg5NjA1N2IzNmU5YjE3MWI2YzY3ZWQ3YzIyODZjYmZhODNmZjhhMTY3YzdiYzcxMDlhZWU3ZDdlMTkwOWJkMzg0ZmJmYzYxOTM4ZWZjYTUxYzg5OTNjNzFkYjMxNzczMGYxNmU3ZTc3Njg2N2FlNGZkYzU2MmQ2ZjE1ZGU1ODVlN2I5NGVmNDk2YTM2NzYzNjdhMmNiYWFiN2I2MzY2NDhiMDA3NmJhZDVjZGYxZTA5NzQwZWM2YTQ1MWJmZjUzNGVmYTIxNTA5ZjNiYTc3YjgxMDFiOTFlYTdlNTVkZGJmZTE0MDE1MTcwNjdkN2IwMWEyYTA4NzlmMDg4NWM4OTRhODdjZmI2OGM0ZDdlZTg5MDYwNDg4MWFlYjk3YzIyZDFmMzM3ZWY5MjNlMDM1YTY0MDAzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzMwMjE0NjI0NzcyOTg3NTllOGUwNDcxOGFlNTYzMTU1ZjM1MjNjZmI4NGNkYjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwNmQyY2JiMzdmZDEyOTU3ZTVhNzQ4MGNlMDQzNWU4ZWY2MDc3ZGVmMDhmZjI3MDg0NGRlMjUxNmE0NzQyZjIxMWQ4Yzc0NjkwYmMwOTQ4ZTA4YTI5NmFiYmE5Mjg1ZjZiYjMwNWI5NWI3Zjk0MDhjZTQ0ZTgzODgwYzcxOTQ0NDY3MmVjOTk3NDZiYTc4Y2M0YmRlNDc1MzE5ZDAxYmRlNzdjNDlkNThkMTZkM2IyZTkxYzJlNjFlODMwM2NhM2Q3ZWRhMzc5N2ZkOGIzNWNhNzJiYjE0YjE1YTI0YjU2YmI3MGRjMTM0ODQ1NjU4MDgxMTBmZjVkYjU4YzU2ZjdhMDQzNTYwN2UzYzM1MmZiZjRmNTUxMDZmMjk4MGZkM2NkNDIzOTdkYmY3MTM3ZWU3ZjFlMzJjZDgwYTNiN2FiMTJiNDZjMTY5MjIwMjc4ZDc3MTdiNzhhM2M0NWQ2Mzk1YTEzMGE4YjU4ODQxY2JjMjkwZTRmODE3ZGUzYTRmZTE2ZWNkMDc3Y2EzM2EwYWEyNWUyMzVjYzdmNjY1NWE4MGJhOGFlZWM4NzkwNWJiMmE3NTQ1OWI3YmNjNWExMzNmMjk5MzQ5M2I0MWZmY2Y2M2NkN2EzOTFlM2U2Zjc4MDk0Y2E0NDJjODAxNDQ0MDNjYjBhNWYwMGJmYzYxYWU4ODAiCiAKIFBLQ1M3IFBhcnNlIEZhaWx1cmUgSW52YWxpZCBBU04xOiBDaGFuZ2UgdGFnIDA2IHRvIDAyICM2OTkuMAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHBrY3M3X2FzbjFfZmFpbDoiMzA4MjA0OWQwNjA5MmE4NjQ4ODZmNzBkMDEwNzAyYTA4MjA0OGUzMDgyMDQ4YTAyMDEwMTMxMGYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBiMDYwOTJhODY0ODg2ZjcwZDAxMDcwMTMxODIwNDY1MzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDViZWNkODcxOTVjMWRlZmY5MGMyNGM5MTI2OWI1NWIzZjA2OWJjMjI1YzMyNmMzMTRjMWE1MTc4NmZmZTE0YzgzMGJlNGU0YmM3M2NiYTM2Yzk3Njc3YjQ0MTY4Mjc5YmU5MWU3Y2RmN2MxOTM4NmFlMjE4NjI3MTlkMTNhM2EwZmZmMDgwM2Q0NjA5NjJmMmNkYTgzNzE0ODQ4NzMyNTJjM2Q3MDU0ZGI4MTQzZTJiMDgxYTM4MTZlZDA4MDRjYTUwOTlhZTVmZWNlODNkNWMyYzM3ODNiMTk4OGI0YjQ2ZGM5NGU1NTU4N2ExMDdlYTE1NDZiZjIyZDI4YTA5N2Y2NTJhNDA2NmRjMjk2NTI2OTA2OWFmMmY1MTc2YmI4Y2U5Y2E2ZDExZjk2NzU3ZjAzMjA0Zjc1NjcwMzU4N2QwMGFkNDI0Nzk2YzkyZmM3YWViNmY0OTQ0MzE5OTllZGEzMDk5MGU0ZjU3NzM2MzJlZDI1OGZlMDI3NjY3MzU5OWRhNmZjZTM1Y2RhZDc3MjZhMGJiMDI0Y2FkOTk2Yjg4ZTBjYjk4ODU0Y2ViNWMwYjZlYzc0OGQ5ZjljZTZhNmNkNDM3ODU4YmFjYjgxNDYxOGEyNzJmZjNhNDE1YzZlMDdmM2RiMDk4ODc3N2ZkZWM4NDVhOTdiZjdkMTAyZGQwMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMyMDIxNDU2NGQ1NTQwMjVhZjU5OWUzMjcwNzliMjcyMGVmMDBkZjM3Y2ZiN2MzMDBkMDIwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDA0NjA5OGRjNWYyYjk5ZTNiYzJlZDY2NDJkN2YwYTYxZWZhYmMxNWMzOGM3NjMzM2JjY2NlZWVlMzY5YTRmNGE1YmRkYThlYTU5MjY0MTI0ZTQyOWYwODYzMjY4M2RkYmExN2JiZjI2MmQ4MmI2YmVmYTNiNGUxNDgwMzc2YThjN2YzYzdkN2UyYTY3NzliYmYxODI2MmFhODU3ZGU4YzIwYTEyYjZhMmNlOGU0ZDdmMzFkZDFiMTk1MzkyY2Y2MTg1YWZjZTM0YWZlMDU4OTYwNTdiMzZlOWIxNzFiNmM2N2VkN2MyMjg2Y2JmYTgzZmY4YTE2N2M3YmM3MTA5YWVlN2Q3ZTE5MDliZDM4NGZiZmM2MTkzOGVmY2E1MWM4OTkzYzcxZGIzMTc3MzBmMTZlN2U3NzY4NjdhZTRmZGM1NjJkNmYxNWRlNTg1ZTdiOTRlZjQ5NmEzNjc2MzY3YTJjYmFhYjdiNjM2NjQ4YjAwNzZiYWQ1Y2RmMWUwOTc0MGVjNmE0NTFiZmY1MzRlZmEyMTUwOWYzYmE3N2I4MTAxYjkxZWE3ZTU1ZGRiZmUxNDAxNTE3MDY3ZDdiMDFhMmEwODc5ZjA4ODVjODk0YTg3Y2ZiNjhjNGQ3ZWU4OTA2MDQ4ODFhZWI5N2MyMmQxZjMzN2VmOTIzZTAzNWE2NDAwMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMzMDIxNDYyNDc3Mjk4NzU5ZThlMDQ3MThhZTU2MzE1NWYzNTIzY2ZiODRjZGIzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDZkMmNiYjM3ZmQxMjk1N2U1YTc0ODBjZTA0MzVlOGVmNjA3N2RlZjA4ZmYyNzA4NDRkZTI1MTZhNDc0MmYyMTFkOGM3NDY5MGJjMDk0OGUwOGEyOTZhYmJhOTI4NWY2YmIzMDViOTViN2Y5NDA4Y2U0NGU4Mzg4MGM3MTk0NDQ2NzJlYzk5NzQ2YmE3OGNjNGJkZTQ3NTMxOWQwMWJkZTc3YzQ5ZDU4ZDE2ZDNiMmU5MWMyZTYxZTgzMDNjYTNkN2VkYTM3OTdmZDhiMzVjYTcyYmIxNGIxNWEyNGI1NmJiNzBkYzEzNDg0NTY1ODA4MTEwZmY1ZGI1OGM1NmY3YTA0MzU2MDdlM2MzNTJmYmY0ZjU1MTA2ZjI5ODBmZDNjZDQyMzk3ZGJmNzEzN2VlN2YxZTMyY2Q4MGEzYjdhYjEyYjQ2YzE2OTIyMDI3OGQ3NzE3Yjc4YTNjNDVkNjM5NWExMzBhOGI1ODg0MWNiYzI5MGU0ZjgxN2RlM2E0ZmUxNmVjZDA3N2NhMzNhMGFhMjVlMjM1Y2M3ZjY2NTVhODBiYThhZWVjODc5MDViYjJhNzU0NTliN2JjYzVhMTMzZjI5OTM0OTNiNDFmZmNmNjNjZDdhMzkxZTNlNmY3ODA5NGNhNDQyYzgwMTQ0NDAzY2IwYTVmMDBiZmM2MWFlODgwIgogCiBQS0NTNyBQYXJzZSBGYWlsdXJlIEludmFsaWQgQVNOMTogQ2hhbmdlIGxlbmd0aCBmcm9tIDkgdG8gMTAgIzcwMC4wCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NgogcGtjczdfYXNuMV9mYWlsOiIzMDgyMDQ5ZDA2MDkyYTg2NDg4NmY3MGQwMTA3MDJhMDgyMDQ4ZTMwODIwNDhhMDIwMTAxMzEwZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGIwNjA5MmE4NjQ4ODZmNzBkMDEwNzAxMzE4MjA0NjUzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwNWJlY2Q4NzE5NWMxZGVmZjkwYzI0YzkxMjY5YjU1YjNmMDY5YmMyMjVjMzI2YzMxNGMxYTUxNzg2ZmZlMTRjODMwYmU0ZTRiYzczY2JhMzZjOTc2NzdiNDQxNjgyNzliZTkxZTdjZGY3YzE5Mzg2YWUyMTg2MjcxOWQxM2EzYTBmZmYwODAzZDQ2MDk2MmYyY2RhODM3MTQ4NDg3MzI1MmMzZDcwNTRkYjgxNDNlMmIwODFhMzgxNmVkMDgwNGNhNTA5OWFlNWZlY2U4M2Q1YzJjMzc4M2IxOTg4YjRiNDZkYzk0ZTU1NTg3YTEwN2VhMTU0NmJmMjJkMjhhMDk3ZjY1MmE0MDY2ZGMyOTY1MjY5MDY5YWYyZjUxNzZiYjhjZTljYTZkMTFmOTY3NTdmMDMyMDRmNzU2NzAzNTg3ZDAwYWQ0MjQ3OTZjOTJmYzdhZWI2ZjQ5NDQzMTk5OWVkYTMwOTkwZTRmNTc3MzYzMmVkMjU4ZmUwMjc2NjczNTk5ZGE2ZmNlMzVjZGFkNzcyNmEwYmIwMjRjYWQ5OTZiODhlMGNiOTg4NTRjZWI1YzBiNmVjNzQ4ZDlmOWNlNmE2Y2Q0Mzc4NThiYWNiODE0NjE4YTI3MmZmM2E0MTVjNmUwN2YzZGIwOTg4Nzc3ZmRlYzg0NWE5N2JmN2QxMDJkZDAzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzIwMjE0NTY0ZDU1NDAyNWFmNTk5ZTMyNzA3OWIyNzIwZWYwMGRmMzdjZmI3YzMwMGQwNjBhNjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwMDQ2MDk4ZGM1ZjJiOTllM2JjMmVkNjY0MmQ3ZjBhNjFlZmFiYzE1YzM4Yzc2MzMzYmNjY2VlZWUzNjlhNGY0YTViZGRhOGVhNTkyNjQxMjRlNDI5ZjA4NjMyNjgzZGRiYTE3YmJmMjYyZDgyYjZiZWZhM2I0ZTE0ODAzNzZhOGM3ZjNjN2Q3ZTJhNjc3OWJiZjE4MjYyYWE4NTdkZThjMjBhMTJiNmEyY2U4ZTRkN2YzMWRkMWIxOTUzOTJjZjYxODVhZmNlMzRhZmUwNTg5NjA1N2IzNmU5YjE3MWI2YzY3ZWQ3YzIyODZjYmZhODNmZjhhMTY3YzdiYzcxMDlhZWU3ZDdlMTkwOWJkMzg0ZmJmYzYxOTM4ZWZjYTUxYzg5OTNjNzFkYjMxNzczMGYxNmU3ZTc3Njg2N2FlNGZkYzU2MmQ2ZjE1ZGU1ODVlN2I5NGVmNDk2YTM2NzYzNjdhMmNiYWFiN2I2MzY2NDhiMDA3NmJhZDVjZGYxZTA5NzQwZWM2YTQ1MWJmZjUzNGVmYTIxNTA5ZjNiYTc3YjgxMDFiOTFlYTdlNTVkZGJmZTE0MDE1MTcwNjdkN2IwMWEyYTA4NzlmMDg4NWM4OTRhODdjZmI2OGM0ZDdlZTg5MDYwNDg4MWFlYjk3YzIyZDFmMzM3ZWY5MjNlMDM1YTY0MDAzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzMwMjE0NjI0NzcyOTg3NTllOGUwNDcxOGFlNTYzMTU1ZjM1MjNjZmI4NGNkYjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwNmQyY2JiMzdmZDEyOTU3ZTVhNzQ4MGNlMDQzNWU4ZWY2MDc3ZGVmMDhmZjI3MDg0NGRlMjUxNmE0NzQyZjIxMWQ4Yzc0NjkwYmMwOTQ4ZTA4YTI5NmFiYmE5Mjg1ZjZiYjMwNWI5NWI3Zjk0MDhjZTQ0ZTgzODgwYzcxOTQ0NDY3MmVjOTk3NDZiYTc4Y2M0YmRlNDc1MzE5ZDAxYmRlNzdjNDlkNThkMTZkM2IyZTkxYzJlNjFlODMwM2NhM2Q3ZWRhMzc5N2ZkOGIzNWNhNzJiYjE0YjE1YTI0YjU2YmI3MGRjMTM0ODQ1NjU4MDgxMTBmZjVkYjU4YzU2ZjdhMDQzNTYwN2UzYzM1MmZiZjRmNTUxMDZmMjk4MGZkM2NkNDIzOTdkYmY3MTM3ZWU3ZjFlMzJjZDgwYTNiN2FiMTJiNDZjMTY5MjIwMjc4ZDc3MTdiNzhhM2M0NWQ2Mzk1YTEzMGE4YjU4ODQxY2JjMjkwZTRmODE3ZGUzYTRmZTE2ZWNkMDc3Y2EzM2EwYWEyNWUyMzVjYzdmNjY1NWE4MGJhOGFlZWM4NzkwNWJiMmE3NTQ1OWI3YmNjNWExMzNmMjk5MzQ5M2I0MWZmY2Y2M2NkN2EzOTFlM2U2Zjc4MDk0Y2E0NDJjODAxNDQ0MDNjYjBhNWYwMGJmYzYxYWU4ODAiCiAKIFBLQ1M3IFBhcnNlIEZhaWx1cmUgSW52YWxpZCBBU04xOiBDaGFuZ2UgbGVuZ3RoIGZyb20gOSB0byA4ICM3MDEuMAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHBrY3M3X2FzbjFfZmFpbDoiMzA4MjA0OWQwNjA5MmE4NjQ4ODZmNzBkMDEwNzAyYTA4MjA0OGUzMDgyMDQ4YTAyMDEwMTMxMGYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBiMDYwOTJhODY0ODg2ZjcwZDAxMDcwMTMxODIwNDY1MzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDViZWNkODcxOTVjMWRlZmY5MGMyNGM5MTI2OWI1NWIzZjA2OWJjMjI1YzMyNmMzMTRjMWE1MTc4NmZmZTE0YzgzMGJlNGU0YmM3M2NiYTM2Yzk3Njc3YjQ0MTY4Mjc5YmU5MWU3Y2RmN2MxOTM4NmFlMjE4NjI3MTlkMTNhM2EwZmZmMDgwM2Q0NjA5NjJmMmNkYTgzNzE0ODQ4NzMyNTJjM2Q3MDU0ZGI4MTQzZTJiMDgxYTM4MTZlZDA4MDRjYTUwOTlhZTVmZWNlODNkNWMyYzM3ODNiMTk4OGI0YjQ2ZGM5NGU1NTU4N2ExMDdlYTE1NDZiZjIyZDI4YTA5N2Y2NTJhNDA2NmRjMjk2NTI2OTA2OWFmMmY1MTc2YmI4Y2U5Y2E2ZDExZjk2NzU3ZjAzMjA0Zjc1NjcwMzU4N2QwMGFkNDI0Nzk2YzkyZmM3YWViNmY0OTQ0MzE5OTllZGEzMDk5MGU0ZjU3NzM2MzJlZDI1OGZlMDI3NjY3MzU5OWRhNmZjZTM1Y2RhZDc3MjZhMGJiMDI0Y2FkOTk2Yjg4ZTBjYjk4ODU0Y2ViNWMwYjZlYzc0OGQ5ZjljZTZhNmNkNDM3ODU4YmFjYjgxNDYxOGEyNzJmZjNhNDE1YzZlMDdmM2RiMDk4ODc3N2ZkZWM4NDVhOTdiZjdkMTAyZGQwMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMyMDIxNDU2NGQ1NTQwMjVhZjU5OWUzMjcwNzliMjcyMGVmMDBkZjM3Y2ZiN2MzMDBkMDYwODYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDA0NjA5OGRjNWYyYjk5ZTNiYzJlZDY2NDJkN2YwYTYxZWZhYmMxNWMzOGM3NjMzM2JjY2NlZWVlMzY5YTRmNGE1YmRkYThlYTU5MjY0MTI0ZTQyOWYwODYzMjY4M2RkYmExN2JiZjI2MmQ4MmI2YmVmYTNiNGUxNDgwMzc2YThjN2YzYzdkN2UyYTY3NzliYmYxODI2MmFhODU3ZGU4YzIwYTEyYjZhMmNlOGU0ZDdmMzFkZDFiMTk1MzkyY2Y2MTg1YWZjZTM0YWZlMDU4OTYwNTdiMzZlOWIxNzFiNmM2N2VkN2MyMjg2Y2JmYTgzZmY4YTE2N2M3YmM3MTA5YWVlN2Q3ZTE5MDliZDM4NGZiZmM2MTkzOGVmY2E1MWM4OTkzYzcxZGIzMTc3MzBmMTZlN2U3NzY4NjdhZTRmZGM1NjJkNmYxNWRlNTg1ZTdiOTRlZjQ5NmEzNjc2MzY3YTJjYmFhYjdiNjM2NjQ4YjAwNzZiYWQ1Y2RmMWUwOTc0MGVjNmE0NTFiZmY1MzRlZmEyMTUwOWYzYmE3N2I4MTAxYjkxZWE3ZTU1ZGRiZmUxNDAxNTE3MDY3ZDdiMDFhMmEwODc5ZjA4ODVjODk0YTg3Y2ZiNjhjNGQ3ZWU4OTA2MDQ4ODFhZWI5N2MyMmQxZjMzN2VmOTIzZTAzNWE2NDAwMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMzMDIxNDYyNDc3Mjk4NzU5ZThlMDQ3MThhZTU2MzE1NWYzNTIzY2ZiODRjZGIzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDZkMmNiYjM3ZmQxMjk1N2U1YTc0ODBjZTA0MzVlOGVmNjA3N2RlZjA4ZmYyNzA4NDRkZTI1MTZhNDc0MmYyMTFkOGM3NDY5MGJjMDk0OGUwOGEyOTZhYmJhOTI4NWY2YmIzMDViOTViN2Y5NDA4Y2U0NGU4Mzg4MGM3MTk0NDQ2NzJlYzk5NzQ2YmE3OGNjNGJkZTQ3NTMxOWQwMWJkZTc3YzQ5ZDU4ZDE2ZDNiMmU5MWMyZTYxZTgzMDNjYTNkN2VkYTM3OTdmZDhiMzVjYTcyYmIxNGIxNWEyNGI1NmJiNzBkYzEzNDg0NTY1ODA4MTEwZmY1ZGI1OGM1NmY3YTA0MzU2MDdlM2MzNTJmYmY0ZjU1MTA2ZjI5ODBmZDNjZDQyMzk3ZGJmNzEzN2VlN2YxZTMyY2Q4MGEzYjdhYjEyYjQ2YzE2OTIyMDI3OGQ3NzE3Yjc4YTNjNDVkNjM5NWExMzBhOGI1ODg0MWNiYzI5MGU0ZjgxN2RlM2E0ZmUxNmVjZDA3N2NhMzNhMGFhMjVlMjM1Y2M3ZjY2NTVhODBiYThhZWVjODc5MDViYjJhNzU0NTliN2JjYzVhMTMzZjI5OTM0OTNiNDFmZmNmNjNjZDdhMzkxZTNlNmY3ODA5NGNhNDQyYzgwMTQ0NDAzY2IwYTVmMDBiZmM2MWFlODgwIgogCiBQS0NTNyBQYXJzZSBGYWlsdXJlIEludmFsaWQgQVNOMTogQ2hhbmdlIHRhZyAwNSB0byAwMiAjNzAyLjAKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBwa2NzN19hc24xX2ZhaWw6IjMwODIwNDlkMDYwOTJhODY0ODg2ZjcwZDAxMDcwMmEwODIwNDhlMzA4MjA0OGEwMjAxMDEzMTBmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwYjA2MDkyYTg2NDg4NmY3MGQwMTA3MDEzMTgyMDQ2NTMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTAyMTQ3YmRlZGRkMjQ0NGNkMWNkZmU1YzQxYTgxMDJjODliN2RmMmU2Y2JmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDA1YmVjZDg3MTk1YzFkZWZmOTBjMjRjOTEyNjliNTViM2YwNjliYzIyNWMzMjZjMzE0YzFhNTE3ODZmZmUxNGM4MzBiZTRlNGJjNzNjYmEzNmM5NzY3N2I0NDE2ODI3OWJlOTFlN2NkZjdjMTkzODZhZTIxODYyNzE5ZDEzYTNhMGZmZjA4MDNkNDYwOTYyZjJjZGE4MzcxNDg0ODczMjUyYzNkNzA1NGRiODE0M2UyYjA4MWEzODE2ZWQwODA0Y2E1MDk5YWU1ZmVjZTgzZDVjMmMzNzgzYjE5ODhiNGI0NmRjOTRlNTU1ODdhMTA3ZWExNTQ2YmYyMmQyOGEwOTdmNjUyYTQwNjZkYzI5NjUyNjkwNjlhZjJmNTE3NmJiOGNlOWNhNmQxMWY5Njc1N2YwMzIwNGY3NTY3MDM1ODdkMDBhZDQyNDc5NmM5MmZjN2FlYjZmNDk0NDMxOTk5ZWRhMzA5OTBlNGY1NzczNjMyZWQyNThmZTAyNzY2NzM1OTlkYTZmY2UzNWNkYWQ3NzI2YTBiYjAyNGNhZDk5NmI4OGUwY2I5ODg1NGNlYjVjMGI2ZWM3NDhkOWY5Y2U2YTZjZDQzNzg1OGJhY2I4MTQ2MThhMjcyZmYzYTQxNWM2ZTA3ZjNkYjA5ODg3NzdmZGVjODQ1YTk3YmY3ZDEwMmRkMDMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMjAyMTQ1NjRkNTU0MDI1YWY1OTllMzI3MDc5YjI3MjBlZjAwZGYzN2NmYjdjMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwMjAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDAwNDYwOThkYzVmMmI5OWUzYmMyZWQ2NjQyZDdmMGE2MWVmYWJjMTVjMzhjNzYzMzNiY2NjZWVlZTM2OWE0ZjRhNWJkZGE4ZWE1OTI2NDEyNGU0MjlmMDg2MzI2ODNkZGJhMTdiYmYyNjJkODJiNmJlZmEzYjRlMTQ4MDM3NmE4YzdmM2M3ZDdlMmE2Nzc5YmJmMTgyNjJhYTg1N2RlOGMyMGExMmI2YTJjZThlNGQ3ZjMxZGQxYjE5NTM5MmNmNjE4NWFmY2UzNGFmZTA1ODk2MDU3YjM2ZTliMTcxYjZjNjdlZDdjMjI4NmNiZmE4M2ZmOGExNjdjN2JjNzEwOWFlZTdkN2UxOTA5YmQzODRmYmZjNjE5MzhlZmNhNTFjODk5M2M3MWRiMzE3NzMwZjE2ZTdlNzc2ODY3YWU0ZmRjNTYyZDZmMTVkZTU4NWU3Yjk0ZWY0OTZhMzY3NjM2N2EyY2JhYWI3YjYzNjY0OGIwMDc2YmFkNWNkZjFlMDk3NDBlYzZhNDUxYmZmNTM0ZWZhMjE1MDlmM2JhNzdiODEwMWI5MWVhN2U1NWRkYmZlMTQwMTUxNzA2N2Q3YjAxYTJhMDg3OWYwODg1Yzg5NGE4N2NmYjY4YzRkN2VlODkwNjA0ODgxYWViOTdjMjJkMWYzMzdlZjkyM2UwMzVhNjQwMDMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMzAyMTQ2MjQ3NzI5ODc1OWU4ZTA0NzE4YWU1NjMxNTVmMzUyM2NmYjg0Y2RiMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDA2ZDJjYmIzN2ZkMTI5NTdlNWE3NDgwY2UwNDM1ZThlZjYwNzdkZWYwOGZmMjcwODQ0ZGUyNTE2YTQ3NDJmMjExZDhjNzQ2OTBiYzA5NDhlMDhhMjk2YWJiYTkyODVmNmJiMzA1Yjk1YjdmOTQwOGNlNDRlODM4ODBjNzE5NDQ0NjcyZWM5OTc0NmJhNzhjYzRiZGU0NzUzMTlkMDFiZGU3N2M0OWQ1OGQxNmQzYjJlOTFjMmU2MWU4MzAzY2EzZDdlZGEzNzk3ZmQ4YjM1Y2E3MmJiMTRiMTVhMjRiNTZiYjcwZGMxMzQ4NDU2NTgwODExMGZmNWRiNThjNTZmN2EwNDM1NjA3ZTNjMzUyZmJmNGY1NTEwNmYyOTgwZmQzY2Q0MjM5N2RiZjcxMzdlZTdmMWUzMmNkODBhM2I3YWIxMmI0NmMxNjkyMjAyNzhkNzcxN2I3OGEzYzQ1ZDYzOTVhMTMwYThiNTg4NDFjYmMyOTBlNGY4MTdkZTNhNGZlMTZlY2QwNzdjYTMzYTBhYTI1ZTIzNWNjN2Y2NjU1YTgwYmE4YWVlYzg3OTA1YmIyYTc1NDU5YjdiY2M1YTEzM2YyOTkzNDkzYjQxZmZjZjYzY2Q3YTM5MWUzZTZmNzgwOTRjYTQ0MmM4MDE0NDQwM2NiMGE1ZjAwYmZjNjFhZTg4MCIKIAogUEtDUzcgUGFyc2UgRmFpbHVyZSBJbnZhbGlkIEFTTjE6IENoYW5nZSBsZW5ndGggZnJvbSAwIHRvIDEgIzcwMy4wCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NgogcGtjczdfYXNuMV9mYWlsOiIzMDgyMDQ5ZDA2MDkyYTg2NDg4NmY3MGQwMTA3MDJhMDgyMDQ4ZTMwODIwNDhhMDIwMTAxMzEwZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGIwNjA5MmE4NjQ4ODZmNzBkMDEwNzAxMzE4MjA0NjUzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwNWJlY2Q4NzE5NWMxZGVmZjkwYzI0YzkxMjY5YjU1YjNmMDY5YmMyMjVjMzI2YzMxNGMxYTUxNzg2ZmZlMTRjODMwYmU0ZTRiYzczY2JhMzZjOTc2NzdiNDQxNjgyNzliZTkxZTdjZGY3YzE5Mzg2YWUyMTg2MjcxOWQxM2EzYTBmZmYwODAzZDQ2MDk2MmYyY2RhODM3MTQ4NDg3MzI1MmMzZDcwNTRkYjgxNDNlMmIwODFhMzgxNmVkMDgwNGNhNTA5OWFlNWZlY2U4M2Q1YzJjMzc4M2IxOTg4YjRiNDZkYzk0ZTU1NTg3YTEwN2VhMTU0NmJmMjJkMjhhMDk3ZjY1MmE0MDY2ZGMyOTY1MjY5MDY5YWYyZjUxNzZiYjhjZTljYTZkMTFmOTY3NTdmMDMyMDRmNzU2NzAzNTg3ZDAwYWQ0MjQ3OTZjOTJmYzdhZWI2ZjQ5NDQzMTk5OWVkYTMwOTkwZTRmNTc3MzYzMmVkMjU4ZmUwMjc2NjczNTk5ZGE2ZmNlMzVjZGFkNzcyNmEwYmIwMjRjYWQ5OTZiODhlMGNiOTg4NTRjZWI1YzBiNmVjNzQ4ZDlmOWNlNmE2Y2Q0Mzc4NThiYWNiODE0NjE4YTI3MmZmM2E0MTVjNmUwN2YzZGIwOTg4Nzc3ZmRlYzg0NWE5N2JmN2QxMDJkZDAzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzIwMjE0NTY0ZDU1NDAyNWFmNTk5ZTMyNzA3OWIyNzIwZWYwMGRmMzdjZmI3YzMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMTMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwMDQ2MDk4ZGM1ZjJiOTllM2JjMmVkNjY0MmQ3ZjBhNjFlZmFiYzE1YzM4Yzc2MzMzYmNjY2VlZWUzNjlhNGY0YTViZGRhOGVhNTkyNjQxMjRlNDI5ZjA4NjMyNjgzZGRiYTE3YmJmMjYyZDgyYjZiZWZhM2I0ZTE0ODAzNzZhOGM3ZjNjN2Q3ZTJhNjc3OWJiZjE4MjYyYWE4NTdkZThjMjBhMTJiNmEyY2U4ZTRkN2YzMWRkMWIxOTUzOTJjZjYxODVhZmNlMzRhZmUwNTg5NjA1N2IzNmU5YjE3MWI2YzY3ZWQ3YzIyODZjYmZhODNmZjhhMTY3YzdiYzcxMDlhZWU3ZDdlMTkwOWJkMzg0ZmJmYzYxOTM4ZWZjYTUxYzg5OTNjNzFkYjMxNzczMGYxNmU3ZTc3Njg2N2FlNGZkYzU2MmQ2ZjE1ZGU1ODVlN2I5NGVmNDk2YTM2NzYzNjdhMmNiYWFiN2I2MzY2NDhiMDA3NmJhZDVjZGYxZTA5NzQwZWM2YTQ1MWJmZjUzNGVmYTIxNTA5ZjNiYTc3YjgxMDFiOTFlYTdlNTVkZGJmZTE0MDE1MTcwNjdkN2IwMWEyYTA4NzlmMDg4NWM4OTRhODdjZmI2OGM0ZDdlZTg5MDYwNDg4MWFlYjk3YzIyZDFmMzM3ZWY5MjNlMDM1YTY0MDAzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzMwMjE0NjI0NzcyOTg3NTllOGUwNDcxOGFlNTYzMTU1ZjM1MjNjZmI4NGNkYjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwNmQyY2JiMzdmZDEyOTU3ZTVhNzQ4MGNlMDQzNWU4ZWY2MDc3ZGVmMDhmZjI3MDg0NGRlMjUxNmE0NzQyZjIxMWQ4Yzc0NjkwYmMwOTQ4ZTA4YTI5NmFiYmE5Mjg1ZjZiYjMwNWI5NWI3Zjk0MDhjZTQ0ZTgzODgwYzcxOTQ0NDY3MmVjOTk3NDZiYTc4Y2M0YmRlNDc1MzE5ZDAxYmRlNzdjNDlkNThkMTZkM2IyZTkxYzJlNjFlODMwM2NhM2Q3ZWRhMzc5N2ZkOGIzNWNhNzJiYjE0YjE1YTI0YjU2YmI3MGRjMTM0ODQ1NjU4MDgxMTBmZjVkYjU4YzU2ZjdhMDQzNTYwN2UzYzM1MmZiZjRmNTUxMDZmMjk4MGZkM2NkNDIzOTdkYmY3MTM3ZWU3ZjFlMzJjZDgwYTNiN2FiMTJiNDZjMTY5MjIwMjc4ZDc3MTdiNzhhM2M0NWQ2Mzk1YTEzMGE4YjU4ODQxY2JjMjkwZTRmODE3ZGUzYTRmZTE2ZWNkMDc3Y2EzM2EwYWEyNWUyMzVjYzdmNjY1NWE4MGJhOGFlZWM4NzkwNWJiMmE3NTQ1OWI3YmNjNWExMzNmMjk5MzQ5M2I0MWZmY2Y2M2NkN2EzOTFlM2U2Zjc4MDk0Y2E0NDJjODAxNDQ0MDNjYjBhNWYwMGJmYzYxYWU4ODAiCiAKIFBLQ1M3IFBhcnNlIEZhaWx1cmUgSW52YWxpZCBBU04xOiBDaGFuZ2UgdGFnIDMwIHRvIDAyICM3MDQuMAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHBrY3M3X2FzbjFfZmFpbDoiMzA4MjA0OWQwNjA5MmE4NjQ4ODZmNzBkMDEwNzAyYTA4MjA0OGUzMDgyMDQ4YTAyMDEwMTMxMGYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBiMDYwOTJhODY0ODg2ZjcwZDAxMDcwMTMxODIwNDY1MzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDViZWNkODcxOTVjMWRlZmY5MGMyNGM5MTI2OWI1NWIzZjA2OWJjMjI1YzMyNmMzMTRjMWE1MTc4NmZmZTE0YzgzMGJlNGU0YmM3M2NiYTM2Yzk3Njc3YjQ0MTY4Mjc5YmU5MWU3Y2RmN2MxOTM4NmFlMjE4NjI3MTlkMTNhM2EwZmZmMDgwM2Q0NjA5NjJmMmNkYTgzNzE0ODQ4NzMyNTJjM2Q3MDU0ZGI4MTQzZTJiMDgxYTM4MTZlZDA4MDRjYTUwOTlhZTVmZWNlODNkNWMyYzM3ODNiMTk4OGI0YjQ2ZGM5NGU1NTU4N2ExMDdlYTE1NDZiZjIyZDI4YTA5N2Y2NTJhNDA2NmRjMjk2NTI2OTA2OWFmMmY1MTc2YmI4Y2U5Y2E2ZDExZjk2NzU3ZjAzMjA0Zjc1NjcwMzU4N2QwMGFkNDI0Nzk2YzkyZmM3YWViNmY0OTQ0MzE5OTllZGEzMDk5MGU0ZjU3NzM2MzJlZDI1OGZlMDI3NjY3MzU5OWRhNmZjZTM1Y2RhZDc3MjZhMGJiMDI0Y2FkOTk2Yjg4ZTBjYjk4ODU0Y2ViNWMwYjZlYzc0OGQ5ZjljZTZhNmNkNDM3ODU4YmFjYjgxNDYxOGEyNzJmZjNhNDE1YzZlMDdmM2RiMDk4ODc3N2ZkZWM4NDVhOTdiZjdkMTAyZGQwMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMyMDIxNDU2NGQ1NTQwMjVhZjU5OWUzMjcwNzliMjcyMGVmMDBkZjM3Y2ZiN2MzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAwMjBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDA0NjA5OGRjNWYyYjk5ZTNiYzJlZDY2NDJkN2YwYTYxZWZhYmMxNWMzOGM3NjMzM2JjY2NlZWVlMzY5YTRmNGE1YmRkYThlYTU5MjY0MTI0ZTQyOWYwODYzMjY4M2RkYmExN2JiZjI2MmQ4MmI2YmVmYTNiNGUxNDgwMzc2YThjN2YzYzdkN2UyYTY3NzliYmYxODI2MmFhODU3ZGU4YzIwYTEyYjZhMmNlOGU0ZDdmMzFkZDFiMTk1MzkyY2Y2MTg1YWZjZTM0YWZlMDU4OTYwNTdiMzZlOWIxNzFiNmM2N2VkN2MyMjg2Y2JmYTgzZmY4YTE2N2M3YmM3MTA5YWVlN2Q3ZTE5MDliZDM4NGZiZmM2MTkzOGVmY2E1MWM4OTkzYzcxZGIzMTc3MzBmMTZlN2U3NzY4NjdhZTRmZGM1NjJkNmYxNWRlNTg1ZTdiOTRlZjQ5NmEzNjc2MzY3YTJjYmFhYjdiNjM2NjQ4YjAwNzZiYWQ1Y2RmMWUwOTc0MGVjNmE0NTFiZmY1MzRlZmEyMTUwOWYzYmE3N2I4MTAxYjkxZWE3ZTU1ZGRiZmUxNDAxNTE3MDY3ZDdiMDFhMmEwODc5ZjA4ODVjODk0YTg3Y2ZiNjhjNGQ3ZWU4OTA2MDQ4ODFhZWI5N2MyMmQxZjMzN2VmOTIzZTAzNWE2NDAwMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMzMDIxNDYyNDc3Mjk4NzU5ZThlMDQ3MThhZTU2MzE1NWYzNTIzY2ZiODRjZGIzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDZkMmNiYjM3ZmQxMjk1N2U1YTc0ODBjZTA0MzVlOGVmNjA3N2RlZjA4ZmYyNzA4NDRkZTI1MTZhNDc0MmYyMTFkOGM3NDY5MGJjMDk0OGUwOGEyOTZhYmJhOTI4NWY2YmIzMDViOTViN2Y5NDA4Y2U0NGU4Mzg4MGM3MTk0NDQ2NzJlYzk5NzQ2YmE3OGNjNGJkZTQ3NTMxOWQwMWJkZTc3YzQ5ZDU4ZDE2ZDNiMmU5MWMyZTYxZTgzMDNjYTNkN2VkYTM3OTdmZDhiMzVjYTcyYmIxNGIxNWEyNGI1NmJiNzBkYzEzNDg0NTY1ODA4MTEwZmY1ZGI1OGM1NmY3YTA0MzU2MDdlM2MzNTJmYmY0ZjU1MTA2ZjI5ODBmZDNjZDQyMzk3ZGJmNzEzN2VlN2YxZTMyY2Q4MGEzYjdhYjEyYjQ2YzE2OTIyMDI3OGQ3NzE3Yjc4YTNjNDVkNjM5NWExMzBhOGI1ODg0MWNiYzI5MGU0ZjgxN2RlM2E0ZmUxNmVjZDA3N2NhMzNhMGFhMjVlMjM1Y2M3ZjY2NTVhODBiYThhZWVjODc5MDViYjJhNzU0NTliN2JjYzVhMTMzZjI5OTM0OTNiNDFmZmNmNjNjZDdhMzkxZTNlNmY3ODA5NGNhNDQyYzgwMTQ0NDAzY2IwYTVmMDBiZmM2MWFlODgwIgogCiBQS0NTNyBQYXJzZSBGYWlsdXJlIEludmFsaWQgQVNOMTogQ2hhbmdlIGxlbmd0aCBmcm9tIDEzIHRvIDE0ICM3MDUuMAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHBrY3M3X2FzbjFfZmFpbDoiMzA4MjA0OWQwNjA5MmE4NjQ4ODZmNzBkMDEwNzAyYTA4MjA0OGUzMDgyMDQ4YTAyMDEwMTMxMGYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBiMDYwOTJhODY0ODg2ZjcwZDAxMDcwMTMxODIwNDY1MzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDViZWNkODcxOTVjMWRlZmY5MGMyNGM5MTI2OWI1NWIzZjA2OWJjMjI1YzMyNmMzMTRjMWE1MTc4NmZmZTE0YzgzMGJlNGU0YmM3M2NiYTM2Yzk3Njc3YjQ0MTY4Mjc5YmU5MWU3Y2RmN2MxOTM4NmFlMjE4NjI3MTlkMTNhM2EwZmZmMDgwM2Q0NjA5NjJmMmNkYTgzNzE0ODQ4NzMyNTJjM2Q3MDU0ZGI4MTQzZTJiMDgxYTM4MTZlZDA4MDRjYTUwOTlhZTVmZWNlODNkNWMyYzM3ODNiMTk4OGI0YjQ2ZGM5NGU1NTU4N2ExMDdlYTE1NDZiZjIyZDI4YTA5N2Y2NTJhNDA2NmRjMjk2NTI2OTA2OWFmMmY1MTc2YmI4Y2U5Y2E2ZDExZjk2NzU3ZjAzMjA0Zjc1NjcwMzU4N2QwMGFkNDI0Nzk2YzkyZmM3YWViNmY0OTQ0MzE5OTllZGEzMDk5MGU0ZjU3NzM2MzJlZDI1OGZlMDI3NjY3MzU5OWRhNmZjZTM1Y2RhZDc3MjZhMGJiMDI0Y2FkOTk2Yjg4ZTBjYjk4ODU0Y2ViNWMwYjZlYzc0OGQ5ZjljZTZhNmNkNDM3ODU4YmFjYjgxNDYxOGEyNzJmZjNhNDE1YzZlMDdmM2RiMDk4ODc3N2ZkZWM4NDVhOTdiZjdkMTAyZGQwMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMyMDIxNDU2NGQ1NTQwMjVhZjU5OWUzMjcwNzliMjcyMGVmMDBkZjM3Y2ZiN2MzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBlMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDA0NjA5OGRjNWYyYjk5ZTNiYzJlZDY2NDJkN2YwYTYxZWZhYmMxNWMzOGM3NjMzM2JjY2NlZWVlMzY5YTRmNGE1YmRkYThlYTU5MjY0MTI0ZTQyOWYwODYzMjY4M2RkYmExN2JiZjI2MmQ4MmI2YmVmYTNiNGUxNDgwMzc2YThjN2YzYzdkN2UyYTY3NzliYmYxODI2MmFhODU3ZGU4YzIwYTEyYjZhMmNlOGU0ZDdmMzFkZDFiMTk1MzkyY2Y2MTg1YWZjZTM0YWZlMDU4OTYwNTdiMzZlOWIxNzFiNmM2N2VkN2MyMjg2Y2JmYTgzZmY4YTE2N2M3YmM3MTA5YWVlN2Q3ZTE5MDliZDM4NGZiZmM2MTkzOGVmY2E1MWM4OTkzYzcxZGIzMTc3MzBmMTZlN2U3NzY4NjdhZTRmZGM1NjJkNmYxNWRlNTg1ZTdiOTRlZjQ5NmEzNjc2MzY3YTJjYmFhYjdiNjM2NjQ4YjAwNzZiYWQ1Y2RmMWUwOTc0MGVjNmE0NTFiZmY1MzRlZmEyMTUwOWYzYmE3N2I4MTAxYjkxZWE3ZTU1ZGRiZmUxNDAxNTE3MDY3ZDdiMDFhMmEwODc5ZjA4ODVjODk0YTg3Y2ZiNjhjNGQ3ZWU4OTA2MDQ4ODFhZWI5N2MyMmQxZjMzN2VmOTIzZTAzNWE2NDAwMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMzMDIxNDYyNDc3Mjk4NzU5ZThlMDQ3MThhZTU2MzE1NWYzNTIzY2ZiODRjZGIzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDZkMmNiYjM3ZmQxMjk1N2U1YTc0ODBjZTA0MzVlOGVmNjA3N2RlZjA4ZmYyNzA4NDRkZTI1MTZhNDc0MmYyMTFkOGM3NDY5MGJjMDk0OGUwOGEyOTZhYmJhOTI4NWY2YmIzMDViOTViN2Y5NDA4Y2U0NGU4Mzg4MGM3MTk0NDQ2NzJlYzk5NzQ2YmE3OGNjNGJkZTQ3NTMxOWQwMWJkZTc3YzQ5ZDU4ZDE2ZDNiMmU5MWMyZTYxZTgzMDNjYTNkN2VkYTM3OTdmZDhiMzVjYTcyYmIxNGIxNWEyNGI1NmJiNzBkYzEzNDg0NTY1ODA4MTEwZmY1ZGI1OGM1NmY3YTA0MzU2MDdlM2MzNTJmYmY0ZjU1MTA2ZjI5ODBmZDNjZDQyMzk3ZGJmNzEzN2VlN2YxZTMyY2Q4MGEzYjdhYjEyYjQ2YzE2OTIyMDI3OGQ3NzE3Yjc4YTNjNDVkNjM5NWExMzBhOGI1ODg0MWNiYzI5MGU0ZjgxN2RlM2E0ZmUxNmVjZDA3N2NhMzNhMGFhMjVlMjM1Y2M3ZjY2NTVhODBiYThhZWVjODc5MDViYjJhNzU0NTliN2JjYzVhMTMzZjI5OTM0OTNiNDFmZmNmNjNjZDdhMzkxZTNlNmY3ODA5NGNhNDQyYzgwMTQ0NDAzY2IwYTVmMDBiZmM2MWFlODgwIgogCiBQS0NTNyBQYXJzZSBGYWlsdXJlIEludmFsaWQgQVNOMTogQ2hhbmdlIGNvbnRlbnRzIG9mIHRhZyAzMCB0byBjb250YWluIG9uZSB1bmFjY291bnRlZCBleHRyYSBieXRlICM3MDYuMAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHBrY3M3X2FzbjFfZmFpbDoiMzA4MjA0OWQwNjA5MmE4NjQ4ODZmNzBkMDEwNzAyYTA4MjA0OGUzMDgyMDQ4YTAyMDEwMTMxMGYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBiMDYwOTJhODY0ODg2ZjcwZDAxMDcwMTMxODIwNDY1MzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDViZWNkODcxOTVjMWRlZmY5MGMyNGM5MTI2OWI1NWIzZjA2OWJjMjI1YzMyNmMzMTRjMWE1MTc4NmZmZTE0YzgzMGJlNGU0YmM3M2NiYTM2Yzk3Njc3YjQ0MTY4Mjc5YmU5MWU3Y2RmN2MxOTM4NmFlMjE4NjI3MTlkMTNhM2EwZmZmMDgwM2Q0NjA5NjJmMmNkYTgzNzE0ODQ4NzMyNTJjM2Q3MDU0ZGI4MTQzZTJiMDgxYTM4MTZlZDA4MDRjYTUwOTlhZTVmZWNlODNkNWMyYzM3ODNiMTk4OGI0YjQ2ZGM5NGU1NTU4N2ExMDdlYTE1NDZiZjIyZDI4YTA5N2Y2NTJhNDA2NmRjMjk2NTI2OTA2OWFmMmY1MTc2YmI4Y2U5Y2E2ZDExZjk2NzU3ZjAzMjA0Zjc1NjcwMzU4N2QwMGFkNDI0Nzk2YzkyZmM3YWViNmY0OTQ0MzE5OTllZGEzMDk5MGU0ZjU3NzM2MzJlZDI1OGZlMDI3NjY3MzU5OWRhNmZjZTM1Y2RhZDc3MjZhMGJiMDI0Y2FkOTk2Yjg4ZTBjYjk4ODU0Y2ViNWMwYjZlYzc0OGQ5ZjljZTZhNmNkNDM3ODU4YmFjYjgxNDYxOGEyNzJmZjNhNDE1YzZlMDdmM2RiMDk4ODc3N2ZkZWM4NDVhOTdiZjdkMTAyZGQwMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMyMDIxNDU2NGQ1NTQwMjVhZjU5OWUzMjcwNzliMjcyMGVmMDBkZjM3Y2ZiN2MzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBlMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwMDA0ODIwMTAwMDQ2MDk4ZGM1ZjJiOTllM2JjMmVkNjY0MmQ3ZjBhNjFlZmFiYzE1YzM4Yzc2MzMzYmNjY2VlZWUzNjlhNGY0YTViZGRhOGVhNTkyNjQxMjRlNDI5ZjA4NjMyNjgzZGRiYTE3YmJmMjYyZDgyYjZiZWZhM2I0ZTE0ODAzNzZhOGM3ZjNjN2Q3ZTJhNjc3OWJiZjE4MjYyYWE4NTdkZThjMjBhMTJiNmEyY2U4ZTRkN2YzMWRkMWIxOTUzOTJjZjYxODVhZmNlMzRhZmUwNTg5NjA1N2IzNmU5YjE3MWI2YzY3ZWQ3YzIyODZjYmZhODNmZjhhMTY3YzdiYzcxMDlhZWU3ZDdlMTkwOWJkMzg0ZmJmYzYxOTM4ZWZjYTUxYzg5OTNjNzFkYjMxNzczMGYxNmU3ZTc3Njg2N2FlNGZkYzU2MmQ2ZjE1ZGU1ODVlN2I5NGVmNDk2YTM2NzYzNjdhMmNiYWFiN2I2MzY2NDhiMDA3NmJhZDVjZGYxZTA5NzQwZWM2YTQ1MWJmZjUzNGVmYTIxNTA5ZjNiYTc3YjgxMDFiOTFlYTdlNTVkZGJmZTE0MDE1MTcwNjdkN2IwMWEyYTA4NzlmMDg4NWM4OTRhODdjZmI2OGM0ZDdlZTg5MDYwNDg4MWFlYjk3YzIyZDFmMzM3ZWY5MjNlMDM1YTY0MDAzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzMwMjE0NjI0NzcyOTg3NTllOGUwNDcxOGFlNTYzMTU1ZjM1MjNjZmI4NGNkYjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwNmQyY2JiMzdmZDEyOTU3ZTVhNzQ4MGNlMDQzNWU4ZWY2MDc3ZGVmMDhmZjI3MDg0NGRlMjUxNmE0NzQyZjIxMWQ4Yzc0NjkwYmMwOTQ4ZTA4YTI5NmFiYmE5Mjg1ZjZiYjMwNWI5NWI3Zjk0MDhjZTQ0ZTgzODgwYzcxOTQ0NDY3MmVjOTk3NDZiYTc4Y2M0YmRlNDc1MzE5ZDAxYmRlNzdjNDlkNThkMTZkM2IyZTkxYzJlNjFlODMwM2NhM2Q3ZWRhMzc5N2ZkOGIzNWNhNzJiYjE0YjE1YTI0YjU2YmI3MGRjMTM0ODQ1NjU4MDgxMTBmZjVkYjU4YzU2ZjdhMDQzNTYwN2UzYzM1MmZiZjRmNTUxMDZmMjk4MGZkM2NkNDIzOTdkYmY3MTM3ZWU3ZjFlMzJjZDgwYTNiN2FiMTJiNDZjMTY5MjIwMjc4ZDc3MTdiNzhhM2M0NWQ2Mzk1YTEzMGE4YjU4ODQxY2JjMjkwZTRmODE3ZGUzYTRmZTE2ZWNkMDc3Y2EzM2EwYWEyNWUyMzVjYzdmNjY1NWE4MGJhOGFlZWM4NzkwNWJiMmE3NTQ1OWI3YmNjNWExMzNmMjk5MzQ5M2I0MWZmY2Y2M2NkN2EzOTFlM2U2Zjc4MDk0Y2E0NDJjODAxNDQ0MDNjYjBhNWYwMGJmYzYxYWU4ODAiCiAKIFBLQ1M3IFBhcnNlIEZhaWx1cmUgSW52YWxpZCBBU04xOiBDaGFuZ2UgbGVuZ3RoIGZyb20gMTMgdG8gMTIgIzcwNy4wCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NgogcGtjczdfYXNuMV9mYWlsOiIzMDgyMDQ5ZDA2MDkyYTg2NDg4NmY3MGQwMTA3MDJhMDgyMDQ4ZTMwODIwNDhhMDIwMTAxMzEwZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGIwNjA5MmE4NjQ4ODZmNzBkMDEwNzAxMzE4MjA0NjUzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwNWJlY2Q4NzE5NWMxZGVmZjkwYzI0YzkxMjY5YjU1YjNmMDY5YmMyMjVjMzI2YzMxNGMxYTUxNzg2ZmZlMTRjODMwYmU0ZTRiYzczY2JhMzZjOTc2NzdiNDQxNjgyNzliZTkxZTdjZGY3YzE5Mzg2YWUyMTg2MjcxOWQxM2EzYTBmZmYwODAzZDQ2MDk2MmYyY2RhODM3MTQ4NDg3MzI1MmMzZDcwNTRkYjgxNDNlMmIwODFhMzgxNmVkMDgwNGNhNTA5OWFlNWZlY2U4M2Q1YzJjMzc4M2IxOTg4YjRiNDZkYzk0ZTU1NTg3YTEwN2VhMTU0NmJmMjJkMjhhMDk3ZjY1MmE0MDY2ZGMyOTY1MjY5MDY5YWYyZjUxNzZiYjhjZTljYTZkMTFmOTY3NTdmMDMyMDRmNzU2NzAzNTg3ZDAwYWQ0MjQ3OTZjOTJmYzdhZWI2ZjQ5NDQzMTk5OWVkYTMwOTkwZTRmNTc3MzYzMmVkMjU4ZmUwMjc2NjczNTk5ZGE2ZmNlMzVjZGFkNzcyNmEwYmIwMjRjYWQ5OTZiODhlMGNiOTg4NTRjZWI1YzBiNmVjNzQ4ZDlmOWNlNmE2Y2Q0Mzc4NThiYWNiODE0NjE4YTI3MmZmM2E0MTVjNmUwN2YzZGIwOTg4Nzc3ZmRlYzg0NWE5N2JmN2QxMDJkZDAzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzIwMjE0NTY0ZDU1NDAyNWFmNTk5ZTMyNzA3OWIyNzIwZWYwMGRmMzdjZmI3YzMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGMwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwMDQ2MDk4ZGM1ZjJiOTllM2JjMmVkNjY0MmQ3ZjBhNjFlZmFiYzE1YzM4Yzc2MzMzYmNjY2VlZWUzNjlhNGY0YTViZGRhOGVhNTkyNjQxMjRlNDI5ZjA4NjMyNjgzZGRiYTE3YmJmMjYyZDgyYjZiZWZhM2I0ZTE0ODAzNzZhOGM3ZjNjN2Q3ZTJhNjc3OWJiZjE4MjYyYWE4NTdkZThjMjBhMTJiNmEyY2U4ZTRkN2YzMWRkMWIxOTUzOTJjZjYxODVhZmNlMzRhZmUwNTg5NjA1N2IzNmU5YjE3MWI2YzY3ZWQ3YzIyODZjYmZhODNmZjhhMTY3YzdiYzcxMDlhZWU3ZDdlMTkwOWJkMzg0ZmJmYzYxOTM4ZWZjYTUxYzg5OTNjNzFkYjMxNzczMGYxNmU3ZTc3Njg2N2FlNGZkYzU2MmQ2ZjE1ZGU1ODVlN2I5NGVmNDk2YTM2NzYzNjdhMmNiYWFiN2I2MzY2NDhiMDA3NmJhZDVjZGYxZTA5NzQwZWM2YTQ1MWJmZjUzNGVmYTIxNTA5ZjNiYTc3YjgxMDFiOTFlYTdlNTVkZGJmZTE0MDE1MTcwNjdkN2IwMWEyYTA4NzlmMDg4NWM4OTRhODdjZmI2OGM0ZDdlZTg5MDYwNDg4MWFlYjk3YzIyZDFmMzM3ZWY5MjNlMDM1YTY0MDAzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzMwMjE0NjI0NzcyOTg3NTllOGUwNDcxOGFlNTYzMTU1ZjM1MjNjZmI4NGNkYjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwNmQyY2JiMzdmZDEyOTU3ZTVhNzQ4MGNlMDQzNWU4ZWY2MDc3ZGVmMDhmZjI3MDg0NGRlMjUxNmE0NzQyZjIxMWQ4Yzc0NjkwYmMwOTQ4ZTA4YTI5NmFiYmE5Mjg1ZjZiYjMwNWI5NWI3Zjk0MDhjZTQ0ZTgzODgwYzcxOTQ0NDY3MmVjOTk3NDZiYTc4Y2M0YmRlNDc1MzE5ZDAxYmRlNzdjNDlkNThkMTZkM2IyZTkxYzJlNjFlODMwM2NhM2Q3ZWRhMzc5N2ZkOGIzNWNhNzJiYjE0YjE1YTI0YjU2YmI3MGRjMTM0ODQ1NjU4MDgxMTBmZjVkYjU4YzU2ZjdhMDQzNTYwN2UzYzM1MmZiZjRmNTUxMDZmMjk4MGZkM2NkNDIzOTdkYmY3MTM3ZWU3ZjFlMzJjZDgwYTNiN2FiMTJiNDZjMTY5MjIwMjc4ZDc3MTdiNzhhM2M0NWQ2Mzk1YTEzMGE4YjU4ODQxY2JjMjkwZTRmODE3ZGUzYTRmZTE2ZWNkMDc3Y2EzM2EwYWEyNWUyMzVjYzdmNjY1NWE4MGJhOGFlZWM4NzkwNWJiMmE3NTQ1OWI3YmNjNWExMzNmMjk5MzQ5M2I0MWZmY2Y2M2NkN2EzOTFlM2U2Zjc4MDk0Y2E0NDJjODAxNDQ0MDNjYjBhNWYwMGJmYzYxYWU4ODAiCiAKIFBLQ1M3IFBhcnNlIEZhaWx1cmUgSW52YWxpZCBBU04xOiBDaGFuZ2UgdGFnIDA2IHRvIDAyICM3MDguMAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHBrY3M3X2FzbjFfZmFpbDoiMzA4MjA0OWQwNjA5MmE4NjQ4ODZmNzBkMDEwNzAyYTA4MjA0OGUzMDgyMDQ4YTAyMDEwMTMxMGYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBiMDYwOTJhODY0ODg2ZjcwZDAxMDcwMTMxODIwNDY1MzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDViZWNkODcxOTVjMWRlZmY5MGMyNGM5MTI2OWI1NWIzZjA2OWJjMjI1YzMyNmMzMTRjMWE1MTc4NmZmZTE0YzgzMGJlNGU0YmM3M2NiYTM2Yzk3Njc3YjQ0MTY4Mjc5YmU5MWU3Y2RmN2MxOTM4NmFlMjE4NjI3MTlkMTNhM2EwZmZmMDgwM2Q0NjA5NjJmMmNkYTgzNzE0ODQ4NzMyNTJjM2Q3MDU0ZGI4MTQzZTJiMDgxYTM4MTZlZDA4MDRjYTUwOTlhZTVmZWNlODNkNWMyYzM3ODNiMTk4OGI0YjQ2ZGM5NGU1NTU4N2ExMDdlYTE1NDZiZjIyZDI4YTA5N2Y2NTJhNDA2NmRjMjk2NTI2OTA2OWFmMmY1MTc2YmI4Y2U5Y2E2ZDExZjk2NzU3ZjAzMjA0Zjc1NjcwMzU4N2QwMGFkNDI0Nzk2YzkyZmM3YWViNmY0OTQ0MzE5OTllZGEzMDk5MGU0ZjU3NzM2MzJlZDI1OGZlMDI3NjY3MzU5OWRhNmZjZTM1Y2RhZDc3MjZhMGJiMDI0Y2FkOTk2Yjg4ZTBjYjk4ODU0Y2ViNWMwYjZlYzc0OGQ5ZjljZTZhNmNkNDM3ODU4YmFjYjgxNDYxOGEyNzJmZjNhNDE1YzZlMDdmM2RiMDk4ODc3N2ZkZWM4NDVhOTdiZjdkMTAyZGQwMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMyMDIxNDU2NGQ1NTQwMjVhZjU5OWUzMjcwNzliMjcyMGVmMDBkZjM3Y2ZiN2MzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDIwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDA0NjA5OGRjNWYyYjk5ZTNiYzJlZDY2NDJkN2YwYTYxZWZhYmMxNWMzOGM3NjMzM2JjY2NlZWVlMzY5YTRmNGE1YmRkYThlYTU5MjY0MTI0ZTQyOWYwODYzMjY4M2RkYmExN2JiZjI2MmQ4MmI2YmVmYTNiNGUxNDgwMzc2YThjN2YzYzdkN2UyYTY3NzliYmYxODI2MmFhODU3ZGU4YzIwYTEyYjZhMmNlOGU0ZDdmMzFkZDFiMTk1MzkyY2Y2MTg1YWZjZTM0YWZlMDU4OTYwNTdiMzZlOWIxNzFiNmM2N2VkN2MyMjg2Y2JmYTgzZmY4YTE2N2M3YmM3MTA5YWVlN2Q3ZTE5MDliZDM4NGZiZmM2MTkzOGVmY2E1MWM4OTkzYzcxZGIzMTc3MzBmMTZlN2U3NzY4NjdhZTRmZGM1NjJkNmYxNWRlNTg1ZTdiOTRlZjQ5NmEzNjc2MzY3YTJjYmFhYjdiNjM2NjQ4YjAwNzZiYWQ1Y2RmMWUwOTc0MGVjNmE0NTFiZmY1MzRlZmEyMTUwOWYzYmE3N2I4MTAxYjkxZWE3ZTU1ZGRiZmUxNDAxNTE3MDY3ZDdiMDFhMmEwODc5ZjA4ODVjODk0YTg3Y2ZiNjhjNGQ3ZWU4OTA2MDQ4ODFhZWI5N2MyMmQxZjMzN2VmOTIzZTAzNWE2NDAwMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMzMDIxNDYyNDc3Mjk4NzU5ZThlMDQ3MThhZTU2MzE1NWYzNTIzY2ZiODRjZGIzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDZkMmNiYjM3ZmQxMjk1N2U1YTc0ODBjZTA0MzVlOGVmNjA3N2RlZjA4ZmYyNzA4NDRkZTI1MTZhNDc0MmYyMTFkOGM3NDY5MGJjMDk0OGUwOGEyOTZhYmJhOTI4NWY2YmIzMDViOTViN2Y5NDA4Y2U0NGU4Mzg4MGM3MTk0NDQ2NzJlYzk5NzQ2YmE3OGNjNGJkZTQ3NTMxOWQwMWJkZTc3YzQ5ZDU4ZDE2ZDNiMmU5MWMyZTYxZTgzMDNjYTNkN2VkYTM3OTdmZDhiMzVjYTcyYmIxNGIxNWEyNGI1NmJiNzBkYzEzNDg0NTY1ODA4MTEwZmY1ZGI1OGM1NmY3YTA0MzU2MDdlM2MzNTJmYmY0ZjU1MTA2ZjI5ODBmZDNjZDQyMzk3ZGJmNzEzN2VlN2YxZTMyY2Q4MGEzYjdhYjEyYjQ2YzE2OTIyMDI3OGQ3NzE3Yjc4YTNjNDVkNjM5NWExMzBhOGI1ODg0MWNiYzI5MGU0ZjgxN2RlM2E0ZmUxNmVjZDA3N2NhMzNhMGFhMjVlMjM1Y2M3ZjY2NTVhODBiYThhZWVjODc5MDViYjJhNzU0NTliN2JjYzVhMTMzZjI5OTM0OTNiNDFmZmNmNjNjZDdhMzkxZTNlNmY3ODA5NGNhNDQyYzgwMTQ0NDAzY2IwYTVmMDBiZmM2MWFlODgwIgogCiBQS0NTNyBQYXJzZSBGYWlsdXJlIEludmFsaWQgQVNOMTogQ2hhbmdlIGxlbmd0aCBmcm9tIDkgdG8gMTAgIzcwOS4wCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NgogcGtjczdfYXNuMV9mYWlsOiIzMDgyMDQ5ZDA2MDkyYTg2NDg4NmY3MGQwMTA3MDJhMDgyMDQ4ZTMwODIwNDhhMDIwMTAxMzEwZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGIwNjA5MmE4NjQ4ODZmNzBkMDEwNzAxMzE4MjA0NjUzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwNWJlY2Q4NzE5NWMxZGVmZjkwYzI0YzkxMjY5YjU1YjNmMDY5YmMyMjVjMzI2YzMxNGMxYTUxNzg2ZmZlMTRjODMwYmU0ZTRiYzczY2JhMzZjOTc2NzdiNDQxNjgyNzliZTkxZTdjZGY3YzE5Mzg2YWUyMTg2MjcxOWQxM2EzYTBmZmYwODAzZDQ2MDk2MmYyY2RhODM3MTQ4NDg3MzI1MmMzZDcwNTRkYjgxNDNlMmIwODFhMzgxNmVkMDgwNGNhNTA5OWFlNWZlY2U4M2Q1YzJjMzc4M2IxOTg4YjRiNDZkYzk0ZTU1NTg3YTEwN2VhMTU0NmJmMjJkMjhhMDk3ZjY1MmE0MDY2ZGMyOTY1MjY5MDY5YWYyZjUxNzZiYjhjZTljYTZkMTFmOTY3NTdmMDMyMDRmNzU2NzAzNTg3ZDAwYWQ0MjQ3OTZjOTJmYzdhZWI2ZjQ5NDQzMTk5OWVkYTMwOTkwZTRmNTc3MzYzMmVkMjU4ZmUwMjc2NjczNTk5ZGE2ZmNlMzVjZGFkNzcyNmEwYmIwMjRjYWQ5OTZiODhlMGNiOTg4NTRjZWI1YzBiNmVjNzQ4ZDlmOWNlNmE2Y2Q0Mzc4NThiYWNiODE0NjE4YTI3MmZmM2E0MTVjNmUwN2YzZGIwOTg4Nzc3ZmRlYzg0NWE5N2JmN2QxMDJkZDAzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzIwMjE0NTY0ZDU1NDAyNWFmNTk5ZTMyNzA3OWIyNzIwZWYwMGRmMzdjZmI3YzMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjBhMmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwMDQ2MDk4ZGM1ZjJiOTllM2JjMmVkNjY0MmQ3ZjBhNjFlZmFiYzE1YzM4Yzc2MzMzYmNjY2VlZWUzNjlhNGY0YTViZGRhOGVhNTkyNjQxMjRlNDI5ZjA4NjMyNjgzZGRiYTE3YmJmMjYyZDgyYjZiZWZhM2I0ZTE0ODAzNzZhOGM3ZjNjN2Q3ZTJhNjc3OWJiZjE4MjYyYWE4NTdkZThjMjBhMTJiNmEyY2U4ZTRkN2YzMWRkMWIxOTUzOTJjZjYxODVhZmNlMzRhZmUwNTg5NjA1N2IzNmU5YjE3MWI2YzY3ZWQ3YzIyODZjYmZhODNmZjhhMTY3YzdiYzcxMDlhZWU3ZDdlMTkwOWJkMzg0ZmJmYzYxOTM4ZWZjYTUxYzg5OTNjNzFkYjMxNzczMGYxNmU3ZTc3Njg2N2FlNGZkYzU2MmQ2ZjE1ZGU1ODVlN2I5NGVmNDk2YTM2NzYzNjdhMmNiYWFiN2I2MzY2NDhiMDA3NmJhZDVjZGYxZTA5NzQwZWM2YTQ1MWJmZjUzNGVmYTIxNTA5ZjNiYTc3YjgxMDFiOTFlYTdlNTVkZGJmZTE0MDE1MTcwNjdkN2IwMWEyYTA4NzlmMDg4NWM4OTRhODdjZmI2OGM0ZDdlZTg5MDYwNDg4MWFlYjk3YzIyZDFmMzM3ZWY5MjNlMDM1YTY0MDAzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzMwMjE0NjI0NzcyOTg3NTllOGUwNDcxOGFlNTYzMTU1ZjM1MjNjZmI4NGNkYjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwNmQyY2JiMzdmZDEyOTU3ZTVhNzQ4MGNlMDQzNWU4ZWY2MDc3ZGVmMDhmZjI3MDg0NGRlMjUxNmE0NzQyZjIxMWQ4Yzc0NjkwYmMwOTQ4ZTA4YTI5NmFiYmE5Mjg1ZjZiYjMwNWI5NWI3Zjk0MDhjZTQ0ZTgzODgwYzcxOTQ0NDY3MmVjOTk3NDZiYTc4Y2M0YmRlNDc1MzE5ZDAxYmRlNzdjNDlkNThkMTZkM2IyZTkxYzJlNjFlODMwM2NhM2Q3ZWRhMzc5N2ZkOGIzNWNhNzJiYjE0YjE1YTI0YjU2YmI3MGRjMTM0ODQ1NjU4MDgxMTBmZjVkYjU4YzU2ZjdhMDQzNTYwN2UzYzM1MmZiZjRmNTUxMDZmMjk4MGZkM2NkNDIzOTdkYmY3MTM3ZWU3ZjFlMzJjZDgwYTNiN2FiMTJiNDZjMTY5MjIwMjc4ZDc3MTdiNzhhM2M0NWQ2Mzk1YTEzMGE4YjU4ODQxY2JjMjkwZTRmODE3ZGUzYTRmZTE2ZWNkMDc3Y2EzM2EwYWEyNWUyMzVjYzdmNjY1NWE4MGJhOGFlZWM4NzkwNWJiMmE3NTQ1OWI3YmNjNWExMzNmMjk5MzQ5M2I0MWZmY2Y2M2NkN2EzOTFlM2U2Zjc4MDk0Y2E0NDJjODAxNDQ0MDNjYjBhNWYwMGJmYzYxYWU4ODAiCiAKIFBLQ1M3IFBhcnNlIEZhaWx1cmUgSW52YWxpZCBBU04xOiBDaGFuZ2UgbGVuZ3RoIGZyb20gOSB0byA4ICM3MTAuMAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHBrY3M3X2FzbjFfZmFpbDoiMzA4MjA0OWQwNjA5MmE4NjQ4ODZmNzBkMDEwNzAyYTA4MjA0OGUzMDgyMDQ4YTAyMDEwMTMxMGYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBiMDYwOTJhODY0ODg2ZjcwZDAxMDcwMTMxODIwNDY1MzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDViZWNkODcxOTVjMWRlZmY5MGMyNGM5MTI2OWI1NWIzZjA2OWJjMjI1YzMyNmMzMTRjMWE1MTc4NmZmZTE0YzgzMGJlNGU0YmM3M2NiYTM2Yzk3Njc3YjQ0MTY4Mjc5YmU5MWU3Y2RmN2MxOTM4NmFlMjE4NjI3MTlkMTNhM2EwZmZmMDgwM2Q0NjA5NjJmMmNkYTgzNzE0ODQ4NzMyNTJjM2Q3MDU0ZGI4MTQzZTJiMDgxYTM4MTZlZDA4MDRjYTUwOTlhZTVmZWNlODNkNWMyYzM3ODNiMTk4OGI0YjQ2ZGM5NGU1NTU4N2ExMDdlYTE1NDZiZjIyZDI4YTA5N2Y2NTJhNDA2NmRjMjk2NTI2OTA2OWFmMmY1MTc2YmI4Y2U5Y2E2ZDExZjk2NzU3ZjAzMjA0Zjc1NjcwMzU4N2QwMGFkNDI0Nzk2YzkyZmM3YWViNmY0OTQ0MzE5OTllZGEzMDk5MGU0ZjU3NzM2MzJlZDI1OGZlMDI3NjY3MzU5OWRhNmZjZTM1Y2RhZDc3MjZhMGJiMDI0Y2FkOTk2Yjg4ZTBjYjk4ODU0Y2ViNWMwYjZlYzc0OGQ5ZjljZTZhNmNkNDM3ODU4YmFjYjgxNDYxOGEyNzJmZjNhNDE1YzZlMDdmM2RiMDk4ODc3N2ZkZWM4NDVhOTdiZjdkMTAyZGQwMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMyMDIxNDU2NGQ1NTQwMjVhZjU5OWUzMjcwNzliMjcyMGVmMDBkZjM3Y2ZiN2MzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwODJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDA0NjA5OGRjNWYyYjk5ZTNiYzJlZDY2NDJkN2YwYTYxZWZhYmMxNWMzOGM3NjMzM2JjY2NlZWVlMzY5YTRmNGE1YmRkYThlYTU5MjY0MTI0ZTQyOWYwODYzMjY4M2RkYmExN2JiZjI2MmQ4MmI2YmVmYTNiNGUxNDgwMzc2YThjN2YzYzdkN2UyYTY3NzliYmYxODI2MmFhODU3ZGU4YzIwYTEyYjZhMmNlOGU0ZDdmMzFkZDFiMTk1MzkyY2Y2MTg1YWZjZTM0YWZlMDU4OTYwNTdiMzZlOWIxNzFiNmM2N2VkN2MyMjg2Y2JmYTgzZmY4YTE2N2M3YmM3MTA5YWVlN2Q3ZTE5MDliZDM4NGZiZmM2MTkzOGVmY2E1MWM4OTkzYzcxZGIzMTc3MzBmMTZlN2U3NzY4NjdhZTRmZGM1NjJkNmYxNWRlNTg1ZTdiOTRlZjQ5NmEzNjc2MzY3YTJjYmFhYjdiNjM2NjQ4YjAwNzZiYWQ1Y2RmMWUwOTc0MGVjNmE0NTFiZmY1MzRlZmEyMTUwOWYzYmE3N2I4MTAxYjkxZWE3ZTU1ZGRiZmUxNDAxNTE3MDY3ZDdiMDFhMmEwODc5ZjA4ODVjODk0YTg3Y2ZiNjhjNGQ3ZWU4OTA2MDQ4ODFhZWI5N2MyMmQxZjMzN2VmOTIzZTAzNWE2NDAwMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMzMDIxNDYyNDc3Mjk4NzU5ZThlMDQ3MThhZTU2MzE1NWYzNTIzY2ZiODRjZGIzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDZkMmNiYjM3ZmQxMjk1N2U1YTc0ODBjZTA0MzVlOGVmNjA3N2RlZjA4ZmYyNzA4NDRkZTI1MTZhNDc0MmYyMTFkOGM3NDY5MGJjMDk0OGUwOGEyOTZhYmJhOTI4NWY2YmIzMDViOTViN2Y5NDA4Y2U0NGU4Mzg4MGM3MTk0NDQ2NzJlYzk5NzQ2YmE3OGNjNGJkZTQ3NTMxOWQwMWJkZTc3YzQ5ZDU4ZDE2ZDNiMmU5MWMyZTYxZTgzMDNjYTNkN2VkYTM3OTdmZDhiMzVjYTcyYmIxNGIxNWEyNGI1NmJiNzBkYzEzNDg0NTY1ODA4MTEwZmY1ZGI1OGM1NmY3YTA0MzU2MDdlM2MzNTJmYmY0ZjU1MTA2ZjI5ODBmZDNjZDQyMzk3ZGJmNzEzN2VlN2YxZTMyY2Q4MGEzYjdhYjEyYjQ2YzE2OTIyMDI3OGQ3NzE3Yjc4YTNjNDVkNjM5NWExMzBhOGI1ODg0MWNiYzI5MGU0ZjgxN2RlM2E0ZmUxNmVjZDA3N2NhMzNhMGFhMjVlMjM1Y2M3ZjY2NTVhODBiYThhZWVjODc5MDViYjJhNzU0NTliN2JjYzVhMTMzZjI5OTM0OTNiNDFmZmNmNjNjZDdhMzkxZTNlNmY3ODA5NGNhNDQyYzgwMTQ0NDAzY2IwYTVmMDBiZmM2MWFlODgwIgogCiBQS0NTNyBQYXJzZSBGYWlsdXJlIEludmFsaWQgQVNOMTogQ2hhbmdlIHRhZyAwNSB0byAwMiAjNzExLjAKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBwa2NzN19hc24xX2ZhaWw6IjMwODIwNDlkMDYwOTJhODY0ODg2ZjcwZDAxMDcwMmEwODIwNDhlMzA4MjA0OGEwMjAxMDEzMTBmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwYjA2MDkyYTg2NDg4NmY3MGQwMTA3MDEzMTgyMDQ2NTMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTAyMTQ3YmRlZGRkMjQ0NGNkMWNkZmU1YzQxYTgxMDJjODliN2RmMmU2Y2JmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDA1YmVjZDg3MTk1YzFkZWZmOTBjMjRjOTEyNjliNTViM2YwNjliYzIyNWMzMjZjMzE0YzFhNTE3ODZmZmUxNGM4MzBiZTRlNGJjNzNjYmEzNmM5NzY3N2I0NDE2ODI3OWJlOTFlN2NkZjdjMTkzODZhZTIxODYyNzE5ZDEzYTNhMGZmZjA4MDNkNDYwOTYyZjJjZGE4MzcxNDg0ODczMjUyYzNkNzA1NGRiODE0M2UyYjA4MWEzODE2ZWQwODA0Y2E1MDk5YWU1ZmVjZTgzZDVjMmMzNzgzYjE5ODhiNGI0NmRjOTRlNTU1ODdhMTA3ZWExNTQ2YmYyMmQyOGEwOTdmNjUyYTQwNjZkYzI5NjUyNjkwNjlhZjJmNTE3NmJiOGNlOWNhNmQxMWY5Njc1N2YwMzIwNGY3NTY3MDM1ODdkMDBhZDQyNDc5NmM5MmZjN2FlYjZmNDk0NDMxOTk5ZWRhMzA5OTBlNGY1NzczNjMyZWQyNThmZTAyNzY2NzM1OTlkYTZmY2UzNWNkYWQ3NzI2YTBiYjAyNGNhZDk5NmI4OGUwY2I5ODg1NGNlYjVjMGI2ZWM3NDhkOWY5Y2U2YTZjZDQzNzg1OGJhY2I4MTQ2MThhMjcyZmYzYTQxNWM2ZTA3ZjNkYjA5ODg3NzdmZGVjODQ1YTk3YmY3ZDEwMmRkMDMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMjAyMTQ1NjRkNTU0MDI1YWY1OTllMzI3MDc5YjI3MjBlZjAwZGYzN2NmYjdjMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwMjAwMDQ4MjAxMDAwNDYwOThkYzVmMmI5OWUzYmMyZWQ2NjQyZDdmMGE2MWVmYWJjMTVjMzhjNzYzMzNiY2NjZWVlZTM2OWE0ZjRhNWJkZGE4ZWE1OTI2NDEyNGU0MjlmMDg2MzI2ODNkZGJhMTdiYmYyNjJkODJiNmJlZmEzYjRlMTQ4MDM3NmE4YzdmM2M3ZDdlMmE2Nzc5YmJmMTgyNjJhYTg1N2RlOGMyMGExMmI2YTJjZThlNGQ3ZjMxZGQxYjE5NTM5MmNmNjE4NWFmY2UzNGFmZTA1ODk2MDU3YjM2ZTliMTcxYjZjNjdlZDdjMjI4NmNiZmE4M2ZmOGExNjdjN2JjNzEwOWFlZTdkN2UxOTA5YmQzODRmYmZjNjE5MzhlZmNhNTFjODk5M2M3MWRiMzE3NzMwZjE2ZTdlNzc2ODY3YWU0ZmRjNTYyZDZmMTVkZTU4NWU3Yjk0ZWY0OTZhMzY3NjM2N2EyY2JhYWI3YjYzNjY0OGIwMDc2YmFkNWNkZjFlMDk3NDBlYzZhNDUxYmZmNTM0ZWZhMjE1MDlmM2JhNzdiODEwMWI5MWVhN2U1NWRkYmZlMTQwMTUxNzA2N2Q3YjAxYTJhMDg3OWYwODg1Yzg5NGE4N2NmYjY4YzRkN2VlODkwNjA0ODgxYWViOTdjMjJkMWYzMzdlZjkyM2UwMzVhNjQwMDMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMzAyMTQ2MjQ3NzI5ODc1OWU4ZTA0NzE4YWU1NjMxNTVmMzUyM2NmYjg0Y2RiMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDA2ZDJjYmIzN2ZkMTI5NTdlNWE3NDgwY2UwNDM1ZThlZjYwNzdkZWYwOGZmMjcwODQ0ZGUyNTE2YTQ3NDJmMjExZDhjNzQ2OTBiYzA5NDhlMDhhMjk2YWJiYTkyODVmNmJiMzA1Yjk1YjdmOTQwOGNlNDRlODM4ODBjNzE5NDQ0NjcyZWM5OTc0NmJhNzhjYzRiZGU0NzUzMTlkMDFiZGU3N2M0OWQ1OGQxNmQzYjJlOTFjMmU2MWU4MzAzY2EzZDdlZGEzNzk3ZmQ4YjM1Y2E3MmJiMTRiMTVhMjRiNTZiYjcwZGMxMzQ4NDU2NTgwODExMGZmNWRiNThjNTZmN2EwNDM1NjA3ZTNjMzUyZmJmNGY1NTEwNmYyOTgwZmQzY2Q0MjM5N2RiZjcxMzdlZTdmMWUzMmNkODBhM2I3YWIxMmI0NmMxNjkyMjAyNzhkNzcxN2I3OGEzYzQ1ZDYzOTVhMTMwYThiNTg4NDFjYmMyOTBlNGY4MTdkZTNhNGZlMTZlY2QwNzdjYTMzYTBhYTI1ZTIzNWNjN2Y2NjU1YTgwYmE4YWVlYzg3OTA1YmIyYTc1NDU5YjdiY2M1YTEzM2YyOTkzNDkzYjQxZmZjZjYzY2Q3YTM5MWUzZTZmNzgwOTRjYTQ0MmM4MDE0NDQwM2NiMGE1ZjAwYmZjNjFhZTg4MCIKIAogUEtDUzcgUGFyc2UgRmFpbHVyZSBJbnZhbGlkIEFTTjE6IENoYW5nZSBsZW5ndGggZnJvbSAwIHRvIDEgIzcxMi4wCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NgogcGtjczdfYXNuMV9mYWlsOiIzMDgyMDQ5ZDA2MDkyYTg2NDg4NmY3MGQwMTA3MDJhMDgyMDQ4ZTMwODIwNDhhMDIwMTAxMzEwZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGIwNjA5MmE4NjQ4ODZmNzBkMDEwNzAxMzE4MjA0NjUzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwNWJlY2Q4NzE5NWMxZGVmZjkwYzI0YzkxMjY5YjU1YjNmMDY5YmMyMjVjMzI2YzMxNGMxYTUxNzg2ZmZlMTRjODMwYmU0ZTRiYzczY2JhMzZjOTc2NzdiNDQxNjgyNzliZTkxZTdjZGY3YzE5Mzg2YWUyMTg2MjcxOWQxM2EzYTBmZmYwODAzZDQ2MDk2MmYyY2RhODM3MTQ4NDg3MzI1MmMzZDcwNTRkYjgxNDNlMmIwODFhMzgxNmVkMDgwNGNhNTA5OWFlNWZlY2U4M2Q1YzJjMzc4M2IxOTg4YjRiNDZkYzk0ZTU1NTg3YTEwN2VhMTU0NmJmMjJkMjhhMDk3ZjY1MmE0MDY2ZGMyOTY1MjY5MDY5YWYyZjUxNzZiYjhjZTljYTZkMTFmOTY3NTdmMDMyMDRmNzU2NzAzNTg3ZDAwYWQ0MjQ3OTZjOTJmYzdhZWI2ZjQ5NDQzMTk5OWVkYTMwOTkwZTRmNTc3MzYzMmVkMjU4ZmUwMjc2NjczNTk5ZGE2ZmNlMzVjZGFkNzcyNmEwYmIwMjRjYWQ5OTZiODhlMGNiOTg4NTRjZWI1YzBiNmVjNzQ4ZDlmOWNlNmE2Y2Q0Mzc4NThiYWNiODE0NjE4YTI3MmZmM2E0MTVjNmUwN2YzZGIwOTg4Nzc3ZmRlYzg0NWE5N2JmN2QxMDJkZDAzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzIwMjE0NTY0ZDU1NDAyNWFmNTk5ZTMyNzA3OWIyNzIwZWYwMGRmMzdjZmI3YzMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMTA0ODIwMTAwMDQ2MDk4ZGM1ZjJiOTllM2JjMmVkNjY0MmQ3ZjBhNjFlZmFiYzE1YzM4Yzc2MzMzYmNjY2VlZWUzNjlhNGY0YTViZGRhOGVhNTkyNjQxMjRlNDI5ZjA4NjMyNjgzZGRiYTE3YmJmMjYyZDgyYjZiZWZhM2I0ZTE0ODAzNzZhOGM3ZjNjN2Q3ZTJhNjc3OWJiZjE4MjYyYWE4NTdkZThjMjBhMTJiNmEyY2U4ZTRkN2YzMWRkMWIxOTUzOTJjZjYxODVhZmNlMzRhZmUwNTg5NjA1N2IzNmU5YjE3MWI2YzY3ZWQ3YzIyODZjYmZhODNmZjhhMTY3YzdiYzcxMDlhZWU3ZDdlMTkwOWJkMzg0ZmJmYzYxOTM4ZWZjYTUxYzg5OTNjNzFkYjMxNzczMGYxNmU3ZTc3Njg2N2FlNGZkYzU2MmQ2ZjE1ZGU1ODVlN2I5NGVmNDk2YTM2NzYzNjdhMmNiYWFiN2I2MzY2NDhiMDA3NmJhZDVjZGYxZTA5NzQwZWM2YTQ1MWJmZjUzNGVmYTIxNTA5ZjNiYTc3YjgxMDFiOTFlYTdlNTVkZGJmZTE0MDE1MTcwNjdkN2IwMWEyYTA4NzlmMDg4NWM4OTRhODdjZmI2OGM0ZDdlZTg5MDYwNDg4MWFlYjk3YzIyZDFmMzM3ZWY5MjNlMDM1YTY0MDAzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzMwMjE0NjI0NzcyOTg3NTllOGUwNDcxOGFlNTYzMTU1ZjM1MjNjZmI4NGNkYjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwNmQyY2JiMzdmZDEyOTU3ZTVhNzQ4MGNlMDQzNWU4ZWY2MDc3ZGVmMDhmZjI3MDg0NGRlMjUxNmE0NzQyZjIxMWQ4Yzc0NjkwYmMwOTQ4ZTA4YTI5NmFiYmE5Mjg1ZjZiYjMwNWI5NWI3Zjk0MDhjZTQ0ZTgzODgwYzcxOTQ0NDY3MmVjOTk3NDZiYTc4Y2M0YmRlNDc1MzE5ZDAxYmRlNzdjNDlkNThkMTZkM2IyZTkxYzJlNjFlODMwM2NhM2Q3ZWRhMzc5N2ZkOGIzNWNhNzJiYjE0YjE1YTI0YjU2YmI3MGRjMTM0ODQ1NjU4MDgxMTBmZjVkYjU4YzU2ZjdhMDQzNTYwN2UzYzM1MmZiZjRmNTUxMDZmMjk4MGZkM2NkNDIzOTdkYmY3MTM3ZWU3ZjFlMzJjZDgwYTNiN2FiMTJiNDZjMTY5MjIwMjc4ZDc3MTdiNzhhM2M0NWQ2Mzk1YTEzMGE4YjU4ODQxY2JjMjkwZTRmODE3ZGUzYTRmZTE2ZWNkMDc3Y2EzM2EwYWEyNWUyMzVjYzdmNjY1NWE4MGJhOGFlZWM4NzkwNWJiMmE3NTQ1OWI3YmNjNWExMzNmMjk5MzQ5M2I0MWZmY2Y2M2NkN2EzOTFlM2U2Zjc4MDk0Y2E0NDJjODAxNDQ0MDNjYjBhNWYwMGJmYzYxYWU4ODAiCiAKIFBLQ1M3IFBhcnNlIEZhaWx1cmUgSW52YWxpZCBBU04xOiBDaGFuZ2UgdGFnIDA0IHRvIDAyICM3MTMuMAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHBrY3M3X2FzbjFfZmFpbDoiMzA4MjA0OWQwNjA5MmE4NjQ4ODZmNzBkMDEwNzAyYTA4MjA0OGUzMDgyMDQ4YTAyMDEwMTMxMGYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBiMDYwOTJhODY0ODg2ZjcwZDAxMDcwMTMxODIwNDY1MzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDViZWNkODcxOTVjMWRlZmY5MGMyNGM5MTI2OWI1NWIzZjA2OWJjMjI1YzMyNmMzMTRjMWE1MTc4NmZmZTE0YzgzMGJlNGU0YmM3M2NiYTM2Yzk3Njc3YjQ0MTY4Mjc5YmU5MWU3Y2RmN2MxOTM4NmFlMjE4NjI3MTlkMTNhM2EwZmZmMDgwM2Q0NjA5NjJmMmNkYTgzNzE0ODQ4NzMyNTJjM2Q3MDU0ZGI4MTQzZTJiMDgxYTM4MTZlZDA4MDRjYTUwOTlhZTVmZWNlODNkNWMyYzM3ODNiMTk4OGI0YjQ2ZGM5NGU1NTU4N2ExMDdlYTE1NDZiZjIyZDI4YTA5N2Y2NTJhNDA2NmRjMjk2NTI2OTA2OWFmMmY1MTc2YmI4Y2U5Y2E2ZDExZjk2NzU3ZjAzMjA0Zjc1NjcwMzU4N2QwMGFkNDI0Nzk2YzkyZmM3YWViNmY0OTQ0MzE5OTllZGEzMDk5MGU0ZjU3NzM2MzJlZDI1OGZlMDI3NjY3MzU5OWRhNmZjZTM1Y2RhZDc3MjZhMGJiMDI0Y2FkOTk2Yjg4ZTBjYjk4ODU0Y2ViNWMwYjZlYzc0OGQ5ZjljZTZhNmNkNDM3ODU4YmFjYjgxNDYxOGEyNzJmZjNhNDE1YzZlMDdmM2RiMDk4ODc3N2ZkZWM4NDVhOTdiZjdkMTAyZGQwMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMyMDIxNDU2NGQ1NTQwMjVhZjU5OWUzMjcwNzliMjcyMGVmMDBkZjM3Y2ZiN2MzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwMjgyMDEwMDA0NjA5OGRjNWYyYjk5ZTNiYzJlZDY2NDJkN2YwYTYxZWZhYmMxNWMzOGM3NjMzM2JjY2NlZWVlMzY5YTRmNGE1YmRkYThlYTU5MjY0MTI0ZTQyOWYwODYzMjY4M2RkYmExN2JiZjI2MmQ4MmI2YmVmYTNiNGUxNDgwMzc2YThjN2YzYzdkN2UyYTY3NzliYmYxODI2MmFhODU3ZGU4YzIwYTEyYjZhMmNlOGU0ZDdmMzFkZDFiMTk1MzkyY2Y2MTg1YWZjZTM0YWZlMDU4OTYwNTdiMzZlOWIxNzFiNmM2N2VkN2MyMjg2Y2JmYTgzZmY4YTE2N2M3YmM3MTA5YWVlN2Q3ZTE5MDliZDM4NGZiZmM2MTkzOGVmY2E1MWM4OTkzYzcxZGIzMTc3MzBmMTZlN2U3NzY4NjdhZTRmZGM1NjJkNmYxNWRlNTg1ZTdiOTRlZjQ5NmEzNjc2MzY3YTJjYmFhYjdiNjM2NjQ4YjAwNzZiYWQ1Y2RmMWUwOTc0MGVjNmE0NTFiZmY1MzRlZmEyMTUwOWYzYmE3N2I4MTAxYjkxZWE3ZTU1ZGRiZmUxNDAxNTE3MDY3ZDdiMDFhMmEwODc5ZjA4ODVjODk0YTg3Y2ZiNjhjNGQ3ZWU4OTA2MDQ4ODFhZWI5N2MyMmQxZjMzN2VmOTIzZTAzNWE2NDAwMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMzMDIxNDYyNDc3Mjk4NzU5ZThlMDQ3MThhZTU2MzE1NWYzNTIzY2ZiODRjZGIzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDZkMmNiYjM3ZmQxMjk1N2U1YTc0ODBjZTA0MzVlOGVmNjA3N2RlZjA4ZmYyNzA4NDRkZTI1MTZhNDc0MmYyMTFkOGM3NDY5MGJjMDk0OGUwOGEyOTZhYmJhOTI4NWY2YmIzMDViOTViN2Y5NDA4Y2U0NGU4Mzg4MGM3MTk0NDQ2NzJlYzk5NzQ2YmE3OGNjNGJkZTQ3NTMxOWQwMWJkZTc3YzQ5ZDU4ZDE2ZDNiMmU5MWMyZTYxZTgzMDNjYTNkN2VkYTM3OTdmZDhiMzVjYTcyYmIxNGIxNWEyNGI1NmJiNzBkYzEzNDg0NTY1ODA4MTEwZmY1ZGI1OGM1NmY3YTA0MzU2MDdlM2MzNTJmYmY0ZjU1MTA2ZjI5ODBmZDNjZDQyMzk3ZGJmNzEzN2VlN2YxZTMyY2Q4MGEzYjdhYjEyYjQ2YzE2OTIyMDI3OGQ3NzE3Yjc4YTNjNDVkNjM5NWExMzBhOGI1ODg0MWNiYzI5MGU0ZjgxN2RlM2E0ZmUxNmVjZDA3N2NhMzNhMGFhMjVlMjM1Y2M3ZjY2NTVhODBiYThhZWVjODc5MDViYjJhNzU0NTliN2JjYzVhMTMzZjI5OTM0OTNiNDFmZmNmNjNjZDdhMzkxZTNlNmY3ODA5NGNhNDQyYzgwMTQ0NDAzY2IwYTVmMDBiZmM2MWFlODgwIgogCiBQS0NTNyBQYXJzZSBGYWlsdXJlIEludmFsaWQgQVNOMTogQ2hhbmdlIGxlbmd0aCBmcm9tIDI1NiB0byAyNTcgIzcxNC4wCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NgogcGtjczdfYXNuMV9mYWlsOiIzMDgyMDQ5ZDA2MDkyYTg2NDg4NmY3MGQwMTA3MDJhMDgyMDQ4ZTMwODIwNDhhMDIwMTAxMzEwZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGIwNjA5MmE4NjQ4ODZmNzBkMDEwNzAxMzE4MjA0NjUzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwNWJlY2Q4NzE5NWMxZGVmZjkwYzI0YzkxMjY5YjU1YjNmMDY5YmMyMjVjMzI2YzMxNGMxYTUxNzg2ZmZlMTRjODMwYmU0ZTRiYzczY2JhMzZjOTc2NzdiNDQxNjgyNzliZTkxZTdjZGY3YzE5Mzg2YWUyMTg2MjcxOWQxM2EzYTBmZmYwODAzZDQ2MDk2MmYyY2RhODM3MTQ4NDg3MzI1MmMzZDcwNTRkYjgxNDNlMmIwODFhMzgxNmVkMDgwNGNhNTA5OWFlNWZlY2U4M2Q1YzJjMzc4M2IxOTg4YjRiNDZkYzk0ZTU1NTg3YTEwN2VhMTU0NmJmMjJkMjhhMDk3ZjY1MmE0MDY2ZGMyOTY1MjY5MDY5YWYyZjUxNzZiYjhjZTljYTZkMTFmOTY3NTdmMDMyMDRmNzU2NzAzNTg3ZDAwYWQ0MjQ3OTZjOTJmYzdhZWI2ZjQ5NDQzMTk5OWVkYTMwOTkwZTRmNTc3MzYzMmVkMjU4ZmUwMjc2NjczNTk5ZGE2ZmNlMzVjZGFkNzcyNmEwYmIwMjRjYWQ5OTZiODhlMGNiOTg4NTRjZWI1YzBiNmVjNzQ4ZDlmOWNlNmE2Y2Q0Mzc4NThiYWNiODE0NjE4YTI3MmZmM2E0MTVjNmUwN2YzZGIwOTg4Nzc3ZmRlYzg0NWE5N2JmN2QxMDJkZDAzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzIwMjE0NTY0ZDU1NDAyNWFmNTk5ZTMyNzA3OWIyNzIwZWYwMGRmMzdjZmI3YzMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAxMDQ2MDk4ZGM1ZjJiOTllM2JjMmVkNjY0MmQ3ZjBhNjFlZmFiYzE1YzM4Yzc2MzMzYmNjY2VlZWUzNjlhNGY0YTViZGRhOGVhNTkyNjQxMjRlNDI5ZjA4NjMyNjgzZGRiYTE3YmJmMjYyZDgyYjZiZWZhM2I0ZTE0ODAzNzZhOGM3ZjNjN2Q3ZTJhNjc3OWJiZjE4MjYyYWE4NTdkZThjMjBhMTJiNmEyY2U4ZTRkN2YzMWRkMWIxOTUzOTJjZjYxODVhZmNlMzRhZmUwNTg5NjA1N2IzNmU5YjE3MWI2YzY3ZWQ3YzIyODZjYmZhODNmZjhhMTY3YzdiYzcxMDlhZWU3ZDdlMTkwOWJkMzg0ZmJmYzYxOTM4ZWZjYTUxYzg5OTNjNzFkYjMxNzczMGYxNmU3ZTc3Njg2N2FlNGZkYzU2MmQ2ZjE1ZGU1ODVlN2I5NGVmNDk2YTM2NzYzNjdhMmNiYWFiN2I2MzY2NDhiMDA3NmJhZDVjZGYxZTA5NzQwZWM2YTQ1MWJmZjUzNGVmYTIxNTA5ZjNiYTc3YjgxMDFiOTFlYTdlNTVkZGJmZTE0MDE1MTcwNjdkN2IwMWEyYTA4NzlmMDg4NWM4OTRhODdjZmI2OGM0ZDdlZTg5MDYwNDg4MWFlYjk3YzIyZDFmMzM3ZWY5MjNlMDM1YTY0MDAzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzMwMjE0NjI0NzcyOTg3NTllOGUwNDcxOGFlNTYzMTU1ZjM1MjNjZmI4NGNkYjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwNmQyY2JiMzdmZDEyOTU3ZTVhNzQ4MGNlMDQzNWU4ZWY2MDc3ZGVmMDhmZjI3MDg0NGRlMjUxNmE0NzQyZjIxMWQ4Yzc0NjkwYmMwOTQ4ZTA4YTI5NmFiYmE5Mjg1ZjZiYjMwNWI5NWI3Zjk0MDhjZTQ0ZTgzODgwYzcxOTQ0NDY3MmVjOTk3NDZiYTc4Y2M0YmRlNDc1MzE5ZDAxYmRlNzdjNDlkNThkMTZkM2IyZTkxYzJlNjFlODMwM2NhM2Q3ZWRhMzc5N2ZkOGIzNWNhNzJiYjE0YjE1YTI0YjU2YmI3MGRjMTM0ODQ1NjU4MDgxMTBmZjVkYjU4YzU2ZjdhMDQzNTYwN2UzYzM1MmZiZjRmNTUxMDZmMjk4MGZkM2NkNDIzOTdkYmY3MTM3ZWU3ZjFlMzJjZDgwYTNiN2FiMTJiNDZjMTY5MjIwMjc4ZDc3MTdiNzhhM2M0NWQ2Mzk1YTEzMGE4YjU4ODQxY2JjMjkwZTRmODE3ZGUzYTRmZTE2ZWNkMDc3Y2EzM2EwYWEyNWUyMzVjYzdmNjY1NWE4MGJhOGFlZWM4NzkwNWJiMmE3NTQ1OWI3YmNjNWExMzNmMjk5MzQ5M2I0MWZmY2Y2M2NkN2EzOTFlM2U2Zjc4MDk0Y2E0NDJjODAxNDQ0MDNjYjBhNWYwMGJmYzYxYWU4ODAiCiAKIFBLQ1M3IFBhcnNlIEZhaWx1cmUgSW52YWxpZCBBU04xOiBDaGFuZ2UgdGFnIDMwIHRvIDAyICM3MTUuMAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHBrY3M3X2FzbjFfZmFpbDoiMzA4MjA0OWQwNjA5MmE4NjQ4ODZmNzBkMDEwNzAyYTA4MjA0OGUzMDgyMDQ4YTAyMDEwMTMxMGYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBiMDYwOTJhODY0ODg2ZjcwZDAxMDcwMTMxODIwNDY1MzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDViZWNkODcxOTVjMWRlZmY5MGMyNGM5MTI2OWI1NWIzZjA2OWJjMjI1YzMyNmMzMTRjMWE1MTc4NmZmZTE0YzgzMGJlNGU0YmM3M2NiYTM2Yzk3Njc3YjQ0MTY4Mjc5YmU5MWU3Y2RmN2MxOTM4NmFlMjE4NjI3MTlkMTNhM2EwZmZmMDgwM2Q0NjA5NjJmMmNkYTgzNzE0ODQ4NzMyNTJjM2Q3MDU0ZGI4MTQzZTJiMDgxYTM4MTZlZDA4MDRjYTUwOTlhZTVmZWNlODNkNWMyYzM3ODNiMTk4OGI0YjQ2ZGM5NGU1NTU4N2ExMDdlYTE1NDZiZjIyZDI4YTA5N2Y2NTJhNDA2NmRjMjk2NTI2OTA2OWFmMmY1MTc2YmI4Y2U5Y2E2ZDExZjk2NzU3ZjAzMjA0Zjc1NjcwMzU4N2QwMGFkNDI0Nzk2YzkyZmM3YWViNmY0OTQ0MzE5OTllZGEzMDk5MGU0ZjU3NzM2MzJlZDI1OGZlMDI3NjY3MzU5OWRhNmZjZTM1Y2RhZDc3MjZhMGJiMDI0Y2FkOTk2Yjg4ZTBjYjk4ODU0Y2ViNWMwYjZlYzc0OGQ5ZjljZTZhNmNkNDM3ODU4YmFjYjgxNDYxOGEyNzJmZjNhNDE1YzZlMDdmM2RiMDk4ODc3N2ZkZWM4NDVhOTdiZjdkMTAyZGQwMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMyMDIxNDU2NGQ1NTQwMjVhZjU5OWUzMjcwNzliMjcyMGVmMDBkZjM3Y2ZiN2MzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDA0NjA5OGRjNWYyYjk5ZTNiYzJlZDY2NDJkN2YwYTYxZWZhYmMxNWMzOGM3NjMzM2JjY2NlZWVlMzY5YTRmNGE1YmRkYThlYTU5MjY0MTI0ZTQyOWYwODYzMjY4M2RkYmExN2JiZjI2MmQ4MmI2YmVmYTNiNGUxNDgwMzc2YThjN2YzYzdkN2UyYTY3NzliYmYxODI2MmFhODU3ZGU4YzIwYTEyYjZhMmNlOGU0ZDdmMzFkZDFiMTk1MzkyY2Y2MTg1YWZjZTM0YWZlMDU4OTYwNTdiMzZlOWIxNzFiNmM2N2VkN2MyMjg2Y2JmYTgzZmY4YTE2N2M3YmM3MTA5YWVlN2Q3ZTE5MDliZDM4NGZiZmM2MTkzOGVmY2E1MWM4OTkzYzcxZGIzMTc3MzBmMTZlN2U3NzY4NjdhZTRmZGM1NjJkNmYxNWRlNTg1ZTdiOTRlZjQ5NmEzNjc2MzY3YTJjYmFhYjdiNjM2NjQ4YjAwNzZiYWQ1Y2RmMWUwOTc0MGVjNmE0NTFiZmY1MzRlZmEyMTUwOWYzYmE3N2I4MTAxYjkxZWE3ZTU1ZGRiZmUxNDAxNTE3MDY3ZDdiMDFhMmEwODc5ZjA4ODVjODk0YTg3Y2ZiNjhjNGQ3ZWU4OTA2MDQ4ODFhZWI5N2MyMmQxZjMzN2VmOTIzZTAzNWE2NDAwMDI4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMzMDIxNDYyNDc3Mjk4NzU5ZThlMDQ3MThhZTU2MzE1NWYzNTIzY2ZiODRjZGIzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDZkMmNiYjM3ZmQxMjk1N2U1YTc0ODBjZTA0MzVlOGVmNjA3N2RlZjA4ZmYyNzA4NDRkZTI1MTZhNDc0MmYyMTFkOGM3NDY5MGJjMDk0OGUwOGEyOTZhYmJhOTI4NWY2YmIzMDViOTViN2Y5NDA4Y2U0NGU4Mzg4MGM3MTk0NDQ2NzJlYzk5NzQ2YmE3OGNjNGJkZTQ3NTMxOWQwMWJkZTc3YzQ5ZDU4ZDE2ZDNiMmU5MWMyZTYxZTgzMDNjYTNkN2VkYTM3OTdmZDhiMzVjYTcyYmIxNGIxNWEyNGI1NmJiNzBkYzEzNDg0NTY1ODA4MTEwZmY1ZGI1OGM1NmY3YTA0MzU2MDdlM2MzNTJmYmY0ZjU1MTA2ZjI5ODBmZDNjZDQyMzk3ZGJmNzEzN2VlN2YxZTMyY2Q4MGEzYjdhYjEyYjQ2YzE2OTIyMDI3OGQ3NzE3Yjc4YTNjNDVkNjM5NWExMzBhOGI1ODg0MWNiYzI5MGU0ZjgxN2RlM2E0ZmUxNmVjZDA3N2NhMzNhMGFhMjVlMjM1Y2M3ZjY2NTVhODBiYThhZWVjODc5MDViYjJhNzU0NTliN2JjYzVhMTMzZjI5OTM0OTNiNDFmZmNmNjNjZDdhMzkxZTNlNmY3ODA5NGNhNDQyYzgwMTQ0NDAzY2IwYTVmMDBiZmM2MWFlODgwIgogCiBQS0NTNyBQYXJzZSBGYWlsdXJlIEludmFsaWQgQVNOMTogQ2hhbmdlIGxlbmd0aCBmcm9tIDM3MSB0byAzNzIgIzcxNi4wCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NgogcGtjczdfYXNuMV9mYWlsOiIzMDgyMDQ5ZDA2MDkyYTg2NDg4NmY3MGQwMTA3MDJhMDgyMDQ4ZTMwODIwNDhhMDIwMTAxMzEwZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGIwNjA5MmE4NjQ4ODZmNzBkMDEwNzAxMzE4MjA0NjUzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwNWJlY2Q4NzE5NWMxZGVmZjkwYzI0YzkxMjY5YjU1YjNmMDY5YmMyMjVjMzI2YzMxNGMxYTUxNzg2ZmZlMTRjODMwYmU0ZTRiYzczY2JhMzZjOTc2NzdiNDQxNjgyNzliZTkxZTdjZGY3YzE5Mzg2YWUyMTg2MjcxOWQxM2EzYTBmZmYwODAzZDQ2MDk2MmYyY2RhODM3MTQ4NDg3MzI1MmMzZDcwNTRkYjgxNDNlMmIwODFhMzgxNmVkMDgwNGNhNTA5OWFlNWZlY2U4M2Q1YzJjMzc4M2IxOTg4YjRiNDZkYzk0ZTU1NTg3YTEwN2VhMTU0NmJmMjJkMjhhMDk3ZjY1MmE0MDY2ZGMyOTY1MjY5MDY5YWYyZjUxNzZiYjhjZTljYTZkMTFmOTY3NTdmMDMyMDRmNzU2NzAzNTg3ZDAwYWQ0MjQ3OTZjOTJmYzdhZWI2ZjQ5NDQzMTk5OWVkYTMwOTkwZTRmNTc3MzYzMmVkMjU4ZmUwMjc2NjczNTk5ZGE2ZmNlMzVjZGFkNzcyNmEwYmIwMjRjYWQ5OTZiODhlMGNiOTg4NTRjZWI1YzBiNmVjNzQ4ZDlmOWNlNmE2Y2Q0Mzc4NThiYWNiODE0NjE4YTI3MmZmM2E0MTVjNmUwN2YzZGIwOTg4Nzc3ZmRlYzg0NWE5N2JmN2QxMDJkZDAzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzIwMjE0NTY0ZDU1NDAyNWFmNTk5ZTMyNzA3OWIyNzIwZWYwMGRmMzdjZmI3YzMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwMDQ2MDk4ZGM1ZjJiOTllM2JjMmVkNjY0MmQ3ZjBhNjFlZmFiYzE1YzM4Yzc2MzMzYmNjY2VlZWUzNjlhNGY0YTViZGRhOGVhNTkyNjQxMjRlNDI5ZjA4NjMyNjgzZGRiYTE3YmJmMjYyZDgyYjZiZWZhM2I0ZTE0ODAzNzZhOGM3ZjNjN2Q3ZTJhNjc3OWJiZjE4MjYyYWE4NTdkZThjMjBhMTJiNmEyY2U4ZTRkN2YzMWRkMWIxOTUzOTJjZjYxODVhZmNlMzRhZmUwNTg5NjA1N2IzNmU5YjE3MWI2YzY3ZWQ3YzIyODZjYmZhODNmZjhhMTY3YzdiYzcxMDlhZWU3ZDdlMTkwOWJkMzg0ZmJmYzYxOTM4ZWZjYTUxYzg5OTNjNzFkYjMxNzczMGYxNmU3ZTc3Njg2N2FlNGZkYzU2MmQ2ZjE1ZGU1ODVlN2I5NGVmNDk2YTM2NzYzNjdhMmNiYWFiN2I2MzY2NDhiMDA3NmJhZDVjZGYxZTA5NzQwZWM2YTQ1MWJmZjUzNGVmYTIxNTA5ZjNiYTc3YjgxMDFiOTFlYTdlNTVkZGJmZTE0MDE1MTcwNjdkN2IwMWEyYTA4NzlmMDg4NWM4OTRhODdjZmI2OGM0ZDdlZTg5MDYwNDg4MWFlYjk3YzIyZDFmMzM3ZWY5MjNlMDM1YTY0MDAzMDgyMDE3NDAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzMwMjE0NjI0NzcyOTg3NTllOGUwNDcxOGFlNTYzMTU1ZjM1MjNjZmI4NGNkYjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwNmQyY2JiMzdmZDEyOTU3ZTVhNzQ4MGNlMDQzNWU4ZWY2MDc3ZGVmMDhmZjI3MDg0NGRlMjUxNmE0NzQyZjIxMWQ4Yzc0NjkwYmMwOTQ4ZTA4YTI5NmFiYmE5Mjg1ZjZiYjMwNWI5NWI3Zjk0MDhjZTQ0ZTgzODgwYzcxOTQ0NDY3MmVjOTk3NDZiYTc4Y2M0YmRlNDc1MzE5ZDAxYmRlNzdjNDlkNThkMTZkM2IyZTkxYzJlNjFlODMwM2NhM2Q3ZWRhMzc5N2ZkOGIzNWNhNzJiYjE0YjE1YTI0YjU2YmI3MGRjMTM0ODQ1NjU4MDgxMTBmZjVkYjU4YzU2ZjdhMDQzNTYwN2UzYzM1MmZiZjRmNTUxMDZmMjk4MGZkM2NkNDIzOTdkYmY3MTM3ZWU3ZjFlMzJjZDgwYTNiN2FiMTJiNDZjMTY5MjIwMjc4ZDc3MTdiNzhhM2M0NWQ2Mzk1YTEzMGE4YjU4ODQxY2JjMjkwZTRmODE3ZGUzYTRmZTE2ZWNkMDc3Y2EzM2EwYWEyNWUyMzVjYzdmNjY1NWE4MGJhOGFlZWM4NzkwNWJiMmE3NTQ1OWI3YmNjNWExMzNmMjk5MzQ5M2I0MWZmY2Y2M2NkN2EzOTFlM2U2Zjc4MDk0Y2E0NDJjODAxNDQ0MDNjYjBhNWYwMGJmYzYxYWU4ODAiCiAKIFBLQ1M3IFBhcnNlIEZhaWx1cmUgSW52YWxpZCBBU04xOiBDaGFuZ2UgY29udGVudHMgb2YgdGFnIDMwIHRvIGNvbnRhaW4gb25lIHVuYWNjb3VudGVkIGV4dHJhIGJ5dGUgIzcxNy4wCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NgogcGtjczdfYXNuMV9mYWlsOiIzMDgyMDQ5ZDA2MDkyYTg2NDg4NmY3MGQwMTA3MDJhMDgyMDQ4ZTMwODIwNDhhMDIwMTAxMzEwZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGIwNjA5MmE4NjQ4ODZmNzBkMDEwNzAxMzE4MjA0NjUzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwNWJlY2Q4NzE5NWMxZGVmZjkwYzI0YzkxMjY5YjU1YjNmMDY5YmMyMjVjMzI2YzMxNGMxYTUxNzg2ZmZlMTRjODMwYmU0ZTRiYzczY2JhMzZjOTc2NzdiNDQxNjgyNzliZTkxZTdjZGY3YzE5Mzg2YWUyMTg2MjcxOWQxM2EzYTBmZmYwODAzZDQ2MDk2MmYyY2RhODM3MTQ4NDg3MzI1MmMzZDcwNTRkYjgxNDNlMmIwODFhMzgxNmVkMDgwNGNhNTA5OWFlNWZlY2U4M2Q1YzJjMzc4M2IxOTg4YjRiNDZkYzk0ZTU1NTg3YTEwN2VhMTU0NmJmMjJkMjhhMDk3ZjY1MmE0MDY2ZGMyOTY1MjY5MDY5YWYyZjUxNzZiYjhjZTljYTZkMTFmOTY3NTdmMDMyMDRmNzU2NzAzNTg3ZDAwYWQ0MjQ3OTZjOTJmYzdhZWI2ZjQ5NDQzMTk5OWVkYTMwOTkwZTRmNTc3MzYzMmVkMjU4ZmUwMjc2NjczNTk5ZGE2ZmNlMzVjZGFkNzcyNmEwYmIwMjRjYWQ5OTZiODhlMGNiOTg4NTRjZWI1YzBiNmVjNzQ4ZDlmOWNlNmE2Y2Q0Mzc4NThiYWNiODE0NjE4YTI3MmZmM2E0MTVjNmUwN2YzZGIwOTg4Nzc3ZmRlYzg0NWE5N2JmN2QxMDJkZDAzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzIwMjE0NTY0ZDU1NDAyNWFmNTk5ZTMyNzA3OWIyNzIwZWYwMGRmMzdjZmI3YzMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwMDQ2MDk4ZGM1ZjJiOTllM2JjMmVkNjY0MmQ3ZjBhNjFlZmFiYzE1YzM4Yzc2MzMzYmNjY2VlZWUzNjlhNGY0YTViZGRhOGVhNTkyNjQxMjRlNDI5ZjA4NjMyNjgzZGRiYTE3YmJmMjYyZDgyYjZiZWZhM2I0ZTE0ODAzNzZhOGM3ZjNjN2Q3ZTJhNjc3OWJiZjE4MjYyYWE4NTdkZThjMjBhMTJiNmEyY2U4ZTRkN2YzMWRkMWIxOTUzOTJjZjYxODVhZmNlMzRhZmUwNTg5NjA1N2IzNmU5YjE3MWI2YzY3ZWQ3YzIyODZjYmZhODNmZjhhMTY3YzdiYzcxMDlhZWU3ZDdlMTkwOWJkMzg0ZmJmYzYxOTM4ZWZjYTUxYzg5OTNjNzFkYjMxNzczMGYxNmU3ZTc3Njg2N2FlNGZkYzU2MmQ2ZjE1ZGU1ODVlN2I5NGVmNDk2YTM2NzYzNjdhMmNiYWFiN2I2MzY2NDhiMDA3NmJhZDVjZGYxZTA5NzQwZWM2YTQ1MWJmZjUzNGVmYTIxNTA5ZjNiYTc3YjgxMDFiOTFlYTdlNTVkZGJmZTE0MDE1MTcwNjdkN2IwMWEyYTA4NzlmMDg4NWM4OTRhODdjZmI2OGM0ZDdlZTg5MDYwNDg4MWFlYjk3YzIyZDFmMzM3ZWY5MjNlMDM1YTY0MDAzMDgyMDE3NDAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzMwMjE0NjI0NzcyOTg3NTllOGUwNDcxOGFlNTYzMTU1ZjM1MjNjZmI4NGNkYjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwNmQyY2JiMzdmZDEyOTU3ZTVhNzQ4MGNlMDQzNWU4ZWY2MDc3ZGVmMDhmZjI3MDg0NGRlMjUxNmE0NzQyZjIxMWQ4Yzc0NjkwYmMwOTQ4ZTA4YTI5NmFiYmE5Mjg1ZjZiYjMwNWI5NWI3Zjk0MDhjZTQ0ZTgzODgwYzcxOTQ0NDY3MmVjOTk3NDZiYTc4Y2M0YmRlNDc1MzE5ZDAxYmRlNzdjNDlkNThkMTZkM2IyZTkxYzJlNjFlODMwM2NhM2Q3ZWRhMzc5N2ZkOGIzNWNhNzJiYjE0YjE1YTI0YjU2YmI3MGRjMTM0ODQ1NjU4MDgxMTBmZjVkYjU4YzU2ZjdhMDQzNTYwN2UzYzM1MmZiZjRmNTUxMDZmMjk4MGZkM2NkNDIzOTdkYmY3MTM3ZWU3ZjFlMzJjZDgwYTNiN2FiMTJiNDZjMTY5MjIwMjc4ZDc3MTdiNzhhM2M0NWQ2Mzk1YTEzMGE4YjU4ODQxY2JjMjkwZTRmODE3ZGUzYTRmZTE2ZWNkMDc3Y2EzM2EwYWEyNWUyMzVjYzdmNjY1NWE4MGJhOGFlZWM4NzkwNWJiMmE3NTQ1OWI3YmNjNWExMzNmMjk5MzQ5M2I0MWZmY2Y2M2NkN2EzOTFlM2U2Zjc4MDk0Y2E0NDJjODAxNDQ0MDNjYjBhNWYwMGJmYzYxYWU4ODAwMCIKIAogUEtDUzcgUGFyc2UgRmFpbHVyZSBJbnZhbGlkIEFTTjE6IENoYW5nZSBsZW5ndGggZnJvbSAzNzEgdG8gMzcwICM3MTguMAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHBrY3M3X2FzbjFfZmFpbDoiMzA4MjA0OWQwNjA5MmE4NjQ4ODZmNzBkMDEwNzAyYTA4MjA0OGUzMDgyMDQ4YTAyMDEwMTMxMGYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBiMDYwOTJhODY0ODg2ZjcwZDAxMDcwMTMxODIwNDY1MzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDViZWNkODcxOTVjMWRlZmY5MGMyNGM5MTI2OWI1NWIzZjA2OWJjMjI1YzMyNmMzMTRjMWE1MTc4NmZmZTE0YzgzMGJlNGU0YmM3M2NiYTM2Yzk3Njc3YjQ0MTY4Mjc5YmU5MWU3Y2RmN2MxOTM4NmFlMjE4NjI3MTlkMTNhM2EwZmZmMDgwM2Q0NjA5NjJmMmNkYTgzNzE0ODQ4NzMyNTJjM2Q3MDU0ZGI4MTQzZTJiMDgxYTM4MTZlZDA4MDRjYTUwOTlhZTVmZWNlODNkNWMyYzM3ODNiMTk4OGI0YjQ2ZGM5NGU1NTU4N2ExMDdlYTE1NDZiZjIyZDI4YTA5N2Y2NTJhNDA2NmRjMjk2NTI2OTA2OWFmMmY1MTc2YmI4Y2U5Y2E2ZDExZjk2NzU3ZjAzMjA0Zjc1NjcwMzU4N2QwMGFkNDI0Nzk2YzkyZmM3YWViNmY0OTQ0MzE5OTllZGEzMDk5MGU0ZjU3NzM2MzJlZDI1OGZlMDI3NjY3MzU5OWRhNmZjZTM1Y2RhZDc3MjZhMGJiMDI0Y2FkOTk2Yjg4ZTBjYjk4ODU0Y2ViNWMwYjZlYzc0OGQ5ZjljZTZhNmNkNDM3ODU4YmFjYjgxNDYxOGEyNzJmZjNhNDE1YzZlMDdmM2RiMDk4ODc3N2ZkZWM4NDVhOTdiZjdkMTAyZGQwMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMyMDIxNDU2NGQ1NTQwMjVhZjU5OWUzMjcwNzliMjcyMGVmMDBkZjM3Y2ZiN2MzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDA0NjA5OGRjNWYyYjk5ZTNiYzJlZDY2NDJkN2YwYTYxZWZhYmMxNWMzOGM3NjMzM2JjY2NlZWVlMzY5YTRmNGE1YmRkYThlYTU5MjY0MTI0ZTQyOWYwODYzMjY4M2RkYmExN2JiZjI2MmQ4MmI2YmVmYTNiNGUxNDgwMzc2YThjN2YzYzdkN2UyYTY3NzliYmYxODI2MmFhODU3ZGU4YzIwYTEyYjZhMmNlOGU0ZDdmMzFkZDFiMTk1MzkyY2Y2MTg1YWZjZTM0YWZlMDU4OTYwNTdiMzZlOWIxNzFiNmM2N2VkN2MyMjg2Y2JmYTgzZmY4YTE2N2M3YmM3MTA5YWVlN2Q3ZTE5MDliZDM4NGZiZmM2MTkzOGVmY2E1MWM4OTkzYzcxZGIzMTc3MzBmMTZlN2U3NzY4NjdhZTRmZGM1NjJkNmYxNWRlNTg1ZTdiOTRlZjQ5NmEzNjc2MzY3YTJjYmFhYjdiNjM2NjQ4YjAwNzZiYWQ1Y2RmMWUwOTc0MGVjNmE0NTFiZmY1MzRlZmEyMTUwOWYzYmE3N2I4MTAxYjkxZWE3ZTU1ZGRiZmUxNDAxNTE3MDY3ZDdiMDFhMmEwODc5ZjA4ODVjODk0YTg3Y2ZiNjhjNGQ3ZWU4OTA2MDQ4ODFhZWI5N2MyMmQxZjMzN2VmOTIzZTAzNWE2NDAwMzA4MjAxNzIwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMzMDIxNDYyNDc3Mjk4NzU5ZThlMDQ3MThhZTU2MzE1NWYzNTIzY2ZiODRjZGIzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDZkMmNiYjM3ZmQxMjk1N2U1YTc0ODBjZTA0MzVlOGVmNjA3N2RlZjA4ZmYyNzA4NDRkZTI1MTZhNDc0MmYyMTFkOGM3NDY5MGJjMDk0OGUwOGEyOTZhYmJhOTI4NWY2YmIzMDViOTViN2Y5NDA4Y2U0NGU4Mzg4MGM3MTk0NDQ2NzJlYzk5NzQ2YmE3OGNjNGJkZTQ3NTMxOWQwMWJkZTc3YzQ5ZDU4ZDE2ZDNiMmU5MWMyZTYxZTgzMDNjYTNkN2VkYTM3OTdmZDhiMzVjYTcyYmIxNGIxNWEyNGI1NmJiNzBkYzEzNDg0NTY1ODA4MTEwZmY1ZGI1OGM1NmY3YTA0MzU2MDdlM2MzNTJmYmY0ZjU1MTA2ZjI5ODBmZDNjZDQyMzk3ZGJmNzEzN2VlN2YxZTMyY2Q4MGEzYjdhYjEyYjQ2YzE2OTIyMDI3OGQ3NzE3Yjc4YTNjNDVkNjM5NWExMzBhOGI1ODg0MWNiYzI5MGU0ZjgxN2RlM2E0ZmUxNmVjZDA3N2NhMzNhMGFhMjVlMjM1Y2M3ZjY2NTVhODBiYThhZWVjODc5MDViYjJhNzU0NTliN2JjYzVhMTMzZjI5OTM0OTNiNDFmZmNmNjNjZDdhMzkxZTNlNmY3ODA5NGNhNDQyYzgwMTQ0NDAzY2IwYTVmMDBiZmM2MWFlODgwIgogCiBQS0NTNyBQYXJzZSBGYWlsdXJlIEludmFsaWQgQVNOMTogQ2hhbmdlIHRhZyAwMiB0byAwNCAjNzE5LjAKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBwa2NzN19hc24xX2ZhaWw6IjMwODIwNDlkMDYwOTJhODY0ODg2ZjcwZDAxMDcwMmEwODIwNDhlMzA4MjA0OGEwMjAxMDEzMTBmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwYjA2MDkyYTg2NDg4NmY3MGQwMTA3MDEzMTgyMDQ2NTMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTAyMTQ3YmRlZGRkMjQ0NGNkMWNkZmU1YzQxYTgxMDJjODliN2RmMmU2Y2JmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDA1YmVjZDg3MTk1YzFkZWZmOTBjMjRjOTEyNjliNTViM2YwNjliYzIyNWMzMjZjMzE0YzFhNTE3ODZmZmUxNGM4MzBiZTRlNGJjNzNjYmEzNmM5NzY3N2I0NDE2ODI3OWJlOTFlN2NkZjdjMTkzODZhZTIxODYyNzE5ZDEzYTNhMGZmZjA4MDNkNDYwOTYyZjJjZGE4MzcxNDg0ODczMjUyYzNkNzA1NGRiODE0M2UyYjA4MWEzODE2ZWQwODA0Y2E1MDk5YWU1ZmVjZTgzZDVjMmMzNzgzYjE5ODhiNGI0NmRjOTRlNTU1ODdhMTA3ZWExNTQ2YmYyMmQyOGEwOTdmNjUyYTQwNjZkYzI5NjUyNjkwNjlhZjJmNTE3NmJiOGNlOWNhNmQxMWY5Njc1N2YwMzIwNGY3NTY3MDM1ODdkMDBhZDQyNDc5NmM5MmZjN2FlYjZmNDk0NDMxOTk5ZWRhMzA5OTBlNGY1NzczNjMyZWQyNThmZTAyNzY2NzM1OTlkYTZmY2UzNWNkYWQ3NzI2YTBiYjAyNGNhZDk5NmI4OGUwY2I5ODg1NGNlYjVjMGI2ZWM3NDhkOWY5Y2U2YTZjZDQzNzg1OGJhY2I4MTQ2MThhMjcyZmYzYTQxNWM2ZTA3ZjNkYjA5ODg3NzdmZGVjODQ1YTk3YmY3ZDEwMmRkMDMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMjAyMTQ1NjRkNTU0MDI1YWY1OTllMzI3MDc5YjI3MjBlZjAwZGYzN2NmYjdjMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDAwNDYwOThkYzVmMmI5OWUzYmMyZWQ2NjQyZDdmMGE2MWVmYWJjMTVjMzhjNzYzMzNiY2NjZWVlZTM2OWE0ZjRhNWJkZGE4ZWE1OTI2NDEyNGU0MjlmMDg2MzI2ODNkZGJhMTdiYmYyNjJkODJiNmJlZmEzYjRlMTQ4MDM3NmE4YzdmM2M3ZDdlMmE2Nzc5YmJmMTgyNjJhYTg1N2RlOGMyMGExMmI2YTJjZThlNGQ3ZjMxZGQxYjE5NTM5MmNmNjE4NWFmY2UzNGFmZTA1ODk2MDU3YjM2ZTliMTcxYjZjNjdlZDdjMjI4NmNiZmE4M2ZmOGExNjdjN2JjNzEwOWFlZTdkN2UxOTA5YmQzODRmYmZjNjE5MzhlZmNhNTFjODk5M2M3MWRiMzE3NzMwZjE2ZTdlNzc2ODY3YWU0ZmRjNTYyZDZmMTVkZTU4NWU3Yjk0ZWY0OTZhMzY3NjM2N2EyY2JhYWI3YjYzNjY0OGIwMDc2YmFkNWNkZjFlMDk3NDBlYzZhNDUxYmZmNTM0ZWZhMjE1MDlmM2JhNzdiODEwMWI5MWVhN2U1NWRkYmZlMTQwMTUxNzA2N2Q3YjAxYTJhMDg3OWYwODg1Yzg5NGE4N2NmYjY4YzRkN2VlODkwNjA0ODgxYWViOTdjMjJkMWYzMzdlZjkyM2UwMzVhNjQwMDMwODIwMTczMDQwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMzAyMTQ2MjQ3NzI5ODc1OWU4ZTA0NzE4YWU1NjMxNTVmMzUyM2NmYjg0Y2RiMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDA2ZDJjYmIzN2ZkMTI5NTdlNWE3NDgwY2UwNDM1ZThlZjYwNzdkZWYwOGZmMjcwODQ0ZGUyNTE2YTQ3NDJmMjExZDhjNzQ2OTBiYzA5NDhlMDhhMjk2YWJiYTkyODVmNmJiMzA1Yjk1YjdmOTQwOGNlNDRlODM4ODBjNzE5NDQ0NjcyZWM5OTc0NmJhNzhjYzRiZGU0NzUzMTlkMDFiZGU3N2M0OWQ1OGQxNmQzYjJlOTFjMmU2MWU4MzAzY2EzZDdlZGEzNzk3ZmQ4YjM1Y2E3MmJiMTRiMTVhMjRiNTZiYjcwZGMxMzQ4NDU2NTgwODExMGZmNWRiNThjNTZmN2EwNDM1NjA3ZTNjMzUyZmJmNGY1NTEwNmYyOTgwZmQzY2Q0MjM5N2RiZjcxMzdlZTdmMWUzMmNkODBhM2I3YWIxMmI0NmMxNjkyMjAyNzhkNzcxN2I3OGEzYzQ1ZDYzOTVhMTMwYThiNTg4NDFjYmMyOTBlNGY4MTdkZTNhNGZlMTZlY2QwNzdjYTMzYTBhYTI1ZTIzNWNjN2Y2NjU1YTgwYmE4YWVlYzg3OTA1YmIyYTc1NDU5YjdiY2M1YTEzM2YyOTkzNDkzYjQxZmZjZjYzY2Q3YTM5MWUzZTZmNzgwOTRjYTQ0MmM4MDE0NDQwM2NiMGE1ZjAwYmZjNjFhZTg4MCIKIAogUEtDUzcgUGFyc2UgRmFpbHVyZSBJbnZhbGlkIEFTTjE6IENoYW5nZSBsZW5ndGggZnJvbSAxIHRvIDIgIzcyMC4wCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NgogcGtjczdfYXNuMV9mYWlsOiIzMDgyMDQ5ZDA2MDkyYTg2NDg4NmY3MGQwMTA3MDJhMDgyMDQ4ZTMwODIwNDhhMDIwMTAxMzEwZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGIwNjA5MmE4NjQ4ODZmNzBkMDEwNzAxMzE4MjA0NjUzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwNWJlY2Q4NzE5NWMxZGVmZjkwYzI0YzkxMjY5YjU1YjNmMDY5YmMyMjVjMzI2YzMxNGMxYTUxNzg2ZmZlMTRjODMwYmU0ZTRiYzczY2JhMzZjOTc2NzdiNDQxNjgyNzliZTkxZTdjZGY3YzE5Mzg2YWUyMTg2MjcxOWQxM2EzYTBmZmYwODAzZDQ2MDk2MmYyY2RhODM3MTQ4NDg3MzI1MmMzZDcwNTRkYjgxNDNlMmIwODFhMzgxNmVkMDgwNGNhNTA5OWFlNWZlY2U4M2Q1YzJjMzc4M2IxOTg4YjRiNDZkYzk0ZTU1NTg3YTEwN2VhMTU0NmJmMjJkMjhhMDk3ZjY1MmE0MDY2ZGMyOTY1MjY5MDY5YWYyZjUxNzZiYjhjZTljYTZkMTFmOTY3NTdmMDMyMDRmNzU2NzAzNTg3ZDAwYWQ0MjQ3OTZjOTJmYzdhZWI2ZjQ5NDQzMTk5OWVkYTMwOTkwZTRmNTc3MzYzMmVkMjU4ZmUwMjc2NjczNTk5ZGE2ZmNlMzVjZGFkNzcyNmEwYmIwMjRjYWQ5OTZiODhlMGNiOTg4NTRjZWI1YzBiNmVjNzQ4ZDlmOWNlNmE2Y2Q0Mzc4NThiYWNiODE0NjE4YTI3MmZmM2E0MTVjNmUwN2YzZGIwOTg4Nzc3ZmRlYzg0NWE5N2JmN2QxMDJkZDAzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzIwMjE0NTY0ZDU1NDAyNWFmNTk5ZTMyNzA3OWIyNzIwZWYwMGRmMzdjZmI3YzMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwMDQ2MDk4ZGM1ZjJiOTllM2JjMmVkNjY0MmQ3ZjBhNjFlZmFiYzE1YzM4Yzc2MzMzYmNjY2VlZWUzNjlhNGY0YTViZGRhOGVhNTkyNjQxMjRlNDI5ZjA4NjMyNjgzZGRiYTE3YmJmMjYyZDgyYjZiZWZhM2I0ZTE0ODAzNzZhOGM3ZjNjN2Q3ZTJhNjc3OWJiZjE4MjYyYWE4NTdkZThjMjBhMTJiNmEyY2U4ZTRkN2YzMWRkMWIxOTUzOTJjZjYxODVhZmNlMzRhZmUwNTg5NjA1N2IzNmU5YjE3MWI2YzY3ZWQ3YzIyODZjYmZhODNmZjhhMTY3YzdiYzcxMDlhZWU3ZDdlMTkwOWJkMzg0ZmJmYzYxOTM4ZWZjYTUxYzg5OTNjNzFkYjMxNzczMGYxNmU3ZTc3Njg2N2FlNGZkYzU2MmQ2ZjE1ZGU1ODVlN2I5NGVmNDk2YTM2NzYzNjdhMmNiYWFiN2I2MzY2NDhiMDA3NmJhZDVjZGYxZTA5NzQwZWM2YTQ1MWJmZjUzNGVmYTIxNTA5ZjNiYTc3YjgxMDFiOTFlYTdlNTVkZGJmZTE0MDE1MTcwNjdkN2IwMWEyYTA4NzlmMDg4NWM4OTRhODdjZmI2OGM0ZDdlZTg5MDYwNDg4MWFlYjk3YzIyZDFmMzM3ZWY5MjNlMDM1YTY0MDAzMDgyMDE3MzAyMDIwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzMwMjE0NjI0NzcyOTg3NTllOGUwNDcxOGFlNTYzMTU1ZjM1MjNjZmI4NGNkYjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwNmQyY2JiMzdmZDEyOTU3ZTVhNzQ4MGNlMDQzNWU4ZWY2MDc3ZGVmMDhmZjI3MDg0NGRlMjUxNmE0NzQyZjIxMWQ4Yzc0NjkwYmMwOTQ4ZTA4YTI5NmFiYmE5Mjg1ZjZiYjMwNWI5NWI3Zjk0MDhjZTQ0ZTgzODgwYzcxOTQ0NDY3MmVjOTk3NDZiYTc4Y2M0YmRlNDc1MzE5ZDAxYmRlNzdjNDlkNThkMTZkM2IyZTkxYzJlNjFlODMwM2NhM2Q3ZWRhMzc5N2ZkOGIzNWNhNzJiYjE0YjE1YTI0YjU2YmI3MGRjMTM0ODQ1NjU4MDgxMTBmZjVkYjU4YzU2ZjdhMDQzNTYwN2UzYzM1MmZiZjRmNTUxMDZmMjk4MGZkM2NkNDIzOTdkYmY3MTM3ZWU3ZjFlMzJjZDgwYTNiN2FiMTJiNDZjMTY5MjIwMjc4ZDc3MTdiNzhhM2M0NWQ2Mzk1YTEzMGE4YjU4ODQxY2JjMjkwZTRmODE3ZGUzYTRmZTE2ZWNkMDc3Y2EzM2EwYWEyNWUyMzVjYzdmNjY1NWE4MGJhOGFlZWM4NzkwNWJiMmE3NTQ1OWI3YmNjNWExMzNmMjk5MzQ5M2I0MWZmY2Y2M2NkN2EzOTFlM2U2Zjc4MDk0Y2E0NDJjODAxNDQ0MDNjYjBhNWYwMGJmYzYxYWU4ODAiCiAKIFBLQ1M3IFBhcnNlIEZhaWx1cmUgSW52YWxpZCBBU04xOiBDaGFuZ2UgbGVuZ3RoIGZyb20gMSB0byAwICM3MjEuMAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHBrY3M3X2FzbjFfZmFpbDoiMzA4MjA0OWQwNjA5MmE4NjQ4ODZmNzBkMDEwNzAyYTA4MjA0OGUzMDgyMDQ4YTAyMDEwMTMxMGYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBiMDYwOTJhODY0ODg2ZjcwZDAxMDcwMTMxODIwNDY1MzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDViZWNkODcxOTVjMWRlZmY5MGMyNGM5MTI2OWI1NWIzZjA2OWJjMjI1YzMyNmMzMTRjMWE1MTc4NmZmZTE0YzgzMGJlNGU0YmM3M2NiYTM2Yzk3Njc3YjQ0MTY4Mjc5YmU5MWU3Y2RmN2MxOTM4NmFlMjE4NjI3MTlkMTNhM2EwZmZmMDgwM2Q0NjA5NjJmMmNkYTgzNzE0ODQ4NzMyNTJjM2Q3MDU0ZGI4MTQzZTJiMDgxYTM4MTZlZDA4MDRjYTUwOTlhZTVmZWNlODNkNWMyYzM3ODNiMTk4OGI0YjQ2ZGM5NGU1NTU4N2ExMDdlYTE1NDZiZjIyZDI4YTA5N2Y2NTJhNDA2NmRjMjk2NTI2OTA2OWFmMmY1MTc2YmI4Y2U5Y2E2ZDExZjk2NzU3ZjAzMjA0Zjc1NjcwMzU4N2QwMGFkNDI0Nzk2YzkyZmM3YWViNmY0OTQ0MzE5OTllZGEzMDk5MGU0ZjU3NzM2MzJlZDI1OGZlMDI3NjY3MzU5OWRhNmZjZTM1Y2RhZDc3MjZhMGJiMDI0Y2FkOTk2Yjg4ZTBjYjk4ODU0Y2ViNWMwYjZlYzc0OGQ5ZjljZTZhNmNkNDM3ODU4YmFjYjgxNDYxOGEyNzJmZjNhNDE1YzZlMDdmM2RiMDk4ODc3N2ZkZWM4NDVhOTdiZjdkMTAyZGQwMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMyMDIxNDU2NGQ1NTQwMjVhZjU5OWUzMjcwNzliMjcyMGVmMDBkZjM3Y2ZiN2MzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDA0NjA5OGRjNWYyYjk5ZTNiYzJlZDY2NDJkN2YwYTYxZWZhYmMxNWMzOGM3NjMzM2JjY2NlZWVlMzY5YTRmNGE1YmRkYThlYTU5MjY0MTI0ZTQyOWYwODYzMjY4M2RkYmExN2JiZjI2MmQ4MmI2YmVmYTNiNGUxNDgwMzc2YThjN2YzYzdkN2UyYTY3NzliYmYxODI2MmFhODU3ZGU4YzIwYTEyYjZhMmNlOGU0ZDdmMzFkZDFiMTk1MzkyY2Y2MTg1YWZjZTM0YWZlMDU4OTYwNTdiMzZlOWIxNzFiNmM2N2VkN2MyMjg2Y2JmYTgzZmY4YTE2N2M3YmM3MTA5YWVlN2Q3ZTE5MDliZDM4NGZiZmM2MTkzOGVmY2E1MWM4OTkzYzcxZGIzMTc3MzBmMTZlN2U3NzY4NjdhZTRmZGM1NjJkNmYxNWRlNTg1ZTdiOTRlZjQ5NmEzNjc2MzY3YTJjYmFhYjdiNjM2NjQ4YjAwNzZiYWQ1Y2RmMWUwOTc0MGVjNmE0NTFiZmY1MzRlZmEyMTUwOWYzYmE3N2I4MTAxYjkxZWE3ZTU1ZGRiZmUxNDAxNTE3MDY3ZDdiMDFhMmEwODc5ZjA4ODVjODk0YTg3Y2ZiNjhjNGQ3ZWU4OTA2MDQ4ODFhZWI5N2MyMmQxZjMzN2VmOTIzZTAzNWE2NDAwMzA4MjAxNzMwMjAwMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMzMDIxNDYyNDc3Mjk4NzU5ZThlMDQ3MThhZTU2MzE1NWYzNTIzY2ZiODRjZGIzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDZkMmNiYjM3ZmQxMjk1N2U1YTc0ODBjZTA0MzVlOGVmNjA3N2RlZjA4ZmYyNzA4NDRkZTI1MTZhNDc0MmYyMTFkOGM3NDY5MGJjMDk0OGUwOGEyOTZhYmJhOTI4NWY2YmIzMDViOTViN2Y5NDA4Y2U0NGU4Mzg4MGM3MTk0NDQ2NzJlYzk5NzQ2YmE3OGNjNGJkZTQ3NTMxOWQwMWJkZTc3YzQ5ZDU4ZDE2ZDNiMmU5MWMyZTYxZTgzMDNjYTNkN2VkYTM3OTdmZDhiMzVjYTcyYmIxNGIxNWEyNGI1NmJiNzBkYzEzNDg0NTY1ODA4MTEwZmY1ZGI1OGM1NmY3YTA0MzU2MDdlM2MzNTJmYmY0ZjU1MTA2ZjI5ODBmZDNjZDQyMzk3ZGJmNzEzN2VlN2YxZTMyY2Q4MGEzYjdhYjEyYjQ2YzE2OTIyMDI3OGQ3NzE3Yjc4YTNjNDVkNjM5NWExMzBhOGI1ODg0MWNiYzI5MGU0ZjgxN2RlM2E0ZmUxNmVjZDA3N2NhMzNhMGFhMjVlMjM1Y2M3ZjY2NTVhODBiYThhZWVjODc5MDViYjJhNzU0NTliN2JjYzVhMTMzZjI5OTM0OTNiNDFmZmNmNjNjZDdhMzkxZTNlNmY3ODA5NGNhNDQyYzgwMTQ0NDAzY2IwYTVmMDBiZmM2MWFlODgwIgogCiBQS0NTNyBQYXJzZSBGYWlsdXJlIEludmFsaWQgQVNOMTogQ2hhbmdlIHRhZyAzMCB0byAwMiAjNzIyLjAKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBwa2NzN19hc24xX2ZhaWw6IjMwODIwNDlkMDYwOTJhODY0ODg2ZjcwZDAxMDcwMmEwODIwNDhlMzA4MjA0OGEwMjAxMDEzMTBmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwYjA2MDkyYTg2NDg4NmY3MGQwMTA3MDEzMTgyMDQ2NTMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTAyMTQ3YmRlZGRkMjQ0NGNkMWNkZmU1YzQxYTgxMDJjODliN2RmMmU2Y2JmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDA1YmVjZDg3MTk1YzFkZWZmOTBjMjRjOTEyNjliNTViM2YwNjliYzIyNWMzMjZjMzE0YzFhNTE3ODZmZmUxNGM4MzBiZTRlNGJjNzNjYmEzNmM5NzY3N2I0NDE2ODI3OWJlOTFlN2NkZjdjMTkzODZhZTIxODYyNzE5ZDEzYTNhMGZmZjA4MDNkNDYwOTYyZjJjZGE4MzcxNDg0ODczMjUyYzNkNzA1NGRiODE0M2UyYjA4MWEzODE2ZWQwODA0Y2E1MDk5YWU1ZmVjZTgzZDVjMmMzNzgzYjE5ODhiNGI0NmRjOTRlNTU1ODdhMTA3ZWExNTQ2YmYyMmQyOGEwOTdmNjUyYTQwNjZkYzI5NjUyNjkwNjlhZjJmNTE3NmJiOGNlOWNhNmQxMWY5Njc1N2YwMzIwNGY3NTY3MDM1ODdkMDBhZDQyNDc5NmM5MmZjN2FlYjZmNDk0NDMxOTk5ZWRhMzA5OTBlNGY1NzczNjMyZWQyNThmZTAyNzY2NzM1OTlkYTZmY2UzNWNkYWQ3NzI2YTBiYjAyNGNhZDk5NmI4OGUwY2I5ODg1NGNlYjVjMGI2ZWM3NDhkOWY5Y2U2YTZjZDQzNzg1OGJhY2I4MTQ2MThhMjcyZmYzYTQxNWM2ZTA3ZjNkYjA5ODg3NzdmZGVjODQ1YTk3YmY3ZDEwMmRkMDMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMjAyMTQ1NjRkNTU0MDI1YWY1OTllMzI3MDc5YjI3MjBlZjAwZGYzN2NmYjdjMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDAwNDYwOThkYzVmMmI5OWUzYmMyZWQ2NjQyZDdmMGE2MWVmYWJjMTVjMzhjNzYzMzNiY2NjZWVlZTM2OWE0ZjRhNWJkZGE4ZWE1OTI2NDEyNGU0MjlmMDg2MzI2ODNkZGJhMTdiYmYyNjJkODJiNmJlZmEzYjRlMTQ4MDM3NmE4YzdmM2M3ZDdlMmE2Nzc5YmJmMTgyNjJhYTg1N2RlOGMyMGExMmI2YTJjZThlNGQ3ZjMxZGQxYjE5NTM5MmNmNjE4NWFmY2UzNGFmZTA1ODk2MDU3YjM2ZTliMTcxYjZjNjdlZDdjMjI4NmNiZmE4M2ZmOGExNjdjN2JjNzEwOWFlZTdkN2UxOTA5YmQzODRmYmZjNjE5MzhlZmNhNTFjODk5M2M3MWRiMzE3NzMwZjE2ZTdlNzc2ODY3YWU0ZmRjNTYyZDZmMTVkZTU4NWU3Yjk0ZWY0OTZhMzY3NjM2N2EyY2JhYWI3YjYzNjY0OGIwMDc2YmFkNWNkZjFlMDk3NDBlYzZhNDUxYmZmNTM0ZWZhMjE1MDlmM2JhNzdiODEwMWI5MWVhN2U1NWRkYmZlMTQwMTUxNzA2N2Q3YjAxYTJhMDg3OWYwODg1Yzg5NGE4N2NmYjY4YzRkN2VlODkwNjA0ODgxYWViOTdjMjJkMWYzMzdlZjkyM2UwMzVhNjQwMDMwODIwMTczMDIwMTAxMDI0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMzAyMTQ2MjQ3NzI5ODc1OWU4ZTA0NzE4YWU1NjMxNTVmMzUyM2NmYjg0Y2RiMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDA2ZDJjYmIzN2ZkMTI5NTdlNWE3NDgwY2UwNDM1ZThlZjYwNzdkZWYwOGZmMjcwODQ0ZGUyNTE2YTQ3NDJmMjExZDhjNzQ2OTBiYzA5NDhlMDhhMjk2YWJiYTkyODVmNmJiMzA1Yjk1YjdmOTQwOGNlNDRlODM4ODBjNzE5NDQ0NjcyZWM5OTc0NmJhNzhjYzRiZGU0NzUzMTlkMDFiZGU3N2M0OWQ1OGQxNmQzYjJlOTFjMmU2MWU4MzAzY2EzZDdlZGEzNzk3ZmQ4YjM1Y2E3MmJiMTRiMTVhMjRiNTZiYjcwZGMxMzQ4NDU2NTgwODExMGZmNWRiNThjNTZmN2EwNDM1NjA3ZTNjMzUyZmJmNGY1NTEwNmYyOTgwZmQzY2Q0MjM5N2RiZjcxMzdlZTdmMWUzMmNkODBhM2I3YWIxMmI0NmMxNjkyMjAyNzhkNzcxN2I3OGEzYzQ1ZDYzOTVhMTMwYThiNTg4NDFjYmMyOTBlNGY4MTdkZTNhNGZlMTZlY2QwNzdjYTMzYTBhYTI1ZTIzNWNjN2Y2NjU1YTgwYmE4YWVlYzg3OTA1YmIyYTc1NDU5YjdiY2M1YTEzM2YyOTkzNDkzYjQxZmZjZjYzY2Q3YTM5MWUzZTZmNzgwOTRjYTQ0MmM4MDE0NDQwM2NiMGE1ZjAwYmZjNjFhZTg4MCIKIAogUEtDUzcgUGFyc2UgRmFpbHVyZSBJbnZhbGlkIEFTTjE6IENoYW5nZSBsZW5ndGggZnJvbSA3NiB0byA3NyAjNzIzLjAKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBwa2NzN19hc24xX2ZhaWw6IjMwODIwNDlkMDYwOTJhODY0ODg2ZjcwZDAxMDcwMmEwODIwNDhlMzA4MjA0OGEwMjAxMDEzMTBmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwYjA2MDkyYTg2NDg4NmY3MGQwMTA3MDEzMTgyMDQ2NTMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTAyMTQ3YmRlZGRkMjQ0NGNkMWNkZmU1YzQxYTgxMDJjODliN2RmMmU2Y2JmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDA1YmVjZDg3MTk1YzFkZWZmOTBjMjRjOTEyNjliNTViM2YwNjliYzIyNWMzMjZjMzE0YzFhNTE3ODZmZmUxNGM4MzBiZTRlNGJjNzNjYmEzNmM5NzY3N2I0NDE2ODI3OWJlOTFlN2NkZjdjMTkzODZhZTIxODYyNzE5ZDEzYTNhMGZmZjA4MDNkNDYwOTYyZjJjZGE4MzcxNDg0ODczMjUyYzNkNzA1NGRiODE0M2UyYjA4MWEzODE2ZWQwODA0Y2E1MDk5YWU1ZmVjZTgzZDVjMmMzNzgzYjE5ODhiNGI0NmRjOTRlNTU1ODdhMTA3ZWExNTQ2YmYyMmQyOGEwOTdmNjUyYTQwNjZkYzI5NjUyNjkwNjlhZjJmNTE3NmJiOGNlOWNhNmQxMWY5Njc1N2YwMzIwNGY3NTY3MDM1ODdkMDBhZDQyNDc5NmM5MmZjN2FlYjZmNDk0NDMxOTk5ZWRhMzA5OTBlNGY1NzczNjMyZWQyNThmZTAyNzY2NzM1OTlkYTZmY2UzNWNkYWQ3NzI2YTBiYjAyNGNhZDk5NmI4OGUwY2I5ODg1NGNlYjVjMGI2ZWM3NDhkOWY5Y2U2YTZjZDQzNzg1OGJhY2I4MTQ2MThhMjcyZmYzYTQxNWM2ZTA3ZjNkYjA5ODg3NzdmZGVjODQ1YTk3YmY3ZDEwMmRkMDMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMjAyMTQ1NjRkNTU0MDI1YWY1OTllMzI3MDc5YjI3MjBlZjAwZGYzN2NmYjdjMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDAwNDYwOThkYzVmMmI5OWUzYmMyZWQ2NjQyZDdmMGE2MWVmYWJjMTVjMzhjNzYzMzNiY2NjZWVlZTM2OWE0ZjRhNWJkZGE4ZWE1OTI2NDEyNGU0MjlmMDg2MzI2ODNkZGJhMTdiYmYyNjJkODJiNmJlZmEzYjRlMTQ4MDM3NmE4YzdmM2M3ZDdlMmE2Nzc5YmJmMTgyNjJhYTg1N2RlOGMyMGExMmI2YTJjZThlNGQ3ZjMxZGQxYjE5NTM5MmNmNjE4NWFmY2UzNGFmZTA1ODk2MDU3YjM2ZTliMTcxYjZjNjdlZDdjMjI4NmNiZmE4M2ZmOGExNjdjN2JjNzEwOWFlZTdkN2UxOTA5YmQzODRmYmZjNjE5MzhlZmNhNTFjODk5M2M3MWRiMzE3NzMwZjE2ZTdlNzc2ODY3YWU0ZmRjNTYyZDZmMTVkZTU4NWU3Yjk0ZWY0OTZhMzY3NjM2N2EyY2JhYWI3YjYzNjY0OGIwMDc2YmFkNWNkZjFlMDk3NDBlYzZhNDUxYmZmNTM0ZWZhMjE1MDlmM2JhNzdiODEwMWI5MWVhN2U1NWRkYmZlMTQwMTUxNzA2N2Q3YjAxYTJhMDg3OWYwODg1Yzg5NGE4N2NmYjY4YzRkN2VlODkwNjA0ODgxYWViOTdjMjJkMWYzMzdlZjkyM2UwMzVhNjQwMDMwODIwMTczMDIwMTAxMzA0ZDMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMzAyMTQ2MjQ3NzI5ODc1OWU4ZTA0NzE4YWU1NjMxNTVmMzUyM2NmYjg0Y2RiMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDA2ZDJjYmIzN2ZkMTI5NTdlNWE3NDgwY2UwNDM1ZThlZjYwNzdkZWYwOGZmMjcwODQ0ZGUyNTE2YTQ3NDJmMjExZDhjNzQ2OTBiYzA5NDhlMDhhMjk2YWJiYTkyODVmNmJiMzA1Yjk1YjdmOTQwOGNlNDRlODM4ODBjNzE5NDQ0NjcyZWM5OTc0NmJhNzhjYzRiZGU0NzUzMTlkMDFiZGU3N2M0OWQ1OGQxNmQzYjJlOTFjMmU2MWU4MzAzY2EzZDdlZGEzNzk3ZmQ4YjM1Y2E3MmJiMTRiMTVhMjRiNTZiYjcwZGMxMzQ4NDU2NTgwODExMGZmNWRiNThjNTZmN2EwNDM1NjA3ZTNjMzUyZmJmNGY1NTEwNmYyOTgwZmQzY2Q0MjM5N2RiZjcxMzdlZTdmMWUzMmNkODBhM2I3YWIxMmI0NmMxNjkyMjAyNzhkNzcxN2I3OGEzYzQ1ZDYzOTVhMTMwYThiNTg4NDFjYmMyOTBlNGY4MTdkZTNhNGZlMTZlY2QwNzdjYTMzYTBhYTI1ZTIzNWNjN2Y2NjU1YTgwYmE4YWVlYzg3OTA1YmIyYTc1NDU5YjdiY2M1YTEzM2YyOTkzNDkzYjQxZmZjZjYzY2Q3YTM5MWUzZTZmNzgwOTRjYTQ0MmM4MDE0NDQwM2NiMGE1ZjAwYmZjNjFhZTg4MCIKIAogUEtDUzcgUGFyc2UgRmFpbHVyZSBJbnZhbGlkIEFTTjE6IENoYW5nZSBjb250ZW50cyBvZiB0YWcgMzAgdG8gY29udGFpbiBvbmUgdW5hY2NvdW50ZWQgZXh0cmEgYnl0ZSAjNzI0LjAKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBwa2NzN19hc24xX2ZhaWw6IjMwODIwNDlkMDYwOTJhODY0ODg2ZjcwZDAxMDcwMmEwODIwNDhlMzA4MjA0OGEwMjAxMDEzMTBmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwYjA2MDkyYTg2NDg4NmY3MGQwMTA3MDEzMTgyMDQ2NTMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTAyMTQ3YmRlZGRkMjQ0NGNkMWNkZmU1YzQxYTgxMDJjODliN2RmMmU2Y2JmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDA1YmVjZDg3MTk1YzFkZWZmOTBjMjRjOTEyNjliNTViM2YwNjliYzIyNWMzMjZjMzE0YzFhNTE3ODZmZmUxNGM4MzBiZTRlNGJjNzNjYmEzNmM5NzY3N2I0NDE2ODI3OWJlOTFlN2NkZjdjMTkzODZhZTIxODYyNzE5ZDEzYTNhMGZmZjA4MDNkNDYwOTYyZjJjZGE4MzcxNDg0ODczMjUyYzNkNzA1NGRiODE0M2UyYjA4MWEzODE2ZWQwODA0Y2E1MDk5YWU1ZmVjZTgzZDVjMmMzNzgzYjE5ODhiNGI0NmRjOTRlNTU1ODdhMTA3ZWExNTQ2YmYyMmQyOGEwOTdmNjUyYTQwNjZkYzI5NjUyNjkwNjlhZjJmNTE3NmJiOGNlOWNhNmQxMWY5Njc1N2YwMzIwNGY3NTY3MDM1ODdkMDBhZDQyNDc5NmM5MmZjN2FlYjZmNDk0NDMxOTk5ZWRhMzA5OTBlNGY1NzczNjMyZWQyNThmZTAyNzY2NzM1OTlkYTZmY2UzNWNkYWQ3NzI2YTBiYjAyNGNhZDk5NmI4OGUwY2I5ODg1NGNlYjVjMGI2ZWM3NDhkOWY5Y2U2YTZjZDQzNzg1OGJhY2I4MTQ2MThhMjcyZmYzYTQxNWM2ZTA3ZjNkYjA5ODg3NzdmZGVjODQ1YTk3YmY3ZDEwMmRkMDMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMjAyMTQ1NjRkNTU0MDI1YWY1OTllMzI3MDc5YjI3MjBlZjAwZGYzN2NmYjdjMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDAwNDYwOThkYzVmMmI5OWUzYmMyZWQ2NjQyZDdmMGE2MWVmYWJjMTVjMzhjNzYzMzNiY2NjZWVlZTM2OWE0ZjRhNWJkZGE4ZWE1OTI2NDEyNGU0MjlmMDg2MzI2ODNkZGJhMTdiYmYyNjJkODJiNmJlZmEzYjRlMTQ4MDM3NmE4YzdmM2M3ZDdlMmE2Nzc5YmJmMTgyNjJhYTg1N2RlOGMyMGExMmI2YTJjZThlNGQ3ZjMxZGQxYjE5NTM5MmNmNjE4NWFmY2UzNGFmZTA1ODk2MDU3YjM2ZTliMTcxYjZjNjdlZDdjMjI4NmNiZmE4M2ZmOGExNjdjN2JjNzEwOWFlZTdkN2UxOTA5YmQzODRmYmZjNjE5MzhlZmNhNTFjODk5M2M3MWRiMzE3NzMwZjE2ZTdlNzc2ODY3YWU0ZmRjNTYyZDZmMTVkZTU4NWU3Yjk0ZWY0OTZhMzY3NjM2N2EyY2JhYWI3YjYzNjY0OGIwMDc2YmFkNWNkZjFlMDk3NDBlYzZhNDUxYmZmNTM0ZWZhMjE1MDlmM2JhNzdiODEwMWI5MWVhN2U1NWRkYmZlMTQwMTUxNzA2N2Q3YjAxYTJhMDg3OWYwODg1Yzg5NGE4N2NmYjY4YzRkN2VlODkwNjA0ODgxYWViOTdjMjJkMWYzMzdlZjkyM2UwMzVhNjQwMDMwODIwMTczMDIwMTAxMzA0ZDMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMzAyMTQ2MjQ3NzI5ODc1OWU4ZTA0NzE4YWU1NjMxNTVmMzUyM2NmYjg0Y2RiMDAzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDZkMmNiYjM3ZmQxMjk1N2U1YTc0ODBjZTA0MzVlOGVmNjA3N2RlZjA4ZmYyNzA4NDRkZTI1MTZhNDc0MmYyMTFkOGM3NDY5MGJjMDk0OGUwOGEyOTZhYmJhOTI4NWY2YmIzMDViOTViN2Y5NDA4Y2U0NGU4Mzg4MGM3MTk0NDQ2NzJlYzk5NzQ2YmE3OGNjNGJkZTQ3NTMxOWQwMWJkZTc3YzQ5ZDU4ZDE2ZDNiMmU5MWMyZTYxZTgzMDNjYTNkN2VkYTM3OTdmZDhiMzVjYTcyYmIxNGIxNWEyNGI1NmJiNzBkYzEzNDg0NTY1ODA4MTEwZmY1ZGI1OGM1NmY3YTA0MzU2MDdlM2MzNTJmYmY0ZjU1MTA2ZjI5ODBmZDNjZDQyMzk3ZGJmNzEzN2VlN2YxZTMyY2Q4MGEzYjdhYjEyYjQ2YzE2OTIyMDI3OGQ3NzE3Yjc4YTNjNDVkNjM5NWExMzBhOGI1ODg0MWNiYzI5MGU0ZjgxN2RlM2E0ZmUxNmVjZDA3N2NhMzNhMGFhMjVlMjM1Y2M3ZjY2NTVhODBiYThhZWVjODc5MDViYjJhNzU0NTliN2JjYzVhMTMzZjI5OTM0OTNiNDFmZmNmNjNjZDdhMzkxZTNlNmY3ODA5NGNhNDQyYzgwMTQ0NDAzY2IwYTVmMDBiZmM2MWFlODgwIgogCiBQS0NTNyBQYXJzZSBGYWlsdXJlIEludmFsaWQgQVNOMTogQ2hhbmdlIGxlbmd0aCBmcm9tIDc2IHRvIDc1ICM3MjUuMAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHBrY3M3X2FzbjFfZmFpbDoiMzA4MjA0OWQwNjA5MmE4NjQ4ODZmNzBkMDEwNzAyYTA4MjA0OGUzMDgyMDQ4YTAyMDEwMTMxMGYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBiMDYwOTJhODY0ODg2ZjcwZDAxMDcwMTMxODIwNDY1MzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDViZWNkODcxOTVjMWRlZmY5MGMyNGM5MTI2OWI1NWIzZjA2OWJjMjI1YzMyNmMzMTRjMWE1MTc4NmZmZTE0YzgzMGJlNGU0YmM3M2NiYTM2Yzk3Njc3YjQ0MTY4Mjc5YmU5MWU3Y2RmN2MxOTM4NmFlMjE4NjI3MTlkMTNhM2EwZmZmMDgwM2Q0NjA5NjJmMmNkYTgzNzE0ODQ4NzMyNTJjM2Q3MDU0ZGI4MTQzZTJiMDgxYTM4MTZlZDA4MDRjYTUwOTlhZTVmZWNlODNkNWMyYzM3ODNiMTk4OGI0YjQ2ZGM5NGU1NTU4N2ExMDdlYTE1NDZiZjIyZDI4YTA5N2Y2NTJhNDA2NmRjMjk2NTI2OTA2OWFmMmY1MTc2YmI4Y2U5Y2E2ZDExZjk2NzU3ZjAzMjA0Zjc1NjcwMzU4N2QwMGFkNDI0Nzk2YzkyZmM3YWViNmY0OTQ0MzE5OTllZGEzMDk5MGU0ZjU3NzM2MzJlZDI1OGZlMDI3NjY3MzU5OWRhNmZjZTM1Y2RhZDc3MjZhMGJiMDI0Y2FkOTk2Yjg4ZTBjYjk4ODU0Y2ViNWMwYjZlYzc0OGQ5ZjljZTZhNmNkNDM3ODU4YmFjYjgxNDYxOGEyNzJmZjNhNDE1YzZlMDdmM2RiMDk4ODc3N2ZkZWM4NDVhOTdiZjdkMTAyZGQwMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMyMDIxNDU2NGQ1NTQwMjVhZjU5OWUzMjcwNzliMjcyMGVmMDBkZjM3Y2ZiN2MzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDA0NjA5OGRjNWYyYjk5ZTNiYzJlZDY2NDJkN2YwYTYxZWZhYmMxNWMzOGM3NjMzM2JjY2NlZWVlMzY5YTRmNGE1YmRkYThlYTU5MjY0MTI0ZTQyOWYwODYzMjY4M2RkYmExN2JiZjI2MmQ4MmI2YmVmYTNiNGUxNDgwMzc2YThjN2YzYzdkN2UyYTY3NzliYmYxODI2MmFhODU3ZGU4YzIwYTEyYjZhMmNlOGU0ZDdmMzFkZDFiMTk1MzkyY2Y2MTg1YWZjZTM0YWZlMDU4OTYwNTdiMzZlOWIxNzFiNmM2N2VkN2MyMjg2Y2JmYTgzZmY4YTE2N2M3YmM3MTA5YWVlN2Q3ZTE5MDliZDM4NGZiZmM2MTkzOGVmY2E1MWM4OTkzYzcxZGIzMTc3MzBmMTZlN2U3NzY4NjdhZTRmZGM1NjJkNmYxNWRlNTg1ZTdiOTRlZjQ5NmEzNjc2MzY3YTJjYmFhYjdiNjM2NjQ4YjAwNzZiYWQ1Y2RmMWUwOTc0MGVjNmE0NTFiZmY1MzRlZmEyMTUwOWYzYmE3N2I4MTAxYjkxZWE3ZTU1ZGRiZmUxNDAxNTE3MDY3ZDdiMDFhMmEwODc5ZjA4ODVjODk0YTg3Y2ZiNjhjNGQ3ZWU4OTA2MDQ4ODFhZWI5N2MyMmQxZjMzN2VmOTIzZTAzNWE2NDAwMzA4MjAxNzMwMjAxMDEzMDRiMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMzMDIxNDYyNDc3Mjk4NzU5ZThlMDQ3MThhZTU2MzE1NWYzNTIzY2ZiODRjZGIzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDZkMmNiYjM3ZmQxMjk1N2U1YTc0ODBjZTA0MzVlOGVmNjA3N2RlZjA4ZmYyNzA4NDRkZTI1MTZhNDc0MmYyMTFkOGM3NDY5MGJjMDk0OGUwOGEyOTZhYmJhOTI4NWY2YmIzMDViOTViN2Y5NDA4Y2U0NGU4Mzg4MGM3MTk0NDQ2NzJlYzk5NzQ2YmE3OGNjNGJkZTQ3NTMxOWQwMWJkZTc3YzQ5ZDU4ZDE2ZDNiMmU5MWMyZTYxZTgzMDNjYTNkN2VkYTM3OTdmZDhiMzVjYTcyYmIxNGIxNWEyNGI1NmJiNzBkYzEzNDg0NTY1ODA4MTEwZmY1ZGI1OGM1NmY3YTA0MzU2MDdlM2MzNTJmYmY0ZjU1MTA2ZjI5ODBmZDNjZDQyMzk3ZGJmNzEzN2VlN2YxZTMyY2Q4MGEzYjdhYjEyYjQ2YzE2OTIyMDI3OGQ3NzE3Yjc4YTNjNDVkNjM5NWExMzBhOGI1ODg0MWNiYzI5MGU0ZjgxN2RlM2E0ZmUxNmVjZDA3N2NhMzNhMGFhMjVlMjM1Y2M3ZjY2NTVhODBiYThhZWVjODc5MDViYjJhNzU0NTliN2JjYzVhMTMzZjI5OTM0OTNiNDFmZmNmNjNjZDdhMzkxZTNlNmY3ODA5NGNhNDQyYzgwMTQ0NDAzY2IwYTVmMDBiZmM2MWFlODgwIgogCiBQS0NTNyBQYXJzZSBGYWlsdXJlIEludmFsaWQgQVNOMTogQ2hhbmdlIHRhZyAzMCB0byAwMiAjNzI2LjAKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBwa2NzN19hc24xX2ZhaWw6IjMwODIwNDlkMDYwOTJhODY0ODg2ZjcwZDAxMDcwMmEwODIwNDhlMzA4MjA0OGEwMjAxMDEzMTBmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwYjA2MDkyYTg2NDg4NmY3MGQwMTA3MDEzMTgyMDQ2NTMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTAyMTQ3YmRlZGRkMjQ0NGNkMWNkZmU1YzQxYTgxMDJjODliN2RmMmU2Y2JmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDA1YmVjZDg3MTk1YzFkZWZmOTBjMjRjOTEyNjliNTViM2YwNjliYzIyNWMzMjZjMzE0YzFhNTE3ODZmZmUxNGM4MzBiZTRlNGJjNzNjYmEzNmM5NzY3N2I0NDE2ODI3OWJlOTFlN2NkZjdjMTkzODZhZTIxODYyNzE5ZDEzYTNhMGZmZjA4MDNkNDYwOTYyZjJjZGE4MzcxNDg0ODczMjUyYzNkNzA1NGRiODE0M2UyYjA4MWEzODE2ZWQwODA0Y2E1MDk5YWU1ZmVjZTgzZDVjMmMzNzgzYjE5ODhiNGI0NmRjOTRlNTU1ODdhMTA3ZWExNTQ2YmYyMmQyOGEwOTdmNjUyYTQwNjZkYzI5NjUyNjkwNjlhZjJmNTE3NmJiOGNlOWNhNmQxMWY5Njc1N2YwMzIwNGY3NTY3MDM1ODdkMDBhZDQyNDc5NmM5MmZjN2FlYjZmNDk0NDMxOTk5ZWRhMzA5OTBlNGY1NzczNjMyZWQyNThmZTAyNzY2NzM1OTlkYTZmY2UzNWNkYWQ3NzI2YTBiYjAyNGNhZDk5NmI4OGUwY2I5ODg1NGNlYjVjMGI2ZWM3NDhkOWY5Y2U2YTZjZDQzNzg1OGJhY2I4MTQ2MThhMjcyZmYzYTQxNWM2ZTA3ZjNkYjA5ODg3NzdmZGVjODQ1YTk3YmY3ZDEwMmRkMDMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMjAyMTQ1NjRkNTU0MDI1YWY1OTllMzI3MDc5YjI3MjBlZjAwZGYzN2NmYjdjMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDAwNDYwOThkYzVmMmI5OWUzYmMyZWQ2NjQyZDdmMGE2MWVmYWJjMTVjMzhjNzYzMzNiY2NjZWVlZTM2OWE0ZjRhNWJkZGE4ZWE1OTI2NDEyNGU0MjlmMDg2MzI2ODNkZGJhMTdiYmYyNjJkODJiNmJlZmEzYjRlMTQ4MDM3NmE4YzdmM2M3ZDdlMmE2Nzc5YmJmMTgyNjJhYTg1N2RlOGMyMGExMmI2YTJjZThlNGQ3ZjMxZGQxYjE5NTM5MmNmNjE4NWFmY2UzNGFmZTA1ODk2MDU3YjM2ZTliMTcxYjZjNjdlZDdjMjI4NmNiZmE4M2ZmOGExNjdjN2JjNzEwOWFlZTdkN2UxOTA5YmQzODRmYmZjNjE5MzhlZmNhNTFjODk5M2M3MWRiMzE3NzMwZjE2ZTdlNzc2ODY3YWU0ZmRjNTYyZDZmMTVkZTU4NWU3Yjk0ZWY0OTZhMzY3NjM2N2EyY2JhYWI3YjYzNjY0OGIwMDc2YmFkNWNkZjFlMDk3NDBlYzZhNDUxYmZmNTM0ZWZhMjE1MDlmM2JhNzdiODEwMWI5MWVhN2U1NWRkYmZlMTQwMTUxNzA2N2Q3YjAxYTJhMDg3OWYwODg1Yzg5NGE4N2NmYjY4YzRkN2VlODkwNjA0ODgxYWViOTdjMjJkMWYzMzdlZjkyM2UwMzVhNjQwMDMwODIwMTczMDIwMTAxMzA0YzAyMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMzAyMTQ2MjQ3NzI5ODc1OWU4ZTA0NzE4YWU1NjMxNTVmMzUyM2NmYjg0Y2RiMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDA2ZDJjYmIzN2ZkMTI5NTdlNWE3NDgwY2UwNDM1ZThlZjYwNzdkZWYwOGZmMjcwODQ0ZGUyNTE2YTQ3NDJmMjExZDhjNzQ2OTBiYzA5NDhlMDhhMjk2YWJiYTkyODVmNmJiMzA1Yjk1YjdmOTQwOGNlNDRlODM4ODBjNzE5NDQ0NjcyZWM5OTc0NmJhNzhjYzRiZGU0NzUzMTlkMDFiZGU3N2M0OWQ1OGQxNmQzYjJlOTFjMmU2MWU4MzAzY2EzZDdlZGEzNzk3ZmQ4YjM1Y2E3MmJiMTRiMTVhMjRiNTZiYjcwZGMxMzQ4NDU2NTgwODExMGZmNWRiNThjNTZmN2EwNDM1NjA3ZTNjMzUyZmJmNGY1NTEwNmYyOTgwZmQzY2Q0MjM5N2RiZjcxMzdlZTdmMWUzMmNkODBhM2I3YWIxMmI0NmMxNjkyMjAyNzhkNzcxN2I3OGEzYzQ1ZDYzOTVhMTMwYThiNTg4NDFjYmMyOTBlNGY4MTdkZTNhNGZlMTZlY2QwNzdjYTMzYTBhYTI1ZTIzNWNjN2Y2NjU1YTgwYmE4YWVlYzg3OTA1YmIyYTc1NDU5YjdiY2M1YTEzM2YyOTkzNDkzYjQxZmZjZjYzY2Q3YTM5MWUzZTZmNzgwOTRjYTQ0MmM4MDE0NDQwM2NiMGE1ZjAwYmZjNjFhZTg4MCIKIAogUEtDUzcgUGFyc2UgRmFpbHVyZSBJbnZhbGlkIEFTTjE6IENoYW5nZSBsZW5ndGggZnJvbSA1MiB0byA1MyAjNzI3LjAKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBwa2NzN19hc24xX2ZhaWw6IjMwODIwNDlkMDYwOTJhODY0ODg2ZjcwZDAxMDcwMmEwODIwNDhlMzA4MjA0OGEwMjAxMDEzMTBmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwYjA2MDkyYTg2NDg4NmY3MGQwMTA3MDEzMTgyMDQ2NTMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTAyMTQ3YmRlZGRkMjQ0NGNkMWNkZmU1YzQxYTgxMDJjODliN2RmMmU2Y2JmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDA1YmVjZDg3MTk1YzFkZWZmOTBjMjRjOTEyNjliNTViM2YwNjliYzIyNWMzMjZjMzE0YzFhNTE3ODZmZmUxNGM4MzBiZTRlNGJjNzNjYmEzNmM5NzY3N2I0NDE2ODI3OWJlOTFlN2NkZjdjMTkzODZhZTIxODYyNzE5ZDEzYTNhMGZmZjA4MDNkNDYwOTYyZjJjZGE4MzcxNDg0ODczMjUyYzNkNzA1NGRiODE0M2UyYjA4MWEzODE2ZWQwODA0Y2E1MDk5YWU1ZmVjZTgzZDVjMmMzNzgzYjE5ODhiNGI0NmRjOTRlNTU1ODdhMTA3ZWExNTQ2YmYyMmQyOGEwOTdmNjUyYTQwNjZkYzI5NjUyNjkwNjlhZjJmNTE3NmJiOGNlOWNhNmQxMWY5Njc1N2YwMzIwNGY3NTY3MDM1ODdkMDBhZDQyNDc5NmM5MmZjN2FlYjZmNDk0NDMxOTk5ZWRhMzA5OTBlNGY1NzczNjMyZWQyNThmZTAyNzY2NzM1OTlkYTZmY2UzNWNkYWQ3NzI2YTBiYjAyNGNhZDk5NmI4OGUwY2I5ODg1NGNlYjVjMGI2ZWM3NDhkOWY5Y2U2YTZjZDQzNzg1OGJhY2I4MTQ2MThhMjcyZmYzYTQxNWM2ZTA3ZjNkYjA5ODg3NzdmZGVjODQ1YTk3YmY3ZDEwMmRkMDMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMjAyMTQ1NjRkNTU0MDI1YWY1OTllMzI3MDc5YjI3MjBlZjAwZGYzN2NmYjdjMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDAwNDYwOThkYzVmMmI5OWUzYmMyZWQ2NjQyZDdmMGE2MWVmYWJjMTVjMzhjNzYzMzNiY2NjZWVlZTM2OWE0ZjRhNWJkZGE4ZWE1OTI2NDEyNGU0MjlmMDg2MzI2ODNkZGJhMTdiYmYyNjJkODJiNmJlZmEzYjRlMTQ4MDM3NmE4YzdmM2M3ZDdlMmE2Nzc5YmJmMTgyNjJhYTg1N2RlOGMyMGExMmI2YTJjZThlNGQ3ZjMxZGQxYjE5NTM5MmNmNjE4NWFmY2UzNGFmZTA1ODk2MDU3YjM2ZTliMTcxYjZjNjdlZDdjMjI4NmNiZmE4M2ZmOGExNjdjN2JjNzEwOWFlZTdkN2UxOTA5YmQzODRmYmZjNjE5MzhlZmNhNTFjODk5M2M3MWRiMzE3NzMwZjE2ZTdlNzc2ODY3YWU0ZmRjNTYyZDZmMTVkZTU4NWU3Yjk0ZWY0OTZhMzY3NjM2N2EyY2JhYWI3YjYzNjY0OGIwMDc2YmFkNWNkZjFlMDk3NDBlYzZhNDUxYmZmNTM0ZWZhMjE1MDlmM2JhNzdiODEwMWI5MWVhN2U1NWRkYmZlMTQwMTUxNzA2N2Q3YjAxYTJhMDg3OWYwODg1Yzg5NGE4N2NmYjY4YzRkN2VlODkwNjA0ODgxYWViOTdjMjJkMWYzMzdlZjkyM2UwMzVhNjQwMDMwODIwMTczMDIwMTAxMzA0YzMwMzUzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMzAyMTQ2MjQ3NzI5ODc1OWU4ZTA0NzE4YWU1NjMxNTVmMzUyM2NmYjg0Y2RiMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDA2ZDJjYmIzN2ZkMTI5NTdlNWE3NDgwY2UwNDM1ZThlZjYwNzdkZWYwOGZmMjcwODQ0ZGUyNTE2YTQ3NDJmMjExZDhjNzQ2OTBiYzA5NDhlMDhhMjk2YWJiYTkyODVmNmJiMzA1Yjk1YjdmOTQwOGNlNDRlODM4ODBjNzE5NDQ0NjcyZWM5OTc0NmJhNzhjYzRiZGU0NzUzMTlkMDFiZGU3N2M0OWQ1OGQxNmQzYjJlOTFjMmU2MWU4MzAzY2EzZDdlZGEzNzk3ZmQ4YjM1Y2E3MmJiMTRiMTVhMjRiNTZiYjcwZGMxMzQ4NDU2NTgwODExMGZmNWRiNThjNTZmN2EwNDM1NjA3ZTNjMzUyZmJmNGY1NTEwNmYyOTgwZmQzY2Q0MjM5N2RiZjcxMzdlZTdmMWUzMmNkODBhM2I3YWIxMmI0NmMxNjkyMjAyNzhkNzcxN2I3OGEzYzQ1ZDYzOTVhMTMwYThiNTg4NDFjYmMyOTBlNGY4MTdkZTNhNGZlMTZlY2QwNzdjYTMzYTBhYTI1ZTIzNWNjN2Y2NjU1YTgwYmE4YWVlYzg3OTA1YmIyYTc1NDU5YjdiY2M1YTEzM2YyOTkzNDkzYjQxZmZjZjYzY2Q3YTM5MWUzZTZmNzgwOTRjYTQ0MmM4MDE0NDQwM2NiMGE1ZjAwYmZjNjFhZTg4MCIKIAogUEtDUzcgUGFyc2UgRmFpbHVyZSBJbnZhbGlkIEFTTjE6IENoYW5nZSBjb250ZW50cyBvZiB0YWcgMzAgdG8gY29udGFpbiBvbmUgdW5hY2NvdW50ZWQgZXh0cmEgYnl0ZSAjNzI4LjAKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBwa2NzN19hc24xX2ZhaWw6IjMwODIwNDlkMDYwOTJhODY0ODg2ZjcwZDAxMDcwMmEwODIwNDhlMzA4MjA0OGEwMjAxMDEzMTBmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwYjA2MDkyYTg2NDg4NmY3MGQwMTA3MDEzMTgyMDQ2NTMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTAyMTQ3YmRlZGRkMjQ0NGNkMWNkZmU1YzQxYTgxMDJjODliN2RmMmU2Y2JmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDA1YmVjZDg3MTk1YzFkZWZmOTBjMjRjOTEyNjliNTViM2YwNjliYzIyNWMzMjZjMzE0YzFhNTE3ODZmZmUxNGM4MzBiZTRlNGJjNzNjYmEzNmM5NzY3N2I0NDE2ODI3OWJlOTFlN2NkZjdjMTkzODZhZTIxODYyNzE5ZDEzYTNhMGZmZjA4MDNkNDYwOTYyZjJjZGE4MzcxNDg0ODczMjUyYzNkNzA1NGRiODE0M2UyYjA4MWEzODE2ZWQwODA0Y2E1MDk5YWU1ZmVjZTgzZDVjMmMzNzgzYjE5ODhiNGI0NmRjOTRlNTU1ODdhMTA3ZWExNTQ2YmYyMmQyOGEwOTdmNjUyYTQwNjZkYzI5NjUyNjkwNjlhZjJmNTE3NmJiOGNlOWNhNmQxMWY5Njc1N2YwMzIwNGY3NTY3MDM1ODdkMDBhZDQyNDc5NmM5MmZjN2FlYjZmNDk0NDMxOTk5ZWRhMzA5OTBlNGY1NzczNjMyZWQyNThmZTAyNzY2NzM1OTlkYTZmY2UzNWNkYWQ3NzI2YTBiYjAyNGNhZDk5NmI4OGUwY2I5ODg1NGNlYjVjMGI2ZWM3NDhkOWY5Y2U2YTZjZDQzNzg1OGJhY2I4MTQ2MThhMjcyZmYzYTQxNWM2ZTA3ZjNkYjA5ODg3NzdmZGVjODQ1YTk3YmY3ZDEwMmRkMDMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMjAyMTQ1NjRkNTU0MDI1YWY1OTllMzI3MDc5YjI3MjBlZjAwZGYzN2NmYjdjMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDAwNDYwOThkYzVmMmI5OWUzYmMyZWQ2NjQyZDdmMGE2MWVmYWJjMTVjMzhjNzYzMzNiY2NjZWVlZTM2OWE0ZjRhNWJkZGE4ZWE1OTI2NDEyNGU0MjlmMDg2MzI2ODNkZGJhMTdiYmYyNjJkODJiNmJlZmEzYjRlMTQ4MDM3NmE4YzdmM2M3ZDdlMmE2Nzc5YmJmMTgyNjJhYTg1N2RlOGMyMGExMmI2YTJjZThlNGQ3ZjMxZGQxYjE5NTM5MmNmNjE4NWFmY2UzNGFmZTA1ODk2MDU3YjM2ZTliMTcxYjZjNjdlZDdjMjI4NmNiZmE4M2ZmOGExNjdjN2JjNzEwOWFlZTdkN2UxOTA5YmQzODRmYmZjNjE5MzhlZmNhNTFjODk5M2M3MWRiMzE3NzMwZjE2ZTdlNzc2ODY3YWU0ZmRjNTYyZDZmMTVkZTU4NWU3Yjk0ZWY0OTZhMzY3NjM2N2EyY2JhYWI3YjYzNjY0OGIwMDc2YmFkNWNkZjFlMDk3NDBlYzZhNDUxYmZmNTM0ZWZhMjE1MDlmM2JhNzdiODEwMWI5MWVhN2U1NWRkYmZlMTQwMTUxNzA2N2Q3YjAxYTJhMDg3OWYwODg1Yzg5NGE4N2NmYjY4YzRkN2VlODkwNjA0ODgxYWViOTdjMjJkMWYzMzdlZjkyM2UwMzVhNjQwMDMwODIwMTczMDIwMTAxMzA0YzMwMzUzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMzAwMDIxNDYyNDc3Mjk4NzU5ZThlMDQ3MThhZTU2MzE1NWYzNTIzY2ZiODRjZGIzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDZkMmNiYjM3ZmQxMjk1N2U1YTc0ODBjZTA0MzVlOGVmNjA3N2RlZjA4ZmYyNzA4NDRkZTI1MTZhNDc0MmYyMTFkOGM3NDY5MGJjMDk0OGUwOGEyOTZhYmJhOTI4NWY2YmIzMDViOTViN2Y5NDA4Y2U0NGU4Mzg4MGM3MTk0NDQ2NzJlYzk5NzQ2YmE3OGNjNGJkZTQ3NTMxOWQwMWJkZTc3YzQ5ZDU4ZDE2ZDNiMmU5MWMyZTYxZTgzMDNjYTNkN2VkYTM3OTdmZDhiMzVjYTcyYmIxNGIxNWEyNGI1NmJiNzBkYzEzNDg0NTY1ODA4MTEwZmY1ZGI1OGM1NmY3YTA0MzU2MDdlM2MzNTJmYmY0ZjU1MTA2ZjI5ODBmZDNjZDQyMzk3ZGJmNzEzN2VlN2YxZTMyY2Q4MGEzYjdhYjEyYjQ2YzE2OTIyMDI3OGQ3NzE3Yjc4YTNjNDVkNjM5NWExMzBhOGI1ODg0MWNiYzI5MGU0ZjgxN2RlM2E0ZmUxNmVjZDA3N2NhMzNhMGFhMjVlMjM1Y2M3ZjY2NTVhODBiYThhZWVjODc5MDViYjJhNzU0NTliN2JjYzVhMTMzZjI5OTM0OTNiNDFmZmNmNjNjZDdhMzkxZTNlNmY3ODA5NGNhNDQyYzgwMTQ0NDAzY2IwYTVmMDBiZmM2MWFlODgwIgogCiBQS0NTNyBQYXJzZSBGYWlsdXJlIEludmFsaWQgQVNOMTogQ2hhbmdlIGxlbmd0aCBmcm9tIDUyIHRvIDUxICM3MjkuMAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHBrY3M3X2FzbjFfZmFpbDoiMzA4MjA0OWQwNjA5MmE4NjQ4ODZmNzBkMDEwNzAyYTA4MjA0OGUzMDgyMDQ4YTAyMDEwMTMxMGYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBiMDYwOTJhODY0ODg2ZjcwZDAxMDcwMTMxODIwNDY1MzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDViZWNkODcxOTVjMWRlZmY5MGMyNGM5MTI2OWI1NWIzZjA2OWJjMjI1YzMyNmMzMTRjMWE1MTc4NmZmZTE0YzgzMGJlNGU0YmM3M2NiYTM2Yzk3Njc3YjQ0MTY4Mjc5YmU5MWU3Y2RmN2MxOTM4NmFlMjE4NjI3MTlkMTNhM2EwZmZmMDgwM2Q0NjA5NjJmMmNkYTgzNzE0ODQ4NzMyNTJjM2Q3MDU0ZGI4MTQzZTJiMDgxYTM4MTZlZDA4MDRjYTUwOTlhZTVmZWNlODNkNWMyYzM3ODNiMTk4OGI0YjQ2ZGM5NGU1NTU4N2ExMDdlYTE1NDZiZjIyZDI4YTA5N2Y2NTJhNDA2NmRjMjk2NTI2OTA2OWFmMmY1MTc2YmI4Y2U5Y2E2ZDExZjk2NzU3ZjAzMjA0Zjc1NjcwMzU4N2QwMGFkNDI0Nzk2YzkyZmM3YWViNmY0OTQ0MzE5OTllZGEzMDk5MGU0ZjU3NzM2MzJlZDI1OGZlMDI3NjY3MzU5OWRhNmZjZTM1Y2RhZDc3MjZhMGJiMDI0Y2FkOTk2Yjg4ZTBjYjk4ODU0Y2ViNWMwYjZlYzc0OGQ5ZjljZTZhNmNkNDM3ODU4YmFjYjgxNDYxOGEyNzJmZjNhNDE1YzZlMDdmM2RiMDk4ODc3N2ZkZWM4NDVhOTdiZjdkMTAyZGQwMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMyMDIxNDU2NGQ1NTQwMjVhZjU5OWUzMjcwNzliMjcyMGVmMDBkZjM3Y2ZiN2MzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDA0NjA5OGRjNWYyYjk5ZTNiYzJlZDY2NDJkN2YwYTYxZWZhYmMxNWMzOGM3NjMzM2JjY2NlZWVlMzY5YTRmNGE1YmRkYThlYTU5MjY0MTI0ZTQyOWYwODYzMjY4M2RkYmExN2JiZjI2MmQ4MmI2YmVmYTNiNGUxNDgwMzc2YThjN2YzYzdkN2UyYTY3NzliYmYxODI2MmFhODU3ZGU4YzIwYTEyYjZhMmNlOGU0ZDdmMzFkZDFiMTk1MzkyY2Y2MTg1YWZjZTM0YWZlMDU4OTYwNTdiMzZlOWIxNzFiNmM2N2VkN2MyMjg2Y2JmYTgzZmY4YTE2N2M3YmM3MTA5YWVlN2Q3ZTE5MDliZDM4NGZiZmM2MTkzOGVmY2E1MWM4OTkzYzcxZGIzMTc3MzBmMTZlN2U3NzY4NjdhZTRmZGM1NjJkNmYxNWRlNTg1ZTdiOTRlZjQ5NmEzNjc2MzY3YTJjYmFhYjdiNjM2NjQ4YjAwNzZiYWQ1Y2RmMWUwOTc0MGVjNmE0NTFiZmY1MzRlZmEyMTUwOWYzYmE3N2I4MTAxYjkxZWE3ZTU1ZGRiZmUxNDAxNTE3MDY3ZDdiMDFhMmEwODc5ZjA4ODVjODk0YTg3Y2ZiNjhjNGQ3ZWU4OTA2MDQ4ODFhZWI5N2MyMmQxZjMzN2VmOTIzZTAzNWE2NDAwMzA4MjAxNzMwMjAxMDEzMDRjMzAzMzMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMzMDIxNDYyNDc3Mjk4NzU5ZThlMDQ3MThhZTU2MzE1NWYzNTIzY2ZiODRjZGIzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDZkMmNiYjM3ZmQxMjk1N2U1YTc0ODBjZTA0MzVlOGVmNjA3N2RlZjA4ZmYyNzA4NDRkZTI1MTZhNDc0MmYyMTFkOGM3NDY5MGJjMDk0OGUwOGEyOTZhYmJhOTI4NWY2YmIzMDViOTViN2Y5NDA4Y2U0NGU4Mzg4MGM3MTk0NDQ2NzJlYzk5NzQ2YmE3OGNjNGJkZTQ3NTMxOWQwMWJkZTc3YzQ5ZDU4ZDE2ZDNiMmU5MWMyZTYxZTgzMDNjYTNkN2VkYTM3OTdmZDhiMzVjYTcyYmIxNGIxNWEyNGI1NmJiNzBkYzEzNDg0NTY1ODA4MTEwZmY1ZGI1OGM1NmY3YTA0MzU2MDdlM2MzNTJmYmY0ZjU1MTA2ZjI5ODBmZDNjZDQyMzk3ZGJmNzEzN2VlN2YxZTMyY2Q4MGEzYjdhYjEyYjQ2YzE2OTIyMDI3OGQ3NzE3Yjc4YTNjNDVkNjM5NWExMzBhOGI1ODg0MWNiYzI5MGU0ZjgxN2RlM2E0ZmUxNmVjZDA3N2NhMzNhMGFhMjVlMjM1Y2M3ZjY2NTVhODBiYThhZWVjODc5MDViYjJhNzU0NTliN2JjYzVhMTMzZjI5OTM0OTNiNDFmZmNmNjNjZDdhMzkxZTNlNmY3ODA5NGNhNDQyYzgwMTQ0NDAzY2IwYTVmMDBiZmM2MWFlODgwIgogCiBQS0NTNyBQYXJzZSBGYWlsdXJlIEludmFsaWQgQVNOMTogQ2hhbmdlIHRhZyAzMSB0byAwMiAjNzMwLjAKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBwa2NzN19hc24xX2ZhaWw6IjMwODIwNDlkMDYwOTJhODY0ODg2ZjcwZDAxMDcwMmEwODIwNDhlMzA4MjA0OGEwMjAxMDEzMTBmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwYjA2MDkyYTg2NDg4NmY3MGQwMTA3MDEzMTgyMDQ2NTMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTAyMTQ3YmRlZGRkMjQ0NGNkMWNkZmU1YzQxYTgxMDJjODliN2RmMmU2Y2JmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDA1YmVjZDg3MTk1YzFkZWZmOTBjMjRjOTEyNjliNTViM2YwNjliYzIyNWMzMjZjMzE0YzFhNTE3ODZmZmUxNGM4MzBiZTRlNGJjNzNjYmEzNmM5NzY3N2I0NDE2ODI3OWJlOTFlN2NkZjdjMTkzODZhZTIxODYyNzE5ZDEzYTNhMGZmZjA4MDNkNDYwOTYyZjJjZGE4MzcxNDg0ODczMjUyYzNkNzA1NGRiODE0M2UyYjA4MWEzODE2ZWQwODA0Y2E1MDk5YWU1ZmVjZTgzZDVjMmMzNzgzYjE5ODhiNGI0NmRjOTRlNTU1ODdhMTA3ZWExNTQ2YmYyMmQyOGEwOTdmNjUyYTQwNjZkYzI5NjUyNjkwNjlhZjJmNTE3NmJiOGNlOWNhNmQxMWY5Njc1N2YwMzIwNGY3NTY3MDM1ODdkMDBhZDQyNDc5NmM5MmZjN2FlYjZmNDk0NDMxOTk5ZWRhMzA5OTBlNGY1NzczNjMyZWQyNThmZTAyNzY2NzM1OTlkYTZmY2UzNWNkYWQ3NzI2YTBiYjAyNGNhZDk5NmI4OGUwY2I5ODg1NGNlYjVjMGI2ZWM3NDhkOWY5Y2U2YTZjZDQzNzg1OGJhY2I4MTQ2MThhMjcyZmYzYTQxNWM2ZTA3ZjNkYjA5ODg3NzdmZGVjODQ1YTk3YmY3ZDEwMmRkMDMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMjAyMTQ1NjRkNTU0MDI1YWY1OTllMzI3MDc5YjI3MjBlZjAwZGYzN2NmYjdjMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDAwNDYwOThkYzVmMmI5OWUzYmMyZWQ2NjQyZDdmMGE2MWVmYWJjMTVjMzhjNzYzMzNiY2NjZWVlZTM2OWE0ZjRhNWJkZGE4ZWE1OTI2NDEyNGU0MjlmMDg2MzI2ODNkZGJhMTdiYmYyNjJkODJiNmJlZmEzYjRlMTQ4MDM3NmE4YzdmM2M3ZDdlMmE2Nzc5YmJmMTgyNjJhYTg1N2RlOGMyMGExMmI2YTJjZThlNGQ3ZjMxZGQxYjE5NTM5MmNmNjE4NWFmY2UzNGFmZTA1ODk2MDU3YjM2ZTliMTcxYjZjNjdlZDdjMjI4NmNiZmE4M2ZmOGExNjdjN2JjNzEwOWFlZTdkN2UxOTA5YmQzODRmYmZjNjE5MzhlZmNhNTFjODk5M2M3MWRiMzE3NzMwZjE2ZTdlNzc2ODY3YWU0ZmRjNTYyZDZmMTVkZTU4NWU3Yjk0ZWY0OTZhMzY3NjM2N2EyY2JhYWI3YjYzNjY0OGIwMDc2YmFkNWNkZjFlMDk3NDBlYzZhNDUxYmZmNTM0ZWZhMjE1MDlmM2JhNzdiODEwMWI5MWVhN2U1NWRkYmZlMTQwMTUxNzA2N2Q3YjAxYTJhMDg3OWYwODg1Yzg5NGE4N2NmYjY4YzRkN2VlODkwNjA0ODgxYWViOTdjMjJkMWYzMzdlZjkyM2UwMzVhNjQwMDMwODIwMTczMDIwMTAxMzA0YzMwMzQwMjBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMzAyMTQ2MjQ3NzI5ODc1OWU4ZTA0NzE4YWU1NjMxNTVmMzUyM2NmYjg0Y2RiMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDA2ZDJjYmIzN2ZkMTI5NTdlNWE3NDgwY2UwNDM1ZThlZjYwNzdkZWYwOGZmMjcwODQ0ZGUyNTE2YTQ3NDJmMjExZDhjNzQ2OTBiYzA5NDhlMDhhMjk2YWJiYTkyODVmNmJiMzA1Yjk1YjdmOTQwOGNlNDRlODM4ODBjNzE5NDQ0NjcyZWM5OTc0NmJhNzhjYzRiZGU0NzUzMTlkMDFiZGU3N2M0OWQ1OGQxNmQzYjJlOTFjMmU2MWU4MzAzY2EzZDdlZGEzNzk3ZmQ4YjM1Y2E3MmJiMTRiMTVhMjRiNTZiYjcwZGMxMzQ4NDU2NTgwODExMGZmNWRiNThjNTZmN2EwNDM1NjA3ZTNjMzUyZmJmNGY1NTEwNmYyOTgwZmQzY2Q0MjM5N2RiZjcxMzdlZTdmMWUzMmNkODBhM2I3YWIxMmI0NmMxNjkyMjAyNzhkNzcxN2I3OGEzYzQ1ZDYzOTVhMTMwYThiNTg4NDFjYmMyOTBlNGY4MTdkZTNhNGZlMTZlY2QwNzdjYTMzYTBhYTI1ZTIzNWNjN2Y2NjU1YTgwYmE4YWVlYzg3OTA1YmIyYTc1NDU5YjdiY2M1YTEzM2YyOTkzNDkzYjQxZmZjZjYzY2Q3YTM5MWUzZTZmNzgwOTRjYTQ0MmM4MDE0NDQwM2NiMGE1ZjAwYmZjNjFhZTg4MCIKIAogUEtDUzcgUGFyc2UgRmFpbHVyZSBJbnZhbGlkIEFTTjE6IENoYW5nZSBsZW5ndGggZnJvbSAxMSB0byAxMiAjNzMxLjAKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBwa2NzN19hc24xX2ZhaWw6IjMwODIwNDlkMDYwOTJhODY0ODg2ZjcwZDAxMDcwMmEwODIwNDhlMzA4MjA0OGEwMjAxMDEzMTBmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwYjA2MDkyYTg2NDg4NmY3MGQwMTA3MDEzMTgyMDQ2NTMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTAyMTQ3YmRlZGRkMjQ0NGNkMWNkZmU1YzQxYTgxMDJjODliN2RmMmU2Y2JmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDA1YmVjZDg3MTk1YzFkZWZmOTBjMjRjOTEyNjliNTViM2YwNjliYzIyNWMzMjZjMzE0YzFhNTE3ODZmZmUxNGM4MzBiZTRlNGJjNzNjYmEzNmM5NzY3N2I0NDE2ODI3OWJlOTFlN2NkZjdjMTkzODZhZTIxODYyNzE5ZDEzYTNhMGZmZjA4MDNkNDYwOTYyZjJjZGE4MzcxNDg0ODczMjUyYzNkNzA1NGRiODE0M2UyYjA4MWEzODE2ZWQwODA0Y2E1MDk5YWU1ZmVjZTgzZDVjMmMzNzgzYjE5ODhiNGI0NmRjOTRlNTU1ODdhMTA3ZWExNTQ2YmYyMmQyOGEwOTdmNjUyYTQwNjZkYzI5NjUyNjkwNjlhZjJmNTE3NmJiOGNlOWNhNmQxMWY5Njc1N2YwMzIwNGY3NTY3MDM1ODdkMDBhZDQyNDc5NmM5MmZjN2FlYjZmNDk0NDMxOTk5ZWRhMzA5OTBlNGY1NzczNjMyZWQyNThmZTAyNzY2NzM1OTlkYTZmY2UzNWNkYWQ3NzI2YTBiYjAyNGNhZDk5NmI4OGUwY2I5ODg1NGNlYjVjMGI2ZWM3NDhkOWY5Y2U2YTZjZDQzNzg1OGJhY2I4MTQ2MThhMjcyZmYzYTQxNWM2ZTA3ZjNkYjA5ODg3NzdmZGVjODQ1YTk3YmY3ZDEwMmRkMDMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMjAyMTQ1NjRkNTU0MDI1YWY1OTllMzI3MDc5YjI3MjBlZjAwZGYzN2NmYjdjMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDAwNDYwOThkYzVmMmI5OWUzYmMyZWQ2NjQyZDdmMGE2MWVmYWJjMTVjMzhjNzYzMzNiY2NjZWVlZTM2OWE0ZjRhNWJkZGE4ZWE1OTI2NDEyNGU0MjlmMDg2MzI2ODNkZGJhMTdiYmYyNjJkODJiNmJlZmEzYjRlMTQ4MDM3NmE4YzdmM2M3ZDdlMmE2Nzc5YmJmMTgyNjJhYTg1N2RlOGMyMGExMmI2YTJjZThlNGQ3ZjMxZGQxYjE5NTM5MmNmNjE4NWFmY2UzNGFmZTA1ODk2MDU3YjM2ZTliMTcxYjZjNjdlZDdjMjI4NmNiZmE4M2ZmOGExNjdjN2JjNzEwOWFlZTdkN2UxOTA5YmQzODRmYmZjNjE5MzhlZmNhNTFjODk5M2M3MWRiMzE3NzMwZjE2ZTdlNzc2ODY3YWU0ZmRjNTYyZDZmMTVkZTU4NWU3Yjk0ZWY0OTZhMzY3NjM2N2EyY2JhYWI3YjYzNjY0OGIwMDc2YmFkNWNkZjFlMDk3NDBlYzZhNDUxYmZmNTM0ZWZhMjE1MDlmM2JhNzdiODEwMWI5MWVhN2U1NWRkYmZlMTQwMTUxNzA2N2Q3YjAxYTJhMDg3OWYwODg1Yzg5NGE4N2NmYjY4YzRkN2VlODkwNjA0ODgxYWViOTdjMjJkMWYzMzdlZjkyM2UwMzVhNjQwMDMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBjMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMzAyMTQ2MjQ3NzI5ODc1OWU4ZTA0NzE4YWU1NjMxNTVmMzUyM2NmYjg0Y2RiMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDA2ZDJjYmIzN2ZkMTI5NTdlNWE3NDgwY2UwNDM1ZThlZjYwNzdkZWYwOGZmMjcwODQ0ZGUyNTE2YTQ3NDJmMjExZDhjNzQ2OTBiYzA5NDhlMDhhMjk2YWJiYTkyODVmNmJiMzA1Yjk1YjdmOTQwOGNlNDRlODM4ODBjNzE5NDQ0NjcyZWM5OTc0NmJhNzhjYzRiZGU0NzUzMTlkMDFiZGU3N2M0OWQ1OGQxNmQzYjJlOTFjMmU2MWU4MzAzY2EzZDdlZGEzNzk3ZmQ4YjM1Y2E3MmJiMTRiMTVhMjRiNTZiYjcwZGMxMzQ4NDU2NTgwODExMGZmNWRiNThjNTZmN2EwNDM1NjA3ZTNjMzUyZmJmNGY1NTEwNmYyOTgwZmQzY2Q0MjM5N2RiZjcxMzdlZTdmMWUzMmNkODBhM2I3YWIxMmI0NmMxNjkyMjAyNzhkNzcxN2I3OGEzYzQ1ZDYzOTVhMTMwYThiNTg4NDFjYmMyOTBlNGY4MTdkZTNhNGZlMTZlY2QwNzdjYTMzYTBhYTI1ZTIzNWNjN2Y2NjU1YTgwYmE4YWVlYzg3OTA1YmIyYTc1NDU5YjdiY2M1YTEzM2YyOTkzNDkzYjQxZmZjZjYzY2Q3YTM5MWUzZTZmNzgwOTRjYTQ0MmM4MDE0NDQwM2NiMGE1ZjAwYmZjNjFhZTg4MCIKIAogUEtDUzcgUGFyc2UgRmFpbHVyZSBJbnZhbGlkIEFTTjE6IENoYW5nZSBjb250ZW50cyBvZiB0YWcgMzEgdG8gY29udGFpbiBvbmUgdW5hY2NvdW50ZWQgZXh0cmEgYnl0ZSAjNzMyLjAKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBwa2NzN19hc24xX2ZhaWw6IjMwODIwNDlkMDYwOTJhODY0ODg2ZjcwZDAxMDcwMmEwODIwNDhlMzA4MjA0OGEwMjAxMDEzMTBmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwYjA2MDkyYTg2NDg4NmY3MGQwMTA3MDEzMTgyMDQ2NTMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTAyMTQ3YmRlZGRkMjQ0NGNkMWNkZmU1YzQxYTgxMDJjODliN2RmMmU2Y2JmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDA1YmVjZDg3MTk1YzFkZWZmOTBjMjRjOTEyNjliNTViM2YwNjliYzIyNWMzMjZjMzE0YzFhNTE3ODZmZmUxNGM4MzBiZTRlNGJjNzNjYmEzNmM5NzY3N2I0NDE2ODI3OWJlOTFlN2NkZjdjMTkzODZhZTIxODYyNzE5ZDEzYTNhMGZmZjA4MDNkNDYwOTYyZjJjZGE4MzcxNDg0ODczMjUyYzNkNzA1NGRiODE0M2UyYjA4MWEzODE2ZWQwODA0Y2E1MDk5YWU1ZmVjZTgzZDVjMmMzNzgzYjE5ODhiNGI0NmRjOTRlNTU1ODdhMTA3ZWExNTQ2YmYyMmQyOGEwOTdmNjUyYTQwNjZkYzI5NjUyNjkwNjlhZjJmNTE3NmJiOGNlOWNhNmQxMWY5Njc1N2YwMzIwNGY3NTY3MDM1ODdkMDBhZDQyNDc5NmM5MmZjN2FlYjZmNDk0NDMxOTk5ZWRhMzA5OTBlNGY1NzczNjMyZWQyNThmZTAyNzY2NzM1OTlkYTZmY2UzNWNkYWQ3NzI2YTBiYjAyNGNhZDk5NmI4OGUwY2I5ODg1NGNlYjVjMGI2ZWM3NDhkOWY5Y2U2YTZjZDQzNzg1OGJhY2I4MTQ2MThhMjcyZmYzYTQxNWM2ZTA3ZjNkYjA5ODg3NzdmZGVjODQ1YTk3YmY3ZDEwMmRkMDMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMjAyMTQ1NjRkNTU0MDI1YWY1OTllMzI3MDc5YjI3MjBlZjAwZGYzN2NmYjdjMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDAwNDYwOThkYzVmMmI5OWUzYmMyZWQ2NjQyZDdmMGE2MWVmYWJjMTVjMzhjNzYzMzNiY2NjZWVlZTM2OWE0ZjRhNWJkZGE4ZWE1OTI2NDEyNGU0MjlmMDg2MzI2ODNkZGJhMTdiYmYyNjJkODJiNmJlZmEzYjRlMTQ4MDM3NmE4YzdmM2M3ZDdlMmE2Nzc5YmJmMTgyNjJhYTg1N2RlOGMyMGExMmI2YTJjZThlNGQ3ZjMxZGQxYjE5NTM5MmNmNjE4NWFmY2UzNGFmZTA1ODk2MDU3YjM2ZTliMTcxYjZjNjdlZDdjMjI4NmNiZmE4M2ZmOGExNjdjN2JjNzEwOWFlZTdkN2UxOTA5YmQzODRmYmZjNjE5MzhlZmNhNTFjODk5M2M3MWRiMzE3NzMwZjE2ZTdlNzc2ODY3YWU0ZmRjNTYyZDZmMTVkZTU4NWU3Yjk0ZWY0OTZhMzY3NjM2N2EyY2JhYWI3YjYzNjY0OGIwMDc2YmFkNWNkZjFlMDk3NDBlYzZhNDUxYmZmNTM0ZWZhMjE1MDlmM2JhNzdiODEwMWI5MWVhN2U1NWRkYmZlMTQwMTUxNzA2N2Q3YjAxYTJhMDg3OWYwODg1Yzg5NGE4N2NmYjY4YzRkN2VlODkwNjA0ODgxYWViOTdjMjJkMWYzMzdlZjkyM2UwMzVhNjQwMDMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBjMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzAwMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMzMDIxNDYyNDc3Mjk4NzU5ZThlMDQ3MThhZTU2MzE1NWYzNTIzY2ZiODRjZGIzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDZkMmNiYjM3ZmQxMjk1N2U1YTc0ODBjZTA0MzVlOGVmNjA3N2RlZjA4ZmYyNzA4NDRkZTI1MTZhNDc0MmYyMTFkOGM3NDY5MGJjMDk0OGUwOGEyOTZhYmJhOTI4NWY2YmIzMDViOTViN2Y5NDA4Y2U0NGU4Mzg4MGM3MTk0NDQ2NzJlYzk5NzQ2YmE3OGNjNGJkZTQ3NTMxOWQwMWJkZTc3YzQ5ZDU4ZDE2ZDNiMmU5MWMyZTYxZTgzMDNjYTNkN2VkYTM3OTdmZDhiMzVjYTcyYmIxNGIxNWEyNGI1NmJiNzBkYzEzNDg0NTY1ODA4MTEwZmY1ZGI1OGM1NmY3YTA0MzU2MDdlM2MzNTJmYmY0ZjU1MTA2ZjI5ODBmZDNjZDQyMzk3ZGJmNzEzN2VlN2YxZTMyY2Q4MGEzYjdhYjEyYjQ2YzE2OTIyMDI3OGQ3NzE3Yjc4YTNjNDVkNjM5NWExMzBhOGI1ODg0MWNiYzI5MGU0ZjgxN2RlM2E0ZmUxNmVjZDA3N2NhMzNhMGFhMjVlMjM1Y2M3ZjY2NTVhODBiYThhZWVjODc5MDViYjJhNzU0NTliN2JjYzVhMTMzZjI5OTM0OTNiNDFmZmNmNjNjZDdhMzkxZTNlNmY3ODA5NGNhNDQyYzgwMTQ0NDAzY2IwYTVmMDBiZmM2MWFlODgwIgogCiBQS0NTNyBQYXJzZSBGYWlsdXJlIEludmFsaWQgQVNOMTogQ2hhbmdlIGxlbmd0aCBmcm9tIDExIHRvIDEwICM3MzMuMAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHBrY3M3X2FzbjFfZmFpbDoiMzA4MjA0OWQwNjA5MmE4NjQ4ODZmNzBkMDEwNzAyYTA4MjA0OGUzMDgyMDQ4YTAyMDEwMTMxMGYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBiMDYwOTJhODY0ODg2ZjcwZDAxMDcwMTMxODIwNDY1MzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDViZWNkODcxOTVjMWRlZmY5MGMyNGM5MTI2OWI1NWIzZjA2OWJjMjI1YzMyNmMzMTRjMWE1MTc4NmZmZTE0YzgzMGJlNGU0YmM3M2NiYTM2Yzk3Njc3YjQ0MTY4Mjc5YmU5MWU3Y2RmN2MxOTM4NmFlMjE4NjI3MTlkMTNhM2EwZmZmMDgwM2Q0NjA5NjJmMmNkYTgzNzE0ODQ4NzMyNTJjM2Q3MDU0ZGI4MTQzZTJiMDgxYTM4MTZlZDA4MDRjYTUwOTlhZTVmZWNlODNkNWMyYzM3ODNiMTk4OGI0YjQ2ZGM5NGU1NTU4N2ExMDdlYTE1NDZiZjIyZDI4YTA5N2Y2NTJhNDA2NmRjMjk2NTI2OTA2OWFmMmY1MTc2YmI4Y2U5Y2E2ZDExZjk2NzU3ZjAzMjA0Zjc1NjcwMzU4N2QwMGFkNDI0Nzk2YzkyZmM3YWViNmY0OTQ0MzE5OTllZGEzMDk5MGU0ZjU3NzM2MzJlZDI1OGZlMDI3NjY3MzU5OWRhNmZjZTM1Y2RhZDc3MjZhMGJiMDI0Y2FkOTk2Yjg4ZTBjYjk4ODU0Y2ViNWMwYjZlYzc0OGQ5ZjljZTZhNmNkNDM3ODU4YmFjYjgxNDYxOGEyNzJmZjNhNDE1YzZlMDdmM2RiMDk4ODc3N2ZkZWM4NDVhOTdiZjdkMTAyZGQwMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMyMDIxNDU2NGQ1NTQwMjVhZjU5OWUzMjcwNzliMjcyMGVmMDBkZjM3Y2ZiN2MzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDA0NjA5OGRjNWYyYjk5ZTNiYzJlZDY2NDJkN2YwYTYxZWZhYmMxNWMzOGM3NjMzM2JjY2NlZWVlMzY5YTRmNGE1YmRkYThlYTU5MjY0MTI0ZTQyOWYwODYzMjY4M2RkYmExN2JiZjI2MmQ4MmI2YmVmYTNiNGUxNDgwMzc2YThjN2YzYzdkN2UyYTY3NzliYmYxODI2MmFhODU3ZGU4YzIwYTEyYjZhMmNlOGU0ZDdmMzFkZDFiMTk1MzkyY2Y2MTg1YWZjZTM0YWZlMDU4OTYwNTdiMzZlOWIxNzFiNmM2N2VkN2MyMjg2Y2JmYTgzZmY4YTE2N2M3YmM3MTA5YWVlN2Q3ZTE5MDliZDM4NGZiZmM2MTkzOGVmY2E1MWM4OTkzYzcxZGIzMTc3MzBmMTZlN2U3NzY4NjdhZTRmZGM1NjJkNmYxNWRlNTg1ZTdiOTRlZjQ5NmEzNjc2MzY3YTJjYmFhYjdiNjM2NjQ4YjAwNzZiYWQ1Y2RmMWUwOTc0MGVjNmE0NTFiZmY1MzRlZmEyMTUwOWYzYmE3N2I4MTAxYjkxZWE3ZTU1ZGRiZmUxNDAxNTE3MDY3ZDdiMDFhMmEwODc5ZjA4ODVjODk0YTg3Y2ZiNjhjNGQ3ZWU4OTA2MDQ4ODFhZWI5N2MyMmQxZjMzN2VmOTIzZTAzNWE2NDAwMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGEzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMzMDIxNDYyNDc3Mjk4NzU5ZThlMDQ3MThhZTU2MzE1NWYzNTIzY2ZiODRjZGIzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDZkMmNiYjM3ZmQxMjk1N2U1YTc0ODBjZTA0MzVlOGVmNjA3N2RlZjA4ZmYyNzA4NDRkZTI1MTZhNDc0MmYyMTFkOGM3NDY5MGJjMDk0OGUwOGEyOTZhYmJhOTI4NWY2YmIzMDViOTViN2Y5NDA4Y2U0NGU4Mzg4MGM3MTk0NDQ2NzJlYzk5NzQ2YmE3OGNjNGJkZTQ3NTMxOWQwMWJkZTc3YzQ5ZDU4ZDE2ZDNiMmU5MWMyZTYxZTgzMDNjYTNkN2VkYTM3OTdmZDhiMzVjYTcyYmIxNGIxNWEyNGI1NmJiNzBkYzEzNDg0NTY1ODA4MTEwZmY1ZGI1OGM1NmY3YTA0MzU2MDdlM2MzNTJmYmY0ZjU1MTA2ZjI5ODBmZDNjZDQyMzk3ZGJmNzEzN2VlN2YxZTMyY2Q4MGEzYjdhYjEyYjQ2YzE2OTIyMDI3OGQ3NzE3Yjc4YTNjNDVkNjM5NWExMzBhOGI1ODg0MWNiYzI5MGU0ZjgxN2RlM2E0ZmUxNmVjZDA3N2NhMzNhMGFhMjVlMjM1Y2M3ZjY2NTVhODBiYThhZWVjODc5MDViYjJhNzU0NTliN2JjYzVhMTMzZjI5OTM0OTNiNDFmZmNmNjNjZDdhMzkxZTNlNmY3ODA5NGNhNDQyYzgwMTQ0NDAzY2IwYTVmMDBiZmM2MWFlODgwIgogCiBQS0NTNyBQYXJzZSBGYWlsdXJlIEludmFsaWQgQVNOMTogQ2hhbmdlIHRhZyAzMCB0byAwMiAjNzM0LjAKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBwa2NzN19hc24xX2ZhaWw6IjMwODIwNDlkMDYwOTJhODY0ODg2ZjcwZDAxMDcwMmEwODIwNDhlMzA4MjA0OGEwMjAxMDEzMTBmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwYjA2MDkyYTg2NDg4NmY3MGQwMTA3MDEzMTgyMDQ2NTMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTAyMTQ3YmRlZGRkMjQ0NGNkMWNkZmU1YzQxYTgxMDJjODliN2RmMmU2Y2JmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDA1YmVjZDg3MTk1YzFkZWZmOTBjMjRjOTEyNjliNTViM2YwNjliYzIyNWMzMjZjMzE0YzFhNTE3ODZmZmUxNGM4MzBiZTRlNGJjNzNjYmEzNmM5NzY3N2I0NDE2ODI3OWJlOTFlN2NkZjdjMTkzODZhZTIxODYyNzE5ZDEzYTNhMGZmZjA4MDNkNDYwOTYyZjJjZGE4MzcxNDg0ODczMjUyYzNkNzA1NGRiODE0M2UyYjA4MWEzODE2ZWQwODA0Y2E1MDk5YWU1ZmVjZTgzZDVjMmMzNzgzYjE5ODhiNGI0NmRjOTRlNTU1ODdhMTA3ZWExNTQ2YmYyMmQyOGEwOTdmNjUyYTQwNjZkYzI5NjUyNjkwNjlhZjJmNTE3NmJiOGNlOWNhNmQxMWY5Njc1N2YwMzIwNGY3NTY3MDM1ODdkMDBhZDQyNDc5NmM5MmZjN2FlYjZmNDk0NDMxOTk5ZWRhMzA5OTBlNGY1NzczNjMyZWQyNThmZTAyNzY2NzM1OTlkYTZmY2UzNWNkYWQ3NzI2YTBiYjAyNGNhZDk5NmI4OGUwY2I5ODg1NGNlYjVjMGI2ZWM3NDhkOWY5Y2U2YTZjZDQzNzg1OGJhY2I4MTQ2MThhMjcyZmYzYTQxNWM2ZTA3ZjNkYjA5ODg3NzdmZGVjODQ1YTk3YmY3ZDEwMmRkMDMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMjAyMTQ1NjRkNTU0MDI1YWY1OTllMzI3MDc5YjI3MjBlZjAwZGYzN2NmYjdjMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDAwNDYwOThkYzVmMmI5OWUzYmMyZWQ2NjQyZDdmMGE2MWVmYWJjMTVjMzhjNzYzMzNiY2NjZWVlZTM2OWE0ZjRhNWJkZGE4ZWE1OTI2NDEyNGU0MjlmMDg2MzI2ODNkZGJhMTdiYmYyNjJkODJiNmJlZmEzYjRlMTQ4MDM3NmE4YzdmM2M3ZDdlMmE2Nzc5YmJmMTgyNjJhYTg1N2RlOGMyMGExMmI2YTJjZThlNGQ3ZjMxZGQxYjE5NTM5MmNmNjE4NWFmY2UzNGFmZTA1ODk2MDU3YjM2ZTliMTcxYjZjNjdlZDdjMjI4NmNiZmE4M2ZmOGExNjdjN2JjNzEwOWFlZTdkN2UxOTA5YmQzODRmYmZjNjE5MzhlZmNhNTFjODk5M2M3MWRiMzE3NzMwZjE2ZTdlNzc2ODY3YWU0ZmRjNTYyZDZmMTVkZTU4NWU3Yjk0ZWY0OTZhMzY3NjM2N2EyY2JhYWI3YjYzNjY0OGIwMDc2YmFkNWNkZjFlMDk3NDBlYzZhNDUxYmZmNTM0ZWZhMjE1MDlmM2JhNzdiODEwMWI5MWVhN2U1NWRkYmZlMTQwMTUxNzA2N2Q3YjAxYTJhMDg3OWYwODg1Yzg5NGE4N2NmYjY4YzRkN2VlODkwNjA0ODgxYWViOTdjMjJkMWYzMzdlZjkyM2UwMzVhNjQwMDMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMDIwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMzAyMTQ2MjQ3NzI5ODc1OWU4ZTA0NzE4YWU1NjMxNTVmMzUyM2NmYjg0Y2RiMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDA2ZDJjYmIzN2ZkMTI5NTdlNWE3NDgwY2UwNDM1ZThlZjYwNzdkZWYwOGZmMjcwODQ0ZGUyNTE2YTQ3NDJmMjExZDhjNzQ2OTBiYzA5NDhlMDhhMjk2YWJiYTkyODVmNmJiMzA1Yjk1YjdmOTQwOGNlNDRlODM4ODBjNzE5NDQ0NjcyZWM5OTc0NmJhNzhjYzRiZGU0NzUzMTlkMDFiZGU3N2M0OWQ1OGQxNmQzYjJlOTFjMmU2MWU4MzAzY2EzZDdlZGEzNzk3ZmQ4YjM1Y2E3MmJiMTRiMTVhMjRiNTZiYjcwZGMxMzQ4NDU2NTgwODExMGZmNWRiNThjNTZmN2EwNDM1NjA3ZTNjMzUyZmJmNGY1NTEwNmYyOTgwZmQzY2Q0MjM5N2RiZjcxMzdlZTdmMWUzMmNkODBhM2I3YWIxMmI0NmMxNjkyMjAyNzhkNzcxN2I3OGEzYzQ1ZDYzOTVhMTMwYThiNTg4NDFjYmMyOTBlNGY4MTdkZTNhNGZlMTZlY2QwNzdjYTMzYTBhYTI1ZTIzNWNjN2Y2NjU1YTgwYmE4YWVlYzg3OTA1YmIyYTc1NDU5YjdiY2M1YTEzM2YyOTkzNDkzYjQxZmZjZjYzY2Q3YTM5MWUzZTZmNzgwOTRjYTQ0MmM4MDE0NDQwM2NiMGE1ZjAwYmZjNjFhZTg4MCIKIAogUEtDUzcgUGFyc2UgRmFpbHVyZSBJbnZhbGlkIEFTTjE6IENoYW5nZSBsZW5ndGggZnJvbSA5IHRvIDEwICM3MzUuMAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHBrY3M3X2FzbjFfZmFpbDoiMzA4MjA0OWQwNjA5MmE4NjQ4ODZmNzBkMDEwNzAyYTA4MjA0OGUzMDgyMDQ4YTAyMDEwMTMxMGYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBiMDYwOTJhODY0ODg2ZjcwZDAxMDcwMTMxODIwNDY1MzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDViZWNkODcxOTVjMWRlZmY5MGMyNGM5MTI2OWI1NWIzZjA2OWJjMjI1YzMyNmMzMTRjMWE1MTc4NmZmZTE0YzgzMGJlNGU0YmM3M2NiYTM2Yzk3Njc3YjQ0MTY4Mjc5YmU5MWU3Y2RmN2MxOTM4NmFlMjE4NjI3MTlkMTNhM2EwZmZmMDgwM2Q0NjA5NjJmMmNkYTgzNzE0ODQ4NzMyNTJjM2Q3MDU0ZGI4MTQzZTJiMDgxYTM4MTZlZDA4MDRjYTUwOTlhZTVmZWNlODNkNWMyYzM3ODNiMTk4OGI0YjQ2ZGM5NGU1NTU4N2ExMDdlYTE1NDZiZjIyZDI4YTA5N2Y2NTJhNDA2NmRjMjk2NTI2OTA2OWFmMmY1MTc2YmI4Y2U5Y2E2ZDExZjk2NzU3ZjAzMjA0Zjc1NjcwMzU4N2QwMGFkNDI0Nzk2YzkyZmM3YWViNmY0OTQ0MzE5OTllZGEzMDk5MGU0ZjU3NzM2MzJlZDI1OGZlMDI3NjY3MzU5OWRhNmZjZTM1Y2RhZDc3MjZhMGJiMDI0Y2FkOTk2Yjg4ZTBjYjk4ODU0Y2ViNWMwYjZlYzc0OGQ5ZjljZTZhNmNkNDM3ODU4YmFjYjgxNDYxOGEyNzJmZjNhNDE1YzZlMDdmM2RiMDk4ODc3N2ZkZWM4NDVhOTdiZjdkMTAyZGQwMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMyMDIxNDU2NGQ1NTQwMjVhZjU5OWUzMjcwNzliMjcyMGVmMDBkZjM3Y2ZiN2MzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDA0NjA5OGRjNWYyYjk5ZTNiYzJlZDY2NDJkN2YwYTYxZWZhYmMxNWMzOGM3NjMzM2JjY2NlZWVlMzY5YTRmNGE1YmRkYThlYTU5MjY0MTI0ZTQyOWYwODYzMjY4M2RkYmExN2JiZjI2MmQ4MmI2YmVmYTNiNGUxNDgwMzc2YThjN2YzYzdkN2UyYTY3NzliYmYxODI2MmFhODU3ZGU4YzIwYTEyYjZhMmNlOGU0ZDdmMzFkZDFiMTk1MzkyY2Y2MTg1YWZjZTM0YWZlMDU4OTYwNTdiMzZlOWIxNzFiNmM2N2VkN2MyMjg2Y2JmYTgzZmY4YTE2N2M3YmM3MTA5YWVlN2Q3ZTE5MDliZDM4NGZiZmM2MTkzOGVmY2E1MWM4OTkzYzcxZGIzMTc3MzBmMTZlN2U3NzY4NjdhZTRmZGM1NjJkNmYxNWRlNTg1ZTdiOTRlZjQ5NmEzNjc2MzY3YTJjYmFhYjdiNjM2NjQ4YjAwNzZiYWQ1Y2RmMWUwOTc0MGVjNmE0NTFiZmY1MzRlZmEyMTUwOWYzYmE3N2I4MTAxYjkxZWE3ZTU1ZGRiZmUxNDAxNTE3MDY3ZDdiMDFhMmEwODc5ZjA4ODVjODk0YTg3Y2ZiNjhjNGQ3ZWU4OTA2MDQ4ODFhZWI5N2MyMmQxZjMzN2VmOTIzZTAzNWE2NDAwMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDBhMDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMzMDIxNDYyNDc3Mjk4NzU5ZThlMDQ3MThhZTU2MzE1NWYzNTIzY2ZiODRjZGIzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDZkMmNiYjM3ZmQxMjk1N2U1YTc0ODBjZTA0MzVlOGVmNjA3N2RlZjA4ZmYyNzA4NDRkZTI1MTZhNDc0MmYyMTFkOGM3NDY5MGJjMDk0OGUwOGEyOTZhYmJhOTI4NWY2YmIzMDViOTViN2Y5NDA4Y2U0NGU4Mzg4MGM3MTk0NDQ2NzJlYzk5NzQ2YmE3OGNjNGJkZTQ3NTMxOWQwMWJkZTc3YzQ5ZDU4ZDE2ZDNiMmU5MWMyZTYxZTgzMDNjYTNkN2VkYTM3OTdmZDhiMzVjYTcyYmIxNGIxNWEyNGI1NmJiNzBkYzEzNDg0NTY1ODA4MTEwZmY1ZGI1OGM1NmY3YTA0MzU2MDdlM2MzNTJmYmY0ZjU1MTA2ZjI5ODBmZDNjZDQyMzk3ZGJmNzEzN2VlN2YxZTMyY2Q4MGEzYjdhYjEyYjQ2YzE2OTIyMDI3OGQ3NzE3Yjc4YTNjNDVkNjM5NWExMzBhOGI1ODg0MWNiYzI5MGU0ZjgxN2RlM2E0ZmUxNmVjZDA3N2NhMzNhMGFhMjVlMjM1Y2M3ZjY2NTVhODBiYThhZWVjODc5MDViYjJhNzU0NTliN2JjYzVhMTMzZjI5OTM0OTNiNDFmZmNmNjNjZDdhMzkxZTNlNmY3ODA5NGNhNDQyYzgwMTQ0NDAzY2IwYTVmMDBiZmM2MWFlODgwIgogCiBQS0NTNyBQYXJzZSBGYWlsdXJlIEludmFsaWQgQVNOMTogQ2hhbmdlIGNvbnRlbnRzIG9mIHRhZyAzMCB0byBjb250YWluIG9uZSB1bmFjY291bnRlZCBleHRyYSBieXRlICM3MzYuMAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHBrY3M3X2FzbjFfZmFpbDoiMzA4MjA0OWQwNjA5MmE4NjQ4ODZmNzBkMDEwNzAyYTA4MjA0OGUzMDgyMDQ4YTAyMDEwMTMxMGYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBiMDYwOTJhODY0ODg2ZjcwZDAxMDcwMTMxODIwNDY1MzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDViZWNkODcxOTVjMWRlZmY5MGMyNGM5MTI2OWI1NWIzZjA2OWJjMjI1YzMyNmMzMTRjMWE1MTc4NmZmZTE0YzgzMGJlNGU0YmM3M2NiYTM2Yzk3Njc3YjQ0MTY4Mjc5YmU5MWU3Y2RmN2MxOTM4NmFlMjE4NjI3MTlkMTNhM2EwZmZmMDgwM2Q0NjA5NjJmMmNkYTgzNzE0ODQ4NzMyNTJjM2Q3MDU0ZGI4MTQzZTJiMDgxYTM4MTZlZDA4MDRjYTUwOTlhZTVmZWNlODNkNWMyYzM3ODNiMTk4OGI0YjQ2ZGM5NGU1NTU4N2ExMDdlYTE1NDZiZjIyZDI4YTA5N2Y2NTJhNDA2NmRjMjk2NTI2OTA2OWFmMmY1MTc2YmI4Y2U5Y2E2ZDExZjk2NzU3ZjAzMjA0Zjc1NjcwMzU4N2QwMGFkNDI0Nzk2YzkyZmM3YWViNmY0OTQ0MzE5OTllZGEzMDk5MGU0ZjU3NzM2MzJlZDI1OGZlMDI3NjY3MzU5OWRhNmZjZTM1Y2RhZDc3MjZhMGJiMDI0Y2FkOTk2Yjg4ZTBjYjk4ODU0Y2ViNWMwYjZlYzc0OGQ5ZjljZTZhNmNkNDM3ODU4YmFjYjgxNDYxOGEyNzJmZjNhNDE1YzZlMDdmM2RiMDk4ODc3N2ZkZWM4NDVhOTdiZjdkMTAyZGQwMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMyMDIxNDU2NGQ1NTQwMjVhZjU5OWUzMjcwNzliMjcyMGVmMDBkZjM3Y2ZiN2MzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDA0NjA5OGRjNWYyYjk5ZTNiYzJlZDY2NDJkN2YwYTYxZWZhYmMxNWMzOGM3NjMzM2JjY2NlZWVlMzY5YTRmNGE1YmRkYThlYTU5MjY0MTI0ZTQyOWYwODYzMjY4M2RkYmExN2JiZjI2MmQ4MmI2YmVmYTNiNGUxNDgwMzc2YThjN2YzYzdkN2UyYTY3NzliYmYxODI2MmFhODU3ZGU4YzIwYTEyYjZhMmNlOGU0ZDdmMzFkZDFiMTk1MzkyY2Y2MTg1YWZjZTM0YWZlMDU4OTYwNTdiMzZlOWIxNzFiNmM2N2VkN2MyMjg2Y2JmYTgzZmY4YTE2N2M3YmM3MTA5YWVlN2Q3ZTE5MDliZDM4NGZiZmM2MTkzOGVmY2E1MWM4OTkzYzcxZGIzMTc3MzBmMTZlN2U3NzY4NjdhZTRmZGM1NjJkNmYxNWRlNTg1ZTdiOTRlZjQ5NmEzNjc2MzY3YTJjYmFhYjdiNjM2NjQ4YjAwNzZiYWQ1Y2RmMWUwOTc0MGVjNmE0NTFiZmY1MzRlZmEyMTUwOWYzYmE3N2I4MTAxYjkxZWE3ZTU1ZGRiZmUxNDAxNTE3MDY3ZDdiMDFhMmEwODc5ZjA4ODVjODk0YTg3Y2ZiNjhjNGQ3ZWU4OTA2MDQ4ODFhZWI5N2MyMmQxZjMzN2VmOTIzZTAzNWE2NDAwMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDBhMDYwMzU1MDQwNjEzMDI0ZTRjMDAzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzMwMjE0NjI0NzcyOTg3NTllOGUwNDcxOGFlNTYzMTU1ZjM1MjNjZmI4NGNkYjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwNmQyY2JiMzdmZDEyOTU3ZTVhNzQ4MGNlMDQzNWU4ZWY2MDc3ZGVmMDhmZjI3MDg0NGRlMjUxNmE0NzQyZjIxMWQ4Yzc0NjkwYmMwOTQ4ZTA4YTI5NmFiYmE5Mjg1ZjZiYjMwNWI5NWI3Zjk0MDhjZTQ0ZTgzODgwYzcxOTQ0NDY3MmVjOTk3NDZiYTc4Y2M0YmRlNDc1MzE5ZDAxYmRlNzdjNDlkNThkMTZkM2IyZTkxYzJlNjFlODMwM2NhM2Q3ZWRhMzc5N2ZkOGIzNWNhNzJiYjE0YjE1YTI0YjU2YmI3MGRjMTM0ODQ1NjU4MDgxMTBmZjVkYjU4YzU2ZjdhMDQzNTYwN2UzYzM1MmZiZjRmNTUxMDZmMjk4MGZkM2NkNDIzOTdkYmY3MTM3ZWU3ZjFlMzJjZDgwYTNiN2FiMTJiNDZjMTY5MjIwMjc4ZDc3MTdiNzhhM2M0NWQ2Mzk1YTEzMGE4YjU4ODQxY2JjMjkwZTRmODE3ZGUzYTRmZTE2ZWNkMDc3Y2EzM2EwYWEyNWUyMzVjYzdmNjY1NWE4MGJhOGFlZWM4NzkwNWJiMmE3NTQ1OWI3YmNjNWExMzNmMjk5MzQ5M2I0MWZmY2Y2M2NkN2EzOTFlM2U2Zjc4MDk0Y2E0NDJjODAxNDQ0MDNjYjBhNWYwMGJmYzYxYWU4ODAiCiAKIFBLQ1M3IFBhcnNlIEZhaWx1cmUgSW52YWxpZCBBU04xOiBDaGFuZ2UgbGVuZ3RoIGZyb20gOSB0byA4ICM3MzcuMAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHBrY3M3X2FzbjFfZmFpbDoiMzA4MjA0OWQwNjA5MmE4NjQ4ODZmNzBkMDEwNzAyYTA4MjA0OGUzMDgyMDQ4YTAyMDEwMTMxMGYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBiMDYwOTJhODY0ODg2ZjcwZDAxMDcwMTMxODIwNDY1MzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDViZWNkODcxOTVjMWRlZmY5MGMyNGM5MTI2OWI1NWIzZjA2OWJjMjI1YzMyNmMzMTRjMWE1MTc4NmZmZTE0YzgzMGJlNGU0YmM3M2NiYTM2Yzk3Njc3YjQ0MTY4Mjc5YmU5MWU3Y2RmN2MxOTM4NmFlMjE4NjI3MTlkMTNhM2EwZmZmMDgwM2Q0NjA5NjJmMmNkYTgzNzE0ODQ4NzMyNTJjM2Q3MDU0ZGI4MTQzZTJiMDgxYTM4MTZlZDA4MDRjYTUwOTlhZTVmZWNlODNkNWMyYzM3ODNiMTk4OGI0YjQ2ZGM5NGU1NTU4N2ExMDdlYTE1NDZiZjIyZDI4YTA5N2Y2NTJhNDA2NmRjMjk2NTI2OTA2OWFmMmY1MTc2YmI4Y2U5Y2E2ZDExZjk2NzU3ZjAzMjA0Zjc1NjcwMzU4N2QwMGFkNDI0Nzk2YzkyZmM3YWViNmY0OTQ0MzE5OTllZGEzMDk5MGU0ZjU3NzM2MzJlZDI1OGZlMDI3NjY3MzU5OWRhNmZjZTM1Y2RhZDc3MjZhMGJiMDI0Y2FkOTk2Yjg4ZTBjYjk4ODU0Y2ViNWMwYjZlYzc0OGQ5ZjljZTZhNmNkNDM3ODU4YmFjYjgxNDYxOGEyNzJmZjNhNDE1YzZlMDdmM2RiMDk4ODc3N2ZkZWM4NDVhOTdiZjdkMTAyZGQwMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMyMDIxNDU2NGQ1NTQwMjVhZjU5OWUzMjcwNzliMjcyMGVmMDBkZjM3Y2ZiN2MzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDA0NjA5OGRjNWYyYjk5ZTNiYzJlZDY2NDJkN2YwYTYxZWZhYmMxNWMzOGM3NjMzM2JjY2NlZWVlMzY5YTRmNGE1YmRkYThlYTU5MjY0MTI0ZTQyOWYwODYzMjY4M2RkYmExN2JiZjI2MmQ4MmI2YmVmYTNiNGUxNDgwMzc2YThjN2YzYzdkN2UyYTY3NzliYmYxODI2MmFhODU3ZGU4YzIwYTEyYjZhMmNlOGU0ZDdmMzFkZDFiMTk1MzkyY2Y2MTg1YWZjZTM0YWZlMDU4OTYwNTdiMzZlOWIxNzFiNmM2N2VkN2MyMjg2Y2JmYTgzZmY4YTE2N2M3YmM3MTA5YWVlN2Q3ZTE5MDliZDM4NGZiZmM2MTkzOGVmY2E1MWM4OTkzYzcxZGIzMTc3MzBmMTZlN2U3NzY4NjdhZTRmZGM1NjJkNmYxNWRlNTg1ZTdiOTRlZjQ5NmEzNjc2MzY3YTJjYmFhYjdiNjM2NjQ4YjAwNzZiYWQ1Y2RmMWUwOTc0MGVjNmE0NTFiZmY1MzRlZmEyMTUwOWYzYmE3N2I4MTAxYjkxZWE3ZTU1ZGRiZmUxNDAxNTE3MDY3ZDdiMDFhMmEwODc5ZjA4ODVjODk0YTg3Y2ZiNjhjNGQ3ZWU4OTA2MDQ4ODFhZWI5N2MyMmQxZjMzN2VmOTIzZTAzNWE2NDAwMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA4MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMzMDIxNDYyNDc3Mjk4NzU5ZThlMDQ3MThhZTU2MzE1NWYzNTIzY2ZiODRjZGIzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDZkMmNiYjM3ZmQxMjk1N2U1YTc0ODBjZTA0MzVlOGVmNjA3N2RlZjA4ZmYyNzA4NDRkZTI1MTZhNDc0MmYyMTFkOGM3NDY5MGJjMDk0OGUwOGEyOTZhYmJhOTI4NWY2YmIzMDViOTViN2Y5NDA4Y2U0NGU4Mzg4MGM3MTk0NDQ2NzJlYzk5NzQ2YmE3OGNjNGJkZTQ3NTMxOWQwMWJkZTc3YzQ5ZDU4ZDE2ZDNiMmU5MWMyZTYxZTgzMDNjYTNkN2VkYTM3OTdmZDhiMzVjYTcyYmIxNGIxNWEyNGI1NmJiNzBkYzEzNDg0NTY1ODA4MTEwZmY1ZGI1OGM1NmY3YTA0MzU2MDdlM2MzNTJmYmY0ZjU1MTA2ZjI5ODBmZDNjZDQyMzk3ZGJmNzEzN2VlN2YxZTMyY2Q4MGEzYjdhYjEyYjQ2YzE2OTIyMDI3OGQ3NzE3Yjc4YTNjNDVkNjM5NWExMzBhOGI1ODg0MWNiYzI5MGU0ZjgxN2RlM2E0ZmUxNmVjZDA3N2NhMzNhMGFhMjVlMjM1Y2M3ZjY2NTVhODBiYThhZWVjODc5MDViYjJhNzU0NTliN2JjYzVhMTMzZjI5OTM0OTNiNDFmZmNmNjNjZDdhMzkxZTNlNmY3ODA5NGNhNDQyYzgwMTQ0NDAzY2IwYTVmMDBiZmM2MWFlODgwIgogCiBQS0NTNyBQYXJzZSBGYWlsdXJlIEludmFsaWQgQVNOMTogQ2hhbmdlIHRhZyAwNiB0byAwMiAjNzM4LjAKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBwa2NzN19hc24xX2ZhaWw6IjMwODIwNDlkMDYwOTJhODY0ODg2ZjcwZDAxMDcwMmEwODIwNDhlMzA4MjA0OGEwMjAxMDEzMTBmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwYjA2MDkyYTg2NDg4NmY3MGQwMTA3MDEzMTgyMDQ2NTMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTAyMTQ3YmRlZGRkMjQ0NGNkMWNkZmU1YzQxYTgxMDJjODliN2RmMmU2Y2JmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDA1YmVjZDg3MTk1YzFkZWZmOTBjMjRjOTEyNjliNTViM2YwNjliYzIyNWMzMjZjMzE0YzFhNTE3ODZmZmUxNGM4MzBiZTRlNGJjNzNjYmEzNmM5NzY3N2I0NDE2ODI3OWJlOTFlN2NkZjdjMTkzODZhZTIxODYyNzE5ZDEzYTNhMGZmZjA4MDNkNDYwOTYyZjJjZGE4MzcxNDg0ODczMjUyYzNkNzA1NGRiODE0M2UyYjA4MWEzODE2ZWQwODA0Y2E1MDk5YWU1ZmVjZTgzZDVjMmMzNzgzYjE5ODhiNGI0NmRjOTRlNTU1ODdhMTA3ZWExNTQ2YmYyMmQyOGEwOTdmNjUyYTQwNjZkYzI5NjUyNjkwNjlhZjJmNTE3NmJiOGNlOWNhNmQxMWY5Njc1N2YwMzIwNGY3NTY3MDM1ODdkMDBhZDQyNDc5NmM5MmZjN2FlYjZmNDk0NDMxOTk5ZWRhMzA5OTBlNGY1NzczNjMyZWQyNThmZTAyNzY2NzM1OTlkYTZmY2UzNWNkYWQ3NzI2YTBiYjAyNGNhZDk5NmI4OGUwY2I5ODg1NGNlYjVjMGI2ZWM3NDhkOWY5Y2U2YTZjZDQzNzg1OGJhY2I4MTQ2MThhMjcyZmYzYTQxNWM2ZTA3ZjNkYjA5ODg3NzdmZGVjODQ1YTk3YmY3ZDEwMmRkMDMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMjAyMTQ1NjRkNTU0MDI1YWY1OTllMzI3MDc5YjI3MjBlZjAwZGYzN2NmYjdjMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDAwNDYwOThkYzVmMmI5OWUzYmMyZWQ2NjQyZDdmMGE2MWVmYWJjMTVjMzhjNzYzMzNiY2NjZWVlZTM2OWE0ZjRhNWJkZGE4ZWE1OTI2NDEyNGU0MjlmMDg2MzI2ODNkZGJhMTdiYmYyNjJkODJiNmJlZmEzYjRlMTQ4MDM3NmE4YzdmM2M3ZDdlMmE2Nzc5YmJmMTgyNjJhYTg1N2RlOGMyMGExMmI2YTJjZThlNGQ3ZjMxZGQxYjE5NTM5MmNmNjE4NWFmY2UzNGFmZTA1ODk2MDU3YjM2ZTliMTcxYjZjNjdlZDdjMjI4NmNiZmE4M2ZmOGExNjdjN2JjNzEwOWFlZTdkN2UxOTA5YmQzODRmYmZjNjE5MzhlZmNhNTFjODk5M2M3MWRiMzE3NzMwZjE2ZTdlNzc2ODY3YWU0ZmRjNTYyZDZmMTVkZTU4NWU3Yjk0ZWY0OTZhMzY3NjM2N2EyY2JhYWI3YjYzNjY0OGIwMDc2YmFkNWNkZjFlMDk3NDBlYzZhNDUxYmZmNTM0ZWZhMjE1MDlmM2JhNzdiODEwMWI5MWVhN2U1NWRkYmZlMTQwMTUxNzA2N2Q3YjAxYTJhMDg3OWYwODg1Yzg5NGE4N2NmYjY4YzRkN2VlODkwNjA0ODgxYWViOTdjMjJkMWYzMzdlZjkyM2UwMzVhNjQwMDMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTAyMDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMzAyMTQ2MjQ3NzI5ODc1OWU4ZTA0NzE4YWU1NjMxNTVmMzUyM2NmYjg0Y2RiMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDA2ZDJjYmIzN2ZkMTI5NTdlNWE3NDgwY2UwNDM1ZThlZjYwNzdkZWYwOGZmMjcwODQ0ZGUyNTE2YTQ3NDJmMjExZDhjNzQ2OTBiYzA5NDhlMDhhMjk2YWJiYTkyODVmNmJiMzA1Yjk1YjdmOTQwOGNlNDRlODM4ODBjNzE5NDQ0NjcyZWM5OTc0NmJhNzhjYzRiZGU0NzUzMTlkMDFiZGU3N2M0OWQ1OGQxNmQzYjJlOTFjMmU2MWU4MzAzY2EzZDdlZGEzNzk3ZmQ4YjM1Y2E3MmJiMTRiMTVhMjRiNTZiYjcwZGMxMzQ4NDU2NTgwODExMGZmNWRiNThjNTZmN2EwNDM1NjA3ZTNjMzUyZmJmNGY1NTEwNmYyOTgwZmQzY2Q0MjM5N2RiZjcxMzdlZTdmMWUzMmNkODBhM2I3YWIxMmI0NmMxNjkyMjAyNzhkNzcxN2I3OGEzYzQ1ZDYzOTVhMTMwYThiNTg4NDFjYmMyOTBlNGY4MTdkZTNhNGZlMTZlY2QwNzdjYTMzYTBhYTI1ZTIzNWNjN2Y2NjU1YTgwYmE4YWVlYzg3OTA1YmIyYTc1NDU5YjdiY2M1YTEzM2YyOTkzNDkzYjQxZmZjZjYzY2Q3YTM5MWUzZTZmNzgwOTRjYTQ0MmM4MDE0NDQwM2NiMGE1ZjAwYmZjNjFhZTg4MCIKIAogUEtDUzcgUGFyc2UgRmFpbHVyZSBJbnZhbGlkIEFTTjE6IENoYW5nZSBsZW5ndGggZnJvbSAzIHRvIDQgIzczOS4wCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NgogcGtjczdfYXNuMV9mYWlsOiIzMDgyMDQ5ZDA2MDkyYTg2NDg4NmY3MGQwMTA3MDJhMDgyMDQ4ZTMwODIwNDhhMDIwMTAxMzEwZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGIwNjA5MmE4NjQ4ODZmNzBkMDEwNzAxMzE4MjA0NjUzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwNWJlY2Q4NzE5NWMxZGVmZjkwYzI0YzkxMjY5YjU1YjNmMDY5YmMyMjVjMzI2YzMxNGMxYTUxNzg2ZmZlMTRjODMwYmU0ZTRiYzczY2JhMzZjOTc2NzdiNDQxNjgyNzliZTkxZTdjZGY3YzE5Mzg2YWUyMTg2MjcxOWQxM2EzYTBmZmYwODAzZDQ2MDk2MmYyY2RhODM3MTQ4NDg3MzI1MmMzZDcwNTRkYjgxNDNlMmIwODFhMzgxNmVkMDgwNGNhNTA5OWFlNWZlY2U4M2Q1YzJjMzc4M2IxOTg4YjRiNDZkYzk0ZTU1NTg3YTEwN2VhMTU0NmJmMjJkMjhhMDk3ZjY1MmE0MDY2ZGMyOTY1MjY5MDY5YWYyZjUxNzZiYjhjZTljYTZkMTFmOTY3NTdmMDMyMDRmNzU2NzAzNTg3ZDAwYWQ0MjQ3OTZjOTJmYzdhZWI2ZjQ5NDQzMTk5OWVkYTMwOTkwZTRmNTc3MzYzMmVkMjU4ZmUwMjc2NjczNTk5ZGE2ZmNlMzVjZGFkNzcyNmEwYmIwMjRjYWQ5OTZiODhlMGNiOTg4NTRjZWI1YzBiNmVjNzQ4ZDlmOWNlNmE2Y2Q0Mzc4NThiYWNiODE0NjE4YTI3MmZmM2E0MTVjNmUwN2YzZGIwOTg4Nzc3ZmRlYzg0NWE5N2JmN2QxMDJkZDAzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzIwMjE0NTY0ZDU1NDAyNWFmNTk5ZTMyNzA3OWIyNzIwZWYwMGRmMzdjZmI3YzMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwMDQ2MDk4ZGM1ZjJiOTllM2JjMmVkNjY0MmQ3ZjBhNjFlZmFiYzE1YzM4Yzc2MzMzYmNjY2VlZWUzNjlhNGY0YTViZGRhOGVhNTkyNjQxMjRlNDI5ZjA4NjMyNjgzZGRiYTE3YmJmMjYyZDgyYjZiZWZhM2I0ZTE0ODAzNzZhOGM3ZjNjN2Q3ZTJhNjc3OWJiZjE4MjYyYWE4NTdkZThjMjBhMTJiNmEyY2U4ZTRkN2YzMWRkMWIxOTUzOTJjZjYxODVhZmNlMzRhZmUwNTg5NjA1N2IzNmU5YjE3MWI2YzY3ZWQ3YzIyODZjYmZhODNmZjhhMTY3YzdiYzcxMDlhZWU3ZDdlMTkwOWJkMzg0ZmJmYzYxOTM4ZWZjYTUxYzg5OTNjNzFkYjMxNzczMGYxNmU3ZTc3Njg2N2FlNGZkYzU2MmQ2ZjE1ZGU1ODVlN2I5NGVmNDk2YTM2NzYzNjdhMmNiYWFiN2I2MzY2NDhiMDA3NmJhZDVjZGYxZTA5NzQwZWM2YTQ1MWJmZjUzNGVmYTIxNTA5ZjNiYTc3YjgxMDFiOTFlYTdlNTVkZGJmZTE0MDE1MTcwNjdkN2IwMWEyYTA4NzlmMDg4NWM4OTRhODdjZmI2OGM0ZDdlZTg5MDYwNDg4MWFlYjk3YzIyZDFmMzM3ZWY5MjNlMDM1YTY0MDAzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjA0NTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzMwMjE0NjI0NzcyOTg3NTllOGUwNDcxOGFlNTYzMTU1ZjM1MjNjZmI4NGNkYjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwNmQyY2JiMzdmZDEyOTU3ZTVhNzQ4MGNlMDQzNWU4ZWY2MDc3ZGVmMDhmZjI3MDg0NGRlMjUxNmE0NzQyZjIxMWQ4Yzc0NjkwYmMwOTQ4ZTA4YTI5NmFiYmE5Mjg1ZjZiYjMwNWI5NWI3Zjk0MDhjZTQ0ZTgzODgwYzcxOTQ0NDY3MmVjOTk3NDZiYTc4Y2M0YmRlNDc1MzE5ZDAxYmRlNzdjNDlkNThkMTZkM2IyZTkxYzJlNjFlODMwM2NhM2Q3ZWRhMzc5N2ZkOGIzNWNhNzJiYjE0YjE1YTI0YjU2YmI3MGRjMTM0ODQ1NjU4MDgxMTBmZjVkYjU4YzU2ZjdhMDQzNTYwN2UzYzM1MmZiZjRmNTUxMDZmMjk4MGZkM2NkNDIzOTdkYmY3MTM3ZWU3ZjFlMzJjZDgwYTNiN2FiMTJiNDZjMTY5MjIwMjc4ZDc3MTdiNzhhM2M0NWQ2Mzk1YTEzMGE4YjU4ODQxY2JjMjkwZTRmODE3ZGUzYTRmZTE2ZWNkMDc3Y2EzM2EwYWEyNWUyMzVjYzdmNjY1NWE4MGJhOGFlZWM4NzkwNWJiMmE3NTQ1OWI3YmNjNWExMzNmMjk5MzQ5M2I0MWZmY2Y2M2NkN2EzOTFlM2U2Zjc4MDk0Y2E0NDJjODAxNDQ0MDNjYjBhNWYwMGJmYzYxYWU4ODAiCiAKIFBLQ1M3IFBhcnNlIEZhaWx1cmUgSW52YWxpZCBBU04xOiBDaGFuZ2UgbGVuZ3RoIGZyb20gMyB0byAyICM3NDAuMAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHBrY3M3X2FzbjFfZmFpbDoiMzA4MjA0OWQwNjA5MmE4NjQ4ODZmNzBkMDEwNzAyYTA4MjA0OGUzMDgyMDQ4YTAyMDEwMTMxMGYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBiMDYwOTJhODY0ODg2ZjcwZDAxMDcwMTMxODIwNDY1MzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDViZWNkODcxOTVjMWRlZmY5MGMyNGM5MTI2OWI1NWIzZjA2OWJjMjI1YzMyNmMzMTRjMWE1MTc4NmZmZTE0YzgzMGJlNGU0YmM3M2NiYTM2Yzk3Njc3YjQ0MTY4Mjc5YmU5MWU3Y2RmN2MxOTM4NmFlMjE4NjI3MTlkMTNhM2EwZmZmMDgwM2Q0NjA5NjJmMmNkYTgzNzE0ODQ4NzMyNTJjM2Q3MDU0ZGI4MTQzZTJiMDgxYTM4MTZlZDA4MDRjYTUwOTlhZTVmZWNlODNkNWMyYzM3ODNiMTk4OGI0YjQ2ZGM5NGU1NTU4N2ExMDdlYTE1NDZiZjIyZDI4YTA5N2Y2NTJhNDA2NmRjMjk2NTI2OTA2OWFmMmY1MTc2YmI4Y2U5Y2E2ZDExZjk2NzU3ZjAzMjA0Zjc1NjcwMzU4N2QwMGFkNDI0Nzk2YzkyZmM3YWViNmY0OTQ0MzE5OTllZGEzMDk5MGU0ZjU3NzM2MzJlZDI1OGZlMDI3NjY3MzU5OWRhNmZjZTM1Y2RhZDc3MjZhMGJiMDI0Y2FkOTk2Yjg4ZTBjYjk4ODU0Y2ViNWMwYjZlYzc0OGQ5ZjljZTZhNmNkNDM3ODU4YmFjYjgxNDYxOGEyNzJmZjNhNDE1YzZlMDdmM2RiMDk4ODc3N2ZkZWM4NDVhOTdiZjdkMTAyZGQwMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMyMDIxNDU2NGQ1NTQwMjVhZjU5OWUzMjcwNzliMjcyMGVmMDBkZjM3Y2ZiN2MzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDA0NjA5OGRjNWYyYjk5ZTNiYzJlZDY2NDJkN2YwYTYxZWZhYmMxNWMzOGM3NjMzM2JjY2NlZWVlMzY5YTRmNGE1YmRkYThlYTU5MjY0MTI0ZTQyOWYwODYzMjY4M2RkYmExN2JiZjI2MmQ4MmI2YmVmYTNiNGUxNDgwMzc2YThjN2YzYzdkN2UyYTY3NzliYmYxODI2MmFhODU3ZGU4YzIwYTEyYjZhMmNlOGU0ZDdmMzFkZDFiMTk1MzkyY2Y2MTg1YWZjZTM0YWZlMDU4OTYwNTdiMzZlOWIxNzFiNmM2N2VkN2MyMjg2Y2JmYTgzZmY4YTE2N2M3YmM3MTA5YWVlN2Q3ZTE5MDliZDM4NGZiZmM2MTkzOGVmY2E1MWM4OTkzYzcxZGIzMTc3MzBmMTZlN2U3NzY4NjdhZTRmZGM1NjJkNmYxNWRlNTg1ZTdiOTRlZjQ5NmEzNjc2MzY3YTJjYmFhYjdiNjM2NjQ4YjAwNzZiYWQ1Y2RmMWUwOTc0MGVjNmE0NTFiZmY1MzRlZmEyMTUwOWYzYmE3N2I4MTAxYjkxZWE3ZTU1ZGRiZmUxNDAxNTE3MDY3ZDdiMDFhMmEwODc5ZjA4ODVjODk0YTg3Y2ZiNjhjNGQ3ZWU4OTA2MDQ4ODFhZWI5N2MyMmQxZjMzN2VmOTIzZTAzNWE2NDAwMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMjU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMzMDIxNDYyNDc3Mjk4NzU5ZThlMDQ3MThhZTU2MzE1NWYzNTIzY2ZiODRjZGIzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDZkMmNiYjM3ZmQxMjk1N2U1YTc0ODBjZTA0MzVlOGVmNjA3N2RlZjA4ZmYyNzA4NDRkZTI1MTZhNDc0MmYyMTFkOGM3NDY5MGJjMDk0OGUwOGEyOTZhYmJhOTI4NWY2YmIzMDViOTViN2Y5NDA4Y2U0NGU4Mzg4MGM3MTk0NDQ2NzJlYzk5NzQ2YmE3OGNjNGJkZTQ3NTMxOWQwMWJkZTc3YzQ5ZDU4ZDE2ZDNiMmU5MWMyZTYxZTgzMDNjYTNkN2VkYTM3OTdmZDhiMzVjYTcyYmIxNGIxNWEyNGI1NmJiNzBkYzEzNDg0NTY1ODA4MTEwZmY1ZGI1OGM1NmY3YTA0MzU2MDdlM2MzNTJmYmY0ZjU1MTA2ZjI5ODBmZDNjZDQyMzk3ZGJmNzEzN2VlN2YxZTMyY2Q4MGEzYjdhYjEyYjQ2YzE2OTIyMDI3OGQ3NzE3Yjc4YTNjNDVkNjM5NWExMzBhOGI1ODg0MWNiYzI5MGU0ZjgxN2RlM2E0ZmUxNmVjZDA3N2NhMzNhMGFhMjVlMjM1Y2M3ZjY2NTVhODBiYThhZWVjODc5MDViYjJhNzU0NTliN2JjYzVhMTMzZjI5OTM0OTNiNDFmZmNmNjNjZDdhMzkxZTNlNmY3ODA5NGNhNDQyYzgwMTQ0NDAzY2IwYTVmMDBiZmM2MWFlODgwIgogCiBQS0NTNyBQYXJzZSBGYWlsdXJlIEludmFsaWQgQVNOMTogQ2hhbmdlIHRhZyAxMyB0byAwMiAjNzQxLjAKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBwa2NzN19hc24xX2ZhaWw6IjMwODIwNDlkMDYwOTJhODY0ODg2ZjcwZDAxMDcwMmEwODIwNDhlMzA4MjA0OGEwMjAxMDEzMTBmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwYjA2MDkyYTg2NDg4NmY3MGQwMTA3MDEzMTgyMDQ2NTMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTAyMTQ3YmRlZGRkMjQ0NGNkMWNkZmU1YzQxYTgxMDJjODliN2RmMmU2Y2JmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDA1YmVjZDg3MTk1YzFkZWZmOTBjMjRjOTEyNjliNTViM2YwNjliYzIyNWMzMjZjMzE0YzFhNTE3ODZmZmUxNGM4MzBiZTRlNGJjNzNjYmEzNmM5NzY3N2I0NDE2ODI3OWJlOTFlN2NkZjdjMTkzODZhZTIxODYyNzE5ZDEzYTNhMGZmZjA4MDNkNDYwOTYyZjJjZGE4MzcxNDg0ODczMjUyYzNkNzA1NGRiODE0M2UyYjA4MWEzODE2ZWQwODA0Y2E1MDk5YWU1ZmVjZTgzZDVjMmMzNzgzYjE5ODhiNGI0NmRjOTRlNTU1ODdhMTA3ZWExNTQ2YmYyMmQyOGEwOTdmNjUyYTQwNjZkYzI5NjUyNjkwNjlhZjJmNTE3NmJiOGNlOWNhNmQxMWY5Njc1N2YwMzIwNGY3NTY3MDM1ODdkMDBhZDQyNDc5NmM5MmZjN2FlYjZmNDk0NDMxOTk5ZWRhMzA5OTBlNGY1NzczNjMyZWQyNThmZTAyNzY2NzM1OTlkYTZmY2UzNWNkYWQ3NzI2YTBiYjAyNGNhZDk5NmI4OGUwY2I5ODg1NGNlYjVjMGI2ZWM3NDhkOWY5Y2U2YTZjZDQzNzg1OGJhY2I4MTQ2MThhMjcyZmYzYTQxNWM2ZTA3ZjNkYjA5ODg3NzdmZGVjODQ1YTk3YmY3ZDEwMmRkMDMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMjAyMTQ1NjRkNTU0MDI1YWY1OTllMzI3MDc5YjI3MjBlZjAwZGYzN2NmYjdjMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDAwNDYwOThkYzVmMmI5OWUzYmMyZWQ2NjQyZDdmMGE2MWVmYWJjMTVjMzhjNzYzMzNiY2NjZWVlZTM2OWE0ZjRhNWJkZGE4ZWE1OTI2NDEyNGU0MjlmMDg2MzI2ODNkZGJhMTdiYmYyNjJkODJiNmJlZmEzYjRlMTQ4MDM3NmE4YzdmM2M3ZDdlMmE2Nzc5YmJmMTgyNjJhYTg1N2RlOGMyMGExMmI2YTJjZThlNGQ3ZjMxZGQxYjE5NTM5MmNmNjE4NWFmY2UzNGFmZTA1ODk2MDU3YjM2ZTliMTcxYjZjNjdlZDdjMjI4NmNiZmE4M2ZmOGExNjdjN2JjNzEwOWFlZTdkN2UxOTA5YmQzODRmYmZjNjE5MzhlZmNhNTFjODk5M2M3MWRiMzE3NzMwZjE2ZTdlNzc2ODY3YWU0ZmRjNTYyZDZmMTVkZTU4NWU3Yjk0ZWY0OTZhMzY3NjM2N2EyY2JhYWI3YjYzNjY0OGIwMDc2YmFkNWNkZjFlMDk3NDBlYzZhNDUxYmZmNTM0ZWZhMjE1MDlmM2JhNzdiODEwMWI5MWVhN2U1NWRkYmZlMTQwMTUxNzA2N2Q3YjAxYTJhMDg3OWYwODg1Yzg5NGE4N2NmYjY4YzRkN2VlODkwNjA0ODgxYWViOTdjMjJkMWYzMzdlZjkyM2UwMzVhNjQwMDMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYwMjAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMzAyMTQ2MjQ3NzI5ODc1OWU4ZTA0NzE4YWU1NjMxNTVmMzUyM2NmYjg0Y2RiMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDA2ZDJjYmIzN2ZkMTI5NTdlNWE3NDgwY2UwNDM1ZThlZjYwNzdkZWYwOGZmMjcwODQ0ZGUyNTE2YTQ3NDJmMjExZDhjNzQ2OTBiYzA5NDhlMDhhMjk2YWJiYTkyODVmNmJiMzA1Yjk1YjdmOTQwOGNlNDRlODM4ODBjNzE5NDQ0NjcyZWM5OTc0NmJhNzhjYzRiZGU0NzUzMTlkMDFiZGU3N2M0OWQ1OGQxNmQzYjJlOTFjMmU2MWU4MzAzY2EzZDdlZGEzNzk3ZmQ4YjM1Y2E3MmJiMTRiMTVhMjRiNTZiYjcwZGMxMzQ4NDU2NTgwODExMGZmNWRiNThjNTZmN2EwNDM1NjA3ZTNjMzUyZmJmNGY1NTEwNmYyOTgwZmQzY2Q0MjM5N2RiZjcxMzdlZTdmMWUzMmNkODBhM2I3YWIxMmI0NmMxNjkyMjAyNzhkNzcxN2I3OGEzYzQ1ZDYzOTVhMTMwYThiNTg4NDFjYmMyOTBlNGY4MTdkZTNhNGZlMTZlY2QwNzdjYTMzYTBhYTI1ZTIzNWNjN2Y2NjU1YTgwYmE4YWVlYzg3OTA1YmIyYTc1NDU5YjdiY2M1YTEzM2YyOTkzNDkzYjQxZmZjZjYzY2Q3YTM5MWUzZTZmNzgwOTRjYTQ0MmM4MDE0NDQwM2NiMGE1ZjAwYmZjNjFhZTg4MCIKIAogUEtDUzcgUGFyc2UgRmFpbHVyZSBJbnZhbGlkIEFTTjE6IENoYW5nZSBsZW5ndGggZnJvbSAyIHRvIDMgIzc0Mi4wCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NgogcGtjczdfYXNuMV9mYWlsOiIzMDgyMDQ5ZDA2MDkyYTg2NDg4NmY3MGQwMTA3MDJhMDgyMDQ4ZTMwODIwNDhhMDIwMTAxMzEwZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGIwNjA5MmE4NjQ4ODZmNzBkMDEwNzAxMzE4MjA0NjUzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwNWJlY2Q4NzE5NWMxZGVmZjkwYzI0YzkxMjY5YjU1YjNmMDY5YmMyMjVjMzI2YzMxNGMxYTUxNzg2ZmZlMTRjODMwYmU0ZTRiYzczY2JhMzZjOTc2NzdiNDQxNjgyNzliZTkxZTdjZGY3YzE5Mzg2YWUyMTg2MjcxOWQxM2EzYTBmZmYwODAzZDQ2MDk2MmYyY2RhODM3MTQ4NDg3MzI1MmMzZDcwNTRkYjgxNDNlMmIwODFhMzgxNmVkMDgwNGNhNTA5OWFlNWZlY2U4M2Q1YzJjMzc4M2IxOTg4YjRiNDZkYzk0ZTU1NTg3YTEwN2VhMTU0NmJmMjJkMjhhMDk3ZjY1MmE0MDY2ZGMyOTY1MjY5MDY5YWYyZjUxNzZiYjhjZTljYTZkMTFmOTY3NTdmMDMyMDRmNzU2NzAzNTg3ZDAwYWQ0MjQ3OTZjOTJmYzdhZWI2ZjQ5NDQzMTk5OWVkYTMwOTkwZTRmNTc3MzYzMmVkMjU4ZmUwMjc2NjczNTk5ZGE2ZmNlMzVjZGFkNzcyNmEwYmIwMjRjYWQ5OTZiODhlMGNiOTg4NTRjZWI1YzBiNmVjNzQ4ZDlmOWNlNmE2Y2Q0Mzc4NThiYWNiODE0NjE4YTI3MmZmM2E0MTVjNmUwN2YzZGIwOTg4Nzc3ZmRlYzg0NWE5N2JmN2QxMDJkZDAzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzIwMjE0NTY0ZDU1NDAyNWFmNTk5ZTMyNzA3OWIyNzIwZWYwMGRmMzdjZmI3YzMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwMDQ2MDk4ZGM1ZjJiOTllM2JjMmVkNjY0MmQ3ZjBhNjFlZmFiYzE1YzM4Yzc2MzMzYmNjY2VlZWUzNjlhNGY0YTViZGRhOGVhNTkyNjQxMjRlNDI5ZjA4NjMyNjgzZGRiYTE3YmJmMjYyZDgyYjZiZWZhM2I0ZTE0ODAzNzZhOGM3ZjNjN2Q3ZTJhNjc3OWJiZjE4MjYyYWE4NTdkZThjMjBhMTJiNmEyY2U4ZTRkN2YzMWRkMWIxOTUzOTJjZjYxODVhZmNlMzRhZmUwNTg5NjA1N2IzNmU5YjE3MWI2YzY3ZWQ3YzIyODZjYmZhODNmZjhhMTY3YzdiYzcxMDlhZWU3ZDdlMTkwOWJkMzg0ZmJmYzYxOTM4ZWZjYTUxYzg5OTNjNzFkYjMxNzczMGYxNmU3ZTc3Njg2N2FlNGZkYzU2MmQ2ZjE1ZGU1ODVlN2I5NGVmNDk2YTM2NzYzNjdhMmNiYWFiN2I2MzY2NDhiMDA3NmJhZDVjZGYxZTA5NzQwZWM2YTQ1MWJmZjUzNGVmYTIxNTA5ZjNiYTc3YjgxMDFiOTFlYTdlNTVkZGJmZTE0MDE1MTcwNjdkN2IwMWEyYTA4NzlmMDg4NWM4OTRhODdjZmI2OGM0ZDdlZTg5MDYwNDg4MWFlYjk3YzIyZDFmMzM3ZWY5MjNlMDM1YTY0MDAzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMzRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzMwMjE0NjI0NzcyOTg3NTllOGUwNDcxOGFlNTYzMTU1ZjM1MjNjZmI4NGNkYjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwNmQyY2JiMzdmZDEyOTU3ZTVhNzQ4MGNlMDQzNWU4ZWY2MDc3ZGVmMDhmZjI3MDg0NGRlMjUxNmE0NzQyZjIxMWQ4Yzc0NjkwYmMwOTQ4ZTA4YTI5NmFiYmE5Mjg1ZjZiYjMwNWI5NWI3Zjk0MDhjZTQ0ZTgzODgwYzcxOTQ0NDY3MmVjOTk3NDZiYTc4Y2M0YmRlNDc1MzE5ZDAxYmRlNzdjNDlkNThkMTZkM2IyZTkxYzJlNjFlODMwM2NhM2Q3ZWRhMzc5N2ZkOGIzNWNhNzJiYjE0YjE1YTI0YjU2YmI3MGRjMTM0ODQ1NjU4MDgxMTBmZjVkYjU4YzU2ZjdhMDQzNTYwN2UzYzM1MmZiZjRmNTUxMDZmMjk4MGZkM2NkNDIzOTdkYmY3MTM3ZWU3ZjFlMzJjZDgwYTNiN2FiMTJiNDZjMTY5MjIwMjc4ZDc3MTdiNzhhM2M0NWQ2Mzk1YTEzMGE4YjU4ODQxY2JjMjkwZTRmODE3ZGUzYTRmZTE2ZWNkMDc3Y2EzM2EwYWEyNWUyMzVjYzdmNjY1NWE4MGJhOGFlZWM4NzkwNWJiMmE3NTQ1OWI3YmNjNWExMzNmMjk5MzQ5M2I0MWZmY2Y2M2NkN2EzOTFlM2U2Zjc4MDk0Y2E0NDJjODAxNDQ0MDNjYjBhNWYwMGJmYzYxYWU4ODAiCiAKIFBLQ1M3IFBhcnNlIEZhaWx1cmUgSW52YWxpZCBBU04xOiBDaGFuZ2UgbGVuZ3RoIGZyb20gMiB0byAxICM3NDMuMAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHBrY3M3X2FzbjFfZmFpbDoiMzA4MjA0OWQwNjA5MmE4NjQ4ODZmNzBkMDEwNzAyYTA4MjA0OGUzMDgyMDQ4YTAyMDEwMTMxMGYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBiMDYwOTJhODY0ODg2ZjcwZDAxMDcwMTMxODIwNDY1MzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDViZWNkODcxOTVjMWRlZmY5MGMyNGM5MTI2OWI1NWIzZjA2OWJjMjI1YzMyNmMzMTRjMWE1MTc4NmZmZTE0YzgzMGJlNGU0YmM3M2NiYTM2Yzk3Njc3YjQ0MTY4Mjc5YmU5MWU3Y2RmN2MxOTM4NmFlMjE4NjI3MTlkMTNhM2EwZmZmMDgwM2Q0NjA5NjJmMmNkYTgzNzE0ODQ4NzMyNTJjM2Q3MDU0ZGI4MTQzZTJiMDgxYTM4MTZlZDA4MDRjYTUwOTlhZTVmZWNlODNkNWMyYzM3ODNiMTk4OGI0YjQ2ZGM5NGU1NTU4N2ExMDdlYTE1NDZiZjIyZDI4YTA5N2Y2NTJhNDA2NmRjMjk2NTI2OTA2OWFmMmY1MTc2YmI4Y2U5Y2E2ZDExZjk2NzU3ZjAzMjA0Zjc1NjcwMzU4N2QwMGFkNDI0Nzk2YzkyZmM3YWViNmY0OTQ0MzE5OTllZGEzMDk5MGU0ZjU3NzM2MzJlZDI1OGZlMDI3NjY3MzU5OWRhNmZjZTM1Y2RhZDc3MjZhMGJiMDI0Y2FkOTk2Yjg4ZTBjYjk4ODU0Y2ViNWMwYjZlYzc0OGQ5ZjljZTZhNmNkNDM3ODU4YmFjYjgxNDYxOGEyNzJmZjNhNDE1YzZlMDdmM2RiMDk4ODc3N2ZkZWM4NDVhOTdiZjdkMTAyZGQwMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMyMDIxNDU2NGQ1NTQwMjVhZjU5OWUzMjcwNzliMjcyMGVmMDBkZjM3Y2ZiN2MzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDA0NjA5OGRjNWYyYjk5ZTNiYzJlZDY2NDJkN2YwYTYxZWZhYmMxNWMzOGM3NjMzM2JjY2NlZWVlMzY5YTRmNGE1YmRkYThlYTU5MjY0MTI0ZTQyOWYwODYzMjY4M2RkYmExN2JiZjI2MmQ4MmI2YmVmYTNiNGUxNDgwMzc2YThjN2YzYzdkN2UyYTY3NzliYmYxODI2MmFhODU3ZGU4YzIwYTEyYjZhMmNlOGU0ZDdmMzFkZDFiMTk1MzkyY2Y2MTg1YWZjZTM0YWZlMDU4OTYwNTdiMzZlOWIxNzFiNmM2N2VkN2MyMjg2Y2JmYTgzZmY4YTE2N2M3YmM3MTA5YWVlN2Q3ZTE5MDliZDM4NGZiZmM2MTkzOGVmY2E1MWM4OTkzYzcxZGIzMTc3MzBmMTZlN2U3NzY4NjdhZTRmZGM1NjJkNmYxNWRlNTg1ZTdiOTRlZjQ5NmEzNjc2MzY3YTJjYmFhYjdiNjM2NjQ4YjAwNzZiYWQ1Y2RmMWUwOTc0MGVjNmE0NTFiZmY1MzRlZmEyMTUwOWYzYmE3N2I4MTAxYjkxZWE3ZTU1ZGRiZmUxNDAxNTE3MDY3ZDdiMDFhMmEwODc5ZjA4ODVjODk0YTg3Y2ZiNjhjNGQ3ZWU4OTA2MDQ4ODFhZWI5N2MyMmQxZjMzN2VmOTIzZTAzNWE2NDAwMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDE0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMzMDIxNDYyNDc3Mjk4NzU5ZThlMDQ3MThhZTU2MzE1NWYzNTIzY2ZiODRjZGIzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDZkMmNiYjM3ZmQxMjk1N2U1YTc0ODBjZTA0MzVlOGVmNjA3N2RlZjA4ZmYyNzA4NDRkZTI1MTZhNDc0MmYyMTFkOGM3NDY5MGJjMDk0OGUwOGEyOTZhYmJhOTI4NWY2YmIzMDViOTViN2Y5NDA4Y2U0NGU4Mzg4MGM3MTk0NDQ2NzJlYzk5NzQ2YmE3OGNjNGJkZTQ3NTMxOWQwMWJkZTc3YzQ5ZDU4ZDE2ZDNiMmU5MWMyZTYxZTgzMDNjYTNkN2VkYTM3OTdmZDhiMzVjYTcyYmIxNGIxNWEyNGI1NmJiNzBkYzEzNDg0NTY1ODA4MTEwZmY1ZGI1OGM1NmY3YTA0MzU2MDdlM2MzNTJmYmY0ZjU1MTA2ZjI5ODBmZDNjZDQyMzk3ZGJmNzEzN2VlN2YxZTMyY2Q4MGEzYjdhYjEyYjQ2YzE2OTIyMDI3OGQ3NzE3Yjc4YTNjNDVkNjM5NWExMzBhOGI1ODg0MWNiYzI5MGU0ZjgxN2RlM2E0ZmUxNmVjZDA3N2NhMzNhMGFhMjVlMjM1Y2M3ZjY2NTVhODBiYThhZWVjODc5MDViYjJhNzU0NTliN2JjYzVhMTMzZjI5OTM0OTNiNDFmZmNmNjNjZDdhMzkxZTNlNmY3ODA5NGNhNDQyYzgwMTQ0NDAzY2IwYTVmMDBiZmM2MWFlODgwIgogCiBQS0NTNyBQYXJzZSBGYWlsdXJlIEludmFsaWQgQVNOMTogQ2hhbmdlIHRhZyAzMSB0byAwMiAjNzQ0LjAKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBwa2NzN19hc24xX2ZhaWw6IjMwODIwNDlkMDYwOTJhODY0ODg2ZjcwZDAxMDcwMmEwODIwNDhlMzA4MjA0OGEwMjAxMDEzMTBmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwYjA2MDkyYTg2NDg4NmY3MGQwMTA3MDEzMTgyMDQ2NTMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTAyMTQ3YmRlZGRkMjQ0NGNkMWNkZmU1YzQxYTgxMDJjODliN2RmMmU2Y2JmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDA1YmVjZDg3MTk1YzFkZWZmOTBjMjRjOTEyNjliNTViM2YwNjliYzIyNWMzMjZjMzE0YzFhNTE3ODZmZmUxNGM4MzBiZTRlNGJjNzNjYmEzNmM5NzY3N2I0NDE2ODI3OWJlOTFlN2NkZjdjMTkzODZhZTIxODYyNzE5ZDEzYTNhMGZmZjA4MDNkNDYwOTYyZjJjZGE4MzcxNDg0ODczMjUyYzNkNzA1NGRiODE0M2UyYjA4MWEzODE2ZWQwODA0Y2E1MDk5YWU1ZmVjZTgzZDVjMmMzNzgzYjE5ODhiNGI0NmRjOTRlNTU1ODdhMTA3ZWExNTQ2YmYyMmQyOGEwOTdmNjUyYTQwNjZkYzI5NjUyNjkwNjlhZjJmNTE3NmJiOGNlOWNhNmQxMWY5Njc1N2YwMzIwNGY3NTY3MDM1ODdkMDBhZDQyNDc5NmM5MmZjN2FlYjZmNDk0NDMxOTk5ZWRhMzA5OTBlNGY1NzczNjMyZWQyNThmZTAyNzY2NzM1OTlkYTZmY2UzNWNkYWQ3NzI2YTBiYjAyNGNhZDk5NmI4OGUwY2I5ODg1NGNlYjVjMGI2ZWM3NDhkOWY5Y2U2YTZjZDQzNzg1OGJhY2I4MTQ2MThhMjcyZmYzYTQxNWM2ZTA3ZjNkYjA5ODg3NzdmZGVjODQ1YTk3YmY3ZDEwMmRkMDMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMjAyMTQ1NjRkNTU0MDI1YWY1OTllMzI3MDc5YjI3MjBlZjAwZGYzN2NmYjdjMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDAwNDYwOThkYzVmMmI5OWUzYmMyZWQ2NjQyZDdmMGE2MWVmYWJjMTVjMzhjNzYzMzNiY2NjZWVlZTM2OWE0ZjRhNWJkZGE4ZWE1OTI2NDEyNGU0MjlmMDg2MzI2ODNkZGJhMTdiYmYyNjJkODJiNmJlZmEzYjRlMTQ4MDM3NmE4YzdmM2M3ZDdlMmE2Nzc5YmJmMTgyNjJhYTg1N2RlOGMyMGExMmI2YTJjZThlNGQ3ZjMxZGQxYjE5NTM5MmNmNjE4NWFmY2UzNGFmZTA1ODk2MDU3YjM2ZTliMTcxYjZjNjdlZDdjMjI4NmNiZmE4M2ZmOGExNjdjN2JjNzEwOWFlZTdkN2UxOTA5YmQzODRmYmZjNjE5MzhlZmNhNTFjODk5M2M3MWRiMzE3NzMwZjE2ZTdlNzc2ODY3YWU0ZmRjNTYyZDZmMTVkZTU4NWU3Yjk0ZWY0OTZhMzY3NjM2N2EyY2JhYWI3YjYzNjY0OGIwMDc2YmFkNWNkZjFlMDk3NDBlYzZhNDUxYmZmNTM0ZWZhMjE1MDlmM2JhNzdiODEwMWI5MWVhN2U1NWRkYmZlMTQwMTUxNzA2N2Q3YjAxYTJhMDg3OWYwODg1Yzg5NGE4N2NmYjY4YzRkN2VlODkwNjA0ODgxYWViOTdjMjJkMWYzMzdlZjkyM2UwMzVhNjQwMDMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzAyMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMzAyMTQ2MjQ3NzI5ODc1OWU4ZTA0NzE4YWU1NjMxNTVmMzUyM2NmYjg0Y2RiMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDA2ZDJjYmIzN2ZkMTI5NTdlNWE3NDgwY2UwNDM1ZThlZjYwNzdkZWYwOGZmMjcwODQ0ZGUyNTE2YTQ3NDJmMjExZDhjNzQ2OTBiYzA5NDhlMDhhMjk2YWJiYTkyODVmNmJiMzA1Yjk1YjdmOTQwOGNlNDRlODM4ODBjNzE5NDQ0NjcyZWM5OTc0NmJhNzhjYzRiZGU0NzUzMTlkMDFiZGU3N2M0OWQ1OGQxNmQzYjJlOTFjMmU2MWU4MzAzY2EzZDdlZGEzNzk3ZmQ4YjM1Y2E3MmJiMTRiMTVhMjRiNTZiYjcwZGMxMzQ4NDU2NTgwODExMGZmNWRiNThjNTZmN2EwNDM1NjA3ZTNjMzUyZmJmNGY1NTEwNmYyOTgwZmQzY2Q0MjM5N2RiZjcxMzdlZTdmMWUzMmNkODBhM2I3YWIxMmI0NmMxNjkyMjAyNzhkNzcxN2I3OGEzYzQ1ZDYzOTVhMTMwYThiNTg4NDFjYmMyOTBlNGY4MTdkZTNhNGZlMTZlY2QwNzdjYTMzYTBhYTI1ZTIzNWNjN2Y2NjU1YTgwYmE4YWVlYzg3OTA1YmIyYTc1NDU5YjdiY2M1YTEzM2YyOTkzNDkzYjQxZmZjZjYzY2Q3YTM5MWUzZTZmNzgwOTRjYTQ0MmM4MDE0NDQwM2NiMGE1ZjAwYmZjNjFhZTg4MCIKIAogUEtDUzcgUGFyc2UgRmFpbHVyZSBJbnZhbGlkIEFTTjE6IENoYW5nZSBsZW5ndGggZnJvbSAxNCB0byAxNSAjNzQ1LjAKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBwa2NzN19hc24xX2ZhaWw6IjMwODIwNDlkMDYwOTJhODY0ODg2ZjcwZDAxMDcwMmEwODIwNDhlMzA4MjA0OGEwMjAxMDEzMTBmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwYjA2MDkyYTg2NDg4NmY3MGQwMTA3MDEzMTgyMDQ2NTMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTAyMTQ3YmRlZGRkMjQ0NGNkMWNkZmU1YzQxYTgxMDJjODliN2RmMmU2Y2JmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDA1YmVjZDg3MTk1YzFkZWZmOTBjMjRjOTEyNjliNTViM2YwNjliYzIyNWMzMjZjMzE0YzFhNTE3ODZmZmUxNGM4MzBiZTRlNGJjNzNjYmEzNmM5NzY3N2I0NDE2ODI3OWJlOTFlN2NkZjdjMTkzODZhZTIxODYyNzE5ZDEzYTNhMGZmZjA4MDNkNDYwOTYyZjJjZGE4MzcxNDg0ODczMjUyYzNkNzA1NGRiODE0M2UyYjA4MWEzODE2ZWQwODA0Y2E1MDk5YWU1ZmVjZTgzZDVjMmMzNzgzYjE5ODhiNGI0NmRjOTRlNTU1ODdhMTA3ZWExNTQ2YmYyMmQyOGEwOTdmNjUyYTQwNjZkYzI5NjUyNjkwNjlhZjJmNTE3NmJiOGNlOWNhNmQxMWY5Njc1N2YwMzIwNGY3NTY3MDM1ODdkMDBhZDQyNDc5NmM5MmZjN2FlYjZmNDk0NDMxOTk5ZWRhMzA5OTBlNGY1NzczNjMyZWQyNThmZTAyNzY2NzM1OTlkYTZmY2UzNWNkYWQ3NzI2YTBiYjAyNGNhZDk5NmI4OGUwY2I5ODg1NGNlYjVjMGI2ZWM3NDhkOWY5Y2U2YTZjZDQzNzg1OGJhY2I4MTQ2MThhMjcyZmYzYTQxNWM2ZTA3ZjNkYjA5ODg3NzdmZGVjODQ1YTk3YmY3ZDEwMmRkMDMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMjAyMTQ1NjRkNTU0MDI1YWY1OTllMzI3MDc5YjI3MjBlZjAwZGYzN2NmYjdjMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDAwNDYwOThkYzVmMmI5OWUzYmMyZWQ2NjQyZDdmMGE2MWVmYWJjMTVjMzhjNzYzMzNiY2NjZWVlZTM2OWE0ZjRhNWJkZGE4ZWE1OTI2NDEyNGU0MjlmMDg2MzI2ODNkZGJhMTdiYmYyNjJkODJiNmJlZmEzYjRlMTQ4MDM3NmE4YzdmM2M3ZDdlMmE2Nzc5YmJmMTgyNjJhYTg1N2RlOGMyMGExMmI2YTJjZThlNGQ3ZjMxZGQxYjE5NTM5MmNmNjE4NWFmY2UzNGFmZTA1ODk2MDU3YjM2ZTliMTcxYjZjNjdlZDdjMjI4NmNiZmE4M2ZmOGExNjdjN2JjNzEwOWFlZTdkN2UxOTA5YmQzODRmYmZjNjE5MzhlZmNhNTFjODk5M2M3MWRiMzE3NzMwZjE2ZTdlNzc2ODY3YWU0ZmRjNTYyZDZmMTVkZTU4NWU3Yjk0ZWY0OTZhMzY3NjM2N2EyY2JhYWI3YjYzNjY0OGIwMDc2YmFkNWNkZjFlMDk3NDBlYzZhNDUxYmZmNTM0ZWZhMjE1MDlmM2JhNzdiODEwMWI5MWVhN2U1NWRkYmZlMTQwMTUxNzA2N2Q3YjAxYTJhMDg3OWYwODg1Yzg5NGE4N2NmYjY4YzRkN2VlODkwNjA0ODgxYWViOTdjMjJkMWYzMzdlZjkyM2UwMzVhNjQwMDMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGYzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMzAyMTQ2MjQ3NzI5ODc1OWU4ZTA0NzE4YWU1NjMxNTVmMzUyM2NmYjg0Y2RiMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDA2ZDJjYmIzN2ZkMTI5NTdlNWE3NDgwY2UwNDM1ZThlZjYwNzdkZWYwOGZmMjcwODQ0ZGUyNTE2YTQ3NDJmMjExZDhjNzQ2OTBiYzA5NDhlMDhhMjk2YWJiYTkyODVmNmJiMzA1Yjk1YjdmOTQwOGNlNDRlODM4ODBjNzE5NDQ0NjcyZWM5OTc0NmJhNzhjYzRiZGU0NzUzMTlkMDFiZGU3N2M0OWQ1OGQxNmQzYjJlOTFjMmU2MWU4MzAzY2EzZDdlZGEzNzk3ZmQ4YjM1Y2E3MmJiMTRiMTVhMjRiNTZiYjcwZGMxMzQ4NDU2NTgwODExMGZmNWRiNThjNTZmN2EwNDM1NjA3ZTNjMzUyZmJmNGY1NTEwNmYyOTgwZmQzY2Q0MjM5N2RiZjcxMzdlZTdmMWUzMmNkODBhM2I3YWIxMmI0NmMxNjkyMjAyNzhkNzcxN2I3OGEzYzQ1ZDYzOTVhMTMwYThiNTg4NDFjYmMyOTBlNGY4MTdkZTNhNGZlMTZlY2QwNzdjYTMzYTBhYTI1ZTIzNWNjN2Y2NjU1YTgwYmE4YWVlYzg3OTA1YmIyYTc1NDU5YjdiY2M1YTEzM2YyOTkzNDkzYjQxZmZjZjYzY2Q3YTM5MWUzZTZmNzgwOTRjYTQ0MmM4MDE0NDQwM2NiMGE1ZjAwYmZjNjFhZTg4MCIKIAogUEtDUzcgUGFyc2UgRmFpbHVyZSBJbnZhbGlkIEFTTjE6IENoYW5nZSBjb250ZW50cyBvZiB0YWcgMzEgdG8gY29udGFpbiBvbmUgdW5hY2NvdW50ZWQgZXh0cmEgYnl0ZSAjNzQ2LjAKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBwa2NzN19hc24xX2ZhaWw6IjMwODIwNDlkMDYwOTJhODY0ODg2ZjcwZDAxMDcwMmEwODIwNDhlMzA4MjA0OGEwMjAxMDEzMTBmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwYjA2MDkyYTg2NDg4NmY3MGQwMTA3MDEzMTgyMDQ2NTMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTAyMTQ3YmRlZGRkMjQ0NGNkMWNkZmU1YzQxYTgxMDJjODliN2RmMmU2Y2JmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDA1YmVjZDg3MTk1YzFkZWZmOTBjMjRjOTEyNjliNTViM2YwNjliYzIyNWMzMjZjMzE0YzFhNTE3ODZmZmUxNGM4MzBiZTRlNGJjNzNjYmEzNmM5NzY3N2I0NDE2ODI3OWJlOTFlN2NkZjdjMTkzODZhZTIxODYyNzE5ZDEzYTNhMGZmZjA4MDNkNDYwOTYyZjJjZGE4MzcxNDg0ODczMjUyYzNkNzA1NGRiODE0M2UyYjA4MWEzODE2ZWQwODA0Y2E1MDk5YWU1ZmVjZTgzZDVjMmMzNzgzYjE5ODhiNGI0NmRjOTRlNTU1ODdhMTA3ZWExNTQ2YmYyMmQyOGEwOTdmNjUyYTQwNjZkYzI5NjUyNjkwNjlhZjJmNTE3NmJiOGNlOWNhNmQxMWY5Njc1N2YwMzIwNGY3NTY3MDM1ODdkMDBhZDQyNDc5NmM5MmZjN2FlYjZmNDk0NDMxOTk5ZWRhMzA5OTBlNGY1NzczNjMyZWQyNThmZTAyNzY2NzM1OTlkYTZmY2UzNWNkYWQ3NzI2YTBiYjAyNGNhZDk5NmI4OGUwY2I5ODg1NGNlYjVjMGI2ZWM3NDhkOWY5Y2U2YTZjZDQzNzg1OGJhY2I4MTQ2MThhMjcyZmYzYTQxNWM2ZTA3ZjNkYjA5ODg3NzdmZGVjODQ1YTk3YmY3ZDEwMmRkMDMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMjAyMTQ1NjRkNTU0MDI1YWY1OTllMzI3MDc5YjI3MjBlZjAwZGYzN2NmYjdjMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDAwNDYwOThkYzVmMmI5OWUzYmMyZWQ2NjQyZDdmMGE2MWVmYWJjMTVjMzhjNzYzMzNiY2NjZWVlZTM2OWE0ZjRhNWJkZGE4ZWE1OTI2NDEyNGU0MjlmMDg2MzI2ODNkZGJhMTdiYmYyNjJkODJiNmJlZmEzYjRlMTQ4MDM3NmE4YzdmM2M3ZDdlMmE2Nzc5YmJmMTgyNjJhYTg1N2RlOGMyMGExMmI2YTJjZThlNGQ3ZjMxZGQxYjE5NTM5MmNmNjE4NWFmY2UzNGFmZTA1ODk2MDU3YjM2ZTliMTcxYjZjNjdlZDdjMjI4NmNiZmE4M2ZmOGExNjdjN2JjNzEwOWFlZTdkN2UxOTA5YmQzODRmYmZjNjE5MzhlZmNhNTFjODk5M2M3MWRiMzE3NzMwZjE2ZTdlNzc2ODY3YWU0ZmRjNTYyZDZmMTVkZTU4NWU3Yjk0ZWY0OTZhMzY3NjM2N2EyY2JhYWI3YjYzNjY0OGIwMDc2YmFkNWNkZjFlMDk3NDBlYzZhNDUxYmZmNTM0ZWZhMjE1MDlmM2JhNzdiODEwMWI5MWVhN2U1NWRkYmZlMTQwMTUxNzA2N2Q3YjAxYTJhMDg3OWYwODg1Yzg5NGE4N2NmYjY4YzRkN2VlODkwNjA0ODgxYWViOTdjMjJkMWYzMzdlZjkyM2UwMzVhNjQwMDMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGYzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MDAzMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMzMDIxNDYyNDc3Mjk4NzU5ZThlMDQ3MThhZTU2MzE1NWYzNTIzY2ZiODRjZGIzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDZkMmNiYjM3ZmQxMjk1N2U1YTc0ODBjZTA0MzVlOGVmNjA3N2RlZjA4ZmYyNzA4NDRkZTI1MTZhNDc0MmYyMTFkOGM3NDY5MGJjMDk0OGUwOGEyOTZhYmJhOTI4NWY2YmIzMDViOTViN2Y5NDA4Y2U0NGU4Mzg4MGM3MTk0NDQ2NzJlYzk5NzQ2YmE3OGNjNGJkZTQ3NTMxOWQwMWJkZTc3YzQ5ZDU4ZDE2ZDNiMmU5MWMyZTYxZTgzMDNjYTNkN2VkYTM3OTdmZDhiMzVjYTcyYmIxNGIxNWEyNGI1NmJiNzBkYzEzNDg0NTY1ODA4MTEwZmY1ZGI1OGM1NmY3YTA0MzU2MDdlM2MzNTJmYmY0ZjU1MTA2ZjI5ODBmZDNjZDQyMzk3ZGJmNzEzN2VlN2YxZTMyY2Q4MGEzYjdhYjEyYjQ2YzE2OTIyMDI3OGQ3NzE3Yjc4YTNjNDVkNjM5NWExMzBhOGI1ODg0MWNiYzI5MGU0ZjgxN2RlM2E0ZmUxNmVjZDA3N2NhMzNhMGFhMjVlMjM1Y2M3ZjY2NTVhODBiYThhZWVjODc5MDViYjJhNzU0NTliN2JjYzVhMTMzZjI5OTM0OTNiNDFmZmNmNjNjZDdhMzkxZTNlNmY3ODA5NGNhNDQyYzgwMTQ0NDAzY2IwYTVmMDBiZmM2MWFlODgwIgogCiBQS0NTNyBQYXJzZSBGYWlsdXJlIEludmFsaWQgQVNOMTogQ2hhbmdlIGxlbmd0aCBmcm9tIDE0IHRvIDEzICM3NDcuMAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHBrY3M3X2FzbjFfZmFpbDoiMzA4MjA0OWQwNjA5MmE4NjQ4ODZmNzBkMDEwNzAyYTA4MjA0OGUzMDgyMDQ4YTAyMDEwMTMxMGYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBiMDYwOTJhODY0ODg2ZjcwZDAxMDcwMTMxODIwNDY1MzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDViZWNkODcxOTVjMWRlZmY5MGMyNGM5MTI2OWI1NWIzZjA2OWJjMjI1YzMyNmMzMTRjMWE1MTc4NmZmZTE0YzgzMGJlNGU0YmM3M2NiYTM2Yzk3Njc3YjQ0MTY4Mjc5YmU5MWU3Y2RmN2MxOTM4NmFlMjE4NjI3MTlkMTNhM2EwZmZmMDgwM2Q0NjA5NjJmMmNkYTgzNzE0ODQ4NzMyNTJjM2Q3MDU0ZGI4MTQzZTJiMDgxYTM4MTZlZDA4MDRjYTUwOTlhZTVmZWNlODNkNWMyYzM3ODNiMTk4OGI0YjQ2ZGM5NGU1NTU4N2ExMDdlYTE1NDZiZjIyZDI4YTA5N2Y2NTJhNDA2NmRjMjk2NTI2OTA2OWFmMmY1MTc2YmI4Y2U5Y2E2ZDExZjk2NzU3ZjAzMjA0Zjc1NjcwMzU4N2QwMGFkNDI0Nzk2YzkyZmM3YWViNmY0OTQ0MzE5OTllZGEzMDk5MGU0ZjU3NzM2MzJlZDI1OGZlMDI3NjY3MzU5OWRhNmZjZTM1Y2RhZDc3MjZhMGJiMDI0Y2FkOTk2Yjg4ZTBjYjk4ODU0Y2ViNWMwYjZlYzc0OGQ5ZjljZTZhNmNkNDM3ODU4YmFjYjgxNDYxOGEyNzJmZjNhNDE1YzZlMDdmM2RiMDk4ODc3N2ZkZWM4NDVhOTdiZjdkMTAyZGQwMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMyMDIxNDU2NGQ1NTQwMjVhZjU5OWUzMjcwNzliMjcyMGVmMDBkZjM3Y2ZiN2MzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDA0NjA5OGRjNWYyYjk5ZTNiYzJlZDY2NDJkN2YwYTYxZWZhYmMxNWMzOGM3NjMzM2JjY2NlZWVlMzY5YTRmNGE1YmRkYThlYTU5MjY0MTI0ZTQyOWYwODYzMjY4M2RkYmExN2JiZjI2MmQ4MmI2YmVmYTNiNGUxNDgwMzc2YThjN2YzYzdkN2UyYTY3NzliYmYxODI2MmFhODU3ZGU4YzIwYTEyYjZhMmNlOGU0ZDdmMzFkZDFiMTk1MzkyY2Y2MTg1YWZjZTM0YWZlMDU4OTYwNTdiMzZlOWIxNzFiNmM2N2VkN2MyMjg2Y2JmYTgzZmY4YTE2N2M3YmM3MTA5YWVlN2Q3ZTE5MDliZDM4NGZiZmM2MTkzOGVmY2E1MWM4OTkzYzcxZGIzMTc3MzBmMTZlN2U3NzY4NjdhZTRmZGM1NjJkNmYxNWRlNTg1ZTdiOTRlZjQ5NmEzNjc2MzY3YTJjYmFhYjdiNjM2NjQ4YjAwNzZiYWQ1Y2RmMWUwOTc0MGVjNmE0NTFiZmY1MzRlZmEyMTUwOWYzYmE3N2I4MTAxYjkxZWE3ZTU1ZGRiZmUxNDAxNTE3MDY3ZDdiMDFhMmEwODc5ZjA4ODVjODk0YTg3Y2ZiNjhjNGQ3ZWU4OTA2MDQ4ODFhZWI5N2MyMmQxZjMzN2VmOTIzZTAzNWE2NDAwMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZDMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMzMDIxNDYyNDc3Mjk4NzU5ZThlMDQ3MThhZTU2MzE1NWYzNTIzY2ZiODRjZGIzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDZkMmNiYjM3ZmQxMjk1N2U1YTc0ODBjZTA0MzVlOGVmNjA3N2RlZjA4ZmYyNzA4NDRkZTI1MTZhNDc0MmYyMTFkOGM3NDY5MGJjMDk0OGUwOGEyOTZhYmJhOTI4NWY2YmIzMDViOTViN2Y5NDA4Y2U0NGU4Mzg4MGM3MTk0NDQ2NzJlYzk5NzQ2YmE3OGNjNGJkZTQ3NTMxOWQwMWJkZTc3YzQ5ZDU4ZDE2ZDNiMmU5MWMyZTYxZTgzMDNjYTNkN2VkYTM3OTdmZDhiMzVjYTcyYmIxNGIxNWEyNGI1NmJiNzBkYzEzNDg0NTY1ODA4MTEwZmY1ZGI1OGM1NmY3YTA0MzU2MDdlM2MzNTJmYmY0ZjU1MTA2ZjI5ODBmZDNjZDQyMzk3ZGJmNzEzN2VlN2YxZTMyY2Q4MGEzYjdhYjEyYjQ2YzE2OTIyMDI3OGQ3NzE3Yjc4YTNjNDVkNjM5NWExMzBhOGI1ODg0MWNiYzI5MGU0ZjgxN2RlM2E0ZmUxNmVjZDA3N2NhMzNhMGFhMjVlMjM1Y2M3ZjY2NTVhODBiYThhZWVjODc5MDViYjJhNzU0NTliN2JjYzVhMTMzZjI5OTM0OTNiNDFmZmNmNjNjZDdhMzkxZTNlNmY3ODA5NGNhNDQyYzgwMTQ0NDAzY2IwYTVmMDBiZmM2MWFlODgwIgogCiBQS0NTNyBQYXJzZSBGYWlsdXJlIEludmFsaWQgQVNOMTogQ2hhbmdlIHRhZyAzMCB0byAwMiAjNzQ4LjAKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBwa2NzN19hc24xX2ZhaWw6IjMwODIwNDlkMDYwOTJhODY0ODg2ZjcwZDAxMDcwMmEwODIwNDhlMzA4MjA0OGEwMjAxMDEzMTBmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwYjA2MDkyYTg2NDg4NmY3MGQwMTA3MDEzMTgyMDQ2NTMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTAyMTQ3YmRlZGRkMjQ0NGNkMWNkZmU1YzQxYTgxMDJjODliN2RmMmU2Y2JmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDA1YmVjZDg3MTk1YzFkZWZmOTBjMjRjOTEyNjliNTViM2YwNjliYzIyNWMzMjZjMzE0YzFhNTE3ODZmZmUxNGM4MzBiZTRlNGJjNzNjYmEzNmM5NzY3N2I0NDE2ODI3OWJlOTFlN2NkZjdjMTkzODZhZTIxODYyNzE5ZDEzYTNhMGZmZjA4MDNkNDYwOTYyZjJjZGE4MzcxNDg0ODczMjUyYzNkNzA1NGRiODE0M2UyYjA4MWEzODE2ZWQwODA0Y2E1MDk5YWU1ZmVjZTgzZDVjMmMzNzgzYjE5ODhiNGI0NmRjOTRlNTU1ODdhMTA3ZWExNTQ2YmYyMmQyOGEwOTdmNjUyYTQwNjZkYzI5NjUyNjkwNjlhZjJmNTE3NmJiOGNlOWNhNmQxMWY5Njc1N2YwMzIwNGY3NTY3MDM1ODdkMDBhZDQyNDc5NmM5MmZjN2FlYjZmNDk0NDMxOTk5ZWRhMzA5OTBlNGY1NzczNjMyZWQyNThmZTAyNzY2NzM1OTlkYTZmY2UzNWNkYWQ3NzI2YTBiYjAyNGNhZDk5NmI4OGUwY2I5ODg1NGNlYjVjMGI2ZWM3NDhkOWY5Y2U2YTZjZDQzNzg1OGJhY2I4MTQ2MThhMjcyZmYzYTQxNWM2ZTA3ZjNkYjA5ODg3NzdmZGVjODQ1YTk3YmY3ZDEwMmRkMDMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMjAyMTQ1NjRkNTU0MDI1YWY1OTllMzI3MDc5YjI3MjBlZjAwZGYzN2NmYjdjMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDAwNDYwOThkYzVmMmI5OWUzYmMyZWQ2NjQyZDdmMGE2MWVmYWJjMTVjMzhjNzYzMzNiY2NjZWVlZTM2OWE0ZjRhNWJkZGE4ZWE1OTI2NDEyNGU0MjlmMDg2MzI2ODNkZGJhMTdiYmYyNjJkODJiNmJlZmEzYjRlMTQ4MDM3NmE4YzdmM2M3ZDdlMmE2Nzc5YmJmMTgyNjJhYTg1N2RlOGMyMGExMmI2YTJjZThlNGQ3ZjMxZGQxYjE5NTM5MmNmNjE4NWFmY2UzNGFmZTA1ODk2MDU3YjM2ZTliMTcxYjZjNjdlZDdjMjI4NmNiZmE4M2ZmOGExNjdjN2JjNzEwOWFlZTdkN2UxOTA5YmQzODRmYmZjNjE5MzhlZmNhNTFjODk5M2M3MWRiMzE3NzMwZjE2ZTdlNzc2ODY3YWU0ZmRjNTYyZDZmMTVkZTU4NWU3Yjk0ZWY0OTZhMzY3NjM2N2EyY2JhYWI3YjYzNjY0OGIwMDc2YmFkNWNkZjFlMDk3NDBlYzZhNDUxYmZmNTM0ZWZhMjE1MDlmM2JhNzdiODEwMWI5MWVhN2U1NWRkYmZlMTQwMTUxNzA2N2Q3YjAxYTJhMDg3OWYwODg1Yzg5NGE4N2NmYjY4YzRkN2VlODkwNjA0ODgxYWViOTdjMjJkMWYzMzdlZjkyM2UwMzVhNjQwMDMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUwMjBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMzAyMTQ2MjQ3NzI5ODc1OWU4ZTA0NzE4YWU1NjMxNTVmMzUyM2NmYjg0Y2RiMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDA2ZDJjYmIzN2ZkMTI5NTdlNWE3NDgwY2UwNDM1ZThlZjYwNzdkZWYwOGZmMjcwODQ0ZGUyNTE2YTQ3NDJmMjExZDhjNzQ2OTBiYzA5NDhlMDhhMjk2YWJiYTkyODVmNmJiMzA1Yjk1YjdmOTQwOGNlNDRlODM4ODBjNzE5NDQ0NjcyZWM5OTc0NmJhNzhjYzRiZGU0NzUzMTlkMDFiZGU3N2M0OWQ1OGQxNmQzYjJlOTFjMmU2MWU4MzAzY2EzZDdlZGEzNzk3ZmQ4YjM1Y2E3MmJiMTRiMTVhMjRiNTZiYjcwZGMxMzQ4NDU2NTgwODExMGZmNWRiNThjNTZmN2EwNDM1NjA3ZTNjMzUyZmJmNGY1NTEwNmYyOTgwZmQzY2Q0MjM5N2RiZjcxMzdlZTdmMWUzMmNkODBhM2I3YWIxMmI0NmMxNjkyMjAyNzhkNzcxN2I3OGEzYzQ1ZDYzOTVhMTMwYThiNTg4NDFjYmMyOTBlNGY4MTdkZTNhNGZlMTZlY2QwNzdjYTMzYTBhYTI1ZTIzNWNjN2Y2NjU1YTgwYmE4YWVlYzg3OTA1YmIyYTc1NDU5YjdiY2M1YTEzM2YyOTkzNDkzYjQxZmZjZjYzY2Q3YTM5MWUzZTZmNzgwOTRjYTQ0MmM4MDE0NDQwM2NiMGE1ZjAwYmZjNjFhZTg4MCIKIAogUEtDUzcgUGFyc2UgRmFpbHVyZSBJbnZhbGlkIEFTTjE6IENoYW5nZSBsZW5ndGggZnJvbSAxMiB0byAxMyAjNzQ5LjAKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBwa2NzN19hc24xX2ZhaWw6IjMwODIwNDlkMDYwOTJhODY0ODg2ZjcwZDAxMDcwMmEwODIwNDhlMzA4MjA0OGEwMjAxMDEzMTBmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwYjA2MDkyYTg2NDg4NmY3MGQwMTA3MDEzMTgyMDQ2NTMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTAyMTQ3YmRlZGRkMjQ0NGNkMWNkZmU1YzQxYTgxMDJjODliN2RmMmU2Y2JmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDA1YmVjZDg3MTk1YzFkZWZmOTBjMjRjOTEyNjliNTViM2YwNjliYzIyNWMzMjZjMzE0YzFhNTE3ODZmZmUxNGM4MzBiZTRlNGJjNzNjYmEzNmM5NzY3N2I0NDE2ODI3OWJlOTFlN2NkZjdjMTkzODZhZTIxODYyNzE5ZDEzYTNhMGZmZjA4MDNkNDYwOTYyZjJjZGE4MzcxNDg0ODczMjUyYzNkNzA1NGRiODE0M2UyYjA4MWEzODE2ZWQwODA0Y2E1MDk5YWU1ZmVjZTgzZDVjMmMzNzgzYjE5ODhiNGI0NmRjOTRlNTU1ODdhMTA3ZWExNTQ2YmYyMmQyOGEwOTdmNjUyYTQwNjZkYzI5NjUyNjkwNjlhZjJmNTE3NmJiOGNlOWNhNmQxMWY5Njc1N2YwMzIwNGY3NTY3MDM1ODdkMDBhZDQyNDc5NmM5MmZjN2FlYjZmNDk0NDMxOTk5ZWRhMzA5OTBlNGY1NzczNjMyZWQyNThmZTAyNzY2NzM1OTlkYTZmY2UzNWNkYWQ3NzI2YTBiYjAyNGNhZDk5NmI4OGUwY2I5ODg1NGNlYjVjMGI2ZWM3NDhkOWY5Y2U2YTZjZDQzNzg1OGJhY2I4MTQ2MThhMjcyZmYzYTQxNWM2ZTA3ZjNkYjA5ODg3NzdmZGVjODQ1YTk3YmY3ZDEwMmRkMDMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMjAyMTQ1NjRkNTU0MDI1YWY1OTllMzI3MDc5YjI3MjBlZjAwZGYzN2NmYjdjMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDAwNDYwOThkYzVmMmI5OWUzYmMyZWQ2NjQyZDdmMGE2MWVmYWJjMTVjMzhjNzYzMzNiY2NjZWVlZTM2OWE0ZjRhNWJkZGE4ZWE1OTI2NDEyNGU0MjlmMDg2MzI2ODNkZGJhMTdiYmYyNjJkODJiNmJlZmEzYjRlMTQ4MDM3NmE4YzdmM2M3ZDdlMmE2Nzc5YmJmMTgyNjJhYTg1N2RlOGMyMGExMmI2YTJjZThlNGQ3ZjMxZGQxYjE5NTM5MmNmNjE4NWFmY2UzNGFmZTA1ODk2MDU3YjM2ZTliMTcxYjZjNjdlZDdjMjI4NmNiZmE4M2ZmOGExNjdjN2JjNzEwOWFlZTdkN2UxOTA5YmQzODRmYmZjNjE5MzhlZmNhNTFjODk5M2M3MWRiMzE3NzMwZjE2ZTdlNzc2ODY3YWU0ZmRjNTYyZDZmMTVkZTU4NWU3Yjk0ZWY0OTZhMzY3NjM2N2EyY2JhYWI3YjYzNjY0OGIwMDc2YmFkNWNkZjFlMDk3NDBlYzZhNDUxYmZmNTM0ZWZhMjE1MDlmM2JhNzdiODEwMWI5MWVhN2U1NWRkYmZlMTQwMTUxNzA2N2Q3YjAxYTJhMDg3OWYwODg1Yzg5NGE4N2NmYjY4YzRkN2VlODkwNjA0ODgxYWViOTdjMjJkMWYzMzdlZjkyM2UwMzVhNjQwMDMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBkMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMzAyMTQ2MjQ3NzI5ODc1OWU4ZTA0NzE4YWU1NjMxNTVmMzUyM2NmYjg0Y2RiMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDA2ZDJjYmIzN2ZkMTI5NTdlNWE3NDgwY2UwNDM1ZThlZjYwNzdkZWYwOGZmMjcwODQ0ZGUyNTE2YTQ3NDJmMjExZDhjNzQ2OTBiYzA5NDhlMDhhMjk2YWJiYTkyODVmNmJiMzA1Yjk1YjdmOTQwOGNlNDRlODM4ODBjNzE5NDQ0NjcyZWM5OTc0NmJhNzhjYzRiZGU0NzUzMTlkMDFiZGU3N2M0OWQ1OGQxNmQzYjJlOTFjMmU2MWU4MzAzY2EzZDdlZGEzNzk3ZmQ4YjM1Y2E3MmJiMTRiMTVhMjRiNTZiYjcwZGMxMzQ4NDU2NTgwODExMGZmNWRiNThjNTZmN2EwNDM1NjA3ZTNjMzUyZmJmNGY1NTEwNmYyOTgwZmQzY2Q0MjM5N2RiZjcxMzdlZTdmMWUzMmNkODBhM2I3YWIxMmI0NmMxNjkyMjAyNzhkNzcxN2I3OGEzYzQ1ZDYzOTVhMTMwYThiNTg4NDFjYmMyOTBlNGY4MTdkZTNhNGZlMTZlY2QwNzdjYTMzYTBhYTI1ZTIzNWNjN2Y2NjU1YTgwYmE4YWVlYzg3OTA1YmIyYTc1NDU5YjdiY2M1YTEzM2YyOTkzNDkzYjQxZmZjZjYzY2Q3YTM5MWUzZTZmNzgwOTRjYTQ0MmM4MDE0NDQwM2NiMGE1ZjAwYmZjNjFhZTg4MCIKIAogUEtDUzcgUGFyc2UgRmFpbHVyZSBJbnZhbGlkIEFTTjE6IENoYW5nZSBjb250ZW50cyBvZiB0YWcgMzAgdG8gY29udGFpbiBvbmUgdW5hY2NvdW50ZWQgZXh0cmEgYnl0ZSAjNzUwLjAKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBwa2NzN19hc24xX2ZhaWw6IjMwODIwNDlkMDYwOTJhODY0ODg2ZjcwZDAxMDcwMmEwODIwNDhlMzA4MjA0OGEwMjAxMDEzMTBmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwYjA2MDkyYTg2NDg4NmY3MGQwMTA3MDEzMTgyMDQ2NTMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTAyMTQ3YmRlZGRkMjQ0NGNkMWNkZmU1YzQxYTgxMDJjODliN2RmMmU2Y2JmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDA1YmVjZDg3MTk1YzFkZWZmOTBjMjRjOTEyNjliNTViM2YwNjliYzIyNWMzMjZjMzE0YzFhNTE3ODZmZmUxNGM4MzBiZTRlNGJjNzNjYmEzNmM5NzY3N2I0NDE2ODI3OWJlOTFlN2NkZjdjMTkzODZhZTIxODYyNzE5ZDEzYTNhMGZmZjA4MDNkNDYwOTYyZjJjZGE4MzcxNDg0ODczMjUyYzNkNzA1NGRiODE0M2UyYjA4MWEzODE2ZWQwODA0Y2E1MDk5YWU1ZmVjZTgzZDVjMmMzNzgzYjE5ODhiNGI0NmRjOTRlNTU1ODdhMTA3ZWExNTQ2YmYyMmQyOGEwOTdmNjUyYTQwNjZkYzI5NjUyNjkwNjlhZjJmNTE3NmJiOGNlOWNhNmQxMWY5Njc1N2YwMzIwNGY3NTY3MDM1ODdkMDBhZDQyNDc5NmM5MmZjN2FlYjZmNDk0NDMxOTk5ZWRhMzA5OTBlNGY1NzczNjMyZWQyNThmZTAyNzY2NzM1OTlkYTZmY2UzNWNkYWQ3NzI2YTBiYjAyNGNhZDk5NmI4OGUwY2I5ODg1NGNlYjVjMGI2ZWM3NDhkOWY5Y2U2YTZjZDQzNzg1OGJhY2I4MTQ2MThhMjcyZmYzYTQxNWM2ZTA3ZjNkYjA5ODg3NzdmZGVjODQ1YTk3YmY3ZDEwMmRkMDMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMjAyMTQ1NjRkNTU0MDI1YWY1OTllMzI3MDc5YjI3MjBlZjAwZGYzN2NmYjdjMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDAwNDYwOThkYzVmMmI5OWUzYmMyZWQ2NjQyZDdmMGE2MWVmYWJjMTVjMzhjNzYzMzNiY2NjZWVlZTM2OWE0ZjRhNWJkZGE4ZWE1OTI2NDEyNGU0MjlmMDg2MzI2ODNkZGJhMTdiYmYyNjJkODJiNmJlZmEzYjRlMTQ4MDM3NmE4YzdmM2M3ZDdlMmE2Nzc5YmJmMTgyNjJhYTg1N2RlOGMyMGExMmI2YTJjZThlNGQ3ZjMxZGQxYjE5NTM5MmNmNjE4NWFmY2UzNGFmZTA1ODk2MDU3YjM2ZTliMTcxYjZjNjdlZDdjMjI4NmNiZmE4M2ZmOGExNjdjN2JjNzEwOWFlZTdkN2UxOTA5YmQzODRmYmZjNjE5MzhlZmNhNTFjODk5M2M3MWRiMzE3NzMwZjE2ZTdlNzc2ODY3YWU0ZmRjNTYyZDZmMTVkZTU4NWU3Yjk0ZWY0OTZhMzY3NjM2N2EyY2JhYWI3YjYzNjY0OGIwMDc2YmFkNWNkZjFlMDk3NDBlYzZhNDUxYmZmNTM0ZWZhMjE1MDlmM2JhNzdiODEwMWI5MWVhN2U1NWRkYmZlMTQwMTUxNzA2N2Q3YjAxYTJhMDg3OWYwODg1Yzg5NGE4N2NmYjY4YzRkN2VlODkwNjA0ODgxYWViOTdjMjJkMWYzMzdlZjkyM2UwMzVhNjQwMDMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBkMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MDAzMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMzMDIxNDYyNDc3Mjk4NzU5ZThlMDQ3MThhZTU2MzE1NWYzNTIzY2ZiODRjZGIzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDZkMmNiYjM3ZmQxMjk1N2U1YTc0ODBjZTA0MzVlOGVmNjA3N2RlZjA4ZmYyNzA4NDRkZTI1MTZhNDc0MmYyMTFkOGM3NDY5MGJjMDk0OGUwOGEyOTZhYmJhOTI4NWY2YmIzMDViOTViN2Y5NDA4Y2U0NGU4Mzg4MGM3MTk0NDQ2NzJlYzk5NzQ2YmE3OGNjNGJkZTQ3NTMxOWQwMWJkZTc3YzQ5ZDU4ZDE2ZDNiMmU5MWMyZTYxZTgzMDNjYTNkN2VkYTM3OTdmZDhiMzVjYTcyYmIxNGIxNWEyNGI1NmJiNzBkYzEzNDg0NTY1ODA4MTEwZmY1ZGI1OGM1NmY3YTA0MzU2MDdlM2MzNTJmYmY0ZjU1MTA2ZjI5ODBmZDNjZDQyMzk3ZGJmNzEzN2VlN2YxZTMyY2Q4MGEzYjdhYjEyYjQ2YzE2OTIyMDI3OGQ3NzE3Yjc4YTNjNDVkNjM5NWExMzBhOGI1ODg0MWNiYzI5MGU0ZjgxN2RlM2E0ZmUxNmVjZDA3N2NhMzNhMGFhMjVlMjM1Y2M3ZjY2NTVhODBiYThhZWVjODc5MDViYjJhNzU0NTliN2JjYzVhMTMzZjI5OTM0OTNiNDFmZmNmNjNjZDdhMzkxZTNlNmY3ODA5NGNhNDQyYzgwMTQ0NDAzY2IwYTVmMDBiZmM2MWFlODgwIgogCiBQS0NTNyBQYXJzZSBGYWlsdXJlIEludmFsaWQgQVNOMTogQ2hhbmdlIGxlbmd0aCBmcm9tIDEyIHRvIDExICM3NTEuMAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHBrY3M3X2FzbjFfZmFpbDoiMzA4MjA0OWQwNjA5MmE4NjQ4ODZmNzBkMDEwNzAyYTA4MjA0OGUzMDgyMDQ4YTAyMDEwMTMxMGYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBiMDYwOTJhODY0ODg2ZjcwZDAxMDcwMTMxODIwNDY1MzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDViZWNkODcxOTVjMWRlZmY5MGMyNGM5MTI2OWI1NWIzZjA2OWJjMjI1YzMyNmMzMTRjMWE1MTc4NmZmZTE0YzgzMGJlNGU0YmM3M2NiYTM2Yzk3Njc3YjQ0MTY4Mjc5YmU5MWU3Y2RmN2MxOTM4NmFlMjE4NjI3MTlkMTNhM2EwZmZmMDgwM2Q0NjA5NjJmMmNkYTgzNzE0ODQ4NzMyNTJjM2Q3MDU0ZGI4MTQzZTJiMDgxYTM4MTZlZDA4MDRjYTUwOTlhZTVmZWNlODNkNWMyYzM3ODNiMTk4OGI0YjQ2ZGM5NGU1NTU4N2ExMDdlYTE1NDZiZjIyZDI4YTA5N2Y2NTJhNDA2NmRjMjk2NTI2OTA2OWFmMmY1MTc2YmI4Y2U5Y2E2ZDExZjk2NzU3ZjAzMjA0Zjc1NjcwMzU4N2QwMGFkNDI0Nzk2YzkyZmM3YWViNmY0OTQ0MzE5OTllZGEzMDk5MGU0ZjU3NzM2MzJlZDI1OGZlMDI3NjY3MzU5OWRhNmZjZTM1Y2RhZDc3MjZhMGJiMDI0Y2FkOTk2Yjg4ZTBjYjk4ODU0Y2ViNWMwYjZlYzc0OGQ5ZjljZTZhNmNkNDM3ODU4YmFjYjgxNDYxOGEyNzJmZjNhNDE1YzZlMDdmM2RiMDk4ODc3N2ZkZWM4NDVhOTdiZjdkMTAyZGQwMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMyMDIxNDU2NGQ1NTQwMjVhZjU5OWUzMjcwNzliMjcyMGVmMDBkZjM3Y2ZiN2MzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDA0NjA5OGRjNWYyYjk5ZTNiYzJlZDY2NDJkN2YwYTYxZWZhYmMxNWMzOGM3NjMzM2JjY2NlZWVlMzY5YTRmNGE1YmRkYThlYTU5MjY0MTI0ZTQyOWYwODYzMjY4M2RkYmExN2JiZjI2MmQ4MmI2YmVmYTNiNGUxNDgwMzc2YThjN2YzYzdkN2UyYTY3NzliYmYxODI2MmFhODU3ZGU4YzIwYTEyYjZhMmNlOGU0ZDdmMzFkZDFiMTk1MzkyY2Y2MTg1YWZjZTM0YWZlMDU4OTYwNTdiMzZlOWIxNzFiNmM2N2VkN2MyMjg2Y2JmYTgzZmY4YTE2N2M3YmM3MTA5YWVlN2Q3ZTE5MDliZDM4NGZiZmM2MTkzOGVmY2E1MWM4OTkzYzcxZGIzMTc3MzBmMTZlN2U3NzY4NjdhZTRmZGM1NjJkNmYxNWRlNTg1ZTdiOTRlZjQ5NmEzNjc2MzY3YTJjYmFhYjdiNjM2NjQ4YjAwNzZiYWQ1Y2RmMWUwOTc0MGVjNmE0NTFiZmY1MzRlZmEyMTUwOWYzYmE3N2I4MTAxYjkxZWE3ZTU1ZGRiZmUxNDAxNTE3MDY3ZDdiMDFhMmEwODc5ZjA4ODVjODk0YTg3Y2ZiNjhjNGQ3ZWU4OTA2MDQ4ODFhZWI5N2MyMmQxZjMzN2VmOTIzZTAzNWE2NDAwMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGIwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMzMDIxNDYyNDc3Mjk4NzU5ZThlMDQ3MThhZTU2MzE1NWYzNTIzY2ZiODRjZGIzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDZkMmNiYjM3ZmQxMjk1N2U1YTc0ODBjZTA0MzVlOGVmNjA3N2RlZjA4ZmYyNzA4NDRkZTI1MTZhNDc0MmYyMTFkOGM3NDY5MGJjMDk0OGUwOGEyOTZhYmJhOTI4NWY2YmIzMDViOTViN2Y5NDA4Y2U0NGU4Mzg4MGM3MTk0NDQ2NzJlYzk5NzQ2YmE3OGNjNGJkZTQ3NTMxOWQwMWJkZTc3YzQ5ZDU4ZDE2ZDNiMmU5MWMyZTYxZTgzMDNjYTNkN2VkYTM3OTdmZDhiMzVjYTcyYmIxNGIxNWEyNGI1NmJiNzBkYzEzNDg0NTY1ODA4MTEwZmY1ZGI1OGM1NmY3YTA0MzU2MDdlM2MzNTJmYmY0ZjU1MTA2ZjI5ODBmZDNjZDQyMzk3ZGJmNzEzN2VlN2YxZTMyY2Q4MGEzYjdhYjEyYjQ2YzE2OTIyMDI3OGQ3NzE3Yjc4YTNjNDVkNjM5NWExMzBhOGI1ODg0MWNiYzI5MGU0ZjgxN2RlM2E0ZmUxNmVjZDA3N2NhMzNhMGFhMjVlMjM1Y2M3ZjY2NTVhODBiYThhZWVjODc5MDViYjJhNzU0NTliN2JjYzVhMTMzZjI5OTM0OTNiNDFmZmNmNjNjZDdhMzkxZTNlNmY3ODA5NGNhNDQyYzgwMTQ0NDAzY2IwYTVmMDBiZmM2MWFlODgwIgogCiBQS0NTNyBQYXJzZSBGYWlsdXJlIEludmFsaWQgQVNOMTogQ2hhbmdlIHRhZyAwNiB0byAwMiAjNzUyLjAKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBwa2NzN19hc24xX2ZhaWw6IjMwODIwNDlkMDYwOTJhODY0ODg2ZjcwZDAxMDcwMmEwODIwNDhlMzA4MjA0OGEwMjAxMDEzMTBmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwYjA2MDkyYTg2NDg4NmY3MGQwMTA3MDEzMTgyMDQ2NTMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTAyMTQ3YmRlZGRkMjQ0NGNkMWNkZmU1YzQxYTgxMDJjODliN2RmMmU2Y2JmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDA1YmVjZDg3MTk1YzFkZWZmOTBjMjRjOTEyNjliNTViM2YwNjliYzIyNWMzMjZjMzE0YzFhNTE3ODZmZmUxNGM4MzBiZTRlNGJjNzNjYmEzNmM5NzY3N2I0NDE2ODI3OWJlOTFlN2NkZjdjMTkzODZhZTIxODYyNzE5ZDEzYTNhMGZmZjA4MDNkNDYwOTYyZjJjZGE4MzcxNDg0ODczMjUyYzNkNzA1NGRiODE0M2UyYjA4MWEzODE2ZWQwODA0Y2E1MDk5YWU1ZmVjZTgzZDVjMmMzNzgzYjE5ODhiNGI0NmRjOTRlNTU1ODdhMTA3ZWExNTQ2YmYyMmQyOGEwOTdmNjUyYTQwNjZkYzI5NjUyNjkwNjlhZjJmNTE3NmJiOGNlOWNhNmQxMWY5Njc1N2YwMzIwNGY3NTY3MDM1ODdkMDBhZDQyNDc5NmM5MmZjN2FlYjZmNDk0NDMxOTk5ZWRhMzA5OTBlNGY1NzczNjMyZWQyNThmZTAyNzY2NzM1OTlkYTZmY2UzNWNkYWQ3NzI2YTBiYjAyNGNhZDk5NmI4OGUwY2I5ODg1NGNlYjVjMGI2ZWM3NDhkOWY5Y2U2YTZjZDQzNzg1OGJhY2I4MTQ2MThhMjcyZmYzYTQxNWM2ZTA3ZjNkYjA5ODg3NzdmZGVjODQ1YTk3YmY3ZDEwMmRkMDMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMjAyMTQ1NjRkNTU0MDI1YWY1OTllMzI3MDc5YjI3MjBlZjAwZGYzN2NmYjdjMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDAwNDYwOThkYzVmMmI5OWUzYmMyZWQ2NjQyZDdmMGE2MWVmYWJjMTVjMzhjNzYzMzNiY2NjZWVlZTM2OWE0ZjRhNWJkZGE4ZWE1OTI2NDEyNGU0MjlmMDg2MzI2ODNkZGJhMTdiYmYyNjJkODJiNmJlZmEzYjRlMTQ4MDM3NmE4YzdmM2M3ZDdlMmE2Nzc5YmJmMTgyNjJhYTg1N2RlOGMyMGExMmI2YTJjZThlNGQ3ZjMxZGQxYjE5NTM5MmNmNjE4NWFmY2UzNGFmZTA1ODk2MDU3YjM2ZTliMTcxYjZjNjdlZDdjMjI4NmNiZmE4M2ZmOGExNjdjN2JjNzEwOWFlZTdkN2UxOTA5YmQzODRmYmZjNjE5MzhlZmNhNTFjODk5M2M3MWRiMzE3NzMwZjE2ZTdlNzc2ODY3YWU0ZmRjNTYyZDZmMTVkZTU4NWU3Yjk0ZWY0OTZhMzY3NjM2N2EyY2JhYWI3YjYzNjY0OGIwMDc2YmFkNWNkZjFlMDk3NDBlYzZhNDUxYmZmNTM0ZWZhMjE1MDlmM2JhNzdiODEwMWI5MWVhN2U1NWRkYmZlMTQwMTUxNzA2N2Q3YjAxYTJhMDg3OWYwODg1Yzg5NGE4N2NmYjY4YzRkN2VlODkwNjA0ODgxYWViOTdjMjJkMWYzMzdlZjkyM2UwMzVhNjQwMDMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDIwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMzAyMTQ2MjQ3NzI5ODc1OWU4ZTA0NzE4YWU1NjMxNTVmMzUyM2NmYjg0Y2RiMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDA2ZDJjYmIzN2ZkMTI5NTdlNWE3NDgwY2UwNDM1ZThlZjYwNzdkZWYwOGZmMjcwODQ0ZGUyNTE2YTQ3NDJmMjExZDhjNzQ2OTBiYzA5NDhlMDhhMjk2YWJiYTkyODVmNmJiMzA1Yjk1YjdmOTQwOGNlNDRlODM4ODBjNzE5NDQ0NjcyZWM5OTc0NmJhNzhjYzRiZGU0NzUzMTlkMDFiZGU3N2M0OWQ1OGQxNmQzYjJlOTFjMmU2MWU4MzAzY2EzZDdlZGEzNzk3ZmQ4YjM1Y2E3MmJiMTRiMTVhMjRiNTZiYjcwZGMxMzQ4NDU2NTgwODExMGZmNWRiNThjNTZmN2EwNDM1NjA3ZTNjMzUyZmJmNGY1NTEwNmYyOTgwZmQzY2Q0MjM5N2RiZjcxMzdlZTdmMWUzMmNkODBhM2I3YWIxMmI0NmMxNjkyMjAyNzhkNzcxN2I3OGEzYzQ1ZDYzOTVhMTMwYThiNTg4NDFjYmMyOTBlNGY4MTdkZTNhNGZlMTZlY2QwNzdjYTMzYTBhYTI1ZTIzNWNjN2Y2NjU1YTgwYmE4YWVlYzg3OTA1YmIyYTc1NDU5YjdiY2M1YTEzM2YyOTkzNDkzYjQxZmZjZjYzY2Q3YTM5MWUzZTZmNzgwOTRjYTQ0MmM4MDE0NDQwM2NiMGE1ZjAwYmZjNjFhZTg4MCIKIAogUEtDUzcgUGFyc2UgRmFpbHVyZSBJbnZhbGlkIEFTTjE6IENoYW5nZSBsZW5ndGggZnJvbSAzIHRvIDQgIzc1My4wCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NgogcGtjczdfYXNuMV9mYWlsOiIzMDgyMDQ5ZDA2MDkyYTg2NDg4NmY3MGQwMTA3MDJhMDgyMDQ4ZTMwODIwNDhhMDIwMTAxMzEwZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGIwNjA5MmE4NjQ4ODZmNzBkMDEwNzAxMzE4MjA0NjUzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwNWJlY2Q4NzE5NWMxZGVmZjkwYzI0YzkxMjY5YjU1YjNmMDY5YmMyMjVjMzI2YzMxNGMxYTUxNzg2ZmZlMTRjODMwYmU0ZTRiYzczY2JhMzZjOTc2NzdiNDQxNjgyNzliZTkxZTdjZGY3YzE5Mzg2YWUyMTg2MjcxOWQxM2EzYTBmZmYwODAzZDQ2MDk2MmYyY2RhODM3MTQ4NDg3MzI1MmMzZDcwNTRkYjgxNDNlMmIwODFhMzgxNmVkMDgwNGNhNTA5OWFlNWZlY2U4M2Q1YzJjMzc4M2IxOTg4YjRiNDZkYzk0ZTU1NTg3YTEwN2VhMTU0NmJmMjJkMjhhMDk3ZjY1MmE0MDY2ZGMyOTY1MjY5MDY5YWYyZjUxNzZiYjhjZTljYTZkMTFmOTY3NTdmMDMyMDRmNzU2NzAzNTg3ZDAwYWQ0MjQ3OTZjOTJmYzdhZWI2ZjQ5NDQzMTk5OWVkYTMwOTkwZTRmNTc3MzYzMmVkMjU4ZmUwMjc2NjczNTk5ZGE2ZmNlMzVjZGFkNzcyNmEwYmIwMjRjYWQ5OTZiODhlMGNiOTg4NTRjZWI1YzBiNmVjNzQ4ZDlmOWNlNmE2Y2Q0Mzc4NThiYWNiODE0NjE4YTI3MmZmM2E0MTVjNmUwN2YzZGIwOTg4Nzc3ZmRlYzg0NWE5N2JmN2QxMDJkZDAzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzIwMjE0NTY0ZDU1NDAyNWFmNTk5ZTMyNzA3OWIyNzIwZWYwMGRmMzdjZmI3YzMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwMDQ2MDk4ZGM1ZjJiOTllM2JjMmVkNjY0MmQ3ZjBhNjFlZmFiYzE1YzM4Yzc2MzMzYmNjY2VlZWUzNjlhNGY0YTViZGRhOGVhNTkyNjQxMjRlNDI5ZjA4NjMyNjgzZGRiYTE3YmJmMjYyZDgyYjZiZWZhM2I0ZTE0ODAzNzZhOGM3ZjNjN2Q3ZTJhNjc3OWJiZjE4MjYyYWE4NTdkZThjMjBhMTJiNmEyY2U4ZTRkN2YzMWRkMWIxOTUzOTJjZjYxODVhZmNlMzRhZmUwNTg5NjA1N2IzNmU5YjE3MWI2YzY3ZWQ3YzIyODZjYmZhODNmZjhhMTY3YzdiYzcxMDlhZWU3ZDdlMTkwOWJkMzg0ZmJmYzYxOTM4ZWZjYTUxYzg5OTNjNzFkYjMxNzczMGYxNmU3ZTc3Njg2N2FlNGZkYzU2MmQ2ZjE1ZGU1ODVlN2I5NGVmNDk2YTM2NzYzNjdhMmNiYWFiN2I2MzY2NDhiMDA3NmJhZDVjZGYxZTA5NzQwZWM2YTQ1MWJmZjUzNGVmYTIxNTA5ZjNiYTc3YjgxMDFiOTFlYTdlNTVkZGJmZTE0MDE1MTcwNjdkN2IwMWEyYTA4NzlmMDg4NWM4OTRhODdjZmI2OGM0ZDdlZTg5MDYwNDg4MWFlYjk3YzIyZDFmMzM3ZWY5MjNlMDM1YTY0MDAzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDQ1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzMwMjE0NjI0NzcyOTg3NTllOGUwNDcxOGFlNTYzMTU1ZjM1MjNjZmI4NGNkYjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwNmQyY2JiMzdmZDEyOTU3ZTVhNzQ4MGNlMDQzNWU4ZWY2MDc3ZGVmMDhmZjI3MDg0NGRlMjUxNmE0NzQyZjIxMWQ4Yzc0NjkwYmMwOTQ4ZTA4YTI5NmFiYmE5Mjg1ZjZiYjMwNWI5NWI3Zjk0MDhjZTQ0ZTgzODgwYzcxOTQ0NDY3MmVjOTk3NDZiYTc4Y2M0YmRlNDc1MzE5ZDAxYmRlNzdjNDlkNThkMTZkM2IyZTkxYzJlNjFlODMwM2NhM2Q3ZWRhMzc5N2ZkOGIzNWNhNzJiYjE0YjE1YTI0YjU2YmI3MGRjMTM0ODQ1NjU4MDgxMTBmZjVkYjU4YzU2ZjdhMDQzNTYwN2UzYzM1MmZiZjRmNTUxMDZmMjk4MGZkM2NkNDIzOTdkYmY3MTM3ZWU3ZjFlMzJjZDgwYTNiN2FiMTJiNDZjMTY5MjIwMjc4ZDc3MTdiNzhhM2M0NWQ2Mzk1YTEzMGE4YjU4ODQxY2JjMjkwZTRmODE3ZGUzYTRmZTE2ZWNkMDc3Y2EzM2EwYWEyNWUyMzVjYzdmNjY1NWE4MGJhOGFlZWM4NzkwNWJiMmE3NTQ1OWI3YmNjNWExMzNmMjk5MzQ5M2I0MWZmY2Y2M2NkN2EzOTFlM2U2Zjc4MDk0Y2E0NDJjODAxNDQ0MDNjYjBhNWYwMGJmYzYxYWU4ODAiCiAKIFBLQ1M3IFBhcnNlIEZhaWx1cmUgSW52YWxpZCBBU04xOiBDaGFuZ2UgbGVuZ3RoIGZyb20gMyB0byAyICM3NTQuMAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHBrY3M3X2FzbjFfZmFpbDoiMzA4MjA0OWQwNjA5MmE4NjQ4ODZmNzBkMDEwNzAyYTA4MjA0OGUzMDgyMDQ4YTAyMDEwMTMxMGYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBiMDYwOTJhODY0ODg2ZjcwZDAxMDcwMTMxODIwNDY1MzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDViZWNkODcxOTVjMWRlZmY5MGMyNGM5MTI2OWI1NWIzZjA2OWJjMjI1YzMyNmMzMTRjMWE1MTc4NmZmZTE0YzgzMGJlNGU0YmM3M2NiYTM2Yzk3Njc3YjQ0MTY4Mjc5YmU5MWU3Y2RmN2MxOTM4NmFlMjE4NjI3MTlkMTNhM2EwZmZmMDgwM2Q0NjA5NjJmMmNkYTgzNzE0ODQ4NzMyNTJjM2Q3MDU0ZGI4MTQzZTJiMDgxYTM4MTZlZDA4MDRjYTUwOTlhZTVmZWNlODNkNWMyYzM3ODNiMTk4OGI0YjQ2ZGM5NGU1NTU4N2ExMDdlYTE1NDZiZjIyZDI4YTA5N2Y2NTJhNDA2NmRjMjk2NTI2OTA2OWFmMmY1MTc2YmI4Y2U5Y2E2ZDExZjk2NzU3ZjAzMjA0Zjc1NjcwMzU4N2QwMGFkNDI0Nzk2YzkyZmM3YWViNmY0OTQ0MzE5OTllZGEzMDk5MGU0ZjU3NzM2MzJlZDI1OGZlMDI3NjY3MzU5OWRhNmZjZTM1Y2RhZDc3MjZhMGJiMDI0Y2FkOTk2Yjg4ZTBjYjk4ODU0Y2ViNWMwYjZlYzc0OGQ5ZjljZTZhNmNkNDM3ODU4YmFjYjgxNDYxOGEyNzJmZjNhNDE1YzZlMDdmM2RiMDk4ODc3N2ZkZWM4NDVhOTdiZjdkMTAyZGQwMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMyMDIxNDU2NGQ1NTQwMjVhZjU5OWUzMjcwNzliMjcyMGVmMDBkZjM3Y2ZiN2MzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDA0NjA5OGRjNWYyYjk5ZTNiYzJlZDY2NDJkN2YwYTYxZWZhYmMxNWMzOGM3NjMzM2JjY2NlZWVlMzY5YTRmNGE1YmRkYThlYTU5MjY0MTI0ZTQyOWYwODYzMjY4M2RkYmExN2JiZjI2MmQ4MmI2YmVmYTNiNGUxNDgwMzc2YThjN2YzYzdkN2UyYTY3NzliYmYxODI2MmFhODU3ZGU4YzIwYTEyYjZhMmNlOGU0ZDdmMzFkZDFiMTk1MzkyY2Y2MTg1YWZjZTM0YWZlMDU4OTYwNTdiMzZlOWIxNzFiNmM2N2VkN2MyMjg2Y2JmYTgzZmY4YTE2N2M3YmM3MTA5YWVlN2Q3ZTE5MDliZDM4NGZiZmM2MTkzOGVmY2E1MWM4OTkzYzcxZGIzMTc3MzBmMTZlN2U3NzY4NjdhZTRmZGM1NjJkNmYxNWRlNTg1ZTdiOTRlZjQ5NmEzNjc2MzY3YTJjYmFhYjdiNjM2NjQ4YjAwNzZiYWQ1Y2RmMWUwOTc0MGVjNmE0NTFiZmY1MzRlZmEyMTUwOWYzYmE3N2I4MTAxYjkxZWE3ZTU1ZGRiZmUxNDAxNTE3MDY3ZDdiMDFhMmEwODc5ZjA4ODVjODk0YTg3Y2ZiNjhjNGQ3ZWU4OTA2MDQ4ODFhZWI5N2MyMmQxZjMzN2VmOTIzZTAzNWE2NDAwMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAyNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMzMDIxNDYyNDc3Mjk4NzU5ZThlMDQ3MThhZTU2MzE1NWYzNTIzY2ZiODRjZGIzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDZkMmNiYjM3ZmQxMjk1N2U1YTc0ODBjZTA0MzVlOGVmNjA3N2RlZjA4ZmYyNzA4NDRkZTI1MTZhNDc0MmYyMTFkOGM3NDY5MGJjMDk0OGUwOGEyOTZhYmJhOTI4NWY2YmIzMDViOTViN2Y5NDA4Y2U0NGU4Mzg4MGM3MTk0NDQ2NzJlYzk5NzQ2YmE3OGNjNGJkZTQ3NTMxOWQwMWJkZTc3YzQ5ZDU4ZDE2ZDNiMmU5MWMyZTYxZTgzMDNjYTNkN2VkYTM3OTdmZDhiMzVjYTcyYmIxNGIxNWEyNGI1NmJiNzBkYzEzNDg0NTY1ODA4MTEwZmY1ZGI1OGM1NmY3YTA0MzU2MDdlM2MzNTJmYmY0ZjU1MTA2ZjI5ODBmZDNjZDQyMzk3ZGJmNzEzN2VlN2YxZTMyY2Q4MGEzYjdhYjEyYjQ2YzE2OTIyMDI3OGQ3NzE3Yjc4YTNjNDVkNjM5NWExMzBhOGI1ODg0MWNiYzI5MGU0ZjgxN2RlM2E0ZmUxNmVjZDA3N2NhMzNhMGFhMjVlMjM1Y2M3ZjY2NTVhODBiYThhZWVjODc5MDViYjJhNzU0NTliN2JjYzVhMTMzZjI5OTM0OTNiNDFmZmNmNjNjZDdhMzkxZTNlNmY3ODA5NGNhNDQyYzgwMTQ0NDAzY2IwYTVmMDBiZmM2MWFlODgwIgogCiBQS0NTNyBQYXJzZSBGYWlsdXJlIEludmFsaWQgQVNOMTogQ2hhbmdlIHRhZyAwYyB0byAwMiAjNzU1LjAKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBwa2NzN19hc24xX2ZhaWw6IjMwODIwNDlkMDYwOTJhODY0ODg2ZjcwZDAxMDcwMmEwODIwNDhlMzA4MjA0OGEwMjAxMDEzMTBmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwYjA2MDkyYTg2NDg4NmY3MGQwMTA3MDEzMTgyMDQ2NTMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTAyMTQ3YmRlZGRkMjQ0NGNkMWNkZmU1YzQxYTgxMDJjODliN2RmMmU2Y2JmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDA1YmVjZDg3MTk1YzFkZWZmOTBjMjRjOTEyNjliNTViM2YwNjliYzIyNWMzMjZjMzE0YzFhNTE3ODZmZmUxNGM4MzBiZTRlNGJjNzNjYmEzNmM5NzY3N2I0NDE2ODI3OWJlOTFlN2NkZjdjMTkzODZhZTIxODYyNzE5ZDEzYTNhMGZmZjA4MDNkNDYwOTYyZjJjZGE4MzcxNDg0ODczMjUyYzNkNzA1NGRiODE0M2UyYjA4MWEzODE2ZWQwODA0Y2E1MDk5YWU1ZmVjZTgzZDVjMmMzNzgzYjE5ODhiNGI0NmRjOTRlNTU1ODdhMTA3ZWExNTQ2YmYyMmQyOGEwOTdmNjUyYTQwNjZkYzI5NjUyNjkwNjlhZjJmNTE3NmJiOGNlOWNhNmQxMWY5Njc1N2YwMzIwNGY3NTY3MDM1ODdkMDBhZDQyNDc5NmM5MmZjN2FlYjZmNDk0NDMxOTk5ZWRhMzA5OTBlNGY1NzczNjMyZWQyNThmZTAyNzY2NzM1OTlkYTZmY2UzNWNkYWQ3NzI2YTBiYjAyNGNhZDk5NmI4OGUwY2I5ODg1NGNlYjVjMGI2ZWM3NDhkOWY5Y2U2YTZjZDQzNzg1OGJhY2I4MTQ2MThhMjcyZmYzYTQxNWM2ZTA3ZjNkYjA5ODg3NzdmZGVjODQ1YTk3YmY3ZDEwMmRkMDMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMjAyMTQ1NjRkNTU0MDI1YWY1OTllMzI3MDc5YjI3MjBlZjAwZGYzN2NmYjdjMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDAwNDYwOThkYzVmMmI5OWUzYmMyZWQ2NjQyZDdmMGE2MWVmYWJjMTVjMzhjNzYzMzNiY2NjZWVlZTM2OWE0ZjRhNWJkZGE4ZWE1OTI2NDEyNGU0MjlmMDg2MzI2ODNkZGJhMTdiYmYyNjJkODJiNmJlZmEzYjRlMTQ4MDM3NmE4YzdmM2M3ZDdlMmE2Nzc5YmJmMTgyNjJhYTg1N2RlOGMyMGExMmI2YTJjZThlNGQ3ZjMxZGQxYjE5NTM5MmNmNjE4NWFmY2UzNGFmZTA1ODk2MDU3YjM2ZTliMTcxYjZjNjdlZDdjMjI4NmNiZmE4M2ZmOGExNjdjN2JjNzEwOWFlZTdkN2UxOTA5YmQzODRmYmZjNjE5MzhlZmNhNTFjODk5M2M3MWRiMzE3NzMwZjE2ZTdlNzc2ODY3YWU0ZmRjNTYyZDZmMTVkZTU4NWU3Yjk0ZWY0OTZhMzY3NjM2N2EyY2JhYWI3YjYzNjY0OGIwMDc2YmFkNWNkZjFlMDk3NDBlYzZhNDUxYmZmNTM0ZWZhMjE1MDlmM2JhNzdiODEwMWI5MWVhN2U1NWRkYmZlMTQwMTUxNzA2N2Q3YjAxYTJhMDg3OWYwODg1Yzg5NGE4N2NmYjY4YzRkN2VlODkwNjA0ODgxYWViOTdjMjJkMWYzMzdlZjkyM2UwMzVhNjQwMDMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTAyMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMzAyMTQ2MjQ3NzI5ODc1OWU4ZTA0NzE4YWU1NjMxNTVmMzUyM2NmYjg0Y2RiMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDA2ZDJjYmIzN2ZkMTI5NTdlNWE3NDgwY2UwNDM1ZThlZjYwNzdkZWYwOGZmMjcwODQ0ZGUyNTE2YTQ3NDJmMjExZDhjNzQ2OTBiYzA5NDhlMDhhMjk2YWJiYTkyODVmNmJiMzA1Yjk1YjdmOTQwOGNlNDRlODM4ODBjNzE5NDQ0NjcyZWM5OTc0NmJhNzhjYzRiZGU0NzUzMTlkMDFiZGU3N2M0OWQ1OGQxNmQzYjJlOTFjMmU2MWU4MzAzY2EzZDdlZGEzNzk3ZmQ4YjM1Y2E3MmJiMTRiMTVhMjRiNTZiYjcwZGMxMzQ4NDU2NTgwODExMGZmNWRiNThjNTZmN2EwNDM1NjA3ZTNjMzUyZmJmNGY1NTEwNmYyOTgwZmQzY2Q0MjM5N2RiZjcxMzdlZTdmMWUzMmNkODBhM2I3YWIxMmI0NmMxNjkyMjAyNzhkNzcxN2I3OGEzYzQ1ZDYzOTVhMTMwYThiNTg4NDFjYmMyOTBlNGY4MTdkZTNhNGZlMTZlY2QwNzdjYTMzYTBhYTI1ZTIzNWNjN2Y2NjU1YTgwYmE4YWVlYzg3OTA1YmIyYTc1NDU5YjdiY2M1YTEzM2YyOTkzNDkzYjQxZmZjZjYzY2Q3YTM5MWUzZTZmNzgwOTRjYTQ0MmM4MDE0NDQwM2NiMGE1ZjAwYmZjNjFhZTg4MCIKIAogUEtDUzcgUGFyc2UgRmFpbHVyZSBJbnZhbGlkIEFTTjE6IENoYW5nZSBsZW5ndGggZnJvbSA1IHRvIDYgIzc1Ni4wCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NgogcGtjczdfYXNuMV9mYWlsOiIzMDgyMDQ5ZDA2MDkyYTg2NDg4NmY3MGQwMTA3MDJhMDgyMDQ4ZTMwODIwNDhhMDIwMTAxMzEwZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGIwNjA5MmE4NjQ4ODZmNzBkMDEwNzAxMzE4MjA0NjUzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwNWJlY2Q4NzE5NWMxZGVmZjkwYzI0YzkxMjY5YjU1YjNmMDY5YmMyMjVjMzI2YzMxNGMxYTUxNzg2ZmZlMTRjODMwYmU0ZTRiYzczY2JhMzZjOTc2NzdiNDQxNjgyNzliZTkxZTdjZGY3YzE5Mzg2YWUyMTg2MjcxOWQxM2EzYTBmZmYwODAzZDQ2MDk2MmYyY2RhODM3MTQ4NDg3MzI1MmMzZDcwNTRkYjgxNDNlMmIwODFhMzgxNmVkMDgwNGNhNTA5OWFlNWZlY2U4M2Q1YzJjMzc4M2IxOTg4YjRiNDZkYzk0ZTU1NTg3YTEwN2VhMTU0NmJmMjJkMjhhMDk3ZjY1MmE0MDY2ZGMyOTY1MjY5MDY5YWYyZjUxNzZiYjhjZTljYTZkMTFmOTY3NTdmMDMyMDRmNzU2NzAzNTg3ZDAwYWQ0MjQ3OTZjOTJmYzdhZWI2ZjQ5NDQzMTk5OWVkYTMwOTkwZTRmNTc3MzYzMmVkMjU4ZmUwMjc2NjczNTk5ZGE2ZmNlMzVjZGFkNzcyNmEwYmIwMjRjYWQ5OTZiODhlMGNiOTg4NTRjZWI1YzBiNmVjNzQ4ZDlmOWNlNmE2Y2Q0Mzc4NThiYWNiODE0NjE4YTI3MmZmM2E0MTVjNmUwN2YzZGIwOTg4Nzc3ZmRlYzg0NWE5N2JmN2QxMDJkZDAzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzIwMjE0NTY0ZDU1NDAyNWFmNTk5ZTMyNzA3OWIyNzIwZWYwMGRmMzdjZmI3YzMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwMDQ2MDk4ZGM1ZjJiOTllM2JjMmVkNjY0MmQ3ZjBhNjFlZmFiYzE1YzM4Yzc2MzMzYmNjY2VlZWUzNjlhNGY0YTViZGRhOGVhNTkyNjQxMjRlNDI5ZjA4NjMyNjgzZGRiYTE3YmJmMjYyZDgyYjZiZWZhM2I0ZTE0ODAzNzZhOGM3ZjNjN2Q3ZTJhNjc3OWJiZjE4MjYyYWE4NTdkZThjMjBhMTJiNmEyY2U4ZTRkN2YzMWRkMWIxOTUzOTJjZjYxODVhZmNlMzRhZmUwNTg5NjA1N2IzNmU5YjE3MWI2YzY3ZWQ3YzIyODZjYmZhODNmZjhhMTY3YzdiYzcxMDlhZWU3ZDdlMTkwOWJkMzg0ZmJmYzYxOTM4ZWZjYTUxYzg5OTNjNzFkYjMxNzczMGYxNmU3ZTc3Njg2N2FlNGZkYzU2MmQ2ZjE1ZGU1ODVlN2I5NGVmNDk2YTM2NzYzNjdhMmNiYWFiN2I2MzY2NDhiMDA3NmJhZDVjZGYxZTA5NzQwZWM2YTQ1MWJmZjUzNGVmYTIxNTA5ZjNiYTc3YjgxMDFiOTFlYTdlNTVkZGJmZTE0MDE1MTcwNjdkN2IwMWEyYTA4NzlmMDg4NWM4OTRhODdjZmI2OGM0ZDdlZTg5MDYwNDg4MWFlYjk3YzIyZDFmMzM3ZWY5MjNlMDM1YTY0MDAzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA2NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzMwMjE0NjI0NzcyOTg3NTllOGUwNDcxOGFlNTYzMTU1ZjM1MjNjZmI4NGNkYjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwNmQyY2JiMzdmZDEyOTU3ZTVhNzQ4MGNlMDQzNWU4ZWY2MDc3ZGVmMDhmZjI3MDg0NGRlMjUxNmE0NzQyZjIxMWQ4Yzc0NjkwYmMwOTQ4ZTA4YTI5NmFiYmE5Mjg1ZjZiYjMwNWI5NWI3Zjk0MDhjZTQ0ZTgzODgwYzcxOTQ0NDY3MmVjOTk3NDZiYTc4Y2M0YmRlNDc1MzE5ZDAxYmRlNzdjNDlkNThkMTZkM2IyZTkxYzJlNjFlODMwM2NhM2Q3ZWRhMzc5N2ZkOGIzNWNhNzJiYjE0YjE1YTI0YjU2YmI3MGRjMTM0ODQ1NjU4MDgxMTBmZjVkYjU4YzU2ZjdhMDQzNTYwN2UzYzM1MmZiZjRmNTUxMDZmMjk4MGZkM2NkNDIzOTdkYmY3MTM3ZWU3ZjFlMzJjZDgwYTNiN2FiMTJiNDZjMTY5MjIwMjc4ZDc3MTdiNzhhM2M0NWQ2Mzk1YTEzMGE4YjU4ODQxY2JjMjkwZTRmODE3ZGUzYTRmZTE2ZWNkMDc3Y2EzM2EwYWEyNWUyMzVjYzdmNjY1NWE4MGJhOGFlZWM4NzkwNWJiMmE3NTQ1OWI3YmNjNWExMzNmMjk5MzQ5M2I0MWZmY2Y2M2NkN2EzOTFlM2U2Zjc4MDk0Y2E0NDJjODAxNDQ0MDNjYjBhNWYwMGJmYzYxYWU4ODAiCiAKIFBLQ1M3IFBhcnNlIEZhaWx1cmUgSW52YWxpZCBBU04xOiBDaGFuZ2UgbGVuZ3RoIGZyb20gNSB0byA0ICM3NTcuMAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHBrY3M3X2FzbjFfZmFpbDoiMzA4MjA0OWQwNjA5MmE4NjQ4ODZmNzBkMDEwNzAyYTA4MjA0OGUzMDgyMDQ4YTAyMDEwMTMxMGYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBiMDYwOTJhODY0ODg2ZjcwZDAxMDcwMTMxODIwNDY1MzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDViZWNkODcxOTVjMWRlZmY5MGMyNGM5MTI2OWI1NWIzZjA2OWJjMjI1YzMyNmMzMTRjMWE1MTc4NmZmZTE0YzgzMGJlNGU0YmM3M2NiYTM2Yzk3Njc3YjQ0MTY4Mjc5YmU5MWU3Y2RmN2MxOTM4NmFlMjE4NjI3MTlkMTNhM2EwZmZmMDgwM2Q0NjA5NjJmMmNkYTgzNzE0ODQ4NzMyNTJjM2Q3MDU0ZGI4MTQzZTJiMDgxYTM4MTZlZDA4MDRjYTUwOTlhZTVmZWNlODNkNWMyYzM3ODNiMTk4OGI0YjQ2ZGM5NGU1NTU4N2ExMDdlYTE1NDZiZjIyZDI4YTA5N2Y2NTJhNDA2NmRjMjk2NTI2OTA2OWFmMmY1MTc2YmI4Y2U5Y2E2ZDExZjk2NzU3ZjAzMjA0Zjc1NjcwMzU4N2QwMGFkNDI0Nzk2YzkyZmM3YWViNmY0OTQ0MzE5OTllZGEzMDk5MGU0ZjU3NzM2MzJlZDI1OGZlMDI3NjY3MzU5OWRhNmZjZTM1Y2RhZDc3MjZhMGJiMDI0Y2FkOTk2Yjg4ZTBjYjk4ODU0Y2ViNWMwYjZlYzc0OGQ5ZjljZTZhNmNkNDM3ODU4YmFjYjgxNDYxOGEyNzJmZjNhNDE1YzZlMDdmM2RiMDk4ODc3N2ZkZWM4NDVhOTdiZjdkMTAyZGQwMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMyMDIxNDU2NGQ1NTQwMjVhZjU5OWUzMjcwNzliMjcyMGVmMDBkZjM3Y2ZiN2MzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDA0NjA5OGRjNWYyYjk5ZTNiYzJlZDY2NDJkN2YwYTYxZWZhYmMxNWMzOGM3NjMzM2JjY2NlZWVlMzY5YTRmNGE1YmRkYThlYTU5MjY0MTI0ZTQyOWYwODYzMjY4M2RkYmExN2JiZjI2MmQ4MmI2YmVmYTNiNGUxNDgwMzc2YThjN2YzYzdkN2UyYTY3NzliYmYxODI2MmFhODU3ZGU4YzIwYTEyYjZhMmNlOGU0ZDdmMzFkZDFiMTk1MzkyY2Y2MTg1YWZjZTM0YWZlMDU4OTYwNTdiMzZlOWIxNzFiNmM2N2VkN2MyMjg2Y2JmYTgzZmY4YTE2N2M3YmM3MTA5YWVlN2Q3ZTE5MDliZDM4NGZiZmM2MTkzOGVmY2E1MWM4OTkzYzcxZGIzMTc3MzBmMTZlN2U3NzY4NjdhZTRmZGM1NjJkNmYxNWRlNTg1ZTdiOTRlZjQ5NmEzNjc2MzY3YTJjYmFhYjdiNjM2NjQ4YjAwNzZiYWQ1Y2RmMWUwOTc0MGVjNmE0NTFiZmY1MzRlZmEyMTUwOWYzYmE3N2I4MTAxYjkxZWE3ZTU1ZGRiZmUxNDAxNTE3MDY3ZDdiMDFhMmEwODc5ZjA4ODVjODk0YTg3Y2ZiNjhjNGQ3ZWU4OTA2MDQ4ODFhZWI5N2MyMmQxZjMzN2VmOTIzZTAzNWE2NDAwMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNDUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMzMDIxNDYyNDc3Mjk4NzU5ZThlMDQ3MThhZTU2MzE1NWYzNTIzY2ZiODRjZGIzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDZkMmNiYjM3ZmQxMjk1N2U1YTc0ODBjZTA0MzVlOGVmNjA3N2RlZjA4ZmYyNzA4NDRkZTI1MTZhNDc0MmYyMTFkOGM3NDY5MGJjMDk0OGUwOGEyOTZhYmJhOTI4NWY2YmIzMDViOTViN2Y5NDA4Y2U0NGU4Mzg4MGM3MTk0NDQ2NzJlYzk5NzQ2YmE3OGNjNGJkZTQ3NTMxOWQwMWJkZTc3YzQ5ZDU4ZDE2ZDNiMmU5MWMyZTYxZTgzMDNjYTNkN2VkYTM3OTdmZDhiMzVjYTcyYmIxNGIxNWEyNGI1NmJiNzBkYzEzNDg0NTY1ODA4MTEwZmY1ZGI1OGM1NmY3YTA0MzU2MDdlM2MzNTJmYmY0ZjU1MTA2ZjI5ODBmZDNjZDQyMzk3ZGJmNzEzN2VlN2YxZTMyY2Q4MGEzYjdhYjEyYjQ2YzE2OTIyMDI3OGQ3NzE3Yjc4YTNjNDVkNjM5NWExMzBhOGI1ODg0MWNiYzI5MGU0ZjgxN2RlM2E0ZmUxNmVjZDA3N2NhMzNhMGFhMjVlMjM1Y2M3ZjY2NTVhODBiYThhZWVjODc5MDViYjJhNzU0NTliN2JjYzVhMTMzZjI5OTM0OTNiNDFmZmNmNjNjZDdhMzkxZTNlNmY3ODA5NGNhNDQyYzgwMTQ0NDAzY2IwYTVmMDBiZmM2MWFlODgwIgogCiBQS0NTNyBQYXJzZSBGYWlsdXJlIEludmFsaWQgQVNOMTogQ2hhbmdlIHRhZyAzMSB0byAwMiAjNzU4LjAKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBwa2NzN19hc24xX2ZhaWw6IjMwODIwNDlkMDYwOTJhODY0ODg2ZjcwZDAxMDcwMmEwODIwNDhlMzA4MjA0OGEwMjAxMDEzMTBmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwYjA2MDkyYTg2NDg4NmY3MGQwMTA3MDEzMTgyMDQ2NTMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTAyMTQ3YmRlZGRkMjQ0NGNkMWNkZmU1YzQxYTgxMDJjODliN2RmMmU2Y2JmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDA1YmVjZDg3MTk1YzFkZWZmOTBjMjRjOTEyNjliNTViM2YwNjliYzIyNWMzMjZjMzE0YzFhNTE3ODZmZmUxNGM4MzBiZTRlNGJjNzNjYmEzNmM5NzY3N2I0NDE2ODI3OWJlOTFlN2NkZjdjMTkzODZhZTIxODYyNzE5ZDEzYTNhMGZmZjA4MDNkNDYwOTYyZjJjZGE4MzcxNDg0ODczMjUyYzNkNzA1NGRiODE0M2UyYjA4MWEzODE2ZWQwODA0Y2E1MDk5YWU1ZmVjZTgzZDVjMmMzNzgzYjE5ODhiNGI0NmRjOTRlNTU1ODdhMTA3ZWExNTQ2YmYyMmQyOGEwOTdmNjUyYTQwNjZkYzI5NjUyNjkwNjlhZjJmNTE3NmJiOGNlOWNhNmQxMWY5Njc1N2YwMzIwNGY3NTY3MDM1ODdkMDBhZDQyNDc5NmM5MmZjN2FlYjZmNDk0NDMxOTk5ZWRhMzA5OTBlNGY1NzczNjMyZWQyNThmZTAyNzY2NzM1OTlkYTZmY2UzNWNkYWQ3NzI2YTBiYjAyNGNhZDk5NmI4OGUwY2I5ODg1NGNlYjVjMGI2ZWM3NDhkOWY5Y2U2YTZjZDQzNzg1OGJhY2I4MTQ2MThhMjcyZmYzYTQxNWM2ZTA3ZjNkYjA5ODg3NzdmZGVjODQ1YTk3YmY3ZDEwMmRkMDMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMjAyMTQ1NjRkNTU0MDI1YWY1OTllMzI3MDc5YjI3MjBlZjAwZGYzN2NmYjdjMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDAwNDYwOThkYzVmMmI5OWUzYmMyZWQ2NjQyZDdmMGE2MWVmYWJjMTVjMzhjNzYzMzNiY2NjZWVlZTM2OWE0ZjRhNWJkZGE4ZWE1OTI2NDEyNGU0MjlmMDg2MzI2ODNkZGJhMTdiYmYyNjJkODJiNmJlZmEzYjRlMTQ4MDM3NmE4YzdmM2M3ZDdlMmE2Nzc5YmJmMTgyNjJhYTg1N2RlOGMyMGExMmI2YTJjZThlNGQ3ZjMxZGQxYjE5NTM5MmNmNjE4NWFmY2UzNGFmZTA1ODk2MDU3YjM2ZTliMTcxYjZjNjdlZDdjMjI4NmNiZmE4M2ZmOGExNjdjN2JjNzEwOWFlZTdkN2UxOTA5YmQzODRmYmZjNjE5MzhlZmNhNTFjODk5M2M3MWRiMzE3NzMwZjE2ZTdlNzc2ODY3YWU0ZmRjNTYyZDZmMTVkZTU4NWU3Yjk0ZWY0OTZhMzY3NjM2N2EyY2JhYWI3YjYzNjY0OGIwMDc2YmFkNWNkZjFlMDk3NDBlYzZhNDUxYmZmNTM0ZWZhMjE1MDlmM2JhNzdiODEwMWI5MWVhN2U1NWRkYmZlMTQwMTUxNzA2N2Q3YjAxYTJhMDg3OWYwODg1Yzg5NGE4N2NmYjY4YzRkN2VlODkwNjA0ODgxYWViOTdjMjJkMWYzMzdlZjkyM2UwMzVhNjQwMDMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MDIxNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMzAyMTQ2MjQ3NzI5ODc1OWU4ZTA0NzE4YWU1NjMxNTVmMzUyM2NmYjg0Y2RiMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDA2ZDJjYmIzN2ZkMTI5NTdlNWE3NDgwY2UwNDM1ZThlZjYwNzdkZWYwOGZmMjcwODQ0ZGUyNTE2YTQ3NDJmMjExZDhjNzQ2OTBiYzA5NDhlMDhhMjk2YWJiYTkyODVmNmJiMzA1Yjk1YjdmOTQwOGNlNDRlODM4ODBjNzE5NDQ0NjcyZWM5OTc0NmJhNzhjYzRiZGU0NzUzMTlkMDFiZGU3N2M0OWQ1OGQxNmQzYjJlOTFjMmU2MWU4MzAzY2EzZDdlZGEzNzk3ZmQ4YjM1Y2E3MmJiMTRiMTVhMjRiNTZiYjcwZGMxMzQ4NDU2NTgwODExMGZmNWRiNThjNTZmN2EwNDM1NjA3ZTNjMzUyZmJmNGY1NTEwNmYyOTgwZmQzY2Q0MjM5N2RiZjcxMzdlZTdmMWUzMmNkODBhM2I3YWIxMmI0NmMxNjkyMjAyNzhkNzcxN2I3OGEzYzQ1ZDYzOTVhMTMwYThiNTg4NDFjYmMyOTBlNGY4MTdkZTNhNGZlMTZlY2QwNzdjYTMzYTBhYTI1ZTIzNWNjN2Y2NjU1YTgwYmE4YWVlYzg3OTA1YmIyYTc1NDU5YjdiY2M1YTEzM2YyOTkzNDkzYjQxZmZjZjYzY2Q3YTM5MWUzZTZmNzgwOTRjYTQ0MmM4MDE0NDQwM2NiMGE1ZjAwYmZjNjFhZTg4MCIKIAogUEtDUzcgUGFyc2UgRmFpbHVyZSBJbnZhbGlkIEFTTjE6IENoYW5nZSBsZW5ndGggZnJvbSAyMSB0byAyMiAjNzU5LjAKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBwa2NzN19hc24xX2ZhaWw6IjMwODIwNDlkMDYwOTJhODY0ODg2ZjcwZDAxMDcwMmEwODIwNDhlMzA4MjA0OGEwMjAxMDEzMTBmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwYjA2MDkyYTg2NDg4NmY3MGQwMTA3MDEzMTgyMDQ2NTMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTAyMTQ3YmRlZGRkMjQ0NGNkMWNkZmU1YzQxYTgxMDJjODliN2RmMmU2Y2JmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDA1YmVjZDg3MTk1YzFkZWZmOTBjMjRjOTEyNjliNTViM2YwNjliYzIyNWMzMjZjMzE0YzFhNTE3ODZmZmUxNGM4MzBiZTRlNGJjNzNjYmEzNmM5NzY3N2I0NDE2ODI3OWJlOTFlN2NkZjdjMTkzODZhZTIxODYyNzE5ZDEzYTNhMGZmZjA4MDNkNDYwOTYyZjJjZGE4MzcxNDg0ODczMjUyYzNkNzA1NGRiODE0M2UyYjA4MWEzODE2ZWQwODA0Y2E1MDk5YWU1ZmVjZTgzZDVjMmMzNzgzYjE5ODhiNGI0NmRjOTRlNTU1ODdhMTA3ZWExNTQ2YmYyMmQyOGEwOTdmNjUyYTQwNjZkYzI5NjUyNjkwNjlhZjJmNTE3NmJiOGNlOWNhNmQxMWY5Njc1N2YwMzIwNGY3NTY3MDM1ODdkMDBhZDQyNDc5NmM5MmZjN2FlYjZmNDk0NDMxOTk5ZWRhMzA5OTBlNGY1NzczNjMyZWQyNThmZTAyNzY2NzM1OTlkYTZmY2UzNWNkYWQ3NzI2YTBiYjAyNGNhZDk5NmI4OGUwY2I5ODg1NGNlYjVjMGI2ZWM3NDhkOWY5Y2U2YTZjZDQzNzg1OGJhY2I4MTQ2MThhMjcyZmYzYTQxNWM2ZTA3ZjNkYjA5ODg3NzdmZGVjODQ1YTk3YmY3ZDEwMmRkMDMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMjAyMTQ1NjRkNTU0MDI1YWY1OTllMzI3MDc5YjI3MjBlZjAwZGYzN2NmYjdjMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDAwNDYwOThkYzVmMmI5OWUzYmMyZWQ2NjQyZDdmMGE2MWVmYWJjMTVjMzhjNzYzMzNiY2NjZWVlZTM2OWE0ZjRhNWJkZGE4ZWE1OTI2NDEyNGU0MjlmMDg2MzI2ODNkZGJhMTdiYmYyNjJkODJiNmJlZmEzYjRlMTQ4MDM3NmE4YzdmM2M3ZDdlMmE2Nzc5YmJmMTgyNjJhYTg1N2RlOGMyMGExMmI2YTJjZThlNGQ3ZjMxZGQxYjE5NTM5MmNmNjE4NWFmY2UzNGFmZTA1ODk2MDU3YjM2ZTliMTcxYjZjNjdlZDdjMjI4NmNiZmE4M2ZmOGExNjdjN2JjNzEwOWFlZTdkN2UxOTA5YmQzODRmYmZjNjE5MzhlZmNhNTFjODk5M2M3MWRiMzE3NzMwZjE2ZTdlNzc2ODY3YWU0ZmRjNTYyZDZmMTVkZTU4NWU3Yjk0ZWY0OTZhMzY3NjM2N2EyY2JhYWI3YjYzNjY0OGIwMDc2YmFkNWNkZjFlMDk3NDBlYzZhNDUxYmZmNTM0ZWZhMjE1MDlmM2JhNzdiODEwMWI5MWVhN2U1NWRkYmZlMTQwMTUxNzA2N2Q3YjAxYTJhMDg3OWYwODg1Yzg5NGE4N2NmYjY4YzRkN2VlODkwNjA0ODgxYWViOTdjMjJkMWYzMzdlZjkyM2UwMzVhNjQwMDMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNjMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMzAyMTQ2MjQ3NzI5ODc1OWU4ZTA0NzE4YWU1NjMxNTVmMzUyM2NmYjg0Y2RiMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDA2ZDJjYmIzN2ZkMTI5NTdlNWE3NDgwY2UwNDM1ZThlZjYwNzdkZWYwOGZmMjcwODQ0ZGUyNTE2YTQ3NDJmMjExZDhjNzQ2OTBiYzA5NDhlMDhhMjk2YWJiYTkyODVmNmJiMzA1Yjk1YjdmOTQwOGNlNDRlODM4ODBjNzE5NDQ0NjcyZWM5OTc0NmJhNzhjYzRiZGU0NzUzMTlkMDFiZGU3N2M0OWQ1OGQxNmQzYjJlOTFjMmU2MWU4MzAzY2EzZDdlZGEzNzk3ZmQ4YjM1Y2E3MmJiMTRiMTVhMjRiNTZiYjcwZGMxMzQ4NDU2NTgwODExMGZmNWRiNThjNTZmN2EwNDM1NjA3ZTNjMzUyZmJmNGY1NTEwNmYyOTgwZmQzY2Q0MjM5N2RiZjcxMzdlZTdmMWUzMmNkODBhM2I3YWIxMmI0NmMxNjkyMjAyNzhkNzcxN2I3OGEzYzQ1ZDYzOTVhMTMwYThiNTg4NDFjYmMyOTBlNGY4MTdkZTNhNGZlMTZlY2QwNzdjYTMzYTBhYTI1ZTIzNWNjN2Y2NjU1YTgwYmE4YWVlYzg3OTA1YmIyYTc1NDU5YjdiY2M1YTEzM2YyOTkzNDkzYjQxZmZjZjYzY2Q3YTM5MWUzZTZmNzgwOTRjYTQ0MmM4MDE0NDQwM2NiMGE1ZjAwYmZjNjFhZTg4MCIKIAogUEtDUzcgUGFyc2UgRmFpbHVyZSBJbnZhbGlkIEFTTjE6IENoYW5nZSBjb250ZW50cyBvZiB0YWcgMzEgdG8gY29udGFpbiBvbmUgdW5hY2NvdW50ZWQgZXh0cmEgYnl0ZSAjNzYwLjAKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBwa2NzN19hc24xX2ZhaWw6IjMwODIwNDlkMDYwOTJhODY0ODg2ZjcwZDAxMDcwMmEwODIwNDhlMzA4MjA0OGEwMjAxMDEzMTBmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwYjA2MDkyYTg2NDg4NmY3MGQwMTA3MDEzMTgyMDQ2NTMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTAyMTQ3YmRlZGRkMjQ0NGNkMWNkZmU1YzQxYTgxMDJjODliN2RmMmU2Y2JmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDA1YmVjZDg3MTk1YzFkZWZmOTBjMjRjOTEyNjliNTViM2YwNjliYzIyNWMzMjZjMzE0YzFhNTE3ODZmZmUxNGM4MzBiZTRlNGJjNzNjYmEzNmM5NzY3N2I0NDE2ODI3OWJlOTFlN2NkZjdjMTkzODZhZTIxODYyNzE5ZDEzYTNhMGZmZjA4MDNkNDYwOTYyZjJjZGE4MzcxNDg0ODczMjUyYzNkNzA1NGRiODE0M2UyYjA4MWEzODE2ZWQwODA0Y2E1MDk5YWU1ZmVjZTgzZDVjMmMzNzgzYjE5ODhiNGI0NmRjOTRlNTU1ODdhMTA3ZWExNTQ2YmYyMmQyOGEwOTdmNjUyYTQwNjZkYzI5NjUyNjkwNjlhZjJmNTE3NmJiOGNlOWNhNmQxMWY5Njc1N2YwMzIwNGY3NTY3MDM1ODdkMDBhZDQyNDc5NmM5MmZjN2FlYjZmNDk0NDMxOTk5ZWRhMzA5OTBlNGY1NzczNjMyZWQyNThmZTAyNzY2NzM1OTlkYTZmY2UzNWNkYWQ3NzI2YTBiYjAyNGNhZDk5NmI4OGUwY2I5ODg1NGNlYjVjMGI2ZWM3NDhkOWY5Y2U2YTZjZDQzNzg1OGJhY2I4MTQ2MThhMjcyZmYzYTQxNWM2ZTA3ZjNkYjA5ODg3NzdmZGVjODQ1YTk3YmY3ZDEwMmRkMDMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMjAyMTQ1NjRkNTU0MDI1YWY1OTllMzI3MDc5YjI3MjBlZjAwZGYzN2NmYjdjMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDAwNDYwOThkYzVmMmI5OWUzYmMyZWQ2NjQyZDdmMGE2MWVmYWJjMTVjMzhjNzYzMzNiY2NjZWVlZTM2OWE0ZjRhNWJkZGE4ZWE1OTI2NDEyNGU0MjlmMDg2MzI2ODNkZGJhMTdiYmYyNjJkODJiNmJlZmEzYjRlMTQ4MDM3NmE4YzdmM2M3ZDdlMmE2Nzc5YmJmMTgyNjJhYTg1N2RlOGMyMGExMmI2YTJjZThlNGQ3ZjMxZGQxYjE5NTM5MmNmNjE4NWFmY2UzNGFmZTA1ODk2MDU3YjM2ZTliMTcxYjZjNjdlZDdjMjI4NmNiZmE4M2ZmOGExNjdjN2JjNzEwOWFlZTdkN2UxOTA5YmQzODRmYmZjNjE5MzhlZmNhNTFjODk5M2M3MWRiMzE3NzMwZjE2ZTdlNzc2ODY3YWU0ZmRjNTYyZDZmMTVkZTU4NWU3Yjk0ZWY0OTZhMzY3NjM2N2EyY2JhYWI3YjYzNjY0OGIwMDc2YmFkNWNkZjFlMDk3NDBlYzZhNDUxYmZmNTM0ZWZhMjE1MDlmM2JhNzdiODEwMWI5MWVhN2U1NWRkYmZlMTQwMTUxNzA2N2Q3YjAxYTJhMDg3OWYwODg1Yzg5NGE4N2NmYjY4YzRkN2VlODkwNjA0ODgxYWViOTdjMjJkMWYzMzdlZjkyM2UwMzVhNjQwMDMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNjMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMzAwMDIxNDYyNDc3Mjk4NzU5ZThlMDQ3MThhZTU2MzE1NWYzNTIzY2ZiODRjZGIzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDZkMmNiYjM3ZmQxMjk1N2U1YTc0ODBjZTA0MzVlOGVmNjA3N2RlZjA4ZmYyNzA4NDRkZTI1MTZhNDc0MmYyMTFkOGM3NDY5MGJjMDk0OGUwOGEyOTZhYmJhOTI4NWY2YmIzMDViOTViN2Y5NDA4Y2U0NGU4Mzg4MGM3MTk0NDQ2NzJlYzk5NzQ2YmE3OGNjNGJkZTQ3NTMxOWQwMWJkZTc3YzQ5ZDU4ZDE2ZDNiMmU5MWMyZTYxZTgzMDNjYTNkN2VkYTM3OTdmZDhiMzVjYTcyYmIxNGIxNWEyNGI1NmJiNzBkYzEzNDg0NTY1ODA4MTEwZmY1ZGI1OGM1NmY3YTA0MzU2MDdlM2MzNTJmYmY0ZjU1MTA2ZjI5ODBmZDNjZDQyMzk3ZGJmNzEzN2VlN2YxZTMyY2Q4MGEzYjdhYjEyYjQ2YzE2OTIyMDI3OGQ3NzE3Yjc4YTNjNDVkNjM5NWExMzBhOGI1ODg0MWNiYzI5MGU0ZjgxN2RlM2E0ZmUxNmVjZDA3N2NhMzNhMGFhMjVlMjM1Y2M3ZjY2NTVhODBiYThhZWVjODc5MDViYjJhNzU0NTliN2JjYzVhMTMzZjI5OTM0OTNiNDFmZmNmNjNjZDdhMzkxZTNlNmY3ODA5NGNhNDQyYzgwMTQ0NDAzY2IwYTVmMDBiZmM2MWFlODgwIgogCiBQS0NTNyBQYXJzZSBGYWlsdXJlIEludmFsaWQgQVNOMTogQ2hhbmdlIGxlbmd0aCBmcm9tIDIxIHRvIDIwICM3NjEuMAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHBrY3M3X2FzbjFfZmFpbDoiMzA4MjA0OWQwNjA5MmE4NjQ4ODZmNzBkMDEwNzAyYTA4MjA0OGUzMDgyMDQ4YTAyMDEwMTMxMGYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBiMDYwOTJhODY0ODg2ZjcwZDAxMDcwMTMxODIwNDY1MzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDViZWNkODcxOTVjMWRlZmY5MGMyNGM5MTI2OWI1NWIzZjA2OWJjMjI1YzMyNmMzMTRjMWE1MTc4NmZmZTE0YzgzMGJlNGU0YmM3M2NiYTM2Yzk3Njc3YjQ0MTY4Mjc5YmU5MWU3Y2RmN2MxOTM4NmFlMjE4NjI3MTlkMTNhM2EwZmZmMDgwM2Q0NjA5NjJmMmNkYTgzNzE0ODQ4NzMyNTJjM2Q3MDU0ZGI4MTQzZTJiMDgxYTM4MTZlZDA4MDRjYTUwOTlhZTVmZWNlODNkNWMyYzM3ODNiMTk4OGI0YjQ2ZGM5NGU1NTU4N2ExMDdlYTE1NDZiZjIyZDI4YTA5N2Y2NTJhNDA2NmRjMjk2NTI2OTA2OWFmMmY1MTc2YmI4Y2U5Y2E2ZDExZjk2NzU3ZjAzMjA0Zjc1NjcwMzU4N2QwMGFkNDI0Nzk2YzkyZmM3YWViNmY0OTQ0MzE5OTllZGEzMDk5MGU0ZjU3NzM2MzJlZDI1OGZlMDI3NjY3MzU5OWRhNmZjZTM1Y2RhZDc3MjZhMGJiMDI0Y2FkOTk2Yjg4ZTBjYjk4ODU0Y2ViNWMwYjZlYzc0OGQ5ZjljZTZhNmNkNDM3ODU4YmFjYjgxNDYxOGEyNzJmZjNhNDE1YzZlMDdmM2RiMDk4ODc3N2ZkZWM4NDVhOTdiZjdkMTAyZGQwMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMyMDIxNDU2NGQ1NTQwMjVhZjU5OWUzMjcwNzliMjcyMGVmMDBkZjM3Y2ZiN2MzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDA0NjA5OGRjNWYyYjk5ZTNiYzJlZDY2NDJkN2YwYTYxZWZhYmMxNWMzOGM3NjMzM2JjY2NlZWVlMzY5YTRmNGE1YmRkYThlYTU5MjY0MTI0ZTQyOWYwODYzMjY4M2RkYmExN2JiZjI2MmQ4MmI2YmVmYTNiNGUxNDgwMzc2YThjN2YzYzdkN2UyYTY3NzliYmYxODI2MmFhODU3ZGU4YzIwYTEyYjZhMmNlOGU0ZDdmMzFkZDFiMTk1MzkyY2Y2MTg1YWZjZTM0YWZlMDU4OTYwNTdiMzZlOWIxNzFiNmM2N2VkN2MyMjg2Y2JmYTgzZmY4YTE2N2M3YmM3MTA5YWVlN2Q3ZTE5MDliZDM4NGZiZmM2MTkzOGVmY2E1MWM4OTkzYzcxZGIzMTc3MzBmMTZlN2U3NzY4NjdhZTRmZGM1NjJkNmYxNWRlNTg1ZTdiOTRlZjQ5NmEzNjc2MzY3YTJjYmFhYjdiNjM2NjQ4YjAwNzZiYWQ1Y2RmMWUwOTc0MGVjNmE0NTFiZmY1MzRlZmEyMTUwOWYzYmE3N2I4MTAxYjkxZWE3ZTU1ZGRiZmUxNDAxNTE3MDY3ZDdiMDFhMmEwODc5ZjA4ODVjODk0YTg3Y2ZiNjhjNGQ3ZWU4OTA2MDQ4ODFhZWI5N2MyMmQxZjMzN2VmOTIzZTAzNWE2NDAwMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE0MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMzMDIxNDYyNDc3Mjk4NzU5ZThlMDQ3MThhZTU2MzE1NWYzNTIzY2ZiODRjZGIzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDZkMmNiYjM3ZmQxMjk1N2U1YTc0ODBjZTA0MzVlOGVmNjA3N2RlZjA4ZmYyNzA4NDRkZTI1MTZhNDc0MmYyMTFkOGM3NDY5MGJjMDk0OGUwOGEyOTZhYmJhOTI4NWY2YmIzMDViOTViN2Y5NDA4Y2U0NGU4Mzg4MGM3MTk0NDQ2NzJlYzk5NzQ2YmE3OGNjNGJkZTQ3NTMxOWQwMWJkZTc3YzQ5ZDU4ZDE2ZDNiMmU5MWMyZTYxZTgzMDNjYTNkN2VkYTM3OTdmZDhiMzVjYTcyYmIxNGIxNWEyNGI1NmJiNzBkYzEzNDg0NTY1ODA4MTEwZmY1ZGI1OGM1NmY3YTA0MzU2MDdlM2MzNTJmYmY0ZjU1MTA2ZjI5ODBmZDNjZDQyMzk3ZGJmNzEzN2VlN2YxZTMyY2Q4MGEzYjdhYjEyYjQ2YzE2OTIyMDI3OGQ3NzE3Yjc4YTNjNDVkNjM5NWExMzBhOGI1ODg0MWNiYzI5MGU0ZjgxN2RlM2E0ZmUxNmVjZDA3N2NhMzNhMGFhMjVlMjM1Y2M3ZjY2NTVhODBiYThhZWVjODc5MDViYjJhNzU0NTliN2JjYzVhMTMzZjI5OTM0OTNiNDFmZmNmNjNjZDdhMzkxZTNlNmY3ODA5NGNhNDQyYzgwMTQ0NDAzY2IwYTVmMDBiZmM2MWFlODgwIgogCiBQS0NTNyBQYXJzZSBGYWlsdXJlIEludmFsaWQgQVNOMTogQ2hhbmdlIHRhZyAzMCB0byAwMiAjNzYyLjAKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBwa2NzN19hc24xX2ZhaWw6IjMwODIwNDlkMDYwOTJhODY0ODg2ZjcwZDAxMDcwMmEwODIwNDhlMzA4MjA0OGEwMjAxMDEzMTBmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwYjA2MDkyYTg2NDg4NmY3MGQwMTA3MDEzMTgyMDQ2NTMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTAyMTQ3YmRlZGRkMjQ0NGNkMWNkZmU1YzQxYTgxMDJjODliN2RmMmU2Y2JmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDA1YmVjZDg3MTk1YzFkZWZmOTBjMjRjOTEyNjliNTViM2YwNjliYzIyNWMzMjZjMzE0YzFhNTE3ODZmZmUxNGM4MzBiZTRlNGJjNzNjYmEzNmM5NzY3N2I0NDE2ODI3OWJlOTFlN2NkZjdjMTkzODZhZTIxODYyNzE5ZDEzYTNhMGZmZjA4MDNkNDYwOTYyZjJjZGE4MzcxNDg0ODczMjUyYzNkNzA1NGRiODE0M2UyYjA4MWEzODE2ZWQwODA0Y2E1MDk5YWU1ZmVjZTgzZDVjMmMzNzgzYjE5ODhiNGI0NmRjOTRlNTU1ODdhMTA3ZWExNTQ2YmYyMmQyOGEwOTdmNjUyYTQwNjZkYzI5NjUyNjkwNjlhZjJmNTE3NmJiOGNlOWNhNmQxMWY5Njc1N2YwMzIwNGY3NTY3MDM1ODdkMDBhZDQyNDc5NmM5MmZjN2FlYjZmNDk0NDMxOTk5ZWRhMzA5OTBlNGY1NzczNjMyZWQyNThmZTAyNzY2NzM1OTlkYTZmY2UzNWNkYWQ3NzI2YTBiYjAyNGNhZDk5NmI4OGUwY2I5ODg1NGNlYjVjMGI2ZWM3NDhkOWY5Y2U2YTZjZDQzNzg1OGJhY2I4MTQ2MThhMjcyZmYzYTQxNWM2ZTA3ZjNkYjA5ODg3NzdmZGVjODQ1YTk3YmY3ZDEwMmRkMDMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMjAyMTQ1NjRkNTU0MDI1YWY1OTllMzI3MDc5YjI3MjBlZjAwZGYzN2NmYjdjMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDAwNDYwOThkYzVmMmI5OWUzYmMyZWQ2NjQyZDdmMGE2MWVmYWJjMTVjMzhjNzYzMzNiY2NjZWVlZTM2OWE0ZjRhNWJkZGE4ZWE1OTI2NDEyNGU0MjlmMDg2MzI2ODNkZGJhMTdiYmYyNjJkODJiNmJlZmEzYjRlMTQ4MDM3NmE4YzdmM2M3ZDdlMmE2Nzc5YmJmMTgyNjJhYTg1N2RlOGMyMGExMmI2YTJjZThlNGQ3ZjMxZGQxYjE5NTM5MmNmNjE4NWFmY2UzNGFmZTA1ODk2MDU3YjM2ZTliMTcxYjZjNjdlZDdjMjI4NmNiZmE4M2ZmOGExNjdjN2JjNzEwOWFlZTdkN2UxOTA5YmQzODRmYmZjNjE5MzhlZmNhNTFjODk5M2M3MWRiMzE3NzMwZjE2ZTdlNzc2ODY3YWU0ZmRjNTYyZDZmMTVkZTU4NWU3Yjk0ZWY0OTZhMzY3NjM2N2EyY2JhYWI3YjYzNjY0OGIwMDc2YmFkNWNkZjFlMDk3NDBlYzZhNDUxYmZmNTM0ZWZhMjE1MDlmM2JhNzdiODEwMWI5MWVhN2U1NWRkYmZlMTQwMTUxNzA2N2Q3YjAxYTJhMDg3OWYwODg1Yzg5NGE4N2NmYjY4YzRkN2VlODkwNjA0ODgxYWViOTdjMjJkMWYzMzdlZjkyM2UwMzVhNjQwMDMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTAyMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMzAyMTQ2MjQ3NzI5ODc1OWU4ZTA0NzE4YWU1NjMxNTVmMzUyM2NmYjg0Y2RiMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDA2ZDJjYmIzN2ZkMTI5NTdlNWE3NDgwY2UwNDM1ZThlZjYwNzdkZWYwOGZmMjcwODQ0ZGUyNTE2YTQ3NDJmMjExZDhjNzQ2OTBiYzA5NDhlMDhhMjk2YWJiYTkyODVmNmJiMzA1Yjk1YjdmOTQwOGNlNDRlODM4ODBjNzE5NDQ0NjcyZWM5OTc0NmJhNzhjYzRiZGU0NzUzMTlkMDFiZGU3N2M0OWQ1OGQxNmQzYjJlOTFjMmU2MWU4MzAzY2EzZDdlZGEzNzk3ZmQ4YjM1Y2E3MmJiMTRiMTVhMjRiNTZiYjcwZGMxMzQ4NDU2NTgwODExMGZmNWRiNThjNTZmN2EwNDM1NjA3ZTNjMzUyZmJmNGY1NTEwNmYyOTgwZmQzY2Q0MjM5N2RiZjcxMzdlZTdmMWUzMmNkODBhM2I3YWIxMmI0NmMxNjkyMjAyNzhkNzcxN2I3OGEzYzQ1ZDYzOTVhMTMwYThiNTg4NDFjYmMyOTBlNGY4MTdkZTNhNGZlMTZlY2QwNzdjYTMzYTBhYTI1ZTIzNWNjN2Y2NjU1YTgwYmE4YWVlYzg3OTA1YmIyYTc1NDU5YjdiY2M1YTEzM2YyOTkzNDkzYjQxZmZjZjYzY2Q3YTM5MWUzZTZmNzgwOTRjYTQ0MmM4MDE0NDQwM2NiMGE1ZjAwYmZjNjFhZTg4MCIKIAogUEtDUzcgUGFyc2UgRmFpbHVyZSBJbnZhbGlkIEFTTjE6IENoYW5nZSBsZW5ndGggZnJvbSAxOSB0byAyMCAjNzYzLjAKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBwa2NzN19hc24xX2ZhaWw6IjMwODIwNDlkMDYwOTJhODY0ODg2ZjcwZDAxMDcwMmEwODIwNDhlMzA4MjA0OGEwMjAxMDEzMTBmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwYjA2MDkyYTg2NDg4NmY3MGQwMTA3MDEzMTgyMDQ2NTMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTAyMTQ3YmRlZGRkMjQ0NGNkMWNkZmU1YzQxYTgxMDJjODliN2RmMmU2Y2JmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDA1YmVjZDg3MTk1YzFkZWZmOTBjMjRjOTEyNjliNTViM2YwNjliYzIyNWMzMjZjMzE0YzFhNTE3ODZmZmUxNGM4MzBiZTRlNGJjNzNjYmEzNmM5NzY3N2I0NDE2ODI3OWJlOTFlN2NkZjdjMTkzODZhZTIxODYyNzE5ZDEzYTNhMGZmZjA4MDNkNDYwOTYyZjJjZGE4MzcxNDg0ODczMjUyYzNkNzA1NGRiODE0M2UyYjA4MWEzODE2ZWQwODA0Y2E1MDk5YWU1ZmVjZTgzZDVjMmMzNzgzYjE5ODhiNGI0NmRjOTRlNTU1ODdhMTA3ZWExNTQ2YmYyMmQyOGEwOTdmNjUyYTQwNjZkYzI5NjUyNjkwNjlhZjJmNTE3NmJiOGNlOWNhNmQxMWY5Njc1N2YwMzIwNGY3NTY3MDM1ODdkMDBhZDQyNDc5NmM5MmZjN2FlYjZmNDk0NDMxOTk5ZWRhMzA5OTBlNGY1NzczNjMyZWQyNThmZTAyNzY2NzM1OTlkYTZmY2UzNWNkYWQ3NzI2YTBiYjAyNGNhZDk5NmI4OGUwY2I5ODg1NGNlYjVjMGI2ZWM3NDhkOWY5Y2U2YTZjZDQzNzg1OGJhY2I4MTQ2MThhMjcyZmYzYTQxNWM2ZTA3ZjNkYjA5ODg3NzdmZGVjODQ1YTk3YmY3ZDEwMmRkMDMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMjAyMTQ1NjRkNTU0MDI1YWY1OTllMzI3MDc5YjI3MjBlZjAwZGYzN2NmYjdjMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDAwNDYwOThkYzVmMmI5OWUzYmMyZWQ2NjQyZDdmMGE2MWVmYWJjMTVjMzhjNzYzMzNiY2NjZWVlZTM2OWE0ZjRhNWJkZGE4ZWE1OTI2NDEyNGU0MjlmMDg2MzI2ODNkZGJhMTdiYmYyNjJkODJiNmJlZmEzYjRlMTQ4MDM3NmE4YzdmM2M3ZDdlMmE2Nzc5YmJmMTgyNjJhYTg1N2RlOGMyMGExMmI2YTJjZThlNGQ3ZjMxZGQxYjE5NTM5MmNmNjE4NWFmY2UzNGFmZTA1ODk2MDU3YjM2ZTliMTcxYjZjNjdlZDdjMjI4NmNiZmE4M2ZmOGExNjdjN2JjNzEwOWFlZTdkN2UxOTA5YmQzODRmYmZjNjE5MzhlZmNhNTFjODk5M2M3MWRiMzE3NzMwZjE2ZTdlNzc2ODY3YWU0ZmRjNTYyZDZmMTVkZTU4NWU3Yjk0ZWY0OTZhMzY3NjM2N2EyY2JhYWI3YjYzNjY0OGIwMDc2YmFkNWNkZjFlMDk3NDBlYzZhNDUxYmZmNTM0ZWZhMjE1MDlmM2JhNzdiODEwMWI5MWVhN2U1NWRkYmZlMTQwMTUxNzA2N2Q3YjAxYTJhMDg3OWYwODg1Yzg5NGE4N2NmYjY4YzRkN2VlODkwNjA0ODgxYWViOTdjMjJkMWYzMzdlZjkyM2UwMzVhNjQwMDMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTQwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMzAyMTQ2MjQ3NzI5ODc1OWU4ZTA0NzE4YWU1NjMxNTVmMzUyM2NmYjg0Y2RiMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDA2ZDJjYmIzN2ZkMTI5NTdlNWE3NDgwY2UwNDM1ZThlZjYwNzdkZWYwOGZmMjcwODQ0ZGUyNTE2YTQ3NDJmMjExZDhjNzQ2OTBiYzA5NDhlMDhhMjk2YWJiYTkyODVmNmJiMzA1Yjk1YjdmOTQwOGNlNDRlODM4ODBjNzE5NDQ0NjcyZWM5OTc0NmJhNzhjYzRiZGU0NzUzMTlkMDFiZGU3N2M0OWQ1OGQxNmQzYjJlOTFjMmU2MWU4MzAzY2EzZDdlZGEzNzk3ZmQ4YjM1Y2E3MmJiMTRiMTVhMjRiNTZiYjcwZGMxMzQ4NDU2NTgwODExMGZmNWRiNThjNTZmN2EwNDM1NjA3ZTNjMzUyZmJmNGY1NTEwNmYyOTgwZmQzY2Q0MjM5N2RiZjcxMzdlZTdmMWUzMmNkODBhM2I3YWIxMmI0NmMxNjkyMjAyNzhkNzcxN2I3OGEzYzQ1ZDYzOTVhMTMwYThiNTg4NDFjYmMyOTBlNGY4MTdkZTNhNGZlMTZlY2QwNzdjYTMzYTBhYTI1ZTIzNWNjN2Y2NjU1YTgwYmE4YWVlYzg3OTA1YmIyYTc1NDU5YjdiY2M1YTEzM2YyOTkzNDkzYjQxZmZjZjYzY2Q3YTM5MWUzZTZmNzgwOTRjYTQ0MmM4MDE0NDQwM2NiMGE1ZjAwYmZjNjFhZTg4MCIKIAogUEtDUzcgUGFyc2UgRmFpbHVyZSBJbnZhbGlkIEFTTjE6IENoYW5nZSBjb250ZW50cyBvZiB0YWcgMzAgdG8gY29udGFpbiBvbmUgdW5hY2NvdW50ZWQgZXh0cmEgYnl0ZSAjNzY0LjAKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBwa2NzN19hc24xX2ZhaWw6IjMwODIwNDlkMDYwOTJhODY0ODg2ZjcwZDAxMDcwMmEwODIwNDhlMzA4MjA0OGEwMjAxMDEzMTBmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwYjA2MDkyYTg2NDg4NmY3MGQwMTA3MDEzMTgyMDQ2NTMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTAyMTQ3YmRlZGRkMjQ0NGNkMWNkZmU1YzQxYTgxMDJjODliN2RmMmU2Y2JmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDA1YmVjZDg3MTk1YzFkZWZmOTBjMjRjOTEyNjliNTViM2YwNjliYzIyNWMzMjZjMzE0YzFhNTE3ODZmZmUxNGM4MzBiZTRlNGJjNzNjYmEzNmM5NzY3N2I0NDE2ODI3OWJlOTFlN2NkZjdjMTkzODZhZTIxODYyNzE5ZDEzYTNhMGZmZjA4MDNkNDYwOTYyZjJjZGE4MzcxNDg0ODczMjUyYzNkNzA1NGRiODE0M2UyYjA4MWEzODE2ZWQwODA0Y2E1MDk5YWU1ZmVjZTgzZDVjMmMzNzgzYjE5ODhiNGI0NmRjOTRlNTU1ODdhMTA3ZWExNTQ2YmYyMmQyOGEwOTdmNjUyYTQwNjZkYzI5NjUyNjkwNjlhZjJmNTE3NmJiOGNlOWNhNmQxMWY5Njc1N2YwMzIwNGY3NTY3MDM1ODdkMDBhZDQyNDc5NmM5MmZjN2FlYjZmNDk0NDMxOTk5ZWRhMzA5OTBlNGY1NzczNjMyZWQyNThmZTAyNzY2NzM1OTlkYTZmY2UzNWNkYWQ3NzI2YTBiYjAyNGNhZDk5NmI4OGUwY2I5ODg1NGNlYjVjMGI2ZWM3NDhkOWY5Y2U2YTZjZDQzNzg1OGJhY2I4MTQ2MThhMjcyZmYzYTQxNWM2ZTA3ZjNkYjA5ODg3NzdmZGVjODQ1YTk3YmY3ZDEwMmRkMDMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMjAyMTQ1NjRkNTU0MDI1YWY1OTllMzI3MDc5YjI3MjBlZjAwZGYzN2NmYjdjMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDAwNDYwOThkYzVmMmI5OWUzYmMyZWQ2NjQyZDdmMGE2MWVmYWJjMTVjMzhjNzYzMzNiY2NjZWVlZTM2OWE0ZjRhNWJkZGE4ZWE1OTI2NDEyNGU0MjlmMDg2MzI2ODNkZGJhMTdiYmYyNjJkODJiNmJlZmEzYjRlMTQ4MDM3NmE4YzdmM2M3ZDdlMmE2Nzc5YmJmMTgyNjJhYTg1N2RlOGMyMGExMmI2YTJjZThlNGQ3ZjMxZGQxYjE5NTM5MmNmNjE4NWFmY2UzNGFmZTA1ODk2MDU3YjM2ZTliMTcxYjZjNjdlZDdjMjI4NmNiZmE4M2ZmOGExNjdjN2JjNzEwOWFlZTdkN2UxOTA5YmQzODRmYmZjNjE5MzhlZmNhNTFjODk5M2M3MWRiMzE3NzMwZjE2ZTdlNzc2ODY3YWU0ZmRjNTYyZDZmMTVkZTU4NWU3Yjk0ZWY0OTZhMzY3NjM2N2EyY2JhYWI3YjYzNjY0OGIwMDc2YmFkNWNkZjFlMDk3NDBlYzZhNDUxYmZmNTM0ZWZhMjE1MDlmM2JhNzdiODEwMWI5MWVhN2U1NWRkYmZlMTQwMTUxNzA2N2Q3YjAxYTJhMDg3OWYwODg1Yzg5NGE4N2NmYjY4YzRkN2VlODkwNjA0ODgxYWViOTdjMjJkMWYzMzdlZjkyM2UwMzVhNjQwMDMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTQwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMzAwMDIxNDYyNDc3Mjk4NzU5ZThlMDQ3MThhZTU2MzE1NWYzNTIzY2ZiODRjZGIzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDZkMmNiYjM3ZmQxMjk1N2U1YTc0ODBjZTA0MzVlOGVmNjA3N2RlZjA4ZmYyNzA4NDRkZTI1MTZhNDc0MmYyMTFkOGM3NDY5MGJjMDk0OGUwOGEyOTZhYmJhOTI4NWY2YmIzMDViOTViN2Y5NDA4Y2U0NGU4Mzg4MGM3MTk0NDQ2NzJlYzk5NzQ2YmE3OGNjNGJkZTQ3NTMxOWQwMWJkZTc3YzQ5ZDU4ZDE2ZDNiMmU5MWMyZTYxZTgzMDNjYTNkN2VkYTM3OTdmZDhiMzVjYTcyYmIxNGIxNWEyNGI1NmJiNzBkYzEzNDg0NTY1ODA4MTEwZmY1ZGI1OGM1NmY3YTA0MzU2MDdlM2MzNTJmYmY0ZjU1MTA2ZjI5ODBmZDNjZDQyMzk3ZGJmNzEzN2VlN2YxZTMyY2Q4MGEzYjdhYjEyYjQ2YzE2OTIyMDI3OGQ3NzE3Yjc4YTNjNDVkNjM5NWExMzBhOGI1ODg0MWNiYzI5MGU0ZjgxN2RlM2E0ZmUxNmVjZDA3N2NhMzNhMGFhMjVlMjM1Y2M3ZjY2NTVhODBiYThhZWVjODc5MDViYjJhNzU0NTliN2JjYzVhMTMzZjI5OTM0OTNiNDFmZmNmNjNjZDdhMzkxZTNlNmY3ODA5NGNhNDQyYzgwMTQ0NDAzY2IwYTVmMDBiZmM2MWFlODgwIgogCiBQS0NTNyBQYXJzZSBGYWlsdXJlIEludmFsaWQgQVNOMTogQ2hhbmdlIGxlbmd0aCBmcm9tIDE5IHRvIDE4ICM3NjUuMAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHBrY3M3X2FzbjFfZmFpbDoiMzA4MjA0OWQwNjA5MmE4NjQ4ODZmNzBkMDEwNzAyYTA4MjA0OGUzMDgyMDQ4YTAyMDEwMTMxMGYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBiMDYwOTJhODY0ODg2ZjcwZDAxMDcwMTMxODIwNDY1MzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDViZWNkODcxOTVjMWRlZmY5MGMyNGM5MTI2OWI1NWIzZjA2OWJjMjI1YzMyNmMzMTRjMWE1MTc4NmZmZTE0YzgzMGJlNGU0YmM3M2NiYTM2Yzk3Njc3YjQ0MTY4Mjc5YmU5MWU3Y2RmN2MxOTM4NmFlMjE4NjI3MTlkMTNhM2EwZmZmMDgwM2Q0NjA5NjJmMmNkYTgzNzE0ODQ4NzMyNTJjM2Q3MDU0ZGI4MTQzZTJiMDgxYTM4MTZlZDA4MDRjYTUwOTlhZTVmZWNlODNkNWMyYzM3ODNiMTk4OGI0YjQ2ZGM5NGU1NTU4N2ExMDdlYTE1NDZiZjIyZDI4YTA5N2Y2NTJhNDA2NmRjMjk2NTI2OTA2OWFmMmY1MTc2YmI4Y2U5Y2E2ZDExZjk2NzU3ZjAzMjA0Zjc1NjcwMzU4N2QwMGFkNDI0Nzk2YzkyZmM3YWViNmY0OTQ0MzE5OTllZGEzMDk5MGU0ZjU3NzM2MzJlZDI1OGZlMDI3NjY3MzU5OWRhNmZjZTM1Y2RhZDc3MjZhMGJiMDI0Y2FkOTk2Yjg4ZTBjYjk4ODU0Y2ViNWMwYjZlYzc0OGQ5ZjljZTZhNmNkNDM3ODU4YmFjYjgxNDYxOGEyNzJmZjNhNDE1YzZlMDdmM2RiMDk4ODc3N2ZkZWM4NDVhOTdiZjdkMTAyZGQwMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMyMDIxNDU2NGQ1NTQwMjVhZjU5OWUzMjcwNzliMjcyMGVmMDBkZjM3Y2ZiN2MzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDA0NjA5OGRjNWYyYjk5ZTNiYzJlZDY2NDJkN2YwYTYxZWZhYmMxNWMzOGM3NjMzM2JjY2NlZWVlMzY5YTRmNGE1YmRkYThlYTU5MjY0MTI0ZTQyOWYwODYzMjY4M2RkYmExN2JiZjI2MmQ4MmI2YmVmYTNiNGUxNDgwMzc2YThjN2YzYzdkN2UyYTY3NzliYmYxODI2MmFhODU3ZGU4YzIwYTEyYjZhMmNlOGU0ZDdmMzFkZDFiMTk1MzkyY2Y2MTg1YWZjZTM0YWZlMDU4OTYwNTdiMzZlOWIxNzFiNmM2N2VkN2MyMjg2Y2JmYTgzZmY4YTE2N2M3YmM3MTA5YWVlN2Q3ZTE5MDliZDM4NGZiZmM2MTkzOGVmY2E1MWM4OTkzYzcxZGIzMTc3MzBmMTZlN2U3NzY4NjdhZTRmZGM1NjJkNmYxNWRlNTg1ZTdiOTRlZjQ5NmEzNjc2MzY3YTJjYmFhYjdiNjM2NjQ4YjAwNzZiYWQ1Y2RmMWUwOTc0MGVjNmE0NTFiZmY1MzRlZmEyMTUwOWYzYmE3N2I4MTAxYjkxZWE3ZTU1ZGRiZmUxNDAxNTE3MDY3ZDdiMDFhMmEwODc5ZjA4ODVjODk0YTg3Y2ZiNjhjNGQ3ZWU4OTA2MDQ4ODFhZWI5N2MyMmQxZjMzN2VmOTIzZTAzNWE2NDAwMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMjA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMzMDIxNDYyNDc3Mjk4NzU5ZThlMDQ3MThhZTU2MzE1NWYzNTIzY2ZiODRjZGIzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDZkMmNiYjM3ZmQxMjk1N2U1YTc0ODBjZTA0MzVlOGVmNjA3N2RlZjA4ZmYyNzA4NDRkZTI1MTZhNDc0MmYyMTFkOGM3NDY5MGJjMDk0OGUwOGEyOTZhYmJhOTI4NWY2YmIzMDViOTViN2Y5NDA4Y2U0NGU4Mzg4MGM3MTk0NDQ2NzJlYzk5NzQ2YmE3OGNjNGJkZTQ3NTMxOWQwMWJkZTc3YzQ5ZDU4ZDE2ZDNiMmU5MWMyZTYxZTgzMDNjYTNkN2VkYTM3OTdmZDhiMzVjYTcyYmIxNGIxNWEyNGI1NmJiNzBkYzEzNDg0NTY1ODA4MTEwZmY1ZGI1OGM1NmY3YTA0MzU2MDdlM2MzNTJmYmY0ZjU1MTA2ZjI5ODBmZDNjZDQyMzk3ZGJmNzEzN2VlN2YxZTMyY2Q4MGEzYjdhYjEyYjQ2YzE2OTIyMDI3OGQ3NzE3Yjc4YTNjNDVkNjM5NWExMzBhOGI1ODg0MWNiYzI5MGU0ZjgxN2RlM2E0ZmUxNmVjZDA3N2NhMzNhMGFhMjVlMjM1Y2M3ZjY2NTVhODBiYThhZWVjODc5MDViYjJhNzU0NTliN2JjYzVhMTMzZjI5OTM0OTNiNDFmZmNmNjNjZDdhMzkxZTNlNmY3ODA5NGNhNDQyYzgwMTQ0NDAzY2IwYTVmMDBiZmM2MWFlODgwIgogCiBQS0NTNyBQYXJzZSBGYWlsdXJlIEludmFsaWQgQVNOMTogQ2hhbmdlIHRhZyAwNiB0byAwMiAjNzY2LjAKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBwa2NzN19hc24xX2ZhaWw6IjMwODIwNDlkMDYwOTJhODY0ODg2ZjcwZDAxMDcwMmEwODIwNDhlMzA4MjA0OGEwMjAxMDEzMTBmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwYjA2MDkyYTg2NDg4NmY3MGQwMTA3MDEzMTgyMDQ2NTMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTAyMTQ3YmRlZGRkMjQ0NGNkMWNkZmU1YzQxYTgxMDJjODliN2RmMmU2Y2JmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDA1YmVjZDg3MTk1YzFkZWZmOTBjMjRjOTEyNjliNTViM2YwNjliYzIyNWMzMjZjMzE0YzFhNTE3ODZmZmUxNGM4MzBiZTRlNGJjNzNjYmEzNmM5NzY3N2I0NDE2ODI3OWJlOTFlN2NkZjdjMTkzODZhZTIxODYyNzE5ZDEzYTNhMGZmZjA4MDNkNDYwOTYyZjJjZGE4MzcxNDg0ODczMjUyYzNkNzA1NGRiODE0M2UyYjA4MWEzODE2ZWQwODA0Y2E1MDk5YWU1ZmVjZTgzZDVjMmMzNzgzYjE5ODhiNGI0NmRjOTRlNTU1ODdhMTA3ZWExNTQ2YmYyMmQyOGEwOTdmNjUyYTQwNjZkYzI5NjUyNjkwNjlhZjJmNTE3NmJiOGNlOWNhNmQxMWY5Njc1N2YwMzIwNGY3NTY3MDM1ODdkMDBhZDQyNDc5NmM5MmZjN2FlYjZmNDk0NDMxOTk5ZWRhMzA5OTBlNGY1NzczNjMyZWQyNThmZTAyNzY2NzM1OTlkYTZmY2UzNWNkYWQ3NzI2YTBiYjAyNGNhZDk5NmI4OGUwY2I5ODg1NGNlYjVjMGI2ZWM3NDhkOWY5Y2U2YTZjZDQzNzg1OGJhY2I4MTQ2MThhMjcyZmYzYTQxNWM2ZTA3ZjNkYjA5ODg3NzdmZGVjODQ1YTk3YmY3ZDEwMmRkMDMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMjAyMTQ1NjRkNTU0MDI1YWY1OTllMzI3MDc5YjI3MjBlZjAwZGYzN2NmYjdjMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDAwNDYwOThkYzVmMmI5OWUzYmMyZWQ2NjQyZDdmMGE2MWVmYWJjMTVjMzhjNzYzMzNiY2NjZWVlZTM2OWE0ZjRhNWJkZGE4ZWE1OTI2NDEyNGU0MjlmMDg2MzI2ODNkZGJhMTdiYmYyNjJkODJiNmJlZmEzYjRlMTQ4MDM3NmE4YzdmM2M3ZDdlMmE2Nzc5YmJmMTgyNjJhYTg1N2RlOGMyMGExMmI2YTJjZThlNGQ3ZjMxZGQxYjE5NTM5MmNmNjE4NWFmY2UzNGFmZTA1ODk2MDU3YjM2ZTliMTcxYjZjNjdlZDdjMjI4NmNiZmE4M2ZmOGExNjdjN2JjNzEwOWFlZTdkN2UxOTA5YmQzODRmYmZjNjE5MzhlZmNhNTFjODk5M2M3MWRiMzE3NzMwZjE2ZTdlNzc2ODY3YWU0ZmRjNTYyZDZmMTVkZTU4NWU3Yjk0ZWY0OTZhMzY3NjM2N2EyY2JhYWI3YjYzNjY0OGIwMDc2YmFkNWNkZjFlMDk3NDBlYzZhNDUxYmZmNTM0ZWZhMjE1MDlmM2JhNzdiODEwMWI5MWVhN2U1NWRkYmZlMTQwMTUxNzA2N2Q3YjAxYTJhMDg3OWYwODg1Yzg5NGE4N2NmYjY4YzRkN2VlODkwNjA0ODgxYWViOTdjMjJkMWYzMzdlZjkyM2UwMzVhNjQwMDMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwMjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMzAyMTQ2MjQ3NzI5ODc1OWU4ZTA0NzE4YWU1NjMxNTVmMzUyM2NmYjg0Y2RiMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDA2ZDJjYmIzN2ZkMTI5NTdlNWE3NDgwY2UwNDM1ZThlZjYwNzdkZWYwOGZmMjcwODQ0ZGUyNTE2YTQ3NDJmMjExZDhjNzQ2OTBiYzA5NDhlMDhhMjk2YWJiYTkyODVmNmJiMzA1Yjk1YjdmOTQwOGNlNDRlODM4ODBjNzE5NDQ0NjcyZWM5OTc0NmJhNzhjYzRiZGU0NzUzMTlkMDFiZGU3N2M0OWQ1OGQxNmQzYjJlOTFjMmU2MWU4MzAzY2EzZDdlZGEzNzk3ZmQ4YjM1Y2E3MmJiMTRiMTVhMjRiNTZiYjcwZGMxMzQ4NDU2NTgwODExMGZmNWRiNThjNTZmN2EwNDM1NjA3ZTNjMzUyZmJmNGY1NTEwNmYyOTgwZmQzY2Q0MjM5N2RiZjcxMzdlZTdmMWUzMmNkODBhM2I3YWIxMmI0NmMxNjkyMjAyNzhkNzcxN2I3OGEzYzQ1ZDYzOTVhMTMwYThiNTg4NDFjYmMyOTBlNGY4MTdkZTNhNGZlMTZlY2QwNzdjYTMzYTBhYTI1ZTIzNWNjN2Y2NjU1YTgwYmE4YWVlYzg3OTA1YmIyYTc1NDU5YjdiY2M1YTEzM2YyOTkzNDkzYjQxZmZjZjYzY2Q3YTM5MWUzZTZmNzgwOTRjYTQ0MmM4MDE0NDQwM2NiMGE1ZjAwYmZjNjFhZTg4MCIKIAogUEtDUzcgUGFyc2UgRmFpbHVyZSBJbnZhbGlkIEFTTjE6IENoYW5nZSBsZW5ndGggZnJvbSAzIHRvIDQgIzc2Ny4wCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NgogcGtjczdfYXNuMV9mYWlsOiIzMDgyMDQ5ZDA2MDkyYTg2NDg4NmY3MGQwMTA3MDJhMDgyMDQ4ZTMwODIwNDhhMDIwMTAxMzEwZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGIwNjA5MmE4NjQ4ODZmNzBkMDEwNzAxMzE4MjA0NjUzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwNWJlY2Q4NzE5NWMxZGVmZjkwYzI0YzkxMjY5YjU1YjNmMDY5YmMyMjVjMzI2YzMxNGMxYTUxNzg2ZmZlMTRjODMwYmU0ZTRiYzczY2JhMzZjOTc2NzdiNDQxNjgyNzliZTkxZTdjZGY3YzE5Mzg2YWUyMTg2MjcxOWQxM2EzYTBmZmYwODAzZDQ2MDk2MmYyY2RhODM3MTQ4NDg3MzI1MmMzZDcwNTRkYjgxNDNlMmIwODFhMzgxNmVkMDgwNGNhNTA5OWFlNWZlY2U4M2Q1YzJjMzc4M2IxOTg4YjRiNDZkYzk0ZTU1NTg3YTEwN2VhMTU0NmJmMjJkMjhhMDk3ZjY1MmE0MDY2ZGMyOTY1MjY5MDY5YWYyZjUxNzZiYjhjZTljYTZkMTFmOTY3NTdmMDMyMDRmNzU2NzAzNTg3ZDAwYWQ0MjQ3OTZjOTJmYzdhZWI2ZjQ5NDQzMTk5OWVkYTMwOTkwZTRmNTc3MzYzMmVkMjU4ZmUwMjc2NjczNTk5ZGE2ZmNlMzVjZGFkNzcyNmEwYmIwMjRjYWQ5OTZiODhlMGNiOTg4NTRjZWI1YzBiNmVjNzQ4ZDlmOWNlNmE2Y2Q0Mzc4NThiYWNiODE0NjE4YTI3MmZmM2E0MTVjNmUwN2YzZGIwOTg4Nzc3ZmRlYzg0NWE5N2JmN2QxMDJkZDAzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzIwMjE0NTY0ZDU1NDAyNWFmNTk5ZTMyNzA3OWIyNzIwZWYwMGRmMzdjZmI3YzMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwMDQ2MDk4ZGM1ZjJiOTllM2JjMmVkNjY0MmQ3ZjBhNjFlZmFiYzE1YzM4Yzc2MzMzYmNjY2VlZWUzNjlhNGY0YTViZGRhOGVhNTkyNjQxMjRlNDI5ZjA4NjMyNjgzZGRiYTE3YmJmMjYyZDgyYjZiZWZhM2I0ZTE0ODAzNzZhOGM3ZjNjN2Q3ZTJhNjc3OWJiZjE4MjYyYWE4NTdkZThjMjBhMTJiNmEyY2U4ZTRkN2YzMWRkMWIxOTUzOTJjZjYxODVhZmNlMzRhZmUwNTg5NjA1N2IzNmU5YjE3MWI2YzY3ZWQ3YzIyODZjYmZhODNmZjhhMTY3YzdiYzcxMDlhZWU3ZDdlMTkwOWJkMzg0ZmJmYzYxOTM4ZWZjYTUxYzg5OTNjNzFkYjMxNzczMGYxNmU3ZTc3Njg2N2FlNGZkYzU2MmQ2ZjE1ZGU1ODVlN2I5NGVmNDk2YTM2NzYzNjdhMmNiYWFiN2I2MzY2NDhiMDA3NmJhZDVjZGYxZTA5NzQwZWM2YTQ1MWJmZjUzNGVmYTIxNTA5ZjNiYTc3YjgxMDFiOTFlYTdlNTVkZGJmZTE0MDE1MTcwNjdkN2IwMWEyYTA4NzlmMDg4NWM4OTRhODdjZmI2OGM0ZDdlZTg5MDYwNDg4MWFlYjk3YzIyZDFmMzM3ZWY5MjNlMDM1YTY0MDAzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwNDU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzMwMjE0NjI0NzcyOTg3NTllOGUwNDcxOGFlNTYzMTU1ZjM1MjNjZmI4NGNkYjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwNmQyY2JiMzdmZDEyOTU3ZTVhNzQ4MGNlMDQzNWU4ZWY2MDc3ZGVmMDhmZjI3MDg0NGRlMjUxNmE0NzQyZjIxMWQ4Yzc0NjkwYmMwOTQ4ZTA4YTI5NmFiYmE5Mjg1ZjZiYjMwNWI5NWI3Zjk0MDhjZTQ0ZTgzODgwYzcxOTQ0NDY3MmVjOTk3NDZiYTc4Y2M0YmRlNDc1MzE5ZDAxYmRlNzdjNDlkNThkMTZkM2IyZTkxYzJlNjFlODMwM2NhM2Q3ZWRhMzc5N2ZkOGIzNWNhNzJiYjE0YjE1YTI0YjU2YmI3MGRjMTM0ODQ1NjU4MDgxMTBmZjVkYjU4YzU2ZjdhMDQzNTYwN2UzYzM1MmZiZjRmNTUxMDZmMjk4MGZkM2NkNDIzOTdkYmY3MTM3ZWU3ZjFlMzJjZDgwYTNiN2FiMTJiNDZjMTY5MjIwMjc4ZDc3MTdiNzhhM2M0NWQ2Mzk1YTEzMGE4YjU4ODQxY2JjMjkwZTRmODE3ZGUzYTRmZTE2ZWNkMDc3Y2EzM2EwYWEyNWUyMzVjYzdmNjY1NWE4MGJhOGFlZWM4NzkwNWJiMmE3NTQ1OWI3YmNjNWExMzNmMjk5MzQ5M2I0MWZmY2Y2M2NkN2EzOTFlM2U2Zjc4MDk0Y2E0NDJjODAxNDQ0MDNjYjBhNWYwMGJmYzYxYWU4ODAiCiAKIFBLQ1M3IFBhcnNlIEZhaWx1cmUgSW52YWxpZCBBU04xOiBDaGFuZ2UgbGVuZ3RoIGZyb20gMyB0byAyICM3NjguMAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHBrY3M3X2FzbjFfZmFpbDoiMzA4MjA0OWQwNjA5MmE4NjQ4ODZmNzBkMDEwNzAyYTA4MjA0OGUzMDgyMDQ4YTAyMDEwMTMxMGYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBiMDYwOTJhODY0ODg2ZjcwZDAxMDcwMTMxODIwNDY1MzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDViZWNkODcxOTVjMWRlZmY5MGMyNGM5MTI2OWI1NWIzZjA2OWJjMjI1YzMyNmMzMTRjMWE1MTc4NmZmZTE0YzgzMGJlNGU0YmM3M2NiYTM2Yzk3Njc3YjQ0MTY4Mjc5YmU5MWU3Y2RmN2MxOTM4NmFlMjE4NjI3MTlkMTNhM2EwZmZmMDgwM2Q0NjA5NjJmMmNkYTgzNzE0ODQ4NzMyNTJjM2Q3MDU0ZGI4MTQzZTJiMDgxYTM4MTZlZDA4MDRjYTUwOTlhZTVmZWNlODNkNWMyYzM3ODNiMTk4OGI0YjQ2ZGM5NGU1NTU4N2ExMDdlYTE1NDZiZjIyZDI4YTA5N2Y2NTJhNDA2NmRjMjk2NTI2OTA2OWFmMmY1MTc2YmI4Y2U5Y2E2ZDExZjk2NzU3ZjAzMjA0Zjc1NjcwMzU4N2QwMGFkNDI0Nzk2YzkyZmM3YWViNmY0OTQ0MzE5OTllZGEzMDk5MGU0ZjU3NzM2MzJlZDI1OGZlMDI3NjY3MzU5OWRhNmZjZTM1Y2RhZDc3MjZhMGJiMDI0Y2FkOTk2Yjg4ZTBjYjk4ODU0Y2ViNWMwYjZlYzc0OGQ5ZjljZTZhNmNkNDM3ODU4YmFjYjgxNDYxOGEyNzJmZjNhNDE1YzZlMDdmM2RiMDk4ODc3N2ZkZWM4NDVhOTdiZjdkMTAyZGQwMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMyMDIxNDU2NGQ1NTQwMjVhZjU5OWUzMjcwNzliMjcyMGVmMDBkZjM3Y2ZiN2MzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDA0NjA5OGRjNWYyYjk5ZTNiYzJlZDY2NDJkN2YwYTYxZWZhYmMxNWMzOGM3NjMzM2JjY2NlZWVlMzY5YTRmNGE1YmRkYThlYTU5MjY0MTI0ZTQyOWYwODYzMjY4M2RkYmExN2JiZjI2MmQ4MmI2YmVmYTNiNGUxNDgwMzc2YThjN2YzYzdkN2UyYTY3NzliYmYxODI2MmFhODU3ZGU4YzIwYTEyYjZhMmNlOGU0ZDdmMzFkZDFiMTk1MzkyY2Y2MTg1YWZjZTM0YWZlMDU4OTYwNTdiMzZlOWIxNzFiNmM2N2VkN2MyMjg2Y2JmYTgzZmY4YTE2N2M3YmM3MTA5YWVlN2Q3ZTE5MDliZDM4NGZiZmM2MTkzOGVmY2E1MWM4OTkzYzcxZGIzMTc3MzBmMTZlN2U3NzY4NjdhZTRmZGM1NjJkNmYxNWRlNTg1ZTdiOTRlZjQ5NmEzNjc2MzY3YTJjYmFhYjdiNjM2NjQ4YjAwNzZiYWQ1Y2RmMWUwOTc0MGVjNmE0NTFiZmY1MzRlZmEyMTUwOWYzYmE3N2I4MTAxYjkxZWE3ZTU1ZGRiZmUxNDAxNTE3MDY3ZDdiMDFhMmEwODc5ZjA4ODVjODk0YTg3Y2ZiNjhjNGQ3ZWU4OTA2MDQ4ODFhZWI5N2MyMmQxZjMzN2VmOTIzZTAzNWE2NDAwMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDI1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMzMDIxNDYyNDc3Mjk4NzU5ZThlMDQ3MThhZTU2MzE1NWYzNTIzY2ZiODRjZGIzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDZkMmNiYjM3ZmQxMjk1N2U1YTc0ODBjZTA0MzVlOGVmNjA3N2RlZjA4ZmYyNzA4NDRkZTI1MTZhNDc0MmYyMTFkOGM3NDY5MGJjMDk0OGUwOGEyOTZhYmJhOTI4NWY2YmIzMDViOTViN2Y5NDA4Y2U0NGU4Mzg4MGM3MTk0NDQ2NzJlYzk5NzQ2YmE3OGNjNGJkZTQ3NTMxOWQwMWJkZTc3YzQ5ZDU4ZDE2ZDNiMmU5MWMyZTYxZTgzMDNjYTNkN2VkYTM3OTdmZDhiMzVjYTcyYmIxNGIxNWEyNGI1NmJiNzBkYzEzNDg0NTY1ODA4MTEwZmY1ZGI1OGM1NmY3YTA0MzU2MDdlM2MzNTJmYmY0ZjU1MTA2ZjI5ODBmZDNjZDQyMzk3ZGJmNzEzN2VlN2YxZTMyY2Q4MGEzYjdhYjEyYjQ2YzE2OTIyMDI3OGQ3NzE3Yjc4YTNjNDVkNjM5NWExMzBhOGI1ODg0MWNiYzI5MGU0ZjgxN2RlM2E0ZmUxNmVjZDA3N2NhMzNhMGFhMjVlMjM1Y2M3ZjY2NTVhODBiYThhZWVjODc5MDViYjJhNzU0NTliN2JjYzVhMTMzZjI5OTM0OTNiNDFmZmNmNjNjZDdhMzkxZTNlNmY3ODA5NGNhNDQyYzgwMTQ0NDAzY2IwYTVmMDBiZmM2MWFlODgwIgogCiBQS0NTNyBQYXJzZSBGYWlsdXJlIEludmFsaWQgQVNOMTogQ2hhbmdlIHRhZyAwYyB0byAwMiAjNzY5LjAKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBwa2NzN19hc24xX2ZhaWw6IjMwODIwNDlkMDYwOTJhODY0ODg2ZjcwZDAxMDcwMmEwODIwNDhlMzA4MjA0OGEwMjAxMDEzMTBmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwYjA2MDkyYTg2NDg4NmY3MGQwMTA3MDEzMTgyMDQ2NTMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTAyMTQ3YmRlZGRkMjQ0NGNkMWNkZmU1YzQxYTgxMDJjODliN2RmMmU2Y2JmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDA1YmVjZDg3MTk1YzFkZWZmOTBjMjRjOTEyNjliNTViM2YwNjliYzIyNWMzMjZjMzE0YzFhNTE3ODZmZmUxNGM4MzBiZTRlNGJjNzNjYmEzNmM5NzY3N2I0NDE2ODI3OWJlOTFlN2NkZjdjMTkzODZhZTIxODYyNzE5ZDEzYTNhMGZmZjA4MDNkNDYwOTYyZjJjZGE4MzcxNDg0ODczMjUyYzNkNzA1NGRiODE0M2UyYjA4MWEzODE2ZWQwODA0Y2E1MDk5YWU1ZmVjZTgzZDVjMmMzNzgzYjE5ODhiNGI0NmRjOTRlNTU1ODdhMTA3ZWExNTQ2YmYyMmQyOGEwOTdmNjUyYTQwNjZkYzI5NjUyNjkwNjlhZjJmNTE3NmJiOGNlOWNhNmQxMWY5Njc1N2YwMzIwNGY3NTY3MDM1ODdkMDBhZDQyNDc5NmM5MmZjN2FlYjZmNDk0NDMxOTk5ZWRhMzA5OTBlNGY1NzczNjMyZWQyNThmZTAyNzY2NzM1OTlkYTZmY2UzNWNkYWQ3NzI2YTBiYjAyNGNhZDk5NmI4OGUwY2I5ODg1NGNlYjVjMGI2ZWM3NDhkOWY5Y2U2YTZjZDQzNzg1OGJhY2I4MTQ2MThhMjcyZmYzYTQxNWM2ZTA3ZjNkYjA5ODg3NzdmZGVjODQ1YTk3YmY3ZDEwMmRkMDMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMjAyMTQ1NjRkNTU0MDI1YWY1OTllMzI3MDc5YjI3MjBlZjAwZGYzN2NmYjdjMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDAwNDYwOThkYzVmMmI5OWUzYmMyZWQ2NjQyZDdmMGE2MWVmYWJjMTVjMzhjNzYzMzNiY2NjZWVlZTM2OWE0ZjRhNWJkZGE4ZWE1OTI2NDEyNGU0MjlmMDg2MzI2ODNkZGJhMTdiYmYyNjJkODJiNmJlZmEzYjRlMTQ4MDM3NmE4YzdmM2M3ZDdlMmE2Nzc5YmJmMTgyNjJhYTg1N2RlOGMyMGExMmI2YTJjZThlNGQ3ZjMxZGQxYjE5NTM5MmNmNjE4NWFmY2UzNGFmZTA1ODk2MDU3YjM2ZTliMTcxYjZjNjdlZDdjMjI4NmNiZmE4M2ZmOGExNjdjN2JjNzEwOWFlZTdkN2UxOTA5YmQzODRmYmZjNjE5MzhlZmNhNTFjODk5M2M3MWRiMzE3NzMwZjE2ZTdlNzc2ODY3YWU0ZmRjNTYyZDZmMTVkZTU4NWU3Yjk0ZWY0OTZhMzY3NjM2N2EyY2JhYWI3YjYzNjY0OGIwMDc2YmFkNWNkZjFlMDk3NDBlYzZhNDUxYmZmNTM0ZWZhMjE1MDlmM2JhNzdiODEwMWI5MWVhN2U1NWRkYmZlMTQwMTUxNzA2N2Q3YjAxYTJhMDg3OWYwODg1Yzg5NGE4N2NmYjY4YzRkN2VlODkwNjA0ODgxYWViOTdjMjJkMWYzMzdlZjkyM2UwMzVhNjQwMDMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMDIwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMzAyMTQ2MjQ3NzI5ODc1OWU4ZTA0NzE4YWU1NjMxNTVmMzUyM2NmYjg0Y2RiMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDA2ZDJjYmIzN2ZkMTI5NTdlNWE3NDgwY2UwNDM1ZThlZjYwNzdkZWYwOGZmMjcwODQ0ZGUyNTE2YTQ3NDJmMjExZDhjNzQ2OTBiYzA5NDhlMDhhMjk2YWJiYTkyODVmNmJiMzA1Yjk1YjdmOTQwOGNlNDRlODM4ODBjNzE5NDQ0NjcyZWM5OTc0NmJhNzhjYzRiZGU0NzUzMTlkMDFiZGU3N2M0OWQ1OGQxNmQzYjJlOTFjMmU2MWU4MzAzY2EzZDdlZGEzNzk3ZmQ4YjM1Y2E3MmJiMTRiMTVhMjRiNTZiYjcwZGMxMzQ4NDU2NTgwODExMGZmNWRiNThjNTZmN2EwNDM1NjA3ZTNjMzUyZmJmNGY1NTEwNmYyOTgwZmQzY2Q0MjM5N2RiZjcxMzdlZTdmMWUzMmNkODBhM2I3YWIxMmI0NmMxNjkyMjAyNzhkNzcxN2I3OGEzYzQ1ZDYzOTVhMTMwYThiNTg4NDFjYmMyOTBlNGY4MTdkZTNhNGZlMTZlY2QwNzdjYTMzYTBhYTI1ZTIzNWNjN2Y2NjU1YTgwYmE4YWVlYzg3OTA1YmIyYTc1NDU5YjdiY2M1YTEzM2YyOTkzNDkzYjQxZmZjZjYzY2Q3YTM5MWUzZTZmNzgwOTRjYTQ0MmM4MDE0NDQwM2NiMGE1ZjAwYmZjNjFhZTg4MCIKIAogUEtDUzcgUGFyc2UgRmFpbHVyZSBJbnZhbGlkIEFTTjE6IENoYW5nZSBsZW5ndGggZnJvbSAxMiB0byAxMyAjNzcwLjAKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBwa2NzN19hc24xX2ZhaWw6IjMwODIwNDlkMDYwOTJhODY0ODg2ZjcwZDAxMDcwMmEwODIwNDhlMzA4MjA0OGEwMjAxMDEzMTBmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwYjA2MDkyYTg2NDg4NmY3MGQwMTA3MDEzMTgyMDQ2NTMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTAyMTQ3YmRlZGRkMjQ0NGNkMWNkZmU1YzQxYTgxMDJjODliN2RmMmU2Y2JmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDA1YmVjZDg3MTk1YzFkZWZmOTBjMjRjOTEyNjliNTViM2YwNjliYzIyNWMzMjZjMzE0YzFhNTE3ODZmZmUxNGM4MzBiZTRlNGJjNzNjYmEzNmM5NzY3N2I0NDE2ODI3OWJlOTFlN2NkZjdjMTkzODZhZTIxODYyNzE5ZDEzYTNhMGZmZjA4MDNkNDYwOTYyZjJjZGE4MzcxNDg0ODczMjUyYzNkNzA1NGRiODE0M2UyYjA4MWEzODE2ZWQwODA0Y2E1MDk5YWU1ZmVjZTgzZDVjMmMzNzgzYjE5ODhiNGI0NmRjOTRlNTU1ODdhMTA3ZWExNTQ2YmYyMmQyOGEwOTdmNjUyYTQwNjZkYzI5NjUyNjkwNjlhZjJmNTE3NmJiOGNlOWNhNmQxMWY5Njc1N2YwMzIwNGY3NTY3MDM1ODdkMDBhZDQyNDc5NmM5MmZjN2FlYjZmNDk0NDMxOTk5ZWRhMzA5OTBlNGY1NzczNjMyZWQyNThmZTAyNzY2NzM1OTlkYTZmY2UzNWNkYWQ3NzI2YTBiYjAyNGNhZDk5NmI4OGUwY2I5ODg1NGNlYjVjMGI2ZWM3NDhkOWY5Y2U2YTZjZDQzNzg1OGJhY2I4MTQ2MThhMjcyZmYzYTQxNWM2ZTA3ZjNkYjA5ODg3NzdmZGVjODQ1YTk3YmY3ZDEwMmRkMDMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMjAyMTQ1NjRkNTU0MDI1YWY1OTllMzI3MDc5YjI3MjBlZjAwZGYzN2NmYjdjMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDAwNDYwOThkYzVmMmI5OWUzYmMyZWQ2NjQyZDdmMGE2MWVmYWJjMTVjMzhjNzYzMzNiY2NjZWVlZTM2OWE0ZjRhNWJkZGE4ZWE1OTI2NDEyNGU0MjlmMDg2MzI2ODNkZGJhMTdiYmYyNjJkODJiNmJlZmEzYjRlMTQ4MDM3NmE4YzdmM2M3ZDdlMmE2Nzc5YmJmMTgyNjJhYTg1N2RlOGMyMGExMmI2YTJjZThlNGQ3ZjMxZGQxYjE5NTM5MmNmNjE4NWFmY2UzNGFmZTA1ODk2MDU3YjM2ZTliMTcxYjZjNjdlZDdjMjI4NmNiZmE4M2ZmOGExNjdjN2JjNzEwOWFlZTdkN2UxOTA5YmQzODRmYmZjNjE5MzhlZmNhNTFjODk5M2M3MWRiMzE3NzMwZjE2ZTdlNzc2ODY3YWU0ZmRjNTYyZDZmMTVkZTU4NWU3Yjk0ZWY0OTZhMzY3NjM2N2EyY2JhYWI3YjYzNjY0OGIwMDc2YmFkNWNkZjFlMDk3NDBlYzZhNDUxYmZmNTM0ZWZhMjE1MDlmM2JhNzdiODEwMWI5MWVhN2U1NWRkYmZlMTQwMTUxNzA2N2Q3YjAxYTJhMDg3OWYwODg1Yzg5NGE4N2NmYjY4YzRkN2VlODkwNjA0ODgxYWViOTdjMjJkMWYzMzdlZjkyM2UwMzVhNjQwMDMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwZDUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMzAyMTQ2MjQ3NzI5ODc1OWU4ZTA0NzE4YWU1NjMxNTVmMzUyM2NmYjg0Y2RiMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDA2ZDJjYmIzN2ZkMTI5NTdlNWE3NDgwY2UwNDM1ZThlZjYwNzdkZWYwOGZmMjcwODQ0ZGUyNTE2YTQ3NDJmMjExZDhjNzQ2OTBiYzA5NDhlMDhhMjk2YWJiYTkyODVmNmJiMzA1Yjk1YjdmOTQwOGNlNDRlODM4ODBjNzE5NDQ0NjcyZWM5OTc0NmJhNzhjYzRiZGU0NzUzMTlkMDFiZGU3N2M0OWQ1OGQxNmQzYjJlOTFjMmU2MWU4MzAzY2EzZDdlZGEzNzk3ZmQ4YjM1Y2E3MmJiMTRiMTVhMjRiNTZiYjcwZGMxMzQ4NDU2NTgwODExMGZmNWRiNThjNTZmN2EwNDM1NjA3ZTNjMzUyZmJmNGY1NTEwNmYyOTgwZmQzY2Q0MjM5N2RiZjcxMzdlZTdmMWUzMmNkODBhM2I3YWIxMmI0NmMxNjkyMjAyNzhkNzcxN2I3OGEzYzQ1ZDYzOTVhMTMwYThiNTg4NDFjYmMyOTBlNGY4MTdkZTNhNGZlMTZlY2QwNzdjYTMzYTBhYTI1ZTIzNWNjN2Y2NjU1YTgwYmE4YWVlYzg3OTA1YmIyYTc1NDU5YjdiY2M1YTEzM2YyOTkzNDkzYjQxZmZjZjYzY2Q3YTM5MWUzZTZmNzgwOTRjYTQ0MmM4MDE0NDQwM2NiMGE1ZjAwYmZjNjFhZTg4MCIKIAogUEtDUzcgUGFyc2UgRmFpbHVyZSBJbnZhbGlkIEFTTjE6IENoYW5nZSBsZW5ndGggZnJvbSAxMiB0byAxMSAjNzcxLjAKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBwa2NzN19hc24xX2ZhaWw6IjMwODIwNDlkMDYwOTJhODY0ODg2ZjcwZDAxMDcwMmEwODIwNDhlMzA4MjA0OGEwMjAxMDEzMTBmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwYjA2MDkyYTg2NDg4NmY3MGQwMTA3MDEzMTgyMDQ2NTMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTAyMTQ3YmRlZGRkMjQ0NGNkMWNkZmU1YzQxYTgxMDJjODliN2RmMmU2Y2JmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDA1YmVjZDg3MTk1YzFkZWZmOTBjMjRjOTEyNjliNTViM2YwNjliYzIyNWMzMjZjMzE0YzFhNTE3ODZmZmUxNGM4MzBiZTRlNGJjNzNjYmEzNmM5NzY3N2I0NDE2ODI3OWJlOTFlN2NkZjdjMTkzODZhZTIxODYyNzE5ZDEzYTNhMGZmZjA4MDNkNDYwOTYyZjJjZGE4MzcxNDg0ODczMjUyYzNkNzA1NGRiODE0M2UyYjA4MWEzODE2ZWQwODA0Y2E1MDk5YWU1ZmVjZTgzZDVjMmMzNzgzYjE5ODhiNGI0NmRjOTRlNTU1ODdhMTA3ZWExNTQ2YmYyMmQyOGEwOTdmNjUyYTQwNjZkYzI5NjUyNjkwNjlhZjJmNTE3NmJiOGNlOWNhNmQxMWY5Njc1N2YwMzIwNGY3NTY3MDM1ODdkMDBhZDQyNDc5NmM5MmZjN2FlYjZmNDk0NDMxOTk5ZWRhMzA5OTBlNGY1NzczNjMyZWQyNThmZTAyNzY2NzM1OTlkYTZmY2UzNWNkYWQ3NzI2YTBiYjAyNGNhZDk5NmI4OGUwY2I5ODg1NGNlYjVjMGI2ZWM3NDhkOWY5Y2U2YTZjZDQzNzg1OGJhY2I4MTQ2MThhMjcyZmYzYTQxNWM2ZTA3ZjNkYjA5ODg3NzdmZGVjODQ1YTk3YmY3ZDEwMmRkMDMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMjAyMTQ1NjRkNTU0MDI1YWY1OTllMzI3MDc5YjI3MjBlZjAwZGYzN2NmYjdjMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDAwNDYwOThkYzVmMmI5OWUzYmMyZWQ2NjQyZDdmMGE2MWVmYWJjMTVjMzhjNzYzMzNiY2NjZWVlZTM2OWE0ZjRhNWJkZGE4ZWE1OTI2NDEyNGU0MjlmMDg2MzI2ODNkZGJhMTdiYmYyNjJkODJiNmJlZmEzYjRlMTQ4MDM3NmE4YzdmM2M3ZDdlMmE2Nzc5YmJmMTgyNjJhYTg1N2RlOGMyMGExMmI2YTJjZThlNGQ3ZjMxZGQxYjE5NTM5MmNmNjE4NWFmY2UzNGFmZTA1ODk2MDU3YjM2ZTliMTcxYjZjNjdlZDdjMjI4NmNiZmE4M2ZmOGExNjdjN2JjNzEwOWFlZTdkN2UxOTA5YmQzODRmYmZjNjE5MzhlZmNhNTFjODk5M2M3MWRiMzE3NzMwZjE2ZTdlNzc2ODY3YWU0ZmRjNTYyZDZmMTVkZTU4NWU3Yjk0ZWY0OTZhMzY3NjM2N2EyY2JhYWI3YjYzNjY0OGIwMDc2YmFkNWNkZjFlMDk3NDBlYzZhNDUxYmZmNTM0ZWZhMjE1MDlmM2JhNzdiODEwMWI5MWVhN2U1NWRkYmZlMTQwMTUxNzA2N2Q3YjAxYTJhMDg3OWYwODg1Yzg5NGE4N2NmYjY4YzRkN2VlODkwNjA0ODgxYWViOTdjMjJkMWYzMzdlZjkyM2UwMzVhNjQwMDMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYjUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMzAyMTQ2MjQ3NzI5ODc1OWU4ZTA0NzE4YWU1NjMxNTVmMzUyM2NmYjg0Y2RiMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDA2ZDJjYmIzN2ZkMTI5NTdlNWE3NDgwY2UwNDM1ZThlZjYwNzdkZWYwOGZmMjcwODQ0ZGUyNTE2YTQ3NDJmMjExZDhjNzQ2OTBiYzA5NDhlMDhhMjk2YWJiYTkyODVmNmJiMzA1Yjk1YjdmOTQwOGNlNDRlODM4ODBjNzE5NDQ0NjcyZWM5OTc0NmJhNzhjYzRiZGU0NzUzMTlkMDFiZGU3N2M0OWQ1OGQxNmQzYjJlOTFjMmU2MWU4MzAzY2EzZDdlZGEzNzk3ZmQ4YjM1Y2E3MmJiMTRiMTVhMjRiNTZiYjcwZGMxMzQ4NDU2NTgwODExMGZmNWRiNThjNTZmN2EwNDM1NjA3ZTNjMzUyZmJmNGY1NTEwNmYyOTgwZmQzY2Q0MjM5N2RiZjcxMzdlZTdmMWUzMmNkODBhM2I3YWIxMmI0NmMxNjkyMjAyNzhkNzcxN2I3OGEzYzQ1ZDYzOTVhMTMwYThiNTg4NDFjYmMyOTBlNGY4MTdkZTNhNGZlMTZlY2QwNzdjYTMzYTBhYTI1ZTIzNWNjN2Y2NjU1YTgwYmE4YWVlYzg3OTA1YmIyYTc1NDU5YjdiY2M1YTEzM2YyOTkzNDkzYjQxZmZjZjYzY2Q3YTM5MWUzZTZmNzgwOTRjYTQ0MmM4MDE0NDQwM2NiMGE1ZjAwYmZjNjFhZTg4MCIKIAogUEtDUzcgUGFyc2UgRmFpbHVyZSBJbnZhbGlkIEFTTjE6IENoYW5nZSB0YWcgMDIgdG8gMDQgIzc3Mi4wCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NgogcGtjczdfYXNuMV9mYWlsOiIzMDgyMDQ5ZDA2MDkyYTg2NDg4NmY3MGQwMTA3MDJhMDgyMDQ4ZTMwODIwNDhhMDIwMTAxMzEwZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGIwNjA5MmE4NjQ4ODZmNzBkMDEwNzAxMzE4MjA0NjUzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwNWJlY2Q4NzE5NWMxZGVmZjkwYzI0YzkxMjY5YjU1YjNmMDY5YmMyMjVjMzI2YzMxNGMxYTUxNzg2ZmZlMTRjODMwYmU0ZTRiYzczY2JhMzZjOTc2NzdiNDQxNjgyNzliZTkxZTdjZGY3YzE5Mzg2YWUyMTg2MjcxOWQxM2EzYTBmZmYwODAzZDQ2MDk2MmYyY2RhODM3MTQ4NDg3MzI1MmMzZDcwNTRkYjgxNDNlMmIwODFhMzgxNmVkMDgwNGNhNTA5OWFlNWZlY2U4M2Q1YzJjMzc4M2IxOTg4YjRiNDZkYzk0ZTU1NTg3YTEwN2VhMTU0NmJmMjJkMjhhMDk3ZjY1MmE0MDY2ZGMyOTY1MjY5MDY5YWYyZjUxNzZiYjhjZTljYTZkMTFmOTY3NTdmMDMyMDRmNzU2NzAzNTg3ZDAwYWQ0MjQ3OTZjOTJmYzdhZWI2ZjQ5NDQzMTk5OWVkYTMwOTkwZTRmNTc3MzYzMmVkMjU4ZmUwMjc2NjczNTk5ZGE2ZmNlMzVjZGFkNzcyNmEwYmIwMjRjYWQ5OTZiODhlMGNiOTg4NTRjZWI1YzBiNmVjNzQ4ZDlmOWNlNmE2Y2Q0Mzc4NThiYWNiODE0NjE4YTI3MmZmM2E0MTVjNmUwN2YzZGIwOTg4Nzc3ZmRlYzg0NWE5N2JmN2QxMDJkZDAzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzIwMjE0NTY0ZDU1NDAyNWFmNTk5ZTMyNzA3OWIyNzIwZWYwMGRmMzdjZmI3YzMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwMDQ2MDk4ZGM1ZjJiOTllM2JjMmVkNjY0MmQ3ZjBhNjFlZmFiYzE1YzM4Yzc2MzMzYmNjY2VlZWUzNjlhNGY0YTViZGRhOGVhNTkyNjQxMjRlNDI5ZjA4NjMyNjgzZGRiYTE3YmJmMjYyZDgyYjZiZWZhM2I0ZTE0ODAzNzZhOGM3ZjNjN2Q3ZTJhNjc3OWJiZjE4MjYyYWE4NTdkZThjMjBhMTJiNmEyY2U4ZTRkN2YzMWRkMWIxOTUzOTJjZjYxODVhZmNlMzRhZmUwNTg5NjA1N2IzNmU5YjE3MWI2YzY3ZWQ3YzIyODZjYmZhODNmZjhhMTY3YzdiYzcxMDlhZWU3ZDdlMTkwOWJkMzg0ZmJmYzYxOTM4ZWZjYTUxYzg5OTNjNzFkYjMxNzczMGYxNmU3ZTc3Njg2N2FlNGZkYzU2MmQ2ZjE1ZGU1ODVlN2I5NGVmNDk2YTM2NzYzNjdhMmNiYWFiN2I2MzY2NDhiMDA3NmJhZDVjZGYxZTA5NzQwZWM2YTQ1MWJmZjUzNGVmYTIxNTA5ZjNiYTc3YjgxMDFiOTFlYTdlNTVkZGJmZTE0MDE1MTcwNjdkN2IwMWEyYTA4NzlmMDg4NWM4OTRhODdjZmI2OGM0ZDdlZTg5MDYwNDg4MWFlYjk3YzIyZDFmMzM3ZWY5MjNlMDM1YTY0MDAzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzMwNDE0NjI0NzcyOTg3NTllOGUwNDcxOGFlNTYzMTU1ZjM1MjNjZmI4NGNkYjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwNmQyY2JiMzdmZDEyOTU3ZTVhNzQ4MGNlMDQzNWU4ZWY2MDc3ZGVmMDhmZjI3MDg0NGRlMjUxNmE0NzQyZjIxMWQ4Yzc0NjkwYmMwOTQ4ZTA4YTI5NmFiYmE5Mjg1ZjZiYjMwNWI5NWI3Zjk0MDhjZTQ0ZTgzODgwYzcxOTQ0NDY3MmVjOTk3NDZiYTc4Y2M0YmRlNDc1MzE5ZDAxYmRlNzdjNDlkNThkMTZkM2IyZTkxYzJlNjFlODMwM2NhM2Q3ZWRhMzc5N2ZkOGIzNWNhNzJiYjE0YjE1YTI0YjU2YmI3MGRjMTM0ODQ1NjU4MDgxMTBmZjVkYjU4YzU2ZjdhMDQzNTYwN2UzYzM1MmZiZjRmNTUxMDZmMjk4MGZkM2NkNDIzOTdkYmY3MTM3ZWU3ZjFlMzJjZDgwYTNiN2FiMTJiNDZjMTY5MjIwMjc4ZDc3MTdiNzhhM2M0NWQ2Mzk1YTEzMGE4YjU4ODQxY2JjMjkwZTRmODE3ZGUzYTRmZTE2ZWNkMDc3Y2EzM2EwYWEyNWUyMzVjYzdmNjY1NWE4MGJhOGFlZWM4NzkwNWJiMmE3NTQ1OWI3YmNjNWExMzNmMjk5MzQ5M2I0MWZmY2Y2M2NkN2EzOTFlM2U2Zjc4MDk0Y2E0NDJjODAxNDQ0MDNjYjBhNWYwMGJmYzYxYWU4ODAiCiAKIFBLQ1M3IFBhcnNlIEZhaWx1cmUgSW52YWxpZCBBU04xOiBDaGFuZ2UgbGVuZ3RoIGZyb20gMjAgdG8gMjEgIzc3My4wCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NgogcGtjczdfYXNuMV9mYWlsOiIzMDgyMDQ5ZDA2MDkyYTg2NDg4NmY3MGQwMTA3MDJhMDgyMDQ4ZTMwODIwNDhhMDIwMTAxMzEwZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGIwNjA5MmE4NjQ4ODZmNzBkMDEwNzAxMzE4MjA0NjUzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwNWJlY2Q4NzE5NWMxZGVmZjkwYzI0YzkxMjY5YjU1YjNmMDY5YmMyMjVjMzI2YzMxNGMxYTUxNzg2ZmZlMTRjODMwYmU0ZTRiYzczY2JhMzZjOTc2NzdiNDQxNjgyNzliZTkxZTdjZGY3YzE5Mzg2YWUyMTg2MjcxOWQxM2EzYTBmZmYwODAzZDQ2MDk2MmYyY2RhODM3MTQ4NDg3MzI1MmMzZDcwNTRkYjgxNDNlMmIwODFhMzgxNmVkMDgwNGNhNTA5OWFlNWZlY2U4M2Q1YzJjMzc4M2IxOTg4YjRiNDZkYzk0ZTU1NTg3YTEwN2VhMTU0NmJmMjJkMjhhMDk3ZjY1MmE0MDY2ZGMyOTY1MjY5MDY5YWYyZjUxNzZiYjhjZTljYTZkMTFmOTY3NTdmMDMyMDRmNzU2NzAzNTg3ZDAwYWQ0MjQ3OTZjOTJmYzdhZWI2ZjQ5NDQzMTk5OWVkYTMwOTkwZTRmNTc3MzYzMmVkMjU4ZmUwMjc2NjczNTk5ZGE2ZmNlMzVjZGFkNzcyNmEwYmIwMjRjYWQ5OTZiODhlMGNiOTg4NTRjZWI1YzBiNmVjNzQ4ZDlmOWNlNmE2Y2Q0Mzc4NThiYWNiODE0NjE4YTI3MmZmM2E0MTVjNmUwN2YzZGIwOTg4Nzc3ZmRlYzg0NWE5N2JmN2QxMDJkZDAzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzIwMjE0NTY0ZDU1NDAyNWFmNTk5ZTMyNzA3OWIyNzIwZWYwMGRmMzdjZmI3YzMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwMDQ2MDk4ZGM1ZjJiOTllM2JjMmVkNjY0MmQ3ZjBhNjFlZmFiYzE1YzM4Yzc2MzMzYmNjY2VlZWUzNjlhNGY0YTViZGRhOGVhNTkyNjQxMjRlNDI5ZjA4NjMyNjgzZGRiYTE3YmJmMjYyZDgyYjZiZWZhM2I0ZTE0ODAzNzZhOGM3ZjNjN2Q3ZTJhNjc3OWJiZjE4MjYyYWE4NTdkZThjMjBhMTJiNmEyY2U4ZTRkN2YzMWRkMWIxOTUzOTJjZjYxODVhZmNlMzRhZmUwNTg5NjA1N2IzNmU5YjE3MWI2YzY3ZWQ3YzIyODZjYmZhODNmZjhhMTY3YzdiYzcxMDlhZWU3ZDdlMTkwOWJkMzg0ZmJmYzYxOTM4ZWZjYTUxYzg5OTNjNzFkYjMxNzczMGYxNmU3ZTc3Njg2N2FlNGZkYzU2MmQ2ZjE1ZGU1ODVlN2I5NGVmNDk2YTM2NzYzNjdhMmNiYWFiN2I2MzY2NDhiMDA3NmJhZDVjZGYxZTA5NzQwZWM2YTQ1MWJmZjUzNGVmYTIxNTA5ZjNiYTc3YjgxMDFiOTFlYTdlNTVkZGJmZTE0MDE1MTcwNjdkN2IwMWEyYTA4NzlmMDg4NWM4OTRhODdjZmI2OGM0ZDdlZTg5MDYwNDg4MWFlYjk3YzIyZDFmMzM3ZWY5MjNlMDM1YTY0MDAzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzMwMjE1NjI0NzcyOTg3NTllOGUwNDcxOGFlNTYzMTU1ZjM1MjNjZmI4NGNkYjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwNmQyY2JiMzdmZDEyOTU3ZTVhNzQ4MGNlMDQzNWU4ZWY2MDc3ZGVmMDhmZjI3MDg0NGRlMjUxNmE0NzQyZjIxMWQ4Yzc0NjkwYmMwOTQ4ZTA4YTI5NmFiYmE5Mjg1ZjZiYjMwNWI5NWI3Zjk0MDhjZTQ0ZTgzODgwYzcxOTQ0NDY3MmVjOTk3NDZiYTc4Y2M0YmRlNDc1MzE5ZDAxYmRlNzdjNDlkNThkMTZkM2IyZTkxYzJlNjFlODMwM2NhM2Q3ZWRhMzc5N2ZkOGIzNWNhNzJiYjE0YjE1YTI0YjU2YmI3MGRjMTM0ODQ1NjU4MDgxMTBmZjVkYjU4YzU2ZjdhMDQzNTYwN2UzYzM1MmZiZjRmNTUxMDZmMjk4MGZkM2NkNDIzOTdkYmY3MTM3ZWU3ZjFlMzJjZDgwYTNiN2FiMTJiNDZjMTY5MjIwMjc4ZDc3MTdiNzhhM2M0NWQ2Mzk1YTEzMGE4YjU4ODQxY2JjMjkwZTRmODE3ZGUzYTRmZTE2ZWNkMDc3Y2EzM2EwYWEyNWUyMzVjYzdmNjY1NWE4MGJhOGFlZWM4NzkwNWJiMmE3NTQ1OWI3YmNjNWExMzNmMjk5MzQ5M2I0MWZmY2Y2M2NkN2EzOTFlM2U2Zjc4MDk0Y2E0NDJjODAxNDQ0MDNjYjBhNWYwMGJmYzYxYWU4ODAiCiAKIFBLQ1M3IFBhcnNlIEZhaWx1cmUgSW52YWxpZCBBU04xOiBDaGFuZ2UgbGVuZ3RoIGZyb20gMjAgdG8gMTkgIzc3NC4wCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NgogcGtjczdfYXNuMV9mYWlsOiIzMDgyMDQ5ZDA2MDkyYTg2NDg4NmY3MGQwMTA3MDJhMDgyMDQ4ZTMwODIwNDhhMDIwMTAxMzEwZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGIwNjA5MmE4NjQ4ODZmNzBkMDEwNzAxMzE4MjA0NjUzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwNWJlY2Q4NzE5NWMxZGVmZjkwYzI0YzkxMjY5YjU1YjNmMDY5YmMyMjVjMzI2YzMxNGMxYTUxNzg2ZmZlMTRjODMwYmU0ZTRiYzczY2JhMzZjOTc2NzdiNDQxNjgyNzliZTkxZTdjZGY3YzE5Mzg2YWUyMTg2MjcxOWQxM2EzYTBmZmYwODAzZDQ2MDk2MmYyY2RhODM3MTQ4NDg3MzI1MmMzZDcwNTRkYjgxNDNlMmIwODFhMzgxNmVkMDgwNGNhNTA5OWFlNWZlY2U4M2Q1YzJjMzc4M2IxOTg4YjRiNDZkYzk0ZTU1NTg3YTEwN2VhMTU0NmJmMjJkMjhhMDk3ZjY1MmE0MDY2ZGMyOTY1MjY5MDY5YWYyZjUxNzZiYjhjZTljYTZkMTFmOTY3NTdmMDMyMDRmNzU2NzAzNTg3ZDAwYWQ0MjQ3OTZjOTJmYzdhZWI2ZjQ5NDQzMTk5OWVkYTMwOTkwZTRmNTc3MzYzMmVkMjU4ZmUwMjc2NjczNTk5ZGE2ZmNlMzVjZGFkNzcyNmEwYmIwMjRjYWQ5OTZiODhlMGNiOTg4NTRjZWI1YzBiNmVjNzQ4ZDlmOWNlNmE2Y2Q0Mzc4NThiYWNiODE0NjE4YTI3MmZmM2E0MTVjNmUwN2YzZGIwOTg4Nzc3ZmRlYzg0NWE5N2JmN2QxMDJkZDAzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzIwMjE0NTY0ZDU1NDAyNWFmNTk5ZTMyNzA3OWIyNzIwZWYwMGRmMzdjZmI3YzMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwMDQ2MDk4ZGM1ZjJiOTllM2JjMmVkNjY0MmQ3ZjBhNjFlZmFiYzE1YzM4Yzc2MzMzYmNjY2VlZWUzNjlhNGY0YTViZGRhOGVhNTkyNjQxMjRlNDI5ZjA4NjMyNjgzZGRiYTE3YmJmMjYyZDgyYjZiZWZhM2I0ZTE0ODAzNzZhOGM3ZjNjN2Q3ZTJhNjc3OWJiZjE4MjYyYWE4NTdkZThjMjBhMTJiNmEyY2U4ZTRkN2YzMWRkMWIxOTUzOTJjZjYxODVhZmNlMzRhZmUwNTg5NjA1N2IzNmU5YjE3MWI2YzY3ZWQ3YzIyODZjYmZhODNmZjhhMTY3YzdiYzcxMDlhZWU3ZDdlMTkwOWJkMzg0ZmJmYzYxOTM4ZWZjYTUxYzg5OTNjNzFkYjMxNzczMGYxNmU3ZTc3Njg2N2FlNGZkYzU2MmQ2ZjE1ZGU1ODVlN2I5NGVmNDk2YTM2NzYzNjdhMmNiYWFiN2I2MzY2NDhiMDA3NmJhZDVjZGYxZTA5NzQwZWM2YTQ1MWJmZjUzNGVmYTIxNTA5ZjNiYTc3YjgxMDFiOTFlYTdlNTVkZGJmZTE0MDE1MTcwNjdkN2IwMWEyYTA4NzlmMDg4NWM4OTRhODdjZmI2OGM0ZDdlZTg5MDYwNDg4MWFlYjk3YzIyZDFmMzM3ZWY5MjNlMDM1YTY0MDAzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzMwMjEzNjI0NzcyOTg3NTllOGUwNDcxOGFlNTYzMTU1ZjM1MjNjZmI4NGNkYjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwNmQyY2JiMzdmZDEyOTU3ZTVhNzQ4MGNlMDQzNWU4ZWY2MDc3ZGVmMDhmZjI3MDg0NGRlMjUxNmE0NzQyZjIxMWQ4Yzc0NjkwYmMwOTQ4ZTA4YTI5NmFiYmE5Mjg1ZjZiYjMwNWI5NWI3Zjk0MDhjZTQ0ZTgzODgwYzcxOTQ0NDY3MmVjOTk3NDZiYTc4Y2M0YmRlNDc1MzE5ZDAxYmRlNzdjNDlkNThkMTZkM2IyZTkxYzJlNjFlODMwM2NhM2Q3ZWRhMzc5N2ZkOGIzNWNhNzJiYjE0YjE1YTI0YjU2YmI3MGRjMTM0ODQ1NjU4MDgxMTBmZjVkYjU4YzU2ZjdhMDQzNTYwN2UzYzM1MmZiZjRmNTUxMDZmMjk4MGZkM2NkNDIzOTdkYmY3MTM3ZWU3ZjFlMzJjZDgwYTNiN2FiMTJiNDZjMTY5MjIwMjc4ZDc3MTdiNzhhM2M0NWQ2Mzk1YTEzMGE4YjU4ODQxY2JjMjkwZTRmODE3ZGUzYTRmZTE2ZWNkMDc3Y2EzM2EwYWEyNWUyMzVjYzdmNjY1NWE4MGJhOGFlZWM4NzkwNWJiMmE3NTQ1OWI3YmNjNWExMzNmMjk5MzQ5M2I0MWZmY2Y2M2NkN2EzOTFlM2U2Zjc4MDk0Y2E0NDJjODAxNDQ0MDNjYjBhNWYwMGJmYzYxYWU4ODAiCiAKIFBLQ1M3IFBhcnNlIEZhaWx1cmUgSW52YWxpZCBBU04xOiBDaGFuZ2UgdGFnIDMwIHRvIDAyICM3NzUuMAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHBrY3M3X2FzbjFfZmFpbDoiMzA4MjA0OWQwNjA5MmE4NjQ4ODZmNzBkMDEwNzAyYTA4MjA0OGUzMDgyMDQ4YTAyMDEwMTMxMGYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBiMDYwOTJhODY0ODg2ZjcwZDAxMDcwMTMxODIwNDY1MzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDViZWNkODcxOTVjMWRlZmY5MGMyNGM5MTI2OWI1NWIzZjA2OWJjMjI1YzMyNmMzMTRjMWE1MTc4NmZmZTE0YzgzMGJlNGU0YmM3M2NiYTM2Yzk3Njc3YjQ0MTY4Mjc5YmU5MWU3Y2RmN2MxOTM4NmFlMjE4NjI3MTlkMTNhM2EwZmZmMDgwM2Q0NjA5NjJmMmNkYTgzNzE0ODQ4NzMyNTJjM2Q3MDU0ZGI4MTQzZTJiMDgxYTM4MTZlZDA4MDRjYTUwOTlhZTVmZWNlODNkNWMyYzM3ODNiMTk4OGI0YjQ2ZGM5NGU1NTU4N2ExMDdlYTE1NDZiZjIyZDI4YTA5N2Y2NTJhNDA2NmRjMjk2NTI2OTA2OWFmMmY1MTc2YmI4Y2U5Y2E2ZDExZjk2NzU3ZjAzMjA0Zjc1NjcwMzU4N2QwMGFkNDI0Nzk2YzkyZmM3YWViNmY0OTQ0MzE5OTllZGEzMDk5MGU0ZjU3NzM2MzJlZDI1OGZlMDI3NjY3MzU5OWRhNmZjZTM1Y2RhZDc3MjZhMGJiMDI0Y2FkOTk2Yjg4ZTBjYjk4ODU0Y2ViNWMwYjZlYzc0OGQ5ZjljZTZhNmNkNDM3ODU4YmFjYjgxNDYxOGEyNzJmZjNhNDE1YzZlMDdmM2RiMDk4ODc3N2ZkZWM4NDVhOTdiZjdkMTAyZGQwMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMyMDIxNDU2NGQ1NTQwMjVhZjU5OWUzMjcwNzliMjcyMGVmMDBkZjM3Y2ZiN2MzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDA0NjA5OGRjNWYyYjk5ZTNiYzJlZDY2NDJkN2YwYTYxZWZhYmMxNWMzOGM3NjMzM2JjY2NlZWVlMzY5YTRmNGE1YmRkYThlYTU5MjY0MTI0ZTQyOWYwODYzMjY4M2RkYmExN2JiZjI2MmQ4MmI2YmVmYTNiNGUxNDgwMzc2YThjN2YzYzdkN2UyYTY3NzliYmYxODI2MmFhODU3ZGU4YzIwYTEyYjZhMmNlOGU0ZDdmMzFkZDFiMTk1MzkyY2Y2MTg1YWZjZTM0YWZlMDU4OTYwNTdiMzZlOWIxNzFiNmM2N2VkN2MyMjg2Y2JmYTgzZmY4YTE2N2M3YmM3MTA5YWVlN2Q3ZTE5MDliZDM4NGZiZmM2MTkzOGVmY2E1MWM4OTkzYzcxZGIzMTc3MzBmMTZlN2U3NzY4NjdhZTRmZGM1NjJkNmYxNWRlNTg1ZTdiOTRlZjQ5NmEzNjc2MzY3YTJjYmFhYjdiNjM2NjQ4YjAwNzZiYWQ1Y2RmMWUwOTc0MGVjNmE0NTFiZmY1MzRlZmEyMTUwOWYzYmE3N2I4MTAxYjkxZWE3ZTU1ZGRiZmUxNDAxNTE3MDY3ZDdiMDFhMmEwODc5ZjA4ODVjODk0YTg3Y2ZiNjhjNGQ3ZWU4OTA2MDQ4ODFhZWI5N2MyMmQxZjMzN2VmOTIzZTAzNWE2NDAwMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMzMDIxNDYyNDc3Mjk4NzU5ZThlMDQ3MThhZTU2MzE1NWYzNTIzY2ZiODRjZGIwMjBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDZkMmNiYjM3ZmQxMjk1N2U1YTc0ODBjZTA0MzVlOGVmNjA3N2RlZjA4ZmYyNzA4NDRkZTI1MTZhNDc0MmYyMTFkOGM3NDY5MGJjMDk0OGUwOGEyOTZhYmJhOTI4NWY2YmIzMDViOTViN2Y5NDA4Y2U0NGU4Mzg4MGM3MTk0NDQ2NzJlYzk5NzQ2YmE3OGNjNGJkZTQ3NTMxOWQwMWJkZTc3YzQ5ZDU4ZDE2ZDNiMmU5MWMyZTYxZTgzMDNjYTNkN2VkYTM3OTdmZDhiMzVjYTcyYmIxNGIxNWEyNGI1NmJiNzBkYzEzNDg0NTY1ODA4MTEwZmY1ZGI1OGM1NmY3YTA0MzU2MDdlM2MzNTJmYmY0ZjU1MTA2ZjI5ODBmZDNjZDQyMzk3ZGJmNzEzN2VlN2YxZTMyY2Q4MGEzYjdhYjEyYjQ2YzE2OTIyMDI3OGQ3NzE3Yjc4YTNjNDVkNjM5NWExMzBhOGI1ODg0MWNiYzI5MGU0ZjgxN2RlM2E0ZmUxNmVjZDA3N2NhMzNhMGFhMjVlMjM1Y2M3ZjY2NTVhODBiYThhZWVjODc5MDViYjJhNzU0NTliN2JjYzVhMTMzZjI5OTM0OTNiNDFmZmNmNjNjZDdhMzkxZTNlNmY3ODA5NGNhNDQyYzgwMTQ0NDAzY2IwYTVmMDBiZmM2MWFlODgwIgogCiBQS0NTNyBQYXJzZSBGYWlsdXJlIEludmFsaWQgQVNOMTogQ2hhbmdlIGxlbmd0aCBmcm9tIDEzIHRvIDE0ICM3NzYuMAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHBrY3M3X2FzbjFfZmFpbDoiMzA4MjA0OWQwNjA5MmE4NjQ4ODZmNzBkMDEwNzAyYTA4MjA0OGUzMDgyMDQ4YTAyMDEwMTMxMGYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBiMDYwOTJhODY0ODg2ZjcwZDAxMDcwMTMxODIwNDY1MzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDViZWNkODcxOTVjMWRlZmY5MGMyNGM5MTI2OWI1NWIzZjA2OWJjMjI1YzMyNmMzMTRjMWE1MTc4NmZmZTE0YzgzMGJlNGU0YmM3M2NiYTM2Yzk3Njc3YjQ0MTY4Mjc5YmU5MWU3Y2RmN2MxOTM4NmFlMjE4NjI3MTlkMTNhM2EwZmZmMDgwM2Q0NjA5NjJmMmNkYTgzNzE0ODQ4NzMyNTJjM2Q3MDU0ZGI4MTQzZTJiMDgxYTM4MTZlZDA4MDRjYTUwOTlhZTVmZWNlODNkNWMyYzM3ODNiMTk4OGI0YjQ2ZGM5NGU1NTU4N2ExMDdlYTE1NDZiZjIyZDI4YTA5N2Y2NTJhNDA2NmRjMjk2NTI2OTA2OWFmMmY1MTc2YmI4Y2U5Y2E2ZDExZjk2NzU3ZjAzMjA0Zjc1NjcwMzU4N2QwMGFkNDI0Nzk2YzkyZmM3YWViNmY0OTQ0MzE5OTllZGEzMDk5MGU0ZjU3NzM2MzJlZDI1OGZlMDI3NjY3MzU5OWRhNmZjZTM1Y2RhZDc3MjZhMGJiMDI0Y2FkOTk2Yjg4ZTBjYjk4ODU0Y2ViNWMwYjZlYzc0OGQ5ZjljZTZhNmNkNDM3ODU4YmFjYjgxNDYxOGEyNzJmZjNhNDE1YzZlMDdmM2RiMDk4ODc3N2ZkZWM4NDVhOTdiZjdkMTAyZGQwMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMyMDIxNDU2NGQ1NTQwMjVhZjU5OWUzMjcwNzliMjcyMGVmMDBkZjM3Y2ZiN2MzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDA0NjA5OGRjNWYyYjk5ZTNiYzJlZDY2NDJkN2YwYTYxZWZhYmMxNWMzOGM3NjMzM2JjY2NlZWVlMzY5YTRmNGE1YmRkYThlYTU5MjY0MTI0ZTQyOWYwODYzMjY4M2RkYmExN2JiZjI2MmQ4MmI2YmVmYTNiNGUxNDgwMzc2YThjN2YzYzdkN2UyYTY3NzliYmYxODI2MmFhODU3ZGU4YzIwYTEyYjZhMmNlOGU0ZDdmMzFkZDFiMTk1MzkyY2Y2MTg1YWZjZTM0YWZlMDU4OTYwNTdiMzZlOWIxNzFiNmM2N2VkN2MyMjg2Y2JmYTgzZmY4YTE2N2M3YmM3MTA5YWVlN2Q3ZTE5MDliZDM4NGZiZmM2MTkzOGVmY2E1MWM4OTkzYzcxZGIzMTc3MzBmMTZlN2U3NzY4NjdhZTRmZGM1NjJkNmYxNWRlNTg1ZTdiOTRlZjQ5NmEzNjc2MzY3YTJjYmFhYjdiNjM2NjQ4YjAwNzZiYWQ1Y2RmMWUwOTc0MGVjNmE0NTFiZmY1MzRlZmEyMTUwOWYzYmE3N2I4MTAxYjkxZWE3ZTU1ZGRiZmUxNDAxNTE3MDY3ZDdiMDFhMmEwODc5ZjA4ODVjODk0YTg3Y2ZiNjhjNGQ3ZWU4OTA2MDQ4ODFhZWI5N2MyMmQxZjMzN2VmOTIzZTAzNWE2NDAwMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMzMDIxNDYyNDc3Mjk4NzU5ZThlMDQ3MThhZTU2MzE1NWYzNTIzY2ZiODRjZGIzMDBlMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDZkMmNiYjM3ZmQxMjk1N2U1YTc0ODBjZTA0MzVlOGVmNjA3N2RlZjA4ZmYyNzA4NDRkZTI1MTZhNDc0MmYyMTFkOGM3NDY5MGJjMDk0OGUwOGEyOTZhYmJhOTI4NWY2YmIzMDViOTViN2Y5NDA4Y2U0NGU4Mzg4MGM3MTk0NDQ2NzJlYzk5NzQ2YmE3OGNjNGJkZTQ3NTMxOWQwMWJkZTc3YzQ5ZDU4ZDE2ZDNiMmU5MWMyZTYxZTgzMDNjYTNkN2VkYTM3OTdmZDhiMzVjYTcyYmIxNGIxNWEyNGI1NmJiNzBkYzEzNDg0NTY1ODA4MTEwZmY1ZGI1OGM1NmY3YTA0MzU2MDdlM2MzNTJmYmY0ZjU1MTA2ZjI5ODBmZDNjZDQyMzk3ZGJmNzEzN2VlN2YxZTMyY2Q4MGEzYjdhYjEyYjQ2YzE2OTIyMDI3OGQ3NzE3Yjc4YTNjNDVkNjM5NWExMzBhOGI1ODg0MWNiYzI5MGU0ZjgxN2RlM2E0ZmUxNmVjZDA3N2NhMzNhMGFhMjVlMjM1Y2M3ZjY2NTVhODBiYThhZWVjODc5MDViYjJhNzU0NTliN2JjYzVhMTMzZjI5OTM0OTNiNDFmZmNmNjNjZDdhMzkxZTNlNmY3ODA5NGNhNDQyYzgwMTQ0NDAzY2IwYTVmMDBiZmM2MWFlODgwIgogCiBQS0NTNyBQYXJzZSBGYWlsdXJlIEludmFsaWQgQVNOMTogQ2hhbmdlIGNvbnRlbnRzIG9mIHRhZyAzMCB0byBjb250YWluIG9uZSB1bmFjY291bnRlZCBleHRyYSBieXRlICM3NzcuMAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHBrY3M3X2FzbjFfZmFpbDoiMzA4MjA0OWQwNjA5MmE4NjQ4ODZmNzBkMDEwNzAyYTA4MjA0OGUzMDgyMDQ4YTAyMDEwMTMxMGYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBiMDYwOTJhODY0ODg2ZjcwZDAxMDcwMTMxODIwNDY1MzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDViZWNkODcxOTVjMWRlZmY5MGMyNGM5MTI2OWI1NWIzZjA2OWJjMjI1YzMyNmMzMTRjMWE1MTc4NmZmZTE0YzgzMGJlNGU0YmM3M2NiYTM2Yzk3Njc3YjQ0MTY4Mjc5YmU5MWU3Y2RmN2MxOTM4NmFlMjE4NjI3MTlkMTNhM2EwZmZmMDgwM2Q0NjA5NjJmMmNkYTgzNzE0ODQ4NzMyNTJjM2Q3MDU0ZGI4MTQzZTJiMDgxYTM4MTZlZDA4MDRjYTUwOTlhZTVmZWNlODNkNWMyYzM3ODNiMTk4OGI0YjQ2ZGM5NGU1NTU4N2ExMDdlYTE1NDZiZjIyZDI4YTA5N2Y2NTJhNDA2NmRjMjk2NTI2OTA2OWFmMmY1MTc2YmI4Y2U5Y2E2ZDExZjk2NzU3ZjAzMjA0Zjc1NjcwMzU4N2QwMGFkNDI0Nzk2YzkyZmM3YWViNmY0OTQ0MzE5OTllZGEzMDk5MGU0ZjU3NzM2MzJlZDI1OGZlMDI3NjY3MzU5OWRhNmZjZTM1Y2RhZDc3MjZhMGJiMDI0Y2FkOTk2Yjg4ZTBjYjk4ODU0Y2ViNWMwYjZlYzc0OGQ5ZjljZTZhNmNkNDM3ODU4YmFjYjgxNDYxOGEyNzJmZjNhNDE1YzZlMDdmM2RiMDk4ODc3N2ZkZWM4NDVhOTdiZjdkMTAyZGQwMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMyMDIxNDU2NGQ1NTQwMjVhZjU5OWUzMjcwNzliMjcyMGVmMDBkZjM3Y2ZiN2MzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDA0NjA5OGRjNWYyYjk5ZTNiYzJlZDY2NDJkN2YwYTYxZWZhYmMxNWMzOGM3NjMzM2JjY2NlZWVlMzY5YTRmNGE1YmRkYThlYTU5MjY0MTI0ZTQyOWYwODYzMjY4M2RkYmExN2JiZjI2MmQ4MmI2YmVmYTNiNGUxNDgwMzc2YThjN2YzYzdkN2UyYTY3NzliYmYxODI2MmFhODU3ZGU4YzIwYTEyYjZhMmNlOGU0ZDdmMzFkZDFiMTk1MzkyY2Y2MTg1YWZjZTM0YWZlMDU4OTYwNTdiMzZlOWIxNzFiNmM2N2VkN2MyMjg2Y2JmYTgzZmY4YTE2N2M3YmM3MTA5YWVlN2Q3ZTE5MDliZDM4NGZiZmM2MTkzOGVmY2E1MWM4OTkzYzcxZGIzMTc3MzBmMTZlN2U3NzY4NjdhZTRmZGM1NjJkNmYxNWRlNTg1ZTdiOTRlZjQ5NmEzNjc2MzY3YTJjYmFhYjdiNjM2NjQ4YjAwNzZiYWQ1Y2RmMWUwOTc0MGVjNmE0NTFiZmY1MzRlZmEyMTUwOWYzYmE3N2I4MTAxYjkxZWE3ZTU1ZGRiZmUxNDAxNTE3MDY3ZDdiMDFhMmEwODc5ZjA4ODVjODk0YTg3Y2ZiNjhjNGQ3ZWU4OTA2MDQ4ODFhZWI5N2MyMmQxZjMzN2VmOTIzZTAzNWE2NDAwMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMzMDIxNDYyNDc3Mjk4NzU5ZThlMDQ3MThhZTU2MzE1NWYzNTIzY2ZiODRjZGIzMDBlMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwNmQyY2JiMzdmZDEyOTU3ZTVhNzQ4MGNlMDQzNWU4ZWY2MDc3ZGVmMDhmZjI3MDg0NGRlMjUxNmE0NzQyZjIxMWQ4Yzc0NjkwYmMwOTQ4ZTA4YTI5NmFiYmE5Mjg1ZjZiYjMwNWI5NWI3Zjk0MDhjZTQ0ZTgzODgwYzcxOTQ0NDY3MmVjOTk3NDZiYTc4Y2M0YmRlNDc1MzE5ZDAxYmRlNzdjNDlkNThkMTZkM2IyZTkxYzJlNjFlODMwM2NhM2Q3ZWRhMzc5N2ZkOGIzNWNhNzJiYjE0YjE1YTI0YjU2YmI3MGRjMTM0ODQ1NjU4MDgxMTBmZjVkYjU4YzU2ZjdhMDQzNTYwN2UzYzM1MmZiZjRmNTUxMDZmMjk4MGZkM2NkNDIzOTdkYmY3MTM3ZWU3ZjFlMzJjZDgwYTNiN2FiMTJiNDZjMTY5MjIwMjc4ZDc3MTdiNzhhM2M0NWQ2Mzk1YTEzMGE4YjU4ODQxY2JjMjkwZTRmODE3ZGUzYTRmZTE2ZWNkMDc3Y2EzM2EwYWEyNWUyMzVjYzdmNjY1NWE4MGJhOGFlZWM4NzkwNWJiMmE3NTQ1OWI3YmNjNWExMzNmMjk5MzQ5M2I0MWZmY2Y2M2NkN2EzOTFlM2U2Zjc4MDk0Y2E0NDJjODAxNDQ0MDNjYjBhNWYwMGJmYzYxYWU4ODAiCiAKIFBLQ1M3IFBhcnNlIEZhaWx1cmUgSW52YWxpZCBBU04xOiBDaGFuZ2UgbGVuZ3RoIGZyb20gMTMgdG8gMTIgIzc3OC4wCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NgogcGtjczdfYXNuMV9mYWlsOiIzMDgyMDQ5ZDA2MDkyYTg2NDg4NmY3MGQwMTA3MDJhMDgyMDQ4ZTMwODIwNDhhMDIwMTAxMzEwZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGIwNjA5MmE4NjQ4ODZmNzBkMDEwNzAxMzE4MjA0NjUzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwNWJlY2Q4NzE5NWMxZGVmZjkwYzI0YzkxMjY5YjU1YjNmMDY5YmMyMjVjMzI2YzMxNGMxYTUxNzg2ZmZlMTRjODMwYmU0ZTRiYzczY2JhMzZjOTc2NzdiNDQxNjgyNzliZTkxZTdjZGY3YzE5Mzg2YWUyMTg2MjcxOWQxM2EzYTBmZmYwODAzZDQ2MDk2MmYyY2RhODM3MTQ4NDg3MzI1MmMzZDcwNTRkYjgxNDNlMmIwODFhMzgxNmVkMDgwNGNhNTA5OWFlNWZlY2U4M2Q1YzJjMzc4M2IxOTg4YjRiNDZkYzk0ZTU1NTg3YTEwN2VhMTU0NmJmMjJkMjhhMDk3ZjY1MmE0MDY2ZGMyOTY1MjY5MDY5YWYyZjUxNzZiYjhjZTljYTZkMTFmOTY3NTdmMDMyMDRmNzU2NzAzNTg3ZDAwYWQ0MjQ3OTZjOTJmYzdhZWI2ZjQ5NDQzMTk5OWVkYTMwOTkwZTRmNTc3MzYzMmVkMjU4ZmUwMjc2NjczNTk5ZGE2ZmNlMzVjZGFkNzcyNmEwYmIwMjRjYWQ5OTZiODhlMGNiOTg4NTRjZWI1YzBiNmVjNzQ4ZDlmOWNlNmE2Y2Q0Mzc4NThiYWNiODE0NjE4YTI3MmZmM2E0MTVjNmUwN2YzZGIwOTg4Nzc3ZmRlYzg0NWE5N2JmN2QxMDJkZDAzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzIwMjE0NTY0ZDU1NDAyNWFmNTk5ZTMyNzA3OWIyNzIwZWYwMGRmMzdjZmI3YzMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwMDQ2MDk4ZGM1ZjJiOTllM2JjMmVkNjY0MmQ3ZjBhNjFlZmFiYzE1YzM4Yzc2MzMzYmNjY2VlZWUzNjlhNGY0YTViZGRhOGVhNTkyNjQxMjRlNDI5ZjA4NjMyNjgzZGRiYTE3YmJmMjYyZDgyYjZiZWZhM2I0ZTE0ODAzNzZhOGM3ZjNjN2Q3ZTJhNjc3OWJiZjE4MjYyYWE4NTdkZThjMjBhMTJiNmEyY2U4ZTRkN2YzMWRkMWIxOTUzOTJjZjYxODVhZmNlMzRhZmUwNTg5NjA1N2IzNmU5YjE3MWI2YzY3ZWQ3YzIyODZjYmZhODNmZjhhMTY3YzdiYzcxMDlhZWU3ZDdlMTkwOWJkMzg0ZmJmYzYxOTM4ZWZjYTUxYzg5OTNjNzFkYjMxNzczMGYxNmU3ZTc3Njg2N2FlNGZkYzU2MmQ2ZjE1ZGU1ODVlN2I5NGVmNDk2YTM2NzYzNjdhMmNiYWFiN2I2MzY2NDhiMDA3NmJhZDVjZGYxZTA5NzQwZWM2YTQ1MWJmZjUzNGVmYTIxNTA5ZjNiYTc3YjgxMDFiOTFlYTdlNTVkZGJmZTE0MDE1MTcwNjdkN2IwMWEyYTA4NzlmMDg4NWM4OTRhODdjZmI2OGM0ZDdlZTg5MDYwNDg4MWFlYjk3YzIyZDFmMzM3ZWY5MjNlMDM1YTY0MDAzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzMwMjE0NjI0NzcyOTg3NTllOGUwNDcxOGFlNTYzMTU1ZjM1MjNjZmI4NGNkYjMwMGMwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwNmQyY2JiMzdmZDEyOTU3ZTVhNzQ4MGNlMDQzNWU4ZWY2MDc3ZGVmMDhmZjI3MDg0NGRlMjUxNmE0NzQyZjIxMWQ4Yzc0NjkwYmMwOTQ4ZTA4YTI5NmFiYmE5Mjg1ZjZiYjMwNWI5NWI3Zjk0MDhjZTQ0ZTgzODgwYzcxOTQ0NDY3MmVjOTk3NDZiYTc4Y2M0YmRlNDc1MzE5ZDAxYmRlNzdjNDlkNThkMTZkM2IyZTkxYzJlNjFlODMwM2NhM2Q3ZWRhMzc5N2ZkOGIzNWNhNzJiYjE0YjE1YTI0YjU2YmI3MGRjMTM0ODQ1NjU4MDgxMTBmZjVkYjU4YzU2ZjdhMDQzNTYwN2UzYzM1MmZiZjRmNTUxMDZmMjk4MGZkM2NkNDIzOTdkYmY3MTM3ZWU3ZjFlMzJjZDgwYTNiN2FiMTJiNDZjMTY5MjIwMjc4ZDc3MTdiNzhhM2M0NWQ2Mzk1YTEzMGE4YjU4ODQxY2JjMjkwZTRmODE3ZGUzYTRmZTE2ZWNkMDc3Y2EzM2EwYWEyNWUyMzVjYzdmNjY1NWE4MGJhOGFlZWM4NzkwNWJiMmE3NTQ1OWI3YmNjNWExMzNmMjk5MzQ5M2I0MWZmY2Y2M2NkN2EzOTFlM2U2Zjc4MDk0Y2E0NDJjODAxNDQ0MDNjYjBhNWYwMGJmYzYxYWU4ODAiCiAKIFBLQ1M3IFBhcnNlIEZhaWx1cmUgSW52YWxpZCBBU04xOiBDaGFuZ2UgdGFnIDA2IHRvIDAyICM3NzkuMAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHBrY3M3X2FzbjFfZmFpbDoiMzA4MjA0OWQwNjA5MmE4NjQ4ODZmNzBkMDEwNzAyYTA4MjA0OGUzMDgyMDQ4YTAyMDEwMTMxMGYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBiMDYwOTJhODY0ODg2ZjcwZDAxMDcwMTMxODIwNDY1MzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDViZWNkODcxOTVjMWRlZmY5MGMyNGM5MTI2OWI1NWIzZjA2OWJjMjI1YzMyNmMzMTRjMWE1MTc4NmZmZTE0YzgzMGJlNGU0YmM3M2NiYTM2Yzk3Njc3YjQ0MTY4Mjc5YmU5MWU3Y2RmN2MxOTM4NmFlMjE4NjI3MTlkMTNhM2EwZmZmMDgwM2Q0NjA5NjJmMmNkYTgzNzE0ODQ4NzMyNTJjM2Q3MDU0ZGI4MTQzZTJiMDgxYTM4MTZlZDA4MDRjYTUwOTlhZTVmZWNlODNkNWMyYzM3ODNiMTk4OGI0YjQ2ZGM5NGU1NTU4N2ExMDdlYTE1NDZiZjIyZDI4YTA5N2Y2NTJhNDA2NmRjMjk2NTI2OTA2OWFmMmY1MTc2YmI4Y2U5Y2E2ZDExZjk2NzU3ZjAzMjA0Zjc1NjcwMzU4N2QwMGFkNDI0Nzk2YzkyZmM3YWViNmY0OTQ0MzE5OTllZGEzMDk5MGU0ZjU3NzM2MzJlZDI1OGZlMDI3NjY3MzU5OWRhNmZjZTM1Y2RhZDc3MjZhMGJiMDI0Y2FkOTk2Yjg4ZTBjYjk4ODU0Y2ViNWMwYjZlYzc0OGQ5ZjljZTZhNmNkNDM3ODU4YmFjYjgxNDYxOGEyNzJmZjNhNDE1YzZlMDdmM2RiMDk4ODc3N2ZkZWM4NDVhOTdiZjdkMTAyZGQwMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMyMDIxNDU2NGQ1NTQwMjVhZjU5OWUzMjcwNzliMjcyMGVmMDBkZjM3Y2ZiN2MzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDA0NjA5OGRjNWYyYjk5ZTNiYzJlZDY2NDJkN2YwYTYxZWZhYmMxNWMzOGM3NjMzM2JjY2NlZWVlMzY5YTRmNGE1YmRkYThlYTU5MjY0MTI0ZTQyOWYwODYzMjY4M2RkYmExN2JiZjI2MmQ4MmI2YmVmYTNiNGUxNDgwMzc2YThjN2YzYzdkN2UyYTY3NzliYmYxODI2MmFhODU3ZGU4YzIwYTEyYjZhMmNlOGU0ZDdmMzFkZDFiMTk1MzkyY2Y2MTg1YWZjZTM0YWZlMDU4OTYwNTdiMzZlOWIxNzFiNmM2N2VkN2MyMjg2Y2JmYTgzZmY4YTE2N2M3YmM3MTA5YWVlN2Q3ZTE5MDliZDM4NGZiZmM2MTkzOGVmY2E1MWM4OTkzYzcxZGIzMTc3MzBmMTZlN2U3NzY4NjdhZTRmZGM1NjJkNmYxNWRlNTg1ZTdiOTRlZjQ5NmEzNjc2MzY3YTJjYmFhYjdiNjM2NjQ4YjAwNzZiYWQ1Y2RmMWUwOTc0MGVjNmE0NTFiZmY1MzRlZmEyMTUwOWYzYmE3N2I4MTAxYjkxZWE3ZTU1ZGRiZmUxNDAxNTE3MDY3ZDdiMDFhMmEwODc5ZjA4ODVjODk0YTg3Y2ZiNjhjNGQ3ZWU4OTA2MDQ4ODFhZWI5N2MyMmQxZjMzN2VmOTIzZTAzNWE2NDAwMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMzMDIxNDYyNDc3Mjk4NzU5ZThlMDQ3MThhZTU2MzE1NWYzNTIzY2ZiODRjZGIzMDBkMDIwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDZkMmNiYjM3ZmQxMjk1N2U1YTc0ODBjZTA0MzVlOGVmNjA3N2RlZjA4ZmYyNzA4NDRkZTI1MTZhNDc0MmYyMTFkOGM3NDY5MGJjMDk0OGUwOGEyOTZhYmJhOTI4NWY2YmIzMDViOTViN2Y5NDA4Y2U0NGU4Mzg4MGM3MTk0NDQ2NzJlYzk5NzQ2YmE3OGNjNGJkZTQ3NTMxOWQwMWJkZTc3YzQ5ZDU4ZDE2ZDNiMmU5MWMyZTYxZTgzMDNjYTNkN2VkYTM3OTdmZDhiMzVjYTcyYmIxNGIxNWEyNGI1NmJiNzBkYzEzNDg0NTY1ODA4MTEwZmY1ZGI1OGM1NmY3YTA0MzU2MDdlM2MzNTJmYmY0ZjU1MTA2ZjI5ODBmZDNjZDQyMzk3ZGJmNzEzN2VlN2YxZTMyY2Q4MGEzYjdhYjEyYjQ2YzE2OTIyMDI3OGQ3NzE3Yjc4YTNjNDVkNjM5NWExMzBhOGI1ODg0MWNiYzI5MGU0ZjgxN2RlM2E0ZmUxNmVjZDA3N2NhMzNhMGFhMjVlMjM1Y2M3ZjY2NTVhODBiYThhZWVjODc5MDViYjJhNzU0NTliN2JjYzVhMTMzZjI5OTM0OTNiNDFmZmNmNjNjZDdhMzkxZTNlNmY3ODA5NGNhNDQyYzgwMTQ0NDAzY2IwYTVmMDBiZmM2MWFlODgwIgogCiBQS0NTNyBQYXJzZSBGYWlsdXJlIEludmFsaWQgQVNOMTogQ2hhbmdlIGxlbmd0aCBmcm9tIDkgdG8gMTAgIzc4MC4wCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NgogcGtjczdfYXNuMV9mYWlsOiIzMDgyMDQ5ZDA2MDkyYTg2NDg4NmY3MGQwMTA3MDJhMDgyMDQ4ZTMwODIwNDhhMDIwMTAxMzEwZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGIwNjA5MmE4NjQ4ODZmNzBkMDEwNzAxMzE4MjA0NjUzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwNWJlY2Q4NzE5NWMxZGVmZjkwYzI0YzkxMjY5YjU1YjNmMDY5YmMyMjVjMzI2YzMxNGMxYTUxNzg2ZmZlMTRjODMwYmU0ZTRiYzczY2JhMzZjOTc2NzdiNDQxNjgyNzliZTkxZTdjZGY3YzE5Mzg2YWUyMTg2MjcxOWQxM2EzYTBmZmYwODAzZDQ2MDk2MmYyY2RhODM3MTQ4NDg3MzI1MmMzZDcwNTRkYjgxNDNlMmIwODFhMzgxNmVkMDgwNGNhNTA5OWFlNWZlY2U4M2Q1YzJjMzc4M2IxOTg4YjRiNDZkYzk0ZTU1NTg3YTEwN2VhMTU0NmJmMjJkMjhhMDk3ZjY1MmE0MDY2ZGMyOTY1MjY5MDY5YWYyZjUxNzZiYjhjZTljYTZkMTFmOTY3NTdmMDMyMDRmNzU2NzAzNTg3ZDAwYWQ0MjQ3OTZjOTJmYzdhZWI2ZjQ5NDQzMTk5OWVkYTMwOTkwZTRmNTc3MzYzMmVkMjU4ZmUwMjc2NjczNTk5ZGE2ZmNlMzVjZGFkNzcyNmEwYmIwMjRjYWQ5OTZiODhlMGNiOTg4NTRjZWI1YzBiNmVjNzQ4ZDlmOWNlNmE2Y2Q0Mzc4NThiYWNiODE0NjE4YTI3MmZmM2E0MTVjNmUwN2YzZGIwOTg4Nzc3ZmRlYzg0NWE5N2JmN2QxMDJkZDAzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzIwMjE0NTY0ZDU1NDAyNWFmNTk5ZTMyNzA3OWIyNzIwZWYwMGRmMzdjZmI3YzMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwMDQ2MDk4ZGM1ZjJiOTllM2JjMmVkNjY0MmQ3ZjBhNjFlZmFiYzE1YzM4Yzc2MzMzYmNjY2VlZWUzNjlhNGY0YTViZGRhOGVhNTkyNjQxMjRlNDI5ZjA4NjMyNjgzZGRiYTE3YmJmMjYyZDgyYjZiZWZhM2I0ZTE0ODAzNzZhOGM3ZjNjN2Q3ZTJhNjc3OWJiZjE4MjYyYWE4NTdkZThjMjBhMTJiNmEyY2U4ZTRkN2YzMWRkMWIxOTUzOTJjZjYxODVhZmNlMzRhZmUwNTg5NjA1N2IzNmU5YjE3MWI2YzY3ZWQ3YzIyODZjYmZhODNmZjhhMTY3YzdiYzcxMDlhZWU3ZDdlMTkwOWJkMzg0ZmJmYzYxOTM4ZWZjYTUxYzg5OTNjNzFkYjMxNzczMGYxNmU3ZTc3Njg2N2FlNGZkYzU2MmQ2ZjE1ZGU1ODVlN2I5NGVmNDk2YTM2NzYzNjdhMmNiYWFiN2I2MzY2NDhiMDA3NmJhZDVjZGYxZTA5NzQwZWM2YTQ1MWJmZjUzNGVmYTIxNTA5ZjNiYTc3YjgxMDFiOTFlYTdlNTVkZGJmZTE0MDE1MTcwNjdkN2IwMWEyYTA4NzlmMDg4NWM4OTRhODdjZmI2OGM0ZDdlZTg5MDYwNDg4MWFlYjk3YzIyZDFmMzM3ZWY5MjNlMDM1YTY0MDAzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzMwMjE0NjI0NzcyOTg3NTllOGUwNDcxOGFlNTYzMTU1ZjM1MjNjZmI4NGNkYjMwMGQwNjBhNjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwNmQyY2JiMzdmZDEyOTU3ZTVhNzQ4MGNlMDQzNWU4ZWY2MDc3ZGVmMDhmZjI3MDg0NGRlMjUxNmE0NzQyZjIxMWQ4Yzc0NjkwYmMwOTQ4ZTA4YTI5NmFiYmE5Mjg1ZjZiYjMwNWI5NWI3Zjk0MDhjZTQ0ZTgzODgwYzcxOTQ0NDY3MmVjOTk3NDZiYTc4Y2M0YmRlNDc1MzE5ZDAxYmRlNzdjNDlkNThkMTZkM2IyZTkxYzJlNjFlODMwM2NhM2Q3ZWRhMzc5N2ZkOGIzNWNhNzJiYjE0YjE1YTI0YjU2YmI3MGRjMTM0ODQ1NjU4MDgxMTBmZjVkYjU4YzU2ZjdhMDQzNTYwN2UzYzM1MmZiZjRmNTUxMDZmMjk4MGZkM2NkNDIzOTdkYmY3MTM3ZWU3ZjFlMzJjZDgwYTNiN2FiMTJiNDZjMTY5MjIwMjc4ZDc3MTdiNzhhM2M0NWQ2Mzk1YTEzMGE4YjU4ODQxY2JjMjkwZTRmODE3ZGUzYTRmZTE2ZWNkMDc3Y2EzM2EwYWEyNWUyMzVjYzdmNjY1NWE4MGJhOGFlZWM4NzkwNWJiMmE3NTQ1OWI3YmNjNWExMzNmMjk5MzQ5M2I0MWZmY2Y2M2NkN2EzOTFlM2U2Zjc4MDk0Y2E0NDJjODAxNDQ0MDNjYjBhNWYwMGJmYzYxYWU4ODAiCiAKIFBLQ1M3IFBhcnNlIEZhaWx1cmUgSW52YWxpZCBBU04xOiBDaGFuZ2UgbGVuZ3RoIGZyb20gOSB0byA4ICM3ODEuMAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHBrY3M3X2FzbjFfZmFpbDoiMzA4MjA0OWQwNjA5MmE4NjQ4ODZmNzBkMDEwNzAyYTA4MjA0OGUzMDgyMDQ4YTAyMDEwMTMxMGYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBiMDYwOTJhODY0ODg2ZjcwZDAxMDcwMTMxODIwNDY1MzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDViZWNkODcxOTVjMWRlZmY5MGMyNGM5MTI2OWI1NWIzZjA2OWJjMjI1YzMyNmMzMTRjMWE1MTc4NmZmZTE0YzgzMGJlNGU0YmM3M2NiYTM2Yzk3Njc3YjQ0MTY4Mjc5YmU5MWU3Y2RmN2MxOTM4NmFlMjE4NjI3MTlkMTNhM2EwZmZmMDgwM2Q0NjA5NjJmMmNkYTgzNzE0ODQ4NzMyNTJjM2Q3MDU0ZGI4MTQzZTJiMDgxYTM4MTZlZDA4MDRjYTUwOTlhZTVmZWNlODNkNWMyYzM3ODNiMTk4OGI0YjQ2ZGM5NGU1NTU4N2ExMDdlYTE1NDZiZjIyZDI4YTA5N2Y2NTJhNDA2NmRjMjk2NTI2OTA2OWFmMmY1MTc2YmI4Y2U5Y2E2ZDExZjk2NzU3ZjAzMjA0Zjc1NjcwMzU4N2QwMGFkNDI0Nzk2YzkyZmM3YWViNmY0OTQ0MzE5OTllZGEzMDk5MGU0ZjU3NzM2MzJlZDI1OGZlMDI3NjY3MzU5OWRhNmZjZTM1Y2RhZDc3MjZhMGJiMDI0Y2FkOTk2Yjg4ZTBjYjk4ODU0Y2ViNWMwYjZlYzc0OGQ5ZjljZTZhNmNkNDM3ODU4YmFjYjgxNDYxOGEyNzJmZjNhNDE1YzZlMDdmM2RiMDk4ODc3N2ZkZWM4NDVhOTdiZjdkMTAyZGQwMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMyMDIxNDU2NGQ1NTQwMjVhZjU5OWUzMjcwNzliMjcyMGVmMDBkZjM3Y2ZiN2MzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDA0NjA5OGRjNWYyYjk5ZTNiYzJlZDY2NDJkN2YwYTYxZWZhYmMxNWMzOGM3NjMzM2JjY2NlZWVlMzY5YTRmNGE1YmRkYThlYTU5MjY0MTI0ZTQyOWYwODYzMjY4M2RkYmExN2JiZjI2MmQ4MmI2YmVmYTNiNGUxNDgwMzc2YThjN2YzYzdkN2UyYTY3NzliYmYxODI2MmFhODU3ZGU4YzIwYTEyYjZhMmNlOGU0ZDdmMzFkZDFiMTk1MzkyY2Y2MTg1YWZjZTM0YWZlMDU4OTYwNTdiMzZlOWIxNzFiNmM2N2VkN2MyMjg2Y2JmYTgzZmY4YTE2N2M3YmM3MTA5YWVlN2Q3ZTE5MDliZDM4NGZiZmM2MTkzOGVmY2E1MWM4OTkzYzcxZGIzMTc3MzBmMTZlN2U3NzY4NjdhZTRmZGM1NjJkNmYxNWRlNTg1ZTdiOTRlZjQ5NmEzNjc2MzY3YTJjYmFhYjdiNjM2NjQ4YjAwNzZiYWQ1Y2RmMWUwOTc0MGVjNmE0NTFiZmY1MzRlZmEyMTUwOWYzYmE3N2I4MTAxYjkxZWE3ZTU1ZGRiZmUxNDAxNTE3MDY3ZDdiMDFhMmEwODc5ZjA4ODVjODk0YTg3Y2ZiNjhjNGQ3ZWU4OTA2MDQ4ODFhZWI5N2MyMmQxZjMzN2VmOTIzZTAzNWE2NDAwMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMzMDIxNDYyNDc3Mjk4NzU5ZThlMDQ3MThhZTU2MzE1NWYzNTIzY2ZiODRjZGIzMDBkMDYwODYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDZkMmNiYjM3ZmQxMjk1N2U1YTc0ODBjZTA0MzVlOGVmNjA3N2RlZjA4ZmYyNzA4NDRkZTI1MTZhNDc0MmYyMTFkOGM3NDY5MGJjMDk0OGUwOGEyOTZhYmJhOTI4NWY2YmIzMDViOTViN2Y5NDA4Y2U0NGU4Mzg4MGM3MTk0NDQ2NzJlYzk5NzQ2YmE3OGNjNGJkZTQ3NTMxOWQwMWJkZTc3YzQ5ZDU4ZDE2ZDNiMmU5MWMyZTYxZTgzMDNjYTNkN2VkYTM3OTdmZDhiMzVjYTcyYmIxNGIxNWEyNGI1NmJiNzBkYzEzNDg0NTY1ODA4MTEwZmY1ZGI1OGM1NmY3YTA0MzU2MDdlM2MzNTJmYmY0ZjU1MTA2ZjI5ODBmZDNjZDQyMzk3ZGJmNzEzN2VlN2YxZTMyY2Q4MGEzYjdhYjEyYjQ2YzE2OTIyMDI3OGQ3NzE3Yjc4YTNjNDVkNjM5NWExMzBhOGI1ODg0MWNiYzI5MGU0ZjgxN2RlM2E0ZmUxNmVjZDA3N2NhMzNhMGFhMjVlMjM1Y2M3ZjY2NTVhODBiYThhZWVjODc5MDViYjJhNzU0NTliN2JjYzVhMTMzZjI5OTM0OTNiNDFmZmNmNjNjZDdhMzkxZTNlNmY3ODA5NGNhNDQyYzgwMTQ0NDAzY2IwYTVmMDBiZmM2MWFlODgwIgogCiBQS0NTNyBQYXJzZSBGYWlsdXJlIEludmFsaWQgQVNOMTogQ2hhbmdlIHRhZyAwNSB0byAwMiAjNzgyLjAKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBwa2NzN19hc24xX2ZhaWw6IjMwODIwNDlkMDYwOTJhODY0ODg2ZjcwZDAxMDcwMmEwODIwNDhlMzA4MjA0OGEwMjAxMDEzMTBmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwYjA2MDkyYTg2NDg4NmY3MGQwMTA3MDEzMTgyMDQ2NTMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTAyMTQ3YmRlZGRkMjQ0NGNkMWNkZmU1YzQxYTgxMDJjODliN2RmMmU2Y2JmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDA1YmVjZDg3MTk1YzFkZWZmOTBjMjRjOTEyNjliNTViM2YwNjliYzIyNWMzMjZjMzE0YzFhNTE3ODZmZmUxNGM4MzBiZTRlNGJjNzNjYmEzNmM5NzY3N2I0NDE2ODI3OWJlOTFlN2NkZjdjMTkzODZhZTIxODYyNzE5ZDEzYTNhMGZmZjA4MDNkNDYwOTYyZjJjZGE4MzcxNDg0ODczMjUyYzNkNzA1NGRiODE0M2UyYjA4MWEzODE2ZWQwODA0Y2E1MDk5YWU1ZmVjZTgzZDVjMmMzNzgzYjE5ODhiNGI0NmRjOTRlNTU1ODdhMTA3ZWExNTQ2YmYyMmQyOGEwOTdmNjUyYTQwNjZkYzI5NjUyNjkwNjlhZjJmNTE3NmJiOGNlOWNhNmQxMWY5Njc1N2YwMzIwNGY3NTY3MDM1ODdkMDBhZDQyNDc5NmM5MmZjN2FlYjZmNDk0NDMxOTk5ZWRhMzA5OTBlNGY1NzczNjMyZWQyNThmZTAyNzY2NzM1OTlkYTZmY2UzNWNkYWQ3NzI2YTBiYjAyNGNhZDk5NmI4OGUwY2I5ODg1NGNlYjVjMGI2ZWM3NDhkOWY5Y2U2YTZjZDQzNzg1OGJhY2I4MTQ2MThhMjcyZmYzYTQxNWM2ZTA3ZjNkYjA5ODg3NzdmZGVjODQ1YTk3YmY3ZDEwMmRkMDMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMjAyMTQ1NjRkNTU0MDI1YWY1OTllMzI3MDc5YjI3MjBlZjAwZGYzN2NmYjdjMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDAwNDYwOThkYzVmMmI5OWUzYmMyZWQ2NjQyZDdmMGE2MWVmYWJjMTVjMzhjNzYzMzNiY2NjZWVlZTM2OWE0ZjRhNWJkZGE4ZWE1OTI2NDEyNGU0MjlmMDg2MzI2ODNkZGJhMTdiYmYyNjJkODJiNmJlZmEzYjRlMTQ4MDM3NmE4YzdmM2M3ZDdlMmE2Nzc5YmJmMTgyNjJhYTg1N2RlOGMyMGExMmI2YTJjZThlNGQ3ZjMxZGQxYjE5NTM5MmNmNjE4NWFmY2UzNGFmZTA1ODk2MDU3YjM2ZTliMTcxYjZjNjdlZDdjMjI4NmNiZmE4M2ZmOGExNjdjN2JjNzEwOWFlZTdkN2UxOTA5YmQzODRmYmZjNjE5MzhlZmNhNTFjODk5M2M3MWRiMzE3NzMwZjE2ZTdlNzc2ODY3YWU0ZmRjNTYyZDZmMTVkZTU4NWU3Yjk0ZWY0OTZhMzY3NjM2N2EyY2JhYWI3YjYzNjY0OGIwMDc2YmFkNWNkZjFlMDk3NDBlYzZhNDUxYmZmNTM0ZWZhMjE1MDlmM2JhNzdiODEwMWI5MWVhN2U1NWRkYmZlMTQwMTUxNzA2N2Q3YjAxYTJhMDg3OWYwODg1Yzg5NGE4N2NmYjY4YzRkN2VlODkwNjA0ODgxYWViOTdjMjJkMWYzMzdlZjkyM2UwMzVhNjQwMDMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMzAyMTQ2MjQ3NzI5ODc1OWU4ZTA0NzE4YWU1NjMxNTVmMzUyM2NmYjg0Y2RiMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwMjAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDA2ZDJjYmIzN2ZkMTI5NTdlNWE3NDgwY2UwNDM1ZThlZjYwNzdkZWYwOGZmMjcwODQ0ZGUyNTE2YTQ3NDJmMjExZDhjNzQ2OTBiYzA5NDhlMDhhMjk2YWJiYTkyODVmNmJiMzA1Yjk1YjdmOTQwOGNlNDRlODM4ODBjNzE5NDQ0NjcyZWM5OTc0NmJhNzhjYzRiZGU0NzUzMTlkMDFiZGU3N2M0OWQ1OGQxNmQzYjJlOTFjMmU2MWU4MzAzY2EzZDdlZGEzNzk3ZmQ4YjM1Y2E3MmJiMTRiMTVhMjRiNTZiYjcwZGMxMzQ4NDU2NTgwODExMGZmNWRiNThjNTZmN2EwNDM1NjA3ZTNjMzUyZmJmNGY1NTEwNmYyOTgwZmQzY2Q0MjM5N2RiZjcxMzdlZTdmMWUzMmNkODBhM2I3YWIxMmI0NmMxNjkyMjAyNzhkNzcxN2I3OGEzYzQ1ZDYzOTVhMTMwYThiNTg4NDFjYmMyOTBlNGY4MTdkZTNhNGZlMTZlY2QwNzdjYTMzYTBhYTI1ZTIzNWNjN2Y2NjU1YTgwYmE4YWVlYzg3OTA1YmIyYTc1NDU5YjdiY2M1YTEzM2YyOTkzNDkzYjQxZmZjZjYzY2Q3YTM5MWUzZTZmNzgwOTRjYTQ0MmM4MDE0NDQwM2NiMGE1ZjAwYmZjNjFhZTg4MCIKIAogUEtDUzcgUGFyc2UgRmFpbHVyZSBJbnZhbGlkIEFTTjE6IENoYW5nZSBsZW5ndGggZnJvbSAwIHRvIDEgIzc4My4wCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NgogcGtjczdfYXNuMV9mYWlsOiIzMDgyMDQ5ZDA2MDkyYTg2NDg4NmY3MGQwMTA3MDJhMDgyMDQ4ZTMwODIwNDhhMDIwMTAxMzEwZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGIwNjA5MmE4NjQ4ODZmNzBkMDEwNzAxMzE4MjA0NjUzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwNWJlY2Q4NzE5NWMxZGVmZjkwYzI0YzkxMjY5YjU1YjNmMDY5YmMyMjVjMzI2YzMxNGMxYTUxNzg2ZmZlMTRjODMwYmU0ZTRiYzczY2JhMzZjOTc2NzdiNDQxNjgyNzliZTkxZTdjZGY3YzE5Mzg2YWUyMTg2MjcxOWQxM2EzYTBmZmYwODAzZDQ2MDk2MmYyY2RhODM3MTQ4NDg3MzI1MmMzZDcwNTRkYjgxNDNlMmIwODFhMzgxNmVkMDgwNGNhNTA5OWFlNWZlY2U4M2Q1YzJjMzc4M2IxOTg4YjRiNDZkYzk0ZTU1NTg3YTEwN2VhMTU0NmJmMjJkMjhhMDk3ZjY1MmE0MDY2ZGMyOTY1MjY5MDY5YWYyZjUxNzZiYjhjZTljYTZkMTFmOTY3NTdmMDMyMDRmNzU2NzAzNTg3ZDAwYWQ0MjQ3OTZjOTJmYzdhZWI2ZjQ5NDQzMTk5OWVkYTMwOTkwZTRmNTc3MzYzMmVkMjU4ZmUwMjc2NjczNTk5ZGE2ZmNlMzVjZGFkNzcyNmEwYmIwMjRjYWQ5OTZiODhlMGNiOTg4NTRjZWI1YzBiNmVjNzQ4ZDlmOWNlNmE2Y2Q0Mzc4NThiYWNiODE0NjE4YTI3MmZmM2E0MTVjNmUwN2YzZGIwOTg4Nzc3ZmRlYzg0NWE5N2JmN2QxMDJkZDAzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzIwMjE0NTY0ZDU1NDAyNWFmNTk5ZTMyNzA3OWIyNzIwZWYwMGRmMzdjZmI3YzMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwMDQ2MDk4ZGM1ZjJiOTllM2JjMmVkNjY0MmQ3ZjBhNjFlZmFiYzE1YzM4Yzc2MzMzYmNjY2VlZWUzNjlhNGY0YTViZGRhOGVhNTkyNjQxMjRlNDI5ZjA4NjMyNjgzZGRiYTE3YmJmMjYyZDgyYjZiZWZhM2I0ZTE0ODAzNzZhOGM3ZjNjN2Q3ZTJhNjc3OWJiZjE4MjYyYWE4NTdkZThjMjBhMTJiNmEyY2U4ZTRkN2YzMWRkMWIxOTUzOTJjZjYxODVhZmNlMzRhZmUwNTg5NjA1N2IzNmU5YjE3MWI2YzY3ZWQ3YzIyODZjYmZhODNmZjhhMTY3YzdiYzcxMDlhZWU3ZDdlMTkwOWJkMzg0ZmJmYzYxOTM4ZWZjYTUxYzg5OTNjNzFkYjMxNzczMGYxNmU3ZTc3Njg2N2FlNGZkYzU2MmQ2ZjE1ZGU1ODVlN2I5NGVmNDk2YTM2NzYzNjdhMmNiYWFiN2I2MzY2NDhiMDA3NmJhZDVjZGYxZTA5NzQwZWM2YTQ1MWJmZjUzNGVmYTIxNTA5ZjNiYTc3YjgxMDFiOTFlYTdlNTVkZGJmZTE0MDE1MTcwNjdkN2IwMWEyYTA4NzlmMDg4NWM4OTRhODdjZmI2OGM0ZDdlZTg5MDYwNDg4MWFlYjk3YzIyZDFmMzM3ZWY5MjNlMDM1YTY0MDAzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzMwMjE0NjI0NzcyOTg3NTllOGUwNDcxOGFlNTYzMTU1ZjM1MjNjZmI4NGNkYjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMTMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwNmQyY2JiMzdmZDEyOTU3ZTVhNzQ4MGNlMDQzNWU4ZWY2MDc3ZGVmMDhmZjI3MDg0NGRlMjUxNmE0NzQyZjIxMWQ4Yzc0NjkwYmMwOTQ4ZTA4YTI5NmFiYmE5Mjg1ZjZiYjMwNWI5NWI3Zjk0MDhjZTQ0ZTgzODgwYzcxOTQ0NDY3MmVjOTk3NDZiYTc4Y2M0YmRlNDc1MzE5ZDAxYmRlNzdjNDlkNThkMTZkM2IyZTkxYzJlNjFlODMwM2NhM2Q3ZWRhMzc5N2ZkOGIzNWNhNzJiYjE0YjE1YTI0YjU2YmI3MGRjMTM0ODQ1NjU4MDgxMTBmZjVkYjU4YzU2ZjdhMDQzNTYwN2UzYzM1MmZiZjRmNTUxMDZmMjk4MGZkM2NkNDIzOTdkYmY3MTM3ZWU3ZjFlMzJjZDgwYTNiN2FiMTJiNDZjMTY5MjIwMjc4ZDc3MTdiNzhhM2M0NWQ2Mzk1YTEzMGE4YjU4ODQxY2JjMjkwZTRmODE3ZGUzYTRmZTE2ZWNkMDc3Y2EzM2EwYWEyNWUyMzVjYzdmNjY1NWE4MGJhOGFlZWM4NzkwNWJiMmE3NTQ1OWI3YmNjNWExMzNmMjk5MzQ5M2I0MWZmY2Y2M2NkN2EzOTFlM2U2Zjc4MDk0Y2E0NDJjODAxNDQ0MDNjYjBhNWYwMGJmYzYxYWU4ODAiCiAKIFBLQ1M3IFBhcnNlIEZhaWx1cmUgSW52YWxpZCBBU04xOiBDaGFuZ2UgdGFnIDMwIHRvIDAyICM3ODQuMAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHBrY3M3X2FzbjFfZmFpbDoiMzA4MjA0OWQwNjA5MmE4NjQ4ODZmNzBkMDEwNzAyYTA4MjA0OGUzMDgyMDQ4YTAyMDEwMTMxMGYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBiMDYwOTJhODY0ODg2ZjcwZDAxMDcwMTMxODIwNDY1MzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDViZWNkODcxOTVjMWRlZmY5MGMyNGM5MTI2OWI1NWIzZjA2OWJjMjI1YzMyNmMzMTRjMWE1MTc4NmZmZTE0YzgzMGJlNGU0YmM3M2NiYTM2Yzk3Njc3YjQ0MTY4Mjc5YmU5MWU3Y2RmN2MxOTM4NmFlMjE4NjI3MTlkMTNhM2EwZmZmMDgwM2Q0NjA5NjJmMmNkYTgzNzE0ODQ4NzMyNTJjM2Q3MDU0ZGI4MTQzZTJiMDgxYTM4MTZlZDA4MDRjYTUwOTlhZTVmZWNlODNkNWMyYzM3ODNiMTk4OGI0YjQ2ZGM5NGU1NTU4N2ExMDdlYTE1NDZiZjIyZDI4YTA5N2Y2NTJhNDA2NmRjMjk2NTI2OTA2OWFmMmY1MTc2YmI4Y2U5Y2E2ZDExZjk2NzU3ZjAzMjA0Zjc1NjcwMzU4N2QwMGFkNDI0Nzk2YzkyZmM3YWViNmY0OTQ0MzE5OTllZGEzMDk5MGU0ZjU3NzM2MzJlZDI1OGZlMDI3NjY3MzU5OWRhNmZjZTM1Y2RhZDc3MjZhMGJiMDI0Y2FkOTk2Yjg4ZTBjYjk4ODU0Y2ViNWMwYjZlYzc0OGQ5ZjljZTZhNmNkNDM3ODU4YmFjYjgxNDYxOGEyNzJmZjNhNDE1YzZlMDdmM2RiMDk4ODc3N2ZkZWM4NDVhOTdiZjdkMTAyZGQwMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMyMDIxNDU2NGQ1NTQwMjVhZjU5OWUzMjcwNzliMjcyMGVmMDBkZjM3Y2ZiN2MzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDA0NjA5OGRjNWYyYjk5ZTNiYzJlZDY2NDJkN2YwYTYxZWZhYmMxNWMzOGM3NjMzM2JjY2NlZWVlMzY5YTRmNGE1YmRkYThlYTU5MjY0MTI0ZTQyOWYwODYzMjY4M2RkYmExN2JiZjI2MmQ4MmI2YmVmYTNiNGUxNDgwMzc2YThjN2YzYzdkN2UyYTY3NzliYmYxODI2MmFhODU3ZGU4YzIwYTEyYjZhMmNlOGU0ZDdmMzFkZDFiMTk1MzkyY2Y2MTg1YWZjZTM0YWZlMDU4OTYwNTdiMzZlOWIxNzFiNmM2N2VkN2MyMjg2Y2JmYTgzZmY4YTE2N2M3YmM3MTA5YWVlN2Q3ZTE5MDliZDM4NGZiZmM2MTkzOGVmY2E1MWM4OTkzYzcxZGIzMTc3MzBmMTZlN2U3NzY4NjdhZTRmZGM1NjJkNmYxNWRlNTg1ZTdiOTRlZjQ5NmEzNjc2MzY3YTJjYmFhYjdiNjM2NjQ4YjAwNzZiYWQ1Y2RmMWUwOTc0MGVjNmE0NTFiZmY1MzRlZmEyMTUwOWYzYmE3N2I4MTAxYjkxZWE3ZTU1ZGRiZmUxNDAxNTE3MDY3ZDdiMDFhMmEwODc5ZjA4ODVjODk0YTg3Y2ZiNjhjNGQ3ZWU4OTA2MDQ4ODFhZWI5N2MyMmQxZjMzN2VmOTIzZTAzNWE2NDAwMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMzMDIxNDYyNDc3Mjk4NzU5ZThlMDQ3MThhZTU2MzE1NWYzNTIzY2ZiODRjZGIzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAwMjBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDZkMmNiYjM3ZmQxMjk1N2U1YTc0ODBjZTA0MzVlOGVmNjA3N2RlZjA4ZmYyNzA4NDRkZTI1MTZhNDc0MmYyMTFkOGM3NDY5MGJjMDk0OGUwOGEyOTZhYmJhOTI4NWY2YmIzMDViOTViN2Y5NDA4Y2U0NGU4Mzg4MGM3MTk0NDQ2NzJlYzk5NzQ2YmE3OGNjNGJkZTQ3NTMxOWQwMWJkZTc3YzQ5ZDU4ZDE2ZDNiMmU5MWMyZTYxZTgzMDNjYTNkN2VkYTM3OTdmZDhiMzVjYTcyYmIxNGIxNWEyNGI1NmJiNzBkYzEzNDg0NTY1ODA4MTEwZmY1ZGI1OGM1NmY3YTA0MzU2MDdlM2MzNTJmYmY0ZjU1MTA2ZjI5ODBmZDNjZDQyMzk3ZGJmNzEzN2VlN2YxZTMyY2Q4MGEzYjdhYjEyYjQ2YzE2OTIyMDI3OGQ3NzE3Yjc4YTNjNDVkNjM5NWExMzBhOGI1ODg0MWNiYzI5MGU0ZjgxN2RlM2E0ZmUxNmVjZDA3N2NhMzNhMGFhMjVlMjM1Y2M3ZjY2NTVhODBiYThhZWVjODc5MDViYjJhNzU0NTliN2JjYzVhMTMzZjI5OTM0OTNiNDFmZmNmNjNjZDdhMzkxZTNlNmY3ODA5NGNhNDQyYzgwMTQ0NDAzY2IwYTVmMDBiZmM2MWFlODgwIgogCiBQS0NTNyBQYXJzZSBGYWlsdXJlIEludmFsaWQgQVNOMTogQ2hhbmdlIGxlbmd0aCBmcm9tIDEzIHRvIDE0ICM3ODUuMAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHBrY3M3X2FzbjFfZmFpbDoiMzA4MjA0OWQwNjA5MmE4NjQ4ODZmNzBkMDEwNzAyYTA4MjA0OGUzMDgyMDQ4YTAyMDEwMTMxMGYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBiMDYwOTJhODY0ODg2ZjcwZDAxMDcwMTMxODIwNDY1MzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDViZWNkODcxOTVjMWRlZmY5MGMyNGM5MTI2OWI1NWIzZjA2OWJjMjI1YzMyNmMzMTRjMWE1MTc4NmZmZTE0YzgzMGJlNGU0YmM3M2NiYTM2Yzk3Njc3YjQ0MTY4Mjc5YmU5MWU3Y2RmN2MxOTM4NmFlMjE4NjI3MTlkMTNhM2EwZmZmMDgwM2Q0NjA5NjJmMmNkYTgzNzE0ODQ4NzMyNTJjM2Q3MDU0ZGI4MTQzZTJiMDgxYTM4MTZlZDA4MDRjYTUwOTlhZTVmZWNlODNkNWMyYzM3ODNiMTk4OGI0YjQ2ZGM5NGU1NTU4N2ExMDdlYTE1NDZiZjIyZDI4YTA5N2Y2NTJhNDA2NmRjMjk2NTI2OTA2OWFmMmY1MTc2YmI4Y2U5Y2E2ZDExZjk2NzU3ZjAzMjA0Zjc1NjcwMzU4N2QwMGFkNDI0Nzk2YzkyZmM3YWViNmY0OTQ0MzE5OTllZGEzMDk5MGU0ZjU3NzM2MzJlZDI1OGZlMDI3NjY3MzU5OWRhNmZjZTM1Y2RhZDc3MjZhMGJiMDI0Y2FkOTk2Yjg4ZTBjYjk4ODU0Y2ViNWMwYjZlYzc0OGQ5ZjljZTZhNmNkNDM3ODU4YmFjYjgxNDYxOGEyNzJmZjNhNDE1YzZlMDdmM2RiMDk4ODc3N2ZkZWM4NDVhOTdiZjdkMTAyZGQwMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMyMDIxNDU2NGQ1NTQwMjVhZjU5OWUzMjcwNzliMjcyMGVmMDBkZjM3Y2ZiN2MzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDA0NjA5OGRjNWYyYjk5ZTNiYzJlZDY2NDJkN2YwYTYxZWZhYmMxNWMzOGM3NjMzM2JjY2NlZWVlMzY5YTRmNGE1YmRkYThlYTU5MjY0MTI0ZTQyOWYwODYzMjY4M2RkYmExN2JiZjI2MmQ4MmI2YmVmYTNiNGUxNDgwMzc2YThjN2YzYzdkN2UyYTY3NzliYmYxODI2MmFhODU3ZGU4YzIwYTEyYjZhMmNlOGU0ZDdmMzFkZDFiMTk1MzkyY2Y2MTg1YWZjZTM0YWZlMDU4OTYwNTdiMzZlOWIxNzFiNmM2N2VkN2MyMjg2Y2JmYTgzZmY4YTE2N2M3YmM3MTA5YWVlN2Q3ZTE5MDliZDM4NGZiZmM2MTkzOGVmY2E1MWM4OTkzYzcxZGIzMTc3MzBmMTZlN2U3NzY4NjdhZTRmZGM1NjJkNmYxNWRlNTg1ZTdiOTRlZjQ5NmEzNjc2MzY3YTJjYmFhYjdiNjM2NjQ4YjAwNzZiYWQ1Y2RmMWUwOTc0MGVjNmE0NTFiZmY1MzRlZmEyMTUwOWYzYmE3N2I4MTAxYjkxZWE3ZTU1ZGRiZmUxNDAxNTE3MDY3ZDdiMDFhMmEwODc5ZjA4ODVjODk0YTg3Y2ZiNjhjNGQ3ZWU4OTA2MDQ4ODFhZWI5N2MyMmQxZjMzN2VmOTIzZTAzNWE2NDAwMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMzMDIxNDYyNDc3Mjk4NzU5ZThlMDQ3MThhZTU2MzE1NWYzNTIzY2ZiODRjZGIzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBlMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDZkMmNiYjM3ZmQxMjk1N2U1YTc0ODBjZTA0MzVlOGVmNjA3N2RlZjA4ZmYyNzA4NDRkZTI1MTZhNDc0MmYyMTFkOGM3NDY5MGJjMDk0OGUwOGEyOTZhYmJhOTI4NWY2YmIzMDViOTViN2Y5NDA4Y2U0NGU4Mzg4MGM3MTk0NDQ2NzJlYzk5NzQ2YmE3OGNjNGJkZTQ3NTMxOWQwMWJkZTc3YzQ5ZDU4ZDE2ZDNiMmU5MWMyZTYxZTgzMDNjYTNkN2VkYTM3OTdmZDhiMzVjYTcyYmIxNGIxNWEyNGI1NmJiNzBkYzEzNDg0NTY1ODA4MTEwZmY1ZGI1OGM1NmY3YTA0MzU2MDdlM2MzNTJmYmY0ZjU1MTA2ZjI5ODBmZDNjZDQyMzk3ZGJmNzEzN2VlN2YxZTMyY2Q4MGEzYjdhYjEyYjQ2YzE2OTIyMDI3OGQ3NzE3Yjc4YTNjNDVkNjM5NWExMzBhOGI1ODg0MWNiYzI5MGU0ZjgxN2RlM2E0ZmUxNmVjZDA3N2NhMzNhMGFhMjVlMjM1Y2M3ZjY2NTVhODBiYThhZWVjODc5MDViYjJhNzU0NTliN2JjYzVhMTMzZjI5OTM0OTNiNDFmZmNmNjNjZDdhMzkxZTNlNmY3ODA5NGNhNDQyYzgwMTQ0NDAzY2IwYTVmMDBiZmM2MWFlODgwIgogCiBQS0NTNyBQYXJzZSBGYWlsdXJlIEludmFsaWQgQVNOMTogQ2hhbmdlIGNvbnRlbnRzIG9mIHRhZyAzMCB0byBjb250YWluIG9uZSB1bmFjY291bnRlZCBleHRyYSBieXRlICM3ODYuMAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHBrY3M3X2FzbjFfZmFpbDoiMzA4MjA0OWQwNjA5MmE4NjQ4ODZmNzBkMDEwNzAyYTA4MjA0OGUzMDgyMDQ4YTAyMDEwMTMxMGYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBiMDYwOTJhODY0ODg2ZjcwZDAxMDcwMTMxODIwNDY1MzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDViZWNkODcxOTVjMWRlZmY5MGMyNGM5MTI2OWI1NWIzZjA2OWJjMjI1YzMyNmMzMTRjMWE1MTc4NmZmZTE0YzgzMGJlNGU0YmM3M2NiYTM2Yzk3Njc3YjQ0MTY4Mjc5YmU5MWU3Y2RmN2MxOTM4NmFlMjE4NjI3MTlkMTNhM2EwZmZmMDgwM2Q0NjA5NjJmMmNkYTgzNzE0ODQ4NzMyNTJjM2Q3MDU0ZGI4MTQzZTJiMDgxYTM4MTZlZDA4MDRjYTUwOTlhZTVmZWNlODNkNWMyYzM3ODNiMTk4OGI0YjQ2ZGM5NGU1NTU4N2ExMDdlYTE1NDZiZjIyZDI4YTA5N2Y2NTJhNDA2NmRjMjk2NTI2OTA2OWFmMmY1MTc2YmI4Y2U5Y2E2ZDExZjk2NzU3ZjAzMjA0Zjc1NjcwMzU4N2QwMGFkNDI0Nzk2YzkyZmM3YWViNmY0OTQ0MzE5OTllZGEzMDk5MGU0ZjU3NzM2MzJlZDI1OGZlMDI3NjY3MzU5OWRhNmZjZTM1Y2RhZDc3MjZhMGJiMDI0Y2FkOTk2Yjg4ZTBjYjk4ODU0Y2ViNWMwYjZlYzc0OGQ5ZjljZTZhNmNkNDM3ODU4YmFjYjgxNDYxOGEyNzJmZjNhNDE1YzZlMDdmM2RiMDk4ODc3N2ZkZWM4NDVhOTdiZjdkMTAyZGQwMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMyMDIxNDU2NGQ1NTQwMjVhZjU5OWUzMjcwNzliMjcyMGVmMDBkZjM3Y2ZiN2MzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDA0NjA5OGRjNWYyYjk5ZTNiYzJlZDY2NDJkN2YwYTYxZWZhYmMxNWMzOGM3NjMzM2JjY2NlZWVlMzY5YTRmNGE1YmRkYThlYTU5MjY0MTI0ZTQyOWYwODYzMjY4M2RkYmExN2JiZjI2MmQ4MmI2YmVmYTNiNGUxNDgwMzc2YThjN2YzYzdkN2UyYTY3NzliYmYxODI2MmFhODU3ZGU4YzIwYTEyYjZhMmNlOGU0ZDdmMzFkZDFiMTk1MzkyY2Y2MTg1YWZjZTM0YWZlMDU4OTYwNTdiMzZlOWIxNzFiNmM2N2VkN2MyMjg2Y2JmYTgzZmY4YTE2N2M3YmM3MTA5YWVlN2Q3ZTE5MDliZDM4NGZiZmM2MTkzOGVmY2E1MWM4OTkzYzcxZGIzMTc3MzBmMTZlN2U3NzY4NjdhZTRmZGM1NjJkNmYxNWRlNTg1ZTdiOTRlZjQ5NmEzNjc2MzY3YTJjYmFhYjdiNjM2NjQ4YjAwNzZiYWQ1Y2RmMWUwOTc0MGVjNmE0NTFiZmY1MzRlZmEyMTUwOWYzYmE3N2I4MTAxYjkxZWE3ZTU1ZGRiZmUxNDAxNTE3MDY3ZDdiMDFhMmEwODc5ZjA4ODVjODk0YTg3Y2ZiNjhjNGQ3ZWU4OTA2MDQ4ODFhZWI5N2MyMmQxZjMzN2VmOTIzZTAzNWE2NDAwMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMzMDIxNDYyNDc3Mjk4NzU5ZThlMDQ3MThhZTU2MzE1NWYzNTIzY2ZiODRjZGIzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBlMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwMDA0ODIwMTAwNmQyY2JiMzdmZDEyOTU3ZTVhNzQ4MGNlMDQzNWU4ZWY2MDc3ZGVmMDhmZjI3MDg0NGRlMjUxNmE0NzQyZjIxMWQ4Yzc0NjkwYmMwOTQ4ZTA4YTI5NmFiYmE5Mjg1ZjZiYjMwNWI5NWI3Zjk0MDhjZTQ0ZTgzODgwYzcxOTQ0NDY3MmVjOTk3NDZiYTc4Y2M0YmRlNDc1MzE5ZDAxYmRlNzdjNDlkNThkMTZkM2IyZTkxYzJlNjFlODMwM2NhM2Q3ZWRhMzc5N2ZkOGIzNWNhNzJiYjE0YjE1YTI0YjU2YmI3MGRjMTM0ODQ1NjU4MDgxMTBmZjVkYjU4YzU2ZjdhMDQzNTYwN2UzYzM1MmZiZjRmNTUxMDZmMjk4MGZkM2NkNDIzOTdkYmY3MTM3ZWU3ZjFlMzJjZDgwYTNiN2FiMTJiNDZjMTY5MjIwMjc4ZDc3MTdiNzhhM2M0NWQ2Mzk1YTEzMGE4YjU4ODQxY2JjMjkwZTRmODE3ZGUzYTRmZTE2ZWNkMDc3Y2EzM2EwYWEyNWUyMzVjYzdmNjY1NWE4MGJhOGFlZWM4NzkwNWJiMmE3NTQ1OWI3YmNjNWExMzNmMjk5MzQ5M2I0MWZmY2Y2M2NkN2EzOTFlM2U2Zjc4MDk0Y2E0NDJjODAxNDQ0MDNjYjBhNWYwMGJmYzYxYWU4ODAiCiAKIFBLQ1M3IFBhcnNlIEZhaWx1cmUgSW52YWxpZCBBU04xOiBDaGFuZ2UgbGVuZ3RoIGZyb20gMTMgdG8gMTIgIzc4Ny4wCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NgogcGtjczdfYXNuMV9mYWlsOiIzMDgyMDQ5ZDA2MDkyYTg2NDg4NmY3MGQwMTA3MDJhMDgyMDQ4ZTMwODIwNDhhMDIwMTAxMzEwZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGIwNjA5MmE4NjQ4ODZmNzBkMDEwNzAxMzE4MjA0NjUzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwNWJlY2Q4NzE5NWMxZGVmZjkwYzI0YzkxMjY5YjU1YjNmMDY5YmMyMjVjMzI2YzMxNGMxYTUxNzg2ZmZlMTRjODMwYmU0ZTRiYzczY2JhMzZjOTc2NzdiNDQxNjgyNzliZTkxZTdjZGY3YzE5Mzg2YWUyMTg2MjcxOWQxM2EzYTBmZmYwODAzZDQ2MDk2MmYyY2RhODM3MTQ4NDg3MzI1MmMzZDcwNTRkYjgxNDNlMmIwODFhMzgxNmVkMDgwNGNhNTA5OWFlNWZlY2U4M2Q1YzJjMzc4M2IxOTg4YjRiNDZkYzk0ZTU1NTg3YTEwN2VhMTU0NmJmMjJkMjhhMDk3ZjY1MmE0MDY2ZGMyOTY1MjY5MDY5YWYyZjUxNzZiYjhjZTljYTZkMTFmOTY3NTdmMDMyMDRmNzU2NzAzNTg3ZDAwYWQ0MjQ3OTZjOTJmYzdhZWI2ZjQ5NDQzMTk5OWVkYTMwOTkwZTRmNTc3MzYzMmVkMjU4ZmUwMjc2NjczNTk5ZGE2ZmNlMzVjZGFkNzcyNmEwYmIwMjRjYWQ5OTZiODhlMGNiOTg4NTRjZWI1YzBiNmVjNzQ4ZDlmOWNlNmE2Y2Q0Mzc4NThiYWNiODE0NjE4YTI3MmZmM2E0MTVjNmUwN2YzZGIwOTg4Nzc3ZmRlYzg0NWE5N2JmN2QxMDJkZDAzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzIwMjE0NTY0ZDU1NDAyNWFmNTk5ZTMyNzA3OWIyNzIwZWYwMGRmMzdjZmI3YzMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwMDQ2MDk4ZGM1ZjJiOTllM2JjMmVkNjY0MmQ3ZjBhNjFlZmFiYzE1YzM4Yzc2MzMzYmNjY2VlZWUzNjlhNGY0YTViZGRhOGVhNTkyNjQxMjRlNDI5ZjA4NjMyNjgzZGRiYTE3YmJmMjYyZDgyYjZiZWZhM2I0ZTE0ODAzNzZhOGM3ZjNjN2Q3ZTJhNjc3OWJiZjE4MjYyYWE4NTdkZThjMjBhMTJiNmEyY2U4ZTRkN2YzMWRkMWIxOTUzOTJjZjYxODVhZmNlMzRhZmUwNTg5NjA1N2IzNmU5YjE3MWI2YzY3ZWQ3YzIyODZjYmZhODNmZjhhMTY3YzdiYzcxMDlhZWU3ZDdlMTkwOWJkMzg0ZmJmYzYxOTM4ZWZjYTUxYzg5OTNjNzFkYjMxNzczMGYxNmU3ZTc3Njg2N2FlNGZkYzU2MmQ2ZjE1ZGU1ODVlN2I5NGVmNDk2YTM2NzYzNjdhMmNiYWFiN2I2MzY2NDhiMDA3NmJhZDVjZGYxZTA5NzQwZWM2YTQ1MWJmZjUzNGVmYTIxNTA5ZjNiYTc3YjgxMDFiOTFlYTdlNTVkZGJmZTE0MDE1MTcwNjdkN2IwMWEyYTA4NzlmMDg4NWM4OTRhODdjZmI2OGM0ZDdlZTg5MDYwNDg4MWFlYjk3YzIyZDFmMzM3ZWY5MjNlMDM1YTY0MDAzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzMwMjE0NjI0NzcyOTg3NTllOGUwNDcxOGFlNTYzMTU1ZjM1MjNjZmI4NGNkYjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGMwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwNmQyY2JiMzdmZDEyOTU3ZTVhNzQ4MGNlMDQzNWU4ZWY2MDc3ZGVmMDhmZjI3MDg0NGRlMjUxNmE0NzQyZjIxMWQ4Yzc0NjkwYmMwOTQ4ZTA4YTI5NmFiYmE5Mjg1ZjZiYjMwNWI5NWI3Zjk0MDhjZTQ0ZTgzODgwYzcxOTQ0NDY3MmVjOTk3NDZiYTc4Y2M0YmRlNDc1MzE5ZDAxYmRlNzdjNDlkNThkMTZkM2IyZTkxYzJlNjFlODMwM2NhM2Q3ZWRhMzc5N2ZkOGIzNWNhNzJiYjE0YjE1YTI0YjU2YmI3MGRjMTM0ODQ1NjU4MDgxMTBmZjVkYjU4YzU2ZjdhMDQzNTYwN2UzYzM1MmZiZjRmNTUxMDZmMjk4MGZkM2NkNDIzOTdkYmY3MTM3ZWU3ZjFlMzJjZDgwYTNiN2FiMTJiNDZjMTY5MjIwMjc4ZDc3MTdiNzhhM2M0NWQ2Mzk1YTEzMGE4YjU4ODQxY2JjMjkwZTRmODE3ZGUzYTRmZTE2ZWNkMDc3Y2EzM2EwYWEyNWUyMzVjYzdmNjY1NWE4MGJhOGFlZWM4NzkwNWJiMmE3NTQ1OWI3YmNjNWExMzNmMjk5MzQ5M2I0MWZmY2Y2M2NkN2EzOTFlM2U2Zjc4MDk0Y2E0NDJjODAxNDQ0MDNjYjBhNWYwMGJmYzYxYWU4ODAiCiAKIFBLQ1M3IFBhcnNlIEZhaWx1cmUgSW52YWxpZCBBU04xOiBDaGFuZ2UgdGFnIDA2IHRvIDAyICM3ODguMAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHBrY3M3X2FzbjFfZmFpbDoiMzA4MjA0OWQwNjA5MmE4NjQ4ODZmNzBkMDEwNzAyYTA4MjA0OGUzMDgyMDQ4YTAyMDEwMTMxMGYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBiMDYwOTJhODY0ODg2ZjcwZDAxMDcwMTMxODIwNDY1MzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDViZWNkODcxOTVjMWRlZmY5MGMyNGM5MTI2OWI1NWIzZjA2OWJjMjI1YzMyNmMzMTRjMWE1MTc4NmZmZTE0YzgzMGJlNGU0YmM3M2NiYTM2Yzk3Njc3YjQ0MTY4Mjc5YmU5MWU3Y2RmN2MxOTM4NmFlMjE4NjI3MTlkMTNhM2EwZmZmMDgwM2Q0NjA5NjJmMmNkYTgzNzE0ODQ4NzMyNTJjM2Q3MDU0ZGI4MTQzZTJiMDgxYTM4MTZlZDA4MDRjYTUwOTlhZTVmZWNlODNkNWMyYzM3ODNiMTk4OGI0YjQ2ZGM5NGU1NTU4N2ExMDdlYTE1NDZiZjIyZDI4YTA5N2Y2NTJhNDA2NmRjMjk2NTI2OTA2OWFmMmY1MTc2YmI4Y2U5Y2E2ZDExZjk2NzU3ZjAzMjA0Zjc1NjcwMzU4N2QwMGFkNDI0Nzk2YzkyZmM3YWViNmY0OTQ0MzE5OTllZGEzMDk5MGU0ZjU3NzM2MzJlZDI1OGZlMDI3NjY3MzU5OWRhNmZjZTM1Y2RhZDc3MjZhMGJiMDI0Y2FkOTk2Yjg4ZTBjYjk4ODU0Y2ViNWMwYjZlYzc0OGQ5ZjljZTZhNmNkNDM3ODU4YmFjYjgxNDYxOGEyNzJmZjNhNDE1YzZlMDdmM2RiMDk4ODc3N2ZkZWM4NDVhOTdiZjdkMTAyZGQwMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMyMDIxNDU2NGQ1NTQwMjVhZjU5OWUzMjcwNzliMjcyMGVmMDBkZjM3Y2ZiN2MzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDA0NjA5OGRjNWYyYjk5ZTNiYzJlZDY2NDJkN2YwYTYxZWZhYmMxNWMzOGM3NjMzM2JjY2NlZWVlMzY5YTRmNGE1YmRkYThlYTU5MjY0MTI0ZTQyOWYwODYzMjY4M2RkYmExN2JiZjI2MmQ4MmI2YmVmYTNiNGUxNDgwMzc2YThjN2YzYzdkN2UyYTY3NzliYmYxODI2MmFhODU3ZGU4YzIwYTEyYjZhMmNlOGU0ZDdmMzFkZDFiMTk1MzkyY2Y2MTg1YWZjZTM0YWZlMDU4OTYwNTdiMzZlOWIxNzFiNmM2N2VkN2MyMjg2Y2JmYTgzZmY4YTE2N2M3YmM3MTA5YWVlN2Q3ZTE5MDliZDM4NGZiZmM2MTkzOGVmY2E1MWM4OTkzYzcxZGIzMTc3MzBmMTZlN2U3NzY4NjdhZTRmZGM1NjJkNmYxNWRlNTg1ZTdiOTRlZjQ5NmEzNjc2MzY3YTJjYmFhYjdiNjM2NjQ4YjAwNzZiYWQ1Y2RmMWUwOTc0MGVjNmE0NTFiZmY1MzRlZmEyMTUwOWYzYmE3N2I4MTAxYjkxZWE3ZTU1ZGRiZmUxNDAxNTE3MDY3ZDdiMDFhMmEwODc5ZjA4ODVjODk0YTg3Y2ZiNjhjNGQ3ZWU4OTA2MDQ4ODFhZWI5N2MyMmQxZjMzN2VmOTIzZTAzNWE2NDAwMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMzMDIxNDYyNDc3Mjk4NzU5ZThlMDQ3MThhZTU2MzE1NWYzNTIzY2ZiODRjZGIzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDIwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDZkMmNiYjM3ZmQxMjk1N2U1YTc0ODBjZTA0MzVlOGVmNjA3N2RlZjA4ZmYyNzA4NDRkZTI1MTZhNDc0MmYyMTFkOGM3NDY5MGJjMDk0OGUwOGEyOTZhYmJhOTI4NWY2YmIzMDViOTViN2Y5NDA4Y2U0NGU4Mzg4MGM3MTk0NDQ2NzJlYzk5NzQ2YmE3OGNjNGJkZTQ3NTMxOWQwMWJkZTc3YzQ5ZDU4ZDE2ZDNiMmU5MWMyZTYxZTgzMDNjYTNkN2VkYTM3OTdmZDhiMzVjYTcyYmIxNGIxNWEyNGI1NmJiNzBkYzEzNDg0NTY1ODA4MTEwZmY1ZGI1OGM1NmY3YTA0MzU2MDdlM2MzNTJmYmY0ZjU1MTA2ZjI5ODBmZDNjZDQyMzk3ZGJmNzEzN2VlN2YxZTMyY2Q4MGEzYjdhYjEyYjQ2YzE2OTIyMDI3OGQ3NzE3Yjc4YTNjNDVkNjM5NWExMzBhOGI1ODg0MWNiYzI5MGU0ZjgxN2RlM2E0ZmUxNmVjZDA3N2NhMzNhMGFhMjVlMjM1Y2M3ZjY2NTVhODBiYThhZWVjODc5MDViYjJhNzU0NTliN2JjYzVhMTMzZjI5OTM0OTNiNDFmZmNmNjNjZDdhMzkxZTNlNmY3ODA5NGNhNDQyYzgwMTQ0NDAzY2IwYTVmMDBiZmM2MWFlODgwIgogCiBQS0NTNyBQYXJzZSBGYWlsdXJlIEludmFsaWQgQVNOMTogQ2hhbmdlIGxlbmd0aCBmcm9tIDkgdG8gMTAgIzc4OS4wCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NgogcGtjczdfYXNuMV9mYWlsOiIzMDgyMDQ5ZDA2MDkyYTg2NDg4NmY3MGQwMTA3MDJhMDgyMDQ4ZTMwODIwNDhhMDIwMTAxMzEwZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGIwNjA5MmE4NjQ4ODZmNzBkMDEwNzAxMzE4MjA0NjUzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwNWJlY2Q4NzE5NWMxZGVmZjkwYzI0YzkxMjY5YjU1YjNmMDY5YmMyMjVjMzI2YzMxNGMxYTUxNzg2ZmZlMTRjODMwYmU0ZTRiYzczY2JhMzZjOTc2NzdiNDQxNjgyNzliZTkxZTdjZGY3YzE5Mzg2YWUyMTg2MjcxOWQxM2EzYTBmZmYwODAzZDQ2MDk2MmYyY2RhODM3MTQ4NDg3MzI1MmMzZDcwNTRkYjgxNDNlMmIwODFhMzgxNmVkMDgwNGNhNTA5OWFlNWZlY2U4M2Q1YzJjMzc4M2IxOTg4YjRiNDZkYzk0ZTU1NTg3YTEwN2VhMTU0NmJmMjJkMjhhMDk3ZjY1MmE0MDY2ZGMyOTY1MjY5MDY5YWYyZjUxNzZiYjhjZTljYTZkMTFmOTY3NTdmMDMyMDRmNzU2NzAzNTg3ZDAwYWQ0MjQ3OTZjOTJmYzdhZWI2ZjQ5NDQzMTk5OWVkYTMwOTkwZTRmNTc3MzYzMmVkMjU4ZmUwMjc2NjczNTk5ZGE2ZmNlMzVjZGFkNzcyNmEwYmIwMjRjYWQ5OTZiODhlMGNiOTg4NTRjZWI1YzBiNmVjNzQ4ZDlmOWNlNmE2Y2Q0Mzc4NThiYWNiODE0NjE4YTI3MmZmM2E0MTVjNmUwN2YzZGIwOTg4Nzc3ZmRlYzg0NWE5N2JmN2QxMDJkZDAzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzIwMjE0NTY0ZDU1NDAyNWFmNTk5ZTMyNzA3OWIyNzIwZWYwMGRmMzdjZmI3YzMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwMDQ2MDk4ZGM1ZjJiOTllM2JjMmVkNjY0MmQ3ZjBhNjFlZmFiYzE1YzM4Yzc2MzMzYmNjY2VlZWUzNjlhNGY0YTViZGRhOGVhNTkyNjQxMjRlNDI5ZjA4NjMyNjgzZGRiYTE3YmJmMjYyZDgyYjZiZWZhM2I0ZTE0ODAzNzZhOGM3ZjNjN2Q3ZTJhNjc3OWJiZjE4MjYyYWE4NTdkZThjMjBhMTJiNmEyY2U4ZTRkN2YzMWRkMWIxOTUzOTJjZjYxODVhZmNlMzRhZmUwNTg5NjA1N2IzNmU5YjE3MWI2YzY3ZWQ3YzIyODZjYmZhODNmZjhhMTY3YzdiYzcxMDlhZWU3ZDdlMTkwOWJkMzg0ZmJmYzYxOTM4ZWZjYTUxYzg5OTNjNzFkYjMxNzczMGYxNmU3ZTc3Njg2N2FlNGZkYzU2MmQ2ZjE1ZGU1ODVlN2I5NGVmNDk2YTM2NzYzNjdhMmNiYWFiN2I2MzY2NDhiMDA3NmJhZDVjZGYxZTA5NzQwZWM2YTQ1MWJmZjUzNGVmYTIxNTA5ZjNiYTc3YjgxMDFiOTFlYTdlNTVkZGJmZTE0MDE1MTcwNjdkN2IwMWEyYTA4NzlmMDg4NWM4OTRhODdjZmI2OGM0ZDdlZTg5MDYwNDg4MWFlYjk3YzIyZDFmMzM3ZWY5MjNlMDM1YTY0MDAzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzMwMjE0NjI0NzcyOTg3NTllOGUwNDcxOGFlNTYzMTU1ZjM1MjNjZmI4NGNkYjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjBhMmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwNmQyY2JiMzdmZDEyOTU3ZTVhNzQ4MGNlMDQzNWU4ZWY2MDc3ZGVmMDhmZjI3MDg0NGRlMjUxNmE0NzQyZjIxMWQ4Yzc0NjkwYmMwOTQ4ZTA4YTI5NmFiYmE5Mjg1ZjZiYjMwNWI5NWI3Zjk0MDhjZTQ0ZTgzODgwYzcxOTQ0NDY3MmVjOTk3NDZiYTc4Y2M0YmRlNDc1MzE5ZDAxYmRlNzdjNDlkNThkMTZkM2IyZTkxYzJlNjFlODMwM2NhM2Q3ZWRhMzc5N2ZkOGIzNWNhNzJiYjE0YjE1YTI0YjU2YmI3MGRjMTM0ODQ1NjU4MDgxMTBmZjVkYjU4YzU2ZjdhMDQzNTYwN2UzYzM1MmZiZjRmNTUxMDZmMjk4MGZkM2NkNDIzOTdkYmY3MTM3ZWU3ZjFlMzJjZDgwYTNiN2FiMTJiNDZjMTY5MjIwMjc4ZDc3MTdiNzhhM2M0NWQ2Mzk1YTEzMGE4YjU4ODQxY2JjMjkwZTRmODE3ZGUzYTRmZTE2ZWNkMDc3Y2EzM2EwYWEyNWUyMzVjYzdmNjY1NWE4MGJhOGFlZWM4NzkwNWJiMmE3NTQ1OWI3YmNjNWExMzNmMjk5MzQ5M2I0MWZmY2Y2M2NkN2EzOTFlM2U2Zjc4MDk0Y2E0NDJjODAxNDQ0MDNjYjBhNWYwMGJmYzYxYWU4ODAiCiAKIFBLQ1M3IFBhcnNlIEZhaWx1cmUgSW52YWxpZCBBU04xOiBDaGFuZ2UgbGVuZ3RoIGZyb20gOSB0byA4ICM3OTAuMAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHBrY3M3X2FzbjFfZmFpbDoiMzA4MjA0OWQwNjA5MmE4NjQ4ODZmNzBkMDEwNzAyYTA4MjA0OGUzMDgyMDQ4YTAyMDEwMTMxMGYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBiMDYwOTJhODY0ODg2ZjcwZDAxMDcwMTMxODIwNDY1MzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDViZWNkODcxOTVjMWRlZmY5MGMyNGM5MTI2OWI1NWIzZjA2OWJjMjI1YzMyNmMzMTRjMWE1MTc4NmZmZTE0YzgzMGJlNGU0YmM3M2NiYTM2Yzk3Njc3YjQ0MTY4Mjc5YmU5MWU3Y2RmN2MxOTM4NmFlMjE4NjI3MTlkMTNhM2EwZmZmMDgwM2Q0NjA5NjJmMmNkYTgzNzE0ODQ4NzMyNTJjM2Q3MDU0ZGI4MTQzZTJiMDgxYTM4MTZlZDA4MDRjYTUwOTlhZTVmZWNlODNkNWMyYzM3ODNiMTk4OGI0YjQ2ZGM5NGU1NTU4N2ExMDdlYTE1NDZiZjIyZDI4YTA5N2Y2NTJhNDA2NmRjMjk2NTI2OTA2OWFmMmY1MTc2YmI4Y2U5Y2E2ZDExZjk2NzU3ZjAzMjA0Zjc1NjcwMzU4N2QwMGFkNDI0Nzk2YzkyZmM3YWViNmY0OTQ0MzE5OTllZGEzMDk5MGU0ZjU3NzM2MzJlZDI1OGZlMDI3NjY3MzU5OWRhNmZjZTM1Y2RhZDc3MjZhMGJiMDI0Y2FkOTk2Yjg4ZTBjYjk4ODU0Y2ViNWMwYjZlYzc0OGQ5ZjljZTZhNmNkNDM3ODU4YmFjYjgxNDYxOGEyNzJmZjNhNDE1YzZlMDdmM2RiMDk4ODc3N2ZkZWM4NDVhOTdiZjdkMTAyZGQwMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMyMDIxNDU2NGQ1NTQwMjVhZjU5OWUzMjcwNzliMjcyMGVmMDBkZjM3Y2ZiN2MzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDA0NjA5OGRjNWYyYjk5ZTNiYzJlZDY2NDJkN2YwYTYxZWZhYmMxNWMzOGM3NjMzM2JjY2NlZWVlMzY5YTRmNGE1YmRkYThlYTU5MjY0MTI0ZTQyOWYwODYzMjY4M2RkYmExN2JiZjI2MmQ4MmI2YmVmYTNiNGUxNDgwMzc2YThjN2YzYzdkN2UyYTY3NzliYmYxODI2MmFhODU3ZGU4YzIwYTEyYjZhMmNlOGU0ZDdmMzFkZDFiMTk1MzkyY2Y2MTg1YWZjZTM0YWZlMDU4OTYwNTdiMzZlOWIxNzFiNmM2N2VkN2MyMjg2Y2JmYTgzZmY4YTE2N2M3YmM3MTA5YWVlN2Q3ZTE5MDliZDM4NGZiZmM2MTkzOGVmY2E1MWM4OTkzYzcxZGIzMTc3MzBmMTZlN2U3NzY4NjdhZTRmZGM1NjJkNmYxNWRlNTg1ZTdiOTRlZjQ5NmEzNjc2MzY3YTJjYmFhYjdiNjM2NjQ4YjAwNzZiYWQ1Y2RmMWUwOTc0MGVjNmE0NTFiZmY1MzRlZmEyMTUwOWYzYmE3N2I4MTAxYjkxZWE3ZTU1ZGRiZmUxNDAxNTE3MDY3ZDdiMDFhMmEwODc5ZjA4ODVjODk0YTg3Y2ZiNjhjNGQ3ZWU4OTA2MDQ4ODFhZWI5N2MyMmQxZjMzN2VmOTIzZTAzNWE2NDAwMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMzMDIxNDYyNDc3Mjk4NzU5ZThlMDQ3MThhZTU2MzE1NWYzNTIzY2ZiODRjZGIzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwODJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDZkMmNiYjM3ZmQxMjk1N2U1YTc0ODBjZTA0MzVlOGVmNjA3N2RlZjA4ZmYyNzA4NDRkZTI1MTZhNDc0MmYyMTFkOGM3NDY5MGJjMDk0OGUwOGEyOTZhYmJhOTI4NWY2YmIzMDViOTViN2Y5NDA4Y2U0NGU4Mzg4MGM3MTk0NDQ2NzJlYzk5NzQ2YmE3OGNjNGJkZTQ3NTMxOWQwMWJkZTc3YzQ5ZDU4ZDE2ZDNiMmU5MWMyZTYxZTgzMDNjYTNkN2VkYTM3OTdmZDhiMzVjYTcyYmIxNGIxNWEyNGI1NmJiNzBkYzEzNDg0NTY1ODA4MTEwZmY1ZGI1OGM1NmY3YTA0MzU2MDdlM2MzNTJmYmY0ZjU1MTA2ZjI5ODBmZDNjZDQyMzk3ZGJmNzEzN2VlN2YxZTMyY2Q4MGEzYjdhYjEyYjQ2YzE2OTIyMDI3OGQ3NzE3Yjc4YTNjNDVkNjM5NWExMzBhOGI1ODg0MWNiYzI5MGU0ZjgxN2RlM2E0ZmUxNmVjZDA3N2NhMzNhMGFhMjVlMjM1Y2M3ZjY2NTVhODBiYThhZWVjODc5MDViYjJhNzU0NTliN2JjYzVhMTMzZjI5OTM0OTNiNDFmZmNmNjNjZDdhMzkxZTNlNmY3ODA5NGNhNDQyYzgwMTQ0NDAzY2IwYTVmMDBiZmM2MWFlODgwIgogCiBQS0NTNyBQYXJzZSBGYWlsdXJlIEludmFsaWQgQVNOMTogQ2hhbmdlIHRhZyAwNSB0byAwMiAjNzkxLjAKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBwa2NzN19hc24xX2ZhaWw6IjMwODIwNDlkMDYwOTJhODY0ODg2ZjcwZDAxMDcwMmEwODIwNDhlMzA4MjA0OGEwMjAxMDEzMTBmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwYjA2MDkyYTg2NDg4NmY3MGQwMTA3MDEzMTgyMDQ2NTMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMTAyMTQ3YmRlZGRkMjQ0NGNkMWNkZmU1YzQxYTgxMDJjODliN2RmMmU2Y2JmMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDA1YmVjZDg3MTk1YzFkZWZmOTBjMjRjOTEyNjliNTViM2YwNjliYzIyNWMzMjZjMzE0YzFhNTE3ODZmZmUxNGM4MzBiZTRlNGJjNzNjYmEzNmM5NzY3N2I0NDE2ODI3OWJlOTFlN2NkZjdjMTkzODZhZTIxODYyNzE5ZDEzYTNhMGZmZjA4MDNkNDYwOTYyZjJjZGE4MzcxNDg0ODczMjUyYzNkNzA1NGRiODE0M2UyYjA4MWEzODE2ZWQwODA0Y2E1MDk5YWU1ZmVjZTgzZDVjMmMzNzgzYjE5ODhiNGI0NmRjOTRlNTU1ODdhMTA3ZWExNTQ2YmYyMmQyOGEwOTdmNjUyYTQwNjZkYzI5NjUyNjkwNjlhZjJmNTE3NmJiOGNlOWNhNmQxMWY5Njc1N2YwMzIwNGY3NTY3MDM1ODdkMDBhZDQyNDc5NmM5MmZjN2FlYjZmNDk0NDMxOTk5ZWRhMzA5OTBlNGY1NzczNjMyZWQyNThmZTAyNzY2NzM1OTlkYTZmY2UzNWNkYWQ3NzI2YTBiYjAyNGNhZDk5NmI4OGUwY2I5ODg1NGNlYjVjMGI2ZWM3NDhkOWY5Y2U2YTZjZDQzNzg1OGJhY2I4MTQ2MThhMjcyZmYzYTQxNWM2ZTA3ZjNkYjA5ODg3NzdmZGVjODQ1YTk3YmY3ZDEwMmRkMDMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMjAyMTQ1NjRkNTU0MDI1YWY1OTllMzI3MDc5YjI3MjBlZjAwZGYzN2NmYjdjMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAxMDAwNDYwOThkYzVmMmI5OWUzYmMyZWQ2NjQyZDdmMGE2MWVmYWJjMTVjMzhjNzYzMzNiY2NjZWVlZTM2OWE0ZjRhNWJkZGE4ZWE1OTI2NDEyNGU0MjlmMDg2MzI2ODNkZGJhMTdiYmYyNjJkODJiNmJlZmEzYjRlMTQ4MDM3NmE4YzdmM2M3ZDdlMmE2Nzc5YmJmMTgyNjJhYTg1N2RlOGMyMGExMmI2YTJjZThlNGQ3ZjMxZGQxYjE5NTM5MmNmNjE4NWFmY2UzNGFmZTA1ODk2MDU3YjM2ZTliMTcxYjZjNjdlZDdjMjI4NmNiZmE4M2ZmOGExNjdjN2JjNzEwOWFlZTdkN2UxOTA5YmQzODRmYmZjNjE5MzhlZmNhNTFjODk5M2M3MWRiMzE3NzMwZjE2ZTdlNzc2ODY3YWU0ZmRjNTYyZDZmMTVkZTU4NWU3Yjk0ZWY0OTZhMzY3NjM2N2EyY2JhYWI3YjYzNjY0OGIwMDc2YmFkNWNkZjFlMDk3NDBlYzZhNDUxYmZmNTM0ZWZhMjE1MDlmM2JhNzdiODEwMWI5MWVhN2U1NWRkYmZlMTQwMTUxNzA2N2Q3YjAxYTJhMDg3OWYwODg1Yzg5NGE4N2NmYjY4YzRkN2VlODkwNjA0ODgxYWViOTdjMjJkMWYzMzdlZjkyM2UwMzVhNjQwMDMwODIwMTczMDIwMTAxMzA0YzMwMzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMGUzMDBjMDYwMzU1MDQwYTBjMDU1MDRiNDM1MzM3MzExNTMwMTMwNjAzNTUwNDAzMGMwYzUwNGI0MzUzMzcyMDQzNjU3Mjc0MjAzMzAyMTQ2MjQ3NzI5ODc1OWU4ZTA0NzE4YWU1NjMxNTVmMzUyM2NmYjg0Y2RiMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwMjAwMDQ4MjAxMDA2ZDJjYmIzN2ZkMTI5NTdlNWE3NDgwY2UwNDM1ZThlZjYwNzdkZWYwOGZmMjcwODQ0ZGUyNTE2YTQ3NDJmMjExZDhjNzQ2OTBiYzA5NDhlMDhhMjk2YWJiYTkyODVmNmJiMzA1Yjk1YjdmOTQwOGNlNDRlODM4ODBjNzE5NDQ0NjcyZWM5OTc0NmJhNzhjYzRiZGU0NzUzMTlkMDFiZGU3N2M0OWQ1OGQxNmQzYjJlOTFjMmU2MWU4MzAzY2EzZDdlZGEzNzk3ZmQ4YjM1Y2E3MmJiMTRiMTVhMjRiNTZiYjcwZGMxMzQ4NDU2NTgwODExMGZmNWRiNThjNTZmN2EwNDM1NjA3ZTNjMzUyZmJmNGY1NTEwNmYyOTgwZmQzY2Q0MjM5N2RiZjcxMzdlZTdmMWUzMmNkODBhM2I3YWIxMmI0NmMxNjkyMjAyNzhkNzcxN2I3OGEzYzQ1ZDYzOTVhMTMwYThiNTg4NDFjYmMyOTBlNGY4MTdkZTNhNGZlMTZlY2QwNzdjYTMzYTBhYTI1ZTIzNWNjN2Y2NjU1YTgwYmE4YWVlYzg3OTA1YmIyYTc1NDU5YjdiY2M1YTEzM2YyOTkzNDkzYjQxZmZjZjYzY2Q3YTM5MWUzZTZmNzgwOTRjYTQ0MmM4MDE0NDQwM2NiMGE1ZjAwYmZjNjFhZTg4MCIKIAogUEtDUzcgUGFyc2UgRmFpbHVyZSBJbnZhbGlkIEFTTjE6IENoYW5nZSBsZW5ndGggZnJvbSAwIHRvIDEgIzc5Mi4wCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NgogcGtjczdfYXNuMV9mYWlsOiIzMDgyMDQ5ZDA2MDkyYTg2NDg4NmY3MGQwMTA3MDJhMDgyMDQ4ZTMwODIwNDhhMDIwMTAxMzEwZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGIwNjA5MmE4NjQ4ODZmNzBkMDEwNzAxMzE4MjA0NjUzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwNWJlY2Q4NzE5NWMxZGVmZjkwYzI0YzkxMjY5YjU1YjNmMDY5YmMyMjVjMzI2YzMxNGMxYTUxNzg2ZmZlMTRjODMwYmU0ZTRiYzczY2JhMzZjOTc2NzdiNDQxNjgyNzliZTkxZTdjZGY3YzE5Mzg2YWUyMTg2MjcxOWQxM2EzYTBmZmYwODAzZDQ2MDk2MmYyY2RhODM3MTQ4NDg3MzI1MmMzZDcwNTRkYjgxNDNlMmIwODFhMzgxNmVkMDgwNGNhNTA5OWFlNWZlY2U4M2Q1YzJjMzc4M2IxOTg4YjRiNDZkYzk0ZTU1NTg3YTEwN2VhMTU0NmJmMjJkMjhhMDk3ZjY1MmE0MDY2ZGMyOTY1MjY5MDY5YWYyZjUxNzZiYjhjZTljYTZkMTFmOTY3NTdmMDMyMDRmNzU2NzAzNTg3ZDAwYWQ0MjQ3OTZjOTJmYzdhZWI2ZjQ5NDQzMTk5OWVkYTMwOTkwZTRmNTc3MzYzMmVkMjU4ZmUwMjc2NjczNTk5ZGE2ZmNlMzVjZGFkNzcyNmEwYmIwMjRjYWQ5OTZiODhlMGNiOTg4NTRjZWI1YzBiNmVjNzQ4ZDlmOWNlNmE2Y2Q0Mzc4NThiYWNiODE0NjE4YTI3MmZmM2E0MTVjNmUwN2YzZGIwOTg4Nzc3ZmRlYzg0NWE5N2JmN2QxMDJkZDAzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzIwMjE0NTY0ZDU1NDAyNWFmNTk5ZTMyNzA3OWIyNzIwZWYwMGRmMzdjZmI3YzMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwMDQ2MDk4ZGM1ZjJiOTllM2JjMmVkNjY0MmQ3ZjBhNjFlZmFiYzE1YzM4Yzc2MzMzYmNjY2VlZWUzNjlhNGY0YTViZGRhOGVhNTkyNjQxMjRlNDI5ZjA4NjMyNjgzZGRiYTE3YmJmMjYyZDgyYjZiZWZhM2I0ZTE0ODAzNzZhOGM3ZjNjN2Q3ZTJhNjc3OWJiZjE4MjYyYWE4NTdkZThjMjBhMTJiNmEyY2U4ZTRkN2YzMWRkMWIxOTUzOTJjZjYxODVhZmNlMzRhZmUwNTg5NjA1N2IzNmU5YjE3MWI2YzY3ZWQ3YzIyODZjYmZhODNmZjhhMTY3YzdiYzcxMDlhZWU3ZDdlMTkwOWJkMzg0ZmJmYzYxOTM4ZWZjYTUxYzg5OTNjNzFkYjMxNzczMGYxNmU3ZTc3Njg2N2FlNGZkYzU2MmQ2ZjE1ZGU1ODVlN2I5NGVmNDk2YTM2NzYzNjdhMmNiYWFiN2I2MzY2NDhiMDA3NmJhZDVjZGYxZTA5NzQwZWM2YTQ1MWJmZjUzNGVmYTIxNTA5ZjNiYTc3YjgxMDFiOTFlYTdlNTVkZGJmZTE0MDE1MTcwNjdkN2IwMWEyYTA4NzlmMDg4NWM4OTRhODdjZmI2OGM0ZDdlZTg5MDYwNDg4MWFlYjk3YzIyZDFmMzM3ZWY5MjNlMDM1YTY0MDAzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzMwMjE0NjI0NzcyOTg3NTllOGUwNDcxOGFlNTYzMTU1ZjM1MjNjZmI4NGNkYjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMTA0ODIwMTAwNmQyY2JiMzdmZDEyOTU3ZTVhNzQ4MGNlMDQzNWU4ZWY2MDc3ZGVmMDhmZjI3MDg0NGRlMjUxNmE0NzQyZjIxMWQ4Yzc0NjkwYmMwOTQ4ZTA4YTI5NmFiYmE5Mjg1ZjZiYjMwNWI5NWI3Zjk0MDhjZTQ0ZTgzODgwYzcxOTQ0NDY3MmVjOTk3NDZiYTc4Y2M0YmRlNDc1MzE5ZDAxYmRlNzdjNDlkNThkMTZkM2IyZTkxYzJlNjFlODMwM2NhM2Q3ZWRhMzc5N2ZkOGIzNWNhNzJiYjE0YjE1YTI0YjU2YmI3MGRjMTM0ODQ1NjU4MDgxMTBmZjVkYjU4YzU2ZjdhMDQzNTYwN2UzYzM1MmZiZjRmNTUxMDZmMjk4MGZkM2NkNDIzOTdkYmY3MTM3ZWU3ZjFlMzJjZDgwYTNiN2FiMTJiNDZjMTY5MjIwMjc4ZDc3MTdiNzhhM2M0NWQ2Mzk1YTEzMGE4YjU4ODQxY2JjMjkwZTRmODE3ZGUzYTRmZTE2ZWNkMDc3Y2EzM2EwYWEyNWUyMzVjYzdmNjY1NWE4MGJhOGFlZWM4NzkwNWJiMmE3NTQ1OWI3YmNjNWExMzNmMjk5MzQ5M2I0MWZmY2Y2M2NkN2EzOTFlM2U2Zjc4MDk0Y2E0NDJjODAxNDQ0MDNjYjBhNWYwMGJmYzYxYWU4ODAiCiAKIFBLQ1M3IFBhcnNlIEZhaWx1cmUgSW52YWxpZCBBU04xOiBDaGFuZ2UgdGFnIDA0IHRvIDAyICM3OTMuMAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHBrY3M3X2FzbjFfZmFpbDoiMzA4MjA0OWQwNjA5MmE4NjQ4ODZmNzBkMDEwNzAyYTA4MjA0OGUzMDgyMDQ4YTAyMDEwMTMxMGYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBiMDYwOTJhODY0ODg2ZjcwZDAxMDcwMTMxODIwNDY1MzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMxMDIxNDdiZGVkZGQyNDQ0Y2QxY2RmZTVjNDFhODEwMmM4OWI3ZGYyZTZjYmYzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDViZWNkODcxOTVjMWRlZmY5MGMyNGM5MTI2OWI1NWIzZjA2OWJjMjI1YzMyNmMzMTRjMWE1MTc4NmZmZTE0YzgzMGJlNGU0YmM3M2NiYTM2Yzk3Njc3YjQ0MTY4Mjc5YmU5MWU3Y2RmN2MxOTM4NmFlMjE4NjI3MTlkMTNhM2EwZmZmMDgwM2Q0NjA5NjJmMmNkYTgzNzE0ODQ4NzMyNTJjM2Q3MDU0ZGI4MTQzZTJiMDgxYTM4MTZlZDA4MDRjYTUwOTlhZTVmZWNlODNkNWMyYzM3ODNiMTk4OGI0YjQ2ZGM5NGU1NTU4N2ExMDdlYTE1NDZiZjIyZDI4YTA5N2Y2NTJhNDA2NmRjMjk2NTI2OTA2OWFmMmY1MTc2YmI4Y2U5Y2E2ZDExZjk2NzU3ZjAzMjA0Zjc1NjcwMzU4N2QwMGFkNDI0Nzk2YzkyZmM3YWViNmY0OTQ0MzE5OTllZGEzMDk5MGU0ZjU3NzM2MzJlZDI1OGZlMDI3NjY3MzU5OWRhNmZjZTM1Y2RhZDc3MjZhMGJiMDI0Y2FkOTk2Yjg4ZTBjYjk4ODU0Y2ViNWMwYjZlYzc0OGQ5ZjljZTZhNmNkNDM3ODU4YmFjYjgxNDYxOGEyNzJmZjNhNDE1YzZlMDdmM2RiMDk4ODc3N2ZkZWM4NDVhOTdiZjdkMTAyZGQwMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMyMDIxNDU2NGQ1NTQwMjVhZjU5OWUzMjcwNzliMjcyMGVmMDBkZjM3Y2ZiN2MzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDEwMDA0NjA5OGRjNWYyYjk5ZTNiYzJlZDY2NDJkN2YwYTYxZWZhYmMxNWMzOGM3NjMzM2JjY2NlZWVlMzY5YTRmNGE1YmRkYThlYTU5MjY0MTI0ZTQyOWYwODYzMjY4M2RkYmExN2JiZjI2MmQ4MmI2YmVmYTNiNGUxNDgwMzc2YThjN2YzYzdkN2UyYTY3NzliYmYxODI2MmFhODU3ZGU4YzIwYTEyYjZhMmNlOGU0ZDdmMzFkZDFiMTk1MzkyY2Y2MTg1YWZjZTM0YWZlMDU4OTYwNTdiMzZlOWIxNzFiNmM2N2VkN2MyMjg2Y2JmYTgzZmY4YTE2N2M3YmM3MTA5YWVlN2Q3ZTE5MDliZDM4NGZiZmM2MTkzOGVmY2E1MWM4OTkzYzcxZGIzMTc3MzBmMTZlN2U3NzY4NjdhZTRmZGM1NjJkNmYxNWRlNTg1ZTdiOTRlZjQ5NmEzNjc2MzY3YTJjYmFhYjdiNjM2NjQ4YjAwNzZiYWQ1Y2RmMWUwOTc0MGVjNmE0NTFiZmY1MzRlZmEyMTUwOWYzYmE3N2I4MTAxYjkxZWE3ZTU1ZGRiZmUxNDAxNTE3MDY3ZDdiMDFhMmEwODc5ZjA4ODVjODk0YTg3Y2ZiNjhjNGQ3ZWU4OTA2MDQ4ODFhZWI5N2MyMmQxZjMzN2VmOTIzZTAzNWE2NDAwMzA4MjAxNzMwMjAxMDEzMDRjMzAzNDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzEwZTMwMGMwNjAzNTUwNDBhMGMwNTUwNGI0MzUzMzczMTE1MzAxMzA2MDM1NTA0MDMwYzBjNTA0YjQzNTMzNzIwNDM2NTcyNzQyMDMzMDIxNDYyNDc3Mjk4NzU5ZThlMDQ3MThhZTU2MzE1NWYzNTIzY2ZiODRjZGIzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwMjgyMDEwMDZkMmNiYjM3ZmQxMjk1N2U1YTc0ODBjZTA0MzVlOGVmNjA3N2RlZjA4ZmYyNzA4NDRkZTI1MTZhNDc0MmYyMTFkOGM3NDY5MGJjMDk0OGUwOGEyOTZhYmJhOTI4NWY2YmIzMDViOTViN2Y5NDA4Y2U0NGU4Mzg4MGM3MTk0NDQ2NzJlYzk5NzQ2YmE3OGNjNGJkZTQ3NTMxOWQwMWJkZTc3YzQ5ZDU4ZDE2ZDNiMmU5MWMyZTYxZTgzMDNjYTNkN2VkYTM3OTdmZDhiMzVjYTcyYmIxNGIxNWEyNGI1NmJiNzBkYzEzNDg0NTY1ODA4MTEwZmY1ZGI1OGM1NmY3YTA0MzU2MDdlM2MzNTJmYmY0ZjU1MTA2ZjI5ODBmZDNjZDQyMzk3ZGJmNzEzN2VlN2YxZTMyY2Q4MGEzYjdhYjEyYjQ2YzE2OTIyMDI3OGQ3NzE3Yjc4YTNjNDVkNjM5NWExMzBhOGI1ODg0MWNiYzI5MGU0ZjgxN2RlM2E0ZmUxNmVjZDA3N2NhMzNhMGFhMjVlMjM1Y2M3ZjY2NTVhODBiYThhZWVjODc5MDViYjJhNzU0NTliN2JjYzVhMTMzZjI5OTM0OTNiNDFmZmNmNjNjZDdhMzkxZTNlNmY3ODA5NGNhNDQyYzgwMTQ0NDAzY2IwYTVmMDBiZmM2MWFlODgwIgogCiBQS0NTNyBQYXJzZSBGYWlsdXJlIEludmFsaWQgQVNOMTogQ2hhbmdlIGxlbmd0aCBmcm9tIDI1NiB0byAyNTcgIzc5NC4wCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NgogcGtjczdfYXNuMV9mYWlsOiIzMDgyMDQ5ZDA2MDkyYTg2NDg4NmY3MGQwMTA3MDJhMDgyMDQ4ZTMwODIwNDhhMDIwMTAxMzEwZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGIwNjA5MmE4NjQ4ODZmNzBkMDEwNzAxMzE4MjA0NjUzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzEwMjE0N2JkZWRkZDI0NDRjZDFjZGZlNWM0MWE4MTAyYzg5YjdkZjJlNmNiZjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwNWJlY2Q4NzE5NWMxZGVmZjkwYzI0YzkxMjY5YjU1YjNmMDY5YmMyMjVjMzI2YzMxNGMxYTUxNzg2ZmZlMTRjODMwYmU0ZTRiYzczY2JhMzZjOTc2NzdiNDQxNjgyNzliZTkxZTdjZGY3YzE5Mzg2YWUyMTg2MjcxOWQxM2EzYTBmZmYwODAzZDQ2MDk2MmYyY2RhODM3MTQ4NDg3MzI1MmMzZDcwNTRkYjgxNDNlMmIwODFhMzgxNmVkMDgwNGNhNTA5OWFlNWZlY2U4M2Q1YzJjMzc4M2IxOTg4YjRiNDZkYzk0ZTU1NTg3YTEwN2VhMTU0NmJmMjJkMjhhMDk3ZjY1MmE0MDY2ZGMyOTY1MjY5MDY5YWYyZjUxNzZiYjhjZTljYTZkMTFmOTY3NTdmMDMyMDRmNzU2NzAzNTg3ZDAwYWQ0MjQ3OTZjOTJmYzdhZWI2ZjQ5NDQzMTk5OWVkYTMwOTkwZTRmNTc3MzYzMmVkMjU4ZmUwMjc2NjczNTk5ZGE2ZmNlMzVjZGFkNzcyNmEwYmIwMjRjYWQ5OTZiODhlMGNiOTg4NTRjZWI1YzBiNmVjNzQ4ZDlmOWNlNmE2Y2Q0Mzc4NThiYWNiODE0NjE4YTI3MmZmM2E0MTVjNmUwN2YzZGIwOTg4Nzc3ZmRlYzg0NWE5N2JmN2QxMDJkZDAzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzIwMjE0NTY0ZDU1NDAyNWFmNTk5ZTMyNzA3OWIyNzIwZWYwMGRmMzdjZmI3YzMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAwMDQ2MDk4ZGM1ZjJiOTllM2JjMmVkNjY0MmQ3ZjBhNjFlZmFiYzE1YzM4Yzc2MzMzYmNjY2VlZWUzNjlhNGY0YTViZGRhOGVhNTkyNjQxMjRlNDI5ZjA4NjMyNjgzZGRiYTE3YmJmMjYyZDgyYjZiZWZhM2I0ZTE0ODAzNzZhOGM3ZjNjN2Q3ZTJhNjc3OWJiZjE4MjYyYWE4NTdkZThjMjBhMTJiNmEyY2U4ZTRkN2YzMWRkMWIxOTUzOTJjZjYxODVhZmNlMzRhZmUwNTg5NjA1N2IzNmU5YjE3MWI2YzY3ZWQ3YzIyODZjYmZhODNmZjhhMTY3YzdiYzcxMDlhZWU3ZDdlMTkwOWJkMzg0ZmJmYzYxOTM4ZWZjYTUxYzg5OTNjNzFkYjMxNzczMGYxNmU3ZTc3Njg2N2FlNGZkYzU2MmQ2ZjE1ZGU1ODVlN2I5NGVmNDk2YTM2NzYzNjdhMmNiYWFiN2I2MzY2NDhiMDA3NmJhZDVjZGYxZTA5NzQwZWM2YTQ1MWJmZjUzNGVmYTIxNTA5ZjNiYTc3YjgxMDFiOTFlYTdlNTVkZGJmZTE0MDE1MTcwNjdkN2IwMWEyYTA4NzlmMDg4NWM4OTRhODdjZmI2OGM0ZDdlZTg5MDYwNDg4MWFlYjk3YzIyZDFmMzM3ZWY5MjNlMDM1YTY0MDAzMDgyMDE3MzAyMDEwMTMwNGMzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTBlMzAwYzA2MDM1NTA0MGEwYzA1NTA0YjQzNTMzNzMxMTUzMDEzMDYwMzU1MDQwMzBjMGM1MDRiNDM1MzM3MjA0MzY1NzI3NDIwMzMwMjE0NjI0NzcyOTg3NTllOGUwNDcxOGFlNTYzMTU1ZjM1MjNjZmI4NGNkYjMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDA0ODIwMTAxNmQyY2JiMzdmZDEyOTU3ZTVhNzQ4MGNlMDQzNWU4ZWY2MDc3ZGVmMDhmZjI3MDg0NGRlMjUxNmE0NzQyZjIxMWQ4Yzc0NjkwYmMwOTQ4ZTA4YTI5NmFiYmE5Mjg1ZjZiYjMwNWI5NWI3Zjk0MDhjZTQ0ZTgzODgwYzcxOTQ0NDY3MmVjOTk3NDZiYTc4Y2M0YmRlNDc1MzE5ZDAxYmRlNzdjNDlkNThkMTZkM2IyZTkxYzJlNjFlODMwM2NhM2Q3ZWRhMzc5N2ZkOGIzNWNhNzJiYjE0YjE1YTI0YjU2YmI3MGRjMTM0ODQ1NjU4MDgxMTBmZjVkYjU4YzU2ZjdhMDQzNTYwN2UzYzM1MmZiZjRmNTUxMDZmMjk4MGZkM2NkNDIzOTdkYmY3MTM3ZWU3ZjFlMzJjZDgwYTNiN2FiMTJiNDZjMTY5MjIwMjc4ZDc3MTdiNzhhM2M0NWQ2Mzk1YTEzMGE4YjU4ODQxY2JjMjkwZTRmODE3ZGUzYTRmZTE2ZWNkMDc3Y2EzM2EwYWEyNWUyMzVjYzdmNjY1NWE4MGJhOGFlZWM4NzkwNWJiMmE3NTQ1OWI3YmNjNWExMzNmMjk5MzQ5M2I0MWZmY2Y2M2NkN2EzOTFlM2U2Zjc4MDk0Y2E0NDJjODAxNDQ0MDNjYjBhNWYwMGJmYzYxYWU4ODAiCmRpZmYgLS1naXQgYS90ZXN0cy9zdWl0ZXMvdGVzdF9zdWl0ZV9wa3BhcnNlLmRhdGEgYi90ZXN0cy9zdWl0ZXMvdGVzdF9zdWl0ZV9wa3BhcnNlLmRhdGEKaW5kZXggZDE3MGUxZS4uZjlkYWNkMiAxMDA2NDQKLS0tIGEvdGVzdHMvc3VpdGVzL3Rlc3Rfc3VpdGVfcGtwYXJzZS5kYXRhCisrKyBiL3Rlc3RzL3N1aXRlcy90ZXN0X3N1aXRlX3BrcGFyc2UuZGF0YQpAQCAtMSwxMTYwICsxLDExNjAgQEAKIFBhcnNlIFJTQSBLZXkgIzEgKE5vIHBhc3N3b3JkIHdoZW4gcmVxdWlyZWQpCiBkZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX01ENTpNQkVEVExTX1BFTV9QQVJTRV9DOk1CRURUTFNfQ0lQSEVSX01PREVfQ0JDOk1CRURUTFNfQUVTX0MKLXBrX3BhcnNlX2tleWZpbGVfcnNhOiJkYXRhX2ZpbGVzL3Rlc3QtY2Eua2V5IjoiTlVMTCI6TUJFRFRMU19FUlJfUEtfUEFTU1dPUkRfUkVRVUlSRUQKK3BrX3BhcnNlX2tleWZpbGVfcnNhOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy90ZXN0LWNhLmtleSI6Ik5VTEwiOk1CRURUTFNfRVJSX1BLX1BBU1NXT1JEX1JFUVVJUkVECiAKIFBhcnNlIFJTQSBLZXkgIzIgKENvcnJlY3QgcGFzc3dvcmQpCiBkZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX01ENTpNQkVEVExTX1BFTV9QQVJTRV9DOk1CRURUTFNfQ0lQSEVSX01PREVfQ0JDOk1CRURUTFNfQUVTX0MKLXBrX3BhcnNlX2tleWZpbGVfcnNhOiJkYXRhX2ZpbGVzL3Rlc3QtY2Eua2V5IjoiUG9sYXJTU0xUZXN0IjowCitwa19wYXJzZV9rZXlmaWxlX3JzYToiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvdGVzdC1jYS5rZXkiOiJQb2xhclNTTFRlc3QiOjAKIAogUGFyc2UgUlNBIEtleSAjMyAoV3JvbmcgcGFzc3dvcmQpCiBkZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX01ENTpNQkVEVExTX1BFTV9QQVJTRV9DOk1CRURUTFNfQ0lQSEVSX01PREVfQ0JDOk1CRURUTFNfQUVTX0MKLXBrX3BhcnNlX2tleWZpbGVfcnNhOiJkYXRhX2ZpbGVzL3Rlc3QtY2Eua2V5IjoiUG9sYXJTU0xXUk9ORyI6TUJFRFRMU19FUlJfUEtfUEFTU1dPUkRfTUlTTUFUQ0gKK3BrX3BhcnNlX2tleWZpbGVfcnNhOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy90ZXN0LWNhLmtleSI6IlBvbGFyU1NMV1JPTkciOk1CRURUTFNfRVJSX1BLX1BBU1NXT1JEX01JU01BVENICiAKIFBhcnNlIFJTQSBLZXkgIzQgKERFUyBFbmNyeXB0ZWQpCiBkZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX01ENTpNQkVEVExTX0RFU19DOk1CRURUTFNfUEVNX1BBUlNFX0M6TUJFRFRMU19DSVBIRVJfTU9ERV9DQkMKLXBrX3BhcnNlX2tleWZpbGVfcnNhOiJkYXRhX2ZpbGVzL3JzYV9wa2NzMV8xMDI0X2Rlcy5wZW0iOiJ0ZXN0a2V5IjowCitwa19wYXJzZV9rZXlmaWxlX3JzYToiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvcnNhX3BrY3MxXzEwMjRfZGVzLnBlbSI6InRlc3RrZXkiOjAKIAogUGFyc2UgUlNBIEtleSAjNSAoM0RFUyBFbmNyeXB0ZWQpCiBkZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX01ENTpNQkVEVExTX0RFU19DOk1CRURUTFNfUEVNX1BBUlNFX0M6TUJFRFRMU19DSVBIRVJfTU9ERV9DQkMKLXBrX3BhcnNlX2tleWZpbGVfcnNhOiJkYXRhX2ZpbGVzL3JzYV9wa2NzMV8xMDI0XzNkZXMucGVtIjoidGVzdGtleSI6MAorcGtfcGFyc2Vfa2V5ZmlsZV9yc2E6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3JzYV9wa2NzMV8xMDI0XzNkZXMucGVtIjoidGVzdGtleSI6MAogCiBQYXJzZSBSU0EgS2V5ICM2IChBRVMtMTI4IEVuY3J5cHRlZCkKIGRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fTUQ1Ok1CRURUTFNfQUVTX0M6TUJFRFRMU19QRU1fUEFSU0VfQzpNQkVEVExTX0NJUEhFUl9NT0RFX0NCQwotcGtfcGFyc2Vfa2V5ZmlsZV9yc2E6ImRhdGFfZmlsZXMvcnNhX3BrY3MxXzEwMjRfYWVzMTI4LnBlbSI6InRlc3RrZXkiOjAKK3BrX3BhcnNlX2tleWZpbGVfcnNhOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9yc2FfcGtjczFfMTAyNF9hZXMxMjgucGVtIjoidGVzdGtleSI6MAogCiBQYXJzZSBSU0EgS2V5ICM3IChBRVMtMTkyIEVuY3J5cHRlZCkKIGRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fTUQ1Ok1CRURUTFNfQUVTX0M6TUJFRFRMU19QRU1fUEFSU0VfQzpNQkVEVExTX0NJUEhFUl9NT0RFX0NCQzohTUJFRFRMU19BRVNfT05MWV8xMjhfQklUX0tFWV9MRU5HVEgKLXBrX3BhcnNlX2tleWZpbGVfcnNhOiJkYXRhX2ZpbGVzL3JzYV9wa2NzMV8xMDI0X2FlczE5Mi5wZW0iOiJ0ZXN0a2V5IjowCitwa19wYXJzZV9rZXlmaWxlX3JzYToiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvcnNhX3BrY3MxXzEwMjRfYWVzMTkyLnBlbSI6InRlc3RrZXkiOjAKIAogUGFyc2UgUlNBIEtleSAjOCAoQUVTLTI1NiBFbmNyeXB0ZWQpCiBkZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX01ENTpNQkVEVExTX0FFU19DOk1CRURUTFNfUEVNX1BBUlNFX0M6TUJFRFRMU19DSVBIRVJfTU9ERV9DQkM6IU1CRURUTFNfQUVTX09OTFlfMTI4X0JJVF9LRVlfTEVOR1RICi1wa19wYXJzZV9rZXlmaWxlX3JzYToiZGF0YV9maWxlcy9yc2FfcGtjczFfMTAyNF9hZXMyNTYucGVtIjoidGVzdGtleSI6MAorcGtfcGFyc2Vfa2V5ZmlsZV9yc2E6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3JzYV9wa2NzMV8xMDI0X2FlczI1Ni5wZW0iOiJ0ZXN0a2V5IjowCiAKIFBhcnNlIFJTQSBLZXkgIzkgKDIwNDgtYml0LCBERVMgRW5jcnlwdGVkKQogZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9NRDU6TUJFRFRMU19ERVNfQzpNQkVEVExTX1BFTV9QQVJTRV9DOk1CRURUTFNfQ0lQSEVSX01PREVfQ0JDCi1wa19wYXJzZV9rZXlmaWxlX3JzYToiZGF0YV9maWxlcy9yc2FfcGtjczFfMjA0OF9kZXMucGVtIjoidGVzdGtleSI6MAorcGtfcGFyc2Vfa2V5ZmlsZV9yc2E6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3JzYV9wa2NzMV8yMDQ4X2Rlcy5wZW0iOiJ0ZXN0a2V5IjowCiAKIFBhcnNlIFJTQSBLZXkgIzEwICgyMDQ4LWJpdCwgM0RFUyBFbmNyeXB0ZWQpCiBkZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX01ENTpNQkVEVExTX0RFU19DOk1CRURUTFNfUEVNX1BBUlNFX0M6TUJFRFRMU19DSVBIRVJfTU9ERV9DQkMKLXBrX3BhcnNlX2tleWZpbGVfcnNhOiJkYXRhX2ZpbGVzL3JzYV9wa2NzMV8yMDQ4XzNkZXMucGVtIjoidGVzdGtleSI6MAorcGtfcGFyc2Vfa2V5ZmlsZV9yc2E6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3JzYV9wa2NzMV8yMDQ4XzNkZXMucGVtIjoidGVzdGtleSI6MAogCiBQYXJzZSBSU0EgS2V5ICMxMSAoMjA0OC1iaXQsIEFFUy0xMjggRW5jcnlwdGVkKQogZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9NRDU6TUJFRFRMU19BRVNfQzpNQkVEVExTX1BFTV9QQVJTRV9DOk1CRURUTFNfQ0lQSEVSX01PREVfQ0JDCi1wa19wYXJzZV9rZXlmaWxlX3JzYToiZGF0YV9maWxlcy9yc2FfcGtjczFfMjA0OF9hZXMxMjgucGVtIjoidGVzdGtleSI6MAorcGtfcGFyc2Vfa2V5ZmlsZV9yc2E6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3JzYV9wa2NzMV8yMDQ4X2FlczEyOC5wZW0iOiJ0ZXN0a2V5IjowCiAKIFBhcnNlIFJTQSBLZXkgIzEyICgyMDQ4LWJpdCwgQUVTLTE5MiBFbmNyeXB0ZWQpCiBkZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX01ENTpNQkVEVExTX0FFU19DOk1CRURUTFNfUEVNX1BBUlNFX0M6TUJFRFRMU19DSVBIRVJfTU9ERV9DQkM6IU1CRURUTFNfQUVTX09OTFlfMTI4X0JJVF9LRVlfTEVOR1RICi1wa19wYXJzZV9rZXlmaWxlX3JzYToiZGF0YV9maWxlcy9yc2FfcGtjczFfMjA0OF9hZXMxOTIucGVtIjoidGVzdGtleSI6MAorcGtfcGFyc2Vfa2V5ZmlsZV9yc2E6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3JzYV9wa2NzMV8yMDQ4X2FlczE5Mi5wZW0iOiJ0ZXN0a2V5IjowCiAKIFBhcnNlIFJTQSBLZXkgIzEzICgyMDQ4LWJpdCwgQUVTLTI1NiBFbmNyeXB0ZWQpCiBkZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX01ENTpNQkVEVExTX0FFU19DOk1CRURUTFNfUEVNX1BBUlNFX0M6TUJFRFRMU19DSVBIRVJfTU9ERV9DQkM6IU1CRURUTFNfQUVTX09OTFlfMTI4X0JJVF9LRVlfTEVOR1RICi1wa19wYXJzZV9rZXlmaWxlX3JzYToiZGF0YV9maWxlcy9yc2FfcGtjczFfMjA0OF9hZXMyNTYucGVtIjoidGVzdGtleSI6MAorcGtfcGFyc2Vfa2V5ZmlsZV9yc2E6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3JzYV9wa2NzMV8yMDQ4X2FlczI1Ni5wZW0iOiJ0ZXN0a2V5IjowCiAKIFBhcnNlIFJTQSBLZXkgIzE0ICg0MDk2LWJpdCwgREVTIEVuY3J5cHRlZCkKIGRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fTUQ1Ok1CRURUTFNfREVTX0M6TUJFRFRMU19QRU1fUEFSU0VfQzpNQkVEVExTX0NJUEhFUl9NT0RFX0NCQwotcGtfcGFyc2Vfa2V5ZmlsZV9yc2E6ImRhdGFfZmlsZXMvcnNhX3BrY3MxXzQwOTZfZGVzLnBlbSI6InRlc3RrZXkiOjAKK3BrX3BhcnNlX2tleWZpbGVfcnNhOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9yc2FfcGtjczFfNDA5Nl9kZXMucGVtIjoidGVzdGtleSI6MAogCiBQYXJzZSBSU0EgS2V5ICMxNSAoNDA5Ni1iaXQsIDNERVMgRW5jcnlwdGVkKQogZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9NRDU6TUJFRFRMU19ERVNfQzpNQkVEVExTX1BFTV9QQVJTRV9DOk1CRURUTFNfQ0lQSEVSX01PREVfQ0JDCi1wa19wYXJzZV9rZXlmaWxlX3JzYToiZGF0YV9maWxlcy9yc2FfcGtjczFfNDA5Nl8zZGVzLnBlbSI6InRlc3RrZXkiOjAKK3BrX3BhcnNlX2tleWZpbGVfcnNhOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9yc2FfcGtjczFfNDA5Nl8zZGVzLnBlbSI6InRlc3RrZXkiOjAKIAogUGFyc2UgUlNBIEtleSAjMTYgKDQwOTYtYml0LCBBRVMtMTI4IEVuY3J5cHRlZCkKIGRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fTUQ1Ok1CRURUTFNfQUVTX0M6TUJFRFRMU19QRU1fUEFSU0VfQzpNQkVEVExTX0NJUEhFUl9NT0RFX0NCQwotcGtfcGFyc2Vfa2V5ZmlsZV9yc2E6ImRhdGFfZmlsZXMvcnNhX3BrY3MxXzQwOTZfYWVzMTI4LnBlbSI6InRlc3RrZXkiOjAKK3BrX3BhcnNlX2tleWZpbGVfcnNhOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9yc2FfcGtjczFfNDA5Nl9hZXMxMjgucGVtIjoidGVzdGtleSI6MAogCiBQYXJzZSBSU0EgS2V5ICMxNyAoNDA5Ni1iaXQsIEFFUy0xOTIgRW5jcnlwdGVkKQogZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9NRDU6TUJFRFRMU19BRVNfQzpNQkVEVExTX1BFTV9QQVJTRV9DOk1CRURUTFNfQ0lQSEVSX01PREVfQ0JDOiFNQkVEVExTX0FFU19PTkxZXzEyOF9CSVRfS0VZX0xFTkdUSAotcGtfcGFyc2Vfa2V5ZmlsZV9yc2E6ImRhdGFfZmlsZXMvcnNhX3BrY3MxXzQwOTZfYWVzMTkyLnBlbSI6InRlc3RrZXkiOjAKK3BrX3BhcnNlX2tleWZpbGVfcnNhOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9yc2FfcGtjczFfNDA5Nl9hZXMxOTIucGVtIjoidGVzdGtleSI6MAogCiBQYXJzZSBSU0EgS2V5ICMxOCAoNDA5Ni1iaXQsIEFFUy0yNTYgRW5jcnlwdGVkKQogZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9NRDU6TUJFRFRMU19BRVNfQzpNQkVEVExTX1BFTV9QQVJTRV9DOk1CRURUTFNfQ0lQSEVSX01PREVfQ0JDOiFNQkVEVExTX0FFU19PTkxZXzEyOF9CSVRfS0VZX0xFTkdUSAotcGtfcGFyc2Vfa2V5ZmlsZV9yc2E6ImRhdGFfZmlsZXMvcnNhX3BrY3MxXzQwOTZfYWVzMjU2LnBlbSI6InRlc3RrZXkiOjAKK3BrX3BhcnNlX2tleWZpbGVfcnNhOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9yc2FfcGtjczFfNDA5Nl9hZXMyNTYucGVtIjoidGVzdGtleSI6MAogCiBQYXJzZSBSU0EgS2V5ICMxOSAoUEtDUyM4IHdyYXBwZWQpCiBkZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX01ENTpNQkVEVExTX1BFTV9QQVJTRV9DCi1wa19wYXJzZV9rZXlmaWxlX3JzYToiZGF0YV9maWxlcy9mb3JtYXRfZ2VuLmtleSI6IiI6MAorcGtfcGFyc2Vfa2V5ZmlsZV9yc2E6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL2Zvcm1hdF9nZW4ua2V5IjoiIjowCiAKIFBhcnNlIFJTQSBLZXkgIzIwIChQS0NTIzggZW5jcnlwdGVkIFNIQTEtM0RFUykKIGRlcGVuZHNfb246TUJFRFRMU19ERVNfQzpNQkVEVExTX01EX0NBTl9TSEExOk1CRURUTFNfUEVNX1BBUlNFX0M6TUJFRFRMU19QS0NTMTJfQzpNQkVEVExTX0NJUEhFUl9DOk1CRURUTFNfQ0lQSEVSX01PREVfQ0JDCi1wa19wYXJzZV9rZXlmaWxlX3JzYToiZGF0YV9maWxlcy9yc2FfcGtjczhfcGJlX3NoYTFfMTAyNF8zZGVzLnBlbSI6IlBvbGFyU1NMVGVzdCI6MAorcGtfcGFyc2Vfa2V5ZmlsZV9yc2E6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3JzYV9wa2NzOF9wYmVfc2hhMV8xMDI0XzNkZXMucGVtIjoiUG9sYXJTU0xUZXN0IjowCiAKIFBhcnNlIFJTQSBLZXkgIzIwLjEgKFBLQ1MjOCBlbmNyeXB0ZWQgU0hBMS0zREVTLCB3cm9uZyBQVykKIGRlcGVuZHNfb246TUJFRFRMU19ERVNfQzpNQkVEVExTX01EX0NBTl9TSEExOk1CRURUTFNfUEVNX1BBUlNFX0M6TUJFRFRMU19QS0NTMTJfQzpNQkVEVExTX0NJUEhFUl9DOk1CRURUTFNfQ0lQSEVSX01PREVfQ0JDOk1CRURUTFNfQ0lQSEVSX1BBRERJTkdfUEtDUzcKLXBrX3BhcnNlX2tleWZpbGVfcnNhOiJkYXRhX2ZpbGVzL3JzYV9wa2NzOF9wYmVfc2hhMV8xMDI0XzNkZXMucGVtIjoiUG9sYXJTU0xUZXMiOk1CRURUTFNfRVJSX1BLX1BBU1NXT1JEX01JU01BVENICitwa19wYXJzZV9rZXlmaWxlX3JzYToiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvcnNhX3BrY3M4X3BiZV9zaGExXzEwMjRfM2Rlcy5wZW0iOiJQb2xhclNTTFRlcyI6TUJFRFRMU19FUlJfUEtfUEFTU1dPUkRfTUlTTUFUQ0gKIAogUGFyc2UgUlNBIEtleSAjMjAuMiAoUEtDUyM4IGVuY3J5cHRlZCBTSEExLTNERVMsIG5vIFBXKQogZGVwZW5kc19vbjpNQkVEVExTX0RFU19DOk1CRURUTFNfTURfQ0FOX1NIQTE6TUJFRFRMU19QRU1fUEFSU0VfQzpNQkVEVExTX1BLQ1MxMl9DOk1CRURUTFNfQ0lQSEVSX0MKLXBrX3BhcnNlX2tleWZpbGVfcnNhOiJkYXRhX2ZpbGVzL3JzYV9wa2NzOF9wYmVfc2hhMV8xMDI0XzNkZXMucGVtIjoiIjpNQkVEVExTX0VSUl9QS19QQVNTV09SRF9SRVFVSVJFRAorcGtfcGFyc2Vfa2V5ZmlsZV9yc2E6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3JzYV9wa2NzOF9wYmVfc2hhMV8xMDI0XzNkZXMucGVtIjoiIjpNQkVEVExTX0VSUl9QS19QQVNTV09SRF9SRVFVSVJFRAogCiBQYXJzZSBSU0EgS2V5ICMyMSAoUEtDUyM4IGVuY3J5cHRlZCBTSEExLTNERVMsIDIwNDgtYml0KQogZGVwZW5kc19vbjpNQkVEVExTX0RFU19DOk1CRURUTFNfTURfQ0FOX1NIQTE6TUJFRFRMU19QRU1fUEFSU0VfQzpNQkVEVExTX1BLQ1MxMl9DOk1CRURUTFNfQ0lQSEVSX0M6TUJFRFRMU19DSVBIRVJfTU9ERV9DQkMKLXBrX3BhcnNlX2tleWZpbGVfcnNhOiJkYXRhX2ZpbGVzL3JzYV9wa2NzOF9wYmVfc2hhMV8yMDQ4XzNkZXMucGVtIjoiUG9sYXJTU0xUZXN0IjowCitwa19wYXJzZV9rZXlmaWxlX3JzYToiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvcnNhX3BrY3M4X3BiZV9zaGExXzIwNDhfM2Rlcy5wZW0iOiJQb2xhclNTTFRlc3QiOjAKIAogUGFyc2UgUlNBIEtleSAjMjEuMSAoUEtDUyM4IGVuY3J5cHRlZCBTSEExLTNERVMsIDIwNDgtYml0LCB3cm9uZyBQVykKIGRlcGVuZHNfb246TUJFRFRMU19ERVNfQzpNQkVEVExTX01EX0NBTl9TSEExOk1CRURUTFNfUEVNX1BBUlNFX0M6TUJFRFRMU19QS0NTMTJfQzpNQkVEVExTX0NJUEhFUl9DOk1CRURUTFNfQ0lQSEVSX01PREVfQ0JDOk1CRURUTFNfQ0lQSEVSX1BBRERJTkdfUEtDUzcKLXBrX3BhcnNlX2tleWZpbGVfcnNhOiJkYXRhX2ZpbGVzL3JzYV9wa2NzOF9wYmVfc2hhMV8yMDQ4XzNkZXMucGVtIjoiUG9sYXJTU0xUZXMiOk1CRURUTFNfRVJSX1BLX1BBU1NXT1JEX01JU01BVENICitwa19wYXJzZV9rZXlmaWxlX3JzYToiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvcnNhX3BrY3M4X3BiZV9zaGExXzIwNDhfM2Rlcy5wZW0iOiJQb2xhclNTTFRlcyI6TUJFRFRMU19FUlJfUEtfUEFTU1dPUkRfTUlTTUFUQ0gKIAogUGFyc2UgUlNBIEtleSAjMjEuMiAoUEtDUyM4IGVuY3J5cHRlZCBTSEExLTNERVMsIDIwNDgtYml0LCBubyBQVykKIGRlcGVuZHNfb246TUJFRFRMU19ERVNfQzpNQkVEVExTX01EX0NBTl9TSEExOk1CRURUTFNfUEVNX1BBUlNFX0M6TUJFRFRMU19QS0NTMTJfQzpNQkVEVExTX0NJUEhFUl9DCi1wa19wYXJzZV9rZXlmaWxlX3JzYToiZGF0YV9maWxlcy9yc2FfcGtjczhfcGJlX3NoYTFfMjA0OF8zZGVzLnBlbSI6IiI6TUJFRFRMU19FUlJfUEtfUEFTU1dPUkRfUkVRVUlSRUQKK3BrX3BhcnNlX2tleWZpbGVfcnNhOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9yc2FfcGtjczhfcGJlX3NoYTFfMjA0OF8zZGVzLnBlbSI6IiI6TUJFRFRMU19FUlJfUEtfUEFTU1dPUkRfUkVRVUlSRUQKIAogUGFyc2UgUlNBIEtleSAjMjIgKFBLQ1MjOCBlbmNyeXB0ZWQgU0hBMS0zREVTLCA0MDk2LWJpdCkKIGRlcGVuZHNfb246TUJFRFRMU19ERVNfQzpNQkVEVExTX01EX0NBTl9TSEExOk1CRURUTFNfUEVNX1BBUlNFX0M6TUJFRFRMU19QS0NTMTJfQzpNQkVEVExTX0NJUEhFUl9DOk1CRURUTFNfQ0lQSEVSX01PREVfQ0JDCi1wa19wYXJzZV9rZXlmaWxlX3JzYToiZGF0YV9maWxlcy9yc2FfcGtjczhfcGJlX3NoYTFfNDA5Nl8zZGVzLnBlbSI6IlBvbGFyU1NMVGVzdCI6MAorcGtfcGFyc2Vfa2V5ZmlsZV9yc2E6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3JzYV9wa2NzOF9wYmVfc2hhMV80MDk2XzNkZXMucGVtIjoiUG9sYXJTU0xUZXN0IjowCiAKIFBhcnNlIFJTQSBLZXkgIzIyLjEgKFBLQ1MjOCBlbmNyeXB0ZWQgU0hBMS0zREVTLCA0MDk2LWJpdCwgd3JvbmcgUFcpCiBkZXBlbmRzX29uOk1CRURUTFNfREVTX0M6TUJFRFRMU19NRF9DQU5fU0hBMTpNQkVEVExTX1BFTV9QQVJTRV9DOk1CRURUTFNfUEtDUzEyX0M6TUJFRFRMU19DSVBIRVJfQzpNQkVEVExTX0NJUEhFUl9NT0RFX0NCQzpNQkVEVExTX0NJUEhFUl9QQURESU5HX1BLQ1M3Ci1wa19wYXJzZV9rZXlmaWxlX3JzYToiZGF0YV9maWxlcy9yc2FfcGtjczhfcGJlX3NoYTFfNDA5Nl8zZGVzLnBlbSI6IlBvbGFyU1NMVGVzIjpNQkVEVExTX0VSUl9QS19QQVNTV09SRF9NSVNNQVRDSAorcGtfcGFyc2Vfa2V5ZmlsZV9yc2E6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3JzYV9wa2NzOF9wYmVfc2hhMV80MDk2XzNkZXMucGVtIjoiUG9sYXJTU0xUZXMiOk1CRURUTFNfRVJSX1BLX1BBU1NXT1JEX01JU01BVENICiAKIFBhcnNlIFJTQSBLZXkgIzIyLjIgKFBLQ1MjOCBlbmNyeXB0ZWQgU0hBMS0zREVTLCA0MDk2LWJpdCwgbm8gUFcpCiBkZXBlbmRzX29uOk1CRURUTFNfREVTX0M6TUJFRFRMU19NRF9DQU5fU0hBMTpNQkVEVExTX1BFTV9QQVJTRV9DOk1CRURUTFNfUEtDUzEyX0M6TUJFRFRMU19DSVBIRVJfQwotcGtfcGFyc2Vfa2V5ZmlsZV9yc2E6ImRhdGFfZmlsZXMvcnNhX3BrY3M4X3BiZV9zaGExXzQwOTZfM2Rlcy5wZW0iOiIiOk1CRURUTFNfRVJSX1BLX1BBU1NXT1JEX1JFUVVJUkVECitwa19wYXJzZV9rZXlmaWxlX3JzYToiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvcnNhX3BrY3M4X3BiZV9zaGExXzQwOTZfM2Rlcy5wZW0iOiIiOk1CRURUTFNfRVJSX1BLX1BBU1NXT1JEX1JFUVVJUkVECiAKIFBhcnNlIFJTQSBLZXkgIzIzIChQS0NTIzggZW5jcnlwdGVkIFNIQTEtM0RFUyBERVIpCiBkZXBlbmRzX29uOk1CRURUTFNfREVTX0M6TUJFRFRMU19NRF9DQU5fU0hBMTpNQkVEVExTX1BLQ1MxMl9DOk1CRURUTFNfQ0lQSEVSX0M6TUJFRFRMU19DSVBIRVJfTU9ERV9DQkMKLXBrX3BhcnNlX2tleWZpbGVfcnNhOiJkYXRhX2ZpbGVzL3JzYV9wa2NzOF9wYmVfc2hhMV8xMDI0XzNkZXMuZGVyIjoiUG9sYXJTU0xUZXN0IjowCitwa19wYXJzZV9rZXlmaWxlX3JzYToiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvcnNhX3BrY3M4X3BiZV9zaGExXzEwMjRfM2Rlcy5kZXIiOiJQb2xhclNTTFRlc3QiOjAKIAogUGFyc2UgUlNBIEtleSAjMjQgKFBLQ1MjOCBlbmNyeXB0ZWQgU0hBMS0zREVTIERFUiwgMjA0OC1iaXQpCiBkZXBlbmRzX29uOk1CRURUTFNfREVTX0M6TUJFRFRMU19NRF9DQU5fU0hBMTpNQkVEVExTX1BLQ1MxMl9DOk1CRURUTFNfQ0lQSEVSX0M6TUJFRFRMU19DSVBIRVJfTU9ERV9DQkMKLXBrX3BhcnNlX2tleWZpbGVfcnNhOiJkYXRhX2ZpbGVzL3JzYV9wa2NzOF9wYmVfc2hhMV8yMDQ4XzNkZXMuZGVyIjoiUG9sYXJTU0xUZXN0IjowCitwa19wYXJzZV9rZXlmaWxlX3JzYToiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvcnNhX3BrY3M4X3BiZV9zaGExXzIwNDhfM2Rlcy5kZXIiOiJQb2xhclNTTFRlc3QiOjAKIAogUGFyc2UgUlNBIEtleSAjMjUgKFBLQ1MjOCBlbmNyeXB0ZWQgU0hBMS0zREVTIERFUiwgNDA5Ni1iaXQpCiBkZXBlbmRzX29uOk1CRURUTFNfREVTX0M6TUJFRFRMU19NRF9DQU5fU0hBMTpNQkVEVExTX1BLQ1MxMl9DOk1CRURUTFNfQ0lQSEVSX0M6TUJFRFRMU19DSVBIRVJfTU9ERV9DQkMKLXBrX3BhcnNlX2tleWZpbGVfcnNhOiJkYXRhX2ZpbGVzL3JzYV9wa2NzOF9wYmVfc2hhMV80MDk2XzNkZXMuZGVyIjoiUG9sYXJTU0xUZXN0IjowCitwa19wYXJzZV9rZXlmaWxlX3JzYToiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvcnNhX3BrY3M4X3BiZV9zaGExXzQwOTZfM2Rlcy5kZXIiOiJQb2xhclNTTFRlc3QiOjAKIAogUGFyc2UgUlNBIEtleSAjMjYgKFBLQ1MjOCBlbmNyeXB0ZWQgU0hBMS0yREVTKQogZGVwZW5kc19vbjpNQkVEVExTX0RFU19DOk1CRURUTFNfTURfQ0FOX1NIQTE6TUJFRFRMU19QRU1fUEFSU0VfQzpNQkVEVExTX1BLQ1MxMl9DOk1CRURUTFNfQ0lQSEVSX0M6TUJFRFRMU19DSVBIRVJfTU9ERV9DQkMKLXBrX3BhcnNlX2tleWZpbGVfcnNhOiJkYXRhX2ZpbGVzL3JzYV9wa2NzOF9wYmVfc2hhMV8xMDI0XzJkZXMucGVtIjoiUG9sYXJTU0xUZXN0IjowCitwa19wYXJzZV9rZXlmaWxlX3JzYToiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvcnNhX3BrY3M4X3BiZV9zaGExXzEwMjRfMmRlcy5wZW0iOiJQb2xhclNTTFRlc3QiOjAKIAogUGFyc2UgUlNBIEtleSAjMjYuMSAoUEtDUyM4IGVuY3J5cHRlZCBTSEExLTJERVMsIHdyb25nIFBXKQogZGVwZW5kc19vbjpNQkVEVExTX0RFU19DOk1CRURUTFNfTURfQ0FOX1NIQTE6TUJFRFRMU19QRU1fUEFSU0VfQzpNQkVEVExTX1BLQ1MxMl9DOk1CRURUTFNfQ0lQSEVSX0M6TUJFRFRMU19DSVBIRVJfTU9ERV9DQkM6TUJFRFRMU19DSVBIRVJfUEFERElOR19QS0NTNwotcGtfcGFyc2Vfa2V5ZmlsZV9yc2E6ImRhdGFfZmlsZXMvcnNhX3BrY3M4X3BiZV9zaGExXzEwMjRfMmRlcy5wZW0iOiJQb2xhclNMVGVzdCI6TUJFRFRMU19FUlJfUEtfUEFTU1dPUkRfTUlTTUFUQ0gKK3BrX3BhcnNlX2tleWZpbGVfcnNhOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9yc2FfcGtjczhfcGJlX3NoYTFfMTAyNF8yZGVzLnBlbSI6IlBvbGFyU0xUZXN0IjpNQkVEVExTX0VSUl9QS19QQVNTV09SRF9NSVNNQVRDSAogCiBQYXJzZSBSU0EgS2V5ICMyNi4yIChQS0NTIzggZW5jcnlwdGVkIFNIQTEtMkRFUywgbm8gUFcpCiBkZXBlbmRzX29uOk1CRURUTFNfREVTX0M6TUJFRFRMU19NRF9DQU5fU0hBMTpNQkVEVExTX1BFTV9QQVJTRV9DOk1CRURUTFNfUEtDUzEyX0M6TUJFRFRMU19DSVBIRVJfQwotcGtfcGFyc2Vfa2V5ZmlsZV9yc2E6ImRhdGFfZmlsZXMvcnNhX3BrY3M4X3BiZV9zaGExXzEwMjRfMmRlcy5wZW0iOiIiOk1CRURUTFNfRVJSX1BLX1BBU1NXT1JEX1JFUVVJUkVECitwa19wYXJzZV9rZXlmaWxlX3JzYToiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvcnNhX3BrY3M4X3BiZV9zaGExXzEwMjRfMmRlcy5wZW0iOiIiOk1CRURUTFNfRVJSX1BLX1BBU1NXT1JEX1JFUVVJUkVECiAKIFBhcnNlIFJTQSBLZXkgIzI3IChQS0NTIzggZW5jcnlwdGVkIFNIQTEtMkRFUywgMjA0OC1iaXQpCiBkZXBlbmRzX29uOk1CRURUTFNfREVTX0M6TUJFRFRMU19NRF9DQU5fU0hBMTpNQkVEVExTX1BFTV9QQVJTRV9DOk1CRURUTFNfUEtDUzEyX0M6TUJFRFRMU19DSVBIRVJfQzpNQkVEVExTX0NJUEhFUl9NT0RFX0NCQwotcGtfcGFyc2Vfa2V5ZmlsZV9yc2E6ImRhdGFfZmlsZXMvcnNhX3BrY3M4X3BiZV9zaGExXzIwNDhfMmRlcy5wZW0iOiJQb2xhclNTTFRlc3QiOjAKK3BrX3BhcnNlX2tleWZpbGVfcnNhOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9yc2FfcGtjczhfcGJlX3NoYTFfMjA0OF8yZGVzLnBlbSI6IlBvbGFyU1NMVGVzdCI6MAogCiBQYXJzZSBSU0EgS2V5ICMyNy4xIChQS0NTIzggZW5jcnlwdGVkIFNIQTEtMkRFUywgMjA0OC1iaXQsIHdyb25nIFBXKQogZGVwZW5kc19vbjpNQkVEVExTX0RFU19DOk1CRURUTFNfTURfQ0FOX1NIQTE6TUJFRFRMU19QRU1fUEFSU0VfQzpNQkVEVExTX1BLQ1MxMl9DOk1CRURUTFNfQ0lQSEVSX0M6TUJFRFRMU19DSVBIRVJfTU9ERV9DQkM6TUJFRFRMU19DSVBIRVJfUEFERElOR19QS0NTNwotcGtfcGFyc2Vfa2V5ZmlsZV9yc2E6ImRhdGFfZmlsZXMvcnNhX3BrY3M4X3BiZV9zaGExXzIwNDhfMmRlcy5wZW0iOiJQb2xhclNMVGVzdCI6TUJFRFRMU19FUlJfUEtfUEFTU1dPUkRfTUlTTUFUQ0gKK3BrX3BhcnNlX2tleWZpbGVfcnNhOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9yc2FfcGtjczhfcGJlX3NoYTFfMjA0OF8yZGVzLnBlbSI6IlBvbGFyU0xUZXN0IjpNQkVEVExTX0VSUl9QS19QQVNTV09SRF9NSVNNQVRDSAogCiBQYXJzZSBSU0EgS2V5ICMyNy4yIChQS0NTIzggZW5jcnlwdGVkIFNIQTEtMkRFUywgMjA0OC1iaXQgbm8gUFcpCiBkZXBlbmRzX29uOk1CRURUTFNfREVTX0M6TUJFRFRMU19NRF9DQU5fU0hBMTpNQkVEVExTX1BFTV9QQVJTRV9DOk1CRURUTFNfUEtDUzEyX0M6TUJFRFRMU19DSVBIRVJfQwotcGtfcGFyc2Vfa2V5ZmlsZV9yc2E6ImRhdGFfZmlsZXMvcnNhX3BrY3M4X3BiZV9zaGExXzIwNDhfMmRlcy5wZW0iOiIiOk1CRURUTFNfRVJSX1BLX1BBU1NXT1JEX1JFUVVJUkVECitwa19wYXJzZV9rZXlmaWxlX3JzYToiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvcnNhX3BrY3M4X3BiZV9zaGExXzIwNDhfMmRlcy5wZW0iOiIiOk1CRURUTFNfRVJSX1BLX1BBU1NXT1JEX1JFUVVJUkVECiAKIFBhcnNlIFJTQSBLZXkgIzI4IChQS0NTIzggZW5jcnlwdGVkIFNIQTEtMkRFUywgNDA5Ni1iaXQpCiBkZXBlbmRzX29uOk1CRURUTFNfREVTX0M6TUJFRFRMU19NRF9DQU5fU0hBMTpNQkVEVExTX1BFTV9QQVJTRV9DOk1CRURUTFNfUEtDUzEyX0M6TUJFRFRMU19DSVBIRVJfQzpNQkVEVExTX0NJUEhFUl9NT0RFX0NCQwotcGtfcGFyc2Vfa2V5ZmlsZV9yc2E6ImRhdGFfZmlsZXMvcnNhX3BrY3M4X3BiZV9zaGExXzQwOTZfMmRlcy5wZW0iOiJQb2xhclNTTFRlc3QiOjAKK3BrX3BhcnNlX2tleWZpbGVfcnNhOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9yc2FfcGtjczhfcGJlX3NoYTFfNDA5Nl8yZGVzLnBlbSI6IlBvbGFyU1NMVGVzdCI6MAogCiBQYXJzZSBSU0EgS2V5ICMyOC4xIChQS0NTIzggZW5jcnlwdGVkIFNIQTEtMkRFUywgNDA5Ni1iaXQsIHdyb25nIFBXKQogZGVwZW5kc19vbjpNQkVEVExTX0RFU19DOk1CRURUTFNfTURfQ0FOX1NIQTE6TUJFRFRMU19QRU1fUEFSU0VfQzpNQkVEVExTX1BLQ1MxMl9DOk1CRURUTFNfQ0lQSEVSX0M6TUJFRFRMU19DSVBIRVJfTU9ERV9DQkM6TUJFRFRMU19DSVBIRVJfUEFERElOR19QS0NTNwotcGtfcGFyc2Vfa2V5ZmlsZV9yc2E6ImRhdGFfZmlsZXMvcnNhX3BrY3M4X3BiZV9zaGExXzQwOTZfMmRlcy5wZW0iOiJQb2xhclNMVGVzdCI6TUJFRFRMU19FUlJfUEtfUEFTU1dPUkRfTUlTTUFUQ0gKK3BrX3BhcnNlX2tleWZpbGVfcnNhOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9yc2FfcGtjczhfcGJlX3NoYTFfNDA5Nl8yZGVzLnBlbSI6IlBvbGFyU0xUZXN0IjpNQkVEVExTX0VSUl9QS19QQVNTV09SRF9NSVNNQVRDSAogCiBQYXJzZSBSU0EgS2V5ICMyOC4yIChQS0NTIzggZW5jcnlwdGVkIFNIQTEtMkRFUywgNDA5Ni1iaXQsIG5vIFBXKQogZGVwZW5kc19vbjpNQkVEVExTX0RFU19DOk1CRURUTFNfTURfQ0FOX1NIQTE6TUJFRFRMU19QRU1fUEFSU0VfQzpNQkVEVExTX1BLQ1MxMl9DOk1CRURUTFNfQ0lQSEVSX0MKLXBrX3BhcnNlX2tleWZpbGVfcnNhOiJkYXRhX2ZpbGVzL3JzYV9wa2NzOF9wYmVfc2hhMV80MDk2XzJkZXMucGVtIjoiIjpNQkVEVExTX0VSUl9QS19QQVNTV09SRF9SRVFVSVJFRAorcGtfcGFyc2Vfa2V5ZmlsZV9yc2E6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3JzYV9wa2NzOF9wYmVfc2hhMV80MDk2XzJkZXMucGVtIjoiIjpNQkVEVExTX0VSUl9QS19QQVNTV09SRF9SRVFVSVJFRAogCiBQYXJzZSBSU0EgS2V5ICMyOSAoUEtDUyM4IGVuY3J5cHRlZCBTSEExLTJERVMgREVSKQogZGVwZW5kc19vbjpNQkVEVExTX0RFU19DOk1CRURUTFNfTURfQ0FOX1NIQTE6TUJFRFRMU19QS0NTMTJfQzpNQkVEVExTX0NJUEhFUl9DOk1CRURUTFNfQ0lQSEVSX01PREVfQ0JDCi1wa19wYXJzZV9rZXlmaWxlX3JzYToiZGF0YV9maWxlcy9yc2FfcGtjczhfcGJlX3NoYTFfMTAyNF8yZGVzLmRlciI6IlBvbGFyU1NMVGVzdCI6MAorcGtfcGFyc2Vfa2V5ZmlsZV9yc2E6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3JzYV9wa2NzOF9wYmVfc2hhMV8xMDI0XzJkZXMuZGVyIjoiUG9sYXJTU0xUZXN0IjowCiAKIFBhcnNlIFJTQSBLZXkgIzMwIChQS0NTIzggZW5jcnlwdGVkIFNIQTEtMkRFUyBERVIsIDIwNDgtYml0KQogZGVwZW5kc19vbjpNQkVEVExTX0RFU19DOk1CRURUTFNfTURfQ0FOX1NIQTE6TUJFRFRMU19QS0NTMTJfQzpNQkVEVExTX0NJUEhFUl9DOk1CRURUTFNfQ0lQSEVSX01PREVfQ0JDCi1wa19wYXJzZV9rZXlmaWxlX3JzYToiZGF0YV9maWxlcy9yc2FfcGtjczhfcGJlX3NoYTFfMjA0OF8yZGVzLmRlciI6IlBvbGFyU1NMVGVzdCI6MAorcGtfcGFyc2Vfa2V5ZmlsZV9yc2E6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3JzYV9wa2NzOF9wYmVfc2hhMV8yMDQ4XzJkZXMuZGVyIjoiUG9sYXJTU0xUZXN0IjowCiAKIFBhcnNlIFJTQSBLZXkgIzMxIChQS0NTIzggZW5jcnlwdGVkIFNIQTEtMkRFUyBERVIsIDQwOTYtYml0KQogZGVwZW5kc19vbjpNQkVEVExTX0RFU19DOk1CRURUTFNfTURfQ0FOX1NIQTE6TUJFRFRMU19QS0NTMTJfQzpNQkVEVExTX0NJUEhFUl9DOk1CRURUTFNfQ0lQSEVSX01PREVfQ0JDCi1wa19wYXJzZV9rZXlmaWxlX3JzYToiZGF0YV9maWxlcy9yc2FfcGtjczhfcGJlX3NoYTFfNDA5Nl8yZGVzLmRlciI6IlBvbGFyU1NMVGVzdCI6MAorcGtfcGFyc2Vfa2V5ZmlsZV9yc2E6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3JzYV9wa2NzOF9wYmVfc2hhMV80MDk2XzJkZXMuZGVyIjoiUG9sYXJTU0xUZXN0IjowCiAKIFBhcnNlIFJTQSBLZXkgIzM4IChQS0NTIzggZW5jcnlwdGVkIHYyIFBCS0RGMiAzREVTKQogZGVwZW5kc19vbjpNQkVEVExTX0RFU19DOk1CRURUTFNfTURfQ0FOX1NIQTE6TUJFRFRMU19QRU1fUEFSU0VfQzpNQkVEVExTX1BLQ1M1X0M6TUJFRFRMU19DSVBIRVJfQzpNQkVEVExTX0NJUEhFUl9NT0RFX0NCQwotcGtfcGFyc2Vfa2V5ZmlsZV9yc2E6ImRhdGFfZmlsZXMvcnNhX3BrY3M4X3BiZXMyX3Bia2RmMl8xMDI0XzNkZXMucGVtIjoiUG9sYXJTU0xUZXN0IjowCitwa19wYXJzZV9rZXlmaWxlX3JzYToiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvcnNhX3BrY3M4X3BiZXMyX3Bia2RmMl8xMDI0XzNkZXMucGVtIjoiUG9sYXJTU0xUZXN0IjowCiAKIFBhcnNlIFJTQSBLZXkgIzM4LjEgKFBLQ1MjOCBlbmNyeXB0ZWQgdjIgUEJLREYyIDNERVMsIHdyb25nIFBXKQogZGVwZW5kc19vbjpNQkVEVExTX0RFU19DOk1CRURUTFNfTURfQ0FOX1NIQTE6TUJFRFRMU19QRU1fUEFSU0VfQzpNQkVEVExTX1BLQ1M1X0M6TUJFRFRMU19DSVBIRVJfQzpNQkVEVExTX0NJUEhFUl9NT0RFX0NCQzpNQkVEVExTX0NJUEhFUl9QQURESU5HX1BLQ1M3Ci1wa19wYXJzZV9rZXlmaWxlX3JzYToiZGF0YV9maWxlcy9yc2FfcGtjczhfcGJlczJfcGJrZGYyXzEwMjRfM2Rlcy5wZW0iOiJQb2xhclNTTFRlcyI6TUJFRFRMU19FUlJfUEtfUEFTU1dPUkRfTUlTTUFUQ0gKK3BrX3BhcnNlX2tleWZpbGVfcnNhOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9yc2FfcGtjczhfcGJlczJfcGJrZGYyXzEwMjRfM2Rlcy5wZW0iOiJQb2xhclNTTFRlcyI6TUJFRFRMU19FUlJfUEtfUEFTU1dPUkRfTUlTTUFUQ0gKIAogUGFyc2UgUlNBIEtleSAjMzguMiAoUEtDUyM4IGVuY3J5cHRlZCB2MiBQQktERjIgM0RFUywgbm8gUFcpCiBkZXBlbmRzX29uOk1CRURUTFNfREVTX0M6TUJFRFRMU19NRF9DQU5fU0hBMTpNQkVEVExTX1BFTV9QQVJTRV9DOk1CRURUTFNfUEtDUzVfQzpNQkVEVExTX0NJUEhFUl9DCi1wa19wYXJzZV9rZXlmaWxlX3JzYToiZGF0YV9maWxlcy9yc2FfcGtjczhfcGJlczJfcGJrZGYyXzEwMjRfM2Rlcy5wZW0iOiIiOk1CRURUTFNfRVJSX1BLX1BBU1NXT1JEX1JFUVVJUkVECitwa19wYXJzZV9rZXlmaWxlX3JzYToiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvcnNhX3BrY3M4X3BiZXMyX3Bia2RmMl8xMDI0XzNkZXMucGVtIjoiIjpNQkVEVExTX0VSUl9QS19QQVNTV09SRF9SRVFVSVJFRAogCiBQYXJzZSBSU0EgS2V5ICMzOSAoUEtDUyM4IGVuY3J5cHRlZCB2MiBQQktERjIgM0RFUywgMjA0OC1iaXQpCiBkZXBlbmRzX29uOk1CRURUTFNfREVTX0M6TUJFRFRMU19NRF9DQU5fU0hBMTpNQkVEVExTX1BFTV9QQVJTRV9DOk1CRURUTFNfUEtDUzVfQzpNQkVEVExTX0NJUEhFUl9DOk1CRURUTFNfQ0lQSEVSX01PREVfQ0JDCi1wa19wYXJzZV9rZXlmaWxlX3JzYToiZGF0YV9maWxlcy9yc2FfcGtjczhfcGJlczJfcGJrZGYyXzIwNDhfM2Rlcy5wZW0iOiJQb2xhclNTTFRlc3QiOjAKK3BrX3BhcnNlX2tleWZpbGVfcnNhOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9yc2FfcGtjczhfcGJlczJfcGJrZGYyXzIwNDhfM2Rlcy5wZW0iOiJQb2xhclNTTFRlc3QiOjAKIAogUGFyc2UgUlNBIEtleSAjMzkuMSAoUEtDUyM4IGVuY3J5cHRlZCB2MiBQQktERjIgM0RFUywgMjA0OC1iaXQsIHdyb25nIFBXKQogZGVwZW5kc19vbjpNQkVEVExTX0RFU19DOk1CRURUTFNfTURfQ0FOX1NIQTE6TUJFRFRMU19QRU1fUEFSU0VfQzpNQkVEVExTX1BLQ1M1X0M6TUJFRFRMU19DSVBIRVJfQzpNQkVEVExTX0NJUEhFUl9NT0RFX0NCQzpNQkVEVExTX0NJUEhFUl9QQURESU5HX1BLQ1M3Ci1wa19wYXJzZV9rZXlmaWxlX3JzYToiZGF0YV9maWxlcy9yc2FfcGtjczhfcGJlczJfcGJrZGYyXzIwNDhfM2Rlcy5wZW0iOiJQb2xhclNTTFRlcyI6TUJFRFRMU19FUlJfUEtfUEFTU1dPUkRfTUlTTUFUQ0gKK3BrX3BhcnNlX2tleWZpbGVfcnNhOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9yc2FfcGtjczhfcGJlczJfcGJrZGYyXzIwNDhfM2Rlcy5wZW0iOiJQb2xhclNTTFRlcyI6TUJFRFRMU19FUlJfUEtfUEFTU1dPUkRfTUlTTUFUQ0gKIAogUGFyc2UgUlNBIEtleSAjMzkuMiAoUEtDUyM4IGVuY3J5cHRlZCB2MiBQQktERjIgM0RFUywgMjA0OC1iaXQsIG5vIFBXKQogZGVwZW5kc19vbjpNQkVEVExTX0RFU19DOk1CRURUTFNfTURfQ0FOX1NIQTE6TUJFRFRMU19QRU1fUEFSU0VfQzpNQkVEVExTX1BLQ1M1X0M6TUJFRFRMU19DSVBIRVJfQwotcGtfcGFyc2Vfa2V5ZmlsZV9yc2E6ImRhdGFfZmlsZXMvcnNhX3BrY3M4X3BiZXMyX3Bia2RmMl8yMDQ4XzNkZXMucGVtIjoiIjpNQkVEVExTX0VSUl9QS19QQVNTV09SRF9SRVFVSVJFRAorcGtfcGFyc2Vfa2V5ZmlsZV9yc2E6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3JzYV9wa2NzOF9wYmVzMl9wYmtkZjJfMjA0OF8zZGVzLnBlbSI6IiI6TUJFRFRMU19FUlJfUEtfUEFTU1dPUkRfUkVRVUlSRUQKIAogUGFyc2UgUlNBIEtleSAjNDAgKFBLQ1MjOCBlbmNyeXB0ZWQgdjIgUEJLREYyIDNERVMsIDQwOTYtYml0KQogZGVwZW5kc19vbjpNQkVEVExTX0RFU19DOk1CRURUTFNfTURfQ0FOX1NIQTE6TUJFRFRMU19QRU1fUEFSU0VfQzpNQkVEVExTX1BLQ1M1X0M6TUJFRFRMU19DSVBIRVJfQzpNQkVEVExTX0NJUEhFUl9NT0RFX0NCQwotcGtfcGFyc2Vfa2V5ZmlsZV9yc2E6ImRhdGFfZmlsZXMvcnNhX3BrY3M4X3BiZXMyX3Bia2RmMl80MDk2XzNkZXMucGVtIjoiUG9sYXJTU0xUZXN0IjowCitwa19wYXJzZV9rZXlmaWxlX3JzYToiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvcnNhX3BrY3M4X3BiZXMyX3Bia2RmMl80MDk2XzNkZXMucGVtIjoiUG9sYXJTU0xUZXN0IjowCiAKIFBhcnNlIFJTQSBLZXkgIzQwLjEgKFBLQ1MjOCBlbmNyeXB0ZWQgdjIgUEJLREYyIDNERVMsIDQwOTYtYml0LCB3cm9uZyBQVykKIGRlcGVuZHNfb246TUJFRFRMU19ERVNfQzpNQkVEVExTX01EX0NBTl9TSEExOk1CRURUTFNfUEVNX1BBUlNFX0M6TUJFRFRMU19QS0NTNV9DOk1CRURUTFNfQ0lQSEVSX0M6TUJFRFRMU19DSVBIRVJfTU9ERV9DQkM6TUJFRFRMU19DSVBIRVJfUEFERElOR19QS0NTNwotcGtfcGFyc2Vfa2V5ZmlsZV9yc2E6ImRhdGFfZmlsZXMvcnNhX3BrY3M4X3BiZXMyX3Bia2RmMl80MDk2XzNkZXMucGVtIjoiUG9sYXJTU0xUZXMiOk1CRURUTFNfRVJSX1BLX1BBU1NXT1JEX01JU01BVENICitwa19wYXJzZV9rZXlmaWxlX3JzYToiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvcnNhX3BrY3M4X3BiZXMyX3Bia2RmMl80MDk2XzNkZXMucGVtIjoiUG9sYXJTU0xUZXMiOk1CRURUTFNfRVJSX1BLX1BBU1NXT1JEX01JU01BVENICiAKIFBhcnNlIFJTQSBLZXkgIzQwLjIgKFBLQ1MjOCBlbmNyeXB0ZWQgdjIgUEJLREYyIDNERVMsIDQwOTYtYml0LCBubyBQVykKIGRlcGVuZHNfb246TUJFRFRMU19ERVNfQzpNQkVEVExTX01EX0NBTl9TSEExOk1CRURUTFNfUEVNX1BBUlNFX0M6TUJFRFRMU19QS0NTNV9DOk1CRURUTFNfQ0lQSEVSX0MKLXBrX3BhcnNlX2tleWZpbGVfcnNhOiJkYXRhX2ZpbGVzL3JzYV9wa2NzOF9wYmVzMl9wYmtkZjJfNDA5Nl8zZGVzLnBlbSI6IiI6TUJFRFRMU19FUlJfUEtfUEFTU1dPUkRfUkVRVUlSRUQKK3BrX3BhcnNlX2tleWZpbGVfcnNhOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9yc2FfcGtjczhfcGJlczJfcGJrZGYyXzQwOTZfM2Rlcy5wZW0iOiIiOk1CRURUTFNfRVJSX1BLX1BBU1NXT1JEX1JFUVVJUkVECiAKIFBhcnNlIFJTQSBLZXkgIzQxIChQS0NTIzggZW5jcnlwdGVkIHYyIFBCS0RGMiAzREVTIERFUikKIGRlcGVuZHNfb246TUJFRFRMU19ERVNfQzpNQkVEVExTX01EX0NBTl9TSEExOk1CRURUTFNfUEtDUzVfQzpNQkVEVExTX0NJUEhFUl9DOk1CRURUTFNfQ0lQSEVSX01PREVfQ0JDCi1wa19wYXJzZV9rZXlmaWxlX3JzYToiZGF0YV9maWxlcy9yc2FfcGtjczhfcGJlczJfcGJrZGYyXzEwMjRfM2Rlcy5kZXIiOiJQb2xhclNTTFRlc3QiOjAKK3BrX3BhcnNlX2tleWZpbGVfcnNhOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9yc2FfcGtjczhfcGJlczJfcGJrZGYyXzEwMjRfM2Rlcy5kZXIiOiJQb2xhclNTTFRlc3QiOjAKIAogUGFyc2UgUlNBIEtleSAjNDEuMSAoUEtDUyM4IGVuY3J5cHRlZCB2MiBQQktERjIgM0RFUyBERVIsIHdyb25nIFBXKQogZGVwZW5kc19vbjpNQkVEVExTX0RFU19DOk1CRURUTFNfTURfQ0FOX1NIQTE6TUJFRFRMU19QS0NTNV9DOk1CRURUTFNfQ0lQSEVSX0M6TUJFRFRMU19DSVBIRVJfTU9ERV9DQkM6TUJFRFRMU19DSVBIRVJfUEFERElOR19QS0NTNwotcGtfcGFyc2Vfa2V5ZmlsZV9yc2E6ImRhdGFfZmlsZXMvcnNhX3BrY3M4X3BiZXMyX3Bia2RmMl8xMDI0XzNkZXMuZGVyIjoiUG9sYXJTU0xUZXMiOk1CRURUTFNfRVJSX1BLX1BBU1NXT1JEX01JU01BVENICitwa19wYXJzZV9rZXlmaWxlX3JzYToiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvcnNhX3BrY3M4X3BiZXMyX3Bia2RmMl8xMDI0XzNkZXMuZGVyIjoiUG9sYXJTU0xUZXMiOk1CRURUTFNfRVJSX1BLX1BBU1NXT1JEX01JU01BVENICiAKIFBhcnNlIFJTQSBLZXkgIzQxLjIgKFBLQ1MjOCBlbmNyeXB0ZWQgdjIgUEJLREYyIDNERVMgREVSLCBubyBQVykKIGRlcGVuZHNfb246TUJFRFRMU19ERVNfQzpNQkVEVExTX01EX0NBTl9TSEExOk1CRURUTFNfUEtDUzVfQzpNQkVEVExTX0NJUEhFUl9DCi1wa19wYXJzZV9rZXlmaWxlX3JzYToiZGF0YV9maWxlcy9yc2FfcGtjczhfcGJlczJfcGJrZGYyXzEwMjRfM2Rlcy5kZXIiOiIiOk1CRURUTFNfRVJSX1BLX0tFWV9JTlZBTElEX0ZPUk1BVAorcGtfcGFyc2Vfa2V5ZmlsZV9yc2E6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3JzYV9wa2NzOF9wYmVzMl9wYmtkZjJfMTAyNF8zZGVzLmRlciI6IiI6TUJFRFRMU19FUlJfUEtfS0VZX0lOVkFMSURfRk9STUFUCiAKIFBhcnNlIFJTQSBLZXkgIzQyIChQS0NTIzggZW5jcnlwdGVkIHYyIFBCS0RGMiAzREVTIERFUiwgMjA0OC1iaXQpCiBkZXBlbmRzX29uOk1CRURUTFNfREVTX0M6TUJFRFRMU19NRF9DQU5fU0hBMTpNQkVEVExTX1BLQ1M1X0M6TUJFRFRMU19DSVBIRVJfQzpNQkVEVExTX0NJUEhFUl9NT0RFX0NCQwotcGtfcGFyc2Vfa2V5ZmlsZV9yc2E6ImRhdGFfZmlsZXMvcnNhX3BrY3M4X3BiZXMyX3Bia2RmMl8yMDQ4XzNkZXMuZGVyIjoiUG9sYXJTU0xUZXN0IjowCitwa19wYXJzZV9rZXlmaWxlX3JzYToiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvcnNhX3BrY3M4X3BiZXMyX3Bia2RmMl8yMDQ4XzNkZXMuZGVyIjoiUG9sYXJTU0xUZXN0IjowCiAKIFBhcnNlIFJTQSBLZXkgIzQyLjEgKFBLQ1MjOCBlbmNyeXB0ZWQgdjIgUEJLREYyIDNERVMgREVSLCAyMDQ4LWJpdCwgd3JvbmcgUFcpCiBkZXBlbmRzX29uOk1CRURUTFNfREVTX0M6TUJFRFRMU19NRF9DQU5fU0hBMTpNQkVEVExTX1BLQ1M1X0M6TUJFRFRMU19DSVBIRVJfQzpNQkVEVExTX0NJUEhFUl9NT0RFX0NCQzpNQkVEVExTX0NJUEhFUl9QQURESU5HX1BLQ1M3Ci1wa19wYXJzZV9rZXlmaWxlX3JzYToiZGF0YV9maWxlcy9yc2FfcGtjczhfcGJlczJfcGJrZGYyXzIwNDhfM2Rlcy5kZXIiOiJQb2xhclNTTFRlcyI6TUJFRFRMU19FUlJfUEtfUEFTU1dPUkRfTUlTTUFUQ0gKK3BrX3BhcnNlX2tleWZpbGVfcnNhOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9yc2FfcGtjczhfcGJlczJfcGJrZGYyXzIwNDhfM2Rlcy5kZXIiOiJQb2xhclNTTFRlcyI6TUJFRFRMU19FUlJfUEtfUEFTU1dPUkRfTUlTTUFUQ0gKIAogUGFyc2UgUlNBIEtleSAjNDIuMiAoUEtDUyM4IGVuY3J5cHRlZCB2MiBQQktERjIgM0RFUyBERVIsIDIwNDgtYml0LCBubyBQVykKIGRlcGVuZHNfb246TUJFRFRMU19ERVNfQzpNQkVEVExTX01EX0NBTl9TSEExOk1CRURUTFNfUEtDUzVfQzpNQkVEVExTX0NJUEhFUl9DCi1wa19wYXJzZV9rZXlmaWxlX3JzYToiZGF0YV9maWxlcy9yc2FfcGtjczhfcGJlczJfcGJrZGYyXzIwNDhfM2Rlcy5kZXIiOiIiOk1CRURUTFNfRVJSX1BLX0tFWV9JTlZBTElEX0ZPUk1BVAorcGtfcGFyc2Vfa2V5ZmlsZV9yc2E6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3JzYV9wa2NzOF9wYmVzMl9wYmtkZjJfMjA0OF8zZGVzLmRlciI6IiI6TUJFRFRMU19FUlJfUEtfS0VZX0lOVkFMSURfRk9STUFUCiAKIFBhcnNlIFJTQSBLZXkgIzQzIChQS0NTIzggZW5jcnlwdGVkIHYyIFBCS0RGMiAzREVTIERFUiwgNDA5Ni1iaXQpCiBkZXBlbmRzX29uOk1CRURUTFNfREVTX0M6TUJFRFRMU19NRF9DQU5fU0hBMTpNQkVEVExTX1BLQ1M1X0M6TUJFRFRMU19DSVBIRVJfQzpNQkVEVExTX0NJUEhFUl9NT0RFX0NCQwotcGtfcGFyc2Vfa2V5ZmlsZV9yc2E6ImRhdGFfZmlsZXMvcnNhX3BrY3M4X3BiZXMyX3Bia2RmMl80MDk2XzNkZXMuZGVyIjoiUG9sYXJTU0xUZXN0IjowCitwa19wYXJzZV9rZXlmaWxlX3JzYToiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvcnNhX3BrY3M4X3BiZXMyX3Bia2RmMl80MDk2XzNkZXMuZGVyIjoiUG9sYXJTU0xUZXN0IjowCiAKIFBhcnNlIFJTQSBLZXkgIzQzLjEgKFBLQ1MjOCBlbmNyeXB0ZWQgdjIgUEJLREYyIDNERVMgREVSLCA0MDk2LWJpdCwgd3JvbmcgUFcpCiBkZXBlbmRzX29uOk1CRURUTFNfREVTX0M6TUJFRFRMU19NRF9DQU5fU0hBMTpNQkVEVExTX1BLQ1M1X0M6TUJFRFRMU19DSVBIRVJfQzpNQkVEVExTX0NJUEhFUl9NT0RFX0NCQzpNQkVEVExTX0NJUEhFUl9QQURESU5HX1BLQ1M3Ci1wa19wYXJzZV9rZXlmaWxlX3JzYToiZGF0YV9maWxlcy9yc2FfcGtjczhfcGJlczJfcGJrZGYyXzQwOTZfM2Rlcy5kZXIiOiJQb2xhclNTTFRlcyI6TUJFRFRMU19FUlJfUEtfUEFTU1dPUkRfTUlTTUFUQ0gKK3BrX3BhcnNlX2tleWZpbGVfcnNhOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9yc2FfcGtjczhfcGJlczJfcGJrZGYyXzQwOTZfM2Rlcy5kZXIiOiJQb2xhclNTTFRlcyI6TUJFRFRMU19FUlJfUEtfUEFTU1dPUkRfTUlTTUFUQ0gKIAogUGFyc2UgUlNBIEtleSAjNDMuMiAoUEtDUyM4IGVuY3J5cHRlZCB2MiBQQktERjIgM0RFUyBERVIsIDQwOTYtYml0LCBubyBQVykKIGRlcGVuZHNfb246TUJFRFRMU19ERVNfQzpNQkVEVExTX01EX0NBTl9TSEExOk1CRURUTFNfUEtDUzVfQzpNQkVEVExTX0NJUEhFUl9DCi1wa19wYXJzZV9rZXlmaWxlX3JzYToiZGF0YV9maWxlcy9yc2FfcGtjczhfcGJlczJfcGJrZGYyXzQwOTZfM2Rlcy5kZXIiOiIiOk1CRURUTFNfRVJSX1BLX0tFWV9JTlZBTElEX0ZPUk1BVAorcGtfcGFyc2Vfa2V5ZmlsZV9yc2E6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3JzYV9wa2NzOF9wYmVzMl9wYmtkZjJfNDA5Nl8zZGVzLmRlciI6IiI6TUJFRFRMU19FUlJfUEtfS0VZX0lOVkFMSURfRk9STUFUCiAKIFBhcnNlIFJTQSBLZXkgIzQ0IChQS0NTIzggZW5jcnlwdGVkIHYyIFBCS0RGMiBERVMpCiBkZXBlbmRzX29uOk1CRURUTFNfREVTX0M6TUJFRFRMU19NRF9DQU5fU0hBMTpNQkVEVExTX1BFTV9QQVJTRV9DOk1CRURUTFNfUEtDUzVfQzpNQkVEVExTX0NJUEhFUl9DOk1CRURUTFNfQ0lQSEVSX01PREVfQ0JDCi1wa19wYXJzZV9rZXlmaWxlX3JzYToiZGF0YV9maWxlcy9yc2FfcGtjczhfcGJlczJfcGJrZGYyXzEwMjRfZGVzLnBlbSI6IlBvbGFyU1NMVGVzdCI6MAorcGtfcGFyc2Vfa2V5ZmlsZV9yc2E6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3JzYV9wa2NzOF9wYmVzMl9wYmtkZjJfMTAyNF9kZXMucGVtIjoiUG9sYXJTU0xUZXN0IjowCiAKIFBhcnNlIFJTQSBLZXkgIzQ0LjEgKFBLQ1MjOCBlbmNyeXB0ZWQgdjIgUEJLREYyIERFUywgd3JvbmcgUFcpCiBkZXBlbmRzX29uOk1CRURUTFNfREVTX0M6TUJFRFRMU19NRF9DQU5fU0hBMTpNQkVEVExTX1BFTV9QQVJTRV9DOk1CRURUTFNfUEtDUzVfQzpNQkVEVExTX0NJUEhFUl9DOk1CRURUTFNfQ0lQSEVSX01PREVfQ0JDOk1CRURUTFNfQ0lQSEVSX1BBRERJTkdfUEtDUzcKLXBrX3BhcnNlX2tleWZpbGVfcnNhOiJkYXRhX2ZpbGVzL3JzYV9wa2NzOF9wYmVzMl9wYmtkZjJfMTAyNF9kZXMucGVtIjoiUG9sYXJTU0xUZXMiOk1CRURUTFNfRVJSX1BLX1BBU1NXT1JEX01JU01BVENICitwa19wYXJzZV9rZXlmaWxlX3JzYToiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvcnNhX3BrY3M4X3BiZXMyX3Bia2RmMl8xMDI0X2Rlcy5wZW0iOiJQb2xhclNTTFRlcyI6TUJFRFRMU19FUlJfUEtfUEFTU1dPUkRfTUlTTUFUQ0gKIAogUGFyc2UgUlNBIEtleSAjNDQuMiAoUEtDUyM4IGVuY3J5cHRlZCB2MiBQQktERjIgREVTLCBubyBQVykKIGRlcGVuZHNfb246TUJFRFRMU19ERVNfQzpNQkVEVExTX01EX0NBTl9TSEExOk1CRURUTFNfUEVNX1BBUlNFX0M6TUJFRFRMU19QS0NTNV9DOk1CRURUTFNfQ0lQSEVSX0MKLXBrX3BhcnNlX2tleWZpbGVfcnNhOiJkYXRhX2ZpbGVzL3JzYV9wa2NzOF9wYmVzMl9wYmtkZjJfMTAyNF9kZXMucGVtIjoiIjpNQkVEVExTX0VSUl9QS19QQVNTV09SRF9SRVFVSVJFRAorcGtfcGFyc2Vfa2V5ZmlsZV9yc2E6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3JzYV9wa2NzOF9wYmVzMl9wYmtkZjJfMTAyNF9kZXMucGVtIjoiIjpNQkVEVExTX0VSUl9QS19QQVNTV09SRF9SRVFVSVJFRAogCiBQYXJzZSBSU0EgS2V5ICM0NSAoUEtDUyM4IGVuY3J5cHRlZCB2MiBQQktERjIgREVTLCAyMDQ4LWJpdCkKIGRlcGVuZHNfb246TUJFRFRMU19ERVNfQzpNQkVEVExTX01EX0NBTl9TSEExOk1CRURUTFNfUEVNX1BBUlNFX0M6TUJFRFRMU19QS0NTNV9DOk1CRURUTFNfQ0lQSEVSX0M6TUJFRFRMU19DSVBIRVJfTU9ERV9DQkMKLXBrX3BhcnNlX2tleWZpbGVfcnNhOiJkYXRhX2ZpbGVzL3JzYV9wa2NzOF9wYmVzMl9wYmtkZjJfMjA0OF9kZXMucGVtIjoiUG9sYXJTU0xUZXN0IjowCitwa19wYXJzZV9rZXlmaWxlX3JzYToiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvcnNhX3BrY3M4X3BiZXMyX3Bia2RmMl8yMDQ4X2Rlcy5wZW0iOiJQb2xhclNTTFRlc3QiOjAKIAogUGFyc2UgUlNBIEtleSAjNDUuMSAoUEtDUyM4IGVuY3J5cHRlZCB2MiBQQktERjIgREVTLCAyMDQ4LWJpdCwgd3JvbmcgUFcpCiBkZXBlbmRzX29uOk1CRURUTFNfREVTX0M6TUJFRFRMU19NRF9DQU5fU0hBMTpNQkVEVExTX1BFTV9QQVJTRV9DOk1CRURUTFNfUEtDUzVfQzpNQkVEVExTX0NJUEhFUl9DOk1CRURUTFNfQ0lQSEVSX01PREVfQ0JDOk1CRURUTFNfQ0lQSEVSX1BBRERJTkdfUEtDUzcKLXBrX3BhcnNlX2tleWZpbGVfcnNhOiJkYXRhX2ZpbGVzL3JzYV9wa2NzOF9wYmVzMl9wYmtkZjJfMjA0OF9kZXMucGVtIjoiUG9sYXJTU0xUZXMiOk1CRURUTFNfRVJSX1BLX1BBU1NXT1JEX01JU01BVENICitwa19wYXJzZV9rZXlmaWxlX3JzYToiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvcnNhX3BrY3M4X3BiZXMyX3Bia2RmMl8yMDQ4X2Rlcy5wZW0iOiJQb2xhclNTTFRlcyI6TUJFRFRMU19FUlJfUEtfUEFTU1dPUkRfTUlTTUFUQ0gKIAogUGFyc2UgUlNBIEtleSAjNDUuMiAoUEtDUyM4IGVuY3J5cHRlZCB2MiBQQktERjIgREVTLCAyMDQ4LWJpdCwgbm8gUFcpCiBkZXBlbmRzX29uOk1CRURUTFNfREVTX0M6TUJFRFRMU19NRF9DQU5fU0hBMTpNQkVEVExTX1BFTV9QQVJTRV9DOk1CRURUTFNfUEtDUzVfQzpNQkVEVExTX0NJUEhFUl9DCi1wa19wYXJzZV9rZXlmaWxlX3JzYToiZGF0YV9maWxlcy9yc2FfcGtjczhfcGJlczJfcGJrZGYyXzIwNDhfZGVzLnBlbSI6IiI6TUJFRFRMU19FUlJfUEtfUEFTU1dPUkRfUkVRVUlSRUQKK3BrX3BhcnNlX2tleWZpbGVfcnNhOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9yc2FfcGtjczhfcGJlczJfcGJrZGYyXzIwNDhfZGVzLnBlbSI6IiI6TUJFRFRMU19FUlJfUEtfUEFTU1dPUkRfUkVRVUlSRUQKIAogUGFyc2UgUlNBIEtleSAjNDYgKFBLQ1MjOCBlbmNyeXB0ZWQgdjIgUEJLREYyIERFUywgNDA5Ni1iaXQpCiBkZXBlbmRzX29uOk1CRURUTFNfREVTX0M6TUJFRFRMU19NRF9DQU5fU0hBMTpNQkVEVExTX1BFTV9QQVJTRV9DOk1CRURUTFNfUEtDUzVfQzpNQkVEVExTX0NJUEhFUl9DOk1CRURUTFNfQ0lQSEVSX01PREVfQ0JDCi1wa19wYXJzZV9rZXlmaWxlX3JzYToiZGF0YV9maWxlcy9yc2FfcGtjczhfcGJlczJfcGJrZGYyXzQwOTZfZGVzLnBlbSI6IlBvbGFyU1NMVGVzdCI6MAorcGtfcGFyc2Vfa2V5ZmlsZV9yc2E6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3JzYV9wa2NzOF9wYmVzMl9wYmtkZjJfNDA5Nl9kZXMucGVtIjoiUG9sYXJTU0xUZXN0IjowCiAKIFBhcnNlIFJTQSBLZXkgIzQ2LjEgKFBLQ1MjOCBlbmNyeXB0ZWQgdjIgUEJLREYyIERFUywgNDA5Ni1iaXQsIHdyb25nIFBXKQogZGVwZW5kc19vbjpNQkVEVExTX0RFU19DOk1CRURUTFNfTURfQ0FOX1NIQTE6TUJFRFRMU19QRU1fUEFSU0VfQzpNQkVEVExTX1BLQ1M1X0M6TUJFRFRMU19DSVBIRVJfQzpNQkVEVExTX0NJUEhFUl9NT0RFX0NCQzpNQkVEVExTX0NJUEhFUl9QQURESU5HX1BLQ1M3Ci1wa19wYXJzZV9rZXlmaWxlX3JzYToiZGF0YV9maWxlcy9yc2FfcGtjczhfcGJlczJfcGJrZGYyXzQwOTZfZGVzLnBlbSI6IlBvbGFyU1NMVGVzIjpNQkVEVExTX0VSUl9QS19QQVNTV09SRF9NSVNNQVRDSAorcGtfcGFyc2Vfa2V5ZmlsZV9yc2E6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3JzYV9wa2NzOF9wYmVzMl9wYmtkZjJfNDA5Nl9kZXMucGVtIjoiUG9sYXJTU0xUZXMiOk1CRURUTFNfRVJSX1BLX1BBU1NXT1JEX01JU01BVENICiAKIFBhcnNlIFJTQSBLZXkgIzQ2LjIgKFBLQ1MjOCBlbmNyeXB0ZWQgdjIgUEJLREYyIERFUywgNDA5Ni1iaXQsIG5vIFBXKQogZGVwZW5kc19vbjpNQkVEVExTX0RFU19DOk1CRURUTFNfTURfQ0FOX1NIQTE6TUJFRFRMU19QRU1fUEFSU0VfQzpNQkVEVExTX1BLQ1M1X0M6TUJFRFRMU19DSVBIRVJfQwotcGtfcGFyc2Vfa2V5ZmlsZV9yc2E6ImRhdGFfZmlsZXMvcnNhX3BrY3M4X3BiZXMyX3Bia2RmMl80MDk2X2Rlcy5wZW0iOiIiOk1CRURUTFNfRVJSX1BLX1BBU1NXT1JEX1JFUVVJUkVECitwa19wYXJzZV9rZXlmaWxlX3JzYToiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvcnNhX3BrY3M4X3BiZXMyX3Bia2RmMl80MDk2X2Rlcy5wZW0iOiIiOk1CRURUTFNfRVJSX1BLX1BBU1NXT1JEX1JFUVVJUkVECiAKIFBhcnNlIFJTQSBLZXkgIzQ3IChQS0NTIzggZW5jcnlwdGVkIHYyIFBCS0RGMiBERVMgREVSKQogZGVwZW5kc19vbjpNQkVEVExTX0RFU19DOk1CRURUTFNfTURfQ0FOX1NIQTE6TUJFRFRMU19QS0NTNV9DOk1CRURUTFNfQ0lQSEVSX0M6TUJFRFRMU19DSVBIRVJfTU9ERV9DQkMKLXBrX3BhcnNlX2tleWZpbGVfcnNhOiJkYXRhX2ZpbGVzL3JzYV9wa2NzOF9wYmVzMl9wYmtkZjJfMTAyNF9kZXMuZGVyIjoiUG9sYXJTU0xUZXN0IjowCitwa19wYXJzZV9rZXlmaWxlX3JzYToiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvcnNhX3BrY3M4X3BiZXMyX3Bia2RmMl8xMDI0X2Rlcy5kZXIiOiJQb2xhclNTTFRlc3QiOjAKIAogUGFyc2UgUlNBIEtleSAjNDcuMSAoUEtDUyM4IGVuY3J5cHRlZCB2MiBQQktERjIgREVTIERFUiwgd3JvbmcgUFcpCiBkZXBlbmRzX29uOk1CRURUTFNfREVTX0M6TUJFRFRMU19NRF9DQU5fU0hBMTpNQkVEVExTX1BLQ1M1X0M6TUJFRFRMU19DSVBIRVJfQzpNQkVEVExTX0NJUEhFUl9NT0RFX0NCQzpNQkVEVExTX0NJUEhFUl9QQURESU5HX1BLQ1M3Ci1wa19wYXJzZV9rZXlmaWxlX3JzYToiZGF0YV9maWxlcy9yc2FfcGtjczhfcGJlczJfcGJrZGYyXzEwMjRfZGVzLmRlciI6IlBvbGFyU1NMVGVzIjpNQkVEVExTX0VSUl9QS19QQVNTV09SRF9NSVNNQVRDSAorcGtfcGFyc2Vfa2V5ZmlsZV9yc2E6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3JzYV9wa2NzOF9wYmVzMl9wYmtkZjJfMTAyNF9kZXMuZGVyIjoiUG9sYXJTU0xUZXMiOk1CRURUTFNfRVJSX1BLX1BBU1NXT1JEX01JU01BVENICiAKIFBhcnNlIFJTQSBLZXkgIzQ3LjIgKFBLQ1MjOCBlbmNyeXB0ZWQgdjIgUEJLREYyIERFUyBERVIsIG5vIFBXKQogZGVwZW5kc19vbjpNQkVEVExTX0RFU19DOk1CRURUTFNfTURfQ0FOX1NIQTE6TUJFRFRMU19QS0NTNV9DOk1CRURUTFNfQ0lQSEVSX0MKLXBrX3BhcnNlX2tleWZpbGVfcnNhOiJkYXRhX2ZpbGVzL3JzYV9wa2NzOF9wYmVzMl9wYmtkZjJfMTAyNF9kZXMuZGVyIjoiIjpNQkVEVExTX0VSUl9QS19LRVlfSU5WQUxJRF9GT1JNQVQKK3BrX3BhcnNlX2tleWZpbGVfcnNhOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9yc2FfcGtjczhfcGJlczJfcGJrZGYyXzEwMjRfZGVzLmRlciI6IiI6TUJFRFRMU19FUlJfUEtfS0VZX0lOVkFMSURfRk9STUFUCiAKIFBhcnNlIFJTQSBLZXkgIzQ4IChQS0NTIzggZW5jcnlwdGVkIHYyIFBCS0RGMiBERVMgREVSLCAyMDQ4LWJpdCkKIGRlcGVuZHNfb246TUJFRFRMU19ERVNfQzpNQkVEVExTX01EX0NBTl9TSEExOk1CRURUTFNfUEtDUzVfQzpNQkVEVExTX0NJUEhFUl9DOk1CRURUTFNfQ0lQSEVSX01PREVfQ0JDCi1wa19wYXJzZV9rZXlmaWxlX3JzYToiZGF0YV9maWxlcy9yc2FfcGtjczhfcGJlczJfcGJrZGYyXzIwNDhfZGVzLmRlciI6IlBvbGFyU1NMVGVzdCI6MAorcGtfcGFyc2Vfa2V5ZmlsZV9yc2E6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3JzYV9wa2NzOF9wYmVzMl9wYmtkZjJfMjA0OF9kZXMuZGVyIjoiUG9sYXJTU0xUZXN0IjowCiAKIFBhcnNlIFJTQSBLZXkgIzQ4LjEgKFBLQ1MjOCBlbmNyeXB0ZWQgdjIgUEJLREYyIERFUyBERVIsIDIwNDgtYml0LCB3cm9uZyBQVykKIGRlcGVuZHNfb246TUJFRFRMU19ERVNfQzpNQkVEVExTX01EX0NBTl9TSEExOk1CRURUTFNfUEtDUzVfQzpNQkVEVExTX0NJUEhFUl9DOk1CRURUTFNfQ0lQSEVSX01PREVfQ0JDOk1CRURUTFNfQ0lQSEVSX1BBRERJTkdfUEtDUzcKLXBrX3BhcnNlX2tleWZpbGVfcnNhOiJkYXRhX2ZpbGVzL3JzYV9wa2NzOF9wYmVzMl9wYmtkZjJfMjA0OF9kZXMuZGVyIjoiUG9sYXJTU0xUZXMiOk1CRURUTFNfRVJSX1BLX1BBU1NXT1JEX01JU01BVENICitwa19wYXJzZV9rZXlmaWxlX3JzYToiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvcnNhX3BrY3M4X3BiZXMyX3Bia2RmMl8yMDQ4X2Rlcy5kZXIiOiJQb2xhclNTTFRlcyI6TUJFRFRMU19FUlJfUEtfUEFTU1dPUkRfTUlTTUFUQ0gKIAogUGFyc2UgUlNBIEtleSAjNDguMiAoUEtDUyM4IGVuY3J5cHRlZCB2MiBQQktERjIgREVTIERFUiwgMjA0OC1iaXQsIG5vIFBXKQogZGVwZW5kc19vbjpNQkVEVExTX0RFU19DOk1CRURUTFNfTURfQ0FOX1NIQTE6TUJFRFRMU19QS0NTNV9DOk1CRURUTFNfQ0lQSEVSX0MKLXBrX3BhcnNlX2tleWZpbGVfcnNhOiJkYXRhX2ZpbGVzL3JzYV9wa2NzOF9wYmVzMl9wYmtkZjJfMjA0OF9kZXMuZGVyIjoiIjpNQkVEVExTX0VSUl9QS19LRVlfSU5WQUxJRF9GT1JNQVQKK3BrX3BhcnNlX2tleWZpbGVfcnNhOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9yc2FfcGtjczhfcGJlczJfcGJrZGYyXzIwNDhfZGVzLmRlciI6IiI6TUJFRFRMU19FUlJfUEtfS0VZX0lOVkFMSURfRk9STUFUCiAKIFBhcnNlIFJTQSBLZXkgIzQ5IChQS0NTIzggZW5jcnlwdGVkIHYyIFBCS0RGMiBERVMgREVSLCA0MDk2LWJpdCkKIGRlcGVuZHNfb246TUJFRFRMU19ERVNfQzpNQkVEVExTX01EX0NBTl9TSEExOk1CRURUTFNfUEtDUzVfQzpNQkVEVExTX0NJUEhFUl9DOk1CRURUTFNfQ0lQSEVSX01PREVfQ0JDCi1wa19wYXJzZV9rZXlmaWxlX3JzYToiZGF0YV9maWxlcy9yc2FfcGtjczhfcGJlczJfcGJrZGYyXzQwOTZfZGVzLmRlciI6IlBvbGFyU1NMVGVzdCI6MAorcGtfcGFyc2Vfa2V5ZmlsZV9yc2E6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3JzYV9wa2NzOF9wYmVzMl9wYmtkZjJfNDA5Nl9kZXMuZGVyIjoiUG9sYXJTU0xUZXN0IjowCiAKIFBhcnNlIFJTQSBLZXkgIzQ5LjEgKFBLQ1MjOCBlbmNyeXB0ZWQgdjIgUEJLREYyIERFUyBERVIsIDQwOTYtYml0LCB3cm9uZyBQVykKIGRlcGVuZHNfb246TUJFRFRMU19ERVNfQzpNQkVEVExTX01EX0NBTl9TSEExOk1CRURUTFNfUEtDUzVfQzpNQkVEVExTX0NJUEhFUl9DOk1CRURUTFNfQ0lQSEVSX01PREVfQ0JDOk1CRURUTFNfQ0lQSEVSX1BBRERJTkdfUEtDUzcKLXBrX3BhcnNlX2tleWZpbGVfcnNhOiJkYXRhX2ZpbGVzL3JzYV9wa2NzOF9wYmVzMl9wYmtkZjJfNDA5Nl9kZXMuZGVyIjoiUG9sYXJTU0xUZXMiOk1CRURUTFNfRVJSX1BLX1BBU1NXT1JEX01JU01BVENICitwa19wYXJzZV9rZXlmaWxlX3JzYToiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvcnNhX3BrY3M4X3BiZXMyX3Bia2RmMl80MDk2X2Rlcy5kZXIiOiJQb2xhclNTTFRlcyI6TUJFRFRMU19FUlJfUEtfUEFTU1dPUkRfTUlTTUFUQ0gKIAogUGFyc2UgUlNBIEtleSAjNDkuMiAoUEtDUyM4IGVuY3J5cHRlZCB2MiBQQktERjIgREVTIERFUiwgNDA5Ni1iaXQsIG5vIFBXKQogZGVwZW5kc19vbjpNQkVEVExTX0RFU19DOk1CRURUTFNfTURfQ0FOX1NIQTE6TUJFRFRMU19QS0NTNV9DOk1CRURUTFNfQ0lQSEVSX0MKLXBrX3BhcnNlX2tleWZpbGVfcnNhOiJkYXRhX2ZpbGVzL3JzYV9wa2NzOF9wYmVzMl9wYmtkZjJfNDA5Nl9kZXMuZGVyIjoiIjpNQkVEVExTX0VSUl9QS19LRVlfSU5WQUxJRF9GT1JNQVQKK3BrX3BhcnNlX2tleWZpbGVfcnNhOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9yc2FfcGtjczhfcGJlczJfcGJrZGYyXzQwOTZfZGVzLmRlciI6IiI6TUJFRFRMU19FUlJfUEtfS0VZX0lOVkFMSURfRk9STUFUCiAKIFBhcnNlIFJTQSBLZXkgIzUwIChQS0NTIzggZW5jcnlwdGVkIHYyIFBCS0RGMiAzREVTIGhtYWNXaXRoU0hBMjI0KQotZGVwZW5kc19vbjpNQkVEVExTX0RFU19DOk1CRURUTFNfTURfQ0FOX1NIQTIyNDpNQkVEVExTX1BFTV9QQVJTRV9DOk1CRURUTFNfUEtDUzVfQzpNQkVEVExTX0NJUEhFUl9DOk1CRURUTFNfQ0lQSEVSX01PREVfQ0JDCi1wa19wYXJzZV9rZXlmaWxlX3JzYToiZGF0YV9maWxlcy9yc2FfcGtjczhfcGJlczJfcGJrZGYyXzEwMjRfM2Rlc19zaGEyMjQucGVtIjoiUG9sYXJTU0xUZXN0IjowCitkZXBlbmRzX29uOk1CRURUTFNfREVTX0M6UFNBX1dBTlRfQUxHX1NIQV8yMjQ6TUJFRFRMU19QRU1fUEFSU0VfQzpNQkVEVExTX1BLQ1M1X0M6TUJFRFRMU19DSVBIRVJfQzpNQkVEVExTX0NJUEhFUl9NT0RFX0NCQworcGtfcGFyc2Vfa2V5ZmlsZV9yc2E6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3JzYV9wa2NzOF9wYmVzMl9wYmtkZjJfMTAyNF8zZGVzX3NoYTIyNC5wZW0iOiJQb2xhclNTTFRlc3QiOjAKIAogUGFyc2UgUlNBIEtleSAjNTAuMSAoUEtDUyM4IGVuY3J5cHRlZCB2MiBQQktERjIgM0RFUyBobWFjV2l0aFNIQTIyNCwgd3JvbmcgUFcpCi1kZXBlbmRzX29uOk1CRURUTFNfREVTX0M6TUJFRFRMU19NRF9DQU5fU0hBMjI0Ok1CRURUTFNfUEVNX1BBUlNFX0M6TUJFRFRMU19QS0NTNV9DOk1CRURUTFNfQ0lQSEVSX0M6TUJFRFRMU19DSVBIRVJfTU9ERV9DQkM6TUJFRFRMU19DSVBIRVJfUEFERElOR19QS0NTNwotcGtfcGFyc2Vfa2V5ZmlsZV9yc2E6ImRhdGFfZmlsZXMvcnNhX3BrY3M4X3BiZXMyX3Bia2RmMl8xMDI0XzNkZXNfc2hhMjI0LnBlbSI6IlBvbGFyU1NMVGVzIjpNQkVEVExTX0VSUl9QS19QQVNTV09SRF9NSVNNQVRDSAorZGVwZW5kc19vbjpNQkVEVExTX0RFU19DOlBTQV9XQU5UX0FMR19TSEFfMjI0Ok1CRURUTFNfUEVNX1BBUlNFX0M6TUJFRFRMU19QS0NTNV9DOk1CRURUTFNfQ0lQSEVSX0M6TUJFRFRMU19DSVBIRVJfTU9ERV9DQkM6TUJFRFRMU19DSVBIRVJfUEFERElOR19QS0NTNworcGtfcGFyc2Vfa2V5ZmlsZV9yc2E6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3JzYV9wa2NzOF9wYmVzMl9wYmtkZjJfMTAyNF8zZGVzX3NoYTIyNC5wZW0iOiJQb2xhclNTTFRlcyI6TUJFRFRMU19FUlJfUEtfUEFTU1dPUkRfTUlTTUFUQ0gKIAogUGFyc2UgUlNBIEtleSAjNTAuMiAoUEtDUyM4IGVuY3J5cHRlZCB2MiBQQktERjIgM0RFUyBobWFjV2l0aFNIQTIyNCwgbm8gUFcpCi1kZXBlbmRzX29uOk1CRURUTFNfREVTX0M6TUJFRFRMU19NRF9DQU5fU0hBMjI0Ok1CRURUTFNfUEVNX1BBUlNFX0M6TUJFRFRMU19QS0NTNV9DOk1CRURUTFNfQ0lQSEVSX0MKLXBrX3BhcnNlX2tleWZpbGVfcnNhOiJkYXRhX2ZpbGVzL3JzYV9wa2NzOF9wYmVzMl9wYmtkZjJfMTAyNF8zZGVzX3NoYTIyNC5wZW0iOiIiOk1CRURUTFNfRVJSX1BLX1BBU1NXT1JEX1JFUVVJUkVECitkZXBlbmRzX29uOk1CRURUTFNfREVTX0M6UFNBX1dBTlRfQUxHX1NIQV8yMjQ6TUJFRFRMU19QRU1fUEFSU0VfQzpNQkVEVExTX1BLQ1M1X0M6TUJFRFRMU19DSVBIRVJfQworcGtfcGFyc2Vfa2V5ZmlsZV9yc2E6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3JzYV9wa2NzOF9wYmVzMl9wYmtkZjJfMTAyNF8zZGVzX3NoYTIyNC5wZW0iOiIiOk1CRURUTFNfRVJSX1BLX1BBU1NXT1JEX1JFUVVJUkVECiAKIFBhcnNlIFJTQSBLZXkgIzUxIChQS0NTIzggZW5jcnlwdGVkIHYyIFBCS0RGMiAzREVTIGhtYWNXaXRoU0hBMjI0LCAyMDQ4LWJpdCkKLWRlcGVuZHNfb246TUJFRFRMU19ERVNfQzpNQkVEVExTX01EX0NBTl9TSEEyMjQ6TUJFRFRMU19QRU1fUEFSU0VfQzpNQkVEVExTX1BLQ1M1X0M6TUJFRFRMU19DSVBIRVJfQzpNQkVEVExTX0NJUEhFUl9NT0RFX0NCQwotcGtfcGFyc2Vfa2V5ZmlsZV9yc2E6ImRhdGFfZmlsZXMvcnNhX3BrY3M4X3BiZXMyX3Bia2RmMl8yMDQ4XzNkZXNfc2hhMjI0LnBlbSI6IlBvbGFyU1NMVGVzdCI6MAorZGVwZW5kc19vbjpNQkVEVExTX0RFU19DOlBTQV9XQU5UX0FMR19TSEFfMjI0Ok1CRURUTFNfUEVNX1BBUlNFX0M6TUJFRFRMU19QS0NTNV9DOk1CRURUTFNfQ0lQSEVSX0M6TUJFRFRMU19DSVBIRVJfTU9ERV9DQkMKK3BrX3BhcnNlX2tleWZpbGVfcnNhOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9yc2FfcGtjczhfcGJlczJfcGJrZGYyXzIwNDhfM2Rlc19zaGEyMjQucGVtIjoiUG9sYXJTU0xUZXN0IjowCiAKIFBhcnNlIFJTQSBLZXkgIzUxLjEgKFBLQ1MjOCBlbmNyeXB0ZWQgdjIgUEJLREYyIDNERVMgaG1hY1dpdGhTSEEyMjQsIDIwNDgtYml0LCB3cm9uZyBQVykKLWRlcGVuZHNfb246TUJFRFRMU19ERVNfQzpNQkVEVExTX01EX0NBTl9TSEEyMjQ6TUJFRFRMU19QRU1fUEFSU0VfQzpNQkVEVExTX1BLQ1M1X0M6TUJFRFRMU19DSVBIRVJfQzpNQkVEVExTX0NJUEhFUl9NT0RFX0NCQzpNQkVEVExTX0NJUEhFUl9QQURESU5HX1BLQ1M3Ci1wa19wYXJzZV9rZXlmaWxlX3JzYToiZGF0YV9maWxlcy9yc2FfcGtjczhfcGJlczJfcGJrZGYyXzIwNDhfM2Rlc19zaGEyMjQucGVtIjoiUG9sYXJTU0xUZXMiOk1CRURUTFNfRVJSX1BLX1BBU1NXT1JEX01JU01BVENICitkZXBlbmRzX29uOk1CRURUTFNfREVTX0M6UFNBX1dBTlRfQUxHX1NIQV8yMjQ6TUJFRFRMU19QRU1fUEFSU0VfQzpNQkVEVExTX1BLQ1M1X0M6TUJFRFRMU19DSVBIRVJfQzpNQkVEVExTX0NJUEhFUl9NT0RFX0NCQzpNQkVEVExTX0NJUEhFUl9QQURESU5HX1BLQ1M3Citwa19wYXJzZV9rZXlmaWxlX3JzYToiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvcnNhX3BrY3M4X3BiZXMyX3Bia2RmMl8yMDQ4XzNkZXNfc2hhMjI0LnBlbSI6IlBvbGFyU1NMVGVzIjpNQkVEVExTX0VSUl9QS19QQVNTV09SRF9NSVNNQVRDSAogCiBQYXJzZSBSU0EgS2V5ICM1MS4yIChQS0NTIzggZW5jcnlwdGVkIHYyIFBCS0RGMiAzREVTIGhtYWNXaXRoU0hBMjI0LCAyMDQ4LWJpdCwgbm8gUFcpCi1kZXBlbmRzX29uOk1CRURUTFNfREVTX0M6TUJFRFRMU19NRF9DQU5fU0hBMjI0Ok1CRURUTFNfUEVNX1BBUlNFX0M6TUJFRFRMU19QS0NTNV9DOk1CRURUTFNfQ0lQSEVSX0MKLXBrX3BhcnNlX2tleWZpbGVfcnNhOiJkYXRhX2ZpbGVzL3JzYV9wa2NzOF9wYmVzMl9wYmtkZjJfMjA0OF8zZGVzX3NoYTIyNC5wZW0iOiIiOk1CRURUTFNfRVJSX1BLX1BBU1NXT1JEX1JFUVVJUkVECitkZXBlbmRzX29uOk1CRURUTFNfREVTX0M6UFNBX1dBTlRfQUxHX1NIQV8yMjQ6TUJFRFRMU19QRU1fUEFSU0VfQzpNQkVEVExTX1BLQ1M1X0M6TUJFRFRMU19DSVBIRVJfQworcGtfcGFyc2Vfa2V5ZmlsZV9yc2E6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3JzYV9wa2NzOF9wYmVzMl9wYmtkZjJfMjA0OF8zZGVzX3NoYTIyNC5wZW0iOiIiOk1CRURUTFNfRVJSX1BLX1BBU1NXT1JEX1JFUVVJUkVECiAKIFBhcnNlIFJTQSBLZXkgIzUyIChQS0NTIzggZW5jcnlwdGVkIHYyIFBCS0RGMiAzREVTIGhtYWNXaXRoU0hBMjI0LCA0MDk2LWJpdCkKLWRlcGVuZHNfb246TUJFRFRMU19ERVNfQzpNQkVEVExTX01EX0NBTl9TSEEyMjQ6TUJFRFRMU19QRU1fUEFSU0VfQzpNQkVEVExTX1BLQ1M1X0M6TUJFRFRMU19DSVBIRVJfQzpNQkVEVExTX0NJUEhFUl9NT0RFX0NCQwotcGtfcGFyc2Vfa2V5ZmlsZV9yc2E6ImRhdGFfZmlsZXMvcnNhX3BrY3M4X3BiZXMyX3Bia2RmMl80MDk2XzNkZXNfc2hhMjI0LnBlbSI6IlBvbGFyU1NMVGVzdCI6MAorZGVwZW5kc19vbjpNQkVEVExTX0RFU19DOlBTQV9XQU5UX0FMR19TSEFfMjI0Ok1CRURUTFNfUEVNX1BBUlNFX0M6TUJFRFRMU19QS0NTNV9DOk1CRURUTFNfQ0lQSEVSX0M6TUJFRFRMU19DSVBIRVJfTU9ERV9DQkMKK3BrX3BhcnNlX2tleWZpbGVfcnNhOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9yc2FfcGtjczhfcGJlczJfcGJrZGYyXzQwOTZfM2Rlc19zaGEyMjQucGVtIjoiUG9sYXJTU0xUZXN0IjowCiAKIFBhcnNlIFJTQSBLZXkgIzUyLjEgKFBLQ1MjOCBlbmNyeXB0ZWQgdjIgUEJLREYyIDNERVMgaG1hY1dpdGhTSEEyMjQsIDQwOTYtYml0LCB3cm9uZyBQVykKLWRlcGVuZHNfb246TUJFRFRMU19ERVNfQzpNQkVEVExTX01EX0NBTl9TSEEyMjQ6TUJFRFRMU19QRU1fUEFSU0VfQzpNQkVEVExTX1BLQ1M1X0M6TUJFRFRMU19DSVBIRVJfQzpNQkVEVExTX0NJUEhFUl9NT0RFX0NCQzpNQkVEVExTX0NJUEhFUl9QQURESU5HX1BLQ1M3Ci1wa19wYXJzZV9rZXlmaWxlX3JzYToiZGF0YV9maWxlcy9yc2FfcGtjczhfcGJlczJfcGJrZGYyXzQwOTZfM2Rlc19zaGEyMjQucGVtIjoiUG9sYXJTU0xUZXMiOk1CRURUTFNfRVJSX1BLX1BBU1NXT1JEX01JU01BVENICitkZXBlbmRzX29uOk1CRURUTFNfREVTX0M6UFNBX1dBTlRfQUxHX1NIQV8yMjQ6TUJFRFRMU19QRU1fUEFSU0VfQzpNQkVEVExTX1BLQ1M1X0M6TUJFRFRMU19DSVBIRVJfQzpNQkVEVExTX0NJUEhFUl9NT0RFX0NCQzpNQkVEVExTX0NJUEhFUl9QQURESU5HX1BLQ1M3Citwa19wYXJzZV9rZXlmaWxlX3JzYToiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvcnNhX3BrY3M4X3BiZXMyX3Bia2RmMl80MDk2XzNkZXNfc2hhMjI0LnBlbSI6IlBvbGFyU1NMVGVzIjpNQkVEVExTX0VSUl9QS19QQVNTV09SRF9NSVNNQVRDSAogCiBQYXJzZSBSU0EgS2V5ICM1Mi4yIChQS0NTIzggZW5jcnlwdGVkIHYyIFBCS0RGMiAzREVTIGhtYWNXaXRoU0hBMjI0LCA0MDk2LWJpdCwgbm8gUFcpCi1kZXBlbmRzX29uOk1CRURUTFNfREVTX0M6TUJFRFRMU19NRF9DQU5fU0hBMjI0Ok1CRURUTFNfUEVNX1BBUlNFX0M6TUJFRFRMU19QS0NTNV9DOk1CRURUTFNfQ0lQSEVSX0MKLXBrX3BhcnNlX2tleWZpbGVfcnNhOiJkYXRhX2ZpbGVzL3JzYV9wa2NzOF9wYmVzMl9wYmtkZjJfNDA5Nl8zZGVzX3NoYTIyNC5wZW0iOiIiOk1CRURUTFNfRVJSX1BLX1BBU1NXT1JEX1JFUVVJUkVECitkZXBlbmRzX29uOk1CRURUTFNfREVTX0M6UFNBX1dBTlRfQUxHX1NIQV8yMjQ6TUJFRFRMU19QRU1fUEFSU0VfQzpNQkVEVExTX1BLQ1M1X0M6TUJFRFRMU19DSVBIRVJfQworcGtfcGFyc2Vfa2V5ZmlsZV9yc2E6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3JzYV9wa2NzOF9wYmVzMl9wYmtkZjJfNDA5Nl8zZGVzX3NoYTIyNC5wZW0iOiIiOk1CRURUTFNfRVJSX1BLX1BBU1NXT1JEX1JFUVVJUkVECiAKIFBhcnNlIFJTQSBLZXkgIzUzIChQS0NTIzggZW5jcnlwdGVkIHYyIFBCS0RGMiAzREVTIGhtYWNXaXRoU0hBMjI0IERFUikKLWRlcGVuZHNfb246TUJFRFRMU19ERVNfQzpNQkVEVExTX01EX0NBTl9TSEEyMjQ6TUJFRFRMU19QS0NTNV9DOk1CRURUTFNfQ0lQSEVSX0M6TUJFRFRMU19DSVBIRVJfTU9ERV9DQkMKLXBrX3BhcnNlX2tleWZpbGVfcnNhOiJkYXRhX2ZpbGVzL3JzYV9wa2NzOF9wYmVzMl9wYmtkZjJfMTAyNF8zZGVzX3NoYTIyNC5kZXIiOiJQb2xhclNTTFRlc3QiOjAKK2RlcGVuZHNfb246TUJFRFRMU19ERVNfQzpQU0FfV0FOVF9BTEdfU0hBXzIyNDpNQkVEVExTX1BLQ1M1X0M6TUJFRFRMU19DSVBIRVJfQzpNQkVEVExTX0NJUEhFUl9NT0RFX0NCQworcGtfcGFyc2Vfa2V5ZmlsZV9yc2E6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3JzYV9wa2NzOF9wYmVzMl9wYmtkZjJfMTAyNF8zZGVzX3NoYTIyNC5kZXIiOiJQb2xhclNTTFRlc3QiOjAKIAogUGFyc2UgUlNBIEtleSAjNTMuMSAoUEtDUyM4IGVuY3J5cHRlZCB2MiBQQktERjIgM0RFUyBobWFjV2l0aFNIQTIyNCBERVIsIHdyb25nIFBXKQotZGVwZW5kc19vbjpNQkVEVExTX0RFU19DOk1CRURUTFNfTURfQ0FOX1NIQTIyNDpNQkVEVExTX1BLQ1M1X0M6TUJFRFRMU19DSVBIRVJfQzpNQkVEVExTX0NJUEhFUl9NT0RFX0NCQzpNQkVEVExTX0NJUEhFUl9QQURESU5HX1BLQ1M3Ci1wa19wYXJzZV9rZXlmaWxlX3JzYToiZGF0YV9maWxlcy9yc2FfcGtjczhfcGJlczJfcGJrZGYyXzEwMjRfM2Rlc19zaGEyMjQuZGVyIjoiUG9sYXJTU0xUZXMiOk1CRURUTFNfRVJSX1BLX1BBU1NXT1JEX01JU01BVENICitkZXBlbmRzX29uOk1CRURUTFNfREVTX0M6UFNBX1dBTlRfQUxHX1NIQV8yMjQ6TUJFRFRMU19QS0NTNV9DOk1CRURUTFNfQ0lQSEVSX0M6TUJFRFRMU19DSVBIRVJfTU9ERV9DQkM6TUJFRFRMU19DSVBIRVJfUEFERElOR19QS0NTNworcGtfcGFyc2Vfa2V5ZmlsZV9yc2E6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3JzYV9wa2NzOF9wYmVzMl9wYmtkZjJfMTAyNF8zZGVzX3NoYTIyNC5kZXIiOiJQb2xhclNTTFRlcyI6TUJFRFRMU19FUlJfUEtfUEFTU1dPUkRfTUlTTUFUQ0gKIAogUGFyc2UgUlNBIEtleSAjNTMuMiAoUEtDUyM4IGVuY3J5cHRlZCB2MiBQQktERjIgM0RFUyBobWFjV2l0aFNIQTIyNCBERVIsIG5vIFBXKQotZGVwZW5kc19vbjpNQkVEVExTX0RFU19DOk1CRURUTFNfTURfQ0FOX1NIQTIyNDpNQkVEVExTX1BLQ1M1X0M6TUJFRFRMU19DSVBIRVJfQwotcGtfcGFyc2Vfa2V5ZmlsZV9yc2E6ImRhdGFfZmlsZXMvcnNhX3BrY3M4X3BiZXMyX3Bia2RmMl8xMDI0XzNkZXNfc2hhMjI0LmRlciI6IiI6TUJFRFRMU19FUlJfUEtfS0VZX0lOVkFMSURfRk9STUFUCitkZXBlbmRzX29uOk1CRURUTFNfREVTX0M6UFNBX1dBTlRfQUxHX1NIQV8yMjQ6TUJFRFRMU19QS0NTNV9DOk1CRURUTFNfQ0lQSEVSX0MKK3BrX3BhcnNlX2tleWZpbGVfcnNhOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9yc2FfcGtjczhfcGJlczJfcGJrZGYyXzEwMjRfM2Rlc19zaGEyMjQuZGVyIjoiIjpNQkVEVExTX0VSUl9QS19LRVlfSU5WQUxJRF9GT1JNQVQKIAogUGFyc2UgUlNBIEtleSAjNTQgKFBLQ1MjOCBlbmNyeXB0ZWQgdjIgUEJLREYyIDNERVMgaG1hY1dpdGhTSEEyMjQgREVSLCAyMDQ4LWJpdCkKLWRlcGVuZHNfb246TUJFRFRMU19ERVNfQzpNQkVEVExTX01EX0NBTl9TSEEyMjQ6TUJFRFRMU19QS0NTNV9DOk1CRURUTFNfQ0lQSEVSX0M6TUJFRFRMU19DSVBIRVJfTU9ERV9DQkMKLXBrX3BhcnNlX2tleWZpbGVfcnNhOiJkYXRhX2ZpbGVzL3JzYV9wa2NzOF9wYmVzMl9wYmtkZjJfMjA0OF8zZGVzX3NoYTIyNC5kZXIiOiJQb2xhclNTTFRlc3QiOjAKK2RlcGVuZHNfb246TUJFRFRMU19ERVNfQzpQU0FfV0FOVF9BTEdfU0hBXzIyNDpNQkVEVExTX1BLQ1M1X0M6TUJFRFRMU19DSVBIRVJfQzpNQkVEVExTX0NJUEhFUl9NT0RFX0NCQworcGtfcGFyc2Vfa2V5ZmlsZV9yc2E6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3JzYV9wa2NzOF9wYmVzMl9wYmtkZjJfMjA0OF8zZGVzX3NoYTIyNC5kZXIiOiJQb2xhclNTTFRlc3QiOjAKIAogUGFyc2UgUlNBIEtleSAjNTQuMSAoUEtDUyM4IGVuY3J5cHRlZCB2MiBQQktERjIgM0RFUyBobWFjV2l0aFNIQTIyNCBERVIsIDIwNDgtYml0LCB3cm9uZyBQVykKLWRlcGVuZHNfb246TUJFRFRMU19ERVNfQzpNQkVEVExTX01EX0NBTl9TSEEyMjQ6TUJFRFRMU19QS0NTNV9DOk1CRURUTFNfQ0lQSEVSX0M6TUJFRFRMU19DSVBIRVJfTU9ERV9DQkM6TUJFRFRMU19DSVBIRVJfUEFERElOR19QS0NTNwotcGtfcGFyc2Vfa2V5ZmlsZV9yc2E6ImRhdGFfZmlsZXMvcnNhX3BrY3M4X3BiZXMyX3Bia2RmMl8yMDQ4XzNkZXNfc2hhMjI0LmRlciI6IlBvbGFyU1NMVGVzIjpNQkVEVExTX0VSUl9QS19QQVNTV09SRF9NSVNNQVRDSAorZGVwZW5kc19vbjpNQkVEVExTX0RFU19DOlBTQV9XQU5UX0FMR19TSEFfMjI0Ok1CRURUTFNfUEtDUzVfQzpNQkVEVExTX0NJUEhFUl9DOk1CRURUTFNfQ0lQSEVSX01PREVfQ0JDOk1CRURUTFNfQ0lQSEVSX1BBRERJTkdfUEtDUzcKK3BrX3BhcnNlX2tleWZpbGVfcnNhOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9yc2FfcGtjczhfcGJlczJfcGJrZGYyXzIwNDhfM2Rlc19zaGEyMjQuZGVyIjoiUG9sYXJTU0xUZXMiOk1CRURUTFNfRVJSX1BLX1BBU1NXT1JEX01JU01BVENICiAKIFBhcnNlIFJTQSBLZXkgIzU0LjIgKFBLQ1MjOCBlbmNyeXB0ZWQgdjIgUEJLREYyIDNERVMgaG1hY1dpdGhTSEEyMjQgREVSLCAyMDQ4LWJpdCwgbm8gUFcpCi1kZXBlbmRzX29uOk1CRURUTFNfREVTX0M6TUJFRFRMU19NRF9DQU5fU0hBMjI0Ok1CRURUTFNfUEtDUzVfQzpNQkVEVExTX0NJUEhFUl9DCi1wa19wYXJzZV9rZXlmaWxlX3JzYToiZGF0YV9maWxlcy9yc2FfcGtjczhfcGJlczJfcGJrZGYyXzIwNDhfM2Rlc19zaGEyMjQuZGVyIjoiIjpNQkVEVExTX0VSUl9QS19LRVlfSU5WQUxJRF9GT1JNQVQKK2RlcGVuZHNfb246TUJFRFRMU19ERVNfQzpQU0FfV0FOVF9BTEdfU0hBXzIyNDpNQkVEVExTX1BLQ1M1X0M6TUJFRFRMU19DSVBIRVJfQworcGtfcGFyc2Vfa2V5ZmlsZV9yc2E6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3JzYV9wa2NzOF9wYmVzMl9wYmtkZjJfMjA0OF8zZGVzX3NoYTIyNC5kZXIiOiIiOk1CRURUTFNfRVJSX1BLX0tFWV9JTlZBTElEX0ZPUk1BVAogCiBQYXJzZSBSU0EgS2V5ICM1NSAoUEtDUyM4IGVuY3J5cHRlZCB2MiBQQktERjIgM0RFUyBobWFjV2l0aFNIQTIyNCBERVIsIDQwOTYtYml0KQotZGVwZW5kc19vbjpNQkVEVExTX0RFU19DOk1CRURUTFNfTURfQ0FOX1NIQTIyNDpNQkVEVExTX1BLQ1M1X0M6TUJFRFRMU19DSVBIRVJfQzpNQkVEVExTX0NJUEhFUl9NT0RFX0NCQwotcGtfcGFyc2Vfa2V5ZmlsZV9yc2E6ImRhdGFfZmlsZXMvcnNhX3BrY3M4X3BiZXMyX3Bia2RmMl80MDk2XzNkZXNfc2hhMjI0LmRlciI6IlBvbGFyU1NMVGVzdCI6MAorZGVwZW5kc19vbjpNQkVEVExTX0RFU19DOlBTQV9XQU5UX0FMR19TSEFfMjI0Ok1CRURUTFNfUEtDUzVfQzpNQkVEVExTX0NJUEhFUl9DOk1CRURUTFNfQ0lQSEVSX01PREVfQ0JDCitwa19wYXJzZV9rZXlmaWxlX3JzYToiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvcnNhX3BrY3M4X3BiZXMyX3Bia2RmMl80MDk2XzNkZXNfc2hhMjI0LmRlciI6IlBvbGFyU1NMVGVzdCI6MAogCiBQYXJzZSBSU0EgS2V5ICM1NS4xIChQS0NTIzggZW5jcnlwdGVkIHYyIFBCS0RGMiAzREVTIGhtYWNXaXRoU0hBMjI0IERFUiwgNDA5Ni1iaXQsIHdyb25nIFBXKQotZGVwZW5kc19vbjpNQkVEVExTX0RFU19DOk1CRURUTFNfTURfQ0FOX1NIQTIyNDpNQkVEVExTX1BLQ1M1X0M6TUJFRFRMU19DSVBIRVJfQzpNQkVEVExTX0NJUEhFUl9NT0RFX0NCQzpNQkVEVExTX0NJUEhFUl9QQURESU5HX1BLQ1M3Ci1wa19wYXJzZV9rZXlmaWxlX3JzYToiZGF0YV9maWxlcy9yc2FfcGtjczhfcGJlczJfcGJrZGYyXzQwOTZfM2Rlc19zaGEyMjQuZGVyIjoiUG9sYXJTU0xUZXMiOk1CRURUTFNfRVJSX1BLX1BBU1NXT1JEX01JU01BVENICitkZXBlbmRzX29uOk1CRURUTFNfREVTX0M6UFNBX1dBTlRfQUxHX1NIQV8yMjQ6TUJFRFRMU19QS0NTNV9DOk1CRURUTFNfQ0lQSEVSX0M6TUJFRFRMU19DSVBIRVJfTU9ERV9DQkM6TUJFRFRMU19DSVBIRVJfUEFERElOR19QS0NTNworcGtfcGFyc2Vfa2V5ZmlsZV9yc2E6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3JzYV9wa2NzOF9wYmVzMl9wYmtkZjJfNDA5Nl8zZGVzX3NoYTIyNC5kZXIiOiJQb2xhclNTTFRlcyI6TUJFRFRMU19FUlJfUEtfUEFTU1dPUkRfTUlTTUFUQ0gKIAogUGFyc2UgUlNBIEtleSAjNTUuMiAoUEtDUyM4IGVuY3J5cHRlZCB2MiBQQktERjIgM0RFUyBobWFjV2l0aFNIQTIyNCBERVIsIDQwOTYtYml0LCBubyBQVykKLWRlcGVuZHNfb246TUJFRFRMU19ERVNfQzpNQkVEVExTX01EX0NBTl9TSEEyMjQ6TUJFRFRMU19QS0NTNV9DOk1CRURUTFNfQ0lQSEVSX0MKLXBrX3BhcnNlX2tleWZpbGVfcnNhOiJkYXRhX2ZpbGVzL3JzYV9wa2NzOF9wYmVzMl9wYmtkZjJfNDA5Nl8zZGVzX3NoYTIyNC5kZXIiOiIiOk1CRURUTFNfRVJSX1BLX0tFWV9JTlZBTElEX0ZPUk1BVAorZGVwZW5kc19vbjpNQkVEVExTX0RFU19DOlBTQV9XQU5UX0FMR19TSEFfMjI0Ok1CRURUTFNfUEtDUzVfQzpNQkVEVExTX0NJUEhFUl9DCitwa19wYXJzZV9rZXlmaWxlX3JzYToiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvcnNhX3BrY3M4X3BiZXMyX3Bia2RmMl80MDk2XzNkZXNfc2hhMjI0LmRlciI6IiI6TUJFRFRMU19FUlJfUEtfS0VZX0lOVkFMSURfRk9STUFUCiAKIFBhcnNlIFJTQSBLZXkgIzU2IChQS0NTIzggZW5jcnlwdGVkIHYyIFBCS0RGMiBERVMgaG1hY1dpdGhTSEEyMjQpCi1kZXBlbmRzX29uOk1CRURUTFNfREVTX0M6TUJFRFRMU19NRF9DQU5fU0hBMjI0Ok1CRURUTFNfUEVNX1BBUlNFX0M6TUJFRFRMU19QS0NTNV9DOk1CRURUTFNfQ0lQSEVSX0M6TUJFRFRMU19DSVBIRVJfTU9ERV9DQkMKLXBrX3BhcnNlX2tleWZpbGVfcnNhOiJkYXRhX2ZpbGVzL3JzYV9wa2NzOF9wYmVzMl9wYmtkZjJfMTAyNF9kZXNfc2hhMjI0LnBlbSI6IlBvbGFyU1NMVGVzdCI6MAorZGVwZW5kc19vbjpNQkVEVExTX0RFU19DOlBTQV9XQU5UX0FMR19TSEFfMjI0Ok1CRURUTFNfUEVNX1BBUlNFX0M6TUJFRFRMU19QS0NTNV9DOk1CRURUTFNfQ0lQSEVSX0M6TUJFRFRMU19DSVBIRVJfTU9ERV9DQkMKK3BrX3BhcnNlX2tleWZpbGVfcnNhOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9yc2FfcGtjczhfcGJlczJfcGJrZGYyXzEwMjRfZGVzX3NoYTIyNC5wZW0iOiJQb2xhclNTTFRlc3QiOjAKIAogUGFyc2UgUlNBIEtleSAjNTYuMSAoUEtDUyM4IGVuY3J5cHRlZCB2MiBQQktERjIgREVTIGhtYWNXaXRoU0hBMjI0LCB3cm9uZyBQVykKLWRlcGVuZHNfb246TUJFRFRMU19ERVNfQzpNQkVEVExTX01EX0NBTl9TSEEyMjQ6TUJFRFRMU19QRU1fUEFSU0VfQzpNQkVEVExTX1BLQ1M1X0M6TUJFRFRMU19DSVBIRVJfQzpNQkVEVExTX0NJUEhFUl9NT0RFX0NCQzpNQkVEVExTX0NJUEhFUl9QQURESU5HX1BLQ1M3Ci1wa19wYXJzZV9rZXlmaWxlX3JzYToiZGF0YV9maWxlcy9yc2FfcGtjczhfcGJlczJfcGJrZGYyXzEwMjRfZGVzX3NoYTIyNC5wZW0iOiJQb2xhclNTTFRlcyI6TUJFRFRMU19FUlJfUEtfUEFTU1dPUkRfTUlTTUFUQ0gKK2RlcGVuZHNfb246TUJFRFRMU19ERVNfQzpQU0FfV0FOVF9BTEdfU0hBXzIyNDpNQkVEVExTX1BFTV9QQVJTRV9DOk1CRURUTFNfUEtDUzVfQzpNQkVEVExTX0NJUEhFUl9DOk1CRURUTFNfQ0lQSEVSX01PREVfQ0JDOk1CRURUTFNfQ0lQSEVSX1BBRERJTkdfUEtDUzcKK3BrX3BhcnNlX2tleWZpbGVfcnNhOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9yc2FfcGtjczhfcGJlczJfcGJrZGYyXzEwMjRfZGVzX3NoYTIyNC5wZW0iOiJQb2xhclNTTFRlcyI6TUJFRFRMU19FUlJfUEtfUEFTU1dPUkRfTUlTTUFUQ0gKIAogUGFyc2UgUlNBIEtleSAjNTYuMiAoUEtDUyM4IGVuY3J5cHRlZCB2MiBQQktERjIgREVTIGhtYWNXaXRoU0hBMjI0LCBubyBQVykKLWRlcGVuZHNfb246TUJFRFRMU19ERVNfQzpNQkVEVExTX01EX0NBTl9TSEEyMjQ6TUJFRFRMU19QRU1fUEFSU0VfQzpNQkVEVExTX1BLQ1M1X0M6TUJFRFRMU19DSVBIRVJfQwotcGtfcGFyc2Vfa2V5ZmlsZV9yc2E6ImRhdGFfZmlsZXMvcnNhX3BrY3M4X3BiZXMyX3Bia2RmMl8xMDI0X2Rlc19zaGEyMjQucGVtIjoiIjpNQkVEVExTX0VSUl9QS19QQVNTV09SRF9SRVFVSVJFRAorZGVwZW5kc19vbjpNQkVEVExTX0RFU19DOlBTQV9XQU5UX0FMR19TSEFfMjI0Ok1CRURUTFNfUEVNX1BBUlNFX0M6TUJFRFRMU19QS0NTNV9DOk1CRURUTFNfQ0lQSEVSX0MKK3BrX3BhcnNlX2tleWZpbGVfcnNhOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9yc2FfcGtjczhfcGJlczJfcGJrZGYyXzEwMjRfZGVzX3NoYTIyNC5wZW0iOiIiOk1CRURUTFNfRVJSX1BLX1BBU1NXT1JEX1JFUVVJUkVECiAKIFBhcnNlIFJTQSBLZXkgIzU3IChQS0NTIzggZW5jcnlwdGVkIHYyIFBCS0RGMiBERVMgaG1hY1dpdGhTSEEyMjQsIDIwNDgtYml0KQotZGVwZW5kc19vbjpNQkVEVExTX0RFU19DOk1CRURUTFNfTURfQ0FOX1NIQTIyNDpNQkVEVExTX1BFTV9QQVJTRV9DOk1CRURUTFNfUEtDUzVfQzpNQkVEVExTX0NJUEhFUl9DOk1CRURUTFNfQ0lQSEVSX01PREVfQ0JDCi1wa19wYXJzZV9rZXlmaWxlX3JzYToiZGF0YV9maWxlcy9yc2FfcGtjczhfcGJlczJfcGJrZGYyXzIwNDhfZGVzX3NoYTIyNC5wZW0iOiJQb2xhclNTTFRlc3QiOjAKK2RlcGVuZHNfb246TUJFRFRMU19ERVNfQzpQU0FfV0FOVF9BTEdfU0hBXzIyNDpNQkVEVExTX1BFTV9QQVJTRV9DOk1CRURUTFNfUEtDUzVfQzpNQkVEVExTX0NJUEhFUl9DOk1CRURUTFNfQ0lQSEVSX01PREVfQ0JDCitwa19wYXJzZV9rZXlmaWxlX3JzYToiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvcnNhX3BrY3M4X3BiZXMyX3Bia2RmMl8yMDQ4X2Rlc19zaGEyMjQucGVtIjoiUG9sYXJTU0xUZXN0IjowCiAKIFBhcnNlIFJTQSBLZXkgIzU3LjEgKFBLQ1MjOCBlbmNyeXB0ZWQgdjIgUEJLREYyIERFUyBobWFjV2l0aFNIQTIyNCwgMjA0OC1iaXQsIHdyb25nIFBXKQotZGVwZW5kc19vbjpNQkVEVExTX0RFU19DOk1CRURUTFNfTURfQ0FOX1NIQTIyNDpNQkVEVExTX1BFTV9QQVJTRV9DOk1CRURUTFNfUEtDUzVfQzpNQkVEVExTX0NJUEhFUl9DOk1CRURUTFNfQ0lQSEVSX01PREVfQ0JDOk1CRURUTFNfQ0lQSEVSX1BBRERJTkdfUEtDUzcKLXBrX3BhcnNlX2tleWZpbGVfcnNhOiJkYXRhX2ZpbGVzL3JzYV9wa2NzOF9wYmVzMl9wYmtkZjJfMjA0OF9kZXNfc2hhMjI0LnBlbSI6IlBvbGFyU1NMVGVzIjpNQkVEVExTX0VSUl9QS19QQVNTV09SRF9NSVNNQVRDSAorZGVwZW5kc19vbjpNQkVEVExTX0RFU19DOlBTQV9XQU5UX0FMR19TSEFfMjI0Ok1CRURUTFNfUEVNX1BBUlNFX0M6TUJFRFRMU19QS0NTNV9DOk1CRURUTFNfQ0lQSEVSX0M6TUJFRFRMU19DSVBIRVJfTU9ERV9DQkM6TUJFRFRMU19DSVBIRVJfUEFERElOR19QS0NTNworcGtfcGFyc2Vfa2V5ZmlsZV9yc2E6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3JzYV9wa2NzOF9wYmVzMl9wYmtkZjJfMjA0OF9kZXNfc2hhMjI0LnBlbSI6IlBvbGFyU1NMVGVzIjpNQkVEVExTX0VSUl9QS19QQVNTV09SRF9NSVNNQVRDSAogCiBQYXJzZSBSU0EgS2V5ICM1Ny4yIChQS0NTIzggZW5jcnlwdGVkIHYyIFBCS0RGMiBERVMgaG1hY1dpdGhTSEEyMjQsIDIwNDgtYml0LCBubyBQVykKLWRlcGVuZHNfb246TUJFRFRMU19ERVNfQzpNQkVEVExTX01EX0NBTl9TSEEyMjQ6TUJFRFRMU19QRU1fUEFSU0VfQzpNQkVEVExTX1BLQ1M1X0M6TUJFRFRMU19DSVBIRVJfQwotcGtfcGFyc2Vfa2V5ZmlsZV9yc2E6ImRhdGFfZmlsZXMvcnNhX3BrY3M4X3BiZXMyX3Bia2RmMl8yMDQ4X2Rlc19zaGEyMjQucGVtIjoiIjpNQkVEVExTX0VSUl9QS19QQVNTV09SRF9SRVFVSVJFRAorZGVwZW5kc19vbjpNQkVEVExTX0RFU19DOlBTQV9XQU5UX0FMR19TSEFfMjI0Ok1CRURUTFNfUEVNX1BBUlNFX0M6TUJFRFRMU19QS0NTNV9DOk1CRURUTFNfQ0lQSEVSX0MKK3BrX3BhcnNlX2tleWZpbGVfcnNhOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9yc2FfcGtjczhfcGJlczJfcGJrZGYyXzIwNDhfZGVzX3NoYTIyNC5wZW0iOiIiOk1CRURUTFNfRVJSX1BLX1BBU1NXT1JEX1JFUVVJUkVECiAKIFBhcnNlIFJTQSBLZXkgIzU4IChQS0NTIzggZW5jcnlwdGVkIHYyIFBCS0RGMiBERVMgaG1hY1dpdGhTSEEyMjQsIDQwOTYtYml0KQotZGVwZW5kc19vbjpNQkVEVExTX0RFU19DOk1CRURUTFNfTURfQ0FOX1NIQTIyNDpNQkVEVExTX1BFTV9QQVJTRV9DOk1CRURUTFNfUEtDUzVfQzpNQkVEVExTX0NJUEhFUl9DOk1CRURUTFNfQ0lQSEVSX01PREVfQ0JDCi1wa19wYXJzZV9rZXlmaWxlX3JzYToiZGF0YV9maWxlcy9yc2FfcGtjczhfcGJlczJfcGJrZGYyXzQwOTZfZGVzX3NoYTIyNC5wZW0iOiJQb2xhclNTTFRlc3QiOjAKK2RlcGVuZHNfb246TUJFRFRMU19ERVNfQzpQU0FfV0FOVF9BTEdfU0hBXzIyNDpNQkVEVExTX1BFTV9QQVJTRV9DOk1CRURUTFNfUEtDUzVfQzpNQkVEVExTX0NJUEhFUl9DOk1CRURUTFNfQ0lQSEVSX01PREVfQ0JDCitwa19wYXJzZV9rZXlmaWxlX3JzYToiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvcnNhX3BrY3M4X3BiZXMyX3Bia2RmMl80MDk2X2Rlc19zaGEyMjQucGVtIjoiUG9sYXJTU0xUZXN0IjowCiAKIFBhcnNlIFJTQSBLZXkgIzU4LjEgKFBLQ1MjOCBlbmNyeXB0ZWQgdjIgUEJLREYyIERFUyBobWFjV2l0aFNIQTIyNCwgNDA5Ni1iaXQsIHdyb25nIFBXKQotZGVwZW5kc19vbjpNQkVEVExTX0RFU19DOk1CRURUTFNfTURfQ0FOX1NIQTIyNDpNQkVEVExTX1BFTV9QQVJTRV9DOk1CRURUTFNfUEtDUzVfQzpNQkVEVExTX0NJUEhFUl9DOk1CRURUTFNfQ0lQSEVSX01PREVfQ0JDOk1CRURUTFNfQ0lQSEVSX1BBRERJTkdfUEtDUzcKLXBrX3BhcnNlX2tleWZpbGVfcnNhOiJkYXRhX2ZpbGVzL3JzYV9wa2NzOF9wYmVzMl9wYmtkZjJfNDA5Nl9kZXNfc2hhMjI0LnBlbSI6IlBvbGFyU1NMVGVzIjpNQkVEVExTX0VSUl9QS19QQVNTV09SRF9NSVNNQVRDSAorZGVwZW5kc19vbjpNQkVEVExTX0RFU19DOlBTQV9XQU5UX0FMR19TSEFfMjI0Ok1CRURUTFNfUEVNX1BBUlNFX0M6TUJFRFRMU19QS0NTNV9DOk1CRURUTFNfQ0lQSEVSX0M6TUJFRFRMU19DSVBIRVJfTU9ERV9DQkM6TUJFRFRMU19DSVBIRVJfUEFERElOR19QS0NTNworcGtfcGFyc2Vfa2V5ZmlsZV9yc2E6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3JzYV9wa2NzOF9wYmVzMl9wYmtkZjJfNDA5Nl9kZXNfc2hhMjI0LnBlbSI6IlBvbGFyU1NMVGVzIjpNQkVEVExTX0VSUl9QS19QQVNTV09SRF9NSVNNQVRDSAogCiBQYXJzZSBSU0EgS2V5ICM1OC4yIChQS0NTIzggZW5jcnlwdGVkIHYyIFBCS0RGMiBERVMgaG1hY1dpdGhTSEEyMjQsIDQwOTYtYml0LCBubyBQVykKLWRlcGVuZHNfb246TUJFRFRMU19ERVNfQzpNQkVEVExTX01EX0NBTl9TSEEyMjQ6TUJFRFRMU19QRU1fUEFSU0VfQzpNQkVEVExTX1BLQ1M1X0M6TUJFRFRMU19DSVBIRVJfQwotcGtfcGFyc2Vfa2V5ZmlsZV9yc2E6ImRhdGFfZmlsZXMvcnNhX3BrY3M4X3BiZXMyX3Bia2RmMl80MDk2X2Rlc19zaGEyMjQucGVtIjoiIjpNQkVEVExTX0VSUl9QS19QQVNTV09SRF9SRVFVSVJFRAorZGVwZW5kc19vbjpNQkVEVExTX0RFU19DOlBTQV9XQU5UX0FMR19TSEFfMjI0Ok1CRURUTFNfUEVNX1BBUlNFX0M6TUJFRFRMU19QS0NTNV9DOk1CRURUTFNfQ0lQSEVSX0MKK3BrX3BhcnNlX2tleWZpbGVfcnNhOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9yc2FfcGtjczhfcGJlczJfcGJrZGYyXzQwOTZfZGVzX3NoYTIyNC5wZW0iOiIiOk1CRURUTFNfRVJSX1BLX1BBU1NXT1JEX1JFUVVJUkVECiAKIFBhcnNlIFJTQSBLZXkgIzU5IChQS0NTIzggZW5jcnlwdGVkIHYyIFBCS0RGMiBERVMgaG1hY1dpdGhTSEEyMjQgREVSKQotZGVwZW5kc19vbjpNQkVEVExTX0RFU19DOk1CRURUTFNfTURfQ0FOX1NIQTIyNDpNQkVEVExTX1BLQ1M1X0M6TUJFRFRMU19DSVBIRVJfQzpNQkVEVExTX0NJUEhFUl9NT0RFX0NCQwotcGtfcGFyc2Vfa2V5ZmlsZV9yc2E6ImRhdGFfZmlsZXMvcnNhX3BrY3M4X3BiZXMyX3Bia2RmMl8xMDI0X2Rlc19zaGEyMjQuZGVyIjoiUG9sYXJTU0xUZXN0IjowCitkZXBlbmRzX29uOk1CRURUTFNfREVTX0M6UFNBX1dBTlRfQUxHX1NIQV8yMjQ6TUJFRFRMU19QS0NTNV9DOk1CRURUTFNfQ0lQSEVSX0M6TUJFRFRMU19DSVBIRVJfTU9ERV9DQkMKK3BrX3BhcnNlX2tleWZpbGVfcnNhOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9yc2FfcGtjczhfcGJlczJfcGJrZGYyXzEwMjRfZGVzX3NoYTIyNC5kZXIiOiJQb2xhclNTTFRlc3QiOjAKIAogUGFyc2UgUlNBIEtleSAjNTkuMSAoUEtDUyM4IGVuY3J5cHRlZCB2MiBQQktERjIgREVTIGhtYWNXaXRoU0hBMjI0IERFUiwgd3JvbmcgUFcpCi1kZXBlbmRzX29uOk1CRURUTFNfREVTX0M6TUJFRFRMU19NRF9DQU5fU0hBMjI0Ok1CRURUTFNfUEtDUzVfQzpNQkVEVExTX0NJUEhFUl9DOk1CRURUTFNfQ0lQSEVSX01PREVfQ0JDOk1CRURUTFNfQ0lQSEVSX1BBRERJTkdfUEtDUzcKLXBrX3BhcnNlX2tleWZpbGVfcnNhOiJkYXRhX2ZpbGVzL3JzYV9wa2NzOF9wYmVzMl9wYmtkZjJfMTAyNF9kZXNfc2hhMjI0LmRlciI6IlBvbGFyU1NMVGVzIjpNQkVEVExTX0VSUl9QS19QQVNTV09SRF9NSVNNQVRDSAorZGVwZW5kc19vbjpNQkVEVExTX0RFU19DOlBTQV9XQU5UX0FMR19TSEFfMjI0Ok1CRURUTFNfUEtDUzVfQzpNQkVEVExTX0NJUEhFUl9DOk1CRURUTFNfQ0lQSEVSX01PREVfQ0JDOk1CRURUTFNfQ0lQSEVSX1BBRERJTkdfUEtDUzcKK3BrX3BhcnNlX2tleWZpbGVfcnNhOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9yc2FfcGtjczhfcGJlczJfcGJrZGYyXzEwMjRfZGVzX3NoYTIyNC5kZXIiOiJQb2xhclNTTFRlcyI6TUJFRFRMU19FUlJfUEtfUEFTU1dPUkRfTUlTTUFUQ0gKIAogUGFyc2UgUlNBIEtleSAjNTkuMiAoUEtDUyM4IGVuY3J5cHRlZCB2MiBQQktERjIgREVTIGhtYWNXaXRoU0hBMjI0IERFUiwgbm8gUFcpCi1kZXBlbmRzX29uOk1CRURUTFNfREVTX0M6TUJFRFRMU19NRF9DQU5fU0hBMjI0Ok1CRURUTFNfUEtDUzVfQzpNQkVEVExTX0NJUEhFUl9DCi1wa19wYXJzZV9rZXlmaWxlX3JzYToiZGF0YV9maWxlcy9yc2FfcGtjczhfcGJlczJfcGJrZGYyXzEwMjRfZGVzX3NoYTIyNC5kZXIiOiIiOk1CRURUTFNfRVJSX1BLX0tFWV9JTlZBTElEX0ZPUk1BVAorZGVwZW5kc19vbjpNQkVEVExTX0RFU19DOlBTQV9XQU5UX0FMR19TSEFfMjI0Ok1CRURUTFNfUEtDUzVfQzpNQkVEVExTX0NJUEhFUl9DCitwa19wYXJzZV9rZXlmaWxlX3JzYToiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvcnNhX3BrY3M4X3BiZXMyX3Bia2RmMl8xMDI0X2Rlc19zaGEyMjQuZGVyIjoiIjpNQkVEVExTX0VSUl9QS19LRVlfSU5WQUxJRF9GT1JNQVQKIAogUGFyc2UgUlNBIEtleSAjNjAgKFBLQ1MjOCBlbmNyeXB0ZWQgdjIgUEJLREYyIERFUyBobWFjV2l0aFNIQTIyNCBERVIsIDIwNDgtYml0KQotZGVwZW5kc19vbjpNQkVEVExTX0RFU19DOk1CRURUTFNfTURfQ0FOX1NIQTIyNDpNQkVEVExTX1BLQ1M1X0M6TUJFRFRMU19DSVBIRVJfQzpNQkVEVExTX0NJUEhFUl9NT0RFX0NCQwotcGtfcGFyc2Vfa2V5ZmlsZV9yc2E6ImRhdGFfZmlsZXMvcnNhX3BrY3M4X3BiZXMyX3Bia2RmMl8yMDQ4X2Rlc19zaGEyMjQuZGVyIjoiUG9sYXJTU0xUZXN0IjowCitkZXBlbmRzX29uOk1CRURUTFNfREVTX0M6UFNBX1dBTlRfQUxHX1NIQV8yMjQ6TUJFRFRMU19QS0NTNV9DOk1CRURUTFNfQ0lQSEVSX0M6TUJFRFRMU19DSVBIRVJfTU9ERV9DQkMKK3BrX3BhcnNlX2tleWZpbGVfcnNhOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9yc2FfcGtjczhfcGJlczJfcGJrZGYyXzIwNDhfZGVzX3NoYTIyNC5kZXIiOiJQb2xhclNTTFRlc3QiOjAKIAogUGFyc2UgUlNBIEtleSAjNjAuMSAoUEtDUyM4IGVuY3J5cHRlZCB2MiBQQktERjIgREVTIGhtYWNXaXRoU0hBMjI0IERFUiwgMjA0OC1iaXQsIHdyb25nIFBXKQotZGVwZW5kc19vbjpNQkVEVExTX0RFU19DOk1CRURUTFNfTURfQ0FOX1NIQTIyNDpNQkVEVExTX1BLQ1M1X0M6TUJFRFRMU19DSVBIRVJfQzpNQkVEVExTX0NJUEhFUl9NT0RFX0NCQzpNQkVEVExTX0NJUEhFUl9QQURESU5HX1BLQ1M3Ci1wa19wYXJzZV9rZXlmaWxlX3JzYToiZGF0YV9maWxlcy9yc2FfcGtjczhfcGJlczJfcGJrZGYyXzIwNDhfZGVzX3NoYTIyNC5kZXIiOiJQb2xhclNTTFRlcyI6TUJFRFRMU19FUlJfUEtfUEFTU1dPUkRfTUlTTUFUQ0gKK2RlcGVuZHNfb246TUJFRFRMU19ERVNfQzpQU0FfV0FOVF9BTEdfU0hBXzIyNDpNQkVEVExTX1BLQ1M1X0M6TUJFRFRMU19DSVBIRVJfQzpNQkVEVExTX0NJUEhFUl9NT0RFX0NCQzpNQkVEVExTX0NJUEhFUl9QQURESU5HX1BLQ1M3Citwa19wYXJzZV9rZXlmaWxlX3JzYToiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvcnNhX3BrY3M4X3BiZXMyX3Bia2RmMl8yMDQ4X2Rlc19zaGEyMjQuZGVyIjoiUG9sYXJTU0xUZXMiOk1CRURUTFNfRVJSX1BLX1BBU1NXT1JEX01JU01BVENICiAKIFBhcnNlIFJTQSBLZXkgIzYwLjIgKFBLQ1MjOCBlbmNyeXB0ZWQgdjIgUEJLREYyIERFUyBobWFjV2l0aFNIQTIyNCBERVIsIDIwNDgtYml0LCBubyBQVykKLWRlcGVuZHNfb246TUJFRFRMU19ERVNfQzpNQkVEVExTX01EX0NBTl9TSEEyMjQ6TUJFRFRMU19QS0NTNV9DOk1CRURUTFNfQ0lQSEVSX0MKLXBrX3BhcnNlX2tleWZpbGVfcnNhOiJkYXRhX2ZpbGVzL3JzYV9wa2NzOF9wYmVzMl9wYmtkZjJfMjA0OF9kZXNfc2hhMjI0LmRlciI6IiI6TUJFRFRMU19FUlJfUEtfS0VZX0lOVkFMSURfRk9STUFUCitkZXBlbmRzX29uOk1CRURUTFNfREVTX0M6UFNBX1dBTlRfQUxHX1NIQV8yMjQ6TUJFRFRMU19QS0NTNV9DOk1CRURUTFNfQ0lQSEVSX0MKK3BrX3BhcnNlX2tleWZpbGVfcnNhOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9yc2FfcGtjczhfcGJlczJfcGJrZGYyXzIwNDhfZGVzX3NoYTIyNC5kZXIiOiIiOk1CRURUTFNfRVJSX1BLX0tFWV9JTlZBTElEX0ZPUk1BVAogCiBQYXJzZSBSU0EgS2V5ICM2MSAoUEtDUyM4IGVuY3J5cHRlZCB2MiBQQktERjIgREVTIGhtYWNXaXRoU0hBMjI0IERFUiwgNDA5Ni1iaXQpCi1kZXBlbmRzX29uOk1CRURUTFNfREVTX0M6TUJFRFRMU19NRF9DQU5fU0hBMjI0Ok1CRURUTFNfUEtDUzVfQzpNQkVEVExTX0NJUEhFUl9DOk1CRURUTFNfQ0lQSEVSX01PREVfQ0JDCi1wa19wYXJzZV9rZXlmaWxlX3JzYToiZGF0YV9maWxlcy9yc2FfcGtjczhfcGJlczJfcGJrZGYyXzQwOTZfZGVzX3NoYTIyNC5kZXIiOiJQb2xhclNTTFRlc3QiOjAKK2RlcGVuZHNfb246TUJFRFRMU19ERVNfQzpQU0FfV0FOVF9BTEdfU0hBXzIyNDpNQkVEVExTX1BLQ1M1X0M6TUJFRFRMU19DSVBIRVJfQzpNQkVEVExTX0NJUEhFUl9NT0RFX0NCQworcGtfcGFyc2Vfa2V5ZmlsZV9yc2E6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3JzYV9wa2NzOF9wYmVzMl9wYmtkZjJfNDA5Nl9kZXNfc2hhMjI0LmRlciI6IlBvbGFyU1NMVGVzdCI6MAogCiBQYXJzZSBSU0EgS2V5ICM2MS4xIChQS0NTIzggZW5jcnlwdGVkIHYyIFBCS0RGMiBERVMgaG1hY1dpdGhTSEEyMjQgREVSLCA0MDk2LWJpdCwgd3JvbmcgUFcpCi1kZXBlbmRzX29uOk1CRURUTFNfREVTX0M6TUJFRFRMU19NRF9DQU5fU0hBMjI0Ok1CRURUTFNfUEtDUzVfQzpNQkVEVExTX0NJUEhFUl9DOk1CRURUTFNfQ0lQSEVSX01PREVfQ0JDOk1CRURUTFNfQ0lQSEVSX1BBRERJTkdfUEtDUzcKLXBrX3BhcnNlX2tleWZpbGVfcnNhOiJkYXRhX2ZpbGVzL3JzYV9wa2NzOF9wYmVzMl9wYmtkZjJfNDA5Nl9kZXNfc2hhMjI0LmRlciI6IlBvbGFyU1NMVGVzIjpNQkVEVExTX0VSUl9QS19QQVNTV09SRF9NSVNNQVRDSAorZGVwZW5kc19vbjpNQkVEVExTX0RFU19DOlBTQV9XQU5UX0FMR19TSEFfMjI0Ok1CRURUTFNfUEtDUzVfQzpNQkVEVExTX0NJUEhFUl9DOk1CRURUTFNfQ0lQSEVSX01PREVfQ0JDOk1CRURUTFNfQ0lQSEVSX1BBRERJTkdfUEtDUzcKK3BrX3BhcnNlX2tleWZpbGVfcnNhOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9yc2FfcGtjczhfcGJlczJfcGJrZGYyXzQwOTZfZGVzX3NoYTIyNC5kZXIiOiJQb2xhclNTTFRlcyI6TUJFRFRMU19FUlJfUEtfUEFTU1dPUkRfTUlTTUFUQ0gKIAogUGFyc2UgUlNBIEtleSAjNjEuMiAoUEtDUyM4IGVuY3J5cHRlZCB2MiBQQktERjIgREVTIGhtYWNXaXRoU0hBMjI0IERFUiwgNDA5Ni1iaXQsIG5vIFBXKQotZGVwZW5kc19vbjpNQkVEVExTX0RFU19DOk1CRURUTFNfTURfQ0FOX1NIQTIyNDpNQkVEVExTX1BLQ1M1X0M6TUJFRFRMU19DSVBIRVJfQwotcGtfcGFyc2Vfa2V5ZmlsZV9yc2E6ImRhdGFfZmlsZXMvcnNhX3BrY3M4X3BiZXMyX3Bia2RmMl80MDk2X2Rlc19zaGEyMjQuZGVyIjoiIjpNQkVEVExTX0VSUl9QS19LRVlfSU5WQUxJRF9GT1JNQVQKK2RlcGVuZHNfb246TUJFRFRMU19ERVNfQzpQU0FfV0FOVF9BTEdfU0hBXzIyNDpNQkVEVExTX1BLQ1M1X0M6TUJFRFRMU19DSVBIRVJfQworcGtfcGFyc2Vfa2V5ZmlsZV9yc2E6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3JzYV9wa2NzOF9wYmVzMl9wYmtkZjJfNDA5Nl9kZXNfc2hhMjI0LmRlciI6IiI6TUJFRFRMU19FUlJfUEtfS0VZX0lOVkFMSURfRk9STUFUCiAKIFBhcnNlIFJTQSBLZXkgIzYyIChQS0NTIzggZW5jcnlwdGVkIHYyIFBCS0RGMiAzREVTIGhtYWNXaXRoU0hBMjU2KQotZGVwZW5kc19vbjpNQkVEVExTX0RFU19DOk1CRURUTFNfTURfQ0FOX1NIQTI1NjpNQkVEVExTX1BFTV9QQVJTRV9DOk1CRURUTFNfUEtDUzVfQzpNQkVEVExTX0NJUEhFUl9DOk1CRURUTFNfQ0lQSEVSX01PREVfQ0JDCi1wa19wYXJzZV9rZXlmaWxlX3JzYToiZGF0YV9maWxlcy9yc2FfcGtjczhfcGJlczJfcGJrZGYyXzEwMjRfM2Rlc19zaGEyNTYucGVtIjoiUG9sYXJTU0xUZXN0IjowCitkZXBlbmRzX29uOk1CRURUTFNfREVTX0M6UFNBX1dBTlRfQUxHX1NIQV8yNTY6TUJFRFRMU19QRU1fUEFSU0VfQzpNQkVEVExTX1BLQ1M1X0M6TUJFRFRMU19DSVBIRVJfQzpNQkVEVExTX0NJUEhFUl9NT0RFX0NCQworcGtfcGFyc2Vfa2V5ZmlsZV9yc2E6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3JzYV9wa2NzOF9wYmVzMl9wYmtkZjJfMTAyNF8zZGVzX3NoYTI1Ni5wZW0iOiJQb2xhclNTTFRlc3QiOjAKIAogUGFyc2UgUlNBIEtleSAjNjIuMSAoUEtDUyM4IGVuY3J5cHRlZCB2MiBQQktERjIgM0RFUyBobWFjV2l0aFNIQTI1Niwgd3JvbmcgUFcpCi1kZXBlbmRzX29uOk1CRURUTFNfREVTX0M6TUJFRFRMU19NRF9DQU5fU0hBMjU2Ok1CRURUTFNfUEVNX1BBUlNFX0M6TUJFRFRMU19QS0NTNV9DOk1CRURUTFNfQ0lQSEVSX0M6TUJFRFRMU19DSVBIRVJfTU9ERV9DQkM6TUJFRFRMU19DSVBIRVJfUEFERElOR19QS0NTNwotcGtfcGFyc2Vfa2V5ZmlsZV9yc2E6ImRhdGFfZmlsZXMvcnNhX3BrY3M4X3BiZXMyX3Bia2RmMl8xMDI0XzNkZXNfc2hhMjU2LnBlbSI6IlBvbGFyU1NMVGVzIjpNQkVEVExTX0VSUl9QS19QQVNTV09SRF9NSVNNQVRDSAorZGVwZW5kc19vbjpNQkVEVExTX0RFU19DOlBTQV9XQU5UX0FMR19TSEFfMjU2Ok1CRURUTFNfUEVNX1BBUlNFX0M6TUJFRFRMU19QS0NTNV9DOk1CRURUTFNfQ0lQSEVSX0M6TUJFRFRMU19DSVBIRVJfTU9ERV9DQkM6TUJFRFRMU19DSVBIRVJfUEFERElOR19QS0NTNworcGtfcGFyc2Vfa2V5ZmlsZV9yc2E6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3JzYV9wa2NzOF9wYmVzMl9wYmtkZjJfMTAyNF8zZGVzX3NoYTI1Ni5wZW0iOiJQb2xhclNTTFRlcyI6TUJFRFRMU19FUlJfUEtfUEFTU1dPUkRfTUlTTUFUQ0gKIAogUGFyc2UgUlNBIEtleSAjNjIuMiAoUEtDUyM4IGVuY3J5cHRlZCB2MiBQQktERjIgM0RFUyBobWFjV2l0aFNIQTI1Niwgbm8gUFcpCi1kZXBlbmRzX29uOk1CRURUTFNfREVTX0M6TUJFRFRMU19NRF9DQU5fU0hBMjU2Ok1CRURUTFNfUEVNX1BBUlNFX0M6TUJFRFRMU19QS0NTNV9DOk1CRURUTFNfQ0lQSEVSX0MKLXBrX3BhcnNlX2tleWZpbGVfcnNhOiJkYXRhX2ZpbGVzL3JzYV9wa2NzOF9wYmVzMl9wYmtkZjJfMTAyNF8zZGVzX3NoYTI1Ni5wZW0iOiIiOk1CRURUTFNfRVJSX1BLX1BBU1NXT1JEX1JFUVVJUkVECitkZXBlbmRzX29uOk1CRURUTFNfREVTX0M6UFNBX1dBTlRfQUxHX1NIQV8yNTY6TUJFRFRMU19QRU1fUEFSU0VfQzpNQkVEVExTX1BLQ1M1X0M6TUJFRFRMU19DSVBIRVJfQworcGtfcGFyc2Vfa2V5ZmlsZV9yc2E6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3JzYV9wa2NzOF9wYmVzMl9wYmtkZjJfMTAyNF8zZGVzX3NoYTI1Ni5wZW0iOiIiOk1CRURUTFNfRVJSX1BLX1BBU1NXT1JEX1JFUVVJUkVECiAKIFBhcnNlIFJTQSBLZXkgIzYzIChQS0NTIzggZW5jcnlwdGVkIHYyIFBCS0RGMiAzREVTIGhtYWNXaXRoU0hBMjU2LCAyMDQ4LWJpdCkKLWRlcGVuZHNfb246TUJFRFRMU19ERVNfQzpNQkVEVExTX01EX0NBTl9TSEEyNTY6TUJFRFRMU19QRU1fUEFSU0VfQzpNQkVEVExTX1BLQ1M1X0M6TUJFRFRMU19DSVBIRVJfQzpNQkVEVExTX0NJUEhFUl9NT0RFX0NCQwotcGtfcGFyc2Vfa2V5ZmlsZV9yc2E6ImRhdGFfZmlsZXMvcnNhX3BrY3M4X3BiZXMyX3Bia2RmMl8yMDQ4XzNkZXNfc2hhMjU2LnBlbSI6IlBvbGFyU1NMVGVzdCI6MAorZGVwZW5kc19vbjpNQkVEVExTX0RFU19DOlBTQV9XQU5UX0FMR19TSEFfMjU2Ok1CRURUTFNfUEVNX1BBUlNFX0M6TUJFRFRMU19QS0NTNV9DOk1CRURUTFNfQ0lQSEVSX0M6TUJFRFRMU19DSVBIRVJfTU9ERV9DQkMKK3BrX3BhcnNlX2tleWZpbGVfcnNhOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9yc2FfcGtjczhfcGJlczJfcGJrZGYyXzIwNDhfM2Rlc19zaGEyNTYucGVtIjoiUG9sYXJTU0xUZXN0IjowCiAKIFBhcnNlIFJTQSBLZXkgIzYzLjEgKFBLQ1MjOCBlbmNyeXB0ZWQgdjIgUEJLREYyIDNERVMgaG1hY1dpdGhTSEEyNTYsIDIwNDgtYml0LCB3cm9uZyBQVykKLWRlcGVuZHNfb246TUJFRFRMU19ERVNfQzpNQkVEVExTX01EX0NBTl9TSEEyNTY6TUJFRFRMU19QRU1fUEFSU0VfQzpNQkVEVExTX1BLQ1M1X0M6TUJFRFRMU19DSVBIRVJfQzpNQkVEVExTX0NJUEhFUl9NT0RFX0NCQzpNQkVEVExTX0NJUEhFUl9QQURESU5HX1BLQ1M3Ci1wa19wYXJzZV9rZXlmaWxlX3JzYToiZGF0YV9maWxlcy9yc2FfcGtjczhfcGJlczJfcGJrZGYyXzIwNDhfM2Rlc19zaGEyNTYucGVtIjoiUG9sYXJTU0xUZXMiOk1CRURUTFNfRVJSX1BLX1BBU1NXT1JEX01JU01BVENICitkZXBlbmRzX29uOk1CRURUTFNfREVTX0M6UFNBX1dBTlRfQUxHX1NIQV8yNTY6TUJFRFRMU19QRU1fUEFSU0VfQzpNQkVEVExTX1BLQ1M1X0M6TUJFRFRMU19DSVBIRVJfQzpNQkVEVExTX0NJUEhFUl9NT0RFX0NCQzpNQkVEVExTX0NJUEhFUl9QQURESU5HX1BLQ1M3Citwa19wYXJzZV9rZXlmaWxlX3JzYToiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvcnNhX3BrY3M4X3BiZXMyX3Bia2RmMl8yMDQ4XzNkZXNfc2hhMjU2LnBlbSI6IlBvbGFyU1NMVGVzIjpNQkVEVExTX0VSUl9QS19QQVNTV09SRF9NSVNNQVRDSAogCiBQYXJzZSBSU0EgS2V5ICM2My4yIChQS0NTIzggZW5jcnlwdGVkIHYyIFBCS0RGMiAzREVTIGhtYWNXaXRoU0hBMjU2LCAyMDQ4LWJpdCwgbm8gUFcpCi1kZXBlbmRzX29uOk1CRURUTFNfREVTX0M6TUJFRFRMU19NRF9DQU5fU0hBMjU2Ok1CRURUTFNfUEVNX1BBUlNFX0M6TUJFRFRMU19QS0NTNV9DOk1CRURUTFNfQ0lQSEVSX0MKLXBrX3BhcnNlX2tleWZpbGVfcnNhOiJkYXRhX2ZpbGVzL3JzYV9wa2NzOF9wYmVzMl9wYmtkZjJfMjA0OF8zZGVzX3NoYTI1Ni5wZW0iOiIiOk1CRURUTFNfRVJSX1BLX1BBU1NXT1JEX1JFUVVJUkVECitkZXBlbmRzX29uOk1CRURUTFNfREVTX0M6UFNBX1dBTlRfQUxHX1NIQV8yNTY6TUJFRFRMU19QRU1fUEFSU0VfQzpNQkVEVExTX1BLQ1M1X0M6TUJFRFRMU19DSVBIRVJfQworcGtfcGFyc2Vfa2V5ZmlsZV9yc2E6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3JzYV9wa2NzOF9wYmVzMl9wYmtkZjJfMjA0OF8zZGVzX3NoYTI1Ni5wZW0iOiIiOk1CRURUTFNfRVJSX1BLX1BBU1NXT1JEX1JFUVVJUkVECiAKIFBhcnNlIFJTQSBLZXkgIzY0IChQS0NTIzggZW5jcnlwdGVkIHYyIFBCS0RGMiAzREVTIGhtYWNXaXRoU0hBMjU2LCA0MDk2LWJpdCkKLWRlcGVuZHNfb246TUJFRFRMU19ERVNfQzpNQkVEVExTX01EX0NBTl9TSEEyNTY6TUJFRFRMU19QRU1fUEFSU0VfQzpNQkVEVExTX1BLQ1M1X0M6TUJFRFRMU19DSVBIRVJfQzpNQkVEVExTX0NJUEhFUl9NT0RFX0NCQwotcGtfcGFyc2Vfa2V5ZmlsZV9yc2E6ImRhdGFfZmlsZXMvcnNhX3BrY3M4X3BiZXMyX3Bia2RmMl80MDk2XzNkZXNfc2hhMjU2LnBlbSI6IlBvbGFyU1NMVGVzdCI6MAorZGVwZW5kc19vbjpNQkVEVExTX0RFU19DOlBTQV9XQU5UX0FMR19TSEFfMjU2Ok1CRURUTFNfUEVNX1BBUlNFX0M6TUJFRFRMU19QS0NTNV9DOk1CRURUTFNfQ0lQSEVSX0M6TUJFRFRMU19DSVBIRVJfTU9ERV9DQkMKK3BrX3BhcnNlX2tleWZpbGVfcnNhOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9yc2FfcGtjczhfcGJlczJfcGJrZGYyXzQwOTZfM2Rlc19zaGEyNTYucGVtIjoiUG9sYXJTU0xUZXN0IjowCiAKIFBhcnNlIFJTQSBLZXkgIzY0LjEgKFBLQ1MjOCBlbmNyeXB0ZWQgdjIgUEJLREYyIDNERVMgaG1hY1dpdGhTSEEyNTYsIDQwOTYtYml0LCB3cm9uZyBQVykKLWRlcGVuZHNfb246TUJFRFRMU19ERVNfQzpNQkVEVExTX01EX0NBTl9TSEEyNTY6TUJFRFRMU19QRU1fUEFSU0VfQzpNQkVEVExTX1BLQ1M1X0M6TUJFRFRMU19DSVBIRVJfQzpNQkVEVExTX0NJUEhFUl9NT0RFX0NCQzpNQkVEVExTX0NJUEhFUl9QQURESU5HX1BLQ1M3Ci1wa19wYXJzZV9rZXlmaWxlX3JzYToiZGF0YV9maWxlcy9yc2FfcGtjczhfcGJlczJfcGJrZGYyXzQwOTZfM2Rlc19zaGEyNTYucGVtIjoiUG9sYXJTU0xUZXMiOk1CRURUTFNfRVJSX1BLX1BBU1NXT1JEX01JU01BVENICitkZXBlbmRzX29uOk1CRURUTFNfREVTX0M6UFNBX1dBTlRfQUxHX1NIQV8yNTY6TUJFRFRMU19QRU1fUEFSU0VfQzpNQkVEVExTX1BLQ1M1X0M6TUJFRFRMU19DSVBIRVJfQzpNQkVEVExTX0NJUEhFUl9NT0RFX0NCQzpNQkVEVExTX0NJUEhFUl9QQURESU5HX1BLQ1M3Citwa19wYXJzZV9rZXlmaWxlX3JzYToiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvcnNhX3BrY3M4X3BiZXMyX3Bia2RmMl80MDk2XzNkZXNfc2hhMjU2LnBlbSI6IlBvbGFyU1NMVGVzIjpNQkVEVExTX0VSUl9QS19QQVNTV09SRF9NSVNNQVRDSAogCiBQYXJzZSBSU0EgS2V5ICM2NC4yIChQS0NTIzggZW5jcnlwdGVkIHYyIFBCS0RGMiAzREVTIGhtYWNXaXRoU0hBMjU2LCA0MDk2LWJpdCwgbm8gUFcpCi1kZXBlbmRzX29uOk1CRURUTFNfREVTX0M6TUJFRFRMU19NRF9DQU5fU0hBMjU2Ok1CRURUTFNfUEVNX1BBUlNFX0M6TUJFRFRMU19QS0NTNV9DOk1CRURUTFNfQ0lQSEVSX0MKLXBrX3BhcnNlX2tleWZpbGVfcnNhOiJkYXRhX2ZpbGVzL3JzYV9wa2NzOF9wYmVzMl9wYmtkZjJfNDA5Nl8zZGVzX3NoYTI1Ni5wZW0iOiIiOk1CRURUTFNfRVJSX1BLX1BBU1NXT1JEX1JFUVVJUkVECitkZXBlbmRzX29uOk1CRURUTFNfREVTX0M6UFNBX1dBTlRfQUxHX1NIQV8yNTY6TUJFRFRMU19QRU1fUEFSU0VfQzpNQkVEVExTX1BLQ1M1X0M6TUJFRFRMU19DSVBIRVJfQworcGtfcGFyc2Vfa2V5ZmlsZV9yc2E6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3JzYV9wa2NzOF9wYmVzMl9wYmtkZjJfNDA5Nl8zZGVzX3NoYTI1Ni5wZW0iOiIiOk1CRURUTFNfRVJSX1BLX1BBU1NXT1JEX1JFUVVJUkVECiAKIFBhcnNlIFJTQSBLZXkgIzY1IChQS0NTIzggZW5jcnlwdGVkIHYyIFBCS0RGMiAzREVTIGhtYWNXaXRoU0hBMjU2IERFUikKLWRlcGVuZHNfb246TUJFRFRMU19ERVNfQzpNQkVEVExTX01EX0NBTl9TSEEyNTY6TUJFRFRMU19QS0NTNV9DOk1CRURUTFNfQ0lQSEVSX0M6TUJFRFRMU19DSVBIRVJfTU9ERV9DQkMKLXBrX3BhcnNlX2tleWZpbGVfcnNhOiJkYXRhX2ZpbGVzL3JzYV9wa2NzOF9wYmVzMl9wYmtkZjJfMTAyNF8zZGVzX3NoYTI1Ni5kZXIiOiJQb2xhclNTTFRlc3QiOjAKK2RlcGVuZHNfb246TUJFRFRMU19ERVNfQzpQU0FfV0FOVF9BTEdfU0hBXzI1NjpNQkVEVExTX1BLQ1M1X0M6TUJFRFRMU19DSVBIRVJfQzpNQkVEVExTX0NJUEhFUl9NT0RFX0NCQworcGtfcGFyc2Vfa2V5ZmlsZV9yc2E6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3JzYV9wa2NzOF9wYmVzMl9wYmtkZjJfMTAyNF8zZGVzX3NoYTI1Ni5kZXIiOiJQb2xhclNTTFRlc3QiOjAKIAogUGFyc2UgUlNBIEtleSAjNjUuMSAoUEtDUyM4IGVuY3J5cHRlZCB2MiBQQktERjIgM0RFUyBobWFjV2l0aFNIQTI1NiBERVIsIHdyb25nIFBXKQotZGVwZW5kc19vbjpNQkVEVExTX0RFU19DOk1CRURUTFNfTURfQ0FOX1NIQTI1NjpNQkVEVExTX1BLQ1M1X0M6TUJFRFRMU19DSVBIRVJfQzpNQkVEVExTX0NJUEhFUl9NT0RFX0NCQzpNQkVEVExTX0NJUEhFUl9QQURESU5HX1BLQ1M3Ci1wa19wYXJzZV9rZXlmaWxlX3JzYToiZGF0YV9maWxlcy9yc2FfcGtjczhfcGJlczJfcGJrZGYyXzEwMjRfM2Rlc19zaGEyNTYuZGVyIjoiUG9sYXJTU0xUZXMiOk1CRURUTFNfRVJSX1BLX1BBU1NXT1JEX01JU01BVENICitkZXBlbmRzX29uOk1CRURUTFNfREVTX0M6UFNBX1dBTlRfQUxHX1NIQV8yNTY6TUJFRFRMU19QS0NTNV9DOk1CRURUTFNfQ0lQSEVSX0M6TUJFRFRMU19DSVBIRVJfTU9ERV9DQkM6TUJFRFRMU19DSVBIRVJfUEFERElOR19QS0NTNworcGtfcGFyc2Vfa2V5ZmlsZV9yc2E6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3JzYV9wa2NzOF9wYmVzMl9wYmtkZjJfMTAyNF8zZGVzX3NoYTI1Ni5kZXIiOiJQb2xhclNTTFRlcyI6TUJFRFRMU19FUlJfUEtfUEFTU1dPUkRfTUlTTUFUQ0gKIAogUGFyc2UgUlNBIEtleSAjNjUuMiAoUEtDUyM4IGVuY3J5cHRlZCB2MiBQQktERjIgM0RFUyBobWFjV2l0aFNIQTI1NiBERVIsIG5vIFBXKQotZGVwZW5kc19vbjpNQkVEVExTX0RFU19DOk1CRURUTFNfTURfQ0FOX1NIQTI1NjpNQkVEVExTX1BLQ1M1X0M6TUJFRFRMU19DSVBIRVJfQwotcGtfcGFyc2Vfa2V5ZmlsZV9yc2E6ImRhdGFfZmlsZXMvcnNhX3BrY3M4X3BiZXMyX3Bia2RmMl8xMDI0XzNkZXNfc2hhMjU2LmRlciI6IiI6TUJFRFRMU19FUlJfUEtfS0VZX0lOVkFMSURfRk9STUFUCitkZXBlbmRzX29uOk1CRURUTFNfREVTX0M6UFNBX1dBTlRfQUxHX1NIQV8yNTY6TUJFRFRMU19QS0NTNV9DOk1CRURUTFNfQ0lQSEVSX0MKK3BrX3BhcnNlX2tleWZpbGVfcnNhOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9yc2FfcGtjczhfcGJlczJfcGJrZGYyXzEwMjRfM2Rlc19zaGEyNTYuZGVyIjoiIjpNQkVEVExTX0VSUl9QS19LRVlfSU5WQUxJRF9GT1JNQVQKIAogUGFyc2UgUlNBIEtleSAjNjYgKFBLQ1MjOCBlbmNyeXB0ZWQgdjIgUEJLREYyIDNERVMgaG1hY1dpdGhTSEEyNTYgREVSLCAyMDQ4LWJpdCkKLWRlcGVuZHNfb246TUJFRFRMU19ERVNfQzpNQkVEVExTX01EX0NBTl9TSEEyNTY6TUJFRFRMU19QS0NTNV9DOk1CRURUTFNfQ0lQSEVSX0M6TUJFRFRMU19DSVBIRVJfTU9ERV9DQkMKLXBrX3BhcnNlX2tleWZpbGVfcnNhOiJkYXRhX2ZpbGVzL3JzYV9wa2NzOF9wYmVzMl9wYmtkZjJfMjA0OF8zZGVzX3NoYTI1Ni5kZXIiOiJQb2xhclNTTFRlc3QiOjAKK2RlcGVuZHNfb246TUJFRFRMU19ERVNfQzpQU0FfV0FOVF9BTEdfU0hBXzI1NjpNQkVEVExTX1BLQ1M1X0M6TUJFRFRMU19DSVBIRVJfQzpNQkVEVExTX0NJUEhFUl9NT0RFX0NCQworcGtfcGFyc2Vfa2V5ZmlsZV9yc2E6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3JzYV9wa2NzOF9wYmVzMl9wYmtkZjJfMjA0OF8zZGVzX3NoYTI1Ni5kZXIiOiJQb2xhclNTTFRlc3QiOjAKIAogUGFyc2UgUlNBIEtleSAjNjYuMSAoUEtDUyM4IGVuY3J5cHRlZCB2MiBQQktERjIgM0RFUyBobWFjV2l0aFNIQTI1NiBERVIsIDIwNDgtYml0LCB3cm9uZyBQVykKLWRlcGVuZHNfb246TUJFRFRMU19ERVNfQzpNQkVEVExTX01EX0NBTl9TSEEyNTY6TUJFRFRMU19QS0NTNV9DOk1CRURUTFNfQ0lQSEVSX0M6TUJFRFRMU19DSVBIRVJfTU9ERV9DQkM6TUJFRFRMU19DSVBIRVJfUEFERElOR19QS0NTNwotcGtfcGFyc2Vfa2V5ZmlsZV9yc2E6ImRhdGFfZmlsZXMvcnNhX3BrY3M4X3BiZXMyX3Bia2RmMl8yMDQ4XzNkZXNfc2hhMjU2LmRlciI6IlBvbGFyU1NMVGVzIjpNQkVEVExTX0VSUl9QS19QQVNTV09SRF9NSVNNQVRDSAorZGVwZW5kc19vbjpNQkVEVExTX0RFU19DOlBTQV9XQU5UX0FMR19TSEFfMjU2Ok1CRURUTFNfUEtDUzVfQzpNQkVEVExTX0NJUEhFUl9DOk1CRURUTFNfQ0lQSEVSX01PREVfQ0JDOk1CRURUTFNfQ0lQSEVSX1BBRERJTkdfUEtDUzcKK3BrX3BhcnNlX2tleWZpbGVfcnNhOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9yc2FfcGtjczhfcGJlczJfcGJrZGYyXzIwNDhfM2Rlc19zaGEyNTYuZGVyIjoiUG9sYXJTU0xUZXMiOk1CRURUTFNfRVJSX1BLX1BBU1NXT1JEX01JU01BVENICiAKIFBhcnNlIFJTQSBLZXkgIzY2LjIgKFBLQ1MjOCBlbmNyeXB0ZWQgdjIgUEJLREYyIDNERVMgaG1hY1dpdGhTSEEyNTYgREVSLCAyMDQ4LWJpdCwgbm8gUFcpCi1kZXBlbmRzX29uOk1CRURUTFNfREVTX0M6TUJFRFRMU19NRF9DQU5fU0hBMjU2Ok1CRURUTFNfUEtDUzVfQzpNQkVEVExTX0NJUEhFUl9DCi1wa19wYXJzZV9rZXlmaWxlX3JzYToiZGF0YV9maWxlcy9yc2FfcGtjczhfcGJlczJfcGJrZGYyXzIwNDhfM2Rlc19zaGEyNTYuZGVyIjoiIjpNQkVEVExTX0VSUl9QS19LRVlfSU5WQUxJRF9GT1JNQVQKK2RlcGVuZHNfb246TUJFRFRMU19ERVNfQzpQU0FfV0FOVF9BTEdfU0hBXzI1NjpNQkVEVExTX1BLQ1M1X0M6TUJFRFRMU19DSVBIRVJfQworcGtfcGFyc2Vfa2V5ZmlsZV9yc2E6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3JzYV9wa2NzOF9wYmVzMl9wYmtkZjJfMjA0OF8zZGVzX3NoYTI1Ni5kZXIiOiIiOk1CRURUTFNfRVJSX1BLX0tFWV9JTlZBTElEX0ZPUk1BVAogCiBQYXJzZSBSU0EgS2V5ICM2NyAoUEtDUyM4IGVuY3J5cHRlZCB2MiBQQktERjIgM0RFUyBobWFjV2l0aFNIQTI1NiBERVIsIDQwOTYtYml0KQotZGVwZW5kc19vbjpNQkVEVExTX0RFU19DOk1CRURUTFNfTURfQ0FOX1NIQTI1NjpNQkVEVExTX1BLQ1M1X0M6TUJFRFRMU19DSVBIRVJfQzpNQkVEVExTX0NJUEhFUl9NT0RFX0NCQwotcGtfcGFyc2Vfa2V5ZmlsZV9yc2E6ImRhdGFfZmlsZXMvcnNhX3BrY3M4X3BiZXMyX3Bia2RmMl80MDk2XzNkZXNfc2hhMjU2LmRlciI6IlBvbGFyU1NMVGVzdCI6MAorZGVwZW5kc19vbjpNQkVEVExTX0RFU19DOlBTQV9XQU5UX0FMR19TSEFfMjU2Ok1CRURUTFNfUEtDUzVfQzpNQkVEVExTX0NJUEhFUl9DOk1CRURUTFNfQ0lQSEVSX01PREVfQ0JDCitwa19wYXJzZV9rZXlmaWxlX3JzYToiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvcnNhX3BrY3M4X3BiZXMyX3Bia2RmMl80MDk2XzNkZXNfc2hhMjU2LmRlciI6IlBvbGFyU1NMVGVzdCI6MAogCiBQYXJzZSBSU0EgS2V5ICM2OC4xIChQS0NTIzggZW5jcnlwdGVkIHYyIFBCS0RGMiAzREVTIGhtYWNXaXRoU0hBMjU2IERFUiwgNDA5Ni1iaXQsIHdyb25nIFBXKQotZGVwZW5kc19vbjpNQkVEVExTX0RFU19DOk1CRURUTFNfTURfQ0FOX1NIQTI1NjpNQkVEVExTX1BLQ1M1X0M6TUJFRFRMU19DSVBIRVJfQzpNQkVEVExTX0NJUEhFUl9NT0RFX0NCQzpNQkVEVExTX0NJUEhFUl9QQURESU5HX1BLQ1M3Ci1wa19wYXJzZV9rZXlmaWxlX3JzYToiZGF0YV9maWxlcy9yc2FfcGtjczhfcGJlczJfcGJrZGYyXzQwOTZfM2Rlc19zaGEyNTYuZGVyIjoiUG9sYXJTU0xUZXMiOk1CRURUTFNfRVJSX1BLX1BBU1NXT1JEX01JU01BVENICitkZXBlbmRzX29uOk1CRURUTFNfREVTX0M6UFNBX1dBTlRfQUxHX1NIQV8yNTY6TUJFRFRMU19QS0NTNV9DOk1CRURUTFNfQ0lQSEVSX0M6TUJFRFRMU19DSVBIRVJfTU9ERV9DQkM6TUJFRFRMU19DSVBIRVJfUEFERElOR19QS0NTNworcGtfcGFyc2Vfa2V5ZmlsZV9yc2E6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3JzYV9wa2NzOF9wYmVzMl9wYmtkZjJfNDA5Nl8zZGVzX3NoYTI1Ni5kZXIiOiJQb2xhclNTTFRlcyI6TUJFRFRMU19FUlJfUEtfUEFTU1dPUkRfTUlTTUFUQ0gKIAogUGFyc2UgUlNBIEtleSAjNjguMiAoUEtDUyM4IGVuY3J5cHRlZCB2MiBQQktERjIgM0RFUyBobWFjV2l0aFNIQTI1NiBERVIsIDQwOTYtYml0LCBubyBQVykKLWRlcGVuZHNfb246TUJFRFRMU19ERVNfQzpNQkVEVExTX01EX0NBTl9TSEEyNTY6TUJFRFRMU19QS0NTNV9DOk1CRURUTFNfQ0lQSEVSX0MKLXBrX3BhcnNlX2tleWZpbGVfcnNhOiJkYXRhX2ZpbGVzL3JzYV9wa2NzOF9wYmVzMl9wYmtkZjJfNDA5Nl8zZGVzX3NoYTI1Ni5kZXIiOiIiOk1CRURUTFNfRVJSX1BLX0tFWV9JTlZBTElEX0ZPUk1BVAorZGVwZW5kc19vbjpNQkVEVExTX0RFU19DOlBTQV9XQU5UX0FMR19TSEFfMjU2Ok1CRURUTFNfUEtDUzVfQzpNQkVEVExTX0NJUEhFUl9DCitwa19wYXJzZV9rZXlmaWxlX3JzYToiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvcnNhX3BrY3M4X3BiZXMyX3Bia2RmMl80MDk2XzNkZXNfc2hhMjU2LmRlciI6IiI6TUJFRFRMU19FUlJfUEtfS0VZX0lOVkFMSURfRk9STUFUCiAKIFBhcnNlIFJTQSBLZXkgIzY5IChQS0NTIzggZW5jcnlwdGVkIHYyIFBCS0RGMiBERVMgaG1hY1dpdGhTSEEyNTYpCi1kZXBlbmRzX29uOk1CRURUTFNfREVTX0M6TUJFRFRMU19NRF9DQU5fU0hBMjU2Ok1CRURUTFNfUEVNX1BBUlNFX0M6TUJFRFRMU19QS0NTNV9DOk1CRURUTFNfQ0lQSEVSX0M6TUJFRFRMU19DSVBIRVJfTU9ERV9DQkMKLXBrX3BhcnNlX2tleWZpbGVfcnNhOiJkYXRhX2ZpbGVzL3JzYV9wa2NzOF9wYmVzMl9wYmtkZjJfMTAyNF9kZXNfc2hhMjU2LnBlbSI6IlBvbGFyU1NMVGVzdCI6MAorZGVwZW5kc19vbjpNQkVEVExTX0RFU19DOlBTQV9XQU5UX0FMR19TSEFfMjU2Ok1CRURUTFNfUEVNX1BBUlNFX0M6TUJFRFRMU19QS0NTNV9DOk1CRURUTFNfQ0lQSEVSX0M6TUJFRFRMU19DSVBIRVJfTU9ERV9DQkMKK3BrX3BhcnNlX2tleWZpbGVfcnNhOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9yc2FfcGtjczhfcGJlczJfcGJrZGYyXzEwMjRfZGVzX3NoYTI1Ni5wZW0iOiJQb2xhclNTTFRlc3QiOjAKIAogUGFyc2UgUlNBIEtleSAjNjkuMSAoUEtDUyM4IGVuY3J5cHRlZCB2MiBQQktERjIgREVTIGhtYWNXaXRoU0hBMjU2LCB3cm9uZyBQVykKLWRlcGVuZHNfb246TUJFRFRMU19ERVNfQzpNQkVEVExTX01EX0NBTl9TSEEyNTY6TUJFRFRMU19QRU1fUEFSU0VfQzpNQkVEVExTX1BLQ1M1X0M6TUJFRFRMU19DSVBIRVJfQzpNQkVEVExTX0NJUEhFUl9NT0RFX0NCQzpNQkVEVExTX0NJUEhFUl9QQURESU5HX1BLQ1M3Ci1wa19wYXJzZV9rZXlmaWxlX3JzYToiZGF0YV9maWxlcy9yc2FfcGtjczhfcGJlczJfcGJrZGYyXzEwMjRfZGVzX3NoYTI1Ni5wZW0iOiJQb2xhclNTTFRlcyI6TUJFRFRMU19FUlJfUEtfUEFTU1dPUkRfTUlTTUFUQ0gKK2RlcGVuZHNfb246TUJFRFRMU19ERVNfQzpQU0FfV0FOVF9BTEdfU0hBXzI1NjpNQkVEVExTX1BFTV9QQVJTRV9DOk1CRURUTFNfUEtDUzVfQzpNQkVEVExTX0NJUEhFUl9DOk1CRURUTFNfQ0lQSEVSX01PREVfQ0JDOk1CRURUTFNfQ0lQSEVSX1BBRERJTkdfUEtDUzcKK3BrX3BhcnNlX2tleWZpbGVfcnNhOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9yc2FfcGtjczhfcGJlczJfcGJrZGYyXzEwMjRfZGVzX3NoYTI1Ni5wZW0iOiJQb2xhclNTTFRlcyI6TUJFRFRMU19FUlJfUEtfUEFTU1dPUkRfTUlTTUFUQ0gKIAogUGFyc2UgUlNBIEtleSAjNjkuMiAoUEtDUyM4IGVuY3J5cHRlZCB2MiBQQktERjIgREVTIGhtYWNXaXRoU0hBMjU2LCBubyBQVykKLWRlcGVuZHNfb246TUJFRFRMU19ERVNfQzpNQkVEVExTX01EX0NBTl9TSEEyNTY6TUJFRFRMU19QRU1fUEFSU0VfQzpNQkVEVExTX1BLQ1M1X0M6TUJFRFRMU19DSVBIRVJfQwotcGtfcGFyc2Vfa2V5ZmlsZV9yc2E6ImRhdGFfZmlsZXMvcnNhX3BrY3M4X3BiZXMyX3Bia2RmMl8xMDI0X2Rlc19zaGEyNTYucGVtIjoiIjpNQkVEVExTX0VSUl9QS19QQVNTV09SRF9SRVFVSVJFRAorZGVwZW5kc19vbjpNQkVEVExTX0RFU19DOlBTQV9XQU5UX0FMR19TSEFfMjU2Ok1CRURUTFNfUEVNX1BBUlNFX0M6TUJFRFRMU19QS0NTNV9DOk1CRURUTFNfQ0lQSEVSX0MKK3BrX3BhcnNlX2tleWZpbGVfcnNhOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9yc2FfcGtjczhfcGJlczJfcGJrZGYyXzEwMjRfZGVzX3NoYTI1Ni5wZW0iOiIiOk1CRURUTFNfRVJSX1BLX1BBU1NXT1JEX1JFUVVJUkVECiAKIFBhcnNlIFJTQSBLZXkgIzcwIChQS0NTIzggZW5jcnlwdGVkIHYyIFBCS0RGMiBERVMgaG1hY1dpdGhTSEEyNTYsIDIwNDgtYml0KQotZGVwZW5kc19vbjpNQkVEVExTX0RFU19DOk1CRURUTFNfTURfQ0FOX1NIQTI1NjpNQkVEVExTX1BFTV9QQVJTRV9DOk1CRURUTFNfUEtDUzVfQzpNQkVEVExTX0NJUEhFUl9DOk1CRURUTFNfQ0lQSEVSX01PREVfQ0JDCi1wa19wYXJzZV9rZXlmaWxlX3JzYToiZGF0YV9maWxlcy9yc2FfcGtjczhfcGJlczJfcGJrZGYyXzIwNDhfZGVzX3NoYTI1Ni5wZW0iOiJQb2xhclNTTFRlc3QiOjAKK2RlcGVuZHNfb246TUJFRFRMU19ERVNfQzpQU0FfV0FOVF9BTEdfU0hBXzI1NjpNQkVEVExTX1BFTV9QQVJTRV9DOk1CRURUTFNfUEtDUzVfQzpNQkVEVExTX0NJUEhFUl9DOk1CRURUTFNfQ0lQSEVSX01PREVfQ0JDCitwa19wYXJzZV9rZXlmaWxlX3JzYToiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvcnNhX3BrY3M4X3BiZXMyX3Bia2RmMl8yMDQ4X2Rlc19zaGEyNTYucGVtIjoiUG9sYXJTU0xUZXN0IjowCiAKIFBhcnNlIFJTQSBLZXkgIzcwLjEgKFBLQ1MjOCBlbmNyeXB0ZWQgdjIgUEJLREYyIERFUyBobWFjV2l0aFNIQTI1NiwgMjA0OC1iaXQsIHdyb25nIFBXKQotZGVwZW5kc19vbjpNQkVEVExTX0RFU19DOk1CRURUTFNfTURfQ0FOX1NIQTI1NjpNQkVEVExTX1BFTV9QQVJTRV9DOk1CRURUTFNfUEtDUzVfQzpNQkVEVExTX0NJUEhFUl9DOk1CRURUTFNfQ0lQSEVSX01PREVfQ0JDOk1CRURUTFNfQ0lQSEVSX1BBRERJTkdfUEtDUzcKLXBrX3BhcnNlX2tleWZpbGVfcnNhOiJkYXRhX2ZpbGVzL3JzYV9wa2NzOF9wYmVzMl9wYmtkZjJfMjA0OF9kZXNfc2hhMjU2LnBlbSI6IlBvbGFyU1NMVGVzIjpNQkVEVExTX0VSUl9QS19QQVNTV09SRF9NSVNNQVRDSAorZGVwZW5kc19vbjpNQkVEVExTX0RFU19DOlBTQV9XQU5UX0FMR19TSEFfMjU2Ok1CRURUTFNfUEVNX1BBUlNFX0M6TUJFRFRMU19QS0NTNV9DOk1CRURUTFNfQ0lQSEVSX0M6TUJFRFRMU19DSVBIRVJfTU9ERV9DQkM6TUJFRFRMU19DSVBIRVJfUEFERElOR19QS0NTNworcGtfcGFyc2Vfa2V5ZmlsZV9yc2E6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3JzYV9wa2NzOF9wYmVzMl9wYmtkZjJfMjA0OF9kZXNfc2hhMjU2LnBlbSI6IlBvbGFyU1NMVGVzIjpNQkVEVExTX0VSUl9QS19QQVNTV09SRF9NSVNNQVRDSAogCiBQYXJzZSBSU0EgS2V5ICM3MC4yIChQS0NTIzggZW5jcnlwdGVkIHYyIFBCS0RGMiBERVMgaG1hY1dpdGhTSEEyNTYsIDIwNDgtYml0LCBubyBQVykKLWRlcGVuZHNfb246TUJFRFRMU19ERVNfQzpNQkVEVExTX01EX0NBTl9TSEEyNTY6TUJFRFRMU19QRU1fUEFSU0VfQzpNQkVEVExTX1BLQ1M1X0M6TUJFRFRMU19DSVBIRVJfQwotcGtfcGFyc2Vfa2V5ZmlsZV9yc2E6ImRhdGFfZmlsZXMvcnNhX3BrY3M4X3BiZXMyX3Bia2RmMl8yMDQ4X2Rlc19zaGEyNTYucGVtIjoiIjpNQkVEVExTX0VSUl9QS19QQVNTV09SRF9SRVFVSVJFRAorZGVwZW5kc19vbjpNQkVEVExTX0RFU19DOlBTQV9XQU5UX0FMR19TSEFfMjU2Ok1CRURUTFNfUEVNX1BBUlNFX0M6TUJFRFRMU19QS0NTNV9DOk1CRURUTFNfQ0lQSEVSX0MKK3BrX3BhcnNlX2tleWZpbGVfcnNhOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9yc2FfcGtjczhfcGJlczJfcGJrZGYyXzIwNDhfZGVzX3NoYTI1Ni5wZW0iOiIiOk1CRURUTFNfRVJSX1BLX1BBU1NXT1JEX1JFUVVJUkVECiAKIFBhcnNlIFJTQSBLZXkgIzcxIChQS0NTIzggZW5jcnlwdGVkIHYyIFBCS0RGMiBERVMgaG1hY1dpdGhTSEEyNTYsIDQwOTYtYml0KQotZGVwZW5kc19vbjpNQkVEVExTX0RFU19DOk1CRURUTFNfTURfQ0FOX1NIQTI1NjpNQkVEVExTX1BFTV9QQVJTRV9DOk1CRURUTFNfUEtDUzVfQzpNQkVEVExTX0NJUEhFUl9DOk1CRURUTFNfQ0lQSEVSX01PREVfQ0JDCi1wa19wYXJzZV9rZXlmaWxlX3JzYToiZGF0YV9maWxlcy9yc2FfcGtjczhfcGJlczJfcGJrZGYyXzQwOTZfZGVzX3NoYTI1Ni5wZW0iOiJQb2xhclNTTFRlc3QiOjAKK2RlcGVuZHNfb246TUJFRFRMU19ERVNfQzpQU0FfV0FOVF9BTEdfU0hBXzI1NjpNQkVEVExTX1BFTV9QQVJTRV9DOk1CRURUTFNfUEtDUzVfQzpNQkVEVExTX0NJUEhFUl9DOk1CRURUTFNfQ0lQSEVSX01PREVfQ0JDCitwa19wYXJzZV9rZXlmaWxlX3JzYToiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvcnNhX3BrY3M4X3BiZXMyX3Bia2RmMl80MDk2X2Rlc19zaGEyNTYucGVtIjoiUG9sYXJTU0xUZXN0IjowCiAKIFBhcnNlIFJTQSBLZXkgIzcxLjEgKFBLQ1MjOCBlbmNyeXB0ZWQgdjIgUEJLREYyIERFUyBobWFjV2l0aFNIQTI1NiwgNDA5Ni1iaXQsIHdyb25nIFBXKQotZGVwZW5kc19vbjpNQkVEVExTX0RFU19DOk1CRURUTFNfTURfQ0FOX1NIQTI1NjpNQkVEVExTX1BFTV9QQVJTRV9DOk1CRURUTFNfUEtDUzVfQzpNQkVEVExTX0NJUEhFUl9DOk1CRURUTFNfQ0lQSEVSX01PREVfQ0JDOk1CRURUTFNfQ0lQSEVSX1BBRERJTkdfUEtDUzcKLXBrX3BhcnNlX2tleWZpbGVfcnNhOiJkYXRhX2ZpbGVzL3JzYV9wa2NzOF9wYmVzMl9wYmtkZjJfNDA5Nl9kZXNfc2hhMjU2LnBlbSI6IlBvbGFyU1NMVGVzIjpNQkVEVExTX0VSUl9QS19QQVNTV09SRF9NSVNNQVRDSAorZGVwZW5kc19vbjpNQkVEVExTX0RFU19DOlBTQV9XQU5UX0FMR19TSEFfMjU2Ok1CRURUTFNfUEVNX1BBUlNFX0M6TUJFRFRMU19QS0NTNV9DOk1CRURUTFNfQ0lQSEVSX0M6TUJFRFRMU19DSVBIRVJfTU9ERV9DQkM6TUJFRFRMU19DSVBIRVJfUEFERElOR19QS0NTNworcGtfcGFyc2Vfa2V5ZmlsZV9yc2E6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3JzYV9wa2NzOF9wYmVzMl9wYmtkZjJfNDA5Nl9kZXNfc2hhMjU2LnBlbSI6IlBvbGFyU1NMVGVzIjpNQkVEVExTX0VSUl9QS19QQVNTV09SRF9NSVNNQVRDSAogCiBQYXJzZSBSU0EgS2V5ICM3MS4yIChQS0NTIzggZW5jcnlwdGVkIHYyIFBCS0RGMiBERVMgaG1hY1dpdGhTSEEyNTYsIDQwOTYtYml0LCBubyBQVykKLWRlcGVuZHNfb246TUJFRFRMU19ERVNfQzpNQkVEVExTX01EX0NBTl9TSEEyNTY6TUJFRFRMU19QRU1fUEFSU0VfQzpNQkVEVExTX1BLQ1M1X0M6TUJFRFRMU19DSVBIRVJfQwotcGtfcGFyc2Vfa2V5ZmlsZV9yc2E6ImRhdGFfZmlsZXMvcnNhX3BrY3M4X3BiZXMyX3Bia2RmMl80MDk2X2Rlc19zaGEyNTYucGVtIjoiIjpNQkVEVExTX0VSUl9QS19QQVNTV09SRF9SRVFVSVJFRAorZGVwZW5kc19vbjpNQkVEVExTX0RFU19DOlBTQV9XQU5UX0FMR19TSEFfMjU2Ok1CRURUTFNfUEVNX1BBUlNFX0M6TUJFRFRMU19QS0NTNV9DOk1CRURUTFNfQ0lQSEVSX0MKK3BrX3BhcnNlX2tleWZpbGVfcnNhOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9yc2FfcGtjczhfcGJlczJfcGJrZGYyXzQwOTZfZGVzX3NoYTI1Ni5wZW0iOiIiOk1CRURUTFNfRVJSX1BLX1BBU1NXT1JEX1JFUVVJUkVECiAKIFBhcnNlIFJTQSBLZXkgIzcyIChQS0NTIzggZW5jcnlwdGVkIHYyIFBCS0RGMiBERVMgaG1hY1dpdGhTSEEyNTYgREVSKQotZGVwZW5kc19vbjpNQkVEVExTX0RFU19DOk1CRURUTFNfTURfQ0FOX1NIQTI1NjpNQkVEVExTX1BLQ1M1X0M6TUJFRFRMU19DSVBIRVJfQzpNQkVEVExTX0NJUEhFUl9NT0RFX0NCQwotcGtfcGFyc2Vfa2V5ZmlsZV9yc2E6ImRhdGFfZmlsZXMvcnNhX3BrY3M4X3BiZXMyX3Bia2RmMl8xMDI0X2Rlc19zaGEyNTYuZGVyIjoiUG9sYXJTU0xUZXN0IjowCitkZXBlbmRzX29uOk1CRURUTFNfREVTX0M6UFNBX1dBTlRfQUxHX1NIQV8yNTY6TUJFRFRMU19QS0NTNV9DOk1CRURUTFNfQ0lQSEVSX0M6TUJFRFRMU19DSVBIRVJfTU9ERV9DQkMKK3BrX3BhcnNlX2tleWZpbGVfcnNhOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9yc2FfcGtjczhfcGJlczJfcGJrZGYyXzEwMjRfZGVzX3NoYTI1Ni5kZXIiOiJQb2xhclNTTFRlc3QiOjAKIAogUGFyc2UgUlNBIEtleSAjNzIuMSAoUEtDUyM4IGVuY3J5cHRlZCB2MiBQQktERjIgREVTIGhtYWNXaXRoU0hBMjU2IERFUiwgd3JvbmcgUFcpCi1kZXBlbmRzX29uOk1CRURUTFNfREVTX0M6TUJFRFRMU19NRF9DQU5fU0hBMjU2Ok1CRURUTFNfUEtDUzVfQzpNQkVEVExTX0NJUEhFUl9DOk1CRURUTFNfQ0lQSEVSX01PREVfQ0JDOk1CRURUTFNfQ0lQSEVSX1BBRERJTkdfUEtDUzcKLXBrX3BhcnNlX2tleWZpbGVfcnNhOiJkYXRhX2ZpbGVzL3JzYV9wa2NzOF9wYmVzMl9wYmtkZjJfMTAyNF9kZXNfc2hhMjU2LmRlciI6IlBvbGFyU1NMVGVzIjpNQkVEVExTX0VSUl9QS19QQVNTV09SRF9NSVNNQVRDSAorZGVwZW5kc19vbjpNQkVEVExTX0RFU19DOlBTQV9XQU5UX0FMR19TSEFfMjU2Ok1CRURUTFNfUEtDUzVfQzpNQkVEVExTX0NJUEhFUl9DOk1CRURUTFNfQ0lQSEVSX01PREVfQ0JDOk1CRURUTFNfQ0lQSEVSX1BBRERJTkdfUEtDUzcKK3BrX3BhcnNlX2tleWZpbGVfcnNhOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9yc2FfcGtjczhfcGJlczJfcGJrZGYyXzEwMjRfZGVzX3NoYTI1Ni5kZXIiOiJQb2xhclNTTFRlcyI6TUJFRFRMU19FUlJfUEtfUEFTU1dPUkRfTUlTTUFUQ0gKIAogUGFyc2UgUlNBIEtleSAjNzIuMiAoUEtDUyM4IGVuY3J5cHRlZCB2MiBQQktERjIgREVTIGhtYWNXaXRoU0hBMjU2IERFUiwgbm8gUFcpCi1kZXBlbmRzX29uOk1CRURUTFNfREVTX0M6TUJFRFRMU19NRF9DQU5fU0hBMjU2Ok1CRURUTFNfUEtDUzVfQzpNQkVEVExTX0NJUEhFUl9DCi1wa19wYXJzZV9rZXlmaWxlX3JzYToiZGF0YV9maWxlcy9yc2FfcGtjczhfcGJlczJfcGJrZGYyXzEwMjRfZGVzX3NoYTI1Ni5kZXIiOiIiOk1CRURUTFNfRVJSX1BLX0tFWV9JTlZBTElEX0ZPUk1BVAorZGVwZW5kc19vbjpNQkVEVExTX0RFU19DOlBTQV9XQU5UX0FMR19TSEFfMjU2Ok1CRURUTFNfUEtDUzVfQzpNQkVEVExTX0NJUEhFUl9DCitwa19wYXJzZV9rZXlmaWxlX3JzYToiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvcnNhX3BrY3M4X3BiZXMyX3Bia2RmMl8xMDI0X2Rlc19zaGEyNTYuZGVyIjoiIjpNQkVEVExTX0VSUl9QS19LRVlfSU5WQUxJRF9GT1JNQVQKIAogUGFyc2UgUlNBIEtleSAjNzMgKFBLQ1MjOCBlbmNyeXB0ZWQgdjIgUEJLREYyIERFUyBobWFjV2l0aFNIQTI1NiBERVIsIDIwNDgtYml0KQotZGVwZW5kc19vbjpNQkVEVExTX0RFU19DOk1CRURUTFNfTURfQ0FOX1NIQTI1NjpNQkVEVExTX1BLQ1M1X0M6TUJFRFRMU19DSVBIRVJfQzpNQkVEVExTX0NJUEhFUl9NT0RFX0NCQwotcGtfcGFyc2Vfa2V5ZmlsZV9yc2E6ImRhdGFfZmlsZXMvcnNhX3BrY3M4X3BiZXMyX3Bia2RmMl8yMDQ4X2Rlc19zaGEyNTYuZGVyIjoiUG9sYXJTU0xUZXN0IjowCitkZXBlbmRzX29uOk1CRURUTFNfREVTX0M6UFNBX1dBTlRfQUxHX1NIQV8yNTY6TUJFRFRMU19QS0NTNV9DOk1CRURUTFNfQ0lQSEVSX0M6TUJFRFRMU19DSVBIRVJfTU9ERV9DQkMKK3BrX3BhcnNlX2tleWZpbGVfcnNhOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9yc2FfcGtjczhfcGJlczJfcGJrZGYyXzIwNDhfZGVzX3NoYTI1Ni5kZXIiOiJQb2xhclNTTFRlc3QiOjAKIAogUGFyc2UgUlNBIEtleSAjNzMuMSAoUEtDUyM4IGVuY3J5cHRlZCB2MiBQQktERjIgREVTIGhtYWNXaXRoU0hBMjU2IERFUiwgMjA0OC1iaXQsIHdyb25nIFBXKQotZGVwZW5kc19vbjpNQkVEVExTX0RFU19DOk1CRURUTFNfTURfQ0FOX1NIQTI1NjpNQkVEVExTX1BLQ1M1X0M6TUJFRFRMU19DSVBIRVJfQzpNQkVEVExTX0NJUEhFUl9NT0RFX0NCQzpNQkVEVExTX0NJUEhFUl9QQURESU5HX1BLQ1M3Ci1wa19wYXJzZV9rZXlmaWxlX3JzYToiZGF0YV9maWxlcy9yc2FfcGtjczhfcGJlczJfcGJrZGYyXzIwNDhfZGVzX3NoYTI1Ni5kZXIiOiJQb2xhclNTTFRlcyI6TUJFRFRMU19FUlJfUEtfUEFTU1dPUkRfTUlTTUFUQ0gKK2RlcGVuZHNfb246TUJFRFRMU19ERVNfQzpQU0FfV0FOVF9BTEdfU0hBXzI1NjpNQkVEVExTX1BLQ1M1X0M6TUJFRFRMU19DSVBIRVJfQzpNQkVEVExTX0NJUEhFUl9NT0RFX0NCQzpNQkVEVExTX0NJUEhFUl9QQURESU5HX1BLQ1M3Citwa19wYXJzZV9rZXlmaWxlX3JzYToiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvcnNhX3BrY3M4X3BiZXMyX3Bia2RmMl8yMDQ4X2Rlc19zaGEyNTYuZGVyIjoiUG9sYXJTU0xUZXMiOk1CRURUTFNfRVJSX1BLX1BBU1NXT1JEX01JU01BVENICiAKIFBhcnNlIFJTQSBLZXkgIzczLjIgKFBLQ1MjOCBlbmNyeXB0ZWQgdjIgUEJLREYyIERFUyBobWFjV2l0aFNIQTI1NiBERVIsIDIwNDgtYml0LCBubyBQVykKLWRlcGVuZHNfb246TUJFRFRMU19ERVNfQzpNQkVEVExTX01EX0NBTl9TSEEyNTY6TUJFRFRMU19QS0NTNV9DOk1CRURUTFNfQ0lQSEVSX0MKLXBrX3BhcnNlX2tleWZpbGVfcnNhOiJkYXRhX2ZpbGVzL3JzYV9wa2NzOF9wYmVzMl9wYmtkZjJfMjA0OF9kZXNfc2hhMjU2LmRlciI6IiI6TUJFRFRMU19FUlJfUEtfS0VZX0lOVkFMSURfRk9STUFUCitkZXBlbmRzX29uOk1CRURUTFNfREVTX0M6UFNBX1dBTlRfQUxHX1NIQV8yNTY6TUJFRFRMU19QS0NTNV9DOk1CRURUTFNfQ0lQSEVSX0MKK3BrX3BhcnNlX2tleWZpbGVfcnNhOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9yc2FfcGtjczhfcGJlczJfcGJrZGYyXzIwNDhfZGVzX3NoYTI1Ni5kZXIiOiIiOk1CRURUTFNfRVJSX1BLX0tFWV9JTlZBTElEX0ZPUk1BVAogCiBQYXJzZSBSU0EgS2V5ICM3NCAoUEtDUyM4IGVuY3J5cHRlZCB2MiBQQktERjIgREVTIGhtYWNXaXRoU0hBMjU2IERFUiwgNDA5Ni1iaXQpCi1kZXBlbmRzX29uOk1CRURUTFNfREVTX0M6TUJFRFRMU19NRF9DQU5fU0hBMjU2Ok1CRURUTFNfUEtDUzVfQzpNQkVEVExTX0NJUEhFUl9DOk1CRURUTFNfQ0lQSEVSX01PREVfQ0JDCi1wa19wYXJzZV9rZXlmaWxlX3JzYToiZGF0YV9maWxlcy9yc2FfcGtjczhfcGJlczJfcGJrZGYyXzQwOTZfZGVzX3NoYTI1Ni5kZXIiOiJQb2xhclNTTFRlc3QiOjAKK2RlcGVuZHNfb246TUJFRFRMU19ERVNfQzpQU0FfV0FOVF9BTEdfU0hBXzI1NjpNQkVEVExTX1BLQ1M1X0M6TUJFRFRMU19DSVBIRVJfQzpNQkVEVExTX0NJUEhFUl9NT0RFX0NCQworcGtfcGFyc2Vfa2V5ZmlsZV9yc2E6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3JzYV9wa2NzOF9wYmVzMl9wYmtkZjJfNDA5Nl9kZXNfc2hhMjU2LmRlciI6IlBvbGFyU1NMVGVzdCI6MAogCiBQYXJzZSBSU0EgS2V5ICM3NC4xIChQS0NTIzggZW5jcnlwdGVkIHYyIFBCS0RGMiBERVMgaG1hY1dpdGhTSEEyNTYgREVSLCA0MDk2LWJpdCwgd3JvbmcgUFcpCi1kZXBlbmRzX29uOk1CRURUTFNfREVTX0M6TUJFRFRMU19NRF9DQU5fU0hBMjU2Ok1CRURUTFNfUEtDUzVfQzpNQkVEVExTX0NJUEhFUl9DOk1CRURUTFNfQ0lQSEVSX01PREVfQ0JDOk1CRURUTFNfQ0lQSEVSX1BBRERJTkdfUEtDUzcKLXBrX3BhcnNlX2tleWZpbGVfcnNhOiJkYXRhX2ZpbGVzL3JzYV9wa2NzOF9wYmVzMl9wYmtkZjJfNDA5Nl9kZXNfc2hhMjU2LmRlciI6IlBvbGFyU1NMVGVzIjpNQkVEVExTX0VSUl9QS19QQVNTV09SRF9NSVNNQVRDSAorZGVwZW5kc19vbjpNQkVEVExTX0RFU19DOlBTQV9XQU5UX0FMR19TSEFfMjU2Ok1CRURUTFNfUEtDUzVfQzpNQkVEVExTX0NJUEhFUl9DOk1CRURUTFNfQ0lQSEVSX01PREVfQ0JDOk1CRURUTFNfQ0lQSEVSX1BBRERJTkdfUEtDUzcKK3BrX3BhcnNlX2tleWZpbGVfcnNhOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9yc2FfcGtjczhfcGJlczJfcGJrZGYyXzQwOTZfZGVzX3NoYTI1Ni5kZXIiOiJQb2xhclNTTFRlcyI6TUJFRFRMU19FUlJfUEtfUEFTU1dPUkRfTUlTTUFUQ0gKIAogUGFyc2UgUlNBIEtleSAjNzQuMiAoUEtDUyM4IGVuY3J5cHRlZCB2MiBQQktERjIgREVTIGhtYWNXaXRoU0hBMjU2IERFUiwgNDA5Ni1iaXQsIG5vIFBXKQotZGVwZW5kc19vbjpNQkVEVExTX0RFU19DOk1CRURUTFNfTURfQ0FOX1NIQTI1NjpNQkVEVExTX1BLQ1M1X0M6TUJFRFRMU19DSVBIRVJfQwotcGtfcGFyc2Vfa2V5ZmlsZV9yc2E6ImRhdGFfZmlsZXMvcnNhX3BrY3M4X3BiZXMyX3Bia2RmMl80MDk2X2Rlc19zaGEyNTYuZGVyIjoiIjpNQkVEVExTX0VSUl9QS19LRVlfSU5WQUxJRF9GT1JNQVQKK2RlcGVuZHNfb246TUJFRFRMU19ERVNfQzpQU0FfV0FOVF9BTEdfU0hBXzI1NjpNQkVEVExTX1BLQ1M1X0M6TUJFRFRMU19DSVBIRVJfQworcGtfcGFyc2Vfa2V5ZmlsZV9yc2E6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3JzYV9wa2NzOF9wYmVzMl9wYmtkZjJfNDA5Nl9kZXNfc2hhMjU2LmRlciI6IiI6TUJFRFRMU19FUlJfUEtfS0VZX0lOVkFMSURfRk9STUFUCiAKIFBhcnNlIFJTQSBLZXkgIzc1IChQS0NTIzggZW5jcnlwdGVkIHYyIFBCS0RGMiAzREVTIGhtYWNXaXRoU0hBMzg0KQotZGVwZW5kc19vbjpNQkVEVExTX0RFU19DOk1CRURUTFNfTURfQ0FOX1NIQTM4NDpNQkVEVExTX1BFTV9QQVJTRV9DOk1CRURUTFNfUEtDUzVfQzpNQkVEVExTX0NJUEhFUl9DOk1CRURUTFNfQ0lQSEVSX01PREVfQ0JDCi1wa19wYXJzZV9rZXlmaWxlX3JzYToiZGF0YV9maWxlcy9yc2FfcGtjczhfcGJlczJfcGJrZGYyXzEwMjRfM2Rlc19zaGEzODQucGVtIjoiUG9sYXJTU0xUZXN0IjowCitkZXBlbmRzX29uOk1CRURUTFNfREVTX0M6UFNBX1dBTlRfQUxHX1NIQV8zODQ6TUJFRFRMU19QRU1fUEFSU0VfQzpNQkVEVExTX1BLQ1M1X0M6TUJFRFRMU19DSVBIRVJfQzpNQkVEVExTX0NJUEhFUl9NT0RFX0NCQworcGtfcGFyc2Vfa2V5ZmlsZV9yc2E6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3JzYV9wa2NzOF9wYmVzMl9wYmtkZjJfMTAyNF8zZGVzX3NoYTM4NC5wZW0iOiJQb2xhclNTTFRlc3QiOjAKIAogUGFyc2UgUlNBIEtleSAjNzUuMSAoUEtDUyM4IGVuY3J5cHRlZCB2MiBQQktERjIgM0RFUyBobWFjV2l0aFNIQTM4NCwgd3JvbmcgUFcpCi1kZXBlbmRzX29uOk1CRURUTFNfREVTX0M6TUJFRFRMU19NRF9DQU5fU0hBMzg0Ok1CRURUTFNfUEVNX1BBUlNFX0M6TUJFRFRMU19QS0NTNV9DOk1CRURUTFNfQ0lQSEVSX0M6TUJFRFRMU19DSVBIRVJfTU9ERV9DQkM6TUJFRFRMU19DSVBIRVJfUEFERElOR19QS0NTNwotcGtfcGFyc2Vfa2V5ZmlsZV9yc2E6ImRhdGFfZmlsZXMvcnNhX3BrY3M4X3BiZXMyX3Bia2RmMl8xMDI0XzNkZXNfc2hhMzg0LnBlbSI6IlBvbGFyU1NMVGVzIjpNQkVEVExTX0VSUl9QS19QQVNTV09SRF9NSVNNQVRDSAorZGVwZW5kc19vbjpNQkVEVExTX0RFU19DOlBTQV9XQU5UX0FMR19TSEFfMzg0Ok1CRURUTFNfUEVNX1BBUlNFX0M6TUJFRFRMU19QS0NTNV9DOk1CRURUTFNfQ0lQSEVSX0M6TUJFRFRMU19DSVBIRVJfTU9ERV9DQkM6TUJFRFRMU19DSVBIRVJfUEFERElOR19QS0NTNworcGtfcGFyc2Vfa2V5ZmlsZV9yc2E6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3JzYV9wa2NzOF9wYmVzMl9wYmtkZjJfMTAyNF8zZGVzX3NoYTM4NC5wZW0iOiJQb2xhclNTTFRlcyI6TUJFRFRMU19FUlJfUEtfUEFTU1dPUkRfTUlTTUFUQ0gKIAogUGFyc2UgUlNBIEtleSAjNzUuMiAoUEtDUyM4IGVuY3J5cHRlZCB2MiBQQktERjIgM0RFUyBobWFjV2l0aFNIQTM4NCwgbm8gUFcpCi1kZXBlbmRzX29uOk1CRURUTFNfREVTX0M6TUJFRFRMU19NRF9DQU5fU0hBMzg0Ok1CRURUTFNfUEVNX1BBUlNFX0M6TUJFRFRMU19QS0NTNV9DOk1CRURUTFNfQ0lQSEVSX0MKLXBrX3BhcnNlX2tleWZpbGVfcnNhOiJkYXRhX2ZpbGVzL3JzYV9wa2NzOF9wYmVzMl9wYmtkZjJfMTAyNF8zZGVzX3NoYTM4NC5wZW0iOiIiOk1CRURUTFNfRVJSX1BLX1BBU1NXT1JEX1JFUVVJUkVECitkZXBlbmRzX29uOk1CRURUTFNfREVTX0M6UFNBX1dBTlRfQUxHX1NIQV8zODQ6TUJFRFRMU19QRU1fUEFSU0VfQzpNQkVEVExTX1BLQ1M1X0M6TUJFRFRMU19DSVBIRVJfQworcGtfcGFyc2Vfa2V5ZmlsZV9yc2E6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3JzYV9wa2NzOF9wYmVzMl9wYmtkZjJfMTAyNF8zZGVzX3NoYTM4NC5wZW0iOiIiOk1CRURUTFNfRVJSX1BLX1BBU1NXT1JEX1JFUVVJUkVECiAKIFBhcnNlIFJTQSBLZXkgIzc2IChQS0NTIzggZW5jcnlwdGVkIHYyIFBCS0RGMiAzREVTIGhtYWNXaXRoU0hBMzg0LCAyMDQ4LWJpdCkKLWRlcGVuZHNfb246TUJFRFRMU19ERVNfQzpNQkVEVExTX01EX0NBTl9TSEEzODQ6TUJFRFRMU19QRU1fUEFSU0VfQzpNQkVEVExTX1BLQ1M1X0M6TUJFRFRMU19DSVBIRVJfQzpNQkVEVExTX0NJUEhFUl9NT0RFX0NCQwotcGtfcGFyc2Vfa2V5ZmlsZV9yc2E6ImRhdGFfZmlsZXMvcnNhX3BrY3M4X3BiZXMyX3Bia2RmMl8yMDQ4XzNkZXNfc2hhMzg0LnBlbSI6IlBvbGFyU1NMVGVzdCI6MAorZGVwZW5kc19vbjpNQkVEVExTX0RFU19DOlBTQV9XQU5UX0FMR19TSEFfMzg0Ok1CRURUTFNfUEVNX1BBUlNFX0M6TUJFRFRMU19QS0NTNV9DOk1CRURUTFNfQ0lQSEVSX0M6TUJFRFRMU19DSVBIRVJfTU9ERV9DQkMKK3BrX3BhcnNlX2tleWZpbGVfcnNhOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9yc2FfcGtjczhfcGJlczJfcGJrZGYyXzIwNDhfM2Rlc19zaGEzODQucGVtIjoiUG9sYXJTU0xUZXN0IjowCiAKIFBhcnNlIFJTQSBLZXkgIzc2LjEgKFBLQ1MjOCBlbmNyeXB0ZWQgdjIgUEJLREYyIDNERVMgaG1hY1dpdGhTSEEzODQsIDIwNDgtYml0LCB3cm9uZyBQVykKLWRlcGVuZHNfb246TUJFRFRMU19ERVNfQzpNQkVEVExTX01EX0NBTl9TSEEzODQ6TUJFRFRMU19QRU1fUEFSU0VfQzpNQkVEVExTX1BLQ1M1X0M6TUJFRFRMU19DSVBIRVJfQzpNQkVEVExTX0NJUEhFUl9NT0RFX0NCQzpNQkVEVExTX0NJUEhFUl9QQURESU5HX1BLQ1M3Ci1wa19wYXJzZV9rZXlmaWxlX3JzYToiZGF0YV9maWxlcy9yc2FfcGtjczhfcGJlczJfcGJrZGYyXzIwNDhfM2Rlc19zaGEzODQucGVtIjoiUG9sYXJTU0xUZXMiOk1CRURUTFNfRVJSX1BLX1BBU1NXT1JEX01JU01BVENICitkZXBlbmRzX29uOk1CRURUTFNfREVTX0M6UFNBX1dBTlRfQUxHX1NIQV8zODQ6TUJFRFRMU19QRU1fUEFSU0VfQzpNQkVEVExTX1BLQ1M1X0M6TUJFRFRMU19DSVBIRVJfQzpNQkVEVExTX0NJUEhFUl9NT0RFX0NCQzpNQkVEVExTX0NJUEhFUl9QQURESU5HX1BLQ1M3Citwa19wYXJzZV9rZXlmaWxlX3JzYToiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvcnNhX3BrY3M4X3BiZXMyX3Bia2RmMl8yMDQ4XzNkZXNfc2hhMzg0LnBlbSI6IlBvbGFyU1NMVGVzIjpNQkVEVExTX0VSUl9QS19QQVNTV09SRF9NSVNNQVRDSAogCiBQYXJzZSBSU0EgS2V5ICM3Ni4yIChQS0NTIzggZW5jcnlwdGVkIHYyIFBCS0RGMiAzREVTIGhtYWNXaXRoU0hBMzg0LCAyMDQ4LWJpdCwgbm8gUFcpCi1kZXBlbmRzX29uOk1CRURUTFNfREVTX0M6TUJFRFRMU19NRF9DQU5fU0hBMzg0Ok1CRURUTFNfUEVNX1BBUlNFX0M6TUJFRFRMU19QS0NTNV9DOk1CRURUTFNfQ0lQSEVSX0MKLXBrX3BhcnNlX2tleWZpbGVfcnNhOiJkYXRhX2ZpbGVzL3JzYV9wa2NzOF9wYmVzMl9wYmtkZjJfMjA0OF8zZGVzX3NoYTM4NC5wZW0iOiIiOk1CRURUTFNfRVJSX1BLX1BBU1NXT1JEX1JFUVVJUkVECitkZXBlbmRzX29uOk1CRURUTFNfREVTX0M6UFNBX1dBTlRfQUxHX1NIQV8zODQ6TUJFRFRMU19QRU1fUEFSU0VfQzpNQkVEVExTX1BLQ1M1X0M6TUJFRFRMU19DSVBIRVJfQworcGtfcGFyc2Vfa2V5ZmlsZV9yc2E6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3JzYV9wa2NzOF9wYmVzMl9wYmtkZjJfMjA0OF8zZGVzX3NoYTM4NC5wZW0iOiIiOk1CRURUTFNfRVJSX1BLX1BBU1NXT1JEX1JFUVVJUkVECiAKIFBhcnNlIFJTQSBLZXkgIzc3IChQS0NTIzggZW5jcnlwdGVkIHYyIFBCS0RGMiAzREVTIGhtYWNXaXRoU0hBMzg0LCA0MDk2LWJpdCkKLWRlcGVuZHNfb246TUJFRFRMU19ERVNfQzpNQkVEVExTX01EX0NBTl9TSEEzODQ6TUJFRFRMU19QRU1fUEFSU0VfQzpNQkVEVExTX1BLQ1M1X0M6TUJFRFRMU19DSVBIRVJfQzpNQkVEVExTX0NJUEhFUl9NT0RFX0NCQwotcGtfcGFyc2Vfa2V5ZmlsZV9yc2E6ImRhdGFfZmlsZXMvcnNhX3BrY3M4X3BiZXMyX3Bia2RmMl80MDk2XzNkZXNfc2hhMzg0LnBlbSI6IlBvbGFyU1NMVGVzdCI6MAorZGVwZW5kc19vbjpNQkVEVExTX0RFU19DOlBTQV9XQU5UX0FMR19TSEFfMzg0Ok1CRURUTFNfUEVNX1BBUlNFX0M6TUJFRFRMU19QS0NTNV9DOk1CRURUTFNfQ0lQSEVSX0M6TUJFRFRMU19DSVBIRVJfTU9ERV9DQkMKK3BrX3BhcnNlX2tleWZpbGVfcnNhOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9yc2FfcGtjczhfcGJlczJfcGJrZGYyXzQwOTZfM2Rlc19zaGEzODQucGVtIjoiUG9sYXJTU0xUZXN0IjowCiAKIFBhcnNlIFJTQSBLZXkgIzc3LjEgKFBLQ1MjOCBlbmNyeXB0ZWQgdjIgUEJLREYyIDNERVMgaG1hY1dpdGhTSEEzODQsIDQwOTYtYml0LCB3cm9uZyBQVykKLWRlcGVuZHNfb246TUJFRFRMU19ERVNfQzpNQkVEVExTX01EX0NBTl9TSEEzODQ6TUJFRFRMU19QRU1fUEFSU0VfQzpNQkVEVExTX1BLQ1M1X0M6TUJFRFRMU19DSVBIRVJfQzpNQkVEVExTX0NJUEhFUl9NT0RFX0NCQzpNQkVEVExTX0NJUEhFUl9QQURESU5HX1BLQ1M3Ci1wa19wYXJzZV9rZXlmaWxlX3JzYToiZGF0YV9maWxlcy9yc2FfcGtjczhfcGJlczJfcGJrZGYyXzQwOTZfM2Rlc19zaGEzODQucGVtIjoiUG9sYXJTU0xUZXMiOk1CRURUTFNfRVJSX1BLX1BBU1NXT1JEX01JU01BVENICitkZXBlbmRzX29uOk1CRURUTFNfREVTX0M6UFNBX1dBTlRfQUxHX1NIQV8zODQ6TUJFRFRMU19QRU1fUEFSU0VfQzpNQkVEVExTX1BLQ1M1X0M6TUJFRFRMU19DSVBIRVJfQzpNQkVEVExTX0NJUEhFUl9NT0RFX0NCQzpNQkVEVExTX0NJUEhFUl9QQURESU5HX1BLQ1M3Citwa19wYXJzZV9rZXlmaWxlX3JzYToiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvcnNhX3BrY3M4X3BiZXMyX3Bia2RmMl80MDk2XzNkZXNfc2hhMzg0LnBlbSI6IlBvbGFyU1NMVGVzIjpNQkVEVExTX0VSUl9QS19QQVNTV09SRF9NSVNNQVRDSAogCiBQYXJzZSBSU0EgS2V5ICM3Ny4yIChQS0NTIzggZW5jcnlwdGVkIHYyIFBCS0RGMiAzREVTIGhtYWNXaXRoU0hBMzg0LCA0MDk2LWJpdCwgbm8gUFcpCi1kZXBlbmRzX29uOk1CRURUTFNfREVTX0M6TUJFRFRMU19NRF9DQU5fU0hBMzg0Ok1CRURUTFNfUEVNX1BBUlNFX0M6TUJFRFRMU19QS0NTNV9DOk1CRURUTFNfQ0lQSEVSX0MKLXBrX3BhcnNlX2tleWZpbGVfcnNhOiJkYXRhX2ZpbGVzL3JzYV9wa2NzOF9wYmVzMl9wYmtkZjJfNDA5Nl8zZGVzX3NoYTM4NC5wZW0iOiIiOk1CRURUTFNfRVJSX1BLX1BBU1NXT1JEX1JFUVVJUkVECitkZXBlbmRzX29uOk1CRURUTFNfREVTX0M6UFNBX1dBTlRfQUxHX1NIQV8zODQ6TUJFRFRMU19QRU1fUEFSU0VfQzpNQkVEVExTX1BLQ1M1X0M6TUJFRFRMU19DSVBIRVJfQworcGtfcGFyc2Vfa2V5ZmlsZV9yc2E6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3JzYV9wa2NzOF9wYmVzMl9wYmtkZjJfNDA5Nl8zZGVzX3NoYTM4NC5wZW0iOiIiOk1CRURUTFNfRVJSX1BLX1BBU1NXT1JEX1JFUVVJUkVECiAKIFBhcnNlIFJTQSBLZXkgIzc4IChQS0NTIzggZW5jcnlwdGVkIHYyIFBCS0RGMiAzREVTIGhtYWNXaXRoU0hBMzg0IERFUikKLWRlcGVuZHNfb246TUJFRFRMU19ERVNfQzpNQkVEVExTX01EX0NBTl9TSEEzODQ6TUJFRFRMU19QS0NTNV9DOk1CRURUTFNfQ0lQSEVSX0M6TUJFRFRMU19DSVBIRVJfTU9ERV9DQkMKLXBrX3BhcnNlX2tleWZpbGVfcnNhOiJkYXRhX2ZpbGVzL3JzYV9wa2NzOF9wYmVzMl9wYmtkZjJfMTAyNF8zZGVzX3NoYTM4NC5kZXIiOiJQb2xhclNTTFRlc3QiOjAKK2RlcGVuZHNfb246TUJFRFRMU19ERVNfQzpQU0FfV0FOVF9BTEdfU0hBXzM4NDpNQkVEVExTX1BLQ1M1X0M6TUJFRFRMU19DSVBIRVJfQzpNQkVEVExTX0NJUEhFUl9NT0RFX0NCQworcGtfcGFyc2Vfa2V5ZmlsZV9yc2E6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3JzYV9wa2NzOF9wYmVzMl9wYmtkZjJfMTAyNF8zZGVzX3NoYTM4NC5kZXIiOiJQb2xhclNTTFRlc3QiOjAKIAogUGFyc2UgUlNBIEtleSAjNzguMSAoUEtDUyM4IGVuY3J5cHRlZCB2MiBQQktERjIgM0RFUyBobWFjV2l0aFNIQTM4NCBERVIsIHdyb25nIFBXKQotZGVwZW5kc19vbjpNQkVEVExTX0RFU19DOk1CRURUTFNfTURfQ0FOX1NIQTM4NDpNQkVEVExTX1BLQ1M1X0M6TUJFRFRMU19DSVBIRVJfQzpNQkVEVExTX0NJUEhFUl9NT0RFX0NCQzpNQkVEVExTX0NJUEhFUl9QQURESU5HX1BLQ1M3Ci1wa19wYXJzZV9rZXlmaWxlX3JzYToiZGF0YV9maWxlcy9yc2FfcGtjczhfcGJlczJfcGJrZGYyXzEwMjRfM2Rlc19zaGEzODQuZGVyIjoiUG9sYXJTU0xUZXMiOk1CRURUTFNfRVJSX1BLX1BBU1NXT1JEX01JU01BVENICitkZXBlbmRzX29uOk1CRURUTFNfREVTX0M6UFNBX1dBTlRfQUxHX1NIQV8zODQ6TUJFRFRMU19QS0NTNV9DOk1CRURUTFNfQ0lQSEVSX0M6TUJFRFRMU19DSVBIRVJfTU9ERV9DQkM6TUJFRFRMU19DSVBIRVJfUEFERElOR19QS0NTNworcGtfcGFyc2Vfa2V5ZmlsZV9yc2E6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3JzYV9wa2NzOF9wYmVzMl9wYmtkZjJfMTAyNF8zZGVzX3NoYTM4NC5kZXIiOiJQb2xhclNTTFRlcyI6TUJFRFRMU19FUlJfUEtfUEFTU1dPUkRfTUlTTUFUQ0gKIAogUGFyc2UgUlNBIEtleSAjNzguMiAoUEtDUyM4IGVuY3J5cHRlZCB2MiBQQktERjIgM0RFUyBobWFjV2l0aFNIQTM4NCBERVIsIG5vIFBXKQotZGVwZW5kc19vbjpNQkVEVExTX0RFU19DOk1CRURUTFNfTURfQ0FOX1NIQTM4NDpNQkVEVExTX1BLQ1M1X0M6TUJFRFRMU19DSVBIRVJfQwotcGtfcGFyc2Vfa2V5ZmlsZV9yc2E6ImRhdGFfZmlsZXMvcnNhX3BrY3M4X3BiZXMyX3Bia2RmMl8xMDI0XzNkZXNfc2hhMzg0LmRlciI6IiI6TUJFRFRMU19FUlJfUEtfS0VZX0lOVkFMSURfRk9STUFUCitkZXBlbmRzX29uOk1CRURUTFNfREVTX0M6UFNBX1dBTlRfQUxHX1NIQV8zODQ6TUJFRFRMU19QS0NTNV9DOk1CRURUTFNfQ0lQSEVSX0MKK3BrX3BhcnNlX2tleWZpbGVfcnNhOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9yc2FfcGtjczhfcGJlczJfcGJrZGYyXzEwMjRfM2Rlc19zaGEzODQuZGVyIjoiIjpNQkVEVExTX0VSUl9QS19LRVlfSU5WQUxJRF9GT1JNQVQKIAogUGFyc2UgUlNBIEtleSAjNzkgKFBLQ1MjOCBlbmNyeXB0ZWQgdjIgUEJLREYyIDNERVMgaG1hY1dpdGhTSEEzODQgREVSLCAyMDQ4LWJpdCkKLWRlcGVuZHNfb246TUJFRFRMU19ERVNfQzpNQkVEVExTX01EX0NBTl9TSEEzODQ6TUJFRFRMU19QS0NTNV9DOk1CRURUTFNfQ0lQSEVSX0M6TUJFRFRMU19DSVBIRVJfTU9ERV9DQkMKLXBrX3BhcnNlX2tleWZpbGVfcnNhOiJkYXRhX2ZpbGVzL3JzYV9wa2NzOF9wYmVzMl9wYmtkZjJfMjA0OF8zZGVzX3NoYTM4NC5kZXIiOiJQb2xhclNTTFRlc3QiOjAKK2RlcGVuZHNfb246TUJFRFRMU19ERVNfQzpQU0FfV0FOVF9BTEdfU0hBXzM4NDpNQkVEVExTX1BLQ1M1X0M6TUJFRFRMU19DSVBIRVJfQzpNQkVEVExTX0NJUEhFUl9NT0RFX0NCQworcGtfcGFyc2Vfa2V5ZmlsZV9yc2E6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3JzYV9wa2NzOF9wYmVzMl9wYmtkZjJfMjA0OF8zZGVzX3NoYTM4NC5kZXIiOiJQb2xhclNTTFRlc3QiOjAKIAogUGFyc2UgUlNBIEtleSAjNzkuMSAoUEtDUyM4IGVuY3J5cHRlZCB2MiBQQktERjIgM0RFUyBobWFjV2l0aFNIQTM4NCBERVIsIDIwNDgtYml0LCB3cm9uZyBQVykKLWRlcGVuZHNfb246TUJFRFRMU19ERVNfQzpNQkVEVExTX01EX0NBTl9TSEEzODQ6TUJFRFRMU19QS0NTNV9DOk1CRURUTFNfQ0lQSEVSX0M6TUJFRFRMU19DSVBIRVJfTU9ERV9DQkM6TUJFRFRMU19DSVBIRVJfUEFERElOR19QS0NTNwotcGtfcGFyc2Vfa2V5ZmlsZV9yc2E6ImRhdGFfZmlsZXMvcnNhX3BrY3M4X3BiZXMyX3Bia2RmMl8yMDQ4XzNkZXNfc2hhMzg0LmRlciI6IlBvbGFyU1NMVGVzIjpNQkVEVExTX0VSUl9QS19QQVNTV09SRF9NSVNNQVRDSAorZGVwZW5kc19vbjpNQkVEVExTX0RFU19DOlBTQV9XQU5UX0FMR19TSEFfMzg0Ok1CRURUTFNfUEtDUzVfQzpNQkVEVExTX0NJUEhFUl9DOk1CRURUTFNfQ0lQSEVSX01PREVfQ0JDOk1CRURUTFNfQ0lQSEVSX1BBRERJTkdfUEtDUzcKK3BrX3BhcnNlX2tleWZpbGVfcnNhOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9yc2FfcGtjczhfcGJlczJfcGJrZGYyXzIwNDhfM2Rlc19zaGEzODQuZGVyIjoiUG9sYXJTU0xUZXMiOk1CRURUTFNfRVJSX1BLX1BBU1NXT1JEX01JU01BVENICiAKIFBhcnNlIFJTQSBLZXkgIzc5LjIgKFBLQ1MjOCBlbmNyeXB0ZWQgdjIgUEJLREYyIDNERVMgaG1hY1dpdGhTSEEzODQgREVSLCAyMDQ4LWJpdCwgbm8gUFcpCi1kZXBlbmRzX29uOk1CRURUTFNfREVTX0M6TUJFRFRMU19NRF9DQU5fU0hBMzg0Ok1CRURUTFNfUEtDUzVfQzpNQkVEVExTX0NJUEhFUl9DCi1wa19wYXJzZV9rZXlmaWxlX3JzYToiZGF0YV9maWxlcy9yc2FfcGtjczhfcGJlczJfcGJrZGYyXzIwNDhfM2Rlc19zaGEzODQuZGVyIjoiIjpNQkVEVExTX0VSUl9QS19LRVlfSU5WQUxJRF9GT1JNQVQKK2RlcGVuZHNfb246TUJFRFRMU19ERVNfQzpQU0FfV0FOVF9BTEdfU0hBXzM4NDpNQkVEVExTX1BLQ1M1X0M6TUJFRFRMU19DSVBIRVJfQworcGtfcGFyc2Vfa2V5ZmlsZV9yc2E6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3JzYV9wa2NzOF9wYmVzMl9wYmtkZjJfMjA0OF8zZGVzX3NoYTM4NC5kZXIiOiIiOk1CRURUTFNfRVJSX1BLX0tFWV9JTlZBTElEX0ZPUk1BVAogCiBQYXJzZSBSU0EgS2V5ICM4MCAoUEtDUyM4IGVuY3J5cHRlZCB2MiBQQktERjIgM0RFUyBobWFjV2l0aFNIQTM4NCBERVIsIDQwOTYtYml0KQotZGVwZW5kc19vbjpNQkVEVExTX0RFU19DOk1CRURUTFNfTURfQ0FOX1NIQTM4NDpNQkVEVExTX1BLQ1M1X0M6TUJFRFRMU19DSVBIRVJfQzpNQkVEVExTX0NJUEhFUl9NT0RFX0NCQwotcGtfcGFyc2Vfa2V5ZmlsZV9yc2E6ImRhdGFfZmlsZXMvcnNhX3BrY3M4X3BiZXMyX3Bia2RmMl80MDk2XzNkZXNfc2hhMzg0LmRlciI6IlBvbGFyU1NMVGVzdCI6MAorZGVwZW5kc19vbjpNQkVEVExTX0RFU19DOlBTQV9XQU5UX0FMR19TSEFfMzg0Ok1CRURUTFNfUEtDUzVfQzpNQkVEVExTX0NJUEhFUl9DOk1CRURUTFNfQ0lQSEVSX01PREVfQ0JDCitwa19wYXJzZV9rZXlmaWxlX3JzYToiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvcnNhX3BrY3M4X3BiZXMyX3Bia2RmMl80MDk2XzNkZXNfc2hhMzg0LmRlciI6IlBvbGFyU1NMVGVzdCI6MAogCiBQYXJzZSBSU0EgS2V5ICM4MC4xIChQS0NTIzggZW5jcnlwdGVkIHYyIFBCS0RGMiAzREVTIGhtYWNXaXRoU0hBMzg0IERFUiwgNDA5Ni1iaXQsIHdyb25nIFBXKQotZGVwZW5kc19vbjpNQkVEVExTX0RFU19DOk1CRURUTFNfTURfQ0FOX1NIQTM4NDpNQkVEVExTX1BLQ1M1X0M6TUJFRFRMU19DSVBIRVJfQzpNQkVEVExTX0NJUEhFUl9NT0RFX0NCQzpNQkVEVExTX0NJUEhFUl9QQURESU5HX1BLQ1M3Ci1wa19wYXJzZV9rZXlmaWxlX3JzYToiZGF0YV9maWxlcy9yc2FfcGtjczhfcGJlczJfcGJrZGYyXzQwOTZfM2Rlc19zaGEzODQuZGVyIjoiUG9sYXJTU0xUZXMiOk1CRURUTFNfRVJSX1BLX1BBU1NXT1JEX01JU01BVENICitkZXBlbmRzX29uOk1CRURUTFNfREVTX0M6UFNBX1dBTlRfQUxHX1NIQV8zODQ6TUJFRFRMU19QS0NTNV9DOk1CRURUTFNfQ0lQSEVSX0M6TUJFRFRMU19DSVBIRVJfTU9ERV9DQkM6TUJFRFRMU19DSVBIRVJfUEFERElOR19QS0NTNworcGtfcGFyc2Vfa2V5ZmlsZV9yc2E6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3JzYV9wa2NzOF9wYmVzMl9wYmtkZjJfNDA5Nl8zZGVzX3NoYTM4NC5kZXIiOiJQb2xhclNTTFRlcyI6TUJFRFRMU19FUlJfUEtfUEFTU1dPUkRfTUlTTUFUQ0gKIAogUGFyc2UgUlNBIEtleSAjODAuMiAoUEtDUyM4IGVuY3J5cHRlZCB2MiBQQktERjIgM0RFUyBobWFjV2l0aFNIQTM4NCBERVIsIDQwOTYtYml0LCBubyBQVykKLWRlcGVuZHNfb246TUJFRFRMU19ERVNfQzpNQkVEVExTX01EX0NBTl9TSEEzODQ6TUJFRFRMU19QS0NTNV9DOk1CRURUTFNfQ0lQSEVSX0MKLXBrX3BhcnNlX2tleWZpbGVfcnNhOiJkYXRhX2ZpbGVzL3JzYV9wa2NzOF9wYmVzMl9wYmtkZjJfNDA5Nl8zZGVzX3NoYTM4NC5kZXIiOiIiOk1CRURUTFNfRVJSX1BLX0tFWV9JTlZBTElEX0ZPUk1BVAorZGVwZW5kc19vbjpNQkVEVExTX0RFU19DOlBTQV9XQU5UX0FMR19TSEFfMzg0Ok1CRURUTFNfUEtDUzVfQzpNQkVEVExTX0NJUEhFUl9DCitwa19wYXJzZV9rZXlmaWxlX3JzYToiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvcnNhX3BrY3M4X3BiZXMyX3Bia2RmMl80MDk2XzNkZXNfc2hhMzg0LmRlciI6IiI6TUJFRFRMU19FUlJfUEtfS0VZX0lOVkFMSURfRk9STUFUCiAKIFBhcnNlIFJTQSBLZXkgIzgxIChQS0NTIzggZW5jcnlwdGVkIHYyIFBCS0RGMiBERVMgaG1hY1dpdGhTSEEzODQpCi1kZXBlbmRzX29uOk1CRURUTFNfREVTX0M6TUJFRFRMU19NRF9DQU5fU0hBMzg0Ok1CRURUTFNfUEVNX1BBUlNFX0M6TUJFRFRMU19QS0NTNV9DOk1CRURUTFNfQ0lQSEVSX0M6TUJFRFRMU19DSVBIRVJfTU9ERV9DQkMKLXBrX3BhcnNlX2tleWZpbGVfcnNhOiJkYXRhX2ZpbGVzL3JzYV9wa2NzOF9wYmVzMl9wYmtkZjJfMTAyNF9kZXNfc2hhMzg0LnBlbSI6IlBvbGFyU1NMVGVzdCI6MAorZGVwZW5kc19vbjpNQkVEVExTX0RFU19DOlBTQV9XQU5UX0FMR19TSEFfMzg0Ok1CRURUTFNfUEVNX1BBUlNFX0M6TUJFRFRMU19QS0NTNV9DOk1CRURUTFNfQ0lQSEVSX0M6TUJFRFRMU19DSVBIRVJfTU9ERV9DQkMKK3BrX3BhcnNlX2tleWZpbGVfcnNhOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9yc2FfcGtjczhfcGJlczJfcGJrZGYyXzEwMjRfZGVzX3NoYTM4NC5wZW0iOiJQb2xhclNTTFRlc3QiOjAKIAogUGFyc2UgUlNBIEtleSAjODEuMSAoUEtDUyM4IGVuY3J5cHRlZCB2MiBQQktERjIgREVTIGhtYWNXaXRoU0hBMzg0LCB3cm9uZyBQVykKLWRlcGVuZHNfb246TUJFRFRMU19ERVNfQzpNQkVEVExTX01EX0NBTl9TSEEzODQ6TUJFRFRMU19QRU1fUEFSU0VfQzpNQkVEVExTX1BLQ1M1X0M6TUJFRFRMU19DSVBIRVJfQzpNQkVEVExTX0NJUEhFUl9NT0RFX0NCQzpNQkVEVExTX0NJUEhFUl9QQURESU5HX1BLQ1M3Ci1wa19wYXJzZV9rZXlmaWxlX3JzYToiZGF0YV9maWxlcy9yc2FfcGtjczhfcGJlczJfcGJrZGYyXzEwMjRfZGVzX3NoYTM4NC5wZW0iOiJQb2xhclNTTFRlcyI6TUJFRFRMU19FUlJfUEtfUEFTU1dPUkRfTUlTTUFUQ0gKK2RlcGVuZHNfb246TUJFRFRMU19ERVNfQzpQU0FfV0FOVF9BTEdfU0hBXzM4NDpNQkVEVExTX1BFTV9QQVJTRV9DOk1CRURUTFNfUEtDUzVfQzpNQkVEVExTX0NJUEhFUl9DOk1CRURUTFNfQ0lQSEVSX01PREVfQ0JDOk1CRURUTFNfQ0lQSEVSX1BBRERJTkdfUEtDUzcKK3BrX3BhcnNlX2tleWZpbGVfcnNhOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9yc2FfcGtjczhfcGJlczJfcGJrZGYyXzEwMjRfZGVzX3NoYTM4NC5wZW0iOiJQb2xhclNTTFRlcyI6TUJFRFRMU19FUlJfUEtfUEFTU1dPUkRfTUlTTUFUQ0gKIAogUGFyc2UgUlNBIEtleSAjODEuMiAoUEtDUyM4IGVuY3J5cHRlZCB2MiBQQktERjIgREVTIGhtYWNXaXRoU0hBMzg0LCBubyBQVykKLWRlcGVuZHNfb246TUJFRFRMU19ERVNfQzpNQkVEVExTX01EX0NBTl9TSEEzODQ6TUJFRFRMU19QRU1fUEFSU0VfQzpNQkVEVExTX1BLQ1M1X0M6TUJFRFRMU19DSVBIRVJfQwotcGtfcGFyc2Vfa2V5ZmlsZV9yc2E6ImRhdGFfZmlsZXMvcnNhX3BrY3M4X3BiZXMyX3Bia2RmMl8xMDI0X2Rlc19zaGEzODQucGVtIjoiIjpNQkVEVExTX0VSUl9QS19QQVNTV09SRF9SRVFVSVJFRAorZGVwZW5kc19vbjpNQkVEVExTX0RFU19DOlBTQV9XQU5UX0FMR19TSEFfMzg0Ok1CRURUTFNfUEVNX1BBUlNFX0M6TUJFRFRMU19QS0NTNV9DOk1CRURUTFNfQ0lQSEVSX0MKK3BrX3BhcnNlX2tleWZpbGVfcnNhOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9yc2FfcGtjczhfcGJlczJfcGJrZGYyXzEwMjRfZGVzX3NoYTM4NC5wZW0iOiIiOk1CRURUTFNfRVJSX1BLX1BBU1NXT1JEX1JFUVVJUkVECiAKIFBhcnNlIFJTQSBLZXkgIzgyIChQS0NTIzggZW5jcnlwdGVkIHYyIFBCS0RGMiBERVMgaG1hY1dpdGhTSEEzODQsIDIwNDgtYml0KQotZGVwZW5kc19vbjpNQkVEVExTX0RFU19DOk1CRURUTFNfTURfQ0FOX1NIQTM4NDpNQkVEVExTX1BFTV9QQVJTRV9DOk1CRURUTFNfUEtDUzVfQzpNQkVEVExTX0NJUEhFUl9DOk1CRURUTFNfQ0lQSEVSX01PREVfQ0JDCi1wa19wYXJzZV9rZXlmaWxlX3JzYToiZGF0YV9maWxlcy9yc2FfcGtjczhfcGJlczJfcGJrZGYyXzIwNDhfZGVzX3NoYTM4NC5wZW0iOiJQb2xhclNTTFRlc3QiOjAKK2RlcGVuZHNfb246TUJFRFRMU19ERVNfQzpQU0FfV0FOVF9BTEdfU0hBXzM4NDpNQkVEVExTX1BFTV9QQVJTRV9DOk1CRURUTFNfUEtDUzVfQzpNQkVEVExTX0NJUEhFUl9DOk1CRURUTFNfQ0lQSEVSX01PREVfQ0JDCitwa19wYXJzZV9rZXlmaWxlX3JzYToiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvcnNhX3BrY3M4X3BiZXMyX3Bia2RmMl8yMDQ4X2Rlc19zaGEzODQucGVtIjoiUG9sYXJTU0xUZXN0IjowCiAKIFBhcnNlIFJTQSBLZXkgIzgyLjEgKFBLQ1MjOCBlbmNyeXB0ZWQgdjIgUEJLREYyIERFUyBobWFjV2l0aFNIQTM4NCwgMjA0OC1iaXQsIHdyb25nIFBXKQotZGVwZW5kc19vbjpNQkVEVExTX0RFU19DOk1CRURUTFNfTURfQ0FOX1NIQTM4NDpNQkVEVExTX1BFTV9QQVJTRV9DOk1CRURUTFNfUEtDUzVfQzpNQkVEVExTX0NJUEhFUl9DOk1CRURUTFNfQ0lQSEVSX01PREVfQ0JDOk1CRURUTFNfQ0lQSEVSX1BBRERJTkdfUEtDUzcKLXBrX3BhcnNlX2tleWZpbGVfcnNhOiJkYXRhX2ZpbGVzL3JzYV9wa2NzOF9wYmVzMl9wYmtkZjJfMjA0OF9kZXNfc2hhMzg0LnBlbSI6IlBvbGFyU1NMVGVzIjpNQkVEVExTX0VSUl9QS19QQVNTV09SRF9NSVNNQVRDSAorZGVwZW5kc19vbjpNQkVEVExTX0RFU19DOlBTQV9XQU5UX0FMR19TSEFfMzg0Ok1CRURUTFNfUEVNX1BBUlNFX0M6TUJFRFRMU19QS0NTNV9DOk1CRURUTFNfQ0lQSEVSX0M6TUJFRFRMU19DSVBIRVJfTU9ERV9DQkM6TUJFRFRMU19DSVBIRVJfUEFERElOR19QS0NTNworcGtfcGFyc2Vfa2V5ZmlsZV9yc2E6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3JzYV9wa2NzOF9wYmVzMl9wYmtkZjJfMjA0OF9kZXNfc2hhMzg0LnBlbSI6IlBvbGFyU1NMVGVzIjpNQkVEVExTX0VSUl9QS19QQVNTV09SRF9NSVNNQVRDSAogCiBQYXJzZSBSU0EgS2V5ICM4Mi4yIChQS0NTIzggZW5jcnlwdGVkIHYyIFBCS0RGMiBERVMgaG1hY1dpdGhTSEEzODQsIDIwNDgtYml0LCBubyBQVykKLWRlcGVuZHNfb246TUJFRFRMU19ERVNfQzpNQkVEVExTX01EX0NBTl9TSEEzODQ6TUJFRFRMU19QRU1fUEFSU0VfQzpNQkVEVExTX1BLQ1M1X0M6TUJFRFRMU19DSVBIRVJfQwotcGtfcGFyc2Vfa2V5ZmlsZV9yc2E6ImRhdGFfZmlsZXMvcnNhX3BrY3M4X3BiZXMyX3Bia2RmMl8yMDQ4X2Rlc19zaGEzODQucGVtIjoiIjpNQkVEVExTX0VSUl9QS19QQVNTV09SRF9SRVFVSVJFRAorZGVwZW5kc19vbjpNQkVEVExTX0RFU19DOlBTQV9XQU5UX0FMR19TSEFfMzg0Ok1CRURUTFNfUEVNX1BBUlNFX0M6TUJFRFRMU19QS0NTNV9DOk1CRURUTFNfQ0lQSEVSX0MKK3BrX3BhcnNlX2tleWZpbGVfcnNhOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9yc2FfcGtjczhfcGJlczJfcGJrZGYyXzIwNDhfZGVzX3NoYTM4NC5wZW0iOiIiOk1CRURUTFNfRVJSX1BLX1BBU1NXT1JEX1JFUVVJUkVECiAKIFBhcnNlIFJTQSBLZXkgIzgzIChQS0NTIzggZW5jcnlwdGVkIHYyIFBCS0RGMiBERVMgaG1hY1dpdGhTSEEzODQsIDQwOTYtYml0KQotZGVwZW5kc19vbjpNQkVEVExTX0RFU19DOk1CRURUTFNfTURfQ0FOX1NIQTM4NDpNQkVEVExTX1BFTV9QQVJTRV9DOk1CRURUTFNfUEtDUzVfQzpNQkVEVExTX0NJUEhFUl9DOk1CRURUTFNfQ0lQSEVSX01PREVfQ0JDCi1wa19wYXJzZV9rZXlmaWxlX3JzYToiZGF0YV9maWxlcy9yc2FfcGtjczhfcGJlczJfcGJrZGYyXzQwOTZfZGVzX3NoYTM4NC5wZW0iOiJQb2xhclNTTFRlc3QiOjAKK2RlcGVuZHNfb246TUJFRFRMU19ERVNfQzpQU0FfV0FOVF9BTEdfU0hBXzM4NDpNQkVEVExTX1BFTV9QQVJTRV9DOk1CRURUTFNfUEtDUzVfQzpNQkVEVExTX0NJUEhFUl9DOk1CRURUTFNfQ0lQSEVSX01PREVfQ0JDCitwa19wYXJzZV9rZXlmaWxlX3JzYToiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvcnNhX3BrY3M4X3BiZXMyX3Bia2RmMl80MDk2X2Rlc19zaGEzODQucGVtIjoiUG9sYXJTU0xUZXN0IjowCiAKIFBhcnNlIFJTQSBLZXkgIzgzLjEgKFBLQ1MjOCBlbmNyeXB0ZWQgdjIgUEJLREYyIERFUyBobWFjV2l0aFNIQTM4NCwgNDA5Ni1iaXQsIHdyb25nIFBXKQotZGVwZW5kc19vbjpNQkVEVExTX0RFU19DOk1CRURUTFNfTURfQ0FOX1NIQTM4NDpNQkVEVExTX1BFTV9QQVJTRV9DOk1CRURUTFNfUEtDUzVfQzpNQkVEVExTX0NJUEhFUl9DOk1CRURUTFNfQ0lQSEVSX01PREVfQ0JDOk1CRURUTFNfQ0lQSEVSX1BBRERJTkdfUEtDUzcKLXBrX3BhcnNlX2tleWZpbGVfcnNhOiJkYXRhX2ZpbGVzL3JzYV9wa2NzOF9wYmVzMl9wYmtkZjJfNDA5Nl9kZXNfc2hhMzg0LnBlbSI6IlBvbGFyU1NMVGVzIjpNQkVEVExTX0VSUl9QS19QQVNTV09SRF9NSVNNQVRDSAorZGVwZW5kc19vbjpNQkVEVExTX0RFU19DOlBTQV9XQU5UX0FMR19TSEFfMzg0Ok1CRURUTFNfUEVNX1BBUlNFX0M6TUJFRFRMU19QS0NTNV9DOk1CRURUTFNfQ0lQSEVSX0M6TUJFRFRMU19DSVBIRVJfTU9ERV9DQkM6TUJFRFRMU19DSVBIRVJfUEFERElOR19QS0NTNworcGtfcGFyc2Vfa2V5ZmlsZV9yc2E6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3JzYV9wa2NzOF9wYmVzMl9wYmtkZjJfNDA5Nl9kZXNfc2hhMzg0LnBlbSI6IlBvbGFyU1NMVGVzIjpNQkVEVExTX0VSUl9QS19QQVNTV09SRF9NSVNNQVRDSAogCiBQYXJzZSBSU0EgS2V5ICM4My4yIChQS0NTIzggZW5jcnlwdGVkIHYyIFBCS0RGMiBERVMgaG1hY1dpdGhTSEEzODQsIDQwOTYtYml0LCBubyBQVykKLWRlcGVuZHNfb246TUJFRFRMU19ERVNfQzpNQkVEVExTX01EX0NBTl9TSEEzODQ6TUJFRFRMU19QRU1fUEFSU0VfQzpNQkVEVExTX1BLQ1M1X0M6TUJFRFRMU19DSVBIRVJfQwotcGtfcGFyc2Vfa2V5ZmlsZV9yc2E6ImRhdGFfZmlsZXMvcnNhX3BrY3M4X3BiZXMyX3Bia2RmMl80MDk2X2Rlc19zaGEzODQucGVtIjoiIjpNQkVEVExTX0VSUl9QS19QQVNTV09SRF9SRVFVSVJFRAorZGVwZW5kc19vbjpNQkVEVExTX0RFU19DOlBTQV9XQU5UX0FMR19TSEFfMzg0Ok1CRURUTFNfUEVNX1BBUlNFX0M6TUJFRFRMU19QS0NTNV9DOk1CRURUTFNfQ0lQSEVSX0MKK3BrX3BhcnNlX2tleWZpbGVfcnNhOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9yc2FfcGtjczhfcGJlczJfcGJrZGYyXzQwOTZfZGVzX3NoYTM4NC5wZW0iOiIiOk1CRURUTFNfRVJSX1BLX1BBU1NXT1JEX1JFUVVJUkVECiAKIFBhcnNlIFJTQSBLZXkgIzg0IChQS0NTIzggZW5jcnlwdGVkIHYyIFBCS0RGMiBERVMgaG1hY1dpdGhTSEEzODQgREVSKQotZGVwZW5kc19vbjpNQkVEVExTX0RFU19DOk1CRURUTFNfTURfQ0FOX1NIQTM4NDpNQkVEVExTX1BLQ1M1X0M6TUJFRFRMU19DSVBIRVJfQzpNQkVEVExTX0NJUEhFUl9NT0RFX0NCQwotcGtfcGFyc2Vfa2V5ZmlsZV9yc2E6ImRhdGFfZmlsZXMvcnNhX3BrY3M4X3BiZXMyX3Bia2RmMl8xMDI0X2Rlc19zaGEzODQuZGVyIjoiUG9sYXJTU0xUZXN0IjowCitkZXBlbmRzX29uOk1CRURUTFNfREVTX0M6UFNBX1dBTlRfQUxHX1NIQV8zODQ6TUJFRFRMU19QS0NTNV9DOk1CRURUTFNfQ0lQSEVSX0M6TUJFRFRMU19DSVBIRVJfTU9ERV9DQkMKK3BrX3BhcnNlX2tleWZpbGVfcnNhOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9yc2FfcGtjczhfcGJlczJfcGJrZGYyXzEwMjRfZGVzX3NoYTM4NC5kZXIiOiJQb2xhclNTTFRlc3QiOjAKIAogUGFyc2UgUlNBIEtleSAjODQuMSAoUEtDUyM4IGVuY3J5cHRlZCB2MiBQQktERjIgREVTIGhtYWNXaXRoU0hBMzg0IERFUiwgd3JvbmcgUFcpCi1kZXBlbmRzX29uOk1CRURUTFNfREVTX0M6TUJFRFRMU19NRF9DQU5fU0hBMzg0Ok1CRURUTFNfUEtDUzVfQzpNQkVEVExTX0NJUEhFUl9DOk1CRURUTFNfQ0lQSEVSX01PREVfQ0JDOk1CRURUTFNfQ0lQSEVSX1BBRERJTkdfUEtDUzcKLXBrX3BhcnNlX2tleWZpbGVfcnNhOiJkYXRhX2ZpbGVzL3JzYV9wa2NzOF9wYmVzMl9wYmtkZjJfMTAyNF9kZXNfc2hhMzg0LmRlciI6IlBvbGFyU1NMVGVzIjpNQkVEVExTX0VSUl9QS19QQVNTV09SRF9NSVNNQVRDSAorZGVwZW5kc19vbjpNQkVEVExTX0RFU19DOlBTQV9XQU5UX0FMR19TSEFfMzg0Ok1CRURUTFNfUEtDUzVfQzpNQkVEVExTX0NJUEhFUl9DOk1CRURUTFNfQ0lQSEVSX01PREVfQ0JDOk1CRURUTFNfQ0lQSEVSX1BBRERJTkdfUEtDUzcKK3BrX3BhcnNlX2tleWZpbGVfcnNhOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9yc2FfcGtjczhfcGJlczJfcGJrZGYyXzEwMjRfZGVzX3NoYTM4NC5kZXIiOiJQb2xhclNTTFRlcyI6TUJFRFRMU19FUlJfUEtfUEFTU1dPUkRfTUlTTUFUQ0gKIAogUGFyc2UgUlNBIEtleSAjODUuMiAoUEtDUyM4IGVuY3J5cHRlZCB2MiBQQktERjIgREVTIGhtYWNXaXRoU0hBMzg0IERFUiwgbm8gUFcpCi1kZXBlbmRzX29uOk1CRURUTFNfREVTX0M6TUJFRFRMU19NRF9DQU5fU0hBMzg0Ok1CRURUTFNfUEtDUzVfQzpNQkVEVExTX0NJUEhFUl9DCi1wa19wYXJzZV9rZXlmaWxlX3JzYToiZGF0YV9maWxlcy9yc2FfcGtjczhfcGJlczJfcGJrZGYyXzEwMjRfZGVzX3NoYTM4NC5kZXIiOiIiOk1CRURUTFNfRVJSX1BLX0tFWV9JTlZBTElEX0ZPUk1BVAorZGVwZW5kc19vbjpNQkVEVExTX0RFU19DOlBTQV9XQU5UX0FMR19TSEFfMzg0Ok1CRURUTFNfUEtDUzVfQzpNQkVEVExTX0NJUEhFUl9DCitwa19wYXJzZV9rZXlmaWxlX3JzYToiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvcnNhX3BrY3M4X3BiZXMyX3Bia2RmMl8xMDI0X2Rlc19zaGEzODQuZGVyIjoiIjpNQkVEVExTX0VSUl9QS19LRVlfSU5WQUxJRF9GT1JNQVQKIAogUGFyc2UgUlNBIEtleSAjODYgKFBLQ1MjOCBlbmNyeXB0ZWQgdjIgUEJLREYyIERFUyBobWFjV2l0aFNIQTM4NCBERVIsIDIwNDgtYml0KQotZGVwZW5kc19vbjpNQkVEVExTX0RFU19DOk1CRURUTFNfTURfQ0FOX1NIQTM4NDpNQkVEVExTX1BLQ1M1X0M6TUJFRFRMU19DSVBIRVJfQzpNQkVEVExTX0NJUEhFUl9NT0RFX0NCQwotcGtfcGFyc2Vfa2V5ZmlsZV9yc2E6ImRhdGFfZmlsZXMvcnNhX3BrY3M4X3BiZXMyX3Bia2RmMl8yMDQ4X2Rlc19zaGEzODQuZGVyIjoiUG9sYXJTU0xUZXN0IjowCitkZXBlbmRzX29uOk1CRURUTFNfREVTX0M6UFNBX1dBTlRfQUxHX1NIQV8zODQ6TUJFRFRMU19QS0NTNV9DOk1CRURUTFNfQ0lQSEVSX0M6TUJFRFRMU19DSVBIRVJfTU9ERV9DQkMKK3BrX3BhcnNlX2tleWZpbGVfcnNhOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9yc2FfcGtjczhfcGJlczJfcGJrZGYyXzIwNDhfZGVzX3NoYTM4NC5kZXIiOiJQb2xhclNTTFRlc3QiOjAKIAogUGFyc2UgUlNBIEtleSAjODYuMSAoUEtDUyM4IGVuY3J5cHRlZCB2MiBQQktERjIgREVTIGhtYWNXaXRoU0hBMzg0IERFUiwgMjA0OC1iaXQsIHdyb25nIFBXKQotZGVwZW5kc19vbjpNQkVEVExTX0RFU19DOk1CRURUTFNfTURfQ0FOX1NIQTM4NDpNQkVEVExTX1BLQ1M1X0M6TUJFRFRMU19DSVBIRVJfQzpNQkVEVExTX0NJUEhFUl9NT0RFX0NCQzpNQkVEVExTX0NJUEhFUl9QQURESU5HX1BLQ1M3Ci1wa19wYXJzZV9rZXlmaWxlX3JzYToiZGF0YV9maWxlcy9yc2FfcGtjczhfcGJlczJfcGJrZGYyXzIwNDhfZGVzX3NoYTM4NC5kZXIiOiJQb2xhclNTTFRlcyI6TUJFRFRMU19FUlJfUEtfUEFTU1dPUkRfTUlTTUFUQ0gKK2RlcGVuZHNfb246TUJFRFRMU19ERVNfQzpQU0FfV0FOVF9BTEdfU0hBXzM4NDpNQkVEVExTX1BLQ1M1X0M6TUJFRFRMU19DSVBIRVJfQzpNQkVEVExTX0NJUEhFUl9NT0RFX0NCQzpNQkVEVExTX0NJUEhFUl9QQURESU5HX1BLQ1M3Citwa19wYXJzZV9rZXlmaWxlX3JzYToiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvcnNhX3BrY3M4X3BiZXMyX3Bia2RmMl8yMDQ4X2Rlc19zaGEzODQuZGVyIjoiUG9sYXJTU0xUZXMiOk1CRURUTFNfRVJSX1BLX1BBU1NXT1JEX01JU01BVENICiAKIFBhcnNlIFJTQSBLZXkgIzg2LjIgKFBLQ1MjOCBlbmNyeXB0ZWQgdjIgUEJLREYyIERFUyBobWFjV2l0aFNIQTM4NCBERVIsIDIwNDgtYml0LCBubyBQVykKLWRlcGVuZHNfb246TUJFRFRMU19ERVNfQzpNQkVEVExTX01EX0NBTl9TSEEzODQ6TUJFRFRMU19QS0NTNV9DOk1CRURUTFNfQ0lQSEVSX0MKLXBrX3BhcnNlX2tleWZpbGVfcnNhOiJkYXRhX2ZpbGVzL3JzYV9wa2NzOF9wYmVzMl9wYmtkZjJfMjA0OF9kZXNfc2hhMzg0LmRlciI6IiI6TUJFRFRMU19FUlJfUEtfS0VZX0lOVkFMSURfRk9STUFUCitkZXBlbmRzX29uOk1CRURUTFNfREVTX0M6UFNBX1dBTlRfQUxHX1NIQV8zODQ6TUJFRFRMU19QS0NTNV9DOk1CRURUTFNfQ0lQSEVSX0MKK3BrX3BhcnNlX2tleWZpbGVfcnNhOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9yc2FfcGtjczhfcGJlczJfcGJrZGYyXzIwNDhfZGVzX3NoYTM4NC5kZXIiOiIiOk1CRURUTFNfRVJSX1BLX0tFWV9JTlZBTElEX0ZPUk1BVAogCiBQYXJzZSBSU0EgS2V5ICM4NyAoUEtDUyM4IGVuY3J5cHRlZCB2MiBQQktERjIgREVTIGhtYWNXaXRoU0hBMzg0IERFUiwgNDA5Ni1iaXQpCi1kZXBlbmRzX29uOk1CRURUTFNfREVTX0M6TUJFRFRMU19NRF9DQU5fU0hBMzg0Ok1CRURUTFNfUEtDUzVfQzpNQkVEVExTX0NJUEhFUl9DOk1CRURUTFNfQ0lQSEVSX01PREVfQ0JDCi1wa19wYXJzZV9rZXlmaWxlX3JzYToiZGF0YV9maWxlcy9yc2FfcGtjczhfcGJlczJfcGJrZGYyXzQwOTZfZGVzX3NoYTM4NC5kZXIiOiJQb2xhclNTTFRlc3QiOjAKK2RlcGVuZHNfb246TUJFRFRMU19ERVNfQzpQU0FfV0FOVF9BTEdfU0hBXzM4NDpNQkVEVExTX1BLQ1M1X0M6TUJFRFRMU19DSVBIRVJfQzpNQkVEVExTX0NJUEhFUl9NT0RFX0NCQworcGtfcGFyc2Vfa2V5ZmlsZV9yc2E6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3JzYV9wa2NzOF9wYmVzMl9wYmtkZjJfNDA5Nl9kZXNfc2hhMzg0LmRlciI6IlBvbGFyU1NMVGVzdCI6MAogCiBQYXJzZSBSU0EgS2V5ICM4Ny4xIChQS0NTIzggZW5jcnlwdGVkIHYyIFBCS0RGMiBERVMgaG1hY1dpdGhTSEEzODQgREVSLCA0MDk2LWJpdCwgd3JvbmcgUFcpCi1kZXBlbmRzX29uOk1CRURUTFNfREVTX0M6TUJFRFRMU19NRF9DQU5fU0hBMzg0Ok1CRURUTFNfUEtDUzVfQzpNQkVEVExTX0NJUEhFUl9DOk1CRURUTFNfQ0lQSEVSX01PREVfQ0JDOk1CRURUTFNfQ0lQSEVSX1BBRERJTkdfUEtDUzcKLXBrX3BhcnNlX2tleWZpbGVfcnNhOiJkYXRhX2ZpbGVzL3JzYV9wa2NzOF9wYmVzMl9wYmtkZjJfNDA5Nl9kZXNfc2hhMzg0LmRlciI6IlBvbGFyU1NMVGVzIjpNQkVEVExTX0VSUl9QS19QQVNTV09SRF9NSVNNQVRDSAorZGVwZW5kc19vbjpNQkVEVExTX0RFU19DOlBTQV9XQU5UX0FMR19TSEFfMzg0Ok1CRURUTFNfUEtDUzVfQzpNQkVEVExTX0NJUEhFUl9DOk1CRURUTFNfQ0lQSEVSX01PREVfQ0JDOk1CRURUTFNfQ0lQSEVSX1BBRERJTkdfUEtDUzcKK3BrX3BhcnNlX2tleWZpbGVfcnNhOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9yc2FfcGtjczhfcGJlczJfcGJrZGYyXzQwOTZfZGVzX3NoYTM4NC5kZXIiOiJQb2xhclNTTFRlcyI6TUJFRFRMU19FUlJfUEtfUEFTU1dPUkRfTUlTTUFUQ0gKIAogUGFyc2UgUlNBIEtleSAjODcuMiAoUEtDUyM4IGVuY3J5cHRlZCB2MiBQQktERjIgREVTIGhtYWNXaXRoU0hBMzg0IERFUiwgNDA5Ni1iaXQsIG5vIFBXKQotZGVwZW5kc19vbjpNQkVEVExTX0RFU19DOk1CRURUTFNfTURfQ0FOX1NIQTM4NDpNQkVEVExTX1BLQ1M1X0M6TUJFRFRMU19DSVBIRVJfQwotcGtfcGFyc2Vfa2V5ZmlsZV9yc2E6ImRhdGFfZmlsZXMvcnNhX3BrY3M4X3BiZXMyX3Bia2RmMl80MDk2X2Rlc19zaGEzODQuZGVyIjoiIjpNQkVEVExTX0VSUl9QS19LRVlfSU5WQUxJRF9GT1JNQVQKK2RlcGVuZHNfb246TUJFRFRMU19ERVNfQzpQU0FfV0FOVF9BTEdfU0hBXzM4NDpNQkVEVExTX1BLQ1M1X0M6TUJFRFRMU19DSVBIRVJfQworcGtfcGFyc2Vfa2V5ZmlsZV9yc2E6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3JzYV9wa2NzOF9wYmVzMl9wYmtkZjJfNDA5Nl9kZXNfc2hhMzg0LmRlciI6IiI6TUJFRFRMU19FUlJfUEtfS0VZX0lOVkFMSURfRk9STUFUCiAKIFBhcnNlIFJTQSBLZXkgIzg4IChQS0NTIzggZW5jcnlwdGVkIHYyIFBCS0RGMiAzREVTIGhtYWNXaXRoU0hBNTEyKQogZGVwZW5kc19vbjpNQkVEVExTX0RFU19DOk1CRURUTFNfTURfQ0FOX1NIQTUxMjpNQkVEVExTX1BFTV9QQVJTRV9DOk1CRURUTFNfUEtDUzVfQzpNQkVEVExTX0NJUEhFUl9DOk1CRURUTFNfQ0lQSEVSX01PREVfQ0JDCi1wa19wYXJzZV9rZXlmaWxlX3JzYToiZGF0YV9maWxlcy9yc2FfcGtjczhfcGJlczJfcGJrZGYyXzEwMjRfM2Rlc19zaGE1MTIucGVtIjoiUG9sYXJTU0xUZXN0IjowCitwa19wYXJzZV9rZXlmaWxlX3JzYToiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvcnNhX3BrY3M4X3BiZXMyX3Bia2RmMl8xMDI0XzNkZXNfc2hhNTEyLnBlbSI6IlBvbGFyU1NMVGVzdCI6MAogCiBQYXJzZSBSU0EgS2V5ICM4OC4xIChQS0NTIzggZW5jcnlwdGVkIHYyIFBCS0RGMiAzREVTIGhtYWNXaXRoU0hBNTEyLCB3cm9uZyBQVykKIGRlcGVuZHNfb246TUJFRFRMU19ERVNfQzpNQkVEVExTX01EX0NBTl9TSEE1MTI6TUJFRFRMU19QRU1fUEFSU0VfQzpNQkVEVExTX1BLQ1M1X0M6TUJFRFRMU19DSVBIRVJfQzpNQkVEVExTX0NJUEhFUl9NT0RFX0NCQzpNQkVEVExTX0NJUEhFUl9QQURESU5HX1BLQ1M3Ci1wa19wYXJzZV9rZXlmaWxlX3JzYToiZGF0YV9maWxlcy9yc2FfcGtjczhfcGJlczJfcGJrZGYyXzEwMjRfM2Rlc19zaGE1MTIucGVtIjoiUG9sYXJTU0xUZXMiOk1CRURUTFNfRVJSX1BLX1BBU1NXT1JEX01JU01BVENICitwa19wYXJzZV9rZXlmaWxlX3JzYToiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvcnNhX3BrY3M4X3BiZXMyX3Bia2RmMl8xMDI0XzNkZXNfc2hhNTEyLnBlbSI6IlBvbGFyU1NMVGVzIjpNQkVEVExTX0VSUl9QS19QQVNTV09SRF9NSVNNQVRDSAogCiBQYXJzZSBSU0EgS2V5ICM4OC4yIChQS0NTIzggZW5jcnlwdGVkIHYyIFBCS0RGMiAzREVTIGhtYWNXaXRoU0hBNTEyLCBubyBQVykKIGRlcGVuZHNfb246TUJFRFRMU19ERVNfQzpNQkVEVExTX01EX0NBTl9TSEE1MTI6TUJFRFRMU19QRU1fUEFSU0VfQzpNQkVEVExTX1BLQ1M1X0M6TUJFRFRMU19DSVBIRVJfQwotcGtfcGFyc2Vfa2V5ZmlsZV9yc2E6ImRhdGFfZmlsZXMvcnNhX3BrY3M4X3BiZXMyX3Bia2RmMl8xMDI0XzNkZXNfc2hhNTEyLnBlbSI6IiI6TUJFRFRMU19FUlJfUEtfUEFTU1dPUkRfUkVRVUlSRUQKK3BrX3BhcnNlX2tleWZpbGVfcnNhOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9yc2FfcGtjczhfcGJlczJfcGJrZGYyXzEwMjRfM2Rlc19zaGE1MTIucGVtIjoiIjpNQkVEVExTX0VSUl9QS19QQVNTV09SRF9SRVFVSVJFRAogCiBQYXJzZSBSU0EgS2V5ICM4OSAoUEtDUyM4IGVuY3J5cHRlZCB2MiBQQktERjIgM0RFUyBobWFjV2l0aFNIQTUxMiwgMjA0OC1iaXQpCiBkZXBlbmRzX29uOk1CRURUTFNfREVTX0M6TUJFRFRMU19NRF9DQU5fU0hBNTEyOk1CRURUTFNfUEVNX1BBUlNFX0M6TUJFRFRMU19QS0NTNV9DOk1CRURUTFNfQ0lQSEVSX0M6TUJFRFRMU19DSVBIRVJfTU9ERV9DQkMKLXBrX3BhcnNlX2tleWZpbGVfcnNhOiJkYXRhX2ZpbGVzL3JzYV9wa2NzOF9wYmVzMl9wYmtkZjJfMjA0OF8zZGVzX3NoYTUxMi5wZW0iOiJQb2xhclNTTFRlc3QiOjAKK3BrX3BhcnNlX2tleWZpbGVfcnNhOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9yc2FfcGtjczhfcGJlczJfcGJrZGYyXzIwNDhfM2Rlc19zaGE1MTIucGVtIjoiUG9sYXJTU0xUZXN0IjowCiAKIFBhcnNlIFJTQSBLZXkgIzg5LjEgKFBLQ1MjOCBlbmNyeXB0ZWQgdjIgUEJLREYyIDNERVMgaG1hY1dpdGhTSEE1MTIsIDIwNDgtYml0LCB3cm9uZyBQVykKIGRlcGVuZHNfb246TUJFRFRMU19ERVNfQzpNQkVEVExTX01EX0NBTl9TSEE1MTI6TUJFRFRMU19QRU1fUEFSU0VfQzpNQkVEVExTX1BLQ1M1X0M6TUJFRFRMU19DSVBIRVJfQzpNQkVEVExTX0NJUEhFUl9NT0RFX0NCQzpNQkVEVExTX0NJUEhFUl9QQURESU5HX1BLQ1M3Ci1wa19wYXJzZV9rZXlmaWxlX3JzYToiZGF0YV9maWxlcy9yc2FfcGtjczhfcGJlczJfcGJrZGYyXzIwNDhfM2Rlc19zaGE1MTIucGVtIjoiUG9sYXJTU0xUZXMiOk1CRURUTFNfRVJSX1BLX1BBU1NXT1JEX01JU01BVENICitwa19wYXJzZV9rZXlmaWxlX3JzYToiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvcnNhX3BrY3M4X3BiZXMyX3Bia2RmMl8yMDQ4XzNkZXNfc2hhNTEyLnBlbSI6IlBvbGFyU1NMVGVzIjpNQkVEVExTX0VSUl9QS19QQVNTV09SRF9NSVNNQVRDSAogCiBQYXJzZSBSU0EgS2V5ICM4OS4yIChQS0NTIzggZW5jcnlwdGVkIHYyIFBCS0RGMiAzREVTIGhtYWNXaXRoU0hBNTEyLCAyMDQ4LWJpdCwgbm8gUFcpCiBkZXBlbmRzX29uOk1CRURUTFNfREVTX0M6TUJFRFRMU19NRF9DQU5fU0hBNTEyOk1CRURUTFNfUEVNX1BBUlNFX0M6TUJFRFRMU19QS0NTNV9DOk1CRURUTFNfQ0lQSEVSX0MKLXBrX3BhcnNlX2tleWZpbGVfcnNhOiJkYXRhX2ZpbGVzL3JzYV9wa2NzOF9wYmVzMl9wYmtkZjJfMjA0OF8zZGVzX3NoYTUxMi5wZW0iOiIiOk1CRURUTFNfRVJSX1BLX1BBU1NXT1JEX1JFUVVJUkVECitwa19wYXJzZV9rZXlmaWxlX3JzYToiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvcnNhX3BrY3M4X3BiZXMyX3Bia2RmMl8yMDQ4XzNkZXNfc2hhNTEyLnBlbSI6IiI6TUJFRFRMU19FUlJfUEtfUEFTU1dPUkRfUkVRVUlSRUQKIAogUGFyc2UgUlNBIEtleSAjOTAgKFBLQ1MjOCBlbmNyeXB0ZWQgdjIgUEJLREYyIDNERVMgaG1hY1dpdGhTSEE1MTIsIDQwOTYtYml0KQogZGVwZW5kc19vbjpNQkVEVExTX0RFU19DOk1CRURUTFNfTURfQ0FOX1NIQTUxMjpNQkVEVExTX1BFTV9QQVJTRV9DOk1CRURUTFNfUEtDUzVfQzpNQkVEVExTX0NJUEhFUl9DOk1CRURUTFNfQ0lQSEVSX01PREVfQ0JDCi1wa19wYXJzZV9rZXlmaWxlX3JzYToiZGF0YV9maWxlcy9yc2FfcGtjczhfcGJlczJfcGJrZGYyXzQwOTZfM2Rlc19zaGE1MTIucGVtIjoiUG9sYXJTU0xUZXN0IjowCitwa19wYXJzZV9rZXlmaWxlX3JzYToiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvcnNhX3BrY3M4X3BiZXMyX3Bia2RmMl80MDk2XzNkZXNfc2hhNTEyLnBlbSI6IlBvbGFyU1NMVGVzdCI6MAogCiBQYXJzZSBSU0EgS2V5ICM5MC4xIChQS0NTIzggZW5jcnlwdGVkIHYyIFBCS0RGMiAzREVTIGhtYWNXaXRoU0hBNTEyLCA0MDk2LWJpdCwgd3JvbmcgUFcpCiBkZXBlbmRzX29uOk1CRURUTFNfREVTX0M6TUJFRFRMU19NRF9DQU5fU0hBNTEyOk1CRURUTFNfUEVNX1BBUlNFX0M6TUJFRFRMU19QS0NTNV9DOk1CRURUTFNfQ0lQSEVSX0M6TUJFRFRMU19DSVBIRVJfTU9ERV9DQkM6TUJFRFRMU19DSVBIRVJfUEFERElOR19QS0NTNwotcGtfcGFyc2Vfa2V5ZmlsZV9yc2E6ImRhdGFfZmlsZXMvcnNhX3BrY3M4X3BiZXMyX3Bia2RmMl80MDk2XzNkZXNfc2hhNTEyLnBlbSI6IlBvbGFyU1NMVGVzIjpNQkVEVExTX0VSUl9QS19QQVNTV09SRF9NSVNNQVRDSAorcGtfcGFyc2Vfa2V5ZmlsZV9yc2E6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3JzYV9wa2NzOF9wYmVzMl9wYmtkZjJfNDA5Nl8zZGVzX3NoYTUxMi5wZW0iOiJQb2xhclNTTFRlcyI6TUJFRFRMU19FUlJfUEtfUEFTU1dPUkRfTUlTTUFUQ0gKIAogUGFyc2UgUlNBIEtleSAjOTAuMiAoUEtDUyM4IGVuY3J5cHRlZCB2MiBQQktERjIgM0RFUyBobWFjV2l0aFNIQTUxMiwgNDA5Ni1iaXQsIG5vIFBXKQogZGVwZW5kc19vbjpNQkVEVExTX0RFU19DOk1CRURUTFNfTURfQ0FOX1NIQTUxMjpNQkVEVExTX1BFTV9QQVJTRV9DOk1CRURUTFNfUEtDUzVfQzpNQkVEVExTX0NJUEhFUl9DCi1wa19wYXJzZV9rZXlmaWxlX3JzYToiZGF0YV9maWxlcy9yc2FfcGtjczhfcGJlczJfcGJrZGYyXzQwOTZfM2Rlc19zaGE1MTIucGVtIjoiIjpNQkVEVExTX0VSUl9QS19QQVNTV09SRF9SRVFVSVJFRAorcGtfcGFyc2Vfa2V5ZmlsZV9yc2E6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3JzYV9wa2NzOF9wYmVzMl9wYmtkZjJfNDA5Nl8zZGVzX3NoYTUxMi5wZW0iOiIiOk1CRURUTFNfRVJSX1BLX1BBU1NXT1JEX1JFUVVJUkVECiAKIFBhcnNlIFJTQSBLZXkgIzkxIChQS0NTIzggZW5jcnlwdGVkIHYyIFBCS0RGMiAzREVTIGhtYWNXaXRoU0hBNTEyIERFUikKIGRlcGVuZHNfb246TUJFRFRMU19ERVNfQzpNQkVEVExTX01EX0NBTl9TSEE1MTI6TUJFRFRMU19QS0NTNV9DOk1CRURUTFNfQ0lQSEVSX0M6TUJFRFRMU19DSVBIRVJfTU9ERV9DQkMKLXBrX3BhcnNlX2tleWZpbGVfcnNhOiJkYXRhX2ZpbGVzL3JzYV9wa2NzOF9wYmVzMl9wYmtkZjJfMTAyNF8zZGVzX3NoYTUxMi5kZXIiOiJQb2xhclNTTFRlc3QiOjAKK3BrX3BhcnNlX2tleWZpbGVfcnNhOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9yc2FfcGtjczhfcGJlczJfcGJrZGYyXzEwMjRfM2Rlc19zaGE1MTIuZGVyIjoiUG9sYXJTU0xUZXN0IjowCiAKIFBhcnNlIFJTQSBLZXkgIzkxLjEgKFBLQ1MjOCBlbmNyeXB0ZWQgdjIgUEJLREYyIDNERVMgaG1hY1dpdGhTSEE1MTIgREVSLCB3cm9uZyBQVykKIGRlcGVuZHNfb246TUJFRFRMU19ERVNfQzpNQkVEVExTX01EX0NBTl9TSEE1MTI6TUJFRFRMU19QS0NTNV9DOk1CRURUTFNfQ0lQSEVSX0M6TUJFRFRMU19DSVBIRVJfTU9ERV9DQkM6TUJFRFRMU19DSVBIRVJfUEFERElOR19QS0NTNwotcGtfcGFyc2Vfa2V5ZmlsZV9yc2E6ImRhdGFfZmlsZXMvcnNhX3BrY3M4X3BiZXMyX3Bia2RmMl8xMDI0XzNkZXNfc2hhNTEyLmRlciI6IlBvbGFyU1NMVGVzIjpNQkVEVExTX0VSUl9QS19QQVNTV09SRF9NSVNNQVRDSAorcGtfcGFyc2Vfa2V5ZmlsZV9yc2E6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3JzYV9wa2NzOF9wYmVzMl9wYmtkZjJfMTAyNF8zZGVzX3NoYTUxMi5kZXIiOiJQb2xhclNTTFRlcyI6TUJFRFRMU19FUlJfUEtfUEFTU1dPUkRfTUlTTUFUQ0gKIAogUGFyc2UgUlNBIEtleSAjOTEuMiAoUEtDUyM4IGVuY3J5cHRlZCB2MiBQQktERjIgM0RFUyBobWFjV2l0aFNIQTUxMiBERVIsIG5vIFBXKQogZGVwZW5kc19vbjpNQkVEVExTX0RFU19DOk1CRURUTFNfTURfQ0FOX1NIQTUxMjpNQkVEVExTX1BLQ1M1X0M6TUJFRFRMU19DSVBIRVJfQwotcGtfcGFyc2Vfa2V5ZmlsZV9yc2E6ImRhdGFfZmlsZXMvcnNhX3BrY3M4X3BiZXMyX3Bia2RmMl8xMDI0XzNkZXNfc2hhNTEyLmRlciI6IiI6TUJFRFRMU19FUlJfUEtfS0VZX0lOVkFMSURfRk9STUFUCitwa19wYXJzZV9rZXlmaWxlX3JzYToiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvcnNhX3BrY3M4X3BiZXMyX3Bia2RmMl8xMDI0XzNkZXNfc2hhNTEyLmRlciI6IiI6TUJFRFRMU19FUlJfUEtfS0VZX0lOVkFMSURfRk9STUFUCiAKIFBhcnNlIFJTQSBLZXkgIzkyIChQS0NTIzggZW5jcnlwdGVkIHYyIFBCS0RGMiAzREVTIGhtYWNXaXRoU0hBNTEyIERFUiwgMjA0OC1iaXQpCiBkZXBlbmRzX29uOk1CRURUTFNfREVTX0M6TUJFRFRMU19NRF9DQU5fU0hBNTEyOk1CRURUTFNfUEtDUzVfQzpNQkVEVExTX0NJUEhFUl9DOk1CRURUTFNfQ0lQSEVSX01PREVfQ0JDCi1wa19wYXJzZV9rZXlmaWxlX3JzYToiZGF0YV9maWxlcy9yc2FfcGtjczhfcGJlczJfcGJrZGYyXzIwNDhfM2Rlc19zaGE1MTIuZGVyIjoiUG9sYXJTU0xUZXN0IjowCitwa19wYXJzZV9rZXlmaWxlX3JzYToiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvcnNhX3BrY3M4X3BiZXMyX3Bia2RmMl8yMDQ4XzNkZXNfc2hhNTEyLmRlciI6IlBvbGFyU1NMVGVzdCI6MAogCiBQYXJzZSBSU0EgS2V5ICM5Mi4xIChQS0NTIzggZW5jcnlwdGVkIHYyIFBCS0RGMiAzREVTIGhtYWNXaXRoU0hBNTEyIERFUiwgMjA0OC1iaXQsIHdyb25nIFBXKQogZGVwZW5kc19vbjpNQkVEVExTX0RFU19DOk1CRURUTFNfTURfQ0FOX1NIQTUxMjpNQkVEVExTX1BLQ1M1X0M6TUJFRFRMU19DSVBIRVJfQzpNQkVEVExTX0NJUEhFUl9NT0RFX0NCQzpNQkVEVExTX0NJUEhFUl9QQURESU5HX1BLQ1M3Ci1wa19wYXJzZV9rZXlmaWxlX3JzYToiZGF0YV9maWxlcy9yc2FfcGtjczhfcGJlczJfcGJrZGYyXzIwNDhfM2Rlc19zaGE1MTIuZGVyIjoiUG9sYXJTU0xUZXMiOk1CRURUTFNfRVJSX1BLX1BBU1NXT1JEX01JU01BVENICitwa19wYXJzZV9rZXlmaWxlX3JzYToiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvcnNhX3BrY3M4X3BiZXMyX3Bia2RmMl8yMDQ4XzNkZXNfc2hhNTEyLmRlciI6IlBvbGFyU1NMVGVzIjpNQkVEVExTX0VSUl9QS19QQVNTV09SRF9NSVNNQVRDSAogCiBQYXJzZSBSU0EgS2V5ICM5Mi4yIChQS0NTIzggZW5jcnlwdGVkIHYyIFBCS0RGMiAzREVTIGhtYWNXaXRoU0hBNTEyIERFUiwgMjA0OC1iaXQsIG5vIFBXKQogZGVwZW5kc19vbjpNQkVEVExTX0RFU19DOk1CRURUTFNfTURfQ0FOX1NIQTUxMjpNQkVEVExTX1BLQ1M1X0M6TUJFRFRMU19DSVBIRVJfQwotcGtfcGFyc2Vfa2V5ZmlsZV9yc2E6ImRhdGFfZmlsZXMvcnNhX3BrY3M4X3BiZXMyX3Bia2RmMl8yMDQ4XzNkZXNfc2hhNTEyLmRlciI6IiI6TUJFRFRMU19FUlJfUEtfS0VZX0lOVkFMSURfRk9STUFUCitwa19wYXJzZV9rZXlmaWxlX3JzYToiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvcnNhX3BrY3M4X3BiZXMyX3Bia2RmMl8yMDQ4XzNkZXNfc2hhNTEyLmRlciI6IiI6TUJFRFRMU19FUlJfUEtfS0VZX0lOVkFMSURfRk9STUFUCiAKIFBhcnNlIFJTQSBLZXkgIzkzIChQS0NTIzggZW5jcnlwdGVkIHYyIFBCS0RGMiAzREVTIGhtYWNXaXRoU0hBNTEyIERFUiwgNDA5Ni1iaXQpCiBkZXBlbmRzX29uOk1CRURUTFNfREVTX0M6TUJFRFRMU19NRF9DQU5fU0hBNTEyOk1CRURUTFNfUEtDUzVfQzpNQkVEVExTX0NJUEhFUl9DOk1CRURUTFNfQ0lQSEVSX01PREVfQ0JDCi1wa19wYXJzZV9rZXlmaWxlX3JzYToiZGF0YV9maWxlcy9yc2FfcGtjczhfcGJlczJfcGJrZGYyXzQwOTZfM2Rlc19zaGE1MTIuZGVyIjoiUG9sYXJTU0xUZXN0IjowCitwa19wYXJzZV9rZXlmaWxlX3JzYToiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvcnNhX3BrY3M4X3BiZXMyX3Bia2RmMl80MDk2XzNkZXNfc2hhNTEyLmRlciI6IlBvbGFyU1NMVGVzdCI6MAogCiBQYXJzZSBSU0EgS2V5ICM5My4xIChQS0NTIzggZW5jcnlwdGVkIHYyIFBCS0RGMiAzREVTIGhtYWNXaXRoU0hBNTEyIERFUiwgNDA5Ni1iaXQsIHdyb25nIFBXKQogZGVwZW5kc19vbjpNQkVEVExTX0RFU19DOk1CRURUTFNfTURfQ0FOX1NIQTUxMjpNQkVEVExTX1BLQ1M1X0M6TUJFRFRMU19DSVBIRVJfQzpNQkVEVExTX0NJUEhFUl9NT0RFX0NCQzpNQkVEVExTX0NJUEhFUl9QQURESU5HX1BLQ1M3Ci1wa19wYXJzZV9rZXlmaWxlX3JzYToiZGF0YV9maWxlcy9yc2FfcGtjczhfcGJlczJfcGJrZGYyXzQwOTZfM2Rlc19zaGE1MTIuZGVyIjoiUG9sYXJTU0xUZXMiOk1CRURUTFNfRVJSX1BLX1BBU1NXT1JEX01JU01BVENICitwa19wYXJzZV9rZXlmaWxlX3JzYToiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvcnNhX3BrY3M4X3BiZXMyX3Bia2RmMl80MDk2XzNkZXNfc2hhNTEyLmRlciI6IlBvbGFyU1NMVGVzIjpNQkVEVExTX0VSUl9QS19QQVNTV09SRF9NSVNNQVRDSAogCiBQYXJzZSBSU0EgS2V5ICM5My4yIChQS0NTIzggZW5jcnlwdGVkIHYyIFBCS0RGMiAzREVTIGhtYWNXaXRoU0hBNTEyIERFUiwgNDA5Ni1iaXQsIG5vIFBXKQogZGVwZW5kc19vbjpNQkVEVExTX0RFU19DOk1CRURUTFNfTURfQ0FOX1NIQTUxMjpNQkVEVExTX1BLQ1M1X0M6TUJFRFRMU19DSVBIRVJfQwotcGtfcGFyc2Vfa2V5ZmlsZV9yc2E6ImRhdGFfZmlsZXMvcnNhX3BrY3M4X3BiZXMyX3Bia2RmMl80MDk2XzNkZXNfc2hhNTEyLmRlciI6IiI6TUJFRFRMU19FUlJfUEtfS0VZX0lOVkFMSURfRk9STUFUCitwa19wYXJzZV9rZXlmaWxlX3JzYToiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvcnNhX3BrY3M4X3BiZXMyX3Bia2RmMl80MDk2XzNkZXNfc2hhNTEyLmRlciI6IiI6TUJFRFRMU19FUlJfUEtfS0VZX0lOVkFMSURfRk9STUFUCiAKIFBhcnNlIFJTQSBLZXkgIzk0IChQS0NTIzggZW5jcnlwdGVkIHYyIFBCS0RGMiBERVMgaG1hY1dpdGhTSEE1MTIpCiBkZXBlbmRzX29uOk1CRURUTFNfREVTX0M6TUJFRFRMU19NRF9DQU5fU0hBNTEyOk1CRURUTFNfUEVNX1BBUlNFX0M6TUJFRFRMU19QS0NTNV9DOk1CRURUTFNfQ0lQSEVSX0M6TUJFRFRMU19DSVBIRVJfTU9ERV9DQkMKLXBrX3BhcnNlX2tleWZpbGVfcnNhOiJkYXRhX2ZpbGVzL3JzYV9wa2NzOF9wYmVzMl9wYmtkZjJfMTAyNF9kZXNfc2hhNTEyLnBlbSI6IlBvbGFyU1NMVGVzdCI6MAorcGtfcGFyc2Vfa2V5ZmlsZV9yc2E6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3JzYV9wa2NzOF9wYmVzMl9wYmtkZjJfMTAyNF9kZXNfc2hhNTEyLnBlbSI6IlBvbGFyU1NMVGVzdCI6MAogCiBQYXJzZSBSU0EgS2V5ICM5NC4xIChQS0NTIzggZW5jcnlwdGVkIHYyIFBCS0RGMiBERVMgaG1hY1dpdGhTSEE1MTIsIHdyb25nIFBXKQogZGVwZW5kc19vbjpNQkVEVExTX0RFU19DOk1CRURUTFNfTURfQ0FOX1NIQTUxMjpNQkVEVExTX1BFTV9QQVJTRV9DOk1CRURUTFNfUEtDUzVfQzpNQkVEVExTX0NJUEhFUl9DOk1CRURUTFNfQ0lQSEVSX01PREVfQ0JDOk1CRURUTFNfQ0lQSEVSX1BBRERJTkdfUEtDUzcKLXBrX3BhcnNlX2tleWZpbGVfcnNhOiJkYXRhX2ZpbGVzL3JzYV9wa2NzOF9wYmVzMl9wYmtkZjJfMTAyNF9kZXNfc2hhNTEyLnBlbSI6IlBvbGFyU1NMVGVzIjpNQkVEVExTX0VSUl9QS19QQVNTV09SRF9NSVNNQVRDSAorcGtfcGFyc2Vfa2V5ZmlsZV9yc2E6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3JzYV9wa2NzOF9wYmVzMl9wYmtkZjJfMTAyNF9kZXNfc2hhNTEyLnBlbSI6IlBvbGFyU1NMVGVzIjpNQkVEVExTX0VSUl9QS19QQVNTV09SRF9NSVNNQVRDSAogCiBQYXJzZSBSU0EgS2V5ICM5NC4yIChQS0NTIzggZW5jcnlwdGVkIHYyIFBCS0RGMiBERVMgaG1hY1dpdGhTSEE1MTIsIG5vIFBXKQogZGVwZW5kc19vbjpNQkVEVExTX0RFU19DOk1CRURUTFNfTURfQ0FOX1NIQTUxMjpNQkVEVExTX1BFTV9QQVJTRV9DOk1CRURUTFNfUEtDUzVfQzpNQkVEVExTX0NJUEhFUl9DCi1wa19wYXJzZV9rZXlmaWxlX3JzYToiZGF0YV9maWxlcy9yc2FfcGtjczhfcGJlczJfcGJrZGYyXzEwMjRfZGVzX3NoYTUxMi5wZW0iOiIiOk1CRURUTFNfRVJSX1BLX1BBU1NXT1JEX1JFUVVJUkVECitwa19wYXJzZV9rZXlmaWxlX3JzYToiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvcnNhX3BrY3M4X3BiZXMyX3Bia2RmMl8xMDI0X2Rlc19zaGE1MTIucGVtIjoiIjpNQkVEVExTX0VSUl9QS19QQVNTV09SRF9SRVFVSVJFRAogCiBQYXJzZSBSU0EgS2V5ICM5NSAoUEtDUyM4IGVuY3J5cHRlZCB2MiBQQktERjIgREVTIGhtYWNXaXRoU0hBNTEyLCAyMDQ4LWJpdCkKIGRlcGVuZHNfb246TUJFRFRMU19ERVNfQzpNQkVEVExTX01EX0NBTl9TSEE1MTI6TUJFRFRMU19QRU1fUEFSU0VfQzpNQkVEVExTX1BLQ1M1X0M6TUJFRFRMU19DSVBIRVJfQzpNQkVEVExTX0NJUEhFUl9NT0RFX0NCQwotcGtfcGFyc2Vfa2V5ZmlsZV9yc2E6ImRhdGFfZmlsZXMvcnNhX3BrY3M4X3BiZXMyX3Bia2RmMl8yMDQ4X2Rlc19zaGE1MTIucGVtIjoiUG9sYXJTU0xUZXN0IjowCitwa19wYXJzZV9rZXlmaWxlX3JzYToiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvcnNhX3BrY3M4X3BiZXMyX3Bia2RmMl8yMDQ4X2Rlc19zaGE1MTIucGVtIjoiUG9sYXJTU0xUZXN0IjowCiAKIFBhcnNlIFJTQSBLZXkgIzk1LjEgKFBLQ1MjOCBlbmNyeXB0ZWQgdjIgUEJLREYyIERFUyBobWFjV2l0aFNIQTUxMiwgMjA0OC1iaXQsIHdyb25nIFBXKQogZGVwZW5kc19vbjpNQkVEVExTX0RFU19DOk1CRURUTFNfTURfQ0FOX1NIQTUxMjpNQkVEVExTX1BFTV9QQVJTRV9DOk1CRURUTFNfUEtDUzVfQzpNQkVEVExTX0NJUEhFUl9DOk1CRURUTFNfQ0lQSEVSX01PREVfQ0JDOk1CRURUTFNfQ0lQSEVSX1BBRERJTkdfUEtDUzcKLXBrX3BhcnNlX2tleWZpbGVfcnNhOiJkYXRhX2ZpbGVzL3JzYV9wa2NzOF9wYmVzMl9wYmtkZjJfMjA0OF9kZXNfc2hhNTEyLnBlbSI6IlBvbGFyU1NMVGVzIjpNQkVEVExTX0VSUl9QS19QQVNTV09SRF9NSVNNQVRDSAorcGtfcGFyc2Vfa2V5ZmlsZV9yc2E6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3JzYV9wa2NzOF9wYmVzMl9wYmtkZjJfMjA0OF9kZXNfc2hhNTEyLnBlbSI6IlBvbGFyU1NMVGVzIjpNQkVEVExTX0VSUl9QS19QQVNTV09SRF9NSVNNQVRDSAogCiBQYXJzZSBSU0EgS2V5ICM5NS4yIChQS0NTIzggZW5jcnlwdGVkIHYyIFBCS0RGMiBERVMgaG1hY1dpdGhTSEE1MTIsIDIwNDgtYml0LCBubyBQVykKIGRlcGVuZHNfb246TUJFRFRMU19ERVNfQzpNQkVEVExTX01EX0NBTl9TSEE1MTI6TUJFRFRMU19QRU1fUEFSU0VfQzpNQkVEVExTX1BLQ1M1X0M6TUJFRFRMU19DSVBIRVJfQwotcGtfcGFyc2Vfa2V5ZmlsZV9yc2E6ImRhdGFfZmlsZXMvcnNhX3BrY3M4X3BiZXMyX3Bia2RmMl8yMDQ4X2Rlc19zaGE1MTIucGVtIjoiIjpNQkVEVExTX0VSUl9QS19QQVNTV09SRF9SRVFVSVJFRAorcGtfcGFyc2Vfa2V5ZmlsZV9yc2E6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3JzYV9wa2NzOF9wYmVzMl9wYmtkZjJfMjA0OF9kZXNfc2hhNTEyLnBlbSI6IiI6TUJFRFRMU19FUlJfUEtfUEFTU1dPUkRfUkVRVUlSRUQKIAogUGFyc2UgUlNBIEtleSAjOTYgKFBLQ1MjOCBlbmNyeXB0ZWQgdjIgUEJLREYyIERFUyBobWFjV2l0aFNIQTUxMiwgNDA5Ni1iaXQpCiBkZXBlbmRzX29uOk1CRURUTFNfREVTX0M6TUJFRFRMU19NRF9DQU5fU0hBNTEyOk1CRURUTFNfUEVNX1BBUlNFX0M6TUJFRFRMU19QS0NTNV9DOk1CRURUTFNfQ0lQSEVSX0M6TUJFRFRMU19DSVBIRVJfTU9ERV9DQkMKLXBrX3BhcnNlX2tleWZpbGVfcnNhOiJkYXRhX2ZpbGVzL3JzYV9wa2NzOF9wYmVzMl9wYmtkZjJfNDA5Nl9kZXNfc2hhNTEyLnBlbSI6IlBvbGFyU1NMVGVzdCI6MAorcGtfcGFyc2Vfa2V5ZmlsZV9yc2E6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3JzYV9wa2NzOF9wYmVzMl9wYmtkZjJfNDA5Nl9kZXNfc2hhNTEyLnBlbSI6IlBvbGFyU1NMVGVzdCI6MAogCiBQYXJzZSBSU0EgS2V5ICM5Ni4xIChQS0NTIzggZW5jcnlwdGVkIHYyIFBCS0RGMiBERVMgaG1hY1dpdGhTSEE1MTIsIDQwOTYtYml0LCB3cm9uZyBQVykKIGRlcGVuZHNfb246TUJFRFRMU19ERVNfQzpNQkVEVExTX01EX0NBTl9TSEE1MTI6TUJFRFRMU19QRU1fUEFSU0VfQzpNQkVEVExTX1BLQ1M1X0M6TUJFRFRMU19DSVBIRVJfQzpNQkVEVExTX0NJUEhFUl9NT0RFX0NCQzpNQkVEVExTX0NJUEhFUl9QQURESU5HX1BLQ1M3Ci1wa19wYXJzZV9rZXlmaWxlX3JzYToiZGF0YV9maWxlcy9yc2FfcGtjczhfcGJlczJfcGJrZGYyXzQwOTZfZGVzX3NoYTUxMi5wZW0iOiJQb2xhclNTTFRlcyI6TUJFRFRMU19FUlJfUEtfUEFTU1dPUkRfTUlTTUFUQ0gKK3BrX3BhcnNlX2tleWZpbGVfcnNhOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9yc2FfcGtjczhfcGJlczJfcGJrZGYyXzQwOTZfZGVzX3NoYTUxMi5wZW0iOiJQb2xhclNTTFRlcyI6TUJFRFRMU19FUlJfUEtfUEFTU1dPUkRfTUlTTUFUQ0gKIAogUGFyc2UgUlNBIEtleSAjOTYuMiAoUEtDUyM4IGVuY3J5cHRlZCB2MiBQQktERjIgREVTIGhtYWNXaXRoU0hBNTEyLCA0MDk2LWJpdCwgbm8gUFcpCiBkZXBlbmRzX29uOk1CRURUTFNfREVTX0M6TUJFRFRMU19NRF9DQU5fU0hBNTEyOk1CRURUTFNfUEVNX1BBUlNFX0M6TUJFRFRMU19QS0NTNV9DOk1CRURUTFNfQ0lQSEVSX0MKLXBrX3BhcnNlX2tleWZpbGVfcnNhOiJkYXRhX2ZpbGVzL3JzYV9wa2NzOF9wYmVzMl9wYmtkZjJfNDA5Nl9kZXNfc2hhNTEyLnBlbSI6IiI6TUJFRFRMU19FUlJfUEtfUEFTU1dPUkRfUkVRVUlSRUQKK3BrX3BhcnNlX2tleWZpbGVfcnNhOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9yc2FfcGtjczhfcGJlczJfcGJrZGYyXzQwOTZfZGVzX3NoYTUxMi5wZW0iOiIiOk1CRURUTFNfRVJSX1BLX1BBU1NXT1JEX1JFUVVJUkVECiAKIFBhcnNlIFJTQSBLZXkgIzk3IChQS0NTIzggZW5jcnlwdGVkIHYyIFBCS0RGMiBERVMgaG1hY1dpdGhTSEE1MTIgREVSKQogZGVwZW5kc19vbjpNQkVEVExTX0RFU19DOk1CRURUTFNfTURfQ0FOX1NIQTUxMjpNQkVEVExTX1BLQ1M1X0M6TUJFRFRMU19DSVBIRVJfQzpNQkVEVExTX0NJUEhFUl9NT0RFX0NCQwotcGtfcGFyc2Vfa2V5ZmlsZV9yc2E6ImRhdGFfZmlsZXMvcnNhX3BrY3M4X3BiZXMyX3Bia2RmMl8xMDI0X2Rlc19zaGE1MTIuZGVyIjoiUG9sYXJTU0xUZXN0IjowCitwa19wYXJzZV9rZXlmaWxlX3JzYToiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvcnNhX3BrY3M4X3BiZXMyX3Bia2RmMl8xMDI0X2Rlc19zaGE1MTIuZGVyIjoiUG9sYXJTU0xUZXN0IjowCiAKIFBhcnNlIFJTQSBLZXkgIzk3LjEgKFBLQ1MjOCBlbmNyeXB0ZWQgdjIgUEJLREYyIERFUyBobWFjV2l0aFNIQTUxMiBERVIsIHdyb25nIFBXKQogZGVwZW5kc19vbjpNQkVEVExTX0RFU19DOk1CRURUTFNfTURfQ0FOX1NIQTUxMjpNQkVEVExTX1BLQ1M1X0M6TUJFRFRMU19DSVBIRVJfQzpNQkVEVExTX0NJUEhFUl9NT0RFX0NCQzpNQkVEVExTX0NJUEhFUl9QQURESU5HX1BLQ1M3Ci1wa19wYXJzZV9rZXlmaWxlX3JzYToiZGF0YV9maWxlcy9yc2FfcGtjczhfcGJlczJfcGJrZGYyXzEwMjRfZGVzX3NoYTUxMi5kZXIiOiJQb2xhclNTTFRlcyI6TUJFRFRMU19FUlJfUEtfUEFTU1dPUkRfTUlTTUFUQ0gKK3BrX3BhcnNlX2tleWZpbGVfcnNhOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9yc2FfcGtjczhfcGJlczJfcGJrZGYyXzEwMjRfZGVzX3NoYTUxMi5kZXIiOiJQb2xhclNTTFRlcyI6TUJFRFRMU19FUlJfUEtfUEFTU1dPUkRfTUlTTUFUQ0gKIAogUGFyc2UgUlNBIEtleSAjOTcuMiAoUEtDUyM4IGVuY3J5cHRlZCB2MiBQQktERjIgREVTIGhtYWNXaXRoU0hBNTEyIERFUiwgbm8gUFcpCiBkZXBlbmRzX29uOk1CRURUTFNfREVTX0M6TUJFRFRMU19NRF9DQU5fU0hBNTEyOk1CRURUTFNfUEtDUzVfQzpNQkVEVExTX0NJUEhFUl9DCi1wa19wYXJzZV9rZXlmaWxlX3JzYToiZGF0YV9maWxlcy9yc2FfcGtjczhfcGJlczJfcGJrZGYyXzEwMjRfZGVzX3NoYTUxMi5kZXIiOiIiOk1CRURUTFNfRVJSX1BLX0tFWV9JTlZBTElEX0ZPUk1BVAorcGtfcGFyc2Vfa2V5ZmlsZV9yc2E6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3JzYV9wa2NzOF9wYmVzMl9wYmtkZjJfMTAyNF9kZXNfc2hhNTEyLmRlciI6IiI6TUJFRFRMU19FUlJfUEtfS0VZX0lOVkFMSURfRk9STUFUCiAKIFBhcnNlIFJTQSBLZXkgIzk4IChQS0NTIzggZW5jcnlwdGVkIHYyIFBCS0RGMiBERVMgaG1hY1dpdGhTSEE1MTIgREVSLCAyMDQ4LWJpdCkKIGRlcGVuZHNfb246TUJFRFRMU19ERVNfQzpNQkVEVExTX01EX0NBTl9TSEE1MTI6TUJFRFRMU19QS0NTNV9DOk1CRURUTFNfQ0lQSEVSX0M6TUJFRFRMU19DSVBIRVJfTU9ERV9DQkMKLXBrX3BhcnNlX2tleWZpbGVfcnNhOiJkYXRhX2ZpbGVzL3JzYV9wa2NzOF9wYmVzMl9wYmtkZjJfMjA0OF9kZXNfc2hhNTEyLmRlciI6IlBvbGFyU1NMVGVzdCI6MAorcGtfcGFyc2Vfa2V5ZmlsZV9yc2E6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3JzYV9wa2NzOF9wYmVzMl9wYmtkZjJfMjA0OF9kZXNfc2hhNTEyLmRlciI6IlBvbGFyU1NMVGVzdCI6MAogCiBQYXJzZSBSU0EgS2V5ICM5OC4xIChQS0NTIzggZW5jcnlwdGVkIHYyIFBCS0RGMiBERVMgaG1hY1dpdGhTSEE1MTIgREVSLCAyMDQ4LWJpdCwgd3JvbmcgUFcpCiBkZXBlbmRzX29uOk1CRURUTFNfREVTX0M6TUJFRFRMU19NRF9DQU5fU0hBNTEyOk1CRURUTFNfUEtDUzVfQzpNQkVEVExTX0NJUEhFUl9DOk1CRURUTFNfQ0lQSEVSX01PREVfQ0JDOk1CRURUTFNfQ0lQSEVSX1BBRERJTkdfUEtDUzcKLXBrX3BhcnNlX2tleWZpbGVfcnNhOiJkYXRhX2ZpbGVzL3JzYV9wa2NzOF9wYmVzMl9wYmtkZjJfMjA0OF9kZXNfc2hhNTEyLmRlciI6IlBvbGFyU1NMVGVzIjpNQkVEVExTX0VSUl9QS19QQVNTV09SRF9NSVNNQVRDSAorcGtfcGFyc2Vfa2V5ZmlsZV9yc2E6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3JzYV9wa2NzOF9wYmVzMl9wYmtkZjJfMjA0OF9kZXNfc2hhNTEyLmRlciI6IlBvbGFyU1NMVGVzIjpNQkVEVExTX0VSUl9QS19QQVNTV09SRF9NSVNNQVRDSAogCiBQYXJzZSBSU0EgS2V5ICM5OC4yIChQS0NTIzggZW5jcnlwdGVkIHYyIFBCS0RGMiBERVMgaG1hY1dpdGhTSEE1MTIgREVSLCAyMDQ4LWJpdCwgbm8gUFcpCiBkZXBlbmRzX29uOk1CRURUTFNfREVTX0M6TUJFRFRMU19NRF9DQU5fU0hBNTEyOk1CRURUTFNfUEtDUzVfQzpNQkVEVExTX0NJUEhFUl9DCi1wa19wYXJzZV9rZXlmaWxlX3JzYToiZGF0YV9maWxlcy9yc2FfcGtjczhfcGJlczJfcGJrZGYyXzIwNDhfZGVzX3NoYTUxMi5kZXIiOiIiOk1CRURUTFNfRVJSX1BLX0tFWV9JTlZBTElEX0ZPUk1BVAorcGtfcGFyc2Vfa2V5ZmlsZV9yc2E6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3JzYV9wa2NzOF9wYmVzMl9wYmtkZjJfMjA0OF9kZXNfc2hhNTEyLmRlciI6IiI6TUJFRFRMU19FUlJfUEtfS0VZX0lOVkFMSURfRk9STUFUCiAKIFBhcnNlIFJTQSBLZXkgIzk5IChQS0NTIzggZW5jcnlwdGVkIHYyIFBCS0RGMiBERVMgaG1hY1dpdGhTSEE1MTIgREVSLCA0MDk2LWJpdCkKIGRlcGVuZHNfb246TUJFRFRMU19ERVNfQzpNQkVEVExTX01EX0NBTl9TSEE1MTI6TUJFRFRMU19QS0NTNV9DOk1CRURUTFNfQ0lQSEVSX0M6TUJFRFRMU19DSVBIRVJfTU9ERV9DQkMKLXBrX3BhcnNlX2tleWZpbGVfcnNhOiJkYXRhX2ZpbGVzL3JzYV9wa2NzOF9wYmVzMl9wYmtkZjJfNDA5Nl9kZXNfc2hhNTEyLmRlciI6IlBvbGFyU1NMVGVzdCI6MAorcGtfcGFyc2Vfa2V5ZmlsZV9yc2E6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3JzYV9wa2NzOF9wYmVzMl9wYmtkZjJfNDA5Nl9kZXNfc2hhNTEyLmRlciI6IlBvbGFyU1NMVGVzdCI6MAogCiBQYXJzZSBSU0EgS2V5ICM5OS4xIChQS0NTIzggZW5jcnlwdGVkIHYyIFBCS0RGMiBERVMgaG1hY1dpdGhTSEE1MTIgREVSLCA0MDk2LWJpdCwgd3JvbmcgUFcpCiBkZXBlbmRzX29uOk1CRURUTFNfREVTX0M6TUJFRFRMU19NRF9DQU5fU0hBNTEyOk1CRURUTFNfUEtDUzVfQzpNQkVEVExTX0NJUEhFUl9DOk1CRURUTFNfQ0lQSEVSX01PREVfQ0JDOk1CRURUTFNfQ0lQSEVSX1BBRERJTkdfUEtDUzcKLXBrX3BhcnNlX2tleWZpbGVfcnNhOiJkYXRhX2ZpbGVzL3JzYV9wa2NzOF9wYmVzMl9wYmtkZjJfNDA5Nl9kZXNfc2hhNTEyLmRlciI6IlBvbGFyU1NMVGVzIjpNQkVEVExTX0VSUl9QS19QQVNTV09SRF9NSVNNQVRDSAorcGtfcGFyc2Vfa2V5ZmlsZV9yc2E6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3JzYV9wa2NzOF9wYmVzMl9wYmtkZjJfNDA5Nl9kZXNfc2hhNTEyLmRlciI6IlBvbGFyU1NMVGVzIjpNQkVEVExTX0VSUl9QS19QQVNTV09SRF9NSVNNQVRDSAogCiBQYXJzZSBSU0EgS2V5ICM5OS4yIChQS0NTIzggZW5jcnlwdGVkIHYyIFBCS0RGMiBERVMgaG1hY1dpdGhTSEE1MTIgREVSLCA0MDk2LWJpdCwgbm8gUFcpCiBkZXBlbmRzX29uOk1CRURUTFNfREVTX0M6TUJFRFRMU19NRF9DQU5fU0hBNTEyOk1CRURUTFNfUEtDUzVfQzpNQkVEVExTX0NJUEhFUl9DCi1wa19wYXJzZV9rZXlmaWxlX3JzYToiZGF0YV9maWxlcy9yc2FfcGtjczhfcGJlczJfcGJrZGYyXzQwOTZfZGVzX3NoYTUxMi5kZXIiOiIiOk1CRURUTFNfRVJSX1BLX0tFWV9JTlZBTElEX0ZPUk1BVAorcGtfcGFyc2Vfa2V5ZmlsZV9yc2E6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3JzYV9wa2NzOF9wYmVzMl9wYmtkZjJfNDA5Nl9kZXNfc2hhNTEyLmRlciI6IiI6TUJFRFRMU19FUlJfUEtfS0VZX0lOVkFMSURfRk9STUFUCiAKIFBhcnNlIFJTQSBLZXkgIzk5LjMgKFBLQ1MjOCBlbmNyeXB0ZWQgdjIgUEJLREYyIEFFUy0xMjgtQ0JDIGhtYWNXaXRoU0hBMzg0LCAyMDQ4LWJpdCkKLWRlcGVuZHNfb246TUJFRFRMU19BRVNfQzpNQkVEVExTX01EX0NBTl9TSEEzODQ6TUJFRFRMU19QRU1fUEFSU0VfQzpNQkVEVExTX1BLQ1M1X0M6TUJFRFRMU19DSVBIRVJfQzpNQkVEVExTX0NJUEhFUl9NT0RFX0NCQwotcGtfcGFyc2Vfa2V5ZmlsZV9yc2E6ImRhdGFfZmlsZXMvcnNhX3BrY3M4X3BiZXMyX3Bia2RmMl8yMDQ4X2FlczEyOGNiY19zaGEzODQucGVtIjoiUG9sYXJTU0xUZXN0IjowCitkZXBlbmRzX29uOk1CRURUTFNfQUVTX0M6UFNBX1dBTlRfQUxHX1NIQV8zODQ6TUJFRFRMU19QRU1fUEFSU0VfQzpNQkVEVExTX1BLQ1M1X0M6TUJFRFRMU19DSVBIRVJfQzpNQkVEVExTX0NJUEhFUl9NT0RFX0NCQworcGtfcGFyc2Vfa2V5ZmlsZV9yc2E6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3JzYV9wa2NzOF9wYmVzMl9wYmtkZjJfMjA0OF9hZXMxMjhjYmNfc2hhMzg0LnBlbSI6IlBvbGFyU1NMVGVzdCI6MAogCiBQYXJzZSBSU0EgS2V5ICM5OS40IChQS0NTIzggZW5jcnlwdGVkIHYyIFBCS0RGMiBBRVMtMTkyLUNCQyBobWFjV2l0aFNIQTM4NCwgMjA0OC1iaXQpCi1kZXBlbmRzX29uOk1CRURUTFNfQUVTX0M6TUJFRFRMU19NRF9DQU5fU0hBMzg0Ok1CRURUTFNfUEVNX1BBUlNFX0M6TUJFRFRMU19QS0NTNV9DOk1CRURUTFNfQ0lQSEVSX0M6TUJFRFRMU19DSVBIRVJfTU9ERV9DQkM6IU1CRURUTFNfQUVTX09OTFlfMTI4X0JJVF9LRVlfTEVOR1RICi1wa19wYXJzZV9rZXlmaWxlX3JzYToiZGF0YV9maWxlcy9yc2FfcGtjczhfcGJlczJfcGJrZGYyXzIwNDhfYWVzMTkyY2JjX3NoYTM4NC5wZW0iOiJQb2xhclNTTFRlc3QiOjAKK2RlcGVuZHNfb246TUJFRFRMU19BRVNfQzpQU0FfV0FOVF9BTEdfU0hBXzM4NDpNQkVEVExTX1BFTV9QQVJTRV9DOk1CRURUTFNfUEtDUzVfQzpNQkVEVExTX0NJUEhFUl9DOk1CRURUTFNfQ0lQSEVSX01PREVfQ0JDOiFNQkVEVExTX0FFU19PTkxZXzEyOF9CSVRfS0VZX0xFTkdUSAorcGtfcGFyc2Vfa2V5ZmlsZV9yc2E6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3JzYV9wa2NzOF9wYmVzMl9wYmtkZjJfMjA0OF9hZXMxOTJjYmNfc2hhMzg0LnBlbSI6IlBvbGFyU1NMVGVzdCI6MAogCiBQYXJzZSBSU0EgS2V5ICM5OS41IChQS0NTIzggZW5jcnlwdGVkIHYyIFBCS0RGMiBBRVMtMjU2LUNCQyBobWFjV2l0aFNIQTM4NCwgMjA0OC1iaXQpCi1kZXBlbmRzX29uOk1CRURUTFNfQUVTX0M6TUJFRFRMU19NRF9DQU5fU0hBMzg0Ok1CRURUTFNfUEVNX1BBUlNFX0M6TUJFRFRMU19QS0NTNV9DOk1CRURUTFNfQ0lQSEVSX0M6TUJFRFRMU19DSVBIRVJfTU9ERV9DQkM6IU1CRURUTFNfQUVTX09OTFlfMTI4X0JJVF9LRVlfTEVOR1RICi1wa19wYXJzZV9rZXlmaWxlX3JzYToiZGF0YV9maWxlcy9yc2FfcGtjczhfcGJlczJfcGJrZGYyXzIwNDhfYWVzMjU2Y2JjX3NoYTM4NC5wZW0iOiJQb2xhclNTTFRlc3QiOjAKK2RlcGVuZHNfb246TUJFRFRMU19BRVNfQzpQU0FfV0FOVF9BTEdfU0hBXzM4NDpNQkVEVExTX1BFTV9QQVJTRV9DOk1CRURUTFNfUEtDUzVfQzpNQkVEVExTX0NJUEhFUl9DOk1CRURUTFNfQ0lQSEVSX01PREVfQ0JDOiFNQkVEVExTX0FFU19PTkxZXzEyOF9CSVRfS0VZX0xFTkdUSAorcGtfcGFyc2Vfa2V5ZmlsZV9yc2E6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3JzYV9wa2NzOF9wYmVzMl9wYmtkZjJfMjA0OF9hZXMyNTZjYmNfc2hhMzg0LnBlbSI6IlBvbGFyU1NMVGVzdCI6MAogCiBQYXJzZSBSU0EgS2V5ICM5OS42IChQS0NTIzggZW5jcnlwdGVkIHYyIFBCS0RGMiBBRVMtMTI4LUNCQyBobWFjV2l0aFNIQTM4NCBERVIsIDIwNDgtYml0KQotZGVwZW5kc19vbjpNQkVEVExTX0FFU19DOk1CRURUTFNfTURfQ0FOX1NIQTM4NDpNQkVEVExTX1BLQ1M1X0M6TUJFRFRMU19DSVBIRVJfQzpNQkVEVExTX0NJUEhFUl9NT0RFX0NCQwotcGtfcGFyc2Vfa2V5ZmlsZV9yc2E6ImRhdGFfZmlsZXMvcnNhX3BrY3M4X3BiZXMyX3Bia2RmMl8yMDQ4X2FlczEyOGNiY19zaGEzODQuZGVyIjoiUG9sYXJTU0xUZXN0IjowCitkZXBlbmRzX29uOk1CRURUTFNfQUVTX0M6UFNBX1dBTlRfQUxHX1NIQV8zODQ6TUJFRFRMU19QS0NTNV9DOk1CRURUTFNfQ0lQSEVSX0M6TUJFRFRMU19DSVBIRVJfTU9ERV9DQkMKK3BrX3BhcnNlX2tleWZpbGVfcnNhOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9yc2FfcGtjczhfcGJlczJfcGJrZGYyXzIwNDhfYWVzMTI4Y2JjX3NoYTM4NC5kZXIiOiJQb2xhclNTTFRlc3QiOjAKIAogUGFyc2UgUlNBIEtleSAjOTkuNyAoUEtDUyM4IGVuY3J5cHRlZCB2MiBQQktERjIgQUVTLTE5Mi1DQkMgaG1hY1dpdGhTSEEzODQgREVSLCAyMDQ4LWJpdCkKLWRlcGVuZHNfb246TUJFRFRMU19BRVNfQzpNQkVEVExTX01EX0NBTl9TSEEzODQ6TUJFRFRMU19QS0NTNV9DOk1CRURUTFNfQ0lQSEVSX0M6TUJFRFRMU19DSVBIRVJfTU9ERV9DQkM6IU1CRURUTFNfQUVTX09OTFlfMTI4X0JJVF9LRVlfTEVOR1RICi1wa19wYXJzZV9rZXlmaWxlX3JzYToiZGF0YV9maWxlcy9yc2FfcGtjczhfcGJlczJfcGJrZGYyXzIwNDhfYWVzMTkyY2JjX3NoYTM4NC5kZXIiOiJQb2xhclNTTFRlc3QiOjAKK2RlcGVuZHNfb246TUJFRFRMU19BRVNfQzpQU0FfV0FOVF9BTEdfU0hBXzM4NDpNQkVEVExTX1BLQ1M1X0M6TUJFRFRMU19DSVBIRVJfQzpNQkVEVExTX0NJUEhFUl9NT0RFX0NCQzohTUJFRFRMU19BRVNfT05MWV8xMjhfQklUX0tFWV9MRU5HVEgKK3BrX3BhcnNlX2tleWZpbGVfcnNhOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9yc2FfcGtjczhfcGJlczJfcGJrZGYyXzIwNDhfYWVzMTkyY2JjX3NoYTM4NC5kZXIiOiJQb2xhclNTTFRlc3QiOjAKIAogUGFyc2UgUlNBIEtleSAjOTkuOCAoUEtDUyM4IGVuY3J5cHRlZCB2MiBQQktERjIgQUVTLTI1Ni1DQkMgaG1hY1dpdGhTSEEzODQgREVSLCAyMDQ4LWJpdCkKLWRlcGVuZHNfb246TUJFRFRMU19BRVNfQzpNQkVEVExTX01EX0NBTl9TSEEzODQ6TUJFRFRMU19QS0NTNV9DOk1CRURUTFNfQ0lQSEVSX0M6TUJFRFRMU19DSVBIRVJfTU9ERV9DQkM6IU1CRURUTFNfQUVTX09OTFlfMTI4X0JJVF9LRVlfTEVOR1RICi1wa19wYXJzZV9rZXlmaWxlX3JzYToiZGF0YV9maWxlcy9yc2FfcGtjczhfcGJlczJfcGJrZGYyXzIwNDhfYWVzMjU2Y2JjX3NoYTM4NC5kZXIiOiJQb2xhclNTTFRlc3QiOjAKK2RlcGVuZHNfb246TUJFRFRMU19BRVNfQzpQU0FfV0FOVF9BTEdfU0hBXzM4NDpNQkVEVExTX1BLQ1M1X0M6TUJFRFRMU19DSVBIRVJfQzpNQkVEVExTX0NJUEhFUl9NT0RFX0NCQzohTUJFRFRMU19BRVNfT05MWV8xMjhfQklUX0tFWV9MRU5HVEgKK3BrX3BhcnNlX2tleWZpbGVfcnNhOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9yc2FfcGtjczhfcGJlczJfcGJrZGYyXzIwNDhfYWVzMjU2Y2JjX3NoYTM4NC5kZXIiOiJQb2xhclNTTFRlc3QiOjAKIAogIyBUZXN0IGtleXMgd2l0aCBub24td29yZC1hbGlnbmVkIHNpemVzLgogIyBXZSB1c2Ugc2l6ZXMgdGhhdCBhcmUgbGFyZ2UgZW5vdWdoIHRvIGV4ZXJjaXNlIFBLQ1MjMSB2MS41IHNpZ25hdHVyZSB3aXRoCiAjIHRoZSBsYXJnZXN0IHN1cHBvcnRlZCBoYXNoZXMgKFNIQS01MTIgYW5kIFNIQTMtNTEyLikKIFBhcnNlIFJTQSBLZXkgIzEwMCAoNzY4LWJpdCkKLXBrX3BhcnNlX2tleWZpbGVfcnNhOiJkYXRhX2ZpbGVzL3JzYV9wa2NzMV83NjhfY2xlYXIuZGVyIjoiIjowCitwa19wYXJzZV9rZXlmaWxlX3JzYToiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvcnNhX3BrY3MxXzc2OF9jbGVhci5kZXIiOiIiOjAKIAogUGFyc2UgUlNBIEtleSAjMTAwICg3NjktYml0KQotcGtfcGFyc2Vfa2V5ZmlsZV9yc2E6ImRhdGFfZmlsZXMvcnNhX3BrY3MxXzc2OV9jbGVhci5kZXIiOiIiOjAKK3BrX3BhcnNlX2tleWZpbGVfcnNhOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9yc2FfcGtjczFfNzY5X2NsZWFyLmRlciI6IiI6MAogCiBQYXJzZSBSU0EgS2V5ICMxMDAgKDc3MC1iaXQpCi1wa19wYXJzZV9rZXlmaWxlX3JzYToiZGF0YV9maWxlcy9yc2FfcGtjczFfNzcwX2NsZWFyLmRlciI6IiI6MAorcGtfcGFyc2Vfa2V5ZmlsZV9yc2E6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3JzYV9wa2NzMV83NzBfY2xlYXIuZGVyIjoiIjowCiAKIFBhcnNlIFJTQSBLZXkgIzEwMCAoNzc2LWJpdCkKLXBrX3BhcnNlX2tleWZpbGVfcnNhOiJkYXRhX2ZpbGVzL3JzYV9wa2NzMV83NzZfY2xlYXIuZGVyIjoiIjowCitwa19wYXJzZV9rZXlmaWxlX3JzYToiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvcnNhX3BrY3MxXzc3Nl9jbGVhci5kZXIiOiIiOjAKIAogUGFyc2UgUlNBIEtleSAjMTAwICg3ODQtYml0KQotcGtfcGFyc2Vfa2V5ZmlsZV9yc2E6ImRhdGFfZmlsZXMvcnNhX3BrY3MxXzc4NF9jbGVhci5kZXIiOiIiOjAKK3BrX3BhcnNlX2tleWZpbGVfcnNhOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9yc2FfcGtjczFfNzg0X2NsZWFyLmRlciI6IiI6MAogCiBQYXJzZSBQdWJsaWMgUlNBIEtleSAjMSAoUEtDUyM4IHdyYXBwZWQpCiBkZXBlbmRzX29uOk1CRURUTFNfUEVNX1BBUlNFX0MKLXBrX3BhcnNlX3B1YmxpY19rZXlmaWxlX3JzYToiZGF0YV9maWxlcy9yc2FfcGtjczhfMjA0OF9wdWJsaWMucGVtIjowCitwa19wYXJzZV9wdWJsaWNfa2V5ZmlsZV9yc2E6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3JzYV9wa2NzOF8yMDQ4X3B1YmxpYy5wZW0iOjAKIAogUGFyc2UgUHVibGljIFJTQSBLZXkgIzEgKFBLQ1MjOCB3cmFwcGVkLCBERVIpCi1wa19wYXJzZV9wdWJsaWNfa2V5ZmlsZV9yc2E6ImRhdGFfZmlsZXMvcnNhX3BrY3M4XzIwNDhfcHVibGljLmRlciI6MAorcGtfcGFyc2VfcHVibGljX2tleWZpbGVfcnNhOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9yc2FfcGtjczhfMjA0OF9wdWJsaWMuZGVyIjowCiAKIFBhcnNlIFB1YmxpYyBSU0EgS2V5ICMzIChQS0NTIzEgd3JhcHBlZCkKIGRlcGVuZHNfb246TUJFRFRMU19QRU1fUEFSU0VfQwotcGtfcGFyc2VfcHVibGljX2tleWZpbGVfcnNhOiJkYXRhX2ZpbGVzL3JzYV9wa2NzMV8yMDQ4X3B1YmxpYy5wZW0iOjAKK3BrX3BhcnNlX3B1YmxpY19rZXlmaWxlX3JzYToiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvcnNhX3BrY3MxXzIwNDhfcHVibGljLnBlbSI6MAogCiBQYXJzZSBQdWJsaWMgUlNBIEtleSAjNCAoUEtDUyMxIHdyYXBwZWQsIERFUikKLXBrX3BhcnNlX3B1YmxpY19rZXlmaWxlX3JzYToiZGF0YV9maWxlcy9yc2FfcGtjczFfMjA0OF9wdWJsaWMuZGVyIjowCitwa19wYXJzZV9wdWJsaWNfa2V5ZmlsZV9yc2E6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3JzYV9wa2NzMV8yMDQ4X3B1YmxpYy5kZXIiOjAKIAogUGFyc2UgUHVibGljIEVDIEtleSAjMSAoUkZDIDU0ODAsIERFUikKLWRlcGVuZHNfb246TUJFRFRMU19FQ1BfSEFWRV9TRUNQMTkyUjEKLXBrX3BhcnNlX3B1YmxpY19rZXlmaWxlX2VjOiJkYXRhX2ZpbGVzL2VjX3B1Yi5kZXIiOjAKK2RlcGVuZHNfb246UFNBX1dBTlRfRUNDX1NFQ1BfUjFfMTkyCitwa19wYXJzZV9wdWJsaWNfa2V5ZmlsZV9lYzoiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvZWNfcHViLmRlciI6MAogCiBQYXJzZSBQdWJsaWMgRUMgS2V5ICMyIChSRkMgNTQ4MCwgUEVNKQotZGVwZW5kc19vbjpNQkVEVExTX1BFTV9QQVJTRV9DOk1CRURUTFNfRUNQX0hBVkVfU0VDUDE5MlIxCi1wa19wYXJzZV9wdWJsaWNfa2V5ZmlsZV9lYzoiZGF0YV9maWxlcy9lY19wdWIucGVtIjowCitkZXBlbmRzX29uOk1CRURUTFNfUEVNX1BBUlNFX0M6UFNBX1dBTlRfRUNDX1NFQ1BfUjFfMTkyCitwa19wYXJzZV9wdWJsaWNfa2V5ZmlsZV9lYzoiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvZWNfcHViLnBlbSI6MAogCiBQYXJzZSBQdWJsaWMgRUMgS2V5ICMyYSAoUkZDIDU0ODAsIFBFTSwgc2VjcDE5MnIxLCBjb21wcmVzc2VkKQogZGVwZW5kc19vbjpNQkVEVExTX1BFTV9QQVJTRV9DOk1CRURUTFNfUEtfUEFSU0VfRUNfQ09NUFJFU1NFRDpNQkVEVExTX0VDUF9EUF9TRUNQMTkyUjFfRU5BQkxFRAotcGtfcGFyc2VfcHVibGljX2tleWZpbGVfZWM6ImRhdGFfZmlsZXMvZWNfcHViLmNvbXAucGVtIjowCitwa19wYXJzZV9wdWJsaWNfa2V5ZmlsZV9lYzoiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvZWNfcHViLmNvbXAucGVtIjowCiAKIFBhcnNlIFB1YmxpYyBFQyBLZXkgIzMgKFJGQyA1NDgwLCBzZWNwMjI0cjEpCi1kZXBlbmRzX29uOk1CRURUTFNfUEVNX1BBUlNFX0M6TUJFRFRMU19FQ1BfSEFWRV9TRUNQMjI0UjEKLXBrX3BhcnNlX3B1YmxpY19rZXlmaWxlX2VjOiJkYXRhX2ZpbGVzL2VjXzIyNF9wdWIucGVtIjowCitkZXBlbmRzX29uOk1CRURUTFNfUEVNX1BBUlNFX0M6UFNBX1dBTlRfRUNDX1NFQ1BfUjFfMjI0Citwa19wYXJzZV9wdWJsaWNfa2V5ZmlsZV9lYzoiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvZWNfMjI0X3B1Yi5wZW0iOjAKIAogIyBDb21wcmVzc2VkIHBvaW50cyBwYXJzaW5nIGRvZXMgbm90IHN1cHBvcnQgTUJFRFRMU19FQ1BfRFBfU0VDUDIyNFIxIGFuZAogIyBNQkVEVExTX0VDUF9EUF9TRUNQMjI0SzEuIFRoZXJlZm9yZSBhIGZhaWx1cmUgaXMgZXhwZWN0ZWQgaW4gdGhpcyBjYXNlCiBQYXJzZSBQdWJsaWMgRUMgS2V5ICMzYSAoUkZDIDU0ODAsIHNlY3AyMjRyMSwgY29tcHJlc3NlZCkKIGRlcGVuZHNfb246TUJFRFRMU19QRU1fUEFSU0VfQzpNQkVEVExTX1BLX1BBUlNFX0VDX0NPTVBSRVNTRUQ6TUJFRFRMU19FQ1BfRFBfU0VDUDIyNFIxX0VOQUJMRUQKLXBrX3BhcnNlX3B1YmxpY19rZXlmaWxlX2VjOiJkYXRhX2ZpbGVzL2VjXzIyNF9wdWIuY29tcC5wZW0iOk1CRURUTFNfRVJSX0VDUF9GRUFUVVJFX1VOQVZBSUxBQkxFCitwa19wYXJzZV9wdWJsaWNfa2V5ZmlsZV9lYzoiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvZWNfMjI0X3B1Yi5jb21wLnBlbSI6TUJFRFRMU19FUlJfRUNQX0ZFQVRVUkVfVU5BVkFJTEFCTEUKIAogUGFyc2UgUHVibGljIEVDIEtleSAjNCAoUkZDIDU0ODAsIHNlY3AyNTZyMSkKIGRlcGVuZHNfb246TUJFRFRMU19QRU1fUEFSU0VfQzpNQkVEVExTX0VDUF9IQVZFX1NFQ1AyNTZSMQotcGtfcGFyc2VfcHVibGljX2tleWZpbGVfZWM6ImRhdGFfZmlsZXMvZWNfMjU2X3B1Yi5wZW0iOjAKK3BrX3BhcnNlX3B1YmxpY19rZXlmaWxlX2VjOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9lY18yNTZfcHViLnBlbSI6MAogCiBQYXJzZSBQdWJsaWMgRUMgS2V5ICM0YSAoUkZDIDU0ODAsIHNlY3AyNTZyMSwgY29tcHJlc3NlZCkKIGRlcGVuZHNfb246TUJFRFRMU19QRU1fUEFSU0VfQzpNQkVEVExTX1BLX1BBUlNFX0VDX0NPTVBSRVNTRUQ6TUJFRFRMU19FQ1BfRFBfU0VDUDI1NlIxX0VOQUJMRUQKLXBrX3BhcnNlX3B1YmxpY19rZXlmaWxlX2VjOiJkYXRhX2ZpbGVzL2VjXzI1Nl9wdWIuY29tcC5wZW0iOjAKK3BrX3BhcnNlX3B1YmxpY19rZXlmaWxlX2VjOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9lY18yNTZfcHViLmNvbXAucGVtIjowCiAKIFBhcnNlIFB1YmxpYyBFQyBLZXkgIzUgKFJGQyA1NDgwLCBzZWNwMzg0cjEpCiBkZXBlbmRzX29uOk1CRURUTFNfUEVNX1BBUlNFX0M6TUJFRFRMU19FQ1BfSEFWRV9TRUNQMzg0UjEKLXBrX3BhcnNlX3B1YmxpY19rZXlmaWxlX2VjOiJkYXRhX2ZpbGVzL2VjXzM4NF9wdWIucGVtIjowCitwa19wYXJzZV9wdWJsaWNfa2V5ZmlsZV9lYzoiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvZWNfMzg0X3B1Yi5wZW0iOjAKIAogUGFyc2UgUHVibGljIEVDIEtleSAjNWEgKFJGQyA1NDgwLCBzZWNwMzg0cjEsIGNvbXByZXNzZWQpCiBkZXBlbmRzX29uOk1CRURUTFNfUEVNX1BBUlNFX0M6TUJFRFRMU19QS19QQVJTRV9FQ19DT01QUkVTU0VEOk1CRURUTFNfRUNQX0RQX1NFQ1AzODRSMV9FTkFCTEVECi1wa19wYXJzZV9wdWJsaWNfa2V5ZmlsZV9lYzoiZGF0YV9maWxlcy9lY18zODRfcHViLmNvbXAucGVtIjowCitwa19wYXJzZV9wdWJsaWNfa2V5ZmlsZV9lYzoiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvZWNfMzg0X3B1Yi5jb21wLnBlbSI6MAogCiBQYXJzZSBQdWJsaWMgRUMgS2V5ICM2IChSRkMgNTQ4MCwgc2VjcDUyMXIxKQogZGVwZW5kc19vbjpNQkVEVExTX1BFTV9QQVJTRV9DOk1CRURUTFNfRUNQX0hBVkVfU0VDUDUyMVIxCi1wa19wYXJzZV9wdWJsaWNfa2V5ZmlsZV9lYzoiZGF0YV9maWxlcy9lY181MjFfcHViLnBlbSI6MAorcGtfcGFyc2VfcHVibGljX2tleWZpbGVfZWM6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL2VjXzUyMV9wdWIucGVtIjowCiAKIFBhcnNlIFB1YmxpYyBFQyBLZXkgIzZhIChSRkMgNTQ4MCwgc2VjcDUyMXIxLCBjb21wcmVzc2VkKQogZGVwZW5kc19vbjpNQkVEVExTX1BFTV9QQVJTRV9DOk1CRURUTFNfUEtfUEFSU0VfRUNfQ09NUFJFU1NFRDpNQkVEVExTX0VDUF9EUF9TRUNQNTIxUjFfRU5BQkxFRAotcGtfcGFyc2VfcHVibGljX2tleWZpbGVfZWM6ImRhdGFfZmlsZXMvZWNfNTIxX3B1Yi5jb21wLnBlbSI6MAorcGtfcGFyc2VfcHVibGljX2tleWZpbGVfZWM6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL2VjXzUyMV9wdWIuY29tcC5wZW0iOjAKIAogUGFyc2UgUHVibGljIEVDIEtleSAjNyAoUkZDIDU0ODAsIGJyYWlucG9vbFAyNTZyMSkKLWRlcGVuZHNfb246TUJFRFRMU19QRU1fUEFSU0VfQzpNQkVEVExTX0VDUF9IQVZFX0JQMjU2UjEKLXBrX3BhcnNlX3B1YmxpY19rZXlmaWxlX2VjOiJkYXRhX2ZpbGVzL2VjX2JwMjU2X3B1Yi5wZW0iOjAKK2RlcGVuZHNfb246TUJFRFRMU19QRU1fUEFSU0VfQzpQU0FfV0FOVF9FQ0NfQlJBSU5QT09MX1BfUjFfMjU2Citwa19wYXJzZV9wdWJsaWNfa2V5ZmlsZV9lYzoiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvZWNfYnAyNTZfcHViLnBlbSI6MAogCiBQYXJzZSBQdWJsaWMgRUMgS2V5ICM3YSAoUkZDIDU0ODAsIGJyYWlucG9vbFAyNTZyMSwgY29tcHJlc3NlZCkKIGRlcGVuZHNfb246TUJFRFRMU19QRU1fUEFSU0VfQzpNQkVEVExTX1BLX1BBUlNFX0VDX0NPTVBSRVNTRUQ6TUJFRFRMU19FQ1BfRFBfQlAyNTZSMV9FTkFCTEVECi1wa19wYXJzZV9wdWJsaWNfa2V5ZmlsZV9lYzoiZGF0YV9maWxlcy9lY19icDI1Nl9wdWIuY29tcC5wZW0iOjAKK3BrX3BhcnNlX3B1YmxpY19rZXlmaWxlX2VjOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9lY19icDI1Nl9wdWIuY29tcC5wZW0iOjAKIAogUGFyc2UgUHVibGljIEVDIEtleSAjOCAoUkZDIDU0ODAsIGJyYWlucG9vbFAzODRyMSkKLWRlcGVuZHNfb246TUJFRFRMU19QRU1fUEFSU0VfQzpNQkVEVExTX0VDUF9IQVZFX0JQMzg0UjEKLXBrX3BhcnNlX3B1YmxpY19rZXlmaWxlX2VjOiJkYXRhX2ZpbGVzL2VjX2JwMzg0X3B1Yi5wZW0iOjAKK2RlcGVuZHNfb246TUJFRFRMU19QRU1fUEFSU0VfQzpQU0FfV0FOVF9FQ0NfQlJBSU5QT09MX1BfUjFfMzg0Citwa19wYXJzZV9wdWJsaWNfa2V5ZmlsZV9lYzoiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvZWNfYnAzODRfcHViLnBlbSI6MAogCiBQYXJzZSBQdWJsaWMgRUMgS2V5ICM4YSAoUkZDIDU0ODAsIGJyYWlucG9vbFAzODRyMSwgY29tcHJlc3NlZCkKIGRlcGVuZHNfb246TUJFRFRMU19QRU1fUEFSU0VfQzpNQkVEVExTX1BLX1BBUlNFX0VDX0NPTVBSRVNTRUQ6TUJFRFRMU19FQ1BfRFBfQlAzODRSMV9FTkFCTEVECi1wa19wYXJzZV9wdWJsaWNfa2V5ZmlsZV9lYzoiZGF0YV9maWxlcy9lY19icDM4NF9wdWIuY29tcC5wZW0iOjAKK3BrX3BhcnNlX3B1YmxpY19rZXlmaWxlX2VjOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9lY19icDM4NF9wdWIuY29tcC5wZW0iOjAKIAogUGFyc2UgUHVibGljIEVDIEtleSAjOSAoUkZDIDU0ODAsIGJyYWlucG9vbFA1MTJyMSkKLWRlcGVuZHNfb246TUJFRFRMU19QRU1fUEFSU0VfQzpNQkVEVExTX0VDUF9IQVZFX0JQNTEyUjEKLXBrX3BhcnNlX3B1YmxpY19rZXlmaWxlX2VjOiJkYXRhX2ZpbGVzL2VjX2JwNTEyX3B1Yi5wZW0iOjAKK2RlcGVuZHNfb246TUJFRFRMU19QRU1fUEFSU0VfQzpQU0FfV0FOVF9FQ0NfQlJBSU5QT09MX1BfUjFfNTEyCitwa19wYXJzZV9wdWJsaWNfa2V5ZmlsZV9lYzoiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvZWNfYnA1MTJfcHViLnBlbSI6MAogCiBQYXJzZSBQdWJsaWMgRUMgS2V5ICM5YSAoUkZDIDU0ODAsIGJyYWlucG9vbFA1MTJyMSwgY29tcHJlc3NlZCkKIGRlcGVuZHNfb246TUJFRFRMU19QRU1fUEFSU0VfQzpNQkVEVExTX1BLX1BBUlNFX0VDX0NPTVBSRVNTRUQ6TUJFRFRMU19FQ1BfRFBfQlA1MTJSMV9FTkFCTEVECi1wa19wYXJzZV9wdWJsaWNfa2V5ZmlsZV9lYzoiZGF0YV9maWxlcy9lY19icDUxMl9wdWIuY29tcC5wZW0iOjAKK3BrX3BhcnNlX3B1YmxpY19rZXlmaWxlX2VjOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9lY19icDUxMl9wdWIuY29tcC5wZW0iOjAKIAogUGFyc2UgUHVibGljIEVDIEtleSAjMTAgKFJGQyA4NDEwLCBERVIsIFgyNTUxOSkKIGRlcGVuZHNfb246TUJFRFRMU19QRU1fUEFSU0VfQzpNQkVEVExTX0VDUF9IQVZFX0NVUlZFMjU1MTkKLXBrX3BhcnNlX3B1YmxpY19rZXlmaWxlX2VjOiJkYXRhX2ZpbGVzL2VjX3gyNTUxOV9wdWIuZGVyIjowCitwa19wYXJzZV9wdWJsaWNfa2V5ZmlsZV9lYzoiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvZWNfeDI1NTE5X3B1Yi5kZXIiOjAKIAogUGFyc2UgUHVibGljIEVDIEtleSAjMTEgKFJGQyA4NDEwLCBERVIsIFg0NDgpCiBkZXBlbmRzX29uOk1CRURUTFNfUEVNX1BBUlNFX0M6TUJFRFRMU19FQ1BfSEFWRV9DVVJWRTQ0OAotcGtfcGFyc2VfcHVibGljX2tleWZpbGVfZWM6ImRhdGFfZmlsZXMvZWNfeDQ0OF9wdWIuZGVyIjowCitwa19wYXJzZV9wdWJsaWNfa2V5ZmlsZV9lYzoiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvZWNfeDQ0OF9wdWIuZGVyIjowCiAKIFBhcnNlIFB1YmxpYyBFQyBLZXkgIzEyIChSRkMgODQxMCwgUEVNLCBYMjU1MTkpCiBkZXBlbmRzX29uOk1CRURUTFNfUEVNX1BBUlNFX0M6TUJFRFRMU19FQ1BfSEFWRV9DVVJWRTI1NTE5Ci1wa19wYXJzZV9wdWJsaWNfa2V5ZmlsZV9lYzoiZGF0YV9maWxlcy9lY194MjU1MTlfcHViLnBlbSI6MAorcGtfcGFyc2VfcHVibGljX2tleWZpbGVfZWM6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL2VjX3gyNTUxOV9wdWIucGVtIjowCiAKIFBhcnNlIFB1YmxpYyBFQyBLZXkgIzEzIChSRkMgODQxMCwgUEVNLCBYNDQ4KQogZGVwZW5kc19vbjpNQkVEVExTX1BFTV9QQVJTRV9DOk1CRURUTFNfRUNQX0hBVkVfQ1VSVkU0NDgKLXBrX3BhcnNlX3B1YmxpY19rZXlmaWxlX2VjOiJkYXRhX2ZpbGVzL2VjX3g0NDhfcHViLnBlbSI6MAorcGtfcGFyc2VfcHVibGljX2tleWZpbGVfZWM6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL2VjX3g0NDhfcHViLnBlbSI6MAogCiBQYXJzZSBFQyBLZXkgIzEgKFNFQzEgREVSKQotZGVwZW5kc19vbjpNQkVEVExTX1BLX0hBVkVfRUNDX0tFWVM6TUJFRFRMU19FQ1BfSEFWRV9TRUNQMTkyUjEKLXBrX3BhcnNlX2tleWZpbGVfZWM6ImRhdGFfZmlsZXMvZWNfcHJ2LnNlYzEuZGVyIjoiTlVMTCI6MAorZGVwZW5kc19vbjpNQkVEVExTX1BLX0hBVkVfRUNDX0tFWVM6UFNBX1dBTlRfRUNDX1NFQ1BfUjFfMTkyCitwa19wYXJzZV9rZXlmaWxlX2VjOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9lY19wcnYuc2VjMS5kZXIiOiJOVUxMIjowCiAKIFBhcnNlIEVDIEtleSAjMiAoU0VDMSBQRU0pCi1kZXBlbmRzX29uOk1CRURUTFNfUEVNX1BBUlNFX0M6TUJFRFRMU19FQ1BfSEFWRV9TRUNQMTkyUjEKLXBrX3BhcnNlX2tleWZpbGVfZWM6ImRhdGFfZmlsZXMvZWNfcHJ2LnNlYzEucGVtIjoiTlVMTCI6MAorZGVwZW5kc19vbjpNQkVEVExTX1BFTV9QQVJTRV9DOlBTQV9XQU5UX0VDQ19TRUNQX1IxXzE5MgorcGtfcGFyc2Vfa2V5ZmlsZV9lYzoiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvZWNfcHJ2LnNlYzEucGVtIjoiTlVMTCI6MAogCiBQYXJzZSBFQyBLZXkgIzJhIChTRUMxIFBFTSwgc2VjcDE5MnIxLCBjb21wcmVzc2VkKQogZGVwZW5kc19vbjpNQkVEVExTX1BFTV9QQVJTRV9DOk1CRURUTFNfUEtfUEFSU0VfRUNfQ09NUFJFU1NFRDpNQkVEVExTX0VDUF9EUF9TRUNQMTkyUjFfRU5BQkxFRAotcGtfcGFyc2Vfa2V5ZmlsZV9lYzoiZGF0YV9maWxlcy9lY19wcnYuc2VjMS5jb21wLnBlbSI6Ik5VTEwiOjAKK3BrX3BhcnNlX2tleWZpbGVfZWM6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL2VjX3Bydi5zZWMxLmNvbXAucGVtIjoiTlVMTCI6MAogCiBQYXJzZSBFQyBLZXkgIzMgKFNFQzEgUEVNIGVuY3J5cHRlZCkKLWRlcGVuZHNfb246TUJFRFRMU19ERVNfQzpNQkVEVExTX1BFTV9QQVJTRV9DOk1CRURUTFNfRUNQX0hBVkVfU0VDUDE5MlIxOk1CRURUTFNfQ0lQSEVSX01PREVfQ0JDOk1CRURUTFNfTURfQ0FOX01ENQotcGtfcGFyc2Vfa2V5ZmlsZV9lYzoiZGF0YV9maWxlcy9lY19wcnYuc2VjMS5wdy5wZW0iOiJwb2xhciI6MAorZGVwZW5kc19vbjpNQkVEVExTX0RFU19DOk1CRURUTFNfUEVNX1BBUlNFX0M6UFNBX1dBTlRfRUNDX1NFQ1BfUjFfMTkyOk1CRURUTFNfQ0lQSEVSX01PREVfQ0JDOk1CRURUTFNfTURfQ0FOX01ENQorcGtfcGFyc2Vfa2V5ZmlsZV9lYzoiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvZWNfcHJ2LnNlYzEucHcucGVtIjoicG9sYXIiOjAKIAogUGFyc2UgRUMgS2V5ICM0IChQS0NTOCBERVIpCi1kZXBlbmRzX29uOk1CRURUTFNfRUNQX0hBVkVfU0VDUDE5MlIxCi1wa19wYXJzZV9rZXlmaWxlX2VjOiJkYXRhX2ZpbGVzL2VjX3Bydi5wazguZGVyIjoiTlVMTCI6MAorZGVwZW5kc19vbjpQU0FfV0FOVF9FQ0NfU0VDUF9SMV8xOTIKK3BrX3BhcnNlX2tleWZpbGVfZWM6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL2VjX3Bydi5wazguZGVyIjoiTlVMTCI6MAogCiBQYXJzZSBFQyBLZXkgIzRhIChQS0NTOCBERVIsIG5vIHB1YmxpYyBrZXkpCiBkZXBlbmRzX29uOk1CRURUTFNfRUNQX0hBVkVfU0VDUDI1NlIxCi1wa19wYXJzZV9rZXlmaWxlX2VjOiJkYXRhX2ZpbGVzL2VjX3Bydi5wazhub3B1Yi5kZXIiOiJOVUxMIjowCitwa19wYXJzZV9rZXlmaWxlX2VjOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9lY19wcnYucGs4bm9wdWIuZGVyIjoiTlVMTCI6MAogCiBQYXJzZSBFQyBLZXkgIzRiIChQS0NTOCBERVIsIG5vIHB1YmxpYyBrZXksIHdpdGggcGFyYW1ldGVycykKIGRlcGVuZHNfb246TUJFRFRMU19FQ1BfSEFWRV9TRUNQMjU2UjEKLXBrX3BhcnNlX2tleWZpbGVfZWM6ImRhdGFfZmlsZXMvZWNfcHJ2LnBrOG5vcHVicGFyYW0uZGVyIjoiTlVMTCI6MAorcGtfcGFyc2Vfa2V5ZmlsZV9lYzoiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvZWNfcHJ2LnBrOG5vcHVicGFyYW0uZGVyIjoiTlVMTCI6MAogCiBQYXJzZSBFQyBLZXkgIzRjIChQS0NTOCBERVIsIHdpdGggcGFyYW1ldGVycykKIGRlcGVuZHNfb246TUJFRFRMU19FQ1BfSEFWRV9TRUNQMjU2UjEKLXBrX3BhcnNlX2tleWZpbGVfZWM6ImRhdGFfZmlsZXMvZWNfcHJ2LnBrOHBhcmFtLmRlciI6Ik5VTEwiOjAKK3BrX3BhcnNlX2tleWZpbGVfZWM6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL2VjX3Bydi5wazhwYXJhbS5kZXIiOiJOVUxMIjowCiAKIFBhcnNlIEVDIEtleSAjNSAoUEtDUzggUEVNKQotZGVwZW5kc19vbjpNQkVEVExTX1BFTV9QQVJTRV9DOk1CRURUTFNfRUNQX0hBVkVfU0VDUDE5MlIxCi1wa19wYXJzZV9rZXlmaWxlX2VjOiJkYXRhX2ZpbGVzL2VjX3Bydi5wazgucGVtIjoiTlVMTCI6MAorZGVwZW5kc19vbjpNQkVEVExTX1BFTV9QQVJTRV9DOlBTQV9XQU5UX0VDQ19TRUNQX1IxXzE5MgorcGtfcGFyc2Vfa2V5ZmlsZV9lYzoiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvZWNfcHJ2LnBrOC5wZW0iOiJOVUxMIjowCiAKIFBhcnNlIEVDIEtleSAjNWEgKFBLQ1M4IFBFTSwgbm8gcHVibGljIGtleSkKIGRlcGVuZHNfb246TUJFRFRMU19QRU1fUEFSU0VfQzpNQkVEVExTX0VDUF9IQVZFX1NFQ1AyNTZSMQotcGtfcGFyc2Vfa2V5ZmlsZV9lYzoiZGF0YV9maWxlcy9lY19wcnYucGs4bm9wdWIucGVtIjoiTlVMTCI6MAorcGtfcGFyc2Vfa2V5ZmlsZV9lYzoiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvZWNfcHJ2LnBrOG5vcHViLnBlbSI6Ik5VTEwiOjAKIAogUGFyc2UgRUMgS2V5ICM1YiAoUEtDUzggUEVNLCBubyBwdWJsaWMga2V5LCB3aXRoIHBhcmFtZXRlcnMpCiBkZXBlbmRzX29uOk1CRURUTFNfUEVNX1BBUlNFX0M6TUJFRFRMU19FQ1BfSEFWRV9TRUNQMjU2UjEKLXBrX3BhcnNlX2tleWZpbGVfZWM6ImRhdGFfZmlsZXMvZWNfcHJ2LnBrOG5vcHVicGFyYW0ucGVtIjoiTlVMTCI6MAorcGtfcGFyc2Vfa2V5ZmlsZV9lYzoiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvZWNfcHJ2LnBrOG5vcHVicGFyYW0ucGVtIjoiTlVMTCI6MAogCiBQYXJzZSBFQyBLZXkgIzVjIChQS0NTOCBQRU0sIHdpdGggcGFyYW1ldGVycykKIGRlcGVuZHNfb246TUJFRFRMU19QRU1fUEFSU0VfQzpNQkVEVExTX0VDUF9IQVZFX1NFQ1AyNTZSMQotcGtfcGFyc2Vfa2V5ZmlsZV9lYzoiZGF0YV9maWxlcy9lY19wcnYucGs4cGFyYW0ucGVtIjoiTlVMTCI6MAorcGtfcGFyc2Vfa2V5ZmlsZV9lYzoiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvZWNfcHJ2LnBrOHBhcmFtLnBlbSI6Ik5VTEwiOjAKIAogUGFyc2UgRUMgS2V5ICM4IChTRUMxIFBFTSwgc2VjcDIyNHIxKQotZGVwZW5kc19vbjpNQkVEVExTX1BFTV9QQVJTRV9DOk1CRURUTFNfRUNQX0hBVkVfU0VDUDIyNFIxCi1wa19wYXJzZV9rZXlmaWxlX2VjOiJkYXRhX2ZpbGVzL2VjXzIyNF9wcnYucGVtIjoiTlVMTCI6MAorZGVwZW5kc19vbjpNQkVEVExTX1BFTV9QQVJTRV9DOlBTQV9XQU5UX0VDQ19TRUNQX1IxXzIyNAorcGtfcGFyc2Vfa2V5ZmlsZV9lYzoiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvZWNfMjI0X3Bydi5wZW0iOiJOVUxMIjowCiAKIFBhcnNlIEVDIEtleSAjOGEgKFNFQzEgUEVNLCBzZWNwMjI0cjEsIGNvbXByZXNzZWQpCiBkZXBlbmRzX29uOk1CRURUTFNfUEVNX1BBUlNFX0M6TUJFRFRMU19QS19QQVJTRV9FQ19DT01QUkVTU0VEOk1CRURUTFNfRUNQX0RQX1NFQ1AyMjRSMV9FTkFCTEVECi1wa19wYXJzZV9rZXlmaWxlX2VjOiJkYXRhX2ZpbGVzL2VjXzIyNF9wcnYuY29tcC5wZW0iOiJOVUxMIjowCitwa19wYXJzZV9rZXlmaWxlX2VjOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9lY18yMjRfcHJ2LmNvbXAucGVtIjoiTlVMTCI6MAogCiBQYXJzZSBFQyBLZXkgIzkgKFNFQzEgUEVNLCBzZWNwMjU2cjEpCiBkZXBlbmRzX29uOk1CRURUTFNfUEVNX1BBUlNFX0M6TUJFRFRMU19FQ1BfSEFWRV9TRUNQMjU2UjEKLXBrX3BhcnNlX2tleWZpbGVfZWM6ImRhdGFfZmlsZXMvZWNfMjU2X3Bydi5wZW0iOiJOVUxMIjowCitwa19wYXJzZV9rZXlmaWxlX2VjOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9lY18yNTZfcHJ2LnBlbSI6Ik5VTEwiOjAKIAogUGFyc2UgRUMgS2V5ICM5YSAoU0VDMSBQRU0sIHNlY3AyNTZyMSwgY29tcHJlc3NlZCkKIGRlcGVuZHNfb246TUJFRFRMU19QRU1fUEFSU0VfQzpNQkVEVExTX1BLX1BBUlNFX0VDX0NPTVBSRVNTRUQ6TUJFRFRMU19FQ1BfRFBfU0VDUDI1NlIxX0VOQUJMRUQKLXBrX3BhcnNlX2tleWZpbGVfZWM6ImRhdGFfZmlsZXMvZWNfMjU2X3Bydi5jb21wLnBlbSI6Ik5VTEwiOjAKK3BrX3BhcnNlX2tleWZpbGVfZWM6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL2VjXzI1Nl9wcnYuY29tcC5wZW0iOiJOVUxMIjowCiAKIFBhcnNlIEVDIEtleSAjMTAgKFNFQzEgUEVNLCBzZWNwMzg0cjEpCiBkZXBlbmRzX29uOk1CRURUTFNfUEVNX1BBUlNFX0M6TUJFRFRMU19FQ1BfSEFWRV9TRUNQMzg0UjEKLXBrX3BhcnNlX2tleWZpbGVfZWM6ImRhdGFfZmlsZXMvZWNfMzg0X3Bydi5wZW0iOiJOVUxMIjowCitwa19wYXJzZV9rZXlmaWxlX2VjOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9lY18zODRfcHJ2LnBlbSI6Ik5VTEwiOjAKIAogUGFyc2UgRUMgS2V5ICMxMGEgKFNFQzEgUEVNLCBzZWNwMzg0cjEsIGNvbXByZXNzZWQpCiBkZXBlbmRzX29uOk1CRURUTFNfUEVNX1BBUlNFX0M6TUJFRFRMU19QS19QQVJTRV9FQ19DT01QUkVTU0VEOk1CRURUTFNfRUNQX0RQX1NFQ1AzODRSMV9FTkFCTEVECi1wa19wYXJzZV9rZXlmaWxlX2VjOiJkYXRhX2ZpbGVzL2VjXzM4NF9wcnYuY29tcC5wZW0iOiJOVUxMIjowCitwa19wYXJzZV9rZXlmaWxlX2VjOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9lY18zODRfcHJ2LmNvbXAucGVtIjoiTlVMTCI6MAogCiBQYXJzZSBFQyBLZXkgIzExIChTRUMxIFBFTSwgc2VjcDUyMXIxKQogZGVwZW5kc19vbjpNQkVEVExTX1BFTV9QQVJTRV9DOk1CRURUTFNfRUNQX0hBVkVfU0VDUDUyMVIxCi1wa19wYXJzZV9rZXlmaWxlX2VjOiJkYXRhX2ZpbGVzL2VjXzUyMV9wcnYucGVtIjoiTlVMTCI6MAorcGtfcGFyc2Vfa2V5ZmlsZV9lYzoiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvZWNfNTIxX3Bydi5wZW0iOiJOVUxMIjowCiAKIFBhcnNlIEVDIEtleSAjMTFhIChTRUMxIFBFTSwgc2VjcDUyMXIxLCBjb21wcmVzc2VkKQogZGVwZW5kc19vbjpNQkVEVExTX1BFTV9QQVJTRV9DOk1CRURUTFNfUEtfUEFSU0VfRUNfQ09NUFJFU1NFRDpNQkVEVExTX0VDUF9EUF9TRUNQNTIxUjFfRU5BQkxFRAotcGtfcGFyc2Vfa2V5ZmlsZV9lYzoiZGF0YV9maWxlcy9lY181MjFfcHJ2LmNvbXAucGVtIjoiTlVMTCI6MAorcGtfcGFyc2Vfa2V5ZmlsZV9lYzoiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvZWNfNTIxX3Bydi5jb21wLnBlbSI6Ik5VTEwiOjAKIAogUGFyc2UgRUMgS2V5ICMxMiAoU0VDMSBQRU0sIGJwMjU2cjEpCi1kZXBlbmRzX29uOk1CRURUTFNfUEVNX1BBUlNFX0M6TUJFRFRMU19FQ1BfSEFWRV9CUDI1NlIxCi1wa19wYXJzZV9rZXlmaWxlX2VjOiJkYXRhX2ZpbGVzL2VjX2JwMjU2X3Bydi5wZW0iOiJOVUxMIjowCitkZXBlbmRzX29uOk1CRURUTFNfUEVNX1BBUlNFX0M6UFNBX1dBTlRfRUNDX0JSQUlOUE9PTF9QX1IxXzI1NgorcGtfcGFyc2Vfa2V5ZmlsZV9lYzoiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvZWNfYnAyNTZfcHJ2LnBlbSI6Ik5VTEwiOjAKIAogUGFyc2UgRUMgS2V5ICMxMmEgKFNFQzEgUEVNLCBicDI1NnIxLCBjb21wcmVzc2VkKQogZGVwZW5kc19vbjpNQkVEVExTX1BFTV9QQVJTRV9DOk1CRURUTFNfUEtfUEFSU0VfRUNfQ09NUFJFU1NFRDpNQkVEVExTX0VDUF9EUF9CUDI1NlIxX0VOQUJMRUQKLXBrX3BhcnNlX2tleWZpbGVfZWM6ImRhdGFfZmlsZXMvZWNfYnAyNTZfcHJ2LmNvbXAucGVtIjoiTlVMTCI6MAorcGtfcGFyc2Vfa2V5ZmlsZV9lYzoiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvZWNfYnAyNTZfcHJ2LmNvbXAucGVtIjoiTlVMTCI6MAogCiBQYXJzZSBFQyBLZXkgIzEzIChTRUMxIFBFTSwgYnAzODRyMSkKLWRlcGVuZHNfb246TUJFRFRMU19QRU1fUEFSU0VfQzpNQkVEVExTX0VDUF9IQVZFX0JQMzg0UjEKLXBrX3BhcnNlX2tleWZpbGVfZWM6ImRhdGFfZmlsZXMvZWNfYnAzODRfcHJ2LnBlbSI6Ik5VTEwiOjAKK2RlcGVuZHNfb246TUJFRFRMU19QRU1fUEFSU0VfQzpQU0FfV0FOVF9FQ0NfQlJBSU5QT09MX1BfUjFfMzg0Citwa19wYXJzZV9rZXlmaWxlX2VjOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9lY19icDM4NF9wcnYucGVtIjoiTlVMTCI6MAogCiBQYXJzZSBFQyBLZXkgIzEzYSAoU0VDMSBQRU0sIGJwMzg0cjEsIGNvbXByZXNzZWQpCiBkZXBlbmRzX29uOk1CRURUTFNfUEVNX1BBUlNFX0M6TUJFRFRMU19QS19QQVJTRV9FQ19DT01QUkVTU0VEOk1CRURUTFNfRUNQX0RQX0JQMzg0UjFfRU5BQkxFRAotcGtfcGFyc2Vfa2V5ZmlsZV9lYzoiZGF0YV9maWxlcy9lY19icDM4NF9wcnYuY29tcC5wZW0iOiJOVUxMIjowCitwa19wYXJzZV9rZXlmaWxlX2VjOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9lY19icDM4NF9wcnYuY29tcC5wZW0iOiJOVUxMIjowCiAKIFBhcnNlIEVDIEtleSAjMTQgKFNFQzEgUEVNLCBicDUxMnIxKQotZGVwZW5kc19vbjpNQkVEVExTX1BFTV9QQVJTRV9DOk1CRURUTFNfRUNQX0hBVkVfQlA1MTJSMQotcGtfcGFyc2Vfa2V5ZmlsZV9lYzoiZGF0YV9maWxlcy9lY19icDUxMl9wcnYucGVtIjoiTlVMTCI6MAorZGVwZW5kc19vbjpNQkVEVExTX1BFTV9QQVJTRV9DOlBTQV9XQU5UX0VDQ19CUkFJTlBPT0xfUF9SMV81MTIKK3BrX3BhcnNlX2tleWZpbGVfZWM6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL2VjX2JwNTEyX3Bydi5wZW0iOiJOVUxMIjowCiAKIFBhcnNlIEVDIEtleSAjMTRhIChTRUMxIFBFTSwgYnA1MTJyMSwgY29tcHJlc3NlZCkKIGRlcGVuZHNfb246TUJFRFRMU19QRU1fUEFSU0VfQzpNQkVEVExTX1BLX1BBUlNFX0VDX0NPTVBSRVNTRUQ6TUJFRFRMU19FQ1BfRFBfQlA1MTJSMV9FTkFCTEVECi1wa19wYXJzZV9rZXlmaWxlX2VjOiJkYXRhX2ZpbGVzL2VjX2JwNTEyX3Bydi5jb21wLnBlbSI6Ik5VTEwiOjAKK3BrX3BhcnNlX2tleWZpbGVfZWM6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL2VjX2JwNTEyX3Bydi5jb21wLnBlbSI6Ik5VTEwiOjAKIAogUGFyc2UgRUMgS2V5ICMxNSAoU0VDMSBERVIsIHNlY3AyNTZrMSwgU3BlY2lmaWVkRUNEb21haW4pCiBkZXBlbmRzX29uOk1CRURUTFNfRUNQX0RQX1NFQ1AyNTZLMV9FTkFCTEVEOk1CRURUTFNfUEtfUEFSU0VfRUNfRVhURU5ERUQKLXBrX3BhcnNlX2tleWZpbGVfZWM6ImRhdGFfZmlsZXMvZWNfcHJ2LnNwZWNkb20uZGVyIjoiTlVMTCI6MAorcGtfcGFyc2Vfa2V5ZmlsZV9lYzoiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvZWNfcHJ2LnNwZWNkb20uZGVyIjoiTlVMTCI6MAogCiBQYXJzZSBFQyBLZXkgIzE2IChSRkMgODQxMCwgREVSLCBYMjU1MTkpCiBkZXBlbmRzX29uOk1CRURUTFNfRUNQX0hBVkVfQ1VSVkUyNTUxOQotcGtfcGFyc2Vfa2V5ZmlsZV9lYzoiZGF0YV9maWxlcy9lY194MjU1MTlfcHJ2LmRlciI6Ik5VTEwiOjAKK3BrX3BhcnNlX2tleWZpbGVfZWM6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL2VjX3gyNTUxOV9wcnYuZGVyIjoiTlVMTCI6MAogCiBQYXJzZSBFQyBLZXkgIzE3IChSRkMgODQxMCwgREVSLCBYNDQ4KQogZGVwZW5kc19vbjpNQkVEVExTX0VDUF9IQVZFX0NVUlZFNDQ4Ci1wa19wYXJzZV9rZXlmaWxlX2VjOiJkYXRhX2ZpbGVzL2VjX3g0NDhfcHJ2LmRlciI6Ik5VTEwiOjAKK3BrX3BhcnNlX2tleWZpbGVfZWM6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL2VjX3g0NDhfcHJ2LmRlciI6Ik5VTEwiOjAKIAogUGFyc2UgRUMgS2V5ICMxOCAoUkZDIDg0MTAsIFBFTSwgWDI1NTE5KQogZGVwZW5kc19vbjpNQkVEVExTX1BFTV9QQVJTRV9DOk1CRURUTFNfRUNQX0hBVkVfQ1VSVkUyNTUxOQotcGtfcGFyc2Vfa2V5ZmlsZV9lYzoiZGF0YV9maWxlcy9lY194MjU1MTlfcHJ2LnBlbSI6Ik5VTEwiOjAKK3BrX3BhcnNlX2tleWZpbGVfZWM6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL2VjX3gyNTUxOV9wcnYucGVtIjoiTlVMTCI6MAogCiBQYXJzZSBFQyBLZXkgIzE5IChSRkMgODQxMCwgUEVNLCBYNDQ4KQogZGVwZW5kc19vbjpNQkVEVExTX1BFTV9QQVJTRV9DOk1CRURUTFNfRUNQX0hBVkVfQ1VSVkU0NDgKLXBrX3BhcnNlX2tleWZpbGVfZWM6ImRhdGFfZmlsZXMvZWNfeDQ0OF9wcnYucGVtIjoiTlVMTCI6MAorcGtfcGFyc2Vfa2V5ZmlsZV9lYzoiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvZWNfeDQ0OF9wcnYucGVtIjoiTlVMTCI6MAogCiBLZXkgQVNOMSAoTm8gZGF0YSkKIHBrX3BhcnNlX2tleToiIjpNQkVEVExTX0VSUl9QS19LRVlfSU5WQUxJRF9GT1JNQVQKZGlmZiAtLWdpdCBhL3Rlc3RzL3N1aXRlcy90ZXN0X3N1aXRlX3Brd3JpdGUuZGF0YSBiL3Rlc3RzL3N1aXRlcy90ZXN0X3N1aXRlX3Brd3JpdGUuZGF0YQppbmRleCBkNTgyMjZlLi43MTFlODY4IDEwMDY0NAotLS0gYS90ZXN0cy9zdWl0ZXMvdGVzdF9zdWl0ZV9wa3dyaXRlLmRhdGEKKysrIGIvdGVzdHMvc3VpdGVzL3Rlc3Rfc3VpdGVfcGt3cml0ZS5kYXRhCkBAIC0xLDE1NSArMSwxNTUgQEAKIFB1YmxpYyBrZXkgd3JpdGUgY2hlY2sgUlNBCiBkZXBlbmRzX29uOk1CRURUTFNfUlNBX0M6TUJFRFRMU19QRU1fUEFSU0VfQzpNQkVEVExTX1BFTV9XUklURV9DCi1wa193cml0ZV9wdWJrZXlfY2hlY2s6ImRhdGFfZmlsZXMvc2VydmVyMS5wdWJrZXkiOlRFU1RfUEVNCitwa193cml0ZV9wdWJrZXlfY2hlY2s6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3NlcnZlcjEucHVia2V5IjpURVNUX1BFTQogCiBQdWJsaWMga2V5IHdyaXRlIGNoZWNrIFJTQSAoREVSKQogZGVwZW5kc19vbjpNQkVEVExTX1JTQV9DCi1wa193cml0ZV9wdWJrZXlfY2hlY2s6ImRhdGFfZmlsZXMvc2VydmVyMS5wdWJrZXkuZGVyIjpURVNUX0RFUgorcGtfd3JpdGVfcHVia2V5X2NoZWNrOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9zZXJ2ZXIxLnB1YmtleS5kZXIiOlRFU1RfREVSCiAKIFB1YmxpYyBrZXkgd3JpdGUgY2hlY2sgUlNBIDQwOTYKIGRlcGVuZHNfb246TUJFRFRMU19SU0FfQzpNQkVEVExTX1BFTV9QQVJTRV9DOk1CRURUTFNfUEVNX1dSSVRFX0MKLXBrX3dyaXRlX3B1YmtleV9jaGVjazoiZGF0YV9maWxlcy9yc2E0MDk2X3B1Yi5wZW0iOlRFU1RfUEVNCitwa193cml0ZV9wdWJrZXlfY2hlY2s6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3JzYTQwOTZfcHViLnBlbSI6VEVTVF9QRU0KIAogUHVibGljIGtleSB3cml0ZSBjaGVjayBSU0EgNDA5NiAoREVSKQogZGVwZW5kc19vbjpNQkVEVExTX1JTQV9DCi1wa193cml0ZV9wdWJrZXlfY2hlY2s6ImRhdGFfZmlsZXMvcnNhNDA5Nl9wdWIuZGVyIjpURVNUX0RFUgorcGtfd3JpdGVfcHVia2V5X2NoZWNrOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9yc2E0MDk2X3B1Yi5kZXIiOlRFU1RfREVSCiAKIFB1YmxpYyBrZXkgd3JpdGUgY2hlY2sgRUMgMTkyIGJpdHMKLWRlcGVuZHNfb246TUJFRFRMU19QS19IQVZFX0VDQ19LRVlTOk1CRURUTFNfUEVNX1BBUlNFX0M6TUJFRFRMU19QRU1fV1JJVEVfQzpNQkVEVExTX0VDUF9IQVZFX1NFQ1AxOTJSMQotcGtfd3JpdGVfcHVia2V5X2NoZWNrOiJkYXRhX2ZpbGVzL2VjX3B1Yi5wZW0iOlRFU1RfUEVNCitkZXBlbmRzX29uOk1CRURUTFNfUEtfSEFWRV9FQ0NfS0VZUzpNQkVEVExTX1BFTV9QQVJTRV9DOk1CRURUTFNfUEVNX1dSSVRFX0M6UFNBX1dBTlRfRUNDX1NFQ1BfUjFfMTkyCitwa193cml0ZV9wdWJrZXlfY2hlY2s6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL2VjX3B1Yi5wZW0iOlRFU1RfUEVNCiAKIFB1YmxpYyBrZXkgd3JpdGUgY2hlY2sgRUMgMTkyIGJpdHMgKERFUikKLWRlcGVuZHNfb246TUJFRFRMU19QS19IQVZFX0VDQ19LRVlTOk1CRURUTFNfRUNQX0hBVkVfU0VDUDE5MlIxCi1wa193cml0ZV9wdWJrZXlfY2hlY2s6ImRhdGFfZmlsZXMvZWNfcHViLmRlciI6VEVTVF9ERVIKK2RlcGVuZHNfb246TUJFRFRMU19QS19IQVZFX0VDQ19LRVlTOlBTQV9XQU5UX0VDQ19TRUNQX1IxXzE5MgorcGtfd3JpdGVfcHVia2V5X2NoZWNrOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9lY19wdWIuZGVyIjpURVNUX0RFUgogCiBQdWJsaWMga2V5IHdyaXRlIGNoZWNrIEVDIDUyMSBiaXRzCiBkZXBlbmRzX29uOk1CRURUTFNfUEtfSEFWRV9FQ0NfS0VZUzpNQkVEVExTX1BFTV9QQVJTRV9DOk1CRURUTFNfUEVNX1dSSVRFX0M6TUJFRFRMU19FQ1BfSEFWRV9TRUNQNTIxUjEKLXBrX3dyaXRlX3B1YmtleV9jaGVjazoiZGF0YV9maWxlcy9lY181MjFfcHViLnBlbSI6VEVTVF9QRU0KK3BrX3dyaXRlX3B1YmtleV9jaGVjazoiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvZWNfNTIxX3B1Yi5wZW0iOlRFU1RfUEVNCiAKIFB1YmxpYyBrZXkgd3JpdGUgY2hlY2sgRUMgNTIxIGJpdHMgKERFUikKIGRlcGVuZHNfb246TUJFRFRMU19QS19IQVZFX0VDQ19LRVlTOk1CRURUTFNfRUNQX0hBVkVfU0VDUDUyMVIxCi1wa193cml0ZV9wdWJrZXlfY2hlY2s6ImRhdGFfZmlsZXMvZWNfNTIxX3B1Yi5kZXIiOlRFU1RfREVSCitwa193cml0ZV9wdWJrZXlfY2hlY2s6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL2VjXzUyMV9wdWIuZGVyIjpURVNUX0RFUgogCiBQdWJsaWMga2V5IHdyaXRlIGNoZWNrIEVDIEJyYWlucG9vbCA1MTIgYml0cwotZGVwZW5kc19vbjpNQkVEVExTX1BLX0hBVkVfRUNDX0tFWVM6TUJFRFRMU19QRU1fUEFSU0VfQzpNQkVEVExTX1BFTV9XUklURV9DOk1CRURUTFNfRUNQX0hBVkVfQlA1MTJSMQotcGtfd3JpdGVfcHVia2V5X2NoZWNrOiJkYXRhX2ZpbGVzL2VjX2JwNTEyX3B1Yi5wZW0iOlRFU1RfUEVNCitkZXBlbmRzX29uOk1CRURUTFNfUEtfSEFWRV9FQ0NfS0VZUzpNQkVEVExTX1BFTV9QQVJTRV9DOk1CRURUTFNfUEVNX1dSSVRFX0M6UFNBX1dBTlRfRUNDX0JSQUlOUE9PTF9QX1IxXzUxMgorcGtfd3JpdGVfcHVia2V5X2NoZWNrOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9lY19icDUxMl9wdWIucGVtIjpURVNUX1BFTQogCiBQdWJsaWMga2V5IHdyaXRlIGNoZWNrIEVDIEJyYWlucG9vbCA1MTIgYml0cyAoREVSKQotZGVwZW5kc19vbjpNQkVEVExTX1BLX0hBVkVfRUNDX0tFWVM6TUJFRFRMU19FQ1BfSEFWRV9CUDUxMlIxCi1wa193cml0ZV9wdWJrZXlfY2hlY2s6ImRhdGFfZmlsZXMvZWNfYnA1MTJfcHViLmRlciI6VEVTVF9ERVIKK2RlcGVuZHNfb246TUJFRFRMU19QS19IQVZFX0VDQ19LRVlTOlBTQV9XQU5UX0VDQ19CUkFJTlBPT0xfUF9SMV81MTIKK3BrX3dyaXRlX3B1YmtleV9jaGVjazoiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvZWNfYnA1MTJfcHViLmRlciI6VEVTVF9ERVIKIAogUHVibGljIGtleSB3cml0ZSBjaGVjayBFQyBYMjU1MTkKIGRlcGVuZHNfb246TUJFRFRMU19QS19IQVZFX0VDQ19LRVlTOk1CRURUTFNfUEVNX1BBUlNFX0M6TUJFRFRMU19QRU1fV1JJVEVfQzpNQkVEVExTX0VDUF9IQVZFX0NVUlZFMjU1MTkKLXBrX3dyaXRlX3B1YmtleV9jaGVjazoiZGF0YV9maWxlcy9lY194MjU1MTlfcHViLnBlbSI6VEVTVF9QRU0KK3BrX3dyaXRlX3B1YmtleV9jaGVjazoiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvZWNfeDI1NTE5X3B1Yi5wZW0iOlRFU1RfUEVNCiAKIFB1YmxpYyBrZXkgd3JpdGUgY2hlY2sgRUMgWDI1NTE5IChERVIpCiBkZXBlbmRzX29uOk1CRURUTFNfUEtfSEFWRV9FQ0NfS0VZUzpNQkVEVExTX0VDUF9IQVZFX0NVUlZFMjU1MTkKLXBrX3dyaXRlX3B1YmtleV9jaGVjazoiZGF0YV9maWxlcy9lY194MjU1MTlfcHViLmRlciI6VEVTVF9ERVIKK3BrX3dyaXRlX3B1YmtleV9jaGVjazoiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvZWNfeDI1NTE5X3B1Yi5kZXIiOlRFU1RfREVSCiAKIFB1YmxpYyBrZXkgd3JpdGUgY2hlY2sgRUMgWDQ0OAogZGVwZW5kc19vbjpNQkVEVExTX1BLX0hBVkVfRUNDX0tFWVM6TUJFRFRMU19QRU1fUEFSU0VfQzpNQkVEVExTX1BFTV9XUklURV9DOk1CRURUTFNfRUNQX0hBVkVfQ1VSVkU0NDgKLXBrX3dyaXRlX3B1YmtleV9jaGVjazoiZGF0YV9maWxlcy9lY194NDQ4X3B1Yi5wZW0iOlRFU1RfUEVNCitwa193cml0ZV9wdWJrZXlfY2hlY2s6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL2VjX3g0NDhfcHViLnBlbSI6VEVTVF9QRU0KIAogUHVibGljIGtleSB3cml0ZSBjaGVjayBFQyBYNDQ4IChERVIpCiBkZXBlbmRzX29uOk1CRURUTFNfUEtfSEFWRV9FQ0NfS0VZUzpNQkVEVExTX0VDUF9IQVZFX0NVUlZFNDQ4Ci1wa193cml0ZV9wdWJrZXlfY2hlY2s6ImRhdGFfZmlsZXMvZWNfeDQ0OF9wdWIuZGVyIjpURVNUX0RFUgorcGtfd3JpdGVfcHVia2V5X2NoZWNrOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9lY194NDQ4X3B1Yi5kZXIiOlRFU1RfREVSCiAKIFByaXZhdGUga2V5IHdyaXRlIGNoZWNrIFJTQQogZGVwZW5kc19vbjpNQkVEVExTX1JTQV9DOk1CRURUTFNfUEVNX1BBUlNFX0M6TUJFRFRMU19QRU1fV1JJVEVfQwotcGtfd3JpdGVfa2V5X2NoZWNrOiJkYXRhX2ZpbGVzL3NlcnZlcjEua2V5IjpURVNUX1BFTQorcGtfd3JpdGVfa2V5X2NoZWNrOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9zZXJ2ZXIxLmtleSI6VEVTVF9QRU0KIAogUHJpdmF0ZSBrZXkgd3JpdGUgY2hlY2sgUlNBIChERVIpCiBkZXBlbmRzX29uOk1CRURUTFNfUlNBX0MKLXBrX3dyaXRlX2tleV9jaGVjazoiZGF0YV9maWxlcy9zZXJ2ZXIxLmtleS5kZXIiOlRFU1RfREVSCitwa193cml0ZV9rZXlfY2hlY2s6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3NlcnZlcjEua2V5LmRlciI6VEVTVF9ERVIKIAogUHJpdmF0ZSBrZXkgd3JpdGUgY2hlY2sgUlNBIDQwOTYKIGRlcGVuZHNfb246TUJFRFRMU19SU0FfQzpNQkVEVExTX1BFTV9QQVJTRV9DOk1CRURUTFNfUEVNX1dSSVRFX0MKLXBrX3dyaXRlX2tleV9jaGVjazoiZGF0YV9maWxlcy9yc2E0MDk2X3Bydi5wZW0iOlRFU1RfUEVNCitwa193cml0ZV9rZXlfY2hlY2s6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3JzYTQwOTZfcHJ2LnBlbSI6VEVTVF9QRU0KIAogUHJpdmF0ZSBrZXkgd3JpdGUgY2hlY2sgUlNBIDQwOTYgKERFUikKIGRlcGVuZHNfb246TUJFRFRMU19SU0FfQwotcGtfd3JpdGVfa2V5X2NoZWNrOiJkYXRhX2ZpbGVzL3JzYTQwOTZfcHJ2LmRlciI6VEVTVF9ERVIKK3BrX3dyaXRlX2tleV9jaGVjazoiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvcnNhNDA5Nl9wcnYuZGVyIjpURVNUX0RFUgogCiBQcml2YXRlIGtleSB3cml0ZSBjaGVjayBFQyAxOTIgYml0cwotZGVwZW5kc19vbjpNQkVEVExTX1BLX0hBVkVfRUNDX0tFWVM6TUJFRFRMU19QRU1fUEFSU0VfQzpNQkVEVExTX1BFTV9XUklURV9DOk1CRURUTFNfRUNQX0hBVkVfU0VDUDE5MlIxCi1wa193cml0ZV9rZXlfY2hlY2s6ImRhdGFfZmlsZXMvZWNfcHJ2LnNlYzEucGVtIjpURVNUX1BFTQorZGVwZW5kc19vbjpNQkVEVExTX1BLX0hBVkVfRUNDX0tFWVM6TUJFRFRMU19QRU1fUEFSU0VfQzpNQkVEVExTX1BFTV9XUklURV9DOlBTQV9XQU5UX0VDQ19TRUNQX1IxXzE5MgorcGtfd3JpdGVfa2V5X2NoZWNrOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9lY19wcnYuc2VjMS5wZW0iOlRFU1RfUEVNCiAKIFByaXZhdGUga2V5IHdyaXRlIGNoZWNrIEVDIDE5MiBiaXRzIChERVIpCi1kZXBlbmRzX29uOk1CRURUTFNfUEtfSEFWRV9FQ0NfS0VZUzpNQkVEVExTX0VDUF9IQVZFX1NFQ1AxOTJSMQotcGtfd3JpdGVfa2V5X2NoZWNrOiJkYXRhX2ZpbGVzL2VjX3Bydi5zZWMxLmRlciI6VEVTVF9ERVIKK2RlcGVuZHNfb246TUJFRFRMU19QS19IQVZFX0VDQ19LRVlTOlBTQV9XQU5UX0VDQ19TRUNQX1IxXzE5MgorcGtfd3JpdGVfa2V5X2NoZWNrOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9lY19wcnYuc2VjMS5kZXIiOlRFU1RfREVSCiAKIFByaXZhdGUga2V5IHdyaXRlIGNoZWNrIEVDIDI1NiBiaXRzICh0b3AgYml0IHNldCkKIGRlcGVuZHNfb246TUJFRFRMU19QS19IQVZFX0VDQ19LRVlTOk1CRURUTFNfUEVNX1BBUlNFX0M6TUJFRFRMU19QRU1fV1JJVEVfQzpNQkVEVExTX0VDUF9IQVZFX1NFQ1AyNTZSMQotcGtfd3JpdGVfa2V5X2NoZWNrOiJkYXRhX2ZpbGVzL2VjXzI1Nl9sb25nX3Bydi5wZW0iOlRFU1RfUEVNCitwa193cml0ZV9rZXlfY2hlY2s6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL2VjXzI1Nl9sb25nX3Bydi5wZW0iOlRFU1RfUEVNCiAKIFByaXZhdGUga2V5IHdyaXRlIGNoZWNrIEVDIDI1NiBiaXRzICh0b3AgYml0IHNldCkgKERFUikKIGRlcGVuZHNfb246TUJFRFRMU19QS19IQVZFX0VDQ19LRVlTOk1CRURUTFNfRUNQX0hBVkVfU0VDUDI1NlIxCi1wa193cml0ZV9rZXlfY2hlY2s6ImRhdGFfZmlsZXMvZWNfMjU2X2xvbmdfcHJ2LmRlciI6VEVTVF9ERVIKK3BrX3dyaXRlX2tleV9jaGVjazoiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvZWNfMjU2X2xvbmdfcHJ2LmRlciI6VEVTVF9ERVIKIAogUHJpdmF0ZSBrZXkgd3JpdGUgY2hlY2sgRUMgNTIxIGJpdHMKIGRlcGVuZHNfb246TUJFRFRMU19QS19IQVZFX0VDQ19LRVlTOk1CRURUTFNfUEVNX1BBUlNFX0M6TUJFRFRMU19QRU1fV1JJVEVfQzpNQkVEVExTX0VDUF9IQVZFX1NFQ1A1MjFSMQotcGtfd3JpdGVfa2V5X2NoZWNrOiJkYXRhX2ZpbGVzL2VjXzUyMV9wcnYucGVtIjpURVNUX1BFTQorcGtfd3JpdGVfa2V5X2NoZWNrOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9lY181MjFfcHJ2LnBlbSI6VEVTVF9QRU0KIAogUHJpdmF0ZSBrZXkgd3JpdGUgY2hlY2sgRUMgNTIxIGJpdHMgKERFUikKIGRlcGVuZHNfb246TUJFRFRMU19QS19IQVZFX0VDQ19LRVlTOk1CRURUTFNfRUNQX0hBVkVfU0VDUDUyMVIxCi1wa193cml0ZV9rZXlfY2hlY2s6ImRhdGFfZmlsZXMvZWNfNTIxX3Bydi5kZXIiOlRFU1RfREVSCitwa193cml0ZV9rZXlfY2hlY2s6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL2VjXzUyMV9wcnYuZGVyIjpURVNUX0RFUgogCiBQcml2YXRlIGtleSB3cml0ZSBjaGVjayBFQyA1MjEgYml0cyAodG9wIGJ5dGUgaXMgMCkKIGRlcGVuZHNfb246TUJFRFRMU19QS19IQVZFX0VDQ19LRVlTOk1CRURUTFNfUEVNX1BBUlNFX0M6TUJFRFRMU19QRU1fV1JJVEVfQzpNQkVEVExTX0VDUF9IQVZFX1NFQ1A1MjFSMQotcGtfd3JpdGVfa2V5X2NoZWNrOiJkYXRhX2ZpbGVzL2VjXzUyMV9zaG9ydF9wcnYucGVtIjpURVNUX1BFTQorcGtfd3JpdGVfa2V5X2NoZWNrOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9lY181MjFfc2hvcnRfcHJ2LnBlbSI6VEVTVF9QRU0KIAogUHJpdmF0ZSBrZXkgd3JpdGUgY2hlY2sgRUMgNTIxIGJpdHMgKHRvcCBieXRlIGlzIDApIChERVIpCiBkZXBlbmRzX29uOk1CRURUTFNfUEtfSEFWRV9FQ0NfS0VZUzpNQkVEVExTX0VDUF9IQVZFX1NFQ1A1MjFSMQotcGtfd3JpdGVfa2V5X2NoZWNrOiJkYXRhX2ZpbGVzL2VjXzUyMV9zaG9ydF9wcnYuZGVyIjpURVNUX0RFUgorcGtfd3JpdGVfa2V5X2NoZWNrOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9lY181MjFfc2hvcnRfcHJ2LmRlciI6VEVTVF9ERVIKIAogUHJpdmF0ZSBrZXkgd3JpdGUgY2hlY2sgRUMgQnJhaW5wb29sIDUxMiBiaXRzCi1kZXBlbmRzX29uOk1CRURUTFNfUEtfSEFWRV9FQ0NfS0VZUzpNQkVEVExTX1BFTV9QQVJTRV9DOk1CRURUTFNfUEVNX1dSSVRFX0M6TUJFRFRMU19FQ1BfSEFWRV9CUDUxMlIxCi1wa193cml0ZV9rZXlfY2hlY2s6ImRhdGFfZmlsZXMvZWNfYnA1MTJfcHJ2LnBlbSI6VEVTVF9QRU0KK2RlcGVuZHNfb246TUJFRFRMU19QS19IQVZFX0VDQ19LRVlTOk1CRURUTFNfUEVNX1BBUlNFX0M6TUJFRFRMU19QRU1fV1JJVEVfQzpQU0FfV0FOVF9FQ0NfQlJBSU5QT09MX1BfUjFfNTEyCitwa193cml0ZV9rZXlfY2hlY2s6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL2VjX2JwNTEyX3Bydi5wZW0iOlRFU1RfUEVNCiAKIFByaXZhdGUga2V5IHdyaXRlIGNoZWNrIEVDIEJyYWlucG9vbCA1MTIgYml0cyAoREVSKQotZGVwZW5kc19vbjpNQkVEVExTX1BLX0hBVkVfRUNDX0tFWVM6TUJFRFRMU19FQ1BfSEFWRV9CUDUxMlIxCi1wa193cml0ZV9rZXlfY2hlY2s6ImRhdGFfZmlsZXMvZWNfYnA1MTJfcHJ2LmRlciI6VEVTVF9ERVIKK2RlcGVuZHNfb246TUJFRFRMU19QS19IQVZFX0VDQ19LRVlTOlBTQV9XQU5UX0VDQ19CUkFJTlBPT0xfUF9SMV81MTIKK3BrX3dyaXRlX2tleV9jaGVjazoiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvZWNfYnA1MTJfcHJ2LmRlciI6VEVTVF9ERVIKIAogUHJpdmF0ZSBrZXkgd3JpdGUgY2hlY2sgRUMgWDI1NTE5CiBkZXBlbmRzX29uOk1CRURUTFNfUEtfSEFWRV9FQ0NfS0VZUzpNQkVEVExTX1BFTV9QQVJTRV9DOk1CRURUTFNfUEVNX1dSSVRFX0M6TUJFRFRMU19FQ1BfSEFWRV9DVVJWRTI1NTE5Ci1wa193cml0ZV9rZXlfY2hlY2s6ImRhdGFfZmlsZXMvZWNfeDI1NTE5X3Bydi5wZW0iOlRFU1RfUEVNCitwa193cml0ZV9rZXlfY2hlY2s6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL2VjX3gyNTUxOV9wcnYucGVtIjpURVNUX1BFTQogCiBQcml2YXRlIGtleSB3cml0ZSBjaGVjayBFQyBYMjU1MTkgKERFUikKIGRlcGVuZHNfb246TUJFRFRMU19QS19IQVZFX0VDQ19LRVlTOk1CRURUTFNfRUNQX0hBVkVfQ1VSVkUyNTUxOQotcGtfd3JpdGVfa2V5X2NoZWNrOiJkYXRhX2ZpbGVzL2VjX3gyNTUxOV9wcnYuZGVyIjpURVNUX0RFUgorcGtfd3JpdGVfa2V5X2NoZWNrOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9lY194MjU1MTlfcHJ2LmRlciI6VEVTVF9ERVIKIAogUHJpdmF0ZSBrZXkgd3JpdGUgY2hlY2sgRUMgWDQ0OAogZGVwZW5kc19vbjpNQkVEVExTX1BLX0hBVkVfRUNDX0tFWVM6TUJFRFRMU19QRU1fUEFSU0VfQzpNQkVEVExTX1BFTV9XUklURV9DOk1CRURUTFNfRUNQX0hBVkVfQ1VSVkU0NDgKLXBrX3dyaXRlX2tleV9jaGVjazoiZGF0YV9maWxlcy9lY194NDQ4X3Bydi5wZW0iOlRFU1RfUEVNCitwa193cml0ZV9rZXlfY2hlY2s6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL2VjX3g0NDhfcHJ2LnBlbSI6VEVTVF9QRU0KIAogUHJpdmF0ZSBrZXkgd3JpdGUgY2hlY2sgRUMgWDQ0OCAoREVSKQogZGVwZW5kc19vbjpNQkVEVExTX1BLX0hBVkVfRUNDX0tFWVM6TUJFRFRMU19FQ1BfSEFWRV9DVVJWRTQ0OAotcGtfd3JpdGVfa2V5X2NoZWNrOiJkYXRhX2ZpbGVzL2VjX3g0NDhfcHJ2LmRlciI6VEVTVF9ERVIKK3BrX3dyaXRlX2tleV9jaGVjazoiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvZWNfeDQ0OF9wcnYuZGVyIjpURVNUX0RFUgogCiBEZXJpdmUgcHVibGljIGtleSBSU0EKIGRlcGVuZHNfb246TUJFRFRMU19SU0FfQwotcGtfd3JpdGVfcHVibGljX2Zyb21fcHJpdmF0ZToiZGF0YV9maWxlcy9zZXJ2ZXIxLmtleS5kZXIiOiJkYXRhX2ZpbGVzL3NlcnZlcjEucHVia2V5LmRlciIKK3BrX3dyaXRlX3B1YmxpY19mcm9tX3ByaXZhdGU6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3NlcnZlcjEua2V5LmRlciI6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3NlcnZlcjEucHVia2V5LmRlciIKIAogRGVyaXZlIHB1YmxpYyBrZXkgUlNBIDQwOTYKIGRlcGVuZHNfb246TUJFRFRMU19SU0FfQwotcGtfd3JpdGVfcHVibGljX2Zyb21fcHJpdmF0ZToiZGF0YV9maWxlcy9yc2E0MDk2X3Bydi5kZXIiOiJkYXRhX2ZpbGVzL3JzYTQwOTZfcHViLmRlciIKK3BrX3dyaXRlX3B1YmxpY19mcm9tX3ByaXZhdGU6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3JzYTQwOTZfcHJ2LmRlciI6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3JzYTQwOTZfcHViLmRlciIKIAogRGVyaXZlIHB1YmxpYyBrZXkgRUMgMTkyIGJpdHMKLWRlcGVuZHNfb246TUJFRFRMU19QS19IQVZFX0VDQ19LRVlTOk1CRURUTFNfRUNQX0hBVkVfU0VDUDE5MlIxCi1wa193cml0ZV9wdWJsaWNfZnJvbV9wcml2YXRlOiJkYXRhX2ZpbGVzL2VjX3Bydi5zZWMxLmRlciI6ImRhdGFfZmlsZXMvZWNfcHViLmRlciIKK2RlcGVuZHNfb246TUJFRFRMU19QS19IQVZFX0VDQ19LRVlTOlBTQV9XQU5UX0VDQ19TRUNQX1IxXzE5MgorcGtfd3JpdGVfcHVibGljX2Zyb21fcHJpdmF0ZToiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvZWNfcHJ2LnNlYzEuZGVyIjoiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvZWNfcHViLmRlciIKIAogRGVyaXZlIHB1YmxpYyBrZXkgRUMgNTIxIGJpdHMKIGRlcGVuZHNfb246TUJFRFRMU19QS19IQVZFX0VDQ19LRVlTOk1CRURUTFNfRUNQX0hBVkVfU0VDUDUyMVIxCi1wa193cml0ZV9wdWJsaWNfZnJvbV9wcml2YXRlOiJkYXRhX2ZpbGVzL2VjXzUyMV9wcnYuZGVyIjoiZGF0YV9maWxlcy9lY181MjFfcHViLmRlciIKK3BrX3dyaXRlX3B1YmxpY19mcm9tX3ByaXZhdGU6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL2VjXzUyMV9wcnYuZGVyIjoiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvZWNfNTIxX3B1Yi5kZXIiCiAKIERlcml2ZSBwdWJsaWMga2V5IEVDIEJyYWlucG9vbCA1MTIgYml0cwotZGVwZW5kc19vbjpNQkVEVExTX1BLX0hBVkVfRUNDX0tFWVM6TUJFRFRMU19FQ1BfSEFWRV9CUDUxMlIxCi1wa193cml0ZV9wdWJsaWNfZnJvbV9wcml2YXRlOiJkYXRhX2ZpbGVzL2VjX2JwNTEyX3Bydi5kZXIiOiJkYXRhX2ZpbGVzL2VjX2JwNTEyX3B1Yi5kZXIiCitkZXBlbmRzX29uOk1CRURUTFNfUEtfSEFWRV9FQ0NfS0VZUzpQU0FfV0FOVF9FQ0NfQlJBSU5QT09MX1BfUjFfNTEyCitwa193cml0ZV9wdWJsaWNfZnJvbV9wcml2YXRlOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9lY19icDUxMl9wcnYuZGVyIjoiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvZWNfYnA1MTJfcHViLmRlciIKIAogRGVyaXZlIHB1YmxpYyBrZXkgRUMgWDI1NTE5CiBkZXBlbmRzX29uOk1CRURUTFNfUEtfSEFWRV9FQ0NfS0VZUzpNQkVEVExTX0VDUF9IQVZFX0NVUlZFMjU1MTkKLXBrX3dyaXRlX3B1YmxpY19mcm9tX3ByaXZhdGU6ImRhdGFfZmlsZXMvZWNfeDI1NTE5X3Bydi5kZXIiOiJkYXRhX2ZpbGVzL2VjX3gyNTUxOV9wdWIuZGVyIgorcGtfd3JpdGVfcHVibGljX2Zyb21fcHJpdmF0ZToiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvZWNfeDI1NTE5X3Bydi5kZXIiOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9lY194MjU1MTlfcHViLmRlciIKIAogRGVyaXZlIHB1YmxpYyBrZXkgRUMgWDQ0OAogZGVwZW5kc19vbjpNQkVEVExTX1BLX0hBVkVfRUNDX0tFWVM6TUJFRFRMU19FQ1BfSEFWRV9DVVJWRTQ0OAotcGtfd3JpdGVfcHVibGljX2Zyb21fcHJpdmF0ZToiZGF0YV9maWxlcy9lY194NDQ4X3Bydi5kZXIiOiJkYXRhX2ZpbGVzL2VjX3g0NDhfcHViLmRlciIKK3BrX3dyaXRlX3B1YmxpY19mcm9tX3ByaXZhdGU6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL2VjX3g0NDhfcHJ2LmRlciI6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL2VjX3g0NDhfcHViLmRlciIKZGlmZiAtLWdpdCBhL3Rlc3RzL3N1aXRlcy90ZXN0X3N1aXRlX3BzYV9jcnlwdG8uZGF0YSBiL3Rlc3RzL3N1aXRlcy90ZXN0X3N1aXRlX3BzYV9jcnlwdG8uZGF0YQppbmRleCA0ZjI5YTdhLi4zMmM3Mjc0IDEwMDY0NAotLS0gYS90ZXN0cy9zdWl0ZXMvdGVzdF9zdWl0ZV9wc2FfY3J5cHRvLmRhdGEKKysrIGIvdGVzdHMvc3VpdGVzL3Rlc3Rfc3VpdGVfcHNhX2NyeXB0by5kYXRhCkBAIC0yNDEyLDkgKzI0MTIsOSBAQAogZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfQ0JDX05PX1BBRERJTkc6UFNBX1dBTlRfS0VZX1RZUEVfQUVTCiBjaXBoZXJfZGVjcnlwdF9mYWlsOlBTQV9BTEdfQ0JDX05PX1BBRERJTkc6UFNBX0tFWV9UWVBFX0FFUzoiMmI3ZTE1MTYyOGFlZDJhNmFiZjcxNTg4MDljZjRmM2MiOiIyYTJhMmEyYTJhMmEyYTJhMmEyYTJhMmEyYTJhMmEyYSI6IjZiYzFiZWUyMjMiOlBTQV9FUlJPUl9JTlZBTElEX0FSR1VNRU5UCiAKLVBTQSBzeW1tZXRyaWMgZGVjcnlwdDogQ0NNKi1uby10YWcsIGlucHV0IHRvbyBzaG9ydCAoMTUgYnl0ZXMpCitQU0Egc3ltbWV0cmljIGRlY3J5cHQ6IENDTSotbm8tdGFnLCBpbnB1dCB0b28gc2hvcnQgKDEyIGJ5dGVzKQogZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfQ0NNX1NUQVJfTk9fVEFHOlBTQV9XQU5UX0tFWV9UWVBFX0FFUwotY2lwaGVyX2RlY3J5cHRfZmFpbDpQU0FfQUxHX0NDTV9TVEFSX05PX1RBRzpQU0FfS0VZX1RZUEVfQUVTOiIxOWViZmRlMmQ1NDY4YmEwYTMwMzFiZGU2MjliMTFmZCI6IjVhOGFhNDg1YzMxNmU5IjoiMmEyYTJhMmEyYTJhMmEyYSI6UFNBX0VSUk9SX0lOVkFMSURfQVJHVU1FTlQKK2NpcGhlcl9kZWNyeXB0X2ZhaWw6UFNBX0FMR19DQ01fU1RBUl9OT19UQUc6UFNBX0tFWV9UWVBFX0FFUzoiMTllYmZkZTJkNTQ2OGJhMGEzMDMxYmRlNjI5YjExZmQiOiIwMTAyMDMwNDA1MDYwNzA4MDkwYTBiMGMiOiIiOlBTQV9FUlJPUl9JTlZBTElEX0FSR1VNRU5UCiAKIFBTQSBzeW1tZXRyaWMgZGVjcnlwdDogQUVTLUVDQiwgMCBieXRlcywgZ29vZAogZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfRUNCX05PX1BBRERJTkc6UFNBX1dBTlRfS0VZX1RZUEVfQUVTOiFNQkVEVExTX0JMT0NLX0NJUEhFUl9OT19ERUNSWVBUCkBAIC0yNDY0LDEwICsyNDY0LDI2IEBACiBkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19FQ0JfTk9fUEFERElORzpQU0FfV0FOVF9LRVlfVFlQRV9ERVMKIGNpcGhlcl9kZWNyeXB0OlBTQV9BTEdfRUNCX05PX1BBRERJTkc6UFNBX0tFWV9UWVBFX0RFUzoiMDEwMjA0MDcwODBiMGQwZWMxYzJjNGM3YzhjYmNkY2UzMTMyMzQzNzM4M2IzZDNlIjoiIjoiODE3Y2E3ZDY5YjgwZDg2YSI6ImM3OGUyYjM4MTM5NjEwZTMiCiAKLVBTQSBzeW1tZXRyaWMgZGVjcnlwdDogQ0NNKi1uby10YWcsIE5JU1QgRFZQVCBBRVMtMTI4ICMxNQorUFNBIHN5bW1ldHJpYyBkZWNyeXB0OiBDQ00qLW5vLXRhZywgTklTVCBEVlBUIEFFUy0xMjggIzE1LCAyNCBieXRlcwogZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfQ0NNX1NUQVJfTk9fVEFHOlBTQV9XQU5UX0tFWV9UWVBFX0FFUwogY2lwaGVyX2RlY3J5cHQ6UFNBX0FMR19DQ01fU1RBUl9OT19UQUc6UFNBX0tFWV9UWVBFX0FFUzoiOTA5MjlhNGIwYWM2NWIzNTBhZDE1OTE2MTFmZTQ4MjkiOiI1YThhYTQ4NWMzMTZlOTQwM2FmZjg1OWZiYiI6IjRiZmU0ZTM1Nzg0ZjBhNjViNTQ1NDc3ZTVlMmY0YmFlMGUxZTZmYTcxN2VhZjJjYiI6ImExNmEyZTc0MWYxY2Q5NzE3Mjg1YjZkODgyYzFmYzUzNjU1ZTk3NzM3NjFhZDY5NyIKIAorUFNBIHN5bW1ldHJpYyBkZWNyeXB0OiBDQ00qLW5vLXRhZywgTklTVCBEVlBUIEFFUy0xMjggIzE1LCAyMyBieXRlcworZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfQ0NNX1NUQVJfTk9fVEFHOlBTQV9XQU5UX0tFWV9UWVBFX0FFUworY2lwaGVyX2RlY3J5cHQ6UFNBX0FMR19DQ01fU1RBUl9OT19UQUc6UFNBX0tFWV9UWVBFX0FFUzoiOTA5MjlhNGIwYWM2NWIzNTBhZDE1OTE2MTFmZTQ4MjkiOiI1YThhYTQ4NWMzMTZlOTQwM2FmZjg1OWZiYiI6IjRiZmU0ZTM1Nzg0ZjBhNjViNTQ1NDc3ZTVlMmY0YmFlMGUxZTZmYTcxN2VhZjIiOiJhMTZhMmU3NDFmMWNkOTcxNzI4NWI2ZDg4MmMxZmM1MzY1NWU5NzczNzYxYWQ2IgorCitQU0Egc3ltbWV0cmljIGRlY3J5cHQ6IENDTSotbm8tdGFnLCBOSVNUIERWUFQgQUVTLTEyOCAjMTUsIDMgYnl0ZXMKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX0NDTV9TVEFSX05PX1RBRzpQU0FfV0FOVF9LRVlfVFlQRV9BRVMKK2NpcGhlcl9kZWNyeXB0OlBTQV9BTEdfQ0NNX1NUQVJfTk9fVEFHOlBTQV9LRVlfVFlQRV9BRVM6IjkwOTI5YTRiMGFjNjViMzUwYWQxNTkxNjExZmU0ODI5IjoiNWE4YWE0ODVjMzE2ZTk0MDNhZmY4NTlmYmIiOiI0YmZlNGUiOiJhMTZhMmUiCisKK1BTQSBzeW1tZXRyaWMgZGVjcnlwdDogQ0NNKi1uby10YWcsIE5JU1QgRFZQVCBBRVMtMTI4ICMxNSwgMiBieXRlcworZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfQ0NNX1NUQVJfTk9fVEFHOlBTQV9XQU5UX0tFWV9UWVBFX0FFUworY2lwaGVyX2RlY3J5cHQ6UFNBX0FMR19DQ01fU1RBUl9OT19UQUc6UFNBX0tFWV9UWVBFX0FFUzoiOTA5MjlhNGIwYWM2NWIzNTBhZDE1OTE2MTFmZTQ4MjkiOiI1YThhYTQ4NWMzMTZlOTQwM2FmZjg1OWZiYiI6IjRiZmUiOiJhMTZhIgorCitQU0Egc3ltbWV0cmljIGRlY3J5cHQ6IENDTSotbm8tdGFnLCBOSVNUIERWUFQgQUVTLTEyOCAjMTUsIDAgYnl0ZXMKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX0NDTV9TVEFSX05PX1RBRzpQU0FfV0FOVF9LRVlfVFlQRV9BRVMKK2NpcGhlcl9kZWNyeXB0OlBTQV9BTEdfQ0NNX1NUQVJfTk9fVEFHOlBTQV9LRVlfVFlQRV9BRVM6IjkwOTI5YTRiMGFjNjViMzUwYWQxNTkxNjExZmU0ODI5IjoiNWE4YWE0ODVjMzE2ZTk0MDNhZmY4NTlmYmIiOiIiOiIiCisKIFBTQSBzeW1tZXRyaWMgZGVjcnlwdDogQ2hhQ2hhMjAsIFJGQzc1Mzkga2V5c3RyZWFtCiBkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TVFJFQU1fQ0lQSEVSOlBTQV9XQU5UX0tFWV9UWVBFX0NIQUNIQTIwCiAjIEtleXN0cmVhbSBmcm9tIFJGQyA3NTM5IMKnMi40LjIsIHdpdGggYW4gZXh0cmEgNjQtYnl0ZSBvdXRwdXQgYmxvY2sgcHJlcGVuZGVkCmRpZmYgLS1naXQgYS90ZXN0cy9zdWl0ZXMvdGVzdF9zdWl0ZV9wc2FfY3J5cHRvX2F0dHJpYnV0ZXMuZnVuY3Rpb24gYi90ZXN0cy9zdWl0ZXMvdGVzdF9zdWl0ZV9wc2FfY3J5cHRvX2F0dHJpYnV0ZXMuZnVuY3Rpb24KaW5kZXggYzkzM2NiNy4uYmM3YWRiNCAxMDA2NDQKLS0tIGEvdGVzdHMvc3VpdGVzL3Rlc3Rfc3VpdGVfcHNhX2NyeXB0b19hdHRyaWJ1dGVzLmZ1bmN0aW9uCisrKyBiL3Rlc3RzL3N1aXRlcy90ZXN0X3N1aXRlX3BzYV9jcnlwdG9fYXR0cmlidXRlcy5mdW5jdGlvbgpAQCAtMjAsNiArMjAsOCBAQAogICAgIHBzYV9rZXlfdHlwZV90IHR5cGUgPSB0eXBlX2FyZzsKICAgICBzaXplX3QgYml0cyA9IGJpdHNfYXJnOwogCisgICAgVVNFX1BTQV9JTklUKCk7CisKICAgICBURVNUX0VRVUFMKAogICAgICAgICBNQkVEVExTX1NWQ19LRVlfSURfR0VUX0tFWV9JRChwc2FfZ2V0X2tleV9pZCgmYXR0cmlidXRlcykpLCAwKTsKICAgICBURVNUX0VRVUFMKApAQCAtNTYsNiArNTgsOCBAQAogICAgIFRFU1RfRVFVQUwocHNhX2dldF9rZXlfYWxnb3JpdGhtKCZhdHRyaWJ1dGVzKSwgMCk7CiAgICAgVEVTVF9FUVVBTChwc2FfZ2V0X2tleV90eXBlKCZhdHRyaWJ1dGVzKSwgMCk7CiAgICAgVEVTVF9FUVVBTChwc2FfZ2V0X2tleV9iaXRzKCZhdHRyaWJ1dGVzKSwgMCk7CisKKyAgICBVU0VfUFNBX0RPTkUoKTsKIH0KIC8qIEVORF9DQVNFICovCiAKZGlmZiAtLWdpdCBhL3Rlc3RzL3N1aXRlcy90ZXN0X3N1aXRlX3BzYV9jcnlwdG9faGFzaC5mdW5jdGlvbiBiL3Rlc3RzL3N1aXRlcy90ZXN0X3N1aXRlX3BzYV9jcnlwdG9faGFzaC5mdW5jdGlvbgppbmRleCAyMDE2N2ZkLi5jN2M3MmY0IDEwMDY0NAotLS0gYS90ZXN0cy9zdWl0ZXMvdGVzdF9zdWl0ZV9wc2FfY3J5cHRvX2hhc2guZnVuY3Rpb24KKysrIGIvdGVzdHMvc3VpdGVzL3Rlc3Rfc3VpdGVfcHNhX2NyeXB0b19oYXNoLmZ1bmN0aW9uCkBAIC02LDcgKzYsNyBAQAogLyogRU5EX0hFQURFUiAqLwogCiAvKiBCRUdJTl9ERVBFTkRFTkNJRVMKLSAqIGRlcGVuZHNfb246TUJFRFRMU19QU0FfQ1JZUFRPX0MKKyAqIGRlcGVuZHNfb246TUJFRFRMU19QU0FfQ1JZUFRPX0NMSUVOVAogICogRU5EX0RFUEVOREVOQ0lFUwogICovCiAKQEAgLTM1LDcgKzM1LDcgQEAKIH0KIC8qIEVORF9DQVNFICovCiAKLS8qIEJFR0lOX0NBU0UgKi8KKy8qIEJFR0lOX0NBU0UgZGVwZW5kc19vbjogTUJFRFRMU19QU0FfQ1JZUFRPX0MgKi8KIHZvaWQgaG1hYyhpbnQgYWxnX2FyZywgY2hhciAqaW5wdXQsIGRhdGFfdCAqZXhwZWN0ZWRfbWFjKQogewogICAgIHBzYV9hbGdvcml0aG1fdCBhbGcgPSBQU0FfQUxHX0hNQUMoYWxnX2FyZyk7CmRpZmYgLS1naXQgYS90ZXN0cy9zdWl0ZXMvdGVzdF9zdWl0ZV9yYW5kb20uZGF0YSBiL3Rlc3RzL3N1aXRlcy90ZXN0X3N1aXRlX3JhbmRvbS5kYXRhCmluZGV4IDkyMTE1OTEuLmNiZmU0ZmYgMTAwNjQ0Ci0tLSBhL3Rlc3RzL3N1aXRlcy90ZXN0X3N1aXRlX3JhbmRvbS5kYXRhCisrKyBiL3Rlc3RzL3N1aXRlcy90ZXN0X3N1aXRlX3JhbmRvbS5kYXRhCkBAIC02LDcgKzYsNyBAQAogcmFuZG9tX3R3aWNlX3dpdGhfaG1hY19kcmJnOk1CRURUTFNfTURfU0hBMQogCiBHZW5lcmF0ZSByYW5kb20gdHdpY2Ugd2l0aCBITUFDX0RSQkcoU0hBLTI1NikKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2CiByYW5kb21fdHdpY2Vfd2l0aF9obWFjX2RyYmc6TUJFRFRMU19NRF9TSEEyNTYKIAogR2VuZXJhdGUgcmFuZG9tIHR3aWNlIHdpdGggSE1BQ19EUkJHKFNIQS01MTIpCmRpZmYgLS1naXQgYS90ZXN0cy9zdWl0ZXMvdGVzdF9zdWl0ZV9yc2EuZGF0YSBiL3Rlc3RzL3N1aXRlcy90ZXN0X3N1aXRlX3JzYS5kYXRhCmluZGV4IGI1MmM3ZGMuLjQ5OWNhYzIgMTAwNjQ0Ci0tLSBhL3Rlc3RzL3N1aXRlcy90ZXN0X3N1aXRlX3JzYS5kYXRhCisrKyBiL3Rlc3RzL3N1aXRlcy90ZXN0X3N1aXRlX3JzYS5kYXRhCkBAIC0yMSwxOSArMjEsMTkgQEAKIG1iZWR0bHNfcnNhX3BrY3MxX3ZlcmlmeToiNmE4YTFmMjI1NzAzZmUzOTc1M2MxMDE3YjQzZWVjOWUwNzBhNzBiMSI6TUJFRFRMU19SU0FfUEtDU19WMTU6TUJFRFRMU19NRF9TSEExOjEwMjQ6ImUyOGExMzU0ODUyNWU1ZjM2ZGNjYjI0ZWNiN2NjMzMyY2M2ODlkZmQ2NDAxMjYwNGM5Yzc4MTZkNzJhMTZjM2Y1ZmNkYzBlODZlN2MwMzI4MGIxYzY5YjU4NmNlMGNkOGFlYzcyMmNjNzNhNWQzYjczMDMxMGJmN2RmZWJkYzc3Y2U1ZDk0YmJjMzY5ZGMxOGEyZjdiMDdiZDUwNWFiMGY4MjIyNGFlZjA5ZmRjMWU1MDYzMjM0MjU1ZTBiM2M0MGE1MmU5ZThhZTYwODk4ZWI4OGE3NjZiZGQ3ODhmZTk0OTNkOGZkODZiY2RkMjg4NGQ1YzA2MjE2YzY1NDY5ZTUiOiIzIjoiNWFiYzAxZjVkZTI1YjcwODY3ZmYwYzI0ZTIyMmM2MWY1M2M4OGRhZjQyNTg2ZmRkY2Q1NmYzYzQ1ODhmMDc0YmUzYzMyODA1NmMwNjMzODg2ODhiNjM4NWE4MTY3OTU3YzZlNTM1NWE1MTBlMDA1YjhhODUxZDY5Yzk2YjM2ZWM2MDM2NjQ0MDc4MjEwZTVkN2QzMjZmOTYzNjVlZTA2NDg4ODI5MjE0OTJiYzdiNzUzZWI5YzI2Y2RiYWIzNzU1NWYyMTBkZjJjYTZmZWMxYjI1YjQ2M2QzOGI4MWMwZGNlYTIwMjAyMmIwNGFmNWRhNThhYTAzZDc3YmU5NDliNyI6MAogCiBSU0EgUEtDUzEgVmVyaWZ5IHYxLjUgQ0FWUyAjNAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyMjQ6TUJFRFRMU19QS0NTMV9WMTUKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yMjQ6TUJFRFRMU19QS0NTMV9WMTUKIG1iZWR0bHNfcnNhX3BrY3MxX3ZlcmlmeToiNjkzYzFhYzFhM2ZjMjMxNTdiNGE4NTRmODg2YjZiOGQxOGUyOGIzMjFiODM4MmE5M2RjZjI0MjYiOk1CRURUTFNfUlNBX1BLQ1NfVjE1Ok1CRURUTFNfTURfU0hBMjI0OjEwMjQ6ImUyOGExMzU0ODUyNWU1ZjM2ZGNjYjI0ZWNiN2NjMzMyY2M2ODlkZmQ2NDAxMjYwNGM5Yzc4MTZkNzJhMTZjM2Y1ZmNkYzBlODZlN2MwMzI4MGIxYzY5YjU4NmNlMGNkOGFlYzcyMmNjNzNhNWQzYjczMDMxMGJmN2RmZWJkYzc3Y2U1ZDk0YmJjMzY5ZGMxOGEyZjdiMDdiZDUwNWFiMGY4MjIyNGFlZjA5ZmRjMWU1MDYzMjM0MjU1ZTBiM2M0MGE1MmU5ZThhZTYwODk4ZWI4OGE3NjZiZGQ3ODhmZTk0OTNkOGZkODZiY2RkMjg4NGQ1YzA2MjE2YzY1NDY5ZTUiOiIzIjoiM2JiN2IxYzVmMzM5MWRlNDU0OWUyZTk2ZmQzM2FmYTRkNjQ3ZGQ5MGUzMjFkOWQ1NzZmMzgwOGUzMjIxM2U5NDhiNjk3ZWY0ZmQyZGQxMjkyM2RlNmVjM2ZmZDYyNTA3OGE1N2Y4NmFmMzhkYzA3MDUyYmI1MDU0N2M2MTZlZDUxZmExMzUyYjNhYjY2Nzg4NDA4MTY4ZDIxMjYzZWYyZDMzODhkNTY3ZDJjZThjZjY3NGY0NTQ5MWFiMmIwMzE5ZDQ3YmUxMjY2YmRhMzllMzQzYjJhMzhlYTJkNmFhYWVlNmM0NDY1YWVlMWQ3YmIzM2U5M2ExYzQwYThlM2FlNCI6MAogCiBSU0EgUEtDUzEgVmVyaWZ5IHYxLjUgQ0FWUyAjNQotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTY6TUJFRFRMU19QS0NTMV9WMTUKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTY6TUJFRFRMU19QS0NTMV9WMTUKIG1iZWR0bHNfcnNhX3BrY3MxX3ZlcmlmeToiOTQ0ZDU5M2YzZTMxODE3ZDcxMjAzOGRiZjg4YTE3YzE3NzJiMTM1YzM0YzY2YjIzNmRhZjlhNzQxM2MyYThhZiI6TUJFRFRMU19SU0FfUEtDU19WMTU6TUJFRFRMU19NRF9TSEEyNTY6MTAyNDoiZTI4YTEzNTQ4NTI1ZTVmMzZkY2NiMjRlY2I3Y2MzMzJjYzY4OWRmZDY0MDEyNjA0YzljNzgxNmQ3MmExNmMzZjVmY2RjMGU4NmU3YzAzMjgwYjFjNjliNTg2Y2UwY2Q4YWVjNzIyY2M3M2E1ZDNiNzMwMzEwYmY3ZGZlYmRjNzdjZTVkOTRiYmMzNjlkYzE4YTJmN2IwN2JkNTA1YWIwZjgyMjI0YWVmMDlmZGMxZTUwNjMyMzQyNTVlMGIzYzQwYTUyZTllOGFlNjA4OThlYjg4YTc2NmJkZDc4OGZlOTQ5M2Q4ZmQ4NmJjZGQyODg0ZDVjMDYyMTZjNjU0NjllNSI6IjMiOiI3YjVmYmE3MGVjNWI1MjE2MzhmMTgyYmNhYjM5Y2VjMzBiNzZlN2JjMDE3YmRiZDEwNTk2NThhOWExZGIwOTY5YWI0ODJkY2UzMmYzZTk4NjU5NTJmMGEwZGUwOTc4MjcyYzk1MWUzYzAxNTMyOGVhMzc1OGY0NzAyOWEzNzlhYjQyMDA1NTBmYmE1OGYxMWQ1MTI2NDg3ODQwNmZjNzE3ZDVmN2I3MmIzNTgyOTQ2ZjE2YTdlNTMxNGEyMjA4ODFmYzgyMGY3ZDI5OTQ5NzEwMjczNDIxNTMzZDhhYzBhNDQ5ZGM2ZDBmZDFhMjFjMjI0NDRlZGQxYzBkNWI0NGQzIjowCiAKIFJTQSBQS0NTMSBWZXJpZnkgdjEuNSBDQVZTICM2Ci1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTM4NDpNQkVEVExTX1BLQ1MxX1YxNQorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzM4NDpNQkVEVExTX1BLQ1MxX1YxNQogbWJlZHRsc19yc2FfcGtjczFfdmVyaWZ5OiI1YTNiMzk2YTIzN2Y1NDYwYTljOGQ0MDYyOGU0YmMzMjRkMDQ2ZDBiZjNhZDY0MTdkYjU5ZmYzOTA0NTEzYTc5Mjk3ZDUxNjU2YWI2YzcwY2MwN2YwOGI4ZWVmZDJmMTUiOk1CRURUTFNfUlNBX1BLQ1NfVjE1Ok1CRURUTFNfTURfU0hBMzg0OjEwMjQ6ImUyOGExMzU0ODUyNWU1ZjM2ZGNjYjI0ZWNiN2NjMzMyY2M2ODlkZmQ2NDAxMjYwNGM5Yzc4MTZkNzJhMTZjM2Y1ZmNkYzBlODZlN2MwMzI4MGIxYzY5YjU4NmNlMGNkOGFlYzcyMmNjNzNhNWQzYjczMDMxMGJmN2RmZWJkYzc3Y2U1ZDk0YmJjMzY5ZGMxOGEyZjdiMDdiZDUwNWFiMGY4MjIyNGFlZjA5ZmRjMWU1MDYzMjM0MjU1ZTBiM2M0MGE1MmU5ZThhZTYwODk4ZWI4OGE3NjZiZGQ3ODhmZTk0OTNkOGZkODZiY2RkMjg4NGQ1YzA2MjE2YzY1NDY5ZTUiOiIzIjoiMzhmYzRmNmYwNDMwYmIzZWE5ZjQ3MGE0YzBmNWNlYmRhYmFjNGRiZWIzYjljOTlkNDE2OGU3YjAwZjVlYjI5NGVjMGVjZTE5MDhlZGVkMWYzZTE0ZjFlNjlkMTBmOWZlYjQyNWJkYTBjOTk4YWY5NDVlZjg2NDI5OGE2MGE2NzVmMGJiNWM1NDBhN2JlM2Y1MzRkNWZhZGRmZjk3NGVlYThiZmZlMTgyYTQ0ZTJlZTFmNGY2NTNlNzE5NjdhMTE4NjllZTFhODUwZWRiMDNjYjQ0YTM0MDM3OGNiN2ExYmM5NjE2ZDM2NDliNzgwMDJiMzkwYTA1YTdlNTRlZGVjNiI6MAogCiBSU0EgUEtDUzEgVmVyaWZ5IHYxLjUgQ0FWUyAjNwotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEzODQ6TUJFRFRMU19QS0NTMV9WMTUKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8zODQ6TUJFRFRMU19QS0NTMV9WMTUKICMgQmFkIHBhZGRpbmcgYWZ0ZXIgcGVyZm9ybWluZyB0aGUgcHVibGljIGtleSBvcGVyYXRpb24KIG1iZWR0bHNfcnNhX3BrY3MxX3ZlcmlmeToiOTAwYWRhMDFiYzU1MzZlZTg4ZWU3ZjJiOTVkMTVlMmU2MzUzYmMzZGUwZWY5NjEwZjhlNmRlYjczNmMzMDYyM2I5NjFlZGExN2YzMTYyMjljMDEzYmI0Njk2ZmM3MzQ2IjpNQkVEVExTX1JTQV9QS0NTX1YxNTpNQkVEVExTX01EX1NIQTM4NDoxMDI0OiJlMjhhMTM1NDg1MjVlNWYzNmRjY2IyNGVjYjdjYzMzMmNjNjg5ZGZkNjQwMTI2MDRjOWM3ODE2ZDcyYTE2YzNmNWZjZGMwZTg2ZTdjMDMyODBiMWM2OWI1ODZjZTBjZDhhZWM3MjJjYzczYTVkM2I3MzAzMTBiZjdkZmViZGM3N2NlNWQ5NGJiYzM2OWRjMThhMmY3YjA3YmQ1MDVhYjBmODIyMjRhZWYwOWZkYzFlNTA2MzIzNDI1NWUwYjNjNDBhNTJlOWU4YWU2MDg5OGViODhhNzY2YmRkNzg4ZmU5NDkzZDhmZDg2YmNkZDI4ODRkNWMwNjIxNmM2NTQ2OWU1IjoiMyI6ImQ5M2E4NzhjMWNlODY1NzE1OTBiMGU0Mzc5NGIzZWRiMjM1NTI3OTdjNGI4YzllM2RhNGZlMWNjNGFjMDU2NmFjZDNiMTA1NDFmZTlhN2E3OWY1ZWE0ODkyZDMwNjljYTY5MDNlZmI1YzQwYzQ3ZWI4YTljNzgxZWI0MjQ5MjgxZDQwYzNkOTZhYWUxNmRhMWJiNGRhYWVjZTZhMjZlY2E1ZjQxYzA2MmI0MTI0YTY0ZmM5ZDM0MGNiYTVhYjBkMWY1YWZmZmY2NTE1YTg3ZjA5MzM3NzRmZDQzMjJkMmZhNDk3Y2Q2ZjcwOGE0MjljYTU2ZGNiMWZkM2RiNjIzZDAiOk1CRURUTFNfRVJSX1JTQV9WRVJJRllfRkFJTEVECiAKQEAgLTUwLDE1ICs1MCwxNSBAQAogbWJlZHRsc19yc2FfcGtjczFfdmVyaWZ5OiJmMDU3MWQ4NTEzYzRmZjY4ZGM2OGM2MDVkZmU4NTZmMjdiZGZlZDkxIjpNQkVEVExTX1JTQV9QS0NTX1YxNTpNQkVEVExTX01EX1NIQTE6MTAyNDoiZTI4YTEzNTQ4NTI1ZTVmMzZkY2NiMjRlY2I3Y2MzMzJjYzY4OWRmZDY0MDEyNjA0YzljNzgxNmQ3MmExNmMzZjVmY2RjMGU4NmU3YzAzMjgwYjFjNjliNTg2Y2UwY2Q4YWVjNzIyY2M3M2E1ZDNiNzMwMzEwYmY3ZGZlYmRjNzdjZTVkOTRiYmMzNjlkYzE4YTJmN2IwN2JkNTA1YWIwZjgyMjI0YWVmMDlmZGMxZTUwNjMyMzQyNTVlMGIzYzQwYTUyZTllOGFlNjA4OThlYjg4YTc2NmJkZDc4OGZlOTQ5M2Q4ZmQ4NmJjZGQyODg0ZDVjMDYyMTZjNjU0NjllNSI6IjEwMDAxIjoiZGQ4MmI3YmU3OTFjNDU0ZmJiZjZmMWRlNDdjYmU1ODVhNjg3ZTRlOGJiYWUwYjZlMmE3N2Y4Y2E0ZWZkMDZkNzE0OThmOWE3NGI5MzFiZDU5YzM3N2U3MWRhZjcwOGE2MjRjNTEzMDNmMzc3MDA2YzY3NjQ4N2JhZDU3ZjcwNjdiMDliN2JiOTRhNjE4OTExOWFiOGNmNzMyMWMzMjFiMmRjN2RmNTY1YmZiZWM4MzNhMjhiODY2MjVmYjVmZDZhMDM1ZDRlZDc5ZmYwZjlhZWU5ZmE3ODkzNWVlYzY1MDY5NDM5ZWU0NDlkN2Y1MjQ5Y2RhZTZmZGQ2ZDhjMmE2MyI6TUJFRFRMU19FUlJfUlNBX1ZFUklGWV9GQUlMRUQKIAogUlNBIFBLQ1MxIFZlcmlmeSB2MS41IENBVlMgIzExCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTIyNDpNQkVEVExTX1BLQ1MxX1YxNQorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzIyNDpNQkVEVExTX1BLQ1MxX1YxNQogbWJlZHRsc19yc2FfcGtjczFfdmVyaWZ5OiIxNmQ4YmJlMzMyM2YyNmI2NmYxNTEzZTFmZmMwZmYyY2Q4MjM3NDdhM2NjMTUzNGZkYjFkZTMwNCI6TUJFRFRMU19SU0FfUEtDU19WMTU6TUJFRFRMU19NRF9TSEEyMjQ6MTAyNDoiZTI4YTEzNTQ4NTI1ZTVmMzZkY2NiMjRlY2I3Y2MzMzJjYzY4OWRmZDY0MDEyNjA0YzljNzgxNmQ3MmExNmMzZjVmY2RjMGU4NmU3YzAzMjgwYjFjNjliNTg2Y2UwY2Q4YWVjNzIyY2M3M2E1ZDNiNzMwMzEwYmY3ZGZlYmRjNzdjZTVkOTRiYmMzNjlkYzE4YTJmN2IwN2JkNTA1YWIwZjgyMjI0YWVmMDlmZGMxZTUwNjMyMzQyNTVlMGIzYzQwYTUyZTllOGFlNjA4OThlYjg4YTc2NmJkZDc4OGZlOTQ5M2Q4ZmQ4NmJjZGQyODg0ZDVjMDYyMTZjNjU0NjllNSI6IjEwMDAxIjoiZDhlZjdiZGMwZjExMWIxMjQ5ZDVhZDY1MTViNmZlMzdmMmZmMzI3ZjQ5MzgzMmYxMzg1YzEwZTk3NWMwN2IwMjY2NDk3NzE2ZmNiODRmNTAzOWNkNjBmNWEwNTA2MTRmZGUyN2YzNTRhNmM0NWU4YTdkNzRmOTgyMWUyZjMwMTUwMGFjMTk1M2ZlYWZlYjlkOThjZjg4ZDJjOTI4NDEzZjMzNzgxMzEzNWM2NmFiZmMzZGM3YTRkODA2NTVkOTI1YmY5NmYyMTg3MmNhMmIzYTI2ODRiOTc2Y2E3NjhmZTM3ZmVhZTIwYTY5ZWVlYzNjYzhmMWRlMGRiMzRiMzQ2MiI6MAogCiBSU0EgUEtDUzEgVmVyaWZ5IHYxLjUgQ0FWUyAjMTIKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2Ok1CRURUTFNfUEtDUzFfVjE1CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2Ok1CRURUTFNfUEtDUzFfVjE1CiBtYmVkdGxzX3JzYV9wa2NzMV92ZXJpZnk6IjYzMDMwY2VmMGUyZDQwNjc1NzMyMjJiZWYzYTNmODNlN2M5OGVjNGMyZDIxNzgwYTc0Mzg2NzNhZDQ4YmZlMjkiOk1CRURUTFNfUlNBX1BLQ1NfVjE1Ok1CRURUTFNfTURfU0hBMjU2OjEwMjQ6ImUyOGExMzU0ODUyNWU1ZjM2ZGNjYjI0ZWNiN2NjMzMyY2M2ODlkZmQ2NDAxMjYwNGM5Yzc4MTZkNzJhMTZjM2Y1ZmNkYzBlODZlN2MwMzI4MGIxYzY5YjU4NmNlMGNkOGFlYzcyMmNjNzNhNWQzYjczMDMxMGJmN2RmZWJkYzc3Y2U1ZDk0YmJjMzY5ZGMxOGEyZjdiMDdiZDUwNWFiMGY4MjIyNGFlZjA5ZmRjMWU1MDYzMjM0MjU1ZTBiM2M0MGE1MmU5ZThhZTYwODk4ZWI4OGE3NjZiZGQ3ODhmZTk0OTNkOGZkODZiY2RkMjg4NGQ1YzA2MjE2YzY1NDY5ZTUiOiIxMDAwMSI6IjUyMTExZjQ3OThkYTNjMTFiM2M3NDM5NDM1ODM0OGFiMGZjNzk3YmRlOTkwODBmMjM4ZDMzYTY5YjA0YjA4YWMyYmQ3NjdiMzM4NzI0NzM5NDNlMjNhZjI3Y2EzMmZkNTY4YTQzYThjN2Q2Y2M1NWI0ZmJiMzgwMjEyZmRmY2I2MDQ4N2UyMDY5NGQ0Mjg3ZTIzM2VmZGY3YjA0NzM3YzAwMzdhNTkyZDAzMDc3ODAxODI4YjA1MTk5OGM0MmI5ZjllMjQyMDA2MzMzMWQ1YjIzNDk5MThhNjRkOGI2NWIyMWEyMDExZWU3MzE4ZmNlZjQ4YWNlZDk1YjhkZGY1MDEiOjAKIAogUlNBIFBLQ1MxIFZlcmlmeSB2MS41IENBVlMgIzEzCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTM4NDpNQkVEVExTX1BLQ1MxX1YxNQorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzM4NDpNQkVEVExTX1BLQ1MxX1YxNQogbWJlZHRsc19yc2FfcGtjczFfdmVyaWZ5OiJiNmE2ZGNmMzhhMTQwMzdlNTk4NTA4ZmNmZjA3ZjhkYTBlM2YwMDUzODk2MWNiMTU5NDAyZjYwNDQyY2JhZjhkOGFiZWM4ODVjNGYwMDE3MDE4ZTJjMmY0NWYzYjA3NmQiOk1CRURUTFNfUlNBX1BLQ1NfVjE1Ok1CRURUTFNfTURfU0hBMzg0OjEwMjQ6ImUyOGExMzU0ODUyNWU1ZjM2ZGNjYjI0ZWNiN2NjMzMyY2M2ODlkZmQ2NDAxMjYwNGM5Yzc4MTZkNzJhMTZjM2Y1ZmNkYzBlODZlN2MwMzI4MGIxYzY5YjU4NmNlMGNkOGFlYzcyMmNjNzNhNWQzYjczMDMxMGJmN2RmZWJkYzc3Y2U1ZDk0YmJjMzY5ZGMxOGEyZjdiMDdiZDUwNWFiMGY4MjIyNGFlZjA5ZmRjMWU1MDYzMjM0MjU1ZTBiM2M0MGE1MmU5ZThhZTYwODk4ZWI4OGE3NjZiZGQ3ODhmZTk0OTNkOGZkODZiY2RkMjg4NGQ1YzA2MjE2YzY1NDY5ZTUiOiIxMDAwMSI6ImQ1ZGNkMjdjNzRlMDQwZWE4NmYxMDZiNjNkMzI3NWZhN2I3ZTk4ZDJkZDcwMWYzOGVjMTVmYzczMDFiNzJkZjEyN2Y2ZDNiZDU1NzEyNTNhMGI5ZTBlNzE5ZDdkNTIyODkzODk2OTQxYTFhZWNjYzY5NzkxMjI4MmI1MzA4ZDgyOWI5MTkwNWI1ZGQ3YjdlMWI4ZmUyN2UyYmQ0MDAzYjA5ZGZlN2ZlMjk1ZjhhNDNjMDc2YzBjYjUyZjJhYWMwNjdlODdkZTdmZmUzYTI3NWQyMWE4NzBjM2RmYzliMWQwNmQ3ZjAxODY2N2RlOWViMTg3YmRmNTNkMjgyZTVkOGIiOjAKIAogUlNBIFBLQ1MxIFZlcmlmeSB2MS41IENBVlMgIzE0CkBAIC03MCwxNSArNzAsMTUgQEAKIG1iZWR0bHNfcnNhX3BrY3MxX3ZlcmlmeToiMTM0MGZjMzI0Yzk2YWEzMTM0MjVlY2ZhOTcxMjk3ZjJjZGRjYTE3MiI6TUJFRFRMU19SU0FfUEtDU19WMTU6TUJFRFRMU19NRF9TSEExOjE1MzY6ImE1OWQ5YjcyNjliMTAyYjdiZTY4NGVjNWUyOGRiNzk5OTJlNmQzMjMxZTc3YzkwYjc4OTYwYzI2MzhiMzVlZjZkYmRhYzFhYzU5ZTcyNDlkOTZkNDI2ZTdmOTkzOTdlYWJjNmI4OTAzZmUxOTQyZGE1ODAzMjJiOThiYWZhY2Q4MWJiOTExYzI5NjY2ZjgzODg2YTJhMjg2NGYzNTUyMDQ0MzAwZTYwY2VkZDVhOGMzMjFjNDNlMjgwNDEzZGM0MTY3M2MzOWExMWI5OGE4ODU0ODZmODE4N2E3MGYyNzAxODVjNGMxMmJjNDhhMTk2ODMwNTI2OTc3NmMwNzBlZjY5ZDQ5MTM1ODlhODg3YzRkMGY1ZTdkZDU4YmQ4MDZkMGQ0OWExNGExNzYyYzM4NjY1Y2VmNDY0NmZmMTNhMGNkMjljM2E2MDQ2MDcwM2MzZDA1MWQ1YjI4YzY2MGJmZmI1ZjhiZDQzZDQ5NWZmYTY0MTc1ZjcyYjhhYmU1ZmRkZCI6IjMiOiIxZjc5MzhiMjBhOWNkOGJiOGNhMjZiYWQ5ZTc5ZWE5MjM3MzE3NDIwM2YzYWIyMTJhMDZkZTM0YTlhM2UxNGUxMDJkMTlhODg3OGMyOGEyZmM4MDgzYTk3YzA2YjE5YzFhZTYyNjc4Mjg5ZDVkMDcxYTkwNGFlZDFkMzY0NjU1ZDllMmQxNjQ4MGE2ZmQxOGY0YzhlZGYyMDQ4NDRhMzRkNTczYjFiOTg4YjgyZDQ5NWNhZWZkOTI5OGMxNjM1MDgzZTE5NmExMWY0YTdkZjZhN2UzY2M0ZGI3Yjk2NDJlNzY4MmQyMmVjNzAzOGMzYmFkNzkxZTEzNjVmZTg4MzY5NzYwOTI0NjBlNmRmNzQ5ZGMwMzJiYWYxZTAyNjY4NGY1NTkzNmJlYjkzNjk4NDVjNTNjM2QyMTc5NDFjMWY4ZDhmNTRhMzIzMzNhNGMwNDljM2YyZDUyNzEyNTc3ODAzMmY1ZDM5MDA0MGQxZDRjY2U4M2RjMzUzY2UyNTAxNTIiOjAKIAogUlNBIFBLQ1MxIFZlcmlmeSB2MS41IENBVlMgIzE2Ci1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTIyNDpNQkVEVExTX1BLQ1MxX1YxNQorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzIyNDpNQkVEVExTX1BLQ1MxX1YxNQogbWJlZHRsc19yc2FfcGtjczFfdmVyaWZ5OiI2NGQ4NTYwNjViYmUxNTkwZWQxY2MxZTJhZDA0ODY0MWIzYWVkYmZlMTNlYTJmOWRmMjI3MGI3NCI6TUJFRFRMU19SU0FfUEtDU19WMTU6TUJFRFRMU19NRF9TSEEyMjQ6MTUzNjoiYTU5ZDliNzI2OWIxMDJiN2JlNjg0ZWM1ZTI4ZGI3OTk5MmU2ZDMyMzFlNzdjOTBiNzg5NjBjMjYzOGIzNWVmNmRiZGFjMWFjNTllNzI0OWQ5NmQ0MjZlN2Y5OTM5N2VhYmM2Yjg5MDNmZTE5NDJkYTU4MDMyMmI5OGJhZmFjZDgxYmI5MTFjMjk2NjZmODM4ODZhMmEyODY0ZjM1NTIwNDQzMDBlNjBjZWRkNWE4YzMyMWM0M2UyODA0MTNkYzQxNjczYzM5YTExYjk4YTg4NTQ4NmY4MTg3YTcwZjI3MDE4NWM0YzEyYmM0OGExOTY4MzA1MjY5Nzc2YzA3MGVmNjlkNDkxMzU4OWE4ODdjNGQwZjVlN2RkNThiZDgwNmQwZDQ5YTE0YTE3NjJjMzg2NjVjZWY0NjQ2ZmYxM2EwY2QyOWMzYTYwNDYwNzAzYzNkMDUxZDViMjhjNjYwYmZmYjVmOGJkNDNkNDk1ZmZhNjQxNzVmNzJiOGFiZTVmZGRkIjoiMyI6IjMzOWRjZTNhMTkzNzY2OWQ5ZmIxNGM0ZjY1MjM3ODg2MWZkNWFkYzRkYTg4ZWFmODMzYjE2MDIwYjU1YTI0ZGRjODNiN2FlMzM5NWE5YTQ5YjQyNmJiOWE0MTcwY2I3NjViMDI2NTJmYWE5NTk0YjQ1N2FlZWZkYWU0ZjgwMmU5M2Q4ZTY1YzY4N2RkYzcyMzcwMTQ2NWE1ZWYxOTI0OWVkNWQyNjE3YjUxMjFjNTg1NTdiMzRlYjk5YTY2M2JiY2Y0NDUzYTZlMWRiNWQ4ODcyM2RlNDQ5ZmNmNThjYThlZjUxNGRhZjA4Y2ZkYzcxYmUxNTViYjNkMDcyNGRmMGMwYTZmZDVhYTc3Mzc0MzNjYzM3NjY0MGI5YjhiNGM3ZGRkMDk3NzZiYWUwMjQ1NzI5Y2RkYjU2ZTM2ZjI4ZWRhZDZhZWNhZWQwODIxZWM4ZDg0M2E5NjM0OGU3MjJiZjBhODRjZjA2MGE3OTNhMjE3OWYwNTQxMzhmOTA3ZDBjMyI6MAogCiBSU0EgUEtDUzEgVmVyaWZ5IHYxLjUgQ0FWUyAjMTcKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2Ok1CRURUTFNfUEtDUzFfVjE1CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2Ok1CRURUTFNfUEtDUzFfVjE1CiBtYmVkdGxzX3JzYV9wa2NzMV92ZXJpZnk6Ijc3NDNkZDU3OGRlOTQ0NDkxODUyYmZkZGZkZWIwZDIzOWViOGQzZDQwYTMzMTViOGEwMjg4NTQ2MjdkZDBmZjciOk1CRURUTFNfUlNBX1BLQ1NfVjE1Ok1CRURUTFNfTURfU0hBMjU2OjE1MzY6ImE1OWQ5YjcyNjliMTAyYjdiZTY4NGVjNWUyOGRiNzk5OTJlNmQzMjMxZTc3YzkwYjc4OTYwYzI2MzhiMzVlZjZkYmRhYzFhYzU5ZTcyNDlkOTZkNDI2ZTdmOTkzOTdlYWJjNmI4OTAzZmUxOTQyZGE1ODAzMjJiOThiYWZhY2Q4MWJiOTExYzI5NjY2ZjgzODg2YTJhMjg2NGYzNTUyMDQ0MzAwZTYwY2VkZDVhOGMzMjFjNDNlMjgwNDEzZGM0MTY3M2MzOWExMWI5OGE4ODU0ODZmODE4N2E3MGYyNzAxODVjNGMxMmJjNDhhMTk2ODMwNTI2OTc3NmMwNzBlZjY5ZDQ5MTM1ODlhODg3YzRkMGY1ZTdkZDU4YmQ4MDZkMGQ0OWExNGExNzYyYzM4NjY1Y2VmNDY0NmZmMTNhMGNkMjljM2E2MDQ2MDcwM2MzZDA1MWQ1YjI4YzY2MGJmZmI1ZjhiZDQzZDQ5NWZmYTY0MTc1ZjcyYjhhYmU1ZmRkZCI6IjMiOiI4MTE3YTY4OTdlMTRjMTgzNzM3NjYxY2Y1NzQxMzUwYTg0YWUwMDQ5NWNkOWVlOGZiMDMzNTgyZTU1OWY3OTcwMWFiNDI0NzA2NjYwNTE1ZWU1ODIxYTY5YTY4NTA2NDdlYzY0MTY3NmE2MjVkMWEzODk5OTMyYWFhNTIxNjFmYmMwYzBhODI1ZGI4MmZkZTA1ODViM2M5YjljMTZkZTQzZTI2ZGE2YTMwZmU1YTYwMWRhZTY4YmRlZDFlMjllYzM0NTU3YjVmNjk2MmVmYjEwYjk0NTBkNmYwOTY2NTVmNjhlODQ5OWNmYTE2YTBhZGViOTA3NWU3YjkxODUxZmVmODQyNDMxMzJkMDgyNzNkMzVkMDFhZDg5YzE3ZTFlNmU0ZGVhZjFjYjIzMzA1MGIyNzVmYTlkMmNhZTU3ZTllMWEwZTIzMTM5MjY3MDQwYWEzOWI2YWJkOGYxMGZhMWNlYzM4Y2UyMTgzNTczZGRjMTE2MjZmYzI2MmUxYTBjZWQiOjAKIAogUlNBIFBLQ1MxIFZlcmlmeSB2MS41IENBVlMgIzE4Ci1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTM4NDpNQkVEVExTX1BLQ1MxX1YxNQorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzM4NDpNQkVEVExTX1BLQ1MxX1YxNQogbWJlZHRsc19yc2FfcGtjczFfdmVyaWZ5OiJjMjkzYWYyMGQ5NmNjNzZiNDYwZmU4ZDRhN2YwMmJmNmUxMzE3NTBjYWRlYWE4OThjN2MyMDg2YTcwZWU5MDIxOTg2ZTQwOGU4OTZmYmZkZGUzMzhjYmM5YWI1YWI5NGUiOk1CRURUTFNfUlNBX1BLQ1NfVjE1Ok1CRURUTFNfTURfU0hBMzg0OjE1MzY6ImE1OWQ5YjcyNjliMTAyYjdiZTY4NGVjNWUyOGRiNzk5OTJlNmQzMjMxZTc3YzkwYjc4OTYwYzI2MzhiMzVlZjZkYmRhYzFhYzU5ZTcyNDlkOTZkNDI2ZTdmOTkzOTdlYWJjNmI4OTAzZmUxOTQyZGE1ODAzMjJiOThiYWZhY2Q4MWJiOTExYzI5NjY2ZjgzODg2YTJhMjg2NGYzNTUyMDQ0MzAwZTYwY2VkZDVhOGMzMjFjNDNlMjgwNDEzZGM0MTY3M2MzOWExMWI5OGE4ODU0ODZmODE4N2E3MGYyNzAxODVjNGMxMmJjNDhhMTk2ODMwNTI2OTc3NmMwNzBlZjY5ZDQ5MTM1ODlhODg3YzRkMGY1ZTdkZDU4YmQ4MDZkMGQ0OWExNGExNzYyYzM4NjY1Y2VmNDY0NmZmMTNhMGNkMjljM2E2MDQ2MDcwM2MzZDA1MWQ1YjI4YzY2MGJmZmI1ZjhiZDQzZDQ5NWZmYTY0MTc1ZjcyYjhhYmU1ZmRkZCI6IjMiOiI2YjQ5NTUzZWQ5NjRhZTE5NmE0MWVhMjgxZjRkMmEyNTBjZTdkMWU3NDM0ZTQ1Y2Y2YTgyZjdiZWQxNzU1NGYzOWMzZjAyNDFlMDM2NDcwMmZjYjg3NDc1ZWIwYzA4MzlmZmQyMTgwODkwZmEwNWI0YmJmMzFiYmZhNGJmNTExOWRlYTBjOWY4OGUxZTk2MTdmY2RhZGFiYzZmYTE5NDUxMzZjYzY2ZTAzOWI5MDVkNzhlZDM2NWM1ODA2ZDM4YWVjODhiM2VkZmI4NmMwNWZmNDQ2ZGJmZDUxZDdjZDc1Y2JmOGQzYjg1MTU0Yzc4Mzc2NTM4NmY1MTYzNzUzMjIyMWY1MjQyOWRiNTYxMmRjYzAzNDk2OGJiOGZlYWI3ZGM2ZjVlZDFmMmZlYjU1N2Y2ZGQ0OWM5ODAyOTYxMTdiZTJjNDE5NWVjN2I2MTAxZWE3NjdkZjlkMTZhNTZmYzk3MDliNDkzMDhhNTRkYWI2M2RiYzRkNjA5Zjk1OWNlMTciOjAKIAogUlNBIFBLQ1MxIFZlcmlmeSB2MS41IENBVlMgIzE5CkBAIC05NCwxOSArOTQsMTkgQEAKIG1iZWR0bHNfcnNhX3BrY3MxX3ZlcmlmeToiYTgyN2MwNzg1ZjY2M2UzOWEwODEwNmY4MDM2ZmQ2NjlkMDViMzQ1YyI6TUJFRFRMU19SU0FfUEtDU19WMTU6TUJFRFRMU19NRF9TSEExOjE1MzY6ImE1OWQ5YjcyNjliMTAyYjdiZTY4NGVjNWUyOGRiNzk5OTJlNmQzMjMxZTc3YzkwYjc4OTYwYzI2MzhiMzVlZjZkYmRhYzFhYzU5ZTcyNDlkOTZkNDI2ZTdmOTkzOTdlYWJjNmI4OTAzZmUxOTQyZGE1ODAzMjJiOThiYWZhY2Q4MWJiOTExYzI5NjY2ZjgzODg2YTJhMjg2NGYzNTUyMDQ0MzAwZTYwY2VkZDVhOGMzMjFjNDNlMjgwNDEzZGM0MTY3M2MzOWExMWI5OGE4ODU0ODZmODE4N2E3MGYyNzAxODVjNGMxMmJjNDhhMTk2ODMwNTI2OTc3NmMwNzBlZjY5ZDQ5MTM1ODlhODg3YzRkMGY1ZTdkZDU4YmQ4MDZkMGQ0OWExNGExNzYyYzM4NjY1Y2VmNDY0NmZmMTNhMGNkMjljM2E2MDQ2MDcwM2MzZDA1MWQ1YjI4YzY2MGJmZmI1ZjhiZDQzZDQ5NWZmYTY0MTc1ZjcyYjhhYmU1ZmRkZCI6IjEwMDAxIjoiYTE0MmIwZDk0NTZmOGY0NzcyNjc1MjY1YTA4NjEzYTY2YzQxNmJkMWFlNzEyOTc1YzY5ZDljYTVmYjhjMWJlOWMyNDM1OWEwNGZkMTU0NjBiZjYxMzZhOGExMWYxM2UzY2UyZGUyMTcxNTI0ZjEwY2I3MTVmMGQ3MWUzZGIxNTI4MWFiOTllYWRiZTg2Y2Y4YzVjNTE4MTYyYzYzOGVmMjdhNGY3YmZiNGExYTM4NzNmM2MzODRhNWIxYzNiNDk2NmM4MzdiOWQ4ZDE5MmFjMzRlMDM5NDNiN2FlMTkxMzU1YWExZmYzYjljZDA0MWJiMjY2OGYxZjgxY2YwZDAxNWIzZDM2MDhjZDlhYzc5Mzk4MjEyYzBmMTMyZjFiZDQ1ZDQ3NzY4Yjk5OWZjZjNjMDVmZTIwNjk1OTNjZWVjZWRjODUxYTdmYzQ2NWFiY2ZlZjBmYWJiYTliOTQ2MDE1M2Y2YmE4NzIzYTVjNmU3NjZjODNhNDQ2YWVmM2VlMzI3IjpNQkVEVExTX0VSUl9SU0FfVkVSSUZZX0ZBSUxFRAogCiBSU0EgUEtDUzEgVmVyaWZ5IHYxLjUgQ0FWUyAjMjIKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjI0Ok1CRURUTFNfUEtDUzFfVjE1CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjI0Ok1CRURUTFNfUEtDUzFfVjE1CiBtYmVkdGxzX3JzYV9wa2NzMV92ZXJpZnk6ImU1OTc5ZjY1YWQ3NTcyZWQ0YjBiYzNhNWZjYWQ4OTNhMTQyYTczMzc5YTFhMTZiNDU1NzBkNzdkIjpNQkVEVExTX1JTQV9QS0NTX1YxNTpNQkVEVExTX01EX1NIQTIyNDoxNTM2OiJhNTlkOWI3MjY5YjEwMmI3YmU2ODRlYzVlMjhkYjc5OTkyZTZkMzIzMWU3N2M5MGI3ODk2MGMyNjM4YjM1ZWY2ZGJkYWMxYWM1OWU3MjQ5ZDk2ZDQyNmU3Zjk5Mzk3ZWFiYzZiODkwM2ZlMTk0MmRhNTgwMzIyYjk4YmFmYWNkODFiYjkxMWMyOTY2NmY4Mzg4NmEyYTI4NjRmMzU1MjA0NDMwMGU2MGNlZGQ1YThjMzIxYzQzZTI4MDQxM2RjNDE2NzNjMzlhMTFiOThhODg1NDg2ZjgxODdhNzBmMjcwMTg1YzRjMTJiYzQ4YTE5NjgzMDUyNjk3NzZjMDcwZWY2OWQ0OTEzNTg5YTg4N2M0ZDBmNWU3ZGQ1OGJkODA2ZDBkNDlhMTRhMTc2MmMzODY2NWNlZjQ2NDZmZjEzYTBjZDI5YzNhNjA0NjA3MDNjM2QwNTFkNWIyOGM2NjBiZmZiNWY4YmQ0M2Q0OTVmZmE2NDE3NWY3MmI4YWJlNWZkZGQiOiIxMDAwMSI6IjA2NzZlNjRkYWFhMThmNGFmNDZlOWRmYmUyMzRkYjM4OWI4YTUyN2IwZmUxZGI5N2ViN2Y0MDRlMzE1NTIyNmNiYTcwZDMxODgwMGY4MzE2MGZhMWFhMTk5MTZlNWMwOWYwNzkzMzEwNzlmMThjYjhhYjFhNGI4ODRjYjI4NTAxODI0OTc0ZjY4M2VkMmI5YmFiYWU5ZjhjMTViZWEzMDgwMjgwNWM2YjIxNTIxMTk3NjQ4MTFiYmY1ZjM5OTRkMmU5N2ZhMmZlOGM1YWIxNWEyM2MxNGQ3YWU1NmJlMDBlYWE4YmMyNjY3ODQ4MWZmNWJhNTliMGFjZmIwZTQzMzQxYmZmOWZjNjM4ZTU2MjU0ODBhNzNkYmM1ZDhkMTNiZDJiOWU2NDAzN2M2Yjc5ZGYwYzYwODY5OTgwYzZhMjJlYzQ2ZjgwZmI4NTljYjRlZTVkMjAzMmFjMWZlNTM4Y2ZkODVjNzBhN2YzM2I0YWY1MGE5MzM5NTkxN2MyY2ZiNiI6TUJFRFRMU19FUlJfUlNBX1ZFUklGWV9GQUlMRUQKIAogUlNBIFBLQ1MxIFZlcmlmeSB2MS41IENBVlMgIzIzCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTIyNDpNQkVEVExTX1BLQ1MxX1YxNQorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzIyNDpNQkVEVExTX1BLQ1MxX1YxNQogbWJlZHRsc19yc2FfcGtjczFfdmVyaWZ5OiI3YWYxNTZiNmI4MDg5MzAwYTZkOGNkM2YzMjE3NmM0YzYxOTEzNWY0ZWNlZDE0ZGNmZDYzM2QyZSI6TUJFRFRMU19SU0FfUEtDU19WMTU6TUJFRFRMU19NRF9TSEEyMjQ6MTUzNjoiYTU5ZDliNzI2OWIxMDJiN2JlNjg0ZWM1ZTI4ZGI3OTk5MmU2ZDMyMzFlNzdjOTBiNzg5NjBjMjYzOGIzNWVmNmRiZGFjMWFjNTllNzI0OWQ5NmQ0MjZlN2Y5OTM5N2VhYmM2Yjg5MDNmZTE5NDJkYTU4MDMyMmI5OGJhZmFjZDgxYmI5MTFjMjk2NjZmODM4ODZhMmEyODY0ZjM1NTIwNDQzMDBlNjBjZWRkNWE4YzMyMWM0M2UyODA0MTNkYzQxNjczYzM5YTExYjk4YTg4NTQ4NmY4MTg3YTcwZjI3MDE4NWM0YzEyYmM0OGExOTY4MzA1MjY5Nzc2YzA3MGVmNjlkNDkxMzU4OWE4ODdjNGQwZjVlN2RkNThiZDgwNmQwZDQ5YTE0YTE3NjJjMzg2NjVjZWY0NjQ2ZmYxM2EwY2QyOWMzYTYwNDYwNzAzYzNkMDUxZDViMjhjNjYwYmZmYjVmOGJkNDNkNDk1ZmZhNjQxNzVmNzJiOGFiZTVmZGRkIjoiMTAwMDEiOiI1ZTA4ZjM5OTI1OGU2ZGUwNzViNjdhMGE2YTgyMmNlYjIxYjFlYjdhMDM0MmVjYTZhNDI5NTczOWY2NDQ1NDdkZWUzNDU2MjQzY2YzMmJkNmVhNmYzNTdjODg2MzI1MDg0NTcxMzBmM2RhZTA0Zjc4MDZlZmFlZDQzZDFkNTAxZTE2Yzk2MWRmYmQ2YzcxYTQyYjQ4MGU5NWM3MDI3ZjgyNzUwNjNkMDVhOWFhYzNlZWYwNTIwODY3Yjk4OTZlYmU4ZWMzNThmN2QxMjFiZWI0ZTYxZGRmZGMzZGNkODM1ZGZlMjY1ZjJiYTY4ZDMwMGVmNTY2ZWQxMjg0ZjlmM2Q3YjFhZjM2M2VkNDdiZmEyZTVmMDQ5MjkyNTQ0NGRmN2U1ZmNiMWU3OWU2OTBjNzQ2MTE3NjUwYjU0M2E1ZTgyYzM5NTUzNTUyZjBmNDRlNjE3YjVjZjc3M2M1MzMwNTBmNDEyOWU4OTNhYzIyYWY2OWIxZWI5YWZiNGI1YmE1ZjUiOjAKIAogUlNBIFBLQ1MxIFZlcmlmeSB2MS41IENBVlMgIzI0Ci1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NjpNQkVEVExTX1BLQ1MxX1YxNQorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NjpNQkVEVExTX1BLQ1MxX1YxNQogbWJlZHRsc19yc2FfcGtjczFfdmVyaWZ5OiJmNWY0OTNmYzFkZmMyMjIxZTJhNWQ2MWQ4ZmM4ODQ4MGVjMDNiMWZkZGVjOGIxNGQxZDc3YzU1ODg1OTY1OWRiIjpNQkVEVExTX1JTQV9QS0NTX1YxNTpNQkVEVExTX01EX1NIQTI1NjoxNTM2OiJhNTlkOWI3MjY5YjEwMmI3YmU2ODRlYzVlMjhkYjc5OTkyZTZkMzIzMWU3N2M5MGI3ODk2MGMyNjM4YjM1ZWY2ZGJkYWMxYWM1OWU3MjQ5ZDk2ZDQyNmU3Zjk5Mzk3ZWFiYzZiODkwM2ZlMTk0MmRhNTgwMzIyYjk4YmFmYWNkODFiYjkxMWMyOTY2NmY4Mzg4NmEyYTI4NjRmMzU1MjA0NDMwMGU2MGNlZGQ1YThjMzIxYzQzZTI4MDQxM2RjNDE2NzNjMzlhMTFiOThhODg1NDg2ZjgxODdhNzBmMjcwMTg1YzRjMTJiYzQ4YTE5NjgzMDUyNjk3NzZjMDcwZWY2OWQ0OTEzNTg5YTg4N2M0ZDBmNWU3ZGQ1OGJkODA2ZDBkNDlhMTRhMTc2MmMzODY2NWNlZjQ2NDZmZjEzYTBjZDI5YzNhNjA0NjA3MDNjM2QwNTFkNWIyOGM2NjBiZmZiNWY4YmQ0M2Q0OTVmZmE2NDE3NWY3MmI4YWJlNWZkZGQiOiIxMDAwMSI6ImEwMDNhZTljZjA3MDRkNTg3NjNiMjE0ZjIwNDQ2ZWNjNDA5OWM1NjZmMjUzODRlMjhkMGRkNjU0MGM1ODcwNWZjOGQwYmZlMWNlYWEwNjA5NmVkMWUyMzAxNDZlZGI4MjA1NmUzOWU2NzI3YWJlYzA5ZjI1ZTQ0MDc5YjZjZTFjYTJjNmE1NDBkZWM3YWEzNDQ0NGQ3ZDQzNWY0MWU1ZmNhOWIwYmJhNjI3NTlhZTI3ODA2MzhlNTE2MGUwMzFiYjYwNDA5YzJlODU2NzRhYzdhNzc2YjQ0NGIzN2I5ZDdmNGRiYWE1NTdlODhiODU2MmE1ODRmMmRiZTkwNzI5YjI0MWFlZGU5NWRmY2M3ZTA1YjEwZGVlZjA2MjU1Y2I4OWYwZTdjY2ZmMjMzNTQ4MTg3NTZhMWY4YmI5ZjAwZmQxOGY2Y2QyMmNhMWI0YmZjMzgwMjc1NjJiYjM3NTYyYzc3Yzc4ODNiNWQ3MzUxNzBkNzU1MjExOTVmZDNmMmJkMyI6MAogCiBSU0EgUEtDUzEgVmVyaWZ5IHYxLjUgQ0FWUyAjMjUKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMzg0Ok1CRURUTFNfUEtDUzFfVjE1CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMzg0Ok1CRURUTFNfUEtDUzFfVjE1CiBtYmVkdGxzX3JzYV9wa2NzMV92ZXJpZnk6ImQ4NzU4ZmFjOTVlZDkxNzc1ODFjMWViNjkwYzVmYWQ3OTdmNDdlNzk4YzRhOTI3MDZkZDU3ZWIwMzhhZjlkYmZhMDJjMGI5NjRjMzAxMDUzYmI1MGFjOGZjNjUyZDU2NCI6TUJFRFRMU19SU0FfUEtDU19WMTU6TUJFRFRMU19NRF9TSEEzODQ6MTUzNjoiYTU5ZDliNzI2OWIxMDJiN2JlNjg0ZWM1ZTI4ZGI3OTk5MmU2ZDMyMzFlNzdjOTBiNzg5NjBjMjYzOGIzNWVmNmRiZGFjMWFjNTllNzI0OWQ5NmQ0MjZlN2Y5OTM5N2VhYmM2Yjg5MDNmZTE5NDJkYTU4MDMyMmI5OGJhZmFjZDgxYmI5MTFjMjk2NjZmODM4ODZhMmEyODY0ZjM1NTIwNDQzMDBlNjBjZWRkNWE4YzMyMWM0M2UyODA0MTNkYzQxNjczYzM5YTExYjk4YTg4NTQ4NmY4MTg3YTcwZjI3MDE4NWM0YzEyYmM0OGExOTY4MzA1MjY5Nzc2YzA3MGVmNjlkNDkxMzU4OWE4ODdjNGQwZjVlN2RkNThiZDgwNmQwZDQ5YTE0YTE3NjJjMzg2NjVjZWY0NjQ2ZmYxM2EwY2QyOWMzYTYwNDYwNzAzYzNkMDUxZDViMjhjNjYwYmZmYjVmOGJkNDNkNDk1ZmZhNjQxNzVmNzJiOGFiZTVmZGRkIjoiMTAwMDEiOiIyYzZiMzAxODUyY2M1NWE5OTNhOTMzZTJjMDgwZWI5ZGFiZmUxOWU5ZGMzNTcxMDY2Y2FlYWJlZDE0OTJkMzUwMWNkODM4ZGUxYzAxNzg0OTMyZGY3YTVhZDViYmZiNDhjNzhmNTNhNDVmNzZlOTgxMmQwNDZmMjNiZDk2ODQ5NWVmN2U5ODFlNWFkZDRhY2ZjNTM4ZmUzM2E1MjA1ZGU3NGJiMzdkM2Q5YjZiODdiMmQxNzRlODVhNzNmMjE2ZmQ2N2Q1NzM4ZmM0NjlkZmY3ZWE2Yjg1MmU4ZGQwOGJjOGRmMDM2NTk3MzcyZDRkNTExODVlNmY0N2E0NWZiZTFiOWJkYjA2YTQwMTg3ODM0MjVlYzk1Mjk0ZGU0MWYyNzIzNWFkM2IzMjYzYTg5MGI4YjYyYjE3NDEwYTliYjA4NjczMzkzZmYyMDVhODY2ZWUyMDU3ZTk5YzY1MTdjNmJiYzg0ZjhkODc3MTdiODNkNmY2NGRlN2VlMjE1ZTFlOGQiOjAKIAogUlNBIFBLQ1MxIFZlcmlmeSB2MS41IENBVlMgIzI2CkBAIC0xMTgsMjMgKzExOCwyMyBAQAogbWJlZHRsc19yc2FfcGtjczFfdmVyaWZ5OiI0NmJhMzhkNTIxZmZhNmZjMDFiZDY5NTEyMDA4ZmQ1NTc3ODVjNzgzIjpNQkVEVExTX1JTQV9QS0NTX1YxNTpNQkVEVExTX01EX1NIQTE6MTUzNjoiYTU5ZDliNzI2OWIxMDJiN2JlNjg0ZWM1ZTI4ZGI3OTk5MmU2ZDMyMzFlNzdjOTBiNzg5NjBjMjYzOGIzNWVmNmRiZGFjMWFjNTllNzI0OWQ5NmQ0MjZlN2Y5OTM5N2VhYmM2Yjg5MDNmZTE5NDJkYTU4MDMyMmI5OGJhZmFjZDgxYmI5MTFjMjk2NjZmODM4ODZhMmEyODY0ZjM1NTIwNDQzMDBlNjBjZWRkNWE4YzMyMWM0M2UyODA0MTNkYzQxNjczYzM5YTExYjk4YTg4NTQ4NmY4MTg3YTcwZjI3MDE4NWM0YzEyYmM0OGExOTY4MzA1MjY5Nzc2YzA3MGVmNjlkNDkxMzU4OWE4ODdjNGQwZjVlN2RkNThiZDgwNmQwZDQ5YTE0YTE3NjJjMzg2NjVjZWY0NjQ2ZmYxM2EwY2QyOWMzYTYwNDYwNzAzYzNkMDUxZDViMjhjNjYwYmZmYjVmOGJkNDNkNDk1ZmZhNjQxNzVmNzJiOGFiZTVmZGRkIjoiMTEiOiIxODBjYWYwMzc4MWIzOTFhYWNlYmU1YjNmNWUxZDNiMDFjNjhhMDBkZjRlY2ZiNmM0YmYxNDIxN2FlZDdjZmNhMGFkYWMwOTllYzFkNmUxZjBiNDNiMDliODY3ODg1MzNmZWU2NjkxZDc3MzgwN2FmMGRmNmNjM2JiZGRlM2NmMzRiZjViODQ4ZmE1OWM4YmMxMDIyN2NjM2ViYTM0NTJhODVlMDUyMGZjY2RiMmQ4ZDMyZGQ5OTY3MmQzMDI3NTZhMmQ3ZjdmMjY5M2RiM2E0OGJlMTdiZDM0ZDlkODkxZjRiYTQ0NDQ5YzViYWQxZGU5MWI3ODhmNTI0NTAwYTc3MDNjY2NiYWE3N2I5ZmU4NzkxZjVjOGFhN2I4ZjA1NTMzNmYyOGZjZmMwMTczMzcxMmUzM2NmYjNkMzNmZTcxZGRiOWNlZDJhMzE5MzFlYzM4MDA3ZjVhZDRhMGQxOWFjYzQyODEyNGIwZTVlZTZlMDc0NmZiMzNjMWE0ZDkwYzgiOjAKIAogUlNBIFBLQ1MxIFZlcmlmeSB2MS41IENBVlMgIzI4Ci1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTIyNDpNQkVEVExTX1BLQ1MxX1YxNQorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzIyNDpNQkVEVExTX1BLQ1MxX1YxNQogbWJlZHRsc19yc2FfcGtjczFfdmVyaWZ5OiI4MDdjYTU3ODU1NDJkMjZiM2QxNjE1MjA5YWIwYWQzZmY1ZjU4NzA3ZmUyNWY5ODZhYmMxOWMwYSI6TUJFRFRMU19SU0FfUEtDU19WMTU6TUJFRFRMU19NRF9TSEEyMjQ6MTUzNjoiYTU5ZDliNzI2OWIxMDJiN2JlNjg0ZWM1ZTI4ZGI3OTk5MmU2ZDMyMzFlNzdjOTBiNzg5NjBjMjYzOGIzNWVmNmRiZGFjMWFjNTllNzI0OWQ5NmQ0MjZlN2Y5OTM5N2VhYmM2Yjg5MDNmZTE5NDJkYTU4MDMyMmI5OGJhZmFjZDgxYmI5MTFjMjk2NjZmODM4ODZhMmEyODY0ZjM1NTIwNDQzMDBlNjBjZWRkNWE4YzMyMWM0M2UyODA0MTNkYzQxNjczYzM5YTExYjk4YTg4NTQ4NmY4MTg3YTcwZjI3MDE4NWM0YzEyYmM0OGExOTY4MzA1MjY5Nzc2YzA3MGVmNjlkNDkxMzU4OWE4ODdjNGQwZjVlN2RkNThiZDgwNmQwZDQ5YTE0YTE3NjJjMzg2NjVjZWY0NjQ2ZmYxM2EwY2QyOWMzYTYwNDYwNzAzYzNkMDUxZDViMjhjNjYwYmZmYjVmOGJkNDNkNDk1ZmZhNjQxNzVmNzJiOGFiZTVmZGRkIjoiMTEiOiI4Yzg0NmU3NWUzMmNlNWY5OTY0YmRkOGY2ZGNmMWQyOTk2YTY0NmIyMzNiY2YxYmQ2Mzk0ZTEzZTg1NjY5MWI4OWJlZGQxODI5MGEwZjlmN2M5MGRjYTMwNzI3MWIzMTA4ZTc5NTM0MDQ5MDUxM2IyNWU2Nzg5ZTkzNzIyYzY1ZWMwNjRiNGM0MzQ1NzI5NWEzMWQxZjA3ZGQ2MDVlMTMzZmQ2ZWFhZmM1OGNkYTEzMmRmMjkzOWY1ZjY5M2UwMjA1YWYzNDU1MGFmYWExMzdmM2U0ODI4ODVlNTBkZmI0ODMzM2ExNWMwODIxZTdhMTk2NDJhY2RkZGM2ZmVhM2M3NDg3YzY5MTI0NmEyYjA4M2RhYzQzOTg4OWQ1YWU3NDFiN2UwOGM0NzkzNzUzMGI0YjA2OWYxYTI2MGNkMDdmZTRhMGRkZDUzMGFiMTE1MzRmYjgwNWU5YjU2MjExOGVlMGU5NzkzMjk2NjAwOGFhZGZjODNmM2I4YTEwZGU4ZWUiOjAKIAogUlNBIFBLQ1MxIFZlcmlmeSB2MS41IENBVlMgIzI5Ci1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NjpNQkVEVExTX1BLQ1MxX1YxNQorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NjpNQkVEVExTX1BLQ1MxX1YxNQogbWJlZHRsc19yc2FfcGtjczFfdmVyaWZ5OiJkYWM5MTMwYzliMjNjZmQzMDMxMzViNjBiZTU2ODI5ZTA4YjQ0MTAzNTI1MDU3OWI0MGQ1YjJlMmVhZDViOWFjIjpNQkVEVExTX1JTQV9QS0NTX1YxNTpNQkVEVExTX01EX1NIQTI1NjoxNTM2OiJhNTlkOWI3MjY5YjEwMmI3YmU2ODRlYzVlMjhkYjc5OTkyZTZkMzIzMWU3N2M5MGI3ODk2MGMyNjM4YjM1ZWY2ZGJkYWMxYWM1OWU3MjQ5ZDk2ZDQyNmU3Zjk5Mzk3ZWFiYzZiODkwM2ZlMTk0MmRhNTgwMzIyYjk4YmFmYWNkODFiYjkxMWMyOTY2NmY4Mzg4NmEyYTI4NjRmMzU1MjA0NDMwMGU2MGNlZGQ1YThjMzIxYzQzZTI4MDQxM2RjNDE2NzNjMzlhMTFiOThhODg1NDg2ZjgxODdhNzBmMjcwMTg1YzRjMTJiYzQ4YTE5NjgzMDUyNjk3NzZjMDcwZWY2OWQ0OTEzNTg5YTg4N2M0ZDBmNWU3ZGQ1OGJkODA2ZDBkNDlhMTRhMTc2MmMzODY2NWNlZjQ2NDZmZjEzYTBjZDI5YzNhNjA0NjA3MDNjM2QwNTFkNWIyOGM2NjBiZmZiNWY4YmQ0M2Q0OTVmZmE2NDE3NWY3MmI4YWJlNWZkZGQiOiIxMSI6Ijk2NzczMDBiYmVlMDAzYmUzYzQ0NTYzNGY4ZWQ1YmViMTUyYjYzZjQ2Zjg0Y2Y1YThlNzIxZTBmYWZlOGYzZjdlOTlhNmQ1MDc0MWYyM2Y0NDlkMzAyNmRhM2U4YTdhYzM2YmU5OWFiNDQ4MzE4MDM0ODZhZTU1MmY3YWEwMWYwNzUyODc4MjliMjMxZDJkMDg0MDkwOGUwOTA4MWFlMTc3ZWQ4ODhmZTQ2YTlkOTM3YTA4NzFlYjVkNTJlYzU0MWM4NDExYzRjYmY3ZWZlYTZjYTIxM2IxMmNlYTUxM2IwNzM5ZWVkY2E3Yzk0NzNlMTBhNzc5NjkzNmY0ZWFhMGM1ZDNhOTAxM2NhNTUzNjc4MWFjNjhlYjJjYTU3NzkxNDRkZTIzZGEyZTk4NzUxMTRhY2E4ODViMzIxOWRmYzI5MmQ3Mzk0MGM1OTkyZWEzYzQ4ODI4ODllNzU0MzQzMDY1Mjg2MGU0NDFhMDFhNDVkOWY0MDA1YTAxMjQyMTQ5MyI6MAogCiBSU0EgUEtDUzEgVmVyaWZ5IHYxLjUgQ0FWUyAjMzAKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2Ok1CRURUTFNfUEtDUzFfVjE1CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2Ok1CRURUTFNfUEtDUzFfVjE1CiBtYmVkdGxzX3JzYV9wa2NzMV92ZXJpZnk6ImRiN2U2ZWY1MWZmZWNkOWMxY2I4ODA3ODI3NWMzNjJjMGUzNjczMDg2MGEzM2EwODAyYzRhOTIzNzQ2N2Q0OGQiOk1CRURUTFNfUlNBX1BLQ1NfVjE1Ok1CRURUTFNfTURfU0hBMjU2OjE1MzY6ImE1OWQ5YjcyNjliMTAyYjdiZTY4NGVjNWUyOGRiNzk5OTJlNmQzMjMxZTc3YzkwYjc4OTYwYzI2MzhiMzVlZjZkYmRhYzFhYzU5ZTcyNDlkOTZkNDI2ZTdmOTkzOTdlYWJjNmI4OTAzZmUxOTQyZGE1ODAzMjJiOThiYWZhY2Q4MWJiOTExYzI5NjY2ZjgzODg2YTJhMjg2NGYzNTUyMDQ0MzAwZTYwY2VkZDVhOGMzMjFjNDNlMjgwNDEzZGM0MTY3M2MzOWExMWI5OGE4ODU0ODZmODE4N2E3MGYyNzAxODVjNGMxMmJjNDhhMTk2ODMwNTI2OTc3NmMwNzBlZjY5ZDQ5MTM1ODlhODg3YzRkMGY1ZTdkZDU4YmQ4MDZkMGQ0OWExNGExNzYyYzM4NjY1Y2VmNDY0NmZmMTNhMGNkMjljM2E2MDQ2MDcwM2MzZDA1MWQ1YjI4YzY2MGJmZmI1ZjhiZDQzZDQ5NWZmYTY0MTc1ZjcyYjhhYmU1ZmRkZCI6IjMiOiJhMjAyYzMzZWI4MzFiOWQ4ZTgxOGI2YzNiY2RiNDI4MThlMWQ5YzIyYTA2ZGRkNzNhMTdhMjFlNDlkMThjZGE0NGRmMzQ5YTA2NjQ3N2NhZTA2OGUxYTVkMmI1MThiMDg4NWU4ODllZjc5NmNhOWU2ZjQyYTY5YWM3NTViOGE2NDA1ZmJhZWY5M2ZlMDEzMGQ5OGRlMzVkNjg5YWRkZmVlM2VlY2QyNjY1ODkwM2Y3NzRiZGE0ODFjM2Y0MGVlMGU5NTY5YTNjM2UyZGE3YWQ1NzZjN2RlODIxNTlkOTMzZTM2ZmEyOWNmZWY5OTM2NzAwNWUzNGFiNTA4MmQ4MGY0ODI3NmQzN2RhYmM4OGRiYjAyM2JkMDE1ODUzMjlkMmNjZjQxN2Y3OGVjNTA4YWFhMjk3NTEwMDdkMzFmMTY2OTI5NmI5ODFkNDRjOGZhOTkxMzBjNWRmN2EwNzE3MjViNDk2ODU5MzE0YWFmOWJhZjBlYmM3ODAzNTU5MTQyNDkiOk1CRURUTFNfRVJSX1JTQV9WRVJJRllfRkFJTEVECiAKIFJTQSBQS0NTMSBWZXJpZnkgdjEuNSBDQVZTICMzMQotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEzODQ6TUJFRFRMU19QS0NTMV9WMTUKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8zODQ6TUJFRFRMU19QS0NTMV9WMTUKIG1iZWR0bHNfcnNhX3BrY3MxX3ZlcmlmeToiODEwYjk4OGQ5OTY2ODc3NjgxNzU5NjM0YzMzMmQ2MDk5Y2Y5MDVjN2NkNTdjODcxYjllMzM5OTczMGZlNGVmOGNkMWQzYzczOTFlYzRkZWY3OGQ0NjI0YjM4NDY2NGM0IjpNQkVEVExTX1JTQV9QS0NTX1YxNTpNQkVEVExTX01EX1NIQTM4NDoxNTM2OiJhNTlkOWI3MjY5YjEwMmI3YmU2ODRlYzVlMjhkYjc5OTkyZTZkMzIzMWU3N2M5MGI3ODk2MGMyNjM4YjM1ZWY2ZGJkYWMxYWM1OWU3MjQ5ZDk2ZDQyNmU3Zjk5Mzk3ZWFiYzZiODkwM2ZlMTk0MmRhNTgwMzIyYjk4YmFmYWNkODFiYjkxMWMyOTY2NmY4Mzg4NmEyYTI4NjRmMzU1MjA0NDMwMGU2MGNlZGQ1YThjMzIxYzQzZTI4MDQxM2RjNDE2NzNjMzlhMTFiOThhODg1NDg2ZjgxODdhNzBmMjcwMTg1YzRjMTJiYzQ4YTE5NjgzMDUyNjk3NzZjMDcwZWY2OWQ0OTEzNTg5YTg4N2M0ZDBmNWU3ZGQ1OGJkODA2ZDBkNDlhMTRhMTc2MmMzODY2NWNlZjQ2NDZmZjEzYTBjZDI5YzNhNjA0NjA3MDNjM2QwNTFkNWIyOGM2NjBiZmZiNWY4YmQ0M2Q0OTVmZmE2NDE3NWY3MmI4YWJlNWZkZGQiOiIxMDAwMSI6IjQwMjYzMWYzY2RkZmIwMmNjNGQ5Y2I1OGVmMWFiNjcyNmJkNzg3YTUwZTEyZTk4NTY3Yzk3MDJiZmRmNDdhZjg1OTA0YWVjNWEyZjZjNWRmOWExMGYwOGY5MGY5MzcyOGViMDkwYWUyYWMyMWRlZDlmMzhmYWVjZDgxOTVmM2ViM2Q0MTA3NTIxYjFjZWU5NTZlN2EyMTQyNDViMDM4YWRhZTkxMmZhMzVlYzk3Y2IzYmRjNDEzNTJlOGFhZmY4MDE3MzU2MTI4NGNiNzQwZjk5OWEzY2Q2NjUzYTZjM2Q1YTNmOTExYTQxNmY0MWUyMTU1MDgzOTgyYzk5ZWI1OTk4YTBhNzRkNzdmMWFlOTk5ZDkwMWVlMjRhN2YyYzQyNDE3OWEzZjkyYjA3ZGMwYjM0OThjMTg4NGU2MDY3N2JlZTAxNzVlODEwYjQyNmM0YWQwMDhkMjc0M2NkMTliMDBiMzMxNzdiZjhiZTNmZWQ3Zjc0MDZlMWJjZTBjMmVhMyI6TUJFRFRMU19FUlJfUlNBX1ZFUklGWV9GQUlMRUQKIAogUlNBIFBLQ1MxIFZlcmlmeSB2MS41IENBVlMgIzMyCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTM4NDpNQkVEVExTX1BLQ1MxX1YxNQorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzM4NDpNQkVEVExTX1BLQ1MxX1YxNQogbWJlZHRsc19yc2FfcGtjczFfdmVyaWZ5OiJjYzQzZDkxYTJhZTIxYTFhMWZlN2U1MTgwMWY0OGY1YTJmMjFmZjQ4MjdkNzljZjYxOTNlNzYxMGUyYTVkOTg4MWYyMTU3N2RjZDEwMGIyYjVkMDg3ZDkzNmY4Njc5NjAiOk1CRURUTFNfUlNBX1BLQ1NfVjE1Ok1CRURUTFNfTURfU0hBMzg0OjE1MzY6ImE1OWQ5YjcyNjliMTAyYjdiZTY4NGVjNWUyOGRiNzk5OTJlNmQzMjMxZTc3YzkwYjc4OTYwYzI2MzhiMzVlZjZkYmRhYzFhYzU5ZTcyNDlkOTZkNDI2ZTdmOTkzOTdlYWJjNmI4OTAzZmUxOTQyZGE1ODAzMjJiOThiYWZhY2Q4MWJiOTExYzI5NjY2ZjgzODg2YTJhMjg2NGYzNTUyMDQ0MzAwZTYwY2VkZDVhOGMzMjFjNDNlMjgwNDEzZGM0MTY3M2MzOWExMWI5OGE4ODU0ODZmODE4N2E3MGYyNzAxODVjNGMxMmJjNDhhMTk2ODMwNTI2OTc3NmMwNzBlZjY5ZDQ5MTM1ODlhODg3YzRkMGY1ZTdkZDU4YmQ4MDZkMGQ0OWExNGExNzYyYzM4NjY1Y2VmNDY0NmZmMTNhMGNkMjljM2E2MDQ2MDcwM2MzZDA1MWQ1YjI4YzY2MGJmZmI1ZjhiZDQzZDQ5NWZmYTY0MTc1ZjcyYjhhYmU1ZmRkZCI6IjExIjoiNTdlZGQwNTYwZGY5ODQwYTI1YzI4ZmY2ZDI1NGU0MzIzOTVhNWNkMmQ5MjI0OGIzYjQ0ZDdlYWIwZmM2NWIzYzRlNTQ1YTkxNmE4ZTkwY2U4OTc0NTExOWRiOWVjOTc5OWFhODg5MGY1MjUwZmI1ODljZmMxMmRhYzFiNmU0MDZhMzliYzNiMzY2Mzg5MmRhNTM1NGJhNDUzY2JkNWU0Yzg5YmRjZTgyZDBmZmU5NzA1MmEwM2E1YzMzMDg4MTljMTEzOWViYzc4MGMxM2NmNmRjMTQ3N2ZhZjczNGFiY2IxZGIzZmFmYWVkNmYyMjg4NWM5YzAyMjJmZjVkZWFjYjhjYzZkMDI3ZjJlOTU5YzMwNzUwMTFiMzgyZTg4YzRiMjdiODNiNGYyZTZmZGEwMjJlMzMxYzM2MDJkMTlmNWFjN2JjY2ZlOTVlYTFlOTNkNzM2ZGJkOTE4YWU1YjFmNDY4Y2QwYjViNTM2YTJmOTE4ZDVlMjdhMDc1N2U3NWI3IjowCiAKIFJTQSBQS0NTMSBWZXJpZnkgdjEuNSBDQVZTICMzMwpAQCAtMTU2LDMyICsxNTYsMzIgQEAKICMgU2VlIHRoZSBkb2N1bWVudGF0aW9uIG9mIGBtYmVkdGxzX3JzYV9yc2Fzc2FfcGtjczFfdjE1X2VuY29kZWAgZm9yIHRoZSBsYXlvdXQgb2YgdGhlIHJlbGV2YW50IEFTTi4xIHN0cnVjdHVyZS4KICMgQ29ycmVjdCBzaWduYXR1cmUgd2l0aCBERVItY29tcGxpYW50IHJlZHVjZWQgbGVuZ3RoIGVuY29kaW5ncwogUlNBIFBLQ1MxIFZlcmlmeSB2MS41IHJlZHVjZWQgbGVuZ3RoIGVuY29kaW5nCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NjpNQkVEVExTX1BLQ1MxX1YxNQorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NjpNQkVEVExTX1BLQ1MxX1YxNQogbWJlZHRsc19yc2FfcGtjczFfdmVyaWZ5OiJlZDMzMGY0M2U4NjYzNzhmNWM1ZmY4NjdlYTUxZDlkY2VhYzYyMmJhYjU5NTUyZjNmYWYyMmZhM2IxODIzYmY5IjpNQkVEVExTX1JTQV9QS0NTX1YxNTpNQkVEVExTX01EX1NIQTI1NjoxMDI0OiJBMUQ0NkZCQTIzMThGOERDRUYxNkMyODA5NDhCMUNGMjc5NjZCOUI0NzIyNUVEMjk4OUY4RDc0QjQ1QkQzNjA0OUMwQUFCNUFEMEZGMDAzNTUzQkE4NDNDOEUxMjc4MkZDNTg3M0JCODlBM0RDODRCODgzRDI1NjY2Q0QyMkJGM0FDRDVCNjc1OTY5RjhCRUJGQkNBQzkzRkREOTI3Qzc0NDJCMTc4QjEwRDFERkY5Mzk4RTUyMzE2QUFFMEFGNzRFNTk0NjUwQkRDM0M2NzAyNDFENDE4Njg0NTkzQ0RBMUE3QjlEQzRGMjBEMkZEQzZGNjYzNDQwNzQwMDNFMjExIjoiMTAwMDEiOiI1QjU2MDk2RUNBREE0REFDMjk5RkQzRDYwOTFDMUJFNEQ3QzQyMTAwODZFNjFBREE2RkZDMjY3QTY5MDAzNERBRkIzNzM0MDM1ODgwQjlFNzFDRUIwMzMxQzMyQzhERTFBMjU0RDc3N0RGRTNDODQ4QUM3NzY0OTA3NjAyNDUyRUMxNkZEOEVCMzY2NEUyRTY4MkRCM0FBODk3OTA1OUJGQURGRTYxOTJEOTAyOTg0NEM4Q0FGMzEwNTUyNzE3REQ1QjVCMzZBOTkxMENGQUJFNUM1NEFDMTZGM0EzNDYxREVFNzMwMDYwOTgxQkQ5QjQ3RUU4RDY2NDQ5NjNCN0NBIjowCiAKICMgTm9uLXJlZHVjZWQgMS1ieXRlIGxlbmd0aCBlbmNvZGluZyBpbiBgRGlnZXN0SW5mb2AgQVNOLjEgZWxlbWVudAogUlNBIFBLQ1MxIFZlcmlmeSB2MS41IG5vbi1yZWR1Y2VkIGxlbmd0aCBlbmNvZGluZyAjMQotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTY6TUJFRFRMU19QS0NTMV9WMTUKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTY6TUJFRFRMU19QS0NTMV9WMTUKIG1iZWR0bHNfcnNhX3BrY3MxX3ZlcmlmeToiZWQzMzBmNDNlODY2Mzc4ZjVjNWZmODY3ZWE1MWQ5ZGNlYWM2MjJiYWI1OTU1MmYzZmFmMjJmYTNiMTgyM2JmOSI6TUJFRFRMU19SU0FfUEtDU19WMTU6TUJFRFRMU19NRF9TSEEyNTY6MTAyNDoiQTFENDZGQkEyMzE4RjhEQ0VGMTZDMjgwOTQ4QjFDRjI3OTY2QjlCNDcyMjVFRDI5ODlGOEQ3NEI0NUJEMzYwNDlDMEFBQjVBRDBGRjAwMzU1M0JBODQzQzhFMTI3ODJGQzU4NzNCQjg5QTNEQzg0Qjg4M0QyNTY2NkNEMjJCRjNBQ0Q1QjY3NTk2OUY4QkVCRkJDQUM5M0ZERDkyN0M3NDQyQjE3OEIxMEQxREZGOTM5OEU1MjMxNkFBRTBBRjc0RTU5NDY1MEJEQzNDNjcwMjQxRDQxODY4NDU5M0NEQTFBN0I5REM0RjIwRDJGREM2RjY2MzQ0MDc0MDAzRTIxMSI6IjEwMDAxIjoiMkZDRjdGQzFCNjBCM0MwODM4NzJCMUJEOUM2NjY3NDU5MjE5NTFBOEE5RTA5OUZENjI5Njc1RjYyMEI2NzA3MTM1MTlDNEE5N0I4NzA1OTFCOTdGRTVDNURCMkZDMkEwQTNGQ0IwMDE2NTM2RDEyMDVBQTMyQkE4QkZDRjU0QUJENTQyQzAyRjdGQ0VBM0MzNTMxRDdBODdDODJFRDVCMTUxQTk1OTlGMUJEQjA3MEE5MDVGNUI3MjFERTNDMjJGOEFDMzUwMzRDNjA3OTIwQ0UwNjk5RDdGNzlFNTkxMzkxNUYzQTAxODU2QjVEMzBGOUU2OEYwQ0Q3ODU2RDQwRiI6TUJFRFRMU19FUlJfUlNBX1ZFUklGWV9GQUlMRUQKIAogIyBOb24tcmVkdWNlZCAyLWJ5dGUgbGVuZ3RoIGVuY29kaW5nIGZvciBgZGlnZXN0QWxnb3JpdGhtYCBBU04uMSBlbGVtZW50CiBSU0EgUEtDUzEgVmVyaWZ5IHYxLjUgbm9uLXJlZHVjZWQgbGVuZ3RoIGVuY29kaW5nICMyCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NjpNQkVEVExTX1BLQ1MxX1YxNQorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NjpNQkVEVExTX1BLQ1MxX1YxNQogbWJlZHRsc19yc2FfcGtjczFfdmVyaWZ5OiJlZDMzMGY0M2U4NjYzNzhmNWM1ZmY4NjdlYTUxZDlkY2VhYzYyMmJhYjU5NTUyZjNmYWYyMmZhM2IxODIzYmY5IjpNQkVEVExTX1JTQV9QS0NTX1YxNTpNQkVEVExTX01EX1NIQTI1NjoxMDI0OiJBMUQ0NkZCQTIzMThGOERDRUYxNkMyODA5NDhCMUNGMjc5NjZCOUI0NzIyNUVEMjk4OUY4RDc0QjQ1QkQzNjA0OUMwQUFCNUFEMEZGMDAzNTUzQkE4NDNDOEUxMjc4MkZDNTg3M0JCODlBM0RDODRCODgzRDI1NjY2Q0QyMkJGM0FDRDVCNjc1OTY5RjhCRUJGQkNBQzkzRkREOTI3Qzc0NDJCMTc4QjEwRDFERkY5Mzk4RTUyMzE2QUFFMEFGNzRFNTk0NjUwQkRDM0M2NzAyNDFENDE4Njg0NTkzQ0RBMUE3QjlEQzRGMjBEMkZEQzZGNjYzNDQwNzQwMDNFMjExIjoiMTAwMDEiOiIzQzI3NTEyQThGREM5NzNEODU2QzBGMjg4QkUyN0QwMEQ1NEZDMEIzNTlDNTIwREE3M0EwNTE1NkQ5OENERDZBODNFNjY1N0JGQTgxRDdCOTcxNkVFREZEOThDMDhDRDgyRjM5OTI5ODc4Mjc4MkFFMzQxRDlBQUJDQkI2QjVGOUM2NTUyREUxRDhCOTMwNDdFMTEzNTAzMjY1M0Y0RjY1QTg5MzczNTJFOTAzODY0RTAwODQyOUUwNDk2ODBFM0FBODBGNURFMUM3NDA4QzQwMzAxMUNFRjRBM0VDQTU0OUMwMjdDODk1NEJGQkNBMjFGMkE0MUMzRUIwMjc4MDI5IjpNQkVEVExTX0VSUl9SU0FfVkVSSUZZX0ZBSUxFRAogCiAjIE5vbi1yZWR1Y2VkIDMtYnl0ZSBsZW5ndGggZW5jb2RpbmcgZm9yIG9wdGlvbmFsIHBhcmFtZXRlcnMgaW4gYGRpZ2VzdEFsZ29yaXRobWAgQVNOLjEgZWxlbWVudAogUlNBIFBLQ1MxIFZlcmlmeSB2MS41IG5vbi1yZWR1Y2VkIGxlbmd0aCBlbmNvZGluZyAjMwotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTY6TUJFRFRMU19QS0NTMV9WMTUKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTY6TUJFRFRMU19QS0NTMV9WMTUKIG1iZWR0bHNfcnNhX3BrY3MxX3ZlcmlmeToiZWQzMzBmNDNlODY2Mzc4ZjVjNWZmODY3ZWE1MWQ5ZGNlYWM2MjJiYWI1OTU1MmYzZmFmMjJmYTNiMTgyM2JmOSI6TUJFRFRMU19SU0FfUEtDU19WMTU6TUJFRFRMU19NRF9TSEEyNTY6MTAyNDoiQTFENDZGQkEyMzE4RjhEQ0VGMTZDMjgwOTQ4QjFDRjI3OTY2QjlCNDcyMjVFRDI5ODlGOEQ3NEI0NUJEMzYwNDlDMEFBQjVBRDBGRjAwMzU1M0JBODQzQzhFMTI3ODJGQzU4NzNCQjg5QTNEQzg0Qjg4M0QyNTY2NkNEMjJCRjNBQ0Q1QjY3NTk2OUY4QkVCRkJDQUM5M0ZERDkyN0M3NDQyQjE3OEIxMEQxREZGOTM5OEU1MjMxNkFBRTBBRjc0RTU5NDY1MEJEQzNDNjcwMjQxRDQxODY4NDU5M0NEQTFBN0I5REM0RjIwRDJGREM2RjY2MzQ0MDc0MDAzRTIxMSI6IjEwMDAxIjoiMjRCRUI4NTAyRjI0RTBEMTFEOUMxMENFRTQ0MzVFQTk3MkNFQzkzQzIzOTM2RTgxNUVEMkRGNDFCRUNFRERFODg5QUY4NUJCRUFGMUI4QzY5Mjg5MTNBQzUyM0VBMUQ2NjUzODMyRTlENEU3NEY1NUI3Njc3MUVBODRGNUE2MDczNDJDMzQxQTE0QUIyNTgwMTlGMzhEQkFFRTRCOTY3QzhDOEQyNkQ2QUYyNTgzRDMyOTg4NDcxQkEzODc1MUI2QTY3QkEzRDExNDc2MTlDMjY2QTlBQUMzNDI0NDc0MEJCNTlDRDlEQjNBRkYxOTQzOEIwNEM2MTlBQjcxOTEyMyI6TUJFRFRMU19FUlJfUlNBX1ZFUklGWV9GQUlMRUQKIAogIyBOb24tcmVkdWNlZCA0LWJ5dGUgbGVuZ3RoIGVuY29kaW5nIGluIGBkaWdlc3RgIEFTTi4xIGVsZW1lbnQKIFJTQSBQS0NTMSBWZXJpZnkgdjEuNSBub24tcmVkdWNlZCBsZW5ndGggZW5jb2RpbmcgIzQKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2Ok1CRURUTFNfUEtDUzFfVjE1CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2Ok1CRURUTFNfUEtDUzFfVjE1CiBtYmVkdGxzX3JzYV9wa2NzMV92ZXJpZnk6ImVkMzMwZjQzZTg2NjM3OGY1YzVmZjg2N2VhNTFkOWRjZWFjNjIyYmFiNTk1NTJmM2ZhZjIyZmEzYjE4MjNiZjkiOk1CRURUTFNfUlNBX1BLQ1NfVjE1Ok1CRURUTFNfTURfU0hBMjU2OjEwMjQ6IkExRDQ2RkJBMjMxOEY4RENFRjE2QzI4MDk0OEIxQ0YyNzk2NkI5QjQ3MjI1RUQyOTg5RjhENzRCNDVCRDM2MDQ5QzBBQUI1QUQwRkYwMDM1NTNCQTg0M0M4RTEyNzgyRkM1ODczQkI4OUEzREM4NEI4ODNEMjU2NjZDRDIyQkYzQUNENUI2NzU5NjlGOEJFQkZCQ0FDOTNGREQ5MjdDNzQ0MkIxNzhCMTBEMURGRjkzOThFNTIzMTZBQUUwQUY3NEU1OTQ2NTBCREMzQzY3MDI0MUQ0MTg2ODQ1OTNDREExQTdCOURDNEYyMEQyRkRDNkY2NjM0NDA3NDAwM0UyMTEiOiIxMDAwMSI6IjEzMTcyRUY3MzYyQ0Y0MjExMDNGRTE4OTM0MjlGQUU4NUY4MzYzNkJBOEFGNTQ1MjUyNTk5QTM5ODkyRTYyQ0VDMzE3REM0N0MxRDZCMTkzMjhCNjNDREZEMDJGQTBCNDlDRTc5ODA1MDQ2MzUyNTFGRjA4QzBBMTMwOEM2NEQ2NDY2REZCRjFFRjJCQTQ5RUZERDZDMkM4ODhBMzA4NzBFQzJEQzBGQTRENjdGREU2NjMxQzg1RUQyQ0VGOEVFQkY1NTc4Qzk3NENCQTRBMDQwMzREOUI1NzlCNDIwRDZDQTkzRTRCRkMwOUUwMTQ1NDJBMEVGQjkwMkFGOTBDNUUiOk1CRURUTFNfRVJSX1JTQV9WRVJJRllfRkFJTEVECiAKICMgTm9uLXJlZHVjZWQgMy1ieXRlIGxlbmd0aCBlbmNvZGluZyBmb3IgT0lEIGluIGBkaWdlc3RBbGdvcml0aG1gIEFTTi4xIGVsZW1lbnQKIFJTQSBQS0NTMSBWZXJpZnkgdjEuNSBub24tcmVkdWNlZCBsZW5ndGggZW5jb2RpbmcgIzUKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2Ok1CRURUTFNfUEtDUzFfVjE1CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2Ok1CRURUTFNfUEtDUzFfVjE1CiBtYmVkdGxzX3JzYV9wa2NzMV92ZXJpZnk6ImVkMzMwZjQzZTg2NjM3OGY1YzVmZjg2N2VhNTFkOWRjZWFjNjIyYmFiNTk1NTJmM2ZhZjIyZmEzYjE4MjNiZjkiOk1CRURUTFNfUlNBX1BLQ1NfVjE1Ok1CRURUTFNfTURfU0hBMjU2OjEwMjQ6IkExRDQ2RkJBMjMxOEY4RENFRjE2QzI4MDk0OEIxQ0YyNzk2NkI5QjQ3MjI1RUQyOTg5RjhENzRCNDVCRDM2MDQ5QzBBQUI1QUQwRkYwMDM1NTNCQTg0M0M4RTEyNzgyRkM1ODczQkI4OUEzREM4NEI4ODNEMjU2NjZDRDIyQkYzQUNENUI2NzU5NjlGOEJFQkZCQ0FDOTNGREQ5MjdDNzQ0MkIxNzhCMTBEMURGRjkzOThFNTIzMTZBQUUwQUY3NEU1OTQ2NTBCREMzQzY3MDI0MUQ0MTg2ODQ1OTNDREExQTdCOURDNEYyMEQyRkRDNkY2NjM0NDA3NDAwM0UyMTEiOiIxMDAwMSI6IjY1REQ1MThGNjNBMkUyODlDMDM1RTlGMkE5OTI3QkY1QTZBNzRGRjZGRUZGRjYxQUZDQzUyRUQ0QThBNUI5MzUzNEEzQUQxNzA5MTM2MzA2RUUxMzc5QjQ3QTQ4NjNCQzZFRDg3OUU5MkNENkY5OUFBNUI1RjEwNjEwMkJEQUU4REFGQjE1Q0Y2RUYwMENCNUZBNjM5Njc3MDY1MjhERUU4ODc2RjNEMDRFOEQ3NTUzMzAwOUM3M0RBNEM1NzQ0RDIwRkZEQjE4RUE3OEVFNEQ1RDlENkY3QkQzQUZDMkFEOUEwRURERDU2QUE0MEFBRUY3ODlFNkZCMTJBQjZERTciOk1CRURUTFNfRVJSX1JTQV9WRVJJRllfRkFJTEVECiAKIFJTQSBQS0NTMSBTaWduICMxIChTSEE1MTIsIDE1MzYgYml0cyBSU0EpCkBAIC0xOTMsMzEgKzE5MywzMSBAQAogbWJlZHRsc19yc2FfcGtjczFfdmVyaWZ5OiIyYzlhZWI5ZTViZDU0NTdiZDYwYmJlZmY0NjVjNGUxNTE5MTYxZWJlOTY1YjY2MjdkN2NkNDU4ZjI3ZTIyMTAyNzA2MWU3ZGVlNzU5YzViNDZmMzhkNTA5YmEwYzU0YTkyYzRiNmY2MmI3ZDgxZDM3M2NjN2Y0NGViMGI2Njk1MyI6TUJFRFRMU19SU0FfUEtDU19WMTU6TUJFRFRMU19NRF9TSEE1MTI6MTUzNjoiYmQ0MjliYjdjM2IwMGJiZWExOWJhNjY0YzBmODE3MmQxYTczYzNjZmEwNWUyZWQ2NTZkNTcwYzE1OTA5MThiYjdlMzcyZWQyNWUyY2Q3MTM5NWJhMGE5YjFhMzBmM2VlMDEyZmZiMDU0NmNhYjhlMzU4MWZlM2UyM2Y0NGFiNTdhOGFlZTk3MTdlNzFhOTM2YTU4MGZhODU3MmQ0NTBmYjAwMzM5YTZmNjcwNGI3MTdkZjBjMTQ5YTQ2NWJhYjc2OGM2MTUwMGNkOTNiNjExMTNmZjNlNDM4OTE2N2Y3YjJjOGUzYzBkYTJkNDc2NTI4NmJlZTU1NWIwYmNiNDk5OGY1OWIxNGZhZDAzMTgwYTE3YzhiNGY2OWJjZDEyMzRmNGFlODU5NTAxMzc2NjVhYzJiYTgwYjU1Y2M5YjFhYWZiNDU0YjgzNzcxYWE3NTVhY2QyYTAwZTkzZGRiNjVlNjk2ZGJlZDhiZGNhNjlmYjVlMGM1YzIwOTdiOWNmZTRiIjoiMyI6IjkzYjZmYTk5NDg1YzExNmNhNmVmZGQ0MjAyZWExY2Y0OWY0YzYzNDVmYWU2OTI1ODQ0MTM3NDNjZTViNjU1MTBlOGU0NjkwYWVlOWExOWVhMWZmMTBkNTdmMjJhYTM1NDhkODM5ZjI4YTg1MjVhMzQzNTRlOWU1OGUwZjM5NDdlMDU2Y2UyNTU0ZTIxYmYyODdlMjIwYjk4ZGIzYjU1MTI1OGNkNDJiNDk1ZTVkMWEzYmJjODNjOWQxYTAyZjJhMzAwZWY2ZDg2NmVhNzUxMDhlNDRlYmIzZTE2YjQ3ZGYyZjZkZTI4ZmViMmJlMzg3NGRiYmYyMTU5OTQ1MTA4MmQ4NmU5ZjJmNDYyNTc1YTgxODVjNjlhYTFmMWZjYjZhMzYzYzVkNzFhZWJhMjEwMzQ0OWVhZjM4NDUyODUyOTExNDhkNWY3OGQxNjQ2YjhkYzk1Y2JjYzQwODJmOTg3ZDk0OGIwZTdkNGU4MGI2MDU5NWY4YTc1MTc1ODRlMTY0MyI6MAogCiBSU0EgUEtDUzEgU2lnbiAjMiAoU0hBMjU2LCAyMDQ4IGJpdHMgUlNBKQotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTY6TUJFRFRMU19QS0NTMV9WMTUKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTY6TUJFRFRMU19QS0NTMV9WMTUKIG1iZWR0bHNfcnNhX3BrY3MxX3NpZ246IjhjZmQ3YzJmMDdhOTRhZWExZmYyMjJkYzliODBjNThhOTQ2Yzk3NTQ3MGZmMmQyZDNmYmRiNDVlYWMxZWZhNWMiOk1CRURUTFNfUlNBX1BLQ1NfVjE1Ok1CRURUTFNfTURfU0hBMjU2OjIwNDg6ImU3OWEzNzMxODJiZmFhNzIyZWIwMzVmNzcyYWQyYTk0NjRiZDg0MmRlNTk0MzJjMThiYmFiM2E3ZGZlYWUzMThjOWI5MTVlZTQ4Nzg2MWFiNjY1YTQwYmQ2Y2RhNTYwMTUyNTc4ZTg1NzkwMTZjOTI5ZGY5OWZlYTA1YjRkNjRlZmNhMWQ1NDM4NTBiYzgxNjRiNDBkNzFlZDdmM2ZhNDEwNWRmMGZiOWI5YWQyYTE4Y2UxODJjOGE0ZjRmOTc1YmVhOWFhMGI5YTE0MzhhMjdhMjhlOTdhYzgzMzBlZjM3MzgzNDE0ZDFiZDY0NjA3ZDY5NzlhYzA1MDQyNGZkMTciOiJjNjc0OWNiYjBkYjhjNWExNzc2NzJkNDcyOGE4YjIyMzkyYjJmYzRkM2I4MzYxZDVjMGQ1MDU1YTFiNGU0NmQ4MjFmNzU3YzI0ZWVmMmE1MWM1NjE5NDFiOTNiM2FjZTczNDAwNzRjMDU4YzliYjQ4ZTdlNzQxNGY0MmM0MWRhNGNjY2I1YzJiYTkxZGViMzBjNTg2YjdmYjE4YWYxMmE1Mjk5NTU5MmFkMTM5ZDNiZTQyOWFkZDY1NDdlMDQ0YmVjZWRhZjMxZmEzYjM5NDIxZTI0ZWUwMzRmYmYzNjdkMTFmNmI4Zjg4ZWU0ODNkMTYzYjQzMWUxNjU0YWQzZTg5IjoiYjM4YWM2NWM4MTQxZjdmNWM5NmUxNDQ3MGU4NTE5MzZhNjdiZjk0Y2M2ODIxYTM5YWMxMmMwNWY3YzBiMDZkOWU2ZGRiYTIyMjQ3MDNiMDJlMjVmMzE0NTJmOWM0YTg0MTdiNjI2NzVmZGM2ZGY0NmI5NDgxM2JjN2I5NzY5YTg5MmM0ODJiODMwYmZlMGFkNDJlNDY2NjhhY2U2ODkwMzYxN2ZhZjY2ODFmNGJhYmYxY2M4ZTRiMDQyMGQzYzdmNjFkYzQ1NDM0YzZiNTRlMmMzZWUwZmMwNzkwODUwOWQ3OWM5ODI2ZTY3M2JmODM2MzI1NWFkYjBhZGQyNDAxMDM5YTdiY2QxYjRlY2YwZmJlNmVjODM2OWQyZGE0ODZlZWM1OTU1OWRkMWQ1NGM5YjI0MTkwOTY1ZWFmYmRhYjIwM2IzNTI1NTc2NTI2MWNkMDkwOWFjZjkzYzNiOGI4NDI4Y2JiNDQ4ZGU0NzE1ZDFiODEzZDBjOTQ4MjljMjI5NTQzZDM5MWNlMGFkYWI1MzUxZjk3YTM4MTBjMWY3M2Q3YjE0NThiOTdkYWVkNDIwOWM1MGUxNmQwNjRkMmQ1YmZkYThjMjM4OTNkNzU1MjIyNzkzMTQ2ZDBhNzhjM2Q2NGYzNTU0OTE0MTQ4NmMzYjA5NjFhN2I0YzFhMjAzNGYiOiIzIjoiNWFlZTJiOWRiYzAyYTZhMmQ4N2ZmNjRhNjQxNjVkYzBiOWNlNzBjNzliYWIyZDI4NzkzOWUyNjAxYzMyMjNlMDQ5Mzk4OGQ1NDY4NzMxYWU0ZWRjN2Q1ZjVkNDQ5MzM1YzIwNGZkYjBlMTkyYzE5MTVjOWQ2OTRkM2E2MWMzYmUxNGRmNzljNGIzNGQ2YWM3MzcwNzgyOTAyNGQyNjNjOTRmOTEwN2ZhOTNmMzc4M2RlMzk2NTUyMjMzNmUxOGQxZTAxYTE0MmI1MTAzNDUxYmI5NzgzOWVhZjJmNDQ3MDNhNjMwNTBhMzZiNzhhZWY0MDcyZWExYThkYWFhZjFhMjkxOGZjMDNlZTk1N2E5YzA5ZWZkYzcyODdiY2I0ZDZhZWM0NzIzMjkwMjk0YjI0OWIzZTNkYzYzMTU3YjU2MGFkOWM4NjczMjNhNzNlYmViMzYwY2M5ZTQ4MjExMTY0M2IwZDg2YzRlMzNkY2YxNzAxNTU1OTBmMGViYTdkMTcwNzg5ZTg0ZGUzMzZiN2ZlMmY2Y2Y0ODVkZGNhOTQ2MDdhNGZmMzc5ZmM0OWQzNzVjNzMwMjQ5ZGQxYTIxMGU3ZGNjZDc2MmQxYzIzYzc1MzJlNzY5YzZhYTg4ZTM4ZTg2NTRmZjkwZjdiMzRkZjRjMDdiYTkwZTg5MDk5ZWMxZWQiOjAKIAogUlNBIFBLQ1MxIFNpZ24gIzIgVmVyaWZ5Ci1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NjpNQkVEVExTX1BLQ1MxX1YxNQorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NjpNQkVEVExTX1BLQ1MxX1YxNQogbWJlZHRsc19yc2FfcGtjczFfdmVyaWZ5OiI4Y2ZkN2MyZjA3YTk0YWVhMWZmMjIyZGM5YjgwYzU4YTk0NmM5NzU0NzBmZjJkMmQzZmJkYjQ1ZWFjMWVmYTVjIjpNQkVEVExTX1JTQV9QS0NTX1YxNTpNQkVEVExTX01EX1NIQTI1NjoyMDQ4OiJiMzhhYzY1YzgxNDFmN2Y1Yzk2ZTE0NDcwZTg1MTkzNmE2N2JmOTRjYzY4MjFhMzlhYzEyYzA1ZjdjMGIwNmQ5ZTZkZGJhMjIyNDcwM2IwMmUyNWYzMTQ1MmY5YzRhODQxN2I2MjY3NWZkYzZkZjQ2Yjk0ODEzYmM3Yjk3NjlhODkyYzQ4MmI4MzBiZmUwYWQ0MmU0NjY2OGFjZTY4OTAzNjE3ZmFmNjY4MWY0YmFiZjFjYzhlNGIwNDIwZDNjN2Y2MWRjNDU0MzRjNmI1NGUyYzNlZTBmYzA3OTA4NTA5ZDc5Yzk4MjZlNjczYmY4MzYzMjU1YWRiMGFkZDI0MDEwMzlhN2JjZDFiNGVjZjBmYmU2ZWM4MzY5ZDJkYTQ4NmVlYzU5NTU5ZGQxZDU0YzliMjQxOTA5NjVlYWZiZGFiMjAzYjM1MjU1NzY1MjYxY2QwOTA5YWNmOTNjM2I4Yjg0MjhjYmI0NDhkZTQ3MTVkMWI4MTNkMGM5NDgyOWMyMjk1NDNkMzkxY2UwYWRhYjUzNTFmOTdhMzgxMGMxZjczZDdiMTQ1OGI5N2RhZWQ0MjA5YzUwZTE2ZDA2NGQyZDViZmRhOGMyMzg5M2Q3NTUyMjI3OTMxNDZkMGE3OGMzZDY0ZjM1NTQ5MTQxNDg2YzNiMDk2MWE3YjRjMWEyMDM0ZiI6IjMiOiI1YWVlMmI5ZGJjMDJhNmEyZDg3ZmY2NGE2NDE2NWRjMGI5Y2U3MGM3OWJhYjJkMjg3OTM5ZTI2MDFjMzIyM2UwNDkzOTg4ZDU0Njg3MzFhZTRlZGM3ZDVmNWQ0NDkzMzVjMjA0ZmRiMGUxOTJjMTkxNWM5ZDY5NGQzYTYxYzNiZTE0ZGY3OWM0YjM0ZDZhYzczNzA3ODI5MDI0ZDI2M2M5NGY5MTA3ZmE5M2YzNzgzZGUzOTY1NTIyMzM2ZTE4ZDFlMDFhMTQyYjUxMDM0NTFiYjk3ODM5ZWFmMmY0NDcwM2E2MzA1MGEzNmI3OGFlZjQwNzJlYTFhOGRhYWFmMWEyOTE4ZmMwM2VlOTU3YTljMDllZmRjNzI4N2JjYjRkNmFlYzQ3MjMyOTAyOTRiMjQ5YjNlM2RjNjMxNTdiNTYwYWQ5Yzg2NzMyM2E3M2ViZWIzNjBjYzllNDgyMTExNjQzYjBkODZjNGUzM2RjZjE3MDE1NTU5MGYwZWJhN2QxNzA3ODllODRkZTMzNmI3ZmUyZjZjZjQ4NWRkY2E5NDYwN2E0ZmYzNzlmYzQ5ZDM3NWM3MzAyNDlkZDFhMjEwZTdkY2NkNzYyZDFjMjNjNzUzMmU3NjljNmFhODhlMzhlODY1NGZmOTBmN2IzNGRmNGMwN2JhOTBlODkwOTllYzFlZCI6MAogCiBSU0EgUEtDUzEgU2lnbiAjMiBWZXJpZnkgKEZhaWwpCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NjpNQkVEVExTX1BLQ1MxX1YxNQorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NjpNQkVEVExTX1BLQ1MxX1YxNQogbWJlZHRsc19yc2FfcGtjczFfdmVyaWZ5OiI4Y2ZkN2MyZjA3YTk0YWVhMWZmMjIyZGM5YjgwYzU4YTk0NmM5NzU0NzBmZjJkMmQzZmJkYjQ1ZWFjMWVmYTVjIjpNQkVEVExTX1JTQV9QS0NTX1YxNTpNQkVEVExTX01EX1NIQTI1NjoyMDQ4OiJiMzhhYzY1YzgxNDFmN2Y1Yzk2ZTE0NDcwZTg1MTkzNmE2N2JmOTRjYzY4MjFhMzlhYzEyYzA1ZjdjMGIwNmQ5ZTZkZGJhMjIyNDcwM2IwMmUyNWYzMTQ1MmY5YzRhODQxN2I2MjY3NWZkYzZkZjQ2Yjk0ODEzYmM3Yjk3NjlhODkyYzQ4MmI4MzBiZmUwYWQ0MmU0NjY2OGFjZTY4OTAzNjE3ZmFmNjY4MWY0YmFiZjFjYzhlNGIwNDIwZDNjN2Y2MWRjNDU0MzRjNmI1NGUyYzNlZTBmYzA3OTA4NTA5ZDc5Yzk4MjZlNjczYmY4MzYzMjU1YWRiMGFkZDI0MDEwMzlhN2JjZDFiNGVjZjBmYmU2ZWM4MzY5ZDJkYTQ4NmVlYzU5NTU5ZGQxZDU0YzliMjQxOTA5NjVlYWZiZGFiMjAzYjM1MjU1NzY1MjYxY2QwOTA5YWNmOTNjM2I4Yjg0MjhjYmI0NDhkZTQ3MTVkMWI4MTNkMGM5NDgyOWMyMjk1NDNkMzkxY2UwYWRhYjUzNTFmOTdhMzgxMGMxZjczZDdiMTQ1OGI5N2RhZWQ0MjA5YzUwZTE2ZDA2NGQyZDViZmRhOGMyMzg5M2Q3NTUyMjI3OTMxNDZkMGE3OGMzZDY0ZjM1NTQ5MTQxNDg2YzNiMDk2MWE3YjRjMWEyMDM0ZiI6IjMiOiI1YWVlMmI5ZGJjMDJhNmEyZDg3ZmY2NGE2NDE2NWRjMGI5Y2U3MGM3OWJhYjJkMjg3OTM5ZTI2MDFjMzIyM2UwNDkzOTg4ZDU0Njg3MzFhZTRlZGM3ZDVmNWQ0NDkzMzVjMjA0ZmRiMGUxOTJjMTkxNWM5ZDY5NGQzYTYxYzNiZTE0ZGY3OWM0YjM0ZDZhYzczNzA3ODI5MDI0ZDI2M2M5NGY5MTA3ZmE5M2YzNzgzZGUzOTY1NTIyMzM2ZTE4ZDFlMDFhMTQyYjUxMDM0NTFiYjk3ODM5ZWFmMmY0NDcwM2E2MzA1MGEzNmI3OGFlZjQwNzJlYTFhOGRhYWFmMWEyOTE4ZmMwM2VlOTU3YTljMDllZmRjNjI4N2JjYjRkNmFlYzQ3MjMyOTAyOTRiMjQ5YjNlM2RjNjMxNTdiNTYwYWQ5Yzg2NzMyM2E3M2ViZWIzNjBjYzllNDgyMTExNjQzYjBkODZjNGUzM2RjZjE3MDE1NTU5MGYwZWJhN2QxNzA3ODllODRkZTMzNmI3ZmUyZjZjZjQ4NWRkY2E5NDYwN2E0ZmYzNzlmYzQ5ZDM3NWM3MzAyNDlkZDFhMjEwZTdkY2NkNzYzZDFjMjNjNzUzMmU3NjljNmFhODhlMzhlODY1NGZmOTBmN2IzNGRmNGMwN2JhOTBlODkwOTllYzFlZCI6TUJFRFRMU19FUlJfUlNBX1ZFUklGWV9GQUlMRUQKIAogUlNBIFBLQ1MxIFNpZ24gIzMgKFNIQTIyNCwgMjA0OCBiaXRzIFJTQSkKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjI0Ok1CRURUTFNfUEtDUzFfVjE1CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjI0Ok1CRURUTFNfUEtDUzFfVjE1CiBtYmVkdGxzX3JzYV9wa2NzMV9zaWduOiIzMmYzMzlmZTMzZjEwYTBmYTE1MmJmOTY1OWNkZjdhMGU0Yjc0MTQ0NGVhMzFhODVkNDBlZDRiYiI6TUJFRFRMU19SU0FfUEtDU19WMTU6TUJFRFRMU19NRF9TSEEyMjQ6MjA0ODoiZTc5YTM3MzE4MmJmYWE3MjJlYjAzNWY3NzJhZDJhOTQ2NGJkODQyZGU1OTQzMmMxOGJiYWIzYTdkZmVhZTMxOGM5YjkxNWVlNDg3ODYxYWI2NjVhNDBiZDZjZGE1NjAxNTI1NzhlODU3OTAxNmM5MjlkZjk5ZmVhMDViNGQ2NGVmY2ExZDU0Mzg1MGJjODE2NGI0MGQ3MWVkN2YzZmE0MTA1ZGYwZmI5YjlhZDJhMThjZTE4MmM4YTRmNGY5NzViZWE5YWEwYjlhMTQzOGEyN2EyOGU5N2FjODMzMGVmMzczODM0MTRkMWJkNjQ2MDdkNjk3OWFjMDUwNDI0ZmQxNyI6ImM2NzQ5Y2JiMGRiOGM1YTE3NzY3MmQ0NzI4YThiMjIzOTJiMmZjNGQzYjgzNjFkNWMwZDUwNTVhMWI0ZTQ2ZDgyMWY3NTdjMjRlZWYyYTUxYzU2MTk0MWI5M2IzYWNlNzM0MDA3NGMwNThjOWJiNDhlN2U3NDE0ZjQyYzQxZGE0Y2NjYjVjMmJhOTFkZWIzMGM1ODZiN2ZiMThhZjEyYTUyOTk1NTkyYWQxMzlkM2JlNDI5YWRkNjU0N2UwNDRiZWNlZGFmMzFmYTNiMzk0MjFlMjRlZTAzNGZiZjM2N2QxMWY2YjhmODhlZTQ4M2QxNjNiNDMxZTE2NTRhZDNlODkiOiJiMzhhYzY1YzgxNDFmN2Y1Yzk2ZTE0NDcwZTg1MTkzNmE2N2JmOTRjYzY4MjFhMzlhYzEyYzA1ZjdjMGIwNmQ5ZTZkZGJhMjIyNDcwM2IwMmUyNWYzMTQ1MmY5YzRhODQxN2I2MjY3NWZkYzZkZjQ2Yjk0ODEzYmM3Yjk3NjlhODkyYzQ4MmI4MzBiZmUwYWQ0MmU0NjY2OGFjZTY4OTAzNjE3ZmFmNjY4MWY0YmFiZjFjYzhlNGIwNDIwZDNjN2Y2MWRjNDU0MzRjNmI1NGUyYzNlZTBmYzA3OTA4NTA5ZDc5Yzk4MjZlNjczYmY4MzYzMjU1YWRiMGFkZDI0MDEwMzlhN2JjZDFiNGVjZjBmYmU2ZWM4MzY5ZDJkYTQ4NmVlYzU5NTU5ZGQxZDU0YzliMjQxOTA5NjVlYWZiZGFiMjAzYjM1MjU1NzY1MjYxY2QwOTA5YWNmOTNjM2I4Yjg0MjhjYmI0NDhkZTQ3MTVkMWI4MTNkMGM5NDgyOWMyMjk1NDNkMzkxY2UwYWRhYjUzNTFmOTdhMzgxMGMxZjczZDdiMTQ1OGI5N2RhZWQ0MjA5YzUwZTE2ZDA2NGQyZDViZmRhOGMyMzg5M2Q3NTUyMjI3OTMxNDZkMGE3OGMzZDY0ZjM1NTQ5MTQxNDg2YzNiMDk2MWE3YjRjMWEyMDM0ZiI6IjMiOiI5ZDc2OGI4YjMxNDIxZjlkOWNlZDg5MGFhZmFmOGIzNDY4NjU2NDE5MDQ5ZWQyNjhmNmUxOTkyMDY2ZjQ1ZGMzZTRjZDM0OWU4YzVlZDVhMDZlNGVmNWJhZGFiYTA2NGJhOTQ5MDdkZmVkZjNkNzA4YmVjYWY0NGFlOWIyN2MzODY2ZDMyOTMxMWJhOTNlOGRkYzdmYzI4NGZiYTA1ZDFiYjg0ZmIxZTA2MGE1Yjc2YjdmYTUxNWNmY2QyYzgxNDQ0NzQ2MjM2NzI3MDNjYWMxZTE1ZmY0ZmRmOGVmMTlkMzY1YzUxYmE4NmU2MGY0Y2JiY2QwN2Y5NTYwNjA2MjU3NTFiZmJlY2M0Nzk0NTY0NjQ1OWNhZGFkZGQ5MDA2MDNhODE0OWE5M2IzMWE2ZDQzMmUxZGExYTY3ZWI3NjVmNWIyZjBiZDFhZGI5YWYxMmQ3MzFjN2IwMjkzMWI0MmRiYmZkOGM3Y2VjZGU3NmI4MTdlOTZmNjY0MTQ3YTJjNTA5MWM2Y2U0ZGM1NjJjNWY1NzE1OWQ2ZjlkYzliYTJkYWEyMTJkYjU2Njc3ODM5NjIxYmQ0ODA1ZGRlNjI5NTVmYjJkMGNjMmM0NDgxMDlkMTBlY2M2MjA2ZWE4MWYwYTAyZTE2NDY0NzEzNThmM2VjMTQ2Y2QzYzc1ZjJkMzkwYiI6MAogCiBSU0EgUEtDUzEgU2lnbiAjMyBWZXJpZnkKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjI0Ok1CRURUTFNfUEtDUzFfVjE1CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjI0Ok1CRURUTFNfUEtDUzFfVjE1CiBtYmVkdGxzX3JzYV9wa2NzMV92ZXJpZnk6IjMyZjMzOWZlMzNmMTBhMGZhMTUyYmY5NjU5Y2RmN2EwZTRiNzQxNDQ0ZWEzMWE4NWQ0MGVkNGJiIjpNQkVEVExTX1JTQV9QS0NTX1YxNTpNQkVEVExTX01EX1NIQTIyNDoyMDQ4OiJiMzhhYzY1YzgxNDFmN2Y1Yzk2ZTE0NDcwZTg1MTkzNmE2N2JmOTRjYzY4MjFhMzlhYzEyYzA1ZjdjMGIwNmQ5ZTZkZGJhMjIyNDcwM2IwMmUyNWYzMTQ1MmY5YzRhODQxN2I2MjY3NWZkYzZkZjQ2Yjk0ODEzYmM3Yjk3NjlhODkyYzQ4MmI4MzBiZmUwYWQ0MmU0NjY2OGFjZTY4OTAzNjE3ZmFmNjY4MWY0YmFiZjFjYzhlNGIwNDIwZDNjN2Y2MWRjNDU0MzRjNmI1NGUyYzNlZTBmYzA3OTA4NTA5ZDc5Yzk4MjZlNjczYmY4MzYzMjU1YWRiMGFkZDI0MDEwMzlhN2JjZDFiNGVjZjBmYmU2ZWM4MzY5ZDJkYTQ4NmVlYzU5NTU5ZGQxZDU0YzliMjQxOTA5NjVlYWZiZGFiMjAzYjM1MjU1NzY1MjYxY2QwOTA5YWNmOTNjM2I4Yjg0MjhjYmI0NDhkZTQ3MTVkMWI4MTNkMGM5NDgyOWMyMjk1NDNkMzkxY2UwYWRhYjUzNTFmOTdhMzgxMGMxZjczZDdiMTQ1OGI5N2RhZWQ0MjA5YzUwZTE2ZDA2NGQyZDViZmRhOGMyMzg5M2Q3NTUyMjI3OTMxNDZkMGE3OGMzZDY0ZjM1NTQ5MTQxNDg2YzNiMDk2MWE3YjRjMWEyMDM0ZiI6IjMiOiI5ZDc2OGI4YjMxNDIxZjlkOWNlZDg5MGFhZmFmOGIzNDY4NjU2NDE5MDQ5ZWQyNjhmNmUxOTkyMDY2ZjQ1ZGMzZTRjZDM0OWU4YzVlZDVhMDZlNGVmNWJhZGFiYTA2NGJhOTQ5MDdkZmVkZjNkNzA4YmVjYWY0NGFlOWIyN2MzODY2ZDMyOTMxMWJhOTNlOGRkYzdmYzI4NGZiYTA1ZDFiYjg0ZmIxZTA2MGE1Yjc2YjdmYTUxNWNmY2QyYzgxNDQ0NzQ2MjM2NzI3MDNjYWMxZTE1ZmY0ZmRmOGVmMTlkMzY1YzUxYmE4NmU2MGY0Y2JiY2QwN2Y5NTYwNjA2MjU3NTFiZmJlY2M0Nzk0NTY0NjQ1OWNhZGFkZGQ5MDA2MDNhODE0OWE5M2IzMWE2ZDQzMmUxZGExYTY3ZWI3NjVmNWIyZjBiZDFhZGI5YWYxMmQ3MzFjN2IwMjkzMWI0MmRiYmZkOGM3Y2VjZGU3NmI4MTdlOTZmNjY0MTQ3YTJjNTA5MWM2Y2U0ZGM1NjJjNWY1NzE1OWQ2ZjlkYzliYTJkYWEyMTJkYjU2Njc3ODM5NjIxYmQ0ODA1ZGRlNjI5NTVmYjJkMGNjMmM0NDgxMDlkMTBlY2M2MjA2ZWE4MWYwYTAyZTE2NDY0NzEzNThmM2VjMTQ2Y2QzYzc1ZjJkMzkwYiI6MAogCiBSU0EgUEtDUzEgU2lnbiAjNCAoU0hBMzg0LCAyMDQ4IGJpdHMgUlNBKQotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEzODQ6TUJFRFRMU19QS0NTMV9WMTUKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8zODQ6TUJFRFRMU19QS0NTMV9WMTUKIG1iZWR0bHNfcnNhX3BrY3MxX3NpZ246IjdmY2NjYTg3Nzg1NzVjZjY3ZDk1ZDQ0ZTY4MjUxMjhlMmJhNTE1NWY3Y2M5MWQ5NjhhOTIzZGJhYzM1YmMwNGI0ZDQ1YmY2ZmQwMDA5MTQ0ZWY5ZDcwODk4OTQ4ZWVlYyI6TUJFRFRMU19SU0FfUEtDU19WMTU6TUJFRFRMU19NRF9TSEEzODQ6MjA0ODoiZTc5YTM3MzE4MmJmYWE3MjJlYjAzNWY3NzJhZDJhOTQ2NGJkODQyZGU1OTQzMmMxOGJiYWIzYTdkZmVhZTMxOGM5YjkxNWVlNDg3ODYxYWI2NjVhNDBiZDZjZGE1NjAxNTI1NzhlODU3OTAxNmM5MjlkZjk5ZmVhMDViNGQ2NGVmY2ExZDU0Mzg1MGJjODE2NGI0MGQ3MWVkN2YzZmE0MTA1ZGYwZmI5YjlhZDJhMThjZTE4MmM4YTRmNGY5NzViZWE5YWEwYjlhMTQzOGEyN2EyOGU5N2FjODMzMGVmMzczODM0MTRkMWJkNjQ2MDdkNjk3OWFjMDUwNDI0ZmQxNyI6ImM2NzQ5Y2JiMGRiOGM1YTE3NzY3MmQ0NzI4YThiMjIzOTJiMmZjNGQzYjgzNjFkNWMwZDUwNTVhMWI0ZTQ2ZDgyMWY3NTdjMjRlZWYyYTUxYzU2MTk0MWI5M2IzYWNlNzM0MDA3NGMwNThjOWJiNDhlN2U3NDE0ZjQyYzQxZGE0Y2NjYjVjMmJhOTFkZWIzMGM1ODZiN2ZiMThhZjEyYTUyOTk1NTkyYWQxMzlkM2JlNDI5YWRkNjU0N2UwNDRiZWNlZGFmMzFmYTNiMzk0MjFlMjRlZTAzNGZiZjM2N2QxMWY2YjhmODhlZTQ4M2QxNjNiNDMxZTE2NTRhZDNlODkiOiJiMzhhYzY1YzgxNDFmN2Y1Yzk2ZTE0NDcwZTg1MTkzNmE2N2JmOTRjYzY4MjFhMzlhYzEyYzA1ZjdjMGIwNmQ5ZTZkZGJhMjIyNDcwM2IwMmUyNWYzMTQ1MmY5YzRhODQxN2I2MjY3NWZkYzZkZjQ2Yjk0ODEzYmM3Yjk3NjlhODkyYzQ4MmI4MzBiZmUwYWQ0MmU0NjY2OGFjZTY4OTAzNjE3ZmFmNjY4MWY0YmFiZjFjYzhlNGIwNDIwZDNjN2Y2MWRjNDU0MzRjNmI1NGUyYzNlZTBmYzA3OTA4NTA5ZDc5Yzk4MjZlNjczYmY4MzYzMjU1YWRiMGFkZDI0MDEwMzlhN2JjZDFiNGVjZjBmYmU2ZWM4MzY5ZDJkYTQ4NmVlYzU5NTU5ZGQxZDU0YzliMjQxOTA5NjVlYWZiZGFiMjAzYjM1MjU1NzY1MjYxY2QwOTA5YWNmOTNjM2I4Yjg0MjhjYmI0NDhkZTQ3MTVkMWI4MTNkMGM5NDgyOWMyMjk1NDNkMzkxY2UwYWRhYjUzNTFmOTdhMzgxMGMxZjczZDdiMTQ1OGI5N2RhZWQ0MjA5YzUwZTE2ZDA2NGQyZDViZmRhOGMyMzg5M2Q3NTUyMjI3OTMxNDZkMGE3OGMzZDY0ZjM1NTQ5MTQxNDg2YzNiMDk2MWE3YjRjMWEyMDM0ZiI6IjMiOiI0MGRjYzk2ODIyZTU2MTJlYjMzZjFkY2EyNDdhMzUxMDliYTM4NDVjN2EzZDU1NmE2MGU2NTY2MjRiZjFjMTAzZDk0Njg2Y2E3Mzc5ZTllMzI5Y2NkMWIxOWI1MmJmZDQ4YjYwOGRmOWY1OWE5NmE4MmQzZmViMDEwMTA5NmRiY2I4MGU0NmRhNTQzYjRjOTgyYWM2YmIxNzE3ZjI0ZjlmZTNmNzZiNzE1NDQ5MmI0NzUyNWJlMWRkY2FmNDYzMWQzMzQ4MTUzMWJlOGYzZTY4NTgzN2I0MGJkZjRhMDI4MjdkNzlmNmEzMjM3NDE0NzE3NDY4MGY1MWM4ZTBkOGVlZDlkNWM0NDVhNTYzYTdiY2U5ZWY0MjM2ZTdjZmRjMTJiMjIyM2VmNDU3YzNlOGNjYzZkZDY1Y2MyM2U5NzdhMWYwM2Y1ZWY1ODRmZWI5YWYwMGVmYzcxYTcwMWY5ZDQxM2IwMjkwYWYxNzY5MmNiODIxYTFlODYzZDU3NzhlMTc0YjExMzA2NTlmMzA1ODNmNDM0ZjA5Y2IxMjEyNDcxYTQxZGQ2NWMxMDJkZTY0YTE5NGI2YWUzZTQzY2Q3NTkyODA0OWRiNzgwNDJjNThlOTgwYWZmM2VhMjc3NGU0Mjg0NWJjZjIxNzQxMGExMThjZjVkZWVhYTY0MjI0ZGJjOCI6MAogCiBSU0EgUEtDUzEgU2lnbiAjNCBWZXJpZnkKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMzg0Ok1CRURUTFNfUEtDUzFfVjE1CitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMzg0Ok1CRURUTFNfUEtDUzFfVjE1CiBtYmVkdGxzX3JzYV9wa2NzMV92ZXJpZnk6IjdmY2NjYTg3Nzg1NzVjZjY3ZDk1ZDQ0ZTY4MjUxMjhlMmJhNTE1NWY3Y2M5MWQ5NjhhOTIzZGJhYzM1YmMwNGI0ZDQ1YmY2ZmQwMDA5MTQ0ZWY5ZDcwODk4OTQ4ZWVlYyI6TUJFRFRMU19SU0FfUEtDU19WMTU6TUJFRFRMU19NRF9TSEEzODQ6MjA0ODoiYjM4YWM2NWM4MTQxZjdmNWM5NmUxNDQ3MGU4NTE5MzZhNjdiZjk0Y2M2ODIxYTM5YWMxMmMwNWY3YzBiMDZkOWU2ZGRiYTIyMjQ3MDNiMDJlMjVmMzE0NTJmOWM0YTg0MTdiNjI2NzVmZGM2ZGY0NmI5NDgxM2JjN2I5NzY5YTg5MmM0ODJiODMwYmZlMGFkNDJlNDY2NjhhY2U2ODkwMzYxN2ZhZjY2ODFmNGJhYmYxY2M4ZTRiMDQyMGQzYzdmNjFkYzQ1NDM0YzZiNTRlMmMzZWUwZmMwNzkwODUwOWQ3OWM5ODI2ZTY3M2JmODM2MzI1NWFkYjBhZGQyNDAxMDM5YTdiY2QxYjRlY2YwZmJlNmVjODM2OWQyZGE0ODZlZWM1OTU1OWRkMWQ1NGM5YjI0MTkwOTY1ZWFmYmRhYjIwM2IzNTI1NTc2NTI2MWNkMDkwOWFjZjkzYzNiOGI4NDI4Y2JiNDQ4ZGU0NzE1ZDFiODEzZDBjOTQ4MjljMjI5NTQzZDM5MWNlMGFkYWI1MzUxZjk3YTM4MTBjMWY3M2Q3YjE0NThiOTdkYWVkNDIwOWM1MGUxNmQwNjRkMmQ1YmZkYThjMjM4OTNkNzU1MjIyNzkzMTQ2ZDBhNzhjM2Q2NGYzNTU0OTE0MTQ4NmMzYjA5NjFhN2I0YzFhMjAzNGYiOiIzIjoiNDBkY2M5NjgyMmU1NjEyZWIzM2YxZGNhMjQ3YTM1MTA5YmEzODQ1YzdhM2Q1NTZhNjBlNjU2NjI0YmYxYzEwM2Q5NDY4NmNhNzM3OWU5ZTMyOWNjZDFiMTliNTJiZmQ0OGI2MDhkZjlmNTlhOTZhODJkM2ZlYjAxMDEwOTZkYmNiODBlNDZkYTU0M2I0Yzk4MmFjNmJiMTcxN2YyNGY5ZmUzZjc2YjcxNTQ0OTJiNDc1MjViZTFkZGNhZjQ2MzFkMzM0ODE1MzFiZThmM2U2ODU4MzdiNDBiZGY0YTAyODI3ZDc5ZjZhMzIzNzQxNDcxNzQ2ODBmNTFjOGUwZDhlZWQ5ZDVjNDQ1YTU2M2E3YmNlOWVmNDIzNmU3Y2ZkYzEyYjIyMjNlZjQ1N2MzZThjY2M2ZGQ2NWNjMjNlOTc3YTFmMDNmNWVmNTg0ZmViOWFmMDBlZmM3MWE3MDFmOWQ0MTNiMDI5MGFmMTc2OTJjYjgyMWExZTg2M2Q1Nzc4ZTE3NGIxMTMwNjU5ZjMwNTgzZjQzNGYwOWNiMTIxMjQ3MWE0MWRkNjVjMTAyZGU2NGExOTRiNmFlM2U0M2NkNzU5MjgwNDlkYjc4MDQyYzU4ZTk4MGFmZjNlYTI3NzRlNDI4NDViY2YyMTc0MTBhMTE4Y2Y1ZGVlYWE2NDIyNGRiYzgiOjAKIAogUlNBIFBLQ1MxIFNpZ24gIzcgKE1ENSwgMjA0OCBiaXRzIFJTQSkKQEAgLTI0OSwxMSArMjQ5LDExIEBACiBtYmVkdGxzX3JzYV9wa2NzMV92ZXJpZnk6IjU5Nzc5ZmQyYTM5ZTU2NjQwYzRmYzFlNjdiNjBhZWZmY2VjZDc4YWVkN2FkMmJkZmE0NjRlOTNkMDQxOThkNDg0NjZiOGRhNzQ0NWYyNWJmYTE5ZGIyODQ0ZWRkNWM4ZjUzOWNmNzcyY2MxMzJiNDgzMTY5ZDM5MGRiMjhhNDNiYzRlZTBmMDM4ZjY1NjhmZmM4NzQ0Nzc0NmNiNzJmZWZhYzJkNmQ5MGVlMzE0M2E5MTVhYzQ2ODgwMjg4MDU5MDVhNjhlYjhmOGE5NjY3NGIwOTNjNDk1ZWRkZDg3MDQ0NjFlYWEyYjM0NWVmYmIyYWQ2OTMwYWNkODAyM2Y4NzAiOk1CRURUTFNfUlNBX1BLQ1NfVjE1OjI1NToyMDQ4OiJiMzhhYzY1YzgxNDFmN2Y1Yzk2ZTE0NDcwZTg1MTkzNmE2N2JmOTRjYzY4MjFhMzlhYzEyYzA1ZjdjMGIwNmQ5ZTZkZGJhMjIyNDcwM2IwMmUyNWYzMTQ1MmY5YzRhODQxN2I2MjY3NWZkYzZkZjQ2Yjk0ODEzYmM3Yjk3NjlhODkyYzQ4MmI4MzBiZmUwYWQ0MmU0NjY2OGFjZTY4OTAzNjE3ZmFmNjY4MWY0YmFiZjFjYzhlNGIwNDIwZDNjN2Y2MWRjNDU0MzRjNmI1NGUyYzNlZTBmYzA3OTA4NTA5ZDc5Yzk4MjZlNjczYmY4MzYzMjU1YWRiMGFkZDI0MDEwMzlhN2JjZDFiNGVjZjBmYmU2ZWM4MzY5ZDJkYTQ4NmVlYzU5NTU5ZGQxZDU0YzliMjQxOTA5NjVlYWZiZGFiMjAzYjM1MjU1NzY1MjYxY2QwOTA5YWNmOTNjM2I4Yjg0MjhjYmI0NDhkZTQ3MTVkMWI4MTNkMGM5NDgyOWMyMjk1NDNkMzkxY2UwYWRhYjUzNTFmOTdhMzgxMGMxZjczZDdiMTQ1OGI5N2RhZWQ0MjA5YzUwZTE2ZDA2NGQyZDViZmRhOGMyMzg5M2Q3NTUyMjI3OTMxNDZkMGE3OGMzZDY0ZjM1NTQ5MTQxNDg2YzNiMDk2MWE3YjRjMWEyMDM0ZiI6IjMiOiIzYmNmNjczYzNiMjdmNmUyZWNlNGJiOTdjN2EzNzE2MWU2YzZlZTc0MTllZjM2NmVmYzNjZmVlMGYxNWY0MTVmZjZkOWQ0MzkwOTM3Mzg2YzZmZWMxNzcxYWNiYTczZjI0ZWM2YjA0NjllYThiODgwODNmMGI0ZTFiNjA2OWQ3YmYyODZlNjdjZjk0MTgyYTU0ODY2MzEzN2U4MmE2ZTA5YzM1ZGUyYzI3Nzc5ZGEwNTAzZjFmNWJlZGZlYmFkZjJhODc1ZjE3NzYzYTA1NjRkZjRhNmQ5NDVhNWEzZTQ2YmM5MGZiNjkyYWYzYTU1MTA2YWFmYzZiNTc3NTg3NDU2ZmY4ZDQ5Y2ZkNWMyOTlkN2EyYjc3NmRiZTRjMWFlNzc3YjBmNjRhYTNiYWIyNzY4OWFmMzJkNmNjNzYxNTdjN2RjNjkwMGEzNDY5ZTE4YTdkOWI2YmZlNDk1MWQxMTA1YTA4ODY0NTc1ZTRmNGVjMDViM2UwNTNmOWI3YTJkNTY1M2FlMDg1ZTUwYTYzMzgwZDZiZGQ2ZjU4YWIzNzhkN2UwYTJiZTcwOGM1NTk4NDk4OTEzMTcwODlhYjA0YzgyZDhiYzU4OWVhMDg4YjkwYjExZGVhNWNmODU4NTZmZjdlNjA5Y2MxYWRiMWQ0MDNiZWVhZDRjMTI2ZmYyOTAyMSI6TUJFRFRMU19FUlJfUlNBX0JBRF9JTlBVVF9EQVRBCiAKIFJTQSBQS0NTMSBTaWduICMxMCAoUklQRU1EMTYwLCAyMDQ4IGJpdHMgUlNBKQotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9SSVBFTUQxNjA6TUJFRFRMU19QS0NTMV9WMTUKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1JJUEVNRDE2MDpNQkVEVExTX1BLQ1MxX1YxNQogbWJlZHRsc19yc2FfcGtjczFfc2lnbjoiOGViMjA4ZjdlMDVkOTg3YTliMDQ0YThlOThjNmIwODdmMTVhMGJmYyI6TUJFRFRMU19SU0FfUEtDU19WMTU6TUJFRFRMU19NRF9SSVBFTUQxNjA6MjA0ODoiZTc5YTM3MzE4MmJmYWE3MjJlYjAzNWY3NzJhZDJhOTQ2NGJkODQyZGU1OTQzMmMxOGJiYWIzYTdkZmVhZTMxOGM5YjkxNWVlNDg3ODYxYWI2NjVhNDBiZDZjZGE1NjAxNTI1NzhlODU3OTAxNmM5MjlkZjk5ZmVhMDViNGQ2NGVmY2ExZDU0Mzg1MGJjODE2NGI0MGQ3MWVkN2YzZmE0MTA1ZGYwZmI5YjlhZDJhMThjZTE4MmM4YTRmNGY5NzViZWE5YWEwYjlhMTQzOGEyN2EyOGU5N2FjODMzMGVmMzczODM0MTRkMWJkNjQ2MDdkNjk3OWFjMDUwNDI0ZmQxNyI6ImM2NzQ5Y2JiMGRiOGM1YTE3NzY3MmQ0NzI4YThiMjIzOTJiMmZjNGQzYjgzNjFkNWMwZDUwNTVhMWI0ZTQ2ZDgyMWY3NTdjMjRlZWYyYTUxYzU2MTk0MWI5M2IzYWNlNzM0MDA3NGMwNThjOWJiNDhlN2U3NDE0ZjQyYzQxZGE0Y2NjYjVjMmJhOTFkZWIzMGM1ODZiN2ZiMThhZjEyYTUyOTk1NTkyYWQxMzlkM2JlNDI5YWRkNjU0N2UwNDRiZWNlZGFmMzFmYTNiMzk0MjFlMjRlZTAzNGZiZjM2N2QxMWY2YjhmODhlZTQ4M2QxNjNiNDMxZTE2NTRhZDNlODkiOiJiMzhhYzY1YzgxNDFmN2Y1Yzk2ZTE0NDcwZTg1MTkzNmE2N2JmOTRjYzY4MjFhMzlhYzEyYzA1ZjdjMGIwNmQ5ZTZkZGJhMjIyNDcwM2IwMmUyNWYzMTQ1MmY5YzRhODQxN2I2MjY3NWZkYzZkZjQ2Yjk0ODEzYmM3Yjk3NjlhODkyYzQ4MmI4MzBiZmUwYWQ0MmU0NjY2OGFjZTY4OTAzNjE3ZmFmNjY4MWY0YmFiZjFjYzhlNGIwNDIwZDNjN2Y2MWRjNDU0MzRjNmI1NGUyYzNlZTBmYzA3OTA4NTA5ZDc5Yzk4MjZlNjczYmY4MzYzMjU1YWRiMGFkZDI0MDEwMzlhN2JjZDFiNGVjZjBmYmU2ZWM4MzY5ZDJkYTQ4NmVlYzU5NTU5ZGQxZDU0YzliMjQxOTA5NjVlYWZiZGFiMjAzYjM1MjU1NzY1MjYxY2QwOTA5YWNmOTNjM2I4Yjg0MjhjYmI0NDhkZTQ3MTVkMWI4MTNkMGM5NDgyOWMyMjk1NDNkMzkxY2UwYWRhYjUzNTFmOTdhMzgxMGMxZjczZDdiMTQ1OGI5N2RhZWQ0MjA5YzUwZTE2ZDA2NGQyZDViZmRhOGMyMzg5M2Q3NTUyMjI3OTMxNDZkMGE3OGMzZDY0ZjM1NTQ5MTQxNDg2YzNiMDk2MWE3YjRjMWEyMDM0ZiI6IjMiOiJhYTJkOWY4ODMzNGQ2MWJlZDc0MzE3YmE1NDliMTQ2MzYwMGE5MjE5ODAxMjQwY2NhNWMxMWI5Y2RkYTI5MzczMTcyYTI4MTUxMzEzZmIyY2Y3M2JiNjhhZjE2N2U0ZWM2NDViNmYwNjUwMjg4MDJhZmJjZmJjMTBlNmMyYzgyNGUzYzRkNTBjNzE4MTE5M2I5MzczNDgzMjE3MGYwYzVkM2RkOWJhNTgwOGYwZTJhNWMxNmIzZDBkZjkwZGVmZWZlZjhlOGZkZTU5MDY5NjJkNDJhMmYwZDYyZDdmODE5NzdmMzY3ZjQzNmYxMGM4YjExODNjY2Y2Njc2OTUzZjcyMTk0NDU5MzhmNzI1ZDBjYjYyZWZiYWJmMDkyZGU1MzE2NDI4NjNiMzgxZTI2OTRmMmJmNTQ0ZmY2YTRmZWZhN2IzN2NkYmY2MjkyZGJlZGNhY2Y2ZTU3ZDZmMjA2Y2U1ZGYwZmQyNzcxZjlmNjQ4MThmNTlhMGFiN2E1ZjAwM2IzNjhkYzNlYjUxYWI5NDA5YTBlYzRlNDNmNDUyODFlZTlhNTYwNjY0ZGU4ODk2NWFiMjA3ZTI1NjMwM2Q5ZGNiODIzM2VkNmFkMGE1YWQ3ZjgxZTJmOGM3YTE5NmRjODFlMmM4YjZkZGU4YTc3ZmI2Y2ZkMWU1NDc3ZWNlOWRmOCI6MAogCiBSU0EgUEtDUzEgVmVyaWZ5ICMxMCAoUklQRU1EMTYwLCAyMDQ4IGJpdHMgUlNBKQotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9SSVBFTUQxNjA6TUJFRFRMU19QS0NTMV9WMTUKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1JJUEVNRDE2MDpNQkVEVExTX1BLQ1MxX1YxNQogbWJlZHRsc19yc2FfcGtjczFfdmVyaWZ5OiI4ZWIyMDhmN2UwNWQ5ODdhOWIwNDRhOGU5OGM2YjA4N2YxNWEwYmZjIjpNQkVEVExTX1JTQV9QS0NTX1YxNTpNQkVEVExTX01EX1JJUEVNRDE2MDoyMDQ4OiJiMzhhYzY1YzgxNDFmN2Y1Yzk2ZTE0NDcwZTg1MTkzNmE2N2JmOTRjYzY4MjFhMzlhYzEyYzA1ZjdjMGIwNmQ5ZTZkZGJhMjIyNDcwM2IwMmUyNWYzMTQ1MmY5YzRhODQxN2I2MjY3NWZkYzZkZjQ2Yjk0ODEzYmM3Yjk3NjlhODkyYzQ4MmI4MzBiZmUwYWQ0MmU0NjY2OGFjZTY4OTAzNjE3ZmFmNjY4MWY0YmFiZjFjYzhlNGIwNDIwZDNjN2Y2MWRjNDU0MzRjNmI1NGUyYzNlZTBmYzA3OTA4NTA5ZDc5Yzk4MjZlNjczYmY4MzYzMjU1YWRiMGFkZDI0MDEwMzlhN2JjZDFiNGVjZjBmYmU2ZWM4MzY5ZDJkYTQ4NmVlYzU5NTU5ZGQxZDU0YzliMjQxOTA5NjVlYWZiZGFiMjAzYjM1MjU1NzY1MjYxY2QwOTA5YWNmOTNjM2I4Yjg0MjhjYmI0NDhkZTQ3MTVkMWI4MTNkMGM5NDgyOWMyMjk1NDNkMzkxY2UwYWRhYjUzNTFmOTdhMzgxMGMxZjczZDdiMTQ1OGI5N2RhZWQ0MjA5YzUwZTE2ZDA2NGQyZDViZmRhOGMyMzg5M2Q3NTUyMjI3OTMxNDZkMGE3OGMzZDY0ZjM1NTQ5MTQxNDg2YzNiMDk2MWE3YjRjMWEyMDM0ZiI6IjMiOiJhYTJkOWY4ODMzNGQ2MWJlZDc0MzE3YmE1NDliMTQ2MzYwMGE5MjE5ODAxMjQwY2NhNWMxMWI5Y2RkYTI5MzczMTcyYTI4MTUxMzEzZmIyY2Y3M2JiNjhhZjE2N2U0ZWM2NDViNmYwNjUwMjg4MDJhZmJjZmJjMTBlNmMyYzgyNGUzYzRkNTBjNzE4MTE5M2I5MzczNDgzMjE3MGYwYzVkM2RkOWJhNTgwOGYwZTJhNWMxNmIzZDBkZjkwZGVmZWZlZjhlOGZkZTU5MDY5NjJkNDJhMmYwZDYyZDdmODE5NzdmMzY3ZjQzNmYxMGM4YjExODNjY2Y2Njc2OTUzZjcyMTk0NDU5MzhmNzI1ZDBjYjYyZWZiYWJmMDkyZGU1MzE2NDI4NjNiMzgxZTI2OTRmMmJmNTQ0ZmY2YTRmZWZhN2IzN2NkYmY2MjkyZGJlZGNhY2Y2ZTU3ZDZmMjA2Y2U1ZGYwZmQyNzcxZjlmNjQ4MThmNTlhMGFiN2E1ZjAwM2IzNjhkYzNlYjUxYWI5NDA5YTBlYzRlNDNmNDUyODFlZTlhNTYwNjY0ZGU4ODk2NWFiMjA3ZTI1NjMwM2Q5ZGNiODIzM2VkNmFkMGE1YWQ3ZjgxZTJmOGM3YTE5NmRjODFlMmM4YjZkZGU4YTc3ZmI2Y2ZkMWU1NDc3ZWNlOWRmOCI6MAogCiBSU0EgUEtDUzEgRW5jcnlwdCAjMQpkaWZmIC0tZ2l0IGEvdGVzdHMvc3VpdGVzL3Rlc3Rfc3VpdGVfc3NsLmRhdGEgYi90ZXN0cy9zdWl0ZXMvdGVzdF9zdWl0ZV9zc2wuZGF0YQppbmRleCBjOTZiNGFkLi4zMzJkOTg2IDEwMDY0NAotLS0gYS90ZXN0cy9zdWl0ZXMvdGVzdF9zdWl0ZV9zc2wuZGF0YQorKysgYi90ZXN0cy9zdWl0ZXMvdGVzdF9zdWl0ZV9zc2wuZGF0YQpAQCAtMzY1LDcgKzM2NSw3IEBACiBoYW5kc2hha2VfdmVyc2lvbjowOk1CRURUTFNfU1NMX1ZFUlNJT05fVExTMV8zOk1CRURUTFNfU1NMX1ZFUlNJT05fVExTMV8zOk1CRURUTFNfU1NMX1ZFUlNJT05fVExTMV8zOk1CRURUTFNfU1NMX1ZFUlNJT05fVExTMV8zOk1CRURUTFNfU1NMX1ZFUlNJT05fVExTMV8zCiAKIEhhbmRzaGFrZSwgRUNESEUtUlNBLVdJVEgtQUVTLTI1Ni1HQ00tU0hBMzg0Ci1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTM4NDpNQkVEVExTX1NTTF9IQVZFX0FFUzpNQkVEVExTX1NTTF9IQVZFX0dDTTpNQkVEVExTX1JTQV9DOk1CRURUTFNfRUNQX0hBVkVfU0VDUDM4NFIxOk1CRURUTFNfS0VZX0VYQ0hBTkdFX0VDREhFX1JTQV9FTkFCTEVEOiFNQkVEVExTX0FFU19PTkxZXzEyOF9CSVRfS0VZX0xFTkdUSAorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzM4NDpNQkVEVExTX1NTTF9IQVZFX0FFUzpNQkVEVExTX1NTTF9IQVZFX0dDTTpNQkVEVExTX1JTQV9DOk1CRURUTFNfRUNQX0hBVkVfU0VDUDM4NFIxOk1CRURUTFNfS0VZX0VYQ0hBTkdFX0VDREhFX1JTQV9FTkFCTEVEOiFNQkVEVExTX0FFU19PTkxZXzEyOF9CSVRfS0VZX0xFTkdUSAogaGFuZHNoYWtlX2NpcGhlcjoiVExTLUVDREhFLVJTQS1XSVRILUFFUy0yNTYtR0NNLVNIQTM4NCI6TUJFRFRMU19QS19SU0E6MAogCiBIYW5kc2hha2UsIFJTQS1XSVRILUFFUy0xMjgtQ0NNCkBAIC0zNzMsNyArMzczLDcgQEAKIGhhbmRzaGFrZV9jaXBoZXI6IlRMUy1SU0EtV0lUSC1BRVMtMTI4LUNDTSI6TUJFRFRMU19QS19SU0E6MAogCiBIYW5kc2hha2UsIERIRS1SU0EtV0lUSC1BRVMtMjU2LUNCQy1TSEEyNTYKLWRlcGVuZHNfb246TUJFRFRMU19TU0xfSEFWRV9BRVM6TUJFRFRMU19TU0xfSEFWRV9DQkM6TUJFRFRMU19NRF9DQU5fU0hBMjU2Ok1CRURUTFNfUlNBX0M6TUJFRFRMU19FQ1BfSEFWRV9TRUNQMzg0UjE6TUJFRFRMU19LRVlfRVhDSEFOR0VfREhFX1JTQV9FTkFCTEVEOiFNQkVEVExTX0FFU19PTkxZXzEyOF9CSVRfS0VZX0xFTkdUSAorZGVwZW5kc19vbjpNQkVEVExTX1NTTF9IQVZFX0FFUzpNQkVEVExTX1NTTF9IQVZFX0NCQzpQU0FfV0FOVF9BTEdfU0hBXzI1NjpNQkVEVExTX1JTQV9DOk1CRURUTFNfRUNQX0hBVkVfU0VDUDM4NFIxOk1CRURUTFNfS0VZX0VYQ0hBTkdFX0RIRV9SU0FfRU5BQkxFRDohTUJFRFRMU19BRVNfT05MWV8xMjhfQklUX0tFWV9MRU5HVEgKIGhhbmRzaGFrZV9jaXBoZXI6IlRMUy1ESEUtUlNBLVdJVEgtQUVTLTI1Ni1DQkMtU0hBMjU2IjpNQkVEVExTX1BLX1JTQTowCiAKIEhhbmRzaGFrZSwgRUNESEUtRUNEU0EtV0lUSC1BRVMtMjU2LUNDTQpAQCAtMzgxLDcgKzM4MSw3IEBACiBoYW5kc2hha2VfY2lwaGVyOiJUTFMtRUNESEUtRUNEU0EtV0lUSC1BRVMtMjU2LUNDTSI6TUJFRFRMU19QS19FQ0RTQTowCiAKIEhhbmRzaGFrZSwgRUNESC1FQ0RTQS1XSVRILUNBTUVMTElBLTI1Ni1DQkMtU0hBMzg0Ci1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTM4NDpNQkVEVExTX1NTTF9IQVZFX0NBTUVMTElBOk1CRURUTFNfU1NMX0hBVkVfQ0JDOk1CRURUTFNfUEtfQ0FOX0VDRFNBX1NPTUU6TUJFRFRMU19FQ1BfSEFWRV9TRUNQMjU2UjE6TUJFRFRMU19FQ1BfSEFWRV9TRUNQMzg0UjE6TUJFRFRMU19LRVlfRVhDSEFOR0VfRUNESF9FQ0RTQV9FTkFCTEVECitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMzg0Ok1CRURUTFNfU1NMX0hBVkVfQ0FNRUxMSUE6TUJFRFRMU19TU0xfSEFWRV9DQkM6TUJFRFRMU19QS19DQU5fRUNEU0FfU09NRTpNQkVEVExTX0VDUF9IQVZFX1NFQ1AyNTZSMTpNQkVEVExTX0VDUF9IQVZFX1NFQ1AzODRSMTpNQkVEVExTX0tFWV9FWENIQU5HRV9FQ0RIX0VDRFNBX0VOQUJMRUQKIGhhbmRzaGFrZV9jaXBoZXI6IlRMUy1FQ0RILUVDRFNBLVdJVEgtQ0FNRUxMSUEtMjU2LUNCQy1TSEEzODQiOk1CRURUTFNfUEtfRUNEU0E6MAogCiBIYW5kc2hha2UsIFBTSy1XSVRILUFFUy0xMjgtQ0JDLVNIQQpAQCAtMzkzLDcgKzM5Myw3IEBACiBoYW5kc2hha2VfdmVyc2lvbjoxOk1CRURUTFNfU1NMX1ZFUlNJT05fVExTMV8yOk1CRURUTFNfU1NMX1ZFUlNJT05fVExTMV8yOk1CRURUTFNfU1NMX1ZFUlNJT05fVExTMV8yOk1CRURUTFNfU1NMX1ZFUlNJT05fVExTMV8yOk1CRURUTFNfU1NMX1ZFUlNJT05fVExTMV8yCiAKIERUTFMgSGFuZHNoYWtlLCBFQ0RIRS1SU0EtV0lUSC1BRVMtMjU2LUdDTS1TSEEzODQKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMzg0Ok1CRURUTFNfU1NMX0hBVkVfQUVTOk1CRURUTFNfU1NMX0hBVkVfR0NNOk1CRURUTFNfUlNBX0M6TUJFRFRMU19FQ1BfSEFWRV9TRUNQMzg0UjE6TUJFRFRMU19LRVlfRVhDSEFOR0VfRUNESEVfUlNBX0VOQUJMRUQ6TUJFRFRMU19TU0xfUFJPVE9fRFRMUzohTUJFRFRMU19BRVNfT05MWV8xMjhfQklUX0tFWV9MRU5HVEgKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8zODQ6TUJFRFRMU19TU0xfSEFWRV9BRVM6TUJFRFRMU19TU0xfSEFWRV9HQ006TUJFRFRMU19SU0FfQzpNQkVEVExTX0VDUF9IQVZFX1NFQ1AzODRSMTpNQkVEVExTX0tFWV9FWENIQU5HRV9FQ0RIRV9SU0FfRU5BQkxFRDpNQkVEVExTX1NTTF9QUk9UT19EVExTOiFNQkVEVExTX0FFU19PTkxZXzEyOF9CSVRfS0VZX0xFTkdUSAogaGFuZHNoYWtlX2NpcGhlcjoiVExTLUVDREhFLVJTQS1XSVRILUFFUy0yNTYtR0NNLVNIQTM4NCI6TUJFRFRMU19QS19SU0E6MQogCiBEVExTIEhhbmRzaGFrZSwgUlNBLVdJVEgtQUVTLTEyOC1DQ00KQEAgLTQwMSw3ICs0MDEsNyBAQAogaGFuZHNoYWtlX2NpcGhlcjoiVExTLVJTQS1XSVRILUFFUy0xMjgtQ0NNIjpNQkVEVExTX1BLX1JTQToxCiAKIERUTFMgSGFuZHNoYWtlLCBESEUtUlNBLVdJVEgtQUVTLTI1Ni1DQkMtU0hBMjU2Ci1kZXBlbmRzX29uOk1CRURUTFNfU1NMX0hBVkVfQUVTOk1CRURUTFNfU1NMX0hBVkVfQ0JDOk1CRURUTFNfTURfQ0FOX1NIQTI1NjpNQkVEVExTX1JTQV9DOk1CRURUTFNfRUNQX0hBVkVfU0VDUDM4NFIxOk1CRURUTFNfU1NMX1BST1RPX0RUTFM6TUJFRFRMU19LRVlfRVhDSEFOR0VfREhFX1JTQV9FTkFCTEVEOiFNQkVEVExTX0FFU19PTkxZXzEyOF9CSVRfS0VZX0xFTkdUSAorZGVwZW5kc19vbjpNQkVEVExTX1NTTF9IQVZFX0FFUzpNQkVEVExTX1NTTF9IQVZFX0NCQzpQU0FfV0FOVF9BTEdfU0hBXzI1NjpNQkVEVExTX1JTQV9DOk1CRURUTFNfRUNQX0hBVkVfU0VDUDM4NFIxOk1CRURUTFNfU1NMX1BST1RPX0RUTFM6TUJFRFRMU19LRVlfRVhDSEFOR0VfREhFX1JTQV9FTkFCTEVEOiFNQkVEVExTX0FFU19PTkxZXzEyOF9CSVRfS0VZX0xFTkdUSAogaGFuZHNoYWtlX2NpcGhlcjoiVExTLURIRS1SU0EtV0lUSC1BRVMtMjU2LUNCQy1TSEEyNTYiOk1CRURUTFNfUEtfUlNBOjEKIAogRFRMUyBIYW5kc2hha2UsIEVDREhFLUVDRFNBLVdJVEgtQUVTLTI1Ni1DQ00KQEAgLTQwOSw3ICs0MDksNyBAQAogaGFuZHNoYWtlX2NpcGhlcjoiVExTLUVDREhFLUVDRFNBLVdJVEgtQUVTLTI1Ni1DQ00iOk1CRURUTFNfUEtfRUNEU0E6MQogCiBEVExTIEhhbmRzaGFrZSwgRUNESC1FQ0RTQS1XSVRILUNBTUVMTElBLTI1Ni1DQkMtU0hBMzg0Ci1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTM4NDpNQkVEVExTX1NTTF9IQVZFX0NBTUVMTElBOk1CRURUTFNfU1NMX0hBVkVfQ0JDOk1CRURUTFNfUEtfQ0FOX0VDRFNBX1NPTUU6TUJFRFRMU19FQ1BfSEFWRV9TRUNQMjU2UjE6TUJFRFRMU19FQ1BfSEFWRV9TRUNQMzg0UjE6TUJFRFRMU19TU0xfUFJPVE9fRFRMUzpNQkVEVExTX0tFWV9FWENIQU5HRV9FQ0RIX0VDRFNBX0VOQUJMRUQKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8zODQ6TUJFRFRMU19TU0xfSEFWRV9DQU1FTExJQTpNQkVEVExTX1NTTF9IQVZFX0NCQzpNQkVEVExTX1BLX0NBTl9FQ0RTQV9TT01FOk1CRURUTFNfRUNQX0hBVkVfU0VDUDI1NlIxOk1CRURUTFNfRUNQX0hBVkVfU0VDUDM4NFIxOk1CRURUTFNfU1NMX1BST1RPX0RUTFM6TUJFRFRMU19LRVlfRVhDSEFOR0VfRUNESF9FQ0RTQV9FTkFCTEVECiBoYW5kc2hha2VfY2lwaGVyOiJUTFMtRUNESC1FQ0RTQS1XSVRILUNBTUVMTElBLTI1Ni1DQkMtU0hBMzg0IjpNQkVEVExTX1BLX0VDRFNBOjEKIAogRFRMUyBIYW5kc2hha2UsIFBTSy1XSVRILUFFUy0xMjgtQ0JDLVNIQQpAQCAtNDM3LDE0MyArNDM3LDE0MyBAQAogaGFuZHNoYWtlX3ZlcnNpb246MDpNQkVEVExTX1NTTF9WRVJTSU9OX1VOS05PV046TUJFRFRMU19TU0xfVkVSU0lPTl9VTktOT1dOOk1CRURUTFNfU1NMX1ZFUlNJT05fVU5LTk9XTjpNQkVEVExTX1NTTF9WRVJTSU9OX1VOS05PV046TUJFRFRMU19TU0xfVkVSU0lPTl9UTFMxXzMKIAogSGFuZHNoYWtlLCBzZWxlY3QgUlNBLVdJVEgtQUVTLTI1Ni1DQkMtU0hBMjU2LCBub24tb3BhcXVlCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NjpNQkVEVExTX1NTTF9IQVZFX0FFUzpNQkVEVExTX1NTTF9IQVZFX0NCQzpNQkVEVExTX1JTQV9DOk1CRURUTFNfUEtfSEFWRV9FQ0NfS0VZUzpNQkVEVExTX0VDUF9IQVZFX1NFQ1AzODRSMTpNQkVEVExTX0tFWV9FWENIQU5HRV9SU0FfRU5BQkxFRDohTUJFRFRMU19BRVNfT05MWV8xMjhfQklUX0tFWV9MRU5HVEgKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTY6TUJFRFRMU19TU0xfSEFWRV9BRVM6TUJFRFRMU19TU0xfSEFWRV9DQkM6TUJFRFRMU19SU0FfQzpNQkVEVExTX1BLX0hBVkVfRUNDX0tFWVM6TUJFRFRMU19FQ1BfSEFWRV9TRUNQMzg0UjE6TUJFRFRMU19LRVlfRVhDSEFOR0VfUlNBX0VOQUJMRUQ6IU1CRURUTFNfQUVTX09OTFlfMTI4X0JJVF9LRVlfTEVOR1RICiBoYW5kc2hha2VfY2lwaGVyc3VpdGVfc2VsZWN0OiJUTFMtUlNBLVdJVEgtQUVTLTI1Ni1DQkMtU0hBMjU2IjpNQkVEVExTX1BLX1JTQToiIjpQU0FfQUxHX05PTkU6UFNBX0FMR19OT05FOjA6MDpNQkVEVExTX1RMU19SU0FfV0lUSF9BRVNfMjU2X0NCQ19TSEEyNTYKIAogSGFuZHNoYWtlLCBzZWxlY3QgUlNBLVdJVEgtQUVTLTI1Ni1DQkMtU0hBMjU2LCBvcGFxdWUKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2Ok1CRURUTFNfU1NMX0hBVkVfQUVTOk1CRURUTFNfU1NMX0hBVkVfQ0JDOk1CRURUTFNfUlNBX0M6TUJFRFRMU19QS19IQVZFX0VDQ19LRVlTOk1CRURUTFNfRUNQX0hBVkVfU0VDUDM4NFIxOk1CRURUTFNfS0VZX0VYQ0hBTkdFX1JTQV9FTkFCTEVEOk1CRURUTFNfVVNFX1BTQV9DUllQVE86IU1CRURUTFNfQUVTX09OTFlfMTI4X0JJVF9LRVlfTEVOR1RICitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2Ok1CRURUTFNfU1NMX0hBVkVfQUVTOk1CRURUTFNfU1NMX0hBVkVfQ0JDOk1CRURUTFNfUlNBX0M6TUJFRFRMU19QS19IQVZFX0VDQ19LRVlTOk1CRURUTFNfRUNQX0hBVkVfU0VDUDM4NFIxOk1CRURUTFNfS0VZX0VYQ0hBTkdFX1JTQV9FTkFCTEVEOk1CRURUTFNfVVNFX1BTQV9DUllQVE86IU1CRURUTFNfQUVTX09OTFlfMTI4X0JJVF9LRVlfTEVOR1RICiBoYW5kc2hha2VfY2lwaGVyc3VpdGVfc2VsZWN0OiJUTFMtUlNBLVdJVEgtQUVTLTI1Ni1DQkMtU0hBMjU2IjpNQkVEVExTX1BLX1JTQToiIjpQU0FfQUxHX1JTQV9QS0NTMVYxNV9DUllQVDpQU0FfQUxHX05PTkU6UFNBX0tFWV9VU0FHRV9ERUNSWVBUOjA6TUJFRFRMU19UTFNfUlNBX1dJVEhfQUVTXzI1Nl9DQkNfU0hBMjU2CiAKIEhhbmRzaGFrZSwgc2VsZWN0IFJTQS1XSVRILUFFUy0yNTYtQ0JDLVNIQTI1Niwgb3BhcXVlLCBiYWQgYWxnCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NjpNQkVEVExTX1NTTF9IQVZFX0FFUzpNQkVEVExTX1NTTF9IQVZFX0NCQzpNQkVEVExTX1JTQV9DOk1CRURUTFNfUEtfSEFWRV9FQ0NfS0VZUzpNQkVEVExTX0VDUF9IQVZFX1NFQ1AzODRSMTpNQkVEVExTX0tFWV9FWENIQU5HRV9SU0FfRU5BQkxFRDpNQkVEVExTX1VTRV9QU0FfQ1JZUFRPOiFNQkVEVExTX0FFU19PTkxZXzEyOF9CSVRfS0VZX0xFTkdUSAorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NjpNQkVEVExTX1NTTF9IQVZFX0FFUzpNQkVEVExTX1NTTF9IQVZFX0NCQzpNQkVEVExTX1JTQV9DOk1CRURUTFNfUEtfSEFWRV9FQ0NfS0VZUzpNQkVEVExTX0VDUF9IQVZFX1NFQ1AzODRSMTpNQkVEVExTX0tFWV9FWENIQU5HRV9SU0FfRU5BQkxFRDpNQkVEVExTX1VTRV9QU0FfQ1JZUFRPOiFNQkVEVExTX0FFU19PTkxZXzEyOF9CSVRfS0VZX0xFTkdUSAogaGFuZHNoYWtlX2NpcGhlcnN1aXRlX3NlbGVjdDoiVExTLVJTQS1XSVRILUFFUy0yNTYtQ0JDLVNIQTI1NiI6TUJFRFRMU19QS19SU0E6IiI6UFNBX0FMR19SU0FfUEtDUzFWMTVfU0lHTihQU0FfQUxHX0FOWV9IQVNIKTpQU0FfQUxHX05PTkU6UFNBX0tFWV9VU0FHRV9ERUNSWVBUOk1CRURUTFNfRVJSX1NTTF9IQU5EU0hBS0VfRkFJTFVSRTowCiAKIEhhbmRzaGFrZSwgc2VsZWN0IFJTQS1XSVRILUFFUy0yNTYtQ0JDLVNIQTI1Niwgb3BhcXVlLCBiYWQgdXNhZ2UKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2Ok1CRURUTFNfU1NMX0hBVkVfQUVTOk1CRURUTFNfU1NMX0hBVkVfQ0JDOk1CRURUTFNfUlNBX0M6TUJFRFRMU19QS19IQVZFX0VDQ19LRVlTOk1CRURUTFNfRUNQX0hBVkVfU0VDUDM4NFIxOk1CRURUTFNfS0VZX0VYQ0hBTkdFX1JTQV9FTkFCTEVEOk1CRURUTFNfVVNFX1BTQV9DUllQVE86IU1CRURUTFNfQUVTX09OTFlfMTI4X0JJVF9LRVlfTEVOR1RICitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2Ok1CRURUTFNfU1NMX0hBVkVfQUVTOk1CRURUTFNfU1NMX0hBVkVfQ0JDOk1CRURUTFNfUlNBX0M6TUJFRFRMU19QS19IQVZFX0VDQ19LRVlTOk1CRURUTFNfRUNQX0hBVkVfU0VDUDM4NFIxOk1CRURUTFNfS0VZX0VYQ0hBTkdFX1JTQV9FTkFCTEVEOk1CRURUTFNfVVNFX1BTQV9DUllQVE86IU1CRURUTFNfQUVTX09OTFlfMTI4X0JJVF9LRVlfTEVOR1RICiBoYW5kc2hha2VfY2lwaGVyc3VpdGVfc2VsZWN0OiJUTFMtUlNBLVdJVEgtQUVTLTI1Ni1DQkMtU0hBMjU2IjpNQkVEVExTX1BLX1JTQToiIjpQU0FfQUxHX1JTQV9QS0NTMVYxNV9DUllQVDpQU0FfQUxHX05PTkU6UFNBX0tFWV9VU0FHRV9ERVJJVkU6TUJFRFRMU19FUlJfU1NMX0hBTkRTSEFLRV9GQUlMVVJFOjAKIAogSGFuZHNoYWtlLCBzZWxlY3QgUlNBLVBTSy1XSVRILUFFUy0yNTYtQ0JDLVNIQTM4NCwgbm9uLW9wYXF1ZQotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEzODQ6TUJFRFRMU19TU0xfSEFWRV9BRVM6TUJFRFRMU19TU0xfSEFWRV9DQkM6TUJFRFRMU19SU0FfQzpNQkVEVExTX1BLX0hBVkVfRUNDX0tFWVM6TUJFRFRMU19FQ1BfSEFWRV9TRUNQMzg0UjE6TUJFRFRMU19LRVlfRVhDSEFOR0VfUlNBX1BTS19FTkFCTEVEOiFNQkVEVExTX0FFU19PTkxZXzEyOF9CSVRfS0VZX0xFTkdUSAorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzM4NDpNQkVEVExTX1NTTF9IQVZFX0FFUzpNQkVEVExTX1NTTF9IQVZFX0NCQzpNQkVEVExTX1JTQV9DOk1CRURUTFNfUEtfSEFWRV9FQ0NfS0VZUzpNQkVEVExTX0VDUF9IQVZFX1NFQ1AzODRSMTpNQkVEVExTX0tFWV9FWENIQU5HRV9SU0FfUFNLX0VOQUJMRUQ6IU1CRURUTFNfQUVTX09OTFlfMTI4X0JJVF9LRVlfTEVOR1RICiBoYW5kc2hha2VfY2lwaGVyc3VpdGVfc2VsZWN0OiJUTFMtUlNBLVBTSy1XSVRILUFFUy0yNTYtQ0JDLVNIQTM4NCI6TUJFRFRMU19QS19SU0E6ImFiYzEyMyI6UFNBX0FMR19OT05FOlBTQV9BTEdfTk9ORTowOjA6TUJFRFRMU19UTFNfUlNBX1BTS19XSVRIX0FFU18yNTZfQ0JDX1NIQTM4NAogCiBIYW5kc2hha2UsIHNlbGVjdCBSU0EtUFNLLVdJVEgtQUVTLTI1Ni1DQkMtU0hBMzg0LCBvcGFxdWUKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMzg0Ok1CRURUTFNfU1NMX0hBVkVfQUVTOk1CRURUTFNfU1NMX0hBVkVfQ0JDOk1CRURUTFNfUlNBX0M6TUJFRFRMU19QS19IQVZFX0VDQ19LRVlTOk1CRURUTFNfRUNQX0hBVkVfU0VDUDM4NFIxOk1CRURUTFNfS0VZX0VYQ0hBTkdFX1JTQV9QU0tfRU5BQkxFRDpNQkVEVExTX1VTRV9QU0FfQ1JZUFRPOiFNQkVEVExTX0FFU19PTkxZXzEyOF9CSVRfS0VZX0xFTkdUSAorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzM4NDpNQkVEVExTX1NTTF9IQVZFX0FFUzpNQkVEVExTX1NTTF9IQVZFX0NCQzpNQkVEVExTX1JTQV9DOk1CRURUTFNfUEtfSEFWRV9FQ0NfS0VZUzpNQkVEVExTX0VDUF9IQVZFX1NFQ1AzODRSMTpNQkVEVExTX0tFWV9FWENIQU5HRV9SU0FfUFNLX0VOQUJMRUQ6TUJFRFRMU19VU0VfUFNBX0NSWVBUTzohTUJFRFRMU19BRVNfT05MWV8xMjhfQklUX0tFWV9MRU5HVEgKIGhhbmRzaGFrZV9jaXBoZXJzdWl0ZV9zZWxlY3Q6IlRMUy1SU0EtUFNLLVdJVEgtQUVTLTI1Ni1DQkMtU0hBMzg0IjpNQkVEVExTX1BLX1JTQToiYWJjMTIzIjpQU0FfQUxHX1JTQV9QS0NTMVYxNV9DUllQVDpQU0FfQUxHX05PTkU6UFNBX0tFWV9VU0FHRV9ERUNSWVBUOjA6TUJFRFRMU19UTFNfUlNBX1BTS19XSVRIX0FFU18yNTZfQ0JDX1NIQTM4NAogCiBIYW5kc2hha2UsIHNlbGVjdCBSU0EtUFNLLVdJVEgtQUVTLTI1Ni1DQkMtU0hBMzg0LCBvcGFxdWUsIGJhZCBhbGcKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMzg0Ok1CRURUTFNfU1NMX0hBVkVfQUVTOk1CRURUTFNfU1NMX0hBVkVfQ0JDOk1CRURUTFNfUlNBX0M6TUJFRFRMU19QS19IQVZFX0VDQ19LRVlTOk1CRURUTFNfRUNQX0hBVkVfU0VDUDM4NFIxOk1CRURUTFNfS0VZX0VYQ0hBTkdFX1JTQV9QU0tfRU5BQkxFRDpNQkVEVExTX1VTRV9QU0FfQ1JZUFRPOiFNQkVEVExTX0FFU19PTkxZXzEyOF9CSVRfS0VZX0xFTkdUSAorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzM4NDpNQkVEVExTX1NTTF9IQVZFX0FFUzpNQkVEVExTX1NTTF9IQVZFX0NCQzpNQkVEVExTX1JTQV9DOk1CRURUTFNfUEtfSEFWRV9FQ0NfS0VZUzpNQkVEVExTX0VDUF9IQVZFX1NFQ1AzODRSMTpNQkVEVExTX0tFWV9FWENIQU5HRV9SU0FfUFNLX0VOQUJMRUQ6TUJFRFRMU19VU0VfUFNBX0NSWVBUTzohTUJFRFRMU19BRVNfT05MWV8xMjhfQklUX0tFWV9MRU5HVEgKIGhhbmRzaGFrZV9jaXBoZXJzdWl0ZV9zZWxlY3Q6IlRMUy1SU0EtUFNLLVdJVEgtQUVTLTI1Ni1DQkMtU0hBMzg0IjpNQkVEVExTX1BLX1JTQToiYWJjMTIzIjpQU0FfQUxHX1JTQV9QS0NTMVYxNV9TSUdOKFBTQV9BTEdfQU5ZX0hBU0gpOlBTQV9BTEdfTk9ORTpQU0FfS0VZX1VTQUdFX0RFQ1JZUFQ6TUJFRFRMU19FUlJfU1NMX0hBTkRTSEFLRV9GQUlMVVJFOjAKIAogSGFuZHNoYWtlLCBzZWxlY3QgUlNBLVBTSy1XSVRILUFFUy0yNTYtQ0JDLVNIQTM4NCwgb3BhcXVlLCBiYWQgdXNhZ2UKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMzg0Ok1CRURUTFNfU1NMX0hBVkVfQUVTOk1CRURUTFNfU1NMX0hBVkVfQ0JDOk1CRURUTFNfUlNBX0M6TUJFRFRMU19QS19IQVZFX0VDQ19LRVlTOk1CRURUTFNfRUNQX0hBVkVfU0VDUDM4NFIxOk1CRURUTFNfS0VZX0VYQ0hBTkdFX1JTQV9QU0tfRU5BQkxFRDpNQkVEVExTX1VTRV9QU0FfQ1JZUFRPOiFNQkVEVExTX0FFU19PTkxZXzEyOF9CSVRfS0VZX0xFTkdUSAorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzM4NDpNQkVEVExTX1NTTF9IQVZFX0FFUzpNQkVEVExTX1NTTF9IQVZFX0NCQzpNQkVEVExTX1JTQV9DOk1CRURUTFNfUEtfSEFWRV9FQ0NfS0VZUzpNQkVEVExTX0VDUF9IQVZFX1NFQ1AzODRSMTpNQkVEVExTX0tFWV9FWENIQU5HRV9SU0FfUFNLX0VOQUJMRUQ6TUJFRFRMU19VU0VfUFNBX0NSWVBUTzohTUJFRFRMU19BRVNfT05MWV8xMjhfQklUX0tFWV9MRU5HVEgKIGhhbmRzaGFrZV9jaXBoZXJzdWl0ZV9zZWxlY3Q6IlRMUy1SU0EtUFNLLVdJVEgtQUVTLTI1Ni1DQkMtU0hBMzg0IjpNQkVEVExTX1BLX1JTQToiYWJjMTIzIjpQU0FfQUxHX1JTQV9QS0NTMVYxNV9DUllQVDpQU0FfQUxHX05PTkU6UFNBX0tFWV9VU0FHRV9ERVJJVkU6TUJFRFRMU19FUlJfU1NMX0hBTkRTSEFLRV9GQUlMVVJFOjAKIAogSGFuZHNoYWtlLCBzZWxlY3QgUlNBLVBTSy1XSVRILUFFUy0yNTYtQ0JDLVNIQTM4NCwgb3BhcXVlLCBubyBwc2sKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMzg0Ok1CRURUTFNfU1NMX0hBVkVfQUVTOk1CRURUTFNfU1NMX0hBVkVfQ0JDOk1CRURUTFNfUlNBX0M6TUJFRFRMU19QS19IQVZFX0VDQ19LRVlTOk1CRURUTFNfRUNQX0hBVkVfU0VDUDM4NFIxOk1CRURUTFNfS0VZX0VYQ0hBTkdFX1JTQV9QU0tfRU5BQkxFRDpNQkVEVExTX1VTRV9QU0FfQ1JZUFRPOiFNQkVEVExTX0FFU19PTkxZXzEyOF9CSVRfS0VZX0xFTkdUSAorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzM4NDpNQkVEVExTX1NTTF9IQVZFX0FFUzpNQkVEVExTX1NTTF9IQVZFX0NCQzpNQkVEVExTX1JTQV9DOk1CRURUTFNfUEtfSEFWRV9FQ0NfS0VZUzpNQkVEVExTX0VDUF9IQVZFX1NFQ1AzODRSMTpNQkVEVExTX0tFWV9FWENIQU5HRV9SU0FfUFNLX0VOQUJMRUQ6TUJFRFRMU19VU0VfUFNBX0NSWVBUTzohTUJFRFRMU19BRVNfT05MWV8xMjhfQklUX0tFWV9MRU5HVEgKIGhhbmRzaGFrZV9jaXBoZXJzdWl0ZV9zZWxlY3Q6IlRMUy1SU0EtUFNLLVdJVEgtQUVTLTI1Ni1DQkMtU0hBMzg0IjpNQkVEVExTX1BLX1JTQToiIjpQU0FfQUxHX1JTQV9QS0NTMVYxNV9DUllQVDpQU0FfQUxHX05PTkU6UFNBX0tFWV9VU0FHRV9ERUNSWVBUOk1CRURUTFNfRVJSX1NTTF9IQU5EU0hBS0VfRkFJTFVSRTowCiAKIEhhbmRzaGFrZSwgc2VsZWN0IERIRS1SU0EtV0lUSC1BRVMtMjU2LUdDTS1TSEEzODQsIG5vbi1vcGFxdWUKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMzg0Ok1CRURUTFNfU1NMX0hBVkVfQUVTOk1CRURUTFNfU1NMX0hBVkVfR0NNOk1CRURUTFNfUlNBX0M6TUJFRFRMU19QS19IQVZFX0VDQ19LRVlTOk1CRURUTFNfRUNQX0hBVkVfU0VDUDM4NFIxOk1CRURUTFNfS0VZX0VYQ0hBTkdFX0RIRV9SU0FfRU5BQkxFRDohTUJFRFRMU19BRVNfT05MWV8xMjhfQklUX0tFWV9MRU5HVEgKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8zODQ6TUJFRFRMU19TU0xfSEFWRV9BRVM6TUJFRFRMU19TU0xfSEFWRV9HQ006TUJFRFRMU19SU0FfQzpNQkVEVExTX1BLX0hBVkVfRUNDX0tFWVM6TUJFRFRMU19FQ1BfSEFWRV9TRUNQMzg0UjE6TUJFRFRMU19LRVlfRVhDSEFOR0VfREhFX1JTQV9FTkFCTEVEOiFNQkVEVExTX0FFU19PTkxZXzEyOF9CSVRfS0VZX0xFTkdUSAogaGFuZHNoYWtlX2NpcGhlcnN1aXRlX3NlbGVjdDoiVExTLURIRS1SU0EtV0lUSC1BRVMtMjU2LUdDTS1TSEEzODQiOk1CRURUTFNfUEtfUlNBOiIiOlBTQV9BTEdfTk9ORTpQU0FfQUxHX05PTkU6MDowOk1CRURUTFNfVExTX0RIRV9SU0FfV0lUSF9BRVNfMjU2X0dDTV9TSEEzODQKIAogSGFuZHNoYWtlLCBzZWxlY3QgREhFLVJTQS1XSVRILUFFUy0yNTYtR0NNLVNIQTM4NCwgb3BhcXVlLCBQU0FfQUxHX0FOWV9IQVNICi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTM4NDpNQkVEVExTX1NTTF9IQVZFX0FFUzpNQkVEVExTX1NTTF9IQVZFX0dDTTpNQkVEVExTX1JTQV9DOk1CRURUTFNfUEtfSEFWRV9FQ0NfS0VZUzpNQkVEVExTX0VDUF9IQVZFX1NFQ1AzODRSMTpNQkVEVExTX0tFWV9FWENIQU5HRV9ESEVfUlNBX0VOQUJMRUQ6TUJFRFRMU19VU0VfUFNBX0NSWVBUTzohTUJFRFRMU19BRVNfT05MWV8xMjhfQklUX0tFWV9MRU5HVEgKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8zODQ6TUJFRFRMU19TU0xfSEFWRV9BRVM6TUJFRFRMU19TU0xfSEFWRV9HQ006TUJFRFRMU19SU0FfQzpNQkVEVExTX1BLX0hBVkVfRUNDX0tFWVM6TUJFRFRMU19FQ1BfSEFWRV9TRUNQMzg0UjE6TUJFRFRMU19LRVlfRVhDSEFOR0VfREhFX1JTQV9FTkFCTEVEOk1CRURUTFNfVVNFX1BTQV9DUllQVE86IU1CRURUTFNfQUVTX09OTFlfMTI4X0JJVF9LRVlfTEVOR1RICiBoYW5kc2hha2VfY2lwaGVyc3VpdGVfc2VsZWN0OiJUTFMtREhFLVJTQS1XSVRILUFFUy0yNTYtR0NNLVNIQTM4NCI6TUJFRFRMU19QS19SU0E6IiI6UFNBX0FMR19SU0FfUEtDUzFWMTVfU0lHTihQU0FfQUxHX0FOWV9IQVNIKTpQU0FfQUxHX05PTkU6UFNBX0tFWV9VU0FHRV9TSUdOX0hBU0g6MDpNQkVEVExTX1RMU19ESEVfUlNBX1dJVEhfQUVTXzI1Nl9HQ01fU0hBMzg0CiAKIEhhbmRzaGFrZSwgc2VsZWN0IERIRS1SU0EtV0lUSC1BRVMtMjU2LUdDTS1TSEEzODQsIG9wYXF1ZSwgUFNBX0FMR19TSEFfMzg0Ci1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTM4NDpNQkVEVExTX1NTTF9IQVZFX0FFUzpNQkVEVExTX1NTTF9IQVZFX0dDTTpNQkVEVExTX1JTQV9DOk1CRURUTFNfUEtfSEFWRV9FQ0NfS0VZUzpNQkVEVExTX0VDUF9IQVZFX1NFQ1AzODRSMTpNQkVEVExTX0tFWV9FWENIQU5HRV9ESEVfUlNBX0VOQUJMRUQ6TUJFRFRMU19VU0VfUFNBX0NSWVBUTzohTUJFRFRMU19BRVNfT05MWV8xMjhfQklUX0tFWV9MRU5HVEgKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8zODQ6TUJFRFRMU19TU0xfSEFWRV9BRVM6TUJFRFRMU19TU0xfSEFWRV9HQ006TUJFRFRMU19SU0FfQzpNQkVEVExTX1BLX0hBVkVfRUNDX0tFWVM6TUJFRFRMU19FQ1BfSEFWRV9TRUNQMzg0UjE6TUJFRFRMU19LRVlfRVhDSEFOR0VfREhFX1JTQV9FTkFCTEVEOk1CRURUTFNfVVNFX1BTQV9DUllQVE86IU1CRURUTFNfQUVTX09OTFlfMTI4X0JJVF9LRVlfTEVOR1RICiBoYW5kc2hha2VfY2lwaGVyc3VpdGVfc2VsZWN0OiJUTFMtREhFLVJTQS1XSVRILUFFUy0yNTYtR0NNLVNIQTM4NCI6TUJFRFRMU19QS19SU0E6IiI6UFNBX0FMR19SU0FfUEtDUzFWMTVfU0lHTihQU0FfQUxHX1NIQV8zODQpOlBTQV9BTEdfTk9ORTpQU0FfS0VZX1VTQUdFX1NJR05fSEFTSDowOk1CRURUTFNfVExTX0RIRV9SU0FfV0lUSF9BRVNfMjU2X0dDTV9TSEEzODQKIAogSGFuZHNoYWtlLCBzZWxlY3QgREhFLVJTQS1XSVRILUFFUy0yNTYtR0NNLVNIQTM4NCwgb3BhcXVlLCBpbnZhbGlkIGFsZwotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEzODQ6TUJFRFRMU19TU0xfSEFWRV9BRVM6TUJFRFRMU19TU0xfSEFWRV9HQ006TUJFRFRMU19SU0FfQzpNQkVEVExTX1BLX0hBVkVfRUNDX0tFWVM6TUJFRFRMU19FQ1BfSEFWRV9TRUNQMzg0UjE6TUJFRFRMU19LRVlfRVhDSEFOR0VfREhFX1JTQV9FTkFCTEVEOk1CRURUTFNfVVNFX1BTQV9DUllQVE86IU1CRURUTFNfQUVTX09OTFlfMTI4X0JJVF9LRVlfTEVOR1RICitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMzg0Ok1CRURUTFNfU1NMX0hBVkVfQUVTOk1CRURUTFNfU1NMX0hBVkVfR0NNOk1CRURUTFNfUlNBX0M6TUJFRFRMU19QS19IQVZFX0VDQ19LRVlTOk1CRURUTFNfRUNQX0hBVkVfU0VDUDM4NFIxOk1CRURUTFNfS0VZX0VYQ0hBTkdFX0RIRV9SU0FfRU5BQkxFRDpNQkVEVExTX1VTRV9QU0FfQ1JZUFRPOiFNQkVEVExTX0FFU19PTkxZXzEyOF9CSVRfS0VZX0xFTkdUSAogaGFuZHNoYWtlX2NpcGhlcnN1aXRlX3NlbGVjdDoiVExTLURIRS1SU0EtV0lUSC1BRVMtMjU2LUdDTS1TSEEzODQiOk1CRURUTFNfUEtfUlNBOiIiOlBTQV9BTEdfUlNBX1BLQ1MxVjE1X1NJR04oUFNBX0FMR19TSEFfMjU2KTpQU0FfQUxHX05PTkU6UFNBX0tFWV9VU0FHRV9TSUdOX0hBU0g6TUJFRFRMU19FUlJfU1NMX0hBTkRTSEFLRV9GQUlMVVJFOjAKIAogSGFuZHNoYWtlLCBzZWxlY3QgREhFLVJTQS1XSVRILUFFUy0yNTYtR0NNLVNIQTM4NCwgb3BhcXVlLCBiYWQgYWxnCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTM4NDpNQkVEVExTX1NTTF9IQVZFX0FFUzpNQkVEVExTX1NTTF9IQVZFX0dDTTpNQkVEVExTX1JTQV9DOk1CRURUTFNfUEtfSEFWRV9FQ0NfS0VZUzpNQkVEVExTX0VDUF9IQVZFX1NFQ1AzODRSMTpNQkVEVExTX0tFWV9FWENIQU5HRV9ESEVfUlNBX0VOQUJMRUQ6TUJFRFRMU19VU0VfUFNBX0NSWVBUTzohTUJFRFRMU19BRVNfT05MWV8xMjhfQklUX0tFWV9MRU5HVEgKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8zODQ6TUJFRFRMU19TU0xfSEFWRV9BRVM6TUJFRFRMU19TU0xfSEFWRV9HQ006TUJFRFRMU19SU0FfQzpNQkVEVExTX1BLX0hBVkVfRUNDX0tFWVM6TUJFRFRMU19FQ1BfSEFWRV9TRUNQMzg0UjE6TUJFRFRMU19LRVlfRVhDSEFOR0VfREhFX1JTQV9FTkFCTEVEOk1CRURUTFNfVVNFX1BTQV9DUllQVE86IU1CRURUTFNfQUVTX09OTFlfMTI4X0JJVF9LRVlfTEVOR1RICiBoYW5kc2hha2VfY2lwaGVyc3VpdGVfc2VsZWN0OiJUTFMtREhFLVJTQS1XSVRILUFFUy0yNTYtR0NNLVNIQTM4NCI6TUJFRFRMU19QS19SU0E6IiI6UFNBX0FMR19SU0FfUEtDUzFWMTVfQ1JZUFQ6UFNBX0FMR19OT05FOlBTQV9LRVlfVVNBR0VfU0lHTl9IQVNIOk1CRURUTFNfRVJSX1NTTF9IQU5EU0hBS0VfRkFJTFVSRTowCiAKIEhhbmRzaGFrZSwgc2VsZWN0IERIRS1SU0EtV0lUSC1BRVMtMjU2LUdDTS1TSEEzODQsIG9wYXF1ZSwgYmFkIHVzYWdlCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTM4NDpNQkVEVExTX1NTTF9IQVZFX0FFUzpNQkVEVExTX1NTTF9IQVZFX0dDTTpNQkVEVExTX1JTQV9DOk1CRURUTFNfUEtfSEFWRV9FQ0NfS0VZUzpNQkVEVExTX0VDUF9IQVZFX1NFQ1AzODRSMTpNQkVEVExTX0tFWV9FWENIQU5HRV9ESEVfUlNBX0VOQUJMRUQ6TUJFRFRMU19VU0VfUFNBX0NSWVBUTzohTUJFRFRMU19BRVNfT05MWV8xMjhfQklUX0tFWV9MRU5HVEgKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8zODQ6TUJFRFRMU19TU0xfSEFWRV9BRVM6TUJFRFRMU19TU0xfSEFWRV9HQ006TUJFRFRMU19SU0FfQzpNQkVEVExTX1BLX0hBVkVfRUNDX0tFWVM6TUJFRFRMU19FQ1BfSEFWRV9TRUNQMzg0UjE6TUJFRFRMU19LRVlfRVhDSEFOR0VfREhFX1JTQV9FTkFCTEVEOk1CRURUTFNfVVNFX1BTQV9DUllQVE86IU1CRURUTFNfQUVTX09OTFlfMTI4X0JJVF9LRVlfTEVOR1RICiBoYW5kc2hha2VfY2lwaGVyc3VpdGVfc2VsZWN0OiJUTFMtREhFLVJTQS1XSVRILUFFUy0yNTYtR0NNLVNIQTM4NCI6TUJFRFRMU19QS19SU0E6IiI6UFNBX0FMR19SU0FfUEtDUzFWMTVfU0lHTihQU0FfQUxHX0FOWV9IQVNIKTpQU0FfQUxHX05PTkU6UFNBX0tFWV9VU0FHRV9ERVJJVkU6TUJFRFRMU19FUlJfU1NMX0hBTkRTSEFLRV9GQUlMVVJFOjAKIAogSGFuZHNoYWtlLCBzZWxlY3QgRUNESEUtUlNBLVdJVEgtQUVTLTI1Ni1HQ00tU0hBMzg0LCBub24tb3BhcXVlCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTM4NDpNQkVEVExTX1NTTF9IQVZFX0FFUzpNQkVEVExTX1NTTF9IQVZFX0dDTTpNQkVEVExTX1JTQV9DOk1CRURUTFNfUEtfSEFWRV9FQ0NfS0VZUzpNQkVEVExTX0VDUF9IQVZFX1NFQ1AzODRSMTpNQkVEVExTX0tFWV9FWENIQU5HRV9FQ0RIRV9SU0FfRU5BQkxFRDohTUJFRFRMU19BRVNfT05MWV8xMjhfQklUX0tFWV9MRU5HVEgKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8zODQ6TUJFRFRMU19TU0xfSEFWRV9BRVM6TUJFRFRMU19TU0xfSEFWRV9HQ006TUJFRFRMU19SU0FfQzpNQkVEVExTX1BLX0hBVkVfRUNDX0tFWVM6TUJFRFRMU19FQ1BfSEFWRV9TRUNQMzg0UjE6TUJFRFRMU19LRVlfRVhDSEFOR0VfRUNESEVfUlNBX0VOQUJMRUQ6IU1CRURUTFNfQUVTX09OTFlfMTI4X0JJVF9LRVlfTEVOR1RICiBoYW5kc2hha2VfY2lwaGVyc3VpdGVfc2VsZWN0OiJUTFMtRUNESEUtUlNBLVdJVEgtQUVTLTI1Ni1HQ00tU0hBMzg0IjpNQkVEVExTX1BLX1JTQToiIjpQU0FfQUxHX05PTkU6UFNBX0FMR19OT05FOjA6MDpNQkVEVExTX1RMU19FQ0RIRV9SU0FfV0lUSF9BRVNfMjU2X0dDTV9TSEEzODQKIAogSGFuZHNoYWtlLCBzZWxlY3QgRUNESEUtUlNBLVdJVEgtQUVTLTI1Ni1HQ00tU0hBMzg0LCBvcGFxdWUsIFBTQV9BTEdfQU5ZX0hBU0gKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMzg0Ok1CRURUTFNfU1NMX0hBVkVfQUVTOk1CRURUTFNfU1NMX0hBVkVfR0NNOk1CRURUTFNfUlNBX0M6TUJFRFRMU19QS19IQVZFX0VDQ19LRVlTOk1CRURUTFNfRUNQX0hBVkVfU0VDUDM4NFIxOk1CRURUTFNfS0VZX0VYQ0hBTkdFX0VDREhFX1JTQV9FTkFCTEVEOk1CRURUTFNfVVNFX1BTQV9DUllQVE86IU1CRURUTFNfQUVTX09OTFlfMTI4X0JJVF9LRVlfTEVOR1RICitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMzg0Ok1CRURUTFNfU1NMX0hBVkVfQUVTOk1CRURUTFNfU1NMX0hBVkVfR0NNOk1CRURUTFNfUlNBX0M6TUJFRFRMU19QS19IQVZFX0VDQ19LRVlTOk1CRURUTFNfRUNQX0hBVkVfU0VDUDM4NFIxOk1CRURUTFNfS0VZX0VYQ0hBTkdFX0VDREhFX1JTQV9FTkFCTEVEOk1CRURUTFNfVVNFX1BTQV9DUllQVE86IU1CRURUTFNfQUVTX09OTFlfMTI4X0JJVF9LRVlfTEVOR1RICiBoYW5kc2hha2VfY2lwaGVyc3VpdGVfc2VsZWN0OiJUTFMtRUNESEUtUlNBLVdJVEgtQUVTLTI1Ni1HQ00tU0hBMzg0IjpNQkVEVExTX1BLX1JTQToiIjpQU0FfQUxHX1JTQV9QS0NTMVYxNV9TSUdOKFBTQV9BTEdfQU5ZX0hBU0gpOlBTQV9BTEdfTk9ORTpQU0FfS0VZX1VTQUdFX1NJR05fSEFTSDowOk1CRURUTFNfVExTX0VDREhFX1JTQV9XSVRIX0FFU18yNTZfR0NNX1NIQTM4NAogCiBIYW5kc2hha2UsIHNlbGVjdCBFQ0RIRS1SU0EtV0lUSC1BRVMtMjU2LUdDTS1TSEEzODQsIG9wYXF1ZSwgUFNBX0FMR19TSEFfMzg0Ci1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTM4NDpNQkVEVExTX1NTTF9IQVZFX0FFUzpNQkVEVExTX1NTTF9IQVZFX0dDTTpNQkVEVExTX1JTQV9DOk1CRURUTFNfUEtfSEFWRV9FQ0NfS0VZUzpNQkVEVExTX0VDUF9IQVZFX1NFQ1AzODRSMTpNQkVEVExTX0tFWV9FWENIQU5HRV9FQ0RIRV9SU0FfRU5BQkxFRDpNQkVEVExTX1VTRV9QU0FfQ1JZUFRPOiFNQkVEVExTX0FFU19PTkxZXzEyOF9CSVRfS0VZX0xFTkdUSAorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzM4NDpNQkVEVExTX1NTTF9IQVZFX0FFUzpNQkVEVExTX1NTTF9IQVZFX0dDTTpNQkVEVExTX1JTQV9DOk1CRURUTFNfUEtfSEFWRV9FQ0NfS0VZUzpNQkVEVExTX0VDUF9IQVZFX1NFQ1AzODRSMTpNQkVEVExTX0tFWV9FWENIQU5HRV9FQ0RIRV9SU0FfRU5BQkxFRDpNQkVEVExTX1VTRV9QU0FfQ1JZUFRPOiFNQkVEVExTX0FFU19PTkxZXzEyOF9CSVRfS0VZX0xFTkdUSAogaGFuZHNoYWtlX2NpcGhlcnN1aXRlX3NlbGVjdDoiVExTLUVDREhFLVJTQS1XSVRILUFFUy0yNTYtR0NNLVNIQTM4NCI6TUJFRFRMU19QS19SU0E6IiI6UFNBX0FMR19SU0FfUEtDUzFWMTVfU0lHTihQU0FfQUxHX1NIQV8zODQpOlBTQV9BTEdfTk9ORTpQU0FfS0VZX1VTQUdFX1NJR05fSEFTSDowOk1CRURUTFNfVExTX0VDREhFX1JTQV9XSVRIX0FFU18yNTZfR0NNX1NIQTM4NAogCiBIYW5kc2hha2UsIHNlbGVjdCBFQ0RIRS1SU0EtV0lUSC1BRVMtMjU2LUdDTS1TSEEzODQsIG9wYXF1ZSwgaW52YWxpZCBhbGcKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMzg0Ok1CRURUTFNfU1NMX0hBVkVfQUVTOk1CRURUTFNfU1NMX0hBVkVfR0NNOk1CRURUTFNfUlNBX0M6TUJFRFRMU19QS19IQVZFX0VDQ19LRVlTOk1CRURUTFNfRUNQX0hBVkVfU0VDUDM4NFIxOk1CRURUTFNfS0VZX0VYQ0hBTkdFX0VDREhFX1JTQV9FTkFCTEVEOk1CRURUTFNfVVNFX1BTQV9DUllQVE86IU1CRURUTFNfQUVTX09OTFlfMTI4X0JJVF9LRVlfTEVOR1RICitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMzg0Ok1CRURUTFNfU1NMX0hBVkVfQUVTOk1CRURUTFNfU1NMX0hBVkVfR0NNOk1CRURUTFNfUlNBX0M6TUJFRFRMU19QS19IQVZFX0VDQ19LRVlTOk1CRURUTFNfRUNQX0hBVkVfU0VDUDM4NFIxOk1CRURUTFNfS0VZX0VYQ0hBTkdFX0VDREhFX1JTQV9FTkFCTEVEOk1CRURUTFNfVVNFX1BTQV9DUllQVE86IU1CRURUTFNfQUVTX09OTFlfMTI4X0JJVF9LRVlfTEVOR1RICiBoYW5kc2hha2VfY2lwaGVyc3VpdGVfc2VsZWN0OiJUTFMtRUNESEUtUlNBLVdJVEgtQUVTLTI1Ni1HQ00tU0hBMzg0IjpNQkVEVExTX1BLX1JTQToiIjpQU0FfQUxHX1JTQV9QS0NTMVYxNV9TSUdOKFBTQV9BTEdfU0hBXzI1Nik6UFNBX0FMR19OT05FOlBTQV9LRVlfVVNBR0VfU0lHTl9IQVNIOk1CRURUTFNfRVJSX1NTTF9IQU5EU0hBS0VfRkFJTFVSRTowCiAKIEhhbmRzaGFrZSwgc2VsZWN0IEVDREhFLVJTQS1XSVRILUFFUy0yNTYtR0NNLVNIQTM4NCwgb3BhcXVlLCBiYWQgYWxnCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTM4NDpNQkVEVExTX1NTTF9IQVZFX0FFUzpNQkVEVExTX1NTTF9IQVZFX0dDTTpNQkVEVExTX1JTQV9DOk1CRURUTFNfUEtfSEFWRV9FQ0NfS0VZUzpNQkVEVExTX0VDUF9IQVZFX1NFQ1AzODRSMTpNQkVEVExTX0tFWV9FWENIQU5HRV9FQ0RIRV9SU0FfRU5BQkxFRDpNQkVEVExTX1VTRV9QU0FfQ1JZUFRPOiFNQkVEVExTX0FFU19PTkxZXzEyOF9CSVRfS0VZX0xFTkdUSAorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzM4NDpNQkVEVExTX1NTTF9IQVZFX0FFUzpNQkVEVExTX1NTTF9IQVZFX0dDTTpNQkVEVExTX1JTQV9DOk1CRURUTFNfUEtfSEFWRV9FQ0NfS0VZUzpNQkVEVExTX0VDUF9IQVZFX1NFQ1AzODRSMTpNQkVEVExTX0tFWV9FWENIQU5HRV9FQ0RIRV9SU0FfRU5BQkxFRDpNQkVEVExTX1VTRV9QU0FfQ1JZUFRPOiFNQkVEVExTX0FFU19PTkxZXzEyOF9CSVRfS0VZX0xFTkdUSAogaGFuZHNoYWtlX2NpcGhlcnN1aXRlX3NlbGVjdDoiVExTLUVDREhFLVJTQS1XSVRILUFFUy0yNTYtR0NNLVNIQTM4NCI6TUJFRFRMU19QS19SU0E6IiI6UFNBX0FMR19SU0FfUFNTKFBTQV9BTEdfQU5ZX0hBU0gpOlBTQV9BTEdfTk9ORTpQU0FfS0VZX1VTQUdFX1NJR05fSEFTSDpNQkVEVExTX0VSUl9TU0xfSEFORFNIQUtFX0ZBSUxVUkU6MAogCiBIYW5kc2hha2UsIHNlbGVjdCBFQ0RIRS1SU0EtV0lUSC1BRVMtMjU2LUdDTS1TSEEzODQsIG9wYXF1ZSwgYmFkIHVzYWdlCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTM4NDpNQkVEVExTX1NTTF9IQVZFX0FFUzpNQkVEVExTX1NTTF9IQVZFX0dDTTpNQkVEVExTX1JTQV9DOk1CRURUTFNfUEtfSEFWRV9FQ0NfS0VZUzpNQkVEVExTX0VDUF9IQVZFX1NFQ1AzODRSMTpNQkVEVExTX0tFWV9FWENIQU5HRV9FQ0RIRV9SU0FfRU5BQkxFRDpNQkVEVExTX1VTRV9QU0FfQ1JZUFRPOiFNQkVEVExTX0FFU19PTkxZXzEyOF9CSVRfS0VZX0xFTkdUSAorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzM4NDpNQkVEVExTX1NTTF9IQVZFX0FFUzpNQkVEVExTX1NTTF9IQVZFX0dDTTpNQkVEVExTX1JTQV9DOk1CRURUTFNfUEtfSEFWRV9FQ0NfS0VZUzpNQkVEVExTX0VDUF9IQVZFX1NFQ1AzODRSMTpNQkVEVExTX0tFWV9FWENIQU5HRV9FQ0RIRV9SU0FfRU5BQkxFRDpNQkVEVExTX1VTRV9QU0FfQ1JZUFRPOiFNQkVEVExTX0FFU19PTkxZXzEyOF9CSVRfS0VZX0xFTkdUSAogaGFuZHNoYWtlX2NpcGhlcnN1aXRlX3NlbGVjdDoiVExTLUVDREhFLVJTQS1XSVRILUFFUy0yNTYtR0NNLVNIQTM4NCI6TUJFRFRMU19QS19SU0E6IiI6UFNBX0FMR19SU0FfUEtDUzFWMTVfU0lHTihQU0FfQUxHX0FOWV9IQVNIKTpQU0FfQUxHX05PTkU6UFNBX0tFWV9VU0FHRV9ERVJJVkU6TUJFRFRMU19FUlJfU1NMX0hBTkRTSEFLRV9GQUlMVVJFOjAKIAogSGFuZHNoYWtlLCBzZWxlY3QgRUNESEUtRUNEU0EtV0lUSC1BRVMtMjU2LUNDTSwgbm9uLW9wYXF1ZQotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTY6TUJFRFRMU19TU0xfSEFWRV9BRVM6TUJFRFRMU19TU0xfSEFWRV9DQ006TUJFRFRMU19QS19DQU5fRUNEU0FfU09NRTpNQkVEVExTX0VDUF9IQVZFX1NFQ1AyNTZSMTpNQkVEVExTX0VDUF9IQVZFX1NFQ1AzODRSMTpNQkVEVExTX0tFWV9FWENIQU5HRV9FQ0RIRV9FQ0RTQV9FTkFCTEVEOiFNQkVEVExTX0FFU19PTkxZXzEyOF9CSVRfS0VZX0xFTkdUSAorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NjpNQkVEVExTX1NTTF9IQVZFX0FFUzpNQkVEVExTX1NTTF9IQVZFX0NDTTpNQkVEVExTX1BLX0NBTl9FQ0RTQV9TT01FOk1CRURUTFNfRUNQX0hBVkVfU0VDUDI1NlIxOk1CRURUTFNfRUNQX0hBVkVfU0VDUDM4NFIxOk1CRURUTFNfS0VZX0VYQ0hBTkdFX0VDREhFX0VDRFNBX0VOQUJMRUQ6IU1CRURUTFNfQUVTX09OTFlfMTI4X0JJVF9LRVlfTEVOR1RICiBoYW5kc2hha2VfY2lwaGVyc3VpdGVfc2VsZWN0OiJUTFMtRUNESEUtRUNEU0EtV0lUSC1BRVMtMjU2LUNDTSI6TUJFRFRMU19QS19FQ0RTQToiIjpQU0FfQUxHX05PTkU6UFNBX0FMR19OT05FOjA6MDpNQkVEVExTX1RMU19FQ0RIRV9FQ0RTQV9XSVRIX0FFU18yNTZfQ0NNCiAKIEhhbmRzaGFrZSwgc2VsZWN0IEVDREhFLUVDRFNBLVdJVEgtQUVTLTI1Ni1DQ00sIG9wYXF1ZSwgUFNBX0FMR19BTllfSEFTSAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTY6TUJFRFRMU19TU0xfSEFWRV9BRVM6TUJFRFRMU19TU0xfSEFWRV9DQ006TUJFRFRMU19QS19DQU5fRUNEU0FfU09NRTpNQkVEVExTX0VDUF9IQVZFX1NFQ1AyNTZSMTpNQkVEVExTX0VDUF9IQVZFX1NFQ1AzODRSMTpNQkVEVExTX0tFWV9FWENIQU5HRV9FQ0RIRV9FQ0RTQV9FTkFCTEVEOk1CRURUTFNfVVNFX1BTQV9DUllQVE86IU1CRURUTFNfQUVTX09OTFlfMTI4X0JJVF9LRVlfTEVOR1RICitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2Ok1CRURUTFNfU1NMX0hBVkVfQUVTOk1CRURUTFNfU1NMX0hBVkVfQ0NNOk1CRURUTFNfUEtfQ0FOX0VDRFNBX1NPTUU6TUJFRFRMU19FQ1BfSEFWRV9TRUNQMjU2UjE6TUJFRFRMU19FQ1BfSEFWRV9TRUNQMzg0UjE6TUJFRFRMU19LRVlfRVhDSEFOR0VfRUNESEVfRUNEU0FfRU5BQkxFRDpNQkVEVExTX1VTRV9QU0FfQ1JZUFRPOiFNQkVEVExTX0FFU19PTkxZXzEyOF9CSVRfS0VZX0xFTkdUSAogaGFuZHNoYWtlX2NpcGhlcnN1aXRlX3NlbGVjdDoiVExTLUVDREhFLUVDRFNBLVdJVEgtQUVTLTI1Ni1DQ00iOk1CRURUTFNfUEtfRUNEU0E6IiI6UFNBX0FMR19FQ0RTQShQU0FfQUxHX0FOWV9IQVNIKTpQU0FfQUxHX05PTkU6UFNBX0tFWV9VU0FHRV9TSUdOX0hBU0g6MDpNQkVEVExTX1RMU19FQ0RIRV9FQ0RTQV9XSVRIX0FFU18yNTZfQ0NNCiAKIEhhbmRzaGFrZSwgc2VsZWN0IEVDREhFLUVDRFNBLVdJVEgtQUVTLTI1Ni1DQ00sIG9wYXF1ZSwgUFNBX0FMR19TSEFfMjU2Ci1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NjpNQkVEVExTX1NTTF9IQVZFX0FFUzpNQkVEVExTX1NTTF9IQVZFX0NDTTpNQkVEVExTX1BLX0NBTl9FQ0RTQV9TT01FOk1CRURUTFNfRUNQX0hBVkVfU0VDUDI1NlIxOk1CRURUTFNfRUNQX0hBVkVfU0VDUDM4NFIxOk1CRURUTFNfS0VZX0VYQ0hBTkdFX0VDREhFX0VDRFNBX0VOQUJMRUQ6TUJFRFRMU19VU0VfUFNBX0NSWVBUTzohTUJFRFRMU19BRVNfT05MWV8xMjhfQklUX0tFWV9MRU5HVEgKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTY6TUJFRFRMU19TU0xfSEFWRV9BRVM6TUJFRFRMU19TU0xfSEFWRV9DQ006TUJFRFRMU19QS19DQU5fRUNEU0FfU09NRTpNQkVEVExTX0VDUF9IQVZFX1NFQ1AyNTZSMTpNQkVEVExTX0VDUF9IQVZFX1NFQ1AzODRSMTpNQkVEVExTX0tFWV9FWENIQU5HRV9FQ0RIRV9FQ0RTQV9FTkFCTEVEOk1CRURUTFNfVVNFX1BTQV9DUllQVE86IU1CRURUTFNfQUVTX09OTFlfMTI4X0JJVF9LRVlfTEVOR1RICiBoYW5kc2hha2VfY2lwaGVyc3VpdGVfc2VsZWN0OiJUTFMtRUNESEUtRUNEU0EtV0lUSC1BRVMtMjU2LUNDTSI6TUJFRFRMU19QS19FQ0RTQToiIjpQU0FfQUxHX0VDRFNBKFBTQV9BTEdfU0hBXzI1Nik6UFNBX0FMR19OT05FOlBTQV9LRVlfVVNBR0VfU0lHTl9IQVNIOjA6TUJFRFRMU19UTFNfRUNESEVfRUNEU0FfV0lUSF9BRVNfMjU2X0NDTQogCiBIYW5kc2hha2UsIHNlbGVjdCBFQ0RIRS1FQ0RTQS1XSVRILUFFUy0yNTYtQ0NNLCBvcGFxdWUsIGJhZCBhbGcKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2Ok1CRURUTFNfU1NMX0hBVkVfQUVTOk1CRURUTFNfU1NMX0hBVkVfQ0NNOk1CRURUTFNfUEtfQ0FOX0VDRFNBX1NPTUU6TUJFRFRMU19FQ1BfSEFWRV9TRUNQMjU2UjE6TUJFRFRMU19FQ1BfSEFWRV9TRUNQMzg0UjE6TUJFRFRMU19LRVlfRVhDSEFOR0VfRUNESEVfRUNEU0FfRU5BQkxFRDpNQkVEVExTX1VTRV9QU0FfQ1JZUFRPOiFNQkVEVExTX0FFU19PTkxZXzEyOF9CSVRfS0VZX0xFTkdUSAorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NjpNQkVEVExTX1NTTF9IQVZFX0FFUzpNQkVEVExTX1NTTF9IQVZFX0NDTTpNQkVEVExTX1BLX0NBTl9FQ0RTQV9TT01FOk1CRURUTFNfRUNQX0hBVkVfU0VDUDI1NlIxOk1CRURUTFNfRUNQX0hBVkVfU0VDUDM4NFIxOk1CRURUTFNfS0VZX0VYQ0hBTkdFX0VDREhFX0VDRFNBX0VOQUJMRUQ6TUJFRFRMU19VU0VfUFNBX0NSWVBUTzohTUJFRFRMU19BRVNfT05MWV8xMjhfQklUX0tFWV9MRU5HVEgKIGhhbmRzaGFrZV9jaXBoZXJzdWl0ZV9zZWxlY3Q6IlRMUy1FQ0RIRS1FQ0RTQS1XSVRILUFFUy0yNTYtQ0NNIjpNQkVEVExTX1BLX0VDRFNBOiIiOlBTQV9BTEdfRUNESDpQU0FfQUxHX05PTkU6UFNBX0tFWV9VU0FHRV9TSUdOX0hBU0g6TUJFRFRMU19FUlJfU1NMX0hBTkRTSEFLRV9GQUlMVVJFOjAKIAogSGFuZHNoYWtlLCBzZWxlY3QgRUNESEUtRUNEU0EtV0lUSC1BRVMtMjU2LUNDTSwgb3BhcXVlLCBiYWQgdXNhZ2UKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2Ok1CRURUTFNfU1NMX0hBVkVfQUVTOk1CRURUTFNfU1NMX0hBVkVfQ0NNOk1CRURUTFNfUEtfQ0FOX0VDRFNBX1NPTUU6TUJFRFRMU19FQ1BfSEFWRV9TRUNQMjU2UjE6TUJFRFRMU19FQ1BfSEFWRV9TRUNQMzg0UjE6TUJFRFRMU19LRVlfRVhDSEFOR0VfRUNESEVfRUNEU0FfRU5BQkxFRDpNQkVEVExTX1VTRV9QU0FfQ1JZUFRPOiFNQkVEVExTX0FFU19PTkxZXzEyOF9CSVRfS0VZX0xFTkdUSAorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NjpNQkVEVExTX1NTTF9IQVZFX0FFUzpNQkVEVExTX1NTTF9IQVZFX0NDTTpNQkVEVExTX1BLX0NBTl9FQ0RTQV9TT01FOk1CRURUTFNfRUNQX0hBVkVfU0VDUDI1NlIxOk1CRURUTFNfRUNQX0hBVkVfU0VDUDM4NFIxOk1CRURUTFNfS0VZX0VYQ0hBTkdFX0VDREhFX0VDRFNBX0VOQUJMRUQ6TUJFRFRMU19VU0VfUFNBX0NSWVBUTzohTUJFRFRMU19BRVNfT05MWV8xMjhfQklUX0tFWV9MRU5HVEgKIGhhbmRzaGFrZV9jaXBoZXJzdWl0ZV9zZWxlY3Q6IlRMUy1FQ0RIRS1FQ0RTQS1XSVRILUFFUy0yNTYtQ0NNIjpNQkVEVExTX1BLX0VDRFNBOiIiOlBTQV9BTEdfRUNEU0EoUFNBX0FMR19BTllfSEFTSCk6UFNBX0FMR19OT05FOlBTQV9LRVlfVVNBR0VfREVSSVZFOk1CRURUTFNfRVJSX1NTTF9IQU5EU0hBS0VfRkFJTFVSRTowCiAKIEhhbmRzaGFrZSwgc2VsZWN0IEVDREgtUlNBLVdJVEgtQUVTLTI1Ni1DQkMtU0hBMzg0LCBub24tb3BhcXVlCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTM4NDpNQkVEVExTX1NTTF9IQVZFX0FFUzpNQkVEVExTX1NTTF9IQVZFX0NCQzpNQkVEVExTX1JTQV9DOk1CRURUTFNfUEtfQ0FOX0VDRFNBX1ZFUklGWTpNQkVEVExTX1BLX0NBTl9FQ0RTQV9TSUdOOk1CRURUTFNfRUNQX0hBVkVfU0VDUDI1NlIxOk1CRURUTFNfRUNQX0hBVkVfU0VDUDM4NFIxOk1CRURUTFNfS0VZX0VYQ0hBTkdFX0VDREhfUlNBX0VOQUJMRUQ6IU1CRURUTFNfQUVTX09OTFlfMTI4X0JJVF9LRVlfTEVOR1RICitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMzg0Ok1CRURUTFNfU1NMX0hBVkVfQUVTOk1CRURUTFNfU1NMX0hBVkVfQ0JDOk1CRURUTFNfUlNBX0M6TUJFRFRMU19QS19DQU5fRUNEU0FfVkVSSUZZOk1CRURUTFNfUEtfQ0FOX0VDRFNBX1NJR046TUJFRFRMU19FQ1BfSEFWRV9TRUNQMjU2UjE6TUJFRFRMU19FQ1BfSEFWRV9TRUNQMzg0UjE6TUJFRFRMU19LRVlfRVhDSEFOR0VfRUNESF9SU0FfRU5BQkxFRDohTUJFRFRMU19BRVNfT05MWV8xMjhfQklUX0tFWV9MRU5HVEgKIGhhbmRzaGFrZV9jaXBoZXJzdWl0ZV9zZWxlY3Q6IlRMUy1FQ0RILVJTQS1XSVRILUFFUy0yNTYtQ0JDLVNIQTM4NCI6TUJFRFRMU19QS19FQ0RTQToiIjpQU0FfQUxHX05PTkU6UFNBX0FMR19OT05FOjA6MDpNQkVEVExTX1RMU19FQ0RIX1JTQV9XSVRIX0FFU18yNTZfQ0JDX1NIQTM4NAogCiBIYW5kc2hha2UsIHNlbGVjdCBFQ0RILVJTQS1XSVRILUFFUy0yNTYtQ0JDLVNIQTM4NCwgb3BhcXVlCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTM4NDpNQkVEVExTX1NTTF9IQVZFX0FFUzpNQkVEVExTX1NTTF9IQVZFX0NCQzpNQkVEVExTX1JTQV9DOk1CRURUTFNfUEtfQ0FOX0VDRFNBX1ZFUklGWTpNQkVEVExTX1BLX0NBTl9FQ0RTQV9TSUdOOk1CRURUTFNfRUNQX0hBVkVfU0VDUDI1NlIxOk1CRURUTFNfRUNQX0hBVkVfU0VDUDM4NFIxOk1CRURUTFNfS0VZX0VYQ0hBTkdFX0VDREhfUlNBX0VOQUJMRUQ6TUJFRFRMU19VU0VfUFNBX0NSWVBUTzohTUJFRFRMU19BRVNfT05MWV8xMjhfQklUX0tFWV9MRU5HVEgKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8zODQ6TUJFRFRMU19TU0xfSEFWRV9BRVM6TUJFRFRMU19TU0xfSEFWRV9DQkM6TUJFRFRMU19SU0FfQzpNQkVEVExTX1BLX0NBTl9FQ0RTQV9WRVJJRlk6TUJFRFRMU19QS19DQU5fRUNEU0FfU0lHTjpNQkVEVExTX0VDUF9IQVZFX1NFQ1AyNTZSMTpNQkVEVExTX0VDUF9IQVZFX1NFQ1AzODRSMTpNQkVEVExTX0tFWV9FWENIQU5HRV9FQ0RIX1JTQV9FTkFCTEVEOk1CRURUTFNfVVNFX1BTQV9DUllQVE86IU1CRURUTFNfQUVTX09OTFlfMTI4X0JJVF9LRVlfTEVOR1RICiBoYW5kc2hha2VfY2lwaGVyc3VpdGVfc2VsZWN0OiJUTFMtRUNESC1SU0EtV0lUSC1BRVMtMjU2LUNCQy1TSEEzODQiOk1CRURUTFNfUEtfRUNEU0E6IiI6UFNBX0FMR19FQ0RIOlBTQV9BTEdfTk9ORTpQU0FfS0VZX1VTQUdFX0RFUklWRTowOk1CRURUTFNfVExTX0VDREhfUlNBX1dJVEhfQUVTXzI1Nl9DQkNfU0hBMzg0CiAKIEhhbmRzaGFrZSwgc2VsZWN0IEVDREgtUlNBLVdJVEgtQUVTLTI1Ni1DQkMtU0hBMzg0LCBvcGFxdWUsIGJhZCBhbGcKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMzg0Ok1CRURUTFNfU1NMX0hBVkVfQUVTOk1CRURUTFNfU1NMX0hBVkVfQ0JDOk1CRURUTFNfUlNBX0M6TUJFRFRMU19QS19DQU5fRUNEU0FfVkVSSUZZOk1CRURUTFNfUEtfQ0FOX0VDRFNBX1NJR046TUJFRFRMU19FQ1BfSEFWRV9TRUNQMjU2UjE6TUJFRFRMU19FQ1BfSEFWRV9TRUNQMzg0UjE6TUJFRFRMU19LRVlfRVhDSEFOR0VfRUNESF9SU0FfRU5BQkxFRDpNQkVEVExTX1VTRV9QU0FfQ1JZUFRPOiFNQkVEVExTX0FFU19PTkxZXzEyOF9CSVRfS0VZX0xFTkdUSAorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzM4NDpNQkVEVExTX1NTTF9IQVZFX0FFUzpNQkVEVExTX1NTTF9IQVZFX0NCQzpNQkVEVExTX1JTQV9DOk1CRURUTFNfUEtfQ0FOX0VDRFNBX1ZFUklGWTpNQkVEVExTX1BLX0NBTl9FQ0RTQV9TSUdOOk1CRURUTFNfRUNQX0hBVkVfU0VDUDI1NlIxOk1CRURUTFNfRUNQX0hBVkVfU0VDUDM4NFIxOk1CRURUTFNfS0VZX0VYQ0hBTkdFX0VDREhfUlNBX0VOQUJMRUQ6TUJFRFRMU19VU0VfUFNBX0NSWVBUTzohTUJFRFRMU19BRVNfT05MWV8xMjhfQklUX0tFWV9MRU5HVEgKIGhhbmRzaGFrZV9jaXBoZXJzdWl0ZV9zZWxlY3Q6IlRMUy1FQ0RILVJTQS1XSVRILUFFUy0yNTYtQ0JDLVNIQTM4NCI6TUJFRFRMU19QS19FQ0RTQToiIjpQU0FfQUxHX0VDRFNBKFBTQV9BTEdfQU5ZX0hBU0gpOlBTQV9BTEdfTk9ORTpQU0FfS0VZX1VTQUdFX0RFUklWRTpNQkVEVExTX0VSUl9TU0xfSEFORFNIQUtFX0ZBSUxVUkU6MAogCiBIYW5kc2hha2UsIHNlbGVjdCBFQ0RILVJTQS1XSVRILUFFUy0yNTYtQ0JDLVNIQTM4NCwgb3BhcXVlLCBiYWQgdXNhZ2UKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMzg0Ok1CRURUTFNfU1NMX0hBVkVfQUVTOk1CRURUTFNfU1NMX0hBVkVfQ0JDOk1CRURUTFNfUlNBX0M6TUJFRFRMU19QS19DQU5fRUNEU0FfVkVSSUZZOk1CRURUTFNfUEtfQ0FOX0VDRFNBX1NJR046TUJFRFRMU19FQ1BfSEFWRV9TRUNQMjU2UjE6TUJFRFRMU19FQ1BfSEFWRV9TRUNQMzg0UjE6TUJFRFRMU19LRVlfRVhDSEFOR0VfRUNESF9SU0FfRU5BQkxFRDpNQkVEVExTX1VTRV9QU0FfQ1JZUFRPOiFNQkVEVExTX0FFU19PTkxZXzEyOF9CSVRfS0VZX0xFTkdUSAorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzM4NDpNQkVEVExTX1NTTF9IQVZFX0FFUzpNQkVEVExTX1NTTF9IQVZFX0NCQzpNQkVEVExTX1JTQV9DOk1CRURUTFNfUEtfQ0FOX0VDRFNBX1ZFUklGWTpNQkVEVExTX1BLX0NBTl9FQ0RTQV9TSUdOOk1CRURUTFNfRUNQX0hBVkVfU0VDUDI1NlIxOk1CRURUTFNfRUNQX0hBVkVfU0VDUDM4NFIxOk1CRURUTFNfS0VZX0VYQ0hBTkdFX0VDREhfUlNBX0VOQUJMRUQ6TUJFRFRMU19VU0VfUFNBX0NSWVBUTzohTUJFRFRMU19BRVNfT05MWV8xMjhfQklUX0tFWV9MRU5HVEgKIGhhbmRzaGFrZV9jaXBoZXJzdWl0ZV9zZWxlY3Q6IlRMUy1FQ0RILVJTQS1XSVRILUFFUy0yNTYtQ0JDLVNIQTM4NCI6TUJFRFRMU19QS19FQ0RTQToiIjpQU0FfQUxHX0VDREg6UFNBX0FMR19OT05FOlBTQV9LRVlfVVNBR0VfREVDUllQVDpNQkVEVExTX0VSUl9TU0xfSEFORFNIQUtFX0ZBSUxVUkU6MAogCiBIYW5kc2hha2UsIHNlbGVjdCBFQ0RILUVDRFNBLVdJVEgtQ0FNRUxMSUEtMjU2LUNCQy1TSEEzODQsIG5vbi1vcGFxdWUKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMzg0Ok1CRURUTFNfU1NMX0hBVkVfQ0FNRUxMSUE6TUJFRFRMU19TU0xfSEFWRV9DQkM6TUJFRFRMU19QS19DQU5fRUNEU0FfU09NRTpNQkVEVExTX0VDUF9IQVZFX1NFQ1AyNTZSMTpNQkVEVExTX0VDUF9IQVZFX1NFQ1AzODRSMTpNQkVEVExTX0tFWV9FWENIQU5HRV9FQ0RIX0VDRFNBX0VOQUJMRUQKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8zODQ6TUJFRFRMU19TU0xfSEFWRV9DQU1FTExJQTpNQkVEVExTX1NTTF9IQVZFX0NCQzpNQkVEVExTX1BLX0NBTl9FQ0RTQV9TT01FOk1CRURUTFNfRUNQX0hBVkVfU0VDUDI1NlIxOk1CRURUTFNfRUNQX0hBVkVfU0VDUDM4NFIxOk1CRURUTFNfS0VZX0VYQ0hBTkdFX0VDREhfRUNEU0FfRU5BQkxFRAogaGFuZHNoYWtlX2NpcGhlcnN1aXRlX3NlbGVjdDoiVExTLUVDREgtRUNEU0EtV0lUSC1DQU1FTExJQS0yNTYtQ0JDLVNIQTM4NCI6TUJFRFRMU19QS19FQ0RTQToiIjpQU0FfQUxHX05PTkU6UFNBX0FMR19OT05FOjA6MDpNQkVEVExTX1RMU19FQ0RIX0VDRFNBX1dJVEhfQ0FNRUxMSUFfMjU2X0NCQ19TSEEzODQKIAogSGFuZHNoYWtlLCBzZWxlY3QgRUNESC1FQ0RTQS1XSVRILUNBTUVMTElBLTI1Ni1DQkMtU0hBMzg0LCBvcGFxdWUsIFBTQV9BTEdfQU5ZX0hBU0gKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMzg0Ok1CRURUTFNfU1NMX0hBVkVfQ0FNRUxMSUE6TUJFRFRMU19TU0xfSEFWRV9DQkM6TUJFRFRMU19QS19DQU5fRUNEU0FfU09NRTpNQkVEVExTX0VDUF9IQVZFX1NFQ1AyNTZSMTpNQkVEVExTX0VDUF9IQVZFX1NFQ1AzODRSMTpNQkVEVExTX0tFWV9FWENIQU5HRV9FQ0RIX0VDRFNBX0VOQUJMRUQ6TUJFRFRMU19VU0VfUFNBX0NSWVBUTworZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzM4NDpNQkVEVExTX1NTTF9IQVZFX0NBTUVMTElBOk1CRURUTFNfU1NMX0hBVkVfQ0JDOk1CRURUTFNfUEtfQ0FOX0VDRFNBX1NPTUU6TUJFRFRMU19FQ1BfSEFWRV9TRUNQMjU2UjE6TUJFRFRMU19FQ1BfSEFWRV9TRUNQMzg0UjE6TUJFRFRMU19LRVlfRVhDSEFOR0VfRUNESF9FQ0RTQV9FTkFCTEVEOk1CRURUTFNfVVNFX1BTQV9DUllQVE86TUJFRFRMU19QU0FfQ1JZUFRPX0MKIGhhbmRzaGFrZV9jaXBoZXJzdWl0ZV9zZWxlY3Q6IlRMUy1FQ0RILUVDRFNBLVdJVEgtQ0FNRUxMSUEtMjU2LUNCQy1TSEEzODQiOk1CRURUTFNfUEtfRUNEU0E6IiI6UFNBX0FMR19FQ0RTQShQU0FfQUxHX0FOWV9IQVNIKTpQU0FfQUxHX0VDREg6UFNBX0tFWV9VU0FHRV9TSUdOX0hBU0h8UFNBX0tFWV9VU0FHRV9ERVJJVkU6MDpNQkVEVExTX1RMU19FQ0RIX0VDRFNBX1dJVEhfQ0FNRUxMSUFfMjU2X0NCQ19TSEEzODQKIAogSGFuZHNoYWtlLCBzZWxlY3QgRUNESC1FQ0RTQS1XSVRILUNBTUVMTElBLTI1Ni1DQkMtU0hBMzg0LCBvcGFxdWUsIFBTQV9BTEdfU0hBXzM4NAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEzODQ6TUJFRFRMU19TU0xfSEFWRV9DQU1FTExJQTpNQkVEVExTX1NTTF9IQVZFX0NCQzpNQkVEVExTX1BLX0NBTl9FQ0RTQV9TT01FOk1CRURUTFNfRUNQX0hBVkVfU0VDUDI1NlIxOk1CRURUTFNfRUNQX0hBVkVfU0VDUDM4NFIxOk1CRURUTFNfS0VZX0VYQ0hBTkdFX0VDREhfRUNEU0FfRU5BQkxFRDpNQkVEVExTX1VTRV9QU0FfQ1JZUFRPCitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMzg0Ok1CRURUTFNfU1NMX0hBVkVfQ0FNRUxMSUE6TUJFRFRMU19TU0xfSEFWRV9DQkM6TUJFRFRMU19QS19DQU5fRUNEU0FfU09NRTpNQkVEVExTX0VDUF9IQVZFX1NFQ1AyNTZSMTpNQkVEVExTX0VDUF9IQVZFX1NFQ1AzODRSMTpNQkVEVExTX0tFWV9FWENIQU5HRV9FQ0RIX0VDRFNBX0VOQUJMRUQ6TUJFRFRMU19VU0VfUFNBX0NSWVBUTzpNQkVEVFNMX1BTQV9DUllQVE9fQwogaGFuZHNoYWtlX2NpcGhlcnN1aXRlX3NlbGVjdDoiVExTLUVDREgtRUNEU0EtV0lUSC1DQU1FTExJQS0yNTYtQ0JDLVNIQTM4NCI6TUJFRFRMU19QS19FQ0RTQToiIjpQU0FfQUxHX0VDRFNBKFBTQV9BTEdfU0hBXzM4NCk6UFNBX0FMR19FQ0RIOlBTQV9LRVlfVVNBR0VfU0lHTl9IQVNIfFBTQV9LRVlfVVNBR0VfREVSSVZFOjA6TUJFRFRMU19UTFNfRUNESF9FQ0RTQV9XSVRIX0NBTUVMTElBXzI1Nl9DQkNfU0hBMzg0CiAKIEhhbmRzaGFrZSwgc2VsZWN0IEVDREgtRUNEU0EtV0lUSC1DQU1FTExJQS0yNTYtQ0JDLVNIQTM4NCwgb3BhcXVlLCBtaXNzaW5nIGFsZwotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEzODQ6TUJFRFRMU19TU0xfSEFWRV9DQU1FTExJQTpNQkVEVExTX1NTTF9IQVZFX0NCQzpNQkVEVExTX1BLX0NBTl9FQ0RTQV9TT01FOk1CRURUTFNfRUNQX0hBVkVfU0VDUDI1NlIxOk1CRURUTFNfRUNQX0hBVkVfU0VDUDM4NFIxOk1CRURUTFNfS0VZX0VYQ0hBTkdFX0VDREhfRUNEU0FfRU5BQkxFRDpNQkVEVExTX1VTRV9QU0FfQ1JZUFRPCitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMzg0Ok1CRURUTFNfU1NMX0hBVkVfQ0FNRUxMSUE6TUJFRFRMU19TU0xfSEFWRV9DQkM6TUJFRFRMU19QS19DQU5fRUNEU0FfU09NRTpNQkVEVExTX0VDUF9IQVZFX1NFQ1AyNTZSMTpNQkVEVExTX0VDUF9IQVZFX1NFQ1AzODRSMTpNQkVEVExTX0tFWV9FWENIQU5HRV9FQ0RIX0VDRFNBX0VOQUJMRUQ6TUJFRFRMU19VU0VfUFNBX0NSWVBUTwogaGFuZHNoYWtlX2NpcGhlcnN1aXRlX3NlbGVjdDoiVExTLUVDREgtRUNEU0EtV0lUSC1DQU1FTExJQS0yNTYtQ0JDLVNIQTM4NCI6TUJFRFRMU19QS19FQ0RTQToiIjpQU0FfQUxHX0VDRFNBKFBTQV9BTEdfQU5ZX0hBU0gpOlBTQV9BTEdfTk9ORTpQU0FfS0VZX1VTQUdFX1NJR05fSEFTSHxQU0FfS0VZX1VTQUdFX0RFUklWRTpNQkVEVExTX0VSUl9TU0xfSEFORFNIQUtFX0ZBSUxVUkU6MAogCiBIYW5kc2hha2UsIHNlbGVjdCBFQ0RILUVDRFNBLVdJVEgtQ0FNRUxMSUEtMjU2LUNCQy1TSEEzODQsIG9wYXF1ZSwgbWlzc2luZyB1c2FnZQotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEzODQ6TUJFRFRMU19TU0xfSEFWRV9DQU1FTExJQTpNQkVEVExTX1NTTF9IQVZFX0NCQzpNQkVEVExTX1BLX0NBTl9FQ0RTQV9TT01FOk1CRURUTFNfRUNQX0hBVkVfU0VDUDI1NlIxOk1CRURUTFNfRUNQX0hBVkVfU0VDUDM4NFIxOk1CRURUTFNfS0VZX0VYQ0hBTkdFX0VDREhfRUNEU0FfRU5BQkxFRDpNQkVEVExTX1VTRV9QU0FfQ1JZUFRPCitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMzg0Ok1CRURUTFNfU1NMX0hBVkVfQ0FNRUxMSUE6TUJFRFRMU19TU0xfSEFWRV9DQkM6TUJFRFRMU19QS19DQU5fRUNEU0FfU09NRTpNQkVEVExTX0VDUF9IQVZFX1NFQ1AyNTZSMTpNQkVEVExTX0VDUF9IQVZFX1NFQ1AzODRSMTpNQkVEVExTX0tFWV9FWENIQU5HRV9FQ0RIX0VDRFNBX0VOQUJMRUQ6TUJFRFRMU19VU0VfUFNBX0NSWVBUTwogaGFuZHNoYWtlX2NpcGhlcnN1aXRlX3NlbGVjdDoiVExTLUVDREgtRUNEU0EtV0lUSC1DQU1FTExJQS0yNTYtQ0JDLVNIQTM4NCI6TUJFRFRMU19QS19FQ0RTQToiIjpQU0FfQUxHX0VDRFNBKFBTQV9BTEdfQU5ZX0hBU0gpOlBTQV9BTEdfRUNESDpQU0FfS0VZX1VTQUdFX1NJR05fSEFTSDpNQkVEVExTX0VSUl9TU0xfSEFORFNIQUtFX0ZBSUxVUkU6MAogCiBTZW5kaW5nIGFwcCBkYXRhIHZpYSBUTFMsIE1GTD01MTIgd2l0aG91dCBmcmFnbWVudGF0aW9uCkBAIC03MTAsNTEgKzcxMCw1MSBAQAogcmVzaXplX2J1ZmZlcnNfcmVuZWdvdGlhdGVfbWZsOk1CRURUTFNfU1NMX01BWF9GUkFHX0xFTl80MDk2Ok1CRURUTFNfU1NMX0xFR0FDWV9CUkVBS19IQU5EU0hBS0U6IiIKIAogRFRMUyBubyBsZWdhY3kgcmVuZWdvdGlhdGlvbiB3aXRoIE1GTD01MTIsIEVDREhFLVJTQS1XSVRILUFFUy0yNTYtR0NNLVNIQTM4NAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEzODQ6TUJFRFRMU19TU0xfSEFWRV9BRVM6TUJFRFRMU19TU0xfSEFWRV9HQ006TUJFRFRMU19LRVlfRVhDSEFOR0VfRUNESEVfUlNBX0VOQUJMRUQ6IU1CRURUTFNfQUVTX09OTFlfMTI4X0JJVF9LRVlfTEVOR1RICitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMzg0Ok1CRURUTFNfU1NMX0hBVkVfQUVTOk1CRURUTFNfU1NMX0hBVkVfR0NNOk1CRURUTFNfS0VZX0VYQ0hBTkdFX0VDREhFX1JTQV9FTkFCTEVEOiFNQkVEVExTX0FFU19PTkxZXzEyOF9CSVRfS0VZX0xFTkdUSAogcmVzaXplX2J1ZmZlcnNfcmVuZWdvdGlhdGVfbWZsOk1CRURUTFNfU1NMX01BWF9GUkFHX0xFTl81MTI6TUJFRFRMU19TU0xfTEVHQUNZX05PX1JFTkVHT1RJQVRJT046IlRMUy1FQ0RIRS1SU0EtV0lUSC1BRVMtMjU2LUdDTS1TSEEzODQiCiAKIERUTFMgbm8gbGVnYWN5IHJlbmVnb3RpYXRpb24gd2l0aCBNRkw9MTAyNCwgRUNESEUtUlNBLVdJVEgtQUVTLTI1Ni1HQ00tU0hBMzg0Ci1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTM4NDpNQkVEVExTX1NTTF9IQVZFX0FFUzpNQkVEVExTX1NTTF9IQVZFX0dDTTpNQkVEVExTX0tFWV9FWENIQU5HRV9FQ0RIRV9SU0FfRU5BQkxFRDohTUJFRFRMU19BRVNfT05MWV8xMjhfQklUX0tFWV9MRU5HVEgKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8zODQ6TUJFRFRMU19TU0xfSEFWRV9BRVM6TUJFRFRMU19TU0xfSEFWRV9HQ006TUJFRFRMU19LRVlfRVhDSEFOR0VfRUNESEVfUlNBX0VOQUJMRUQ6IU1CRURUTFNfQUVTX09OTFlfMTI4X0JJVF9LRVlfTEVOR1RICiByZXNpemVfYnVmZmVyc19yZW5lZ290aWF0ZV9tZmw6TUJFRFRMU19TU0xfTUFYX0ZSQUdfTEVOXzEwMjQ6TUJFRFRMU19TU0xfTEVHQUNZX05PX1JFTkVHT1RJQVRJT046IlRMUy1FQ0RIRS1SU0EtV0lUSC1BRVMtMjU2LUdDTS1TSEEzODQiCiAKIERUTFMgbm8gbGVnYWN5IHJlbmVnb3RpYXRpb24gd2l0aCBNRkw9MjA0OCwgRUNESEUtUlNBLVdJVEgtQUVTLTI1Ni1HQ00tU0hBMzg0Ci1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTM4NDpNQkVEVExTX1NTTF9IQVZFX0FFUzpNQkVEVExTX1NTTF9IQVZFX0dDTTpNQkVEVExTX0tFWV9FWENIQU5HRV9FQ0RIRV9SU0FfRU5BQkxFRDohTUJFRFRMU19BRVNfT05MWV8xMjhfQklUX0tFWV9MRU5HVEgKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8zODQ6TUJFRFRMU19TU0xfSEFWRV9BRVM6TUJFRFRMU19TU0xfSEFWRV9HQ006TUJFRFRMU19LRVlfRVhDSEFOR0VfRUNESEVfUlNBX0VOQUJMRUQ6IU1CRURUTFNfQUVTX09OTFlfMTI4X0JJVF9LRVlfTEVOR1RICiByZXNpemVfYnVmZmVyc19yZW5lZ290aWF0ZV9tZmw6TUJFRFRMU19TU0xfTUFYX0ZSQUdfTEVOXzIwNDg6TUJFRFRMU19TU0xfTEVHQUNZX05PX1JFTkVHT1RJQVRJT046IlRMUy1FQ0RIRS1SU0EtV0lUSC1BRVMtMjU2LUdDTS1TSEEzODQiCiAKIERUTFMgbm8gbGVnYWN5IHJlbmVnb3RpYXRpb24gd2l0aCBNRkw9NDA5NiwgRUNESEUtUlNBLVdJVEgtQUVTLTI1Ni1HQ00tU0hBMzg0Ci1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTM4NDpNQkVEVExTX1NTTF9IQVZFX0FFUzpNQkVEVExTX1NTTF9IQVZFX0dDTTpNQkVEVExTX0tFWV9FWENIQU5HRV9FQ0RIRV9SU0FfRU5BQkxFRDohTUJFRFRMU19BRVNfT05MWV8xMjhfQklUX0tFWV9MRU5HVEgKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8zODQ6TUJFRFRMU19TU0xfSEFWRV9BRVM6TUJFRFRMU19TU0xfSEFWRV9HQ006TUJFRFRMU19LRVlfRVhDSEFOR0VfRUNESEVfUlNBX0VOQUJMRUQ6IU1CRURUTFNfQUVTX09OTFlfMTI4X0JJVF9LRVlfTEVOR1RICiByZXNpemVfYnVmZmVyc19yZW5lZ290aWF0ZV9tZmw6TUJFRFRMU19TU0xfTUFYX0ZSQUdfTEVOXzQwOTY6TUJFRFRMU19TU0xfTEVHQUNZX05PX1JFTkVHT1RJQVRJT046IlRMUy1FQ0RIRS1SU0EtV0lUSC1BRVMtMjU2LUdDTS1TSEEzODQiCiAKIERUTFMgbGVnYWN5IGFsbG93IHJlbmVnb3RpYXRpb24gd2l0aCBNRkw9NTEyLCBFQ0RIRS1SU0EtV0lUSC1BRVMtMjU2LUdDTS1TSEEzODQKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMzg0Ok1CRURUTFNfU1NMX0hBVkVfQUVTOk1CRURUTFNfU1NMX0hBVkVfR0NNOk1CRURUTFNfS0VZX0VYQ0hBTkdFX0VDREhFX1JTQV9FTkFCTEVEOiFNQkVEVExTX0FFU19PTkxZXzEyOF9CSVRfS0VZX0xFTkdUSAorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzM4NDpNQkVEVExTX1NTTF9IQVZFX0FFUzpNQkVEVExTX1NTTF9IQVZFX0dDTTpNQkVEVExTX0tFWV9FWENIQU5HRV9FQ0RIRV9SU0FfRU5BQkxFRDohTUJFRFRMU19BRVNfT05MWV8xMjhfQklUX0tFWV9MRU5HVEgKIHJlc2l6ZV9idWZmZXJzX3JlbmVnb3RpYXRlX21mbDpNQkVEVExTX1NTTF9NQVhfRlJBR19MRU5fNTEyOk1CRURUTFNfU1NMX0xFR0FDWV9BTExPV19SRU5FR09USUFUSU9OOiJUTFMtRUNESEUtUlNBLVdJVEgtQUVTLTI1Ni1HQ00tU0hBMzg0IgogCiBEVExTIGxlZ2FjeSBhbGxvdyByZW5lZ290aWF0aW9uIHdpdGggTUZMPTEwMjQsIEVDREhFLVJTQS1XSVRILUFFUy0yNTYtR0NNLVNIQTM4NAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEzODQ6TUJFRFRMU19TU0xfSEFWRV9BRVM6TUJFRFRMU19TU0xfSEFWRV9HQ006TUJFRFRMU19LRVlfRVhDSEFOR0VfRUNESEVfUlNBX0VOQUJMRUQ6IU1CRURUTFNfQUVTX09OTFlfMTI4X0JJVF9LRVlfTEVOR1RICitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMzg0Ok1CRURUTFNfU1NMX0hBVkVfQUVTOk1CRURUTFNfU1NMX0hBVkVfR0NNOk1CRURUTFNfS0VZX0VYQ0hBTkdFX0VDREhFX1JTQV9FTkFCTEVEOiFNQkVEVExTX0FFU19PTkxZXzEyOF9CSVRfS0VZX0xFTkdUSAogcmVzaXplX2J1ZmZlcnNfcmVuZWdvdGlhdGVfbWZsOk1CRURUTFNfU1NMX01BWF9GUkFHX0xFTl8xMDI0Ok1CRURUTFNfU1NMX0xFR0FDWV9BTExPV19SRU5FR09USUFUSU9OOiJUTFMtRUNESEUtUlNBLVdJVEgtQUVTLTI1Ni1HQ00tU0hBMzg0IgogCiBEVExTIGxlZ2FjeSBhbGxvdyByZW5lZ290aWF0aW9uIHdpdGggTUZMPTIwNDgsIEVDREhFLVJTQS1XSVRILUFFUy0yNTYtR0NNLVNIQTM4NAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEzODQ6TUJFRFRMU19TU0xfSEFWRV9BRVM6TUJFRFRMU19TU0xfSEFWRV9HQ006TUJFRFRMU19LRVlfRVhDSEFOR0VfRUNESEVfUlNBX0VOQUJMRUQ6IU1CRURUTFNfQUVTX09OTFlfMTI4X0JJVF9LRVlfTEVOR1RICitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMzg0Ok1CRURUTFNfU1NMX0hBVkVfQUVTOk1CRURUTFNfU1NMX0hBVkVfR0NNOk1CRURUTFNfS0VZX0VYQ0hBTkdFX0VDREhFX1JTQV9FTkFCTEVEOiFNQkVEVExTX0FFU19PTkxZXzEyOF9CSVRfS0VZX0xFTkdUSAogcmVzaXplX2J1ZmZlcnNfcmVuZWdvdGlhdGVfbWZsOk1CRURUTFNfU1NMX01BWF9GUkFHX0xFTl8yMDQ4Ok1CRURUTFNfU1NMX0xFR0FDWV9BTExPV19SRU5FR09USUFUSU9OOiJUTFMtRUNESEUtUlNBLVdJVEgtQUVTLTI1Ni1HQ00tU0hBMzg0IgogCiBEVExTIGxlZ2FjeSBhbGxvdyByZW5lZ290aWF0aW9uIHdpdGggTUZMPTQwOTYsIEVDREhFLVJTQS1XSVRILUFFUy0yNTYtR0NNLVNIQTM4NAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEzODQ6TUJFRFRMU19TU0xfSEFWRV9BRVM6TUJFRFRMU19TU0xfSEFWRV9HQ006TUJFRFRMU19LRVlfRVhDSEFOR0VfRUNESEVfUlNBX0VOQUJMRUQ6IU1CRURUTFNfQUVTX09OTFlfMTI4X0JJVF9LRVlfTEVOR1RICitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMzg0Ok1CRURUTFNfU1NMX0hBVkVfQUVTOk1CRURUTFNfU1NMX0hBVkVfR0NNOk1CRURUTFNfS0VZX0VYQ0hBTkdFX0VDREhFX1JTQV9FTkFCTEVEOiFNQkVEVExTX0FFU19PTkxZXzEyOF9CSVRfS0VZX0xFTkdUSAogcmVzaXplX2J1ZmZlcnNfcmVuZWdvdGlhdGVfbWZsOk1CRURUTFNfU1NMX01BWF9GUkFHX0xFTl80MDk2Ok1CRURUTFNfU1NMX0xFR0FDWV9BTExPV19SRU5FR09USUFUSU9OOiJUTFMtRUNESEUtUlNBLVdJVEgtQUVTLTI1Ni1HQ00tU0hBMzg0IgogCiBEVExTIGxlZ2FjeSBicmVhayBoYW5kc2hha2UgcmVuZWdvdGlhdGlvbiB3aXRoIE1GTD01MTIsIEVDREhFLVJTQS1XSVRILUFFUy0yNTYtR0NNLVNIQTM4NAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEzODQ6TUJFRFRMU19TU0xfSEFWRV9BRVM6TUJFRFRMU19TU0xfSEFWRV9HQ006TUJFRFRMU19LRVlfRVhDSEFOR0VfRUNESEVfUlNBX0VOQUJMRUQ6IU1CRURUTFNfQUVTX09OTFlfMTI4X0JJVF9LRVlfTEVOR1RICitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMzg0Ok1CRURUTFNfU1NMX0hBVkVfQUVTOk1CRURUTFNfU1NMX0hBVkVfR0NNOk1CRURUTFNfS0VZX0VYQ0hBTkdFX0VDREhFX1JTQV9FTkFCTEVEOiFNQkVEVExTX0FFU19PTkxZXzEyOF9CSVRfS0VZX0xFTkdUSAogcmVzaXplX2J1ZmZlcnNfcmVuZWdvdGlhdGVfbWZsOk1CRURUTFNfU1NMX01BWF9GUkFHX0xFTl81MTI6TUJFRFRMU19TU0xfTEVHQUNZX0JSRUFLX0hBTkRTSEFLRToiVExTLUVDREhFLVJTQS1XSVRILUFFUy0yNTYtR0NNLVNIQTM4NCIKIAogRFRMUyBsZWdhY3kgYnJlYWsgaGFuZHNoYWtlIHJlbmVnb3RpYXRpb24gd2l0aCBNRkw9MTAyNCwgRUNESEUtUlNBLVdJVEgtQUVTLTI1Ni1HQ00tU0hBMzg0Ci1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTM4NDpNQkVEVExTX1NTTF9IQVZFX0FFUzpNQkVEVExTX1NTTF9IQVZFX0dDTTpNQkVEVExTX0tFWV9FWENIQU5HRV9FQ0RIRV9SU0FfRU5BQkxFRDohTUJFRFRMU19BRVNfT05MWV8xMjhfQklUX0tFWV9MRU5HVEgKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8zODQ6TUJFRFRMU19TU0xfSEFWRV9BRVM6TUJFRFRMU19TU0xfSEFWRV9HQ006TUJFRFRMU19LRVlfRVhDSEFOR0VfRUNESEVfUlNBX0VOQUJMRUQ6IU1CRURUTFNfQUVTX09OTFlfMTI4X0JJVF9LRVlfTEVOR1RICiByZXNpemVfYnVmZmVyc19yZW5lZ290aWF0ZV9tZmw6TUJFRFRMU19TU0xfTUFYX0ZSQUdfTEVOXzEwMjQ6TUJFRFRMU19TU0xfTEVHQUNZX0JSRUFLX0hBTkRTSEFLRToiVExTLUVDREhFLVJTQS1XSVRILUFFUy0yNTYtR0NNLVNIQTM4NCIKIAogRFRMUyBsZWdhY3kgYnJlYWsgaGFuZHNoYWtlIHJlbmVnb3RpYXRpb24gd2l0aCBNRkw9MjA0OCwgRUNESEUtUlNBLVdJVEgtQUVTLTI1Ni1HQ00tU0hBMzg0Ci1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTM4NDpNQkVEVExTX1NTTF9IQVZFX0FFUzpNQkVEVExTX1NTTF9IQVZFX0dDTTpNQkVEVExTX0tFWV9FWENIQU5HRV9FQ0RIRV9SU0FfRU5BQkxFRDohTUJFRFRMU19BRVNfT05MWV8xMjhfQklUX0tFWV9MRU5HVEgKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8zODQ6TUJFRFRMU19TU0xfSEFWRV9BRVM6TUJFRFRMU19TU0xfSEFWRV9HQ006TUJFRFRMU19LRVlfRVhDSEFOR0VfRUNESEVfUlNBX0VOQUJMRUQ6IU1CRURUTFNfQUVTX09OTFlfMTI4X0JJVF9LRVlfTEVOR1RICiByZXNpemVfYnVmZmVyc19yZW5lZ290aWF0ZV9tZmw6TUJFRFRMU19TU0xfTUFYX0ZSQUdfTEVOXzIwNDg6TUJFRFRMU19TU0xfTEVHQUNZX0JSRUFLX0hBTkRTSEFLRToiVExTLUVDREhFLVJTQS1XSVRILUFFUy0yNTYtR0NNLVNIQTM4NCIKIAogRFRMUyBsZWdhY3kgYnJlYWsgaGFuZHNoYWtlIHJlbmVnb3RpYXRpb24gd2l0aCBNRkw9NDA5NiwgRUNESEUtUlNBLVdJVEgtQUVTLTI1Ni1HQ00tU0hBMzg0Ci1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTM4NDpNQkVEVExTX1NTTF9IQVZFX0FFUzpNQkVEVExTX1NTTF9IQVZFX0dDTTpNQkVEVExTX0tFWV9FWENIQU5HRV9FQ0RIRV9SU0FfRU5BQkxFRDohTUJFRFRMU19BRVNfT05MWV8xMjhfQklUX0tFWV9MRU5HVEgKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8zODQ6TUJFRFRMU19TU0xfSEFWRV9BRVM6TUJFRFRMU19TU0xfSEFWRV9HQ006TUJFRFRMU19LRVlfRVhDSEFOR0VfRUNESEVfUlNBX0VOQUJMRUQ6IU1CRURUTFNfQUVTX09OTFlfMTI4X0JJVF9LRVlfTEVOR1RICiByZXNpemVfYnVmZmVyc19yZW5lZ290aWF0ZV9tZmw6TUJFRFRMU19TU0xfTUFYX0ZSQUdfTEVOXzQwOTY6TUJFRFRMU19TU0xfTEVHQUNZX0JSRUFLX0hBTkRTSEFLRToiVExTLUVDREhFLVJTQS1XSVRILUFFUy0yNTYtR0NNLVNIQTM4NCIKIAogRFRMUyBubyBsZWdhY3kgcmVuZWdvdGlhdGlvbiB3aXRoIE1GTD01MTIsIFJTQS1XSVRILUFFUy0xMjgtQ0NNCkBAIC04MDYsNTEgKzgwNiw1MSBAQAogcmVzaXplX2J1ZmZlcnNfcmVuZWdvdGlhdGVfbWZsOk1CRURUTFNfU1NMX01BWF9GUkFHX0xFTl80MDk2Ok1CRURUTFNfU1NMX0xFR0FDWV9CUkVBS19IQU5EU0hBS0U6IlRMUy1SU0EtV0lUSC1BRVMtMTI4LUNDTSIKIAogRFRMUyBubyBsZWdhY3kgcmVuZWdvdGlhdGlvbiB3aXRoIE1GTD01MTIsIERIRS1SU0EtV0lUSC1BRVMtMjU2LUNCQy1TSEEyNTYKLWRlcGVuZHNfb246TUJFRFRMU19TU0xfSEFWRV9BRVM6TUJFRFRMU19TU0xfSEFWRV9DQkM6TUJFRFRMU19NRF9DQU5fU0hBMjU2Ok1CRURUTFNfS0VZX0VYQ0hBTkdFX0RIRV9SU0FfRU5BQkxFRDohTUJFRFRMU19BRVNfT05MWV8xMjhfQklUX0tFWV9MRU5HVEgKK2RlcGVuZHNfb246TUJFRFRMU19TU0xfSEFWRV9BRVM6TUJFRFRMU19TU0xfSEFWRV9DQkM6UFNBX1dBTlRfQUxHX1NIQV8yNTY6TUJFRFRMU19LRVlfRVhDSEFOR0VfREhFX1JTQV9FTkFCTEVEOiFNQkVEVExTX0FFU19PTkxZXzEyOF9CSVRfS0VZX0xFTkdUSAogcmVzaXplX2J1ZmZlcnNfcmVuZWdvdGlhdGVfbWZsOk1CRURUTFNfU1NMX01BWF9GUkFHX0xFTl81MTI6TUJFRFRMU19TU0xfTEVHQUNZX05PX1JFTkVHT1RJQVRJT046IlRMUy1ESEUtUlNBLVdJVEgtQUVTLTI1Ni1DQkMtU0hBMjU2IgogCiBEVExTIG5vIGxlZ2FjeSByZW5lZ290aWF0aW9uIHdpdGggTUZMPTEwMjQsIERIRS1SU0EtV0lUSC1BRVMtMjU2LUNCQy1TSEEyNTYKLWRlcGVuZHNfb246TUJFRFRMU19TU0xfSEFWRV9BRVM6TUJFRFRMU19TU0xfSEFWRV9DQkM6TUJFRFRMU19NRF9DQU5fU0hBMjU2Ok1CRURUTFNfS0VZX0VYQ0hBTkdFX0RIRV9SU0FfRU5BQkxFRDohTUJFRFRMU19BRVNfT05MWV8xMjhfQklUX0tFWV9MRU5HVEgKK2RlcGVuZHNfb246TUJFRFRMU19TU0xfSEFWRV9BRVM6TUJFRFRMU19TU0xfSEFWRV9DQkM6UFNBX1dBTlRfQUxHX1NIQV8yNTY6TUJFRFRMU19LRVlfRVhDSEFOR0VfREhFX1JTQV9FTkFCTEVEOiFNQkVEVExTX0FFU19PTkxZXzEyOF9CSVRfS0VZX0xFTkdUSAogcmVzaXplX2J1ZmZlcnNfcmVuZWdvdGlhdGVfbWZsOk1CRURUTFNfU1NMX01BWF9GUkFHX0xFTl8xMDI0Ok1CRURUTFNfU1NMX0xFR0FDWV9OT19SRU5FR09USUFUSU9OOiJUTFMtREhFLVJTQS1XSVRILUFFUy0yNTYtQ0JDLVNIQTI1NiIKIAogRFRMUyBubyBsZWdhY3kgcmVuZWdvdGlhdGlvbiB3aXRoIE1GTD0yMDQ4LCBESEUtUlNBLVdJVEgtQUVTLTI1Ni1DQkMtU0hBMjU2Ci1kZXBlbmRzX29uOk1CRURUTFNfU1NMX0hBVkVfQUVTOk1CRURUTFNfU1NMX0hBVkVfQ0JDOk1CRURUTFNfTURfQ0FOX1NIQTI1NjpNQkVEVExTX0tFWV9FWENIQU5HRV9ESEVfUlNBX0VOQUJMRUQ6IU1CRURUTFNfQUVTX09OTFlfMTI4X0JJVF9LRVlfTEVOR1RICitkZXBlbmRzX29uOk1CRURUTFNfU1NMX0hBVkVfQUVTOk1CRURUTFNfU1NMX0hBVkVfQ0JDOlBTQV9XQU5UX0FMR19TSEFfMjU2Ok1CRURUTFNfS0VZX0VYQ0hBTkdFX0RIRV9SU0FfRU5BQkxFRDohTUJFRFRMU19BRVNfT05MWV8xMjhfQklUX0tFWV9MRU5HVEgKIHJlc2l6ZV9idWZmZXJzX3JlbmVnb3RpYXRlX21mbDpNQkVEVExTX1NTTF9NQVhfRlJBR19MRU5fMjA0ODpNQkVEVExTX1NTTF9MRUdBQ1lfTk9fUkVORUdPVElBVElPTjoiVExTLURIRS1SU0EtV0lUSC1BRVMtMjU2LUNCQy1TSEEyNTYiCiAKIERUTFMgbm8gbGVnYWN5IHJlbmVnb3RpYXRpb24gd2l0aCBNRkw9NDA5NiwgREhFLVJTQS1XSVRILUFFUy0yNTYtQ0JDLVNIQTI1NgotZGVwZW5kc19vbjpNQkVEVExTX1NTTF9IQVZFX0FFUzpNQkVEVExTX1NTTF9IQVZFX0NCQzpNQkVEVExTX01EX0NBTl9TSEEyNTY6TUJFRFRMU19LRVlfRVhDSEFOR0VfREhFX1JTQV9FTkFCTEVEOiFNQkVEVExTX0FFU19PTkxZXzEyOF9CSVRfS0VZX0xFTkdUSAorZGVwZW5kc19vbjpNQkVEVExTX1NTTF9IQVZFX0FFUzpNQkVEVExTX1NTTF9IQVZFX0NCQzpQU0FfV0FOVF9BTEdfU0hBXzI1NjpNQkVEVExTX0tFWV9FWENIQU5HRV9ESEVfUlNBX0VOQUJMRUQ6IU1CRURUTFNfQUVTX09OTFlfMTI4X0JJVF9LRVlfTEVOR1RICiByZXNpemVfYnVmZmVyc19yZW5lZ290aWF0ZV9tZmw6TUJFRFRMU19TU0xfTUFYX0ZSQUdfTEVOXzQwOTY6TUJFRFRMU19TU0xfTEVHQUNZX05PX1JFTkVHT1RJQVRJT046IlRMUy1ESEUtUlNBLVdJVEgtQUVTLTI1Ni1DQkMtU0hBMjU2IgogCiBEVExTIGxlZ2FjeSBhbGxvdyByZW5lZ290aWF0aW9uIHdpdGggTUZMPTUxMiwgREhFLVJTQS1XSVRILUFFUy0yNTYtQ0JDLVNIQTI1NgotZGVwZW5kc19vbjpNQkVEVExTX1NTTF9IQVZFX0FFUzpNQkVEVExTX1NTTF9IQVZFX0NCQzpNQkVEVExTX01EX0NBTl9TSEEyNTY6TUJFRFRMU19LRVlfRVhDSEFOR0VfREhFX1JTQV9FTkFCTEVEOiFNQkVEVExTX0FFU19PTkxZXzEyOF9CSVRfS0VZX0xFTkdUSAorZGVwZW5kc19vbjpNQkVEVExTX1NTTF9IQVZFX0FFUzpNQkVEVExTX1NTTF9IQVZFX0NCQzpQU0FfV0FOVF9BTEdfU0hBXzI1NjpNQkVEVExTX0tFWV9FWENIQU5HRV9ESEVfUlNBX0VOQUJMRUQ6IU1CRURUTFNfQUVTX09OTFlfMTI4X0JJVF9LRVlfTEVOR1RICiByZXNpemVfYnVmZmVyc19yZW5lZ290aWF0ZV9tZmw6TUJFRFRMU19TU0xfTUFYX0ZSQUdfTEVOXzUxMjpNQkVEVExTX1NTTF9MRUdBQ1lfQUxMT1dfUkVORUdPVElBVElPTjoiVExTLURIRS1SU0EtV0lUSC1BRVMtMjU2LUNCQy1TSEEyNTYiCiAKIERUTFMgbGVnYWN5IGFsbG93IHJlbmVnb3RpYXRpb24gd2l0aCBNRkw9MTAyNCwgREhFLVJTQS1XSVRILUFFUy0yNTYtQ0JDLVNIQTI1NgotZGVwZW5kc19vbjpNQkVEVExTX1NTTF9IQVZFX0FFUzpNQkVEVExTX1NTTF9IQVZFX0NCQzpNQkVEVExTX01EX0NBTl9TSEEyNTY6TUJFRFRMU19LRVlfRVhDSEFOR0VfREhFX1JTQV9FTkFCTEVEOiFNQkVEVExTX0FFU19PTkxZXzEyOF9CSVRfS0VZX0xFTkdUSAorZGVwZW5kc19vbjpNQkVEVExTX1NTTF9IQVZFX0FFUzpNQkVEVExTX1NTTF9IQVZFX0NCQzpQU0FfV0FOVF9BTEdfU0hBXzI1NjpNQkVEVExTX0tFWV9FWENIQU5HRV9ESEVfUlNBX0VOQUJMRUQ6IU1CRURUTFNfQUVTX09OTFlfMTI4X0JJVF9LRVlfTEVOR1RICiByZXNpemVfYnVmZmVyc19yZW5lZ290aWF0ZV9tZmw6TUJFRFRMU19TU0xfTUFYX0ZSQUdfTEVOXzEwMjQ6TUJFRFRMU19TU0xfTEVHQUNZX0FMTE9XX1JFTkVHT1RJQVRJT046IlRMUy1ESEUtUlNBLVdJVEgtQUVTLTI1Ni1DQkMtU0hBMjU2IgogCiBEVExTIGxlZ2FjeSBhbGxvdyByZW5lZ290aWF0aW9uIHdpdGggTUZMPTIwNDgsIERIRS1SU0EtV0lUSC1BRVMtMjU2LUNCQy1TSEEyNTYKLWRlcGVuZHNfb246TUJFRFRMU19TU0xfSEFWRV9BRVM6TUJFRFRMU19TU0xfSEFWRV9DQkM6TUJFRFRMU19NRF9DQU5fU0hBMjU2Ok1CRURUTFNfS0VZX0VYQ0hBTkdFX0RIRV9SU0FfRU5BQkxFRDohTUJFRFRMU19BRVNfT05MWV8xMjhfQklUX0tFWV9MRU5HVEgKK2RlcGVuZHNfb246TUJFRFRMU19TU0xfSEFWRV9BRVM6TUJFRFRMU19TU0xfSEFWRV9DQkM6UFNBX1dBTlRfQUxHX1NIQV8yNTY6TUJFRFRMU19LRVlfRVhDSEFOR0VfREhFX1JTQV9FTkFCTEVEOiFNQkVEVExTX0FFU19PTkxZXzEyOF9CSVRfS0VZX0xFTkdUSAogcmVzaXplX2J1ZmZlcnNfcmVuZWdvdGlhdGVfbWZsOk1CRURUTFNfU1NMX01BWF9GUkFHX0xFTl8yMDQ4Ok1CRURUTFNfU1NMX0xFR0FDWV9BTExPV19SRU5FR09USUFUSU9OOiJUTFMtREhFLVJTQS1XSVRILUFFUy0yNTYtQ0JDLVNIQTI1NiIKIAogRFRMUyBsZWdhY3kgYWxsb3cgcmVuZWdvdGlhdGlvbiB3aXRoIE1GTD00MDk2LCBESEUtUlNBLVdJVEgtQUVTLTI1Ni1DQkMtU0hBMjU2Ci1kZXBlbmRzX29uOk1CRURUTFNfU1NMX0hBVkVfQUVTOk1CRURUTFNfU1NMX0hBVkVfQ0JDOk1CRURUTFNfTURfQ0FOX1NIQTI1NjpNQkVEVExTX0tFWV9FWENIQU5HRV9ESEVfUlNBX0VOQUJMRUQ6IU1CRURUTFNfQUVTX09OTFlfMTI4X0JJVF9LRVlfTEVOR1RICitkZXBlbmRzX29uOk1CRURUTFNfU1NMX0hBVkVfQUVTOk1CRURUTFNfU1NMX0hBVkVfQ0JDOlBTQV9XQU5UX0FMR19TSEFfMjU2Ok1CRURUTFNfS0VZX0VYQ0hBTkdFX0RIRV9SU0FfRU5BQkxFRDohTUJFRFRMU19BRVNfT05MWV8xMjhfQklUX0tFWV9MRU5HVEgKIHJlc2l6ZV9idWZmZXJzX3JlbmVnb3RpYXRlX21mbDpNQkVEVExTX1NTTF9NQVhfRlJBR19MRU5fNDA5NjpNQkVEVExTX1NTTF9MRUdBQ1lfQUxMT1dfUkVORUdPVElBVElPTjoiVExTLURIRS1SU0EtV0lUSC1BRVMtMjU2LUNCQy1TSEEyNTYiCiAKIERUTFMgbGVnYWN5IGJyZWFrIGhhbmRzaGFrZSByZW5lZ290aWF0aW9uIHdpdGggTUZMPTUxMiwgREhFLVJTQS1XSVRILUFFUy0yNTYtQ0JDLVNIQTI1NgotZGVwZW5kc19vbjpNQkVEVExTX1NTTF9IQVZFX0FFUzpNQkVEVExTX1NTTF9IQVZFX0NCQzpNQkVEVExTX01EX0NBTl9TSEEyNTY6TUJFRFRMU19LRVlfRVhDSEFOR0VfREhFX1JTQV9FTkFCTEVEOiFNQkVEVExTX0FFU19PTkxZXzEyOF9CSVRfS0VZX0xFTkdUSAorZGVwZW5kc19vbjpNQkVEVExTX1NTTF9IQVZFX0FFUzpNQkVEVExTX1NTTF9IQVZFX0NCQzpQU0FfV0FOVF9BTEdfU0hBXzI1NjpNQkVEVExTX0tFWV9FWENIQU5HRV9ESEVfUlNBX0VOQUJMRUQ6IU1CRURUTFNfQUVTX09OTFlfMTI4X0JJVF9LRVlfTEVOR1RICiByZXNpemVfYnVmZmVyc19yZW5lZ290aWF0ZV9tZmw6TUJFRFRMU19TU0xfTUFYX0ZSQUdfTEVOXzUxMjpNQkVEVExTX1NTTF9MRUdBQ1lfQlJFQUtfSEFORFNIQUtFOiJUTFMtREhFLVJTQS1XSVRILUFFUy0yNTYtQ0JDLVNIQTI1NiIKIAogRFRMUyBsZWdhY3kgYnJlYWsgaGFuZHNoYWtlIHJlbmVnb3RpYXRpb24gd2l0aCBNRkw9MTAyNCwgREhFLVJTQS1XSVRILUFFUy0yNTYtQ0JDLVNIQTI1NgotZGVwZW5kc19vbjpNQkVEVExTX1NTTF9IQVZFX0FFUzpNQkVEVExTX1NTTF9IQVZFX0NCQzpNQkVEVExTX01EX0NBTl9TSEEyNTY6TUJFRFRMU19LRVlfRVhDSEFOR0VfREhFX1JTQV9FTkFCTEVEOiFNQkVEVExTX0FFU19PTkxZXzEyOF9CSVRfS0VZX0xFTkdUSAorZGVwZW5kc19vbjpNQkVEVExTX1NTTF9IQVZFX0FFUzpNQkVEVExTX1NTTF9IQVZFX0NCQzpQU0FfV0FOVF9BTEdfU0hBXzI1NjpNQkVEVExTX0tFWV9FWENIQU5HRV9ESEVfUlNBX0VOQUJMRUQ6IU1CRURUTFNfQUVTX09OTFlfMTI4X0JJVF9LRVlfTEVOR1RICiByZXNpemVfYnVmZmVyc19yZW5lZ290aWF0ZV9tZmw6TUJFRFRMU19TU0xfTUFYX0ZSQUdfTEVOXzEwMjQ6TUJFRFRMU19TU0xfTEVHQUNZX0JSRUFLX0hBTkRTSEFLRToiVExTLURIRS1SU0EtV0lUSC1BRVMtMjU2LUNCQy1TSEEyNTYiCiAKIERUTFMgbGVnYWN5IGJyZWFrIGhhbmRzaGFrZSByZW5lZ290aWF0aW9uIHdpdGggTUZMPTIwNDgsIERIRS1SU0EtV0lUSC1BRVMtMjU2LUNCQy1TSEEyNTYKLWRlcGVuZHNfb246TUJFRFRMU19TU0xfSEFWRV9BRVM6TUJFRFRMU19TU0xfSEFWRV9DQkM6TUJFRFRMU19NRF9DQU5fU0hBMjU2Ok1CRURUTFNfS0VZX0VYQ0hBTkdFX0RIRV9SU0FfRU5BQkxFRDohTUJFRFRMU19BRVNfT05MWV8xMjhfQklUX0tFWV9MRU5HVEgKK2RlcGVuZHNfb246TUJFRFRMU19TU0xfSEFWRV9BRVM6TUJFRFRMU19TU0xfSEFWRV9DQkM6UFNBX1dBTlRfQUxHX1NIQV8yNTY6TUJFRFRMU19LRVlfRVhDSEFOR0VfREhFX1JTQV9FTkFCTEVEOiFNQkVEVExTX0FFU19PTkxZXzEyOF9CSVRfS0VZX0xFTkdUSAogcmVzaXplX2J1ZmZlcnNfcmVuZWdvdGlhdGVfbWZsOk1CRURUTFNfU1NMX01BWF9GUkFHX0xFTl8yMDQ4Ok1CRURUTFNfU1NMX0xFR0FDWV9CUkVBS19IQU5EU0hBS0U6IlRMUy1ESEUtUlNBLVdJVEgtQUVTLTI1Ni1DQkMtU0hBMjU2IgogCiBEVExTIGxlZ2FjeSBicmVhayBoYW5kc2hha2UgcmVuZWdvdGlhdGlvbiB3aXRoIE1GTD00MDk2LCBESEUtUlNBLVdJVEgtQUVTLTI1Ni1DQkMtU0hBMjU2Ci1kZXBlbmRzX29uOk1CRURUTFNfU1NMX0hBVkVfQUVTOk1CRURUTFNfU1NMX0hBVkVfQ0JDOk1CRURUTFNfTURfQ0FOX1NIQTI1NjpNQkVEVExTX0tFWV9FWENIQU5HRV9ESEVfUlNBX0VOQUJMRUQ6IU1CRURUTFNfQUVTX09OTFlfMTI4X0JJVF9LRVlfTEVOR1RICitkZXBlbmRzX29uOk1CRURUTFNfU1NMX0hBVkVfQUVTOk1CRURUTFNfU1NMX0hBVkVfQ0JDOlBTQV9XQU5UX0FMR19TSEFfMjU2Ok1CRURUTFNfS0VZX0VYQ0hBTkdFX0RIRV9SU0FfRU5BQkxFRDohTUJFRFRMU19BRVNfT05MWV8xMjhfQklUX0tFWV9MRU5HVEgKIHJlc2l6ZV9idWZmZXJzX3JlbmVnb3RpYXRlX21mbDpNQkVEVExTX1NTTF9NQVhfRlJBR19MRU5fNDA5NjpNQkVEVExTX1NTTF9MRUdBQ1lfQlJFQUtfSEFORFNIQUtFOiJUTFMtREhFLVJTQS1XSVRILUFFUy0yNTYtQ0JDLVNIQTI1NiIKIAogU1NMIERUTFMgcmVwbGF5OiBpbml0aWFsIHN0YXRlLCBzZXFudW0gMApAQCAtOTcwLDUxICs5NzAsNTEgQEAKIHNzbF9zZXNzaW9uX2lkX2FjY2Vzc29yc19jaGVjazpNQkVEVExTX1NTTF9WRVJTSU9OX1RMUzFfMwogCiBSZWNvcmQgY3J5cHQsIEFFUy0xMjgtQ0JDLCAxLjIsIFNIQS0zODQKLWRlcGVuZHNfb246TUJFRFRMU19TU0xfSEFWRV9BRVM6TUJFRFRMU19TU0xfSEFWRV9DQkM6TUJFRFRMU19TU0xfUFJPVE9fVExTMV8yOk1CRURUTFNfTURfQ0FOX1NIQTM4NAorZGVwZW5kc19vbjpNQkVEVExTX1NTTF9IQVZFX0FFUzpNQkVEVExTX1NTTF9IQVZFX0NCQzpNQkVEVExTX1NTTF9QUk9UT19UTFMxXzI6UFNBX1dBTlRfQUxHX1NIQV8zODQKIHNzbF9jcnlwdF9yZWNvcmQ6TUJFRFRMU19DSVBIRVJfQUVTXzEyOF9DQkM6TUJFRFRMU19NRF9TSEEzODQ6MDowOk1CRURUTFNfU1NMX1ZFUlNJT05fVExTMV8yOjA6MAogCiBSZWNvcmQgY3J5cHQsIEFFUy0xMjgtQ0JDLCAxLjIsIFNIQS0zODQsIENJRCA0KzQKLWRlcGVuZHNfb246TUJFRFRMU19TU0xfRFRMU19DT05ORUNUSU9OX0lEOk1CRURUTFNfU1NMX0hBVkVfQUVTOk1CRURUTFNfU1NMX0hBVkVfQ0JDOk1CRURUTFNfU1NMX1BST1RPX1RMUzFfMjpNQkVEVExTX01EX0NBTl9TSEEzODQKK2RlcGVuZHNfb246TUJFRFRMU19TU0xfRFRMU19DT05ORUNUSU9OX0lEOk1CRURUTFNfU1NMX0hBVkVfQUVTOk1CRURUTFNfU1NMX0hBVkVfQ0JDOk1CRURUTFNfU1NMX1BST1RPX1RMUzFfMjpQU0FfV0FOVF9BTEdfU0hBXzM4NAogc3NsX2NyeXB0X3JlY29yZDpNQkVEVExTX0NJUEhFUl9BRVNfMTI4X0NCQzpNQkVEVExTX01EX1NIQTM4NDowOjA6TUJFRFRMU19TU0xfVkVSU0lPTl9UTFMxXzI6NDo0CiAKIFJlY29yZCBjcnlwdCwgQUVTLTEyOC1DQkMsIDEuMiwgU0hBLTM4NCwgQ0lEIDQrMAotZGVwZW5kc19vbjpNQkVEVExTX1NTTF9EVExTX0NPTk5FQ1RJT05fSUQ6TUJFRFRMU19TU0xfSEFWRV9BRVM6TUJFRFRMU19TU0xfSEFWRV9DQkM6TUJFRFRMU19TU0xfUFJPVE9fVExTMV8yOk1CRURUTFNfTURfQ0FOX1NIQTM4NAorZGVwZW5kc19vbjpNQkVEVExTX1NTTF9EVExTX0NPTk5FQ1RJT05fSUQ6TUJFRFRMU19TU0xfSEFWRV9BRVM6TUJFRFRMU19TU0xfSEFWRV9DQkM6TUJFRFRMU19TU0xfUFJPVE9fVExTMV8yOlBTQV9XQU5UX0FMR19TSEFfMzg0CiBzc2xfY3J5cHRfcmVjb3JkOk1CRURUTFNfQ0lQSEVSX0FFU18xMjhfQ0JDOk1CRURUTFNfTURfU0hBMzg0OjA6MDpNQkVEVExTX1NTTF9WRVJTSU9OX1RMUzFfMjo0OjAKIAogUmVjb3JkIGNyeXB0LCBBRVMtMTI4LUNCQywgMS4yLCBTSEEtMzg0LCBFdE0KLWRlcGVuZHNfb246TUJFRFRMU19TU0xfSEFWRV9BRVM6TUJFRFRMU19TU0xfSEFWRV9DQkM6TUJFRFRMU19TU0xfUFJPVE9fVExTMV8yOk1CRURUTFNfTURfQ0FOX1NIQTM4NDpNQkVEVExTX1NTTF9FTkNSWVBUX1RIRU5fTUFDCitkZXBlbmRzX29uOk1CRURUTFNfU1NMX0hBVkVfQUVTOk1CRURUTFNfU1NMX0hBVkVfQ0JDOk1CRURUTFNfU1NMX1BST1RPX1RMUzFfMjpQU0FfV0FOVF9BTEdfU0hBXzM4NDpNQkVEVExTX1NTTF9FTkNSWVBUX1RIRU5fTUFDCiBzc2xfY3J5cHRfcmVjb3JkOk1CRURUTFNfQ0lQSEVSX0FFU18xMjhfQ0JDOk1CRURUTFNfTURfU0hBMzg0OjE6MDpNQkVEVExTX1NTTF9WRVJTSU9OX1RMUzFfMjowOjAKIAogUmVjb3JkIGNyeXB0LCBBRVMtMTI4LUNCQywgMS4yLCBTSEEtMzg0LCBFdE0sIENJRCA0KzQKLWRlcGVuZHNfb246TUJFRFRMU19TU0xfRFRMU19DT05ORUNUSU9OX0lEOk1CRURUTFNfU1NMX0hBVkVfQUVTOk1CRURUTFNfU1NMX0hBVkVfQ0JDOk1CRURUTFNfU1NMX1BST1RPX1RMUzFfMjpNQkVEVExTX01EX0NBTl9TSEEzODQ6TUJFRFRMU19TU0xfRU5DUllQVF9USEVOX01BQworZGVwZW5kc19vbjpNQkVEVExTX1NTTF9EVExTX0NPTk5FQ1RJT05fSUQ6TUJFRFRMU19TU0xfSEFWRV9BRVM6TUJFRFRMU19TU0xfSEFWRV9DQkM6TUJFRFRMU19TU0xfUFJPVE9fVExTMV8yOlBTQV9XQU5UX0FMR19TSEFfMzg0Ok1CRURUTFNfU1NMX0VOQ1JZUFRfVEhFTl9NQUMKIHNzbF9jcnlwdF9yZWNvcmQ6TUJFRFRMU19DSVBIRVJfQUVTXzEyOF9DQkM6TUJFRFRMU19NRF9TSEEzODQ6MTowOk1CRURUTFNfU1NMX1ZFUlNJT05fVExTMV8yOjQ6NAogCiBSZWNvcmQgY3J5cHQsIEFFUy0xMjgtQ0JDLCAxLjIsIFNIQS0zODQsIEV0TSwgQ0lEIDQrMAotZGVwZW5kc19vbjpNQkVEVExTX1NTTF9EVExTX0NPTk5FQ1RJT05fSUQ6TUJFRFRMU19TU0xfSEFWRV9BRVM6TUJFRFRMU19TU0xfSEFWRV9DQkM6TUJFRFRMU19TU0xfUFJPVE9fVExTMV8yOk1CRURUTFNfTURfQ0FOX1NIQTM4NDpNQkVEVExTX1NTTF9FTkNSWVBUX1RIRU5fTUFDCitkZXBlbmRzX29uOk1CRURUTFNfU1NMX0RUTFNfQ09OTkVDVElPTl9JRDpNQkVEVExTX1NTTF9IQVZFX0FFUzpNQkVEVExTX1NTTF9IQVZFX0NCQzpNQkVEVExTX1NTTF9QUk9UT19UTFMxXzI6UFNBX1dBTlRfQUxHX1NIQV8zODQ6TUJFRFRMU19TU0xfRU5DUllQVF9USEVOX01BQwogc3NsX2NyeXB0X3JlY29yZDpNQkVEVExTX0NJUEhFUl9BRVNfMTI4X0NCQzpNQkVEVExTX01EX1NIQTM4NDoxOjA6TUJFRFRMU19TU0xfVkVSU0lPTl9UTFMxXzI6NDowCiAKIFJlY29yZCBjcnlwdCwgQUVTLTEyOC1DQkMsIDEuMiwgU0hBLTI1NgotZGVwZW5kc19vbjpNQkVEVExTX1NTTF9IQVZFX0FFUzpNQkVEVExTX1NTTF9IQVZFX0NCQzpNQkVEVExTX1NTTF9QUk9UT19UTFMxXzI6TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOk1CRURUTFNfU1NMX0hBVkVfQUVTOk1CRURUTFNfU1NMX0hBVkVfQ0JDOk1CRURUTFNfU1NMX1BST1RPX1RMUzFfMjpQU0FfV0FOVF9BTEdfU0hBXzI1Ngogc3NsX2NyeXB0X3JlY29yZDpNQkVEVExTX0NJUEhFUl9BRVNfMTI4X0NCQzpNQkVEVExTX01EX1NIQTI1NjowOjA6TUJFRFRMU19TU0xfVkVSU0lPTl9UTFMxXzI6MDowCiAKIFJlY29yZCBjcnlwdCwgQUVTLTEyOC1DQkMsIDEuMiwgU0hBLTI1NiwgQ0lEIDQrNAotZGVwZW5kc19vbjpNQkVEVExTX1NTTF9EVExTX0NPTk5FQ1RJT05fSUQ6TUJFRFRMU19TU0xfSEFWRV9BRVM6TUJFRFRMU19TU0xfSEFWRV9DQkM6TUJFRFRMU19TU0xfUFJPVE9fVExTMV8yOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpNQkVEVExTX1NTTF9EVExTX0NPTk5FQ1RJT05fSUQ6TUJFRFRMU19TU0xfSEFWRV9BRVM6TUJFRFRMU19TU0xfSEFWRV9DQkM6TUJFRFRMU19TU0xfUFJPVE9fVExTMV8yOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBzc2xfY3J5cHRfcmVjb3JkOk1CRURUTFNfQ0lQSEVSX0FFU18xMjhfQ0JDOk1CRURUTFNfTURfU0hBMjU2OjA6MDpNQkVEVExTX1NTTF9WRVJTSU9OX1RMUzFfMjo0OjQKIAogUmVjb3JkIGNyeXB0LCBBRVMtMTI4LUNCQywgMS4yLCBTSEEtMjU2LCBDSUQgNCswCi1kZXBlbmRzX29uOk1CRURUTFNfU1NMX0RUTFNfQ09OTkVDVElPTl9JRDpNQkVEVExTX1NTTF9IQVZFX0FFUzpNQkVEVExTX1NTTF9IQVZFX0NCQzpNQkVEVExTX1NTTF9QUk9UT19UTFMxXzI6TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOk1CRURUTFNfU1NMX0RUTFNfQ09OTkVDVElPTl9JRDpNQkVEVExTX1NTTF9IQVZFX0FFUzpNQkVEVExTX1NTTF9IQVZFX0NCQzpNQkVEVExTX1NTTF9QUk9UT19UTFMxXzI6UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHNzbF9jcnlwdF9yZWNvcmQ6TUJFRFRMU19DSVBIRVJfQUVTXzEyOF9DQkM6TUJFRFRMU19NRF9TSEEyNTY6MDowOk1CRURUTFNfU1NMX1ZFUlNJT05fVExTMV8yOjQ6MAogCiBSZWNvcmQgY3J5cHQsIEFFUy0xMjgtQ0JDLCAxLjIsIFNIQS0yNTYsIEV0TQotZGVwZW5kc19vbjpNQkVEVExTX1NTTF9IQVZFX0FFUzpNQkVEVExTX1NTTF9IQVZFX0NCQzpNQkVEVExTX1NTTF9QUk9UT19UTFMxXzI6TUJFRFRMU19NRF9DQU5fU0hBMjU2Ok1CRURUTFNfU1NMX0VOQ1JZUFRfVEhFTl9NQUMKK2RlcGVuZHNfb246TUJFRFRMU19TU0xfSEFWRV9BRVM6TUJFRFRMU19TU0xfSEFWRV9DQkM6TUJFRFRMU19TU0xfUFJPVE9fVExTMV8yOlBTQV9XQU5UX0FMR19TSEFfMjU2Ok1CRURUTFNfU1NMX0VOQ1JZUFRfVEhFTl9NQUMKIHNzbF9jcnlwdF9yZWNvcmQ6TUJFRFRMU19DSVBIRVJfQUVTXzEyOF9DQkM6TUJFRFRMU19NRF9TSEEyNTY6MTowOk1CRURUTFNfU1NMX1ZFUlNJT05fVExTMV8yOjA6MAogCiBSZWNvcmQgY3J5cHQsIEFFUy0xMjgtQ0JDLCAxLjIsIFNIQS0yNTYsIEV0TSwgQ0lEIDQrNAotZGVwZW5kc19vbjpNQkVEVExTX1NTTF9EVExTX0NPTk5FQ1RJT05fSUQ6TUJFRFRMU19TU0xfSEFWRV9BRVM6TUJFRFRMU19TU0xfSEFWRV9DQkM6TUJFRFRMU19TU0xfUFJPVE9fVExTMV8yOk1CRURUTFNfTURfQ0FOX1NIQTI1NjpNQkVEVExTX1NTTF9FTkNSWVBUX1RIRU5fTUFDCitkZXBlbmRzX29uOk1CRURUTFNfU1NMX0RUTFNfQ09OTkVDVElPTl9JRDpNQkVEVExTX1NTTF9IQVZFX0FFUzpNQkVEVExTX1NTTF9IQVZFX0NCQzpNQkVEVExTX1NTTF9QUk9UT19UTFMxXzI6UFNBX1dBTlRfQUxHX1NIQV8yNTY6TUJFRFRMU19TU0xfRU5DUllQVF9USEVOX01BQwogc3NsX2NyeXB0X3JlY29yZDpNQkVEVExTX0NJUEhFUl9BRVNfMTI4X0NCQzpNQkVEVExTX01EX1NIQTI1NjoxOjA6TUJFRFRMU19TU0xfVkVSU0lPTl9UTFMxXzI6NDo0CiAKIFJlY29yZCBjcnlwdCwgQUVTLTEyOC1DQkMsIDEuMiwgU0hBLTI1NiwgRXRNLCBDSUQgNCswCi1kZXBlbmRzX29uOk1CRURUTFNfU1NMX0RUTFNfQ09OTkVDVElPTl9JRDpNQkVEVExTX1NTTF9IQVZFX0FFUzpNQkVEVExTX1NTTF9IQVZFX0NCQzpNQkVEVExTX1NTTF9QUk9UT19UTFMxXzI6TUJFRFRMU19NRF9DQU5fU0hBMjU2Ok1CRURUTFNfU1NMX0VOQ1JZUFRfVEhFTl9NQUMKK2RlcGVuZHNfb246TUJFRFRMU19TU0xfRFRMU19DT05ORUNUSU9OX0lEOk1CRURUTFNfU1NMX0hBVkVfQUVTOk1CRURUTFNfU1NMX0hBVkVfQ0JDOk1CRURUTFNfU1NMX1BST1RPX1RMUzFfMjpQU0FfV0FOVF9BTEdfU0hBXzI1NjpNQkVEVExTX1NTTF9FTkNSWVBUX1RIRU5fTUFDCiBzc2xfY3J5cHRfcmVjb3JkOk1CRURUTFNfQ0lQSEVSX0FFU18xMjhfQ0JDOk1CRURUTFNfTURfU0hBMjU2OjE6MDpNQkVEVExTX1NTTF9WRVJTSU9OX1RMUzFfMjo0OjAKIAogUmVjb3JkIGNyeXB0LCBBRVMtMTI4LUNCQywgMS4yLCBTSEEtMQpAQCAtMTA2Niw1MSArMTA2Niw1MSBAQAogc3NsX2NyeXB0X3JlY29yZDpNQkVEVExTX0NJUEhFUl9BRVNfMTI4X0NCQzpNQkVEVExTX01EX01ENToxOjA6TUJFRFRMU19TU0xfVkVSU0lPTl9UTFMxXzI6NDowCiAKIFJlY29yZCBjcnlwdCwgQUVTLTI1Ni1DQkMsIDEuMiwgU0hBLTM4NAotZGVwZW5kc19vbjpNQkVEVExTX1NTTF9IQVZFX0FFUzpNQkVEVExTX1NTTF9IQVZFX0NCQzpNQkVEVExTX1NTTF9QUk9UT19UTFMxXzI6TUJFRFRMU19NRF9DQU5fU0hBMzg0OiFNQkVEVExTX0FFU19PTkxZXzEyOF9CSVRfS0VZX0xFTkdUSAorZGVwZW5kc19vbjpNQkVEVExTX1NTTF9IQVZFX0FFUzpNQkVEVExTX1NTTF9IQVZFX0NCQzpNQkVEVExTX1NTTF9QUk9UT19UTFMxXzI6UFNBX1dBTlRfQUxHX1NIQV8zODQ6IU1CRURUTFNfQUVTX09OTFlfMTI4X0JJVF9LRVlfTEVOR1RICiBzc2xfY3J5cHRfcmVjb3JkOk1CRURUTFNfQ0lQSEVSX0FFU18yNTZfQ0JDOk1CRURUTFNfTURfU0hBMzg0OjA6MDpNQkVEVExTX1NTTF9WRVJTSU9OX1RMUzFfMjowOjAKIAogUmVjb3JkIGNyeXB0LCBBRVMtMjU2LUNCQywgMS4yLCBTSEEtMzg0LCBDSUQgNCs0Ci1kZXBlbmRzX29uOk1CRURUTFNfU1NMX0RUTFNfQ09OTkVDVElPTl9JRDpNQkVEVExTX1NTTF9IQVZFX0FFUzpNQkVEVExTX1NTTF9IQVZFX0NCQzpNQkVEVExTX1NTTF9QUk9UT19UTFMxXzI6TUJFRFRMU19NRF9DQU5fU0hBMzg0OiFNQkVEVExTX0FFU19PTkxZXzEyOF9CSVRfS0VZX0xFTkdUSAorZGVwZW5kc19vbjpNQkVEVExTX1NTTF9EVExTX0NPTk5FQ1RJT05fSUQ6TUJFRFRMU19TU0xfSEFWRV9BRVM6TUJFRFRMU19TU0xfSEFWRV9DQkM6TUJFRFRMU19TU0xfUFJPVE9fVExTMV8yOlBTQV9XQU5UX0FMR19TSEFfMzg0OiFNQkVEVExTX0FFU19PTkxZXzEyOF9CSVRfS0VZX0xFTkdUSAogc3NsX2NyeXB0X3JlY29yZDpNQkVEVExTX0NJUEhFUl9BRVNfMjU2X0NCQzpNQkVEVExTX01EX1NIQTM4NDowOjA6TUJFRFRMU19TU0xfVkVSU0lPTl9UTFMxXzI6NDo0CiAKIFJlY29yZCBjcnlwdCwgQUVTLTI1Ni1DQkMsIDEuMiwgU0hBLTM4NCwgQ0lEIDQrMAotZGVwZW5kc19vbjpNQkVEVExTX1NTTF9EVExTX0NPTk5FQ1RJT05fSUQ6TUJFRFRMU19TU0xfSEFWRV9BRVM6TUJFRFRMU19TU0xfSEFWRV9DQkM6TUJFRFRMU19TU0xfUFJPVE9fVExTMV8yOk1CRURUTFNfTURfQ0FOX1NIQTM4NDohTUJFRFRMU19BRVNfT05MWV8xMjhfQklUX0tFWV9MRU5HVEgKK2RlcGVuZHNfb246TUJFRFRMU19TU0xfRFRMU19DT05ORUNUSU9OX0lEOk1CRURUTFNfU1NMX0hBVkVfQUVTOk1CRURUTFNfU1NMX0hBVkVfQ0JDOk1CRURUTFNfU1NMX1BST1RPX1RMUzFfMjpQU0FfV0FOVF9BTEdfU0hBXzM4NDohTUJFRFRMU19BRVNfT05MWV8xMjhfQklUX0tFWV9MRU5HVEgKIHNzbF9jcnlwdF9yZWNvcmQ6TUJFRFRMU19DSVBIRVJfQUVTXzI1Nl9DQkM6TUJFRFRMU19NRF9TSEEzODQ6MDowOk1CRURUTFNfU1NMX1ZFUlNJT05fVExTMV8yOjQ6MAogCiBSZWNvcmQgY3J5cHQsIEFFUy0yNTYtQ0JDLCAxLjIsIFNIQS0zODQsIEV0TQotZGVwZW5kc19vbjpNQkVEVExTX1NTTF9IQVZFX0FFUzpNQkVEVExTX1NTTF9IQVZFX0NCQzpNQkVEVExTX1NTTF9QUk9UT19UTFMxXzI6TUJFRFRMU19NRF9DQU5fU0hBMzg0Ok1CRURUTFNfU1NMX0VOQ1JZUFRfVEhFTl9NQUM6IU1CRURUTFNfQUVTX09OTFlfMTI4X0JJVF9LRVlfTEVOR1RICitkZXBlbmRzX29uOk1CRURUTFNfU1NMX0hBVkVfQUVTOk1CRURUTFNfU1NMX0hBVkVfQ0JDOk1CRURUTFNfU1NMX1BST1RPX1RMUzFfMjpQU0FfV0FOVF9BTEdfU0hBXzM4NDpNQkVEVExTX1NTTF9FTkNSWVBUX1RIRU5fTUFDOiFNQkVEVExTX0FFU19PTkxZXzEyOF9CSVRfS0VZX0xFTkdUSAogc3NsX2NyeXB0X3JlY29yZDpNQkVEVExTX0NJUEhFUl9BRVNfMjU2X0NCQzpNQkVEVExTX01EX1NIQTM4NDoxOjA6TUJFRFRMU19TU0xfVkVSU0lPTl9UTFMxXzI6MDowCiAKIFJlY29yZCBjcnlwdCwgQUVTLTI1Ni1DQkMsIDEuMiwgU0hBLTM4NCwgRXRNLCBDSUQgNCs0Ci1kZXBlbmRzX29uOk1CRURUTFNfU1NMX0RUTFNfQ09OTkVDVElPTl9JRDpNQkVEVExTX1NTTF9IQVZFX0FFUzpNQkVEVExTX1NTTF9IQVZFX0NCQzpNQkVEVExTX1NTTF9QUk9UT19UTFMxXzI6TUJFRFRMU19NRF9DQU5fU0hBMzg0Ok1CRURUTFNfU1NMX0VOQ1JZUFRfVEhFTl9NQUM6IU1CRURUTFNfQUVTX09OTFlfMTI4X0JJVF9LRVlfTEVOR1RICitkZXBlbmRzX29uOk1CRURUTFNfU1NMX0RUTFNfQ09OTkVDVElPTl9JRDpNQkVEVExTX1NTTF9IQVZFX0FFUzpNQkVEVExTX1NTTF9IQVZFX0NCQzpNQkVEVExTX1NTTF9QUk9UT19UTFMxXzI6UFNBX1dBTlRfQUxHX1NIQV8zODQ6TUJFRFRMU19TU0xfRU5DUllQVF9USEVOX01BQzohTUJFRFRMU19BRVNfT05MWV8xMjhfQklUX0tFWV9MRU5HVEgKIHNzbF9jcnlwdF9yZWNvcmQ6TUJFRFRMU19DSVBIRVJfQUVTXzI1Nl9DQkM6TUJFRFRMU19NRF9TSEEzODQ6MTowOk1CRURUTFNfU1NMX1ZFUlNJT05fVExTMV8yOjQ6NAogCiBSZWNvcmQgY3J5cHQsIEFFUy0yNTYtQ0JDLCAxLjIsIFNIQS0zODQsIEV0TSwgQ0lEIDQrMAotZGVwZW5kc19vbjpNQkVEVExTX1NTTF9EVExTX0NPTk5FQ1RJT05fSUQ6TUJFRFRMU19TU0xfSEFWRV9BRVM6TUJFRFRMU19TU0xfSEFWRV9DQkM6TUJFRFRMU19TU0xfUFJPVE9fVExTMV8yOk1CRURUTFNfTURfQ0FOX1NIQTM4NDpNQkVEVExTX1NTTF9FTkNSWVBUX1RIRU5fTUFDOiFNQkVEVExTX0FFU19PTkxZXzEyOF9CSVRfS0VZX0xFTkdUSAorZGVwZW5kc19vbjpNQkVEVExTX1NTTF9EVExTX0NPTk5FQ1RJT05fSUQ6TUJFRFRMU19TU0xfSEFWRV9BRVM6TUJFRFRMU19TU0xfSEFWRV9DQkM6TUJFRFRMU19TU0xfUFJPVE9fVExTMV8yOlBTQV9XQU5UX0FMR19TSEFfMzg0Ok1CRURUTFNfU1NMX0VOQ1JZUFRfVEhFTl9NQUM6IU1CRURUTFNfQUVTX09OTFlfMTI4X0JJVF9LRVlfTEVOR1RICiBzc2xfY3J5cHRfcmVjb3JkOk1CRURUTFNfQ0lQSEVSX0FFU18yNTZfQ0JDOk1CRURUTFNfTURfU0hBMzg0OjE6MDpNQkVEVExTX1NTTF9WRVJTSU9OX1RMUzFfMjo0OjAKIAogUmVjb3JkIGNyeXB0LCBBRVMtMjU2LUNCQywgMS4yLCBTSEEtMjU2Ci1kZXBlbmRzX29uOk1CRURUTFNfU1NMX0hBVkVfQUVTOk1CRURUTFNfU1NMX0hBVkVfQ0JDOk1CRURUTFNfU1NMX1BST1RPX1RMUzFfMjpNQkVEVExTX01EX0NBTl9TSEEyNTY6IU1CRURUTFNfQUVTX09OTFlfMTI4X0JJVF9LRVlfTEVOR1RICitkZXBlbmRzX29uOk1CRURUTFNfU1NMX0hBVkVfQUVTOk1CRURUTFNfU1NMX0hBVkVfQ0JDOk1CRURUTFNfU1NMX1BST1RPX1RMUzFfMjpQU0FfV0FOVF9BTEdfU0hBXzI1NjohTUJFRFRMU19BRVNfT05MWV8xMjhfQklUX0tFWV9MRU5HVEgKIHNzbF9jcnlwdF9yZWNvcmQ6TUJFRFRMU19DSVBIRVJfQUVTXzI1Nl9DQkM6TUJFRFRMU19NRF9TSEEyNTY6MDowOk1CRURUTFNfU1NMX1ZFUlNJT05fVExTMV8yOjA6MAogCiBSZWNvcmQgY3J5cHQsIEFFUy0yNTYtQ0JDLCAxLjIsIFNIQS0yNTYsIENJRCA0KzQKLWRlcGVuZHNfb246TUJFRFRMU19TU0xfRFRMU19DT05ORUNUSU9OX0lEOk1CRURUTFNfU1NMX0hBVkVfQUVTOk1CRURUTFNfU1NMX0hBVkVfQ0JDOk1CRURUTFNfU1NMX1BST1RPX1RMUzFfMjpNQkVEVExTX01EX0NBTl9TSEEyNTY6IU1CRURUTFNfQUVTX09OTFlfMTI4X0JJVF9LRVlfTEVOR1RICitkZXBlbmRzX29uOk1CRURUTFNfU1NMX0RUTFNfQ09OTkVDVElPTl9JRDpNQkVEVExTX1NTTF9IQVZFX0FFUzpNQkVEVExTX1NTTF9IQVZFX0NCQzpNQkVEVExTX1NTTF9QUk9UT19UTFMxXzI6UFNBX1dBTlRfQUxHX1NIQV8yNTY6IU1CRURUTFNfQUVTX09OTFlfMTI4X0JJVF9LRVlfTEVOR1RICiBzc2xfY3J5cHRfcmVjb3JkOk1CRURUTFNfQ0lQSEVSX0FFU18yNTZfQ0JDOk1CRURUTFNfTURfU0hBMjU2OjA6MDpNQkVEVExTX1NTTF9WRVJTSU9OX1RMUzFfMjo0OjQKIAogUmVjb3JkIGNyeXB0LCBBRVMtMjU2LUNCQywgMS4yLCBTSEEtMjU2LCBDSUQgNCswCi1kZXBlbmRzX29uOk1CRURUTFNfU1NMX0RUTFNfQ09OTkVDVElPTl9JRDpNQkVEVExTX1NTTF9IQVZFX0FFUzpNQkVEVExTX1NTTF9IQVZFX0NCQzpNQkVEVExTX1NTTF9QUk9UT19UTFMxXzI6TUJFRFRMU19NRF9DQU5fU0hBMjU2OiFNQkVEVExTX0FFU19PTkxZXzEyOF9CSVRfS0VZX0xFTkdUSAorZGVwZW5kc19vbjpNQkVEVExTX1NTTF9EVExTX0NPTk5FQ1RJT05fSUQ6TUJFRFRMU19TU0xfSEFWRV9BRVM6TUJFRFRMU19TU0xfSEFWRV9DQkM6TUJFRFRMU19TU0xfUFJPVE9fVExTMV8yOlBTQV9XQU5UX0FMR19TSEFfMjU2OiFNQkVEVExTX0FFU19PTkxZXzEyOF9CSVRfS0VZX0xFTkdUSAogc3NsX2NyeXB0X3JlY29yZDpNQkVEVExTX0NJUEhFUl9BRVNfMjU2X0NCQzpNQkVEVExTX01EX1NIQTI1NjowOjA6TUJFRFRMU19TU0xfVkVSU0lPTl9UTFMxXzI6NDowCiAKIFJlY29yZCBjcnlwdCwgQUVTLTI1Ni1DQkMsIDEuMiwgU0hBLTI1NiwgRXRNCi1kZXBlbmRzX29uOk1CRURUTFNfU1NMX0hBVkVfQUVTOk1CRURUTFNfU1NMX0hBVkVfQ0JDOk1CRURUTFNfU1NMX1BST1RPX1RMUzFfMjpNQkVEVExTX01EX0NBTl9TSEEyNTY6TUJFRFRMU19TU0xfRU5DUllQVF9USEVOX01BQzohTUJFRFRMU19BRVNfT05MWV8xMjhfQklUX0tFWV9MRU5HVEgKK2RlcGVuZHNfb246TUJFRFRMU19TU0xfSEFWRV9BRVM6TUJFRFRMU19TU0xfSEFWRV9DQkM6TUJFRFRMU19TU0xfUFJPVE9fVExTMV8yOlBTQV9XQU5UX0FMR19TSEFfMjU2Ok1CRURUTFNfU1NMX0VOQ1JZUFRfVEhFTl9NQUM6IU1CRURUTFNfQUVTX09OTFlfMTI4X0JJVF9LRVlfTEVOR1RICiBzc2xfY3J5cHRfcmVjb3JkOk1CRURUTFNfQ0lQSEVSX0FFU18yNTZfQ0JDOk1CRURUTFNfTURfU0hBMjU2OjE6MDpNQkVEVExTX1NTTF9WRVJTSU9OX1RMUzFfMjowOjAKIAogUmVjb3JkIGNyeXB0LCBBRVMtMjU2LUNCQywgMS4yLCBTSEEtMjU2LCBFdE0sIENJRCA0KzQKLWRlcGVuZHNfb246TUJFRFRMU19TU0xfRFRMU19DT05ORUNUSU9OX0lEOk1CRURUTFNfU1NMX0hBVkVfQUVTOk1CRURUTFNfU1NMX0hBVkVfQ0JDOk1CRURUTFNfU1NMX1BST1RPX1RMUzFfMjpNQkVEVExTX01EX0NBTl9TSEEyNTY6TUJFRFRMU19TU0xfRU5DUllQVF9USEVOX01BQzohTUJFRFRMU19BRVNfT05MWV8xMjhfQklUX0tFWV9MRU5HVEgKK2RlcGVuZHNfb246TUJFRFRMU19TU0xfRFRMU19DT05ORUNUSU9OX0lEOk1CRURUTFNfU1NMX0hBVkVfQUVTOk1CRURUTFNfU1NMX0hBVkVfQ0JDOk1CRURUTFNfU1NMX1BST1RPX1RMUzFfMjpQU0FfV0FOVF9BTEdfU0hBXzI1NjpNQkVEVExTX1NTTF9FTkNSWVBUX1RIRU5fTUFDOiFNQkVEVExTX0FFU19PTkxZXzEyOF9CSVRfS0VZX0xFTkdUSAogc3NsX2NyeXB0X3JlY29yZDpNQkVEVExTX0NJUEhFUl9BRVNfMjU2X0NCQzpNQkVEVExTX01EX1NIQTI1NjoxOjA6TUJFRFRMU19TU0xfVkVSU0lPTl9UTFMxXzI6NDo0CiAKIFJlY29yZCBjcnlwdCwgQUVTLTI1Ni1DQkMsIDEuMiwgU0hBLTI1NiwgRXRNLCBDSUQgNCswCi1kZXBlbmRzX29uOk1CRURUTFNfU1NMX0RUTFNfQ09OTkVDVElPTl9JRDpNQkVEVExTX1NTTF9IQVZFX0FFUzpNQkVEVExTX1NTTF9IQVZFX0NCQzpNQkVEVExTX1NTTF9QUk9UT19UTFMxXzI6TUJFRFRMU19NRF9DQU5fU0hBMjU2Ok1CRURUTFNfU1NMX0VOQ1JZUFRfVEhFTl9NQUM6IU1CRURUTFNfQUVTX09OTFlfMTI4X0JJVF9LRVlfTEVOR1RICitkZXBlbmRzX29uOk1CRURUTFNfU1NMX0RUTFNfQ09OTkVDVElPTl9JRDpNQkVEVExTX1NTTF9IQVZFX0FFUzpNQkVEVExTX1NTTF9IQVZFX0NCQzpNQkVEVExTX1NTTF9QUk9UT19UTFMxXzI6UFNBX1dBTlRfQUxHX1NIQV8yNTY6TUJFRFRMU19TU0xfRU5DUllQVF9USEVOX01BQzohTUJFRFRMU19BRVNfT05MWV8xMjhfQklUX0tFWV9MRU5HVEgKIHNzbF9jcnlwdF9yZWNvcmQ6TUJFRFRMU19DSVBIRVJfQUVTXzI1Nl9DQkM6TUJFRFRMU19NRF9TSEEyNTY6MTowOk1CRURUTFNfU1NMX1ZFUlNJT05fVExTMV8yOjQ6MAogCiBSZWNvcmQgY3J5cHQsIEFFUy0yNTYtQ0JDLCAxLjIsIFNIQS0xCkBAIC0xMTYyLDUxICsxMTYyLDUxIEBACiBzc2xfY3J5cHRfcmVjb3JkOk1CRURUTFNfQ0lQSEVSX0FFU18yNTZfQ0JDOk1CRURUTFNfTURfTUQ1OjE6MDpNQkVEVExTX1NTTF9WRVJTSU9OX1RMUzFfMjo0OjAKIAogUmVjb3JkIGNyeXB0LCBBUklBLTEyOC1DQkMsIDEuMiwgU0hBLTM4NAotZGVwZW5kc19vbjpNQkVEVExTX1NTTF9IQVZFX0FSSUE6TUJFRFRMU19TU0xfSEFWRV9DQkM6TUJFRFRMU19TU0xfUFJPVE9fVExTMV8yOk1CRURUTFNfTURfQ0FOX1NIQTM4NAorZGVwZW5kc19vbjpNQkVEVExTX1NTTF9IQVZFX0FSSUE6TUJFRFRMU19TU0xfSEFWRV9DQkM6TUJFRFRMU19TU0xfUFJPVE9fVExTMV8yOlBTQV9XQU5UX0FMR19TSEFfMzg0CiBzc2xfY3J5cHRfcmVjb3JkOk1CRURUTFNfQ0lQSEVSX0FSSUFfMTI4X0NCQzpNQkVEVExTX01EX1NIQTM4NDowOjA6TUJFRFRMU19TU0xfVkVSU0lPTl9UTFMxXzI6MDowCiAKIFJlY29yZCBjcnlwdCwgQVJJQS0xMjgtQ0JDLCAxLjIsIFNIQS0zODQsIENJRCA0KzQKLWRlcGVuZHNfb246TUJFRFRMU19TU0xfRFRMU19DT05ORUNUSU9OX0lEOk1CRURUTFNfU1NMX0hBVkVfQVJJQTpNQkVEVExTX1NTTF9IQVZFX0NCQzpNQkVEVExTX1NTTF9QUk9UT19UTFMxXzI6TUJFRFRMU19NRF9DQU5fU0hBMzg0CitkZXBlbmRzX29uOk1CRURUTFNfU1NMX0RUTFNfQ09OTkVDVElPTl9JRDpNQkVEVExTX1NTTF9IQVZFX0FSSUE6TUJFRFRMU19TU0xfSEFWRV9DQkM6TUJFRFRMU19TU0xfUFJPVE9fVExTMV8yOlBTQV9XQU5UX0FMR19TSEFfMzg0CiBzc2xfY3J5cHRfcmVjb3JkOk1CRURUTFNfQ0lQSEVSX0FSSUFfMTI4X0NCQzpNQkVEVExTX01EX1NIQTM4NDowOjA6TUJFRFRMU19TU0xfVkVSU0lPTl9UTFMxXzI6NDo0CiAKIFJlY29yZCBjcnlwdCwgQVJJQS0xMjgtQ0JDLCAxLjIsIFNIQS0zODQsIENJRCA0KzAKLWRlcGVuZHNfb246TUJFRFRMU19TU0xfRFRMU19DT05ORUNUSU9OX0lEOk1CRURUTFNfU1NMX0hBVkVfQVJJQTpNQkVEVExTX1NTTF9IQVZFX0NCQzpNQkVEVExTX1NTTF9QUk9UT19UTFMxXzI6TUJFRFRMU19NRF9DQU5fU0hBMzg0CitkZXBlbmRzX29uOk1CRURUTFNfU1NMX0RUTFNfQ09OTkVDVElPTl9JRDpNQkVEVExTX1NTTF9IQVZFX0FSSUE6TUJFRFRMU19TU0xfSEFWRV9DQkM6TUJFRFRMU19TU0xfUFJPVE9fVExTMV8yOlBTQV9XQU5UX0FMR19TSEFfMzg0CiBzc2xfY3J5cHRfcmVjb3JkOk1CRURUTFNfQ0lQSEVSX0FSSUFfMTI4X0NCQzpNQkVEVExTX01EX1NIQTM4NDowOjA6TUJFRFRMU19TU0xfVkVSU0lPTl9UTFMxXzI6NDowCiAKIFJlY29yZCBjcnlwdCwgQVJJQS0xMjgtQ0JDLCAxLjIsIFNIQS0zODQsIEV0TQotZGVwZW5kc19vbjpNQkVEVExTX1NTTF9IQVZFX0FSSUE6TUJFRFRMU19TU0xfSEFWRV9DQkM6TUJFRFRMU19TU0xfUFJPVE9fVExTMV8yOk1CRURUTFNfTURfQ0FOX1NIQTM4NDpNQkVEVExTX1NTTF9FTkNSWVBUX1RIRU5fTUFDCitkZXBlbmRzX29uOk1CRURUTFNfU1NMX0hBVkVfQVJJQTpNQkVEVExTX1NTTF9IQVZFX0NCQzpNQkVEVExTX1NTTF9QUk9UT19UTFMxXzI6UFNBX1dBTlRfQUxHX1NIQV8zODQ6TUJFRFRMU19TU0xfRU5DUllQVF9USEVOX01BQwogc3NsX2NyeXB0X3JlY29yZDpNQkVEVExTX0NJUEhFUl9BUklBXzEyOF9DQkM6TUJFRFRMU19NRF9TSEEzODQ6MTowOk1CRURUTFNfU1NMX1ZFUlNJT05fVExTMV8yOjA6MAogCiBSZWNvcmQgY3J5cHQsIEFSSUEtMTI4LUNCQywgMS4yLCBTSEEtMzg0LCBFdE0sIENJRCA0KzQKLWRlcGVuZHNfb246TUJFRFRMU19TU0xfRFRMU19DT05ORUNUSU9OX0lEOk1CRURUTFNfU1NMX0hBVkVfQVJJQTpNQkVEVExTX1NTTF9IQVZFX0NCQzpNQkVEVExTX1NTTF9QUk9UT19UTFMxXzI6TUJFRFRMU19NRF9DQU5fU0hBMzg0Ok1CRURUTFNfU1NMX0VOQ1JZUFRfVEhFTl9NQUMKK2RlcGVuZHNfb246TUJFRFRMU19TU0xfRFRMU19DT05ORUNUSU9OX0lEOk1CRURUTFNfU1NMX0hBVkVfQVJJQTpNQkVEVExTX1NTTF9IQVZFX0NCQzpNQkVEVExTX1NTTF9QUk9UT19UTFMxXzI6UFNBX1dBTlRfQUxHX1NIQV8zODQ6TUJFRFRMU19TU0xfRU5DUllQVF9USEVOX01BQwogc3NsX2NyeXB0X3JlY29yZDpNQkVEVExTX0NJUEhFUl9BUklBXzEyOF9DQkM6TUJFRFRMU19NRF9TSEEzODQ6MTowOk1CRURUTFNfU1NMX1ZFUlNJT05fVExTMV8yOjQ6NAogCiBSZWNvcmQgY3J5cHQsIEFSSUEtMTI4LUNCQywgMS4yLCBTSEEtMzg0LCBFdE0sIENJRCA0KzAKLWRlcGVuZHNfb246TUJFRFRMU19TU0xfRFRMU19DT05ORUNUSU9OX0lEOk1CRURUTFNfU1NMX0hBVkVfQVJJQTpNQkVEVExTX1NTTF9IQVZFX0NCQzpNQkVEVExTX1NTTF9QUk9UT19UTFMxXzI6TUJFRFRMU19NRF9DQU5fU0hBMzg0Ok1CRURUTFNfU1NMX0VOQ1JZUFRfVEhFTl9NQUMKK2RlcGVuZHNfb246TUJFRFRMU19TU0xfRFRMU19DT05ORUNUSU9OX0lEOk1CRURUTFNfU1NMX0hBVkVfQVJJQTpNQkVEVExTX1NTTF9IQVZFX0NCQzpNQkVEVExTX1NTTF9QUk9UT19UTFMxXzI6UFNBX1dBTlRfQUxHX1NIQV8zODQ6TUJFRFRMU19TU0xfRU5DUllQVF9USEVOX01BQwogc3NsX2NyeXB0X3JlY29yZDpNQkVEVExTX0NJUEhFUl9BUklBXzEyOF9DQkM6TUJFRFRMU19NRF9TSEEzODQ6MTowOk1CRURUTFNfU1NMX1ZFUlNJT05fVExTMV8yOjQ6MAogCiBSZWNvcmQgY3J5cHQsIEFSSUEtMTI4LUNCQywgMS4yLCBTSEEtMjU2Ci1kZXBlbmRzX29uOk1CRURUTFNfU1NMX0hBVkVfQVJJQTpNQkVEVExTX1NTTF9IQVZFX0NCQzpNQkVEVExTX1NTTF9QUk9UT19UTFMxXzI6TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOk1CRURUTFNfU1NMX0hBVkVfQVJJQTpNQkVEVExTX1NTTF9IQVZFX0NCQzpNQkVEVExTX1NTTF9QUk9UT19UTFMxXzI6UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHNzbF9jcnlwdF9yZWNvcmQ6TUJFRFRMU19DSVBIRVJfQVJJQV8xMjhfQ0JDOk1CRURUTFNfTURfU0hBMjU2OjA6MDpNQkVEVExTX1NTTF9WRVJTSU9OX1RMUzFfMjowOjAKIAogUmVjb3JkIGNyeXB0LCBBUklBLTEyOC1DQkMsIDEuMiwgU0hBLTI1NiwgQ0lEIDQrNAotZGVwZW5kc19vbjpNQkVEVExTX1NTTF9EVExTX0NPTk5FQ1RJT05fSUQ6TUJFRFRMU19TU0xfSEFWRV9BUklBOk1CRURUTFNfU1NMX0hBVkVfQ0JDOk1CRURUTFNfU1NMX1BST1RPX1RMUzFfMjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246TUJFRFRMU19TU0xfRFRMU19DT05ORUNUSU9OX0lEOk1CRURUTFNfU1NMX0hBVkVfQVJJQTpNQkVEVExTX1NTTF9IQVZFX0NCQzpNQkVEVExTX1NTTF9QUk9UT19UTFMxXzI6UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHNzbF9jcnlwdF9yZWNvcmQ6TUJFRFRMU19DSVBIRVJfQVJJQV8xMjhfQ0JDOk1CRURUTFNfTURfU0hBMjU2OjA6MDpNQkVEVExTX1NTTF9WRVJTSU9OX1RMUzFfMjo0OjQKIAogUmVjb3JkIGNyeXB0LCBBUklBLTEyOC1DQkMsIDEuMiwgU0hBLTI1NiwgQ0lEIDQrMAotZGVwZW5kc19vbjpNQkVEVExTX1NTTF9EVExTX0NPTk5FQ1RJT05fSUQ6TUJFRFRMU19TU0xfSEFWRV9BUklBOk1CRURUTFNfU1NMX0hBVkVfQ0JDOk1CRURUTFNfU1NMX1BST1RPX1RMUzFfMjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246TUJFRFRMU19TU0xfRFRMU19DT05ORUNUSU9OX0lEOk1CRURUTFNfU1NMX0hBVkVfQVJJQTpNQkVEVExTX1NTTF9IQVZFX0NCQzpNQkVEVExTX1NTTF9QUk9UT19UTFMxXzI6UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHNzbF9jcnlwdF9yZWNvcmQ6TUJFRFRMU19DSVBIRVJfQVJJQV8xMjhfQ0JDOk1CRURUTFNfTURfU0hBMjU2OjA6MDpNQkVEVExTX1NTTF9WRVJTSU9OX1RMUzFfMjo0OjAKIAogUmVjb3JkIGNyeXB0LCBBUklBLTEyOC1DQkMsIDEuMiwgU0hBLTI1NiwgRXRNCi1kZXBlbmRzX29uOk1CRURUTFNfU1NMX0hBVkVfQVJJQTpNQkVEVExTX1NTTF9IQVZFX0NCQzpNQkVEVExTX1NTTF9QUk9UT19UTFMxXzI6TUJFRFRMU19NRF9DQU5fU0hBMjU2Ok1CRURUTFNfU1NMX0VOQ1JZUFRfVEhFTl9NQUMKK2RlcGVuZHNfb246TUJFRFRMU19TU0xfSEFWRV9BUklBOk1CRURUTFNfU1NMX0hBVkVfQ0JDOk1CRURUTFNfU1NMX1BST1RPX1RMUzFfMjpQU0FfV0FOVF9BTEdfU0hBXzI1NjpNQkVEVExTX1NTTF9FTkNSWVBUX1RIRU5fTUFDCiBzc2xfY3J5cHRfcmVjb3JkOk1CRURUTFNfQ0lQSEVSX0FSSUFfMTI4X0NCQzpNQkVEVExTX01EX1NIQTI1NjoxOjA6TUJFRFRMU19TU0xfVkVSU0lPTl9UTFMxXzI6MDowCiAKIFJlY29yZCBjcnlwdCwgQVJJQS0xMjgtQ0JDLCAxLjIsIFNIQS0yNTYsIEV0TSwgQ0lEIDQrNAotZGVwZW5kc19vbjpNQkVEVExTX1NTTF9EVExTX0NPTk5FQ1RJT05fSUQ6TUJFRFRMU19TU0xfSEFWRV9BUklBOk1CRURUTFNfU1NMX0hBVkVfQ0JDOk1CRURUTFNfU1NMX1BST1RPX1RMUzFfMjpNQkVEVExTX01EX0NBTl9TSEEyNTY6TUJFRFRMU19TU0xfRU5DUllQVF9USEVOX01BQworZGVwZW5kc19vbjpNQkVEVExTX1NTTF9EVExTX0NPTk5FQ1RJT05fSUQ6TUJFRFRMU19TU0xfSEFWRV9BUklBOk1CRURUTFNfU1NMX0hBVkVfQ0JDOk1CRURUTFNfU1NMX1BST1RPX1RMUzFfMjpQU0FfV0FOVF9BTEdfU0hBXzI1NjpNQkVEVExTX1NTTF9FTkNSWVBUX1RIRU5fTUFDCiBzc2xfY3J5cHRfcmVjb3JkOk1CRURUTFNfQ0lQSEVSX0FSSUFfMTI4X0NCQzpNQkVEVExTX01EX1NIQTI1NjoxOjA6TUJFRFRMU19TU0xfVkVSU0lPTl9UTFMxXzI6NDo0CiAKIFJlY29yZCBjcnlwdCwgQVJJQS0xMjgtQ0JDLCAxLjIsIFNIQS0yNTYsIEV0TSwgQ0lEIDQrMAotZGVwZW5kc19vbjpNQkVEVExTX1NTTF9EVExTX0NPTk5FQ1RJT05fSUQ6TUJFRFRMU19TU0xfSEFWRV9BUklBOk1CRURUTFNfU1NMX0hBVkVfQ0JDOk1CRURUTFNfU1NMX1BST1RPX1RMUzFfMjpNQkVEVExTX01EX0NBTl9TSEEyNTY6TUJFRFRMU19TU0xfRU5DUllQVF9USEVOX01BQworZGVwZW5kc19vbjpNQkVEVExTX1NTTF9EVExTX0NPTk5FQ1RJT05fSUQ6TUJFRFRMU19TU0xfSEFWRV9BUklBOk1CRURUTFNfU1NMX0hBVkVfQ0JDOk1CRURUTFNfU1NMX1BST1RPX1RMUzFfMjpQU0FfV0FOVF9BTEdfU0hBXzI1NjpNQkVEVExTX1NTTF9FTkNSWVBUX1RIRU5fTUFDCiBzc2xfY3J5cHRfcmVjb3JkOk1CRURUTFNfQ0lQSEVSX0FSSUFfMTI4X0NCQzpNQkVEVExTX01EX1NIQTI1NjoxOjA6TUJFRFRMU19TU0xfVkVSU0lPTl9UTFMxXzI6NDowCiAKIFJlY29yZCBjcnlwdCwgQVJJQS0xMjgtQ0JDLCAxLjIsIFNIQS0xCkBAIC0xMjU4LDUxICsxMjU4LDUxIEBACiBzc2xfY3J5cHRfcmVjb3JkOk1CRURUTFNfQ0lQSEVSX0FSSUFfMTI4X0NCQzpNQkVEVExTX01EX01ENToxOjA6TUJFRFRMU19TU0xfVkVSU0lPTl9UTFMxXzI6NDowCiAKIFJlY29yZCBjcnlwdCwgQVJJQS0yNTYtQ0JDLCAxLjIsIFNIQS0zODQKLWRlcGVuZHNfb246TUJFRFRMU19TU0xfSEFWRV9BUklBOk1CRURUTFNfU1NMX0hBVkVfQ0JDOk1CRURUTFNfU1NMX1BST1RPX1RMUzFfMjpNQkVEVExTX01EX0NBTl9TSEEzODQKK2RlcGVuZHNfb246TUJFRFRMU19TU0xfSEFWRV9BUklBOk1CRURUTFNfU1NMX0hBVkVfQ0JDOk1CRURUTFNfU1NMX1BST1RPX1RMUzFfMjpQU0FfV0FOVF9BTEdfU0hBXzM4NAogc3NsX2NyeXB0X3JlY29yZDpNQkVEVExTX0NJUEhFUl9BUklBXzI1Nl9DQkM6TUJFRFRMU19NRF9TSEEzODQ6MDowOk1CRURUTFNfU1NMX1ZFUlNJT05fVExTMV8yOjA6MAogCiBSZWNvcmQgY3J5cHQsIEFSSUEtMjU2LUNCQywgMS4yLCBTSEEtMzg0LCBDSUQgNCs0Ci1kZXBlbmRzX29uOk1CRURUTFNfU1NMX0RUTFNfQ09OTkVDVElPTl9JRDpNQkVEVExTX1NTTF9IQVZFX0FSSUE6TUJFRFRMU19TU0xfSEFWRV9DQkM6TUJFRFRMU19TU0xfUFJPVE9fVExTMV8yOk1CRURUTFNfTURfQ0FOX1NIQTM4NAorZGVwZW5kc19vbjpNQkVEVExTX1NTTF9EVExTX0NPTk5FQ1RJT05fSUQ6TUJFRFRMU19TU0xfSEFWRV9BUklBOk1CRURUTFNfU1NMX0hBVkVfQ0JDOk1CRURUTFNfU1NMX1BST1RPX1RMUzFfMjpQU0FfV0FOVF9BTEdfU0hBXzM4NAogc3NsX2NyeXB0X3JlY29yZDpNQkVEVExTX0NJUEhFUl9BUklBXzI1Nl9DQkM6TUJFRFRMU19NRF9TSEEzODQ6MDowOk1CRURUTFNfU1NMX1ZFUlNJT05fVExTMV8yOjQ6NAogCiBSZWNvcmQgY3J5cHQsIEFSSUEtMjU2LUNCQywgMS4yLCBTSEEtMzg0LCBDSUQgNCswCi1kZXBlbmRzX29uOk1CRURUTFNfU1NMX0RUTFNfQ09OTkVDVElPTl9JRDpNQkVEVExTX1NTTF9IQVZFX0FSSUE6TUJFRFRMU19TU0xfSEFWRV9DQkM6TUJFRFRMU19TU0xfUFJPVE9fVExTMV8yOk1CRURUTFNfTURfQ0FOX1NIQTM4NAorZGVwZW5kc19vbjpNQkVEVExTX1NTTF9EVExTX0NPTk5FQ1RJT05fSUQ6TUJFRFRMU19TU0xfSEFWRV9BUklBOk1CRURUTFNfU1NMX0hBVkVfQ0JDOk1CRURUTFNfU1NMX1BST1RPX1RMUzFfMjpQU0FfV0FOVF9BTEdfU0hBXzM4NAogc3NsX2NyeXB0X3JlY29yZDpNQkVEVExTX0NJUEhFUl9BUklBXzI1Nl9DQkM6TUJFRFRMU19NRF9TSEEzODQ6MDowOk1CRURUTFNfU1NMX1ZFUlNJT05fVExTMV8yOjQ6MAogCiBSZWNvcmQgY3J5cHQsIEFSSUEtMjU2LUNCQywgMS4yLCBTSEEtMzg0LCBFdE0KLWRlcGVuZHNfb246TUJFRFRMU19TU0xfSEFWRV9BUklBOk1CRURUTFNfU1NMX0hBVkVfQ0JDOk1CRURUTFNfU1NMX1BST1RPX1RMUzFfMjpNQkVEVExTX01EX0NBTl9TSEEzODQ6TUJFRFRMU19TU0xfRU5DUllQVF9USEVOX01BQworZGVwZW5kc19vbjpNQkVEVExTX1NTTF9IQVZFX0FSSUE6TUJFRFRMU19TU0xfSEFWRV9DQkM6TUJFRFRMU19TU0xfUFJPVE9fVExTMV8yOlBTQV9XQU5UX0FMR19TSEFfMzg0Ok1CRURUTFNfU1NMX0VOQ1JZUFRfVEhFTl9NQUMKIHNzbF9jcnlwdF9yZWNvcmQ6TUJFRFRMU19DSVBIRVJfQVJJQV8yNTZfQ0JDOk1CRURUTFNfTURfU0hBMzg0OjE6MDpNQkVEVExTX1NTTF9WRVJTSU9OX1RMUzFfMjowOjAKIAogUmVjb3JkIGNyeXB0LCBBUklBLTI1Ni1DQkMsIDEuMiwgU0hBLTM4NCwgRXRNLCBDSUQgNCs0Ci1kZXBlbmRzX29uOk1CRURUTFNfU1NMX0RUTFNfQ09OTkVDVElPTl9JRDpNQkVEVExTX1NTTF9IQVZFX0FSSUE6TUJFRFRMU19TU0xfSEFWRV9DQkM6TUJFRFRMU19TU0xfUFJPVE9fVExTMV8yOk1CRURUTFNfTURfQ0FOX1NIQTM4NDpNQkVEVExTX1NTTF9FTkNSWVBUX1RIRU5fTUFDCitkZXBlbmRzX29uOk1CRURUTFNfU1NMX0RUTFNfQ09OTkVDVElPTl9JRDpNQkVEVExTX1NTTF9IQVZFX0FSSUE6TUJFRFRMU19TU0xfSEFWRV9DQkM6TUJFRFRMU19TU0xfUFJPVE9fVExTMV8yOlBTQV9XQU5UX0FMR19TSEFfMzg0Ok1CRURUTFNfU1NMX0VOQ1JZUFRfVEhFTl9NQUMKIHNzbF9jcnlwdF9yZWNvcmQ6TUJFRFRMU19DSVBIRVJfQVJJQV8yNTZfQ0JDOk1CRURUTFNfTURfU0hBMzg0OjE6MDpNQkVEVExTX1NTTF9WRVJTSU9OX1RMUzFfMjo0OjQKIAogUmVjb3JkIGNyeXB0LCBBUklBLTI1Ni1DQkMsIDEuMiwgU0hBLTM4NCwgRXRNLCBDSUQgNCswCi1kZXBlbmRzX29uOk1CRURUTFNfU1NMX0RUTFNfQ09OTkVDVElPTl9JRDpNQkVEVExTX1NTTF9IQVZFX0FSSUE6TUJFRFRMU19TU0xfSEFWRV9DQkM6TUJFRFRMU19TU0xfUFJPVE9fVExTMV8yOk1CRURUTFNfTURfQ0FOX1NIQTM4NDpNQkVEVExTX1NTTF9FTkNSWVBUX1RIRU5fTUFDCitkZXBlbmRzX29uOk1CRURUTFNfU1NMX0RUTFNfQ09OTkVDVElPTl9JRDpNQkVEVExTX1NTTF9IQVZFX0FSSUE6TUJFRFRMU19TU0xfSEFWRV9DQkM6TUJFRFRMU19TU0xfUFJPVE9fVExTMV8yOlBTQV9XQU5UX0FMR19TSEFfMzg0Ok1CRURUTFNfU1NMX0VOQ1JZUFRfVEhFTl9NQUMKIHNzbF9jcnlwdF9yZWNvcmQ6TUJFRFRMU19DSVBIRVJfQVJJQV8yNTZfQ0JDOk1CRURUTFNfTURfU0hBMzg0OjE6MDpNQkVEVExTX1NTTF9WRVJTSU9OX1RMUzFfMjo0OjAKIAogUmVjb3JkIGNyeXB0LCBBUklBLTI1Ni1DQkMsIDEuMiwgU0hBLTI1NgotZGVwZW5kc19vbjpNQkVEVExTX1NTTF9IQVZFX0FSSUE6TUJFRFRMU19TU0xfSEFWRV9DQkM6TUJFRFRMU19TU0xfUFJPVE9fVExTMV8yOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpNQkVEVExTX1NTTF9IQVZFX0FSSUE6TUJFRFRMU19TU0xfSEFWRV9DQkM6TUJFRFRMU19TU0xfUFJPVE9fVExTMV8yOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBzc2xfY3J5cHRfcmVjb3JkOk1CRURUTFNfQ0lQSEVSX0FSSUFfMjU2X0NCQzpNQkVEVExTX01EX1NIQTI1NjowOjA6TUJFRFRMU19TU0xfVkVSU0lPTl9UTFMxXzI6MDowCiAKIFJlY29yZCBjcnlwdCwgQVJJQS0yNTYtQ0JDLCAxLjIsIFNIQS0yNTYsIENJRCA0KzQKLWRlcGVuZHNfb246TUJFRFRMU19TU0xfRFRMU19DT05ORUNUSU9OX0lEOk1CRURUTFNfU1NMX0hBVkVfQVJJQTpNQkVEVExTX1NTTF9IQVZFX0NCQzpNQkVEVExTX1NTTF9QUk9UT19UTFMxXzI6TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOk1CRURUTFNfU1NMX0RUTFNfQ09OTkVDVElPTl9JRDpNQkVEVExTX1NTTF9IQVZFX0FSSUE6TUJFRFRMU19TU0xfSEFWRV9DQkM6TUJFRFRMU19TU0xfUFJPVE9fVExTMV8yOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBzc2xfY3J5cHRfcmVjb3JkOk1CRURUTFNfQ0lQSEVSX0FSSUFfMjU2X0NCQzpNQkVEVExTX01EX1NIQTI1NjowOjA6TUJFRFRMU19TU0xfVkVSU0lPTl9UTFMxXzI6NDo0CiAKIFJlY29yZCBjcnlwdCwgQVJJQS0yNTYtQ0JDLCAxLjIsIFNIQS0yNTYsIENJRCA0KzAKLWRlcGVuZHNfb246TUJFRFRMU19TU0xfRFRMU19DT05ORUNUSU9OX0lEOk1CRURUTFNfU1NMX0hBVkVfQVJJQTpNQkVEVExTX1NTTF9IQVZFX0NCQzpNQkVEVExTX1NTTF9QUk9UT19UTFMxXzI6TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOk1CRURUTFNfU1NMX0RUTFNfQ09OTkVDVElPTl9JRDpNQkVEVExTX1NTTF9IQVZFX0FSSUE6TUJFRFRMU19TU0xfSEFWRV9DQkM6TUJFRFRMU19TU0xfUFJPVE9fVExTMV8yOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBzc2xfY3J5cHRfcmVjb3JkOk1CRURUTFNfQ0lQSEVSX0FSSUFfMjU2X0NCQzpNQkVEVExTX01EX1NIQTI1NjowOjA6TUJFRFRMU19TU0xfVkVSU0lPTl9UTFMxXzI6NDowCiAKIFJlY29yZCBjcnlwdCwgQVJJQS0yNTYtQ0JDLCAxLjIsIFNIQS0yNTYsIEV0TQotZGVwZW5kc19vbjpNQkVEVExTX1NTTF9IQVZFX0FSSUE6TUJFRFRMU19TU0xfSEFWRV9DQkM6TUJFRFRMU19TU0xfUFJPVE9fVExTMV8yOk1CRURUTFNfTURfQ0FOX1NIQTI1NjpNQkVEVExTX1NTTF9FTkNSWVBUX1RIRU5fTUFDCitkZXBlbmRzX29uOk1CRURUTFNfU1NMX0hBVkVfQVJJQTpNQkVEVExTX1NTTF9IQVZFX0NCQzpNQkVEVExTX1NTTF9QUk9UT19UTFMxXzI6UFNBX1dBTlRfQUxHX1NIQV8yNTY6TUJFRFRMU19TU0xfRU5DUllQVF9USEVOX01BQwogc3NsX2NyeXB0X3JlY29yZDpNQkVEVExTX0NJUEhFUl9BUklBXzI1Nl9DQkM6TUJFRFRMU19NRF9TSEEyNTY6MTowOk1CRURUTFNfU1NMX1ZFUlNJT05fVExTMV8yOjA6MAogCiBSZWNvcmQgY3J5cHQsIEFSSUEtMjU2LUNCQywgMS4yLCBTSEEtMjU2LCBFdE0sIENJRCA0KzQKLWRlcGVuZHNfb246TUJFRFRMU19TU0xfRFRMU19DT05ORUNUSU9OX0lEOk1CRURUTFNfU1NMX0hBVkVfQVJJQTpNQkVEVExTX1NTTF9IQVZFX0NCQzpNQkVEVExTX1NTTF9QUk9UT19UTFMxXzI6TUJFRFRMU19NRF9DQU5fU0hBMjU2Ok1CRURUTFNfU1NMX0VOQ1JZUFRfVEhFTl9NQUMKK2RlcGVuZHNfb246TUJFRFRMU19TU0xfRFRMU19DT05ORUNUSU9OX0lEOk1CRURUTFNfU1NMX0hBVkVfQVJJQTpNQkVEVExTX1NTTF9IQVZFX0NCQzpNQkVEVExTX1NTTF9QUk9UT19UTFMxXzI6UFNBX1dBTlRfQUxHX1NIQV8yNTY6TUJFRFRMU19TU0xfRU5DUllQVF9USEVOX01BQwogc3NsX2NyeXB0X3JlY29yZDpNQkVEVExTX0NJUEhFUl9BUklBXzI1Nl9DQkM6TUJFRFRMU19NRF9TSEEyNTY6MTowOk1CRURUTFNfU1NMX1ZFUlNJT05fVExTMV8yOjQ6NAogCiBSZWNvcmQgY3J5cHQsIEFSSUEtMjU2LUNCQywgMS4yLCBTSEEtMjU2LCBFdE0sIENJRCA0KzAKLWRlcGVuZHNfb246TUJFRFRMU19TU0xfRFRMU19DT05ORUNUSU9OX0lEOk1CRURUTFNfU1NMX0hBVkVfQVJJQTpNQkVEVExTX1NTTF9IQVZFX0NCQzpNQkVEVExTX1NTTF9QUk9UT19UTFMxXzI6TUJFRFRMU19NRF9DQU5fU0hBMjU2Ok1CRURUTFNfU1NMX0VOQ1JZUFRfVEhFTl9NQUMKK2RlcGVuZHNfb246TUJFRFRMU19TU0xfRFRMU19DT05ORUNUSU9OX0lEOk1CRURUTFNfU1NMX0hBVkVfQVJJQTpNQkVEVExTX1NTTF9IQVZFX0NCQzpNQkVEVExTX1NTTF9QUk9UT19UTFMxXzI6UFNBX1dBTlRfQUxHX1NIQV8yNTY6TUJFRFRMU19TU0xfRU5DUllQVF9USEVOX01BQwogc3NsX2NyeXB0X3JlY29yZDpNQkVEVExTX0NJUEhFUl9BUklBXzI1Nl9DQkM6TUJFRFRMU19NRF9TSEEyNTY6MTowOk1CRURUTFNfU1NMX1ZFUlNJT05fVExTMV8yOjQ6MAogCiBSZWNvcmQgY3J5cHQsIEFSSUEtMjU2LUNCQywgMS4yLCBTSEEtMQpAQCAtMTM1NCw1MSArMTM1NCw1MSBAQAogc3NsX2NyeXB0X3JlY29yZDpNQkVEVExTX0NJUEhFUl9BUklBXzI1Nl9DQkM6TUJFRFRMU19NRF9NRDU6MTowOk1CRURUTFNfU1NMX1ZFUlNJT05fVExTMV8yOjQ6MAogCiBSZWNvcmQgY3J5cHQsIENBTUVMTElBLTEyOC1DQkMsIDEuMiwgU0hBLTM4NAotZGVwZW5kc19vbjpNQkVEVExTX1NTTF9IQVZFX0NBTUVMTElBOk1CRURUTFNfU1NMX0hBVkVfQ0JDOk1CRURUTFNfU1NMX1BST1RPX1RMUzFfMjpNQkVEVExTX01EX0NBTl9TSEEzODQKK2RlcGVuZHNfb246TUJFRFRMU19TU0xfSEFWRV9DQU1FTExJQTpNQkVEVExTX1NTTF9IQVZFX0NCQzpNQkVEVExTX1NTTF9QUk9UT19UTFMxXzI6UFNBX1dBTlRfQUxHX1NIQV8zODQKIHNzbF9jcnlwdF9yZWNvcmQ6TUJFRFRMU19DSVBIRVJfQ0FNRUxMSUFfMTI4X0NCQzpNQkVEVExTX01EX1NIQTM4NDowOjA6TUJFRFRMU19TU0xfVkVSU0lPTl9UTFMxXzI6MDowCiAKIFJlY29yZCBjcnlwdCwgQ0FNRUxMSUEtMTI4LUNCQywgMS4yLCBTSEEtMzg0LCBDSUQgNCs0Ci1kZXBlbmRzX29uOk1CRURUTFNfU1NMX0RUTFNfQ09OTkVDVElPTl9JRDpNQkVEVExTX1NTTF9IQVZFX0NBTUVMTElBOk1CRURUTFNfU1NMX0hBVkVfQ0JDOk1CRURUTFNfU1NMX1BST1RPX1RMUzFfMjpNQkVEVExTX01EX0NBTl9TSEEzODQKK2RlcGVuZHNfb246TUJFRFRMU19TU0xfRFRMU19DT05ORUNUSU9OX0lEOk1CRURUTFNfU1NMX0hBVkVfQ0FNRUxMSUE6TUJFRFRMU19TU0xfSEFWRV9DQkM6TUJFRFRMU19TU0xfUFJPVE9fVExTMV8yOlBTQV9XQU5UX0FMR19TSEFfMzg0CiBzc2xfY3J5cHRfcmVjb3JkOk1CRURUTFNfQ0lQSEVSX0NBTUVMTElBXzEyOF9DQkM6TUJFRFRMU19NRF9TSEEzODQ6MDowOk1CRURUTFNfU1NMX1ZFUlNJT05fVExTMV8yOjQ6NAogCiBSZWNvcmQgY3J5cHQsIENBTUVMTElBLTEyOC1DQkMsIDEuMiwgU0hBLTM4NCwgQ0lEIDQrMAotZGVwZW5kc19vbjpNQkVEVExTX1NTTF9EVExTX0NPTk5FQ1RJT05fSUQ6TUJFRFRMU19TU0xfSEFWRV9DQU1FTExJQTpNQkVEVExTX1NTTF9IQVZFX0NCQzpNQkVEVExTX1NTTF9QUk9UT19UTFMxXzI6TUJFRFRMU19NRF9DQU5fU0hBMzg0CitkZXBlbmRzX29uOk1CRURUTFNfU1NMX0RUTFNfQ09OTkVDVElPTl9JRDpNQkVEVExTX1NTTF9IQVZFX0NBTUVMTElBOk1CRURUTFNfU1NMX0hBVkVfQ0JDOk1CRURUTFNfU1NMX1BST1RPX1RMUzFfMjpQU0FfV0FOVF9BTEdfU0hBXzM4NAogc3NsX2NyeXB0X3JlY29yZDpNQkVEVExTX0NJUEhFUl9DQU1FTExJQV8xMjhfQ0JDOk1CRURUTFNfTURfU0hBMzg0OjA6MDpNQkVEVExTX1NTTF9WRVJTSU9OX1RMUzFfMjo0OjAKIAogUmVjb3JkIGNyeXB0LCBDQU1FTExJQS0xMjgtQ0JDLCAxLjIsIFNIQS0zODQsIEV0TQotZGVwZW5kc19vbjpNQkVEVExTX1NTTF9IQVZFX0NBTUVMTElBOk1CRURUTFNfU1NMX0hBVkVfQ0JDOk1CRURUTFNfU1NMX1BST1RPX1RMUzFfMjpNQkVEVExTX01EX0NBTl9TSEEzODQ6TUJFRFRMU19TU0xfRU5DUllQVF9USEVOX01BQworZGVwZW5kc19vbjpNQkVEVExTX1NTTF9IQVZFX0NBTUVMTElBOk1CRURUTFNfU1NMX0hBVkVfQ0JDOk1CRURUTFNfU1NMX1BST1RPX1RMUzFfMjpQU0FfV0FOVF9BTEdfU0hBXzM4NDpNQkVEVExTX1NTTF9FTkNSWVBUX1RIRU5fTUFDCiBzc2xfY3J5cHRfcmVjb3JkOk1CRURUTFNfQ0lQSEVSX0NBTUVMTElBXzEyOF9DQkM6TUJFRFRMU19NRF9TSEEzODQ6MTowOk1CRURUTFNfU1NMX1ZFUlNJT05fVExTMV8yOjA6MAogCiBSZWNvcmQgY3J5cHQsIENBTUVMTElBLTEyOC1DQkMsIDEuMiwgU0hBLTM4NCwgRXRNLCBDSUQgNCs0Ci1kZXBlbmRzX29uOk1CRURUTFNfU1NMX0RUTFNfQ09OTkVDVElPTl9JRDpNQkVEVExTX1NTTF9IQVZFX0NBTUVMTElBOk1CRURUTFNfU1NMX0hBVkVfQ0JDOk1CRURUTFNfU1NMX1BST1RPX1RMUzFfMjpNQkVEVExTX01EX0NBTl9TSEEzODQ6TUJFRFRMU19TU0xfRU5DUllQVF9USEVOX01BQworZGVwZW5kc19vbjpNQkVEVExTX1NTTF9EVExTX0NPTk5FQ1RJT05fSUQ6TUJFRFRMU19TU0xfSEFWRV9DQU1FTExJQTpNQkVEVExTX1NTTF9IQVZFX0NCQzpNQkVEVExTX1NTTF9QUk9UT19UTFMxXzI6UFNBX1dBTlRfQUxHX1NIQV8zODQ6TUJFRFRMU19TU0xfRU5DUllQVF9USEVOX01BQwogc3NsX2NyeXB0X3JlY29yZDpNQkVEVExTX0NJUEhFUl9DQU1FTExJQV8xMjhfQ0JDOk1CRURUTFNfTURfU0hBMzg0OjE6MDpNQkVEVExTX1NTTF9WRVJTSU9OX1RMUzFfMjo0OjQKIAogUmVjb3JkIGNyeXB0LCBDQU1FTExJQS0xMjgtQ0JDLCAxLjIsIFNIQS0zODQsIEV0TSwgQ0lEIDQrMAotZGVwZW5kc19vbjpNQkVEVExTX1NTTF9EVExTX0NPTk5FQ1RJT05fSUQ6TUJFRFRMU19TU0xfSEFWRV9DQU1FTExJQTpNQkVEVExTX1NTTF9IQVZFX0NCQzpNQkVEVExTX1NTTF9QUk9UT19UTFMxXzI6TUJFRFRMU19NRF9DQU5fU0hBMzg0Ok1CRURUTFNfU1NMX0VOQ1JZUFRfVEhFTl9NQUMKK2RlcGVuZHNfb246TUJFRFRMU19TU0xfRFRMU19DT05ORUNUSU9OX0lEOk1CRURUTFNfU1NMX0hBVkVfQ0FNRUxMSUE6TUJFRFRMU19TU0xfSEFWRV9DQkM6TUJFRFRMU19TU0xfUFJPVE9fVExTMV8yOlBTQV9XQU5UX0FMR19TSEFfMzg0Ok1CRURUTFNfU1NMX0VOQ1JZUFRfVEhFTl9NQUMKIHNzbF9jcnlwdF9yZWNvcmQ6TUJFRFRMU19DSVBIRVJfQ0FNRUxMSUFfMTI4X0NCQzpNQkVEVExTX01EX1NIQTM4NDoxOjA6TUJFRFRMU19TU0xfVkVSU0lPTl9UTFMxXzI6NDowCiAKIFJlY29yZCBjcnlwdCwgQ0FNRUxMSUEtMTI4LUNCQywgMS4yLCBTSEEtMjU2Ci1kZXBlbmRzX29uOk1CRURUTFNfU1NMX0hBVkVfQ0FNRUxMSUE6TUJFRFRMU19TU0xfSEFWRV9DQkM6TUJFRFRMU19TU0xfUFJPVE9fVExTMV8yOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpNQkVEVExTX1NTTF9IQVZFX0NBTUVMTElBOk1CRURUTFNfU1NMX0hBVkVfQ0JDOk1CRURUTFNfU1NMX1BST1RPX1RMUzFfMjpQU0FfV0FOVF9BTEdfU0hBXzI1Ngogc3NsX2NyeXB0X3JlY29yZDpNQkVEVExTX0NJUEhFUl9DQU1FTExJQV8xMjhfQ0JDOk1CRURUTFNfTURfU0hBMjU2OjA6MDpNQkVEVExTX1NTTF9WRVJTSU9OX1RMUzFfMjowOjAKIAogUmVjb3JkIGNyeXB0LCBDQU1FTExJQS0xMjgtQ0JDLCAxLjIsIFNIQS0yNTYsIENJRCA0KzQKLWRlcGVuZHNfb246TUJFRFRMU19TU0xfRFRMU19DT05ORUNUSU9OX0lEOk1CRURUTFNfU1NMX0hBVkVfQ0FNRUxMSUE6TUJFRFRMU19TU0xfSEFWRV9DQkM6TUJFRFRMU19TU0xfUFJPVE9fVExTMV8yOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpNQkVEVExTX1NTTF9EVExTX0NPTk5FQ1RJT05fSUQ6TUJFRFRMU19TU0xfSEFWRV9DQU1FTExJQTpNQkVEVExTX1NTTF9IQVZFX0NCQzpNQkVEVExTX1NTTF9QUk9UT19UTFMxXzI6UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHNzbF9jcnlwdF9yZWNvcmQ6TUJFRFRMU19DSVBIRVJfQ0FNRUxMSUFfMTI4X0NCQzpNQkVEVExTX01EX1NIQTI1NjowOjA6TUJFRFRMU19TU0xfVkVSU0lPTl9UTFMxXzI6NDo0CiAKIFJlY29yZCBjcnlwdCwgQ0FNRUxMSUEtMTI4LUNCQywgMS4yLCBTSEEtMjU2LCBDSUQgNCswCi1kZXBlbmRzX29uOk1CRURUTFNfU1NMX0RUTFNfQ09OTkVDVElPTl9JRDpNQkVEVExTX1NTTF9IQVZFX0NBTUVMTElBOk1CRURUTFNfU1NMX0hBVkVfQ0JDOk1CRURUTFNfU1NMX1BST1RPX1RMUzFfMjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246TUJFRFRMU19TU0xfRFRMU19DT05ORUNUSU9OX0lEOk1CRURUTFNfU1NMX0hBVkVfQ0FNRUxMSUE6TUJFRFRMU19TU0xfSEFWRV9DQkM6TUJFRFRMU19TU0xfUFJPVE9fVExTMV8yOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBzc2xfY3J5cHRfcmVjb3JkOk1CRURUTFNfQ0lQSEVSX0NBTUVMTElBXzEyOF9DQkM6TUJFRFRMU19NRF9TSEEyNTY6MDowOk1CRURUTFNfU1NMX1ZFUlNJT05fVExTMV8yOjQ6MAogCiBSZWNvcmQgY3J5cHQsIENBTUVMTElBLTEyOC1DQkMsIDEuMiwgU0hBLTI1NiwgRXRNCi1kZXBlbmRzX29uOk1CRURUTFNfU1NMX0hBVkVfQ0FNRUxMSUE6TUJFRFRMU19TU0xfSEFWRV9DQkM6TUJFRFRMU19TU0xfUFJPVE9fVExTMV8yOk1CRURUTFNfTURfQ0FOX1NIQTI1NjpNQkVEVExTX1NTTF9FTkNSWVBUX1RIRU5fTUFDCitkZXBlbmRzX29uOk1CRURUTFNfU1NMX0hBVkVfQ0FNRUxMSUE6TUJFRFRMU19TU0xfSEFWRV9DQkM6TUJFRFRMU19TU0xfUFJPVE9fVExTMV8yOlBTQV9XQU5UX0FMR19TSEFfMjU2Ok1CRURUTFNfU1NMX0VOQ1JZUFRfVEhFTl9NQUMKIHNzbF9jcnlwdF9yZWNvcmQ6TUJFRFRMU19DSVBIRVJfQ0FNRUxMSUFfMTI4X0NCQzpNQkVEVExTX01EX1NIQTI1NjoxOjA6TUJFRFRMU19TU0xfVkVSU0lPTl9UTFMxXzI6MDowCiAKIFJlY29yZCBjcnlwdCwgQ0FNRUxMSUEtMTI4LUNCQywgMS4yLCBTSEEtMjU2LCBFdE0sIENJRCA0KzQKLWRlcGVuZHNfb246TUJFRFRMU19TU0xfRFRMU19DT05ORUNUSU9OX0lEOk1CRURUTFNfU1NMX0hBVkVfQ0FNRUxMSUE6TUJFRFRMU19TU0xfSEFWRV9DQkM6TUJFRFRMU19TU0xfUFJPVE9fVExTMV8yOk1CRURUTFNfTURfQ0FOX1NIQTI1NjpNQkVEVExTX1NTTF9FTkNSWVBUX1RIRU5fTUFDCitkZXBlbmRzX29uOk1CRURUTFNfU1NMX0RUTFNfQ09OTkVDVElPTl9JRDpNQkVEVExTX1NTTF9IQVZFX0NBTUVMTElBOk1CRURUTFNfU1NMX0hBVkVfQ0JDOk1CRURUTFNfU1NMX1BST1RPX1RMUzFfMjpQU0FfV0FOVF9BTEdfU0hBXzI1NjpNQkVEVExTX1NTTF9FTkNSWVBUX1RIRU5fTUFDCiBzc2xfY3J5cHRfcmVjb3JkOk1CRURUTFNfQ0lQSEVSX0NBTUVMTElBXzEyOF9DQkM6TUJFRFRMU19NRF9TSEEyNTY6MTowOk1CRURUTFNfU1NMX1ZFUlNJT05fVExTMV8yOjQ6NAogCiBSZWNvcmQgY3J5cHQsIENBTUVMTElBLTEyOC1DQkMsIDEuMiwgU0hBLTI1NiwgRXRNLCBDSUQgNCswCi1kZXBlbmRzX29uOk1CRURUTFNfU1NMX0RUTFNfQ09OTkVDVElPTl9JRDpNQkVEVExTX1NTTF9IQVZFX0NBTUVMTElBOk1CRURUTFNfU1NMX0hBVkVfQ0JDOk1CRURUTFNfU1NMX1BST1RPX1RMUzFfMjpNQkVEVExTX01EX0NBTl9TSEEyNTY6TUJFRFRMU19TU0xfRU5DUllQVF9USEVOX01BQworZGVwZW5kc19vbjpNQkVEVExTX1NTTF9EVExTX0NPTk5FQ1RJT05fSUQ6TUJFRFRMU19TU0xfSEFWRV9DQU1FTExJQTpNQkVEVExTX1NTTF9IQVZFX0NCQzpNQkVEVExTX1NTTF9QUk9UT19UTFMxXzI6UFNBX1dBTlRfQUxHX1NIQV8yNTY6TUJFRFRMU19TU0xfRU5DUllQVF9USEVOX01BQwogc3NsX2NyeXB0X3JlY29yZDpNQkVEVExTX0NJUEhFUl9DQU1FTExJQV8xMjhfQ0JDOk1CRURUTFNfTURfU0hBMjU2OjE6MDpNQkVEVExTX1NTTF9WRVJTSU9OX1RMUzFfMjo0OjAKIAogUmVjb3JkIGNyeXB0LCBDQU1FTExJQS0xMjgtQ0JDLCAxLjIsIFNIQS0xCkBAIC0xNDUwLDUxICsxNDUwLDUxIEBACiBzc2xfY3J5cHRfcmVjb3JkOk1CRURUTFNfQ0lQSEVSX0NBTUVMTElBXzEyOF9DQkM6TUJFRFRMU19NRF9NRDU6MTowOk1CRURUTFNfU1NMX1ZFUlNJT05fVExTMV8yOjQ6MAogCiBSZWNvcmQgY3J5cHQsIENBTUVMTElBLTI1Ni1DQkMsIDEuMiwgU0hBLTM4NAotZGVwZW5kc19vbjpNQkVEVExTX1NTTF9IQVZFX0NBTUVMTElBOk1CRURUTFNfU1NMX0hBVkVfQ0JDOk1CRURUTFNfU1NMX1BST1RPX1RMUzFfMjpNQkVEVExTX01EX0NBTl9TSEEzODQKK2RlcGVuZHNfb246TUJFRFRMU19TU0xfSEFWRV9DQU1FTExJQTpNQkVEVExTX1NTTF9IQVZFX0NCQzpNQkVEVExTX1NTTF9QUk9UT19UTFMxXzI6UFNBX1dBTlRfQUxHX1NIQV8zODQKIHNzbF9jcnlwdF9yZWNvcmQ6TUJFRFRMU19DSVBIRVJfQ0FNRUxMSUFfMjU2X0NCQzpNQkVEVExTX01EX1NIQTM4NDowOjA6TUJFRFRMU19TU0xfVkVSU0lPTl9UTFMxXzI6MDowCiAKIFJlY29yZCBjcnlwdCwgQ0FNRUxMSUEtMjU2LUNCQywgMS4yLCBTSEEtMzg0LCBDSUQgNCs0Ci1kZXBlbmRzX29uOk1CRURUTFNfU1NMX0RUTFNfQ09OTkVDVElPTl9JRDpNQkVEVExTX1NTTF9IQVZFX0NBTUVMTElBOk1CRURUTFNfU1NMX0hBVkVfQ0JDOk1CRURUTFNfU1NMX1BST1RPX1RMUzFfMjpNQkVEVExTX01EX0NBTl9TSEEzODQKK2RlcGVuZHNfb246TUJFRFRMU19TU0xfRFRMU19DT05ORUNUSU9OX0lEOk1CRURUTFNfU1NMX0hBVkVfQ0FNRUxMSUE6TUJFRFRMU19TU0xfSEFWRV9DQkM6TUJFRFRMU19TU0xfUFJPVE9fVExTMV8yOlBTQV9XQU5UX0FMR19TSEFfMzg0CiBzc2xfY3J5cHRfcmVjb3JkOk1CRURUTFNfQ0lQSEVSX0NBTUVMTElBXzI1Nl9DQkM6TUJFRFRMU19NRF9TSEEzODQ6MDowOk1CRURUTFNfU1NMX1ZFUlNJT05fVExTMV8yOjQ6NAogCiBSZWNvcmQgY3J5cHQsIENBTUVMTElBLTI1Ni1DQkMsIDEuMiwgU0hBLTM4NCwgQ0lEIDQrMAotZGVwZW5kc19vbjpNQkVEVExTX1NTTF9EVExTX0NPTk5FQ1RJT05fSUQ6TUJFRFRMU19TU0xfSEFWRV9DQU1FTExJQTpNQkVEVExTX1NTTF9IQVZFX0NCQzpNQkVEVExTX1NTTF9QUk9UT19UTFMxXzI6TUJFRFRMU19NRF9DQU5fU0hBMzg0CitkZXBlbmRzX29uOk1CRURUTFNfU1NMX0RUTFNfQ09OTkVDVElPTl9JRDpNQkVEVExTX1NTTF9IQVZFX0NBTUVMTElBOk1CRURUTFNfU1NMX0hBVkVfQ0JDOk1CRURUTFNfU1NMX1BST1RPX1RMUzFfMjpQU0FfV0FOVF9BTEdfU0hBXzM4NAogc3NsX2NyeXB0X3JlY29yZDpNQkVEVExTX0NJUEhFUl9DQU1FTExJQV8yNTZfQ0JDOk1CRURUTFNfTURfU0hBMzg0OjA6MDpNQkVEVExTX1NTTF9WRVJTSU9OX1RMUzFfMjo0OjAKIAogUmVjb3JkIGNyeXB0LCBDQU1FTExJQS0yNTYtQ0JDLCAxLjIsIFNIQS0zODQsIEV0TQotZGVwZW5kc19vbjpNQkVEVExTX1NTTF9IQVZFX0NBTUVMTElBOk1CRURUTFNfU1NMX0hBVkVfQ0JDOk1CRURUTFNfU1NMX1BST1RPX1RMUzFfMjpNQkVEVExTX01EX0NBTl9TSEEzODQ6TUJFRFRMU19TU0xfRU5DUllQVF9USEVOX01BQworZGVwZW5kc19vbjpNQkVEVExTX1NTTF9IQVZFX0NBTUVMTElBOk1CRURUTFNfU1NMX0hBVkVfQ0JDOk1CRURUTFNfU1NMX1BST1RPX1RMUzFfMjpQU0FfV0FOVF9BTEdfU0hBXzM4NDpNQkVEVExTX1NTTF9FTkNSWVBUX1RIRU5fTUFDCiBzc2xfY3J5cHRfcmVjb3JkOk1CRURUTFNfQ0lQSEVSX0NBTUVMTElBXzI1Nl9DQkM6TUJFRFRMU19NRF9TSEEzODQ6MTowOk1CRURUTFNfU1NMX1ZFUlNJT05fVExTMV8yOjA6MAogCiBSZWNvcmQgY3J5cHQsIENBTUVMTElBLTI1Ni1DQkMsIDEuMiwgU0hBLTM4NCwgRXRNLCBDSUQgNCs0Ci1kZXBlbmRzX29uOk1CRURUTFNfU1NMX0RUTFNfQ09OTkVDVElPTl9JRDpNQkVEVExTX1NTTF9IQVZFX0NBTUVMTElBOk1CRURUTFNfU1NMX0hBVkVfQ0JDOk1CRURUTFNfU1NMX1BST1RPX1RMUzFfMjpNQkVEVExTX01EX0NBTl9TSEEzODQ6TUJFRFRMU19TU0xfRU5DUllQVF9USEVOX01BQworZGVwZW5kc19vbjpNQkVEVExTX1NTTF9EVExTX0NPTk5FQ1RJT05fSUQ6TUJFRFRMU19TU0xfSEFWRV9DQU1FTExJQTpNQkVEVExTX1NTTF9IQVZFX0NCQzpNQkVEVExTX1NTTF9QUk9UT19UTFMxXzI6UFNBX1dBTlRfQUxHX1NIQV8zODQ6TUJFRFRMU19TU0xfRU5DUllQVF9USEVOX01BQwogc3NsX2NyeXB0X3JlY29yZDpNQkVEVExTX0NJUEhFUl9DQU1FTExJQV8yNTZfQ0JDOk1CRURUTFNfTURfU0hBMzg0OjE6MDpNQkVEVExTX1NTTF9WRVJTSU9OX1RMUzFfMjo0OjQKIAogUmVjb3JkIGNyeXB0LCBDQU1FTExJQS0yNTYtQ0JDLCAxLjIsIFNIQS0zODQsIEV0TSwgQ0lEIDQrMAotZGVwZW5kc19vbjpNQkVEVExTX1NTTF9EVExTX0NPTk5FQ1RJT05fSUQ6TUJFRFRMU19TU0xfSEFWRV9DQU1FTExJQTpNQkVEVExTX1NTTF9IQVZFX0NCQzpNQkVEVExTX1NTTF9QUk9UT19UTFMxXzI6TUJFRFRMU19NRF9DQU5fU0hBMzg0Ok1CRURUTFNfU1NMX0VOQ1JZUFRfVEhFTl9NQUMKK2RlcGVuZHNfb246TUJFRFRMU19TU0xfRFRMU19DT05ORUNUSU9OX0lEOk1CRURUTFNfU1NMX0hBVkVfQ0FNRUxMSUE6TUJFRFRMU19TU0xfSEFWRV9DQkM6TUJFRFRMU19TU0xfUFJPVE9fVExTMV8yOlBTQV9XQU5UX0FMR19TSEFfMzg0Ok1CRURUTFNfU1NMX0VOQ1JZUFRfVEhFTl9NQUMKIHNzbF9jcnlwdF9yZWNvcmQ6TUJFRFRMU19DSVBIRVJfQ0FNRUxMSUFfMjU2X0NCQzpNQkVEVExTX01EX1NIQTM4NDoxOjA6TUJFRFRMU19TU0xfVkVSU0lPTl9UTFMxXzI6NDowCiAKIFJlY29yZCBjcnlwdCwgQ0FNRUxMSUEtMjU2LUNCQywgMS4yLCBTSEEtMjU2Ci1kZXBlbmRzX29uOk1CRURUTFNfU1NMX0hBVkVfQ0FNRUxMSUE6TUJFRFRMU19TU0xfSEFWRV9DQkM6TUJFRFRMU19TU0xfUFJPVE9fVExTMV8yOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpNQkVEVExTX1NTTF9IQVZFX0NBTUVMTElBOk1CRURUTFNfU1NMX0hBVkVfQ0JDOk1CRURUTFNfU1NMX1BST1RPX1RMUzFfMjpQU0FfV0FOVF9BTEdfU0hBXzI1Ngogc3NsX2NyeXB0X3JlY29yZDpNQkVEVExTX0NJUEhFUl9DQU1FTExJQV8yNTZfQ0JDOk1CRURUTFNfTURfU0hBMjU2OjA6MDpNQkVEVExTX1NTTF9WRVJTSU9OX1RMUzFfMjowOjAKIAogUmVjb3JkIGNyeXB0LCBDQU1FTExJQS0yNTYtQ0JDLCAxLjIsIFNIQS0yNTYsIENJRCA0KzQKLWRlcGVuZHNfb246TUJFRFRMU19TU0xfRFRMU19DT05ORUNUSU9OX0lEOk1CRURUTFNfU1NMX0hBVkVfQ0FNRUxMSUE6TUJFRFRMU19TU0xfSEFWRV9DQkM6TUJFRFRMU19TU0xfUFJPVE9fVExTMV8yOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpNQkVEVExTX1NTTF9EVExTX0NPTk5FQ1RJT05fSUQ6TUJFRFRMU19TU0xfSEFWRV9DQU1FTExJQTpNQkVEVExTX1NTTF9IQVZFX0NCQzpNQkVEVExTX1NTTF9QUk9UT19UTFMxXzI6UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHNzbF9jcnlwdF9yZWNvcmQ6TUJFRFRMU19DSVBIRVJfQ0FNRUxMSUFfMjU2X0NCQzpNQkVEVExTX01EX1NIQTI1NjowOjA6TUJFRFRMU19TU0xfVkVSU0lPTl9UTFMxXzI6NDo0CiAKIFJlY29yZCBjcnlwdCwgQ0FNRUxMSUEtMjU2LUNCQywgMS4yLCBTSEEtMjU2LCBDSUQgNCswCi1kZXBlbmRzX29uOk1CRURUTFNfU1NMX0RUTFNfQ09OTkVDVElPTl9JRDpNQkVEVExTX1NTTF9IQVZFX0NBTUVMTElBOk1CRURUTFNfU1NMX0hBVkVfQ0JDOk1CRURUTFNfU1NMX1BST1RPX1RMUzFfMjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246TUJFRFRMU19TU0xfRFRMU19DT05ORUNUSU9OX0lEOk1CRURUTFNfU1NMX0hBVkVfQ0FNRUxMSUE6TUJFRFRMU19TU0xfSEFWRV9DQkM6TUJFRFRMU19TU0xfUFJPVE9fVExTMV8yOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBzc2xfY3J5cHRfcmVjb3JkOk1CRURUTFNfQ0lQSEVSX0NBTUVMTElBXzI1Nl9DQkM6TUJFRFRMU19NRF9TSEEyNTY6MDowOk1CRURUTFNfU1NMX1ZFUlNJT05fVExTMV8yOjQ6MAogCiBSZWNvcmQgY3J5cHQsIENBTUVMTElBLTI1Ni1DQkMsIDEuMiwgU0hBLTI1NiwgRXRNCi1kZXBlbmRzX29uOk1CRURUTFNfU1NMX0hBVkVfQ0FNRUxMSUE6TUJFRFRMU19TU0xfSEFWRV9DQkM6TUJFRFRMU19TU0xfUFJPVE9fVExTMV8yOk1CRURUTFNfTURfQ0FOX1NIQTI1NjpNQkVEVExTX1NTTF9FTkNSWVBUX1RIRU5fTUFDCitkZXBlbmRzX29uOk1CRURUTFNfU1NMX0hBVkVfQ0FNRUxMSUE6TUJFRFRMU19TU0xfSEFWRV9DQkM6TUJFRFRMU19TU0xfUFJPVE9fVExTMV8yOlBTQV9XQU5UX0FMR19TSEFfMjU2Ok1CRURUTFNfU1NMX0VOQ1JZUFRfVEhFTl9NQUMKIHNzbF9jcnlwdF9yZWNvcmQ6TUJFRFRMU19DSVBIRVJfQ0FNRUxMSUFfMjU2X0NCQzpNQkVEVExTX01EX1NIQTI1NjoxOjA6TUJFRFRMU19TU0xfVkVSU0lPTl9UTFMxXzI6MDowCiAKIFJlY29yZCBjcnlwdCwgQ0FNRUxMSUEtMjU2LUNCQywgMS4yLCBTSEEtMjU2LCBFdE0sIENJRCA0KzQKLWRlcGVuZHNfb246TUJFRFRMU19TU0xfRFRMU19DT05ORUNUSU9OX0lEOk1CRURUTFNfU1NMX0hBVkVfQ0FNRUxMSUE6TUJFRFRMU19TU0xfSEFWRV9DQkM6TUJFRFRMU19TU0xfUFJPVE9fVExTMV8yOk1CRURUTFNfTURfQ0FOX1NIQTI1NjpNQkVEVExTX1NTTF9FTkNSWVBUX1RIRU5fTUFDCitkZXBlbmRzX29uOk1CRURUTFNfU1NMX0RUTFNfQ09OTkVDVElPTl9JRDpNQkVEVExTX1NTTF9IQVZFX0NBTUVMTElBOk1CRURUTFNfU1NMX0hBVkVfQ0JDOk1CRURUTFNfU1NMX1BST1RPX1RMUzFfMjpQU0FfV0FOVF9BTEdfU0hBXzI1NjpNQkVEVExTX1NTTF9FTkNSWVBUX1RIRU5fTUFDCiBzc2xfY3J5cHRfcmVjb3JkOk1CRURUTFNfQ0lQSEVSX0NBTUVMTElBXzI1Nl9DQkM6TUJFRFRMU19NRF9TSEEyNTY6MTowOk1CRURUTFNfU1NMX1ZFUlNJT05fVExTMV8yOjQ6NAogCiBSZWNvcmQgY3J5cHQsIENBTUVMTElBLTI1Ni1DQkMsIDEuMiwgU0hBLTI1NiwgRXRNLCBDSUQgNCswCi1kZXBlbmRzX29uOk1CRURUTFNfU1NMX0RUTFNfQ09OTkVDVElPTl9JRDpNQkVEVExTX1NTTF9IQVZFX0NBTUVMTElBOk1CRURUTFNfU1NMX0hBVkVfQ0JDOk1CRURUTFNfU1NMX1BST1RPX1RMUzFfMjpNQkVEVExTX01EX0NBTl9TSEEyNTY6TUJFRFRMU19TU0xfRU5DUllQVF9USEVOX01BQworZGVwZW5kc19vbjpNQkVEVExTX1NTTF9EVExTX0NPTk5FQ1RJT05fSUQ6TUJFRFRMU19TU0xfSEFWRV9DQU1FTExJQTpNQkVEVExTX1NTTF9IQVZFX0NCQzpNQkVEVExTX1NTTF9QUk9UT19UTFMxXzI6UFNBX1dBTlRfQUxHX1NIQV8yNTY6TUJFRFRMU19TU0xfRU5DUllQVF9USEVOX01BQwogc3NsX2NyeXB0X3JlY29yZDpNQkVEVExTX0NJUEhFUl9DQU1FTExJQV8yNTZfQ0JDOk1CRURUTFNfTURfU0hBMjU2OjE6MDpNQkVEVExTX1NTTF9WRVJTSU9OX1RMUzFfMjo0OjAKIAogUmVjb3JkIGNyeXB0LCBDQU1FTExJQS0yNTYtQ0JDLCAxLjIsIFNIQS0xCkBAIC0xNzg2LDE5ICsxNzg2LDE5IEBACiBzc2xfY3J5cHRfcmVjb3JkOk1CRURUTFNfQ0lQSEVSX0NBTUVMTElBXzI1Nl9DQ006TUJFRFRMU19NRF9NRDU6MDoxOk1CRURUTFNfU1NMX1ZFUlNJT05fVExTMV8yOjQ6MAogCiBSZWNvcmQgY3J5cHQsIE5VTEwgY2lwaGVyLCAxLjIsIFNIQS0zODQKLWRlcGVuZHNfb246TUJFRFRMU19DSVBIRVJfTlVMTF9DSVBIRVI6TUJFRFRMU19TU0xfUFJPVE9fVExTMV8yOk1CRURUTFNfTURfQ0FOX1NIQTM4NAorZGVwZW5kc19vbjpNQkVEVExTX0NJUEhFUl9OVUxMX0NJUEhFUjpNQkVEVExTX1NTTF9QUk9UT19UTFMxXzI6UFNBX1dBTlRfQUxHX1NIQV8zODQKIHNzbF9jcnlwdF9yZWNvcmQ6TUJFRFRMU19DSVBIRVJfTlVMTDpNQkVEVExTX01EX1NIQTM4NDowOjA6TUJFRFRMU19TU0xfVkVSU0lPTl9UTFMxXzI6MDowCiAKIFJlY29yZCBjcnlwdCwgTlVMTCBjaXBoZXIsIDEuMiwgU0hBLTM4NCwgRXRNCi1kZXBlbmRzX29uOk1CRURUTFNfQ0lQSEVSX05VTExfQ0lQSEVSOk1CRURUTFNfU1NMX1BST1RPX1RMUzFfMjpNQkVEVExTX01EX0NBTl9TSEEzODQ6TUJFRFRMU19TU0xfRU5DUllQVF9USEVOX01BQworZGVwZW5kc19vbjpNQkVEVExTX0NJUEhFUl9OVUxMX0NJUEhFUjpNQkVEVExTX1NTTF9QUk9UT19UTFMxXzI6UFNBX1dBTlRfQUxHX1NIQV8zODQ6TUJFRFRMU19TU0xfRU5DUllQVF9USEVOX01BQwogc3NsX2NyeXB0X3JlY29yZDpNQkVEVExTX0NJUEhFUl9OVUxMOk1CRURUTFNfTURfU0hBMzg0OjE6MDpNQkVEVExTX1NTTF9WRVJTSU9OX1RMUzFfMjowOjAKIAogUmVjb3JkIGNyeXB0LCBOVUxMIGNpcGhlciwgMS4yLCBTSEEtMjU2Ci1kZXBlbmRzX29uOk1CRURUTFNfQ0lQSEVSX05VTExfQ0lQSEVSOk1CRURUTFNfU1NMX1BST1RPX1RMUzFfMjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246TUJFRFRMU19DSVBIRVJfTlVMTF9DSVBIRVI6TUJFRFRMU19TU0xfUFJPVE9fVExTMV8yOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBzc2xfY3J5cHRfcmVjb3JkOk1CRURUTFNfQ0lQSEVSX05VTEw6TUJFRFRMU19NRF9TSEEyNTY6MDowOk1CRURUTFNfU1NMX1ZFUlNJT05fVExTMV8yOjA6MAogCiBSZWNvcmQgY3J5cHQsIE5VTEwgY2lwaGVyLCAxLjIsIFNIQS0yNTYsIEV0TQotZGVwZW5kc19vbjpNQkVEVExTX0NJUEhFUl9OVUxMX0NJUEhFUjpNQkVEVExTX1NTTF9QUk9UT19UTFMxXzI6TUJFRFRMU19NRF9DQU5fU0hBMjU2Ok1CRURUTFNfU1NMX0VOQ1JZUFRfVEhFTl9NQUMKK2RlcGVuZHNfb246TUJFRFRMU19DSVBIRVJfTlVMTF9DSVBIRVI6TUJFRFRMU19TU0xfUFJPVE9fVExTMV8yOlBTQV9XQU5UX0FMR19TSEFfMjU2Ok1CRURUTFNfU1NMX0VOQ1JZUFRfVEhFTl9NQUMKIHNzbF9jcnlwdF9yZWNvcmQ6TUJFRFRMU19DSVBIRVJfTlVMTDpNQkVEVExTX01EX1NIQTI1NjoxOjA6TUJFRFRMU19TU0xfVkVSU0lPTl9UTFMxXzI6MDowCiAKIFJlY29yZCBjcnlwdCwgTlVMTCBjaXBoZXIsIDEuMiwgU0hBLTEKQEAgLTE4NDIsNTEgKzE4NDIsNTEgQEAKIHNzbF9jcnlwdF9yZWNvcmRfc21hbGw6TUJFRFRMU19DSVBIRVJfQ0hBQ0hBMjBfUE9MWTEzMDU6TUJFRFRMU19NRF9NRDU6MDowOk1CRURUTFNfU1NMX1ZFUlNJT05fVExTMV8yOjQ6MAogCiBSZWNvcmQgY3J5cHQsIGxpdHRsZSBzcGFjZSwgQUVTLTEyOC1DQkMsIDEuMiwgU0hBLTM4NAotZGVwZW5kc19vbjpNQkVEVExTX1NTTF9IQVZFX0FFUzpNQkVEVExTX1NTTF9IQVZFX0NCQzpNQkVEVExTX1NTTF9QUk9UT19UTFMxXzI6TUJFRFRMU19NRF9DQU5fU0hBMzg0CitkZXBlbmRzX29uOk1CRURUTFNfU1NMX0hBVkVfQUVTOk1CRURUTFNfU1NMX0hBVkVfQ0JDOk1CRURUTFNfU1NMX1BST1RPX1RMUzFfMjpQU0FfV0FOVF9BTEdfU0hBXzM4NAogc3NsX2NyeXB0X3JlY29yZF9zbWFsbDpNQkVEVExTX0NJUEhFUl9BRVNfMTI4X0NCQzpNQkVEVExTX01EX1NIQTM4NDowOjA6TUJFRFRMU19TU0xfVkVSU0lPTl9UTFMxXzI6MDowCiAKIFJlY29yZCBjcnlwdCwgbGl0dGxlIHNwYWNlLCBBRVMtMTI4LUNCQywgMS4yLCBTSEEtMzg0LCBDSUQgNCs0Ci1kZXBlbmRzX29uOk1CRURUTFNfU1NMX0RUTFNfQ09OTkVDVElPTl9JRDpNQkVEVExTX1NTTF9IQVZFX0FFUzpNQkVEVExTX1NTTF9IQVZFX0NCQzpNQkVEVExTX1NTTF9QUk9UT19UTFMxXzI6TUJFRFRMU19NRF9DQU5fU0hBMzg0CitkZXBlbmRzX29uOk1CRURUTFNfU1NMX0RUTFNfQ09OTkVDVElPTl9JRDpNQkVEVExTX1NTTF9IQVZFX0FFUzpNQkVEVExTX1NTTF9IQVZFX0NCQzpNQkVEVExTX1NTTF9QUk9UT19UTFMxXzI6UFNBX1dBTlRfQUxHX1NIQV8zODQKIHNzbF9jcnlwdF9yZWNvcmRfc21hbGw6TUJFRFRMU19DSVBIRVJfQUVTXzEyOF9DQkM6TUJFRFRMU19NRF9TSEEzODQ6MDowOk1CRURUTFNfU1NMX1ZFUlNJT05fVExTMV8yOjQ6NAogCiBSZWNvcmQgY3J5cHQsIGxpdHRsZSBzcGFjZSwgQUVTLTEyOC1DQkMsIDEuMiwgU0hBLTM4NCwgQ0lEIDQrMAotZGVwZW5kc19vbjpNQkVEVExTX1NTTF9EVExTX0NPTk5FQ1RJT05fSUQ6TUJFRFRMU19TU0xfSEFWRV9BRVM6TUJFRFRMU19TU0xfSEFWRV9DQkM6TUJFRFRMU19TU0xfUFJPVE9fVExTMV8yOk1CRURUTFNfTURfQ0FOX1NIQTM4NAorZGVwZW5kc19vbjpNQkVEVExTX1NTTF9EVExTX0NPTk5FQ1RJT05fSUQ6TUJFRFRMU19TU0xfSEFWRV9BRVM6TUJFRFRMU19TU0xfSEFWRV9DQkM6TUJFRFRMU19TU0xfUFJPVE9fVExTMV8yOlBTQV9XQU5UX0FMR19TSEFfMzg0CiBzc2xfY3J5cHRfcmVjb3JkX3NtYWxsOk1CRURUTFNfQ0lQSEVSX0FFU18xMjhfQ0JDOk1CRURUTFNfTURfU0hBMzg0OjA6MDpNQkVEVExTX1NTTF9WRVJTSU9OX1RMUzFfMjo0OjAKIAogUmVjb3JkIGNyeXB0LCBsaXR0bGUgc3BhY2UsIEFFUy0xMjgtQ0JDLCAxLjIsIFNIQS0zODQsIEV0TQotZGVwZW5kc19vbjpNQkVEVExTX1NTTF9IQVZFX0FFUzpNQkVEVExTX1NTTF9IQVZFX0NCQzpNQkVEVExTX1NTTF9QUk9UT19UTFMxXzI6TUJFRFRMU19NRF9DQU5fU0hBMzg0Ok1CRURUTFNfU1NMX0VOQ1JZUFRfVEhFTl9NQUMKK2RlcGVuZHNfb246TUJFRFRMU19TU0xfSEFWRV9BRVM6TUJFRFRMU19TU0xfSEFWRV9DQkM6TUJFRFRMU19TU0xfUFJPVE9fVExTMV8yOlBTQV9XQU5UX0FMR19TSEFfMzg0Ok1CRURUTFNfU1NMX0VOQ1JZUFRfVEhFTl9NQUMKIHNzbF9jcnlwdF9yZWNvcmRfc21hbGw6TUJFRFRMU19DSVBIRVJfQUVTXzEyOF9DQkM6TUJFRFRMU19NRF9TSEEzODQ6MTowOk1CRURUTFNfU1NMX1ZFUlNJT05fVExTMV8yOjA6MAogCiBSZWNvcmQgY3J5cHQsIGxpdHRsZSBzcGFjZSwgQUVTLTEyOC1DQkMsIDEuMiwgU0hBLTM4NCwgRXRNLCBDSUQgNCs0Ci1kZXBlbmRzX29uOk1CRURUTFNfU1NMX0RUTFNfQ09OTkVDVElPTl9JRDpNQkVEVExTX1NTTF9IQVZFX0FFUzpNQkVEVExTX1NTTF9IQVZFX0NCQzpNQkVEVExTX1NTTF9QUk9UT19UTFMxXzI6TUJFRFRMU19NRF9DQU5fU0hBMzg0Ok1CRURUTFNfU1NMX0VOQ1JZUFRfVEhFTl9NQUMKK2RlcGVuZHNfb246TUJFRFRMU19TU0xfRFRMU19DT05ORUNUSU9OX0lEOk1CRURUTFNfU1NMX0hBVkVfQUVTOk1CRURUTFNfU1NMX0hBVkVfQ0JDOk1CRURUTFNfU1NMX1BST1RPX1RMUzFfMjpQU0FfV0FOVF9BTEdfU0hBXzM4NDpNQkVEVExTX1NTTF9FTkNSWVBUX1RIRU5fTUFDCiBzc2xfY3J5cHRfcmVjb3JkX3NtYWxsOk1CRURUTFNfQ0lQSEVSX0FFU18xMjhfQ0JDOk1CRURUTFNfTURfU0hBMzg0OjE6MDpNQkVEVExTX1NTTF9WRVJTSU9OX1RMUzFfMjo0OjQKIAogUmVjb3JkIGNyeXB0LCBsaXR0bGUgc3BhY2UsIEFFUy0xMjgtQ0JDLCAxLjIsIFNIQS0zODQsIEV0TSwgQ0lEIDQrMAotZGVwZW5kc19vbjpNQkVEVExTX1NTTF9EVExTX0NPTk5FQ1RJT05fSUQ6TUJFRFRMU19TU0xfSEFWRV9BRVM6TUJFRFRMU19TU0xfSEFWRV9DQkM6TUJFRFRMU19TU0xfUFJPVE9fVExTMV8yOk1CRURUTFNfTURfQ0FOX1NIQTM4NDpNQkVEVExTX1NTTF9FTkNSWVBUX1RIRU5fTUFDCitkZXBlbmRzX29uOk1CRURUTFNfU1NMX0RUTFNfQ09OTkVDVElPTl9JRDpNQkVEVExTX1NTTF9IQVZFX0FFUzpNQkVEVExTX1NTTF9IQVZFX0NCQzpNQkVEVExTX1NTTF9QUk9UT19UTFMxXzI6UFNBX1dBTlRfQUxHX1NIQV8zODQ6TUJFRFRMU19TU0xfRU5DUllQVF9USEVOX01BQwogc3NsX2NyeXB0X3JlY29yZF9zbWFsbDpNQkVEVExTX0NJUEhFUl9BRVNfMTI4X0NCQzpNQkVEVExTX01EX1NIQTM4NDoxOjA6TUJFRFRMU19TU0xfVkVSU0lPTl9UTFMxXzI6NDowCiAKIFJlY29yZCBjcnlwdCwgbGl0dGxlIHNwYWNlLCBBRVMtMTI4LUNCQywgMS4yLCBTSEEtMjU2Ci1kZXBlbmRzX29uOk1CRURUTFNfU1NMX0hBVkVfQUVTOk1CRURUTFNfU1NMX0hBVkVfQ0JDOk1CRURUTFNfU1NMX1BST1RPX1RMUzFfMjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246TUJFRFRMU19TU0xfSEFWRV9BRVM6TUJFRFRMU19TU0xfSEFWRV9DQkM6TUJFRFRMU19TU0xfUFJPVE9fVExTMV8yOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBzc2xfY3J5cHRfcmVjb3JkX3NtYWxsOk1CRURUTFNfQ0lQSEVSX0FFU18xMjhfQ0JDOk1CRURUTFNfTURfU0hBMjU2OjA6MDpNQkVEVExTX1NTTF9WRVJTSU9OX1RMUzFfMjowOjAKIAogUmVjb3JkIGNyeXB0LCBsaXR0bGUgc3BhY2UsIEFFUy0xMjgtQ0JDLCAxLjIsIFNIQS0yNTYsIENJRCA0KzQKLWRlcGVuZHNfb246TUJFRFRMU19TU0xfRFRMU19DT05ORUNUSU9OX0lEOk1CRURUTFNfU1NMX0hBVkVfQUVTOk1CRURUTFNfU1NMX0hBVkVfQ0JDOk1CRURUTFNfU1NMX1BST1RPX1RMUzFfMjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246TUJFRFRMU19TU0xfRFRMU19DT05ORUNUSU9OX0lEOk1CRURUTFNfU1NMX0hBVkVfQUVTOk1CRURUTFNfU1NMX0hBVkVfQ0JDOk1CRURUTFNfU1NMX1BST1RPX1RMUzFfMjpQU0FfV0FOVF9BTEdfU0hBXzI1Ngogc3NsX2NyeXB0X3JlY29yZF9zbWFsbDpNQkVEVExTX0NJUEhFUl9BRVNfMTI4X0NCQzpNQkVEVExTX01EX1NIQTI1NjowOjA6TUJFRFRMU19TU0xfVkVSU0lPTl9UTFMxXzI6NDo0CiAKIFJlY29yZCBjcnlwdCwgbGl0dGxlIHNwYWNlLCBBRVMtMTI4LUNCQywgMS4yLCBTSEEtMjU2LCBDSUQgNCswCi1kZXBlbmRzX29uOk1CRURUTFNfU1NMX0RUTFNfQ09OTkVDVElPTl9JRDpNQkVEVExTX1NTTF9IQVZFX0FFUzpNQkVEVExTX1NTTF9IQVZFX0NCQzpNQkVEVExTX1NTTF9QUk9UT19UTFMxXzI6TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOk1CRURUTFNfU1NMX0RUTFNfQ09OTkVDVElPTl9JRDpNQkVEVExTX1NTTF9IQVZFX0FFUzpNQkVEVExTX1NTTF9IQVZFX0NCQzpNQkVEVExTX1NTTF9QUk9UT19UTFMxXzI6UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHNzbF9jcnlwdF9yZWNvcmRfc21hbGw6TUJFRFRMU19DSVBIRVJfQUVTXzEyOF9DQkM6TUJFRFRMU19NRF9TSEEyNTY6MDowOk1CRURUTFNfU1NMX1ZFUlNJT05fVExTMV8yOjQ6MAogCiBSZWNvcmQgY3J5cHQsIGxpdHRsZSBzcGFjZSwgQUVTLTEyOC1DQkMsIDEuMiwgU0hBLTI1NiwgRXRNCi1kZXBlbmRzX29uOk1CRURUTFNfU1NMX0hBVkVfQUVTOk1CRURUTFNfU1NMX0hBVkVfQ0JDOk1CRURUTFNfU1NMX1BST1RPX1RMUzFfMjpNQkVEVExTX01EX0NBTl9TSEEyNTY6TUJFRFRMU19TU0xfRU5DUllQVF9USEVOX01BQworZGVwZW5kc19vbjpNQkVEVExTX1NTTF9IQVZFX0FFUzpNQkVEVExTX1NTTF9IQVZFX0NCQzpNQkVEVExTX1NTTF9QUk9UT19UTFMxXzI6UFNBX1dBTlRfQUxHX1NIQV8yNTY6TUJFRFRMU19TU0xfRU5DUllQVF9USEVOX01BQwogc3NsX2NyeXB0X3JlY29yZF9zbWFsbDpNQkVEVExTX0NJUEhFUl9BRVNfMTI4X0NCQzpNQkVEVExTX01EX1NIQTI1NjoxOjA6TUJFRFRMU19TU0xfVkVSU0lPTl9UTFMxXzI6MDowCiAKIFJlY29yZCBjcnlwdCwgbGl0dGxlIHNwYWNlLCBBRVMtMTI4LUNCQywgMS4yLCBTSEEtMjU2LCBFdE0sIENJRCA0KzQKLWRlcGVuZHNfb246TUJFRFRMU19TU0xfRFRMU19DT05ORUNUSU9OX0lEOk1CRURUTFNfU1NMX0hBVkVfQUVTOk1CRURUTFNfU1NMX0hBVkVfQ0JDOk1CRURUTFNfU1NMX1BST1RPX1RMUzFfMjpNQkVEVExTX01EX0NBTl9TSEEyNTY6TUJFRFRMU19TU0xfRU5DUllQVF9USEVOX01BQworZGVwZW5kc19vbjpNQkVEVExTX1NTTF9EVExTX0NPTk5FQ1RJT05fSUQ6TUJFRFRMU19TU0xfSEFWRV9BRVM6TUJFRFRMU19TU0xfSEFWRV9DQkM6TUJFRFRMU19TU0xfUFJPVE9fVExTMV8yOlBTQV9XQU5UX0FMR19TSEFfMjU2Ok1CRURUTFNfU1NMX0VOQ1JZUFRfVEhFTl9NQUMKIHNzbF9jcnlwdF9yZWNvcmRfc21hbGw6TUJFRFRMU19DSVBIRVJfQUVTXzEyOF9DQkM6TUJFRFRMU19NRF9TSEEyNTY6MTowOk1CRURUTFNfU1NMX1ZFUlNJT05fVExTMV8yOjQ6NAogCiBSZWNvcmQgY3J5cHQsIGxpdHRsZSBzcGFjZSwgQUVTLTEyOC1DQkMsIDEuMiwgU0hBLTI1NiwgRXRNLCBDSUQgNCswCi1kZXBlbmRzX29uOk1CRURUTFNfU1NMX0RUTFNfQ09OTkVDVElPTl9JRDpNQkVEVExTX1NTTF9IQVZFX0FFUzpNQkVEVExTX1NTTF9IQVZFX0NCQzpNQkVEVExTX1NTTF9QUk9UT19UTFMxXzI6TUJFRFRMU19NRF9DQU5fU0hBMjU2Ok1CRURUTFNfU1NMX0VOQ1JZUFRfVEhFTl9NQUMKK2RlcGVuZHNfb246TUJFRFRMU19TU0xfRFRMU19DT05ORUNUSU9OX0lEOk1CRURUTFNfU1NMX0hBVkVfQUVTOk1CRURUTFNfU1NMX0hBVkVfQ0JDOk1CRURUTFNfU1NMX1BST1RPX1RMUzFfMjpQU0FfV0FOVF9BTEdfU0hBXzI1NjpNQkVEVExTX1NTTF9FTkNSWVBUX1RIRU5fTUFDCiBzc2xfY3J5cHRfcmVjb3JkX3NtYWxsOk1CRURUTFNfQ0lQSEVSX0FFU18xMjhfQ0JDOk1CRURUTFNfTURfU0hBMjU2OjE6MDpNQkVEVExTX1NTTF9WRVJTSU9OX1RMUzFfMjo0OjAKIAogUmVjb3JkIGNyeXB0LCBsaXR0bGUgc3BhY2UsIEFFUy0xMjgtQ0JDLCAxLjIsIFNIQS0xCkBAIC0xOTM4LDUxICsxOTM4LDUxIEBACiBzc2xfY3J5cHRfcmVjb3JkX3NtYWxsOk1CRURUTFNfQ0lQSEVSX0FFU18xMjhfQ0JDOk1CRURUTFNfTURfTUQ1OjE6MDpNQkVEVExTX1NTTF9WRVJTSU9OX1RMUzFfMjo0OjAKIAogUmVjb3JkIGNyeXB0LCBsaXR0bGUgc3BhY2UsIEFFUy0yNTYtQ0JDLCAxLjIsIFNIQS0zODQKLWRlcGVuZHNfb246TUJFRFRMU19TU0xfSEFWRV9BRVM6TUJFRFRMU19TU0xfSEFWRV9DQkM6TUJFRFRMU19TU0xfUFJPVE9fVExTMV8yOk1CRURUTFNfTURfQ0FOX1NIQTM4NDohTUJFRFRMU19BRVNfT05MWV8xMjhfQklUX0tFWV9MRU5HVEgKK2RlcGVuZHNfb246TUJFRFRMU19TU0xfSEFWRV9BRVM6TUJFRFRMU19TU0xfSEFWRV9DQkM6TUJFRFRMU19TU0xfUFJPVE9fVExTMV8yOlBTQV9XQU5UX0FMR19TSEFfMzg0OiFNQkVEVExTX0FFU19PTkxZXzEyOF9CSVRfS0VZX0xFTkdUSAogc3NsX2NyeXB0X3JlY29yZF9zbWFsbDpNQkVEVExTX0NJUEhFUl9BRVNfMjU2X0NCQzpNQkVEVExTX01EX1NIQTM4NDowOjA6TUJFRFRMU19TU0xfVkVSU0lPTl9UTFMxXzI6MDowCiAKIFJlY29yZCBjcnlwdCwgbGl0dGxlIHNwYWNlLCBBRVMtMjU2LUNCQywgMS4yLCBTSEEtMzg0LCBDSUQgNCs0Ci1kZXBlbmRzX29uOk1CRURUTFNfU1NMX0RUTFNfQ09OTkVDVElPTl9JRDpNQkVEVExTX1NTTF9IQVZFX0FFUzpNQkVEVExTX1NTTF9IQVZFX0NCQzpNQkVEVExTX1NTTF9QUk9UT19UTFMxXzI6TUJFRFRMU19NRF9DQU5fU0hBMzg0OiFNQkVEVExTX0FFU19PTkxZXzEyOF9CSVRfS0VZX0xFTkdUSAorZGVwZW5kc19vbjpNQkVEVExTX1NTTF9EVExTX0NPTk5FQ1RJT05fSUQ6TUJFRFRMU19TU0xfSEFWRV9BRVM6TUJFRFRMU19TU0xfSEFWRV9DQkM6TUJFRFRMU19TU0xfUFJPVE9fVExTMV8yOlBTQV9XQU5UX0FMR19TSEFfMzg0OiFNQkVEVExTX0FFU19PTkxZXzEyOF9CSVRfS0VZX0xFTkdUSAogc3NsX2NyeXB0X3JlY29yZF9zbWFsbDpNQkVEVExTX0NJUEhFUl9BRVNfMjU2X0NCQzpNQkVEVExTX01EX1NIQTM4NDowOjA6TUJFRFRMU19TU0xfVkVSU0lPTl9UTFMxXzI6NDo0CiAKIFJlY29yZCBjcnlwdCwgbGl0dGxlIHNwYWNlLCBBRVMtMjU2LUNCQywgMS4yLCBTSEEtMzg0LCBDSUQgNCswCi1kZXBlbmRzX29uOk1CRURUTFNfU1NMX0RUTFNfQ09OTkVDVElPTl9JRDpNQkVEVExTX1NTTF9IQVZFX0FFUzpNQkVEVExTX1NTTF9IQVZFX0NCQzpNQkVEVExTX1NTTF9QUk9UT19UTFMxXzI6TUJFRFRMU19NRF9DQU5fU0hBMzg0OiFNQkVEVExTX0FFU19PTkxZXzEyOF9CSVRfS0VZX0xFTkdUSAorZGVwZW5kc19vbjpNQkVEVExTX1NTTF9EVExTX0NPTk5FQ1RJT05fSUQ6TUJFRFRMU19TU0xfSEFWRV9BRVM6TUJFRFRMU19TU0xfSEFWRV9DQkM6TUJFRFRMU19TU0xfUFJPVE9fVExTMV8yOlBTQV9XQU5UX0FMR19TSEFfMzg0OiFNQkVEVExTX0FFU19PTkxZXzEyOF9CSVRfS0VZX0xFTkdUSAogc3NsX2NyeXB0X3JlY29yZF9zbWFsbDpNQkVEVExTX0NJUEhFUl9BRVNfMjU2X0NCQzpNQkVEVExTX01EX1NIQTM4NDowOjA6TUJFRFRMU19TU0xfVkVSU0lPTl9UTFMxXzI6NDowCiAKIFJlY29yZCBjcnlwdCwgbGl0dGxlIHNwYWNlLCBBRVMtMjU2LUNCQywgMS4yLCBTSEEtMzg0LCBFdE0KLWRlcGVuZHNfb246TUJFRFRMU19TU0xfSEFWRV9BRVM6TUJFRFRMU19TU0xfSEFWRV9DQkM6TUJFRFRMU19TU0xfUFJPVE9fVExTMV8yOk1CRURUTFNfTURfQ0FOX1NIQTM4NDpNQkVEVExTX1NTTF9FTkNSWVBUX1RIRU5fTUFDOiFNQkVEVExTX0FFU19PTkxZXzEyOF9CSVRfS0VZX0xFTkdUSAorZGVwZW5kc19vbjpNQkVEVExTX1NTTF9IQVZFX0FFUzpNQkVEVExTX1NTTF9IQVZFX0NCQzpNQkVEVExTX1NTTF9QUk9UT19UTFMxXzI6UFNBX1dBTlRfQUxHX1NIQV8zODQ6TUJFRFRMU19TU0xfRU5DUllQVF9USEVOX01BQzohTUJFRFRMU19BRVNfT05MWV8xMjhfQklUX0tFWV9MRU5HVEgKIHNzbF9jcnlwdF9yZWNvcmRfc21hbGw6TUJFRFRMU19DSVBIRVJfQUVTXzI1Nl9DQkM6TUJFRFRMU19NRF9TSEEzODQ6MTowOk1CRURUTFNfU1NMX1ZFUlNJT05fVExTMV8yOjA6MAogCiBSZWNvcmQgY3J5cHQsIGxpdHRsZSBzcGFjZSwgQUVTLTI1Ni1DQkMsIDEuMiwgU0hBLTM4NCwgRXRNLCBDSUQgNCs0Ci1kZXBlbmRzX29uOk1CRURUTFNfU1NMX0RUTFNfQ09OTkVDVElPTl9JRDpNQkVEVExTX1NTTF9IQVZFX0FFUzpNQkVEVExTX1NTTF9IQVZFX0NCQzpNQkVEVExTX1NTTF9QUk9UT19UTFMxXzI6TUJFRFRMU19NRF9DQU5fU0hBMzg0Ok1CRURUTFNfU1NMX0VOQ1JZUFRfVEhFTl9NQUM6IU1CRURUTFNfQUVTX09OTFlfMTI4X0JJVF9LRVlfTEVOR1RICitkZXBlbmRzX29uOk1CRURUTFNfU1NMX0RUTFNfQ09OTkVDVElPTl9JRDpNQkVEVExTX1NTTF9IQVZFX0FFUzpNQkVEVExTX1NTTF9IQVZFX0NCQzpNQkVEVExTX1NTTF9QUk9UT19UTFMxXzI6UFNBX1dBTlRfQUxHX1NIQV8zODQ6TUJFRFRMU19TU0xfRU5DUllQVF9USEVOX01BQzohTUJFRFRMU19BRVNfT05MWV8xMjhfQklUX0tFWV9MRU5HVEgKIHNzbF9jcnlwdF9yZWNvcmRfc21hbGw6TUJFRFRMU19DSVBIRVJfQUVTXzI1Nl9DQkM6TUJFRFRMU19NRF9TSEEzODQ6MTowOk1CRURUTFNfU1NMX1ZFUlNJT05fVExTMV8yOjQ6NAogCiBSZWNvcmQgY3J5cHQsIGxpdHRsZSBzcGFjZSwgQUVTLTI1Ni1DQkMsIDEuMiwgU0hBLTM4NCwgRXRNLCBDSUQgNCswCi1kZXBlbmRzX29uOk1CRURUTFNfU1NMX0RUTFNfQ09OTkVDVElPTl9JRDpNQkVEVExTX1NTTF9IQVZFX0FFUzpNQkVEVExTX1NTTF9IQVZFX0NCQzpNQkVEVExTX1NTTF9QUk9UT19UTFMxXzI6TUJFRFRMU19NRF9DQU5fU0hBMzg0Ok1CRURUTFNfU1NMX0VOQ1JZUFRfVEhFTl9NQUM6IU1CRURUTFNfQUVTX09OTFlfMTI4X0JJVF9LRVlfTEVOR1RICitkZXBlbmRzX29uOk1CRURUTFNfU1NMX0RUTFNfQ09OTkVDVElPTl9JRDpNQkVEVExTX1NTTF9IQVZFX0FFUzpNQkVEVExTX1NTTF9IQVZFX0NCQzpNQkVEVExTX1NTTF9QUk9UT19UTFMxXzI6UFNBX1dBTlRfQUxHX1NIQV8zODQ6TUJFRFRMU19TU0xfRU5DUllQVF9USEVOX01BQzohTUJFRFRMU19BRVNfT05MWV8xMjhfQklUX0tFWV9MRU5HVEgKIHNzbF9jcnlwdF9yZWNvcmRfc21hbGw6TUJFRFRMU19DSVBIRVJfQUVTXzI1Nl9DQkM6TUJFRFRMU19NRF9TSEEzODQ6MTowOk1CRURUTFNfU1NMX1ZFUlNJT05fVExTMV8yOjQ6MAogCiBSZWNvcmQgY3J5cHQsIGxpdHRsZSBzcGFjZSwgQUVTLTI1Ni1DQkMsIDEuMiwgU0hBLTI1NgotZGVwZW5kc19vbjpNQkVEVExTX1NTTF9IQVZFX0FFUzpNQkVEVExTX1NTTF9IQVZFX0NCQzpNQkVEVExTX1NTTF9QUk9UT19UTFMxXzI6TUJFRFRMU19NRF9DQU5fU0hBMjU2OiFNQkVEVExTX0FFU19PTkxZXzEyOF9CSVRfS0VZX0xFTkdUSAorZGVwZW5kc19vbjpNQkVEVExTX1NTTF9IQVZFX0FFUzpNQkVEVExTX1NTTF9IQVZFX0NCQzpNQkVEVExTX1NTTF9QUk9UT19UTFMxXzI6UFNBX1dBTlRfQUxHX1NIQV8yNTY6IU1CRURUTFNfQUVTX09OTFlfMTI4X0JJVF9LRVlfTEVOR1RICiBzc2xfY3J5cHRfcmVjb3JkX3NtYWxsOk1CRURUTFNfQ0lQSEVSX0FFU18yNTZfQ0JDOk1CRURUTFNfTURfU0hBMjU2OjA6MDpNQkVEVExTX1NTTF9WRVJTSU9OX1RMUzFfMjowOjAKIAogUmVjb3JkIGNyeXB0LCBsaXR0bGUgc3BhY2UsIEFFUy0yNTYtQ0JDLCAxLjIsIFNIQS0yNTYsIENJRCA0KzQKLWRlcGVuZHNfb246TUJFRFRMU19TU0xfRFRMU19DT05ORUNUSU9OX0lEOk1CRURUTFNfU1NMX0hBVkVfQUVTOk1CRURUTFNfU1NMX0hBVkVfQ0JDOk1CRURUTFNfU1NMX1BST1RPX1RMUzFfMjpNQkVEVExTX01EX0NBTl9TSEEyNTY6IU1CRURUTFNfQUVTX09OTFlfMTI4X0JJVF9LRVlfTEVOR1RICitkZXBlbmRzX29uOk1CRURUTFNfU1NMX0RUTFNfQ09OTkVDVElPTl9JRDpNQkVEVExTX1NTTF9IQVZFX0FFUzpNQkVEVExTX1NTTF9IQVZFX0NCQzpNQkVEVExTX1NTTF9QUk9UT19UTFMxXzI6UFNBX1dBTlRfQUxHX1NIQV8yNTY6IU1CRURUTFNfQUVTX09OTFlfMTI4X0JJVF9LRVlfTEVOR1RICiBzc2xfY3J5cHRfcmVjb3JkX3NtYWxsOk1CRURUTFNfQ0lQSEVSX0FFU18yNTZfQ0JDOk1CRURUTFNfTURfU0hBMjU2OjA6MDpNQkVEVExTX1NTTF9WRVJTSU9OX1RMUzFfMjo0OjQKIAogUmVjb3JkIGNyeXB0LCBsaXR0bGUgc3BhY2UsIEFFUy0yNTYtQ0JDLCAxLjIsIFNIQS0yNTYsIENJRCA0KzAKLWRlcGVuZHNfb246TUJFRFRMU19TU0xfRFRMU19DT05ORUNUSU9OX0lEOk1CRURUTFNfU1NMX0hBVkVfQUVTOk1CRURUTFNfU1NMX0hBVkVfQ0JDOk1CRURUTFNfU1NMX1BST1RPX1RMUzFfMjpNQkVEVExTX01EX0NBTl9TSEEyNTY6IU1CRURUTFNfQUVTX09OTFlfMTI4X0JJVF9LRVlfTEVOR1RICitkZXBlbmRzX29uOk1CRURUTFNfU1NMX0RUTFNfQ09OTkVDVElPTl9JRDpNQkVEVExTX1NTTF9IQVZFX0FFUzpNQkVEVExTX1NTTF9IQVZFX0NCQzpNQkVEVExTX1NTTF9QUk9UT19UTFMxXzI6UFNBX1dBTlRfQUxHX1NIQV8yNTY6IU1CRURUTFNfQUVTX09OTFlfMTI4X0JJVF9LRVlfTEVOR1RICiBzc2xfY3J5cHRfcmVjb3JkX3NtYWxsOk1CRURUTFNfQ0lQSEVSX0FFU18yNTZfQ0JDOk1CRURUTFNfTURfU0hBMjU2OjA6MDpNQkVEVExTX1NTTF9WRVJTSU9OX1RMUzFfMjo0OjAKIAogUmVjb3JkIGNyeXB0LCBsaXR0bGUgc3BhY2UsIEFFUy0yNTYtQ0JDLCAxLjIsIFNIQS0yNTYsIEV0TQotZGVwZW5kc19vbjpNQkVEVExTX1NTTF9IQVZFX0FFUzpNQkVEVExTX1NTTF9IQVZFX0NCQzpNQkVEVExTX1NTTF9QUk9UT19UTFMxXzI6TUJFRFRMU19NRF9DQU5fU0hBMjU2Ok1CRURUTFNfU1NMX0VOQ1JZUFRfVEhFTl9NQUM6IU1CRURUTFNfQUVTX09OTFlfMTI4X0JJVF9LRVlfTEVOR1RICitkZXBlbmRzX29uOk1CRURUTFNfU1NMX0hBVkVfQUVTOk1CRURUTFNfU1NMX0hBVkVfQ0JDOk1CRURUTFNfU1NMX1BST1RPX1RMUzFfMjpQU0FfV0FOVF9BTEdfU0hBXzI1NjpNQkVEVExTX1NTTF9FTkNSWVBUX1RIRU5fTUFDOiFNQkVEVExTX0FFU19PTkxZXzEyOF9CSVRfS0VZX0xFTkdUSAogc3NsX2NyeXB0X3JlY29yZF9zbWFsbDpNQkVEVExTX0NJUEhFUl9BRVNfMjU2X0NCQzpNQkVEVExTX01EX1NIQTI1NjoxOjA6TUJFRFRMU19TU0xfVkVSU0lPTl9UTFMxXzI6MDowCiAKIFJlY29yZCBjcnlwdCwgbGl0dGxlIHNwYWNlLCBBRVMtMjU2LUNCQywgMS4yLCBTSEEtMjU2LCBFdE0sIENJRCA0KzQKLWRlcGVuZHNfb246TUJFRFRMU19TU0xfRFRMU19DT05ORUNUSU9OX0lEOk1CRURUTFNfU1NMX0hBVkVfQUVTOk1CRURUTFNfU1NMX0hBVkVfQ0JDOk1CRURUTFNfU1NMX1BST1RPX1RMUzFfMjpNQkVEVExTX01EX0NBTl9TSEEyNTY6TUJFRFRMU19TU0xfRU5DUllQVF9USEVOX01BQzohTUJFRFRMU19BRVNfT05MWV8xMjhfQklUX0tFWV9MRU5HVEgKK2RlcGVuZHNfb246TUJFRFRMU19TU0xfRFRMU19DT05ORUNUSU9OX0lEOk1CRURUTFNfU1NMX0hBVkVfQUVTOk1CRURUTFNfU1NMX0hBVkVfQ0JDOk1CRURUTFNfU1NMX1BST1RPX1RMUzFfMjpQU0FfV0FOVF9BTEdfU0hBXzI1NjpNQkVEVExTX1NTTF9FTkNSWVBUX1RIRU5fTUFDOiFNQkVEVExTX0FFU19PTkxZXzEyOF9CSVRfS0VZX0xFTkdUSAogc3NsX2NyeXB0X3JlY29yZF9zbWFsbDpNQkVEVExTX0NJUEhFUl9BRVNfMjU2X0NCQzpNQkVEVExTX01EX1NIQTI1NjoxOjA6TUJFRFRMU19TU0xfVkVSU0lPTl9UTFMxXzI6NDo0CiAKIFJlY29yZCBjcnlwdCwgbGl0dGxlIHNwYWNlLCBBRVMtMjU2LUNCQywgMS4yLCBTSEEtMjU2LCBFdE0sIENJRCA0KzAKLWRlcGVuZHNfb246TUJFRFRMU19TU0xfRFRMU19DT05ORUNUSU9OX0lEOk1CRURUTFNfU1NMX0hBVkVfQUVTOk1CRURUTFNfU1NMX0hBVkVfQ0JDOk1CRURUTFNfU1NMX1BST1RPX1RMUzFfMjpNQkVEVExTX01EX0NBTl9TSEEyNTY6TUJFRFRMU19TU0xfRU5DUllQVF9USEVOX01BQzohTUJFRFRMU19BRVNfT05MWV8xMjhfQklUX0tFWV9MRU5HVEgKK2RlcGVuZHNfb246TUJFRFRMU19TU0xfRFRMU19DT05ORUNUSU9OX0lEOk1CRURUTFNfU1NMX0hBVkVfQUVTOk1CRURUTFNfU1NMX0hBVkVfQ0JDOk1CRURUTFNfU1NMX1BST1RPX1RMUzFfMjpQU0FfV0FOVF9BTEdfU0hBXzI1NjpNQkVEVExTX1NTTF9FTkNSWVBUX1RIRU5fTUFDOiFNQkVEVExTX0FFU19PTkxZXzEyOF9CSVRfS0VZX0xFTkdUSAogc3NsX2NyeXB0X3JlY29yZF9zbWFsbDpNQkVEVExTX0NJUEhFUl9BRVNfMjU2X0NCQzpNQkVEVExTX01EX1NIQTI1NjoxOjA6TUJFRFRMU19TU0xfVkVSU0lPTl9UTFMxXzI6NDowCiAKIFJlY29yZCBjcnlwdCwgbGl0dGxlIHNwYWNlLCBBRVMtMjU2LUNCQywgMS4yLCBTSEEtMQpAQCAtMjAzNCw1MSArMjAzNCw1MSBAQAogc3NsX2NyeXB0X3JlY29yZF9zbWFsbDpNQkVEVExTX0NJUEhFUl9BRVNfMjU2X0NCQzpNQkVEVExTX01EX01ENToxOjA6TUJFRFRMU19TU0xfVkVSU0lPTl9UTFMxXzI6NDowCiAKIFJlY29yZCBjcnlwdCwgbGl0dGxlIHNwYWNlLCBBUklBLTEyOC1DQkMsIDEuMiwgU0hBLTM4NAotZGVwZW5kc19vbjpNQkVEVExTX1NTTF9IQVZFX0FSSUE6TUJFRFRMU19TU0xfSEFWRV9DQkM6TUJFRFRMU19TU0xfUFJPVE9fVExTMV8yOk1CRURUTFNfTURfQ0FOX1NIQTM4NAorZGVwZW5kc19vbjpNQkVEVExTX1NTTF9IQVZFX0FSSUE6TUJFRFRMU19TU0xfSEFWRV9DQkM6TUJFRFRMU19TU0xfUFJPVE9fVExTMV8yOlBTQV9XQU5UX0FMR19TSEFfMzg0CiBzc2xfY3J5cHRfcmVjb3JkX3NtYWxsOk1CRURUTFNfQ0lQSEVSX0FSSUFfMTI4X0NCQzpNQkVEVExTX01EX1NIQTM4NDowOjA6TUJFRFRMU19TU0xfVkVSU0lPTl9UTFMxXzI6MDowCiAKIFJlY29yZCBjcnlwdCwgbGl0dGxlIHNwYWNlLCBBUklBLTEyOC1DQkMsIDEuMiwgU0hBLTM4NCwgQ0lEIDQrNAotZGVwZW5kc19vbjpNQkVEVExTX1NTTF9EVExTX0NPTk5FQ1RJT05fSUQ6TUJFRFRMU19TU0xfSEFWRV9BUklBOk1CRURUTFNfU1NMX0hBVkVfQ0JDOk1CRURUTFNfU1NMX1BST1RPX1RMUzFfMjpNQkVEVExTX01EX0NBTl9TSEEzODQKK2RlcGVuZHNfb246TUJFRFRMU19TU0xfRFRMU19DT05ORUNUSU9OX0lEOk1CRURUTFNfU1NMX0hBVkVfQVJJQTpNQkVEVExTX1NTTF9IQVZFX0NCQzpNQkVEVExTX1NTTF9QUk9UT19UTFMxXzI6UFNBX1dBTlRfQUxHX1NIQV8zODQKIHNzbF9jcnlwdF9yZWNvcmRfc21hbGw6TUJFRFRMU19DSVBIRVJfQVJJQV8xMjhfQ0JDOk1CRURUTFNfTURfU0hBMzg0OjA6MDpNQkVEVExTX1NTTF9WRVJTSU9OX1RMUzFfMjo0OjQKIAogUmVjb3JkIGNyeXB0LCBsaXR0bGUgc3BhY2UsIEFSSUEtMTI4LUNCQywgMS4yLCBTSEEtMzg0LCBDSUQgNCswCi1kZXBlbmRzX29uOk1CRURUTFNfU1NMX0RUTFNfQ09OTkVDVElPTl9JRDpNQkVEVExTX1NTTF9IQVZFX0FSSUE6TUJFRFRMU19TU0xfSEFWRV9DQkM6TUJFRFRMU19TU0xfUFJPVE9fVExTMV8yOk1CRURUTFNfTURfQ0FOX1NIQTM4NAorZGVwZW5kc19vbjpNQkVEVExTX1NTTF9EVExTX0NPTk5FQ1RJT05fSUQ6TUJFRFRMU19TU0xfSEFWRV9BUklBOk1CRURUTFNfU1NMX0hBVkVfQ0JDOk1CRURUTFNfU1NMX1BST1RPX1RMUzFfMjpQU0FfV0FOVF9BTEdfU0hBXzM4NAogc3NsX2NyeXB0X3JlY29yZF9zbWFsbDpNQkVEVExTX0NJUEhFUl9BUklBXzEyOF9DQkM6TUJFRFRMU19NRF9TSEEzODQ6MDowOk1CRURUTFNfU1NMX1ZFUlNJT05fVExTMV8yOjQ6MAogCiBSZWNvcmQgY3J5cHQsIGxpdHRsZSBzcGFjZSwgQVJJQS0xMjgtQ0JDLCAxLjIsIFNIQS0zODQsIEV0TQotZGVwZW5kc19vbjpNQkVEVExTX1NTTF9IQVZFX0FSSUE6TUJFRFRMU19TU0xfSEFWRV9DQkM6TUJFRFRMU19TU0xfUFJPVE9fVExTMV8yOk1CRURUTFNfTURfQ0FOX1NIQTM4NDpNQkVEVExTX1NTTF9FTkNSWVBUX1RIRU5fTUFDCitkZXBlbmRzX29uOk1CRURUTFNfU1NMX0hBVkVfQVJJQTpNQkVEVExTX1NTTF9IQVZFX0NCQzpNQkVEVExTX1NTTF9QUk9UT19UTFMxXzI6UFNBX1dBTlRfQUxHX1NIQV8zODQ6TUJFRFRMU19TU0xfRU5DUllQVF9USEVOX01BQwogc3NsX2NyeXB0X3JlY29yZF9zbWFsbDpNQkVEVExTX0NJUEhFUl9BUklBXzEyOF9DQkM6TUJFRFRMU19NRF9TSEEzODQ6MTowOk1CRURUTFNfU1NMX1ZFUlNJT05fVExTMV8yOjA6MAogCiBSZWNvcmQgY3J5cHQsIGxpdHRsZSBzcGFjZSwgQVJJQS0xMjgtQ0JDLCAxLjIsIFNIQS0zODQsIEV0TSwgQ0lEIDQrNAotZGVwZW5kc19vbjpNQkVEVExTX1NTTF9EVExTX0NPTk5FQ1RJT05fSUQ6TUJFRFRMU19TU0xfSEFWRV9BUklBOk1CRURUTFNfU1NMX0hBVkVfQ0JDOk1CRURUTFNfU1NMX1BST1RPX1RMUzFfMjpNQkVEVExTX01EX0NBTl9TSEEzODQ6TUJFRFRMU19TU0xfRU5DUllQVF9USEVOX01BQworZGVwZW5kc19vbjpNQkVEVExTX1NTTF9EVExTX0NPTk5FQ1RJT05fSUQ6TUJFRFRMU19TU0xfSEFWRV9BUklBOk1CRURUTFNfU1NMX0hBVkVfQ0JDOk1CRURUTFNfU1NMX1BST1RPX1RMUzFfMjpQU0FfV0FOVF9BTEdfU0hBXzM4NDpNQkVEVExTX1NTTF9FTkNSWVBUX1RIRU5fTUFDCiBzc2xfY3J5cHRfcmVjb3JkX3NtYWxsOk1CRURUTFNfQ0lQSEVSX0FSSUFfMTI4X0NCQzpNQkVEVExTX01EX1NIQTM4NDoxOjA6TUJFRFRMU19TU0xfVkVSU0lPTl9UTFMxXzI6NDo0CiAKIFJlY29yZCBjcnlwdCwgbGl0dGxlIHNwYWNlLCBBUklBLTEyOC1DQkMsIDEuMiwgU0hBLTM4NCwgRXRNLCBDSUQgNCswCi1kZXBlbmRzX29uOk1CRURUTFNfU1NMX0RUTFNfQ09OTkVDVElPTl9JRDpNQkVEVExTX1NTTF9IQVZFX0FSSUE6TUJFRFRMU19TU0xfSEFWRV9DQkM6TUJFRFRMU19TU0xfUFJPVE9fVExTMV8yOk1CRURUTFNfTURfQ0FOX1NIQTM4NDpNQkVEVExTX1NTTF9FTkNSWVBUX1RIRU5fTUFDCitkZXBlbmRzX29uOk1CRURUTFNfU1NMX0RUTFNfQ09OTkVDVElPTl9JRDpNQkVEVExTX1NTTF9IQVZFX0FSSUE6TUJFRFRMU19TU0xfSEFWRV9DQkM6TUJFRFRMU19TU0xfUFJPVE9fVExTMV8yOlBTQV9XQU5UX0FMR19TSEFfMzg0Ok1CRURUTFNfU1NMX0VOQ1JZUFRfVEhFTl9NQUMKIHNzbF9jcnlwdF9yZWNvcmRfc21hbGw6TUJFRFRMU19DSVBIRVJfQVJJQV8xMjhfQ0JDOk1CRURUTFNfTURfU0hBMzg0OjE6MDpNQkVEVExTX1NTTF9WRVJTSU9OX1RMUzFfMjo0OjAKIAogUmVjb3JkIGNyeXB0LCBsaXR0bGUgc3BhY2UsIEFSSUEtMTI4LUNCQywgMS4yLCBTSEEtMjU2Ci1kZXBlbmRzX29uOk1CRURUTFNfU1NMX0hBVkVfQVJJQTpNQkVEVExTX1NTTF9IQVZFX0NCQzpNQkVEVExTX1NTTF9QUk9UT19UTFMxXzI6TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOk1CRURUTFNfU1NMX0hBVkVfQVJJQTpNQkVEVExTX1NTTF9IQVZFX0NCQzpNQkVEVExTX1NTTF9QUk9UT19UTFMxXzI6UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHNzbF9jcnlwdF9yZWNvcmRfc21hbGw6TUJFRFRMU19DSVBIRVJfQVJJQV8xMjhfQ0JDOk1CRURUTFNfTURfU0hBMjU2OjA6MDpNQkVEVExTX1NTTF9WRVJTSU9OX1RMUzFfMjowOjAKIAogUmVjb3JkIGNyeXB0LCBsaXR0bGUgc3BhY2UsIEFSSUEtMTI4LUNCQywgMS4yLCBTSEEtMjU2LCBDSUQgNCs0Ci1kZXBlbmRzX29uOk1CRURUTFNfU1NMX0RUTFNfQ09OTkVDVElPTl9JRDpNQkVEVExTX1NTTF9IQVZFX0FSSUE6TUJFRFRMU19TU0xfSEFWRV9DQkM6TUJFRFRMU19TU0xfUFJPVE9fVExTMV8yOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpNQkVEVExTX1NTTF9EVExTX0NPTk5FQ1RJT05fSUQ6TUJFRFRMU19TU0xfSEFWRV9BUklBOk1CRURUTFNfU1NMX0hBVkVfQ0JDOk1CRURUTFNfU1NMX1BST1RPX1RMUzFfMjpQU0FfV0FOVF9BTEdfU0hBXzI1Ngogc3NsX2NyeXB0X3JlY29yZF9zbWFsbDpNQkVEVExTX0NJUEhFUl9BUklBXzEyOF9DQkM6TUJFRFRMU19NRF9TSEEyNTY6MDowOk1CRURUTFNfU1NMX1ZFUlNJT05fVExTMV8yOjQ6NAogCiBSZWNvcmQgY3J5cHQsIGxpdHRsZSBzcGFjZSwgQVJJQS0xMjgtQ0JDLCAxLjIsIFNIQS0yNTYsIENJRCA0KzAKLWRlcGVuZHNfb246TUJFRFRMU19TU0xfRFRMU19DT05ORUNUSU9OX0lEOk1CRURUTFNfU1NMX0hBVkVfQVJJQTpNQkVEVExTX1NTTF9IQVZFX0NCQzpNQkVEVExTX1NTTF9QUk9UT19UTFMxXzI6TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOk1CRURUTFNfU1NMX0RUTFNfQ09OTkVDVElPTl9JRDpNQkVEVExTX1NTTF9IQVZFX0FSSUE6TUJFRFRMU19TU0xfSEFWRV9DQkM6TUJFRFRMU19TU0xfUFJPVE9fVExTMV8yOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBzc2xfY3J5cHRfcmVjb3JkX3NtYWxsOk1CRURUTFNfQ0lQSEVSX0FSSUFfMTI4X0NCQzpNQkVEVExTX01EX1NIQTI1NjowOjA6TUJFRFRMU19TU0xfVkVSU0lPTl9UTFMxXzI6NDowCiAKIFJlY29yZCBjcnlwdCwgbGl0dGxlIHNwYWNlLCBBUklBLTEyOC1DQkMsIDEuMiwgU0hBLTI1NiwgRXRNCi1kZXBlbmRzX29uOk1CRURUTFNfU1NMX0hBVkVfQVJJQTpNQkVEVExTX1NTTF9IQVZFX0NCQzpNQkVEVExTX1NTTF9QUk9UT19UTFMxXzI6TUJFRFRMU19NRF9DQU5fU0hBMjU2Ok1CRURUTFNfU1NMX0VOQ1JZUFRfVEhFTl9NQUMKK2RlcGVuZHNfb246TUJFRFRMU19TU0xfSEFWRV9BUklBOk1CRURUTFNfU1NMX0hBVkVfQ0JDOk1CRURUTFNfU1NMX1BST1RPX1RMUzFfMjpQU0FfV0FOVF9BTEdfU0hBXzI1NjpNQkVEVExTX1NTTF9FTkNSWVBUX1RIRU5fTUFDCiBzc2xfY3J5cHRfcmVjb3JkX3NtYWxsOk1CRURUTFNfQ0lQSEVSX0FSSUFfMTI4X0NCQzpNQkVEVExTX01EX1NIQTI1NjoxOjA6TUJFRFRMU19TU0xfVkVSU0lPTl9UTFMxXzI6MDowCiAKIFJlY29yZCBjcnlwdCwgbGl0dGxlIHNwYWNlLCBBUklBLTEyOC1DQkMsIDEuMiwgU0hBLTI1NiwgRXRNLCBDSUQgNCs0Ci1kZXBlbmRzX29uOk1CRURUTFNfU1NMX0RUTFNfQ09OTkVDVElPTl9JRDpNQkVEVExTX1NTTF9IQVZFX0FSSUE6TUJFRFRMU19TU0xfSEFWRV9DQkM6TUJFRFRMU19TU0xfUFJPVE9fVExTMV8yOk1CRURUTFNfTURfQ0FOX1NIQTI1NjpNQkVEVExTX1NTTF9FTkNSWVBUX1RIRU5fTUFDCitkZXBlbmRzX29uOk1CRURUTFNfU1NMX0RUTFNfQ09OTkVDVElPTl9JRDpNQkVEVExTX1NTTF9IQVZFX0FSSUE6TUJFRFRMU19TU0xfSEFWRV9DQkM6TUJFRFRMU19TU0xfUFJPVE9fVExTMV8yOlBTQV9XQU5UX0FMR19TSEFfMjU2Ok1CRURUTFNfU1NMX0VOQ1JZUFRfVEhFTl9NQUMKIHNzbF9jcnlwdF9yZWNvcmRfc21hbGw6TUJFRFRMU19DSVBIRVJfQVJJQV8xMjhfQ0JDOk1CRURUTFNfTURfU0hBMjU2OjE6MDpNQkVEVExTX1NTTF9WRVJTSU9OX1RMUzFfMjo0OjQKIAogUmVjb3JkIGNyeXB0LCBsaXR0bGUgc3BhY2UsIEFSSUEtMTI4LUNCQywgMS4yLCBTSEEtMjU2LCBFdE0sIENJRCA0KzAKLWRlcGVuZHNfb246TUJFRFRMU19TU0xfRFRMU19DT05ORUNUSU9OX0lEOk1CRURUTFNfU1NMX0hBVkVfQVJJQTpNQkVEVExTX1NTTF9IQVZFX0NCQzpNQkVEVExTX1NTTF9QUk9UT19UTFMxXzI6TUJFRFRMU19NRF9DQU5fU0hBMjU2Ok1CRURUTFNfU1NMX0VOQ1JZUFRfVEhFTl9NQUMKK2RlcGVuZHNfb246TUJFRFRMU19TU0xfRFRMU19DT05ORUNUSU9OX0lEOk1CRURUTFNfU1NMX0hBVkVfQVJJQTpNQkVEVExTX1NTTF9IQVZFX0NCQzpNQkVEVExTX1NTTF9QUk9UT19UTFMxXzI6UFNBX1dBTlRfQUxHX1NIQV8yNTY6TUJFRFRMU19TU0xfRU5DUllQVF9USEVOX01BQwogc3NsX2NyeXB0X3JlY29yZF9zbWFsbDpNQkVEVExTX0NJUEhFUl9BUklBXzEyOF9DQkM6TUJFRFRMU19NRF9TSEEyNTY6MTowOk1CRURUTFNfU1NMX1ZFUlNJT05fVExTMV8yOjQ6MAogCiBSZWNvcmQgY3J5cHQsIGxpdHRsZSBzcGFjZSwgQVJJQS0xMjgtQ0JDLCAxLjIsIFNIQS0xCkBAIC0yMTMwLDUxICsyMTMwLDUxIEBACiBzc2xfY3J5cHRfcmVjb3JkX3NtYWxsOk1CRURUTFNfQ0lQSEVSX0FSSUFfMTI4X0NCQzpNQkVEVExTX01EX01ENToxOjA6TUJFRFRMU19TU0xfVkVSU0lPTl9UTFMxXzI6NDowCiAKIFJlY29yZCBjcnlwdCwgbGl0dGxlIHNwYWNlLCBBUklBLTI1Ni1DQkMsIDEuMiwgU0hBLTM4NAotZGVwZW5kc19vbjpNQkVEVExTX1NTTF9IQVZFX0FSSUE6TUJFRFRMU19TU0xfSEFWRV9DQkM6TUJFRFRMU19TU0xfUFJPVE9fVExTMV8yOk1CRURUTFNfTURfQ0FOX1NIQTM4NAorZGVwZW5kc19vbjpNQkVEVExTX1NTTF9IQVZFX0FSSUE6TUJFRFRMU19TU0xfSEFWRV9DQkM6TUJFRFRMU19TU0xfUFJPVE9fVExTMV8yOlBTQV9XQU5UX0FMR19TSEFfMzg0CiBzc2xfY3J5cHRfcmVjb3JkX3NtYWxsOk1CRURUTFNfQ0lQSEVSX0FSSUFfMjU2X0NCQzpNQkVEVExTX01EX1NIQTM4NDowOjA6TUJFRFRMU19TU0xfVkVSU0lPTl9UTFMxXzI6MDowCiAKIFJlY29yZCBjcnlwdCwgbGl0dGxlIHNwYWNlLCBBUklBLTI1Ni1DQkMsIDEuMiwgU0hBLTM4NCwgQ0lEIDQrNAotZGVwZW5kc19vbjpNQkVEVExTX1NTTF9EVExTX0NPTk5FQ1RJT05fSUQ6TUJFRFRMU19TU0xfSEFWRV9BUklBOk1CRURUTFNfU1NMX0hBVkVfQ0JDOk1CRURUTFNfU1NMX1BST1RPX1RMUzFfMjpNQkVEVExTX01EX0NBTl9TSEEzODQKK2RlcGVuZHNfb246TUJFRFRMU19TU0xfRFRMU19DT05ORUNUSU9OX0lEOk1CRURUTFNfU1NMX0hBVkVfQVJJQTpNQkVEVExTX1NTTF9IQVZFX0NCQzpNQkVEVExTX1NTTF9QUk9UT19UTFMxXzI6UFNBX1dBTlRfQUxHX1NIQV8zODQKIHNzbF9jcnlwdF9yZWNvcmRfc21hbGw6TUJFRFRMU19DSVBIRVJfQVJJQV8yNTZfQ0JDOk1CRURUTFNfTURfU0hBMzg0OjA6MDpNQkVEVExTX1NTTF9WRVJTSU9OX1RMUzFfMjo0OjQKIAogUmVjb3JkIGNyeXB0LCBsaXR0bGUgc3BhY2UsIEFSSUEtMjU2LUNCQywgMS4yLCBTSEEtMzg0LCBDSUQgNCswCi1kZXBlbmRzX29uOk1CRURUTFNfU1NMX0RUTFNfQ09OTkVDVElPTl9JRDpNQkVEVExTX1NTTF9IQVZFX0FSSUE6TUJFRFRMU19TU0xfSEFWRV9DQkM6TUJFRFRMU19TU0xfUFJPVE9fVExTMV8yOk1CRURUTFNfTURfQ0FOX1NIQTM4NAorZGVwZW5kc19vbjpNQkVEVExTX1NTTF9EVExTX0NPTk5FQ1RJT05fSUQ6TUJFRFRMU19TU0xfSEFWRV9BUklBOk1CRURUTFNfU1NMX0hBVkVfQ0JDOk1CRURUTFNfU1NMX1BST1RPX1RMUzFfMjpQU0FfV0FOVF9BTEdfU0hBXzM4NAogc3NsX2NyeXB0X3JlY29yZF9zbWFsbDpNQkVEVExTX0NJUEhFUl9BUklBXzI1Nl9DQkM6TUJFRFRMU19NRF9TSEEzODQ6MDowOk1CRURUTFNfU1NMX1ZFUlNJT05fVExTMV8yOjQ6MAogCiBSZWNvcmQgY3J5cHQsIGxpdHRsZSBzcGFjZSwgQVJJQS0yNTYtQ0JDLCAxLjIsIFNIQS0zODQsIEV0TQotZGVwZW5kc19vbjpNQkVEVExTX1NTTF9IQVZFX0FSSUE6TUJFRFRMU19TU0xfSEFWRV9DQkM6TUJFRFRMU19TU0xfUFJPVE9fVExTMV8yOk1CRURUTFNfTURfQ0FOX1NIQTM4NDpNQkVEVExTX1NTTF9FTkNSWVBUX1RIRU5fTUFDCitkZXBlbmRzX29uOk1CRURUTFNfU1NMX0hBVkVfQVJJQTpNQkVEVExTX1NTTF9IQVZFX0NCQzpNQkVEVExTX1NTTF9QUk9UT19UTFMxXzI6UFNBX1dBTlRfQUxHX1NIQV8zODQ6TUJFRFRMU19TU0xfRU5DUllQVF9USEVOX01BQwogc3NsX2NyeXB0X3JlY29yZF9zbWFsbDpNQkVEVExTX0NJUEhFUl9BUklBXzI1Nl9DQkM6TUJFRFRMU19NRF9TSEEzODQ6MTowOk1CRURUTFNfU1NMX1ZFUlNJT05fVExTMV8yOjA6MAogCiBSZWNvcmQgY3J5cHQsIGxpdHRsZSBzcGFjZSwgQVJJQS0yNTYtQ0JDLCAxLjIsIFNIQS0zODQsIEV0TSwgQ0lEIDQrNAotZGVwZW5kc19vbjpNQkVEVExTX1NTTF9EVExTX0NPTk5FQ1RJT05fSUQ6TUJFRFRMU19TU0xfSEFWRV9BUklBOk1CRURUTFNfU1NMX0hBVkVfQ0JDOk1CRURUTFNfU1NMX1BST1RPX1RMUzFfMjpNQkVEVExTX01EX0NBTl9TSEEzODQ6TUJFRFRMU19TU0xfRU5DUllQVF9USEVOX01BQworZGVwZW5kc19vbjpNQkVEVExTX1NTTF9EVExTX0NPTk5FQ1RJT05fSUQ6TUJFRFRMU19TU0xfSEFWRV9BUklBOk1CRURUTFNfU1NMX0hBVkVfQ0JDOk1CRURUTFNfU1NMX1BST1RPX1RMUzFfMjpQU0FfV0FOVF9BTEdfU0hBXzM4NDpNQkVEVExTX1NTTF9FTkNSWVBUX1RIRU5fTUFDCiBzc2xfY3J5cHRfcmVjb3JkX3NtYWxsOk1CRURUTFNfQ0lQSEVSX0FSSUFfMjU2X0NCQzpNQkVEVExTX01EX1NIQTM4NDoxOjA6TUJFRFRMU19TU0xfVkVSU0lPTl9UTFMxXzI6NDo0CiAKIFJlY29yZCBjcnlwdCwgbGl0dGxlIHNwYWNlLCBBUklBLTI1Ni1DQkMsIDEuMiwgU0hBLTM4NCwgRXRNLCBDSUQgNCswCi1kZXBlbmRzX29uOk1CRURUTFNfU1NMX0RUTFNfQ09OTkVDVElPTl9JRDpNQkVEVExTX1NTTF9IQVZFX0FSSUE6TUJFRFRMU19TU0xfSEFWRV9DQkM6TUJFRFRMU19TU0xfUFJPVE9fVExTMV8yOk1CRURUTFNfTURfQ0FOX1NIQTM4NDpNQkVEVExTX1NTTF9FTkNSWVBUX1RIRU5fTUFDCitkZXBlbmRzX29uOk1CRURUTFNfU1NMX0RUTFNfQ09OTkVDVElPTl9JRDpNQkVEVExTX1NTTF9IQVZFX0FSSUE6TUJFRFRMU19TU0xfSEFWRV9DQkM6TUJFRFRMU19TU0xfUFJPVE9fVExTMV8yOlBTQV9XQU5UX0FMR19TSEFfMzg0Ok1CRURUTFNfU1NMX0VOQ1JZUFRfVEhFTl9NQUMKIHNzbF9jcnlwdF9yZWNvcmRfc21hbGw6TUJFRFRMU19DSVBIRVJfQVJJQV8yNTZfQ0JDOk1CRURUTFNfTURfU0hBMzg0OjE6MDpNQkVEVExTX1NTTF9WRVJTSU9OX1RMUzFfMjo0OjAKIAogUmVjb3JkIGNyeXB0LCBsaXR0bGUgc3BhY2UsIEFSSUEtMjU2LUNCQywgMS4yLCBTSEEtMjU2Ci1kZXBlbmRzX29uOk1CRURUTFNfU1NMX0hBVkVfQVJJQTpNQkVEVExTX1NTTF9IQVZFX0NCQzpNQkVEVExTX1NTTF9QUk9UT19UTFMxXzI6TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOk1CRURUTFNfU1NMX0hBVkVfQVJJQTpNQkVEVExTX1NTTF9IQVZFX0NCQzpNQkVEVExTX1NTTF9QUk9UT19UTFMxXzI6UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHNzbF9jcnlwdF9yZWNvcmRfc21hbGw6TUJFRFRMU19DSVBIRVJfQVJJQV8yNTZfQ0JDOk1CRURUTFNfTURfU0hBMjU2OjA6MDpNQkVEVExTX1NTTF9WRVJTSU9OX1RMUzFfMjowOjAKIAogUmVjb3JkIGNyeXB0LCBsaXR0bGUgc3BhY2UsIEFSSUEtMjU2LUNCQywgMS4yLCBTSEEtMjU2LCBDSUQgNCs0Ci1kZXBlbmRzX29uOk1CRURUTFNfU1NMX0RUTFNfQ09OTkVDVElPTl9JRDpNQkVEVExTX1NTTF9IQVZFX0FSSUE6TUJFRFRMU19TU0xfSEFWRV9DQkM6TUJFRFRMU19TU0xfUFJPVE9fVExTMV8yOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpNQkVEVExTX1NTTF9EVExTX0NPTk5FQ1RJT05fSUQ6TUJFRFRMU19TU0xfSEFWRV9BUklBOk1CRURUTFNfU1NMX0hBVkVfQ0JDOk1CRURUTFNfU1NMX1BST1RPX1RMUzFfMjpQU0FfV0FOVF9BTEdfU0hBXzI1Ngogc3NsX2NyeXB0X3JlY29yZF9zbWFsbDpNQkVEVExTX0NJUEhFUl9BUklBXzI1Nl9DQkM6TUJFRFRMU19NRF9TSEEyNTY6MDowOk1CRURUTFNfU1NMX1ZFUlNJT05fVExTMV8yOjQ6NAogCiBSZWNvcmQgY3J5cHQsIGxpdHRsZSBzcGFjZSwgQVJJQS0yNTYtQ0JDLCAxLjIsIFNIQS0yNTYsIENJRCA0KzAKLWRlcGVuZHNfb246TUJFRFRMU19TU0xfRFRMU19DT05ORUNUSU9OX0lEOk1CRURUTFNfU1NMX0hBVkVfQVJJQTpNQkVEVExTX1NTTF9IQVZFX0NCQzpNQkVEVExTX1NTTF9QUk9UT19UTFMxXzI6TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOk1CRURUTFNfU1NMX0RUTFNfQ09OTkVDVElPTl9JRDpNQkVEVExTX1NTTF9IQVZFX0FSSUE6TUJFRFRMU19TU0xfSEFWRV9DQkM6TUJFRFRMU19TU0xfUFJPVE9fVExTMV8yOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBzc2xfY3J5cHRfcmVjb3JkX3NtYWxsOk1CRURUTFNfQ0lQSEVSX0FSSUFfMjU2X0NCQzpNQkVEVExTX01EX1NIQTI1NjowOjA6TUJFRFRMU19TU0xfVkVSU0lPTl9UTFMxXzI6NDowCiAKIFJlY29yZCBjcnlwdCwgbGl0dGxlIHNwYWNlLCBBUklBLTI1Ni1DQkMsIDEuMiwgU0hBLTI1NiwgRXRNCi1kZXBlbmRzX29uOk1CRURUTFNfU1NMX0hBVkVfQVJJQTpNQkVEVExTX1NTTF9IQVZFX0NCQzpNQkVEVExTX1NTTF9QUk9UT19UTFMxXzI6TUJFRFRMU19NRF9DQU5fU0hBMjU2Ok1CRURUTFNfU1NMX0VOQ1JZUFRfVEhFTl9NQUMKK2RlcGVuZHNfb246TUJFRFRMU19TU0xfSEFWRV9BUklBOk1CRURUTFNfU1NMX0hBVkVfQ0JDOk1CRURUTFNfU1NMX1BST1RPX1RMUzFfMjpQU0FfV0FOVF9BTEdfU0hBXzI1NjpNQkVEVExTX1NTTF9FTkNSWVBUX1RIRU5fTUFDCiBzc2xfY3J5cHRfcmVjb3JkX3NtYWxsOk1CRURUTFNfQ0lQSEVSX0FSSUFfMjU2X0NCQzpNQkVEVExTX01EX1NIQTI1NjoxOjA6TUJFRFRMU19TU0xfVkVSU0lPTl9UTFMxXzI6MDowCiAKIFJlY29yZCBjcnlwdCwgbGl0dGxlIHNwYWNlLCBBUklBLTI1Ni1DQkMsIDEuMiwgU0hBLTI1NiwgRXRNLCBDSUQgNCs0Ci1kZXBlbmRzX29uOk1CRURUTFNfU1NMX0RUTFNfQ09OTkVDVElPTl9JRDpNQkVEVExTX1NTTF9IQVZFX0FSSUE6TUJFRFRMU19TU0xfSEFWRV9DQkM6TUJFRFRMU19TU0xfUFJPVE9fVExTMV8yOk1CRURUTFNfTURfQ0FOX1NIQTI1NjpNQkVEVExTX1NTTF9FTkNSWVBUX1RIRU5fTUFDCitkZXBlbmRzX29uOk1CRURUTFNfU1NMX0RUTFNfQ09OTkVDVElPTl9JRDpNQkVEVExTX1NTTF9IQVZFX0FSSUE6TUJFRFRMU19TU0xfSEFWRV9DQkM6TUJFRFRMU19TU0xfUFJPVE9fVExTMV8yOlBTQV9XQU5UX0FMR19TSEFfMjU2Ok1CRURUTFNfU1NMX0VOQ1JZUFRfVEhFTl9NQUMKIHNzbF9jcnlwdF9yZWNvcmRfc21hbGw6TUJFRFRMU19DSVBIRVJfQVJJQV8yNTZfQ0JDOk1CRURUTFNfTURfU0hBMjU2OjE6MDpNQkVEVExTX1NTTF9WRVJTSU9OX1RMUzFfMjo0OjQKIAogUmVjb3JkIGNyeXB0LCBsaXR0bGUgc3BhY2UsIEFSSUEtMjU2LUNCQywgMS4yLCBTSEEtMjU2LCBFdE0sIENJRCA0KzAKLWRlcGVuZHNfb246TUJFRFRMU19TU0xfRFRMU19DT05ORUNUSU9OX0lEOk1CRURUTFNfU1NMX0hBVkVfQVJJQTpNQkVEVExTX1NTTF9IQVZFX0NCQzpNQkVEVExTX1NTTF9QUk9UT19UTFMxXzI6TUJFRFRMU19NRF9DQU5fU0hBMjU2Ok1CRURUTFNfU1NMX0VOQ1JZUFRfVEhFTl9NQUMKK2RlcGVuZHNfb246TUJFRFRMU19TU0xfRFRMU19DT05ORUNUSU9OX0lEOk1CRURUTFNfU1NMX0hBVkVfQVJJQTpNQkVEVExTX1NTTF9IQVZFX0NCQzpNQkVEVExTX1NTTF9QUk9UT19UTFMxXzI6UFNBX1dBTlRfQUxHX1NIQV8yNTY6TUJFRFRMU19TU0xfRU5DUllQVF9USEVOX01BQwogc3NsX2NyeXB0X3JlY29yZF9zbWFsbDpNQkVEVExTX0NJUEhFUl9BUklBXzI1Nl9DQkM6TUJFRFRMU19NRF9TSEEyNTY6MTowOk1CRURUTFNfU1NMX1ZFUlNJT05fVExTMV8yOjQ6MAogCiBSZWNvcmQgY3J5cHQsIGxpdHRsZSBzcGFjZSwgQVJJQS0yNTYtQ0JDLCAxLjIsIFNIQS0xCkBAIC0yMjI2LDUxICsyMjI2LDUxIEBACiBzc2xfY3J5cHRfcmVjb3JkX3NtYWxsOk1CRURUTFNfQ0lQSEVSX0FSSUFfMjU2X0NCQzpNQkVEVExTX01EX01ENToxOjA6TUJFRFRMU19TU0xfVkVSU0lPTl9UTFMxXzI6NDowCiAKIFJlY29yZCBjcnlwdCwgbGl0dGxlIHNwYWNlLCBDQU1FTExJQS0xMjgtQ0JDLCAxLjIsIFNIQS0zODQKLWRlcGVuZHNfb246TUJFRFRMU19TU0xfSEFWRV9DQU1FTExJQTpNQkVEVExTX1NTTF9IQVZFX0NCQzpNQkVEVExTX1NTTF9QUk9UT19UTFMxXzI6TUJFRFRMU19NRF9DQU5fU0hBMzg0CitkZXBlbmRzX29uOk1CRURUTFNfU1NMX0hBVkVfQ0FNRUxMSUE6TUJFRFRMU19TU0xfSEFWRV9DQkM6TUJFRFRMU19TU0xfUFJPVE9fVExTMV8yOlBTQV9XQU5UX0FMR19TSEFfMzg0CiBzc2xfY3J5cHRfcmVjb3JkX3NtYWxsOk1CRURUTFNfQ0lQSEVSX0NBTUVMTElBXzEyOF9DQkM6TUJFRFRMU19NRF9TSEEzODQ6MDowOk1CRURUTFNfU1NMX1ZFUlNJT05fVExTMV8yOjA6MAogCiBSZWNvcmQgY3J5cHQsIGxpdHRsZSBzcGFjZSwgQ0FNRUxMSUEtMTI4LUNCQywgMS4yLCBTSEEtMzg0LCBDSUQgNCs0Ci1kZXBlbmRzX29uOk1CRURUTFNfU1NMX0RUTFNfQ09OTkVDVElPTl9JRDpNQkVEVExTX1NTTF9IQVZFX0NBTUVMTElBOk1CRURUTFNfU1NMX0hBVkVfQ0JDOk1CRURUTFNfU1NMX1BST1RPX1RMUzFfMjpNQkVEVExTX01EX0NBTl9TSEEzODQKK2RlcGVuZHNfb246TUJFRFRMU19TU0xfRFRMU19DT05ORUNUSU9OX0lEOk1CRURUTFNfU1NMX0hBVkVfQ0FNRUxMSUE6TUJFRFRMU19TU0xfSEFWRV9DQkM6TUJFRFRMU19TU0xfUFJPVE9fVExTMV8yOlBTQV9XQU5UX0FMR19TSEFfMzg0CiBzc2xfY3J5cHRfcmVjb3JkX3NtYWxsOk1CRURUTFNfQ0lQSEVSX0NBTUVMTElBXzEyOF9DQkM6TUJFRFRMU19NRF9TSEEzODQ6MDowOk1CRURUTFNfU1NMX1ZFUlNJT05fVExTMV8yOjQ6NAogCiBSZWNvcmQgY3J5cHQsIGxpdHRsZSBzcGFjZSwgQ0FNRUxMSUEtMTI4LUNCQywgMS4yLCBTSEEtMzg0LCBDSUQgNCswCi1kZXBlbmRzX29uOk1CRURUTFNfU1NMX0RUTFNfQ09OTkVDVElPTl9JRDpNQkVEVExTX1NTTF9IQVZFX0NBTUVMTElBOk1CRURUTFNfU1NMX0hBVkVfQ0JDOk1CRURUTFNfU1NMX1BST1RPX1RMUzFfMjpNQkVEVExTX01EX0NBTl9TSEEzODQKK2RlcGVuZHNfb246TUJFRFRMU19TU0xfRFRMU19DT05ORUNUSU9OX0lEOk1CRURUTFNfU1NMX0hBVkVfQ0FNRUxMSUE6TUJFRFRMU19TU0xfSEFWRV9DQkM6TUJFRFRMU19TU0xfUFJPVE9fVExTMV8yOlBTQV9XQU5UX0FMR19TSEFfMzg0CiBzc2xfY3J5cHRfcmVjb3JkX3NtYWxsOk1CRURUTFNfQ0lQSEVSX0NBTUVMTElBXzEyOF9DQkM6TUJFRFRMU19NRF9TSEEzODQ6MDowOk1CRURUTFNfU1NMX1ZFUlNJT05fVExTMV8yOjQ6MAogCiBSZWNvcmQgY3J5cHQsIGxpdHRsZSBzcGFjZSwgQ0FNRUxMSUEtMTI4LUNCQywgMS4yLCBTSEEtMzg0LCBFdE0KLWRlcGVuZHNfb246TUJFRFRMU19TU0xfSEFWRV9DQU1FTExJQTpNQkVEVExTX1NTTF9IQVZFX0NCQzpNQkVEVExTX1NTTF9QUk9UT19UTFMxXzI6TUJFRFRMU19NRF9DQU5fU0hBMzg0Ok1CRURUTFNfU1NMX0VOQ1JZUFRfVEhFTl9NQUMKK2RlcGVuZHNfb246TUJFRFRMU19TU0xfSEFWRV9DQU1FTExJQTpNQkVEVExTX1NTTF9IQVZFX0NCQzpNQkVEVExTX1NTTF9QUk9UT19UTFMxXzI6UFNBX1dBTlRfQUxHX1NIQV8zODQ6TUJFRFRMU19TU0xfRU5DUllQVF9USEVOX01BQwogc3NsX2NyeXB0X3JlY29yZF9zbWFsbDpNQkVEVExTX0NJUEhFUl9DQU1FTExJQV8xMjhfQ0JDOk1CRURUTFNfTURfU0hBMzg0OjE6MDpNQkVEVExTX1NTTF9WRVJTSU9OX1RMUzFfMjowOjAKIAogUmVjb3JkIGNyeXB0LCBsaXR0bGUgc3BhY2UsIENBTUVMTElBLTEyOC1DQkMsIDEuMiwgU0hBLTM4NCwgRXRNLCBDSUQgNCs0Ci1kZXBlbmRzX29uOk1CRURUTFNfU1NMX0RUTFNfQ09OTkVDVElPTl9JRDpNQkVEVExTX1NTTF9IQVZFX0NBTUVMTElBOk1CRURUTFNfU1NMX0hBVkVfQ0JDOk1CRURUTFNfU1NMX1BST1RPX1RMUzFfMjpNQkVEVExTX01EX0NBTl9TSEEzODQ6TUJFRFRMU19TU0xfRU5DUllQVF9USEVOX01BQworZGVwZW5kc19vbjpNQkVEVExTX1NTTF9EVExTX0NPTk5FQ1RJT05fSUQ6TUJFRFRMU19TU0xfSEFWRV9DQU1FTExJQTpNQkVEVExTX1NTTF9IQVZFX0NCQzpNQkVEVExTX1NTTF9QUk9UT19UTFMxXzI6UFNBX1dBTlRfQUxHX1NIQV8zODQ6TUJFRFRMU19TU0xfRU5DUllQVF9USEVOX01BQwogc3NsX2NyeXB0X3JlY29yZF9zbWFsbDpNQkVEVExTX0NJUEhFUl9DQU1FTExJQV8xMjhfQ0JDOk1CRURUTFNfTURfU0hBMzg0OjE6MDpNQkVEVExTX1NTTF9WRVJTSU9OX1RMUzFfMjo0OjQKIAogUmVjb3JkIGNyeXB0LCBsaXR0bGUgc3BhY2UsIENBTUVMTElBLTEyOC1DQkMsIDEuMiwgU0hBLTM4NCwgRXRNLCBDSUQgNCswCi1kZXBlbmRzX29uOk1CRURUTFNfU1NMX0RUTFNfQ09OTkVDVElPTl9JRDpNQkVEVExTX1NTTF9IQVZFX0NBTUVMTElBOk1CRURUTFNfU1NMX0hBVkVfQ0JDOk1CRURUTFNfU1NMX1BST1RPX1RMUzFfMjpNQkVEVExTX01EX0NBTl9TSEEzODQ6TUJFRFRMU19TU0xfRU5DUllQVF9USEVOX01BQworZGVwZW5kc19vbjpNQkVEVExTX1NTTF9EVExTX0NPTk5FQ1RJT05fSUQ6TUJFRFRMU19TU0xfSEFWRV9DQU1FTExJQTpNQkVEVExTX1NTTF9IQVZFX0NCQzpNQkVEVExTX1NTTF9QUk9UT19UTFMxXzI6UFNBX1dBTlRfQUxHX1NIQV8zODQ6TUJFRFRMU19TU0xfRU5DUllQVF9USEVOX01BQwogc3NsX2NyeXB0X3JlY29yZF9zbWFsbDpNQkVEVExTX0NJUEhFUl9DQU1FTExJQV8xMjhfQ0JDOk1CRURUTFNfTURfU0hBMzg0OjE6MDpNQkVEVExTX1NTTF9WRVJTSU9OX1RMUzFfMjo0OjAKIAogUmVjb3JkIGNyeXB0LCBsaXR0bGUgc3BhY2UsIENBTUVMTElBLTEyOC1DQkMsIDEuMiwgU0hBLTI1NgotZGVwZW5kc19vbjpNQkVEVExTX1NTTF9IQVZFX0NBTUVMTElBOk1CRURUTFNfU1NMX0hBVkVfQ0JDOk1CRURUTFNfU1NMX1BST1RPX1RMUzFfMjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246TUJFRFRMU19TU0xfSEFWRV9DQU1FTExJQTpNQkVEVExTX1NTTF9IQVZFX0NCQzpNQkVEVExTX1NTTF9QUk9UT19UTFMxXzI6UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHNzbF9jcnlwdF9yZWNvcmRfc21hbGw6TUJFRFRMU19DSVBIRVJfQ0FNRUxMSUFfMTI4X0NCQzpNQkVEVExTX01EX1NIQTI1NjowOjA6TUJFRFRMU19TU0xfVkVSU0lPTl9UTFMxXzI6MDowCiAKIFJlY29yZCBjcnlwdCwgbGl0dGxlIHNwYWNlLCBDQU1FTExJQS0xMjgtQ0JDLCAxLjIsIFNIQS0yNTYsIENJRCA0KzQKLWRlcGVuZHNfb246TUJFRFRMU19TU0xfRFRMU19DT05ORUNUSU9OX0lEOk1CRURUTFNfU1NMX0hBVkVfQ0FNRUxMSUE6TUJFRFRMU19TU0xfSEFWRV9DQkM6TUJFRFRMU19TU0xfUFJPVE9fVExTMV8yOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpNQkVEVExTX1NTTF9EVExTX0NPTk5FQ1RJT05fSUQ6TUJFRFRMU19TU0xfSEFWRV9DQU1FTExJQTpNQkVEVExTX1NTTF9IQVZFX0NCQzpNQkVEVExTX1NTTF9QUk9UT19UTFMxXzI6UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHNzbF9jcnlwdF9yZWNvcmRfc21hbGw6TUJFRFRMU19DSVBIRVJfQ0FNRUxMSUFfMTI4X0NCQzpNQkVEVExTX01EX1NIQTI1NjowOjA6TUJFRFRMU19TU0xfVkVSU0lPTl9UTFMxXzI6NDo0CiAKIFJlY29yZCBjcnlwdCwgbGl0dGxlIHNwYWNlLCBDQU1FTExJQS0xMjgtQ0JDLCAxLjIsIFNIQS0yNTYsIENJRCA0KzAKLWRlcGVuZHNfb246TUJFRFRMU19TU0xfRFRMU19DT05ORUNUSU9OX0lEOk1CRURUTFNfU1NMX0hBVkVfQ0FNRUxMSUE6TUJFRFRMU19TU0xfSEFWRV9DQkM6TUJFRFRMU19TU0xfUFJPVE9fVExTMV8yOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpNQkVEVExTX1NTTF9EVExTX0NPTk5FQ1RJT05fSUQ6TUJFRFRMU19TU0xfSEFWRV9DQU1FTExJQTpNQkVEVExTX1NTTF9IQVZFX0NCQzpNQkVEVExTX1NTTF9QUk9UT19UTFMxXzI6UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHNzbF9jcnlwdF9yZWNvcmRfc21hbGw6TUJFRFRMU19DSVBIRVJfQ0FNRUxMSUFfMTI4X0NCQzpNQkVEVExTX01EX1NIQTI1NjowOjA6TUJFRFRMU19TU0xfVkVSU0lPTl9UTFMxXzI6NDowCiAKIFJlY29yZCBjcnlwdCwgbGl0dGxlIHNwYWNlLCBDQU1FTExJQS0xMjgtQ0JDLCAxLjIsIFNIQS0yNTYsIEV0TQotZGVwZW5kc19vbjpNQkVEVExTX1NTTF9IQVZFX0NBTUVMTElBOk1CRURUTFNfU1NMX0hBVkVfQ0JDOk1CRURUTFNfU1NMX1BST1RPX1RMUzFfMjpNQkVEVExTX01EX0NBTl9TSEEyNTY6TUJFRFRMU19TU0xfRU5DUllQVF9USEVOX01BQworZGVwZW5kc19vbjpNQkVEVExTX1NTTF9IQVZFX0NBTUVMTElBOk1CRURUTFNfU1NMX0hBVkVfQ0JDOk1CRURUTFNfU1NMX1BST1RPX1RMUzFfMjpQU0FfV0FOVF9BTEdfU0hBXzI1NjpNQkVEVExTX1NTTF9FTkNSWVBUX1RIRU5fTUFDCiBzc2xfY3J5cHRfcmVjb3JkX3NtYWxsOk1CRURUTFNfQ0lQSEVSX0NBTUVMTElBXzEyOF9DQkM6TUJFRFRMU19NRF9TSEEyNTY6MTowOk1CRURUTFNfU1NMX1ZFUlNJT05fVExTMV8yOjA6MAogCiBSZWNvcmQgY3J5cHQsIGxpdHRsZSBzcGFjZSwgQ0FNRUxMSUEtMTI4LUNCQywgMS4yLCBTSEEtMjU2LCBFdE0sIENJRCA0KzQKLWRlcGVuZHNfb246TUJFRFRMU19TU0xfRFRMU19DT05ORUNUSU9OX0lEOk1CRURUTFNfU1NMX0hBVkVfQ0FNRUxMSUE6TUJFRFRMU19TU0xfSEFWRV9DQkM6TUJFRFRMU19TU0xfUFJPVE9fVExTMV8yOk1CRURUTFNfTURfQ0FOX1NIQTI1NjpNQkVEVExTX1NTTF9FTkNSWVBUX1RIRU5fTUFDCitkZXBlbmRzX29uOk1CRURUTFNfU1NMX0RUTFNfQ09OTkVDVElPTl9JRDpNQkVEVExTX1NTTF9IQVZFX0NBTUVMTElBOk1CRURUTFNfU1NMX0hBVkVfQ0JDOk1CRURUTFNfU1NMX1BST1RPX1RMUzFfMjpQU0FfV0FOVF9BTEdfU0hBXzI1NjpNQkVEVExTX1NTTF9FTkNSWVBUX1RIRU5fTUFDCiBzc2xfY3J5cHRfcmVjb3JkX3NtYWxsOk1CRURUTFNfQ0lQSEVSX0NBTUVMTElBXzEyOF9DQkM6TUJFRFRMU19NRF9TSEEyNTY6MTowOk1CRURUTFNfU1NMX1ZFUlNJT05fVExTMV8yOjQ6NAogCiBSZWNvcmQgY3J5cHQsIGxpdHRsZSBzcGFjZSwgQ0FNRUxMSUEtMTI4LUNCQywgMS4yLCBTSEEtMjU2LCBFdE0sIENJRCA0KzAKLWRlcGVuZHNfb246TUJFRFRMU19TU0xfRFRMU19DT05ORUNUSU9OX0lEOk1CRURUTFNfU1NMX0hBVkVfQ0FNRUxMSUE6TUJFRFRMU19TU0xfSEFWRV9DQkM6TUJFRFRMU19TU0xfUFJPVE9fVExTMV8yOk1CRURUTFNfTURfQ0FOX1NIQTI1NjpNQkVEVExTX1NTTF9FTkNSWVBUX1RIRU5fTUFDCitkZXBlbmRzX29uOk1CRURUTFNfU1NMX0RUTFNfQ09OTkVDVElPTl9JRDpNQkVEVExTX1NTTF9IQVZFX0NBTUVMTElBOk1CRURUTFNfU1NMX0hBVkVfQ0JDOk1CRURUTFNfU1NMX1BST1RPX1RMUzFfMjpQU0FfV0FOVF9BTEdfU0hBXzI1NjpNQkVEVExTX1NTTF9FTkNSWVBUX1RIRU5fTUFDCiBzc2xfY3J5cHRfcmVjb3JkX3NtYWxsOk1CRURUTFNfQ0lQSEVSX0NBTUVMTElBXzEyOF9DQkM6TUJFRFRMU19NRF9TSEEyNTY6MTowOk1CRURUTFNfU1NMX1ZFUlNJT05fVExTMV8yOjQ6MAogCiBSZWNvcmQgY3J5cHQsIGxpdHRsZSBzcGFjZSwgQ0FNRUxMSUEtMTI4LUNCQywgMS4yLCBTSEEtMQpAQCAtMjMyMiw1MSArMjMyMiw1MSBAQAogc3NsX2NyeXB0X3JlY29yZF9zbWFsbDpNQkVEVExTX0NJUEhFUl9DQU1FTExJQV8xMjhfQ0JDOk1CRURUTFNfTURfTUQ1OjE6MDpNQkVEVExTX1NTTF9WRVJTSU9OX1RMUzFfMjo0OjAKIAogUmVjb3JkIGNyeXB0LCBsaXR0bGUgc3BhY2UsIENBTUVMTElBLTI1Ni1DQkMsIDEuMiwgU0hBLTM4NAotZGVwZW5kc19vbjpNQkVEVExTX1NTTF9IQVZFX0NBTUVMTElBOk1CRURUTFNfU1NMX0hBVkVfQ0JDOk1CRURUTFNfU1NMX1BST1RPX1RMUzFfMjpNQkVEVExTX01EX0NBTl9TSEEzODQKK2RlcGVuZHNfb246TUJFRFRMU19TU0xfSEFWRV9DQU1FTExJQTpNQkVEVExTX1NTTF9IQVZFX0NCQzpNQkVEVExTX1NTTF9QUk9UT19UTFMxXzI6UFNBX1dBTlRfQUxHX1NIQV8zODQKIHNzbF9jcnlwdF9yZWNvcmRfc21hbGw6TUJFRFRMU19DSVBIRVJfQ0FNRUxMSUFfMjU2X0NCQzpNQkVEVExTX01EX1NIQTM4NDowOjA6TUJFRFRMU19TU0xfVkVSU0lPTl9UTFMxXzI6MDowCiAKIFJlY29yZCBjcnlwdCwgbGl0dGxlIHNwYWNlLCBDQU1FTExJQS0yNTYtQ0JDLCAxLjIsIFNIQS0zODQsIENJRCA0KzQKLWRlcGVuZHNfb246TUJFRFRMU19TU0xfRFRMU19DT05ORUNUSU9OX0lEOk1CRURUTFNfU1NMX0hBVkVfQ0FNRUxMSUE6TUJFRFRMU19TU0xfSEFWRV9DQkM6TUJFRFRMU19TU0xfUFJPVE9fVExTMV8yOk1CRURUTFNfTURfQ0FOX1NIQTM4NAorZGVwZW5kc19vbjpNQkVEVExTX1NTTF9EVExTX0NPTk5FQ1RJT05fSUQ6TUJFRFRMU19TU0xfSEFWRV9DQU1FTExJQTpNQkVEVExTX1NTTF9IQVZFX0NCQzpNQkVEVExTX1NTTF9QUk9UT19UTFMxXzI6UFNBX1dBTlRfQUxHX1NIQV8zODQKIHNzbF9jcnlwdF9yZWNvcmRfc21hbGw6TUJFRFRMU19DSVBIRVJfQ0FNRUxMSUFfMjU2X0NCQzpNQkVEVExTX01EX1NIQTM4NDowOjA6TUJFRFRMU19TU0xfVkVSU0lPTl9UTFMxXzI6NDo0CiAKIFJlY29yZCBjcnlwdCwgbGl0dGxlIHNwYWNlLCBDQU1FTExJQS0yNTYtQ0JDLCAxLjIsIFNIQS0zODQsIENJRCA0KzAKLWRlcGVuZHNfb246TUJFRFRMU19TU0xfRFRMU19DT05ORUNUSU9OX0lEOk1CRURUTFNfU1NMX0hBVkVfQ0FNRUxMSUE6TUJFRFRMU19TU0xfSEFWRV9DQkM6TUJFRFRMU19TU0xfUFJPVE9fVExTMV8yOk1CRURUTFNfTURfQ0FOX1NIQTM4NAorZGVwZW5kc19vbjpNQkVEVExTX1NTTF9EVExTX0NPTk5FQ1RJT05fSUQ6TUJFRFRMU19TU0xfSEFWRV9DQU1FTExJQTpNQkVEVExTX1NTTF9IQVZFX0NCQzpNQkVEVExTX1NTTF9QUk9UT19UTFMxXzI6UFNBX1dBTlRfQUxHX1NIQV8zODQKIHNzbF9jcnlwdF9yZWNvcmRfc21hbGw6TUJFRFRMU19DSVBIRVJfQ0FNRUxMSUFfMjU2X0NCQzpNQkVEVExTX01EX1NIQTM4NDowOjA6TUJFRFRMU19TU0xfVkVSU0lPTl9UTFMxXzI6NDowCiAKIFJlY29yZCBjcnlwdCwgbGl0dGxlIHNwYWNlLCBDQU1FTExJQS0yNTYtQ0JDLCAxLjIsIFNIQS0zODQsIEV0TQotZGVwZW5kc19vbjpNQkVEVExTX1NTTF9IQVZFX0NBTUVMTElBOk1CRURUTFNfU1NMX0hBVkVfQ0JDOk1CRURUTFNfU1NMX1BST1RPX1RMUzFfMjpNQkVEVExTX01EX0NBTl9TSEEzODQ6TUJFRFRMU19TU0xfRU5DUllQVF9USEVOX01BQworZGVwZW5kc19vbjpNQkVEVExTX1NTTF9IQVZFX0NBTUVMTElBOk1CRURUTFNfU1NMX0hBVkVfQ0JDOk1CRURUTFNfU1NMX1BST1RPX1RMUzFfMjpQU0FfV0FOVF9BTEdfU0hBXzM4NDpNQkVEVExTX1NTTF9FTkNSWVBUX1RIRU5fTUFDCiBzc2xfY3J5cHRfcmVjb3JkX3NtYWxsOk1CRURUTFNfQ0lQSEVSX0NBTUVMTElBXzI1Nl9DQkM6TUJFRFRMU19NRF9TSEEzODQ6MTowOk1CRURUTFNfU1NMX1ZFUlNJT05fVExTMV8yOjA6MAogCiBSZWNvcmQgY3J5cHQsIGxpdHRsZSBzcGFjZSwgQ0FNRUxMSUEtMjU2LUNCQywgMS4yLCBTSEEtMzg0LCBFdE0sIENJRCA0KzQKLWRlcGVuZHNfb246TUJFRFRMU19TU0xfRFRMU19DT05ORUNUSU9OX0lEOk1CRURUTFNfU1NMX0hBVkVfQ0FNRUxMSUE6TUJFRFRMU19TU0xfSEFWRV9DQkM6TUJFRFRMU19TU0xfUFJPVE9fVExTMV8yOk1CRURUTFNfTURfQ0FOX1NIQTM4NDpNQkVEVExTX1NTTF9FTkNSWVBUX1RIRU5fTUFDCitkZXBlbmRzX29uOk1CRURUTFNfU1NMX0RUTFNfQ09OTkVDVElPTl9JRDpNQkVEVExTX1NTTF9IQVZFX0NBTUVMTElBOk1CRURUTFNfU1NMX0hBVkVfQ0JDOk1CRURUTFNfU1NMX1BST1RPX1RMUzFfMjpQU0FfV0FOVF9BTEdfU0hBXzM4NDpNQkVEVExTX1NTTF9FTkNSWVBUX1RIRU5fTUFDCiBzc2xfY3J5cHRfcmVjb3JkX3NtYWxsOk1CRURUTFNfQ0lQSEVSX0NBTUVMTElBXzI1Nl9DQkM6TUJFRFRMU19NRF9TSEEzODQ6MTowOk1CRURUTFNfU1NMX1ZFUlNJT05fVExTMV8yOjQ6NAogCiBSZWNvcmQgY3J5cHQsIGxpdHRsZSBzcGFjZSwgQ0FNRUxMSUEtMjU2LUNCQywgMS4yLCBTSEEtMzg0LCBFdE0sIENJRCA0KzAKLWRlcGVuZHNfb246TUJFRFRMU19TU0xfRFRMU19DT05ORUNUSU9OX0lEOk1CRURUTFNfU1NMX0hBVkVfQ0FNRUxMSUE6TUJFRFRMU19TU0xfSEFWRV9DQkM6TUJFRFRMU19TU0xfUFJPVE9fVExTMV8yOk1CRURUTFNfTURfQ0FOX1NIQTM4NDpNQkVEVExTX1NTTF9FTkNSWVBUX1RIRU5fTUFDCitkZXBlbmRzX29uOk1CRURUTFNfU1NMX0RUTFNfQ09OTkVDVElPTl9JRDpNQkVEVExTX1NTTF9IQVZFX0NBTUVMTElBOk1CRURUTFNfU1NMX0hBVkVfQ0JDOk1CRURUTFNfU1NMX1BST1RPX1RMUzFfMjpQU0FfV0FOVF9BTEdfU0hBXzM4NDpNQkVEVExTX1NTTF9FTkNSWVBUX1RIRU5fTUFDCiBzc2xfY3J5cHRfcmVjb3JkX3NtYWxsOk1CRURUTFNfQ0lQSEVSX0NBTUVMTElBXzI1Nl9DQkM6TUJFRFRMU19NRF9TSEEzODQ6MTowOk1CRURUTFNfU1NMX1ZFUlNJT05fVExTMV8yOjQ6MAogCiBSZWNvcmQgY3J5cHQsIGxpdHRsZSBzcGFjZSwgQ0FNRUxMSUEtMjU2LUNCQywgMS4yLCBTSEEtMjU2Ci1kZXBlbmRzX29uOk1CRURUTFNfU1NMX0hBVkVfQ0FNRUxMSUE6TUJFRFRMU19TU0xfSEFWRV9DQkM6TUJFRFRMU19TU0xfUFJPVE9fVExTMV8yOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpNQkVEVExTX1NTTF9IQVZFX0NBTUVMTElBOk1CRURUTFNfU1NMX0hBVkVfQ0JDOk1CRURUTFNfU1NMX1BST1RPX1RMUzFfMjpQU0FfV0FOVF9BTEdfU0hBXzI1Ngogc3NsX2NyeXB0X3JlY29yZF9zbWFsbDpNQkVEVExTX0NJUEhFUl9DQU1FTExJQV8yNTZfQ0JDOk1CRURUTFNfTURfU0hBMjU2OjA6MDpNQkVEVExTX1NTTF9WRVJTSU9OX1RMUzFfMjowOjAKIAogUmVjb3JkIGNyeXB0LCBsaXR0bGUgc3BhY2UsIENBTUVMTElBLTI1Ni1DQkMsIDEuMiwgU0hBLTI1NiwgQ0lEIDQrNAotZGVwZW5kc19vbjpNQkVEVExTX1NTTF9EVExTX0NPTk5FQ1RJT05fSUQ6TUJFRFRMU19TU0xfSEFWRV9DQU1FTExJQTpNQkVEVExTX1NTTF9IQVZFX0NCQzpNQkVEVExTX1NTTF9QUk9UT19UTFMxXzI6TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOk1CRURUTFNfU1NMX0RUTFNfQ09OTkVDVElPTl9JRDpNQkVEVExTX1NTTF9IQVZFX0NBTUVMTElBOk1CRURUTFNfU1NMX0hBVkVfQ0JDOk1CRURUTFNfU1NMX1BST1RPX1RMUzFfMjpQU0FfV0FOVF9BTEdfU0hBXzI1Ngogc3NsX2NyeXB0X3JlY29yZF9zbWFsbDpNQkVEVExTX0NJUEhFUl9DQU1FTExJQV8yNTZfQ0JDOk1CRURUTFNfTURfU0hBMjU2OjA6MDpNQkVEVExTX1NTTF9WRVJTSU9OX1RMUzFfMjo0OjQKIAogUmVjb3JkIGNyeXB0LCBsaXR0bGUgc3BhY2UsIENBTUVMTElBLTI1Ni1DQkMsIDEuMiwgU0hBLTI1NiwgQ0lEIDQrMAotZGVwZW5kc19vbjpNQkVEVExTX1NTTF9EVExTX0NPTk5FQ1RJT05fSUQ6TUJFRFRMU19TU0xfSEFWRV9DQU1FTExJQTpNQkVEVExTX1NTTF9IQVZFX0NCQzpNQkVEVExTX1NTTF9QUk9UT19UTFMxXzI6TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOk1CRURUTFNfU1NMX0RUTFNfQ09OTkVDVElPTl9JRDpNQkVEVExTX1NTTF9IQVZFX0NBTUVMTElBOk1CRURUTFNfU1NMX0hBVkVfQ0JDOk1CRURUTFNfU1NMX1BST1RPX1RMUzFfMjpQU0FfV0FOVF9BTEdfU0hBXzI1Ngogc3NsX2NyeXB0X3JlY29yZF9zbWFsbDpNQkVEVExTX0NJUEhFUl9DQU1FTExJQV8yNTZfQ0JDOk1CRURUTFNfTURfU0hBMjU2OjA6MDpNQkVEVExTX1NTTF9WRVJTSU9OX1RMUzFfMjo0OjAKIAogUmVjb3JkIGNyeXB0LCBsaXR0bGUgc3BhY2UsIENBTUVMTElBLTI1Ni1DQkMsIDEuMiwgU0hBLTI1NiwgRXRNCi1kZXBlbmRzX29uOk1CRURUTFNfU1NMX0hBVkVfQ0FNRUxMSUE6TUJFRFRMU19TU0xfSEFWRV9DQkM6TUJFRFRMU19TU0xfUFJPVE9fVExTMV8yOk1CRURUTFNfTURfQ0FOX1NIQTI1NjpNQkVEVExTX1NTTF9FTkNSWVBUX1RIRU5fTUFDCitkZXBlbmRzX29uOk1CRURUTFNfU1NMX0hBVkVfQ0FNRUxMSUE6TUJFRFRMU19TU0xfSEFWRV9DQkM6TUJFRFRMU19TU0xfUFJPVE9fVExTMV8yOlBTQV9XQU5UX0FMR19TSEFfMjU2Ok1CRURUTFNfU1NMX0VOQ1JZUFRfVEhFTl9NQUMKIHNzbF9jcnlwdF9yZWNvcmRfc21hbGw6TUJFRFRMU19DSVBIRVJfQ0FNRUxMSUFfMjU2X0NCQzpNQkVEVExTX01EX1NIQTI1NjoxOjA6TUJFRFRMU19TU0xfVkVSU0lPTl9UTFMxXzI6MDowCiAKIFJlY29yZCBjcnlwdCwgbGl0dGxlIHNwYWNlLCBDQU1FTExJQS0yNTYtQ0JDLCAxLjIsIFNIQS0yNTYsIEV0TSwgQ0lEIDQrNAotZGVwZW5kc19vbjpNQkVEVExTX1NTTF9EVExTX0NPTk5FQ1RJT05fSUQ6TUJFRFRMU19TU0xfSEFWRV9DQU1FTExJQTpNQkVEVExTX1NTTF9IQVZFX0NCQzpNQkVEVExTX1NTTF9QUk9UT19UTFMxXzI6TUJFRFRMU19NRF9DQU5fU0hBMjU2Ok1CRURUTFNfU1NMX0VOQ1JZUFRfVEhFTl9NQUMKK2RlcGVuZHNfb246TUJFRFRMU19TU0xfRFRMU19DT05ORUNUSU9OX0lEOk1CRURUTFNfU1NMX0hBVkVfQ0FNRUxMSUE6TUJFRFRMU19TU0xfSEFWRV9DQkM6TUJFRFRMU19TU0xfUFJPVE9fVExTMV8yOlBTQV9XQU5UX0FMR19TSEFfMjU2Ok1CRURUTFNfU1NMX0VOQ1JZUFRfVEhFTl9NQUMKIHNzbF9jcnlwdF9yZWNvcmRfc21hbGw6TUJFRFRMU19DSVBIRVJfQ0FNRUxMSUFfMjU2X0NCQzpNQkVEVExTX01EX1NIQTI1NjoxOjA6TUJFRFRMU19TU0xfVkVSU0lPTl9UTFMxXzI6NDo0CiAKIFJlY29yZCBjcnlwdCwgbGl0dGxlIHNwYWNlLCBDQU1FTExJQS0yNTYtQ0JDLCAxLjIsIFNIQS0yNTYsIEV0TSwgQ0lEIDQrMAotZGVwZW5kc19vbjpNQkVEVExTX1NTTF9EVExTX0NPTk5FQ1RJT05fSUQ6TUJFRFRMU19TU0xfSEFWRV9DQU1FTExJQTpNQkVEVExTX1NTTF9IQVZFX0NCQzpNQkVEVExTX1NTTF9QUk9UT19UTFMxXzI6TUJFRFRMU19NRF9DQU5fU0hBMjU2Ok1CRURUTFNfU1NMX0VOQ1JZUFRfVEhFTl9NQUMKK2RlcGVuZHNfb246TUJFRFRMU19TU0xfRFRMU19DT05ORUNUSU9OX0lEOk1CRURUTFNfU1NMX0hBVkVfQ0FNRUxMSUE6TUJFRFRMU19TU0xfSEFWRV9DQkM6TUJFRFRMU19TU0xfUFJPVE9fVExTMV8yOlBTQV9XQU5UX0FMR19TSEFfMjU2Ok1CRURUTFNfU1NMX0VOQ1JZUFRfVEhFTl9NQUMKIHNzbF9jcnlwdF9yZWNvcmRfc21hbGw6TUJFRFRMU19DSVBIRVJfQ0FNRUxMSUFfMjU2X0NCQzpNQkVEVExTX01EX1NIQTI1NjoxOjA6TUJFRFRMU19TU0xfVkVSU0lPTl9UTFMxXzI6NDowCiAKIFJlY29yZCBjcnlwdCwgbGl0dGxlIHNwYWNlLCBDQU1FTExJQS0yNTYtQ0JDLCAxLjIsIFNIQS0xCkBAIC0yNjU4LDE5ICsyNjU4LDE5IEBACiBzc2xfY3J5cHRfcmVjb3JkX3NtYWxsOk1CRURUTFNfQ0lQSEVSX0NBTUVMTElBXzI1Nl9DQ006TUJFRFRMU19NRF9NRDU6MDoxOk1CRURUTFNfU1NMX1ZFUlNJT05fVExTMV8yOjQ6MAogCiBSZWNvcmQgY3J5cHQsIGxpdHRsZSBzcGFjZSwgTlVMTCBjaXBoZXIsIDEuMiwgU0hBLTM4NAotZGVwZW5kc19vbjpNQkVEVExTX0NJUEhFUl9OVUxMX0NJUEhFUjpNQkVEVExTX1NTTF9QUk9UT19UTFMxXzI6TUJFRFRMU19NRF9DQU5fU0hBMzg0CitkZXBlbmRzX29uOk1CRURUTFNfQ0lQSEVSX05VTExfQ0lQSEVSOk1CRURUTFNfU1NMX1BST1RPX1RMUzFfMjpQU0FfV0FOVF9BTEdfU0hBXzM4NAogc3NsX2NyeXB0X3JlY29yZF9zbWFsbDpNQkVEVExTX0NJUEhFUl9OVUxMOk1CRURUTFNfTURfU0hBMzg0OjA6MDpNQkVEVExTX1NTTF9WRVJTSU9OX1RMUzFfMjowOjAKIAogUmVjb3JkIGNyeXB0LCBsaXR0bGUgc3BhY2UsIE5VTEwgY2lwaGVyLCAxLjIsIFNIQS0zODQsIEV0TQotZGVwZW5kc19vbjpNQkVEVExTX0NJUEhFUl9OVUxMX0NJUEhFUjpNQkVEVExTX1NTTF9QUk9UT19UTFMxXzI6TUJFRFRMU19NRF9DQU5fU0hBMzg0Ok1CRURUTFNfU1NMX0VOQ1JZUFRfVEhFTl9NQUMKK2RlcGVuZHNfb246TUJFRFRMU19DSVBIRVJfTlVMTF9DSVBIRVI6TUJFRFRMU19TU0xfUFJPVE9fVExTMV8yOlBTQV9XQU5UX0FMR19TSEFfMzg0Ok1CRURUTFNfU1NMX0VOQ1JZUFRfVEhFTl9NQUMKIHNzbF9jcnlwdF9yZWNvcmRfc21hbGw6TUJFRFRMU19DSVBIRVJfTlVMTDpNQkVEVExTX01EX1NIQTM4NDoxOjA6TUJFRFRMU19TU0xfVkVSU0lPTl9UTFMxXzI6MDowCiAKIFJlY29yZCBjcnlwdCwgbGl0dGxlIHNwYWNlLCBOVUxMIGNpcGhlciwgMS4yLCBTSEEtMjU2Ci1kZXBlbmRzX29uOk1CRURUTFNfQ0lQSEVSX05VTExfQ0lQSEVSOk1CRURUTFNfU1NMX1BST1RPX1RMUzFfMjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246TUJFRFRMU19DSVBIRVJfTlVMTF9DSVBIRVI6TUJFRFRMU19TU0xfUFJPVE9fVExTMV8yOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBzc2xfY3J5cHRfcmVjb3JkX3NtYWxsOk1CRURUTFNfQ0lQSEVSX05VTEw6TUJFRFRMU19NRF9TSEEyNTY6MDowOk1CRURUTFNfU1NMX1ZFUlNJT05fVExTMV8yOjA6MAogCiBSZWNvcmQgY3J5cHQsIGxpdHRsZSBzcGFjZSwgTlVMTCBjaXBoZXIsIDEuMiwgU0hBLTI1NiwgRXRNCi1kZXBlbmRzX29uOk1CRURUTFNfQ0lQSEVSX05VTExfQ0lQSEVSOk1CRURUTFNfU1NMX1BST1RPX1RMUzFfMjpNQkVEVExTX01EX0NBTl9TSEEyNTY6TUJFRFRMU19TU0xfRU5DUllQVF9USEVOX01BQworZGVwZW5kc19vbjpNQkVEVExTX0NJUEhFUl9OVUxMX0NJUEhFUjpNQkVEVExTX1NTTF9QUk9UT19UTFMxXzI6UFNBX1dBTlRfQUxHX1NIQV8yNTY6TUJFRFRMU19TU0xfRU5DUllQVF9USEVOX01BQwogc3NsX2NyeXB0X3JlY29yZF9zbWFsbDpNQkVEVExTX0NJUEhFUl9OVUxMOk1CRURUTFNfTURfU0hBMjU2OjE6MDpNQkVEVExTX1NTTF9WRVJTSU9OX1RMUzFfMjowOjAKIAogUmVjb3JkIGNyeXB0LCBsaXR0bGUgc3BhY2UsIE5VTEwgY2lwaGVyLCAxLjIsIFNIQS0xCkBAIC0yOTMxLDE5ICsyOTMxLDE5IEBACiBzc2xfdGxzX3ByZjpNQkVEVExTX1NTTF9UTFNfUFJGX05PTkU6IiI6IiI6InRlc3QgdGxzX3ByZiBsYWJlbCI6IiI6TUJFRFRMU19FUlJfU1NMX0ZFQVRVUkVfVU5BVkFJTEFCTEUKIAogU1NMIFRMU19QUkYgTUJFRFRMU19TU0xfVExTX1BSRl9TSEEzODQKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMzg0Ok1CRURUTFNfU1NMX1BST1RPX1RMUzFfMgorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzM4NDpNQkVEVExTX1NTTF9QUk9UT19UTFMxXzIKIHNzbF90bHNfcHJmOk1CRURUTFNfU1NMX1RMU19QUkZfU0hBMzg0OiIxMjM0NTY3ODkwYWJjZGVmMTIzNDU2Nzg5MGFiY2RlZjEyMzQ1Njc4OTBhYmNkZWYxMjM0NTY3ODkwYWJjZGVmMTIzNDU2Nzg5MGFiY2RlZjEyMzQ1Njc4OTBhYmNkZWYiOiIxMjM0NTY3ODkwYWJjZGVmMTIzNDU2Nzg5MGFiY2RlZjEyMzQ1Njc4OTBhYmNkZWYxMjM0NTY3ODkwYWJjZGVmMTIzNDU2Nzg5MGFiY2RlZjEyMzQ1Njc4OTBhYmNkZWYxMjM0NTY3ODkwYWJjZGVmMTIzNDU2Nzg5MGFiY2RlZiI6InRlc3QgdGxzX3ByZiBsYWJlbCI6ImE0MjA2YTM2ZWVmOTNmNDk2NjExYzJiNzgwNjYyNWMzIjowCiAKIFNTTCBUTFNfUFJGIE1CRURUTFNfU1NMX1RMU19QUkZfU0hBMjU2Ci1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NjpNQkVEVExTX1NTTF9QUk9UT19UTFMxXzIKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTY6TUJFRFRMU19TU0xfUFJPVE9fVExTMV8yCiBzc2xfdGxzX3ByZjpNQkVEVExTX1NTTF9UTFNfUFJGX1NIQTI1NjoiMTIzNDU2Nzg5MGFiY2RlZjEyMzQ1Njc4OTBhYmNkZWYxMjM0NTY3ODkwYWJjZGVmMTIzNDU2Nzg5MGFiY2RlZjEyMzQ1Njc4OTBhYmNkZWYxMjM0NTY3ODkwYWJjZGVmIjoiMTIzNDU2Nzg5MGFiY2RlZjEyMzQ1Njc4OTBhYmNkZWYxMjM0NTY3ODkwYWJjZGVmMTIzNDU2Nzg5MGFiY2RlZjEyMzQ1Njc4OTBhYmNkZWYxMjM0NTY3ODkwYWJjZGVmMTIzNDU2Nzg5MGFiY2RlZjEyMzQ1Njc4OTBhYmNkZWYiOiJ0ZXN0IHRsc19wcmYgbGFiZWwiOiI3Zjk5OTgzOTMxOThhMDJjOGQ3MzFjY2MyZWY5MGIyYyI6MAogCiBTU0wgVExTX1BSRiBNQkVEVExTX1NTTF9UTFNfUFJGX1NIQTM4NCBTSEEtMzg0IG5vdCBlbmFibGVkCi1kZXBlbmRzX29uOiFNQkVEVExTX01EX0NBTl9TSEEzODQKK2RlcGVuZHNfb246IVBTQV9XQU5UX0FMR19TSEFfMzg0CiBzc2xfdGxzX3ByZjpNQkVEVExTX1NTTF9UTFNfUFJGX1NIQTM4NDoiMTIzNDU2Nzg5MGFiY2RlZjEyMzQ1Njc4OTBhYmNkZWYxMjM0NTY3ODkwYWJjZGVmMTIzNDU2Nzg5MGFiY2RlZjEyMzQ1Njc4OTBhYmNkZWYxMjM0NTY3ODkwYWJjZGVmIjoiMTIzNDU2Nzg5MGFiY2RlZjEyMzQ1Njc4OTBhYmNkZWYxMjM0NTY3ODkwYWJjZGVmMTIzNDU2Nzg5MGFiY2RlZjEyMzQ1Njc4OTBhYmNkZWYxMjM0NTY3ODkwYWJjZGVmMTIzNDU2Nzg5MGFiY2RlZjEyMzQ1Njc4OTBhYmNkZWYiOiJ0ZXN0IHRsc19wcmYgbGFiZWwiOiJhNDIwNmEzNmVlZjkzZjQ5NjYxMWMyYjc4MDY2MjVjMyI6TUJFRFRMU19FUlJfU1NMX0ZFQVRVUkVfVU5BVkFJTEFCTEUKIAogU1NMIFRMU19QUkYgTUJFRFRMU19TU0xfVExTX1BSRl9TSEEyNTYgU0hBLTI1NiBub3QgZW5hYmxlZAotZGVwZW5kc19vbjohTUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOiFQU0FfV0FOVF9BTEdfU0hBXzI1Ngogc3NsX3Rsc19wcmY6TUJFRFRMU19TU0xfVExTX1BSRl9TSEEyNTY6IjEyMzQ1Njc4OTBhYmNkZWYxMjM0NTY3ODkwYWJjZGVmMTIzNDU2Nzg5MGFiY2RlZjEyMzQ1Njc4OTBhYmNkZWYxMjM0NTY3ODkwYWJjZGVmMTIzNDU2Nzg5MGFiY2RlZiI6IjEyMzQ1Njc4OTBhYmNkZWYxMjM0NTY3ODkwYWJjZGVmMTIzNDU2Nzg5MGFiY2RlZjEyMzQ1Njc4OTBhYmNkZWYxMjM0NTY3ODkwYWJjZGVmMTIzNDU2Nzg5MGFiY2RlZjEyMzQ1Njc4OTBhYmNkZWYxMjM0NTY3ODkwYWJjZGVmIjoidGVzdCB0bHNfcHJmIGxhYmVsIjoiN2Y5OTk4MzkzMTk4YTAyYzhkNzMxY2NjMmVmOTBiMmMiOk1CRURUTFNfRVJSX1NTTF9GRUFUVVJFX1VOQVZBSUxBQkxFCiAKIFNlc3Npb24gc2VyaWFsaXphdGlvbiwgc2F2ZS1sb2FkOiBubyB0aWNrZXQsIG5vIGNlcnQKQEAgLTI5NTksMTYgKzI5NTksMTYgQEAKIHNzbF9zZXJpYWxpemVfc2Vzc2lvbl9zYXZlX2xvYWQ6MTAyMzoiIjowOk1CRURUTFNfU1NMX1ZFUlNJT05fVExTMV8yCiAKIFNlc3Npb24gc2VyaWFsaXphdGlvbiwgc2F2ZS1sb2FkOiBubyB0aWNrZXQsIGNlcnQKLWRlcGVuZHNfb246TUJFRFRMU19YNTA5X1VTRV9DOk1CRURUTFNfUEVNX1BBUlNFX0M6TUJFRFRMU19QS19DQU5fRUNEU0FfU09NRTpNQkVEVExTX0VDUF9IQVZFX1NFQ1AyNTZSMTpNQkVEVExTX01EX0NBTl9TSEEyNTY6TUJFRFRMU19GU19JTzpNQkVEVExTX1NTTF9QUk9UT19UTFMxXzIKLXNzbF9zZXJpYWxpemVfc2Vzc2lvbl9zYXZlX2xvYWQ6MDoiZGF0YV9maWxlcy9zZXJ2ZXI1LmNydCI6MDpNQkVEVExTX1NTTF9WRVJTSU9OX1RMUzFfMgorZGVwZW5kc19vbjpNQkVEVExTX1g1MDlfVVNFX0M6TUJFRFRMU19QRU1fUEFSU0VfQzpNQkVEVExTX1BLX0NBTl9FQ0RTQV9TT01FOk1CRURUTFNfRUNQX0hBVkVfU0VDUDI1NlIxOlBTQV9XQU5UX0FMR19TSEFfMjU2Ok1CRURUTFNfRlNfSU86TUJFRFRMU19TU0xfUFJPVE9fVExTMV8yCitzc2xfc2VyaWFsaXplX3Nlc3Npb25fc2F2ZV9sb2FkOjA6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3NlcnZlcjUuY3J0IjowOk1CRURUTFNfU1NMX1ZFUlNJT05fVExTMV8yCiAKIFNlc3Npb24gc2VyaWFsaXphdGlvbiwgc2F2ZS1sb2FkOiBzbWFsbCB0aWNrZXQsIGNlcnQKLWRlcGVuZHNfb246TUJFRFRMU19TU0xfU0VTU0lPTl9USUNLRVRTOk1CRURUTFNfU1NMX0NMSV9DOk1CRURUTFNfWDUwOV9VU0VfQzpNQkVEVExTX1BFTV9QQVJTRV9DOk1CRURUTFNfUEtfQ0FOX0VDRFNBX1NPTUU6TUJFRFRMU19FQ1BfSEFWRV9TRUNQMjU2UjE6TUJFRFRMU19NRF9DQU5fU0hBMjU2Ok1CRURUTFNfRlNfSU86TUJFRFRMU19TU0xfUFJPVE9fVExTMV8yCi1zc2xfc2VyaWFsaXplX3Nlc3Npb25fc2F2ZV9sb2FkOjQyOiJkYXRhX2ZpbGVzL3NlcnZlcjUuY3J0IjowOk1CRURUTFNfU1NMX1ZFUlNJT05fVExTMV8yCitkZXBlbmRzX29uOk1CRURUTFNfU1NMX1NFU1NJT05fVElDS0VUUzpNQkVEVExTX1NTTF9DTElfQzpNQkVEVExTX1g1MDlfVVNFX0M6TUJFRFRMU19QRU1fUEFSU0VfQzpNQkVEVExTX1BLX0NBTl9FQ0RTQV9TT01FOk1CRURUTFNfRUNQX0hBVkVfU0VDUDI1NlIxOlBTQV9XQU5UX0FMR19TSEFfMjU2Ok1CRURUTFNfRlNfSU86TUJFRFRMU19TU0xfUFJPVE9fVExTMV8yCitzc2xfc2VyaWFsaXplX3Nlc3Npb25fc2F2ZV9sb2FkOjQyOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9zZXJ2ZXI1LmNydCI6MDpNQkVEVExTX1NTTF9WRVJTSU9OX1RMUzFfMgogCiBTZXNzaW9uIHNlcmlhbGl6YXRpb24sIHNhdmUtbG9hZDogbGFyZ2UgdGlja2V0LCBjZXJ0Ci1kZXBlbmRzX29uOk1CRURUTFNfU1NMX1NFU1NJT05fVElDS0VUUzpNQkVEVExTX1NTTF9DTElfQzpNQkVEVExTX1g1MDlfVVNFX0M6TUJFRFRMU19QRU1fUEFSU0VfQzpNQkVEVExTX1BLX0NBTl9FQ0RTQV9TT01FOk1CRURUTFNfRUNQX0hBVkVfU0VDUDI1NlIxOk1CRURUTFNfTURfQ0FOX1NIQTI1NjpNQkVEVExTX0ZTX0lPOk1CRURUTFNfU1NMX1BST1RPX1RMUzFfMgotc3NsX3NlcmlhbGl6ZV9zZXNzaW9uX3NhdmVfbG9hZDoxMDIzOiJkYXRhX2ZpbGVzL3NlcnZlcjUuY3J0IjowOk1CRURUTFNfU1NMX1ZFUlNJT05fVExTMV8yCitkZXBlbmRzX29uOk1CRURUTFNfU1NMX1NFU1NJT05fVElDS0VUUzpNQkVEVExTX1NTTF9DTElfQzpNQkVEVExTX1g1MDlfVVNFX0M6TUJFRFRMU19QRU1fUEFSU0VfQzpNQkVEVExTX1BLX0NBTl9FQ0RTQV9TT01FOk1CRURUTFNfRUNQX0hBVkVfU0VDUDI1NlIxOlBTQV9XQU5UX0FMR19TSEFfMjU2Ok1CRURUTFNfRlNfSU86TUJFRFRMU19TU0xfUFJPVE9fVExTMV8yCitzc2xfc2VyaWFsaXplX3Nlc3Npb25fc2F2ZV9sb2FkOjEwMjM6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3NlcnZlcjUuY3J0IjowOk1CRURUTFNfU1NMX1ZFUlNJT05fVExTMV8yCiAKIFRMUyAxLjM6IENMSTogU2Vzc2lvbiBzZXJpYWxpemF0aW9uLCBzYXZlLWxvYWQ6IG5vIHRpY2tldAogZGVwZW5kc19vbjpNQkVEVExTX1NTTF9TRVNTSU9OX1RJQ0tFVFM6TUJFRFRMU19TU0xfQ0xJX0M6TUJFRFRMU19TU0xfUFJPVE9fVExTMV8zCkBAIC0yOTk5LDE2ICsyOTk5LDE2IEBACiBzc2xfc2VyaWFsaXplX3Nlc3Npb25fbG9hZF9zYXZlOjEwMjM6IiI6MDpNQkVEVExTX1NTTF9WRVJTSU9OX1RMUzFfMgogCiBTZXNzaW9uIHNlcmlhbGl6YXRpb24sIGxvYWQtc2F2ZTogbm8gdGlja2V0LCBjZXJ0Ci1kZXBlbmRzX29uOk1CRURUTFNfWDUwOV9VU0VfQzpNQkVEVExTX1BFTV9QQVJTRV9DOk1CRURUTFNfUEtfQ0FOX0VDRFNBX1NPTUU6TUJFRFRMU19FQ1BfSEFWRV9TRUNQMjU2UjE6TUJFRFRMU19NRF9DQU5fU0hBMjU2Ok1CRURUTFNfRlNfSU86TUJFRFRMU19TU0xfUFJPVE9fVExTMV8yCi1zc2xfc2VyaWFsaXplX3Nlc3Npb25fbG9hZF9zYXZlOjA6ImRhdGFfZmlsZXMvc2VydmVyNS5jcnQiOjA6TUJFRFRMU19TU0xfVkVSU0lPTl9UTFMxXzIKK2RlcGVuZHNfb246TUJFRFRMU19YNTA5X1VTRV9DOk1CRURUTFNfUEVNX1BBUlNFX0M6TUJFRFRMU19QS19DQU5fRUNEU0FfU09NRTpNQkVEVExTX0VDUF9IQVZFX1NFQ1AyNTZSMTpQU0FfV0FOVF9BTEdfU0hBXzI1NjpNQkVEVExTX0ZTX0lPOk1CRURUTFNfU1NMX1BST1RPX1RMUzFfMgorc3NsX3NlcmlhbGl6ZV9zZXNzaW9uX2xvYWRfc2F2ZTowOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9zZXJ2ZXI1LmNydCI6MDpNQkVEVExTX1NTTF9WRVJTSU9OX1RMUzFfMgogCiBTZXNzaW9uIHNlcmlhbGl6YXRpb24sIGxvYWQtc2F2ZTogc21hbGwgdGlja2V0LCBjZXJ0Ci1kZXBlbmRzX29uOk1CRURUTFNfU1NMX1BST1RPX1RMUzFfMjpNQkVEVExTX1NTTF9TRVNTSU9OX1RJQ0tFVFM6TUJFRFRMU19TU0xfQ0xJX0M6TUJFRFRMU19YNTA5X1VTRV9DOk1CRURUTFNfUEVNX1BBUlNFX0M6TUJFRFRMU19QS19DQU5fRUNEU0FfU09NRTpNQkVEVExTX0VDUF9IQVZFX1NFQ1AyNTZSMTpNQkVEVExTX01EX0NBTl9TSEEyNTY6TUJFRFRMU19GU19JTwotc3NsX3NlcmlhbGl6ZV9zZXNzaW9uX2xvYWRfc2F2ZTo0MjoiZGF0YV9maWxlcy9zZXJ2ZXI1LmNydCI6MDpNQkVEVExTX1NTTF9WRVJTSU9OX1RMUzFfMgorZGVwZW5kc19vbjpNQkVEVExTX1NTTF9QUk9UT19UTFMxXzI6TUJFRFRMU19TU0xfU0VTU0lPTl9USUNLRVRTOk1CRURUTFNfU1NMX0NMSV9DOk1CRURUTFNfWDUwOV9VU0VfQzpNQkVEVExTX1BFTV9QQVJTRV9DOk1CRURUTFNfUEtfQ0FOX0VDRFNBX1NPTUU6TUJFRFRMU19FQ1BfSEFWRV9TRUNQMjU2UjE6UFNBX1dBTlRfQUxHX1NIQV8yNTY6TUJFRFRMU19GU19JTworc3NsX3NlcmlhbGl6ZV9zZXNzaW9uX2xvYWRfc2F2ZTo0MjoiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvc2VydmVyNS5jcnQiOjA6TUJFRFRMU19TU0xfVkVSU0lPTl9UTFMxXzIKIAogU2Vzc2lvbiBzZXJpYWxpemF0aW9uLCBsb2FkLXNhdmU6IGxhcmdlIHRpY2tldCwgY2VydAotZGVwZW5kc19vbjpNQkVEVExTX1NTTF9QUk9UT19UTFMxXzI6TUJFRFRMU19TU0xfU0VTU0lPTl9USUNLRVRTOk1CRURUTFNfU1NMX0NMSV9DOk1CRURUTFNfWDUwOV9VU0VfQzpNQkVEVExTX1BFTV9QQVJTRV9DOk1CRURUTFNfUEtfQ0FOX0VDRFNBX1NPTUU6TUJFRFRMU19FQ1BfSEFWRV9TRUNQMjU2UjE6TUJFRFRMU19NRF9DQU5fU0hBMjU2Ok1CRURUTFNfRlNfSU8KLXNzbF9zZXJpYWxpemVfc2Vzc2lvbl9sb2FkX3NhdmU6MTAyMzoiZGF0YV9maWxlcy9zZXJ2ZXI1LmNydCI6MDpNQkVEVExTX1NTTF9WRVJTSU9OX1RMUzFfMgorZGVwZW5kc19vbjpNQkVEVExTX1NTTF9QUk9UT19UTFMxXzI6TUJFRFRMU19TU0xfU0VTU0lPTl9USUNLRVRTOk1CRURUTFNfU1NMX0NMSV9DOk1CRURUTFNfWDUwOV9VU0VfQzpNQkVEVExTX1BFTV9QQVJTRV9DOk1CRURUTFNfUEtfQ0FOX0VDRFNBX1NPTUU6TUJFRFRMU19FQ1BfSEFWRV9TRUNQMjU2UjE6UFNBX1dBTlRfQUxHX1NIQV8yNTY6TUJFRFRMU19GU19JTworc3NsX3NlcmlhbGl6ZV9zZXNzaW9uX2xvYWRfc2F2ZToxMDIzOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9zZXJ2ZXI1LmNydCI6MDpNQkVEVExTX1NTTF9WRVJTSU9OX1RMUzFfMgogCiBUTFMgMS4zOiBDTEk6IFNlc3Npb24gc2VyaWFsaXphdGlvbiwgbG9hZC1zYXZlOiBubyB0aWNrZXQKIGRlcGVuZHNfb246TUJFRFRMU19TU0xfU0VTU0lPTl9USUNLRVRTOk1CRURUTFNfU1NMX0NMSV9DOk1CRURUTFNfU1NMX1BST1RPX1RMUzFfMwpAQCAtMzAzOSwxNiArMzAzOSwxNiBAQAogc3NsX3NlcmlhbGl6ZV9zZXNzaW9uX3NhdmVfYnVmX3NpemU6MTAyMzoiIjowOk1CRURUTFNfU1NMX1ZFUlNJT05fVExTMV8yCiAKIFNlc3Npb24gc2VyaWFsaXphdGlvbiwgc2F2ZSBidWZmZXIgc2l6ZTogbm8gdGlja2V0LCBjZXJ0Ci1kZXBlbmRzX29uOk1CRURUTFNfWDUwOV9VU0VfQzpNQkVEVExTX1BFTV9QQVJTRV9DOk1CRURUTFNfUEtfQ0FOX0VDRFNBX1NPTUU6TUJFRFRMU19FQ1BfSEFWRV9TRUNQMjU2UjE6TUJFRFRMU19NRF9DQU5fU0hBMjU2Ok1CRURUTFNfRlNfSU86TUJFRFRMU19TU0xfUFJPVE9fVExTMV8yCi1zc2xfc2VyaWFsaXplX3Nlc3Npb25fc2F2ZV9idWZfc2l6ZTowOiJkYXRhX2ZpbGVzL3NlcnZlcjUuY3J0IjowOk1CRURUTFNfU1NMX1ZFUlNJT05fVExTMV8yCitkZXBlbmRzX29uOk1CRURUTFNfWDUwOV9VU0VfQzpNQkVEVExTX1BFTV9QQVJTRV9DOk1CRURUTFNfUEtfQ0FOX0VDRFNBX1NPTUU6TUJFRFRMU19FQ1BfSEFWRV9TRUNQMjU2UjE6UFNBX1dBTlRfQUxHX1NIQV8yNTY6TUJFRFRMU19GU19JTzpNQkVEVExTX1NTTF9QUk9UT19UTFMxXzIKK3NzbF9zZXJpYWxpemVfc2Vzc2lvbl9zYXZlX2J1Zl9zaXplOjA6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3NlcnZlcjUuY3J0IjowOk1CRURUTFNfU1NMX1ZFUlNJT05fVExTMV8yCiAKIFNlc3Npb24gc2VyaWFsaXphdGlvbiwgc2F2ZSBidWZmZXIgc2l6ZTogc21hbGwgdGlja2V0LCBjZXJ0Ci1kZXBlbmRzX29uOk1CRURUTFNfU1NMX1BST1RPX1RMUzFfMjpNQkVEVExTX1NTTF9TRVNTSU9OX1RJQ0tFVFM6TUJFRFRMU19TU0xfQ0xJX0M6TUJFRFRMU19YNTA5X1VTRV9DOk1CRURUTFNfUEVNX1BBUlNFX0M6TUJFRFRMU19QS19DQU5fRUNEU0FfU09NRTpNQkVEVExTX0VDUF9IQVZFX1NFQ1AyNTZSMTpNQkVEVExTX01EX0NBTl9TSEEyNTY6TUJFRFRMU19GU19JTwotc3NsX3NlcmlhbGl6ZV9zZXNzaW9uX3NhdmVfYnVmX3NpemU6NDI6ImRhdGFfZmlsZXMvc2VydmVyNS5jcnQiOjA6TUJFRFRMU19TU0xfVkVSU0lPTl9UTFMxXzIKK2RlcGVuZHNfb246TUJFRFRMU19TU0xfUFJPVE9fVExTMV8yOk1CRURUTFNfU1NMX1NFU1NJT05fVElDS0VUUzpNQkVEVExTX1NTTF9DTElfQzpNQkVEVExTX1g1MDlfVVNFX0M6TUJFRFRMU19QRU1fUEFSU0VfQzpNQkVEVExTX1BLX0NBTl9FQ0RTQV9TT01FOk1CRURUTFNfRUNQX0hBVkVfU0VDUDI1NlIxOlBTQV9XQU5UX0FMR19TSEFfMjU2Ok1CRURUTFNfRlNfSU8KK3NzbF9zZXJpYWxpemVfc2Vzc2lvbl9zYXZlX2J1Zl9zaXplOjQyOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9zZXJ2ZXI1LmNydCI6MDpNQkVEVExTX1NTTF9WRVJTSU9OX1RMUzFfMgogCiBTZXNzaW9uIHNlcmlhbGl6YXRpb24sIHNhdmUgYnVmZmVyIHNpemU6IGxhcmdlIHRpY2tldCwgY2VydAotZGVwZW5kc19vbjpNQkVEVExTX1NTTF9QUk9UT19UTFMxXzI6TUJFRFRMU19TU0xfU0VTU0lPTl9USUNLRVRTOk1CRURUTFNfU1NMX0NMSV9DOk1CRURUTFNfWDUwOV9VU0VfQzpNQkVEVExTX1BFTV9QQVJTRV9DOk1CRURUTFNfUEtfQ0FOX0VDRFNBX1NPTUU6TUJFRFRMU19FQ1BfSEFWRV9TRUNQMjU2UjE6TUJFRFRMU19NRF9DQU5fU0hBMjU2Ok1CRURUTFNfRlNfSU8KLXNzbF9zZXJpYWxpemVfc2Vzc2lvbl9zYXZlX2J1Zl9zaXplOjEwMjM6ImRhdGFfZmlsZXMvc2VydmVyNS5jcnQiOjA6TUJFRFRMU19TU0xfVkVSU0lPTl9UTFMxXzIKK2RlcGVuZHNfb246TUJFRFRMU19TU0xfUFJPVE9fVExTMV8yOk1CRURUTFNfU1NMX1NFU1NJT05fVElDS0VUUzpNQkVEVExTX1NTTF9DTElfQzpNQkVEVExTX1g1MDlfVVNFX0M6TUJFRFRMU19QRU1fUEFSU0VfQzpNQkVEVExTX1BLX0NBTl9FQ0RTQV9TT01FOk1CRURUTFNfRUNQX0hBVkVfU0VDUDI1NlIxOlBTQV9XQU5UX0FMR19TSEFfMjU2Ok1CRURUTFNfRlNfSU8KK3NzbF9zZXJpYWxpemVfc2Vzc2lvbl9zYXZlX2J1Zl9zaXplOjEwMjM6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3NlcnZlcjUuY3J0IjowOk1CRURUTFNfU1NMX1ZFUlNJT05fVExTMV8yCiAKIFRMUyAxLjM6IENMSTogU2Vzc2lvbiBzZXJpYWxpemF0aW9uLCBzYXZlIGJ1ZmZlciBzaXplOiBubyB0aWNrZXQKIGRlcGVuZHNfb246TUJFRFRMU19TU0xfU0VTU0lPTl9USUNLRVRTOk1CRURUTFNfU1NMX0NMSV9DOk1CRURUTFNfU1NMX1BST1RPX1RMUzFfMwpAQCAtMzA3OSwxNiArMzA3OSwxNiBAQAogc3NsX3NlcmlhbGl6ZV9zZXNzaW9uX2xvYWRfYnVmX3NpemU6MTAyMzoiIjowOk1CRURUTFNfU1NMX1ZFUlNJT05fVExTMV8yCiAKIFNlc3Npb24gc2VyaWFsaXphdGlvbiwgbG9hZCBidWZmZXIgc2l6ZTogbm8gdGlja2V0LCBjZXJ0Ci1kZXBlbmRzX29uOk1CRURUTFNfU1NMX1BST1RPX1RMUzFfMjpNQkVEVExTX1g1MDlfVVNFX0M6TUJFRFRMU19QRU1fUEFSU0VfQzpNQkVEVExTX1BLX0NBTl9FQ0RTQV9TT01FOk1CRURUTFNfRUNQX0hBVkVfU0VDUDI1NlIxOk1CRURUTFNfTURfQ0FOX1NIQTI1NjpNQkVEVExTX0ZTX0lPCi1zc2xfc2VyaWFsaXplX3Nlc3Npb25fbG9hZF9idWZfc2l6ZTowOiJkYXRhX2ZpbGVzL3NlcnZlcjUuY3J0IjowOk1CRURUTFNfU1NMX1ZFUlNJT05fVExTMV8yCitkZXBlbmRzX29uOk1CRURUTFNfU1NMX1BST1RPX1RMUzFfMjpNQkVEVExTX1g1MDlfVVNFX0M6TUJFRFRMU19QRU1fUEFSU0VfQzpNQkVEVExTX1BLX0NBTl9FQ0RTQV9TT01FOk1CRURUTFNfRUNQX0hBVkVfU0VDUDI1NlIxOlBTQV9XQU5UX0FMR19TSEFfMjU2Ok1CRURUTFNfRlNfSU8KK3NzbF9zZXJpYWxpemVfc2Vzc2lvbl9sb2FkX2J1Zl9zaXplOjA6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3NlcnZlcjUuY3J0IjowOk1CRURUTFNfU1NMX1ZFUlNJT05fVExTMV8yCiAKIFNlc3Npb24gc2VyaWFsaXphdGlvbiwgbG9hZCBidWZmZXIgc2l6ZTogc21hbGwgdGlja2V0LCBjZXJ0Ci1kZXBlbmRzX29uOk1CRURUTFNfU1NMX1BST1RPX1RMUzFfMjpNQkVEVExTX1NTTF9TRVNTSU9OX1RJQ0tFVFM6TUJFRFRMU19TU0xfQ0xJX0M6TUJFRFRMU19YNTA5X1VTRV9DOk1CRURUTFNfUEVNX1BBUlNFX0M6TUJFRFRMU19QS19DQU5fRUNEU0FfU09NRTpNQkVEVExTX0VDUF9IQVZFX1NFQ1AyNTZSMTpNQkVEVExTX01EX0NBTl9TSEEyNTY6TUJFRFRMU19GU19JTwotc3NsX3NlcmlhbGl6ZV9zZXNzaW9uX2xvYWRfYnVmX3NpemU6NDI6ImRhdGFfZmlsZXMvc2VydmVyNS5jcnQiOjA6TUJFRFRMU19TU0xfVkVSU0lPTl9UTFMxXzIKK2RlcGVuZHNfb246TUJFRFRMU19TU0xfUFJPVE9fVExTMV8yOk1CRURUTFNfU1NMX1NFU1NJT05fVElDS0VUUzpNQkVEVExTX1NTTF9DTElfQzpNQkVEVExTX1g1MDlfVVNFX0M6TUJFRFRMU19QRU1fUEFSU0VfQzpNQkVEVExTX1BLX0NBTl9FQ0RTQV9TT01FOk1CRURUTFNfRUNQX0hBVkVfU0VDUDI1NlIxOlBTQV9XQU5UX0FMR19TSEFfMjU2Ok1CRURUTFNfRlNfSU8KK3NzbF9zZXJpYWxpemVfc2Vzc2lvbl9sb2FkX2J1Zl9zaXplOjQyOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9zZXJ2ZXI1LmNydCI6MDpNQkVEVExTX1NTTF9WRVJTSU9OX1RMUzFfMgogCiBTZXNzaW9uIHNlcmlhbGl6YXRpb24sIGxvYWQgYnVmZmVyIHNpemU6IGxhcmdlIHRpY2tldCwgY2VydAotZGVwZW5kc19vbjpNQkVEVExTX1NTTF9QUk9UT19UTFMxXzI6TUJFRFRMU19TU0xfU0VTU0lPTl9USUNLRVRTOk1CRURUTFNfU1NMX0NMSV9DOk1CRURUTFNfWDUwOV9VU0VfQzpNQkVEVExTX1BFTV9QQVJTRV9DOk1CRURUTFNfUEtfQ0FOX0VDRFNBX1NPTUU6TUJFRFRMU19FQ1BfSEFWRV9TRUNQMjU2UjE6TUJFRFRMU19NRF9DQU5fU0hBMjU2Ok1CRURUTFNfRlNfSU8KLXNzbF9zZXJpYWxpemVfc2Vzc2lvbl9sb2FkX2J1Zl9zaXplOjEwMjM6ImRhdGFfZmlsZXMvc2VydmVyNS5jcnQiOjA6TUJFRFRMU19TU0xfVkVSU0lPTl9UTFMxXzIKK2RlcGVuZHNfb246TUJFRFRMU19TU0xfUFJPVE9fVExTMV8yOk1CRURUTFNfU1NMX1NFU1NJT05fVElDS0VUUzpNQkVEVExTX1NTTF9DTElfQzpNQkVEVExTX1g1MDlfVVNFX0M6TUJFRFRMU19QRU1fUEFSU0VfQzpNQkVEVExTX1BLX0NBTl9FQ0RTQV9TT01FOk1CRURUTFNfRUNQX0hBVkVfU0VDUDI1NlIxOlBTQV9XQU5UX0FMR19TSEFfMjU2Ok1CRURUTFNfRlNfSU8KK3NzbF9zZXJpYWxpemVfc2Vzc2lvbl9sb2FkX2J1Zl9zaXplOjEwMjM6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3NlcnZlcjUuY3J0IjowOk1CRURUTFNfU1NMX1ZFUlNJT05fVExTMV8yCiAKIFRMUyAxLjM6IENMSTogU2Vzc2lvbiBzZXJpYWxpemF0aW9uLCBsb2FkIGJ1ZmZlciBzaXplOiBubyB0aWNrZXQKIGRlcGVuZHNfb246TUJFRFRMU19TU0xfUFJPVE9fVExTMV8zOk1CRURUTFNfU1NMX1NFU1NJT05fVElDS0VUUzpNQkVEVExTX1NTTF9DTElfQwpAQCAtMzIzNywxMSArMzIzNywxMSBAQAogY2lkX3Nhbml0eToKIAogUmF3IGtleSBhZ3JlZW1lbnQ6IG5vbWluYWwKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2Ok1CRURUTFNfS0VZX0VYQ0hBTkdFX0VDREhFX0VDRFNBX0VOQUJMRUQKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTY6TUJFRFRMU19LRVlfRVhDSEFOR0VfRUNESEVfRUNEU0FfRU5BQkxFRAogcmF3X2tleV9hZ3JlZW1lbnRfZmFpbDowCiAKIFJhdyBrZXkgYWdyZWVtZW50OiBiYWQgc2VydmVyIGtleQotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTY6TUJFRFRMU19LRVlfRVhDSEFOR0VfRUNESEVfRUNEU0FfRU5BQkxFRAorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NjpNQkVEVExTX0tFWV9FWENIQU5HRV9FQ0RIRV9FQ0RTQV9FTkFCTEVECiByYXdfa2V5X2FncmVlbWVudF9mYWlsOjEKIAogRm9yY2UgYSBiYWQgc2Vzc2lvbiBpZCBsZW5ndGgKZGlmZiAtLWdpdCBhL3Rlc3RzL3N1aXRlcy90ZXN0X3N1aXRlX3NzbC5mdW5jdGlvbiBiL3Rlc3RzL3N1aXRlcy90ZXN0X3N1aXRlX3NzbC5mdW5jdGlvbgppbmRleCA4NDBhZjdkLi5iYzQ5NTM1IDEwMDY0NAotLS0gYS90ZXN0cy9zdWl0ZXMvdGVzdF9zdWl0ZV9zc2wuZnVuY3Rpb24KKysrIGIvdGVzdHMvc3VpdGVzL3Rlc3Rfc3VpdGVfc3NsLmZ1bmN0aW9uCkBAIC0yOCw3ICsyOCw3IEBACiAgICAgZGVmaW5lZChNQkVEVExTX1RFU1RfQVRfTEVBU1RfT05FX1RMUzFfM19DSVBIRVJTVUlURSkgJiYgXAogICAgIGRlZmluZWQoTUJFRFRMU19TU0xfVExTMV8zX0tFWV9FWENIQU5HRV9NT0RFX0VQSEVNRVJBTF9FTkFCTEVEKSAmJiBcCiAgICAgZGVmaW5lZChNQkVEVExTX1NTTF9UTFMxXzNfS0VZX0VYQ0hBTkdFX01PREVfUFNLX0VQSEVNRVJBTF9FTkFCTEVEKSAmJiBcCi0gICAgZGVmaW5lZChNQkVEVExTX01EX0NBTl9TSEEyNTYpICYmIFwKKyAgICBkZWZpbmVkKFBTQV9XQU5UX0FMR19TSEFfMjU2KSAmJiBcCiAgICAgZGVmaW5lZChNQkVEVExTX0VDUF9IQVZFX1NFQ1AyNTZSMSkgJiYgZGVmaW5lZChNQkVEVExTX0VDUF9IQVZFX1NFQ1AzODRSMSkgJiYgXAogICAgIGRlZmluZWQoTUJFRFRMU19QS19DQU5fRUNEU0FfVkVSSUZZKSAmJiBkZWZpbmVkKE1CRURUTFNfU1NMX1NFU1NJT05fVElDS0VUUykKIC8qCkBAIC0yNDk1LDcgKzI0OTUsNyBAQAogfQogLyogRU5EX0NBU0UgKi8KIAotLyogQkVHSU5fQ0FTRSBkZXBlbmRzX29uOk1CRURUTFNfU1NMX0hBTkRTSEFLRV9XSVRIX0NFUlRfRU5BQkxFRDpNQkVEVExTX1JTQV9DOk1CRURUTFNfRUNQX0hBVkVfU0VDUDM4NFIxOiFNQkVEVExTX1NTTF9QUk9UT19UTFMxXzM6TUJFRFRMU19QS0NTMV9WMTU6TUJFRFRMU19NRF9DQU5fU0hBMjU2ICovCisvKiBCRUdJTl9DQVNFIGRlcGVuZHNfb246TUJFRFRMU19TU0xfSEFORFNIQUtFX1dJVEhfQ0VSVF9FTkFCTEVEOk1CRURUTFNfUlNBX0M6TUJFRFRMU19FQ1BfSEFWRV9TRUNQMzg0UjE6IU1CRURUTFNfU1NMX1BST1RPX1RMUzFfMzpNQkVEVExTX1BLQ1MxX1YxNTpQU0FfV0FOVF9BTEdfU0hBXzI1NiAqLwogdm9pZCBtYmVkdGxzX2VuZHBvaW50X3Nhbml0eShpbnQgZW5kcG9pbnRfdHlwZSkKIHsKICAgICBlbnVtIHsgQlVGRlNJWkUgPSAxMDI0IH07CkBAIC0yNTI2LDcgKzI1MjYsNyBAQAogfQogLyogRU5EX0NBU0UgKi8KIAotLyogQkVHSU5fQ0FTRSBkZXBlbmRzX29uOk1CRURUTFNfU1NMX0hBTkRTSEFLRV9XSVRIX0NFUlRfRU5BQkxFRDpNQkVEVExTX1JTQV9DOk1CRURUTFNfRUNQX0hBVkVfU0VDUDM4NFIxOk1CRURUTFNfUEtDUzFfVjE1Ok1CRURUTFNfTURfQ0FOX1NIQTI1NjpNQkVEVExTX1BLX0hBVkVfRUNDX0tFWVMgKi8KKy8qIEJFR0lOX0NBU0UgZGVwZW5kc19vbjpNQkVEVExTX1NTTF9IQU5EU0hBS0VfV0lUSF9DRVJUX0VOQUJMRUQ6TUJFRFRMU19SU0FfQzpNQkVEVExTX0VDUF9IQVZFX1NFQ1AzODRSMTpNQkVEVExTX1BLQ1MxX1YxNTpQU0FfV0FOVF9BTEdfU0hBXzI1NjpNQkVEVExTX1BLX0hBVkVfRUNDX0tFWVMgKi8KIHZvaWQgbW92ZV9oYW5kc2hha2VfdG9fc3RhdGUoaW50IGVuZHBvaW50X3R5cGUsIGludCB0bHNfdmVyc2lvbiwgaW50IHN0YXRlLCBpbnQgbmVlZF9wYXNzKQogewogICAgIGVudW0geyBCVUZGU0laRSA9IDEwMjQgfTsKQEAgLTI1OTksNyArMjU5OSw3IEBACiB9CiAvKiBFTkRfQ0FTRSAqLwogCi0vKiBCRUdJTl9DQVNFIGRlcGVuZHNfb246TUJFRFRMU19TU0xfSEFORFNIQUtFX1dJVEhfQ0VSVF9FTkFCTEVEOk1CRURUTFNfUEtDUzFfVjE1Ok1CRURUTFNfUlNBX0M6TUJFRFRMU19FQ1BfSEFWRV9TRUNQMzg0UjE6TUJFRFRMU19NRF9DQU5fU0hBMjU2Ok1CRURUTFNfUEtfSEFWRV9FQ0NfS0VZUzpNQkVEVExTX0NBTl9IQU5ETEVfUlNBX1RFU1RfS0VZICovCisvKiBCRUdJTl9DQVNFIGRlcGVuZHNfb246TUJFRFRMU19TU0xfSEFORFNIQUtFX1dJVEhfQ0VSVF9FTkFCTEVEOk1CRURUTFNfUEtDUzFfVjE1Ok1CRURUTFNfUlNBX0M6TUJFRFRMU19FQ1BfSEFWRV9TRUNQMzg0UjE6UFNBX1dBTlRfQUxHX1NIQV8yNTY6TUJFRFRMU19QS19IQVZFX0VDQ19LRVlTOk1CRURUTFNfQ0FOX0hBTkRMRV9SU0FfVEVTVF9LRVkgKi8KIHZvaWQgaGFuZHNoYWtlX3ZlcnNpb24oaW50IGR0bHMsIGludCBjbGllbnRfbWluX3ZlcnNpb24sIGludCBjbGllbnRfbWF4X3ZlcnNpb24sCiAgICAgICAgICAgICAgICAgICAgICAgIGludCBzZXJ2ZXJfbWluX3ZlcnNpb24sIGludCBzZXJ2ZXJfbWF4X3ZlcnNpb24sCiAgICAgICAgICAgICAgICAgICAgICAgIGludCBleHBlY3RlZF9uZWdvdGlhdGVkX3ZlcnNpb24pCkBAIC0yNjI0LDcgKzI2MjQsNyBAQAogfQogLyogRU5EX0NBU0UgKi8KIAotLyogQkVHSU5fQ0FTRSBkZXBlbmRzX29uOk1CRURUTFNfU1NMX0hBTkRTSEFLRV9XSVRIX0NFUlRfRU5BQkxFRDpNQkVEVExTX1BLQ1MxX1YxNTpNQkVEVExTX1NTTF9QUk9UT19UTFMxXzI6TUJFRFRMU19NRF9DQU5fU0hBMjU2ICovCisvKiBCRUdJTl9DQVNFIGRlcGVuZHNfb246TUJFRFRMU19TU0xfSEFORFNIQUtFX1dJVEhfQ0VSVF9FTkFCTEVEOk1CRURUTFNfUEtDUzFfVjE1Ok1CRURUTFNfU1NMX1BST1RPX1RMUzFfMjpQU0FfV0FOVF9BTEdfU0hBXzI1NiAqLwogdm9pZCBoYW5kc2hha2VfcHNrX2NpcGhlcihjaGFyICpjaXBoZXIsIGludCBwa19hbGcsIGRhdGFfdCAqcHNrX3N0ciwgaW50IGR0bHMpCiB7CiAgICAgbWJlZHRsc190ZXN0X2hhbmRzaGFrZV90ZXN0X29wdGlvbnMgb3B0aW9uczsKQEAgLTI2NDksNyArMjY0OSw3IEBACiB9CiAvKiBFTkRfQ0FTRSAqLwogCi0vKiBCRUdJTl9DQVNFIGRlcGVuZHNfb246TUJFRFRMU19TU0xfSEFORFNIQUtFX1dJVEhfQ0VSVF9FTkFCTEVEOk1CRURUTFNfUEtDUzFfVjE1Ok1CRURUTFNfU1NMX1BST1RPX1RMUzFfMjpNQkVEVExTX01EX0NBTl9TSEEyNTYgKi8KKy8qIEJFR0lOX0NBU0UgZGVwZW5kc19vbjpNQkVEVExTX1NTTF9IQU5EU0hBS0VfV0lUSF9DRVJUX0VOQUJMRUQ6TUJFRFRMU19QS0NTMV9WMTU6TUJFRFRMU19TU0xfUFJPVE9fVExTMV8yOlBTQV9XQU5UX0FMR19TSEFfMjU2ICovCiB2b2lkIGhhbmRzaGFrZV9jaXBoZXIoY2hhciAqY2lwaGVyLCBpbnQgcGtfYWxnLCBpbnQgZHRscykKIHsKICAgICB0ZXN0X2hhbmRzaGFrZV9wc2tfY2lwaGVyKGNpcGhlciwgcGtfYWxnLCBOVUxMLCBkdGxzKTsKQEAgLTI2NTksNyArMjY1OSw3IEBACiB9CiAvKiBFTkRfQ0FTRSAqLwogCi0vKiBCRUdJTl9DQVNFIGRlcGVuZHNfb246TUJFRFRMU19TU0xfSEFORFNIQUtFX1dJVEhfQ0VSVF9FTkFCTEVEOk1CRURUTFNfUEtDUzFfVjE1Ok1CRURUTFNfU1NMX1BST1RPX1RMUzFfMjpNQkVEVExTX01EX0NBTl9TSEEyNTYgKi8KKy8qIEJFR0lOX0NBU0UgZGVwZW5kc19vbjpNQkVEVExTX1NTTF9IQU5EU0hBS0VfV0lUSF9DRVJUX0VOQUJMRUQ6TUJFRFRMU19QS0NTMV9WMTU6TUJFRFRMU19TU0xfUFJPVE9fVExTMV8yOlBTQV9XQU5UX0FMR19TSEFfMjU2ICovCiB2b2lkIGhhbmRzaGFrZV9jaXBoZXJzdWl0ZV9zZWxlY3QoY2hhciAqY2lwaGVyLCBpbnQgcGtfYWxnLCBkYXRhX3QgKnBza19zdHIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IHBzYV9hbGcsIGludCBwc2FfYWxnMiwgaW50IHBzYV91c2FnZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgZXhwZWN0ZWRfaGFuZHNoYWtlX3Jlc3VsdCwKQEAgLTI2OTEsNyArMjY5MSw3IEBACiB9CiAvKiBFTkRfQ0FTRSAqLwogCi0vKiBCRUdJTl9DQVNFIGRlcGVuZHNfb246TUJFRFRMU19TU0xfSEFORFNIQUtFX1dJVEhfQ0VSVF9FTkFCTEVEOk1CRURUTFNfUEtDUzFfVjE1Ok1CRURUTFNfUlNBX0M6TUJFRFRMU19FQ1BfSEFWRV9TRUNQMzg0UjE6TUJFRFRMU19NRF9DQU5fU0hBMjU2ICovCisvKiBCRUdJTl9DQVNFIGRlcGVuZHNfb246TUJFRFRMU19TU0xfSEFORFNIQUtFX1dJVEhfQ0VSVF9FTkFCTEVEOk1CRURUTFNfUEtDUzFfVjE1Ok1CRURUTFNfUlNBX0M6TUJFRFRMU19FQ1BfSEFWRV9TRUNQMzg0UjE6UFNBX1dBTlRfQUxHX1NIQV8yNTYgKi8KIHZvaWQgYXBwX2RhdGEoaW50IG1mbCwgaW50IGNsaV9tc2dfbGVuLCBpbnQgc3J2X21zZ19sZW4sCiAgICAgICAgICAgICAgIGludCBleHBlY3RlZF9jbGlfZnJhZ21lbnRzLAogICAgICAgICAgICAgICBpbnQgZXhwZWN0ZWRfc3J2X2ZyYWdtZW50cywgaW50IGR0bHMpCkBAIC0yNzIwLDcgKzI3MjAsNyBAQAogfQogLyogRU5EX0NBU0UgKi8KIAotLyogQkVHSU5fQ0FTRSBkZXBlbmRzX29uOk1CRURUTFNfU1NMX1BST1RPX1RMUzFfMjpNQkVEVExTX1NTTF9IQU5EU0hBS0VfV0lUSF9DRVJUX0VOQUJMRUQ6TUJFRFRMU19QS0NTMV9WMTU6TUJFRFRMU19SU0FfQzpNQkVEVExTX0VDUF9IQVZFX1NFQ1AzODRSMTpNQkVEVExTX01EX0NBTl9TSEEyNTY6TUJFRFRMU19QS19IQVZFX0VDQ19LRVlTOk1CRURUTFNfQ0FOX0hBTkRMRV9SU0FfVEVTVF9LRVkgKi8KKy8qIEJFR0lOX0NBU0UgZGVwZW5kc19vbjpNQkVEVExTX1NTTF9QUk9UT19UTFMxXzI6TUJFRFRMU19TU0xfSEFORFNIQUtFX1dJVEhfQ0VSVF9FTkFCTEVEOk1CRURUTFNfUEtDUzFfVjE1Ok1CRURUTFNfUlNBX0M6TUJFRFRMU19FQ1BfSEFWRV9TRUNQMzg0UjE6UFNBX1dBTlRfQUxHX1NIQV8yNTY6TUJFRFRMU19QS19IQVZFX0VDQ19LRVlTOk1CRURUTFNfQ0FOX0hBTkRMRV9SU0FfVEVTVF9LRVkgKi8KIHZvaWQgYXBwX2RhdGFfdGxzKGludCBtZmwsIGludCBjbGlfbXNnX2xlbiwgaW50IHNydl9tc2dfbGVuLAogICAgICAgICAgICAgICAgICAgaW50IGV4cGVjdGVkX2NsaV9mcmFnbWVudHMsCiAgICAgICAgICAgICAgICAgICBpbnQgZXhwZWN0ZWRfc3J2X2ZyYWdtZW50cykKQEAgLTI3MzIsNyArMjczMiw3IEBACiB9CiAvKiBFTkRfQ0FTRSAqLwogCi0vKiBCRUdJTl9DQVNFIGRlcGVuZHNfb246TUJFRFRMU19TU0xfSEFORFNIQUtFX1dJVEhfQ0VSVF9FTkFCTEVEOiFNQkVEVExTX1NTTF9QUk9UT19UTFMxXzM6TUJFRFRMU19QS0NTMV9WMTU6TUJFRFRMU19TU0xfUFJPVE9fVExTMV8yOk1CRURUTFNfUlNBX0M6TUJFRFRMU19FQ1BfSEFWRV9TRUNQMzg0UjE6TUJFRFRMU19TU0xfUFJPVE9fRFRMUzpNQkVEVExTX01EX0NBTl9TSEEyNTY6TUJFRFRMU19DQU5fSEFORExFX1JTQV9URVNUX0tFWSAqLworLyogQkVHSU5fQ0FTRSBkZXBlbmRzX29uOk1CRURUTFNfU1NMX0hBTkRTSEFLRV9XSVRIX0NFUlRfRU5BQkxFRDohTUJFRFRMU19TU0xfUFJPVE9fVExTMV8zOk1CRURUTFNfUEtDUzFfVjE1Ok1CRURUTFNfU1NMX1BST1RPX1RMUzFfMjpNQkVEVExTX1JTQV9DOk1CRURUTFNfRUNQX0hBVkVfU0VDUDM4NFIxOk1CRURUTFNfU1NMX1BST1RPX0RUTFM6UFNBX1dBTlRfQUxHX1NIQV8yNTY6TUJFRFRMU19DQU5fSEFORExFX1JTQV9URVNUX0tFWSAqLwogdm9pZCBhcHBfZGF0YV9kdGxzKGludCBtZmwsIGludCBjbGlfbXNnX2xlbiwgaW50IHNydl9tc2dfbGVuLAogICAgICAgICAgICAgICAgICAgIGludCBleHBlY3RlZF9jbGlfZnJhZ21lbnRzLAogICAgICAgICAgICAgICAgICAgIGludCBleHBlY3RlZF9zcnZfZnJhZ21lbnRzKQpAQCAtMjc0NCw3ICsyNzQ0LDcgQEAKIH0KIC8qIEVORF9DQVNFICovCiAKLS8qIEJFR0lOX0NBU0UgZGVwZW5kc19vbjpNQkVEVExTX1NTTF9IQU5EU0hBS0VfV0lUSF9DRVJUX0VOQUJMRUQ6TUJFRFRMU19QS0NTMV9WMTU6TUJFRFRMU19TU0xfUFJPVE9fVExTMV8yOk1CRURUTFNfUlNBX0M6TUJFRFRMU19FQ1BfSEFWRV9TRUNQMzg0UjE6TUJFRFRMU19TU0xfUFJPVE9fRFRMUzpNQkVEVExTX1NTTF9SRU5FR09USUFUSU9OOk1CRURUTFNfU1NMX0NPTlRFWFRfU0VSSUFMSVpBVElPTjpNQkVEVExTX01EX0NBTl9TSEEyNTY6TUJFRFRMU19DQU5fSEFORExFX1JTQV9URVNUX0tFWSAqLworLyogQkVHSU5fQ0FTRSBkZXBlbmRzX29uOk1CRURUTFNfU1NMX0hBTkRTSEFLRV9XSVRIX0NFUlRfRU5BQkxFRDpNQkVEVExTX1BLQ1MxX1YxNTpNQkVEVExTX1NTTF9QUk9UT19UTFMxXzI6TUJFRFRMU19SU0FfQzpNQkVEVExTX0VDUF9IQVZFX1NFQ1AzODRSMTpNQkVEVExTX1NTTF9QUk9UT19EVExTOk1CRURUTFNfU1NMX1JFTkVHT1RJQVRJT046TUJFRFRMU19TU0xfQ09OVEVYVF9TRVJJQUxJWkFUSU9OOlBTQV9XQU5UX0FMR19TSEFfMjU2Ok1CRURUTFNfQ0FOX0hBTkRMRV9SU0FfVEVTVF9LRVkgKi8KIHZvaWQgaGFuZHNoYWtlX3NlcmlhbGl6YXRpb24oKQogewogICAgIG1iZWR0bHNfdGVzdF9oYW5kc2hha2VfdGVzdF9vcHRpb25zIG9wdGlvbnM7CkBAIC0yNzYxLDcgKzI3NjEsNyBAQAogfQogLyogRU5EX0NBU0UgKi8KIAotLyogQkVHSU5fQ0FTRSBkZXBlbmRzX29uOk1CRURUTFNfU1NMX0hBTkRTSEFLRV9XSVRIX0NFUlRfRU5BQkxFRDohTUJFRFRMU19TU0xfUFJPVE9fVExTMV8zOk1CRURUTFNfUEtDUzFfVjE1Ok1CRURUTFNfUlNBX0M6TUJFRFRMU19TU0xfSEFWRV9BRVM6TUJFRFRMU19FQ1BfSEFWRV9TRUNQMzg0UjE6TUJFRFRMU19ERUJVR19DOk1CRURUTFNfU1NMX01BWF9GUkFHTUVOVF9MRU5HVEg6TUJFRFRMU19TU0xfSEFWRV9DQkM6TUJFRFRMU19NRF9DQU5fU0hBMjU2Ok1CRURUTFNfS0VZX0VYQ0hBTkdFX0RIRV9SU0FfRU5BQkxFRCAqLworLyogQkVHSU5fQ0FTRSBkZXBlbmRzX29uOk1CRURUTFNfU1NMX0hBTkRTSEFLRV9XSVRIX0NFUlRfRU5BQkxFRDohTUJFRFRMU19TU0xfUFJPVE9fVExTMV8zOk1CRURUTFNfUEtDUzFfVjE1Ok1CRURUTFNfUlNBX0M6TUJFRFRMU19TU0xfSEFWRV9BRVM6TUJFRFRMU19FQ1BfSEFWRV9TRUNQMzg0UjE6TUJFRFRMU19ERUJVR19DOk1CRURUTFNfU1NMX01BWF9GUkFHTUVOVF9MRU5HVEg6TUJFRFRMU19TU0xfSEFWRV9DQkM6UFNBX1dBTlRfQUxHX1NIQV8yNTY6TUJFRFRMU19LRVlfRVhDSEFOR0VfREhFX1JTQV9FTkFCTEVEICovCiB2b2lkIGhhbmRzaGFrZV9mcmFnbWVudGF0aW9uKGludCBtZmwsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBleHBlY3RlZF9zcnZfaHNfZnJhZ21lbnRhdGlvbiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGV4cGVjdGVkX2NsaV9oc19mcmFnbWVudGF0aW9uKQpAQCAtMjgwMSw3ICsyODAxLDcgQEAKIH0KIC8qIEVORF9DQVNFICovCiAKLS8qIEJFR0lOX0NBU0UgZGVwZW5kc19vbjpNQkVEVExTX1NTTF9IQU5EU0hBS0VfV0lUSF9DRVJUX0VOQUJMRUQ6IU1CRURUTFNfU1NMX1BST1RPX1RMUzFfMzpNQkVEVExTX1BLQ1MxX1YxNTpNQkVEVExTX1NTTF9QUk9UT19UTFMxXzI6TUJFRFRMU19SU0FfQzpNQkVEVExTX0VDUF9IQVZFX1NFQ1AzODRSMTpNQkVEVExTX1NTTF9QUk9UT19EVExTOk1CRURUTFNfU1NMX1JFTkVHT1RJQVRJT046TUJFRFRMU19NRF9DQU5fU0hBMjU2Ok1CRURUTFNfQ0FOX0hBTkRMRV9SU0FfVEVTVF9LRVkgKi8KKy8qIEJFR0lOX0NBU0UgZGVwZW5kc19vbjpNQkVEVExTX1NTTF9IQU5EU0hBS0VfV0lUSF9DRVJUX0VOQUJMRUQ6IU1CRURUTFNfU1NMX1BST1RPX1RMUzFfMzpNQkVEVExTX1BLQ1MxX1YxNTpNQkVEVExTX1NTTF9QUk9UT19UTFMxXzI6TUJFRFRMU19SU0FfQzpNQkVEVExTX0VDUF9IQVZFX1NFQ1AzODRSMTpNQkVEVExTX1NTTF9QUk9UT19EVExTOk1CRURUTFNfU1NMX1JFTkVHT1RJQVRJT046UFNBX1dBTlRfQUxHX1NIQV8yNTY6TUJFRFRMU19DQU5fSEFORExFX1JTQV9URVNUX0tFWSAqLwogdm9pZCByZW5lZ290aWF0aW9uKGludCBsZWdhY3lfcmVuZWdvdGlhdGlvbikKIHsKICAgICBtYmVkdGxzX3Rlc3RfaGFuZHNoYWtlX3Rlc3Rfb3B0aW9ucyBvcHRpb25zOwpAQCAtMjgyMSw3ICsyODIxLDcgQEAKIH0KIC8qIEVORF9DQVNFICovCiAKLS8qIEJFR0lOX0NBU0UgZGVwZW5kc19vbjpNQkVEVExTX1NTTF9IQU5EU0hBS0VfV0lUSF9DRVJUX0VOQUJMRUQ6TUJFRFRMU19QS0NTMV9WMTU6TUJFRFRMU19TU0xfVkFSSUFCTEVfQlVGRkVSX0xFTkdUSDpNQkVEVExTX1NTTF9QUk9UT19UTFMxXzI6TUJFRFRMU19SU0FfQzpNQkVEVExTX0VDUF9IQVZFX1NFQ1AzODRSMTpNQkVEVExTX01EX0NBTl9TSEEyNTYgKi8KKy8qIEJFR0lOX0NBU0UgZGVwZW5kc19vbjpNQkVEVExTX1NTTF9IQU5EU0hBS0VfV0lUSF9DRVJUX0VOQUJMRUQ6TUJFRFRMU19QS0NTMV9WMTU6TUJFRFRMU19TU0xfVkFSSUFCTEVfQlVGRkVSX0xFTkdUSDpNQkVEVExTX1NTTF9QUk9UT19UTFMxXzI6TUJFRFRMU19SU0FfQzpNQkVEVExTX0VDUF9IQVZFX1NFQ1AzODRSMTpQU0FfV0FOVF9BTEdfU0hBXzI1NiAqLwogdm9pZCByZXNpemVfYnVmZmVycyhpbnQgbWZsLCBpbnQgcmVuZWdvdGlhdGlvbiwgaW50IGxlZ2FjeV9yZW5lZ290aWF0aW9uLAogICAgICAgICAgICAgICAgICAgICBpbnQgc2VyaWFsaXplLCBpbnQgZHRscywgY2hhciAqY2lwaGVyKQogewpAQCAtMjg0OCw3ICsyODQ4LDcgQEAKIH0KIC8qIEVORF9DQVNFICovCiAKLS8qIEJFR0lOX0NBU0UgZGVwZW5kc19vbjpNQkVEVExTX1NTTF9IQU5EU0hBS0VfV0lUSF9DRVJUX0VOQUJMRUQ6IU1CRURUTFNfU1NMX1BST1RPX1RMUzFfMzpNQkVEVExTX1BLQ1MxX1YxNTpNQkVEVExTX1NTTF9WQVJJQUJMRV9CVUZGRVJfTEVOR1RIOk1CRURUTFNfU1NMX0NPTlRFWFRfU0VSSUFMSVpBVElPTjpNQkVEVExTX1NTTF9QUk9UT19UTFMxXzI6TUJFRFRMU19SU0FfQzpNQkVEVExTX0VDUF9IQVZFX1NFQ1AzODRSMTpNQkVEVExTX1NTTF9QUk9UT19EVExTOk1CRURUTFNfTURfQ0FOX1NIQTI1NjpNQkVEVExTX0NBTl9IQU5ETEVfUlNBX1RFU1RfS0VZICovCisvKiBCRUdJTl9DQVNFIGRlcGVuZHNfb246TUJFRFRMU19TU0xfSEFORFNIQUtFX1dJVEhfQ0VSVF9FTkFCTEVEOiFNQkVEVExTX1NTTF9QUk9UT19UTFMxXzM6TUJFRFRMU19QS0NTMV9WMTU6TUJFRFRMU19TU0xfVkFSSUFCTEVfQlVGRkVSX0xFTkdUSDpNQkVEVExTX1NTTF9DT05URVhUX1NFUklBTElaQVRJT046TUJFRFRMU19TU0xfUFJPVE9fVExTMV8yOk1CRURUTFNfUlNBX0M6TUJFRFRMU19FQ1BfSEFWRV9TRUNQMzg0UjE6TUJFRFRMU19TU0xfUFJPVE9fRFRMUzpQU0FfV0FOVF9BTEdfU0hBXzI1NjpNQkVEVExTX0NBTl9IQU5ETEVfUlNBX1RFU1RfS0VZICovCiB2b2lkIHJlc2l6ZV9idWZmZXJzX3NlcmlhbGl6ZV9tZmwoaW50IG1mbCkKIHsKICAgICB0ZXN0X3Jlc2l6ZV9idWZmZXJzKG1mbCwgMCwgTUJFRFRMU19TU0xfTEVHQUNZX05PX1JFTkVHT1RJQVRJT04sIDEsIDEsCkBAIC0yODU4LDcgKzI4NTgsNyBAQAogfQogLyogRU5EX0NBU0UgKi8KIAotLyogQkVHSU5fQ0FTRSBkZXBlbmRzX29uOk1CRURUTFNfU1NMX0hBTkRTSEFLRV9XSVRIX0NFUlRfRU5BQkxFRDohTUJFRFRMU19TU0xfUFJPVE9fVExTMV8zOk1CRURUTFNfUEtDUzFfVjE1Ok1CRURUTFNfU1NMX1ZBUklBQkxFX0JVRkZFUl9MRU5HVEg6TUJFRFRMU19TU0xfUkVORUdPVElBVElPTjpNQkVEVExTX1NTTF9QUk9UT19UTFMxXzI6TUJFRFRMU19SU0FfQzpNQkVEVExTX0VDUF9IQVZFX1NFQ1AzODRSMTpNQkVEVExTX01EX0NBTl9TSEEyNTY6TUJFRFRMU19DQU5fSEFORExFX1JTQV9URVNUX0tFWSAqLworLyogQkVHSU5fQ0FTRSBkZXBlbmRzX29uOk1CRURUTFNfU1NMX0hBTkRTSEFLRV9XSVRIX0NFUlRfRU5BQkxFRDohTUJFRFRMU19TU0xfUFJPVE9fVExTMV8zOk1CRURUTFNfUEtDUzFfVjE1Ok1CRURUTFNfU1NMX1ZBUklBQkxFX0JVRkZFUl9MRU5HVEg6TUJFRFRMU19TU0xfUkVORUdPVElBVElPTjpNQkVEVExTX1NTTF9QUk9UT19UTFMxXzI6TUJFRFRMU19SU0FfQzpNQkVEVExTX0VDUF9IQVZFX1NFQ1AzODRSMTpQU0FfV0FOVF9BTEdfU0hBXzI1NjpNQkVEVExTX0NBTl9IQU5ETEVfUlNBX1RFU1RfS0VZICovCiB2b2lkIHJlc2l6ZV9idWZmZXJzX3JlbmVnb3RpYXRlX21mbChpbnQgbWZsLCBpbnQgbGVnYWN5X3JlbmVnb3RpYXRpb24sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGFyICpjaXBoZXIpCiB7CkBAIC0zMDA5LDcgKzMwMDksNyBAQAogfQogLyogRU5EX0NBU0UgKi8KIAotLyogQkVHSU5fQ0FTRSBkZXBlbmRzX29uOk1CRURUTFNfRUNQX0M6IU1CRURUTFNfREVQUkVDQVRFRF9SRU1PVkVEOiFNQkVEVExTX0RFUFJFQ0FURURfV0FSTklORzpNQkVEVExTX0VDUF9IQVZFX1NFQ1AxOTJSMTpNQkVEVExTX0VDUF9IQVZFX1NFQ1AyMjRSMTpNQkVEVExTX0VDUF9IQVZFX1NFQ1AyNTZSMSAqLworLyogQkVHSU5fQ0FTRSBkZXBlbmRzX29uOk1CRURUTFNfRUNQX0M6IU1CRURUTFNfREVQUkVDQVRFRF9SRU1PVkVEOiFNQkVEVExTX0RFUFJFQ0FURURfV0FSTklORzpQU0FfV0FOVF9FQ0NfU0VDUF9SMV8xOTI6UFNBX1dBTlRfRUNDX1NFQ1BfUjFfMjI0Ok1CRURUTFNfRUNQX0hBVkVfU0VDUDI1NlIxICovCiB2b2lkIGNvbmZfY3VydmUoKQogewogCkBAIC0zMDk5LDcgKzMwOTksNyBAQAogfQogLyogRU5EX0NBU0UgKi8KIAotLyogQkVHSU5fQ0FTRSBkZXBlbmRzX29uOk1CRURUTFNfU1NMX1NSVl9DOk1CRURUTFNfU1NMX0NBQ0hFX0M6IU1CRURUTFNfU1NMX1BST1RPX1RMUzFfMzpNQkVEVExTX0RFQlVHX0M6TUJFRFRMU19TU0xfSEFORFNIQUtFX1dJVEhfQ0VSVF9FTkFCTEVEOk1CRURUTFNfUlNBX0M6TUJFRFRMU19FQ1BfSEFWRV9TRUNQMzg0UjE6TUJFRFRMU19QS0NTMV9WMTU6TUJFRFRMU19NRF9DQU5fU0hBMjU2ICovCisvKiBCRUdJTl9DQVNFIGRlcGVuZHNfb246TUJFRFRMU19TU0xfU1JWX0M6TUJFRFRMU19TU0xfQ0FDSEVfQzohTUJFRFRMU19TU0xfUFJPVE9fVExTMV8zOk1CRURUTFNfREVCVUdfQzpNQkVEVExTX1NTTF9IQU5EU0hBS0VfV0lUSF9DRVJUX0VOQUJMRUQ6TUJFRFRMU19SU0FfQzpNQkVEVExTX0VDUF9IQVZFX1NFQ1AzODRSMTpNQkVEVExTX1BLQ1MxX1YxNTpQU0FfV0FOVF9BTEdfU0hBXzI1NiAqLwogdm9pZCBmb3JjZV9iYWRfc2Vzc2lvbl9pZF9sZW4oKQogewogICAgIGVudW0geyBCVUZGU0laRSA9IDEwMjQgfTsKQEAgLTMyOTcsNyArMzI5Nyw3IEBACiB9CiAvKiBFTkRfQ0FTRSAqLwogCi0vKiBCRUdJTl9DQVNFIGRlcGVuZHNfb246TUJFRFRMU19TU0xfSEFORFNIQUtFX1dJVEhfQ0VSVF9FTkFCTEVEOk1CRURUTFNfVVNFX1BTQV9DUllQVE86TUJFRFRMU19QS0NTMV9WMTU6TUJFRFRMU19TU0xfUFJPVE9fVExTMV8yOk1CRURUTFNfRUNQX0hBVkVfU0VDUDI1NlIxOk1CRURUTFNfUlNBX0M6TUJFRFRMU19FQ1BfSEFWRV9TRUNQMzg0UjE6TUJFRFRMU19QS19DQU5fRUNEU0FfU09NRSAqLworLyogQkVHSU5fQ0FTRSBkZXBlbmRzX29uOk1CRURUTFNfUFNBX0NSWVBUT19DOk1CRURUTFNfU1NMX0hBTkRTSEFLRV9XSVRIX0NFUlRfRU5BQkxFRDpNQkVEVExTX1VTRV9QU0FfQ1JZUFRPOk1CRURUTFNfUEtDUzFfVjE1Ok1CRURUTFNfU1NMX1BST1RPX1RMUzFfMjpNQkVEVExTX0VDUF9IQVZFX1NFQ1AyNTZSMTpNQkVEVExTX1JTQV9DOk1CRURUTFNfRUNQX0hBVkVfU0VDUDM4NFIxOk1CRURUTFNfUEtfQ0FOX0VDRFNBX1NPTUUgKi8KIHZvaWQgcmF3X2tleV9hZ3JlZW1lbnRfZmFpbChpbnQgYmFkX3NlcnZlcl9lY2RoZV9rZXkpCiB7CiAgICAgZW51bSB7IEJVRkZTSVpFID0gMTcwMDAgfTsKQEAgLTM1NjAsNyArMzU2MCw3IEBACiAjZWxzZQogICAgIFRFU1RfVU5BVkFJTEFCTEVfRUNDKDI1LCBNQkVEVExTX0VDUF9EUF9TRUNQNTIxUjEsIFBTQV9FQ0NfRkFNSUxZX1NFQ1BfUjEsIDUyMSk7CiAjZW5kaWYKLSNpZiBkZWZpbmVkKE1CRURUTFNfRUNQX0hBVkVfQlA1MTJSMSkgfHwgZGVmaW5lZChQU0FfV0FOVF9FQ0NfQlJBSU5QT09MX1BfUjFfNTEyKQorI2lmIGRlZmluZWQoUFNBX1dBTlRfRUNDX0JSQUlOUE9PTF9QX1IxXzUxMikKICAgICBURVNUX0FWQUlMQUJMRV9FQ0MoMjgsIE1CRURUTFNfRUNQX0RQX0JQNTEyUjEsIFBTQV9FQ0NfRkFNSUxZX0JSQUlOUE9PTF9QX1IxLCA1MTIpOwogI2Vsc2UKICAgICBURVNUX1VOQVZBSUxBQkxFX0VDQygyOCwgTUJFRFRMU19FQ1BfRFBfQlA1MTJSMSwgUFNBX0VDQ19GQU1JTFlfQlJBSU5QT09MX1BfUjEsIDUxMik7CkBAIC0zNTcwLDcgKzM1NzAsNyBAQAogI2Vsc2UKICAgICBURVNUX1VOQVZBSUxBQkxFX0VDQygyNCwgTUJFRFRMU19FQ1BfRFBfU0VDUDM4NFIxLCBQU0FfRUNDX0ZBTUlMWV9TRUNQX1IxLCAzODQpOwogI2VuZGlmCi0jaWYgZGVmaW5lZChNQkVEVExTX0VDUF9IQVZFX0JQMzg0UjEpIHx8IGRlZmluZWQoUFNBX1dBTlRfRUNDX0JSQUlOUE9PTF9QX1IxXzM4NCkKKyNpZiBkZWZpbmVkKFBTQV9XQU5UX0VDQ19CUkFJTlBPT0xfUF9SMV8zODQpCiAgICAgVEVTVF9BVkFJTEFCTEVfRUNDKDI3LCBNQkVEVExTX0VDUF9EUF9CUDM4NFIxLCBQU0FfRUNDX0ZBTUlMWV9CUkFJTlBPT0xfUF9SMSwgMzg0KTsKICNlbHNlCiAgICAgVEVTVF9VTkFWQUlMQUJMRV9FQ0MoMjcsIE1CRURUTFNfRUNQX0RQX0JQMzg0UjEsIFBTQV9FQ0NfRkFNSUxZX0JSQUlOUE9PTF9QX1IxLCAzODQpOwpAQCAtMzU4MCwxNyArMzU4MCwxNyBAQAogI2Vsc2UKICAgICBURVNUX1VOQVZBSUxBQkxFX0VDQygyMywgTUJFRFRMU19FQ1BfRFBfU0VDUDI1NlIxLCBQU0FfRUNDX0ZBTUlMWV9TRUNQX1IxLCAyNTYpOwogI2VuZGlmCi0jaWYgZGVmaW5lZChNQkVEVExTX0VDUF9IQVZFX1NFQ1AyNTZLMSkgfHwgZGVmaW5lZChQU0FfV0FOVF9FQ0NfU0VDUF9LMV8yNTYpCisjaWYgZGVmaW5lZChQU0FfV0FOVF9FQ0NfU0VDUF9LMV8yNTYpIHx8IGRlZmluZWQoUFNBX1dBTlRfRUNDX1NFQ1BfSzFfMjU2KQogICAgIFRFU1RfQVZBSUxBQkxFX0VDQygyMiwgTUJFRFRMU19FQ1BfRFBfU0VDUDI1NksxLCBQU0FfRUNDX0ZBTUlMWV9TRUNQX0sxLCAyNTYpOwogI2Vsc2UKICAgICBURVNUX1VOQVZBSUxBQkxFX0VDQygyMiwgTUJFRFRMU19FQ1BfRFBfU0VDUDI1NksxLCBQU0FfRUNDX0ZBTUlMWV9TRUNQX0sxLCAyNTYpOwogI2VuZGlmCi0jaWYgZGVmaW5lZChNQkVEVExTX0VDUF9IQVZFX0JQMjU2UjEpIHx8IGRlZmluZWQoUFNBX1dBTlRfRUNDX0JSQUlOUE9PTF9QX1IxXzI1NikKKyNpZiBkZWZpbmVkKFBTQV9XQU5UX0VDQ19CUkFJTlBPT0xfUF9SMV8yNTYpCiAgICAgVEVTVF9BVkFJTEFCTEVfRUNDKDI2LCBNQkVEVExTX0VDUF9EUF9CUDI1NlIxLCBQU0FfRUNDX0ZBTUlMWV9CUkFJTlBPT0xfUF9SMSwgMjU2KTsKICNlbHNlCiAgICAgVEVTVF9VTkFWQUlMQUJMRV9FQ0MoMjYsIE1CRURUTFNfRUNQX0RQX0JQMjU2UjEsIFBTQV9FQ0NfRkFNSUxZX0JSQUlOUE9PTF9QX1IxLCAyNTYpOwogI2VuZGlmCi0jaWYgZGVmaW5lZChNQkVEVExTX0VDUF9IQVZFX1NFQ1AyMjRSMSkgfHwgZGVmaW5lZChQU0FfV0FOVF9FQ0NfU0VDUF9SMV8yMjQpCisjaWYgZGVmaW5lZChQU0FfV0FOVF9FQ0NfU0VDUF9SMV8yMjQpCiAgICAgVEVTVF9BVkFJTEFCTEVfRUNDKDIxLCBNQkVEVExTX0VDUF9EUF9TRUNQMjI0UjEsIFBTQV9FQ0NfRkFNSUxZX1NFQ1BfUjEsIDIyNCk7CiAjZWxzZQogICAgIFRFU1RfVU5BVkFJTEFCTEVfRUNDKDIxLCBNQkVEVExTX0VDUF9EUF9TRUNQMjI0UjEsIFBTQV9FQ0NfRkFNSUxZX1NFQ1BfUjEsIDIyNCk7CkBAIC0zNjAwLDEyICszNjAwLDEyIEBACiAjZWxzZQogICAgIFRFU1RfVU5BVkFJTEFCTEVfRUNDKDIwLCBNQkVEVExTX0VDUF9EUF9TRUNQMjI0SzEsIFBTQV9FQ0NfRkFNSUxZX1NFQ1BfSzEsIDIyNCk7CiAjZW5kaWYKLSNpZiBkZWZpbmVkKE1CRURUTFNfRUNQX0hBVkVfU0VDUDE5MlIxKSB8fCBkZWZpbmVkKFBTQV9XQU5UX0VDQ19TRUNQX1IxXzE5MikKKyNpZiBkZWZpbmVkKFBTQV9XQU5UX0VDQ19TRUNQX1IxXzE5MikKICAgICBURVNUX0FWQUlMQUJMRV9FQ0MoMTksIE1CRURUTFNfRUNQX0RQX1NFQ1AxOTJSMSwgUFNBX0VDQ19GQU1JTFlfU0VDUF9SMSwgMTkyKTsKICNlbHNlCiAgICAgVEVTVF9VTkFWQUlMQUJMRV9FQ0MoMTksIE1CRURUTFNfRUNQX0RQX1NFQ1AxOTJSMSwgUFNBX0VDQ19GQU1JTFlfU0VDUF9SMSwgMTkyKTsKICNlbmRpZgotI2lmIGRlZmluZWQoTUJFRFRMU19FQ1BfSEFWRV9TRUNQMTkySzEpIHx8IGRlZmluZWQoUFNBX1dBTlRfRUNDX1NFQ1BfSzFfMTkyKQorI2lmIGRlZmluZWQoUFNBX1dBTlRfRUNDX1NFQ1BfSzFfMTkyKQogICAgIFRFU1RfQVZBSUxBQkxFX0VDQygxOCwgTUJFRFRMU19FQ1BfRFBfU0VDUDE5MksxLCBQU0FfRUNDX0ZBTUlMWV9TRUNQX0sxLCAxOTIpOwogI2Vsc2UKICAgICBURVNUX1VOQVZBSUxBQkxFX0VDQygxOCwgTUJFRFRMU19FQ1BfRFBfU0VDUDE5MksxLCBQU0FfRUNDX0ZBTUlMWV9TRUNQX0sxLCAxOTIpOwpAQCAtMzYyNiw3ICszNjI2LDcgQEAKIH0KIC8qIEVORF9DQVNFICovCiAKLS8qIEJFR0lOX0NBU0UgZGVwZW5kc19vbjpNQkVEVExTX1NTTF9QUk9UT19UTFMxXzM6TUJFRFRMU19TU0xfQ0xJX0M6TUJFRFRMU19TU0xfU1JWX0M6TUJFRFRMU19URVNUX0FUX0xFQVNUX09ORV9UTFMxXzNfQ0lQSEVSU1VJVEU6TUJFRFRMU19TU0xfVExTMV8zX0tFWV9FWENIQU5HRV9NT0RFX0VQSEVNRVJBTF9FTkFCTEVEOk1CRURUTFNfU1NMX1RMUzFfM19LRVlfRVhDSEFOR0VfTU9ERV9QU0tfRVBIRU1FUkFMX0VOQUJMRUQ6TUJFRFRMU19NRF9DQU5fU0hBMjU2Ok1CRURUTFNfRUNQX0hBVkVfU0VDUDI1NlIxOk1CRURUTFNfRUNQX0hBVkVfU0VDUDM4NFIxOk1CRURUTFNfUEtfQ0FOX0VDRFNBX1ZFUklGWTpNQkVEVExTX1NTTF9TRVNTSU9OX1RJQ0tFVFMgKi8KKy8qIEJFR0lOX0NBU0UgZGVwZW5kc19vbjpNQkVEVExTX1NTTF9QUk9UT19UTFMxXzM6TUJFRFRMU19TU0xfQ0xJX0M6TUJFRFRMU19TU0xfU1JWX0M6TUJFRFRMU19URVNUX0FUX0xFQVNUX09ORV9UTFMxXzNfQ0lQSEVSU1VJVEU6TUJFRFRMU19TU0xfVExTMV8zX0tFWV9FWENIQU5HRV9NT0RFX0VQSEVNRVJBTF9FTkFCTEVEOk1CRURUTFNfU1NMX1RMUzFfM19LRVlfRVhDSEFOR0VfTU9ERV9QU0tfRVBIRU1FUkFMX0VOQUJMRUQ6UFNBX1dBTlRfQUxHX1NIQV8yNTY6TUJFRFRMU19FQ1BfSEFWRV9TRUNQMjU2UjE6TUJFRFRMU19FQ1BfSEFWRV9TRUNQMzg0UjE6TUJFRFRMU19QS19DQU5fRUNEU0FfVkVSSUZZOk1CRURUTFNfU1NMX1NFU1NJT05fVElDS0VUUyAqLwogdm9pZCB0bHMxM19yZXN1bWVfc2Vzc2lvbl93aXRoX3RpY2tldCgpCiB7CiAgICAgaW50IHJldCA9IC0xOwpAQCAtMzcwOCw3ICszNzA4LDcgQEAKICAqIGEgdGVtcG9yYXJ5IHdvcmthcm91bmQgdG8gbm90IHJ1biB0aGUgdGVzdCBpbiBXaW5kb3dzLTIwMTMgd2hlcmUgdGhlcmUgaXMKICAqIGFuIGlzc3VlIHdpdGggbWJlZHRsc192c25wcmludGYoKS4KICAqLwotLyogQkVHSU5fQ0FTRSBkZXBlbmRzX29uOiFNQkVEVExTX1NTTF9QUk9UT19UTFMxXzI6TUJFRFRMU19TU0xfRUFSTFlfREFUQTpNQkVEVExTX1NTTF9DTElfQzpNQkVEVExTX1NTTF9TUlZfQzpNQkVEVExTX0RFQlVHX0M6TUJFRFRMU19URVNUX0FUX0xFQVNUX09ORV9UTFMxXzNfQ0lQSEVSU1VJVEU6TUJFRFRMU19TU0xfVExTMV8zX0tFWV9FWENIQU5HRV9NT0RFX0VQSEVNRVJBTF9FTkFCTEVEOk1CRURUTFNfU1NMX1RMUzFfM19LRVlfRVhDSEFOR0VfTU9ERV9QU0tfRVBIRU1FUkFMX0VOQUJMRUQ6TUJFRFRMU19NRF9DQU5fU0hBMjU2Ok1CRURUTFNfRUNQX0hBVkVfU0VDUDI1NlIxOk1CRURUTFNfRUNQX0hBVkVfU0VDUDM4NFIxOk1CRURUTFNfUEtfQ0FOX0VDRFNBX1ZFUklGWTpNQkVEVExTX1NTTF9TRVNTSU9OX1RJQ0tFVFMgKi8KKy8qIEJFR0lOX0NBU0UgZGVwZW5kc19vbjohTUJFRFRMU19TU0xfUFJPVE9fVExTMV8yOk1CRURUTFNfU1NMX0VBUkxZX0RBVEE6TUJFRFRMU19TU0xfQ0xJX0M6TUJFRFRMU19TU0xfU1JWX0M6TUJFRFRMU19ERUJVR19DOk1CRURUTFNfVEVTVF9BVF9MRUFTVF9PTkVfVExTMV8zX0NJUEhFUlNVSVRFOk1CRURUTFNfU1NMX1RMUzFfM19LRVlfRVhDSEFOR0VfTU9ERV9FUEhFTUVSQUxfRU5BQkxFRDpNQkVEVExTX1NTTF9UTFMxXzNfS0VZX0VYQ0hBTkdFX01PREVfUFNLX0VQSEVNRVJBTF9FTkFCTEVEOlBTQV9XQU5UX0FMR19TSEFfMjU2Ok1CRURUTFNfRUNQX0hBVkVfU0VDUDI1NlIxOk1CRURUTFNfRUNQX0hBVkVfU0VDUDM4NFIxOk1CRURUTFNfUEtfQ0FOX0VDRFNBX1ZFUklGWTpNQkVEVExTX1NTTF9TRVNTSU9OX1RJQ0tFVFMgKi8KIHZvaWQgdGxzMTNfcmVhZF9lYXJseV9kYXRhKGludCBzY2VuYXJpbykKIHsKICAgICBpbnQgcmV0ID0gLTE7CkBAIC0zOTEwLDcgKzM5MTAsNyBAQAogfQogLyogRU5EX0NBU0UgKi8KIAotLyogQkVHSU5fQ0FTRSBkZXBlbmRzX29uOk1CRURUTFNfU1NMX0VBUkxZX0RBVEE6TUJFRFRMU19TU0xfQ0xJX0M6TUJFRFRMU19TU0xfU1JWX0M6TUJFRFRMU19URVNUX0FUX0xFQVNUX09ORV9UTFMxXzNfQ0lQSEVSU1VJVEU6TUJFRFRMU19TU0xfVExTMV8zX0tFWV9FWENIQU5HRV9NT0RFX0VQSEVNRVJBTF9FTkFCTEVEOk1CRURUTFNfU1NMX1RMUzFfM19LRVlfRVhDSEFOR0VfTU9ERV9QU0tfRVBIRU1FUkFMX0VOQUJMRUQ6TUJFRFRMU19NRF9DQU5fU0hBMjU2Ok1CRURUTFNfRUNQX0hBVkVfU0VDUDI1NlIxOk1CRURUTFNfRUNQX0hBVkVfU0VDUDM4NFIxOk1CRURUTFNfUEtfQ0FOX0VDRFNBX1ZFUklGWTpNQkVEVExTX1NTTF9TRVNTSU9OX1RJQ0tFVFMgKi8KKy8qIEJFR0lOX0NBU0UgZGVwZW5kc19vbjpNQkVEVExTX1NTTF9FQVJMWV9EQVRBOk1CRURUTFNfU1NMX0NMSV9DOk1CRURUTFNfU1NMX1NSVl9DOk1CRURUTFNfVEVTVF9BVF9MRUFTVF9PTkVfVExTMV8zX0NJUEhFUlNVSVRFOk1CRURUTFNfU1NMX1RMUzFfM19LRVlfRVhDSEFOR0VfTU9ERV9FUEhFTUVSQUxfRU5BQkxFRDpNQkVEVExTX1NTTF9UTFMxXzNfS0VZX0VYQ0hBTkdFX01PREVfUFNLX0VQSEVNRVJBTF9FTkFCTEVEOlBTQV9XQU5UX0FMR19TSEFfMjU2Ok1CRURUTFNfRUNQX0hBVkVfU0VDUDI1NlIxOk1CRURUTFNfRUNQX0hBVkVfU0VDUDM4NFIxOk1CRURUTFNfUEtfQ0FOX0VDRFNBX1ZFUklGWTpNQkVEVExTX1NTTF9TRVNTSU9OX1RJQ0tFVFMgKi8KIHZvaWQgdGxzMTNfY2xpX2Vhcmx5X2RhdGFfc3RhdGUoaW50IHNjZW5hcmlvKQogewogICAgIGludCByZXQgPSAtMTsKQEAgLTQyODMsNyArNDI4Myw3IEBACiB9CiAvKiBFTkRfQ0FTRSAqLwogCi0vKiBCRUdJTl9DQVNFIGRlcGVuZHNfb246TUJFRFRMU19TU0xfRUFSTFlfREFUQTpNQkVEVExTX1NTTF9DTElfQzpNQkVEVExTX1NTTF9TUlZfQzpNQkVEVExTX1RFU1RfQVRfTEVBU1RfT05FX1RMUzFfM19DSVBIRVJTVUlURTpNQkVEVExTX1NTTF9UTFMxXzNfS0VZX0VYQ0hBTkdFX01PREVfRVBIRU1FUkFMX0VOQUJMRUQ6TUJFRFRMU19TU0xfVExTMV8zX0tFWV9FWENIQU5HRV9NT0RFX1BTS19FUEhFTUVSQUxfRU5BQkxFRDpNQkVEVExTX01EX0NBTl9TSEEyNTY6TUJFRFRMU19FQ1BfSEFWRV9TRUNQMjU2UjE6TUJFRFRMU19FQ1BfSEFWRV9TRUNQMzg0UjE6TUJFRFRMU19QS19DQU5fRUNEU0FfVkVSSUZZOk1CRURUTFNfU1NMX1NFU1NJT05fVElDS0VUUyAqLworLyogQkVHSU5fQ0FTRSBkZXBlbmRzX29uOk1CRURUTFNfU1NMX0VBUkxZX0RBVEE6TUJFRFRMU19TU0xfQ0xJX0M6TUJFRFRMU19TU0xfU1JWX0M6TUJFRFRMU19URVNUX0FUX0xFQVNUX09ORV9UTFMxXzNfQ0lQSEVSU1VJVEU6TUJFRFRMU19TU0xfVExTMV8zX0tFWV9FWENIQU5HRV9NT0RFX0VQSEVNRVJBTF9FTkFCTEVEOk1CRURUTFNfU1NMX1RMUzFfM19LRVlfRVhDSEFOR0VfTU9ERV9QU0tfRVBIRU1FUkFMX0VOQUJMRUQ6UFNBX1dBTlRfQUxHX1NIQV8yNTY6TUJFRFRMU19FQ1BfSEFWRV9TRUNQMjU2UjE6TUJFRFRMU19FQ1BfSEFWRV9TRUNQMzg0UjE6TUJFRFRMU19QS19DQU5fRUNEU0FfVkVSSUZZOk1CRURUTFNfU1NMX1NFU1NJT05fVElDS0VUUyAqLwogdm9pZCB0bHMxM193cml0ZV9lYXJseV9kYXRhKGludCBzY2VuYXJpbykKIHsKICAgICBpbnQgcmV0ID0gLTE7CkBAIC00NjMyLDcgKzQ2MzIsNyBAQAogfQogLyogRU5EX0NBU0UgKi8KIAotLyogQkVHSU5fQ0FTRSBkZXBlbmRzX29uOk1CRURUTFNfU1NMX0VBUkxZX0RBVEE6TUJFRFRMU19TU0xfQ0xJX0M6TUJFRFRMU19TU0xfU1JWX0M6TUJFRFRMU19ERUJVR19DOk1CRURUTFNfVEVTVF9BVF9MRUFTVF9PTkVfVExTMV8zX0NJUEhFUlNVSVRFOk1CRURUTFNfU1NMX1RMUzFfM19LRVlfRVhDSEFOR0VfTU9ERV9FUEhFTUVSQUxfRU5BQkxFRDpNQkVEVExTX1NTTF9UTFMxXzNfS0VZX0VYQ0hBTkdFX01PREVfUFNLX0VQSEVNRVJBTF9FTkFCTEVEOk1CRURUTFNfTURfQ0FOX1NIQTI1NjpNQkVEVExTX0VDUF9IQVZFX1NFQ1AyNTZSMTpNQkVEVExTX0VDUF9IQVZFX1NFQ1AzODRSMTpNQkVEVExTX1BLX0NBTl9FQ0RTQV9WRVJJRlk6TUJFRFRMU19TU0xfU0VTU0lPTl9USUNLRVRTICovCisvKiBCRUdJTl9DQVNFIGRlcGVuZHNfb246TUJFRFRMU19TU0xfRUFSTFlfREFUQTpNQkVEVExTX1NTTF9DTElfQzpNQkVEVExTX1NTTF9TUlZfQzpNQkVEVExTX0RFQlVHX0M6TUJFRFRMU19URVNUX0FUX0xFQVNUX09ORV9UTFMxXzNfQ0lQSEVSU1VJVEU6TUJFRFRMU19TU0xfVExTMV8zX0tFWV9FWENIQU5HRV9NT0RFX0VQSEVNRVJBTF9FTkFCTEVEOk1CRURUTFNfU1NMX1RMUzFfM19LRVlfRVhDSEFOR0VfTU9ERV9QU0tfRVBIRU1FUkFMX0VOQUJMRUQ6UFNBX1dBTlRfQUxHX1NIQV8yNTY6TUJFRFRMU19FQ1BfSEFWRV9TRUNQMjU2UjE6TUJFRFRMU19FQ1BfSEFWRV9TRUNQMzg0UjE6TUJFRFRMU19QS19DQU5fRUNEU0FfVkVSSUZZOk1CRURUTFNfU1NMX1NFU1NJT05fVElDS0VUUyAqLwogdm9pZCB0bHMxM19jbGlfbWF4X2Vhcmx5X2RhdGFfc2l6ZShpbnQgbWF4X2Vhcmx5X2RhdGFfc2l6ZV9hcmcpCiB7CiAgICAgaW50IHJldCA9IC0xOwpAQCAtNDc4NSw3ICs0Nzg1LDcgQEAKICAqIGEgdGVtcG9yYXJ5IHdvcmthcm91bmQgdG8gbm90IHJ1biB0aGUgdGVzdCBpbiBXaW5kb3dzLTIwMTMgd2hlcmUgdGhlcmUgaXMKICAqIGFuIGlzc3VlIHdpdGggbWJlZHRsc192c25wcmludGYoKS4KICAqLwotLyogQkVHSU5fQ0FTRSBkZXBlbmRzX29uOiFNQkVEVExTX1NTTF9QUk9UT19UTFMxXzI6TUJFRFRMU19TU0xfRUFSTFlfREFUQTpNQkVEVExTX1NTTF9DTElfQzpNQkVEVExTX1NTTF9TUlZfQzpNQkVEVExTX0RFQlVHX0M6TUJFRFRMU19URVNUX0FUX0xFQVNUX09ORV9UTFMxXzNfQ0lQSEVSU1VJVEU6TUJFRFRMU19TU0xfVExTMV8zX0tFWV9FWENIQU5HRV9NT0RFX0VQSEVNRVJBTF9FTkFCTEVEOk1CRURUTFNfU1NMX1RMUzFfM19LRVlfRVhDSEFOR0VfTU9ERV9QU0tfRVBIRU1FUkFMX0VOQUJMRUQ6TUJFRFRMU19NRF9DQU5fU0hBMjU2Ok1CRURUTFNfRUNQX0hBVkVfU0VDUDI1NlIxOk1CRURUTFNfRUNQX0hBVkVfU0VDUDM4NFIxOk1CRURUTFNfUEtfQ0FOX0VDRFNBX1ZFUklGWTpNQkVEVExTX1NTTF9TRVNTSU9OX1RJQ0tFVFMgKi8KKy8qIEJFR0lOX0NBU0UgZGVwZW5kc19vbjohTUJFRFRMU19TU0xfUFJPVE9fVExTMV8yOk1CRURUTFNfU1NMX0VBUkxZX0RBVEE6TUJFRFRMU19TU0xfQ0xJX0M6TUJFRFRMU19TU0xfU1JWX0M6TUJFRFRMU19ERUJVR19DOk1CRURUTFNfVEVTVF9BVF9MRUFTVF9PTkVfVExTMV8zX0NJUEhFUlNVSVRFOk1CRURUTFNfU1NMX1RMUzFfM19LRVlfRVhDSEFOR0VfTU9ERV9FUEhFTUVSQUxfRU5BQkxFRDpNQkVEVExTX1NTTF9UTFMxXzNfS0VZX0VYQ0hBTkdFX01PREVfUFNLX0VQSEVNRVJBTF9FTkFCTEVEOlBTQV9XQU5UX0FMR19TSEFfMjU2Ok1CRURUTFNfRUNQX0hBVkVfU0VDUDI1NlIxOk1CRURUTFNfRUNQX0hBVkVfU0VDUDM4NFIxOk1CRURUTFNfUEtfQ0FOX0VDRFNBX1ZFUklGWTpNQkVEVExTX1NTTF9TRVNTSU9OX1RJQ0tFVFMgKi8KIHZvaWQgdGxzMTNfc3J2X21heF9lYXJseV9kYXRhX3NpemUoaW50IHNjZW5hcmlvLCBpbnQgbWF4X2Vhcmx5X2RhdGFfc2l6ZV9hcmcsIGludCB3cml0ZV9zaXplX2FyZykKIHsKICAgICBpbnQgcmV0ID0gLTE7CmRpZmYgLS1naXQgYS90ZXN0cy9zdWl0ZXMvdGVzdF9zdWl0ZV9zc2xfZGVjcnlwdC5taXNjLmRhdGEgYi90ZXN0cy9zdWl0ZXMvdGVzdF9zdWl0ZV9zc2xfZGVjcnlwdC5taXNjLmRhdGEKaW5kZXggMjdlYTI3YS4uZGQ4ZTgzYSAxMDA2NDQKLS0tIGEvdGVzdHMvc3VpdGVzL3Rlc3Rfc3VpdGVfc3NsX2RlY3J5cHQubWlzYy5kYXRhCisrKyBiL3Rlc3RzL3N1aXRlcy90ZXN0X3N1aXRlX3NzbF9kZWNyeXB0Lm1pc2MuZGF0YQpAQCAtNywxMSArNywxMSBAQAogc3NsX2RlY3J5cHRfbnVsbDpNQkVEVExTX01EX1NIQTEKIAogRGVjcnlwdCBudWxsIGNpcGhlciwgU0hBLTI1NgotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHNzbF9kZWNyeXB0X251bGw6TUJFRFRMU19NRF9TSEEyNTYKIAogRGVjcnlwdCBudWxsIGNpcGhlciwgU0hBLTM4NAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEzODQKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8zODQKIHNzbF9kZWNyeXB0X251bGw6TUJFRFRMU19NRF9TSEEzODQKIAogRGVjcnlwdCBDQkMgIUV0TSwgQUVTIE1ENSAhdHJ1bmMsIGVtcHR5IHBsYWludGV4dCwgbWlucGFkCkBAIC03OSw2NyArNzksNjcgQEAKIHNzbF9kZWNyeXB0X25vbl9ldG1fY2JjOk1CRURUTFNfQ0lQSEVSX0FFU18xMjhfQ0JDOk1CRURUTFNfTURfU0hBMTowOjI1NQogCiBEZWNyeXB0IENCQyAhRXRNLCBBRVMgU0hBMjU2ICF0cnVuYywgZW1wdHkgcGxhaW50ZXh0LCBtaW5wYWQKLWRlcGVuZHNfb246TUJFRFRMU19TU0xfSEFWRV9BRVM6TUJFRFRMU19TU0xfSEFWRV9DQkM6TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOk1CRURUTFNfU1NMX0hBVkVfQUVTOk1CRURUTFNfU1NMX0hBVkVfQ0JDOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBzc2xfZGVjcnlwdF9ub25fZXRtX2NiYzpNQkVEVExTX0NJUEhFUl9BRVNfMTI4X0NCQzpNQkVEVExTX01EX1NIQTI1NjowOi0xCiAKIERlY3J5cHQgQ0JDICFFdE0sIEFFUyBTSEEyNTYgIXRydW5jLCBlbXB0eSBwbGFpbnRleHQsIG1heHBhZAotZGVwZW5kc19vbjpNQkVEVExTX1NTTF9IQVZFX0FFUzpNQkVEVExTX1NTTF9IQVZFX0NCQzpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246TUJFRFRMU19TU0xfSEFWRV9BRVM6TUJFRFRMU19TU0xfSEFWRV9DQkM6UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHNzbF9kZWNyeXB0X25vbl9ldG1fY2JjOk1CRURUTFNfQ0lQSEVSX0FFU18xMjhfQ0JDOk1CRURUTFNfTURfU0hBMjU2OjA6LTIKIAogRGVjcnlwdCBDQkMgIUV0TSwgQUVTIFNIQTI1NiAhdHJ1bmMsIHBhZGxlbj0wCi1kZXBlbmRzX29uOk1CRURUTFNfU1NMX0hBVkVfQUVTOk1CRURUTFNfU1NMX0hBVkVfQ0JDOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpNQkVEVExTX1NTTF9IQVZFX0FFUzpNQkVEVExTX1NTTF9IQVZFX0NCQzpQU0FfV0FOVF9BTEdfU0hBXzI1Ngogc3NsX2RlY3J5cHRfbm9uX2V0bV9jYmM6TUJFRFRMU19DSVBIRVJfQUVTXzEyOF9DQkM6TUJFRFRMU19NRF9TSEEyNTY6MDowCiAKIERlY3J5cHQgQ0JDICFFdE0sIEFFUyBTSEEyNTYgIXRydW5jLCBwYWRsZW49MjQwCi1kZXBlbmRzX29uOk1CRURUTFNfU1NMX0hBVkVfQUVTOk1CRURUTFNfU1NMX0hBVkVfQ0JDOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpNQkVEVExTX1NTTF9IQVZFX0FFUzpNQkVEVExTX1NTTF9IQVZFX0NCQzpQU0FfV0FOVF9BTEdfU0hBXzI1Ngogc3NsX2RlY3J5cHRfbm9uX2V0bV9jYmM6TUJFRFRMU19DSVBIRVJfQUVTXzEyOF9DQkM6TUJFRFRMU19NRF9TSEEyNTY6MDoyNDAKIAogRGVjcnlwdCBDQkMgIUV0TSwgQUVTIFNIQTI1NiAhdHJ1bmMsIHBhZGxlbj0xCi1kZXBlbmRzX29uOk1CRURUTFNfU1NMX0hBVkVfQUVTOk1CRURUTFNfU1NMX0hBVkVfQ0JDOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpNQkVEVExTX1NTTF9IQVZFX0FFUzpNQkVEVExTX1NTTF9IQVZFX0NCQzpQU0FfV0FOVF9BTEdfU0hBXzI1Ngogc3NsX2RlY3J5cHRfbm9uX2V0bV9jYmM6TUJFRFRMU19DSVBIRVJfQUVTXzEyOF9DQkM6TUJFRFRMU19NRF9TSEEyNTY6MDoxCiAKIERlY3J5cHQgQ0JDICFFdE0sIEFFUyBTSEEyNTYgIXRydW5jLCBwYWRsZW49MjQxCi1kZXBlbmRzX29uOk1CRURUTFNfU1NMX0hBVkVfQUVTOk1CRURUTFNfU1NMX0hBVkVfQ0JDOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpNQkVEVExTX1NTTF9IQVZFX0FFUzpNQkVEVExTX1NTTF9IQVZFX0NCQzpQU0FfV0FOVF9BTEdfU0hBXzI1Ngogc3NsX2RlY3J5cHRfbm9uX2V0bV9jYmM6TUJFRFRMU19DSVBIRVJfQUVTXzEyOF9DQkM6TUJFRFRMU19NRF9TSEEyNTY6MDoyNDEKIAogRGVjcnlwdCBDQkMgIUV0TSwgQUVTIFNIQTI1NiAhdHJ1bmMsIHBhZGxlbj0xNQotZGVwZW5kc19vbjpNQkVEVExTX1NTTF9IQVZFX0FFUzpNQkVEVExTX1NTTF9IQVZFX0NCQzpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246TUJFRFRMU19TU0xfSEFWRV9BRVM6TUJFRFRMU19TU0xfSEFWRV9DQkM6UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHNzbF9kZWNyeXB0X25vbl9ldG1fY2JjOk1CRURUTFNfQ0lQSEVSX0FFU18xMjhfQ0JDOk1CRURUTFNfTURfU0hBMjU2OjA6MTUKIAogRGVjcnlwdCBDQkMgIUV0TSwgQUVTIFNIQTI1NiAhdHJ1bmMsIHBhZGxlbj0yNTUKLWRlcGVuZHNfb246TUJFRFRMU19TU0xfSEFWRV9BRVM6TUJFRFRMU19TU0xfSEFWRV9DQkM6TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOk1CRURUTFNfU1NMX0hBVkVfQUVTOk1CRURUTFNfU1NMX0hBVkVfQ0JDOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBzc2xfZGVjcnlwdF9ub25fZXRtX2NiYzpNQkVEVExTX0NJUEhFUl9BRVNfMTI4X0NCQzpNQkVEVExTX01EX1NIQTI1NjowOjI1NQogCiBEZWNyeXB0IENCQyAhRXRNLCBBRVMgU0hBMzg0ICF0cnVuYywgZW1wdHkgcGxhaW50ZXh0LCBtaW5wYWQKLWRlcGVuZHNfb246TUJFRFRMU19TU0xfSEFWRV9BRVM6TUJFRFRMU19TU0xfSEFWRV9DQkM6TUJFRFRMU19NRF9DQU5fU0hBMzg0CitkZXBlbmRzX29uOk1CRURUTFNfU1NMX0hBVkVfQUVTOk1CRURUTFNfU1NMX0hBVkVfQ0JDOlBTQV9XQU5UX0FMR19TSEFfMzg0CiBzc2xfZGVjcnlwdF9ub25fZXRtX2NiYzpNQkVEVExTX0NJUEhFUl9BRVNfMTI4X0NCQzpNQkVEVExTX01EX1NIQTM4NDowOi0xCiAKIERlY3J5cHQgQ0JDICFFdE0sIEFFUyBTSEEzODQgIXRydW5jLCBlbXB0eSBwbGFpbnRleHQsIG1heHBhZAotZGVwZW5kc19vbjpNQkVEVExTX1NTTF9IQVZFX0FFUzpNQkVEVExTX1NTTF9IQVZFX0NCQzpNQkVEVExTX01EX0NBTl9TSEEzODQKK2RlcGVuZHNfb246TUJFRFRMU19TU0xfSEFWRV9BRVM6TUJFRFRMU19TU0xfSEFWRV9DQkM6UFNBX1dBTlRfQUxHX1NIQV8zODQKIHNzbF9kZWNyeXB0X25vbl9ldG1fY2JjOk1CRURUTFNfQ0lQSEVSX0FFU18xMjhfQ0JDOk1CRURUTFNfTURfU0hBMzg0OjA6LTIKIAogRGVjcnlwdCBDQkMgIUV0TSwgQUVTIFNIQTM4NCAhdHJ1bmMsIHBhZGxlbj0wCi1kZXBlbmRzX29uOk1CRURUTFNfU1NMX0hBVkVfQUVTOk1CRURUTFNfU1NMX0hBVkVfQ0JDOk1CRURUTFNfTURfQ0FOX1NIQTM4NAorZGVwZW5kc19vbjpNQkVEVExTX1NTTF9IQVZFX0FFUzpNQkVEVExTX1NTTF9IQVZFX0NCQzpQU0FfV0FOVF9BTEdfU0hBXzM4NAogc3NsX2RlY3J5cHRfbm9uX2V0bV9jYmM6TUJFRFRMU19DSVBIRVJfQUVTXzEyOF9DQkM6TUJFRFRMU19NRF9TSEEzODQ6MDowCiAKIERlY3J5cHQgQ0JDICFFdE0sIEFFUyBTSEEzODQgIXRydW5jLCBwYWRsZW49MjQwCi1kZXBlbmRzX29uOk1CRURUTFNfU1NMX0hBVkVfQUVTOk1CRURUTFNfU1NMX0hBVkVfQ0JDOk1CRURUTFNfTURfQ0FOX1NIQTM4NAorZGVwZW5kc19vbjpNQkVEVExTX1NTTF9IQVZFX0FFUzpNQkVEVExTX1NTTF9IQVZFX0NCQzpQU0FfV0FOVF9BTEdfU0hBXzM4NAogc3NsX2RlY3J5cHRfbm9uX2V0bV9jYmM6TUJFRFRMU19DSVBIRVJfQUVTXzEyOF9DQkM6TUJFRFRMU19NRF9TSEEzODQ6MDoyNDAKIAogRGVjcnlwdCBDQkMgIUV0TSwgQUVTIFNIQTM4NCAhdHJ1bmMsIHBhZGxlbj0xCi1kZXBlbmRzX29uOk1CRURUTFNfU1NMX0hBVkVfQUVTOk1CRURUTFNfU1NMX0hBVkVfQ0JDOk1CRURUTFNfTURfQ0FOX1NIQTM4NAorZGVwZW5kc19vbjpNQkVEVExTX1NTTF9IQVZFX0FFUzpNQkVEVExTX1NTTF9IQVZFX0NCQzpQU0FfV0FOVF9BTEdfU0hBXzM4NAogc3NsX2RlY3J5cHRfbm9uX2V0bV9jYmM6TUJFRFRMU19DSVBIRVJfQUVTXzEyOF9DQkM6TUJFRFRMU19NRF9TSEEzODQ6MDoxCiAKIERlY3J5cHQgQ0JDICFFdE0sIEFFUyBTSEEzODQgIXRydW5jLCBwYWRsZW49MjQxCi1kZXBlbmRzX29uOk1CRURUTFNfU1NMX0hBVkVfQUVTOk1CRURUTFNfU1NMX0hBVkVfQ0JDOk1CRURUTFNfTURfQ0FOX1NIQTM4NAorZGVwZW5kc19vbjpNQkVEVExTX1NTTF9IQVZFX0FFUzpNQkVEVExTX1NTTF9IQVZFX0NCQzpQU0FfV0FOVF9BTEdfU0hBXzM4NAogc3NsX2RlY3J5cHRfbm9uX2V0bV9jYmM6TUJFRFRMU19DSVBIRVJfQUVTXzEyOF9DQkM6TUJFRFRMU19NRF9TSEEzODQ6MDoyNDEKIAogRGVjcnlwdCBDQkMgIUV0TSwgQUVTIFNIQTM4NCAhdHJ1bmMsIHBhZGxlbj0xNQotZGVwZW5kc19vbjpNQkVEVExTX1NTTF9IQVZFX0FFUzpNQkVEVExTX1NTTF9IQVZFX0NCQzpNQkVEVExTX01EX0NBTl9TSEEzODQKK2RlcGVuZHNfb246TUJFRFRMU19TU0xfSEFWRV9BRVM6TUJFRFRMU19TU0xfSEFWRV9DQkM6UFNBX1dBTlRfQUxHX1NIQV8zODQKIHNzbF9kZWNyeXB0X25vbl9ldG1fY2JjOk1CRURUTFNfQ0lQSEVSX0FFU18xMjhfQ0JDOk1CRURUTFNfTURfU0hBMzg0OjA6MTUKIAogRGVjcnlwdCBDQkMgIUV0TSwgQUVTIFNIQTM4NCAhdHJ1bmMsIHBhZGxlbj0yNTUKLWRlcGVuZHNfb246TUJFRFRMU19TU0xfSEFWRV9BRVM6TUJFRFRMU19TU0xfSEFWRV9DQkM6TUJFRFRMU19NRF9DQU5fU0hBMzg0CitkZXBlbmRzX29uOk1CRURUTFNfU1NMX0hBVkVfQUVTOk1CRURUTFNfU1NMX0hBVkVfQ0JDOlBTQV9XQU5UX0FMR19TSEFfMzg0CiBzc2xfZGVjcnlwdF9ub25fZXRtX2NiYzpNQkVEVExTX0NJUEhFUl9BRVNfMTI4X0NCQzpNQkVEVExTX01EX1NIQTM4NDowOjI1NQogCiBEZWNyeXB0IENCQyAhRXRNLCBBUklBIE1ENSAhdHJ1bmMsIGVtcHR5IHBsYWludGV4dCwgbWlucGFkCkBAIC0yMDcsNjcgKzIwNyw2NyBAQAogc3NsX2RlY3J5cHRfbm9uX2V0bV9jYmM6TUJFRFRMU19DSVBIRVJfQVJJQV8xMjhfQ0JDOk1CRURUTFNfTURfU0hBMTowOjI1NQogCiBEZWNyeXB0IENCQyAhRXRNLCBBUklBIFNIQTI1NiAhdHJ1bmMsIGVtcHR5IHBsYWludGV4dCwgbWlucGFkCi1kZXBlbmRzX29uOk1CRURUTFNfU1NMX0hBVkVfQVJJQTpNQkVEVExTX1NTTF9IQVZFX0NCQzpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246TUJFRFRMU19TU0xfSEFWRV9BUklBOk1CRURUTFNfU1NMX0hBVkVfQ0JDOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBzc2xfZGVjcnlwdF9ub25fZXRtX2NiYzpNQkVEVExTX0NJUEhFUl9BUklBXzEyOF9DQkM6TUJFRFRMU19NRF9TSEEyNTY6MDotMQogCiBEZWNyeXB0IENCQyAhRXRNLCBBUklBIFNIQTI1NiAhdHJ1bmMsIGVtcHR5IHBsYWludGV4dCwgbWF4cGFkCi1kZXBlbmRzX29uOk1CRURUTFNfU1NMX0hBVkVfQVJJQTpNQkVEVExTX1NTTF9IQVZFX0NCQzpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246TUJFRFRMU19TU0xfSEFWRV9BUklBOk1CRURUTFNfU1NMX0hBVkVfQ0JDOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBzc2xfZGVjcnlwdF9ub25fZXRtX2NiYzpNQkVEVExTX0NJUEhFUl9BUklBXzEyOF9DQkM6TUJFRFRMU19NRF9TSEEyNTY6MDotMgogCiBEZWNyeXB0IENCQyAhRXRNLCBBUklBIFNIQTI1NiAhdHJ1bmMsIHBhZGxlbj0wCi1kZXBlbmRzX29uOk1CRURUTFNfU1NMX0hBVkVfQVJJQTpNQkVEVExTX1NTTF9IQVZFX0NCQzpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246TUJFRFRMU19TU0xfSEFWRV9BUklBOk1CRURUTFNfU1NMX0hBVkVfQ0JDOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBzc2xfZGVjcnlwdF9ub25fZXRtX2NiYzpNQkVEVExTX0NJUEhFUl9BUklBXzEyOF9DQkM6TUJFRFRMU19NRF9TSEEyNTY6MDowCiAKIERlY3J5cHQgQ0JDICFFdE0sIEFSSUEgU0hBMjU2ICF0cnVuYywgcGFkbGVuPTI0MAotZGVwZW5kc19vbjpNQkVEVExTX1NTTF9IQVZFX0FSSUE6TUJFRFRMU19TU0xfSEFWRV9DQkM6TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOk1CRURUTFNfU1NMX0hBVkVfQVJJQTpNQkVEVExTX1NTTF9IQVZFX0NCQzpQU0FfV0FOVF9BTEdfU0hBXzI1Ngogc3NsX2RlY3J5cHRfbm9uX2V0bV9jYmM6TUJFRFRMU19DSVBIRVJfQVJJQV8xMjhfQ0JDOk1CRURUTFNfTURfU0hBMjU2OjA6MjQwCiAKIERlY3J5cHQgQ0JDICFFdE0sIEFSSUEgU0hBMjU2ICF0cnVuYywgcGFkbGVuPTEKLWRlcGVuZHNfb246TUJFRFRMU19TU0xfSEFWRV9BUklBOk1CRURUTFNfU1NMX0hBVkVfQ0JDOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpNQkVEVExTX1NTTF9IQVZFX0FSSUE6TUJFRFRMU19TU0xfSEFWRV9DQkM6UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHNzbF9kZWNyeXB0X25vbl9ldG1fY2JjOk1CRURUTFNfQ0lQSEVSX0FSSUFfMTI4X0NCQzpNQkVEVExTX01EX1NIQTI1NjowOjEKIAogRGVjcnlwdCBDQkMgIUV0TSwgQVJJQSBTSEEyNTYgIXRydW5jLCBwYWRsZW49MjQxCi1kZXBlbmRzX29uOk1CRURUTFNfU1NMX0hBVkVfQVJJQTpNQkVEVExTX1NTTF9IQVZFX0NCQzpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246TUJFRFRMU19TU0xfSEFWRV9BUklBOk1CRURUTFNfU1NMX0hBVkVfQ0JDOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBzc2xfZGVjcnlwdF9ub25fZXRtX2NiYzpNQkVEVExTX0NJUEhFUl9BUklBXzEyOF9DQkM6TUJFRFRMU19NRF9TSEEyNTY6MDoyNDEKIAogRGVjcnlwdCBDQkMgIUV0TSwgQVJJQSBTSEEyNTYgIXRydW5jLCBwYWRsZW49MTUKLWRlcGVuZHNfb246TUJFRFRMU19TU0xfSEFWRV9BUklBOk1CRURUTFNfU1NMX0hBVkVfQ0JDOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpNQkVEVExTX1NTTF9IQVZFX0FSSUE6TUJFRFRMU19TU0xfSEFWRV9DQkM6UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHNzbF9kZWNyeXB0X25vbl9ldG1fY2JjOk1CRURUTFNfQ0lQSEVSX0FSSUFfMTI4X0NCQzpNQkVEVExTX01EX1NIQTI1NjowOjE1CiAKIERlY3J5cHQgQ0JDICFFdE0sIEFSSUEgU0hBMjU2ICF0cnVuYywgcGFkbGVuPTI1NQotZGVwZW5kc19vbjpNQkVEVExTX1NTTF9IQVZFX0FSSUE6TUJFRFRMU19TU0xfSEFWRV9DQkM6TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOk1CRURUTFNfU1NMX0hBVkVfQVJJQTpNQkVEVExTX1NTTF9IQVZFX0NCQzpQU0FfV0FOVF9BTEdfU0hBXzI1Ngogc3NsX2RlY3J5cHRfbm9uX2V0bV9jYmM6TUJFRFRMU19DSVBIRVJfQVJJQV8xMjhfQ0JDOk1CRURUTFNfTURfU0hBMjU2OjA6MjU1CiAKIERlY3J5cHQgQ0JDICFFdE0sIEFSSUEgU0hBMzg0ICF0cnVuYywgZW1wdHkgcGxhaW50ZXh0LCBtaW5wYWQKLWRlcGVuZHNfb246TUJFRFRMU19TU0xfSEFWRV9BUklBOk1CRURUTFNfU1NMX0hBVkVfQ0JDOk1CRURUTFNfTURfQ0FOX1NIQTM4NAorZGVwZW5kc19vbjpNQkVEVExTX1NTTF9IQVZFX0FSSUE6TUJFRFRMU19TU0xfSEFWRV9DQkM6UFNBX1dBTlRfQUxHX1NIQV8zODQKIHNzbF9kZWNyeXB0X25vbl9ldG1fY2JjOk1CRURUTFNfQ0lQSEVSX0FSSUFfMTI4X0NCQzpNQkVEVExTX01EX1NIQTM4NDowOi0xCiAKIERlY3J5cHQgQ0JDICFFdE0sIEFSSUEgU0hBMzg0ICF0cnVuYywgZW1wdHkgcGxhaW50ZXh0LCBtYXhwYWQKLWRlcGVuZHNfb246TUJFRFRMU19TU0xfSEFWRV9BUklBOk1CRURUTFNfU1NMX0hBVkVfQ0JDOk1CRURUTFNfTURfQ0FOX1NIQTM4NAorZGVwZW5kc19vbjpNQkVEVExTX1NTTF9IQVZFX0FSSUE6TUJFRFRMU19TU0xfSEFWRV9DQkM6UFNBX1dBTlRfQUxHX1NIQV8zODQKIHNzbF9kZWNyeXB0X25vbl9ldG1fY2JjOk1CRURUTFNfQ0lQSEVSX0FSSUFfMTI4X0NCQzpNQkVEVExTX01EX1NIQTM4NDowOi0yCiAKIERlY3J5cHQgQ0JDICFFdE0sIEFSSUEgU0hBMzg0ICF0cnVuYywgcGFkbGVuPTAKLWRlcGVuZHNfb246TUJFRFRMU19TU0xfSEFWRV9BUklBOk1CRURUTFNfU1NMX0hBVkVfQ0JDOk1CRURUTFNfTURfQ0FOX1NIQTM4NAorZGVwZW5kc19vbjpNQkVEVExTX1NTTF9IQVZFX0FSSUE6TUJFRFRMU19TU0xfSEFWRV9DQkM6UFNBX1dBTlRfQUxHX1NIQV8zODQKIHNzbF9kZWNyeXB0X25vbl9ldG1fY2JjOk1CRURUTFNfQ0lQSEVSX0FSSUFfMTI4X0NCQzpNQkVEVExTX01EX1NIQTM4NDowOjAKIAogRGVjcnlwdCBDQkMgIUV0TSwgQVJJQSBTSEEzODQgIXRydW5jLCBwYWRsZW49MjQwCi1kZXBlbmRzX29uOk1CRURUTFNfU1NMX0hBVkVfQVJJQTpNQkVEVExTX1NTTF9IQVZFX0NCQzpNQkVEVExTX01EX0NBTl9TSEEzODQKK2RlcGVuZHNfb246TUJFRFRMU19TU0xfSEFWRV9BUklBOk1CRURUTFNfU1NMX0hBVkVfQ0JDOlBTQV9XQU5UX0FMR19TSEFfMzg0CiBzc2xfZGVjcnlwdF9ub25fZXRtX2NiYzpNQkVEVExTX0NJUEhFUl9BUklBXzEyOF9DQkM6TUJFRFRMU19NRF9TSEEzODQ6MDoyNDAKIAogRGVjcnlwdCBDQkMgIUV0TSwgQVJJQSBTSEEzODQgIXRydW5jLCBwYWRsZW49MQotZGVwZW5kc19vbjpNQkVEVExTX1NTTF9IQVZFX0FSSUE6TUJFRFRMU19TU0xfSEFWRV9DQkM6TUJFRFRMU19NRF9DQU5fU0hBMzg0CitkZXBlbmRzX29uOk1CRURUTFNfU1NMX0hBVkVfQVJJQTpNQkVEVExTX1NTTF9IQVZFX0NCQzpQU0FfV0FOVF9BTEdfU0hBXzM4NAogc3NsX2RlY3J5cHRfbm9uX2V0bV9jYmM6TUJFRFRMU19DSVBIRVJfQVJJQV8xMjhfQ0JDOk1CRURUTFNfTURfU0hBMzg0OjA6MQogCiBEZWNyeXB0IENCQyAhRXRNLCBBUklBIFNIQTM4NCAhdHJ1bmMsIHBhZGxlbj0yNDEKLWRlcGVuZHNfb246TUJFRFRMU19TU0xfSEFWRV9BUklBOk1CRURUTFNfU1NMX0hBVkVfQ0JDOk1CRURUTFNfTURfQ0FOX1NIQTM4NAorZGVwZW5kc19vbjpNQkVEVExTX1NTTF9IQVZFX0FSSUE6TUJFRFRMU19TU0xfSEFWRV9DQkM6UFNBX1dBTlRfQUxHX1NIQV8zODQKIHNzbF9kZWNyeXB0X25vbl9ldG1fY2JjOk1CRURUTFNfQ0lQSEVSX0FSSUFfMTI4X0NCQzpNQkVEVExTX01EX1NIQTM4NDowOjI0MQogCiBEZWNyeXB0IENCQyAhRXRNLCBBUklBIFNIQTM4NCAhdHJ1bmMsIHBhZGxlbj0xNQotZGVwZW5kc19vbjpNQkVEVExTX1NTTF9IQVZFX0FSSUE6TUJFRFRMU19TU0xfSEFWRV9DQkM6TUJFRFRMU19NRF9DQU5fU0hBMzg0CitkZXBlbmRzX29uOk1CRURUTFNfU1NMX0hBVkVfQVJJQTpNQkVEVExTX1NTTF9IQVZFX0NCQzpQU0FfV0FOVF9BTEdfU0hBXzM4NAogc3NsX2RlY3J5cHRfbm9uX2V0bV9jYmM6TUJFRFRMU19DSVBIRVJfQVJJQV8xMjhfQ0JDOk1CRURUTFNfTURfU0hBMzg0OjA6MTUKIAogRGVjcnlwdCBDQkMgIUV0TSwgQVJJQSBTSEEzODQgIXRydW5jLCBwYWRsZW49MjU1Ci1kZXBlbmRzX29uOk1CRURUTFNfU1NMX0hBVkVfQVJJQTpNQkVEVExTX1NTTF9IQVZFX0NCQzpNQkVEVExTX01EX0NBTl9TSEEzODQKK2RlcGVuZHNfb246TUJFRFRMU19TU0xfSEFWRV9BUklBOk1CRURUTFNfU1NMX0hBVkVfQ0JDOlBTQV9XQU5UX0FMR19TSEFfMzg0CiBzc2xfZGVjcnlwdF9ub25fZXRtX2NiYzpNQkVEVExTX0NJUEhFUl9BUklBXzEyOF9DQkM6TUJFRFRMU19NRF9TSEEzODQ6MDoyNTUKIAogRGVjcnlwdCBDQkMgIUV0TSwgQ0FNRUxMSUEgTUQ1ICF0cnVuYywgZW1wdHkgcGxhaW50ZXh0LCBtaW5wYWQKQEAgLTMzNSw2NSArMzM1LDY1IEBACiBzc2xfZGVjcnlwdF9ub25fZXRtX2NiYzpNQkVEVExTX0NJUEhFUl9DQU1FTExJQV8xMjhfQ0JDOk1CRURUTFNfTURfU0hBMTowOjI1NQogCiBEZWNyeXB0IENCQyAhRXRNLCBDQU1FTExJQSBTSEEyNTYgIXRydW5jLCBlbXB0eSBwbGFpbnRleHQsIG1pbnBhZAotZGVwZW5kc19vbjpNQkVEVExTX1NTTF9IQVZFX0NBTUVMTElBOk1CRURUTFNfU1NMX0hBVkVfQ0JDOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpNQkVEVExTX1NTTF9IQVZFX0NBTUVMTElBOk1CRURUTFNfU1NMX0hBVkVfQ0JDOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBzc2xfZGVjcnlwdF9ub25fZXRtX2NiYzpNQkVEVExTX0NJUEhFUl9DQU1FTExJQV8xMjhfQ0JDOk1CRURUTFNfTURfU0hBMjU2OjA6LTEKIAogRGVjcnlwdCBDQkMgIUV0TSwgQ0FNRUxMSUEgU0hBMjU2ICF0cnVuYywgZW1wdHkgcGxhaW50ZXh0LCBtYXhwYWQKLWRlcGVuZHNfb246TUJFRFRMU19TU0xfSEFWRV9DQU1FTExJQTpNQkVEVExTX1NTTF9IQVZFX0NCQzpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246TUJFRFRMU19TU0xfSEFWRV9DQU1FTExJQTpNQkVEVExTX1NTTF9IQVZFX0NCQzpQU0FfV0FOVF9BTEdfU0hBXzI1Ngogc3NsX2RlY3J5cHRfbm9uX2V0bV9jYmM6TUJFRFRMU19DSVBIRVJfQ0FNRUxMSUFfMTI4X0NCQzpNQkVEVExTX01EX1NIQTI1NjowOi0yCiAKIERlY3J5cHQgQ0JDICFFdE0sIENBTUVMTElBIFNIQTI1NiAhdHJ1bmMsIHBhZGxlbj0wCi1kZXBlbmRzX29uOk1CRURUTFNfU1NMX0hBVkVfQ0FNRUxMSUE6TUJFRFRMU19TU0xfSEFWRV9DQkM6TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOk1CRURUTFNfU1NMX0hBVkVfQ0FNRUxMSUE6TUJFRFRMU19TU0xfSEFWRV9DQkM6UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHNzbF9kZWNyeXB0X25vbl9ldG1fY2JjOk1CRURUTFNfQ0lQSEVSX0NBTUVMTElBXzEyOF9DQkM6TUJFRFRMU19NRF9TSEEyNTY6MDowCiAKIERlY3J5cHQgQ0JDICFFdE0sIENBTUVMTElBIFNIQTI1NiAhdHJ1bmMsIHBhZGxlbj0yNDAKLWRlcGVuZHNfb246TUJFRFRMU19TU0xfSEFWRV9DQU1FTExJQTpNQkVEVExTX1NTTF9IQVZFX0NCQzpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246TUJFRFRMU19TU0xfSEFWRV9DQU1FTExJQTpNQkVEVExTX1NTTF9IQVZFX0NCQzpQU0FfV0FOVF9BTEdfU0hBXzI1Ngogc3NsX2RlY3J5cHRfbm9uX2V0bV9jYmM6TUJFRFRMU19DSVBIRVJfQ0FNRUxMSUFfMTI4X0NCQzpNQkVEVExTX01EX1NIQTI1NjowOjI0MAogCiBEZWNyeXB0IENCQyAhRXRNLCBDQU1FTExJQSBTSEEyNTYgIXRydW5jLCBwYWRsZW49MQotZGVwZW5kc19vbjpNQkVEVExTX1NTTF9IQVZFX0NBTUVMTElBOk1CRURUTFNfU1NMX0hBVkVfQ0JDOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpNQkVEVExTX1NTTF9IQVZFX0NBTUVMTElBOk1CRURUTFNfU1NMX0hBVkVfQ0JDOlBTQV9XQU5UX0FMR19TSEFfMjU2CiBzc2xfZGVjcnlwdF9ub25fZXRtX2NiYzpNQkVEVExTX0NJUEhFUl9DQU1FTExJQV8xMjhfQ0JDOk1CRURUTFNfTURfU0hBMjU2OjA6MQogCiBEZWNyeXB0IENCQyAhRXRNLCBDQU1FTExJQSBTSEEyNTYgIXRydW5jLCBwYWRsZW49MjQxCi1kZXBlbmRzX29uOk1CRURUTFNfU1NMX0hBVkVfQ0FNRUxMSUE6TUJFRFRMU19TU0xfSEFWRV9DQkM6TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOk1CRURUTFNfU1NMX0hBVkVfQ0FNRUxMSUE6TUJFRFRMU19TU0xfSEFWRV9DQkM6UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHNzbF9kZWNyeXB0X25vbl9ldG1fY2JjOk1CRURUTFNfQ0lQSEVSX0NBTUVMTElBXzEyOF9DQkM6TUJFRFRMU19NRF9TSEEyNTY6MDoyNDEKIAogRGVjcnlwdCBDQkMgIUV0TSwgQ0FNRUxMSUEgU0hBMjU2ICF0cnVuYywgcGFkbGVuPTE1Ci1kZXBlbmRzX29uOk1CRURUTFNfU1NMX0hBVkVfQ0FNRUxMSUE6TUJFRFRMU19TU0xfSEFWRV9DQkM6TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOk1CRURUTFNfU1NMX0hBVkVfQ0FNRUxMSUE6TUJFRFRMU19TU0xfSEFWRV9DQkM6UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHNzbF9kZWNyeXB0X25vbl9ldG1fY2JjOk1CRURUTFNfQ0lQSEVSX0NBTUVMTElBXzEyOF9DQkM6TUJFRFRMU19NRF9TSEEyNTY6MDoxNQogCiBEZWNyeXB0IENCQyAhRXRNLCBDQU1FTExJQSBTSEEyNTYgIXRydW5jLCBwYWRsZW49MjU1Ci1kZXBlbmRzX29uOk1CRURUTFNfU1NMX0hBVkVfQ0FNRUxMSUE6TUJFRFRMU19TU0xfSEFWRV9DQkM6TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOk1CRURUTFNfU1NMX0hBVkVfQ0FNRUxMSUE6TUJFRFRMU19TU0xfSEFWRV9DQkM6UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHNzbF9kZWNyeXB0X25vbl9ldG1fY2JjOk1CRURUTFNfQ0lQSEVSX0NBTUVMTElBXzEyOF9DQkM6TUJFRFRMU19NRF9TSEEyNTY6MDoyNTUKIAogRGVjcnlwdCBDQkMgIUV0TSwgQ0FNRUxMSUEgU0hBMzg0ICF0cnVuYywgZW1wdHkgcGxhaW50ZXh0LCBtaW5wYWQKLWRlcGVuZHNfb246TUJFRFRMU19TU0xfSEFWRV9DQU1FTExJQTpNQkVEVExTX1NTTF9IQVZFX0NCQzpNQkVEVExTX01EX0NBTl9TSEEzODQKK2RlcGVuZHNfb246TUJFRFRMU19TU0xfSEFWRV9DQU1FTExJQTpNQkVEVExTX1NTTF9IQVZFX0NCQzpQU0FfV0FOVF9BTEdfU0hBXzM4NAogc3NsX2RlY3J5cHRfbm9uX2V0bV9jYmM6TUJFRFRMU19DSVBIRVJfQ0FNRUxMSUFfMTI4X0NCQzpNQkVEVExTX01EX1NIQTM4NDowOi0xCiAKIERlY3J5cHQgQ0JDICFFdE0sIENBTUVMTElBIFNIQTM4NCAhdHJ1bmMsIGVtcHR5IHBsYWludGV4dCwgbWF4cGFkCi1kZXBlbmRzX29uOk1CRURUTFNfU1NMX0hBVkVfQ0FNRUxMSUE6TUJFRFRMU19TU0xfSEFWRV9DQkM6TUJFRFRMU19NRF9DQU5fU0hBMzg0CitkZXBlbmRzX29uOk1CRURUTFNfU1NMX0hBVkVfQ0FNRUxMSUE6TUJFRFRMU19TU0xfSEFWRV9DQkM6UFNBX1dBTlRfQUxHX1NIQV8zODQKIHNzbF9kZWNyeXB0X25vbl9ldG1fY2JjOk1CRURUTFNfQ0lQSEVSX0NBTUVMTElBXzEyOF9DQkM6TUJFRFRMU19NRF9TSEEzODQ6MDotMgogCiBEZWNyeXB0IENCQyAhRXRNLCBDQU1FTExJQSBTSEEzODQgIXRydW5jLCBwYWRsZW49MAotZGVwZW5kc19vbjpNQkVEVExTX1NTTF9IQVZFX0NBTUVMTElBOk1CRURUTFNfU1NMX0hBVkVfQ0JDOk1CRURUTFNfTURfQ0FOX1NIQTM4NAorZGVwZW5kc19vbjpNQkVEVExTX1NTTF9IQVZFX0NBTUVMTElBOk1CRURUTFNfU1NMX0hBVkVfQ0JDOlBTQV9XQU5UX0FMR19TSEFfMzg0CiBzc2xfZGVjcnlwdF9ub25fZXRtX2NiYzpNQkVEVExTX0NJUEhFUl9DQU1FTExJQV8xMjhfQ0JDOk1CRURUTFNfTURfU0hBMzg0OjA6MAogCiBEZWNyeXB0IENCQyAhRXRNLCBDQU1FTExJQSBTSEEzODQgIXRydW5jLCBwYWRsZW49MjQwCi1kZXBlbmRzX29uOk1CRURUTFNfU1NMX0hBVkVfQ0FNRUxMSUE6TUJFRFRMU19TU0xfSEFWRV9DQkM6TUJFRFRMU19NRF9DQU5fU0hBMzg0CitkZXBlbmRzX29uOk1CRURUTFNfU1NMX0hBVkVfQ0FNRUxMSUE6TUJFRFRMU19TU0xfSEFWRV9DQkM6UFNBX1dBTlRfQUxHX1NIQV8zODQKIHNzbF9kZWNyeXB0X25vbl9ldG1fY2JjOk1CRURUTFNfQ0lQSEVSX0NBTUVMTElBXzEyOF9DQkM6TUJFRFRMU19NRF9TSEEzODQ6MDoyNDAKIAogRGVjcnlwdCBDQkMgIUV0TSwgQ0FNRUxMSUEgU0hBMzg0ICF0cnVuYywgcGFkbGVuPTEKLWRlcGVuZHNfb246TUJFRFRMU19TU0xfSEFWRV9DQU1FTExJQTpNQkVEVExTX1NTTF9IQVZFX0NCQzpNQkVEVExTX01EX0NBTl9TSEEzODQKK2RlcGVuZHNfb246TUJFRFRMU19TU0xfSEFWRV9DQU1FTExJQTpNQkVEVExTX1NTTF9IQVZFX0NCQzpQU0FfV0FOVF9BTEdfU0hBXzM4NAogc3NsX2RlY3J5cHRfbm9uX2V0bV9jYmM6TUJFRFRMU19DSVBIRVJfQ0FNRUxMSUFfMTI4X0NCQzpNQkVEVExTX01EX1NIQTM4NDowOjEKIAogRGVjcnlwdCBDQkMgIUV0TSwgQ0FNRUxMSUEgU0hBMzg0ICF0cnVuYywgcGFkbGVuPTI0MQotZGVwZW5kc19vbjpNQkVEVExTX1NTTF9IQVZFX0NBTUVMTElBOk1CRURUTFNfU1NMX0hBVkVfQ0JDOk1CRURUTFNfTURfQ0FOX1NIQTM4NAorZGVwZW5kc19vbjpNQkVEVExTX1NTTF9IQVZFX0NBTUVMTElBOk1CRURUTFNfU1NMX0hBVkVfQ0JDOlBTQV9XQU5UX0FMR19TSEFfMzg0CiBzc2xfZGVjcnlwdF9ub25fZXRtX2NiYzpNQkVEVExTX0NJUEhFUl9DQU1FTExJQV8xMjhfQ0JDOk1CRURUTFNfTURfU0hBMzg0OjA6MjQxCiAKIERlY3J5cHQgQ0JDICFFdE0sIENBTUVMTElBIFNIQTM4NCAhdHJ1bmMsIHBhZGxlbj0xNQotZGVwZW5kc19vbjpNQkVEVExTX1NTTF9IQVZFX0NBTUVMTElBOk1CRURUTFNfU1NMX0hBVkVfQ0JDOk1CRURUTFNfTURfQ0FOX1NIQTM4NAorZGVwZW5kc19vbjpNQkVEVExTX1NTTF9IQVZFX0NBTUVMTElBOk1CRURUTFNfU1NMX0hBVkVfQ0JDOlBTQV9XQU5UX0FMR19TSEFfMzg0CiBzc2xfZGVjcnlwdF9ub25fZXRtX2NiYzpNQkVEVExTX0NJUEhFUl9DQU1FTExJQV8xMjhfQ0JDOk1CRURUTFNfTURfU0hBMzg0OjA6MTUKIAogRGVjcnlwdCBDQkMgIUV0TSwgQ0FNRUxMSUEgU0hBMzg0ICF0cnVuYywgcGFkbGVuPTI1NQotZGVwZW5kc19vbjpNQkVEVExTX1NTTF9IQVZFX0NBTUVMTElBOk1CRURUTFNfU1NMX0hBVkVfQ0JDOk1CRURUTFNfTURfQ0FOX1NIQTM4NAorZGVwZW5kc19vbjpNQkVEVExTX1NTTF9IQVZFX0NBTUVMTElBOk1CRURUTFNfU1NMX0hBVkVfQ0JDOlBTQV9XQU5UX0FMR19TSEFfMzg0CiBzc2xfZGVjcnlwdF9ub25fZXRtX2NiYzpNQkVEVExTX0NJUEhFUl9DQU1FTExJQV8xMjhfQ0JDOk1CRURUTFNfTURfU0hBMzg0OjA6MjU1CmRpZmYgLS1naXQgYS90ZXN0cy9zdWl0ZXMvdGVzdF9zdWl0ZV94NTA5cGFyc2UuZGF0YSBiL3Rlc3RzL3N1aXRlcy90ZXN0X3N1aXRlX3g1MDlwYXJzZS5kYXRhCmluZGV4IDUwMGM2NzYuLjE0MmVmOWYgMTAwNjQ0Ci0tLSBhL3Rlc3RzL3N1aXRlcy90ZXN0X3N1aXRlX3g1MDlwYXJzZS5kYXRhCisrKyBiL3Rlc3RzL3N1aXRlcy90ZXN0X3N1aXRlX3g1MDlwYXJzZS5kYXRhCkBAIC0xLDQxMCArMSw0MTAgQEAKIFg1MDkgQ1JUIGluZm9ybWF0aW9uICMxCiBkZXBlbmRzX29uOk1CRURUTFNfUEVNX1BBUlNFX0M6TUJFRFRMU19SU0FfQzpNQkVEVExTX01EX0NBTl9TSEExCi14NTA5X2NlcnRfaW5mbzoiZGF0YV9maWxlcy9wYXJzZV9pbnB1dC9zZXJ2ZXIxLmNydCI6ImNlcnQuIHZlcnNpb24gICAgIFw6IDNcbnNlcmlhbCBudW1iZXIgICAgIFw6IDAxXG5pc3N1ZXIgbmFtZSAgICAgICBcOiBDPU5MLCBPPVBvbGFyU1NMLCBDTj1Qb2xhclNTTCBUZXN0IENBXG5zdWJqZWN0IG5hbWUgICAgICBcOiBDPU5MLCBPPVBvbGFyU1NMLCBDTj1Qb2xhclNTTCBTZXJ2ZXIgMVxuaXNzdWVkICBvbiAgICAgICAgXDogMjAxOS0wMi0xMCAxNFw6NDRcOjA2XG5leHBpcmVzIG9uICAgICAgICBcOiAyMDI5LTAyLTEwIDE0XDo0NFw6MDZcbnNpZ25lZCB1c2luZyAgICAgIFw6IFJTQSB3aXRoIFNIQTFcblJTQSBrZXkgc2l6ZSAgICAgIFw6IDIwNDggYml0c1xuYmFzaWMgY29uc3RyYWludHMgXDogQ0E9ZmFsc2VcbiIKK3g1MDlfY2VydF9pbmZvOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9wYXJzZV9pbnB1dC9zZXJ2ZXIxLmNydCI6ImNlcnQuIHZlcnNpb24gICAgIFw6IDNcbnNlcmlhbCBudW1iZXIgICAgIFw6IDAxXG5pc3N1ZXIgbmFtZSAgICAgICBcOiBDPU5MLCBPPVBvbGFyU1NMLCBDTj1Qb2xhclNTTCBUZXN0IENBXG5zdWJqZWN0IG5hbWUgICAgICBcOiBDPU5MLCBPPVBvbGFyU1NMLCBDTj1Qb2xhclNTTCBTZXJ2ZXIgMVxuaXNzdWVkICBvbiAgICAgICAgXDogMjAxOS0wMi0xMCAxNFw6NDRcOjA2XG5leHBpcmVzIG9uICAgICAgICBcOiAyMDI5LTAyLTEwIDE0XDo0NFw6MDZcbnNpZ25lZCB1c2luZyAgICAgIFw6IFJTQSB3aXRoIFNIQTFcblJTQSBrZXkgc2l6ZSAgICAgIFw6IDIwNDggYml0c1xuYmFzaWMgY29uc3RyYWludHMgXDogQ0E9ZmFsc2VcbiIKIAogWDUwOSBDUlQgaW5mb3JtYXRpb24gIzEgKERFUikKIGRlcGVuZHNfb246TUJFRFRMU19SU0FfQzpNQkVEVExTX01EX0NBTl9TSEExCi14NTA5X2NlcnRfaW5mbzoiZGF0YV9maWxlcy9wYXJzZV9pbnB1dC9zZXJ2ZXIxLmNydC5kZXIiOiJjZXJ0LiB2ZXJzaW9uICAgICBcOiAzXG5zZXJpYWwgbnVtYmVyICAgICBcOiAwMVxuaXNzdWVyIG5hbWUgICAgICAgXDogQz1OTCwgTz1Qb2xhclNTTCwgQ049UG9sYXJTU0wgVGVzdCBDQVxuc3ViamVjdCBuYW1lICAgICAgXDogQz1OTCwgTz1Qb2xhclNTTCwgQ049UG9sYXJTU0wgU2VydmVyIDFcbmlzc3VlZCAgb24gICAgICAgIFw6IDIwMTktMDItMTAgMTRcOjQ0XDowNlxuZXhwaXJlcyBvbiAgICAgICAgXDogMjAyOS0wMi0xMCAxNFw6NDRcOjA2XG5zaWduZWQgdXNpbmcgICAgICBcOiBSU0Egd2l0aCBTSEExXG5SU0Ega2V5IHNpemUgICAgICBcOiAyMDQ4IGJpdHNcbmJhc2ljIGNvbnN0cmFpbnRzIFw6IENBPWZhbHNlXG4iCit4NTA5X2NlcnRfaW5mbzoiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvcGFyc2VfaW5wdXQvc2VydmVyMS5jcnQuZGVyIjoiY2VydC4gdmVyc2lvbiAgICAgXDogM1xuc2VyaWFsIG51bWJlciAgICAgXDogMDFcbmlzc3VlciBuYW1lICAgICAgIFw6IEM9TkwsIE89UG9sYXJTU0wsIENOPVBvbGFyU1NMIFRlc3QgQ0FcbnN1YmplY3QgbmFtZSAgICAgIFw6IEM9TkwsIE89UG9sYXJTU0wsIENOPVBvbGFyU1NMIFNlcnZlciAxXG5pc3N1ZWQgIG9uICAgICAgICBcOiAyMDE5LTAyLTEwIDE0XDo0NFw6MDZcbmV4cGlyZXMgb24gICAgICAgIFw6IDIwMjktMDItMTAgMTRcOjQ0XDowNlxuc2lnbmVkIHVzaW5nICAgICAgXDogUlNBIHdpdGggU0hBMVxuUlNBIGtleSBzaXplICAgICAgXDogMjA0OCBiaXRzXG5iYXNpYyBjb25zdHJhaW50cyBcOiBDQT1mYWxzZVxuIgogCiBYNTA5IENSVCBpbmZvcm1hdGlvbiAjMgogZGVwZW5kc19vbjpNQkVEVExTX1BFTV9QQVJTRV9DOk1CRURUTFNfUlNBX0M6TUJFRFRMU19NRF9DQU5fU0hBMQoteDUwOV9jZXJ0X2luZm86ImRhdGFfZmlsZXMvcGFyc2VfaW5wdXQvc2VydmVyMi5jcnQiOiJjZXJ0LiB2ZXJzaW9uICAgICBcOiAzXG5zZXJpYWwgbnVtYmVyICAgICBcOiAwMlxuaXNzdWVyIG5hbWUgICAgICAgXDogQz1OTCwgTz1Qb2xhclNTTCwgQ049UG9sYXJTU0wgVGVzdCBDQVxuc3ViamVjdCBuYW1lICAgICAgXDogQz1OTCwgTz1Qb2xhclNTTCwgQ049bG9jYWxob3N0XG5pc3N1ZWQgIG9uICAgICAgICBcOiAyMDE5LTAyLTEwIDE0XDo0NFw6MDZcbmV4cGlyZXMgb24gICAgICAgIFw6IDIwMjktMDItMTAgMTRcOjQ0XDowNlxuc2lnbmVkIHVzaW5nICAgICAgXDogUlNBIHdpdGggU0hBMVxuUlNBIGtleSBzaXplICAgICAgXDogMjA0OCBiaXRzXG5iYXNpYyBjb25zdHJhaW50cyBcOiBDQT1mYWxzZVxuIgoreDUwOV9jZXJ0X2luZm86Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3BhcnNlX2lucHV0L3NlcnZlcjIuY3J0IjoiY2VydC4gdmVyc2lvbiAgICAgXDogM1xuc2VyaWFsIG51bWJlciAgICAgXDogMDJcbmlzc3VlciBuYW1lICAgICAgIFw6IEM9TkwsIE89UG9sYXJTU0wsIENOPVBvbGFyU1NMIFRlc3QgQ0FcbnN1YmplY3QgbmFtZSAgICAgIFw6IEM9TkwsIE89UG9sYXJTU0wsIENOPWxvY2FsaG9zdFxuaXNzdWVkICBvbiAgICAgICAgXDogMjAxOS0wMi0xMCAxNFw6NDRcOjA2XG5leHBpcmVzIG9uICAgICAgICBcOiAyMDI5LTAyLTEwIDE0XDo0NFw6MDZcbnNpZ25lZCB1c2luZyAgICAgIFw6IFJTQSB3aXRoIFNIQTFcblJTQSBrZXkgc2l6ZSAgICAgIFw6IDIwNDggYml0c1xuYmFzaWMgY29uc3RyYWludHMgXDogQ0E9ZmFsc2VcbiIKIAogWDUwOSBDUlQgaW5mb3JtYXRpb24gIzIgKERFUikKIGRlcGVuZHNfb246TUJFRFRMU19SU0FfQzpNQkVEVExTX01EX0NBTl9TSEExCi14NTA5X2NlcnRfaW5mbzoiZGF0YV9maWxlcy9wYXJzZV9pbnB1dC9zZXJ2ZXIyLmNydC5kZXIiOiJjZXJ0LiB2ZXJzaW9uICAgICBcOiAzXG5zZXJpYWwgbnVtYmVyICAgICBcOiAwMlxuaXNzdWVyIG5hbWUgICAgICAgXDogQz1OTCwgTz1Qb2xhclNTTCwgQ049UG9sYXJTU0wgVGVzdCBDQVxuc3ViamVjdCBuYW1lICAgICAgXDogQz1OTCwgTz1Qb2xhclNTTCwgQ049bG9jYWxob3N0XG5pc3N1ZWQgIG9uICAgICAgICBcOiAyMDE5LTAyLTEwIDE0XDo0NFw6MDZcbmV4cGlyZXMgb24gICAgICAgIFw6IDIwMjktMDItMTAgMTRcOjQ0XDowNlxuc2lnbmVkIHVzaW5nICAgICAgXDogUlNBIHdpdGggU0hBMVxuUlNBIGtleSBzaXplICAgICAgXDogMjA0OCBiaXRzXG5iYXNpYyBjb25zdHJhaW50cyBcOiBDQT1mYWxzZVxuIgoreDUwOV9jZXJ0X2luZm86Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3BhcnNlX2lucHV0L3NlcnZlcjIuY3J0LmRlciI6ImNlcnQuIHZlcnNpb24gICAgIFw6IDNcbnNlcmlhbCBudW1iZXIgICAgIFw6IDAyXG5pc3N1ZXIgbmFtZSAgICAgICBcOiBDPU5MLCBPPVBvbGFyU1NMLCBDTj1Qb2xhclNTTCBUZXN0IENBXG5zdWJqZWN0IG5hbWUgICAgICBcOiBDPU5MLCBPPVBvbGFyU1NMLCBDTj1sb2NhbGhvc3Rcbmlzc3VlZCAgb24gICAgICAgIFw6IDIwMTktMDItMTAgMTRcOjQ0XDowNlxuZXhwaXJlcyBvbiAgICAgICAgXDogMjAyOS0wMi0xMCAxNFw6NDRcOjA2XG5zaWduZWQgdXNpbmcgICAgICBcOiBSU0Egd2l0aCBTSEExXG5SU0Ega2V5IHNpemUgICAgICBcOiAyMDQ4IGJpdHNcbmJhc2ljIGNvbnN0cmFpbnRzIFw6IENBPWZhbHNlXG4iCiAKIFg1MDkgQ1JUIGluZm9ybWF0aW9uICMzCiBkZXBlbmRzX29uOk1CRURUTFNfUEVNX1BBUlNFX0M6TUJFRFRMU19SU0FfQzpNQkVEVExTX01EX0NBTl9TSEExCi14NTA5X2NlcnRfaW5mbzoiZGF0YV9maWxlcy9wYXJzZV9pbnB1dC90ZXN0LWNhLmNydCI6ImNlcnQuIHZlcnNpb24gICAgIFw6IDNcbnNlcmlhbCBudW1iZXIgICAgIFw6IDAzXG5pc3N1ZXIgbmFtZSAgICAgICBcOiBDPU5MLCBPPVBvbGFyU1NMLCBDTj1Qb2xhclNTTCBUZXN0IENBXG5zdWJqZWN0IG5hbWUgICAgICBcOiBDPU5MLCBPPVBvbGFyU1NMLCBDTj1Qb2xhclNTTCBUZXN0IENBXG5pc3N1ZWQgIG9uICAgICAgICBcOiAyMDE5LTAyLTEwIDE0XDo0NFw6MDBcbmV4cGlyZXMgb24gICAgICAgIFw6IDIwMjktMDItMTAgMTRcOjQ0XDowMFxuc2lnbmVkIHVzaW5nICAgICAgXDogUlNBIHdpdGggU0hBMVxuUlNBIGtleSBzaXplICAgICAgXDogMjA0OCBiaXRzXG5iYXNpYyBjb25zdHJhaW50cyBcOiBDQT10cnVlXG4iCit4NTA5X2NlcnRfaW5mbzoiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvcGFyc2VfaW5wdXQvdGVzdC1jYS5jcnQiOiJjZXJ0LiB2ZXJzaW9uICAgICBcOiAzXG5zZXJpYWwgbnVtYmVyICAgICBcOiAwM1xuaXNzdWVyIG5hbWUgICAgICAgXDogQz1OTCwgTz1Qb2xhclNTTCwgQ049UG9sYXJTU0wgVGVzdCBDQVxuc3ViamVjdCBuYW1lICAgICAgXDogQz1OTCwgTz1Qb2xhclNTTCwgQ049UG9sYXJTU0wgVGVzdCBDQVxuaXNzdWVkICBvbiAgICAgICAgXDogMjAxOS0wMi0xMCAxNFw6NDRcOjAwXG5leHBpcmVzIG9uICAgICAgICBcOiAyMDI5LTAyLTEwIDE0XDo0NFw6MDBcbnNpZ25lZCB1c2luZyAgICAgIFw6IFJTQSB3aXRoIFNIQTFcblJTQSBrZXkgc2l6ZSAgICAgIFw6IDIwNDggYml0c1xuYmFzaWMgY29uc3RyYWludHMgXDogQ0E9dHJ1ZVxuIgogCiBYNTA5IENSVCBpbmZvcm1hdGlvbiAjMyAoREVSKQogZGVwZW5kc19vbjpNQkVEVExTX1JTQV9DOk1CRURUTFNfTURfQ0FOX1NIQTEKLXg1MDlfY2VydF9pbmZvOiJkYXRhX2ZpbGVzL3BhcnNlX2lucHV0L3Rlc3QtY2EuY3J0LmRlciI6ImNlcnQuIHZlcnNpb24gICAgIFw6IDNcbnNlcmlhbCBudW1iZXIgICAgIFw6IDAzXG5pc3N1ZXIgbmFtZSAgICAgICBcOiBDPU5MLCBPPVBvbGFyU1NMLCBDTj1Qb2xhclNTTCBUZXN0IENBXG5zdWJqZWN0IG5hbWUgICAgICBcOiBDPU5MLCBPPVBvbGFyU1NMLCBDTj1Qb2xhclNTTCBUZXN0IENBXG5pc3N1ZWQgIG9uICAgICAgICBcOiAyMDE5LTAyLTEwIDE0XDo0NFw6MDBcbmV4cGlyZXMgb24gICAgICAgIFw6IDIwMjktMDItMTAgMTRcOjQ0XDowMFxuc2lnbmVkIHVzaW5nICAgICAgXDogUlNBIHdpdGggU0hBMVxuUlNBIGtleSBzaXplICAgICAgXDogMjA0OCBiaXRzXG5iYXNpYyBjb25zdHJhaW50cyBcOiBDQT10cnVlXG4iCit4NTA5X2NlcnRfaW5mbzoiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvcGFyc2VfaW5wdXQvdGVzdC1jYS5jcnQuZGVyIjoiY2VydC4gdmVyc2lvbiAgICAgXDogM1xuc2VyaWFsIG51bWJlciAgICAgXDogMDNcbmlzc3VlciBuYW1lICAgICAgIFw6IEM9TkwsIE89UG9sYXJTU0wsIENOPVBvbGFyU1NMIFRlc3QgQ0FcbnN1YmplY3QgbmFtZSAgICAgIFw6IEM9TkwsIE89UG9sYXJTU0wsIENOPVBvbGFyU1NMIFRlc3QgQ0Fcbmlzc3VlZCAgb24gICAgICAgIFw6IDIwMTktMDItMTAgMTRcOjQ0XDowMFxuZXhwaXJlcyBvbiAgICAgICAgXDogMjAyOS0wMi0xMCAxNFw6NDRcOjAwXG5zaWduZWQgdXNpbmcgICAgICBcOiBSU0Egd2l0aCBTSEExXG5SU0Ega2V5IHNpemUgICAgICBcOiAyMDQ4IGJpdHNcbmJhc2ljIGNvbnN0cmFpbnRzIFw6IENBPXRydWVcbiIKIAogWDUwOSBDUlQgaW5mb3JtYXRpb24gTUQ1IERpZ2VzdAogZGVwZW5kc19vbjpNQkVEVExTX1BFTV9QQVJTRV9DOk1CRURUTFNfUlNBX0M6TUJFRFRMU19NRF9DQU5fTUQ1Ci14NTA5X2NlcnRfaW5mbzoiZGF0YV9maWxlcy9wYXJzZV9pbnB1dC9jZXJ0X21kNS5jcnQiOiJjZXJ0LiB2ZXJzaW9uICAgICBcOiAzXG5zZXJpYWwgbnVtYmVyICAgICBcOiAwNlxuaXNzdWVyIG5hbWUgICAgICAgXDogQz1OTCwgTz1Qb2xhclNTTCwgQ049UG9sYXJTU0wgVGVzdCBDQVxuc3ViamVjdCBuYW1lICAgICAgXDogQz1OTCwgTz1Qb2xhclNTTCwgQ049UG9sYXJTU0wgQ2VydCBNRDVcbmlzc3VlZCAgb24gICAgICAgIFw6IDIwMDAtMDEtMDEgMTJcOjEyXDoxMlxuZXhwaXJlcyBvbiAgICAgICAgXDogMjAzMC0wMS0wMSAxMlw6MTJcOjEyXG5zaWduZWQgdXNpbmcgICAgICBcOiBSU0Egd2l0aCBNRDVcblJTQSBrZXkgc2l6ZSAgICAgIFw6IDIwNDggYml0c1xuYmFzaWMgY29uc3RyYWludHMgXDogQ0E9ZmFsc2VcbiIKK3g1MDlfY2VydF9pbmZvOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9wYXJzZV9pbnB1dC9jZXJ0X21kNS5jcnQiOiJjZXJ0LiB2ZXJzaW9uICAgICBcOiAzXG5zZXJpYWwgbnVtYmVyICAgICBcOiAwNlxuaXNzdWVyIG5hbWUgICAgICAgXDogQz1OTCwgTz1Qb2xhclNTTCwgQ049UG9sYXJTU0wgVGVzdCBDQVxuc3ViamVjdCBuYW1lICAgICAgXDogQz1OTCwgTz1Qb2xhclNTTCwgQ049UG9sYXJTU0wgQ2VydCBNRDVcbmlzc3VlZCAgb24gICAgICAgIFw6IDIwMDAtMDEtMDEgMTJcOjEyXDoxMlxuZXhwaXJlcyBvbiAgICAgICAgXDogMjAzMC0wMS0wMSAxMlw6MTJcOjEyXG5zaWduZWQgdXNpbmcgICAgICBcOiBSU0Egd2l0aCBNRDVcblJTQSBrZXkgc2l6ZSAgICAgIFw6IDIwNDggYml0c1xuYmFzaWMgY29uc3RyYWludHMgXDogQ0E9ZmFsc2VcbiIKIAogWDUwOSBDUlQgaW5mb3JtYXRpb24gU0hBMSBEaWdlc3QKIGRlcGVuZHNfb246TUJFRFRMU19QRU1fUEFSU0VfQzpNQkVEVExTX1JTQV9DOk1CRURUTFNfTURfQ0FOX1NIQTEKLXg1MDlfY2VydF9pbmZvOiJkYXRhX2ZpbGVzL3BhcnNlX2lucHV0L2NlcnRfc2hhMS5jcnQiOiJjZXJ0LiB2ZXJzaW9uICAgICBcOiAzXG5zZXJpYWwgbnVtYmVyICAgICBcOiAwN1xuaXNzdWVyIG5hbWUgICAgICAgXDogQz1OTCwgTz1Qb2xhclNTTCwgQ049UG9sYXJTU0wgVGVzdCBDQVxuc3ViamVjdCBuYW1lICAgICAgXDogQz1OTCwgTz1Qb2xhclNTTCwgQ049UG9sYXJTU0wgQ2VydCBTSEExXG5pc3N1ZWQgIG9uICAgICAgICBcOiAyMDE5LTAyLTEwIDE0XDo0NFw6MDZcbmV4cGlyZXMgb24gICAgICAgIFw6IDIwMjktMDItMTAgMTRcOjQ0XDowNlxuc2lnbmVkIHVzaW5nICAgICAgXDogUlNBIHdpdGggU0hBMVxuUlNBIGtleSBzaXplICAgICAgXDogMjA0OCBiaXRzXG5iYXNpYyBjb25zdHJhaW50cyBcOiBDQT1mYWxzZVxuIgoreDUwOV9jZXJ0X2luZm86Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3BhcnNlX2lucHV0L2NlcnRfc2hhMS5jcnQiOiJjZXJ0LiB2ZXJzaW9uICAgICBcOiAzXG5zZXJpYWwgbnVtYmVyICAgICBcOiAwN1xuaXNzdWVyIG5hbWUgICAgICAgXDogQz1OTCwgTz1Qb2xhclNTTCwgQ049UG9sYXJTU0wgVGVzdCBDQVxuc3ViamVjdCBuYW1lICAgICAgXDogQz1OTCwgTz1Qb2xhclNTTCwgQ049UG9sYXJTU0wgQ2VydCBTSEExXG5pc3N1ZWQgIG9uICAgICAgICBcOiAyMDE5LTAyLTEwIDE0XDo0NFw6MDZcbmV4cGlyZXMgb24gICAgICAgIFw6IDIwMjktMDItMTAgMTRcOjQ0XDowNlxuc2lnbmVkIHVzaW5nICAgICAgXDogUlNBIHdpdGggU0hBMVxuUlNBIGtleSBzaXplICAgICAgXDogMjA0OCBiaXRzXG5iYXNpYyBjb25zdHJhaW50cyBcOiBDQT1mYWxzZVxuIgogCiBYNTA5IENSVCBpbmZvcm1hdGlvbiBTSEEyMjQgRGlnZXN0Ci1kZXBlbmRzX29uOk1CRURUTFNfUEVNX1BBUlNFX0M6TUJFRFRMU19SU0FfQzpNQkVEVExTX01EX0NBTl9TSEEyMjQKLXg1MDlfY2VydF9pbmZvOiJkYXRhX2ZpbGVzL3BhcnNlX2lucHV0L2NlcnRfc2hhMjI0LmNydCI6ImNlcnQuIHZlcnNpb24gICAgIFw6IDNcbnNlcmlhbCBudW1iZXIgICAgIFw6IDA4XG5pc3N1ZXIgbmFtZSAgICAgICBcOiBDPU5MLCBPPVBvbGFyU1NMLCBDTj1Qb2xhclNTTCBUZXN0IENBXG5zdWJqZWN0IG5hbWUgICAgICBcOiBDPU5MLCBPPVBvbGFyU1NMLCBDTj1Qb2xhclNTTCBDZXJ0IFNIQTIyNFxuaXNzdWVkICBvbiAgICAgICAgXDogMjAxOS0wMi0xMCAxNFw6NDRcOjA2XG5leHBpcmVzIG9uICAgICAgICBcOiAyMDI5LTAyLTEwIDE0XDo0NFw6MDZcbnNpZ25lZCB1c2luZyAgICAgIFw6IFJTQSB3aXRoIFNIQS0yMjRcblJTQSBrZXkgc2l6ZSAgICAgIFw6IDIwNDggYml0c1xuYmFzaWMgY29uc3RyYWludHMgXDogQ0E9ZmFsc2VcbiIKK2RlcGVuZHNfb246TUJFRFRMU19QRU1fUEFSU0VfQzpNQkVEVExTX1JTQV9DOlBTQV9XQU5UX0FMR19TSEFfMjI0Cit4NTA5X2NlcnRfaW5mbzoiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvcGFyc2VfaW5wdXQvY2VydF9zaGEyMjQuY3J0IjoiY2VydC4gdmVyc2lvbiAgICAgXDogM1xuc2VyaWFsIG51bWJlciAgICAgXDogMDhcbmlzc3VlciBuYW1lICAgICAgIFw6IEM9TkwsIE89UG9sYXJTU0wsIENOPVBvbGFyU1NMIFRlc3QgQ0FcbnN1YmplY3QgbmFtZSAgICAgIFw6IEM9TkwsIE89UG9sYXJTU0wsIENOPVBvbGFyU1NMIENlcnQgU0hBMjI0XG5pc3N1ZWQgIG9uICAgICAgICBcOiAyMDE5LTAyLTEwIDE0XDo0NFw6MDZcbmV4cGlyZXMgb24gICAgICAgIFw6IDIwMjktMDItMTAgMTRcOjQ0XDowNlxuc2lnbmVkIHVzaW5nICAgICAgXDogUlNBIHdpdGggU0hBLTIyNFxuUlNBIGtleSBzaXplICAgICAgXDogMjA0OCBiaXRzXG5iYXNpYyBjb25zdHJhaW50cyBcOiBDQT1mYWxzZVxuIgogCiBYNTA5IENSVCBpbmZvcm1hdGlvbiBTSEEyNTYgRGlnZXN0Ci1kZXBlbmRzX29uOk1CRURUTFNfUEVNX1BBUlNFX0M6TUJFRFRMU19SU0FfQzpNQkVEVExTX01EX0NBTl9TSEEyNTYKLXg1MDlfY2VydF9pbmZvOiJkYXRhX2ZpbGVzL3BhcnNlX2lucHV0L2NlcnRfc2hhMjU2LmNydCI6ImNlcnQuIHZlcnNpb24gICAgIFw6IDNcbnNlcmlhbCBudW1iZXIgICAgIFw6IDA5XG5pc3N1ZXIgbmFtZSAgICAgICBcOiBDPU5MLCBPPVBvbGFyU1NMLCBDTj1Qb2xhclNTTCBUZXN0IENBXG5zdWJqZWN0IG5hbWUgICAgICBcOiBDPU5MLCBPPVBvbGFyU1NMLCBDTj1Qb2xhclNTTCBDZXJ0IFNIQTI1NlxuaXNzdWVkICBvbiAgICAgICAgXDogMjAxOS0wMi0xMCAxNFw6NDRcOjA2XG5leHBpcmVzIG9uICAgICAgICBcOiAyMDI5LTAyLTEwIDE0XDo0NFw6MDZcbnNpZ25lZCB1c2luZyAgICAgIFw6IFJTQSB3aXRoIFNIQS0yNTZcblJTQSBrZXkgc2l6ZSAgICAgIFw6IDIwNDggYml0c1xuYmFzaWMgY29uc3RyYWludHMgXDogQ0E9ZmFsc2VcbiIKK2RlcGVuZHNfb246TUJFRFRMU19QRU1fUEFSU0VfQzpNQkVEVExTX1JTQV9DOlBTQV9XQU5UX0FMR19TSEFfMjU2Cit4NTA5X2NlcnRfaW5mbzoiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvcGFyc2VfaW5wdXQvY2VydF9zaGEyNTYuY3J0IjoiY2VydC4gdmVyc2lvbiAgICAgXDogM1xuc2VyaWFsIG51bWJlciAgICAgXDogMDlcbmlzc3VlciBuYW1lICAgICAgIFw6IEM9TkwsIE89UG9sYXJTU0wsIENOPVBvbGFyU1NMIFRlc3QgQ0FcbnN1YmplY3QgbmFtZSAgICAgIFw6IEM9TkwsIE89UG9sYXJTU0wsIENOPVBvbGFyU1NMIENlcnQgU0hBMjU2XG5pc3N1ZWQgIG9uICAgICAgICBcOiAyMDE5LTAyLTEwIDE0XDo0NFw6MDZcbmV4cGlyZXMgb24gICAgICAgIFw6IDIwMjktMDItMTAgMTRcOjQ0XDowNlxuc2lnbmVkIHVzaW5nICAgICAgXDogUlNBIHdpdGggU0hBLTI1NlxuUlNBIGtleSBzaXplICAgICAgXDogMjA0OCBiaXRzXG5iYXNpYyBjb25zdHJhaW50cyBcOiBDQT1mYWxzZVxuIgogCiBYNTA5IENSVCBpbmZvcm1hdGlvbiBTSEEzODQgRGlnZXN0Ci1kZXBlbmRzX29uOk1CRURUTFNfUEVNX1BBUlNFX0M6TUJFRFRMU19SU0FfQzpNQkVEVExTX01EX0NBTl9TSEEzODQKLXg1MDlfY2VydF9pbmZvOiJkYXRhX2ZpbGVzL3BhcnNlX2lucHV0L2NlcnRfc2hhMzg0LmNydCI6ImNlcnQuIHZlcnNpb24gICAgIFw6IDNcbnNlcmlhbCBudW1iZXIgICAgIFw6IDBBXG5pc3N1ZXIgbmFtZSAgICAgICBcOiBDPU5MLCBPPVBvbGFyU1NMLCBDTj1Qb2xhclNTTCBUZXN0IENBXG5zdWJqZWN0IG5hbWUgICAgICBcOiBDPU5MLCBPPVBvbGFyU1NMLCBDTj1Qb2xhclNTTCBDZXJ0IFNIQTM4NFxuaXNzdWVkICBvbiAgICAgICAgXDogMjAxOS0wMi0xMCAxNFw6NDRcOjA2XG5leHBpcmVzIG9uICAgICAgICBcOiAyMDI5LTAyLTEwIDE0XDo0NFw6MDZcbnNpZ25lZCB1c2luZyAgICAgIFw6IFJTQSB3aXRoIFNIQS0zODRcblJTQSBrZXkgc2l6ZSAgICAgIFw6IDIwNDggYml0c1xuYmFzaWMgY29uc3RyYWludHMgXDogQ0E9ZmFsc2VcbiIKK2RlcGVuZHNfb246TUJFRFRMU19QRU1fUEFSU0VfQzpNQkVEVExTX1JTQV9DOlBTQV9XQU5UX0FMR19TSEFfMzg0Cit4NTA5X2NlcnRfaW5mbzoiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvcGFyc2VfaW5wdXQvY2VydF9zaGEzODQuY3J0IjoiY2VydC4gdmVyc2lvbiAgICAgXDogM1xuc2VyaWFsIG51bWJlciAgICAgXDogMEFcbmlzc3VlciBuYW1lICAgICAgIFw6IEM9TkwsIE89UG9sYXJTU0wsIENOPVBvbGFyU1NMIFRlc3QgQ0FcbnN1YmplY3QgbmFtZSAgICAgIFw6IEM9TkwsIE89UG9sYXJTU0wsIENOPVBvbGFyU1NMIENlcnQgU0hBMzg0XG5pc3N1ZWQgIG9uICAgICAgICBcOiAyMDE5LTAyLTEwIDE0XDo0NFw6MDZcbmV4cGlyZXMgb24gICAgICAgIFw6IDIwMjktMDItMTAgMTRcOjQ0XDowNlxuc2lnbmVkIHVzaW5nICAgICAgXDogUlNBIHdpdGggU0hBLTM4NFxuUlNBIGtleSBzaXplICAgICAgXDogMjA0OCBiaXRzXG5iYXNpYyBjb25zdHJhaW50cyBcOiBDQT1mYWxzZVxuIgogCiBYNTA5IENSVCBpbmZvcm1hdGlvbiBTSEE1MTIgRGlnZXN0CiBkZXBlbmRzX29uOk1CRURUTFNfUEVNX1BBUlNFX0M6TUJFRFRMU19SU0FfQzpNQkVEVExTX01EX0NBTl9TSEE1MTIKLXg1MDlfY2VydF9pbmZvOiJkYXRhX2ZpbGVzL3BhcnNlX2lucHV0L2NlcnRfc2hhNTEyLmNydCI6ImNlcnQuIHZlcnNpb24gICAgIFw6IDNcbnNlcmlhbCBudW1iZXIgICAgIFw6IDBCXG5pc3N1ZXIgbmFtZSAgICAgICBcOiBDPU5MLCBPPVBvbGFyU1NMLCBDTj1Qb2xhclNTTCBUZXN0IENBXG5zdWJqZWN0IG5hbWUgICAgICBcOiBDPU5MLCBPPVBvbGFyU1NMLCBDTj1Qb2xhclNTTCBDZXJ0IFNIQTUxMlxuaXNzdWVkICBvbiAgICAgICAgXDogMjAxOS0wMi0xMCAxNFw6NDRcOjA2XG5leHBpcmVzIG9uICAgICAgICBcOiAyMDI5LTAyLTEwIDE0XDo0NFw6MDZcbnNpZ25lZCB1c2luZyAgICAgIFw6IFJTQSB3aXRoIFNIQS01MTJcblJTQSBrZXkgc2l6ZSAgICAgIFw6IDIwNDggYml0c1xuYmFzaWMgY29uc3RyYWludHMgXDogQ0E9ZmFsc2VcbiIKK3g1MDlfY2VydF9pbmZvOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9wYXJzZV9pbnB1dC9jZXJ0X3NoYTUxMi5jcnQiOiJjZXJ0LiB2ZXJzaW9uICAgICBcOiAzXG5zZXJpYWwgbnVtYmVyICAgICBcOiAwQlxuaXNzdWVyIG5hbWUgICAgICAgXDogQz1OTCwgTz1Qb2xhclNTTCwgQ049UG9sYXJTU0wgVGVzdCBDQVxuc3ViamVjdCBuYW1lICAgICAgXDogQz1OTCwgTz1Qb2xhclNTTCwgQ049UG9sYXJTU0wgQ2VydCBTSEE1MTJcbmlzc3VlZCAgb24gICAgICAgIFw6IDIwMTktMDItMTAgMTRcOjQ0XDowNlxuZXhwaXJlcyBvbiAgICAgICAgXDogMjAyOS0wMi0xMCAxNFw6NDRcOjA2XG5zaWduZWQgdXNpbmcgICAgICBcOiBSU0Egd2l0aCBTSEEtNTEyXG5SU0Ega2V5IHNpemUgICAgICBcOiAyMDQ4IGJpdHNcbmJhc2ljIGNvbnN0cmFpbnRzIFw6IENBPWZhbHNlXG4iCiAKIFg1MDkgQ1JUIGluZm9ybWF0aW9uIFJTQS1QU1MsIFNIQTEgRGlnZXN0CiBkZXBlbmRzX29uOk1CRURUTFNfUEVNX1BBUlNFX0M6TUJFRFRMU19YNTA5X1JTQVNTQV9QU1NfU1VQUE9SVDpNQkVEVExTX01EX0NBTl9TSEExCi14NTA5X2NlcnRfaW5mbzoiZGF0YV9maWxlcy9wYXJzZV9pbnB1dC9zZXJ2ZXI5LmNydCI6ImNlcnQuIHZlcnNpb24gICAgIFw6IDNcbnNlcmlhbCBudW1iZXIgICAgIFw6IDE2XG5pc3N1ZXIgbmFtZSAgICAgICBcOiBDPU5MLCBPPVBvbGFyU1NMLCBDTj1Qb2xhclNTTCBUZXN0IENBXG5zdWJqZWN0IG5hbWUgICAgICBcOiBDPU5MLCBPPVBvbGFyU1NMLCBDTj1sb2NhbGhvc3Rcbmlzc3VlZCAgb24gICAgICAgIFw6IDIwMTQtMDEtMjAgMTNcOjM4XDoxNlxuZXhwaXJlcyBvbiAgICAgICAgXDogMjAyNC0wMS0xOCAxM1w6MzhcOjE2XG5zaWduZWQgdXNpbmcgICAgICBcOiBSU0FTU0EtUFNTIChTSEExLCBNR0YxLVNIQTEsIDB4RUEpXG5SU0Ega2V5IHNpemUgICAgICBcOiAxMDI0IGJpdHNcbmJhc2ljIGNvbnN0cmFpbnRzIFw6IENBPWZhbHNlXG4iCit4NTA5X2NlcnRfaW5mbzoiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvcGFyc2VfaW5wdXQvc2VydmVyOS5jcnQiOiJjZXJ0LiB2ZXJzaW9uICAgICBcOiAzXG5zZXJpYWwgbnVtYmVyICAgICBcOiAxNlxuaXNzdWVyIG5hbWUgICAgICAgXDogQz1OTCwgTz1Qb2xhclNTTCwgQ049UG9sYXJTU0wgVGVzdCBDQVxuc3ViamVjdCBuYW1lICAgICAgXDogQz1OTCwgTz1Qb2xhclNTTCwgQ049bG9jYWxob3N0XG5pc3N1ZWQgIG9uICAgICAgICBcOiAyMDE0LTAxLTIwIDEzXDozOFw6MTZcbmV4cGlyZXMgb24gICAgICAgIFw6IDIwMjQtMDEtMTggMTNcOjM4XDoxNlxuc2lnbmVkIHVzaW5nICAgICAgXDogUlNBU1NBLVBTUyAoU0hBMSwgTUdGMS1TSEExLCAweEVBKVxuUlNBIGtleSBzaXplICAgICAgXDogMTAyNCBiaXRzXG5iYXNpYyBjb25zdHJhaW50cyBcOiBDQT1mYWxzZVxuIgogCiBYNTA5IENSVCBpbmZvcm1hdGlvbiBSU0EtUFNTLCBTSEEyMjQgRGlnZXN0Ci1kZXBlbmRzX29uOk1CRURUTFNfUEVNX1BBUlNFX0M6TUJFRFRMU19YNTA5X1JTQVNTQV9QU1NfU1VQUE9SVDpNQkVEVExTX01EX0NBTl9TSEEyMjQKLXg1MDlfY2VydF9pbmZvOiJkYXRhX2ZpbGVzL3BhcnNlX2lucHV0L3NlcnZlcjktc2hhMjI0LmNydCI6ImNlcnQuIHZlcnNpb24gICAgIFw6IDNcbnNlcmlhbCBudW1iZXIgICAgIFw6IDE3XG5pc3N1ZXIgbmFtZSAgICAgICBcOiBDPU5MLCBPPVBvbGFyU1NMLCBDTj1Qb2xhclNTTCBUZXN0IENBXG5zdWJqZWN0IG5hbWUgICAgICBcOiBDPU5MLCBPPVBvbGFyU1NMLCBDTj1sb2NhbGhvc3Rcbmlzc3VlZCAgb24gICAgICAgIFw6IDIwMTQtMDEtMjAgMTNcOjU3XDozNlxuZXhwaXJlcyBvbiAgICAgICAgXDogMjAyNC0wMS0xOCAxM1w6NTdcOjM2XG5zaWduZWQgdXNpbmcgICAgICBcOiBSU0FTU0EtUFNTIChTSEEyMjQsIE1HRjEtU0hBMjI0LCAweEUyKVxuUlNBIGtleSBzaXplICAgICAgXDogMTAyNCBiaXRzXG5iYXNpYyBjb25zdHJhaW50cyBcOiBDQT1mYWxzZVxuIgorZGVwZW5kc19vbjpNQkVEVExTX1BFTV9QQVJTRV9DOk1CRURUTFNfWDUwOV9SU0FTU0FfUFNTX1NVUFBPUlQ6UFNBX1dBTlRfQUxHX1NIQV8yMjQKK3g1MDlfY2VydF9pbmZvOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9wYXJzZV9pbnB1dC9zZXJ2ZXI5LXNoYTIyNC5jcnQiOiJjZXJ0LiB2ZXJzaW9uICAgICBcOiAzXG5zZXJpYWwgbnVtYmVyICAgICBcOiAxN1xuaXNzdWVyIG5hbWUgICAgICAgXDogQz1OTCwgTz1Qb2xhclNTTCwgQ049UG9sYXJTU0wgVGVzdCBDQVxuc3ViamVjdCBuYW1lICAgICAgXDogQz1OTCwgTz1Qb2xhclNTTCwgQ049bG9jYWxob3N0XG5pc3N1ZWQgIG9uICAgICAgICBcOiAyMDE0LTAxLTIwIDEzXDo1N1w6MzZcbmV4cGlyZXMgb24gICAgICAgIFw6IDIwMjQtMDEtMTggMTNcOjU3XDozNlxuc2lnbmVkIHVzaW5nICAgICAgXDogUlNBU1NBLVBTUyAoU0hBMjI0LCBNR0YxLVNIQTIyNCwgMHhFMilcblJTQSBrZXkgc2l6ZSAgICAgIFw6IDEwMjQgYml0c1xuYmFzaWMgY29uc3RyYWludHMgXDogQ0E9ZmFsc2VcbiIKIAogWDUwOSBDUlQgaW5mb3JtYXRpb24gUlNBLVBTUywgU0hBMjU2IERpZ2VzdAotZGVwZW5kc19vbjpNQkVEVExTX1BFTV9QQVJTRV9DOk1CRURUTFNfWDUwOV9SU0FTU0FfUFNTX1NVUFBPUlQ6TUJFRFRMU19NRF9DQU5fU0hBMjU2Ci14NTA5X2NlcnRfaW5mbzoiZGF0YV9maWxlcy9wYXJzZV9pbnB1dC9zZXJ2ZXI5LXNoYTI1Ni5jcnQiOiJjZXJ0LiB2ZXJzaW9uICAgICBcOiAzXG5zZXJpYWwgbnVtYmVyICAgICBcOiAxOFxuaXNzdWVyIG5hbWUgICAgICAgXDogQz1OTCwgTz1Qb2xhclNTTCwgQ049UG9sYXJTU0wgVGVzdCBDQVxuc3ViamVjdCBuYW1lICAgICAgXDogQz1OTCwgTz1Qb2xhclNTTCwgQ049bG9jYWxob3N0XG5pc3N1ZWQgIG9uICAgICAgICBcOiAyMDE0LTAxLTIwIDEzXDo1N1w6NDVcbmV4cGlyZXMgb24gICAgICAgIFw6IDIwMjQtMDEtMTggMTNcOjU3XDo0NVxuc2lnbmVkIHVzaW5nICAgICAgXDogUlNBU1NBLVBTUyAoU0hBMjU2LCBNR0YxLVNIQTI1NiwgMHhERSlcblJTQSBrZXkgc2l6ZSAgICAgIFw6IDEwMjQgYml0c1xuYmFzaWMgY29uc3RyYWludHMgXDogQ0E9ZmFsc2VcbiIKK2RlcGVuZHNfb246TUJFRFRMU19QRU1fUEFSU0VfQzpNQkVEVExTX1g1MDlfUlNBU1NBX1BTU19TVVBQT1JUOlBTQV9XQU5UX0FMR19TSEFfMjU2Cit4NTA5X2NlcnRfaW5mbzoiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvcGFyc2VfaW5wdXQvc2VydmVyOS1zaGEyNTYuY3J0IjoiY2VydC4gdmVyc2lvbiAgICAgXDogM1xuc2VyaWFsIG51bWJlciAgICAgXDogMThcbmlzc3VlciBuYW1lICAgICAgIFw6IEM9TkwsIE89UG9sYXJTU0wsIENOPVBvbGFyU1NMIFRlc3QgQ0FcbnN1YmplY3QgbmFtZSAgICAgIFw6IEM9TkwsIE89UG9sYXJTU0wsIENOPWxvY2FsaG9zdFxuaXNzdWVkICBvbiAgICAgICAgXDogMjAxNC0wMS0yMCAxM1w6NTdcOjQ1XG5leHBpcmVzIG9uICAgICAgICBcOiAyMDI0LTAxLTE4IDEzXDo1N1w6NDVcbnNpZ25lZCB1c2luZyAgICAgIFw6IFJTQVNTQS1QU1MgKFNIQTI1NiwgTUdGMS1TSEEyNTYsIDB4REUpXG5SU0Ega2V5IHNpemUgICAgICBcOiAxMDI0IGJpdHNcbmJhc2ljIGNvbnN0cmFpbnRzIFw6IENBPWZhbHNlXG4iCiAKIFg1MDkgQ1JUIGluZm9ybWF0aW9uIFJTQS1QU1MsIFNIQTM4NCBEaWdlc3QKLWRlcGVuZHNfb246TUJFRFRMU19QRU1fUEFSU0VfQzpNQkVEVExTX1g1MDlfUlNBU1NBX1BTU19TVVBQT1JUOk1CRURUTFNfTURfQ0FOX1NIQTM4NAoteDUwOV9jZXJ0X2luZm86ImRhdGFfZmlsZXMvcGFyc2VfaW5wdXQvc2VydmVyOS1zaGEzODQuY3J0IjoiY2VydC4gdmVyc2lvbiAgICAgXDogM1xuc2VyaWFsIG51bWJlciAgICAgXDogMTlcbmlzc3VlciBuYW1lICAgICAgIFw6IEM9TkwsIE89UG9sYXJTU0wsIENOPVBvbGFyU1NMIFRlc3QgQ0FcbnN1YmplY3QgbmFtZSAgICAgIFw6IEM9TkwsIE89UG9sYXJTU0wsIENOPWxvY2FsaG9zdFxuaXNzdWVkICBvbiAgICAgICAgXDogMjAxNC0wMS0yMCAxM1w6NTdcOjU4XG5leHBpcmVzIG9uICAgICAgICBcOiAyMDI0LTAxLTE4IDEzXDo1N1w6NThcbnNpZ25lZCB1c2luZyAgICAgIFw6IFJTQVNTQS1QU1MgKFNIQTM4NCwgTUdGMS1TSEEzODQsIDB4Q0UpXG5SU0Ega2V5IHNpemUgICAgICBcOiAxMDI0IGJpdHNcbmJhc2ljIGNvbnN0cmFpbnRzIFw6IENBPWZhbHNlXG4iCitkZXBlbmRzX29uOk1CRURUTFNfUEVNX1BBUlNFX0M6TUJFRFRMU19YNTA5X1JTQVNTQV9QU1NfU1VQUE9SVDpQU0FfV0FOVF9BTEdfU0hBXzM4NAoreDUwOV9jZXJ0X2luZm86Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3BhcnNlX2lucHV0L3NlcnZlcjktc2hhMzg0LmNydCI6ImNlcnQuIHZlcnNpb24gICAgIFw6IDNcbnNlcmlhbCBudW1iZXIgICAgIFw6IDE5XG5pc3N1ZXIgbmFtZSAgICAgICBcOiBDPU5MLCBPPVBvbGFyU1NMLCBDTj1Qb2xhclNTTCBUZXN0IENBXG5zdWJqZWN0IG5hbWUgICAgICBcOiBDPU5MLCBPPVBvbGFyU1NMLCBDTj1sb2NhbGhvc3Rcbmlzc3VlZCAgb24gICAgICAgIFw6IDIwMTQtMDEtMjAgMTNcOjU3XDo1OFxuZXhwaXJlcyBvbiAgICAgICAgXDogMjAyNC0wMS0xOCAxM1w6NTdcOjU4XG5zaWduZWQgdXNpbmcgICAgICBcOiBSU0FTU0EtUFNTIChTSEEzODQsIE1HRjEtU0hBMzg0LCAweENFKVxuUlNBIGtleSBzaXplICAgICAgXDogMTAyNCBiaXRzXG5iYXNpYyBjb25zdHJhaW50cyBcOiBDQT1mYWxzZVxuIgogCiBYNTA5IENSVCBpbmZvcm1hdGlvbiBSU0EtUFNTLCBTSEE1MTIgRGlnZXN0CiBkZXBlbmRzX29uOk1CRURUTFNfUEVNX1BBUlNFX0M6TUJFRFRMU19YNTA5X1JTQVNTQV9QU1NfU1VQUE9SVDpNQkVEVExTX01EX0NBTl9TSEE1MTIKLXg1MDlfY2VydF9pbmZvOiJkYXRhX2ZpbGVzL3BhcnNlX2lucHV0L3NlcnZlcjktc2hhNTEyLmNydCI6ImNlcnQuIHZlcnNpb24gICAgIFw6IDNcbnNlcmlhbCBudW1iZXIgICAgIFw6IDFBXG5pc3N1ZXIgbmFtZSAgICAgICBcOiBDPU5MLCBPPVBvbGFyU1NMLCBDTj1Qb2xhclNTTCBUZXN0IENBXG5zdWJqZWN0IG5hbWUgICAgICBcOiBDPU5MLCBPPVBvbGFyU1NMLCBDTj1sb2NhbGhvc3Rcbmlzc3VlZCAgb24gICAgICAgIFw6IDIwMTQtMDEtMjAgMTNcOjU4XDoxMlxuZXhwaXJlcyBvbiAgICAgICAgXDogMjAyNC0wMS0xOCAxM1w6NThcOjEyXG5zaWduZWQgdXNpbmcgICAgICBcOiBSU0FTU0EtUFNTIChTSEE1MTIsIE1HRjEtU0hBNTEyLCAweEJFKVxuUlNBIGtleSBzaXplICAgICAgXDogMTAyNCBiaXRzXG5iYXNpYyBjb25zdHJhaW50cyBcOiBDQT1mYWxzZVxuIgoreDUwOV9jZXJ0X2luZm86Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3BhcnNlX2lucHV0L3NlcnZlcjktc2hhNTEyLmNydCI6ImNlcnQuIHZlcnNpb24gICAgIFw6IDNcbnNlcmlhbCBudW1iZXIgICAgIFw6IDFBXG5pc3N1ZXIgbmFtZSAgICAgICBcOiBDPU5MLCBPPVBvbGFyU1NMLCBDTj1Qb2xhclNTTCBUZXN0IENBXG5zdWJqZWN0IG5hbWUgICAgICBcOiBDPU5MLCBPPVBvbGFyU1NMLCBDTj1sb2NhbGhvc3Rcbmlzc3VlZCAgb24gICAgICAgIFw6IDIwMTQtMDEtMjAgMTNcOjU4XDoxMlxuZXhwaXJlcyBvbiAgICAgICAgXDogMjAyNC0wMS0xOCAxM1w6NThcOjEyXG5zaWduZWQgdXNpbmcgICAgICBcOiBSU0FTU0EtUFNTIChTSEE1MTIsIE1HRjEtU0hBNTEyLCAweEJFKVxuUlNBIGtleSBzaXplICAgICAgXDogMTAyNCBiaXRzXG5iYXNpYyBjb25zdHJhaW50cyBcOiBDQT1mYWxzZVxuIgogCiBYNTA5IENSVCBpbmZvcm1hdGlvbiBFQywgU0hBMSBEaWdlc3QKIGRlcGVuZHNfb246TUJFRFRMU19QRU1fUEFSU0VfQzpNQkVEVExTX1BLX0NBTl9FQ0RTQV9TT01FOk1CRURUTFNfRUNQX0hBVkVfU0VDUDI1NlIxOk1CRURUTFNfTURfQ0FOX1NIQTEKLXg1MDlfY2VydF9pbmZvOiJkYXRhX2ZpbGVzL3BhcnNlX2lucHV0L3NlcnZlcjUtc2hhMS5jcnQiOiJjZXJ0LiB2ZXJzaW9uICAgICBcOiAzXG5zZXJpYWwgbnVtYmVyICAgICBcOiAxMlxuaXNzdWVyIG5hbWUgICAgICAgXDogQz1OTCwgTz1Qb2xhclNTTCwgQ049UG9sYXJzc2wgVGVzdCBFQyBDQVxuc3ViamVjdCBuYW1lICAgICAgXDogQz1OTCwgTz1Qb2xhclNTTCwgQ049bG9jYWxob3N0XG5pc3N1ZWQgIG9uICAgICAgICBcOiAyMDEzLTA5LTI0IDE2XDoyMVw6MjdcbmV4cGlyZXMgb24gICAgICAgIFw6IDIwMjMtMDktMjIgMTZcOjIxXDoyN1xuc2lnbmVkIHVzaW5nICAgICAgXDogRUNEU0Egd2l0aCBTSEExXG5FQyBrZXkgc2l6ZSAgICAgICBcOiAyNTYgYml0c1xuYmFzaWMgY29uc3RyYWludHMgXDogQ0E9ZmFsc2VcbiIKK3g1MDlfY2VydF9pbmZvOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9wYXJzZV9pbnB1dC9zZXJ2ZXI1LXNoYTEuY3J0IjoiY2VydC4gdmVyc2lvbiAgICAgXDogM1xuc2VyaWFsIG51bWJlciAgICAgXDogMTJcbmlzc3VlciBuYW1lICAgICAgIFw6IEM9TkwsIE89UG9sYXJTU0wsIENOPVBvbGFyc3NsIFRlc3QgRUMgQ0FcbnN1YmplY3QgbmFtZSAgICAgIFw6IEM9TkwsIE89UG9sYXJTU0wsIENOPWxvY2FsaG9zdFxuaXNzdWVkICBvbiAgICAgICAgXDogMjAxMy0wOS0yNCAxNlw6MjFcOjI3XG5leHBpcmVzIG9uICAgICAgICBcOiAyMDIzLTA5LTIyIDE2XDoyMVw6MjdcbnNpZ25lZCB1c2luZyAgICAgIFw6IEVDRFNBIHdpdGggU0hBMVxuRUMga2V5IHNpemUgICAgICAgXDogMjU2IGJpdHNcbmJhc2ljIGNvbnN0cmFpbnRzIFw6IENBPWZhbHNlXG4iCiAKIFg1MDkgQ1JUIGluZm9ybWF0aW9uIEVDLCBTSEEyMjQgRGlnZXN0Ci1kZXBlbmRzX29uOk1CRURUTFNfUEVNX1BBUlNFX0M6TUJFRFRMU19QS19DQU5fRUNEU0FfU09NRTpNQkVEVExTX0VDUF9IQVZFX1NFQ1AyNTZSMTpNQkVEVExTX01EX0NBTl9TSEEyMjQKLXg1MDlfY2VydF9pbmZvOiJkYXRhX2ZpbGVzL3BhcnNlX2lucHV0L3NlcnZlcjUtc2hhMjI0LmNydCI6ImNlcnQuIHZlcnNpb24gICAgIFw6IDNcbnNlcmlhbCBudW1iZXIgICAgIFw6IDEzXG5pc3N1ZXIgbmFtZSAgICAgICBcOiBDPU5MLCBPPVBvbGFyU1NMLCBDTj1Qb2xhcnNzbCBUZXN0IEVDIENBXG5zdWJqZWN0IG5hbWUgICAgICBcOiBDPU5MLCBPPVBvbGFyU1NMLCBDTj1sb2NhbGhvc3Rcbmlzc3VlZCAgb24gICAgICAgIFw6IDIwMTMtMDktMjQgMTZcOjIxXDoyN1xuZXhwaXJlcyBvbiAgICAgICAgXDogMjAyMy0wOS0yMiAxNlw6MjFcOjI3XG5zaWduZWQgdXNpbmcgICAgICBcOiBFQ0RTQSB3aXRoIFNIQTIyNFxuRUMga2V5IHNpemUgICAgICAgXDogMjU2IGJpdHNcbmJhc2ljIGNvbnN0cmFpbnRzIFw6IENBPWZhbHNlXG4iCitkZXBlbmRzX29uOk1CRURUTFNfUEVNX1BBUlNFX0M6TUJFRFRMU19QS19DQU5fRUNEU0FfU09NRTpNQkVEVExTX0VDUF9IQVZFX1NFQ1AyNTZSMTpQU0FfV0FOVF9BTEdfU0hBXzIyNAoreDUwOV9jZXJ0X2luZm86Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3BhcnNlX2lucHV0L3NlcnZlcjUtc2hhMjI0LmNydCI6ImNlcnQuIHZlcnNpb24gICAgIFw6IDNcbnNlcmlhbCBudW1iZXIgICAgIFw6IDEzXG5pc3N1ZXIgbmFtZSAgICAgICBcOiBDPU5MLCBPPVBvbGFyU1NMLCBDTj1Qb2xhcnNzbCBUZXN0IEVDIENBXG5zdWJqZWN0IG5hbWUgICAgICBcOiBDPU5MLCBPPVBvbGFyU1NMLCBDTj1sb2NhbGhvc3Rcbmlzc3VlZCAgb24gICAgICAgIFw6IDIwMTMtMDktMjQgMTZcOjIxXDoyN1xuZXhwaXJlcyBvbiAgICAgICAgXDogMjAyMy0wOS0yMiAxNlw6MjFcOjI3XG5zaWduZWQgdXNpbmcgICAgICBcOiBFQ0RTQSB3aXRoIFNIQTIyNFxuRUMga2V5IHNpemUgICAgICAgXDogMjU2IGJpdHNcbmJhc2ljIGNvbnN0cmFpbnRzIFw6IENBPWZhbHNlXG4iCiAKIFg1MDkgQ1JUIGluZm9ybWF0aW9uIEVDLCBTSEEyNTYgRGlnZXN0Ci1kZXBlbmRzX29uOk1CRURUTFNfUEVNX1BBUlNFX0M6TUJFRFRMU19QS19DQU5fRUNEU0FfU09NRTpNQkVEVExTX0VDUF9IQVZFX1NFQ1AyNTZSMTpNQkVEVExTX01EX0NBTl9TSEEyNTYKLXg1MDlfY2VydF9pbmZvOiJkYXRhX2ZpbGVzL3BhcnNlX2lucHV0L3NlcnZlcjUuY3J0IjoiY2VydC4gdmVyc2lvbiAgICAgXDogM1xuc2VyaWFsIG51bWJlciAgICAgXDogMDlcbmlzc3VlciBuYW1lICAgICAgIFw6IEM9TkwsIE89UG9sYXJTU0wsIENOPVBvbGFyc3NsIFRlc3QgRUMgQ0FcbnN1YmplY3QgbmFtZSAgICAgIFw6IEM9TkwsIE89UG9sYXJTU0wsIENOPWxvY2FsaG9zdFxuaXNzdWVkICBvbiAgICAgICAgXDogMjAxMy0wOS0yNCAxNVw6NTJcOjA0XG5leHBpcmVzIG9uICAgICAgICBcOiAyMDIzLTA5LTIyIDE1XDo1Mlw6MDRcbnNpZ25lZCB1c2luZyAgICAgIFw6IEVDRFNBIHdpdGggU0hBMjU2XG5FQyBrZXkgc2l6ZSAgICAgICBcOiAyNTYgYml0c1xuYmFzaWMgY29uc3RyYWludHMgXDogQ0E9ZmFsc2VcbiIKK2RlcGVuZHNfb246TUJFRFRMU19QRU1fUEFSU0VfQzpNQkVEVExTX1BLX0NBTl9FQ0RTQV9TT01FOk1CRURUTFNfRUNQX0hBVkVfU0VDUDI1NlIxOlBTQV9XQU5UX0FMR19TSEFfMjU2Cit4NTA5X2NlcnRfaW5mbzoiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvcGFyc2VfaW5wdXQvc2VydmVyNS5jcnQiOiJjZXJ0LiB2ZXJzaW9uICAgICBcOiAzXG5zZXJpYWwgbnVtYmVyICAgICBcOiAwOVxuaXNzdWVyIG5hbWUgICAgICAgXDogQz1OTCwgTz1Qb2xhclNTTCwgQ049UG9sYXJzc2wgVGVzdCBFQyBDQVxuc3ViamVjdCBuYW1lICAgICAgXDogQz1OTCwgTz1Qb2xhclNTTCwgQ049bG9jYWxob3N0XG5pc3N1ZWQgIG9uICAgICAgICBcOiAyMDEzLTA5LTI0IDE1XDo1Mlw6MDRcbmV4cGlyZXMgb24gICAgICAgIFw6IDIwMjMtMDktMjIgMTVcOjUyXDowNFxuc2lnbmVkIHVzaW5nICAgICAgXDogRUNEU0Egd2l0aCBTSEEyNTZcbkVDIGtleSBzaXplICAgICAgIFw6IDI1NiBiaXRzXG5iYXNpYyBjb25zdHJhaW50cyBcOiBDQT1mYWxzZVxuIgogCiBYNTA5IENSVCBpbmZvcm1hdGlvbiBFQywgU0hBMzg0IERpZ2VzdAotZGVwZW5kc19vbjpNQkVEVExTX1BFTV9QQVJTRV9DOk1CRURUTFNfUEtfQ0FOX0VDRFNBX1NPTUU6TUJFRFRMU19FQ1BfSEFWRV9TRUNQMjU2UjE6TUJFRFRMU19NRF9DQU5fU0hBMzg0Ci14NTA5X2NlcnRfaW5mbzoiZGF0YV9maWxlcy9wYXJzZV9pbnB1dC9zZXJ2ZXI1LXNoYTM4NC5jcnQiOiJjZXJ0LiB2ZXJzaW9uICAgICBcOiAzXG5zZXJpYWwgbnVtYmVyICAgICBcOiAxNFxuaXNzdWVyIG5hbWUgICAgICAgXDogQz1OTCwgTz1Qb2xhclNTTCwgQ049UG9sYXJzc2wgVGVzdCBFQyBDQVxuc3ViamVjdCBuYW1lICAgICAgXDogQz1OTCwgTz1Qb2xhclNTTCwgQ049bG9jYWxob3N0XG5pc3N1ZWQgIG9uICAgICAgICBcOiAyMDEzLTA5LTI0IDE2XDoyMVw6MjdcbmV4cGlyZXMgb24gICAgICAgIFw6IDIwMjMtMDktMjIgMTZcOjIxXDoyN1xuc2lnbmVkIHVzaW5nICAgICAgXDogRUNEU0Egd2l0aCBTSEEzODRcbkVDIGtleSBzaXplICAgICAgIFw6IDI1NiBiaXRzXG5iYXNpYyBjb25zdHJhaW50cyBcOiBDQT1mYWxzZVxuIgorZGVwZW5kc19vbjpNQkVEVExTX1BFTV9QQVJTRV9DOk1CRURUTFNfUEtfQ0FOX0VDRFNBX1NPTUU6TUJFRFRMU19FQ1BfSEFWRV9TRUNQMjU2UjE6UFNBX1dBTlRfQUxHX1NIQV8zODQKK3g1MDlfY2VydF9pbmZvOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9wYXJzZV9pbnB1dC9zZXJ2ZXI1LXNoYTM4NC5jcnQiOiJjZXJ0LiB2ZXJzaW9uICAgICBcOiAzXG5zZXJpYWwgbnVtYmVyICAgICBcOiAxNFxuaXNzdWVyIG5hbWUgICAgICAgXDogQz1OTCwgTz1Qb2xhclNTTCwgQ049UG9sYXJzc2wgVGVzdCBFQyBDQVxuc3ViamVjdCBuYW1lICAgICAgXDogQz1OTCwgTz1Qb2xhclNTTCwgQ049bG9jYWxob3N0XG5pc3N1ZWQgIG9uICAgICAgICBcOiAyMDEzLTA5LTI0IDE2XDoyMVw6MjdcbmV4cGlyZXMgb24gICAgICAgIFw6IDIwMjMtMDktMjIgMTZcOjIxXDoyN1xuc2lnbmVkIHVzaW5nICAgICAgXDogRUNEU0Egd2l0aCBTSEEzODRcbkVDIGtleSBzaXplICAgICAgIFw6IDI1NiBiaXRzXG5iYXNpYyBjb25zdHJhaW50cyBcOiBDQT1mYWxzZVxuIgogCiBYNTA5IENSVCBpbmZvcm1hdGlvbiBFQywgU0hBNTEyIERpZ2VzdAogZGVwZW5kc19vbjpNQkVEVExTX1BFTV9QQVJTRV9DOk1CRURUTFNfUEtfQ0FOX0VDRFNBX1NPTUU6TUJFRFRMU19FQ1BfSEFWRV9TRUNQMjU2UjE6TUJFRFRMU19NRF9DQU5fU0hBNTEyCi14NTA5X2NlcnRfaW5mbzoiZGF0YV9maWxlcy9wYXJzZV9pbnB1dC9zZXJ2ZXI1LXNoYTUxMi5jcnQiOiJjZXJ0LiB2ZXJzaW9uICAgICBcOiAzXG5zZXJpYWwgbnVtYmVyICAgICBcOiAxNVxuaXNzdWVyIG5hbWUgICAgICAgXDogQz1OTCwgTz1Qb2xhclNTTCwgQ049UG9sYXJzc2wgVGVzdCBFQyBDQVxuc3ViamVjdCBuYW1lICAgICAgXDogQz1OTCwgTz1Qb2xhclNTTCwgQ049bG9jYWxob3N0XG5pc3N1ZWQgIG9uICAgICAgICBcOiAyMDEzLTA5LTI0IDE2XDoyMVw6MjdcbmV4cGlyZXMgb24gICAgICAgIFw6IDIwMjMtMDktMjIgMTZcOjIxXDoyN1xuc2lnbmVkIHVzaW5nICAgICAgXDogRUNEU0Egd2l0aCBTSEE1MTJcbkVDIGtleSBzaXplICAgICAgIFw6IDI1NiBiaXRzXG5iYXNpYyBjb25zdHJhaW50cyBcOiBDQT1mYWxzZVxuIgoreDUwOV9jZXJ0X2luZm86Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3BhcnNlX2lucHV0L3NlcnZlcjUtc2hhNTEyLmNydCI6ImNlcnQuIHZlcnNpb24gICAgIFw6IDNcbnNlcmlhbCBudW1iZXIgICAgIFw6IDE1XG5pc3N1ZXIgbmFtZSAgICAgICBcOiBDPU5MLCBPPVBvbGFyU1NMLCBDTj1Qb2xhcnNzbCBUZXN0IEVDIENBXG5zdWJqZWN0IG5hbWUgICAgICBcOiBDPU5MLCBPPVBvbGFyU1NMLCBDTj1sb2NhbGhvc3Rcbmlzc3VlZCAgb24gICAgICAgIFw6IDIwMTMtMDktMjQgMTZcOjIxXDoyN1xuZXhwaXJlcyBvbiAgICAgICAgXDogMjAyMy0wOS0yMiAxNlw6MjFcOjI3XG5zaWduZWQgdXNpbmcgICAgICBcOiBFQ0RTQSB3aXRoIFNIQTUxMlxuRUMga2V5IHNpemUgICAgICAgXDogMjU2IGJpdHNcbmJhc2ljIGNvbnN0cmFpbnRzIFw6IENBPWZhbHNlXG4iCiAKIFg1MDkgQ1JUIGluZm9ybWF0aW9uIEVDLCBTSEEyNTYgRGlnZXN0LCBoYXJkd2FyZSBtb2R1bGUgbmFtZSBTQU4KLWRlcGVuZHNfb246TUJFRFRMU19QS19DQU5fRUNEU0FfU09NRTpNQkVEVExTX0VDUF9IQVZFX1NFQ1AyNTZSMTpNQkVEVExTX01EX0NBTl9TSEEyNTYKLXg1MDlfY2VydF9pbmZvOiJkYXRhX2ZpbGVzL3BhcnNlX2lucHV0L3NlcnZlcjUtb3RoZXJuYW1lLmNydC5kZXIiOiJjZXJ0LiB2ZXJzaW9uICAgICBcOiAzXG5zZXJpYWwgbnVtYmVyICAgICBcOiA0RFxuaXNzdWVyIG5hbWUgICAgICAgXDogQz1VSywgTz1NYmVkIFRMUywgQ049TWJlZCBUTFMgb3RoZXJuYW1lIFNBTlxuc3ViamVjdCBuYW1lICAgICAgXDogQz1VSywgTz1NYmVkIFRMUywgQ049TWJlZCBUTFMgb3RoZXJuYW1lIFNBTlxuaXNzdWVkICBvbiAgICAgICAgXDogMjAyMy0wNi0yMCAwOVw6MDRcOjQzXG5leHBpcmVzIG9uICAgICAgICBcOiAyMDMzLTA2LTE3IDA5XDowNFw6NDNcbnNpZ25lZCB1c2luZyAgICAgIFw6IEVDRFNBIHdpdGggU0hBMjU2XG5FQyBrZXkgc2l6ZSAgICAgICBcOiAyNTYgYml0c1xuc3ViamVjdCBhbHQgbmFtZSAgXDpcbiAgICBvdGhlck5hbWUgXDpcbiAgICAgICAgaGFyZHdhcmUgbW9kdWxlIG5hbWUgXDpcbiAgICAgICAgICAgIGhhcmR3YXJlIHR5cGUgICAgICAgICAgXDogMS4zLjYuMS40LjEuMTcuM1xuICAgICAgICAgICAgaGFyZHdhcmUgc2VyaWFsIG51bWJlciBcOiAzMTMyMzMzNDM1MzZcbiIKK2RlcGVuZHNfb246TUJFRFRMU19QS19DQU5fRUNEU0FfU09NRTpNQkVEVExTX0VDUF9IQVZFX1NFQ1AyNTZSMTpQU0FfV0FOVF9BTEdfU0hBXzI1NgoreDUwOV9jZXJ0X2luZm86Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3BhcnNlX2lucHV0L3NlcnZlcjUtb3RoZXJuYW1lLmNydC5kZXIiOiJjZXJ0LiB2ZXJzaW9uICAgICBcOiAzXG5zZXJpYWwgbnVtYmVyICAgICBcOiA0RFxuaXNzdWVyIG5hbWUgICAgICAgXDogQz1VSywgTz1NYmVkIFRMUywgQ049TWJlZCBUTFMgb3RoZXJuYW1lIFNBTlxuc3ViamVjdCBuYW1lICAgICAgXDogQz1VSywgTz1NYmVkIFRMUywgQ049TWJlZCBUTFMgb3RoZXJuYW1lIFNBTlxuaXNzdWVkICBvbiAgICAgICAgXDogMjAyMy0wNi0yMCAwOVw6MDRcOjQzXG5leHBpcmVzIG9uICAgICAgICBcOiAyMDMzLTA2LTE3IDA5XDowNFw6NDNcbnNpZ25lZCB1c2luZyAgICAgIFw6IEVDRFNBIHdpdGggU0hBMjU2XG5FQyBrZXkgc2l6ZSAgICAgICBcOiAyNTYgYml0c1xuc3ViamVjdCBhbHQgbmFtZSAgXDpcbiAgICBvdGhlck5hbWUgXDpcbiAgICAgICAgaGFyZHdhcmUgbW9kdWxlIG5hbWUgXDpcbiAgICAgICAgICAgIGhhcmR3YXJlIHR5cGUgICAgICAgICAgXDogMS4zLjYuMS40LjEuMTcuM1xuICAgICAgICAgICAgaGFyZHdhcmUgc2VyaWFsIG51bWJlciBcOiAzMTMyMzMzNDM1MzZcbiIKIAogWDUwOSBDUlQgaW5mb3JtYXRpb24gRUMsIFNIQTI1NiBEaWdlc3QsIGJpbmFyeSBoYXJkd2FyZSBtb2R1bGUgbmFtZSBTQU4KLWRlcGVuZHNfb246TUJFRFRMU19QS19DQU5fRUNEU0FfU09NRTpNQkVEVExTX0VDUF9IQVZFX1NFQ1AyNTZSMTpNQkVEVExTX01EX0NBTl9TSEEyNTYKLXg1MDlfY2VydF9pbmZvOiJkYXRhX2ZpbGVzL3BhcnNlX2lucHV0L3NlcnZlcjUtbm9ucHJpbnRhYmxlX290aGVybmFtZS5jcnQuZGVyIjoiY2VydC4gdmVyc2lvbiAgICAgXDogM1xuc2VyaWFsIG51bWJlciAgICAgXDogNERcbmlzc3VlciBuYW1lICAgICAgIFw6IEM9VUssIE89TWJlZCBUTFMsIENOPU1iZWQgVExTIG5vbi1wcmludGFibGUgb3RoZXJuYW1lIFNBTlxuc3ViamVjdCBuYW1lICAgICAgXDogQz1VSywgTz1NYmVkIFRMUywgQ049TWJlZCBUTFMgbm9uLXByaW50YWJsZSBvdGhlcm5hbWUgU0FOXG5pc3N1ZWQgIG9uICAgICAgICBcOiAyMDIzLTA2LTIwIDA5XDo0OVw6MjBcbmV4cGlyZXMgb24gICAgICAgIFw6IDIwMzMtMDYtMTcgMDlcOjQ5XDoyMFxuc2lnbmVkIHVzaW5nICAgICAgXDogRUNEU0Egd2l0aCBTSEEyNTZcbkVDIGtleSBzaXplICAgICAgIFw6IDI1NiBiaXRzXG5zdWJqZWN0IGFsdCBuYW1lICBcOlxuICAgIG90aGVyTmFtZSBcOlxuICAgICAgICBoYXJkd2FyZSBtb2R1bGUgbmFtZSBcOlxuICAgICAgICAgICAgaGFyZHdhcmUgdHlwZSAgICAgICAgICBcOiAxLjMuNi4xLjQuMS4xNy4zXG4gICAgICAgICAgICBoYXJkd2FyZSBzZXJpYWwgbnVtYmVyIFw6IDMxMzIzMzgwODEwMDgxODAzMzMyMzFcbiIKK2RlcGVuZHNfb246TUJFRFRMU19QS19DQU5fRUNEU0FfU09NRTpNQkVEVExTX0VDUF9IQVZFX1NFQ1AyNTZSMTpQU0FfV0FOVF9BTEdfU0hBXzI1NgoreDUwOV9jZXJ0X2luZm86Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3BhcnNlX2lucHV0L3NlcnZlcjUtbm9ucHJpbnRhYmxlX290aGVybmFtZS5jcnQuZGVyIjoiY2VydC4gdmVyc2lvbiAgICAgXDogM1xuc2VyaWFsIG51bWJlciAgICAgXDogNERcbmlzc3VlciBuYW1lICAgICAgIFw6IEM9VUssIE89TWJlZCBUTFMsIENOPU1iZWQgVExTIG5vbi1wcmludGFibGUgb3RoZXJuYW1lIFNBTlxuc3ViamVjdCBuYW1lICAgICAgXDogQz1VSywgTz1NYmVkIFRMUywgQ049TWJlZCBUTFMgbm9uLXByaW50YWJsZSBvdGhlcm5hbWUgU0FOXG5pc3N1ZWQgIG9uICAgICAgICBcOiAyMDIzLTA2LTIwIDA5XDo0OVw6MjBcbmV4cGlyZXMgb24gICAgICAgIFw6IDIwMzMtMDYtMTcgMDlcOjQ5XDoyMFxuc2lnbmVkIHVzaW5nICAgICAgXDogRUNEU0Egd2l0aCBTSEEyNTZcbkVDIGtleSBzaXplICAgICAgIFw6IDI1NiBiaXRzXG5zdWJqZWN0IGFsdCBuYW1lICBcOlxuICAgIG90aGVyTmFtZSBcOlxuICAgICAgICBoYXJkd2FyZSBtb2R1bGUgbmFtZSBcOlxuICAgICAgICAgICAgaGFyZHdhcmUgdHlwZSAgICAgICAgICBcOiAxLjMuNi4xLjQuMS4xNy4zXG4gICAgICAgICAgICBoYXJkd2FyZSBzZXJpYWwgbnVtYmVyIFw6IDMxMzIzMzgwODEwMDgxODAzMzMyMzFcbiIKIAogWDUwOSBDUlQgaW5mb3JtYXRpb24gRUMsIFNIQTI1NiBEaWdlc3QsIGRpcmVjdG9yeU5hbWUgU0FOCi1kZXBlbmRzX29uOk1CRURUTFNfUEtfQ0FOX0VDRFNBX1NPTUU6TUJFRFRMU19FQ1BfSEFWRV9TRUNQMjU2UjE6TUJFRFRMU19NRF9DQU5fU0hBMjU2Ci14NTA5X2NlcnRfaW5mbzoiZGF0YV9maWxlcy9wYXJzZV9pbnB1dC9zZXJ2ZXI1LWRpcmVjdG9yeW5hbWUuY3J0LmRlciI6ImNlcnQuIHZlcnNpb24gICAgIFw6IDNcbnNlcmlhbCBudW1iZXIgICAgIFw6IDREXG5pc3N1ZXIgbmFtZSAgICAgICBcOiBDPVVLLCBPPU1iZWQgVExTLCBDTj1NYmVkIFRMUyBkaXJlY3RvcnlOYW1lIFNBTlxuc3ViamVjdCBuYW1lICAgICAgXDogQz1VSywgTz1NYmVkIFRMUywgQ049TWJlZCBUTFMgZGlyZWN0b3J5TmFtZSBTQU5cbmlzc3VlZCAgb24gICAgICAgIFw6IDIwMjMtMDEtMTAgMTZcOjU5XDoyOVxuZXhwaXJlcyBvbiAgICAgICAgXDogMjAzMy0wMS0wNyAxNlw6NTlcOjI5XG5zaWduZWQgdXNpbmcgICAgICBcOiBFQ0RTQSB3aXRoIFNIQTI1NlxuRUMga2V5IHNpemUgICAgICAgXDogMjU2IGJpdHNcbnN1YmplY3QgYWx0IG5hbWUgIFw6XG4gICAgZGlyZWN0b3J5TmFtZSBcOiBDPVVLLCBPPU1iZWQgVExTLCBDTj1NYmVkIFRMUyBkaXJlY3RvcnlOYW1lIFNBTlxuIgorZGVwZW5kc19vbjpNQkVEVExTX1BLX0NBTl9FQ0RTQV9TT01FOk1CRURUTFNfRUNQX0hBVkVfU0VDUDI1NlIxOlBTQV9XQU5UX0FMR19TSEFfMjU2Cit4NTA5X2NlcnRfaW5mbzoiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvcGFyc2VfaW5wdXQvc2VydmVyNS1kaXJlY3RvcnluYW1lLmNydC5kZXIiOiJjZXJ0LiB2ZXJzaW9uICAgICBcOiAzXG5zZXJpYWwgbnVtYmVyICAgICBcOiA0RFxuaXNzdWVyIG5hbWUgICAgICAgXDogQz1VSywgTz1NYmVkIFRMUywgQ049TWJlZCBUTFMgZGlyZWN0b3J5TmFtZSBTQU5cbnN1YmplY3QgbmFtZSAgICAgIFw6IEM9VUssIE89TWJlZCBUTFMsIENOPU1iZWQgVExTIGRpcmVjdG9yeU5hbWUgU0FOXG5pc3N1ZWQgIG9uICAgICAgICBcOiAyMDIzLTAxLTEwIDE2XDo1OVw6MjlcbmV4cGlyZXMgb24gICAgICAgIFw6IDIwMzMtMDEtMDcgMTZcOjU5XDoyOVxuc2lnbmVkIHVzaW5nICAgICAgXDogRUNEU0Egd2l0aCBTSEEyNTZcbkVDIGtleSBzaXplICAgICAgIFw6IDI1NiBiaXRzXG5zdWJqZWN0IGFsdCBuYW1lICBcOlxuICAgIGRpcmVjdG9yeU5hbWUgXDogQz1VSywgTz1NYmVkIFRMUywgQ049TWJlZCBUTFMgZGlyZWN0b3J5TmFtZSBTQU5cbiIKIAogWDUwOSBDUlQgaW5mb3JtYXRpb24gRUMsIFNIQTI1NiBEaWdlc3QsIHR3byBkaXJlY3RvcnlOYW1lIFNBTnMKLWRlcGVuZHNfb246TUJFRFRMU19QS19DQU5fRUNEU0FfU09NRTpNQkVEVExTX0VDUF9IQVZFX1NFQ1AyNTZSMTpNQkVEVExTX01EX0NBTl9TSEEyNTYKLXg1MDlfY2VydF9pbmZvOiJkYXRhX2ZpbGVzL3BhcnNlX2lucHV0L3NlcnZlcjUtdHdvLWRpcmVjdG9yeW5hbWVzLmNydC5kZXIiOiJjZXJ0LiB2ZXJzaW9uICAgICBcOiAzXG5zZXJpYWwgbnVtYmVyICAgICBcOiA0RFxuaXNzdWVyIG5hbWUgICAgICAgXDogQz1VSywgTz1NYmVkIFRMUywgQ049TWJlZCBUTFMgZGlyZWN0b3J5TmFtZSBTQU5cbnN1YmplY3QgbmFtZSAgICAgIFw6IEM9VUssIE89TWJlZCBUTFMsIENOPU1iZWQgVExTIGRpcmVjdG9yeU5hbWUgU0FOXG5pc3N1ZWQgIG9uICAgICAgICBcOiAyMDIzLTAxLTEyIDEwXDozNFw6MTFcbmV4cGlyZXMgb24gICAgICAgIFw6IDIwMzMtMDEtMDkgMTBcOjM0XDoxMVxuc2lnbmVkIHVzaW5nICAgICAgXDogRUNEU0Egd2l0aCBTSEEyNTZcbkVDIGtleSBzaXplICAgICAgIFw6IDI1NiBiaXRzXG5zdWJqZWN0IGFsdCBuYW1lICBcOlxuICAgIGRpcmVjdG9yeU5hbWUgXDogQz1VSywgTz1NYmVkIFRMUywgQ049TWJlZCBUTFMgZGlyZWN0b3J5TmFtZSBTQU5cbiAgICBkaXJlY3RvcnlOYW1lIFw6IE89TUFMRk9STV9NRVxuIgorZGVwZW5kc19vbjpNQkVEVExTX1BLX0NBTl9FQ0RTQV9TT01FOk1CRURUTFNfRUNQX0hBVkVfU0VDUDI1NlIxOlBTQV9XQU5UX0FMR19TSEFfMjU2Cit4NTA5X2NlcnRfaW5mbzoiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvcGFyc2VfaW5wdXQvc2VydmVyNS10d28tZGlyZWN0b3J5bmFtZXMuY3J0LmRlciI6ImNlcnQuIHZlcnNpb24gICAgIFw6IDNcbnNlcmlhbCBudW1iZXIgICAgIFw6IDREXG5pc3N1ZXIgbmFtZSAgICAgICBcOiBDPVVLLCBPPU1iZWQgVExTLCBDTj1NYmVkIFRMUyBkaXJlY3RvcnlOYW1lIFNBTlxuc3ViamVjdCBuYW1lICAgICAgXDogQz1VSywgTz1NYmVkIFRMUywgQ049TWJlZCBUTFMgZGlyZWN0b3J5TmFtZSBTQU5cbmlzc3VlZCAgb24gICAgICAgIFw6IDIwMjMtMDEtMTIgMTBcOjM0XDoxMVxuZXhwaXJlcyBvbiAgICAgICAgXDogMjAzMy0wMS0wOSAxMFw6MzRcOjExXG5zaWduZWQgdXNpbmcgICAgICBcOiBFQ0RTQSB3aXRoIFNIQTI1NlxuRUMga2V5IHNpemUgICAgICAgXDogMjU2IGJpdHNcbnN1YmplY3QgYWx0IG5hbWUgIFw6XG4gICAgZGlyZWN0b3J5TmFtZSBcOiBDPVVLLCBPPU1iZWQgVExTLCBDTj1NYmVkIFRMUyBkaXJlY3RvcnlOYW1lIFNBTlxuICAgIGRpcmVjdG9yeU5hbWUgXDogTz1NQUxGT1JNX01FXG4iCiAKIFg1MDkgQ1JUIGluZm9ybWF0aW9uIEVDLCBTSEEyNTYgRGlnZXN0LCBXaXN1biBGYW4gZGV2aWNlCi1kZXBlbmRzX29uOk1CRURUTFNfUEtfQ0FOX0VDRFNBX1NPTUU6TUJFRFRMU19FQ1BfSEFWRV9TRUNQMjU2UjE6TUJFRFRMU19NRF9DQU5fU0hBMjU2Ci14NTA5X2NlcnRfaW5mbzoiZGF0YV9maWxlcy9wYXJzZV9pbnB1dC9zZXJ2ZXI1LWZhbi5jcnQuZGVyIjoiY2VydC4gdmVyc2lvbiAgICAgXDogM1xuc2VyaWFsIG51bWJlciAgICAgXDogNERcbmlzc3VlciBuYW1lICAgICAgIFw6IEM9VUssIE89TWJlZCBUTFMsIENOPU1iZWQgVExTIEZBTlxuc3ViamVjdCBuYW1lICAgICAgXDogQz1VSywgTz1NYmVkIFRMUywgQ049TWJlZCBUTFMgRkFOXG5pc3N1ZWQgIG9uICAgICAgICBcOiAyMDIzLTA2LTIwIDA5XDo0OVw6MzVcbmV4cGlyZXMgb24gICAgICAgIFw6IDIwMzMtMDYtMTcgMDlcOjQ5XDozNVxuc2lnbmVkIHVzaW5nICAgICAgXDogRUNEU0Egd2l0aCBTSEEyNTZcbkVDIGtleSBzaXplICAgICAgIFw6IDI1NiBiaXRzXG5leHQga2V5IHVzYWdlICAgICBcOiBXaS1TVU4gQWxsaWFuY2UgRmllbGQgQXJlYSBOZXR3b3JrIChGQU4pXG4iCitkZXBlbmRzX29uOk1CRURUTFNfUEtfQ0FOX0VDRFNBX1NPTUU6TUJFRFRMU19FQ1BfSEFWRV9TRUNQMjU2UjE6UFNBX1dBTlRfQUxHX1NIQV8yNTYKK3g1MDlfY2VydF9pbmZvOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9wYXJzZV9pbnB1dC9zZXJ2ZXI1LWZhbi5jcnQuZGVyIjoiY2VydC4gdmVyc2lvbiAgICAgXDogM1xuc2VyaWFsIG51bWJlciAgICAgXDogNERcbmlzc3VlciBuYW1lICAgICAgIFw6IEM9VUssIE89TWJlZCBUTFMsIENOPU1iZWQgVExTIEZBTlxuc3ViamVjdCBuYW1lICAgICAgXDogQz1VSywgTz1NYmVkIFRMUywgQ049TWJlZCBUTFMgRkFOXG5pc3N1ZWQgIG9uICAgICAgICBcOiAyMDIzLTA2LTIwIDA5XDo0OVw6MzVcbmV4cGlyZXMgb24gICAgICAgIFw6IDIwMzMtMDYtMTcgMDlcOjQ5XDozNVxuc2lnbmVkIHVzaW5nICAgICAgXDogRUNEU0Egd2l0aCBTSEEyNTZcbkVDIGtleSBzaXplICAgICAgIFw6IDI1NiBiaXRzXG5leHQga2V5IHVzYWdlICAgICBcOiBXaS1TVU4gQWxsaWFuY2UgRmllbGQgQXJlYSBOZXR3b3JrIChGQU4pXG4iCiAKIFg1MDkgQ1JUIGluZm9ybWF0aW9uLCBOUyBDZXJ0IFR5cGUKIGRlcGVuZHNfb246TUJFRFRMU19QRU1fUEFSU0VfQzpNQkVEVExTX1JTQV9DOk1CRURUTFNfTURfQ0FOX1NIQTEKLXg1MDlfY2VydF9pbmZvOiJkYXRhX2ZpbGVzL3BhcnNlX2lucHV0L3NlcnZlcjEuY2VydF90eXBlLmNydCI6ImNlcnQuIHZlcnNpb24gICAgIFw6IDNcbnNlcmlhbCBudW1iZXIgICAgIFw6IDAxXG5pc3N1ZXIgbmFtZSAgICAgICBcOiBDPU5MLCBPPVBvbGFyU1NMLCBDTj1Qb2xhclNTTCBUZXN0IENBXG5zdWJqZWN0IG5hbWUgICAgICBcOiBDPU5MLCBPPVBvbGFyU1NMLCBDTj1Qb2xhclNTTCBTZXJ2ZXIgMVxuaXNzdWVkICBvbiAgICAgICAgXDogMjAxOS0wMi0xMCAxNFw6NDRcOjA2XG5leHBpcmVzIG9uICAgICAgICBcOiAyMDI5LTAyLTEwIDE0XDo0NFw6MDZcbnNpZ25lZCB1c2luZyAgICAgIFw6IFJTQSB3aXRoIFNIQTFcblJTQSBrZXkgc2l6ZSAgICAgIFw6IDIwNDggYml0c1xuYmFzaWMgY29uc3RyYWludHMgXDogQ0E9ZmFsc2VcbmNlcnQuIHR5cGUgICAgICAgIFw6IFNTTCBTZXJ2ZXJcbiIKK3g1MDlfY2VydF9pbmZvOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9wYXJzZV9pbnB1dC9zZXJ2ZXIxLmNlcnRfdHlwZS5jcnQiOiJjZXJ0LiB2ZXJzaW9uICAgICBcOiAzXG5zZXJpYWwgbnVtYmVyICAgICBcOiAwMVxuaXNzdWVyIG5hbWUgICAgICAgXDogQz1OTCwgTz1Qb2xhclNTTCwgQ049UG9sYXJTU0wgVGVzdCBDQVxuc3ViamVjdCBuYW1lICAgICAgXDogQz1OTCwgTz1Qb2xhclNTTCwgQ049UG9sYXJTU0wgU2VydmVyIDFcbmlzc3VlZCAgb24gICAgICAgIFw6IDIwMTktMDItMTAgMTRcOjQ0XDowNlxuZXhwaXJlcyBvbiAgICAgICAgXDogMjAyOS0wMi0xMCAxNFw6NDRcOjA2XG5zaWduZWQgdXNpbmcgICAgICBcOiBSU0Egd2l0aCBTSEExXG5SU0Ega2V5IHNpemUgICAgICBcOiAyMDQ4IGJpdHNcbmJhc2ljIGNvbnN0cmFpbnRzIFw6IENBPWZhbHNlXG5jZXJ0LiB0eXBlICAgICAgICBcOiBTU0wgU2VydmVyXG4iCiAKIFg1MDkgQ1JUIGluZm9ybWF0aW9uLCBLZXkgVXNhZ2UKIGRlcGVuZHNfb246TUJFRFRMU19QRU1fUEFSU0VfQzpNQkVEVExTX1JTQV9DOk1CRURUTFNfTURfQ0FOX1NIQTEKLXg1MDlfY2VydF9pbmZvOiJkYXRhX2ZpbGVzL3BhcnNlX2lucHV0L3NlcnZlcjEua2V5X3VzYWdlLmNydCI6ImNlcnQuIHZlcnNpb24gICAgIFw6IDNcbnNlcmlhbCBudW1iZXIgICAgIFw6IDAxXG5pc3N1ZXIgbmFtZSAgICAgICBcOiBDPU5MLCBPPVBvbGFyU1NMLCBDTj1Qb2xhclNTTCBUZXN0IENBXG5zdWJqZWN0IG5hbWUgICAgICBcOiBDPU5MLCBPPVBvbGFyU1NMLCBDTj1Qb2xhclNTTCBTZXJ2ZXIgMVxuaXNzdWVkICBvbiAgICAgICAgXDogMjAxOS0wMi0xMCAxNFw6NDRcOjA2XG5leHBpcmVzIG9uICAgICAgICBcOiAyMDI5LTAyLTEwIDE0XDo0NFw6MDZcbnNpZ25lZCB1c2luZyAgICAgIFw6IFJTQSB3aXRoIFNIQTFcblJTQSBrZXkgc2l6ZSAgICAgIFw6IDIwNDggYml0c1xuYmFzaWMgY29uc3RyYWludHMgXDogQ0E9ZmFsc2VcbmtleSB1c2FnZSAgICAgICAgIFw6IERpZ2l0YWwgU2lnbmF0dXJlLCBOb24gUmVwdWRpYXRpb24sIEtleSBFbmNpcGhlcm1lbnRcbiIKK3g1MDlfY2VydF9pbmZvOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9wYXJzZV9pbnB1dC9zZXJ2ZXIxLmtleV91c2FnZS5jcnQiOiJjZXJ0LiB2ZXJzaW9uICAgICBcOiAzXG5zZXJpYWwgbnVtYmVyICAgICBcOiAwMVxuaXNzdWVyIG5hbWUgICAgICAgXDogQz1OTCwgTz1Qb2xhclNTTCwgQ049UG9sYXJTU0wgVGVzdCBDQVxuc3ViamVjdCBuYW1lICAgICAgXDogQz1OTCwgTz1Qb2xhclNTTCwgQ049UG9sYXJTU0wgU2VydmVyIDFcbmlzc3VlZCAgb24gICAgICAgIFw6IDIwMTktMDItMTAgMTRcOjQ0XDowNlxuZXhwaXJlcyBvbiAgICAgICAgXDogMjAyOS0wMi0xMCAxNFw6NDRcOjA2XG5zaWduZWQgdXNpbmcgICAgICBcOiBSU0Egd2l0aCBTSEExXG5SU0Ega2V5IHNpemUgICAgICBcOiAyMDQ4IGJpdHNcbmJhc2ljIGNvbnN0cmFpbnRzIFw6IENBPWZhbHNlXG5rZXkgdXNhZ2UgICAgICAgICBcOiBEaWdpdGFsIFNpZ25hdHVyZSwgTm9uIFJlcHVkaWF0aW9uLCBLZXkgRW5jaXBoZXJtZW50XG4iCiAKIFg1MDkgQ1JUIGluZm9ybWF0aW9uLCBLZXkgVXNhZ2Ugd2l0aCBkZWNpcGhlck9ubHkKIGRlcGVuZHNfb246TUJFRFRMU19QRU1fUEFSU0VfQzpNQkVEVExTX1JTQV9DOk1CRURUTFNfTURfQ0FOX1NIQTEKLXg1MDlfY2VydF9pbmZvOiJkYXRhX2ZpbGVzL3BhcnNlX2lucHV0L2tleVVzYWdlLmRlY2lwaGVyT25seS5jcnQiOiJjZXJ0LiB2ZXJzaW9uICAgICBcOiAzXG5zZXJpYWwgbnVtYmVyICAgICBcOiA5Qlw6MTNcOkNFXDo0Q1w6QTVcOjZGXDpERVw6NTJcbmlzc3VlciBuYW1lICAgICAgIFw6IEM9R0IsIEw9Q2FtYnJpZGdlLCBPPURlZmF1bHQgQ29tcGFueSBMdGRcbnN1YmplY3QgbmFtZSAgICAgIFw6IEM9R0IsIEw9Q2FtYnJpZGdlLCBPPURlZmF1bHQgQ29tcGFueSBMdGRcbmlzc3VlZCAgb24gICAgICAgIFw6IDIwMTUtMDUtMTIgMTBcOjM2XDo1NVxuZXhwaXJlcyBvbiAgICAgICAgXDogMjAxOC0wNS0xMSAxMFw6MzZcOjU1XG5zaWduZWQgdXNpbmcgICAgICBcOiBSU0Egd2l0aCBTSEExXG5SU0Ega2V5IHNpemUgICAgICBcOiAxMDI0IGJpdHNcbmJhc2ljIGNvbnN0cmFpbnRzIFw6IENBPWZhbHNlXG5rZXkgdXNhZ2UgICAgICAgICBcOiBEaWdpdGFsIFNpZ25hdHVyZSwgTm9uIFJlcHVkaWF0aW9uLCBLZXkgRW5jaXBoZXJtZW50LCBEZWNpcGhlciBPbmx5XG4iCit4NTA5X2NlcnRfaW5mbzoiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvcGFyc2VfaW5wdXQva2V5VXNhZ2UuZGVjaXBoZXJPbmx5LmNydCI6ImNlcnQuIHZlcnNpb24gICAgIFw6IDNcbnNlcmlhbCBudW1iZXIgICAgIFw6IDlCXDoxM1w6Q0VcOjRDXDpBNVw6NkZcOkRFXDo1MlxuaXNzdWVyIG5hbWUgICAgICAgXDogQz1HQiwgTD1DYW1icmlkZ2UsIE89RGVmYXVsdCBDb21wYW55IEx0ZFxuc3ViamVjdCBuYW1lICAgICAgXDogQz1HQiwgTD1DYW1icmlkZ2UsIE89RGVmYXVsdCBDb21wYW55IEx0ZFxuaXNzdWVkICBvbiAgICAgICAgXDogMjAxNS0wNS0xMiAxMFw6MzZcOjU1XG5leHBpcmVzIG9uICAgICAgICBcOiAyMDE4LTA1LTExIDEwXDozNlw6NTVcbnNpZ25lZCB1c2luZyAgICAgIFw6IFJTQSB3aXRoIFNIQTFcblJTQSBrZXkgc2l6ZSAgICAgIFw6IDEwMjQgYml0c1xuYmFzaWMgY29uc3RyYWludHMgXDogQ0E9ZmFsc2VcbmtleSB1c2FnZSAgICAgICAgIFw6IERpZ2l0YWwgU2lnbmF0dXJlLCBOb24gUmVwdWRpYXRpb24sIEtleSBFbmNpcGhlcm1lbnQsIERlY2lwaGVyIE9ubHlcbiIKIAogWDUwOSBDUlQgaW5mb3JtYXRpb24sIFN1YmplY3QgQWx0IE5hbWUKLWRlcGVuZHNfb246TUJFRFRMU19QRU1fUEFSU0VfQzpNQkVEVExTX1JTQV9DOk1CRURUTFNfTURfQ0FOX1NIQTI1NgoteDUwOV9jZXJ0X2luZm86ImRhdGFfZmlsZXMvcGFyc2VfaW5wdXQvY2VydF9leGFtcGxlX211bHRpLmNydCI6ImNlcnQuIHZlcnNpb24gICAgIFw6IDNcbnNlcmlhbCBudW1iZXIgICAgIFw6IDExXG5pc3N1ZXIgbmFtZSAgICAgICBcOiBDPU5MLCBPPVBvbGFyU1NMLCBDTj1Qb2xhclNTTCBUZXN0IENBXG5zdWJqZWN0IG5hbWUgICAgICBcOiBDPU5MLCBPPVBvbGFyU1NMLCBDTj13d3cuZXhhbXBsZS5jb21cbmlzc3VlZCAgb24gICAgICAgIFw6IDIwMTktMDctMTAgMTFcOjI3XDo1MlxuZXhwaXJlcyBvbiAgICAgICAgXDogMjAyOS0wNy0xMCAxMVw6MjdcOjUyXG5zaWduZWQgdXNpbmcgICAgICBcOiBSU0Egd2l0aCBTSEEtMjU2XG5SU0Ega2V5IHNpemUgICAgICBcOiAxMDI0IGJpdHNcbnN1YmplY3QgYWx0IG5hbWUgIFw6XG4gICAgZE5TTmFtZSBcOiBleGFtcGxlLmNvbVxuICAgIGROU05hbWUgXDogZXhhbXBsZS5uZXRcbiAgICBkTlNOYW1lIFw6ICouZXhhbXBsZS5vcmdcbiIKK2RlcGVuZHNfb246TUJFRFRMU19QRU1fUEFSU0VfQzpNQkVEVExTX1JTQV9DOlBTQV9XQU5UX0FMR19TSEFfMjU2Cit4NTA5X2NlcnRfaW5mbzoiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvcGFyc2VfaW5wdXQvY2VydF9leGFtcGxlX211bHRpLmNydCI6ImNlcnQuIHZlcnNpb24gICAgIFw6IDNcbnNlcmlhbCBudW1iZXIgICAgIFw6IDExXG5pc3N1ZXIgbmFtZSAgICAgICBcOiBDPU5MLCBPPVBvbGFyU1NMLCBDTj1Qb2xhclNTTCBUZXN0IENBXG5zdWJqZWN0IG5hbWUgICAgICBcOiBDPU5MLCBPPVBvbGFyU1NMLCBDTj13d3cuZXhhbXBsZS5jb21cbmlzc3VlZCAgb24gICAgICAgIFw6IDIwMTktMDctMTAgMTFcOjI3XDo1MlxuZXhwaXJlcyBvbiAgICAgICAgXDogMjAyOS0wNy0xMCAxMVw6MjdcOjUyXG5zaWduZWQgdXNpbmcgICAgICBcOiBSU0Egd2l0aCBTSEEtMjU2XG5SU0Ega2V5IHNpemUgICAgICBcOiAxMDI0IGJpdHNcbnN1YmplY3QgYWx0IG5hbWUgIFw6XG4gICAgZE5TTmFtZSBcOiBleGFtcGxlLmNvbVxuICAgIGROU05hbWUgXDogZXhhbXBsZS5uZXRcbiAgICBkTlNOYW1lIFw6ICouZXhhbXBsZS5vcmdcbiIKIAogWDUwOSBDUlQgaW5mb3JtYXRpb24sIE11bHRpcGxlIGRpZmZlcmVudCBTdWJqZWN0IEFsdCBOYW1lCi1kZXBlbmRzX29uOk1CRURUTFNfUEVNX1BBUlNFX0M6TUJFRFRMU19QS19DQU5fRUNEU0FfU09NRTpNQkVEVExTX0VDUF9IQVZFX1NFQ1AyNTZSMTpNQkVEVExTX01EX0NBTl9TSEEyNTYKLXg1MDlfY2VydF9pbmZvOiJkYXRhX2ZpbGVzL3BhcnNlX2lucHV0L211bHRpcGxlX3Nhbi5jcnQiOiJjZXJ0LiB2ZXJzaW9uICAgICBcOiAzXG5zZXJpYWwgbnVtYmVyICAgICBcOiAwNFxuaXNzdWVyIG5hbWUgICAgICAgXDogQz1VSywgTz1NYmVkIFRMUywgQ049TWJlZCBUTFMgbXVsdGlwbGUgb3RoZXJuYW1lIFNBTlxuc3ViamVjdCBuYW1lICAgICAgXDogQz1VSywgTz1NYmVkIFRMUywgQ049TWJlZCBUTFMgbXVsdGlwbGUgb3RoZXJuYW1lIFNBTlxuaXNzdWVkICBvbiAgICAgICAgXDogMjAxOS0wNC0yMiAxNlw6MTBcOjQ4XG5leHBpcmVzIG9uICAgICAgICBcOiAyMDI5LTA0LTE5IDE2XDoxMFw6NDhcbnNpZ25lZCB1c2luZyAgICAgIFw6IEVDRFNBIHdpdGggU0hBMjU2XG5FQyBrZXkgc2l6ZSAgICAgICBcOiAyNTYgYml0c1xuc3ViamVjdCBhbHQgbmFtZSAgXDpcbiAgICBkTlNOYW1lIFw6IGV4YW1wbGUuY29tXG4gICAgb3RoZXJOYW1lIFw6XG4gICAgICAgIGhhcmR3YXJlIG1vZHVsZSBuYW1lIFw6XG4gICAgICAgICAgICBoYXJkd2FyZSB0eXBlICAgICAgICAgIFw6IDEuMy42LjEuNC4xLjE3LjNcbiAgICAgICAgICAgIGhhcmR3YXJlIHNlcmlhbCBudW1iZXIgXDogMzEzMjMzMzQzNTM2XG4gICAgZE5TTmFtZSBcOiBleGFtcGxlLm5ldFxuICAgIGROU05hbWUgXDogKi5leGFtcGxlLm9yZ1xuIgorZGVwZW5kc19vbjpNQkVEVExTX1BFTV9QQVJTRV9DOk1CRURUTFNfUEtfQ0FOX0VDRFNBX1NPTUU6TUJFRFRMU19FQ1BfSEFWRV9TRUNQMjU2UjE6UFNBX1dBTlRfQUxHX1NIQV8yNTYKK3g1MDlfY2VydF9pbmZvOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9wYXJzZV9pbnB1dC9tdWx0aXBsZV9zYW4uY3J0IjoiY2VydC4gdmVyc2lvbiAgICAgXDogM1xuc2VyaWFsIG51bWJlciAgICAgXDogMDRcbmlzc3VlciBuYW1lICAgICAgIFw6IEM9VUssIE89TWJlZCBUTFMsIENOPU1iZWQgVExTIG11bHRpcGxlIG90aGVybmFtZSBTQU5cbnN1YmplY3QgbmFtZSAgICAgIFw6IEM9VUssIE89TWJlZCBUTFMsIENOPU1iZWQgVExTIG11bHRpcGxlIG90aGVybmFtZSBTQU5cbmlzc3VlZCAgb24gICAgICAgIFw6IDIwMTktMDQtMjIgMTZcOjEwXDo0OFxuZXhwaXJlcyBvbiAgICAgICAgXDogMjAyOS0wNC0xOSAxNlw6MTBcOjQ4XG5zaWduZWQgdXNpbmcgICAgICBcOiBFQ0RTQSB3aXRoIFNIQTI1NlxuRUMga2V5IHNpemUgICAgICAgXDogMjU2IGJpdHNcbnN1YmplY3QgYWx0IG5hbWUgIFw6XG4gICAgZE5TTmFtZSBcOiBleGFtcGxlLmNvbVxuICAgIG90aGVyTmFtZSBcOlxuICAgICAgICBoYXJkd2FyZSBtb2R1bGUgbmFtZSBcOlxuICAgICAgICAgICAgaGFyZHdhcmUgdHlwZSAgICAgICAgICBcOiAxLjMuNi4xLjQuMS4xNy4zXG4gICAgICAgICAgICBoYXJkd2FyZSBzZXJpYWwgbnVtYmVyIFw6IDMxMzIzMzM0MzUzNlxuICAgIGROU05hbWUgXDogZXhhbXBsZS5uZXRcbiAgICBkTlNOYW1lIFw6ICouZXhhbXBsZS5vcmdcbiIKIAogWDUwOSBDUlQgaW5mb3JtYXRpb24sIFN1YmplY3QgQWx0IE5hbWUgKyBLZXkgVXNhZ2UKIGRlcGVuZHNfb246TUJFRFRMU19QRU1fUEFSU0VfQzpNQkVEVExTX1JTQV9DOk1CRURUTFNfTURfQ0FOX1NIQTEKLXg1MDlfY2VydF9pbmZvOiJkYXRhX2ZpbGVzL3BhcnNlX2lucHV0L2NlcnRfZXhhbXBsZV9tdWx0aV9ub2NuLmNydCI6ImNlcnQuIHZlcnNpb24gICAgIFw6IDNcbnNlcmlhbCBudW1iZXIgICAgIFw6IEY3XDpDNlw6N0ZcOkY4XDpFOVw6QTlcOjYzXDpGOVxuaXNzdWVyIG5hbWUgICAgICAgXDogQz1OTFxuc3ViamVjdCBuYW1lICAgICAgXDogQz1OTFxuaXNzdWVkICBvbiAgICAgICAgXDogMjAxNC0wMS0yMiAxMFw6MDRcOjMzXG5leHBpcmVzIG9uICAgICAgICBcOiAyMDI0LTAxLTIyIDEwXDowNFw6MzNcbnNpZ25lZCB1c2luZyAgICAgIFw6IFJTQSB3aXRoIFNIQTFcblJTQSBrZXkgc2l6ZSAgICAgIFw6IDEwMjQgYml0c1xuYmFzaWMgY29uc3RyYWludHMgXDogQ0E9ZmFsc2VcbnN1YmplY3QgYWx0IG5hbWUgIFw6XG4gICAgZE5TTmFtZSBcOiB3d3cuc2hvdG9rYW4tYnJhdW5zY2h3ZWlnLmRlXG4gICAgZE5TTmFtZSBcOiB3d3cubWFzc2ltby1hYmF0ZS5ldVxuICAgIGlQQWRkcmVzcyBcOiAxOTIuMTY4LjEuMVxuICAgIGlQQWRkcmVzcyBcOiAxOTIuMTY4LjY5LjE0NFxua2V5IHVzYWdlICAgICAgICAgXDogRGlnaXRhbCBTaWduYXR1cmUsIE5vbiBSZXB1ZGlhdGlvbiwgS2V5IEVuY2lwaGVybWVudFxuIgoreDUwOV9jZXJ0X2luZm86Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3BhcnNlX2lucHV0L2NlcnRfZXhhbXBsZV9tdWx0aV9ub2NuLmNydCI6ImNlcnQuIHZlcnNpb24gICAgIFw6IDNcbnNlcmlhbCBudW1iZXIgICAgIFw6IEY3XDpDNlw6N0ZcOkY4XDpFOVw6QTlcOjYzXDpGOVxuaXNzdWVyIG5hbWUgICAgICAgXDogQz1OTFxuc3ViamVjdCBuYW1lICAgICAgXDogQz1OTFxuaXNzdWVkICBvbiAgICAgICAgXDogMjAxNC0wMS0yMiAxMFw6MDRcOjMzXG5leHBpcmVzIG9uICAgICAgICBcOiAyMDI0LTAxLTIyIDEwXDowNFw6MzNcbnNpZ25lZCB1c2luZyAgICAgIFw6IFJTQSB3aXRoIFNIQTFcblJTQSBrZXkgc2l6ZSAgICAgIFw6IDEwMjQgYml0c1xuYmFzaWMgY29uc3RyYWludHMgXDogQ0E9ZmFsc2VcbnN1YmplY3QgYWx0IG5hbWUgIFw6XG4gICAgZE5TTmFtZSBcOiB3d3cuc2hvdG9rYW4tYnJhdW5zY2h3ZWlnLmRlXG4gICAgZE5TTmFtZSBcOiB3d3cubWFzc2ltby1hYmF0ZS5ldVxuICAgIGlQQWRkcmVzcyBcOiAxOTIuMTY4LjEuMVxuICAgIGlQQWRkcmVzcyBcOiAxOTIuMTY4LjY5LjE0NFxua2V5IHVzYWdlICAgICAgICAgXDogRGlnaXRhbCBTaWduYXR1cmUsIE5vbiBSZXB1ZGlhdGlvbiwgS2V5IEVuY2lwaGVybWVudFxuIgogCiBYNTA5IENSVCBpbmZvcm1hdGlvbiwgU3ViamVjdCBBbHQgTmFtZSB3aXRoIHVuaWZvcm1SZXNvdXJjZUlkZW50aWZpZXIKLWRlcGVuZHNfb246TUJFRFRMU19SU0FfQzpNQkVEVExTX01EX0NBTl9TSEEyNTYKLXg1MDlfY2VydF9pbmZvOiJkYXRhX2ZpbGVzL3BhcnNlX2lucHV0L3JzYV9zaW5nbGVfc2FuX3VyaS5jcnQuZGVyIjoiY2VydC4gdmVyc2lvbiAgICAgXDogM1xuc2VyaWFsIG51bWJlciAgICAgXDogNkZcOjc1XDpFQlw6RTlcOjZEXDoyNVw6QkNcOjg4XDo4Mlw6NjJcOkEzXDpFMFw6NjhcOkE3XDozN1w6M0JcOkVDXDo3NVw6OEZcOjlDXG5pc3N1ZXIgbmFtZSAgICAgICBcOiBDPVVLLCBPPU1iZWQgVExTLCBDTj1NYmVkIFRMUyBVUkkgU0FOXG5zdWJqZWN0IG5hbWUgICAgICBcOiBDPVVLLCBPPU1iZWQgVExTLCBDTj1NYmVkIFRMUyBVUkkgU0FOXG5pc3N1ZWQgIG9uICAgICAgICBcOiAyMDIzLTAyLTE0IDEwXDozOFw6MDVcbmV4cGlyZXMgb24gICAgICAgIFw6IDIwNDMtMDItMDkgMTBcOjM4XDowNVxuc2lnbmVkIHVzaW5nICAgICAgXDogUlNBIHdpdGggU0hBLTI1NlxuUlNBIGtleSBzaXplICAgICAgXDogMjA0OCBiaXRzXG5iYXNpYyBjb25zdHJhaW50cyBcOiBDQT1mYWxzZVxuc3ViamVjdCBhbHQgbmFtZSAgXDpcbiAgICB1bmlmb3JtUmVzb3VyY2VJZGVudGlmaWVyIFw6IHVyblw6ZXhhbXBsZS5jb21cOjVmZjQwZjc4LTkyMTAtNDk0Zi04MjA2LWMyYzA4MmYwNjA5Y1xua2V5IHVzYWdlICAgICAgICAgXDogRGlnaXRhbCBTaWduYXR1cmUsIE5vbiBSZXB1ZGlhdGlvbiwgS2V5IEVuY2lwaGVybWVudFxuIgorZGVwZW5kc19vbjpNQkVEVExTX1JTQV9DOlBTQV9XQU5UX0FMR19TSEFfMjU2Cit4NTA5X2NlcnRfaW5mbzoiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvcGFyc2VfaW5wdXQvcnNhX3NpbmdsZV9zYW5fdXJpLmNydC5kZXIiOiJjZXJ0LiB2ZXJzaW9uICAgICBcOiAzXG5zZXJpYWwgbnVtYmVyICAgICBcOiA2Rlw6NzVcOkVCXDpFOVw6NkRcOjI1XDpCQ1w6ODhcOjgyXDo2Mlw6QTNcOkUwXDo2OFw6QTdcOjM3XDozQlw6RUNcOjc1XDo4Rlw6OUNcbmlzc3VlciBuYW1lICAgICAgIFw6IEM9VUssIE89TWJlZCBUTFMsIENOPU1iZWQgVExTIFVSSSBTQU5cbnN1YmplY3QgbmFtZSAgICAgIFw6IEM9VUssIE89TWJlZCBUTFMsIENOPU1iZWQgVExTIFVSSSBTQU5cbmlzc3VlZCAgb24gICAgICAgIFw6IDIwMjMtMDItMTQgMTBcOjM4XDowNVxuZXhwaXJlcyBvbiAgICAgICAgXDogMjA0My0wMi0wOSAxMFw6MzhcOjA1XG5zaWduZWQgdXNpbmcgICAgICBcOiBSU0Egd2l0aCBTSEEtMjU2XG5SU0Ega2V5IHNpemUgICAgICBcOiAyMDQ4IGJpdHNcbmJhc2ljIGNvbnN0cmFpbnRzIFw6IENBPWZhbHNlXG5zdWJqZWN0IGFsdCBuYW1lICBcOlxuICAgIHVuaWZvcm1SZXNvdXJjZUlkZW50aWZpZXIgXDogdXJuXDpleGFtcGxlLmNvbVw6NWZmNDBmNzgtOTIxMC00OTRmLTgyMDYtYzJjMDgyZjA2MDljXG5rZXkgdXNhZ2UgICAgICAgICBcOiBEaWdpdGFsIFNpZ25hdHVyZSwgTm9uIFJlcHVkaWF0aW9uLCBLZXkgRW5jaXBoZXJtZW50XG4iCiAKIFg1MDkgQ1JUIGluZm9ybWF0aW9uLCBTdWJqZWN0IEFsdCBOYW1lIHdpdGggdHdvIHVuaWZvcm1SZXNvdXJjZUlkZW50aWZpZXJzCi1kZXBlbmRzX29uOk1CRURUTFNfUlNBX0M6TUJFRFRMU19NRF9DQU5fU0hBMjU2Ci14NTA5X2NlcnRfaW5mbzoiZGF0YV9maWxlcy9wYXJzZV9pbnB1dC9yc2FfbXVsdGlwbGVfc2FuX3VyaS5jcnQuZGVyIjoiY2VydC4gdmVyc2lvbiAgICAgXDogM1xuc2VyaWFsIG51bWJlciAgICAgXDogMDhcOkUyXDo5M1w6MThcOjkxXDoyNlw6RDhcOjQ2XDo4OFw6OTBcOjEwXDo0Rlw6QjVcOjg2XDpDQlw6QzRcOjc4XDpFNlw6RUFcOjBEXG5pc3N1ZXIgbmFtZSAgICAgICBcOiBDPVVLLCBPPU1iZWQgVExTLCBDTj1NYmVkIFRMUyBVUkkgU0FOXG5zdWJqZWN0IG5hbWUgICAgICBcOiBDPVVLLCBPPU1iZWQgVExTLCBDTj1NYmVkIFRMUyBVUkkgU0FOXG5pc3N1ZWQgIG9uICAgICAgICBcOiAyMDIzLTAyLTE0IDEwXDozN1w6NTBcbmV4cGlyZXMgb24gICAgICAgIFw6IDIwNDMtMDItMDkgMTBcOjM3XDo1MFxuc2lnbmVkIHVzaW5nICAgICAgXDogUlNBIHdpdGggU0hBLTI1NlxuUlNBIGtleSBzaXplICAgICAgXDogMjA0OCBiaXRzXG5iYXNpYyBjb25zdHJhaW50cyBcOiBDQT1mYWxzZVxuc3ViamVjdCBhbHQgbmFtZSAgXDpcbiAgICB1bmlmb3JtUmVzb3VyY2VJZGVudGlmaWVyIFw6IHVyblw6ZXhhbXBsZS5jb21cOjVmZjQwZjc4LTkyMTAtNDk0Zi04MjA2LWMyYzA4MmYwNjA5Y1xuICAgIHVuaWZvcm1SZXNvdXJjZUlkZW50aWZpZXIgXDogdXJuXDpleGFtcGxlLmNvbVw6NWZmNDBmNzgtOTIxMC00OTRmLTgyMDYtYWJjZGUxMjM0NTY3XG5rZXkgdXNhZ2UgICAgICAgICBcOiBEaWdpdGFsIFNpZ25hdHVyZSwgTm9uIFJlcHVkaWF0aW9uLCBLZXkgRW5jaXBoZXJtZW50XG4iCitkZXBlbmRzX29uOk1CRURUTFNfUlNBX0M6UFNBX1dBTlRfQUxHX1NIQV8yNTYKK3g1MDlfY2VydF9pbmZvOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9wYXJzZV9pbnB1dC9yc2FfbXVsdGlwbGVfc2FuX3VyaS5jcnQuZGVyIjoiY2VydC4gdmVyc2lvbiAgICAgXDogM1xuc2VyaWFsIG51bWJlciAgICAgXDogMDhcOkUyXDo5M1w6MThcOjkxXDoyNlw6RDhcOjQ2XDo4OFw6OTBcOjEwXDo0Rlw6QjVcOjg2XDpDQlw6QzRcOjc4XDpFNlw6RUFcOjBEXG5pc3N1ZXIgbmFtZSAgICAgICBcOiBDPVVLLCBPPU1iZWQgVExTLCBDTj1NYmVkIFRMUyBVUkkgU0FOXG5zdWJqZWN0IG5hbWUgICAgICBcOiBDPVVLLCBPPU1iZWQgVExTLCBDTj1NYmVkIFRMUyBVUkkgU0FOXG5pc3N1ZWQgIG9uICAgICAgICBcOiAyMDIzLTAyLTE0IDEwXDozN1w6NTBcbmV4cGlyZXMgb24gICAgICAgIFw6IDIwNDMtMDItMDkgMTBcOjM3XDo1MFxuc2lnbmVkIHVzaW5nICAgICAgXDogUlNBIHdpdGggU0hBLTI1NlxuUlNBIGtleSBzaXplICAgICAgXDogMjA0OCBiaXRzXG5iYXNpYyBjb25zdHJhaW50cyBcOiBDQT1mYWxzZVxuc3ViamVjdCBhbHQgbmFtZSAgXDpcbiAgICB1bmlmb3JtUmVzb3VyY2VJZGVudGlmaWVyIFw6IHVyblw6ZXhhbXBsZS5jb21cOjVmZjQwZjc4LTkyMTAtNDk0Zi04MjA2LWMyYzA4MmYwNjA5Y1xuICAgIHVuaWZvcm1SZXNvdXJjZUlkZW50aWZpZXIgXDogdXJuXDpleGFtcGxlLmNvbVw6NWZmNDBmNzgtOTIxMC00OTRmLTgyMDYtYWJjZGUxMjM0NTY3XG5rZXkgdXNhZ2UgICAgICAgICBcOiBEaWdpdGFsIFNpZ25hdHVyZSwgTm9uIFJlcHVkaWF0aW9uLCBLZXkgRW5jaXBoZXJtZW50XG4iCiAKIFg1MDkgQ1JUIGluZm9ybWF0aW9uLCBSU0EgQ2VydGlmaWNhdGUgUG9saWN5IGFueQotZGVwZW5kc19vbjpNQkVEVExTX1BFTV9QQVJTRV9DOk1CRURUTFNfUlNBX0M6TUJFRFRMU19NRF9DQU5fU0hBMjU2Ci14NTA5X2NlcnRfaW5mbzoiZGF0YV9maWxlcy9wYXJzZV9pbnB1dC90ZXN0LWNhLWFueV9wb2xpY3kuY3J0IjoiY2VydC4gdmVyc2lvbiAgICAgXDogM1xuc2VyaWFsIG51bWJlciAgICAgXDogMDBcbmlzc3VlciBuYW1lICAgICAgIFw6IEM9TkwsIE89UG9sYXJTU0wsIENOPVBvbGFyU1NMIFRlc3QgQ0FcbnN1YmplY3QgbmFtZSAgICAgIFw6IEM9TkwsIE89UG9sYXJTU0wsIENOPVBvbGFyU1NMIFRlc3QgQ0Fcbmlzc3VlZCAgb24gICAgICAgIFw6IDIwMTktMDMtMjEgMTZcOjQwXDo1OVxuZXhwaXJlcyBvbiAgICAgICAgXDogMjAyOS0wMy0yMSAxNlw6NDBcOjU5XG5zaWduZWQgdXNpbmcgICAgICBcOiBSU0Egd2l0aCBTSEEtMjU2XG5SU0Ega2V5IHNpemUgICAgICBcOiAyMDQ4IGJpdHNcbmJhc2ljIGNvbnN0cmFpbnRzIFw6IENBPXRydWVcbmNlcnRpZmljYXRlIHBvbGljaWVzIFw6IEFueSBQb2xpY3lcbiIKK2RlcGVuZHNfb246TUJFRFRMU19QRU1fUEFSU0VfQzpNQkVEVExTX1JTQV9DOlBTQV9XQU5UX0FMR19TSEFfMjU2Cit4NTA5X2NlcnRfaW5mbzoiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvcGFyc2VfaW5wdXQvdGVzdC1jYS1hbnlfcG9saWN5LmNydCI6ImNlcnQuIHZlcnNpb24gICAgIFw6IDNcbnNlcmlhbCBudW1iZXIgICAgIFw6IDAwXG5pc3N1ZXIgbmFtZSAgICAgICBcOiBDPU5MLCBPPVBvbGFyU1NMLCBDTj1Qb2xhclNTTCBUZXN0IENBXG5zdWJqZWN0IG5hbWUgICAgICBcOiBDPU5MLCBPPVBvbGFyU1NMLCBDTj1Qb2xhclNTTCBUZXN0IENBXG5pc3N1ZWQgIG9uICAgICAgICBcOiAyMDE5LTAzLTIxIDE2XDo0MFw6NTlcbmV4cGlyZXMgb24gICAgICAgIFw6IDIwMjktMDMtMjEgMTZcOjQwXDo1OVxuc2lnbmVkIHVzaW5nICAgICAgXDogUlNBIHdpdGggU0hBLTI1NlxuUlNBIGtleSBzaXplICAgICAgXDogMjA0OCBiaXRzXG5iYXNpYyBjb25zdHJhaW50cyBcOiBDQT10cnVlXG5jZXJ0aWZpY2F0ZSBwb2xpY2llcyBcOiBBbnkgUG9saWN5XG4iCiAKIFg1MDkgQ1JUIGluZm9ybWF0aW9uLCBFQ0RTQSBDZXJ0aWZpY2F0ZSBQb2xpY3kgYW55Ci1kZXBlbmRzX29uOk1CRURUTFNfUEVNX1BBUlNFX0M6TUJFRFRMU19QS19DQU5fRUNEU0FfU09NRTpNQkVEVExTX0VDUF9IQVZFX1NFQ1AzODRSMTpNQkVEVExTX01EX0NBTl9TSEEyNTYKLXg1MDlfY2VydF9pbmZvOiJkYXRhX2ZpbGVzL3BhcnNlX2lucHV0L3Rlc3QtY2EtYW55X3BvbGljeV9lYy5jcnQiOiJjZXJ0LiB2ZXJzaW9uICAgICBcOiAzXG5zZXJpYWwgbnVtYmVyICAgICBcOiAwMFxuaXNzdWVyIG5hbWUgICAgICAgXDogQz1OTCwgTz1Qb2xhclNTTCwgQ049UG9sYXJzc2wgVGVzdCBFQyBDQVxuc3ViamVjdCBuYW1lICAgICAgXDogQz1OTCwgTz1Qb2xhclNTTCwgQ049UG9sYXJzc2wgVGVzdCBFQyBDQVxuaXNzdWVkICBvbiAgICAgICAgXDogMjAxOS0wMy0yNSAwOVw6MDJcOjQ1XG5leHBpcmVzIG9uICAgICAgICBcOiAyMDI5LTAzLTI1IDA5XDowMlw6NDVcbnNpZ25lZCB1c2luZyAgICAgIFw6IEVDRFNBIHdpdGggU0hBMjU2XG5FQyBrZXkgc2l6ZSAgICAgICBcOiAzODQgYml0c1xuYmFzaWMgY29uc3RyYWludHMgXDogQ0E9dHJ1ZVxuY2VydGlmaWNhdGUgcG9saWNpZXMgXDogQW55IFBvbGljeVxuIgorZGVwZW5kc19vbjpNQkVEVExTX1BFTV9QQVJTRV9DOk1CRURUTFNfUEtfQ0FOX0VDRFNBX1NPTUU6TUJFRFRMU19FQ1BfSEFWRV9TRUNQMzg0UjE6UFNBX1dBTlRfQUxHX1NIQV8yNTYKK3g1MDlfY2VydF9pbmZvOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9wYXJzZV9pbnB1dC90ZXN0LWNhLWFueV9wb2xpY3lfZWMuY3J0IjoiY2VydC4gdmVyc2lvbiAgICAgXDogM1xuc2VyaWFsIG51bWJlciAgICAgXDogMDBcbmlzc3VlciBuYW1lICAgICAgIFw6IEM9TkwsIE89UG9sYXJTU0wsIENOPVBvbGFyc3NsIFRlc3QgRUMgQ0FcbnN1YmplY3QgbmFtZSAgICAgIFw6IEM9TkwsIE89UG9sYXJTU0wsIENOPVBvbGFyc3NsIFRlc3QgRUMgQ0Fcbmlzc3VlZCAgb24gICAgICAgIFw6IDIwMTktMDMtMjUgMDlcOjAyXDo0NVxuZXhwaXJlcyBvbiAgICAgICAgXDogMjAyOS0wMy0yNSAwOVw6MDJcOjQ1XG5zaWduZWQgdXNpbmcgICAgICBcOiBFQ0RTQSB3aXRoIFNIQTI1NlxuRUMga2V5IHNpemUgICAgICAgXDogMzg0IGJpdHNcbmJhc2ljIGNvbnN0cmFpbnRzIFw6IENBPXRydWVcbmNlcnRpZmljYXRlIHBvbGljaWVzIFw6IEFueSBQb2xpY3lcbiIKIAogWDUwOSBDUlQgaW5mb3JtYXRpb24sIFJTQSBDZXJ0aWZpY2F0ZSBQb2xpY3kgYW55IHdpdGggcXVhbGlmaWVyCi1kZXBlbmRzX29uOk1CRURUTFNfUEVNX1BBUlNFX0M6TUJFRFRMU19SU0FfQzpNQkVEVExTX01EX0NBTl9TSEEyNTYKLXg1MDlfY2VydF9pbmZvOiJkYXRhX2ZpbGVzL3BhcnNlX2lucHV0L3Rlc3QtY2EtYW55X3BvbGljeV93aXRoX3F1YWxpZmllci5jcnQiOiJjZXJ0LiB2ZXJzaW9uICAgICBcOiAzXG5zZXJpYWwgbnVtYmVyICAgICBcOiAwMFxuaXNzdWVyIG5hbWUgICAgICAgXDogQz1OTCwgTz1Qb2xhclNTTCwgQ049UG9sYXJTU0wgVGVzdCBDQVxuc3ViamVjdCBuYW1lICAgICAgXDogQz1OTCwgTz1Qb2xhclNTTCwgQ049UG9sYXJTU0wgVGVzdCBDQVxuaXNzdWVkICBvbiAgICAgICAgXDogMjAxOS0wNC0yOCAxM1w6MTRcOjMxXG5leHBpcmVzIG9uICAgICAgICBcOiAyMDI5LTA0LTI4IDEzXDoxNFw6MzFcbnNpZ25lZCB1c2luZyAgICAgIFw6IFJTQSB3aXRoIFNIQS0yNTZcblJTQSBrZXkgc2l6ZSAgICAgIFw6IDIwNDggYml0c1xuYmFzaWMgY29uc3RyYWludHMgXDogQ0E9dHJ1ZVxuY2VydGlmaWNhdGUgcG9saWNpZXMgXDogQW55IFBvbGljeVxuIgorZGVwZW5kc19vbjpNQkVEVExTX1BFTV9QQVJTRV9DOk1CRURUTFNfUlNBX0M6UFNBX1dBTlRfQUxHX1NIQV8yNTYKK3g1MDlfY2VydF9pbmZvOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9wYXJzZV9pbnB1dC90ZXN0LWNhLWFueV9wb2xpY3lfd2l0aF9xdWFsaWZpZXIuY3J0IjoiY2VydC4gdmVyc2lvbiAgICAgXDogM1xuc2VyaWFsIG51bWJlciAgICAgXDogMDBcbmlzc3VlciBuYW1lICAgICAgIFw6IEM9TkwsIE89UG9sYXJTU0wsIENOPVBvbGFyU1NMIFRlc3QgQ0FcbnN1YmplY3QgbmFtZSAgICAgIFw6IEM9TkwsIE89UG9sYXJTU0wsIENOPVBvbGFyU1NMIFRlc3QgQ0Fcbmlzc3VlZCAgb24gICAgICAgIFw6IDIwMTktMDQtMjggMTNcOjE0XDozMVxuZXhwaXJlcyBvbiAgICAgICAgXDogMjAyOS0wNC0yOCAxM1w6MTRcOjMxXG5zaWduZWQgdXNpbmcgICAgICBcOiBSU0Egd2l0aCBTSEEtMjU2XG5SU0Ega2V5IHNpemUgICAgICBcOiAyMDQ4IGJpdHNcbmJhc2ljIGNvbnN0cmFpbnRzIFw6IENBPXRydWVcbmNlcnRpZmljYXRlIHBvbGljaWVzIFw6IEFueSBQb2xpY3lcbiIKIAogWDUwOSBDUlQgaW5mb3JtYXRpb24sIEVDRFNBIENlcnRpZmljYXRlIFBvbGljeSBhbnkgd2l0aCBxdWFsaWZpZXIKLWRlcGVuZHNfb246TUJFRFRMU19QRU1fUEFSU0VfQzpNQkVEVExTX1BLX0NBTl9FQ0RTQV9TT01FOk1CRURUTFNfRUNQX0hBVkVfU0VDUDM4NFIxOk1CRURUTFNfTURfQ0FOX1NIQTI1NgoteDUwOV9jZXJ0X2luZm86ImRhdGFfZmlsZXMvcGFyc2VfaW5wdXQvdGVzdC1jYS1hbnlfcG9saWN5X3dpdGhfcXVhbGlmaWVyX2VjLmNydCI6ImNlcnQuIHZlcnNpb24gICAgIFw6IDNcbnNlcmlhbCBudW1iZXIgICAgIFw6IDAwXG5pc3N1ZXIgbmFtZSAgICAgICBcOiBDPU5MLCBPPVBvbGFyU1NMLCBDTj1Qb2xhcnNzbCBUZXN0IEVDIENBXG5zdWJqZWN0IG5hbWUgICAgICBcOiBDPU5MLCBPPVBvbGFyU1NMLCBDTj1Qb2xhcnNzbCBUZXN0IEVDIENBXG5pc3N1ZWQgIG9uICAgICAgICBcOiAyMDE5LTA0LTI4IDEwXDoxNlw6MDVcbmV4cGlyZXMgb24gICAgICAgIFw6IDIwMjktMDQtMjggMTBcOjE2XDowNVxuc2lnbmVkIHVzaW5nICAgICAgXDogRUNEU0Egd2l0aCBTSEEyNTZcbkVDIGtleSBzaXplICAgICAgIFw6IDM4NCBiaXRzXG5iYXNpYyBjb25zdHJhaW50cyBcOiBDQT10cnVlXG5jZXJ0aWZpY2F0ZSBwb2xpY2llcyBcOiBBbnkgUG9saWN5XG4iCitkZXBlbmRzX29uOk1CRURUTFNfUEVNX1BBUlNFX0M6TUJFRFRMU19QS19DQU5fRUNEU0FfU09NRTpNQkVEVExTX0VDUF9IQVZFX1NFQ1AzODRSMTpQU0FfV0FOVF9BTEdfU0hBXzI1NgoreDUwOV9jZXJ0X2luZm86Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3BhcnNlX2lucHV0L3Rlc3QtY2EtYW55X3BvbGljeV93aXRoX3F1YWxpZmllcl9lYy5jcnQiOiJjZXJ0LiB2ZXJzaW9uICAgICBcOiAzXG5zZXJpYWwgbnVtYmVyICAgICBcOiAwMFxuaXNzdWVyIG5hbWUgICAgICAgXDogQz1OTCwgTz1Qb2xhclNTTCwgQ049UG9sYXJzc2wgVGVzdCBFQyBDQVxuc3ViamVjdCBuYW1lICAgICAgXDogQz1OTCwgTz1Qb2xhclNTTCwgQ049UG9sYXJzc2wgVGVzdCBFQyBDQVxuaXNzdWVkICBvbiAgICAgICAgXDogMjAxOS0wNC0yOCAxMFw6MTZcOjA1XG5leHBpcmVzIG9uICAgICAgICBcOiAyMDI5LTA0LTI4IDEwXDoxNlw6MDVcbnNpZ25lZCB1c2luZyAgICAgIFw6IEVDRFNBIHdpdGggU0hBMjU2XG5FQyBrZXkgc2l6ZSAgICAgICBcOiAzODQgYml0c1xuYmFzaWMgY29uc3RyYWludHMgXDogQ0E9dHJ1ZVxuY2VydGlmaWNhdGUgcG9saWNpZXMgXDogQW55IFBvbGljeVxuIgogCiBYNTA5IENSVCBpbmZvcm1hdGlvbiwgUlNBIENlcnRpZmljYXRlIG11bHRpcGxlIFBvbGljaWVzCi1kZXBlbmRzX29uOk1CRURUTFNfUEVNX1BBUlNFX0M6TUJFRFRMU19SU0FfQzpNQkVEVExTX01EX0NBTl9TSEEyNTYKLXg1MDlfY2VydF9pbmZvOiJkYXRhX2ZpbGVzL3BhcnNlX2lucHV0L3Rlc3QtY2EtbXVsdGlfcG9saWN5LmNydCI6ImNlcnQuIHZlcnNpb24gICAgIFw6IDNcbnNlcmlhbCBudW1iZXIgICAgIFw6IDAwXG5pc3N1ZXIgbmFtZSAgICAgICBcOiBDPU5MLCBPPVBvbGFyU1NMLCBDTj1Qb2xhclNTTCBUZXN0IENBXG5zdWJqZWN0IG5hbWUgICAgICBcOiBDPU5MLCBPPVBvbGFyU1NMLCBDTj1Qb2xhclNTTCBUZXN0IENBXG5pc3N1ZWQgIG9uICAgICAgICBcOiAyMDE5LTA0LTI4IDEyXDo1OVw6MTlcbmV4cGlyZXMgb24gICAgICAgIFw6IDIwMjktMDQtMjggMTJcOjU5XDoxOVxuc2lnbmVkIHVzaW5nICAgICAgXDogUlNBIHdpdGggU0hBLTI1NlxuUlNBIGtleSBzaXplICAgICAgXDogMjA0OCBiaXRzXG5iYXNpYyBjb25zdHJhaW50cyBcOiBDQT10cnVlXG5jZXJ0aWZpY2F0ZSBwb2xpY2llcyBcOiA/Pz8sIEFueSBQb2xpY3lcbiIKK2RlcGVuZHNfb246TUJFRFRMU19QRU1fUEFSU0VfQzpNQkVEVExTX1JTQV9DOlBTQV9XQU5UX0FMR19TSEFfMjU2Cit4NTA5X2NlcnRfaW5mbzoiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvcGFyc2VfaW5wdXQvdGVzdC1jYS1tdWx0aV9wb2xpY3kuY3J0IjoiY2VydC4gdmVyc2lvbiAgICAgXDogM1xuc2VyaWFsIG51bWJlciAgICAgXDogMDBcbmlzc3VlciBuYW1lICAgICAgIFw6IEM9TkwsIE89UG9sYXJTU0wsIENOPVBvbGFyU1NMIFRlc3QgQ0FcbnN1YmplY3QgbmFtZSAgICAgIFw6IEM9TkwsIE89UG9sYXJTU0wsIENOPVBvbGFyU1NMIFRlc3QgQ0Fcbmlzc3VlZCAgb24gICAgICAgIFw6IDIwMTktMDQtMjggMTJcOjU5XDoxOVxuZXhwaXJlcyBvbiAgICAgICAgXDogMjAyOS0wNC0yOCAxMlw6NTlcOjE5XG5zaWduZWQgdXNpbmcgICAgICBcOiBSU0Egd2l0aCBTSEEtMjU2XG5SU0Ega2V5IHNpemUgICAgICBcOiAyMDQ4IGJpdHNcbmJhc2ljIGNvbnN0cmFpbnRzIFw6IENBPXRydWVcbmNlcnRpZmljYXRlIHBvbGljaWVzIFw6ID8/PywgQW55IFBvbGljeVxuIgogCiBYNTA5IENSVCBpbmZvcm1hdGlvbiwgRUNEU0EgQ2VydGlmaWNhdGUgbXVsdGlwbGUgUG9saWNpZXMKLWRlcGVuZHNfb246TUJFRFRMU19QRU1fUEFSU0VfQzpNQkVEVExTX1BLX0NBTl9FQ0RTQV9TT01FOk1CRURUTFNfRUNQX0hBVkVfU0VDUDM4NFIxOk1CRURUTFNfTURfQ0FOX1NIQTI1NgoteDUwOV9jZXJ0X2luZm86ImRhdGFfZmlsZXMvcGFyc2VfaW5wdXQvdGVzdC1jYS1tdWx0aV9wb2xpY3lfZWMuY3J0IjoiY2VydC4gdmVyc2lvbiAgICAgXDogM1xuc2VyaWFsIG51bWJlciAgICAgXDogMDBcbmlzc3VlciBuYW1lICAgICAgIFw6IEM9TkwsIE89UG9sYXJTU0wsIENOPVBvbGFyc3NsIFRlc3QgRUMgQ0FcbnN1YmplY3QgbmFtZSAgICAgIFw6IEM9TkwsIE89UG9sYXJTU0wsIENOPVBvbGFyc3NsIFRlc3QgRUMgQ0Fcbmlzc3VlZCAgb24gICAgICAgIFw6IDIwMTktMDQtMjggMTJcOjU5XDo1MVxuZXhwaXJlcyBvbiAgICAgICAgXDogMjAyOS0wNC0yOCAxMlw6NTlcOjUxXG5zaWduZWQgdXNpbmcgICAgICBcOiBFQ0RTQSB3aXRoIFNIQTI1NlxuRUMga2V5IHNpemUgICAgICAgXDogMzg0IGJpdHNcbmJhc2ljIGNvbnN0cmFpbnRzIFw6IENBPXRydWVcbmNlcnRpZmljYXRlIHBvbGljaWVzIFw6ID8/PywgQW55IFBvbGljeVxuIgorZGVwZW5kc19vbjpNQkVEVExTX1BFTV9QQVJTRV9DOk1CRURUTFNfUEtfQ0FOX0VDRFNBX1NPTUU6TUJFRFRMU19FQ1BfSEFWRV9TRUNQMzg0UjE6UFNBX1dBTlRfQUxHX1NIQV8yNTYKK3g1MDlfY2VydF9pbmZvOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9wYXJzZV9pbnB1dC90ZXN0LWNhLW11bHRpX3BvbGljeV9lYy5jcnQiOiJjZXJ0LiB2ZXJzaW9uICAgICBcOiAzXG5zZXJpYWwgbnVtYmVyICAgICBcOiAwMFxuaXNzdWVyIG5hbWUgICAgICAgXDogQz1OTCwgTz1Qb2xhclNTTCwgQ049UG9sYXJzc2wgVGVzdCBFQyBDQVxuc3ViamVjdCBuYW1lICAgICAgXDogQz1OTCwgTz1Qb2xhclNTTCwgQ049UG9sYXJzc2wgVGVzdCBFQyBDQVxuaXNzdWVkICBvbiAgICAgICAgXDogMjAxOS0wNC0yOCAxMlw6NTlcOjUxXG5leHBpcmVzIG9uICAgICAgICBcOiAyMDI5LTA0LTI4IDEyXDo1OVw6NTFcbnNpZ25lZCB1c2luZyAgICAgIFw6IEVDRFNBIHdpdGggU0hBMjU2XG5FQyBrZXkgc2l6ZSAgICAgICBcOiAzODQgYml0c1xuYmFzaWMgY29uc3RyYWludHMgXDogQ0E9dHJ1ZVxuY2VydGlmaWNhdGUgcG9saWNpZXMgXDogPz8/LCBBbnkgUG9saWN5XG4iCiAKIFg1MDkgQ1JUIGluZm9ybWF0aW9uLCBSU0EgQ2VydGlmaWNhdGUgdW5zdXBwb3J0ZWQgcG9saWN5Ci1kZXBlbmRzX29uOk1CRURUTFNfUEVNX1BBUlNFX0M6TUJFRFRMU19SU0FfQzpNQkVEVExTX01EX0NBTl9TSEEyNTYKLXg1MDlfY2VydF9pbmZvOiJkYXRhX2ZpbGVzL3BhcnNlX2lucHV0L3Rlc3QtY2EtdW5zdXBwb3J0ZWRfcG9saWN5LmNydCI6ImNlcnQuIHZlcnNpb24gICAgIFw6IDNcbnNlcmlhbCBudW1iZXIgICAgIFw6IDAwXG5pc3N1ZXIgbmFtZSAgICAgICBcOiBDPU5MLCBPPVBvbGFyU1NMLCBDTj1Qb2xhclNTTCBUZXN0IENBXG5zdWJqZWN0IG5hbWUgICAgICBcOiBDPU5MLCBPPVBvbGFyU1NMLCBDTj1Qb2xhclNTTCBUZXN0IENBXG5pc3N1ZWQgIG9uICAgICAgICBcOiAyMDE5LTA0LTI4IDEzXDowMFw6MTNcbmV4cGlyZXMgb24gICAgICAgIFw6IDIwMjktMDQtMjggMTNcOjAwXDoxM1xuc2lnbmVkIHVzaW5nICAgICAgXDogUlNBIHdpdGggU0hBLTI1NlxuUlNBIGtleSBzaXplICAgICAgXDogMjA0OCBiaXRzXG5iYXNpYyBjb25zdHJhaW50cyBcOiBDQT10cnVlXG5jZXJ0aWZpY2F0ZSBwb2xpY2llcyBcOiA/Pz9cbiIKK2RlcGVuZHNfb246TUJFRFRMU19QRU1fUEFSU0VfQzpNQkVEVExTX1JTQV9DOlBTQV9XQU5UX0FMR19TSEFfMjU2Cit4NTA5X2NlcnRfaW5mbzoiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvcGFyc2VfaW5wdXQvdGVzdC1jYS11bnN1cHBvcnRlZF9wb2xpY3kuY3J0IjoiY2VydC4gdmVyc2lvbiAgICAgXDogM1xuc2VyaWFsIG51bWJlciAgICAgXDogMDBcbmlzc3VlciBuYW1lICAgICAgIFw6IEM9TkwsIE89UG9sYXJTU0wsIENOPVBvbGFyU1NMIFRlc3QgQ0FcbnN1YmplY3QgbmFtZSAgICAgIFw6IEM9TkwsIE89UG9sYXJTU0wsIENOPVBvbGFyU1NMIFRlc3QgQ0Fcbmlzc3VlZCAgb24gICAgICAgIFw6IDIwMTktMDQtMjggMTNcOjAwXDoxM1xuZXhwaXJlcyBvbiAgICAgICAgXDogMjAyOS0wNC0yOCAxM1w6MDBcOjEzXG5zaWduZWQgdXNpbmcgICAgICBcOiBSU0Egd2l0aCBTSEEtMjU2XG5SU0Ega2V5IHNpemUgICAgICBcOiAyMDQ4IGJpdHNcbmJhc2ljIGNvbnN0cmFpbnRzIFw6IENBPXRydWVcbmNlcnRpZmljYXRlIHBvbGljaWVzIFw6ID8/P1xuIgogCiBYNTA5IENSVCBpbmZvcm1hdGlvbiwgRUNEU0EgQ2VydGlmaWNhdGUgdW5zdXBwb3J0ZWQgcG9saWN5Ci1kZXBlbmRzX29uOk1CRURUTFNfUEVNX1BBUlNFX0M6TUJFRFRMU19QS19DQU5fRUNEU0FfU09NRTpNQkVEVExTX0VDUF9IQVZFX1NFQ1AzODRSMTpNQkVEVExTX01EX0NBTl9TSEEyNTYKLXg1MDlfY2VydF9pbmZvOiJkYXRhX2ZpbGVzL3BhcnNlX2lucHV0L3Rlc3QtY2EtdW5zdXBwb3J0ZWRfcG9saWN5X2VjLmNydCI6ImNlcnQuIHZlcnNpb24gICAgIFw6IDNcbnNlcmlhbCBudW1iZXIgICAgIFw6IDAwXG5pc3N1ZXIgbmFtZSAgICAgICBcOiBDPU5MLCBPPVBvbGFyU1NMLCBDTj1Qb2xhcnNzbCBUZXN0IEVDIENBXG5zdWJqZWN0IG5hbWUgICAgICBcOiBDPU5MLCBPPVBvbGFyU1NMLCBDTj1Qb2xhcnNzbCBUZXN0IEVDIENBXG5pc3N1ZWQgIG9uICAgICAgICBcOiAyMDE5LTA0LTI4IDEzXDowMFw6MTlcbmV4cGlyZXMgb24gICAgICAgIFw6IDIwMjktMDQtMjggMTNcOjAwXDoxOVxuc2lnbmVkIHVzaW5nICAgICAgXDogRUNEU0Egd2l0aCBTSEEyNTZcbkVDIGtleSBzaXplICAgICAgIFw6IDM4NCBiaXRzXG5iYXNpYyBjb25zdHJhaW50cyBcOiBDQT10cnVlXG5jZXJ0aWZpY2F0ZSBwb2xpY2llcyBcOiA/Pz9cbiIKK2RlcGVuZHNfb246TUJFRFRMU19QRU1fUEFSU0VfQzpNQkVEVExTX1BLX0NBTl9FQ0RTQV9TT01FOk1CRURUTFNfRUNQX0hBVkVfU0VDUDM4NFIxOlBTQV9XQU5UX0FMR19TSEFfMjU2Cit4NTA5X2NlcnRfaW5mbzoiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvcGFyc2VfaW5wdXQvdGVzdC1jYS11bnN1cHBvcnRlZF9wb2xpY3lfZWMuY3J0IjoiY2VydC4gdmVyc2lvbiAgICAgXDogM1xuc2VyaWFsIG51bWJlciAgICAgXDogMDBcbmlzc3VlciBuYW1lICAgICAgIFw6IEM9TkwsIE89UG9sYXJTU0wsIENOPVBvbGFyc3NsIFRlc3QgRUMgQ0FcbnN1YmplY3QgbmFtZSAgICAgIFw6IEM9TkwsIE89UG9sYXJTU0wsIENOPVBvbGFyc3NsIFRlc3QgRUMgQ0Fcbmlzc3VlZCAgb24gICAgICAgIFw6IDIwMTktMDQtMjggMTNcOjAwXDoxOVxuZXhwaXJlcyBvbiAgICAgICAgXDogMjAyOS0wNC0yOCAxM1w6MDBcOjE5XG5zaWduZWQgdXNpbmcgICAgICBcOiBFQ0RTQSB3aXRoIFNIQTI1NlxuRUMga2V5IHNpemUgICAgICAgXDogMzg0IGJpdHNcbmJhc2ljIGNvbnN0cmFpbnRzIFw6IENBPXRydWVcbmNlcnRpZmljYXRlIHBvbGljaWVzIFw6ID8/P1xuIgogCiBYNTA5IENSVCBpbmZvcm1hdGlvbiwgS2V5IFVzYWdlICsgRXh0ZW5kZWQgS2V5IFVzYWdlCi1kZXBlbmRzX29uOk1CRURUTFNfUEVNX1BBUlNFX0M6TUJFRFRMU19SU0FfQzpNQkVEVExTX01EX0NBTl9TSEEyNTYKLXg1MDlfY2VydF9pbmZvOiJkYXRhX2ZpbGVzL3BhcnNlX2lucHV0L3NlcnZlcjEuZXh0X2t1LmNydCI6ImNlcnQuIHZlcnNpb24gICAgIFw6IDNcbnNlcmlhbCBudW1iZXIgICAgIFw6IDIxXG5pc3N1ZXIgbmFtZSAgICAgICBcOiBDPU5MLCBPPVBvbGFyU1NMLCBDTj1Qb2xhclNTTCBUZXN0IENBXG5zdWJqZWN0IG5hbWUgICAgICBcOiBDPU5MLCBPPVBvbGFyU1NMLCBDTj1Qb2xhclNTTCBTZXJ2ZXIgMVxuaXNzdWVkICBvbiAgICAgICAgXDogMjAxNC0wNC0wMSAxNFw6NDRcOjQzXG5leHBpcmVzIG9uICAgICAgICBcOiAyMDI0LTAzLTI5IDE0XDo0NFw6NDNcbnNpZ25lZCB1c2luZyAgICAgIFw6IFJTQSB3aXRoIFNIQS0yNTZcblJTQSBrZXkgc2l6ZSAgICAgIFw6IDIwNDggYml0c1xuYmFzaWMgY29uc3RyYWludHMgXDogQ0E9ZmFsc2VcbmtleSB1c2FnZSAgICAgICAgIFw6IERpZ2l0YWwgU2lnbmF0dXJlLCBOb24gUmVwdWRpYXRpb24sIEtleSBFbmNpcGhlcm1lbnRcbmV4dCBrZXkgdXNhZ2UgICAgIFw6IFRMUyBXZWIgU2VydmVyIEF1dGhlbnRpY2F0aW9uXG4iCitkZXBlbmRzX29uOk1CRURUTFNfUEVNX1BBUlNFX0M6TUJFRFRMU19SU0FfQzpQU0FfV0FOVF9BTEdfU0hBXzI1NgoreDUwOV9jZXJ0X2luZm86Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3BhcnNlX2lucHV0L3NlcnZlcjEuZXh0X2t1LmNydCI6ImNlcnQuIHZlcnNpb24gICAgIFw6IDNcbnNlcmlhbCBudW1iZXIgICAgIFw6IDIxXG5pc3N1ZXIgbmFtZSAgICAgICBcOiBDPU5MLCBPPVBvbGFyU1NMLCBDTj1Qb2xhclNTTCBUZXN0IENBXG5zdWJqZWN0IG5hbWUgICAgICBcOiBDPU5MLCBPPVBvbGFyU1NMLCBDTj1Qb2xhclNTTCBTZXJ2ZXIgMVxuaXNzdWVkICBvbiAgICAgICAgXDogMjAxNC0wNC0wMSAxNFw6NDRcOjQzXG5leHBpcmVzIG9uICAgICAgICBcOiAyMDI0LTAzLTI5IDE0XDo0NFw6NDNcbnNpZ25lZCB1c2luZyAgICAgIFw6IFJTQSB3aXRoIFNIQS0yNTZcblJTQSBrZXkgc2l6ZSAgICAgIFw6IDIwNDggYml0c1xuYmFzaWMgY29uc3RyYWludHMgXDogQ0E9ZmFsc2VcbmtleSB1c2FnZSAgICAgICAgIFw6IERpZ2l0YWwgU2lnbmF0dXJlLCBOb24gUmVwdWRpYXRpb24sIEtleSBFbmNpcGhlcm1lbnRcbmV4dCBrZXkgdXNhZ2UgICAgIFw6IFRMUyBXZWIgU2VydmVyIEF1dGhlbnRpY2F0aW9uXG4iCiAKIFg1MDkgQ1JUIGluZm9ybWF0aW9uIFJTQSBzaWduZWQgYnkgRUMKLWRlcGVuZHNfb246TUJFRFRMU19QRU1fUEFSU0VfQzpNQkVEVExTX1JTQV9DOk1CRURUTFNfTURfQ0FOX1NIQTI1NjpNQkVEVExTX1BLX0NBTl9FQ0RTQV9TT01FCi14NTA5X2NlcnRfaW5mbzoiZGF0YV9maWxlcy9wYXJzZV9pbnB1dC9zZXJ2ZXI0LmNydCI6ImNlcnQuIHZlcnNpb24gICAgIFw6IDNcbnNlcmlhbCBudW1iZXIgICAgIFw6IDA4XG5pc3N1ZXIgbmFtZSAgICAgICBcOiBDPU5MLCBPPVBvbGFyU1NMLCBDTj1Qb2xhcnNzbCBUZXN0IEVDIENBXG5zdWJqZWN0IG5hbWUgICAgICBcOiBDPU5MLCBPPVBvbGFyU1NMLCBDTj1sb2NhbGhvc3Rcbmlzc3VlZCAgb24gICAgICAgIFw6IDIwMTMtMDktMjQgMTVcOjUyXDowNFxuZXhwaXJlcyBvbiAgICAgICAgXDogMjAyMy0wOS0yMiAxNVw6NTJcOjA0XG5zaWduZWQgdXNpbmcgICAgICBcOiBFQ0RTQSB3aXRoIFNIQTI1NlxuUlNBIGtleSBzaXplICAgICAgXDogMjA0OCBiaXRzXG5iYXNpYyBjb25zdHJhaW50cyBcOiBDQT1mYWxzZVxuIgorZGVwZW5kc19vbjpNQkVEVExTX1BFTV9QQVJTRV9DOk1CRURUTFNfUlNBX0M6UFNBX1dBTlRfQUxHX1NIQV8yNTY6TUJFRFRMU19QS19DQU5fRUNEU0FfU09NRQoreDUwOV9jZXJ0X2luZm86Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3BhcnNlX2lucHV0L3NlcnZlcjQuY3J0IjoiY2VydC4gdmVyc2lvbiAgICAgXDogM1xuc2VyaWFsIG51bWJlciAgICAgXDogMDhcbmlzc3VlciBuYW1lICAgICAgIFw6IEM9TkwsIE89UG9sYXJTU0wsIENOPVBvbGFyc3NsIFRlc3QgRUMgQ0FcbnN1YmplY3QgbmFtZSAgICAgIFw6IEM9TkwsIE89UG9sYXJTU0wsIENOPWxvY2FsaG9zdFxuaXNzdWVkICBvbiAgICAgICAgXDogMjAxMy0wOS0yNCAxNVw6NTJcOjA0XG5leHBpcmVzIG9uICAgICAgICBcOiAyMDIzLTA5LTIyIDE1XDo1Mlw6MDRcbnNpZ25lZCB1c2luZyAgICAgIFw6IEVDRFNBIHdpdGggU0hBMjU2XG5SU0Ega2V5IHNpemUgICAgICBcOiAyMDQ4IGJpdHNcbmJhc2ljIGNvbnN0cmFpbnRzIFw6IENBPWZhbHNlXG4iCiAKIFg1MDkgQ1JUIGluZm9ybWF0aW9uIEVDIHNpZ25lZCBieSBSU0EKLWRlcGVuZHNfb246TUJFRFRMU19QRU1fUEFSU0VfQzpNQkVEVExTX1BLX0NBTl9FQ0RTQV9TT01FOk1CRURUTFNfRUNQX0hBVkVfU0VDUDE5MlIxOk1CRURUTFNfTURfQ0FOX1NIQTE6TUJFRFRMU19SU0FfQwoteDUwOV9jZXJ0X2luZm86ImRhdGFfZmlsZXMvcGFyc2VfaW5wdXQvc2VydmVyMy5jcnQiOiJjZXJ0LiB2ZXJzaW9uICAgICBcOiAzXG5zZXJpYWwgbnVtYmVyICAgICBcOiAwRFxuaXNzdWVyIG5hbWUgICAgICAgXDogQz1OTCwgTz1Qb2xhclNTTCwgQ049UG9sYXJTU0wgVGVzdCBDQVxuc3ViamVjdCBuYW1lICAgICAgXDogQz1OTCwgTz1Qb2xhclNTTCwgQ049bG9jYWxob3N0XG5pc3N1ZWQgIG9uICAgICAgICBcOiAyMDEzLTA4LTA5IDA5XDoxN1w6MDNcbmV4cGlyZXMgb24gICAgICAgIFw6IDIwMjMtMDgtMDcgMDlcOjE3XDowM1xuc2lnbmVkIHVzaW5nICAgICAgXDogUlNBIHdpdGggU0hBMVxuRUMga2V5IHNpemUgICAgICAgXDogMTkyIGJpdHNcbmJhc2ljIGNvbnN0cmFpbnRzIFw6IENBPWZhbHNlXG4iCitkZXBlbmRzX29uOk1CRURUTFNfUEVNX1BBUlNFX0M6TUJFRFRMU19QS19DQU5fRUNEU0FfU09NRTpQU0FfV0FOVF9FQ0NfU0VDUF9SMV8xOTI6TUJFRFRMU19NRF9DQU5fU0hBMTpNQkVEVExTX1JTQV9DCit4NTA5X2NlcnRfaW5mbzoiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvcGFyc2VfaW5wdXQvc2VydmVyMy5jcnQiOiJjZXJ0LiB2ZXJzaW9uICAgICBcOiAzXG5zZXJpYWwgbnVtYmVyICAgICBcOiAwRFxuaXNzdWVyIG5hbWUgICAgICAgXDogQz1OTCwgTz1Qb2xhclNTTCwgQ049UG9sYXJTU0wgVGVzdCBDQVxuc3ViamVjdCBuYW1lICAgICAgXDogQz1OTCwgTz1Qb2xhclNTTCwgQ049bG9jYWxob3N0XG5pc3N1ZWQgIG9uICAgICAgICBcOiAyMDEzLTA4LTA5IDA5XDoxN1w6MDNcbmV4cGlyZXMgb24gICAgICAgIFw6IDIwMjMtMDgtMDcgMDlcOjE3XDowM1xuc2lnbmVkIHVzaW5nICAgICAgXDogUlNBIHdpdGggU0hBMVxuRUMga2V5IHNpemUgICAgICAgXDogMTkyIGJpdHNcbmJhc2ljIGNvbnN0cmFpbnRzIFw6IENBPWZhbHNlXG4iCiAKIFg1MDkgQ1JUIGluZm9ybWF0aW9uIEJpdHN0cmluZyBpbiBzdWJqZWN0IG5hbWUKIGRlcGVuZHNfb246TUJFRFRMU19QRU1fUEFSU0VfQzpNQkVEVExTX1JTQV9DOk1CRURUTFNfTURfQ0FOX1NIQTEKLXg1MDlfY2VydF9pbmZvOiJkYXRhX2ZpbGVzL3BhcnNlX2lucHV0L2JpdHN0cmluZy1pbi1kbi5wZW0iOiJjZXJ0LiB2ZXJzaW9uICAgICBcOiAzXG5zZXJpYWwgbnVtYmVyICAgICBcOiAwMlxuaXNzdWVyIG5hbWUgICAgICAgXDogQ049VGVzdCBDQSAwMSwgU1Q9RWNuaXZvcnAsIEM9WFgsIGVtYWlsQWRkcmVzcz10Y2FAZXhhbXBsZS5jb20sIE89VGVzdCBDQSBBdXRob3JpdHlcbnN1YmplY3QgbmFtZSAgICAgIFw6IEM9WFgsIE89dGNhLCBTVD1FY25pdm9ycCwgT1U9VENBLCBDTj1DbGllbnQsIGVtYWlsQWRkcmVzcz1jbGllbnRAZXhhbXBsZS5jb20sIHNlcmlhbE51bWJlcj03MTAxMDEyMjU1LCB1bmlxdWVJZGVudGlmaWVyPSMwMzBCMDAzNzMxMzAzMTMwMzEzMjMyMzUzNVxuaXNzdWVkICBvbiAgICAgICAgXDogMjAxNS0wMy0xMSAxMlw6MDZcOjUxXG5leHBpcmVzIG9uICAgICAgICBcOiAyMDI1LTAzLTA4IDEyXDowNlw6NTFcbnNpZ25lZCB1c2luZyAgICAgIFw6IFJTQSB3aXRoIFNIQTFcblJTQSBrZXkgc2l6ZSAgICAgIFw6IDIwNDggYml0c1xuYmFzaWMgY29uc3RyYWludHMgXDogQ0E9ZmFsc2VcbnN1YmplY3QgYWx0IG5hbWUgIFw6XG4gICAgcmZjODIyTmFtZSBcOiBjbGllbnRAZXhhbXBsZS5jb21cbmV4dCBrZXkgdXNhZ2UgICAgIFw6IFRMUyBXZWIgQ2xpZW50IEF1dGhlbnRpY2F0aW9uXG4iCit4NTA5X2NlcnRfaW5mbzoiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvcGFyc2VfaW5wdXQvYml0c3RyaW5nLWluLWRuLnBlbSI6ImNlcnQuIHZlcnNpb24gICAgIFw6IDNcbnNlcmlhbCBudW1iZXIgICAgIFw6IDAyXG5pc3N1ZXIgbmFtZSAgICAgICBcOiBDTj1UZXN0IENBIDAxLCBTVD1FY25pdm9ycCwgQz1YWCwgZW1haWxBZGRyZXNzPXRjYUBleGFtcGxlLmNvbSwgTz1UZXN0IENBIEF1dGhvcml0eVxuc3ViamVjdCBuYW1lICAgICAgXDogQz1YWCwgTz10Y2EsIFNUPUVjbml2b3JwLCBPVT1UQ0EsIENOPUNsaWVudCwgZW1haWxBZGRyZXNzPWNsaWVudEBleGFtcGxlLmNvbSwgc2VyaWFsTnVtYmVyPTcxMDEwMTIyNTUsIHVuaXF1ZUlkZW50aWZpZXI9IzAzMEIwMDM3MzEzMDMxMzAzMTMyMzIzNTM1XG5pc3N1ZWQgIG9uICAgICAgICBcOiAyMDE1LTAzLTExIDEyXDowNlw6NTFcbmV4cGlyZXMgb24gICAgICAgIFw6IDIwMjUtMDMtMDggMTJcOjA2XDo1MVxuc2lnbmVkIHVzaW5nICAgICAgXDogUlNBIHdpdGggU0hBMVxuUlNBIGtleSBzaXplICAgICAgXDogMjA0OCBiaXRzXG5iYXNpYyBjb25zdHJhaW50cyBcOiBDQT1mYWxzZVxuc3ViamVjdCBhbHQgbmFtZSAgXDpcbiAgICByZmM4MjJOYW1lIFw6IGNsaWVudEBleGFtcGxlLmNvbVxuZXh0IGtleSB1c2FnZSAgICAgXDogVExTIFdlYiBDbGllbnQgQXV0aGVudGljYXRpb25cbiIKIAogWDUwOSBDUlQgaW5mb3JtYXRpb24gTm9uLUFTQ0lJIHN0cmluZyBpbiBpc3N1ZXIgbmFtZSBhbmQgc3ViamVjdCBuYW1lCi1kZXBlbmRzX29uOk1CRURUTFNfUEVNX1BBUlNFX0M6TUJFRFRMU19SU0FfQzpNQkVEVExTX01EX0NBTl9TSEEyNTYKLXg1MDlfY2VydF9pbmZvOiJkYXRhX2ZpbGVzL3BhcnNlX2lucHV0L25vbi1hc2NpaS1zdHJpbmctaW4taXNzdWVyLmNydCI6ImNlcnQuIHZlcnNpb24gICAgIFw6IDNcbnNlcmlhbCBudW1iZXIgICAgIFw6IDA1XDpFNlw6NTNcOkU3XDoxQlw6NzRcOkYwXDpCNVw6RDNcOjg0XDo2RFw6MENcOjZEXDpEQ1w6RkFcOjNGXDpBNFw6NUFcOjJCXDpFMFxuaXNzdWVyIG5hbWUgICAgICAgXDogQz1KUCwgU1Q9VG9reW8sIE89XFxDM1xcQTNcXEMyXFw4M1xcQzJcXDg2XFxDM1xcQTNcXEMyXFw4MlxcQzJcXEI5XFxDM1xcQTNcXEMyXFw4M1xcQzJcXDg4IEx0ZCwgQ049XFxDM1xcQTNcXEMyXFw4M1xcQzJcXDg2XFxDM1xcQTNcXEMyXFw4MlxcQzJcXEI5XFxDM1xcQTNcXEMyXFw4M1xcQzJcXDg4IENBXG5zdWJqZWN0IG5hbWUgICAgICBcOiBDPUpQLCBTVD1Ub2t5bywgTz1cXEMzXFxBM1xcQzJcXDgzXFxDMlxcODZcXEMzXFxBM1xcQzJcXDgyXFxDMlxcQjlcXEMzXFxBM1xcQzJcXDgzXFxDMlxcODggTHRkLCBDTj1cXEMzXFxBM1xcQzJcXDgzXFxDMlxcODZcXEMzXFxBM1xcQzJcXDgyXFxDMlxcQjlcXEMzXFxBM1xcQzJcXDgzXFxDMlxcODggQ0Fcbmlzc3VlZCAgb24gICAgICAgIFw6IDIwMjAtMDUtMjAgMTZcOjE3XDoyM1xuZXhwaXJlcyBvbiAgICAgICAgXDogMjAyMC0wNi0xOSAxNlw6MTdcOjIzXG5zaWduZWQgdXNpbmcgICAgICBcOiBSU0Egd2l0aCBTSEEtMjU2XG5SU0Ega2V5IHNpemUgICAgICBcOiAyMDQ4IGJpdHNcbmJhc2ljIGNvbnN0cmFpbnRzIFw6IENBPXRydWVcbiIKK2RlcGVuZHNfb246TUJFRFRMU19QRU1fUEFSU0VfQzpNQkVEVExTX1JTQV9DOlBTQV9XQU5UX0FMR19TSEFfMjU2Cit4NTA5X2NlcnRfaW5mbzoiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvcGFyc2VfaW5wdXQvbm9uLWFzY2lpLXN0cmluZy1pbi1pc3N1ZXIuY3J0IjoiY2VydC4gdmVyc2lvbiAgICAgXDogM1xuc2VyaWFsIG51bWJlciAgICAgXDogMDVcOkU2XDo1M1w6RTdcOjFCXDo3NFw6RjBcOkI1XDpEM1w6ODRcOjZEXDowQ1w6NkRcOkRDXDpGQVw6M0ZcOkE0XDo1QVw6MkJcOkUwXG5pc3N1ZXIgbmFtZSAgICAgICBcOiBDPUpQLCBTVD1Ub2t5bywgTz1cXEMzXFxBM1xcQzJcXDgzXFxDMlxcODZcXEMzXFxBM1xcQzJcXDgyXFxDMlxcQjlcXEMzXFxBM1xcQzJcXDgzXFxDMlxcODggTHRkLCBDTj1cXEMzXFxBM1xcQzJcXDgzXFxDMlxcODZcXEMzXFxBM1xcQzJcXDgyXFxDMlxcQjlcXEMzXFxBM1xcQzJcXDgzXFxDMlxcODggQ0FcbnN1YmplY3QgbmFtZSAgICAgIFw6IEM9SlAsIFNUPVRva3lvLCBPPVxcQzNcXEEzXFxDMlxcODNcXEMyXFw4NlxcQzNcXEEzXFxDMlxcODJcXEMyXFxCOVxcQzNcXEEzXFxDMlxcODNcXEMyXFw4OCBMdGQsIENOPVxcQzNcXEEzXFxDMlxcODNcXEMyXFw4NlxcQzNcXEEzXFxDMlxcODJcXEMyXFxCOVxcQzNcXEEzXFxDMlxcODNcXEMyXFw4OCBDQVxuaXNzdWVkICBvbiAgICAgICAgXDogMjAyMC0wNS0yMCAxNlw6MTdcOjIzXG5leHBpcmVzIG9uICAgICAgICBcOiAyMDIwLTA2LTE5IDE2XDoxN1w6MjNcbnNpZ25lZCB1c2luZyAgICAgIFw6IFJTQSB3aXRoIFNIQS0yNTZcblJTQSBrZXkgc2l6ZSAgICAgIFw6IDIwNDggYml0c1xuYmFzaWMgY29uc3RyYWludHMgXDogQ0E9dHJ1ZVxuIgogCiBYNTA5IENSVCBpbmZvcm1hdGlvbiBQYXJzaW5nIElQdjQgYW5kIElQdjYgSVAgbmFtZXMKLWRlcGVuZHNfb246TUJFRFRMU19QS19DQU5fRUNEU0FfVkVSSUZZOk1CRURUTFNfTURfQ0FOX1NIQTI1NjpNQkVEVExTX0VDUF9IQVZFX1NFQ1AyNTZSMTpNQkVEVExTX1JTQV9DCi14NTA5X2NlcnRfaW5mbzoiZGF0YV9maWxlcy9zZXJ2ZXI1LXRyaWNreS1pcC1zYW4uY3J0LmRlciI6ImNlcnQuIHZlcnNpb24gICAgIFw6IDNcbnNlcmlhbCBudW1iZXIgICAgIFw6IDREXG5pc3N1ZXIgbmFtZSAgICAgICBcOiBDPVVLLCBPPU1iZWQgVExTLCBDTj1NYmVkIFRMUyBUcmlja3kgSVAgU0FOXG5zdWJqZWN0IG5hbWUgICAgICBcOiBDPVVLLCBPPU1iZWQgVExTLCBDTj1NYmVkIFRMUyBUcmlja3kgSVAgU0FOXG5pc3N1ZWQgIG9uICAgICAgICBcOiAyMDIzLTA2LTA1IDExXDozMFw6MzZcbmV4cGlyZXMgb24gICAgICAgIFw6IDIwMzMtMDYtMDIgMTFcOjMwXDozNlxuc2lnbmVkIHVzaW5nICAgICAgXDogRUNEU0Egd2l0aCBTSEEyNTZcbkVDIGtleSBzaXplICAgICAgIFw6IDI1NiBiaXRzXG5zdWJqZWN0IGFsdCBuYW1lICBcOlxuICAgIGlQQWRkcmVzcyBcOiA5Ny45OC45OS4xMDBcbiAgICBpUEFkZHJlc3MgXDogNjE2Mlw6NjM2NFw6MkU2NVw6Nzg2MVw6NkQ3MFw6NkM2NVw6MkU2M1w6NkY2RFxuIgorZGVwZW5kc19vbjpNQkVEVExTX1BLX0NBTl9FQ0RTQV9WRVJJRlk6UFNBX1dBTlRfQUxHX1NIQV8yNTY6TUJFRFRMU19FQ1BfSEFWRV9TRUNQMjU2UjE6TUJFRFRMU19SU0FfQworeDUwOV9jZXJ0X2luZm86Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3NlcnZlcjUtdHJpY2t5LWlwLXNhbi5jcnQuZGVyIjoiY2VydC4gdmVyc2lvbiAgICAgXDogM1xuc2VyaWFsIG51bWJlciAgICAgXDogNERcbmlzc3VlciBuYW1lICAgICAgIFw6IEM9VUssIE89TWJlZCBUTFMsIENOPU1iZWQgVExTIFRyaWNreSBJUCBTQU5cbnN1YmplY3QgbmFtZSAgICAgIFw6IEM9VUssIE89TWJlZCBUTFMsIENOPU1iZWQgVExTIFRyaWNreSBJUCBTQU5cbmlzc3VlZCAgb24gICAgICAgIFw6IDIwMjMtMDYtMDUgMTFcOjMwXDozNlxuZXhwaXJlcyBvbiAgICAgICAgXDogMjAzMy0wNi0wMiAxMVw6MzBcOjM2XG5zaWduZWQgdXNpbmcgICAgICBcOiBFQ0RTQSB3aXRoIFNIQTI1NlxuRUMga2V5IHNpemUgICAgICAgXDogMjU2IGJpdHNcbnN1YmplY3QgYWx0IG5hbWUgIFw6XG4gICAgaVBBZGRyZXNzIFw6IDk3Ljk4Ljk5LjEwMFxuICAgIGlQQWRkcmVzcyBcOiA2MTYyXDo2MzY0XDoyRTY1XDo3ODYxXDo2RDcwXDo2QzY1XDoyRTYzXDo2RjZEXG4iCiAKIFg1MDkgU0FOIHBhcnNpbmcgb3RoZXJOYW1lCi1kZXBlbmRzX29uOk1CRURUTFNfUEtfQ0FOX0VDRFNBX1NPTUU6TUJFRFRMU19FQ1BfSEFWRV9TRUNQMjU2UjE6TUJFRFRMU19NRF9DQU5fU0hBMjU2Ci14NTA5X3BhcnNlX3NhbjoiZGF0YV9maWxlcy9wYXJzZV9pbnB1dC9zZXJ2ZXI1LW90aGVybmFtZS5jcnQuZGVyIjoidHlwZSBcOiAwXG5vdGhlck5hbWUgXDogaGFyZHdhcmUgbW9kdWxlIG5hbWUgXDogaGFyZHdhcmUgdHlwZSBcOiAxLjMuNi4xLjQuMS4xNy4zLCBoYXJkd2FyZSBzZXJpYWwgbnVtYmVyIFw6IDMxMzIzMzM0MzUzNlxuIjowCitkZXBlbmRzX29uOk1CRURUTFNfUEtfQ0FOX0VDRFNBX1NPTUU6TUJFRFRMU19FQ1BfSEFWRV9TRUNQMjU2UjE6UFNBX1dBTlRfQUxHX1NIQV8yNTYKK3g1MDlfcGFyc2Vfc2FuOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9wYXJzZV9pbnB1dC9zZXJ2ZXI1LW90aGVybmFtZS5jcnQuZGVyIjoidHlwZSBcOiAwXG5vdGhlck5hbWUgXDogaGFyZHdhcmUgbW9kdWxlIG5hbWUgXDogaGFyZHdhcmUgdHlwZSBcOiAxLjMuNi4xLjQuMS4xNy4zLCBoYXJkd2FyZSBzZXJpYWwgbnVtYmVyIFw6IDMxMzIzMzM0MzUzNlxuIjowCiAKIFg1MDkgU0FOIHBhcnNpbmcgYmluYXJ5IG90aGVyTmFtZQotZGVwZW5kc19vbjpNQkVEVExTX1BLX0NBTl9FQ0RTQV9TT01FOk1CRURUTFNfRUNQX0hBVkVfU0VDUDI1NlIxOk1CRURUTFNfTURfQ0FOX1NIQTI1NgoteDUwOV9wYXJzZV9zYW46ImRhdGFfZmlsZXMvcGFyc2VfaW5wdXQvc2VydmVyNS1ub25wcmludGFibGVfb3RoZXJuYW1lLmNydC5kZXIiOiJ0eXBlIFw6IDBcbm90aGVyTmFtZSBcOiBoYXJkd2FyZSBtb2R1bGUgbmFtZSBcOiBoYXJkd2FyZSB0eXBlIFw6IDEuMy42LjEuNC4xLjE3LjMsIGhhcmR3YXJlIHNlcmlhbCBudW1iZXIgXDogMzEzMjMzODA4MTAwODE4MDMzMzIzMVxuIjowCitkZXBlbmRzX29uOk1CRURUTFNfUEtfQ0FOX0VDRFNBX1NPTUU6TUJFRFRMU19FQ1BfSEFWRV9TRUNQMjU2UjE6UFNBX1dBTlRfQUxHX1NIQV8yNTYKK3g1MDlfcGFyc2Vfc2FuOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9wYXJzZV9pbnB1dC9zZXJ2ZXI1LW5vbnByaW50YWJsZV9vdGhlcm5hbWUuY3J0LmRlciI6InR5cGUgXDogMFxub3RoZXJOYW1lIFw6IGhhcmR3YXJlIG1vZHVsZSBuYW1lIFw6IGhhcmR3YXJlIHR5cGUgXDogMS4zLjYuMS40LjEuMTcuMywgaGFyZHdhcmUgc2VyaWFsIG51bWJlciBcOiAzMTMyMzM4MDgxMDA4MTgwMzMzMjMxXG4iOjAKIAogWDUwOSBTQU4gcGFyc2luZyBkaXJlY3RvcnlOYW1lCi1kZXBlbmRzX29uOk1CRURUTFNfUEtfQ0FOX0VDRFNBX1NPTUU6TUJFRFRMU19FQ1BfSEFWRV9TRUNQMjU2UjE6TUJFRFRMU19NRF9DQU5fU0hBMjU2Ci14NTA5X3BhcnNlX3NhbjoiZGF0YV9maWxlcy9wYXJzZV9pbnB1dC9zZXJ2ZXI1LWRpcmVjdG9yeW5hbWUuY3J0LmRlciI6InR5cGUgXDogNFxuZGlyZWN0b3J5TmFtZSBcOiBDPVVLLCBPPU1iZWQgVExTLCBDTj1NYmVkIFRMUyBkaXJlY3RvcnlOYW1lIFNBTlxuIjowCitkZXBlbmRzX29uOk1CRURUTFNfUEtfQ0FOX0VDRFNBX1NPTUU6TUJFRFRMU19FQ1BfSEFWRV9TRUNQMjU2UjE6UFNBX1dBTlRfQUxHX1NIQV8yNTYKK3g1MDlfcGFyc2Vfc2FuOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9wYXJzZV9pbnB1dC9zZXJ2ZXI1LWRpcmVjdG9yeW5hbWUuY3J0LmRlciI6InR5cGUgXDogNFxuZGlyZWN0b3J5TmFtZSBcOiBDPVVLLCBPPU1iZWQgVExTLCBDTj1NYmVkIFRMUyBkaXJlY3RvcnlOYW1lIFNBTlxuIjowCiAKIFg1MDkgU0FOIHBhcnNpbmcgZGlyZWN0b3J5TmFtZSwgc2VxIG1hbGZvcm1lZAotZGVwZW5kc19vbjpNQkVEVExTX1BLX0NBTl9FQ0RTQV9TT01FOk1CRURUTFNfRUNQX0hBVkVfU0VDUDI1NlIxOk1CRURUTFNfTURfQ0FOX1NIQTI1NgoteDUwOV9wYXJzZV9zYW46ImRhdGFfZmlsZXMvcGFyc2VfaW5wdXQvc2VydmVyNS1kaXJlY3RvcnluYW1lLXNlcS1tYWxmb3JtZWQuY3J0LmRlciI6IiI6TUJFRFRMU19FUlJfQVNOMV9VTkVYUEVDVEVEX1RBRworZGVwZW5kc19vbjpNQkVEVExTX1BLX0NBTl9FQ0RTQV9TT01FOk1CRURUTFNfRUNQX0hBVkVfU0VDUDI1NlIxOlBTQV9XQU5UX0FMR19TSEFfMjU2Cit4NTA5X3BhcnNlX3NhbjoiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvcGFyc2VfaW5wdXQvc2VydmVyNS1kaXJlY3RvcnluYW1lLXNlcS1tYWxmb3JtZWQuY3J0LmRlciI6IiI6TUJFRFRMU19FUlJfQVNOMV9VTkVYUEVDVEVEX1RBRwogCiBYNTA5IFNBTiBwYXJzaW5nIHR3byBkaXJlY3RvcnlOYW1lcywgc2Vjb25kIEROIE9JRCBtYWxmb3JtZWQKLWRlcGVuZHNfb246TUJFRFRMU19QS19DQU5fRUNEU0FfU09NRTpNQkVEVExTX0VDUF9IQVZFX1NFQ1AyNTZSMTpNQkVEVExTX01EX0NBTl9TSEEyNTYKLXg1MDlfcGFyc2Vfc2FuOiJkYXRhX2ZpbGVzL3BhcnNlX2lucHV0L3NlcnZlcjUtc2Vjb25kLWRpcmVjdG9yeW5hbWUtb2lkLW1hbGZvcm1lZC5jcnQuZGVyIjoiIjpNQkVEVExTX0VSUl9YNTA5X0lOVkFMSURfTkFNRSArIE1CRURUTFNfRVJSX0FTTjFfT1VUX09GX0RBVEEKK2RlcGVuZHNfb246TUJFRFRMU19QS19DQU5fRUNEU0FfU09NRTpNQkVEVExTX0VDUF9IQVZFX1NFQ1AyNTZSMTpQU0FfV0FOVF9BTEdfU0hBXzI1NgoreDUwOV9wYXJzZV9zYW46Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3BhcnNlX2lucHV0L3NlcnZlcjUtc2Vjb25kLWRpcmVjdG9yeW5hbWUtb2lkLW1hbGZvcm1lZC5jcnQuZGVyIjoiIjpNQkVEVExTX0VSUl9YNTA5X0lOVkFMSURfTkFNRSArIE1CRURUTFNfRVJSX0FTTjFfT1VUX09GX0RBVEEKIAogWDUwOSBTQU4gcGFyc2luZyBkTlNOYW1lCi1kZXBlbmRzX29uOk1CRURUTFNfUEVNX1BBUlNFX0M6TUJFRFRMU19SU0FfQzpNQkVEVExTX01EX0NBTl9TSEEyNTYKLXg1MDlfcGFyc2Vfc2FuOiJkYXRhX2ZpbGVzL3BhcnNlX2lucHV0L2NlcnRfZXhhbXBsZV9tdWx0aS5jcnQiOiJ0eXBlIFw6IDJcbmROU05hbWUgXDogZXhhbXBsZS5jb21cbnR5cGUgXDogMlxuZE5TTmFtZSBcOiBleGFtcGxlLm5ldFxudHlwZSBcOiAyXG5kTlNOYW1lIFw6ICouZXhhbXBsZS5vcmdcbiI6MAorZGVwZW5kc19vbjpNQkVEVExTX1BFTV9QQVJTRV9DOk1CRURUTFNfUlNBX0M6UFNBX1dBTlRfQUxHX1NIQV8yNTYKK3g1MDlfcGFyc2Vfc2FuOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9wYXJzZV9pbnB1dC9jZXJ0X2V4YW1wbGVfbXVsdGkuY3J0IjoidHlwZSBcOiAyXG5kTlNOYW1lIFw6IGV4YW1wbGUuY29tXG50eXBlIFw6IDJcbmROU05hbWUgXDogZXhhbXBsZS5uZXRcbnR5cGUgXDogMlxuZE5TTmFtZSBcOiAqLmV4YW1wbGUub3JnXG4iOjAKIAogWDUwOSBTQU4gcGFyc2luZyAgTXVsdGlwbGUgZGlmZmVyZW50IHR5cGVzCi1kZXBlbmRzX29uOk1CRURUTFNfUEVNX1BBUlNFX0M6TUJFRFRMU19QS19DQU5fRUNEU0FfU09NRTpNQkVEVExTX0VDUF9IQVZFX1NFQ1AyNTZSMTpNQkVEVExTX01EX0NBTl9TSEEyNTYKLXg1MDlfcGFyc2Vfc2FuOiJkYXRhX2ZpbGVzL3BhcnNlX2lucHV0L211bHRpcGxlX3Nhbi5jcnQiOiJ0eXBlIFw6IDJcbmROU05hbWUgXDogZXhhbXBsZS5jb21cbnR5cGUgXDogMFxub3RoZXJOYW1lIFw6IGhhcmR3YXJlIG1vZHVsZSBuYW1lIFw6IGhhcmR3YXJlIHR5cGUgXDogMS4zLjYuMS40LjEuMTcuMywgaGFyZHdhcmUgc2VyaWFsIG51bWJlciBcOiAzMTMyMzMzNDM1MzZcbnR5cGUgXDogMlxuZE5TTmFtZSBcOiBleGFtcGxlLm5ldFxudHlwZSBcOiAyXG5kTlNOYW1lIFw6ICouZXhhbXBsZS5vcmdcbiI6MAorZGVwZW5kc19vbjpNQkVEVExTX1BFTV9QQVJTRV9DOk1CRURUTFNfUEtfQ0FOX0VDRFNBX1NPTUU6TUJFRFRMU19FQ1BfSEFWRV9TRUNQMjU2UjE6UFNBX1dBTlRfQUxHX1NIQV8yNTYKK3g1MDlfcGFyc2Vfc2FuOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9wYXJzZV9pbnB1dC9tdWx0aXBsZV9zYW4uY3J0IjoidHlwZSBcOiAyXG5kTlNOYW1lIFw6IGV4YW1wbGUuY29tXG50eXBlIFw6IDBcbm90aGVyTmFtZSBcOiBoYXJkd2FyZSBtb2R1bGUgbmFtZSBcOiBoYXJkd2FyZSB0eXBlIFw6IDEuMy42LjEuNC4xLjE3LjMsIGhhcmR3YXJlIHNlcmlhbCBudW1iZXIgXDogMzEzMjMzMzQzNTM2XG50eXBlIFw6IDJcbmROU05hbWUgXDogZXhhbXBsZS5uZXRcbnR5cGUgXDogMlxuZE5TTmFtZSBcOiAqLmV4YW1wbGUub3JnXG4iOjAKIAogWDUwOSBTQU4gcGFyc2luZywgbm8gc3ViamVjdCBhbHQgbmFtZQotZGVwZW5kc19vbjpNQkVEVExTX1BFTV9QQVJTRV9DOk1CRURUTFNfUlNBX0M6TUJFRFRMU19NRF9DQU5fU0hBMjU2Ok1CRURUTFNfUEtfQ0FOX0VDRFNBX1NPTUUKLXg1MDlfcGFyc2Vfc2FuOiJkYXRhX2ZpbGVzL3BhcnNlX2lucHV0L3NlcnZlcjQuY3J0IjoiIjowCitkZXBlbmRzX29uOk1CRURUTFNfUEVNX1BBUlNFX0M6TUJFRFRMU19SU0FfQzpQU0FfV0FOVF9BTEdfU0hBXzI1NjpNQkVEVExTX1BLX0NBTl9FQ0RTQV9TT01FCit4NTA5X3BhcnNlX3NhbjoiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvcGFyc2VfaW5wdXQvc2VydmVyNC5jcnQiOiIiOjAKIAogWDUwOSBTQU4gcGFyc2luZywgdW5zdXBwb3J0ZWQgb3RoZXJOYW1lIG5hbWUKLWRlcGVuZHNfb246TUJFRFRMU19QS19DQU5fRUNEU0FfU09NRTpNQkVEVExTX0VDUF9IQVZFX1NFQ1AyNTZSMTpNQkVEVExTX01EX0NBTl9TSEEyNTYKLXg1MDlfcGFyc2Vfc2FuOiJkYXRhX2ZpbGVzL3BhcnNlX2lucHV0L3NlcnZlcjUtdW5zdXBwb3J0ZWRfb3RoZXJuYW1lLmNydC5kZXIiOiIiOjAKK2RlcGVuZHNfb246TUJFRFRMU19QS19DQU5fRUNEU0FfU09NRTpNQkVEVExTX0VDUF9IQVZFX1NFQ1AyNTZSMTpQU0FfV0FOVF9BTEdfU0hBXzI1NgoreDUwOV9wYXJzZV9zYW46Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3BhcnNlX2lucHV0L3NlcnZlcjUtdW5zdXBwb3J0ZWRfb3RoZXJuYW1lLmNydC5kZXIiOiIiOjAKIAogWDUwOSBTQU4gcGFyc2luZyByZmM4MjJOYW1lCi1kZXBlbmRzX29uOk1CRURUTFNfUEVNX1BBUlNFX0M6TUJFRFRMU19SU0FfQzpNQkVEVExTX01EX0NBTl9TSEEyNTYKLXg1MDlfcGFyc2Vfc2FuOiJkYXRhX2ZpbGVzL3BhcnNlX2lucHV0L3Rlc3RfY2VydF9yZmM4MjJuYW1lLmNydC5kZXIiOiJ0eXBlIFw6IDFcbnJmYzgyMk5hbWUgXDogbXlAb3RoZXIuYWRkcmVzc1xudHlwZSBcOiAxXG5yZmM4MjJOYW1lIFw6IHNlY29uZEBvdGhlci5hZGRyZXNzXG4iOjAKK2RlcGVuZHNfb246TUJFRFRMU19QRU1fUEFSU0VfQzpNQkVEVExTX1JTQV9DOlBTQV9XQU5UX0FMR19TSEFfMjU2Cit4NTA5X3BhcnNlX3NhbjoiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvcGFyc2VfaW5wdXQvdGVzdF9jZXJ0X3JmYzgyMm5hbWUuY3J0LmRlciI6InR5cGUgXDogMVxucmZjODIyTmFtZSBcOiBteUBvdGhlci5hZGRyZXNzXG50eXBlIFw6IDFcbnJmYzgyMk5hbWUgXDogc2Vjb25kQG90aGVyLmFkZHJlc3NcbiI6MAogCiBYNTA5IENSVCBpbmZvcm1hdGlvbiBQYXJzaW5nIElQIChpbnZhbGlkIGRhdGEpCi1kZXBlbmRzX29uOk1CRURUTFNfUEtfQ0FOX0VDRFNBX1ZFUklGWTpNQkVEVExTX01EX0NBTl9TSEEyNTY6TUJFRFRMU19FQ1BfSEFWRV9TRUNQMjU2UjE6TUJFRFRMU19SU0FfQwoteDUwOV9wYXJzZV9zYW46ImRhdGFfZmlsZXMvc2VydmVyNS10cmlja3ktaXAtc2FuLW1hbGZvcm1lZC1sZW4uY3J0LmRlciI6IiI6TUJFRFRMU19FUlJfWDUwOV9CQURfSU5QVVRfREFUQQorZGVwZW5kc19vbjpNQkVEVExTX1BLX0NBTl9FQ0RTQV9WRVJJRlk6UFNBX1dBTlRfQUxHX1NIQV8yNTY6TUJFRFRMU19FQ1BfSEFWRV9TRUNQMjU2UjE6TUJFRFRMU19SU0FfQworeDUwOV9wYXJzZV9zYW46Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3NlcnZlcjUtdHJpY2t5LWlwLXNhbi1tYWxmb3JtZWQtbGVuLmNydC5kZXIiOiIiOk1CRURUTFNfRVJSX1g1MDlfQkFEX0lOUFVUX0RBVEEKIAogWDUwOSBDUkwgaW5mb3JtYXRpb24gIzEKIGRlcGVuZHNfb246TUJFRFRMU19QRU1fUEFSU0VfQzpNQkVEVExTX01EX0NBTl9TSEExOk1CRURUTFNfUlNBX0MKLW1iZWR0bHNfeDUwOV9jcmxfaW5mbzoiZGF0YV9maWxlcy9wYXJzZV9pbnB1dC9jcmxfZXhwaXJlZC5wZW0iOiJDUkwgdmVyc2lvbiAgIFw6IDFcbmlzc3VlciBuYW1lICAgXDogQz1OTCwgTz1Qb2xhclNTTCwgQ049UG9sYXJTU0wgVGVzdCBDQVxudGhpcyB1cGRhdGUgICBcOiAyMDExLTAyLTIwIDEwXDoyNFw6MTlcbm5leHQgdXBkYXRlICAgXDogMjAxMS0wMi0yMCAxMVw6MjRcOjE5XG5SZXZva2VkIGNlcnRpZmljYXRlc1w6XG5zZXJpYWwgbnVtYmVyXDogMDEgcmV2b2NhdGlvbiBkYXRlXDogMjAxMS0wMi0xMiAxNFw6NDRcOjA3XG5zZXJpYWwgbnVtYmVyXDogMDMgcmV2b2NhdGlvbiBkYXRlXDogMjAxMS0wMi0xMiAxNFw6NDRcOjA3XG5zaWduZWQgdXNpbmcgIFw6IFJTQSB3aXRoIFNIQTFcbiIKK21iZWR0bHNfeDUwOV9jcmxfaW5mbzoiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvcGFyc2VfaW5wdXQvY3JsX2V4cGlyZWQucGVtIjoiQ1JMIHZlcnNpb24gICBcOiAxXG5pc3N1ZXIgbmFtZSAgIFw6IEM9TkwsIE89UG9sYXJTU0wsIENOPVBvbGFyU1NMIFRlc3QgQ0FcbnRoaXMgdXBkYXRlICAgXDogMjAxMS0wMi0yMCAxMFw6MjRcOjE5XG5uZXh0IHVwZGF0ZSAgIFw6IDIwMTEtMDItMjAgMTFcOjI0XDoxOVxuUmV2b2tlZCBjZXJ0aWZpY2F0ZXNcOlxuc2VyaWFsIG51bWJlclw6IDAxIHJldm9jYXRpb24gZGF0ZVw6IDIwMTEtMDItMTIgMTRcOjQ0XDowN1xuc2VyaWFsIG51bWJlclw6IDAzIHJldm9jYXRpb24gZGF0ZVw6IDIwMTEtMDItMTIgMTRcOjQ0XDowN1xuc2lnbmVkIHVzaW5nICBcOiBSU0Egd2l0aCBTSEExXG4iCiAKIFg1MDkgQ1JMIEluZm9ybWF0aW9uIE1ENSBEaWdlc3QKIGRlcGVuZHNfb246TUJFRFRMU19QRU1fUEFSU0VfQzpNQkVEVExTX01EX0NBTl9NRDU6TUJFRFRMU19SU0FfQwotbWJlZHRsc194NTA5X2NybF9pbmZvOiJkYXRhX2ZpbGVzL3BhcnNlX2lucHV0L2NybF9tZDUucGVtIjoiQ1JMIHZlcnNpb24gICBcOiAxXG5pc3N1ZXIgbmFtZSAgIFw6IEM9TkwsIE89UG9sYXJTU0wsIENOPVBvbGFyU1NMIFRlc3QgQ0FcbnRoaXMgdXBkYXRlICAgXDogMjAxMS0wMi0xMiAxNFw6NDRcOjA3XG5uZXh0IHVwZGF0ZSAgIFw6IDIwMTEtMDQtMTMgMTRcOjQ0XDowN1xuUmV2b2tlZCBjZXJ0aWZpY2F0ZXNcOlxuc2VyaWFsIG51bWJlclw6IDAxIHJldm9jYXRpb24gZGF0ZVw6IDIwMTEtMDItMTIgMTRcOjQ0XDowN1xuc2VyaWFsIG51bWJlclw6IDAzIHJldm9jYXRpb24gZGF0ZVw6IDIwMTEtMDItMTIgMTRcOjQ0XDowN1xuc2lnbmVkIHVzaW5nICBcOiBSU0Egd2l0aCBNRDVcbiIKK21iZWR0bHNfeDUwOV9jcmxfaW5mbzoiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvcGFyc2VfaW5wdXQvY3JsX21kNS5wZW0iOiJDUkwgdmVyc2lvbiAgIFw6IDFcbmlzc3VlciBuYW1lICAgXDogQz1OTCwgTz1Qb2xhclNTTCwgQ049UG9sYXJTU0wgVGVzdCBDQVxudGhpcyB1cGRhdGUgICBcOiAyMDExLTAyLTEyIDE0XDo0NFw6MDdcbm5leHQgdXBkYXRlICAgXDogMjAxMS0wNC0xMyAxNFw6NDRcOjA3XG5SZXZva2VkIGNlcnRpZmljYXRlc1w6XG5zZXJpYWwgbnVtYmVyXDogMDEgcmV2b2NhdGlvbiBkYXRlXDogMjAxMS0wMi0xMiAxNFw6NDRcOjA3XG5zZXJpYWwgbnVtYmVyXDogMDMgcmV2b2NhdGlvbiBkYXRlXDogMjAxMS0wMi0xMiAxNFw6NDRcOjA3XG5zaWduZWQgdXNpbmcgIFw6IFJTQSB3aXRoIE1ENVxuIgogCiBYNTA5IENSTCBJbmZvcm1hdGlvbiBTSEExIERpZ2VzdAogZGVwZW5kc19vbjpNQkVEVExTX1BFTV9QQVJTRV9DOk1CRURUTFNfTURfQ0FOX1NIQTE6TUJFRFRMU19SU0FfQwotbWJlZHRsc194NTA5X2NybF9pbmZvOiJkYXRhX2ZpbGVzL3BhcnNlX2lucHV0L2NybF9zaGExLnBlbSI6IkNSTCB2ZXJzaW9uICAgXDogMVxuaXNzdWVyIG5hbWUgICBcOiBDPU5MLCBPPVBvbGFyU1NMLCBDTj1Qb2xhclNTTCBUZXN0IENBXG50aGlzIHVwZGF0ZSAgIFw6IDIwMTEtMDItMTIgMTRcOjQ0XDowN1xubmV4dCB1cGRhdGUgICBcOiAyMDExLTA0LTEzIDE0XDo0NFw6MDdcblJldm9rZWQgY2VydGlmaWNhdGVzXDpcbnNlcmlhbCBudW1iZXJcOiAwMSByZXZvY2F0aW9uIGRhdGVcOiAyMDExLTAyLTEyIDE0XDo0NFw6MDdcbnNlcmlhbCBudW1iZXJcOiAwMyByZXZvY2F0aW9uIGRhdGVcOiAyMDExLTAyLTEyIDE0XDo0NFw6MDdcbnNpZ25lZCB1c2luZyAgXDogUlNBIHdpdGggU0hBMVxuIgorbWJlZHRsc194NTA5X2NybF9pbmZvOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9wYXJzZV9pbnB1dC9jcmxfc2hhMS5wZW0iOiJDUkwgdmVyc2lvbiAgIFw6IDFcbmlzc3VlciBuYW1lICAgXDogQz1OTCwgTz1Qb2xhclNTTCwgQ049UG9sYXJTU0wgVGVzdCBDQVxudGhpcyB1cGRhdGUgICBcOiAyMDExLTAyLTEyIDE0XDo0NFw6MDdcbm5leHQgdXBkYXRlICAgXDogMjAxMS0wNC0xMyAxNFw6NDRcOjA3XG5SZXZva2VkIGNlcnRpZmljYXRlc1w6XG5zZXJpYWwgbnVtYmVyXDogMDEgcmV2b2NhdGlvbiBkYXRlXDogMjAxMS0wMi0xMiAxNFw6NDRcOjA3XG5zZXJpYWwgbnVtYmVyXDogMDMgcmV2b2NhdGlvbiBkYXRlXDogMjAxMS0wMi0xMiAxNFw6NDRcOjA3XG5zaWduZWQgdXNpbmcgIFw6IFJTQSB3aXRoIFNIQTFcbiIKIAogWDUwOSBDUkwgSW5mb3JtYXRpb24gU0hBMjI0IERpZ2VzdAotZGVwZW5kc19vbjpNQkVEVExTX1BFTV9QQVJTRV9DOk1CRURUTFNfTURfQ0FOX1NIQTIyNDpNQkVEVExTX1JTQV9DCi1tYmVkdGxzX3g1MDlfY3JsX2luZm86ImRhdGFfZmlsZXMvcGFyc2VfaW5wdXQvY3JsX3NoYTIyNC5wZW0iOiJDUkwgdmVyc2lvbiAgIFw6IDFcbmlzc3VlciBuYW1lICAgXDogQz1OTCwgTz1Qb2xhclNTTCwgQ049UG9sYXJTU0wgVGVzdCBDQVxudGhpcyB1cGRhdGUgICBcOiAyMDExLTAyLTEyIDE0XDo0NFw6MDdcbm5leHQgdXBkYXRlICAgXDogMjAxMS0wNC0xMyAxNFw6NDRcOjA3XG5SZXZva2VkIGNlcnRpZmljYXRlc1w6XG5zZXJpYWwgbnVtYmVyXDogMDEgcmV2b2NhdGlvbiBkYXRlXDogMjAxMS0wMi0xMiAxNFw6NDRcOjA3XG5zZXJpYWwgbnVtYmVyXDogMDMgcmV2b2NhdGlvbiBkYXRlXDogMjAxMS0wMi0xMiAxNFw6NDRcOjA3XG5zaWduZWQgdXNpbmcgIFw6IFJTQSB3aXRoIFNIQS0yMjRcbiIKK2RlcGVuZHNfb246TUJFRFRMU19QRU1fUEFSU0VfQzpQU0FfV0FOVF9BTEdfU0hBXzIyNDpNQkVEVExTX1JTQV9DCittYmVkdGxzX3g1MDlfY3JsX2luZm86Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3BhcnNlX2lucHV0L2NybF9zaGEyMjQucGVtIjoiQ1JMIHZlcnNpb24gICBcOiAxXG5pc3N1ZXIgbmFtZSAgIFw6IEM9TkwsIE89UG9sYXJTU0wsIENOPVBvbGFyU1NMIFRlc3QgQ0FcbnRoaXMgdXBkYXRlICAgXDogMjAxMS0wMi0xMiAxNFw6NDRcOjA3XG5uZXh0IHVwZGF0ZSAgIFw6IDIwMTEtMDQtMTMgMTRcOjQ0XDowN1xuUmV2b2tlZCBjZXJ0aWZpY2F0ZXNcOlxuc2VyaWFsIG51bWJlclw6IDAxIHJldm9jYXRpb24gZGF0ZVw6IDIwMTEtMDItMTIgMTRcOjQ0XDowN1xuc2VyaWFsIG51bWJlclw6IDAzIHJldm9jYXRpb24gZGF0ZVw6IDIwMTEtMDItMTIgMTRcOjQ0XDowN1xuc2lnbmVkIHVzaW5nICBcOiBSU0Egd2l0aCBTSEEtMjI0XG4iCiAKIFg1MDkgQ1JMIEluZm9ybWF0aW9uIFNIQTI1NiBEaWdlc3QKLWRlcGVuZHNfb246TUJFRFRMU19QRU1fUEFSU0VfQzpNQkVEVExTX01EX0NBTl9TSEEyNTY6TUJFRFRMU19SU0FfQwotbWJlZHRsc194NTA5X2NybF9pbmZvOiJkYXRhX2ZpbGVzL3BhcnNlX2lucHV0L2NybF9zaGEyNTYucGVtIjoiQ1JMIHZlcnNpb24gICBcOiAxXG5pc3N1ZXIgbmFtZSAgIFw6IEM9TkwsIE89UG9sYXJTU0wsIENOPVBvbGFyU1NMIFRlc3QgQ0FcbnRoaXMgdXBkYXRlICAgXDogMjAxMS0wMi0xMiAxNFw6NDRcOjA3XG5uZXh0IHVwZGF0ZSAgIFw6IDIwMTEtMDQtMTMgMTRcOjQ0XDowN1xuUmV2b2tlZCBjZXJ0aWZpY2F0ZXNcOlxuc2VyaWFsIG51bWJlclw6IDAxIHJldm9jYXRpb24gZGF0ZVw6IDIwMTEtMDItMTIgMTRcOjQ0XDowN1xuc2VyaWFsIG51bWJlclw6IDAzIHJldm9jYXRpb24gZGF0ZVw6IDIwMTEtMDItMTIgMTRcOjQ0XDowN1xuc2lnbmVkIHVzaW5nICBcOiBSU0Egd2l0aCBTSEEtMjU2XG4iCitkZXBlbmRzX29uOk1CRURUTFNfUEVNX1BBUlNFX0M6UFNBX1dBTlRfQUxHX1NIQV8yNTY6TUJFRFRMU19SU0FfQworbWJlZHRsc194NTA5X2NybF9pbmZvOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9wYXJzZV9pbnB1dC9jcmxfc2hhMjU2LnBlbSI6IkNSTCB2ZXJzaW9uICAgXDogMVxuaXNzdWVyIG5hbWUgICBcOiBDPU5MLCBPPVBvbGFyU1NMLCBDTj1Qb2xhclNTTCBUZXN0IENBXG50aGlzIHVwZGF0ZSAgIFw6IDIwMTEtMDItMTIgMTRcOjQ0XDowN1xubmV4dCB1cGRhdGUgICBcOiAyMDExLTA0LTEzIDE0XDo0NFw6MDdcblJldm9rZWQgY2VydGlmaWNhdGVzXDpcbnNlcmlhbCBudW1iZXJcOiAwMSByZXZvY2F0aW9uIGRhdGVcOiAyMDExLTAyLTEyIDE0XDo0NFw6MDdcbnNlcmlhbCBudW1iZXJcOiAwMyByZXZvY2F0aW9uIGRhdGVcOiAyMDExLTAyLTEyIDE0XDo0NFw6MDdcbnNpZ25lZCB1c2luZyAgXDogUlNBIHdpdGggU0hBLTI1NlxuIgogCiBYNTA5IENSTCBJbmZvcm1hdGlvbiBTSEEzODQgRGlnZXN0Ci1kZXBlbmRzX29uOk1CRURUTFNfUEVNX1BBUlNFX0M6TUJFRFRMU19NRF9DQU5fU0hBMzg0Ok1CRURUTFNfUlNBX0MKLW1iZWR0bHNfeDUwOV9jcmxfaW5mbzoiZGF0YV9maWxlcy9wYXJzZV9pbnB1dC9jcmxfc2hhMzg0LnBlbSI6IkNSTCB2ZXJzaW9uICAgXDogMVxuaXNzdWVyIG5hbWUgICBcOiBDPU5MLCBPPVBvbGFyU1NMLCBDTj1Qb2xhclNTTCBUZXN0IENBXG50aGlzIHVwZGF0ZSAgIFw6IDIwMTEtMDItMTIgMTRcOjQ0XDowN1xubmV4dCB1cGRhdGUgICBcOiAyMDExLTA0LTEzIDE0XDo0NFw6MDdcblJldm9rZWQgY2VydGlmaWNhdGVzXDpcbnNlcmlhbCBudW1iZXJcOiAwMSByZXZvY2F0aW9uIGRhdGVcOiAyMDExLTAyLTEyIDE0XDo0NFw6MDdcbnNlcmlhbCBudW1iZXJcOiAwMyByZXZvY2F0aW9uIGRhdGVcOiAyMDExLTAyLTEyIDE0XDo0NFw6MDdcbnNpZ25lZCB1c2luZyAgXDogUlNBIHdpdGggU0hBLTM4NFxuIgorZGVwZW5kc19vbjpNQkVEVExTX1BFTV9QQVJTRV9DOlBTQV9XQU5UX0FMR19TSEFfMzg0Ok1CRURUTFNfUlNBX0MKK21iZWR0bHNfeDUwOV9jcmxfaW5mbzoiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvcGFyc2VfaW5wdXQvY3JsX3NoYTM4NC5wZW0iOiJDUkwgdmVyc2lvbiAgIFw6IDFcbmlzc3VlciBuYW1lICAgXDogQz1OTCwgTz1Qb2xhclNTTCwgQ049UG9sYXJTU0wgVGVzdCBDQVxudGhpcyB1cGRhdGUgICBcOiAyMDExLTAyLTEyIDE0XDo0NFw6MDdcbm5leHQgdXBkYXRlICAgXDogMjAxMS0wNC0xMyAxNFw6NDRcOjA3XG5SZXZva2VkIGNlcnRpZmljYXRlc1w6XG5zZXJpYWwgbnVtYmVyXDogMDEgcmV2b2NhdGlvbiBkYXRlXDogMjAxMS0wMi0xMiAxNFw6NDRcOjA3XG5zZXJpYWwgbnVtYmVyXDogMDMgcmV2b2NhdGlvbiBkYXRlXDogMjAxMS0wMi0xMiAxNFw6NDRcOjA3XG5zaWduZWQgdXNpbmcgIFw6IFJTQSB3aXRoIFNIQS0zODRcbiIKIAogWDUwOSBDUkwgSW5mb3JtYXRpb24gU0hBNTEyIERpZ2VzdAogZGVwZW5kc19vbjpNQkVEVExTX1BFTV9QQVJTRV9DOk1CRURUTFNfTURfQ0FOX1NIQTUxMjpNQkVEVExTX1JTQV9DCi1tYmVkdGxzX3g1MDlfY3JsX2luZm86ImRhdGFfZmlsZXMvcGFyc2VfaW5wdXQvY3JsX3NoYTUxMi5wZW0iOiJDUkwgdmVyc2lvbiAgIFw6IDFcbmlzc3VlciBuYW1lICAgXDogQz1OTCwgTz1Qb2xhclNTTCwgQ049UG9sYXJTU0wgVGVzdCBDQVxudGhpcyB1cGRhdGUgICBcOiAyMDExLTAyLTEyIDE0XDo0NFw6MDdcbm5leHQgdXBkYXRlICAgXDogMjAxMS0wNC0xMyAxNFw6NDRcOjA3XG5SZXZva2VkIGNlcnRpZmljYXRlc1w6XG5zZXJpYWwgbnVtYmVyXDogMDEgcmV2b2NhdGlvbiBkYXRlXDogMjAxMS0wMi0xMiAxNFw6NDRcOjA3XG5zZXJpYWwgbnVtYmVyXDogMDMgcmV2b2NhdGlvbiBkYXRlXDogMjAxMS0wMi0xMiAxNFw6NDRcOjA3XG5zaWduZWQgdXNpbmcgIFw6IFJTQSB3aXRoIFNIQS01MTJcbiIKK21iZWR0bHNfeDUwOV9jcmxfaW5mbzoiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvcGFyc2VfaW5wdXQvY3JsX3NoYTUxMi5wZW0iOiJDUkwgdmVyc2lvbiAgIFw6IDFcbmlzc3VlciBuYW1lICAgXDogQz1OTCwgTz1Qb2xhclNTTCwgQ049UG9sYXJTU0wgVGVzdCBDQVxudGhpcyB1cGRhdGUgICBcOiAyMDExLTAyLTEyIDE0XDo0NFw6MDdcbm5leHQgdXBkYXRlICAgXDogMjAxMS0wNC0xMyAxNFw6NDRcOjA3XG5SZXZva2VkIGNlcnRpZmljYXRlc1w6XG5zZXJpYWwgbnVtYmVyXDogMDEgcmV2b2NhdGlvbiBkYXRlXDogMjAxMS0wMi0xMiAxNFw6NDRcOjA3XG5zZXJpYWwgbnVtYmVyXDogMDMgcmV2b2NhdGlvbiBkYXRlXDogMjAxMS0wMi0xMiAxNFw6NDRcOjA3XG5zaWduZWQgdXNpbmcgIFw6IFJTQSB3aXRoIFNIQS01MTJcbiIKIAogWDUwOSBDUkwgaW5mb3JtYXRpb24gUlNBLVBTUywgU0hBMSBEaWdlc3QKIGRlcGVuZHNfb246TUJFRFRMU19QRU1fUEFSU0VfQzpNQkVEVExTX1g1MDlfUlNBU1NBX1BTU19TVVBQT1JUOk1CRURUTFNfTURfQ0FOX1NIQTEKLW1iZWR0bHNfeDUwOV9jcmxfaW5mbzoiZGF0YV9maWxlcy9wYXJzZV9pbnB1dC9jcmwtcnNhLXBzcy1zaGExLnBlbSI6IkNSTCB2ZXJzaW9uICAgXDogMlxuaXNzdWVyIG5hbWUgICBcOiBDPU5MLCBPPVBvbGFyU1NMLCBDTj1Qb2xhclNTTCBUZXN0IENBXG50aGlzIHVwZGF0ZSAgIFw6IDIwMTQtMDEtMjAgMTNcOjQ2XDozNVxubmV4dCB1cGRhdGUgICBcOiAyMDI0LTAxLTE4IDEzXDo0Nlw6MzVcblJldm9rZWQgY2VydGlmaWNhdGVzXDpcbnNlcmlhbCBudW1iZXJcOiAwQSByZXZvY2F0aW9uIGRhdGVcOiAyMDEzLTA5LTI0IDE2XDoyOFw6MzhcbnNlcmlhbCBudW1iZXJcOiAxNiByZXZvY2F0aW9uIGRhdGVcOiAyMDE0LTAxLTIwIDEzXDo0M1w6MDVcbnNpZ25lZCB1c2luZyAgXDogUlNBU1NBLVBTUyAoU0hBMSwgTUdGMS1TSEExLCAweEVBKVxuIgorbWJlZHRsc194NTA5X2NybF9pbmZvOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9wYXJzZV9pbnB1dC9jcmwtcnNhLXBzcy1zaGExLnBlbSI6IkNSTCB2ZXJzaW9uICAgXDogMlxuaXNzdWVyIG5hbWUgICBcOiBDPU5MLCBPPVBvbGFyU1NMLCBDTj1Qb2xhclNTTCBUZXN0IENBXG50aGlzIHVwZGF0ZSAgIFw6IDIwMTQtMDEtMjAgMTNcOjQ2XDozNVxubmV4dCB1cGRhdGUgICBcOiAyMDI0LTAxLTE4IDEzXDo0Nlw6MzVcblJldm9rZWQgY2VydGlmaWNhdGVzXDpcbnNlcmlhbCBudW1iZXJcOiAwQSByZXZvY2F0aW9uIGRhdGVcOiAyMDEzLTA5LTI0IDE2XDoyOFw6MzhcbnNlcmlhbCBudW1iZXJcOiAxNiByZXZvY2F0aW9uIGRhdGVcOiAyMDE0LTAxLTIwIDEzXDo0M1w6MDVcbnNpZ25lZCB1c2luZyAgXDogUlNBU1NBLVBTUyAoU0hBMSwgTUdGMS1TSEExLCAweEVBKVxuIgogCiBYNTA5IENSTCBpbmZvcm1hdGlvbiBSU0EtUFNTLCBTSEEyMjQgRGlnZXN0Ci1kZXBlbmRzX29uOk1CRURUTFNfUEVNX1BBUlNFX0M6TUJFRFRMU19YNTA5X1JTQVNTQV9QU1NfU1VQUE9SVDpNQkVEVExTX01EX0NBTl9TSEEyMjQKLW1iZWR0bHNfeDUwOV9jcmxfaW5mbzoiZGF0YV9maWxlcy9wYXJzZV9pbnB1dC9jcmwtcnNhLXBzcy1zaGEyMjQucGVtIjoiQ1JMIHZlcnNpb24gICBcOiAyXG5pc3N1ZXIgbmFtZSAgIFw6IEM9TkwsIE89UG9sYXJTU0wsIENOPVBvbGFyU1NMIFRlc3QgQ0FcbnRoaXMgdXBkYXRlICAgXDogMjAxNC0wMS0yMCAxM1w6NTZcOjA2XG5uZXh0IHVwZGF0ZSAgIFw6IDIwMjQtMDEtMTggMTNcOjU2XDowNlxuUmV2b2tlZCBjZXJ0aWZpY2F0ZXNcOlxuc2VyaWFsIG51bWJlclw6IDBBIHJldm9jYXRpb24gZGF0ZVw6IDIwMTMtMDktMjQgMTZcOjI4XDozOFxuc2VyaWFsIG51bWJlclw6IDE2IHJldm9jYXRpb24gZGF0ZVw6IDIwMTQtMDEtMjAgMTNcOjQzXDowNVxuc2lnbmVkIHVzaW5nICBcOiBSU0FTU0EtUFNTIChTSEEyMjQsIE1HRjEtU0hBMjI0LCAweEUyKVxuIgorZGVwZW5kc19vbjpNQkVEVExTX1BFTV9QQVJTRV9DOk1CRURUTFNfWDUwOV9SU0FTU0FfUFNTX1NVUFBPUlQ6UFNBX1dBTlRfQUxHX1NIQV8yMjQKK21iZWR0bHNfeDUwOV9jcmxfaW5mbzoiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvcGFyc2VfaW5wdXQvY3JsLXJzYS1wc3Mtc2hhMjI0LnBlbSI6IkNSTCB2ZXJzaW9uICAgXDogMlxuaXNzdWVyIG5hbWUgICBcOiBDPU5MLCBPPVBvbGFyU1NMLCBDTj1Qb2xhclNTTCBUZXN0IENBXG50aGlzIHVwZGF0ZSAgIFw6IDIwMTQtMDEtMjAgMTNcOjU2XDowNlxubmV4dCB1cGRhdGUgICBcOiAyMDI0LTAxLTE4IDEzXDo1Nlw6MDZcblJldm9rZWQgY2VydGlmaWNhdGVzXDpcbnNlcmlhbCBudW1iZXJcOiAwQSByZXZvY2F0aW9uIGRhdGVcOiAyMDEzLTA5LTI0IDE2XDoyOFw6MzhcbnNlcmlhbCBudW1iZXJcOiAxNiByZXZvY2F0aW9uIGRhdGVcOiAyMDE0LTAxLTIwIDEzXDo0M1w6MDVcbnNpZ25lZCB1c2luZyAgXDogUlNBU1NBLVBTUyAoU0hBMjI0LCBNR0YxLVNIQTIyNCwgMHhFMilcbiIKIAogWDUwOSBDUkwgaW5mb3JtYXRpb24gUlNBLVBTUywgU0hBMjU2IERpZ2VzdAotZGVwZW5kc19vbjpNQkVEVExTX1BFTV9QQVJTRV9DOk1CRURUTFNfWDUwOV9SU0FTU0FfUFNTX1NVUFBPUlQ6TUJFRFRMU19NRF9DQU5fU0hBMjU2Ci1tYmVkdGxzX3g1MDlfY3JsX2luZm86ImRhdGFfZmlsZXMvcGFyc2VfaW5wdXQvY3JsLXJzYS1wc3Mtc2hhMjU2LnBlbSI6IkNSTCB2ZXJzaW9uICAgXDogMlxuaXNzdWVyIG5hbWUgICBcOiBDPU5MLCBPPVBvbGFyU1NMLCBDTj1Qb2xhclNTTCBUZXN0IENBXG50aGlzIHVwZGF0ZSAgIFw6IDIwMTQtMDEtMjAgMTNcOjU2XDoxNlxubmV4dCB1cGRhdGUgICBcOiAyMDI0LTAxLTE4IDEzXDo1Nlw6MTZcblJldm9rZWQgY2VydGlmaWNhdGVzXDpcbnNlcmlhbCBudW1iZXJcOiAwQSByZXZvY2F0aW9uIGRhdGVcOiAyMDEzLTA5LTI0IDE2XDoyOFw6MzhcbnNlcmlhbCBudW1iZXJcOiAxNiByZXZvY2F0aW9uIGRhdGVcOiAyMDE0LTAxLTIwIDEzXDo0M1w6MDVcbnNpZ25lZCB1c2luZyAgXDogUlNBU1NBLVBTUyAoU0hBMjU2LCBNR0YxLVNIQTI1NiwgMHhERSlcbiIKK2RlcGVuZHNfb246TUJFRFRMU19QRU1fUEFSU0VfQzpNQkVEVExTX1g1MDlfUlNBU1NBX1BTU19TVVBQT1JUOlBTQV9XQU5UX0FMR19TSEFfMjU2CittYmVkdGxzX3g1MDlfY3JsX2luZm86Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3BhcnNlX2lucHV0L2NybC1yc2EtcHNzLXNoYTI1Ni5wZW0iOiJDUkwgdmVyc2lvbiAgIFw6IDJcbmlzc3VlciBuYW1lICAgXDogQz1OTCwgTz1Qb2xhclNTTCwgQ049UG9sYXJTU0wgVGVzdCBDQVxudGhpcyB1cGRhdGUgICBcOiAyMDE0LTAxLTIwIDEzXDo1Nlw6MTZcbm5leHQgdXBkYXRlICAgXDogMjAyNC0wMS0xOCAxM1w6NTZcOjE2XG5SZXZva2VkIGNlcnRpZmljYXRlc1w6XG5zZXJpYWwgbnVtYmVyXDogMEEgcmV2b2NhdGlvbiBkYXRlXDogMjAxMy0wOS0yNCAxNlw6MjhcOjM4XG5zZXJpYWwgbnVtYmVyXDogMTYgcmV2b2NhdGlvbiBkYXRlXDogMjAxNC0wMS0yMCAxM1w6NDNcOjA1XG5zaWduZWQgdXNpbmcgIFw6IFJTQVNTQS1QU1MgKFNIQTI1NiwgTUdGMS1TSEEyNTYsIDB4REUpXG4iCiAKIFg1MDkgQ1JMIGluZm9ybWF0aW9uIFJTQS1QU1MsIFNIQTM4NCBEaWdlc3QKLWRlcGVuZHNfb246TUJFRFRMU19QRU1fUEFSU0VfQzpNQkVEVExTX1g1MDlfUlNBU1NBX1BTU19TVVBQT1JUOk1CRURUTFNfTURfQ0FOX1NIQTM4NAotbWJlZHRsc194NTA5X2NybF9pbmZvOiJkYXRhX2ZpbGVzL3BhcnNlX2lucHV0L2NybC1yc2EtcHNzLXNoYTM4NC5wZW0iOiJDUkwgdmVyc2lvbiAgIFw6IDJcbmlzc3VlciBuYW1lICAgXDogQz1OTCwgTz1Qb2xhclNTTCwgQ049UG9sYXJTU0wgVGVzdCBDQVxudGhpcyB1cGRhdGUgICBcOiAyMDE0LTAxLTIwIDEzXDo1Nlw6Mjhcbm5leHQgdXBkYXRlICAgXDogMjAyNC0wMS0xOCAxM1w6NTZcOjI4XG5SZXZva2VkIGNlcnRpZmljYXRlc1w6XG5zZXJpYWwgbnVtYmVyXDogMEEgcmV2b2NhdGlvbiBkYXRlXDogMjAxMy0wOS0yNCAxNlw6MjhcOjM4XG5zZXJpYWwgbnVtYmVyXDogMTYgcmV2b2NhdGlvbiBkYXRlXDogMjAxNC0wMS0yMCAxM1w6NDNcOjA1XG5zaWduZWQgdXNpbmcgIFw6IFJTQVNTQS1QU1MgKFNIQTM4NCwgTUdGMS1TSEEzODQsIDB4Q0UpXG4iCitkZXBlbmRzX29uOk1CRURUTFNfUEVNX1BBUlNFX0M6TUJFRFRMU19YNTA5X1JTQVNTQV9QU1NfU1VQUE9SVDpQU0FfV0FOVF9BTEdfU0hBXzM4NAorbWJlZHRsc194NTA5X2NybF9pbmZvOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9wYXJzZV9pbnB1dC9jcmwtcnNhLXBzcy1zaGEzODQucGVtIjoiQ1JMIHZlcnNpb24gICBcOiAyXG5pc3N1ZXIgbmFtZSAgIFw6IEM9TkwsIE89UG9sYXJTU0wsIENOPVBvbGFyU1NMIFRlc3QgQ0FcbnRoaXMgdXBkYXRlICAgXDogMjAxNC0wMS0yMCAxM1w6NTZcOjI4XG5uZXh0IHVwZGF0ZSAgIFw6IDIwMjQtMDEtMTggMTNcOjU2XDoyOFxuUmV2b2tlZCBjZXJ0aWZpY2F0ZXNcOlxuc2VyaWFsIG51bWJlclw6IDBBIHJldm9jYXRpb24gZGF0ZVw6IDIwMTMtMDktMjQgMTZcOjI4XDozOFxuc2VyaWFsIG51bWJlclw6IDE2IHJldm9jYXRpb24gZGF0ZVw6IDIwMTQtMDEtMjAgMTNcOjQzXDowNVxuc2lnbmVkIHVzaW5nICBcOiBSU0FTU0EtUFNTIChTSEEzODQsIE1HRjEtU0hBMzg0LCAweENFKVxuIgogCiBYNTA5IENSTCBpbmZvcm1hdGlvbiBSU0EtUFNTLCBTSEE1MTIgRGlnZXN0CiBkZXBlbmRzX29uOk1CRURUTFNfUEVNX1BBUlNFX0M6TUJFRFRMU19YNTA5X1JTQVNTQV9QU1NfU1VQUE9SVDpNQkVEVExTX01EX0NBTl9TSEE1MTIKLW1iZWR0bHNfeDUwOV9jcmxfaW5mbzoiZGF0YV9maWxlcy9wYXJzZV9pbnB1dC9jcmwtcnNhLXBzcy1zaGE1MTIucGVtIjoiQ1JMIHZlcnNpb24gICBcOiAyXG5pc3N1ZXIgbmFtZSAgIFw6IEM9TkwsIE89UG9sYXJTU0wsIENOPVBvbGFyU1NMIFRlc3QgQ0FcbnRoaXMgdXBkYXRlICAgXDogMjAxNC0wMS0yMCAxM1w6NTZcOjM4XG5uZXh0IHVwZGF0ZSAgIFw6IDIwMjQtMDEtMTggMTNcOjU2XDozOFxuUmV2b2tlZCBjZXJ0aWZpY2F0ZXNcOlxuc2VyaWFsIG51bWJlclw6IDBBIHJldm9jYXRpb24gZGF0ZVw6IDIwMTMtMDktMjQgMTZcOjI4XDozOFxuc2VyaWFsIG51bWJlclw6IDE2IHJldm9jYXRpb24gZGF0ZVw6IDIwMTQtMDEtMjAgMTNcOjQzXDowNVxuc2lnbmVkIHVzaW5nICBcOiBSU0FTU0EtUFNTIChTSEE1MTIsIE1HRjEtU0hBNTEyLCAweEJFKVxuIgorbWJlZHRsc194NTA5X2NybF9pbmZvOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9wYXJzZV9pbnB1dC9jcmwtcnNhLXBzcy1zaGE1MTIucGVtIjoiQ1JMIHZlcnNpb24gICBcOiAyXG5pc3N1ZXIgbmFtZSAgIFw6IEM9TkwsIE89UG9sYXJTU0wsIENOPVBvbGFyU1NMIFRlc3QgQ0FcbnRoaXMgdXBkYXRlICAgXDogMjAxNC0wMS0yMCAxM1w6NTZcOjM4XG5uZXh0IHVwZGF0ZSAgIFw6IDIwMjQtMDEtMTggMTNcOjU2XDozOFxuUmV2b2tlZCBjZXJ0aWZpY2F0ZXNcOlxuc2VyaWFsIG51bWJlclw6IDBBIHJldm9jYXRpb24gZGF0ZVw6IDIwMTMtMDktMjQgMTZcOjI4XDozOFxuc2VyaWFsIG51bWJlclw6IDE2IHJldm9jYXRpb24gZGF0ZVw6IDIwMTQtMDEtMjAgMTNcOjQzXDowNVxuc2lnbmVkIHVzaW5nICBcOiBSU0FTU0EtUFNTIChTSEE1MTIsIE1HRjEtU0hBNTEyLCAweEJFKVxuIgogCiBYNTA5IENSTCBJbmZvcm1hdGlvbiBFQywgU0hBMSBEaWdlc3QKIGRlcGVuZHNfb246TUJFRFRMU19QRU1fUEFSU0VfQzpNQkVEVExTX01EX0NBTl9TSEExOk1CRURUTFNfUEtfQ0FOX0VDRFNBX1NPTUUKLW1iZWR0bHNfeDUwOV9jcmxfaW5mbzoiZGF0YV9maWxlcy9wYXJzZV9pbnB1dC9jcmwtZWMtc2hhMS5wZW0iOiJDUkwgdmVyc2lvbiAgIFw6IDJcbmlzc3VlciBuYW1lICAgXDogQz1OTCwgTz1Qb2xhclNTTCwgQ049UG9sYXJzc2wgVGVzdCBFQyBDQVxudGhpcyB1cGRhdGUgICBcOiAyMDEzLTA5LTI0IDE2XDozMVw6MDhcbm5leHQgdXBkYXRlICAgXDogMjAyMy0wOS0yMiAxNlw6MzFcOjA4XG5SZXZva2VkIGNlcnRpZmljYXRlc1w6XG5zZXJpYWwgbnVtYmVyXDogMEEgcmV2b2NhdGlvbiBkYXRlXDogMjAxMy0wOS0yNCAxNlw6MjhcOjM4XG5zaWduZWQgdXNpbmcgIFw6IEVDRFNBIHdpdGggU0hBMVxuIgorbWJlZHRsc194NTA5X2NybF9pbmZvOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9wYXJzZV9pbnB1dC9jcmwtZWMtc2hhMS5wZW0iOiJDUkwgdmVyc2lvbiAgIFw6IDJcbmlzc3VlciBuYW1lICAgXDogQz1OTCwgTz1Qb2xhclNTTCwgQ049UG9sYXJzc2wgVGVzdCBFQyBDQVxudGhpcyB1cGRhdGUgICBcOiAyMDEzLTA5LTI0IDE2XDozMVw6MDhcbm5leHQgdXBkYXRlICAgXDogMjAyMy0wOS0yMiAxNlw6MzFcOjA4XG5SZXZva2VkIGNlcnRpZmljYXRlc1w6XG5zZXJpYWwgbnVtYmVyXDogMEEgcmV2b2NhdGlvbiBkYXRlXDogMjAxMy0wOS0yNCAxNlw6MjhcOjM4XG5zaWduZWQgdXNpbmcgIFw6IEVDRFNBIHdpdGggU0hBMVxuIgogCiBYNTA5IENSTCBJbmZvcm1hdGlvbiBFQywgU0hBMjI0IERpZ2VzdAotZGVwZW5kc19vbjpNQkVEVExTX1BFTV9QQVJTRV9DOk1CRURUTFNfTURfQ0FOX1NIQTIyNDpNQkVEVExTX1BLX0NBTl9FQ0RTQV9TT01FCi1tYmVkdGxzX3g1MDlfY3JsX2luZm86ImRhdGFfZmlsZXMvcGFyc2VfaW5wdXQvY3JsLWVjLXNoYTIyNC5wZW0iOiJDUkwgdmVyc2lvbiAgIFw6IDJcbmlzc3VlciBuYW1lICAgXDogQz1OTCwgTz1Qb2xhclNTTCwgQ049UG9sYXJzc2wgVGVzdCBFQyBDQVxudGhpcyB1cGRhdGUgICBcOiAyMDEzLTA5LTI0IDE2XDozMVw6MDhcbm5leHQgdXBkYXRlICAgXDogMjAyMy0wOS0yMiAxNlw6MzFcOjA4XG5SZXZva2VkIGNlcnRpZmljYXRlc1w6XG5zZXJpYWwgbnVtYmVyXDogMEEgcmV2b2NhdGlvbiBkYXRlXDogMjAxMy0wOS0yNCAxNlw6MjhcOjM4XG5zaWduZWQgdXNpbmcgIFw6IEVDRFNBIHdpdGggU0hBMjI0XG4iCitkZXBlbmRzX29uOk1CRURUTFNfUEVNX1BBUlNFX0M6UFNBX1dBTlRfQUxHX1NIQV8yMjQ6TUJFRFRMU19QS19DQU5fRUNEU0FfU09NRQorbWJlZHRsc194NTA5X2NybF9pbmZvOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9wYXJzZV9pbnB1dC9jcmwtZWMtc2hhMjI0LnBlbSI6IkNSTCB2ZXJzaW9uICAgXDogMlxuaXNzdWVyIG5hbWUgICBcOiBDPU5MLCBPPVBvbGFyU1NMLCBDTj1Qb2xhcnNzbCBUZXN0IEVDIENBXG50aGlzIHVwZGF0ZSAgIFw6IDIwMTMtMDktMjQgMTZcOjMxXDowOFxubmV4dCB1cGRhdGUgICBcOiAyMDIzLTA5LTIyIDE2XDozMVw6MDhcblJldm9rZWQgY2VydGlmaWNhdGVzXDpcbnNlcmlhbCBudW1iZXJcOiAwQSByZXZvY2F0aW9uIGRhdGVcOiAyMDEzLTA5LTI0IDE2XDoyOFw6MzhcbnNpZ25lZCB1c2luZyAgXDogRUNEU0Egd2l0aCBTSEEyMjRcbiIKIAogWDUwOSBDUkwgSW5mb3JtYXRpb24gRUMsIFNIQTI1NiBEaWdlc3QKLWRlcGVuZHNfb246TUJFRFRMU19QRU1fUEFSU0VfQzpNQkVEVExTX01EX0NBTl9TSEEyNTY6TUJFRFRMU19QS19DQU5fRUNEU0FfU09NRQotbWJlZHRsc194NTA5X2NybF9pbmZvOiJkYXRhX2ZpbGVzL3BhcnNlX2lucHV0L2NybC1lYy1zaGEyNTYucGVtIjoiQ1JMIHZlcnNpb24gICBcOiAyXG5pc3N1ZXIgbmFtZSAgIFw6IEM9TkwsIE89UG9sYXJTU0wsIENOPVBvbGFyc3NsIFRlc3QgRUMgQ0FcbnRoaXMgdXBkYXRlICAgXDogMjAxMy0wOS0yNCAxNlw6MzFcOjA4XG5uZXh0IHVwZGF0ZSAgIFw6IDIwMjMtMDktMjIgMTZcOjMxXDowOFxuUmV2b2tlZCBjZXJ0aWZpY2F0ZXNcOlxuc2VyaWFsIG51bWJlclw6IDBBIHJldm9jYXRpb24gZGF0ZVw6IDIwMTMtMDktMjQgMTZcOjI4XDozOFxuc2lnbmVkIHVzaW5nICBcOiBFQ0RTQSB3aXRoIFNIQTI1NlxuIgorZGVwZW5kc19vbjpNQkVEVExTX1BFTV9QQVJTRV9DOlBTQV9XQU5UX0FMR19TSEFfMjU2Ok1CRURUTFNfUEtfQ0FOX0VDRFNBX1NPTUUKK21iZWR0bHNfeDUwOV9jcmxfaW5mbzoiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvcGFyc2VfaW5wdXQvY3JsLWVjLXNoYTI1Ni5wZW0iOiJDUkwgdmVyc2lvbiAgIFw6IDJcbmlzc3VlciBuYW1lICAgXDogQz1OTCwgTz1Qb2xhclNTTCwgQ049UG9sYXJzc2wgVGVzdCBFQyBDQVxudGhpcyB1cGRhdGUgICBcOiAyMDEzLTA5LTI0IDE2XDozMVw6MDhcbm5leHQgdXBkYXRlICAgXDogMjAyMy0wOS0yMiAxNlw6MzFcOjA4XG5SZXZva2VkIGNlcnRpZmljYXRlc1w6XG5zZXJpYWwgbnVtYmVyXDogMEEgcmV2b2NhdGlvbiBkYXRlXDogMjAxMy0wOS0yNCAxNlw6MjhcOjM4XG5zaWduZWQgdXNpbmcgIFw6IEVDRFNBIHdpdGggU0hBMjU2XG4iCiAKIFg1MDkgQ1JMIEluZm9ybWF0aW9uIEVDLCBTSEEzODQgRGlnZXN0Ci1kZXBlbmRzX29uOk1CRURUTFNfUEVNX1BBUlNFX0M6TUJFRFRMU19NRF9DQU5fU0hBMzg0Ok1CRURUTFNfUEtfQ0FOX0VDRFNBX1NPTUUKLW1iZWR0bHNfeDUwOV9jcmxfaW5mbzoiZGF0YV9maWxlcy9wYXJzZV9pbnB1dC9jcmwtZWMtc2hhMzg0LnBlbSI6IkNSTCB2ZXJzaW9uICAgXDogMlxuaXNzdWVyIG5hbWUgICBcOiBDPU5MLCBPPVBvbGFyU1NMLCBDTj1Qb2xhcnNzbCBUZXN0IEVDIENBXG50aGlzIHVwZGF0ZSAgIFw6IDIwMTMtMDktMjQgMTZcOjMxXDowOFxubmV4dCB1cGRhdGUgICBcOiAyMDIzLTA5LTIyIDE2XDozMVw6MDhcblJldm9rZWQgY2VydGlmaWNhdGVzXDpcbnNlcmlhbCBudW1iZXJcOiAwQSByZXZvY2F0aW9uIGRhdGVcOiAyMDEzLTA5LTI0IDE2XDoyOFw6MzhcbnNpZ25lZCB1c2luZyAgXDogRUNEU0Egd2l0aCBTSEEzODRcbiIKK2RlcGVuZHNfb246TUJFRFRMU19QRU1fUEFSU0VfQzpQU0FfV0FOVF9BTEdfU0hBXzM4NDpNQkVEVExTX1BLX0NBTl9FQ0RTQV9TT01FCittYmVkdGxzX3g1MDlfY3JsX2luZm86Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3BhcnNlX2lucHV0L2NybC1lYy1zaGEzODQucGVtIjoiQ1JMIHZlcnNpb24gICBcOiAyXG5pc3N1ZXIgbmFtZSAgIFw6IEM9TkwsIE89UG9sYXJTU0wsIENOPVBvbGFyc3NsIFRlc3QgRUMgQ0FcbnRoaXMgdXBkYXRlICAgXDogMjAxMy0wOS0yNCAxNlw6MzFcOjA4XG5uZXh0IHVwZGF0ZSAgIFw6IDIwMjMtMDktMjIgMTZcOjMxXDowOFxuUmV2b2tlZCBjZXJ0aWZpY2F0ZXNcOlxuc2VyaWFsIG51bWJlclw6IDBBIHJldm9jYXRpb24gZGF0ZVw6IDIwMTMtMDktMjQgMTZcOjI4XDozOFxuc2lnbmVkIHVzaW5nICBcOiBFQ0RTQSB3aXRoIFNIQTM4NFxuIgogCiBYNTA5IENSTCBJbmZvcm1hdGlvbiBFQywgU0hBNTEyIERpZ2VzdAogZGVwZW5kc19vbjpNQkVEVExTX1BFTV9QQVJTRV9DOk1CRURUTFNfTURfQ0FOX1NIQTUxMjpNQkVEVExTX1BLX0NBTl9FQ0RTQV9TT01FCi1tYmVkdGxzX3g1MDlfY3JsX2luZm86ImRhdGFfZmlsZXMvcGFyc2VfaW5wdXQvY3JsLWVjLXNoYTUxMi5wZW0iOiJDUkwgdmVyc2lvbiAgIFw6IDJcbmlzc3VlciBuYW1lICAgXDogQz1OTCwgTz1Qb2xhclNTTCwgQ049UG9sYXJzc2wgVGVzdCBFQyBDQVxudGhpcyB1cGRhdGUgICBcOiAyMDEzLTA5LTI0IDE2XDozMVw6MDhcbm5leHQgdXBkYXRlICAgXDogMjAyMy0wOS0yMiAxNlw6MzFcOjA4XG5SZXZva2VkIGNlcnRpZmljYXRlc1w6XG5zZXJpYWwgbnVtYmVyXDogMEEgcmV2b2NhdGlvbiBkYXRlXDogMjAxMy0wOS0yNCAxNlw6MjhcOjM4XG5zaWduZWQgdXNpbmcgIFw6IEVDRFNBIHdpdGggU0hBNTEyXG4iCittYmVkdGxzX3g1MDlfY3JsX2luZm86Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3BhcnNlX2lucHV0L2NybC1lYy1zaGE1MTIucGVtIjoiQ1JMIHZlcnNpb24gICBcOiAyXG5pc3N1ZXIgbmFtZSAgIFw6IEM9TkwsIE89UG9sYXJTU0wsIENOPVBvbGFyc3NsIFRlc3QgRUMgQ0FcbnRoaXMgdXBkYXRlICAgXDogMjAxMy0wOS0yNCAxNlw6MzFcOjA4XG5uZXh0IHVwZGF0ZSAgIFw6IDIwMjMtMDktMjIgMTZcOjMxXDowOFxuUmV2b2tlZCBjZXJ0aWZpY2F0ZXNcOlxuc2VyaWFsIG51bWJlclw6IDBBIHJldm9jYXRpb24gZGF0ZVw6IDIwMTMtMDktMjQgMTZcOjI4XDozOFxuc2lnbmVkIHVzaW5nICBcOiBFQ0RTQSB3aXRoIFNIQTUxMlxuIgogCiBYNTA5IENSTCBNYWxmb3JtZWQgSW5wdXQgKHRyYWlsaW5nIHNwYWNlcyBhdCBlbmQgb2YgZmlsZSkKIGRlcGVuZHNfb246TUJFRFRMU19QRU1fUEFSU0VfQzpNQkVEVExTX01EX0NBTl9TSEExOk1CRURUTFNfTURfQ0FOX1NIQTUxMjpNQkVEVExTX1BLX0NBTl9FQ0RTQV9WRVJJRlkKLW1iZWR0bHNfeDUwOV9jcmxfcGFyc2U6ImRhdGFfZmlsZXMvcGFyc2VfaW5wdXQvY3JsLW1hbGZvcm1lZC10cmFpbGluZy1zcGFjZXMucGVtIjpNQkVEVExTX0VSUl9QRU1fTk9fSEVBREVSX0ZPT1RFUl9QUkVTRU5UCittYmVkdGxzX3g1MDlfY3JsX3BhcnNlOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9wYXJzZV9pbnB1dC9jcmwtbWFsZm9ybWVkLXRyYWlsaW5nLXNwYWNlcy5wZW0iOk1CRURUTFNfRVJSX1BFTV9OT19IRUFERVJfRk9PVEVSX1BSRVNFTlQKIAogWDUwOSBDUkwgVW5zdXBwb3J0ZWQgY3JpdGljYWwgZXh0ZW5zaW9uIChpc3N1aW5nRGlzdHJpYnV0aW9uUG9pbnQpCi1kZXBlbmRzX29uOk1CRURUTFNfUEVNX1BBUlNFX0M6TUJFRFRMU19SU0FfQzpNQkVEVExTX01EX0NBTl9TSEEyNTYKLW1iZWR0bHNfeDUwOV9jcmxfcGFyc2U6ImRhdGFfZmlsZXMvcGFyc2VfaW5wdXQvY3JsLWlkcC5wZW0iOk1CRURUTFNfRVJSX1g1MDlfSU5WQUxJRF9FWFRFTlNJT05TICsgTUJFRFRMU19FUlJfQVNOMV9VTkVYUEVDVEVEX1RBRworZGVwZW5kc19vbjpNQkVEVExTX1BFTV9QQVJTRV9DOk1CRURUTFNfUlNBX0M6UFNBX1dBTlRfQUxHX1NIQV8yNTYKK21iZWR0bHNfeDUwOV9jcmxfcGFyc2U6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3BhcnNlX2lucHV0L2NybC1pZHAucGVtIjpNQkVEVExTX0VSUl9YNTA5X0lOVkFMSURfRVhURU5TSU9OUyArIE1CRURUTFNfRVJSX0FTTjFfVU5FWFBFQ1RFRF9UQUcKIAogWDUwOSBDUkwgVW5zdXBwb3J0ZWQgbm9uLWNyaXRpY2FsIGV4dGVuc2lvbiAoaXNzdWluZ0Rpc3RyaWJ1dGlvblBvaW50KQotZGVwZW5kc19vbjpNQkVEVExTX1BFTV9QQVJTRV9DOk1CRURUTFNfUlNBX0M6TUJFRFRMU19NRF9DQU5fU0hBMjU2Ci1tYmVkdGxzX3g1MDlfY3JsX3BhcnNlOiJkYXRhX2ZpbGVzL3BhcnNlX2lucHV0L2NybC1pZHBuYy5wZW0iOjAKK2RlcGVuZHNfb246TUJFRFRMU19QRU1fUEFSU0VfQzpNQkVEVExTX1JTQV9DOlBTQV9XQU5UX0FMR19TSEFfMjU2CittYmVkdGxzX3g1MDlfY3JsX3BhcnNlOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9wYXJzZV9pbnB1dC9jcmwtaWRwbmMucGVtIjowCiAKIFg1MDkgQ1NSIEluZm9ybWF0aW9uIFJTQSB3aXRoIE1ENQogZGVwZW5kc19vbjpNQkVEVExTX1BFTV9QQVJTRV9DOk1CRURUTFNfTURfQ0FOX01ENTpNQkVEVExTX1JTQV9DOiFNQkVEVExTX1g1MDlfUkVNT1ZFX0lORk8KLW1iZWR0bHNfeDUwOV9jc3JfaW5mbzoiZGF0YV9maWxlcy9wYXJzZV9pbnB1dC9zZXJ2ZXIxLnJlcS5tZDUiOiJDU1IgdmVyc2lvbiAgIFw6IDFcbnN1YmplY3QgbmFtZSAgXDogQz1OTCwgTz1Qb2xhclNTTCwgQ049UG9sYXJTU0wgU2VydmVyIDFcbnNpZ25lZCB1c2luZyAgXDogUlNBIHdpdGggTUQ1XG5SU0Ega2V5IHNpemUgIFw6IDIwNDggYml0c1xuIgorbWJlZHRsc194NTA5X2Nzcl9pbmZvOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9wYXJzZV9pbnB1dC9zZXJ2ZXIxLnJlcS5tZDUiOiJDU1IgdmVyc2lvbiAgIFw6IDFcbnN1YmplY3QgbmFtZSAgXDogQz1OTCwgTz1Qb2xhclNTTCwgQ049UG9sYXJTU0wgU2VydmVyIDFcbnNpZ25lZCB1c2luZyAgXDogUlNBIHdpdGggTUQ1XG5SU0Ega2V5IHNpemUgIFw6IDIwNDggYml0c1xuIgogCiBYNTA5IENTUiBJbmZvcm1hdGlvbiBSU0Egd2l0aCBTSEExCiBkZXBlbmRzX29uOk1CRURUTFNfUEVNX1BBUlNFX0M6TUJFRFRMU19NRF9DQU5fU0hBMTpNQkVEVExTX1JTQV9DOiFNQkVEVExTX1g1MDlfUkVNT1ZFX0lORk8KLW1iZWR0bHNfeDUwOV9jc3JfaW5mbzoiZGF0YV9maWxlcy9wYXJzZV9pbnB1dC9zZXJ2ZXIxLnJlcS5zaGExIjoiQ1NSIHZlcnNpb24gICBcOiAxXG5zdWJqZWN0IG5hbWUgIFw6IEM9TkwsIE89UG9sYXJTU0wsIENOPVBvbGFyU1NMIFNlcnZlciAxXG5zaWduZWQgdXNpbmcgIFw6IFJTQSB3aXRoIFNIQTFcblJTQSBrZXkgc2l6ZSAgXDogMjA0OCBiaXRzXG4iCittYmVkdGxzX3g1MDlfY3NyX2luZm86Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3BhcnNlX2lucHV0L3NlcnZlcjEucmVxLnNoYTEiOiJDU1IgdmVyc2lvbiAgIFw6IDFcbnN1YmplY3QgbmFtZSAgXDogQz1OTCwgTz1Qb2xhclNTTCwgQ049UG9sYXJTU0wgU2VydmVyIDFcbnNpZ25lZCB1c2luZyAgXDogUlNBIHdpdGggU0hBMVxuUlNBIGtleSBzaXplICBcOiAyMDQ4IGJpdHNcbiIKIAogWDUwOSBDU1IgSW5mb3JtYXRpb24gUlNBIHdpdGggU0hBMjI0Ci1kZXBlbmRzX29uOk1CRURUTFNfUEVNX1BBUlNFX0M6TUJFRFRMU19NRF9DQU5fU0hBMjI0Ok1CRURUTFNfUlNBX0M6IU1CRURUTFNfWDUwOV9SRU1PVkVfSU5GTwotbWJlZHRsc194NTA5X2Nzcl9pbmZvOiJkYXRhX2ZpbGVzL3BhcnNlX2lucHV0L3NlcnZlcjEucmVxLnNoYTIyNCI6IkNTUiB2ZXJzaW9uICAgXDogMVxuc3ViamVjdCBuYW1lICBcOiBDPU5MLCBPPVBvbGFyU1NMLCBDTj1Qb2xhclNTTCBTZXJ2ZXIgMVxuc2lnbmVkIHVzaW5nICBcOiBSU0Egd2l0aCBTSEEtMjI0XG5SU0Ega2V5IHNpemUgIFw6IDIwNDggYml0c1xuIgorZGVwZW5kc19vbjpNQkVEVExTX1BFTV9QQVJTRV9DOlBTQV9XQU5UX0FMR19TSEFfMjI0Ok1CRURUTFNfUlNBX0M6IU1CRURUTFNfWDUwOV9SRU1PVkVfSU5GTworbWJlZHRsc194NTA5X2Nzcl9pbmZvOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9wYXJzZV9pbnB1dC9zZXJ2ZXIxLnJlcS5zaGEyMjQiOiJDU1IgdmVyc2lvbiAgIFw6IDFcbnN1YmplY3QgbmFtZSAgXDogQz1OTCwgTz1Qb2xhclNTTCwgQ049UG9sYXJTU0wgU2VydmVyIDFcbnNpZ25lZCB1c2luZyAgXDogUlNBIHdpdGggU0hBLTIyNFxuUlNBIGtleSBzaXplICBcOiAyMDQ4IGJpdHNcbiIKIAogWDUwOSBDU1IgSW5mb3JtYXRpb24gUlNBIHdpdGggU0hBMjU2Ci1kZXBlbmRzX29uOk1CRURUTFNfUEVNX1BBUlNFX0M6TUJFRFRMU19NRF9DQU5fU0hBMjU2Ok1CRURUTFNfUlNBX0M6IU1CRURUTFNfWDUwOV9SRU1PVkVfSU5GTwotbWJlZHRsc194NTA5X2Nzcl9pbmZvOiJkYXRhX2ZpbGVzL3BhcnNlX2lucHV0L3NlcnZlcjEucmVxLnNoYTI1NiI6IkNTUiB2ZXJzaW9uICAgXDogMVxuc3ViamVjdCBuYW1lICBcOiBDPU5MLCBPPVBvbGFyU1NMLCBDTj1Qb2xhclNTTCBTZXJ2ZXIgMVxuc2lnbmVkIHVzaW5nICBcOiBSU0Egd2l0aCBTSEEtMjU2XG5SU0Ega2V5IHNpemUgIFw6IDIwNDggYml0c1xuIgorZGVwZW5kc19vbjpNQkVEVExTX1BFTV9QQVJTRV9DOlBTQV9XQU5UX0FMR19TSEFfMjU2Ok1CRURUTFNfUlNBX0M6IU1CRURUTFNfWDUwOV9SRU1PVkVfSU5GTworbWJlZHRsc194NTA5X2Nzcl9pbmZvOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9wYXJzZV9pbnB1dC9zZXJ2ZXIxLnJlcS5zaGEyNTYiOiJDU1IgdmVyc2lvbiAgIFw6IDFcbnN1YmplY3QgbmFtZSAgXDogQz1OTCwgTz1Qb2xhclNTTCwgQ049UG9sYXJTU0wgU2VydmVyIDFcbnNpZ25lZCB1c2luZyAgXDogUlNBIHdpdGggU0hBLTI1NlxuUlNBIGtleSBzaXplICBcOiAyMDQ4IGJpdHNcbiIKIAogWDUwOSBDU1IgSW5mb3JtYXRpb24gUlNBIHdpdGggU0hBMzg0Ci1kZXBlbmRzX29uOk1CRURUTFNfUEVNX1BBUlNFX0M6TUJFRFRMU19NRF9DQU5fU0hBMzg0Ok1CRURUTFNfUlNBX0M6IU1CRURUTFNfWDUwOV9SRU1PVkVfSU5GTwotbWJlZHRsc194NTA5X2Nzcl9pbmZvOiJkYXRhX2ZpbGVzL3BhcnNlX2lucHV0L3NlcnZlcjEucmVxLnNoYTM4NCI6IkNTUiB2ZXJzaW9uICAgXDogMVxuc3ViamVjdCBuYW1lICBcOiBDPU5MLCBPPVBvbGFyU1NMLCBDTj1Qb2xhclNTTCBTZXJ2ZXIgMVxuc2lnbmVkIHVzaW5nICBcOiBSU0Egd2l0aCBTSEEtMzg0XG5SU0Ega2V5IHNpemUgIFw6IDIwNDggYml0c1xuIgorZGVwZW5kc19vbjpNQkVEVExTX1BFTV9QQVJTRV9DOlBTQV9XQU5UX0FMR19TSEFfMzg0Ok1CRURUTFNfUlNBX0M6IU1CRURUTFNfWDUwOV9SRU1PVkVfSU5GTworbWJlZHRsc194NTA5X2Nzcl9pbmZvOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9wYXJzZV9pbnB1dC9zZXJ2ZXIxLnJlcS5zaGEzODQiOiJDU1IgdmVyc2lvbiAgIFw6IDFcbnN1YmplY3QgbmFtZSAgXDogQz1OTCwgTz1Qb2xhclNTTCwgQ049UG9sYXJTU0wgU2VydmVyIDFcbnNpZ25lZCB1c2luZyAgXDogUlNBIHdpdGggU0hBLTM4NFxuUlNBIGtleSBzaXplICBcOiAyMDQ4IGJpdHNcbiIKIAogWDUwOSBDU1IgSW5mb3JtYXRpb24gUlNBIHdpdGggU0hBNTEyCiBkZXBlbmRzX29uOk1CRURUTFNfUEVNX1BBUlNFX0M6TUJFRFRMU19NRF9DQU5fU0hBNTEyOk1CRURUTFNfUlNBX0M6IU1CRURUTFNfWDUwOV9SRU1PVkVfSU5GTwotbWJlZHRsc194NTA5X2Nzcl9pbmZvOiJkYXRhX2ZpbGVzL3BhcnNlX2lucHV0L3NlcnZlcjEucmVxLnNoYTUxMiI6IkNTUiB2ZXJzaW9uICAgXDogMVxuc3ViamVjdCBuYW1lICBcOiBDPU5MLCBPPVBvbGFyU1NMLCBDTj1Qb2xhclNTTCBTZXJ2ZXIgMVxuc2lnbmVkIHVzaW5nICBcOiBSU0Egd2l0aCBTSEEtNTEyXG5SU0Ega2V5IHNpemUgIFw6IDIwNDggYml0c1xuIgorbWJlZHRsc194NTA5X2Nzcl9pbmZvOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9wYXJzZV9pbnB1dC9zZXJ2ZXIxLnJlcS5zaGE1MTIiOiJDU1IgdmVyc2lvbiAgIFw6IDFcbnN1YmplY3QgbmFtZSAgXDogQz1OTCwgTz1Qb2xhclNTTCwgQ049UG9sYXJTU0wgU2VydmVyIDFcbnNpZ25lZCB1c2luZyAgXDogUlNBIHdpdGggU0hBLTUxMlxuUlNBIGtleSBzaXplICBcOiAyMDQ4IGJpdHNcbiIKIAogWDUwOSBDU1IgSW5mb3JtYXRpb24gUlNBIHdpdGggU0hBMjU2LCBjb250YWluaW5nIGNvbW1hcwotZGVwZW5kc19vbjpNQkVEVExTX1BFTV9QQVJTRV9DOk1CRURUTFNfTURfQ0FOX1NIQTI1NjpNQkVEVExTX1JTQV9DOiFNQkVEVExTX1g1MDlfUkVNT1ZFX0lORk8KLW1iZWR0bHNfeDUwOV9jc3JfaW5mbzoiZGF0YV9maWxlcy9wYXJzZV9pbnB1dC9zZXJ2ZXIxLnJlcS5jb21tYXMuc2hhMjU2IjoiQ1NSIHZlcnNpb24gICBcOiAxXG5zdWJqZWN0IG5hbWUgIFw6IEM9TkwsIE89UG9sYXJTU0xcXCwgQ29tbWFzLCBDTj1Qb2xhclNTTCBTZXJ2ZXIgMVxuc2lnbmVkIHVzaW5nICBcOiBSU0Egd2l0aCBTSEEtMjU2XG5SU0Ega2V5IHNpemUgIFw6IDIwNDggYml0c1xuIgorZGVwZW5kc19vbjpNQkVEVExTX1BFTV9QQVJTRV9DOlBTQV9XQU5UX0FMR19TSEFfMjU2Ok1CRURUTFNfUlNBX0M6IU1CRURUTFNfWDUwOV9SRU1PVkVfSU5GTworbWJlZHRsc194NTA5X2Nzcl9pbmZvOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9wYXJzZV9pbnB1dC9zZXJ2ZXIxLnJlcS5jb21tYXMuc2hhMjU2IjoiQ1NSIHZlcnNpb24gICBcOiAxXG5zdWJqZWN0IG5hbWUgIFw6IEM9TkwsIE89UG9sYXJTU0xcXCwgQ29tbWFzLCBDTj1Qb2xhclNTTCBTZXJ2ZXIgMVxuc2lnbmVkIHVzaW5nICBcOiBSU0Egd2l0aCBTSEEtMjU2XG5SU0Ega2V5IHNpemUgIFw6IDIwNDggYml0c1xuIgogCiBYNTA5IENTUiBJbmZvcm1hdGlvbiBFQyB3aXRoIFNIQTEKIGRlcGVuZHNfb246TUJFRFRMU19QS19DQU5fRUNEU0FfU09NRTpNQkVEVExTX1BFTV9QQVJTRV9DOk1CRURUTFNfRUNQX0hBVkVfU0VDUDI1NlIxOk1CRURUTFNfTURfQ0FOX1NIQTE6IU1CRURUTFNfWDUwOV9SRU1PVkVfSU5GTwotbWJlZHRsc194NTA5X2Nzcl9pbmZvOiJkYXRhX2ZpbGVzL3BhcnNlX2lucHV0L3NlcnZlcjUucmVxLnNoYTEiOiJDU1IgdmVyc2lvbiAgIFw6IDFcbnN1YmplY3QgbmFtZSAgXDogQz1OTCwgTz1Qb2xhclNTTCwgQ049bG9jYWxob3N0XG5zaWduZWQgdXNpbmcgIFw6IEVDRFNBIHdpdGggU0hBMVxuRUMga2V5IHNpemUgICBcOiAyNTYgYml0c1xuXG5rZXkgdXNhZ2UgICAgICAgICBcOiBEaWdpdGFsIFNpZ25hdHVyZSwgTm9uIFJlcHVkaWF0aW9uLCBLZXkgRW5jaXBoZXJtZW50XG4iCittYmVkdGxzX3g1MDlfY3NyX2luZm86Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3BhcnNlX2lucHV0L3NlcnZlcjUucmVxLnNoYTEiOiJDU1IgdmVyc2lvbiAgIFw6IDFcbnN1YmplY3QgbmFtZSAgXDogQz1OTCwgTz1Qb2xhclNTTCwgQ049bG9jYWxob3N0XG5zaWduZWQgdXNpbmcgIFw6IEVDRFNBIHdpdGggU0hBMVxuRUMga2V5IHNpemUgICBcOiAyNTYgYml0c1xuXG5rZXkgdXNhZ2UgICAgICAgICBcOiBEaWdpdGFsIFNpZ25hdHVyZSwgTm9uIFJlcHVkaWF0aW9uLCBLZXkgRW5jaXBoZXJtZW50XG4iCiAKIFg1MDkgQ1NSIEluZm9ybWF0aW9uIEVDIHdpdGggU0hBMjI0Ci1kZXBlbmRzX29uOk1CRURUTFNfUEtfQ0FOX0VDRFNBX1NPTUU6TUJFRFRMU19QRU1fUEFSU0VfQzpNQkVEVExTX0VDUF9IQVZFX1NFQ1AyNTZSMTpNQkVEVExTX01EX0NBTl9TSEEyMjQ6IU1CRURUTFNfWDUwOV9SRU1PVkVfSU5GTwotbWJlZHRsc194NTA5X2Nzcl9pbmZvOiJkYXRhX2ZpbGVzL3BhcnNlX2lucHV0L3NlcnZlcjUucmVxLnNoYTIyNCI6IkNTUiB2ZXJzaW9uICAgXDogMVxuc3ViamVjdCBuYW1lICBcOiBDPU5MLCBPPVBvbGFyU1NMLCBDTj1sb2NhbGhvc3RcbnNpZ25lZCB1c2luZyAgXDogRUNEU0Egd2l0aCBTSEEyMjRcbkVDIGtleSBzaXplICAgXDogMjU2IGJpdHNcblxua2V5IHVzYWdlICAgICAgICAgXDogRGlnaXRhbCBTaWduYXR1cmUsIE5vbiBSZXB1ZGlhdGlvbiwgS2V5IEVuY2lwaGVybWVudFxuIgorZGVwZW5kc19vbjpNQkVEVExTX1BLX0NBTl9FQ0RTQV9TT01FOk1CRURUTFNfUEVNX1BBUlNFX0M6TUJFRFRMU19FQ1BfSEFWRV9TRUNQMjU2UjE6UFNBX1dBTlRfQUxHX1NIQV8yMjQ6IU1CRURUTFNfWDUwOV9SRU1PVkVfSU5GTworbWJlZHRsc194NTA5X2Nzcl9pbmZvOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9wYXJzZV9pbnB1dC9zZXJ2ZXI1LnJlcS5zaGEyMjQiOiJDU1IgdmVyc2lvbiAgIFw6IDFcbnN1YmplY3QgbmFtZSAgXDogQz1OTCwgTz1Qb2xhclNTTCwgQ049bG9jYWxob3N0XG5zaWduZWQgdXNpbmcgIFw6IEVDRFNBIHdpdGggU0hBMjI0XG5FQyBrZXkgc2l6ZSAgIFw6IDI1NiBiaXRzXG5cbmtleSB1c2FnZSAgICAgICAgIFw6IERpZ2l0YWwgU2lnbmF0dXJlLCBOb24gUmVwdWRpYXRpb24sIEtleSBFbmNpcGhlcm1lbnRcbiIKIAogWDUwOSBDU1IgSW5mb3JtYXRpb24gRUMgd2l0aCBTSEEyNTYKLWRlcGVuZHNfb246TUJFRFRMU19QS19DQU5fRUNEU0FfU09NRTpNQkVEVExTX1BFTV9QQVJTRV9DOk1CRURUTFNfRUNQX0hBVkVfU0VDUDI1NlIxOk1CRURUTFNfTURfQ0FOX1NIQTI1NjohTUJFRFRMU19YNTA5X1JFTU9WRV9JTkZPCi1tYmVkdGxzX3g1MDlfY3NyX2luZm86ImRhdGFfZmlsZXMvcGFyc2VfaW5wdXQvc2VydmVyNS5yZXEuc2hhMjU2IjoiQ1NSIHZlcnNpb24gICBcOiAxXG5zdWJqZWN0IG5hbWUgIFw6IEM9TkwsIE89UG9sYXJTU0wsIENOPWxvY2FsaG9zdFxuc2lnbmVkIHVzaW5nICBcOiBFQ0RTQSB3aXRoIFNIQTI1NlxuRUMga2V5IHNpemUgICBcOiAyNTYgYml0c1xuXG5rZXkgdXNhZ2UgICAgICAgICBcOiBEaWdpdGFsIFNpZ25hdHVyZSwgTm9uIFJlcHVkaWF0aW9uLCBLZXkgRW5jaXBoZXJtZW50XG4iCitkZXBlbmRzX29uOk1CRURUTFNfUEtfQ0FOX0VDRFNBX1NPTUU6TUJFRFRMU19QRU1fUEFSU0VfQzpNQkVEVExTX0VDUF9IQVZFX1NFQ1AyNTZSMTpQU0FfV0FOVF9BTEdfU0hBXzI1NjohTUJFRFRMU19YNTA5X1JFTU9WRV9JTkZPCittYmVkdGxzX3g1MDlfY3NyX2luZm86Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3BhcnNlX2lucHV0L3NlcnZlcjUucmVxLnNoYTI1NiI6IkNTUiB2ZXJzaW9uICAgXDogMVxuc3ViamVjdCBuYW1lICBcOiBDPU5MLCBPPVBvbGFyU1NMLCBDTj1sb2NhbGhvc3RcbnNpZ25lZCB1c2luZyAgXDogRUNEU0Egd2l0aCBTSEEyNTZcbkVDIGtleSBzaXplICAgXDogMjU2IGJpdHNcblxua2V5IHVzYWdlICAgICAgICAgXDogRGlnaXRhbCBTaWduYXR1cmUsIE5vbiBSZXB1ZGlhdGlvbiwgS2V5IEVuY2lwaGVybWVudFxuIgogCiBYNTA5IENTUiBJbmZvcm1hdGlvbiBFQyB3aXRoIFNIQTM4NAotZGVwZW5kc19vbjpNQkVEVExTX1BLX0NBTl9FQ0RTQV9TT01FOk1CRURUTFNfUEVNX1BBUlNFX0M6TUJFRFRMU19FQ1BfSEFWRV9TRUNQMjU2UjE6TUJFRFRMU19NRF9DQU5fU0hBMzg0OiFNQkVEVExTX1g1MDlfUkVNT1ZFX0lORk8KLW1iZWR0bHNfeDUwOV9jc3JfaW5mbzoiZGF0YV9maWxlcy9wYXJzZV9pbnB1dC9zZXJ2ZXI1LnJlcS5zaGEzODQiOiJDU1IgdmVyc2lvbiAgIFw6IDFcbnN1YmplY3QgbmFtZSAgXDogQz1OTCwgTz1Qb2xhclNTTCwgQ049bG9jYWxob3N0XG5zaWduZWQgdXNpbmcgIFw6IEVDRFNBIHdpdGggU0hBMzg0XG5FQyBrZXkgc2l6ZSAgIFw6IDI1NiBiaXRzXG5cbmtleSB1c2FnZSAgICAgICAgIFw6IERpZ2l0YWwgU2lnbmF0dXJlLCBOb24gUmVwdWRpYXRpb24sIEtleSBFbmNpcGhlcm1lbnRcbiIKK2RlcGVuZHNfb246TUJFRFRMU19QS19DQU5fRUNEU0FfU09NRTpNQkVEVExTX1BFTV9QQVJTRV9DOk1CRURUTFNfRUNQX0hBVkVfU0VDUDI1NlIxOlBTQV9XQU5UX0FMR19TSEFfMzg0OiFNQkVEVExTX1g1MDlfUkVNT1ZFX0lORk8KK21iZWR0bHNfeDUwOV9jc3JfaW5mbzoiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvcGFyc2VfaW5wdXQvc2VydmVyNS5yZXEuc2hhMzg0IjoiQ1NSIHZlcnNpb24gICBcOiAxXG5zdWJqZWN0IG5hbWUgIFw6IEM9TkwsIE89UG9sYXJTU0wsIENOPWxvY2FsaG9zdFxuc2lnbmVkIHVzaW5nICBcOiBFQ0RTQSB3aXRoIFNIQTM4NFxuRUMga2V5IHNpemUgICBcOiAyNTYgYml0c1xuXG5rZXkgdXNhZ2UgICAgICAgICBcOiBEaWdpdGFsIFNpZ25hdHVyZSwgTm9uIFJlcHVkaWF0aW9uLCBLZXkgRW5jaXBoZXJtZW50XG4iCiAKIFg1MDkgQ1NSIEluZm9ybWF0aW9uIEVDIHdpdGggU0hBNTEyCiBkZXBlbmRzX29uOk1CRURUTFNfUEtfQ0FOX0VDRFNBX1NPTUU6TUJFRFRMU19QRU1fUEFSU0VfQzpNQkVEVExTX0VDUF9IQVZFX1NFQ1AyNTZSMTpNQkVEVExTX01EX0NBTl9TSEE1MTI6IU1CRURUTFNfWDUwOV9SRU1PVkVfSU5GTwotbWJlZHRsc194NTA5X2Nzcl9pbmZvOiJkYXRhX2ZpbGVzL3BhcnNlX2lucHV0L3NlcnZlcjUucmVxLnNoYTUxMiI6IkNTUiB2ZXJzaW9uICAgXDogMVxuc3ViamVjdCBuYW1lICBcOiBDPU5MLCBPPVBvbGFyU1NMLCBDTj1sb2NhbGhvc3RcbnNpZ25lZCB1c2luZyAgXDogRUNEU0Egd2l0aCBTSEE1MTJcbkVDIGtleSBzaXplICAgXDogMjU2IGJpdHNcblxua2V5IHVzYWdlICAgICAgICAgXDogRGlnaXRhbCBTaWduYXR1cmUsIE5vbiBSZXB1ZGlhdGlvbiwgS2V5IEVuY2lwaGVybWVudFxuIgorbWJlZHRsc194NTA5X2Nzcl9pbmZvOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9wYXJzZV9pbnB1dC9zZXJ2ZXI1LnJlcS5zaGE1MTIiOiJDU1IgdmVyc2lvbiAgIFw6IDFcbnN1YmplY3QgbmFtZSAgXDogQz1OTCwgTz1Qb2xhclNTTCwgQ049bG9jYWxob3N0XG5zaWduZWQgdXNpbmcgIFw6IEVDRFNBIHdpdGggU0hBNTEyXG5FQyBrZXkgc2l6ZSAgIFw6IDI1NiBiaXRzXG5cbmtleSB1c2FnZSAgICAgICAgIFw6IERpZ2l0YWwgU2lnbmF0dXJlLCBOb24gUmVwdWRpYXRpb24sIEtleSBFbmNpcGhlcm1lbnRcbiIKIAogWDUwOSBDU1IgSW5mb3JtYXRpb24gUlNBLVBTUyB3aXRoIFNIQTEKIGRlcGVuZHNfb246TUJFRFRMU19QRU1fUEFSU0VfQzpNQkVEVExTX1g1MDlfUlNBU1NBX1BTU19TVVBQT1JUOk1CRURUTFNfTURfQ0FOX1NIQTE6IU1CRURUTFNfWDUwOV9SRU1PVkVfSU5GTwotbWJlZHRsc194NTA5X2Nzcl9pbmZvOiJkYXRhX2ZpbGVzL3BhcnNlX2lucHV0L3NlcnZlcjkucmVxLnNoYTEiOiJDU1IgdmVyc2lvbiAgIFw6IDFcbnN1YmplY3QgbmFtZSAgXDogQz1OTCwgTz1Qb2xhclNTTCwgQ049bG9jYWxob3N0XG5zaWduZWQgdXNpbmcgIFw6IFJTQVNTQS1QU1MgKFNIQTEsIE1HRjEtU0hBMSwgMHg2QSlcblJTQSBrZXkgc2l6ZSAgXDogMTAyNCBiaXRzXG5cbmtleSB1c2FnZSAgICAgICAgIFw6IERpZ2l0YWwgU2lnbmF0dXJlLCBOb24gUmVwdWRpYXRpb24sIEtleSBFbmNpcGhlcm1lbnRcbiIKK21iZWR0bHNfeDUwOV9jc3JfaW5mbzoiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvcGFyc2VfaW5wdXQvc2VydmVyOS5yZXEuc2hhMSI6IkNTUiB2ZXJzaW9uICAgXDogMVxuc3ViamVjdCBuYW1lICBcOiBDPU5MLCBPPVBvbGFyU1NMLCBDTj1sb2NhbGhvc3RcbnNpZ25lZCB1c2luZyAgXDogUlNBU1NBLVBTUyAoU0hBMSwgTUdGMS1TSEExLCAweDZBKVxuUlNBIGtleSBzaXplICBcOiAxMDI0IGJpdHNcblxua2V5IHVzYWdlICAgICAgICAgXDogRGlnaXRhbCBTaWduYXR1cmUsIE5vbiBSZXB1ZGlhdGlvbiwgS2V5IEVuY2lwaGVybWVudFxuIgogCiBYNTA5IENTUiBJbmZvcm1hdGlvbiBSU0EtUFNTIHdpdGggU0hBMjI0Ci1kZXBlbmRzX29uOk1CRURUTFNfUEVNX1BBUlNFX0M6TUJFRFRMU19YNTA5X1JTQVNTQV9QU1NfU1VQUE9SVDpNQkVEVExTX01EX0NBTl9TSEEyMjQ6IU1CRURUTFNfWDUwOV9SRU1PVkVfSU5GTwotbWJlZHRsc194NTA5X2Nzcl9pbmZvOiJkYXRhX2ZpbGVzL3BhcnNlX2lucHV0L3NlcnZlcjkucmVxLnNoYTIyNCI6IkNTUiB2ZXJzaW9uICAgXDogMVxuc3ViamVjdCBuYW1lICBcOiBDPU5MLCBPPVBvbGFyU1NMLCBDTj1sb2NhbGhvc3RcbnNpZ25lZCB1c2luZyAgXDogUlNBU1NBLVBTUyAoU0hBMjI0LCBNR0YxLVNIQTIyNCwgMHg2MilcblJTQSBrZXkgc2l6ZSAgXDogMTAyNCBiaXRzXG5cbmtleSB1c2FnZSAgICAgICAgIFw6IERpZ2l0YWwgU2lnbmF0dXJlLCBOb24gUmVwdWRpYXRpb24sIEtleSBFbmNpcGhlcm1lbnRcbiIKK2RlcGVuZHNfb246TUJFRFRMU19QRU1fUEFSU0VfQzpNQkVEVExTX1g1MDlfUlNBU1NBX1BTU19TVVBQT1JUOlBTQV9XQU5UX0FMR19TSEFfMjI0OiFNQkVEVExTX1g1MDlfUkVNT1ZFX0lORk8KK21iZWR0bHNfeDUwOV9jc3JfaW5mbzoiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvcGFyc2VfaW5wdXQvc2VydmVyOS5yZXEuc2hhMjI0IjoiQ1NSIHZlcnNpb24gICBcOiAxXG5zdWJqZWN0IG5hbWUgIFw6IEM9TkwsIE89UG9sYXJTU0wsIENOPWxvY2FsaG9zdFxuc2lnbmVkIHVzaW5nICBcOiBSU0FTU0EtUFNTIChTSEEyMjQsIE1HRjEtU0hBMjI0LCAweDYyKVxuUlNBIGtleSBzaXplICBcOiAxMDI0IGJpdHNcblxua2V5IHVzYWdlICAgICAgICAgXDogRGlnaXRhbCBTaWduYXR1cmUsIE5vbiBSZXB1ZGlhdGlvbiwgS2V5IEVuY2lwaGVybWVudFxuIgogCiBYNTA5IENTUiBJbmZvcm1hdGlvbiBSU0EtUFNTIHdpdGggU0hBMjU2Ci1kZXBlbmRzX29uOk1CRURUTFNfUEVNX1BBUlNFX0M6TUJFRFRMU19YNTA5X1JTQVNTQV9QU1NfU1VQUE9SVDpNQkVEVExTX01EX0NBTl9TSEEyNTY6IU1CRURUTFNfWDUwOV9SRU1PVkVfSU5GTwotbWJlZHRsc194NTA5X2Nzcl9pbmZvOiJkYXRhX2ZpbGVzL3BhcnNlX2lucHV0L3NlcnZlcjkucmVxLnNoYTI1NiI6IkNTUiB2ZXJzaW9uICAgXDogMVxuc3ViamVjdCBuYW1lICBcOiBDPU5MLCBPPVBvbGFyU1NMLCBDTj1sb2NhbGhvc3RcbnNpZ25lZCB1c2luZyAgXDogUlNBU1NBLVBTUyAoU0hBMjU2LCBNR0YxLVNIQTI1NiwgMHg1RSlcblJTQSBrZXkgc2l6ZSAgXDogMTAyNCBiaXRzXG5cbmtleSB1c2FnZSAgICAgICAgIFw6IERpZ2l0YWwgU2lnbmF0dXJlLCBOb24gUmVwdWRpYXRpb24sIEtleSBFbmNpcGhlcm1lbnRcbiIKK2RlcGVuZHNfb246TUJFRFRMU19QRU1fUEFSU0VfQzpNQkVEVExTX1g1MDlfUlNBU1NBX1BTU19TVVBQT1JUOlBTQV9XQU5UX0FMR19TSEFfMjU2OiFNQkVEVExTX1g1MDlfUkVNT1ZFX0lORk8KK21iZWR0bHNfeDUwOV9jc3JfaW5mbzoiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvcGFyc2VfaW5wdXQvc2VydmVyOS5yZXEuc2hhMjU2IjoiQ1NSIHZlcnNpb24gICBcOiAxXG5zdWJqZWN0IG5hbWUgIFw6IEM9TkwsIE89UG9sYXJTU0wsIENOPWxvY2FsaG9zdFxuc2lnbmVkIHVzaW5nICBcOiBSU0FTU0EtUFNTIChTSEEyNTYsIE1HRjEtU0hBMjU2LCAweDVFKVxuUlNBIGtleSBzaXplICBcOiAxMDI0IGJpdHNcblxua2V5IHVzYWdlICAgICAgICAgXDogRGlnaXRhbCBTaWduYXR1cmUsIE5vbiBSZXB1ZGlhdGlvbiwgS2V5IEVuY2lwaGVybWVudFxuIgogCiBYNTA5IENTUiBJbmZvcm1hdGlvbiBSU0EtUFNTIHdpdGggU0hBMzg0Ci1kZXBlbmRzX29uOk1CRURUTFNfUEVNX1BBUlNFX0M6TUJFRFRMU19YNTA5X1JTQVNTQV9QU1NfU1VQUE9SVDpNQkVEVExTX01EX0NBTl9TSEEzODQ6IU1CRURUTFNfWDUwOV9SRU1PVkVfSU5GTwotbWJlZHRsc194NTA5X2Nzcl9pbmZvOiJkYXRhX2ZpbGVzL3BhcnNlX2lucHV0L3NlcnZlcjkucmVxLnNoYTM4NCI6IkNTUiB2ZXJzaW9uICAgXDogMVxuc3ViamVjdCBuYW1lICBcOiBDPU5MLCBPPVBvbGFyU1NMLCBDTj1sb2NhbGhvc3RcbnNpZ25lZCB1c2luZyAgXDogUlNBU1NBLVBTUyAoU0hBMzg0LCBNR0YxLVNIQTM4NCwgMHg0RSlcblJTQSBrZXkgc2l6ZSAgXDogMTAyNCBiaXRzXG5cbmtleSB1c2FnZSAgICAgICAgIFw6IERpZ2l0YWwgU2lnbmF0dXJlLCBOb24gUmVwdWRpYXRpb24sIEtleSBFbmNpcGhlcm1lbnRcbiIKK2RlcGVuZHNfb246TUJFRFRMU19QRU1fUEFSU0VfQzpNQkVEVExTX1g1MDlfUlNBU1NBX1BTU19TVVBQT1JUOlBTQV9XQU5UX0FMR19TSEFfMzg0OiFNQkVEVExTX1g1MDlfUkVNT1ZFX0lORk8KK21iZWR0bHNfeDUwOV9jc3JfaW5mbzoiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvcGFyc2VfaW5wdXQvc2VydmVyOS5yZXEuc2hhMzg0IjoiQ1NSIHZlcnNpb24gICBcOiAxXG5zdWJqZWN0IG5hbWUgIFw6IEM9TkwsIE89UG9sYXJTU0wsIENOPWxvY2FsaG9zdFxuc2lnbmVkIHVzaW5nICBcOiBSU0FTU0EtUFNTIChTSEEzODQsIE1HRjEtU0hBMzg0LCAweDRFKVxuUlNBIGtleSBzaXplICBcOiAxMDI0IGJpdHNcblxua2V5IHVzYWdlICAgICAgICAgXDogRGlnaXRhbCBTaWduYXR1cmUsIE5vbiBSZXB1ZGlhdGlvbiwgS2V5IEVuY2lwaGVybWVudFxuIgogCiBYNTA5IENTUiBJbmZvcm1hdGlvbiBSU0EtUFNTIHdpdGggU0hBNTEyCiBkZXBlbmRzX29uOk1CRURUTFNfUEVNX1BBUlNFX0M6TUJFRFRMU19YNTA5X1JTQVNTQV9QU1NfU1VQUE9SVDpNQkVEVExTX01EX0NBTl9TSEE1MTI6IU1CRURUTFNfWDUwOV9SRU1PVkVfSU5GTwotbWJlZHRsc194NTA5X2Nzcl9pbmZvOiJkYXRhX2ZpbGVzL3BhcnNlX2lucHV0L3NlcnZlcjkucmVxLnNoYTUxMiI6IkNTUiB2ZXJzaW9uICAgXDogMVxuc3ViamVjdCBuYW1lICBcOiBDPU5MLCBPPVBvbGFyU1NMLCBDTj1sb2NhbGhvc3RcbnNpZ25lZCB1c2luZyAgXDogUlNBU1NBLVBTUyAoU0hBNTEyLCBNR0YxLVNIQTUxMiwgMHgzRSlcblJTQSBrZXkgc2l6ZSAgXDogMTAyNCBiaXRzXG5cbmtleSB1c2FnZSAgICAgICAgIFw6IERpZ2l0YWwgU2lnbmF0dXJlLCBOb24gUmVwdWRpYXRpb24sIEtleSBFbmNpcGhlcm1lbnRcbiIKK21iZWR0bHNfeDUwOV9jc3JfaW5mbzoiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvcGFyc2VfaW5wdXQvc2VydmVyOS5yZXEuc2hhNTEyIjoiQ1NSIHZlcnNpb24gICBcOiAxXG5zdWJqZWN0IG5hbWUgIFw6IEM9TkwsIE89UG9sYXJTU0wsIENOPWxvY2FsaG9zdFxuc2lnbmVkIHVzaW5nICBcOiBSU0FTU0EtUFNTIChTSEE1MTIsIE1HRjEtU0hBNTEyLCAweDNFKVxuUlNBIGtleSBzaXplICBcOiAxMDI0IGJpdHNcblxua2V5IHVzYWdlICAgICAgICAgXDogRGlnaXRhbCBTaWduYXR1cmUsIE5vbiBSZXB1ZGlhdGlvbiwgS2V5IEVuY2lwaGVybWVudFxuIgogCiBYNTA5IENTUiBJbmZvcm1hdGlvbiBSU0Egd2l0aCBTSEEyNTYgLSBNaWNyb3NvZnQgaGVhZGVyCi1kZXBlbmRzX29uOk1CRURUTFNfUEVNX1BBUlNFX0M6TUJFRFRMU19NRF9DQU5fU0hBMjU2Ok1CRURUTFNfUlNBX0M6IU1CRURUTFNfWDUwOV9SRU1PVkVfSU5GTwotbWJlZHRsc194NTA5X2Nzcl9pbmZvOiJkYXRhX2ZpbGVzL3BhcnNlX2lucHV0L3NlcnZlcjEtbXMucmVxLnNoYTI1NiI6IkNTUiB2ZXJzaW9uICAgXDogMVxuc3ViamVjdCBuYW1lICBcOiBDPU5MLCBPPVBvbGFyU1NMLCBDTj1Qb2xhclNTTCBTZXJ2ZXIgMVxuc2lnbmVkIHVzaW5nICBcOiBSU0Egd2l0aCBTSEEtMjU2XG5SU0Ega2V5IHNpemUgIFw6IDIwNDggYml0c1xuIgorZGVwZW5kc19vbjpNQkVEVExTX1BFTV9QQVJTRV9DOlBTQV9XQU5UX0FMR19TSEFfMjU2Ok1CRURUTFNfUlNBX0M6IU1CRURUTFNfWDUwOV9SRU1PVkVfSU5GTworbWJlZHRsc194NTA5X2Nzcl9pbmZvOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9wYXJzZV9pbnB1dC9zZXJ2ZXIxLW1zLnJlcS5zaGEyNTYiOiJDU1IgdmVyc2lvbiAgIFw6IDFcbnN1YmplY3QgbmFtZSAgXDogQz1OTCwgTz1Qb2xhclNTTCwgQ049UG9sYXJTU0wgU2VydmVyIDFcbnNpZ25lZCB1c2luZyAgXDogUlNBIHdpdGggU0hBLTI1NlxuUlNBIGtleSBzaXplICBcOiAyMDQ4IGJpdHNcbiIKIAogWDUwOSBDU1IgSW5mb3JtYXRpb24gdjMgZXh0ZW5zaW9ucyAjMSAoYWxsKQotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTY6TUJFRFRMU19SU0FfQzohTUJFRFRMU19YNTA5X1JFTU9WRV9JTkZPCi1tYmVkdGxzX3g1MDlfY3NyX2luZm86ImRhdGFfZmlsZXMvcGFyc2VfaW5wdXQvdGVzdF9jc3JfdjNfYWxsLmNzci5kZXIiOiJDU1IgdmVyc2lvbiAgIFw6IDFcbnN1YmplY3QgbmFtZSAgXDogQ049ZXRjZFxuc2lnbmVkIHVzaW5nICBcOiBSU0Egd2l0aCBTSEEtMjU2XG5SU0Ega2V5IHNpemUgIFw6IDEwMjQgYml0c1xuXG5zdWJqZWN0IGFsdCBuYW1lICBcOlxuICAgIG90aGVyTmFtZSBcOlxuICAgICAgICBoYXJkd2FyZSBtb2R1bGUgbmFtZSBcOlxuICAgICAgICAgICAgaGFyZHdhcmUgdHlwZSAgICAgICAgICBcOiAxLjMuNi4xLjQuMS4xNy4zXG4gICAgICAgICAgICBoYXJkd2FyZSBzZXJpYWwgbnVtYmVyIFw6IDMxMzIzMzgwODEwMDgxODAzMzMyMzFcbmNlcnQuIHR5cGUgICAgICAgIFw6IFNTTCBDbGllbnRcbmtleSB1c2FnZSAgICAgICAgIFw6IENSTCBTaWduXG4iCitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2Ok1CRURUTFNfUlNBX0M6IU1CRURUTFNfWDUwOV9SRU1PVkVfSU5GTworbWJlZHRsc194NTA5X2Nzcl9pbmZvOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9wYXJzZV9pbnB1dC90ZXN0X2Nzcl92M19hbGwuY3NyLmRlciI6IkNTUiB2ZXJzaW9uICAgXDogMVxuc3ViamVjdCBuYW1lICBcOiBDTj1ldGNkXG5zaWduZWQgdXNpbmcgIFw6IFJTQSB3aXRoIFNIQS0yNTZcblJTQSBrZXkgc2l6ZSAgXDogMTAyNCBiaXRzXG5cbnN1YmplY3QgYWx0IG5hbWUgIFw6XG4gICAgb3RoZXJOYW1lIFw6XG4gICAgICAgIGhhcmR3YXJlIG1vZHVsZSBuYW1lIFw6XG4gICAgICAgICAgICBoYXJkd2FyZSB0eXBlICAgICAgICAgIFw6IDEuMy42LjEuNC4xLjE3LjNcbiAgICAgICAgICAgIGhhcmR3YXJlIHNlcmlhbCBudW1iZXIgXDogMzEzMjMzODA4MTAwODE4MDMzMzIzMVxuY2VydC4gdHlwZSAgICAgICAgXDogU1NMIENsaWVudFxua2V5IHVzYWdlICAgICAgICAgXDogQ1JMIFNpZ25cbiIKIAogWDUwOSBDU1IgSW5mb3JtYXRpb24gdjMgZXh0ZW5zaW9ucyAjMiAobnNDZXJ0VHlwZSBvbmx5KQotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTY6TUJFRFRMU19SU0FfQzohTUJFRFRMU19YNTA5X1JFTU9WRV9JTkZPCi1tYmVkdGxzX3g1MDlfY3NyX2luZm86ImRhdGFfZmlsZXMvcGFyc2VfaW5wdXQvdGVzdF9jc3JfdjNfbnNDZXJ0VHlwZS5jc3IuZGVyIjoiQ1NSIHZlcnNpb24gICBcOiAxXG5zdWJqZWN0IG5hbWUgIFw6IENOPWV0Y2RcbnNpZ25lZCB1c2luZyAgXDogUlNBIHdpdGggU0hBLTI1NlxuUlNBIGtleSBzaXplICBcOiAxMDI0IGJpdHNcblxuY2VydC4gdHlwZSAgICAgICAgXDogU1NMIFNlcnZlclxuIgorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NjpNQkVEVExTX1JTQV9DOiFNQkVEVExTX1g1MDlfUkVNT1ZFX0lORk8KK21iZWR0bHNfeDUwOV9jc3JfaW5mbzoiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvcGFyc2VfaW5wdXQvdGVzdF9jc3JfdjNfbnNDZXJ0VHlwZS5jc3IuZGVyIjoiQ1NSIHZlcnNpb24gICBcOiAxXG5zdWJqZWN0IG5hbWUgIFw6IENOPWV0Y2RcbnNpZ25lZCB1c2luZyAgXDogUlNBIHdpdGggU0hBLTI1NlxuUlNBIGtleSBzaXplICBcOiAxMDI0IGJpdHNcblxuY2VydC4gdHlwZSAgICAgICAgXDogU1NMIFNlcnZlclxuIgogCiBYNTA5IENTUiBJbmZvcm1hdGlvbiB2MyBleHRlbnNpb25zICMzIChzdWJqZWN0QWx0TmFtZSBvbmx5KQotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTY6TUJFRFRMU19SU0FfQzohTUJFRFRMU19YNTA5X1JFTU9WRV9JTkZPCi1tYmVkdGxzX3g1MDlfY3NyX2luZm86ImRhdGFfZmlsZXMvcGFyc2VfaW5wdXQvdGVzdF9jc3JfdjNfc3ViamVjdEFsdE5hbWUuY3NyLmRlciI6IkNTUiB2ZXJzaW9uICAgXDogMVxuc3ViamVjdCBuYW1lICBcOiBDTj1ldGNkXG5zaWduZWQgdXNpbmcgIFw6IFJTQSB3aXRoIFNIQS0yNTZcblJTQSBrZXkgc2l6ZSAgXDogMTAyNCBiaXRzXG5cbnN1YmplY3QgYWx0IG5hbWUgIFw6XG4gICAgZE5TTmFtZSBcOiBleGFtcGxlLmNvbVxuICAgIGROU05hbWUgXDogZXhhbXBsZS5uZXRcbiAgICBkTlNOYW1lIFw6ICouZXhhbXBsZS5vcmdcbiIKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTY6TUJFRFRMU19SU0FfQzohTUJFRFRMU19YNTA5X1JFTU9WRV9JTkZPCittYmVkdGxzX3g1MDlfY3NyX2luZm86Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3BhcnNlX2lucHV0L3Rlc3RfY3NyX3YzX3N1YmplY3RBbHROYW1lLmNzci5kZXIiOiJDU1IgdmVyc2lvbiAgIFw6IDFcbnN1YmplY3QgbmFtZSAgXDogQ049ZXRjZFxuc2lnbmVkIHVzaW5nICBcOiBSU0Egd2l0aCBTSEEtMjU2XG5SU0Ega2V5IHNpemUgIFw6IDEwMjQgYml0c1xuXG5zdWJqZWN0IGFsdCBuYW1lICBcOlxuICAgIGROU05hbWUgXDogZXhhbXBsZS5jb21cbiAgICBkTlNOYW1lIFw6IGV4YW1wbGUubmV0XG4gICAgZE5TTmFtZSBcOiAqLmV4YW1wbGUub3JnXG4iCiAKIFg1MDkgQ1NSIEluZm9ybWF0aW9uIHYzIGV4dGVuc2lvbnMgIzQgKGtleVVzYWdlIG9ubHkpCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NjpNQkVEVExTX1JTQV9DOiFNQkVEVExTX1g1MDlfUkVNT1ZFX0lORk8KLW1iZWR0bHNfeDUwOV9jc3JfaW5mbzoiZGF0YV9maWxlcy9wYXJzZV9pbnB1dC90ZXN0X2Nzcl92M19rZXlVc2FnZS5jc3IuZGVyIjoiQ1NSIHZlcnNpb24gICBcOiAxXG5zdWJqZWN0IG5hbWUgIFw6IENOPWV0Y2RcbnNpZ25lZCB1c2luZyAgXDogUlNBIHdpdGggU0hBLTI1NlxuUlNBIGtleSBzaXplICBcOiAxMDI0IGJpdHNcblxua2V5IHVzYWdlICAgICAgICAgXDogRGlnaXRhbCBTaWduYXR1cmUsIEtleSBFbmNpcGhlcm1lbnRcbiIKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTY6TUJFRFRMU19SU0FfQzohTUJFRFRMU19YNTA5X1JFTU9WRV9JTkZPCittYmVkdGxzX3g1MDlfY3NyX2luZm86Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3BhcnNlX2lucHV0L3Rlc3RfY3NyX3YzX2tleVVzYWdlLmNzci5kZXIiOiJDU1IgdmVyc2lvbiAgIFw6IDFcbnN1YmplY3QgbmFtZSAgXDogQ049ZXRjZFxuc2lnbmVkIHVzaW5nICBcOiBSU0Egd2l0aCBTSEEtMjU2XG5SU0Ega2V5IHNpemUgIFw6IDEwMjQgYml0c1xuXG5rZXkgdXNhZ2UgICAgICAgICBcOiBEaWdpdGFsIFNpZ25hdHVyZSwgS2V5IEVuY2lwaGVybWVudFxuIgogCiBYNTA5IFZlcmlmeSBJbmZvcm1hdGlvbjogZW1wdHkKIHg1MDlfdmVyaWZ5X2luZm86MDoiIjoiIgpAQCAtNDI5LDU1ICs0MjksNTUgQEAKIAogWDUwOSBHZXQgRGlzdGluZ3Vpc2hlZCBOYW1lICMxCiBkZXBlbmRzX29uOk1CRURUTFNfUEVNX1BBUlNFX0M6TUJFRFRMU19SU0FfQzpNQkVEVExTX01EX0NBTl9TSEExCi1tYmVkdGxzX3g1MDlfZG5fZ2V0czoiZGF0YV9maWxlcy9zZXJ2ZXIxLmNydCI6InN1YmplY3QiOiJDPU5MLCBPPVBvbGFyU1NMLCBDTj1Qb2xhclNTTCBTZXJ2ZXIgMSIKK21iZWR0bHNfeDUwOV9kbl9nZXRzOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9zZXJ2ZXIxLmNydCI6InN1YmplY3QiOiJDPU5MLCBPPVBvbGFyU1NMLCBDTj1Qb2xhclNTTCBTZXJ2ZXIgMSIKIAogWDUwOSBHZXQgRGlzdGluZ3Vpc2hlZCBOYW1lICMyCiBkZXBlbmRzX29uOk1CRURUTFNfUEVNX1BBUlNFX0M6TUJFRFRMU19SU0FfQzpNQkVEVExTX01EX0NBTl9TSEExCi1tYmVkdGxzX3g1MDlfZG5fZ2V0czoiZGF0YV9maWxlcy9zZXJ2ZXIxLmNydCI6Imlzc3VlciI6IkM9TkwsIE89UG9sYXJTU0wsIENOPVBvbGFyU1NMIFRlc3QgQ0EiCittYmVkdGxzX3g1MDlfZG5fZ2V0czoiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvc2VydmVyMS5jcnQiOiJpc3N1ZXIiOiJDPU5MLCBPPVBvbGFyU1NMLCBDTj1Qb2xhclNTTCBUZXN0IENBIgogCiBYNTA5IEdldCBEaXN0aW5ndWlzaGVkIE5hbWUgIzMKIGRlcGVuZHNfb246TUJFRFRMU19QRU1fUEFSU0VfQzpNQkVEVExTX1JTQV9DOk1CRURUTFNfTURfQ0FOX1NIQTEKLW1iZWR0bHNfeDUwOV9kbl9nZXRzOiJkYXRhX2ZpbGVzL3NlcnZlcjIuY3J0Ijoic3ViamVjdCI6IkM9TkwsIE89UG9sYXJTU0wsIENOPWxvY2FsaG9zdCIKK21iZWR0bHNfeDUwOV9kbl9nZXRzOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9zZXJ2ZXIyLmNydCI6InN1YmplY3QiOiJDPU5MLCBPPVBvbGFyU1NMLCBDTj1sb2NhbGhvc3QiCiAKIFg1MDkgR2V0IERpc3Rpbmd1aXNoZWQgTmFtZSAjNAogZGVwZW5kc19vbjpNQkVEVExTX1BFTV9QQVJTRV9DOk1CRURUTFNfUlNBX0M6TUJFRFRMU19NRF9DQU5fU0hBMQotbWJlZHRsc194NTA5X2RuX2dldHM6ImRhdGFfZmlsZXMvc2VydmVyMi5jcnQiOiJpc3N1ZXIiOiJDPU5MLCBPPVBvbGFyU1NMLCBDTj1Qb2xhclNTTCBUZXN0IENBIgorbWJlZHRsc194NTA5X2RuX2dldHM6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3NlcnZlcjIuY3J0IjoiaXNzdWVyIjoiQz1OTCwgTz1Qb2xhclNTTCwgQ049UG9sYXJTU0wgVGVzdCBDQSIKIAogWDUwOSBHZXQgRGlzdGluZ3Vpc2hlZCBOYW1lICM1CiBkZXBlbmRzX29uOk1CRURUTFNfUEVNX1BBUlNFX0M6TUJFRFRMU19SU0FfQzpNQkVEVExTX01EX0NBTl9TSEExCi1tYmVkdGxzX3g1MDlfZG5fZ2V0czoiZGF0YV9maWxlcy9zZXJ2ZXIxLmNvbW1hcy5jcnQiOiJzdWJqZWN0IjoiQz1OTCwgTz1Qb2xhclNTTFxcLCBDb21tYXMsIENOPVBvbGFyU1NMIFNlcnZlciAxIgorbWJlZHRsc194NTA5X2RuX2dldHM6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3NlcnZlcjEuY29tbWFzLmNydCI6InN1YmplY3QiOiJDPU5MLCBPPVBvbGFyU1NMXFwsIENvbW1hcywgQ049UG9sYXJTU0wgU2VydmVyIDEiCiAKIFg1MDkgR2V0IERpc3Rpbmd1aXNoZWQgTmFtZSAjNgogZGVwZW5kc19vbjpNQkVEVExTX1BFTV9QQVJTRV9DOk1CRURUTFNfUlNBX0M6TUJFRFRMU19NRF9DQU5fU0hBMQotbWJlZHRsc194NTA5X2RuX2dldHM6ImRhdGFfZmlsZXMvc2VydmVyMS5oYXNoc3ltYm9sLmNydCI6InN1YmplY3QiOiJDPU5MLCBPPVxcI1BvbGFyU1NMLCBDTj1Qb2xhclNTTCBTZXJ2ZXIgMSIKK21iZWR0bHNfeDUwOV9kbl9nZXRzOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9zZXJ2ZXIxLmhhc2hzeW1ib2wuY3J0Ijoic3ViamVjdCI6IkM9TkwsIE89XFwjUG9sYXJTU0wsIENOPVBvbGFyU1NMIFNlcnZlciAxIgogCiBYNTA5IEdldCBEaXN0aW5ndWlzaGVkIE5hbWUgIzcKIGRlcGVuZHNfb246TUJFRFRMU19QRU1fUEFSU0VfQzpNQkVEVExTX1JTQV9DOk1CRURUTFNfTURfQ0FOX1NIQTEKLW1iZWR0bHNfeDUwOV9kbl9nZXRzOiJkYXRhX2ZpbGVzL3NlcnZlcjEuc3BhY2VzLmNydCI6InN1YmplY3QiOiJDPU5MLCBPPVxcIFBvbGFyU1NMXFwgLCBDTj1Qb2xhclNTTCBTZXJ2ZXIgMSIKK21iZWR0bHNfeDUwOV9kbl9nZXRzOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9zZXJ2ZXIxLnNwYWNlcy5jcnQiOiJzdWJqZWN0IjoiQz1OTCwgTz1cXCBQb2xhclNTTFxcICwgQ049UG9sYXJTU0wgU2VydmVyIDEiCiAKIFg1MDkgR2V0IERpc3Rpbmd1aXNoZWQgTmFtZSAjOAogZGVwZW5kc19vbjpNQkVEVExTX1BFTV9QQVJTRV9DOk1CRURUTFNfUlNBX0M6TUJFRFRMU19NRF9DQU5fU0hBMQotbWJlZHRsc194NTA5X2RuX2dldHM6ImRhdGFfZmlsZXMvc2VydmVyMS5hc2NpaWNoYXJzLmNydCI6InN1YmplY3QiOiJDPU5MLCBPPVxcRTZcXDlFXFw4MVxcRTVcXDlDXFxCMFNTTCwgQ049UG9sYXJTU0wgU2VydmVyIDEiCittYmVkdGxzX3g1MDlfZG5fZ2V0czoiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvc2VydmVyMS5hc2NpaWNoYXJzLmNydCI6InN1YmplY3QiOiJDPU5MLCBPPVxcRTZcXDlFXFw4MVxcRTVcXDlDXFxCMFNTTCwgQ049UG9sYXJTU0wgU2VydmVyIDEiCiAKIFg1MDkgR2V0IE1vZGlmaWVkIEROICMxCiBkZXBlbmRzX29uOk1CRURUTFNfUEVNX1BBUlNFX0M6TUJFRFRMU19SU0FfQzpNQkVEVExTX01EX0NBTl9TSEExCi1tYmVkdGxzX3g1MDlfZG5fZ2V0c19zdWJqZWN0X3JlcGxhY2U6ImRhdGFfZmlsZXMvc2VydmVyMS5jcnQiOiJNb2RpZmllZCI6IkM9TkwsIE89TW9kaWZpZWQsIENOPVBvbGFyU1NMIFNlcnZlciAxIjowCittYmVkdGxzX3g1MDlfZG5fZ2V0c19zdWJqZWN0X3JlcGxhY2U6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3NlcnZlcjEuY3J0IjoiTW9kaWZpZWQiOiJDPU5MLCBPPU1vZGlmaWVkLCBDTj1Qb2xhclNTTCBTZXJ2ZXIgMSI6MAogCiBYNTA5IEdldCBNb2RpZmllZCBETiAjMiBOYW1lIGV4YWN0bHkgMjU1IGJ5dGVzCiBkZXBlbmRzX29uOk1CRURUTFNfUEVNX1BBUlNFX0M6TUJFRFRMU19SU0FfQzpNQkVEVExTX01EX0NBTl9TSEExCi1tYmVkdGxzX3g1MDlfZG5fZ2V0c19zdWJqZWN0X3JlcGxhY2U6ImRhdGFfZmlsZXMvc2VydmVyMS5jcnQiOiIxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDUiOiJDPU5MLCBPPTEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NSwgQ049UG9sYXJTU0wgU2VydmVyIDEiOjAKK21iZWR0bHNfeDUwOV9kbl9nZXRzX3N1YmplY3RfcmVwbGFjZToiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvc2VydmVyMS5jcnQiOiIxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDUiOiJDPU5MLCBPPTEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NSwgQ049UG9sYXJTU0wgU2VydmVyIDEiOjAKIAogWDUwOSBHZXQgTW9kaWZpZWQgRE4gIzMgTmFtZSBleGNlZWRzIDI1NSBieXRlcwogZGVwZW5kc19vbjpNQkVEVExTX1BFTV9QQVJTRV9DOk1CRURUTFNfUlNBX0M6TUJFRFRMU19NRF9DQU5fU0hBMQotbWJlZHRsc194NTA5X2RuX2dldHNfc3ViamVjdF9yZXBsYWNlOiJkYXRhX2ZpbGVzL3NlcnZlcjEuY3J0IjoiMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1NiI6IiI6TUJFRFRMU19FUlJfWDUwOV9CVUZGRVJfVE9PX1NNQUxMCittYmVkdGxzX3g1MDlfZG5fZ2V0c19zdWJqZWN0X3JlcGxhY2U6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3NlcnZlcjEuY3J0IjoiMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1NiI6IiI6TUJFRFRMU19FUlJfWDUwOV9CVUZGRVJfVE9PX1NNQUxMCiAKIFg1MDkgR2V0IE1vZGlmaWVkIEROICM0IE5hbWUgZXhhY3RseSAyNTUgYnl0ZXMsIHdpdGggY29tbWEgcmVxdWlyaW5nIGVzY2FwaW5nCiBkZXBlbmRzX29uOk1CRURUTFNfUEVNX1BBUlNFX0M6TUJFRFRMU19SU0FfQzpNQkVEVExTX01EX0NBTl9TSEExCi1tYmVkdGxzX3g1MDlfZG5fZ2V0c19zdWJqZWN0X3JlcGxhY2U6ImRhdGFfZmlsZXMvc2VydmVyMS5jcnQiOiIxMjM0NTY3ODkwLDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQiOiIiOk1CRURUTFNfRVJSX1g1MDlfQlVGRkVSX1RPT19TTUFMTAorbWJlZHRsc194NTA5X2RuX2dldHNfc3ViamVjdF9yZXBsYWNlOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9zZXJ2ZXIxLmNydCI6IjEyMzQ1Njc4OTAsMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNCI6IiI6TUJFRFRMU19FUlJfWDUwOV9CVUZGRVJfVE9PX1NNQUxMCiAKIFg1MDkgR2V0IE1vZGlmaWVkIEROICM1IE5hbWUgZXhhY3RseSAyNTUgYnl0ZXMsIGVuZGluZyB3aXRoIGNvbW1hIHJlcXVpcmluZyBlc2NhcGluZwogZGVwZW5kc19vbjpNQkVEVExTX1BFTV9QQVJTRV9DOk1CRURUTFNfUlNBX0M6TUJFRFRMU19NRF9DQU5fU0hBMQotbWJlZHRsc194NTA5X2RuX2dldHNfc3ViamVjdF9yZXBsYWNlOiJkYXRhX2ZpbGVzL3NlcnZlcjEuY3J0IjoiMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQsIjoiIjpNQkVEVExTX0VSUl9YNTA5X0JVRkZFUl9UT09fU01BTEwKK21iZWR0bHNfeDUwOV9kbl9nZXRzX3N1YmplY3RfcmVwbGFjZToiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvc2VydmVyMS5jcnQiOiIxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNCwiOiIiOk1CRURUTFNfRVJSX1g1MDlfQlVGRkVSX1RPT19TTUFMTAogCiBYNTA5IEdldCBOZXh0IEROICMxIE5vIE11bHRpdmFsdWUgUkROcwogbWJlZHRsc194NTA5X2RuX2dldF9uZXh0OiJDPU5MLCBPPVBvbGFyU1NMLCBDTj1Qb2xhclNTTCBTZXJ2ZXIgMSI6MDoiQyBPIENOIjozOiJDPU5MLCBPPVBvbGFyU1NMLCBDTj1Qb2xhclNTTCBTZXJ2ZXIgMSIKQEAgLTUzMyw1NTEgKzUzMyw1NTEgQEAKIAogWDUwOSBUaW1lIEV4cGlyZWQgIzEKIGRlcGVuZHNfb246TUJFRFRMU19QRU1fUEFSU0VfQzpNQkVEVExTX1JTQV9DOk1CRURUTFNfSEFWRV9USU1FX0RBVEU6TUJFRFRMU19NRF9DQU5fU0hBMQotbWJlZHRsc194NTA5X3RpbWVfaXNfcGFzdDoiZGF0YV9maWxlcy9zZXJ2ZXIxLmNydCI6InZhbGlkX2Zyb20iOjEKK21iZWR0bHNfeDUwOV90aW1lX2lzX3Bhc3Q6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3NlcnZlcjEuY3J0IjoidmFsaWRfZnJvbSI6MQogCiBYNTA5IFRpbWUgRXhwaXJlZCAjMgogZGVwZW5kc19vbjpNQkVEVExTX1BFTV9QQVJTRV9DOk1CRURUTFNfUlNBX0M6TUJFRFRMU19IQVZFX1RJTUVfREFURTpNQkVEVExTX01EX0NBTl9TSEExCi1tYmVkdGxzX3g1MDlfdGltZV9pc19wYXN0OiJkYXRhX2ZpbGVzL3NlcnZlcjEuY3J0IjoidmFsaWRfdG8iOjAKK21iZWR0bHNfeDUwOV90aW1lX2lzX3Bhc3Q6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3NlcnZlcjEuY3J0IjoidmFsaWRfdG8iOjAKIAogWDUwOSBUaW1lIEV4cGlyZWQgIzMKIGRlcGVuZHNfb246TUJFRFRMU19QRU1fUEFSU0VfQzpNQkVEVExTX1JTQV9DOk1CRURUTFNfSEFWRV9USU1FX0RBVEU6TUJFRFRMU19NRF9DQU5fU0hBMQotbWJlZHRsc194NTA5X3RpbWVfaXNfcGFzdDoiZGF0YV9maWxlcy9zZXJ2ZXIyLmNydCI6InZhbGlkX2Zyb20iOjEKK21iZWR0bHNfeDUwOV90aW1lX2lzX3Bhc3Q6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3NlcnZlcjIuY3J0IjoidmFsaWRfZnJvbSI6MQogCiBYNTA5IFRpbWUgRXhwaXJlZCAjNAogZGVwZW5kc19vbjpNQkVEVExTX1BFTV9QQVJTRV9DOk1CRURUTFNfUlNBX0M6TUJFRFRMU19IQVZFX1RJTUVfREFURTpNQkVEVExTX01EX0NBTl9TSEExCi1tYmVkdGxzX3g1MDlfdGltZV9pc19wYXN0OiJkYXRhX2ZpbGVzL3NlcnZlcjIuY3J0IjoidmFsaWRfdG8iOjAKK21iZWR0bHNfeDUwOV90aW1lX2lzX3Bhc3Q6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3NlcnZlcjIuY3J0IjoidmFsaWRfdG8iOjAKIAogWDUwOSBUaW1lIEV4cGlyZWQgIzUKIGRlcGVuZHNfb246TUJFRFRMU19QRU1fUEFSU0VfQzpNQkVEVExTX1JTQV9DOk1CRURUTFNfSEFWRV9USU1FX0RBVEU6TUJFRFRMU19NRF9DQU5fU0hBMQotbWJlZHRsc194NTA5X3RpbWVfaXNfcGFzdDoiZGF0YV9maWxlcy90ZXN0LWNhLmNydCI6InZhbGlkX2Zyb20iOjEKK21iZWR0bHNfeDUwOV90aW1lX2lzX3Bhc3Q6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3Rlc3QtY2EuY3J0IjoidmFsaWRfZnJvbSI6MQogCiBYNTA5IFRpbWUgRXhwaXJlZCAjNgogZGVwZW5kc19vbjpNQkVEVExTX1BFTV9QQVJTRV9DOk1CRURUTFNfUlNBX0M6TUJFRFRMU19IQVZFX1RJTUVfREFURTpNQkVEVExTX01EX0NBTl9TSEExCi1tYmVkdGxzX3g1MDlfdGltZV9pc19wYXN0OiJkYXRhX2ZpbGVzL3Rlc3QtY2EuY3J0IjoidmFsaWRfdG8iOjAKK21iZWR0bHNfeDUwOV90aW1lX2lzX3Bhc3Q6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3Rlc3QtY2EuY3J0IjoidmFsaWRfdG8iOjAKIAogWDUwOSBUaW1lIEZ1dHVyZSAjMQotZGVwZW5kc19vbjpNQkVEVExTX1BFTV9QQVJTRV9DOk1CRURUTFNfUEtfQ0FOX0VDRFNBX1NPTUU6TUJFRFRMU19FQ1BfSEFWRV9TRUNQMjU2UjE6TUJFRFRMU19IQVZFX1RJTUVfREFURTpNQkVEVExTX01EX0NBTl9TSEEyNTYKLW1iZWR0bHNfeDUwOV90aW1lX2lzX2Z1dHVyZToiZGF0YV9maWxlcy9zZXJ2ZXI1LmNydCI6InZhbGlkX2Zyb20iOjAKK2RlcGVuZHNfb246TUJFRFRMU19QRU1fUEFSU0VfQzpNQkVEVExTX1BLX0NBTl9FQ0RTQV9TT01FOk1CRURUTFNfRUNQX0hBVkVfU0VDUDI1NlIxOk1CRURUTFNfSEFWRV9USU1FX0RBVEU6UFNBX1dBTlRfQUxHX1NIQV8yNTYKK21iZWR0bHNfeDUwOV90aW1lX2lzX2Z1dHVyZToiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvc2VydmVyNS5jcnQiOiJ2YWxpZF9mcm9tIjowCiAKIFg1MDkgVGltZSBGdXR1cmUgIzIKLWRlcGVuZHNfb246TUJFRFRMU19QRU1fUEFSU0VfQzpNQkVEVExTX1BLX0NBTl9FQ0RTQV9TT01FOk1CRURUTFNfRUNQX0hBVkVfU0VDUDI1NlIxOk1CRURUTFNfSEFWRV9USU1FX0RBVEU6TUJFRFRMU19NRF9DQU5fU0hBMjU2Ci1tYmVkdGxzX3g1MDlfdGltZV9pc19mdXR1cmU6ImRhdGFfZmlsZXMvc2VydmVyNS5jcnQiOiJ2YWxpZF90byI6MQorZGVwZW5kc19vbjpNQkVEVExTX1BFTV9QQVJTRV9DOk1CRURUTFNfUEtfQ0FOX0VDRFNBX1NPTUU6TUJFRFRMU19FQ1BfSEFWRV9TRUNQMjU2UjE6TUJFRFRMU19IQVZFX1RJTUVfREFURTpQU0FfV0FOVF9BTEdfU0hBXzI1NgorbWJlZHRsc194NTA5X3RpbWVfaXNfZnV0dXJlOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9zZXJ2ZXI1LmNydCI6InZhbGlkX3RvIjoxCiAKIFg1MDkgVGltZSBGdXR1cmUgIzMKLWRlcGVuZHNfb246TUJFRFRMU19QRU1fUEFSU0VfQzpNQkVEVExTX1BLX0NBTl9FQ0RTQV9TT01FOk1CRURUTFNfRUNQX0hBVkVfU0VDUDI1NlIxOk1CRURUTFNfSEFWRV9USU1FX0RBVEU6TUJFRFRMU19NRF9DQU5fU0hBMjU2Ci1tYmVkdGxzX3g1MDlfdGltZV9pc19mdXR1cmU6ImRhdGFfZmlsZXMvc2VydmVyNS1mdXR1cmUuY3J0IjoidmFsaWRfZnJvbSI6MQorZGVwZW5kc19vbjpNQkVEVExTX1BFTV9QQVJTRV9DOk1CRURUTFNfUEtfQ0FOX0VDRFNBX1NPTUU6TUJFRFRMU19FQ1BfSEFWRV9TRUNQMjU2UjE6TUJFRFRMU19IQVZFX1RJTUVfREFURTpQU0FfV0FOVF9BTEdfU0hBXzI1NgorbWJlZHRsc194NTA5X3RpbWVfaXNfZnV0dXJlOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9zZXJ2ZXI1LWZ1dHVyZS5jcnQiOiJ2YWxpZF9mcm9tIjoxCiAKIFg1MDkgVGltZSBGdXR1cmUgIzQKLWRlcGVuZHNfb246TUJFRFRMU19QRU1fUEFSU0VfQzpNQkVEVExTX1BLX0NBTl9FQ0RTQV9TT01FOk1CRURUTFNfRUNQX0hBVkVfU0VDUDI1NlIxOk1CRURUTFNfSEFWRV9USU1FX0RBVEU6TUJFRFRMU19NRF9DQU5fU0hBMjU2Ci1tYmVkdGxzX3g1MDlfdGltZV9pc19mdXR1cmU6ImRhdGFfZmlsZXMvc2VydmVyNS1mdXR1cmUuY3J0IjoidmFsaWRfdG8iOjEKK2RlcGVuZHNfb246TUJFRFRMU19QRU1fUEFSU0VfQzpNQkVEVExTX1BLX0NBTl9FQ0RTQV9TT01FOk1CRURUTFNfRUNQX0hBVkVfU0VDUDI1NlIxOk1CRURUTFNfSEFWRV9USU1FX0RBVEU6UFNBX1dBTlRfQUxHX1NIQV8yNTYKK21iZWR0bHNfeDUwOV90aW1lX2lzX2Z1dHVyZToiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvc2VydmVyNS1mdXR1cmUuY3J0IjoidmFsaWRfdG8iOjEKIAogWDUwOSBUaW1lIEZ1dHVyZSAjNQotZGVwZW5kc19vbjpNQkVEVExTX1BFTV9QQVJTRV9DOk1CRURUTFNfUEtfQ0FOX0VDRFNBX1NPTUU6TUJFRFRMU19FQ1BfSEFWRV9TRUNQMzg0UjE6TUJFRFRMU19IQVZFX1RJTUVfREFURTpNQkVEVExTX01EX0NBTl9TSEEyNTYKLW1iZWR0bHNfeDUwOV90aW1lX2lzX2Z1dHVyZToiZGF0YV9maWxlcy90ZXN0LWNhMi5jcnQiOiJ2YWxpZF9mcm9tIjowCitkZXBlbmRzX29uOk1CRURUTFNfUEVNX1BBUlNFX0M6TUJFRFRMU19QS19DQU5fRUNEU0FfU09NRTpNQkVEVExTX0VDUF9IQVZFX1NFQ1AzODRSMTpNQkVEVExTX0hBVkVfVElNRV9EQVRFOlBTQV9XQU5UX0FMR19TSEFfMjU2CittYmVkdGxzX3g1MDlfdGltZV9pc19mdXR1cmU6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3Rlc3QtY2EyLmNydCI6InZhbGlkX2Zyb20iOjAKIAogWDUwOSBUaW1lIEZ1dHVyZSAjNgotZGVwZW5kc19vbjpNQkVEVExTX1BFTV9QQVJTRV9DOk1CRURUTFNfUEtfQ0FOX0VDRFNBX1NPTUU6TUJFRFRMU19FQ1BfSEFWRV9TRUNQMzg0UjE6TUJFRFRMU19IQVZFX1RJTUVfREFURTpNQkVEVExTX01EX0NBTl9TSEEyNTYKLW1iZWR0bHNfeDUwOV90aW1lX2lzX2Z1dHVyZToiZGF0YV9maWxlcy90ZXN0LWNhMi5jcnQiOiJ2YWxpZF90byI6MQorZGVwZW5kc19vbjpNQkVEVExTX1BFTV9QQVJTRV9DOk1CRURUTFNfUEtfQ0FOX0VDRFNBX1NPTUU6TUJFRFRMU19FQ1BfSEFWRV9TRUNQMzg0UjE6TUJFRFRMU19IQVZFX1RJTUVfREFURTpQU0FfV0FOVF9BTEdfU0hBXzI1NgorbWJlZHRsc194NTA5X3RpbWVfaXNfZnV0dXJlOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy90ZXN0LWNhMi5jcnQiOiJ2YWxpZF90byI6MQogCiBYNTA5IENSVCB2ZXJpZmljYXRpb24gIzEgKFJldm9rZWQgQ2VydCwgRXhwaXJlZCBDUkwsIG5vIENOKQogZGVwZW5kc19vbjpNQkVEVExTX1BFTV9QQVJTRV9DOk1CRURUTFNfTURfQ0FOX1NIQTE6TUJFRFRMU19SU0FfQzpNQkVEVExTX1BLQ1MxX1YxNTpNQkVEVExTX0hBVkVfVElNRV9EQVRFCi14NTA5X3ZlcmlmeToiZGF0YV9maWxlcy9zZXJ2ZXIxLmNydCI6ImRhdGFfZmlsZXMvdGVzdC1jYS5jcnQiOiJkYXRhX2ZpbGVzL2NybF9leHBpcmVkLnBlbSI6Ik5VTEwiOk1CRURUTFNfRVJSX1g1MDlfQ0VSVF9WRVJJRllfRkFJTEVEOk1CRURUTFNfWDUwOV9CQURDRVJUX1JFVk9LRUQgfCBNQkVEVExTX1g1MDlfQkFEQ1JMX0VYUElSRUQ6ImNvbXBhdCI6Ik5VTEwiCit4NTA5X3ZlcmlmeToiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvc2VydmVyMS5jcnQiOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy90ZXN0LWNhLmNydCI6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL2NybF9leHBpcmVkLnBlbSI6Ik5VTEwiOk1CRURUTFNfRVJSX1g1MDlfQ0VSVF9WRVJJRllfRkFJTEVEOk1CRURUTFNfWDUwOV9CQURDRVJUX1JFVk9LRUQgfCBNQkVEVExTX1g1MDlfQkFEQ1JMX0VYUElSRUQ6ImNvbXBhdCI6Ik5VTEwiCiAKIFg1MDkgQ1JUIHZlcmlmaWNhdGlvbiAjMWEgKFJldm9rZWQgQ2VydCwgRnV0dXJlIENSTCwgbm8gQ04pCi1kZXBlbmRzX29uOk1CRURUTFNfUEVNX1BBUlNFX0M6TUJFRFRMU19NRF9DQU5fU0hBMjU2Ok1CRURUTFNfUEtfQ0FOX0VDRFNBX1ZFUklGWTpNQkVEVExTX0VDUF9IQVZFX1NFQ1AyNTZSMTpNQkVEVExTX0VDUF9IQVZFX1NFQ1AzODRSMTpNQkVEVExTX01EX0NBTl9TSEExOk1CRURUTFNfSEFWRV9USU1FX0RBVEUKLXg1MDlfdmVyaWZ5OiJkYXRhX2ZpbGVzL3NlcnZlcjYuY3J0IjoiZGF0YV9maWxlcy90ZXN0LWNhMi5jcnQiOiJkYXRhX2ZpbGVzL2NybC1mdXR1cmUucGVtIjoiTlVMTCI6TUJFRFRMU19FUlJfWDUwOV9DRVJUX1ZFUklGWV9GQUlMRUQ6TUJFRFRMU19YNTA5X0JBRENFUlRfUkVWT0tFRCB8IE1CRURUTFNfWDUwOV9CQURDUkxfRlVUVVJFOiJjb21wYXQiOiJOVUxMIgorZGVwZW5kc19vbjpNQkVEVExTX1BFTV9QQVJTRV9DOlBTQV9XQU5UX0FMR19TSEFfMjU2Ok1CRURUTFNfUEtfQ0FOX0VDRFNBX1ZFUklGWTpNQkVEVExTX0VDUF9IQVZFX1NFQ1AyNTZSMTpNQkVEVExTX0VDUF9IQVZFX1NFQ1AzODRSMTpNQkVEVExTX01EX0NBTl9TSEExOk1CRURUTFNfSEFWRV9USU1FX0RBVEUKK3g1MDlfdmVyaWZ5OiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9zZXJ2ZXI2LmNydCI6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3Rlc3QtY2EyLmNydCI6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL2NybC1mdXR1cmUucGVtIjoiTlVMTCI6TUJFRFRMU19FUlJfWDUwOV9DRVJUX1ZFUklGWV9GQUlMRUQ6TUJFRFRMU19YNTA5X0JBRENFUlRfUkVWT0tFRCB8IE1CRURUTFNfWDUwOV9CQURDUkxfRlVUVVJFOiJjb21wYXQiOiJOVUxMIgogCiBYNTA5IENSVCB2ZXJpZmljYXRpb24gIzIgKFJldm9rZWQgQ2VydCwgRXhwaXJlZCBDUkwpCiBkZXBlbmRzX29uOk1CRURUTFNfUEVNX1BBUlNFX0M6TUJFRFRMU19NRF9DQU5fU0hBMTpNQkVEVExTX1JTQV9DOk1CRURUTFNfUEtDUzFfVjE1Ok1CRURUTFNfSEFWRV9USU1FX0RBVEUKLXg1MDlfdmVyaWZ5OiJkYXRhX2ZpbGVzL3NlcnZlcjEuY3J0IjoiZGF0YV9maWxlcy90ZXN0LWNhLmNydCI6ImRhdGFfZmlsZXMvY3JsX2V4cGlyZWQucGVtIjoiUG9sYXJTU0wgU2VydmVyIDEiOk1CRURUTFNfRVJSX1g1MDlfQ0VSVF9WRVJJRllfRkFJTEVEOk1CRURUTFNfWDUwOV9CQURDRVJUX1JFVk9LRUQgfCBNQkVEVExTX1g1MDlfQkFEQ1JMX0VYUElSRUQ6ImNvbXBhdCI6Ik5VTEwiCit4NTA5X3ZlcmlmeToiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvc2VydmVyMS5jcnQiOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy90ZXN0LWNhLmNydCI6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL2NybF9leHBpcmVkLnBlbSI6IlBvbGFyU1NMIFNlcnZlciAxIjpNQkVEVExTX0VSUl9YNTA5X0NFUlRfVkVSSUZZX0ZBSUxFRDpNQkVEVExTX1g1MDlfQkFEQ0VSVF9SRVZPS0VEIHwgTUJFRFRMU19YNTA5X0JBRENSTF9FWFBJUkVEOiJjb21wYXQiOiJOVUxMIgogCiBYNTA5IENSVCB2ZXJpZmljYXRpb24gIzJhIChSZXZva2VkIENlcnQsIEZ1dHVyZSBDUkwpCi1kZXBlbmRzX29uOk1CRURUTFNfUEVNX1BBUlNFX0M6TUJFRFRMU19NRF9DQU5fU0hBMjU2Ok1CRURUTFNfUEtfQ0FOX0VDRFNBX1ZFUklGWTpNQkVEVExTX0VDUF9IQVZFX1NFQ1AyNTZSMTpNQkVEVExTX0VDUF9IQVZFX1NFQ1AzODRSMTpNQkVEVExTX01EX0NBTl9TSEExOk1CRURUTFNfSEFWRV9USU1FX0RBVEUKLXg1MDlfdmVyaWZ5OiJkYXRhX2ZpbGVzL3NlcnZlcjYuY3J0IjoiZGF0YV9maWxlcy90ZXN0LWNhMi5jcnQiOiJkYXRhX2ZpbGVzL2NybC1mdXR1cmUucGVtIjoibG9jYWxob3N0IjpNQkVEVExTX0VSUl9YNTA5X0NFUlRfVkVSSUZZX0ZBSUxFRDpNQkVEVExTX1g1MDlfQkFEQ0VSVF9SRVZPS0VEIHwgTUJFRFRMU19YNTA5X0JBRENSTF9GVVRVUkU6ImNvbXBhdCI6Ik5VTEwiCitkZXBlbmRzX29uOk1CRURUTFNfUEVNX1BBUlNFX0M6UFNBX1dBTlRfQUxHX1NIQV8yNTY6TUJFRFRMU19QS19DQU5fRUNEU0FfVkVSSUZZOk1CRURUTFNfRUNQX0hBVkVfU0VDUDI1NlIxOk1CRURUTFNfRUNQX0hBVkVfU0VDUDM4NFIxOk1CRURUTFNfTURfQ0FOX1NIQTE6TUJFRFRMU19IQVZFX1RJTUVfREFURQoreDUwOV92ZXJpZnk6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3NlcnZlcjYuY3J0IjoiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvdGVzdC1jYTIuY3J0IjoiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvY3JsLWZ1dHVyZS5wZW0iOiJsb2NhbGhvc3QiOk1CRURUTFNfRVJSX1g1MDlfQ0VSVF9WRVJJRllfRkFJTEVEOk1CRURUTFNfWDUwOV9CQURDRVJUX1JFVk9LRUQgfCBNQkVEVExTX1g1MDlfQkFEQ1JMX0ZVVFVSRToiY29tcGF0IjoiTlVMTCIKIAogWDUwOSBDUlQgdmVyaWZpY2F0aW9uICMzIChSZXZva2VkIENlcnQsIEZ1dHVyZSBDUkwsIENOIE1pc21hdGNoKQogZGVwZW5kc19vbjpNQkVEVExTX1BFTV9QQVJTRV9DOk1CRURUTFNfTURfQ0FOX1NIQTE6TUJFRFRMU19SU0FfQzpNQkVEVExTX1BLQ1MxX1YxNTpNQkVEVExTX0hBVkVfVElNRV9EQVRFCi14NTA5X3ZlcmlmeToiZGF0YV9maWxlcy9zZXJ2ZXIxLmNydCI6ImRhdGFfZmlsZXMvdGVzdC1jYS5jcnQiOiJkYXRhX2ZpbGVzL2NybF9leHBpcmVkLnBlbSI6IlBvbGFyU1NMIFdyb25nIENOIjpNQkVEVExTX0VSUl9YNTA5X0NFUlRfVkVSSUZZX0ZBSUxFRDpNQkVEVExTX1g1MDlfQkFEQ0VSVF9SRVZPS0VEIHwgTUJFRFRMU19YNTA5X0JBRENSTF9FWFBJUkVEIHwgTUJFRFRMU19YNTA5X0JBRENFUlRfQ05fTUlTTUFUQ0g6ImNvbXBhdCI6Ik5VTEwiCit4NTA5X3ZlcmlmeToiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvc2VydmVyMS5jcnQiOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy90ZXN0LWNhLmNydCI6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL2NybF9leHBpcmVkLnBlbSI6IlBvbGFyU1NMIFdyb25nIENOIjpNQkVEVExTX0VSUl9YNTA5X0NFUlRfVkVSSUZZX0ZBSUxFRDpNQkVEVExTX1g1MDlfQkFEQ0VSVF9SRVZPS0VEIHwgTUJFRFRMU19YNTA5X0JBRENSTF9FWFBJUkVEIHwgTUJFRFRMU19YNTA5X0JBRENFUlRfQ05fTUlTTUFUQ0g6ImNvbXBhdCI6Ik5VTEwiCiAKIFg1MDkgQ1JUIHZlcmlmaWNhdGlvbiAjM2EgKFJldm9rZWQgQ2VydCwgRXhwaXJlZCBDUkwsIENOIE1pc21hdGNoKQotZGVwZW5kc19vbjpNQkVEVExTX1BFTV9QQVJTRV9DOk1CRURUTFNfTURfQ0FOX1NIQTI1NjpNQkVEVExTX1BLX0NBTl9FQ0RTQV9WRVJJRlk6TUJFRFRMU19FQ1BfSEFWRV9TRUNQMjU2UjE6TUJFRFRMU19FQ1BfSEFWRV9TRUNQMzg0UjE6TUJFRFRMU19NRF9DQU5fU0hBMTpNQkVEVExTX0hBVkVfVElNRV9EQVRFCi14NTA5X3ZlcmlmeToiZGF0YV9maWxlcy9zZXJ2ZXI2LmNydCI6ImRhdGFfZmlsZXMvdGVzdC1jYTIuY3J0IjoiZGF0YV9maWxlcy9jcmwtZnV0dXJlLnBlbSI6Ildyb25nIENOIjpNQkVEVExTX0VSUl9YNTA5X0NFUlRfVkVSSUZZX0ZBSUxFRDpNQkVEVExTX1g1MDlfQkFEQ0VSVF9SRVZPS0VEIHwgTUJFRFRMU19YNTA5X0JBRENSTF9GVVRVUkUgfCBNQkVEVExTX1g1MDlfQkFEQ0VSVF9DTl9NSVNNQVRDSDoiY29tcGF0IjoiTlVMTCIKK2RlcGVuZHNfb246TUJFRFRMU19QRU1fUEFSU0VfQzpQU0FfV0FOVF9BTEdfU0hBXzI1NjpNQkVEVExTX1BLX0NBTl9FQ0RTQV9WRVJJRlk6TUJFRFRMU19FQ1BfSEFWRV9TRUNQMjU2UjE6TUJFRFRMU19FQ1BfSEFWRV9TRUNQMzg0UjE6TUJFRFRMU19NRF9DQU5fU0hBMTpNQkVEVExTX0hBVkVfVElNRV9EQVRFCit4NTA5X3ZlcmlmeToiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvc2VydmVyNi5jcnQiOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy90ZXN0LWNhMi5jcnQiOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9jcmwtZnV0dXJlLnBlbSI6Ildyb25nIENOIjpNQkVEVExTX0VSUl9YNTA5X0NFUlRfVkVSSUZZX0ZBSUxFRDpNQkVEVExTX1g1MDlfQkFEQ0VSVF9SRVZPS0VEIHwgTUJFRFRMU19YNTA5X0JBRENSTF9GVVRVUkUgfCBNQkVEVExTX1g1MDlfQkFEQ0VSVF9DTl9NSVNNQVRDSDoiY29tcGF0IjoiTlVMTCIKIAogWDUwOSBDUlQgdmVyaWZpY2F0aW9uICM0IChWYWxpZCBDZXJ0LCBFeHBpcmVkIENSTCkKIGRlcGVuZHNfb246TUJFRFRMU19QRU1fUEFSU0VfQzpNQkVEVExTX01EX0NBTl9TSEExOk1CRURUTFNfUlNBX0M6TUJFRFRMU19QS0NTMV9WMTU6TUJFRFRMU19IQVZFX1RJTUVfREFURQoteDUwOV92ZXJpZnk6ImRhdGFfZmlsZXMvc2VydmVyMi5jcnQiOiJkYXRhX2ZpbGVzL3Rlc3QtY2EuY3J0IjoiZGF0YV9maWxlcy9jcmxfZXhwaXJlZC5wZW0iOiJOVUxMIjpNQkVEVExTX0VSUl9YNTA5X0NFUlRfVkVSSUZZX0ZBSUxFRDpNQkVEVExTX1g1MDlfQkFEQ1JMX0VYUElSRUQ6ImNvbXBhdCI6Ik5VTEwiCit4NTA5X3ZlcmlmeToiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvc2VydmVyMi5jcnQiOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy90ZXN0LWNhLmNydCI6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL2NybF9leHBpcmVkLnBlbSI6Ik5VTEwiOk1CRURUTFNfRVJSX1g1MDlfQ0VSVF9WRVJJRllfRkFJTEVEOk1CRURUTFNfWDUwOV9CQURDUkxfRVhQSVJFRDoiY29tcGF0IjoiTlVMTCIKIAogWDUwOSBDUlQgdmVyaWZpY2F0aW9uICM0YSAoUmV2b2tlZCBDZXJ0LCBGdXR1cmUgQ1JMKQotZGVwZW5kc19vbjpNQkVEVExTX1BFTV9QQVJTRV9DOk1CRURUTFNfTURfQ0FOX1NIQTI1NjpNQkVEVExTX1BLX0NBTl9FQ0RTQV9WRVJJRlk6TUJFRFRMU19FQ1BfSEFWRV9TRUNQMjU2UjE6TUJFRFRMU19FQ1BfSEFWRV9TRUNQMzg0UjE6TUJFRFRMU19NRF9DQU5fU0hBMTpNQkVEVExTX0hBVkVfVElNRV9EQVRFCi14NTA5X3ZlcmlmeToiZGF0YV9maWxlcy9zZXJ2ZXI1LmNydCI6ImRhdGFfZmlsZXMvdGVzdC1jYTIuY3J0IjoiZGF0YV9maWxlcy9jcmwtZnV0dXJlLnBlbSI6Ik5VTEwiOk1CRURUTFNfRVJSX1g1MDlfQ0VSVF9WRVJJRllfRkFJTEVEOk1CRURUTFNfWDUwOV9CQURDUkxfRlVUVVJFOiJjb21wYXQiOiJOVUxMIgorZGVwZW5kc19vbjpNQkVEVExTX1BFTV9QQVJTRV9DOlBTQV9XQU5UX0FMR19TSEFfMjU2Ok1CRURUTFNfUEtfQ0FOX0VDRFNBX1ZFUklGWTpNQkVEVExTX0VDUF9IQVZFX1NFQ1AyNTZSMTpNQkVEVExTX0VDUF9IQVZFX1NFQ1AzODRSMTpNQkVEVExTX01EX0NBTl9TSEExOk1CRURUTFNfSEFWRV9USU1FX0RBVEUKK3g1MDlfdmVyaWZ5OiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9zZXJ2ZXI1LmNydCI6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3Rlc3QtY2EyLmNydCI6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL2NybC1mdXR1cmUucGVtIjoiTlVMTCI6TUJFRFRMU19FUlJfWDUwOV9DRVJUX1ZFUklGWV9GQUlMRUQ6TUJFRFRMU19YNTA5X0JBRENSTF9GVVRVUkU6ImNvbXBhdCI6Ik5VTEwiCiAKIFg1MDkgQ1JUIHZlcmlmaWNhdGlvbiAjNSAoUmV2b2tlZCBDZXJ0KQogZGVwZW5kc19vbjpNQkVEVExTX1BFTV9QQVJTRV9DOk1CRURUTFNfTURfQ0FOX1NIQTE6TUJFRFRMU19SU0FfQzpNQkVEVExTX1BLQ1MxX1YxNTpNQkVEVExTX0hBVkVfVElNRV9EQVRFCi14NTA5X3ZlcmlmeToiZGF0YV9maWxlcy9zZXJ2ZXIxLmNydCI6ImRhdGFfZmlsZXMvdGVzdC1jYS5jcnQiOiJkYXRhX2ZpbGVzL2NybC5wZW0iOiJOVUxMIjpNQkVEVExTX0VSUl9YNTA5X0NFUlRfVkVSSUZZX0ZBSUxFRDpNQkVEVExTX1g1MDlfQkFEQ0VSVF9SRVZPS0VEOiJjb21wYXQiOiJOVUxMIgoreDUwOV92ZXJpZnk6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3NlcnZlcjEuY3J0IjoiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvdGVzdC1jYS5jcnQiOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9jcmwucGVtIjoiTlVMTCI6TUJFRFRMU19FUlJfWDUwOV9DRVJUX1ZFUklGWV9GQUlMRUQ6TUJFRFRMU19YNTA5X0JBRENFUlRfUkVWT0tFRDoiY29tcGF0IjoiTlVMTCIKIAogWDUwOSBDUlQgdmVyaWZpY2F0aW9uICM1JyAoUmV2b2tlZCBDZXJ0LCBkaWZmZXJpbmcgRE4gc3RyaW5nIGZvcm1hdHMgIzEpCiBkZXBlbmRzX29uOk1CRURUTFNfUEVNX1BBUlNFX0M6TUJFRFRMU19NRF9DQU5fU0hBMTpNQkVEVExTX1JTQV9DOk1CRURUTFNfUEtDUzFfVjE1Ok1CRURUTFNfSEFWRV9USU1FX0RBVEUKLXg1MDlfdmVyaWZ5OiJkYXRhX2ZpbGVzL3NlcnZlcjEuY3J0IjoiZGF0YV9maWxlcy90ZXN0LWNhX3V0ZjguY3J0IjoiZGF0YV9maWxlcy9jcmwucGVtIjoiTlVMTCI6TUJFRFRMU19FUlJfWDUwOV9DRVJUX1ZFUklGWV9GQUlMRUQ6TUJFRFRMU19YNTA5X0JBRENFUlRfUkVWT0tFRDoiY29tcGF0IjoiTlVMTCIKK3g1MDlfdmVyaWZ5OiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9zZXJ2ZXIxLmNydCI6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3Rlc3QtY2FfdXRmOC5jcnQiOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9jcmwucGVtIjoiTlVMTCI6TUJFRFRMU19FUlJfWDUwOV9DRVJUX1ZFUklGWV9GQUlMRUQ6TUJFRFRMU19YNTA5X0JBRENFUlRfUkVWT0tFRDoiY29tcGF0IjoiTlVMTCIKIAogWDUwOSBDUlQgdmVyaWZpY2F0aW9uICM1JycgKFJldm9rZWQgQ2VydCwgZGlmZmVyaW5nIEROIHN0cmluZyBmb3JtYXRzICMyKQogZGVwZW5kc19vbjpNQkVEVExTX1BFTV9QQVJTRV9DOk1CRURUTFNfTURfQ0FOX1NIQTE6TUJFRFRMU19SU0FfQzpNQkVEVExTX1BLQ1MxX1YxNTpNQkVEVExTX0hBVkVfVElNRV9EQVRFCi14NTA5X3ZlcmlmeToiZGF0YV9maWxlcy9zZXJ2ZXIxLmNydCI6ImRhdGFfZmlsZXMvdGVzdC1jYV9wcmludGFibGUuY3J0IjoiZGF0YV9maWxlcy9jcmwucGVtIjoiTlVMTCI6TUJFRFRMU19FUlJfWDUwOV9DRVJUX1ZFUklGWV9GQUlMRUQ6TUJFRFRMU19YNTA5X0JBRENFUlRfUkVWT0tFRDoiY29tcGF0IjoiTlVMTCIKK3g1MDlfdmVyaWZ5OiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9zZXJ2ZXIxLmNydCI6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3Rlc3QtY2FfcHJpbnRhYmxlLmNydCI6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL2NybC5wZW0iOiJOVUxMIjpNQkVEVExTX0VSUl9YNTA5X0NFUlRfVkVSSUZZX0ZBSUxFRDpNQkVEVExTX1g1MDlfQkFEQ0VSVF9SRVZPS0VEOiJjb21wYXQiOiJOVUxMIgogCiBYNTA5IENSVCB2ZXJpZmljYXRpb24gIzUnJycgKFJldm9rZWQgQ2VydCwgZGlmZmVyaW5nIHVwcGVyIGFuZCBsb3dlciBjYXNlKQogZGVwZW5kc19vbjpNQkVEVExTX1BFTV9QQVJTRV9DOk1CRURUTFNfTURfQ0FOX1NIQTE6TUJFRFRMU19SU0FfQzpNQkVEVExTX1BLQ1MxX1YxNTpNQkVEVExTX0hBVkVfVElNRV9EQVRFCi14NTA5X3ZlcmlmeToiZGF0YV9maWxlcy9zZXJ2ZXIxLmNydCI6ImRhdGFfZmlsZXMvdGVzdC1jYV91cHBlcmNhc2UuY3J0IjoiZGF0YV9maWxlcy9jcmwucGVtIjoiTlVMTCI6TUJFRFRMU19FUlJfWDUwOV9DRVJUX1ZFUklGWV9GQUlMRUQ6TUJFRFRMU19YNTA5X0JBRENFUlRfUkVWT0tFRDoiY29tcGF0IjoiTlVMTCIKK3g1MDlfdmVyaWZ5OiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9zZXJ2ZXIxLmNydCI6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3Rlc3QtY2FfdXBwZXJjYXNlLmNydCI6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL2NybC5wZW0iOiJOVUxMIjpNQkVEVExTX0VSUl9YNTA5X0NFUlRfVkVSSUZZX0ZBSUxFRDpNQkVEVExTX1g1MDlfQkFEQ0VSVF9SRVZPS0VEOiJjb21wYXQiOiJOVUxMIgogCiBYNTA5IENSVCB2ZXJpZmljYXRpb24gIzYgKFJldm9rZWQgQ2VydCkKIGRlcGVuZHNfb246TUJFRFRMU19QRU1fUEFSU0VfQzpNQkVEVExTX01EX0NBTl9TSEExOk1CRURUTFNfUlNBX0M6TUJFRFRMU19QS0NTMV9WMTU6TUJFRFRMU19IQVZFX1RJTUVfREFURQoteDUwOV92ZXJpZnk6ImRhdGFfZmlsZXMvc2VydmVyMS5jcnQiOiJkYXRhX2ZpbGVzL3Rlc3QtY2EuY3J0IjoiZGF0YV9maWxlcy9jcmwucGVtIjoiUG9sYXJTU0wgU2VydmVyIDEiOk1CRURUTFNfRVJSX1g1MDlfQ0VSVF9WRVJJRllfRkFJTEVEOk1CRURUTFNfWDUwOV9CQURDRVJUX1JFVk9LRUQ6ImNvbXBhdCI6Ik5VTEwiCit4NTA5X3ZlcmlmeToiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvc2VydmVyMS5jcnQiOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy90ZXN0LWNhLmNydCI6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL2NybC5wZW0iOiJQb2xhclNTTCBTZXJ2ZXIgMSI6TUJFRFRMU19FUlJfWDUwOV9DRVJUX1ZFUklGWV9GQUlMRUQ6TUJFRFRMU19YNTA5X0JBRENFUlRfUkVWT0tFRDoiY29tcGF0IjoiTlVMTCIKIAogWDUwOSBDUlQgdmVyaWZpY2F0aW9uICM3IChSZXZva2VkIENlcnQsIENOIE1pc21hdGNoKQogZGVwZW5kc19vbjpNQkVEVExTX1BFTV9QQVJTRV9DOk1CRURUTFNfTURfQ0FOX1NIQTE6TUJFRFRMU19SU0FfQzpNQkVEVExTX1BLQ1MxX1YxNTpNQkVEVExTX0hBVkVfVElNRV9EQVRFCi14NTA5X3ZlcmlmeToiZGF0YV9maWxlcy9zZXJ2ZXIxLmNydCI6ImRhdGFfZmlsZXMvdGVzdC1jYS5jcnQiOiJkYXRhX2ZpbGVzL2NybC5wZW0iOiJQb2xhclNTTCBXcm9uZyBDTiI6TUJFRFRMU19FUlJfWDUwOV9DRVJUX1ZFUklGWV9GQUlMRUQ6TUJFRFRMU19YNTA5X0JBRENFUlRfUkVWT0tFRCB8IE1CRURUTFNfWDUwOV9CQURDRVJUX0NOX01JU01BVENIOiJjb21wYXQiOiJOVUxMIgoreDUwOV92ZXJpZnk6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3NlcnZlcjEuY3J0IjoiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvdGVzdC1jYS5jcnQiOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9jcmwucGVtIjoiUG9sYXJTU0wgV3JvbmcgQ04iOk1CRURUTFNfRVJSX1g1MDlfQ0VSVF9WRVJJRllfRkFJTEVEOk1CRURUTFNfWDUwOV9CQURDRVJUX1JFVk9LRUQgfCBNQkVEVExTX1g1MDlfQkFEQ0VSVF9DTl9NSVNNQVRDSDoiY29tcGF0IjoiTlVMTCIKIAogWDUwOSBDUlQgdmVyaWZpY2F0aW9uICM4IChWYWxpZCBDZXJ0KQotZGVwZW5kc19vbjpNQkVEVExTX1BFTV9QQVJTRV9DOk1CRURUTFNfTURfQ0FOX1NIQTI1NjpNQkVEVExTX1BLX0NBTl9FQ0RTQV9WRVJJRlk6TUJFRFRMU19FQ1BfSEFWRV9TRUNQMjU2UjE6TUJFRFRMU19FQ1BfSEFWRV9TRUNQMzg0UjE6TUJFRFRMU19NRF9DQU5fU0hBMQoteDUwOV92ZXJpZnk6ImRhdGFfZmlsZXMvc2VydmVyNS5jcnQiOiJkYXRhX2ZpbGVzL3Rlc3QtY2EyLmNydCI6ImRhdGFfZmlsZXMvY3JsLWVjLXNoYTEucGVtIjoiTlVMTCI6MDowOiJjb21wYXQiOiJOVUxMIgorZGVwZW5kc19vbjpNQkVEVExTX1BFTV9QQVJTRV9DOlBTQV9XQU5UX0FMR19TSEFfMjU2Ok1CRURUTFNfUEtfQ0FOX0VDRFNBX1ZFUklGWTpNQkVEVExTX0VDUF9IQVZFX1NFQ1AyNTZSMTpNQkVEVExTX0VDUF9IQVZFX1NFQ1AzODRSMTpNQkVEVExTX01EX0NBTl9TSEExCit4NTA5X3ZlcmlmeToiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvc2VydmVyNS5jcnQiOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy90ZXN0LWNhMi5jcnQiOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9jcmwtZWMtc2hhMS5wZW0iOiJOVUxMIjowOjA6ImNvbXBhdCI6Ik5VTEwiCiAKIFg1MDkgQ1JUIHZlcmlmaWNhdGlvbiAjOGEgKEV4cGlyZWQgQ2VydCkKLWRlcGVuZHNfb246TUJFRFRMU19QRU1fUEFSU0VfQzpNQkVEVExTX01EX0NBTl9TSEEyNTY6TUJFRFRMU19QS19DQU5fRUNEU0FfVkVSSUZZOk1CRURUTFNfRUNQX0hBVkVfU0VDUDI1NlIxOk1CRURUTFNfRUNQX0hBVkVfU0VDUDM4NFIxOk1CRURUTFNfTURfQ0FOX1NIQTE6TUJFRFRMU19IQVZFX1RJTUVfREFURQoteDUwOV92ZXJpZnk6ImRhdGFfZmlsZXMvc2VydmVyNS1leHBpcmVkLmNydCI6ImRhdGFfZmlsZXMvdGVzdC1jYTIuY3J0IjoiZGF0YV9maWxlcy9jcmwtZWMtc2hhMS5wZW0iOiJOVUxMIjpNQkVEVExTX0VSUl9YNTA5X0NFUlRfVkVSSUZZX0ZBSUxFRDpNQkVEVExTX1g1MDlfQkFEQ0VSVF9FWFBJUkVEOiJjb21wYXQiOiJOVUxMIgorZGVwZW5kc19vbjpNQkVEVExTX1BFTV9QQVJTRV9DOlBTQV9XQU5UX0FMR19TSEFfMjU2Ok1CRURUTFNfUEtfQ0FOX0VDRFNBX1ZFUklGWTpNQkVEVExTX0VDUF9IQVZFX1NFQ1AyNTZSMTpNQkVEVExTX0VDUF9IQVZFX1NFQ1AzODRSMTpNQkVEVExTX01EX0NBTl9TSEExOk1CRURUTFNfSEFWRV9USU1FX0RBVEUKK3g1MDlfdmVyaWZ5OiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9zZXJ2ZXI1LWV4cGlyZWQuY3J0IjoiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvdGVzdC1jYTIuY3J0IjoiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvY3JsLWVjLXNoYTEucGVtIjoiTlVMTCI6TUJFRFRMU19FUlJfWDUwOV9DRVJUX1ZFUklGWV9GQUlMRUQ6TUJFRFRMU19YNTA5X0JBRENFUlRfRVhQSVJFRDoiY29tcGF0IjoiTlVMTCIKIAogWDUwOSBDUlQgdmVyaWZpY2F0aW9uICM4YiAoRnV0dXJlIENlcnQpCi1kZXBlbmRzX29uOk1CRURUTFNfUEVNX1BBUlNFX0M6TUJFRFRMU19NRF9DQU5fU0hBMjU2Ok1CRURUTFNfUEtfQ0FOX0VDRFNBX1ZFUklGWTpNQkVEVExTX0VDUF9IQVZFX1NFQ1AyNTZSMTpNQkVEVExTX0VDUF9IQVZFX1NFQ1AzODRSMTpNQkVEVExTX01EX0NBTl9TSEExOk1CRURUTFNfSEFWRV9USU1FX0RBVEUKLXg1MDlfdmVyaWZ5OiJkYXRhX2ZpbGVzL3NlcnZlcjUtZnV0dXJlLmNydCI6ImRhdGFfZmlsZXMvdGVzdC1jYTIuY3J0IjoiZGF0YV9maWxlcy9jcmwtZWMtc2hhMS5wZW0iOiJOVUxMIjpNQkVEVExTX0VSUl9YNTA5X0NFUlRfVkVSSUZZX0ZBSUxFRDpNQkVEVExTX1g1MDlfQkFEQ0VSVF9GVVRVUkU6ImNvbXBhdCI6Ik5VTEwiCitkZXBlbmRzX29uOk1CRURUTFNfUEVNX1BBUlNFX0M6UFNBX1dBTlRfQUxHX1NIQV8yNTY6TUJFRFRMU19QS19DQU5fRUNEU0FfVkVSSUZZOk1CRURUTFNfRUNQX0hBVkVfU0VDUDI1NlIxOk1CRURUTFNfRUNQX0hBVkVfU0VDUDM4NFIxOk1CRURUTFNfTURfQ0FOX1NIQTE6TUJFRFRMU19IQVZFX1RJTUVfREFURQoreDUwOV92ZXJpZnk6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3NlcnZlcjUtZnV0dXJlLmNydCI6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3Rlc3QtY2EyLmNydCI6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL2NybC1lYy1zaGExLnBlbSI6Ik5VTEwiOk1CRURUTFNfRVJSX1g1MDlfQ0VSVF9WRVJJRllfRkFJTEVEOk1CRURUTFNfWDUwOV9CQURDRVJUX0ZVVFVSRToiY29tcGF0IjoiTlVMTCIKIAogWDUwOSBDUlQgdmVyaWZpY2F0aW9uICM4YyAoRXhwaXJlZCBDZXJ0LCBsb25nZXIgY2hhaW4pCi1kZXBlbmRzX29uOk1CRURUTFNfUEVNX1BBUlNFX0M6TUJFRFRMU19NRF9DQU5fU0hBMjU2Ok1CRURUTFNfUEtfQ0FOX0VDRFNBX1ZFUklGWTpNQkVEVExTX0VDUF9IQVZFX1NFQ1AyNTZSMTpNQkVEVExTX0VDUF9IQVZFX1NFQ1AzODRSMTpNQkVEVExTX01EX0NBTl9TSEExOk1CRURUTFNfUlNBX0M6TUJFRFRMU19QS0NTMV9WMTU6TUJFRFRMU19IQVZFX1RJTUVfREFURQoteDUwOV92ZXJpZnk6ImRhdGFfZmlsZXMvc2VydmVyNy1leHBpcmVkLmNydCI6ImRhdGFfZmlsZXMvdGVzdC1jYTIuY3J0IjoiZGF0YV9maWxlcy9jcmwtZWMtc2hhMS5wZW0iOiJOVUxMIjpNQkVEVExTX0VSUl9YNTA5X0NFUlRfVkVSSUZZX0ZBSUxFRDpNQkVEVExTX1g1MDlfQkFEQ0VSVF9FWFBJUkVEOiJjb21wYXQiOiJOVUxMIgorZGVwZW5kc19vbjpNQkVEVExTX1BFTV9QQVJTRV9DOlBTQV9XQU5UX0FMR19TSEFfMjU2Ok1CRURUTFNfUEtfQ0FOX0VDRFNBX1ZFUklGWTpNQkVEVExTX0VDUF9IQVZFX1NFQ1AyNTZSMTpNQkVEVExTX0VDUF9IQVZFX1NFQ1AzODRSMTpNQkVEVExTX01EX0NBTl9TSEExOk1CRURUTFNfUlNBX0M6TUJFRFRMU19QS0NTMV9WMTU6TUJFRFRMU19IQVZFX1RJTUVfREFURQoreDUwOV92ZXJpZnk6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3NlcnZlcjctZXhwaXJlZC5jcnQiOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy90ZXN0LWNhMi5jcnQiOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9jcmwtZWMtc2hhMS5wZW0iOiJOVUxMIjpNQkVEVExTX0VSUl9YNTA5X0NFUlRfVkVSSUZZX0ZBSUxFRDpNQkVEVExTX1g1MDlfQkFEQ0VSVF9FWFBJUkVEOiJjb21wYXQiOiJOVUxMIgogCiBYNTA5IENSVCB2ZXJpZmljYXRpb24gIzhkIChGdXR1cmUgQ2VydCwgbG9uZ2VyIGNoYWluKQotZGVwZW5kc19vbjpNQkVEVExTX1BFTV9QQVJTRV9DOk1CRURUTFNfTURfQ0FOX1NIQTI1NjpNQkVEVExTX1BLX0NBTl9FQ0RTQV9WRVJJRlk6TUJFRFRMU19FQ1BfSEFWRV9TRUNQMjU2UjE6TUJFRFRMU19FQ1BfSEFWRV9TRUNQMzg0UjE6TUJFRFRMU19NRF9DQU5fU0hBMTpNQkVEVExTX1JTQV9DOk1CRURUTFNfUEtDUzFfVjE1Ok1CRURUTFNfSEFWRV9USU1FX0RBVEUKLXg1MDlfdmVyaWZ5OiJkYXRhX2ZpbGVzL3NlcnZlcjctZnV0dXJlLmNydCI6ImRhdGFfZmlsZXMvdGVzdC1jYTIuY3J0IjoiZGF0YV9maWxlcy9jcmwtZWMtc2hhMS5wZW0iOiJOVUxMIjpNQkVEVExTX0VSUl9YNTA5X0NFUlRfVkVSSUZZX0ZBSUxFRDpNQkVEVExTX1g1MDlfQkFEQ0VSVF9GVVRVUkU6ImNvbXBhdCI6Ik5VTEwiCitkZXBlbmRzX29uOk1CRURUTFNfUEVNX1BBUlNFX0M6UFNBX1dBTlRfQUxHX1NIQV8yNTY6TUJFRFRMU19QS19DQU5fRUNEU0FfVkVSSUZZOk1CRURUTFNfRUNQX0hBVkVfU0VDUDI1NlIxOk1CRURUTFNfRUNQX0hBVkVfU0VDUDM4NFIxOk1CRURUTFNfTURfQ0FOX1NIQTE6TUJFRFRMU19SU0FfQzpNQkVEVExTX1BLQ1MxX1YxNTpNQkVEVExTX0hBVkVfVElNRV9EQVRFCit4NTA5X3ZlcmlmeToiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvc2VydmVyNy1mdXR1cmUuY3J0IjoiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvdGVzdC1jYTIuY3J0IjoiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvY3JsLWVjLXNoYTEucGVtIjoiTlVMTCI6TUJFRFRMU19FUlJfWDUwOV9DRVJUX1ZFUklGWV9GQUlMRUQ6TUJFRFRMU19YNTA5X0JBRENFUlRfRlVUVVJFOiJjb21wYXQiOiJOVUxMIgogCiBYNTA5IENSVCB2ZXJpZmljYXRpb24gIzkgKE5vdCB0cnVzdGVkIENlcnQpCiBkZXBlbmRzX29uOk1CRURUTFNfUEVNX1BBUlNFX0M6TUJFRFRMU19NRF9DQU5fU0hBMTpNQkVEVExTX1JTQV9DOk1CRURUTFNfUEtDUzFfVjE1Ci14NTA5X3ZlcmlmeToiZGF0YV9maWxlcy9zZXJ2ZXIyLmNydCI6ImRhdGFfZmlsZXMvc2VydmVyMS5jcnQiOiJkYXRhX2ZpbGVzL2NybC5wZW0iOiJOVUxMIjpNQkVEVExTX0VSUl9YNTA5X0NFUlRfVkVSSUZZX0ZBSUxFRDpNQkVEVExTX1g1MDlfQkFEQ0VSVF9OT1RfVFJVU1RFRDoiY29tcGF0IjoiTlVMTCIKK3g1MDlfdmVyaWZ5OiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9zZXJ2ZXIyLmNydCI6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3NlcnZlcjEuY3J0IjoiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvY3JsLnBlbSI6Ik5VTEwiOk1CRURUTFNfRVJSX1g1MDlfQ0VSVF9WRVJJRllfRkFJTEVEOk1CRURUTFNfWDUwOV9CQURDRVJUX05PVF9UUlVTVEVEOiJjb21wYXQiOiJOVUxMIgogCiBYNTA5IENSVCB2ZXJpZmljYXRpb24gIzEwIChOb3QgdHJ1c3RlZCBDZXJ0LCBFeHBpcmVkIENSTCkKIGRlcGVuZHNfb246TUJFRFRMU19QRU1fUEFSU0VfQzpNQkVEVExTX1JTQV9DOk1CRURUTFNfUEtDUzFfVjE1Ok1CRURUTFNfTURfQ0FOX1NIQTEKLXg1MDlfdmVyaWZ5OiJkYXRhX2ZpbGVzL3NlcnZlcjIuY3J0IjoiZGF0YV9maWxlcy9zZXJ2ZXIxLmNydCI6ImRhdGFfZmlsZXMvY3JsX2V4cGlyZWQucGVtIjoiTlVMTCI6TUJFRFRMU19FUlJfWDUwOV9DRVJUX1ZFUklGWV9GQUlMRUQ6TUJFRFRMU19YNTA5X0JBRENFUlRfTk9UX1RSVVNURUQ6ImNvbXBhdCI6Ik5VTEwiCit4NTA5X3ZlcmlmeToiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvc2VydmVyMi5jcnQiOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9zZXJ2ZXIxLmNydCI6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL2NybF9leHBpcmVkLnBlbSI6Ik5VTEwiOk1CRURUTFNfRVJSX1g1MDlfQ0VSVF9WRVJJRllfRkFJTEVEOk1CRURUTFNfWDUwOV9CQURDRVJUX05PVF9UUlVTVEVEOiJjb21wYXQiOiJOVUxMIgogCiBYNTA5IENSVCB2ZXJpZmljYXRpb24gIzEzIChWYWxpZCBDZXJ0IE1ENSBEaWdlc3QsIE1ENSBmb3JiaWRkZW4pCiBkZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX01ENTpNQkVEVExTX1BFTV9QQVJTRV9DOk1CRURUTFNfTURfQ0FOX1NIQTE6TUJFRFRMU19SU0FfQzpNQkVEVExTX1BLQ1MxX1YxNQoteDUwOV92ZXJpZnk6ImRhdGFfZmlsZXMvY2VydF9tZDUuY3J0IjoiZGF0YV9maWxlcy90ZXN0LWNhLmNydCI6ImRhdGFfZmlsZXMvY3JsLnBlbSI6Ik5VTEwiOk1CRURUTFNfRVJSX1g1MDlfQ0VSVF9WRVJJRllfRkFJTEVEOk1CRURUTFNfWDUwOV9CQURDRVJUX0JBRF9NRDoiY29tcGF0IjoiTlVMTCIKK3g1MDlfdmVyaWZ5OiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9jZXJ0X21kNS5jcnQiOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy90ZXN0LWNhLmNydCI6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL2NybC5wZW0iOiJOVUxMIjpNQkVEVExTX0VSUl9YNTA5X0NFUlRfVkVSSUZZX0ZBSUxFRDpNQkVEVExTX1g1MDlfQkFEQ0VSVF9CQURfTUQ6ImNvbXBhdCI6Ik5VTEwiCiAKIFg1MDkgQ1JUIHZlcmlmaWNhdGlvbiAjMTMgKFZhbGlkIENlcnQgTUQ1IERpZ2VzdCwgTUQ1IGFsbG93ZWQpCiBkZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX01ENTpNQkVEVExTX1BFTV9QQVJTRV9DOk1CRURUTFNfTURfQ0FOX1NIQTE6TUJFRFRMU19SU0FfQzpNQkVEVExTX1BLQ1MxX1YxNQoteDUwOV92ZXJpZnk6ImRhdGFfZmlsZXMvY2VydF9tZDUuY3J0IjoiZGF0YV9maWxlcy90ZXN0LWNhLmNydCI6ImRhdGFfZmlsZXMvY3JsLnBlbSI6Ik5VTEwiOjA6MDoiYWxsIjoiTlVMTCIKK3g1MDlfdmVyaWZ5OiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9jZXJ0X21kNS5jcnQiOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy90ZXN0LWNhLmNydCI6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL2NybC5wZW0iOiJOVUxMIjowOjA6ImFsbCI6Ik5VTEwiCiAKIFg1MDkgQ1JUIHZlcmlmaWNhdGlvbiAjMTQgKFZhbGlkIENlcnQgU0hBMSBEaWdlc3QgZXhwbGljaXRseSBhbGxvd2VkIGluIHByb2ZpbGUpCiBkZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTE6TUJFRFRMU19QRU1fUEFSU0VfQzpNQkVEVExTX01EX0NBTl9TSEExOk1CRURUTFNfUlNBX0M6TUJFRFRMU19QS0NTMV9WMTUKLXg1MDlfdmVyaWZ5OiJkYXRhX2ZpbGVzL2NlcnRfc2hhMS5jcnQiOiJkYXRhX2ZpbGVzL3Rlc3QtY2EuY3J0IjoiZGF0YV9maWxlcy9jcmwucGVtIjoiTlVMTCI6MDowOiJjb21wYXQiOiJOVUxMIgoreDUwOV92ZXJpZnk6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL2NlcnRfc2hhMS5jcnQiOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy90ZXN0LWNhLmNydCI6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL2NybC5wZW0iOiJOVUxMIjowOjA6ImNvbXBhdCI6Ik5VTEwiCiAKIFg1MDkgQ1JUIHZlcmlmaWNhdGlvbiAjMTQgKFZhbGlkIENlcnQgU0hBMSBEaWdlc3QgZm9yYmlkZGVuIGluIGRlZmF1bHQgcHJvZmlsZSkKIGRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMTpNQkVEVExTX1BFTV9QQVJTRV9DOk1CRURUTFNfTURfQ0FOX1NIQTE6TUJFRFRMU19SU0FfQzpNQkVEVExTX1BLQ1MxX1YxNQoteDUwOV92ZXJpZnk6ImRhdGFfZmlsZXMvY2VydF9zaGExLmNydCI6ImRhdGFfZmlsZXMvdGVzdC1jYS5jcnQiOiJkYXRhX2ZpbGVzL2NybC5wZW0iOiJOVUxMIjpNQkVEVExTX0VSUl9YNTA5X0NFUlRfVkVSSUZZX0ZBSUxFRDpNQkVEVExTX1g1MDlfQkFEQ1JMX0JBRF9NRCB8IE1CRURUTFNfWDUwOV9CQURDRVJUX0JBRF9NRDoiIjoiTlVMTCIKK3g1MDlfdmVyaWZ5OiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9jZXJ0X3NoYTEuY3J0IjoiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvdGVzdC1jYS5jcnQiOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9jcmwucGVtIjoiTlVMTCI6TUJFRFRMU19FUlJfWDUwOV9DRVJUX1ZFUklGWV9GQUlMRUQ6TUJFRFRMU19YNTA5X0JBRENSTF9CQURfTUQgfCBNQkVEVExTX1g1MDlfQkFEQ0VSVF9CQURfTUQ6IiI6Ik5VTEwiCiAKIFg1MDkgQ1JUIHZlcmlmaWNhdGlvbiAjMTUgKFZhbGlkIENlcnQgU0hBMjI0IERpZ2VzdCkKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjI0Ok1CRURUTFNfUEVNX1BBUlNFX0M6TUJFRFRMU19NRF9DQU5fU0hBMTpNQkVEVExTX1JTQV9DOk1CRURUTFNfUEtDUzFfVjE1Ci14NTA5X3ZlcmlmeToiZGF0YV9maWxlcy9jZXJ0X3NoYTIyNC5jcnQiOiJkYXRhX2ZpbGVzL3Rlc3QtY2EuY3J0IjoiZGF0YV9maWxlcy9jcmwucGVtIjoiTlVMTCI6MDowOiJjb21wYXQiOiJOVUxMIgorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzIyNDpNQkVEVExTX1BFTV9QQVJTRV9DOk1CRURUTFNfTURfQ0FOX1NIQTE6TUJFRFRMU19SU0FfQzpNQkVEVExTX1BLQ1MxX1YxNQoreDUwOV92ZXJpZnk6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL2NlcnRfc2hhMjI0LmNydCI6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3Rlc3QtY2EuY3J0IjoiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvY3JsLnBlbSI6Ik5VTEwiOjA6MDoiY29tcGF0IjoiTlVMTCIKIAogWDUwOSBDUlQgdmVyaWZpY2F0aW9uICMxNiAoVmFsaWQgQ2VydCBTSEEyNTYgRGlnZXN0KQotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTY6TUJFRFRMU19QRU1fUEFSU0VfQzpNQkVEVExTX01EX0NBTl9TSEExOk1CRURUTFNfUlNBX0M6TUJFRFRMU19QS0NTMV9WMTUKLXg1MDlfdmVyaWZ5OiJkYXRhX2ZpbGVzL2NlcnRfc2hhMjU2LmNydCI6ImRhdGFfZmlsZXMvdGVzdC1jYS5jcnQiOiJkYXRhX2ZpbGVzL2NybC5wZW0iOiJOVUxMIjowOjA6ImNvbXBhdCI6Ik5VTEwiCitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2Ok1CRURUTFNfUEVNX1BBUlNFX0M6TUJFRFRMU19NRF9DQU5fU0hBMTpNQkVEVExTX1JTQV9DOk1CRURUTFNfUEtDUzFfVjE1Cit4NTA5X3ZlcmlmeToiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvY2VydF9zaGEyNTYuY3J0IjoiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvdGVzdC1jYS5jcnQiOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9jcmwucGVtIjoiTlVMTCI6MDowOiJjb21wYXQiOiJOVUxMIgogCiBYNTA5IENSVCB2ZXJpZmljYXRpb24gIzE3IChWYWxpZCBDZXJ0IFNIQTM4NCBEaWdlc3QpCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTM4NDpNQkVEVExTX1BFTV9QQVJTRV9DOk1CRURUTFNfTURfQ0FOX1NIQTE6TUJFRFRMU19SU0FfQzpNQkVEVExTX1BLQ1MxX1YxNQoteDUwOV92ZXJpZnk6ImRhdGFfZmlsZXMvY2VydF9zaGEzODQuY3J0IjoiZGF0YV9maWxlcy90ZXN0LWNhLmNydCI6ImRhdGFfZmlsZXMvY3JsLnBlbSI6Ik5VTEwiOjA6MDoiY29tcGF0IjoiTlVMTCIKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8zODQ6TUJFRFRMU19QRU1fUEFSU0VfQzpNQkVEVExTX01EX0NBTl9TSEExOk1CRURUTFNfUlNBX0M6TUJFRFRMU19QS0NTMV9WMTUKK3g1MDlfdmVyaWZ5OiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9jZXJ0X3NoYTM4NC5jcnQiOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy90ZXN0LWNhLmNydCI6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL2NybC5wZW0iOiJOVUxMIjowOjA6ImNvbXBhdCI6Ik5VTEwiCiAKIFg1MDkgQ1JUIHZlcmlmaWNhdGlvbiAjMTggKFZhbGlkIENlcnQgU0hBNTEyIERpZ2VzdCkKIGRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBNTEyOk1CRURUTFNfUEVNX1BBUlNFX0M6TUJFRFRMU19NRF9DQU5fU0hBMTpNQkVEVExTX1JTQV9DOk1CRURUTFNfUEtDUzFfVjE1Ci14NTA5X3ZlcmlmeToiZGF0YV9maWxlcy9jZXJ0X3NoYTUxMi5jcnQiOiJkYXRhX2ZpbGVzL3Rlc3QtY2EuY3J0IjoiZGF0YV9maWxlcy9jcmwucGVtIjoiTlVMTCI6MDowOiJjb21wYXQiOiJOVUxMIgoreDUwOV92ZXJpZnk6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL2NlcnRfc2hhNTEyLmNydCI6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3Rlc3QtY2EuY3J0IjoiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvY3JsLnBlbSI6Ik5VTEwiOjA6MDoiY29tcGF0IjoiTlVMTCIKIAogWDUwOSBDUlQgdmVyaWZpY2F0aW9uICMxOSAoVmFsaWQgQ2VydCwgZGVueWluZyBjYWxsYmFjaykKIGRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBNTEyOk1CRURUTFNfUEVNX1BBUlNFX0M6TUJFRFRMU19NRF9DQU5fU0hBMTpNQkVEVExTX1JTQV9DOk1CRURUTFNfUEtDUzFfVjE1Ci14NTA5X3ZlcmlmeToiZGF0YV9maWxlcy9jZXJ0X3NoYTUxMi5jcnQiOiJkYXRhX2ZpbGVzL3Rlc3QtY2EuY3J0IjoiZGF0YV9maWxlcy9jcmwucGVtIjoiTlVMTCI6TUJFRFRMU19FUlJfWDUwOV9DRVJUX1ZFUklGWV9GQUlMRUQ6TUJFRFRMU19YNTA5X0JBRENFUlRfT1RIRVI6ImNvbXBhdCI6InZlcmlmeV9ub25lIgoreDUwOV92ZXJpZnk6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL2NlcnRfc2hhNTEyLmNydCI6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3Rlc3QtY2EuY3J0IjoiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvY3JsLnBlbSI6Ik5VTEwiOk1CRURUTFNfRVJSX1g1MDlfQ0VSVF9WRVJJRllfRkFJTEVEOk1CRURUTFNfWDUwOV9CQURDRVJUX09USEVSOiJjb21wYXQiOiJ2ZXJpZnlfbm9uZSIKIAogWDUwOSBDUlQgdmVyaWZpY2F0aW9uICMxOSAoTm90IHRydXN0ZWQgQ2VydCwgYWxsb3dpbmcgY2FsbGJhY2spCiBkZXBlbmRzX29uOk1CRURUTFNfUEVNX1BBUlNFX0M6TUJFRFRMU19SU0FfQzpNQkVEVExTX1BLQ1MxX1YxNTpNQkVEVExTX01EX0NBTl9TSEExCi14NTA5X3ZlcmlmeToiZGF0YV9maWxlcy9zZXJ2ZXIyLmNydCI6ImRhdGFfZmlsZXMvc2VydmVyMS5jcnQiOiJkYXRhX2ZpbGVzL2NybF9leHBpcmVkLnBlbSI6Ik5VTEwiOjA6MDoiY29tcGF0IjoidmVyaWZ5X2FsbCIKK3g1MDlfdmVyaWZ5OiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9zZXJ2ZXIyLmNydCI6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3NlcnZlcjEuY3J0IjoiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvY3JsX2V4cGlyZWQucGVtIjoiTlVMTCI6MDowOiJjb21wYXQiOiJ2ZXJpZnlfYWxsIgogCiBYNTA5IENSVCB2ZXJpZmljYXRpb24gIzIxIChkb21haW4gbWF0Y2hpbmcgd2lsZGNhcmQgY2VydGlmaWNhdGUsIGNhc2UgaW5zZW5zaXRpdmUpCiBkZXBlbmRzX29uOk1CRURUTFNfUEVNX1BBUlNFX0M6TUJFRFRMU19NRF9DQU5fU0hBMTpNQkVEVExTX1JTQV9DOk1CRURUTFNfUEtDUzFfVjE1Ci14NTA5X3ZlcmlmeToiZGF0YV9maWxlcy9jZXJ0X2V4YW1wbGVfd2lsZGNhcmQuY3J0IjoiZGF0YV9maWxlcy90ZXN0LWNhLmNydCI6ImRhdGFfZmlsZXMvY3JsLnBlbSI6Im1haWwuRXhBbVBsRS5jb20iOjA6MDoiY29tcGF0IjoiTlVMTCIKK3g1MDlfdmVyaWZ5OiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9jZXJ0X2V4YW1wbGVfd2lsZGNhcmQuY3J0IjoiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvdGVzdC1jYS5jcnQiOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9jcmwucGVtIjoibWFpbC5FeEFtUGxFLmNvbSI6MDowOiJjb21wYXQiOiJOVUxMIgogCiBYNTA5IENSVCB2ZXJpZmljYXRpb24gIzIyIChkb21haW4gbm90IG1hdGNoaW5nIHdpbGRjYXJkIGNlcnRpZmljYXRlKQogZGVwZW5kc19vbjpNQkVEVExTX1BFTV9QQVJTRV9DOk1CRURUTFNfTURfQ0FOX1NIQTE6TUJFRFRMU19SU0FfQzpNQkVEVExTX1BLQ1MxX1YxNQoteDUwOV92ZXJpZnk6ImRhdGFfZmlsZXMvY2VydF9leGFtcGxlX3dpbGRjYXJkLmNydCI6ImRhdGFfZmlsZXMvdGVzdC1jYS5jcnQiOiJkYXRhX2ZpbGVzL2NybC5wZW0iOiJtYWlsLmV4YW1wbGUubmV0IjpNQkVEVExTX0VSUl9YNTA5X0NFUlRfVkVSSUZZX0ZBSUxFRDpNQkVEVExTX1g1MDlfQkFEQ0VSVF9DTl9NSVNNQVRDSDoiY29tcGF0IjoiTlVMTCIKK3g1MDlfdmVyaWZ5OiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9jZXJ0X2V4YW1wbGVfd2lsZGNhcmQuY3J0IjoiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvdGVzdC1jYS5jcnQiOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9jcmwucGVtIjoibWFpbC5leGFtcGxlLm5ldCI6TUJFRFRMU19FUlJfWDUwOV9DRVJUX1ZFUklGWV9GQUlMRUQ6TUJFRFRMU19YNTA5X0JBRENFUlRfQ05fTUlTTUFUQ0g6ImNvbXBhdCI6Ik5VTEwiCiAKIFg1MDkgQ1JUIHZlcmlmaWNhdGlvbiAjMjMgKGRvbWFpbiBub3QgbWF0Y2hpbmcgd2lsZGNhcmQgY2VydGlmaWNhdGUpCiBkZXBlbmRzX29uOk1CRURUTFNfUEVNX1BBUlNFX0M6TUJFRFRMU19NRF9DQU5fU0hBMTpNQkVEVExTX1JTQV9DOk1CRURUTFNfUEtDUzFfVjE1Ci14NTA5X3ZlcmlmeToiZGF0YV9maWxlcy9jZXJ0X2V4YW1wbGVfd2lsZGNhcmQuY3J0IjoiZGF0YV9maWxlcy90ZXN0LWNhLmNydCI6ImRhdGFfZmlsZXMvY3JsLnBlbSI6ImV4YW1wbGUuY29tIjpNQkVEVExTX0VSUl9YNTA5X0NFUlRfVkVSSUZZX0ZBSUxFRDpNQkVEVExTX1g1MDlfQkFEQ0VSVF9DTl9NSVNNQVRDSDoiY29tcGF0IjoiTlVMTCIKK3g1MDlfdmVyaWZ5OiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9jZXJ0X2V4YW1wbGVfd2lsZGNhcmQuY3J0IjoiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvdGVzdC1jYS5jcnQiOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9jcmwucGVtIjoiZXhhbXBsZS5jb20iOk1CRURUTFNfRVJSX1g1MDlfQ0VSVF9WRVJJRllfRkFJTEVEOk1CRURUTFNfWDUwOV9CQURDRVJUX0NOX01JU01BVENIOiJjb21wYXQiOiJOVUxMIgogCiBYNTA5IENSVCB2ZXJpZmljYXRpb24gIzI0IChkb21haW4gbWF0Y2hpbmcgQ04gb2YgbXVsdGkgY2VydGlmaWNhdGUpCi1kZXBlbmRzX29uOk1CRURUTFNfUEVNX1BBUlNFX0M6TUJFRFRMU19NRF9DQU5fU0hBMTpNQkVEVExTX01EX0NBTl9TSEEyNTY6TUJFRFRMU19SU0FfQzpNQkVEVExTX1BLQ1MxX1YxNQoteDUwOV92ZXJpZnk6ImRhdGFfZmlsZXMvY2VydF9leGFtcGxlX211bHRpLmNydCI6ImRhdGFfZmlsZXMvdGVzdC1jYS5jcnQiOiJkYXRhX2ZpbGVzL2NybC5wZW0iOiJ3d3cuZXhhbXBsZS5jb20iOk1CRURUTFNfRVJSX1g1MDlfQ0VSVF9WRVJJRllfRkFJTEVEOk1CRURUTFNfWDUwOV9CQURDRVJUX0NOX01JU01BVENIOiJjb21wYXQiOiJOVUxMIgorZGVwZW5kc19vbjpNQkVEVExTX1BFTV9QQVJTRV9DOk1CRURUTFNfTURfQ0FOX1NIQTE6UFNBX1dBTlRfQUxHX1NIQV8yNTY6TUJFRFRMU19SU0FfQzpNQkVEVExTX1BLQ1MxX1YxNQoreDUwOV92ZXJpZnk6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL2NlcnRfZXhhbXBsZV9tdWx0aS5jcnQiOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy90ZXN0LWNhLmNydCI6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL2NybC5wZW0iOiJ3d3cuZXhhbXBsZS5jb20iOk1CRURUTFNfRVJSX1g1MDlfQ0VSVF9WRVJJRllfRkFJTEVEOk1CRURUTFNfWDUwOV9CQURDRVJUX0NOX01JU01BVENIOiJjb21wYXQiOiJOVUxMIgogCiBYNTA5IENSVCB2ZXJpZmljYXRpb24gIzI1IChkb21haW4gbWF0Y2hpbmcgbXVsdGkgY2VydGlmaWNhdGUpCi1kZXBlbmRzX29uOk1CRURUTFNfUEVNX1BBUlNFX0M6TUJFRFRMU19NRF9DQU5fU0hBMTpNQkVEVExTX01EX0NBTl9TSEEyNTY6TUJFRFRMU19SU0FfQzpNQkVEVExTX1BLQ1MxX1YxNQoteDUwOV92ZXJpZnk6ImRhdGFfZmlsZXMvY2VydF9leGFtcGxlX211bHRpLmNydCI6ImRhdGFfZmlsZXMvdGVzdC1jYS5jcnQiOiJkYXRhX2ZpbGVzL2NybC5wZW0iOiJleGFtcGxlLm5ldCI6MDowOiJjb21wYXQiOiJOVUxMIgorZGVwZW5kc19vbjpNQkVEVExTX1BFTV9QQVJTRV9DOk1CRURUTFNfTURfQ0FOX1NIQTE6UFNBX1dBTlRfQUxHX1NIQV8yNTY6TUJFRFRMU19SU0FfQzpNQkVEVExTX1BLQ1MxX1YxNQoreDUwOV92ZXJpZnk6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL2NlcnRfZXhhbXBsZV9tdWx0aS5jcnQiOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy90ZXN0LWNhLmNydCI6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL2NybC5wZW0iOiJleGFtcGxlLm5ldCI6MDowOiJjb21wYXQiOiJOVUxMIgogCiBYNTA5IENSVCB2ZXJpZmljYXRpb24gIzI2IChkb21haW4gbm90IG1hdGNoaW5nIG11bHRpIGNlcnRpZmljYXRlKQotZGVwZW5kc19vbjpNQkVEVExTX1BFTV9QQVJTRV9DOk1CRURUTFNfTURfQ0FOX1NIQTE6TUJFRFRMU19NRF9DQU5fU0hBMjU2Ok1CRURUTFNfUlNBX0M6TUJFRFRMU19QS0NTMV9WMTUKLXg1MDlfdmVyaWZ5OiJkYXRhX2ZpbGVzL2NlcnRfZXhhbXBsZV9tdWx0aS5jcnQiOiJkYXRhX2ZpbGVzL3Rlc3QtY2EuY3J0IjoiZGF0YV9maWxlcy9jcmwucGVtIjoid3d3LmV4YW1wbGUubmV0IjpNQkVEVExTX0VSUl9YNTA5X0NFUlRfVkVSSUZZX0ZBSUxFRDpNQkVEVExTX1g1MDlfQkFEQ0VSVF9DTl9NSVNNQVRDSDoiY29tcGF0IjoiTlVMTCIKK2RlcGVuZHNfb246TUJFRFRMU19QRU1fUEFSU0VfQzpNQkVEVExTX01EX0NBTl9TSEExOlBTQV9XQU5UX0FMR19TSEFfMjU2Ok1CRURUTFNfUlNBX0M6TUJFRFRMU19QS0NTMV9WMTUKK3g1MDlfdmVyaWZ5OiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9jZXJ0X2V4YW1wbGVfbXVsdGkuY3J0IjoiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvdGVzdC1jYS5jcnQiOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9jcmwucGVtIjoid3d3LmV4YW1wbGUubmV0IjpNQkVEVExTX0VSUl9YNTA5X0NFUlRfVkVSSUZZX0ZBSUxFRDpNQkVEVExTX1g1MDlfQkFEQ0VSVF9DTl9NSVNNQVRDSDoiY29tcGF0IjoiTlVMTCIKIAogWDUwOSBDUlQgdmVyaWZpY2F0aW9uICMyNy4xIChkb21haW4gbm90IG1hdGNoaW5nIG11bHRpIGNlcnRpZmljYXRlOiBzdWZmaXgpCi1kZXBlbmRzX29uOk1CRURUTFNfUEVNX1BBUlNFX0M6TUJFRFRMU19NRF9DQU5fU0hBMTpNQkVEVExTX01EX0NBTl9TSEEyNTY6TUJFRFRMU19SU0FfQzpNQkVEVExTX1BLQ1MxX1YxNQoteDUwOV92ZXJpZnk6ImRhdGFfZmlsZXMvY2VydF9leGFtcGxlX211bHRpLmNydCI6ImRhdGFfZmlsZXMvdGVzdC1jYS5jcnQiOiJkYXRhX2ZpbGVzL2NybC5wZW0iOiJ4YW1wbGUubmV0IjpNQkVEVExTX0VSUl9YNTA5X0NFUlRfVkVSSUZZX0ZBSUxFRDpNQkVEVExTX1g1MDlfQkFEQ0VSVF9DTl9NSVNNQVRDSDoiY29tcGF0IjoiTlVMTCIKK2RlcGVuZHNfb246TUJFRFRMU19QRU1fUEFSU0VfQzpNQkVEVExTX01EX0NBTl9TSEExOlBTQV9XQU5UX0FMR19TSEFfMjU2Ok1CRURUTFNfUlNBX0M6TUJFRFRMU19QS0NTMV9WMTUKK3g1MDlfdmVyaWZ5OiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9jZXJ0X2V4YW1wbGVfbXVsdGkuY3J0IjoiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvdGVzdC1jYS5jcnQiOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9jcmwucGVtIjoieGFtcGxlLm5ldCI6TUJFRFRMU19FUlJfWDUwOV9DRVJUX1ZFUklGWV9GQUlMRUQ6TUJFRFRMU19YNTA5X0JBRENFUlRfQ05fTUlTTUFUQ0g6ImNvbXBhdCI6Ik5VTEwiCiAKIFg1MDkgQ1JUIHZlcmlmaWNhdGlvbiAjMjcuMiAoZG9tYWluIG5vdCBtYXRjaGluZyBtdWx0aSBjZXJ0aWZpY2F0ZTogaGVhZCBqdW5rKQotZGVwZW5kc19vbjpNQkVEVExTX1BFTV9QQVJTRV9DOk1CRURUTFNfTURfQ0FOX1NIQTE6TUJFRFRMU19NRF9DQU5fU0hBMjU2Ok1CRURUTFNfUlNBX0M6TUJFRFRMU19QS0NTMV9WMTUKLXg1MDlfdmVyaWZ5OiJkYXRhX2ZpbGVzL2NlcnRfZXhhbXBsZV9tdWx0aS5jcnQiOiJkYXRhX2ZpbGVzL3Rlc3QtY2EuY3J0IjoiZGF0YV9maWxlcy9jcmwucGVtIjoiYmV4YW1wbGUubmV0IjpNQkVEVExTX0VSUl9YNTA5X0NFUlRfVkVSSUZZX0ZBSUxFRDpNQkVEVExTX1g1MDlfQkFEQ0VSVF9DTl9NSVNNQVRDSDoiY29tcGF0IjoiTlVMTCIKK2RlcGVuZHNfb246TUJFRFRMU19QRU1fUEFSU0VfQzpNQkVEVExTX01EX0NBTl9TSEExOlBTQV9XQU5UX0FMR19TSEFfMjU2Ok1CRURUTFNfUlNBX0M6TUJFRFRMU19QS0NTMV9WMTUKK3g1MDlfdmVyaWZ5OiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9jZXJ0X2V4YW1wbGVfbXVsdGkuY3J0IjoiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvdGVzdC1jYS5jcnQiOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9jcmwucGVtIjoiYmV4YW1wbGUubmV0IjpNQkVEVExTX0VSUl9YNTA5X0NFUlRfVkVSSUZZX0ZBSUxFRDpNQkVEVExTX1g1MDlfQkFEQ0VSVF9DTl9NSVNNQVRDSDoiY29tcGF0IjoiTlVMTCIKIAogWDUwOSBDUlQgdmVyaWZpY2F0aW9uICMyOCAoZG9tYWluIG5vdCBtYXRjaGluZyB3aWxkY2FyZCBpbiBtdWx0aSBjZXJ0aWZpY2F0ZSkKLWRlcGVuZHNfb246TUJFRFRMU19QRU1fUEFSU0VfQzpNQkVEVExTX01EX0NBTl9TSEExOk1CRURUTFNfTURfQ0FOX1NIQTI1NjpNQkVEVExTX1JTQV9DOk1CRURUTFNfUEtDUzFfVjE1Ci14NTA5X3ZlcmlmeToiZGF0YV9maWxlcy9jZXJ0X2V4YW1wbGVfbXVsdGkuY3J0IjoiZGF0YV9maWxlcy90ZXN0LWNhLmNydCI6ImRhdGFfZmlsZXMvY3JsLnBlbSI6ImV4YW1wbGUub3JnIjpNQkVEVExTX0VSUl9YNTA5X0NFUlRfVkVSSUZZX0ZBSUxFRDpNQkVEVExTX1g1MDlfQkFEQ0VSVF9DTl9NSVNNQVRDSDoiY29tcGF0IjoiTlVMTCIKK2RlcGVuZHNfb246TUJFRFRMU19QRU1fUEFSU0VfQzpNQkVEVExTX01EX0NBTl9TSEExOlBTQV9XQU5UX0FMR19TSEFfMjU2Ok1CRURUTFNfUlNBX0M6TUJFRFRMU19QS0NTMV9WMTUKK3g1MDlfdmVyaWZ5OiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9jZXJ0X2V4YW1wbGVfbXVsdGkuY3J0IjoiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvdGVzdC1jYS5jcnQiOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9jcmwucGVtIjoiZXhhbXBsZS5vcmciOk1CRURUTFNfRVJSX1g1MDlfQ0VSVF9WRVJJRllfRkFJTEVEOk1CRURUTFNfWDUwOV9CQURDRVJUX0NOX01JU01BVENIOiJjb21wYXQiOiJOVUxMIgogCiBYNTA5IENSVCB2ZXJpZmljYXRpb24gIzI5IChkb21haW4gbWF0Y2hpbmcgd2lsZGNhcmQgaW4gbXVsdGkgY2VydGlmaWNhdGUpCi1kZXBlbmRzX29uOk1CRURUTFNfUEVNX1BBUlNFX0M6TUJFRFRMU19NRF9DQU5fU0hBMTpNQkVEVExTX01EX0NBTl9TSEEyNTY6TUJFRFRMU19SU0FfQzpNQkVEVExTX1BLQ1MxX1YxNQoteDUwOV92ZXJpZnk6ImRhdGFfZmlsZXMvY2VydF9leGFtcGxlX211bHRpLmNydCI6ImRhdGFfZmlsZXMvdGVzdC1jYS5jcnQiOiJkYXRhX2ZpbGVzL2NybC5wZW0iOiJtYWlsLmV4YW1wbGUub3JnIjowOjA6ImNvbXBhdCI6Ik5VTEwiCitkZXBlbmRzX29uOk1CRURUTFNfUEVNX1BBUlNFX0M6TUJFRFRMU19NRF9DQU5fU0hBMTpQU0FfV0FOVF9BTEdfU0hBXzI1NjpNQkVEVExTX1JTQV9DOk1CRURUTFNfUEtDUzFfVjE1Cit4NTA5X3ZlcmlmeToiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvY2VydF9leGFtcGxlX211bHRpLmNydCI6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3Rlc3QtY2EuY3J0IjoiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvY3JsLnBlbSI6Im1haWwuZXhhbXBsZS5vcmciOjA6MDoiY29tcGF0IjoiTlVMTCIKIAogWDUwOSBDUlQgdmVyaWZpY2F0aW9uICMzMCAoZG9tYWluIG1hdGNoaW5nIG11bHRpIGNlcnRpZmljYXRlIHdpdGhvdXQgQ04pCiBkZXBlbmRzX29uOk1CRURUTFNfUEVNX1BBUlNFX0M6TUJFRFRMU19NRF9DQU5fU0hBMTpNQkVEVExTX1JTQV9DOk1CRURUTFNfUEtDUzFfVjE1Ci14NTA5X3ZlcmlmeToiZGF0YV9maWxlcy9jZXJ0X2V4YW1wbGVfbXVsdGlfbm9jbi5jcnQiOiJkYXRhX2ZpbGVzL3Rlc3QtY2EuY3J0IjoiZGF0YV9maWxlcy9jcmwucGVtIjoid3d3LnNob3Rva2FuLWJyYXVuc2Nod2VpZy5kZSI6TUJFRFRMU19FUlJfWDUwOV9DRVJUX1ZFUklGWV9GQUlMRUQ6TUJFRFRMU19YNTA5X0JBRENFUlRfTk9UX1RSVVNURUQ6ImNvbXBhdCI6Ik5VTEwiCit4NTA5X3ZlcmlmeToiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvY2VydF9leGFtcGxlX211bHRpX25vY24uY3J0IjoiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvdGVzdC1jYS5jcnQiOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9jcmwucGVtIjoid3d3LnNob3Rva2FuLWJyYXVuc2Nod2VpZy5kZSI6TUJFRFRMU19FUlJfWDUwOV9DRVJUX1ZFUklGWV9GQUlMRUQ6TUJFRFRMU19YNTA5X0JBRENFUlRfTk9UX1RSVVNURUQ6ImNvbXBhdCI6Ik5VTEwiCiAKIFg1MDkgQ1JUIHZlcmlmaWNhdGlvbiAjMzEgKGRvbWFpbiBub3QgbWF0Y2hpbmcgbXVsdGkgY2VydGlmaWNhdGUgd2l0aG91dCBDTikKIGRlcGVuZHNfb246TUJFRFRMU19QRU1fUEFSU0VfQzpNQkVEVExTX01EX0NBTl9TSEExOk1CRURUTFNfUlNBX0M6TUJFRFRMU19QS0NTMV9WMTUKLXg1MDlfdmVyaWZ5OiJkYXRhX2ZpbGVzL2NlcnRfZXhhbXBsZV9tdWx0aV9ub2NuLmNydCI6ImRhdGFfZmlsZXMvdGVzdC1jYS5jcnQiOiJkYXRhX2ZpbGVzL2NybC5wZW0iOiJ3d3cuZXhhbXBsZS5uZXQiOk1CRURUTFNfRVJSX1g1MDlfQ0VSVF9WRVJJRllfRkFJTEVEOk1CRURUTFNfWDUwOV9CQURDRVJUX0NOX01JU01BVENIICsgTUJFRFRMU19YNTA5X0JBRENFUlRfTk9UX1RSVVNURUQ6ImNvbXBhdCI6Ik5VTEwiCit4NTA5X3ZlcmlmeToiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvY2VydF9leGFtcGxlX211bHRpX25vY24uY3J0IjoiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvdGVzdC1jYS5jcnQiOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9jcmwucGVtIjoid3d3LmV4YW1wbGUubmV0IjpNQkVEVExTX0VSUl9YNTA5X0NFUlRfVkVSSUZZX0ZBSUxFRDpNQkVEVExTX1g1MDlfQkFEQ0VSVF9DTl9NSVNNQVRDSCArIE1CRURUTFNfWDUwOV9CQURDRVJUX05PVF9UUlVTVEVEOiJjb21wYXQiOiJOVUxMIgogCiBYNTA5IENSVCB2ZXJpZmljYXRpb24gIzMyIChWYWxpZCwgRUMgY2VydCwgUlNBIENBKQotZGVwZW5kc19vbjpNQkVEVExTX1BFTV9QQVJTRV9DOk1CRURUTFNfUlNBX0M6TUJFRFRMU19QS19DQU5fRUNEU0FfVkVSSUZZOk1CRURUTFNfRUNQX0hBVkVfU0VDUDE5MlIxOk1CRURUTFNfUlNBX0M6TUJFRFRMU19QS0NTMV9WMTU6TUJFRFRMU19NRF9DQU5fU0hBMQoteDUwOV92ZXJpZnk6ImRhdGFfZmlsZXMvc2VydmVyMy5jcnQiOiJkYXRhX2ZpbGVzL3Rlc3QtY2EuY3J0IjoiZGF0YV9maWxlcy9jcmwucGVtIjoiTlVMTCI6MDowOiJjb21wYXQiOiJOVUxMIgorZGVwZW5kc19vbjpNQkVEVExTX1BFTV9QQVJTRV9DOk1CRURUTFNfUlNBX0M6TUJFRFRMU19QS19DQU5fRUNEU0FfVkVSSUZZOlBTQV9XQU5UX0VDQ19TRUNQX1IxXzE5MjpNQkVEVExTX1JTQV9DOk1CRURUTFNfUEtDUzFfVjE1Ok1CRURUTFNfTURfQ0FOX1NIQTEKK3g1MDlfdmVyaWZ5OiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9zZXJ2ZXIzLmNydCI6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3Rlc3QtY2EuY3J0IjoiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvY3JsLnBlbSI6Ik5VTEwiOjA6MDoiY29tcGF0IjoiTlVMTCIKIAogWDUwOSBDUlQgdmVyaWZpY2F0aW9uICMzMyAoVmFsaWQsIFJTQSBjZXJ0LCBFQyBDQSkKLWRlcGVuZHNfb246TUJFRFRMU19QRU1fUEFSU0VfQzpNQkVEVExTX1JTQV9DOk1CRURUTFNfUEtfQ0FOX0VDRFNBX1ZFUklGWTpNQkVEVExTX01EX0NBTl9TSEEyNTY6TUJFRFRMU19FQ1BfSEFWRV9TRUNQMjU2UjE6TUJFRFRMU19SU0FfQzpNQkVEVExTX1BLQ1MxX1YxNTpNQkVEVExTX0VDUF9IQVZFX1NFQ1AzODRSMQoteDUwOV92ZXJpZnk6ImRhdGFfZmlsZXMvc2VydmVyNC5jcnQiOiJkYXRhX2ZpbGVzL3Rlc3QtY2EyLmNydCI6ImRhdGFfZmlsZXMvY3JsLWVjLXNoYTI1Ni5wZW0iOiJOVUxMIjowOjA6ImNvbXBhdCI6Ik5VTEwiCitkZXBlbmRzX29uOk1CRURUTFNfUEVNX1BBUlNFX0M6TUJFRFRMU19SU0FfQzpNQkVEVExTX1BLX0NBTl9FQ0RTQV9WRVJJRlk6UFNBX1dBTlRfQUxHX1NIQV8yNTY6TUJFRFRMU19FQ1BfSEFWRV9TRUNQMjU2UjE6TUJFRFRMU19SU0FfQzpNQkVEVExTX1BLQ1MxX1YxNTpNQkVEVExTX0VDUF9IQVZFX1NFQ1AzODRSMQoreDUwOV92ZXJpZnk6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3NlcnZlcjQuY3J0IjoiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvdGVzdC1jYTIuY3J0IjoiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvY3JsLWVjLXNoYTI1Ni5wZW0iOiJOVUxMIjowOjA6ImNvbXBhdCI6Ik5VTEwiCiAKIFg1MDkgQ1JUIHZlcmlmaWNhdGlvbiAjMzQgKFZhbGlkLCBFQyBjZXJ0LCBFQyBDQSkKLWRlcGVuZHNfb246TUJFRFRMU19QRU1fUEFSU0VfQzpNQkVEVExTX1BLX0NBTl9FQ0RTQV9WRVJJRlk6TUJFRFRMU19NRF9DQU5fU0hBMjU2Ok1CRURUTFNfRUNQX0hBVkVfU0VDUDI1NlIxOk1CRURUTFNfRUNQX0hBVkVfU0VDUDM4NFIxCi14NTA5X3ZlcmlmeToiZGF0YV9maWxlcy9zZXJ2ZXI1LmNydCI6ImRhdGFfZmlsZXMvdGVzdC1jYTIuY3J0IjoiZGF0YV9maWxlcy9jcmwtZWMtc2hhMjU2LnBlbSI6Ik5VTEwiOjA6MDoiY29tcGF0IjoiTlVMTCIKK2RlcGVuZHNfb246TUJFRFRMU19QRU1fUEFSU0VfQzpNQkVEVExTX1BLX0NBTl9FQ0RTQV9WRVJJRlk6UFNBX1dBTlRfQUxHX1NIQV8yNTY6TUJFRFRMU19FQ1BfSEFWRV9TRUNQMjU2UjE6TUJFRFRMU19FQ1BfSEFWRV9TRUNQMzg0UjEKK3g1MDlfdmVyaWZ5OiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9zZXJ2ZXI1LmNydCI6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3Rlc3QtY2EyLmNydCI6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL2NybC1lYy1zaGEyNTYucGVtIjoiTlVMTCI6MDowOiJjb21wYXQiOiJOVUxMIgogCiBYNTA5IENSVCB2ZXJpZmljYXRpb24gIzM1IChSZXZva2VkLCBFQyBDQSkKLWRlcGVuZHNfb246TUJFRFRMU19QRU1fUEFSU0VfQzpNQkVEVExTX1BLX0NBTl9FQ0RTQV9WRVJJRlk6TUJFRFRMU19NRF9DQU5fU0hBMjU2Ok1CRURUTFNfRUNQX0hBVkVfU0VDUDI1NlIxOk1CRURUTFNfRUNQX0hBVkVfU0VDUDM4NFIxOk1CRURUTFNfSEFWRV9USU1FX0RBVEUKLXg1MDlfdmVyaWZ5OiJkYXRhX2ZpbGVzL3NlcnZlcjYuY3J0IjoiZGF0YV9maWxlcy90ZXN0LWNhMi5jcnQiOiJkYXRhX2ZpbGVzL2NybC1lYy1zaGEyNTYucGVtIjoiTlVMTCI6TUJFRFRMU19FUlJfWDUwOV9DRVJUX1ZFUklGWV9GQUlMRUQ6TUJFRFRMU19YNTA5X0JBRENFUlRfUkVWT0tFRDoiY29tcGF0IjoiTlVMTCIKK2RlcGVuZHNfb246TUJFRFRMU19QRU1fUEFSU0VfQzpNQkVEVExTX1BLX0NBTl9FQ0RTQV9WRVJJRlk6UFNBX1dBTlRfQUxHX1NIQV8yNTY6TUJFRFRMU19FQ1BfSEFWRV9TRUNQMjU2UjE6TUJFRFRMU19FQ1BfSEFWRV9TRUNQMzg0UjE6TUJFRFRMU19IQVZFX1RJTUVfREFURQoreDUwOV92ZXJpZnk6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3NlcnZlcjYuY3J0IjoiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvdGVzdC1jYTIuY3J0IjoiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvY3JsLWVjLXNoYTI1Ni5wZW0iOiJOVUxMIjpNQkVEVExTX0VSUl9YNTA5X0NFUlRfVkVSSUZZX0ZBSUxFRDpNQkVEVExTX1g1MDlfQkFEQ0VSVF9SRVZPS0VEOiJjb21wYXQiOiJOVUxMIgogCiBYNTA5IENSVCB2ZXJpZmljYXRpb24gIzM2IChWYWxpZCwgRUMgQ0EsIFNIQTEgRGlnZXN0KQotZGVwZW5kc19vbjpNQkVEVExTX1BFTV9QQVJTRV9DOk1CRURUTFNfUEtfQ0FOX0VDRFNBX1ZFUklGWTpNQkVEVExTX01EX0NBTl9TSEEyNTY6TUJFRFRMU19FQ1BfSEFWRV9TRUNQMjU2UjE6TUJFRFRMU19FQ1BfSEFWRV9TRUNQMzg0UjE6TUJFRFRMU19NRF9DQU5fU0hBMQoteDUwOV92ZXJpZnk6ImRhdGFfZmlsZXMvc2VydmVyNS1zaGExLmNydCI6ImRhdGFfZmlsZXMvdGVzdC1jYTIuY3J0IjoiZGF0YV9maWxlcy9jcmwtZWMtc2hhMjU2LnBlbSI6Ik5VTEwiOjA6MDoiY29tcGF0IjoiTlVMTCIKK2RlcGVuZHNfb246TUJFRFRMU19QRU1fUEFSU0VfQzpNQkVEVExTX1BLX0NBTl9FQ0RTQV9WRVJJRlk6UFNBX1dBTlRfQUxHX1NIQV8yNTY6TUJFRFRMU19FQ1BfSEFWRV9TRUNQMjU2UjE6TUJFRFRMU19FQ1BfSEFWRV9TRUNQMzg0UjE6TUJFRFRMU19NRF9DQU5fU0hBMQoreDUwOV92ZXJpZnk6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3NlcnZlcjUtc2hhMS5jcnQiOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy90ZXN0LWNhMi5jcnQiOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9jcmwtZWMtc2hhMjU2LnBlbSI6Ik5VTEwiOjA6MDoiY29tcGF0IjoiTlVMTCIKIAogWDUwOSBDUlQgdmVyaWZpY2F0aW9uICMzNyAoVmFsaWQsIEVDIENBLCBTSEEyMjQgRGlnZXN0KQotZGVwZW5kc19vbjpNQkVEVExTX1BFTV9QQVJTRV9DOk1CRURUTFNfUEtfQ0FOX0VDRFNBX1ZFUklGWTpNQkVEVExTX01EX0NBTl9TSEEyNTY6TUJFRFRMU19FQ1BfSEFWRV9TRUNQMjU2UjE6TUJFRFRMU19FQ1BfSEFWRV9TRUNQMzg0UjE6TUJFRFRMU19NRF9DQU5fU0hBMjI0Ci14NTA5X3ZlcmlmeToiZGF0YV9maWxlcy9zZXJ2ZXI1LXNoYTIyNC5jcnQiOiJkYXRhX2ZpbGVzL3Rlc3QtY2EyLmNydCI6ImRhdGFfZmlsZXMvY3JsLWVjLXNoYTI1Ni5wZW0iOiJOVUxMIjowOjA6ImNvbXBhdCI6Ik5VTEwiCitkZXBlbmRzX29uOk1CRURUTFNfUEVNX1BBUlNFX0M6TUJFRFRMU19QS19DQU5fRUNEU0FfVkVSSUZZOlBTQV9XQU5UX0FMR19TSEFfMjU2Ok1CRURUTFNfRUNQX0hBVkVfU0VDUDI1NlIxOk1CRURUTFNfRUNQX0hBVkVfU0VDUDM4NFIxOlBTQV9XQU5UX0FMR19TSEFfMjI0Cit4NTA5X3ZlcmlmeToiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvc2VydmVyNS1zaGEyMjQuY3J0IjoiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvdGVzdC1jYTIuY3J0IjoiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvY3JsLWVjLXNoYTI1Ni5wZW0iOiJOVUxMIjowOjA6ImNvbXBhdCI6Ik5VTEwiCiAKIFg1MDkgQ1JUIHZlcmlmaWNhdGlvbiAjMzggKFZhbGlkLCBFQyBDQSwgU0hBMzg0IERpZ2VzdCkKLWRlcGVuZHNfb246TUJFRFRMU19QRU1fUEFSU0VfQzpNQkVEVExTX1BLX0NBTl9FQ0RTQV9WRVJJRlk6TUJFRFRMU19NRF9DQU5fU0hBMjU2Ok1CRURUTFNfTURfQ0FOX1NIQTM4NDpNQkVEVExTX0VDUF9IQVZFX1NFQ1AyNTZSMTpNQkVEVExTX0VDUF9IQVZFX1NFQ1AzODRSMQoteDUwOV92ZXJpZnk6ImRhdGFfZmlsZXMvc2VydmVyNS1zaGEzODQuY3J0IjoiZGF0YV9maWxlcy90ZXN0LWNhMi5jcnQiOiJkYXRhX2ZpbGVzL2NybC1lYy1zaGEyNTYucGVtIjoiTlVMTCI6MDowOiJjb21wYXQiOiJOVUxMIgorZGVwZW5kc19vbjpNQkVEVExTX1BFTV9QQVJTRV9DOk1CRURUTFNfUEtfQ0FOX0VDRFNBX1ZFUklGWTpQU0FfV0FOVF9BTEdfU0hBXzI1NjpQU0FfV0FOVF9BTEdfU0hBXzM4NDpNQkVEVExTX0VDUF9IQVZFX1NFQ1AyNTZSMTpNQkVEVExTX0VDUF9IQVZFX1NFQ1AzODRSMQoreDUwOV92ZXJpZnk6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3NlcnZlcjUtc2hhMzg0LmNydCI6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3Rlc3QtY2EyLmNydCI6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL2NybC1lYy1zaGEyNTYucGVtIjoiTlVMTCI6MDowOiJjb21wYXQiOiJOVUxMIgogCiBYNTA5IENSVCB2ZXJpZmljYXRpb24gIzM5IChWYWxpZCwgRUMgQ0EsIFNIQTUxMiBEaWdlc3QpCi1kZXBlbmRzX29uOk1CRURUTFNfUEVNX1BBUlNFX0M6TUJFRFRMU19QS19DQU5fRUNEU0FfVkVSSUZZOk1CRURUTFNfTURfQ0FOX1NIQTI1NjpNQkVEVExTX01EX0NBTl9TSEE1MTI6TUJFRFRMU19FQ1BfSEFWRV9TRUNQMjU2UjE6TUJFRFRMU19FQ1BfSEFWRV9TRUNQMzg0UjEKLXg1MDlfdmVyaWZ5OiJkYXRhX2ZpbGVzL3NlcnZlcjUtc2hhNTEyLmNydCI6ImRhdGFfZmlsZXMvdGVzdC1jYTIuY3J0IjoiZGF0YV9maWxlcy9jcmwtZWMtc2hhMjU2LnBlbSI6Ik5VTEwiOjA6MDoiY29tcGF0IjoiTlVMTCIKK2RlcGVuZHNfb246TUJFRFRMU19QRU1fUEFSU0VfQzpNQkVEVExTX1BLX0NBTl9FQ0RTQV9WRVJJRlk6UFNBX1dBTlRfQUxHX1NIQV8yNTY6TUJFRFRMU19NRF9DQU5fU0hBNTEyOk1CRURUTFNfRUNQX0hBVkVfU0VDUDI1NlIxOk1CRURUTFNfRUNQX0hBVkVfU0VDUDM4NFIxCit4NTA5X3ZlcmlmeToiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvc2VydmVyNS1zaGE1MTIuY3J0IjoiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvdGVzdC1jYTIuY3J0IjoiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvY3JsLWVjLXNoYTI1Ni5wZW0iOiJOVUxMIjowOjA6ImNvbXBhdCI6Ik5VTEwiCiAKIFg1MDkgQ1JUIHZlcmlmaWNhdGlvbiAjNDAgKFZhbGlkLCBkZXB0aCAwLCBSU0EsIENBKQotZGVwZW5kc19vbjpNQkVEVExTX1BFTV9QQVJTRV9DOk1CRURUTFNfUlNBX0M6TUJFRFRMU19QS0NTMV9WMTU6TUJFRFRMU19NRF9DQU5fU0hBMjU2Ok1CRURUTFNfTURfQ0FOX1NIQTEKLXg1MDlfdmVyaWZ5OiJkYXRhX2ZpbGVzL3Rlc3QtY2EuY3J0IjoiZGF0YV9maWxlcy90ZXN0LWNhLmNydCI6ImRhdGFfZmlsZXMvY3JsLnBlbSI6Ik5VTEwiOjA6MDoiY29tcGF0IjoiTlVMTCIKK2RlcGVuZHNfb246TUJFRFRMU19QRU1fUEFSU0VfQzpNQkVEVExTX1JTQV9DOk1CRURUTFNfUEtDUzFfVjE1OlBTQV9XQU5UX0FMR19TSEFfMjU2Ok1CRURUTFNfTURfQ0FOX1NIQTEKK3g1MDlfdmVyaWZ5OiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy90ZXN0LWNhLmNydCI6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3Rlc3QtY2EuY3J0IjoiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvY3JsLnBlbSI6Ik5VTEwiOjA6MDoiY29tcGF0IjoiTlVMTCIKIAogWDUwOSBDUlQgdmVyaWZpY2F0aW9uICM0MSAoVmFsaWQsIGRlcHRoIDAsIEVDLCBDQSkKLWRlcGVuZHNfb246TUJFRFRMU19QRU1fUEFSU0VfQzpNQkVEVExTX1BLX0NBTl9FQ0RTQV9WRVJJRlk6TUJFRFRMU19FQ1BfSEFWRV9TRUNQMjU2UjE6TUJFRFRMU19FQ1BfSEFWRV9TRUNQMzg0UjE6TUJFRFRMU19NRF9DQU5fU0hBMjU2Ci14NTA5X3ZlcmlmeToiZGF0YV9maWxlcy90ZXN0LWNhMi5jcnQiOiJkYXRhX2ZpbGVzL3Rlc3QtY2EyLmNydCI6ImRhdGFfZmlsZXMvY3JsLWVjLXNoYTI1Ni5wZW0iOiJOVUxMIjowOjA6ImNvbXBhdCI6Ik5VTEwiCitkZXBlbmRzX29uOk1CRURUTFNfUEVNX1BBUlNFX0M6TUJFRFRMU19QS19DQU5fRUNEU0FfVkVSSUZZOk1CRURUTFNfRUNQX0hBVkVfU0VDUDI1NlIxOk1CRURUTFNfRUNQX0hBVkVfU0VDUDM4NFIxOlBTQV9XQU5UX0FMR19TSEFfMjU2Cit4NTA5X3ZlcmlmeToiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvdGVzdC1jYTIuY3J0IjoiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvdGVzdC1jYTIuY3J0IjoiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvY3JsLWVjLXNoYTI1Ni5wZW0iOiJOVUxMIjowOjA6ImNvbXBhdCI6Ik5VTEwiCiAKIFg1MDkgQ1JUIHZlcmlmaWNhdGlvbiAjNDIgKERlcHRoIDAsIG5vdCBDQSwgUlNBKQogZGVwZW5kc19vbjpNQkVEVExTX1BFTV9QQVJTRV9DOk1CRURUTFNfUlNBX0M6TUJFRFRMU19QS0NTMV9WMTU6TUJFRFRMU19NRF9DQU5fU0hBMQoteDUwOV92ZXJpZnk6ImRhdGFfZmlsZXMvc2VydmVyMi5jcnQiOiJkYXRhX2ZpbGVzL3NlcnZlcjIuY3J0IjoiZGF0YV9maWxlcy9jcmwucGVtIjoiTlVMTCI6TUJFRFRMU19FUlJfWDUwOV9DRVJUX1ZFUklGWV9GQUlMRUQ6TUJFRFRMU19YNTA5X0JBRENFUlRfTk9UX1RSVVNURUQ6ImNvbXBhdCI6Ik5VTEwiCit4NTA5X3ZlcmlmeToiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvc2VydmVyMi5jcnQiOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9zZXJ2ZXIyLmNydCI6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL2NybC5wZW0iOiJOVUxMIjpNQkVEVExTX0VSUl9YNTA5X0NFUlRfVkVSSUZZX0ZBSUxFRDpNQkVEVExTX1g1MDlfQkFEQ0VSVF9OT1RfVFJVU1RFRDoiY29tcGF0IjoiTlVMTCIKIAogWDUwOSBDUlQgdmVyaWZpY2F0aW9uICM0MyAoRGVwdGggMCwgbm90IENBLCBFQykKLWRlcGVuZHNfb246TUJFRFRMU19QRU1fUEFSU0VfQzpNQkVEVExTX1BLX0NBTl9FQ0RTQV9WRVJJRlk6TUJFRFRMU19FQ1BfSEFWRV9TRUNQMjU2UjE6TUJFRFRMU19NRF9DQU5fU0hBMjU2Ci14NTA5X3ZlcmlmeToiZGF0YV9maWxlcy9zZXJ2ZXI1LmNydCI6ImRhdGFfZmlsZXMvc2VydmVyNS5jcnQiOiJkYXRhX2ZpbGVzL2NybC1lYy1zaGEyNTYucGVtIjoiTlVMTCI6TUJFRFRMU19FUlJfWDUwOV9DRVJUX1ZFUklGWV9GQUlMRUQ6TUJFRFRMU19YNTA5X0JBRENFUlRfTk9UX1RSVVNURUQ6ImNvbXBhdCI6Ik5VTEwiCitkZXBlbmRzX29uOk1CRURUTFNfUEVNX1BBUlNFX0M6TUJFRFRMU19QS19DQU5fRUNEU0FfVkVSSUZZOk1CRURUTFNfRUNQX0hBVkVfU0VDUDI1NlIxOlBTQV9XQU5UX0FMR19TSEFfMjU2Cit4NTA5X3ZlcmlmeToiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvc2VydmVyNS5jcnQiOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9zZXJ2ZXI1LmNydCI6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL2NybC1lYy1zaGEyNTYucGVtIjoiTlVMTCI6TUJFRFRMU19FUlJfWDUwOV9DRVJUX1ZFUklGWV9GQUlMRUQ6TUJFRFRMU19YNTA5X0JBRENFUlRfTk9UX1RSVVNURUQ6ImNvbXBhdCI6Ik5VTEwiCiAKIFg1MDkgQ1JUIHZlcmlmaWNhdGlvbiAjNDQgKENvcnJ1cHRlZCBzaWduYXR1cmUsIEVDKQotZGVwZW5kc19vbjpNQkVEVExTX1BFTV9QQVJTRV9DOk1CRURUTFNfUEtfQ0FOX0VDRFNBX1ZFUklGWTpNQkVEVExTX0VDUF9IQVZFX1NFQ1AyNTZSMTpNQkVEVExTX0VDUF9IQVZFX1NFQ1AzODRSMTpNQkVEVExTX01EX0NBTl9TSEEyNTYKLXg1MDlfdmVyaWZ5OiJkYXRhX2ZpbGVzL3NlcnZlcjUtYmFkc2lnbi5jcnQiOiJkYXRhX2ZpbGVzL3Rlc3QtY2EyLmNydCI6ImRhdGFfZmlsZXMvY3JsLWVjLXNoYTI1Ni5wZW0iOiJOVUxMIjpNQkVEVExTX0VSUl9YNTA5X0NFUlRfVkVSSUZZX0ZBSUxFRDpNQkVEVExTX1g1MDlfQkFEQ0VSVF9OT1RfVFJVU1RFRDoiY29tcGF0IjoiTlVMTCIKK2RlcGVuZHNfb246TUJFRFRMU19QRU1fUEFSU0VfQzpNQkVEVExTX1BLX0NBTl9FQ0RTQV9WRVJJRlk6TUJFRFRMU19FQ1BfSEFWRV9TRUNQMjU2UjE6TUJFRFRMU19FQ1BfSEFWRV9TRUNQMzg0UjE6UFNBX1dBTlRfQUxHX1NIQV8yNTYKK3g1MDlfdmVyaWZ5OiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9zZXJ2ZXI1LWJhZHNpZ24uY3J0IjoiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvdGVzdC1jYTIuY3J0IjoiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvY3JsLWVjLXNoYTI1Ni5wZW0iOiJOVUxMIjpNQkVEVExTX0VSUl9YNTA5X0NFUlRfVkVSSUZZX0ZBSUxFRDpNQkVEVExTX1g1MDlfQkFEQ0VSVF9OT1RfVFJVU1RFRDoiY29tcGF0IjoiTlVMTCIKIAogWDUwOSBDUlQgdmVyaWZpY2F0aW9uICM0NSAoQ29ycnVwdGVkIHNpZ25hdHVyZSwgUlNBKQogZGVwZW5kc19vbjpNQkVEVExTX1BFTV9QQVJTRV9DOk1CRURUTFNfUlNBX0M6TUJFRFRMU19QS0NTMV9WMTU6TUJFRFRMU19NRF9DQU5fU0hBMQoteDUwOV92ZXJpZnk6ImRhdGFfZmlsZXMvc2VydmVyMi1iYWRzaWduLmNydCI6ImRhdGFfZmlsZXMvdGVzdC1jYS5jcnQiOiJkYXRhX2ZpbGVzL2NybC5wZW0iOiJOVUxMIjpNQkVEVExTX0VSUl9YNTA5X0NFUlRfVkVSSUZZX0ZBSUxFRDpNQkVEVExTX1g1MDlfQkFEQ0VSVF9OT1RfVFJVU1RFRDoiY29tcGF0IjoiTlVMTCIKK3g1MDlfdmVyaWZ5OiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9zZXJ2ZXIyLWJhZHNpZ24uY3J0IjoiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvdGVzdC1jYS5jcnQiOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9jcmwucGVtIjoiTlVMTCI6TUJFRFRMU19FUlJfWDUwOV9DRVJUX1ZFUklGWV9GQUlMRUQ6TUJFRFRMU19YNTA5X0JBRENFUlRfTk9UX1RSVVNURUQ6ImNvbXBhdCI6Ik5VTEwiCiAKIFg1MDkgQ1JUIHZlcmlmaWNhdGlvbiAjNDViIChDb3JydXB0ZWQgc2lnbmF0dXJlLCBpbnRlcm1lZGlhdGUgQ0EpCi1kZXBlbmRzX29uOk1CRURUTFNfUEVNX1BBUlNFX0M6TUJFRFRMU19SU0FfQzpNQkVEVExTX1BLQ1MxX1YxNTpNQkVEVExTX01EX0NBTl9TSEExOk1CRURUTFNfUEtfQ0FOX0VDRFNBX1NPTUU6TUJFRFRMU19FQ1BfSEFWRV9TRUNQMjU2UjE6TUJFRFRMU19FQ1BfSEFWRV9TRUNQMzg0UjE6TUJFRFRMU19NRF9DQU5fU0hBMjU2Ci14NTA5X3ZlcmlmeToiZGF0YV9maWxlcy9zZXJ2ZXI3LWJhZHNpZ24uY3J0IjoiZGF0YV9maWxlcy90ZXN0LWNhMi5jcnQiOiJkYXRhX2ZpbGVzL2NybC5wZW0iOiJOVUxMIjpNQkVEVExTX0VSUl9YNTA5X0NFUlRfVkVSSUZZX0ZBSUxFRDpNQkVEVExTX1g1MDlfQkFEQ0VSVF9OT1RfVFJVU1RFRDoiY29tcGF0IjoiTlVMTCIKK2RlcGVuZHNfb246TUJFRFRMU19QRU1fUEFSU0VfQzpNQkVEVExTX1JTQV9DOk1CRURUTFNfUEtDUzFfVjE1Ok1CRURUTFNfTURfQ0FOX1NIQTE6TUJFRFRMU19QS19DQU5fRUNEU0FfU09NRTpNQkVEVExTX0VDUF9IQVZFX1NFQ1AyNTZSMTpNQkVEVExTX0VDUF9IQVZFX1NFQ1AzODRSMTpQU0FfV0FOVF9BTEdfU0hBXzI1NgoreDUwOV92ZXJpZnk6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3NlcnZlcjctYmFkc2lnbi5jcnQiOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy90ZXN0LWNhMi5jcnQiOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9jcmwucGVtIjoiTlVMTCI6TUJFRFRMU19FUlJfWDUwOV9DRVJUX1ZFUklGWV9GQUlMRUQ6TUJFRFRMU19YNTA5X0JBRENFUlRfTk9UX1RSVVNURUQ6ImNvbXBhdCI6Ik5VTEwiCiAKIFg1MDkgQ1JUIHZlcmlmaWNhdGlvbiAjNDYgKFZhbGlkLCBkZXB0aCAyLCBFQy1SU0EtRUMpCi1kZXBlbmRzX29uOk1CRURUTFNfUEVNX1BBUlNFX0M6TUJFRFRMU19QS19DQU5fRUNEU0FfVkVSSUZZOk1CRURUTFNfUlNBX0M6TUJFRFRMU19FQ1BfSEFWRV9TRUNQMjU2UjE6TUJFRFRMU19FQ1BfSEFWRV9TRUNQMzg0UjE6TUJFRFRMU19SU0FfQzpNQkVEVExTX1BLQ1MxX1YxNTpNQkVEVExTX01EX0NBTl9TSEEyNTYKLXg1MDlfdmVyaWZ5OiJkYXRhX2ZpbGVzL3NlcnZlcjdfaW50LWNhLmNydCI6ImRhdGFfZmlsZXMvdGVzdC1jYTIuY3J0IjoiZGF0YV9maWxlcy9jcmwtZWMtc2hhMjU2LnBlbSI6Ik5VTEwiOjA6MDoiY29tcGF0IjoiTlVMTCIKK2RlcGVuZHNfb246TUJFRFRMU19QRU1fUEFSU0VfQzpNQkVEVExTX1BLX0NBTl9FQ0RTQV9WRVJJRlk6TUJFRFRMU19SU0FfQzpNQkVEVExTX0VDUF9IQVZFX1NFQ1AyNTZSMTpNQkVEVExTX0VDUF9IQVZFX1NFQ1AzODRSMTpNQkVEVExTX1JTQV9DOk1CRURUTFNfUEtDUzFfVjE1OlBTQV9XQU5UX0FMR19TSEFfMjU2Cit4NTA5X3ZlcmlmeToiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvc2VydmVyN19pbnQtY2EuY3J0IjoiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvdGVzdC1jYTIuY3J0IjoiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvY3JsLWVjLXNoYTI1Ni5wZW0iOiJOVUxMIjowOjA6ImNvbXBhdCI6Ik5VTEwiCiAKIFg1MDkgQ1JUIHZlcmlmaWNhdGlvbiAjNDcgKFVudHJ1c3RlZCwgZGVwdGggMiwgRUMtUlNBLUVDKQotZGVwZW5kc19vbjpNQkVEVExTX1BFTV9QQVJTRV9DOk1CRURUTFNfUEtfQ0FOX0VDRFNBX1ZFUklGWTpNQkVEVExTX1JTQV9DOk1CRURUTFNfRUNQX0hBVkVfU0VDUDI1NlIxOk1CRURUTFNfUlNBX0M6TUJFRFRMU19QS0NTMV9WMTU6TUJFRFRMU19NRF9DQU5fU0hBMTpNQkVEVExTX01EX0NBTl9TSEEyNTYKLXg1MDlfdmVyaWZ5OiJkYXRhX2ZpbGVzL3NlcnZlcjdfaW50LWNhLmNydCI6ImRhdGFfZmlsZXMvdGVzdC1jYS5jcnQiOiJkYXRhX2ZpbGVzL2NybC1lYy1zaGEyNTYucGVtIjoiTlVMTCI6TUJFRFRMU19FUlJfWDUwOV9DRVJUX1ZFUklGWV9GQUlMRUQ6TUJFRFRMU19YNTA5X0JBRENFUlRfTk9UX1RSVVNURUQ6ImNvbXBhdCI6Ik5VTEwiCitkZXBlbmRzX29uOk1CRURUTFNfUEVNX1BBUlNFX0M6TUJFRFRMU19QS19DQU5fRUNEU0FfVkVSSUZZOk1CRURUTFNfUlNBX0M6TUJFRFRMU19FQ1BfSEFWRV9TRUNQMjU2UjE6TUJFRFRMU19SU0FfQzpNQkVEVExTX1BLQ1MxX1YxNTpNQkVEVExTX01EX0NBTl9TSEExOlBTQV9XQU5UX0FMR19TSEFfMjU2Cit4NTA5X3ZlcmlmeToiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvc2VydmVyN19pbnQtY2EuY3J0IjoiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvdGVzdC1jYS5jcnQiOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9jcmwtZWMtc2hhMjU2LnBlbSI6Ik5VTEwiOk1CRURUTFNfRVJSX1g1MDlfQ0VSVF9WRVJJRllfRkFJTEVEOk1CRURUTFNfWDUwOV9CQURDRVJUX05PVF9UUlVTVEVEOiJjb21wYXQiOiJOVUxMIgogCiBYNTA5IENSVCB2ZXJpZmljYXRpb24gIzQ4IChNaXNzaW5nIGludGVybWVkaWF0ZSBDQSwgRUMtUlNBLUVDKQotZGVwZW5kc19vbjpNQkVEVExTX1BFTV9QQVJTRV9DOk1CRURUTFNfUEtfQ0FOX0VDRFNBX1ZFUklGWTpNQkVEVExTX1JTQV9DOk1CRURUTFNfRUNQX0hBVkVfU0VDUDI1NlIxOk1CRURUTFNfUlNBX0M6TUJFRFRMU19QS0NTMV9WMTU6TUJFRFRMU19NRF9DQU5fU0hBMTpNQkVEVExTX01EX0NBTl9TSEEyNTYKLXg1MDlfdmVyaWZ5OiJkYXRhX2ZpbGVzL3NlcnZlcjcuY3J0IjoiZGF0YV9maWxlcy90ZXN0LWNhLmNydCI6ImRhdGFfZmlsZXMvY3JsLWVjLXNoYTI1Ni5wZW0iOiJOVUxMIjpNQkVEVExTX0VSUl9YNTA5X0NFUlRfVkVSSUZZX0ZBSUxFRDpNQkVEVExTX1g1MDlfQkFEQ0VSVF9OT1RfVFJVU1RFRDoiY29tcGF0IjoiTlVMTCIKK2RlcGVuZHNfb246TUJFRFRMU19QRU1fUEFSU0VfQzpNQkVEVExTX1BLX0NBTl9FQ0RTQV9WRVJJRlk6TUJFRFRMU19SU0FfQzpNQkVEVExTX0VDUF9IQVZFX1NFQ1AyNTZSMTpNQkVEVExTX1JTQV9DOk1CRURUTFNfUEtDUzFfVjE1Ok1CRURUTFNfTURfQ0FOX1NIQTE6UFNBX1dBTlRfQUxHX1NIQV8yNTYKK3g1MDlfdmVyaWZ5OiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9zZXJ2ZXI3LmNydCI6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3Rlc3QtY2EuY3J0IjoiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvY3JsLWVjLXNoYTI1Ni5wZW0iOiJOVUxMIjpNQkVEVExTX0VSUl9YNTA5X0NFUlRfVkVSSUZZX0ZBSUxFRDpNQkVEVExTX1g1MDlfQkFEQ0VSVF9OT1RfVFJVU1RFRDoiY29tcGF0IjoiTlVMTCIKIAogWDUwOSBDUlQgdmVyaWZpY2F0aW9uICM0OSAoVmFsaWQsIGRlcHRoIDIsIFJTQS1FQy1SU0EpCi1kZXBlbmRzX29uOk1CRURUTFNfUEVNX1BBUlNFX0M6TUJFRFRMU19QS19DQU5fRUNEU0FfVkVSSUZZOk1CRURUTFNfUlNBX0M6TUJFRFRMU19FQ1BfSEFWRV9TRUNQMzg0UjE6TUJFRFRMU19SU0FfQzpNQkVEVExTX1BLQ1MxX1YxNTpNQkVEVExTX01EX0NBTl9TSEEyNTY6TUJFRFRMU19NRF9DQU5fU0hBMQoteDUwOV92ZXJpZnk6ImRhdGFfZmlsZXMvc2VydmVyOF9pbnQtY2EyLmNydCI6ImRhdGFfZmlsZXMvdGVzdC1jYS5jcnQiOiJkYXRhX2ZpbGVzL2NybC1lYy1zaGEyNTYucGVtIjoiTlVMTCI6MDowOiJjb21wYXQiOiJOVUxMIgorZGVwZW5kc19vbjpNQkVEVExTX1BFTV9QQVJTRV9DOk1CRURUTFNfUEtfQ0FOX0VDRFNBX1ZFUklGWTpNQkVEVExTX1JTQV9DOk1CRURUTFNfRUNQX0hBVkVfU0VDUDM4NFIxOk1CRURUTFNfUlNBX0M6TUJFRFRMU19QS0NTMV9WMTU6UFNBX1dBTlRfQUxHX1NIQV8yNTY6TUJFRFRMU19NRF9DQU5fU0hBMQoreDUwOV92ZXJpZnk6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3NlcnZlcjhfaW50LWNhMi5jcnQiOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy90ZXN0LWNhLmNydCI6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL2NybC1lYy1zaGEyNTYucGVtIjoiTlVMTCI6MDowOiJjb21wYXQiOiJOVUxMIgogCiBYNTA5IENSVCB2ZXJpZmljYXRpb24gIzUwIChWYWxpZCwgbXVsdGlwbGUgQ0FzKQotZGVwZW5kc19vbjpNQkVEVExTX1BFTV9QQVJTRV9DOk1CRURUTFNfUlNBX0M6TUJFRFRMU19QS0NTMV9WMTU6TUJFRFRMU19QS19DQU5fRUNEU0FfVkVSSUZZOk1CRURUTFNfRUNQX0hBVkVfU0VDUDM4NFIxOk1CRURUTFNfTURfQ0FOX1NIQTE6TUJFRFRMU19NRF9DQU5fU0hBMjU2Ci14NTA5X3ZlcmlmeToiZGF0YV9maWxlcy9zZXJ2ZXIyLmNydCI6ImRhdGFfZmlsZXMvdGVzdC1jYV9jYXQxMi5jcnQiOiJkYXRhX2ZpbGVzL2NybC5wZW0iOiJOVUxMIjowOjA6ImNvbXBhdCI6Ik5VTEwiCitkZXBlbmRzX29uOk1CRURUTFNfUEVNX1BBUlNFX0M6TUJFRFRMU19SU0FfQzpNQkVEVExTX1BLQ1MxX1YxNTpNQkVEVExTX1BLX0NBTl9FQ0RTQV9WRVJJRlk6TUJFRFRMU19FQ1BfSEFWRV9TRUNQMzg0UjE6TUJFRFRMU19NRF9DQU5fU0hBMTpQU0FfV0FOVF9BTEdfU0hBXzI1NgoreDUwOV92ZXJpZnk6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3NlcnZlcjIuY3J0IjoiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvdGVzdC1jYV9jYXQxMi5jcnQiOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9jcmwucGVtIjoiTlVMTCI6MDowOiJjb21wYXQiOiJOVUxMIgogCiBYNTA5IENSVCB2ZXJpZmljYXRpb24gIzUxIChWYWxpZCwgbXVsdGlwbGUgQ0FzLCByZXZlcnNlIG9yZGVyKQotZGVwZW5kc19vbjpNQkVEVExTX1BFTV9QQVJTRV9DOk1CRURUTFNfUlNBX0M6TUJFRFRMU19QS0NTMV9WMTU6TUJFRFRMU19QS19DQU5fRUNEU0FfVkVSSUZZOk1CRURUTFNfRUNQX0hBVkVfU0VDUDM4NFIxOk1CRURUTFNfTURfQ0FOX1NIQTE6TUJFRFRMU19NRF9DQU5fU0hBMjU2Ci14NTA5X3ZlcmlmeToiZGF0YV9maWxlcy9zZXJ2ZXIyLmNydCI6ImRhdGFfZmlsZXMvdGVzdC1jYV9jYXQyMS5jcnQiOiJkYXRhX2ZpbGVzL2NybC5wZW0iOiJOVUxMIjowOjA6ImNvbXBhdCI6Ik5VTEwiCitkZXBlbmRzX29uOk1CRURUTFNfUEVNX1BBUlNFX0M6TUJFRFRMU19SU0FfQzpNQkVEVExTX1BLQ1MxX1YxNTpNQkVEVExTX1BLX0NBTl9FQ0RTQV9WRVJJRlk6TUJFRFRMU19FQ1BfSEFWRV9TRUNQMzg0UjE6TUJFRFRMU19NRF9DQU5fU0hBMTpQU0FfV0FOVF9BTEdfU0hBXzI1NgoreDUwOV92ZXJpZnk6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3NlcnZlcjIuY3J0IjoiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvdGVzdC1jYV9jYXQyMS5jcnQiOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9jcmwucGVtIjoiTlVMTCI6MDowOiJjb21wYXQiOiJOVUxMIgogCiBYNTA5IENSVCB2ZXJpZmljYXRpb24gIzUyIChDQSBrZXlVc2FnZSB2YWxpZCkKLWRlcGVuZHNfb246TUJFRFRMU19QRU1fUEFSU0VfQzpNQkVEVExTX1BLX0NBTl9FQ0RTQV9WRVJJRlk6TUJFRFRMU19NRF9DQU5fU0hBMjU2Ok1CRURUTFNfRUNQX0hBVkVfU0VDUDI1NlIxOk1CRURUTFNfRUNQX0hBVkVfU0VDUDM4NFIxCi14NTA5X3ZlcmlmeToiZGF0YV9maWxlcy9zZXJ2ZXI1LmNydCI6ImRhdGFfZmlsZXMvdGVzdC1jYTIua3UtY3J0X2NybC5jcnQiOiJkYXRhX2ZpbGVzL2NybC1lYy1zaGEyNTYucGVtIjoiTlVMTCI6MDowOiJjb21wYXQiOiJOVUxMIgorZGVwZW5kc19vbjpNQkVEVExTX1BFTV9QQVJTRV9DOk1CRURUTFNfUEtfQ0FOX0VDRFNBX1ZFUklGWTpQU0FfV0FOVF9BTEdfU0hBXzI1NjpNQkVEVExTX0VDUF9IQVZFX1NFQ1AyNTZSMTpNQkVEVExTX0VDUF9IQVZFX1NFQ1AzODRSMQoreDUwOV92ZXJpZnk6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3NlcnZlcjUuY3J0IjoiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvdGVzdC1jYTIua3UtY3J0X2NybC5jcnQiOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9jcmwtZWMtc2hhMjU2LnBlbSI6Ik5VTEwiOjA6MDoiY29tcGF0IjoiTlVMTCIKIAogWDUwOSBDUlQgdmVyaWZpY2F0aW9uICM1MyAoQ0Ega2V5VXNhZ2UgbWlzc2luZyBjUkxTaWduKQotZGVwZW5kc19vbjpNQkVEVExTX1BFTV9QQVJTRV9DOk1CRURUTFNfUEtfQ0FOX0VDRFNBX1ZFUklGWTpNQkVEVExTX01EX0NBTl9TSEEyNTY6TUJFRFRMU19FQ1BfSEFWRV9TRUNQMjU2UjE6TUJFRFRMU19FQ1BfSEFWRV9TRUNQMzg0UjEKLXg1MDlfdmVyaWZ5OiJkYXRhX2ZpbGVzL3NlcnZlcjUuY3J0IjoiZGF0YV9maWxlcy90ZXN0LWNhMi5rdS1jcnQuY3J0IjoiZGF0YV9maWxlcy9jcmwtZWMtc2hhMjU2LnBlbSI6Ik5VTEwiOk1CRURUTFNfRVJSX1g1MDlfQ0VSVF9WRVJJRllfRkFJTEVEOk1CRURUTFNfWDUwOV9CQURDUkxfTk9UX1RSVVNURUQ6ImNvbXBhdCI6Ik5VTEwiCitkZXBlbmRzX29uOk1CRURUTFNfUEVNX1BBUlNFX0M6TUJFRFRMU19QS19DQU5fRUNEU0FfVkVSSUZZOlBTQV9XQU5UX0FMR19TSEFfMjU2Ok1CRURUTFNfRUNQX0hBVkVfU0VDUDI1NlIxOk1CRURUTFNfRUNQX0hBVkVfU0VDUDM4NFIxCit4NTA5X3ZlcmlmeToiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvc2VydmVyNS5jcnQiOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy90ZXN0LWNhMi5rdS1jcnQuY3J0IjoiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvY3JsLWVjLXNoYTI1Ni5wZW0iOiJOVUxMIjpNQkVEVExTX0VSUl9YNTA5X0NFUlRfVkVSSUZZX0ZBSUxFRDpNQkVEVExTX1g1MDlfQkFEQ1JMX05PVF9UUlVTVEVEOiJjb21wYXQiOiJOVUxMIgogCiBYNTA5IENSVCB2ZXJpZmljYXRpb24gIzU0IChDQSBrZXlVc2FnZSBtaXNzaW5nIGNSTFNpZ24sIG5vIENSTCkKLWRlcGVuZHNfb246TUJFRFRMU19QRU1fUEFSU0VfQzpNQkVEVExTX1BLX0NBTl9FQ0RTQV9WRVJJRlk6TUJFRFRMU19NRF9DQU5fU0hBMjU2Ok1CRURUTFNfRUNQX0hBVkVfU0VDUDI1NlIxOk1CRURUTFNfRUNQX0hBVkVfU0VDUDM4NFIxOk1CRURUTFNfTURfQ0FOX1NIQTE6TUJFRFRMU19SU0FfQwoteDUwOV92ZXJpZnk6ImRhdGFfZmlsZXMvc2VydmVyNS5jcnQiOiJkYXRhX2ZpbGVzL3Rlc3QtY2EyLmt1LWNydC5jcnQiOiJkYXRhX2ZpbGVzL2NybC5wZW0iOiJOVUxMIjowOjA6ImNvbXBhdCI6Ik5VTEwiCitkZXBlbmRzX29uOk1CRURUTFNfUEVNX1BBUlNFX0M6TUJFRFRMU19QS19DQU5fRUNEU0FfVkVSSUZZOlBTQV9XQU5UX0FMR19TSEFfMjU2Ok1CRURUTFNfRUNQX0hBVkVfU0VDUDI1NlIxOk1CRURUTFNfRUNQX0hBVkVfU0VDUDM4NFIxOk1CRURUTFNfTURfQ0FOX1NIQTE6TUJFRFRMU19SU0FfQworeDUwOV92ZXJpZnk6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3NlcnZlcjUuY3J0IjoiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvdGVzdC1jYTIua3UtY3J0LmNydCI6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL2NybC5wZW0iOiJOVUxMIjowOjA6ImNvbXBhdCI6Ik5VTEwiCiAKIFg1MDkgQ1JUIHZlcmlmaWNhdGlvbiAjNTUgKENBIGtleVVzYWdlIG1pc3Npbmcga2V5Q2VydFNpZ24pCi1kZXBlbmRzX29uOk1CRURUTFNfUEVNX1BBUlNFX0M6TUJFRFRMU19QS19DQU5fRUNEU0FfVkVSSUZZOk1CRURUTFNfTURfQ0FOX1NIQTI1NjpNQkVEVExTX0VDUF9IQVZFX1NFQ1AyNTZSMTpNQkVEVExTX0VDUF9IQVZFX1NFQ1AzODRSMQoteDUwOV92ZXJpZnk6ImRhdGFfZmlsZXMvc2VydmVyNS5jcnQiOiJkYXRhX2ZpbGVzL3Rlc3QtY2EyLmt1LWNybC5jcnQiOiJkYXRhX2ZpbGVzL2NybC1lYy1zaGEyNTYucGVtIjoiTlVMTCI6TUJFRFRMU19FUlJfWDUwOV9DRVJUX1ZFUklGWV9GQUlMRUQ6TUJFRFRMU19YNTA5X0JBRENFUlRfTk9UX1RSVVNURUQ6ImNvbXBhdCI6Ik5VTEwiCitkZXBlbmRzX29uOk1CRURUTFNfUEVNX1BBUlNFX0M6TUJFRFRMU19QS19DQU5fRUNEU0FfVkVSSUZZOlBTQV9XQU5UX0FMR19TSEFfMjU2Ok1CRURUTFNfRUNQX0hBVkVfU0VDUDI1NlIxOk1CRURUTFNfRUNQX0hBVkVfU0VDUDM4NFIxCit4NTA5X3ZlcmlmeToiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvc2VydmVyNS5jcnQiOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy90ZXN0LWNhMi5rdS1jcmwuY3J0IjoiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvY3JsLWVjLXNoYTI1Ni5wZW0iOiJOVUxMIjpNQkVEVExTX0VSUl9YNTA5X0NFUlRfVkVSSUZZX0ZBSUxFRDpNQkVEVExTX1g1MDlfQkFEQ0VSVF9OT1RfVFJVU1RFRDoiY29tcGF0IjoiTlVMTCIKIAogWDUwOSBDUlQgdmVyaWZpY2F0aW9uICM1NiAoQ0Ega2V5VXNhZ2UgcGxhaW4gd3JvbmcpCi1kZXBlbmRzX29uOk1CRURUTFNfUEVNX1BBUlNFX0M6TUJFRFRMU19QS19DQU5fRUNEU0FfVkVSSUZZOk1CRURUTFNfTURfQ0FOX1NIQTI1NjpNQkVEVExTX0VDUF9IQVZFX1NFQ1AyNTZSMTpNQkVEVExTX0VDUF9IQVZFX1NFQ1AzODRSMQoteDUwOV92ZXJpZnk6ImRhdGFfZmlsZXMvc2VydmVyNS5jcnQiOiJkYXRhX2ZpbGVzL3Rlc3QtY2EyLmt1LWRzLmNydCI6ImRhdGFfZmlsZXMvY3JsLWVjLXNoYTI1Ni5wZW0iOiJOVUxMIjpNQkVEVExTX0VSUl9YNTA5X0NFUlRfVkVSSUZZX0ZBSUxFRDpNQkVEVExTX1g1MDlfQkFEQ0VSVF9OT1RfVFJVU1RFRDoiY29tcGF0IjoiTlVMTCIKK2RlcGVuZHNfb246TUJFRFRMU19QRU1fUEFSU0VfQzpNQkVEVExTX1BLX0NBTl9FQ0RTQV9WRVJJRlk6UFNBX1dBTlRfQUxHX1NIQV8yNTY6TUJFRFRMU19FQ1BfSEFWRV9TRUNQMjU2UjE6TUJFRFRMU19FQ1BfSEFWRV9TRUNQMzg0UjEKK3g1MDlfdmVyaWZ5OiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9zZXJ2ZXI1LmNydCI6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3Rlc3QtY2EyLmt1LWRzLmNydCI6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL2NybC1lYy1zaGEyNTYucGVtIjoiTlVMTCI6TUJFRFRMU19FUlJfWDUwOV9DRVJUX1ZFUklGWV9GQUlMRUQ6TUJFRFRMU19YNTA5X0JBRENFUlRfTk9UX1RSVVNURUQ6ImNvbXBhdCI6Ik5VTEwiCiAKIFg1MDkgQ1JUIHZlcmlmaWNhdGlvbiAjNTcgKFZhbGlkLCBSU0FTU0EtUFNTLCBTSEEtMSkKIGRlcGVuZHNfb246TUJFRFRMU19QRU1fUEFSU0VfQzpNQkVEVExTX1g1MDlfUlNBU1NBX1BTU19TVVBQT1JUOk1CRURUTFNfTURfQ0FOX1NIQTE6TUJFRFRMU19QS0NTMV9WMTUKLXg1MDlfdmVyaWZ5OiJkYXRhX2ZpbGVzL3NlcnZlcjkuY3J0IjoiZGF0YV9maWxlcy90ZXN0LWNhLmNydCI6ImRhdGFfZmlsZXMvY3JsLnBlbSI6Ik5VTEwiOjA6MDoiY29tcGF0IjoiTlVMTCIKK3g1MDlfdmVyaWZ5OiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9zZXJ2ZXI5LmNydCI6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3Rlc3QtY2EuY3J0IjoiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvY3JsLnBlbSI6Ik5VTEwiOjA6MDoiY29tcGF0IjoiTlVMTCIKIAogWDUwOSBDUlQgdmVyaWZpY2F0aW9uICM1OCAoVmFsaWQsIFJTQVNTQS1QU1MsIFNIQS0yMjQpCi1kZXBlbmRzX29uOk1CRURUTFNfUEVNX1BBUlNFX0M6TUJFRFRMU19YNTA5X1JTQVNTQV9QU1NfU1VQUE9SVDpNQkVEVExTX01EX0NBTl9TSEEyMjQ6TUJFRFRMU19NRF9DQU5fU0hBMQoteDUwOV92ZXJpZnk6ImRhdGFfZmlsZXMvc2VydmVyOS1zaGEyMjQuY3J0IjoiZGF0YV9maWxlcy90ZXN0LWNhLmNydCI6ImRhdGFfZmlsZXMvY3JsLXJzYS1wc3Mtc2hhMjI0LnBlbSI6Ik5VTEwiOjA6MDoiY29tcGF0IjoiTlVMTCIKK2RlcGVuZHNfb246TUJFRFRMU19QRU1fUEFSU0VfQzpNQkVEVExTX1g1MDlfUlNBU1NBX1BTU19TVVBQT1JUOlBTQV9XQU5UX0FMR19TSEFfMjI0Ok1CRURUTFNfTURfQ0FOX1NIQTEKK3g1MDlfdmVyaWZ5OiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9zZXJ2ZXI5LXNoYTIyNC5jcnQiOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy90ZXN0LWNhLmNydCI6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL2NybC1yc2EtcHNzLXNoYTIyNC5wZW0iOiJOVUxMIjowOjA6ImNvbXBhdCI6Ik5VTEwiCiAKIFg1MDkgQ1JUIHZlcmlmaWNhdGlvbiAjNTkgKFZhbGlkLCBSU0FTU0EtUFNTLCBTSEEtMjU2KQotZGVwZW5kc19vbjpNQkVEVExTX1BFTV9QQVJTRV9DOk1CRURUTFNfWDUwOV9SU0FTU0FfUFNTX1NVUFBPUlQ6TUJFRFRMU19NRF9DQU5fU0hBMjU2Ok1CRURUTFNfTURfQ0FOX1NIQTEKLXg1MDlfdmVyaWZ5OiJkYXRhX2ZpbGVzL3NlcnZlcjktc2hhMjU2LmNydCI6ImRhdGFfZmlsZXMvdGVzdC1jYS5jcnQiOiJkYXRhX2ZpbGVzL2NybC1yc2EtcHNzLXNoYTI1Ni5wZW0iOiJOVUxMIjowOjA6ImNvbXBhdCI6Ik5VTEwiCitkZXBlbmRzX29uOk1CRURUTFNfUEVNX1BBUlNFX0M6TUJFRFRMU19YNTA5X1JTQVNTQV9QU1NfU1VQUE9SVDpQU0FfV0FOVF9BTEdfU0hBXzI1NjpNQkVEVExTX01EX0NBTl9TSEExCit4NTA5X3ZlcmlmeToiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvc2VydmVyOS1zaGEyNTYuY3J0IjoiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvdGVzdC1jYS5jcnQiOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9jcmwtcnNhLXBzcy1zaGEyNTYucGVtIjoiTlVMTCI6MDowOiJjb21wYXQiOiJOVUxMIgogCiBYNTA5IENSVCB2ZXJpZmljYXRpb24gIzYwIChWYWxpZCwgUlNBU1NBLVBTUywgU0hBLTM4NCkKLWRlcGVuZHNfb246TUJFRFRMU19QRU1fUEFSU0VfQzpNQkVEVExTX1g1MDlfUlNBU1NBX1BTU19TVVBQT1JUOk1CRURUTFNfTURfQ0FOX1NIQTM4NDpNQkVEVExTX01EX0NBTl9TSEExCi14NTA5X3ZlcmlmeToiZGF0YV9maWxlcy9zZXJ2ZXI5LXNoYTM4NC5jcnQiOiJkYXRhX2ZpbGVzL3Rlc3QtY2EuY3J0IjoiZGF0YV9maWxlcy9jcmwtcnNhLXBzcy1zaGEzODQucGVtIjoiTlVMTCI6MDowOiJjb21wYXQiOiJOVUxMIgorZGVwZW5kc19vbjpNQkVEVExTX1BFTV9QQVJTRV9DOk1CRURUTFNfWDUwOV9SU0FTU0FfUFNTX1NVUFBPUlQ6UFNBX1dBTlRfQUxHX1NIQV8zODQ6TUJFRFRMU19NRF9DQU5fU0hBMQoreDUwOV92ZXJpZnk6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3NlcnZlcjktc2hhMzg0LmNydCI6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3Rlc3QtY2EuY3J0IjoiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvY3JsLXJzYS1wc3Mtc2hhMzg0LnBlbSI6Ik5VTEwiOjA6MDoiY29tcGF0IjoiTlVMTCIKIAogWDUwOSBDUlQgdmVyaWZpY2F0aW9uICM2MSAoVmFsaWQsIFJTQVNTQS1QU1MsIFNIQS01MTIpCiBkZXBlbmRzX29uOk1CRURUTFNfUEVNX1BBUlNFX0M6TUJFRFRMU19YNTA5X1JTQVNTQV9QU1NfU1VQUE9SVDpNQkVEVExTX01EX0NBTl9TSEE1MTI6TUJFRFRMU19NRF9DQU5fU0hBMQoteDUwOV92ZXJpZnk6ImRhdGFfZmlsZXMvc2VydmVyOS1zaGE1MTIuY3J0IjoiZGF0YV9maWxlcy90ZXN0LWNhLmNydCI6ImRhdGFfZmlsZXMvY3JsLXJzYS1wc3Mtc2hhNTEyLnBlbSI6Ik5VTEwiOjA6MDoiY29tcGF0IjoiTlVMTCIKK3g1MDlfdmVyaWZ5OiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9zZXJ2ZXI5LXNoYTUxMi5jcnQiOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy90ZXN0LWNhLmNydCI6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL2NybC1yc2EtcHNzLXNoYTUxMi5wZW0iOiJOVUxMIjowOjA6ImNvbXBhdCI6Ik5VTEwiCiAKIFg1MDkgQ1JUIHZlcmlmaWNhdGlvbiAjNjIgKFJldm9rZWQsIFJTQVNTQS1QU1MsIFNIQS0xKQogZGVwZW5kc19vbjpNQkVEVExTX1BFTV9QQVJTRV9DOk1CRURUTFNfWDUwOV9SU0FTU0FfUFNTX1NVUFBPUlQ6TUJFRFRMU19NRF9DQU5fU0hBMTpNQkVEVExTX0hBVkVfVElNRV9EQVRFCi14NTA5X3ZlcmlmeToiZGF0YV9maWxlcy9zZXJ2ZXI5LmNydCI6ImRhdGFfZmlsZXMvdGVzdC1jYS5jcnQiOiJkYXRhX2ZpbGVzL2NybC1yc2EtcHNzLXNoYTEucGVtIjoiTlVMTCI6TUJFRFRMU19FUlJfWDUwOV9DRVJUX1ZFUklGWV9GQUlMRUQ6TUJFRFRMU19YNTA5X0JBRENFUlRfUkVWT0tFRDoiY29tcGF0IjoiTlVMTCIKK3g1MDlfdmVyaWZ5OiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9zZXJ2ZXI5LmNydCI6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3Rlc3QtY2EuY3J0IjoiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvY3JsLXJzYS1wc3Mtc2hhMS5wZW0iOiJOVUxMIjpNQkVEVExTX0VSUl9YNTA5X0NFUlRfVkVSSUZZX0ZBSUxFRDpNQkVEVExTX1g1MDlfQkFEQ0VSVF9SRVZPS0VEOiJjb21wYXQiOiJOVUxMIgogCiBYNTA5IENSVCB2ZXJpZmljYXRpb24gIzYzIChSZXZva2VkLCBSU0FTU0EtUFNTLCBTSEEtMSwgQ1JMIGJhZHNpZ24pCiBkZXBlbmRzX29uOk1CRURUTFNfUEVNX1BBUlNFX0M6TUJFRFRMU19YNTA5X1JTQVNTQV9QU1NfU1VQUE9SVDpNQkVEVExTX01EX0NBTl9TSEExCi14NTA5X3ZlcmlmeToiZGF0YV9maWxlcy9zZXJ2ZXI5LmNydCI6ImRhdGFfZmlsZXMvdGVzdC1jYS5jcnQiOiJkYXRhX2ZpbGVzL2NybC1yc2EtcHNzLXNoYTEtYmFkc2lnbi5wZW0iOiJOVUxMIjpNQkVEVExTX0VSUl9YNTA5X0NFUlRfVkVSSUZZX0ZBSUxFRDpNQkVEVExTX1g1MDlfQkFEQ1JMX05PVF9UUlVTVEVEOiJjb21wYXQiOiJOVUxMIgoreDUwOV92ZXJpZnk6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3NlcnZlcjkuY3J0IjoiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvdGVzdC1jYS5jcnQiOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9jcmwtcnNhLXBzcy1zaGExLWJhZHNpZ24ucGVtIjoiTlVMTCI6TUJFRFRMU19FUlJfWDUwOV9DRVJUX1ZFUklGWV9GQUlMRUQ6TUJFRFRMU19YNTA5X0JBRENSTF9OT1RfVFJVU1RFRDoiY29tcGF0IjoiTlVMTCIKIAogWDUwOSBDUlQgdmVyaWZpY2F0aW9uICM2NCAoVmFsaWQsIFJTQVNTQS1QU1MsIFNIQS0xLCBub3QgdG9wKQogZGVwZW5kc19vbjpNQkVEVExTX1BFTV9QQVJTRV9DOk1CRURUTFNfWDUwOV9SU0FTU0FfUFNTX1NVUFBPUlQ6TUJFRFRMU19NRF9DQU5fU0hBMTpNQkVEVExTX1JTQV9DOk1CRURUTFNfUEtDUzFfVjE1Ci14NTA5X3ZlcmlmeToiZGF0YV9maWxlcy9zZXJ2ZXI5LXdpdGgtY2EuY3J0IjoiZGF0YV9maWxlcy90ZXN0LWNhLmNydCI6ImRhdGFfZmlsZXMvY3JsLnBlbSI6Ik5VTEwiOjA6MDoiY29tcGF0IjoiTlVMTCIKK3g1MDlfdmVyaWZ5OiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9zZXJ2ZXI5LXdpdGgtY2EuY3J0IjoiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvdGVzdC1jYS5jcnQiOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9jcmwucGVtIjoiTlVMTCI6MDowOiJjb21wYXQiOiJOVUxMIgogCiBYNTA5IENSVCB2ZXJpZmljYXRpb24gIzY1IChSU0FTU0EtUFNTLCBTSEExLCBiYWQgY2VydCBzaWduYXR1cmUpCiBkZXBlbmRzX29uOk1CRURUTFNfUEVNX1BBUlNFX0M6TUJFRFRMU19YNTA5X1JTQVNTQV9QU1NfU1VQUE9SVDpNQkVEVExTX01EX0NBTl9TSEExCi14NTA5X3ZlcmlmeToiZGF0YV9maWxlcy9zZXJ2ZXI5LWJhZHNpZ24uY3J0IjoiZGF0YV9maWxlcy90ZXN0LWNhLmNydCI6ImRhdGFfZmlsZXMvY3JsLnBlbSI6Ik5VTEwiOk1CRURUTFNfRVJSX1g1MDlfQ0VSVF9WRVJJRllfRkFJTEVEOk1CRURUTFNfWDUwOV9CQURDRVJUX05PVF9UUlVTVEVEOiJjb21wYXQiOiJOVUxMIgoreDUwOV92ZXJpZnk6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3NlcnZlcjktYmFkc2lnbi5jcnQiOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy90ZXN0LWNhLmNydCI6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL2NybC5wZW0iOiJOVUxMIjpNQkVEVExTX0VSUl9YNTA5X0NFUlRfVkVSSUZZX0ZBSUxFRDpNQkVEVExTX1g1MDlfQkFEQ0VSVF9OT1RfVFJVU1RFRDoiY29tcGF0IjoiTlVMTCIKIAogWDUwOSBDUlQgdmVyaWZpY2F0aW9uICM2NiAoUlNBU1NBLVBTUywgU0hBMSwgbm8gUlNBIENBKQotZGVwZW5kc19vbjpNQkVEVExTX1BFTV9QQVJTRV9DOk1CRURUTFNfWDUwOV9SU0FTU0FfUFNTX1NVUFBPUlQ6TUJFRFRMU19NRF9DQU5fU0hBMTpNQkVEVExTX1BLX0NBTl9FQ0RTQV9WRVJJRlk6TUJFRFRMU19FQ1BfSEFWRV9TRUNQMzg0UjE6TUJFRFRMU19NRF9DQU5fU0hBMjU2Ci14NTA5X3ZlcmlmeToiZGF0YV9maWxlcy9zZXJ2ZXI5LmNydCI6ImRhdGFfZmlsZXMvdGVzdC1jYTIuY3J0IjoiZGF0YV9maWxlcy9jcmwucGVtIjoiTlVMTCI6TUJFRFRMU19FUlJfWDUwOV9DRVJUX1ZFUklGWV9GQUlMRUQ6TUJFRFRMU19YNTA5X0JBRENFUlRfTk9UX1RSVVNURUQ6ImNvbXBhdCI6Ik5VTEwiCitkZXBlbmRzX29uOk1CRURUTFNfUEVNX1BBUlNFX0M6TUJFRFRMU19YNTA5X1JTQVNTQV9QU1NfU1VQUE9SVDpNQkVEVExTX01EX0NBTl9TSEExOk1CRURUTFNfUEtfQ0FOX0VDRFNBX1ZFUklGWTpNQkVEVExTX0VDUF9IQVZFX1NFQ1AzODRSMTpQU0FfV0FOVF9BTEdfU0hBXzI1NgoreDUwOV92ZXJpZnk6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3NlcnZlcjkuY3J0IjoiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvdGVzdC1jYTIuY3J0IjoiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvY3JsLnBlbSI6Ik5VTEwiOk1CRURUTFNfRVJSX1g1MDlfQ0VSVF9WRVJJRllfRkFJTEVEOk1CRURUTFNfWDUwOV9CQURDRVJUX05PVF9UUlVTVEVEOiJjb21wYXQiOiJOVUxMIgogCiBYNTA5IENSVCB2ZXJpZmljYXRpb24gIzY3IChWYWxpZCwgUlNBU1NBLVBTUywgYWxsIGRlZmF1bHRzKQogZGVwZW5kc19vbjpNQkVEVExTX1BFTV9QQVJTRV9DOk1CRURUTFNfWDUwOV9SU0FTU0FfUFNTX1NVUFBPUlQ6TUJFRFRMU19NRF9DQU5fU0hBMQoteDUwOV92ZXJpZnk6ImRhdGFfZmlsZXMvc2VydmVyOS1kZWZhdWx0cy5jcnQiOiJkYXRhX2ZpbGVzL3Rlc3QtY2EuY3J0IjoiZGF0YV9maWxlcy9jcmwtcnNhLXBzcy1zaGExLnBlbSI6Ik5VTEwiOjA6MDoiY29tcGF0IjoiTlVMTCIKK3g1MDlfdmVyaWZ5OiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9zZXJ2ZXI5LWRlZmF1bHRzLmNydCI6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3Rlc3QtY2EuY3J0IjoiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvY3JsLXJzYS1wc3Mtc2hhMS5wZW0iOiJOVUxMIjowOjA6ImNvbXBhdCI6Ik5VTEwiCiAKIFg1MDkgQ1JUIHZlcmlmaWNhdGlvbiAjNjggKFJTQVNTQS1QU1MsIHdyb25nIHNhbHRfbGVuLCAhVVNFX1BTQSkKLWRlcGVuZHNfb246TUJFRFRMU19QRU1fUEFSU0VfQzpNQkVEVExTX1g1MDlfUlNBU1NBX1BTU19TVVBQT1JUOk1CRURUTFNfTURfQ0FOX1NIQTI1NjpNQkVEVExTX01EX0NBTl9TSEExOiFNQkVEVExTX1VTRV9QU0FfQ1JZUFRPCi14NTA5X3ZlcmlmeToiZGF0YV9maWxlcy9zZXJ2ZXI5LWJhZC1zYWx0bGVuLmNydCI6ImRhdGFfZmlsZXMvdGVzdC1jYS5jcnQiOiJkYXRhX2ZpbGVzL2NybC1yc2EtcHNzLXNoYTEucGVtIjoiTlVMTCI6TUJFRFRMU19FUlJfWDUwOV9DRVJUX1ZFUklGWV9GQUlMRUQ6TUJFRFRMU19YNTA5X0JBRENFUlRfTk9UX1RSVVNURUQ6ImNvbXBhdCI6Ik5VTEwiCitkZXBlbmRzX29uOk1CRURUTFNfUEVNX1BBUlNFX0M6TUJFRFRMU19YNTA5X1JTQVNTQV9QU1NfU1VQUE9SVDpQU0FfV0FOVF9BTEdfU0hBXzI1NjpNQkVEVExTX01EX0NBTl9TSEExOiFNQkVEVExTX1VTRV9QU0FfQ1JZUFRPCit4NTA5X3ZlcmlmeToiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvc2VydmVyOS1iYWQtc2FsdGxlbi5jcnQiOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy90ZXN0LWNhLmNydCI6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL2NybC1yc2EtcHNzLXNoYTEucGVtIjoiTlVMTCI6TUJFRFRMU19FUlJfWDUwOV9DRVJUX1ZFUklGWV9GQUlMRUQ6TUJFRFRMU19YNTA5X0JBRENFUlRfTk9UX1RSVVNURUQ6ImNvbXBhdCI6Ik5VTEwiCiAKIFg1MDkgQ1JUIHZlcmlmaWNhdGlvbiAjNjggKFJTQVNTQS1QU1MsIHdyb25nIHNhbHRfbGVuLCBVU0VfUFNBKQotZGVwZW5kc19vbjpNQkVEVExTX1BFTV9QQVJTRV9DOk1CRURUTFNfWDUwOV9SU0FTU0FfUFNTX1NVUFBPUlQ6TUJFRFRMU19NRF9DQU5fU0hBMjU2Ok1CRURUTFNfTURfQ0FOX1NIQTE6TUJFRFRMU19VU0VfUFNBX0NSWVBUTwoteDUwOV92ZXJpZnk6ImRhdGFfZmlsZXMvc2VydmVyOS1iYWQtc2FsdGxlbi5jcnQiOiJkYXRhX2ZpbGVzL3Rlc3QtY2EuY3J0IjoiZGF0YV9maWxlcy9jcmwtcnNhLXBzcy1zaGExLnBlbSI6Ik5VTEwiOjA6MDoiY29tcGF0IjoiTlVMTCIKK2RlcGVuZHNfb246TUJFRFRMU19QRU1fUEFSU0VfQzpNQkVEVExTX1g1MDlfUlNBU1NBX1BTU19TVVBQT1JUOlBTQV9XQU5UX0FMR19TSEFfMjU2Ok1CRURUTFNfTURfQ0FOX1NIQTE6TUJFRFRMU19VU0VfUFNBX0NSWVBUTworeDUwOV92ZXJpZnk6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3NlcnZlcjktYmFkLXNhbHRsZW4uY3J0IjoiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvdGVzdC1jYS5jcnQiOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9jcmwtcnNhLXBzcy1zaGExLnBlbSI6Ik5VTEwiOjA6MDoiY29tcGF0IjoiTlVMTCIKIAogWDUwOSBDUlQgdmVyaWZpY2F0aW9uICM2OSAoUlNBU1NBLVBTUywgd3JvbmcgbWdmX2hhc2gpCi1kZXBlbmRzX29uOk1CRURUTFNfUEVNX1BBUlNFX0M6TUJFRFRMU19YNTA5X1JTQVNTQV9QU1NfU1VQUE9SVDpNQkVEVExTX01EX0NBTl9TSEEyNTY6TUJFRFRMU19NRF9DQU5fU0hBMjI0Ok1CRURUTFNfTURfQ0FOX1NIQTEKLXg1MDlfdmVyaWZ5OiJkYXRhX2ZpbGVzL3NlcnZlcjktYmFkLW1nZmhhc2guY3J0IjoiZGF0YV9maWxlcy90ZXN0LWNhLmNydCI6ImRhdGFfZmlsZXMvY3JsLnBlbSI6Ik5VTEwiOk1CRURUTFNfRVJSX1g1MDlfQ0VSVF9WRVJJRllfRkFJTEVEOk1CRURUTFNfWDUwOV9CQURDRVJUX05PVF9UUlVTVEVEOiJjb21wYXQiOiJOVUxMIgorZGVwZW5kc19vbjpNQkVEVExTX1BFTV9QQVJTRV9DOk1CRURUTFNfWDUwOV9SU0FTU0FfUFNTX1NVUFBPUlQ6UFNBX1dBTlRfQUxHX1NIQV8yNTY6UFNBX1dBTlRfQUxHX1NIQV8yMjQ6TUJFRFRMU19NRF9DQU5fU0hBMQoreDUwOV92ZXJpZnk6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3NlcnZlcjktYmFkLW1nZmhhc2guY3J0IjoiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvdGVzdC1jYS5jcnQiOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9jcmwucGVtIjoiTlVMTCI6TUJFRFRMU19FUlJfWDUwOV9DRVJUX1ZFUklGWV9GQUlMRUQ6TUJFRFRMU19YNTA5X0JBRENFUlRfTk9UX1RSVVNURUQ6ImNvbXBhdCI6Ik5VTEwiCiAKIFg1MDkgQ1JUIHZlcmlmaWNhdGlvbiAjNzAgKHYxIHRydXN0ZWQgQ0EpCi1kZXBlbmRzX29uOk1CRURUTFNfUEVNX1BBUlNFX0M6TUJFRFRMU19SU0FfQzpNQkVEVExTX1BLQ1MxX1YxNTpNQkVEVExTX01EX0NBTl9TSEEyNTY6TUJFRFRMU19NRF9DQU5fU0hBMQoteDUwOV92ZXJpZnk6ImRhdGFfZmlsZXMvc2VydmVyMS12MS5jcnQiOiJkYXRhX2ZpbGVzL3Rlc3QtY2EtdjEuY3J0IjoiZGF0YV9maWxlcy9jcmwucGVtIjoiTlVMTCI6MDowOiJjb21wYXQiOiJOVUxMIgorZGVwZW5kc19vbjpNQkVEVExTX1BFTV9QQVJTRV9DOk1CRURUTFNfUlNBX0M6TUJFRFRMU19QS0NTMV9WMTU6UFNBX1dBTlRfQUxHX1NIQV8yNTY6TUJFRFRMU19NRF9DQU5fU0hBMQoreDUwOV92ZXJpZnk6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3NlcnZlcjEtdjEuY3J0IjoiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvdGVzdC1jYS12MS5jcnQiOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9jcmwucGVtIjoiTlVMTCI6MDowOiJjb21wYXQiOiJOVUxMIgogCiBYNTA5IENSVCB2ZXJpZmljYXRpb24gIzcxICh2MSB0cnVzdGVkIENBLCBvdGhlcikKLWRlcGVuZHNfb246TUJFRFRMU19QRU1fUEFSU0VfQzpNQkVEVExTX1JTQV9DOk1CRURUTFNfUEtDUzFfVjE1Ok1CRURUTFNfTURfQ0FOX1NIQTI1NjpNQkVEVExTX01EX0NBTl9TSEExCi14NTA5X3ZlcmlmeToiZGF0YV9maWxlcy9zZXJ2ZXIyLXYxLmNydCI6ImRhdGFfZmlsZXMvc2VydmVyMS12MS5jcnQiOiJkYXRhX2ZpbGVzL2NybC5wZW0iOiJOVUxMIjowOjA6ImNvbXBhdCI6Ik5VTEwiCitkZXBlbmRzX29uOk1CRURUTFNfUEVNX1BBUlNFX0M6TUJFRFRMU19SU0FfQzpNQkVEVExTX1BLQ1MxX1YxNTpQU0FfV0FOVF9BTEdfU0hBXzI1NjpNQkVEVExTX01EX0NBTl9TSEExCit4NTA5X3ZlcmlmeToiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvc2VydmVyMi12MS5jcnQiOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9zZXJ2ZXIxLXYxLmNydCI6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL2NybC5wZW0iOiJOVUxMIjowOjA6ImNvbXBhdCI6Ik5VTEwiCiAKIFg1MDkgQ1JUIHZlcmlmaWNhdGlvbiAjNzIgKHYxIGNoYWluKQotZGVwZW5kc19vbjpNQkVEVExTX1BFTV9QQVJTRV9DOk1CRURUTFNfUlNBX0M6TUJFRFRMU19QS0NTMV9WMTU6TUJFRFRMU19NRF9DQU5fU0hBMjU2Ok1CRURUTFNfTURfQ0FOX1NIQTEKLXg1MDlfdmVyaWZ5OiJkYXRhX2ZpbGVzL3NlcnZlcjItdjEtY2hhaW4uY3J0IjoiZGF0YV9maWxlcy90ZXN0LWNhLXYxLmNydCI6ImRhdGFfZmlsZXMvY3JsLnBlbSI6Ik5VTEwiOk1CRURUTFNfRVJSX1g1MDlfQ0VSVF9WRVJJRllfRkFJTEVEOk1CRURUTFNfWDUwOV9CQURDRVJUX05PVF9UUlVTVEVEOiJjb21wYXQiOiJOVUxMIgorZGVwZW5kc19vbjpNQkVEVExTX1BFTV9QQVJTRV9DOk1CRURUTFNfUlNBX0M6TUJFRFRMU19QS0NTMV9WMTU6UFNBX1dBTlRfQUxHX1NIQV8yNTY6TUJFRFRMU19NRF9DQU5fU0hBMQoreDUwOV92ZXJpZnk6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3NlcnZlcjItdjEtY2hhaW4uY3J0IjoiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvdGVzdC1jYS12MS5jcnQiOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9jcmwucGVtIjoiTlVMTCI6TUJFRFRMU19FUlJfWDUwOV9DRVJUX1ZFUklGWV9GQUlMRUQ6TUJFRFRMU19YNTA5X0JBRENFUlRfTk9UX1RSVVNURUQ6ImNvbXBhdCI6Ik5VTEwiCiAKIFg1MDkgQ1JUIHZlcmlmaWNhdGlvbiAjNzMgKHNlbGZzaWduZWQgdHJ1c3RlZCB3aXRob3V0IENBIGJpdCkKLWRlcGVuZHNfb246TUJFRFRMU19QRU1fUEFSU0VfQzpNQkVEVExTX1BLX0NBTl9FQ0RTQV9WRVJJRlk6TUJFRFRMU19NRF9DQU5fU0hBMjU2Ok1CRURUTFNfRUNQX0hBVkVfU0VDUDI1NlIxOk1CRURUTFNfTURfQ0FOX1NIQTE6TUJFRFRMU19SU0FfQwoteDUwOV92ZXJpZnk6ImRhdGFfZmlsZXMvc2VydmVyNS1zZWxmc2lnbmVkLmNydCI6ImRhdGFfZmlsZXMvc2VydmVyNS1zZWxmc2lnbmVkLmNydCI6ImRhdGFfZmlsZXMvY3JsLnBlbSI6Ik5VTEwiOjA6MDoiY29tcGF0IjoiTlVMTCIKK2RlcGVuZHNfb246TUJFRFRMU19QRU1fUEFSU0VfQzpNQkVEVExTX1BLX0NBTl9FQ0RTQV9WRVJJRlk6UFNBX1dBTlRfQUxHX1NIQV8yNTY6TUJFRFRMU19FQ1BfSEFWRV9TRUNQMjU2UjE6TUJFRFRMU19NRF9DQU5fU0hBMTpNQkVEVExTX1JTQV9DCit4NTA5X3ZlcmlmeToiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvc2VydmVyNS1zZWxmc2lnbmVkLmNydCI6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3NlcnZlcjUtc2VsZnNpZ25lZC5jcnQiOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9jcmwucGVtIjoiTlVMTCI6MDowOiJjb21wYXQiOiJOVUxMIgogCiBYNTA5IENSVCB2ZXJpZmljYXRpb24gIzc0IChzaWduZWQgYnkgc2VsZnNpZ25lZCB0cnVzdGVkIHdpdGhvdXQgQ0EgYml0KQotZGVwZW5kc19vbjpNQkVEVExTX1BFTV9QQVJTRV9DOk1CRURUTFNfUEtfQ0FOX0VDRFNBX1ZFUklGWTpNQkVEVExTX01EX0NBTl9TSEEyNTY6TUJFRFRMU19FQ1BfSEFWRV9TRUNQMjU2UjE6TUJFRFRMU19NRF9DQU5fU0hBMTpNQkVEVExTX1JTQV9DCi14NTA5X3ZlcmlmeToiZGF0YV9maWxlcy9zZXJ2ZXI2LXNzLWNoaWxkLmNydCI6ImRhdGFfZmlsZXMvc2VydmVyNS1zZWxmc2lnbmVkLmNydCI6ImRhdGFfZmlsZXMvY3JsLnBlbSI6Ik5VTEwiOk1CRURUTFNfRVJSX1g1MDlfQ0VSVF9WRVJJRllfRkFJTEVEOk1CRURUTFNfWDUwOV9CQURDRVJUX05PVF9UUlVTVEVEOiJjb21wYXQiOiJOVUxMIgorZGVwZW5kc19vbjpNQkVEVExTX1BFTV9QQVJTRV9DOk1CRURUTFNfUEtfQ0FOX0VDRFNBX1ZFUklGWTpQU0FfV0FOVF9BTEdfU0hBXzI1NjpNQkVEVExTX0VDUF9IQVZFX1NFQ1AyNTZSMTpNQkVEVExTX01EX0NBTl9TSEExOk1CRURUTFNfUlNBX0MKK3g1MDlfdmVyaWZ5OiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9zZXJ2ZXI2LXNzLWNoaWxkLmNydCI6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3NlcnZlcjUtc2VsZnNpZ25lZC5jcnQiOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9jcmwucGVtIjoiTlVMTCI6TUJFRFRMU19FUlJfWDUwOV9DRVJUX1ZFUklGWV9GQUlMRUQ6TUJFRFRMU19YNTA5X0JBRENFUlRfTk9UX1RSVVNURUQ6ImNvbXBhdCI6Ik5VTEwiCiAKIFg1MDkgQ1JUIHZlcmlmaWNhdGlvbiAjNzUgKGVuY29kaW5nIG1pc21hdGNoKQogZGVwZW5kc19vbjpNQkVEVExTX1BFTV9QQVJTRV9DOk1CRURUTFNfTURfQ0FOX1NIQTE6TUJFRFRMU19SU0FfQzpNQkVEVExTX1BLQ1MxX1YxNQoteDUwOV92ZXJpZnk6ImRhdGFfZmlsZXMvZW5jby1jZXJ0LXV0ZjhzdHIucGVtIjoiZGF0YV9maWxlcy9lbmNvLWNhLXByc3RyLnBlbSI6ImRhdGFfZmlsZXMvY3JsLnBlbSI6Ik5VTEwiOjA6MDoiY29tcGF0IjoiTlVMTCIKK3g1MDlfdmVyaWZ5OiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9lbmNvLWNlcnQtdXRmOHN0ci5wZW0iOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9lbmNvLWNhLXByc3RyLnBlbSI6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL2NybC5wZW0iOiJOVUxMIjowOjA6ImNvbXBhdCI6Ik5VTEwiCiAKIFg1MDkgQ1JUIHZlcmlmaWNhdGlvbiAjNzYgKG11bHRpcGxlIENSTHMsIG5vdCByZXZva2VkKQotZGVwZW5kc19vbjpNQkVEVExTX1BFTV9QQVJTRV9DOk1CRURUTFNfUEtfQ0FOX0VDRFNBX1ZFUklGWTpNQkVEVExTX0VDUF9IQVZFX1NFQ1AzODRSMTpNQkVEVExTX0VDUF9IQVZFX1NFQ1AyNTZSMTpNQkVEVExTX01EX0NBTl9TSEEyNTY6TUJFRFRMU19SU0FfQzpNQkVEVExTX01EX0NBTl9TSEExCi14NTA5X3ZlcmlmeToiZGF0YV9maWxlcy9zZXJ2ZXI1LmNydCI6ImRhdGFfZmlsZXMvdGVzdC1jYV9jYXQxMi5jcnQiOiJkYXRhX2ZpbGVzL2NybF9jYXRfZWMtcnNhLnBlbSI6Ik5VTEwiOjA6MDoiY29tcGF0IjoiTlVMTCIKK2RlcGVuZHNfb246TUJFRFRMU19QRU1fUEFSU0VfQzpNQkVEVExTX1BLX0NBTl9FQ0RTQV9WRVJJRlk6TUJFRFRMU19FQ1BfSEFWRV9TRUNQMzg0UjE6TUJFRFRMU19FQ1BfSEFWRV9TRUNQMjU2UjE6UFNBX1dBTlRfQUxHX1NIQV8yNTY6TUJFRFRMU19SU0FfQzpNQkVEVExTX01EX0NBTl9TSEExCit4NTA5X3ZlcmlmeToiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvc2VydmVyNS5jcnQiOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy90ZXN0LWNhX2NhdDEyLmNydCI6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL2NybF9jYXRfZWMtcnNhLnBlbSI6Ik5VTEwiOjA6MDoiY29tcGF0IjoiTlVMTCIKIAogWDUwOSBDUlQgdmVyaWZpY2F0aW9uICM3NyAobXVsdGlwbGUgQ1JMcywgcmV2b2tlZCkKLWRlcGVuZHNfb246TUJFRFRMU19QRU1fUEFSU0VfQzpNQkVEVExTX1BLX0NBTl9FQ0RTQV9WRVJJRlk6TUJFRFRMU19FQ1BfSEFWRV9TRUNQMzg0UjE6TUJFRFRMU19FQ1BfSEFWRV9TRUNQMjU2UjE6TUJFRFRMU19NRF9DQU5fU0hBMjU2Ok1CRURUTFNfUlNBX0M6TUJFRFRMU19NRF9DQU5fU0hBMTpNQkVEVExTX0hBVkVfVElNRV9EQVRFCi14NTA5X3ZlcmlmeToiZGF0YV9maWxlcy9zZXJ2ZXI2LmNydCI6ImRhdGFfZmlsZXMvdGVzdC1jYV9jYXQxMi5jcnQiOiJkYXRhX2ZpbGVzL2NybF9jYXRfZWMtcnNhLnBlbSI6Ik5VTEwiOk1CRURUTFNfRVJSX1g1MDlfQ0VSVF9WRVJJRllfRkFJTEVEOk1CRURUTFNfWDUwOV9CQURDRVJUX1JFVk9LRUQ6ImNvbXBhdCI6Ik5VTEwiCitkZXBlbmRzX29uOk1CRURUTFNfUEVNX1BBUlNFX0M6TUJFRFRMU19QS19DQU5fRUNEU0FfVkVSSUZZOk1CRURUTFNfRUNQX0hBVkVfU0VDUDM4NFIxOk1CRURUTFNfRUNQX0hBVkVfU0VDUDI1NlIxOlBTQV9XQU5UX0FMR19TSEFfMjU2Ok1CRURUTFNfUlNBX0M6TUJFRFRMU19NRF9DQU5fU0hBMTpNQkVEVExTX0hBVkVfVElNRV9EQVRFCit4NTA5X3ZlcmlmeToiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvc2VydmVyNi5jcnQiOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy90ZXN0LWNhX2NhdDEyLmNydCI6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL2NybF9jYXRfZWMtcnNhLnBlbSI6Ik5VTEwiOk1CRURUTFNfRVJSX1g1MDlfQ0VSVF9WRVJJRllfRkFJTEVEOk1CRURUTFNfWDUwOV9CQURDRVJUX1JFVk9LRUQ6ImNvbXBhdCI6Ik5VTEwiCiAKIFg1MDkgQ1JUIHZlcmlmaWNhdGlvbiAjNzggKG11bHRpcGxlIENSTHMsIHJldm9rZWQgYnkgc2Vjb25kKQotZGVwZW5kc19vbjpNQkVEVExTX1BFTV9QQVJTRV9DOk1CRURUTFNfUEtfQ0FOX0VDRFNBX1ZFUklGWTpNQkVEVExTX0VDUF9IQVZFX1NFQ1AzODRSMTpNQkVEVExTX0VDUF9IQVZFX1NFQ1AyNTZSMTpNQkVEVExTX01EX0NBTl9TSEEyNTY6TUJFRFRMU19SU0FfQzpNQkVEVExTX01EX0NBTl9TSEExOk1CRURUTFNfSEFWRV9USU1FX0RBVEUKLXg1MDlfdmVyaWZ5OiJkYXRhX2ZpbGVzL3NlcnZlcjYuY3J0IjoiZGF0YV9maWxlcy90ZXN0LWNhX2NhdDEyLmNydCI6ImRhdGFfZmlsZXMvY3JsX2NhdF9yc2EtZWMucGVtIjoiTlVMTCI6TUJFRFRMU19FUlJfWDUwOV9DRVJUX1ZFUklGWV9GQUlMRUQ6TUJFRFRMU19YNTA5X0JBRENFUlRfUkVWT0tFRDoiY29tcGF0IjoiTlVMTCIKK2RlcGVuZHNfb246TUJFRFRMU19QRU1fUEFSU0VfQzpNQkVEVExTX1BLX0NBTl9FQ0RTQV9WRVJJRlk6TUJFRFRMU19FQ1BfSEFWRV9TRUNQMzg0UjE6TUJFRFRMU19FQ1BfSEFWRV9TRUNQMjU2UjE6UFNBX1dBTlRfQUxHX1NIQV8yNTY6TUJFRFRMU19SU0FfQzpNQkVEVExTX01EX0NBTl9TSEExOk1CRURUTFNfSEFWRV9USU1FX0RBVEUKK3g1MDlfdmVyaWZ5OiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9zZXJ2ZXI2LmNydCI6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3Rlc3QtY2FfY2F0MTIuY3J0IjoiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvY3JsX2NhdF9yc2EtZWMucGVtIjoiTlVMTCI6TUJFRFRMU19FUlJfWDUwOV9DRVJUX1ZFUklGWV9GQUlMRUQ6TUJFRFRMU19YNTA5X0JBRENFUlRfUkVWT0tFRDoiY29tcGF0IjoiTlVMTCIKIAogWDUwOSBDUlQgdmVyaWZpY2F0aW9uICM3OSAobXVsdGlwbGUgQ1JMcywgcmV2b2tlZCBieSBmdXR1cmUpCi1kZXBlbmRzX29uOk1CRURUTFNfUEVNX1BBUlNFX0M6TUJFRFRMU19QS19DQU5fRUNEU0FfVkVSSUZZOk1CRURUTFNfRUNQX0hBVkVfU0VDUDM4NFIxOk1CRURUTFNfRUNQX0hBVkVfU0VDUDI1NlIxOk1CRURUTFNfTURfQ0FOX1NIQTI1NjpNQkVEVExTX1JTQV9DOk1CRURUTFNfTURfQ0FOX1NIQTE6TUJFRFRMU19IQVZFX1RJTUVfREFURQoteDUwOV92ZXJpZnk6ImRhdGFfZmlsZXMvc2VydmVyNi5jcnQiOiJkYXRhX2ZpbGVzL3Rlc3QtY2FfY2F0MTIuY3J0IjoiZGF0YV9maWxlcy9jcmxfY2F0X2VjZnV0LXJzYS5wZW0iOiJOVUxMIjpNQkVEVExTX0VSUl9YNTA5X0NFUlRfVkVSSUZZX0ZBSUxFRDpNQkVEVExTX1g1MDlfQkFEQ0VSVF9SRVZPS0VEfE1CRURUTFNfWDUwOV9CQURDUkxfRlVUVVJFOiJjb21wYXQiOiJOVUxMIgorZGVwZW5kc19vbjpNQkVEVExTX1BFTV9QQVJTRV9DOk1CRURUTFNfUEtfQ0FOX0VDRFNBX1ZFUklGWTpNQkVEVExTX0VDUF9IQVZFX1NFQ1AzODRSMTpNQkVEVExTX0VDUF9IQVZFX1NFQ1AyNTZSMTpQU0FfV0FOVF9BTEdfU0hBXzI1NjpNQkVEVExTX1JTQV9DOk1CRURUTFNfTURfQ0FOX1NIQTE6TUJFRFRMU19IQVZFX1RJTUVfREFURQoreDUwOV92ZXJpZnk6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3NlcnZlcjYuY3J0IjoiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvdGVzdC1jYV9jYXQxMi5jcnQiOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9jcmxfY2F0X2VjZnV0LXJzYS5wZW0iOiJOVUxMIjpNQkVEVExTX0VSUl9YNTA5X0NFUlRfVkVSSUZZX0ZBSUxFRDpNQkVEVExTX1g1MDlfQkFEQ0VSVF9SRVZPS0VEfE1CRURUTFNfWDUwOV9CQURDUkxfRlVUVVJFOiJjb21wYXQiOiJOVUxMIgogCiBYNTA5IENSVCB2ZXJpZmljYXRpb24gIzgwIChtdWx0aXBsZSBDUkxzLCBmaXJzdCBmdXR1cmUsIHJldm9rZWQgYnkgc2Vjb25kKQotZGVwZW5kc19vbjpNQkVEVExTX1BFTV9QQVJTRV9DOk1CRURUTFNfUEtfQ0FOX0VDRFNBX1ZFUklGWTpNQkVEVExTX0VDUF9IQVZFX1NFQ1AzODRSMTpNQkVEVExTX0VDUF9IQVZFX1NFQ1AyNTZSMTpNQkVEVExTX01EX0NBTl9TSEEyNTY6TUJFRFRMU19SU0FfQzpNQkVEVExTX1BLQ1MxX1YxNTpNQkVEVExTX01EX0NBTl9TSEExOk1CRURUTFNfSEFWRV9USU1FX0RBVEUKLXg1MDlfdmVyaWZ5OiJkYXRhX2ZpbGVzL3NlcnZlcjEuY3J0IjoiZGF0YV9maWxlcy90ZXN0LWNhX2NhdDEyLmNydCI6ImRhdGFfZmlsZXMvY3JsX2NhdF9lY2Z1dC1yc2EucGVtIjoiTlVMTCI6TUJFRFRMU19FUlJfWDUwOV9DRVJUX1ZFUklGWV9GQUlMRUQ6TUJFRFRMU19YNTA5X0JBRENFUlRfUkVWT0tFRDoiY29tcGF0IjoiTlVMTCIKK2RlcGVuZHNfb246TUJFRFRMU19QRU1fUEFSU0VfQzpNQkVEVExTX1BLX0NBTl9FQ0RTQV9WRVJJRlk6TUJFRFRMU19FQ1BfSEFWRV9TRUNQMzg0UjE6TUJFRFRMU19FQ1BfSEFWRV9TRUNQMjU2UjE6UFNBX1dBTlRfQUxHX1NIQV8yNTY6TUJFRFRMU19SU0FfQzpNQkVEVExTX1BLQ1MxX1YxNTpNQkVEVExTX01EX0NBTl9TSEExOk1CRURUTFNfSEFWRV9USU1FX0RBVEUKK3g1MDlfdmVyaWZ5OiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9zZXJ2ZXIxLmNydCI6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3Rlc3QtY2FfY2F0MTIuY3J0IjoiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvY3JsX2NhdF9lY2Z1dC1yc2EucGVtIjoiTlVMTCI6TUJFRFRMU19FUlJfWDUwOV9DRVJUX1ZFUklGWV9GQUlMRUQ6TUJFRFRMU19YNTA5X0JBRENFUlRfUkVWT0tFRDoiY29tcGF0IjoiTlVMTCIKIAogWDUwOSBDUlQgdmVyaWZpY2F0aW9uICM4MSAobXVsdGlwbGUgQ1JMcywgbm9uZSByZWxldmFudCkKLWRlcGVuZHNfb246TUJFRFRMU19QRU1fUEFSU0VfQzpNQkVEVExTX1BLX0NBTl9FQ0RTQV9WRVJJRlk6TUJFRFRMU19FQ1BfSEFWRV9TRUNQMzg0UjE6TUJFRFRMU19FQ1BfSEFWRV9TRUNQMjU2UjE6TUJFRFRMU19NRF9DQU5fU0hBMjU2Ok1CRURUTFNfUlNBX0M6TUJFRFRMU19QS0NTMV9WMTU6TUJFRFRMU19NRF9DQU5fU0hBMQoteDUwOV92ZXJpZnk6ImRhdGFfZmlsZXMvZW5jby1jZXJ0LXV0ZjhzdHIucGVtIjoiZGF0YV9maWxlcy9lbmNvLWNhLXByc3RyLnBlbSI6ImRhdGFfZmlsZXMvY3JsX2NhdF9yc2EtZWMucGVtIjoiTlVMTCI6MDowOiJjb21wYXQiOiJOVUxMIgorZGVwZW5kc19vbjpNQkVEVExTX1BFTV9QQVJTRV9DOk1CRURUTFNfUEtfQ0FOX0VDRFNBX1ZFUklGWTpNQkVEVExTX0VDUF9IQVZFX1NFQ1AzODRSMTpNQkVEVExTX0VDUF9IQVZFX1NFQ1AyNTZSMTpQU0FfV0FOVF9BTEdfU0hBXzI1NjpNQkVEVExTX1JTQV9DOk1CRURUTFNfUEtDUzFfVjE1Ok1CRURUTFNfTURfQ0FOX1NIQTEKK3g1MDlfdmVyaWZ5OiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9lbmNvLWNlcnQtdXRmOHN0ci5wZW0iOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9lbmNvLWNhLXByc3RyLnBlbSI6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL2NybF9jYXRfcnNhLWVjLnBlbSI6Ik5VTEwiOjA6MDoiY29tcGF0IjoiTlVMTCIKIAogWDUwOSBDUlQgdmVyaWZpY2F0aW9uICM4MiAoTm90IHlldCB2YWxpZCBDQSBhbmQgdmFsaWQgQ0EpCi1kZXBlbmRzX29uOk1CRURUTFNfUEVNX1BBUlNFX0M6TUJFRFRMU19QS19DQU5fRUNEU0FfVkVSSUZZOk1CRURUTFNfRUNQX0hBVkVfU0VDUDI1NlIxOk1CRURUTFNfRUNQX0hBVkVfU0VDUDM4NFIxOk1CRURUTFNfTURfQ0FOX1NIQTE6TUJFRFRMU19NRF9DQU5fU0hBMjU2Ci14NTA5X3ZlcmlmeToiZGF0YV9maWxlcy9zZXJ2ZXI1LmNydCI6ImRhdGFfZmlsZXMvdGVzdC1jYTJfY2F0LWZ1dHVyZS1wcmVzZW50LmNydCI6ImRhdGFfZmlsZXMvY3JsLWVjLXNoYTEucGVtIjoiTlVMTCI6MDowOiJjb21wYXQiOiJOVUxMIgorZGVwZW5kc19vbjpNQkVEVExTX1BFTV9QQVJTRV9DOk1CRURUTFNfUEtfQ0FOX0VDRFNBX1ZFUklGWTpNQkVEVExTX0VDUF9IQVZFX1NFQ1AyNTZSMTpNQkVEVExTX0VDUF9IQVZFX1NFQ1AzODRSMTpNQkVEVExTX01EX0NBTl9TSEExOlBTQV9XQU5UX0FMR19TSEFfMjU2Cit4NTA5X3ZlcmlmeToiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvc2VydmVyNS5jcnQiOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy90ZXN0LWNhMl9jYXQtZnV0dXJlLXByZXNlbnQuY3J0IjoiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvY3JsLWVjLXNoYTEucGVtIjoiTlVMTCI6MDowOiJjb21wYXQiOiJOVUxMIgogCiBYNTA5IENSVCB2ZXJpZmljYXRpb24gIzgzICh2YWxpZCBDQSBhbmQgTm90IHlldCB2YWxpZCBDQSkKLWRlcGVuZHNfb246TUJFRFRMU19QRU1fUEFSU0VfQzpNQkVEVExTX1BLX0NBTl9FQ0RTQV9WRVJJRlk6TUJFRFRMU19FQ1BfSEFWRV9TRUNQMjU2UjE6TUJFRFRMU19FQ1BfSEFWRV9TRUNQMzg0UjE6TUJFRFRMU19NRF9DQU5fU0hBMTpNQkVEVExTX01EX0NBTl9TSEEyNTYKLXg1MDlfdmVyaWZ5OiJkYXRhX2ZpbGVzL3NlcnZlcjUuY3J0IjoiZGF0YV9maWxlcy90ZXN0LWNhMl9jYXQtcHJlc2VudC1mdXR1cmUuY3J0IjoiZGF0YV9maWxlcy9jcmwtZWMtc2hhMS5wZW0iOiJOVUxMIjowOjA6ImNvbXBhdCI6Ik5VTEwiCitkZXBlbmRzX29uOk1CRURUTFNfUEVNX1BBUlNFX0M6TUJFRFRMU19QS19DQU5fRUNEU0FfVkVSSUZZOk1CRURUTFNfRUNQX0hBVkVfU0VDUDI1NlIxOk1CRURUTFNfRUNQX0hBVkVfU0VDUDM4NFIxOk1CRURUTFNfTURfQ0FOX1NIQTE6UFNBX1dBTlRfQUxHX1NIQV8yNTYKK3g1MDlfdmVyaWZ5OiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9zZXJ2ZXI1LmNydCI6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3Rlc3QtY2EyX2NhdC1wcmVzZW50LWZ1dHVyZS5jcnQiOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9jcmwtZWMtc2hhMS5wZW0iOiJOVUxMIjowOjA6ImNvbXBhdCI6Ik5VTEwiCiAKIFg1MDkgQ1JUIHZlcmlmaWNhdGlvbiAjODQgKHZhbGlkIENBIGFuZCBOb3QgeWV0IHZhbGlkIENBKQotZGVwZW5kc19vbjpNQkVEVExTX1BFTV9QQVJTRV9DOk1CRURUTFNfUEtfQ0FOX0VDRFNBX1ZFUklGWTpNQkVEVExTX0VDUF9IQVZFX1NFQ1AyNTZSMTpNQkVEVExTX0VDUF9IQVZFX1NFQ1AzODRSMTpNQkVEVExTX01EX0NBTl9TSEExOk1CRURUTFNfTURfQ0FOX1NIQTI1NgoteDUwOV92ZXJpZnk6ImRhdGFfZmlsZXMvc2VydmVyNS5jcnQiOiJkYXRhX2ZpbGVzL3Rlc3QtY2EyX2NhdC1wcmVzZW50LXBhc3QuY3J0IjoiZGF0YV9maWxlcy9jcmwtZWMtc2hhMS5wZW0iOiJOVUxMIjowOjA6ImNvbXBhdCI6Ik5VTEwiCitkZXBlbmRzX29uOk1CRURUTFNfUEVNX1BBUlNFX0M6TUJFRFRMU19QS19DQU5fRUNEU0FfVkVSSUZZOk1CRURUTFNfRUNQX0hBVkVfU0VDUDI1NlIxOk1CRURUTFNfRUNQX0hBVkVfU0VDUDM4NFIxOk1CRURUTFNfTURfQ0FOX1NIQTE6UFNBX1dBTlRfQUxHX1NIQV8yNTYKK3g1MDlfdmVyaWZ5OiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9zZXJ2ZXI1LmNydCI6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3Rlc3QtY2EyX2NhdC1wcmVzZW50LXBhc3QuY3J0IjoiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvY3JsLWVjLXNoYTEucGVtIjoiTlVMTCI6MDowOiJjb21wYXQiOiJOVUxMIgogCiBYNTA5IENSVCB2ZXJpZmljYXRpb24gIzg1IChOb3QgeWV0IHZhbGlkIENBIGFuZCB2YWxpZCBDQSkKLWRlcGVuZHNfb246TUJFRFRMU19QRU1fUEFSU0VfQzpNQkVEVExTX1BLX0NBTl9FQ0RTQV9WRVJJRlk6TUJFRFRMU19FQ1BfSEFWRV9TRUNQMjU2UjE6TUJFRFRMU19FQ1BfSEFWRV9TRUNQMzg0UjE6TUJFRFRMU19NRF9DQU5fU0hBMTpNQkVEVExTX01EX0NBTl9TSEEyNTYKLXg1MDlfdmVyaWZ5OiJkYXRhX2ZpbGVzL3NlcnZlcjUuY3J0IjoiZGF0YV9maWxlcy90ZXN0LWNhMl9jYXQtcGFzdC1wcmVzZW50LmNydCI6ImRhdGFfZmlsZXMvY3JsLWVjLXNoYTEucGVtIjoiTlVMTCI6MDowOiJjb21wYXQiOiJOVUxMIgorZGVwZW5kc19vbjpNQkVEVExTX1BFTV9QQVJTRV9DOk1CRURUTFNfUEtfQ0FOX0VDRFNBX1ZFUklGWTpNQkVEVExTX0VDUF9IQVZFX1NFQ1AyNTZSMTpNQkVEVExTX0VDUF9IQVZFX1NFQ1AzODRSMTpNQkVEVExTX01EX0NBTl9TSEExOlBTQV9XQU5UX0FMR19TSEFfMjU2Cit4NTA5X3ZlcmlmeToiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvc2VydmVyNS5jcnQiOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy90ZXN0LWNhMl9jYXQtcGFzdC1wcmVzZW50LmNydCI6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL2NybC1lYy1zaGExLnBlbSI6Ik5VTEwiOjA6MDoiY29tcGF0IjoiTlVMTCIKIAogWDUwOSBDUlQgdmVyaWZpY2F0aW9uICM4NiAoTm90IHlldCB2YWxpZCBDQSBhbmQgaW52YWxpZCBDQSkKLWRlcGVuZHNfb246TUJFRFRMU19QRU1fUEFSU0VfQzpNQkVEVExTX1BLX0NBTl9FQ0RTQV9WRVJJRlk6TUJFRFRMU19FQ1BfSEFWRV9TRUNQMjU2UjE6TUJFRFRMU19FQ1BfSEFWRV9TRUNQMzg0UjE6TUJFRFRMU19NRF9DQU5fU0hBMTpNQkVEVExTX01EX0NBTl9TSEEyNTY6TUJFRFRMU19IQVZFX1RJTUVfREFURQoteDUwOV92ZXJpZnk6ImRhdGFfZmlsZXMvc2VydmVyNS5jcnQiOiJkYXRhX2ZpbGVzL3Rlc3QtY2EyX2NhdC1mdXR1cmUtaW52YWxpZC5jcnQiOiJkYXRhX2ZpbGVzL2NybC1lYy1zaGExLnBlbSI6Ik5VTEwiOk1CRURUTFNfRVJSX1g1MDlfQ0VSVF9WRVJJRllfRkFJTEVEOk1CRURUTFNfWDUwOV9CQURDRVJUX0ZVVFVSRToiY29tcGF0IjoiTlVMTCIKK2RlcGVuZHNfb246TUJFRFRMU19QRU1fUEFSU0VfQzpNQkVEVExTX1BLX0NBTl9FQ0RTQV9WRVJJRlk6TUJFRFRMU19FQ1BfSEFWRV9TRUNQMjU2UjE6TUJFRFRMU19FQ1BfSEFWRV9TRUNQMzg0UjE6TUJFRFRMU19NRF9DQU5fU0hBMTpQU0FfV0FOVF9BTEdfU0hBXzI1NjpNQkVEVExTX0hBVkVfVElNRV9EQVRFCit4NTA5X3ZlcmlmeToiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvc2VydmVyNS5jcnQiOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy90ZXN0LWNhMl9jYXQtZnV0dXJlLWludmFsaWQuY3J0IjoiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvY3JsLWVjLXNoYTEucGVtIjoiTlVMTCI6TUJFRFRMU19FUlJfWDUwOV9DRVJUX1ZFUklGWV9GQUlMRUQ6TUJFRFRMU19YNTA5X0JBRENFUlRfRlVUVVJFOiJjb21wYXQiOiJOVUxMIgogCiBYNTA5IENSVCB2ZXJpZmljYXRpb24gIzg3IChFeHBpcmVkIENBIGFuZCBpbnZhbGlkIENBKQotZGVwZW5kc19vbjpNQkVEVExTX1BFTV9QQVJTRV9DOk1CRURUTFNfUEtfQ0FOX0VDRFNBX1ZFUklGWTpNQkVEVExTX0VDUF9IQVZFX1NFQ1AyNTZSMTpNQkVEVExTX0VDUF9IQVZFX1NFQ1AzODRSMTpNQkVEVExTX01EX0NBTl9TSEExOk1CRURUTFNfTURfQ0FOX1NIQTI1NjpNQkVEVExTX0hBVkVfVElNRV9EQVRFCi14NTA5X3ZlcmlmeToiZGF0YV9maWxlcy9zZXJ2ZXI1LmNydCI6ImRhdGFfZmlsZXMvdGVzdC1jYTJfY2F0LXBhc3QtaW52YWxpZC5jcnQiOiJkYXRhX2ZpbGVzL2NybC1lYy1zaGExLnBlbSI6Ik5VTEwiOk1CRURUTFNfRVJSX1g1MDlfQ0VSVF9WRVJJRllfRkFJTEVEOk1CRURUTFNfWDUwOV9CQURDRVJUX0VYUElSRUQ6ImNvbXBhdCI6Ik5VTEwiCitkZXBlbmRzX29uOk1CRURUTFNfUEVNX1BBUlNFX0M6TUJFRFRMU19QS19DQU5fRUNEU0FfVkVSSUZZOk1CRURUTFNfRUNQX0hBVkVfU0VDUDI1NlIxOk1CRURUTFNfRUNQX0hBVkVfU0VDUDM4NFIxOk1CRURUTFNfTURfQ0FOX1NIQTE6UFNBX1dBTlRfQUxHX1NIQV8yNTY6TUJFRFRMU19IQVZFX1RJTUVfREFURQoreDUwOV92ZXJpZnk6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3NlcnZlcjUuY3J0IjoiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvdGVzdC1jYTJfY2F0LXBhc3QtaW52YWxpZC5jcnQiOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9jcmwtZWMtc2hhMS5wZW0iOiJOVUxMIjpNQkVEVExTX0VSUl9YNTA5X0NFUlRfVkVSSUZZX0ZBSUxFRDpNQkVEVExTX1g1MDlfQkFEQ0VSVF9FWFBJUkVEOiJjb21wYXQiOiJOVUxMIgogCiBYNTA5IENSVCB2ZXJpZmljYXRpb24gIzg4IChTcHVyaW91cyBjZXJ0IGluIHRoZSBjaGFpbikKLWRlcGVuZHNfb246TUJFRFRMU19QRU1fUEFSU0VfQzpNQkVEVExTX1BLX0NBTl9FQ0RTQV9WRVJJRlk6TUJFRFRMU19FQ1BfSEFWRV9TRUNQMjU2UjE6TUJFRFRMU19FQ1BfSEFWRV9TRUNQMzg0UjE6TUJFRFRMU19NRF9DQU5fU0hBMTpNQkVEVExTX01EX0NBTl9TSEEyNTY6TUJFRFRMU19SU0FfQzpNQkVEVExTX1BLQ1MxX1YxNQoteDUwOV92ZXJpZnk6ImRhdGFfZmlsZXMvc2VydmVyN19zcHVyaW91c19pbnQtY2EuY3J0IjoiZGF0YV9maWxlcy90ZXN0LWNhMi5jcnQiOiJkYXRhX2ZpbGVzL2NybC1lYy1zaGExLnBlbSI6Ik5VTEwiOjA6MDoiY29tcGF0IjoiTlVMTCIKK2RlcGVuZHNfb246TUJFRFRMU19QRU1fUEFSU0VfQzpNQkVEVExTX1BLX0NBTl9FQ0RTQV9WRVJJRlk6TUJFRFRMU19FQ1BfSEFWRV9TRUNQMjU2UjE6TUJFRFRMU19FQ1BfSEFWRV9TRUNQMzg0UjE6TUJFRFRMU19NRF9DQU5fU0hBMTpQU0FfV0FOVF9BTEdfU0hBXzI1NjpNQkVEVExTX1JTQV9DOk1CRURUTFNfUEtDUzFfVjE1Cit4NTA5X3ZlcmlmeToiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvc2VydmVyN19zcHVyaW91c19pbnQtY2EuY3J0IjoiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvdGVzdC1jYTIuY3J0IjoiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvY3JsLWVjLXNoYTEucGVtIjoiTlVMTCI6MDowOiJjb21wYXQiOiJOVUxMIgogCiBYNTA5IENSVCB2ZXJpZmljYXRpb24gIzg5IChTcHVyaW91cyBjZXJ0IGxhdGVyIGluIHRoZSBjaGFpbikKLWRlcGVuZHNfb246TUJFRFRMU19QRU1fUEFSU0VfQzpNQkVEVExTX1BLX0NBTl9FQ0RTQV9WRVJJRlk6TUJFRFRMU19FQ1BfSEFWRV9TRUNQMjU2UjE6TUJFRFRMU19FQ1BfSEFWRV9TRUNQMzg0UjE6TUJFRFRMU19NRF9DQU5fU0hBMTpNQkVEVExTX01EX0NBTl9TSEEyNTY6TUJFRFRMU19SU0FfQzpNQkVEVExTX1BLQ1MxX1YxNQoteDUwOV92ZXJpZnk6ImRhdGFfZmlsZXMvc2VydmVyMTBfaW50M19zcHVyaW91c19pbnQtY2EyLmNydCI6ImRhdGFfZmlsZXMvdGVzdC1jYS5jcnQiOiJkYXRhX2ZpbGVzL2NybC1lYy1zaGExLnBlbSI6Ik5VTEwiOjA6MDoiY29tcGF0IjoiTlVMTCIKK2RlcGVuZHNfb246TUJFRFRMU19QRU1fUEFSU0VfQzpNQkVEVExTX1BLX0NBTl9FQ0RTQV9WRVJJRlk6TUJFRFRMU19FQ1BfSEFWRV9TRUNQMjU2UjE6TUJFRFRMU19FQ1BfSEFWRV9TRUNQMzg0UjE6TUJFRFRMU19NRF9DQU5fU0hBMTpQU0FfV0FOVF9BTEdfU0hBXzI1NjpNQkVEVExTX1JTQV9DOk1CRURUTFNfUEtDUzFfVjE1Cit4NTA5X3ZlcmlmeToiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvc2VydmVyMTBfaW50M19zcHVyaW91c19pbnQtY2EyLmNydCI6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3Rlc3QtY2EuY3J0IjoiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvY3JsLWVjLXNoYTEucGVtIjoiTlVMTCI6MDowOiJjb21wYXQiOiJOVUxMIgogCiBYNTA5IENSVCB2ZXJpZmljYXRpb24gIzkwIChFRSB3aXRoIHNhbWUgbmFtZSBhcyB0cnVzdGVkIHJvb3QpCi1kZXBlbmRzX29uOk1CRURUTFNfUEVNX1BBUlNFX0M6TUJFRFRMU19QS19DQU5fRUNEU0FfVkVSSUZZOk1CRURUTFNfRUNQX0hBVkVfU0VDUDI1NlIxOk1CRURUTFNfTURfQ0FOX1NIQTI1NjpNQkVEVExTX01EX0NBTl9TSEExCi14NTA5X3ZlcmlmeToiZGF0YV9maWxlcy9zZXJ2ZXI1LXNzLWZvcmdlY2EuY3J0IjoiZGF0YV9maWxlcy90ZXN0LWludC1jYTMuY3J0IjoiZGF0YV9maWxlcy9jcmwtZWMtc2hhMS5wZW0iOiJOVUxMIjpNQkVEVExTX0VSUl9YNTA5X0NFUlRfVkVSSUZZX0ZBSUxFRDpNQkVEVExTX1g1MDlfQkFEQ0VSVF9OT1RfVFJVU1RFRDoiIjoiTlVMTCIKK2RlcGVuZHNfb246TUJFRFRMU19QRU1fUEFSU0VfQzpNQkVEVExTX1BLX0NBTl9FQ0RTQV9WRVJJRlk6TUJFRFRMU19FQ1BfSEFWRV9TRUNQMjU2UjE6UFNBX1dBTlRfQUxHX1NIQV8yNTY6TUJFRFRMU19NRF9DQU5fU0hBMQoreDUwOV92ZXJpZnk6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3NlcnZlcjUtc3MtZm9yZ2VjYS5jcnQiOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy90ZXN0LWludC1jYTMuY3J0IjoiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvY3JsLWVjLXNoYTEucGVtIjoiTlVMTCI6TUJFRFRMU19FUlJfWDUwOV9DRVJUX1ZFUklGWV9GQUlMRUQ6TUJFRFRMU19YNTA5X0JBRENFUlRfTk9UX1RSVVNURUQ6IiI6Ik5VTEwiCiAKIFg1MDkgQ1JUIHZlcmlmaWNhdGlvbiAjOTEgKHNhbWUgQ0Egd2l0aCBnb29kIHRoZW4gYmFkIGtleSkKLWRlcGVuZHNfb246TUJFRFRMU19QRU1fUEFSU0VfQzpNQkVEVExTX01EX0NBTl9TSEExOk1CRURUTFNfUlNBX0M6TUJFRFRMU19QS0NTMV9WMTU6TUJFRFRMU19NRF9DQU5fU0hBMjU2Ok1CRURUTFNfUEtfQ0FOX0VDRFNBX1ZFUklGWQoteDUwOV92ZXJpZnk6ImRhdGFfZmlsZXMvc2VydmVyMS5jcnQiOiJkYXRhX2ZpbGVzL3Rlc3QtY2EtZ29vZC1hbHQuY3J0IjoiZGF0YV9maWxlcy9jcmwtZWMtc2hhMjU2LnBlbSI6Ik5VTEwiOjA6MDoiY29tcGF0IjoiTlVMTCIKK2RlcGVuZHNfb246TUJFRFRMU19QRU1fUEFSU0VfQzpNQkVEVExTX01EX0NBTl9TSEExOk1CRURUTFNfUlNBX0M6TUJFRFRMU19QS0NTMV9WMTU6UFNBX1dBTlRfQUxHX1NIQV8yNTY6TUJFRFRMU19QS19DQU5fRUNEU0FfVkVSSUZZCit4NTA5X3ZlcmlmeToiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvc2VydmVyMS5jcnQiOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy90ZXN0LWNhLWdvb2QtYWx0LmNydCI6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL2NybC1lYy1zaGEyNTYucGVtIjoiTlVMTCI6MDowOiJjb21wYXQiOiJOVUxMIgogCiBYNTA5IENSVCB2ZXJpZmljYXRpb24gIzkxIChzYW1lIENBIHdpdGggYmFkIHRoZW4gZ29vZCBrZXkpCi1kZXBlbmRzX29uOk1CRURUTFNfUEVNX1BBUlNFX0M6TUJFRFRMU19NRF9DQU5fU0hBMTpNQkVEVExTX1JTQV9DOk1CRURUTFNfUEtDUzFfVjE1Ok1CRURUTFNfTURfQ0FOX1NIQTI1NjpNQkVEVExTX1BLX0NBTl9FQ0RTQV9WRVJJRlkKLXg1MDlfdmVyaWZ5OiJkYXRhX2ZpbGVzL3NlcnZlcjEuY3J0IjoiZGF0YV9maWxlcy90ZXN0LWNhLWFsdC1nb29kLmNydCI6ImRhdGFfZmlsZXMvY3JsLWVjLXNoYTI1Ni5wZW0iOiJOVUxMIjowOjA6ImNvbXBhdCI6Ik5VTEwiCitkZXBlbmRzX29uOk1CRURUTFNfUEVNX1BBUlNFX0M6TUJFRFRMU19NRF9DQU5fU0hBMTpNQkVEVExTX1JTQV9DOk1CRURUTFNfUEtDUzFfVjE1OlBTQV9XQU5UX0FMR19TSEFfMjU2Ok1CRURUTFNfUEtfQ0FOX0VDRFNBX1ZFUklGWQoreDUwOV92ZXJpZnk6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3NlcnZlcjEuY3J0IjoiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvdGVzdC1jYS1hbHQtZ29vZC5jcnQiOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9jcmwtZWMtc2hhMjU2LnBlbSI6Ik5VTEwiOjA6MDoiY29tcGF0IjoiTlVMTCIKIAogWDUwOSBDUlQgdmVyaWZpY2F0aW9uICM5MiAoYmFkIG5hbWUsIGFsbG93aW5nIGNhbGxiYWNrKQotZGVwZW5kc19vbjpNQkVEVExTX1BFTV9QQVJTRV9DOk1CRURUTFNfUEtfQ0FOX0VDRFNBX1ZFUklGWTpNQkVEVExTX01EX0NBTl9TSEEyNTY6TUJFRFRMU19FQ1BfSEFWRV9TRUNQMjU2UjE6TUJFRFRMU19FQ1BfSEFWRV9TRUNQMzg0UjEKLXg1MDlfdmVyaWZ5OiJkYXRhX2ZpbGVzL3NlcnZlcjUuY3J0IjoiZGF0YV9maWxlcy90ZXN0LWNhMi5jcnQiOiJkYXRhX2ZpbGVzL2NybC1lYy1zaGEyNTYucGVtIjoiZ2xvYmFsaG9zdCI6MDowOiIiOiJ2ZXJpZnlfYWxsIgorZGVwZW5kc19vbjpNQkVEVExTX1BFTV9QQVJTRV9DOk1CRURUTFNfUEtfQ0FOX0VDRFNBX1ZFUklGWTpQU0FfV0FOVF9BTEdfU0hBXzI1NjpNQkVEVExTX0VDUF9IQVZFX1NFQ1AyNTZSMTpNQkVEVExTX0VDUF9IQVZFX1NFQ1AzODRSMQoreDUwOV92ZXJpZnk6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3NlcnZlcjUuY3J0IjoiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvdGVzdC1jYTIuY3J0IjoiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvY3JsLWVjLXNoYTI1Ni5wZW0iOiJnbG9iYWxob3N0IjowOjA6IiI6InZlcmlmeV9hbGwiCiAKIFg1MDkgQ1JUIHZlcmlmaWNhdGlvbiAjOTMgKFN1aXRlIEIgaW52YWxpZCwgRUMgY2VydCwgUlNBIENBKQotZGVwZW5kc19vbjpNQkVEVExTX1BFTV9QQVJTRV9DOk1CRURUTFNfUlNBX0M6TUJFRFRMU19QS19DQU5fRUNEU0FfVkVSSUZZOk1CRURUTFNfRUNQX0hBVkVfU0VDUDE5MlIxOk1CRURUTFNfUEtDUzFfVjE1Ok1CRURUTFNfTURfQ0FOX1NIQTEKLXg1MDlfdmVyaWZ5OiJkYXRhX2ZpbGVzL3NlcnZlcjMuY3J0IjoiZGF0YV9maWxlcy90ZXN0LWNhLmNydCI6ImRhdGFfZmlsZXMvY3JsLnBlbSI6Ik5VTEwiOk1CRURUTFNfRVJSX1g1MDlfQ0VSVF9WRVJJRllfRkFJTEVEOk1CRURUTFNfWDUwOV9CQURDRVJUX0JBRF9NRHxNQkVEVExTX1g1MDlfQkFEQ0VSVF9CQURfUEt8TUJFRFRMU19YNTA5X0JBRENFUlRfQkFEX0tFWXxNQkVEVExTX1g1MDlfQkFEQ1JMX0JBRF9NRHxNQkVEVExTX1g1MDlfQkFEQ1JMX0JBRF9QSzoic3VpdGVfYiI6Ik5VTEwiCitkZXBlbmRzX29uOk1CRURUTFNfUEVNX1BBUlNFX0M6TUJFRFRMU19SU0FfQzpNQkVEVExTX1BLX0NBTl9FQ0RTQV9WRVJJRlk6UFNBX1dBTlRfRUNDX1NFQ1BfUjFfMTkyOk1CRURUTFNfUEtDUzFfVjE1Ok1CRURUTFNfTURfQ0FOX1NIQTEKK3g1MDlfdmVyaWZ5OiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9zZXJ2ZXIzLmNydCI6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3Rlc3QtY2EuY3J0IjoiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvY3JsLnBlbSI6Ik5VTEwiOk1CRURUTFNfRVJSX1g1MDlfQ0VSVF9WRVJJRllfRkFJTEVEOk1CRURUTFNfWDUwOV9CQURDRVJUX0JBRF9NRHxNQkVEVExTX1g1MDlfQkFEQ0VSVF9CQURfUEt8TUJFRFRMU19YNTA5X0JBRENFUlRfQkFEX0tFWXxNQkVEVExTX1g1MDlfQkFEQ1JMX0JBRF9NRHxNQkVEVExTX1g1MDlfQkFEQ1JMX0JBRF9QSzoic3VpdGVfYiI6Ik5VTEwiCiAKIFg1MDkgQ1JUIHZlcmlmaWNhdGlvbiAjOTQgKFN1aXRlIEIgaW52YWxpZCwgUlNBIGNlcnQsIEVDIENBKQotZGVwZW5kc19vbjpNQkVEVExTX1BFTV9QQVJTRV9DOk1CRURUTFNfUlNBX0M6TUJFRFRMU19QS19DQU5fRUNEU0FfVkVSSUZZOk1CRURUTFNfTURfQ0FOX1NIQTI1NjpNQkVEVExTX0VDUF9IQVZFX1NFQ1AyNTZSMTpNQkVEVExTX1BLQ1MxX1YxNTpNQkVEVExTX0VDUF9IQVZFX1NFQ1AzODRSMQoteDUwOV92ZXJpZnk6ImRhdGFfZmlsZXMvc2VydmVyNC5jcnQiOiJkYXRhX2ZpbGVzL3Rlc3QtY2EyLmNydCI6ImRhdGFfZmlsZXMvY3JsLWVjLXNoYTI1Ni5wZW0iOiJOVUxMIjpNQkVEVExTX0VSUl9YNTA5X0NFUlRfVkVSSUZZX0ZBSUxFRDpNQkVEVExTX1g1MDlfQkFEQ0VSVF9CQURfUEs6InN1aXRlX2IiOiJOVUxMIgorZGVwZW5kc19vbjpNQkVEVExTX1BFTV9QQVJTRV9DOk1CRURUTFNfUlNBX0M6TUJFRFRMU19QS19DQU5fRUNEU0FfVkVSSUZZOlBTQV9XQU5UX0FMR19TSEFfMjU2Ok1CRURUTFNfRUNQX0hBVkVfU0VDUDI1NlIxOk1CRURUTFNfUEtDUzFfVjE1Ok1CRURUTFNfRUNQX0hBVkVfU0VDUDM4NFIxCit4NTA5X3ZlcmlmeToiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvc2VydmVyNC5jcnQiOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy90ZXN0LWNhMi5jcnQiOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9jcmwtZWMtc2hhMjU2LnBlbSI6Ik5VTEwiOk1CRURUTFNfRVJSX1g1MDlfQ0VSVF9WRVJJRllfRkFJTEVEOk1CRURUTFNfWDUwOV9CQURDRVJUX0JBRF9QSzoic3VpdGVfYiI6Ik5VTEwiCiAKIFg1MDkgQ1JUIHZlcmlmaWNhdGlvbiAjOTUgKFN1aXRlIEIgVmFsaWQsIEVDIGNlcnQsIEVDIENBKQotZGVwZW5kc19vbjpNQkVEVExTX1BFTV9QQVJTRV9DOk1CRURUTFNfUEtfQ0FOX0VDRFNBX1ZFUklGWTpNQkVEVExTX01EX0NBTl9TSEEyNTY6TUJFRFRMU19FQ1BfSEFWRV9TRUNQMjU2UjE6TUJFRFRMU19FQ1BfSEFWRV9TRUNQMzg0UjEKLXg1MDlfdmVyaWZ5OiJkYXRhX2ZpbGVzL3NlcnZlcjUuY3J0IjoiZGF0YV9maWxlcy90ZXN0LWNhMi5jcnQiOiJkYXRhX2ZpbGVzL2NybC1lYy1zaGEyNTYucGVtIjoiTlVMTCI6MDowOiJzdWl0ZV9iIjoiTlVMTCIKK2RlcGVuZHNfb246TUJFRFRMU19QRU1fUEFSU0VfQzpNQkVEVExTX1BLX0NBTl9FQ0RTQV9WRVJJRlk6UFNBX1dBTlRfQUxHX1NIQV8yNTY6TUJFRFRMU19FQ1BfSEFWRV9TRUNQMjU2UjE6TUJFRFRMU19FQ1BfSEFWRV9TRUNQMzg0UjEKK3g1MDlfdmVyaWZ5OiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9zZXJ2ZXI1LmNydCI6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3Rlc3QtY2EyLmNydCI6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL2NybC1lYy1zaGEyNTYucGVtIjoiTlVMTCI6MDowOiJzdWl0ZV9iIjoiTlVMTCIKIAogWDUwOSBDUlQgdmVyaWZpY2F0aW9uICM5NiAobmV4dCBwcm9maWxlIEludmFsaWQgQ2VydCBTSEEyMjQgRGlnZXN0KQotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyMjQ6TUJFRFRMU19QRU1fUEFSU0VfQzpNQkVEVExTX1JTQV9DOk1CRURUTFNfUEtDUzFfVjE1Ok1CRURUTFNfTURfQ0FOX1NIQTEKLXg1MDlfdmVyaWZ5OiJkYXRhX2ZpbGVzL2NlcnRfc2hhMjI0LmNydCI6ImRhdGFfZmlsZXMvdGVzdC1jYS5jcnQiOiJkYXRhX2ZpbGVzL2NybC5wZW0iOiJOVUxMIjpNQkVEVExTX0VSUl9YNTA5X0NFUlRfVkVSSUZZX0ZBSUxFRDpNQkVEVExTX1g1MDlfQkFEQ0VSVF9CQURfTUR8TUJFRFRMU19YNTA5X0JBRENSTF9CQURfTUQ6Im5leHQiOiJOVUxMIgorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzIyNDpNQkVEVExTX1BFTV9QQVJTRV9DOk1CRURUTFNfUlNBX0M6TUJFRFRMU19QS0NTMV9WMTU6TUJFRFRMU19NRF9DQU5fU0hBMQoreDUwOV92ZXJpZnk6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL2NlcnRfc2hhMjI0LmNydCI6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3Rlc3QtY2EuY3J0IjoiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvY3JsLnBlbSI6Ik5VTEwiOk1CRURUTFNfRVJSX1g1MDlfQ0VSVF9WRVJJRllfRkFJTEVEOk1CRURUTFNfWDUwOV9CQURDRVJUX0JBRF9NRHxNQkVEVExTX1g1MDlfQkFEQ1JMX0JBRF9NRDoibmV4dCI6Ik5VTEwiCiAKIFg1MDkgQ1JUIHZlcmlmaWNhdGlvbiAjOTcgKG5leHQgcHJvZmlsZSBWYWxpZCBDZXJ0IFNIQTI1NiBEaWdlc3QpCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NjpNQkVEVExTX1BFTV9QQVJTRV9DOk1CRURUTFNfUlNBX0M6TUJFRFRMU19QS0NTMV9WMTU6TUJFRFRMU19QS19DQU5fRUNEU0FfVkVSSUZZOk1CRURUTFNfTURfQ0FOX1NIQTEKLXg1MDlfdmVyaWZ5OiJkYXRhX2ZpbGVzL2NlcnRfc2hhMjU2LmNydCI6ImRhdGFfZmlsZXMvdGVzdC1jYS5jcnQiOiJkYXRhX2ZpbGVzL2NybC1lYy1zaGEyNTYucGVtIjoiTlVMTCI6MDowOiJuZXh0IjoiTlVMTCIKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTY6TUJFRFRMU19QRU1fUEFSU0VfQzpNQkVEVExTX1JTQV9DOk1CRURUTFNfUEtDUzFfVjE1Ok1CRURUTFNfUEtfQ0FOX0VDRFNBX1ZFUklGWTpNQkVEVExTX01EX0NBTl9TSEExCit4NTA5X3ZlcmlmeToiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvY2VydF9zaGEyNTYuY3J0IjoiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvdGVzdC1jYS5jcnQiOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9jcmwtZWMtc2hhMjU2LnBlbSI6Ik5VTEwiOjA6MDoibmV4dCI6Ik5VTEwiCiAKIFg1MDkgQ1JUIHZlcmlmaWNhdGlvbiAjOTggKFJldm9rZWQgQ2VydCwgcmV2b2NhdGlvbiBkYXRlIGluIHRoZSBmdXR1cmUsIF93aXRoXyBNQkVEVExTX0hBVkVfVElNRV9EQVRFKQogZGVwZW5kc19vbjpNQkVEVExTX1BFTV9QQVJTRV9DOk1CRURUTFNfTURfQ0FOX1NIQTE6TUJFRFRMU19SU0FfQzpNQkVEVExTX1BLQ1MxX1YxNTpNQkVEVExTX0hBVkVfVElNRV9EQVRFCi14NTA5X3ZlcmlmeToiZGF0YV9maWxlcy9zZXJ2ZXIxLmNydCI6ImRhdGFfZmlsZXMvdGVzdC1jYS5jcnQiOiJkYXRhX2ZpbGVzL2NybC1mdXR1cmVSZXZvY2F0aW9uRGF0ZS5wZW0iOiJOVUxMIjpNQkVEVExTX0VSUl9YNTA5X0NFUlRfVkVSSUZZX0ZBSUxFRDpNQkVEVExTX1g1MDlfQkFEQ0VSVF9SRVZPS0VEfE1CRURUTFNfWDUwOV9CQURDUkxfRlVUVVJFOiJjb21wYXQiOiJOVUxMIgoreDUwOV92ZXJpZnk6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3NlcnZlcjEuY3J0IjoiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvdGVzdC1jYS5jcnQiOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9jcmwtZnV0dXJlUmV2b2NhdGlvbkRhdGUucGVtIjoiTlVMTCI6TUJFRFRMU19FUlJfWDUwOV9DRVJUX1ZFUklGWV9GQUlMRUQ6TUJFRFRMU19YNTA5X0JBRENFUlRfUkVWT0tFRHxNQkVEVExTX1g1MDlfQkFEQ1JMX0ZVVFVSRToiY29tcGF0IjoiTlVMTCIKIAogWDUwOSBDUlQgdmVyaWZpY2F0aW9uICM5OSAoUmV2b2tlZCBDZXJ0LCByZXZvY2F0aW9uIGRhdGUgaW4gdGhlIGZ1dHVyZSwgX3dpdGhvdXRfIE1CRURUTFNfSEFWRV9USU1FX0RBVEUpCiBkZXBlbmRzX29uOk1CRURUTFNfUEVNX1BBUlNFX0M6TUJFRFRMU19NRF9DQU5fU0hBMTpNQkVEVExTX1JTQV9DOk1CRURUTFNfUEtDUzFfVjE1OiFNQkVEVExTX0hBVkVfVElNRV9EQVRFCi14NTA5X3ZlcmlmeToiZGF0YV9maWxlcy9zZXJ2ZXIxLmNydCI6ImRhdGFfZmlsZXMvdGVzdC1jYS5jcnQiOiJkYXRhX2ZpbGVzL2NybC1mdXR1cmVSZXZvY2F0aW9uRGF0ZS5wZW0iOiJOVUxMIjpNQkVEVExTX0VSUl9YNTA5X0NFUlRfVkVSSUZZX0ZBSUxFRDpNQkVEVExTX1g1MDlfQkFEQ0VSVF9SRVZPS0VEOiJjb21wYXQiOiJOVUxMIgoreDUwOV92ZXJpZnk6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3NlcnZlcjEuY3J0IjoiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvdGVzdC1jYS5jcnQiOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9jcmwtZnV0dXJlUmV2b2NhdGlvbkRhdGUucGVtIjoiTlVMTCI6TUJFRFRMU19FUlJfWDUwOV9DRVJUX1ZFUklGWV9GQUlMRUQ6TUJFRFRMU19YNTA5X0JBRENFUlRfUkVWT0tFRDoiY29tcGF0IjoiTlVMTCIKIAogWDUwOSBDUlQgdmVyaWZpY2F0aW9uOiBkb21haW4gaWRlbnRpY2FsIHRvIElQdjQgaW4gU3ViamVjdEFsdE5hbWUKLWRlcGVuZHNfb246TUJFRFRMU19QS19DQU5fRUNEU0FfVkVSSUZZOk1CRURUTFNfTURfQ0FOX1NIQTI1NjpNQkVEVExTX0VDUF9IQVZFX1NFQ1AyNTZSMTpNQkVEVExTX1JTQV9DCi14NTA5X3ZlcmlmeToiZGF0YV9maWxlcy9zZXJ2ZXI1LXRyaWNreS1pcC1zYW4uY3J0LmRlciI6ImRhdGFfZmlsZXMvc2VydmVyNS10cmlja3ktaXAtc2FuLmNydC5kZXIiOiJkYXRhX2ZpbGVzL2NybF9zaGEyNTYucGVtIjoiYWJjZCI6TUJFRFRMU19FUlJfWDUwOV9DRVJUX1ZFUklGWV9GQUlMRUQ6TUJFRFRMU19YNTA5X0JBRENFUlRfQ05fTUlTTUFUQ0g6IiI6Ik5VTEwiCitkZXBlbmRzX29uOk1CRURUTFNfUEtfQ0FOX0VDRFNBX1ZFUklGWTpQU0FfV0FOVF9BTEdfU0hBXzI1NjpNQkVEVExTX0VDUF9IQVZFX1NFQ1AyNTZSMTpNQkVEVExTX1JTQV9DCit4NTA5X3ZlcmlmeToiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvc2VydmVyNS10cmlja3ktaXAtc2FuLmNydC5kZXIiOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9zZXJ2ZXI1LXRyaWNreS1pcC1zYW4uY3J0LmRlciI6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL2NybF9zaGEyNTYucGVtIjoiYWJjZCI6TUJFRFRMU19FUlJfWDUwOV9DRVJUX1ZFUklGWV9GQUlMRUQ6TUJFRFRMU19YNTA5X0JBRENFUlRfQ05fTUlTTUFUQ0g6IiI6Ik5VTEwiCiAKIFg1MDkgQ1JUIHZlcmlmaWNhdGlvbjogZG9tYWluIGlkZW50aWNhbCB0byBJUHY2IGluIFN1YmplY3RBbHROYW1lCi1kZXBlbmRzX29uOk1CRURUTFNfUEtfQ0FOX0VDRFNBX1ZFUklGWTpNQkVEVExTX01EX0NBTl9TSEEyNTY6TUJFRFRMU19FQ1BfSEFWRV9TRUNQMjU2UjE6TUJFRFRMU19SU0FfQwoteDUwOV92ZXJpZnk6ImRhdGFfZmlsZXMvc2VydmVyNS10cmlja3ktaXAtc2FuLmNydC5kZXIiOiJkYXRhX2ZpbGVzL3NlcnZlcjUtdHJpY2t5LWlwLXNhbi5jcnQuZGVyIjoiZGF0YV9maWxlcy9jcmxfc2hhMjU2LnBlbSI6ImFiY2QuZXhhbXBsZS5jb20iOk1CRURUTFNfRVJSX1g1MDlfQ0VSVF9WRVJJRllfRkFJTEVEOk1CRURUTFNfWDUwOV9CQURDRVJUX0NOX01JU01BVENIOiIiOiJOVUxMIgorZGVwZW5kc19vbjpNQkVEVExTX1BLX0NBTl9FQ0RTQV9WRVJJRlk6UFNBX1dBTlRfQUxHX1NIQV8yNTY6TUJFRFRMU19FQ1BfSEFWRV9TRUNQMjU2UjE6TUJFRFRMU19SU0FfQworeDUwOV92ZXJpZnk6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3NlcnZlcjUtdHJpY2t5LWlwLXNhbi5jcnQuZGVyIjoiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvc2VydmVyNS10cmlja3ktaXAtc2FuLmNydC5kZXIiOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9jcmxfc2hhMjU2LnBlbSI6ImFiY2QuZXhhbXBsZS5jb20iOk1CRURUTFNfRVJSX1g1MDlfQ0VSVF9WRVJJRllfRkFJTEVEOk1CRURUTFNfWDUwOV9CQURDRVJUX0NOX01JU01BVENIOiIiOiJOVUxMIgogCiBYNTA5IENSVCB2ZXJpZmljYXRpb246IG1hdGNoaW5nIElQdjQgaW4gU3ViamVjdEFsdE5hbWUKLWRlcGVuZHNfb246TUJFRFRMU19QS19DQU5fRUNEU0FfU09NRTpNQkVEVExTX01EX0NBTl9TSEEyNTY6TUJFRFRMU19FQ1BfSEFWRV9TRUNQMjU2UjE6TUJFRFRMU19SU0FfQwoteDUwOV92ZXJpZnk6ImRhdGFfZmlsZXMvc2VydmVyNS10cmlja3ktaXAtc2FuLmNydC5kZXIiOiJkYXRhX2ZpbGVzL3NlcnZlcjUtdHJpY2t5LWlwLXNhbi5jcnQuZGVyIjoiZGF0YV9maWxlcy9jcmxfc2hhMjU2LnBlbSI6Ijk3Ljk4Ljk5LjEwMCI6MDowOiIiOiJOVUxMIgorZGVwZW5kc19vbjpNQkVEVExTX1BLX0NBTl9FQ0RTQV9TT01FOlBTQV9XQU5UX0FMR19TSEFfMjU2Ok1CRURUTFNfRUNQX0hBVkVfU0VDUDI1NlIxOk1CRURUTFNfUlNBX0MKK3g1MDlfdmVyaWZ5OiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9zZXJ2ZXI1LXRyaWNreS1pcC1zYW4uY3J0LmRlciI6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3NlcnZlcjUtdHJpY2t5LWlwLXNhbi5jcnQuZGVyIjoiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvY3JsX3NoYTI1Ni5wZW0iOiI5Ny45OC45OS4xMDAiOjA6MDoiIjoiTlVMTCIKIAogWDUwOSBDUlQgdmVyaWZpY2F0aW9uOiBtaXNtYXRjaGluZyBJUHY0IGluIFN1YmplY3RBbHROYW1lCi1kZXBlbmRzX29uOk1CRURUTFNfUEtfQ0FOX0VDRFNBX1NPTUU6TUJFRFRMU19NRF9DQU5fU0hBMjU2Ok1CRURUTFNfRUNQX0hBVkVfU0VDUDI1NlIxOk1CRURUTFNfUlNBX0MKLXg1MDlfdmVyaWZ5OiJkYXRhX2ZpbGVzL3NlcnZlcjUtdHJpY2t5LWlwLXNhbi5jcnQuZGVyIjoiZGF0YV9maWxlcy9zZXJ2ZXI1LXRyaWNreS1pcC1zYW4uY3J0LmRlciI6ImRhdGFfZmlsZXMvY3JsX3NoYTI1Ni5wZW0iOiI3LjguOS4xMCI6TUJFRFRMU19FUlJfWDUwOV9DRVJUX1ZFUklGWV9GQUlMRUQ6TUJFRFRMU19YNTA5X0JBRENFUlRfQ05fTUlTTUFUQ0g6IiI6Ik5VTEwiCitkZXBlbmRzX29uOk1CRURUTFNfUEtfQ0FOX0VDRFNBX1NPTUU6UFNBX1dBTlRfQUxHX1NIQV8yNTY6TUJFRFRMU19FQ1BfSEFWRV9TRUNQMjU2UjE6TUJFRFRMU19SU0FfQworeDUwOV92ZXJpZnk6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3NlcnZlcjUtdHJpY2t5LWlwLXNhbi5jcnQuZGVyIjoiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvc2VydmVyNS10cmlja3ktaXAtc2FuLmNydC5kZXIiOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9jcmxfc2hhMjU2LnBlbSI6IjcuOC45LjEwIjpNQkVEVExTX0VSUl9YNTA5X0NFUlRfVkVSSUZZX0ZBSUxFRDpNQkVEVExTX1g1MDlfQkFEQ0VSVF9DTl9NSVNNQVRDSDoiIjoiTlVMTCIKIAogWDUwOSBDUlQgdmVyaWZpY2F0aW9uOiBJUHY0IHdpdGggdHJhaWxpbmcgZGF0YSBpbiBTdWJqZWN0QWx0TmFtZQotZGVwZW5kc19vbjpNQkVEVExTX1BLX0NBTl9FQ0RTQV9TT01FOk1CRURUTFNfTURfQ0FOX1NIQTI1NjpNQkVEVExTX0VDUF9IQVZFX1NFQ1AyNTZSMTpNQkVEVExTX1JTQV9DCi14NTA5X3ZlcmlmeToiZGF0YV9maWxlcy9zZXJ2ZXI1LXRyaWNreS1pcC1zYW4uY3J0LmRlciI6ImRhdGFfZmlsZXMvc2VydmVyNS10cmlja3ktaXAtc2FuLmNydC5kZXIiOiJkYXRhX2ZpbGVzL2NybF9zaGEyNTYucGVtIjoiOTcuOTguOTkuMTAwPyI6TUJFRFRMU19FUlJfWDUwOV9DRVJUX1ZFUklGWV9GQUlMRUQ6TUJFRFRMU19YNTA5X0JBRENFUlRfQ05fTUlTTUFUQ0g6IiI6Ik5VTEwiCitkZXBlbmRzX29uOk1CRURUTFNfUEtfQ0FOX0VDRFNBX1NPTUU6UFNBX1dBTlRfQUxHX1NIQV8yNTY6TUJFRFRMU19FQ1BfSEFWRV9TRUNQMjU2UjE6TUJFRFRMU19SU0FfQworeDUwOV92ZXJpZnk6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3NlcnZlcjUtdHJpY2t5LWlwLXNhbi5jcnQuZGVyIjoiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvc2VydmVyNS10cmlja3ktaXAtc2FuLmNydC5kZXIiOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9jcmxfc2hhMjU2LnBlbSI6Ijk3Ljk4Ljk5LjEwMD8iOk1CRURUTFNfRVJSX1g1MDlfQ0VSVF9WRVJJRllfRkFJTEVEOk1CRURUTFNfWDUwOV9CQURDRVJUX0NOX01JU01BVENIOiIiOiJOVUxMIgogCiBYNTA5IENSVCB2ZXJpZmljYXRpb246IG1hdGNoaW5nIElQdjYgaW4gU3ViamVjdEFsdE5hbWUKLWRlcGVuZHNfb246TUJFRFRMU19QS19DQU5fRUNEU0FfU09NRTpNQkVEVExTX01EX0NBTl9TSEEyNTY6TUJFRFRMU19FQ1BfSEFWRV9TRUNQMjU2UjE6TUJFRFRMU19SU0FfQwoteDUwOV92ZXJpZnk6ImRhdGFfZmlsZXMvc2VydmVyNS10cmlja3ktaXAtc2FuLmNydC5kZXIiOiJkYXRhX2ZpbGVzL3NlcnZlcjUtdHJpY2t5LWlwLXNhbi5jcnQuZGVyIjoiZGF0YV9maWxlcy9jcmxfc2hhMjU2LnBlbSI6IjYxNjJcOjYzNjRcOjJFNjVcOjc4NjFcOjZENzBcOjZDNjVcOjJFNjNcOjZGNkQiOjA6MDoiIjoiTlVMTCIKK2RlcGVuZHNfb246TUJFRFRMU19QS19DQU5fRUNEU0FfU09NRTpQU0FfV0FOVF9BTEdfU0hBXzI1NjpNQkVEVExTX0VDUF9IQVZFX1NFQ1AyNTZSMTpNQkVEVExTX1JTQV9DCit4NTA5X3ZlcmlmeToiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvc2VydmVyNS10cmlja3ktaXAtc2FuLmNydC5kZXIiOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9zZXJ2ZXI1LXRyaWNreS1pcC1zYW4uY3J0LmRlciI6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL2NybF9zaGEyNTYucGVtIjoiNjE2Mlw6NjM2NFw6MkU2NVw6Nzg2MVw6NkQ3MFw6NkM2NVw6MkU2M1w6NkY2RCI6MDowOiIiOiJOVUxMIgogCiBYNTA5IENSVCB2ZXJpZmljYXRpb246IG1pc21hdGNoaW5nIElQdjYgaW4gU3ViamVjdEFsdE5hbWUKLWRlcGVuZHNfb246TUJFRFRMU19QS19DQU5fRUNEU0FfU09NRTpNQkVEVExTX01EX0NBTl9TSEEyNTY6TUJFRFRMU19FQ1BfSEFWRV9TRUNQMjU2UjE6TUJFRFRMU19SU0FfQwoteDUwOV92ZXJpZnk6ImRhdGFfZmlsZXMvc2VydmVyNS10cmlja3ktaXAtc2FuLmNydC5kZXIiOiJkYXRhX2ZpbGVzL3NlcnZlcjUtdHJpY2t5LWlwLXNhbi5jcnQuZGVyIjoiZGF0YV9maWxlcy9jcmxfc2hhMjU2LnBlbSI6IjYxNjJcOjYzNjRcOlw6NkY2RCI6TUJFRFRMU19FUlJfWDUwOV9DRVJUX1ZFUklGWV9GQUlMRUQ6TUJFRFRMU19YNTA5X0JBRENFUlRfQ05fTUlTTUFUQ0g6IiI6Ik5VTEwiCitkZXBlbmRzX29uOk1CRURUTFNfUEtfQ0FOX0VDRFNBX1NPTUU6UFNBX1dBTlRfQUxHX1NIQV8yNTY6TUJFRFRMU19FQ1BfSEFWRV9TRUNQMjU2UjE6TUJFRFRMU19SU0FfQworeDUwOV92ZXJpZnk6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3NlcnZlcjUtdHJpY2t5LWlwLXNhbi5jcnQuZGVyIjoiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvc2VydmVyNS10cmlja3ktaXAtc2FuLmNydC5kZXIiOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9jcmxfc2hhMjU2LnBlbSI6IjYxNjJcOjYzNjRcOlw6NkY2RCI6TUJFRFRMU19FUlJfWDUwOV9DRVJUX1ZFUklGWV9GQUlMRUQ6TUJFRFRMU19YNTA5X0JBRENFUlRfQ05fTUlTTUFUQ0g6IiI6Ik5VTEwiCiAKIFg1MDkgQ1JUIHZlcmlmaWNhdGlvbjogbWF0Y2hpbmcgVVJJIGluIFN1YmplY3RBbHROYW1lCi1kZXBlbmRzX29uOk1CRURUTFNfUEVNX1BBUlNFX0M6TUJFRFRMU19QS19DQU5fRUNEU0FfU09NRTpNQkVEVExTX01EX0NBTl9TSEEyNTY6TUJFRFRMU19FQ1BfSEFWRV9TRUNQMjU2UjE6TUJFRFRMU19SU0FfQwoteDUwOV92ZXJpZnk6ImRhdGFfZmlsZXMvcnNhX3NpbmdsZV9zYW5fdXJpLmNydC5kZXIiOiJkYXRhX2ZpbGVzL3JzYV9zaW5nbGVfc2FuX3VyaS5jcnQuZGVyIjoiZGF0YV9maWxlcy9jcmxfc2hhMjU2LnBlbSI6InVyblw6ZXhhbXBsZS5jb21cOjVmZjQwZjc4LTkyMTAtNDk0Zi04MjA2LWMyYzA4MmYwNjA5YyI6MDowOiIiOiJOVUxMIgorZGVwZW5kc19vbjpNQkVEVExTX1BFTV9QQVJTRV9DOk1CRURUTFNfUEtfQ0FOX0VDRFNBX1NPTUU6UFNBX1dBTlRfQUxHX1NIQV8yNTY6TUJFRFRMU19FQ1BfSEFWRV9TRUNQMjU2UjE6TUJFRFRMU19SU0FfQworeDUwOV92ZXJpZnk6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3JzYV9zaW5nbGVfc2FuX3VyaS5jcnQuZGVyIjoiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvcnNhX3NpbmdsZV9zYW5fdXJpLmNydC5kZXIiOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9jcmxfc2hhMjU2LnBlbSI6InVyblw6ZXhhbXBsZS5jb21cOjVmZjQwZjc4LTkyMTAtNDk0Zi04MjA2LWMyYzA4MmYwNjA5YyI6MDowOiIiOiJOVUxMIgogCiBYNTA5IENSVCB2ZXJpZmljYXRpb246IFVSSSB3aXRoIHRyYWlsaW5nIGRhdGEgaW4gU3ViamVjdEFsdE5hbWUKLWRlcGVuZHNfb246TUJFRFRMU19QRU1fUEFSU0VfQzpNQkVEVExTX1BLX0NBTl9FQ0RTQV9TT01FOk1CRURUTFNfTURfQ0FOX1NIQTI1NjpNQkVEVExTX0VDUF9IQVZFX1NFQ1AyNTZSMTpNQkVEVExTX1JTQV9DCi14NTA5X3ZlcmlmeToiZGF0YV9maWxlcy9yc2Ffc2luZ2xlX3Nhbl91cmkuY3J0LmRlciI6ImRhdGFfZmlsZXMvcnNhX3NpbmdsZV9zYW5fdXJpLmNydC5kZXIiOiJkYXRhX2ZpbGVzL2NybF9zaGEyNTYucGVtIjoidXJuXDpleGFtcGxlLmNvbVw6NWZmNDBmNzgtOTIxMC00OTRmLTgyMDYtYzJjMDgyZjA2MDljeiI6TUJFRFRMU19FUlJfWDUwOV9DRVJUX1ZFUklGWV9GQUlMRUQ6TUJFRFRMU19YNTA5X0JBRENFUlRfQ05fTUlTTUFUQ0g6IiI6Ik5VTEwiCitkZXBlbmRzX29uOk1CRURUTFNfUEVNX1BBUlNFX0M6TUJFRFRMU19QS19DQU5fRUNEU0FfU09NRTpQU0FfV0FOVF9BTEdfU0hBXzI1NjpNQkVEVExTX0VDUF9IQVZFX1NFQ1AyNTZSMTpNQkVEVExTX1JTQV9DCit4NTA5X3ZlcmlmeToiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvcnNhX3NpbmdsZV9zYW5fdXJpLmNydC5kZXIiOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9yc2Ffc2luZ2xlX3Nhbl91cmkuY3J0LmRlciI6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL2NybF9zaGEyNTYucGVtIjoidXJuXDpleGFtcGxlLmNvbVw6NWZmNDBmNzgtOTIxMC00OTRmLTgyMDYtYzJjMDgyZjA2MDljeiI6TUJFRFRMU19FUlJfWDUwOV9DRVJUX1ZFUklGWV9GQUlMRUQ6TUJFRFRMU19YNTA5X0JBRENFUlRfQ05fTUlTTUFUQ0g6IiI6Ik5VTEwiCiAKIFg1MDkgQ1JUIHZlcmlmaWNhdGlvbjogVVJJIHdpdGggcHJlY2VkaW5nIGRhdGEgaW4gU3ViamVjdEFsdE5hbWUKLWRlcGVuZHNfb246TUJFRFRMU19QRU1fUEFSU0VfQzpNQkVEVExTX1BLX0NBTl9FQ0RTQV9TT01FOk1CRURUTFNfTURfQ0FOX1NIQTI1NjpNQkVEVExTX0VDUF9IQVZFX1NFQ1AyNTZSMTpNQkVEVExTX1JTQV9DCi14NTA5X3ZlcmlmeToiZGF0YV9maWxlcy9yc2Ffc2luZ2xlX3Nhbl91cmkuY3J0LmRlciI6ImRhdGFfZmlsZXMvcnNhX3NpbmdsZV9zYW5fdXJpLmNydC5kZXIiOiJkYXRhX2ZpbGVzL2NybF9zaGEyNTYucGVtIjoienVyblw6ZXhhbXBsZS5jb21cOjVmZjQwZjc4LTkyMTAtNDk0Zi04MjA2LWMyYzA4MmYwNjA5YyI6TUJFRFRMU19FUlJfWDUwOV9DRVJUX1ZFUklGWV9GQUlMRUQ6TUJFRFRMU19YNTA5X0JBRENFUlRfQ05fTUlTTUFUQ0g6IiI6Ik5VTEwiCitkZXBlbmRzX29uOk1CRURUTFNfUEVNX1BBUlNFX0M6TUJFRFRMU19QS19DQU5fRUNEU0FfU09NRTpQU0FfV0FOVF9BTEdfU0hBXzI1NjpNQkVEVExTX0VDUF9IQVZFX1NFQ1AyNTZSMTpNQkVEVExTX1JTQV9DCit4NTA5X3ZlcmlmeToiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvcnNhX3NpbmdsZV9zYW5fdXJpLmNydC5kZXIiOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9yc2Ffc2luZ2xlX3Nhbl91cmkuY3J0LmRlciI6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL2NybF9zaGEyNTYucGVtIjoienVyblw6ZXhhbXBsZS5jb21cOjVmZjQwZjc4LTkyMTAtNDk0Zi04MjA2LWMyYzA4MmYwNjA5YyI6TUJFRFRMU19FUlJfWDUwOV9DRVJUX1ZFUklGWV9GQUlMRUQ6TUJFRFRMU19YNTA5X0JBRENFUlRfQ05fTUlTTUFUQ0g6IiI6Ik5VTEwiCiAKIFg1MDkgQ1JUIHZlcmlmaWNhdGlvbjogVVJJIHdpdGggYmFkIGRhdGEgaW4gU3ViamVjdEFsdE5hbWUKLWRlcGVuZHNfb246TUJFRFRMU19QRU1fUEFSU0VfQzpNQkVEVExTX1BLX0NBTl9FQ0RTQV9TT01FOk1CRURUTFNfTURfQ0FOX1NIQTI1NjpNQkVEVExTX0VDUF9IQVZFX1NFQ1AyNTZSMTpNQkVEVExTX1JTQV9DCi14NTA5X3ZlcmlmeToiZGF0YV9maWxlcy9yc2Ffc2luZ2xlX3Nhbl91cmkuY3J0LmRlciI6ImRhdGFfZmlsZXMvcnNhX3NpbmdsZV9zYW5fdXJpLmNydC5kZXIiOiJkYXRhX2ZpbGVzL2NybF9zaGEyNTYucGVtIjoiYmFkXDpleGFtcGxlLmNvbVw6NWZmNDBmNzgtOTIxMC00OTRmLTgyMDYtYzJjMDgyZjA2MDljIjpNQkVEVExTX0VSUl9YNTA5X0NFUlRfVkVSSUZZX0ZBSUxFRDpNQkVEVExTX1g1MDlfQkFEQ0VSVF9DTl9NSVNNQVRDSDoiIjoiTlVMTCIKK2RlcGVuZHNfb246TUJFRFRMU19QRU1fUEFSU0VfQzpNQkVEVExTX1BLX0NBTl9FQ0RTQV9TT01FOlBTQV9XQU5UX0FMR19TSEFfMjU2Ok1CRURUTFNfRUNQX0hBVkVfU0VDUDI1NlIxOk1CRURUTFNfUlNBX0MKK3g1MDlfdmVyaWZ5OiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9yc2Ffc2luZ2xlX3Nhbl91cmkuY3J0LmRlciI6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3JzYV9zaW5nbGVfc2FuX3VyaS5jcnQuZGVyIjoiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvY3JsX3NoYTI1Ni5wZW0iOiJiYWRcOmV4YW1wbGUuY29tXDo1ZmY0MGY3OC05MjEwLTQ5NGYtODIwNi1jMmMwODJmMDYwOWMiOk1CRURUTFNfRVJSX1g1MDlfQ0VSVF9WRVJJRllfRkFJTEVEOk1CRURUTFNfWDUwOV9CQURDRVJUX0NOX01JU01BVENIOiIiOiJOVUxMIgogCiBYNTA5IENSVCBwYXJzZSBDTjogSVB2NCB2YWxpZCBhZGRyZXNzCiB4NTA5X2NydF9wYXJzZV9jbl9pbmV0X3B0b246IjEwLjEwLjEwLjEwIjoiMEEwQTBBMEEiOjQKQEAgLTExODAsOTEgKzExODAsOTEgQEAKIAogWDUwOSBDUlQgdmVyaWZpY2F0aW9uIHdpdGggY2EgY2FsbGJhY2s6IGZhaWx1cmUKIGRlcGVuZHNfb246TUJFRFRMU19QRU1fUEFSU0VfQzpNQkVEVExTX01EX0NBTl9TSEExOk1CRURUTFNfUlNBX0M6TUJFRFRMU19QS0NTMV9WMTU6TUJFRFRMU19YNTA5X1RSVVNURURfQ0VSVElGSUNBVEVfQ0FMTEJBQ0sKLXg1MDlfdmVyaWZ5X2NhX2NiX2ZhaWx1cmU6ImRhdGFfZmlsZXMvc2VydmVyMS5jcnQiOiJkYXRhX2ZpbGVzL3Rlc3QtY2EuY3J0IjoiTlVMTCI6TUJFRFRMU19FUlJfWDUwOV9GQVRBTF9FUlJPUgoreDUwOV92ZXJpZnlfY2FfY2JfZmFpbHVyZToiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvc2VydmVyMS5jcnQiOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy90ZXN0LWNhLmNydCI6Ik5VTEwiOk1CRURUTFNfRVJSX1g1MDlfRkFUQUxfRVJST1IKIAogWDUwOSBDUlQgdmVyaWZpY2F0aW9uIGNhbGxiYWNrOiBiYWQgbmFtZQotZGVwZW5kc19vbjpNQkVEVExTX1BFTV9QQVJTRV9DOk1CRURUTFNfUEtfQ0FOX0VDRFNBX1ZFUklGWTpNQkVEVExTX01EX0NBTl9TSEEyNTY6TUJFRFRMU19FQ1BfSEFWRV9TRUNQMjU2UjE6TUJFRFRMU19FQ1BfSEFWRV9TRUNQMzg0UjEKLXg1MDlfdmVyaWZ5X2NhbGxiYWNrOiJkYXRhX2ZpbGVzL3NlcnZlcjUuY3J0IjoiZGF0YV9maWxlcy90ZXN0LWNhMi5jcnQiOiJnbG9iYWxob3N0IjpNQkVEVExTX0VSUl9YNTA5X0NFUlRfVkVSSUZZX0ZBSUxFRDoiZGVwdGggMSAtIHNlcmlhbCBDMVw6NDNcOkUyXDo3RVw6NjJcOjQzXDpDQ1w6RTggLSBzdWJqZWN0IEM9TkwsIE89UG9sYXJTU0wsIENOPVBvbGFyc3NsIFRlc3QgRUMgQ0EgLSBmbGFncyAweDAwMDAwMDAwXG5kZXB0aCAwIC0gc2VyaWFsIDA5IC0gc3ViamVjdCBDPU5MLCBPPVBvbGFyU1NMLCBDTj1sb2NhbGhvc3QgLSBmbGFncyAweDAwMDAwMDA0XG4iCitkZXBlbmRzX29uOk1CRURUTFNfUEVNX1BBUlNFX0M6TUJFRFRMU19QS19DQU5fRUNEU0FfVkVSSUZZOlBTQV9XQU5UX0FMR19TSEFfMjU2Ok1CRURUTFNfRUNQX0hBVkVfU0VDUDI1NlIxOk1CRURUTFNfRUNQX0hBVkVfU0VDUDM4NFIxCit4NTA5X3ZlcmlmeV9jYWxsYmFjazoiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvc2VydmVyNS5jcnQiOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy90ZXN0LWNhMi5jcnQiOiJnbG9iYWxob3N0IjpNQkVEVExTX0VSUl9YNTA5X0NFUlRfVkVSSUZZX0ZBSUxFRDoiZGVwdGggMSAtIHNlcmlhbCBDMVw6NDNcOkUyXDo3RVw6NjJcOjQzXDpDQ1w6RTggLSBzdWJqZWN0IEM9TkwsIE89UG9sYXJTU0wsIENOPVBvbGFyc3NsIFRlc3QgRUMgQ0EgLSBmbGFncyAweDAwMDAwMDAwXG5kZXB0aCAwIC0gc2VyaWFsIDA5IC0gc3ViamVjdCBDPU5MLCBPPVBvbGFyU1NMLCBDTj1sb2NhbGhvc3QgLSBmbGFncyAweDAwMDAwMDA0XG4iCiAKIFg1MDkgQ1JUIHZlcmlmaWNhdGlvbiBjYWxsYmFjazogdHJ1c3RlZCBFRSBjZXJ0Ci1kZXBlbmRzX29uOk1CRURUTFNfUEVNX1BBUlNFX0M6TUJFRFRMU19QS19DQU5fRUNEU0FfVkVSSUZZOk1CRURUTFNfTURfQ0FOX1NIQTI1NjpNQkVEVExTX0VDUF9IQVZFX1NFQ1AyNTZSMQoteDUwOV92ZXJpZnlfY2FsbGJhY2s6ImRhdGFfZmlsZXMvc2VydmVyNS1zZWxmc2lnbmVkLmNydCI6ImRhdGFfZmlsZXMvc2VydmVyNS1zZWxmc2lnbmVkLmNydCI6Ik5VTEwiOjA6ImRlcHRoIDAgLSBzZXJpYWwgNTNcOkEyXDpDQlw6NEJcOjEyXDo0RVw6QURcOjgzXDo3RFw6QThcOjk0XDpCMiAtIHN1YmplY3QgQ049c2VsZnNpZ25lZCwgT1U9dGVzdGluZywgTz1Qb2xhclNTTCwgQz1OTCAtIGZsYWdzIDB4MDAwMDAwMDBcbiIKK2RlcGVuZHNfb246TUJFRFRMU19QRU1fUEFSU0VfQzpNQkVEVExTX1BLX0NBTl9FQ0RTQV9WRVJJRlk6UFNBX1dBTlRfQUxHX1NIQV8yNTY6TUJFRFRMU19FQ1BfSEFWRV9TRUNQMjU2UjEKK3g1MDlfdmVyaWZ5X2NhbGxiYWNrOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9zZXJ2ZXI1LXNlbGZzaWduZWQuY3J0IjoiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvc2VydmVyNS1zZWxmc2lnbmVkLmNydCI6Ik5VTEwiOjA6ImRlcHRoIDAgLSBzZXJpYWwgNTNcOkEyXDpDQlw6NEJcOjEyXDo0RVw6QURcOjgzXDo3RFw6QThcOjk0XDpCMiAtIHN1YmplY3QgQ049c2VsZnNpZ25lZCwgT1U9dGVzdGluZywgTz1Qb2xhclNTTCwgQz1OTCAtIGZsYWdzIDB4MDAwMDAwMDBcbiIKIAogWDUwOSBDUlQgdmVyaWZpY2F0aW9uIGNhbGxiYWNrOiB0cnVzdGVkIEVFIGNlcnQsIGV4cGlyZWQKLWRlcGVuZHNfb246TUJFRFRMU19QRU1fUEFSU0VfQzpNQkVEVExTX1BLX0NBTl9FQ0RTQV9WRVJJRlk6TUJFRFRMU19NRF9DQU5fU0hBMjU2Ok1CRURUTFNfRUNQX0hBVkVfU0VDUDI1NlIxOk1CRURUTFNfSEFWRV9USU1FX0RBVEUKLXg1MDlfdmVyaWZ5X2NhbGxiYWNrOiJkYXRhX2ZpbGVzL3NlcnZlcjUtc3MtZXhwaXJlZC5jcnQiOiJkYXRhX2ZpbGVzL3NlcnZlcjUtc3MtZXhwaXJlZC5jcnQiOiJOVUxMIjpNQkVEVExTX0VSUl9YNTA5X0NFUlRfVkVSSUZZX0ZBSUxFRDoiZGVwdGggMCAtIHNlcmlhbCBEOFw6NjRcOjYxXDowNVw6RTNcOkEzXDpDRFw6NzggLSBzdWJqZWN0IEM9VUssIE89bWJlZCBUTFMsIE9VPXRlc3RzdWl0ZSwgQ049bG9jYWxob3N0IC0gZmxhZ3MgMHgwMDAwMDAwMVxuIgorZGVwZW5kc19vbjpNQkVEVExTX1BFTV9QQVJTRV9DOk1CRURUTFNfUEtfQ0FOX0VDRFNBX1ZFUklGWTpQU0FfV0FOVF9BTEdfU0hBXzI1NjpNQkVEVExTX0VDUF9IQVZFX1NFQ1AyNTZSMTpNQkVEVExTX0hBVkVfVElNRV9EQVRFCit4NTA5X3ZlcmlmeV9jYWxsYmFjazoiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvc2VydmVyNS1zcy1leHBpcmVkLmNydCI6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3NlcnZlcjUtc3MtZXhwaXJlZC5jcnQiOiJOVUxMIjpNQkVEVExTX0VSUl9YNTA5X0NFUlRfVkVSSUZZX0ZBSUxFRDoiZGVwdGggMCAtIHNlcmlhbCBEOFw6NjRcOjYxXDowNVw6RTNcOkEzXDpDRFw6NzggLSBzdWJqZWN0IEM9VUssIE89bWJlZCBUTFMsIE9VPXRlc3RzdWl0ZSwgQ049bG9jYWxob3N0IC0gZmxhZ3MgMHgwMDAwMDAwMVxuIgogCiBYNTA5IENSVCB2ZXJpZmljYXRpb24gY2FsbGJhY2s6IHNpbXBsZQogZGVwZW5kc19vbjpNQkVEVExTX1BFTV9QQVJTRV9DOk1CRURUTFNfTURfQ0FOX1NIQTE6TUJFRFRMU19SU0FfQzpNQkVEVExTX1BLQ1MxX1YxNQoteDUwOV92ZXJpZnlfY2FsbGJhY2s6ImRhdGFfZmlsZXMvc2VydmVyMS5jcnQiOiJkYXRhX2ZpbGVzL3Rlc3QtY2EuY3J0IjoiTlVMTCI6MDoiZGVwdGggMSAtIHNlcmlhbCAwMyAtIHN1YmplY3QgQz1OTCwgTz1Qb2xhclNTTCwgQ049UG9sYXJTU0wgVGVzdCBDQSAtIGZsYWdzIDB4MDAwMDAwMDBcbmRlcHRoIDAgLSBzZXJpYWwgMDEgLSBzdWJqZWN0IEM9TkwsIE89UG9sYXJTU0wsIENOPVBvbGFyU1NMIFNlcnZlciAxIC0gZmxhZ3MgMHgwMDAwMDAwMFxuIgoreDUwOV92ZXJpZnlfY2FsbGJhY2s6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3NlcnZlcjEuY3J0IjoiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvdGVzdC1jYS5jcnQiOiJOVUxMIjowOiJkZXB0aCAxIC0gc2VyaWFsIDAzIC0gc3ViamVjdCBDPU5MLCBPPVBvbGFyU1NMLCBDTj1Qb2xhclNTTCBUZXN0IENBIC0gZmxhZ3MgMHgwMDAwMDAwMFxuZGVwdGggMCAtIHNlcmlhbCAwMSAtIHN1YmplY3QgQz1OTCwgTz1Qb2xhclNTTCwgQ049UG9sYXJTU0wgU2VydmVyIDEgLSBmbGFncyAweDAwMDAwMDAwXG4iCiAKIFg1MDkgQ1JUIHZlcmlmaWNhdGlvbiBjYWxsYmFjazogc2ltcGxlLCBFRSBleHBpcmVkCi1kZXBlbmRzX29uOk1CRURUTFNfUEVNX1BBUlNFX0M6TUJFRFRMU19NRF9DQU5fU0hBMjU2Ok1CRURUTFNfUEtfQ0FOX0VDRFNBX1ZFUklGWTpNQkVEVExTX0VDUF9IQVZFX1NFQ1AyNTZSMTpNQkVEVExTX0VDUF9IQVZFX1NFQ1AzODRSMTpNQkVEVExTX01EX0NBTl9TSEExOk1CRURUTFNfSEFWRV9USU1FX0RBVEUKLXg1MDlfdmVyaWZ5X2NhbGxiYWNrOiJkYXRhX2ZpbGVzL3NlcnZlcjUtZXhwaXJlZC5jcnQiOiJkYXRhX2ZpbGVzL3Rlc3QtY2EyLmNydCI6Ik5VTEwiOk1CRURUTFNfRVJSX1g1MDlfQ0VSVF9WRVJJRllfRkFJTEVEOiJkZXB0aCAxIC0gc2VyaWFsIEMxXDo0M1w6RTJcOjdFXDo2Mlw6NDNcOkNDXDpFOCAtIHN1YmplY3QgQz1OTCwgTz1Qb2xhclNTTCwgQ049UG9sYXJzc2wgVGVzdCBFQyBDQSAtIGZsYWdzIDB4MDAwMDAwMDBcbmRlcHRoIDAgLSBzZXJpYWwgMUUgLSBzdWJqZWN0IEM9TkwsIE89UG9sYXJTU0wsIENOPWxvY2FsaG9zdCAtIGZsYWdzIDB4MDAwMDAwMDFcbiIKK2RlcGVuZHNfb246TUJFRFRMU19QRU1fUEFSU0VfQzpQU0FfV0FOVF9BTEdfU0hBXzI1NjpNQkVEVExTX1BLX0NBTl9FQ0RTQV9WRVJJRlk6TUJFRFRMU19FQ1BfSEFWRV9TRUNQMjU2UjE6TUJFRFRMU19FQ1BfSEFWRV9TRUNQMzg0UjE6TUJFRFRMU19NRF9DQU5fU0hBMTpNQkVEVExTX0hBVkVfVElNRV9EQVRFCit4NTA5X3ZlcmlmeV9jYWxsYmFjazoiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvc2VydmVyNS1leHBpcmVkLmNydCI6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3Rlc3QtY2EyLmNydCI6Ik5VTEwiOk1CRURUTFNfRVJSX1g1MDlfQ0VSVF9WRVJJRllfRkFJTEVEOiJkZXB0aCAxIC0gc2VyaWFsIEMxXDo0M1w6RTJcOjdFXDo2Mlw6NDNcOkNDXDpFOCAtIHN1YmplY3QgQz1OTCwgTz1Qb2xhclNTTCwgQ049UG9sYXJzc2wgVGVzdCBFQyBDQSAtIGZsYWdzIDB4MDAwMDAwMDBcbmRlcHRoIDAgLSBzZXJpYWwgMUUgLSBzdWJqZWN0IEM9TkwsIE89UG9sYXJTU0wsIENOPWxvY2FsaG9zdCAtIGZsYWdzIDB4MDAwMDAwMDFcbiIKIAogWDUwOSBDUlQgdmVyaWZpY2F0aW9uIGNhbGxiYWNrOiBzaW1wbGUsIHJvb3QgZXhwaXJlZAotZGVwZW5kc19vbjpNQkVEVExTX1BFTV9QQVJTRV9DOk1CRURUTFNfTURfQ0FOX1NIQTI1NjpNQkVEVExTX1BLX0NBTl9FQ0RTQV9WRVJJRlk6TUJFRFRMU19FQ1BfSEFWRV9TRUNQMjU2UjE6TUJFRFRMU19FQ1BfSEFWRV9TRUNQMzg0UjE6TUJFRFRMU19NRF9DQU5fU0hBMTpNQkVEVExTX0hBVkVfVElNRV9EQVRFCi14NTA5X3ZlcmlmeV9jYWxsYmFjazoiZGF0YV9maWxlcy9zZXJ2ZXI1LmNydCI6ImRhdGFfZmlsZXMvdGVzdC1jYTItZXhwaXJlZC5jcnQiOiJOVUxMIjpNQkVEVExTX0VSUl9YNTA5X0NFUlRfVkVSSUZZX0ZBSUxFRDoiZGVwdGggMSAtIHNlcmlhbCAwMSAtIHN1YmplY3QgQz1OTCwgTz1Qb2xhclNTTCwgQ049UG9sYXJzc2wgVGVzdCBFQyBDQSAtIGZsYWdzIDB4MDAwMDAwMDFcbmRlcHRoIDAgLSBzZXJpYWwgMDkgLSBzdWJqZWN0IEM9TkwsIE89UG9sYXJTU0wsIENOPWxvY2FsaG9zdCAtIGZsYWdzIDB4MDAwMDAwMDBcbiIKK2RlcGVuZHNfb246TUJFRFRMU19QRU1fUEFSU0VfQzpQU0FfV0FOVF9BTEdfU0hBXzI1NjpNQkVEVExTX1BLX0NBTl9FQ0RTQV9WRVJJRlk6TUJFRFRMU19FQ1BfSEFWRV9TRUNQMjU2UjE6TUJFRFRMU19FQ1BfSEFWRV9TRUNQMzg0UjE6TUJFRFRMU19NRF9DQU5fU0hBMTpNQkVEVExTX0hBVkVfVElNRV9EQVRFCit4NTA5X3ZlcmlmeV9jYWxsYmFjazoiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvc2VydmVyNS5jcnQiOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy90ZXN0LWNhMi1leHBpcmVkLmNydCI6Ik5VTEwiOk1CRURUTFNfRVJSX1g1MDlfQ0VSVF9WRVJJRllfRkFJTEVEOiJkZXB0aCAxIC0gc2VyaWFsIDAxIC0gc3ViamVjdCBDPU5MLCBPPVBvbGFyU1NMLCBDTj1Qb2xhcnNzbCBUZXN0IEVDIENBIC0gZmxhZ3MgMHgwMDAwMDAwMVxuZGVwdGggMCAtIHNlcmlhbCAwOSAtIHN1YmplY3QgQz1OTCwgTz1Qb2xhclNTTCwgQ049bG9jYWxob3N0IC0gZmxhZ3MgMHgwMDAwMDAwMFxuIgogCiBYNTA5IENSVCB2ZXJpZmljYXRpb24gY2FsbGJhY2s6IHR3byB0cnVzdGVkIHJvb3RzCi1kZXBlbmRzX29uOk1CRURUTFNfUEVNX1BBUlNFX0M6TUJFRFRMU19NRF9DQU5fU0hBMTpNQkVEVExTX1JTQV9DOk1CRURUTFNfUEtDUzFfVjE1Ok1CRURUTFNfUEtfQ0FOX0VDRFNBX1ZFUklGWTpNQkVEVExTX0VDUF9IQVZFX1NFQ1AzODRSMTpNQkVEVExTX01EX0NBTl9TSEEyNTYKLXg1MDlfdmVyaWZ5X2NhbGxiYWNrOiJkYXRhX2ZpbGVzL3NlcnZlcjEuY3J0IjoiZGF0YV9maWxlcy90ZXN0LWNhX2NhdDEyLmNydCI6Ik5VTEwiOjA6ImRlcHRoIDEgLSBzZXJpYWwgMDMgLSBzdWJqZWN0IEM9TkwsIE89UG9sYXJTU0wsIENOPVBvbGFyU1NMIFRlc3QgQ0EgLSBmbGFncyAweDAwMDAwMDAwXG5kZXB0aCAwIC0gc2VyaWFsIDAxIC0gc3ViamVjdCBDPU5MLCBPPVBvbGFyU1NMLCBDTj1Qb2xhclNTTCBTZXJ2ZXIgMSAtIGZsYWdzIDB4MDAwMDAwMDBcbiIKK2RlcGVuZHNfb246TUJFRFRMU19QRU1fUEFSU0VfQzpNQkVEVExTX01EX0NBTl9TSEExOk1CRURUTFNfUlNBX0M6TUJFRFRMU19QS0NTMV9WMTU6TUJFRFRMU19QS19DQU5fRUNEU0FfVkVSSUZZOk1CRURUTFNfRUNQX0hBVkVfU0VDUDM4NFIxOlBTQV9XQU5UX0FMR19TSEFfMjU2Cit4NTA5X3ZlcmlmeV9jYWxsYmFjazoiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvc2VydmVyMS5jcnQiOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy90ZXN0LWNhX2NhdDEyLmNydCI6Ik5VTEwiOjA6ImRlcHRoIDEgLSBzZXJpYWwgMDMgLSBzdWJqZWN0IEM9TkwsIE89UG9sYXJTU0wsIENOPVBvbGFyU1NMIFRlc3QgQ0EgLSBmbGFncyAweDAwMDAwMDAwXG5kZXB0aCAwIC0gc2VyaWFsIDAxIC0gc3ViamVjdCBDPU5MLCBPPVBvbGFyU1NMLCBDTj1Qb2xhclNTTCBTZXJ2ZXIgMSAtIGZsYWdzIDB4MDAwMDAwMDBcbiIKIAogWDUwOSBDUlQgdmVyaWZpY2F0aW9uIGNhbGxiYWNrOiB0d28gdHJ1c3RlZCByb290cywgcmV2ZXJzZWQgb3JkZXIKLWRlcGVuZHNfb246TUJFRFRMU19QRU1fUEFSU0VfQzpNQkVEVExTX01EX0NBTl9TSEExOk1CRURUTFNfUlNBX0M6TUJFRFRMU19QS0NTMV9WMTU6TUJFRFRMU19QS19DQU5fRUNEU0FfVkVSSUZZOk1CRURUTFNfRUNQX0hBVkVfU0VDUDM4NFIxOk1CRURUTFNfTURfQ0FOX1NIQTI1NgoteDUwOV92ZXJpZnlfY2FsbGJhY2s6ImRhdGFfZmlsZXMvc2VydmVyMS5jcnQiOiJkYXRhX2ZpbGVzL3Rlc3QtY2FfY2F0MjEuY3J0IjoiTlVMTCI6MDoiZGVwdGggMSAtIHNlcmlhbCAwMyAtIHN1YmplY3QgQz1OTCwgTz1Qb2xhclNTTCwgQ049UG9sYXJTU0wgVGVzdCBDQSAtIGZsYWdzIDB4MDAwMDAwMDBcbmRlcHRoIDAgLSBzZXJpYWwgMDEgLSBzdWJqZWN0IEM9TkwsIE89UG9sYXJTU0wsIENOPVBvbGFyU1NMIFNlcnZlciAxIC0gZmxhZ3MgMHgwMDAwMDAwMFxuIgorZGVwZW5kc19vbjpNQkVEVExTX1BFTV9QQVJTRV9DOk1CRURUTFNfTURfQ0FOX1NIQTE6TUJFRFRMU19SU0FfQzpNQkVEVExTX1BLQ1MxX1YxNTpNQkVEVExTX1BLX0NBTl9FQ0RTQV9WRVJJRlk6TUJFRFRMU19FQ1BfSEFWRV9TRUNQMzg0UjE6UFNBX1dBTlRfQUxHX1NIQV8yNTYKK3g1MDlfdmVyaWZ5X2NhbGxiYWNrOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9zZXJ2ZXIxLmNydCI6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3Rlc3QtY2FfY2F0MjEuY3J0IjoiTlVMTCI6MDoiZGVwdGggMSAtIHNlcmlhbCAwMyAtIHN1YmplY3QgQz1OTCwgTz1Qb2xhclNTTCwgQ049UG9sYXJTU0wgVGVzdCBDQSAtIGZsYWdzIDB4MDAwMDAwMDBcbmRlcHRoIDAgLSBzZXJpYWwgMDEgLSBzdWJqZWN0IEM9TkwsIE89UG9sYXJTU0wsIENOPVBvbGFyU1NMIFNlcnZlciAxIC0gZmxhZ3MgMHgwMDAwMDAwMFxuIgogCiBYNTA5IENSVCB2ZXJpZmljYXRpb24gY2FsbGJhY2s6IHJvb3QgaW5jbHVkZWQKLWRlcGVuZHNfb246TUJFRFRMU19QRU1fUEFSU0VfQzpNQkVEVExTX01EX0NBTl9TSEExOk1CRURUTFNfUlNBX0M6TUJFRFRMU19QS0NTMV9WMTU6TUJFRFRMU19QS19DQU5fRUNEU0FfVkVSSUZZOk1CRURUTFNfRUNQX0hBVkVfU0VDUDM4NFIxOk1CRURUTFNfTURfQ0FOX1NIQTI1NgoteDUwOV92ZXJpZnlfY2FsbGJhY2s6ImRhdGFfZmlsZXMvc2VydmVyMV9jYS5jcnQiOiJkYXRhX2ZpbGVzL3Rlc3QtY2FfY2F0MjEuY3J0IjoiTlVMTCI6MDoiZGVwdGggMSAtIHNlcmlhbCAwMyAtIHN1YmplY3QgQz1OTCwgTz1Qb2xhclNTTCwgQ049UG9sYXJTU0wgVGVzdCBDQSAtIGZsYWdzIDB4MDAwMDAwMDBcbmRlcHRoIDAgLSBzZXJpYWwgMDEgLSBzdWJqZWN0IEM9TkwsIE89UG9sYXJTU0wsIENOPVBvbGFyU1NMIFNlcnZlciAxIC0gZmxhZ3MgMHgwMDAwMDAwMFxuIgorZGVwZW5kc19vbjpNQkVEVExTX1BFTV9QQVJTRV9DOk1CRURUTFNfTURfQ0FOX1NIQTE6TUJFRFRMU19SU0FfQzpNQkVEVExTX1BLQ1MxX1YxNTpNQkVEVExTX1BLX0NBTl9FQ0RTQV9WRVJJRlk6TUJFRFRMU19FQ1BfSEFWRV9TRUNQMzg0UjE6UFNBX1dBTlRfQUxHX1NIQV8yNTYKK3g1MDlfdmVyaWZ5X2NhbGxiYWNrOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9zZXJ2ZXIxX2NhLmNydCI6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3Rlc3QtY2FfY2F0MjEuY3J0IjoiTlVMTCI6MDoiZGVwdGggMSAtIHNlcmlhbCAwMyAtIHN1YmplY3QgQz1OTCwgTz1Qb2xhclNTTCwgQ049UG9sYXJTU0wgVGVzdCBDQSAtIGZsYWdzIDB4MDAwMDAwMDBcbmRlcHRoIDAgLSBzZXJpYWwgMDEgLSBzdWJqZWN0IEM9TkwsIE89UG9sYXJTU0wsIENOPVBvbGFyU1NMIFNlcnZlciAxIC0gZmxhZ3MgMHgwMDAwMDAwMFxuIgogCiBYNTA5IENSVCB2ZXJpZmljYXRpb24gY2FsbGJhY2s6IGludGVybWVkaWF0ZSBjYQotZGVwZW5kc19vbjpNQkVEVExTX1BFTV9QQVJTRV9DOk1CRURUTFNfUEtfQ0FOX0VDRFNBX1ZFUklGWTpNQkVEVExTX1JTQV9DOk1CRURUTFNfRUNQX0hBVkVfU0VDUDI1NlIxOk1CRURUTFNfRUNQX0hBVkVfU0VDUDM4NFIxOk1CRURUTFNfUlNBX0M6TUJFRFRMU19QS0NTMV9WMTU6TUJFRFRMU19NRF9DQU5fU0hBMjU2Ok1CRURUTFNfTURfQ0FOX1NIQTEKLXg1MDlfdmVyaWZ5X2NhbGxiYWNrOiJkYXRhX2ZpbGVzL3NlcnZlcjdfaW50LWNhLmNydCI6ImRhdGFfZmlsZXMvdGVzdC1jYV9jYXQxMi5jcnQiOiJOVUxMIjowOiJkZXB0aCAyIC0gc2VyaWFsIEMxXDo0M1w6RTJcOjdFXDo2Mlw6NDNcOkNDXDpFOCAtIHN1YmplY3QgQz1OTCwgTz1Qb2xhclNTTCwgQ049UG9sYXJzc2wgVGVzdCBFQyBDQSAtIGZsYWdzIDB4MDAwMDAwMDBcbmRlcHRoIDEgLSBzZXJpYWwgMEUgLSBzdWJqZWN0IEM9TkwsIE89UG9sYXJTU0wsIENOPVBvbGFyU1NMIFRlc3QgSW50ZXJtZWRpYXRlIENBIC0gZmxhZ3MgMHgwMDAwMDAwMFxuZGVwdGggMCAtIHNlcmlhbCAxMCAtIHN1YmplY3QgQz1OTCwgTz1Qb2xhclNTTCwgQ049bG9jYWxob3N0IC0gZmxhZ3MgMHgwMDAwMDAwMFxuIgorZGVwZW5kc19vbjpNQkVEVExTX1BFTV9QQVJTRV9DOk1CRURUTFNfUEtfQ0FOX0VDRFNBX1ZFUklGWTpNQkVEVExTX1JTQV9DOk1CRURUTFNfRUNQX0hBVkVfU0VDUDI1NlIxOk1CRURUTFNfRUNQX0hBVkVfU0VDUDM4NFIxOk1CRURUTFNfUlNBX0M6TUJFRFRMU19QS0NTMV9WMTU6UFNBX1dBTlRfQUxHX1NIQV8yNTY6TUJFRFRMU19NRF9DQU5fU0hBMQoreDUwOV92ZXJpZnlfY2FsbGJhY2s6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3NlcnZlcjdfaW50LWNhLmNydCI6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3Rlc3QtY2FfY2F0MTIuY3J0IjoiTlVMTCI6MDoiZGVwdGggMiAtIHNlcmlhbCBDMVw6NDNcOkUyXDo3RVw6NjJcOjQzXDpDQ1w6RTggLSBzdWJqZWN0IEM9TkwsIE89UG9sYXJTU0wsIENOPVBvbGFyc3NsIFRlc3QgRUMgQ0EgLSBmbGFncyAweDAwMDAwMDAwXG5kZXB0aCAxIC0gc2VyaWFsIDBFIC0gc3ViamVjdCBDPU5MLCBPPVBvbGFyU1NMLCBDTj1Qb2xhclNTTCBUZXN0IEludGVybWVkaWF0ZSBDQSAtIGZsYWdzIDB4MDAwMDAwMDBcbmRlcHRoIDAgLSBzZXJpYWwgMTAgLSBzdWJqZWN0IEM9TkwsIE89UG9sYXJTU0wsIENOPWxvY2FsaG9zdCAtIGZsYWdzIDB4MDAwMDAwMDBcbiIKIAogWDUwOSBDUlQgdmVyaWZpY2F0aW9uIGNhbGxiYWNrOiBpbnRlcm1lZGlhdGUgY2EsIHJvb3QgaW5jbHVkZWQKLWRlcGVuZHNfb246TUJFRFRMU19QRU1fUEFSU0VfQzpNQkVEVExTX1BLX0NBTl9FQ0RTQV9WRVJJRlk6TUJFRFRMU19SU0FfQzpNQkVEVExTX0VDUF9IQVZFX1NFQ1AyNTZSMTpNQkVEVExTX0VDUF9IQVZFX1NFQ1AzODRSMTpNQkVEVExTX1JTQV9DOk1CRURUTFNfUEtDUzFfVjE1Ok1CRURUTFNfTURfQ0FOX1NIQTI1NjpNQkVEVExTX01EX0NBTl9TSEExCi14NTA5X3ZlcmlmeV9jYWxsYmFjazoiZGF0YV9maWxlcy9zZXJ2ZXI3X2ludC1jYV9jYTIuY3J0IjoiZGF0YV9maWxlcy90ZXN0LWNhX2NhdDEyLmNydCI6Ik5VTEwiOjA6ImRlcHRoIDIgLSBzZXJpYWwgQzFcOjQzXDpFMlw6N0VcOjYyXDo0M1w6Q0NcOkU4IC0gc3ViamVjdCBDPU5MLCBPPVBvbGFyU1NMLCBDTj1Qb2xhcnNzbCBUZXN0IEVDIENBIC0gZmxhZ3MgMHgwMDAwMDAwMFxuZGVwdGggMSAtIHNlcmlhbCAwRSAtIHN1YmplY3QgQz1OTCwgTz1Qb2xhclNTTCwgQ049UG9sYXJTU0wgVGVzdCBJbnRlcm1lZGlhdGUgQ0EgLSBmbGFncyAweDAwMDAwMDAwXG5kZXB0aCAwIC0gc2VyaWFsIDEwIC0gc3ViamVjdCBDPU5MLCBPPVBvbGFyU1NMLCBDTj1sb2NhbGhvc3QgLSBmbGFncyAweDAwMDAwMDAwXG4iCitkZXBlbmRzX29uOk1CRURUTFNfUEVNX1BBUlNFX0M6TUJFRFRMU19QS19DQU5fRUNEU0FfVkVSSUZZOk1CRURUTFNfUlNBX0M6TUJFRFRMU19FQ1BfSEFWRV9TRUNQMjU2UjE6TUJFRFRMU19FQ1BfSEFWRV9TRUNQMzg0UjE6TUJFRFRMU19SU0FfQzpNQkVEVExTX1BLQ1MxX1YxNTpQU0FfV0FOVF9BTEdfU0hBXzI1NjpNQkVEVExTX01EX0NBTl9TSEExCit4NTA5X3ZlcmlmeV9jYWxsYmFjazoiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvc2VydmVyN19pbnQtY2FfY2EyLmNydCI6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3Rlc3QtY2FfY2F0MTIuY3J0IjoiTlVMTCI6MDoiZGVwdGggMiAtIHNlcmlhbCBDMVw6NDNcOkUyXDo3RVw6NjJcOjQzXDpDQ1w6RTggLSBzdWJqZWN0IEM9TkwsIE89UG9sYXJTU0wsIENOPVBvbGFyc3NsIFRlc3QgRUMgQ0EgLSBmbGFncyAweDAwMDAwMDAwXG5kZXB0aCAxIC0gc2VyaWFsIDBFIC0gc3ViamVjdCBDPU5MLCBPPVBvbGFyU1NMLCBDTj1Qb2xhclNTTCBUZXN0IEludGVybWVkaWF0ZSBDQSAtIGZsYWdzIDB4MDAwMDAwMDBcbmRlcHRoIDAgLSBzZXJpYWwgMTAgLSBzdWJqZWN0IEM9TkwsIE89UG9sYXJTU0wsIENOPWxvY2FsaG9zdCAtIGZsYWdzIDB4MDAwMDAwMDBcbiIKIAogWDUwOSBDUlQgdmVyaWZpY2F0aW9uIGNhbGxiYWNrOiBpbnRlcm1lZGlhdGUgY2EgdHJ1c3RlZAotZGVwZW5kc19vbjpNQkVEVExTX1BFTV9QQVJTRV9DOk1CRURUTFNfUEtfQ0FOX0VDRFNBX1ZFUklGWTpNQkVEVExTX1JTQV9DOk1CRURUTFNfRUNQX0hBVkVfU0VDUDI1NlIxOk1CRURUTFNfRUNQX0hBVkVfU0VDUDM4NFIxOk1CRURUTFNfUlNBX0M6TUJFRFRMU19QS0NTMV9WMTU6TUJFRFRMU19NRF9DQU5fU0hBMjU2Ci14NTA5X3ZlcmlmeV9jYWxsYmFjazoiZGF0YV9maWxlcy9zZXJ2ZXI3X2ludC1jYV9jYTIuY3J0IjoiZGF0YV9maWxlcy90ZXN0LWludC1jYS5jcnQiOiJOVUxMIjowOiJkZXB0aCAxIC0gc2VyaWFsIDBFIC0gc3ViamVjdCBDPU5MLCBPPVBvbGFyU1NMLCBDTj1Qb2xhclNTTCBUZXN0IEludGVybWVkaWF0ZSBDQSAtIGZsYWdzIDB4MDAwMDAwMDBcbmRlcHRoIDAgLSBzZXJpYWwgMTAgLSBzdWJqZWN0IEM9TkwsIE89UG9sYXJTU0wsIENOPWxvY2FsaG9zdCAtIGZsYWdzIDB4MDAwMDAwMDBcbiIKK2RlcGVuZHNfb246TUJFRFRMU19QRU1fUEFSU0VfQzpNQkVEVExTX1BLX0NBTl9FQ0RTQV9WRVJJRlk6TUJFRFRMU19SU0FfQzpNQkVEVExTX0VDUF9IQVZFX1NFQ1AyNTZSMTpNQkVEVExTX0VDUF9IQVZFX1NFQ1AzODRSMTpNQkVEVExTX1JTQV9DOk1CRURUTFNfUEtDUzFfVjE1OlBTQV9XQU5UX0FMR19TSEFfMjU2Cit4NTA5X3ZlcmlmeV9jYWxsYmFjazoiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvc2VydmVyN19pbnQtY2FfY2EyLmNydCI6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3Rlc3QtaW50LWNhLmNydCI6Ik5VTEwiOjA6ImRlcHRoIDEgLSBzZXJpYWwgMEUgLSBzdWJqZWN0IEM9TkwsIE89UG9sYXJTU0wsIENOPVBvbGFyU1NMIFRlc3QgSW50ZXJtZWRpYXRlIENBIC0gZmxhZ3MgMHgwMDAwMDAwMFxuZGVwdGggMCAtIHNlcmlhbCAxMCAtIHN1YmplY3QgQz1OTCwgTz1Qb2xhclNTTCwgQ049bG9jYWxob3N0IC0gZmxhZ3MgMHgwMDAwMDAwMFxuIgogCiBYNTA5IENSVCB2ZXJpZmljYXRpb24gY2FsbGJhY2s6IGludGVybWVkaWF0ZSBjYSwgRUUgZXhwaXJlZAotZGVwZW5kc19vbjpNQkVEVExTX1BFTV9QQVJTRV9DOk1CRURUTFNfUEtfQ0FOX0VDRFNBX1ZFUklGWTpNQkVEVExTX1JTQV9DOk1CRURUTFNfRUNQX0hBVkVfU0VDUDI1NlIxOk1CRURUTFNfRUNQX0hBVkVfU0VDUDM4NFIxOk1CRURUTFNfUlNBX0M6TUJFRFRMU19QS0NTMV9WMTU6TUJFRFRMU19NRF9DQU5fU0hBMjU2Ok1CRURUTFNfTURfQ0FOX1NIQTE6TUJFRFRMU19IQVZFX1RJTUVfREFURQoteDUwOV92ZXJpZnlfY2FsbGJhY2s6ImRhdGFfZmlsZXMvc2VydmVyNy1leHBpcmVkLmNydCI6ImRhdGFfZmlsZXMvdGVzdC1jYTIuY3J0IjoiTlVMTCI6TUJFRFRMU19FUlJfWDUwOV9DRVJUX1ZFUklGWV9GQUlMRUQ6ImRlcHRoIDIgLSBzZXJpYWwgQzFcOjQzXDpFMlw6N0VcOjYyXDo0M1w6Q0NcOkU4IC0gc3ViamVjdCBDPU5MLCBPPVBvbGFyU1NMLCBDTj1Qb2xhcnNzbCBUZXN0IEVDIENBIC0gZmxhZ3MgMHgwMDAwMDAwMFxuZGVwdGggMSAtIHNlcmlhbCAwRSAtIHN1YmplY3QgQz1OTCwgTz1Qb2xhclNTTCwgQ049UG9sYXJTU0wgVGVzdCBJbnRlcm1lZGlhdGUgQ0EgLSBmbGFncyAweDAwMDAwMDAwXG5kZXB0aCAwIC0gc2VyaWFsIDEwIC0gc3ViamVjdCBDPU5MLCBPPVBvbGFyU1NMLCBDTj1sb2NhbGhvc3QgLSBmbGFncyAweDAwMDAwMDAxXG4iCitkZXBlbmRzX29uOk1CRURUTFNfUEVNX1BBUlNFX0M6TUJFRFRMU19QS19DQU5fRUNEU0FfVkVSSUZZOk1CRURUTFNfUlNBX0M6TUJFRFRMU19FQ1BfSEFWRV9TRUNQMjU2UjE6TUJFRFRMU19FQ1BfSEFWRV9TRUNQMzg0UjE6TUJFRFRMU19SU0FfQzpNQkVEVExTX1BLQ1MxX1YxNTpQU0FfV0FOVF9BTEdfU0hBXzI1NjpNQkVEVExTX01EX0NBTl9TSEExOk1CRURUTFNfSEFWRV9USU1FX0RBVEUKK3g1MDlfdmVyaWZ5X2NhbGxiYWNrOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9zZXJ2ZXI3LWV4cGlyZWQuY3J0IjoiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvdGVzdC1jYTIuY3J0IjoiTlVMTCI6TUJFRFRMU19FUlJfWDUwOV9DRVJUX1ZFUklGWV9GQUlMRUQ6ImRlcHRoIDIgLSBzZXJpYWwgQzFcOjQzXDpFMlw6N0VcOjYyXDo0M1w6Q0NcOkU4IC0gc3ViamVjdCBDPU5MLCBPPVBvbGFyU1NMLCBDTj1Qb2xhcnNzbCBUZXN0IEVDIENBIC0gZmxhZ3MgMHgwMDAwMDAwMFxuZGVwdGggMSAtIHNlcmlhbCAwRSAtIHN1YmplY3QgQz1OTCwgTz1Qb2xhclNTTCwgQ049UG9sYXJTU0wgVGVzdCBJbnRlcm1lZGlhdGUgQ0EgLSBmbGFncyAweDAwMDAwMDAwXG5kZXB0aCAwIC0gc2VyaWFsIDEwIC0gc3ViamVjdCBDPU5MLCBPPVBvbGFyU1NMLCBDTj1sb2NhbGhvc3QgLSBmbGFncyAweDAwMDAwMDAxXG4iCiAKIFg1MDkgQ1JUIHZlcmlmaWNhdGlvbiBjYWxsYmFjazogaW50ZXJtZWRpYXRlIGNhLCBpbnQgZXhwaXJlZAotZGVwZW5kc19vbjpNQkVEVExTX1BFTV9QQVJTRV9DOk1CRURUTFNfUEtfQ0FOX0VDRFNBX1ZFUklGWTpNQkVEVExTX1JTQV9DOk1CRURUTFNfRUNQX0hBVkVfU0VDUDI1NlIxOk1CRURUTFNfRUNQX0hBVkVfU0VDUDM4NFIxOk1CRURUTFNfUlNBX0M6TUJFRFRMU19QS0NTMV9WMTU6TUJFRFRMU19NRF9DQU5fU0hBMjU2Ok1CRURUTFNfTURfQ0FOX1NIQTE6TUJFRFRMU19IQVZFX1RJTUVfREFURQoteDUwOV92ZXJpZnlfY2FsbGJhY2s6ImRhdGFfZmlsZXMvc2VydmVyN19pbnQtY2EtZXhwLmNydCI6ImRhdGFfZmlsZXMvdGVzdC1jYTIuY3J0IjoiTlVMTCI6TUJFRFRMU19FUlJfWDUwOV9DRVJUX1ZFUklGWV9GQUlMRUQ6ImRlcHRoIDIgLSBzZXJpYWwgQzFcOjQzXDpFMlw6N0VcOjYyXDo0M1w6Q0NcOkU4IC0gc3ViamVjdCBDPU5MLCBPPVBvbGFyU1NMLCBDTj1Qb2xhcnNzbCBUZXN0IEVDIENBIC0gZmxhZ3MgMHgwMDAwMDAwMFxuZGVwdGggMSAtIHNlcmlhbCAwRSAtIHN1YmplY3QgQz1OTCwgTz1Qb2xhclNTTCwgQ049UG9sYXJTU0wgVGVzdCBJbnRlcm1lZGlhdGUgQ0EgLSBmbGFncyAweDAwMDAwMDAxXG5kZXB0aCAwIC0gc2VyaWFsIDEwIC0gc3ViamVjdCBDPU5MLCBPPVBvbGFyU1NMLCBDTj1sb2NhbGhvc3QgLSBmbGFncyAweDAwMDAwMDAwXG4iCitkZXBlbmRzX29uOk1CRURUTFNfUEVNX1BBUlNFX0M6TUJFRFRMU19QS19DQU5fRUNEU0FfVkVSSUZZOk1CRURUTFNfUlNBX0M6TUJFRFRMU19FQ1BfSEFWRV9TRUNQMjU2UjE6TUJFRFRMU19FQ1BfSEFWRV9TRUNQMzg0UjE6TUJFRFRMU19SU0FfQzpNQkVEVExTX1BLQ1MxX1YxNTpQU0FfV0FOVF9BTEdfU0hBXzI1NjpNQkVEVExTX01EX0NBTl9TSEExOk1CRURUTFNfSEFWRV9USU1FX0RBVEUKK3g1MDlfdmVyaWZ5X2NhbGxiYWNrOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9zZXJ2ZXI3X2ludC1jYS1leHAuY3J0IjoiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvdGVzdC1jYTIuY3J0IjoiTlVMTCI6TUJFRFRMU19FUlJfWDUwOV9DRVJUX1ZFUklGWV9GQUlMRUQ6ImRlcHRoIDIgLSBzZXJpYWwgQzFcOjQzXDpFMlw6N0VcOjYyXDo0M1w6Q0NcOkU4IC0gc3ViamVjdCBDPU5MLCBPPVBvbGFyU1NMLCBDTj1Qb2xhcnNzbCBUZXN0IEVDIENBIC0gZmxhZ3MgMHgwMDAwMDAwMFxuZGVwdGggMSAtIHNlcmlhbCAwRSAtIHN1YmplY3QgQz1OTCwgTz1Qb2xhclNTTCwgQ049UG9sYXJTU0wgVGVzdCBJbnRlcm1lZGlhdGUgQ0EgLSBmbGFncyAweDAwMDAwMDAxXG5kZXB0aCAwIC0gc2VyaWFsIDEwIC0gc3ViamVjdCBDPU5MLCBPPVBvbGFyU1NMLCBDTj1sb2NhbGhvc3QgLSBmbGFncyAweDAwMDAwMDAwXG4iCiAKIFg1MDkgQ1JUIHZlcmlmaWNhdGlvbiBjYWxsYmFjazogaW50ZXJtZWRpYXRlIGNhLCByb290IGV4cGlyZWQKLWRlcGVuZHNfb246TUJFRFRMU19QRU1fUEFSU0VfQzpNQkVEVExTX1BLX0NBTl9FQ0RTQV9WRVJJRlk6TUJFRFRMU19SU0FfQzpNQkVEVExTX0VDUF9IQVZFX1NFQ1AyNTZSMTpNQkVEVExTX0VDUF9IQVZFX1NFQ1AzODRSMTpNQkVEVExTX1JTQV9DOk1CRURUTFNfUEtDUzFfVjE1Ok1CRURUTFNfTURfQ0FOX1NIQTI1NjpNQkVEVExTX01EX0NBTl9TSEExOk1CRURUTFNfSEFWRV9USU1FX0RBVEUKLXg1MDlfdmVyaWZ5X2NhbGxiYWNrOiJkYXRhX2ZpbGVzL3NlcnZlcjdfaW50LWNhLmNydCI6ImRhdGFfZmlsZXMvdGVzdC1jYTItZXhwaXJlZC5jcnQiOiJOVUxMIjpNQkVEVExTX0VSUl9YNTA5X0NFUlRfVkVSSUZZX0ZBSUxFRDoiZGVwdGggMiAtIHNlcmlhbCAwMSAtIHN1YmplY3QgQz1OTCwgTz1Qb2xhclNTTCwgQ049UG9sYXJzc2wgVGVzdCBFQyBDQSAtIGZsYWdzIDB4MDAwMDAwMDFcbmRlcHRoIDEgLSBzZXJpYWwgMEUgLSBzdWJqZWN0IEM9TkwsIE89UG9sYXJTU0wsIENOPVBvbGFyU1NMIFRlc3QgSW50ZXJtZWRpYXRlIENBIC0gZmxhZ3MgMHgwMDAwMDAwMFxuZGVwdGggMCAtIHNlcmlhbCAxMCAtIHN1YmplY3QgQz1OTCwgTz1Qb2xhclNTTCwgQ049bG9jYWxob3N0IC0gZmxhZ3MgMHgwMDAwMDAwMFxuIgorZGVwZW5kc19vbjpNQkVEVExTX1BFTV9QQVJTRV9DOk1CRURUTFNfUEtfQ0FOX0VDRFNBX1ZFUklGWTpNQkVEVExTX1JTQV9DOk1CRURUTFNfRUNQX0hBVkVfU0VDUDI1NlIxOk1CRURUTFNfRUNQX0hBVkVfU0VDUDM4NFIxOk1CRURUTFNfUlNBX0M6TUJFRFRMU19QS0NTMV9WMTU6UFNBX1dBTlRfQUxHX1NIQV8yNTY6TUJFRFRMU19NRF9DQU5fU0hBMTpNQkVEVExTX0hBVkVfVElNRV9EQVRFCit4NTA5X3ZlcmlmeV9jYWxsYmFjazoiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvc2VydmVyN19pbnQtY2EuY3J0IjoiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvdGVzdC1jYTItZXhwaXJlZC5jcnQiOiJOVUxMIjpNQkVEVExTX0VSUl9YNTA5X0NFUlRfVkVSSUZZX0ZBSUxFRDoiZGVwdGggMiAtIHNlcmlhbCAwMSAtIHN1YmplY3QgQz1OTCwgTz1Qb2xhclNTTCwgQ049UG9sYXJzc2wgVGVzdCBFQyBDQSAtIGZsYWdzIDB4MDAwMDAwMDFcbmRlcHRoIDEgLSBzZXJpYWwgMEUgLSBzdWJqZWN0IEM9TkwsIE89UG9sYXJTU0wsIENOPVBvbGFyU1NMIFRlc3QgSW50ZXJtZWRpYXRlIENBIC0gZmxhZ3MgMHgwMDAwMDAwMFxuZGVwdGggMCAtIHNlcmlhbCAxMCAtIHN1YmplY3QgQz1OTCwgTz1Qb2xhclNTTCwgQ049bG9jYWxob3N0IC0gZmxhZ3MgMHgwMDAwMDAwMFxuIgogCiBYNTA5IENSVCB2ZXJpZmljYXRpb24gY2FsbGJhY2s6IHR3byBpbnRlcm1lZGlhdGVzCi1kZXBlbmRzX29uOk1CRURUTFNfUEVNX1BBUlNFX0M6TUJFRFRMU19QS19DQU5fRUNEU0FfVkVSSUZZOk1CRURUTFNfUlNBX0M6TUJFRFRMU19FQ1BfSEFWRV9TRUNQMjU2UjE6TUJFRFRMU19FQ1BfSEFWRV9TRUNQMzg0UjE6TUJFRFRMU19SU0FfQzpNQkVEVExTX1BLQ1MxX1YxNTpNQkVEVExTX01EX0NBTl9TSEEyNTY6TUJFRFRMU19NRF9DQU5fU0hBMQoteDUwOV92ZXJpZnlfY2FsbGJhY2s6ImRhdGFfZmlsZXMvc2VydmVyMTBfaW50M19pbnQtY2EyLmNydCI6ImRhdGFfZmlsZXMvdGVzdC1jYV9jYXQyMS5jcnQiOiJOVUxMIjowOiJkZXB0aCAzIC0gc2VyaWFsIDAzIC0gc3ViamVjdCBDPU5MLCBPPVBvbGFyU1NMLCBDTj1Qb2xhclNTTCBUZXN0IENBIC0gZmxhZ3MgMHgwMDAwMDAwMFxuZGVwdGggMiAtIHNlcmlhbCAwRiAtIHN1YmplY3QgQz1OTCwgTz1Qb2xhclNTTCwgQ049UG9sYXJTU0wgVGVzdCBJbnRlcm1lZGlhdGUgRUMgQ0EgLSBmbGFncyAweDAwMDAwMDAwXG5kZXB0aCAxIC0gc2VyaWFsIDREIC0gc3ViamVjdCBDPVVLLCBPPW1iZWQgVExTLCBDTj1tYmVkIFRMUyBUZXN0IGludGVybWVkaWF0ZSBDQSAzIC0gZmxhZ3MgMHgwMDAwMDAwMFxuZGVwdGggMCAtIHNlcmlhbCA0QiAtIHN1YmplY3QgQ049bG9jYWxob3N0IC0gZmxhZ3MgMHgwMDAwMDAwMFxuIgorZGVwZW5kc19vbjpNQkVEVExTX1BFTV9QQVJTRV9DOk1CRURUTFNfUEtfQ0FOX0VDRFNBX1ZFUklGWTpNQkVEVExTX1JTQV9DOk1CRURUTFNfRUNQX0hBVkVfU0VDUDI1NlIxOk1CRURUTFNfRUNQX0hBVkVfU0VDUDM4NFIxOk1CRURUTFNfUlNBX0M6TUJFRFRMU19QS0NTMV9WMTU6UFNBX1dBTlRfQUxHX1NIQV8yNTY6TUJFRFRMU19NRF9DQU5fU0hBMQoreDUwOV92ZXJpZnlfY2FsbGJhY2s6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3NlcnZlcjEwX2ludDNfaW50LWNhMi5jcnQiOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy90ZXN0LWNhX2NhdDIxLmNydCI6Ik5VTEwiOjA6ImRlcHRoIDMgLSBzZXJpYWwgMDMgLSBzdWJqZWN0IEM9TkwsIE89UG9sYXJTU0wsIENOPVBvbGFyU1NMIFRlc3QgQ0EgLSBmbGFncyAweDAwMDAwMDAwXG5kZXB0aCAyIC0gc2VyaWFsIDBGIC0gc3ViamVjdCBDPU5MLCBPPVBvbGFyU1NMLCBDTj1Qb2xhclNTTCBUZXN0IEludGVybWVkaWF0ZSBFQyBDQSAtIGZsYWdzIDB4MDAwMDAwMDBcbmRlcHRoIDEgLSBzZXJpYWwgNEQgLSBzdWJqZWN0IEM9VUssIE89bWJlZCBUTFMsIENOPW1iZWQgVExTIFRlc3QgaW50ZXJtZWRpYXRlIENBIDMgLSBmbGFncyAweDAwMDAwMDAwXG5kZXB0aCAwIC0gc2VyaWFsIDRCIC0gc3ViamVjdCBDTj1sb2NhbGhvc3QgLSBmbGFncyAweDAwMDAwMDAwXG4iCiAKIFg1MDkgQ1JUIHZlcmlmaWNhdGlvbiBjYWxsYmFjazogdHdvIGludGVybWVkaWF0ZXMsIHJvb3QgaW5jbHVkZWQKLWRlcGVuZHNfb246TUJFRFRMU19QRU1fUEFSU0VfQzpNQkVEVExTX1BLX0NBTl9FQ0RTQV9WRVJJRlk6TUJFRFRMU19SU0FfQzpNQkVEVExTX0VDUF9IQVZFX1NFQ1AyNTZSMTpNQkVEVExTX0VDUF9IQVZFX1NFQ1AzODRSMTpNQkVEVExTX1JTQV9DOk1CRURUTFNfUEtDUzFfVjE1Ok1CRURUTFNfTURfQ0FOX1NIQTI1NjpNQkVEVExTX01EX0NBTl9TSEExCi14NTA5X3ZlcmlmeV9jYWxsYmFjazoiZGF0YV9maWxlcy9zZXJ2ZXIxMF9pbnQzX2ludC1jYTJfY2EuY3J0IjoiZGF0YV9maWxlcy90ZXN0LWNhX2NhdDIxLmNydCI6Ik5VTEwiOjA6ImRlcHRoIDMgLSBzZXJpYWwgMDMgLSBzdWJqZWN0IEM9TkwsIE89UG9sYXJTU0wsIENOPVBvbGFyU1NMIFRlc3QgQ0EgLSBmbGFncyAweDAwMDAwMDAwXG5kZXB0aCAyIC0gc2VyaWFsIDBGIC0gc3ViamVjdCBDPU5MLCBPPVBvbGFyU1NMLCBDTj1Qb2xhclNTTCBUZXN0IEludGVybWVkaWF0ZSBFQyBDQSAtIGZsYWdzIDB4MDAwMDAwMDBcbmRlcHRoIDEgLSBzZXJpYWwgNEQgLSBzdWJqZWN0IEM9VUssIE89bWJlZCBUTFMsIENOPW1iZWQgVExTIFRlc3QgaW50ZXJtZWRpYXRlIENBIDMgLSBmbGFncyAweDAwMDAwMDAwXG5kZXB0aCAwIC0gc2VyaWFsIDRCIC0gc3ViamVjdCBDTj1sb2NhbGhvc3QgLSBmbGFncyAweDAwMDAwMDAwXG4iCitkZXBlbmRzX29uOk1CRURUTFNfUEVNX1BBUlNFX0M6TUJFRFRMU19QS19DQU5fRUNEU0FfVkVSSUZZOk1CRURUTFNfUlNBX0M6TUJFRFRMU19FQ1BfSEFWRV9TRUNQMjU2UjE6TUJFRFRMU19FQ1BfSEFWRV9TRUNQMzg0UjE6TUJFRFRMU19SU0FfQzpNQkVEVExTX1BLQ1MxX1YxNTpQU0FfV0FOVF9BTEdfU0hBXzI1NjpNQkVEVExTX01EX0NBTl9TSEExCit4NTA5X3ZlcmlmeV9jYWxsYmFjazoiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvc2VydmVyMTBfaW50M19pbnQtY2EyX2NhLmNydCI6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3Rlc3QtY2FfY2F0MjEuY3J0IjoiTlVMTCI6MDoiZGVwdGggMyAtIHNlcmlhbCAwMyAtIHN1YmplY3QgQz1OTCwgTz1Qb2xhclNTTCwgQ049UG9sYXJTU0wgVGVzdCBDQSAtIGZsYWdzIDB4MDAwMDAwMDBcbmRlcHRoIDIgLSBzZXJpYWwgMEYgLSBzdWJqZWN0IEM9TkwsIE89UG9sYXJTU0wsIENOPVBvbGFyU1NMIFRlc3QgSW50ZXJtZWRpYXRlIEVDIENBIC0gZmxhZ3MgMHgwMDAwMDAwMFxuZGVwdGggMSAtIHNlcmlhbCA0RCAtIHN1YmplY3QgQz1VSywgTz1tYmVkIFRMUywgQ049bWJlZCBUTFMgVGVzdCBpbnRlcm1lZGlhdGUgQ0EgMyAtIGZsYWdzIDB4MDAwMDAwMDBcbmRlcHRoIDAgLSBzZXJpYWwgNEIgLSBzdWJqZWN0IENOPWxvY2FsaG9zdCAtIGZsYWdzIDB4MDAwMDAwMDBcbiIKIAogWDUwOSBDUlQgdmVyaWZpY2F0aW9uIGNhbGxiYWNrOiB0d28gaW50ZXJtZWRpYXRlcywgdG9wIGludCB0cnVzdGVkCi1kZXBlbmRzX29uOk1CRURUTFNfUEVNX1BBUlNFX0M6TUJFRFRMU19QS19DQU5fRUNEU0FfVkVSSUZZOk1CRURUTFNfUlNBX0M6TUJFRFRMU19FQ1BfSEFWRV9TRUNQMjU2UjE6TUJFRFRMU19FQ1BfSEFWRV9TRUNQMzg0UjE6TUJFRFRMU19SU0FfQzpNQkVEVExTX1BLQ1MxX1YxNTpNQkVEVExTX01EX0NBTl9TSEEyNTYKLXg1MDlfdmVyaWZ5X2NhbGxiYWNrOiJkYXRhX2ZpbGVzL3NlcnZlcjEwX2ludDNfaW50LWNhMi5jcnQiOiJkYXRhX2ZpbGVzL3Rlc3QtaW50LWNhMi5jcnQiOiJOVUxMIjowOiJkZXB0aCAyIC0gc2VyaWFsIDBGIC0gc3ViamVjdCBDPU5MLCBPPVBvbGFyU1NMLCBDTj1Qb2xhclNTTCBUZXN0IEludGVybWVkaWF0ZSBFQyBDQSAtIGZsYWdzIDB4MDAwMDAwMDBcbmRlcHRoIDEgLSBzZXJpYWwgNEQgLSBzdWJqZWN0IEM9VUssIE89bWJlZCBUTFMsIENOPW1iZWQgVExTIFRlc3QgaW50ZXJtZWRpYXRlIENBIDMgLSBmbGFncyAweDAwMDAwMDAwXG5kZXB0aCAwIC0gc2VyaWFsIDRCIC0gc3ViamVjdCBDTj1sb2NhbGhvc3QgLSBmbGFncyAweDAwMDAwMDAwXG4iCitkZXBlbmRzX29uOk1CRURUTFNfUEVNX1BBUlNFX0M6TUJFRFRMU19QS19DQU5fRUNEU0FfVkVSSUZZOk1CRURUTFNfUlNBX0M6TUJFRFRMU19FQ1BfSEFWRV9TRUNQMjU2UjE6TUJFRFRMU19FQ1BfSEFWRV9TRUNQMzg0UjE6TUJFRFRMU19SU0FfQzpNQkVEVExTX1BLQ1MxX1YxNTpQU0FfV0FOVF9BTEdfU0hBXzI1NgoreDUwOV92ZXJpZnlfY2FsbGJhY2s6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3NlcnZlcjEwX2ludDNfaW50LWNhMi5jcnQiOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy90ZXN0LWludC1jYTIuY3J0IjoiTlVMTCI6MDoiZGVwdGggMiAtIHNlcmlhbCAwRiAtIHN1YmplY3QgQz1OTCwgTz1Qb2xhclNTTCwgQ049UG9sYXJTU0wgVGVzdCBJbnRlcm1lZGlhdGUgRUMgQ0EgLSBmbGFncyAweDAwMDAwMDAwXG5kZXB0aCAxIC0gc2VyaWFsIDREIC0gc3ViamVjdCBDPVVLLCBPPW1iZWQgVExTLCBDTj1tYmVkIFRMUyBUZXN0IGludGVybWVkaWF0ZSBDQSAzIC0gZmxhZ3MgMHgwMDAwMDAwMFxuZGVwdGggMCAtIHNlcmlhbCA0QiAtIHN1YmplY3QgQ049bG9jYWxob3N0IC0gZmxhZ3MgMHgwMDAwMDAwMFxuIgogCiBYNTA5IENSVCB2ZXJpZmljYXRpb24gY2FsbGJhY2s6IHR3byBpbnRlcm1lZGlhdGVzLCBsb3cgaW50IHRydXN0ZWQKLWRlcGVuZHNfb246TUJFRFRMU19QRU1fUEFSU0VfQzpNQkVEVExTX1BLX0NBTl9FQ0RTQV9WRVJJRlk6TUJFRFRMU19SU0FfQzpNQkVEVExTX0VDUF9IQVZFX1NFQ1AyNTZSMTpNQkVEVExTX0VDUF9IQVZFX1NFQ1AzODRSMTpNQkVEVExTX1JTQV9DOk1CRURUTFNfUEtDUzFfVjE1Ok1CRURUTFNfTURfQ0FOX1NIQTI1NjpNQkVEVExTX01EX0NBTl9TSEExCi14NTA5X3ZlcmlmeV9jYWxsYmFjazoiZGF0YV9maWxlcy9zZXJ2ZXIxMF9pbnQzX2ludC1jYTJfY2EuY3J0IjoiZGF0YV9maWxlcy90ZXN0LWludC1jYTMuY3J0IjoiTlVMTCI6MDoiZGVwdGggMSAtIHNlcmlhbCA0RCAtIHN1YmplY3QgQz1VSywgTz1tYmVkIFRMUywgQ049bWJlZCBUTFMgVGVzdCBpbnRlcm1lZGlhdGUgQ0EgMyAtIGZsYWdzIDB4MDAwMDAwMDBcbmRlcHRoIDAgLSBzZXJpYWwgNEIgLSBzdWJqZWN0IENOPWxvY2FsaG9zdCAtIGZsYWdzIDB4MDAwMDAwMDBcbiIKK2RlcGVuZHNfb246TUJFRFRMU19QRU1fUEFSU0VfQzpNQkVEVExTX1BLX0NBTl9FQ0RTQV9WRVJJRlk6TUJFRFRMU19SU0FfQzpNQkVEVExTX0VDUF9IQVZFX1NFQ1AyNTZSMTpNQkVEVExTX0VDUF9IQVZFX1NFQ1AzODRSMTpNQkVEVExTX1JTQV9DOk1CRURUTFNfUEtDUzFfVjE1OlBTQV9XQU5UX0FMR19TSEFfMjU2Ok1CRURUTFNfTURfQ0FOX1NIQTEKK3g1MDlfdmVyaWZ5X2NhbGxiYWNrOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9zZXJ2ZXIxMF9pbnQzX2ludC1jYTJfY2EuY3J0IjoiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvdGVzdC1pbnQtY2EzLmNydCI6Ik5VTEwiOjA6ImRlcHRoIDEgLSBzZXJpYWwgNEQgLSBzdWJqZWN0IEM9VUssIE89bWJlZCBUTFMsIENOPW1iZWQgVExTIFRlc3QgaW50ZXJtZWRpYXRlIENBIDMgLSBmbGFncyAweDAwMDAwMDAwXG5kZXB0aCAwIC0gc2VyaWFsIDRCIC0gc3ViamVjdCBDTj1sb2NhbGhvc3QgLSBmbGFncyAweDAwMDAwMDAwXG4iCiAKIFg1MDkgQ1JUIHZlcmlmaWNhdGlvbiBjYWxsYmFjazogbm8gaW50ZXJtZWRpYXRlLCBiYWQgc2lnbmF0dXJlCi1kZXBlbmRzX29uOk1CRURUTFNfUEVNX1BBUlNFX0M6TUJFRFRMU19QS19DQU5fRUNEU0FfVkVSSUZZOk1CRURUTFNfTURfQ0FOX1NIQTI1NjpNQkVEVExTX0VDUF9IQVZFX1NFQ1AyNTZSMTpNQkVEVExTX0VDUF9IQVZFX1NFQ1AzODRSMQoteDUwOV92ZXJpZnlfY2FsbGJhY2s6ImRhdGFfZmlsZXMvc2VydmVyNS1iYWRzaWduLmNydCI6ImRhdGFfZmlsZXMvdGVzdC1jYTIuY3J0IjoiTlVMTCI6TUJFRFRMU19FUlJfWDUwOV9DRVJUX1ZFUklGWV9GQUlMRUQ6ImRlcHRoIDAgLSBzZXJpYWwgMDkgLSBzdWJqZWN0IEM9TkwsIE89UG9sYXJTU0wsIENOPWxvY2FsaG9zdCAtIGZsYWdzIDB4MDAwMDAwMDhcbiIKK2RlcGVuZHNfb246TUJFRFRMU19QRU1fUEFSU0VfQzpNQkVEVExTX1BLX0NBTl9FQ0RTQV9WRVJJRlk6UFNBX1dBTlRfQUxHX1NIQV8yNTY6TUJFRFRMU19FQ1BfSEFWRV9TRUNQMjU2UjE6TUJFRFRMU19FQ1BfSEFWRV9TRUNQMzg0UjEKK3g1MDlfdmVyaWZ5X2NhbGxiYWNrOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9zZXJ2ZXI1LWJhZHNpZ24uY3J0IjoiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvdGVzdC1jYTIuY3J0IjoiTlVMTCI6TUJFRFRMU19FUlJfWDUwOV9DRVJUX1ZFUklGWV9GQUlMRUQ6ImRlcHRoIDAgLSBzZXJpYWwgMDkgLSBzdWJqZWN0IEM9TkwsIE89UG9sYXJTU0wsIENOPWxvY2FsaG9zdCAtIGZsYWdzIDB4MDAwMDAwMDhcbiIKIAogWDUwOSBDUlQgdmVyaWZpY2F0aW9uIGNhbGxiYWNrOiBvbmUgaW50ZXJtZWRpYXRlLCBiYWQgc2lnbmF0dXJlCi1kZXBlbmRzX29uOk1CRURUTFNfUEVNX1BBUlNFX0M6TUJFRFRMU19SU0FfQzpNQkVEVExTX1BLQ1MxX1YxNTpNQkVEVExTX01EX0NBTl9TSEExOk1CRURUTFNfUEtfQ0FOX0VDRFNBX1ZFUklGWTpNQkVEVExTX0VDUF9IQVZFX1NFQ1AyNTZSMTpNQkVEVExTX0VDUF9IQVZFX1NFQ1AzODRSMTpNQkVEVExTX01EX0NBTl9TSEEyNTYKLXg1MDlfdmVyaWZ5X2NhbGxiYWNrOiJkYXRhX2ZpbGVzL3NlcnZlcjctYmFkc2lnbi5jcnQiOiJkYXRhX2ZpbGVzL3Rlc3QtY2EyLmNydCI6Ik5VTEwiOk1CRURUTFNfRVJSX1g1MDlfQ0VSVF9WRVJJRllfRkFJTEVEOiJkZXB0aCAyIC0gc2VyaWFsIEMxXDo0M1w6RTJcOjdFXDo2Mlw6NDNcOkNDXDpFOCAtIHN1YmplY3QgQz1OTCwgTz1Qb2xhclNTTCwgQ049UG9sYXJzc2wgVGVzdCBFQyBDQSAtIGZsYWdzIDB4MDAwMDAwMDBcbmRlcHRoIDEgLSBzZXJpYWwgMEUgLSBzdWJqZWN0IEM9TkwsIE89UG9sYXJTU0wsIENOPVBvbGFyU1NMIFRlc3QgSW50ZXJtZWRpYXRlIENBIC0gZmxhZ3MgMHgwMDAwMDAwMFxuZGVwdGggMCAtIHNlcmlhbCAxMCAtIHN1YmplY3QgQz1OTCwgTz1Qb2xhclNTTCwgQ049bG9jYWxob3N0IC0gZmxhZ3MgMHgwMDAwMDAwOFxuIgorZGVwZW5kc19vbjpNQkVEVExTX1BFTV9QQVJTRV9DOk1CRURUTFNfUlNBX0M6TUJFRFRMU19QS0NTMV9WMTU6TUJFRFRMU19NRF9DQU5fU0hBMTpNQkVEVExTX1BLX0NBTl9FQ0RTQV9WRVJJRlk6TUJFRFRMU19FQ1BfSEFWRV9TRUNQMjU2UjE6TUJFRFRMU19FQ1BfSEFWRV9TRUNQMzg0UjE6UFNBX1dBTlRfQUxHX1NIQV8yNTYKK3g1MDlfdmVyaWZ5X2NhbGxiYWNrOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9zZXJ2ZXI3LWJhZHNpZ24uY3J0IjoiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvdGVzdC1jYTIuY3J0IjoiTlVMTCI6TUJFRFRMU19FUlJfWDUwOV9DRVJUX1ZFUklGWV9GQUlMRUQ6ImRlcHRoIDIgLSBzZXJpYWwgQzFcOjQzXDpFMlw6N0VcOjYyXDo0M1w6Q0NcOkU4IC0gc3ViamVjdCBDPU5MLCBPPVBvbGFyU1NMLCBDTj1Qb2xhcnNzbCBUZXN0IEVDIENBIC0gZmxhZ3MgMHgwMDAwMDAwMFxuZGVwdGggMSAtIHNlcmlhbCAwRSAtIHN1YmplY3QgQz1OTCwgTz1Qb2xhclNTTCwgQ049UG9sYXJTU0wgVGVzdCBJbnRlcm1lZGlhdGUgQ0EgLSBmbGFncyAweDAwMDAwMDAwXG5kZXB0aCAwIC0gc2VyaWFsIDEwIC0gc3ViamVjdCBDPU5MLCBPPVBvbGFyU1NMLCBDTj1sb2NhbGhvc3QgLSBmbGFncyAweDAwMDAwMDA4XG4iCiAKIFg1MDkgQ1JUIEFTTjEgKEVtcHR5IENlcnRpZmljYXRlKQogeDUwOXBhcnNlX2NydDoiIjoiIjpNQkVEVExTX0VSUl9YNTA5X0lOVkFMSURfRk9STUFUCkBAIC0xMzAwLDUwMCArMTMwMCw1MDAgQEAKIHg1MDlwYXJzZV9jcnQ6IjMwMDIzMDAzIjoiIjpNQkVEVExTX0VSUl9YNTA5X0lOVkFMSURfRk9STUFUICsgTUJFRFRMU19FUlJfQVNOMV9PVVRfT0ZfREFUQQogCiBYNTA5IENSVCBBU04xIChUQlMgZW1wdHkpCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NjpNQkVEVExTX1JTQV9DCitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2Ok1CRURUTFNfUlNBX0MKIHg1MDlwYXJzZV9jcnQ6IjMwMTUzMDAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMDMwMjAwZmYiOiIiOk1CRURUTFNfRVJSX1g1MDlfSU5WQUxJRF9GT1JNQVQgKyBNQkVEVExTX0VSUl9BU04xX09VVF9PRl9EQVRBCiAKIFg1MDkgQ1JUIEFTTjEgKFRCUywgaW52YWxpZCB2ZXJzaW9uIHRhZywgc2VyaWFsIG1pc3NpbmcpCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NjpNQkVEVExTX1JTQV9DCitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2Ok1CRURUTFNfUlNBX0MKIHg1MDlwYXJzZV9jcnQ6IjMwMTczMDAyMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDAzMDIwMGZmIjoiIjpNQkVEVExTX0VSUl9YNTA5X0lOVkFMSURfU0VSSUFMICsgTUJFRFRMU19FUlJfQVNOMV9VTkVYUEVDVEVEX1RBRwogCiBYNTA5IENSVCBBU04xIChUQlMsIHZhbGlkIG91dGVyIHZlcnNpb24gdGFnLCBubyBvdXRlciBsZW5ndGgpCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NjpNQkVEVExTX1JTQV9DCitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2Ok1CRURUTFNfUlNBX0MKIHg1MDlwYXJzZV9jcnQ6IjMwMTYzMDAxYTAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAwMzAyMDBmZiI6IiI6TUJFRFRMU19FUlJfWDUwOV9JTlZBTElEX0ZPUk1BVCArIE1CRURUTFNfRVJSX0FTTjFfT1VUX09GX0RBVEEKIAogWDUwOSBDUlQgQVNOMSAoVEJTLCBpbnYgaW5uZXIgdmVyc2lvbiB0YWcpCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NjpNQkVEVExTX1JTQV9DCitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2Ok1CRURUTFNfUlNBX0MKIHg1MDlwYXJzZV9jcnQ6IjMwMTkzMDA0YTAwMjA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAwMzAyMDBmZiI6IiI6TUJFRFRMU19FUlJfWDUwOV9JTlZBTElEX1ZFUlNJT04gKyBNQkVEVExTX0VSUl9BU04xX1VORVhQRUNURURfVEFHCiAKIFg1MDkgQ1JUIEFTTjEgKFRCUywgdmFsaWQgaW5uZXIgdmVyc2lvbiB0YWcsIG5vIGlubmVyIGxlbmd0aCkKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2Ok1CRURUTFNfUlNBX0MKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTY6TUJFRFRMU19SU0FfQwogeDUwOXBhcnNlX2NydDoiMzAxODMwMDNhMDAxMDIzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAwMzAyMDBmZiI6IiI6TUJFRFRMU19FUlJfWDUwOV9JTlZBTElEX1ZFUlNJT04gKyBNQkVEVExTX0VSUl9BU04xX09VVF9PRl9EQVRBCiAKIFg1MDkgQ1JUIEFTTjEgKFRCUywgdmFsaWQgaW5uZXIgdmVyc2lvbiB0YWcsIGludiBpbm5lciBsZW5ndGggZW5jb2RpbmcpCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NjpNQkVEVExTX1JTQV9DCitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2Ok1CRURUTFNfUlNBX0MKIHg1MDlwYXJzZV9jcnQ6IjMwMTkzMDA0YTAwMjAyODUzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAwMzAyMDBmZiI6IiI6TUJFRFRMU19FUlJfWDUwOV9JTlZBTElEX1ZFUlNJT04gKyBNQkVEVExTX0VSUl9BU04xX0lOVkFMSURfTEVOR1RICiAKIFg1MDkgQ1JUIEFTTjEgKFRCUywgdmFsaWQgaW5uZXIgdmVyc2lvbiB0YWcsIGlubmVyIGxlbmd0aCB0b28gbGFyZ2UgZm9yIGludCkKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2Ok1CRURUTFNfUlNBX0MKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTY6TUJFRFRMU19SU0FfQwogIyB0YnNDZXJ0aWZpY2F0ZS52ZXJzaW9uID0gMHgwMTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMCByZWplY3RlZCBieSBtYmVkdGxzX2FzbjFfZ2V0X2ludAogeDUwOXBhcnNlX2NydDoiMzAyOTMwMTRhMDEyMDIxMDAxMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMDMwMjAwZmYiOiIiOk1CRURUTFNfRVJSX1g1MDlfSU5WQUxJRF9WRVJTSU9OICsgTUJFRFRMU19FUlJfQVNOMV9JTlZBTElEX0xFTkdUSAogCiBYNTA5IENSVCBBU04xIChUQlMsIHZhbGlkIGlubmVyIHZlcnNpb24gdGFnLCBpbm5lciB2cy4gb3V0ZXIgbGVuZ3RoIG1pc21hdGNoKQotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTY6TUJFRFRMU19SU0FfQworZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NjpNQkVEVExTX1JTQV9DCiB4NTA5cGFyc2VfY3J0OiIzMDFiMzAwNmEwMDQwMjAxMDIwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDAzMDIwMGZmIjoiIjpNQkVEVExTX0VSUl9YNTA5X0lOVkFMSURfVkVSU0lPTiArIE1CRURUTFNfRVJSX0FTTjFfTEVOR1RIX01JU01BVENICiAKIFg1MDkgQ1JUIEFTTjEgKFRCUywgdmFsaWQgdmVyc2lvbiB0YWcsIGxlbmd0aCBleGNlZWRzIFRCUykKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2Ok1CRURUTFNfUlNBX0MKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTY6TUJFRFRMU19SU0FfQwogeDUwOXBhcnNlX2NydDoiMzAyOTMwMTRhMDEyMDIxMTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMDMwMjAwZmYiOiIiOk1CRURUTFNfRVJSX1g1MDlfSU5WQUxJRF9WRVJTSU9OICsgTUJFRFRMU19FUlJfQVNOMV9PVVRfT0ZfREFUQQogCiBYNTA5IENSVCBBU04xIChUQlMsIHZhbGlkIHZlcnNpb24gdGFnICsgbGVuZ3RoLCB1bmtub3duIHZlcnNpb24gbnVtYmVyIDMpCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NjpNQkVEVExTX1JTQV9DCitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2Ok1CRURUTFNfUlNBX0MKIHg1MDlwYXJzZV9jcnQ6IjMwODE5NjMwODE4MGEwMDMwMjAxMDM4MjA0ZGVhZGJlZWYzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAzMDBjMzEwYTMwMDgwNjAwMTMwNDU0NjU3Mzc0MzAxYzE3MGMzMDM5MzAzMTMwMzEzMDMwMzAzMDMwMzAxNzBjMzAzOTMxMzIzMzMxMzIzMzM1MzkzNTM5MzAwYzMxMGEzMDA4MDYwMDEzMDQ1NDY1NzM3NDMwMmEzMDBkMDYwOTJBODY0ODg2RjcwRDAxMDEwMTA1MDAwMzE5MDAzMDE2MDIxMGZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMDIwMmZmZmYzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAwMzAyMDBmZiI6IiI6TUJFRFRMU19FUlJfWDUwOV9VTktOT1dOX1ZFUlNJT04KIAogWDUwOSBDUlQgQVNOMSAoVEJTLCB2YWxpZCB2ZXJzaW9uIHRhZyArIGxlbmd0aCwgdW5rbm93biB2ZXJzaW9uIG51bWJlciA0KQotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTY6TUJFRFRMU19SU0FfQworZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NjpNQkVEVExTX1JTQV9DCiB4NTA5cGFyc2VfY3J0OiIzMDgxOTYzMDgxODBhMDAzMDIwMTA0ODIwNGRlYWRiZWVmMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMzAwYzMxMGEzMDA4MDYwMDEzMDQ1NDY1NzM3NDMwMWMxNzBjMzAzOTMwMzEzMDMxMzAzMDMwMzAzMDMwMTcwYzMwMzkzMTMyMzMzMTMyMzMzNTM5MzUzOTMwMGMzMTBhMzAwODA2MDAxMzA0NTQ2NTczNzQzMDJhMzAwZDA2MDkyQTg2NDg4NkY3MEQwMTAxMDEwNTAwMDMxOTAwMzAxNjAyMTBmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjAyMDJmZmZmMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMDMwMjAwZmYiOiIiOk1CRURUTFNfRVJSX1g1MDlfVU5LTk9XTl9WRVJTSU9OCiAKIFg1MDkgQ1JUIEFTTjEgKFRCUywgdmFsaWQgdmVyc2lvbiB0YWcgKyBsZW5ndGgsIHZlcnNpb24gbnVtYmVyIG92ZXJmbG93KQotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTY6TUJFRFRMU19SU0FfQworZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NjpNQkVEVExTX1JTQV9DCiB4NTA5cGFyc2VfY3J0OiIzMDgxOTkzMDgxODNhMDA2MDIwNDdGRkZGRkZGODIwNGRlYWRiZWVmMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMzAwYzMxMGEzMDA4MDYwMDEzMDQ1NDY1NzM3NDMwMWMxNzBjMzAzOTMwMzEzMDMxMzAzMDMwMzAzMDMwMTcwYzMwMzkzMTMyMzMzMTMyMzMzNTM5MzUzOTMwMGMzMTBhMzAwODA2MDAxMzA0NTQ2NTczNzQzMDJhMzAwZDA2MDkyQTg2NDg4NkY3MEQwMTAxMDEwNTAwMDMxOTAwMzAxNjAyMTBmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjAyMDJmZmZmMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMDMwMjAwZmYiOiIiOk1CRURUTFNfRVJSX1g1MDlfVU5LTk9XTl9WRVJTSU9OCiAKIFg1MDkgQ1JUIEFTTjEgKFRCUywgc2VyaWFsIG1pc3NpbmcpCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NjpNQkVEVExTX1JTQV9DCitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2Ok1CRURUTFNfUlNBX0MKIHg1MDlwYXJzZV9jcnQ6IjMwMWEzMDA1YTAwMzAyMDEwMjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDAzMDIwMGZmIjoiIjpNQkVEVExTX0VSUl9YNTA5X0lOVkFMSURfU0VSSUFMICsgTUJFRFRMU19FUlJfQVNOMV9PVVRfT0ZfREFUQQogCiBYNTA5IENSVCBBU04xIChUQlMsIGludiBzZXJpYWwsIHRhZyB3cm9uZykKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2Ok1CRURUTFNfUlNBX0MKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTY6TUJFRFRMU19SU0FfQwogeDUwOXBhcnNlX2NydDoiMzAxYzMwMDdhMDAzMDIwMTAyMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDAzMDIwMGZmIjoiIjpNQkVEVExTX0VSUl9YNTA5X0lOVkFMSURfU0VSSUFMICsgTUJFRFRMU19FUlJfQVNOMV9VTkVYUEVDVEVEX1RBRwogCiBYNTA5IENSVCBBU04xIChUQlMsIGludiBzZXJpYWwsIGxlbmd0aCBtaXNzaW5nKQotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTY6TUJFRFRMU19SU0FfQworZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NjpNQkVEVExTX1JTQV9DCiB4NTA5cGFyc2VfY3J0OiIzMDFiMzAwNmEwMDMwMjAxMDI4MjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDAzMDIwMGZmIjoiIjpNQkVEVExTX0VSUl9YNTA5X0lOVkFMSURfU0VSSUFMICsgTUJFRFRMU19FUlJfQVNOMV9PVVRfT0ZfREFUQQogCiBYNTA5IENSVCBBU04xIChUQlMsIGludiBzZXJpYWwsIGludiBsZW5ndGggZW5jb2RpbmcpCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NjpNQkVEVExTX1JTQV9DCitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2Ok1CRURUTFNfUlNBX0MKIHg1MDlwYXJzZV9jcnQ6IjMwMWMzMDA3YTAwMzAyMDEwMjgyODUzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAwMzAyMDBmZiI6IiI6TUJFRFRMU19FUlJfWDUwOV9JTlZBTElEX1NFUklBTCArIE1CRURUTFNfRVJSX0FTTjFfSU5WQUxJRF9MRU5HVEgKIAogWDUwOSBDUlQgQVNOMSAoVEJTLCBpbnYgc2VyaWFsLCBsZW5ndGggb3V0IG9mIGJvdW5kcykKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2Ok1CRURUTFNfUlNBX0MKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTY6TUJFRFRMU19SU0FfQwogeDUwOXBhcnNlX2NydDoiMzAxYzMwMDdhMDAzMDIwMTAyODIwMTMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDAzMDIwMGZmIjoiIjpNQkVEVExTX0VSUl9YNTA5X0lOVkFMSURfU0VSSUFMICsgTUJFRFRMU19FUlJfQVNOMV9PVVRfT0ZfREFUQQogCiBYNTA5IENSVCBBU04xIChUQlMsIEFsZ0lEIG1pc3NpbmcpCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NjpNQkVEVExTX1JTQV9DCitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2Ok1CRURUTFNfUlNBX0MKIHg1MDlwYXJzZV9jcnQ6IjMwMjAzMDBiYTAwMzAyMDEwMjgyMDRkZWFkYmVlZjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDAzMDIwMGZmIjoiIjpNQkVEVExTX0VSUl9YNTA5X0lOVkFMSURfQUxHICsgTUJFRFRMU19FUlJfQVNOMV9PVVRfT0ZfREFUQQogCiBYNTA5IENSVCBBU04xIChUQlMsIGludiBBbGdJRCwgdGFnIHdyb25nKQotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTY6TUJFRFRMU19SU0FfQworZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NjpNQkVEVExTX1JTQV9DCiB4NTA5cGFyc2VfY3J0OiIzMDIyMzAwZGEwMDMwMjAxMDI4MjA0ZGVhZGJlZWYwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMDMwMjAwZmYiOiIiOk1CRURUTFNfRVJSX1g1MDlfSU5WQUxJRF9BTEcgKyBNQkVEVExTX0VSUl9BU04xX1VORVhQRUNURURfVEFHCiAKIFg1MDkgQ1JUIEFTTjEgKFRCUywgaW52IEFsZ0lELCBPSUQgbWlzc2luZykKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2Ok1CRURUTFNfUlNBX0MKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTY6TUJFRFRMU19SU0FfQwogeDUwOXBhcnNlX2NydDoiMzA3YjMwNzNhMDAzMDIwMTAwODIwNGRlYWRiZWVmMzAwMDMwMGMzMTBhMzAwODA2MDAxMzA0NTQ2NTczNzQzMDFjMTcwYzMwMzkzMDMxMzAzMTMwMzAzMDMwMzAzMDE3MGMzMDM5MzEzMjMzMzEzMjMzMzUzOTM1MzkzMDBjMzEwYTMwMDgwNjAwMTMwNDU0NjU3Mzc0MzAyYTMwMGQwNjA5MkE4NjQ4ODZGNzBEMDEwMTAxMDUwMDAzMTkwMDMwMTYwMjEwZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYwMjAyZmZmZjMwMDAwMzAyMDBmZiI6IiI6TUJFRFRMU19FUlJfWDUwOV9JTlZBTElEX0FMRyArIE1CRURUTFNfRVJSX0FTTjFfT1VUX09GX0RBVEEKIAogWDUwOSBDUlQgQVNOMSAoVEJTLCBpbnYgQWxnSUQsIE9JRCB0YWcgd3JvbmcpCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NjpNQkVEVExTX1JTQV9DCitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2Ok1CRURUTFNfUlNBX0MKIHg1MDlwYXJzZV9jcnQ6IjMwN2YzMDc1YTAwMzAyMDEwMDgyMDRkZWFkYmVlZjMwMDIwNTAwMzAwYzMxMGEzMDA4MDYwMDEzMDQ1NDY1NzM3NDMwMWMxNzBjMzAzOTMwMzEzMDMxMzAzMDMwMzAzMDMwMTcwYzMwMzkzMTMyMzMzMTMyMzMzNTM5MzUzOTMwMGMzMTBhMzAwODA2MDAxMzA0NTQ2NTczNzQzMDJhMzAwZDA2MDkyQTg2NDg4NkY3MEQwMTAxMDEwNTAwMDMxOTAwMzAxNjAyMTBmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjAyMDJmZmZmMzAwMjA1MDAwMzAyMDBmZiI6IiI6TUJFRFRMU19FUlJfWDUwOV9JTlZBTElEX0FMRyArIE1CRURUTFNfRVJSX0FTTjFfVU5FWFBFQ1RFRF9UQUcKIAogWDUwOSBDUlQgQVNOMSAoVEJTLCBpbnYgQWxnSUQsIE9JRCBpbnYgbGVuZ3RoIGVuY29kaW5nKQotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTY6TUJFRFRMU19SU0FfQworZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NjpNQkVEVExTX1JTQV9DCiB4NTA5cGFyc2VfY3J0OiIzMDdmMzA3NWEwMDMwMjAxMDA4MjA0ZGVhZGJlZWYzMDAyMDY4NTMwMGMzMTBhMzAwODA2MDAxMzA0NTQ2NTczNzQzMDFjMTcwYzMwMzkzMDMxMzAzMTMwMzAzMDMwMzAzMDE3MGMzMDM5MzEzMjMzMzEzMjMzMzUzOTM1MzkzMDBjMzEwYTMwMDgwNjAwMTMwNDU0NjU3Mzc0MzAyYTMwMGQwNjA5MkE4NjQ4ODZGNzBEMDEwMTAxMDUwMDAzMTkwMDMwMTYwMjEwZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYwMjAyZmZmZjMwMDIwNjg1MDMwMjAwZmYiOiIiOk1CRURUTFNfRVJSX1g1MDlfSU5WQUxJRF9BTEcgKyBNQkVEVExTX0VSUl9BU04xX0lOVkFMSURfTEVOR1RICiAKIFg1MDkgQ1JUIEFTTjEgKFRCUywgaW52IEFsZ0lELCBPSUQgbGVuZ3RoIG91dCBvZiBib3VuZHMpCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NjpNQkVEVExTX1JTQV9DCitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2Ok1CRURUTFNfUlNBX0MKIHg1MDlwYXJzZV9jcnQ6IjMwN2YzMDc1YTAwMzAyMDEwMDgyMDRkZWFkYmVlZjMwMDIwNjAxMzAwYzMxMGEzMDA4MDYwMDEzMDQ1NDY1NzM3NDMwMWMxNzBjMzAzOTMwMzEzMDMxMzAzMDMwMzAzMDMwMTcwYzMwMzkzMTMyMzMzMTMyMzMzNTM5MzUzOTMwMGMzMTBhMzAwODA2MDAxMzA0NTQ2NTczNzQzMDJhMzAwZDA2MDkyQTg2NDg4NkY3MEQwMTAxMDEwNTAwMDMxOTAwMzAxNjAyMTBmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjAyMDJmZmZmMzAwMjA2MDEwMzAyMDBmZiI6IiI6TUJFRFRMU19FUlJfWDUwOV9JTlZBTElEX0FMRyArIE1CRURUTFNfRVJSX0FTTjFfT1VUX09GX0RBVEEKIAogWDUwOSBDUlQgQVNOMSAoVEJTLCBpbnYgQWxnSUQsIE9JRCBlbXB0eSkKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2Ok1CRURUTFNfUlNBX0MKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTY6TUJFRFRMU19SU0FfQwogeDUwOXBhcnNlX2NydDoiMzA3ZjMwNzVhMDAzMDIwMTAwODIwNGRlYWRiZWVmMzAwMjA2MDAzMDBjMzEwYTMwMDgwNjAwMTMwNDU0NjU3Mzc0MzAxYzE3MGMzMDM5MzAzMTMwMzEzMDMwMzAzMDMwMzAxNzBjMzAzOTMxMzIzMzMxMzIzMzM1MzkzNTM5MzAwYzMxMGEzMDA4MDYwMDEzMDQ1NDY1NzM3NDMwMmEzMDBkMDYwOTJBODY0ODg2RjcwRDAxMDEwMTA1MDAwMzE5MDAzMDE2MDIxMGZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMDIwMmZmZmYzMDAyMDYwMDAzMDIwMGZmIjoiIjpNQkVEVExTX0VSUl9YNTA5X1VOS05PV05fU0lHX0FMRyArIE1CRURUTFNfRVJSX09JRF9OT1RfRk9VTkQKIAogWDUwOSBDUlQgQVNOMSAoVEJTLCBpbnYgQWxnSUQsIE9JRCB1bmtub3duKQotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTY6TUJFRFRMU19SU0FfQworZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NjpNQkVEVExTX1JTQV9DCiB4NTA5cGFyc2VfY3J0OiIzMDgxODczMDc5YTAwMzAyMDEwMDgyMDRkZWFkYmVlZjMwMDYwNjA0ZGVhZGJlZWYzMDBjMzEwYTMwMDgwNjAwMTMwNDU0NjU3Mzc0MzAxYzE3MGMzMDM5MzAzMTMwMzEzMDMwMzAzMDMwMzAxNzBjMzAzOTMxMzIzMzMxMzIzMzM1MzkzNTM5MzAwYzMxMGEzMDA4MDYwMDEzMDQ1NDY1NzM3NDMwMmEzMDBkMDYwOTJBODY0ODg2RjcwRDAxMDEwMTA1MDAwMzE5MDAzMDE2MDIxMGZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMDIwMmZmZmYzMDA2MDYwNGRlYWRiZWVmMDMwMjAwZmYiOiIiOk1CRURUTFNfRVJSX1g1MDlfVU5LTk9XTl9TSUdfQUxHICsgTUJFRFRMU19FUlJfT0lEX05PVF9GT1VORAogCiBYNTA5IENSVCBBU04xIChUQlMsIGludiBBbGdJRCwgcGFyYW0gaW52IGxlbmd0aCBlbmNvZGluZykKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2Ok1CRURUTFNfUlNBX0MKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTY6TUJFRFRMU19SU0FfQwogeDUwOXBhcnNlX2NydDoiMzA4MTk2MzA4MTgwYTAwMzAyMDEwMDgyMDRkZWFkYmVlZjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDY4NTMwMGMzMTBhMzAwODA2MDAxMzA0NTQ2NTczNzQzMDFjMTcwYzMwMzkzMDMxMzAzMTMwMzAzMDMwMzAzMDE3MGMzMDM5MzEzMjMzMzEzMjMzMzUzOTM1MzkzMDBjMzEwYTMwMDgwNjAwMTMwNDU0NjU3Mzc0MzAyYTMwMGQwNjA5MkE4NjQ4ODZGNzBEMDEwMTAxMDUwMDAzMTkwMDMwMTYwMjEwZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYwMjAyZmZmZjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDY4NTAzMDIwMGZmIjoiIjpNQkVEVExTX0VSUl9YNTA5X0lOVkFMSURfQUxHICsgTUJFRFRMU19FUlJfQVNOMV9JTlZBTElEX0xFTkdUSAogCiBYNTA5IENSVCBBU04xIChUQlMsIGludiBBbGdJRCwgcGFyYW0gbGVuZ3RoIG91dCBvZiBib3VuZHMpCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NjpNQkVEVExTX1JTQV9DCitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2Ok1CRURUTFNfUlNBX0MKIHg1MDlwYXJzZV9jcnQ6IjMwODE5NjMwODE4MGEwMDMwMjAxMDA4MjA0ZGVhZGJlZWYzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA2MDEzMDBjMzEwYTMwMDgwNjAwMTMwNDU0NjU3Mzc0MzAxYzE3MGMzMDM5MzAzMTMwMzEzMDMwMzAzMDMwMzAxNzBjMzAzOTMxMzIzMzMxMzIzMzM1MzkzNTM5MzAwYzMxMGEzMDA4MDYwMDEzMDQ1NDY1NzM3NDMwMmEzMDBkMDYwOTJBODY0ODg2RjcwRDAxMDEwMTA1MDAwMzE5MDAzMDE2MDIxMGZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMDIwMmZmZmYzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA2MDEwMzAyMDBmZiI6IiI6TUJFRFRMU19FUlJfWDUwOV9JTlZBTElEX0FMRyArIE1CRURUTFNfRVJSX0FTTjFfT1VUX09GX0RBVEEKIAogWDUwOSBDUlQgQVNOMSAoVEJTLCBpbnYgQWxnSUQsIHBhcmFtIGxlbmd0aCBtaXNtYXRjaCkKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2Ok1CRURUTFNfUlNBX0MKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTY6TUJFRFRMU19SU0FfQwogeDUwOXBhcnNlX2NydDoiMzA4MTlhMzA4MTgyYTAwMzAyMDEwMDgyMDRkZWFkYmVlZjMwMGYwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDYwMTAwMDAzMDBjMzEwYTMwMDgwNjAwMTMwNDU0NjU3Mzc0MzAxYzE3MGMzMDM5MzAzMTMwMzEzMDMwMzAzMDMwMzAxNzBjMzAzOTMxMzIzMzMxMzIzMzM1MzkzNTM5MzAwYzMxMGEzMDA4MDYwMDEzMDQ1NDY1NzM3NDMwMmEzMDBkMDYwOTJBODY0ODg2RjcwRDAxMDEwMTA1MDAwMzE5MDAzMDE2MDIxMGZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMDIwMmZmZmYzMDBmMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA2MDEwMDAwMDMwMjAwZmYiOiIiOk1CRURUTFNfRVJSX1g1MDlfSU5WQUxJRF9BTEcgKyBNQkVEVExTX0VSUl9BU04xX0xFTkdUSF9NSVNNQVRDSAogCiBYNTA5IENSVCBBU04xIChUQlMsIGludiBBbGdJRCwgcGFyYW1zIHByZXNlbnQgYnV0IGVtcHR5KQotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTY6TUJFRFRMU19SU0FfQworZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NjpNQkVEVExTX1JTQV9DCiB4NTA5cGFyc2VfY3J0OiIzMDgxOTYzMDgxODBhMDAzMDIwMTAwODIwNGRlYWRiZWVmMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNjAwMzAwYzMxMGEzMDA4MDYwMDEzMDQ1NDY1NzM3NDMwMWMxNzBjMzAzOTMwMzEzMDMxMzAzMDMwMzAzMDMwMTcwYzMwMzkzMTMyMzMzMTMyMzMzNTM5MzUzOTMwMGMzMTBhMzAwODA2MDAxMzA0NTQ2NTczNzQzMDJhMzAwZDA2MDkyQTg2NDg4NkY3MEQwMTAxMDEwNTAwMDMxOTAwMzAxNjAyMTBmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjAyMDJmZmZmMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNjAwMDMwMjAwZmYiOiIiOk1CRURUTFNfRVJSX1g1MDlfSU5WQUxJRF9BTEcKIAogWDUwOSBDUlQgQVNOMSAoVEJTLCBpbnYgQWxnSUQsIGJhZCBSU0FTU0EtUFNTIHBhcmFtcykKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2Ok1CRURUTFNfWDUwOV9SU0FTU0FfUFNTX1NVUFBPUlQKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTY6TUJFRFRMU19YNTA5X1JTQVNTQV9QU1NfU1VQUE9SVAogeDUwOXBhcnNlX2NydDoiMzA4MTk2MzA4MTgwYTAwMzAyMDEwMDgyMDRkZWFkYmVlZjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBhMzEwMDMwMGMzMTBhMzAwODA2MDAxMzA0NTQ2NTczNzQzMDFjMTcwYzMwMzkzMDMxMzAzMTMwMzAzMDMwMzAzMDE3MGMzMDM5MzEzMjMzMzEzMjMzMzUzOTM1MzkzMDBjMzEwYTMwMDgwNjAwMTMwNDU0NjU3Mzc0MzAyYTMwMGQwNjA5MkE4NjQ4ODZGNzBEMDEwMTAxMDUwMDAzMTkwMDMwMTYwMjEwZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYwMjAyZmZmZjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBhMzEwMDAzMDIwMGZmIjoiIjpNQkVEVExTX0VSUl9YNTA5X0lOVkFMSURfQUxHICsgTUJFRFRMU19FUlJfQVNOMV9VTkVYUEVDVEVEX1RBRwogCiBYNTA5IENSVCBBU04xIChUQlMsIElzc3VlciBtaXNzaW5nKQotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTY6TUJFRFRMU19SU0FfQworZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NjpNQkVEVExTX1JTQV9DCiB4NTA5cGFyc2VfY3J0OiIzMDJmMzAxYWEwMDMwMjAxMDA4MjA0ZGVhZGJlZWYzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAwMzAyMDBmZiI6IiI6TUJFRFRMU19FUlJfWDUwOV9JTlZBTElEX0ZPUk1BVCArIE1CRURUTFNfRVJSX0FTTjFfT1VUX09GX0RBVEEKIAogWDUwOSBDUlQgQVNOMSAoVEJTLCBpbnYgSXNzdWVyLCBSRE5TZXF1ZW5jZSBpbnYgdGFnKQotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTY6TUJFRFRMU19SU0FfQworZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NjpNQkVEVExTX1JTQV9DCiB4NTA5cGFyc2VfY3J0OiIzMDMxMzAxY2EwMDMwMjAxMDA4MjA0ZGVhZGJlZWYzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMDMwMjAwZmYiOiIiOk1CRURUTFNfRVJSX1g1MDlfSU5WQUxJRF9GT1JNQVQgKyBNQkVEVExTX0VSUl9BU04xX1VORVhQRUNURURfVEFHCiAKIFg1MDkgQ1JUIEFTTjEgKFRCUywgaW52IElzc3VlciwgUkROU2VxdWVuY2UgbGVuZ3RoIG1pc3NpbmcpCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NjpNQkVEVExTX1JTQV9DCitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2Ok1CRURUTFNfUlNBX0MKIHg1MDlwYXJzZV9jcnQ6IjMwMzAzMDFiYTAwMzAyMDEwMDgyMDRkZWFkYmVlZjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDMwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMDMwMjAwZmYiOiIiOk1CRURUTFNfRVJSX1g1MDlfSU5WQUxJRF9GT1JNQVQgKyBNQkVEVExTX0VSUl9BU04xX09VVF9PRl9EQVRBCiAKIFg1MDkgQ1JUIEFTTjEgKFRCUywgaW52IElzc3VlciwgUkROU2VxdWVuY2UgaW52IGxlbmd0aCBlbmNvZGluZykKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2Ok1CRURUTFNfUlNBX0MKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTY6TUJFRFRMU19SU0FfQwogeDUwOXBhcnNlX2NydDoiMzAzMTMwMWNhMDAzMDIwMTAwODIwNGRlYWRiZWVmMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMzA4NTMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDAzMDIwMGZmIjoiIjpNQkVEVExTX0VSUl9YNTA5X0lOVkFMSURfRk9STUFUICsgTUJFRFRMU19FUlJfQVNOMV9JTlZBTElEX0xFTkdUSAogCiBYNTA5IENSVCBBU04xIChUQlMsIGludiBJc3N1ZXIsIFJETlNlcXVlbmNlIGxlbmd0aCBvdXQgb2YgYm91bmRzKQotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTY6TUJFRFRMU19SU0FfQworZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NjpNQkVEVExTX1JTQV9DCiB4NTA5cGFyc2VfY3J0OiIzMDMxMzAxY2EwMDMwMjAxMDA4MjA0ZGVhZGJlZWYzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAzMDAxMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMDMwMjAwZmYiOiIiOk1CRURUTFNfRVJSX1g1MDlfSU5WQUxJRF9GT1JNQVQgKyBNQkVEVExTX0VSUl9BU04xX09VVF9PRl9EQVRBCiAKIFg1MDkgQ1JUIEFTTjEgKFRCUywgaW52IElzc3VlciwgUkROU2VxdWVuY2UgZW1wdHkpCi1kZXBlbmRzX29uOk1CRURUTFNfUlNBX0M6TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOk1CRURUTFNfUlNBX0M6UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHg1MDlwYXJzZV9jcnQ6IjMwODE4OTMwNzRhMDAzMDIwMTAyODIwNGRlYWRiZWVmMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMzAwMDMwMWMxNzBjMzAzOTMwMzEzMDMxMzAzMDMwMzAzMDMwMTcwYzMwMzkzMTMyMzMzMTMyMzMzNTM5MzUzOTMwMGMzMTBhMzAwODA2MDAxMzA0NTQ2NTczNzQzMDJhMzAwZDA2MDkyQTg2NDg4NkY3MEQwMTAxMDEwNTAwMDMxOTAwMzAxNjAyMTBmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjAyMDJmZmZmMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMDMwMjAwZmYiOiIiOk1CRURUTFNfRVJSX1g1MDlfSU5WQUxJRF9OQU1FICsgTUJFRFRMU19FUlJfQVNOMV9PVVRfT0ZfREFUQQogCiBYNTA5IENSVCBBU04xIChUQlMsIGludiBJc3N1ZXIsIFJETiBpbnYgdGFnKQotZGVwZW5kc19vbjpNQkVEVExTX1JTQV9DOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpNQkVEVExTX1JTQV9DOlBTQV9XQU5UX0FMR19TSEFfMjU2CiB4NTA5cGFyc2VfY3J0OiIzMDgxOGIzMDc2YTAwMzAyMDEwMjgyMDRkZWFkYmVlZjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDMwMDIwNTAwMzAxYzE3MGMzMDM5MzAzMTMwMzEzMDMwMzAzMDMwMzAxNzBjMzAzOTMxMzIzMzMxMzIzMzM1MzkzNTM5MzAwYzMxMGEzMDA4MDYwMDEzMDQ1NDY1NzM3NDMwMmEzMDBkMDYwOTJBODY0ODg2RjcwRDAxMDEwMTA1MDAwMzE5MDAzMDE2MDIxMGZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMDIwMmZmZmYzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAwMzAyMDBmZiI6IiI6TUJFRFRMU19FUlJfWDUwOV9JTlZBTElEX05BTUUgKyBNQkVEVExTX0VSUl9BU04xX1VORVhQRUNURURfVEFHCiAKIFg1MDkgQ1JUIEFTTjEgKFRCUywgaW52IElzc3VlciwgUkROIGludiBsZW5ndGggZW5jb2RpbmcpCi1kZXBlbmRzX29uOk1CRURUTFNfUlNBX0M6TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOk1CRURUTFNfUlNBX0M6UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHg1MDlwYXJzZV9jcnQ6IjMwODE4YjMwNzZhMDAzMDIwMTAyODIwNGRlYWRiZWVmMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMzAwMjMxODUzMDFjMTcwYzMwMzkzMDMxMzAzMTMwMzAzMDMwMzAzMDE3MGMzMDM5MzEzMjMzMzEzMjMzMzUzOTM1MzkzMDBjMzEwYTMwMDgwNjAwMTMwNDU0NjU3Mzc0MzAyYTMwMGQwNjA5MkE4NjQ4ODZGNzBEMDEwMTAxMDUwMDAzMTkwMDMwMTYwMjEwZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYwMjAyZmZmZjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDAzMDIwMGZmIjoiIjpNQkVEVExTX0VSUl9YNTA5X0lOVkFMSURfTkFNRSArIE1CRURUTFNfRVJSX0FTTjFfSU5WQUxJRF9MRU5HVEgKIAogWDUwOSBDUlQgQVNOMSAoVEJTLCBpbnYgSXNzdWVyLCBSRE4gbGVuZ3RoIG91dCBvZiBib3VuZHMpCi1kZXBlbmRzX29uOk1CRURUTFNfUlNBX0M6TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOk1CRURUTFNfUlNBX0M6UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHg1MDlwYXJzZV9jcnQ6IjMwODE4YjMwNzZhMDAzMDIwMTAyODIwNGRlYWRiZWVmMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMzAwMjMxMDEzMDFjMTcwYzMwMzkzMDMxMzAzMTMwMzAzMDMwMzAzMDE3MGMzMDM5MzEzMjMzMzEzMjMzMzUzOTM1MzkzMDBjMzEwYTMwMDgwNjAwMTMwNDU0NjU3Mzc0MzAyYTMwMGQwNjA5MkE4NjQ4ODZGNzBEMDEwMTAxMDUwMDAzMTkwMDMwMTYwMjEwZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYwMjAyZmZmZjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDAzMDIwMGZmIjoiIjpNQkVEVExTX0VSUl9YNTA5X0lOVkFMSURfTkFNRSArIE1CRURUTFNfRVJSX0FTTjFfT1VUX09GX0RBVEEKIAogWDUwOSBDUlQgQVNOMSAoVEJTLCBpbnYgSXNzdWVyLCBSRE4gZW1wdHkpCi1kZXBlbmRzX29uOk1CRURUTFNfUlNBX0M6TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOk1CRURUTFNfUlNBX0M6UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHg1MDlwYXJzZV9jcnQ6IjMwODE4YjMwNzZhMDAzMDIwMTAyODIwNGRlYWRiZWVmMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMzAwMjMxMDAzMDFjMTcwYzMwMzkzMDMxMzAzMTMwMzAzMDMwMzAzMDE3MGMzMDM5MzEzMjMzMzEzMjMzMzUzOTM1MzkzMDBjMzEwYTMwMDgwNjAwMTMwNDU0NjU3Mzc0MzAyYTMwMGQwNjA5MkE4NjQ4ODZGNzBEMDEwMTAxMDUwMDAzMTkwMDMwMTYwMjEwZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYwMjAyZmZmZjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDAzMDIwMGZmIjoiIjpNQkVEVExTX0VSUl9YNTA5X0lOVkFMSURfTkFNRSArIE1CRURUTFNfRVJSX0FTTjFfT1VUX09GX0RBVEEKIAogWDUwOSBDUlQgQVNOMSAoVEJTLCBpbnYgSXNzdWVyLCBBdHRyVHlwZUFuZFZhbHVlIGludiB0YWcpCi1kZXBlbmRzX29uOk1CRURUTFNfUlNBX0M6TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOk1CRURUTFNfUlNBX0M6UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHg1MDlwYXJzZV9jcnQ6IjMwODE4ZDMwNzhhMDAzMDIwMTAyODIwNGRlYWRiZWVmMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMzAwNDMxMDIwNTAwMzAxYzE3MGMzMDM5MzAzMTMwMzEzMDMwMzAzMDMwMzAxNzBjMzAzOTMxMzIzMzMxMzIzMzM1MzkzNTM5MzAwYzMxMGEzMDA4MDYwMDEzMDQ1NDY1NzM3NDMwMmEzMDBkMDYwOTJBODY0ODg2RjcwRDAxMDEwMTA1MDAwMzE5MDAzMDE2MDIxMGZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMDIwMmZmZmYzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAwMzAyMDBmZiI6IiI6TUJFRFRMU19FUlJfWDUwOV9JTlZBTElEX05BTUUgKyBNQkVEVExTX0VSUl9BU04xX1VORVhQRUNURURfVEFHCiAKIFg1MDkgQ1JUIEFTTjEgKFRCUywgaW52IElzc3VlciwgQXR0clR5cGVBbmRWYWx1ZSBpbnYgbGVuZ3RoIGVuY29kaW5nKQotZGVwZW5kc19vbjpNQkVEVExTX1JTQV9DOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpNQkVEVExTX1JTQV9DOlBTQV9XQU5UX0FMR19TSEFfMjU2CiB4NTA5cGFyc2VfY3J0OiIzMDgxOGQzMDc4YTAwMzAyMDEwMjgyMDRkZWFkYmVlZjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDMwMDQzMTAyMzA4NTMwMWMxNzBjMzAzOTMwMzEzMDMxMzAzMDMwMzAzMDMwMTcwYzMwMzkzMTMyMzMzMTMyMzMzNTM5MzUzOTMwMGMzMTBhMzAwODA2MDAxMzA0NTQ2NTczNzQzMDJhMzAwZDA2MDkyQTg2NDg4NkY3MEQwMTAxMDEwNTAwMDMxOTAwMzAxNjAyMTBmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjAyMDJmZmZmMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMDMwMjAwZmYiOiIiOk1CRURUTFNfRVJSX1g1MDlfSU5WQUxJRF9OQU1FICsgTUJFRFRMU19FUlJfQVNOMV9JTlZBTElEX0xFTkdUSAogCiBYNTA5IENSVCBBU04xIChUQlMsIGludiBJc3N1ZXIsIEF0dHJUeXBlQW5kVmFsdWUgbGVuZ3RoIG91dCBvZiBib3VuZHMpCi1kZXBlbmRzX29uOk1CRURUTFNfUlNBX0M6TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOk1CRURUTFNfUlNBX0M6UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHg1MDlwYXJzZV9jcnQ6IjMwODE4ZDMwNzhhMDAzMDIwMTAyODIwNGRlYWRiZWVmMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMzAwNDMxMDIzMDAxMzAxYzE3MGMzMDM5MzAzMTMwMzEzMDMwMzAzMDMwMzAxNzBjMzAzOTMxMzIzMzMxMzIzMzM1MzkzNTM5MzAwYzMxMGEzMDA4MDYwMDEzMDQ1NDY1NzM3NDMwMmEzMDBkMDYwOTJBODY0ODg2RjcwRDAxMDEwMTA1MDAwMzE5MDAzMDE2MDIxMGZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMDIwMmZmZmYzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAwMzAyMDBmZiI6IiI6TUJFRFRMU19FUlJfWDUwOV9JTlZBTElEX05BTUUgKyBNQkVEVExTX0VSUl9BU04xX09VVF9PRl9EQVRBCiAKIFg1MDkgQ1JUIEFTTjEgKFRCUywgaW52IElzc3VlciwgQXR0clR5cGVBbmRWYWx1ZSBlbXB0eSkKLWRlcGVuZHNfb246TUJFRFRMU19SU0FfQzpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246TUJFRFRMU19SU0FfQzpQU0FfV0FOVF9BTEdfU0hBXzI1NgogeDUwOXBhcnNlX2NydDoiMzA4MThkMzA3OGEwMDMwMjAxMDI4MjA0ZGVhZGJlZWYzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAzMDA0MzEwMjMwMDAzMDFjMTcwYzMwMzkzMDMxMzAzMTMwMzAzMDMwMzAzMDE3MGMzMDM5MzEzMjMzMzEzMjMzMzUzOTM1MzkzMDBjMzEwYTMwMDgwNjAwMTMwNDU0NjU3Mzc0MzAyYTMwMGQwNjA5MkE4NjQ4ODZGNzBEMDEwMTAxMDUwMDAzMTkwMDMwMTYwMjEwZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYwMjAyZmZmZjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDAzMDIwMGZmIjoiIjpNQkVEVExTX0VSUl9YNTA5X0lOVkFMSURfTkFNRSArIE1CRURUTFNfRVJSX0FTTjFfT1VUX09GX0RBVEEKIAogWDUwOSBDUlQgQVNOMSAoVEJTLCBpbnYgSXNzdWVyLCBBdHRyVHlwZUFuZFZhbHVlIHR5cGUgaW52IHRhZykKLWRlcGVuZHNfb246TUJFRFRMU19SU0FfQzpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246TUJFRFRMU19SU0FfQzpQU0FfV0FOVF9BTEdfU0hBXzI1NgogeDUwOXBhcnNlX2NydDoiMzA4MThmMzA3YWEwMDMwMjAxMDI4MjA0ZGVhZGJlZWYzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAzMDA2MzEwNDMwMDIwNTAwMzAxYzE3MGMzMDM5MzAzMTMwMzEzMDMwMzAzMDMwMzAxNzBjMzAzOTMxMzIzMzMxMzIzMzM1MzkzNTM5MzAwYzMxMGEzMDA4MDYwMDEzMDQ1NDY1NzM3NDMwMmEzMDBkMDYwOTJBODY0ODg2RjcwRDAxMDEwMTA1MDAwMzE5MDAzMDE2MDIxMGZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMDIwMmZmZmYzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAwMzAyMDBmZiI6IiI6TUJFRFRMU19FUlJfWDUwOV9JTlZBTElEX05BTUUgKyBNQkVEVExTX0VSUl9BU04xX1VORVhQRUNURURfVEFHCiAKIFg1MDkgQ1JUIEFTTjEgKFRCUywgaW52IElzc3VlciwgQXR0clR5cGVBbmRWYWx1ZSB0eXBlIGludiBubyBsZW5ndGggZGF0YSkKLWRlcGVuZHNfb246TUJFRFRMU19SU0FfQzpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246TUJFRFRMU19SU0FfQzpQU0FfV0FOVF9BTEdfU0hBXzI1NgogeDUwOXBhcnNlX2NydDoiMzA4MThlMzA3OWEwMDMwMjAxMDI4MjA0ZGVhZGJlZWYzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAzMDA1MzEwMzMwMDEwNjMwMWMxNzBjMzAzOTMwMzEzMDMxMzAzMDMwMzAzMDMwMTcwYzMwMzkzMTMyMzMzMTMyMzMzNTM5MzUzOTMwMGMzMTBhMzAwODA2MDAxMzA0NTQ2NTczNzQzMDJhMzAwZDA2MDkyQTg2NDg4NkY3MEQwMTAxMDEwNTAwMDMxOTAwMzAxNjAyMTBmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjAyMDJmZmZmMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMDMwMjAwZmYiOiIiOk1CRURUTFNfRVJSX1g1MDlfSU5WQUxJRF9OQU1FICsgTUJFRFRMU19FUlJfQVNOMV9PVVRfT0ZfREFUQQogCiBYNTA5IENSVCBBU04xIChUQlMsIGludiBJc3N1ZXIsIEF0dHJUeXBlQW5kVmFsdWUgdHlwZSBpbnYgbGVuZ3RoIGVuY29kaW5nKQotZGVwZW5kc19vbjpNQkVEVExTX1JTQV9DOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpNQkVEVExTX1JTQV9DOlBTQV9XQU5UX0FMR19TSEFfMjU2CiB4NTA5cGFyc2VfY3J0OiIzMDgxOGYzMDdhYTAwMzAyMDEwMjgyMDRkZWFkYmVlZjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDMwMDYzMTA0MzAwMjA2ODUzMDFjMTcwYzMwMzkzMDMxMzAzMTMwMzAzMDMwMzAzMDE3MGMzMDM5MzEzMjMzMzEzMjMzMzUzOTM1MzkzMDBjMzEwYTMwMDgwNjAwMTMwNDU0NjU3Mzc0MzAyYTMwMGQwNjA5MkE4NjQ4ODZGNzBEMDEwMTAxMDUwMDAzMTkwMDMwMTYwMjEwZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYwMjAyZmZmZjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDAzMDIwMGZmIjoiIjpNQkVEVExTX0VSUl9YNTA5X0lOVkFMSURfTkFNRSArIE1CRURUTFNfRVJSX0FTTjFfSU5WQUxJRF9MRU5HVEgKIAogWDUwOSBDUlQgQVNOMSAoVEJTLCBpbnYgSXNzdWVyLCBBdHRyVHlwZUFuZFZhbHVlIHR5cGUgbGVuZ3RoIG91dCBvZiBib3VuZHMpCi1kZXBlbmRzX29uOk1CRURUTFNfUlNBX0M6TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOk1CRURUTFNfUlNBX0M6UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHg1MDlwYXJzZV9jcnQ6IjMwODE4ZjMwN2FhMDAzMDIwMTAyODIwNGRlYWRiZWVmMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMzAwNjMxMDQzMDAyMDYwMTMwMWMxNzBjMzAzOTMwMzEzMDMxMzAzMDMwMzAzMDMwMTcwYzMwMzkzMTMyMzMzMTMyMzMzNTM5MzUzOTMwMGMzMTBhMzAwODA2MDAxMzA0NTQ2NTczNzQzMDJhMzAwZDA2MDkyQTg2NDg4NkY3MEQwMTAxMDEwNTAwMDMxOTAwMzAxNjAyMTBmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjAyMDJmZmZmMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMDMwMjAwZmYiOiIiOk1CRURUTFNfRVJSX1g1MDlfSU5WQUxJRF9OQU1FICsgTUJFRFRMU19FUlJfQVNOMV9PVVRfT0ZfREFUQQogCiBYNTA5IENSVCBBU04xIChUQlMsIGludiBJc3N1ZXIsIEF0dHJUeXBlQW5kVmFsdWUgdmFsdWUgbWlzc2luZykKLWRlcGVuZHNfb246TUJFRFRMU19SU0FfQzpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246TUJFRFRMU19SU0FfQzpQU0FfV0FOVF9BTEdfU0hBXzI1NgogeDUwOXBhcnNlX2NydDoiMzA4MThmMzA3YWEwMDMwMjAxMDI4MjA0ZGVhZGJlZWYzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAzMDA2MzEwNDMwMDIwNjAwMzAxYzE3MGMzMDM5MzAzMTMwMzEzMDMwMzAzMDMwMzAxNzBjMzAzOTMxMzIzMzMxMzIzMzM1MzkzNTM5MzAwYzMxMGEzMDA4MDYwMDEzMDQ1NDY1NzM3NDMwMmEzMDBkMDYwOTJBODY0ODg2RjcwRDAxMDEwMTA1MDAwMzE5MDAzMDE2MDIxMGZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMDIwMmZmZmYzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAwMzAyMDBmZiI6IiI6TUJFRFRMU19FUlJfWDUwOV9JTlZBTElEX05BTUUgKyBNQkVEVExTX0VSUl9BU04xX09VVF9PRl9EQVRBCiAKIFg1MDkgQ1JUIEFTTjEgKFRCUywgaW52IElzc3VlciwgQXR0clR5cGVBbmRWYWx1ZSB2YWx1ZSBpbnYgdGFnKQotZGVwZW5kc19vbjpNQkVEVExTX1JTQV9DOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpNQkVEVExTX1JTQV9DOlBTQV9XQU5UX0FMR19TSEFfMjU2CiB4NTA5cGFyc2VfY3J0OiIzMDgxOTEzMDdjYTAwMzAyMDEwMjgyMDRkZWFkYmVlZjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDMwMDgzMTA2MzAwNDA2MDAwNTAwMzAxYzE3MGMzMDM5MzAzMTMwMzEzMDMwMzAzMDMwMzAxNzBjMzAzOTMxMzIzMzMxMzIzMzM1MzkzNTM5MzAwYzMxMGEzMDA4MDYwMDEzMDQ1NDY1NzM3NDMwMmEzMDBkMDYwOTJBODY0ODg2RjcwRDAxMDEwMTA1MDAwMzE5MDAzMDE2MDIxMGZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMDIwMmZmZmYzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAwMzAyMDBmZiI6IiI6TUJFRFRMU19FUlJfWDUwOV9JTlZBTElEX05BTUUgKyBNQkVEVExTX0VSUl9BU04xX1VORVhQRUNURURfVEFHOwogCiBYNTA5IENSVCBBU04xIChUQlMsIGludiBJc3N1ZXIsIEF0dHJUeXBlQW5kVmFsdWUgdmFsdWUgbGVuZ3RoIG1pc3NpbmcpCi1kZXBlbmRzX29uOk1CRURUTFNfUlNBX0M6TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOk1CRURUTFNfUlNBX0M6UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHg1MDlwYXJzZV9jcnQ6IjMwODE5MDMwN2JhMDAzMDIwMTAyODIwNGRlYWRiZWVmMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMzAwNzMxMDUzMDAzMDYwMDBjMzAxYzE3MGMzMDM5MzAzMTMwMzEzMDMwMzAzMDMwMzAxNzBjMzAzOTMxMzIzMzMxMzIzMzM1MzkzNTM5MzAwYzMxMGEzMDA4MDYwMDEzMDQ1NDY1NzM3NDMwMmEzMDBkMDYwOTJBODY0ODg2RjcwRDAxMDEwMTA1MDAwMzE5MDAzMDE2MDIxMGZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMDIwMmZmZmYzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAwMzAyMDBmZiI6IiI6TUJFRFRMU19FUlJfWDUwOV9JTlZBTElEX05BTUUgKyBNQkVEVExTX0VSUl9BU04xX09VVF9PRl9EQVRBCiAKIFg1MDkgQ1JUIEFTTjEgKFRCUywgaW52IElzc3VlciwgQXR0clR5cGVBbmRWYWx1ZSB2YWx1ZSBpbnYgbGVuZ3RoIGVuY29kaW5nKQotZGVwZW5kc19vbjpNQkVEVExTX1JTQV9DOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpNQkVEVExTX1JTQV9DOlBTQV9XQU5UX0FMR19TSEFfMjU2CiB4NTA5cGFyc2VfY3J0OiIzMDgxOTEzMDdjYTAwMzAyMDEwMjgyMDRkZWFkYmVlZjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDMwMDgzMTA2MzAwNDA2MDAwQzg1MzAxYzE3MGMzMDM5MzAzMTMwMzEzMDMwMzAzMDMwMzAxNzBjMzAzOTMxMzIzMzMxMzIzMzM1MzkzNTM5MzAwYzMxMGEzMDA4MDYwMDEzMDQ1NDY1NzM3NDMwMmEzMDBkMDYwOTJBODY0ODg2RjcwRDAxMDEwMTA1MDAwMzE5MDAzMDE2MDIxMGZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMDIwMmZmZmYzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAwMzAyMDBmZiI6IiI6TUJFRFRMU19FUlJfWDUwOV9JTlZBTElEX05BTUUgKyBNQkVEVExTX0VSUl9BU04xX0lOVkFMSURfTEVOR1RICiAKIFg1MDkgQ1JUIEFTTjEgKFRCUywgaW52IElzc3VlciwgQXR0clR5cGVBbmRWYWx1ZSB2YWx1ZSBsZW5ndGggb3V0IG9mIGJvdW5kcykKLWRlcGVuZHNfb246TUJFRFRMU19SU0FfQzpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246TUJFRFRMU19SU0FfQzpQU0FfV0FOVF9BTEdfU0hBXzI1NgogeDUwOXBhcnNlX2NydDoiMzA4MTkxMzA3Y2EwMDMwMjAxMDI4MjA0ZGVhZGJlZWYzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAzMDA4MzEwNjMwMDQwNjAwMGMwMTMwMWMxNzBjMzAzOTMwMzEzMDMxMzAzMDMwMzAzMDMwMTcwYzMwMzkzMTMyMzMzMTMyMzMzNTM5MzUzOTMwMGMzMTBhMzAwODA2MDAxMzA0NTQ2NTczNzQzMDJhMzAwZDA2MDkyQTg2NDg4NkY3MEQwMTAxMDEwNTAwMDMxOTAwMzAxNjAyMTBmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjAyMDJmZmZmMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMDMwMjAwZmYiOiIiOk1CRURUTFNfRVJSX1g1MDlfSU5WQUxJRF9OQU1FICsgTUJFRFRMU19FUlJfQVNOMV9PVVRfT0ZfREFUQQogCiBYNTA5IENSVCBBU04xIChUQlMsIGludiBJc3N1ZXIsIEF0dHJUeXBlQW5kVmFsdWUgdmFsdWUgbGVuZ3RoIG1pc21hdGNoKQotZGVwZW5kc19vbjpNQkVEVExTX1JTQV9DOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpNQkVEVExTX1JTQV9DOlBTQV9XQU5UX0FMR19TSEFfMjU2CiB4NTA5cGFyc2VfY3J0OiIzMDgxOTMzMDdlYTAwMzAyMDEwMjgyMDRkZWFkYmVlZjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDMwMGEzMTA4MzAwNjA2MDAwYzAxMDAwMDMwMWMxNzBjMzAzOTMwMzEzMDMxMzAzMDMwMzAzMDMwMTcwYzMwMzkzMTMyMzMzMTMyMzMzNTM5MzUzOTMwMGMzMTBhMzAwODA2MDAxMzA0NTQ2NTczNzQzMDJhMzAwZDA2MDkyQTg2NDg4NkY3MEQwMTAxMDEwNTAwMDMxOTAwMzAxNjAyMTBmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjAyMDJmZmZmMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMDMwMjAwZmYiOiIiOk1CRURUTFNfRVJSX1g1MDlfSU5WQUxJRF9OQU1FICsgTUJFRFRMU19FUlJfQVNOMV9MRU5HVEhfTUlTTUFUQ0gKIAogWDUwOSBDUlQgQVNOMSAoVEJTLCBpbnYgSXNzdWVyLCAybmQgQXR0cmlidXRlVHlwZVZhbHVlIGVtcHR5KQotZGVwZW5kc19vbjpNQkVEVExTX1JTQV9DOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpNQkVEVExTX1JTQV9DOlBTQV9XQU5UX0FMR19TSEFfMjU2CiB4NTA5cGFyc2VfY3J0OiIzMDgxOTgzMDgxODJhMDAzMDIwMTAyODIwNGRlYWRiZWVmMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMzAwZTMxMGMzMDA4MDYwMDBjMDQ1NDY1NzM3NDMwMDAzMDFjMTcwYzMwMzkzMDMxMzAzMTMwMzAzMDMwMzAzMDE3MGMzMDM5MzEzMjMzMzEzMjMzMzUzOTM1MzkzMDBjMzEwYTMwMDgwNjAwMTMwNDU0NjU3Mzc0MzAyYTMwMGQwNjA5MkE4NjQ4ODZGNzBEMDEwMTAxMDUwMDAzMTkwMDMwMTYwMjEwZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYwMjAyZmZmZjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDAzMDIwMGZmIjoiIjpNQkVEVExTX0VSUl9YNTA5X0lOVkFMSURfTkFNRSArIE1CRURUTFNfRVJSX0FTTjFfT1VUX09GX0RBVEEKIAogWDUwOSBDUlQgQVNOMSAoVEJTLCBWYWxpZGl0eSBtaXNzaW5nKQotZGVwZW5kc19vbjpNQkVEVExTX1JTQV9DOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpNQkVEVExTX1JTQV9DOlBTQV9XQU5UX0FMR19TSEFfMjU2CiB4NTA5cGFyc2VfY3J0OiIzMDNkMzAyOGEwMDMwMjAxMDI4MjA0ZGVhZGJlZWYzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAzMDBjMzEwYTMwMDgwNjAwMGMwNDU0NjU3Mzc0MzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMDMwMjAwZmYiOiIiOk1CRURUTFNfRVJSX1g1MDlfSU5WQUxJRF9EQVRFICsgTUJFRFRMU19FUlJfQVNOMV9PVVRfT0ZfREFUQQogCiBYNTA5IENSVCBBU04xIChUQlMsIGludiBWYWxpZGl0eSwgaW52IHRhZykKLWRlcGVuZHNfb246TUJFRFRMU19SU0FfQzpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246TUJFRFRMU19SU0FfQzpQU0FfV0FOVF9BTEdfU0hBXzI1NgogeDUwOXBhcnNlX2NydDoiMzAzZjMwMmFhMDAzMDIwMTAyODIwNGRlYWRiZWVmMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMzAwYzMxMGEzMDA4MDYwMDBjMDQ1NDY1NzM3NDA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAwMzAyMDBmZiI6IiI6TUJFRFRMU19FUlJfWDUwOV9JTlZBTElEX0RBVEUgKyBNQkVEVExTX0VSUl9BU04xX1VORVhQRUNURURfVEFHCiAKIFg1MDkgQ1JUIEFTTjEgKFRCUywgaW52IFZhbGlkaXR5LCBsZW5ndGggZmllbGQgbWlzc2luZykKLWRlcGVuZHNfb246TUJFRFRMU19SU0FfQzpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246TUJFRFRMU19SU0FfQzpQU0FfV0FOVF9BTEdfU0hBXzI1NgogeDUwOXBhcnNlX2NydDoiMzAzZTMwMjlhMDAzMDIwMTAyODIwNGRlYWRiZWVmMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMzAwYzMxMGEzMDA4MDYwMDBjMDQ1NDY1NzM3NDMwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMDMwMjAwZmYiOiIiOk1CRURUTFNfRVJSX1g1MDlfSU5WQUxJRF9EQVRFICsgTUJFRFRMU19FUlJfQVNOMV9PVVRfT0ZfREFUQQogCiBYNTA5IENSVCBBU04xIChUQlMsIGludiBWYWxpZGl0eSwgaW52IGxlbmd0aCBlbmNvZGluZykKLWRlcGVuZHNfb246TUJFRFRMU19SU0FfQzpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246TUJFRFRMU19SU0FfQzpQU0FfV0FOVF9BTEdfU0hBXzI1NgogeDUwOXBhcnNlX2NydDoiMzAzZjMwMmFhMDAzMDIwMTAyODIwNGRlYWRiZWVmMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMzAwYzMxMGEzMDA4MDYwMDBjMDQ1NDY1NzM3NDMwODUzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAwMzAyMDBmZiI6IiI6TUJFRFRMU19FUlJfWDUwOV9JTlZBTElEX0RBVEUgKyBNQkVEVExTX0VSUl9BU04xX0lOVkFMSURfTEVOR1RICiAKIFg1MDkgQ1JUIEFTTjEgKFRCUywgaW52IFZhbGlkaXR5LCBsZW5ndGggb3V0IG9mIGJvdW5kcykKLWRlcGVuZHNfb246TUJFRFRMU19SU0FfQzpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246TUJFRFRMU19SU0FfQzpQU0FfV0FOVF9BTEdfU0hBXzI1NgogeDUwOXBhcnNlX2NydDoiMzAzZjMwMmFhMDAzMDIwMTAyODIwNGRlYWRiZWVmMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMzAwYzMxMGEzMDA4MDYwMDBjMDQ1NDY1NzM3NDMwMDEzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAwMzAyMDBmZiI6IiI6TUJFRFRMU19FUlJfWDUwOV9JTlZBTElEX0RBVEUgKyBNQkVEVExTX0VSUl9BU04xX09VVF9PRl9EQVRBCiAKIFg1MDkgQ1JUIEFTTjEgKFRCUywgaW52IFZhbGlkaXR5LCBub3RCZWZvcmUgbWlzc2luZykKLWRlcGVuZHNfb246TUJFRFRMU19SU0FfQzpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246TUJFRFRMU19SU0FfQzpQU0FfV0FOVF9BTEdfU0hBXzI1NgogeDUwOXBhcnNlX2NydDoiMzA3OTMwNjRhMDAzMDIwMTAyODIwNGRlYWRiZWVmMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMzAwYzMxMGEzMDA4MDYwMDBjMDQ1NDY1NzM3NDMwMDAzMDBjMzEwYTMwMDgwNjAwMTMwNDU0NjU3Mzc0MzAyYTMwMGQwNjA5MkE4NjQ4ODZGNzBEMDEwMTAxMDUwMDAzMTkwMDMwMTYwMjEwZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYwMjAyZmZmZjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDAzMDIwMGZmIjoiIjpNQkVEVExTX0VSUl9YNTA5X0lOVkFMSURfREFURSArIE1CRURUTFNfRVJSX0FTTjFfT1VUX09GX0RBVEEKIAogWDUwOSBDUlQgQVNOMSAoVEJTLCBpbnYgVmFsaWRpdHksIG5vdEJlZm9yZSBpbnYgdGFnKQotZGVwZW5kc19vbjpNQkVEVExTX1JTQV9DOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpNQkVEVExTX1JTQV9DOlBTQV9XQU5UX0FMR19TSEFfMjU2CiB4NTA5cGFyc2VfY3J0OiIzMDdiMzA2NmEwMDMwMjAxMDI4MjA0ZGVhZGJlZWYzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAzMDBjMzEwYTMwMDgwNjAwMGMwNDU0NjU3Mzc0MzAwMjA1MDAzMDBjMzEwYTMwMDgwNjAwMTMwNDU0NjU3Mzc0MzAyYTMwMGQwNjA5MkE4NjQ4ODZGNzBEMDEwMTAxMDUwMDAzMTkwMDMwMTYwMjEwZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYwMjAyZmZmZjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDAzMDIwMGZmIjoiIjpNQkVEVExTX0VSUl9YNTA5X0lOVkFMSURfREFURSArIE1CRURUTFNfRVJSX0FTTjFfVU5FWFBFQ1RFRF9UQUcKIAogWDUwOSBDUlQgQVNOMSAoVEJTLCBpbnYgVmFsaWRpdHksIG5vdEJlZm9yZSBubyBsZW5ndGgpCi1kZXBlbmRzX29uOk1CRURUTFNfUlNBX0M6TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOk1CRURUTFNfUlNBX0M6UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHg1MDlwYXJzZV9jcnQ6IjMwN2EzMDY1YTAwMzAyMDEwMjgyMDRkZWFkYmVlZjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDMwMGMzMTBhMzAwODA2MDAwYzA0NTQ2NTczNzQzMDAxMTczMDBjMzEwYTMwMDgwNjAwMTMwNDU0NjU3Mzc0MzAyYTMwMGQwNjA5MkE4NjQ4ODZGNzBEMDEwMTAxMDUwMDAzMTkwMDMwMTYwMjEwZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYwMjAyZmZmZjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDAzMDIwMGZmIjoiIjpNQkVEVExTX0VSUl9YNTA5X0lOVkFMSURfREFURSArIE1CRURUTFNfRVJSX0FTTjFfT1VUX09GX0RBVEEKIAogWDUwOSBDUlQgQVNOMSAoVEJTLCBpbnYgVmFsaWRpdHksIG5vdEJlZm9yZSBpbnYgbGVuZ3RoIGVuY29kaW5nKQotZGVwZW5kc19vbjpNQkVEVExTX1JTQV9DOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpNQkVEVExTX1JTQV9DOlBTQV9XQU5UX0FMR19TSEFfMjU2CiB4NTA5cGFyc2VfY3J0OiIzMDdiMzA2NmEwMDMwMjAxMDI4MjA0ZGVhZGJlZWYzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAzMDBjMzEwYTMwMDgwNjAwMGMwNDU0NjU3Mzc0MzAwMjE3OGYzMDBjMzEwYTMwMDgwNjAwMTMwNDU0NjU3Mzc0MzAyYTMwMGQwNjA5MkE4NjQ4ODZGNzBEMDEwMTAxMDUwMDAzMTkwMDMwMTYwMjEwZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYwMjAyZmZmZjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDAzMDIwMGZmIjoiIjpNQkVEVExTX0VSUl9YNTA5X0lOVkFMSURfREFURSArIE1CRURUTFNfRVJSX0FTTjFfSU5WQUxJRF9MRU5HVEgKIAogWDUwOSBDUlQgQVNOMSAoVEJTLCBpbnYgVmFsaWRpdHksIG5vdEJlZm9yZSBsZW5ndGggb3V0IG9mIGJvdW5kcykKLWRlcGVuZHNfb246TUJFRFRMU19SU0FfQzpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246TUJFRFRMU19SU0FfQzpQU0FfV0FOVF9BTEdfU0hBXzI1NgogeDUwOXBhcnNlX2NydDoiMzA3YjMwNjZhMDAzMDIwMTAyODIwNGRlYWRiZWVmMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMzAwYzMxMGEzMDA4MDYwMDBjMDQ1NDY1NzM3NDMwMDIxNzAxMzAwYzMxMGEzMDA4MDYwMDEzMDQ1NDY1NzM3NDMwMmEzMDBkMDYwOTJBODY0ODg2RjcwRDAxMDEwMTA1MDAwMzE5MDAzMDE2MDIxMGZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMDIwMmZmZmYzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAwMzAyMDBmZiI6IiI6TUJFRFRMU19FUlJfWDUwOV9JTlZBTElEX0RBVEUgKyBNQkVEVExTX0VSUl9BU04xX09VVF9PRl9EQVRBCiAKIFg1MDkgQ1JUIEFTTjEgKFRCUywgaW52IFZhbGlkaXR5LCBub3RCZWZvcmUgZW1wdHkpCi1kZXBlbmRzX29uOk1CRURUTFNfUlNBX0M6TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOk1CRURUTFNfUlNBX0M6UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHg1MDlwYXJzZV9jcnQ6IjMwODE4OTMwNzRhMDAzMDIwMTAwODIwNGRlYWRiZWVmMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMzAwYzMxMGEzMDA4MDYwMDEzMDQ1NDY1NzM3NDMwMTAxNzAwMTcwYzMwMzkzMTMyMzMzMTMyMzMzNTM5MzUzOTMwMGMzMTBhMzAwODA2MDAxMzA0NTQ2NTczNzQzMDJhMzAwZDA2MDkyQTg2NDg4NkY3MEQwMTAxMDEwNTAwMDMxOTAwMzAxNjAyMTBmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjAyMDJmZmZmMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMDMwMjAwZmYiOiIiOk1CRURUTFNfRVJSX1g1MDlfSU5WQUxJRF9EQVRFCiAKIFg1MDkgQ1JUIEFTTjEgKFRCUywgaW52IFZhbGlkaXR5LCBub3RCZWZvcmUgaW52YWxpZCkKLWRlcGVuZHNfb246TUJFRFRMU19SU0FfQzpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246TUJFRFRMU19SU0FfQzpQU0FfV0FOVF9BTEdfU0hBXzI1NgogeDUwOXBhcnNlX2NydDoiMzA4MTk2MzA4MTgwYTAwMzAyMDEwMDgyMDRkZWFkYmVlZjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDMwMGMzMTBhMzAwODA2MDAxMzA0NTQ2NTczNzQzMDFjMTcwYzMwMzkzMDMxMzAzMTMwMzAwMDAwMDAwMDE3MGMzMDM5MzEzMjMzMzEzMjMzMzUzOTM1MzkzMDBjMzEwYTMwMDgwNjAwMTMwNDU0NjU3Mzc0MzAyYTMwMGQwNjA5MkE4NjQ4ODZGNzBEMDEwMTAxMDUwMDAzMTkwMDMwMTYwMjEwZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYwMjAyZmZmZjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDAzMDIwMGZmIjoiIjpNQkVEVExTX0VSUl9YNTA5X0lOVkFMSURfREFURQogCiBYNTA5IENSVCBBU04xIChUQlMsIGludiBWYWxpZGl0eSwgbm90QWZ0ZXIgbWlzc2luZykKLWRlcGVuZHNfb246TUJFRFRMU19SU0FfQzpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246TUJFRFRMU19SU0FfQzpQU0FfV0FOVF9BTEdfU0hBXzI1NgogeDUwOXBhcnNlX2NydDoiMzA4MTg3MzA3MmEwMDMwMjAxMDA4MjA0ZGVhZGJlZWYzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAzMDBjMzEwYTMwMDgwNjAwMTMwNDU0NjU3Mzc0MzAwZTE3MGMzMDM5MzEzMjMzMzEzMjMzMzUzOTM1MzkzMDBjMzEwYTMwMDgwNjAwMTMwNDU0NjU3Mzc0MzAyYTMwMGQwNjA5MkE4NjQ4ODZGNzBEMDEwMTAxMDUwMDAzMTkwMDMwMTYwMjEwZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYwMjAyZmZmZjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDAzMDIwMGZmIjoiIjpNQkVEVExTX0VSUl9YNTA5X0lOVkFMSURfREFURSArIE1CRURUTFNfRVJSX0FTTjFfT1VUX09GX0RBVEEKIAogWDUwOSBDUlQgQVNOMSAoVEJTLCBpbnYgVmFsaWRpdHksIG5vdEFmdGVyIGludiB0YWcpCi1kZXBlbmRzX29uOk1CRURUTFNfUlNBX0M6TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOk1CRURUTFNfUlNBX0M6UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHg1MDlwYXJzZV9jcnQ6IjMwODE4OTMwNzRhMDAzMDIwMTAwODIwNGRlYWRiZWVmMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMzAwYzMxMGEzMDA4MDYwMDEzMDQ1NDY1NzM3NDMwMTAxNzBjMzAzOTMxMzIzMzMxMzIzMzM1MzkzNTM5MDUwMDMwMGMzMTBhMzAwODA2MDAxMzA0NTQ2NTczNzQzMDJhMzAwZDA2MDkyQTg2NDg4NkY3MEQwMTAxMDEwNTAwMDMxOTAwMzAxNjAyMTBmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjAyMDJmZmZmMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMDMwMjAwZmYiOiIiOk1CRURUTFNfRVJSX1g1MDlfSU5WQUxJRF9EQVRFICsgTUJFRFRMU19FUlJfQVNOMV9VTkVYUEVDVEVEX1RBRwogCiBYNTA5IENSVCBBU04xIChUQlMsIGludiBWYWxpZGl0eSwgbm90QWZ0ZXIgbGVuZ3RoIG1pc3NpbmcpCi1kZXBlbmRzX29uOk1CRURUTFNfUlNBX0M6TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOk1CRURUTFNfUlNBX0M6UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHg1MDlwYXJzZV9jcnQ6IjMwODE4ODMwNzNhMDAzMDIwMTAwODIwNGRlYWRiZWVmMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMzAwYzMxMGEzMDA4MDYwMDEzMDQ1NDY1NzM3NDMwMGYxNzBjMzAzOTMxMzIzMzMxMzIzMzM1MzkzNTM5MTczMDBjMzEwYTMwMDgwNjAwMTMwNDU0NjU3Mzc0MzAyYTMwMGQwNjA5MkE4NjQ4ODZGNzBEMDEwMTAxMDUwMDAzMTkwMDMwMTYwMjEwZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYwMjAyZmZmZjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDAzMDIwMGZmIjoiIjpNQkVEVExTX0VSUl9YNTA5X0lOVkFMSURfREFURSArIE1CRURUTFNfRVJSX0FTTjFfT1VUX09GX0RBVEEKIAogWDUwOSBDUlQgQVNOMSAoVEJTLCBpbnYgVmFsaWRpdHksIG5vdEFmdGVyIGludiBsZW5ndGggZW5jb2RpbmcpCi1kZXBlbmRzX29uOk1CRURUTFNfUlNBX0M6TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOk1CRURUTFNfUlNBX0M6UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHg1MDlwYXJzZV9jcnQ6IjMwODE4OTMwNzRhMDAzMDIwMTAwODIwNGRlYWRiZWVmMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMzAwYzMxMGEzMDA4MDYwMDEzMDQ1NDY1NzM3NDMwMTAxNzBjMzAzOTMxMzIzMzMxMzIzMzM1MzkzNTM5MTc4NTMwMGMzMTBhMzAwODA2MDAxMzA0NTQ2NTczNzQzMDJhMzAwZDA2MDkyQTg2NDg4NkY3MEQwMTAxMDEwNTAwMDMxOTAwMzAxNjAyMTBmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjAyMDJmZmZmMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMDMwMjAwZmYiOiIiOk1CRURUTFNfRVJSX1g1MDlfSU5WQUxJRF9EQVRFICsgTUJFRFRMU19FUlJfQVNOMV9JTlZBTElEX0xFTkdUSAogCiBYNTA5IENSVCBBU04xIChUQlMsIGludiBWYWxpZGl0eSwgbm90QWZ0ZXIgbGVuZ3RoIG91dCBvZiBib3VuZHMpCi1kZXBlbmRzX29uOk1CRURUTFNfUlNBX0M6TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOk1CRURUTFNfUlNBX0M6UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHg1MDlwYXJzZV9jcnQ6IjMwODE4OTMwNzRhMDAzMDIwMTAwODIwNGRlYWRiZWVmMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMzAwYzMxMGEzMDA4MDYwMDEzMDQ1NDY1NzM3NDMwMTAxNzBjMzAzOTMxMzIzMzMxMzIzMzM1MzkzNTM5MTcwMTMwMGMzMTBhMzAwODA2MDAxMzA0NTQ2NTczNzQzMDJhMzAwZDA2MDkyQTg2NDg4NkY3MEQwMTAxMDEwNTAwMDMxOTAwMzAxNjAyMTBmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjAyMDJmZmZmMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMDMwMjAwZmYiOiIiOk1CRURUTFNfRVJSX1g1MDlfSU5WQUxJRF9EQVRFICsgTUJFRFRMU19FUlJfQVNOMV9PVVRfT0ZfREFUQQogCiBYNTA5IENSVCBBU04xIChUQlMsIGludiBWYWxpZGl0eSwgbm90QWZ0ZXIgZW1wdHkpCi1kZXBlbmRzX29uOk1CRURUTFNfUlNBX0M6TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOk1CRURUTFNfUlNBX0M6UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHg1MDlwYXJzZV9jcnQ6IjMwODE4OTMwNzRhMDAzMDIwMTAwODIwNGRlYWRiZWVmMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMzAwYzMxMGEzMDA4MDYwMDEzMDQ1NDY1NzM3NDMwMTAxNzBjMzAzOTMxMzIzMzMxMzIzMzM1MzkzNTM5MTcwMDMwMGMzMTBhMzAwODA2MDAxMzA0NTQ2NTczNzQzMDJhMzAwZDA2MDkyQTg2NDg4NkY3MEQwMTAxMDEwNTAwMDMxOTAwMzAxNjAyMTBmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjAyMDJmZmZmMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMDMwMjAwZmYiOiIiOk1CRURUTFNfRVJSX1g1MDlfSU5WQUxJRF9EQVRFCiAKIFg1MDkgQ1JUIEFTTjEgKFRCUywgaW52IFZhbGlkaXR5LCBub3RBZnRlciBpbnZhbGlkKQotZGVwZW5kc19vbjpNQkVEVExTX1JTQV9DOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpNQkVEVExTX1JTQV9DOlBTQV9XQU5UX0FMR19TSEFfMjU2CiB4NTA5cGFyc2VfY3J0OiIzMDgxOTYzMDgxODBhMDAzMDIwMTAwODIwNGRlYWRiZWVmMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMzAwYzMxMGEzMDA4MDYwMDEzMDQ1NDY1NzM3NDMwMWMxNzBjMzAzOTMxMzIzMzMxMzIzMzM1MzkzNTM5MTcwYzMwMzkzMDMxMzAzMTMwMzAwMDAwMDAwMDMwMGMzMTBhMzAwODA2MDAxMzA0NTQ2NTczNzQzMDJhMzAwZDA2MDkyQTg2NDg4NkY3MEQwMTAxMDEwNTAwMDMxOTAwMzAxNjAyMTBmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjAyMDJmZmZmMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMDMwMjAwZmYiOiIiOk1CRURUTFNfRVJSX1g1MDlfSU5WQUxJRF9EQVRFCiAKIFg1MDkgQ1JUIEFTTjEgKFRCUywgaW52IFZhbGlkaXR5LCBkYXRhIHJlbWFpbmluZyBhZnRlciAnbm90QWZ0ZXInKQotZGVwZW5kc19vbjpNQkVEVExTX1JTQV9DOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpNQkVEVExTX1JTQV9DOlBTQV9XQU5UX0FMR19TSEFfMjU2CiB4NTA5cGFyc2VfY3J0OiIzMDgxOTgzMDgxODJhMDAzMDIwMTAwODIwNGRlYWRiZWVmMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMzAwYzMxMGEzMDA4MDYwMDEzMDQ1NDY1NzM3NDMwMWUxNzBjMzAzOTMwMzEzMDMxMzAzMDMwMzAzMDMwMTcwYzMwMzkzMTMyMzMzMTMyMzMzNTM5MzUzOTE3MDAzMDBjMzEwYTMwMDgwNjAwMTMwNDU0NjU3Mzc0MzAyYTMwMGQwNjA5MkE4NjQ4ODZGNzBEMDEwMTAxMDUwMDAzMTkwMDMwMTYwMjEwZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYwMjAyZmZmZjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDAzMDIwMGZmIjoiIjpNQkVEVExTX0VSUl9YNTA5X0lOVkFMSURfREFURSArIE1CRURUTFNfRVJSX0FTTjFfTEVOR1RIX01JU01BVENICiAKIFg1MDkgQ1JUIEFTTjEgKFRCUywgU3ViamVjdCBtaXNzaW5nKQotZGVwZW5kc19vbjpNQkVEVExTX1JTQV9DOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpNQkVEVExTX1JTQV9DOlBTQV9XQU5UX0FMR19TSEFfMjU2CiB4NTA5cGFyc2VfY3J0OiIzMDViMzA0NmEwMDMwMjAxMDA4MjA0ZGVhZGJlZWYzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAzMDBjMzEwYTMwMDgwNjAwMTMwNDU0NjU3Mzc0MzAxYzE3MGMzMDM5MzAzMTMwMzEzMDMwMzAzMDMwMzAxNzBjMzAzOTMxMzIzMzMxMzIzMzM1MzkzNTM5MzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMDMwMjAwZmYiOiIiOk1CRURUTFNfRVJSX1g1MDlfSU5WQUxJRF9GT1JNQVQgKyBNQkVEVExTX0VSUl9BU04xX09VVF9PRl9EQVRBCiAKIFg1MDkgQ1JUIEFTTjEgKFRCUywgaW52IFN1YmplY3QsIFJETlNlcXVlbmNlIGludiB0YWcpCi1kZXBlbmRzX29uOk1CRURUTFNfUlNBX0M6TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOk1CRURUTFNfUlNBX0M6UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHg1MDlwYXJzZV9jcnQ6IjMwNWMzMDQ3YTAwMzAyMDEwMDgyMDRkZWFkYmVlZjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDMwMGMzMTBhMzAwODA2MDAxMzA0NTQ2NTczNzQzMDFjMTcwYzMwMzkzMDMxMzAzMTMwMzAzMDMwMzAzMDE3MGMzMDM5MzEzMjMzMzEzMjMzMzUzOTM1MzkwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDAzMDIwMGZmIjoiIjpNQkVEVExTX0VSUl9YNTA5X0lOVkFMSURfRk9STUFUICsgTUJFRFRMU19FUlJfQVNOMV9VTkVYUEVDVEVEX1RBRwogCiBYNTA5IENSVCBBU04xIChUQlMsIGludiBTdWJqZWN0LCBSRE5TZXF1ZW5jZSBsZW5ndGggbWlzc2luZykKLWRlcGVuZHNfb246TUJFRFRMU19SU0FfQzpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246TUJFRFRMU19SU0FfQzpQU0FfV0FOVF9BTEdfU0hBXzI1NgogeDUwOXBhcnNlX2NydDoiMzA1YzMwNDdhMDAzMDIwMTAwODIwNGRlYWRiZWVmMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMzAwYzMxMGEzMDA4MDYwMDEzMDQ1NDY1NzM3NDMwMWMxNzBjMzAzOTMwMzEzMDMxMzAzMDMwMzAzMDMwMTcwYzMwMzkzMTMyMzMzMTMyMzMzNTM5MzUzOTMwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMDMwMjAwZmYiOiIiOk1CRURUTFNfRVJSX1g1MDlfSU5WQUxJRF9GT1JNQVQgKyBNQkVEVExTX0VSUl9BU04xX09VVF9PRl9EQVRBCiAKIFg1MDkgQ1JUIEFTTjEgKFRCUywgaW52IFN1YmplY3QsIFJETlNlcXVlbmNlIGludiBsZW5ndGggZW5jb2RpbmcpCi1kZXBlbmRzX29uOk1CRURUTFNfUlNBX0M6TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOk1CRURUTFNfUlNBX0M6UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHg1MDlwYXJzZV9jcnQ6IjMwNWQzMDQ4YTAwMzAyMDEwMDgyMDRkZWFkYmVlZjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDMwMGMzMTBhMzAwODA2MDAxMzA0NTQ2NTczNzQzMDFjMTcwYzMwMzkzMDMxMzAzMTMwMzAzMDMwMzAzMDE3MGMzMDM5MzEzMjMzMzEzMjMzMzUzOTM1MzkzMDg1MzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMDMwMjAwZmYiOiIiOk1CRURUTFNfRVJSX1g1MDlfSU5WQUxJRF9GT1JNQVQgKyBNQkVEVExTX0VSUl9BU04xX0lOVkFMSURfTEVOR1RICiAKIFg1MDkgQ1JUIEFTTjEgKFRCUywgaW52IFN1YmplY3QsIFJETlNlcXVlbmNlIGxlbmd0aCBvdXQgb2YgYm91bmRzKQotZGVwZW5kc19vbjpNQkVEVExTX1JTQV9DOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpNQkVEVExTX1JTQV9DOlBTQV9XQU5UX0FMR19TSEFfMjU2CiB4NTA5cGFyc2VfY3J0OiIzMDVkMzA0OGEwMDMwMjAxMDA4MjA0ZGVhZGJlZWYzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAzMDBjMzEwYTMwMDgwNjAwMTMwNDU0NjU3Mzc0MzAxYzE3MGMzMDM5MzAzMTMwMzEzMDMwMzAzMDMwMzAxNzBjMzAzOTMxMzIzMzMxMzIzMzM1MzkzNTM5MzAwMTMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDAzMDIwMGZmIjoiIjpNQkVEVExTX0VSUl9YNTA5X0lOVkFMSURfRk9STUFUICsgTUJFRFRMU19FUlJfQVNOMV9PVVRfT0ZfREFUQQogCiBYNTA5IENSVCBBU04xIChUQlMsIGludiBTdWJqZWN0LCBSRE4gaW52IHRhZykKLWRlcGVuZHNfb246TUJFRFRMU19SU0FfQzpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246TUJFRFRMU19SU0FfQzpQU0FfV0FOVF9BTEdfU0hBXzI1NgogeDUwOXBhcnNlX2NydDoiMzA4MThiMzA3NmEwMDMwMjAxMDI4MjA0ZGVhZGJlZWYzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAzMDBjMzEwYTMwMDgwNjAwMTMwNDU0NjU3Mzc0MzAxYzE3MGMzMDM5MzAzMTMwMzEzMDMwMzAzMDMwMzAxNzBjMzAzOTMxMzIzMzMxMzIzMzM1MzkzNTM5MzAwMjA1MDAzMDJhMzAwZDA2MDkyQTg2NDg4NkY3MEQwMTAxMDEwNTAwMDMxOTAwMzAxNjAyMTBmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjAyMDJmZmZmMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMDMwMjAwZmYiOiIiOk1CRURUTFNfRVJSX1g1MDlfSU5WQUxJRF9OQU1FICsgTUJFRFRMU19FUlJfQVNOMV9VTkVYUEVDVEVEX1RBRwogCiBYNTA5IENSVCBBU04xIChUQlMsIGludiBTdWJqZWN0LCBSRE4gaW52IGxlbmd0aCBlbmNvZGluZykKLWRlcGVuZHNfb246TUJFRFRMU19SU0FfQzpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246TUJFRFRMU19SU0FfQzpQU0FfV0FOVF9BTEdfU0hBXzI1NgogeDUwOXBhcnNlX2NydDoiMzA4MThiMzA3NmEwMDMwMjAxMDI4MjA0ZGVhZGJlZWYzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAzMDBjMzEwYTMwMDgwNjAwMTMwNDU0NjU3Mzc0MzAxYzE3MGMzMDM5MzAzMTMwMzEzMDMwMzAzMDMwMzAxNzBjMzAzOTMxMzIzMzMxMzIzMzM1MzkzNTM5MzAwMjMxODUzMDJhMzAwZDA2MDkyQTg2NDg4NkY3MEQwMTAxMDEwNTAwMDMxOTAwMzAxNjAyMTBmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjAyMDJmZmZmMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMDMwMjAwZmYiOiIiOk1CRURUTFNfRVJSX1g1MDlfSU5WQUxJRF9OQU1FICsgTUJFRFRMU19FUlJfQVNOMV9JTlZBTElEX0xFTkdUSAogCiBYNTA5IENSVCBBU04xIChUQlMsIGludiBTdWJqZWN0LCBSRE4gbGVuZ3RoIG91dCBvZiBib3VuZHMpCi1kZXBlbmRzX29uOk1CRURUTFNfUlNBX0M6TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOk1CRURUTFNfUlNBX0M6UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHg1MDlwYXJzZV9jcnQ6IjMwODE4YjMwNzZhMDAzMDIwMTAyODIwNGRlYWRiZWVmMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMzAwYzMxMGEzMDA4MDYwMDEzMDQ1NDY1NzM3NDMwMWMxNzBjMzAzOTMwMzEzMDMxMzAzMDMwMzAzMDMwMTcwYzMwMzkzMTMyMzMzMTMyMzMzNTM5MzUzOTMwMDIzMTAxMzAyYTMwMGQwNjA5MkE4NjQ4ODZGNzBEMDEwMTAxMDUwMDAzMTkwMDMwMTYwMjEwZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYwMjAyZmZmZjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDAzMDIwMGZmIjoiIjpNQkVEVExTX0VSUl9YNTA5X0lOVkFMSURfTkFNRSArIE1CRURUTFNfRVJSX0FTTjFfT1VUX09GX0RBVEEKIAogWDUwOSBDUlQgQVNOMSAoVEJTLCBpbnYgU3ViamVjdCwgUkROIGVtcHR5KQotZGVwZW5kc19vbjpNQkVEVExTX1JTQV9DOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpNQkVEVExTX1JTQV9DOlBTQV9XQU5UX0FMR19TSEFfMjU2CiB4NTA5cGFyc2VfY3J0OiIzMDgxOGIzMDc2YTAwMzAyMDEwMjgyMDRkZWFkYmVlZjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDMwMGMzMTBhMzAwODA2MDAxMzA0NTQ2NTczNzQzMDFjMTcwYzMwMzkzMDMxMzAzMTMwMzAzMDMwMzAzMDE3MGMzMDM5MzEzMjMzMzEzMjMzMzUzOTM1MzkzMDAyMzEwMDMwMmEzMDBkMDYwOTJBODY0ODg2RjcwRDAxMDEwMTA1MDAwMzE5MDAzMDE2MDIxMGZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMDIwMmZmZmYzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAwMzAyMDBmZiI6IiI6TUJFRFRMU19FUlJfWDUwOV9JTlZBTElEX05BTUUgKyBNQkVEVExTX0VSUl9BU04xX09VVF9PRl9EQVRBCiAKIFg1MDkgQ1JUIEFTTjEgKFRCUywgaW52IFN1YmplY3QsIEF0dHJUeXBlQW5kVmFsdWUgaW52IHRhZykKLWRlcGVuZHNfb246TUJFRFRMU19SU0FfQzpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246TUJFRFRMU19SU0FfQzpQU0FfV0FOVF9BTEdfU0hBXzI1NgogeDUwOXBhcnNlX2NydDoiMzA4MThkMzA3OGEwMDMwMjAxMDI4MjA0ZGVhZGJlZWYzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAzMDBjMzEwYTMwMDgwNjAwMTMwNDU0NjU3Mzc0MzAxYzE3MGMzMDM5MzAzMTMwMzEzMDMwMzAzMDMwMzAxNzBjMzAzOTMxMzIzMzMxMzIzMzM1MzkzNTM5MzAwNDMxMDIwNTAwMzAyYTMwMGQwNjA5MkE4NjQ4ODZGNzBEMDEwMTAxMDUwMDAzMTkwMDMwMTYwMjEwZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYwMjAyZmZmZjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDAzMDIwMGZmIjoiIjpNQkVEVExTX0VSUl9YNTA5X0lOVkFMSURfTkFNRSArIE1CRURUTFNfRVJSX0FTTjFfVU5FWFBFQ1RFRF9UQUcKIAogWDUwOSBDUlQgQVNOMSAoVEJTLCBpbnYgU3ViamVjdCwgQXR0clR5cGVBbmRWYWx1ZSBpbnYgbGVuZ3RoIGVuY29kaW5nKQotZGVwZW5kc19vbjpNQkVEVExTX1JTQV9DOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpNQkVEVExTX1JTQV9DOlBTQV9XQU5UX0FMR19TSEFfMjU2CiB4NTA5cGFyc2VfY3J0OiIzMDgxOGQzMDc4YTAwMzAyMDEwMjgyMDRkZWFkYmVlZjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDMwMGMzMTBhMzAwODA2MDAxMzA0NTQ2NTczNzQzMDFjMTcwYzMwMzkzMDMxMzAzMTMwMzAzMDMwMzAzMDE3MGMzMDM5MzEzMjMzMzEzMjMzMzUzOTM1MzkzMDA0MzEwMjMwODUzMDJhMzAwZDA2MDkyQTg2NDg4NkY3MEQwMTAxMDEwNTAwMDMxOTAwMzAxNjAyMTBmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjAyMDJmZmZmMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMDMwMjAwZmYiOiIiOk1CRURUTFNfRVJSX1g1MDlfSU5WQUxJRF9OQU1FICsgTUJFRFRMU19FUlJfQVNOMV9JTlZBTElEX0xFTkdUSAogCiBYNTA5IENSVCBBU04xIChUQlMsIGludiBTdWJqZWN0LCBBdHRyVHlwZUFuZFZhbHVlIGxlbmd0aCBvdXQgb2YgYm91bmRzKQotZGVwZW5kc19vbjpNQkVEVExTX1JTQV9DOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpNQkVEVExTX1JTQV9DOlBTQV9XQU5UX0FMR19TSEFfMjU2CiB4NTA5cGFyc2VfY3J0OiIzMDgxOGQzMDc4YTAwMzAyMDEwMjgyMDRkZWFkYmVlZjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDMwMGMzMTBhMzAwODA2MDAxMzA0NTQ2NTczNzQzMDFjMTcwYzMwMzkzMDMxMzAzMTMwMzAzMDMwMzAzMDE3MGMzMDM5MzEzMjMzMzEzMjMzMzUzOTM1MzkzMDA0MzEwMjMwMDEzMDJhMzAwZDA2MDkyQTg2NDg4NkY3MEQwMTAxMDEwNTAwMDMxOTAwMzAxNjAyMTBmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjAyMDJmZmZmMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMDMwMjAwZmYiOiIiOk1CRURUTFNfRVJSX1g1MDlfSU5WQUxJRF9OQU1FICsgTUJFRFRMU19FUlJfQVNOMV9PVVRfT0ZfREFUQQogCiBYNTA5IENSVCBBU04xIChUQlMsIGludiBTdWJqZWN0LCBBdHRyVHlwZUFuZFZhbHVlIGVtcHR5KQotZGVwZW5kc19vbjpNQkVEVExTX1JTQV9DOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpNQkVEVExTX1JTQV9DOlBTQV9XQU5UX0FMR19TSEFfMjU2CiB4NTA5cGFyc2VfY3J0OiIzMDgxOGQzMDc4YTAwMzAyMDEwMjgyMDRkZWFkYmVlZjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDMwMGMzMTBhMzAwODA2MDAxMzA0NTQ2NTczNzQzMDFjMTcwYzMwMzkzMDMxMzAzMTMwMzAzMDMwMzAzMDE3MGMzMDM5MzEzMjMzMzEzMjMzMzUzOTM1MzkzMDA0MzEwMjMwMDAzMDJhMzAwZDA2MDkyQTg2NDg4NkY3MEQwMTAxMDEwNTAwMDMxOTAwMzAxNjAyMTBmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjAyMDJmZmZmMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMDMwMjAwZmYiOiIiOk1CRURUTFNfRVJSX1g1MDlfSU5WQUxJRF9OQU1FICsgTUJFRFRMU19FUlJfQVNOMV9PVVRfT0ZfREFUQQogCiBYNTA5IENSVCBBU04xIChUQlMsIGludiBTdWJqZWN0LCBBdHRyVHlwZUFuZFZhbHVlIHR5cGUgaW52IHRhZykKLWRlcGVuZHNfb246TUJFRFRMU19SU0FfQzpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246TUJFRFRMU19SU0FfQzpQU0FfV0FOVF9BTEdfU0hBXzI1NgogeDUwOXBhcnNlX2NydDoiMzA4MThmMzA3YWEwMDMwMjAxMDI4MjA0ZGVhZGJlZWYzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAzMDBjMzEwYTMwMDgwNjAwMTMwNDU0NjU3Mzc0MzAxYzE3MGMzMDM5MzAzMTMwMzEzMDMwMzAzMDMwMzAxNzBjMzAzOTMxMzIzMzMxMzIzMzM1MzkzNTM5MzAwNjMxMDQzMDAyMDUwMDMwMmEzMDBkMDYwOTJBODY0ODg2RjcwRDAxMDEwMTA1MDAwMzE5MDAzMDE2MDIxMGZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMDIwMmZmZmYzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAwMzAyMDBmZiI6IiI6TUJFRFRMU19FUlJfWDUwOV9JTlZBTElEX05BTUUgKyBNQkVEVExTX0VSUl9BU04xX1VORVhQRUNURURfVEFHCiAKIFg1MDkgQ1JUIEFTTjEgKFRCUywgaW52IFN1YmplY3QsIEF0dHJUeXBlQW5kVmFsdWUgdHlwZSBpbnYgbm8gbGVuZ3RoIGRhdGEpCi1kZXBlbmRzX29uOk1CRURUTFNfUlNBX0M6TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOk1CRURUTFNfUlNBX0M6UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHg1MDlwYXJzZV9jcnQ6IjMwODE4ZTMwNzlhMDAzMDIwMTAyODIwNGRlYWRiZWVmMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMzAwYzMxMGEzMDA4MDYwMDEzMDQ1NDY1NzM3NDMwMWMxNzBjMzAzOTMwMzEzMDMxMzAzMDMwMzAzMDMwMTcwYzMwMzkzMTMyMzMzMTMyMzMzNTM5MzUzOTMwMDUzMTAzMzAwMTA2MzAyYTMwMGQwNjA5MkE4NjQ4ODZGNzBEMDEwMTAxMDUwMDAzMTkwMDMwMTYwMjEwZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYwMjAyZmZmZjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDAzMDIwMGZmIjoiIjpNQkVEVExTX0VSUl9YNTA5X0lOVkFMSURfTkFNRSArIE1CRURUTFNfRVJSX0FTTjFfT1VUX09GX0RBVEEKIAogWDUwOSBDUlQgQVNOMSAoVEJTLCBpbnYgU3ViamVjdCwgQXR0clR5cGVBbmRWYWx1ZSB0eXBlIGludiBsZW5ndGggZW5jb2RpbmcpCi1kZXBlbmRzX29uOk1CRURUTFNfUlNBX0M6TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOk1CRURUTFNfUlNBX0M6UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHg1MDlwYXJzZV9jcnQ6IjMwODE4ZjMwN2FhMDAzMDIwMTAyODIwNGRlYWRiZWVmMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMzAwYzMxMGEzMDA4MDYwMDEzMDQ1NDY1NzM3NDMwMWMxNzBjMzAzOTMwMzEzMDMxMzAzMDMwMzAzMDMwMTcwYzMwMzkzMTMyMzMzMTMyMzMzNTM5MzUzOTMwMDYzMTA0MzAwMjA2ODUzMDJhMzAwZDA2MDkyQTg2NDg4NkY3MEQwMTAxMDEwNTAwMDMxOTAwMzAxNjAyMTBmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjAyMDJmZmZmMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMDMwMjAwZmYiOiIiOk1CRURUTFNfRVJSX1g1MDlfSU5WQUxJRF9OQU1FICsgTUJFRFRMU19FUlJfQVNOMV9JTlZBTElEX0xFTkdUSAogCiBYNTA5IENSVCBBU04xIChUQlMsIGludiBTdWJqZWN0LCBBdHRyVHlwZUFuZFZhbHVlIHR5cGUgbGVuZ3RoIG91dCBvZiBib3VuZHMgKQotZGVwZW5kc19vbjpNQkVEVExTX1JTQV9DOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpNQkVEVExTX1JTQV9DOlBTQV9XQU5UX0FMR19TSEFfMjU2CiB4NTA5cGFyc2VfY3J0OiIzMDgxOGYzMDdhYTAwMzAyMDEwMjgyMDRkZWFkYmVlZjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDMwMGMzMTBhMzAwODA2MDAxMzA0NTQ2NTczNzQzMDFjMTcwYzMwMzkzMDMxMzAzMTMwMzAzMDMwMzAzMDE3MGMzMDM5MzEzMjMzMzEzMjMzMzUzOTM1MzkzMDA2MzEwNDMwMDIwNjAxMzAyYTMwMGQwNjA5MkE4NjQ4ODZGNzBEMDEwMTAxMDUwMDAzMTkwMDMwMTYwMjEwZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYwMjAyZmZmZjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDAzMDIwMGZmIjoiIjpNQkVEVExTX0VSUl9YNTA5X0lOVkFMSURfTkFNRSArIE1CRURUTFNfRVJSX0FTTjFfT1VUX09GX0RBVEEKIAogWDUwOSBDUlQgQVNOMSAoVEJTLCBpbnYgU3ViamVjdCwgQXR0clR5cGVBbmRWYWx1ZSB2YWx1ZSBtaXNzaW5nKQotZGVwZW5kc19vbjpNQkVEVExTX1JTQV9DOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpNQkVEVExTX1JTQV9DOlBTQV9XQU5UX0FMR19TSEFfMjU2CiB4NTA5cGFyc2VfY3J0OiIzMDgxOGYzMDdhYTAwMzAyMDEwMjgyMDRkZWFkYmVlZjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDMwMGMzMTBhMzAwODA2MDAxMzA0NTQ2NTczNzQzMDFjMTcwYzMwMzkzMDMxMzAzMTMwMzAzMDMwMzAzMDE3MGMzMDM5MzEzMjMzMzEzMjMzMzUzOTM1MzkzMDA2MzEwNDMwMDIwNjAwMzAyYTMwMGQwNjA5MkE4NjQ4ODZGNzBEMDEwMTAxMDUwMDAzMTkwMDMwMTYwMjEwZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYwMjAyZmZmZjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDAzMDIwMGZmIjoiIjpNQkVEVExTX0VSUl9YNTA5X0lOVkFMSURfTkFNRSArIE1CRURUTFNfRVJSX0FTTjFfT1VUX09GX0RBVEEKIAogWDUwOSBDUlQgQVNOMSAoVEJTLCBpbnYgU3ViamVjdCwgQXR0clR5cGVBbmRWYWx1ZSB2YWx1ZSBpbnYgdGFnKQotZGVwZW5kc19vbjpNQkVEVExTX1JTQV9DOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpNQkVEVExTX1JTQV9DOlBTQV9XQU5UX0FMR19TSEFfMjU2CiB4NTA5cGFyc2VfY3J0OiIzMDgxOTEzMDdjYTAwMzAyMDEwMjgyMDRkZWFkYmVlZjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDMwMGMzMTBhMzAwODA2MDAxMzA0NTQ2NTczNzQzMDFjMTcwYzMwMzkzMDMxMzAzMTMwMzAzMDMwMzAzMDE3MGMzMDM5MzEzMjMzMzEzMjMzMzUzOTM1MzkzMDA4MzEwNjMwMDQwNjAwMDUwMDMwMmEzMDBkMDYwOTJBODY0ODg2RjcwRDAxMDEwMTA1MDAwMzE5MDAzMDE2MDIxMGZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMDIwMmZmZmYzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAwMzAyMDBmZiI6IiI6TUJFRFRMU19FUlJfWDUwOV9JTlZBTElEX05BTUUgKyBNQkVEVExTX0VSUl9BU04xX1VORVhQRUNURURfVEFHOwogCiBYNTA5IENSVCBBU04xIChUQlMsIGludiBTdWJqZWN0LCBBdHRyVHlwZUFuZFZhbHVlIHZhbHVlIGxlbmd0aCBtaXNzaW5nKQotZGVwZW5kc19vbjpNQkVEVExTX1JTQV9DOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpNQkVEVExTX1JTQV9DOlBTQV9XQU5UX0FMR19TSEFfMjU2CiB4NTA5cGFyc2VfY3J0OiIzMDgxOTAzMDdiYTAwMzAyMDEwMjgyMDRkZWFkYmVlZjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDMwMGMzMTBhMzAwODA2MDAxMzA0NTQ2NTczNzQzMDFjMTcwYzMwMzkzMDMxMzAzMTMwMzAzMDMwMzAzMDE3MGMzMDM5MzEzMjMzMzEzMjMzMzUzOTM1MzkzMDA3MzEwNTMwMDMwNjAwMGMzMDJhMzAwZDA2MDkyQTg2NDg4NkY3MEQwMTAxMDEwNTAwMDMxOTAwMzAxNjAyMTBmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjAyMDJmZmZmMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMDMwMjAwZmYiOiIiOk1CRURUTFNfRVJSX1g1MDlfSU5WQUxJRF9OQU1FICsgTUJFRFRMU19FUlJfQVNOMV9PVVRfT0ZfREFUQQogCiBYNTA5IENSVCBBU04xIChUQlMsIGludiBTdWJqZWN0LCBBdHRyVHlwZUFuZFZhbHVlIHZhbHVlIGludiBsZW5ndGggZW5jb2RpbmcpCi1kZXBlbmRzX29uOk1CRURUTFNfUlNBX0M6TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOk1CRURUTFNfUlNBX0M6UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHg1MDlwYXJzZV9jcnQ6IjMwODE5MTMwN2NhMDAzMDIwMTAyODIwNGRlYWRiZWVmMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMzAwYzMxMGEzMDA4MDYwMDEzMDQ1NDY1NzM3NDMwMWMxNzBjMzAzOTMwMzEzMDMxMzAzMDMwMzAzMDMwMTcwYzMwMzkzMTMyMzMzMTMyMzMzNTM5MzUzOTMwMDgzMTA2MzAwNDA2MDAwQzg1MzAyYTMwMGQwNjA5MkE4NjQ4ODZGNzBEMDEwMTAxMDUwMDAzMTkwMDMwMTYwMjEwZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYwMjAyZmZmZjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDAzMDIwMGZmIjoiIjpNQkVEVExTX0VSUl9YNTA5X0lOVkFMSURfTkFNRSArIE1CRURUTFNfRVJSX0FTTjFfSU5WQUxJRF9MRU5HVEgKIAogWDUwOSBDUlQgQVNOMSAoVEJTLCBpbnYgU3ViamVjdCwgQXR0clR5cGVBbmRWYWx1ZSB2YWx1ZSBsZW5ndGggb3V0IG9mIGJvdW5kcykKLWRlcGVuZHNfb246TUJFRFRMU19SU0FfQzpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246TUJFRFRMU19SU0FfQzpQU0FfV0FOVF9BTEdfU0hBXzI1NgogeDUwOXBhcnNlX2NydDoiMzA4MTkxMzA3Y2EwMDMwMjAxMDI4MjA0ZGVhZGJlZWYzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAzMDBjMzEwYTMwMDgwNjAwMTMwNDU0NjU3Mzc0MzAxYzE3MGMzMDM5MzAzMTMwMzEzMDMwMzAzMDMwMzAxNzBjMzAzOTMxMzIzMzMxMzIzMzM1MzkzNTM5MzAwODMxMDYzMDA0MDYwMDBjMDEzMDJhMzAwZDA2MDkyQTg2NDg4NkY3MEQwMTAxMDEwNTAwMDMxOTAwMzAxNjAyMTBmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjAyMDJmZmZmMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMDMwMjAwZmYiOiIiOk1CRURUTFNfRVJSX1g1MDlfSU5WQUxJRF9OQU1FICsgTUJFRFRMU19FUlJfQVNOMV9PVVRfT0ZfREFUQQogCiBYNTA5IENSVCBBU04xIChUQlMsIGludiBTdWJqZWN0LCBBdHRyVHlwZUFuZFZhbHVlIHZhbHVlIGxlbmd0aCBtaXNtYXRjaCkKLWRlcGVuZHNfb246TUJFRFRMU19SU0FfQzpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246TUJFRFRMU19SU0FfQzpQU0FfV0FOVF9BTEdfU0hBXzI1NgogeDUwOXBhcnNlX2NydDoiMzA4MTkzMzA3ZWEwMDMwMjAxMDI4MjA0ZGVhZGJlZWYzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAzMDBjMzEwYTMwMDgwNjAwMTMwNDU0NjU3Mzc0MzAxYzE3MGMzMDM5MzAzMTMwMzEzMDMwMzAzMDMwMzAxNzBjMzAzOTMxMzIzMzMxMzIzMzM1MzkzNTM5MzAwYTMxMDgzMDA2MDYwMDBjMDEwMDAwMzAyYTMwMGQwNjA5MkE4NjQ4ODZGNzBEMDEwMTAxMDUwMDAzMTkwMDMwMTYwMjEwZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYwMjAyZmZmZjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDAzMDIwMGZmIjoiIjpNQkVEVExTX0VSUl9YNTA5X0lOVkFMSURfTkFNRSArIE1CRURUTFNfRVJSX0FTTjFfTEVOR1RIX01JU01BVENICiAKIFg1MDkgQ1JUIEFTTjEgKFRCUywgaW52IFN1YmplY3QsIDJuZCBBdHRyaWJ1dGVUeXBlVmFsdWUgZW1wdHkpCi1kZXBlbmRzX29uOk1CRURUTFNfUlNBX0M6TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOk1CRURUTFNfUlNBX0M6UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHg1MDlwYXJzZV9jcnQ6IjMwODE5ODMwODE4MmEwMDMwMjAxMDI4MjA0ZGVhZGJlZWYzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAzMDBjMzEwYTMwMDgwNjAwMTMwNDU0NjU3Mzc0MzAxYzE3MGMzMDM5MzAzMTMwMzEzMDMwMzAzMDMwMzAxNzBjMzAzOTMxMzIzMzMxMzIzMzM1MzkzNTM5MzAwZTMxMGMzMDA4MDYwMDBjMDQ1NDY1NzM3NDMwMDAzMDJhMzAwZDA2MDkyQTg2NDg4NkY3MEQwMTAxMDEwNTAwMDMxOTAwMzAxNjAyMTBmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjAyMDJmZmZmMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMDMwMjAwZmYiOiIiOk1CRURUTFNfRVJSX1g1MDlfSU5WQUxJRF9OQU1FICsgTUJFRFRMU19FUlJfQVNOMV9PVVRfT0ZfREFUQQogCiBYNTA5IENSVCBBU04xIChUQlMsIFN1YlB1YktleUluZm8gbWlzc2luZykKLWRlcGVuZHNfb246TUJFRFRMU19SU0FfQzpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246TUJFRFRMU19SU0FfQzpQU0FfV0FOVF9BTEdfU0hBXzI1NgogeDUwOXBhcnNlX2NydDoiMzA2OTMwNTRhMDAzMDIwMTAwODIwNGRlYWRiZWVmMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMzAwYzMxMGEzMDA4MDYwMDEzMDQ1NDY1NzM3NDMwMWMxNzBjMzAzOTMwMzEzMDMxMzAzMDMwMzAzMDMwMTcwYzMwMzkzMTMyMzMzMTMyMzMzNTM5MzUzOTMwMGMzMTBhMzAwODA2MDAxMzA0NTQ2NTczNzQzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAwMzAyMDBmZiI6IiI6TUJFRFRMU19FUlJfUEtfS0VZX0lOVkFMSURfRk9STUFUICsgTUJFRFRMU19FUlJfQVNOMV9PVVRfT0ZfREFUQQogCiBYNTA5IENSVCBBU04xIChUQlMsIGludiBTdWJQdWJLZXlJbmZvLCBpbnYgdGFnKQotZGVwZW5kc19vbjpNQkVEVExTX1JTQV9DOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpNQkVEVExTX1JTQV9DOlBTQV9XQU5UX0FMR19TSEFfMjU2CiB4NTA5cGFyc2VfY3J0OiIzMDZiMzA1NmEwMDMwMjAxMDA4MjA0ZGVhZGJlZWYzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAzMDBjMzEwYTMwMDgwNjAwMTMwNDU0NjU3Mzc0MzAxYzE3MGMzMDM5MzAzMTMwMzEzMDMwMzAzMDMwMzAxNzBjMzAzOTMxMzIzMzMxMzIzMzM1MzkzNTM5MzAwYzMxMGEzMDA4MDYwMDEzMDQ1NDY1NzM3NDA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAwMzAyMDBmZiI6IiI6TUJFRFRMU19FUlJfUEtfS0VZX0lOVkFMSURfRk9STUFUICsgTUJFRFRMU19FUlJfQVNOMV9VTkVYUEVDVEVEX1RBRwogCiBYNTA5IENSVCBBU04xIChUQlMsIGludiBTdWJQdWJLZXlJbmZvLCBsZW5ndGggbWlzc2luZykKLWRlcGVuZHNfb246TUJFRFRMU19SU0FfQzpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246TUJFRFRMU19SU0FfQzpQU0FfV0FOVF9BTEdfU0hBXzI1NgogeDUwOXBhcnNlX2NydDoiMzA2YTMwNTVhMDAzMDIwMTAwODIwNGRlYWRiZWVmMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMzAwYzMxMGEzMDA4MDYwMDEzMDQ1NDY1NzM3NDMwMWMxNzBjMzAzOTMwMzEzMDMxMzAzMDMwMzAzMDMwMTcwYzMwMzkzMTMyMzMzMTMyMzMzNTM5MzUzOTMwMGMzMTBhMzAwODA2MDAxMzA0NTQ2NTczNzQzMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDAzMDIwMGZmIjoiIjpNQkVEVExTX0VSUl9QS19LRVlfSU5WQUxJRF9GT1JNQVQgKyBNQkVEVExTX0VSUl9BU04xX09VVF9PRl9EQVRBCiAKIFg1MDkgQ1JUIEFTTjEgKFRCUywgaW52IFN1YlB1YktleUluZm8sIGludiBsZW5ndGggZW5jb2RpbmcpCi1kZXBlbmRzX29uOk1CRURUTFNfUlNBX0M6TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOk1CRURUTFNfUlNBX0M6UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHg1MDlwYXJzZV9jcnQ6IjMwNmIzMDU2YTAwMzAyMDEwMDgyMDRkZWFkYmVlZjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDMwMGMzMTBhMzAwODA2MDAxMzA0NTQ2NTczNzQzMDFjMTcwYzMwMzkzMDMxMzAzMTMwMzAzMDMwMzAzMDE3MGMzMDM5MzEzMjMzMzEzMjMzMzUzOTM1MzkzMDBjMzEwYTMwMDgwNjAwMTMwNDU0NjU3Mzc0MzA4NTMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDAzMDIwMGZmIjoiIjpNQkVEVExTX0VSUl9QS19LRVlfSU5WQUxJRF9GT1JNQVQgKyBNQkVEVExTX0VSUl9BU04xX0lOVkFMSURfTEVOR1RICiAKIFg1MDkgQ1JUIEFTTjEgKFRCUywgaW52IFN1YlB1YktleUluZm8sIGxlbmd0aCBvdXQgb2YgYm91bmRzKQotZGVwZW5kc19vbjpNQkVEVExTX1JTQV9DOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpNQkVEVExTX1JTQV9DOlBTQV9XQU5UX0FMR19TSEFfMjU2CiB4NTA5cGFyc2VfY3J0OiIzMDZiMzA1NmEwMDMwMjAxMDA4MjA0ZGVhZGJlZWYzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAzMDBjMzEwYTMwMDgwNjAwMTMwNDU0NjU3Mzc0MzAxYzE3MGMzMDM5MzAzMTMwMzEzMDMwMzAzMDMwMzAxNzBjMzAzOTMxMzIzMzMxMzIzMzM1MzkzNTM5MzAwYzMxMGEzMDA4MDYwMDEzMDQ1NDY1NzM3NDMwMDEzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAwMzAyMDBmZiI6IiI6TUJFRFRMU19FUlJfUEtfS0VZX0lOVkFMSURfRk9STUFUICsgTUJFRFRMU19FUlJfQVNOMV9PVVRfT0ZfREFUQQogCiBYNTA5IENSVCBBU04xIChUQlMsIGludiBTdWJQdWJLZXlJbmZvLCBlbXB0eSkKLWRlcGVuZHNfb246TUJFRFRMU19SU0FfQzpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246TUJFRFRMU19SU0FfQzpQU0FfV0FOVF9BTEdfU0hBXzI1NgogeDUwOXBhcnNlX2NydDoiMzA2YjMwNTZhMDAzMDIwMTAwODIwNGRlYWRiZWVmMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMzAwYzMxMGEzMDA4MDYwMDEzMDQ1NDY1NzM3NDMwMWMxNzBjMzAzOTMwMzEzMDMxMzAzMDMwMzAzMDMwMTcwYzMwMzkzMTMyMzMzMTMyMzMzNTM5MzUzOTMwMGMzMTBhMzAwODA2MDAxMzA0NTQ2NTczNzQzMDAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMDMwMjAwZmYiOiIiOk1CRURUTFNfRVJSX1BLX0lOVkFMSURfQUxHICsgTUJFRFRMU19FUlJfQVNOMV9PVVRfT0ZfREFUQQogCiBYNTA5IENSVCBBU04xIChUQlMsIGludiBTdWJQdWJLZXlJbmZvLCBpbnYgYWxnb3JpdGhtIHRhZykKLWRlcGVuZHNfb246TUJFRFRMU19SU0FfQzpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246TUJFRFRMU19SU0FfQzpQU0FfV0FOVF9BTEdfU0hBXzI1NgogeDUwOXBhcnNlX2NydDoiMzA2ZDMwNThhMDAzMDIwMTAwODIwNGRlYWRiZWVmMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMzAwYzMxMGEzMDA4MDYwMDEzMDQ1NDY1NzM3NDMwMWMxNzBjMzAzOTMwMzEzMDMxMzAzMDMwMzAzMDMwMTcwYzMwMzkzMTMyMzMzMTMyMzMzNTM5MzUzOTMwMGMzMTBhMzAwODA2MDAxMzA0NTQ2NTczNzQzMDAyMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDAzMDIwMGZmIjoiIjpNQkVEVExTX0VSUl9QS19JTlZBTElEX0FMRyArIE1CRURUTFNfRVJSX0FTTjFfVU5FWFBFQ1RFRF9UQUcKIAogWDUwOSBDUlQgQVNOMSAoVEJTLCBpbnYgU3ViUHViS2V5SW5mbywgYWxnb3JpdGhtIGxlbmd0aCBtaXNzaW5nKQotZGVwZW5kc19vbjpNQkVEVExTX1JTQV9DOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpNQkVEVExTX1JTQV9DOlBTQV9XQU5UX0FMR19TSEFfMjU2CiB4NTA5cGFyc2VfY3J0OiIzMDZjMzA1N2EwMDMwMjAxMDA4MjA0ZGVhZGJlZWYzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAzMDBjMzEwYTMwMDgwNjAwMTMwNDU0NjU3Mzc0MzAxYzE3MGMzMDM5MzAzMTMwMzEzMDMwMzAzMDMwMzAxNzBjMzAzOTMxMzIzMzMxMzIzMzM1MzkzNTM5MzAwYzMxMGEzMDA4MDYwMDEzMDQ1NDY1NzM3NDMwMDEzMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDAzMDIwMGZmIjoiIjpNQkVEVExTX0VSUl9QS19JTlZBTElEX0FMRyArIE1CRURUTFNfRVJSX0FTTjFfT1VUX09GX0RBVEEKIAogWDUwOSBDUlQgQVNOMSAoVEJTLCBpbnYgU3ViUHViS2V5SW5mbywgYWxnb3JpdGhtIGludiBsZW5ndGggZW5jb2RpbmcpCi1kZXBlbmRzX29uOk1CRURUTFNfUlNBX0M6TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOk1CRURUTFNfUlNBX0M6UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHg1MDlwYXJzZV9jcnQ6IjMwNmQzMDU4YTAwMzAyMDEwMDgyMDRkZWFkYmVlZjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDMwMGMzMTBhMzAwODA2MDAxMzA0NTQ2NTczNzQzMDFjMTcwYzMwMzkzMDMxMzAzMTMwMzAzMDMwMzAzMDE3MGMzMDM5MzEzMjMzMzEzMjMzMzUzOTM1MzkzMDBjMzEwYTMwMDgwNjAwMTMwNDU0NjU3Mzc0MzAwMjMwODUzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAwMzAyMDBmZiI6IiI6TUJFRFRMU19FUlJfUEtfSU5WQUxJRF9BTEcgKyBNQkVEVExTX0VSUl9BU04xX0lOVkFMSURfTEVOR1RICiAKIFg1MDkgQ1JUIEFTTjEgKFRCUywgaW52IFN1YlB1YktleUluZm8sIGFsZ29yaXRobSBsZW5ndGggb3V0IG9mIGJvdW5kcykKLWRlcGVuZHNfb246TUJFRFRMU19SU0FfQzpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246TUJFRFRMU19SU0FfQzpQU0FfV0FOVF9BTEdfU0hBXzI1NgogeDUwOXBhcnNlX2NydDoiMzA2ZDMwNThhMDAzMDIwMTAwODIwNGRlYWRiZWVmMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMzAwYzMxMGEzMDA4MDYwMDEzMDQ1NDY1NzM3NDMwMWMxNzBjMzAzOTMwMzEzMDMxMzAzMDMwMzAzMDMwMTcwYzMwMzkzMTMyMzMzMTMyMzMzNTM5MzUzOTMwMGMzMTBhMzAwODA2MDAxMzA0NTQ2NTczNzQzMDAyMzAwMTMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDAzMDIwMGZmIjoiIjpNQkVEVExTX0VSUl9QS19JTlZBTElEX0FMRyArIE1CRURUTFNfRVJSX0FTTjFfT1VUX09GX0RBVEEKIAogWDUwOSBDUlQgQVNOMSAoVEJTLCBpbnYgU3ViUHViS2V5SW5mbywgYWxnb3JpdGhtIGVtcHR5KQotZGVwZW5kc19vbjpNQkVEVExTX1JTQV9DOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpNQkVEVExTX1JTQV9DOlBTQV9XQU5UX0FMR19TSEFfMjU2CiB4NTA5cGFyc2VfY3J0OiIzMDgxODgzMDczYTAwMzAyMDEwMDgyMDRkZWFkYmVlZjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDMwMGMzMTBhMzAwODA2MDAxMzA0NTQ2NTczNzQzMDFjMTcwYzMwMzkzMDMxMzAzMTMwMzAzMDMwMzAzMDE3MGMzMDM5MzEzMjMzMzEzMjMzMzUzOTM1MzkzMDBjMzEwYTMwMDgwNjAwMTMwNDU0NjU3Mzc0MzAxZDMwMDAwMzE5MDAzMDE2MDIxMGZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMDIwMmZmZmYzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAwMzAyMDBmZiI6IiI6TUJFRFRMU19FUlJfUEtfSU5WQUxJRF9BTEcgKyBNQkVEVExTX0VSUl9BU04xX09VVF9PRl9EQVRBCiAKIFg1MDkgQ1JUIEFTTjEgKFRCUywgaW52IFN1YlB1YktleUluZm8sIGFsZ29yaXRobSB1bmtub3duKQotZGVwZW5kc19vbjpNQkVEVExTX1JTQV9DOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpNQkVEVExTX1JTQV9DOlBTQV9XQU5UX0FMR19TSEFfMjU2CiB4NTA5cGFyc2VfY3J0OiIzMDgxOTYzMDgxODBhMDAzMDIwMTAwODIwNGRlYWRiZWVmMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMzAwYzMxMGEzMDA4MDYwMDEzMDQ1NDY1NzM3NDMwMWMxNzBjMzAzOTMwMzEzMDMxMzAzMDMwMzAzMDMwMTcwYzMwMzkzMTMyMzMzMTMyMzMzNTM5MzUzOTMwMGMzMTBhMzAwODA2MDAxMzA0NTQ2NTczNzQzMDJhMzAwZDA2MDkyQTg2NDg4NkY3MEQwMTAxMDAwNTAwMDMxOTAwMzAxNjAyMTBmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjAyMDJmZmZmMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMDMwMjAwZmYiOiIiOk1CRURUTFNfRVJSX1BLX1VOS05PV05fUEtfQUxHCiAKIFg1MDkgQ1JUIEFTTjEgKFRCUywgaW52IFN1YlB1YktleUluZm8sIGJpdHN0cmluZyBtaXNzaW5nKQotZGVwZW5kc19vbjpNQkVEVExTX1JTQV9DOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpNQkVEVExTX1JTQV9DOlBTQV9XQU5UX0FMR19TSEFfMjU2CiB4NTA5cGFyc2VfY3J0OiIzMDdhMzA2NWEwMDMwMjAxMDA4MjA0ZGVhZGJlZWYzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAzMDBjMzEwYTMwMDgwNjAwMTMwNDU0NjU3Mzc0MzAxYzE3MGMzMDM5MzAzMTMwMzEzMDMwMzAzMDMwMzAxNzBjMzAzOTMxMzIzMzMxMzIzMzM1MzkzNTM5MzAwYzMxMGEzMDA4MDYwMDEzMDQ1NDY1NzM3NDMwMGYzMDBkMDYwOTJBODY0ODg2RjcwRDAxMDEwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAwMzAyMDBmZiI6IiI6TUJFRFRMU19FUlJfUEtfSU5WQUxJRF9QVUJLRVkgKyBNQkVEVExTX0VSUl9BU04xX09VVF9PRl9EQVRBCiAKIFg1MDkgQ1JUIEFTTjEgKFRCUywgaW52IFN1YlB1YktleUluZm8sIGJpdHN0cmluZyBpbnYgdGFnKQotZGVwZW5kc19vbjpNQkVEVExTX1JTQV9DOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpNQkVEVExTX1JTQV9DOlBTQV9XQU5UX0FMR19TSEFfMjU2CiB4NTA5cGFyc2VfY3J0OiIzMDdjMzA2N2EwMDMwMjAxMDA4MjA0ZGVhZGJlZWYzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAzMDBjMzEwYTMwMDgwNjAwMTMwNDU0NjU3Mzc0MzAxYzE3MGMzMDM5MzAzMTMwMzEzMDMwMzAzMDMwMzAxNzBjMzAzOTMxMzIzMzMxMzIzMzM1MzkzNTM5MzAwYzMxMGEzMDA4MDYwMDEzMDQ1NDY1NzM3NDMwMTEzMDBkMDYwOTJBODY0ODg2RjcwRDAxMDEwMTA1MDAwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMDMwMjAwZmYiOiIiOk1CRURUTFNfRVJSX1BLX0lOVkFMSURfUFVCS0VZICsgTUJFRFRMU19FUlJfQVNOMV9VTkVYUEVDVEVEX1RBRwogCiBYNTA5IENSVCBBU04xIChUQlMsIGludiBTdWJQdWJLZXlJbmZvLCBiaXRzdHJpbmcgbGVuZ3RoIG1pc3NpbmcpCi1kZXBlbmRzX29uOk1CRURUTFNfUlNBX0M6TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOk1CRURUTFNfUlNBX0M6UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHg1MDlwYXJzZV9jcnQ6IjMwN2IzMDY2YTAwMzAyMDEwMDgyMDRkZWFkYmVlZjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDMwMGMzMTBhMzAwODA2MDAxMzA0NTQ2NTczNzQzMDFjMTcwYzMwMzkzMDMxMzAzMTMwMzAzMDMwMzAzMDE3MGMzMDM5MzEzMjMzMzEzMjMzMzUzOTM1MzkzMDBjMzEwYTMwMDgwNjAwMTMwNDU0NjU3Mzc0MzAxMDMwMGQwNjA5MkE4NjQ4ODZGNzBEMDEwMTAxMDUwMDAzMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMDMwMjAwZmYiOiIiOk1CRURUTFNfRVJSX1BLX0lOVkFMSURfUFVCS0VZICsgTUJFRFRMU19FUlJfQVNOMV9PVVRfT0ZfREFUQQogCiBYNTA5IENSVCBBU04xIChUQlMsIGludiBTdWJQdWJLZXlJbmZvLCBiaXRzdHJpbmcgaW52IGxlbmd0aCBlbmNvZGluZykKLWRlcGVuZHNfb246TUJFRFRMU19SU0FfQzpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246TUJFRFRMU19SU0FfQzpQU0FfV0FOVF9BTEdfU0hBXzI1NgogeDUwOXBhcnNlX2NydDoiMzA3YzMwNjdhMDAzMDIwMTAwODIwNGRlYWRiZWVmMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMzAwYzMxMGEzMDA4MDYwMDEzMDQ1NDY1NzM3NDMwMWMxNzBjMzAzOTMwMzEzMDMxMzAzMDMwMzAzMDMwMTcwYzMwMzkzMTMyMzMzMTMyMzMzNTM5MzUzOTMwMGMzMTBhMzAwODA2MDAxMzA0NTQ2NTczNzQzMDExMzAwZDA2MDkyQTg2NDg4NkY3MEQwMTAxMDEwNTAwMDM4NTMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDAzMDIwMGZmIjoiIjpNQkVEVExTX0VSUl9QS19JTlZBTElEX1BVQktFWSArIE1CRURUTFNfRVJSX0FTTjFfSU5WQUxJRF9MRU5HVEgKIAogWDUwOSBDUlQgQVNOMSAoVEJTLCBpbnYgU3ViUHViS2V5SW5mbywgYml0c3RyaW5nIGxlbmd0aCBvdXQgb2YgYm91bmRzKQotZGVwZW5kc19vbjpNQkVEVExTX1JTQV9DOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpNQkVEVExTX1JTQV9DOlBTQV9XQU5UX0FMR19TSEFfMjU2CiB4NTA5cGFyc2VfY3J0OiIzMDdjMzA2N2EwMDMwMjAxMDA4MjA0ZGVhZGJlZWYzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAzMDBjMzEwYTMwMDgwNjAwMTMwNDU0NjU3Mzc0MzAxYzE3MGMzMDM5MzAzMTMwMzEzMDMwMzAzMDMwMzAxNzBjMzAzOTMxMzIzMzMxMzIzMzM1MzkzNTM5MzAwYzMxMGEzMDA4MDYwMDEzMDQ1NDY1NzM3NDMwMTEzMDBkMDYwOTJBODY0ODg2RjcwRDAxMDEwMTA1MDAwMzAxMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMDMwMjAwZmYiOiIiOk1CRURUTFNfRVJSX1BLX0lOVkFMSURfUFVCS0VZICsgTUJFRFRMU19FUlJfQVNOMV9PVVRfT0ZfREFUQQogCiBYNTA5IENSVCBBU04xIChUQlMsIGludiBTdWJQdWJLZXlJbmZvLCBubyBiaXRzdHJpbmcgZGF0YSkKLWRlcGVuZHNfb246TUJFRFRMU19SU0FfQzpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246TUJFRFRMU19SU0FfQzpQU0FfV0FOVF9BTEdfU0hBXzI1NgogeDUwOXBhcnNlX2NydDoiMzA3YzMwNjdhMDAzMDIwMTAwODIwNGRlYWRiZWVmMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMzAwYzMxMGEzMDA4MDYwMDEzMDQ1NDY1NzM3NDMwMWMxNzBjMzAzOTMwMzEzMDMxMzAzMDMwMzAzMDMwMTcwYzMwMzkzMTMyMzMzMTMyMzMzNTM5MzUzOTMwMGMzMTBhMzAwODA2MDAxMzA0NTQ2NTczNzQzMDExMzAwZDA2MDkyQTg2NDg4NkY3MEQwMTAxMDEwNTAwMDMwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDAzMDIwMGZmIjoiIjpNQkVEVExTX0VSUl9QS19JTlZBTElEX1BVQktFWSArIE1CRURUTFNfRVJSX0FTTjFfSU5WQUxJRF9EQVRBCiAKIFg1MDkgQ1JUIEFTTjEgKFRCUywgaW52IFN1YlB1YktleUluZm8sIGludiBiaXRzdHJpbmcgc3RhcnQpCi1kZXBlbmRzX29uOk1CRURUTFNfUlNBX0M6TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOk1CRURUTFNfUlNBX0M6UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHg1MDlwYXJzZV9jcnQ6IjMwN2QzMDY4YTAwMzAyMDEwMDgyMDRkZWFkYmVlZjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDMwMGMzMTBhMzAwODA2MDAxMzA0NTQ2NTczNzQzMDFjMTcwYzMwMzkzMDMxMzAzMTMwMzAzMDMwMzAzMDE3MGMzMDM5MzEzMjMzMzEzMjMzMzUzOTM1MzkzMDBjMzEwYTMwMDgwNjAwMTMwNDU0NjU3Mzc0MzAxMjMwMGQwNjA5MkE4NjQ4ODZGNzBEMDEwMTAxMDUwMDAzMDEwMTMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDAzMDIwMGZmIjoiIjpNQkVEVExTX0VSUl9QS19JTlZBTElEX1BVQktFWSArIE1CRURUTFNfRVJSX0FTTjFfSU5WQUxJRF9EQVRBCiAKIFg1MDkgQ1JUIEFTTjEgKFRCUywgaW52IFN1YlB1YktleUluZm8sIGludiBpbnRlcm5hbCBiaXRzdHJpbmcgbGVuZ3RoKQotZGVwZW5kc19vbjpNQkVEVExTX1JTQV9DOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpNQkVEVExTX1JTQV9DOlBTQV9XQU5UX0FMR19TSEFfMjU2CiB4NTA5cGFyc2VfY3J0OiIzMDgxODAzMDZiYTAwMzAyMDEwMDgyMDRkZWFkYmVlZjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDMwMGMzMTBhMzAwODA2MDAxMzA0NTQ2NTczNzQzMDFjMTcwYzMwMzkzMDMxMzAzMTMwMzAzMDMwMzAzMDE3MGMzMDM5MzEzMjMzMzEzMjMzMzUzOTM1MzkzMDBjMzEwYTMwMDgwNjAwMTMwNDU0NjU3Mzc0MzAxNTMwMGQwNjA5MkE4NjQ4ODZGNzBEMDEwMTAxMDUwMDAzMDQwMDMwMDAwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDAzMDIwMGZmIjoiIjpNQkVEVExTX0VSUl9QS19JTlZBTElEX1BVQktFWQogCiBYNTA5IENSVCBBU04xIChUQlMsIGludiBTdWJQdWJLZXlJbmZvLCBpbnYgaW50ZXJuYWwgYml0c3RyaW5nIHRhZykKLWRlcGVuZHNfb246TUJFRFRMU19SU0FfQzpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246TUJFRFRMU19SU0FfQzpQU0FfV0FOVF9BTEdfU0hBXzI1NgogeDUwOXBhcnNlX2NydDoiMzA4MTgwMzA2YmEwMDMwMjAxMDA4MjA0ZGVhZGJlZWYzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAzMDBjMzEwYTMwMDgwNjAwMTMwNDU0NjU3Mzc0MzAxYzE3MGMzMDM5MzAzMTMwMzEzMDMwMzAzMDMwMzAxNzBjMzAzOTMxMzIzMzMxMzIzMzM1MzkzNTM5MzAwYzMxMGEzMDA4MDYwMDEzMDQ1NDY1NzM3NDMwMTUzMDBkMDYwOTJBODY0ODg2RjcwRDAxMDEwMTA1MDAwMzA0MDAzMTAwMDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAwMzAyMDBmZiI6IiI6TUJFRFRMU19FUlJfUEtfSU5WQUxJRF9QVUJLRVkgKyBNQkVEVExTX0VSUl9BU04xX1VORVhQRUNURURfVEFHCiAKIFg1MDkgQ1JUIEFTTjEgKFRCUywgaW52IFN1YlB1YktleUluZm8sIGludiBSU0EgbW9kdWx1cykKLWRlcGVuZHNfb246TUJFRFRMU19SU0FfQzpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246TUJFRFRMU19SU0FfQzpQU0FfV0FOVF9BTEdfU0hBXzI1NgogeDUwOXBhcnNlX2NydDoiMzA4MTg3MzA3MmEwMDMwMjAxMDA4MjA0ZGVhZGJlZWYzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAzMDBjMzEwYTMwMDgwNjAwMTMwNDU0NjU3Mzc0MzAxYzE3MGMzMDM5MzAzMTMwMzEzMDMwMzAzMDMwMzAxNzBjMzAzOTMxMzIzMzMxMzIzMzM1MzkzNTM5MzAwYzMxMGEzMDA4MDYwMDEzMDQ1NDY1NzM3NDMwMWMzMDBkMDYwOTJBODY0ODg2RjcwRDAxMDEwMTA1MDAwMzBiMDAzMDA4MDIwMmZmZmYwMzAyZmZmZjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDAzMDIwMGZmIjoiIjpNQkVEVExTX0VSUl9QS19JTlZBTElEX1BVQktFWSArIE1CRURUTFNfRVJSX0FTTjFfVU5FWFBFQ1RFRF9UQUcKIAogWDUwOSBDUlQgQVNOMSAoVEJTLCBpbnYgU3ViUHViS2V5SW5mbywgdG90YWwgbGVuZ3RoIG1pc21hdGNoKQotZGVwZW5kc19vbjpNQkVEVExTX1JTQV9DOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpNQkVEVExTX1JTQV9DOlBTQV9XQU5UX0FMR19TSEFfMjU2CiB4NTA5cGFyc2VfY3J0OiIzMDgxODkzMDc0YTAwMzAyMDEwMDgyMDRkZWFkYmVlZjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDMwMGMzMTBhMzAwODA2MDAxMzA0NTQ2NTczNzQzMDFjMTcwYzMwMzkzMDMxMzAzMTMwMzAzMDMwMzAzMDE3MGMzMDM5MzEzMjMzMzEzMjMzMzUzOTM1MzkzMDBjMzEwYTMwMDgwNjAwMTMwNDU0NjU3Mzc0MzAxZTMwMGQwNjA5MkE4NjQ4ODZGNzBEMDEwMTAxMDUwMDAzMGIwMDMwMDgwMjAyZmZmZjAyMDJmZmZmMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDAzMDIwMGZmIjoiIjpNQkVEVExTX0VSUl9QS19JTlZBTElEX1BVQktFWSArIE1CRURUTFNfRVJSX0FTTjFfTEVOR1RIX01JU01BVENICiAKIFg1MDkgQ1JUIEFTTjEgKFRCUywgaW52IFN1YlB1YktleUluZm8sIGNoZWNrIGZhaWxlZCkKLWRlcGVuZHNfb246TUJFRFRMU19SU0FfQzpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246TUJFRFRMU19SU0FfQzpQU0FfV0FOVF9BTEdfU0hBXzI1NgogeDUwOXBhcnNlX2NydDoiMzA4MTg3MzA3MmEwMDMwMjAxMDA4MjA0ZGVhZGJlZWYzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAzMDBjMzEwYTMwMDgwNjAwMTMwNDU0NjU3Mzc0MzAxYzE3MGMzMDM5MzAzMTMwMzEzMDMwMzAzMDMwMzAxNzBjMzAzOTMxMzIzMzMxMzIzMzM1MzkzNTM5MzAwYzMxMGEzMDA4MDYwMDEzMDQ1NDY1NzM3NDMwMWMzMDBkMDYwOTJBODY0ODg2RjcwRDAxMDEwMTA1MDAwMzBiMDAzMDA4MDIwMmZmZmYwMjAyZmZmZjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDAzMDIwMGZmIjoiIjpNQkVEVExTX0VSUl9QS19JTlZBTElEX1BVQktFWQogCiBYNTA5IENSVCBBU04xIChUQlMsIGludiBTdWJQdWJLZXlJbmZvLCBjaGVjayBmYWlsZWQsIGV4cGFuZGVkIGxlbmd0aCBub3RhdGlvbikKLWRlcGVuZHNfb246TUJFRFRMU19SU0FfQzpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246TUJFRFRMU19SU0FfQzpQU0FfV0FOVF9BTEdfU0hBXzI1NgogeDUwOXBhcnNlX2NydDoiMzA4MTk2MzA4MTgwYTAwMzAyMDEwMDgyMDRkZWFkYmVlZjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDMwMGMzMTBhMzAwODA2MDAxMzA0NTQ2NTczNzQzMDFjMTcwYzMwMzkzMDMxMzAzMTMwMzAzMDMwMzAzMDE3MGMzMDM5MzEzMjMzMzEzMjMzMzUzOTM1MzkzMDBjMzEwYTMwMDgwNjAwMTMwNDU0NjU3Mzc0MzAyYTMwMGQwNjA5MkE4NjQ4ODZGNzBEMDEwMTAxMDUwMDAzMTkwMDMwMTYwMjEwZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmUwMjAyZmZmZjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDAzMDIwMGZmIjoiIjpNQkVEVExTX0VSUl9QS19JTlZBTElEX1BVQktFWQogCiAjIFdlIGV4cGVjdCBhbiBleHRlbnNpb24gcGFyc2luZyBlcnJvciBoZXJlIGJlY2F1c2UgdGhlIElzc3VlcklEIGlzIG9wdGlvbmFsLgpAQCAtMTgwMiw0NjcgKzE4MDIsNDY3IEBACiAjIG5hbWVseSB0aGUgdjMgZXh0ZW5zaW9ucy4gSG93ZXZlciwgdGhlIHRhZyB0aGUgdGVzdCBleGVyY2lzZXMgaXMgYSBOVUxMIHRhZywKICMgYW5kIGhlbmNlIHdlIG9idGFpbiBhbiBJTlZBTElEX1RBRyBlcnJvciBkdXJpbmcgZXh0ZW5zaW9uIHBhcnNpbmcuCiBYNTA5IENSVCBBU04xIChUQlMsIGludiBJc3N1ZXJJRCwgaW52IHRhZykKLWRlcGVuZHNfb246TUJFRFRMU19SU0FfQzpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246TUJFRFRMU19SU0FfQzpQU0FfV0FOVF9BTEdfU0hBXzI1NgogeDUwOXBhcnNlX2NydDoiMzA4MTk4MzA4MTgyYTAwMzAyMDEwMjgyMDRkZWFkYmVlZjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDMwMGMzMTBhMzAwODA2MDAxMzA0NTQ2NTczNzQzMDFjMTcwYzMwMzkzMDMxMzAzMTMwMzAzMDMwMzAzMDE3MGMzMDM5MzEzMjMzMzEzMjMzMzUzOTM1MzkzMDBjMzEwYTMwMDgwNjAwMTMwNDU0NjU3Mzc0MzAyYTMwMGQwNjA5MkE4NjQ4ODZGNzBEMDEwMTAxMDUwMDAzMTkwMDMwMTYwMjEwZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYwMjAyZmZmZjA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAwMzAyMDBmZiI6IiI6TUJFRFRMU19FUlJfWDUwOV9JTlZBTElEX0VYVEVOU0lPTlMgKyBNQkVEVExTX0VSUl9BU04xX1VORVhQRUNURURfVEFHCiAKIFg1MDkgQ1JUIEFTTjEgKFRCUywgaW52IElzc3VlcklELCBsZW5ndGggbWlzc2luZykKLWRlcGVuZHNfb246TUJFRFRMU19SU0FfQzpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246TUJFRFRMU19SU0FfQzpQU0FfV0FOVF9BTEdfU0hBXzI1NgogeDUwOXBhcnNlX2NydDoiMzA4MTk3MzA4MTgxYTAwMzAyMDEwMjgyMDRkZWFkYmVlZjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDMwMGMzMTBhMzAwODA2MDAxMzA0NTQ2NTczNzQzMDFjMTcwYzMwMzkzMDMxMzAzMTMwMzAzMDMwMzAzMDE3MGMzMDM5MzEzMjMzMzEzMjMzMzUzOTM1MzkzMDBjMzEwYTMwMDgwNjAwMTMwNDU0NjU3Mzc0MzAyYTMwMGQwNjA5MkE4NjQ4ODZGNzBEMDEwMTAxMDUwMDAzMTkwMDMwMTYwMjEwZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYwMjAyZmZmZmExMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMDMwMjAwZmYiOiIiOk1CRURUTFNfRVJSX1g1MDlfSU5WQUxJRF9GT1JNQVQgKyBNQkVEVExTX0VSUl9BU04xX09VVF9PRl9EQVRBCiAKIFg1MDkgQ1JUIEFTTjEgKFRCUywgaW52IElzc3VlcklELCBpbnYgbGVuZ3RoIGVuY29kaW5nKQotZGVwZW5kc19vbjpNQkVEVExTX1JTQV9DOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpNQkVEVExTX1JTQV9DOlBTQV9XQU5UX0FMR19TSEFfMjU2CiB4NTA5cGFyc2VfY3J0OiIzMDgxOTgzMDgxODJhMDAzMDIwMTAyODIwNGRlYWRiZWVmMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMzAwYzMxMGEzMDA4MDYwMDEzMDQ1NDY1NzM3NDMwMWMxNzBjMzAzOTMwMzEzMDMxMzAzMDMwMzAzMDMwMTcwYzMwMzkzMTMyMzMzMTMyMzMzNTM5MzUzOTMwMGMzMTBhMzAwODA2MDAxMzA0NTQ2NTczNzQzMDJhMzAwZDA2MDkyQTg2NDg4NkY3MEQwMTAxMDEwNTAwMDMxOTAwMzAxNjAyMTBmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjAyMDJmZmZmYTE4NTMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDAzMDIwMGZmIjoiIjpNQkVEVExTX0VSUl9YNTA5X0lOVkFMSURfRk9STUFUICsgTUJFRFRMU19FUlJfQVNOMV9JTlZBTElEX0xFTkdUSAogCiBYNTA5IENSVCBBU04xIChUQlMsIGludiBJc3N1ZXJJRCwgbGVuZ3RoIG91dCBvZiBib3VuZHMpCi1kZXBlbmRzX29uOk1CRURUTFNfUlNBX0M6TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOk1CRURUTFNfUlNBX0M6UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHg1MDlwYXJzZV9jcnQ6IjMwODE5ODMwODE4MmEwMDMwMjAxMDI4MjA0ZGVhZGJlZWYzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAzMDBjMzEwYTMwMDgwNjAwMTMwNDU0NjU3Mzc0MzAxYzE3MGMzMDM5MzAzMTMwMzEzMDMwMzAzMDMwMzAxNzBjMzAzOTMxMzIzMzMxMzIzMzM1MzkzNTM5MzAwYzMxMGEzMDA4MDYwMDEzMDQ1NDY1NzM3NDMwMmEzMDBkMDYwOTJBODY0ODg2RjcwRDAxMDEwMTA1MDAwMzE5MDAzMDE2MDIxMGZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMDIwMmZmZmZhMTAxMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMDMwMjAwZmYiOiIiOk1CRURUTFNfRVJSX1g1MDlfSU5WQUxJRF9GT1JNQVQgKyBNQkVEVExTX0VSUl9BU04xX09VVF9PRl9EQVRBCiAKIFg1MDkgQ1JUIEFTTjEgKFRCUywgbm8gSXNzdWVySUQsIGludiBTdWJqZWN0SUQsIGxlbmd0aCBtaXNzaW5nKQotZGVwZW5kc19vbjpNQkVEVExTX1JTQV9DOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpNQkVEVExTX1JTQV9DOlBTQV9XQU5UX0FMR19TSEFfMjU2CiB4NTA5cGFyc2VfY3J0OiIzMDgxOTczMDgxODFhMDAzMDIwMTAyODIwNGRlYWRiZWVmMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMzAwYzMxMGEzMDA4MDYwMDEzMDQ1NDY1NzM3NDMwMWMxNzBjMzAzOTMwMzEzMDMxMzAzMDMwMzAzMDMwMTcwYzMwMzkzMTMyMzMzMTMyMzMzNTM5MzUzOTMwMGMzMTBhMzAwODA2MDAxMzA0NTQ2NTczNzQzMDJhMzAwZDA2MDkyQTg2NDg4NkY3MEQwMTAxMDEwNTAwMDMxOTAwMzAxNjAyMTBmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjAyMDJmZmZmYTIzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAwMzAyMDBmZiI6IiI6TUJFRFRMU19FUlJfWDUwOV9JTlZBTElEX0ZPUk1BVCArIE1CRURUTFNfRVJSX0FTTjFfT1VUX09GX0RBVEEKIAogWDUwOSBDUlQgQVNOMSAoVEJTLCBubyBJc3N1ZXJJRCwgaW52IFN1YmplY3RJRCwgaW52IGxlbmd0aCBlbmNvZGluZykKLWRlcGVuZHNfb246TUJFRFRMU19SU0FfQzpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246TUJFRFRMU19SU0FfQzpQU0FfV0FOVF9BTEdfU0hBXzI1NgogeDUwOXBhcnNlX2NydDoiMzA4MTk4MzA4MTgyYTAwMzAyMDEwMjgyMDRkZWFkYmVlZjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDMwMGMzMTBhMzAwODA2MDAxMzA0NTQ2NTczNzQzMDFjMTcwYzMwMzkzMDMxMzAzMTMwMzAzMDMwMzAzMDE3MGMzMDM5MzEzMjMzMzEzMjMzMzUzOTM1MzkzMDBjMzEwYTMwMDgwNjAwMTMwNDU0NjU3Mzc0MzAyYTMwMGQwNjA5MkE4NjQ4ODZGNzBEMDEwMTAxMDUwMDAzMTkwMDMwMTYwMjEwZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYwMjAyZmZmZmEyODUzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAwMzAyMDBmZiI6IiI6TUJFRFRMU19FUlJfWDUwOV9JTlZBTElEX0ZPUk1BVCArIE1CRURUTFNfRVJSX0FTTjFfSU5WQUxJRF9MRU5HVEgKIAogWDUwOSBDUlQgQVNOMSAoVEJTLCBubyBJc3N1ZXJJRCwgaW52IFN1YmplY3RJRCwgbGVuZ3RoIG91dCBvZiBib3VuZHMpCi1kZXBlbmRzX29uOk1CRURUTFNfUlNBX0M6TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOk1CRURUTFNfUlNBX0M6UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHg1MDlwYXJzZV9jcnQ6IjMwODE5ODMwODE4MmEwMDMwMjAxMDI4MjA0ZGVhZGJlZWYzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAzMDBjMzEwYTMwMDgwNjAwMTMwNDU0NjU3Mzc0MzAxYzE3MGMzMDM5MzAzMTMwMzEzMDMwMzAzMDMwMzAxNzBjMzAzOTMxMzIzMzMxMzIzMzM1MzkzNTM5MzAwYzMxMGEzMDA4MDYwMDEzMDQ1NDY1NzM3NDMwMmEzMDBkMDYwOTJBODY0ODg2RjcwRDAxMDEwMTA1MDAwMzE5MDAzMDE2MDIxMGZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMDIwMmZmZmZhMjAxMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMDMwMjAwZmYiOiIiOk1CRURUTFNfRVJSX1g1MDlfSU5WQUxJRF9GT1JNQVQgKyBNQkVEVExTX0VSUl9BU04xX09VVF9PRl9EQVRBCiAKIFg1MDkgQ1JUIEFTTjEgKFRCUywgdmFsaWQgSXNzdWVySUQsIGludiBTdWJqZWN0SUQsIGludiB0YWcpCi1kZXBlbmRzX29uOk1CRURUTFNfUlNBX0M6TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOk1CRURUTFNfUlNBX0M6UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHg1MDlwYXJzZV9jcnQ6IjMwODE5YTMwODE4NGEwMDMwMjAxMDA4MjA0ZGVhZGJlZWYzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAzMDBjMzEwYTMwMDgwNjAwMTMwNDU0NjU3Mzc0MzAxYzE3MGMzMDM5MzAzMTMwMzEzMDMwMzAzMDMwMzAxNzBjMzAzOTMxMzIzMzMxMzIzMzM1MzkzNTM5MzAwYzMxMGEzMDA4MDYwMDEzMDQ1NDY1NzM3NDMwMmEzMDBkMDYwOTJBODY0ODg2RjcwRDAxMDEwMTA1MDAwMzE5MDAzMDE2MDIxMGZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMDIwMmZmZmZhMTAwMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDAzMDIwMGZmIjoiIjpNQkVEVExTX0VSUl9YNTA5X0lOVkFMSURfRk9STUFUICsgTUJFRFRMU19FUlJfQVNOMV9MRU5HVEhfTUlTTUFUQ0gKIAogWDUwOSBDUlQgQVNOMSAoVEJTLCB2YWxpZCBJc3N1ZXJJRCwgaW52IFN1YmplY3RJRCwgbGVuZ3RoIG1pc3NpbmcpCi1kZXBlbmRzX29uOk1CRURUTFNfUlNBX0M6TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOk1CRURUTFNfUlNBX0M6UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHg1MDlwYXJzZV9jcnQ6IjMwODE5OTMwODE4M2EwMDMwMjAxMDI4MjA0ZGVhZGJlZWYzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAzMDBjMzEwYTMwMDgwNjAwMTMwNDU0NjU3Mzc0MzAxYzE3MGMzMDM5MzAzMTMwMzEzMDMwMzAzMDMwMzAxNzBjMzAzOTMxMzIzMzMxMzIzMzM1MzkzNTM5MzAwYzMxMGEzMDA4MDYwMDEzMDQ1NDY1NzM3NDMwMmEzMDBkMDYwOTJBODY0ODg2RjcwRDAxMDEwMTA1MDAwMzE5MDAzMDE2MDIxMGZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMDIwMmZmZmZhMTAwYTIzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAwMzAyMDBmZiI6IiI6TUJFRFRMU19FUlJfWDUwOV9JTlZBTElEX0ZPUk1BVCArIE1CRURUTFNfRVJSX0FTTjFfT1VUX09GX0RBVEEKIAogWDUwOSBDUlQgQVNOMSAoVEJTLCB2YWxpZCBJc3N1ZXJJRCwgaW52IFN1YmplY3RJRCwgaW52IGxlbmd0aCBlbmNvZGluZykKLWRlcGVuZHNfb246TUJFRFRMU19SU0FfQzpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246TUJFRFRMU19SU0FfQzpQU0FfV0FOVF9BTEdfU0hBXzI1NgogeDUwOXBhcnNlX2NydDoiMzA4MTlhMzA4MTg0YTAwMzAyMDEwMjgyMDRkZWFkYmVlZjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDMwMGMzMTBhMzAwODA2MDAxMzA0NTQ2NTczNzQzMDFjMTcwYzMwMzkzMDMxMzAzMTMwMzAzMDMwMzAzMDE3MGMzMDM5MzEzMjMzMzEzMjMzMzUzOTM1MzkzMDBjMzEwYTMwMDgwNjAwMTMwNDU0NjU3Mzc0MzAyYTMwMGQwNjA5MkE4NjQ4ODZGNzBEMDEwMTAxMDUwMDAzMTkwMDMwMTYwMjEwZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYwMjAyZmZmZmExMDBhMjg1MzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMDMwMjAwZmYiOiIiOk1CRURUTFNfRVJSX1g1MDlfSU5WQUxJRF9GT1JNQVQgKyBNQkVEVExTX0VSUl9BU04xX0lOVkFMSURfTEVOR1RICiAKIFg1MDkgQ1JUIEFTTjEgKFRCUywgdmFsaWQgSXNzdWVySUQsIGludiBTdWJqZWN0SUQsIGxlbmd0aCBvdXQgb2YgYm91bmRzKQotZGVwZW5kc19vbjpNQkVEVExTX1JTQV9DOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpNQkVEVExTX1JTQV9DOlBTQV9XQU5UX0FMR19TSEFfMjU2CiB4NTA5cGFyc2VfY3J0OiIzMDgxOWEzMDgxODRhMDAzMDIwMTAyODIwNGRlYWRiZWVmMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMzAwYzMxMGEzMDA4MDYwMDEzMDQ1NDY1NzM3NDMwMWMxNzBjMzAzOTMwMzEzMDMxMzAzMDMwMzAzMDMwMTcwYzMwMzkzMTMyMzMzMTMyMzMzNTM5MzUzOTMwMGMzMTBhMzAwODA2MDAxMzA0NTQ2NTczNzQzMDJhMzAwZDA2MDkyQTg2NDg4NkY3MEQwMTAxMDEwNTAwMDMxOTAwMzAxNjAyMTBmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjAyMDJmZmZmYTEwMGEyMDEzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAwMzAyMDBmZiI6IiI6TUJFRFRMU19FUlJfWDUwOV9JTlZBTElEX0ZPUk1BVCArIE1CRURUTFNfRVJSX0FTTjFfT1VUX09GX0RBVEEKIAogWDUwOSBDUlQgQVNOMSAoVEJTLCBJc3N1ZXJJRCB1bnN1cHBvcnRlZCBpbiB2MSBDUlQpCi1kZXBlbmRzX29uOk1CRURUTFNfUlNBX0M6TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOk1CRURUTFNfUlNBX0M6UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHg1MDlwYXJzZV9jcnQ6IjMwODE5YTMwODE4NGEwMDMwMjAxMDA4MjA0ZGVhZGJlZWYzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAzMDBjMzEwYTMwMDgwNjAwMTMwNDU0NjU3Mzc0MzAxYzE3MGMzMDM5MzAzMTMwMzEzMDMwMzAzMDMwMzAxNzBjMzAzOTMxMzIzMzMxMzIzMzM1MzkzNTM5MzAwYzMxMGEzMDA4MDYwMDEzMDQ1NDY1NzM3NDMwMmEzMDBkMDYwOTJBODY0ODg2RjcwRDAxMDEwMTA1MDAwMzE5MDAzMDE2MDIxMGZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMDIwMmZmZmZhMTAwYTIwMTMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDAzMDIwMGZmIjoiIjpNQkVEVExTX0VSUl9YNTA5X0lOVkFMSURfRk9STUFUICsgTUJFRFRMU19FUlJfQVNOMV9MRU5HVEhfTUlTTUFUQ0gKIAogWDUwOSBDUlQgQVNOMSAoVEJTLCBTdWJqZWN0SUQgdW5zdXBwb3J0ZWQgaW4gdjEgQ1JUKQotZGVwZW5kc19vbjpNQkVEVExTX1JTQV9DOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpNQkVEVExTX1JTQV9DOlBTQV9XQU5UX0FMR19TSEFfMjU2CiB4NTA5cGFyc2VfY3J0OiIzMDgxOWEzMDgxODRhMDAzMDIwMTAwODIwNGRlYWRiZWVmMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMzAwYzMxMGEzMDA4MDYwMDEzMDQ1NDY1NzM3NDMwMWMxNzBjMzAzOTMwMzEzMDMxMzAzMDMwMzAzMDMwMTcwYzMwMzkzMTMyMzMzMTMyMzMzNTM5MzUzOTMwMGMzMTBhMzAwODA2MDAxMzA0NTQ2NTczNzQzMDJhMzAwZDA2MDkyQTg2NDg4NkY3MEQwMTAxMDEwNTAwMDMxOTAwMzAxNjAyMTBmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjAyMDJmZmZmYTIwMGEyMDEzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAwMzAyMDBmZiI6IiI6TUJFRFRMU19FUlJfWDUwOV9JTlZBTElEX0ZPUk1BVCArIE1CRURUTFNfRVJSX0FTTjFfTEVOR1RIX01JU01BVENICiAKIFg1MDkgQ1JUIEFTTjEgKFRCUywgaW52IHYzRXh0LCBpbnYgdGFnKQotZGVwZW5kc19vbjpNQkVEVExTX1JTQV9DOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpNQkVEVExTX1JTQV9DOlBTQV9XQU5UX0FMR19TSEFfMjU2CiB4NTA5cGFyc2VfY3J0OiIzMDgxOWMzMDgxODZhMDAzMDIwMTAyODIwNGRlYWRiZWVmMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMzAwYzMxMGEzMDA4MDYwMDEzMDQ1NDY1NzM3NDMwMWMxNzBjMzAzOTMwMzEzMDMxMzAzMDMwMzAzMDMwMTcwYzMwMzkzMTMyMzMzMTMyMzMzNTM5MzUzOTMwMGMzMTBhMzAwODA2MDAxMzA0NTQ2NTczNzQzMDJhMzAwZDA2MDkyQTg2NDg4NkY3MEQwMTAxMDEwNTAwMDMxOTAwMzAxNjAyMTBmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjAyMDJmZmZmYTEwMGEyMDAwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMDMwMjAwZmYiOiIiOk1CRURUTFNfRVJSX1g1MDlfSU5WQUxJRF9FWFRFTlNJT05TICsgTUJFRFRMU19FUlJfQVNOMV9VTkVYUEVDVEVEX1RBRwogCiBYNTA5IENSVCBBU04xIChUQlMsIGludiB2M0V4dCwgb3V0ZXIgbGVuZ3RoIG1pc3NpbmcpCi1kZXBlbmRzX29uOk1CRURUTFNfUlNBX0M6TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOk1CRURUTFNfUlNBX0M6UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHg1MDlwYXJzZV9jcnQ6IjMwODE5YjMwODE4NWEwMDMwMjAxMDI4MjA0ZGVhZGJlZWYzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAzMDBjMzEwYTMwMDgwNjAwMTMwNDU0NjU3Mzc0MzAxYzE3MGMzMDM5MzAzMTMwMzEzMDMwMzAzMDMwMzAxNzBjMzAzOTMxMzIzMzMxMzIzMzM1MzkzNTM5MzAwYzMxMGEzMDA4MDYwMDEzMDQ1NDY1NzM3NDMwMmEzMDBkMDYwOTJBODY0ODg2RjcwRDAxMDEwMTA1MDAwMzE5MDAzMDE2MDIxMGZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMDIwMmZmZmZhMTAwYTIwMGEzMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMDMwMjAwZmYiOiIiOk1CRURUTFNfRVJSX1g1MDlfSU5WQUxJRF9FWFRFTlNJT05TICsgTUJFRFRMU19FUlJfQVNOMV9PVVRfT0ZfREFUQQogCiBYNTA5IENSVCBBU04xIChUQlMsIGludiB2M0V4dCwgb3V0ZXIgbGVuZ3RoIGludiBlbmNvZGluZykKLWRlcGVuZHNfb246TUJFRFRMU19SU0FfQzpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246TUJFRFRMU19SU0FfQzpQU0FfV0FOVF9BTEdfU0hBXzI1NgogeDUwOXBhcnNlX2NydDoiMzA4MTljMzA4MTg2YTAwMzAyMDEwMjgyMDRkZWFkYmVlZjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDMwMGMzMTBhMzAwODA2MDAxMzA0NTQ2NTczNzQzMDFjMTcwYzMwMzkzMDMxMzAzMTMwMzAzMDMwMzAzMDE3MGMzMDM5MzEzMjMzMzEzMjMzMzUzOTM1MzkzMDBjMzEwYTMwMDgwNjAwMTMwNDU0NjU3Mzc0MzAyYTMwMGQwNjA5MkE4NjQ4ODZGNzBEMDEwMTAxMDUwMDAzMTkwMDMwMTYwMjEwZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYwMjAyZmZmZmExMDBhMjAwYTM4NTMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDAzMDIwMGZmIjoiIjpNQkVEVExTX0VSUl9YNTA5X0lOVkFMSURfRVhURU5TSU9OUyArIE1CRURUTFNfRVJSX0FTTjFfSU5WQUxJRF9MRU5HVEgKIAogWDUwOSBDUlQgQVNOMSAoVEJTLCBpbnYgdjNFeHQsIG91dGVyIGxlbmd0aCBvdXQgb2YgYm91bmRzKQotZGVwZW5kc19vbjpNQkVEVExTX1JTQV9DOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpNQkVEVExTX1JTQV9DOlBTQV9XQU5UX0FMR19TSEFfMjU2CiB4NTA5cGFyc2VfY3J0OiIzMDgxOWMzMDgxODZhMDAzMDIwMTAyODIwNGRlYWRiZWVmMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMzAwYzMxMGEzMDA4MDYwMDEzMDQ1NDY1NzM3NDMwMWMxNzBjMzAzOTMwMzEzMDMxMzAzMDMwMzAzMDMwMTcwYzMwMzkzMTMyMzMzMTMyMzMzNTM5MzUzOTMwMGMzMTBhMzAwODA2MDAxMzA0NTQ2NTczNzQzMDJhMzAwZDA2MDkyQTg2NDg4NkY3MEQwMTAxMDEwNTAwMDMxOTAwMzAxNjAyMTBmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjAyMDJmZmZmYTEwMGEyMDBhMzAxMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMDMwMjAwZmYiOiIiOk1CRURUTFNfRVJSX1g1MDlfSU5WQUxJRF9FWFRFTlNJT05TICsgTUJFRFRMU19FUlJfQVNOMV9PVVRfT0ZfREFUQQogCiBYNTA5IENSVCBBU04xIChUQlMsIGludiB2M0V4dCwgb3V0ZXIgbGVuZ3RoIDApCi1kZXBlbmRzX29uOk1CRURUTFNfUlNBX0M6TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOk1CRURUTFNfUlNBX0M6UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHg1MDlwYXJzZV9jcnQ6IjMwODE5YzMwODE4NmEwMDMwMjAxMDI4MjA0ZGVhZGJlZWYzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAzMDBjMzEwYTMwMDgwNjAwMTMwNDU0NjU3Mzc0MzAxYzE3MGMzMDM5MzAzMTMwMzEzMDMwMzAzMDMwMzAxNzBjMzAzOTMxMzIzMzMxMzIzMzM1MzkzNTM5MzAwYzMxMGEzMDA4MDYwMDEzMDQ1NDY1NzM3NDMwMmEzMDBkMDYwOTJBODY0ODg2RjcwRDAxMDEwMTA1MDAwMzE5MDAzMDE2MDIxMGZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMDIwMmZmZmZhMTAwYTIwMGEzMDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAwMzAyMDBmZiI6IiI6TUJFRFRMU19FUlJfWDUwOV9JTlZBTElEX0VYVEVOU0lPTlMgKyBNQkVEVExTX0VSUl9BU04xX09VVF9PRl9EQVRBCiAKIFg1MDkgQ1JUIEFTTjEgKFRCUywgaW52IHYzRXh0LCBpbm5lciB0YWcgaW52YWxpZCkKLWRlcGVuZHNfb246TUJFRFRMU19SU0FfQzpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246TUJFRFRMU19SU0FfQzpQU0FfV0FOVF9BTEdfU0hBXzI1NgogeDUwOXBhcnNlX2NydDoiMzA4MTllMzA4MTg4YTAwMzAyMDEwMjgyMDRkZWFkYmVlZjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDMwMGMzMTBhMzAwODA2MDAxMzA0NTQ2NTczNzQzMDFjMTcwYzMwMzkzMDMxMzAzMTMwMzAzMDMwMzAzMDE3MGMzMDM5MzEzMjMzMzEzMjMzMzUzOTM1MzkzMDBjMzEwYTMwMDgwNjAwMTMwNDU0NjU3Mzc0MzAyYTMwMGQwNjA5MkE4NjQ4ODZGNzBEMDEwMTAxMDUwMDAzMTkwMDMwMTYwMjEwZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYwMjAyZmZmZmExMDBhMjAwYTMwMjA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAwMzAyMDBmZiI6IiI6TUJFRFRMU19FUlJfWDUwOV9JTlZBTElEX0VYVEVOU0lPTlMgKyBNQkVEVExTX0VSUl9BU04xX1VORVhQRUNURURfVEFHCiAKIFg1MDkgQ1JUIEFTTjEgKFRCUywgaW52IHYzRXh0LCBpbm5lciBsZW5ndGggbWlzc2luZykKLWRlcGVuZHNfb246TUJFRFRMU19SU0FfQzpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246TUJFRFRMU19SU0FfQzpQU0FfV0FOVF9BTEdfU0hBXzI1NgogeDUwOXBhcnNlX2NydDoiMzA4MTlkMzA4MTg3YTAwMzAyMDEwMjgyMDRkZWFkYmVlZjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDMwMGMzMTBhMzAwODA2MDAxMzA0NTQ2NTczNzQzMDFjMTcwYzMwMzkzMDMxMzAzMTMwMzAzMDMwMzAzMDE3MGMzMDM5MzEzMjMzMzEzMjMzMzUzOTM1MzkzMDBjMzEwYTMwMDgwNjAwMTMwNDU0NjU3Mzc0MzAyYTMwMGQwNjA5MkE4NjQ4ODZGNzBEMDEwMTAxMDUwMDAzMTkwMDMwMTYwMjEwZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYwMjAyZmZmZmExMDBhMjAwYTMwMTMwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMDMwMjAwZmYiOiIiOk1CRURUTFNfRVJSX1g1MDlfSU5WQUxJRF9FWFRFTlNJT05TICsgTUJFRFRMU19FUlJfQVNOMV9PVVRfT0ZfREFUQQogCiBYNTA5IENSVCBBU04xIChUQlMsIGludiB2M0V4dCwgaW5uZXIgbGVuZ3RoIGludiBlbmNvZGluZykKLWRlcGVuZHNfb246TUJFRFRMU19SU0FfQzpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246TUJFRFRMU19SU0FfQzpQU0FfV0FOVF9BTEdfU0hBXzI1NgogeDUwOXBhcnNlX2NydDoiMzA4MTllMzA4MTg4YTAwMzAyMDEwMjgyMDRkZWFkYmVlZjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDMwMGMzMTBhMzAwODA2MDAxMzA0NTQ2NTczNzQzMDFjMTcwYzMwMzkzMDMxMzAzMTMwMzAzMDMwMzAzMDE3MGMzMDM5MzEzMjMzMzEzMjMzMzUzOTM1MzkzMDBjMzEwYTMwMDgwNjAwMTMwNDU0NjU3Mzc0MzAyYTMwMGQwNjA5MkE4NjQ4ODZGNzBEMDEwMTAxMDUwMDAzMTkwMDMwMTYwMjEwZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYwMjAyZmZmZmExMDBhMjAwYTMwMjMwODUzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAwMzAyMDBmZiI6IiI6TUJFRFRMU19FUlJfWDUwOV9JTlZBTElEX0VYVEVOU0lPTlMgKyBNQkVEVExTX0VSUl9BU04xX0lOVkFMSURfTEVOR1RICiAKIFg1MDkgQ1JUIEFTTjEgKFRCUywgaW52IHYzRXh0LCBpbm5lciBsZW5ndGggb3V0IG9mIGJvdW5kcykKLWRlcGVuZHNfb246TUJFRFRMU19SU0FfQzpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246TUJFRFRMU19SU0FfQzpQU0FfV0FOVF9BTEdfU0hBXzI1NgogeDUwOXBhcnNlX2NydDoiMzA4MTllMzA4MTg4YTAwMzAyMDEwMjgyMDRkZWFkYmVlZjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDMwMGMzMTBhMzAwODA2MDAxMzA0NTQ2NTczNzQzMDFjMTcwYzMwMzkzMDMxMzAzMTMwMzAzMDMwMzAzMDE3MGMzMDM5MzEzMjMzMzEzMjMzMzUzOTM1MzkzMDBjMzEwYTMwMDgwNjAwMTMwNDU0NjU3Mzc0MzAyYTMwMGQwNjA5MkE4NjQ4ODZGNzBEMDEwMTAxMDUwMDAzMTkwMDMwMTYwMjEwZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYwMjAyZmZmZmExMDBhMjAwYTMwMjMwMDEzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAwMzAyMDBmZiI6IiI6TUJFRFRMU19FUlJfWDUwOV9JTlZBTElEX0VYVEVOU0lPTlMgKyBNQkVEVExTX0VSUl9BU04xX09VVF9PRl9EQVRBCiAKIFg1MDkgQ1JUIEFTTjEgKFRCUywgaW52IHYzRXh0LCBpbm5lci9vdXRlciBsZW5ndGggbWlzbWF0Y2gpCi1kZXBlbmRzX29uOk1CRURUTFNfUlNBX0M6TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOk1CRURUTFNfUlNBX0M6UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHg1MDlwYXJzZV9jcnQ6IjMwODE5ZjMwODE4OWEwMDMwMjAxMDI4MjA0ZGVhZGJlZWYzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAzMDBjMzEwYTMwMDgwNjAwMTMwNDU0NjU3Mzc0MzAxYzE3MGMzMDM5MzAzMTMwMzEzMDMwMzAzMDMwMzAxNzBjMzAzOTMxMzIzMzMxMzIzMzM1MzkzNTM5MzAwYzMxMGEzMDA4MDYwMDEzMDQ1NDY1NzM3NDMwMmEzMDBkMDYwOTJBODY0ODg2RjcwRDAxMDEwMTA1MDAwMzE5MDAzMDE2MDIxMGZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMDIwMmZmZmZhMTAwYTIwMGEzMDMzMDAwMDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAwMzAyMDBmZiI6IiI6TUJFRFRMU19FUlJfWDUwOV9JTlZBTElEX0VYVEVOU0lPTlMgKyBNQkVEVExTX0VSUl9BU04xX0xFTkdUSF9NSVNNQVRDSAogCiBYNTA5IENSVCBBU04xIChUQlMsIGludiB2M0V4dCwgZmlyc3QgZXh0IGludiB0YWcpCi1kZXBlbmRzX29uOk1CRURUTFNfUlNBX0M6TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOk1CRURUTFNfUlNBX0M6UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHg1MDlwYXJzZV9jcnQ6IjMwODFhMDMwODE4YWEwMDMwMjAxMDI4MjA0ZGVhZGJlZWYzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAzMDBjMzEwYTMwMDgwNjAwMTMwNDU0NjU3Mzc0MzAxYzE3MGMzMDM5MzAzMTMwMzEzMDMwMzAzMDMwMzAxNzBjMzAzOTMxMzIzMzMxMzIzMzM1MzkzNTM5MzAwYzMxMGEzMDA4MDYwMDEzMDQ1NDY1NzM3NDMwMmEzMDBkMDYwOTJBODY0ODg2RjcwRDAxMDEwMTA1MDAwMzE5MDAzMDE2MDIxMGZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMDIwMmZmZmZhMTAwYTIwMGEzMDQzMDAyMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDAzMDIwMGZmIjoiIjpNQkVEVExTX0VSUl9YNTA5X0lOVkFMSURfRVhURU5TSU9OUyArIE1CRURUTFNfRVJSX0FTTjFfVU5FWFBFQ1RFRF9UQUcKIAogWDUwOSBDUlQgQVNOMSAoVEJTLCBpbnYgdjNFeHQsIGZpcnN0IGV4dCBsZW5ndGggbWlzc2luZykKLWRlcGVuZHNfb246TUJFRFRMU19SU0FfQzpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246TUJFRFRMU19SU0FfQzpQU0FfV0FOVF9BTEdfU0hBXzI1NgogeDUwOXBhcnNlX2NydDoiMzA4MTlmMzA4MTg5YTAwMzAyMDEwMjgyMDRkZWFkYmVlZjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDMwMGMzMTBhMzAwODA2MDAxMzA0NTQ2NTczNzQzMDFjMTcwYzMwMzkzMDMxMzAzMTMwMzAzMDMwMzAzMDE3MGMzMDM5MzEzMjMzMzEzMjMzMzUzOTM1MzkzMDBjMzEwYTMwMDgwNjAwMTMwNDU0NjU3Mzc0MzAyYTMwMGQwNjA5MkE4NjQ4ODZGNzBEMDEwMTAxMDUwMDAzMTkwMDMwMTYwMjEwZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYwMjAyZmZmZmExMDBhMjAwYTMwMzMwMDEzMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDAzMDIwMGZmIjoiIjpNQkVEVExTX0VSUl9YNTA5X0lOVkFMSURfRVhURU5TSU9OUyArIE1CRURUTFNfRVJSX0FTTjFfT1VUX09GX0RBVEEKIAogWDUwOSBDUlQgQVNOMSAoVEJTLCBpbnYgdjNFeHQsIGludiBmaXJzdCBleHQgbGVuZ3RoIGVuY29kaW5nKQotZGVwZW5kc19vbjpNQkVEVExTX1JTQV9DOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpNQkVEVExTX1JTQV9DOlBTQV9XQU5UX0FMR19TSEFfMjU2CiB4NTA5cGFyc2VfY3J0OiIzMDgxYTAzMDgxOGFhMDAzMDIwMTAyODIwNGRlYWRiZWVmMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMzAwYzMxMGEzMDA4MDYwMDEzMDQ1NDY1NzM3NDMwMWMxNzBjMzAzOTMwMzEzMDMxMzAzMDMwMzAzMDMwMTcwYzMwMzkzMTMyMzMzMTMyMzMzNTM5MzUzOTMwMGMzMTBhMzAwODA2MDAxMzA0NTQ2NTczNzQzMDJhMzAwZDA2MDkyQTg2NDg4NkY3MEQwMTAxMDEwNTAwMDMxOTAwMzAxNjAyMTBmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjAyMDJmZmZmYTEwMGEyMDBhMzA0MzAwMjMwODUzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAwMzAyMDBmZiI6IiI6TUJFRFRMU19FUlJfWDUwOV9JTlZBTElEX0VYVEVOU0lPTlMgKyBNQkVEVExTX0VSUl9BU04xX0lOVkFMSURfTEVOR1RICiAKIFg1MDkgQ1JUIEFTTjEgKFRCUywgaW52IHYzRXh0LCBmaXJzdCBleHQgbGVuZ3RoIG91dCBvZiBib3VuZHMpCi1kZXBlbmRzX29uOk1CRURUTFNfUlNBX0M6TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOk1CRURUTFNfUlNBX0M6UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHg1MDlwYXJzZV9jcnQ6IjMwODFhMDMwODE4YWEwMDMwMjAxMDI4MjA0ZGVhZGJlZWYzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAzMDBjMzEwYTMwMDgwNjAwMTMwNDU0NjU3Mzc0MzAxYzE3MGMzMDM5MzAzMTMwMzEzMDMwMzAzMDMwMzAxNzBjMzAzOTMxMzIzMzMxMzIzMzM1MzkzNTM5MzAwYzMxMGEzMDA4MDYwMDEzMDQ1NDY1NzM3NDMwMmEzMDBkMDYwOTJBODY0ODg2RjcwRDAxMDEwMTA1MDAwMzE5MDAzMDE2MDIxMGZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMDIwMmZmZmZhMTAwYTIwMGEzMDQzMDAyMzAwMTMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDAzMDIwMGZmIjoiIjpNQkVEVExTX0VSUl9YNTA5X0lOVkFMSURfRVhURU5TSU9OUyArIE1CRURUTFNfRVJSX0FTTjFfT1VUX09GX0RBVEEKIAogWDUwOSBDUlQgQVNOMSAoVEJTLCBpbnYgdjNFeHQsIGZpcnN0IGV4dCBlbXB0eSkKLWRlcGVuZHNfb246TUJFRFRMU19SU0FfQzpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246TUJFRFRMU19SU0FfQzpQU0FfV0FOVF9BTEdfU0hBXzI1NgogeDUwOXBhcnNlX2NydDoiMzA4MWEwMzA4MThhYTAwMzAyMDEwMjgyMDRkZWFkYmVlZjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDMwMGMzMTBhMzAwODA2MDAxMzA0NTQ2NTczNzQzMDFjMTcwYzMwMzkzMDMxMzAzMTMwMzAzMDMwMzAzMDE3MGMzMDM5MzEzMjMzMzEzMjMzMzUzOTM1MzkzMDBjMzEwYTMwMDgwNjAwMTMwNDU0NjU3Mzc0MzAyYTMwMGQwNjA5MkE4NjQ4ODZGNzBEMDEwMTAxMDUwMDAzMTkwMDMwMTYwMjEwZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYwMjAyZmZmZmExMDBhMjAwYTMwNDMwMDIzMDAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMDMwMjAwZmYiOiIiOk1CRURUTFNfRVJSX1g1MDlfSU5WQUxJRF9FWFRFTlNJT05TICsgTUJFRFRMU19FUlJfQVNOMV9PVVRfT0ZfREFUQQogCiBYNTA5IENSVCBBU04xIChUQlMsIGludiB2M0V4dCwgZmlyc3QgZXh0IGV4dG5JRCBpbnYgdGFnKQotZGVwZW5kc19vbjpNQkVEVExTX1JTQV9DOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpNQkVEVExTX1JTQV9DOlBTQV9XQU5UX0FMR19TSEFfMjU2CiB4NTA5cGFyc2VfY3J0OiIzMDgxYTIzMDgxOGNhMDAzMDIwMTAyODIwNGRlYWRiZWVmMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMzAwYzMxMGEzMDA4MDYwMDEzMDQ1NDY1NzM3NDMwMWMxNzBjMzAzOTMwMzEzMDMxMzAzMDMwMzAzMDMwMTcwYzMwMzkzMTMyMzMzMTMyMzMzNTM5MzUzOTMwMGMzMTBhMzAwODA2MDAxMzA0NTQ2NTczNzQzMDJhMzAwZDA2MDkyQTg2NDg4NkY3MEQwMTAxMDEwNTAwMDMxOTAwMzAxNjAyMTBmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjAyMDJmZmZmYTEwMGEyMDBhMzA2MzAwNDMwMDIwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMDMwMjAwZmYiOiIiOk1CRURUTFNfRVJSX1g1MDlfSU5WQUxJRF9FWFRFTlNJT05TICsgTUJFRFRMU19FUlJfQVNOMV9VTkVYUEVDVEVEX1RBRwogCiBYNTA5IENSVCBBU04xIChUQlMsIGludiB2M0V4dCwgZmlyc3QgZXh0IGV4dG5JRCBsZW5ndGggbWlzc2luZykKLWRlcGVuZHNfb246TUJFRFRMU19SU0FfQzpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246TUJFRFRMU19SU0FfQzpQU0FfV0FOVF9BTEdfU0hBXzI1NgogeDUwOXBhcnNlX2NydDoiMzA4MWExMzA4MThiYTAwMzAyMDEwMjgyMDRkZWFkYmVlZjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDMwMGMzMTBhMzAwODA2MDAxMzA0NTQ2NTczNzQzMDFjMTcwYzMwMzkzMDMxMzAzMTMwMzAzMDMwMzAzMDE3MGMzMDM5MzEzMjMzMzEzMjMzMzUzOTM1MzkzMDBjMzEwYTMwMDgwNjAwMTMwNDU0NjU3Mzc0MzAyYTMwMGQwNjA5MkE4NjQ4ODZGNzBEMDEwMTAxMDUwMDAzMTkwMDMwMTYwMjEwZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYwMjAyZmZmZmExMDBhMjAwYTMwNTMwMDMzMDAxMDYzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAwMzAyMDBmZiI6IiI6TUJFRFRMU19FUlJfWDUwOV9JTlZBTElEX0VYVEVOU0lPTlMgKyBNQkVEVExTX0VSUl9BU04xX09VVF9PRl9EQVRBCiAKIFg1MDkgQ1JUIEFTTjEgKFRCUywgaW52IHYzRXh0LCBmaXJzdCBleHQgZXh0bklEIGludiBsZW5ndGggZW5jb2RpbmcpCi1kZXBlbmRzX29uOk1CRURUTFNfUlNBX0M6TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOk1CRURUTFNfUlNBX0M6UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHg1MDlwYXJzZV9jcnQ6IjMwODFhMjMwODE4Y2EwMDMwMjAxMDI4MjA0ZGVhZGJlZWYzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAzMDBjMzEwYTMwMDgwNjAwMTMwNDU0NjU3Mzc0MzAxYzE3MGMzMDM5MzAzMTMwMzEzMDMwMzAzMDMwMzAxNzBjMzAzOTMxMzIzMzMxMzIzMzM1MzkzNTM5MzAwYzMxMGEzMDA4MDYwMDEzMDQ1NDY1NzM3NDMwMmEzMDBkMDYwOTJBODY0ODg2RjcwRDAxMDEwMTA1MDAwMzE5MDAzMDE2MDIxMGZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMDIwMmZmZmZhMTAwYTIwMGEzMDYzMDA0MzAwMjA2ODUzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAwMzAyMDBmZiI6IiI6TUJFRFRMU19FUlJfWDUwOV9JTlZBTElEX0VYVEVOU0lPTlMgKyBNQkVEVExTX0VSUl9BU04xX0lOVkFMSURfTEVOR1RICiAKIFg1MDkgQ1JUIEFTTjEgKFRCUywgaW52IHYzRXh0LCBmaXJzdCBleHQgZXh0bklEIGxlbmd0aCBvdXQgb2YgYm91bmRzKQotZGVwZW5kc19vbjpNQkVEVExTX1JTQV9DOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpNQkVEVExTX1JTQV9DOlBTQV9XQU5UX0FMR19TSEFfMjU2CiB4NTA5cGFyc2VfY3J0OiIzMDgxYTIzMDgxOGNhMDAzMDIwMTAyODIwNGRlYWRiZWVmMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMzAwYzMxMGEzMDA4MDYwMDEzMDQ1NDY1NzM3NDMwMWMxNzBjMzAzOTMwMzEzMDMxMzAzMDMwMzAzMDMwMTcwYzMwMzkzMTMyMzMzMTMyMzMzNTM5MzUzOTMwMGMzMTBhMzAwODA2MDAxMzA0NTQ2NTczNzQzMDJhMzAwZDA2MDkyQTg2NDg4NkY3MEQwMTAxMDEwNTAwMDMxOTAwMzAxNjAyMTBmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjAyMDJmZmZmYTEwMGEyMDBhMzA2MzAwNDMwMDIwNjAxMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMDMwMjAwZmYiOiIiOk1CRURUTFNfRVJSX1g1MDlfSU5WQUxJRF9FWFRFTlNJT05TICsgTUJFRFRMU19FUlJfQVNOMV9PVVRfT0ZfREFUQQogCiBYNTA5IENSVCBBU04xIChUQlMsIGludiB2M0V4dCwgbm8gZXh0blZhbHVlKQotZGVwZW5kc19vbjpNQkVEVExTX1JTQV9DOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpNQkVEVExTX1JTQV9DOlBTQV9XQU5UX0FMR19TSEFfMjU2CiB4NTA5cGFyc2VfY3J0OiIzMDgxYTIzMDgxOGNhMDAzMDIwMTAyODIwNGRlYWRiZWVmMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMzAwYzMxMGEzMDA4MDYwMDEzMDQ1NDY1NzM3NDMwMWMxNzBjMzAzOTMwMzEzMDMxMzAzMDMwMzAzMDMwMTcwYzMwMzkzMTMyMzMzMTMyMzMzNTM5MzUzOTMwMGMzMTBhMzAwODA2MDAxMzA0NTQ2NTczNzQzMDJhMzAwZDA2MDkyQTg2NDg4NkY3MEQwMTAxMDEwNTAwMDMxOTAwMzAxNjAyMTBmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjAyMDJmZmZmYTEwMGEyMDBhMzA2MzAwNDMwMDIwNjAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMDMwMjAwZmYiOiIiOk1CRURUTFNfRVJSX1g1MDlfSU5WQUxJRF9FWFRFTlNJT05TICsgTUJFRFRMU19FUlJfQVNOMV9PVVRfT0ZfREFUQQogCiBYNTA5IENSVCBBU04xIChUQlMsIGludiB2M0V4dCwgaW52IGNyaXRpY2FsIHRhZykKLWRlcGVuZHNfb246TUJFRFRMU19SU0FfQzpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246TUJFRFRMU19SU0FfQzpQU0FfV0FOVF9BTEdfU0hBXzI1NgogeDUwOXBhcnNlX2NydDoiMzA4MWE0MzA4MThlYTAwMzAyMDEwMjgyMDRkZWFkYmVlZjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDMwMGMzMTBhMzAwODA2MDAxMzA0NTQ2NTczNzQzMDFjMTcwYzMwMzkzMDMxMzAzMTMwMzAzMDMwMzAzMDE3MGMzMDM5MzEzMjMzMzEzMjMzMzUzOTM1MzkzMDBjMzEwYTMwMDgwNjAwMTMwNDU0NjU3Mzc0MzAyYTMwMGQwNjA5MkE4NjQ4ODZGNzBEMDEwMTAxMDUwMDAzMTkwMDMwMTYwMjEwZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYwMjAyZmZmZmExMDBhMjAwYTMwODMwMDYzMDA0MDYwMDA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAwMzAyMDBmZiI6IiI6TUJFRFRMU19FUlJfWDUwOV9JTlZBTElEX0VYVEVOU0lPTlMgKyBNQkVEVExTX0VSUl9BU04xX1VORVhQRUNURURfVEFHCiAKIFg1MDkgQ1JUIEFTTjEgKFRCUywgaW52IHYzRXh0LCBjcml0aWNhbCBsZW5ndGggbWlzc2luZykKLWRlcGVuZHNfb246TUJFRFRMU19SU0FfQzpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246TUJFRFRMU19SU0FfQzpQU0FfV0FOVF9BTEdfU0hBXzI1NgogeDUwOXBhcnNlX2NydDoiMzA4MWEzMzA4MThkYTAwMzAyMDEwMjgyMDRkZWFkYmVlZjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDMwMGMzMTBhMzAwODA2MDAxMzA0NTQ2NTczNzQzMDFjMTcwYzMwMzkzMDMxMzAzMTMwMzAzMDMwMzAzMDE3MGMzMDM5MzEzMjMzMzEzMjMzMzUzOTM1MzkzMDBjMzEwYTMwMDgwNjAwMTMwNDU0NjU3Mzc0MzAyYTMwMGQwNjA5MkE4NjQ4ODZGNzBEMDEwMTAxMDUwMDAzMTkwMDMwMTYwMjEwZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYwMjAyZmZmZmExMDBhMjAwYTMwNzMwMDUzMDAzMDYwMDAxMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMDMwMjAwZmYiOiIiOk1CRURUTFNfRVJSX1g1MDlfSU5WQUxJRF9FWFRFTlNJT05TICsgTUJFRFRMU19FUlJfQVNOMV9PVVRfT0ZfREFUQQogCiBYNTA5IENSVCBBU04xIChUQlMsIGludiB2M0V4dCwgY3JpdGljYWwgaW52IGxlbmd0aCBlbmNvZGluZykKLWRlcGVuZHNfb246TUJFRFRMU19SU0FfQzpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246TUJFRFRMU19SU0FfQzpQU0FfV0FOVF9BTEdfU0hBXzI1NgogeDUwOXBhcnNlX2NydDoiMzA4MWE0MzA4MThlYTAwMzAyMDEwMjgyMDRkZWFkYmVlZjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDMwMGMzMTBhMzAwODA2MDAxMzA0NTQ2NTczNzQzMDFjMTcwYzMwMzkzMDMxMzAzMTMwMzAzMDMwMzAzMDE3MGMzMDM5MzEzMjMzMzEzMjMzMzUzOTM1MzkzMDBjMzEwYTMwMDgwNjAwMTMwNDU0NjU3Mzc0MzAyYTMwMGQwNjA5MkE4NjQ4ODZGNzBEMDEwMTAxMDUwMDAzMTkwMDMwMTYwMjEwZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYwMjAyZmZmZmExMDBhMjAwYTMwODMwMDYzMDA0MDYwMDAxODUzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAwMzAyMDBmZiI6IiI6TUJFRFRMU19FUlJfWDUwOV9JTlZBTElEX0VYVEVOU0lPTlMgKyBNQkVEVExTX0VSUl9BU04xX0lOVkFMSURfTEVOR1RICiAKIFg1MDkgQ1JUIEFTTjEgKFRCUywgaW52IHYzRXh0LCBjcml0aWNhbCBsZW5ndGggb3V0IG9mIGJvdW5kcykKLWRlcGVuZHNfb246TUJFRFRMU19SU0FfQzpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246TUJFRFRMU19SU0FfQzpQU0FfV0FOVF9BTEdfU0hBXzI1NgogeDUwOXBhcnNlX2NydDoiMzA4MWE0MzA4MThlYTAwMzAyMDEwMjgyMDRkZWFkYmVlZjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDMwMGMzMTBhMzAwODA2MDAxMzA0NTQ2NTczNzQzMDFjMTcwYzMwMzkzMDMxMzAzMTMwMzAzMDMwMzAzMDE3MGMzMDM5MzEzMjMzMzEzMjMzMzUzOTM1MzkzMDBjMzEwYTMwMDgwNjAwMTMwNDU0NjU3Mzc0MzAyYTMwMGQwNjA5MkE4NjQ4ODZGNzBEMDEwMTAxMDUwMDAzMTkwMDMwMTYwMjEwZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYwMjAyZmZmZmExMDBhMjAwYTMwODMwMDYzMDA0MDYwMDAxMDEzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAwMzAyMDBmZiI6IiI6TUJFRFRMU19FUlJfWDUwOV9JTlZBTElEX0VYVEVOU0lPTlMgKyBNQkVEVExTX0VSUl9BU04xX09VVF9PRl9EQVRBCiAKIFg1MDkgQ1JUIEFTTjEgKFRCUywgaW52IHYzRXh0LCBjcml0aWNhbCBsZW5ndGggMCkKLWRlcGVuZHNfb246TUJFRFRMU19SU0FfQzpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246TUJFRFRMU19SU0FfQzpQU0FfV0FOVF9BTEdfU0hBXzI1NgogeDUwOXBhcnNlX2NydDoiMzA4MWE0MzA4MThlYTAwMzAyMDEwMjgyMDRkZWFkYmVlZjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDMwMGMzMTBhMzAwODA2MDAxMzA0NTQ2NTczNzQzMDFjMTcwYzMwMzkzMDMxMzAzMTMwMzAzMDMwMzAzMDE3MGMzMDM5MzEzMjMzMzEzMjMzMzUzOTM1MzkzMDBjMzEwYTMwMDgwNjAwMTMwNDU0NjU3Mzc0MzAyYTMwMGQwNjA5MkE4NjQ4ODZGNzBEMDEwMTAxMDUwMDAzMTkwMDMwMTYwMjEwZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYwMjAyZmZmZmExMDBhMjAwYTMwODMwMDYzMDA0MDYwMDAxMDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAwMzAyMDBmZiI6IiI6TUJFRFRMU19FUlJfWDUwOV9JTlZBTElEX0VYVEVOU0lPTlMgKyBNQkVEVExTX0VSUl9BU04xX0lOVkFMSURfTEVOR1RICiAKIFg1MDkgQ1JUIEFTTjEgKFRCUywgaW52IHYzRXh0LCBjcml0aWNhbCBsZW5ndGggMikKLWRlcGVuZHNfb246TUJFRFRMU19SU0FfQzpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246TUJFRFRMU19SU0FfQzpQU0FfV0FOVF9BTEdfU0hBXzI1NgogeDUwOXBhcnNlX2NydDoiMzA4MWE2MzA4MTkwYTAwMzAyMDEwMjgyMDRkZWFkYmVlZjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDMwMGMzMTBhMzAwODA2MDAxMzA0NTQ2NTczNzQzMDFjMTcwYzMwMzkzMDMxMzAzMTMwMzAzMDMwMzAzMDE3MGMzMDM5MzEzMjMzMzEzMjMzMzUzOTM1MzkzMDBjMzEwYTMwMDgwNjAwMTMwNDU0NjU3Mzc0MzAyYTMwMGQwNjA5MkE4NjQ4ODZGNzBEMDEwMTAxMDUwMDAzMTkwMDMwMTYwMjEwZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYwMjAyZmZmZmExMDBhMjAwYTMwYTMwMDgzMDA2MDYwMDAxMDIwMDAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMDMwMjAwZmYiOiIiOk1CRURUTFNfRVJSX1g1MDlfSU5WQUxJRF9FWFRFTlNJT05TICsgTUJFRFRMU19FUlJfQVNOMV9JTlZBTElEX0xFTkdUSAogCiBYNTA5IENSVCBBU04xIChUQlMsIGludiB2M0V4dCwgZXh0blZhbHVlIGludiB0YWcpCi1kZXBlbmRzX29uOk1CRURUTFNfUlNBX0M6TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOk1CRURUTFNfUlNBX0M6UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHg1MDlwYXJzZV9jcnQ6IjMwODFhNzMwODE5MWEwMDMwMjAxMDI4MjA0ZGVhZGJlZWYzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAzMDBjMzEwYTMwMDgwNjAwMTMwNDU0NjU3Mzc0MzAxYzE3MGMzMDM5MzAzMTMwMzEzMDMwMzAzMDMwMzAxNzBjMzAzOTMxMzIzMzMxMzIzMzM1MzkzNTM5MzAwYzMxMGEzMDA4MDYwMDEzMDQ1NDY1NzM3NDMwMmEzMDBkMDYwOTJBODY0ODg2RjcwRDAxMDEwMTA1MDAwMzE5MDAzMDE2MDIxMGZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMDIwMmZmZmZhMTAwYTIwMGEzMGIzMDA5MzAwNzA2MDAwMTAxMDAwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMDMwMjAwZmYiOiIiOk1CRURUTFNfRVJSX1g1MDlfSU5WQUxJRF9FWFRFTlNJT05TICsgTUJFRFRMU19FUlJfQVNOMV9VTkVYUEVDVEVEX1RBRwogCiBYNTA5IENSVCBBU04xIChUQlMsIGludiB2M0V4dCwgZXh0blZhbHVlIGxlbmd0aCBtaXNzaW5nKQotZGVwZW5kc19vbjpNQkVEVExTX1JTQV9DOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpNQkVEVExTX1JTQV9DOlBTQV9XQU5UX0FMR19TSEFfMjU2CiB4NTA5cGFyc2VfY3J0OiIzMDgxYTYzMDgxOTBhMDAzMDIwMTAyODIwNGRlYWRiZWVmMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMzAwYzMxMGEzMDA4MDYwMDEzMDQ1NDY1NzM3NDMwMWMxNzBjMzAzOTMwMzEzMDMxMzAzMDMwMzAzMDMwMTcwYzMwMzkzMTMyMzMzMTMyMzMzNTM5MzUzOTMwMGMzMTBhMzAwODA2MDAxMzA0NTQ2NTczNzQzMDJhMzAwZDA2MDkyQTg2NDg4NkY3MEQwMTAxMDEwNTAwMDMxOTAwMzAxNjAyMTBmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjAyMDJmZmZmYTEwMGEyMDBhMzBhMzAwODMwMDYwNjAwMDEwMTAwMDQzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAwMzAyMDBmZiI6IiI6TUJFRFRMU19FUlJfWDUwOV9JTlZBTElEX0VYVEVOU0lPTlMgKyBNQkVEVExTX0VSUl9BU04xX09VVF9PRl9EQVRBCiAKIFg1MDkgQ1JUIEFTTjEgKFRCUywgaW52IHYzRXh0LCBleHRuVmFsdWUgbGVuZ3RoIGludiBlbmNvZGluZykKLWRlcGVuZHNfb246TUJFRFRMU19SU0FfQzpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246TUJFRFRMU19SU0FfQzpQU0FfV0FOVF9BTEdfU0hBXzI1NgogeDUwOXBhcnNlX2NydDoiMzA4MWE3MzA4MTkxYTAwMzAyMDEwMjgyMDRkZWFkYmVlZjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDMwMGMzMTBhMzAwODA2MDAxMzA0NTQ2NTczNzQzMDFjMTcwYzMwMzkzMDMxMzAzMTMwMzAzMDMwMzAzMDE3MGMzMDM5MzEzMjMzMzEzMjMzMzUzOTM1MzkzMDBjMzEwYTMwMDgwNjAwMTMwNDU0NjU3Mzc0MzAyYTMwMGQwNjA5MkE4NjQ4ODZGNzBEMDEwMTAxMDUwMDAzMTkwMDMwMTYwMjEwZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYwMjAyZmZmZmExMDBhMjAwYTMwYjMwMDkzMDA3MDYwMDAxMDEwMDA0ODUzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAwMzAyMDBmZiI6IiI6TUJFRFRMU19FUlJfWDUwOV9JTlZBTElEX0VYVEVOU0lPTlMgKyBNQkVEVExTX0VSUl9BU04xX0lOVkFMSURfTEVOR1RICiAKIFg1MDkgQ1JUIEFTTjEgKFRCUywgaW52IHYzRXh0LCBleHRuVmFsdWUgbGVuZ3RoIG91dCBvZiBib3VuZHMpCi1kZXBlbmRzX29uOk1CRURUTFNfUlNBX0M6TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOk1CRURUTFNfUlNBX0M6UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHg1MDlwYXJzZV9jcnQ6IjMwODFhNzMwODE5MWEwMDMwMjAxMDI4MjA0ZGVhZGJlZWYzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAzMDBjMzEwYTMwMDgwNjAwMTMwNDU0NjU3Mzc0MzAxYzE3MGMzMDM5MzAzMTMwMzEzMDMwMzAzMDMwMzAxNzBjMzAzOTMxMzIzMzMxMzIzMzM1MzkzNTM5MzAwYzMxMGEzMDA4MDYwMDEzMDQ1NDY1NzM3NDMwMmEzMDBkMDYwOTJBODY0ODg2RjcwRDAxMDEwMTA1MDAwMzE5MDAzMDE2MDIxMGZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMDIwMmZmZmZhMTAwYTIwMGEzMGIzMDA5MzAwNzA2MDAwMTAxMDAwNDAxMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMDMwMjAwZmYiOiIiOk1CRURUTFNfRVJSX1g1MDlfSU5WQUxJRF9FWFRFTlNJT05TICsgTUJFRFRMU19FUlJfQVNOMV9PVVRfT0ZfREFUQQogCiBYNTA5IENSVCBBU04xIChUQlMsIGludiB2M0V4dCwgZGF0YSByZW1haW5pbmcgYWZ0ZXIgZXh0blZhbHVlKQotZGVwZW5kc19vbjpNQkVEVExTX1JTQV9DOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpNQkVEVExTX1JTQV9DOlBTQV9XQU5UX0FMR19TSEFfMjU2CiB4NTA5cGFyc2VfY3J0OiIzMDgxYTkzMDgxOTNhMDAzMDIwMTAyODIwNGRlYWRiZWVmMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMzAwYzMxMGEzMDA4MDYwMDEzMDQ1NDY1NzM3NDMwMWMxNzBjMzAzOTMwMzEzMDMxMzAzMDMwMzAzMDMwMTcwYzMwMzkzMTMyMzMzMTMyMzMzNTM5MzUzOTMwMGMzMTBhMzAwODA2MDAxMzA0NTQ2NTczNzQzMDJhMzAwZDA2MDkyQTg2NDg4NkY3MEQwMTAxMDEwNTAwMDMxOTAwMzAxNjAyMTBmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjAyMDJmZmZmYTEwMGEyMDBhMzBkMzAwYjMwMDkwNjAwMDEwMTAwMDQwMDA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAwMzAyMDBmZiI6IiI6TUJFRFRMU19FUlJfWDUwOV9JTlZBTElEX0VYVEVOU0lPTlMgKyBNQkVEVExTX0VSUl9BU04xX0xFTkdUSF9NSVNNQVRDSAogCiBYNTA5IENSVCBBU04xIChUQlNDZXJ0aWZpY2F0ZSB2MywgaW52IENlcnRpZmljYXRlUG9saWNpZXMsIGRhdGEgbWlzc2luZykKLWRlcGVuZHNfb246TUJFRFRMU19SU0FfQzpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246TUJFRFRMU19SU0FfQzpQU0FfV0FOVF9BTEdfU0hBXzI1NgogeDUwOXBhcnNlX2NydDoiMzA4MWE3MzA4MTkxYTAwMzAyMDEwMjgyMDRkZWFkYmVlZjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDMwMGMzMTBhMzAwODA2MDAxMzA0NTQ2NTczNzQzMDFjMTcwYzMwMzkzMDMxMzAzMTMwMzAzMDMwMzAzMDE3MGMzMDM5MzEzMjMzMzEzMjMzMzUzOTM1MzkzMDBjMzEwYTMwMDgwNjAwMTMwNDU0NjU3Mzc0MzAyYTMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDAzMTkwMDMwMTYwMjEwZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYwMjAyZmZmZmExMDBhMjAwYTMwYjMwMDkzMDA3MDYwMzU1MWQyMDA0MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAwMzAyMDBmZiI6IiI6TUJFRFRMU19FUlJfWDUwOV9JTlZBTElEX0VYVEVOU0lPTlMgKyBNQkVEVExTX0VSUl9BU04xX09VVF9PRl9EQVRBCiAKIFg1MDkgQ1JUIEFTTjEgKFRCU0NlcnRpZmljYXRlIHYzLCBpbnYgQ2VydGlmaWNhdGVQb2xpY2llcywgaW52YWxpZCBvdXRlciB0YWcpCi1kZXBlbmRzX29uOk1CRURUTFNfUlNBX0M6TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOk1CRURUTFNfUlNBX0M6UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHg1MDlwYXJzZV9jcnQ6IjMwODFhOTMwODE5M2EwMDMwMjAxMDI4MjA0ZGVhZGJlZWYzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAzMDBjMzEwYTMwMDgwNjAwMTMwNDU0NjU3Mzc0MzAxYzE3MGMzMDM5MzAzMTMwMzEzMDMwMzAzMDMwMzAxNzBjMzAzOTMxMzIzMzMxMzIzMzM1MzkzNTM5MzAwYzMxMGEzMDA4MDYwMDEzMDQ1NDY1NzM3NDMwMmEzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwMzE5MDAzMDE2MDIxMGZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMDIwMmZmZmZhMTAwYTIwMGEzMGQzMDBiMzAwOTA2MDM1NTFkMjAwNDAyMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDAzMDIwMGZmIjoiIjpNQkVEVExTX0VSUl9YNTA5X0lOVkFMSURfRVhURU5TSU9OUyArIE1CRURUTFNfRVJSX0FTTjFfVU5FWFBFQ1RFRF9UQUcKIAogWDUwOSBDUlQgQVNOMSAoVEJTQ2VydGlmaWNhdGUgdjMsIGludiBDZXJ0aWZpY2F0ZVBvbGljaWVzLCBvdXRlciBsZW5ndGggbWlzc2luZykKLWRlcGVuZHNfb246TUJFRFRMU19SU0FfQzpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246TUJFRFRMU19SU0FfQzpQU0FfV0FOVF9BTEdfU0hBXzI1NgogeDUwOXBhcnNlX2NydDoiMzA4MWE4MzA4MTkyYTAwMzAyMDEwMjgyMDRkZWFkYmVlZjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDMwMGMzMTBhMzAwODA2MDAxMzA0NTQ2NTczNzQzMDFjMTcwYzMwMzkzMDMxMzAzMTMwMzAzMDMwMzAzMDE3MGMzMDM5MzEzMjMzMzEzMjMzMzUzOTM1MzkzMDBjMzEwYTMwMDgwNjAwMTMwNDU0NjU3Mzc0MzAyYTMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDAzMTkwMDMwMTYwMjEwZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYwMjAyZmZmZmExMDBhMjAwYTMwYzMwMGEzMDA4MDYwMzU1MWQyMDA0MDEzMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDAzMDIwMGZmIjoiIjpNQkVEVExTX0VSUl9YNTA5X0lOVkFMSURfRVhURU5TSU9OUyArIE1CRURUTFNfRVJSX0FTTjFfT1VUX09GX0RBVEEKIAogWDUwOSBDUlQgQVNOMSAoVEJTQ2VydGlmaWNhdGUgdjMsIGludiBDZXJ0aWZpY2F0ZVBvbGljaWVzLCBvdXRlciBsZW5ndGggaW52IGVuY29kaW5nKQotZGVwZW5kc19vbjpNQkVEVExTX1JTQV9DOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpNQkVEVExTX1JTQV9DOlBTQV9XQU5UX0FMR19TSEFfMjU2CiB4NTA5cGFyc2VfY3J0OiIzMDgxYTkzMDgxOTNhMDAzMDIwMTAyODIwNGRlYWRiZWVmMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMzAwYzMxMGEzMDA4MDYwMDEzMDQ1NDY1NzM3NDMwMWMxNzBjMzAzOTMwMzEzMDMxMzAzMDMwMzAzMDMwMTcwYzMwMzkzMTMyMzMzMTMyMzMzNTM5MzUzOTMwMGMzMTBhMzAwODA2MDAxMzA0NTQ2NTczNzQzMDJhMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDMxOTAwMzAxNjAyMTBmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjAyMDJmZmZmYTEwMGEyMDBhMzBkMzAwYjMwMDkwNjAzNTUxZDIwMDQwMjMwODUzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAwMzAyMDBmZiI6IiI6TUJFRFRMU19FUlJfWDUwOV9JTlZBTElEX0VYVEVOU0lPTlMgKyBNQkVEVExTX0VSUl9BU04xX0lOVkFMSURfTEVOR1RICiAKIFg1MDkgQ1JUIEFTTjEgKFRCU0NlcnRpZmljYXRlIHYzLCBpbnYgQ2VydGlmaWNhdGVQb2xpY2llcywgb3V0ZXIgbGVuZ3RoIG91dCBvZiBib3VuZHMpCi1kZXBlbmRzX29uOk1CRURUTFNfUlNBX0M6TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOk1CRURUTFNfUlNBX0M6UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHg1MDlwYXJzZV9jcnQ6IjMwODFhOTMwODE5M2EwMDMwMjAxMDI4MjA0ZGVhZGJlZWYzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAzMDBjMzEwYTMwMDgwNjAwMTMwNDU0NjU3Mzc0MzAxYzE3MGMzMDM5MzAzMTMwMzEzMDMwMzAzMDMwMzAxNzBjMzAzOTMxMzIzMzMxMzIzMzM1MzkzNTM5MzAwYzMxMGEzMDA4MDYwMDEzMDQ1NDY1NzM3NDMwMmEzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwMzE5MDAzMDE2MDIxMGZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMDIwMmZmZmZhMTAwYTIwMGEzMGQzMDBiMzAwOTA2MDM1NTFkMjAwNDAyMzAwMTMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDAzMDIwMGZmIjoiIjpNQkVEVExTX0VSUl9YNTA5X0lOVkFMSURfRVhURU5TSU9OUyArIE1CRURUTFNfRVJSX0FTTjFfT1VUX09GX0RBVEEKIAogWDUwOSBDUlQgQVNOMSAoVEJTQ2VydGlmaWNhdGUgdjMsIGludiBDZXJ0aWZpY2F0ZVBvbGljaWVzLCBubyBwb2xpY2llcykKLWRlcGVuZHNfb246TUJFRFRMU19SU0FfQzpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246TUJFRFRMU19SU0FfQzpQU0FfV0FOVF9BTEdfU0hBXzI1NgogeDUwOXBhcnNlX2NydDoiMzA4MWE5MzA4MTkzYTAwMzAyMDEwMjgyMDRkZWFkYmVlZjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDMwMGMzMTBhMzAwODA2MDAxMzA0NTQ2NTczNzQzMDFjMTcwYzMwMzkzMDMxMzAzMTMwMzAzMDMwMzAzMDE3MGMzMDM5MzEzMjMzMzEzMjMzMzUzOTM1MzkzMDBjMzEwYTMwMDgwNjAwMTMwNDU0NjU3Mzc0MzAyYTMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDAzMTkwMDMwMTYwMjEwZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYwMjAyZmZmZmExMDBhMjAwYTMwZDMwMGIzMDA5MDYwMzU1MWQyMDA0MDIzMDAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMDMwMjAwZmYiOiIiOk1CRURUTFNfRVJSX1g1MDlfSU5WQUxJRF9FWFRFTlNJT05TICsgTUJFRFRMU19FUlJfQVNOMV9MRU5HVEhfTUlTTUFUQ0gKIAogWDUwOSBDUlQgQVNOMSAoVEJTQ2VydGlmaWNhdGUgdjMsIGludiBDZXJ0aWZpY2F0ZVBvbGljaWVzLCBwb2xpY3kgaW52YWxpZCB0YWcpCi1kZXBlbmRzX29uOk1CRURUTFNfUlNBX0M6TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOk1CRURUTFNfUlNBX0M6UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHg1MDlwYXJzZV9jcnQ6IjMwODFhYjMwODE5NWEwMDMwMjAxMDI4MjA0ZGVhZGJlZWYzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAzMDBjMzEwYTMwMDgwNjAwMTMwNDU0NjU3Mzc0MzAxYzE3MGMzMDM5MzAzMTMwMzEzMDMwMzAzMDMwMzAxNzBjMzAzOTMxMzIzMzMxMzIzMzM1MzkzNTM5MzAwYzMxMGEzMDA4MDYwMDEzMDQ1NDY1NzM3NDMwMmEzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwMzE5MDAzMDE2MDIxMGZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMDIwMmZmZmZhMTAwYTIwMGEzMGYzMDBkMzAwYjA2MDM1NTFkMjAwNDA0MzAwMjA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAwMzAyMDBmZiI6IiI6TUJFRFRMU19FUlJfWDUwOV9JTlZBTElEX0VYVEVOU0lPTlMgKyBNQkVEVExTX0VSUl9BU04xX1VORVhQRUNURURfVEFHCiAKIFg1MDkgQ1JUIEFTTjEgKFRCU0NlcnRpZmljYXRlIHYzLCBpbnYgQ2VydGlmaWNhdGVQb2xpY2llcywgcG9saWN5IGxlbmd0aCBtaXNzaW5nKQotZGVwZW5kc19vbjpNQkVEVExTX1JTQV9DOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpNQkVEVExTX1JTQV9DOlBTQV9XQU5UX0FMR19TSEFfMjU2CiB4NTA5cGFyc2VfY3J0OiIzMDgxYWEzMDgxOTRhMDAzMDIwMTAyODIwNGRlYWRiZWVmMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMzAwYzMxMGEzMDA4MDYwMDEzMDQ1NDY1NzM3NDMwMWMxNzBjMzAzOTMwMzEzMDMxMzAzMDMwMzAzMDMwMTcwYzMwMzkzMTMyMzMzMTMyMzMzNTM5MzUzOTMwMGMzMTBhMzAwODA2MDAxMzA0NTQ2NTczNzQzMDJhMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDMxOTAwMzAxNjAyMTBmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjAyMDJmZmZmYTEwMGEyMDBhMzBlMzAwYzMwMGEwNjAzNTUxZDIwMDQwMzMwMDEzMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDAzMDIwMGZmIjoiIjpNQkVEVExTX0VSUl9YNTA5X0lOVkFMSURfRVhURU5TSU9OUyArIE1CRURUTFNfRVJSX0FTTjFfT1VUX09GX0RBVEEKIAogWDUwOSBDUlQgQVNOMSAoVEJTQ2VydGlmaWNhdGUgdjMsIGludiBDZXJ0aWZpY2F0ZVBvbGljaWVzLCBwb2xpY3kgbGVuZ3RoIGludiBlbmNvZGluZykKLWRlcGVuZHNfb246TUJFRFRMU19SU0FfQzpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246TUJFRFRMU19SU0FfQzpQU0FfV0FOVF9BTEdfU0hBXzI1NgogeDUwOXBhcnNlX2NydDoiMzA4MWFiMzA4MTk1YTAwMzAyMDEwMjgyMDRkZWFkYmVlZjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDMwMGMzMTBhMzAwODA2MDAxMzA0NTQ2NTczNzQzMDFjMTcwYzMwMzkzMDMxMzAzMTMwMzAzMDMwMzAzMDE3MGMzMDM5MzEzMjMzMzEzMjMzMzUzOTM1MzkzMDBjMzEwYTMwMDgwNjAwMTMwNDU0NjU3Mzc0MzAyYTMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDAzMTkwMDMwMTYwMjEwZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYwMjAyZmZmZmExMDBhMjAwYTMwZjMwMGQzMDBiMDYwMzU1MWQyMDA0MDQzMDAyMzA4NTMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDAzMDIwMGZmIjoiIjpNQkVEVExTX0VSUl9YNTA5X0lOVkFMSURfRVhURU5TSU9OUyArIE1CRURUTFNfRVJSX0FTTjFfSU5WQUxJRF9MRU5HVEgKIAogWDUwOSBDUlQgQVNOMSAoVEJTQ2VydGlmaWNhdGUgdjMsIGludiBDZXJ0aWZpY2F0ZVBvbGljaWVzLCBwb2xpY3kgbGVuZ3RoIG91dCBvZiBib3VuZHMpCi1kZXBlbmRzX29uOk1CRURUTFNfUlNBX0M6TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOk1CRURUTFNfUlNBX0M6UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHg1MDlwYXJzZV9jcnQ6IjMwODFhYjMwODE5NWEwMDMwMjAxMDI4MjA0ZGVhZGJlZWYzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAzMDBjMzEwYTMwMDgwNjAwMTMwNDU0NjU3Mzc0MzAxYzE3MGMzMDM5MzAzMTMwMzEzMDMwMzAzMDMwMzAxNzBjMzAzOTMxMzIzMzMxMzIzMzM1MzkzNTM5MzAwYzMxMGEzMDA4MDYwMDEzMDQ1NDY1NzM3NDMwMmEzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwMzE5MDAzMDE2MDIxMGZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMDIwMmZmZmZhMTAwYTIwMGEzMGYzMDBkMzAwYjA2MDM1NTFkMjAwNDA0MzAwMjMwMDEzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAwMzAyMDBmZiI6IiI6TUJFRFRMU19FUlJfWDUwOV9JTlZBTElEX0VYVEVOU0lPTlMgKyBNQkVEVExTX0VSUl9BU04xX09VVF9PRl9EQVRBCiAKIFg1MDkgQ1JUIEFTTjEgKFRCU0NlcnRpZmljYXRlIHYzLCBpbnYgQ2VydGlmaWNhdGVQb2xpY2llcywgZW1wdHkgcG9saWN5KQotZGVwZW5kc19vbjpNQkVEVExTX1JTQV9DOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpNQkVEVExTX1JTQV9DOlBTQV9XQU5UX0FMR19TSEFfMjU2CiB4NTA5cGFyc2VfY3J0OiIzMDgxYWIzMDgxOTVhMDAzMDIwMTAyODIwNGRlYWRiZWVmMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMzAwYzMxMGEzMDA4MDYwMDEzMDQ1NDY1NzM3NDMwMWMxNzBjMzAzOTMwMzEzMDMxMzAzMDMwMzAzMDMwMTcwYzMwMzkzMTMyMzMzMTMyMzMzNTM5MzUzOTMwMGMzMTBhMzAwODA2MDAxMzA0NTQ2NTczNzQzMDJhMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDMxOTAwMzAxNjAyMTBmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjAyMDJmZmZmYTEwMGEyMDBhMzBmMzAwZDMwMGIwNjAzNTUxZDIwMDQwNDMwMDIzMDAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMDMwMjAwZmYiOiIiOk1CRURUTFNfRVJSX1g1MDlfSU5WQUxJRF9FWFRFTlNJT05TICsgTUJFRFRMU19FUlJfQVNOMV9PVVRfT0ZfREFUQQogCiBYNTA5IENSVCBBU04xIChUQlNDZXJ0aWZpY2F0ZSB2MywgaW52IENlcnRpZmljYXRlUG9saWNpZXMsIHBvbGljeSBpbnZhbGlkIE9JRCB0YWcpCi1kZXBlbmRzX29uOk1CRURUTFNfUlNBX0M6TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOk1CRURUTFNfUlNBX0M6UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHg1MDlwYXJzZV9jcnQ6IjMwODFhZDMwODE5N2EwMDMwMjAxMDI4MjA0ZGVhZGJlZWYzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAzMDBjMzEwYTMwMDgwNjAwMTMwNDU0NjU3Mzc0MzAxYzE3MGMzMDM5MzAzMTMwMzEzMDMwMzAzMDMwMzAxNzBjMzAzOTMxMzIzMzMxMzIzMzM1MzkzNTM5MzAwYzMxMGEzMDA4MDYwMDEzMDQ1NDY1NzM3NDMwMmEzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwMzE5MDAzMDE2MDIxMGZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMDIwMmZmZmZhMTAwYTIwMGEzMTEzMDBmMzAwZDA2MDM1NTFkMjAwNDA2MzAwNDMwMDIwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMDMwMjAwZmYiOiIiOk1CRURUTFNfRVJSX1g1MDlfSU5WQUxJRF9FWFRFTlNJT05TICsgTUJFRFRMU19FUlJfQVNOMV9VTkVYUEVDVEVEX1RBRwogCiBYNTA5IENSVCBBU04xIChUQlNDZXJ0aWZpY2F0ZSB2MywgaW52IENlcnRpZmljYXRlUG9saWNpZXMsIHBvbGljeSBubyBPSUQgbGVuZ3RoKQotZGVwZW5kc19vbjpNQkVEVExTX1JTQV9DOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpNQkVEVExTX1JTQV9DOlBTQV9XQU5UX0FMR19TSEFfMjU2CiB4NTA5cGFyc2VfY3J0OiIzMDgxYWMzMDgxOTZhMDAzMDIwMTAyODIwNGRlYWRiZWVmMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMzAwYzMxMGEzMDA4MDYwMDEzMDQ1NDY1NzM3NDMwMWMxNzBjMzAzOTMwMzEzMDMxMzAzMDMwMzAzMDMwMTcwYzMwMzkzMTMyMzMzMTMyMzMzNTM5MzUzOTMwMGMzMTBhMzAwODA2MDAxMzA0NTQ2NTczNzQzMDJhMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDMxOTAwMzAxNjAyMTBmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjAyMDJmZmZmYTEwMGEyMDBhMzEwMzAwZTMwMGMwNjAzNTUxZDIwMDQwNTMwMDMzMDAxMDYzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAwMzAyMDBmZiI6IiI6TUJFRFRMU19FUlJfWDUwOV9JTlZBTElEX0VYVEVOU0lPTlMgKyBNQkVEVExTX0VSUl9BU04xX09VVF9PRl9EQVRBCiAKIFg1MDkgQ1JUIEFTTjEgKFRCU0NlcnRpZmljYXRlIHYzLCBpbnYgQ2VydGlmaWNhdGVQb2xpY2llcywgcG9saWN5IE9JRCBsZW5ndGggaW52IGVuY29kaW5nKQotZGVwZW5kc19vbjpNQkVEVExTX1JTQV9DOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpNQkVEVExTX1JTQV9DOlBTQV9XQU5UX0FMR19TSEFfMjU2CiB4NTA5cGFyc2VfY3J0OiIzMDgxYWQzMDgxOTdhMDAzMDIwMTAyODIwNGRlYWRiZWVmMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMzAwYzMxMGEzMDA4MDYwMDEzMDQ1NDY1NzM3NDMwMWMxNzBjMzAzOTMwMzEzMDMxMzAzMDMwMzAzMDMwMTcwYzMwMzkzMTMyMzMzMTMyMzMzNTM5MzUzOTMwMGMzMTBhMzAwODA2MDAxMzA0NTQ2NTczNzQzMDJhMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDMxOTAwMzAxNjAyMTBmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjAyMDJmZmZmYTEwMGEyMDBhMzExMzAwZjMwMGQwNjAzNTUxZDIwMDQwNjMwMDQzMDAyMDY4NTMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDAzMDIwMGZmIjoiIjpNQkVEVExTX0VSUl9YNTA5X0lOVkFMSURfRVhURU5TSU9OUyArIE1CRURUTFNfRVJSX0FTTjFfSU5WQUxJRF9MRU5HVEgKIAogWDUwOSBDUlQgQVNOMSAoVEJTQ2VydGlmaWNhdGUgdjMsIGludiBDZXJ0aWZpY2F0ZVBvbGljaWVzLCBwb2xpY3kgT0lEIGxlbmd0aCBvdXQgb2YgYm91bmRzKQotZGVwZW5kc19vbjpNQkVEVExTX1JTQV9DOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpNQkVEVExTX1JTQV9DOlBTQV9XQU5UX0FMR19TSEFfMjU2CiB4NTA5cGFyc2VfY3J0OiIzMDgxYWQzMDgxOTdhMDAzMDIwMTAyODIwNGRlYWRiZWVmMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMzAwYzMxMGEzMDA4MDYwMDEzMDQ1NDY1NzM3NDMwMWMxNzBjMzAzOTMwMzEzMDMxMzAzMDMwMzAzMDMwMTcwYzMwMzkzMTMyMzMzMTMyMzMzNTM5MzUzOTMwMGMzMTBhMzAwODA2MDAxMzA0NTQ2NTczNzQzMDJhMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDMxOTAwMzAxNjAyMTBmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjAyMDJmZmZmYTEwMGEyMDBhMzExMzAwZjMwMGQwNjAzNTUxZDIwMDQwNjMwMDQzMDAyMDYwMTMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDAzMDIwMGZmIjoiIjpNQkVEVExTX0VSUl9YNTA5X0lOVkFMSURfRVhURU5TSU9OUyArIE1CRURUTFNfRVJSX0FTTjFfT1VUX09GX0RBVEEKIAogWDUwOSBDUlQgQVNOMSAoVEJTQ2VydGlmaWNhdGUgdjMsIGludiBDZXJ0aWZpY2F0ZVBvbGljaWVzLCB1bmtub3duIGNyaXRpY2FsIHBvbGljeSkKLWRlcGVuZHNfb246TUJFRFRMU19SU0FfQzpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246TUJFRFRMU19SU0FfQzpQU0FfV0FOVF9BTEdfU0hBXzI1NgogeDUwOXBhcnNlX2NydDoiMzA4MWIxMzA4MTliYTAwMzAyMDEwMjgyMDRkZWFkYmVlZjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDMwMGMzMTBhMzAwODA2MDAxMzA0NTQ2NTczNzQzMDFjMTcwYzMwMzkzMDMxMzAzMTMwMzAzMDMwMzAzMDE3MGMzMDM5MzEzMjMzMzEzMjMzMzUzOTM1MzkzMDBjMzEwYTMwMDgwNjAwMTMwNDU0NjU3Mzc0MzAyYTMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDAzMTkwMDMwMTYwMjEwZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYwMjAyZmZmZmExMDBhMjAwYTMxNTMwMTMzMDExMDYwMzU1MWQyMDAxMDEwMTA0MDczMDA1MzAwMzA2MDEwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDAzMDIwMGZmIjoiIjpNQkVEVExTX0VSUl9YNTA5X0ZFQVRVUkVfVU5BVkFJTEFCTEUKIAogWDUwOSBDUlQgQVNOMSAoVEJTQ2VydGlmaWNhdGUgdjMsIGludiBDZXJ0aWZpY2F0ZVBvbGljaWVzLCBwb2xpY3kgcXVhbGlmaWVyIGludmFsaWQgdGFnKQotZGVwZW5kc19vbjpNQkVEVExTX1JTQV9DOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpNQkVEVExTX1JTQV9DOlBTQV9XQU5UX0FMR19TSEFfMjU2CiB4NTA5cGFyc2VfY3J0OiIzMDgxYjAzMDgxOWFhMDAzMDIwMTAyODIwNGRlYWRiZWVmMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMzAwYzMxMGEzMDA4MDYwMDEzMDQ1NDY1NzM3NDMwMWMxNzBjMzAzOTMwMzEzMDMxMzAzMDMwMzAzMDMwMTcwYzMwMzkzMTMyMzMzMTMyMzMzNTM5MzUzOTMwMGMzMTBhMzAwODA2MDAxMzA0NTQ2NTczNzQzMDJhMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDMxOTAwMzAxNjAyMTBmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjAyMDJmZmZmYTEwMGEyMDBhMzE0MzAxMjMwMTAwNjAzNTUxZDIwMDQwOTMwMDczMDA1MDYwMTAwMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDAzMDIwMGZmIjoiIjpNQkVEVExTX0VSUl9YNTA5X0lOVkFMSURfRVhURU5TSU9OUyArIE1CRURUTFNfRVJSX0FTTjFfVU5FWFBFQ1RFRF9UQUcKIAogWDUwOSBDUlQgQVNOMSAoVEJTQ2VydGlmaWNhdGUgdjMsIGludiBDZXJ0aWZpY2F0ZVBvbGljaWVzLCBwb2xpY3kgcXVhbGlmaWVyIG5vIGxlbmd0aCkKLWRlcGVuZHNfb246TUJFRFRMU19SU0FfQzpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246TUJFRFRMU19SU0FfQzpQU0FfV0FOVF9BTEdfU0hBXzI1NgogeDUwOXBhcnNlX2NydDoiMzA4MWFmMzA4MTk5YTAwMzAyMDEwMjgyMDRkZWFkYmVlZjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDMwMGMzMTBhMzAwODA2MDAxMzA0NTQ2NTczNzQzMDFjMTcwYzMwMzkzMDMxMzAzMTMwMzAzMDMwMzAzMDE3MGMzMDM5MzEzMjMzMzEzMjMzMzUzOTM1MzkzMDBjMzEwYTMwMDgwNjAwMTMwNDU0NjU3Mzc0MzAyYTMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDAzMTkwMDMwMTYwMjEwZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYwMjAyZmZmZmExMDBhMjAwYTMxMzMwMTEzMDBmMDYwMzU1MWQyMDA0MDgzMDA2MzAwNDA2MDEwMDMwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMDMwMjAwZmYiOiIiOk1CRURUTFNfRVJSX1g1MDlfSU5WQUxJRF9FWFRFTlNJT05TICsgTUJFRFRMU19FUlJfQVNOMV9PVVRfT0ZfREFUQQogCiBYNTA5IENSVCBBU04xIChUQlNDZXJ0aWZpY2F0ZSB2MywgaW52IENlcnRpZmljYXRlUG9saWNpZXMsIHBvbGljeSBxdWFsaWZpZXIgaW52IGxlbmd0aCBlbmNvZGluZykKLWRlcGVuZHNfb246TUJFRFRMU19SU0FfQzpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246TUJFRFRMU19SU0FfQzpQU0FfV0FOVF9BTEdfU0hBXzI1NgogeDUwOXBhcnNlX2NydDoiMzA4MWIwMzA4MTlhYTAwMzAyMDEwMjgyMDRkZWFkYmVlZjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDMwMGMzMTBhMzAwODA2MDAxMzA0NTQ2NTczNzQzMDFjMTcwYzMwMzkzMDMxMzAzMTMwMzAzMDMwMzAzMDE3MGMzMDM5MzEzMjMzMzEzMjMzMzUzOTM1MzkzMDBjMzEwYTMwMDgwNjAwMTMwNDU0NjU3Mzc0MzAyYTMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDAzMTkwMDMwMTYwMjEwZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYwMjAyZmZmZmExMDBhMjAwYTMxNDMwMTIzMDEwMDYwMzU1MWQyMDA0MDkzMDA3MzAwNTA2MDEwMDMwODUzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAwMzAyMDBmZiI6IiI6TUJFRFRMU19FUlJfWDUwOV9JTlZBTElEX0VYVEVOU0lPTlMgKyBNQkVEVExTX0VSUl9BU04xX0lOVkFMSURfTEVOR1RICiAKIFg1MDkgQ1JUIEFTTjEgKFRCU0NlcnRpZmljYXRlIHYzLCBpbnYgQ2VydGlmaWNhdGVQb2xpY2llcywgcG9saWN5IHF1YWxpZmllciBsZW5ndGggb3V0IG9mIGJvdW5kcykKLWRlcGVuZHNfb246TUJFRFRMU19SU0FfQzpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246TUJFRFRMU19SU0FfQzpQU0FfV0FOVF9BTEdfU0hBXzI1NgogeDUwOXBhcnNlX2NydDoiMzA4MWIwMzA4MTlhYTAwMzAyMDEwMjgyMDRkZWFkYmVlZjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDMwMGMzMTBhMzAwODA2MDAxMzA0NTQ2NTczNzQzMDFjMTcwYzMwMzkzMDMxMzAzMTMwMzAzMDMwMzAzMDE3MGMzMDM5MzEzMjMzMzEzMjMzMzUzOTM1MzkzMDBjMzEwYTMwMDgwNjAwMTMwNDU0NjU3Mzc0MzAyYTMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDAzMTkwMDMwMTYwMjEwZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYwMjAyZmZmZmExMDBhMjAwYTMxNDMwMTIzMDEwMDYwMzU1MWQyMDA0MDkzMDA3MzAwNTA2MDEwMDMwMDEzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAwMzAyMDBmZiI6IiI6TUJFRFRMU19FUlJfWDUwOV9JTlZBTElEX0VYVEVOU0lPTlMgKyBNQkVEVExTX0VSUl9BU04xX09VVF9PRl9EQVRBCiAKIFg1MDkgQ1JUIEFTTjEgKFRCUywgaW52IGV4dEJhc2ljQ29uc3RyYWludCwgbm8gcGF0aGxlbiBsZW5ndGgpCi1kZXBlbmRzX29uOk1CRURUTFNfUlNBX0M6TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOk1CRURUTFNfUlNBX0M6UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHg1MDlwYXJzZV9jcnQ6IjMwODFiMDMwODE5YWEwMDMwMjAxMDI4MjA0ZGVhZGJlZWYzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAzMDBjMzEwYTMwMDgwNjAwMTMwNDU0NjU3Mzc0MzAxYzE3MGMzMDM5MzAzMTMwMzEzMDMwMzAzMDMwMzAxNzBjMzAzOTMxMzIzMzMxMzIzMzM1MzkzNTM5MzAwYzMxMGEzMDA4MDYwMDEzMDQ1NDY1NzM3NDMwMmEzMDBkMDYwOTJBODY0ODg2RjcwRDAxMDEwMTA1MDAwMzE5MDAzMDE2MDIxMGZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMDIwMmZmZmZhMTAwYTIwMGEzMTQzMDEyMzAxMDA2MDM1NTFkMTMwMTAxMDEwNDA2MzAwNDAyMDEwMTAyMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMDMwMjAwZmYiOiIiOk1CRURUTFNfRVJSX1g1MDlfSU5WQUxJRF9FWFRFTlNJT05TICsgTUJFRFRMU19FUlJfQVNOMV9PVVRfT0ZfREFUQQogCiBYNTA5IENSVCBBU04xIChpbnYgZXh0QmFzaWNDb25zdHJhaW50LCBwYXRobGVuIGlzIElOVF9NQVgpCi1kZXBlbmRzX29uOk1CRURUTFNfUlNBX0M6TUJFRFRMU19NRF9DQU5fU0hBMjU2Ok1CRURUTFNfTURfQ0FOX1NIQTEKLW1iZWR0bHNfeDUwOV9jcnRfcGFyc2VfZmlsZToiZGF0YV9maWxlcy9wYXJzZV9pbnB1dC9zZXJ2ZXIxX3BhdGhsZW5faW50X21heC5jcnQiOk1CRURUTFNfRVJSX1g1MDlfSU5WQUxJRF9FWFRFTlNJT05TICsgTUJFRFRMU19FUlJfQVNOMV9JTlZBTElEX0xFTkdUSDowCitkZXBlbmRzX29uOk1CRURUTFNfUlNBX0M6UFNBX1dBTlRfQUxHX1NIQV8yNTY6TUJFRFRMU19NRF9DQU5fU0hBMQorbWJlZHRsc194NTA5X2NydF9wYXJzZV9maWxlOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9wYXJzZV9pbnB1dC9zZXJ2ZXIxX3BhdGhsZW5faW50X21heC5jcnQiOk1CRURUTFNfRVJSX1g1MDlfSU5WQUxJRF9FWFRFTlNJT05TICsgTUJFRFRMU19FUlJfQVNOMV9JTlZBTElEX0xFTkdUSDowCiAKIFg1MDkgQ1JUIEFTTjEgKHBhdGhsZW4gaXMgSU5UX01BWC0xKQotZGVwZW5kc19vbjpNQkVEVExTX1JTQV9DOk1CRURUTFNfTURfQ0FOX1NIQTI1NjpNQkVEVExTX01EX0NBTl9TSEExCi1tYmVkdGxzX3g1MDlfY3J0X3BhcnNlX2ZpbGU6ImRhdGFfZmlsZXMvcGFyc2VfaW5wdXQvc2VydmVyMV9wYXRobGVuX2ludF9tYXgtMS5jcnQiOjA6MQorZGVwZW5kc19vbjpNQkVEVExTX1JTQV9DOlBTQV9XQU5UX0FMR19TSEFfMjU2Ok1CRURUTFNfTURfQ0FOX1NIQTEKK21iZWR0bHNfeDUwOV9jcnRfcGFyc2VfZmlsZToiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvcGFyc2VfaW5wdXQvc2VydmVyMV9wYXRobGVuX2ludF9tYXgtMS5jcnQiOjA6MQogCiBYNTA5IENSVCBBU04xIChUQlMsIGludiBleHRCYXNpY0NvbnN0cmFpbnQsIHBhdGhsZW4gaW52IGxlbmd0aCBlbmNvZGluZykKLWRlcGVuZHNfb246TUJFRFRMU19SU0FfQzpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246TUJFRFRMU19SU0FfQzpQU0FfV0FOVF9BTEdfU0hBXzI1NgogeDUwOXBhcnNlX2NydDoiMzA4MWIxMzA4MTliYTAwMzAyMDEwMjgyMDRkZWFkYmVlZjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDMwMGMzMTBhMzAwODA2MDAxMzA0NTQ2NTczNzQzMDFjMTcwYzMwMzkzMDMxMzAzMTMwMzAzMDMwMzAzMDE3MGMzMDM5MzEzMjMzMzEzMjMzMzUzOTM1MzkzMDBjMzEwYTMwMDgwNjAwMTMwNDU0NjU3Mzc0MzAyYTMwMGQwNjA5MkE4NjQ4ODZGNzBEMDEwMTAxMDUwMDAzMTkwMDMwMTYwMjEwZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYwMjAyZmZmZmExMDBhMjAwYTMxNTMwMTMzMDExMDYwMzU1MWQxMzAxMDEwMTA0MDczMDA1MDIwMTAxMDI4NTMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDAzMDIwMGZmIjoiIjpNQkVEVExTX0VSUl9YNTA5X0lOVkFMSURfRVhURU5TSU9OUyArIE1CRURUTFNfRVJSX0FTTjFfSU5WQUxJRF9MRU5HVEgKIAogWDUwOSBDUlQgQVNOMSAoVEJTLCBpbnYgZXh0QmFzaWNDb25zdHJhaW50LCBwYXRobGVuIGxlbmd0aCBvdXQgb2YgYm91bmRzKQotZGVwZW5kc19vbjpNQkVEVExTX1JTQV9DOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpNQkVEVExTX1JTQV9DOlBTQV9XQU5UX0FMR19TSEFfMjU2CiB4NTA5cGFyc2VfY3J0OiIzMDgxYjEzMDgxOWJhMDAzMDIwMTAyODIwNGRlYWRiZWVmMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMzAwYzMxMGEzMDA4MDYwMDEzMDQ1NDY1NzM3NDMwMWMxNzBjMzAzOTMwMzEzMDMxMzAzMDMwMzAzMDMwMTcwYzMwMzkzMTMyMzMzMTMyMzMzNTM5MzUzOTMwMGMzMTBhMzAwODA2MDAxMzA0NTQ2NTczNzQzMDJhMzAwZDA2MDkyQTg2NDg4NkY3MEQwMTAxMDEwNTAwMDMxOTAwMzAxNjAyMTBmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjAyMDJmZmZmYTEwMGEyMDBhMzE1MzAxMzMwMTEwNjAzNTUxZDEzMDEwMTAxMDQwNzMwMDUwMjAxMDEwMjAxMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMDMwMjAwZmYiOiIiOk1CRURUTFNfRVJSX1g1MDlfSU5WQUxJRF9FWFRFTlNJT05TICsgTUJFRFRMU19FUlJfQVNOMV9PVVRfT0ZfREFUQQogCiBYNTA5IENSVCBBU04xIChUQlMsIGludiBleHRCYXNpY0NvbnN0cmFpbnQsIHBhdGhsZW4gZW1wdHkpCi1kZXBlbmRzX29uOk1CRURUTFNfUlNBX0M6TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOk1CRURUTFNfUlNBX0M6UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHg1MDlwYXJzZV9jcnQ6IjMwODFiMTMwODE5YmEwMDMwMjAxMDI4MjA0ZGVhZGJlZWYzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAzMDBjMzEwYTMwMDgwNjAwMTMwNDU0NjU3Mzc0MzAxYzE3MGMzMDM5MzAzMTMwMzEzMDMwMzAzMDMwMzAxNzBjMzAzOTMxMzIzMzMxMzIzMzM1MzkzNTM5MzAwYzMxMGEzMDA4MDYwMDEzMDQ1NDY1NzM3NDMwMmEzMDBkMDYwOTJBODY0ODg2RjcwRDAxMDEwMTA1MDAwMzE5MDAzMDE2MDIxMGZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMDIwMmZmZmZhMTAwYTIwMGEzMTUzMDEzMzAxMTA2MDM1NTFkMTMwMTAxMDEwNDA3MzAwNTAyMDEwMTAyMDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAwMzAyMDBmZiI6IiI6TUJFRFRMU19FUlJfWDUwOV9JTlZBTElEX0VYVEVOU0lPTlMgKyBNQkVEVExTX0VSUl9BU04xX0lOVkFMSURfTEVOR1RICiAKIFg1MDkgQ1JUIEFTTjEgKFRCUywgaW52IGV4dEJhc2ljQ29uc3RyYWludCwgcGF0aGxlbiBsZW5ndGggbWlzbWF0Y2gpCi1kZXBlbmRzX29uOk1CRURUTFNfUlNBX0M6TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOk1CRURUTFNfUlNBX0M6UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHg1MDlwYXJzZV9jcnQ6IjMwODFiNDMwODE5ZWEwMDMwMjAxMDI4MjA0ZGVhZGJlZWYzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAzMDBjMzEwYTMwMDgwNjAwMTMwNDU0NjU3Mzc0MzAxYzE3MGMzMDM5MzAzMTMwMzEzMDMwMzAzMDMwMzAxNzBjMzAzOTMxMzIzMzMxMzIzMzM1MzkzNTM5MzAwYzMxMGEzMDA4MDYwMDEzMDQ1NDY1NzM3NDMwMmEzMDBkMDYwOTJBODY0ODg2RjcwRDAxMDEwMTA1MDAwMzE5MDAzMDE2MDIxMGZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMDIwMmZmZmZhMTAwYTIwMGEzMTgzMDE2MzAxNDA2MDM1NTFkMTMwMTAxMDEwNDBhMzAwODAyMDEwMTAyMDEwMTA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAwMzAyMDBmZiI6IiI6TUJFRFRMU19FUlJfWDUwOV9JTlZBTElEX0VYVEVOU0lPTlMgKyBNQkVEVExTX0VSUl9BU04xX0xFTkdUSF9NSVNNQVRDSAogCiBYNTA5IENSVCBBU04xIChUQlMsIGludiB2M0V4dCwgRXh0S2V5VXNhZ2UgYmFkIHNlY29uZCB0YWcpCi1kZXBlbmRzX29uOk1CRURUTFNfUlNBX0M6TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOk1CRURUTFNfUlNBX0M6UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHg1MDlwYXJzZV9jcnQ6IjMwODFiZDMwODFhN2EwMDMwMjAxMDI4MjA0ZGVhZGJlZWYzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAzMDBjMzEwYTMwMDgwNjAwMTMwNDU0NjU3Mzc0MzAxYzE3MGMzMDM5MzAzMTMwMzEzMDMwMzAzMDMwMzAxNzBjMzAzOTMxMzIzMzMxMzIzMzM1MzkzNTM5MzAwYzMxMGEzMDA4MDYwMDEzMDQ1NDY1NzM3NDMwMmEzMDBkMDYwOTJBODY0ODg2RjcwRDAxMDEwMTA1MDAwMzE5MDAzMDE2MDIxMGZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMDIwMmZmZmZhMTAwYTIwMGEzMjEzMDFmMzAxZDA2MDM1NTFkMjUwNDE2MzAxNDA2MDgyYjA2MDEwNTA1MDcwMzAxMDcwODJiMDYwMTA1MDUwNzAzMDIzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAwMzAyMDBmZiI6IiI6TUJFRFRMU19FUlJfWDUwOV9JTlZBTElEX0VYVEVOU0lPTlMgKyBNQkVEVExTX0VSUl9BU04xX1VORVhQRUNURURfVEFHCiAKIFg1MDkgQ1JUIEFTTjEgKFRCUywgaW52IFN1YmplY3RBbHROYW1lLCBlbXB0eSkKLWRlcGVuZHNfb246TUJFRFRMU19SU0FfQzpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246TUJFRFRMU19SU0FfQzpQU0FfV0FOVF9BTEdfU0hBXzI1NgogeDUwOXBhcnNlX2NydDoiMzA4MWE3MzA4MTkxYTAwMzAyMDEwMjgyMDRkZWFkYmVlZjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDMwMGMzMTBhMzAwODA2MDAxMzA0NTQ2NTczNzQzMDFjMTcwYzMwMzkzMDMxMzAzMTMwMzAzMDMwMzAzMDE3MGMzMDM5MzEzMjMzMzEzMjMzMzUzOTM1MzkzMDBjMzEwYTMwMDgwNjAwMTMwNDU0NjU3Mzc0MzAyYTMwMGQwNjA5MkE4NjQ4ODZGNzBEMDEwMTAxMDUwMDAzMTkwMDMwMTYwMjEwZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYwMjAyZmZmZmExMDBhMjAwYTMwYjMwMDkzMDA3MDYwMzU1MWQxMTA0MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAwMzAyMDBmZiI6IiI6TUJFRFRMU19FUlJfWDUwOV9JTlZBTElEX0VYVEVOU0lPTlMgKyBNQkVEVExTX0VSUl9BU04xX09VVF9PRl9EQVRBCiAKIFg1MDkgQ1JUIEFTTjEgKFRCUywgaW52IFN1YmplY3RBbHROYW1lLCBpbnYgdGFnKQotZGVwZW5kc19vbjpNQkVEVExTX1JTQV9DOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpNQkVEVExTX1JTQV9DOlBTQV9XQU5UX0FMR19TSEFfMjU2CiB4NTA5cGFyc2VfY3J0OiIzMDgxYTkzMDgxOTNhMDAzMDIwMTAyODIwNGRlYWRiZWVmMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMzAwYzMxMGEzMDA4MDYwMDEzMDQ1NDY1NzM3NDMwMWMxNzBjMzAzOTMwMzEzMDMxMzAzMDMwMzAzMDMwMTcwYzMwMzkzMTMyMzMzMTMyMzMzNTM5MzUzOTMwMGMzMTBhMzAwODA2MDAxMzA0NTQ2NTczNzQzMDJhMzAwZDA2MDkyQTg2NDg4NkY3MEQwMTAxMDEwNTAwMDMxOTAwMzAxNjAyMTBmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjAyMDJmZmZmYTEwMGEyMDBhMzBkMzAwYjMwMDkwNjAzNTUxZDExMDQwMjA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAwMzAyMDBmZiI6IiI6TUJFRFRMU19FUlJfWDUwOV9JTlZBTElEX0VYVEVOU0lPTlMgKyBNQkVEVExTX0VSUl9BU04xX1VORVhQRUNURURfVEFHCiAKIFg1MDkgQ1JUIEFTTjEgKFRCUywgaW52IFN1YmplY3RBbHROYW1lLCBsZW5ndGggbWlzc2luZykKLWRlcGVuZHNfb246TUJFRFRMU19SU0FfQzpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246TUJFRFRMU19SU0FfQzpQU0FfV0FOVF9BTEdfU0hBXzI1NgogeDUwOXBhcnNlX2NydDoiMzA4MWE4MzA4MTkyYTAwMzAyMDEwMjgyMDRkZWFkYmVlZjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDMwMGMzMTBhMzAwODA2MDAxMzA0NTQ2NTczNzQzMDFjMTcwYzMwMzkzMDMxMzAzMTMwMzAzMDMwMzAzMDE3MGMzMDM5MzEzMjMzMzEzMjMzMzUzOTM1MzkzMDBjMzEwYTMwMDgwNjAwMTMwNDU0NjU3Mzc0MzAyYTMwMGQwNjA5MkE4NjQ4ODZGNzBEMDEwMTAxMDUwMDAzMTkwMDMwMTYwMjEwZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYwMjAyZmZmZmExMDBhMjAwYTMwYzMwMGEzMDA4MDYwMzU1MWQxMTA0MDEzMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDAzMDIwMGZmIjoiIjpNQkVEVExTX0VSUl9YNTA5X0lOVkFMSURfRVhURU5TSU9OUyArIE1CRURUTFNfRVJSX0FTTjFfT1VUX09GX0RBVEEKIAogWDUwOSBDUlQgQVNOMSAoVEJTLCBpbnYgU3ViamVjdEFsdE5hbWUsIGludiBsZW5ndGggZW5jb2RpbmcpCi1kZXBlbmRzX29uOk1CRURUTFNfUlNBX0M6TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOk1CRURUTFNfUlNBX0M6UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHg1MDlwYXJzZV9jcnQ6IjMwODFhOTMwODE5M2EwMDMwMjAxMDI4MjA0ZGVhZGJlZWYzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAzMDBjMzEwYTMwMDgwNjAwMTMwNDU0NjU3Mzc0MzAxYzE3MGMzMDM5MzAzMTMwMzEzMDMwMzAzMDMwMzAxNzBjMzAzOTMxMzIzMzMxMzIzMzM1MzkzNTM5MzAwYzMxMGEzMDA4MDYwMDEzMDQ1NDY1NzM3NDMwMmEzMDBkMDYwOTJBODY0ODg2RjcwRDAxMDEwMTA1MDAwMzE5MDAzMDE2MDIxMGZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMDIwMmZmZmZhMTAwYTIwMGEzMGQzMDBiMzAwOTA2MDM1NTFkMTEwNDAyMzA4NTMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDAzMDIwMGZmIjoiIjpNQkVEVExTX0VSUl9YNTA5X0lOVkFMSURfRVhURU5TSU9OUyArIE1CRURUTFNfRVJSX0FTTjFfSU5WQUxJRF9MRU5HVEgKIAogWDUwOSBDUlQgQVNOMSAoVEJTLCBpbnYgU3ViamVjdEFsdE5hbWUsIGxlbmd0aCBvdXQgb2YgYm91bmRzKQotZGVwZW5kc19vbjpNQkVEVExTX1JTQV9DOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpNQkVEVExTX1JTQV9DOlBTQV9XQU5UX0FMR19TSEFfMjU2CiB4NTA5cGFyc2VfY3J0OiIzMDgxYTkzMDgxOTNhMDAzMDIwMTAyODIwNGRlYWRiZWVmMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMzAwYzMxMGEzMDA4MDYwMDEzMDQ1NDY1NzM3NDMwMWMxNzBjMzAzOTMwMzEzMDMxMzAzMDMwMzAzMDMwMTcwYzMwMzkzMTMyMzMzMTMyMzMzNTM5MzUzOTMwMGMzMTBhMzAwODA2MDAxMzA0NTQ2NTczNzQzMDJhMzAwZDA2MDkyQTg2NDg4NkY3MEQwMTAxMDEwNTAwMDMxOTAwMzAxNjAyMTBmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjAyMDJmZmZmYTEwMGEyMDBhMzBkMzAwYjMwMDkwNjAzNTUxZDExMDQwMjMwMDEzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAwMzAyMDBmZiI6IiI6TUJFRFRMU19FUlJfWDUwOV9JTlZBTElEX0VYVEVOU0lPTlMgKyBNQkVEVExTX0VSUl9BU04xX09VVF9PRl9EQVRBCiAKIFg1MDkgQ1JUIEFTTjEgKFRCUywgaW52IFN1YmplY3RBbHROYW1lLCBkYXRhIHJlbWFpbmluZyBhZnRlciBuYW1lIFNFUVVFTkNFKQotZGVwZW5kc19vbjpNQkVEVExTX1JTQV9DOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpNQkVEVExTX1JTQV9DOlBTQV9XQU5UX0FMR19TSEFfMjU2CiB4NTA5cGFyc2VfY3J0OiIzMDgxYWEzMDgxOTRhMDAzMDIwMTAyODIwNGRlYWRiZWVmMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMzAwYzMxMGEzMDA4MDYwMDEzMDQ1NDY1NzM3NDMwMWMxNzBjMzAzOTMwMzEzMDMxMzAzMDMwMzAzMDMwMTcwYzMwMzkzMTMyMzMzMTMyMzMzNTM5MzUzOTMwMGMzMTBhMzAwODA2MDAxMzA0NTQ2NTczNzQzMDJhMzAwZDA2MDkyQTg2NDg4NkY3MEQwMTAxMDEwNTAwMDMxOTAwMzAxNjAyMTBmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjAyMDJmZmZmYTEwMGEyMDBhMzBlMzAwYzMwMGEwNjAzNTUxZDExMDQwMzMwMDAwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDAzMDIwMGZmIjoiIjpNQkVEVExTX0VSUl9YNTA5X0lOVkFMSURfRVhURU5TSU9OUyArIE1CRURUTFNfRVJSX0FTTjFfTEVOR1RIX01JU01BVENICiAKIFg1MDkgQ1JUIEFTTjEgKFRCUywgaW52IFN1YmplY3RBbHROYW1lLCBuYW1lIGNvbXBvbmVudCBsZW5ndGggbWlzc2luZykKLWRlcGVuZHNfb246TUJFRFRMU19SU0FfQzpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246TUJFRFRMU19SU0FfQzpQU0FfV0FOVF9BTEdfU0hBXzI1NgogeDUwOXBhcnNlX2NydDoiMzA4MWFhMzA4MTk0YTAwMzAyMDEwMjgyMDRkZWFkYmVlZjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDMwMGMzMTBhMzAwODA2MDAxMzA0NTQ2NTczNzQzMDFjMTcwYzMwMzkzMDMxMzAzMTMwMzAzMDMwMzAzMDE3MGMzMDM5MzEzMjMzMzEzMjMzMzUzOTM1MzkzMDBjMzEwYTMwMDgwNjAwMTMwNDU0NjU3Mzc0MzAyYTMwMGQwNjA5MkE4NjQ4ODZGNzBEMDEwMTAxMDUwMDAzMTkwMDMwMTYwMjEwZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYwMjAyZmZmZmExMDBhMjAwYTMwZTMwMGMzMDBhMDYwMzU1MWQxMTA0MDMzMDAxODAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAwMzAyMDBmZiI6IiI6TUJFRFRMU19FUlJfWDUwOV9JTlZBTElEX0VYVEVOU0lPTlMgKyBNQkVEVExTX0VSUl9BU04xX09VVF9PRl9EQVRBCiAKIFg1MDkgQ1JUIEFTTjEgKFRCUywgaW52IFN1YmplY3RBbHROYW1lLCBuYW1lIGNvbXBvbmVudCBpbnYgbGVuZ3RoIGVuY29kaW5nKQotZGVwZW5kc19vbjpNQkVEVExTX1JTQV9DOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpNQkVEVExTX1JTQV9DOlBTQV9XQU5UX0FMR19TSEFfMjU2CiB4NTA5cGFyc2VfY3J0OiIzMDgxYWIzMDgxOTVhMDAzMDIwMTAyODIwNGRlYWRiZWVmMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMzAwYzMxMGEzMDA4MDYwMDEzMDQ1NDY1NzM3NDMwMWMxNzBjMzAzOTMwMzEzMDMxMzAzMDMwMzAzMDMwMTcwYzMwMzkzMTMyMzMzMTMyMzMzNTM5MzUzOTMwMGMzMTBhMzAwODA2MDAxMzA0NTQ2NTczNzQzMDJhMzAwZDA2MDkyQTg2NDg4NkY3MEQwMTAxMDEwNTAwMDMxOTAwMzAxNjAyMTBmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjAyMDJmZmZmYTEwMGEyMDBhMzBmMzAwZDMwMGIwNjAzNTUxZDExMDQwNDMwMDI4MDg1MzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMDMwMjAwZmYiOiIiOk1CRURUTFNfRVJSX1g1MDlfSU5WQUxJRF9FWFRFTlNJT05TICsgTUJFRFRMU19FUlJfQVNOMV9JTlZBTElEX0xFTkdUSAogCiBYNTA5IENSVCBBU04xIChUQlMsIGludiBTdWJqZWN0QWx0TmFtZSwgbmFtZSBjb21wb25lbnQgbGVuZ3RoIG91dCBvZiBib3VuZHMpCi1kZXBlbmRzX29uOk1CRURUTFNfUlNBX0M6TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOk1CRURUTFNfUlNBX0M6UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHg1MDlwYXJzZV9jcnQ6IjMwODFhYjMwODE5NWEwMDMwMjAxMDI4MjA0ZGVhZGJlZWYzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAzMDBjMzEwYTMwMDgwNjAwMTMwNDU0NjU3Mzc0MzAxYzE3MGMzMDM5MzAzMTMwMzEzMDMwMzAzMDMwMzAxNzBjMzAzOTMxMzIzMzMxMzIzMzM1MzkzNTM5MzAwYzMxMGEzMDA4MDYwMDEzMDQ1NDY1NzM3NDMwMmEzMDBkMDYwOTJBODY0ODg2RjcwRDAxMDEwMTA1MDAwMzE5MDAzMDE2MDIxMGZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMDIwMmZmZmZhMTAwYTIwMGEzMGYzMDBkMzAwYjA2MDM1NTFkMTEwNDA0MzAwMjgwMDEzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAwMzAyMDBmZiI6IiI6TUJFRFRMU19FUlJfWDUwOV9JTlZBTElEX0VYVEVOU0lPTlMgKyBNQkVEVExTX0VSUl9BU04xX09VVF9PRl9EQVRBCiAKIFg1MDkgQ1JUIEFTTjEgKFRCUywgaW52IFN1YmplY3RBbHROYW1lLCBuYW1lIGNvbXBvbmVudCB1bmV4cGVjdGVkIHRhZykKLWRlcGVuZHNfb246TUJFRFRMU19SU0FfQzpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246TUJFRFRMU19SU0FfQzpQU0FfV0FOVF9BTEdfU0hBXzI1NgogeDUwOXBhcnNlX2NydDoiMzA4MWFiMzA4MTk1YTAwMzAyMDEwMjgyMDRkZWFkYmVlZjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDMwMGMzMTBhMzAwODA2MDAxMzA0NTQ2NTczNzQzMDFjMTcwYzMwMzkzMDMxMzAzMTMwMzAzMDMwMzAzMDE3MGMzMDM5MzEzMjMzMzEzMjMzMzUzOTM1MzkzMDBjMzEwYTMwMDgwNjAwMTMwNDU0NjU3Mzc0MzAyYTMwMGQwNjA5MkE4NjQ4ODZGNzBEMDEwMTAxMDUwMDAzMTkwMDMwMTYwMjEwZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYwMjAyZmZmZmExMDBhMjAwYTMwZjMwMGQzMDBiMDYwMzU1MWQxMTA0MDQzMDAyNDAwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDAzMDIwMGZmIjoiIjpNQkVEVExTX0VSUl9YNTA5X0lOVkFMSURfRVhURU5TSU9OUyArIE1CRURUTFNfRVJSX0FTTjFfVU5FWFBFQ1RFRF9UQUcKIAogWDUwOSBDUlQgQVNOMSAoVEJTLCBpbnYgU3ViamVjdEFsdE5hbWUsIG90aGVyTmFtZSBjb21wb25lbnQgZW1wdHkpCi1kZXBlbmRzX29uOk1CRURUTFNfUlNBX0M6TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOk1CRURUTFNfUlNBX0M6UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHg1MDlwYXJzZV9jcnQ6IjMwODFhYjMwODE5NWEwMDMwMjAxMDI4MjA0ZGVhZGJlZWYzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAzMDBjMzEwYTMwMDgwNjAwMTMwNDU0NjU3Mzc0MzAxYzE3MGMzMDM5MzAzMTMwMzEzMDMwMzAzMDMwMzAxNzBjMzAzOTMxMzIzMzMxMzIzMzM1MzkzNTM5MzAwYzMxMGEzMDA4MDYwMDEzMDQ1NDY1NzM3NDMwMmEzMDBkMDYwOTJBODY0ODg2RjcwRDAxMDEwMTA1MDAwMzE5MDAzMDE2MDIxMGZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMDIwMmZmZmZhMTAwYTIwMGEzMGYzMDBkMzAwYjA2MDM1NTFkMTEwNDA0MzAwMmEwMDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAwMzAyMDBmZiI6IiI6TUJFRFRMU19FUlJfWDUwOV9JTlZBTElEX0VYVEVOU0lPTlMgKyBNQkVEVExTX0VSUl9BU04xX09VVF9PRl9EQVRBCiAKIFg1MDkgQ1JUIEFTTjEgKFRCUywgaW52IFN1YmplY3RBbHROYW1lLCBvdGhlck5hbWUgaW52YWxpZCBPSUQgdGFnKQotZGVwZW5kc19vbjpNQkVEVExTX1JTQV9DOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpNQkVEVExTX1JTQV9DOlBTQV9XQU5UX0FMR19TSEFfMjU2CiB4NTA5cGFyc2VfY3J0OiIzMDgxYWQzMDgxOTdhMDAzMDIwMTAyODIwNGRlYWRiZWVmMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMzAwYzMxMGEzMDA4MDYwMDEzMDQ1NDY1NzM3NDMwMWMxNzBjMzAzOTMwMzEzMDMxMzAzMDMwMzAzMDMwMTcwYzMwMzkzMTMyMzMzMTMyMzMzNTM5MzUzOTMwMGMzMTBhMzAwODA2MDAxMzA0NTQ2NTczNzQzMDJhMzAwZDA2MDkyQTg2NDg4NkY3MEQwMTAxMDEwNTAwMDMxOTAwMzAxNjAyMTBmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjAyMDJmZmZmYTEwMGEyMDBhMzExMzAwZjMwMGQwNjAzNTUxZDExMDQwNjMwMDRhMDAyMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDAzMDIwMGZmIjoiIjpNQkVEVExTX0VSUl9YNTA5X0lOVkFMSURfRVhURU5TSU9OUyArIE1CRURUTFNfRVJSX0FTTjFfVU5FWFBFQ1RFRF9UQUcKIAogWDUwOSBDUlQgQVNOMSAoVEJTLCBpbnYgU3ViamVjdEFsdE5hbWUsIG90aGVyTmFtZSBPSUQgbGVuZ3RoIG1pc3NpbmcpCi1kZXBlbmRzX29uOk1CRURUTFNfUlNBX0M6TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOk1CRURUTFNfUlNBX0M6UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHg1MDlwYXJzZV9jcnQ6IjMwODFhYzMwODE5NmEwMDMwMjAxMDI4MjA0ZGVhZGJlZWYzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAzMDBjMzEwYTMwMDgwNjAwMTMwNDU0NjU3Mzc0MzAxYzE3MGMzMDM5MzAzMTMwMzEzMDMwMzAzMDMwMzAxNzBjMzAzOTMxMzIzMzMxMzIzMzM1MzkzNTM5MzAwYzMxMGEzMDA4MDYwMDEzMDQ1NDY1NzM3NDMwMmEzMDBkMDYwOTJBODY0ODg2RjcwRDAxMDEwMTA1MDAwMzE5MDAzMDE2MDIxMGZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMDIwMmZmZmZhMTAwYTIwMGEzMTAzMDBlMzAwYzA2MDM1NTFkMTEwNDA1MzAwM2EwMDEwNjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDAzMDIwMGZmIjoiIjpNQkVEVExTX0VSUl9YNTA5X0lOVkFMSURfRVhURU5TSU9OUyArIE1CRURUTFNfRVJSX0FTTjFfT1VUX09GX0RBVEEKIAogWDUwOSBDUlQgQVNOMSAoVEJTLCBpbnYgU3ViamVjdEFsdE5hbWUsIG90aGVyTmFtZSBPSUQgaW52IGxlbmd0aCBlbmNvZGluZykKLWRlcGVuZHNfb246TUJFRFRMU19SU0FfQzpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246TUJFRFRMU19SU0FfQzpQU0FfV0FOVF9BTEdfU0hBXzI1NgogeDUwOXBhcnNlX2NydDoiMzA4MWFkMzA4MTk3YTAwMzAyMDEwMjgyMDRkZWFkYmVlZjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDMwMGMzMTBhMzAwODA2MDAxMzA0NTQ2NTczNzQzMDFjMTcwYzMwMzkzMDMxMzAzMTMwMzAzMDMwMzAzMDE3MGMzMDM5MzEzMjMzMzEzMjMzMzUzOTM1MzkzMDBjMzEwYTMwMDgwNjAwMTMwNDU0NjU3Mzc0MzAyYTMwMGQwNjA5MkE4NjQ4ODZGNzBEMDEwMTAxMDUwMDAzMTkwMDMwMTYwMjEwZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYwMjAyZmZmZmExMDBhMjAwYTMxMTMwMGYzMDBkMDYwMzU1MWQxMTA0MDYzMDA0YTAwMjA2ODUzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAwMzAyMDBmZiI6IiI6TUJFRFRMU19FUlJfWDUwOV9JTlZBTElEX0VYVEVOU0lPTlMgKyBNQkVEVExTX0VSUl9BU04xX0lOVkFMSURfTEVOR1RICiAKIFg1MDkgQ1JUIEFTTjEgKFRCUywgaW52IFN1YmplY3RBbHROYW1lLCBvdGhlck5hbWUgT0lEIGxlbmd0aCBvdXQgb2YgYm91bmRzKQotZGVwZW5kc19vbjpNQkVEVExTX1JTQV9DOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpNQkVEVExTX1JTQV9DOlBTQV9XQU5UX0FMR19TSEFfMjU2CiB4NTA5cGFyc2VfY3J0OiIzMDgxYWQzMDgxOTdhMDAzMDIwMTAyODIwNGRlYWRiZWVmMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMzAwYzMxMGEzMDA4MDYwMDEzMDQ1NDY1NzM3NDMwMWMxNzBjMzAzOTMwMzEzMDMxMzAzMDMwMzAzMDMwMTcwYzMwMzkzMTMyMzMzMTMyMzMzNTM5MzUzOTMwMGMzMTBhMzAwODA2MDAxMzA0NTQ2NTczNzQzMDJhMzAwZDA2MDkyQTg2NDg4NkY3MEQwMTAxMDEwNTAwMDMxOTAwMzAxNjAyMTBmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjAyMDJmZmZmYTEwMGEyMDBhMzExMzAwZjMwMGQwNjAzNTUxZDExMDQwNjMwMDRhMDAyMDYwMTMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDAzMDIwMGZmIjoiIjpNQkVEVExTX0VSUl9YNTA5X0lOVkFMSURfRVhURU5TSU9OUyArIE1CRURUTFNfRVJSX0FTTjFfT1VUX09GX0RBVEEKIAogWDUwOSBDUlQgQVNOMSAoVEJTLCBpbnYgU3ViamVjdEFsdE5hbWUsIEhXTW9kdWxlTmFtZSBFWFBMSUNJVCB0YWcgbWlzc2luZwotZGVwZW5kc19vbjpNQkVEVExTX1JTQV9DOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpNQkVEVExTX1JTQV9DOlBTQV9XQU5UX0FMR19TSEFfMjU2CiB4NTA5cGFyc2VfY3J0OiIzMDgxYjUzMDgxOWZhMDAzMDIwMTAyODIwNGRlYWRiZWVmMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMzAwYzMxMGEzMDA4MDYwMDEzMDQ1NDY1NzM3NDMwMWMxNzBjMzAzOTMwMzEzMDMxMzAzMDMwMzAzMDMwMTcwYzMwMzkzMTMyMzMzMTMyMzMzNTM5MzUzOTMwMGMzMTBhMzAwODA2MDAxMzA0NTQ2NTczNzQzMDJhMzAwZDA2MDkyQTg2NDg4NkY3MEQwMTAxMDEwNTAwMDMxOTAwMzAxNjAyMTBmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjAyMDJmZmZmYTEwMGEyMDBhMzE5MzAxNzMwMTUwNjAzNTUxZDExMDQwZTMwMGNhMDBhMDYwODJiMDYwMTA1MDUwNzA4MDQzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAwMzAyMDBmZiI6IiI6TUJFRFRMU19FUlJfWDUwOV9JTlZBTElEX0VYVEVOU0lPTlMgKyBNQkVEVExTX0VSUl9BU04xX09VVF9PRl9EQVRBCiAKIFg1MDkgQ1JUIEFTTjEgKFRCUywgaW52IFN1YmplY3RBbHROYW1lLCBIV01vZHVsZU5hbWUgdW5leHBlY3RlZCBFWFBMSUNJVCB0YWcpCi1kZXBlbmRzX29uOk1CRURUTFNfUlNBX0M6TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOk1CRURUTFNfUlNBX0M6UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHg1MDlwYXJzZV9jcnQ6IjMwODFiNzMwODFhMWEwMDMwMjAxMDI4MjA0ZGVhZGJlZWYzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAzMDBjMzEwYTMwMDgwNjAwMTMwNDU0NjU3Mzc0MzAxYzE3MGMzMDM5MzAzMTMwMzEzMDMwMzAzMDMwMzAxNzBjMzAzOTMxMzIzMzMxMzIzMzM1MzkzNTM5MzAwYzMxMGEzMDA4MDYwMDEzMDQ1NDY1NzM3NDMwMmEzMDBkMDYwOTJBODY0ODg2RjcwRDAxMDEwMTA1MDAwMzE5MDAzMDE2MDIxMGZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMDIwMmZmZmZhMTAwYTIwMGEzMWIzMDE5MzAxNzA2MDM1NTFkMTEwNDEwMzAwZWEwMGMwNjA4MmIwNjAxMDUwNTA3MDgwNDA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAwMzAyMDBmZiI6IiI6TUJFRFRMU19FUlJfWDUwOV9JTlZBTElEX0VYVEVOU0lPTlMgKyBNQkVEVExTX0VSUl9BU04xX1VORVhQRUNURURfVEFHCiAKIFg1MDkgQ1JUIEFTTjEgKFRCUywgaW52IFN1YmplY3RBbHROYW1lLCBIV01vZHVsZU5hbWUgb3V0ZXIgbGVuZ3RoIG1pc3NpbmcpCi1kZXBlbmRzX29uOk1CRURUTFNfUlNBX0M6TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOk1CRURUTFNfUlNBX0M6UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHg1MDlwYXJzZV9jcnQ6IjMwODFiNjMwODFhMGEwMDMwMjAxMDI4MjA0ZGVhZGJlZWYzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAzMDBjMzEwYTMwMDgwNjAwMTMwNDU0NjU3Mzc0MzAxYzE3MGMzMDM5MzAzMTMwMzEzMDMwMzAzMDMwMzAxNzBjMzAzOTMxMzIzMzMxMzIzMzM1MzkzNTM5MzAwYzMxMGEzMDA4MDYwMDEzMDQ1NDY1NzM3NDMwMmEzMDBkMDYwOTJBODY0ODg2RjcwRDAxMDEwMTA1MDAwMzE5MDAzMDE2MDIxMGZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMDIwMmZmZmZhMTAwYTIwMGEzMWEzMDE4MzAxNjA2MDM1NTFkMTEwNDBmMzAwZGEwMGIwNjA4MmIwNjAxMDUwNTA3MDgwNGEwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMDMwMjAwZmYiOiIiOk1CRURUTFNfRVJSX1g1MDlfSU5WQUxJRF9FWFRFTlNJT05TICsgTUJFRFRMU19FUlJfQVNOMV9PVVRfT0ZfREFUQQogCiBYNTA5IENSVCBBU04xIChUQlMsIGludiBTdWJqZWN0QWx0TmFtZSwgSFdNb2R1bGVOYW1lIGludiBvdXRlciBsZW5ndGgpCi1kZXBlbmRzX29uOk1CRURUTFNfUlNBX0M6TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOk1CRURUTFNfUlNBX0M6UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHg1MDlwYXJzZV9jcnQ6IjMwODFiNzMwODFhMWEwMDMwMjAxMDI4MjA0ZGVhZGJlZWYzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAzMDBjMzEwYTMwMDgwNjAwMTMwNDU0NjU3Mzc0MzAxYzE3MGMzMDM5MzAzMTMwMzEzMDMwMzAzMDMwMzAxNzBjMzAzOTMxMzIzMzMxMzIzMzM1MzkzNTM5MzAwYzMxMGEzMDA4MDYwMDEzMDQ1NDY1NzM3NDMwMmEzMDBkMDYwOTJBODY0ODg2RjcwRDAxMDEwMTA1MDAwMzE5MDAzMDE2MDIxMGZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMDIwMmZmZmZhMTAwYTIwMGEzMWIzMDE5MzAxNzA2MDM1NTFkMTEwNDEwMzAwZWEwMGMwNjA4MmIwNjAxMDUwNTA3MDgwNGEwODUzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAwMzAyMDBmZiI6IiI6TUJFRFRMU19FUlJfWDUwOV9JTlZBTElEX0VYVEVOU0lPTlMgKyBNQkVEVExTX0VSUl9BU04xX0lOVkFMSURfTEVOR1RICiAKIFg1MDkgQ1JUIEFTTjEgKFRCUywgaW52IFN1YmplY3RBbHROYW1lLCBIV01vZHVsZU5hbWUgb3V0ZXIgbGVuZ3RoIG91dCBvZiBib3VuZHMpCi1kZXBlbmRzX29uOk1CRURUTFNfUlNBX0M6TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOk1CRURUTFNfUlNBX0M6UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHg1MDlwYXJzZV9jcnQ6IjMwODFiNzMwODFhMWEwMDMwMjAxMDI4MjA0ZGVhZGJlZWYzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAzMDBjMzEwYTMwMDgwNjAwMTMwNDU0NjU3Mzc0MzAxYzE3MGMzMDM5MzAzMTMwMzEzMDMwMzAzMDMwMzAxNzBjMzAzOTMxMzIzMzMxMzIzMzM1MzkzNTM5MzAwYzMxMGEzMDA4MDYwMDEzMDQ1NDY1NzM3NDMwMmEzMDBkMDYwOTJBODY0ODg2RjcwRDAxMDEwMTA1MDAwMzE5MDAzMDE2MDIxMGZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMDIwMmZmZmZhMTAwYTIwMGEzMWIzMDE5MzAxNzA2MDM1NTFkMTEwNDEwMzAwZWEwMGMwNjA4MmIwNjAxMDUwNTA3MDgwNGEwMDEzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAwMzAyMDBmZiI6IiI6TUJFRFRMU19FUlJfWDUwOV9JTlZBTElEX0VYVEVOU0lPTlMgKyBNQkVEVExTX0VSUl9BU04xX09VVF9PRl9EQVRBCiAKIFg1MDkgQ1JUIEFTTjEgKFRCUywgaW52IFN1YmplY3RBbHROYW1lLCBIV01vZHVsZU5hbWUgb3V0ZXIgbGVuZ3RoIDApCi1kZXBlbmRzX29uOk1CRURUTFNfUlNBX0M6TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOk1CRURUTFNfUlNBX0M6UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHg1MDlwYXJzZV9jcnQ6IjMwODFiNzMwODFhMWEwMDMwMjAxMDI4MjA0ZGVhZGJlZWYzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAzMDBjMzEwYTMwMDgwNjAwMTMwNDU0NjU3Mzc0MzAxYzE3MGMzMDM5MzAzMTMwMzEzMDMwMzAzMDMwMzAxNzBjMzAzOTMxMzIzMzMxMzIzMzM1MzkzNTM5MzAwYzMxMGEzMDA4MDYwMDEzMDQ1NDY1NzM3NDMwMmEzMDBkMDYwOTJBODY0ODg2RjcwRDAxMDEwMTA1MDAwMzE5MDAzMDE2MDIxMGZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMDIwMmZmZmZhMTAwYTIwMGEzMWIzMDE5MzAxNzA2MDM1NTFkMTEwNDEwMzAwZWEwMGMwNjA4MmIwNjAxMDUwNTA3MDgwNGEwMDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAwMzAyMDBmZiI6IiI6TUJFRFRMU19FUlJfWDUwOV9JTlZBTElEX0VYVEVOU0lPTlMgKyBNQkVEVExTX0VSUl9BU04xX09VVF9PRl9EQVRBCiAKIFg1MDkgQ1JUIEFTTjEgKFRCUywgaW52IFN1YmplY3RBbHROYW1lLCBIV01vZHVsZU5hbWUgaW5uZXIgdGFnIGludmFsaWQpCi1kZXBlbmRzX29uOk1CRURUTFNfUlNBX0M6TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOk1CRURUTFNfUlNBX0M6UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHg1MDlwYXJzZV9jcnQ6IjMwODFiOTMwODFhM2EwMDMwMjAxMDI4MjA0ZGVhZGJlZWYzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAzMDBjMzEwYTMwMDgwNjAwMTMwNDU0NjU3Mzc0MzAxYzE3MGMzMDM5MzAzMTMwMzEzMDMwMzAzMDMwMzAxNzBjMzAzOTMxMzIzMzMxMzIzMzM1MzkzNTM5MzAwYzMxMGEzMDA4MDYwMDEzMDQ1NDY1NzM3NDMwMmEzMDBkMDYwOTJBODY0ODg2RjcwRDAxMDEwMTA1MDAwMzE5MDAzMDE2MDIxMGZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMDIwMmZmZmZhMTAwYTIwMGEzMWQzMDFiMzAxOTA2MDM1NTFkMTEwNDEyMzAxMGEwMGUwNjA4MmIwNjAxMDUwNTA3MDgwNGEwMDIwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMDMwMjAwZmYiOiIiOk1CRURUTFNfRVJSX1g1MDlfSU5WQUxJRF9FWFRFTlNJT05TICsgTUJFRFRMU19FUlJfQVNOMV9VTkVYUEVDVEVEX1RBRwogCiBYNTA5IENSVCBBU04xIChUQlMsIGludiBTdWJqZWN0QWx0TmFtZSwgSFdNb2R1bGVOYW1lIGlubmVyIGxlbmd0aCBtaXNzaW5nKQotZGVwZW5kc19vbjpNQkVEVExTX1JTQV9DOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpNQkVEVExTX1JTQV9DOlBTQV9XQU5UX0FMR19TSEFfMjU2CiB4NTA5cGFyc2VfY3J0OiIzMDgxYjgzMDgxYTJhMDAzMDIwMTAyODIwNGRlYWRiZWVmMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMzAwYzMxMGEzMDA4MDYwMDEzMDQ1NDY1NzM3NDMwMWMxNzBjMzAzOTMwMzEzMDMxMzAzMDMwMzAzMDMwMTcwYzMwMzkzMTMyMzMzMTMyMzMzNTM5MzUzOTMwMGMzMTBhMzAwODA2MDAxMzA0NTQ2NTczNzQzMDJhMzAwZDA2MDkyQTg2NDg4NkY3MEQwMTAxMDEwNTAwMDMxOTAwMzAxNjAyMTBmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjAyMDJmZmZmYTEwMGEyMDBhMzFjMzAxYTMwMTgwNjAzNTUxZDExMDQxMTMwMGZhMDBkMDYwODJiMDYwMTA1MDUwNzA4MDRhMDAxMzAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAwMzAyMDBmZiI6IiI6TUJFRFRMU19FUlJfWDUwOV9JTlZBTElEX0VYVEVOU0lPTlMgKyBNQkVEVExTX0VSUl9BU04xX09VVF9PRl9EQVRBCiAKIFg1MDkgQ1JUIEFTTjEgKFRCUywgaW52IFN1YmplY3RBbHROYW1lLCBIV01vZHVsZU5hbWUgaW5uZXIgbGVuZ3RoIGludiBlbmNvZGluZykKLWRlcGVuZHNfb246TUJFRFRMU19SU0FfQzpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246TUJFRFRMU19SU0FfQzpQU0FfV0FOVF9BTEdfU0hBXzI1NgogeDUwOXBhcnNlX2NydDoiMzA4MWI5MzA4MWEzYTAwMzAyMDEwMjgyMDRkZWFkYmVlZjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDMwMGMzMTBhMzAwODA2MDAxMzA0NTQ2NTczNzQzMDFjMTcwYzMwMzkzMDMxMzAzMTMwMzAzMDMwMzAzMDE3MGMzMDM5MzEzMjMzMzEzMjMzMzUzOTM1MzkzMDBjMzEwYTMwMDgwNjAwMTMwNDU0NjU3Mzc0MzAyYTMwMGQwNjA5MkE4NjQ4ODZGNzBEMDEwMTAxMDUwMDAzMTkwMDMwMTYwMjEwZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYwMjAyZmZmZmExMDBhMjAwYTMxZDMwMWIzMDE5MDYwMzU1MWQxMTA0MTIzMDEwYTAwZTA2MDgyYjA2MDEwNTA1MDcwODA0YTAwMjMwODUzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAwMzAyMDBmZiI6IiI6TUJFRFRMU19FUlJfWDUwOV9JTlZBTElEX0VYVEVOU0lPTlMgKyBNQkVEVExTX0VSUl9BU04xX0lOVkFMSURfTEVOR1RICiAKIFg1MDkgQ1JUIEFTTjEgKFRCUywgaW52IFN1YmplY3RBbHROYW1lLCBIV01vZHVsZU5hbWUgaW5uZXIgbGVuZ3RoIG91dCBvZiBib3VuZHMpCi1kZXBlbmRzX29uOk1CRURUTFNfUlNBX0M6TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOk1CRURUTFNfUlNBX0M6UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHg1MDlwYXJzZV9jcnQ6IjMwODFiOTMwODFhM2EwMDMwMjAxMDI4MjA0ZGVhZGJlZWYzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAzMDBjMzEwYTMwMDgwNjAwMTMwNDU0NjU3Mzc0MzAxYzE3MGMzMDM5MzAzMTMwMzEzMDMwMzAzMDMwMzAxNzBjMzAzOTMxMzIzMzMxMzIzMzM1MzkzNTM5MzAwYzMxMGEzMDA4MDYwMDEzMDQ1NDY1NzM3NDMwMmEzMDBkMDYwOTJBODY0ODg2RjcwRDAxMDEwMTA1MDAwMzE5MDAzMDE2MDIxMGZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMDIwMmZmZmZhMTAwYTIwMGEzMWQzMDFiMzAxOTA2MDM1NTFkMTEwNDEyMzAxMGEwMGUwNjA4MmIwNjAxMDUwNTA3MDgwNGEwMDIzMDAxMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMDMwMjAwZmYiOiIiOk1CRURUTFNfRVJSX1g1MDlfSU5WQUxJRF9FWFRFTlNJT05TICsgTUJFRFRMU19FUlJfQVNOMV9PVVRfT0ZfREFUQQogCiBYNTA5IENSVCBBU04xIChUQlMsIGludiBTdWJqZWN0QWx0TmFtZSwgSFdNb2R1bGVOYW1lIGVtcHR5KQotZGVwZW5kc19vbjpNQkVEVExTX1JTQV9DOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpNQkVEVExTX1JTQV9DOlBTQV9XQU5UX0FMR19TSEFfMjU2CiB4NTA5cGFyc2VfY3J0OiIzMDgxYjkzMDgxYTNhMDAzMDIwMTAyODIwNGRlYWRiZWVmMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMzAwYzMxMGEzMDA4MDYwMDEzMDQ1NDY1NzM3NDMwMWMxNzBjMzAzOTMwMzEzMDMxMzAzMDMwMzAzMDMwMTcwYzMwMzkzMTMyMzMzMTMyMzMzNTM5MzUzOTMwMGMzMTBhMzAwODA2MDAxMzA0NTQ2NTczNzQzMDJhMzAwZDA2MDkyQTg2NDg4NkY3MEQwMTAxMDEwNTAwMDMxOTAwMzAxNjAyMTBmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjAyMDJmZmZmYTEwMGEyMDBhMzFkMzAxYjMwMTkwNjAzNTUxZDExMDQxMjMwMTBhMDBlMDYwODJiMDYwMTA1MDUwNzA4MDRhMDAyMzAwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDAzMDIwMGZmIjoiIjpNQkVEVExTX0VSUl9YNTA5X0lOVkFMSURfRVhURU5TSU9OUyArIE1CRURUTFNfRVJSX0FTTjFfT1VUX09GX0RBVEEKIAogWDUwOSBDUlQgQVNOMSAoVEJTLCBpbnYgU3ViamVjdEFsdE5hbWUsIEhXTW9kdWxlTmFtZSB1bmV4cGVjdGVkIE9JRCB0YWcpCi1kZXBlbmRzX29uOk1CRURUTFNfUlNBX0M6TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOk1CRURUTFNfUlNBX0M6UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHg1MDlwYXJzZV9jcnQ6IjMwODFiYjMwODFhNWEwMDMwMjAxMDI4MjA0ZGVhZGJlZWYzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAzMDBjMzEwYTMwMDgwNjAwMTMwNDU0NjU3Mzc0MzAxYzE3MGMzMDM5MzAzMTMwMzEzMDMwMzAzMDMwMzAxNzBjMzAzOTMxMzIzMzMxMzIzMzM1MzkzNTM5MzAwYzMxMGEzMDA4MDYwMDEzMDQ1NDY1NzM3NDMwMmEzMDBkMDYwOTJBODY0ODg2RjcwRDAxMDEwMTA1MDAwMzE5MDAzMDE2MDIxMGZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMDIwMmZmZmZhMTAwYTIwMGEzMWYzMDFkMzAxYjA2MDM1NTFkMTEwNDE0MzAxMmEwMTAwNjA4MmIwNjAxMDUwNTA3MDgwNGEwMDQzMDAyMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDAzMDIwMGZmIjoiIjpNQkVEVExTX0VSUl9YNTA5X0lOVkFMSURfRVhURU5TSU9OUyArIE1CRURUTFNfRVJSX0FTTjFfVU5FWFBFQ1RFRF9UQUcKIAogWDUwOSBDUlQgQVNOMSAoVEJTLCBpbnYgU3ViamVjdEFsdE5hbWUsIEhXTW9kdWxlTmFtZSBPSUQgbm8gbGVuZ3RoKQotZGVwZW5kc19vbjpNQkVEVExTX1JTQV9DOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpNQkVEVExTX1JTQV9DOlBTQV9XQU5UX0FMR19TSEFfMjU2CiB4NTA5cGFyc2VfY3J0OiIzMDgxYmEzMDgxYTRhMDAzMDIwMTAyODIwNGRlYWRiZWVmMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMzAwYzMxMGEzMDA4MDYwMDEzMDQ1NDY1NzM3NDMwMWMxNzBjMzAzOTMwMzEzMDMxMzAzMDMwMzAzMDMwMTcwYzMwMzkzMTMyMzMzMTMyMzMzNTM5MzUzOTMwMGMzMTBhMzAwODA2MDAxMzA0NTQ2NTczNzQzMDJhMzAwZDA2MDkyQTg2NDg4NkY3MEQwMTAxMDEwNTAwMDMxOTAwMzAxNjAyMTBmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjAyMDJmZmZmYTEwMGEyMDBhMzFlMzAxYzMwMWEwNjAzNTUxZDExMDQxMzMwMTFhMDBmMDYwODJiMDYwMTA1MDUwNzA4MDRhMDAzMzAwMTA2MzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMDMwMjAwZmYiOiIiOk1CRURUTFNfRVJSX1g1MDlfSU5WQUxJRF9FWFRFTlNJT05TICsgTUJFRFRMU19FUlJfQVNOMV9PVVRfT0ZfREFUQQogCiBYNTA5IENSVCBBU04xIChUQlMsIGludiBTdWJqZWN0QWx0TmFtZSwgSFdNb2R1bGVOYW1lIE9JRCBpbnYgbGVuZ3RoIGVuY29kaW5nKQotZGVwZW5kc19vbjpNQkVEVExTX1JTQV9DOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpNQkVEVExTX1JTQV9DOlBTQV9XQU5UX0FMR19TSEFfMjU2CiB4NTA5cGFyc2VfY3J0OiIzMDgxYmIzMDgxYTVhMDAzMDIwMTAyODIwNGRlYWRiZWVmMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMzAwYzMxMGEzMDA4MDYwMDEzMDQ1NDY1NzM3NDMwMWMxNzBjMzAzOTMwMzEzMDMxMzAzMDMwMzAzMDMwMTcwYzMwMzkzMTMyMzMzMTMyMzMzNTM5MzUzOTMwMGMzMTBhMzAwODA2MDAxMzA0NTQ2NTczNzQzMDJhMzAwZDA2MDkyQTg2NDg4NkY3MEQwMTAxMDEwNTAwMDMxOTAwMzAxNjAyMTBmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjAyMDJmZmZmYTEwMGEyMDBhMzFmMzAxZDMwMWIwNjAzNTUxZDExMDQxNDMwMTJhMDEwMDYwODJiMDYwMTA1MDUwNzA4MDRhMDA0MzAwMjA2ODUzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAwMzAyMDBmZiI6IiI6TUJFRFRMU19FUlJfWDUwOV9JTlZBTElEX0VYVEVOU0lPTlMgKyBNQkVEVExTX0VSUl9BU04xX0lOVkFMSURfTEVOR1RICiAKIFg1MDkgQ1JUIEFTTjEgKFRCUywgaW52IFN1YmplY3RBbHROYW1lLCBIV01vZHVsZU5hbWUgT0lEIGxlbmd0aCBvdXQgb2YgYm91bmRzKQotZGVwZW5kc19vbjpNQkVEVExTX1JTQV9DOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpNQkVEVExTX1JTQV9DOlBTQV9XQU5UX0FMR19TSEFfMjU2CiB4NTA5cGFyc2VfY3J0OiIzMDgxYmIzMDgxYTVhMDAzMDIwMTAyODIwNGRlYWRiZWVmMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMzAwYzMxMGEzMDA4MDYwMDEzMDQ1NDY1NzM3NDMwMWMxNzBjMzAzOTMwMzEzMDMxMzAzMDMwMzAzMDMwMTcwYzMwMzkzMTMyMzMzMTMyMzMzNTM5MzUzOTMwMGMzMTBhMzAwODA2MDAxMzA0NTQ2NTczNzQzMDJhMzAwZDA2MDkyQTg2NDg4NkY3MEQwMTAxMDEwNTAwMDMxOTAwMzAxNjAyMTBmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjAyMDJmZmZmYTEwMGEyMDBhMzFmMzAxZDMwMWIwNjAzNTUxZDExMDQxNDMwMTJhMDEwMDYwODJiMDYwMTA1MDUwNzA4MDRhMDA0MzAwMjA2MDEzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAwMzAyMDBmZiI6IiI6TUJFRFRMU19FUlJfWDUwOV9JTlZBTElEX0VYVEVOU0lPTlMgKyBNQkVEVExTX0VSUl9BU04xX09VVF9PRl9EQVRBCiAKIFg1MDkgQ1JUIEFTTjEgKFRCUywgaW52IFN1YmplY3RBbHROYW1lLCBIV01vZHVsZU5hbWUgZGF0YSBtaXNzaW5nKQotZGVwZW5kc19vbjpNQkVEVExTX1JTQV9DOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpNQkVEVExTX1JTQV9DOlBTQV9XQU5UX0FMR19TSEFfMjU2CiB4NTA5cGFyc2VfY3J0OiIzMDgxYmIzMDgxYTVhMDAzMDIwMTAyODIwNGRlYWRiZWVmMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMzAwYzMxMGEzMDA4MDYwMDEzMDQ1NDY1NzM3NDMwMWMxNzBjMzAzOTMwMzEzMDMxMzAzMDMwMzAzMDMwMTcwYzMwMzkzMTMyMzMzMTMyMzMzNTM5MzUzOTMwMGMzMTBhMzAwODA2MDAxMzA0NTQ2NTczNzQzMDJhMzAwZDA2MDkyQTg2NDg4NkY3MEQwMTAxMDEwNTAwMDMxOTAwMzAxNjAyMTBmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjAyMDJmZmZmYTEwMGEyMDBhMzFmMzAxZDMwMWIwNjAzNTUxZDExMDQxNDMwMTJhMDEwMDYwODJiMDYwMTA1MDUwNzA4MDRhMDA0MzAwMjA2MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAwMzAyMDBmZiI6IiI6TUJFRFRMU19FUlJfWDUwOV9JTlZBTElEX0VYVEVOU0lPTlMgKyBNQkVEVExTX0VSUl9BU04xX09VVF9PRl9EQVRBCiAKIFg1MDkgQ1JUIEFTTjEgKFRCUywgaW52IFN1YmplY3RBbHROYW1lLCBIV01vZHVsZU5hbWUgZGF0YSBpbnZhbGlkIHRhZykKLWRlcGVuZHNfb246TUJFRFRMU19SU0FfQzpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246TUJFRFRMU19SU0FfQzpQU0FfV0FOVF9BTEdfU0hBXzI1NgogeDUwOXBhcnNlX2NydDoiMzA4MWJkMzA4MWE3YTAwMzAyMDEwMjgyMDRkZWFkYmVlZjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDMwMGMzMTBhMzAwODA2MDAxMzA0NTQ2NTczNzQzMDFjMTcwYzMwMzkzMDMxMzAzMTMwMzAzMDMwMzAzMDE3MGMzMDM5MzEzMjMzMzEzMjMzMzUzOTM1MzkzMDBjMzEwYTMwMDgwNjAwMTMwNDU0NjU3Mzc0MzAyYTMwMGQwNjA5MkE4NjQ4ODZGNzBEMDEwMTAxMDUwMDAzMTkwMDMwMTYwMjEwZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYwMjAyZmZmZmExMDBhMjAwYTMyMTMwMWYzMDFkMDYwMzU1MWQxMTA0MTYzMDE0YTAxMjA2MDgyYjA2MDEwNTA1MDcwODA0YTAwNjMwMDQwNjAwMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDAzMDIwMGZmIjoiIjpNQkVEVExTX0VSUl9YNTA5X0lOVkFMSURfRVhURU5TSU9OUyArIE1CRURUTFNfRVJSX0FTTjFfVU5FWFBFQ1RFRF9UQUcKIAogWDUwOSBDUlQgQVNOMSAoVEJTLCBpbnYgU3ViamVjdEFsdE5hbWUsIEhXTW9kdWxlTmFtZSBkYXRhIGxlbmd0aCBtaXNzaW5nKQotZGVwZW5kc19vbjpNQkVEVExTX1JTQV9DOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpNQkVEVExTX1JTQV9DOlBTQV9XQU5UX0FMR19TSEFfMjU2CiB4NTA5cGFyc2VfY3J0OiIzMDgxYmMzMDgxYTZhMDAzMDIwMTAyODIwNGRlYWRiZWVmMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMzAwYzMxMGEzMDA4MDYwMDEzMDQ1NDY1NzM3NDMwMWMxNzBjMzAzOTMwMzEzMDMxMzAzMDMwMzAzMDMwMTcwYzMwMzkzMTMyMzMzMTMyMzMzNTM5MzUzOTMwMGMzMTBhMzAwODA2MDAxMzA0NTQ2NTczNzQzMDJhMzAwZDA2MDkyQTg2NDg4NkY3MEQwMTAxMDEwNTAwMDMxOTAwMzAxNjAyMTBmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjAyMDJmZmZmYTEwMGEyMDBhMzIwMzAxZTMwMWMwNjAzNTUxZDExMDQxNTMwMTNhMDExMDYwODJiMDYwMTA1MDUwNzA4MDRhMDA1MzAwMzA2MDAwNDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDAzMDIwMGZmIjoiIjpNQkVEVExTX0VSUl9YNTA5X0lOVkFMSURfRVhURU5TSU9OUyArIE1CRURUTFNfRVJSX0FTTjFfT1VUX09GX0RBVEEKIAogWDUwOSBDUlQgQVNOMSAoVEJTLCBpbnYgU3ViamVjdEFsdE5hbWUsIEhXTW9kdWxlTmFtZSBkYXRhIGludiBsZW5ndGggZW5jb2RpbmcpCi1kZXBlbmRzX29uOk1CRURUTFNfUlNBX0M6TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOk1CRURUTFNfUlNBX0M6UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHg1MDlwYXJzZV9jcnQ6IjMwODFiZDMwODFhN2EwMDMwMjAxMDI4MjA0ZGVhZGJlZWYzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAzMDBjMzEwYTMwMDgwNjAwMTMwNDU0NjU3Mzc0MzAxYzE3MGMzMDM5MzAzMTMwMzEzMDMwMzAzMDMwMzAxNzBjMzAzOTMxMzIzMzMxMzIzMzM1MzkzNTM5MzAwYzMxMGEzMDA4MDYwMDEzMDQ1NDY1NzM3NDMwMmEzMDBkMDYwOTJBODY0ODg2RjcwRDAxMDEwMTA1MDAwMzE5MDAzMDE2MDIxMGZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMDIwMmZmZmZhMTAwYTIwMGEzMjEzMDFmMzAxZDA2MDM1NTFkMTEwNDE2MzAxNGEwMTIwNjA4MmIwNjAxMDUwNTA3MDgwNGEwMDYzMDA0MDYwMDA0ODUzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAwMzAyMDBmZiI6IiI6TUJFRFRMU19FUlJfWDUwOV9JTlZBTElEX0VYVEVOU0lPTlMgKyBNQkVEVExTX0VSUl9BU04xX0lOVkFMSURfTEVOR1RICiAKIFg1MDkgQ1JUIEFTTjEgKFRCUywgaW52IFN1YmplY3RBbHROYW1lLCBIV01vZHVsZU5hbWUgZGF0YSBsZW5ndGggb3V0IG9mIGJvdW5kcykKLWRlcGVuZHNfb246TUJFRFRMU19SU0FfQzpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246TUJFRFRMU19SU0FfQzpQU0FfV0FOVF9BTEdfU0hBXzI1NgogeDUwOXBhcnNlX2NydDoiMzA4MWJkMzA4MWE3YTAwMzAyMDEwMjgyMDRkZWFkYmVlZjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDMwMGMzMTBhMzAwODA2MDAxMzA0NTQ2NTczNzQzMDFjMTcwYzMwMzkzMDMxMzAzMTMwMzAzMDMwMzAzMDE3MGMzMDM5MzEzMjMzMzEzMjMzMzUzOTM1MzkzMDBjMzEwYTMwMDgwNjAwMTMwNDU0NjU3Mzc0MzAyYTMwMGQwNjA5MkE4NjQ4ODZGNzBEMDEwMTAxMDUwMDAzMTkwMDMwMTYwMjEwZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYwMjAyZmZmZmExMDBhMjAwYTMyMTMwMWYzMDFkMDYwMzU1MWQxMTA0MTYzMDE0YTAxMjA2MDgyYjA2MDEwNTA1MDcwODA0YTAwNjMwMDQwNjAwMDQwMTMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDAzMDIwMGZmIjoiIjpNQkVEVExTX0VSUl9YNTA5X0lOVkFMSURfRVhURU5TSU9OUyArIE1CRURUTFNfRVJSX0FTTjFfT1VUX09GX0RBVEEKIAogWDUwOSBDUlQgQVNOMSAoVEJTLCBpbnYgU3ViamVjdEFsdE5hbWUsIEhXTW9kdWxlTmFtZSBkYXRhIHJlbWFpbmluZyAjMSkKLWRlcGVuZHNfb246TUJFRFRMU19SU0FfQzpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246TUJFRFRMU19SU0FfQzpQU0FfV0FOVF9BTEdfU0hBXzI1NgogeDUwOXBhcnNlX2NydDoiMzA4MWJmMzA4MWE5YTAwMzAyMDEwMjgyMDRkZWFkYmVlZjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDMwMGMzMTBhMzAwODA2MDAxMzA0NTQ2NTczNzQzMDFjMTcwYzMwMzkzMDMxMzAzMTMwMzAzMDMwMzAzMDE3MGMzMDM5MzEzMjMzMzEzMjMzMzUzOTM1MzkzMDBjMzEwYTMwMDgwNjAwMTMwNDU0NjU3Mzc0MzAyYTMwMGQwNjA5MkE4NjQ4ODZGNzBEMDEwMTAxMDUwMDAzMTkwMDMwMTYwMjEwZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYwMjAyZmZmZmExMDBhMjAwYTMyMzMwMjEzMDFmMDYwMzU1MWQxMTA0MTgzMDE2YTAxNDA2MDgyYjA2MDEwNTA1MDcwODA0YTAwODMwMDYwNjAwMDQwMDA1MDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAwMzAyMDBmZiI6IiI6TUJFRFRMU19FUlJfWDUwOV9JTlZBTElEX0VYVEVOU0lPTlMgKyBNQkVEVExTX0VSUl9BU04xX0xFTkdUSF9NSVNNQVRDSAogCiBYNTA5IENSVCBBU04xIChUQlMsIGludiBTdWJqZWN0QWx0TmFtZSwgSFdNb2R1bGVOYW1lIGRhdGEgcmVtYWluaW5nICMyKQotZGVwZW5kc19vbjpNQkVEVExTX1JTQV9DOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpNQkVEVExTX1JTQV9DOlBTQV9XQU5UX0FMR19TSEFfMjU2CiB4NTA5cGFyc2VfY3J0OiIzMDgxYmYzMDgxYTlhMDAzMDIwMTAyODIwNGRlYWRiZWVmMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMzAwYzMxMGEzMDA4MDYwMDEzMDQ1NDY1NzM3NDMwMWMxNzBjMzAzOTMwMzEzMDMxMzAzMDMwMzAzMDMwMTcwYzMwMzkzMTMyMzMzMTMyMzMzNTM5MzUzOTMwMGMzMTBhMzAwODA2MDAxMzA0NTQ2NTczNzQzMDJhMzAwZDA2MDkyQTg2NDg4NkY3MEQwMTAxMDEwNTAwMDMxOTAwMzAxNjAyMTBmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjAyMDJmZmZmYTEwMGEyMDBhMzIzMzAyMTMwMWYwNjAzNTUxZDExMDQxODMwMTZhMDE0MDYwODJiMDYwMTA1MDUwNzA4MDRhMDA4MzAwNDA2MDAwNDAwMDUwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDAzMDIwMGZmIjoiIjpNQkVEVExTX0VSUl9YNTA5X0lOVkFMSURfRVhURU5TSU9OUyArIE1CRURUTFNfRVJSX0FTTjFfTEVOR1RIX01JU01BVENICiAKIFg1MDkgQ1JUIEFTTjEgKFRCUywgaW52IFN1YmplY3RBbHROYW1lLCBIV01vZHVsZU5hbWUgZGF0YSByZW1haW5pbmcgIzMpCi1kZXBlbmRzX29uOk1CRURUTFNfUlNBX0M6TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOk1CRURUTFNfUlNBX0M6UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHg1MDlwYXJzZV9jcnQ6IjMwODFiZjMwODFhOWEwMDMwMjAxMDI4MjA0ZGVhZGJlZWYzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAzMDBjMzEwYTMwMDgwNjAwMTMwNDU0NjU3Mzc0MzAxYzE3MGMzMDM5MzAzMTMwMzEzMDMwMzAzMDMwMzAxNzBjMzAzOTMxMzIzMzMxMzIzMzM1MzkzNTM5MzAwYzMxMGEzMDA4MDYwMDEzMDQ1NDY1NzM3NDMwMmEzMDBkMDYwOTJBODY0ODg2RjcwRDAxMDEwMTA1MDAwMzE5MDAzMDE2MDIxMGZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMDIwMmZmZmZhMTAwYTIwMGEzMjMzMDIxMzAxZjA2MDM1NTFkMTEwNDE4MzAxNmEwMTQwNjA4MmIwNjAxMDUwNTA3MDgwNGEwMDYzMDA0MDYwMDA0MDAwNTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMDMwMjAwZmYiOiIiOk1CRURUTFNfRVJSX1g1MDlfSU5WQUxJRF9FWFRFTlNJT05TICsgTUJFRFRMU19FUlJfQVNOMV9MRU5HVEhfTUlTTUFUQ0gKIAogWDUwOSBDUlQgQVNOMSAoVEJTLCBpbnYgdjNFeHQsIFN1YmplY3RBbHROYW1lIHJlcGVhdGVkKQotZGVwZW5kc19vbjpNQkVEVExTX1JTQV9DOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpNQkVEVExTX1JTQV9DOlBTQV9XQU5UX0FMR19TSEFfMjU2CiB4NTA5cGFyc2VfY3J0OiIzMDgxZGMzMDgxYzZhMDAzMDIwMTAyODIwNGRlYWRiZWVmMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMzAwYzMxMGEzMDA4MDYwMDEzMDQ1NDY1NzM3NDMwMWMxNzBjMzAzOTMwMzEzMDMxMzAzMDMwMzAzMDMwMTcwYzMwMzkzMTMyMzMzMTMyMzMzNTM5MzUzOTMwMGMzMTBhMzAwODA2MDAxMzA0NTQ2NTczNzQzMDJhMzAwZDA2MDkyQTg2NDg4NkY3MEQwMTAxMDEwNTAwMDMxOTAwMzAxNjAyMTBmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjAyMDJmZmZmYTEwMGEyMDBhMzQwMzAzZTMwMWQwNjAzNTUxZDExMDQxNjMwMTQ4MjA4NjY2ZjZmMmU3NDY1NzM3NDgyMDg2MjYxNzIyZTc0NjU3Mzc0MzAxZDA2MDM1NTFkMTEwNDE2MzAxNDgyMDg2NjZmNmYyZTc0NjU3Mzc0ODIwODYyNjE3MjJlNzQ2NTczNzQzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAwMzAyMDBmZiI6IiI6TUJFRFRMU19FUlJfWDUwOV9JTlZBTElEX0VYVEVOU0lPTlMKIAogWDUwOSBDUlQgQVNOMSAoVEJTLCBpbnYgdjNFeHQsIEV4dEtleVVzYWdlIHJlcGVhdGVkKQotZGVwZW5kc19vbjpNQkVEVExTX1JTQV9DOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpNQkVEVExTX1JTQV9DOlBTQV9XQU5UX0FMR19TSEFfMjU2CiB4NTA5cGFyc2VfY3J0OiIzMDgxZGMzMDgxYzZhMDAzMDIwMTAyODIwNGRlYWRiZWVmMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMzAwYzMxMGEzMDA4MDYwMDEzMDQ1NDY1NzM3NDMwMWMxNzBjMzAzOTMwMzEzMDMxMzAzMDMwMzAzMDMwMTcwYzMwMzkzMTMyMzMzMTMyMzMzNTM5MzUzOTMwMGMzMTBhMzAwODA2MDAxMzA0NTQ2NTczNzQzMDJhMzAwZDA2MDkyQTg2NDg4NkY3MEQwMTAxMDEwNTAwMDMxOTAwMzAxNjAyMTBmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjAyMDJmZmZmYTEwMGEyMDBhMzQwMzAzZTMwMWQwNjAzNTUxZDI1MDQxNjMwMTQwNjA4MmIwNjAxMDUwNTA3MDMwMTA2MDgyYjA2MDEwNTA1MDcwMzAyMzAxZDA2MDM1NTFkMjUwNDE2MzAxNDA2MDgyYjA2MDEwNTA1MDcwMzAxMDYwODJiMDYwMTA1MDUwNzAzMDIzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAwMzAyMDBmZiI6IiI6TUJFRFRMU19FUlJfWDUwOV9JTlZBTElEX0VYVEVOU0lPTlMKIAogWDUwOSBDUlQgQVNOMSAoVEJTLCBpbnYgdjNFeHQsIFN1YmplY3RBbHROYW1lIHJlcGVhdGVkIG91dHNpZGUgRXh0ZW5zaW9ucykKLWRlcGVuZHNfb246TUJFRFRMU19SU0FfQzpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246TUJFRFRMU19SU0FfQzpQU0FfV0FOVF9BTEdfU0hBXzI1NgogeDUwOXBhcnNlX2NydDoiMzA4MWRjMzA4MWM2YTAwMzAyMDEwMjgyMDRkZWFkYmVlZjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDMwMGMzMTBhMzAwODA2MDAxMzA0NTQ2NTczNzQzMDFjMTcwYzMwMzkzMDMxMzAzMTMwMzAzMDMwMzAzMDE3MGMzMDM5MzEzMjMzMzEzMjMzMzUzOTM1MzkzMDBjMzEwYTMwMDgwNjAwMTMwNDU0NjU3Mzc0MzAyYTMwMGQwNjA5MkE4NjQ4ODZGNzBEMDEwMTAxMDUwMDAzMTkwMDMwMTYwMjEwZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYwMjAyZmZmZmExMDBhMjAwYTMyMTMwMWYzMDFkMDYwMzU1MWQxMTA0MTYzMDE0ODIwODY2NmY2ZjJlNzQ2NTczNzQ4MjA4NjI2MTcyMmU3NDY1NzM3NDMwMWQwNjAzNTUxZDExMDQxNjMwMTQ4MjA4NjY2ZjZmMmU3NDY1NzM3NDgyMDg2MjYxNzIyZTc0NjU3Mzc0MzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMDMwMjAwZmYiOiIiOk1CRURUTFNfRVJSX1g1MDlfSU5WQUxJRF9GT1JNQVQgKyBNQkVEVExTX0VSUl9BU04xX0xFTkdUSF9NSVNNQVRDSAogCiBYNTA5IENSVCAoVEJTLCB2YWxpZCB2M0V4dCBpbiB2MyBDUlQpCi1kZXBlbmRzX29uOk1CRURUTFNfUlNBX0M6TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOk1CRURUTFNfUlNBX0M6UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHg1MDlwYXJzZV9jcnQ6IjMwODFiOTMwODFhM2EwMDMwMjAxMDI4MjA0ZGVhZGJlZWYzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAzMDBjMzEwYTMwMDgwNjAwMTMwNDU0NjU3Mzc0MzAxYzE3MGMzMDM5MzAzMTMwMzEzMDMwMzAzMDMwMzAxNzBjMzAzOTMxMzIzMzMxMzIzMzM1MzkzNTM5MzAwYzMxMGEzMDA4MDYwMDEzMDQ1NDY1NzM3NDMwMmEzMDBkMDYwOTJBODY0ODg2RjcwRDAxMDEwMTA1MDAwMzE5MDAzMDE2MDIxMGZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMDIwMmZmZmZhMzIxMzAxZjMwMWQwNjAzNTUxZDExMDQxNjMwMTQ4MjA4NjY2ZjZmMmU3NDY1NzM3NDgyMDg2MjYxNzIyZTc0NjU3Mzc0MzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMDMwMjAwZmYiOiJjZXJ0LiB2ZXJzaW9uICAgICBcOiAzXG5zZXJpYWwgbnVtYmVyICAgICBcOiBERVw6QURcOkJFXDpFRlxuaXNzdWVyIG5hbWUgICAgICAgXDogPz89VGVzdFxuc3ViamVjdCBuYW1lICAgICAgXDogPz89VGVzdFxuaXNzdWVkICBvbiAgICAgICAgXDogMjAwOS0wMS0wMSAwMFw6MDBcOjAwXG5leHBpcmVzIG9uICAgICAgICBcOiAyMDA5LTEyLTMxIDIzXDo1OVw6NTlcbnNpZ25lZCB1c2luZyAgICAgIFw6IFJTQSB3aXRoIFNIQS0yNTZcblJTQSBrZXkgc2l6ZSAgICAgIFw6IDEyOCBiaXRzXG5zdWJqZWN0IGFsdCBuYW1lICBcOlxuICAgIGROU05hbWUgXDogZm9vLnRlc3RcbiAgICBkTlNOYW1lIFw6IGJhci50ZXN0XG4iOjAKIAogWDUwOSBDUlQgQVNOMSAoVEJTLCB2YWxpZCB2M0V4dCBpbiB2MSBDUlQpCi1kZXBlbmRzX29uOk1CRURUTFNfUlNBX0M6TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOk1CRURUTFNfUlNBX0M6UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHg1MDlwYXJzZV9jcnQ6IjMwODFiOTMwODFhM2EwMDMwMjAxMDA4MjA0ZGVhZGJlZWYzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAzMDBjMzEwYTMwMDgwNjAwMTMwNDU0NjU3Mzc0MzAxYzE3MGMzMDM5MzAzMTMwMzEzMDMwMzAzMDMwMzAxNzBjMzAzOTMxMzIzMzMxMzIzMzM1MzkzNTM5MzAwYzMxMGEzMDA4MDYwMDEzMDQ1NDY1NzM3NDMwMmEzMDBkMDYwOTJBODY0ODg2RjcwRDAxMDEwMTA1MDAwMzE5MDAzMDE2MDIxMGZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMDIwMmZmZmZhMzIxMzAxZjMwMWQwNjAzNTUxZDExMDQxNjMwMTQ4MjA4NjY2ZjZmMmU3NDY1NzM3NDgyMDg2MjYxNzIyZTc0NjU3Mzc0MzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMDMwMjAwZmYiOiIiOk1CRURUTFNfRVJSX1g1MDlfSU5WQUxJRF9GT1JNQVQgKyBNQkVEVExTX0VSUl9BU04xX0xFTkdUSF9NSVNNQVRDSAogCiBYNTA5IENSVCBBU04xIChUQlMsIHZhbGlkIHYzRXh0IGluIHYyIENSVCkKLWRlcGVuZHNfb246TUJFRFRMU19SU0FfQzpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246TUJFRFRMU19SU0FfQzpQU0FfV0FOVF9BTEdfU0hBXzI1NgogeDUwOXBhcnNlX2NydDoiMzA4MWI5MzA4MWEzYTAwMzAyMDEwMTgyMDRkZWFkYmVlZjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDMwMGMzMTBhMzAwODA2MDAxMzA0NTQ2NTczNzQzMDFjMTcwYzMwMzkzMDMxMzAzMTMwMzAzMDMwMzAzMDE3MGMzMDM5MzEzMjMzMzEzMjMzMzUzOTM1MzkzMDBjMzEwYTMwMDgwNjAwMTMwNDU0NjU3Mzc0MzAyYTMwMGQwNjA5MkE4NjQ4ODZGNzBEMDEwMTAxMDUwMDAzMTkwMDMwMTYwMjEwZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYwMjAyZmZmZmEzMjEzMDFmMzAxZDA2MDM1NTFkMTEwNDE2MzAxNDgyMDg2NjZmNmYyZTc0NjU3Mzc0ODIwODYyNjE3MjJlNzQ2NTczNzQzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAwMzAyMDBmZiI6IiI6TUJFRFRMU19FUlJfWDUwOV9JTlZBTElEX0ZPUk1BVCArIE1CRURUTFNfRVJSX0FTTjFfTEVOR1RIX01JU01BVENICiAKIFg1MDkgQ1JUIEFTTjEgKFRCUywgdmFsaWQgU3ViamVjdElELCB2YWxpZCBJc3N1ZXJJRCwgaW52IHYzRXh0LCBTdWJqZWN0QWx0TmFtZSByZXBlYXRlZCBvdXRzaWRlIEV4dGVuc2lvbnMsIGludiBTdWJqZWN0QWx0TmFtZXMgdGFnKQpAQCAtMjI3MCwxMTcgKzIyNzAsMTE3IEBACiB4NTA5cGFyc2VfY3J0OiIzMDgyMDM3MjMwODIwMjVhYTAwMzAyMDEwMjAyMDExMTMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTA1MDUwMDMwM2IzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMTEzMDBmMDYwMzU1MDQwYTEzMDg1MDZmNmM2MTcyNTM1MzRjMzExOTMwMTcwNjAzNTUwNDAzMTMxMDUwNmY2YzYxNzI1MzUzNGMyMDU0NjU3Mzc0MjA0MzQxMzAxZTE3MGQzMTMyMzAzNTMxMzAzMTMzMzIzMzM0MzE1YTE3MGQzMjMyMzAzNTMxMzEzMTMzMzIzMzM0MzE1YTMwM2EzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNGU0YzMxMTEzMDBmMDYwMzU1MDQwYTEzMDg1MDZmNmM2MTcyNTM1MzRjMzExODMwMTYwNjAzNTUwNDAzMTMwZjc3Nzc3NzJlNjU3ODYxNmQ3MDZjNjUyZTYzNmY2ZDMwODIwMTIyMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDM4MjAxMGYwMDMwODIwMTBhMDI4MjAxMDEwMGI5M2M0YWM1YzhhMzhlOTAxN2E0OWU1MmFhNzE3NTI2NjE4MGU3YzdiNTZkOGNmZmFhYjY0MTI2YjdiZTExYWQ1YzczMTYwYzY0MTE0ODA0ZmZkNmUxM2IwNWRiODliYmIzOTcwOWQ1MWMxNGRkNjg4NzM5YjAzZDcxY2JlMjc2ZDAxYWQ4MTgyZDgwMWI1NGY2ZTU0NDlhZjFjYmFmNjEyZWRmNDkwZDlkMDliN2VkYjFmZDNjZmQzY2ZhMjRjZjVkYmY3Y2U0NTNlNzI1YjVlYTQ0MjJlOTI2ZDNlYTIwOTQ5ZWU2NjE2N2JhMmUwNzY3MGIwMzJmYTIwOWVkZjAzMzhmMGJjZTEwZWY2N2E0YzYwOGRhYzFlZGMyM2ZkNzRhZGQxNTNkZjk1ZTFjODE2MDQ2M2ViNWIzM2QyZmE2ZGU0NzFjYmM5MmFlZWJkZjI3NmIxNjU2YjdkY2VjZDE1NTU3YTU2ZWVjNzUyNWY1Yjc3YmRmYWJkMjNhNWE5MTk4N2Q5NzE3MGIxMzBhYTc2YjRhOGJjMTQ3MzBmYjNhZjg0MTA0ZDVjMWRmYjgxZGJmN2IwMWE1NjVhMmUwMWUzNmI3YTY1Y2NjMzA1YWY4Y2Q2ZmNkZjExOTYyMjVjYTAxZTMzNTdmZmEyMGY1ZGNmZDY5YjI2YTAwN2QxN2Y3MDIwMzAxMDAwMWEzODE4MTMwN2YzMDA5MDYwMzU1MWQxMzA0MDIzMDAwMzAxZDA2MDM1NTFkMGUwNDE2MDQxNDdkZTQ5YzZiZTZmOTcxN2Q0NmQyMTIzZGFkNmIxZGZkYzJhYTc4NGMzMDFmMDYwMzU1MWQyMzA0MTgzMDE2ODAxNGI0NWFlNGE1YjNkZWQyNTJmNmI5ZDVhNjk1MGZlYjNlYmNjN2ZkZmYzMDMyMDYwMzU1MWQxMTA0MmIzMDI5YzIwYjY1Nzg2MTZkNzA2YzY1MmU2MzZmNmQ4MjBiNjU3ODYxNmQ3MDZjNjUyZTZlNjU3NDgyMGQyYTJlNjU3ODYxNmQ3MDZjNjUyZTZmNzI2NzMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTA1MDUwMDAzODIwMTAxMDA0ZjA5Y2I3YWQ1ZWVmNWVmNjIwZGRjN2JhMjg1ZDY4Y2NhOTViNDZiZGExMTViOTIwMDc1MTNiOWNhMGJjZWVhZmJjMzFmZTIzZjdmMjE3NDc5ZTJlNmJjZGEwNmU1MmY2ZmY2NTVjNjczMzljZjQ4YmMwZDJmMGNkMjdhMDZjMzRhNGNkOTQ4NWRhMGQwNzM4OWU0ZDQ4NTFkOTY5YTBlNTc5OWM2NmYxZDIxMjcxZjhkMDUyOWU4NDBhZTgyMzk2OGMzOTcwN2NmM2M5MzRjMWFkZjJmYTZhNDU1NDg3ZjdjOGMxYWM5MjJkYTI0Y2Q5MjM5YzY4YWVjYjA4ZGY1Njk4MjY3Y2IwNGVlZGU1MzQxOTZjMTI3ZGMyZmZlMzNmYWQzMGViOGQ0MzJhOTg0Mjg1M2E1ZjBkMTg5ZDVhMjk4ZTcxNjkxYmI5Y2MwNDE4ZThjNThhY2ZmZTNkZDJlN2FhYmIwYjk3MTc2YWQwZjI3MzNmN2E5MjlkM2MwNzZjMGJmMDY0MDdjMGVkNWE0N2M4YWUyMzI2ZTE2YWVkYTY0MWZiMDU1N2NkYmRkZjFhNGJhNDQ3Y2IzOTk1OGQyMzQ2ZTAwZWE5NzZjMTQzYWYyMTAxZTBhYTI0OTEwNzYwMWY0ZjJjODE4ZmRjYzYzNDYxMjhiMDkxYmYxOTRlNiI6IiI6TUJFRFRMU19FUlJfWDUwOV9JTlZBTElEX0VYVEVOU0lPTlMgKyBNQkVEVExTX0VSUl9BU04xX1VORVhQRUNURURfVEFHCiAKIFg1MDkgQ1JUIEFTTjEgKFNpZ25hdHVyZUFsZ29yaXRobSBtaXNzaW5nKQotZGVwZW5kc19vbjpNQkVEVExTX1JTQV9DOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpNQkVEVExTX1JTQV9DOlBTQV9XQU5UX0FMR19TSEFfMjU2CiB4NTA5cGFyc2VfY3J0OiIzMDgxYWEzMDgxYTdhMDAzMDIwMTAyODIwNGRlYWRiZWVmMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMzAwYzMxMGEzMDA4MDYwMDEzMDQ1NDY1NzM3NDMwMWMxNzBjMzAzOTMwMzEzMDMxMzAzMDMwMzAzMDMwMTcwYzMwMzkzMTMyMzMzMTMyMzMzNTM5MzUzOTMwMGMzMTBhMzAwODA2MDAxMzA0NTQ2NTczNzQzMDJhMzAwZDA2MDkyQTg2NDg4NkY3MEQwMTAxMDEwNTAwMDMxOTAwMzAxNjAyMTBmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjAyMDJmZmZmYTEwMGEyMDBhMzIxMzAxZjMwMWQwNjAzNTUxZDExMDQxNjMwMTQ4MjA4NjY2ZjZmMmU3NDY1NzM3NDgyMDg2MjYxNzIyZTc0NjU3Mzc0IjoiIjpNQkVEVExTX0VSUl9YNTA5X0lOVkFMSURfQUxHICsgTUJFRFRMU19FUlJfQVNOMV9PVVRfT0ZfREFUQQogCiBYNTA5IENSVCBBU04xIChpbnYgU2lnbmF0dXJlQWxnb3JpdGhtLCBiYWQgdGFnKQotZGVwZW5kc19vbjpNQkVEVExTX1JTQV9DOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpNQkVEVExTX1JTQV9DOlBTQV9XQU5UX0FMR19TSEFfMjU2CiB4NTA5cGFyc2VfY3J0OiIzMDgxYWMzMDgxYTdhMDAzMDIwMTAyODIwNGRlYWRiZWVmMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMzAwYzMxMGEzMDA4MDYwMDEzMDQ1NDY1NzM3NDMwMWMxNzBjMzAzOTMwMzEzMDMxMzAzMDMwMzAzMDMwMTcwYzMwMzkzMTMyMzMzMTMyMzMzNTM5MzUzOTMwMGMzMTBhMzAwODA2MDAxMzA0NTQ2NTczNzQzMDJhMzAwZDA2MDkyQTg2NDg4NkY3MEQwMTAxMDEwNTAwMDMxOTAwMzAxNjAyMTBmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjAyMDJmZmZmYTEwMGEyMDBhMzIxMzAxZjMwMWQwNjAzNTUxZDExMDQxNjMwMTQ4MjA4NjY2ZjZmMmU3NDY1NzM3NDgyMDg2MjYxNzIyZTc0NjU3Mzc0MDUwMCI6IiI6TUJFRFRMU19FUlJfWDUwOV9JTlZBTElEX0FMRyArIE1CRURUTFNfRVJSX0FTTjFfVU5FWFBFQ1RFRF9UQUcKIAogWDUwOSBDUlQgQVNOMSAoaW52IFNpZ25hdHVyZUFsZ29yaXRobSwgbGVuZ3RoIG1pc3NpbmcpCi1kZXBlbmRzX29uOk1CRURUTFNfUlNBX0M6TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOk1CRURUTFNfUlNBX0M6UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHg1MDlwYXJzZV9jcnQ6IjMwODFhYjMwODFhN2EwMDMwMjAxMDI4MjA0ZGVhZGJlZWYzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAzMDBjMzEwYTMwMDgwNjAwMTMwNDU0NjU3Mzc0MzAxYzE3MGMzMDM5MzAzMTMwMzEzMDMwMzAzMDMwMzAxNzBjMzAzOTMxMzIzMzMxMzIzMzM1MzkzNTM5MzAwYzMxMGEzMDA4MDYwMDEzMDQ1NDY1NzM3NDMwMmEzMDBkMDYwOTJBODY0ODg2RjcwRDAxMDEwMTA1MDAwMzE5MDAzMDE2MDIxMGZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMDIwMmZmZmZhMTAwYTIwMGEzMjEzMDFmMzAxZDA2MDM1NTFkMTEwNDE2MzAxNDgyMDg2NjZmNmYyZTc0NjU3Mzc0ODIwODYyNjE3MjJlNzQ2NTczNzQzMCI6IiI6TUJFRFRMU19FUlJfWDUwOV9JTlZBTElEX0FMRyArIE1CRURUTFNfRVJSX0FTTjFfT1VUX09GX0RBVEEKIAogWDUwOSBDUlQgQVNOMSAoaW52IFNpZ25hdHVyZUFsZ29yaXRobSwgaW52IGxlbmd0aCBlbmNvZGluZykKLWRlcGVuZHNfb246TUJFRFRMU19SU0FfQzpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246TUJFRFRMU19SU0FfQzpQU0FfV0FOVF9BTEdfU0hBXzI1NgogeDUwOXBhcnNlX2NydDoiMzA4MWFjMzA4MWE3YTAwMzAyMDEwMjgyMDRkZWFkYmVlZjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDMwMGMzMTBhMzAwODA2MDAxMzA0NTQ2NTczNzQzMDFjMTcwYzMwMzkzMDMxMzAzMTMwMzAzMDMwMzAzMDE3MGMzMDM5MzEzMjMzMzEzMjMzMzUzOTM1MzkzMDBjMzEwYTMwMDgwNjAwMTMwNDU0NjU3Mzc0MzAyYTMwMGQwNjA5MkE4NjQ4ODZGNzBEMDEwMTAxMDUwMDAzMTkwMDMwMTYwMjEwZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYwMjAyZmZmZmExMDBhMjAwYTMyMTMwMWYzMDFkMDYwMzU1MWQxMTA0MTYzMDE0ODIwODY2NmY2ZjJlNzQ2NTczNzQ4MjA4NjI2MTcyMmU3NDY1NzM3NDMwODUiOiIiOk1CRURUTFNfRVJSX1g1MDlfSU5WQUxJRF9BTEcgKyBNQkVEVExTX0VSUl9BU04xX0lOVkFMSURfTEVOR1RICiAKIFg1MDkgQ1JUIEFTTjEgKGludiBTaWduYXR1cmVBbGdvcml0aG0sIGxlbmd0aCBvdXQgb2YgYm91bmRzKQotZGVwZW5kc19vbjpNQkVEVExTX1JTQV9DOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpNQkVEVExTX1JTQV9DOlBTQV9XQU5UX0FMR19TSEFfMjU2CiB4NTA5cGFyc2VfY3J0OiIzMDgxYWMzMDgxYTdhMDAzMDIwMTAyODIwNGRlYWRiZWVmMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMzAwYzMxMGEzMDA4MDYwMDEzMDQ1NDY1NzM3NDMwMWMxNzBjMzAzOTMwMzEzMDMxMzAzMDMwMzAzMDMwMTcwYzMwMzkzMTMyMzMzMTMyMzMzNTM5MzUzOTMwMGMzMTBhMzAwODA2MDAxMzA0NTQ2NTczNzQzMDJhMzAwZDA2MDkyQTg2NDg4NkY3MEQwMTAxMDEwNTAwMDMxOTAwMzAxNjAyMTBmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjAyMDJmZmZmYTEwMGEyMDBhMzIxMzAxZjMwMWQwNjAzNTUxZDExMDQxNjMwMTQ4MjA4NjY2ZjZmMmU3NDY1NzM3NDgyMDg2MjYxNzIyZTc0NjU3Mzc0MzAwMSI6IiI6TUJFRFRMU19FUlJfWDUwOV9JTlZBTElEX0FMRyArIE1CRURUTFNfRVJSX0FTTjFfT1VUX09GX0RBVEEKIAogWDUwOSBDUlQgQVNOMSAoaW52IFNpZ25hdHVyZUFsZ29yaXRobSwgbm90IHRoZSBzYW1lIGFzIFNpZ25hdHVyZUFsZ29yaXRobSBpbiBUQlMpCi1kZXBlbmRzX29uOk1CRURUTFNfUlNBX0M6TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOk1CRURUTFNfUlNBX0M6UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHg1MDlwYXJzZV9jcnQ6IjMwODFiZDMwODFhN2EwMDMwMjAxMDI4MjA0ZGVhZGJlZWYzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAzMDBjMzEwYTMwMDgwNjAwMTMwNDU0NjU3Mzc0MzAxYzE3MGMzMDM5MzAzMTMwMzEzMDMwMzAzMDMwMzAxNzBjMzAzOTMxMzIzMzMxMzIzMzM1MzkzNTM5MzAwYzMxMGEzMDA4MDYwMDEzMDQ1NDY1NzM3NDMwMmEzMDBkMDYwOTJBODY0ODg2RjcwRDAxMDEwMTA1MDAwMzE5MDAzMDE2MDIxMGZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMDIwMmZmZmZhMTAwYTIwMGEzMjEzMDFmMzAxZDA2MDM1NTFkMTEwNDE2MzAxNDgyMDg2NjZmNmYyZTc0NjU3Mzc0ODIwODYyNjE3MjJlNzQ2NTczNzQzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYTA1MDAwMzAyMDBmZiI6IiI6TUJFRFRMU19FUlJfWDUwOV9TSUdfTUlTTUFUQ0gKIAogWDUwOSBDUlQgQVNOMSAoU2lnbmF0dXJlIG1pc3NpbmcpCi1kZXBlbmRzX29uOk1CRURUTFNfUlNBX0M6TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOk1CRURUTFNfUlNBX0M6UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHg1MDlwYXJzZV9jcnQ6IjMwODFiOTMwODFhN2EwMDMwMjAxMDI4MjA0ZGVhZGJlZWYzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAzMDBjMzEwYTMwMDgwNjAwMTMwNDU0NjU3Mzc0MzAxYzE3MGMzMDM5MzAzMTMwMzEzMDMwMzAzMDMwMzAxNzBjMzAzOTMxMzIzMzMxMzIzMzM1MzkzNTM5MzAwYzMxMGEzMDA4MDYwMDEzMDQ1NDY1NzM3NDMwMmEzMDBkMDYwOTJBODY0ODg2RjcwRDAxMDEwMTA1MDAwMzE5MDAzMDE2MDIxMGZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMDIwMmZmZmZhMTAwYTIwMGEzMjEzMDFmMzAxZDA2MDM1NTFkMTEwNDE2MzAxNDgyMDg2NjZmNmYyZTc0NjU3Mzc0ODIwODYyNjE3MjJlNzQ2NTczNzQzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAiOiIiOk1CRURUTFNfRVJSX1g1MDlfSU5WQUxJRF9TSUdOQVRVUkUgKyBNQkVEVExTX0VSUl9BU04xX09VVF9PRl9EQVRBCiAKIFg1MDkgQ1JUIEFTTjEgKGludiBTaWduYXR1cmUsIGJhZCB0YWcpCi1kZXBlbmRzX29uOk1CRURUTFNfUlNBX0M6TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOk1CRURUTFNfUlNBX0M6UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHg1MDlwYXJzZV9jcnQ6IjMwODFiYjMwODFhN2EwMDMwMjAxMDI4MjA0ZGVhZGJlZWYzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAzMDBjMzEwYTMwMDgwNjAwMTMwNDU0NjU3Mzc0MzAxYzE3MGMzMDM5MzAzMTMwMzEzMDMwMzAzMDMwMzAxNzBjMzAzOTMxMzIzMzMxMzIzMzM1MzkzNTM5MzAwYzMxMGEzMDA4MDYwMDEzMDQ1NDY1NzM3NDMwMmEzMDBkMDYwOTJBODY0ODg2RjcwRDAxMDEwMTA1MDAwMzE5MDAzMDE2MDIxMGZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMDIwMmZmZmZhMTAwYTIwMGEzMjEzMDFmMzAxZDA2MDM1NTFkMTEwNDE2MzAxNDgyMDg2NjZmNmYyZTc0NjU3Mzc0ODIwODYyNjE3MjJlNzQ2NTczNzQzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAwNTAwIjoiIjpNQkVEVExTX0VSUl9YNTA5X0lOVkFMSURfU0lHTkFUVVJFICsgTUJFRFRMU19FUlJfQVNOMV9VTkVYUEVDVEVEX1RBRwogCiBYNTA5IENSVCBBU04xIChpbnYgU2lnbmF0dXJlLCBsZW5ndGggbWlzc2luZykKLWRlcGVuZHNfb246TUJFRFRMU19SU0FfQzpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246TUJFRFRMU19SU0FfQzpQU0FfV0FOVF9BTEdfU0hBXzI1NgogeDUwOXBhcnNlX2NydDoiMzA4MWJhMzA4MWE3YTAwMzAyMDEwMjgyMDRkZWFkYmVlZjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDMwMGMzMTBhMzAwODA2MDAxMzA0NTQ2NTczNzQzMDFjMTcwYzMwMzkzMDMxMzAzMTMwMzAzMDMwMzAzMDE3MGMzMDM5MzEzMjMzMzEzMjMzMzUzOTM1MzkzMDBjMzEwYTMwMDgwNjAwMTMwNDU0NjU3Mzc0MzAyYTMwMGQwNjA5MkE4NjQ4ODZGNzBEMDEwMTAxMDUwMDAzMTkwMDMwMTYwMjEwZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYwMjAyZmZmZmExMDBhMjAwYTMyMTMwMWYzMDFkMDYwMzU1MWQxMTA0MTYzMDE0ODIwODY2NmY2ZjJlNzQ2NTczNzQ4MjA4NjI2MTcyMmU3NDY1NzM3NDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDAzIjoiIjpNQkVEVExTX0VSUl9YNTA5X0lOVkFMSURfU0lHTkFUVVJFICsgTUJFRFRMU19FUlJfQVNOMV9PVVRfT0ZfREFUQQogCiBYNTA5IENSVCBBU04xIChpbnYgU2lnbmF0dXJlLCBpbnYgbGVuZ3RoIGVuY29kaW5nKQotZGVwZW5kc19vbjpNQkVEVExTX1JTQV9DOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpNQkVEVExTX1JTQV9DOlBTQV9XQU5UX0FMR19TSEFfMjU2CiB4NTA5cGFyc2VfY3J0OiIzMDgxYmIzMDgxYTdhMDAzMDIwMTAyODIwNGRlYWRiZWVmMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMzAwYzMxMGEzMDA4MDYwMDEzMDQ1NDY1NzM3NDMwMWMxNzBjMzAzOTMwMzEzMDMxMzAzMDMwMzAzMDMwMTcwYzMwMzkzMTMyMzMzMTMyMzMzNTM5MzUzOTMwMGMzMTBhMzAwODA2MDAxMzA0NTQ2NTczNzQzMDJhMzAwZDA2MDkyQTg2NDg4NkY3MEQwMTAxMDEwNTAwMDMxOTAwMzAxNjAyMTBmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjAyMDJmZmZmYTEwMGEyMDBhMzIxMzAxZjMwMWQwNjAzNTUxZDExMDQxNjMwMTQ4MjA4NjY2ZjZmMmU3NDY1NzM3NDgyMDg2MjYxNzIyZTc0NjU3Mzc0MzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMDM4NSI6IiI6TUJFRFRMU19FUlJfWDUwOV9JTlZBTElEX1NJR05BVFVSRSArIE1CRURUTFNfRVJSX0FTTjFfSU5WQUxJRF9MRU5HVEgKIAogWDUwOSBDUlQgQVNOMSAoaW52IFNpZ25hdHVyZSwgbGVuZ3RoIG91dCBvZiBib3VuZHMpCi1kZXBlbmRzX29uOk1CRURUTFNfUlNBX0M6TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOk1CRURUTFNfUlNBX0M6UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHg1MDlwYXJzZV9jcnQ6IjMwODFiYjMwODFhN2EwMDMwMjAxMDI4MjA0ZGVhZGJlZWYzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAzMDBjMzEwYTMwMDgwNjAwMTMwNDU0NjU3Mzc0MzAxYzE3MGMzMDM5MzAzMTMwMzEzMDMwMzAzMDMwMzAxNzBjMzAzOTMxMzIzMzMxMzIzMzM1MzkzNTM5MzAwYzMxMGEzMDA4MDYwMDEzMDQ1NDY1NzM3NDMwMmEzMDBkMDYwOTJBODY0ODg2RjcwRDAxMDEwMTA1MDAwMzE5MDAzMDE2MDIxMGZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMDIwMmZmZmZhMTAwYTIwMGEzMjEzMDFmMzAxZDA2MDM1NTFkMTEwNDE2MzAxNDgyMDg2NjZmNmYyZTc0NjU3Mzc0ODIwODYyNjE3MjJlNzQ2NTczNzQzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAwMzAxIjoiIjpNQkVEVExTX0VSUl9YNTA5X0lOVkFMSURfU0lHTkFUVVJFICsgTUJFRFRMU19FUlJfQVNOMV9PVVRfT0ZfREFUQQogCiBYNTA5IENSVCBBU04xIChpbnYgU2lnbmF0dXJlLCBpbnYgZGF0YSAjMSkKLWRlcGVuZHNfb246TUJFRFRMU19SU0FfQzpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246TUJFRFRMU19SU0FfQzpQU0FfV0FOVF9BTEdfU0hBXzI1NgogIyBzaWduYXR1cmUgPSBiaXQgc3RyaW5nIHdpdGggaW52YWxpZCBlbmNvZGluZyAobWlzc2luZyBudW1iZXIgb2YgdW51c2VkIGJpdHMpCiB4NTA5cGFyc2VfY3J0OiIzMDgxYmIzMDgxYTdhMDAzMDIwMTAyODIwNGRlYWRiZWVmMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMzAwYzMxMGEzMDA4MDYwMDEzMDQ1NDY1NzM3NDMwMWMxNzBjMzAzOTMwMzEzMDMxMzAzMDMwMzAzMDMwMTcwYzMwMzkzMTMyMzMzMTMyMzMzNTM5MzUzOTMwMGMzMTBhMzAwODA2MDAxMzA0NTQ2NTczNzQzMDJhMzAwZDA2MDkyQTg2NDg4NkY3MEQwMTAxMDEwNTAwMDMxOTAwMzAxNjAyMTBmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjAyMDJmZmZmYTEwMGEyMDBhMzIxMzAxZjMwMWQwNjAzNTUxZDExMDQxNjMwMTQ4MjA4NjY2ZjZmMmU3NDY1NzM3NDgyMDg2MjYxNzIyZTc0NjU3Mzc0MzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMDMwMCI6IiI6TUJFRFRMU19FUlJfWDUwOV9JTlZBTElEX1NJR05BVFVSRSArIE1CRURUTFNfRVJSX0FTTjFfSU5WQUxJRF9EQVRBCiAKIFg1MDkgQ1JUIEFTTjEgKGludiBTaWduYXR1cmUsIGludiBkYXRhICMyKQotZGVwZW5kc19vbjpNQkVEVExTX1JTQV9DOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpNQkVEVExTX1JTQV9DOlBTQV9XQU5UX0FMR19TSEFfMjU2CiAjIHNpZ25hdHVyZSA9IGJpdCBzdHJpbmcgd2l0aCBpbnZhbGlkIGVuY29kaW5nIChudW1iZXIgb2YgdW51c2VkIGJpdHMgdG9vIGxhcmdlKQogeDUwOXBhcnNlX2NydDoiMzA4MWJjMzA4MWE3YTAwMzAyMDEwMjgyMDRkZWFkYmVlZjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDMwMGMzMTBhMzAwODA2MDAxMzA0NTQ2NTczNzQzMDFjMTcwYzMwMzkzMDMxMzAzMTMwMzAzMDMwMzAzMDE3MGMzMDM5MzEzMjMzMzEzMjMzMzUzOTM1MzkzMDBjMzEwYTMwMDgwNjAwMTMwNDU0NjU3Mzc0MzAyYTMwMGQwNjA5MkE4NjQ4ODZGNzBEMDEwMTAxMDUwMDAzMTkwMDMwMTYwMjEwZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYwMjAyZmZmZmExMDBhMjAwYTMyMTMwMWYzMDFkMDYwMzU1MWQxMTA0MTYzMDE0ODIwODY2NmY2ZjJlNzQ2NTczNzQ4MjA4NjI2MTcyMmU3NDY1NzM3NDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDAzMDEwOCI6IiI6TUJFRFRMU19FUlJfWDUwOV9JTlZBTElEX1NJR05BVFVSRSArIE1CRURUTFNfRVJSX0FTTjFfSU5WQUxJRF9EQVRBCiAKIFg1MDkgQ1JUIEFTTjEgKGVtcHR5IFNpZ25hdHVyZSkKLWRlcGVuZHNfb246TUJFRFRMU19SU0FfQzpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246TUJFRFRMU19SU0FfQzpQU0FfV0FOVF9BTEdfU0hBXzI1NgogIyBzaWduYXR1cmUgPSBlbXB0eSBiaXQgc3RyaW5nIGluIERFUiBlbmNvZGluZwogeDUwOXBhcnNlX2NydDoiMzA4MWJjMzA4MWE3YTAwMzAyMDEwMjgyMDRkZWFkYmVlZjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDMwMGMzMTBhMzAwODA2MDAxMzA0NTQ2NTczNzQzMDFjMTcwYzMwMzkzMDMxMzAzMTMwMzAzMDMwMzAzMDE3MGMzMDM5MzEzMjMzMzEzMjMzMzUzOTM1MzkzMDBjMzEwYTMwMDgwNjAwMTMwNDU0NjU3Mzc0MzAyYTMwMGQwNjA5MkE4NjQ4ODZGNzBEMDEwMTAxMDUwMDAzMTkwMDMwMTYwMjEwZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYwMjAyZmZmZmExMDBhMjAwYTMyMTMwMWYzMDFkMDYwMzU1MWQxMTA0MTYzMDE0ODIwODY2NmY2ZjJlNzQ2NTczNzQ4MjA4NjI2MTcyMmU3NDY1NzM3NDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDAzMDEwMCI6ImNlcnQuIHZlcnNpb24gICAgIFw6IDNcbnNlcmlhbCBudW1iZXIgICAgIFw6IERFXDpBRFw6QkVcOkVGXG5pc3N1ZXIgbmFtZSAgICAgICBcOiA/Pz1UZXN0XG5zdWJqZWN0IG5hbWUgICAgICBcOiA/Pz1UZXN0XG5pc3N1ZWQgIG9uICAgICAgICBcOiAyMDA5LTAxLTAxIDAwXDowMFw6MDBcbmV4cGlyZXMgb24gICAgICAgIFw6IDIwMDktMTItMzEgMjNcOjU5XDo1OVxuc2lnbmVkIHVzaW5nICAgICAgXDogUlNBIHdpdGggU0hBLTI1NlxuUlNBIGtleSBzaXplICAgICAgXDogMTI4IGJpdHNcbnN1YmplY3QgYWx0IG5hbWUgIFw6XG4gICAgZE5TTmFtZSBcOiBmb28udGVzdFxuICAgIGROU05hbWUgXDogYmFyLnRlc3RcbiI6MAogCiBYNTA5IENSVCBBU04xIChkdW1teSAyNC1iaXQgU2lnbmF0dXJlKQotZGVwZW5kc19vbjpNQkVEVExTX1JTQV9DOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpNQkVEVExTX1JTQV9DOlBTQV9XQU5UX0FMR19TSEFfMjU2CiAjIHNpZ25hdHVyZSA9IGJpdCBzdHJpbmcgIjAxMTAwMTEwMDExMDExMTEwMTEwMTExMSIKIHg1MDlwYXJzZV9jcnQ6IjMwODFiZjMwODFhN2EwMDMwMjAxMDI4MjA0ZGVhZGJlZWYzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAzMDBjMzEwYTMwMDgwNjAwMTMwNDU0NjU3Mzc0MzAxYzE3MGMzMDM5MzAzMTMwMzEzMDMwMzAzMDMwMzAxNzBjMzAzOTMxMzIzMzMxMzIzMzM1MzkzNTM5MzAwYzMxMGEzMDA4MDYwMDEzMDQ1NDY1NzM3NDMwMmEzMDBkMDYwOTJBODY0ODg2RjcwRDAxMDEwMTA1MDAwMzE5MDAzMDE2MDIxMGZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMDIwMmZmZmZhMTAwYTIwMGEzMjEzMDFmMzAxZDA2MDM1NTFkMTEwNDE2MzAxNDgyMDg2NjZmNmYyZTc0NjU3Mzc0ODIwODYyNjE3MjJlNzQ2NTczNzQzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAwMzA0MDA2NjZmNmYiOiJjZXJ0LiB2ZXJzaW9uICAgICBcOiAzXG5zZXJpYWwgbnVtYmVyICAgICBcOiBERVw6QURcOkJFXDpFRlxuaXNzdWVyIG5hbWUgICAgICAgXDogPz89VGVzdFxuc3ViamVjdCBuYW1lICAgICAgXDogPz89VGVzdFxuaXNzdWVkICBvbiAgICAgICAgXDogMjAwOS0wMS0wMSAwMFw6MDBcOjAwXG5leHBpcmVzIG9uICAgICAgICBcOiAyMDA5LTEyLTMxIDIzXDo1OVw6NTlcbnNpZ25lZCB1c2luZyAgICAgIFw6IFJTQSB3aXRoIFNIQS0yNTZcblJTQSBrZXkgc2l6ZSAgICAgIFw6IDEyOCBiaXRzXG5zdWJqZWN0IGFsdCBuYW1lICBcOlxuICAgIGROU05hbWUgXDogZm9vLnRlc3RcbiAgICBkTlNOYW1lIFw6IGJhci50ZXN0XG4iOjAKIAogIyBUaGUgQVNOLjEgbW9kdWxlIHJlamVjdHMgbm9uLW9jdGV0LWFsaWduZWQgYml0IHN0cmluZ3MuCiBYNTA5IENSVCBBU04xIChpbnYgU2lnbmF0dXJlOiBub3Qgb2N0ZXQtYWxpZ25lZCkKLWRlcGVuZHNfb246TUJFRFRMU19SU0FfQzpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246TUJFRFRMU19SU0FfQzpQU0FfV0FOVF9BTEdfU0hBXzI1NgogIyBzaWduYXR1cmUgPSBiaXQgc3RyaW5nICIwMTEwMDExMDAxMTAxMTExMDExMDExMSIKIHg1MDlwYXJzZV9jcnQ6IjMwODFiZjMwODFhN2EwMDMwMjAxMDI4MjA0ZGVhZGJlZWYzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAzMDBjMzEwYTMwMDgwNjAwMTMwNDU0NjU3Mzc0MzAxYzE3MGMzMDM5MzAzMTMwMzEzMDMwMzAzMDMwMzAxNzBjMzAzOTMxMzIzMzMxMzIzMzM1MzkzNTM5MzAwYzMxMGEzMDA4MDYwMDEzMDQ1NDY1NzM3NDMwMmEzMDBkMDYwOTJBODY0ODg2RjcwRDAxMDEwMTA1MDAwMzE5MDAzMDE2MDIxMGZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMDIwMmZmZmZhMTAwYTIwMGEzMjEzMDFmMzAxZDA2MDM1NTFkMTEwNDE2MzAxNDgyMDg2NjZmNmYyZTc0NjU3Mzc0ODIwODYyNjE3MjJlNzQ2NTczNzQzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAwMzA0MDE2NjZmNmUiOiIiOk1CRURUTFNfRVJSX1g1MDlfSU5WQUxJRF9TSUdOQVRVUkUgKyBNQkVEVExTX0VSUl9BU04xX0lOVkFMSURfREFUQQogCiBYNTA5IENSVCBBU04xIChpbnYgU2lnbmF0dXJlLCBsZW5ndGggbWlzbWF0Y2gpCi1kZXBlbmRzX29uOk1CRURUTFNfUlNBX0M6TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOk1CRURUTFNfUlNBX0M6UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHg1MDlwYXJzZV9jcnQ6IjMwODFiZTMwODFhN2EwMDMwMjAxMDI4MjA0ZGVhZGJlZWYzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAzMDBjMzEwYTMwMDgwNjAwMTMwNDU0NjU3Mzc0MzAxYzE3MGMzMDM5MzAzMTMwMzEzMDMwMzAzMDMwMzAxNzBjMzAzOTMxMzIzMzMxMzIzMzM1MzkzNTM5MzAwYzMxMGEzMDA4MDYwMDEzMDQ1NDY1NzM3NDMwMmEzMDBkMDYwOTJBODY0ODg2RjcwRDAxMDEwMTA1MDAwMzE5MDAzMDE2MDIxMGZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMDIwMmZmZmZhMTAwYTIwMGEzMjEzMDFmMzAxZDA2MDM1NTFkMTEwNDE2MzAxNDgyMDg2NjZmNmYyZTc0NjU3Mzc0ODIwODYyNjE3MjJlNzQ2NTczNzQzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAwMzAyMDBmZjAwIjoiIjpNQkVEVExTX0VSUl9YNTA5X0lOVkFMSURfRk9STUFUICsgTUJFRFRMU19FUlJfQVNOMV9MRU5HVEhfTUlTTUFUQ0gKIAogWDUwOSBDUlQgQVNOMSAod2VsbC1mb3JtZWQpCi1kZXBlbmRzX29uOk1CRURUTFNfUlNBX0M6TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOk1CRURUTFNfUlNBX0M6UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHg1MDlwYXJzZV9jcnQ6IjMwODE5NjMwODE4MGEwMDMwMjAxMDA4MjA0ZGVhZGJlZWYzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAzMDBjMzEwYTMwMDgwNjAwMTMwNDU0NjU3Mzc0MzAxYzE3MGMzMDM5MzAzMTMwMzEzMDMwMzAzMDMwMzAxNzBjMzAzOTMxMzIzMzMxMzIzMzM1MzkzNTM5MzAwYzMxMGEzMDA4MDYwMDEzMDQ1NDY1NzM3NDMwMmEzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwMzE5MDAzMDE2MDIxMGZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMDIwMmZmZmYzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAwMzAyMDBmZiI6ImNlcnQuIHZlcnNpb24gICAgIFw6IDFcbnNlcmlhbCBudW1iZXIgICAgIFw6IERFXDpBRFw6QkVcOkVGXG5pc3N1ZXIgbmFtZSAgICAgICBcOiA/XD89VGVzdFxuc3ViamVjdCBuYW1lICAgICAgXDogP1w/PVRlc3Rcbmlzc3VlZCAgb24gICAgICAgIFw6IDIwMDktMDEtMDEgMDBcOjAwXDowMFxuZXhwaXJlcyBvbiAgICAgICAgXDogMjAwOS0xMi0zMSAyM1w6NTlcOjU5XG5zaWduZWQgdXNpbmcgICAgICBcOiBSU0Egd2l0aCBTSEEtMjU2XG5SU0Ega2V5IHNpemUgICAgICBcOiAxMjggYml0c1xuIjowCiAKIFg1MDkgQ1JUIEFTTjEgKEdlbmVyYWxpemVkVGltZSBpbiBub3RCZWZvcmUsIFVUQ1RpbWUgaW4gbm90QWZ0ZXIpCi1kZXBlbmRzX29uOk1CRURUTFNfUlNBX0M6TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOk1CRURUTFNfUlNBX0M6UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHg1MDlwYXJzZV9jcnQ6IjMwODE5ODMwODE4MmEwMDMwMjAxMDA4MjA0ZGVhZGJlZWYzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAzMDBjMzEwYTMwMDgwNjAwMTMwNDU0NjU3Mzc0MzAxZTE4MGUzMjMwMzEzMDMwMzEzMDMxMzAzMDMwMzAzMDMwMTcwYzMwMzkzMTMyMzMzMTMyMzMzNTM5MzUzOTMwMGMzMTBhMzAwODA2MDAxMzA0NTQ2NTczNzQzMDJhMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDMxOTAwMzAxNjAyMTBmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjAyMDJmZmZmMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMDMwMjAwZmYiOiJjZXJ0LiB2ZXJzaW9uICAgICBcOiAxXG5zZXJpYWwgbnVtYmVyICAgICBcOiBERVw6QURcOkJFXDpFRlxuaXNzdWVyIG5hbWUgICAgICAgXDogP1w/PVRlc3RcbnN1YmplY3QgbmFtZSAgICAgIFw6ID9cPz1UZXN0XG5pc3N1ZWQgIG9uICAgICAgICBcOiAyMDEwLTAxLTAxIDAwXDowMFw6MDBcbmV4cGlyZXMgb24gICAgICAgIFw6IDIwMDktMTItMzEgMjNcOjU5XDo1OVxuc2lnbmVkIHVzaW5nICAgICAgXDogUlNBIHdpdGggU0hBLTI1NlxuUlNBIGtleSBzaXplICAgICAgXDogMTI4IGJpdHNcbiI6MAogCiBYNTA5IENSVCBBU04xIChVVENUaW1lIGluIG5vdEJlZm9yZSwgR2VuZXJhbGl6ZWRUaW1lIGluIG5vdEFmdGVyKQotZGVwZW5kc19vbjpNQkVEVExTX1JTQV9DOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpNQkVEVExTX1JTQV9DOlBTQV9XQU5UX0FMR19TSEFfMjU2CiB4NTA5cGFyc2VfY3J0OiIzMDgxOTgzMDgxODJhMDAzMDIwMTAwODIwNGRlYWRiZWVmMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMzAwYzMxMGEzMDA4MDYwMDEzMDQ1NDY1NzM3NDMwMWUxNzBjMzAzOTMxMzIzMzMxMzIzMzM1MzkzNTM5MTgwZTMyMzAzMTMwMzAzMTMwMzEzMDMwMzAzMDMwMzAzMDBjMzEwYTMwMDgwNjAwMTMwNDU0NjU3Mzc0MzAyYTMwMGQwNjA5MkE4NjQ4ODZGNzBEMDEwMTAxMDUwMDAzMTkwMDMwMTYwMjEwZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYwMjAyZmZmZjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDAzMDIwMGZmIjoiY2VydC4gdmVyc2lvbiAgICAgXDogMVxuc2VyaWFsIG51bWJlciAgICAgXDogREVcOkFEXDpCRVw6RUZcbmlzc3VlciBuYW1lICAgICAgIFw6ID9cPz1UZXN0XG5zdWJqZWN0IG5hbWUgICAgICBcOiA/XD89VGVzdFxuaXNzdWVkICBvbiAgICAgICAgXDogMjAwOS0xMi0zMSAyM1w6NTlcOjU5XG5leHBpcmVzIG9uICAgICAgICBcOiAyMDEwLTAxLTAxIDAwXDowMFw6MDBcbnNpZ25lZCB1c2luZyAgICAgIFw6IFJTQSB3aXRoIFNIQS0yNTZcblJTQSBrZXkgc2l6ZSAgICAgIFw6IDEyOCBiaXRzXG4iOjAKIAogWDUwOSBDUlQgQVNOMSAoTmFtZSB3aXRoIFg1MjAgQ04pCi1kZXBlbmRzX29uOk1CRURUTFNfUlNBX0M6TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOk1CRURUTFNfUlNBX0M6UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHg1MDlwYXJzZV9jcnQ6IjMwODE5OTMwODE4M2EwMDMwMjAxMDA4MjA0ZGVhZGJlZWYzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAzMDBmMzEwZDMwMGIwNjAzNTUwNDAzMTMwNDU0NjU3Mzc0MzAxYzE3MGMzMDM5MzAzMTMwMzEzMDMwMzAzMDMwMzAxNzBjMzAzOTMxMzIzMzMxMzIzMzM1MzkzNTM5MzAwYzMxMGEzMDA4MDYwMDEzMDQ1NDY1NzM3NDMwMmEzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwMzE5MDAzMDE2MDIxMGZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMDIwMmZmZmYzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAwMzAyMDBmZiI6ImNlcnQuIHZlcnNpb24gICAgIFw6IDFcbnNlcmlhbCBudW1iZXIgICAgIFw6IERFXDpBRFw6QkVcOkVGXG5pc3N1ZXIgbmFtZSAgICAgICBcOiBDTj1UZXN0XG5zdWJqZWN0IG5hbWUgICAgICBcOiA/XD89VGVzdFxuaXNzdWVkICBvbiAgICAgICAgXDogMjAwOS0wMS0wMSAwMFw6MDBcOjAwXG5leHBpcmVzIG9uICAgICAgICBcOiAyMDA5LTEyLTMxIDIzXDo1OVw6NTlcbnNpZ25lZCB1c2luZyAgICAgIFw6IFJTQSB3aXRoIFNIQS0yNTZcblJTQSBrZXkgc2l6ZSAgICAgIFw6IDEyOCBiaXRzXG4iOjAKIAogWDUwOSBDUlQgQVNOMSAoTmFtZSB3aXRoIFg1MjAgQykKLWRlcGVuZHNfb246TUJFRFRMU19SU0FfQzpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246TUJFRFRMU19SU0FfQzpQU0FfV0FOVF9BTEdfU0hBXzI1NgogeDUwOXBhcnNlX2NydDoiMzA4MTk5MzA4MTgzYTAwMzAyMDEwMDgyMDRkZWFkYmVlZjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDMwMGYzMTBkMzAwYjA2MDM1NTA0MDYxMzA0NTQ2NTczNzQzMDFjMTcwYzMwMzkzMDMxMzAzMTMwMzAzMDMwMzAzMDE3MGMzMDM5MzEzMjMzMzEzMjMzMzUzOTM1MzkzMDBjMzEwYTMwMDgwNjAwMTMwNDU0NjU3Mzc0MzAyYTMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDAzMTkwMDMwMTYwMjEwZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYwMjAyZmZmZjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDAzMDIwMGZmIjoiY2VydC4gdmVyc2lvbiAgICAgXDogMVxuc2VyaWFsIG51bWJlciAgICAgXDogREVcOkFEXDpCRVw6RUZcbmlzc3VlciBuYW1lICAgICAgIFw6IEM9VGVzdFxuc3ViamVjdCBuYW1lICAgICAgXDogP1w/PVRlc3Rcbmlzc3VlZCAgb24gICAgICAgIFw6IDIwMDktMDEtMDEgMDBcOjAwXDowMFxuZXhwaXJlcyBvbiAgICAgICAgXDogMjAwOS0xMi0zMSAyM1w6NTlcOjU5XG5zaWduZWQgdXNpbmcgICAgICBcOiBSU0Egd2l0aCBTSEEtMjU2XG5SU0Ega2V5IHNpemUgICAgICBcOiAxMjggYml0c1xuIjowCiAKIFg1MDkgQ1JUIEFTTjEgKE5hbWUgd2l0aCBYNTIwIEwpCi1kZXBlbmRzX29uOk1CRURUTFNfUlNBX0M6TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOk1CRURUTFNfUlNBX0M6UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHg1MDlwYXJzZV9jcnQ6IjMwODE5OTMwODE4M2EwMDMwMjAxMDA4MjA0ZGVhZGJlZWYzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAzMDBmMzEwZDMwMGIwNjAzNTUwNDA3MTMwNDU0NjU3Mzc0MzAxYzE3MGMzMDM5MzAzMTMwMzEzMDMwMzAzMDMwMzAxNzBjMzAzOTMxMzIzMzMxMzIzMzM1MzkzNTM5MzAwYzMxMGEzMDA4MDYwMDEzMDQ1NDY1NzM3NDMwMmEzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwMzE5MDAzMDE2MDIxMGZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMDIwMmZmZmYzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAwMzAyMDBmZiI6ImNlcnQuIHZlcnNpb24gICAgIFw6IDFcbnNlcmlhbCBudW1iZXIgICAgIFw6IERFXDpBRFw6QkVcOkVGXG5pc3N1ZXIgbmFtZSAgICAgICBcOiBMPVRlc3RcbnN1YmplY3QgbmFtZSAgICAgIFw6ID9cPz1UZXN0XG5pc3N1ZWQgIG9uICAgICAgICBcOiAyMDA5LTAxLTAxIDAwXDowMFw6MDBcbmV4cGlyZXMgb24gICAgICAgIFw6IDIwMDktMTItMzEgMjNcOjU5XDo1OVxuc2lnbmVkIHVzaW5nICAgICAgXDogUlNBIHdpdGggU0hBLTI1NlxuUlNBIGtleSBzaXplICAgICAgXDogMTI4IGJpdHNcbiI6MAogCiBYNTA5IENSVCBBU04xIChOYW1lIHdpdGggWDUyMCBTVCkKLWRlcGVuZHNfb246TUJFRFRMU19SU0FfQzpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246TUJFRFRMU19SU0FfQzpQU0FfV0FOVF9BTEdfU0hBXzI1NgogeDUwOXBhcnNlX2NydDoiMzA4MTk5MzA4MTgzYTAwMzAyMDEwMDgyMDRkZWFkYmVlZjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDMwMGYzMTBkMzAwYjA2MDM1NTA0MDgxMzA0NTQ2NTczNzQzMDFjMTcwYzMwMzkzMDMxMzAzMTMwMzAzMDMwMzAzMDE3MGMzMDM5MzEzMjMzMzEzMjMzMzUzOTM1MzkzMDBjMzEwYTMwMDgwNjAwMTMwNDU0NjU3Mzc0MzAyYTMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDAzMTkwMDMwMTYwMjEwZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYwMjAyZmZmZjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDAzMDIwMGZmIjoiY2VydC4gdmVyc2lvbiAgICAgXDogMVxuc2VyaWFsIG51bWJlciAgICAgXDogREVcOkFEXDpCRVw6RUZcbmlzc3VlciBuYW1lICAgICAgIFw6IFNUPVRlc3RcbnN1YmplY3QgbmFtZSAgICAgIFw6ID9cPz1UZXN0XG5pc3N1ZWQgIG9uICAgICAgICBcOiAyMDA5LTAxLTAxIDAwXDowMFw6MDBcbmV4cGlyZXMgb24gICAgICAgIFw6IDIwMDktMTItMzEgMjNcOjU5XDo1OVxuc2lnbmVkIHVzaW5nICAgICAgXDogUlNBIHdpdGggU0hBLTI1NlxuUlNBIGtleSBzaXplICAgICAgXDogMTI4IGJpdHNcbiI6MAogCiBYNTA5IENSVCBBU04xIChOYW1lIHdpdGggWDUyMCBPKQotZGVwZW5kc19vbjpNQkVEVExTX1JTQV9DOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpNQkVEVExTX1JTQV9DOlBTQV9XQU5UX0FMR19TSEFfMjU2CiB4NTA5cGFyc2VfY3J0OiIzMDgxOTkzMDgxODNhMDAzMDIwMTAwODIwNGRlYWRiZWVmMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMzAwZjMxMGQzMDBiMDYwMzU1MDQwYTEzMDQ1NDY1NzM3NDMwMWMxNzBjMzAzOTMwMzEzMDMxMzAzMDMwMzAzMDMwMTcwYzMwMzkzMTMyMzMzMTMyMzMzNTM5MzUzOTMwMGMzMTBhMzAwODA2MDAxMzA0NTQ2NTczNzQzMDJhMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDMxOTAwMzAxNjAyMTBmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjAyMDJmZmZmMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMDMwMjAwZmYiOiJjZXJ0LiB2ZXJzaW9uICAgICBcOiAxXG5zZXJpYWwgbnVtYmVyICAgICBcOiBERVw6QURcOkJFXDpFRlxuaXNzdWVyIG5hbWUgICAgICAgXDogTz1UZXN0XG5zdWJqZWN0IG5hbWUgICAgICBcOiA/XD89VGVzdFxuaXNzdWVkICBvbiAgICAgICAgXDogMjAwOS0wMS0wMSAwMFw6MDBcOjAwXG5leHBpcmVzIG9uICAgICAgICBcOiAyMDA5LTEyLTMxIDIzXDo1OVw6NTlcbnNpZ25lZCB1c2luZyAgICAgIFw6IFJTQSB3aXRoIFNIQS0yNTZcblJTQSBrZXkgc2l6ZSAgICAgIFw6IDEyOCBiaXRzXG4iOjAKIAogWDUwOSBDUlQgQVNOMSAoTmFtZSB3aXRoIFg1MjAgT1UpCi1kZXBlbmRzX29uOk1CRURUTFNfUlNBX0M6TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOk1CRURUTFNfUlNBX0M6UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHg1MDlwYXJzZV9jcnQ6IjMwODE5OTMwODE4M2EwMDMwMjAxMDA4MjA0ZGVhZGJlZWYzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAzMDBmMzEwZDMwMGIwNjAzNTUwNDBiMTMwNDU0NjU3Mzc0MzAxYzE3MGMzMDM5MzAzMTMwMzEzMDMwMzAzMDMwMzAxNzBjMzAzOTMxMzIzMzMxMzIzMzM1MzkzNTM5MzAwYzMxMGEzMDA4MDYwMDEzMDQ1NDY1NzM3NDMwMmEzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwMzE5MDAzMDE2MDIxMGZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMDIwMmZmZmYzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAwMzAyMDBmZiI6ImNlcnQuIHZlcnNpb24gICAgIFw6IDFcbnNlcmlhbCBudW1iZXIgICAgIFw6IERFXDpBRFw6QkVcOkVGXG5pc3N1ZXIgbmFtZSAgICAgICBcOiBPVT1UZXN0XG5zdWJqZWN0IG5hbWUgICAgICBcOiA/XD89VGVzdFxuaXNzdWVkICBvbiAgICAgICAgXDogMjAwOS0wMS0wMSAwMFw6MDBcOjAwXG5leHBpcmVzIG9uICAgICAgICBcOiAyMDA5LTEyLTMxIDIzXDo1OVw6NTlcbnNpZ25lZCB1c2luZyAgICAgIFw6IFJTQSB3aXRoIFNIQS0yNTZcblJTQSBrZXkgc2l6ZSAgICAgIFw6IDEyOCBiaXRzXG4iOjAKIAogWDUwOSBDUlQgQVNOMSAoTmFtZSB3aXRoIHVua25vd24gWDUyMCBwYXJ0KQotZGVwZW5kc19vbjpNQkVEVExTX1JTQV9DOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpNQkVEVExTX1JTQV9DOlBTQV9XQU5UX0FMR19TSEFfMjU2CiB4NTA5cGFyc2VfY3J0OiIzMDgxOTkzMDgxODNhMDAzMDIwMTAwODIwNGRlYWRiZWVmMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMzAwZjMxMGQzMDBiMDYwMzU1MDRkZTEzMDQ1NDY1NzM3NDMwMWMxNzBjMzAzOTMwMzEzMDMxMzAzMDMwMzAzMDMwMTcwYzMwMzkzMTMyMzMzMTMyMzMzNTM5MzUzOTMwMGMzMTBhMzAwODA2MDAxMzA0NTQ2NTczNzQzMDJhMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDMxOTAwMzAxNjAyMTBmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjAyMDJmZmZmMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMDMwMjAwZmYiOiJjZXJ0LiB2ZXJzaW9uICAgICBcOiAxXG5zZXJpYWwgbnVtYmVyICAgICBcOiBERVw6QURcOkJFXDpFRlxuaXNzdWVyIG5hbWUgICAgICAgXDogP1w/PVRlc3RcbnN1YmplY3QgbmFtZSAgICAgIFw6ID9cPz1UZXN0XG5pc3N1ZWQgIG9uICAgICAgICBcOiAyMDA5LTAxLTAxIDAwXDowMFw6MDBcbmV4cGlyZXMgb24gICAgICAgIFw6IDIwMDktMTItMzEgMjNcOjU5XDo1OVxuc2lnbmVkIHVzaW5nICAgICAgXDogUlNBIHdpdGggU0hBLTI1NlxuUlNBIGtleSBzaXplICAgICAgXDogMTI4IGJpdHNcbiI6MAogCiBYNTA5IENSVCBBU04xIChOYW1lIHdpdGggY29tcG9zaXRlIFJETikKQEAgLTIzODgsMTEgKzIzODgsMTEgQEAKIHg1MDlwYXJzZV9jcnQ6IjMwODIwMjlmMzA4MjAyMDhhMDAzMDIwMTAyMDIwNDRjMjBlM2JkMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDUwNTAwMzA1NjMxMGIzMDA5MDYwMzU1MDQwNjEzMDI1NTUzMzEwYjMwMDkwNjAzNTUwNDA4MGMwMjQzNDEzMTIxMzAxZjA2MDM1NTA0MGEwYzE4NDk2ZTc0NjU3MjZlNjU3NDIwNTc2OTY0Njc2OTc0NzMyMDUwNzQ3OTIwNGM3NDY0MzExNzMwMTUwNjAzNTUwNDAzMGMwZTQ2NzI2MTZlNmI2NTZlNjM2NTcyNzQyMDQzNDEzMDFlMTcwZDMxMzMzMDM4MzAzMjMxMzUzMTM0MzMzNzVhMTcwZDMxMzUzMDM4MzEzNzMwMzUzNTM0MzMzMTVhMzA4MWQxMzEwYjMwMDkwNjAzNTUwNDA2MTMwMjU1NTMzMTEzMzAxMTA2MDM1NTA0MDgxMzBhNTc2MTczNjg2OTZlNjc3NDZmNmUzMTEzMzAxMTA2MGIyYjA2MDEwNDAxODIzNzNjMDIwMTAzMTMwMjU1NTMzMTE5MzAxNzA2MGIyYjA2MDEwNDAxODIzNzNjMDIwMTAyMTMwODQ0NjU2YzYxNzc2MTcyNjUzMTFhMzAxODA2MDM1NTA0MGExMzExNDE3NTc0Njg2ZjcyNjk3YTY1MmU0ZTY1NzQyMDRjNGM0MzMxMWQzMDFiMDYwMzU1MDQwZjEzMTQ1MDcyNjk3NjYxNzQ2NTIwNGY3MjY3NjE2ZTY5N2E2MTc0Njk2ZjZlMzEyYTMwMGUwNjAzNTUwNDA1MTMwNzM0MzMzNjM5MzEzOTMxMzAxODA2MDM1NTA0MDMxMzExNzc3Nzc3MmU2MTc1NzQ2ODZmNzI2OTdhNjUyZTZlNjU3NDMxMTYzMDE0MDYwMzU1MDQwNzEzMGQ1MzYxNmUyMDQ2NzI2MTZlNjM2OTczNjM2ZjMwODE5ZjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDAzODE4ZDAwMzA4MTg5MDI4MTgxMDBkODg1YzYyZTIwOWI2YWMwMDVjNjRmMGJjZmRhYWMxZjJiNjdhMTg4MDJmNzViMDg4NTFmZjkzM2RlZWQ4ODhiN2I2OGE2MmZjYWJkYjIxZDRhODkxNGJlY2ZlYWFhMWI3ZTA4YTA5ZmZhZjk5MTY1NjM1ODZkYzk1ZTI4NzcyNjJiMGI1ZjVlYzI3ZWI0ZDc1NGFhNmZhY2QxZDM5ZDI1YjM4YTIzNzI4OTFiYWNkZDNlOTE5Zjc5MWVkMjU3MDRlODkyMGUzODBlNTYyM2EzOGU2YTIzOTM1OTc4YTNhZWM3YThlNzYxZTIxMWQ0MmVmZmEyNzEzZTQ0ZTdkZTBiMDIwMzAxMDAwMTMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTA1MDUwMDAzODE4MTAwMDkyZjc0MjRkM2Y2ZGE0Yjg1NTM4MjlkOTU4ZWQxOTgwYjkyNzBiNDJjMGQzZDU4MzM1MDlhMjhjNjZiYjIwN2RmOWYzYzUxZDEyMjA2NWUwMGI4N2MwOGMyNzMwZDI3NDVmZTFjMjc5ZDE2ZmFlNGQ1M2I0YmY1YmRmYTM2MzFmY2VlYjJlNzcyYjZiMDhhM2VjYTVhMmUyYzY4N2FlZmQyM2I0YjczYmY3N2FjNjA5OTcxMTM0MmNmMDcwYjM1YzZmNjEzMzNhN2NiZjYxM2Q4ZGQ0YmQ3M2U5ZGYzNGJjZDQyODRiMGI0ZGY1N2MzNmM0NTA2MTNmMTFlNWRhYyI6ImNlcnQuIHZlcnNpb24gICAgIFw6IDNcbnNlcmlhbCBudW1iZXIgICAgIFw6IDRDXDoyMFw6RTNcOkJEXG5pc3N1ZXIgbmFtZSAgICAgICBcOiBDPVVTLCBTVD1DQSwgTz1JbnRlcm5ldCBXaWRnaXRzIFB0eSBMdGQsIENOPUZyYW5rZW5jZXJ0IENBXG5zdWJqZWN0IG5hbWUgICAgICBcOiBDPVVTLCBTVD1XYXNoaW5ndG9uLCAxLjMuNi4xLjQuMS4zMTEuNjAuMi4xLjM9IzEzMDI1NTUzLCAxLjMuNi4xLjQuMS4zMTEuNjAuMi4xLjI9IzEzMDg0NDY1NkM2MTc3NjE3MjY1LCBPPUF1dGhvcml6ZS5OZXQgTExDLCAyLjUuNC4xNT0jMTMxNDUwNzI2OTc2NjE3NDY1MjA0RjcyNjc2MTZFNjk3QTYxNzQ2OTZGNkUsIHNlcmlhbE51bWJlcj00MzY5MTkxICsgQ049d3d3LmF1dGhvcml6ZS5uZXQsIEw9U2FuIEZyYW5jaXNjb1xuaXNzdWVkICBvbiAgICAgICAgXDogMjAxMy0wOC0wMiAxNVw6MTRcOjM3XG5leHBpcmVzIG9uICAgICAgICBcOiAyMDE1LTA4LTE3IDA1XDo1NFw6MzFcbnNpZ25lZCB1c2luZyAgICAgIFw6IFJTQSB3aXRoIFNIQTFcblJTQSBrZXkgc2l6ZSAgICAgIFw6IDEwMjQgYml0c1xuIjowCiAKIFg1MDkgQ1JUIEFTTjEgKE5hbWUgd2l0aCBQS0NTOSBlbWFpbCkKLWRlcGVuZHNfb246TUJFRFRMU19SU0FfQzpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246TUJFRFRMU19SU0FfQzpQU0FfV0FOVF9BTEdfU0hBXzI1NgogeDUwOXBhcnNlX2NydDoiMzA4MTlmMzA4MTg5YTAwMzAyMDEwMDgyMDRkZWFkYmVlZjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDMwMTUzMTEzMzAxMTA2MDkyYTg2NDg4NmY3MGQwMTA5MDExMzA0NTQ2NTczNzQzMDFjMTcwYzMwMzkzMDMxMzAzMTMwMzAzMDMwMzAzMDE3MGMzMDM5MzEzMjMzMzEzMjMzMzUzOTM1MzkzMDBjMzEwYTMwMDgwNjAwMTMwNDU0NjU3Mzc0MzAyYTMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDAzMTkwMDMwMTYwMjEwZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYwMjAyZmZmZjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDAzMDIwMGZmIjoiY2VydC4gdmVyc2lvbiAgICAgXDogMVxuc2VyaWFsIG51bWJlciAgICAgXDogREVcOkFEXDpCRVw6RUZcbmlzc3VlciBuYW1lICAgICAgIFw6IGVtYWlsQWRkcmVzcz1UZXN0XG5zdWJqZWN0IG5hbWUgICAgICBcOiA/XD89VGVzdFxuaXNzdWVkICBvbiAgICAgICAgXDogMjAwOS0wMS0wMSAwMFw6MDBcOjAwXG5leHBpcmVzIG9uICAgICAgICBcOiAyMDA5LTEyLTMxIDIzXDo1OVw6NTlcbnNpZ25lZCB1c2luZyAgICAgIFw6IFJTQSB3aXRoIFNIQS0yNTZcblJTQSBrZXkgc2l6ZSAgICAgIFw6IDEyOCBiaXRzXG4iOjAKIAogWDUwOSBDUlQgQVNOMSAoTmFtZSB3aXRoIHVua25vd24gUEtDUzkgcGFydCkKLWRlcGVuZHNfb246TUJFRFRMU19SU0FfQzpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246TUJFRFRMU19SU0FfQzpQU0FfV0FOVF9BTEdfU0hBXzI1NgogeDUwOXBhcnNlX2NydDoiMzA4MTlmMzA4MTg5YTAwMzAyMDEwMDgyMDRkZWFkYmVlZjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDMwMTUzMTEzMzAxMTA2MDkyYTg2NDg4NmY3MGQwMTA5YWIxMzA0NTQ2NTczNzQzMDFjMTcwYzMwMzkzMDMxMzAzMTMwMzAzMDMwMzAzMDE3MGMzMDM5MzEzMjMzMzEzMjMzMzUzOTM1MzkzMDBjMzEwYTMwMDgwNjAwMTMwNDU0NjU3Mzc0MzAyYTMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDAzMTkwMDMwMTYwMjEwZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYwMjAyZmZmZjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDAzMDIwMGZmIjoiY2VydC4gdmVyc2lvbiAgICAgXDogMVxuc2VyaWFsIG51bWJlciAgICAgXDogREVcOkFEXDpCRVw6RUZcbmlzc3VlciBuYW1lICAgICAgIFw6ID9cPz1UZXN0XG5zdWJqZWN0IG5hbWUgICAgICBcOiA/XD89VGVzdFxuaXNzdWVkICBvbiAgICAgICAgXDogMjAwOS0wMS0wMSAwMFw6MDBcOjAwXG5leHBpcmVzIG9uICAgICAgICBcOiAyMDA5LTEyLTMxIDIzXDo1OVw6NTlcbnNpZ25lZCB1c2luZyAgICAgIFw6IFJTQSB3aXRoIFNIQS0yNTZcblJTQSBrZXkgc2l6ZSAgICAgIFw6IDEyOCBiaXRzXG4iOjAKIAogWDUwOSBDUlQgQVNOMSAoRUNEU0Egc2lnbmF0dXJlLCBSU0Ega2V5KQpAQCAtMjQwMCw0NyArMjQwMCw0NyBAQAogeDUwOXBhcnNlX2NydDoiMzA4MWU2MzA4MTllMDIwMTAzMzAwOTA2MDcyYTg2NDhjZTNkMDQwMTMwMGYzMTBkMzAwYjA2MDM1NTA0MDMxMzA0NTQ2NTczNzQzMDFlMTcwZDMxMzMzMDM3MzEzMDMwMzkzNDM2MzEzODVhMTcwZDMyMzMzMDM3MzAzODMwMzkzNDM2MzEzODVhMzAwZjMxMGQzMDBiMDYwMzU1MDQwMzEzMDQ1NDY1NzM3NDMwNGMzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwMzNiMDAzMDM4MDIzMTAwZThmNTQ2MDYxZDNiNDliYzJmNmI3NTI0YjdlYTRkNzNhOGQ1MjkzZWU4YzY0ZDk0MDdiNzBiNWQxNmJhZWJjMzJiODIwNTU5MWVhYjRlMWViNTdlOTI0MTg4MzcwMTI1MDIwMzAxMDAwMTMwMDkwNjA3MmE4NjQ4Y2UzZDA0MDEwMzM4MDAzMDM1MDIxODZlMTgyMDlhZmJlZDE0YTBkOWE3OTZlZmNhZDY4ODkxZTNjY2Q1Zjc1ODE1YzgzMzAyMTkwMGU5MmI0ZmQ0NjBiMTk5NDY5MzI0M2I5ZmZhZDU0NzI5ZGU4NjUzODFiZGE0MWQyNSI6ImNlcnQuIHZlcnNpb24gICAgIFw6IDFcbnNlcmlhbCBudW1iZXIgICAgIFw6IDAzXG5pc3N1ZXIgbmFtZSAgICAgICBcOiBDTj1UZXN0XG5zdWJqZWN0IG5hbWUgICAgICBcOiBDTj1UZXN0XG5pc3N1ZWQgIG9uICAgICAgICBcOiAyMDEzLTA3LTEwIDA5XDo0Nlw6MThcbmV4cGlyZXMgb24gICAgICAgIFw6IDIwMjMtMDctMDggMDlcOjQ2XDoxOFxuc2lnbmVkIHVzaW5nICAgICAgXDogRUNEU0Egd2l0aCBTSEExXG5SU0Ega2V5IHNpemUgICAgICBcOiAzODQgYml0c1xuIjowCiAKIFg1MDkgQ1JUIEFTTjEgKEVDRFNBIHNpZ25hdHVyZSwgRUMga2V5KQotZGVwZW5kc19vbjpNQkVEVExTX1BLX0NBTl9FQ0RTQV9TT01FOk1CRURUTFNfRUNQX0hBVkVfU0VDUDE5MlIxOk1CRURUTFNfTURfQ0FOX1NIQTEKK2RlcGVuZHNfb246TUJFRFRMU19QS19DQU5fRUNEU0FfU09NRTpQU0FfV0FOVF9FQ0NfU0VDUF9SMV8xOTI6TUJFRFRMU19NRF9DQU5fU0hBMQogeDUwOXBhcnNlX2NydDoiMzA4MWViMzA4MWEzMDIwOTAwZjQxNTM0NjYyZWM3ZTkxMjMwMDkwNjA3MmE4NjQ4Y2UzZDA0MDEzMDBmMzEwZDMwMGIwNjAzNTUwNDAzMTMwNDU0NjU3Mzc0MzAxZTE3MGQzMTMzMzAzNzMxMzAzMDM5MzQzMDMxMzk1YTE3MGQzMjMzMzAzNzMwMzgzMDM5MzQzMDMxMzk1YTMwMGYzMTBkMzAwYjA2MDM1NTA0MDMxMzA0NTQ2NTczNzQzMDQ5MzAxMzA2MDcyYTg2NDhjZTNkMDIwMTA2MDgyYTg2NDhjZTNkMDMwMTAxMDMzMjAwMDQyMTM3OTY5ZmFiZDRlMzcwNjI0YTBlMWEzM2UzNzljYWI5NTBjY2UwMGVmOGMzYzNlMmFkYWViNzI3MWM4ZjA3NjU5ZDY1ZDNkNzc3ZGNmMjE2MTQzNjNhZTRiNmU2MTczMDA5MDYwNzJhODY0OGNlM2QwNDAxMDMzODAwMzAzNTAyMTg1OGNjMGY5NTc5NDZmZTZhMzAzZDkyODg1YTQ1NmFhNzRjNzQzYzdiNzA4Y2JkMzcwMjE5MDBmZTI5M2NhYzIxYWYzNTJkMTZiODJlYjhlYTU0ZTk0MTBiM2FiYWFkZDlmMDVkZDYiOiJjZXJ0LiB2ZXJzaW9uICAgICBcOiAxXG5zZXJpYWwgbnVtYmVyICAgICBcOiBGNFw6MTVcOjM0XDo2Nlw6MkVcOkM3XDpFOVw6MTJcbmlzc3VlciBuYW1lICAgICAgIFw6IENOPVRlc3RcbnN1YmplY3QgbmFtZSAgICAgIFw6IENOPVRlc3Rcbmlzc3VlZCAgb24gICAgICAgIFw6IDIwMTMtMDctMTAgMDlcOjQwXDoxOVxuZXhwaXJlcyBvbiAgICAgICAgXDogMjAyMy0wNy0wOCAwOVw6NDBcOjE5XG5zaWduZWQgdXNpbmcgICAgICBcOiBFQ0RTQSB3aXRoIFNIQTFcbkVDIGtleSBzaXplICAgICAgIFw6IDE5MiBiaXRzXG4iOjAKIAogWDUwOSBDUlQgQVNOMSAoUlNBIHNpZ25hdHVyZSwgRUMga2V5KQotZGVwZW5kc19vbjpNQkVEVExTX1BLX0NBTl9FQ0RTQV9TT01FOk1CRURUTFNfRUNQX0hBVkVfU0VDUDE5MlIxOk1CRURUTFNfTURfQ0FOX1NIQTE6TUJFRFRMU19SU0FfQworZGVwZW5kc19vbjpNQkVEVExTX1BLX0NBTl9FQ0RTQV9TT01FOlBTQV9XQU5UX0VDQ19TRUNQX1IxXzE5MjpNQkVEVExTX01EX0NBTl9TSEExOk1CRURUTFNfUlNBX0MKIHg1MDlwYXJzZV9jcnQ6IjMwODFlNDMwODE5ZjAyMDEwNDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTA1MDUwMDMwMGYzMTBkMzAwYjA2MDM1NTA0MDMxMzA0NTQ2NTczNzQzMDFlMTcwZDMxMzMzMDM3MzEzMDMxMzUzMDMyMzMzNzVhMTcwZDMyMzMzMDM3MzAzODMxMzUzMDMyMzMzNzVhMzAwZjMxMGQzMDBiMDYwMzU1MDQwMzEzMDQ1NDY1NzM3NDMwNDkzMDEzMDYwNzJhODY0OGNlM2QwMjAxMDYwODJhODY0OGNlM2QwMzAxMDEwMzMyMDAwNGU5NjI1NTFhMzI1YjIxYjUwY2Y2Yjk5MGUzM2Q0MzE4ZmQxNjY3NzEzMDcyNjM1N2ExOTZlM2VmZTcxMDdiY2I2YmRjNmQ5ZGIyYTRkZjdjOTY0YWNmZTgxNzk4NDMzZDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTA1MDUwMDAzMzEwMDFhNmMxOGNkMWU0NTc0NzRiMmQzOTEyNzQzZjQ0YjU3MTM0MWE3ODU5YTAxMjI3NzRhOGUxOWE2NzE2ODA4Nzg5MzY5NDlmOTA0YzkyNTViZGQ2ZmZmZGIzM2E3ZTZkOCI6ImNlcnQuIHZlcnNpb24gICAgIFw6IDFcbnNlcmlhbCBudW1iZXIgICAgIFw6IDA0XG5pc3N1ZXIgbmFtZSAgICAgICBcOiBDTj1UZXN0XG5zdWJqZWN0IG5hbWUgICAgICBcOiBDTj1UZXN0XG5pc3N1ZWQgIG9uICAgICAgICBcOiAyMDEzLTA3LTEwIDE1XDowMlw6MzdcbmV4cGlyZXMgb24gICAgICAgIFw6IDIwMjMtMDctMDggMTVcOjAyXDozN1xuc2lnbmVkIHVzaW5nICAgICAgXDogUlNBIHdpdGggU0hBMVxuRUMga2V5IHNpemUgICAgICAgXDogMTkyIGJpdHNcbiI6MAogCiBYNTA5IENSVCBBU04xIChVbnN1cHBvcnRlZCBjcml0aWNhbCBleHRlbnNpb24pCi1kZXBlbmRzX29uOk1CRURUTFNfUlNBX0M6TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOk1CRURUTFNfUlNBX0M6UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHg1MDlwYXJzZV9jcnQ6IjMwODIwMzM1MzA4MjAyMWRhMDAzMDIwMTAyMDIxMDRkM2ViYmI4YTg3MGY5Yzc4YzU1YThhN2UxMmZkNTE2MzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMzAxMDMxMGUzMDBjMDYwMzU1MDQwMzBjMDU2NDc1NmQ2ZDc5MzAxZTE3MGQzMjMwMzAzNDMyMzgzMTM3MzQzMjM0MzM1YTE3MGQzMjMwMzAzNjMyMzczMTM3MzQzMjM0MzM1YTMwMTAzMTBlMzAwYzA2MDM1NTA0MDMwYzA1NjQ3NTZkNmQ3OTMwODIwMTIyMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDM4MjAxMGYwMDMwODIwMTBhMDI4MjAxMDEwMGE1MWI3NWIzZjdkYTJkNjBlYTFiMGZjMDc3ZjBkYmIyYmJiNmZlMWI0NzQwMjgzNjhhZjhkYzI2NjQ2NzI4OTZlZmZmMTcxMDMzYjBhZWRlMGIzMjNhODlkNWM2ZGI0ZDUxNzQwNGJjOTdiNjUyNjRlNDFiOWU5ZTg2YTZmNDBhY2U2NTI0OThkNGIzYjg1OTU0NGQxYmFjZmQ3Zjg2MzI1NTAzZWVkMDQ2ZjUxNzQwNjU0NWMwZmZiNTU2MGY4MzQ0NmRlZGNlMGZjYWZjYzQxYWM4NDk1NDg4YTZhYTkxMmFlNDUxOTJlZjdlM2VmYTIwZDBmNzQwM2IwYmFhNjJjN2UyZTU0MDRjNjIwYzU3OTM2MjMxMzJhYTIwZjYyNGYwOGQ4OGZiZjA5ODVhZjM5NDMzZjVhMjRkMGI5MDhlNTIxOWQ4YmE2YTQwNGQzZWU4NDE4MjAzYjYyYTQwYzhlYjE4ODM3MzU0ZDUwMjgxYTZhMmJmNTAxMmU1MDVjNDE5NDgyNzg3YjdhODFlNTkzNTYxM2NlZWEwYzZkOTNlODZmNzYyODJiNmFhNDA2ZmIzYTE3OTZjNTZiMzJlOGEyMmFmYzNmN2EzYzlkYWE4ZjBlMjg0NmZmMGQ1MGFiZmM4NjJhNTJmNmNmMGFhZWNlNjA2NmM4NjAzNzZmM2VkMDIwMzAxMDAwMWEzODE4YTMwODE4NzMwMGMwNjAzNTUxZDEzMDQwNTMwMDMwMTAxZmYzMDEzMDYwMzU1MWQxMTAxMDFmZjA0MDkzMDA3ODIwNTY0NzU2ZDZkNzkzMDEyMDYwODJiMDYwMTA1MDUwNzAxMWYwMTAxZmYwNDAzMDQwMTAwMzAwZTA2MDM1NTFkMGYwMTAxZmYwNDA0MDMwMjAxODQzMDFkMDYwMzU1MWQwZTA0MTYwNDE0ZTZlNDUxZWM4ZDE5ZDk2NzdiMmQyNzJhOWQ3M2I5MzlmYTJkOTE1YTMwMWYwNjAzNTUxZDIzMDQxODMwMTY4MDE0ZTZlNDUxZWM4ZDE5ZDk2NzdiMmQyNzJhOWQ3M2I5MzlmYTJkOTE1YTMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDAzODIwMTAxMDA1NmQwNjA0N2I3ZjQ4NjgzZTIzNDdjYTcyNjk5N2Q5NzAwYjRmMmNmMWQ4YmMwZWYxN2FkZGFjODQ0NWQzOGZmZDdmODA3OTA1NWVhZDg3OGI2YTc0YzgzODRkMGUzMDE1MGM4OTkwYWE3NGY1OWNkYTZlYmNiNDk0NjVkODk5MWZmYTE2YTRjOTI3YTI2ZTQ2MzlkMTg3NWEzYWMzOTZjNzQ1NWM3ZWRhNDBkYmU2NjA1NGEwM2QyN2Y5NjFjMTVlODZiZDViMDZkYjZiMjY1NzI5NzdiY2RhOTM0NTNiNmI2YTg4ZWY5NmIzMTk5NmE3YmQxNzMyMzUyNWIzMzA1MGQyOGRlZWM5YzMzYTNmOTc2NWExMWZiOTlkMGUyMjJiZDM5YTZkYjNhNzg4NDc0YzljYTM0NzM3NzY4OGY4MzdkNDJmNTg0MTY2N2JmZmNiZTZiNDczZTZmMjI5ZjI4NmEwODI5OTYzZTU5MWE5OWFhN2Y2N2U5ZDIwYzM2Y2NkMmFjODRjYjg1YjdhOGIzMzk2YTZjYmU1OWE1NzNmZmZmNzI2ZjM3MzE5N2MyMzBkZTVjOTJhNTJjNWJjODdlMjljMjBiZGY2ZTg5NjA5NzY0YTYwYzY0OTAyMmFhYmQ3NjhmMzU1NzY2MWIwODNhZTAwZTZhZmM4YTViZjJlZCI6IiI6TUJFRFRMU19FUlJfWDUwOV9JTlZBTElEX0VYVEVOU0lPTlMgKyBNQkVEVExTX0VSUl9BU04xX1VORVhQRUNURURfVEFHCiAKIFg1MDkgQ1JUIEFTTjEgKFVuc3VwcG9ydGVkIGNyaXRpY2FsIGV4dGVuc2lvbiByZWNvZ25pemVkIGJ5IGNhbGxiYWNrKQotZGVwZW5kc19vbjpNQkVEVExTX1JTQV9DOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpNQkVEVExTX1JTQV9DOlBTQV9XQU5UX0FMR19TSEFfMjU2CiB4NTA5cGFyc2VfY3J0X2NiOiIzMDgyMDMzNTMwODIwMjFkYTAwMzAyMDEwMjAyMTA0ZDNlYmJiOGE4NzBmOWM3OGM1NWE4YTdlMTJmZDUxNjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDMwMTAzMTBlMzAwYzA2MDM1NTA0MDMwYzA1NjQ3NTZkNmQ3OTMwMWUxNzBkMzIzMDMwMzQzMjM4MzEzNzM0MzIzNDMzNWExNzBkMzIzMDMwMzYzMjM3MzEzNzM0MzIzNDMzNWEzMDEwMzEwZTMwMGMwNjAzNTUwNDAzMGMwNTY0NzU2ZDZkNzkzMDgyMDEyMjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDAzODIwMTBmMDAzMDgyMDEwYTAyODIwMTAxMDBhNTFiNzViM2Y3ZGEyZDYwZWExYjBmYzA3N2YwZGJiMmJiYjZmZTFiNDc0MDI4MzY4YWY4ZGMyNjY0NjcyODk2ZWZmZjE3MTAzM2IwYWVkZTBiMzIzYTg5ZDVjNmRiNGQ1MTc0MDRiYzk3YjY1MjY0ZTQxYjllOWU4NmE2ZjQwYWNlNjUyNDk4ZDRiM2I4NTk1NDRkMWJhY2ZkN2Y4NjMyNTUwM2VlZDA0NmY1MTc0MDY1NDVjMGZmYjU1NjBmODM0NDZkZWRjZTBmY2FmY2M0MWFjODQ5NTQ4OGE2YWE5MTJhZTQ1MTkyZWY3ZTNlZmEyMGQwZjc0MDNiMGJhYTYyYzdlMmU1NDA0YzYyMGM1NzkzNjIzMTMyYWEyMGY2MjRmMDhkODhmYmYwOTg1YWYzOTQzM2Y1YTI0ZDBiOTA4ZTUyMTlkOGJhNmE0MDRkM2VlODQxODIwM2I2MmE0MGM4ZWIxODgzNzM1NGQ1MDI4MWE2YTJiZjUwMTJlNTA1YzQxOTQ4Mjc4N2I3YTgxZTU5MzU2MTNjZWVhMGM2ZDkzZTg2Zjc2MjgyYjZhYTQwNmZiM2ExNzk2YzU2YjMyZThhMjJhZmMzZjdhM2M5ZGFhOGYwZTI4NDZmZjBkNTBhYmZjODYyYTUyZjZjZjBhYWVjZTYwNjZjODYwMzc2ZjNlZDAyMDMwMTAwMDFhMzgxOGEzMDgxODczMDBjMDYwMzU1MWQxMzA0MDUzMDAzMDEwMWZmMzAxMzA2MDM1NTFkMTEwMTAxZmYwNDA5MzAwNzgyMDU2NDc1NmQ2ZDc5MzAxMjA2MDgyYjA2MDEwNTA1MDcwMTFmMDEwMWZmMDQwMzA0MDEwMDMwMGUwNjAzNTUxZDBmMDEwMWZmMDQwNDAzMDIwMTg0MzAxZDA2MDM1NTFkMGUwNDE2MDQxNGU2ZTQ1MWVjOGQxOWQ5Njc3YjJkMjcyYTlkNzNiOTM5ZmEyZDkxNWEzMDFmMDYwMzU1MWQyMzA0MTgzMDE2ODAxNGU2ZTQ1MWVjOGQxOWQ5Njc3YjJkMjcyYTlkNzNiOTM5ZmEyZDkxNWEzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAwMzgyMDEwMTAwNTZkMDYwNDdiN2Y0ODY4M2UyMzQ3Y2E3MjY5OTdkOTcwMGI0ZjJjZjFkOGJjMGVmMTdhZGRhYzg0NDVkMzhmZmQ3ZjgwNzkwNTVlYWQ4NzhiNmE3NGM4Mzg0ZDBlMzAxNTBjODk5MGFhNzRmNTljZGE2ZWJjYjQ5NDY1ZDg5OTFmZmExNmE0YzkyN2EyNmU0NjM5ZDE4NzVhM2FjMzk2Yzc0NTVjN2VkYTQwZGJlNjYwNTRhMDNkMjdmOTYxYzE1ZTg2YmQ1YjA2ZGI2YjI2NTcyOTc3YmNkYTkzNDUzYjZiNmE4OGVmOTZiMzE5OTZhN2JkMTczMjM1MjViMzMwNTBkMjhkZWVjOWMzM2EzZjk3NjVhMTFmYjk5ZDBlMjIyYmQzOWE2ZGIzYTc4ODQ3NGM5Y2EzNDczNzc2ODhmODM3ZDQyZjU4NDE2NjdiZmZjYmU2YjQ3M2U2ZjIyOWYyODZhMDgyOTk2M2U1OTFhOTlhYTdmNjdlOWQyMGMzNmNjZDJhYzg0Y2I4NWI3YThiMzM5NmE2Y2JlNTlhNTczZmZmZjcyNmYzNzMxOTdjMjMwZGU1YzkyYTUyYzViYzg3ZTI5YzIwYmRmNmU4OTYwOTc2NGE2MGM2NDkwMjJhYWJkNzY4ZjM1NTc2NjFiMDgzYWUwMGU2YWZjOGE1YmYyZWQiOiJjZXJ0LiB2ZXJzaW9uICAgICBcOiAzXG5zZXJpYWwgbnVtYmVyICAgICBcOiA0RFw6M0VcOkJCXDpCOFw6QThcOjcwXDpGOVw6QzdcOjhDXDo1NVw6QThcOkE3XDpFMVw6MkZcOkQ1XDoxNlxuaXNzdWVyIG5hbWUgICAgICAgXDogQ049ZHVtbXlcbnN1YmplY3QgbmFtZSAgICAgIFw6IENOPWR1bW15XG5pc3N1ZWQgIG9uICAgICAgICBcOiAyMDIwLTA0LTI4IDE3XDo0Mlw6NDNcbmV4cGlyZXMgb24gICAgICAgIFw6IDIwMjAtMDYtMjcgMTdcOjQyXDo0M1xuc2lnbmVkIHVzaW5nICAgICAgXDogUlNBIHdpdGggU0hBLTI1NlxuUlNBIGtleSBzaXplICAgICAgXDogMjA0OCBiaXRzXG5iYXNpYyBjb25zdHJhaW50cyBcOiBDQT10cnVlXG5zdWJqZWN0IGFsdCBuYW1lICBcOlxuICAgIGROU05hbWUgXDogZHVtbXlcbmtleSB1c2FnZSAgICAgICAgIFw6IERpZ2l0YWwgU2lnbmF0dXJlLCBLZXkgQ2VydCBTaWduXG4iOjAKIAogWDUwOSBDUlQgQVNOMSAoVW5zdXBwb3J0ZWQgY3JpdGljYWwgZXh0ZW5zaW9uIG5vdCByZWNvZ25pemVkIGJ5IGNhbGxiYWNrKQotZGVwZW5kc19vbjpNQkVEVExTX1JTQV9DOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpNQkVEVExTX1JTQV9DOlBTQV9XQU5UX0FMR19TSEFfMjU2CiB4NTA5cGFyc2VfY3J0X2NiOiIzMDgyMDMzNTMwODIwMjFkYTAwMzAyMDEwMjAyMTA0ZDNlYmJiOGE4NzBmOWM3OGM1NWE4YTdlMTJmZDUxNjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDMwMTAzMTBlMzAwYzA2MDM1NTA0MDMwYzA1NjQ3NTZkNmQ3OTMwMWUxNzBkMzIzMDMwMzQzMjM4MzEzNzM0MzIzNDMzNWExNzBkMzIzMDMwMzYzMjM3MzEzNzM0MzIzNDMzNWEzMDEwMzEwZTMwMGMwNjAzNTUwNDAzMGMwNTY0NzU2ZDZkNzkzMDgyMDEyMjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDAzODIwMTBmMDAzMDgyMDEwYTAyODIwMTAxMDBhNTFiNzViM2Y3ZGEyZDYwZWExYjBmYzA3N2YwZGJiMmJiYjZmZTFiNDc0MDI4MzY4YWY4ZGMyNjY0NjcyODk2ZWZmZjE3MTAzM2IwYWVkZTBiMzIzYTg5ZDVjNmRiNGQ1MTc0MDRiYzk3YjY1MjY0ZTQxYjllOWU4NmE2ZjQwYWNlNjUyNDk4ZDRiM2I4NTk1NDRkMWJhY2ZkN2Y4NjMyNTUwM2VlZDA0NmY1MTc0MDY1NDVjMGZmYjU1NjBmODM0NDZkZWRjZTBmY2FmY2M0MWFjODQ5NTQ4OGE2YWE5MTJhZTQ1MTkyZWY3ZTNlZmEyMGQwZjc0MDNiMGJhYTYyYzdlMmU1NDA0YzYyMGM1NzkzNjIzMTMyYWEyMGY2MjRmMDhkODhmYmYwOTg1YWYzOTQzM2Y1YTI0ZDBiOTA4ZTUyMTlkOGJhNmE0MDRkM2VlODQxODIwM2I2MmE0MGM4ZWIxODgzNzM1NGQ1MDI4MWE2YTJiZjUwMTJlNTA1YzQxOTQ4Mjc4N2I3YTgxZTU5MzU2MTNjZWVhMGM2ZDkzZTg2Zjc2MjgyYjZhYTQwNmZiM2ExNzk2YzU2YjMyZThhMjJhZmMzZjdhM2M5ZGFhOGYwZTI4NDZmZjBkNTBhYmZjODYyYTUyZjZjZjBhYWVjZTYwNjZjODYwMzc2ZjNlZDAyMDMwMTAwMDFhMzgxOGEzMDgxODczMDBjMDYwMzU1MWQxMzA0MDUzMDAzMDEwMWZmMzAxMzA2MDM1NTFkMTEwMTAxZmYwNDA5MzAwNzgyMDU2NDc1NmQ2ZDc5MzAxMjA2MDgyYjA2MDEwNTA1MDcwMTFlMDEwMWZmMDQwMzA0MDEwMDMwMGUwNjAzNTUxZDBmMDEwMWZmMDQwNDAzMDIwMTg0MzAxZDA2MDM1NTFkMGUwNDE2MDQxNGU2ZTQ1MWVjOGQxOWQ5Njc3YjJkMjcyYTlkNzNiOTM5ZmEyZDkxNWEzMDFmMDYwMzU1MWQyMzA0MTgzMDE2ODAxNGU2ZTQ1MWVjOGQxOWQ5Njc3YjJkMjcyYTlkNzNiOTM5ZmEyZDkxNWEzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAwMzgyMDEwMTAwNTZkMDYwNDdiN2Y0ODY4M2UyMzQ3Y2E3MjY5OTdkOTcwMGI0ZjJjZjFkOGJjMGVmMTdhZGRhYzg0NDVkMzhmZmQ3ZjgwNzkwNTVlYWQ4NzhiNmE3NGM4Mzg0ZDBlMzAxNTBjODk5MGFhNzRmNTljZGE2ZWJjYjQ5NDY1ZDg5OTFmZmExNmE0YzkyN2EyNmU0NjM5ZDE4NzVhM2FjMzk2Yzc0NTVjN2VkYTQwZGJlNjYwNTRhMDNkMjdmOTYxYzE1ZTg2YmQ1YjA2ZGI2YjI2NTcyOTc3YmNkYTkzNDUzYjZiNmE4OGVmOTZiMzE5OTZhN2JkMTczMjM1MjViMzMwNTBkMjhkZWVjOWMzM2EzZjk3NjVhMTFmYjk5ZDBlMjIyYmQzOWE2ZGIzYTc4ODQ3NGM5Y2EzNDczNzc2ODhmODM3ZDQyZjU4NDE2NjdiZmZjYmU2YjQ3M2U2ZjIyOWYyODZhMDgyOTk2M2U1OTFhOTlhYTdmNjdlOWQyMGMzNmNjZDJhYzg0Y2I4NWI3YThiMzM5NmE2Y2JlNTlhNTczZmZmZjcyNmYzNzMxOTdjMjMwZGU1YzkyYTUyYzViYzg3ZTI5YzIwYmRmNmU4OTYwOTc2NGE2MGM2NDkwMjJhYWJkNzY4ZjM1NTc2NjFiMDgzYWUwMGU2YWZjOGE1YmYyZWQiOiIiOk1CRURUTFNfRVJSX1g1MDlfSU5WQUxJRF9FWFRFTlNJT05TICsgTUJFRFRMU19FUlJfQVNOMV9VTkVYUEVDVEVEX1RBRwogCiBYNTA5IENSVCBBU04xIChVbnN1cHBvcnRlZCBub24gY3JpdGljYWwgZXh0ZW5zaW9uIHJlY29nbml6ZWQgYnkgY2FsbGJhY2spCi1kZXBlbmRzX29uOk1CRURUTFNfUlNBX0M6TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOk1CRURUTFNfUlNBX0M6UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHg1MDlwYXJzZV9jcnRfY2I6IjMwODIwMzM1MzA4MjAyMWRhMDAzMDIwMTAyMDIxMDRkM2ViYmI4YTg3MGY5Yzc4YzU1YThhN2UxMmZkNTE2MzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMzAxMDMxMGUzMDBjMDYwMzU1MDQwMzBjMDU2NDc1NmQ2ZDc5MzAxZTE3MGQzMjMwMzAzNDMyMzgzMTM3MzQzMjM0MzM1YTE3MGQzMjMwMzAzNjMyMzczMTM3MzQzMjM0MzM1YTMwMTAzMTBlMzAwYzA2MDM1NTA0MDMwYzA1NjQ3NTZkNmQ3OTMwODIwMTIyMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDM4MjAxMGYwMDMwODIwMTBhMDI4MjAxMDEwMGE1MWI3NWIzZjdkYTJkNjBlYTFiMGZjMDc3ZjBkYmIyYmJiNmZlMWI0NzQwMjgzNjhhZjhkYzI2NjQ2NzI4OTZlZmZmMTcxMDMzYjBhZWRlMGIzMjNhODlkNWM2ZGI0ZDUxNzQwNGJjOTdiNjUyNjRlNDFiOWU5ZTg2YTZmNDBhY2U2NTI0OThkNGIzYjg1OTU0NGQxYmFjZmQ3Zjg2MzI1NTAzZWVkMDQ2ZjUxNzQwNjU0NWMwZmZiNTU2MGY4MzQ0NmRlZGNlMGZjYWZjYzQxYWM4NDk1NDg4YTZhYTkxMmFlNDUxOTJlZjdlM2VmYTIwZDBmNzQwM2IwYmFhNjJjN2UyZTU0MDRjNjIwYzU3OTM2MjMxMzJhYTIwZjYyNGYwOGQ4OGZiZjA5ODVhZjM5NDMzZjVhMjRkMGI5MDhlNTIxOWQ4YmE2YTQwNGQzZWU4NDE4MjAzYjYyYTQwYzhlYjE4ODM3MzU0ZDUwMjgxYTZhMmJmNTAxMmU1MDVjNDE5NDgyNzg3YjdhODFlNTkzNTYxM2NlZWEwYzZkOTNlODZmNzYyODJiNmFhNDA2ZmIzYTE3OTZjNTZiMzJlOGEyMmFmYzNmN2EzYzlkYWE4ZjBlMjg0NmZmMGQ1MGFiZmM4NjJhNTJmNmNmMGFhZWNlNjA2NmM4NjAzNzZmM2VkMDIwMzAxMDAwMWEzODE4YTMwODE4NzMwMGMwNjAzNTUxZDEzMDQwNTMwMDMwMTAxZmYzMDEzMDYwMzU1MWQxMTAxMDFmZjA0MDkzMDA3ODIwNTY0NzU2ZDZkNzkzMDEyMDYwODJiMDYwMTA1MDUwNzAxMWYwMTAxMDAwNDAzMDQwMTAwMzAwZTA2MDM1NTFkMGYwMTAxZmYwNDA0MDMwMjAxODQzMDFkMDYwMzU1MWQwZTA0MTYwNDE0ZTZlNDUxZWM4ZDE5ZDk2NzdiMmQyNzJhOWQ3M2I5MzlmYTJkOTE1YTMwMWYwNjAzNTUxZDIzMDQxODMwMTY4MDE0ZTZlNDUxZWM4ZDE5ZDk2NzdiMmQyNzJhOWQ3M2I5MzlmYTJkOTE1YTMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDAzODIwMTAxMDA1NmQwNjA0N2I3ZjQ4NjgzZTIzNDdjYTcyNjk5N2Q5NzAwYjRmMmNmMWQ4YmMwZWYxN2FkZGFjODQ0NWQzOGZmZDdmODA3OTA1NWVhZDg3OGI2YTc0YzgzODRkMGUzMDE1MGM4OTkwYWE3NGY1OWNkYTZlYmNiNDk0NjVkODk5MWZmYTE2YTRjOTI3YTI2ZTQ2MzlkMTg3NWEzYWMzOTZjNzQ1NWM3ZWRhNDBkYmU2NjA1NGEwM2QyN2Y5NjFjMTVlODZiZDViMDZkYjZiMjY1NzI5NzdiY2RhOTM0NTNiNmI2YTg4ZWY5NmIzMTk5NmE3YmQxNzMyMzUyNWIzMzA1MGQyOGRlZWM5YzMzYTNmOTc2NWExMWZiOTlkMGUyMjJiZDM5YTZkYjNhNzg4NDc0YzljYTM0NzM3NzY4OGY4MzdkNDJmNTg0MTY2N2JmZmNiZTZiNDczZTZmMjI5ZjI4NmEwODI5OTYzZTU5MWE5OWFhN2Y2N2U5ZDIwYzM2Y2NkMmFjODRjYjg1YjdhOGIzMzk2YTZjYmU1OWE1NzNmZmZmNzI2ZjM3MzE5N2MyMzBkZTVjOTJhNTJjNWJjODdlMjljMjBiZGY2ZTg5NjA5NzY0YTYwYzY0OTAyMmFhYmQ3NjhmMzU1NzY2MWIwODNhZTAwZTZhZmM4YTViZjJlZCI6ImNlcnQuIHZlcnNpb24gICAgIFw6IDNcbnNlcmlhbCBudW1iZXIgICAgIFw6IDREXDozRVw6QkJcOkI4XDpBOFw6NzBcOkY5XDpDN1w6OENcOjU1XDpBOFw6QTdcOkUxXDoyRlw6RDVcOjE2XG5pc3N1ZXIgbmFtZSAgICAgICBcOiBDTj1kdW1teVxuc3ViamVjdCBuYW1lICAgICAgXDogQ049ZHVtbXlcbmlzc3VlZCAgb24gICAgICAgIFw6IDIwMjAtMDQtMjggMTdcOjQyXDo0M1xuZXhwaXJlcyBvbiAgICAgICAgXDogMjAyMC0wNi0yNyAxN1w6NDJcOjQzXG5zaWduZWQgdXNpbmcgICAgICBcOiBSU0Egd2l0aCBTSEEtMjU2XG5SU0Ega2V5IHNpemUgICAgICBcOiAyMDQ4IGJpdHNcbmJhc2ljIGNvbnN0cmFpbnRzIFw6IENBPXRydWVcbnN1YmplY3QgYWx0IG5hbWUgIFw6XG4gICAgZE5TTmFtZSBcOiBkdW1teVxua2V5IHVzYWdlICAgICAgICAgXDogRGlnaXRhbCBTaWduYXR1cmUsIEtleSBDZXJ0IFNpZ25cbiI6MAogCiBYNTA5IENSVCBBU04xIChVbnN1cHBvcnRlZCBub24gY3JpdGljYWwgZXh0ZW5zaW9uIG5vdCByZWNvZ25pemVkIGJ5IGNhbGxiYWNrKQotZGVwZW5kc19vbjpNQkVEVExTX1JTQV9DOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpNQkVEVExTX1JTQV9DOlBTQV9XQU5UX0FMR19TSEFfMjU2CiB4NTA5cGFyc2VfY3J0X2NiOiIzMDgyMDMzNTMwODIwMjFkYTAwMzAyMDEwMjAyMTA0ZDNlYmJiOGE4NzBmOWM3OGM1NWE4YTdlMTJmZDUxNjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDMwMTAzMTBlMzAwYzA2MDM1NTA0MDMwYzA1NjQ3NTZkNmQ3OTMwMWUxNzBkMzIzMDMwMzQzMjM4MzEzNzM0MzIzNDMzNWExNzBkMzIzMDMwMzYzMjM3MzEzNzM0MzIzNDMzNWEzMDEwMzEwZTMwMGMwNjAzNTUwNDAzMGMwNTY0NzU2ZDZkNzkzMDgyMDEyMjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDAzODIwMTBmMDAzMDgyMDEwYTAyODIwMTAxMDBhNTFiNzViM2Y3ZGEyZDYwZWExYjBmYzA3N2YwZGJiMmJiYjZmZTFiNDc0MDI4MzY4YWY4ZGMyNjY0NjcyODk2ZWZmZjE3MTAzM2IwYWVkZTBiMzIzYTg5ZDVjNmRiNGQ1MTc0MDRiYzk3YjY1MjY0ZTQxYjllOWU4NmE2ZjQwYWNlNjUyNDk4ZDRiM2I4NTk1NDRkMWJhY2ZkN2Y4NjMyNTUwM2VlZDA0NmY1MTc0MDY1NDVjMGZmYjU1NjBmODM0NDZkZWRjZTBmY2FmY2M0MWFjODQ5NTQ4OGE2YWE5MTJhZTQ1MTkyZWY3ZTNlZmEyMGQwZjc0MDNiMGJhYTYyYzdlMmU1NDA0YzYyMGM1NzkzNjIzMTMyYWEyMGY2MjRmMDhkODhmYmYwOTg1YWYzOTQzM2Y1YTI0ZDBiOTA4ZTUyMTlkOGJhNmE0MDRkM2VlODQxODIwM2I2MmE0MGM4ZWIxODgzNzM1NGQ1MDI4MWE2YTJiZjUwMTJlNTA1YzQxOTQ4Mjc4N2I3YTgxZTU5MzU2MTNjZWVhMGM2ZDkzZTg2Zjc2MjgyYjZhYTQwNmZiM2ExNzk2YzU2YjMyZThhMjJhZmMzZjdhM2M5ZGFhOGYwZTI4NDZmZjBkNTBhYmZjODYyYTUyZjZjZjBhYWVjZTYwNjZjODYwMzc2ZjNlZDAyMDMwMTAwMDFhMzgxOGEzMDgxODczMDBjMDYwMzU1MWQxMzA0MDUzMDAzMDEwMWZmMzAxMzA2MDM1NTFkMTEwMTAxZmYwNDA5MzAwNzgyMDU2NDc1NmQ2ZDc5MzAxMjA2MDgyYjA2MDEwNTA1MDcwMTFlMDEwMTAwMDQwMzA0MDEwMDMwMGUwNjAzNTUxZDBmMDEwMWZmMDQwNDAzMDIwMTg0MzAxZDA2MDM1NTFkMGUwNDE2MDQxNGU2ZTQ1MWVjOGQxOWQ5Njc3YjJkMjcyYTlkNzNiOTM5ZmEyZDkxNWEzMDFmMDYwMzU1MWQyMzA0MTgzMDE2ODAxNGU2ZTQ1MWVjOGQxOWQ5Njc3YjJkMjcyYTlkNzNiOTM5ZmEyZDkxNWEzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAwMzgyMDEwMTAwNTZkMDYwNDdiN2Y0ODY4M2UyMzQ3Y2E3MjY5OTdkOTcwMGI0ZjJjZjFkOGJjMGVmMTdhZGRhYzg0NDVkMzhmZmQ3ZjgwNzkwNTVlYWQ4NzhiNmE3NGM4Mzg0ZDBlMzAxNTBjODk5MGFhNzRmNTljZGE2ZWJjYjQ5NDY1ZDg5OTFmZmExNmE0YzkyN2EyNmU0NjM5ZDE4NzVhM2FjMzk2Yzc0NTVjN2VkYTQwZGJlNjYwNTRhMDNkMjdmOTYxYzE1ZTg2YmQ1YjA2ZGI2YjI2NTcyOTc3YmNkYTkzNDUzYjZiNmE4OGVmOTZiMzE5OTZhN2JkMTczMjM1MjViMzMwNTBkMjhkZWVjOWMzM2EzZjk3NjVhMTFmYjk5ZDBlMjIyYmQzOWE2ZGIzYTc4ODQ3NGM5Y2EzNDczNzc2ODhmODM3ZDQyZjU4NDE2NjdiZmZjYmU2YjQ3M2U2ZjIyOWYyODZhMDgyOTk2M2U1OTFhOTlhYTdmNjdlOWQyMGMzNmNjZDJhYzg0Y2I4NWI3YThiMzM5NmE2Y2JlNTlhNTczZmZmZjcyNmYzNzMxOTdjMjMwZGU1YzkyYTUyYzViYzg3ZTI5YzIwYmRmNmU4OTYwOTc2NGE2MGM2NDkwMjJhYWJkNzY4ZjM1NTc2NjFiMDgzYWUwMGU2YWZjOGE1YmYyZWQiOiJjZXJ0LiB2ZXJzaW9uICAgICBcOiAzXG5zZXJpYWwgbnVtYmVyICAgICBcOiA0RFw6M0VcOkJCXDpCOFw6QThcOjcwXDpGOVw6QzdcOjhDXDo1NVw6QThcOkE3XDpFMVw6MkZcOkQ1XDoxNlxuaXNzdWVyIG5hbWUgICAgICAgXDogQ049ZHVtbXlcbnN1YmplY3QgbmFtZSAgICAgIFw6IENOPWR1bW15XG5pc3N1ZWQgIG9uICAgICAgICBcOiAyMDIwLTA0LTI4IDE3XDo0Mlw6NDNcbmV4cGlyZXMgb24gICAgICAgIFw6IDIwMjAtMDYtMjcgMTdcOjQyXDo0M1xuc2lnbmVkIHVzaW5nICAgICAgXDogUlNBIHdpdGggU0hBLTI1NlxuUlNBIGtleSBzaXplICAgICAgXDogMjA0OCBiaXRzXG5iYXNpYyBjb25zdHJhaW50cyBcOiBDQT10cnVlXG5zdWJqZWN0IGFsdCBuYW1lICBcOlxuICAgIGROU05hbWUgXDogZHVtbXlcbmtleSB1c2FnZSAgICAgICAgIFw6IERpZ2l0YWwgU2lnbmF0dXJlLCBLZXkgQ2VydCBTaWduXG4iOjAKIAogWDUwOSBDUlQgQVNOMSAoVW5zdXBwb3J0ZWQgY3JpdGljYWwgcG9saWN5IHJlY29nbml6ZWQgYnkgY2FsbGJhY2spCi1kZXBlbmRzX29uOk1CRURUTFNfUlNBX0M6TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOk1CRURUTFNfUlNBX0M6UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHg1MDlwYXJzZV9jcnRfY2I6IjMwODFiMTMwODE5YmEwMDMwMjAxMDI4MjA0ZGVhZGJlZWYzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAzMDBjMzEwYTMwMDgwNjAwMTMwNDU0NjU3Mzc0MzAxYzE3MGMzMDM5MzAzMTMwMzEzMDMwMzAzMDMwMzAxNzBjMzAzOTMxMzIzMzMxMzIzMzM1MzkzNTM5MzAwYzMxMGEzMDA4MDYwMDEzMDQ1NDY1NzM3NDMwMmEzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwMzE5MDAzMDE2MDIxMGZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMDIwMmZmZmZhMTAwYTIwMGEzMTUzMDEzMzAxMTA2MDM1NTFkMjAwMTAxMDEwNDA3MzAwNTMwMDMwNjAxMDEzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAwMzAyMDBmZiI6ImNlcnQuIHZlcnNpb24gICAgIFw6IDNcbnNlcmlhbCBudW1iZXIgICAgIFw6IERFXDpBRFw6QkVcOkVGXG5pc3N1ZXIgbmFtZSAgICAgICBcOiA/Pz1UZXN0XG5zdWJqZWN0IG5hbWUgICAgICBcOiA/Pz1UZXN0XG5pc3N1ZWQgIG9uICAgICAgICBcOiAyMDA5LTAxLTAxIDAwXDowMFw6MDBcbmV4cGlyZXMgb24gICAgICAgIFw6IDIwMDktMTItMzEgMjNcOjU5XDo1OVxuc2lnbmVkIHVzaW5nICAgICAgXDogUlNBIHdpdGggU0hBLTI1NlxuUlNBIGtleSBzaXplICAgICAgXDogMTI4IGJpdHNcbmNlcnRpZmljYXRlIHBvbGljaWVzIFw6ID8/P1xuIjowCiAKIFg1MDkgQ1JUIEFTTjEgKFVuc3VwcG9ydGVkIGNyaXRpY2FsIHBvbGljeSBub3QgcmVjb2duaXplZCBieSBjYWxsYmFjaykKLWRlcGVuZHNfb246TUJFRFRMU19SU0FfQzpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246TUJFRFRMU19SU0FfQzpQU0FfV0FOVF9BTEdfU0hBXzI1NgogeDUwOXBhcnNlX2NydF9jYjoiMzA4MWIxMzA4MTliYTAwMzAyMDEwMjgyMDRkZWFkYmVlZjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDMwMGMzMTBhMzAwODA2MDAxMzA0NTQ2NTczNzQzMDFjMTcwYzMwMzkzMDMxMzAzMTMwMzAzMDMwMzAzMDE3MGMzMDM5MzEzMjMzMzEzMjMzMzUzOTM1MzkzMDBjMzEwYTMwMDgwNjAwMTMwNDU0NjU3Mzc0MzAyYTMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTAxMDUwMDAzMTkwMDMwMTYwMjEwZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYwMjAyZmZmZmExMDBhMjAwYTMxNTMwMTMzMDExMDYwMzU1MWQyMDAxMDEwMTA0MDczMDA1MzAwMzA2MDEwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBiMDUwMDAzMDIwMGZmIjoiIjpNQkVEVExTX0VSUl9YNTA5X0ZFQVRVUkVfVU5BVkFJTEFCTEUKIAogWDUwOSBDUlQgQVNOMSAoVW5zdXBwb3J0ZWQgbm9uIGNyaXRpY2FsIHBvbGljeSByZWNvZ25pemVkIGJ5IGNhbGxiYWNrKQotZGVwZW5kc19vbjpNQkVEVExTX1JTQV9DOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpNQkVEVExTX1JTQV9DOlBTQV9XQU5UX0FMR19TSEFfMjU2CiB4NTA5cGFyc2VfY3J0X2NiOiIzMDgxYjEzMDgxOWJhMDAzMDIwMTAyODIwNGRlYWRiZWVmMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMzAwYzMxMGEzMDA4MDYwMDEzMDQ1NDY1NzM3NDMwMWMxNzBjMzAzOTMwMzEzMDMxMzAzMDMwMzAzMDMwMTcwYzMwMzkzMTMyMzMzMTMyMzMzNTM5MzUzOTMwMGMzMTBhMzAwODA2MDAxMzA0NTQ2NTczNzQzMDJhMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDMxOTAwMzAxNjAyMTBmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjAyMDJmZmZmYTEwMGEyMDBhMzE1MzAxMzMwMTEwNjAzNTUxZDIwMDEwMTAwMDQwNzMwMDUzMDAzMDYwMTAxMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMDMwMjAwZmYiOiJjZXJ0LiB2ZXJzaW9uICAgICBcOiAzXG5zZXJpYWwgbnVtYmVyICAgICBcOiBERVw6QURcOkJFXDpFRlxuaXNzdWVyIG5hbWUgICAgICAgXDogPz89VGVzdFxuc3ViamVjdCBuYW1lICAgICAgXDogPz89VGVzdFxuaXNzdWVkICBvbiAgICAgICAgXDogMjAwOS0wMS0wMSAwMFw6MDBcOjAwXG5leHBpcmVzIG9uICAgICAgICBcOiAyMDA5LTEyLTMxIDIzXDo1OVw6NTlcbnNpZ25lZCB1c2luZyAgICAgIFw6IFJTQSB3aXRoIFNIQS0yNTZcblJTQSBrZXkgc2l6ZSAgICAgIFw6IDEyOCBiaXRzXG5jZXJ0aWZpY2F0ZSBwb2xpY2llcyBcOiA/Pz9cbiI6MAogCiBYNTA5IENSVCBBU04xIChVbnN1cHBvcnRlZCBub24gY3JpdGljYWwgcG9saWN5IG5vdCByZWNvZ25pemVkIGJ5IGNhbGxiYWNrKQotZGVwZW5kc19vbjpNQkVEVExTX1JTQV9DOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpNQkVEVExTX1JTQV9DOlBTQV9XQU5UX0FMR19TSEFfMjU2CiB4NTA5cGFyc2VfY3J0X2NiOiIzMDgxYjEzMDgxOWJhMDAzMDIwMTAyODIwNGRlYWRiZWVmMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMzAwYzMxMGEzMDA4MDYwMDEzMDQ1NDY1NzM3NDMwMWMxNzBjMzAzOTMwMzEzMDMxMzAzMDMwMzAzMDMwMTcwYzMwMzkzMTMyMzMzMTMyMzMzNTM5MzUzOTMwMGMzMTBhMzAwODA2MDAxMzA0NTQ2NTczNzQzMDJhMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDMxOTAwMzAxNjAyMTBmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjAyMDJmZmZmYTEwMGEyMDBhMzE1MzAxMzMwMTEwNjAzNTUxZDIwMDEwMTAwMDQwNzMwMDUzMDAzMDYwMTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMDMwMjAwZmYiOiJjZXJ0LiB2ZXJzaW9uICAgICBcOiAzXG5zZXJpYWwgbnVtYmVyICAgICBcOiBERVw6QURcOkJFXDpFRlxuaXNzdWVyIG5hbWUgICAgICAgXDogPz89VGVzdFxuc3ViamVjdCBuYW1lICAgICAgXDogPz89VGVzdFxuaXNzdWVkICBvbiAgICAgICAgXDogMjAwOS0wMS0wMSAwMFw6MDBcOjAwXG5leHBpcmVzIG9uICAgICAgICBcOiAyMDA5LTEyLTMxIDIzXDo1OVw6NTlcbnNpZ25lZCB1c2luZyAgICAgIFw6IFJTQSB3aXRoIFNIQS0yNTZcblJTQSBrZXkgc2l6ZSAgICAgIFw6IDEyOCBiaXRzXG5jZXJ0aWZpY2F0ZSBwb2xpY2llcyBcOiA/Pz9cbiI6MAogCiBYNTA5IENSTCBBU04xIChJbmNvcnJlY3QgZmlyc3QgdGFnKQpAQCAtMjQ2OCwzNSArMjQ2OCwzNSBAQAogeDUwOXBhcnNlX2NybDoiMzAxNDMwMTIwMjAxMDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwZjA1MDAiOiIiOk1CRURUTFNfRVJSX1g1MDlfVU5LTk9XTl9TSUdfQUxHCiAKIFg1MDkgQ1JMIEFTTjEgKFRCU0NlcnRMaXN0LCBzaWdfb2lkMSBjb3JyZWN0LCBpc3N1ZXIgbWlzc2luZykKLWRlcGVuZHNfb246TUJFRFRMU19SU0FfQzpNQkVEVExTX01EX0NBTl9TSEEyMjQKK2RlcGVuZHNfb246TUJFRFRMU19SU0FfQzpQU0FfV0FOVF9BTEdfU0hBXzIyNAogeDUwOXBhcnNlX2NybDoiMzAxNDMwMTIwMjAxMDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwZTA1MDAiOiIiOk1CRURUTFNfRVJSX1g1MDlfSU5WQUxJRF9GT1JNQVQgKyBNQkVEVExTX0VSUl9BU04xX09VVF9PRl9EQVRBCiAKIFg1MDkgQ1JMIEFTTjEgKFRCU0NlcnRMaXN0LCBpc3N1ZXIgc2V0IG1pc3NpbmcpCi1kZXBlbmRzX29uOk1CRURUTFNfUlNBX0M6TUJFRFRMU19NRF9DQU5fU0hBMjI0CitkZXBlbmRzX29uOk1CRURUTFNfUlNBX0M6UFNBX1dBTlRfQUxHX1NIQV8yMjQKIHg1MDlwYXJzZV9jcmw6IjMwMTYzMDE0MDIwMTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGUwNTAwMzAwMCI6IiI6TUJFRFRMU19FUlJfWDUwOV9JTlZBTElEX05BTUUgKyBNQkVEVExTX0VSUl9BU04xX09VVF9PRl9EQVRBCiAKIFg1MDkgQ1JMIEFTTjEgKFRCU0NlcnRMaXN0LCBjb3JyZWN0IGlzc3VlciwgdGhpc1VwZGF0ZSBtaXNzaW5nKQotZGVwZW5kc19vbjpNQkVEVExTX1JTQV9DOk1CRURUTFNfTURfQ0FOX1NIQTIyNAorZGVwZW5kc19vbjpNQkVEVExTX1JTQV9DOlBTQV9XQU5UX0FMR19TSEFfMjI0CiB4NTA5cGFyc2VfY3JsOiIzMDI1MzAyMzAyMDEwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBlMDUwMDMwMGYzMTBkMzAwYjA2MDM1NTA0MDMxMzA0NDE0MjQzNDQiOiIiOk1CRURUTFNfRVJSX1g1MDlfSU5WQUxJRF9EQVRFICsgTUJFRFRMU19FUlJfQVNOMV9PVVRfT0ZfREFUQQogCiBYNTA5IENSTCBBU04xIChUQlNDZXJ0TGlzdCwgY29ycmVjdCB0aGlzVXBkYXRlLCBuZXh0VXBkYXRlIG1pc3NpbmcsIGVudHJpZXMgbGVuZ3RoIG1pc3NpbmcpCi1kZXBlbmRzX29uOk1CRURUTFNfUlNBX0M6TUJFRFRMU19NRF9DQU5fU0hBMjI0CitkZXBlbmRzX29uOk1CRURUTFNfUlNBX0M6UFNBX1dBTlRfQUxHX1NIQV8yMjQKIHg1MDlwYXJzZV9jcmw6IjMwMzQzMDMyMDIwMTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGUwNTAwMzAwZjMxMGQzMDBiMDYwMzU1MDQwMzEzMDQ0MTQyNDM0NDE3MGMzMDM5MzAzMTMwMzEzMDMwMzAzMDMwMzAzMCI6IiI6TUJFRFRMU19FUlJfQVNOMV9PVVRfT0ZfREFUQQogCiBYNTA5IENSTCBBU04xIChUQlNDZXJ0TGlzdCwgZW50cmllcyBwcmVzZW50LCBpbnZhbGlkIHNpZ19hbGcpCi1kZXBlbmRzX29uOk1CRURUTFNfUlNBX0M6TUJFRFRMU19NRF9DQU5fU0hBMjI0CitkZXBlbmRzX29uOk1CRURUTFNfUlNBX0M6UFNBX1dBTlRfQUxHX1NIQV8yMjQKIHg1MDlwYXJzZV9jcmw6IjMwNGEzMDQ3MDIwMTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGUwNTAwMzAwZjMxMGQzMDBiMDYwMzU1MDQwMzEzMDQ0MTQyNDM0NDE3MGMzMDM5MzAzMTMwMzEzMDMwMzAzMDMwMzAzMDE0MzAxMjgyMDJhYmNkMTcwYzMwMzgzMTMyMzMzMTMyMzMzNTM5MzUzOTAwIjoiIjpNQkVEVExTX0VSUl9YNTA5X0lOVkFMSURfQUxHICsgTUJFRFRMU19FUlJfQVNOMV9VTkVYUEVDVEVEX1RBRwogCiBYNTA5IENSTCBBU04xIChUQlNDZXJ0TGlzdCwgZW50cmllcyBwcmVzZW50LCBkYXRlIGluIGVudHJ5IGludmFsaWQpCi1kZXBlbmRzX29uOk1CRURUTFNfUlNBX0M6TUJFRFRMU19NRF9DQU5fU0hBMjI0CitkZXBlbmRzX29uOk1CRURUTFNfUlNBX0M6UFNBX1dBTlRfQUxHX1NIQV8yMjQKIHg1MDlwYXJzZV9jcmw6IjMwNGEzMDQ3MDIwMTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGUwNTAwMzAwZjMxMGQzMDBiMDYwMzU1MDQwMzEzMDQ0MTQyNDM0NDE3MGMzMDM5MzAzMTMwMzEzMDMwMzAzMDMwMzAzMDE0MzAxMjgyMDJhYmNkMTkwYzMwMzgzMTMyMzMzMTMyMzMzNTM5MzUzOTAwIjoiIjpNQkVEVExTX0VSUl9YNTA5X0lOVkFMSURfREFURSArIE1CRURUTFNfRVJSX0FTTjFfVU5FWFBFQ1RFRF9UQUcKIAogWDUwOSBDUkwgQVNOMSAoVEJTQ2VydExpc3QsIHNpZ19hbGcgcHJlc2VudCwgc2lnX2FsZyBkb2VzIG5vdCBtYXRjaCkKLWRlcGVuZHNfb246TUJFRFRMU19SU0FfQzpNQkVEVExTX01EX0NBTl9TSEEyMjQKK2RlcGVuZHNfb246TUJFRFRMU19SU0FfQzpQU0FfV0FOVF9BTEdfU0hBXzIyNAogeDUwOXBhcnNlX2NybDoiMzA1ODMwNDcwMjAxMDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwZTA1MDAzMDBmMzEwZDMwMGIwNjAzNTUwNDAzMTMwNDQxNDI0MzQ0MTcwYzMwMzkzMDMxMzAzMTMwMzAzMDMwMzAzMDMwMTQzMDEyODIwMmFiY2QxNzBjMzAzODMxMzIzMzMxMzIzMzM1MzkzNTM5MzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGQwNTAwIjoiIjpNQkVEVExTX0VSUl9YNTA5X1NJR19NSVNNQVRDSAogCiBYNTA5IENSTCBBU04xIChUQlNDZXJ0TGlzdCwgc2lnIHByZXNlbnQsIGxlbiBtaXNtYXRjaCkKLWRlcGVuZHNfb246TUJFRFRMU19SU0FfQzpNQkVEVExTX01EX0NBTl9TSEEyMjQKK2RlcGVuZHNfb246TUJFRFRMU19SU0FfQzpQU0FfV0FOVF9BTEdfU0hBXzIyNAogeDUwOXBhcnNlX2NybDoiMzA1ZDMwNDcwMjAxMDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwZTA1MDAzMDBmMzEwZDMwMGIwNjAzNTUwNDAzMTMwNDQxNDI0MzQ0MTcwYzMwMzkzMDMxMzAzMTMwMzAzMDMwMzAzMDMwMTQzMDEyODIwMmFiY2QxNzBjMzAzODMxMzIzMzMxMzIzMzM1MzkzNTM5MzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGUwNTAwMDMwMjAwMDEwMCI6IiI6TUJFRFRMU19FUlJfWDUwOV9JTlZBTElEX0ZPUk1BVCArIE1CRURUTFNfRVJSX0FTTjFfTEVOR1RIX01JU01BVENICiAKICMgMzA1YwpAQCAtMjUxOCw0MyArMjUxOCw0MyBAQAogIyAgMDMwMjAwMDEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2lnbmF0dXJlVmFsdWUgQklUIFNUUklORwogIyBUaGUgc3Vic2VxdWVudCBUQlNDZXJ0TGlzdCBuZWdhdGl2ZSB0ZXN0cyByZW1vdmUgb3IgbW9kaWZ5IHNvbWUgZWxlbWVudHMuCiBYNTA5IENSTCBBU04xIChUQlNDZXJ0TGlzdCwgc2lnIHByZXNlbnQpCi1kZXBlbmRzX29uOk1CRURUTFNfUlNBX0M6TUJFRFRMU19NRF9DQU5fU0hBMjI0OiFNQkVEVExTX1g1MDlfUkVNT1ZFX0lORk8KK2RlcGVuZHNfb246TUJFRFRMU19SU0FfQzpQU0FfV0FOVF9BTEdfU0hBXzIyNDohTUJFRFRMU19YNTA5X1JFTU9WRV9JTkZPCiB4NTA5cGFyc2VfY3JsOiIzMDVjMzA0NzAyMDEwMDMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBlMDUwMDMwMGYzMTBkMzAwYjA2MDM1NTA0MDMxMzA0NDE0MjQzNDQxNzBjMzAzOTMwMzEzMDMxMzAzMDMwMzAzMDMwMzAxNDMwMTI4MjAyYWJjZDE3MGMzMDM4MzEzMjMzMzEzMjMzMzUzOTM1MzkzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwZTA1MDAwMzAyMDAwMSI6IkNSTCB2ZXJzaW9uICAgXDogMVxuaXNzdWVyIG5hbWUgICBcOiBDTj1BQkNEXG50aGlzIHVwZGF0ZSAgIFw6IDIwMDktMDEtMDEgMDBcOjAwXDowMFxubmV4dCB1cGRhdGUgICBcOiAwMDAwLTAwLTAwIDAwXDowMFw6MDBcblJldm9rZWQgY2VydGlmaWNhdGVzXDpcbnNlcmlhbCBudW1iZXJcOiBBQlw6Q0QgcmV2b2NhdGlvbiBkYXRlXDogMjAwOC0xMi0zMSAyM1w6NTlcOjU5XG5zaWduZWQgdXNpbmcgIFw6IFJTQSB3aXRoIFNIQS0yMjRcbiI6MAogCiBYNTA5IENSTCBBU04xIChUQlNDZXJ0TGlzdCwgc2lnbmF0dXJlVmFsdWUgbWlzc2luZykKLWRlcGVuZHNfb246TUJFRFRMU19SU0FfQzpNQkVEVExTX01EX0NBTl9TSEEyMjQKK2RlcGVuZHNfb246TUJFRFRMU19SU0FfQzpQU0FfV0FOVF9BTEdfU0hBXzIyNAogeDUwOXBhcnNlX2NybDoiMzA1ODMwNDcwMjAxMDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwZTA1MDAzMDBmMzEwZDMwMGIwNjAzNTUwNDAzMTMwNDQxNDI0MzQ0MTcwYzMwMzkzMDMxMzAzMTMwMzAzMDMwMzAzMDMwMTQzMDEyODIwMmFiY2QxNzBjMzAzODMxMzIzMzMxMzIzMzM1MzkzNTM5MzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGUwNTAwIjoiIjpNQkVEVExTX0VSUl9YNTA5X0lOVkFMSURfU0lHTkFUVVJFICsgTUJFRFRMU19FUlJfQVNOMV9PVVRfT0ZfREFUQQogCiBYNTA5IENSTCBBU04xIChUQlNDZXJ0TGlzdCwgc2lnbmF0dXJlQWxnb3JpdGhtIG1pc3NpbmcpCi1kZXBlbmRzX29uOk1CRURUTFNfUlNBX0M6TUJFRFRMU19NRF9DQU5fU0hBMjI0CitkZXBlbmRzX29uOk1CRURUTFNfUlNBX0M6UFNBX1dBTlRfQUxHX1NIQV8yMjQKIHg1MDlwYXJzZV9jcmw6IjMwNDkzMDQ3MDIwMTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGUwNTAwMzAwZjMxMGQzMDBiMDYwMzU1MDQwMzEzMDQ0MTQyNDM0NDE3MGMzMDM5MzAzMTMwMzEzMDMwMzAzMDMwMzAzMDE0MzAxMjgyMDJhYmNkMTcwYzMwMzgzMTMyMzMzMTMyMzMzNTM5MzUzOSI6IiI6TUJFRFRMU19FUlJfWDUwOV9JTlZBTElEX0FMRyArIE1CRURUTFNfRVJSX0FTTjFfT1VUX09GX0RBVEEKIAogWDUwOSBDUkwgQVNOMSAoVEJTQ2VydExpc3QsIHNpbmdsZSBlbXB0eSBlbnRyeSBhdCBlbmQpCi1kZXBlbmRzX29uOk1CRURUTFNfUlNBX0M6TUJFRFRMU19NRF9DQU5fU0hBMjI0CitkZXBlbmRzX29uOk1CRURUTFNfUlNBX0M6UFNBX1dBTlRfQUxHX1NIQV8yMjQKIHg1MDlwYXJzZV9jcmw6IjMwMzczMDM1MDIwMTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGUwNTAwMzAwZjMxMGQzMDBiMDYwMzU1MDQwMzEzMDQ0MTQyNDM0NDE3MGMzMDM5MzAzMTMwMzEzMDMwMzAzMDMwMzAzMDAyMzAwMCI6IiI6TUJFRFRMU19FUlJfWDUwOV9JTlZBTElEX1NFUklBTCArIE1CRURUTFNfRVJSX0FTTjFfT1VUX09GX0RBVEEKIAogWDUwOSBDUkwgQVNOMSAoVEJTQ2VydExpc3QsIGdvb2QgZW50cnkgdGhlbiBlbXB0eSBlbnRyeSBhdCBlbmQpCi1kZXBlbmRzX29uOk1CRURUTFNfUlNBX0M6TUJFRFRMU19NRF9DQU5fU0hBMjI0CitkZXBlbmRzX29uOk1CRURUTFNfUlNBX0M6UFNBX1dBTlRfQUxHX1NIQV8yMjQKIHg1MDlwYXJzZV9jcmw6IjMwNGIzMDQ5MDIwMTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGUwNTAwMzAwZjMxMGQzMDBiMDYwMzU1MDQwMzEzMDQ0MTQyNDM0NDE3MGMzMDM5MzAzMTMwMzEzMDMwMzAzMDMwMzAzMDE2MzAxMjgyMDJhYmNkMTcwYzMwMzgzMTMyMzMzMTMyMzMzNTM5MzUzOTMwMDAiOiIiOk1CRURUTFNfRVJSX1g1MDlfSU5WQUxJRF9TRVJJQUwgKyBNQkVEVExTX0VSUl9BU04xX09VVF9PRl9EQVRBCiAKIFg1MDkgQ1JMIEFTTjEgKFRCU0NlcnRMaXN0LCBtaXNzaW5nIHRpbWUgaW4gZW50cnkpCi1kZXBlbmRzX29uOk1CRURUTFNfUlNBX0M6TUJFRFRMU19NRF9DQU5fU0hBMjI0CitkZXBlbmRzX29uOk1CRURUTFNfUlNBX0M6UFNBX1dBTlRfQUxHX1NIQV8yMjQKIHg1MDlwYXJzZV9jcmw6IjMwNGUzMDM5MDIwMTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGUwNTAwMzAwZjMxMGQzMDBiMDYwMzU1MDQwMzEzMDQ0MTQyNDM0NDE3MGMzMDM5MzAzMTMwMzEzMDMwMzAzMDMwMzAzMDA2MzAwNDgyMDJhYmNkMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGUwNTAwMDMwMjAwMDEiOiIiOk1CRURUTFNfRVJSX1g1MDlfSU5WQUxJRF9EQVRFICsgTUJFRFRMU19FUlJfQVNOMV9PVVRfT0ZfREFUQQogCiBYNTA5IENSTCBBU04xIChUQlNDZXJ0TGlzdCwgbWlzc2luZyB0aW1lIGluIGVudHJ5IGF0IGVuZCkKLWRlcGVuZHNfb246TUJFRFRMU19SU0FfQzpNQkVEVExTX01EX0NBTl9TSEEyMjQKK2RlcGVuZHNfb246TUJFRFRMU19SU0FfQzpQU0FfV0FOVF9BTEdfU0hBXzIyNAogeDUwOXBhcnNlX2NybDoiMzAzYjMwMzkwMjAxMDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwZTA1MDAzMDBmMzEwZDMwMGIwNjAzNTUwNDAzMTMwNDQxNDI0MzQ0MTcwYzMwMzkzMDMxMzAzMTMwMzAzMDMwMzAzMDMwMDYzMDA0ODIwMmFiY2QiOiIiOk1CRURUTFNfRVJSX1g1MDlfSU5WQUxJRF9EQVRFICsgTUJFRFRMU19FUlJfQVNOMV9PVVRfT0ZfREFUQQogCiBYNTA5IENSTCBBU04xIChUQlNDZXJ0TGlzdCwgaW52YWxpZCB0YWcgZm9yIHRpbWUgaW4gZW50cnkpCi1kZXBlbmRzX29uOk1CRURUTFNfUlNBX0M6TUJFRFRMU19NRF9DQU5fU0hBMjI0CitkZXBlbmRzX29uOk1CRURUTFNfUlNBX0M6UFNBX1dBTlRfQUxHX1NIQV8yMjQKIHg1MDlwYXJzZV9jcmw6IjMwNWMzMDQ3MDIwMTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGUwNTAwMzAwZjMxMGQzMDBiMDYwMzU1MDQwMzEzMDQ0MTQyNDM0NDE3MGMzMDM5MzAzMTMwMzEzMDMwMzAzMDMwMzAzMDE0MzAxMjgyMDJhYmNkMTkwYzMwMzgzMTMyMzMzMTMyMzMzNTM5MzUzOTMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBlMDUwMDAzMDIwMDAxIjoiIjpNQkVEVExTX0VSUl9YNTA5X0lOVkFMSURfREFURSArIE1CRURUTFNfRVJSX0FTTjFfVU5FWFBFQ1RFRF9UQUcKIAogWDUwOSBDUkwgQVNOMSAoVEJTQ2VydExpc3QsIGludmFsaWQgdGFnIGZvciBzZXJpYWwpCi1kZXBlbmRzX29uOk1CRURUTFNfUlNBX0M6TUJFRFRMU19NRF9DQU5fU0hBMjI0CitkZXBlbmRzX29uOk1CRURUTFNfUlNBX0M6UFNBX1dBTlRfQUxHX1NIQV8yMjQKIHg1MDlwYXJzZV9jcmw6IjMwNWMzMDQ3MDIwMTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGUwNTAwMzAwZjMxMGQzMDBiMDYwMzU1MDQwMzEzMDQ0MTQyNDM0NDE3MGMzMDM5MzAzMTMwMzEzMDMwMzAzMDMwMzAzMDE0MzAxMjg0MDJhYmNkMTcwYzMwMzgzMTMyMzMzMTMyMzMzNTM5MzUzOTMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBlMDUwMDAzMDIwMDAxIjoiIjpNQkVEVExTX0VSUl9YNTA5X0lOVkFMSURfU0VSSUFMICsgTUJFRFRMU19FUlJfQVNOMV9VTkVYUEVDVEVEX1RBRwogCiBYNTA5IENSTCBBU04xIChUQlNDZXJ0TGlzdCwgbm8gZW50cmllcykKLWRlcGVuZHNfb246TUJFRFRMU19SU0FfQzpNQkVEVExTX01EX0NBTl9TSEEyMjQ6IU1CRURUTFNfWDUwOV9SRU1PVkVfSU5GTworZGVwZW5kc19vbjpNQkVEVExTX1JTQV9DOlBTQV9XQU5UX0FMR19TSEFfMjI0OiFNQkVEVExTX1g1MDlfUkVNT1ZFX0lORk8KIHg1MDlwYXJzZV9jcmw6IjMwNDYzMDMxMDIwMTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGUwNTAwMzAwZjMxMGQzMDBiMDYwMzU1MDQwMzEzMDQ0MTQyNDM0NDE3MGMzMDM5MzAzMTMwMzEzMDMwMzAzMDMwMzAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwZTA1MDAwMzAyMDAwMSI6IkNSTCB2ZXJzaW9uICAgXDogMVxuaXNzdWVyIG5hbWUgICBcOiBDTj1BQkNEXG50aGlzIHVwZGF0ZSAgIFw6IDIwMDktMDEtMDEgMDBcOjAwXDowMFxubmV4dCB1cGRhdGUgICBcOiAwMDAwLTAwLTAwIDAwXDowMFw6MDBcblJldm9rZWQgY2VydGlmaWNhdGVzXDpcbnNpZ25lZCB1c2luZyAgXDogUlNBIHdpdGggU0hBLTIyNFxuIjowCiAKIFg1MDkgQ1JMIEFTTjEgKGludmFsaWQgdmVyc2lvbiAyKQpAQCAtMjU2NCwxNzAgKzI1NjQsMTcwIEBACiB4NTA5cGFyc2VfY3JsOiIzMDQ5MzAzMTAyMDQ3ZmZmZmZmZjMwMGQwNjA5MmE4NjQ4ODZmNzBkMDEwMTBlMDUwMDMwMGYzMTBkMzAwYjA2MDM1NTA0MDMxMzA0NDE0MjQzNDQxNzBjMzAzOTMwMzEzMDMxMzAzMDMwMzAzMDMwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGUwNTAwMDMwMjAwMDEiOiIiOk1CRURUTFNfRVJSX1g1MDlfVU5LTk9XTl9WRVJTSU9OCiAKIFg1MDkgQ1JMIEFTTjEgKGV4dGVuc2lvbiBzZXEgdG9vIGxvbmcsIGNybC1pZHAucGVtIGJ5dGUgMTIxKQotZGVwZW5kc19vbjpNQkVEVExTX1BFTV9QQVJTRV9DOk1CRURUTFNfUlNBX0M6TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOk1CRURUTFNfUEVNX1BBUlNFX0M6TUJFRFRMU19SU0FfQzpQU0FfV0FOVF9BTEdfU0hBXzI1NgogeDUwOXBhcnNlX2NybDoiMzA4MjAxYjMzMDgxOWMwMjAxMDEzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAzMDNiMzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTExMzAwZjA2MDM1NTA0MGExMzA4NTA2ZjZjNjE3MjUzNTM0YzMxMTkzMDE3MDYwMzU1MDQwMzEzMTA1MDZmNmM2MTcyNTM1MzRjMjA1NDY1NzM3NDIwNDM0MTE3MGQzMTM4MzAzMzMxMzQzMDM3MzMzMTM0Mzg1YTE3MGQzMjM4MzAzMzMxMzQzMDM3MzMzMTM0Mzg1YWEwMmQzMDJiMzAzMDA2MDM1NTFkMWMwMTAxZmYwNDFmMzAxZGEwMWJhMDE5ODYxNzY4NzQ3NDcwM2EyZjJmNzA2YjY5MmU2NTc4NjE2ZDcwNmM2NTJlNjM2ZjZkMmYzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAwMzgyMDEwMTAwYjNmYmU5ZDU4NmVhZjRiOGZmNjBjZjhlZGFlMDZhODUxMzVkYjc4Zjc4MTk4NDk4NzE5NzI1YjViNDAzYzBiODAzYzJjMTUwZjUyZmFhZTczMDZkNmE3ODcxODg1ZGMyZTlkYzgzYTE2NGJhYzcyNjM3NzY0NzRlZjY0MmI2NjAwNDBiMzVhMTQxMGFjMjkxYWM4ZjZmMThhYjg1ZTdmZDZlMjJiZDFhZjFjNDFjYTk1Y2YyNDQ4ZjZlMmI0MmEwMTg0OTNkZmMwM2M2YjZhYTFiOWUzZmU3Yjc2YWYyMTgyZmIyMTIxZGI0MTY2YmYwMTY3ZDZmMzc5YzVhNThhZGVlNTA4MjQyMzQzNGQ5N2JlMjkwOWY1ZTc0ODgwNTNmOTk2NjQ2ZGIxMGRkNDk3ODI2MjZkYTUzYWQ4ZWFkYTAxODEzYzAzMWIyYmFjZGIwMjAzYmMwMTdhYWMxNzM1OTUxYTExZDAxM2VlNGQxZDVmNzE0M2NjYmViZjIzNzFlNjZhMWJlYzZlMWZlYmU2OTE0OGY1MDc4NGVlZjhhZGJiNjY2NjRjOTYxOTZkN2UwYzBiY2RjODA3ZjQ0N2I1NGUwNThmMzc2NDJhMzMzNzk5NWJmYmNkMzMyMjA4YmQ2MDE2OTM2NzA1YzgyMjYzZWFiZDdhZmZkYmE5MmZhZTMiOiIiOk1CRURUTFNfRVJSX1g1MDlfSU5WQUxJRF9FWFRFTlNJT05TICsgTUJFRFRMU19FUlJfQVNOMV9PVVRfT0ZfREFUQQogCiBYNTA5IENSTCBBU04xIChleHRlbnNpb24gb2lkIHRvbyBsb25nLCBjcmwtaWRwLnBlbSBieXRlIDEyMykKLWRlcGVuZHNfb246TUJFRFRMU19QRU1fUEFSU0VfQzpNQkVEVExTX1JTQV9DOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpNQkVEVExTX1BFTV9QQVJTRV9DOk1CRURUTFNfUlNBX0M6UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHg1MDlwYXJzZV9jcmw6IjMwODIwMWIzMzA4MTljMDIwMTAxMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMzAzYjMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzExMTMwMGYwNjAzNTUwNDBhMTMwODUwNmY2YzYxNzI1MzUzNGMzMTE5MzAxNzA2MDM1NTA0MDMxMzEwNTA2ZjZjNjE3MjUzNTM0YzIwNTQ2NTczNzQyMDQzNDExNzBkMzEzODMwMzMzMTM0MzAzNzMzMzEzNDM4NWExNzBkMzIzODMwMzMzMTM0MzAzNzMzMzEzNDM4NWFhMDJkMzAyYjMwMjkwNjI4NTUxZDFjMDEwMWZmMDQxZjMwMWRhMDFiYTAxOTg2MTc2ODc0NzQ3MDNhMmYyZjcwNmI2OTJlNjU3ODYxNmQ3MDZjNjUyZTYzNmY2ZDJmMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMDM4MjAxMDEwMGIzZmJlOWQ1ODZlYWY0YjhmZjYwY2Y4ZWRhZTA2YTg1MTM1ZGI3OGY3ODE5ODQ5ODcxOTcyNWI1YjQwM2MwYjgwM2MyYzE1MGY1MmZhYWU3MzA2ZDZhNzg3MTg4NWRjMmU5ZGM4M2ExNjRiYWM3MjYzNzc2NDc0ZWY2NDJiNjYwMDQwYjM1YTE0MTBhYzI5MWFjOGY2ZjE4YWI4NWU3ZmQ2ZTIyYmQxYWYxYzQxY2E5NWNmMjQ0OGY2ZTJiNDJhMDE4NDkzZGZjMDNjNmI2YWExYjllM2ZlN2I3NmFmMjE4MmZiMjEyMWRiNDE2NmJmMDE2N2Q2ZjM3OWM1YTU4YWRlZTUwODI0MjM0MzRkOTdiZTI5MDlmNWU3NDg4MDUzZjk5NjY0NmRiMTBkZDQ5NzgyNjI2ZGE1M2FkOGVhZGEwMTgxM2MwMzFiMmJhY2RiMDIwM2JjMDE3YWFjMTczNTk1MWExMWQwMTNlZTRkMWQ1ZjcxNDNjY2JlYmYyMzcxZTY2YTFiZWM2ZTFmZWJlNjkxNDhmNTA3ODRlZWY4YWRiYjY2NjY0Yzk2MTk2ZDdlMGMwYmNkYzgwN2Y0NDdiNTRlMDU4ZjM3NjQyYTMzMzc5OTViZmJjZDMzMjIwOGJkNjAxNjkzNjcwNWM4MjI2M2VhYmQ3YWZmZGJhOTJmYWUzIjoiIjpNQkVEVExTX0VSUl9YNTA5X0lOVkFMSURfRVhURU5TSU9OUyArIE1CRURUTFNfRVJSX0FTTjFfT1VUX09GX0RBVEEKIAogWDUwOSBDUkwgQVNOMSAoZXh0ZW5zaW9uIGNyaXRpY2FsIGludmFsaWQgbGVuZ3RoLCBjcmwtaWRwLnBlbSBieXRlIDEyOCkKLWRlcGVuZHNfb246TUJFRFRMU19QRU1fUEFSU0VfQzpNQkVEVExTX1JTQV9DOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpNQkVEVExTX1BFTV9QQVJTRV9DOk1CRURUTFNfUlNBX0M6UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHg1MDlwYXJzZV9jcmw6IjMwODIwMWIzMzA4MTljMDIwMTAxMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMzAzYjMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0ZTRjMzExMTMwMGYwNjAzNTUwNDBhMTMwODUwNmY2YzYxNzI1MzUzNGMzMTE5MzAxNzA2MDM1NTA0MDMxMzEwNTA2ZjZjNjE3MjUzNTM0YzIwNTQ2NTczNzQyMDQzNDExNzBkMzEzODMwMzMzMTM0MzAzNzMzMzEzNDM4NWExNzBkMzIzODMwMzMzMTM0MzAzNzMzMzEzNDM4NWFhMDJkMzAyYjMwMjkwNjAzNTUxZDFjMDEwMmZmMDQxZjMwMWRhMDFiYTAxOTg2MTc2ODc0NzQ3MDNhMmYyZjcwNmI2OTJlNjU3ODYxNmQ3MDZjNjUyZTYzNmY2ZDJmMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMGIwNTAwMDM4MjAxMDEwMGIzZmJlOWQ1ODZlYWY0YjhmZjYwY2Y4ZWRhZTA2YTg1MTM1ZGI3OGY3ODE5ODQ5ODcxOTcyNWI1YjQwM2MwYjgwM2MyYzE1MGY1MmZhYWU3MzA2ZDZhNzg3MTg4NWRjMmU5ZGM4M2ExNjRiYWM3MjYzNzc2NDc0ZWY2NDJiNjYwMDQwYjM1YTE0MTBhYzI5MWFjOGY2ZjE4YWI4NWU3ZmQ2ZTIyYmQxYWYxYzQxY2E5NWNmMjQ0OGY2ZTJiNDJhMDE4NDkzZGZjMDNjNmI2YWExYjllM2ZlN2I3NmFmMjE4MmZiMjEyMWRiNDE2NmJmMDE2N2Q2ZjM3OWM1YTU4YWRlZTUwODI0MjM0MzRkOTdiZTI5MDlmNWU3NDg4MDUzZjk5NjY0NmRiMTBkZDQ5NzgyNjI2ZGE1M2FkOGVhZGEwMTgxM2MwMzFiMmJhY2RiMDIwM2JjMDE3YWFjMTczNTk1MWExMWQwMTNlZTRkMWQ1ZjcxNDNjY2JlYmYyMzcxZTY2YTFiZWM2ZTFmZWJlNjkxNDhmNTA3ODRlZWY4YWRiYjY2NjY0Yzk2MTk2ZDdlMGMwYmNkYzgwN2Y0NDdiNTRlMDU4ZjM3NjQyYTMzMzc5OTViZmJjZDMzMjIwOGJkNjAxNjkzNjcwNWM4MjI2M2VhYmQ3YWZmZGJhOTJmYWUzIjoiIjpNQkVEVExTX0VSUl9YNTA5X0lOVkFMSURfRVhURU5TSU9OUyArIE1CRURUTFNfRVJSX0FTTjFfSU5WQUxJRF9MRU5HVEgKIAogWDUwOSBDUkwgQVNOMSAoZXh0ZW5zaW9uIGRhdGEgdG9vIGxvbmcsIGNybC1pZHAucGVtIGJ5dGUgMTMxKQotZGVwZW5kc19vbjpNQkVEVExTX1BFTV9QQVJTRV9DOk1CRURUTFNfUlNBX0M6TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOk1CRURUTFNfUEVNX1BBUlNFX0M6TUJFRFRMU19SU0FfQzpQU0FfV0FOVF9BTEdfU0hBXzI1NgogeDUwOXBhcnNlX2NybDoiMzA4MjAxYjMzMDgxOWMwMjAxMDEzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAzMDNiMzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTExMzAwZjA2MDM1NTA0MGExMzA4NTA2ZjZjNjE3MjUzNTM0YzMxMTkzMDE3MDYwMzU1MDQwMzEzMTA1MDZmNmM2MTcyNTM1MzRjMjA1NDY1NzM3NDIwNDM0MTE3MGQzMTM4MzAzMzMxMzQzMDM3MzMzMTM0Mzg1YTE3MGQzMjM4MzAzMzMxMzQzMDM3MzMzMTM0Mzg1YWEwMmQzMDJiMzAyOTA2MDM1NTFkMWMwMTAxZmYwNDIwMzAxZGEwMWJhMDE5ODYxNzY4NzQ3NDcwM2EyZjJmNzA2YjY5MmU2NTc4NjE2ZDcwNmM2NTJlNjM2ZjZkMmYzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAwMzgyMDEwMTAwYjNmYmU5ZDU4NmVhZjRiOGZmNjBjZjhlZGFlMDZhODUxMzVkYjc4Zjc4MTk4NDk4NzE5NzI1YjViNDAzYzBiODAzYzJjMTUwZjUyZmFhZTczMDZkNmE3ODcxODg1ZGMyZTlkYzgzYTE2NGJhYzcyNjM3NzY0NzRlZjY0MmI2NjAwNDBiMzVhMTQxMGFjMjkxYWM4ZjZmMThhYjg1ZTdmZDZlMjJiZDFhZjFjNDFjYTk1Y2YyNDQ4ZjZlMmI0MmEwMTg0OTNkZmMwM2M2YjZhYTFiOWUzZmU3Yjc2YWYyMTgyZmIyMTIxZGI0MTY2YmYwMTY3ZDZmMzc5YzVhNThhZGVlNTA4MjQyMzQzNGQ5N2JlMjkwOWY1ZTc0ODgwNTNmOTk2NjQ2ZGIxMGRkNDk3ODI2MjZkYTUzYWQ4ZWFkYTAxODEzYzAzMWIyYmFjZGIwMjAzYmMwMTdhYWMxNzM1OTUxYTExZDAxM2VlNGQxZDVmNzE0M2NjYmViZjIzNzFlNjZhMWJlYzZlMWZlYmU2OTE0OGY1MDc4NGVlZjhhZGJiNjY2NjRjOTYxOTZkN2UwYzBiY2RjODA3ZjQ0N2I1NGUwNThmMzc2NDJhMzMzNzk5NWJmYmNkMzMyMjA4YmQ2MDE2OTM2NzA1YzgyMjYzZWFiZDdhZmZkYmE5MmZhZTMiOiIiOk1CRURUTFNfRVJSX1g1MDlfSU5WQUxJRF9FWFRFTlNJT05TICsgTUJFRFRMU19FUlJfQVNOMV9PVVRfT0ZfREFUQQogCiBYNTA5IENSTCBBU04xIChleHRlbnNpb24gZGF0YSB0b28gc2hvcnQsIGNybC1pZHAucGVtIGJ5dGUgMTMxKQotZGVwZW5kc19vbjpNQkVEVExTX1BFTV9QQVJTRV9DOk1CRURUTFNfUlNBX0M6TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOk1CRURUTFNfUEVNX1BBUlNFX0M6TUJFRFRMU19SU0FfQzpQU0FfV0FOVF9BTEdfU0hBXzI1NgogeDUwOXBhcnNlX2NybDoiMzA4MjAxYjMzMDgxOWMwMjAxMDEzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAzMDNiMzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTExMzAwZjA2MDM1NTA0MGExMzA4NTA2ZjZjNjE3MjUzNTM0YzMxMTkzMDE3MDYwMzU1MDQwMzEzMTA1MDZmNmM2MTcyNTM1MzRjMjA1NDY1NzM3NDIwNDM0MTE3MGQzMTM4MzAzMzMxMzQzMDM3MzMzMTM0Mzg1YTE3MGQzMjM4MzAzMzMxMzQzMDM3MzMzMTM0Mzg1YWEwMmQzMDJiMzAyOTA2MDM1NTFkMWMwMTAxZmYwNDFlMzAxZGEwMWJhMDE5ODYxNzY4NzQ3NDcwM2EyZjJmNzA2YjY5MmU2NTc4NjE2ZDcwNmM2NTJlNjM2ZjZkMmYzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAwMzgyMDEwMTAwYjNmYmU5ZDU4NmVhZjRiOGZmNjBjZjhlZGFlMDZhODUxMzVkYjc4Zjc4MTk4NDk4NzE5NzI1YjViNDAzYzBiODAzYzJjMTUwZjUyZmFhZTczMDZkNmE3ODcxODg1ZGMyZTlkYzgzYTE2NGJhYzcyNjM3NzY0NzRlZjY0MmI2NjAwNDBiMzVhMTQxMGFjMjkxYWM4ZjZmMThhYjg1ZTdmZDZlMjJiZDFhZjFjNDFjYTk1Y2YyNDQ4ZjZlMmI0MmEwMTg0OTNkZmMwM2M2YjZhYTFiOWUzZmU3Yjc2YWYyMTgyZmIyMTIxZGI0MTY2YmYwMTY3ZDZmMzc5YzVhNThhZGVlNTA4MjQyMzQzNGQ5N2JlMjkwOWY1ZTc0ODgwNTNmOTk2NjQ2ZGIxMGRkNDk3ODI2MjZkYTUzYWQ4ZWFkYTAxODEzYzAzMWIyYmFjZGIwMjAzYmMwMTdhYWMxNzM1OTUxYTExZDAxM2VlNGQxZDVmNzE0M2NjYmViZjIzNzFlNjZhMWJlYzZlMWZlYmU2OTE0OGY1MDc4NGVlZjhhZGJiNjY2NjRjOTYxOTZkN2UwYzBiY2RjODA3ZjQ0N2I1NGUwNThmMzc2NDJhMzMzNzk5NWJmYmNkMzMyMjA4YmQ2MDE2OTM2NzA1YzgyMjYzZWFiZDdhZmZkYmE5MmZhZTMiOiIiOk1CRURUTFNfRVJSX1g1MDlfSU5WQUxJRF9FWFRFTlNJT05TICsgTUJFRFRMU19FUlJfQVNOMV9MRU5HVEhfTUlTTUFUQ0gKIAogWDUwOSBDUkwgQVNOMSAoZXh0ZW5zaW9uIG5vdCBjcml0aWNhbCBleHBsaWNpdCwgY3JsLWlkcC5wZW0gYnl0ZSAxMjkpCi1kZXBlbmRzX29uOk1CRURUTFNfUEVNX1BBUlNFX0M6TUJFRFRMU19SU0FfQzpNQkVEVExTX01EX0NBTl9TSEEyNTY6IU1CRURUTFNfWDUwOV9SRU1PVkVfSU5GTworZGVwZW5kc19vbjpNQkVEVExTX1BFTV9QQVJTRV9DOk1CRURUTFNfUlNBX0M6UFNBX1dBTlRfQUxHX1NIQV8yNTY6IU1CRURUTFNfWDUwOV9SRU1PVkVfSU5GTwogeDUwOXBhcnNlX2NybDoiMzA4MjAxYjMzMDgxOWMwMjAxMDEzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAzMDNiMzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTExMzAwZjA2MDM1NTA0MGExMzA4NTA2ZjZjNjE3MjUzNTM0YzMxMTkzMDE3MDYwMzU1MDQwMzEzMTA1MDZmNmM2MTcyNTM1MzRjMjA1NDY1NzM3NDIwNDM0MTE3MGQzMTM4MzAzMzMxMzQzMDM3MzMzMTM0Mzg1YTE3MGQzMjM4MzAzMzMxMzQzMDM3MzMzMTM0Mzg1YWEwMmQzMDJiMzAyOTA2MDM1NTFkMWMwMTAxMDAwNDFmMzAxZGEwMWJhMDE5ODYxNzY4NzQ3NDcwM2EyZjJmNzA2YjY5MmU2NTc4NjE2ZDcwNmM2NTJlNjM2ZjZkMmYzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwYjA1MDAwMzgyMDEwMTAwYjNmYmU5ZDU4NmVhZjRiOGZmNjBjZjhlZGFlMDZhODUxMzVkYjc4Zjc4MTk4NDk4NzE5NzI1YjViNDAzYzBiODAzYzJjMTUwZjUyZmFhZTczMDZkNmE3ODcxODg1ZGMyZTlkYzgzYTE2NGJhYzcyNjM3NzY0NzRlZjY0MmI2NjAwNDBiMzVhMTQxMGFjMjkxYWM4ZjZmMThhYjg1ZTdmZDZlMjJiZDFhZjFjNDFjYTk1Y2YyNDQ4ZjZlMmI0MmEwMTg0OTNkZmMwM2M2YjZhYTFiOWUzZmU3Yjc2YWYyMTgyZmIyMTIxZGI0MTY2YmYwMTY3ZDZmMzc5YzVhNThhZGVlNTA4MjQyMzQzNGQ5N2JlMjkwOWY1ZTc0ODgwNTNmOTk2NjQ2ZGIxMGRkNDk3ODI2MjZkYTUzYWQ4ZWFkYTAxODEzYzAzMWIyYmFjZGIwMjAzYmMwMTdhYWMxNzM1OTUxYTExZDAxM2VlNGQxZDVmNzE0M2NjYmViZjIzNzFlNjZhMWJlYzZlMWZlYmU2OTE0OGY1MDc4NGVlZjhhZGJiNjY2NjRjOTYxOTZkN2UwYzBiY2RjODA3ZjQ0N2I1NGUwNThmMzc2NDJhMzMzNzk5NWJmYmNkMzMyMjA4YmQ2MDE2OTM2NzA1YzgyMjYzZWFiZDdhZmZkYmE5MmZhZTMiOiJDUkwgdmVyc2lvbiAgIFw6IDJcbmlzc3VlciBuYW1lICAgXDogQz1OTCwgTz1Qb2xhclNTTCwgQ049UG9sYXJTU0wgVGVzdCBDQVxudGhpcyB1cGRhdGUgICBcOiAyMDE4LTAzLTE0IDA3XDozMVw6NDhcbm5leHQgdXBkYXRlICAgXDogMjAyOC0wMy0xNCAwN1w6MzFcOjQ4XG5SZXZva2VkIGNlcnRpZmljYXRlc1w6XG5zaWduZWQgdXNpbmcgIFw6IFJTQSB3aXRoIFNIQS0yNTZcbiI6MAogCiBYNTA5IENSVCBwYXJzZSBmaWxlIGRpcjMvUmVhZG1lCi1tYmVkdGxzX3g1MDlfY3J0X3BhcnNlX2ZpbGU6ImRhdGFfZmlsZXMvZGlyMy9SZWFkbWUiOk1CRURUTFNfRVJSX1g1MDlfSU5WQUxJRF9GT1JNQVQ6MAorbWJlZHRsc194NTA5X2NydF9wYXJzZV9maWxlOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9kaXIzL1JlYWRtZSI6TUJFRFRMU19FUlJfWDUwOV9JTlZBTElEX0ZPUk1BVDowCiAKIFg1MDkgQ1JUIHBhcnNlIGZpbGUgZGlyMy90ZXN0LWNhLmNydAogZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEExOk1CRURUTFNfUlNBX0MKLW1iZWR0bHNfeDUwOV9jcnRfcGFyc2VfZmlsZToiZGF0YV9maWxlcy9kaXIzL3Rlc3QtY2EuY3J0IjowOjEKK21iZWR0bHNfeDUwOV9jcnRfcGFyc2VfZmlsZToiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvZGlyMy90ZXN0LWNhLmNydCI6MDoxCiAKIFg1MDkgQ1JUIHBhcnNlIGZpbGUgZGlyMy90ZXN0LWNhMi5jcnQKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2Ok1CRURUTFNfUEtfQ0FOX0VDRFNBX1NPTUU6TUJFRFRMU19FQ1BfSEFWRV9TRUNQMzg0UjEKLW1iZWR0bHNfeDUwOV9jcnRfcGFyc2VfZmlsZToiZGF0YV9maWxlcy9kaXIzL3Rlc3QtY2EyLmNydCI6MDoxCitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2Ok1CRURUTFNfUEtfQ0FOX0VDRFNBX1NPTUU6TUJFRFRMU19FQ1BfSEFWRV9TRUNQMzg0UjEKK21iZWR0bHNfeDUwOV9jcnRfcGFyc2VfZmlsZToiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvZGlyMy90ZXN0LWNhMi5jcnQiOjA6MQogCiAjIFRoZSBwYXJzZV9wYXRoIHRlc3RzIGFyZSBrbm93biB0byBmYWlsIHdoZW4gY29tcGlsZWQgZm9yIGEgMzItYml0IGFyY2hpdGVjdHVyZQogIyBhbmQgcnVuIHZpYSBxZW11LXVzZXIgb24gTGludXggb24gYSA2NC1iaXQgaG9zdC4gVGhpcyBpcyBkdWUgdG8gYSBrbm93bgogIyBidWcgaW4gUWVtdTogaHR0cHM6Ly9naXRsYWIuY29tL3FlbXUtcHJvamVjdC9xZW11Ly0vaXNzdWVzLzI2MwogWDUwOSBDUlQgcGFyc2UgcGF0aCAjMSAob25lIGNlcnQpCiBkZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTE6TUJFRFRMU19SU0FfQwotbWJlZHRsc194NTA5X2NydF9wYXJzZV9wYXRoOiJkYXRhX2ZpbGVzL2RpcjEiOjA6MQorbWJlZHRsc194NTA5X2NydF9wYXJzZV9wYXRoOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9kaXIxIjowOjEKIAogWDUwOSBDUlQgcGFyc2UgcGF0aCAjMiAodHdvIGNlcnRzKQotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEExOk1CRURUTFNfUlNBX0M6TUJFRFRMU19NRF9DQU5fU0hBMjU2Ok1CRURUTFNfUEtfQ0FOX0VDRFNBX1NPTUU6TUJFRFRMU19FQ1BfSEFWRV9TRUNQMzg0UjEKLW1iZWR0bHNfeDUwOV9jcnRfcGFyc2VfcGF0aDoiZGF0YV9maWxlcy9kaXIyIjowOjIKK2RlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMTpNQkVEVExTX1JTQV9DOlBTQV9XQU5UX0FMR19TSEFfMjU2Ok1CRURUTFNfUEtfQ0FOX0VDRFNBX1NPTUU6TUJFRFRMU19FQ1BfSEFWRV9TRUNQMzg0UjEKK21iZWR0bHNfeDUwOV9jcnRfcGFyc2VfcGF0aDoiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvZGlyMiI6MDoyCiAKIFg1MDkgQ1JUIHBhcnNlIHBhdGggIzMgKHR3byBjZXJ0cywgb25lIG5vbi1jZXJ0KQotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEExOk1CRURUTFNfUlNBX0M6TUJFRFRMU19NRF9DQU5fU0hBMjU2Ok1CRURUTFNfUEtfQ0FOX0VDRFNBX1NPTUU6TUJFRFRMU19FQ1BfSEFWRV9TRUNQMzg0UjEKLW1iZWR0bHNfeDUwOV9jcnRfcGFyc2VfcGF0aDoiZGF0YV9maWxlcy9kaXIzIjoxOjIKK2RlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMTpNQkVEVExTX1JTQV9DOlBTQV9XQU5UX0FMR19TSEFfMjU2Ok1CRURUTFNfUEtfQ0FOX0VDRFNBX1NPTUU6TUJFRFRMU19FQ1BfSEFWRV9TRUNQMzg0UjEKK21iZWR0bHNfeDUwOV9jcnRfcGFyc2VfcGF0aDoiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvZGlyMyI6MToyCiAKIFg1MDkgQ1JUIHZlcmlmeSBsb25nIGNoYWluIChtYXggaW50ZXJtZWRpYXRlIENBLCB0cnVzdGVkKQotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTY6TUJFRFRMU19QS19DQU5fRUNEU0FfU09NRTpNQkVEVExTX0VDUF9IQVZFX1NFQ1AyNTZSMQotbWJlZHRsc194NTA5X2NydF92ZXJpZnlfbWF4OiJkYXRhX2ZpbGVzL2Rpci1tYXhwYXRoLzAwLmNydCI6ImRhdGFfZmlsZXMvZGlyLW1heHBhdGgiOk1CRURUTFNfWDUwOV9NQVhfSU5URVJNRURJQVRFX0NBOjA6MAorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NjpNQkVEVExTX1BLX0NBTl9FQ0RTQV9TT01FOk1CRURUTFNfRUNQX0hBVkVfU0VDUDI1NlIxCittYmVkdGxzX3g1MDlfY3J0X3ZlcmlmeV9tYXg6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL2Rpci1tYXhwYXRoLzAwLmNydCI6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL2Rpci1tYXhwYXRoIjpNQkVEVExTX1g1MDlfTUFYX0lOVEVSTUVESUFURV9DQTowOjAKIAogWDUwOSBDUlQgdmVyaWZ5IGxvbmcgY2hhaW4gKG1heCBpbnRlcm1lZGlhdGUgQ0EsIHVudHJ1c3RlZCkKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2Ok1CRURUTFNfUEtfQ0FOX0VDRFNBX1NPTUU6TUJFRFRMU19FQ1BfSEFWRV9TRUNQMjU2UjE6TUJFRFRMU19FQ1BfSEFWRV9TRUNQMzg0UjEKLW1iZWR0bHNfeDUwOV9jcnRfdmVyaWZ5X21heDoiZGF0YV9maWxlcy90ZXN0LWNhMi5jcnQiOiJkYXRhX2ZpbGVzL2Rpci1tYXhwYXRoIjpNQkVEVExTX1g1MDlfTUFYX0lOVEVSTUVESUFURV9DQS0xOk1CRURUTFNfRVJSX1g1MDlfQ0VSVF9WRVJJRllfRkFJTEVEOk1CRURUTFNfWDUwOV9CQURDRVJUX05PVF9UUlVTVEVECitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2Ok1CRURUTFNfUEtfQ0FOX0VDRFNBX1NPTUU6TUJFRFRMU19FQ1BfSEFWRV9TRUNQMjU2UjE6TUJFRFRMU19FQ1BfSEFWRV9TRUNQMzg0UjEKK21iZWR0bHNfeDUwOV9jcnRfdmVyaWZ5X21heDoiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvdGVzdC1jYTIuY3J0IjoiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvZGlyLW1heHBhdGgiOk1CRURUTFNfWDUwOV9NQVhfSU5URVJNRURJQVRFX0NBLTE6TUJFRFRMU19FUlJfWDUwOV9DRVJUX1ZFUklGWV9GQUlMRUQ6TUJFRFRMU19YNTA5X0JBRENFUlRfTk9UX1RSVVNURUQKIAogWDUwOSBDUlQgdmVyaWZ5IGxvbmcgY2hhaW4gKG1heCBpbnRlcm1lZGlhdGUgQ0EgKyAxKQotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTY6TUJFRFRMU19QS19DQU5fRUNEU0FfU09NRTpNQkVEVExTX0VDUF9IQVZFX1NFQ1AyNTZSMQotbWJlZHRsc194NTA5X2NydF92ZXJpZnlfbWF4OiJkYXRhX2ZpbGVzL2Rpci1tYXhwYXRoLzAwLmNydCI6ImRhdGFfZmlsZXMvZGlyLW1heHBhdGgiOk1CRURUTFNfWDUwOV9NQVhfSU5URVJNRURJQVRFX0NBKzE6TUJFRFRMU19FUlJfWDUwOV9GQVRBTF9FUlJPUjotMQorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NjpNQkVEVExTX1BLX0NBTl9FQ0RTQV9TT01FOk1CRURUTFNfRUNQX0hBVkVfU0VDUDI1NlIxCittYmVkdGxzX3g1MDlfY3J0X3ZlcmlmeV9tYXg6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL2Rpci1tYXhwYXRoLzAwLmNydCI6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL2Rpci1tYXhwYXRoIjpNQkVEVExTX1g1MDlfTUFYX0lOVEVSTUVESUFURV9DQSsxOk1CRURUTFNfRVJSX1g1MDlfRkFUQUxfRVJST1I6LTEKIAogWDUwOSBDUlQgdmVyaWZ5IGNoYWluICMxICh6ZXJvIHBhdGhsZW4gaW50ZXJtZWRpYXRlKQotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTY6TUJFRFRMU19SU0FfQwotbWJlZHRsc194NTA5X2NydF92ZXJpZnlfY2hhaW46ImRhdGFfZmlsZXMvZGlyNC9jZXJ0MTQuY3J0IGRhdGFfZmlsZXMvZGlyNC9jZXJ0MTMuY3J0IGRhdGFfZmlsZXMvZGlyNC9jZXJ0MTIuY3J0IjoiZGF0YV9maWxlcy9kaXI0L2NlcnQxMS5jcnQiOk1CRURUTFNfWDUwOV9CQURDRVJUX05PVF9UUlVTVEVEOk1CRURUTFNfRVJSX1g1MDlfQ0VSVF9WRVJJRllfRkFJTEVEOiIiOjAKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTY6TUJFRFRMU19SU0FfQworbWJlZHRsc194NTA5X2NydF92ZXJpZnlfY2hhaW46Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL2RpcjQvY2VydDE0LmNydCAuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9kaXI0L2NlcnQxMy5jcnQgLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvZGlyNC9jZXJ0MTIuY3J0IjoiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvZGlyNC9jZXJ0MTEuY3J0IjpNQkVEVExTX1g1MDlfQkFEQ0VSVF9OT1RfVFJVU1RFRDpNQkVEVExTX0VSUl9YNTA5X0NFUlRfVkVSSUZZX0ZBSUxFRDoiIjowCiAKIFg1MDkgQ1JUIHZlcmlmeSBjaGFpbiAjMiAoemVybyBwYXRobGVuIHJvb3QpCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NjpNQkVEVExTX1JTQV9DCi1tYmVkdGxzX3g1MDlfY3J0X3ZlcmlmeV9jaGFpbjoiZGF0YV9maWxlcy9kaXI0L2NlcnQyMy5jcnQgZGF0YV9maWxlcy9kaXI0L2NlcnQyMi5jcnQiOiJkYXRhX2ZpbGVzL2RpcjQvY2VydDIxLmNydCI6TUJFRFRMU19YNTA5X0JBRENFUlRfTk9UX1RSVVNURUQ6TUJFRFRMU19FUlJfWDUwOV9DRVJUX1ZFUklGWV9GQUlMRUQ6IiI6MAorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NjpNQkVEVExTX1JTQV9DCittYmVkdGxzX3g1MDlfY3J0X3ZlcmlmeV9jaGFpbjoiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvZGlyNC9jZXJ0MjMuY3J0IC4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL2RpcjQvY2VydDIyLmNydCI6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL2RpcjQvY2VydDIxLmNydCI6TUJFRFRMU19YNTA5X0JBRENFUlRfTk9UX1RSVVNURUQ6TUJFRFRMU19FUlJfWDUwOV9DRVJUX1ZFUklGWV9GQUlMRUQ6IiI6MAogCiBYNTA5IENSVCB2ZXJpZnkgY2hhaW4gIzMgKG5vbnplcm8gcGF0aGxlbiByb290KQotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTY6TUJFRFRMU19SU0FfQwotbWJlZHRsc194NTA5X2NydF92ZXJpZnlfY2hhaW46ImRhdGFfZmlsZXMvZGlyNC9jZXJ0MzQuY3J0IGRhdGFfZmlsZXMvZGlyNC9jZXJ0MzMuY3J0IGRhdGFfZmlsZXMvZGlyNC9jZXJ0MzIuY3J0IjoiZGF0YV9maWxlcy9kaXI0L2NlcnQzMS5jcnQiOk1CRURUTFNfWDUwOV9CQURDRVJUX05PVF9UUlVTVEVEOk1CRURUTFNfRVJSX1g1MDlfQ0VSVF9WRVJJRllfRkFJTEVEOiIiOjAKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTY6TUJFRFRMU19SU0FfQworbWJlZHRsc194NTA5X2NydF92ZXJpZnlfY2hhaW46Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL2RpcjQvY2VydDM0LmNydCAuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9kaXI0L2NlcnQzMy5jcnQgLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvZGlyNC9jZXJ0MzIuY3J0IjoiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvZGlyNC9jZXJ0MzEuY3J0IjpNQkVEVExTX1g1MDlfQkFEQ0VSVF9OT1RfVFJVU1RFRDpNQkVEVExTX0VSUl9YNTA5X0NFUlRfVkVSSUZZX0ZBSUxFRDoiIjowCiAKIFg1MDkgQ1JUIHZlcmlmeSBjaGFpbiAjNCAobm9uemVybyBwYXRobGVuIGludGVybWVkaWF0ZSkKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2Ok1CRURUTFNfUlNBX0MKLW1iZWR0bHNfeDUwOV9jcnRfdmVyaWZ5X2NoYWluOiJkYXRhX2ZpbGVzL2RpcjQvY2VydDQ1LmNydCBkYXRhX2ZpbGVzL2RpcjQvY2VydDQ0LmNydCBkYXRhX2ZpbGVzL2RpcjQvY2VydDQzLmNydCBkYXRhX2ZpbGVzL2RpcjQvY2VydDQyLmNydCI6ImRhdGFfZmlsZXMvZGlyNC9jZXJ0NDEuY3J0IjpNQkVEVExTX1g1MDlfQkFEQ0VSVF9OT1RfVFJVU1RFRDpNQkVEVExTX0VSUl9YNTA5X0NFUlRfVkVSSUZZX0ZBSUxFRDoiIjowCitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2Ok1CRURUTFNfUlNBX0MKK21iZWR0bHNfeDUwOV9jcnRfdmVyaWZ5X2NoYWluOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9kaXI0L2NlcnQ0NS5jcnQgLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvZGlyNC9jZXJ0NDQuY3J0IC4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL2RpcjQvY2VydDQzLmNydCAuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9kaXI0L2NlcnQ0Mi5jcnQiOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9kaXI0L2NlcnQ0MS5jcnQiOk1CRURUTFNfWDUwOV9CQURDRVJUX05PVF9UUlVTVEVEOk1CRURUTFNfRVJSX1g1MDlfQ0VSVF9WRVJJRllfRkFJTEVEOiIiOjAKIAogWDUwOSBDUlQgdmVyaWZ5IGNoYWluICM1IChub256ZXJvIG1heHBhdGhsZW4gaW50ZXJtZWRpYXRlKQotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTY6TUJFRFRMU19SU0FfQzpNQkVEVExTX1BLQ1MxX1YxNQotbWJlZHRsc194NTA5X2NydF92ZXJpZnlfY2hhaW46ImRhdGFfZmlsZXMvZGlyNC9jZXJ0NTQuY3J0IGRhdGFfZmlsZXMvZGlyNC9jZXJ0NTMuY3J0IGRhdGFfZmlsZXMvZGlyNC9jZXJ0NTIuY3J0IjoiZGF0YV9maWxlcy9kaXI0L2NlcnQ1MS5jcnQiOjA6MDoiIjowCitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2Ok1CRURUTFNfUlNBX0M6TUJFRFRMU19QS0NTMV9WMTUKK21iZWR0bHNfeDUwOV9jcnRfdmVyaWZ5X2NoYWluOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9kaXI0L2NlcnQ1NC5jcnQgLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvZGlyNC9jZXJ0NTMuY3J0IC4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL2RpcjQvY2VydDUyLmNydCI6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL2RpcjQvY2VydDUxLmNydCI6MDowOiIiOjAKIAogWDUwOSBDUlQgdmVyaWZ5IGNoYWluICM2IChub256ZXJvIG1heHBhdGhsZW4gcm9vdCkKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2Ok1CRURUTFNfUlNBX0M6TUJFRFRMU19QS0NTMV9WMTUKLW1iZWR0bHNfeDUwOV9jcnRfdmVyaWZ5X2NoYWluOiJkYXRhX2ZpbGVzL2RpcjQvY2VydDYzLmNydCBkYXRhX2ZpbGVzL2RpcjQvY2VydDYyLmNydCI6ImRhdGFfZmlsZXMvZGlyNC9jZXJ0NjEuY3J0IjowOjA6IiI6MAorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NjpNQkVEVExTX1JTQV9DOk1CRURUTFNfUEtDUzFfVjE1CittYmVkdGxzX3g1MDlfY3J0X3ZlcmlmeV9jaGFpbjoiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvZGlyNC9jZXJ0NjMuY3J0IC4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL2RpcjQvY2VydDYyLmNydCI6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL2RpcjQvY2VydDYxLmNydCI6MDowOiIiOjAKIAogWDUwOSBDUlQgdmVyaWZ5IGNoYWluICM3IChtYXhwYXRobGVuIHJvb3QsIHNlbGYgc2lnbmVkIGluIHBhdGgpCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NjpNQkVEVExTX1JTQV9DOk1CRURUTFNfUEtDUzFfVjE1Ci1tYmVkdGxzX3g1MDlfY3J0X3ZlcmlmeV9jaGFpbjoiZGF0YV9maWxlcy9kaXI0L2NlcnQ3NC5jcnQgZGF0YV9maWxlcy9kaXI0L2NlcnQ3My5jcnQgZGF0YV9maWxlcy9kaXI0L2NlcnQ3Mi5jcnQiOiJkYXRhX2ZpbGVzL2RpcjQvY2VydDcxLmNydCI6MDowOiIiOjAKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTY6TUJFRFRMU19SU0FfQzpNQkVEVExTX1BLQ1MxX1YxNQorbWJlZHRsc194NTA5X2NydF92ZXJpZnlfY2hhaW46Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL2RpcjQvY2VydDc0LmNydCAuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9kaXI0L2NlcnQ3My5jcnQgLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvZGlyNC9jZXJ0NzIuY3J0IjoiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvZGlyNC9jZXJ0NzEuY3J0IjowOjA6IiI6MAogCiBYNTA5IENSVCB2ZXJpZnkgY2hhaW4gIzggKHNlbGYgc2lnbmVkIG1heHBhdGhsZW4gcm9vdCkKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2Ok1CRURUTFNfUlNBX0M6TUJFRFRMU19QS0NTMV9WMTUKLW1iZWR0bHNfeDUwOV9jcnRfdmVyaWZ5X2NoYWluOiJkYXRhX2ZpbGVzL2RpcjQvY2VydDYxLmNydCBkYXRhX2ZpbGVzL2RpcjQvY2VydDYzLmNydCBkYXRhX2ZpbGVzL2RpcjQvY2VydDYyLmNydCI6ImRhdGFfZmlsZXMvZGlyNC9jZXJ0NjEuY3J0IjowOjA6IiI6MAorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NjpNQkVEVExTX1JTQV9DOk1CRURUTFNfUEtDUzFfVjE1CittYmVkdGxzX3g1MDlfY3J0X3ZlcmlmeV9jaGFpbjoiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvZGlyNC9jZXJ0NjEuY3J0IC4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL2RpcjQvY2VydDYzLmNydCAuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9kaXI0L2NlcnQ2Mi5jcnQiOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9kaXI0L2NlcnQ2MS5jcnQiOjA6MDoiIjowCiAKIFg1MDkgQ1JUIHZlcmlmeSBjaGFpbiAjOSAoemVybyBwYXRobGVuIGZpcnN0IGludGVybWVkaWF0ZSwgdmFsaWQpCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NjpNQkVEVExTX1BLX0NBTl9FQ0RTQV9WRVJJRlk6TUJFRFRMU19FQ1BfSEFWRV9TRUNQMjU2UjEKLW1iZWR0bHNfeDUwOV9jcnRfdmVyaWZ5X2NoYWluOiJkYXRhX2ZpbGVzL2RpcjQvY2VydDgzLmNydCBkYXRhX2ZpbGVzL2RpcjQvY2VydDgyLmNydCI6ImRhdGFfZmlsZXMvZGlyNC9jZXJ0ODEuY3J0IjowOjA6IiI6MAorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NjpNQkVEVExTX1BLX0NBTl9FQ0RTQV9WRVJJRlk6TUJFRFRMU19FQ1BfSEFWRV9TRUNQMjU2UjEKK21iZWR0bHNfeDUwOV9jcnRfdmVyaWZ5X2NoYWluOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9kaXI0L2NlcnQ4My5jcnQgLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvZGlyNC9jZXJ0ODIuY3J0IjoiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvZGlyNC9jZXJ0ODEuY3J0IjowOjA6IiI6MAogCiBYNTA5IENSVCB2ZXJpZnkgY2hhaW4gIzEwICh6ZXJvIHBhdGhsZW4gcm9vdCwgdmFsaWQpCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NjpNQkVEVExTX1BLX0NBTl9FQ0RTQV9WRVJJRlk6TUJFRFRMU19FQ1BfSEFWRV9TRUNQMjU2UjEKLW1iZWR0bHNfeDUwOV9jcnRfdmVyaWZ5X2NoYWluOiJkYXRhX2ZpbGVzL2RpcjQvY2VydDkyLmNydCI6ImRhdGFfZmlsZXMvZGlyNC9jZXJ0OTEuY3J0IjowOjA6IiI6MAorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NjpNQkVEVExTX1BLX0NBTl9FQ0RTQV9WRVJJRlk6TUJFRFRMU19FQ1BfSEFWRV9TRUNQMjU2UjEKK21iZWR0bHNfeDUwOV9jcnRfdmVyaWZ5X2NoYWluOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9kaXI0L2NlcnQ5Mi5jcnQiOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9kaXI0L2NlcnQ5MS5jcnQiOjA6MDoiIjowCiAKIFg1MDkgQ1JUIHZlcmlmeSBjaGFpbiAjMTEgKHZhbGlkIGNoYWluLCBtaXNzaW5nIHByb2ZpbGUpCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NjpNQkVEVExTX1BLX0NBTl9FQ0RTQV9WRVJJRlk6TUJFRFRMU19FQ1BfSEFWRV9TRUNQMjU2UjEKLW1iZWR0bHNfeDUwOV9jcnRfdmVyaWZ5X2NoYWluOiJkYXRhX2ZpbGVzL2RpcjQvY2VydDkyLmNydCI6ImRhdGFfZmlsZXMvZGlyNC9jZXJ0OTEuY3J0IjotMTpNQkVEVExTX0VSUl9YNTA5X0JBRF9JTlBVVF9EQVRBOiJub25lc3VjaCI6MAorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NjpNQkVEVExTX1BLX0NBTl9FQ0RTQV9WRVJJRlk6TUJFRFRMU19FQ1BfSEFWRV9TRUNQMjU2UjEKK21iZWR0bHNfeDUwOV9jcnRfdmVyaWZ5X2NoYWluOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9kaXI0L2NlcnQ5Mi5jcnQiOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9kaXI0L2NlcnQ5MS5jcnQiOi0xOk1CRURUTFNfRVJSX1g1MDlfQkFEX0lOUFVUX0RBVEE6Im5vbmVzdWNoIjowCiAKIFg1MDkgQ1JUIHZlcmlmeSBjaGFpbiAjMTIgKHN1aXRlYiBwcm9maWxlLCBSU0Egcm9vdCkKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2Ok1CRURUTFNfUlNBX0M6TUJFRFRMU19QS0NTMV9WMTU6TUJFRFRMU19QS19DQU5fRUNEU0FfVkVSSUZZOk1CRURUTFNfRUNQX0hBVkVfU0VDUDE5MlIxOk1CRURUTFNfTURfQ0FOX1NIQTEKLW1iZWR0bHNfeDUwOV9jcnRfdmVyaWZ5X2NoYWluOiJkYXRhX2ZpbGVzL3NlcnZlcjMuY3J0IjoiZGF0YV9maWxlcy90ZXN0LWNhLmNydCI6TUJFRFRMU19YNTA5X0JBRENFUlRfQkFEX01EfE1CRURUTFNfWDUwOV9CQURDRVJUX0JBRF9QS3xNQkVEVExTX1g1MDlfQkFEQ0VSVF9CQURfS0VZOk1CRURUTFNfRVJSX1g1MDlfQ0VSVF9WRVJJRllfRkFJTEVEOiJzdWl0ZWIiOjAKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTY6TUJFRFRMU19SU0FfQzpNQkVEVExTX1BLQ1MxX1YxNTpNQkVEVExTX1BLX0NBTl9FQ0RTQV9WRVJJRlk6UFNBX1dBTlRfRUNDX1NFQ1BfUjFfMTkyOk1CRURUTFNfTURfQ0FOX1NIQTEKK21iZWR0bHNfeDUwOV9jcnRfdmVyaWZ5X2NoYWluOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9zZXJ2ZXIzLmNydCI6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3Rlc3QtY2EuY3J0IjpNQkVEVExTX1g1MDlfQkFEQ0VSVF9CQURfTUR8TUJFRFRMU19YNTA5X0JBRENFUlRfQkFEX1BLfE1CRURUTFNfWDUwOV9CQURDRVJUX0JBRF9LRVk6TUJFRFRMU19FUlJfWDUwOV9DRVJUX1ZFUklGWV9GQUlMRUQ6InN1aXRlYiI6MAogCiBYNTA5IENSVCB2ZXJpZnkgY2hhaW4gIzEzIChSU0Egb25seSBwcm9maWxlLCBFQyByb290KQotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTY6TUJFRFRMU19SU0FfQzpNQkVEVExTX1BLX0NBTl9FQ0RTQV9WRVJJRlk6TUJFRFRMU19FQ1BfSEFWRV9TRUNQMzg0UjEKLW1iZWR0bHNfeDUwOV9jcnRfdmVyaWZ5X2NoYWluOiJkYXRhX2ZpbGVzL3NlcnZlcjQuY3J0IjoiZGF0YV9maWxlcy90ZXN0LWNhMi5jcnQiOk1CRURUTFNfWDUwOV9CQURDRVJUX0JBRF9QS3xNQkVEVExTX1g1MDlfQkFEQ0VSVF9CQURfS0VZOk1CRURUTFNfRVJSX1g1MDlfQ0VSVF9WRVJJRllfRkFJTEVEOiJyc2EzMDcyIjowCitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2Ok1CRURUTFNfUlNBX0M6TUJFRFRMU19QS19DQU5fRUNEU0FfVkVSSUZZOk1CRURUTFNfRUNQX0hBVkVfU0VDUDM4NFIxCittYmVkdGxzX3g1MDlfY3J0X3ZlcmlmeV9jaGFpbjoiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvc2VydmVyNC5jcnQiOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy90ZXN0LWNhMi5jcnQiOk1CRURUTFNfWDUwOV9CQURDRVJUX0JBRF9QS3xNQkVEVExTX1g1MDlfQkFEQ0VSVF9CQURfS0VZOk1CRURUTFNfRVJSX1g1MDlfQ0VSVF9WRVJJRllfRkFJTEVEOiJyc2EzMDcyIjowCiAKIFg1MDkgQ1JUIHZlcmlmeSBjaGFpbiAjMTMgKFJTQSBvbmx5IHByb2ZpbGUsIEVDIHRydXN0ZWQgRUUpCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NjpNQkVEVExTX1JTQV9DOk1CRURUTFNfUEtfQ0FOX0VDRFNBX1ZFUklGWTpNQkVEVExTX0VDUF9IQVZFX1NFQ1AyNTZSMQotbWJlZHRsc194NTA5X2NydF92ZXJpZnlfY2hhaW46ImRhdGFfZmlsZXMvc2VydmVyNS1zZWxmc2lnbmVkLmNydCI6ImRhdGFfZmlsZXMvc2VydmVyNS1zZWxmc2lnbmVkLmNydCI6TUJFRFRMU19YNTA5X0JBRENFUlRfQkFEX1BLfE1CRURUTFNfWDUwOV9CQURDRVJUX0JBRF9LRVk6TUJFRFRMU19FUlJfWDUwOV9DRVJUX1ZFUklGWV9GQUlMRUQ6InJzYTMwNzIiOjAKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTY6TUJFRFRMU19SU0FfQzpNQkVEVExTX1BLX0NBTl9FQ0RTQV9WRVJJRlk6TUJFRFRMU19FQ1BfSEFWRV9TRUNQMjU2UjEKK21iZWR0bHNfeDUwOV9jcnRfdmVyaWZ5X2NoYWluOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9zZXJ2ZXI1LXNlbGZzaWduZWQuY3J0IjoiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvc2VydmVyNS1zZWxmc2lnbmVkLmNydCI6TUJFRFRMU19YNTA5X0JBRENFUlRfQkFEX1BLfE1CRURUTFNfWDUwOV9CQURDRVJUX0JBRF9LRVk6TUJFRFRMU19FUlJfWDUwOV9DRVJUX1ZFUklGWV9GQUlMRUQ6InJzYTMwNzIiOjAKIAogWDUwOSBDUlQgdmVyaWZ5IGNoYWluICMxNCAoUlNBLTMwNzIgcHJvZmlsZSwgcm9vdCBrZXkgdG9vIHNtYWxsKQotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTY6TUJFRFRMU19SU0FfQzpNQkVEVExTX1BLQ1MxX1YxNTpNQkVEVExTX01EX0NBTl9TSEExCi1tYmVkdGxzX3g1MDlfY3J0X3ZlcmlmeV9jaGFpbjoiZGF0YV9maWxlcy9zZXJ2ZXIxLmNydCI6ImRhdGFfZmlsZXMvdGVzdC1jYS5jcnQiOk1CRURUTFNfWDUwOV9CQURDRVJUX0JBRF9NRHxNQkVEVExTX1g1MDlfQkFEQ0VSVF9CQURfS0VZOk1CRURUTFNfRVJSX1g1MDlfQ0VSVF9WRVJJRllfRkFJTEVEOiJyc2EzMDcyIjowCitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2Ok1CRURUTFNfUlNBX0M6TUJFRFRMU19QS0NTMV9WMTU6TUJFRFRMU19NRF9DQU5fU0hBMQorbWJlZHRsc194NTA5X2NydF92ZXJpZnlfY2hhaW46Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3NlcnZlcjEuY3J0IjoiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvdGVzdC1jYS5jcnQiOk1CRURUTFNfWDUwOV9CQURDRVJUX0JBRF9NRHxNQkVEVExTX1g1MDlfQkFEQ0VSVF9CQURfS0VZOk1CRURUTFNfRVJSX1g1MDlfQ0VSVF9WRVJJRllfRkFJTEVEOiJyc2EzMDcyIjowCiAKIFg1MDkgQ1JUIHZlcmlmeSBjaGFpbiAjMTUgKHN1aXRlYiBwcm9maWxlLCByc2EgaW50ZXJtZWRpYXRlKQotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTY6TUJFRFRMU19SU0FfQzpNQkVEVExTX1BLQ1MxX1YxNTpNQkVEVExTX1BLX0NBTl9FQ0RTQV9WRVJJRlk6TUJFRFRMU19FQ1BfSEFWRV9TRUNQMzg0UjE6TUJFRFRMU19FQ1BfSEFWRV9TRUNQMjU2UjEKLW1iZWR0bHNfeDUwOV9jcnRfdmVyaWZ5X2NoYWluOiJkYXRhX2ZpbGVzL3NlcnZlcjcuY3J0IGRhdGFfZmlsZXMvdGVzdC1pbnQtY2EuY3J0IjoiZGF0YV9maWxlcy90ZXN0LWNhMi5jcnQiOk1CRURUTFNfWDUwOV9CQURDRVJUX0JBRF9QSzpNQkVEVExTX0VSUl9YNTA5X0NFUlRfVkVSSUZZX0ZBSUxFRDoic3VpdGViIjowCitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2Ok1CRURUTFNfUlNBX0M6TUJFRFRMU19QS0NTMV9WMTU6TUJFRFRMU19QS19DQU5fRUNEU0FfVkVSSUZZOk1CRURUTFNfRUNQX0hBVkVfU0VDUDM4NFIxOk1CRURUTFNfRUNQX0hBVkVfU0VDUDI1NlIxCittYmVkdGxzX3g1MDlfY3J0X3ZlcmlmeV9jaGFpbjoiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvc2VydmVyNy5jcnQgLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvdGVzdC1pbnQtY2EuY3J0IjoiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvdGVzdC1jYTIuY3J0IjpNQkVEVExTX1g1MDlfQkFEQ0VSVF9CQURfUEs6TUJFRFRMU19FUlJfWDUwOV9DRVJUX1ZFUklGWV9GQUlMRUQ6InN1aXRlYiI6MAogCiBYNTA5IENSVCB2ZXJpZnkgY2hhaW4gIzE2IChSU0Etb25seSBwcm9maWxlLCBFQyBpbnRlcm1lZGlhdGUpCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NjpNQkVEVExTX1JTQV9DOk1CRURUTFNfUEtDUzFfVjE1Ok1CRURUTFNfUEtfQ0FOX0VDRFNBX1ZFUklGWTpNQkVEVExTX0VDUF9IQVZFX1NFQ1AzODRSMTpNQkVEVExTX0VDUF9IQVZFX1NFQ1AyNTZSMTpNQkVEVExTX01EX0NBTl9TSEExCi1tYmVkdGxzX3g1MDlfY3J0X3ZlcmlmeV9jaGFpbjoiZGF0YV9maWxlcy9zZXJ2ZXI4LmNydCBkYXRhX2ZpbGVzL3Rlc3QtaW50LWNhMi5jcnQiOiJkYXRhX2ZpbGVzL3Rlc3QtY2EuY3J0IjpNQkVEVExTX1g1MDlfQkFEQ0VSVF9CQURfUEt8TUJFRFRMU19YNTA5X0JBRENFUlRfQkFEX0tFWTpNQkVEVExTX0VSUl9YNTA5X0NFUlRfVkVSSUZZX0ZBSUxFRDoicnNhMzA3MiI6MAorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NjpNQkVEVExTX1JTQV9DOk1CRURUTFNfUEtDUzFfVjE1Ok1CRURUTFNfUEtfQ0FOX0VDRFNBX1ZFUklGWTpNQkVEVExTX0VDUF9IQVZFX1NFQ1AzODRSMTpNQkVEVExTX0VDUF9IQVZFX1NFQ1AyNTZSMTpNQkVEVExTX01EX0NBTl9TSEExCittYmVkdGxzX3g1MDlfY3J0X3ZlcmlmeV9jaGFpbjoiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvc2VydmVyOC5jcnQgLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvdGVzdC1pbnQtY2EyLmNydCI6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3Rlc3QtY2EuY3J0IjpNQkVEVExTX1g1MDlfQkFEQ0VSVF9CQURfUEt8TUJFRFRMU19YNTA5X0JBRENFUlRfQkFEX0tFWTpNQkVEVExTX0VSUl9YNTA5X0NFUlRfVkVSSUZZX0ZBSUxFRDoicnNhMzA3MiI6MAogCiBYNTA5IENSVCB2ZXJpZnkgY2hhaW4gIzE3IChTSEEtNTEyIHByb2ZpbGUpCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NjpNQkVEVExTX1JTQV9DOk1CRURUTFNfUEtDUzFfVjE1Ok1CRURUTFNfUEtfQ0FOX0VDRFNBX1ZFUklGWTpNQkVEVExTX0VDUF9IQVZFX1NFQ1AyNTZSMTpNQkVEVExTX0VDUF9IQVZFX1NFQ1AzODRSMQotbWJlZHRsc194NTA5X2NydF92ZXJpZnlfY2hhaW46ImRhdGFfZmlsZXMvc2VydmVyNy5jcnQgZGF0YV9maWxlcy90ZXN0LWludC1jYS5jcnQiOiJkYXRhX2ZpbGVzL3Rlc3QtY2EyLmNydCI6TUJFRFRMU19YNTA5X0JBRENFUlRfQkFEX01EOk1CRURUTFNfRVJSX1g1MDlfQ0VSVF9WRVJJRllfRkFJTEVEOiJzaGE1MTIiOjAKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTY6TUJFRFRMU19SU0FfQzpNQkVEVExTX1BLQ1MxX1YxNTpNQkVEVExTX1BLX0NBTl9FQ0RTQV9WRVJJRlk6TUJFRFRMU19FQ1BfSEFWRV9TRUNQMjU2UjE6TUJFRFRMU19FQ1BfSEFWRV9TRUNQMzg0UjEKK21iZWR0bHNfeDUwOV9jcnRfdmVyaWZ5X2NoYWluOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9zZXJ2ZXI3LmNydCAuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy90ZXN0LWludC1jYS5jcnQiOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy90ZXN0LWNhMi5jcnQiOk1CRURUTFNfWDUwOV9CQURDRVJUX0JBRF9NRDpNQkVEVExTX0VSUl9YNTA5X0NFUlRfVkVSSUZZX0ZBSUxFRDoic2hhNTEyIjowCiAKIFg1MDkgQ1JUIHZlcmlmeSBjaGFpbiAjMTggKGxlbj0xLCB2cmZ5IGZhdGFsIG9uIGRlcHRoIDEpCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NjpNQkVEVExTX1BLX0NBTl9FQ0RTQV9WRVJJRlk6TUJFRFRMU19FQ1BfSEFWRV9TRUNQMjU2UjE6TUJFRFRMU19FQ1BfSEFWRV9TRUNQMzg0UjE6TUJFRFRMU19NRF9DQU5fU0hBNTEyCi1tYmVkdGxzX3g1MDlfY3J0X3ZlcmlmeV9jaGFpbjoiZGF0YV9maWxlcy9zZXJ2ZXI1LmNydCI6ImRhdGFfZmlsZXMvdGVzdC1jYTIuY3J0IjotMTotMjoiIjoyCitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2Ok1CRURUTFNfUEtfQ0FOX0VDRFNBX1ZFUklGWTpNQkVEVExTX0VDUF9IQVZFX1NFQ1AyNTZSMTpNQkVEVExTX0VDUF9IQVZFX1NFQ1AzODRSMTpNQkVEVExTX01EX0NBTl9TSEE1MTIKK21iZWR0bHNfeDUwOV9jcnRfdmVyaWZ5X2NoYWluOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9zZXJ2ZXI1LmNydCI6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3Rlc3QtY2EyLmNydCI6LTE6LTI6IiI6MgogCiBYNTA5IENSVCB2ZXJpZnkgY2hhaW4gIzE5IChsZW49MCwgdnJmeSBmYXRhbCBvbiBkZXB0aCAwKQotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTY6TUJFRFRMU19QS19DQU5fRUNEU0FfVkVSSUZZOk1CRURUTFNfRUNQX0hBVkVfU0VDUDI1NlIxOk1CRURUTFNfRUNQX0hBVkVfU0VDUDM4NFIxOk1CRURUTFNfTURfQ0FOX1NIQTUxMgotbWJlZHRsc194NTA5X2NydF92ZXJpZnlfY2hhaW46ImRhdGFfZmlsZXMvc2VydmVyNS5jcnQiOiJkYXRhX2ZpbGVzL3Rlc3QtY2EyLmNydCI6LTE6LTE6IiI6MQorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NjpNQkVEVExTX1BLX0NBTl9FQ0RTQV9WRVJJRlk6TUJFRFRMU19FQ1BfSEFWRV9TRUNQMjU2UjE6TUJFRFRMU19FQ1BfSEFWRV9TRUNQMzg0UjE6TUJFRFRMU19NRF9DQU5fU0hBNTEyCittYmVkdGxzX3g1MDlfY3J0X3ZlcmlmeV9jaGFpbjoiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvc2VydmVyNS5jcnQiOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy90ZXN0LWNhMi5jcnQiOi0xOi0xOiIiOjEKIAogWDUwOSBDUlQgdmVyaWZ5IGNoYWluICMyMCAobGVuPTEsIHZyZnkgZmF0YWwgb24gZGVwdGggMCkKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2Ok1CRURUTFNfUEtfQ0FOX0VDRFNBX1ZFUklGWTpNQkVEVExTX0VDUF9IQVZFX1NFQ1AyNTZSMTpNQkVEVExTX0VDUF9IQVZFX1NFQ1AzODRSMTpNQkVEVExTX01EX0NBTl9TSEE1MTI6TUJFRFRMU19NRF9DQU5fU0hBMTpNQkVEVExTX1JTQV9DCi1tYmVkdGxzX3g1MDlfY3J0X3ZlcmlmeV9jaGFpbjoiZGF0YV9maWxlcy9zZXJ2ZXI1LmNydCI6ImRhdGFfZmlsZXMvdGVzdC1jYS5jcnQiOi0xOi0xOiIiOjEKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTY6TUJFRFRMU19QS19DQU5fRUNEU0FfVkVSSUZZOk1CRURUTFNfRUNQX0hBVkVfU0VDUDI1NlIxOk1CRURUTFNfRUNQX0hBVkVfU0VDUDM4NFIxOk1CRURUTFNfTURfQ0FOX1NIQTUxMjpNQkVEVExTX01EX0NBTl9TSEExOk1CRURUTFNfUlNBX0MKK21iZWR0bHNfeDUwOV9jcnRfdmVyaWZ5X2NoYWluOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9zZXJ2ZXI1LmNydCI6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3Rlc3QtY2EuY3J0IjotMTotMToiIjoxCiAKIFg1MDkgQ1JUIHZlcmlmeSBjaGFpbiAjMjEgKGxlbj0zLCB2cmZ5IGZhdGFsIG9uIGRlcHRoIDMpCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NjpNQkVEVExTX1BLX0NBTl9FQ0RTQV9WRVJJRlk6TUJFRFRMU19FQ1BfSEFWRV9TRUNQMjU2UjE6TUJFRFRMU19SU0FfQzpNQkVEVExTX1BLQ1MxX1YxNTpNQkVEVExTX01EX0NBTl9TSEExOk1CRURUTFNfRUNQX0hBVkVfU0VDUDM4NFIxCi1tYmVkdGxzX3g1MDlfY3J0X3ZlcmlmeV9jaGFpbjoiZGF0YV9maWxlcy9zZXJ2ZXIxMF9pbnQzX2ludC1jYTJfY2EuY3J0IjoiZGF0YV9maWxlcy90ZXN0LWNhLmNydCI6LTE6LTQ6IiI6OAorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NjpNQkVEVExTX1BLX0NBTl9FQ0RTQV9WRVJJRlk6TUJFRFRMU19FQ1BfSEFWRV9TRUNQMjU2UjE6TUJFRFRMU19SU0FfQzpNQkVEVExTX1BLQ1MxX1YxNTpNQkVEVExTX01EX0NBTl9TSEExOk1CRURUTFNfRUNQX0hBVkVfU0VDUDM4NFIxCittYmVkdGxzX3g1MDlfY3J0X3ZlcmlmeV9jaGFpbjoiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvc2VydmVyMTBfaW50M19pbnQtY2EyX2NhLmNydCI6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3Rlc3QtY2EuY3J0IjotMTotNDoiIjo4CiAKIFg1MDkgQ1JUIHZlcmlmeSBjaGFpbiAjMjIgKGxlbj0zLCB2cmZ5IGZhdGFsIG9uIGRlcHRoIDIpCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NjpNQkVEVExTX1BLX0NBTl9FQ0RTQV9WRVJJRlk6TUJFRFRMU19FQ1BfSEFWRV9TRUNQMjU2UjE6TUJFRFRMU19SU0FfQzpNQkVEVExTX01EX0NBTl9TSEExOk1CRURUTFNfRUNQX0hBVkVfU0VDUDM4NFIxCi1tYmVkdGxzX3g1MDlfY3J0X3ZlcmlmeV9jaGFpbjoiZGF0YV9maWxlcy9zZXJ2ZXIxMF9pbnQzX2ludC1jYTJfY2EuY3J0IjoiZGF0YV9maWxlcy90ZXN0LWNhLmNydCI6LTE6LTM6IiI6NAorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NjpNQkVEVExTX1BLX0NBTl9FQ0RTQV9WRVJJRlk6TUJFRFRMU19FQ1BfSEFWRV9TRUNQMjU2UjE6TUJFRFRMU19SU0FfQzpNQkVEVExTX01EX0NBTl9TSEExOk1CRURUTFNfRUNQX0hBVkVfU0VDUDM4NFIxCittYmVkdGxzX3g1MDlfY3J0X3ZlcmlmeV9jaGFpbjoiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvc2VydmVyMTBfaW50M19pbnQtY2EyX2NhLmNydCI6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3Rlc3QtY2EuY3J0IjotMTotMzoiIjo0CiAKIFg1MDkgQ1JUIHZlcmlmeSBjaGFpbiAjMjMgKGxlbj0zLCB2cmZ5IGZhdGFsIG9uIGRlcHRoIDEpCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NjpNQkVEVExTX1BLX0NBTl9FQ0RTQV9WRVJJRlk6TUJFRFRMU19FQ1BfSEFWRV9TRUNQMjU2UjE6TUJFRFRMU19SU0FfQzpNQkVEVExTX01EX0NBTl9TSEExOk1CRURUTFNfRUNQX0hBVkVfU0VDUDM4NFIxCi1tYmVkdGxzX3g1MDlfY3J0X3ZlcmlmeV9jaGFpbjoiZGF0YV9maWxlcy9zZXJ2ZXIxMF9pbnQzX2ludC1jYTJfY2EuY3J0IjoiZGF0YV9maWxlcy90ZXN0LWNhLmNydCI6LTE6LTI6IiI6MgorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NjpNQkVEVExTX1BLX0NBTl9FQ0RTQV9WRVJJRlk6TUJFRFRMU19FQ1BfSEFWRV9TRUNQMjU2UjE6TUJFRFRMU19SU0FfQzpNQkVEVExTX01EX0NBTl9TSEExOk1CRURUTFNfRUNQX0hBVkVfU0VDUDM4NFIxCittYmVkdGxzX3g1MDlfY3J0X3ZlcmlmeV9jaGFpbjoiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvc2VydmVyMTBfaW50M19pbnQtY2EyX2NhLmNydCI6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3Rlc3QtY2EuY3J0IjotMTotMjoiIjoyCiAKIFg1MDkgQ1JUIHZlcmlmeSBjaGFpbiAjMjQgKGxlbj0zLCB2cmZ5IGZhdGFsIG9uIGRlcHRoIDApCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NjpNQkVEVExTX1BLX0NBTl9FQ0RTQV9WRVJJRlk6TUJFRFRMU19FQ1BfSEFWRV9TRUNQMjU2UjE6TUJFRFRMU19SU0FfQzpNQkVEVExTX01EX0NBTl9TSEExOk1CRURUTFNfRUNQX0hBVkVfU0VDUDM4NFIxCi1tYmVkdGxzX3g1MDlfY3J0X3ZlcmlmeV9jaGFpbjoiZGF0YV9maWxlcy9zZXJ2ZXIxMF9pbnQzX2ludC1jYTJfY2EuY3J0IjoiZGF0YV9maWxlcy90ZXN0LWNhLmNydCI6LTE6LTE6IiI6MQorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NjpNQkVEVExTX1BLX0NBTl9FQ0RTQV9WRVJJRlk6TUJFRFRMU19FQ1BfSEFWRV9TRUNQMjU2UjE6TUJFRFRMU19SU0FfQzpNQkVEVExTX01EX0NBTl9TSEExOk1CRURUTFNfRUNQX0hBVkVfU0VDUDM4NFIxCittYmVkdGxzX3g1MDlfY3J0X3ZlcmlmeV9jaGFpbjoiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvc2VydmVyMTBfaW50M19pbnQtY2EyX2NhLmNydCI6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3Rlc3QtY2EuY3J0IjotMTotMToiIjoxCiAKIFg1MDkgQ1JUIHZlcmlmeSBjaGFpbiAjMjUgKGxlbj0zLCB2cmZ5IGZhdGFsIG9uIGRlcHRoIDMsIHVudHJ1c3RlZCkKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2Ok1CRURUTFNfUEtfQ0FOX0VDRFNBX1ZFUklGWTpNQkVEVExTX0VDUF9IQVZFX1NFQ1AyNTZSMTpNQkVEVExTX1JTQV9DOk1CRURUTFNfTURfQ0FOX1NIQTE6TUJFRFRMU19FQ1BfSEFWRV9TRUNQMzg0UjEKLW1iZWR0bHNfeDUwOV9jcnRfdmVyaWZ5X2NoYWluOiJkYXRhX2ZpbGVzL3NlcnZlcjEwX2ludDNfaW50LWNhMl9jYS5jcnQiOiJkYXRhX2ZpbGVzL3Rlc3QtY2EyLmNydCI6LTE6LTQ6IiI6OAorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NjpNQkVEVExTX1BLX0NBTl9FQ0RTQV9WRVJJRlk6TUJFRFRMU19FQ1BfSEFWRV9TRUNQMjU2UjE6TUJFRFRMU19SU0FfQzpNQkVEVExTX01EX0NBTl9TSEExOk1CRURUTFNfRUNQX0hBVkVfU0VDUDM4NFIxCittYmVkdGxzX3g1MDlfY3J0X3ZlcmlmeV9jaGFpbjoiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvc2VydmVyMTBfaW50M19pbnQtY2EyX2NhLmNydCI6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3Rlc3QtY2EyLmNydCI6LTE6LTQ6IiI6OAogCiBYNTA5IE9JRCBkZXNjcmlwdGlvbiAjMQogeDUwOV9vaWRfZGVzYzoiMmIwNjAxMDUwNTA3MDMwMSI6IlRMUyBXZWIgU2VydmVyIEF1dGhlbnRpY2F0aW9uIgpAQCAtMjc1NSw3NSArMjc1NSw3NSBAQAogCiBYNTA5IENSVCBrZXlVc2FnZSAjMSAobm8gZXh0ZW5zaW9uLCBleHBlY3RlZCBLVSkKIGRlcGVuZHNfb246TUJFRFRMU19SU0FfQzpNQkVEVExTX01EX0NBTl9TSEExCi14NTA5X2NoZWNrX2tleV91c2FnZToiZGF0YV9maWxlcy9zZXJ2ZXIxLmNydCI6TUJFRFRMU19YNTA5X0tVX0RJR0lUQUxfU0lHTkFUVVJFfE1CRURUTFNfWDUwOV9LVV9LRVlfRU5DSVBIRVJNRU5UOjAKK3g1MDlfY2hlY2tfa2V5X3VzYWdlOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9zZXJ2ZXIxLmNydCI6TUJFRFRMU19YNTA5X0tVX0RJR0lUQUxfU0lHTkFUVVJFfE1CRURUTFNfWDUwOV9LVV9LRVlfRU5DSVBIRVJNRU5UOjAKIAogWDUwOSBDUlQga2V5VXNhZ2UgIzIgKG5vIGV4dGVuc2lvbiwgc3VycHJpc2luZyBLVSkKIGRlcGVuZHNfb246TUJFRFRMU19SU0FfQzpNQkVEVExTX01EX0NBTl9TSEExCi14NTA5X2NoZWNrX2tleV91c2FnZToiZGF0YV9maWxlcy9zZXJ2ZXIxLmNydCI6TUJFRFRMU19YNTA5X0tVX0tFWV9DRVJUX1NJR046MAoreDUwOV9jaGVja19rZXlfdXNhZ2U6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3NlcnZlcjEuY3J0IjpNQkVEVExTX1g1MDlfS1VfS0VZX0NFUlRfU0lHTjowCiAKIFg1MDkgQ1JUIGtleVVzYWdlICMzIChleHRlbnNpb24gcHJlc2VudCwgbm8gS1UpCiBkZXBlbmRzX29uOk1CRURUTFNfUlNBX0M6TUJFRFRMU19NRF9DQU5fU0hBMQoteDUwOV9jaGVja19rZXlfdXNhZ2U6ImRhdGFfZmlsZXMvc2VydmVyMS5rZXlfdXNhZ2UuY3J0IjowOjAKK3g1MDlfY2hlY2tfa2V5X3VzYWdlOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9zZXJ2ZXIxLmtleV91c2FnZS5jcnQiOjA6MAogCiBYNTA5IENSVCBrZXlVc2FnZSAjNCAoZXh0ZW5zaW9uIHByZXNlbnQsIHNpbmdsZSBLVSBwcmVzZW50KQogZGVwZW5kc19vbjpNQkVEVExTX1JTQV9DOk1CRURUTFNfTURfQ0FOX1NIQTEKLXg1MDlfY2hlY2tfa2V5X3VzYWdlOiJkYXRhX2ZpbGVzL3NlcnZlcjEua2V5X3VzYWdlLmNydCI6TUJFRFRMU19YNTA5X0tVX0RJR0lUQUxfU0lHTkFUVVJFOjAKK3g1MDlfY2hlY2tfa2V5X3VzYWdlOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9zZXJ2ZXIxLmtleV91c2FnZS5jcnQiOk1CRURUTFNfWDUwOV9LVV9ESUdJVEFMX1NJR05BVFVSRTowCiAKIFg1MDkgQ1JUIGtleVVzYWdlICM1IChleHRlbnNpb24gcHJlc2VudCwgc2luZ2xlIEtVIGFic2VudCkKIGRlcGVuZHNfb246TUJFRFRMU19SU0FfQzpNQkVEVExTX01EX0NBTl9TSEExCi14NTA5X2NoZWNrX2tleV91c2FnZToiZGF0YV9maWxlcy9zZXJ2ZXIxLmtleV91c2FnZS5jcnQiOk1CRURUTFNfWDUwOV9LVV9LRVlfQ0VSVF9TSUdOOk1CRURUTFNfRVJSX1g1MDlfQkFEX0lOUFVUX0RBVEEKK3g1MDlfY2hlY2tfa2V5X3VzYWdlOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9zZXJ2ZXIxLmtleV91c2FnZS5jcnQiOk1CRURUTFNfWDUwOV9LVV9LRVlfQ0VSVF9TSUdOOk1CRURUTFNfRVJSX1g1MDlfQkFEX0lOUFVUX0RBVEEKIAogWDUwOSBDUlQga2V5VXNhZ2UgIzYgKGV4dGVuc2lvbiBwcmVzZW50LCBjb21iaW5lZCBLVSBwcmVzZW50KQogZGVwZW5kc19vbjpNQkVEVExTX1JTQV9DOk1CRURUTFNfTURfQ0FOX1NIQTEKLXg1MDlfY2hlY2tfa2V5X3VzYWdlOiJkYXRhX2ZpbGVzL3NlcnZlcjEua2V5X3VzYWdlLmNydCI6TUJFRFRMU19YNTA5X0tVX0RJR0lUQUxfU0lHTkFUVVJFfE1CRURUTFNfWDUwOV9LVV9LRVlfRU5DSVBIRVJNRU5UOjAKK3g1MDlfY2hlY2tfa2V5X3VzYWdlOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9zZXJ2ZXIxLmtleV91c2FnZS5jcnQiOk1CRURUTFNfWDUwOV9LVV9ESUdJVEFMX1NJR05BVFVSRXxNQkVEVExTX1g1MDlfS1VfS0VZX0VOQ0lQSEVSTUVOVDowCiAKIFg1MDkgQ1JUIGtleVVzYWdlICM3IChleHRlbnNpb24gcHJlc2VudCwgY29tYmluZWQgS1UgYm90aCBhYnNlbnQpCiBkZXBlbmRzX29uOk1CRURUTFNfUlNBX0M6TUJFRFRMU19NRF9DQU5fU0hBMQoteDUwOV9jaGVja19rZXlfdXNhZ2U6ImRhdGFfZmlsZXMvc2VydmVyMS5rZXlfdXNhZ2UuY3J0IjpNQkVEVExTX1g1MDlfS1VfS0VZX0NFUlRfU0lHTnxNQkVEVExTX1g1MDlfS1VfQ1JMX1NJR046TUJFRFRMU19FUlJfWDUwOV9CQURfSU5QVVRfREFUQQoreDUwOV9jaGVja19rZXlfdXNhZ2U6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3NlcnZlcjEua2V5X3VzYWdlLmNydCI6TUJFRFRMU19YNTA5X0tVX0tFWV9DRVJUX1NJR058TUJFRFRMU19YNTA5X0tVX0NSTF9TSUdOOk1CRURUTFNfRVJSX1g1MDlfQkFEX0lOUFVUX0RBVEEKIAogWDUwOSBDUlQga2V5VXNhZ2UgIzggKGV4dGVuc2lvbiBwcmVzZW50LCBjb21iaW5lZCBLVSBvbmUgYWJzZW50KQogZGVwZW5kc19vbjpNQkVEVExTX1JTQV9DOk1CRURUTFNfTURfQ0FOX1NIQTEKLXg1MDlfY2hlY2tfa2V5X3VzYWdlOiJkYXRhX2ZpbGVzL3NlcnZlcjEua2V5X3VzYWdlLmNydCI6TUJFRFRMU19YNTA5X0tVX0tFWV9FTkNJUEhFUk1FTlR8TUJFRFRMU19YNTA5X0tVX0tFWV9BR1JFRU1FTlQ6TUJFRFRMU19FUlJfWDUwOV9CQURfSU5QVVRfREFUQQoreDUwOV9jaGVja19rZXlfdXNhZ2U6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3NlcnZlcjEua2V5X3VzYWdlLmNydCI6TUJFRFRMU19YNTA5X0tVX0tFWV9FTkNJUEhFUk1FTlR8TUJFRFRMU19YNTA5X0tVX0tFWV9BR1JFRU1FTlQ6TUJFRFRMU19FUlJfWDUwOV9CQURfSU5QVVRfREFUQQogCiBYNTA5IENSVCBrZXlVc2FnZSAjOSAoZXh0ZW5zaW9uIHByZXNlbnQsIGRlY09ubHkgYWxsb3dlZCBhYnNlbnQpCiBkZXBlbmRzX29uOk1CRURUTFNfUlNBX0M6TUJFRFRMU19NRF9DQU5fU0hBMQoteDUwOV9jaGVja19rZXlfdXNhZ2U6ImRhdGFfZmlsZXMvc2VydmVyMS5rZXlfdXNhZ2UuY3J0IjpNQkVEVExTX1g1MDlfS1VfRElHSVRBTF9TSUdOQVRVUkV8TUJFRFRMU19YNTA5X0tVX0tFWV9FTkNJUEhFUk1FTlR8TUJFRFRMU19YNTA5X0tVX0RFQ0lQSEVSX09OTFk6MAoreDUwOV9jaGVja19rZXlfdXNhZ2U6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3NlcnZlcjEua2V5X3VzYWdlLmNydCI6TUJFRFRMU19YNTA5X0tVX0RJR0lUQUxfU0lHTkFUVVJFfE1CRURUTFNfWDUwOV9LVV9LRVlfRU5DSVBIRVJNRU5UfE1CRURUTFNfWDUwOV9LVV9ERUNJUEhFUl9PTkxZOjAKIAogWDUwOSBDUlQga2V5VXNhZ2UgIzEwIChleHRlbnNpb24gcHJlc2VudCwgZGVjT25seSBub24tYWxsb3dlZCBwcmVzZW50KQogZGVwZW5kc19vbjpNQkVEVExTX1JTQV9DOk1CRURUTFNfTURfQ0FOX1NIQTEKLXg1MDlfY2hlY2tfa2V5X3VzYWdlOiJkYXRhX2ZpbGVzL2tleVVzYWdlLmRlY2lwaGVyT25seS5jcnQiOk1CRURUTFNfWDUwOV9LVV9ESUdJVEFMX1NJR05BVFVSRXxNQkVEVExTX1g1MDlfS1VfS0VZX0VOQ0lQSEVSTUVOVDpNQkVEVExTX0VSUl9YNTA5X0JBRF9JTlBVVF9EQVRBCit4NTA5X2NoZWNrX2tleV91c2FnZToiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMva2V5VXNhZ2UuZGVjaXBoZXJPbmx5LmNydCI6TUJFRFRMU19YNTA5X0tVX0RJR0lUQUxfU0lHTkFUVVJFfE1CRURUTFNfWDUwOV9LVV9LRVlfRU5DSVBIRVJNRU5UOk1CRURUTFNfRVJSX1g1MDlfQkFEX0lOUFVUX0RBVEEKIAogWDUwOSBDUlQga2V5VXNhZ2UgIzExIChleHRlbnNpb24gcHJlc2VudCwgZGVjT25seSBhbGxvd2VkIHByZXNlbnQpCiBkZXBlbmRzX29uOk1CRURUTFNfUlNBX0M6TUJFRFRMU19NRF9DQU5fU0hBMQoteDUwOV9jaGVja19rZXlfdXNhZ2U6ImRhdGFfZmlsZXMva2V5VXNhZ2UuZGVjaXBoZXJPbmx5LmNydCI6TUJFRFRMU19YNTA5X0tVX0RJR0lUQUxfU0lHTkFUVVJFfE1CRURUTFNfWDUwOV9LVV9LRVlfRU5DSVBIRVJNRU5UfE1CRURUTFNfWDUwOV9LVV9ERUNJUEhFUl9PTkxZOjAKK3g1MDlfY2hlY2tfa2V5X3VzYWdlOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9rZXlVc2FnZS5kZWNpcGhlck9ubHkuY3J0IjpNQkVEVExTX1g1MDlfS1VfRElHSVRBTF9TSUdOQVRVUkV8TUJFRFRMU19YNTA5X0tVX0tFWV9FTkNJUEhFUk1FTlR8TUJFRFRMU19YNTA5X0tVX0RFQ0lQSEVSX09OTFk6MAogCiBYNTA5IENSVCBleHRlbmRlZEtleVVzYWdlICMxIChubyBleHRlbnNpb24sIHNlcnZlckF1dGgpCi1kZXBlbmRzX29uOk1CRURUTFNfUEtfQ0FOX0VDRFNBX1ZFUklGWTpNQkVEVExTX0VDUF9IQVZFX1NFQ1AyNTZSMTpNQkVEVExTX01EX0NBTl9TSEEyNTYKLXg1MDlfY2hlY2tfZXh0ZW5kZWRfa2V5X3VzYWdlOiJkYXRhX2ZpbGVzL3NlcnZlcjUuY3J0IjoiMmIwNjAxMDUwNTA3MDMwMSI6MAorZGVwZW5kc19vbjpNQkVEVExTX1BLX0NBTl9FQ0RTQV9WRVJJRlk6TUJFRFRMU19FQ1BfSEFWRV9TRUNQMjU2UjE6UFNBX1dBTlRfQUxHX1NIQV8yNTYKK3g1MDlfY2hlY2tfZXh0ZW5kZWRfa2V5X3VzYWdlOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9zZXJ2ZXI1LmNydCI6IjJiMDYwMTA1MDUwNzAzMDEiOjAKIAogWDUwOSBDUlQgZXh0ZW5kZWRLZXlVc2FnZSAjMiAoc2luZ2xlIHZhbHVlLCBwcmVzZW50KQotZGVwZW5kc19vbjpNQkVEVExTX1BLX0NBTl9FQ0RTQV9WRVJJRlk6TUJFRFRMU19FQ1BfSEFWRV9TRUNQMjU2UjE6TUJFRFRMU19NRF9DQU5fU0hBMjU2Ci14NTA5X2NoZWNrX2V4dGVuZGVkX2tleV91c2FnZToiZGF0YV9maWxlcy9zZXJ2ZXI1LmVrdS1zcnYuY3J0IjoiMmIwNjAxMDUwNTA3MDMwMSI6MAorZGVwZW5kc19vbjpNQkVEVExTX1BLX0NBTl9FQ0RTQV9WRVJJRlk6TUJFRFRMU19FQ1BfSEFWRV9TRUNQMjU2UjE6UFNBX1dBTlRfQUxHX1NIQV8yNTYKK3g1MDlfY2hlY2tfZXh0ZW5kZWRfa2V5X3VzYWdlOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9zZXJ2ZXI1LmVrdS1zcnYuY3J0IjoiMmIwNjAxMDUwNTA3MDMwMSI6MAogCiBYNTA5IENSVCBleHRlbmRlZEtleVVzYWdlICMzIChzaW5nbGUgdmFsdWUsIGFic2VudCkKLWRlcGVuZHNfb246TUJFRFRMU19QS19DQU5fRUNEU0FfVkVSSUZZOk1CRURUTFNfRUNQX0hBVkVfU0VDUDI1NlIxOk1CRURUTFNfTURfQ0FOX1NIQTI1NgoteDUwOV9jaGVja19leHRlbmRlZF9rZXlfdXNhZ2U6ImRhdGFfZmlsZXMvc2VydmVyNS5la3UtY2xpLmNydCI6IjJiMDYwMTA1MDUwNzAzMDEiOk1CRURUTFNfRVJSX1g1MDlfQkFEX0lOUFVUX0RBVEEKK2RlcGVuZHNfb246TUJFRFRMU19QS19DQU5fRUNEU0FfVkVSSUZZOk1CRURUTFNfRUNQX0hBVkVfU0VDUDI1NlIxOlBTQV9XQU5UX0FMR19TSEFfMjU2Cit4NTA5X2NoZWNrX2V4dGVuZGVkX2tleV91c2FnZToiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvc2VydmVyNS5la3UtY2xpLmNydCI6IjJiMDYwMTA1MDUwNzAzMDEiOk1CRURUTFNfRVJSX1g1MDlfQkFEX0lOUFVUX0RBVEEKIAogWDUwOSBDUlQgZXh0ZW5kZWRLZXlVc2FnZSAjNCAodHdvIHZhbHVlcywgZmlyc3QpCi1kZXBlbmRzX29uOk1CRURUTFNfUEtfQ0FOX0VDRFNBX1ZFUklGWTpNQkVEVExTX0VDUF9IQVZFX1NFQ1AyNTZSMTpNQkVEVExTX01EX0NBTl9TSEEyNTYKLXg1MDlfY2hlY2tfZXh0ZW5kZWRfa2V5X3VzYWdlOiJkYXRhX2ZpbGVzL3NlcnZlcjUuZWt1LXNydl9jbGkuY3J0IjoiMmIwNjAxMDUwNTA3MDMwMSI6MAorZGVwZW5kc19vbjpNQkVEVExTX1BLX0NBTl9FQ0RTQV9WRVJJRlk6TUJFRFRMU19FQ1BfSEFWRV9TRUNQMjU2UjE6UFNBX1dBTlRfQUxHX1NIQV8yNTYKK3g1MDlfY2hlY2tfZXh0ZW5kZWRfa2V5X3VzYWdlOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9zZXJ2ZXI1LmVrdS1zcnZfY2xpLmNydCI6IjJiMDYwMTA1MDUwNzAzMDEiOjAKIAogWDUwOSBDUlQgZXh0ZW5kZWRLZXlVc2FnZSAjNSAodHdvIHZhbHVlcywgc2Vjb25kKQotZGVwZW5kc19vbjpNQkVEVExTX1BLX0NBTl9FQ0RTQV9WRVJJRlk6TUJFRFRMU19FQ1BfSEFWRV9TRUNQMjU2UjE6TUJFRFRMU19NRF9DQU5fU0hBMjU2Ci14NTA5X2NoZWNrX2V4dGVuZGVkX2tleV91c2FnZToiZGF0YV9maWxlcy9zZXJ2ZXI1LmVrdS1zcnZfY2xpLmNydCI6IjJiMDYwMTA1MDUwNzAzMDIiOjAKK2RlcGVuZHNfb246TUJFRFRMU19QS19DQU5fRUNEU0FfVkVSSUZZOk1CRURUTFNfRUNQX0hBVkVfU0VDUDI1NlIxOlBTQV9XQU5UX0FMR19TSEFfMjU2Cit4NTA5X2NoZWNrX2V4dGVuZGVkX2tleV91c2FnZToiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvc2VydmVyNS5la3Utc3J2X2NsaS5jcnQiOiIyYjA2MDEwNTA1MDcwMzAyIjowCiAKIFg1MDkgQ1JUIGV4dGVuZGVkS2V5VXNhZ2UgIzYgKHR3byB2YWx1ZXMsIG90aGVyKQotZGVwZW5kc19vbjpNQkVEVExTX1BLX0NBTl9FQ0RTQV9WRVJJRlk6TUJFRFRMU19FQ1BfSEFWRV9TRUNQMjU2UjE6TUJFRFRMU19NRF9DQU5fU0hBMjU2Ci14NTA5X2NoZWNrX2V4dGVuZGVkX2tleV91c2FnZToiZGF0YV9maWxlcy9zZXJ2ZXI1LmVrdS1zcnZfY2xpLmNydCI6IjJiMDYwMTA1MDUwNzAzMDMiOk1CRURUTFNfRVJSX1g1MDlfQkFEX0lOUFVUX0RBVEEKK2RlcGVuZHNfb246TUJFRFRMU19QS19DQU5fRUNEU0FfVkVSSUZZOk1CRURUTFNfRUNQX0hBVkVfU0VDUDI1NlIxOlBTQV9XQU5UX0FMR19TSEFfMjU2Cit4NTA5X2NoZWNrX2V4dGVuZGVkX2tleV91c2FnZToiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvc2VydmVyNS5la3Utc3J2X2NsaS5jcnQiOiIyYjA2MDEwNTA1MDcwMzAzIjpNQkVEVExTX0VSUl9YNTA5X0JBRF9JTlBVVF9EQVRBCiAKIFg1MDkgQ1JUIGV4dGVuZGVkS2V5VXNhZ2UgIzcgKGFueSwgcmFuZG9tKQotZGVwZW5kc19vbjpNQkVEVExTX1BLX0NBTl9FQ0RTQV9WRVJJRlk6TUJFRFRMU19FQ1BfSEFWRV9TRUNQMjU2UjE6TUJFRFRMU19NRF9DQU5fU0hBMjU2Ci14NTA5X2NoZWNrX2V4dGVuZGVkX2tleV91c2FnZToiZGF0YV9maWxlcy9zZXJ2ZXI1LmVrdS1jc19hbnkuY3J0IjoiMmIwNjAxMDUwNTA3MDNmZiI6MAorZGVwZW5kc19vbjpNQkVEVExTX1BLX0NBTl9FQ0RTQV9WRVJJRlk6TUJFRFRMU19FQ1BfSEFWRV9TRUNQMjU2UjE6UFNBX1dBTlRfQUxHX1NIQV8yNTYKK3g1MDlfY2hlY2tfZXh0ZW5kZWRfa2V5X3VzYWdlOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9zZXJ2ZXI1LmVrdS1jc19hbnkuY3J0IjoiMmIwNjAxMDUwNTA3MDNmZiI6MAogCiBYNTA5IFJTQVNTQS1QU1MgcGFyYW1ldGVycyBBU04xIChnb29kLCBhbGwgZGVmYXVsdHMpCiB4NTA5X3BhcnNlX3JzYXNzYV9wc3NfcGFyYW1zOiIiOk1CRURUTFNfQVNOMV9DT05TVFJVQ1RFRCB8IE1CRURUTFNfQVNOMV9TRVFVRU5DRTpNQkVEVExTX01EX1NIQTE6TUJFRFRMU19NRF9TSEExOjIwOjAKQEAgLTI4MzUsNyArMjgzNSw3IEBACiB4NTA5X3BhcnNlX3JzYXNzYV9wc3NfcGFyYW1zOiJhNDAwIjpNQkVEVExTX0FTTjFfQ09OU1RSVUNURUQgfCBNQkVEVExTX0FTTjFfU0VRVUVOQ0U6TUJFRFRMU19NRF9TSEExOk1CRURUTFNfTURfU0hBMToyMDpNQkVEVExTX0VSUl9YNTA5X0lOVkFMSURfQUxHICsgTUJFRFRMU19FUlJfQVNOMV9MRU5HVEhfTUlTTUFUQ0gKIAogWDUwOSBSU0FTU0EtUFNTIHBhcmFtZXRlcnMgQVNOMSAoZ29vZCwgSGFzaEFsZyBTSEEyNTYpCi1kZXBlbmRzX29uOk1CRURUTFNfUlNBX0M6TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOk1CRURUTFNfUlNBX0M6UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHg1MDlfcGFyc2VfcnNhc3NhX3Bzc19wYXJhbXM6ImEwMGQzMDBiMDYwOTYwODY0ODAxNjUwMzA0MDIwMSI6TUJFRFRMU19BU04xX0NPTlNUUlVDVEVEIHwgTUJFRFRMU19BU04xX1NFUVVFTkNFOk1CRURUTFNfTURfU0hBMjU2Ok1CRURUTFNfTURfU0hBMToyMDowCiAKIFg1MDkgUlNBU1NBLVBTUyBwYXJhbWV0ZXJzIEFTTjEgKGdvb2QsIGV4cGxpY2l0IEhhc2hBbGcgPSBkZWZhdWx0KQpAQCAtMjg1Niw3ICsyODU2LDcgQEAKIHg1MDlfcGFyc2VfcnNhc3NhX3Bzc19wYXJhbXM6ImEwMGQzMDBiMDYwOTYwODY0ODAxNjUwMzA0MDJmZiI6TUJFRFRMU19BU04xX0NPTlNUUlVDVEVEIHwgTUJFRFRMU19BU04xX1NFUVVFTkNFOk1CRURUTFNfTURfU0hBMjU2Ok1CRURUTFNfTURfU0hBMToyMDpNQkVEVExTX0VSUl9YNTA5X0lOVkFMSURfQUxHICsgTUJFRFRMU19FUlJfT0lEX05PVF9GT1VORAogCiBYNTA5IFJTQVNTQS1QU1MgcGFyYW1ldGVycyBBU04xIChnb29kLCBNR0FsZyA9IE1HRjEtU0hBMjU2KQotZGVwZW5kc19vbjpNQkVEVExTX1JTQV9DOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpNQkVEVExTX1JTQV9DOlBTQV9XQU5UX0FMR19TSEFfMjU2CiB4NTA5X3BhcnNlX3JzYXNzYV9wc3NfcGFyYW1zOiJhMTFhMzAxODA2MDkyYTg2NDg4NmY3MGQwMTAxMDgzMDBiMDYwOTYwODY0ODAxNjUwMzA0MDIwMSI6TUJFRFRMU19BU04xX0NPTlNUUlVDVEVEIHwgTUJFRFRMU19BU04xX1NFUVVFTkNFOk1CRURUTFNfTURfU0hBMTpNQkVEVExTX01EX1NIQTI1NjoyMDowCiAKIFg1MDkgUlNBU1NBLVBTUyBwYXJhbWV0ZXJzIEFTTjEgKGdvb2QsIGV4cGxpY2l0IE1HQWxnID0gZGVmYXVsdCkKQEAgLTI4NjcsNyArMjg2Nyw3IEBACiB4NTA5X3BhcnNlX3JzYXNzYV9wc3NfcGFyYW1zOiJhMTFiMzAxODA2MDkyYTg2NDg4NmY3MGQwMTAxMDgzMDBiMDYwOTYwODY0ODAxNjUwMzA0MDIwMSI6TUJFRFRMU19BU04xX0NPTlNUUlVDVEVEIHwgTUJFRFRMU19BU04xX1NFUVVFTkNFOk1CRURUTFNfTURfU0hBMTpNQkVEVExTX01EX1NIQTI1NjoyMDpNQkVEVExTX0VSUl9YNTA5X0lOVkFMSURfQUxHICsgTUJFRFRMU19FUlJfQVNOMV9PVVRfT0ZfREFUQQogCiBYNTA5IFJTQVNTQS1QU1MgcGFyYW1ldGVycyBBU04xIChNR0FsZyB3cm9uZyBsZW4gIzIpCi1kZXBlbmRzX29uOk1CRURUTFNfUlNBX0M6TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOk1CRURUTFNfUlNBX0M6UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHg1MDlfcGFyc2VfcnNhc3NhX3Bzc19wYXJhbXM6ImExMWIzMDE4MDYwOTJhODY0ODg2ZjcwZDAxMDEwODMwMGIwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDAiOk1CRURUTFNfQVNOMV9DT05TVFJVQ1RFRCB8IE1CRURUTFNfQVNOMV9TRVFVRU5DRTpNQkVEVExTX01EX1NIQTE6TUJFRFRMU19NRF9TSEEyNTY6MjA6TUJFRFRMU19FUlJfWDUwOV9JTlZBTElEX0FMRyArIE1CRURUTFNfRVJSX0FTTjFfTEVOR1RIX01JU01BVENICiAKIFg1MDkgUlNBU1NBLVBTUyBwYXJhbWV0ZXJzIEFTTjEgKE1HQWxnIEFsZ0lkIHdyb25nIGxlbiAjMSkKQEAgLTI4OTIsMTggKzI4OTIsMTggQEAKIHg1MDlfcGFyc2VfcnNhc3NhX3Bzc19wYXJhbXM6ImExMWEzMDE4MDYwOTJhODY0ODg2ZjcwZDAxMDEwODMwMGIwNjA5NjA4NjQ4MDE2NTAzMDQwMmZmIjpNQkVEVExTX0FTTjFfQ09OU1RSVUNURUQgfCBNQkVEVExTX0FTTjFfU0VRVUVOQ0U6TUJFRFRMU19NRF9TSEExOk1CRURUTFNfTURfU0hBMjU2OjIwOk1CRURUTFNfRVJSX1g1MDlfSU5WQUxJRF9BTEcgKyBNQkVEVExTX0VSUl9PSURfTk9UX0ZPVU5ECiAKIFg1MDkgUlNBU1NBLVBTUyBwYXJhbWV0ZXJzIEFTTjEgKE1HQWxnLnBhcmFtcy5wYXJhbXMgTlVMTCkKLWRlcGVuZHNfb246TUJFRFRMU19SU0FfQzpNQkVEVExTX01EX0NBTl9TSEEyNTYKK2RlcGVuZHNfb246TUJFRFRMU19SU0FfQzpQU0FfV0FOVF9BTEdfU0hBXzI1NgogeDUwOV9wYXJzZV9yc2Fzc2FfcHNzX3BhcmFtczoiYTExYzMwMWEwNjA5MmE4NjQ4ODZmNzBkMDEwMTA4MzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDEwNTAwIjpNQkVEVExTX0FTTjFfQ09OU1RSVUNURUQgfCBNQkVEVExTX0FTTjFfU0VRVUVOQ0U6TUJFRFRMU19NRF9TSEExOk1CRURUTFNfTURfU0hBMjU2OjIwOjAKIAogWDUwOSBSU0FTU0EtUFNTIHBhcmFtZXRlcnMgQVNOMSAoTUdBbGcucGFyYW1zLnBhcmFtcyB3cm9uZyB0YWcpCi1kZXBlbmRzX29uOk1CRURUTFNfUlNBX0M6TUJFRFRMU19NRF9DQU5fU0hBMjU2CitkZXBlbmRzX29uOk1CRURUTFNfUlNBX0M6UFNBX1dBTlRfQUxHX1NIQV8yNTYKIHg1MDlfcGFyc2VfcnNhc3NhX3Bzc19wYXJhbXM6ImExMWMzMDFhMDYwOTJhODY0ODg2ZjcwZDAxMDEwODMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMzAwMCI6TUJFRFRMU19BU04xX0NPTlNUUlVDVEVEIHwgTUJFRFRMU19BU04xX1NFUVVFTkNFOk1CRURUTFNfTURfU0hBMTpNQkVEVExTX01EX1NIQTI1NjoyMDpNQkVEVExTX0VSUl9YNTA5X0lOVkFMSURfQUxHICsgTUJFRFRMU19FUlJfQVNOMV9VTkVYUEVDVEVEX1RBRwogCiBYNTA5IFJTQVNTQS1QU1MgcGFyYW1ldGVycyBBU04xIChNR0FsZy5wYXJhbXMgd3JvbmcgbGVuICMxYykKIHg1MDlfcGFyc2VfcnNhc3NhX3Bzc19wYXJhbXM6ImExMWQzMDFiMDYwOTJhODY0ODg2ZjcwZDAxMDEwODMwMGUwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMCI6TUJFRFRMU19BU04xX0NPTlNUUlVDVEVEIHwgTUJFRFRMU19BU04xX1NFUVVFTkNFOk1CRURUTFNfTURfU0hBMTpNQkVEVExTX01EX1NIQTI1NjoyMDpNQkVEVExTX0VSUl9YNTA5X0lOVkFMSURfQUxHICsgTUJFRFRMU19FUlJfQVNOMV9PVVRfT0ZfREFUQQogCiBYNTA5IFJTQVNTQS1QU1MgcGFyYW1ldGVycyBBU04xIChNR0FsZy5wYXJhbXMgd3JvbmcgbGVuICMyKQotZGVwZW5kc19vbjpNQkVEVExTX1JTQV9DOk1CRURUTFNfTURfQ0FOX1NIQTI1NgorZGVwZW5kc19vbjpNQkVEVExTX1JTQV9DOlBTQV9XQU5UX0FMR19TSEFfMjU2CiB4NTA5X3BhcnNlX3JzYXNzYV9wc3NfcGFyYW1zOiJhMTFkMzAxYjA2MDkyYTg2NDg4NmY3MGQwMTAxMDgzMDBlMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAwMCI6TUJFRFRMU19BU04xX0NPTlNUUlVDVEVEIHwgTUJFRFRMU19BU04xX1NFUVVFTkNFOk1CRURUTFNfTURfU0hBMTpNQkVEVExTX01EX1NIQTI1NjoyMDpNQkVEVExTX0VSUl9YNTA5X0lOVkFMSURfQUxHICsgTUJFRFRMU19FUlJfQVNOMV9MRU5HVEhfTUlTTUFUQ0gKIAogWDUwOSBSU0FTU0EtUFNTIHBhcmFtZXRlcnMgQVNOMSAoZ29vZCwgc2FsdExlbiA9IDk0KQpAQCAtMjk0MSwyMyArMjk0MSwyMyBAQAogbWJlZHRsc194NTA5X2Nzcl9wYXJzZToiMzA4MjAxMTgzMDgxYmYwMjAxMDAzMDM0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjRlNGMzMTExMzAwZjA2MDM1NTA0MGExMzA4NTA2ZjZjNjE3MjUzNTM0YzMxMTIzMDEwMDYwMzU1MDQwMzEzMDk2YzZmNjM2MTZjNjg2ZjczNzQzMDU5MzAxMzA2MDcyYTg2NDhjZTNkMDIwMTA2MDgyYTg2NDhjZTNkMDMwMTA3MDM0MjAwMDQzN2NjNTZkOTc2MDkxZTVhNzIzZWM3NTkyZGZmMjA2ZWVlN2NmOTA2OTE3NGQwYWQxNGI1Zjc2ODIyNTk2MjkyNGVlNTAwZDgyMzExZmZlYTJmZDIzNDVkNWQxNmJkOGE4OGMyNmI3NzBkNTVjZDhhMmEwZWZhMDFjOGI0ZWRmZmEwMjkzMDI3MDYwOTJhODY0ODg2ZjcwZDAxMDkwZTMxMWEzMDE4MzAwOTA2MDM1NTFkMTMwNDAyMzAwMDMwMGIwNjAzNTUxZDBmMDQwNDAzMDIwNWUwMzAwOTA2MDcyYTg2NDhjZTNkMDQwMTAzNDkwMDMwNDYwMjIxMDBiNDlmZDhjOGY3N2FiZmE4NzE5MDhkZmJlNjg0YTA4YTc5M2QwZjQ5MGE0M2Q4NmZjZjIwODZlNGYyNGJiMGMyMDIyMTAwZjgyOWQ1Y2NkMzc0MjM2OTI5OWU2Mjk0Mzk0NzE3YzRiNzIzYTBmNjhiNDRlODMxYjZlNmMzYmNhYmY5NzI0MyI6IkNTUiB2ZXJzaW9uICAgXDogMVxuc3ViamVjdCBuYW1lICBcOiBDPU5MLCBPPVBvbGFyU1NMLCBDTj1sb2NhbGhvc3RcbnNpZ25lZCB1c2luZyAgXDogRUNEU0Egd2l0aCBTSEExXG5FQyBrZXkgc2l6ZSAgIFw6IDI1NiBiaXRzXG5cbmtleSB1c2FnZSAgICAgICAgIFw6IERpZ2l0YWwgU2lnbmF0dXJlLCBOb24gUmVwdWRpYXRpb24sIEtleSBFbmNpcGhlcm1lbnRcbiI6MAogCiBYNTA5IENTUiBBU04uMSAoVW5zdXBwb3J0ZWQgY3JpdGljYWwgZXh0ZW5zaW9uLCBjcml0aWNhbD10cnVlKQotZGVwZW5kc19vbjpNQkVEVExTX1BLX0NBTl9FQ0RTQV9TT01FOk1CRURUTFNfRUNQX0hBVkVfU0VDUDI1NlIxOk1CRURUTFNfTURfQ0FOX1NIQTI1NjohTUJFRFRMU19YNTA5X1JFTU9WRV9JTkZPCitkZXBlbmRzX29uOk1CRURUTFNfUEtfQ0FOX0VDRFNBX1NPTUU6TUJFRFRMU19FQ1BfSEFWRV9TRUNQMjU2UjE6UFNBX1dBTlRfQUxHX1NIQV8yNTY6IU1CRURUTFNfWDUwOV9SRU1PVkVfSU5GTwogbWJlZHRsc194NTA5X2Nzcl9wYXJzZToiMzA4MjAxMjMzMDgxY2IwMjAxMDAzMDQxMzExOTMwMTcwNjAzNTUwNDAzMGMxMDUzNjU2YzY2MjA3MzY5Njc2ZTY1NjQyMDc0NjU3Mzc0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjQ0NDUzMTE3MzAxNTA2MDM1NTA0MGEwYzBlNDE3NTc0Njg0MzcyNzQ0NDQyMjA1NDY1NzM3NDMwNTkzMDEzMDYwNzJhODY0OGNlM2QwMjAxMDYwODJhODY0OGNlM2QwMzAxMDcwMzQyMDAwNGMxMWViYjk5NTE4NDhhNDM2Y2EyYzhhNzMzODJmMjRiYmI2YzI4YTkyZTQwMWQ0ODg5YjBjMzYxZjM3N2I5MmE4YjA0OTdmZjJmNWE1ZjYwNTdhZTg1ZjcwNGFiMTg1MGJlZjA3NTkxNGY2OGVkM2FlYjE1YTFmZjFlYmMwZGM2YTAyODMwMjYwNjA5MmE4NjQ4ODZmNzBkMDEwOTBlMzExOTMwMTczMDE1MDYwYjJiMDYwMTA0MDE4Mzg5MGM4NjIyMDIwMTAxZmYwNDAzMDEwMTAxMzAwYTA2MDgyYTg2NDhjZTNkMDQwMzAyMDM0NzAwMzA0NDAyMjAwYzQxMDhmZDA5ODUyNTk5M2QzZmQ1YjExM2YwYTFlYWQ4NzUwODUyYmFmNTVhMmY4ZTY3MGEyMmNhYmMwYmExMDIyMDM0ZGI5M2EwZmNiOTkzOTEyYWRjZjJlYThjYjRiNjYzODlhZjMwZTI2NGQ0M2MwZGFlYTAzMjU1ZTQ1ZDJjY2MiOiIiOk1CRURUTFNfRVJSX1g1MDlfSU5WQUxJRF9FWFRFTlNJT05TK01CRURUTFNfRVJSX0FTTjFfVU5FWFBFQ1RFRF9UQUcKIAogWDUwOSBDU1IgQVNOLjEgKFVuc3VwcG9ydGVkIG5vbi1jcml0aWNhbCBleHRlbnNpb24sIGNyaXRpY2FsPWZhbHNlKQotZGVwZW5kc19vbjpNQkVEVExTX1BLX0NBTl9FQ0RTQV9TT01FOk1CRURUTFNfRUNQX0hBVkVfU0VDUDI1NlIxOk1CRURUTFNfTURfQ0FOX1NIQTI1NjohTUJFRFRMU19YNTA5X1JFTU9WRV9JTkZPCitkZXBlbmRzX29uOk1CRURUTFNfUEtfQ0FOX0VDRFNBX1NPTUU6TUJFRFRMU19FQ1BfSEFWRV9TRUNQMjU2UjE6UFNBX1dBTlRfQUxHX1NIQV8yNTY6IU1CRURUTFNfWDUwOV9SRU1PVkVfSU5GTwogbWJlZHRsc194NTA5X2Nzcl9wYXJzZToiMzA4MjAxMjQzMDgxY2IwMjAxMDAzMDQxMzExOTMwMTcwNjAzNTUwNDAzMGMxMDUzNjU2YzY2MjA3MzY5Njc2ZTY1NjQyMDc0NjU3Mzc0MzEwYjMwMDkwNjAzNTUwNDA2MTMwMjQ0NDUzMTE3MzAxNTA2MDM1NTA0MGEwYzBlNDE3NTc0Njg0MzcyNzQ0NDQyMjA1NDY1NzM3NDMwNTkzMDEzMDYwNzJhODY0OGNlM2QwMjAxMDYwODJhODY0OGNlM2QwMzAxMDcwMzQyMDAwNGI1ZTcxOGE3ZGY2YjIxOTEyNzMzZTc3YzQyZjI2NmI4MjgzZTZjYWU3YWRmOGFmZDU2Yjk5MGMxYzYyMzJlYTBhMmE0NjA5N2MyMTgzNTNiYzk0ODQ0NGFlYTNkMDA0MjNlODQ4MDJlMjhjNDgwOTk2NDFmZTk5NzdjZGZiNTA1YTAyODMwMjYwNjA5MmE4NjQ4ODZmNzBkMDEwOTBlMzExOTMwMTczMDE1MDYwYjJiMDYwMTA0MDE4Mzg5MGM4NjIyMDIwMTAxMDAwNDAzMDEwMTAxMzAwYTA2MDgyYTg2NDhjZTNkMDQwMzAyMDM0ODAwMzA0NTAyMjEwMGYwYmE5YTA4NDZhZDBhN2NlZmQwYTYxZDVmYzkyMTk0ZGMwNjAzN2E0NDE1OGRlMmQwYzU2OTkxMmMwNThkNDMwMjIwNDIxZjI3YTlmMjQ5YzE2ODdlMmZhMzRkYjNmNTQzYzg1MTJmZDkyNWRmZTVhZTAwODY3ZjEzOTYzZmZkNGY4ZCI6IkNTUiB2ZXJzaW9uICAgXDogMVxuc3ViamVjdCBuYW1lICBcOiBDTj1TZWxmIHNpZ25lZCB0ZXN0LCBDPURFLCBPPUF1dGhDcnREQiBUZXN0XG5zaWduZWQgdXNpbmcgIFw6IEVDRFNBIHdpdGggU0hBMjU2XG5FQyBrZXkgc2l6ZSAgIFw6IDI1NiBiaXRzXG4iOjAKIAogWDUwOSBDU1IgQVNOLjEgKFVuc3VwcG9ydGVkIG5vbi1jcml0aWNhbCBleHRlbnNpb24sIGNyaXRpY2FsIHVuZGVmaW5lZCkKLWRlcGVuZHNfb246TUJFRFRMU19QS19DQU5fRUNEU0FfU09NRTpNQkVEVExTX0VDUF9IQVZFX1NFQ1AyNTZSMTpNQkVEVExTX01EX0NBTl9TSEEyNTY6IU1CRURUTFNfWDUwOV9SRU1PVkVfSU5GTworZGVwZW5kc19vbjpNQkVEVExTX1BLX0NBTl9FQ0RTQV9TT01FOk1CRURUTFNfRUNQX0hBVkVfU0VDUDI1NlIxOlBTQV9XQU5UX0FMR19TSEFfMjU2OiFNQkVEVExTX1g1MDlfUkVNT1ZFX0lORk8KIG1iZWR0bHNfeDUwOV9jc3JfcGFyc2U6IjMwODIwMTIyMzA4MWM4MDIwMTAwMzA0MTMxMTkzMDE3MDYwMzU1MDQwMzBjMTA1MzY1NmM2NjIwNzM2OTY3NmU2NTY0MjA3NDY1NzM3NDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0NDQ1MzExNzMwMTUwNjAzNTUwNDBhMGMwZTQxNzU3NDY4NDM3Mjc0NDQ0MjIwNTQ2NTczNzQzMDU5MzAxMzA2MDcyYTg2NDhjZTNkMDIwMTA2MDgyYTg2NDhjZTNkMDMwMTA3MDM0MjAwMDQ1Zjk0YjI4ZDEzMzQxODgzM2JmMTBjNDQyZDkxMzA2NDU5ZDM5MjVlN2NlYTA2ZWJiOTIyMDkzMmU3ZGUxMTZmYjY3MWM1ZDJkNmMwYTM3ODRhMTI4OTcyMTdhZWY4NDMyZTcyMjhmY2VhMGFiMDE2YmRiNjdiNjdjZWQ0YzYxMmEwMjUzMDIzMDYwOTJhODY0ODg2ZjcwZDAxMDkwZTMxMTYzMDE0MzAxMjA2MGIyYjA2MDEwNDAxODM4OTBjODYyMjAyMDQwMzAxMDEwMTMwMGEwNjA4MmE4NjQ4Y2UzZDA0MDMwMjAzNDkwMDMwNDYwMjIxMDA5YjFlOGIyNTc3NWMxODUyNWU5Njc1M2UxZWQ1NTg3NWY4ZDYyZjAyNmM1YjdmNzBlYjUwMzdhZDI3ZGM5MmRlMDIyMTAwYmExZGZlMTRkZTZhZjZhNjAzZjc2MzU2M2ZkMDQ2YjFjZDM3MTRiNTRkNmRhZjVkOGE3MjA3NjQ5N2YxMTAxNCI6IkNTUiB2ZXJzaW9uICAgXDogMVxuc3ViamVjdCBuYW1lICBcOiBDTj1TZWxmIHNpZ25lZCB0ZXN0LCBDPURFLCBPPUF1dGhDcnREQiBUZXN0XG5zaWduZWQgdXNpbmcgIFw6IEVDRFNBIHdpdGggU0hBMjU2XG5FQyBrZXkgc2l6ZSAgIFw6IDI1NiBiaXRzXG4iOjAKIAogWDUwOSBDU1IgQVNOLjEgKFVuc3VwcG9ydGVkIGNyaXRpY2FsIGV4dGVuc2lvbiBhY2NlcHRlZCBieSBjYWxsYmFjaywgY3JpdGljYWw9dHJ1ZSkKLWRlcGVuZHNfb246TUJFRFRMU19QS19DQU5fRUNEU0FfU09NRTpNQkVEVExTX0VDUF9IQVZFX1NFQ1AyNTZSMTpNQkVEVExTX01EX0NBTl9TSEEyNTY6IU1CRURUTFNfWDUwOV9SRU1PVkVfSU5GTworZGVwZW5kc19vbjpNQkVEVExTX1BLX0NBTl9FQ0RTQV9TT01FOk1CRURUTFNfRUNQX0hBVkVfU0VDUDI1NlIxOlBTQV9XQU5UX0FMR19TSEFfMjU2OiFNQkVEVExTX1g1MDlfUkVNT1ZFX0lORk8KIG1iZWR0bHNfeDUwOV9jc3JfcGFyc2Vfd2l0aF9leHRfY2I6IjMwODIwMTIzMzA4MWNiMDIwMTAwMzA0MTMxMTkzMDE3MDYwMzU1MDQwMzBjMTA1MzY1NmM2NjIwNzM2OTY3NmU2NTY0MjA3NDY1NzM3NDMxMGIzMDA5MDYwMzU1MDQwNjEzMDI0NDQ1MzExNzMwMTUwNjAzNTUwNDBhMGMwZTQxNzU3NDY4NDM3Mjc0NDQ0MjIwNTQ2NTczNzQzMDU5MzAxMzA2MDcyYTg2NDhjZTNkMDIwMTA2MDgyYTg2NDhjZTNkMDMwMTA3MDM0MjAwMDRjMTFlYmI5OTUxODQ4YTQzNmNhMmM4YTczMzgyZjI0YmJiNmMyOGE5MmU0MDFkNDg4OWIwYzM2MWYzNzdiOTJhOGIwNDk3ZmYyZjVhNWY2MDU3YWU4NWY3MDRhYjE4NTBiZWYwNzU5MTRmNjhlZDNhZWIxNWExZmYxZWJjMGRjNmEwMjgzMDI2MDYwOTJhODY0ODg2ZjcwZDAxMDkwZTMxMTkzMDE3MzAxNTA2MGIyYjA2MDEwNDAxODM4OTBjODYyMjAyMDEwMWZmMDQwMzAxMDEwMTMwMGEwNjA4MmE4NjQ4Y2UzZDA0MDMwMjAzNDcwMDMwNDQwMjIwMGM0MTA4ZmQwOTg1MjU5OTNkM2ZkNWIxMTNmMGExZWFkODc1MDg1MmJhZjU1YTJmOGU2NzBhMjJjYWJjMGJhMTAyMjAzNGRiOTNhMGZjYjk5MzkxMmFkY2YyZWE4Y2I0YjY2Mzg5YWYzMGUyNjRkNDNjMGRhZWEwMzI1NWU0NWQyY2NjIjoiQ1NSIHZlcnNpb24gICBcOiAxXG5zdWJqZWN0IG5hbWUgIFw6IENOPVNlbGYgc2lnbmVkIHRlc3QsIEM9REUsIE89QXV0aENydERCIFRlc3RcbnNpZ25lZCB1c2luZyAgXDogRUNEU0Egd2l0aCBTSEEyNTZcbkVDIGtleSBzaXplICAgXDogMjU2IGJpdHNcbiI6MDoxCiAKIFg1MDkgQ1NSIEFTTi4xIChVbnN1cHBvcnRlZCBjcml0aWNhbCBleHRlbnNpb24gcmVqZWN0ZWQgYnkgY2FsbGJhY2ssIGNyaXRpY2FsPXRydWUpCi1kZXBlbmRzX29uOk1CRURUTFNfUEtfQ0FOX0VDRFNBX1NPTUU6TUJFRFRMU19FQ1BfSEFWRV9TRUNQMjU2UjE6TUJFRFRMU19NRF9DQU5fU0hBMjU2OiFNQkVEVExTX1g1MDlfUkVNT1ZFX0lORk8KK2RlcGVuZHNfb246TUJFRFRMU19QS19DQU5fRUNEU0FfU09NRTpNQkVEVExTX0VDUF9IQVZFX1NFQ1AyNTZSMTpQU0FfV0FOVF9BTEdfU0hBXzI1NjohTUJFRFRMU19YNTA5X1JFTU9WRV9JTkZPCiBtYmVkdGxzX3g1MDlfY3NyX3BhcnNlX3dpdGhfZXh0X2NiOiIzMDgyMDEyMzMwODFjYjAyMDEwMDMwNDEzMTE5MzAxNzA2MDM1NTA0MDMwYzEwNTM2NTZjNjYyMDczNjk2NzZlNjU2NDIwNzQ2NTczNzQzMTBiMzAwOTA2MDM1NTA0MDYxMzAyNDQ0NTMxMTczMDE1MDYwMzU1MDQwYTBjMGU0MTc1NzQ2ODQzNzI3NDQ0NDIyMDU0NjU3Mzc0MzA1OTMwMTMwNjA3MmE4NjQ4Y2UzZDAyMDEwNjA4MmE4NjQ4Y2UzZDAzMDEwNzAzNDIwMDA0YzExZWJiOTk1MTg0OGE0MzZjYTJjOGE3MzM4MmYyNGJiYjZjMjhhOTJlNDAxZDQ4ODliMGMzNjFmMzc3YjkyYThiMDQ5N2ZmMmY1YTVmNjA1N2FlODVmNzA0YWIxODUwYmVmMDc1OTE0ZjY4ZWQzYWViMTVhMWZmMWViYzBkYzZhMDI4MzAyNjA2MDkyYTg2NDg4NmY3MGQwMTA5MGUzMTE5MzAxNzMwMTUwNjBiMmIwNjAxMDQwMTgzODkwYzg2MjIwMjAxMDFmZjA0MDMwMTAxMDEzMDBhMDYwODJhODY0OGNlM2QwNDAzMDIwMzQ3MDAzMDQ0MDIyMDBjNDEwOGZkMDk4NTI1OTkzZDNmZDViMTEzZjBhMWVhZDg3NTA4NTJiYWY1NWEyZjhlNjcwYTIyY2FiYzBiYTEwMjIwMzRkYjkzYTBmY2I5OTM5MTJhZGNmMmVhOGNiNGI2NjM4OWFmMzBlMjY0ZDQzYzBkYWVhMDMyNTVlNDVkMmNjYyI6IiI6TUJFRFRMU19FUlJfWDUwOV9JTlZBTElEX0VYVEVOU0lPTlMrTUJFRFRMU19FUlJfQVNOMV9VTkVYUEVDVEVEX1RBRzowCiAKIFg1MDkgQ1NSIEFTTi4xIChiYWQgZmlyc3QgdGFnKQpAQCAtMzA1MCwxMjIgKzMwNTAsMTIyIEBACiBtYmVkdGxzX3g1MDlfY3NyX3BhcnNlOiIzMDA4MzAwNjAyMDQ3ZmZmZmZmZiI6IiI6TUJFRFRMU19FUlJfWDUwOV9VTktOT1dOX1ZFUlNJT04KIAogIyBVc2VkIHRlc3RfY3NyX3YzX2FsbC5jc3IuZGVyIGFzIGEgYmFzZSBmb3IgbWFsZm9ybWluZyBDU1IgZXh0ZW5zdGlvbnMvYXR0cmlidXRlcwotIyBQbGVhc2Ugc2VlIG1ha2VmaWxlIGZvciBkYXRhX2ZpbGVzIHRvIGNoZWNrIG1hbGZvcm1hdGlvbiBkZXRhaWxzICh0ZXN0X2Nzcl92M19hbGxfbWFsZm9ybWVkX3h4eC5jc3IgZmlsZXMpCisjIFBsZWFzZSBzZWUgbWFrZWZpbGUgZm9yIC4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzIHRvIGNoZWNrIG1hbGZvcm1hdGlvbiBkZXRhaWxzICh0ZXN0X2Nzcl92M19hbGxfbWFsZm9ybWVkX3h4eC5jc3IgZmlsZXMpCiBYNTA5IENTUiBBU04uMSAoYXR0cmlidXRlczogaW52YWxpZCBzZXF1ZW5jZSB0YWcpCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NjpNQkVEVExTX1JTQV9DCi1tYmVkdGxzX3g1MDlfY3NyX3BhcnNlX2ZpbGU6ImRhdGFfZmlsZXMvcGFyc2VfaW5wdXQvdGVzdF9jc3JfdjNfYWxsX21hbGZvcm1lZF9hdHRyaWJ1dGVzX3NlcXVlbmNlX3RhZy5jc3IuZGVyIjoiIjpNQkVEVExTX0VSUl9YNTA5X0lOVkFMSURfRVhURU5TSU9OUytNQkVEVExTX0VSUl9BU04xX1VORVhQRUNURURfVEFHCitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2Ok1CRURUTFNfUlNBX0MKK21iZWR0bHNfeDUwOV9jc3JfcGFyc2VfZmlsZToiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvcGFyc2VfaW5wdXQvdGVzdF9jc3JfdjNfYWxsX21hbGZvcm1lZF9hdHRyaWJ1dGVzX3NlcXVlbmNlX3RhZy5jc3IuZGVyIjoiIjpNQkVEVExTX0VSUl9YNTA5X0lOVkFMSURfRVhURU5TSU9OUytNQkVEVExTX0VSUl9BU04xX1VORVhQRUNURURfVEFHCiAKIFg1MDkgQ1NSIEFTTi4xIChhdHRyaWJ1dGVzOiBpbnZhbGlkIGF0dHJpYnV0ZSBpZCkKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2Ok1CRURUTFNfUlNBX0MKLW1iZWR0bHNfeDUwOV9jc3JfcGFyc2VfZmlsZToiZGF0YV9maWxlcy9wYXJzZV9pbnB1dC90ZXN0X2Nzcl92M19hbGxfbWFsZm9ybWVkX2F0dHJpYnV0ZXNfaWRfdGFnLmNzci5kZXIiOiIiOk1CRURUTFNfRVJSX1g1MDlfSU5WQUxJRF9FWFRFTlNJT05TK01CRURUTFNfRVJSX0FTTjFfVU5FWFBFQ1RFRF9UQUcKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTY6TUJFRFRMU19SU0FfQworbWJlZHRsc194NTA5X2Nzcl9wYXJzZV9maWxlOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9wYXJzZV9pbnB1dC90ZXN0X2Nzcl92M19hbGxfbWFsZm9ybWVkX2F0dHJpYnV0ZXNfaWRfdGFnLmNzci5kZXIiOiIiOk1CRURUTFNfRVJSX1g1MDlfSU5WQUxJRF9FWFRFTlNJT05TK01CRURUTFNfRVJSX0FTTjFfVU5FWFBFQ1RFRF9UQUcKIAogWDUwOSBDU1IgQVNOLjEgKGF0dHJpYnV0ZXM6IG5vdCBleHRlbnNpb24gcmVxdWVzdCkKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2Ok1CRURUTFNfUlNBX0MKLW1iZWR0bHNfeDUwOV9jc3JfcGFyc2VfZmlsZToiZGF0YV9maWxlcy9wYXJzZV9pbnB1dC90ZXN0X2Nzcl92M19hbGxfbWFsZm9ybWVkX2F0dHJpYnV0ZXNfZXh0ZW5zaW9uX3JlcXVlc3QuY3NyLmRlciI6IkNTUiB2ZXJzaW9uICAgXDogMVxuc3ViamVjdCBuYW1lICBcOiBDTj1ldGNkXG5zaWduZWQgdXNpbmcgIFw6IFJTQSB3aXRoIFNIQS0yNTZcblJTQSBrZXkgc2l6ZSAgXDogMTAyNCBiaXRzXG4iOjAKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTY6TUJFRFRMU19SU0FfQworbWJlZHRsc194NTA5X2Nzcl9wYXJzZV9maWxlOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9wYXJzZV9pbnB1dC90ZXN0X2Nzcl92M19hbGxfbWFsZm9ybWVkX2F0dHJpYnV0ZXNfZXh0ZW5zaW9uX3JlcXVlc3QuY3NyLmRlciI6IkNTUiB2ZXJzaW9uICAgXDogMVxuc3ViamVjdCBuYW1lICBcOiBDTj1ldGNkXG5zaWduZWQgdXNpbmcgIFw6IFJTQSB3aXRoIFNIQS0yNTZcblJTQSBrZXkgc2l6ZSAgXDogMTAyNCBiaXRzXG4iOjAKIAogWDUwOSBDU1IgQVNOLjEgKGF0dHJpYnV0ZXM6IGludmFsaWQgZXh0ZW5zdGlvbiByZXF1ZXN0IHNldCB0YWcpCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NjpNQkVEVExTX1JTQV9DCi1tYmVkdGxzX3g1MDlfY3NyX3BhcnNlX2ZpbGU6ImRhdGFfZmlsZXMvcGFyc2VfaW5wdXQvdGVzdF9jc3JfdjNfYWxsX21hbGZvcm1lZF9hdHRyaWJ1dGVzX2V4dGVuc2lvbl9yZXF1ZXN0X3NldF90YWcuY3NyLmRlciI6IiI6TUJFRFRMU19FUlJfWDUwOV9JTlZBTElEX0VYVEVOU0lPTlMrTUJFRFRMU19FUlJfQVNOMV9VTkVYUEVDVEVEX1RBRworZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NjpNQkVEVExTX1JTQV9DCittYmVkdGxzX3g1MDlfY3NyX3BhcnNlX2ZpbGU6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3BhcnNlX2lucHV0L3Rlc3RfY3NyX3YzX2FsbF9tYWxmb3JtZWRfYXR0cmlidXRlc19leHRlbnNpb25fcmVxdWVzdF9zZXRfdGFnLmNzci5kZXIiOiIiOk1CRURUTFNfRVJSX1g1MDlfSU5WQUxJRF9FWFRFTlNJT05TK01CRURUTFNfRVJSX0FTTjFfVU5FWFBFQ1RFRF9UQUcKIAogWDUwOSBDU1IgQVNOLjEgKGF0dHJpYnV0ZXM6IGludmFsaWQgZXh0ZW5zdGlvbiByZXF1ZXN0IHNlcXVlbmNlIHRhZykKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2Ok1CRURUTFNfUlNBX0MKLW1iZWR0bHNfeDUwOV9jc3JfcGFyc2VfZmlsZToiZGF0YV9maWxlcy9wYXJzZV9pbnB1dC90ZXN0X2Nzcl92M19hbGxfbWFsZm9ybWVkX2F0dHJpYnV0ZXNfZXh0ZW5zaW9uX3JlcXVlc3Rfc2VxdWVuY2VfdGFnLmNzci5kZXIiOiIiOk1CRURUTFNfRVJSX1g1MDlfSU5WQUxJRF9FWFRFTlNJT05TK01CRURUTFNfRVJSX0FTTjFfVU5FWFBFQ1RFRF9UQUcKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTY6TUJFRFRMU19SU0FfQworbWJlZHRsc194NTA5X2Nzcl9wYXJzZV9maWxlOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9wYXJzZV9pbnB1dC90ZXN0X2Nzcl92M19hbGxfbWFsZm9ybWVkX2F0dHJpYnV0ZXNfZXh0ZW5zaW9uX3JlcXVlc3Rfc2VxdWVuY2VfdGFnLmNzci5kZXIiOiIiOk1CRURUTFNfRVJSX1g1MDlfSU5WQUxJRF9FWFRFTlNJT05TK01CRURUTFNfRVJSX0FTTjFfVU5FWFBFQ1RFRF9UQUcKIAogWDUwOSBDU1IgQVNOLjEgKGF0dHJpYnV0ZXM6IGludmFsaWQgbGVuIChsZW4gPiBkYXRhKSkKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2Ok1CRURUTFNfUlNBX0MKLW1iZWR0bHNfeDUwOV9jc3JfcGFyc2VfZmlsZToiZGF0YV9maWxlcy9wYXJzZV9pbnB1dC90ZXN0X2Nzcl92M19hbGxfbWFsZm9ybWVkX2F0dHJpYnV0ZXNfbGVuMS5jc3IuZGVyIjoiIjpNQkVEVExTX0VSUl9YNTA5X0lOVkFMSURfRVhURU5TSU9OUytNQkVEVExTX0VSUl9BU04xX09VVF9PRl9EQVRBCitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2Ok1CRURUTFNfUlNBX0MKK21iZWR0bHNfeDUwOV9jc3JfcGFyc2VfZmlsZToiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvcGFyc2VfaW5wdXQvdGVzdF9jc3JfdjNfYWxsX21hbGZvcm1lZF9hdHRyaWJ1dGVzX2xlbjEuY3NyLmRlciI6IiI6TUJFRFRMU19FUlJfWDUwOV9JTlZBTElEX0VYVEVOU0lPTlMrTUJFRFRMU19FUlJfQVNOMV9PVVRfT0ZfREFUQQogCiBYNTA5IENTUiBBU04uMSAoYXR0cmlidXRlczogaW52YWxpZCBsZW4gKGxlbiA8IGRhdGEpKQotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTY6TUJFRFRMU19SU0FfQwotbWJlZHRsc194NTA5X2Nzcl9wYXJzZV9maWxlOiJkYXRhX2ZpbGVzL3BhcnNlX2lucHV0L3Rlc3RfY3NyX3YzX2FsbF9tYWxmb3JtZWRfYXR0cmlidXRlc19sZW4yLmNzci5kZXIiOiIiOk1CRURUTFNfRVJSX1g1MDlfSU5WQUxJRF9FWFRFTlNJT05TK01CRURUTFNfRVJSX0FTTjFfTEVOR1RIX01JU01BVENICitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2Ok1CRURUTFNfUlNBX0MKK21iZWR0bHNfeDUwOV9jc3JfcGFyc2VfZmlsZToiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvcGFyc2VfaW5wdXQvdGVzdF9jc3JfdjNfYWxsX21hbGZvcm1lZF9hdHRyaWJ1dGVzX2xlbjIuY3NyLmRlciI6IiI6TUJFRFRMU19FUlJfWDUwOV9JTlZBTElEX0VYVEVOU0lPTlMrTUJFRFRMU19FUlJfQVNOMV9MRU5HVEhfTUlTTUFUQ0gKIAogWDUwOSBDU1IgQVNOLjEgKGF0dHJpYnV0ZXM6IGV4dGVuc2lvbiByZXF1ZXN0IGludmFsaWQgbGVuIChsZW4gPiBkYXRhKSkKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2Ok1CRURUTFNfUlNBX0MKLW1iZWR0bHNfeDUwOV9jc3JfcGFyc2VfZmlsZToiZGF0YV9maWxlcy9wYXJzZV9pbnB1dC90ZXN0X2Nzcl92M19hbGxfbWFsZm9ybWVkX2F0dHJpYnV0ZXNfZXh0ZW5zaW9uX3JlcXVlc3Rfc2VxdWVuY2VfbGVuMS5jc3IuZGVyIjoiIjpNQkVEVExTX0VSUl9YNTA5X0lOVkFMSURfRVhURU5TSU9OUytNQkVEVExTX0VSUl9BU04xX09VVF9PRl9EQVRBCitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2Ok1CRURUTFNfUlNBX0MKK21iZWR0bHNfeDUwOV9jc3JfcGFyc2VfZmlsZToiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvcGFyc2VfaW5wdXQvdGVzdF9jc3JfdjNfYWxsX21hbGZvcm1lZF9hdHRyaWJ1dGVzX2V4dGVuc2lvbl9yZXF1ZXN0X3NlcXVlbmNlX2xlbjEuY3NyLmRlciI6IiI6TUJFRFRMU19FUlJfWDUwOV9JTlZBTElEX0VYVEVOU0lPTlMrTUJFRFRMU19FUlJfQVNOMV9PVVRfT0ZfREFUQQogCiBYNTA5IENTUiBBU04uMSAoYXR0cmlidXRlczogZXh0ZW5zaW9uIHJlcXVlc3QgaW52YWxpZCBsZW4gKGxlbiA8IGRhdGEpKQotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTY6TUJFRFRMU19SU0FfQwotbWJlZHRsc194NTA5X2Nzcl9wYXJzZV9maWxlOiJkYXRhX2ZpbGVzL3BhcnNlX2lucHV0L3Rlc3RfY3NyX3YzX2FsbF9tYWxmb3JtZWRfYXR0cmlidXRlc19leHRlbnNpb25fcmVxdWVzdF9zZXF1ZW5jZV9sZW4yLmNzci5kZXIiOiIiOk1CRURUTFNfRVJSX1g1MDlfSU5WQUxJRF9FWFRFTlNJT05TK01CRURUTFNfRVJSX0FTTjFfT1VUX09GX0RBVEEKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTY6TUJFRFRMU19SU0FfQworbWJlZHRsc194NTA5X2Nzcl9wYXJzZV9maWxlOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9wYXJzZV9pbnB1dC90ZXN0X2Nzcl92M19hbGxfbWFsZm9ybWVkX2F0dHJpYnV0ZXNfZXh0ZW5zaW9uX3JlcXVlc3Rfc2VxdWVuY2VfbGVuMi5jc3IuZGVyIjoiIjpNQkVEVExTX0VSUl9YNTA5X0lOVkFMSURfRVhURU5TSU9OUytNQkVEVExTX0VSUl9BU04xX09VVF9PRl9EQVRBCiAKIFg1MDkgQ1NSIEFTTi4xIChleHRlbnNpb25zOiBpbnZhbGlkIHNlcXVlbmNlIHRhZykKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2Ok1CRURUTFNfUlNBX0MKLW1iZWR0bHNfeDUwOV9jc3JfcGFyc2VfZmlsZToiZGF0YV9maWxlcy9wYXJzZV9pbnB1dC90ZXN0X2Nzcl92M19hbGxfbWFsZm9ybWVkX2V4dGVuc2lvbnNfc2VxdWVuY2VfdGFnLmNzci5kZXIiOiIiOk1CRURUTFNfRVJSX1g1MDlfSU5WQUxJRF9FWFRFTlNJT05TK01CRURUTFNfRVJSX0FTTjFfVU5FWFBFQ1RFRF9UQUcKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTY6TUJFRFRMU19SU0FfQworbWJlZHRsc194NTA5X2Nzcl9wYXJzZV9maWxlOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9wYXJzZV9pbnB1dC90ZXN0X2Nzcl92M19hbGxfbWFsZm9ybWVkX2V4dGVuc2lvbnNfc2VxdWVuY2VfdGFnLmNzci5kZXIiOiIiOk1CRURUTFNfRVJSX1g1MDlfSU5WQUxJRF9FWFRFTlNJT05TK01CRURUTFNfRVJSX0FTTjFfVU5FWFBFQ1RFRF9UQUcKIAogWDUwOSBDU1IgQVNOLjEgKGV4dGVuc2lvbnM6IGludmFsaWQgZXh0ZW5zaW9uIGlkIHRhZykKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2Ok1CRURUTFNfUlNBX0MKLW1iZWR0bHNfeDUwOV9jc3JfcGFyc2VfZmlsZToiZGF0YV9maWxlcy9wYXJzZV9pbnB1dC90ZXN0X2Nzcl92M19hbGxfbWFsZm9ybWVkX2V4dGVuc2lvbl9pZF90YWcuY3NyLmRlciI6IiI6TUJFRFRMU19FUlJfWDUwOV9JTlZBTElEX0VYVEVOU0lPTlMrTUJFRFRMU19FUlJfQVNOMV9VTkVYUEVDVEVEX1RBRworZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NjpNQkVEVExTX1JTQV9DCittYmVkdGxzX3g1MDlfY3NyX3BhcnNlX2ZpbGU6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3BhcnNlX2lucHV0L3Rlc3RfY3NyX3YzX2FsbF9tYWxmb3JtZWRfZXh0ZW5zaW9uX2lkX3RhZy5jc3IuZGVyIjoiIjpNQkVEVExTX0VSUl9YNTA5X0lOVkFMSURfRVhURU5TSU9OUytNQkVEVExTX0VSUl9BU04xX1VORVhQRUNURURfVEFHCiAKIFg1MDkgQ1NSIEFTTi4xIChleHRlbnNpb25zOiBpbnZhbGlkIGV4dGVuc2lvbiBkYXRhIHRhZykKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2Ok1CRURUTFNfUlNBX0MKLW1iZWR0bHNfeDUwOV9jc3JfcGFyc2VfZmlsZToiZGF0YV9maWxlcy9wYXJzZV9pbnB1dC90ZXN0X2Nzcl92M19hbGxfbWFsZm9ybWVkX2V4dGVuc2lvbl9kYXRhX3RhZy5jc3IuZGVyIjoiIjpNQkVEVExTX0VSUl9YNTA5X0lOVkFMSURfRVhURU5TSU9OUytNQkVEVExTX0VSUl9BU04xX1VORVhQRUNURURfVEFHCitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2Ok1CRURUTFNfUlNBX0MKK21iZWR0bHNfeDUwOV9jc3JfcGFyc2VfZmlsZToiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvcGFyc2VfaW5wdXQvdGVzdF9jc3JfdjNfYWxsX21hbGZvcm1lZF9leHRlbnNpb25fZGF0YV90YWcuY3NyLmRlciI6IiI6TUJFRFRMU19FUlJfWDUwOV9JTlZBTElEX0VYVEVOU0lPTlMrTUJFRFRMU19FUlJfQVNOMV9VTkVYUEVDVEVEX1RBRwogCiBYNTA5IENTUiBBU04uMSAoZXh0ZW5zaW9uczogaW52YWxpZCBleHRlbnNpb24gZGF0YSBsZW4gKGxlbiA+IGRhdGEpKQotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTY6TUJFRFRMU19SU0FfQwotbWJlZHRsc194NTA5X2Nzcl9wYXJzZV9maWxlOiJkYXRhX2ZpbGVzL3BhcnNlX2lucHV0L3Rlc3RfY3NyX3YzX2FsbF9tYWxmb3JtZWRfZXh0ZW5zaW9uX2RhdGFfbGVuMS5jc3IuZGVyIjoiIjpNQkVEVExTX0VSUl9YNTA5X0lOVkFMSURfRVhURU5TSU9OUytNQkVEVExTX0VSUl9BU04xX09VVF9PRl9EQVRBCitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2Ok1CRURUTFNfUlNBX0MKK21iZWR0bHNfeDUwOV9jc3JfcGFyc2VfZmlsZToiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvcGFyc2VfaW5wdXQvdGVzdF9jc3JfdjNfYWxsX21hbGZvcm1lZF9leHRlbnNpb25fZGF0YV9sZW4xLmNzci5kZXIiOiIiOk1CRURUTFNfRVJSX1g1MDlfSU5WQUxJRF9FWFRFTlNJT05TK01CRURUTFNfRVJSX0FTTjFfT1VUX09GX0RBVEEKIAogWDUwOSBDU1IgQVNOLjEgKGV4dGVuc2lvbnM6IGludmFsaWQgZXh0ZW5zaW9uIGRhdGEgbGVuIChsZW4gPCBkYXRhKSkKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2Ok1CRURUTFNfUlNBX0MKLW1iZWR0bHNfeDUwOV9jc3JfcGFyc2VfZmlsZToiZGF0YV9maWxlcy9wYXJzZV9pbnB1dC90ZXN0X2Nzcl92M19hbGxfbWFsZm9ybWVkX2V4dGVuc2lvbl9kYXRhX2xlbjIuY3NyLmRlciI6IiI6TUJFRFRMU19FUlJfWDUwOV9JTlZBTElEX0VYVEVOU0lPTlMrTUJFRFRMU19FUlJfQVNOMV9MRU5HVEhfTUlTTUFUQ0gKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTY6TUJFRFRMU19SU0FfQworbWJlZHRsc194NTA5X2Nzcl9wYXJzZV9maWxlOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9wYXJzZV9pbnB1dC90ZXN0X2Nzcl92M19hbGxfbWFsZm9ybWVkX2V4dGVuc2lvbl9kYXRhX2xlbjIuY3NyLmRlciI6IiI6TUJFRFRMU19FUlJfWDUwOV9JTlZBTElEX0VYVEVOU0lPTlMrTUJFRFRMU19FUlJfQVNOMV9MRU5HVEhfTUlTTUFUQ0gKIAogWDUwOSBDU1IgQVNOLjEgKGV4dGVuc2lvbnM6IGludmFsaWQgZXh0ZW5zaW9uIGtleSB1c2FnZSBiaXRzdHJlYW0gdGFnKQotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTY6TUJFRFRMU19SU0FfQwotbWJlZHRsc194NTA5X2Nzcl9wYXJzZV9maWxlOiJkYXRhX2ZpbGVzL3BhcnNlX2lucHV0L3Rlc3RfY3NyX3YzX2FsbF9tYWxmb3JtZWRfZXh0ZW5zaW9uX2tleV91c2FnZV9iaXRzdHJlYW1fdGFnLmNzci5kZXIiOiIiOk1CRURUTFNfRVJSX1g1MDlfSU5WQUxJRF9FWFRFTlNJT05TK01CRURUTFNfRVJSX0FTTjFfVU5FWFBFQ1RFRF9UQUcKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTY6TUJFRFRMU19SU0FfQworbWJlZHRsc194NTA5X2Nzcl9wYXJzZV9maWxlOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9wYXJzZV9pbnB1dC90ZXN0X2Nzcl92M19hbGxfbWFsZm9ybWVkX2V4dGVuc2lvbl9rZXlfdXNhZ2VfYml0c3RyZWFtX3RhZy5jc3IuZGVyIjoiIjpNQkVEVExTX0VSUl9YNTA5X0lOVkFMSURfRVhURU5TSU9OUytNQkVEVExTX0VSUl9BU04xX1VORVhQRUNURURfVEFHCiAKIFg1MDkgQ1NSIEFTTi4xIChleHRlbnNpb25zOiBpbnZhbGlkIGV4dGVuc2lvbiBzdWJqZWN0IGFsdCBuYW1lIHNlcXVlbmNlIHRhZykKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2Ok1CRURUTFNfUlNBX0MKLW1iZWR0bHNfeDUwOV9jc3JfcGFyc2VfZmlsZToiZGF0YV9maWxlcy9wYXJzZV9pbnB1dC90ZXN0X2Nzcl92M19hbGxfbWFsZm9ybWVkX2V4dGVuc2lvbl9zdWJqZWN0X2FsdF9uYW1lX3NlcXVlbmNlX3RhZy5jc3IuZGVyIjoiIjpNQkVEVExTX0VSUl9YNTA5X0lOVkFMSURfRVhURU5TSU9OUytNQkVEVExTX0VSUl9BU04xX1VORVhQRUNURURfVEFHCitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2Ok1CRURUTFNfUlNBX0MKK21iZWR0bHNfeDUwOV9jc3JfcGFyc2VfZmlsZToiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvcGFyc2VfaW5wdXQvdGVzdF9jc3JfdjNfYWxsX21hbGZvcm1lZF9leHRlbnNpb25fc3ViamVjdF9hbHRfbmFtZV9zZXF1ZW5jZV90YWcuY3NyLmRlciI6IiI6TUJFRFRMU19FUlJfWDUwOV9JTlZBTElEX0VYVEVOU0lPTlMrTUJFRFRMU19FUlJfQVNOMV9VTkVYUEVDVEVEX1RBRwogCiBYNTA5IENTUiBBU04uMSAoZXh0ZW5zaW9uczogaW52YWxpZCBleHRlbnNpb24gbnMgY2VydCBiaXRzdHJlYW0gdGFnKQotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTY6TUJFRFRMU19SU0FfQwotbWJlZHRsc194NTA5X2Nzcl9wYXJzZV9maWxlOiJkYXRhX2ZpbGVzL3BhcnNlX2lucHV0L3Rlc3RfY3NyX3YzX2FsbF9tYWxmb3JtZWRfZXh0ZW5zaW9uX25zX2NlcnRfYml0c3RyZWFtX3RhZy5jc3IuZGVyIjoiIjpNQkVEVExTX0VSUl9YNTA5X0lOVkFMSURfRVhURU5TSU9OUytNQkVEVExTX0VSUl9BU04xX1VORVhQRUNURURfVEFHCitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2Ok1CRURUTFNfUlNBX0MKK21iZWR0bHNfeDUwOV9jc3JfcGFyc2VfZmlsZToiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvcGFyc2VfaW5wdXQvdGVzdF9jc3JfdjNfYWxsX21hbGZvcm1lZF9leHRlbnNpb25fbnNfY2VydF9iaXRzdHJlYW1fdGFnLmNzci5kZXIiOiIiOk1CRURUTFNfRVJSX1g1MDlfSU5WQUxJRF9FWFRFTlNJT05TK01CRURUTFNfRVJSX0FTTjFfVU5FWFBFQ1RFRF9UQUcKIAogWDUwOSBDU1IgQVNOLjEgKGV4dGVuc2lvbnM6IGR1cGxpY2F0ZWQgZXh0ZW5zaW9uKQotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTY6TUJFRFRMU19SU0FfQwotbWJlZHRsc194NTA5X2Nzcl9wYXJzZV9maWxlOiJkYXRhX2ZpbGVzL3BhcnNlX2lucHV0L3Rlc3RfY3NyX3YzX2FsbF9tYWxmb3JtZWRfZHVwbGljYXRlZF9leHRlbnNpb24uY3NyLmRlciI6IiI6TUJFRFRMU19FUlJfWDUwOV9JTlZBTElEX0VYVEVOU0lPTlMrTUJFRFRMU19FUlJfQVNOMV9JTlZBTElEX0RBVEEKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTY6TUJFRFRMU19SU0FfQworbWJlZHRsc194NTA5X2Nzcl9wYXJzZV9maWxlOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9wYXJzZV9pbnB1dC90ZXN0X2Nzcl92M19hbGxfbWFsZm9ybWVkX2R1cGxpY2F0ZWRfZXh0ZW5zaW9uLmNzci5kZXIiOiIiOk1CRURUTFNfRVJSX1g1MDlfSU5WQUxJRF9FWFRFTlNJT05TK01CRURUTFNfRVJSX0FTTjFfSU5WQUxJRF9EQVRBCiAKIFg1MDkgQ1NSIEFTTi4xIChleHRlbnNpb25zOiBpbnZhbGlkIGV4dGVuc2lvbiB0eXBlIGRhdGEpCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NjpNQkVEVExTX1JTQV9DCi1tYmVkdGxzX3g1MDlfY3NyX3BhcnNlX2ZpbGU6ImRhdGFfZmlsZXMvcGFyc2VfaW5wdXQvdGVzdF9jc3JfdjNfYWxsX21hbGZvcm1lZF9leHRlbnNpb25fdHlwZV9vaWQuY3NyLmRlciI6IkNTUiB2ZXJzaW9uICAgXDogMVxuc3ViamVjdCBuYW1lICBcOiBDTj1ldGNkXG5zaWduZWQgdXNpbmcgIFw6IFJTQSB3aXRoIFNIQS0yNTZcblJTQSBrZXkgc2l6ZSAgXDogMTAyNCBiaXRzXG5cbmNlcnQuIHR5cGUgICAgICAgIFw6IFNTTCBDbGllbnRcbmtleSB1c2FnZSAgICAgICAgIFw6IENSTCBTaWduXG4iOjAKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTY6TUJFRFRMU19SU0FfQworbWJlZHRsc194NTA5X2Nzcl9wYXJzZV9maWxlOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9wYXJzZV9pbnB1dC90ZXN0X2Nzcl92M19hbGxfbWFsZm9ybWVkX2V4dGVuc2lvbl90eXBlX29pZC5jc3IuZGVyIjoiQ1NSIHZlcnNpb24gICBcOiAxXG5zdWJqZWN0IG5hbWUgIFw6IENOPWV0Y2RcbnNpZ25lZCB1c2luZyAgXDogUlNBIHdpdGggU0hBLTI1NlxuUlNBIGtleSBzaXplICBcOiAxMDI0IGJpdHNcblxuY2VydC4gdHlwZSAgICAgICAgXDogU1NMIENsaWVudFxua2V5IHVzYWdlICAgICAgICAgXDogQ1JMIFNpZ25cbiI6MAogCiBYNTA5IEZpbGUgcGFyc2UgKG5vIGlzc3VlcykKLWRlcGVuZHNfb246TUJFRFRMU19QS19DQU5fRUNEU0FfU09NRTpNQkVEVExTX0VDUF9IQVZFX1NFQ1AyNTZSMTpNQkVEVExTX01EX0NBTl9TSEEyNTY6TUJFRFRMU19SU0FfQwotbWJlZHRsc194NTA5X2NydF9wYXJzZV9maWxlOiJkYXRhX2ZpbGVzL3BhcnNlX2lucHV0L3NlcnZlcjdfaW50LWNhLmNydCI6MDoyCitkZXBlbmRzX29uOk1CRURUTFNfUEtfQ0FOX0VDRFNBX1NPTUU6TUJFRFRMU19FQ1BfSEFWRV9TRUNQMjU2UjE6UFNBX1dBTlRfQUxHX1NIQV8yNTY6TUJFRFRMU19SU0FfQworbWJlZHRsc194NTA5X2NydF9wYXJzZV9maWxlOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9wYXJzZV9pbnB1dC9zZXJ2ZXI3X2ludC1jYS5jcnQiOjA6MgogCiBYNTA5IEZpbGUgcGFyc2UgKGV4dHJhIHNwYWNlIGluIG9uZSBjZXJ0aWZpY2F0ZSkKLWRlcGVuZHNfb246TUJFRFRMU19QS19DQU5fRUNEU0FfU09NRTpNQkVEVExTX01EX0NBTl9TSEEyNTY6TUJFRFRMU19SU0FfQwotbWJlZHRsc194NTA5X2NydF9wYXJzZV9maWxlOiJkYXRhX2ZpbGVzL3BhcnNlX2lucHV0L3NlcnZlcjdfcGVtX3NwYWNlLmNydCI6MToxCitkZXBlbmRzX29uOk1CRURUTFNfUEtfQ0FOX0VDRFNBX1NPTUU6UFNBX1dBTlRfQUxHX1NIQV8yNTY6TUJFRFRMU19SU0FfQworbWJlZHRsc194NTA5X2NydF9wYXJzZV9maWxlOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9wYXJzZV9pbnB1dC9zZXJ2ZXI3X3BlbV9zcGFjZS5jcnQiOjE6MQogCiBYNTA5IEZpbGUgcGFyc2UgKGFsbCBjZXJ0aWZpY2F0ZXMgZmFpbCkKIGRlcGVuZHNfb246TUJFRFRMU19QS19DQU5fRUNEU0FfU09NRTpNQkVEVExTX1JTQV9DCi1tYmVkdGxzX3g1MDlfY3J0X3BhcnNlX2ZpbGU6ImRhdGFfZmlsZXMvcGFyc2VfaW5wdXQvc2VydmVyN19hbGxfc3BhY2UuY3J0IjpNQkVEVExTX0VSUl9QRU1fSU5WQUxJRF9EQVRBICsgTUJFRFRMU19FUlJfQkFTRTY0X0lOVkFMSURfQ0hBUkFDVEVSOjAKK21iZWR0bHNfeDUwOV9jcnRfcGFyc2VfZmlsZToiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvcGFyc2VfaW5wdXQvc2VydmVyN19hbGxfc3BhY2UuY3J0IjpNQkVEVExTX0VSUl9QRU1fSU5WQUxJRF9EQVRBICsgTUJFRFRMU19FUlJfQkFTRTY0X0lOVkFMSURfQ0hBUkFDVEVSOjAKIAogWDUwOSBGaWxlIHBhcnNlICh0cmFpbGluZyBzcGFjZXMsIE9LKQotZGVwZW5kc19vbjpNQkVEVExTX1BLX0NBTl9FQ0RTQV9TT01FOk1CRURUTFNfRUNQX0hBVkVfU0VDUDI1NlIxOk1CRURUTFNfTURfQ0FOX1NIQTI1NjpNQkVEVExTX1JTQV9DCi1tYmVkdGxzX3g1MDlfY3J0X3BhcnNlX2ZpbGU6ImRhdGFfZmlsZXMvcGFyc2VfaW5wdXQvc2VydmVyN190cmFpbGluZ19zcGFjZS5jcnQiOjA6MgorZGVwZW5kc19vbjpNQkVEVExTX1BLX0NBTl9FQ0RTQV9TT01FOk1CRURUTFNfRUNQX0hBVkVfU0VDUDI1NlIxOlBTQV9XQU5UX0FMR19TSEFfMjU2Ok1CRURUTFNfUlNBX0MKK21iZWR0bHNfeDUwOV9jcnRfcGFyc2VfZmlsZToiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvcGFyc2VfaW5wdXQvc2VydmVyN190cmFpbGluZ19zcGFjZS5jcnQiOjA6MgogCiBYNTA5IEZpbGUgcGFyc2UgKEFsZ29yaXRobSBQYXJhbXMgVGFnIG1pc21hdGNoKQotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTY6TUJFRFRMU19SU0FfQwotbWJlZHRsc194NTA5X2NydF9wYXJzZV9maWxlOiJkYXRhX2ZpbGVzL3BhcnNlX2lucHV0L2NsaS1yc2Etc2hhMjU2LWJhZGFsZy5jcnQuZGVyIjpNQkVEVExTX0VSUl9YNTA5X1NJR19NSVNNQVRDSDowCitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2Ok1CRURUTFNfUlNBX0MKK21iZWR0bHNfeDUwOV9jcnRfcGFyc2VfZmlsZToiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvcGFyc2VfaW5wdXQvY2xpLXJzYS1zaGEyNTYtYmFkYWxnLmNydC5kZXIiOk1CRURUTFNfRVJSX1g1MDlfU0lHX01JU01BVENIOjAKIAogWDUwOSBGaWxlIHBhcnNlIChkb2VzIG5vdCBjb25mb3JtIHRvIFJGQyA1NDgwIC8gUkZDIDU3NTggLSBBbGdvcml0aG1JZGVudGlmaWVyJ3MgcGFyYW1ldGVycyBmaWVsZCBpcyBwcmVzZW50LCBtYmVkVExTIGdlbmVyYXRlZCBiZWZvcmUgYnVnZml4LCBPSykKLWRlcGVuZHNfb246TUJFRFRMU19QS19DQU5fRUNEU0FfU09NRTpNQkVEVExTX0VDUF9IQVZFX1NFQ1AyNTZSMTpNQkVEVExTX01EX0NBTl9TSEEyNTYKLXg1MDlwYXJzZV9jcnRfZmlsZToiZGF0YV9maWxlcy9wYXJzZV9pbnB1dC9zZXJ2ZXI1LW5vbi1jb21wbGlhbnQuY3J0IjowCitkZXBlbmRzX29uOk1CRURUTFNfUEtfQ0FOX0VDRFNBX1NPTUU6TUJFRFRMU19FQ1BfSEFWRV9TRUNQMjU2UjE6UFNBX1dBTlRfQUxHX1NIQV8yNTYKK3g1MDlwYXJzZV9jcnRfZmlsZToiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvcGFyc2VfaW5wdXQvc2VydmVyNS1ub24tY29tcGxpYW50LmNydCI6MAogCiBYNTA5IEZpbGUgcGFyc2UgKGNvbmZvcm1zIHRvIFJGQyA1NDgwIC8gUkZDIDU3NTggLSBBbGdvcml0aG1JZGVudGlmaWVyJ3MgcGFyYW1ldGVycyBmaWVsZCBtdXN0IGJlIGFic2VudCBmb3IgRUNEU0EpCi1kZXBlbmRzX29uOk1CRURUTFNfUEtfQ0FOX0VDRFNBX1NPTUU6TUJFRFRMU19FQ1BfSEFWRV9TRUNQMjU2UjE6TUJFRFRMU19NRF9DQU5fU0hBMjU2Ci14NTA5cGFyc2VfY3J0X2ZpbGU6ImRhdGFfZmlsZXMvcGFyc2VfaW5wdXQvc2VydmVyNS5jcnQiOjAKK2RlcGVuZHNfb246TUJFRFRMU19QS19DQU5fRUNEU0FfU09NRTpNQkVEVExTX0VDUF9IQVZFX1NFQ1AyNTZSMTpQU0FfV0FOVF9BTEdfU0hBXzI1NgoreDUwOXBhcnNlX2NydF9maWxlOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9wYXJzZV9pbnB1dC9zZXJ2ZXI1LmNydCI6MAogCiBYNTA5IEZpbGUgcGFyc2UgJiByZWFkIHRoZSBjYV9pc3RydWUgZmllbGQgKE5vdCBTZXQpCiBkZXBlbmRzX29uOk1CRURUTFNfUEVNX1BBUlNFX0M6TUJFRFRMU19SU0FfQzpNQkVEVExTX0hBVkVfVElNRV9EQVRFOk1CRURUTFNfTURfQ0FOX1NIQTEKLW1iZWR0bHNfeDUwOV9nZXRfY2FfaXN0cnVlOiJkYXRhX2ZpbGVzL3BhcnNlX2lucHV0L3NlcnZlcjEuY3J0IjowCittYmVkdGxzX3g1MDlfZ2V0X2NhX2lzdHJ1ZToiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvcGFyc2VfaW5wdXQvc2VydmVyMS5jcnQiOjAKIAogWDUwOSBGaWxlIHBhcnNlICYgcmVhZCB0aGUgY2FfaXN0cnVlIGZpZWxkIChTZXQpCiBkZXBlbmRzX29uOk1CRURUTFNfUEVNX1BBUlNFX0M6TUJFRFRMU19SU0FfQzpNQkVEVExTX0hBVkVfVElNRV9EQVRFOk1CRURUTFNfTURfQ0FOX1NIQTEKLW1iZWR0bHNfeDUwOV9nZXRfY2FfaXN0cnVlOiJkYXRhX2ZpbGVzL3Rlc3QtY2EuY3J0IjoxCittYmVkdGxzX3g1MDlfZ2V0X2NhX2lzdHJ1ZToiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvdGVzdC1jYS5jcnQiOjEKIAogWDUwOSBGaWxlIHBhcnNlICYgcmVhZCB0aGUgY2FfaXN0cnVlIGZpZWxkIChMZWdhY3kgQ2VydGlmaWNhdGUpCi1kZXBlbmRzX29uOk1CRURUTFNfUEVNX1BBUlNFX0M6TUJFRFRMU19SU0FfQzpNQkVEVExTX0hBVkVfVElNRV9EQVRFOk1CRURUTFNfTURfQ0FOX1NIQTE6TUJFRFRMU19NRF9DQU5fU0hBMjU2Ci1tYmVkdGxzX3g1MDlfZ2V0X2NhX2lzdHJ1ZToiZGF0YV9maWxlcy9zZXJ2ZXIxLXYxLmNydCI6TUJFRFRMU19FUlJfWDUwOV9JTlZBTElEX0VYVEVOU0lPTlMKK2RlcGVuZHNfb246TUJFRFRMU19QRU1fUEFSU0VfQzpNQkVEVExTX1JTQV9DOk1CRURUTFNfSEFWRV9USU1FX0RBVEU6TUJFRFRMU19NRF9DQU5fU0hBMTpQU0FfV0FOVF9BTEdfU0hBXzI1NgorbWJlZHRsc194NTA5X2dldF9jYV9pc3RydWU6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3NlcnZlcjEtdjEuY3J0IjpNQkVEVExTX0VSUl9YNTA5X0lOVkFMSURfRVhURU5TSU9OUwogCiBYNTA5IEdldCB0aW1lIChVVEMgbm8gaXNzdWVzKQogZGVwZW5kc19vbjpNQkVEVExTX1g1MDlfVVNFX0MKQEAgLTMyODAsOTIgKzMyODAsOTIgQEAKIHg1MDlfZ2V0X3RpbWU6TUJFRFRMU19BU04xX0dFTkVSQUxJWkVEX1RJTUU6IjE5OTEwMjI5MDAwMDAwWiI6TUJFRFRMU19FUlJfWDUwOV9JTlZBTElEX0RBVEU6MDowOjA6MDowOjAKIAogWDUwOSBDUlQgdmVyaWZ5IHJlc3RhcnQ6IHRydXN0ZWQgRUUsIG1heF9vcHM9MCAoZGlzYWJsZWQpCi1kZXBlbmRzX29uOk1CRURUTFNfUEVNX1BBUlNFX0M6TUJFRFRMU19NRF9DQU5fU0hBMjU2Ok1CRURUTFNfRUNQX0hBVkVfU0VDUDI1NlIxCi14NTA5X3ZlcmlmeV9yZXN0YXJ0OiJkYXRhX2ZpbGVzL3NlcnZlcjUtc2VsZnNpZ25lZC5jcnQiOiJkYXRhX2ZpbGVzL3NlcnZlcjUtc2VsZnNpZ25lZC5jcnQiOjA6MDowOjA6MAorZGVwZW5kc19vbjpNQkVEVExTX1BFTV9QQVJTRV9DOlBTQV9XQU5UX0FMR19TSEFfMjU2Ok1CRURUTFNfRUNQX0hBVkVfU0VDUDI1NlIxCit4NTA5X3ZlcmlmeV9yZXN0YXJ0OiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9zZXJ2ZXI1LXNlbGZzaWduZWQuY3J0IjoiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvc2VydmVyNS1zZWxmc2lnbmVkLmNydCI6MDowOjA6MDowCiAKIFg1MDkgQ1JUIHZlcmlmeSByZXN0YXJ0OiB0cnVzdGVkIEVFLCBtYXhfb3BzPTEKLWRlcGVuZHNfb246TUJFRFRMU19QRU1fUEFSU0VfQzpNQkVEVExTX01EX0NBTl9TSEEyNTY6TUJFRFRMU19FQ1BfSEFWRV9TRUNQMjU2UjEKLXg1MDlfdmVyaWZ5X3Jlc3RhcnQ6ImRhdGFfZmlsZXMvc2VydmVyNS1zZWxmc2lnbmVkLmNydCI6ImRhdGFfZmlsZXMvc2VydmVyNS1zZWxmc2lnbmVkLmNydCI6MDowOjE6MDowCitkZXBlbmRzX29uOk1CRURUTFNfUEVNX1BBUlNFX0M6UFNBX1dBTlRfQUxHX1NIQV8yNTY6TUJFRFRMU19FQ1BfSEFWRV9TRUNQMjU2UjEKK3g1MDlfdmVyaWZ5X3Jlc3RhcnQ6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3NlcnZlcjUtc2VsZnNpZ25lZC5jcnQiOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9zZXJ2ZXI1LXNlbGZzaWduZWQuY3J0IjowOjA6MTowOjAKIAogWDUwOSBDUlQgdmVyaWZ5IHJlc3RhcnQ6IG5vIGludGVybWVkaWF0ZSwgbWF4X29wcz0wIChkaXNhYmxlZCkKLWRlcGVuZHNfb246TUJFRFRMU19QRU1fUEFSU0VfQzpNQkVEVExTX01EX0NBTl9TSEEyNTY6TUJFRFRMU19FQ1BfSEFWRV9TRUNQMjU2UjE6TUJFRFRMU19FQ1BfSEFWRV9TRUNQMzg0UjEKLXg1MDlfdmVyaWZ5X3Jlc3RhcnQ6ImRhdGFfZmlsZXMvc2VydmVyNS5jcnQiOiJkYXRhX2ZpbGVzL3Rlc3QtY2EyLmNydCI6MDowOjA6MDowCitkZXBlbmRzX29uOk1CRURUTFNfUEVNX1BBUlNFX0M6UFNBX1dBTlRfQUxHX1NIQV8yNTY6TUJFRFRMU19FQ1BfSEFWRV9TRUNQMjU2UjE6TUJFRFRMU19FQ1BfSEFWRV9TRUNQMzg0UjEKK3g1MDlfdmVyaWZ5X3Jlc3RhcnQ6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3NlcnZlcjUuY3J0IjoiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvdGVzdC1jYTIuY3J0IjowOjA6MDowOjAKIAogWDUwOSBDUlQgdmVyaWZ5IHJlc3RhcnQ6IG5vIGludGVybWVkaWF0ZSwgbWF4X29wcz0xCi1kZXBlbmRzX29uOk1CRURUTFNfUEVNX1BBUlNFX0M6TUJFRFRMU19NRF9DQU5fU0hBMjU2Ok1CRURUTFNfRUNQX0hBVkVfU0VDUDI1NlIxOk1CRURUTFNfRUNQX0hBVkVfU0VDUDM4NFIxCi14NTA5X3ZlcmlmeV9yZXN0YXJ0OiJkYXRhX2ZpbGVzL3NlcnZlcjUuY3J0IjoiZGF0YV9maWxlcy90ZXN0LWNhMi5jcnQiOjA6MDoxOjEwMDoxMDAwMAorZGVwZW5kc19vbjpNQkVEVExTX1BFTV9QQVJTRV9DOlBTQV9XQU5UX0FMR19TSEFfMjU2Ok1CRURUTFNfRUNQX0hBVkVfU0VDUDI1NlIxOk1CRURUTFNfRUNQX0hBVkVfU0VDUDM4NFIxCit4NTA5X3ZlcmlmeV9yZXN0YXJ0OiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9zZXJ2ZXI1LmNydCI6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3Rlc3QtY2EyLmNydCI6MDowOjE6MTAwOjEwMDAwCiAKIFg1MDkgQ1JUIHZlcmlmeSByZXN0YXJ0OiBubyBpbnRlcm1lZGlhdGUsIG1heF9vcHM9NDAwMDAKLWRlcGVuZHNfb246TUJFRFRMU19QRU1fUEFSU0VfQzpNQkVEVExTX01EX0NBTl9TSEEyNTY6TUJFRFRMU19FQ1BfSEFWRV9TRUNQMjU2UjE6TUJFRFRMU19FQ1BfSEFWRV9TRUNQMzg0UjEKLXg1MDlfdmVyaWZ5X3Jlc3RhcnQ6ImRhdGFfZmlsZXMvc2VydmVyNS5jcnQiOiJkYXRhX2ZpbGVzL3Rlc3QtY2EyLmNydCI6MDowOjQwMDAwOjA6MAorZGVwZW5kc19vbjpNQkVEVExTX1BFTV9QQVJTRV9DOlBTQV9XQU5UX0FMR19TSEFfMjU2Ok1CRURUTFNfRUNQX0hBVkVfU0VDUDI1NlIxOk1CRURUTFNfRUNQX0hBVkVfU0VDUDM4NFIxCit4NTA5X3ZlcmlmeV9yZXN0YXJ0OiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9zZXJ2ZXI1LmNydCI6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3Rlc3QtY2EyLmNydCI6MDowOjQwMDAwOjA6MAogCiBYNTA5IENSVCB2ZXJpZnkgcmVzdGFydDogbm8gaW50ZXJtZWRpYXRlLCBtYXhfb3BzPTUwMAotZGVwZW5kc19vbjpNQkVEVExTX1BFTV9QQVJTRV9DOk1CRURUTFNfTURfQ0FOX1NIQTI1NjpNQkVEVExTX0VDUF9IQVZFX1NFQ1AyNTZSMTpNQkVEVExTX0VDUF9IQVZFX1NFQ1AzODRSMQoteDUwOV92ZXJpZnlfcmVzdGFydDoiZGF0YV9maWxlcy9zZXJ2ZXI1LmNydCI6ImRhdGFfZmlsZXMvdGVzdC1jYTIuY3J0IjowOjA6NTAwOjIwOjgwCitkZXBlbmRzX29uOk1CRURUTFNfUEVNX1BBUlNFX0M6UFNBX1dBTlRfQUxHX1NIQV8yNTY6TUJFRFRMU19FQ1BfSEFWRV9TRUNQMjU2UjE6TUJFRFRMU19FQ1BfSEFWRV9TRUNQMzg0UjEKK3g1MDlfdmVyaWZ5X3Jlc3RhcnQ6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3NlcnZlcjUuY3J0IjoiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvdGVzdC1jYTIuY3J0IjowOjA6NTAwOjIwOjgwCiAKIFg1MDkgQ1JUIHZlcmlmeSByZXN0YXJ0OiBubyBpbnRlcm1lZGlhdGUsIGJhZHNpZ24sIG1heF9vcHM9MCAoZGlzYWJsZWQpCi1kZXBlbmRzX29uOk1CRURUTFNfUEVNX1BBUlNFX0M6TUJFRFRMU19NRF9DQU5fU0hBMjU2Ok1CRURUTFNfRUNQX0hBVkVfU0VDUDI1NlIxOk1CRURUTFNfRUNQX0hBVkVfU0VDUDM4NFIxCi14NTA5X3ZlcmlmeV9yZXN0YXJ0OiJkYXRhX2ZpbGVzL3NlcnZlcjUtYmFkc2lnbi5jcnQiOiJkYXRhX2ZpbGVzL3Rlc3QtY2EyLmNydCI6TUJFRFRMU19FUlJfWDUwOV9DRVJUX1ZFUklGWV9GQUlMRUQ6TUJFRFRMU19YNTA5X0JBRENFUlRfTk9UX1RSVVNURUQ6MDowOjAKK2RlcGVuZHNfb246TUJFRFRMU19QRU1fUEFSU0VfQzpQU0FfV0FOVF9BTEdfU0hBXzI1NjpNQkVEVExTX0VDUF9IQVZFX1NFQ1AyNTZSMTpNQkVEVExTX0VDUF9IQVZFX1NFQ1AzODRSMQoreDUwOV92ZXJpZnlfcmVzdGFydDoiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvc2VydmVyNS1iYWRzaWduLmNydCI6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3Rlc3QtY2EyLmNydCI6TUJFRFRMU19FUlJfWDUwOV9DRVJUX1ZFUklGWV9GQUlMRUQ6TUJFRFRMU19YNTA5X0JBRENFUlRfTk9UX1RSVVNURUQ6MDowOjAKIAogWDUwOSBDUlQgdmVyaWZ5IHJlc3RhcnQ6IG5vIGludGVybWVkaWF0ZSwgYmFkc2lnbiwgbWF4X29wcz0xCi1kZXBlbmRzX29uOk1CRURUTFNfUEVNX1BBUlNFX0M6TUJFRFRMU19NRF9DQU5fU0hBMjU2Ok1CRURUTFNfRUNQX0hBVkVfU0VDUDI1NlIxOk1CRURUTFNfRUNQX0hBVkVfU0VDUDM4NFIxCi14NTA5X3ZlcmlmeV9yZXN0YXJ0OiJkYXRhX2ZpbGVzL3NlcnZlcjUtYmFkc2lnbi5jcnQiOiJkYXRhX2ZpbGVzL3Rlc3QtY2EyLmNydCI6TUJFRFRMU19FUlJfWDUwOV9DRVJUX1ZFUklGWV9GQUlMRUQ6TUJFRFRMU19YNTA5X0JBRENFUlRfTk9UX1RSVVNURUQ6MToxMDA6MTAwMDAKK2RlcGVuZHNfb246TUJFRFRMU19QRU1fUEFSU0VfQzpQU0FfV0FOVF9BTEdfU0hBXzI1NjpNQkVEVExTX0VDUF9IQVZFX1NFQ1AyNTZSMTpNQkVEVExTX0VDUF9IQVZFX1NFQ1AzODRSMQoreDUwOV92ZXJpZnlfcmVzdGFydDoiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvc2VydmVyNS1iYWRzaWduLmNydCI6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3Rlc3QtY2EyLmNydCI6TUJFRFRMU19FUlJfWDUwOV9DRVJUX1ZFUklGWV9GQUlMRUQ6TUJFRFRMU19YNTA5X0JBRENFUlRfTk9UX1RSVVNURUQ6MToxMDA6MTAwMDAKIAogWDUwOSBDUlQgdmVyaWZ5IHJlc3RhcnQ6IG5vIGludGVybWVkaWF0ZSwgYmFkc2lnbiwgbWF4X29wcz00MDAwMAotZGVwZW5kc19vbjpNQkVEVExTX1BFTV9QQVJTRV9DOk1CRURUTFNfTURfQ0FOX1NIQTI1NjpNQkVEVExTX0VDUF9IQVZFX1NFQ1AyNTZSMTpNQkVEVExTX0VDUF9IQVZFX1NFQ1AzODRSMQoteDUwOV92ZXJpZnlfcmVzdGFydDoiZGF0YV9maWxlcy9zZXJ2ZXI1LWJhZHNpZ24uY3J0IjoiZGF0YV9maWxlcy90ZXN0LWNhMi5jcnQiOk1CRURUTFNfRVJSX1g1MDlfQ0VSVF9WRVJJRllfRkFJTEVEOk1CRURUTFNfWDUwOV9CQURDRVJUX05PVF9UUlVTVEVEOjQwMDAwOjA6MAorZGVwZW5kc19vbjpNQkVEVExTX1BFTV9QQVJTRV9DOlBTQV9XQU5UX0FMR19TSEFfMjU2Ok1CRURUTFNfRUNQX0hBVkVfU0VDUDI1NlIxOk1CRURUTFNfRUNQX0hBVkVfU0VDUDM4NFIxCit4NTA5X3ZlcmlmeV9yZXN0YXJ0OiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9zZXJ2ZXI1LWJhZHNpZ24uY3J0IjoiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvdGVzdC1jYTIuY3J0IjpNQkVEVExTX0VSUl9YNTA5X0NFUlRfVkVSSUZZX0ZBSUxFRDpNQkVEVExTX1g1MDlfQkFEQ0VSVF9OT1RfVFJVU1RFRDo0MDAwMDowOjAKIAogWDUwOSBDUlQgdmVyaWZ5IHJlc3RhcnQ6IG5vIGludGVybWVkaWF0ZSwgYmFkc2lnbiwgbWF4X29wcz01MDAKLWRlcGVuZHNfb246TUJFRFRMU19QRU1fUEFSU0VfQzpNQkVEVExTX01EX0NBTl9TSEEyNTY6TUJFRFRMU19FQ1BfSEFWRV9TRUNQMjU2UjE6TUJFRFRMU19FQ1BfSEFWRV9TRUNQMzg0UjEKLXg1MDlfdmVyaWZ5X3Jlc3RhcnQ6ImRhdGFfZmlsZXMvc2VydmVyNS1iYWRzaWduLmNydCI6ImRhdGFfZmlsZXMvdGVzdC1jYTIuY3J0IjpNQkVEVExTX0VSUl9YNTA5X0NFUlRfVkVSSUZZX0ZBSUxFRDpNQkVEVExTX1g1MDlfQkFEQ0VSVF9OT1RfVFJVU1RFRDo1MDA6MjA6ODAKK2RlcGVuZHNfb246TUJFRFRMU19QRU1fUEFSU0VfQzpQU0FfV0FOVF9BTEdfU0hBXzI1NjpNQkVEVExTX0VDUF9IQVZFX1NFQ1AyNTZSMTpNQkVEVExTX0VDUF9IQVZFX1NFQ1AzODRSMQoreDUwOV92ZXJpZnlfcmVzdGFydDoiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvc2VydmVyNS1iYWRzaWduLmNydCI6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3Rlc3QtY2EyLmNydCI6TUJFRFRMU19FUlJfWDUwOV9DRVJUX1ZFUklGWV9GQUlMRUQ6TUJFRFRMU19YNTA5X0JBRENFUlRfTk9UX1RSVVNURUQ6NTAwOjIwOjgwCiAKIFg1MDkgQ1JUIHZlcmlmeSByZXN0YXJ0OiBvbmUgaW50LCBtYXhfb3BzPTAgKGRpc2FibGVkKQotZGVwZW5kc19vbjpNQkVEVExTX1BFTV9QQVJTRV9DOk1CRURUTFNfTURfQ0FOX1NIQTI1NjpNQkVEVExTX0VDUF9IQVZFX1NFQ1AyNTZSMTpNQkVEVExTX0VDUF9IQVZFX1NFQ1AzODRSMTpNQkVEVExTX1JTQV9DCi14NTA5X3ZlcmlmeV9yZXN0YXJ0OiJkYXRhX2ZpbGVzL3NlcnZlcjEwX2ludDNfaW50LWNhMi5jcnQiOiJkYXRhX2ZpbGVzL3Rlc3QtaW50LWNhMi5jcnQiOjA6MDowOjA6MAorZGVwZW5kc19vbjpNQkVEVExTX1BFTV9QQVJTRV9DOlBTQV9XQU5UX0FMR19TSEFfMjU2Ok1CRURUTFNfRUNQX0hBVkVfU0VDUDI1NlIxOk1CRURUTFNfRUNQX0hBVkVfU0VDUDM4NFIxOk1CRURUTFNfUlNBX0MKK3g1MDlfdmVyaWZ5X3Jlc3RhcnQ6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3NlcnZlcjEwX2ludDNfaW50LWNhMi5jcnQiOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy90ZXN0LWludC1jYTIuY3J0IjowOjA6MDowOjAKIAogWDUwOSBDUlQgdmVyaWZ5IHJlc3RhcnQ6IG9uZSBpbnQsIG1heF9vcHM9MQotZGVwZW5kc19vbjpNQkVEVExTX1BFTV9QQVJTRV9DOk1CRURUTFNfTURfQ0FOX1NIQTI1NjpNQkVEVExTX0VDUF9IQVZFX1NFQ1AyNTZSMTpNQkVEVExTX0VDUF9IQVZFX1NFQ1AzODRSMTpNQkVEVExTX1JTQV9DCi14NTA5X3ZlcmlmeV9yZXN0YXJ0OiJkYXRhX2ZpbGVzL3NlcnZlcjEwX2ludDNfaW50LWNhMi5jcnQiOiJkYXRhX2ZpbGVzL3Rlc3QtaW50LWNhMi5jcnQiOjA6MDoxOjEwMDoxMDAwMAorZGVwZW5kc19vbjpNQkVEVExTX1BFTV9QQVJTRV9DOlBTQV9XQU5UX0FMR19TSEFfMjU2Ok1CRURUTFNfRUNQX0hBVkVfU0VDUDI1NlIxOk1CRURUTFNfRUNQX0hBVkVfU0VDUDM4NFIxOk1CRURUTFNfUlNBX0MKK3g1MDlfdmVyaWZ5X3Jlc3RhcnQ6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3NlcnZlcjEwX2ludDNfaW50LWNhMi5jcnQiOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy90ZXN0LWludC1jYTIuY3J0IjowOjA6MToxMDA6MTAwMDAKIAogWDUwOSBDUlQgdmVyaWZ5IHJlc3RhcnQ6IG9uZSBpbnQsIG1heF9vcHM9MzAwMDAKLWRlcGVuZHNfb246TUJFRFRMU19QRU1fUEFSU0VfQzpNQkVEVExTX01EX0NBTl9TSEEyNTY6TUJFRFRMU19FQ1BfSEFWRV9TRUNQMjU2UjE6TUJFRFRMU19FQ1BfSEFWRV9TRUNQMzg0UjE6TUJFRFRMU19SU0FfQwoteDUwOV92ZXJpZnlfcmVzdGFydDoiZGF0YV9maWxlcy9zZXJ2ZXIxMF9pbnQzX2ludC1jYTIuY3J0IjoiZGF0YV9maWxlcy90ZXN0LWludC1jYTIuY3J0IjowOjA6MzAwMDA6MDowCitkZXBlbmRzX29uOk1CRURUTFNfUEVNX1BBUlNFX0M6UFNBX1dBTlRfQUxHX1NIQV8yNTY6TUJFRFRMU19FQ1BfSEFWRV9TRUNQMjU2UjE6TUJFRFRMU19FQ1BfSEFWRV9TRUNQMzg0UjE6TUJFRFRMU19SU0FfQworeDUwOV92ZXJpZnlfcmVzdGFydDoiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvc2VydmVyMTBfaW50M19pbnQtY2EyLmNydCI6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3Rlc3QtaW50LWNhMi5jcnQiOjA6MDozMDAwMDowOjAKIAogWDUwOSBDUlQgdmVyaWZ5IHJlc3RhcnQ6IG9uZSBpbnQsIG1heF9vcHM9NTAwCi1kZXBlbmRzX29uOk1CRURUTFNfUEVNX1BBUlNFX0M6TUJFRFRMU19NRF9DQU5fU0hBMjU2Ok1CRURUTFNfRUNQX0hBVkVfU0VDUDI1NlIxOk1CRURUTFNfRUNQX0hBVkVfU0VDUDM4NFIxOk1CRURUTFNfUlNBX0MKLXg1MDlfdmVyaWZ5X3Jlc3RhcnQ6ImRhdGFfZmlsZXMvc2VydmVyMTBfaW50M19pbnQtY2EyLmNydCI6ImRhdGFfZmlsZXMvdGVzdC1pbnQtY2EyLmNydCI6MDowOjUwMDoyNToxMDAKK2RlcGVuZHNfb246TUJFRFRMU19QRU1fUEFSU0VfQzpQU0FfV0FOVF9BTEdfU0hBXzI1NjpNQkVEVExTX0VDUF9IQVZFX1NFQ1AyNTZSMTpNQkVEVExTX0VDUF9IQVZFX1NFQ1AzODRSMTpNQkVEVExTX1JTQV9DCit4NTA5X3ZlcmlmeV9yZXN0YXJ0OiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9zZXJ2ZXIxMF9pbnQzX2ludC1jYTIuY3J0IjoiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvdGVzdC1pbnQtY2EyLmNydCI6MDowOjUwMDoyNToxMDAKIAogWDUwOSBDUlQgdmVyaWZ5IHJlc3RhcnQ6IG9uZSBpbnQsIEVFIGJhZHNpZ24sIG1heF9vcHM9MCAoZGlzYWJsZWQpCi1kZXBlbmRzX29uOk1CRURUTFNfUEVNX1BBUlNFX0M6TUJFRFRMU19NRF9DQU5fU0hBMjU2Ok1CRURUTFNfRUNQX0hBVkVfU0VDUDI1NlIxOk1CRURUTFNfRUNQX0hBVkVfU0VDUDM4NFIxOk1CRURUTFNfUlNBX0MKLXg1MDlfdmVyaWZ5X3Jlc3RhcnQ6ImRhdGFfZmlsZXMvc2VydmVyMTAtYnNfaW50My5wZW0iOiJkYXRhX2ZpbGVzL3Rlc3QtaW50LWNhMi5jcnQiOk1CRURUTFNfRVJSX1g1MDlfQ0VSVF9WRVJJRllfRkFJTEVEOk1CRURUTFNfWDUwOV9CQURDRVJUX05PVF9UUlVTVEVEOjA6MDowCitkZXBlbmRzX29uOk1CRURUTFNfUEVNX1BBUlNFX0M6UFNBX1dBTlRfQUxHX1NIQV8yNTY6TUJFRFRMU19FQ1BfSEFWRV9TRUNQMjU2UjE6TUJFRFRMU19FQ1BfSEFWRV9TRUNQMzg0UjE6TUJFRFRMU19SU0FfQworeDUwOV92ZXJpZnlfcmVzdGFydDoiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvc2VydmVyMTAtYnNfaW50My5wZW0iOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy90ZXN0LWludC1jYTIuY3J0IjpNQkVEVExTX0VSUl9YNTA5X0NFUlRfVkVSSUZZX0ZBSUxFRDpNQkVEVExTX1g1MDlfQkFEQ0VSVF9OT1RfVFJVU1RFRDowOjA6MAogCiBYNTA5IENSVCB2ZXJpZnkgcmVzdGFydDogb25lIGludCwgRUUgYmFkc2lnbiwgbWF4X29wcz0xCi1kZXBlbmRzX29uOk1CRURUTFNfUEVNX1BBUlNFX0M6TUJFRFRMU19NRF9DQU5fU0hBMjU2Ok1CRURUTFNfRUNQX0hBVkVfU0VDUDI1NlIxOk1CRURUTFNfRUNQX0hBVkVfU0VDUDM4NFIxOk1CRURUTFNfUlNBX0MKLXg1MDlfdmVyaWZ5X3Jlc3RhcnQ6ImRhdGFfZmlsZXMvc2VydmVyMTAtYnNfaW50My5wZW0iOiJkYXRhX2ZpbGVzL3Rlc3QtaW50LWNhMi5jcnQiOk1CRURUTFNfRVJSX1g1MDlfQ0VSVF9WRVJJRllfRkFJTEVEOk1CRURUTFNfWDUwOV9CQURDRVJUX05PVF9UUlVTVEVEOjE6MTAwOjEwMDAwCitkZXBlbmRzX29uOk1CRURUTFNfUEVNX1BBUlNFX0M6UFNBX1dBTlRfQUxHX1NIQV8yNTY6TUJFRFRMU19FQ1BfSEFWRV9TRUNQMjU2UjE6TUJFRFRMU19FQ1BfSEFWRV9TRUNQMzg0UjE6TUJFRFRMU19SU0FfQworeDUwOV92ZXJpZnlfcmVzdGFydDoiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvc2VydmVyMTAtYnNfaW50My5wZW0iOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy90ZXN0LWludC1jYTIuY3J0IjpNQkVEVExTX0VSUl9YNTA5X0NFUlRfVkVSSUZZX0ZBSUxFRDpNQkVEVExTX1g1MDlfQkFEQ0VSVF9OT1RfVFJVU1RFRDoxOjEwMDoxMDAwMAogCiBYNTA5IENSVCB2ZXJpZnkgcmVzdGFydDogb25lIGludCwgRUUgYmFkc2lnbiwgbWF4X29wcz0zMDAwMAotZGVwZW5kc19vbjpNQkVEVExTX1BFTV9QQVJTRV9DOk1CRURUTFNfTURfQ0FOX1NIQTI1NjpNQkVEVExTX0VDUF9IQVZFX1NFQ1AyNTZSMTpNQkVEVExTX0VDUF9IQVZFX1NFQ1AzODRSMTpNQkVEVExTX1JTQV9DCi14NTA5X3ZlcmlmeV9yZXN0YXJ0OiJkYXRhX2ZpbGVzL3NlcnZlcjEwLWJzX2ludDMucGVtIjoiZGF0YV9maWxlcy90ZXN0LWludC1jYTIuY3J0IjpNQkVEVExTX0VSUl9YNTA5X0NFUlRfVkVSSUZZX0ZBSUxFRDpNQkVEVExTX1g1MDlfQkFEQ0VSVF9OT1RfVFJVU1RFRDozMDAwMDowOjAKK2RlcGVuZHNfb246TUJFRFRMU19QRU1fUEFSU0VfQzpQU0FfV0FOVF9BTEdfU0hBXzI1NjpNQkVEVExTX0VDUF9IQVZFX1NFQ1AyNTZSMTpNQkVEVExTX0VDUF9IQVZFX1NFQ1AzODRSMTpNQkVEVExTX1JTQV9DCit4NTA5X3ZlcmlmeV9yZXN0YXJ0OiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9zZXJ2ZXIxMC1ic19pbnQzLnBlbSI6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3Rlc3QtaW50LWNhMi5jcnQiOk1CRURUTFNfRVJSX1g1MDlfQ0VSVF9WRVJJRllfRkFJTEVEOk1CRURUTFNfWDUwOV9CQURDRVJUX05PVF9UUlVTVEVEOjMwMDAwOjA6MAogCiBYNTA5IENSVCB2ZXJpZnkgcmVzdGFydDogb25lIGludCwgRUUgYmFkc2lnbiwgbWF4X29wcz01MDAKLWRlcGVuZHNfb246TUJFRFRMU19QRU1fUEFSU0VfQzpNQkVEVExTX01EX0NBTl9TSEEyNTY6TUJFRFRMU19FQ1BfSEFWRV9TRUNQMjU2UjE6TUJFRFRMU19FQ1BfSEFWRV9TRUNQMzg0UjE6TUJFRFRMU19SU0FfQwoteDUwOV92ZXJpZnlfcmVzdGFydDoiZGF0YV9maWxlcy9zZXJ2ZXIxMC1ic19pbnQzLnBlbSI6ImRhdGFfZmlsZXMvdGVzdC1pbnQtY2EyLmNydCI6TUJFRFRMU19FUlJfWDUwOV9DRVJUX1ZFUklGWV9GQUlMRUQ6TUJFRFRMU19YNTA5X0JBRENFUlRfTk9UX1RSVVNURUQ6NTAwOjI1OjEwMAorZGVwZW5kc19vbjpNQkVEVExTX1BFTV9QQVJTRV9DOlBTQV9XQU5UX0FMR19TSEFfMjU2Ok1CRURUTFNfRUNQX0hBVkVfU0VDUDI1NlIxOk1CRURUTFNfRUNQX0hBVkVfU0VDUDM4NFIxOk1CRURUTFNfUlNBX0MKK3g1MDlfdmVyaWZ5X3Jlc3RhcnQ6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3NlcnZlcjEwLWJzX2ludDMucGVtIjoiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvdGVzdC1pbnQtY2EyLmNydCI6TUJFRFRMU19FUlJfWDUwOV9DRVJUX1ZFUklGWV9GQUlMRUQ6TUJFRFRMU19YNTA5X0JBRENFUlRfTk9UX1RSVVNURUQ6NTAwOjI1OjEwMAogCiBYNTA5IENSVCB2ZXJpZnkgcmVzdGFydDogb25lIGludCwgaW50IGJhZHNpZ24sIG1heF9vcHM9MCAoZGlzYWJsZWQpCi1kZXBlbmRzX29uOk1CRURUTFNfUEVNX1BBUlNFX0M6TUJFRFRMU19NRF9DQU5fU0hBMjU2Ok1CRURUTFNfRUNQX0hBVkVfU0VDUDI1NlIxOk1CRURUTFNfRUNQX0hBVkVfU0VDUDM4NFIxOk1CRURUTFNfUlNBX0MKLXg1MDlfdmVyaWZ5X3Jlc3RhcnQ6ImRhdGFfZmlsZXMvc2VydmVyMTBfaW50My1icy5wZW0iOiJkYXRhX2ZpbGVzL3Rlc3QtaW50LWNhMi5jcnQiOk1CRURUTFNfRVJSX1g1MDlfQ0VSVF9WRVJJRllfRkFJTEVEOk1CRURUTFNfWDUwOV9CQURDRVJUX05PVF9UUlVTVEVEOjA6MDowCitkZXBlbmRzX29uOk1CRURUTFNfUEVNX1BBUlNFX0M6UFNBX1dBTlRfQUxHX1NIQV8yNTY6TUJFRFRMU19FQ1BfSEFWRV9TRUNQMjU2UjE6TUJFRFRMU19FQ1BfSEFWRV9TRUNQMzg0UjE6TUJFRFRMU19SU0FfQworeDUwOV92ZXJpZnlfcmVzdGFydDoiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvc2VydmVyMTBfaW50My1icy5wZW0iOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy90ZXN0LWludC1jYTIuY3J0IjpNQkVEVExTX0VSUl9YNTA5X0NFUlRfVkVSSUZZX0ZBSUxFRDpNQkVEVExTX1g1MDlfQkFEQ0VSVF9OT1RfVFJVU1RFRDowOjA6MAogCiBYNTA5IENSVCB2ZXJpZnkgcmVzdGFydDogb25lIGludCwgaW50IGJhZHNpZ24sIG1heF9vcHM9MQotZGVwZW5kc19vbjpNQkVEVExTX1BFTV9QQVJTRV9DOk1CRURUTFNfTURfQ0FOX1NIQTI1NjpNQkVEVExTX0VDUF9IQVZFX1NFQ1AyNTZSMTpNQkVEVExTX0VDUF9IQVZFX1NFQ1AzODRSMTpNQkVEVExTX1JTQV9DCi14NTA5X3ZlcmlmeV9yZXN0YXJ0OiJkYXRhX2ZpbGVzL3NlcnZlcjEwX2ludDMtYnMucGVtIjoiZGF0YV9maWxlcy90ZXN0LWludC1jYTIuY3J0IjpNQkVEVExTX0VSUl9YNTA5X0NFUlRfVkVSSUZZX0ZBSUxFRDpNQkVEVExTX1g1MDlfQkFEQ0VSVF9OT1RfVFJVU1RFRDoxOjEwMDoxMDAwMAorZGVwZW5kc19vbjpNQkVEVExTX1BFTV9QQVJTRV9DOlBTQV9XQU5UX0FMR19TSEFfMjU2Ok1CRURUTFNfRUNQX0hBVkVfU0VDUDI1NlIxOk1CRURUTFNfRUNQX0hBVkVfU0VDUDM4NFIxOk1CRURUTFNfUlNBX0MKK3g1MDlfdmVyaWZ5X3Jlc3RhcnQ6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3NlcnZlcjEwX2ludDMtYnMucGVtIjoiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvdGVzdC1pbnQtY2EyLmNydCI6TUJFRFRMU19FUlJfWDUwOV9DRVJUX1ZFUklGWV9GQUlMRUQ6TUJFRFRMU19YNTA5X0JBRENFUlRfTk9UX1RSVVNURUQ6MToxMDA6MTAwMDAKIAogWDUwOSBDUlQgdmVyaWZ5IHJlc3RhcnQ6IG9uZSBpbnQsIGludCBiYWRzaWduLCBtYXhfb3BzPTMwMDAwCi1kZXBlbmRzX29uOk1CRURUTFNfUEVNX1BBUlNFX0M6TUJFRFRMU19NRF9DQU5fU0hBMjU2Ok1CRURUTFNfRUNQX0hBVkVfU0VDUDI1NlIxOk1CRURUTFNfRUNQX0hBVkVfU0VDUDM4NFIxOk1CRURUTFNfUlNBX0MKLXg1MDlfdmVyaWZ5X3Jlc3RhcnQ6ImRhdGFfZmlsZXMvc2VydmVyMTBfaW50My1icy5wZW0iOiJkYXRhX2ZpbGVzL3Rlc3QtaW50LWNhMi5jcnQiOk1CRURUTFNfRVJSX1g1MDlfQ0VSVF9WRVJJRllfRkFJTEVEOk1CRURUTFNfWDUwOV9CQURDRVJUX05PVF9UUlVTVEVEOjMwMDAwOjA6MAorZGVwZW5kc19vbjpNQkVEVExTX1BFTV9QQVJTRV9DOlBTQV9XQU5UX0FMR19TSEFfMjU2Ok1CRURUTFNfRUNQX0hBVkVfU0VDUDI1NlIxOk1CRURUTFNfRUNQX0hBVkVfU0VDUDM4NFIxOk1CRURUTFNfUlNBX0MKK3g1MDlfdmVyaWZ5X3Jlc3RhcnQ6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3NlcnZlcjEwX2ludDMtYnMucGVtIjoiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvdGVzdC1pbnQtY2EyLmNydCI6TUJFRFRMU19FUlJfWDUwOV9DRVJUX1ZFUklGWV9GQUlMRUQ6TUJFRFRMU19YNTA5X0JBRENFUlRfTk9UX1RSVVNURUQ6MzAwMDA6MDowCiAKIFg1MDkgQ1JUIHZlcmlmeSByZXN0YXJ0OiBvbmUgaW50LCBpbnQgYmFkc2lnbiwgbWF4X29wcz01MDAKLWRlcGVuZHNfb246TUJFRFRMU19QRU1fUEFSU0VfQzpNQkVEVExTX01EX0NBTl9TSEEyNTY6TUJFRFRMU19FQ1BfSEFWRV9TRUNQMjU2UjE6TUJFRFRMU19FQ1BfSEFWRV9TRUNQMzg0UjE6TUJFRFRMU19SU0FfQwoteDUwOV92ZXJpZnlfcmVzdGFydDoiZGF0YV9maWxlcy9zZXJ2ZXIxMF9pbnQzLWJzLnBlbSI6ImRhdGFfZmlsZXMvdGVzdC1pbnQtY2EyLmNydCI6TUJFRFRMU19FUlJfWDUwOV9DRVJUX1ZFUklGWV9GQUlMRUQ6TUJFRFRMU19YNTA5X0JBRENFUlRfTk9UX1RSVVNURUQ6NTAwOjI1OjEwMAorZGVwZW5kc19vbjpNQkVEVExTX1BFTV9QQVJTRV9DOlBTQV9XQU5UX0FMR19TSEFfMjU2Ok1CRURUTFNfRUNQX0hBVkVfU0VDUDI1NlIxOk1CRURUTFNfRUNQX0hBVkVfU0VDUDM4NFIxOk1CRURUTFNfUlNBX0MKK3g1MDlfdmVyaWZ5X3Jlc3RhcnQ6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3NlcnZlcjEwX2ludDMtYnMucGVtIjoiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvdGVzdC1pbnQtY2EyLmNydCI6TUJFRFRMU19FUlJfWDUwOV9DRVJUX1ZFUklGWV9GQUlMRUQ6TUJFRFRMU19YNTA5X0JBRENFUlRfTk9UX1RSVVNURUQ6NTAwOjI1OjEwMAogCiBYNTA5IGV4dCB0eXBlcyBhY2Nlc3NvcjogZXh0IHR5cGUgcHJlc2VudAogZGVwZW5kc19vbjpNQkVEVExTX1g1MDlfQ1JUX1BBUlNFX0MKQEAgLTMzNzYsNjYgKzMzNzYsNjYgQEAKIHg1MDlfYWNjZXNzb3JfZXh0X3R5cGVzOk1CRURUTFNfWDUwOV9FWFRfS0VZX1VTQUdFOk1CRURUTFNfWDUwOV9FWFRfU1VCSkVDVF9BTFRfTkFNRQogCiBYNTA5IENSVCBwYXJzZSBTdWJqZWN0IEtleSBJZCAtIENvcnJlY3QgU3ViamVjdCBLZXkgSUQKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2Ok1CRURUTFNfUlNBX0MKLXg1MDlfY3J0X3BhcnNlX3N1YmplY3RrZXlpZDoiZGF0YV9maWxlcy9hdXRob3JpdHlLZXlJZF9zdWJqZWN0S2V5SWQuY3J0LmRlciI6IkE1MDVFODY0QjhEQ0RGNjAwRjUwMTI0RDYwQTg2NEFGNEQ4QjQzOTMiOjAKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTY6TUJFRFRMU19SU0FfQworeDUwOV9jcnRfcGFyc2Vfc3ViamVjdGtleWlkOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9hdXRob3JpdHlLZXlJZF9zdWJqZWN0S2V5SWQuY3J0LmRlciI6IkE1MDVFODY0QjhEQ0RGNjAwRjUwMTI0RDYwQTg2NEFGNEQ4QjQzOTMiOjAKIAogWDUwOSBDUlQgcGFyc2UgU3ViamVjdCBLZXkgSWQgLSBXcm9uZyBPQ1RFVF9TVFJJTkcgdGFnCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NjpNQkVEVExTX1JTQV9DCi14NTA5X2NydF9wYXJzZV9zdWJqZWN0a2V5aWQ6ImRhdGFfZmlsZXMvYXV0aG9yaXR5S2V5SWRfc3ViamVjdEtleUlkX3RhZ19tYWxmb3JtZWQuY3J0LmRlciI6IiI6TUJFRFRMU19FUlJfWDUwOV9JTlZBTElEX0VYVEVOU0lPTlMrTUJFRFRMU19FUlJfQVNOMV9VTkVYUEVDVEVEX1RBRworZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NjpNQkVEVExTX1JTQV9DCit4NTA5X2NydF9wYXJzZV9zdWJqZWN0a2V5aWQ6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL2F1dGhvcml0eUtleUlkX3N1YmplY3RLZXlJZF90YWdfbWFsZm9ybWVkLmNydC5kZXIiOiIiOk1CRURUTFNfRVJSX1g1MDlfSU5WQUxJRF9FWFRFTlNJT05TK01CRURUTFNfRVJSX0FTTjFfVU5FWFBFQ1RFRF9UQUcKIAogWDUwOSBDUlQgcGFyc2UgU3ViamVjdCBLZXkgSWQgLSBXcm9uZyBPQ1RFVF9TVFJJTkcgbGVuZ3RoCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NjpNQkVEVExTX1JTQV9DCi14NTA5X2NydF9wYXJzZV9zdWJqZWN0a2V5aWQ6ImRhdGFfZmlsZXMvYXV0aG9yaXR5S2V5SWRfc3ViamVjdEtleUlkX3RhZ19sZW5fbWFsZm9ybWVkLmNydC5kZXIiOiIiOk1CRURUTFNfRVJSX1g1MDlfSU5WQUxJRF9FWFRFTlNJT05TK01CRURUTFNfRVJSX0FTTjFfTEVOR1RIX01JU01BVENICitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2Ok1CRURUTFNfUlNBX0MKK3g1MDlfY3J0X3BhcnNlX3N1YmplY3RrZXlpZDoiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvYXV0aG9yaXR5S2V5SWRfc3ViamVjdEtleUlkX3RhZ19sZW5fbWFsZm9ybWVkLmNydC5kZXIiOiIiOk1CRURUTFNfRVJSX1g1MDlfSU5WQUxJRF9FWFRFTlNJT05TK01CRURUTFNfRVJSX0FTTjFfTEVOR1RIX01JU01BVENICiAKIFg1MDkgQ1JUIHBhcnNlIEF1dGhvcml0eSBLZXkgSWQgLSBDb3JyZWN0IEF1dGhvcml0eSBLZXkgSUQKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2Ok1CRURUTFNfUlNBX0MKLXg1MDlfY3J0X3BhcnNlX2F1dGhvcml0eWtleWlkOiJkYXRhX2ZpbGVzL2F1dGhvcml0eUtleUlkX3N1YmplY3RLZXlJZC5jcnQuZGVyIjoiQTUwNUU4NjRCOERDREY2MDBGNTAxMjRENjBBODY0QUY0RDhCNDM5MyI6IkM9TkwsIE9VPVBvbGFyU1NMLCBDTj1Qb2xhclNTTCBUZXN0IENBIjoiNjgwNDMwQ0QwNzRERTYzRkNEQzA1MTI2MEZEMDQyQzJCNTEyQjZCQSI6MAorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NjpNQkVEVExTX1JTQV9DCit4NTA5X2NydF9wYXJzZV9hdXRob3JpdHlrZXlpZDoiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvYXV0aG9yaXR5S2V5SWRfc3ViamVjdEtleUlkLmNydC5kZXIiOiJBNTA1RTg2NEI4RENERjYwMEY1MDEyNEQ2MEE4NjRBRjREOEI0MzkzIjoiQz1OTCwgT1U9UG9sYXJTU0wsIENOPVBvbGFyU1NMIFRlc3QgQ0EiOiI2ODA0MzBDRDA3NERFNjNGQ0RDMDUxMjYwRkQwNDJDMkI1MTJCNkJBIjowCiAKIFg1MDkgQ1JUIHBhcnNlIEF1dGhvcml0eSBLZXkgSWQgLSBDb3JyZWN0IEF1dGhvcml0eSBLZXkgSUQgKG5vIGtleWlkKQotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTY6TUJFRFRMU19SU0FfQwoteDUwOV9jcnRfcGFyc2VfYXV0aG9yaXR5a2V5aWQ6ImRhdGFfZmlsZXMvYXV0aG9yaXR5S2V5SWRfbm9fa2V5aWQuY3J0LmRlciI6IiI6IkM9TkwsIE9VPVBvbGFyU1NMLCBDTj1Qb2xhclNTTCBUZXN0IENBIjoiNjgwNDMwQ0QwNzRERTYzRkNEQzA1MTI2MEZEMDQyQzJCNTEyQjZCQSI6MAorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NjpNQkVEVExTX1JTQV9DCit4NTA5X2NydF9wYXJzZV9hdXRob3JpdHlrZXlpZDoiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvYXV0aG9yaXR5S2V5SWRfbm9fa2V5aWQuY3J0LmRlciI6IiI6IkM9TkwsIE9VPVBvbGFyU1NMLCBDTj1Qb2xhclNTTCBUZXN0IENBIjoiNjgwNDMwQ0QwNzRERTYzRkNEQzA1MTI2MEZEMDQyQzJCNTEyQjZCQSI6MAogCiBYNTA5IENSVCBwYXJzZSBBdXRob3JpdHkgS2V5IElkIC0gQ29ycmVjdCBBdXRob3JpdHkgS2V5IElEIChubyBpc3N1ZXIpCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NjpNQkVEVExTX1JTQV9DCi14NTA5X2NydF9wYXJzZV9hdXRob3JpdHlrZXlpZDoiZGF0YV9maWxlcy9hdXRob3JpdHlLZXlJZF9ub19pc3N1ZXIuY3J0LmRlciI6IkE1MDVFODY0QjhEQ0RGNjAwRjUwMTI0RDYwQTg2NEFGNEQ4QjQzOTMiOiIiOiIiOjAKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yNTY6TUJFRFRMU19SU0FfQworeDUwOV9jcnRfcGFyc2VfYXV0aG9yaXR5a2V5aWQ6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL2F1dGhvcml0eUtleUlkX25vX2lzc3Vlci5jcnQuZGVyIjoiQTUwNUU4NjRCOERDREY2MDBGNTAxMjRENjBBODY0QUY0RDhCNDM5MyI6IiI6IiI6MAogCiBYNTA5IENSVCBwYXJzZSBBdXRob3JpdHkgS2V5IElkIC0gbm8gQXV0aG9yaXR5IEtleSBJRAotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTY6TUJFRFRMU19SU0FfQwoteDUwOV9jcnRfcGFyc2VfYXV0aG9yaXR5a2V5aWQ6ImRhdGFfZmlsZXMvYXV0aG9yaXR5S2V5SWRfbm9fYXV0aG9yaXR5S2V5SWQuY3J0LmRlciI6IiI6IiI6IiI6MAorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NjpNQkVEVExTX1JTQV9DCit4NTA5X2NydF9wYXJzZV9hdXRob3JpdHlrZXlpZDoiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvYXV0aG9yaXR5S2V5SWRfbm9fYXV0aG9yaXR5S2V5SWQuY3J0LmRlciI6IiI6IiI6IiI6MAogCiBYNTA5IENSVCBwYXJzZSBBdXRob3JpdHkgS2V5IElkIC0gV3JvbmcgTGVuZ3RoCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NjpNQkVEVExTX1JTQV9DCi14NTA5X2NydF9wYXJzZV9hdXRob3JpdHlrZXlpZDoiZGF0YV9maWxlcy9hdXRob3JpdHlLZXlJZF9zdWJqZWN0S2V5SWRfbGVuZ3RoX21hbGZvcm1lZC5jcnQuZGVyIjoiIjoiIjoiIjpNQkVEVExTX0VSUl9YNTA5X0lOVkFMSURfRVhURU5TSU9OUytNQkVEVExTX0VSUl9BU04xX0xFTkdUSF9NSVNNQVRDSAorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NjpNQkVEVExTX1JTQV9DCit4NTA5X2NydF9wYXJzZV9hdXRob3JpdHlrZXlpZDoiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvYXV0aG9yaXR5S2V5SWRfc3ViamVjdEtleUlkX2xlbmd0aF9tYWxmb3JtZWQuY3J0LmRlciI6IiI6IiI6IiI6TUJFRFRMU19FUlJfWDUwOV9JTlZBTElEX0VYVEVOU0lPTlMrTUJFRFRMU19FUlJfQVNOMV9MRU5HVEhfTUlTTUFUQ0gKIAogWDUwOSBDUlQgcGFyc2UgQXV0aG9yaXR5IEtleSBJZCAtIFdyb25nIFNlcXVlbmNlIHRhZwotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTY6TUJFRFRMU19SU0FfQwoteDUwOV9jcnRfcGFyc2VfYXV0aG9yaXR5a2V5aWQ6ImRhdGFfZmlsZXMvYXV0aG9yaXR5S2V5SWRfc3ViamVjdEtleUlkX3NlcXVlbmNlX3RhZ19tYWxmb3JtZWQuY3J0LmRlciI6IiI6IiI6IiI6TUJFRFRMU19FUlJfWDUwOV9JTlZBTElEX0VYVEVOU0lPTlMrTUJFRFRMU19FUlJfQVNOMV9VTkVYUEVDVEVEX1RBRworZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NjpNQkVEVExTX1JTQV9DCit4NTA5X2NydF9wYXJzZV9hdXRob3JpdHlrZXlpZDoiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvYXV0aG9yaXR5S2V5SWRfc3ViamVjdEtleUlkX3NlcXVlbmNlX3RhZ19tYWxmb3JtZWQuY3J0LmRlciI6IiI6IiI6IiI6TUJFRFRMU19FUlJfWDUwOV9JTlZBTElEX0VYVEVOU0lPTlMrTUJFRFRMU19FUlJfQVNOMV9VTkVYUEVDVEVEX1RBRwogCiBYNTA5IENSVCBwYXJzZSBBdXRob3JpdHkgS2V5IElkIC0gV3JvbmcgS2V5SWQgVGFnCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NjpNQkVEVExTX1JTQV9DCi14NTA5X2NydF9wYXJzZV9hdXRob3JpdHlrZXlpZDoiZGF0YV9maWxlcy9hdXRob3JpdHlLZXlJZF9zdWJqZWN0S2V5SWRfa2V5aWRfdGFnX21hbGZvcm1lZC5jcnQuZGVyIjoiIjoiIjoiIjpNQkVEVExTX0VSUl9YNTA5X0lOVkFMSURfRVhURU5TSU9OUytNQkVEVExTX0VSUl9BU04xX1VORVhQRUNURURfVEFHCitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2Ok1CRURUTFNfUlNBX0MKK3g1MDlfY3J0X3BhcnNlX2F1dGhvcml0eWtleWlkOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9hdXRob3JpdHlLZXlJZF9zdWJqZWN0S2V5SWRfa2V5aWRfdGFnX21hbGZvcm1lZC5jcnQuZGVyIjoiIjoiIjoiIjpNQkVEVExTX0VSUl9YNTA5X0lOVkFMSURfRVhURU5TSU9OUytNQkVEVExTX0VSUl9BU04xX1VORVhQRUNURURfVEFHCiAKIFg1MDkgQ1JUIHBhcnNlIEF1dGhvcml0eSBLZXkgSWQgLSBXcm9uZyBLZXlJZCBUYWcgTGVuZ3RoCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NjpNQkVEVExTX1JTQV9DCi14NTA5X2NydF9wYXJzZV9hdXRob3JpdHlrZXlpZDoiZGF0YV9maWxlcy9hdXRob3JpdHlLZXlJZF9zdWJqZWN0S2V5SWRfa2V5aWRfdGFnX2xlbl9tYWxmb3JtZWQuY3J0LmRlciI6IiI6IiI6IiI6TUJFRFRMU19FUlJfWDUwOV9JTlZBTElEX0VYVEVOU0lPTlMrTUJFRFRMU19FUlJfQVNOMV9JTlZBTElEX0xFTkdUSAorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NjpNQkVEVExTX1JTQV9DCit4NTA5X2NydF9wYXJzZV9hdXRob3JpdHlrZXlpZDoiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvYXV0aG9yaXR5S2V5SWRfc3ViamVjdEtleUlkX2tleWlkX3RhZ19sZW5fbWFsZm9ybWVkLmNydC5kZXIiOiIiOiIiOiIiOk1CRURUTFNfRVJSX1g1MDlfSU5WQUxJRF9FWFRFTlNJT05TK01CRURUTFNfRVJSX0FTTjFfSU5WQUxJRF9MRU5HVEgKIAogWDUwOSBDUlQgcGFyc2UgQXV0aG9yaXR5IEtleSBJZCAtIFdyb25nIElzc3VlciBUYWcKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2Ok1CRURUTFNfUlNBX0MKLXg1MDlfY3J0X3BhcnNlX2F1dGhvcml0eWtleWlkOiJkYXRhX2ZpbGVzL2F1dGhvcml0eUtleUlkX3N1YmplY3RLZXlJZF9pc3N1ZXJfdGFnMV9tYWxmb3JtZWQuY3J0LmRlciI6IiI6IiI6IiI6TUJFRFRMU19FUlJfWDUwOV9JTlZBTElEX0VYVEVOU0lPTlMrTUJFRFRMU19FUlJfQVNOMV9VTkVYUEVDVEVEX1RBRworZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NjpNQkVEVExTX1JTQV9DCit4NTA5X2NydF9wYXJzZV9hdXRob3JpdHlrZXlpZDoiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvYXV0aG9yaXR5S2V5SWRfc3ViamVjdEtleUlkX2lzc3Vlcl90YWcxX21hbGZvcm1lZC5jcnQuZGVyIjoiIjoiIjoiIjpNQkVEVExTX0VSUl9YNTA5X0lOVkFMSURfRVhURU5TSU9OUytNQkVEVExTX0VSUl9BU04xX1VORVhQRUNURURfVEFHCiAKIFg1MDkgQ1JUIHBhcnNlIEF1dGhvcml0eSBLZXkgSWQgLSBXcm9uZyBEaXJlY3RvcnlOYW1lIHRhZyBpbiBpc3N1ZXIgZmllbGQKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2Ok1CRURUTFNfUlNBX0MKLXg1MDlfY3J0X3BhcnNlX2F1dGhvcml0eWtleWlkOiJkYXRhX2ZpbGVzL2F1dGhvcml0eUtleUlkX3N1YmplY3RLZXlJZF9pc3N1ZXJfdGFnMl9tYWxmb3JtZWQuY3J0LmRlciI6IiI6IiI6IiI6TUJFRFRMU19FUlJfWDUwOV9JTlZBTElEX0VYVEVOU0lPTlMrTUJFRFRMU19FUlJfQVNOMV9VTkVYUEVDVEVEX1RBRworZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NjpNQkVEVExTX1JTQV9DCit4NTA5X2NydF9wYXJzZV9hdXRob3JpdHlrZXlpZDoiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvYXV0aG9yaXR5S2V5SWRfc3ViamVjdEtleUlkX2lzc3Vlcl90YWcyX21hbGZvcm1lZC5jcnQuZGVyIjoiIjoiIjoiIjpNQkVEVExTX0VSUl9YNTA5X0lOVkFMSURfRVhURU5TSU9OUytNQkVEVExTX0VSUl9BU04xX1VORVhQRUNURURfVEFHCiAKIFg1MDkgQ1JUIHBhcnNlIEF1dGhvcml0eSBLZXkgSWQgLSBXcm9uZyBTZXJpYWwgTnVtYmVyIFRhZwotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTY6TUJFRFRMU19SU0FfQwoteDUwOV9jcnRfcGFyc2VfYXV0aG9yaXR5a2V5aWQ6ImRhdGFfZmlsZXMvYXV0aG9yaXR5S2V5SWRfc3ViamVjdEtleUlkX3NuX3RhZ19tYWxmb3JtZWQuY3J0LmRlciI6IiI6IiI6IiI6TUJFRFRMU19FUlJfWDUwOV9JTlZBTElEX0VYVEVOU0lPTlMrTUJFRFRMU19FUlJfQVNOMV9VTkVYUEVDVEVEX1RBRworZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NjpNQkVEVExTX1JTQV9DCit4NTA5X2NydF9wYXJzZV9hdXRob3JpdHlrZXlpZDoiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvYXV0aG9yaXR5S2V5SWRfc3ViamVjdEtleUlkX3NuX3RhZ19tYWxmb3JtZWQuY3J0LmRlciI6IiI6IiI6IiI6TUJFRFRMU19FUlJfWDUwOV9JTlZBTElEX0VYVEVOU0lPTlMrTUJFRFRMU19FUlJfQVNOMV9VTkVYUEVDVEVEX1RBRwogCiBYNTA5IENSVCBwYXJzZSBBdXRob3JpdHkgS2V5IElkIC0gV3JvbmcgU2VyaWFsIE51bWJlciBUYWcgbGVuZ3RoCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NjpNQkVEVExTX1JTQV9DCi14NTA5X2NydF9wYXJzZV9hdXRob3JpdHlrZXlpZDoiZGF0YV9maWxlcy9hdXRob3JpdHlLZXlJZF9zdWJqZWN0S2V5SWRfc25fbGVuX21hbGZvcm1lZC5jcnQuZGVyIjoiIjoiIjoiIjpNQkVEVExTX0VSUl9YNTA5X0lOVkFMSURfRVhURU5TSU9OUytNQkVEVExTX0VSUl9BU04xX0xFTkdUSF9NSVNNQVRDSAorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NjpNQkVEVExTX1JTQV9DCit4NTA5X2NydF9wYXJzZV9hdXRob3JpdHlrZXlpZDoiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvYXV0aG9yaXR5S2V5SWRfc3ViamVjdEtleUlkX3NuX2xlbl9tYWxmb3JtZWQuY3J0LmRlciI6IiI6IiI6IiI6TUJFRFRMU19FUlJfWDUwOV9JTlZBTElEX0VYVEVOU0lPTlMrTUJFRFRMU19FUlJfQVNOMV9MRU5HVEhfTUlTTUFUQ0gKIAogIyBjbHVzdGVyZnV6ei10ZXN0Y2FzZS1taW5pbWl6ZWQtZnV6el94NTA5Y3J0LTY2NjYwNTA4MzQ2NjEzNzY6IHRlc3QgZm9yIGJhZCBzZXF1ZW5jZSBvZiBuYW1lcyBpbiBhdXRob3JpdHlDZXJ0SXNzdWVyIChzZWUgaXNzdWUgIzc1NzYpCiBYNTA5IENSVCBwYXJzZSBBdXRob3JpdHkgS2V5IElkIC0gV3JvbmcgSXNzdWVyIHNlcXVlbmNlCiBkZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX01ENTpNQkVEVExTX1JTQV9DCi14NTA5X2NydF9wYXJzZV9hdXRob3JpdHlrZXlpZDoiZGF0YV9maWxlcy9jbHVzdGVyZnV6ei10ZXN0Y2FzZS1taW5pbWl6ZWQtZnV6el94NTA5Y3J0LTY2NjYwNTA4MzQ2NjEzNzYuY3J0LmRlciI6IiI6IiI6IiI6TUJFRFRMU19FUlJfWDUwOV9JTlZBTElEX0VYVEVOU0lPTlMrTUJFRFRMU19FUlJfQVNOMV9PVVRfT0ZfREFUQQoreDUwOV9jcnRfcGFyc2VfYXV0aG9yaXR5a2V5aWQ6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL2NsdXN0ZXJmdXp6LXRlc3RjYXNlLW1pbmltaXplZC1mdXp6X3g1MDljcnQtNjY2NjA1MDgzNDY2MTM3Ni5jcnQuZGVyIjoiIjoiIjoiIjpNQkVEVExTX0VSUl9YNTA5X0lOVkFMSURfRVhURU5TSU9OUytNQkVEVExTX0VSUl9BU04xX09VVF9PRl9EQVRBCmRpZmYgLS1naXQgYS90ZXN0cy9zdWl0ZXMvdGVzdF9zdWl0ZV94NTA5cGFyc2UuZnVuY3Rpb24gYi90ZXN0cy9zdWl0ZXMvdGVzdF9zdWl0ZV94NTA5cGFyc2UuZnVuY3Rpb24KaW5kZXggZjNhZTBmNC4uYmE3MWM4ZiAxMDA2NDQKLS0tIGEvdGVzdHMvc3VpdGVzL3Rlc3Rfc3VpdGVfeDUwOXBhcnNlLmZ1bmN0aW9uCisrKyBiL3Rlc3RzL3N1aXRlcy90ZXN0X3N1aXRlX3g1MDlwYXJzZS5mdW5jdGlvbgpAQCAtMTUsNyArMTUsNyBAQAogI2lmIE1CRURUTFNfWDUwOV9NQVhfSU5URVJNRURJQVRFX0NBID4gMTkKICNlcnJvciAiVGhlIHZhbHVlIG9mIE1CRURUTFNfWDUwOV9NQVhfSU5URVJNRURJQVRFX0MgaXMgbGFyZ2VyIFwKICAgICB0aGFuIHRoZSBjdXJyZW50IHRocmVzaG9sZCAxOS4gVG8gdGVzdCBsYXJnZXIgdmFsdWVzLCBwbGVhc2UgXAotICAgIGFkYXB0IHRoZSBzY3JpcHQgdGVzdHMvZGF0YV9maWxlcy9kaXItbWF4L2xvbmcuc2guIgorICAgIGFkYXB0IHRoZSBzY3JpcHQgZnJhbWV3b3JrL2RhdGFfZmlsZXMvZGlyLW1heC9sb25nLnNoLiIKICNlbmRpZgogCiAvKiBUZXN0LW9ubHkgcHJvZmlsZSBhbGxvd2luZyBhbGwgZGlnZXN0cywgUEsgYWxnb3JpdGhtcywgYW5kIGN1cnZlcy4gKi8KZGlmZiAtLWdpdCBhL3Rlc3RzL3N1aXRlcy90ZXN0X3N1aXRlX3g1MDl3cml0ZS5kYXRhIGIvdGVzdHMvc3VpdGVzL3Rlc3Rfc3VpdGVfeDUwOXdyaXRlLmRhdGEKaW5kZXggNWM2YTkwMy4uNTlkYWRlMiAxMDA2NDQKLS0tIGEvdGVzdHMvc3VpdGVzL3Rlc3Rfc3VpdGVfeDUwOXdyaXRlLmRhdGEKKysrIGIvdGVzdHMvc3VpdGVzL3Rlc3Rfc3VpdGVfeDUwOXdyaXRlLmRhdGEKQEAgLTEsMTcwICsxLDE3MCBAQAogQ2VydGlmaWNhdGUgUmVxdWVzdCBjaGVjayBTZXJ2ZXIxIFNIQTEKIGRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMTpNQkVEVExTX1JTQV9DOk1CRURUTFNfUEtDUzFfVjE1Ci14NTA5X2Nzcl9jaGVjazoiZGF0YV9maWxlcy9zZXJ2ZXIxLmtleSI6ImRhdGFfZmlsZXMvc2VydmVyMS5yZXEuc2hhMSI6TUJFRFRMU19NRF9TSEExOjA6MDowOjA6MAoreDUwOV9jc3JfY2hlY2s6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3NlcnZlcjEua2V5IjoiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvc2VydmVyMS5yZXEuc2hhMSI6TUJFRFRMU19NRF9TSEExOjA6MDowOjA6MAogCiBDZXJ0aWZpY2F0ZSBSZXF1ZXN0IGNoZWNrIFNlcnZlcjEgU0hBMjI0Ci1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTIyNDpNQkVEVExTX1JTQV9DOk1CRURUTFNfUEtDUzFfVjE1Ci14NTA5X2Nzcl9jaGVjazoiZGF0YV9maWxlcy9zZXJ2ZXIxLmtleSI6ImRhdGFfZmlsZXMvc2VydmVyMS5yZXEuc2hhMjI0IjpNQkVEVExTX01EX1NIQTIyNDowOjA6MDowOjAKK2RlcGVuZHNfb246UFNBX1dBTlRfQUxHX1NIQV8yMjQ6TUJFRFRMU19SU0FfQzpNQkVEVExTX1BLQ1MxX1YxNQoreDUwOV9jc3JfY2hlY2s6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3NlcnZlcjEua2V5IjoiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvc2VydmVyMS5yZXEuc2hhMjI0IjpNQkVEVExTX01EX1NIQTIyNDowOjA6MDowOjAKIAogQ2VydGlmaWNhdGUgUmVxdWVzdCBjaGVjayBTZXJ2ZXIxIFNIQTI1NgotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTY6TUJFRFRMU19SU0FfQzpNQkVEVExTX1BLQ1MxX1YxNQoteDUwOV9jc3JfY2hlY2s6ImRhdGFfZmlsZXMvc2VydmVyMS5rZXkiOiJkYXRhX2ZpbGVzL3NlcnZlcjEucmVxLnNoYTI1NiI6TUJFRFRMU19NRF9TSEEyNTY6MDowOjA6MDowCitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2Ok1CRURUTFNfUlNBX0M6TUJFRFRMU19QS0NTMV9WMTUKK3g1MDlfY3NyX2NoZWNrOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9zZXJ2ZXIxLmtleSI6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3NlcnZlcjEucmVxLnNoYTI1NiI6TUJFRFRMU19NRF9TSEEyNTY6MDowOjA6MDowCiAKIENlcnRpZmljYXRlIFJlcXVlc3QgY2hlY2sgU2VydmVyMSBTSEEzODQKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMzg0Ok1CRURUTFNfUlNBX0M6TUJFRFRMU19QS0NTMV9WMTUKLXg1MDlfY3NyX2NoZWNrOiJkYXRhX2ZpbGVzL3NlcnZlcjEua2V5IjoiZGF0YV9maWxlcy9zZXJ2ZXIxLnJlcS5zaGEzODQiOk1CRURUTFNfTURfU0hBMzg0OjA6MDowOjA6MAorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzM4NDpNQkVEVExTX1JTQV9DOk1CRURUTFNfUEtDUzFfVjE1Cit4NTA5X2Nzcl9jaGVjazoiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvc2VydmVyMS5rZXkiOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9zZXJ2ZXIxLnJlcS5zaGEzODQiOk1CRURUTFNfTURfU0hBMzg0OjA6MDowOjA6MAogCiBDZXJ0aWZpY2F0ZSBSZXF1ZXN0IGNoZWNrIFNlcnZlcjEgU0hBNTEyCiBkZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTUxMjpNQkVEVExTX1JTQV9DOk1CRURUTFNfUEtDUzFfVjE1Ci14NTA5X2Nzcl9jaGVjazoiZGF0YV9maWxlcy9zZXJ2ZXIxLmtleSI6ImRhdGFfZmlsZXMvc2VydmVyMS5yZXEuc2hhNTEyIjpNQkVEVExTX01EX1NIQTUxMjowOjA6MDowOjAKK3g1MDlfY3NyX2NoZWNrOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9zZXJ2ZXIxLmtleSI6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3NlcnZlcjEucmVxLnNoYTUxMiI6TUJFRFRMU19NRF9TSEE1MTI6MDowOjA6MDowCiAKIENlcnRpZmljYXRlIFJlcXVlc3QgY2hlY2sgU2VydmVyMSBNRDUKIGRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fTUQ1Ok1CRURUTFNfUlNBX0M6TUJFRFRMU19QS0NTMV9WMTUKLXg1MDlfY3NyX2NoZWNrOiJkYXRhX2ZpbGVzL3NlcnZlcjEua2V5IjoiZGF0YV9maWxlcy9zZXJ2ZXIxLnJlcS5tZDUiOk1CRURUTFNfTURfTUQ1OjA6MDowOjA6MAoreDUwOV9jc3JfY2hlY2s6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3NlcnZlcjEua2V5IjoiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvc2VydmVyMS5yZXEubWQ1IjpNQkVEVExTX01EX01ENTowOjA6MDowOjAKIAogQ2VydGlmaWNhdGUgUmVxdWVzdCBjaGVjayBTZXJ2ZXIxIGtleV91c2FnZQogZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEExOk1CRURUTFNfUlNBX0M6TUJFRFRMU19QS0NTMV9WMTUKLXg1MDlfY3NyX2NoZWNrOiJkYXRhX2ZpbGVzL3NlcnZlcjEua2V5IjoiZGF0YV9maWxlcy9zZXJ2ZXIxLnJlcS5rZXlfdXNhZ2UiOk1CRURUTFNfTURfU0hBMTpNQkVEVExTX1g1MDlfS1VfRElHSVRBTF9TSUdOQVRVUkUgfCBNQkVEVExTX1g1MDlfS1VfTk9OX1JFUFVESUFUSU9OIHwgTUJFRFRMU19YNTA5X0tVX0tFWV9FTkNJUEhFUk1FTlQ6MTowOjA6MAoreDUwOV9jc3JfY2hlY2s6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3NlcnZlcjEua2V5IjoiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvc2VydmVyMS5yZXEua2V5X3VzYWdlIjpNQkVEVExTX01EX1NIQTE6TUJFRFRMU19YNTA5X0tVX0RJR0lUQUxfU0lHTkFUVVJFIHwgTUJFRFRMU19YNTA5X0tVX05PTl9SRVBVRElBVElPTiB8IE1CRURUTFNfWDUwOV9LVV9LRVlfRU5DSVBIRVJNRU5UOjE6MDowOjAKIAogQ2VydGlmaWNhdGUgUmVxdWVzdCBjaGVjayBvcGFxdWUgU2VydmVyMSBrZXlfdXNhZ2UKIGRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMTpNQkVEVExTX1JTQV9DOk1CRURUTFNfUEtDUzFfVjE1Ci14NTA5X2Nzcl9jaGVja19vcGFxdWU6ImRhdGFfZmlsZXMvc2VydmVyMS5rZXkiOk1CRURUTFNfTURfU0hBMTpNQkVEVExTX1g1MDlfS1VfRElHSVRBTF9TSUdOQVRVUkUgfCBNQkVEVExTX1g1MDlfS1VfTk9OX1JFUFVESUFUSU9OOjAKK3g1MDlfY3NyX2NoZWNrX29wYXF1ZToiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvc2VydmVyMS5rZXkiOk1CRURUTFNfTURfU0hBMTpNQkVEVExTX1g1MDlfS1VfRElHSVRBTF9TSUdOQVRVUkUgfCBNQkVEVExTX1g1MDlfS1VfTk9OX1JFUFVESUFUSU9OOjAKIAogQ2VydGlmaWNhdGUgUmVxdWVzdCBjaGVjayBTZXJ2ZXIxIGtleV91c2FnZSBlbXB0eQogZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEExOk1CRURUTFNfUlNBX0M6TUJFRFRMU19QS0NTMV9WMTUKLXg1MDlfY3NyX2NoZWNrOiJkYXRhX2ZpbGVzL3NlcnZlcjEua2V5IjoiZGF0YV9maWxlcy9zZXJ2ZXIxLnJlcS5rZXlfdXNhZ2VfZW1wdHkiOk1CRURUTFNfTURfU0hBMTowOjE6MDowOjAKK3g1MDlfY3NyX2NoZWNrOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9zZXJ2ZXIxLmtleSI6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3NlcnZlcjEucmVxLmtleV91c2FnZV9lbXB0eSI6TUJFRFRMU19NRF9TSEExOjA6MTowOjA6MAogCiBDZXJ0aWZpY2F0ZSBSZXF1ZXN0IGNoZWNrIFNlcnZlcjEgbnNfY2VydF90eXBlCiBkZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTE6TUJFRFRMU19SU0FfQzpNQkVEVExTX1BLQ1MxX1YxNQoteDUwOV9jc3JfY2hlY2s6ImRhdGFfZmlsZXMvc2VydmVyMS5rZXkiOiJkYXRhX2ZpbGVzL3NlcnZlcjEucmVxLmNlcnRfdHlwZSI6TUJFRFRMU19NRF9TSEExOjA6MDpNQkVEVExTX1g1MDlfTlNfQ0VSVF9UWVBFX1NTTF9TRVJWRVI6MTowCit4NTA5X2Nzcl9jaGVjazoiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvc2VydmVyMS5rZXkiOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9zZXJ2ZXIxLnJlcS5jZXJ0X3R5cGUiOk1CRURUTFNfTURfU0hBMTowOjA6TUJFRFRMU19YNTA5X05TX0NFUlRfVFlQRV9TU0xfU0VSVkVSOjE6MAogCiBDZXJ0aWZpY2F0ZSBSZXF1ZXN0IGNoZWNrIFNlcnZlcjEgbnNfY2VydF90eXBlIGVtcHR5CiBkZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTE6TUJFRFRMU19SU0FfQzpNQkVEVExTX1BLQ1MxX1YxNQoteDUwOV9jc3JfY2hlY2s6ImRhdGFfZmlsZXMvc2VydmVyMS5rZXkiOiJkYXRhX2ZpbGVzL3NlcnZlcjEucmVxLmNlcnRfdHlwZV9lbXB0eSI6TUJFRFRMU19NRF9TSEExOjA6MDowOjE6MAoreDUwOV9jc3JfY2hlY2s6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3NlcnZlcjEua2V5IjoiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvc2VydmVyMS5yZXEuY2VydF90eXBlX2VtcHR5IjpNQkVEVExTX01EX1NIQTE6MDowOjA6MTowCiAKIENlcnRpZmljYXRlIFJlcXVlc3QgY2hlY2sgU2VydmVyMSBrZXlfdXNhZ2UgKyBuc19jZXJ0X3R5cGUKIGRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMTpNQkVEVExTX1JTQV9DOk1CRURUTFNfUEtDUzFfVjE1Ci14NTA5X2Nzcl9jaGVjazoiZGF0YV9maWxlcy9zZXJ2ZXIxLmtleSI6ImRhdGFfZmlsZXMvc2VydmVyMS5yZXEua3UtY3QiOk1CRURUTFNfTURfU0hBMTpNQkVEVExTX1g1MDlfS1VfRElHSVRBTF9TSUdOQVRVUkUgfCBNQkVEVExTX1g1MDlfS1VfTk9OX1JFUFVESUFUSU9OIHwgTUJFRFRMU19YNTA5X0tVX0tFWV9FTkNJUEhFUk1FTlQ6MTpNQkVEVExTX1g1MDlfTlNfQ0VSVF9UWVBFX1NTTF9TRVJWRVI6MTowCit4NTA5X2Nzcl9jaGVjazoiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvc2VydmVyMS5rZXkiOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9zZXJ2ZXIxLnJlcS5rdS1jdCI6TUJFRFRMU19NRF9TSEExOk1CRURUTFNfWDUwOV9LVV9ESUdJVEFMX1NJR05BVFVSRSB8IE1CRURUTFNfWDUwOV9LVV9OT05fUkVQVURJQVRJT04gfCBNQkVEVExTX1g1MDlfS1VfS0VZX0VOQ0lQSEVSTUVOVDoxOk1CRURUTFNfWDUwOV9OU19DRVJUX1RZUEVfU1NMX1NFUlZFUjoxOjAKIAogQ2VydGlmaWNhdGUgUmVxdWVzdCBjaGVjayBTZXJ2ZXI1IEVDRFNBLCBrZXlfdXNhZ2UKIGRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMTpNQkVEVExTX1BLX0NBTl9FQ0RTQV9TSUdOOk1CRURUTFNfRUNEU0FfREVURVJNSU5JU1RJQzpNQkVEVExTX0VDUF9IQVZFX1NFQ1AyNTZSMQoteDUwOV9jc3JfY2hlY2s6ImRhdGFfZmlsZXMvc2VydmVyNS5rZXkiOiJkYXRhX2ZpbGVzL3NlcnZlcjUucmVxLmt1LnNoYTEiOk1CRURUTFNfTURfU0hBMTpNQkVEVExTX1g1MDlfS1VfRElHSVRBTF9TSUdOQVRVUkUgfCBNQkVEVExTX1g1MDlfS1VfTk9OX1JFUFVESUFUSU9OOjE6MDowOjAKK3g1MDlfY3NyX2NoZWNrOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9zZXJ2ZXI1LmtleSI6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3NlcnZlcjUucmVxLmt1LnNoYTEiOk1CRURUTFNfTURfU0hBMTpNQkVEVExTX1g1MDlfS1VfRElHSVRBTF9TSUdOQVRVUkUgfCBNQkVEVExTX1g1MDlfS1VfTk9OX1JFUFVESUFUSU9OOjE6MDowOjAKIAogQ2VydGlmaWNhdGUgUmVxdWVzdCBjaGVjayBTZXJ2ZXIxLCBzZXRfZXh0ZW5zaW9uCi1kZXBlbmRzX29uOk1CRURUTFNfTURfQ0FOX1NIQTI1NjpNQkVEVExTX1JTQV9DOk1CRURUTFNfUEtDUzFfVjE1Ci14NTA5X2Nzcl9jaGVjazoiZGF0YV9maWxlcy9zZXJ2ZXIxLmtleSI6ImRhdGFfZmlsZXMvc2VydmVyMS5yZXEuc2hhMjU2LmV4dCI6TUJFRFRMU19NRF9TSEEyNTY6MDowOjA6MDoxCitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2Ok1CRURUTFNfUlNBX0M6TUJFRFRMU19QS0NTMV9WMTUKK3g1MDlfY3NyX2NoZWNrOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9zZXJ2ZXIxLmtleSI6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3NlcnZlcjEucmVxLnNoYTI1Ni5leHQiOk1CRURUTFNfTURfU0hBMjU2OjA6MDowOjA6MQogCiBDZXJ0aWZpY2F0ZSBSZXF1ZXN0IGNoZWNrIG9wYXF1ZSBTZXJ2ZXI1IEVDRFNBLCBrZXlfdXNhZ2UKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2Ok1CRURUTFNfUEtfQ0FOX0VDRFNBX1NJR046TUJFRFRMU19FQ1BfSEFWRV9TRUNQMjU2UjEKLXg1MDlfY3NyX2NoZWNrX29wYXF1ZToiZGF0YV9maWxlcy9zZXJ2ZXI1LmtleSI6TUJFRFRMU19NRF9TSEEyNTY6TUJFRFRMU19YNTA5X0tVX0RJR0lUQUxfU0lHTkFUVVJFIHwgTUJFRFRMU19YNTA5X0tVX05PTl9SRVBVRElBVElPTjowCitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2Ok1CRURUTFNfUEtfQ0FOX0VDRFNBX1NJR046TUJFRFRMU19FQ1BfSEFWRV9TRUNQMjU2UjEKK3g1MDlfY3NyX2NoZWNrX29wYXF1ZToiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvc2VydmVyNS5rZXkiOk1CRURUTFNfTURfU0hBMjU2Ok1CRURUTFNfWDUwOV9LVV9ESUdJVEFMX1NJR05BVFVSRSB8IE1CRURUTFNfWDUwOV9LVV9OT05fUkVQVURJQVRJT046MAogCiBDZXJ0aWZpY2F0ZSB3cml0ZSBjaGVjayBTZXJ2ZXIxIFNIQTEKIGRlcGVuZHNfb246TUJFRFRMU19SU0FfQzpNQkVEVExTX1BLQ1MxX1YxNTpNQkVEVExTX01EX0NBTl9NRDUKLXg1MDlfY3J0X2NoZWNrOiJkYXRhX2ZpbGVzL3NlcnZlcjEua2V5IjoiIjoiQz1OTCxPPVBvbGFyU1NMLENOPVBvbGFyU1NMIFNlcnZlciAxIjoiZGF0YV9maWxlcy90ZXN0LWNhX3VuZW5jLmtleSI6IlBvbGFyU1NMVGVzdCI6IkM9TkwsTz1Qb2xhclNTTCxDTj1Qb2xhclNTTCBUZXN0IENBIjoiMDEiOiIyMDE5MDIxMDE0NDQwNiI6IjIwMjkwMjEwMTQ0NDA2IjpNQkVEVExTX01EX1NIQTE6MDowOiJOVUxMIjowOjA6MTotMToiZGF0YV9maWxlcy9zZXJ2ZXIxLmNydCI6MDowOiJkYXRhX2ZpbGVzL3Rlc3QtY2EuY3J0IjowCit4NTA5X2NydF9jaGVjazoiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvc2VydmVyMS5rZXkiOiIiOiJDPU5MLE89UG9sYXJTU0wsQ049UG9sYXJTU0wgU2VydmVyIDEiOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy90ZXN0LWNhX3VuZW5jLmtleSI6IlBvbGFyU1NMVGVzdCI6IkM9TkwsTz1Qb2xhclNTTCxDTj1Qb2xhclNTTCBUZXN0IENBIjoiMDEiOiIyMDE5MDIxMDE0NDQwNiI6IjIwMjkwMjEwMTQ0NDA2IjpNQkVEVExTX01EX1NIQTE6MDowOiJOVUxMIjowOjA6MTotMToiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvc2VydmVyMS5jcnQiOjA6MDoiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvdGVzdC1jYS5jcnQiOjAKIAogQ2VydGlmaWNhdGUgd3JpdGUgY2hlY2sgU2VydmVyMSBTSEExLCBub3QgYmVmb3JlIDE5NzAKIGRlcGVuZHNfb246TUJFRFRMU19SU0FfQzpNQkVEVExTX1BLQ1MxX1YxNTpNQkVEVExTX01EX0NBTl9NRDUKLXg1MDlfY3J0X2NoZWNrOiJkYXRhX2ZpbGVzL3NlcnZlcjEua2V5IjoiIjoiQz1OTCxPPVBvbGFyU1NMLENOPVBvbGFyU1NMIFNlcnZlciAxIjoiZGF0YV9maWxlcy90ZXN0LWNhX3VuZW5jLmtleSI6IlBvbGFyU1NMVGVzdCI6IkM9TkwsTz1Qb2xhclNTTCxDTj1Qb2xhclNTTCBUZXN0IENBIjoiMDEiOiIxOTcwMDIxMDE0NDQwNiI6IjIwMjkwMjEwMTQ0NDA2IjpNQkVEVExTX01EX1NIQTE6MDowOiJOVUxMIjowOjA6MTotMToiIjowOjA6ImRhdGFfZmlsZXMvdGVzdC1jYS5jcnQiOjAKK3g1MDlfY3J0X2NoZWNrOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9zZXJ2ZXIxLmtleSI6IiI6IkM9TkwsTz1Qb2xhclNTTCxDTj1Qb2xhclNTTCBTZXJ2ZXIgMSI6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3Rlc3QtY2FfdW5lbmMua2V5IjoiUG9sYXJTU0xUZXN0IjoiQz1OTCxPPVBvbGFyU1NMLENOPVBvbGFyU1NMIFRlc3QgQ0EiOiIwMSI6IjE5NzAwMjEwMTQ0NDA2IjoiMjAyOTAyMTAxNDQ0MDYiOk1CRURUTFNfTURfU0hBMTowOjA6Ik5VTEwiOjA6MDoxOi0xOiIiOjA6MDoiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvdGVzdC1jYS5jcnQiOjAKIAogQ2VydGlmaWNhdGUgd3JpdGUgY2hlY2sgU2VydmVyMSBTSEExLCBub3QgYWZ0ZXIgMjA1MAogZGVwZW5kc19vbjpNQkVEVExTX1JTQV9DOk1CRURUTFNfUEtDUzFfVjE1Ok1CRURUTFNfTURfQ0FOX01ENQoteDUwOV9jcnRfY2hlY2s6ImRhdGFfZmlsZXMvc2VydmVyMS5rZXkiOiIiOiJDPU5MLE89UG9sYXJTU0wsQ049UG9sYXJTU0wgU2VydmVyIDEiOiJkYXRhX2ZpbGVzL3Rlc3QtY2FfdW5lbmMua2V5IjoiUG9sYXJTU0xUZXN0IjoiQz1OTCxPPVBvbGFyU1NMLENOPVBvbGFyU1NMIFRlc3QgQ0EiOiIwMSI6IjIwMTkwMjEwMTQ0NDA2IjoiMjA1MDAyMTAxNDQ0MDYiOk1CRURUTFNfTURfU0hBMTowOjA6Ik5VTEwiOjA6MDoxOi0xOiIiOjA6MDoiZGF0YV9maWxlcy90ZXN0LWNhLmNydCI6MAoreDUwOV9jcnRfY2hlY2s6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3NlcnZlcjEua2V5IjoiIjoiQz1OTCxPPVBvbGFyU1NMLENOPVBvbGFyU1NMIFNlcnZlciAxIjoiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvdGVzdC1jYV91bmVuYy5rZXkiOiJQb2xhclNTTFRlc3QiOiJDPU5MLE89UG9sYXJTU0wsQ049UG9sYXJTU0wgVGVzdCBDQSI6IjAxIjoiMjAxOTAyMTAxNDQ0MDYiOiIyMDUwMDIxMDE0NDQwNiI6TUJFRFRMU19NRF9TSEExOjA6MDoiTlVMTCI6MDowOjE6LTE6IiI6MDowOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy90ZXN0LWNhLmNydCI6MAogCiBDZXJ0aWZpY2F0ZSB3cml0ZSBjaGVjayBTZXJ2ZXIxIFNIQTEsIG5vdCBiZWZvcmUgMTk3MCwgbm90IGFmdGVyIDIwNTAKIGRlcGVuZHNfb246TUJFRFRMU19SU0FfQzpNQkVEVExTX1BLQ1MxX1YxNTpNQkVEVExTX01EX0NBTl9NRDUKLXg1MDlfY3J0X2NoZWNrOiJkYXRhX2ZpbGVzL3NlcnZlcjEua2V5IjoiIjoiQz1OTCxPPVBvbGFyU1NMLENOPVBvbGFyU1NMIFNlcnZlciAxIjoiZGF0YV9maWxlcy90ZXN0LWNhX3VuZW5jLmtleSI6IlBvbGFyU1NMVGVzdCI6IkM9TkwsTz1Qb2xhclNTTCxDTj1Qb2xhclNTTCBUZXN0IENBIjoiMDEiOiIxOTcwMDIxMDE0NDQwNiI6IjIwNTAwMjEwMTQ0NDA2IjpNQkVEVExTX01EX1NIQTE6MDowOiJOVUxMIjowOjA6MTotMToiIjowOjA6ImRhdGFfZmlsZXMvdGVzdC1jYS5jcnQiOjAKK3g1MDlfY3J0X2NoZWNrOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9zZXJ2ZXIxLmtleSI6IiI6IkM9TkwsTz1Qb2xhclNTTCxDTj1Qb2xhclNTTCBTZXJ2ZXIgMSI6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3Rlc3QtY2FfdW5lbmMua2V5IjoiUG9sYXJTU0xUZXN0IjoiQz1OTCxPPVBvbGFyU1NMLENOPVBvbGFyU1NMIFRlc3QgQ0EiOiIwMSI6IjE5NzAwMjEwMTQ0NDA2IjoiMjA1MDAyMTAxNDQ0MDYiOk1CRURUTFNfTURfU0hBMTowOjA6Ik5VTEwiOjA6MDoxOi0xOiIiOjA6MDoiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvdGVzdC1jYS5jcnQiOjAKIAogQ2VydGlmaWNhdGUgd3JpdGUgY2hlY2sgU2VydmVyMSBTSEExLCBub3QgYmVmb3JlIDIwNTAsIG5vdCBhZnRlciAyMDU5CiBkZXBlbmRzX29uOk1CRURUTFNfUlNBX0M6TUJFRFRMU19QS0NTMV9WMTU6TUJFRFRMU19NRF9DQU5fTUQ1Ci14NTA5X2NydF9jaGVjazoiZGF0YV9maWxlcy9zZXJ2ZXIxLmtleSI6IiI6IkM9TkwsTz1Qb2xhclNTTCxDTj1Qb2xhclNTTCBTZXJ2ZXIgMSI6ImRhdGFfZmlsZXMvdGVzdC1jYV91bmVuYy5rZXkiOiJQb2xhclNTTFRlc3QiOiJDPU5MLE89UG9sYXJTU0wsQ049UG9sYXJTU0wgVGVzdCBDQSI6IjAxIjoiMjA1MDAyMTAxNDQ0MDYiOiIyMDU5MDIxMDE0NDQwNiI6TUJFRFRMU19NRF9TSEExOjA6MDoiTlVMTCI6MDowOjE6LTE6IiI6MDowOiJkYXRhX2ZpbGVzL3Rlc3QtY2EuY3J0IjowCit4NTA5X2NydF9jaGVjazoiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvc2VydmVyMS5rZXkiOiIiOiJDPU5MLE89UG9sYXJTU0wsQ049UG9sYXJTU0wgU2VydmVyIDEiOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy90ZXN0LWNhX3VuZW5jLmtleSI6IlBvbGFyU1NMVGVzdCI6IkM9TkwsTz1Qb2xhclNTTCxDTj1Qb2xhclNTTCBUZXN0IENBIjoiMDEiOiIyMDUwMDIxMDE0NDQwNiI6IjIwNTkwMjEwMTQ0NDA2IjpNQkVEVExTX01EX1NIQTE6MDowOiJOVUxMIjowOjA6MTotMToiIjowOjA6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3Rlc3QtY2EuY3J0IjowCiAKIENlcnRpZmljYXRlIHdyaXRlIGNoZWNrIFNlcnZlcjEgU0hBMSwga2V5X3VzYWdlCiBkZXBlbmRzX29uOk1CRURUTFNfUlNBX0M6TUJFRFRMU19QS0NTMV9WMTU6TUJFRFRMU19NRF9DQU5fTUQ1Ci14NTA5X2NydF9jaGVjazoiZGF0YV9maWxlcy9zZXJ2ZXIxLmtleSI6IiI6IkM9TkwsTz1Qb2xhclNTTCxDTj1Qb2xhclNTTCBTZXJ2ZXIgMSI6ImRhdGFfZmlsZXMvdGVzdC1jYV91bmVuYy5rZXkiOiJQb2xhclNTTFRlc3QiOiJDPU5MLE89UG9sYXJTU0wsQ049UG9sYXJTU0wgVGVzdCBDQSI6IjAxIjoiMjAxOTAyMTAxNDQ0MDYiOiIyMDI5MDIxMDE0NDQwNiI6TUJFRFRMU19NRF9TSEExOk1CRURUTFNfWDUwOV9LVV9ESUdJVEFMX1NJR05BVFVSRSB8IE1CRURUTFNfWDUwOV9LVV9OT05fUkVQVURJQVRJT04gfCBNQkVEVExTX1g1MDlfS1VfS0VZX0VOQ0lQSEVSTUVOVDoxOiJOVUxMIjowOjA6MTotMToiZGF0YV9maWxlcy9zZXJ2ZXIxLmtleV91c2FnZS5jcnQiOjA6MDoiZGF0YV9maWxlcy90ZXN0LWNhLmNydCI6MAoreDUwOV9jcnRfY2hlY2s6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3NlcnZlcjEua2V5IjoiIjoiQz1OTCxPPVBvbGFyU1NMLENOPVBvbGFyU1NMIFNlcnZlciAxIjoiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvdGVzdC1jYV91bmVuYy5rZXkiOiJQb2xhclNTTFRlc3QiOiJDPU5MLE89UG9sYXJTU0wsQ049UG9sYXJTU0wgVGVzdCBDQSI6IjAxIjoiMjAxOTAyMTAxNDQ0MDYiOiIyMDI5MDIxMDE0NDQwNiI6TUJFRFRMU19NRF9TSEExOk1CRURUTFNfWDUwOV9LVV9ESUdJVEFMX1NJR05BVFVSRSB8IE1CRURUTFNfWDUwOV9LVV9OT05fUkVQVURJQVRJT04gfCBNQkVEVExTX1g1MDlfS1VfS0VZX0VOQ0lQSEVSTUVOVDoxOiJOVUxMIjowOjA6MTotMToiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvc2VydmVyMS5rZXlfdXNhZ2UuY3J0IjowOjA6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3Rlc3QtY2EuY3J0IjowCiAKIENlcnRpZmljYXRlIHdyaXRlIGNoZWNrIFNlcnZlcjEgU0hBMSwgb25lIGV4dF9rZXlfdXNhZ2UKIGRlcGVuZHNfb246TUJFRFRMU19SU0FfQzpNQkVEVExTX1BLQ1MxX1YxNTpNQkVEVExTX01EX0NBTl9NRDUKLXg1MDlfY3J0X2NoZWNrOiJkYXRhX2ZpbGVzL3NlcnZlcjEua2V5IjoiIjoiQz1OTCxPPVBvbGFyU1NMLENOPVBvbGFyU1NMIFNlcnZlciAxIjoiZGF0YV9maWxlcy90ZXN0LWNhX3VuZW5jLmtleSI6IlBvbGFyU1NMVGVzdCI6IkM9TkwsTz1Qb2xhclNTTCxDTj1Qb2xhclNTTCBUZXN0IENBIjoiMDEiOiIyMDExMDIxMjE0NDQwNiI6IjIwMjEwMjEyMTQ0NDA2IjpNQkVEVExTX01EX1NIQTE6MDowOiJzZXJ2ZXJBdXRoIjowOjA6MTotMToiZGF0YV9maWxlcy9zZXJ2ZXIxLmtleV9leHRfdXNhZ2UuY3J0IjowOjA6ImRhdGFfZmlsZXMvdGVzdC1jYS5jcnQiOjAKK3g1MDlfY3J0X2NoZWNrOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9zZXJ2ZXIxLmtleSI6IiI6IkM9TkwsTz1Qb2xhclNTTCxDTj1Qb2xhclNTTCBTZXJ2ZXIgMSI6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3Rlc3QtY2FfdW5lbmMua2V5IjoiUG9sYXJTU0xUZXN0IjoiQz1OTCxPPVBvbGFyU1NMLENOPVBvbGFyU1NMIFRlc3QgQ0EiOiIwMSI6IjIwMTEwMjEyMTQ0NDA2IjoiMjAyMTAyMTIxNDQ0MDYiOk1CRURUTFNfTURfU0hBMTowOjA6InNlcnZlckF1dGgiOjA6MDoxOi0xOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9zZXJ2ZXIxLmtleV9leHRfdXNhZ2UuY3J0IjowOjA6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3Rlc3QtY2EuY3J0IjowCiAKIENlcnRpZmljYXRlIHdyaXRlIGNoZWNrIFNlcnZlcjEgU0hBMSwgdHdvIGV4dF9rZXlfdXNhZ2VzCiBkZXBlbmRzX29uOk1CRURUTFNfUlNBX0M6TUJFRFRMU19QS0NTMV9WMTU6TUJFRFRMU19NRF9DQU5fTUQ1Ci14NTA5X2NydF9jaGVjazoiZGF0YV9maWxlcy9zZXJ2ZXIxLmtleSI6IiI6IkM9TkwsTz1Qb2xhclNTTCxDTj1Qb2xhclNTTCBTZXJ2ZXIgMSI6ImRhdGFfZmlsZXMvdGVzdC1jYV91bmVuYy5rZXkiOiJQb2xhclNTTFRlc3QiOiJDPU5MLE89UG9sYXJTU0wsQ049UG9sYXJTU0wgVGVzdCBDQSI6IjAxIjoiMjAxMTAyMTIxNDQ0MDYiOiIyMDIxMDIxMjE0NDQwNiI6TUJFRFRMU19NRF9TSEExOjA6MDoiY29kZVNpZ25pbmcsdGltZVN0YW1waW5nIjowOjA6MTotMToiZGF0YV9maWxlcy9zZXJ2ZXIxLmtleV9leHRfdXNhZ2VzLmNydCI6MDowOiJkYXRhX2ZpbGVzL3Rlc3QtY2EuY3J0IjowCit4NTA5X2NydF9jaGVjazoiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvc2VydmVyMS5rZXkiOiIiOiJDPU5MLE89UG9sYXJTU0wsQ049UG9sYXJTU0wgU2VydmVyIDEiOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy90ZXN0LWNhX3VuZW5jLmtleSI6IlBvbGFyU1NMVGVzdCI6IkM9TkwsTz1Qb2xhclNTTCxDTj1Qb2xhclNTTCBUZXN0IENBIjoiMDEiOiIyMDExMDIxMjE0NDQwNiI6IjIwMjEwMjEyMTQ0NDA2IjpNQkVEVExTX01EX1NIQTE6MDowOiJjb2RlU2lnbmluZyx0aW1lU3RhbXBpbmciOjA6MDoxOi0xOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9zZXJ2ZXIxLmtleV9leHRfdXNhZ2VzLmNydCI6MDowOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy90ZXN0LWNhLmNydCI6MAogCiBDZXJ0aWZpY2F0ZSB3cml0ZSBjaGVjayBTZXJ2ZXIxIFNIQTEsIG5zX2NlcnRfdHlwZQogZGVwZW5kc19vbjpNQkVEVExTX1JTQV9DOk1CRURUTFNfUEtDUzFfVjE1Ok1CRURUTFNfTURfQ0FOX01ENQoteDUwOV9jcnRfY2hlY2s6ImRhdGFfZmlsZXMvc2VydmVyMS5rZXkiOiIiOiJDPU5MLE89UG9sYXJTU0wsQ049UG9sYXJTU0wgU2VydmVyIDEiOiJkYXRhX2ZpbGVzL3Rlc3QtY2FfdW5lbmMua2V5IjoiUG9sYXJTU0xUZXN0IjoiQz1OTCxPPVBvbGFyU1NMLENOPVBvbGFyU1NMIFRlc3QgQ0EiOiIwMSI6IjIwMTkwMjEwMTQ0NDA2IjoiMjAyOTAyMTAxNDQ0MDYiOk1CRURUTFNfTURfU0hBMTowOjA6Ik5VTEwiOk1CRURUTFNfWDUwOV9OU19DRVJUX1RZUEVfU1NMX1NFUlZFUjoxOjE6LTE6ImRhdGFfZmlsZXMvc2VydmVyMS5jZXJ0X3R5cGUuY3J0IjowOjA6ImRhdGFfZmlsZXMvdGVzdC1jYS5jcnQiOjAKK3g1MDlfY3J0X2NoZWNrOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9zZXJ2ZXIxLmtleSI6IiI6IkM9TkwsTz1Qb2xhclNTTCxDTj1Qb2xhclNTTCBTZXJ2ZXIgMSI6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3Rlc3QtY2FfdW5lbmMua2V5IjoiUG9sYXJTU0xUZXN0IjoiQz1OTCxPPVBvbGFyU1NMLENOPVBvbGFyU1NMIFRlc3QgQ0EiOiIwMSI6IjIwMTkwMjEwMTQ0NDA2IjoiMjAyOTAyMTAxNDQ0MDYiOk1CRURUTFNfTURfU0hBMTowOjA6Ik5VTEwiOk1CRURUTFNfWDUwOV9OU19DRVJUX1RZUEVfU1NMX1NFUlZFUjoxOjE6LTE6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3NlcnZlcjEuY2VydF90eXBlLmNydCI6MDowOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy90ZXN0LWNhLmNydCI6MAogCiBDZXJ0aWZpY2F0ZSB3cml0ZSBjaGVjayBTZXJ2ZXIxIFNIQTEsIHZlcnNpb24gMQogZGVwZW5kc19vbjpNQkVEVExTX1JTQV9DOk1CRURUTFNfUEtDUzFfVjE1Ok1CRURUTFNfTURfQ0FOX01ENQoteDUwOV9jcnRfY2hlY2s6ImRhdGFfZmlsZXMvc2VydmVyMS5rZXkiOiIiOiJDPU5MLE89UG9sYXJTU0wsQ049UG9sYXJTU0wgU2VydmVyIDEiOiJkYXRhX2ZpbGVzL3Rlc3QtY2FfdW5lbmMua2V5IjoiUG9sYXJTU0xUZXN0IjoiQz1OTCxPPVBvbGFyU1NMLENOPVBvbGFyU1NMIFRlc3QgQ0EiOiIwMSI6IjIwMTkwMjEwMTQ0NDA2IjoiMjAyOTAyMTAxNDQ0MDYiOk1CRURUTFNfTURfU0hBMTowOjA6Ik5VTEwiOjA6MDoxOk1CRURUTFNfWDUwOV9DUlRfVkVSU0lPTl8xOiJkYXRhX2ZpbGVzL3NlcnZlcjEudjEuY3J0IjowOjA6ImRhdGFfZmlsZXMvdGVzdC1jYS5jcnQiOjAKK3g1MDlfY3J0X2NoZWNrOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9zZXJ2ZXIxLmtleSI6IiI6IkM9TkwsTz1Qb2xhclNTTCxDTj1Qb2xhclNTTCBTZXJ2ZXIgMSI6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3Rlc3QtY2FfdW5lbmMua2V5IjoiUG9sYXJTU0xUZXN0IjoiQz1OTCxPPVBvbGFyU1NMLENOPVBvbGFyU1NMIFRlc3QgQ0EiOiIwMSI6IjIwMTkwMjEwMTQ0NDA2IjoiMjAyOTAyMTAxNDQ0MDYiOk1CRURUTFNfTURfU0hBMTowOjA6Ik5VTEwiOjA6MDoxOk1CRURUTFNfWDUwOV9DUlRfVkVSU0lPTl8xOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9zZXJ2ZXIxLnYxLmNydCI6MDowOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy90ZXN0LWNhLmNydCI6MAogCiBDZXJ0aWZpY2F0ZSB3cml0ZSBjaGVjayBTZXJ2ZXIxIFNIQTEsIENBCiBkZXBlbmRzX29uOk1CRURUTFNfUlNBX0M6TUJFRFRMU19QS0NTMV9WMTU6TUJFRFRMU19NRF9DQU5fTUQ1Ci14NTA5X2NydF9jaGVjazoiZGF0YV9maWxlcy9zZXJ2ZXIxLmtleSI6IiI6IkM9TkwsTz1Qb2xhclNTTCxDTj1Qb2xhclNTTCBTZXJ2ZXIgMSI6ImRhdGFfZmlsZXMvdGVzdC1jYV91bmVuYy5rZXkiOiJQb2xhclNTTFRlc3QiOiJDPU5MLE89UG9sYXJTU0wsQ049UG9sYXJTU0wgVGVzdCBDQSI6IjAxIjoiMjAxOTAyMTAxNDQ0MDYiOiIyMDI5MDIxMDE0NDQwNiI6TUJFRFRMU19NRF9TSEExOjA6MDoiTlVMTCI6MDowOjE6LTE6ImRhdGFfZmlsZXMvc2VydmVyMS5jYS5jcnQiOjA6MToiZGF0YV9maWxlcy90ZXN0LWNhLmNydCI6MAoreDUwOV9jcnRfY2hlY2s6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3NlcnZlcjEua2V5IjoiIjoiQz1OTCxPPVBvbGFyU1NMLENOPVBvbGFyU1NMIFNlcnZlciAxIjoiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvdGVzdC1jYV91bmVuYy5rZXkiOiJQb2xhclNTTFRlc3QiOiJDPU5MLE89UG9sYXJTU0wsQ049UG9sYXJTU0wgVGVzdCBDQSI6IjAxIjoiMjAxOTAyMTAxNDQ0MDYiOiIyMDI5MDIxMDE0NDQwNiI6TUJFRFRMU19NRF9TSEExOjA6MDoiTlVMTCI6MDowOjE6LTE6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3NlcnZlcjEuY2EuY3J0IjowOjE6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3Rlc3QtY2EuY3J0IjowCiAKIENlcnRpZmljYXRlIHdyaXRlIGNoZWNrIFNlcnZlcjEgU0hBMSwgUlNBX0FMVAogZGVwZW5kc19vbjpNQkVEVExTX1JTQV9DOk1CRURUTFNfUEtDUzFfVjE1Ok1CRURUTFNfTURfQ0FOX01ENQoteDUwOV9jcnRfY2hlY2s6ImRhdGFfZmlsZXMvc2VydmVyMS5rZXkiOiIiOiJDPU5MLE89UG9sYXJTU0wsQ049UG9sYXJTU0wgU2VydmVyIDEiOiJkYXRhX2ZpbGVzL3Rlc3QtY2FfdW5lbmMua2V5IjoiUG9sYXJTU0xUZXN0IjoiQz1OTCxPPVBvbGFyU1NMLENOPVBvbGFyU1NMIFRlc3QgQ0EiOiIwMSI6IjIwMTkwMjEwMTQ0NDA2IjoiMjAyOTAyMTAxNDQ0MDYiOk1CRURUTFNfTURfU0hBMTowOjA6Ik5VTEwiOjA6MDowOi0xOiJkYXRhX2ZpbGVzL3NlcnZlcjEubm9hdXRoaWQuY3J0IjoxOjA6ImRhdGFfZmlsZXMvdGVzdC1jYS5jcnQiOjAKK3g1MDlfY3J0X2NoZWNrOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9zZXJ2ZXIxLmtleSI6IiI6IkM9TkwsTz1Qb2xhclNTTCxDTj1Qb2xhclNTTCBTZXJ2ZXIgMSI6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3Rlc3QtY2FfdW5lbmMua2V5IjoiUG9sYXJTU0xUZXN0IjoiQz1OTCxPPVBvbGFyU1NMLENOPVBvbGFyU1NMIFRlc3QgQ0EiOiIwMSI6IjIwMTkwMjEwMTQ0NDA2IjoiMjAyOTAyMTAxNDQ0MDYiOk1CRURUTFNfTURfU0hBMTowOjA6Ik5VTEwiOjA6MDowOi0xOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9zZXJ2ZXIxLm5vYXV0aGlkLmNydCI6MTowOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy90ZXN0LWNhLmNydCI6MAogCiBDZXJ0aWZpY2F0ZSB3cml0ZSBjaGVjayBTZXJ2ZXIxIFNIQTEsIFJTQV9BTFQsIGtleV91c2FnZQogZGVwZW5kc19vbjpNQkVEVExTX1JTQV9DOk1CRURUTFNfUEtDUzFfVjE1Ok1CRURUTFNfTURfQ0FOX01ENQoteDUwOV9jcnRfY2hlY2s6ImRhdGFfZmlsZXMvc2VydmVyMS5rZXkiOiIiOiJDPU5MLE89UG9sYXJTU0wsQ049UG9sYXJTU0wgU2VydmVyIDEiOiJkYXRhX2ZpbGVzL3Rlc3QtY2FfdW5lbmMua2V5IjoiUG9sYXJTU0xUZXN0IjoiQz1OTCxPPVBvbGFyU1NMLENOPVBvbGFyU1NMIFRlc3QgQ0EiOiIwMSI6IjIwMTkwMjEwMTQ0NDA2IjoiMjAyOTAyMTAxNDQ0MDYiOk1CRURUTFNfTURfU0hBMTpNQkVEVExTX1g1MDlfS1VfRElHSVRBTF9TSUdOQVRVUkUgfCBNQkVEVExTX1g1MDlfS1VfTk9OX1JFUFVESUFUSU9OIHwgTUJFRFRMU19YNTA5X0tVX0tFWV9FTkNJUEhFUk1FTlQ6MToiTlVMTCI6MDowOjA6LTE6ImRhdGFfZmlsZXMvc2VydmVyMS5rZXlfdXNhZ2Vfbm9hdXRoaWQuY3J0IjoxOjA6ImRhdGFfZmlsZXMvdGVzdC1jYS5jcnQiOjAKK3g1MDlfY3J0X2NoZWNrOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9zZXJ2ZXIxLmtleSI6IiI6IkM9TkwsTz1Qb2xhclNTTCxDTj1Qb2xhclNTTCBTZXJ2ZXIgMSI6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3Rlc3QtY2FfdW5lbmMua2V5IjoiUG9sYXJTU0xUZXN0IjoiQz1OTCxPPVBvbGFyU1NMLENOPVBvbGFyU1NMIFRlc3QgQ0EiOiIwMSI6IjIwMTkwMjEwMTQ0NDA2IjoiMjAyOTAyMTAxNDQ0MDYiOk1CRURUTFNfTURfU0hBMTpNQkVEVExTX1g1MDlfS1VfRElHSVRBTF9TSUdOQVRVUkUgfCBNQkVEVExTX1g1MDlfS1VfTk9OX1JFUFVESUFUSU9OIHwgTUJFRFRMU19YNTA5X0tVX0tFWV9FTkNJUEhFUk1FTlQ6MToiTlVMTCI6MDowOjA6LTE6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3NlcnZlcjEua2V5X3VzYWdlX25vYXV0aGlkLmNydCI6MTowOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy90ZXN0LWNhLmNydCI6MAogCiBDZXJ0aWZpY2F0ZSB3cml0ZSBjaGVjayBTZXJ2ZXIxIFNIQTEsIFJTQV9BTFQsIG5zX2NlcnRfdHlwZQogZGVwZW5kc19vbjpNQkVEVExTX1JTQV9DOk1CRURUTFNfUEtDUzFfVjE1Ok1CRURUTFNfTURfQ0FOX01ENQoteDUwOV9jcnRfY2hlY2s6ImRhdGFfZmlsZXMvc2VydmVyMS5rZXkiOiIiOiJDPU5MLE89UG9sYXJTU0wsQ049UG9sYXJTU0wgU2VydmVyIDEiOiJkYXRhX2ZpbGVzL3Rlc3QtY2FfdW5lbmMua2V5IjoiUG9sYXJTU0xUZXN0IjoiQz1OTCxPPVBvbGFyU1NMLENOPVBvbGFyU1NMIFRlc3QgQ0EiOiIwMSI6IjIwMTkwMjEwMTQ0NDA2IjoiMjAyOTAyMTAxNDQ0MDYiOk1CRURUTFNfTURfU0hBMTowOjA6Ik5VTEwiOk1CRURUTFNfWDUwOV9OU19DRVJUX1RZUEVfU1NMX1NFUlZFUjoxOjA6LTE6ImRhdGFfZmlsZXMvc2VydmVyMS5jZXJ0X3R5cGVfbm9hdXRoaWQuY3J0IjoxOjA6ImRhdGFfZmlsZXMvdGVzdC1jYS5jcnQiOjAKK3g1MDlfY3J0X2NoZWNrOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9zZXJ2ZXIxLmtleSI6IiI6IkM9TkwsTz1Qb2xhclNTTCxDTj1Qb2xhclNTTCBTZXJ2ZXIgMSI6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3Rlc3QtY2FfdW5lbmMua2V5IjoiUG9sYXJTU0xUZXN0IjoiQz1OTCxPPVBvbGFyU1NMLENOPVBvbGFyU1NMIFRlc3QgQ0EiOiIwMSI6IjIwMTkwMjEwMTQ0NDA2IjoiMjAyOTAyMTAxNDQ0MDYiOk1CRURUTFNfTURfU0hBMTowOjA6Ik5VTEwiOk1CRURUTFNfWDUwOV9OU19DRVJUX1RZUEVfU1NMX1NFUlZFUjoxOjA6LTE6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3NlcnZlcjEuY2VydF90eXBlX25vYXV0aGlkLmNydCI6MTowOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy90ZXN0LWNhLmNydCI6MAogCiBDZXJ0aWZpY2F0ZSB3cml0ZSBjaGVjayBTZXJ2ZXIxIFNIQTEsIFJTQV9BTFQsIHZlcnNpb24gMQogZGVwZW5kc19vbjpNQkVEVExTX1JTQV9DOk1CRURUTFNfUEtDUzFfVjE1Ok1CRURUTFNfTURfQ0FOX01ENQoteDUwOV9jcnRfY2hlY2s6ImRhdGFfZmlsZXMvc2VydmVyMS5rZXkiOiIiOiJDPU5MLE89UG9sYXJTU0wsQ049UG9sYXJTU0wgU2VydmVyIDEiOiJkYXRhX2ZpbGVzL3Rlc3QtY2FfdW5lbmMua2V5IjoiUG9sYXJTU0xUZXN0IjoiQz1OTCxPPVBvbGFyU1NMLENOPVBvbGFyU1NMIFRlc3QgQ0EiOiIwMSI6IjIwMTkwMjEwMTQ0NDA2IjoiMjAyOTAyMTAxNDQ0MDYiOk1CRURUTFNfTURfU0hBMTowOjA6Ik5VTEwiOjA6MDowOk1CRURUTFNfWDUwOV9DUlRfVkVSU0lPTl8xOiJkYXRhX2ZpbGVzL3NlcnZlcjEudjEuY3J0IjoxOjA6ImRhdGFfZmlsZXMvdGVzdC1jYS5jcnQiOjAKK3g1MDlfY3J0X2NoZWNrOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9zZXJ2ZXIxLmtleSI6IiI6IkM9TkwsTz1Qb2xhclNTTCxDTj1Qb2xhclNTTCBTZXJ2ZXIgMSI6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3Rlc3QtY2FfdW5lbmMua2V5IjoiUG9sYXJTU0xUZXN0IjoiQz1OTCxPPVBvbGFyU1NMLENOPVBvbGFyU1NMIFRlc3QgQ0EiOiIwMSI6IjIwMTkwMjEwMTQ0NDA2IjoiMjAyOTAyMTAxNDQ0MDYiOk1CRURUTFNfTURfU0hBMTowOjA6Ik5VTEwiOjA6MDowOk1CRURUTFNfWDUwOV9DUlRfVkVSU0lPTl8xOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9zZXJ2ZXIxLnYxLmNydCI6MTowOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy90ZXN0LWNhLmNydCI6MAogCiBDZXJ0aWZpY2F0ZSB3cml0ZSBjaGVjayBTZXJ2ZXIxIFNIQTEsIFJTQV9BTFQsIENBCiBkZXBlbmRzX29uOk1CRURUTFNfUlNBX0M6TUJFRFRMU19QS0NTMV9WMTU6TUJFRFRMU19NRF9DQU5fTUQ1Ci14NTA5X2NydF9jaGVjazoiZGF0YV9maWxlcy9zZXJ2ZXIxLmtleSI6IiI6IkM9TkwsTz1Qb2xhclNTTCxDTj1Qb2xhclNTTCBTZXJ2ZXIgMSI6ImRhdGFfZmlsZXMvdGVzdC1jYV91bmVuYy5rZXkiOiJQb2xhclNTTFRlc3QiOiJDPU5MLE89UG9sYXJTU0wsQ049UG9sYXJTU0wgVGVzdCBDQSI6IjAxIjoiMjAxOTAyMTAxNDQ0MDYiOiIyMDI5MDIxMDE0NDQwNiI6TUJFRFRMU19NRF9TSEExOjA6MDoiTlVMTCI6MDowOjA6LTE6ImRhdGFfZmlsZXMvc2VydmVyMS5jYV9ub2F1dGhpZC5jcnQiOjE6MToiZGF0YV9maWxlcy90ZXN0LWNhLmNydCI6MAoreDUwOV9jcnRfY2hlY2s6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3NlcnZlcjEua2V5IjoiIjoiQz1OTCxPPVBvbGFyU1NMLENOPVBvbGFyU1NMIFNlcnZlciAxIjoiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvdGVzdC1jYV91bmVuYy5rZXkiOiJQb2xhclNTTFRlc3QiOiJDPU5MLE89UG9sYXJTU0wsQ049UG9sYXJTU0wgVGVzdCBDQSI6IjAxIjoiMjAxOTAyMTAxNDQ0MDYiOiIyMDI5MDIxMDE0NDQwNiI6TUJFRFRMU19NRF9TSEExOjA6MDoiTlVMTCI6MDowOjA6LTE6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3NlcnZlcjEuY2Ffbm9hdXRoaWQuY3J0IjoxOjE6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3Rlc3QtY2EuY3J0IjowCiAKIENlcnRpZmljYXRlIHdyaXRlIGNoZWNrIFNlcnZlcjEgU0hBMSwgT3BhcXVlCiBkZXBlbmRzX29uOk1CRURUTFNfUlNBX0M6TUJFRFRMU19QS0NTMV9WMTU6TUJFRFRMU19NRF9DQU5fTUQ1Ok1CRURUTFNfVVNFX1BTQV9DUllQVE8KLXg1MDlfY3J0X2NoZWNrOiJkYXRhX2ZpbGVzL3NlcnZlcjEua2V5IjoiIjoiQz1OTCxPPVBvbGFyU1NMLENOPVBvbGFyU1NMIFNlcnZlciAxIjoiZGF0YV9maWxlcy90ZXN0LWNhX3VuZW5jLmtleSI6IlBvbGFyU1NMVGVzdCI6IkM9TkwsTz1Qb2xhclNTTCxDTj1Qb2xhclNTTCBUZXN0IENBIjoiMDEiOiIyMDE5MDIxMDE0NDQwNiI6IjIwMjkwMjEwMTQ0NDA2IjpNQkVEVExTX01EX1NIQTE6MDowOiJOVUxMIjowOjA6MTotMToiZGF0YV9maWxlcy9zZXJ2ZXIxLmNydCI6MjowOiJkYXRhX2ZpbGVzL3Rlc3QtY2EuY3J0IjowCit4NTA5X2NydF9jaGVjazoiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvc2VydmVyMS5rZXkiOiIiOiJDPU5MLE89UG9sYXJTU0wsQ049UG9sYXJTU0wgU2VydmVyIDEiOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy90ZXN0LWNhX3VuZW5jLmtleSI6IlBvbGFyU1NMVGVzdCI6IkM9TkwsTz1Qb2xhclNTTCxDTj1Qb2xhclNTTCBUZXN0IENBIjoiMDEiOiIyMDE5MDIxMDE0NDQwNiI6IjIwMjkwMjEwMTQ0NDA2IjpNQkVEVExTX01EX1NIQTE6MDowOiJOVUxMIjowOjA6MTotMToiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvc2VydmVyMS5jcnQiOjI6MDoiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvdGVzdC1jYS5jcnQiOjAKIAogQ2VydGlmaWNhdGUgd3JpdGUgY2hlY2sgU2VydmVyMSBTSEExLCBPcGFxdWUsIGtleV91c2FnZQogZGVwZW5kc19vbjpNQkVEVExTX1JTQV9DOk1CRURUTFNfUEtDUzFfVjE1Ok1CRURUTFNfTURfQ0FOX01ENTpNQkVEVExTX1VTRV9QU0FfQ1JZUFRPCi14NTA5X2NydF9jaGVjazoiZGF0YV9maWxlcy9zZXJ2ZXIxLmtleSI6IiI6IkM9TkwsTz1Qb2xhclNTTCxDTj1Qb2xhclNTTCBTZXJ2ZXIgMSI6ImRhdGFfZmlsZXMvdGVzdC1jYV91bmVuYy5rZXkiOiJQb2xhclNTTFRlc3QiOiJDPU5MLE89UG9sYXJTU0wsQ049UG9sYXJTU0wgVGVzdCBDQSI6IjAxIjoiMjAxOTAyMTAxNDQ0MDYiOiIyMDI5MDIxMDE0NDQwNiI6TUJFRFRMU19NRF9TSEExOk1CRURUTFNfWDUwOV9LVV9ESUdJVEFMX1NJR05BVFVSRSB8IE1CRURUTFNfWDUwOV9LVV9OT05fUkVQVURJQVRJT04gfCBNQkVEVExTX1g1MDlfS1VfS0VZX0VOQ0lQSEVSTUVOVDoxOiJOVUxMIjowOjA6MTotMToiZGF0YV9maWxlcy9zZXJ2ZXIxLmtleV91c2FnZS5jcnQiOjI6MDoiZGF0YV9maWxlcy90ZXN0LWNhLmNydCI6MAoreDUwOV9jcnRfY2hlY2s6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3NlcnZlcjEua2V5IjoiIjoiQz1OTCxPPVBvbGFyU1NMLENOPVBvbGFyU1NMIFNlcnZlciAxIjoiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvdGVzdC1jYV91bmVuYy5rZXkiOiJQb2xhclNTTFRlc3QiOiJDPU5MLE89UG9sYXJTU0wsQ049UG9sYXJTU0wgVGVzdCBDQSI6IjAxIjoiMjAxOTAyMTAxNDQ0MDYiOiIyMDI5MDIxMDE0NDQwNiI6TUJFRFRMU19NRF9TSEExOk1CRURUTFNfWDUwOV9LVV9ESUdJVEFMX1NJR05BVFVSRSB8IE1CRURUTFNfWDUwOV9LVV9OT05fUkVQVURJQVRJT04gfCBNQkVEVExTX1g1MDlfS1VfS0VZX0VOQ0lQSEVSTUVOVDoxOiJOVUxMIjowOjA6MTotMToiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvc2VydmVyMS5rZXlfdXNhZ2UuY3J0IjoyOjA6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3Rlc3QtY2EuY3J0IjowCiAKIENlcnRpZmljYXRlIHdyaXRlIGNoZWNrIFNlcnZlcjEgU0hBMSwgT3BhcXVlLCBuc19jZXJ0X3R5cGUKIGRlcGVuZHNfb246TUJFRFRMU19SU0FfQzpNQkVEVExTX1BLQ1MxX1YxNTpNQkVEVExTX01EX0NBTl9NRDU6TUJFRFRMU19VU0VfUFNBX0NSWVBUTwoteDUwOV9jcnRfY2hlY2s6ImRhdGFfZmlsZXMvc2VydmVyMS5rZXkiOiIiOiJDPU5MLE89UG9sYXJTU0wsQ049UG9sYXJTU0wgU2VydmVyIDEiOiJkYXRhX2ZpbGVzL3Rlc3QtY2FfdW5lbmMua2V5IjoiUG9sYXJTU0xUZXN0IjoiQz1OTCxPPVBvbGFyU1NMLENOPVBvbGFyU1NMIFRlc3QgQ0EiOiIwMSI6IjIwMTkwMjEwMTQ0NDA2IjoiMjAyOTAyMTAxNDQ0MDYiOk1CRURUTFNfTURfU0hBMTowOjA6Ik5VTEwiOk1CRURUTFNfWDUwOV9OU19DRVJUX1RZUEVfU1NMX1NFUlZFUjoxOjE6LTE6ImRhdGFfZmlsZXMvc2VydmVyMS5jZXJ0X3R5cGUuY3J0IjoyOjA6ImRhdGFfZmlsZXMvdGVzdC1jYS5jcnQiOjAKK3g1MDlfY3J0X2NoZWNrOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9zZXJ2ZXIxLmtleSI6IiI6IkM9TkwsTz1Qb2xhclNTTCxDTj1Qb2xhclNTTCBTZXJ2ZXIgMSI6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3Rlc3QtY2FfdW5lbmMua2V5IjoiUG9sYXJTU0xUZXN0IjoiQz1OTCxPPVBvbGFyU1NMLENOPVBvbGFyU1NMIFRlc3QgQ0EiOiIwMSI6IjIwMTkwMjEwMTQ0NDA2IjoiMjAyOTAyMTAxNDQ0MDYiOk1CRURUTFNfTURfU0hBMTowOjA6Ik5VTEwiOk1CRURUTFNfWDUwOV9OU19DRVJUX1RZUEVfU1NMX1NFUlZFUjoxOjE6LTE6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3NlcnZlcjEuY2VydF90eXBlLmNydCI6MjowOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy90ZXN0LWNhLmNydCI6MAogCiBDZXJ0aWZpY2F0ZSB3cml0ZSBjaGVjayBTZXJ2ZXIxIFNIQTEsIE9wYXF1ZSwgdmVyc2lvbiAxCiBkZXBlbmRzX29uOk1CRURUTFNfUlNBX0M6TUJFRFRMU19QS0NTMV9WMTU6TUJFRFRMU19NRF9DQU5fTUQ1Ok1CRURUTFNfVVNFX1BTQV9DUllQVE8KLXg1MDlfY3J0X2NoZWNrOiJkYXRhX2ZpbGVzL3NlcnZlcjEua2V5IjoiIjoiQz1OTCxPPVBvbGFyU1NMLENOPVBvbGFyU1NMIFNlcnZlciAxIjoiZGF0YV9maWxlcy90ZXN0LWNhX3VuZW5jLmtleSI6IlBvbGFyU1NMVGVzdCI6IkM9TkwsTz1Qb2xhclNTTCxDTj1Qb2xhclNTTCBUZXN0IENBIjoiMDEiOiIyMDE5MDIxMDE0NDQwNiI6IjIwMjkwMjEwMTQ0NDA2IjpNQkVEVExTX01EX1NIQTE6MDowOiJOVUxMIjowOjA6MTpNQkVEVExTX1g1MDlfQ1JUX1ZFUlNJT05fMToiZGF0YV9maWxlcy9zZXJ2ZXIxLnYxLmNydCI6MjowOiJkYXRhX2ZpbGVzL3Rlc3QtY2EuY3J0IjowCit4NTA5X2NydF9jaGVjazoiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvc2VydmVyMS5rZXkiOiIiOiJDPU5MLE89UG9sYXJTU0wsQ049UG9sYXJTU0wgU2VydmVyIDEiOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy90ZXN0LWNhX3VuZW5jLmtleSI6IlBvbGFyU1NMVGVzdCI6IkM9TkwsTz1Qb2xhclNTTCxDTj1Qb2xhclNTTCBUZXN0IENBIjoiMDEiOiIyMDE5MDIxMDE0NDQwNiI6IjIwMjkwMjEwMTQ0NDA2IjpNQkVEVExTX01EX1NIQTE6MDowOiJOVUxMIjowOjA6MTpNQkVEVExTX1g1MDlfQ1JUX1ZFUlNJT05fMToiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvc2VydmVyMS52MS5jcnQiOjI6MDoiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvdGVzdC1jYS5jcnQiOjAKIAogQ2VydGlmaWNhdGUgd3JpdGUgY2hlY2sgU2VydmVyMSBTSEExLCBPcGFxdWUsIENBCiBkZXBlbmRzX29uOk1CRURUTFNfUlNBX0M6TUJFRFRMU19QS0NTMV9WMTU6TUJFRFRMU19NRF9DQU5fTUQ1Ok1CRURUTFNfVVNFX1BTQV9DUllQVE8KLXg1MDlfY3J0X2NoZWNrOiJkYXRhX2ZpbGVzL3NlcnZlcjEua2V5IjoiIjoiQz1OTCxPPVBvbGFyU1NMLENOPVBvbGFyU1NMIFNlcnZlciAxIjoiZGF0YV9maWxlcy90ZXN0LWNhX3VuZW5jLmtleSI6IlBvbGFyU1NMVGVzdCI6IkM9TkwsTz1Qb2xhclNTTCxDTj1Qb2xhclNTTCBUZXN0IENBIjoiMDEiOiIyMDE5MDIxMDE0NDQwNiI6IjIwMjkwMjEwMTQ0NDA2IjpNQkVEVExTX01EX1NIQTE6MDowOiJOVUxMIjowOjA6MTotMToiZGF0YV9maWxlcy9zZXJ2ZXIxLmNhLmNydCI6MjoxOiJkYXRhX2ZpbGVzL3Rlc3QtY2EuY3J0IjowCit4NTA5X2NydF9jaGVjazoiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvc2VydmVyMS5rZXkiOiIiOiJDPU5MLE89UG9sYXJTU0wsQ049UG9sYXJTU0wgU2VydmVyIDEiOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy90ZXN0LWNhX3VuZW5jLmtleSI6IlBvbGFyU1NMVGVzdCI6IkM9TkwsTz1Qb2xhclNTTCxDTj1Qb2xhclNTTCBUZXN0IENBIjoiMDEiOiIyMDE5MDIxMDE0NDQwNiI6IjIwMjkwMjEwMTQ0NDA2IjpNQkVEVExTX01EX1NIQTE6MDowOiJOVUxMIjowOjA6MTotMToiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvc2VydmVyMS5jYS5jcnQiOjI6MToiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvdGVzdC1jYS5jcnQiOjAKIAogQ2VydGlmaWNhdGUgd3JpdGUgY2hlY2sgU2VydmVyMSBTSEExLCBGdWxsIGxlbmd0aCBzZXJpYWwKIGRlcGVuZHNfb246TUJFRFRMU19SU0FfQzpNQkVEVExTX1BLQ1MxX1YxNTpNQkVEVExTX01EX0NBTl9NRDUKLXg1MDlfY3J0X2NoZWNrOiJkYXRhX2ZpbGVzL3NlcnZlcjEua2V5IjoiIjoiQz1OTCxPPVBvbGFyU1NMLENOPVBvbGFyU1NMIFNlcnZlciAxIjoiZGF0YV9maWxlcy90ZXN0LWNhX3VuZW5jLmtleSI6IlBvbGFyU1NMVGVzdCI6IkM9TkwsTz1Qb2xhclNTTCxDTj1Qb2xhclNTTCBUZXN0IENBIjoiMTEyMjMzNDQ1NTY2Nzc4ODk5YWFiYmNjZGRlZWZmMDAxMTIyMzM0NCI6IjIwMTkwMjEwMTQ0NDA2IjoiMjAyOTAyMTAxNDQ0MDYiOk1CRURUTFNfTURfU0hBMTowOjA6Ik5VTEwiOjA6MDoxOi0xOiJkYXRhX2ZpbGVzL3NlcnZlcjEubG9uZ19zZXJpYWwuY3J0IjowOjA6ImRhdGFfZmlsZXMvdGVzdC1jYS5jcnQiOjAKK3g1MDlfY3J0X2NoZWNrOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9zZXJ2ZXIxLmtleSI6IiI6IkM9TkwsTz1Qb2xhclNTTCxDTj1Qb2xhclNTTCBTZXJ2ZXIgMSI6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3Rlc3QtY2FfdW5lbmMua2V5IjoiUG9sYXJTU0xUZXN0IjoiQz1OTCxPPVBvbGFyU1NMLENOPVBvbGFyU1NMIFRlc3QgQ0EiOiIxMTIyMzM0NDU1NjY3Nzg4OTlhYWJiY2NkZGVlZmYwMDExMjIzMzQ0IjoiMjAxOTAyMTAxNDQ0MDYiOiIyMDI5MDIxMDE0NDQwNiI6TUJFRFRMU19NRF9TSEExOjA6MDoiTlVMTCI6MDowOjE6LTE6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3NlcnZlcjEubG9uZ19zZXJpYWwuY3J0IjowOjA6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3Rlc3QtY2EuY3J0IjowCiAKIENlcnRpZmljYXRlIHdyaXRlIGNoZWNrIFNlcnZlcjEgU0hBMSwgU2VyaWFsIHN0YXJ0aW5nIHdpdGggMHg4MAogZGVwZW5kc19vbjpNQkVEVExTX1JTQV9DOk1CRURUTFNfUEtDUzFfVjE1Ok1CRURUTFNfTURfQ0FOX01ENQoteDUwOV9jcnRfY2hlY2s6ImRhdGFfZmlsZXMvc2VydmVyMS5rZXkiOiIiOiJDPU5MLE89UG9sYXJTU0wsQ049UG9sYXJTU0wgU2VydmVyIDEiOiJkYXRhX2ZpbGVzL3Rlc3QtY2FfdW5lbmMua2V5IjoiUG9sYXJTU0xUZXN0IjoiQz1OTCxPPVBvbGFyU1NMLENOPVBvbGFyU1NMIFRlc3QgQ0EiOiI4MDExMjIzMzQ0IjoiMjAxOTAyMTAxNDQ0MDYiOiIyMDI5MDIxMDE0NDQwNiI6TUJFRFRMU19NRF9TSEExOjA6MDoiTlVMTCI6MDowOjE6LTE6ImRhdGFfZmlsZXMvc2VydmVyMS44MHNlcmlhbC5jcnQiOjA6MDoiZGF0YV9maWxlcy90ZXN0LWNhLmNydCI6MAoreDUwOV9jcnRfY2hlY2s6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3NlcnZlcjEua2V5IjoiIjoiQz1OTCxPPVBvbGFyU1NMLENOPVBvbGFyU1NMIFNlcnZlciAxIjoiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvdGVzdC1jYV91bmVuYy5rZXkiOiJQb2xhclNTTFRlc3QiOiJDPU5MLE89UG9sYXJTU0wsQ049UG9sYXJTU0wgVGVzdCBDQSI6IjgwMTEyMjMzNDQiOiIyMDE5MDIxMDE0NDQwNiI6IjIwMjkwMjEwMTQ0NDA2IjpNQkVEVExTX01EX1NIQTE6MDowOiJOVUxMIjowOjA6MTotMToiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvc2VydmVyMS44MHNlcmlhbC5jcnQiOjA6MDoiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvdGVzdC1jYS5jcnQiOjAKIAogQ2VydGlmaWNhdGUgd3JpdGUgY2hlY2sgU2VydmVyMSBTSEExLCBBbGwgMHhGRiBmdWxsIGxlbmd0aCBzZXJpYWwKIGRlcGVuZHNfb246TUJFRFRMU19SU0FfQzpNQkVEVExTX1BLQ1MxX1YxNTpNQkVEVExTX01EX0NBTl9NRDUKLXg1MDlfY3J0X2NoZWNrOiJkYXRhX2ZpbGVzL3NlcnZlcjEua2V5IjoiIjoiQz1OTCxPPVBvbGFyU1NMLENOPVBvbGFyU1NMIFNlcnZlciAxIjoiZGF0YV9maWxlcy90ZXN0LWNhX3VuZW5jLmtleSI6IlBvbGFyU1NMVGVzdCI6IkM9TkwsTz1Qb2xhclNTTCxDTj1Qb2xhclNTTCBUZXN0IENBIjoiZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYiOiIyMDE5MDIxMDE0NDQwNiI6IjIwMjkwMjEwMTQ0NDA2IjpNQkVEVExTX01EX1NIQTE6MDowOiJOVUxMIjowOjA6MTotMToiZGF0YV9maWxlcy9zZXJ2ZXIxLmxvbmdfc2VyaWFsX0ZGLmNydCI6MDowOiJkYXRhX2ZpbGVzL3Rlc3QtY2EuY3J0IjowCit4NTA5X2NydF9jaGVjazoiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvc2VydmVyMS5rZXkiOiIiOiJDPU5MLE89UG9sYXJTU0wsQ049UG9sYXJTU0wgU2VydmVyIDEiOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy90ZXN0LWNhX3VuZW5jLmtleSI6IlBvbGFyU1NMVGVzdCI6IkM9TkwsTz1Qb2xhclNTTCxDTj1Qb2xhclNTTCBUZXN0IENBIjoiZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYiOiIyMDE5MDIxMDE0NDQwNiI6IjIwMjkwMjEwMTQ0NDA2IjpNQkVEVExTX01EX1NIQTE6MDowOiJOVUxMIjowOjA6MTotMToiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvc2VydmVyMS5sb25nX3NlcmlhbF9GRi5jcnQiOjA6MDoiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvdGVzdC1jYS5jcnQiOjAKIAogQ2VydGlmaWNhdGUgd3JpdGUgY2hlY2sgU2VydmVyNSBFQ0RTQQotZGVwZW5kc19vbjpNQkVEVExTX01EX0NBTl9TSEEyNTY6TUJFRFRMU19QS19DQU5fRUNEU0FfU0lHTjpNQkVEVExTX0VDRFNBX0RFVEVSTUlOSVNUSUM6TUJFRFRMU19FQ1BfSEFWRV9TRUNQMzg0UjE6TUJFRFRMU19FQ1BfSEFWRV9TRUNQMjU2UjEKLXg1MDlfY3J0X2NoZWNrOiJkYXRhX2ZpbGVzL3NlcnZlcjUua2V5IjoiIjoiQz1OTCxPPVBvbGFyU1NMLENOPVBvbGFyU1NMIFNlcnZlciAxIjoiZGF0YV9maWxlcy90ZXN0LWNhMi5rZXkiOiJQb2xhclNTTFRlc3QiOiJDPU5MLE89UG9sYXJTU0wsQ049UG9sYXJzc2wgVGVzdCBFQyBDQSI6IjAxIjoiMjAxOTAyMTAxNDQ0MDYiOiIyMDI5MDIxMDE0NDQwNiI6TUJFRFRMU19NRF9TSEEyNTY6MDowOiJOVUxMIjowOjA6MTotMToiZGF0YV9maWxlcy9zZXJ2ZXI1LmNydCI6MDowOiJkYXRhX2ZpbGVzL3Rlc3QtY2EyLmNydCI6MAorZGVwZW5kc19vbjpQU0FfV0FOVF9BTEdfU0hBXzI1NjpNQkVEVExTX1BLX0NBTl9FQ0RTQV9TSUdOOk1CRURUTFNfRUNEU0FfREVURVJNSU5JU1RJQzpNQkVEVExTX0VDUF9IQVZFX1NFQ1AzODRSMTpNQkVEVExTX0VDUF9IQVZFX1NFQ1AyNTZSMQoreDUwOV9jcnRfY2hlY2s6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3NlcnZlcjUua2V5IjoiIjoiQz1OTCxPPVBvbGFyU1NMLENOPVBvbGFyU1NMIFNlcnZlciAxIjoiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvdGVzdC1jYTIua2V5IjoiUG9sYXJTU0xUZXN0IjoiQz1OTCxPPVBvbGFyU1NMLENOPVBvbGFyc3NsIFRlc3QgRUMgQ0EiOiIwMSI6IjIwMTkwMjEwMTQ0NDA2IjoiMjAyOTAyMTAxNDQ0MDYiOk1CRURUTFNfTURfU0hBMjU2OjA6MDoiTlVMTCI6MDowOjE6LTE6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3NlcnZlcjUuY3J0IjowOjA6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3Rlc3QtY2EyLmNydCI6MAogCiBDZXJ0aWZpY2F0ZSB3cml0ZSBjaGVjayBTZXJ2ZXI1IEVDRFNBLCBPcGFxdWUKLWRlcGVuZHNfb246TUJFRFRMU19NRF9DQU5fU0hBMjU2Ok1CRURUTFNfUEtfQ0FOX0VDRFNBX1NJR046TUJFRFRMU19FQ0RTQV9ERVRFUk1JTklTVElDOk1CRURUTFNfRUNQX0hBVkVfU0VDUDM4NFIxOk1CRURUTFNfRUNQX0hBVkVfU0VDUDI1NlIxOk1CRURUTFNfVVNFX1BTQV9DUllQVE8KLXg1MDlfY3J0X2NoZWNrOiJkYXRhX2ZpbGVzL3NlcnZlcjUua2V5IjoiIjoiQz1OTCxPPVBvbGFyU1NMLENOPVBvbGFyU1NMIFNlcnZlciAxIjoiZGF0YV9maWxlcy90ZXN0LWNhMi5rZXkiOiJQb2xhclNTTFRlc3QiOiJDPU5MLE89UG9sYXJTU0wsQ049UG9sYXJzc2wgVGVzdCBFQyBDQSI6IjAxIjoiMjAxOTAyMTAxNDQ0MDYiOiIyMDI5MDIxMDE0NDQwNiI6TUJFRFRMU19NRF9TSEEyNTY6MDowOiJOVUxMIjowOjA6MTotMToiIjoyOjA6ImRhdGFfZmlsZXMvdGVzdC1jYTIuY3J0IjowCitkZXBlbmRzX29uOlBTQV9XQU5UX0FMR19TSEFfMjU2Ok1CRURUTFNfUEtfQ0FOX0VDRFNBX1NJR046TUJFRFRMU19FQ0RTQV9ERVRFUk1JTklTVElDOk1CRURUTFNfRUNQX0hBVkVfU0VDUDM4NFIxOk1CRURUTFNfRUNQX0hBVkVfU0VDUDI1NlIxOk1CRURUTFNfVVNFX1BTQV9DUllQVE8KK3g1MDlfY3J0X2NoZWNrOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9zZXJ2ZXI1LmtleSI6IiI6IkM9TkwsTz1Qb2xhclNTTCxDTj1Qb2xhclNTTCBTZXJ2ZXIgMSI6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3Rlc3QtY2EyLmtleSI6IlBvbGFyU1NMVGVzdCI6IkM9TkwsTz1Qb2xhclNTTCxDTj1Qb2xhcnNzbCBUZXN0IEVDIENBIjoiMDEiOiIyMDE5MDIxMDE0NDQwNiI6IjIwMjkwMjEwMTQ0NDA2IjpNQkVEVExTX01EX1NIQTI1NjowOjA6Ik5VTEwiOjA6MDoxOi0xOiIiOjI6MDoiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvdGVzdC1jYTIuY3J0IjowCiAKIENlcnRpZmljYXRlIHdyaXRlIGNoZWNrIFNlcnZlcjEgU0hBMSwgU3ViamVjdEFsdE5hbWVzCiBkZXBlbmRzX29uOk1CRURUTFNfUlNBX0M6TUJFRFRMU19QS0NTMV9WMTU6TUJFRFRMU19NRF9DQU5fTUQ1Ci14NTA5X2NydF9jaGVjazoiZGF0YV9maWxlcy9zZXJ2ZXIxLmtleSI6IiI6IkM9TkwsTz1Qb2xhclNTTCxDTj1Qb2xhclNTTCBTZXJ2ZXIgMSI6ImRhdGFfZmlsZXMvdGVzdC1jYV91bmVuYy5rZXkiOiJQb2xhclNTTFRlc3QiOiJDPU5MLE89UG9sYXJTU0wsQ049UG9sYXJTU0wgVGVzdCBDQSI6IjAxIjoiMjAxOTAyMTAxNDQ0MDYiOiIyMDI5MDIxMDE0NDQwNiI6TUJFRFRMU19NRF9TSEExOjA6MDoiTlVMTCI6MDowOjE6LTE6ImRhdGFfZmlsZXMvc2VydmVyMS5hbGxTdWJqZWN0QWx0TmFtZXMuY3J0IjowOjA6ImRhdGFfZmlsZXMvdGVzdC1jYS5jcnQiOjEKK3g1MDlfY3J0X2NoZWNrOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9zZXJ2ZXIxLmtleSI6IiI6IkM9TkwsTz1Qb2xhclNTTCxDTj1Qb2xhclNTTCBTZXJ2ZXIgMSI6Ii4uL2ZyYW1ld29yay9kYXRhX2ZpbGVzL3Rlc3QtY2FfdW5lbmMua2V5IjoiUG9sYXJTU0xUZXN0IjoiQz1OTCxPPVBvbGFyU1NMLENOPVBvbGFyU1NMIFRlc3QgQ0EiOiIwMSI6IjIwMTkwMjEwMTQ0NDA2IjoiMjAyOTAyMTAxNDQ0MDYiOk1CRURUTFNfTURfU0hBMTowOjA6Ik5VTEwiOjA6MDoxOi0xOiIuLi9mcmFtZXdvcmsvZGF0YV9maWxlcy9zZXJ2ZXIxLmFsbFN1YmplY3RBbHROYW1lcy5jcnQiOjA6MDoiLi4vZnJhbWV3b3JrL2RhdGFfZmlsZXMvdGVzdC1jYS5jcnQiOjEKIAogWDUwOSBTdHJpbmcgdG8gTmFtZXMgIzEKIG1iZWR0bHNfeDUwOV9zdHJpbmdfdG9fbmFtZXM6IkM9TkwsTz1PZmZzcGFya1xcLCBJbmMuLCBPVT1Qb2xhclNTTCI6IkM9TkwsIE89T2Zmc3BhcmtcXCwgSW5jLiwgT1U9UG9sYXJTU0wiOjA6MApkaWZmIC0tZ2l0IGEvdGYtcHNhLWNyeXB0by9DTWFrZUxpc3RzLnR4dCBiL3RmLXBzYS1jcnlwdG8vQ01ha2VMaXN0cy50eHQKaW5kZXggMTQyNWFiYi4uMWRjOWY5ZiAxMDA2NDQKLS0tIGEvdGYtcHNhLWNyeXB0by9DTWFrZUxpc3RzLnR4dAorKysgYi90Zi1wc2EtY3J5cHRvL0NNYWtlTGlzdHMudHh0CkBAIC0zNiwzICszNiw1IEBACiBlbmRpZigpCiAKIGFkZF9zdWJkaXJlY3RvcnkoaW5jbHVkZSkKK2FkZF9zdWJkaXJlY3RvcnkoY29yZSkKK2FkZF9zdWJkaXJlY3RvcnkoZHJpdmVycykKZGlmZiAtLWdpdCBhL3RmLXBzYS1jcnlwdG8vY29yZS8uZ2l0aWdub3JlIGIvdGYtcHNhLWNyeXB0by9jb3JlLy5naXRpZ25vcmUKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzBkOWQwNAotLS0gL2Rldi9udWxsCisrKyBiL3RmLXBzYS1jcnlwdG8vY29yZS8uZ2l0aWdub3JlCkBAIC0wLDAgKzEsNCBAQAorIyMjU1RBUlRfR0VORVJBVEVEX0ZJTEVTIyMjCisvcHNhX2NyeXB0b19kcml2ZXJfd3JhcHBlcnMuaAorL3BzYV9jcnlwdG9fZHJpdmVyX3dyYXBwZXJzX25vX3N0YXRpYy5jCisjIyNFTkRfR0VORVJBVEVEX0ZJTEVTIyMjCmRpZmYgLS1naXQgYS90ZXN0cy9kYXRhX2ZpbGVzL2Jhc2U2NC9lbXB0eS50eHQgYi90Zi1wc2EtY3J5cHRvL2NvcmUvQ01ha2VMaXN0cy50eHQKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHRlc3RzL2RhdGFfZmlsZXMvYmFzZTY0L2VtcHR5LnR4dApyZW5hbWUgdG8gdGYtcHNhLWNyeXB0by9jb3JlL0NNYWtlTGlzdHMudHh0CmRpZmYgLS1naXQgYS9saWJyYXJ5L2FsaWdubWVudC5oIGIvdGYtcHNhLWNyeXB0by9jb3JlL2FsaWdubWVudC5oCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBsaWJyYXJ5L2FsaWdubWVudC5oCnJlbmFtZSB0byB0Zi1wc2EtY3J5cHRvL2NvcmUvYWxpZ25tZW50LmgKZGlmZiAtLWdpdCBhL3RmLXBzYS1jcnlwdG8vY29yZS9jb21tb24uaCBiL3RmLXBzYS1jcnlwdG8vY29yZS9jb21tb24uaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zOTM2ZmZkCi0tLSAvZGV2L251bGwKKysrIGIvdGYtcHNhLWNyeXB0by9jb3JlL2NvbW1vbi5oCkBAIC0wLDAgKzEsNDM1IEBACisvKioKKyAqIFxmaWxlIGNvbW1vbi5oCisgKgorICogXGJyaWVmIFV0aWxpdHkgbWFjcm9zIGZvciBpbnRlcm5hbCB1c2UgaW4gdGhlIGxpYnJhcnkKKyAqLworLyoKKyAqICBDb3B5cmlnaHQgVGhlIE1iZWQgVExTIENvbnRyaWJ1dG9ycworICogIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wIE9SIEdQTC0yLjAtb3ItbGF0ZXIKKyAqLworCisjaWZuZGVmIE1CRURUTFNfTElCUkFSWV9DT01NT05fSAorI2RlZmluZSBNQkVEVExTX0xJQlJBUllfQ09NTU9OX0gKKworI2luY2x1ZGUgIm1iZWR0bHMvYnVpbGRfaW5mby5oIgorI2luY2x1ZGUgImFsaWdubWVudC5oIgorCisjaW5jbHVkZSA8YXNzZXJ0Lmg+CisjaW5jbHVkZSA8c3RkZGVmLmg+CisjaW5jbHVkZSA8c3RkaW50Lmg+CisjaW5jbHVkZSA8c3RkZGVmLmg+CisKKyNpZiBkZWZpbmVkKF9fQVJNX05FT04pCisjaW5jbHVkZSA8YXJtX25lb24uaD4KKyNkZWZpbmUgTUJFRFRMU19IQVZFX05FT05fSU5UUklOU0lDUworI2VsaWYgZGVmaW5lZChNQkVEVExTX1BMQVRGT1JNX0lTX1dJTkRPV1NfT05fQVJNNjQpCisjaW5jbHVkZSA8YXJtNjRfbmVvbi5oPgorI2RlZmluZSBNQkVEVExTX0hBVkVfTkVPTl9JTlRSSU5TSUNTCisjZW5kaWYKKworLyoqIEhlbHBlciB0byBkZWZpbmUgYSBmdW5jdGlvbiBhcyBzdGF0aWMgZXhjZXB0IHdoZW4gYnVpbGRpbmcgaW52YXNpdmUgdGVzdHMuCisgKgorICogSWYgYSBmdW5jdGlvbiBpcyBvbmx5IHVzZWQgaW5zaWRlIGl0cyBvd24gc291cmNlIGZpbGUgYW5kIHNob3VsZCBiZQorICogZGVjbGFyZWQgYHN0YXRpY2AgdG8gYWxsb3cgdGhlIGNvbXBpbGVyIHRvIG9wdGltaXplIGZvciBjb2RlIHNpemUsCisgKiBidXQgdGhhdCBmdW5jdGlvbiBoYXMgdW5pdCB0ZXN0cywgZGVmaW5lIGl0IHdpdGgKKyAqIGBgYAorICogTUJFRFRMU19TVEFUSUNfVEVTVEFCTEUgaW50IG1iZWR0bHNfZm9vKC4uLikgeyAuLi4gfQorICogYGBgCisgKiBhbmQgZGVjbGFyZSBpdCBpbiBhIGhlYWRlciBpbiB0aGUgYGxpYnJhcnkvYCBkaXJlY3Rvcnkgd2l0aAorICogYGBgCisgKiAjaWYgZGVmaW5lZChNQkVEVExTX1RFU1RfSE9PS1MpCisgKiBpbnQgbWJlZHRsc19mb28oLi4uKTsKKyAqICNlbmRpZgorICogYGBgCisgKi8KKyNpZiBkZWZpbmVkKE1CRURUTFNfVEVTVF9IT09LUykKKyNkZWZpbmUgTUJFRFRMU19TVEFUSUNfVEVTVEFCTEUKKyNlbHNlCisjZGVmaW5lIE1CRURUTFNfU1RBVElDX1RFU1RBQkxFIHN0YXRpYworI2VuZGlmCisKKyNpZiBkZWZpbmVkKE1CRURUTFNfVEVTVF9IT09LUykKK2V4dGVybiB2b2lkICgqbWJlZHRsc190ZXN0X2hvb2tfdGVzdF9mYWlsKShjb25zdCBjaGFyICp0ZXN0LCBpbnQgbGluZSwgY29uc3QgY2hhciAqZmlsZSk7CisjZGVmaW5lIE1CRURUTFNfVEVTVF9IT09LX1RFU1RfQVNTRVJUKFRFU1QpIFwKKyAgICBkbyB7IFwKKyAgICAgICAgaWYgKCghKFRFU1QpKSAmJiAoKCptYmVkdGxzX3Rlc3RfaG9va190ZXN0X2ZhaWwpICE9IE5VTEwpKSBcCisgICAgICAgIHsgXAorICAgICAgICAgICAgKCptYmVkdGxzX3Rlc3RfaG9va190ZXN0X2ZhaWwpKCAjVEVTVCwgX19MSU5FX18sIF9fRklMRV9fKTsgXAorICAgICAgICB9IFwKKyAgICB9IHdoaWxlICgwKQorI2Vsc2UKKyNkZWZpbmUgTUJFRFRMU19URVNUX0hPT0tfVEVTVF9BU1NFUlQoVEVTVCkKKyNlbmRpZiAvKiBkZWZpbmVkKE1CRURUTFNfVEVTVF9IT09LUykgKi8KKworLyoqIFxkZWYgQVJSQVlfTEVOR1RICisgKiBSZXR1cm4gdGhlIG51bWJlciBvZiBlbGVtZW50cyBvZiBhIHN0YXRpYyBvciBzdGFjayBhcnJheS4KKyAqCisgKiBccGFyYW0gYXJyYXkgICAgICAgICBBIHZhbHVlIG9mIGFycmF5IChub3QgcG9pbnRlcikgdHlwZS4KKyAqCisgKiBccmV0dXJuIFRoZSBudW1iZXIgb2YgZWxlbWVudHMgb2YgdGhlIGFycmF5LgorICovCisvKiBBIGNvcnJlY3QgaW1wbGVtZW50YXRpb24gb2YgQVJSQVlfTEVOR1RILCBidXQgd2hpY2ggc2lsZW50bHkgZ2l2ZXMKKyAqIGEgbm9uc2Vuc2ljYWwgcmVzdWx0IGlmIGNhbGxlZCB3aXRoIGEgcG9pbnRlciByYXRoZXIgdGhhbiBhbiBhcnJheS4gKi8KKyNkZWZpbmUgQVJSQVlfTEVOR1RIX1VOU0FGRShhcnJheSkgICAgICAgICAgICBcCisgICAgKHNpemVvZihhcnJheSkgLyBzaXplb2YoKihhcnJheSkpKQorCisjaWYgZGVmaW5lZChfX0dOVUNfXykKKy8qIFRlc3QgaWYgYXJnIGFuZCAmKGFyZylbMF0gaGF2ZSB0aGUgc2FtZSB0eXBlLiBUaGlzIGlzIHRydWUgaWYgYXJnIGlzCisgKiBhbiBhcnJheSBidXQgbm90IGlmIGl0J3MgYSBwb2ludGVyLiAqLworI2RlZmluZSBJU19BUlJBWV9OT1RfUE9JTlRFUihhcmcpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAoIV9fYnVpbHRpbl90eXBlc19jb21wYXRpYmxlX3AoX190eXBlb2ZfXyhhcmcpLCAgICAgICAgICAgICAgICBcCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fdHlwZW9mX18oJihhcmcpWzBdKSkpCisvKiBBIGNvbXBpbGUtdGltZSBjb25zdGFudCB3aXRoIHRoZSB2YWx1ZSAwLiBJZiBgY29uc3RfZXhwcmAgaXMgbm90IGEKKyAqIGNvbXBpbGUtdGltZSBjb25zdGFudCB3aXRoIGEgbm9uemVybyB2YWx1ZSwgY2F1c2UgYSBjb21waWxlLXRpbWUgZXJyb3IuICovCisjZGVmaW5lIFNUQVRJQ19BU1NFUlRfRVhQUihjb25zdF9leHByKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICgwICYmIHNpemVvZihzdHJ1Y3QgeyB1bnNpZ25lZCBpbnQgU1RBVElDX0FTU0VSVCA6IDEgLSAyICogIShjb25zdF9leHByKTsgfSkpCisKKy8qIFJldHVybiB0aGUgc2NhbGFyIHZhbHVlIGB2YWx1ZWAgKHBvc3NpYmx5IHByb21vdGVkKS4gVGhpcyBpcyBhIGNvbXBpbGUtdGltZQorICogY29uc3RhbnQgaWYgYHZhbHVlYCBpcy4gYGNvbmRpdGlvbmAgbXVzdCBiZSBhIGNvbXBpbGUtdGltZSBjb25zdGFudC4KKyAqIElmIGBjb25kaXRpb25gIGlzIGZhbHNlLCBhcnJhbmdlIHRvIGNhdXNlIGEgY29tcGlsZS10aW1lIGVycm9yLiAqLworI2RlZmluZSBTVEFUSUNfQVNTRVJUX1RIRU5fUkVUVVJOKGNvbmRpdGlvbiwgdmFsdWUpICAgXAorICAgIChTVEFUSUNfQVNTRVJUX0VYUFIoY29uZGl0aW9uKSA/IDAgOiAodmFsdWUpKQorCisjZGVmaW5lIEFSUkFZX0xFTkdUSChhcnJheSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIChTVEFUSUNfQVNTRVJUX1RIRU5fUkVUVVJOKElTX0FSUkFZX05PVF9QT0lOVEVSKGFycmF5KSwgICAgICAgICBcCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQVJSQVlfTEVOR1RIX1VOU0FGRShhcnJheSkpKQorCisjZWxzZQorLyogSWYgd2UgYXJlbid0IHN1cmUgdGhlIGNvbXBpbGVyIHN1cHBvcnRzIG91ciBub24tc3RhbmRhcmQgdHJpY2tzLAorICogZmFsbCBiYWNrIHRvIHRoZSB1bnNhZmUgaW1wbGVtZW50YXRpb24uICovCisjZGVmaW5lIEFSUkFZX0xFTkdUSChhcnJheSkgQVJSQVlfTEVOR1RIX1VOU0FGRShhcnJheSkKKyNlbmRpZgorLyoqIEFsbG93IGxpYnJhcnkgdG8gYWNjZXNzIGl0cyBzdHJ1Y3RzJyBwcml2YXRlIG1lbWJlcnMuCisgKgorICogQWx0aG91Z2ggc3RydWN0cyBkZWZpbmVkIGluIGhlYWRlciBmaWxlcyBhcmUgcHVibGljbHkgYXZhaWxhYmxlLAorICogdGhlaXIgbWVtYmVycyBhcmUgcHJpdmF0ZSBhbmQgc2hvdWxkIG5vdCBiZSBhY2Nlc3NlZCBieSB0aGUgdXNlci4KKyAqLworI2RlZmluZSBNQkVEVExTX0FMTE9XX1BSSVZBVEVfQUNDRVNTCisKKy8qKgorICogXGJyaWVmICAgICAgIFNlY3VyZWx5IHplcm9pemUgYSBidWZmZXIgdGhlbiBmcmVlIGl0LgorICoKKyAqICAgICAgICAgICAgICBTaW1pbGFyIHRvIG1ha2luZyBjb25zZWN1dGl2ZSBjYWxscyB0bworICogICAgICAgICAgICAgIFxjIG1iZWR0bHNfcGxhdGZvcm1femVyb2l6ZSgpIGFuZCBcYyBtYmVkdGxzX2ZyZWUoKSwgYnV0IGhhcworICogICAgICAgICAgICAgIGNvZGUgc2l6ZSBzYXZpbmdzLCBhbmQgcG90ZW50aWFsIGZvciBvcHRpbWlzYXRpb24gaW4gdGhlIGZ1dHVyZS4KKyAqCisgKiAgICAgICAgICAgICAgR3VhcmFudGVlZCB0byBiZSBhIG5vLW9wIGlmIFxwIGJ1ZiBpcyBcYyBOVUxMIGFuZCBccCBsZW4gaXMgMC4KKyAqCisgKiBccGFyYW0gYnVmICAgQnVmZmVyIHRvIGJlIHplcm9pemVkIHRoZW4gZnJlZWQuCisgKiBccGFyYW0gbGVuICAgTGVuZ3RoIG9mIHRoZSBidWZmZXIgaW4gYnl0ZXMKKyAqLwordm9pZCBtYmVkdGxzX3plcm9pemVfYW5kX2ZyZWUodm9pZCAqYnVmLCBzaXplX3QgbGVuKTsKKworLyoqIFJldHVybiBhbiBvZmZzZXQgaW50byBhIGJ1ZmZlci4KKyAqCisgKiBUaGlzIGlzIGp1c3QgdGhlIGFkZGl0aW9uIG9mIGFuIG9mZnNldCB0byBhIHBvaW50ZXIsIGV4Y2VwdCB0aGF0IHRoaXMKKyAqIGZ1bmN0aW9uIGFsc28gYWNjZXB0cyBhbiBvZmZzZXQgb2YgMCBpbnRvIGEgYnVmZmVyIHdob3NlIHBvaW50ZXIgaXMgbnVsbC4KKyAqIChgcCArIG5gIGhhcyB1bmRlZmluZWQgYmVoYXZpb3Igd2hlbiBgcGAgaXMgbnVsbCwgZXZlbiB3aGVuIGBuID09IDBgLgorICogQSBudWxsIHBvaW50ZXIgaXMgYSB2YWxpZCBidWZmZXIgcG9pbnRlciB3aGVuIHRoZSBzaXplIGlzIDAsIGZvciBleGFtcGxlCisgKiBhcyB0aGUgcmVzdWx0IG9mIGBtYWxsb2MoMClgIG9uIHNvbWUgcGxhdGZvcm1zLikKKyAqCisgKiBccGFyYW0gcCAgICAgUG9pbnRlciB0byBhIGJ1ZmZlciBvZiBhdCBsZWFzdCBuIGJ5dGVzLgorICogICAgICAgICAgICAgIFRoaXMgbWF5IGJlIFxwIE5VTEwgaWYgXHAgbiBpcyB6ZXJvLgorICogXHBhcmFtIG4gICAgIEFuIG9mZnNldCBpbiBieXRlcy4KKyAqIFxyZXR1cm4gICAgICBQb2ludGVyIHRvIG9mZnNldCBccCBuIGluIHRoZSBidWZmZXIgXHAgcC4KKyAqICAgICAgICAgICAgICBOb3RlIHRoYXQgdGhpcyBpcyBvbmx5IGEgdmFsaWQgcG9pbnRlciBpZiB0aGUgc2l6ZSBvZiB0aGUKKyAqICAgICAgICAgICAgICBidWZmZXIgaXMgYXQgbGVhc3QgXHAgbiArIDEuCisgKi8KK3N0YXRpYyBpbmxpbmUgdW5zaWduZWQgY2hhciAqbWJlZHRsc19idWZmZXJfb2Zmc2V0KAorICAgIHVuc2lnbmVkIGNoYXIgKnAsIHNpemVfdCBuKQoreworICAgIHJldHVybiBwID09IE5VTEwgPyBOVUxMIDogcCArIG47Cit9CisKKy8qKiBSZXR1cm4gYW4gb2Zmc2V0IGludG8gYSByZWFkLW9ubHkgYnVmZmVyLgorICoKKyAqIFNpbWlsYXIgdG8gbWJlZHRsc19idWZmZXJfb2Zmc2V0KCksIGJ1dCBmb3IgY29uc3QgcG9pbnRlcnMuCisgKgorICogXHBhcmFtIHAgICAgIFBvaW50ZXIgdG8gYSBidWZmZXIgb2YgYXQgbGVhc3QgbiBieXRlcy4KKyAqICAgICAgICAgICAgICBUaGlzIG1heSBiZSBccCBOVUxMIGlmIFxwIG4gaXMgemVyby4KKyAqIFxwYXJhbSBuICAgICBBbiBvZmZzZXQgaW4gYnl0ZXMuCisgKiBccmV0dXJuICAgICAgUG9pbnRlciB0byBvZmZzZXQgXHAgbiBpbiB0aGUgYnVmZmVyIFxwIHAuCisgKiAgICAgICAgICAgICAgTm90ZSB0aGF0IHRoaXMgaXMgb25seSBhIHZhbGlkIHBvaW50ZXIgaWYgdGhlIHNpemUgb2YgdGhlCisgKiAgICAgICAgICAgICAgYnVmZmVyIGlzIGF0IGxlYXN0IFxwIG4gKyAxLgorICovCitzdGF0aWMgaW5saW5lIGNvbnN0IHVuc2lnbmVkIGNoYXIgKm1iZWR0bHNfYnVmZmVyX29mZnNldF9jb25zdCgKKyAgICBjb25zdCB1bnNpZ25lZCBjaGFyICpwLCBzaXplX3QgbikKK3sKKyAgICByZXR1cm4gcCA9PSBOVUxMID8gTlVMTCA6IHAgKyBuOworfQorCisvKiBBbHdheXMgaW5saW5lIG1iZWR0bHNfeG9yKCkgZm9yIHNpbWlsYXIgcmVhc29ucyBhcyBtYmVkdGxzX3hvcl9ub19zaW1kKCkuICovCisjaWYgZGVmaW5lZChfX0lBUl9TWVNURU1TX0lDQ19fKQorI3ByYWdtYSBpbmxpbmUgPSBmb3JjZWQKKyNlbGlmIGRlZmluZWQoX19HTlVDX18pCitfX2F0dHJpYnV0ZV9fKChhbHdheXNfaW5saW5lKSkKKyNlbmRpZgorLyoqCisgKiBQZXJmb3JtIGEgZmFzdCBibG9jayBYT1Igb3BlcmF0aW9uLCBzdWNoIHRoYXQKKyAqIHJbaV0gPSBhW2ldIF4gYltpXSB3aGVyZSAwIDw9IGkgPCBuCisgKgorICogXHBhcmFtICAgciBQb2ludGVyIHRvIHJlc3VsdCAoYnVmZmVyIG9mIGF0IGxlYXN0IFxwIG4gYnl0ZXMpLiBccCByCisgKiAgICAgICAgICAgIG1heSBiZSBlcXVhbCB0byBlaXRoZXIgXHAgYSBvciBccCBiLCBidXQgYmVoYXZpb3VyIHdoZW4KKyAqICAgICAgICAgICAgaXQgb3ZlcmxhcHMgaW4gb3RoZXIgd2F5cyBpcyB1bmRlZmluZWQuCisgKiBccGFyYW0gICBhIFBvaW50ZXIgdG8gaW5wdXQgKGJ1ZmZlciBvZiBhdCBsZWFzdCBccCBuIGJ5dGVzKQorICogXHBhcmFtICAgYiBQb2ludGVyIHRvIGlucHV0IChidWZmZXIgb2YgYXQgbGVhc3QgXHAgbiBieXRlcykKKyAqIFxwYXJhbSAgIG4gTnVtYmVyIG9mIGJ5dGVzIHRvIHByb2Nlc3MuCisgKgorICogXG5vdGUgICAgICBEZXBlbmRpbmcgb24gdGhlIHNpdHVhdGlvbiwgaXQgbWF5IGJlIGZhc3RlciB0byB1c2UgZWl0aGVyIG1iZWR0bHNfeG9yKCkgb3IKKyAqICAgICAgICAgICAgbWJlZHRsc194b3Jfbm9fc2ltZCgpICh0aGVzZSBhcmUgZnVuY3Rpb25hbGx5IGVxdWl2YWxlbnQpLgorICogICAgICAgICAgICBJZiB0aGUgcmVzdWx0IGlzIHVzZWQgaW1tZWRpYXRlbHkgYWZ0ZXIgdGhlIHhvciBvcGVyYXRpb24gaW4gbm9uLVNJTUQgY29kZSAoZS5nLCBpbgorICogICAgICAgICAgICBBRVMtQ0JDKSwgdGhlcmUgbWF5IGJlIGFkZGl0aW9uYWwgbGF0ZW5jeSB0byB0cmFuc2ZlciB0aGUgZGF0YSBmcm9tIFNJTUQgdG8gc2NhbGFyCisgKiAgICAgICAgICAgIHJlZ2lzdGVycywgYW5kIGluIHRoaXMgY2FzZSwgbWJlZHRsc194b3Jfbm9fc2ltZCgpIG1heSBiZSBmYXN0ZXIuIEluIG90aGVyIGNhc2VzIHdoZXJlCisgKiAgICAgICAgICAgIHRoZSByZXN1bHQgaXMgbm90IHVzZWQgaW1tZWRpYXRlbHkgKGUuZy4sIGluIEFFUy1DVFIpLCBtYmVkdGxzX3hvcigpIG1heSBiZSBmYXN0ZXIuCisgKiAgICAgICAgICAgIEZvciB0YXJnZXRzIHdpdGhvdXQgU0lNRCBzdXBwb3J0LCB0aGV5IHdpbGwgYmVoYXZlIHRoZSBzYW1lLgorICovCitzdGF0aWMgaW5saW5lIHZvaWQgbWJlZHRsc194b3IodW5zaWduZWQgY2hhciAqciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1bnNpZ25lZCBjaGFyICphLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgKmIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IG4pCit7CisgICAgc2l6ZV90IGkgPSAwOworI2lmIGRlZmluZWQoTUJFRFRMU19FRkZJQ0lFTlRfVU5BTElHTkVEX0FDQ0VTUykKKyNpZiBkZWZpbmVkKE1CRURUTFNfSEFWRV9ORU9OX0lOVFJJTlNJQ1MpICYmIFwKKyAgICAoIShkZWZpbmVkKE1CRURUTFNfQ09NUElMRVJfSVNfR0NDKSAmJiBNQkVEVExTX0dDQ19WRVJTSU9OIDwgNzAzMDApKQorICAgIC8qIE9sZCBHQ0MgdmVyc2lvbnMgZ2VuZXJhdGUgYSB3YXJuaW5nIGhlcmUsIHNvIGRpc2FibGUgdGhlIE5FT04gcGF0aCBmb3IgdGhlc2UgY29tcGlsZXJzICovCisgICAgZm9yICg7IChpICsgMTYpIDw9IG47IGkgKz0gMTYpIHsKKyAgICAgICAgdWludDh4MTZfdCB2MSA9IHZsZDFxX3U4KGEgKyBpKTsKKyAgICAgICAgdWludDh4MTZfdCB2MiA9IHZsZDFxX3U4KGIgKyBpKTsKKyAgICAgICAgdWludDh4MTZfdCB4ID0gdmVvcnFfdTgodjEsIHYyKTsKKyAgICAgICAgdnN0MXFfdTgociArIGksIHgpOworICAgIH0KKyNpZiBkZWZpbmVkKF9fSUFSX1NZU1RFTVNfSUNDX18pCisgICAgLyogVGhpcyBpZiBzdGF0ZW1lbnQgaGVscHMgc29tZSBjb21waWxlcnMgKGUuZy4sIElBUikgb3B0aW1pc2Ugb3V0IHRoZSBieXRlLWJ5LWJ5dGUgdGFpbCBjYXNlCisgICAgICogd2hlcmUgbiBpcyBhIGNvbnN0YW50IG11bHRpcGxlIG9mIDE2LgorICAgICAqIEZvciBvdGhlciBjb21waWxlcnMgKGUuZy4gcmVjZW50IGdjYyBhbmQgY2xhbmcpIGl0IG1ha2VzIG5vIGRpZmZlcmVuY2UgaWYgbiBpcyBhIGNvbXBpbGUtdGltZQorICAgICAqIGNvbnN0YW50LCBhbmQgaXMgYSB2ZXJ5IHNtYWxsIHBlcmYgcmVncmVzc2lvbiBpZiBuIGlzIG5vdCBhIGNvbXBpbGUtdGltZSBjb25zdGFudC4gKi8KKyAgICBpZiAobiAlIDE2ID09IDApIHsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyNlbmRpZgorI2VsaWYgZGVmaW5lZChNQkVEVExTX0FSQ0hfSVNfWDY0KSB8fCBkZWZpbmVkKE1CRURUTFNfQVJDSF9JU19BUk02NCkKKyAgICAvKiBUaGlzIGNvZGVwYXRoIHByb2JhYmx5IG9ubHkgbWFrZXMgc2Vuc2Ugb24gYXJjaGl0ZWN0dXJlcyB3aXRoIDY0LWJpdCByZWdpc3RlcnMgKi8KKyAgICBmb3IgKDsgKGkgKyA4KSA8PSBuOyBpICs9IDgpIHsKKyAgICAgICAgdWludDY0X3QgeCA9IG1iZWR0bHNfZ2V0X3VuYWxpZ25lZF91aW50NjQoYSArIGkpIF4gbWJlZHRsc19nZXRfdW5hbGlnbmVkX3VpbnQ2NChiICsgaSk7CisgICAgICAgIG1iZWR0bHNfcHV0X3VuYWxpZ25lZF91aW50NjQociArIGksIHgpOworICAgIH0KKyNpZiBkZWZpbmVkKF9fSUFSX1NZU1RFTVNfSUNDX18pCisgICAgaWYgKG4gJSA4ID09IDApIHsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyNlbmRpZgorI2Vsc2UKKyAgICBmb3IgKDsgKGkgKyA0KSA8PSBuOyBpICs9IDQpIHsKKyAgICAgICAgdWludDMyX3QgeCA9IG1iZWR0bHNfZ2V0X3VuYWxpZ25lZF91aW50MzIoYSArIGkpIF4gbWJlZHRsc19nZXRfdW5hbGlnbmVkX3VpbnQzMihiICsgaSk7CisgICAgICAgIG1iZWR0bHNfcHV0X3VuYWxpZ25lZF91aW50MzIociArIGksIHgpOworICAgIH0KKyNpZiBkZWZpbmVkKF9fSUFSX1NZU1RFTVNfSUNDX18pCisgICAgaWYgKG4gJSA0ID09IDApIHsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyNlbmRpZgorI2VuZGlmCisjZW5kaWYKKyAgICBmb3IgKDsgaSA8IG47IGkrKykgeworICAgICAgICByW2ldID0gYVtpXSBeIGJbaV07CisgICAgfQorfQorCisvKiBBbHdheXMgaW5saW5lIG1iZWR0bHNfeG9yX25vX3NpbWQoKSBhcyB3ZSBzZWUgc2lnbmlmaWNhbnQgcGVyZiByZWdyZXNzaW9ucyB3aGVuIGl0IGRvZXMgbm90IGdldAorICogaW5saW5lZCAoZS5nLiwgb2JzZXJ2ZWQgYWJvdXQgM3ggcGVyZiBkaWZmZXJlbmNlIGluIGdjbV9tdWx0X2xhcmdldGFibGUgd2l0aCBnY2MgNyAtIDEyKSAqLworI2lmIGRlZmluZWQoX19JQVJfU1lTVEVNU19JQ0NfXykKKyNwcmFnbWEgaW5saW5lID0gZm9yY2VkCisjZWxpZiBkZWZpbmVkKF9fR05VQ19fKQorX19hdHRyaWJ1dGVfXygoYWx3YXlzX2lubGluZSkpCisjZW5kaWYKKy8qKgorICogUGVyZm9ybSBhIGZhc3QgYmxvY2sgWE9SIG9wZXJhdGlvbiwgc3VjaCB0aGF0CisgKiByW2ldID0gYVtpXSBeIGJbaV0gd2hlcmUgMCA8PSBpIDwgbgorICoKKyAqIEluIHNvbWUgc2l0dWF0aW9ucywgdGhpcyBjYW4gcGVyZm9ybSBiZXR0ZXIgdGhhbiBtYmVkdGxzX3hvcigpIChlLmcuLCBpdCdzIGFib3V0IDUlCisgKiBiZXR0ZXIgaW4gQUVTLUNCQykuCisgKgorICogXHBhcmFtICAgciBQb2ludGVyIHRvIHJlc3VsdCAoYnVmZmVyIG9mIGF0IGxlYXN0IFxwIG4gYnl0ZXMpLiBccCByCisgKiAgICAgICAgICAgIG1heSBiZSBlcXVhbCB0byBlaXRoZXIgXHAgYSBvciBccCBiLCBidXQgYmVoYXZpb3VyIHdoZW4KKyAqICAgICAgICAgICAgaXQgb3ZlcmxhcHMgaW4gb3RoZXIgd2F5cyBpcyB1bmRlZmluZWQuCisgKiBccGFyYW0gICBhIFBvaW50ZXIgdG8gaW5wdXQgKGJ1ZmZlciBvZiBhdCBsZWFzdCBccCBuIGJ5dGVzKQorICogXHBhcmFtICAgYiBQb2ludGVyIHRvIGlucHV0IChidWZmZXIgb2YgYXQgbGVhc3QgXHAgbiBieXRlcykKKyAqIFxwYXJhbSAgIG4gTnVtYmVyIG9mIGJ5dGVzIHRvIHByb2Nlc3MuCisgKgorICogXG5vdGUgICAgICBEZXBlbmRpbmcgb24gdGhlIHNpdHVhdGlvbiwgaXQgbWF5IGJlIGZhc3RlciB0byB1c2UgZWl0aGVyIG1iZWR0bHNfeG9yKCkgb3IKKyAqICAgICAgICAgICAgbWJlZHRsc194b3Jfbm9fc2ltZCgpICh0aGVzZSBhcmUgZnVuY3Rpb25hbGx5IGVxdWl2YWxlbnQpLgorICogICAgICAgICAgICBJZiB0aGUgcmVzdWx0IGlzIHVzZWQgaW1tZWRpYXRlbHkgYWZ0ZXIgdGhlIHhvciBvcGVyYXRpb24gaW4gbm9uLVNJTUQgY29kZSAoZS5nLCBpbgorICogICAgICAgICAgICBBRVMtQ0JDKSwgdGhlcmUgbWF5IGJlIGFkZGl0aW9uYWwgbGF0ZW5jeSB0byB0cmFuc2ZlciB0aGUgZGF0YSBmcm9tIFNJTUQgdG8gc2NhbGFyCisgKiAgICAgICAgICAgIHJlZ2lzdGVycywgYW5kIGluIHRoaXMgY2FzZSwgbWJlZHRsc194b3Jfbm9fc2ltZCgpIG1heSBiZSBmYXN0ZXIuIEluIG90aGVyIGNhc2VzIHdoZXJlCisgKiAgICAgICAgICAgIHRoZSByZXN1bHQgaXMgbm90IHVzZWQgaW1tZWRpYXRlbHkgKGUuZy4sIGluIEFFUy1DVFIpLCBtYmVkdGxzX3hvcigpIG1heSBiZSBmYXN0ZXIuCisgKiAgICAgICAgICAgIEZvciB0YXJnZXRzIHdpdGhvdXQgU0lNRCBzdXBwb3J0LCB0aGV5IHdpbGwgYmVoYXZlIHRoZSBzYW1lLgorICovCitzdGF0aWMgaW5saW5lIHZvaWQgbWJlZHRsc194b3Jfbm9fc2ltZCh1bnNpZ25lZCBjaGFyICpyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdW5zaWduZWQgY2hhciAqYSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgKmIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgbikKK3sKKyAgICBzaXplX3QgaSA9IDA7CisjaWYgZGVmaW5lZChNQkVEVExTX0VGRklDSUVOVF9VTkFMSUdORURfQUNDRVNTKQorI2lmIGRlZmluZWQoTUJFRFRMU19BUkNIX0lTX1g2NCkgfHwgZGVmaW5lZChNQkVEVExTX0FSQ0hfSVNfQVJNNjQpCisgICAgLyogVGhpcyBjb2RlcGF0aCBwcm9iYWJseSBvbmx5IG1ha2VzIHNlbnNlIG9uIGFyY2hpdGVjdHVyZXMgd2l0aCA2NC1iaXQgcmVnaXN0ZXJzICovCisgICAgZm9yICg7IChpICsgOCkgPD0gbjsgaSArPSA4KSB7CisgICAgICAgIHVpbnQ2NF90IHggPSBtYmVkdGxzX2dldF91bmFsaWduZWRfdWludDY0KGEgKyBpKSBeIG1iZWR0bHNfZ2V0X3VuYWxpZ25lZF91aW50NjQoYiArIGkpOworICAgICAgICBtYmVkdGxzX3B1dF91bmFsaWduZWRfdWludDY0KHIgKyBpLCB4KTsKKyAgICB9CisjaWYgZGVmaW5lZChfX0lBUl9TWVNURU1TX0lDQ19fKQorICAgIC8qIFRoaXMgaWYgc3RhdGVtZW50IGhlbHBzIHNvbWUgY29tcGlsZXJzIChlLmcuLCBJQVIpIG9wdGltaXNlIG91dCB0aGUgYnl0ZS1ieS1ieXRlIHRhaWwgY2FzZQorICAgICAqIHdoZXJlIG4gaXMgYSBjb25zdGFudCBtdWx0aXBsZSBvZiA4LgorICAgICAqIEZvciBvdGhlciBjb21waWxlcnMgKGUuZy4gcmVjZW50IGdjYyBhbmQgY2xhbmcpIGl0IG1ha2VzIG5vIGRpZmZlcmVuY2UgaWYgbiBpcyBhIGNvbXBpbGUtdGltZQorICAgICAqIGNvbnN0YW50LCBhbmQgaXMgYSB2ZXJ5IHNtYWxsIHBlcmYgcmVncmVzc2lvbiBpZiBuIGlzIG5vdCBhIGNvbXBpbGUtdGltZSBjb25zdGFudC4gKi8KKyAgICBpZiAobiAlIDggPT0gMCkgeworICAgICAgICByZXR1cm47CisgICAgfQorI2VuZGlmCisjZWxzZQorICAgIGZvciAoOyAoaSArIDQpIDw9IG47IGkgKz0gNCkgeworICAgICAgICB1aW50MzJfdCB4ID0gbWJlZHRsc19nZXRfdW5hbGlnbmVkX3VpbnQzMihhICsgaSkgXiBtYmVkdGxzX2dldF91bmFsaWduZWRfdWludDMyKGIgKyBpKTsKKyAgICAgICAgbWJlZHRsc19wdXRfdW5hbGlnbmVkX3VpbnQzMihyICsgaSwgeCk7CisgICAgfQorI2lmIGRlZmluZWQoX19JQVJfU1lTVEVNU19JQ0NfXykKKyAgICBpZiAobiAlIDQgPT0gMCkgeworICAgICAgICByZXR1cm47CisgICAgfQorI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorICAgIGZvciAoOyBpIDwgbjsgaSsrKSB7CisgICAgICAgIHJbaV0gPSBhW2ldIF4gYltpXTsKKyAgICB9Cit9CisKKy8qIEZpeCBNU1ZDIEM5OSBjb21wYXRpYmxlIGlzc3VlCisgKiAgICAgIE1TVkMgc3VwcG9ydCBfX2Z1bmNfXyBmcm9tIHZpc3VhbCBzdHVkaW8gMjAxNSggMTkwMCApCisgKiAgICAgIFVzZSBNU1ZDIHByZWRlZmluZSBtYWNybyB0byBhdm9pZCBuYW1lIGNoZWNrIGZhaWwuCisgKi8KKyNpZiAoZGVmaW5lZChfTVNDX1ZFUikgJiYgKF9NU0NfVkVSIDw9IDE5MDApKQorI2RlZmluZSAvKm5vLWNoZWNrLW5hbWVzKi8gX19mdW5jX18gX19GVU5DVElPTl9fCisjZW5kaWYKKworLyogRGVmaW5lIGBhc21gIGZvciBjb21waWxlcnMgd2hpY2ggZG9uJ3QgZGVmaW5lIGl0LiAqLworLyogKklOREVOVC1PRkYqICovCisjaWZuZGVmIGFzbQorI2lmIGRlZmluZWQoX19JQVJfU1lTVEVNU19JQ0NfXykKKyNkZWZpbmUgYXNtIF9fYXNtCisjZWxzZQorI2RlZmluZSBhc20gX19hc21fXworI2VuZGlmCisjZW5kaWYKKy8qICpJTkRFTlQtT04qICovCisKKy8qCisgKiBEZWZpbmUgdGhlIGNvbnN0cmFpbnQgdXNlZCBmb3IgcmVhZC1vbmx5IHBvaW50ZXIgb3BlcmFuZHMgdG8gYWFyY2g2NCBhc20uCisgKgorICogVGhpcyBpcyBub3JtYWxseSB0aGUgdXN1YWwgInIiLCBidXQgZm9yIGFhcmNoNjRfMzIgKGFrYSBJTFAzMiwKKyAqIGFzIGZvdW5kIGluIHdhdGNob3MpLCAicCIgaXMgcmVxdWlyZWQgdG8gYXZvaWQgd2FybmluZ3MgZnJvbSBjbGFuZy4KKyAqCisgKiBOb3RlIHRoYXQgY2xhbmcgZG9lcyBub3QgcmVjb2duaXNlICcrcCcgb3IgJz1wJywgYW5kIGFybWNsYW5nCisgKiBkb2VzIG5vdCByZWNvZ25pc2UgJ3AnIGF0IGFsbC4gVGhlcmVmb3JlLCB0byB1cGRhdGUgYSBwb2ludGVyIGZyb20KKyAqIGFhcmNoNjQgYXNzZW1ibHksIGl0IGlzIG5lY2Vzc2FyeSB0byB1c2Ugc29tZXRoaW5nIGxpa2U6CisgKgorICogdWludHB0cl90IHVwdHIgPSAodWludHB0cl90KSBwdHI7CisgKiBhc20oICJsZHIgeDQsIFsleDBdLCAjOCIgLi4uIDogIityIiAodXB0cikgOiA6ICkKKyAqIHB0ciA9ICh2b2lkKikgdXB0cjsKKyAqCisgKiBOb3RlIHRoYXQgdGhlICJ4IiBpbiAiJXgwIiBpcyBuZWNjZXNzYXJ5OyB3cml0aW5nICIlMCIgd2lsbCBjYXVzZSB3YXJuaW5ncy4KKyAqLworI2lmIGRlZmluZWQoX19hYXJjaDY0X18pICYmIGRlZmluZWQoTUJFRFRMU19IQVZFX0FTTSkKKyNpZiBVSU5UUFRSX01BWCA9PSAweGZmZmZmZmZmdWwKKy8qIElMUDMyOiBTcGVjaWZ5IHRoZSBwb2ludGVyIG9wZXJhbmQgc2xpZ2h0bHkgZGlmZmVyZW50bHksIGFzIHBlciAjNzc4Ny4gKi8KKyNkZWZpbmUgTUJFRFRMU19BU01fQUFSQ0g2NF9QVFJfQ09OU1RSQUlOVCAicCIKKyNlbGlmIFVJTlRQVFJfTUFYID09IDB4ZmZmZmZmZmZmZmZmZmZmZnVsCisvKiBOb3JtYWwgY2FzZSAoNjQtYml0IHBvaW50ZXJzKTogdXNlICJyIiBhcyB0aGUgY29uc3RyYWludCBmb3IgcG9pbnRlciBvcGVyYW5kcyB0byBhc20gKi8KKyNkZWZpbmUgTUJFRFRMU19BU01fQUFSQ0g2NF9QVFJfQ09OU1RSQUlOVCAiciIKKyNlbHNlCisjZXJyb3IgIlVucmVjb2duaXNlZCBwb2ludGVyIHNpemUgZm9yIGFhcmNoNjQiCisjZW5kaWYKKyNlbmRpZgorCisvKiBBbHdheXMgcHJvdmlkZSBhIHN0YXRpYyBhc3NlcnQgbWFjcm8sIHNvIGl0IGNhbiBiZSB1c2VkIHVuY29uZGl0aW9uYWxseS4KKyAqIEl0IHdpbGwgZXhwYW5kIHRvIG5vdGhpbmcgb24gc29tZSBzeXN0ZW1zLgorICogQ2FuIGJlIHVzZWQgb3V0c2lkZSBmdW5jdGlvbnMgKGJ1dCBkb24ndCBhZGQgYSB0cmFpbGluZyAnOycgaW4gdGhhdCBjYXNlOgorICogdGhlIHNlbWljb2xvbiBpcyBpbmNsdWRlZCBoZXJlIHRvIGF2b2lkIHRyaWdnZXJpbmcgLVdleHRyYS1zZW1pIHdoZW4KKyAqIE1CRURUTFNfU1RBVElDX0FTU0VSVCgpIGV4cGFuZHMgdG8gbm90aGluZykuCisgKiBDYW4ndCB1c2UgdGhlIEMxMS1zdHlsZSBgZGVmaW5lZChzdGF0aWNfYXNzZXJ0KWAgb24gRnJlZUJTRCwgc2luY2UgaXQKKyAqIGRlZmluZXMgc3RhdGljX2Fzc2VydCBldmVuIHdpdGggLXN0ZD1jOTksIGJ1dCB0aGVuIGNvbXBsYWlucyBhYm91dCBpdC4KKyAqLworI2lmIGRlZmluZWQoc3RhdGljX2Fzc2VydCkgJiYgIWRlZmluZWQoX19GcmVlQlNEX18pCisjZGVmaW5lIE1CRURUTFNfU1RBVElDX0FTU0VSVChleHByLCBtc2cpICAgIHN0YXRpY19hc3NlcnQoZXhwciwgbXNnKTsKKyNlbHNlCisjZGVmaW5lIE1CRURUTFNfU1RBVElDX0FTU0VSVChleHByLCBtc2cpCisjZW5kaWYKKworI2lmIGRlZmluZWQoX19oYXNfYnVpbHRpbikKKyNkZWZpbmUgTUJFRFRMU19IQVNfQlVJTFRJTih4KSBfX2hhc19idWlsdGluKHgpCisjZWxzZQorI2RlZmluZSBNQkVEVExTX0hBU19CVUlMVElOKHgpIDAKKyNlbmRpZgorCisvKiBEZWZpbmUgY29tcGlsZXIgYnJhbmNoIGhpbnRzICovCisjaWYgTUJFRFRMU19IQVNfQlVJTFRJTihfX2J1aWx0aW5fZXhwZWN0KQorI2RlZmluZSBNQkVEVExTX0xJS0VMWSh4KSAgICAgICBfX2J1aWx0aW5fZXhwZWN0KCEhKHgpLCAxKQorI2RlZmluZSBNQkVEVExTX1VOTElLRUxZKHgpICAgICBfX2J1aWx0aW5fZXhwZWN0KCEhKHgpLCAwKQorI2Vsc2UKKyNkZWZpbmUgTUJFRFRMU19MSUtFTFkoeCkgICAgICAgeAorI2RlZmluZSBNQkVEVExTX1VOTElLRUxZKHgpICAgICB4CisjZW5kaWYKKworLyogTUJFRFRMU19BU1NVTUUgbWF5IGJlIHVzZWQgdG8gcHJvdmlkZSBhZGRpdGlvbmFsIGluZm9ybWF0aW9uIHRvIHRoZSBjb21waWxlcgorICogd2hpY2ggY2FuIHJlc3VsdCBpbiBzbWFsbGVyIGNvZGUtc2l6ZS4gKi8KKyNpZiBNQkVEVExTX0hBU19CVUlMVElOKF9fYnVpbHRpbl9hc3N1bWUpCisvKiBjbGFuZyBwcm92aWRlcyBfX2J1aWx0aW5fYXNzdW1lICovCisjZGVmaW5lIE1CRURUTFNfQVNTVU1FKHgpICAgICAgIF9fYnVpbHRpbl9hc3N1bWUoeCkKKyNlbGlmIE1CRURUTFNfSEFTX0JVSUxUSU4oX19idWlsdGluX3VucmVhY2hhYmxlKQorLyogZ2NjIGFuZCBJQVIgY2FuIHVzZSBfX2J1aWx0aW5fdW5yZWFjaGFibGUgKi8KKyNkZWZpbmUgTUJFRFRMU19BU1NVTUUoeCkgICAgICAgZG8geyBpZiAoISh4KSkgX19idWlsdGluX3VucmVhY2hhYmxlKCk7IH0gd2hpbGUgKDApCisjZWxpZiBkZWZpbmVkKF9NU0NfVkVSKQorLyogU3VwcG9ydGVkIGJ5IE1TVkMgc2luY2UgVlMgMjAwNSAqLworI2RlZmluZSBNQkVEVExTX0FTU1VNRSh4KSAgICAgICBfX2Fzc3VtZSh4KQorI2Vsc2UKKyNkZWZpbmUgTUJFRFRMU19BU1NVTUUoeCkgICAgICAgZG8geyB9IHdoaWxlICgwKQorI2VuZGlmCisKKy8qIEZvciBnY2MgLU9zLCBvdmVycmlkZSB3aXRoIC1PMiBmb3IgYSBnaXZlbiBmdW5jdGlvbi4KKyAqCisgKiBUaGlzIHdpbGwgbm90IGFmZmVjdCBiZWhhdmlvdXIgZm9yIG90aGVyIG9wdGltaXNhdGlvbiBzZXR0aW5ncywgZS5nLiAtTzAuCisgKi8KKyNpZiBkZWZpbmVkKE1CRURUTFNfQ09NUElMRVJfSVNfR0NDKSAmJiBkZWZpbmVkKF9fT1BUSU1JWkVfU0laRV9fKQorI2RlZmluZSBNQkVEVExTX09QVElNSVpFX0ZPUl9QRVJGT1JNQU5DRSBfX2F0dHJpYnV0ZV9fKChvcHRpbWl6ZSgiLU8yIikpKQorI2Vsc2UKKyNkZWZpbmUgTUJFRFRMU19PUFRJTUlaRV9GT1JfUEVSRk9STUFOQ0UKKyNlbmRpZgorCisvKiBTdXBwcmVzcyBjb21waWxlciB3YXJuaW5ncyBmb3IgdW51c2VkIGZ1bmN0aW9ucyBhbmQgdmFyaWFibGVzLiAqLworI2lmICFkZWZpbmVkKE1CRURUTFNfTUFZQkVfVU5VU0VEKSAmJiBkZWZpbmVkKF9faGFzX2F0dHJpYnV0ZSkKKyMgICAgaWYgX19oYXNfYXR0cmlidXRlKHVudXNlZCkKKyMgICAgICAgIGRlZmluZSBNQkVEVExTX01BWUJFX1VOVVNFRCBfX2F0dHJpYnV0ZV9fKCh1bnVzZWQpKQorIyAgICBlbmRpZgorI2VuZGlmCisjaWYgIWRlZmluZWQoTUJFRFRMU19NQVlCRV9VTlVTRUQpICYmIGRlZmluZWQoX19HTlVDX18pCisjICAgIGRlZmluZSBNQkVEVExTX01BWUJFX1VOVVNFRCBfX2F0dHJpYnV0ZV9fKCh1bnVzZWQpKQorI2VuZGlmCisjaWYgIWRlZmluZWQoTUJFRFRMU19NQVlCRV9VTlVTRUQpICYmIGRlZmluZWQoX19JQVJfU1lTVEVNU19JQ0NfXykgJiYgZGVmaW5lZChfX1ZFUl9fKQorLyogSUFSIGRvZXMgc3VwcG9ydCBfX2F0dHJpYnV0ZV9fKCh1bnVzZWQpKSwgYnV0IG9ubHkgaWYgdGhlIC1lIGZsYWcgKGV4dGVuZGVkIGxhbmd1YWdlIHN1cHBvcnQpCisgKiBpcyBnaXZlbjsgdGhlIHByYWdtYSBhbHdheXMgd29ya3MuCisgKiBVbmZvcnR1bmF0ZWx5IHRoZSBwcmFnbWEgYWZmZWN0cyB0aGUgcmVzdCBvZiB0aGUgZmlsZSB3aGVyZSBpdCBpcyB1c2VkLCBidXQgdGhpcyBpcyBoYXJtbGVzcy4KKyAqIENoZWNrIGZvciB2ZXJzaW9uIDUuMiBvciBsYXRlciAtIHRoaXMgcHJhZ21hIG1heSBiZSBzdXBwb3J0ZWQgYnkgZWFybGllciB2ZXJzaW9ucywgYnV0IEkgd2Fzbid0CisgKiBhYmxlIHRvIGZpbmQgZG9jdW1lbnRhdGlvbikuCisgKi8KKyMgICAgaWYgKF9fVkVSX18gPj0gNTAyMDAwMCkKKyMgICAgICAgIGRlZmluZSBNQkVEVExTX01BWUJFX1VOVVNFRCBfUHJhZ21hKCJkaWFnX3N1cHByZXNzPVBlMTc3IikKKyMgICAgZW5kaWYKKyNlbmRpZgorI2lmICFkZWZpbmVkKE1CRURUTFNfTUFZQkVfVU5VU0VEKSAmJiBkZWZpbmVkKF9NU0NfVkVSKQorIyAgICBkZWZpbmUgTUJFRFRMU19NQVlCRV9VTlVTRUQgX19wcmFnbWEod2FybmluZyhzdXBwcmVzczo0MTg5KSkKKyNlbmRpZgorI2lmICFkZWZpbmVkKE1CRURUTFNfTUFZQkVfVU5VU0VEKQorIyAgICBkZWZpbmUgTUJFRFRMU19NQVlCRV9VTlVTRUQKKyNlbmRpZgorCisjZW5kaWYgLyogTUJFRFRMU19MSUJSQVJZX0NPTU1PTl9IICovCmRpZmYgLS1naXQgYS90Zi1wc2EtY3J5cHRvL2NvcmUvcHNhX2NyeXB0by5jIGIvdGYtcHNhLWNyeXB0by9jb3JlL3BzYV9jcnlwdG8uYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44MTAwYWZjCi0tLSAvZGV2L251bGwKKysrIGIvdGYtcHNhLWNyeXB0by9jb3JlL3BzYV9jcnlwdG8uYwpAQCAtMCwwICsxLDkxNzEgQEAKKy8qCisgKiAgUFNBIGNyeXB0byBsYXllciBvbiB0b3Agb2YgTWJlZCBUTFMgY3J5cHRvCisgKi8KKy8qCisgKiAgQ29weXJpZ2h0IFRoZSBNYmVkIFRMUyBDb250cmlidXRvcnMKKyAqICBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMCBPUiBHUEwtMi4wLW9yLWxhdGVyCisgKi8KKworI2luY2x1ZGUgImNvbW1vbi5oIgorI2luY2x1ZGUgInBzYV9jcnlwdG9fY29yZV9jb21tb24uaCIKKworI2lmIGRlZmluZWQoTUJFRFRMU19QU0FfQ1JZUFRPX0MpCisKKyNpZiBkZWZpbmVkKE1CRURUTFNfUFNBX0NSWVBUT19DT05GSUcpCisjaW5jbHVkZSAiY2hlY2tfY3J5cHRvX2NvbmZpZy5oIgorI2VuZGlmCisKKyNpbmNsdWRlICJwc2EvY3J5cHRvLmgiCisjaW5jbHVkZSAicHNhL2NyeXB0b192YWx1ZXMuaCIKKworI2luY2x1ZGUgInBzYV9jcnlwdG9fY2lwaGVyLmgiCisjaW5jbHVkZSAicHNhX2NyeXB0b19jb3JlLmgiCisjaW5jbHVkZSAicHNhX2NyeXB0b19pbnZhc2l2ZS5oIgorI2luY2x1ZGUgInBzYV9jcnlwdG9fZHJpdmVyX3dyYXBwZXJzLmgiCisjaW5jbHVkZSAicHNhX2NyeXB0b19kcml2ZXJfd3JhcHBlcnNfbm9fc3RhdGljLmgiCisjaW5jbHVkZSAicHNhX2NyeXB0b19lY3AuaCIKKyNpbmNsdWRlICJwc2FfY3J5cHRvX2ZmZGguaCIKKyNpbmNsdWRlICJwc2FfY3J5cHRvX2hhc2guaCIKKyNpbmNsdWRlICJwc2FfY3J5cHRvX21hYy5oIgorI2luY2x1ZGUgInBzYV9jcnlwdG9fcnNhLmgiCisjaW5jbHVkZSAicHNhX2NyeXB0b19lY3AuaCIKKyNpZiBkZWZpbmVkKE1CRURUTFNfUFNBX0NSWVBUT19TRV9DKQorI2luY2x1ZGUgInBzYV9jcnlwdG9fc2UuaCIKKyNlbmRpZgorI2luY2x1ZGUgInBzYV9jcnlwdG9fc2xvdF9tYW5hZ2VtZW50LmgiCisvKiBJbmNsdWRlIGludGVybmFsIGRlY2xhcmF0aW9ucyB0aGF0IGFyZSB1c2VmdWwgZm9yIGltcGxlbWVudGluZyBwZXJzaXN0ZW50bHkKKyAqIHN0b3JlZCBrZXlzLiAqLworI2luY2x1ZGUgInBzYV9jcnlwdG9fc3RvcmFnZS5oIgorCisjaW5jbHVkZSAicHNhX2NyeXB0b19yYW5kb21faW1wbC5oIgorCisjaW5jbHVkZSA8c3RkbGliLmg+CisjaW5jbHVkZSA8c3RyaW5nLmg+CisjaW5jbHVkZSAibWJlZHRscy9wbGF0Zm9ybS5oIgorCisjaW5jbHVkZSAibWJlZHRscy9hZXMuaCIKKyNpbmNsdWRlICJtYmVkdGxzL2FzbjEuaCIKKyNpbmNsdWRlICJtYmVkdGxzL2FzbjF3cml0ZS5oIgorI2luY2x1ZGUgIm1iZWR0bHMvYmlnbnVtLmgiCisjaW5jbHVkZSAibWJlZHRscy9jYW1lbGxpYS5oIgorI2luY2x1ZGUgIm1iZWR0bHMvY2hhY2hhMjAuaCIKKyNpbmNsdWRlICJtYmVkdGxzL2NoYWNoYXBvbHkuaCIKKyNpbmNsdWRlICJtYmVkdGxzL2NpcGhlci5oIgorI2luY2x1ZGUgIm1iZWR0bHMvY2NtLmgiCisjaW5jbHVkZSAibWJlZHRscy9jbWFjLmgiCisjaW5jbHVkZSAibWJlZHRscy9jb25zdGFudF90aW1lLmgiCisjaW5jbHVkZSAibWJlZHRscy9kZXMuaCIKKyNpbmNsdWRlICJtYmVkdGxzL2VjZGguaCIKKyNpbmNsdWRlICJtYmVkdGxzL2VjcC5oIgorI2luY2x1ZGUgIm1iZWR0bHMvZW50cm9weS5oIgorI2luY2x1ZGUgIm1iZWR0bHMvZXJyb3IuaCIKKyNpbmNsdWRlICJtYmVkdGxzL2djbS5oIgorI2luY2x1ZGUgIm1iZWR0bHMvbWQ1LmgiCisjaW5jbHVkZSAibWJlZHRscy9way5oIgorI2luY2x1ZGUgInBrX3dyYXAuaCIKKyNpbmNsdWRlICJtYmVkdGxzL3BsYXRmb3JtX3V0aWwuaCIKKyNpbmNsdWRlICJtYmVkdGxzL2Vycm9yLmgiCisjaW5jbHVkZSAibWJlZHRscy9yaXBlbWQxNjAuaCIKKyNpbmNsdWRlICJtYmVkdGxzL3JzYS5oIgorI2luY2x1ZGUgIm1iZWR0bHMvc2hhMS5oIgorI2luY2x1ZGUgIm1iZWR0bHMvc2hhMjU2LmgiCisjaW5jbHVkZSAibWJlZHRscy9zaGE1MTIuaCIKKyNpbmNsdWRlICJtYmVkdGxzL3BzYV91dGlsLmgiCisjaW5jbHVkZSAibWJlZHRscy90aHJlYWRpbmcuaCIKKworI2lmIGRlZmluZWQoTUJFRFRMU19QU0FfQlVJTFRJTl9BTEdfSEtERikgfHwgICAgICAgICAgXAorICAgIGRlZmluZWQoTUJFRFRMU19QU0FfQlVJTFRJTl9BTEdfSEtERl9FWFRSQUNUKSB8fCAgXAorICAgIGRlZmluZWQoTUJFRFRMU19QU0FfQlVJTFRJTl9BTEdfSEtERl9FWFBBTkQpCisjZGVmaW5lIEJVSUxUSU5fQUxHX0FOWV9IS0RGIDEKKyNlbmRpZgorCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKy8qIEdsb2JhbCBkYXRhLCBzdXBwb3J0IGZ1bmN0aW9ucyBhbmQgbGlicmFyeSBtYW5hZ2VtZW50ICovCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworc3RhdGljIGludCBrZXlfdHlwZV9pc19yYXdfYnl0ZXMocHNhX2tleV90eXBlX3QgdHlwZSkKK3sKKyAgICByZXR1cm4gUFNBX0tFWV9UWVBFX0lTX1VOU1RSVUNUVVJFRCh0eXBlKTsKK30KKworLyogVmFsdWVzIGZvciBwc2FfZ2xvYmFsX2RhdGFfdDo6cm5nX3N0YXRlICovCisjZGVmaW5lIFJOR19OT1RfSU5JVElBTElaRUQgMAorI2RlZmluZSBSTkdfSU5JVElBTElaRUQgMQorI2RlZmluZSBSTkdfU0VFREVEIDIKKworLyogSURzIGZvciBQU0EgY3J5cHRvIHN1YnN5c3RlbXMuIFN0YXJ0cyBhdCAxIHRvIGNhdGNoIHBvdGVudGlhbCB1bmluaXRpYWxpemVkCisgKiB2YXJpYWJsZXMgYXMgYXJndW1lbnRzLiAqLwordHlwZWRlZiBlbnVtIHsKKyAgICBQU0FfQ1JZUFRPX1NVQlNZU1RFTV9EUklWRVJfV1JBUFBFUlMgPSAxLAorICAgIFBTQV9DUllQVE9fU1VCU1lTVEVNX0tFWV9TTE9UUywKKyAgICBQU0FfQ1JZUFRPX1NVQlNZU1RFTV9STkcsCisgICAgUFNBX0NSWVBUT19TVUJTWVNURU1fVFJBTlNBQ1RJT04sCit9IG1iZWR0bHNfcHNhX2NyeXB0b19zdWJzeXN0ZW07CisKKy8qIEluaXRpYWxpemF0aW9uIGZsYWdzIGZvciBnbG9iYWxfZGF0YTo6aW5pdGlhbGl6ZWQgKi8KKyNkZWZpbmUgUFNBX0NSWVBUT19TVUJTWVNURU1fRFJJVkVSX1dSQVBQRVJTX0lOSVRJQUxJWkVEICAgIDB4MDEKKyNkZWZpbmUgUFNBX0NSWVBUT19TVUJTWVNURU1fS0VZX1NMT1RTX0lOSVRJQUxJWkVEICAgICAgICAgIDB4MDIKKyNkZWZpbmUgUFNBX0NSWVBUT19TVUJTWVNURU1fVFJBTlNBQ1RJT05fSU5JVElBTElaRUQgICAgICAgIDB4MDQKKworI2RlZmluZSBQU0FfQ1JZUFRPX1NVQlNZU1RFTV9BTExfSU5JVElBTElTRUQgICAgICAgICAgICAgICAgKCBcCisgICAgICAgIFBTQV9DUllQVE9fU1VCU1lTVEVNX0RSSVZFUl9XUkFQUEVSU19JTklUSUFMSVpFRCB8IFwKKyAgICAgICAgUFNBX0NSWVBUT19TVUJTWVNURU1fS0VZX1NMT1RTX0lOSVRJQUxJWkVEIHwgXAorICAgICAgICBQU0FfQ1JZUFRPX1NVQlNZU1RFTV9UUkFOU0FDVElPTl9JTklUSUFMSVpFRCkKKwordHlwZWRlZiBzdHJ1Y3QgeworICAgIHVpbnQ4X3QgaW5pdGlhbGl6ZWQ7CisgICAgdWludDhfdCBybmdfc3RhdGU7CisgICAgbWJlZHRsc19wc2FfcmFuZG9tX2NvbnRleHRfdCBybmc7Cit9IHBzYV9nbG9iYWxfZGF0YV90OworCitzdGF0aWMgcHNhX2dsb2JhbF9kYXRhX3QgZ2xvYmFsX2RhdGE7CisKK3N0YXRpYyB1aW50OF90IHBzYV9nZXRfaW5pdGlhbGl6ZWQodm9pZCkKK3sKKyAgICB1aW50OF90IGluaXRpYWxpemVkOworCisjaWYgZGVmaW5lZChNQkVEVExTX1RIUkVBRElOR19DKQorICAgIG1iZWR0bHNfbXV0ZXhfbG9jaygmbWJlZHRsc190aHJlYWRpbmdfcHNhX3JuZ2RhdGFfbXV0ZXgpOworI2VuZGlmIC8qIGRlZmluZWQoTUJFRFRMU19USFJFQURJTkdfQykgKi8KKworICAgIGluaXRpYWxpemVkID0gZ2xvYmFsX2RhdGEucm5nX3N0YXRlID09IFJOR19TRUVERUQ7CisKKyNpZiBkZWZpbmVkKE1CRURUTFNfVEhSRUFESU5HX0MpCisgICAgbWJlZHRsc19tdXRleF91bmxvY2soJm1iZWR0bHNfdGhyZWFkaW5nX3BzYV9ybmdkYXRhX211dGV4KTsKKyNlbmRpZiAvKiBkZWZpbmVkKE1CRURUTFNfVEhSRUFESU5HX0MpICovCisKKyNpZiBkZWZpbmVkKE1CRURUTFNfVEhSRUFESU5HX0MpCisgICAgbWJlZHRsc19tdXRleF9sb2NrKCZtYmVkdGxzX3RocmVhZGluZ19wc2FfZ2xvYmFsZGF0YV9tdXRleCk7CisjZW5kaWYgLyogZGVmaW5lZChNQkVEVExTX1RIUkVBRElOR19DKSAqLworCisgICAgaW5pdGlhbGl6ZWQgPQorICAgICAgICAoaW5pdGlhbGl6ZWQgJiYgKGdsb2JhbF9kYXRhLmluaXRpYWxpemVkID09IFBTQV9DUllQVE9fU1VCU1lTVEVNX0FMTF9JTklUSUFMSVNFRCkpOworCisjaWYgZGVmaW5lZChNQkVEVExTX1RIUkVBRElOR19DKQorICAgIG1iZWR0bHNfbXV0ZXhfdW5sb2NrKCZtYmVkdGxzX3RocmVhZGluZ19wc2FfZ2xvYmFsZGF0YV9tdXRleCk7CisjZW5kaWYgLyogZGVmaW5lZChNQkVEVExTX1RIUkVBRElOR19DKSAqLworCisgICAgcmV0dXJuIGluaXRpYWxpemVkOworfQorCitzdGF0aWMgdWludDhfdCBwc2FfZ2V0X2RyaXZlcnNfaW5pdGlhbGl6ZWQodm9pZCkKK3sKKyAgICB1aW50OF90IGluaXRpYWxpemVkOworCisjaWYgZGVmaW5lZChNQkVEVExTX1RIUkVBRElOR19DKQorICAgIG1iZWR0bHNfbXV0ZXhfbG9jaygmbWJlZHRsc190aHJlYWRpbmdfcHNhX2dsb2JhbGRhdGFfbXV0ZXgpOworI2VuZGlmIC8qIGRlZmluZWQoTUJFRFRMU19USFJFQURJTkdfQykgKi8KKworICAgIGluaXRpYWxpemVkID0gKGdsb2JhbF9kYXRhLmluaXRpYWxpemVkICYgUFNBX0NSWVBUT19TVUJTWVNURU1fRFJJVkVSX1dSQVBQRVJTX0lOSVRJQUxJWkVEKSAhPSAwOworCisjaWYgZGVmaW5lZChNQkVEVExTX1RIUkVBRElOR19DKQorICAgIG1iZWR0bHNfbXV0ZXhfdW5sb2NrKCZtYmVkdGxzX3RocmVhZGluZ19wc2FfZ2xvYmFsZGF0YV9tdXRleCk7CisjZW5kaWYgLyogZGVmaW5lZChNQkVEVExTX1RIUkVBRElOR19DKSAqLworCisgICAgcmV0dXJuIGluaXRpYWxpemVkOworfQorCisjZGVmaW5lIEdVQVJEX01PRFVMRV9JTklUSUFMSVpFRCAgICAgICAgXAorICAgIGlmIChwc2FfZ2V0X2luaXRpYWxpemVkKCkgPT0gMCkgICAgIFwKKyAgICByZXR1cm4gUFNBX0VSUk9SX0JBRF9TVEFURTsKKworI2lmICFkZWZpbmVkKE1CRURUTFNfUFNBX0FTU1VNRV9FWENMVVNJVkVfQlVGRkVSUykKKworLyogRGVjbGFyZSBhIGxvY2FsIGNvcHkgb2YgYW4gaW5wdXQgYnVmZmVyIGFuZCBhIHZhcmlhYmxlIHRoYXQgd2lsbCBiZSB1c2VkCisgKiB0byBzdG9yZSBhIHBvaW50ZXIgdG8gdGhlIHN0YXJ0IG9mIHRoZSBidWZmZXIuCisgKgorICogTm90ZTogVGhpcyBtYWNybyBtdXN0IGJlIGNhbGxlZCBiZWZvcmUgYW55IG9wZXJhdGlvbnMgd2hpY2ggbWF5IGp1bXAgdG8KKyAqIHRoZSBleGl0IGxhYmVsLCBzbyB0aGF0IHRoZSBsb2NhbCBpbnB1dCBjb3B5IG9iamVjdCBpcyBzYWZlIHRvIGJlIGZyZWVkLgorICoKKyAqIEFzc3VtcHRpb25zOgorICogLSBpbnB1dCBpcyB0aGUgbmFtZSBvZiBhIHBvaW50ZXIgdG8gdGhlIGJ1ZmZlciB0byBiZSBjb3BpZWQKKyAqIC0gVGhlIG5hbWUgTE9DQUxfSU5QVVRfQ09QWV9PRl9pbnB1dCBpcyB1bnVzZWQgaW4gdGhlIGN1cnJlbnQgc2NvcGUKKyAqIC0gaW5wdXRfY29weV9uYW1lIGlzIGEgbmFtZSB0aGF0IGlzIHVudXNlZCBpbiB0aGUgY3VycmVudCBzY29wZQorICovCisjZGVmaW5lIExPQ0FMX0lOUFVUX0RFQ0xBUkUoaW5wdXQsIGlucHV0X2NvcHlfbmFtZSkgXAorICAgIHBzYV9jcnlwdG9fbG9jYWxfaW5wdXRfdCBMT0NBTF9JTlBVVF9DT1BZX09GXyMjaW5wdXQgPSBQU0FfQ1JZUFRPX0xPQ0FMX0lOUFVUX0lOSVQ7IFwKKyAgICBjb25zdCB1aW50OF90ICppbnB1dF9jb3B5X25hbWUgPSBOVUxMOworCisvKiBBbGxvY2F0ZSBhIGNvcHkgb2YgdGhlIGJ1ZmZlciBpbnB1dCBhbmQgc2V0IHRoZSBwb2ludGVyIGlucHV0X2NvcHkgdG8KKyAqIHBvaW50IHRvIHRoZSBzdGFydCBvZiB0aGUgY29weS4KKyAqCisgKiBBc3N1bXB0aW9uczoKKyAqIC0gcHNhX3N0YXR1c190IHN0YXR1cyBleGlzdHMKKyAqIC0gQW4gZXhpdCBsYWJlbCBpcyBkZWNsYXJlZAorICogLSBpbnB1dCBpcyB0aGUgbmFtZSBvZiBhIHBvaW50ZXIgdG8gdGhlIGJ1ZmZlciB0byBiZSBjb3BpZWQKKyAqIC0gTE9DQUxfSU5QVVRfREVDTEFSRShpbnB1dCwgaW5wdXRfY29weSkgaGFzIHByZXZpb3VzbHkgYmVlbiBjYWxsZWQKKyAqLworI2RlZmluZSBMT0NBTF9JTlBVVF9BTExPQyhpbnB1dCwgbGVuZ3RoLCBpbnB1dF9jb3B5KSBcCisgICAgc3RhdHVzID0gcHNhX2NyeXB0b19sb2NhbF9pbnB1dF9hbGxvYyhpbnB1dCwgbGVuZ3RoLCBcCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmTE9DQUxfSU5QVVRfQ09QWV9PRl8jI2lucHV0KTsgXAorICAgIGlmIChzdGF0dXMgIT0gUFNBX1NVQ0NFU1MpIHsgXAorICAgICAgICBnb3RvIGV4aXQ7IFwKKyAgICB9IFwKKyAgICBpbnB1dF9jb3B5ID0gTE9DQUxfSU5QVVRfQ09QWV9PRl8jI2lucHV0LmJ1ZmZlcjsKKworLyogRnJlZSB0aGUgbG9jYWwgaW5wdXQgY29weSBhbGxvY2F0ZWQgcHJldmlvdXNseSBieSBMT0NBTF9JTlBVVF9BTExPQygpCisgKgorICogQXNzdW1wdGlvbnM6CisgKiAtIGlucHV0X2NvcHkgaXMgdGhlIG5hbWUgb2YgdGhlIGlucHV0IGNvcHkgcG9pbnRlciBzZXQgYnkgTE9DQUxfSU5QVVRfQUxMT0MoKQorICogLSBpbnB1dCBpcyB0aGUgbmFtZSBvZiB0aGUgb3JpZ2luYWwgYnVmZmVyIHRoYXQgd2FzIGNvcGllZAorICovCisjZGVmaW5lIExPQ0FMX0lOUFVUX0ZSRUUoaW5wdXQsIGlucHV0X2NvcHkpIFwKKyAgICBpbnB1dF9jb3B5ID0gTlVMTDsgXAorICAgIHBzYV9jcnlwdG9fbG9jYWxfaW5wdXRfZnJlZSgmTE9DQUxfSU5QVVRfQ09QWV9PRl8jI2lucHV0KTsKKworLyogRGVjbGFyZSBhIGxvY2FsIGNvcHkgb2YgYW4gb3V0cHV0IGJ1ZmZlciBhbmQgYSB2YXJpYWJsZSB0aGF0IHdpbGwgYmUgdXNlZAorICogdG8gc3RvcmUgYSBwb2ludGVyIHRvIHRoZSBzdGFydCBvZiB0aGUgYnVmZmVyLgorICoKKyAqIE5vdGU6IFRoaXMgbWFjcm8gbXVzdCBiZSBjYWxsZWQgYmVmb3JlIGFueSBvcGVyYXRpb25zIHdoaWNoIG1heSBqdW1wIHRvCisgKiB0aGUgZXhpdCBsYWJlbCwgc28gdGhhdCB0aGUgbG9jYWwgb3V0cHV0IGNvcHkgb2JqZWN0IGlzIHNhZmUgdG8gYmUgZnJlZWQuCisgKgorICogQXNzdW1wdGlvbnM6CisgKiAtIG91dHB1dCBpcyB0aGUgbmFtZSBvZiBhIHBvaW50ZXIgdG8gdGhlIGJ1ZmZlciB0byBiZSBjb3BpZWQKKyAqIC0gVGhlIG5hbWUgTE9DQUxfT1VUUFVUX0NPUFlfT0Zfb3V0cHV0IGlzIHVudXNlZCBpbiB0aGUgY3VycmVudCBzY29wZQorICogLSBvdXRwdXRfY29weV9uYW1lIGlzIGEgbmFtZSB0aGF0IGlzIHVudXNlZCBpbiB0aGUgY3VycmVudCBzY29wZQorICovCisjZGVmaW5lIExPQ0FMX09VVFBVVF9ERUNMQVJFKG91dHB1dCwgb3V0cHV0X2NvcHlfbmFtZSkgXAorICAgIHBzYV9jcnlwdG9fbG9jYWxfb3V0cHV0X3QgTE9DQUxfT1VUUFVUX0NPUFlfT0ZfIyNvdXRwdXQgPSBQU0FfQ1JZUFRPX0xPQ0FMX09VVFBVVF9JTklUOyBcCisgICAgdWludDhfdCAqb3V0cHV0X2NvcHlfbmFtZSA9IE5VTEw7CisKKy8qIEFsbG9jYXRlIGEgY29weSBvZiB0aGUgYnVmZmVyIG91dHB1dCBhbmQgc2V0IHRoZSBwb2ludGVyIG91dHB1dF9jb3B5IHRvCisgKiBwb2ludCB0byB0aGUgc3RhcnQgb2YgdGhlIGNvcHkuCisgKgorICogQXNzdW1wdGlvbnM6CisgKiAtIHBzYV9zdGF0dXNfdCBzdGF0dXMgZXhpc3RzCisgKiAtIEFuIGV4aXQgbGFiZWwgaXMgZGVjbGFyZWQKKyAqIC0gb3V0cHV0IGlzIHRoZSBuYW1lIG9mIGEgcG9pbnRlciB0byB0aGUgYnVmZmVyIHRvIGJlIGNvcGllZAorICogLSBMT0NBTF9PVVRQVVRfREVDTEFSRShvdXRwdXQsIG91dHB1dF9jb3B5KSBoYXMgcHJldmlvdXNseSBiZWVuIGNhbGxlZAorICovCisjZGVmaW5lIExPQ0FMX09VVFBVVF9BTExPQyhvdXRwdXQsIGxlbmd0aCwgb3V0cHV0X2NvcHkpIFwKKyAgICBzdGF0dXMgPSBwc2FfY3J5cHRvX2xvY2FsX291dHB1dF9hbGxvYyhvdXRwdXQsIGxlbmd0aCwgXAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZMT0NBTF9PVVRQVVRfQ09QWV9PRl8jI291dHB1dCk7IFwKKyAgICBpZiAoc3RhdHVzICE9IFBTQV9TVUNDRVNTKSB7IFwKKyAgICAgICAgZ290byBleGl0OyBcCisgICAgfSBcCisgICAgb3V0cHV0X2NvcHkgPSBMT0NBTF9PVVRQVVRfQ09QWV9PRl8jI291dHB1dC5idWZmZXI7CisKKy8qIEZyZWUgdGhlIGxvY2FsIG91dHB1dCBjb3B5IGFsbG9jYXRlZCBwcmV2aW91c2x5IGJ5IExPQ0FMX09VVFBVVF9BTExPQygpCisgKiBhZnRlciBmaXJzdCBjb3B5aW5nIGJhY2sgaXRzIGNvbnRlbnRzIHRvIHRoZSBvcmlnaW5hbCBidWZmZXIuCisgKgorICogQXNzdW1wdGlvbnM6CisgKiAtIHBzYV9zdGF0dXNfdCBzdGF0dXMgZXhpc3RzCisgKiAtIG91dHB1dF9jb3B5IGlzIHRoZSBuYW1lIG9mIHRoZSBvdXRwdXQgY29weSBwb2ludGVyIHNldCBieSBMT0NBTF9PVVRQVVRfQUxMT0MoKQorICogLSBvdXRwdXQgaXMgdGhlIG5hbWUgb2YgdGhlIG9yaWdpbmFsIGJ1ZmZlciB0aGF0IHdhcyBjb3BpZWQKKyAqLworI2RlZmluZSBMT0NBTF9PVVRQVVRfRlJFRShvdXRwdXQsIG91dHB1dF9jb3B5KSBcCisgICAgb3V0cHV0X2NvcHkgPSBOVUxMOyBcCisgICAgZG8geyBcCisgICAgICAgIHBzYV9zdGF0dXNfdCBsb2NhbF9vdXRwdXRfc3RhdHVzOyBcCisgICAgICAgIGxvY2FsX291dHB1dF9zdGF0dXMgPSBwc2FfY3J5cHRvX2xvY2FsX291dHB1dF9mcmVlKCZMT0NBTF9PVVRQVVRfQ09QWV9PRl8jI291dHB1dCk7IFwKKyAgICAgICAgaWYgKGxvY2FsX291dHB1dF9zdGF0dXMgIT0gUFNBX1NVQ0NFU1MpIHsgXAorICAgICAgICAgICAgLyogU2luY2UgdGhpcyBlcnJvciBjYXNlIGlzIGFuIGludGVybmFsIGVycm9yLCBpdCdzIG1vcmUgc2VyaW91cyB0aGFuIFwKKyAgICAgICAgICAgICAqIGFueSBleGlzdGluZyBlcnJvciBjb2RlIGFuZCBzbyBpdCdzIGZpbmUgdG8gb3ZlcndyaXRlIHRoZSBleGlzdGluZyBcCisgICAgICAgICAgICAgKiBzdGF0dXMuICovIFwKKyAgICAgICAgICAgIHN0YXR1cyA9IGxvY2FsX291dHB1dF9zdGF0dXM7IFwKKyAgICAgICAgfSBcCisgICAgfSB3aGlsZSAoMCkKKyNlbHNlIC8qICFNQkVEVExTX1BTQV9BU1NVTUVfRVhDTFVTSVZFX0JVRkZFUlMgKi8KKyNkZWZpbmUgTE9DQUxfSU5QVVRfREVDTEFSRShpbnB1dCwgaW5wdXRfY29weV9uYW1lKSBcCisgICAgY29uc3QgdWludDhfdCAqaW5wdXRfY29weV9uYW1lID0gTlVMTDsKKyNkZWZpbmUgTE9DQUxfSU5QVVRfQUxMT0MoaW5wdXQsIGxlbmd0aCwgaW5wdXRfY29weSkgXAorICAgIGlucHV0X2NvcHkgPSBpbnB1dDsKKyNkZWZpbmUgTE9DQUxfSU5QVVRfRlJFRShpbnB1dCwgaW5wdXRfY29weSkgXAorICAgIGlucHV0X2NvcHkgPSBOVUxMOworI2RlZmluZSBMT0NBTF9PVVRQVVRfREVDTEFSRShvdXRwdXQsIG91dHB1dF9jb3B5X25hbWUpIFwKKyAgICB1aW50OF90ICpvdXRwdXRfY29weV9uYW1lID0gTlVMTDsKKyNkZWZpbmUgTE9DQUxfT1VUUFVUX0FMTE9DKG91dHB1dCwgbGVuZ3RoLCBvdXRwdXRfY29weSkgXAorICAgIG91dHB1dF9jb3B5ID0gb3V0cHV0OworI2RlZmluZSBMT0NBTF9PVVRQVVRfRlJFRShvdXRwdXQsIG91dHB1dF9jb3B5KSBcCisgICAgb3V0cHV0X2NvcHkgPSBOVUxMOworI2VuZGlmIC8qICFNQkVEVExTX1BTQV9BU1NVTUVfRVhDTFVTSVZFX0JVRkZFUlMgKi8KKworCitpbnQgcHNhX2Nhbl9kb19oYXNoKHBzYV9hbGdvcml0aG1fdCBoYXNoX2FsZykKK3sKKyAgICAodm9pZCkgaGFzaF9hbGc7CisgICAgcmV0dXJuIHBzYV9nZXRfZHJpdmVyc19pbml0aWFsaXplZCgpOworfQorCitpbnQgcHNhX2Nhbl9kb19jaXBoZXIocHNhX2tleV90eXBlX3Qga2V5X3R5cGUsIHBzYV9hbGdvcml0aG1fdCBjaXBoZXJfYWxnKQoreworICAgICh2b2lkKSBrZXlfdHlwZTsKKyAgICAodm9pZCkgY2lwaGVyX2FsZzsKKyAgICByZXR1cm4gcHNhX2dldF9kcml2ZXJzX2luaXRpYWxpemVkKCk7Cit9CisKKworI2lmIGRlZmluZWQoTUJFRFRMU19QU0FfQlVJTFRJTl9LRVlfVFlQRV9ESF9LRVlfUEFJUl9JTVBPUlQpIHx8ICAgICAgIFwKKyAgICBkZWZpbmVkKE1CRURUTFNfUFNBX0JVSUxUSU5fS0VZX1RZUEVfREhfUFVCTElDX0tFWSkgfHwgICAgIFwKKyAgICBkZWZpbmVkKFBTQV9XQU5UX0tFWV9UWVBFX0RIX0tFWV9QQUlSX0dFTkVSQVRFKQorc3RhdGljIGludCBwc2FfaXNfZGhfa2V5X3NpemVfdmFsaWQoc2l6ZV90IGJpdHMpCit7CisgICAgc3dpdGNoIChiaXRzKSB7CisjaWYgZGVmaW5lZChQU0FfV0FOVF9ESF9SRkM3OTE5XzIwNDgpCisgICAgICAgIGNhc2UgMjA0ODoKKyAgICAgICAgICAgIHJldHVybiAxOworI2VuZGlmIC8qIFBTQV9XQU5UX0RIX1JGQzc5MTlfMjA0OCAqLworI2lmIGRlZmluZWQoUFNBX1dBTlRfREhfUkZDNzkxOV8zMDcyKQorICAgICAgICBjYXNlIDMwNzI6CisgICAgICAgICAgICByZXR1cm4gMTsKKyNlbmRpZiAvKiBQU0FfV0FOVF9ESF9SRkM3OTE5XzMwNzIgKi8KKyNpZiBkZWZpbmVkKFBTQV9XQU5UX0RIX1JGQzc5MTlfNDA5NikKKyAgICAgICAgY2FzZSA0MDk2OgorICAgICAgICAgICAgcmV0dXJuIDE7CisjZW5kaWYgLyogUFNBX1dBTlRfREhfUkZDNzkxOV80MDk2ICovCisjaWYgZGVmaW5lZChQU0FfV0FOVF9ESF9SRkM3OTE5XzYxNDQpCisgICAgICAgIGNhc2UgNjE0NDoKKyAgICAgICAgICAgIHJldHVybiAxOworI2VuZGlmIC8qIFBTQV9XQU5UX0RIX1JGQzc5MTlfNjE0NCAqLworI2lmIGRlZmluZWQoUFNBX1dBTlRfREhfUkZDNzkxOV84MTkyKQorICAgICAgICBjYXNlIDgxOTI6CisgICAgICAgICAgICByZXR1cm4gMTsKKyNlbmRpZiAvKiBQU0FfV0FOVF9ESF9SRkM3OTE5XzgxOTIgKi8KKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIHJldHVybiAwOworICAgIH0KK30KKyNlbmRpZiAvKiBNQkVEVExTX1BTQV9CVUlMVElOX0tFWV9UWVBFX0RIX0tFWV9QQUlSX0lNUE9SVCB8fAorICAgICAgICAgIE1CRURUTFNfUFNBX0JVSUxUSU5fS0VZX1RZUEVfREhfUFVCTElDX0tFWSB8fAorICAgICAgICAgIFBTQV9XQU5UX0tFWV9UWVBFX0RIX0tFWV9QQUlSX0dFTkVSQVRFICovCisKK3BzYV9zdGF0dXNfdCBtYmVkdGxzX3RvX3BzYV9lcnJvcihpbnQgcmV0KQoreworICAgIC8qIE1iZWQgVExTIGVycm9yIGNvZGVzIGNhbiBjb21iaW5lIGEgaGlnaC1sZXZlbCBlcnJvciBjb2RlIGFuZCBhCisgICAgICogbG93LWxldmVsIGVycm9yIGNvZGUuIFRoZSBsb3ctbGV2ZWwgZXJyb3IgdXN1YWxseSByZWZsZWN0cyB0aGUKKyAgICAgKiByb290IGNhdXNlIGJldHRlciwgc28gZGlzcGF0Y2ggb24gdGhhdCBwcmVmZXJhYmx5LiAqLworICAgIGludCBsb3dfbGV2ZWxfcmV0ID0gLSgtcmV0ICYgMHgwMDdmKTsKKyAgICBzd2l0Y2ggKGxvd19sZXZlbF9yZXQgIT0gMCA/IGxvd19sZXZlbF9yZXQgOiByZXQpIHsKKyAgICAgICAgY2FzZSAwOgorICAgICAgICAgICAgcmV0dXJuIFBTQV9TVUNDRVNTOworCisjaWYgZGVmaW5lZChNQkVEVExTX0FFU19DKQorICAgICAgICBjYXNlIE1CRURUTFNfRVJSX0FFU19JTlZBTElEX0tFWV9MRU5HVEg6CisgICAgICAgIGNhc2UgTUJFRFRMU19FUlJfQUVTX0lOVkFMSURfSU5QVVRfTEVOR1RIOgorICAgICAgICAgICAgcmV0dXJuIFBTQV9FUlJPUl9OT1RfU1VQUE9SVEVEOworICAgICAgICBjYXNlIE1CRURUTFNfRVJSX0FFU19CQURfSU5QVVRfREFUQToKKyAgICAgICAgICAgIHJldHVybiBQU0FfRVJST1JfSU5WQUxJRF9BUkdVTUVOVDsKKyNlbmRpZgorCisjaWYgZGVmaW5lZChNQkVEVExTX0FTTjFfUEFSU0VfQykgfHwgZGVmaW5lZChNQkVEVExTX0FTTjFfV1JJVEVfQykKKyAgICAgICAgY2FzZSBNQkVEVExTX0VSUl9BU04xX09VVF9PRl9EQVRBOgorICAgICAgICBjYXNlIE1CRURUTFNfRVJSX0FTTjFfVU5FWFBFQ1RFRF9UQUc6CisgICAgICAgIGNhc2UgTUJFRFRMU19FUlJfQVNOMV9JTlZBTElEX0xFTkdUSDoKKyAgICAgICAgY2FzZSBNQkVEVExTX0VSUl9BU04xX0xFTkdUSF9NSVNNQVRDSDoKKyAgICAgICAgY2FzZSBNQkVEVExTX0VSUl9BU04xX0lOVkFMSURfREFUQToKKyAgICAgICAgICAgIHJldHVybiBQU0FfRVJST1JfSU5WQUxJRF9BUkdVTUVOVDsKKyAgICAgICAgY2FzZSBNQkVEVExTX0VSUl9BU04xX0FMTE9DX0ZBSUxFRDoKKyAgICAgICAgICAgIHJldHVybiBQU0FfRVJST1JfSU5TVUZGSUNJRU5UX01FTU9SWTsKKyAgICAgICAgY2FzZSBNQkVEVExTX0VSUl9BU04xX0JVRl9UT09fU01BTEw6CisgICAgICAgICAgICByZXR1cm4gUFNBX0VSUk9SX0JVRkZFUl9UT09fU01BTEw7CisjZW5kaWYKKworI2lmIGRlZmluZWQoTUJFRFRMU19DQU1FTExJQV9DKQorICAgICAgICBjYXNlIE1CRURUTFNfRVJSX0NBTUVMTElBX0JBRF9JTlBVVF9EQVRBOgorICAgICAgICBjYXNlIE1CRURUTFNfRVJSX0NBTUVMTElBX0lOVkFMSURfSU5QVVRfTEVOR1RIOgorICAgICAgICAgICAgcmV0dXJuIFBTQV9FUlJPUl9OT1RfU1VQUE9SVEVEOworI2VuZGlmCisKKyNpZiBkZWZpbmVkKE1CRURUTFNfQ0NNX0MpCisgICAgICAgIGNhc2UgTUJFRFRMU19FUlJfQ0NNX0JBRF9JTlBVVDoKKyAgICAgICAgICAgIHJldHVybiBQU0FfRVJST1JfSU5WQUxJRF9BUkdVTUVOVDsKKyAgICAgICAgY2FzZSBNQkVEVExTX0VSUl9DQ01fQVVUSF9GQUlMRUQ6CisgICAgICAgICAgICByZXR1cm4gUFNBX0VSUk9SX0lOVkFMSURfU0lHTkFUVVJFOworI2VuZGlmCisKKyNpZiBkZWZpbmVkKE1CRURUTFNfQ0hBQ0hBMjBfQykKKyAgICAgICAgY2FzZSBNQkVEVExTX0VSUl9DSEFDSEEyMF9CQURfSU5QVVRfREFUQToKKyAgICAgICAgICAgIHJldHVybiBQU0FfRVJST1JfSU5WQUxJRF9BUkdVTUVOVDsKKyNlbmRpZgorCisjaWYgZGVmaW5lZChNQkVEVExTX0NIQUNIQVBPTFlfQykKKyAgICAgICAgY2FzZSBNQkVEVExTX0VSUl9DSEFDSEFQT0xZX0JBRF9TVEFURToKKyAgICAgICAgICAgIHJldHVybiBQU0FfRVJST1JfQkFEX1NUQVRFOworICAgICAgICBjYXNlIE1CRURUTFNfRVJSX0NIQUNIQVBPTFlfQVVUSF9GQUlMRUQ6CisgICAgICAgICAgICByZXR1cm4gUFNBX0VSUk9SX0lOVkFMSURfU0lHTkFUVVJFOworI2VuZGlmCisKKyNpZiBkZWZpbmVkKE1CRURUTFNfQ0lQSEVSX0MpCisgICAgICAgIGNhc2UgTUJFRFRMU19FUlJfQ0lQSEVSX0ZFQVRVUkVfVU5BVkFJTEFCTEU6CisgICAgICAgICAgICByZXR1cm4gUFNBX0VSUk9SX05PVF9TVVBQT1JURUQ7CisgICAgICAgIGNhc2UgTUJFRFRMU19FUlJfQ0lQSEVSX0JBRF9JTlBVVF9EQVRBOgorICAgICAgICAgICAgcmV0dXJuIFBTQV9FUlJPUl9JTlZBTElEX0FSR1VNRU5UOworICAgICAgICBjYXNlIE1CRURUTFNfRVJSX0NJUEhFUl9BTExPQ19GQUlMRUQ6CisgICAgICAgICAgICByZXR1cm4gUFNBX0VSUk9SX0lOU1VGRklDSUVOVF9NRU1PUlk7CisgICAgICAgIGNhc2UgTUJFRFRMU19FUlJfQ0lQSEVSX0lOVkFMSURfUEFERElORzoKKyAgICAgICAgICAgIHJldHVybiBQU0FfRVJST1JfSU5WQUxJRF9QQURESU5HOworICAgICAgICBjYXNlIE1CRURUTFNfRVJSX0NJUEhFUl9GVUxMX0JMT0NLX0VYUEVDVEVEOgorICAgICAgICAgICAgcmV0dXJuIFBTQV9FUlJPUl9JTlZBTElEX0FSR1VNRU5UOworICAgICAgICBjYXNlIE1CRURUTFNfRVJSX0NJUEhFUl9BVVRIX0ZBSUxFRDoKKyAgICAgICAgICAgIHJldHVybiBQU0FfRVJST1JfSU5WQUxJRF9TSUdOQVRVUkU7CisgICAgICAgIGNhc2UgTUJFRFRMU19FUlJfQ0lQSEVSX0lOVkFMSURfQ09OVEVYVDoKKyAgICAgICAgICAgIHJldHVybiBQU0FfRVJST1JfQ09SUlVQVElPTl9ERVRFQ1RFRDsKKyNlbmRpZgorCisjaWYgIShkZWZpbmVkKE1CRURUTFNfUFNBX0NSWVBUT19FWFRFUk5BTF9STkcpIHx8ICAgICAgXAorICAgICAgICAgICAgZGVmaW5lZChNQkVEVExTX1BTQV9ITUFDX0RSQkdfTURfVFlQRSkpCisgICAgICAgIC8qIE9ubHkgY2hlY2sgQ1RSX0RSQkcgZXJyb3IgY29kZXMgaWYgdW5kZXJseWluZyBtYmVkdGxzX3h4eAorICAgICAgICAgKiBmdW5jdGlvbnMgYXJlIHBhc3NlZCBhIENUUl9EUkJHIGluc3RhbmNlLiAqLworICAgICAgICBjYXNlIE1CRURUTFNfRVJSX0NUUl9EUkJHX0VOVFJPUFlfU09VUkNFX0ZBSUxFRDoKKyAgICAgICAgICAgIHJldHVybiBQU0FfRVJST1JfSU5TVUZGSUNJRU5UX0VOVFJPUFk7CisgICAgICAgIGNhc2UgTUJFRFRMU19FUlJfQ1RSX0RSQkdfUkVRVUVTVF9UT09fQklHOgorICAgICAgICBjYXNlIE1CRURUTFNfRVJSX0NUUl9EUkJHX0lOUFVUX1RPT19CSUc6CisgICAgICAgICAgICByZXR1cm4gUFNBX0VSUk9SX05PVF9TVVBQT1JURUQ7CisgICAgICAgIGNhc2UgTUJFRFRMU19FUlJfQ1RSX0RSQkdfRklMRV9JT19FUlJPUjoKKyAgICAgICAgICAgIHJldHVybiBQU0FfRVJST1JfSU5TVUZGSUNJRU5UX0VOVFJPUFk7CisjZW5kaWYKKworI2lmIGRlZmluZWQoTUJFRFRMU19ERVNfQykKKyAgICAgICAgY2FzZSBNQkVEVExTX0VSUl9ERVNfSU5WQUxJRF9JTlBVVF9MRU5HVEg6CisgICAgICAgICAgICByZXR1cm4gUFNBX0VSUk9SX05PVF9TVVBQT1JURUQ7CisjZW5kaWYKKworICAgICAgICBjYXNlIE1CRURUTFNfRVJSX0VOVFJPUFlfTk9fU09VUkNFU19ERUZJTkVEOgorICAgICAgICBjYXNlIE1CRURUTFNfRVJSX0VOVFJPUFlfTk9fU1RST05HX1NPVVJDRToKKyAgICAgICAgY2FzZSBNQkVEVExTX0VSUl9FTlRST1BZX1NPVVJDRV9GQUlMRUQ6CisgICAgICAgICAgICByZXR1cm4gUFNBX0VSUk9SX0lOU1VGRklDSUVOVF9FTlRST1BZOworCisjaWYgZGVmaW5lZChNQkVEVExTX0dDTV9DKQorICAgICAgICBjYXNlIE1CRURUTFNfRVJSX0dDTV9BVVRIX0ZBSUxFRDoKKyAgICAgICAgICAgIHJldHVybiBQU0FfRVJST1JfSU5WQUxJRF9TSUdOQVRVUkU7CisgICAgICAgIGNhc2UgTUJFRFRMU19FUlJfR0NNX0JVRkZFUl9UT09fU01BTEw6CisgICAgICAgICAgICByZXR1cm4gUFNBX0VSUk9SX0JVRkZFUl9UT09fU01BTEw7CisgICAgICAgIGNhc2UgTUJFRFRMU19FUlJfR0NNX0JBRF9JTlBVVDoKKyAgICAgICAgICAgIHJldHVybiBQU0FfRVJST1JfSU5WQUxJRF9BUkdVTUVOVDsKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoTUJFRFRMU19QU0FfQ1JZUFRPX0VYVEVSTkFMX1JORykgJiYgICAgICAgIFwKKyAgICAgICAgICAgIGRlZmluZWQoTUJFRFRMU19QU0FfSE1BQ19EUkJHX01EX1RZUEUpCisgICAgICAgIC8qIE9ubHkgY2hlY2sgSE1BQ19EUkJHIGVycm9yIGNvZGVzIGlmIHVuZGVybHlpbmcgbWJlZHRsc194eHgKKyAgICAgICAgICogZnVuY3Rpb25zIGFyZSBwYXNzZWQgYSBITUFDX0RSQkcgaW5zdGFuY2UuICovCisgICAgICAgIGNhc2UgTUJFRFRMU19FUlJfSE1BQ19EUkJHX0VOVFJPUFlfU09VUkNFX0ZBSUxFRDoKKyAgICAgICAgICAgIHJldHVybiBQU0FfRVJST1JfSU5TVUZGSUNJRU5UX0VOVFJPUFk7CisgICAgICAgIGNhc2UgTUJFRFRMU19FUlJfSE1BQ19EUkJHX1JFUVVFU1RfVE9PX0JJRzoKKyAgICAgICAgY2FzZSBNQkVEVExTX0VSUl9ITUFDX0RSQkdfSU5QVVRfVE9PX0JJRzoKKyAgICAgICAgICAgIHJldHVybiBQU0FfRVJST1JfTk9UX1NVUFBPUlRFRDsKKyAgICAgICAgY2FzZSBNQkVEVExTX0VSUl9ITUFDX0RSQkdfRklMRV9JT19FUlJPUjoKKyAgICAgICAgICAgIHJldHVybiBQU0FfRVJST1JfSU5TVUZGSUNJRU5UX0VOVFJPUFk7CisjZW5kaWYKKworI2lmIGRlZmluZWQoTUJFRFRMU19NRF9MSUdIVCkKKyAgICAgICAgY2FzZSBNQkVEVExTX0VSUl9NRF9GRUFUVVJFX1VOQVZBSUxBQkxFOgorICAgICAgICAgICAgcmV0dXJuIFBTQV9FUlJPUl9OT1RfU1VQUE9SVEVEOworICAgICAgICBjYXNlIE1CRURUTFNfRVJSX01EX0JBRF9JTlBVVF9EQVRBOgorICAgICAgICAgICAgcmV0dXJuIFBTQV9FUlJPUl9JTlZBTElEX0FSR1VNRU5UOworICAgICAgICBjYXNlIE1CRURUTFNfRVJSX01EX0FMTE9DX0ZBSUxFRDoKKyAgICAgICAgICAgIHJldHVybiBQU0FfRVJST1JfSU5TVUZGSUNJRU5UX01FTU9SWTsKKyNpZiBkZWZpbmVkKE1CRURUTFNfRlNfSU8pCisgICAgICAgIGNhc2UgTUJFRFRMU19FUlJfTURfRklMRV9JT19FUlJPUjoKKyAgICAgICAgICAgIHJldHVybiBQU0FfRVJST1JfU1RPUkFHRV9GQUlMVVJFOworI2VuZGlmCisjZW5kaWYKKworI2lmIGRlZmluZWQoTUJFRFRMU19CSUdOVU1fQykKKyNpZiBkZWZpbmVkKE1CRURUTFNfRlNfSU8pCisgICAgICAgIGNhc2UgTUJFRFRMU19FUlJfTVBJX0ZJTEVfSU9fRVJST1I6CisgICAgICAgICAgICByZXR1cm4gUFNBX0VSUk9SX1NUT1JBR0VfRkFJTFVSRTsKKyNlbmRpZgorICAgICAgICBjYXNlIE1CRURUTFNfRVJSX01QSV9CQURfSU5QVVRfREFUQToKKyAgICAgICAgICAgIHJldHVybiBQU0FfRVJST1JfSU5WQUxJRF9BUkdVTUVOVDsKKyAgICAgICAgY2FzZSBNQkVEVExTX0VSUl9NUElfSU5WQUxJRF9DSEFSQUNURVI6CisgICAgICAgICAgICByZXR1cm4gUFNBX0VSUk9SX0lOVkFMSURfQVJHVU1FTlQ7CisgICAgICAgIGNhc2UgTUJFRFRMU19FUlJfTVBJX0JVRkZFUl9UT09fU01BTEw6CisgICAgICAgICAgICByZXR1cm4gUFNBX0VSUk9SX0JVRkZFUl9UT09fU01BTEw7CisgICAgICAgIGNhc2UgTUJFRFRMU19FUlJfTVBJX05FR0FUSVZFX1ZBTFVFOgorICAgICAgICAgICAgcmV0dXJuIFBTQV9FUlJPUl9JTlZBTElEX0FSR1VNRU5UOworICAgICAgICBjYXNlIE1CRURUTFNfRVJSX01QSV9ESVZJU0lPTl9CWV9aRVJPOgorICAgICAgICAgICAgcmV0dXJuIFBTQV9FUlJPUl9JTlZBTElEX0FSR1VNRU5UOworICAgICAgICBjYXNlIE1CRURUTFNfRVJSX01QSV9OT1RfQUNDRVBUQUJMRToKKyAgICAgICAgICAgIHJldHVybiBQU0FfRVJST1JfSU5WQUxJRF9BUkdVTUVOVDsKKyAgICAgICAgY2FzZSBNQkVEVExTX0VSUl9NUElfQUxMT0NfRkFJTEVEOgorICAgICAgICAgICAgcmV0dXJuIFBTQV9FUlJPUl9JTlNVRkZJQ0lFTlRfTUVNT1JZOworI2VuZGlmCisKKyNpZiBkZWZpbmVkKE1CRURUTFNfUEtfQykKKyAgICAgICAgY2FzZSBNQkVEVExTX0VSUl9QS19BTExPQ19GQUlMRUQ6CisgICAgICAgICAgICByZXR1cm4gUFNBX0VSUk9SX0lOU1VGRklDSUVOVF9NRU1PUlk7CisgICAgICAgIGNhc2UgTUJFRFRMU19FUlJfUEtfVFlQRV9NSVNNQVRDSDoKKyAgICAgICAgY2FzZSBNQkVEVExTX0VSUl9QS19CQURfSU5QVVRfREFUQToKKyAgICAgICAgICAgIHJldHVybiBQU0FfRVJST1JfSU5WQUxJRF9BUkdVTUVOVDsKKyNpZiBkZWZpbmVkKE1CRURUTFNfUFNBX0NSWVBUT19TVE9SQUdFX0MpIHx8IGRlZmluZWQoTUJFRFRMU19GU19JTykgfHwgXAorICAgICAgICAgICAgZGVmaW5lZChNQkVEVExTX1BTQV9JVFNfRklMRV9DKQorICAgICAgICBjYXNlIE1CRURUTFNfRVJSX1BLX0ZJTEVfSU9fRVJST1I6CisgICAgICAgICAgICByZXR1cm4gUFNBX0VSUk9SX1NUT1JBR0VfRkFJTFVSRTsKKyNlbmRpZgorICAgICAgICBjYXNlIE1CRURUTFNfRVJSX1BLX0tFWV9JTlZBTElEX1ZFUlNJT046CisgICAgICAgIGNhc2UgTUJFRFRMU19FUlJfUEtfS0VZX0lOVkFMSURfRk9STUFUOgorICAgICAgICAgICAgcmV0dXJuIFBTQV9FUlJPUl9JTlZBTElEX0FSR1VNRU5UOworICAgICAgICBjYXNlIE1CRURUTFNfRVJSX1BLX1VOS05PV05fUEtfQUxHOgorICAgICAgICAgICAgcmV0dXJuIFBTQV9FUlJPUl9OT1RfU1VQUE9SVEVEOworICAgICAgICBjYXNlIE1CRURUTFNfRVJSX1BLX1BBU1NXT1JEX1JFUVVJUkVEOgorICAgICAgICBjYXNlIE1CRURUTFNfRVJSX1BLX1BBU1NXT1JEX01JU01BVENIOgorICAgICAgICAgICAgcmV0dXJuIFBTQV9FUlJPUl9OT1RfUEVSTUlUVEVEOworICAgICAgICBjYXNlIE1CRURUTFNfRVJSX1BLX0lOVkFMSURfUFVCS0VZOgorICAgICAgICAgICAgcmV0dXJuIFBTQV9FUlJPUl9JTlZBTElEX0FSR1VNRU5UOworICAgICAgICBjYXNlIE1CRURUTFNfRVJSX1BLX0lOVkFMSURfQUxHOgorICAgICAgICBjYXNlIE1CRURUTFNfRVJSX1BLX1VOS05PV05fTkFNRURfQ1VSVkU6CisgICAgICAgIGNhc2UgTUJFRFRMU19FUlJfUEtfRkVBVFVSRV9VTkFWQUlMQUJMRToKKyAgICAgICAgICAgIHJldHVybiBQU0FfRVJST1JfTk9UX1NVUFBPUlRFRDsKKyAgICAgICAgY2FzZSBNQkVEVExTX0VSUl9QS19TSUdfTEVOX01JU01BVENIOgorICAgICAgICAgICAgcmV0dXJuIFBTQV9FUlJPUl9JTlZBTElEX1NJR05BVFVSRTsKKyAgICAgICAgY2FzZSBNQkVEVExTX0VSUl9QS19CVUZGRVJfVE9PX1NNQUxMOgorICAgICAgICAgICAgcmV0dXJuIFBTQV9FUlJPUl9CVUZGRVJfVE9PX1NNQUxMOworI2VuZGlmCisKKyAgICAgICAgY2FzZSBNQkVEVExTX0VSUl9QTEFURk9STV9IV19BQ0NFTF9GQUlMRUQ6CisgICAgICAgICAgICByZXR1cm4gUFNBX0VSUk9SX0hBUkRXQVJFX0ZBSUxVUkU7CisgICAgICAgIGNhc2UgTUJFRFRMU19FUlJfUExBVEZPUk1fRkVBVFVSRV9VTlNVUFBPUlRFRDoKKyAgICAgICAgICAgIHJldHVybiBQU0FfRVJST1JfTk9UX1NVUFBPUlRFRDsKKworI2lmIGRlZmluZWQoTUJFRFRMU19SU0FfQykKKyAgICAgICAgY2FzZSBNQkVEVExTX0VSUl9SU0FfQkFEX0lOUFVUX0RBVEE6CisgICAgICAgICAgICByZXR1cm4gUFNBX0VSUk9SX0lOVkFMSURfQVJHVU1FTlQ7CisgICAgICAgIGNhc2UgTUJFRFRMU19FUlJfUlNBX0lOVkFMSURfUEFERElORzoKKyAgICAgICAgICAgIHJldHVybiBQU0FfRVJST1JfSU5WQUxJRF9QQURESU5HOworICAgICAgICBjYXNlIE1CRURUTFNfRVJSX1JTQV9LRVlfR0VOX0ZBSUxFRDoKKyAgICAgICAgICAgIHJldHVybiBQU0FfRVJST1JfSEFSRFdBUkVfRkFJTFVSRTsKKyAgICAgICAgY2FzZSBNQkVEVExTX0VSUl9SU0FfS0VZX0NIRUNLX0ZBSUxFRDoKKyAgICAgICAgICAgIHJldHVybiBQU0FfRVJST1JfSU5WQUxJRF9BUkdVTUVOVDsKKyAgICAgICAgY2FzZSBNQkVEVExTX0VSUl9SU0FfUFVCTElDX0ZBSUxFRDoKKyAgICAgICAgY2FzZSBNQkVEVExTX0VSUl9SU0FfUFJJVkFURV9GQUlMRUQ6CisgICAgICAgICAgICByZXR1cm4gUFNBX0VSUk9SX0NPUlJVUFRJT05fREVURUNURUQ7CisgICAgICAgIGNhc2UgTUJFRFRMU19FUlJfUlNBX1ZFUklGWV9GQUlMRUQ6CisgICAgICAgICAgICByZXR1cm4gUFNBX0VSUk9SX0lOVkFMSURfU0lHTkFUVVJFOworICAgICAgICBjYXNlIE1CRURUTFNfRVJSX1JTQV9PVVRQVVRfVE9PX0xBUkdFOgorICAgICAgICAgICAgcmV0dXJuIFBTQV9FUlJPUl9CVUZGRVJfVE9PX1NNQUxMOworICAgICAgICBjYXNlIE1CRURUTFNfRVJSX1JTQV9STkdfRkFJTEVEOgorICAgICAgICAgICAgcmV0dXJuIFBTQV9FUlJPUl9JTlNVRkZJQ0lFTlRfRU5UUk9QWTsKKyNlbmRpZgorCisjaWYgZGVmaW5lZChNQkVEVExTX0VDUF9MSUdIVCkKKyAgICAgICAgY2FzZSBNQkVEVExTX0VSUl9FQ1BfQkFEX0lOUFVUX0RBVEE6CisgICAgICAgIGNhc2UgTUJFRFRMU19FUlJfRUNQX0lOVkFMSURfS0VZOgorICAgICAgICAgICAgcmV0dXJuIFBTQV9FUlJPUl9JTlZBTElEX0FSR1VNRU5UOworICAgICAgICBjYXNlIE1CRURUTFNfRVJSX0VDUF9CVUZGRVJfVE9PX1NNQUxMOgorICAgICAgICAgICAgcmV0dXJuIFBTQV9FUlJPUl9CVUZGRVJfVE9PX1NNQUxMOworICAgICAgICBjYXNlIE1CRURUTFNfRVJSX0VDUF9GRUFUVVJFX1VOQVZBSUxBQkxFOgorICAgICAgICAgICAgcmV0dXJuIFBTQV9FUlJPUl9OT1RfU1VQUE9SVEVEOworICAgICAgICBjYXNlIE1CRURUTFNfRVJSX0VDUF9TSUdfTEVOX01JU01BVENIOgorICAgICAgICBjYXNlIE1CRURUTFNfRVJSX0VDUF9WRVJJRllfRkFJTEVEOgorICAgICAgICAgICAgcmV0dXJuIFBTQV9FUlJPUl9JTlZBTElEX1NJR05BVFVSRTsKKyAgICAgICAgY2FzZSBNQkVEVExTX0VSUl9FQ1BfQUxMT0NfRkFJTEVEOgorICAgICAgICAgICAgcmV0dXJuIFBTQV9FUlJPUl9JTlNVRkZJQ0lFTlRfTUVNT1JZOworICAgICAgICBjYXNlIE1CRURUTFNfRVJSX0VDUF9SQU5ET01fRkFJTEVEOgorICAgICAgICAgICAgcmV0dXJuIFBTQV9FUlJPUl9JTlNVRkZJQ0lFTlRfRU5UUk9QWTsKKworI2lmIGRlZmluZWQoTUJFRFRMU19FQ1BfUkVTVEFSVEFCTEUpCisgICAgICAgIGNhc2UgTUJFRFRMU19FUlJfRUNQX0lOX1BST0dSRVNTOgorICAgICAgICAgICAgcmV0dXJuIFBTQV9PUEVSQVRJT05fSU5DT01QTEVURTsKKyNlbmRpZgorI2VuZGlmCisKKyAgICAgICAgY2FzZSBNQkVEVExTX0VSUl9FUlJPUl9DT1JSVVBUSU9OX0RFVEVDVEVEOgorICAgICAgICAgICAgcmV0dXJuIFBTQV9FUlJPUl9DT1JSVVBUSU9OX0RFVEVDVEVEOworCisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICByZXR1cm4gUFNBX0VSUk9SX0dFTkVSSUNfRVJST1I7CisgICAgfQorfQorCisvKioKKyAqIFxicmllZiAgICAgICAgICAgICAgICAgICAgICAgRm9yIG91dHB1dCBidWZmZXJzIHdoaWNoIGNvbnRhaW4gInRhZ3MiCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvdXRwdXRzIHRoYXQgbWF5IGJlIGNoZWNrZWQgZm9yIHZhbGlkaXR5IGxpa2UKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFzaGVzLCBNQUNzIGFuZCBzaWduYXR1cmVzKSwgZmlsbCB0aGUgdW51c2VkCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhcnQgb2YgdGhlIG91dHB1dCBidWZmZXIgKHRoZSB3aG9sZSBidWZmZXIgb24KKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3IsIHRoZSB0cmFpbGluZyBwYXJ0IG9uIHN1Y2Nlc3MpIHdpdGgKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc29tZXRoaW5nIHRoYXQgaXNuJ3QgYSB2YWxpZCB0YWcgKGJhcnJpbmcgYW4KKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXR0YWNrIG9uIHRoZSB0YWcgYW5kIGRlbGliZXJhdGVseS1jcmFmdGVkCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlucHV0KSwgaW4gY2FzZSB0aGUgY2FsbGVyIGRvZXNuJ3QgY2hlY2sgdGhlCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBzdGF0dXMgcHJvcGVybHkuCisgKgorICogXHBhcmFtIG91dHB1dF9idWZmZXIgICAgICAgICBQb2ludGVyIHRvIGJ1ZmZlciB0byB3aXBlLiBNYXkgbm90IGJlIE5VTEwKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5sZXNzIFxwIG91dHB1dF9idWZmZXJfc2l6ZSBpcyB6ZXJvLgorICogXHBhcmFtIHN0YXR1cyAgICAgICAgICAgICAgICBTdGF0dXMgb2YgZnVuY3Rpb24gY2FsbGVkIHRvIGdlbmVyYXRlCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG91dHB1dF9idWZmZXIgb3JpZ2luYWxseQorICogXHBhcmFtIG91dHB1dF9idWZmZXJfc2l6ZSAgICBTaXplIG9mIG91dHB1dCBidWZmZXIuIElmIHplcm8sIFxwIG91dHB1dF9idWZmZXIKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY291bGQgYmUgTlVMTC4KKyAqIFxwYXJhbSBvdXRwdXRfYnVmZmVyX2xlbmd0aCAgTGVuZ3RoIG9mIGRhdGEgd3JpdHRlbiB0byBvdXRwdXRfYnVmZmVyLCBtdXN0IGJlCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxlc3MgdGhhbiBccCBvdXRwdXRfYnVmZmVyX3NpemUKKyAqLworc3RhdGljIHZvaWQgcHNhX3dpcGVfdGFnX291dHB1dF9idWZmZXIodWludDhfdCAqb3V0cHV0X2J1ZmZlciwgcHNhX3N0YXR1c190IHN0YXR1cywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBvdXRwdXRfYnVmZmVyX3NpemUsIHNpemVfdCBvdXRwdXRfYnVmZmVyX2xlbmd0aCkKK3sKKyAgICBzaXplX3Qgb2Zmc2V0ID0gMDsKKworICAgIGlmIChvdXRwdXRfYnVmZmVyX3NpemUgPT0gMCkgeworICAgICAgICAvKiBJZiBvdXRwdXRfYnVmZmVyX3NpemUgaXMgMCB0aGVuIHdlIGhhdmUgbm90aGluZyB0byBkby4gV2UgbXVzdCBub3QKKyAgICAgICAgICAgY2FsbCBtZW1zZXQgYmVjYXVzZSBvdXRwdXRfYnVmZmVyIG1heSBiZSBOVUxMIGluIHRoaXMgY2FzZSAqLworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgaWYgKHN0YXR1cyA9PSBQU0FfU1VDQ0VTUykgeworICAgICAgICBvZmZzZXQgPSBvdXRwdXRfYnVmZmVyX2xlbmd0aDsKKyAgICB9CisKKyAgICBtZW1zZXQob3V0cHV0X2J1ZmZlciArIG9mZnNldCwgJyEnLCBvdXRwdXRfYnVmZmVyX3NpemUgLSBvZmZzZXQpOworfQorCisKK3BzYV9zdGF0dXNfdCBwc2FfdmFsaWRhdGVfdW5zdHJ1Y3R1cmVkX2tleV9iaXRfc2l6ZShwc2Ffa2V5X3R5cGVfdCB0eXBlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBiaXRzKQoreworICAgIC8qIENoZWNrIHRoYXQgdGhlIGJpdCBzaXplIGlzIGFjY2VwdGFibGUgZm9yIHRoZSBrZXkgdHlwZSAqLworICAgIHN3aXRjaCAodHlwZSkgeworICAgICAgICBjYXNlIFBTQV9LRVlfVFlQRV9SQVdfREFUQToKKyAgICAgICAgY2FzZSBQU0FfS0VZX1RZUEVfSE1BQzoKKyAgICAgICAgY2FzZSBQU0FfS0VZX1RZUEVfREVSSVZFOgorICAgICAgICBjYXNlIFBTQV9LRVlfVFlQRV9QQVNTV09SRDoKKyAgICAgICAgY2FzZSBQU0FfS0VZX1RZUEVfUEFTU1dPUkRfSEFTSDoKKyAgICAgICAgICAgIGJyZWFrOworI2lmIGRlZmluZWQoUFNBX1dBTlRfS0VZX1RZUEVfQUVTKQorICAgICAgICBjYXNlIFBTQV9LRVlfVFlQRV9BRVM6CisgICAgICAgICAgICBpZiAoYml0cyAhPSAxMjggJiYgYml0cyAhPSAxOTIgJiYgYml0cyAhPSAyNTYpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gUFNBX0VSUk9SX0lOVkFMSURfQVJHVU1FTlQ7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBicmVhazsKKyNlbmRpZgorI2lmIGRlZmluZWQoUFNBX1dBTlRfS0VZX1RZUEVfQVJJQSkKKyAgICAgICAgY2FzZSBQU0FfS0VZX1RZUEVfQVJJQToKKyAgICAgICAgICAgIGlmIChiaXRzICE9IDEyOCAmJiBiaXRzICE9IDE5MiAmJiBiaXRzICE9IDI1NikgeworICAgICAgICAgICAgICAgIHJldHVybiBQU0FfRVJST1JfSU5WQUxJRF9BUkdVTUVOVDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGJyZWFrOworI2VuZGlmCisjaWYgZGVmaW5lZChQU0FfV0FOVF9LRVlfVFlQRV9DQU1FTExJQSkKKyAgICAgICAgY2FzZSBQU0FfS0VZX1RZUEVfQ0FNRUxMSUE6CisgICAgICAgICAgICBpZiAoYml0cyAhPSAxMjggJiYgYml0cyAhPSAxOTIgJiYgYml0cyAhPSAyNTYpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gUFNBX0VSUk9SX0lOVkFMSURfQVJHVU1FTlQ7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBicmVhazsKKyNlbmRpZgorI2lmIGRlZmluZWQoUFNBX1dBTlRfS0VZX1RZUEVfREVTKQorICAgICAgICBjYXNlIFBTQV9LRVlfVFlQRV9ERVM6CisgICAgICAgICAgICBpZiAoYml0cyAhPSA2NCAmJiBiaXRzICE9IDEyOCAmJiBiaXRzICE9IDE5MikgeworICAgICAgICAgICAgICAgIHJldHVybiBQU0FfRVJST1JfSU5WQUxJRF9BUkdVTUVOVDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGJyZWFrOworI2VuZGlmCisjaWYgZGVmaW5lZChQU0FfV0FOVF9LRVlfVFlQRV9DSEFDSEEyMCkKKyAgICAgICAgY2FzZSBQU0FfS0VZX1RZUEVfQ0hBQ0hBMjA6CisgICAgICAgICAgICBpZiAoYml0cyAhPSAyNTYpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gUFNBX0VSUk9SX0lOVkFMSURfQVJHVU1FTlQ7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBicmVhazsKKyNlbmRpZgorICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgcmV0dXJuIFBTQV9FUlJPUl9OT1RfU1VQUE9SVEVEOworICAgIH0KKyAgICBpZiAoYml0cyAlIDggIT0gMCkgeworICAgICAgICByZXR1cm4gUFNBX0VSUk9SX0lOVkFMSURfQVJHVU1FTlQ7CisgICAgfQorCisgICAgcmV0dXJuIFBTQV9TVUNDRVNTOworfQorCisvKiogQ2hlY2sgd2hldGhlciBhIGdpdmVuIGtleSB0eXBlIGlzIHZhbGlkIGZvciB1c2Ugd2l0aCBhIGdpdmVuIE1BQyBhbGdvcml0aG0KKyAqCisgKiBVcG9uIHN1Y2Nlc3NmdWwgcmV0dXJuIG9mIHRoaXMgZnVuY3Rpb24sIHRoZSBiZWhhdmlvciBvZiAjUFNBX01BQ19MRU5HVEgKKyAqIHdoZW4gY2FsbGVkIHdpdGggdGhlIHZhbGlkYXRlZCBccCBhbGdvcml0aG0gYW5kIFxwIGtleV90eXBlIGlzIHdlbGwtZGVmaW5lZC4KKyAqCisgKiBccGFyYW1baW5dIGFsZ29yaXRobSAgICAgVGhlIHNwZWNpZmljIE1BQyBhbGdvcml0aG0gKGNhbiBiZSB3aWxkY2FyZCkuCisgKiBccGFyYW1baW5dIGtleV90eXBlICAgICAgVGhlIGtleSB0eXBlIG9mIHRoZSBrZXkgdG8gYmUgdXNlZCB3aXRoIHRoZQorICogICAgICAgICAgICAgICAgICAgICAgICAgIFxwIGFsZ29yaXRobS4KKyAqCisgKiBccmV0dmFsICNQU0FfU1VDQ0VTUworICogICAgICAgICBUaGUgXHAga2V5X3R5cGUgaXMgdmFsaWQgZm9yIHVzZSB3aXRoIHRoZSBccCBhbGdvcml0aG0KKyAqIFxyZXR2YWwgI1BTQV9FUlJPUl9JTlZBTElEX0FSR1VNRU5UCisgKiAgICAgICAgIFRoZSBccCBrZXlfdHlwZSBpcyBub3QgdmFsaWQgZm9yIHVzZSB3aXRoIHRoZSBccCBhbGdvcml0aG0KKyAqLworTUJFRFRMU19TVEFUSUNfVEVTVEFCTEUgcHNhX3N0YXR1c190IHBzYV9tYWNfa2V5X2Nhbl9kbygKKyAgICBwc2FfYWxnb3JpdGhtX3QgYWxnb3JpdGhtLAorICAgIHBzYV9rZXlfdHlwZV90IGtleV90eXBlKQoreworICAgIGlmIChQU0FfQUxHX0lTX0hNQUMoYWxnb3JpdGhtKSkgeworICAgICAgICBpZiAoa2V5X3R5cGUgPT0gUFNBX0tFWV9UWVBFX0hNQUMpIHsKKyAgICAgICAgICAgIHJldHVybiBQU0FfU1VDQ0VTUzsKKyAgICAgICAgfQorICAgIH0KKworICAgIGlmIChQU0FfQUxHX0lTX0JMT0NLX0NJUEhFUl9NQUMoYWxnb3JpdGhtKSkgeworICAgICAgICAvKiBDaGVjayB0aGF0IHdlJ3JlIGNhbGxpbmcgUFNBX0JMT0NLX0NJUEhFUl9CTE9DS19MRU5HVEggd2l0aCBhIGNpcGhlcgorICAgICAgICAgKiBrZXkuICovCisgICAgICAgIGlmICgoa2V5X3R5cGUgJiBQU0FfS0VZX1RZUEVfQ0FURUdPUllfTUFTSykgPT0KKyAgICAgICAgICAgIFBTQV9LRVlfVFlQRV9DQVRFR09SWV9TWU1NRVRSSUMpIHsKKyAgICAgICAgICAgIC8qIFBTQV9CTE9DS19DSVBIRVJfQkxPQ0tfTEVOR1RIIHJldHVybnMgMSBmb3Igc3RyZWFtIGNpcGhlcnMgYW5kCisgICAgICAgICAgICAgKiB0aGUgYmxvY2sgbGVuZ3RoIChsYXJnZXIgdGhhbiAxKSBmb3IgYmxvY2sgY2lwaGVycy4gKi8KKyAgICAgICAgICAgIGlmIChQU0FfQkxPQ0tfQ0lQSEVSX0JMT0NLX0xFTkdUSChrZXlfdHlwZSkgPiAxKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIFBTQV9TVUNDRVNTOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgcmV0dXJuIFBTQV9FUlJPUl9JTlZBTElEX0FSR1VNRU5UOworfQorCitwc2Ffc3RhdHVzX3QgcHNhX2FsbG9jYXRlX2J1ZmZlcl90b19zbG90KHBzYV9rZXlfc2xvdF90ICpzbG90LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgYnVmZmVyX2xlbmd0aCkKK3sKKyAgICBpZiAoc2xvdC0+a2V5LmRhdGEgIT0gTlVMTCkgeworICAgICAgICByZXR1cm4gUFNBX0VSUk9SX0FMUkVBRFlfRVhJU1RTOworICAgIH0KKworICAgIHNsb3QtPmtleS5kYXRhID0gbWJlZHRsc19jYWxsb2MoMSwgYnVmZmVyX2xlbmd0aCk7CisgICAgaWYgKHNsb3QtPmtleS5kYXRhID09IE5VTEwpIHsKKyAgICAgICAgcmV0dXJuIFBTQV9FUlJPUl9JTlNVRkZJQ0lFTlRfTUVNT1JZOworICAgIH0KKworICAgIHNsb3QtPmtleS5ieXRlcyA9IGJ1ZmZlcl9sZW5ndGg7CisgICAgcmV0dXJuIFBTQV9TVUNDRVNTOworfQorCitwc2Ffc3RhdHVzX3QgcHNhX2NvcHlfa2V5X21hdGVyaWFsX2ludG9fc2xvdChwc2Ffa2V5X3Nsb3RfdCAqc2xvdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVpbnQ4X3QgKmRhdGEsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgZGF0YV9sZW5ndGgpCit7CisgICAgcHNhX3N0YXR1c190IHN0YXR1cyA9IHBzYV9hbGxvY2F0ZV9idWZmZXJfdG9fc2xvdChzbG90LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YV9sZW5ndGgpOworICAgIGlmIChzdGF0dXMgIT0gUFNBX1NVQ0NFU1MpIHsKKyAgICAgICAgcmV0dXJuIHN0YXR1czsKKyAgICB9CisKKyAgICBtZW1jcHkoc2xvdC0+a2V5LmRhdGEsIGRhdGEsIGRhdGFfbGVuZ3RoKTsKKyAgICByZXR1cm4gUFNBX1NVQ0NFU1M7Cit9CisKK3BzYV9zdGF0dXNfdCBwc2FfaW1wb3J0X2tleV9pbnRvX3Nsb3QoCisgICAgY29uc3QgcHNhX2tleV9hdHRyaWJ1dGVzX3QgKmF0dHJpYnV0ZXMsCisgICAgY29uc3QgdWludDhfdCAqZGF0YSwgc2l6ZV90IGRhdGFfbGVuZ3RoLAorICAgIHVpbnQ4X3QgKmtleV9idWZmZXIsIHNpemVfdCBrZXlfYnVmZmVyX3NpemUsCisgICAgc2l6ZV90ICprZXlfYnVmZmVyX2xlbmd0aCwgc2l6ZV90ICpiaXRzKQoreworICAgIHBzYV9zdGF0dXNfdCBzdGF0dXMgPSBQU0FfRVJST1JfQ09SUlVQVElPTl9ERVRFQ1RFRDsKKyAgICBwc2Ffa2V5X3R5cGVfdCB0eXBlID0gYXR0cmlidXRlcy0+dHlwZTsKKworICAgIC8qIHplcm8tbGVuZ3RoIGtleXMgYXJlIG5ldmVyIHN1cHBvcnRlZC4gKi8KKyAgICBpZiAoZGF0YV9sZW5ndGggPT0gMCkgeworICAgICAgICByZXR1cm4gUFNBX0VSUk9SX05PVF9TVVBQT1JURUQ7CisgICAgfQorCisgICAgaWYgKGtleV90eXBlX2lzX3Jhd19ieXRlcyh0eXBlKSkgeworICAgICAgICAqYml0cyA9IFBTQV9CWVRFU19UT19CSVRTKGRhdGFfbGVuZ3RoKTsKKworICAgICAgICBzdGF0dXMgPSBwc2FfdmFsaWRhdGVfdW5zdHJ1Y3R1cmVkX2tleV9iaXRfc2l6ZShhdHRyaWJ1dGVzLT50eXBlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqYml0cyk7CisgICAgICAgIGlmIChzdGF0dXMgIT0gUFNBX1NVQ0NFU1MpIHsKKyAgICAgICAgICAgIHJldHVybiBzdGF0dXM7CisgICAgICAgIH0KKworICAgICAgICAvKiBDb3B5IHRoZSBrZXkgbWF0ZXJpYWwuICovCisgICAgICAgIG1lbWNweShrZXlfYnVmZmVyLCBkYXRhLCBkYXRhX2xlbmd0aCk7CisgICAgICAgICprZXlfYnVmZmVyX2xlbmd0aCA9IGRhdGFfbGVuZ3RoOworICAgICAgICAodm9pZCkga2V5X2J1ZmZlcl9zaXplOworCisgICAgICAgIHJldHVybiBQU0FfU1VDQ0VTUzsKKyAgICB9IGVsc2UgaWYgKFBTQV9LRVlfVFlQRV9JU19BU1lNTUVUUklDKHR5cGUpKSB7CisjaWYgZGVmaW5lZChNQkVEVExTX1BTQV9CVUlMVElOX0tFWV9UWVBFX0RIX0tFWV9QQUlSX0lNUE9SVCkgfHwgXAorICAgICAgICBkZWZpbmVkKE1CRURUTFNfUFNBX0JVSUxUSU5fS0VZX1RZUEVfREhfUFVCTElDX0tFWSkKKyAgICAgICAgaWYgKFBTQV9LRVlfVFlQRV9JU19ESCh0eXBlKSkgeworICAgICAgICAgICAgaWYgKHBzYV9pc19kaF9rZXlfc2l6ZV92YWxpZChQU0FfQllURVNfVE9fQklUUyhkYXRhX2xlbmd0aCkpID09IDApIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gUFNBX0VSUk9SX05PVF9TVVBQT1JURUQ7CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4gbWJlZHRsc19wc2FfZmZkaF9pbXBvcnRfa2V5KGF0dHJpYnV0ZXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEsIGRhdGFfbGVuZ3RoLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXlfYnVmZmVyLCBrZXlfYnVmZmVyX3NpemUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtleV9idWZmZXJfbGVuZ3RoLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiaXRzKTsKKyAgICAgICAgfQorI2VuZGlmIC8qIGRlZmluZWQoTUJFRFRMU19QU0FfQlVJTFRJTl9LRVlfVFlQRV9ESF9LRVlfUEFJUl9JTVBPUlQpIHx8CisgICAgICAgICogZGVmaW5lZChNQkVEVExTX1BTQV9CVUlMVElOX0tFWV9UWVBFX0RIX1BVQkxJQ19LRVkpICovCisjaWYgZGVmaW5lZChNQkVEVExTX1BTQV9CVUlMVElOX0tFWV9UWVBFX0VDQ19LRVlfUEFJUl9JTVBPUlQpIHx8IFwKKyAgICAgICAgZGVmaW5lZChNQkVEVExTX1BTQV9CVUlMVElOX0tFWV9UWVBFX0VDQ19QVUJMSUNfS0VZKQorICAgICAgICBpZiAoUFNBX0tFWV9UWVBFX0lTX0VDQyh0eXBlKSkgeworICAgICAgICAgICAgcmV0dXJuIG1iZWR0bHNfcHNhX2VjcF9pbXBvcnRfa2V5KGF0dHJpYnV0ZXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YSwgZGF0YV9sZW5ndGgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga2V5X2J1ZmZlciwga2V5X2J1ZmZlcl9zaXplLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtleV9idWZmZXJfbGVuZ3RoLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJpdHMpOworICAgICAgICB9CisjZW5kaWYgLyogZGVmaW5lZChNQkVEVExTX1BTQV9CVUlMVElOX0tFWV9UWVBFX0VDQ19LRVlfUEFJUl9JTVBPUlQpIHx8CisgICAgICAgICogZGVmaW5lZChNQkVEVExTX1BTQV9CVUlMVElOX0tFWV9UWVBFX0VDQ19QVUJMSUNfS0VZKSAqLworI2lmIChkZWZpbmVkKE1CRURUTFNfUFNBX0JVSUxUSU5fS0VZX1RZUEVfUlNBX0tFWV9QQUlSX0lNUE9SVCkgJiYgXAorICAgICAgICBkZWZpbmVkKE1CRURUTFNfUFNBX0JVSUxUSU5fS0VZX1RZUEVfUlNBX0tFWV9QQUlSX0VYUE9SVCkpIHx8IFwKKyAgICAgICAgZGVmaW5lZChNQkVEVExTX1BTQV9CVUlMVElOX0tFWV9UWVBFX1JTQV9QVUJMSUNfS0VZKQorICAgICAgICBpZiAoUFNBX0tFWV9UWVBFX0lTX1JTQSh0eXBlKSkgeworICAgICAgICAgICAgcmV0dXJuIG1iZWR0bHNfcHNhX3JzYV9pbXBvcnRfa2V5KGF0dHJpYnV0ZXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YSwgZGF0YV9sZW5ndGgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga2V5X2J1ZmZlciwga2V5X2J1ZmZlcl9zaXplLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtleV9idWZmZXJfbGVuZ3RoLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJpdHMpOworICAgICAgICB9CisjZW5kaWYgLyogKGRlZmluZWQoTUJFRFRMU19QU0FfQlVJTFRJTl9LRVlfVFlQRV9SU0FfS0VZX1BBSVJfSU1QT1JUKSAmJgorICAgICAgICAgICBkZWZpbmVkKE1CRURUTFNfUFNBX0JVSUxUSU5fS0VZX1RZUEVfUlNBX0tFWV9QQUlSX0VYUE9SVCkpIHx8CisgICAgICAgICogZGVmaW5lZChNQkVEVExTX1BTQV9CVUlMVElOX0tFWV9UWVBFX1JTQV9QVUJMSUNfS0VZKSAqLworICAgIH0KKworICAgIHJldHVybiBQU0FfRVJST1JfTk9UX1NVUFBPUlRFRDsKK30KKworLyoqIENhbGN1bGF0ZSB0aGUgaW50ZXJzZWN0aW9uIG9mIHR3byBhbGdvcml0aG0gdXNhZ2UgcG9saWNpZXMuCisgKgorICogUmV0dXJuIDAgKHdoaWNoIGFsbG93cyBubyBvcGVyYXRpb24pIG9uIGluY29tcGF0aWJpbGl0eS4KKyAqLworc3RhdGljIHBzYV9hbGdvcml0aG1fdCBwc2Ffa2V5X3BvbGljeV9hbGdvcml0aG1faW50ZXJzZWN0aW9uKAorICAgIHBzYV9rZXlfdHlwZV90IGtleV90eXBlLAorICAgIHBzYV9hbGdvcml0aG1fdCBhbGcxLAorICAgIHBzYV9hbGdvcml0aG1fdCBhbGcyKQoreworICAgIC8qIENvbW1vbiBjYXNlOiBib3RoIHNpZGVzIGFjdHVhbGx5IHNwZWNpZnkgdGhlIHNhbWUgcG9saWN5LiAqLworICAgIGlmIChhbGcxID09IGFsZzIpIHsKKyAgICAgICAgcmV0dXJuIGFsZzE7CisgICAgfQorICAgIC8qIElmIHRoZSBwb2xpY2llcyBhcmUgZnJvbSB0aGUgc2FtZSBoYXNoLWFuZC1zaWduIGZhbWlseSwgY2hlY2sKKyAgICAgKiBpZiBvbmUgaXMgYSB3aWxkY2FyZC4gSWYgc28gdGhlIG90aGVyIGhhcyB0aGUgc3BlY2lmaWMgYWxnb3JpdGhtLiAqLworICAgIGlmIChQU0FfQUxHX0lTX1NJR05fSEFTSChhbGcxKSAmJgorICAgICAgICBQU0FfQUxHX0lTX1NJR05fSEFTSChhbGcyKSAmJgorICAgICAgICAoYWxnMSAmIH5QU0FfQUxHX0hBU0hfTUFTSykgPT0gKGFsZzIgJiB+UFNBX0FMR19IQVNIX01BU0spKSB7CisgICAgICAgIGlmIChQU0FfQUxHX1NJR05fR0VUX0hBU0goYWxnMSkgPT0gUFNBX0FMR19BTllfSEFTSCkgeworICAgICAgICAgICAgcmV0dXJuIGFsZzI7CisgICAgICAgIH0KKyAgICAgICAgaWYgKFBTQV9BTEdfU0lHTl9HRVRfSEFTSChhbGcyKSA9PSBQU0FfQUxHX0FOWV9IQVNIKSB7CisgICAgICAgICAgICByZXR1cm4gYWxnMTsKKyAgICAgICAgfQorICAgIH0KKyAgICAvKiBJZiB0aGUgcG9saWNpZXMgYXJlIGZyb20gdGhlIHNhbWUgQUVBRCBmYW1pbHksIGNoZWNrIHdoZXRoZXIKKyAgICAgKiBvbmUgb2YgdGhlbSBpcyBhIG1pbmltdW0tdGFnLWxlbmd0aCB3aWxkY2FyZC4gQ2FsY3VsYXRlIHRoZSBtb3N0CisgICAgICogcmVzdHJpY3RpdmUgdGFnIGxlbmd0aC4gKi8KKyAgICBpZiAoUFNBX0FMR19JU19BRUFEKGFsZzEpICYmIFBTQV9BTEdfSVNfQUVBRChhbGcyKSAmJgorICAgICAgICAoUFNBX0FMR19BRUFEX1dJVEhfU0hPUlRFTkVEX1RBRyhhbGcxLCAwKSA9PQorICAgICAgICAgUFNBX0FMR19BRUFEX1dJVEhfU0hPUlRFTkVEX1RBRyhhbGcyLCAwKSkpIHsKKyAgICAgICAgc2l6ZV90IGFsZzFfbGVuID0gUFNBX0FMR19BRUFEX0dFVF9UQUdfTEVOR1RIKGFsZzEpOworICAgICAgICBzaXplX3QgYWxnMl9sZW4gPSBQU0FfQUxHX0FFQURfR0VUX1RBR19MRU5HVEgoYWxnMik7CisgICAgICAgIHNpemVfdCByZXN0cmljdGVkX2xlbiA9IGFsZzFfbGVuID4gYWxnMl9sZW4gPyBhbGcxX2xlbiA6IGFsZzJfbGVuOworCisgICAgICAgIC8qIElmIGJvdGggYXJlIHdpbGRjYXJkcywgcmV0dXJuIG1vc3QgcmVzdHJpY3RpdmUgd2lsZGNhcmQgKi8KKyAgICAgICAgaWYgKCgoYWxnMSAmIFBTQV9BTEdfQUVBRF9BVF9MRUFTVF9USElTX0xFTkdUSF9GTEFHKSAhPSAwKSAmJgorICAgICAgICAgICAgKChhbGcyICYgUFNBX0FMR19BRUFEX0FUX0xFQVNUX1RISVNfTEVOR1RIX0ZMQUcpICE9IDApKSB7CisgICAgICAgICAgICByZXR1cm4gUFNBX0FMR19BRUFEX1dJVEhfQVRfTEVBU1RfVEhJU19MRU5HVEhfVEFHKAorICAgICAgICAgICAgICAgIGFsZzEsIHJlc3RyaWN0ZWRfbGVuKTsKKyAgICAgICAgfQorICAgICAgICAvKiBJZiBvbmx5IG9uZSBpcyBhIHdpbGRjYXJkLCByZXR1cm4gc3BlY2lmaWMgYWxnb3JpdGhtIGlmIGNvbXBhdGlibGUuICovCisgICAgICAgIGlmICgoKGFsZzEgJiBQU0FfQUxHX0FFQURfQVRfTEVBU1RfVEhJU19MRU5HVEhfRkxBRykgIT0gMCkgJiYKKyAgICAgICAgICAgIChhbGcxX2xlbiA8PSBhbGcyX2xlbikpIHsKKyAgICAgICAgICAgIHJldHVybiBhbGcyOworICAgICAgICB9CisgICAgICAgIGlmICgoKGFsZzIgJiBQU0FfQUxHX0FFQURfQVRfTEVBU1RfVEhJU19MRU5HVEhfRkxBRykgIT0gMCkgJiYKKyAgICAgICAgICAgIChhbGcyX2xlbiA8PSBhbGcxX2xlbikpIHsKKyAgICAgICAgICAgIHJldHVybiBhbGcxOworICAgICAgICB9CisgICAgfQorICAgIC8qIElmIHRoZSBwb2xpY2llcyBhcmUgZnJvbSB0aGUgc2FtZSBNQUMgZmFtaWx5LCBjaGVjayB3aGV0aGVyIG9uZQorICAgICAqIG9mIHRoZW0gaXMgYSBtaW5pbXVtLU1BQy1sZW5ndGggcG9saWN5LiBDYWxjdWxhdGUgdGhlIG1vc3QKKyAgICAgKiByZXN0cmljdGl2ZSB0YWcgbGVuZ3RoLiAqLworICAgIGlmIChQU0FfQUxHX0lTX01BQyhhbGcxKSAmJiBQU0FfQUxHX0lTX01BQyhhbGcyKSAmJgorICAgICAgICAoUFNBX0FMR19GVUxMX0xFTkdUSF9NQUMoYWxnMSkgPT0KKyAgICAgICAgIFBTQV9BTEdfRlVMTF9MRU5HVEhfTUFDKGFsZzIpKSkgeworICAgICAgICAvKiBWYWxpZGF0ZSB0aGUgY29tYmluYXRpb24gb2Yga2V5IHR5cGUgYW5kIGFsZ29yaXRobS4gU2luY2UgdGhlIGJhc2UKKyAgICAgICAgICogYWxnb3JpdGhtIG9mIGFsZzEgYW5kIGFsZzIgYXJlIHRoZSBzYW1lLCB3ZSBvbmx5IG5lZWQgdGhpcyBvbmNlLiAqLworICAgICAgICBpZiAoUFNBX1NVQ0NFU1MgIT0gcHNhX21hY19rZXlfY2FuX2RvKGFsZzEsIGtleV90eXBlKSkgeworICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIH0KKworICAgICAgICAvKiBHZXQgdGhlIChleGFjdCBvciBhdC1sZWFzdCkgb3V0cHV0IGxlbmd0aHMgZm9yIGJvdGggc2lkZXMgb2YgdGhlCisgICAgICAgICAqIHJlcXVlc3RlZCBpbnRlcnNlY3Rpb24uIE5vbmUgb2YgdGhlIGN1cnJlbnRseSBzdXBwb3J0ZWQgYWxnb3JpdGhtcworICAgICAgICAgKiBoYXZlIGFuIG91dHB1dCBsZW5ndGggZGVwZW5kZW50IG9uIHRoZSBhY3R1YWwga2V5IHNpemUsIHNvIHNldHRpbmcgaXQKKyAgICAgICAgICogdG8gYSBib2d1cyB2YWx1ZSBvZiAwIGlzIGN1cnJlbnRseSBPSy4KKyAgICAgICAgICoKKyAgICAgICAgICogTm90ZSB0aGF0IGZvciBhdC1sZWFzdC10aGlzLWxlbmd0aCB3aWxkY2FyZCBhbGdvcml0aG1zLCB0aGUgb3V0cHV0CisgICAgICAgICAqIGxlbmd0aCBpcyBzZXQgdG8gdGhlIHNob3J0ZXN0IGFsbG93ZWQgbGVuZ3RoLCB3aGljaCBhbGxvd3MgdXMgdG8KKyAgICAgICAgICogY2FsY3VsYXRlIHRoZSBtb3N0IHJlc3RyaWN0aXZlIHRhZyBsZW5ndGggZm9yIHRoZSBpbnRlcnNlY3Rpb24uICovCisgICAgICAgIHNpemVfdCBhbGcxX2xlbiA9IFBTQV9NQUNfTEVOR1RIKGtleV90eXBlLCAwLCBhbGcxKTsKKyAgICAgICAgc2l6ZV90IGFsZzJfbGVuID0gUFNBX01BQ19MRU5HVEgoa2V5X3R5cGUsIDAsIGFsZzIpOworICAgICAgICBzaXplX3QgcmVzdHJpY3RlZF9sZW4gPSBhbGcxX2xlbiA+IGFsZzJfbGVuID8gYWxnMV9sZW4gOiBhbGcyX2xlbjsKKworICAgICAgICAvKiBJZiBib3RoIGFyZSB3aWxkY2FyZHMsIHJldHVybiBtb3N0IHJlc3RyaWN0aXZlIHdpbGRjYXJkICovCisgICAgICAgIGlmICgoKGFsZzEgJiBQU0FfQUxHX01BQ19BVF9MRUFTVF9USElTX0xFTkdUSF9GTEFHKSAhPSAwKSAmJgorICAgICAgICAgICAgKChhbGcyICYgUFNBX0FMR19NQUNfQVRfTEVBU1RfVEhJU19MRU5HVEhfRkxBRykgIT0gMCkpIHsKKyAgICAgICAgICAgIHJldHVybiBQU0FfQUxHX0FUX0xFQVNUX1RISVNfTEVOR1RIX01BQyhhbGcxLCByZXN0cmljdGVkX2xlbik7CisgICAgICAgIH0KKworICAgICAgICAvKiBJZiBvbmx5IG9uZSBpcyBhbiBhdC1sZWFzdC10aGlzLWxlbmd0aCBwb2xpY3ksIHRoZSBpbnRlcnNlY3Rpb24gd291bGQKKyAgICAgICAgICogYmUgdGhlIG90aGVyIChmaXhlZC1sZW5ndGgpIHBvbGljeSBhcyBsb25nIGFzIHNhaWQgZml4ZWQgbGVuZ3RoIGlzCisgICAgICAgICAqIGVxdWFsIHRvIG9yIGxhcmdlciB0aGFuIHRoZSBzaG9ydGVzdCBhbGxvd2VkIGxlbmd0aC4gKi8KKyAgICAgICAgaWYgKChhbGcxICYgUFNBX0FMR19NQUNfQVRfTEVBU1RfVEhJU19MRU5HVEhfRkxBRykgIT0gMCkgeworICAgICAgICAgICAgcmV0dXJuIChhbGcxX2xlbiA8PSBhbGcyX2xlbikgPyBhbGcyIDogMDsKKyAgICAgICAgfQorICAgICAgICBpZiAoKGFsZzIgJiBQU0FfQUxHX01BQ19BVF9MRUFTVF9USElTX0xFTkdUSF9GTEFHKSAhPSAwKSB7CisgICAgICAgICAgICByZXR1cm4gKGFsZzJfbGVuIDw9IGFsZzFfbGVuKSA/IGFsZzEgOiAwOworICAgICAgICB9CisKKyAgICAgICAgLyogSWYgbm9uZSBvZiB0aGVtIGFyZSB3aWxkY2FyZHMsIGNoZWNrIHdoZXRoZXIgdGhleSBkZWZpbmUgdGhlIHNhbWUgdGFnCisgICAgICAgICAqIGxlbmd0aC4gVGhpcyBpcyBzdGlsbCBwb3NzaWJsZSBoZXJlIHdoZW4gb25lIGlzIGRlZmF1bHQtbGVuZ3RoIGFuZAorICAgICAgICAgKiB0aGUgb3RoZXIgc3BlY2lmaWMtbGVuZ3RoLiBFbnN1cmUgdG8gYWx3YXlzIHJldHVybiB0aGUKKyAgICAgICAgICogc3BlY2lmaWMtbGVuZ3RoIHZlcnNpb24gZm9yIHRoZSBpbnRlcnNlY3Rpb24uICovCisgICAgICAgIGlmIChhbGcxX2xlbiA9PSBhbGcyX2xlbikgeworICAgICAgICAgICAgcmV0dXJuIFBTQV9BTEdfVFJVTkNBVEVEX01BQyhhbGcxLCBhbGcxX2xlbik7CisgICAgICAgIH0KKyAgICB9CisgICAgLyogSWYgdGhlIHBvbGljaWVzIGFyZSBpbmNvbXBhdGlibGUsIGFsbG93IG5vdGhpbmcuICovCisgICAgcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgcHNhX2tleV9hbGdvcml0aG1fcGVybWl0cyhwc2Ffa2V5X3R5cGVfdCBrZXlfdHlwZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwc2FfYWxnb3JpdGhtX3QgcG9saWN5X2FsZywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwc2FfYWxnb3JpdGhtX3QgcmVxdWVzdGVkX2FsZykKK3sKKyAgICAvKiBDb21tb24gY2FzZTogdGhlIHBvbGljeSBvbmx5IGFsbG93cyByZXF1ZXN0ZWRfYWxnLiAqLworICAgIGlmIChyZXF1ZXN0ZWRfYWxnID09IHBvbGljeV9hbGcpIHsKKyAgICAgICAgcmV0dXJuIDE7CisgICAgfQorICAgIC8qIElmIHBvbGljeV9hbGcgaXMgYSBoYXNoLWFuZC1zaWduIHdpdGggYSB3aWxkY2FyZCBmb3IgdGhlIGhhc2gsCisgICAgICogYW5kIHJlcXVlc3RlZF9hbGcgaXMgdGhlIHNhbWUgaGFzaC1hbmQtc2lnbiBmYW1pbHkgd2l0aCBhbnkgaGFzaCwKKyAgICAgKiB0aGVuIHJlcXVlc3RlZF9hbGcgaXMgY29tcGxpYW50IHdpdGggcG9saWN5X2FsZy4gKi8KKyAgICBpZiAoUFNBX0FMR19JU19TSUdOX0hBU0gocmVxdWVzdGVkX2FsZykgJiYKKyAgICAgICAgUFNBX0FMR19TSUdOX0dFVF9IQVNIKHBvbGljeV9hbGcpID09IFBTQV9BTEdfQU5ZX0hBU0gpIHsKKyAgICAgICAgcmV0dXJuIChwb2xpY3lfYWxnICYgflBTQV9BTEdfSEFTSF9NQVNLKSA9PQorICAgICAgICAgICAgICAgKHJlcXVlc3RlZF9hbGcgJiB+UFNBX0FMR19IQVNIX01BU0spOworICAgIH0KKyAgICAvKiBJZiBwb2xpY3lfYWxnIGlzIGEgd2lsZGNhcmQgQUVBRCBhbGdvcml0aG0gb2YgdGhlIHNhbWUgYmFzZSBhcworICAgICAqIHRoZSByZXF1ZXN0ZWQgYWxnb3JpdGhtLCBjaGVjayB0aGUgcmVxdWVzdGVkIHRhZyBsZW5ndGggdG8gYmUKKyAgICAgKiBlcXVhbC1sZW5ndGggb3IgbG9uZ2VyIHRoYW4gdGhlIHdpbGRjYXJkLXNwZWNpZmllZCBsZW5ndGguICovCisgICAgaWYgKFBTQV9BTEdfSVNfQUVBRChwb2xpY3lfYWxnKSAmJgorICAgICAgICBQU0FfQUxHX0lTX0FFQUQocmVxdWVzdGVkX2FsZykgJiYKKyAgICAgICAgKFBTQV9BTEdfQUVBRF9XSVRIX1NIT1JURU5FRF9UQUcocG9saWN5X2FsZywgMCkgPT0KKyAgICAgICAgIFBTQV9BTEdfQUVBRF9XSVRIX1NIT1JURU5FRF9UQUcocmVxdWVzdGVkX2FsZywgMCkpICYmCisgICAgICAgICgocG9saWN5X2FsZyAmIFBTQV9BTEdfQUVBRF9BVF9MRUFTVF9USElTX0xFTkdUSF9GTEFHKSAhPSAwKSkgeworICAgICAgICByZXR1cm4gUFNBX0FMR19BRUFEX0dFVF9UQUdfTEVOR1RIKHBvbGljeV9hbGcpIDw9CisgICAgICAgICAgICAgICBQU0FfQUxHX0FFQURfR0VUX1RBR19MRU5HVEgocmVxdWVzdGVkX2FsZyk7CisgICAgfQorICAgIC8qIElmIHBvbGljeV9hbGcgaXMgYSBNQUMgYWxnb3JpdGhtIG9mIHRoZSBzYW1lIGJhc2UgYXMgdGhlIHJlcXVlc3RlZAorICAgICAqIGFsZ29yaXRobSwgY2hlY2sgd2hldGhlciB0aGVpciBNQUMgbGVuZ3RocyBhcmUgY29tcGF0aWJsZS4gKi8KKyAgICBpZiAoUFNBX0FMR19JU19NQUMocG9saWN5X2FsZykgJiYKKyAgICAgICAgUFNBX0FMR19JU19NQUMocmVxdWVzdGVkX2FsZykgJiYKKyAgICAgICAgKFBTQV9BTEdfRlVMTF9MRU5HVEhfTUFDKHBvbGljeV9hbGcpID09CisgICAgICAgICBQU0FfQUxHX0ZVTExfTEVOR1RIX01BQyhyZXF1ZXN0ZWRfYWxnKSkpIHsKKyAgICAgICAgLyogVmFsaWRhdGUgdGhlIGNvbWJpbmF0aW9uIG9mIGtleSB0eXBlIGFuZCBhbGdvcml0aG0uIFNpbmNlIHRoZSBwb2xpY3kKKyAgICAgICAgICogYW5kIHJlcXVlc3RlZCBhbGdvcml0aG1zIGFyZSB0aGUgc2FtZSwgd2Ugb25seSBuZWVkIHRoaXMgb25jZS4gKi8KKyAgICAgICAgaWYgKFBTQV9TVUNDRVNTICE9IHBzYV9tYWNfa2V5X2Nhbl9kbyhwb2xpY3lfYWxnLCBrZXlfdHlwZSkpIHsKKyAgICAgICAgICAgIHJldHVybiAwOworICAgICAgICB9CisKKyAgICAgICAgLyogR2V0IGJvdGggdGhlIHJlcXVlc3RlZCBvdXRwdXQgbGVuZ3RoIGZvciB0aGUgYWxnb3JpdGhtIHdoaWNoIGlzIHRvIGJlCisgICAgICAgICAqIHZlcmlmaWVkLCBhbmQgdGhlIGRlZmF1bHQgb3V0cHV0IGxlbmd0aCBmb3IgdGhlIGJhc2UgYWxnb3JpdGhtLgorICAgICAgICAgKiBOb3RlIHRoYXQgbm9uZSBvZiB0aGUgY3VycmVudGx5IHN1cHBvcnRlZCBhbGdvcml0aG1zIGhhdmUgYW4gb3V0cHV0CisgICAgICAgICAqIGxlbmd0aCBkZXBlbmRlbnQgb24gYWN0dWFsIGtleSBzaXplLCBzbyBzZXR0aW5nIGl0IHRvIGEgYm9ndXMgdmFsdWUKKyAgICAgICAgICogb2YgMCBpcyBjdXJyZW50bHkgT0suICovCisgICAgICAgIHNpemVfdCByZXF1ZXN0ZWRfb3V0cHV0X2xlbmd0aCA9IFBTQV9NQUNfTEVOR1RIKAorICAgICAgICAgICAga2V5X3R5cGUsIDAsIHJlcXVlc3RlZF9hbGcpOworICAgICAgICBzaXplX3QgZGVmYXVsdF9vdXRwdXRfbGVuZ3RoID0gUFNBX01BQ19MRU5HVEgoCisgICAgICAgICAgICBrZXlfdHlwZSwgMCwKKyAgICAgICAgICAgIFBTQV9BTEdfRlVMTF9MRU5HVEhfTUFDKHJlcXVlc3RlZF9hbGcpKTsKKworICAgICAgICAvKiBJZiB0aGUgcG9saWN5IGlzIGRlZmF1bHQtbGVuZ3RoLCBvbmx5IGFsbG93IGFuIGFsZ29yaXRobSB3aXRoCisgICAgICAgICAqIGEgZGVjbGFyZWQgZXhhY3QtbGVuZ3RoIG1hdGNoaW5nIHRoZSBkZWZhdWx0LiAqLworICAgICAgICBpZiAoUFNBX01BQ19UUlVOQ0FURURfTEVOR1RIKHBvbGljeV9hbGcpID09IDApIHsKKyAgICAgICAgICAgIHJldHVybiByZXF1ZXN0ZWRfb3V0cHV0X2xlbmd0aCA9PSBkZWZhdWx0X291dHB1dF9sZW5ndGg7CisgICAgICAgIH0KKworICAgICAgICAvKiBJZiB0aGUgcmVxdWVzdGVkIGFsZ29yaXRobSBpcyBkZWZhdWx0LWxlbmd0aCwgYWxsb3cgaXQgaWYgdGhlIHBvbGljeQorICAgICAgICAgKiBsZW5ndGggZXhhY3RseSBtYXRjaGVzIHRoZSBkZWZhdWx0IGxlbmd0aC4gKi8KKyAgICAgICAgaWYgKFBTQV9NQUNfVFJVTkNBVEVEX0xFTkdUSChyZXF1ZXN0ZWRfYWxnKSA9PSAwICYmCisgICAgICAgICAgICBQU0FfTUFDX1RSVU5DQVRFRF9MRU5HVEgocG9saWN5X2FsZykgPT0gZGVmYXVsdF9vdXRwdXRfbGVuZ3RoKSB7CisgICAgICAgICAgICByZXR1cm4gMTsKKyAgICAgICAgfQorCisgICAgICAgIC8qIElmIHBvbGljeV9hbGcgaXMgYW4gYXQtbGVhc3QtdGhpcy1sZW5ndGggd2lsZGNhcmQgTUFDIGFsZ29yaXRobSwKKyAgICAgICAgICogY2hlY2sgZm9yIHRoZSByZXF1ZXN0ZWQgTUFDIGxlbmd0aCB0byBiZSBlcXVhbCB0byBvciBsb25nZXIgdGhhbiB0aGUKKyAgICAgICAgICogbWluaW11bSBhbGxvd2VkIGxlbmd0aC4gKi8KKyAgICAgICAgaWYgKChwb2xpY3lfYWxnICYgUFNBX0FMR19NQUNfQVRfTEVBU1RfVEhJU19MRU5HVEhfRkxBRykgIT0gMCkgeworICAgICAgICAgICAgcmV0dXJuIFBTQV9NQUNfVFJVTkNBVEVEX0xFTkdUSChwb2xpY3lfYWxnKSA8PQorICAgICAgICAgICAgICAgICAgIHJlcXVlc3RlZF9vdXRwdXRfbGVuZ3RoOworICAgICAgICB9CisgICAgfQorICAgIC8qIElmIHBvbGljeV9hbGcgaXMgYSBnZW5lcmljIGtleSBhZ3JlZW1lbnQgb3BlcmF0aW9uLCB0aGVuIHVzaW5nIGl0IGZvcgorICAgICAqIGEga2V5IGRlcml2YXRpb24gd2l0aCB0aGF0IGtleSBhZ3JlZW1lbnQgc2hvdWxkIGFsc28gYmUgYWxsb3dlZC4gVGhpcworICAgICAqIGJlaGF2aW91ciBpcyBleHBlY3RlZCB0byBiZSBkZWZpbmVkIGluIGEgZnV0dXJlIHNwZWNpZmljYXRpb24gdmVyc2lvbi4gKi8KKyAgICBpZiAoUFNBX0FMR19JU19SQVdfS0VZX0FHUkVFTUVOVChwb2xpY3lfYWxnKSAmJgorICAgICAgICBQU0FfQUxHX0lTX0tFWV9BR1JFRU1FTlQocmVxdWVzdGVkX2FsZykpIHsKKyAgICAgICAgcmV0dXJuIFBTQV9BTEdfS0VZX0FHUkVFTUVOVF9HRVRfQkFTRShyZXF1ZXN0ZWRfYWxnKSA9PQorICAgICAgICAgICAgICAgcG9saWN5X2FsZzsKKyAgICB9CisgICAgLyogSWYgaXQgaXNuJ3QgZXhwbGljaXRseSBwZXJtaXR0ZWQsIGl0J3MgZm9yYmlkZGVuLiAqLworICAgIHJldHVybiAwOworfQorCisvKiogVGVzdCB3aGV0aGVyIGEgcG9saWN5IHBlcm1pdHMgYW4gYWxnb3JpdGhtLgorICoKKyAqIFRoZSBjYWxsZXIgbXVzdCB0ZXN0IHVzYWdlIGZsYWdzIHNlcGFyYXRlbHkuCisgKgorICogXG5vdGUgVGhpcyBmdW5jdGlvbiByZXF1aXJlcyBwcm92aWRpbmcgdGhlIGtleSB0eXBlIGZvciB3aGljaCB0aGUgcG9saWN5IGlzCisgKiAgICAgICBiZWluZyB2YWxpZGF0ZWQsIHNpbmNlIHNvbWUgYWxnb3JpdGhtIHBvbGljeSBkZWZpbml0aW9ucyAoZS5nLiBNQUMpCisgKiAgICAgICBoYXZlIGRpZmZlcmVudCBwcm9wZXJ0aWVzIGRlcGVuZGluZyBvbiB3aGF0IGtpbmQgb2YgY2lwaGVyIGl0IGlzCisgKiAgICAgICBjb21iaW5lZCB3aXRoLgorICoKKyAqIFxyZXR2YWwgUFNBX1NVQ0NFU1MgICAgICAgICAgICAgICAgICBXaGVuIFxwIGFsZyBpcyBhIHNwZWNpZmljIGFsZ29yaXRobQorICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFsbG93ZWQgYnkgdGhlIFxwIHBvbGljeS4KKyAqIFxyZXR2YWwgUFNBX0VSUk9SX0lOVkFMSURfQVJHVU1FTlQgICBXaGVuIFxwIGFsZyBpcyBub3QgYSBzcGVjaWZpYyBhbGdvcml0aG0KKyAqIFxyZXR2YWwgUFNBX0VSUk9SX05PVF9QRVJNSVRURUQgICAgICBXaGVuIFxwIGFsZyBpcyBhIHNwZWNpZmljIGFsZ29yaXRobSwgYnV0CisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlIFxwIHBvbGljeSBkb2VzIG5vdCBhbGxvdyBpdC4KKyAqLworc3RhdGljIHBzYV9zdGF0dXNfdCBwc2Ffa2V5X3BvbGljeV9wZXJtaXRzKGNvbnN0IHBzYV9rZXlfcG9saWN5X3QgKnBvbGljeSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwc2Ffa2V5X3R5cGVfdCBrZXlfdHlwZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwc2FfYWxnb3JpdGhtX3QgYWxnKQoreworICAgIC8qICcwJyBpcyBub3QgYSB2YWxpZCBhbGdvcml0aG0gKi8KKyAgICBpZiAoYWxnID09IDApIHsKKyAgICAgICAgcmV0dXJuIFBTQV9FUlJPUl9JTlZBTElEX0FSR1VNRU5UOworICAgIH0KKworICAgIC8qIEEgcmVxdWVzdGVkIGFsZ29yaXRobSBjYW5ub3QgYmUgYSB3aWxkY2FyZC4gKi8KKyAgICBpZiAoUFNBX0FMR19JU19XSUxEQ0FSRChhbGcpKSB7CisgICAgICAgIHJldHVybiBQU0FfRVJST1JfSU5WQUxJRF9BUkdVTUVOVDsKKyAgICB9CisKKyAgICBpZiAocHNhX2tleV9hbGdvcml0aG1fcGVybWl0cyhrZXlfdHlwZSwgcG9saWN5LT5hbGcsIGFsZykgfHwKKyAgICAgICAgcHNhX2tleV9hbGdvcml0aG1fcGVybWl0cyhrZXlfdHlwZSwgcG9saWN5LT5hbGcyLCBhbGcpKSB7CisgICAgICAgIHJldHVybiBQU0FfU1VDQ0VTUzsKKyAgICB9IGVsc2UgeworICAgICAgICByZXR1cm4gUFNBX0VSUk9SX05PVF9QRVJNSVRURUQ7CisgICAgfQorfQorCisvKiogUmVzdHJpY3QgYSBrZXkgcG9saWN5IGJhc2VkIG9uIGEgY29uc3RyYWludC4KKyAqCisgKiBcbm90ZSBUaGlzIGZ1bmN0aW9uIHJlcXVpcmVzIHByb3ZpZGluZyB0aGUga2V5IHR5cGUgZm9yIHdoaWNoIHRoZSBwb2xpY3kgaXMKKyAqICAgICAgIGJlaW5nIHJlc3RyaWN0ZWQsIHNpbmNlIHNvbWUgYWxnb3JpdGhtIHBvbGljeSBkZWZpbml0aW9ucyAoZS5nLiBNQUMpCisgKiAgICAgICBoYXZlIGRpZmZlcmVudCBwcm9wZXJ0aWVzIGRlcGVuZGluZyBvbiB3aGF0IGtpbmQgb2YgY2lwaGVyIGl0IGlzCisgKiAgICAgICBjb21iaW5lZCB3aXRoLgorICoKKyAqIFxwYXJhbVtpbl0ga2V5X3R5cGUgICAgICBUaGUga2V5IHR5cGUgZm9yIHdoaWNoIHRvIHJlc3RyaWN0IHRoZSBwb2xpY3kKKyAqIFxwYXJhbVtpbixvdXRdIHBvbGljeSAgICBUaGUgcG9saWN5IHRvIHJlc3RyaWN0LgorICogXHBhcmFtW2luXSBjb25zdHJhaW50ICAgIFRoZSBwb2xpY3kgY29uc3RyYWludCB0byBhcHBseS4KKyAqCisgKiBccmV0dmFsICNQU0FfU1VDQ0VTUworICogICAgICAgICBcYyAqcG9saWN5IGNvbnRhaW5zIHRoZSBpbnRlcnNlY3Rpb24gb2YgdGhlIG9yaWdpbmFsIHZhbHVlIG9mCisgKiAgICAgICAgIFxjICpwb2xpY3kgYW5kIFxjICpjb25zdHJhaW50LgorICogXHJldHZhbCAjUFNBX0VSUk9SX0lOVkFMSURfQVJHVU1FTlQKKyAqICAgICAgICAgXGMga2V5X3R5cGUsIFxjICpwb2xpY3kgYW5kIFxjICpjb25zdHJhaW50IGFyZSBpbmNvbXBhdGlibGUuCisgKiAgICAgICAgIFxjICpwb2xpY3kgaXMgdW5jaGFuZ2VkLgorICovCitzdGF0aWMgcHNhX3N0YXR1c190IHBzYV9yZXN0cmljdF9rZXlfcG9saWN5KAorICAgIHBzYV9rZXlfdHlwZV90IGtleV90eXBlLAorICAgIHBzYV9rZXlfcG9saWN5X3QgKnBvbGljeSwKKyAgICBjb25zdCBwc2Ffa2V5X3BvbGljeV90ICpjb25zdHJhaW50KQoreworICAgIHBzYV9hbGdvcml0aG1fdCBpbnRlcnNlY3Rpb25fYWxnID0KKyAgICAgICAgcHNhX2tleV9wb2xpY3lfYWxnb3JpdGhtX2ludGVyc2VjdGlvbihrZXlfdHlwZSwgcG9saWN5LT5hbGcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3RyYWludC0+YWxnKTsKKyAgICBwc2FfYWxnb3JpdGhtX3QgaW50ZXJzZWN0aW9uX2FsZzIgPQorICAgICAgICBwc2Ffa2V5X3BvbGljeV9hbGdvcml0aG1faW50ZXJzZWN0aW9uKGtleV90eXBlLCBwb2xpY3ktPmFsZzIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3RyYWludC0+YWxnMik7CisgICAgaWYgKGludGVyc2VjdGlvbl9hbGcgPT0gMCAmJiBwb2xpY3ktPmFsZyAhPSAwICYmIGNvbnN0cmFpbnQtPmFsZyAhPSAwKSB7CisgICAgICAgIHJldHVybiBQU0FfRVJST1JfSU5WQUxJRF9BUkdVTUVOVDsKKyAgICB9CisgICAgaWYgKGludGVyc2VjdGlvbl9hbGcyID09IDAgJiYgcG9saWN5LT5hbGcyICE9IDAgJiYgY29uc3RyYWludC0+YWxnMiAhPSAwKSB7CisgICAgICAgIHJldHVybiBQU0FfRVJST1JfSU5WQUxJRF9BUkdVTUVOVDsKKyAgICB9CisgICAgcG9saWN5LT51c2FnZSAmPSBjb25zdHJhaW50LT51c2FnZTsKKyAgICBwb2xpY3ktPmFsZyA9IGludGVyc2VjdGlvbl9hbGc7CisgICAgcG9saWN5LT5hbGcyID0gaW50ZXJzZWN0aW9uX2FsZzI7CisgICAgcmV0dXJuIFBTQV9TVUNDRVNTOworfQorCisvKiogR2V0IHRoZSBkZXNjcmlwdGlvbiBvZiBhIGtleSBnaXZlbiBpdHMgaWRlbnRpZmllciBhbmQgcG9saWN5IGNvbnN0cmFpbnRzCisgKiAgYW5kIGxvY2sgaXQuCisgKgorICogVGhlIGtleSBtdXN0IGhhdmUgYWxsb3cgYWxsIHRoZSB1c2FnZSBmbGFncyBzZXQgaW4gXHAgdXNhZ2UuIElmIFxwIGFsZyBpcworICogbm9uemVybywgdGhlIGtleSBtdXN0IGFsbG93IG9wZXJhdGlvbnMgd2l0aCB0aGlzIGFsZ29yaXRobS4gSWYgXHAgYWxnIGlzCisgKiB6ZXJvLCB0aGUgYWxnb3JpdGhtIGlzIG5vdCBjaGVja2VkLgorICoKKyAqIEluIGNhc2Ugb2YgYSBwZXJzaXN0ZW50IGtleSwgdGhlIGZ1bmN0aW9uIGxvYWRzIHRoZSBkZXNjcmlwdGlvbiBvZiB0aGUga2V5CisgKiBpbnRvIGEga2V5IHNsb3QgaWYgbm90IGFscmVhZHkgZG9uZS4KKyAqCisgKiBPbiBzdWNjZXNzLCB0aGUgcmV0dXJuZWQga2V5IHNsb3QgaGFzIGJlZW4gcmVnaXN0ZXJlZCBmb3IgcmVhZGluZy4KKyAqIEl0IGlzIHRoZSByZXNwb25zaWJpbGl0eSBvZiB0aGUgY2FsbGVyIHRvIHRoZW4gdW5yZWdpc3RlcgorICogb25jZSB0aGV5IGhhdmUgZmluaXNoZWQgcmVhZGluZyB0aGUgY29udGVudHMgb2YgdGhlIHNsb3QuCisgKiBUaGUgY2FsbGVyIHVucmVnaXN0ZXJzIGJ5IGNhbGxpbmcgcHNhX3VucmVnaXN0ZXJfcmVhZCgpIG9yCisgKiBwc2FfdW5yZWdpc3Rlcl9yZWFkX3VuZGVyX211dGV4KCkuIHBzYV91bnJlZ2lzdGVyX3JlYWQoKSBtdXN0IGJlIGNhbGxlZAorICogaWYgYW5kIG9ubHkgaWYgdGhlIGNhbGxlciBhbHJlYWR5IGhvbGRzIHRoZSBnbG9iYWwga2V5IHNsb3QgbXV0ZXgKKyAqICh3aGVuIG11dGV4ZXMgYXJlIGVuYWJsZWQpLiBwc2FfdW5yZWdpc3Rlcl9yZWFkX3VuZGVyX211dGV4KCkgZW5jYXBzdWxhdGVzCisgKiB0aGUgdW5yZWdpc3RlciB3aXRoIG11dGV4IGxvY2sgYW5kIHVubG9jayBvcGVyYXRpb25zLgorICovCitzdGF0aWMgcHNhX3N0YXR1c190IHBzYV9nZXRfYW5kX2xvY2tfa2V5X3Nsb3Rfd2l0aF9wb2xpY3koCisgICAgbWJlZHRsc19zdmNfa2V5X2lkX3Qga2V5LAorICAgIHBzYV9rZXlfc2xvdF90ICoqcF9zbG90LAorICAgIHBzYV9rZXlfdXNhZ2VfdCB1c2FnZSwKKyAgICBwc2FfYWxnb3JpdGhtX3QgYWxnKQoreworICAgIHBzYV9zdGF0dXNfdCBzdGF0dXMgPSBQU0FfRVJST1JfQ09SUlVQVElPTl9ERVRFQ1RFRDsKKyAgICBwc2Ffa2V5X3Nsb3RfdCAqc2xvdCA9IE5VTEw7CisKKyAgICBzdGF0dXMgPSBwc2FfZ2V0X2FuZF9sb2NrX2tleV9zbG90KGtleSwgcF9zbG90KTsKKyAgICBpZiAoc3RhdHVzICE9IFBTQV9TVUNDRVNTKSB7CisgICAgICAgIHJldHVybiBzdGF0dXM7CisgICAgfQorICAgIHNsb3QgPSAqcF9zbG90OworCisgICAgLyogRW5mb3JjZSB0aGF0IHVzYWdlIHBvbGljeSBmb3IgdGhlIGtleSBzbG90IGNvbnRhaW5zIGFsbCB0aGUgZmxhZ3MKKyAgICAgKiByZXF1aXJlZCBieSB0aGUgdXNhZ2UgcGFyYW1ldGVyLiBUaGVyZSBpcyBvbmUgZXhjZXB0aW9uOiBwdWJsaWMKKyAgICAgKiBrZXlzIGNhbiBhbHdheXMgYmUgZXhwb3J0ZWQsIHNvIHdlIHRyZWF0IHB1YmxpYyBrZXkgb2JqZWN0cyBhcworICAgICAqIGlmIHRoZXkgaGFkIHRoZSBleHBvcnQgZmxhZy4gKi8KKyAgICBpZiAoUFNBX0tFWV9UWVBFX0lTX1BVQkxJQ19LRVkoc2xvdC0+YXR0ci50eXBlKSkgeworICAgICAgICB1c2FnZSAmPSB+UFNBX0tFWV9VU0FHRV9FWFBPUlQ7CisgICAgfQorCisgICAgaWYgKChzbG90LT5hdHRyLnBvbGljeS51c2FnZSAmIHVzYWdlKSAhPSB1c2FnZSkgeworICAgICAgICBzdGF0dXMgPSBQU0FfRVJST1JfTk9UX1BFUk1JVFRFRDsKKyAgICAgICAgZ290byBlcnJvcjsKKyAgICB9CisKKyAgICAvKiBFbmZvcmNlIHRoYXQgdGhlIHVzYWdlIHBvbGljeSBwZXJtaXRzIHRoZSByZXF1ZXN0ZWQgYWxnb3JpdGhtLiAqLworICAgIGlmIChhbGcgIT0gMCkgeworICAgICAgICBzdGF0dXMgPSBwc2Ffa2V5X3BvbGljeV9wZXJtaXRzKCZzbG90LT5hdHRyLnBvbGljeSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzbG90LT5hdHRyLnR5cGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWxnKTsKKyAgICAgICAgaWYgKHN0YXR1cyAhPSBQU0FfU1VDQ0VTUykgeworICAgICAgICAgICAgZ290byBlcnJvcjsKKyAgICAgICAgfQorICAgIH0KKworICAgIHJldHVybiBQU0FfU1VDQ0VTUzsKKworZXJyb3I6CisgICAgKnBfc2xvdCA9IE5VTEw7CisgICAgcHNhX3VucmVnaXN0ZXJfcmVhZF91bmRlcl9tdXRleChzbG90KTsKKworICAgIHJldHVybiBzdGF0dXM7Cit9CisKKy8qKiBHZXQgYSBrZXkgc2xvdCBjb250YWluaW5nIGEgdHJhbnNwYXJlbnQga2V5IGFuZCBsb2NrIGl0LgorICoKKyAqIEEgdHJhbnNwYXJlbnQga2V5IGlzIGEga2V5IGZvciB3aGljaCB0aGUga2V5IG1hdGVyaWFsIGlzIGRpcmVjdGx5CisgKiBhdmFpbGFibGUsIGFzIG9wcG9zZWQgdG8gYSBrZXkgaW4gYSBzZWN1cmUgZWxlbWVudCBhbmQvb3IgdG8gYmUgdXNlZAorICogYnkgYSBzZWN1cmUgZWxlbWVudC4KKyAqCisgKiBUaGlzIGlzIGEgdGVtcG9yYXJ5IGZ1bmN0aW9uIHRoYXQgbWF5IGJlIHVzZWQgaW5zdGVhZCBvZgorICogcHNhX2dldF9hbmRfbG9ja19rZXlfc2xvdF93aXRoX3BvbGljeSgpIHdoZW4gdGhlcmUgaXMgbm8gb3BhcXVlIGtleSBzdXBwb3J0CisgKiBmb3IgYSBjcnlwdG9ncmFwaGljIG9wZXJhdGlvbi4KKyAqCisgKiBPbiBzdWNjZXNzLCB0aGUgcmV0dXJuZWQga2V5IHNsb3QgaGFzIGJlZW4gcmVnaXN0ZXJlZCBmb3IgcmVhZGluZy4KKyAqIEl0IGlzIHRoZSByZXNwb25zaWJpbGl0eSBvZiB0aGUgY2FsbGVyIHRvIHRoZW4gdW5yZWdpc3RlcgorICogb25jZSB0aGV5IGhhdmUgZmluaXNoZWQgcmVhZGluZyB0aGUgY29udGVudHMgb2YgdGhlIHNsb3QuCisgKiBUaGUgY2FsbGVyIHVucmVnaXN0ZXJzIGJ5IGNhbGxpbmcgcHNhX3VucmVnaXN0ZXJfcmVhZCgpIG9yCisgKiBwc2FfdW5yZWdpc3Rlcl9yZWFkX3VuZGVyX211dGV4KCkuIHBzYV91bnJlZ2lzdGVyX3JlYWQoKSBtdXN0IGJlIGNhbGxlZAorICogaWYgYW5kIG9ubHkgaWYgdGhlIGNhbGxlciBhbHJlYWR5IGhvbGRzIHRoZSBnbG9iYWwga2V5IHNsb3QgbXV0ZXgKKyAqICh3aGVuIG11dGV4ZXMgYXJlIGVuYWJsZWQpLiBwc2FfdW5yZWdpc3Rlcl9yZWFkX3VuZGVyX211dGV4KCkgZW5jYXBzdWxhdGVzCisgKiBwc2FfdW5yZWdpc3Rlcl9yZWFkKCkgd2l0aCBtdXRleCBsb2NrIGFuZCB1bmxvY2sgb3BlcmF0aW9ucy4KKyAqLworc3RhdGljIHBzYV9zdGF0dXNfdCBwc2FfZ2V0X2FuZF9sb2NrX3RyYW5zcGFyZW50X2tleV9zbG90X3dpdGhfcG9saWN5KAorICAgIG1iZWR0bHNfc3ZjX2tleV9pZF90IGtleSwKKyAgICBwc2Ffa2V5X3Nsb3RfdCAqKnBfc2xvdCwKKyAgICBwc2Ffa2V5X3VzYWdlX3QgdXNhZ2UsCisgICAgcHNhX2FsZ29yaXRobV90IGFsZykKK3sKKyAgICBwc2Ffc3RhdHVzX3Qgc3RhdHVzID0gcHNhX2dldF9hbmRfbG9ja19rZXlfc2xvdF93aXRoX3BvbGljeShrZXksIHBfc2xvdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1c2FnZSwgYWxnKTsKKyAgICBpZiAoc3RhdHVzICE9IFBTQV9TVUNDRVNTKSB7CisgICAgICAgIHJldHVybiBzdGF0dXM7CisgICAgfQorCisgICAgaWYgKHBzYV9rZXlfbGlmZXRpbWVfaXNfZXh0ZXJuYWwoKCpwX3Nsb3QpLT5hdHRyLmxpZmV0aW1lKSkgeworICAgICAgICBwc2FfdW5yZWdpc3Rlcl9yZWFkX3VuZGVyX211dGV4KCpwX3Nsb3QpOworICAgICAgICAqcF9zbG90ID0gTlVMTDsKKyAgICAgICAgcmV0dXJuIFBTQV9FUlJPUl9OT1RfU1VQUE9SVEVEOworICAgIH0KKworICAgIHJldHVybiBQU0FfU1VDQ0VTUzsKK30KKworcHNhX3N0YXR1c190IHBzYV9yZW1vdmVfa2V5X2RhdGFfZnJvbV9tZW1vcnkocHNhX2tleV9zbG90X3QgKnNsb3QpCit7CisgICAgaWYgKHNsb3QtPmtleS5kYXRhICE9IE5VTEwpIHsKKyAgICAgICAgbWJlZHRsc196ZXJvaXplX2FuZF9mcmVlKHNsb3QtPmtleS5kYXRhLCBzbG90LT5rZXkuYnl0ZXMpOworICAgIH0KKworICAgIHNsb3QtPmtleS5kYXRhID0gTlVMTDsKKyAgICBzbG90LT5rZXkuYnl0ZXMgPSAwOworCisgICAgcmV0dXJuIFBTQV9TVUNDRVNTOworfQorCisvKiogQ29tcGxldGVseSB3aXBlIGEgc2xvdCBpbiBtZW1vcnksIGluY2x1ZGluZyBpdHMgcG9saWN5LgorICogUGVyc2lzdGVudCBzdG9yYWdlIGlzIG5vdCBhZmZlY3RlZC4gKi8KK3BzYV9zdGF0dXNfdCBwc2Ffd2lwZV9rZXlfc2xvdChwc2Ffa2V5X3Nsb3RfdCAqc2xvdCkKK3sKKyAgICBwc2Ffc3RhdHVzX3Qgc3RhdHVzID0gcHNhX3JlbW92ZV9rZXlfZGF0YV9mcm9tX21lbW9yeShzbG90KTsKKworICAgIC8qCisgICAgICogQXMgdGhlIHJldHVybiBlcnJvciBjb2RlIG1heSBub3QgYmUgaGFuZGxlZCBpbiBjYXNlIG9mIG11bHRpcGxlIGVycm9ycywKKyAgICAgKiBkbyBvdXIgYmVzdCB0byByZXBvcnQgYW4gdW5leHBlY3RlZCBhbW91bnQgb2YgcmVnaXN0ZXJlZCByZWFkZXJzIG9yCisgICAgICogYW4gdW5leHBlY3RlZCBzdGF0ZS4KKyAgICAgKiBBc3NlcnQgd2l0aCBNQkVEVExTX1RFU1RfSE9PS19URVNUX0FTU0VSVCB0aGF0IHRoZSBzbG90IGlzIHZhbGlkIGZvcgorICAgICAqIHdpcGluZy4KKyAgICAgKiBpZiB0aGUgTUJFRFRMU19URVNUX0hPT0tTIGNvbmZpZ3VyYXRpb24gb3B0aW9uIGlzIGVuYWJsZWQgYW5kIHRoZQorICAgICAqIGZ1bmN0aW9uIGlzIGNhbGxlZCBhcyBwYXJ0IG9mIHRoZSBleGVjdXRpb24gb2YgYSB0ZXN0IHN1aXRlLCB0aGUKKyAgICAgKiBleGVjdXRpb24gb2YgdGhlIHRlc3Qgc3VpdGUgaXMgc3RvcHBlZCBpbiBlcnJvciBpZiB0aGUgYXNzZXJ0aW9uIGZhaWxzLgorICAgICAqLworICAgIHN3aXRjaCAoc2xvdC0+c3RhdGUpIHsKKyAgICAgICAgY2FzZSBQU0FfU0xPVF9GVUxMOgorICAgICAgICAvKiBJbiB0aGlzIHN0YXRlIHBzYV93aXBlX2tleV9zbG90KCkgbXVzdCBvbmx5IGJlIGNhbGxlZCBpZiB0aGUKKyAgICAgICAgICogY2FsbGVyIGlzIHRoZSBsYXN0IHJlYWRlci4gKi8KKyAgICAgICAgY2FzZSBQU0FfU0xPVF9QRU5ESU5HX0RFTEVUSU9OOgorICAgICAgICAgICAgLyogSW4gdGhpcyBzdGF0ZSBwc2Ffd2lwZV9rZXlfc2xvdCgpIG11c3Qgb25seSBiZSBjYWxsZWQgaWYgdGhlCisgICAgICAgICAgICAgKiBjYWxsZXIgaXMgdGhlIGxhc3QgcmVhZGVyLiAqLworICAgICAgICAgICAgaWYgKHNsb3QtPnJlZ2lzdGVyZWRfcmVhZGVycyAhPSAxKSB7CisgICAgICAgICAgICAgICAgTUJFRFRMU19URVNUX0hPT0tfVEVTVF9BU1NFUlQoc2xvdC0+cmVnaXN0ZXJlZF9yZWFkZXJzID09IDEpOworICAgICAgICAgICAgICAgIHN0YXR1cyA9IFBTQV9FUlJPUl9DT1JSVVBUSU9OX0RFVEVDVEVEOworICAgICAgICAgICAgfQorICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgUFNBX1NMT1RfRklMTElORzoKKyAgICAgICAgICAgIC8qIEluIHRoaXMgc3RhdGUgcmVnaXN0ZXJlZF9yZWFkZXJzIG11c3QgYmUgMC4gKi8KKyAgICAgICAgICAgIGlmIChzbG90LT5yZWdpc3RlcmVkX3JlYWRlcnMgIT0gMCkgeworICAgICAgICAgICAgICAgIE1CRURUTFNfVEVTVF9IT09LX1RFU1RfQVNTRVJUKHNsb3QtPnJlZ2lzdGVyZWRfcmVhZGVycyA9PSAwKTsKKyAgICAgICAgICAgICAgICBzdGF0dXMgPSBQU0FfRVJST1JfQ09SUlVQVElPTl9ERVRFQ1RFRDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIFBTQV9TTE9UX0VNUFRZOgorICAgICAgICAgICAgLyogVGhlIHNsb3QgaXMgYWxyZWFkeSBlbXB0eSwgaXQgY2Fubm90IGJlIHdpcGVkLiAqLworICAgICAgICAgICAgTUJFRFRMU19URVNUX0hPT0tfVEVTVF9BU1NFUlQoc2xvdC0+c3RhdGUgIT0gUFNBX1NMT1RfRU1QVFkpOworICAgICAgICAgICAgc3RhdHVzID0gUFNBX0VSUk9SX0NPUlJVUFRJT05fREVURUNURUQ7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIC8qIFRoZSBzbG90J3Mgc3RhdGUgaXMgaW52YWxpZC4gKi8KKyAgICAgICAgICAgIHN0YXR1cyA9IFBTQV9FUlJPUl9DT1JSVVBUSU9OX0RFVEVDVEVEOworICAgIH0KKworICAgIC8qIE11bHRpcGFydCBvcGVyYXRpb25zIG1heSBzdGlsbCBiZSB1c2luZyB0aGUga2V5LiBUaGlzIGlzIHNhZmUKKyAgICAgKiBiZWNhdXNlIGFsbCBtdWx0aXBhcnQgb3BlcmF0aW9uIG9iamVjdHMgYXJlIGluZGVwZW5kZW50IGZyb20KKyAgICAgKiB0aGUga2V5IHNsb3Q6IGlmIHRoZXkgbmVlZCB0byBhY2Nlc3MgdGhlIGtleSBhZnRlciB0aGUgc2V0dXAKKyAgICAgKiBwaGFzZSwgdGhleSBoYXZlIGEgY29weSBvZiB0aGUga2V5LiBOb3RlIHRoYXQgdGhpcyBtZWFucyB0aGF0CisgICAgICoga2V5IG1hdGVyaWFsIGNhbiBsaW5nZXIgdW50aWwgYWxsIG9wZXJhdGlvbnMgYXJlIGNvbXBsZXRlZC4gKi8KKyAgICAvKiBBdCB0aGlzIHBvaW50LCBrZXkgbWF0ZXJpYWwgYW5kIG90aGVyIHR5cGUtc3BlY2lmaWMgY29udGVudCBoYXMKKyAgICAgKiBiZWVuIHdpcGVkLiBDbGVhciByZW1haW5pbmcgbWV0YWRhdGEuIFdlIGNhbiBjYWxsIG1lbXNldCBhbmQgbm90CisgICAgICogemVyb2l6ZSBiZWNhdXNlIHRoZSBtZXRhZGF0YSBpcyBub3QgcGFydGljdWxhcmx5IHNlbnNpdGl2ZS4KKyAgICAgKiBUaGlzIG1lbXNldCBhbHNvIHNldHMgdGhlIHNsb3QncyBzdGF0ZSB0byBQU0FfU0xPVF9FTVBUWS4gKi8KKyAgICBtZW1zZXQoc2xvdCwgMCwgc2l6ZW9mKCpzbG90KSk7CisgICAgcmV0dXJuIHN0YXR1czsKK30KKworcHNhX3N0YXR1c190IHBzYV9kZXN0cm95X2tleShtYmVkdGxzX3N2Y19rZXlfaWRfdCBrZXkpCit7CisgICAgcHNhX2tleV9zbG90X3QgKnNsb3Q7CisgICAgcHNhX3N0YXR1c190IHN0YXR1czsgLyogc3RhdHVzIG9mIHRoZSBsYXN0IG9wZXJhdGlvbiAqLworICAgIHBzYV9zdGF0dXNfdCBvdmVyYWxsX3N0YXR1cyA9IFBTQV9TVUNDRVNTOworI2lmIGRlZmluZWQoTUJFRFRMU19QU0FfQ1JZUFRPX1NFX0MpCisgICAgcHNhX3NlX2Rydl90YWJsZV9lbnRyeV90ICpkcml2ZXI7CisjZW5kaWYgLyogTUJFRFRMU19QU0FfQ1JZUFRPX1NFX0MgKi8KKworICAgIGlmIChtYmVkdGxzX3N2Y19rZXlfaWRfaXNfbnVsbChrZXkpKSB7CisgICAgICAgIHJldHVybiBQU0FfU1VDQ0VTUzsKKyAgICB9CisKKyAgICAvKgorICAgICAqIEdldCB0aGUgZGVzY3JpcHRpb24gb2YgdGhlIGtleSBpbiBhIGtleSBzbG90LCBhbmQgcmVnaXN0ZXIgdG8gcmVhZCBpdC4KKyAgICAgKiBJbiB0aGUgY2FzZSBvZiBhIHBlcnNpc3RlbnQga2V5LCB0aGlzIHdpbGwgbG9hZCB0aGUga2V5IGRlc2NyaXB0aW9uCisgICAgICogZnJvbSBwZXJzaXN0ZW50IG1lbW9yeSBpZiBub3QgZG9uZSB5ZXQuCisgICAgICogV2UgY2Fubm90IGF2b2lkIHRoaXMgbG9hZGluZyBhcyB3aXRob3V0IGl0IHdlIGRvbid0IGtub3cgaWYKKyAgICAgKiB0aGUga2V5IGlzIG9wZXJhdGVkIGJ5IGFuIFNFIG9yIG5vdCBhbmQgdGhpcyBpbmZvcm1hdGlvbiBpcyBuZWVkZWQgYnkKKyAgICAgKiB0aGUgY3VycmVudCBpbXBsZW1lbnRhdGlvbi4gKi8KKyAgICBzdGF0dXMgPSBwc2FfZ2V0X2FuZF9sb2NrX2tleV9zbG90KGtleSwgJnNsb3QpOworICAgIGlmIChzdGF0dXMgIT0gUFNBX1NVQ0NFU1MpIHsKKyAgICAgICAgcmV0dXJuIHN0YXR1czsKKyAgICB9CisKKyNpZiBkZWZpbmVkKE1CRURUTFNfVEhSRUFESU5HX0MpCisgICAgLyogV2UgY2Fubm90IHVubG9jayBiZXR3ZWVuIHNldHRpbmcgdGhlIHN0YXRlIHRvIFBFTkRJTkdfREVMRVRJT04KKyAgICAgKiBhbmQgZGVzdHJveWluZyB0aGUga2V5IGluIHN0b3JhZ2UsIGFzIG90aGVyd2lzZSBhbm90aGVyIHRocmVhZAorICAgICAqIGNvdWxkIGxvYWQgdGhlIGtleSBpbnRvIGEgbmV3IHNsb3QgYW5kIHRoZSBrZXkgd2lsbCBub3QgYmUKKyAgICAgKiBmdWxseSBkZXN0cm95ZWQuICovCisgICAgUFNBX1RIUkVBRElOR19DSEtfR09UT19FWElUKG1iZWR0bHNfbXV0ZXhfbG9jaygKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZtYmVkdGxzX3RocmVhZGluZ19rZXlfc2xvdF9tdXRleCkpOworCisgICAgaWYgKHNsb3QtPnN0YXRlID09IFBTQV9TTE9UX1BFTkRJTkdfREVMRVRJT04pIHsKKyAgICAgICAgLyogQW5vdGhlciB0aHJlYWQgaGFzIGRlc3Ryb3llZCB0aGUga2V5IGJldHdlZW4gdXMgbG9ja2luZyB0aGUgc2xvdAorICAgICAgICAgKiBhbmQgdXMgZ2FpbmluZyB0aGUgbXV0ZXguIFVucmVnaXN0ZXIgZnJvbSB0aGUgc2xvdCwKKyAgICAgICAgICogYW5kIHJlcG9ydCB0aGF0IHRoZSBrZXkgZG9lcyBub3QgZXhpc3QuICovCisgICAgICAgIHN0YXR1cyA9IHBzYV91bnJlZ2lzdGVyX3JlYWQoc2xvdCk7CisKKyAgICAgICAgUFNBX1RIUkVBRElOR19DSEtfUkVUKG1iZWR0bHNfbXV0ZXhfdW5sb2NrKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZtYmVkdGxzX3RocmVhZGluZ19rZXlfc2xvdF9tdXRleCkpOworICAgICAgICByZXR1cm4gKHN0YXR1cyA9PSBQU0FfU1VDQ0VTUykgPyBQU0FfRVJST1JfSU5WQUxJRF9IQU5ETEUgOiBzdGF0dXM7CisgICAgfQorI2VuZGlmCisgICAgLyogU2V0IHRoZSBrZXkgc2xvdCBjb250YWluaW5nIHRoZSBrZXkgZGVzY3JpcHRpb24ncyBzdGF0ZSB0bworICAgICAqIFBFTkRJTkdfREVMRVRJT04uIFRoaXMgc3RvcHMgbmV3IG9wZXJhdGlvbnMgZnJvbSByZWdpc3RlcmluZworICAgICAqIHRvIHJlYWQgdGhlIHNsb3QuIEN1cnJlbnQgcmVhZGVycyBjYW4gc2FmZWx5IGNvbnRpbnVlIHRvIGFjY2VzcworICAgICAqIHRoZSBrZXkgd2l0aGluIHRoZSBzbG90OyB0aGUgbGFzdCByZWdpc3RlcmVkIHJlYWRlciB3aWxsCisgICAgICogYXV0b21hdGljYWxseSB3aXBlIHRoZSBzbG90IHdoZW4gdGhleSBjYWxsIHBzYV91bnJlZ2lzdGVyX3JlYWQoKS4KKyAgICAgKiBJZiB0aGUga2V5IGlzIHBlcnNpc3RlbnQsIHdlIGNhbiBub3cgZGVsZXRlIHRoZSBjb3B5IG9mIHRoZSBrZXkKKyAgICAgKiBmcm9tIG1lbW9yeS4gSWYgdGhlIGtleSBpcyBvcGFxdWUsIHdlIHJlcXVpcmUgdGhlIGRyaXZlciB0bworICAgICAqIGRlYWwgd2l0aCB0aGUgZGVsZXRpb24uICovCisgICAgb3ZlcmFsbF9zdGF0dXMgPSBwc2Ffa2V5X3Nsb3Rfc3RhdGVfdHJhbnNpdGlvbihzbG90LCBQU0FfU0xPVF9GVUxMLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUFNBX1NMT1RfUEVORElOR19ERUxFVElPTik7CisKKyAgICBpZiAob3ZlcmFsbF9zdGF0dXMgIT0gUFNBX1NVQ0NFU1MpIHsKKyAgICAgICAgZ290byBleGl0OworICAgIH0KKworICAgIGlmIChQU0FfS0VZX0xJRkVUSU1FX0lTX1JFQURfT05MWShzbG90LT5hdHRyLmxpZmV0aW1lKSkgeworICAgICAgICAvKiBSZWZ1c2UgdGhlIGRlc3RydWN0aW9uIG9mIGEgcmVhZC1vbmx5IGtleSAod2hpY2ggbWF5IG9yIG1heSBub3Qgd29yaworICAgICAgICAgKiBpZiB3ZSBhdHRlbXB0IGl0LCBkZXBlbmRpbmcgb24gd2hldGhlciB0aGUga2V5IGlzIG1lcmVseSByZWFkLW9ubHkKKyAgICAgICAgICogYnkgcG9saWN5IG9yIGFjdHVhbGx5IHBoeXNpY2FsbHkgcmVhZC1vbmx5KS4KKyAgICAgICAgICogSnVzdCBkbyB0aGUgYmVzdCB3ZSBjYW4sIHdoaWNoIGlzIHRvIHdpcGUgdGhlIGNvcHkgaW4gbWVtb3J5CisgICAgICAgICAqIChkb25lIGluIHRoaXMgZnVuY3Rpb24ncyBjbGVhbnVwIGNvZGUpLiAqLworICAgICAgICBvdmVyYWxsX3N0YXR1cyA9IFBTQV9FUlJPUl9OT1RfUEVSTUlUVEVEOworICAgICAgICBnb3RvIGV4aXQ7CisgICAgfQorCisjaWYgZGVmaW5lZChNQkVEVExTX1BTQV9DUllQVE9fU0VfQykKKyAgICBkcml2ZXIgPSBwc2FfZ2V0X3NlX2RyaXZlcl9lbnRyeShzbG90LT5hdHRyLmxpZmV0aW1lKTsKKyAgICBpZiAoZHJpdmVyICE9IE5VTEwpIHsKKyAgICAgICAgLyogRm9yIGEga2V5IGluIGEgc2VjdXJlIGVsZW1lbnQsIHdlIG5lZWQgdG8gZG8gdGhyZWUgdGhpbmdzOgorICAgICAgICAgKiByZW1vdmUgdGhlIGtleSBmaWxlIGluIGludGVybmFsIHN0b3JhZ2UsIGRlc3Ryb3kgdGhlCisgICAgICAgICAqIGtleSBpbnNpZGUgdGhlIHNlY3VyZSBlbGVtZW50LCBhbmQgdXBkYXRlIHRoZSBkcml2ZXIncworICAgICAgICAgKiBwZXJzaXN0ZW50IGRhdGEuIFN0YXJ0IGEgdHJhbnNhY3Rpb24gdGhhdCB3aWxsIGVuY29tcGFzcyB0aGVzZQorICAgICAgICAgKiB0aHJlZSBhY3Rpb25zLiAqLworICAgICAgICBwc2FfY3J5cHRvX3ByZXBhcmVfdHJhbnNhY3Rpb24oUFNBX0NSWVBUT19UUkFOU0FDVElPTl9ERVNUUk9ZX0tFWSk7CisgICAgICAgIHBzYV9jcnlwdG9fdHJhbnNhY3Rpb24ua2V5LmxpZmV0aW1lID0gc2xvdC0+YXR0ci5saWZldGltZTsKKyAgICAgICAgcHNhX2NyeXB0b190cmFuc2FjdGlvbi5rZXkuc2xvdCA9IHBzYV9rZXlfc2xvdF9nZXRfc2xvdF9udW1iZXIoc2xvdCk7CisgICAgICAgIHBzYV9jcnlwdG9fdHJhbnNhY3Rpb24ua2V5LmlkID0gc2xvdC0+YXR0ci5pZDsKKyAgICAgICAgc3RhdHVzID0gcHNhX2NyeXB0b19zYXZlX3RyYW5zYWN0aW9uKCk7CisgICAgICAgIGlmIChzdGF0dXMgIT0gUFNBX1NVQ0NFU1MpIHsKKyAgICAgICAgICAgICh2b2lkKSBwc2FfY3J5cHRvX3N0b3BfdHJhbnNhY3Rpb24oKTsKKyAgICAgICAgICAgIC8qIFdlIHNob3VsZCBzdGlsbCB0cnkgdG8gZGVzdHJveSB0aGUga2V5IGluIHRoZSBzZWN1cmUKKyAgICAgICAgICAgICAqIGVsZW1lbnQgYW5kIHRoZSBrZXkgbWV0YWRhdGEgaW4gc3RvcmFnZS4gVGhpcyBpcyBlc3BlY2lhbGx5CisgICAgICAgICAgICAgKiBpbXBvcnRhbnQgaWYgdGhlIGVycm9yIGlzIHRoYXQgdGhlIHN0b3JhZ2UgaXMgZnVsbC4KKyAgICAgICAgICAgICAqIEJ1dCBob3cgdG8gZG8gaXQgZXhhY3RseSB3aXRob3V0IHJpc2tpbmcgYW4gaW5jb25zaXN0ZW50CisgICAgICAgICAgICAgKiBzdGF0ZSBhZnRlciBhIHJlc2V0PworICAgICAgICAgICAgICogaHR0cHM6Ly9naXRodWIuY29tL0FSTW1iZWQvbWJlZC1jcnlwdG8vaXNzdWVzLzIxNQorICAgICAgICAgICAgICovCisgICAgICAgICAgICBvdmVyYWxsX3N0YXR1cyA9IHN0YXR1czsKKyAgICAgICAgICAgIGdvdG8gZXhpdDsKKyAgICAgICAgfQorCisgICAgICAgIHN0YXR1cyA9IHBzYV9kZXN0cm95X3NlX2tleShkcml2ZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwc2Ffa2V5X3Nsb3RfZ2V0X3Nsb3RfbnVtYmVyKHNsb3QpKTsKKyAgICAgICAgaWYgKG92ZXJhbGxfc3RhdHVzID09IFBTQV9TVUNDRVNTKSB7CisgICAgICAgICAgICBvdmVyYWxsX3N0YXR1cyA9IHN0YXR1czsKKyAgICAgICAgfQorICAgIH0KKyNlbmRpZiAvKiBNQkVEVExTX1BTQV9DUllQVE9fU0VfQyAqLworCisjaWYgZGVmaW5lZChNQkVEVExTX1BTQV9DUllQVE9fU1RPUkFHRV9DKQorICAgIGlmICghUFNBX0tFWV9MSUZFVElNRV9JU19WT0xBVElMRShzbG90LT5hdHRyLmxpZmV0aW1lKSkgeworICAgICAgICAvKiBEZXN0cm95IHRoZSBjb3B5IG9mIHRoZSBwZXJzaXN0ZW50IGtleSBmcm9tIHN0b3JhZ2UuCisgICAgICAgICAqIFRoZSBzbG90IHdpbGwgc3RpbGwgaG9sZCBhIGNvcHkgb2YgdGhlIGtleSB1bnRpbCB0aGUgbGFzdCByZWFkZXIKKyAgICAgICAgICogdW5yZWdpc3RlcnMuICovCisgICAgICAgIHN0YXR1cyA9IHBzYV9kZXN0cm95X3BlcnNpc3RlbnRfa2V5KHNsb3QtPmF0dHIuaWQpOworICAgICAgICBpZiAob3ZlcmFsbF9zdGF0dXMgPT0gUFNBX1NVQ0NFU1MpIHsKKyAgICAgICAgICAgIG92ZXJhbGxfc3RhdHVzID0gc3RhdHVzOworICAgICAgICB9CisgICAgfQorI2VuZGlmIC8qIGRlZmluZWQoTUJFRFRMU19QU0FfQ1JZUFRPX1NUT1JBR0VfQykgKi8KKworI2lmIGRlZmluZWQoTUJFRFRMU19QU0FfQ1JZUFRPX1NFX0MpCisgICAgaWYgKGRyaXZlciAhPSBOVUxMKSB7CisgICAgICAgIHN0YXR1cyA9IHBzYV9zYXZlX3NlX3BlcnNpc3RlbnRfZGF0YShkcml2ZXIpOworICAgICAgICBpZiAob3ZlcmFsbF9zdGF0dXMgPT0gUFNBX1NVQ0NFU1MpIHsKKyAgICAgICAgICAgIG92ZXJhbGxfc3RhdHVzID0gc3RhdHVzOworICAgICAgICB9CisgICAgICAgIHN0YXR1cyA9IHBzYV9jcnlwdG9fc3RvcF90cmFuc2FjdGlvbigpOworICAgICAgICBpZiAob3ZlcmFsbF9zdGF0dXMgPT0gUFNBX1NVQ0NFU1MpIHsKKyAgICAgICAgICAgIG92ZXJhbGxfc3RhdHVzID0gc3RhdHVzOworICAgICAgICB9CisgICAgfQorI2VuZGlmIC8qIE1CRURUTFNfUFNBX0NSWVBUT19TRV9DICovCisKK2V4aXQ6CisgICAgLyogVW5yZWdpc3RlciBmcm9tIHJlYWRpbmcgdGhlIHNsb3QuIElmIHdlIGFyZSB0aGUgbGFzdCBhY3RpdmUgcmVhZGVyCisgICAgICogdGhlbiB0aGlzIHdpbGwgd2lwZSB0aGUgc2xvdC4gKi8KKyAgICBzdGF0dXMgPSBwc2FfdW5yZWdpc3Rlcl9yZWFkKHNsb3QpOworICAgIC8qIFByaW9yaXRpemUgQ09SUlVQVElPTl9ERVRFQ1RFRCBmcm9tIHVucmVnaXN0ZXJpbmcgb3ZlcgorICAgICAqIGEgc3RvcmFnZSBlcnJvci4gKi8KKyAgICBpZiAoc3RhdHVzICE9IFBTQV9TVUNDRVNTKSB7CisgICAgICAgIG92ZXJhbGxfc3RhdHVzID0gc3RhdHVzOworICAgIH0KKworI2lmIGRlZmluZWQoTUJFRFRMU19USFJFQURJTkdfQykKKyAgICAvKiBEb24ndCBvdmVyd3JpdGUgZXhpc3RpbmcgZXJyb3JzIGlmIHRoZSB1bmxvY2sgZmFpbHMuICovCisgICAgc3RhdHVzID0gb3ZlcmFsbF9zdGF0dXM7CisgICAgUFNBX1RIUkVBRElOR19DSEtfUkVUKG1iZWR0bHNfbXV0ZXhfdW5sb2NrKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJm1iZWR0bHNfdGhyZWFkaW5nX2tleV9zbG90X211dGV4KSk7CisjZW5kaWYKKworICAgIHJldHVybiBvdmVyYWxsX3N0YXR1czsKK30KKworLyoqIFJldHJpZXZlIGFsbCB0aGUgcHVibGljbHktYWNjZXNzaWJsZSBhdHRyaWJ1dGVzIG9mIGEga2V5LgorICovCitwc2Ffc3RhdHVzX3QgcHNhX2dldF9rZXlfYXR0cmlidXRlcyhtYmVkdGxzX3N2Y19rZXlfaWRfdCBrZXksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwc2Ffa2V5X2F0dHJpYnV0ZXNfdCAqYXR0cmlidXRlcykKK3sKKyAgICBwc2Ffc3RhdHVzX3Qgc3RhdHVzID0gUFNBX0VSUk9SX0NPUlJVUFRJT05fREVURUNURUQ7CisgICAgcHNhX2tleV9zbG90X3QgKnNsb3Q7CisKKyAgICBwc2FfcmVzZXRfa2V5X2F0dHJpYnV0ZXMoYXR0cmlidXRlcyk7CisKKyAgICBzdGF0dXMgPSBwc2FfZ2V0X2FuZF9sb2NrX2tleV9zbG90X3dpdGhfcG9saWN5KGtleSwgJnNsb3QsIDAsIDApOworICAgIGlmIChzdGF0dXMgIT0gUFNBX1NVQ0NFU1MpIHsKKyAgICAgICAgcmV0dXJuIHN0YXR1czsKKyAgICB9CisKKyAgICAqYXR0cmlidXRlcyA9IHNsb3QtPmF0dHI7CisKKyNpZiBkZWZpbmVkKE1CRURUTFNfUFNBX0NSWVBUT19TRV9DKQorICAgIGlmIChwc2FfZ2V0X3NlX2RyaXZlcl9lbnRyeShzbG90LT5hdHRyLmxpZmV0aW1lKSAhPSBOVUxMKSB7CisgICAgICAgIHBzYV9zZXRfa2V5X3Nsb3RfbnVtYmVyKGF0dHJpYnV0ZXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBzYV9rZXlfc2xvdF9nZXRfc2xvdF9udW1iZXIoc2xvdCkpOworICAgIH0KKyNlbmRpZiAvKiBNQkVEVExTX1BTQV9DUllQVE9fU0VfQyAqLworCisgICAgcmV0dXJuIHBzYV91bnJlZ2lzdGVyX3JlYWRfdW5kZXJfbXV0ZXgoc2xvdCk7Cit9CisKKyNpZiBkZWZpbmVkKE1CRURUTFNfUFNBX0NSWVBUT19TRV9DKQorcHNhX3N0YXR1c190IHBzYV9nZXRfa2V5X3Nsb3RfbnVtYmVyKAorICAgIGNvbnN0IHBzYV9rZXlfYXR0cmlidXRlc190ICphdHRyaWJ1dGVzLAorICAgIHBzYV9rZXlfc2xvdF9udW1iZXJfdCAqc2xvdF9udW1iZXIpCit7CisgICAgaWYgKGF0dHJpYnV0ZXMtPmhhc19zbG90X251bWJlcikgeworICAgICAgICAqc2xvdF9udW1iZXIgPSBhdHRyaWJ1dGVzLT5zbG90X251bWJlcjsKKyAgICAgICAgcmV0dXJuIFBTQV9TVUNDRVNTOworICAgIH0gZWxzZSB7CisgICAgICAgIHJldHVybiBQU0FfRVJST1JfSU5WQUxJRF9BUkdVTUVOVDsKKyAgICB9Cit9CisjZW5kaWYgLyogTUJFRFRMU19QU0FfQ1JZUFRPX1NFX0MgKi8KKworc3RhdGljIHBzYV9zdGF0dXNfdCBwc2FfZXhwb3J0X2tleV9idWZmZXJfaW50ZXJuYWwoY29uc3QgdWludDhfdCAqa2V5X2J1ZmZlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBrZXlfYnVmZmVyX3NpemUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50OF90ICpkYXRhLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IGRhdGFfc2l6ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCAqZGF0YV9sZW5ndGgpCit7CisgICAgaWYgKGtleV9idWZmZXJfc2l6ZSA+IGRhdGFfc2l6ZSkgeworICAgICAgICByZXR1cm4gUFNBX0VSUk9SX0JVRkZFUl9UT09fU01BTEw7CisgICAgfQorICAgIG1lbWNweShkYXRhLCBrZXlfYnVmZmVyLCBrZXlfYnVmZmVyX3NpemUpOworICAgIG1lbXNldChkYXRhICsga2V5X2J1ZmZlcl9zaXplLCAwLAorICAgICAgICAgICBkYXRhX3NpemUgLSBrZXlfYnVmZmVyX3NpemUpOworICAgICpkYXRhX2xlbmd0aCA9IGtleV9idWZmZXJfc2l6ZTsKKyAgICByZXR1cm4gUFNBX1NVQ0NFU1M7Cit9CisKK3BzYV9zdGF0dXNfdCBwc2FfZXhwb3J0X2tleV9pbnRlcm5hbCgKKyAgICBjb25zdCBwc2Ffa2V5X2F0dHJpYnV0ZXNfdCAqYXR0cmlidXRlcywKKyAgICBjb25zdCB1aW50OF90ICprZXlfYnVmZmVyLCBzaXplX3Qga2V5X2J1ZmZlcl9zaXplLAorICAgIHVpbnQ4X3QgKmRhdGEsIHNpemVfdCBkYXRhX3NpemUsIHNpemVfdCAqZGF0YV9sZW5ndGgpCit7CisgICAgcHNhX2tleV90eXBlX3QgdHlwZSA9IGF0dHJpYnV0ZXMtPnR5cGU7CisKKyAgICBpZiAoa2V5X3R5cGVfaXNfcmF3X2J5dGVzKHR5cGUpIHx8CisgICAgICAgIFBTQV9LRVlfVFlQRV9JU19SU0EodHlwZSkgICB8fAorICAgICAgICBQU0FfS0VZX1RZUEVfSVNfRUNDKHR5cGUpICAgfHwKKyAgICAgICAgUFNBX0tFWV9UWVBFX0lTX0RIKHR5cGUpKSB7CisgICAgICAgIHJldHVybiBwc2FfZXhwb3J0X2tleV9idWZmZXJfaW50ZXJuYWwoCisgICAgICAgICAgICBrZXlfYnVmZmVyLCBrZXlfYnVmZmVyX3NpemUsCisgICAgICAgICAgICBkYXRhLCBkYXRhX3NpemUsIGRhdGFfbGVuZ3RoKTsKKyAgICB9IGVsc2UgeworICAgICAgICAvKiBUaGlzIHNob3VsZG4ndCBoYXBwZW4gaW4gdGhlIHJlZmVyZW5jZSBpbXBsZW1lbnRhdGlvbiwgYnV0CisgICAgICAgICAgIGl0IGlzIHZhbGlkIGZvciBhIHNwZWNpYWwtcHVycG9zZSBpbXBsZW1lbnRhdGlvbiB0byBvbWl0CisgICAgICAgICAgIHN1cHBvcnQgZm9yIGV4cG9ydGluZyBjZXJ0YWluIGtleSB0eXBlcy4gKi8KKyAgICAgICAgcmV0dXJuIFBTQV9FUlJPUl9OT1RfU1VQUE9SVEVEOworICAgIH0KK30KKworcHNhX3N0YXR1c190IHBzYV9leHBvcnRfa2V5KG1iZWR0bHNfc3ZjX2tleV9pZF90IGtleSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50OF90ICpkYXRhX2V4dGVybmFsLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBkYXRhX3NpemUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90ICpkYXRhX2xlbmd0aCkKK3sKKyAgICBwc2Ffc3RhdHVzX3Qgc3RhdHVzID0gUFNBX0VSUk9SX0NPUlJVUFRJT05fREVURUNURUQ7CisgICAgcHNhX3N0YXR1c190IHVubG9ja19zdGF0dXMgPSBQU0FfRVJST1JfQ09SUlVQVElPTl9ERVRFQ1RFRDsKKyAgICBwc2Ffa2V5X3Nsb3RfdCAqc2xvdDsKKyAgICBMT0NBTF9PVVRQVVRfREVDTEFSRShkYXRhX2V4dGVybmFsLCBkYXRhKTsKKworICAgIC8qIFJlamVjdCBhIHplcm8tbGVuZ3RoIG91dHB1dCBidWZmZXIgbm93LCBzaW5jZSB0aGlzIGNhbiBuZXZlciBiZSBhCisgICAgICogdmFsaWQga2V5IHJlcHJlc2VudGF0aW9uLiBUaGlzIHdheSB3ZSBrbm93IHRoYXQgZGF0YSBtdXN0IGJlIGEgdmFsaWQKKyAgICAgKiBwb2ludGVyIGFuZCB3ZSBjYW4gZG8gdGhpbmdzIGxpa2UgbWVtc2V0KGRhdGEsIC4uLiwgZGF0YV9zaXplKS4gKi8KKyAgICBpZiAoZGF0YV9zaXplID09IDApIHsKKyAgICAgICAgcmV0dXJuIFBTQV9FUlJPUl9CVUZGRVJfVE9PX1NNQUxMOworICAgIH0KKworICAgIC8qIFNldCB0aGUga2V5IHRvIGVtcHR5IG5vdywgc28gdGhhdCBldmVuIHdoZW4gdGhlcmUgYXJlIGVycm9ycywgd2UgYWx3YXlzCisgICAgICogc2V0IGRhdGFfbGVuZ3RoIHRvIGEgdmFsdWUgYmV0d2VlbiAwIGFuZCBkYXRhX3NpemUuIE9uIGVycm9yLCBzZXR0aW5nCisgICAgICogdGhlIGtleSB0byBlbXB0eSBpcyBhIGdvb2QgY2hvaWNlIGJlY2F1c2UgYW4gZW1wdHkga2V5IHJlcHJlc2VudGF0aW9uIGlzCisgICAgICogdW5saWtlbHkgdG8gYmUgYWNjZXB0ZWQgYW55d2hlcmUuICovCisgICAgKmRhdGFfbGVuZ3RoID0gMDsKKworICAgIC8qIEV4cG9ydCByZXF1aXJlcyB0aGUgRVhQT1JUIGZsYWcuIFRoZXJlIGlzIGFuIGV4Y2VwdGlvbiBmb3IgcHVibGljIGtleXMsCisgICAgICogd2hpY2ggZG9uJ3QgcmVxdWlyZSBhbnkgZmxhZywgYnV0CisgICAgICogcHNhX2dldF9hbmRfbG9ja19rZXlfc2xvdF93aXRoX3BvbGljeSgpIHRha2VzIGNhcmUgb2YgdGhpcy4KKyAgICAgKi8KKyAgICBzdGF0dXMgPSBwc2FfZ2V0X2FuZF9sb2NrX2tleV9zbG90X3dpdGhfcG9saWN5KGtleSwgJnNsb3QsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQU0FfS0VZX1VTQUdFX0VYUE9SVCwgMCk7CisgICAgaWYgKHN0YXR1cyAhPSBQU0FfU1VDQ0VTUykgeworICAgICAgICByZXR1cm4gc3RhdHVzOworICAgIH0KKworICAgIExPQ0FMX09VVFBVVF9BTExPQyhkYXRhX2V4dGVybmFsLCBkYXRhX3NpemUsIGRhdGEpOworCisgICAgc3RhdHVzID0gcHNhX2RyaXZlcl93cmFwcGVyX2V4cG9ydF9rZXkoJnNsb3QtPmF0dHIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2xvdC0+a2V5LmRhdGEsIHNsb3QtPmtleS5ieXRlcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhLCBkYXRhX3NpemUsIGRhdGFfbGVuZ3RoKTsKKworI2lmICFkZWZpbmVkKE1CRURUTFNfUFNBX0FTU1VNRV9FWENMVVNJVkVfQlVGRkVSUykKK2V4aXQ6CisjZW5kaWYKKyAgICB1bmxvY2tfc3RhdHVzID0gcHNhX3VucmVnaXN0ZXJfcmVhZF91bmRlcl9tdXRleChzbG90KTsKKworICAgIExPQ0FMX09VVFBVVF9GUkVFKGRhdGFfZXh0ZXJuYWwsIGRhdGEpOworICAgIHJldHVybiAoc3RhdHVzID09IFBTQV9TVUNDRVNTKSA/IHVubG9ja19zdGF0dXMgOiBzdGF0dXM7Cit9CisKK3BzYV9zdGF0dXNfdCBwc2FfZXhwb3J0X3B1YmxpY19rZXlfaW50ZXJuYWwoCisgICAgY29uc3QgcHNhX2tleV9hdHRyaWJ1dGVzX3QgKmF0dHJpYnV0ZXMsCisgICAgY29uc3QgdWludDhfdCAqa2V5X2J1ZmZlciwKKyAgICBzaXplX3Qga2V5X2J1ZmZlcl9zaXplLAorICAgIHVpbnQ4X3QgKmRhdGEsCisgICAgc2l6ZV90IGRhdGFfc2l6ZSwKKyAgICBzaXplX3QgKmRhdGFfbGVuZ3RoKQoreworICAgIHBzYV9rZXlfdHlwZV90IHR5cGUgPSBhdHRyaWJ1dGVzLT50eXBlOworCisgICAgaWYgKFBTQV9LRVlfVFlQRV9JU19QVUJMSUNfS0VZKHR5cGUpICYmCisgICAgICAgIChQU0FfS0VZX1RZUEVfSVNfUlNBKHR5cGUpIHx8IFBTQV9LRVlfVFlQRV9JU19FQ0ModHlwZSkgfHwKKyAgICAgICAgIFBTQV9LRVlfVFlQRV9JU19ESCh0eXBlKSkpIHsKKyAgICAgICAgLyogRXhwb3J0aW5nIHB1YmxpYyAtPiBwdWJsaWMgKi8KKyAgICAgICAgcmV0dXJuIHBzYV9leHBvcnRfa2V5X2J1ZmZlcl9pbnRlcm5hbCgKKyAgICAgICAgICAgIGtleV9idWZmZXIsIGtleV9idWZmZXJfc2l6ZSwKKyAgICAgICAgICAgIGRhdGEsIGRhdGFfc2l6ZSwgZGF0YV9sZW5ndGgpOworICAgIH0gZWxzZSBpZiAoUFNBX0tFWV9UWVBFX0lTX1JTQSh0eXBlKSkgeworI2lmIGRlZmluZWQoTUJFRFRMU19QU0FfQlVJTFRJTl9LRVlfVFlQRV9SU0FfS0VZX1BBSVJfRVhQT1JUKSB8fCBcCisgICAgICAgIGRlZmluZWQoTUJFRFRMU19QU0FfQlVJTFRJTl9LRVlfVFlQRV9SU0FfUFVCTElDX0tFWSkKKyAgICAgICAgcmV0dXJuIG1iZWR0bHNfcHNhX3JzYV9leHBvcnRfcHVibGljX2tleShhdHRyaWJ1dGVzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtleV9idWZmZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga2V5X2J1ZmZlcl9zaXplLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YV9zaXplLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGFfbGVuZ3RoKTsKKyNlbHNlCisgICAgICAgIC8qIFdlIGRvbid0IGtub3cgaG93IHRvIGNvbnZlcnQgYSBwcml2YXRlIFJTQSBrZXkgdG8gcHVibGljLiAqLworICAgICAgICByZXR1cm4gUFNBX0VSUk9SX05PVF9TVVBQT1JURUQ7CisjZW5kaWYgLyogZGVmaW5lZChNQkVEVExTX1BTQV9CVUlMVElOX0tFWV9UWVBFX1JTQV9LRVlfUEFJUl9FWFBPUlQpIHx8CisgICAgICAgICogZGVmaW5lZChNQkVEVExTX1BTQV9CVUlMVElOX0tFWV9UWVBFX1JTQV9QVUJMSUNfS0VZKSAqLworICAgIH0gZWxzZSBpZiAoUFNBX0tFWV9UWVBFX0lTX0VDQyh0eXBlKSkgeworI2lmIGRlZmluZWQoTUJFRFRMU19QU0FfQlVJTFRJTl9LRVlfVFlQRV9FQ0NfS0VZX1BBSVJfRVhQT1JUKSB8fCBcCisgICAgICAgIGRlZmluZWQoTUJFRFRMU19QU0FfQlVJTFRJTl9LRVlfVFlQRV9FQ0NfUFVCTElDX0tFWSkKKyAgICAgICAgcmV0dXJuIG1iZWR0bHNfcHNhX2VjcF9leHBvcnRfcHVibGljX2tleShhdHRyaWJ1dGVzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtleV9idWZmZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga2V5X2J1ZmZlcl9zaXplLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YV9zaXplLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGFfbGVuZ3RoKTsKKyNlbHNlCisgICAgICAgIC8qIFdlIGRvbid0IGtub3cgaG93IHRvIGNvbnZlcnQgYSBwcml2YXRlIEVDQyBrZXkgdG8gcHVibGljICovCisgICAgICAgIHJldHVybiBQU0FfRVJST1JfTk9UX1NVUFBPUlRFRDsKKyNlbmRpZiAvKiBkZWZpbmVkKE1CRURUTFNfUFNBX0JVSUxUSU5fS0VZX1RZUEVfRUNDX0tFWV9QQUlSX0VYUE9SVCkgfHwKKyAgICAgICAgKiBkZWZpbmVkKE1CRURUTFNfUFNBX0JVSUxUSU5fS0VZX1RZUEVfRUNDX1BVQkxJQ19LRVkpICovCisgICAgfSBlbHNlIGlmIChQU0FfS0VZX1RZUEVfSVNfREgodHlwZSkpIHsKKyNpZiBkZWZpbmVkKE1CRURUTFNfUFNBX0JVSUxUSU5fS0VZX1RZUEVfREhfS0VZX1BBSVJfRVhQT1JUKSB8fCBcCisgICAgICAgIGRlZmluZWQoTUJFRFRMU19QU0FfQlVJTFRJTl9LRVlfVFlQRV9ESF9QVUJMSUNfS0VZKQorICAgICAgICByZXR1cm4gbWJlZHRsc19wc2FfZmZkaF9leHBvcnRfcHVibGljX2tleShhdHRyaWJ1dGVzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXlfYnVmZmVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXlfYnVmZmVyX3NpemUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEsIGRhdGFfc2l6ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YV9sZW5ndGgpOworI2Vsc2UKKyAgICAgICAgcmV0dXJuIFBTQV9FUlJPUl9OT1RfU1VQUE9SVEVEOworI2VuZGlmIC8qIGRlZmluZWQoTUJFRFRMU19QU0FfQlVJTFRJTl9LRVlfVFlQRV9ESF9LRVlfUEFJUl9FWFBPUlQpIHx8CisgICAgICAgICogZGVmaW5lZChNQkVEVExTX1BTQV9CVUlMVElOX0tFWV9UWVBFX0RIX1BVQkxJQ19LRVkpICovCisgICAgfSBlbHNlIHsKKyAgICAgICAgKHZvaWQpIGtleV9idWZmZXI7CisgICAgICAgICh2b2lkKSBrZXlfYnVmZmVyX3NpemU7CisgICAgICAgICh2b2lkKSBkYXRhOworICAgICAgICAodm9pZCkgZGF0YV9zaXplOworICAgICAgICAodm9pZCkgZGF0YV9sZW5ndGg7CisgICAgICAgIHJldHVybiBQU0FfRVJST1JfTk9UX1NVUFBPUlRFRDsKKyAgICB9Cit9CisKK3BzYV9zdGF0dXNfdCBwc2FfZXhwb3J0X3B1YmxpY19rZXkobWJlZHRsc19zdmNfa2V5X2lkX3Qga2V5LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50OF90ICpkYXRhX2V4dGVybmFsLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgZGF0YV9zaXplLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgKmRhdGFfbGVuZ3RoKQoreworICAgIHBzYV9zdGF0dXNfdCBzdGF0dXMgPSBQU0FfRVJST1JfQ09SUlVQVElPTl9ERVRFQ1RFRDsKKyAgICBwc2Ffc3RhdHVzX3QgdW5sb2NrX3N0YXR1cyA9IFBTQV9FUlJPUl9DT1JSVVBUSU9OX0RFVEVDVEVEOworICAgIHBzYV9rZXlfc2xvdF90ICpzbG90OworCisgICAgTE9DQUxfT1VUUFVUX0RFQ0xBUkUoZGF0YV9leHRlcm5hbCwgZGF0YSk7CisKKyAgICAvKiBSZWplY3QgYSB6ZXJvLWxlbmd0aCBvdXRwdXQgYnVmZmVyIG5vdywgc2luY2UgdGhpcyBjYW4gbmV2ZXIgYmUgYQorICAgICAqIHZhbGlkIGtleSByZXByZXNlbnRhdGlvbi4gVGhpcyB3YXkgd2Uga25vdyB0aGF0IGRhdGEgbXVzdCBiZSBhIHZhbGlkCisgICAgICogcG9pbnRlciBhbmQgd2UgY2FuIGRvIHRoaW5ncyBsaWtlIG1lbXNldChkYXRhLCAuLi4sIGRhdGFfc2l6ZSkuICovCisgICAgaWYgKGRhdGFfc2l6ZSA9PSAwKSB7CisgICAgICAgIHJldHVybiBQU0FfRVJST1JfQlVGRkVSX1RPT19TTUFMTDsKKyAgICB9CisKKyAgICAvKiBTZXQgdGhlIGtleSB0byBlbXB0eSBub3csIHNvIHRoYXQgZXZlbiB3aGVuIHRoZXJlIGFyZSBlcnJvcnMsIHdlIGFsd2F5cworICAgICAqIHNldCBkYXRhX2xlbmd0aCB0byBhIHZhbHVlIGJldHdlZW4gMCBhbmQgZGF0YV9zaXplLiBPbiBlcnJvciwgc2V0dGluZworICAgICAqIHRoZSBrZXkgdG8gZW1wdHkgaXMgYSBnb29kIGNob2ljZSBiZWNhdXNlIGFuIGVtcHR5IGtleSByZXByZXNlbnRhdGlvbiBpcworICAgICAqIHVubGlrZWx5IHRvIGJlIGFjY2VwdGVkIGFueXdoZXJlLiAqLworICAgICpkYXRhX2xlbmd0aCA9IDA7CisKKyAgICAvKiBFeHBvcnRpbmcgYSBwdWJsaWMga2V5IGRvZXNuJ3QgcmVxdWlyZSBhIHVzYWdlIGZsYWcuICovCisgICAgc3RhdHVzID0gcHNhX2dldF9hbmRfbG9ja19rZXlfc2xvdF93aXRoX3BvbGljeShrZXksICZzbG90LCAwLCAwKTsKKyAgICBpZiAoc3RhdHVzICE9IFBTQV9TVUNDRVNTKSB7CisgICAgICAgIHJldHVybiBzdGF0dXM7CisgICAgfQorCisgICAgTE9DQUxfT1VUUFVUX0FMTE9DKGRhdGFfZXh0ZXJuYWwsIGRhdGFfc2l6ZSwgZGF0YSk7CisKKyAgICBpZiAoIVBTQV9LRVlfVFlQRV9JU19BU1lNTUVUUklDKHNsb3QtPmF0dHIudHlwZSkpIHsKKyAgICAgICAgc3RhdHVzID0gUFNBX0VSUk9SX0lOVkFMSURfQVJHVU1FTlQ7CisgICAgICAgIGdvdG8gZXhpdDsKKyAgICB9CisKKyAgICBzdGF0dXMgPSBwc2FfZHJpdmVyX3dyYXBwZXJfZXhwb3J0X3B1YmxpY19rZXkoCisgICAgICAgICZzbG90LT5hdHRyLCBzbG90LT5rZXkuZGF0YSwgc2xvdC0+a2V5LmJ5dGVzLAorICAgICAgICBkYXRhLCBkYXRhX3NpemUsIGRhdGFfbGVuZ3RoKTsKKworZXhpdDoKKyAgICB1bmxvY2tfc3RhdHVzID0gcHNhX3VucmVnaXN0ZXJfcmVhZF91bmRlcl9tdXRleChzbG90KTsKKworICAgIExPQ0FMX09VVFBVVF9GUkVFKGRhdGFfZXh0ZXJuYWwsIGRhdGEpOworICAgIHJldHVybiAoc3RhdHVzID09IFBTQV9TVUNDRVNTKSA/IHVubG9ja19zdGF0dXMgOiBzdGF0dXM7Cit9CisKKy8qKiBWYWxpZGF0ZSB0aGF0IGEga2V5IHBvbGljeSBpcyBpbnRlcm5hbGx5IHdlbGwtZm9ybWVkLgorICoKKyAqIFRoaXMgZnVuY3Rpb24gb25seSByZWplY3RzIGludmFsaWQgcG9saWNpZXMuIEl0IGRvZXMgbm90IHZhbGlkYXRlIHRoZQorICogY29uc2lzdGVuY3kgb2YgdGhlIHBvbGljeSB3aXRoIHJlc3BlY3QgdG8gb3RoZXIgYXR0cmlidXRlcyBvZiB0aGUga2V5CisgKiBzdWNoIGFzIHRoZSBrZXkgdHlwZS4KKyAqLworc3RhdGljIHBzYV9zdGF0dXNfdCBwc2FfdmFsaWRhdGVfa2V5X3BvbGljeShjb25zdCBwc2Ffa2V5X3BvbGljeV90ICpwb2xpY3kpCit7CisgICAgaWYgKChwb2xpY3ktPnVzYWdlICYgfihQU0FfS0VZX1VTQUdFX0VYUE9SVCB8CisgICAgICAgICAgICAgICAgICAgICAgICAgICBQU0FfS0VZX1VTQUdFX0NPUFkgfAorICAgICAgICAgICAgICAgICAgICAgICAgICAgUFNBX0tFWV9VU0FHRV9FTkNSWVBUIHwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIFBTQV9LRVlfVVNBR0VfREVDUllQVCB8CisgICAgICAgICAgICAgICAgICAgICAgICAgICBQU0FfS0VZX1VTQUdFX1NJR05fTUVTU0FHRSB8CisgICAgICAgICAgICAgICAgICAgICAgICAgICBQU0FfS0VZX1VTQUdFX1ZFUklGWV9NRVNTQUdFIHwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIFBTQV9LRVlfVVNBR0VfU0lHTl9IQVNIIHwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIFBTQV9LRVlfVVNBR0VfVkVSSUZZX0hBU0ggfAorICAgICAgICAgICAgICAgICAgICAgICAgICAgUFNBX0tFWV9VU0FHRV9WRVJJRllfREVSSVZBVElPTiB8CisgICAgICAgICAgICAgICAgICAgICAgICAgICBQU0FfS0VZX1VTQUdFX0RFUklWRSkpICE9IDApIHsKKyAgICAgICAgcmV0dXJuIFBTQV9FUlJPUl9JTlZBTElEX0FSR1VNRU5UOworICAgIH0KKworICAgIHJldHVybiBQU0FfU1VDQ0VTUzsKK30KKworLyoqIFZhbGlkYXRlIHRoZSBpbnRlcm5hbCBjb25zaXN0ZW5jeSBvZiBrZXkgYXR0cmlidXRlcy4KKyAqCisgKiBUaGlzIGZ1bmN0aW9uIG9ubHkgcmVqZWN0cyBpbnZhbGlkIGF0dHJpYnV0ZSB2YWx1ZXMuIElmIGRvZXMgbm90CisgKiB2YWxpZGF0ZSB0aGUgY29uc2lzdGVuY3kgb2YgdGhlIGF0dHJpYnV0ZXMgd2l0aCBhbnkga2V5IGRhdGEgdGhhdCBtYXkKKyAqIGJlIGludm9sdmVkIGluIHRoZSBjcmVhdGlvbiBvZiB0aGUga2V5LgorICoKKyAqIENhbGwgdGhpcyBmdW5jdGlvbiBlYXJseSBpbiB0aGUga2V5IGNyZWF0aW9uIHByb2Nlc3MuCisgKgorICogXHBhcmFtW2luXSBhdHRyaWJ1dGVzICAgIEtleSBhdHRyaWJ1dGVzIGZvciB0aGUgbmV3IGtleS4KKyAqIFxwYXJhbVtvdXRdIHBfZHJ2ICAgICAgICBPbiBhbnkgcmV0dXJuLCB0aGUgZHJpdmVyIGZvciB0aGUga2V5LCBpZiBhbnkuCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCBmb3IgYSB0cmFuc3BhcmVudCBrZXkuCisgKgorICovCitzdGF0aWMgcHNhX3N0YXR1c190IHBzYV92YWxpZGF0ZV9rZXlfYXR0cmlidXRlcygKKyAgICBjb25zdCBwc2Ffa2V5X2F0dHJpYnV0ZXNfdCAqYXR0cmlidXRlcywKKyAgICBwc2Ffc2VfZHJ2X3RhYmxlX2VudHJ5X3QgKipwX2RydikKK3sKKyAgICBwc2Ffc3RhdHVzX3Qgc3RhdHVzID0gUFNBX0VSUk9SX0lOVkFMSURfQVJHVU1FTlQ7CisgICAgcHNhX2tleV9saWZldGltZV90IGxpZmV0aW1lID0gcHNhX2dldF9rZXlfbGlmZXRpbWUoYXR0cmlidXRlcyk7CisgICAgbWJlZHRsc19zdmNfa2V5X2lkX3Qga2V5ID0gcHNhX2dldF9rZXlfaWQoYXR0cmlidXRlcyk7CisKKyAgICBzdGF0dXMgPSBwc2FfdmFsaWRhdGVfa2V5X2xvY2F0aW9uKGxpZmV0aW1lLCBwX2Rydik7CisgICAgaWYgKHN0YXR1cyAhPSBQU0FfU1VDQ0VTUykgeworICAgICAgICByZXR1cm4gc3RhdHVzOworICAgIH0KKworICAgIHN0YXR1cyA9IHBzYV92YWxpZGF0ZV9rZXlfcGVyc2lzdGVuY2UobGlmZXRpbWUpOworICAgIGlmIChzdGF0dXMgIT0gUFNBX1NVQ0NFU1MpIHsKKyAgICAgICAgcmV0dXJuIHN0YXR1czsKKyAgICB9CisKKyAgICBpZiAoUFNBX0tFWV9MSUZFVElNRV9JU19WT0xBVElMRShsaWZldGltZSkpIHsKKyAgICAgICAgaWYgKE1CRURUTFNfU1ZDX0tFWV9JRF9HRVRfS0VZX0lEKGtleSkgIT0gMCkgeworICAgICAgICAgICAgcmV0dXJuIFBTQV9FUlJPUl9JTlZBTElEX0FSR1VNRU5UOworICAgICAgICB9CisgICAgfSBlbHNlIHsKKyAgICAgICAgaWYgKCFwc2FfaXNfdmFsaWRfa2V5X2lkKHBzYV9nZXRfa2V5X2lkKGF0dHJpYnV0ZXMpLCAwKSkgeworICAgICAgICAgICAgcmV0dXJuIFBTQV9FUlJPUl9JTlZBTElEX0FSR1VNRU5UOworICAgICAgICB9CisgICAgfQorCisgICAgc3RhdHVzID0gcHNhX3ZhbGlkYXRlX2tleV9wb2xpY3koJmF0dHJpYnV0ZXMtPnBvbGljeSk7CisgICAgaWYgKHN0YXR1cyAhPSBQU0FfU1VDQ0VTUykgeworICAgICAgICByZXR1cm4gc3RhdHVzOworICAgIH0KKworICAgIC8qIFJlZnVzZSB0byBjcmVhdGUgb3Zlcmx5IGxhcmdlIGtleXMuCisgICAgICogTm90ZSB0aGF0IHRoaXMgZG9lc24ndCB0cmlnZ2VyIG9uIGltcG9ydCBpZiB0aGUgYXR0cmlidXRlcyBkb24ndAorICAgICAqIGV4cGxpY2l0bHkgc3BlY2lmeSBhIHNpemUgKHNvIHBzYV9nZXRfa2V5X2JpdHMgcmV0dXJucyAwKSwgc28KKyAgICAgKiBwc2FfaW1wb3J0X2tleSgpIG5lZWRzIGl0cyBvd24gY2hlY2tzLiAqLworICAgIGlmIChwc2FfZ2V0X2tleV9iaXRzKGF0dHJpYnV0ZXMpID4gUFNBX01BWF9LRVlfQklUUykgeworICAgICAgICByZXR1cm4gUFNBX0VSUk9SX05PVF9TVVBQT1JURUQ7CisgICAgfQorCisgICAgcmV0dXJuIFBTQV9TVUNDRVNTOworfQorCisvKiogUHJlcGFyZSBhIGtleSBzbG90IHRvIHJlY2VpdmUga2V5IG1hdGVyaWFsLgorICoKKyAqIFRoaXMgZnVuY3Rpb24gYWxsb2NhdGVzIGEga2V5IHNsb3QgYW5kIHNldHMgaXRzIG1ldGFkYXRhLgorICoKKyAqIElmIHRoaXMgZnVuY3Rpb24gZmFpbHMsIGNhbGwgcHNhX2ZhaWxfa2V5X2NyZWF0aW9uKCkuCisgKgorICogVGhpcyBmdW5jdGlvbiBpcyBpbnRlbmRlZCB0byBiZSB1c2VkIGFzIGZvbGxvd3M6CisgKiAtIyBDYWxsIHBzYV9zdGFydF9rZXlfY3JlYXRpb24oKSB0byBhbGxvY2F0ZSBhIGtleSBzbG90LCBwcmVwYXJlCisgKiAgICBpdCB3aXRoIHRoZSBzcGVjaWZpZWQgYXR0cmlidXRlcywgYW5kIGluIGNhc2Ugb2YgYSB2b2xhdGlsZSBrZXkgYXNzaWduIGl0CisgKiAgICBhIHZvbGF0aWxlIGtleSBpZGVudGlmaWVyLgorICogLSMgUG9wdWxhdGUgdGhlIHNsb3Qgd2l0aCB0aGUga2V5IG1hdGVyaWFsLgorICogLSMgQ2FsbCBwc2FfZmluaXNoX2tleV9jcmVhdGlvbigpIHRvIGZpbmFsaXplIHRoZSBjcmVhdGlvbiBvZiB0aGUgc2xvdC4KKyAqIEluIGNhc2Ugb2YgZmFpbHVyZSBhdCBhbnkgc3RlcCwgc3RvcCB0aGUgc2VxdWVuY2UgYW5kIGNhbGwKKyAqIHBzYV9mYWlsX2tleV9jcmVhdGlvbigpLgorICoKKyAqIE9uIHN1Y2Nlc3MsIHRoZSBrZXkgc2xvdCdzIHN0YXRlIGlzIFBTQV9TTE9UX0ZJTExJTkcuCisgKiBJdCBpcyB0aGUgcmVzcG9uc2liaWxpdHkgb2YgdGhlIGNhbGxlciB0byBjaGFuZ2UgdGhlIHNsb3QncyBzdGF0ZSB0bworICogUFNBX1NMT1RfRU1QVFkvRlVMTCBvbmNlIGtleSBjcmVhdGlvbiBoYXMgZmluaXNoZWQuCisgKgorICogXHBhcmFtIG1ldGhvZCAgICAgICAgICAgIEFuIGlkZW50aWZpY2F0aW9uIG9mIHRoZSBjYWxsaW5nIGZ1bmN0aW9uLgorICogXHBhcmFtW2luXSBhdHRyaWJ1dGVzICAgIEtleSBhdHRyaWJ1dGVzIGZvciB0aGUgbmV3IGtleS4KKyAqIFxwYXJhbVtvdXRdIHBfc2xvdCAgICAgICBPbiBzdWNjZXNzLCBhIHBvaW50ZXIgdG8gdGhlIHByZXBhcmVkIHNsb3QuCisgKiBccGFyYW1bb3V0XSBwX2RydiAgICAgICAgT24gYW55IHJldHVybiwgdGhlIGRyaXZlciBmb3IgdGhlIGtleSwgaWYgYW55LgorICogICAgICAgICAgICAgICAgICAgICAgICAgIE5VTEwgZm9yIGEgdHJhbnNwYXJlbnQga2V5LgorICoKKyAqIFxyZXR2YWwgI1BTQV9TVUNDRVNTCisgKiAgICAgICAgIFRoZSBrZXkgc2xvdCBpcyByZWFkeSB0byByZWNlaXZlIGtleSBtYXRlcmlhbC4KKyAqIFxyZXR1cm4gSWYgdGhpcyBmdW5jdGlvbiBmYWlscywgdGhlIGtleSBzbG90IGlzIGFuIGludmFsaWQgc3RhdGUuCisgKiAgICAgICAgIFlvdSBtdXN0IGNhbGwgcHNhX2ZhaWxfa2V5X2NyZWF0aW9uKCkgdG8gd2lwZSBhbmQgZnJlZSB0aGUgc2xvdC4KKyAqLworc3RhdGljIHBzYV9zdGF0dXNfdCBwc2Ffc3RhcnRfa2V5X2NyZWF0aW9uKAorICAgIHBzYV9rZXlfY3JlYXRpb25fbWV0aG9kX3QgbWV0aG9kLAorICAgIGNvbnN0IHBzYV9rZXlfYXR0cmlidXRlc190ICphdHRyaWJ1dGVzLAorICAgIHBzYV9rZXlfc2xvdF90ICoqcF9zbG90LAorICAgIHBzYV9zZV9kcnZfdGFibGVfZW50cnlfdCAqKnBfZHJ2KQoreworICAgIHBzYV9zdGF0dXNfdCBzdGF0dXM7CisgICAgcHNhX2tleV9pZF90IHZvbGF0aWxlX2tleV9pZDsKKyAgICBwc2Ffa2V5X3Nsb3RfdCAqc2xvdDsKKworICAgICh2b2lkKSBtZXRob2Q7CisgICAgKnBfZHJ2ID0gTlVMTDsKKworICAgIHN0YXR1cyA9IHBzYV92YWxpZGF0ZV9rZXlfYXR0cmlidXRlcyhhdHRyaWJ1dGVzLCBwX2Rydik7CisgICAgaWYgKHN0YXR1cyAhPSBQU0FfU1VDQ0VTUykgeworICAgICAgICByZXR1cm4gc3RhdHVzOworICAgIH0KKworI2lmIGRlZmluZWQoTUJFRFRMU19USFJFQURJTkdfQykKKyAgICBQU0FfVEhSRUFESU5HX0NIS19SRVQobWJlZHRsc19tdXRleF9sb2NrKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJm1iZWR0bHNfdGhyZWFkaW5nX2tleV9zbG90X211dGV4KSk7CisjZW5kaWYKKyAgICBzdGF0dXMgPSBwc2FfcmVzZXJ2ZV9mcmVlX2tleV9zbG90KCZ2b2xhdGlsZV9rZXlfaWQsIHBfc2xvdCk7CisjaWYgZGVmaW5lZChNQkVEVExTX1RIUkVBRElOR19DKQorICAgIFBTQV9USFJFQURJTkdfQ0hLX1JFVChtYmVkdGxzX211dGV4X3VubG9jaygKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZtYmVkdGxzX3RocmVhZGluZ19rZXlfc2xvdF9tdXRleCkpOworI2VuZGlmCisgICAgaWYgKHN0YXR1cyAhPSBQU0FfU1VDQ0VTUykgeworICAgICAgICByZXR1cm4gc3RhdHVzOworICAgIH0KKyAgICBzbG90ID0gKnBfc2xvdDsKKworICAgIC8qIFdlJ3JlIHN0b3JpbmcgdGhlIGRlY2xhcmVkIGJpdC1zaXplIG9mIHRoZSBrZXkuIEl0J3MgdXAgdG8gZWFjaAorICAgICAqIGNyZWF0aW9uIG1lY2hhbmlzbSB0byB2ZXJpZnkgdGhhdCB0aGlzIGluZm9ybWF0aW9uIGlzIGNvcnJlY3QuCisgICAgICogSXQncyBhdXRvbWF0aWNhbGx5IGNvcnJlY3QgZm9yIG1lY2hhbmlzbXMgdGhhdCB1c2UgdGhlIGJpdC1zaXplIGFzCisgICAgICogYW4gaW5wdXQgKGdlbmVyYXRlLCBkZXZpY2UpIGJ1dCBub3QgZm9yIHRob3NlIHdoZXJlIHRoZSBiaXQtc2l6ZQorICAgICAqIGlzIG9wdGlvbmFsIChpbXBvcnQsIGNvcHkpLiBJbiBjYXNlIG9mIGEgdm9sYXRpbGUga2V5LCBhc3NpZ24gaXQgdGhlCisgICAgICogdm9sYXRpbGUga2V5IGlkZW50aWZpZXIgYXNzb2NpYXRlZCB0byB0aGUgc2xvdCByZXR1cm5lZCB0byBjb250YWluIGl0cworICAgICAqIGRlZmluaXRpb24uICovCisKKyAgICBzbG90LT5hdHRyID0gKmF0dHJpYnV0ZXM7CisgICAgaWYgKFBTQV9LRVlfTElGRVRJTUVfSVNfVk9MQVRJTEUoc2xvdC0+YXR0ci5saWZldGltZSkpIHsKKyNpZiAhZGVmaW5lZChNQkVEVExTX1BTQV9DUllQVE9fS0VZX0lEX0VOQ09ERVNfT1dORVIpCisgICAgICAgIHNsb3QtPmF0dHIuaWQgPSB2b2xhdGlsZV9rZXlfaWQ7CisjZWxzZQorICAgICAgICBzbG90LT5hdHRyLmlkLmtleV9pZCA9IHZvbGF0aWxlX2tleV9pZDsKKyNlbmRpZgorICAgIH0KKworI2lmIGRlZmluZWQoTUJFRFRMU19QU0FfQ1JZUFRPX1NFX0MpCisgICAgLyogRm9yIGEga2V5IGluIGEgc2VjdXJlIGVsZW1lbnQsIHdlIG5lZWQgdG8gZG8gdGhyZWUgdGhpbmdzCisgICAgICogd2hlbiBjcmVhdGluZyBvciByZWdpc3RlcmluZyBhIHBlcnNpc3RlbnQga2V5OgorICAgICAqIGNyZWF0ZSB0aGUga2V5IGZpbGUgaW4gaW50ZXJuYWwgc3RvcmFnZSwgY3JlYXRlIHRoZQorICAgICAqIGtleSBpbnNpZGUgdGhlIHNlY3VyZSBlbGVtZW50LCBhbmQgdXBkYXRlIHRoZSBkcml2ZXIncworICAgICAqIHBlcnNpc3RlbnQgZGF0YS4gVGhpcyBpcyBkb25lIGJ5IHN0YXJ0aW5nIGEgdHJhbnNhY3Rpb24gdGhhdCB3aWxsCisgICAgICogZW5jb21wYXNzIHRoZXNlIHRocmVlIGFjdGlvbnMuCisgICAgICogRm9yIHJlZ2lzdGVyaW5nIGEgdm9sYXRpbGUga2V5LCB3ZSBqdXN0IG5lZWQgdG8gZmluZCBhbiBhcHByb3ByaWF0ZQorICAgICAqIHNsb3QgbnVtYmVyIGluc2lkZSB0aGUgU0UuIFNpbmNlIHRoZSBrZXkgaXMgZGVzaWduYXRlZCB2b2xhdGlsZSwgY3JlYXRpbmcKKyAgICAgKiBhIHRyYW5zYWN0aW9uIGlzIG5vdCByZXF1aXJlZC4gKi8KKyAgICAvKiBUaGUgZmlyc3QgdGhpbmcgdG8gZG8gaXMgdG8gZmluZCBhIHNsb3QgbnVtYmVyIGZvciB0aGUgbmV3IGtleS4KKyAgICAgKiBXZSBzYXZlIHRoZSBzbG90IG51bWJlciBpbiBwZXJzaXN0ZW50IHN0b3JhZ2UgYXMgcGFydCBvZiB0aGUKKyAgICAgKiB0cmFuc2FjdGlvbiBkYXRhLiBJdCB3aWxsIGJlIG5lZWRlZCB0byByZWNvdmVyIGlmIHRoZSBwb3dlcgorICAgICAqIGZhaWxzIGR1cmluZyB0aGUga2V5IGNyZWF0aW9uIHByb2Nlc3MsIHRvIGNsZWFuIHVwIG9uIHRoZSBzZWN1cmUKKyAgICAgKiBlbGVtZW50IHNpZGUgYWZ0ZXIgcmVzdGFydGluZy4gT2J0YWluaW5nIGEgc2xvdCBudW1iZXIgZnJvbSB0aGUKKyAgICAgKiBzZWN1cmUgZWxlbWVudCBkcml2ZXIgdXBkYXRlcyBpdHMgcGVyc2lzdGVudCBzdGF0ZSwgYnV0IHdlIGRvIG5vdCB5ZXQKKyAgICAgKiBzYXZlIHRoZSBkcml2ZXIncyBwZXJzaXN0ZW50IHN0YXRlLCBzbyB0aGF0IGlmIHRoZSBwb3dlciBmYWlscywKKyAgICAgKiB3ZSBjYW4gcm9sbCBiYWNrIHRvIGEgc3RhdGUgd2hlcmUgdGhlIGtleSBkb2Vzbid0IGV4aXN0LiAqLworICAgIGlmICgqcF9kcnYgIT0gTlVMTCkgeworICAgICAgICBwc2Ffa2V5X3Nsb3RfbnVtYmVyX3Qgc2xvdF9udW1iZXI7CisgICAgICAgIHN0YXR1cyA9IHBzYV9maW5kX3NlX3Nsb3RfZm9yX2tleShhdHRyaWJ1dGVzLCBtZXRob2QsICpwX2RydiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZzbG90X251bWJlcik7CisgICAgICAgIGlmIChzdGF0dXMgIT0gUFNBX1NVQ0NFU1MpIHsKKyAgICAgICAgICAgIHJldHVybiBzdGF0dXM7CisgICAgICAgIH0KKworICAgICAgICBpZiAoIVBTQV9LRVlfTElGRVRJTUVfSVNfVk9MQVRJTEUoYXR0cmlidXRlcy0+bGlmZXRpbWUpKSB7CisgICAgICAgICAgICBwc2FfY3J5cHRvX3ByZXBhcmVfdHJhbnNhY3Rpb24oUFNBX0NSWVBUT19UUkFOU0FDVElPTl9DUkVBVEVfS0VZKTsKKyAgICAgICAgICAgIHBzYV9jcnlwdG9fdHJhbnNhY3Rpb24ua2V5LmxpZmV0aW1lID0gc2xvdC0+YXR0ci5saWZldGltZTsKKyAgICAgICAgICAgIHBzYV9jcnlwdG9fdHJhbnNhY3Rpb24ua2V5LnNsb3QgPSBzbG90X251bWJlcjsKKyAgICAgICAgICAgIHBzYV9jcnlwdG9fdHJhbnNhY3Rpb24ua2V5LmlkID0gc2xvdC0+YXR0ci5pZDsKKyAgICAgICAgICAgIHN0YXR1cyA9IHBzYV9jcnlwdG9fc2F2ZV90cmFuc2FjdGlvbigpOworICAgICAgICAgICAgaWYgKHN0YXR1cyAhPSBQU0FfU1VDQ0VTUykgeworICAgICAgICAgICAgICAgICh2b2lkKSBwc2FfY3J5cHRvX3N0b3BfdHJhbnNhY3Rpb24oKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gc3RhdHVzOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgc3RhdHVzID0gcHNhX2NvcHlfa2V5X21hdGVyaWFsX2ludG9fc2xvdCgKKyAgICAgICAgICAgIHNsb3QsICh1aW50OF90ICopICgmc2xvdF9udW1iZXIpLCBzaXplb2Yoc2xvdF9udW1iZXIpKTsKKyAgICAgICAgaWYgKHN0YXR1cyAhPSBQU0FfU1VDQ0VTUykgeworICAgICAgICAgICAgcmV0dXJuIHN0YXR1czsKKyAgICAgICAgfQorICAgIH0KKworICAgIGlmICgqcF9kcnYgPT0gTlVMTCAmJiBtZXRob2QgPT0gUFNBX0tFWV9DUkVBVElPTl9SRUdJU1RFUikgeworICAgICAgICAvKiBLZXkgcmVnaXN0cmF0aW9uIG9ubHkgbWFrZXMgc2Vuc2Ugd2l0aCBhIHNlY3VyZSBlbGVtZW50LiAqLworICAgICAgICByZXR1cm4gUFNBX0VSUk9SX0lOVkFMSURfQVJHVU1FTlQ7CisgICAgfQorI2VuZGlmIC8qIE1CRURUTFNfUFNBX0NSWVBUT19TRV9DICovCisKKyAgICByZXR1cm4gUFNBX1NVQ0NFU1M7Cit9CisKKy8qKiBGaW5hbGl6ZSB0aGUgY3JlYXRpb24gb2YgYSBrZXkgb25jZSBpdHMga2V5IG1hdGVyaWFsIGhhcyBiZWVuIHNldC4KKyAqCisgKiBUaGlzIGVudGFpbHMgd3JpdGluZyB0aGUga2V5IHRvIHBlcnNpc3RlbnQgc3RvcmFnZS4KKyAqCisgKiBJZiB0aGlzIGZ1bmN0aW9uIGZhaWxzLCBjYWxsIHBzYV9mYWlsX2tleV9jcmVhdGlvbigpLgorICogU2VlIHRoZSBkb2N1bWVudGF0aW9uIG9mIHBzYV9zdGFydF9rZXlfY3JlYXRpb24oKSBmb3IgdGhlIGludGVuZGVkIHVzZQorICogb2YgdGhpcyBmdW5jdGlvbi4KKyAqCisgKiBJZiB0aGUgZmluYWxpemF0aW9uIHN1Y2NlZWRzLCB0aGUgZnVuY3Rpb24gc2V0cyB0aGUga2V5IHNsb3QncyBzdGF0ZSB0bworICogUFNBX1NMT1RfRlVMTCwgYW5kIHRoZSBrZXkgc2xvdCBjYW4gbm8gbG9uZ2VyIGJlIGFjY2Vzc2VkIGFzIHBhcnQgb2YgdGhlCisgKiBrZXkgY3JlYXRpb24gcHJvY2Vzcy4KKyAqCisgKiBccGFyYW1baW4sb3V0XSBzbG90ICBQb2ludGVyIHRvIHRoZSBzbG90IHdpdGgga2V5IG1hdGVyaWFsLgorICogXHBhcmFtW2luXSBkcml2ZXIgICAgVGhlIHNlY3VyZSBlbGVtZW50IGRyaXZlciBmb3IgdGhlIGtleSwKKyAqICAgICAgICAgICAgICAgICAgICAgIG9yIE5VTEwgZm9yIGEgdHJhbnNwYXJlbnQga2V5LgorICogXHBhcmFtW291dF0ga2V5ICAgICAgT24gc3VjY2VzcywgaWRlbnRpZmllciBvZiB0aGUga2V5LiBOb3RlIHRoYXQgdGhlCisgKiAgICAgICAgICAgICAgICAgICAgICBrZXkgaWRlbnRpZmllciBpcyBhbHNvIHN0b3JlZCBpbiB0aGUga2V5IHNsb3QuCisgKgorICogXHJldHZhbCAjUFNBX1NVQ0NFU1MKKyAqICAgICAgICAgVGhlIGtleSB3YXMgc3VjY2Vzc2Z1bGx5IGNyZWF0ZWQuCisgKiBccmV0dmFsICNQU0FfRVJST1JfSU5TVUZGSUNJRU5UX01FTU9SWSBcZW1wdHlkZXNjcmlwdGlvbgorICogXHJldHZhbCAjUFNBX0VSUk9SX0lOU1VGRklDSUVOVF9TVE9SQUdFIFxlbXB0eWRlc2NyaXB0aW9uCisgKiBccmV0dmFsICNQU0FfRVJST1JfQUxSRUFEWV9FWElTVFMgXGVtcHR5ZGVzY3JpcHRpb24KKyAqIFxyZXR2YWwgI1BTQV9FUlJPUl9EQVRBX0lOVkFMSUQgXGVtcHR5ZGVzY3JpcHRpb24KKyAqIFxyZXR2YWwgI1BTQV9FUlJPUl9EQVRBX0NPUlJVUFQgXGVtcHR5ZGVzY3JpcHRpb24KKyAqIFxyZXR2YWwgI1BTQV9FUlJPUl9TVE9SQUdFX0ZBSUxVUkUgXGVtcHR5ZGVzY3JpcHRpb24KKyAqCisgKiBccmV0dXJuIElmIHRoaXMgZnVuY3Rpb24gZmFpbHMsIHRoZSBrZXkgc2xvdCBpcyBhbiBpbnZhbGlkIHN0YXRlLgorICogICAgICAgICBZb3UgbXVzdCBjYWxsIHBzYV9mYWlsX2tleV9jcmVhdGlvbigpIHRvIHdpcGUgYW5kIGZyZWUgdGhlIHNsb3QuCisgKi8KK3N0YXRpYyBwc2Ffc3RhdHVzX3QgcHNhX2ZpbmlzaF9rZXlfY3JlYXRpb24oCisgICAgcHNhX2tleV9zbG90X3QgKnNsb3QsCisgICAgcHNhX3NlX2Rydl90YWJsZV9lbnRyeV90ICpkcml2ZXIsCisgICAgbWJlZHRsc19zdmNfa2V5X2lkX3QgKmtleSkKK3sKKyAgICBwc2Ffc3RhdHVzX3Qgc3RhdHVzID0gUFNBX1NVQ0NFU1M7CisgICAgKHZvaWQpIHNsb3Q7CisgICAgKHZvaWQpIGRyaXZlcjsKKworI2lmIGRlZmluZWQoTUJFRFRMU19USFJFQURJTkdfQykKKyAgICBQU0FfVEhSRUFESU5HX0NIS19SRVQobWJlZHRsc19tdXRleF9sb2NrKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJm1iZWR0bHNfdGhyZWFkaW5nX2tleV9zbG90X211dGV4KSk7CisjZW5kaWYKKworI2lmIGRlZmluZWQoTUJFRFRMU19QU0FfQ1JZUFRPX1NUT1JBR0VfQykKKyAgICBpZiAoIVBTQV9LRVlfTElGRVRJTUVfSVNfVk9MQVRJTEUoc2xvdC0+YXR0ci5saWZldGltZSkpIHsKKyNpZiBkZWZpbmVkKE1CRURUTFNfUFNBX0NSWVBUT19TRV9DKQorICAgICAgICBpZiAoZHJpdmVyICE9IE5VTEwpIHsKKyAgICAgICAgICAgIHBzYV9zZV9rZXlfZGF0YV9zdG9yYWdlX3QgZGF0YTsKKyAgICAgICAgICAgIHBzYV9rZXlfc2xvdF9udW1iZXJfdCBzbG90X251bWJlciA9CisgICAgICAgICAgICAgICAgcHNhX2tleV9zbG90X2dldF9zbG90X251bWJlcihzbG90KTsKKworICAgICAgICAgICAgTUJFRFRMU19TVEFUSUNfQVNTRVJUKHNpemVvZihzbG90X251bWJlcikgPT0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplb2YoZGF0YS5zbG90X251bWJlciksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlNsb3QgbnVtYmVyIHNpemUgZG9lcyBub3QgbWF0Y2ggcHNhX3NlX2tleV9kYXRhX3N0b3JhZ2VfdCIpOworCisgICAgICAgICAgICBtZW1jcHkoJmRhdGEuc2xvdF9udW1iZXIsICZzbG90X251bWJlciwgc2l6ZW9mKHNsb3RfbnVtYmVyKSk7CisgICAgICAgICAgICBzdGF0dXMgPSBwc2Ffc2F2ZV9wZXJzaXN0ZW50X2tleSgmc2xvdC0+YXR0ciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh1aW50OF90ICopICZkYXRhLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZW9mKGRhdGEpKTsKKyAgICAgICAgfSBlbHNlCisjZW5kaWYgLyogTUJFRFRMU19QU0FfQ1JZUFRPX1NFX0MgKi8KKyAgICAgICAgeworICAgICAgICAgICAgLyogS2V5IG1hdGVyaWFsIGlzIHNhdmVkIGluIGV4cG9ydCByZXByZXNlbnRhdGlvbiBpbiB0aGUgc2xvdCwgc28KKyAgICAgICAgICAgICAqIGp1c3QgcGFzcyB0aGUgc2xvdCBidWZmZXIgZm9yIHN0b3JhZ2UuICovCisgICAgICAgICAgICBzdGF0dXMgPSBwc2Ffc2F2ZV9wZXJzaXN0ZW50X2tleSgmc2xvdC0+YXR0ciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNsb3QtPmtleS5kYXRhLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2xvdC0+a2V5LmJ5dGVzKTsKKyAgICAgICAgfQorICAgIH0KKyNlbmRpZiAvKiBkZWZpbmVkKE1CRURUTFNfUFNBX0NSWVBUT19TVE9SQUdFX0MpICovCisKKyNpZiBkZWZpbmVkKE1CRURUTFNfUFNBX0NSWVBUT19TRV9DKQorICAgIC8qIEZpbmlzaCB0aGUgdHJhbnNhY3Rpb24gZm9yIGEga2V5IGNyZWF0aW9uLiBUaGlzIGRvZXMgbm90CisgICAgICogaGFwcGVuIHdoZW4gcmVnaXN0ZXJpbmcgYW4gZXhpc3Rpbmcga2V5LiBEZXRlY3QgdGhpcyBjYXNlCisgICAgICogYnkgY2hlY2tpbmcgd2hldGhlciBhIHRyYW5zYWN0aW9uIGlzIGluIHByb2dyZXNzIChhY3R1YWwKKyAgICAgKiBjcmVhdGlvbiBvZiBhIHBlcnNpc3RlbnQga2V5IGluIGEgc2VjdXJlIGVsZW1lbnQgcmVxdWlyZXMgYSB0cmFuc2FjdGlvbiwKKyAgICAgKiBidXQgcmVnaXN0cmF0aW9uIG9yIHZvbGF0aWxlIGtleSBjcmVhdGlvbiBkb2Vzbid0IHVzZSBvbmUpLiAqLworICAgIGlmIChkcml2ZXIgIT0gTlVMTCAmJgorICAgICAgICBwc2FfY3J5cHRvX3RyYW5zYWN0aW9uLnVua25vd24udHlwZSA9PSBQU0FfQ1JZUFRPX1RSQU5TQUNUSU9OX0NSRUFURV9LRVkpIHsKKyAgICAgICAgc3RhdHVzID0gcHNhX3NhdmVfc2VfcGVyc2lzdGVudF9kYXRhKGRyaXZlcik7CisgICAgICAgIGlmIChzdGF0dXMgIT0gUFNBX1NVQ0NFU1MpIHsKKyAgICAgICAgICAgIHBzYV9kZXN0cm95X3BlcnNpc3RlbnRfa2V5KHNsb3QtPmF0dHIuaWQpOworCisjaWYgZGVmaW5lZChNQkVEVExTX1RIUkVBRElOR19DKQorICAgICAgICAgICAgUFNBX1RIUkVBRElOR19DSEtfUkVUKG1iZWR0bHNfbXV0ZXhfdW5sb2NrKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmbWJlZHRsc190aHJlYWRpbmdfa2V5X3Nsb3RfbXV0ZXgpKTsKKyNlbmRpZgorICAgICAgICAgICAgcmV0dXJuIHN0YXR1czsKKyAgICAgICAgfQorICAgICAgICBzdGF0dXMgPSBwc2FfY3J5cHRvX3N0b3BfdHJhbnNhY3Rpb24oKTsKKyAgICB9CisjZW5kaWYgLyogTUJFRFRMU19QU0FfQ1JZUFRPX1NFX0MgKi8KKworICAgIGlmIChzdGF0dXMgPT0gUFNBX1NVQ0NFU1MpIHsKKyAgICAgICAgKmtleSA9IHNsb3QtPmF0dHIuaWQ7CisgICAgICAgIHN0YXR1cyA9IHBzYV9rZXlfc2xvdF9zdGF0ZV90cmFuc2l0aW9uKHNsb3QsIFBTQV9TTE9UX0ZJTExJTkcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBTQV9TTE9UX0ZVTEwpOworICAgICAgICBpZiAoc3RhdHVzICE9IFBTQV9TVUNDRVNTKSB7CisgICAgICAgICAgICAqa2V5ID0gTUJFRFRMU19TVkNfS0VZX0lEX0lOSVQ7CisgICAgICAgIH0KKyAgICB9CisKKyNpZiBkZWZpbmVkKE1CRURUTFNfVEhSRUFESU5HX0MpCisgICAgUFNBX1RIUkVBRElOR19DSEtfUkVUKG1iZWR0bHNfbXV0ZXhfdW5sb2NrKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJm1iZWR0bHNfdGhyZWFkaW5nX2tleV9zbG90X211dGV4KSk7CisjZW5kaWYKKyAgICByZXR1cm4gc3RhdHVzOworfQorCisvKiogQWJvcnQgdGhlIGNyZWF0aW9uIG9mIGEga2V5LgorICoKKyAqIFlvdSBtYXkgY2FsbCB0aGlzIGZ1bmN0aW9uIGFmdGVyIGNhbGxpbmcgcHNhX3N0YXJ0X2tleV9jcmVhdGlvbigpLAorICogb3IgYWZ0ZXIgcHNhX2ZpbmlzaF9rZXlfY3JlYXRpb24oKSBmYWlscy4gSW4gb3RoZXIgY2lyY3Vtc3RhbmNlcywgdGhpcworICogZnVuY3Rpb24gbWF5IG5vdCBjbGVhbiB1cCBwZXJzaXN0ZW50IHN0b3JhZ2UuCisgKiBTZWUgdGhlIGRvY3VtZW50YXRpb24gb2YgcHNhX3N0YXJ0X2tleV9jcmVhdGlvbigpIGZvciB0aGUgaW50ZW5kZWQgdXNlCisgKiBvZiB0aGlzIGZ1bmN0aW9uLiBTZXRzIHRoZSBzbG90J3Mgc3RhdGUgdG8gUFNBX1NMT1RfRU1QVFkuCisgKgorICogXHBhcmFtW2luLG91dF0gc2xvdCAgUG9pbnRlciB0byB0aGUgc2xvdCB3aXRoIGtleSBtYXRlcmlhbC4KKyAqIFxwYXJhbVtpbl0gZHJpdmVyICAgIFRoZSBzZWN1cmUgZWxlbWVudCBkcml2ZXIgZm9yIHRoZSBrZXksCisgKiAgICAgICAgICAgICAgICAgICAgICBvciBOVUxMIGZvciBhIHRyYW5zcGFyZW50IGtleS4KKyAqLworc3RhdGljIHZvaWQgcHNhX2ZhaWxfa2V5X2NyZWF0aW9uKHBzYV9rZXlfc2xvdF90ICpzbG90LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBzYV9zZV9kcnZfdGFibGVfZW50cnlfdCAqZHJpdmVyKQoreworICAgICh2b2lkKSBkcml2ZXI7CisKKyAgICBpZiAoc2xvdCA9PSBOVUxMKSB7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyNpZiBkZWZpbmVkKE1CRURUTFNfVEhSRUFESU5HX0MpCisgICAgLyogSWYgdGhlIGxvY2sgb3BlcmF0aW9uIGZhaWxzIHdlIHN0aWxsIHdpcGUgdGhlIHNsb3QuCisgICAgICogT3BlcmF0aW9ucyB3aWxsIG5vIGxvbmdlciB3b3JrIGFmdGVyIGEgZmFpbGVkIGxvY2ssCisgICAgICogYnV0IHdlIHN0aWxsIG5lZWQgdG8gd2lwZSB0aGUgc2xvdCBvZiBjb25maWRlbnRpYWwgZGF0YS4gKi8KKyAgICBtYmVkdGxzX211dGV4X2xvY2soJm1iZWR0bHNfdGhyZWFkaW5nX2tleV9zbG90X211dGV4KTsKKyNlbmRpZgorCisjaWYgZGVmaW5lZChNQkVEVExTX1BTQV9DUllQVE9fU0VfQykKKyAgICAvKiBUT0RPOiBJZiB0aGUga2V5IGhhcyBhbHJlYWR5IGJlZW4gY3JlYXRlZCBpbiB0aGUgc2VjdXJlCisgICAgICogZWxlbWVudCwgYW5kIHRoZSBmYWlsdXJlIGhhcHBlbmVkIGxhdGVyICh3aGVuIHNhdmluZyBtZXRhZGF0YQorICAgICAqIHRvIGludGVybmFsIHN0b3JhZ2UpLCB3ZSBuZWVkIHRvIGRlc3Ryb3kgdGhlIGtleSBpbiB0aGUgc2VjdXJlCisgICAgICogZWxlbWVudC4KKyAgICAgKiBodHRwczovL2dpdGh1Yi5jb20vQVJNbWJlZC9tYmVkLWNyeXB0by9pc3N1ZXMvMjE3CisgICAgICovCisKKyAgICAvKiBBYm9ydCB0aGUgb25nb2luZyB0cmFuc2FjdGlvbiBpZiBhbnkgKHRoZXJlIG1heSBub3QgYmUgb25lIGlmCisgICAgICogdGhlIGNyZWF0aW9uIHByb2Nlc3MgZmFpbGVkIGJlZm9yZSBzdGFydGluZyBvbmUsIG9yIGlmIHRoZQorICAgICAqIGtleSBjcmVhdGlvbiBpcyBhIHJlZ2lzdHJhdGlvbiBvZiBhIGtleSBpbiBhIHNlY3VyZSBlbGVtZW50KS4KKyAgICAgKiBFYXJsaWVyIGZ1bmN0aW9ucyBtdXN0IGFscmVhZHkgaGF2ZSBkb25lIHdoYXQgaXQgdGFrZXMgdG8gdW5kbyBhbnkKKyAgICAgKiBwYXJ0aWFsIGNyZWF0aW9uLiBBbGwgdGhhdCdzIGxlZnQgaXMgdG8gdXBkYXRlIHRoZSB0cmFuc2FjdGlvbiBkYXRhCisgICAgICogaXRzZWxmLiAqLworICAgICh2b2lkKSBwc2FfY3J5cHRvX3N0b3BfdHJhbnNhY3Rpb24oKTsKKyNlbmRpZiAvKiBNQkVEVExTX1BTQV9DUllQVE9fU0VfQyAqLworCisgICAgcHNhX3dpcGVfa2V5X3Nsb3Qoc2xvdCk7CisKKyNpZiBkZWZpbmVkKE1CRURUTFNfVEhSRUFESU5HX0MpCisgICAgbWJlZHRsc19tdXRleF91bmxvY2soJm1iZWR0bHNfdGhyZWFkaW5nX2tleV9zbG90X211dGV4KTsKKyNlbmRpZgorfQorCisvKiogVmFsaWRhdGUgb3B0aW9uYWwgYXR0cmlidXRlcyBkdXJpbmcga2V5IGNyZWF0aW9uLgorICoKKyAqIFNvbWUga2V5IGF0dHJpYnV0ZXMgYXJlIG9wdGlvbmFsIGR1cmluZyBrZXkgY3JlYXRpb24uIElmIHRoZXkgYXJlCisgKiBzcGVjaWZpZWQgaW4gdGhlIGF0dHJpYnV0ZXMgc3RydWN0dXJlLCBjaGVjayB0aGF0IHRoZXkgYXJlIGNvbnNpc3RlbnQKKyAqIHdpdGggdGhlIGRhdGEgaW4gdGhlIHNsb3QuCisgKgorICogVGhpcyBmdW5jdGlvbiBzaG91bGQgYmUgY2FsbGVkIG5lYXIgdGhlIGVuZCBvZiBrZXkgY3JlYXRpb24sIGFmdGVyCisgKiB0aGUgc2xvdCBpbiBtZW1vcnkgaXMgZnVsbHkgcG9wdWxhdGVkIGJ1dCBiZWZvcmUgc2F2aW5nIHBlcnNpc3RlbnQgZGF0YS4KKyAqLworc3RhdGljIHBzYV9zdGF0dXNfdCBwc2FfdmFsaWRhdGVfb3B0aW9uYWxfYXR0cmlidXRlcygKKyAgICBjb25zdCBwc2Ffa2V5X3Nsb3RfdCAqc2xvdCwKKyAgICBjb25zdCBwc2Ffa2V5X2F0dHJpYnV0ZXNfdCAqYXR0cmlidXRlcykKK3sKKyAgICBpZiAoYXR0cmlidXRlcy0+dHlwZSAhPSAwKSB7CisgICAgICAgIGlmIChhdHRyaWJ1dGVzLT50eXBlICE9IHNsb3QtPmF0dHIudHlwZSkgeworICAgICAgICAgICAgcmV0dXJuIFBTQV9FUlJPUl9JTlZBTElEX0FSR1VNRU5UOworICAgICAgICB9CisgICAgfQorCisgICAgaWYgKGF0dHJpYnV0ZXMtPmJpdHMgIT0gMCkgeworICAgICAgICBpZiAoYXR0cmlidXRlcy0+Yml0cyAhPSBzbG90LT5hdHRyLmJpdHMpIHsKKyAgICAgICAgICAgIHJldHVybiBQU0FfRVJST1JfSU5WQUxJRF9BUkdVTUVOVDsKKyAgICAgICAgfQorICAgIH0KKworICAgIHJldHVybiBQU0FfU1VDQ0VTUzsKK30KKworcHNhX3N0YXR1c190IHBzYV9pbXBvcnRfa2V5KGNvbnN0IHBzYV9rZXlfYXR0cmlidXRlc190ICphdHRyaWJ1dGVzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVpbnQ4X3QgKmRhdGFfZXh0ZXJuYWwsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IGRhdGFfbGVuZ3RoLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1iZWR0bHNfc3ZjX2tleV9pZF90ICprZXkpCit7CisgICAgcHNhX3N0YXR1c190IHN0YXR1czsKKyAgICBMT0NBTF9JTlBVVF9ERUNMQVJFKGRhdGFfZXh0ZXJuYWwsIGRhdGEpOworICAgIHBzYV9rZXlfc2xvdF90ICpzbG90ID0gTlVMTDsKKyAgICBwc2Ffc2VfZHJ2X3RhYmxlX2VudHJ5X3QgKmRyaXZlciA9IE5VTEw7CisgICAgc2l6ZV90IGJpdHM7CisgICAgc2l6ZV90IHN0b3JhZ2Vfc2l6ZSA9IGRhdGFfbGVuZ3RoOworCisgICAgKmtleSA9IE1CRURUTFNfU1ZDX0tFWV9JRF9JTklUOworCisgICAgLyogUmVqZWN0IHplcm8tbGVuZ3RoIHN5bW1ldHJpYyBrZXlzIChpbmNsdWRpbmcgcmF3IGRhdGEga2V5IG9iamVjdHMpLgorICAgICAqIFRoaXMgYWxzbyByZWplY3RzIGFueSBrZXkgd2hpY2ggbWlnaHQgYmUgZW5jb2RlZCBhcyBhbiBlbXB0eSBzdHJpbmcsCisgICAgICogd2hpY2ggaXMgbmV2ZXIgdmFsaWQuICovCisgICAgaWYgKGRhdGFfbGVuZ3RoID09IDApIHsKKyAgICAgICAgcmV0dXJuIFBTQV9FUlJPUl9JTlZBTElEX0FSR1VNRU5UOworICAgIH0KKworICAgIC8qIEVuc3VyZSB0aGF0IHRoZSBieXRlcy10by1iaXRzIGNvbnZlcnNpb24gY2Fubm90IG92ZXJmbG93LiAqLworICAgIGlmIChkYXRhX2xlbmd0aCA+IFNJWkVfTUFYIC8gOCkgeworICAgICAgICByZXR1cm4gUFNBX0VSUk9SX05PVF9TVVBQT1JURUQ7CisgICAgfQorCisgICAgTE9DQUxfSU5QVVRfQUxMT0MoZGF0YV9leHRlcm5hbCwgZGF0YV9sZW5ndGgsIGRhdGEpOworCisgICAgc3RhdHVzID0gcHNhX3N0YXJ0X2tleV9jcmVhdGlvbihQU0FfS0VZX0NSRUFUSU9OX0lNUE9SVCwgYXR0cmlidXRlcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZzbG90LCAmZHJpdmVyKTsKKyAgICBpZiAoc3RhdHVzICE9IFBTQV9TVUNDRVNTKSB7CisgICAgICAgIGdvdG8gZXhpdDsKKyAgICB9CisKKyAgICAvKiBJbiB0aGUgY2FzZSBvZiBhIHRyYW5zcGFyZW50IGtleSBvciBhbiBvcGFxdWUga2V5IHN0b3JlZCBpbiBsb2NhbAorICAgICAqIHN0b3JhZ2UgKCB0aHVzIG5vdCBpbiB0aGUgY2FzZSBvZiBpbXBvcnRpbmcgYSBrZXkgaW4gYSBzZWN1cmUgZWxlbWVudAorICAgICAqIHdpdGggc3RvcmFnZSAoIE1CRURUTFNfUFNBX0NSWVBUT19TRV9DICkgKSx3ZSBoYXZlIHRvIGFsbG9jYXRlIGEKKyAgICAgKiBidWZmZXIgdG8gaG9sZCB0aGUgaW1wb3J0ZWQga2V5IG1hdGVyaWFsLiAqLworICAgIGlmIChzbG90LT5rZXkuZGF0YSA9PSBOVUxMKSB7CisgICAgICAgIGlmIChwc2Ffa2V5X2xpZmV0aW1lX2lzX2V4dGVybmFsKGF0dHJpYnV0ZXMtPmxpZmV0aW1lKSkgeworICAgICAgICAgICAgc3RhdHVzID0gcHNhX2RyaXZlcl93cmFwcGVyX2dldF9rZXlfYnVmZmVyX3NpemVfZnJvbV9rZXlfZGF0YSgKKyAgICAgICAgICAgICAgICBhdHRyaWJ1dGVzLCBkYXRhLCBkYXRhX2xlbmd0aCwgJnN0b3JhZ2Vfc2l6ZSk7CisgICAgICAgICAgICBpZiAoc3RhdHVzICE9IFBTQV9TVUNDRVNTKSB7CisgICAgICAgICAgICAgICAgZ290byBleGl0OworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHN0YXR1cyA9IHBzYV9hbGxvY2F0ZV9idWZmZXJfdG9fc2xvdChzbG90LCBzdG9yYWdlX3NpemUpOworICAgICAgICBpZiAoc3RhdHVzICE9IFBTQV9TVUNDRVNTKSB7CisgICAgICAgICAgICBnb3RvIGV4aXQ7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBiaXRzID0gc2xvdC0+YXR0ci5iaXRzOworICAgIHN0YXR1cyA9IHBzYV9kcml2ZXJfd3JhcHBlcl9pbXBvcnRfa2V5KGF0dHJpYnV0ZXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YSwgZGF0YV9sZW5ndGgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2xvdC0+a2V5LmRhdGEsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2xvdC0+a2V5LmJ5dGVzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZzbG90LT5rZXkuYnl0ZXMsICZiaXRzKTsKKyAgICBpZiAoc3RhdHVzICE9IFBTQV9TVUNDRVNTKSB7CisgICAgICAgIGdvdG8gZXhpdDsKKyAgICB9CisKKyAgICBpZiAoc2xvdC0+YXR0ci5iaXRzID09IDApIHsKKyAgICAgICAgc2xvdC0+YXR0ci5iaXRzID0gKHBzYV9rZXlfYml0c190KSBiaXRzOworICAgIH0gZWxzZSBpZiAoYml0cyAhPSBzbG90LT5hdHRyLmJpdHMpIHsKKyAgICAgICAgc3RhdHVzID0gUFNBX0VSUk9SX0lOVkFMSURfQVJHVU1FTlQ7CisgICAgICAgIGdvdG8gZXhpdDsKKyAgICB9CisKKyAgICAvKiBFbmZvcmNlIGEgc2l6ZSBsaW1pdCwgYW5kIGluIHBhcnRpY3VsYXIgZW5zdXJlIHRoYXQgdGhlIGJpdAorICAgICAqIHNpemUgZml0cyBpbiBpdHMgcmVwcmVzZW50YXRpb24gdHlwZS4qLworICAgIGlmIChiaXRzID4gUFNBX01BWF9LRVlfQklUUykgeworICAgICAgICBzdGF0dXMgPSBQU0FfRVJST1JfTk9UX1NVUFBPUlRFRDsKKyAgICAgICAgZ290byBleGl0OworICAgIH0KKyAgICBzdGF0dXMgPSBwc2FfdmFsaWRhdGVfb3B0aW9uYWxfYXR0cmlidXRlcyhzbG90LCBhdHRyaWJ1dGVzKTsKKyAgICBpZiAoc3RhdHVzICE9IFBTQV9TVUNDRVNTKSB7CisgICAgICAgIGdvdG8gZXhpdDsKKyAgICB9CisKKyAgICBzdGF0dXMgPSBwc2FfZmluaXNoX2tleV9jcmVhdGlvbihzbG90LCBkcml2ZXIsIGtleSk7CitleGl0OgorICAgIExPQ0FMX0lOUFVUX0ZSRUUoZGF0YV9leHRlcm5hbCwgZGF0YSk7CisgICAgaWYgKHN0YXR1cyAhPSBQU0FfU1VDQ0VTUykgeworICAgICAgICBwc2FfZmFpbF9rZXlfY3JlYXRpb24oc2xvdCwgZHJpdmVyKTsKKyAgICB9CisKKyAgICByZXR1cm4gc3RhdHVzOworfQorCisjaWYgZGVmaW5lZChNQkVEVExTX1BTQV9DUllQVE9fU0VfQykKK3BzYV9zdGF0dXNfdCBtYmVkdGxzX3BzYV9yZWdpc3Rlcl9zZV9rZXkoCisgICAgY29uc3QgcHNhX2tleV9hdHRyaWJ1dGVzX3QgKmF0dHJpYnV0ZXMpCit7CisgICAgcHNhX3N0YXR1c190IHN0YXR1czsKKyAgICBwc2Ffa2V5X3Nsb3RfdCAqc2xvdCA9IE5VTEw7CisgICAgcHNhX3NlX2Rydl90YWJsZV9lbnRyeV90ICpkcml2ZXIgPSBOVUxMOworICAgIG1iZWR0bHNfc3ZjX2tleV9pZF90IGtleSA9IE1CRURUTFNfU1ZDX0tFWV9JRF9JTklUOworCisgICAgLyogTGVhdmluZyBhdHRyaWJ1dGVzIHVuc3BlY2lmaWVkIGlzIG5vdCBjdXJyZW50bHkgc3VwcG9ydGVkLgorICAgICAqIEl0IGNvdWxkIG1ha2Ugc2Vuc2UgdG8gcXVlcnkgdGhlIGtleSB0eXBlIGFuZCBzaXplIGZyb20gdGhlCisgICAgICogc2VjdXJlIGVsZW1lbnQsIGJ1dCBub3QgYWxsIHNlY3VyZSBlbGVtZW50cyBzdXBwb3J0IHRoaXMKKyAgICAgKiBhbmQgdGhlIGRyaXZlciBIQUwgZG9lc24ndCBjdXJyZW50bHkgc3VwcG9ydCBpdC4gKi8KKyAgICBpZiAocHNhX2dldF9rZXlfdHlwZShhdHRyaWJ1dGVzKSA9PSBQU0FfS0VZX1RZUEVfTk9ORSkgeworICAgICAgICByZXR1cm4gUFNBX0VSUk9SX05PVF9TVVBQT1JURUQ7CisgICAgfQorICAgIGlmIChwc2FfZ2V0X2tleV9iaXRzKGF0dHJpYnV0ZXMpID09IDApIHsKKyAgICAgICAgcmV0dXJuIFBTQV9FUlJPUl9OT1RfU1VQUE9SVEVEOworICAgIH0KKworICAgIHN0YXR1cyA9IHBzYV9zdGFydF9rZXlfY3JlYXRpb24oUFNBX0tFWV9DUkVBVElPTl9SRUdJU1RFUiwgYXR0cmlidXRlcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZzbG90LCAmZHJpdmVyKTsKKyAgICBpZiAoc3RhdHVzICE9IFBTQV9TVUNDRVNTKSB7CisgICAgICAgIGdvdG8gZXhpdDsKKyAgICB9CisKKyAgICBzdGF0dXMgPSBwc2FfZmluaXNoX2tleV9jcmVhdGlvbihzbG90LCBkcml2ZXIsICZrZXkpOworCitleGl0OgorICAgIGlmIChzdGF0dXMgIT0gUFNBX1NVQ0NFU1MpIHsKKyAgICAgICAgcHNhX2ZhaWxfa2V5X2NyZWF0aW9uKHNsb3QsIGRyaXZlcik7CisgICAgfQorCisgICAgLyogUmVnaXN0cmF0aW9uIGRvZXNuJ3Qga2VlcCB0aGUga2V5IGluIFJBTS4gKi8KKyAgICBwc2FfY2xvc2Vfa2V5KGtleSk7CisgICAgcmV0dXJuIHN0YXR1czsKK30KKyNlbmRpZiAvKiBNQkVEVExTX1BTQV9DUllQVE9fU0VfQyAqLworCitwc2Ffc3RhdHVzX3QgcHNhX2NvcHlfa2V5KG1iZWR0bHNfc3ZjX2tleV9pZF90IHNvdXJjZV9rZXksCisgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHBzYV9rZXlfYXR0cmlidXRlc190ICpzcGVjaWZpZWRfYXR0cmlidXRlcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgbWJlZHRsc19zdmNfa2V5X2lkX3QgKnRhcmdldF9rZXkpCit7CisgICAgcHNhX3N0YXR1c190IHN0YXR1cyA9IFBTQV9FUlJPUl9DT1JSVVBUSU9OX0RFVEVDVEVEOworICAgIHBzYV9zdGF0dXNfdCB1bmxvY2tfc3RhdHVzID0gUFNBX0VSUk9SX0NPUlJVUFRJT05fREVURUNURUQ7CisgICAgcHNhX2tleV9zbG90X3QgKnNvdXJjZV9zbG90ID0gTlVMTDsKKyAgICBwc2Ffa2V5X3Nsb3RfdCAqdGFyZ2V0X3Nsb3QgPSBOVUxMOworICAgIHBzYV9rZXlfYXR0cmlidXRlc190IGFjdHVhbF9hdHRyaWJ1dGVzID0gKnNwZWNpZmllZF9hdHRyaWJ1dGVzOworICAgIHBzYV9zZV9kcnZfdGFibGVfZW50cnlfdCAqZHJpdmVyID0gTlVMTDsKKyAgICBzaXplX3Qgc3RvcmFnZV9zaXplID0gMDsKKworICAgICp0YXJnZXRfa2V5ID0gTUJFRFRMU19TVkNfS0VZX0lEX0lOSVQ7CisKKyAgICBzdGF0dXMgPSBwc2FfZ2V0X2FuZF9sb2NrX2tleV9zbG90X3dpdGhfcG9saWN5KAorICAgICAgICBzb3VyY2Vfa2V5LCAmc291cmNlX3Nsb3QsIFBTQV9LRVlfVVNBR0VfQ09QWSwgMCk7CisgICAgaWYgKHN0YXR1cyAhPSBQU0FfU1VDQ0VTUykgeworICAgICAgICBnb3RvIGV4aXQ7CisgICAgfQorCisgICAgc3RhdHVzID0gcHNhX3ZhbGlkYXRlX29wdGlvbmFsX2F0dHJpYnV0ZXMoc291cmNlX3Nsb3QsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3BlY2lmaWVkX2F0dHJpYnV0ZXMpOworICAgIGlmIChzdGF0dXMgIT0gUFNBX1NVQ0NFU1MpIHsKKyAgICAgICAgZ290byBleGl0OworICAgIH0KKworICAgIC8qIFRoZSB0YXJnZXQga2V5IHR5cGUgYW5kIG51bWJlciBvZiBiaXRzIGhhdmUgYmVlbiB2YWxpZGF0ZWQgYnkKKyAgICAgKiBwc2FfdmFsaWRhdGVfb3B0aW9uYWxfYXR0cmlidXRlcygpIHRvIGJlIGVpdGhlciBlcXVhbCB0byB6ZXJvIG9yCisgICAgICogZXF1YWwgdG8gdGhlIG9uZXMgb2YgdGhlIHNvdXJjZSBrZXkuIFNvIGl0IGlzIHNhZmUgdG8gaW5oZXJpdAorICAgICAqIHRoZW0gZnJvbSB0aGUgc291cmNlIGtleSBub3cuIgorICAgICAqICovCisgICAgYWN0dWFsX2F0dHJpYnV0ZXMuYml0cyA9IHNvdXJjZV9zbG90LT5hdHRyLmJpdHM7CisgICAgYWN0dWFsX2F0dHJpYnV0ZXMudHlwZSA9IHNvdXJjZV9zbG90LT5hdHRyLnR5cGU7CisKKworICAgIHN0YXR1cyA9IHBzYV9yZXN0cmljdF9rZXlfcG9saWN5KHNvdXJjZV9zbG90LT5hdHRyLnR5cGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJmFjdHVhbF9hdHRyaWJ1dGVzLnBvbGljeSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmc291cmNlX3Nsb3QtPmF0dHIucG9saWN5KTsKKyAgICBpZiAoc3RhdHVzICE9IFBTQV9TVUNDRVNTKSB7CisgICAgICAgIGdvdG8gZXhpdDsKKyAgICB9CisKKyAgICBzdGF0dXMgPSBwc2Ffc3RhcnRfa2V5X2NyZWF0aW9uKFBTQV9LRVlfQ1JFQVRJT05fQ09QWSwgJmFjdHVhbF9hdHRyaWJ1dGVzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJnRhcmdldF9zbG90LCAmZHJpdmVyKTsKKyAgICBpZiAoc3RhdHVzICE9IFBTQV9TVUNDRVNTKSB7CisgICAgICAgIGdvdG8gZXhpdDsKKyAgICB9CisgICAgaWYgKFBTQV9LRVlfTElGRVRJTUVfR0VUX0xPQ0FUSU9OKHRhcmdldF9zbG90LT5hdHRyLmxpZmV0aW1lKSAhPQorICAgICAgICBQU0FfS0VZX0xJRkVUSU1FX0dFVF9MT0NBVElPTihzb3VyY2Vfc2xvdC0+YXR0ci5saWZldGltZSkpIHsKKyAgICAgICAgLyoKKyAgICAgICAgICogSWYgdGhlIHNvdXJjZSBhbmQgdGFyZ2V0IGtleXMgYXJlIHN0b3JlZCBpbiBkaWZmZXJlbnQgbG9jYXRpb25zLAorICAgICAgICAgKiB0aGUgc291cmNlIGtleSB3b3VsZCBuZWVkIHRvIGJlIGV4cG9ydGVkIGFzIHBsYWludGV4dCBhbmQgcmUtaW1wb3J0ZWQKKyAgICAgICAgICogaW4gdGhlIG90aGVyIGxvY2F0aW9uLiBUaGlzIGhhcyBzZWN1cml0eSBpbXBsaWNhdGlvbnMgd2hpY2ggaGF2ZSBub3QKKyAgICAgICAgICogYmVlbiBmdWxseSBtYXBwZWQuIEZvciBub3csIHRoaXMgY2FuIGJlIGFjaGlldmVkIHRocm91Z2gKKyAgICAgICAgICogYXBwcm9wcmlhdGUgQVBJIGludm9jYXRpb25zIGZyb20gdGhlIGFwcGxpY2F0aW9uLCBpZiBuZWVkZWQuCisgICAgICAgICAqICovCisgICAgICAgIHN0YXR1cyA9IFBTQV9FUlJPUl9OT1RfU1VQUE9SVEVEOworICAgICAgICBnb3RvIGV4aXQ7CisgICAgfQorICAgIC8qCisgICAgICogV2hlbiB0aGUgc291cmNlIGFuZCB0YXJnZXQga2V5cyBhcmUgd2l0aGluIHRoZSBzYW1lIGxvY2F0aW9uLAorICAgICAqIC0gRm9yIHRyYW5zcGFyZW50IGtleXMgaXQgaXMgYSBibGluZCBjb3B5IHdpdGhvdXQgYW55IGRyaXZlciBpbnZvY2F0aW9uLAorICAgICAqIC0gRm9yIG9wYXF1ZSBrZXlzIHRoaXMgdHJhbnNsYXRlcyB0byBhbiBpbnZvY2F0aW9uIG9mIHRoZSBkcml2ZXJzJworICAgICAqICAgY29weV9rZXkgZW50cnkgcG9pbnQgdGhyb3VnaCB0aGUgZGlzcGF0Y2ggbGF5ZXIuCisgICAgICogKi8KKyAgICBpZiAocHNhX2tleV9saWZldGltZV9pc19leHRlcm5hbChhY3R1YWxfYXR0cmlidXRlcy5saWZldGltZSkpIHsKKyAgICAgICAgc3RhdHVzID0gcHNhX2RyaXZlcl93cmFwcGVyX2dldF9rZXlfYnVmZmVyX3NpemUoJmFjdHVhbF9hdHRyaWJ1dGVzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmc3RvcmFnZV9zaXplKTsKKyAgICAgICAgaWYgKHN0YXR1cyAhPSBQU0FfU1VDQ0VTUykgeworICAgICAgICAgICAgZ290byBleGl0OworICAgICAgICB9CisKKyAgICAgICAgc3RhdHVzID0gcHNhX2FsbG9jYXRlX2J1ZmZlcl90b19zbG90KHRhcmdldF9zbG90LCBzdG9yYWdlX3NpemUpOworICAgICAgICBpZiAoc3RhdHVzICE9IFBTQV9TVUNDRVNTKSB7CisgICAgICAgICAgICBnb3RvIGV4aXQ7CisgICAgICAgIH0KKworICAgICAgICBzdGF0dXMgPSBwc2FfZHJpdmVyX3dyYXBwZXJfY29weV9rZXkoJmFjdHVhbF9hdHRyaWJ1dGVzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc291cmNlX3Nsb3QtPmtleS5kYXRhLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc291cmNlX3Nsb3QtPmtleS5ieXRlcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhcmdldF9zbG90LT5rZXkuZGF0YSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhcmdldF9zbG90LT5rZXkuYnl0ZXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmdGFyZ2V0X3Nsb3QtPmtleS5ieXRlcyk7CisgICAgICAgIGlmIChzdGF0dXMgIT0gUFNBX1NVQ0NFU1MpIHsKKyAgICAgICAgICAgIGdvdG8gZXhpdDsKKyAgICAgICAgfQorICAgIH0gZWxzZSB7CisgICAgICAgIHN0YXR1cyA9IHBzYV9jb3B5X2tleV9tYXRlcmlhbF9pbnRvX3Nsb3QodGFyZ2V0X3Nsb3QsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc291cmNlX3Nsb3QtPmtleS5kYXRhLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNvdXJjZV9zbG90LT5rZXkuYnl0ZXMpOworICAgICAgICBpZiAoc3RhdHVzICE9IFBTQV9TVUNDRVNTKSB7CisgICAgICAgICAgICBnb3RvIGV4aXQ7CisgICAgICAgIH0KKyAgICB9CisgICAgc3RhdHVzID0gcHNhX2ZpbmlzaF9rZXlfY3JlYXRpb24odGFyZ2V0X3Nsb3QsIGRyaXZlciwgdGFyZ2V0X2tleSk7CitleGl0OgorICAgIGlmIChzdGF0dXMgIT0gUFNBX1NVQ0NFU1MpIHsKKyAgICAgICAgcHNhX2ZhaWxfa2V5X2NyZWF0aW9uKHRhcmdldF9zbG90LCBkcml2ZXIpOworICAgIH0KKworICAgIHVubG9ja19zdGF0dXMgPSBwc2FfdW5yZWdpc3Rlcl9yZWFkX3VuZGVyX211dGV4KHNvdXJjZV9zbG90KTsKKworICAgIHJldHVybiAoc3RhdHVzID09IFBTQV9TVUNDRVNTKSA/IHVubG9ja19zdGF0dXMgOiBzdGF0dXM7Cit9CisKKworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKy8qIE1lc3NhZ2UgZGlnZXN0cyAqLworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKK3BzYV9zdGF0dXNfdCBwc2FfaGFzaF9hYm9ydChwc2FfaGFzaF9vcGVyYXRpb25fdCAqb3BlcmF0aW9uKQoreworICAgIC8qIEFib3J0aW5nIGEgbm9uLWFjdGl2ZSBvcGVyYXRpb24gaXMgYWxsb3dlZCAqLworICAgIGlmIChvcGVyYXRpb24tPmlkID09IDApIHsKKyAgICAgICAgcmV0dXJuIFBTQV9TVUNDRVNTOworICAgIH0KKworICAgIHBzYV9zdGF0dXNfdCBzdGF0dXMgPSBwc2FfZHJpdmVyX3dyYXBwZXJfaGFzaF9hYm9ydChvcGVyYXRpb24pOworICAgIG9wZXJhdGlvbi0+aWQgPSAwOworCisgICAgcmV0dXJuIHN0YXR1czsKK30KKworcHNhX3N0YXR1c190IHBzYV9oYXNoX3NldHVwKHBzYV9oYXNoX29wZXJhdGlvbl90ICpvcGVyYXRpb24sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHNhX2FsZ29yaXRobV90IGFsZykKK3sKKyAgICBwc2Ffc3RhdHVzX3Qgc3RhdHVzID0gUFNBX0VSUk9SX0NPUlJVUFRJT05fREVURUNURUQ7CisKKyAgICAvKiBBIGNvbnRleHQgbXVzdCBiZSBmcmVzaGx5IGluaXRpYWxpemVkIGJlZm9yZSBpdCBjYW4gYmUgc2V0IHVwLiAqLworICAgIGlmIChvcGVyYXRpb24tPmlkICE9IDApIHsKKyAgICAgICAgc3RhdHVzID0gUFNBX0VSUk9SX0JBRF9TVEFURTsKKyAgICAgICAgZ290byBleGl0OworICAgIH0KKworICAgIGlmICghUFNBX0FMR19JU19IQVNIKGFsZykpIHsKKyAgICAgICAgc3RhdHVzID0gUFNBX0VSUk9SX0lOVkFMSURfQVJHVU1FTlQ7CisgICAgICAgIGdvdG8gZXhpdDsKKyAgICB9CisKKyAgICAvKiBFbnN1cmUgYWxsIG9mIHRoZSBjb250ZXh0IGlzIHplcm9pemVkLCBzaW5jZSBQU0FfSEFTSF9PUEVSQVRJT05fSU5JVCBvbmx5CisgICAgICogZGlyZWN0bHkgemVyb2VzIHRoZSBpbnQtc2l6ZWQgZHVtbXkgbWVtYmVyIG9mIHRoZSBjb250ZXh0IHVuaW9uLiAqLworICAgIG1lbXNldCgmb3BlcmF0aW9uLT5jdHgsIDAsIHNpemVvZihvcGVyYXRpb24tPmN0eCkpOworCisgICAgc3RhdHVzID0gcHNhX2RyaXZlcl93cmFwcGVyX2hhc2hfc2V0dXAob3BlcmF0aW9uLCBhbGcpOworCitleGl0OgorICAgIGlmIChzdGF0dXMgIT0gUFNBX1NVQ0NFU1MpIHsKKyAgICAgICAgcHNhX2hhc2hfYWJvcnQob3BlcmF0aW9uKTsKKyAgICB9CisKKyAgICByZXR1cm4gc3RhdHVzOworfQorCitwc2Ffc3RhdHVzX3QgcHNhX2hhc2hfdXBkYXRlKHBzYV9oYXNoX29wZXJhdGlvbl90ICpvcGVyYXRpb24sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVpbnQ4X3QgKmlucHV0X2V4dGVybmFsLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgaW5wdXRfbGVuZ3RoKQoreworICAgIHBzYV9zdGF0dXNfdCBzdGF0dXMgPSBQU0FfRVJST1JfQ09SUlVQVElPTl9ERVRFQ1RFRDsKKyAgICBMT0NBTF9JTlBVVF9ERUNMQVJFKGlucHV0X2V4dGVybmFsLCBpbnB1dCk7CisKKyAgICBpZiAob3BlcmF0aW9uLT5pZCA9PSAwKSB7CisgICAgICAgIHN0YXR1cyA9IFBTQV9FUlJPUl9CQURfU1RBVEU7CisgICAgICAgIGdvdG8gZXhpdDsKKyAgICB9CisKKyAgICAvKiBEb24ndCByZXF1aXJlIGhhc2ggaW1wbGVtZW50YXRpb25zIHRvIGJlaGF2ZSBjb3JyZWN0bHkgb24gYQorICAgICAqIHplcm8tbGVuZ3RoIGlucHV0LCB3aGljaCBtYXkgaGF2ZSBhbiBpbnZhbGlkIHBvaW50ZXIuICovCisgICAgaWYgKGlucHV0X2xlbmd0aCA9PSAwKSB7CisgICAgICAgIHJldHVybiBQU0FfU1VDQ0VTUzsKKyAgICB9CisKKyAgICBMT0NBTF9JTlBVVF9BTExPQyhpbnB1dF9leHRlcm5hbCwgaW5wdXRfbGVuZ3RoLCBpbnB1dCk7CisgICAgc3RhdHVzID0gcHNhX2RyaXZlcl93cmFwcGVyX2hhc2hfdXBkYXRlKG9wZXJhdGlvbiwgaW5wdXQsIGlucHV0X2xlbmd0aCk7CisKK2V4aXQ6CisgICAgaWYgKHN0YXR1cyAhPSBQU0FfU1VDQ0VTUykgeworICAgICAgICBwc2FfaGFzaF9hYm9ydChvcGVyYXRpb24pOworICAgIH0KKworICAgIExPQ0FMX0lOUFVUX0ZSRUUoaW5wdXRfZXh0ZXJuYWwsIGlucHV0KTsKKyAgICByZXR1cm4gc3RhdHVzOworfQorCitzdGF0aWMgcHNhX3N0YXR1c190IHBzYV9oYXNoX2ZpbmlzaF9pbnRlcm5hbChwc2FfaGFzaF9vcGVyYXRpb25fdCAqb3BlcmF0aW9uLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDhfdCAqaGFzaCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBoYXNoX3NpemUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgKmhhc2hfbGVuZ3RoKQoreworICAgIHBzYV9zdGF0dXNfdCBzdGF0dXMgPSBQU0FfRVJST1JfQ09SUlVQVElPTl9ERVRFQ1RFRDsKKworICAgICpoYXNoX2xlbmd0aCA9IDA7CisgICAgaWYgKG9wZXJhdGlvbi0+aWQgPT0gMCkgeworICAgICAgICByZXR1cm4gUFNBX0VSUk9SX0JBRF9TVEFURTsKKyAgICB9CisKKyAgICBzdGF0dXMgPSBwc2FfZHJpdmVyX3dyYXBwZXJfaGFzaF9maW5pc2goCisgICAgICAgIG9wZXJhdGlvbiwgaGFzaCwgaGFzaF9zaXplLCBoYXNoX2xlbmd0aCk7CisgICAgcHNhX2hhc2hfYWJvcnQob3BlcmF0aW9uKTsKKworICAgIHJldHVybiBzdGF0dXM7Cit9CisKK3BzYV9zdGF0dXNfdCBwc2FfaGFzaF9maW5pc2gocHNhX2hhc2hfb3BlcmF0aW9uX3QgKm9wZXJhdGlvbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDhfdCAqaGFzaF9leHRlcm5hbCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IGhhc2hfc2l6ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90ICpoYXNoX2xlbmd0aCkKK3sKKyAgICBwc2Ffc3RhdHVzX3Qgc3RhdHVzID0gUFNBX0VSUk9SX0NPUlJVUFRJT05fREVURUNURUQ7CisgICAgTE9DQUxfT1VUUFVUX0RFQ0xBUkUoaGFzaF9leHRlcm5hbCwgaGFzaCk7CisKKyAgICBMT0NBTF9PVVRQVVRfQUxMT0MoaGFzaF9leHRlcm5hbCwgaGFzaF9zaXplLCBoYXNoKTsKKyAgICBzdGF0dXMgPSBwc2FfaGFzaF9maW5pc2hfaW50ZXJuYWwob3BlcmF0aW9uLCBoYXNoLCBoYXNoX3NpemUsIGhhc2hfbGVuZ3RoKTsKKworI2lmICFkZWZpbmVkKE1CRURUTFNfUFNBX0FTU1VNRV9FWENMVVNJVkVfQlVGRkVSUykKK2V4aXQ6CisjZW5kaWYKKyAgICBMT0NBTF9PVVRQVVRfRlJFRShoYXNoX2V4dGVybmFsLCBoYXNoKTsKKyAgICByZXR1cm4gc3RhdHVzOworfQorCitwc2Ffc3RhdHVzX3QgcHNhX2hhc2hfdmVyaWZ5KHBzYV9oYXNoX29wZXJhdGlvbl90ICpvcGVyYXRpb24sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVpbnQ4X3QgKmhhc2hfZXh0ZXJuYWwsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBoYXNoX2xlbmd0aCkKK3sKKyAgICB1aW50OF90IGFjdHVhbF9oYXNoW1BTQV9IQVNIX01BWF9TSVpFXTsKKyAgICBzaXplX3QgYWN0dWFsX2hhc2hfbGVuZ3RoOworICAgIHBzYV9zdGF0dXNfdCBzdGF0dXMgPSBQU0FfRVJST1JfQ09SUlVQVElPTl9ERVRFQ1RFRDsKKyAgICBMT0NBTF9JTlBVVF9ERUNMQVJFKGhhc2hfZXh0ZXJuYWwsIGhhc2gpOworCisgICAgc3RhdHVzID0gcHNhX2hhc2hfZmluaXNoX2ludGVybmFsKAorICAgICAgICBvcGVyYXRpb24sCisgICAgICAgIGFjdHVhbF9oYXNoLCBzaXplb2YoYWN0dWFsX2hhc2gpLAorICAgICAgICAmYWN0dWFsX2hhc2hfbGVuZ3RoKTsKKworICAgIGlmIChzdGF0dXMgIT0gUFNBX1NVQ0NFU1MpIHsKKyAgICAgICAgZ290byBleGl0OworICAgIH0KKworICAgIGlmIChhY3R1YWxfaGFzaF9sZW5ndGggIT0gaGFzaF9sZW5ndGgpIHsKKyAgICAgICAgc3RhdHVzID0gUFNBX0VSUk9SX0lOVkFMSURfU0lHTkFUVVJFOworICAgICAgICBnb3RvIGV4aXQ7CisgICAgfQorCisgICAgTE9DQUxfSU5QVVRfQUxMT0MoaGFzaF9leHRlcm5hbCwgaGFzaF9sZW5ndGgsIGhhc2gpOworICAgIGlmIChtYmVkdGxzX2N0X21lbWNtcChoYXNoLCBhY3R1YWxfaGFzaCwgYWN0dWFsX2hhc2hfbGVuZ3RoKSAhPSAwKSB7CisgICAgICAgIHN0YXR1cyA9IFBTQV9FUlJPUl9JTlZBTElEX1NJR05BVFVSRTsKKyAgICB9CisKK2V4aXQ6CisgICAgbWJlZHRsc19wbGF0Zm9ybV96ZXJvaXplKGFjdHVhbF9oYXNoLCBzaXplb2YoYWN0dWFsX2hhc2gpKTsKKyAgICBpZiAoc3RhdHVzICE9IFBTQV9TVUNDRVNTKSB7CisgICAgICAgIHBzYV9oYXNoX2Fib3J0KG9wZXJhdGlvbik7CisgICAgfQorICAgIExPQ0FMX0lOUFVUX0ZSRUUoaGFzaF9leHRlcm5hbCwgaGFzaCk7CisgICAgcmV0dXJuIHN0YXR1czsKK30KKworcHNhX3N0YXR1c190IHBzYV9oYXNoX2NvbXB1dGUocHNhX2FsZ29yaXRobV90IGFsZywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVpbnQ4X3QgKmlucHV0X2V4dGVybmFsLCBzaXplX3QgaW5wdXRfbGVuZ3RoLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDhfdCAqaGFzaF9leHRlcm5hbCwgc2l6ZV90IGhhc2hfc2l6ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCAqaGFzaF9sZW5ndGgpCit7CisgICAgcHNhX3N0YXR1c190IHN0YXR1cyA9IFBTQV9FUlJPUl9DT1JSVVBUSU9OX0RFVEVDVEVEOworICAgIExPQ0FMX0lOUFVUX0RFQ0xBUkUoaW5wdXRfZXh0ZXJuYWwsIGlucHV0KTsKKyAgICBMT0NBTF9PVVRQVVRfREVDTEFSRShoYXNoX2V4dGVybmFsLCBoYXNoKTsKKworICAgICpoYXNoX2xlbmd0aCA9IDA7CisgICAgaWYgKCFQU0FfQUxHX0lTX0hBU0goYWxnKSkgeworICAgICAgICByZXR1cm4gUFNBX0VSUk9SX0lOVkFMSURfQVJHVU1FTlQ7CisgICAgfQorCisgICAgTE9DQUxfSU5QVVRfQUxMT0MoaW5wdXRfZXh0ZXJuYWwsIGlucHV0X2xlbmd0aCwgaW5wdXQpOworICAgIExPQ0FMX09VVFBVVF9BTExPQyhoYXNoX2V4dGVybmFsLCBoYXNoX3NpemUsIGhhc2gpOworICAgIHN0YXR1cyA9IHBzYV9kcml2ZXJfd3JhcHBlcl9oYXNoX2NvbXB1dGUoYWxnLCBpbnB1dCwgaW5wdXRfbGVuZ3RoLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFzaCwgaGFzaF9zaXplLCBoYXNoX2xlbmd0aCk7CisKKyNpZiAhZGVmaW5lZChNQkVEVExTX1BTQV9BU1NVTUVfRVhDTFVTSVZFX0JVRkZFUlMpCitleGl0OgorI2VuZGlmCisgICAgTE9DQUxfSU5QVVRfRlJFRShpbnB1dF9leHRlcm5hbCwgaW5wdXQpOworICAgIExPQ0FMX09VVFBVVF9GUkVFKGhhc2hfZXh0ZXJuYWwsIGhhc2gpOworICAgIHJldHVybiBzdGF0dXM7Cit9CisKK3BzYV9zdGF0dXNfdCBwc2FfaGFzaF9jb21wYXJlKHBzYV9hbGdvcml0aG1fdCBhbGcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1aW50OF90ICppbnB1dF9leHRlcm5hbCwgc2l6ZV90IGlucHV0X2xlbmd0aCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVpbnQ4X3QgKmhhc2hfZXh0ZXJuYWwsIHNpemVfdCBoYXNoX2xlbmd0aCkKK3sKKyAgICB1aW50OF90IGFjdHVhbF9oYXNoW1BTQV9IQVNIX01BWF9TSVpFXTsKKyAgICBzaXplX3QgYWN0dWFsX2hhc2hfbGVuZ3RoOworICAgIHBzYV9zdGF0dXNfdCBzdGF0dXMgPSBQU0FfRVJST1JfQ09SUlVQVElPTl9ERVRFQ1RFRDsKKworICAgIExPQ0FMX0lOUFVUX0RFQ0xBUkUoaW5wdXRfZXh0ZXJuYWwsIGlucHV0KTsKKyAgICBMT0NBTF9JTlBVVF9ERUNMQVJFKGhhc2hfZXh0ZXJuYWwsIGhhc2gpOworCisgICAgaWYgKCFQU0FfQUxHX0lTX0hBU0goYWxnKSkgeworICAgICAgICBzdGF0dXMgPSBQU0FfRVJST1JfSU5WQUxJRF9BUkdVTUVOVDsKKyAgICAgICAgcmV0dXJuIHN0YXR1czsKKyAgICB9CisKKyAgICBMT0NBTF9JTlBVVF9BTExPQyhpbnB1dF9leHRlcm5hbCwgaW5wdXRfbGVuZ3RoLCBpbnB1dCk7CisgICAgc3RhdHVzID0gcHNhX2RyaXZlcl93cmFwcGVyX2hhc2hfY29tcHV0ZSgKKyAgICAgICAgYWxnLCBpbnB1dCwgaW5wdXRfbGVuZ3RoLAorICAgICAgICBhY3R1YWxfaGFzaCwgc2l6ZW9mKGFjdHVhbF9oYXNoKSwKKyAgICAgICAgJmFjdHVhbF9oYXNoX2xlbmd0aCk7CisgICAgaWYgKHN0YXR1cyAhPSBQU0FfU1VDQ0VTUykgeworICAgICAgICBnb3RvIGV4aXQ7CisgICAgfQorICAgIGlmIChhY3R1YWxfaGFzaF9sZW5ndGggIT0gaGFzaF9sZW5ndGgpIHsKKyAgICAgICAgc3RhdHVzID0gUFNBX0VSUk9SX0lOVkFMSURfU0lHTkFUVVJFOworICAgICAgICBnb3RvIGV4aXQ7CisgICAgfQorCisgICAgTE9DQUxfSU5QVVRfQUxMT0MoaGFzaF9leHRlcm5hbCwgaGFzaF9sZW5ndGgsIGhhc2gpOworICAgIGlmIChtYmVkdGxzX2N0X21lbWNtcChoYXNoLCBhY3R1YWxfaGFzaCwgYWN0dWFsX2hhc2hfbGVuZ3RoKSAhPSAwKSB7CisgICAgICAgIHN0YXR1cyA9IFBTQV9FUlJPUl9JTlZBTElEX1NJR05BVFVSRTsKKyAgICB9CisKK2V4aXQ6CisgICAgbWJlZHRsc19wbGF0Zm9ybV96ZXJvaXplKGFjdHVhbF9oYXNoLCBzaXplb2YoYWN0dWFsX2hhc2gpKTsKKworICAgIExPQ0FMX0lOUFVUX0ZSRUUoaW5wdXRfZXh0ZXJuYWwsIGlucHV0KTsKKyAgICBMT0NBTF9JTlBVVF9GUkVFKGhhc2hfZXh0ZXJuYWwsIGhhc2gpOworCisgICAgcmV0dXJuIHN0YXR1czsKK30KKworcHNhX3N0YXR1c190IHBzYV9oYXNoX2Nsb25lKGNvbnN0IHBzYV9oYXNoX29wZXJhdGlvbl90ICpzb3VyY2Vfb3BlcmF0aW9uLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBzYV9oYXNoX29wZXJhdGlvbl90ICp0YXJnZXRfb3BlcmF0aW9uKQoreworICAgIGlmIChzb3VyY2Vfb3BlcmF0aW9uLT5pZCA9PSAwIHx8CisgICAgICAgIHRhcmdldF9vcGVyYXRpb24tPmlkICE9IDApIHsKKyAgICAgICAgcmV0dXJuIFBTQV9FUlJPUl9CQURfU1RBVEU7CisgICAgfQorCisgICAgcHNhX3N0YXR1c190IHN0YXR1cyA9IHBzYV9kcml2ZXJfd3JhcHBlcl9oYXNoX2Nsb25lKHNvdXJjZV9vcGVyYXRpb24sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhcmdldF9vcGVyYXRpb24pOworICAgIGlmIChzdGF0dXMgIT0gUFNBX1NVQ0NFU1MpIHsKKyAgICAgICAgcHNhX2hhc2hfYWJvcnQodGFyZ2V0X29wZXJhdGlvbik7CisgICAgfQorCisgICAgcmV0dXJuIHN0YXR1czsKK30KKworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKy8qIE1BQyAqLworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKK3BzYV9zdGF0dXNfdCBwc2FfbWFjX2Fib3J0KHBzYV9tYWNfb3BlcmF0aW9uX3QgKm9wZXJhdGlvbikKK3sKKyAgICAvKiBBYm9ydGluZyBhIG5vbi1hY3RpdmUgb3BlcmF0aW9uIGlzIGFsbG93ZWQgKi8KKyAgICBpZiAob3BlcmF0aW9uLT5pZCA9PSAwKSB7CisgICAgICAgIHJldHVybiBQU0FfU1VDQ0VTUzsKKyAgICB9CisKKyAgICBwc2Ffc3RhdHVzX3Qgc3RhdHVzID0gcHNhX2RyaXZlcl93cmFwcGVyX21hY19hYm9ydChvcGVyYXRpb24pOworICAgIG9wZXJhdGlvbi0+bWFjX3NpemUgPSAwOworICAgIG9wZXJhdGlvbi0+aXNfc2lnbiA9IDA7CisgICAgb3BlcmF0aW9uLT5pZCA9IDA7CisKKyAgICByZXR1cm4gc3RhdHVzOworfQorCitzdGF0aWMgcHNhX3N0YXR1c190IHBzYV9tYWNfZmluYWxpemVfYWxnX2FuZF9rZXlfdmFsaWRhdGlvbigKKyAgICBwc2FfYWxnb3JpdGhtX3QgYWxnLAorICAgIGNvbnN0IHBzYV9rZXlfYXR0cmlidXRlc190ICphdHRyaWJ1dGVzLAorICAgIHVpbnQ4X3QgKm1hY19zaXplKQoreworICAgIHBzYV9zdGF0dXNfdCBzdGF0dXMgPSBQU0FfRVJST1JfQ09SUlVQVElPTl9ERVRFQ1RFRDsKKyAgICBwc2Ffa2V5X3R5cGVfdCBrZXlfdHlwZSA9IHBzYV9nZXRfa2V5X3R5cGUoYXR0cmlidXRlcyk7CisgICAgc2l6ZV90IGtleV9iaXRzID0gcHNhX2dldF9rZXlfYml0cyhhdHRyaWJ1dGVzKTsKKworICAgIGlmICghUFNBX0FMR19JU19NQUMoYWxnKSkgeworICAgICAgICByZXR1cm4gUFNBX0VSUk9SX0lOVkFMSURfQVJHVU1FTlQ7CisgICAgfQorCisgICAgLyogVmFsaWRhdGUgdGhlIGNvbWJpbmF0aW9uIG9mIGtleSB0eXBlIGFuZCBhbGdvcml0aG0gKi8KKyAgICBzdGF0dXMgPSBwc2FfbWFjX2tleV9jYW5fZG8oYWxnLCBrZXlfdHlwZSk7CisgICAgaWYgKHN0YXR1cyAhPSBQU0FfU1VDQ0VTUykgeworICAgICAgICByZXR1cm4gc3RhdHVzOworICAgIH0KKworICAgIC8qIEdldCB0aGUgb3V0cHV0IGxlbmd0aCBmb3IgdGhlIGFsZ29yaXRobSBhbmQga2V5IGNvbWJpbmF0aW9uICovCisgICAgKm1hY19zaXplID0gUFNBX01BQ19MRU5HVEgoa2V5X3R5cGUsIGtleV9iaXRzLCBhbGcpOworCisgICAgaWYgKCptYWNfc2l6ZSA8IDQpIHsKKyAgICAgICAgLyogQSB2ZXJ5IHNob3J0IE1BQyBpcyB0b28gc2hvcnQgZm9yIHNlY3VyaXR5IHNpbmNlIGl0IGNhbiBiZQorICAgICAgICAgKiBicnV0ZS1mb3JjZWQuIEFuY2llbnQgcHJvdG9jb2xzIHdpdGggMzItYml0IE1BQ3MgZG8gZXhpc3QsCisgICAgICAgICAqIHNvIHdlIG1ha2UgdGhpcyBvdXIgbWluaW11bSwgZXZlbiB0aG91Z2ggMzIgYml0cyBpcyBzdGlsbAorICAgICAgICAgKiB0b28gc21hbGwgZm9yIHNlY3VyaXR5LiAqLworICAgICAgICByZXR1cm4gUFNBX0VSUk9SX05PVF9TVVBQT1JURUQ7CisgICAgfQorCisgICAgaWYgKCptYWNfc2l6ZSA+IFBTQV9NQUNfTEVOR1RIKGtleV90eXBlLCBrZXlfYml0cywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUFNBX0FMR19GVUxMX0xFTkdUSF9NQUMoYWxnKSkpIHsKKyAgICAgICAgLyogSXQncyBpbXBvc3NpYmxlIHRvICJ0cnVuY2F0ZSIgdG8gYSBsYXJnZXIgbGVuZ3RoIHRoYW4gdGhlIGZ1bGwgbGVuZ3RoCisgICAgICAgICAqIG9mIHRoZSBhbGdvcml0aG0uICovCisgICAgICAgIHJldHVybiBQU0FfRVJST1JfSU5WQUxJRF9BUkdVTUVOVDsKKyAgICB9CisKKyAgICBpZiAoKm1hY19zaXplID4gUFNBX01BQ19NQVhfU0laRSkgeworICAgICAgICAvKiBQU0FfTUFDX0xFTkdUSCByZXR1cm5zIHRoZSBjb3JyZWN0IGxlbmd0aCBldmVuIGZvciBhIE1BQyBhbGdvcml0aG0KKyAgICAgICAgICogdGhhdCBpcyBkaXNhYmxlZCBpbiB0aGUgY29tcGlsZS10aW1lIGNvbmZpZ3VyYXRpb24uIFRoZSByZXN1bHQgY2FuCisgICAgICAgICAqIHRoZXJlZm9yZSBiZSBsYXJnZXIgdGhhbiBQU0FfTUFDX01BWF9TSVpFLCB3aGljaCBkb2VzIHRha2UgdGhlCisgICAgICAgICAqIGNvbmZpZ3VyYXRpb24gaW50byBhY2NvdW50LiBJbiB0aGlzIGNhc2UsIGZvcmNlIGEgcmV0dXJuIG9mCisgICAgICAgICAqIFBTQV9FUlJPUl9OT1RfU1VQUE9SVEVEIGhlcmUuIE90aGVyd2lzZSBwc2FfbWFjX3ZlcmlmeSgpLCBvcgorICAgICAgICAgKiBwc2FfbWFjX2NvbXB1dGUobWFjX3NpemU9UFNBX01BQ19NQVhfU0laRSksIHdvdWxkIHJldHVybgorICAgICAgICAgKiBQU0FfRVJST1JfQlVGRkVSX1RPT19TTUFMTCBmb3IgYW4gdW5zdXBwb3J0ZWQgYWxnb3JpdGhtIHdob3NlIE1BQyBzaXplCisgICAgICAgICAqIGlzIGxhcmdlciB0aGFuIFBTQV9NQUNfTUFYX1NJWkUsIHdoaWNoIGlzIG1pc2xlYWRpbmcgYW5kIHdoaWNoIGJyZWFrcworICAgICAgICAgKiBzeXN0ZW1hdGljYWxseSBnZW5lcmF0ZWQgdGVzdHMuICovCisgICAgICAgIHJldHVybiBQU0FfRVJST1JfTk9UX1NVUFBPUlRFRDsKKyAgICB9CisKKyAgICByZXR1cm4gUFNBX1NVQ0NFU1M7Cit9CisKK3N0YXRpYyBwc2Ffc3RhdHVzX3QgcHNhX21hY19zZXR1cChwc2FfbWFjX29wZXJhdGlvbl90ICpvcGVyYXRpb24sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWJlZHRsc19zdmNfa2V5X2lkX3Qga2V5LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBzYV9hbGdvcml0aG1fdCBhbGcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGlzX3NpZ24pCit7CisgICAgcHNhX3N0YXR1c190IHN0YXR1cyA9IFBTQV9FUlJPUl9DT1JSVVBUSU9OX0RFVEVDVEVEOworICAgIHBzYV9zdGF0dXNfdCB1bmxvY2tfc3RhdHVzID0gUFNBX0VSUk9SX0NPUlJVUFRJT05fREVURUNURUQ7CisgICAgcHNhX2tleV9zbG90X3QgKnNsb3QgPSBOVUxMOworCisgICAgLyogQSBjb250ZXh0IG11c3QgYmUgZnJlc2hseSBpbml0aWFsaXplZCBiZWZvcmUgaXQgY2FuIGJlIHNldCB1cC4gKi8KKyAgICBpZiAob3BlcmF0aW9uLT5pZCAhPSAwKSB7CisgICAgICAgIHN0YXR1cyA9IFBTQV9FUlJPUl9CQURfU1RBVEU7CisgICAgICAgIGdvdG8gZXhpdDsKKyAgICB9CisKKyAgICBzdGF0dXMgPSBwc2FfZ2V0X2FuZF9sb2NrX2tleV9zbG90X3dpdGhfcG9saWN5KAorICAgICAgICBrZXksCisgICAgICAgICZzbG90LAorICAgICAgICBpc19zaWduID8gUFNBX0tFWV9VU0FHRV9TSUdOX01FU1NBR0UgOiBQU0FfS0VZX1VTQUdFX1ZFUklGWV9NRVNTQUdFLAorICAgICAgICBhbGcpOworICAgIGlmIChzdGF0dXMgIT0gUFNBX1NVQ0NFU1MpIHsKKyAgICAgICAgZ290byBleGl0OworICAgIH0KKworICAgIHN0YXR1cyA9IHBzYV9tYWNfZmluYWxpemVfYWxnX2FuZF9rZXlfdmFsaWRhdGlvbihhbGcsICZzbG90LT5hdHRyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmb3BlcmF0aW9uLT5tYWNfc2l6ZSk7CisgICAgaWYgKHN0YXR1cyAhPSBQU0FfU1VDQ0VTUykgeworICAgICAgICBnb3RvIGV4aXQ7CisgICAgfQorCisgICAgb3BlcmF0aW9uLT5pc19zaWduID0gaXNfc2lnbjsKKyAgICAvKiBEaXNwYXRjaCB0aGUgTUFDIHNldHVwIGNhbGwgd2l0aCB2YWxpZGF0ZWQgaW5wdXQgKi8KKyAgICBpZiAoaXNfc2lnbikgeworICAgICAgICBzdGF0dXMgPSBwc2FfZHJpdmVyX3dyYXBwZXJfbWFjX3NpZ25fc2V0dXAob3BlcmF0aW9uLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJnNsb3QtPmF0dHIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzbG90LT5rZXkuZGF0YSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNsb3QtPmtleS5ieXRlcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFsZyk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgc3RhdHVzID0gcHNhX2RyaXZlcl93cmFwcGVyX21hY192ZXJpZnlfc2V0dXAob3BlcmF0aW9uLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmc2xvdC0+YXR0ciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2xvdC0+a2V5LmRhdGEsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNsb3QtPmtleS5ieXRlcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWxnKTsKKyAgICB9CisKK2V4aXQ6CisgICAgaWYgKHN0YXR1cyAhPSBQU0FfU1VDQ0VTUykgeworICAgICAgICBwc2FfbWFjX2Fib3J0KG9wZXJhdGlvbik7CisgICAgfQorCisgICAgdW5sb2NrX3N0YXR1cyA9IHBzYV91bnJlZ2lzdGVyX3JlYWRfdW5kZXJfbXV0ZXgoc2xvdCk7CisKKyAgICByZXR1cm4gKHN0YXR1cyA9PSBQU0FfU1VDQ0VTUykgPyB1bmxvY2tfc3RhdHVzIDogc3RhdHVzOworfQorCitwc2Ffc3RhdHVzX3QgcHNhX21hY19zaWduX3NldHVwKHBzYV9tYWNfb3BlcmF0aW9uX3QgKm9wZXJhdGlvbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWJlZHRsc19zdmNfa2V5X2lkX3Qga2V5LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwc2FfYWxnb3JpdGhtX3QgYWxnKQoreworICAgIHJldHVybiBwc2FfbWFjX3NldHVwKG9wZXJhdGlvbiwga2V5LCBhbGcsIDEpOworfQorCitwc2Ffc3RhdHVzX3QgcHNhX21hY192ZXJpZnlfc2V0dXAocHNhX21hY19vcGVyYXRpb25fdCAqb3BlcmF0aW9uLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1iZWR0bHNfc3ZjX2tleV9pZF90IGtleSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwc2FfYWxnb3JpdGhtX3QgYWxnKQoreworICAgIHJldHVybiBwc2FfbWFjX3NldHVwKG9wZXJhdGlvbiwga2V5LCBhbGcsIDApOworfQorCitwc2Ffc3RhdHVzX3QgcHNhX21hY191cGRhdGUocHNhX21hY19vcGVyYXRpb25fdCAqb3BlcmF0aW9uLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVpbnQ4X3QgKmlucHV0X2V4dGVybmFsLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBpbnB1dF9sZW5ndGgpCit7CisgICAgcHNhX3N0YXR1c190IHN0YXR1cyA9IFBTQV9FUlJPUl9DT1JSVVBUSU9OX0RFVEVDVEVEOworICAgIExPQ0FMX0lOUFVUX0RFQ0xBUkUoaW5wdXRfZXh0ZXJuYWwsIGlucHV0KTsKKworICAgIGlmIChvcGVyYXRpb24tPmlkID09IDApIHsKKyAgICAgICAgc3RhdHVzID0gUFNBX0VSUk9SX0JBRF9TVEFURTsKKyAgICAgICAgcmV0dXJuIHN0YXR1czsKKyAgICB9CisKKyAgICAvKiBEb24ndCByZXF1aXJlIGhhc2ggaW1wbGVtZW50YXRpb25zIHRvIGJlaGF2ZSBjb3JyZWN0bHkgb24gYQorICAgICAqIHplcm8tbGVuZ3RoIGlucHV0LCB3aGljaCBtYXkgaGF2ZSBhbiBpbnZhbGlkIHBvaW50ZXIuICovCisgICAgaWYgKGlucHV0X2xlbmd0aCA9PSAwKSB7CisgICAgICAgIHN0YXR1cyA9IFBTQV9TVUNDRVNTOworICAgICAgICByZXR1cm4gc3RhdHVzOworICAgIH0KKworICAgIExPQ0FMX0lOUFVUX0FMTE9DKGlucHV0X2V4dGVybmFsLCBpbnB1dF9sZW5ndGgsIGlucHV0KTsKKyAgICBzdGF0dXMgPSBwc2FfZHJpdmVyX3dyYXBwZXJfbWFjX3VwZGF0ZShvcGVyYXRpb24sIGlucHV0LCBpbnB1dF9sZW5ndGgpOworCisgICAgaWYgKHN0YXR1cyAhPSBQU0FfU1VDQ0VTUykgeworICAgICAgICBwc2FfbWFjX2Fib3J0KG9wZXJhdGlvbik7CisgICAgfQorCisjaWYgIWRlZmluZWQoTUJFRFRMU19QU0FfQVNTVU1FX0VYQ0xVU0lWRV9CVUZGRVJTKQorZXhpdDoKKyNlbmRpZgorICAgIExPQ0FMX0lOUFVUX0ZSRUUoaW5wdXRfZXh0ZXJuYWwsIGlucHV0KTsKKworICAgIHJldHVybiBzdGF0dXM7Cit9CisKK3BzYV9zdGF0dXNfdCBwc2FfbWFjX3NpZ25fZmluaXNoKHBzYV9tYWNfb3BlcmF0aW9uX3QgKm9wZXJhdGlvbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQ4X3QgKm1hY19leHRlcm5hbCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBtYWNfc2l6ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCAqbWFjX2xlbmd0aCkKK3sKKyAgICBwc2Ffc3RhdHVzX3Qgc3RhdHVzID0gUFNBX0VSUk9SX0NPUlJVUFRJT05fREVURUNURUQ7CisgICAgcHNhX3N0YXR1c190IGFib3J0X3N0YXR1cyA9IFBTQV9FUlJPUl9DT1JSVVBUSU9OX0RFVEVDVEVEOworICAgIExPQ0FMX09VVFBVVF9ERUNMQVJFKG1hY19leHRlcm5hbCwgbWFjKTsKKyAgICBMT0NBTF9PVVRQVVRfQUxMT0MobWFjX2V4dGVybmFsLCBtYWNfc2l6ZSwgbWFjKTsKKworICAgIGlmIChvcGVyYXRpb24tPmlkID09IDApIHsKKyAgICAgICAgc3RhdHVzID0gUFNBX0VSUk9SX0JBRF9TVEFURTsKKyAgICAgICAgZ290byBleGl0OworICAgIH0KKworICAgIGlmICghb3BlcmF0aW9uLT5pc19zaWduKSB7CisgICAgICAgIHN0YXR1cyA9IFBTQV9FUlJPUl9CQURfU1RBVEU7CisgICAgICAgIGdvdG8gZXhpdDsKKyAgICB9CisKKyAgICAvKiBTYW5pdHkgY2hlY2suIFRoaXMgd2lsbCBndWFyYW50ZWUgdGhhdCBtYWNfc2l6ZSAhPSAwIChhbmQgc28gbWFjICE9IE5VTEwpCisgICAgICogb25jZSBhbGwgdGhlIGVycm9yIGNoZWNrcyBhcmUgZG9uZS4gKi8KKyAgICBpZiAob3BlcmF0aW9uLT5tYWNfc2l6ZSA9PSAwKSB7CisgICAgICAgIHN0YXR1cyA9IFBTQV9FUlJPUl9CQURfU1RBVEU7CisgICAgICAgIGdvdG8gZXhpdDsKKyAgICB9CisKKyAgICBpZiAobWFjX3NpemUgPCBvcGVyYXRpb24tPm1hY19zaXplKSB7CisgICAgICAgIHN0YXR1cyA9IFBTQV9FUlJPUl9CVUZGRVJfVE9PX1NNQUxMOworICAgICAgICBnb3RvIGV4aXQ7CisgICAgfQorCisKKyAgICBzdGF0dXMgPSBwc2FfZHJpdmVyX3dyYXBwZXJfbWFjX3NpZ25fZmluaXNoKG9wZXJhdGlvbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hYywgb3BlcmF0aW9uLT5tYWNfc2l6ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hY19sZW5ndGgpOworCitleGl0OgorICAgIC8qIEluIGNhc2Ugb2Ygc3VjY2Vzcywgc2V0IHRoZSBwb3RlbnRpYWwgZXhjZXNzIHJvb20gaW4gdGhlIG91dHB1dCBidWZmZXIKKyAgICAgKiB0byBhbiBpbnZhbGlkIHZhbHVlLCB0byBhdm9pZCBwb3RlbnRpYWxseSBsZWFraW5nIGEgbG9uZ2VyIE1BQy4KKyAgICAgKiBJbiBjYXNlIG9mIGVycm9yLCBzZXQgdGhlIG91dHB1dCBsZW5ndGggYW5kIGNvbnRlbnQgdG8gYSBzYWZlIGRlZmF1bHQsCisgICAgICogc3VjaCB0aGF0IGluIGNhc2UgdGhlIGNhbGxlciBtaXNzZXMgYW4gZXJyb3IgY2hlY2ssIHRoZSBvdXRwdXQgd291bGQgYmUKKyAgICAgKiBhbiB1bmFjaGlldmFibGUgTUFDLgorICAgICAqLworICAgIGlmIChzdGF0dXMgIT0gUFNBX1NVQ0NFU1MpIHsKKyAgICAgICAgKm1hY19sZW5ndGggPSBtYWNfc2l6ZTsKKyAgICAgICAgb3BlcmF0aW9uLT5tYWNfc2l6ZSA9IDA7CisgICAgfQorCisgICAgaWYgKG1hYyAhPSBOVUxMKSB7CisgICAgICAgIHBzYV93aXBlX3RhZ19vdXRwdXRfYnVmZmVyKG1hYywgc3RhdHVzLCBtYWNfc2l6ZSwgKm1hY19sZW5ndGgpOworICAgIH0KKworICAgIGFib3J0X3N0YXR1cyA9IHBzYV9tYWNfYWJvcnQob3BlcmF0aW9uKTsKKyAgICBMT0NBTF9PVVRQVVRfRlJFRShtYWNfZXh0ZXJuYWwsIG1hYyk7CisKKyAgICByZXR1cm4gc3RhdHVzID09IFBTQV9TVUNDRVNTID8gYWJvcnRfc3RhdHVzIDogc3RhdHVzOworfQorCitwc2Ffc3RhdHVzX3QgcHNhX21hY192ZXJpZnlfZmluaXNoKHBzYV9tYWNfb3BlcmF0aW9uX3QgKm9wZXJhdGlvbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdWludDhfdCAqbWFjX2V4dGVybmFsLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgbWFjX2xlbmd0aCkKK3sKKyAgICBwc2Ffc3RhdHVzX3Qgc3RhdHVzID0gUFNBX0VSUk9SX0NPUlJVUFRJT05fREVURUNURUQ7CisgICAgcHNhX3N0YXR1c190IGFib3J0X3N0YXR1cyA9IFBTQV9FUlJPUl9DT1JSVVBUSU9OX0RFVEVDVEVEOworICAgIExPQ0FMX0lOUFVUX0RFQ0xBUkUobWFjX2V4dGVybmFsLCBtYWMpOworCisgICAgaWYgKG9wZXJhdGlvbi0+aWQgPT0gMCkgeworICAgICAgICBzdGF0dXMgPSBQU0FfRVJST1JfQkFEX1NUQVRFOworICAgICAgICBnb3RvIGV4aXQ7CisgICAgfQorCisgICAgaWYgKG9wZXJhdGlvbi0+aXNfc2lnbikgeworICAgICAgICBzdGF0dXMgPSBQU0FfRVJST1JfQkFEX1NUQVRFOworICAgICAgICBnb3RvIGV4aXQ7CisgICAgfQorCisgICAgaWYgKG9wZXJhdGlvbi0+bWFjX3NpemUgIT0gbWFjX2xlbmd0aCkgeworICAgICAgICBzdGF0dXMgPSBQU0FfRVJST1JfSU5WQUxJRF9TSUdOQVRVUkU7CisgICAgICAgIGdvdG8gZXhpdDsKKyAgICB9CisKKyAgICBMT0NBTF9JTlBVVF9BTExPQyhtYWNfZXh0ZXJuYWwsIG1hY19sZW5ndGgsIG1hYyk7CisgICAgc3RhdHVzID0gcHNhX2RyaXZlcl93cmFwcGVyX21hY192ZXJpZnlfZmluaXNoKG9wZXJhdGlvbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFjLCBtYWNfbGVuZ3RoKTsKKworZXhpdDoKKyAgICBhYm9ydF9zdGF0dXMgPSBwc2FfbWFjX2Fib3J0KG9wZXJhdGlvbik7CisgICAgTE9DQUxfSU5QVVRfRlJFRShtYWNfZXh0ZXJuYWwsIG1hYyk7CisKKyAgICByZXR1cm4gc3RhdHVzID09IFBTQV9TVUNDRVNTID8gYWJvcnRfc3RhdHVzIDogc3RhdHVzOworfQorCitzdGF0aWMgcHNhX3N0YXR1c190IHBzYV9tYWNfY29tcHV0ZV9pbnRlcm5hbChtYmVkdGxzX3N2Y19rZXlfaWRfdCBrZXksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwc2FfYWxnb3JpdGhtX3QgYWxnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdWludDhfdCAqaW5wdXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgaW5wdXRfbGVuZ3RoLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDhfdCAqbWFjLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IG1hY19zaXplLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90ICptYWNfbGVuZ3RoLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGlzX3NpZ24pCit7CisgICAgcHNhX3N0YXR1c190IHN0YXR1cyA9IFBTQV9FUlJPUl9DT1JSVVBUSU9OX0RFVEVDVEVEOworICAgIHBzYV9zdGF0dXNfdCB1bmxvY2tfc3RhdHVzID0gUFNBX0VSUk9SX0NPUlJVUFRJT05fREVURUNURUQ7CisgICAgcHNhX2tleV9zbG90X3QgKnNsb3Q7CisgICAgdWludDhfdCBvcGVyYXRpb25fbWFjX3NpemUgPSAwOworCisgICAgc3RhdHVzID0gcHNhX2dldF9hbmRfbG9ja19rZXlfc2xvdF93aXRoX3BvbGljeSgKKyAgICAgICAga2V5LAorICAgICAgICAmc2xvdCwKKyAgICAgICAgaXNfc2lnbiA/IFBTQV9LRVlfVVNBR0VfU0lHTl9NRVNTQUdFIDogUFNBX0tFWV9VU0FHRV9WRVJJRllfTUVTU0FHRSwKKyAgICAgICAgYWxnKTsKKyAgICBpZiAoc3RhdHVzICE9IFBTQV9TVUNDRVNTKSB7CisgICAgICAgIGdvdG8gZXhpdDsKKyAgICB9CisKKyAgICBzdGF0dXMgPSBwc2FfbWFjX2ZpbmFsaXplX2FsZ19hbmRfa2V5X3ZhbGlkYXRpb24oYWxnLCAmc2xvdC0+YXR0ciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJm9wZXJhdGlvbl9tYWNfc2l6ZSk7CisgICAgaWYgKHN0YXR1cyAhPSBQU0FfU1VDQ0VTUykgeworICAgICAgICBnb3RvIGV4aXQ7CisgICAgfQorCisgICAgaWYgKG1hY19zaXplIDwgb3BlcmF0aW9uX21hY19zaXplKSB7CisgICAgICAgIHN0YXR1cyA9IFBTQV9FUlJPUl9CVUZGRVJfVE9PX1NNQUxMOworICAgICAgICBnb3RvIGV4aXQ7CisgICAgfQorCisgICAgc3RhdHVzID0gcHNhX2RyaXZlcl93cmFwcGVyX21hY19jb21wdXRlKAorICAgICAgICAmc2xvdC0+YXR0ciwKKyAgICAgICAgc2xvdC0+a2V5LmRhdGEsIHNsb3QtPmtleS5ieXRlcywKKyAgICAgICAgYWxnLAorICAgICAgICBpbnB1dCwgaW5wdXRfbGVuZ3RoLAorICAgICAgICBtYWMsIG9wZXJhdGlvbl9tYWNfc2l6ZSwgbWFjX2xlbmd0aCk7CisKK2V4aXQ6CisgICAgLyogSW4gY2FzZSBvZiBzdWNjZXNzLCBzZXQgdGhlIHBvdGVudGlhbCBleGNlc3Mgcm9vbSBpbiB0aGUgb3V0cHV0IGJ1ZmZlcgorICAgICAqIHRvIGFuIGludmFsaWQgdmFsdWUsIHRvIGF2b2lkIHBvdGVudGlhbGx5IGxlYWtpbmcgYSBsb25nZXIgTUFDLgorICAgICAqIEluIGNhc2Ugb2YgZXJyb3IsIHNldCB0aGUgb3V0cHV0IGxlbmd0aCBhbmQgY29udGVudCB0byBhIHNhZmUgZGVmYXVsdCwKKyAgICAgKiBzdWNoIHRoYXQgaW4gY2FzZSB0aGUgY2FsbGVyIG1pc3NlcyBhbiBlcnJvciBjaGVjaywgdGhlIG91dHB1dCB3b3VsZCBiZQorICAgICAqIGFuIHVuYWNoaWV2YWJsZSBNQUMuCisgICAgICovCisgICAgaWYgKHN0YXR1cyAhPSBQU0FfU1VDQ0VTUykgeworICAgICAgICAqbWFjX2xlbmd0aCA9IG1hY19zaXplOworICAgICAgICBvcGVyYXRpb25fbWFjX3NpemUgPSAwOworICAgIH0KKworICAgIHBzYV93aXBlX3RhZ19vdXRwdXRfYnVmZmVyKG1hYywgc3RhdHVzLCBtYWNfc2l6ZSwgKm1hY19sZW5ndGgpOworCisgICAgdW5sb2NrX3N0YXR1cyA9IHBzYV91bnJlZ2lzdGVyX3JlYWRfdW5kZXJfbXV0ZXgoc2xvdCk7CisKKyAgICByZXR1cm4gKHN0YXR1cyA9PSBQU0FfU1VDQ0VTUykgPyB1bmxvY2tfc3RhdHVzIDogc3RhdHVzOworfQorCitwc2Ffc3RhdHVzX3QgcHNhX21hY19jb21wdXRlKG1iZWR0bHNfc3ZjX2tleV9pZF90IGtleSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHNhX2FsZ29yaXRobV90IGFsZywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdWludDhfdCAqaW5wdXRfZXh0ZXJuYWwsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBpbnB1dF9sZW5ndGgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQ4X3QgKm1hY19leHRlcm5hbCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IG1hY19zaXplLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgKm1hY19sZW5ndGgpCit7CisgICAgcHNhX3N0YXR1c190IHN0YXR1cyA9IFBTQV9FUlJPUl9DT1JSVVBUSU9OX0RFVEVDVEVEOworICAgIExPQ0FMX0lOUFVUX0RFQ0xBUkUoaW5wdXRfZXh0ZXJuYWwsIGlucHV0KTsKKyAgICBMT0NBTF9PVVRQVVRfREVDTEFSRShtYWNfZXh0ZXJuYWwsIG1hYyk7CisKKyAgICBMT0NBTF9JTlBVVF9BTExPQyhpbnB1dF9leHRlcm5hbCwgaW5wdXRfbGVuZ3RoLCBpbnB1dCk7CisgICAgTE9DQUxfT1VUUFVUX0FMTE9DKG1hY19leHRlcm5hbCwgbWFjX3NpemUsIG1hYyk7CisgICAgc3RhdHVzID0gcHNhX21hY19jb21wdXRlX2ludGVybmFsKGtleSwgYWxnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnB1dCwgaW5wdXRfbGVuZ3RoLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYWMsIG1hY19zaXplLCBtYWNfbGVuZ3RoLCAxKTsKKworI2lmICFkZWZpbmVkKE1CRURUTFNfUFNBX0FTU1VNRV9FWENMVVNJVkVfQlVGRkVSUykKK2V4aXQ6CisjZW5kaWYKKyAgICBMT0NBTF9JTlBVVF9GUkVFKGlucHV0X2V4dGVybmFsLCBpbnB1dCk7CisgICAgTE9DQUxfT1VUUFVUX0ZSRUUobWFjX2V4dGVybmFsLCBtYWMpOworCisgICAgcmV0dXJuIHN0YXR1czsKK30KKworcHNhX3N0YXR1c190IHBzYV9tYWNfdmVyaWZ5KG1iZWR0bHNfc3ZjX2tleV9pZF90IGtleSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBwc2FfYWxnb3JpdGhtX3QgYWxnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVpbnQ4X3QgKmlucHV0X2V4dGVybmFsLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBpbnB1dF9sZW5ndGgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdWludDhfdCAqbWFjX2V4dGVybmFsLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBtYWNfbGVuZ3RoKQoreworICAgIHBzYV9zdGF0dXNfdCBzdGF0dXMgPSBQU0FfRVJST1JfQ09SUlVQVElPTl9ERVRFQ1RFRDsKKyAgICB1aW50OF90IGFjdHVhbF9tYWNbUFNBX01BQ19NQVhfU0laRV07CisgICAgc2l6ZV90IGFjdHVhbF9tYWNfbGVuZ3RoOworICAgIExPQ0FMX0lOUFVUX0RFQ0xBUkUoaW5wdXRfZXh0ZXJuYWwsIGlucHV0KTsKKyAgICBMT0NBTF9JTlBVVF9ERUNMQVJFKG1hY19leHRlcm5hbCwgbWFjKTsKKworICAgIExPQ0FMX0lOUFVUX0FMTE9DKGlucHV0X2V4dGVybmFsLCBpbnB1dF9sZW5ndGgsIGlucHV0KTsKKyAgICBzdGF0dXMgPSBwc2FfbWFjX2NvbXB1dGVfaW50ZXJuYWwoa2V5LCBhbGcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlucHV0LCBpbnB1dF9sZW5ndGgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFjdHVhbF9tYWMsIHNpemVvZihhY3R1YWxfbWFjKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJmFjdHVhbF9tYWNfbGVuZ3RoLCAwKTsKKyAgICBpZiAoc3RhdHVzICE9IFBTQV9TVUNDRVNTKSB7CisgICAgICAgIGdvdG8gZXhpdDsKKyAgICB9CisKKyAgICBpZiAobWFjX2xlbmd0aCAhPSBhY3R1YWxfbWFjX2xlbmd0aCkgeworICAgICAgICBzdGF0dXMgPSBQU0FfRVJST1JfSU5WQUxJRF9TSUdOQVRVUkU7CisgICAgICAgIGdvdG8gZXhpdDsKKyAgICB9CisKKyAgICBMT0NBTF9JTlBVVF9BTExPQyhtYWNfZXh0ZXJuYWwsIG1hY19sZW5ndGgsIG1hYyk7CisgICAgaWYgKG1iZWR0bHNfY3RfbWVtY21wKG1hYywgYWN0dWFsX21hYywgYWN0dWFsX21hY19sZW5ndGgpICE9IDApIHsKKyAgICAgICAgc3RhdHVzID0gUFNBX0VSUk9SX0lOVkFMSURfU0lHTkFUVVJFOworICAgICAgICBnb3RvIGV4aXQ7CisgICAgfQorCitleGl0OgorICAgIG1iZWR0bHNfcGxhdGZvcm1femVyb2l6ZShhY3R1YWxfbWFjLCBzaXplb2YoYWN0dWFsX21hYykpOworICAgIExPQ0FMX0lOUFVUX0ZSRUUoaW5wdXRfZXh0ZXJuYWwsIGlucHV0KTsKKyAgICBMT0NBTF9JTlBVVF9GUkVFKG1hY19leHRlcm5hbCwgbWFjKTsKKworICAgIHJldHVybiBzdGF0dXM7Cit9CisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworLyogQXN5bW1ldHJpYyBjcnlwdG9ncmFwaHkgKi8KKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCitzdGF0aWMgcHNhX3N0YXR1c190IHBzYV9zaWduX3ZlcmlmeV9jaGVja19hbGcoaW50IGlucHV0X2lzX21lc3NhZ2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHNhX2FsZ29yaXRobV90IGFsZykKK3sKKyAgICBpZiAoaW5wdXRfaXNfbWVzc2FnZSkgeworICAgICAgICBpZiAoIVBTQV9BTEdfSVNfU0lHTl9NRVNTQUdFKGFsZykpIHsKKyAgICAgICAgICAgIHJldHVybiBQU0FfRVJST1JfSU5WQUxJRF9BUkdVTUVOVDsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChQU0FfQUxHX0lTX1NJR05fSEFTSChhbGcpKSB7CisgICAgICAgICAgICBpZiAoIVBTQV9BTEdfSVNfSEFTSChQU0FfQUxHX1NJR05fR0VUX0hBU0goYWxnKSkpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gUFNBX0VSUk9SX0lOVkFMSURfQVJHVU1FTlQ7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9IGVsc2UgeworICAgICAgICBpZiAoIVBTQV9BTEdfSVNfU0lHTl9IQVNIKGFsZykpIHsKKyAgICAgICAgICAgIHJldHVybiBQU0FfRVJST1JfSU5WQUxJRF9BUkdVTUVOVDsKKyAgICAgICAgfQorICAgIH0KKworICAgIHJldHVybiBQU0FfU1VDQ0VTUzsKK30KKworc3RhdGljIHBzYV9zdGF0dXNfdCBwc2Ffc2lnbl9pbnRlcm5hbChtYmVkdGxzX3N2Y19rZXlfaWRfdCBrZXksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBpbnB1dF9pc19tZXNzYWdlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwc2FfYWxnb3JpdGhtX3QgYWxnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1aW50OF90ICppbnB1dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IGlucHV0X2xlbmd0aCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDhfdCAqc2lnbmF0dXJlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3Qgc2lnbmF0dXJlX3NpemUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCAqc2lnbmF0dXJlX2xlbmd0aCkKK3sKKyAgICBwc2Ffc3RhdHVzX3Qgc3RhdHVzID0gUFNBX0VSUk9SX0NPUlJVUFRJT05fREVURUNURUQ7CisgICAgcHNhX3N0YXR1c190IHVubG9ja19zdGF0dXMgPSBQU0FfRVJST1JfQ09SUlVQVElPTl9ERVRFQ1RFRDsKKyAgICBwc2Ffa2V5X3Nsb3RfdCAqc2xvdDsKKworICAgICpzaWduYXR1cmVfbGVuZ3RoID0gMDsKKworICAgIHN0YXR1cyA9IHBzYV9zaWduX3ZlcmlmeV9jaGVja19hbGcoaW5wdXRfaXNfbWVzc2FnZSwgYWxnKTsKKyAgICBpZiAoc3RhdHVzICE9IFBTQV9TVUNDRVNTKSB7CisgICAgICAgIHJldHVybiBzdGF0dXM7CisgICAgfQorCisgICAgLyogSW1tZWRpYXRlbHkgcmVqZWN0IGEgemVyby1sZW5ndGggc2lnbmF0dXJlIGJ1ZmZlci4gVGhpcyBndWFyYW50ZWVzCisgICAgICogdGhhdCBzaWduYXR1cmUgbXVzdCBiZSBhIHZhbGlkIHBvaW50ZXIuIChPbiB0aGUgb3RoZXIgaGFuZCwgdGhlIGlucHV0CisgICAgICogYnVmZmVyIGNhbiBpbiBwcmluY2lwbGUgYmUgZW1wdHkgc2luY2UgaXQgZG9lc24ndCBhY3R1YWxseSBoYXZlCisgICAgICogdG8gYmUgYSBoYXNoLikgKi8KKyAgICBpZiAoc2lnbmF0dXJlX3NpemUgPT0gMCkgeworICAgICAgICByZXR1cm4gUFNBX0VSUk9SX0JVRkZFUl9UT09fU01BTEw7CisgICAgfQorCisgICAgc3RhdHVzID0gcHNhX2dldF9hbmRfbG9ja19rZXlfc2xvdF93aXRoX3BvbGljeSgKKyAgICAgICAga2V5LCAmc2xvdCwKKyAgICAgICAgaW5wdXRfaXNfbWVzc2FnZSA/IFBTQV9LRVlfVVNBR0VfU0lHTl9NRVNTQUdFIDoKKyAgICAgICAgUFNBX0tFWV9VU0FHRV9TSUdOX0hBU0gsCisgICAgICAgIGFsZyk7CisKKyAgICBpZiAoc3RhdHVzICE9IFBTQV9TVUNDRVNTKSB7CisgICAgICAgIGdvdG8gZXhpdDsKKyAgICB9CisKKyAgICBpZiAoIVBTQV9LRVlfVFlQRV9JU19LRVlfUEFJUihzbG90LT5hdHRyLnR5cGUpKSB7CisgICAgICAgIHN0YXR1cyA9IFBTQV9FUlJPUl9JTlZBTElEX0FSR1VNRU5UOworICAgICAgICBnb3RvIGV4aXQ7CisgICAgfQorCisgICAgaWYgKGlucHV0X2lzX21lc3NhZ2UpIHsKKyAgICAgICAgc3RhdHVzID0gcHNhX2RyaXZlcl93cmFwcGVyX3NpZ25fbWVzc2FnZSgKKyAgICAgICAgICAgICZzbG90LT5hdHRyLCBzbG90LT5rZXkuZGF0YSwgc2xvdC0+a2V5LmJ5dGVzLAorICAgICAgICAgICAgYWxnLCBpbnB1dCwgaW5wdXRfbGVuZ3RoLAorICAgICAgICAgICAgc2lnbmF0dXJlLCBzaWduYXR1cmVfc2l6ZSwgc2lnbmF0dXJlX2xlbmd0aCk7CisgICAgfSBlbHNlIHsKKworICAgICAgICBzdGF0dXMgPSBwc2FfZHJpdmVyX3dyYXBwZXJfc2lnbl9oYXNoKAorICAgICAgICAgICAgJnNsb3QtPmF0dHIsIHNsb3QtPmtleS5kYXRhLCBzbG90LT5rZXkuYnl0ZXMsCisgICAgICAgICAgICBhbGcsIGlucHV0LCBpbnB1dF9sZW5ndGgsCisgICAgICAgICAgICBzaWduYXR1cmUsIHNpZ25hdHVyZV9zaXplLCBzaWduYXR1cmVfbGVuZ3RoKTsKKyAgICB9CisKKworZXhpdDoKKyAgICBwc2Ffd2lwZV90YWdfb3V0cHV0X2J1ZmZlcihzaWduYXR1cmUsIHN0YXR1cywgc2lnbmF0dXJlX3NpemUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKnNpZ25hdHVyZV9sZW5ndGgpOworCisgICAgdW5sb2NrX3N0YXR1cyA9IHBzYV91bnJlZ2lzdGVyX3JlYWRfdW5kZXJfbXV0ZXgoc2xvdCk7CisKKyAgICByZXR1cm4gKHN0YXR1cyA9PSBQU0FfU1VDQ0VTUykgPyB1bmxvY2tfc3RhdHVzIDogc3RhdHVzOworfQorCitzdGF0aWMgcHNhX3N0YXR1c190IHBzYV92ZXJpZnlfaW50ZXJuYWwobWJlZHRsc19zdmNfa2V5X2lkX3Qga2V5LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBpbnB1dF9pc19tZXNzYWdlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBzYV9hbGdvcml0aG1fdCBhbGcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdWludDhfdCAqaW5wdXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IGlucHV0X2xlbmd0aCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1aW50OF90ICpzaWduYXR1cmUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IHNpZ25hdHVyZV9sZW5ndGgpCit7CisgICAgcHNhX3N0YXR1c190IHN0YXR1cyA9IFBTQV9FUlJPUl9DT1JSVVBUSU9OX0RFVEVDVEVEOworICAgIHBzYV9zdGF0dXNfdCB1bmxvY2tfc3RhdHVzID0gUFNBX0VSUk9SX0NPUlJVUFRJT05fREVURUNURUQ7CisgICAgcHNhX2tleV9zbG90X3QgKnNsb3Q7CisKKyAgICBzdGF0dXMgPSBwc2Ffc2lnbl92ZXJpZnlfY2hlY2tfYWxnKGlucHV0X2lzX21lc3NhZ2UsIGFsZyk7CisgICAgaWYgKHN0YXR1cyAhPSBQU0FfU1VDQ0VTUykgeworICAgICAgICByZXR1cm4gc3RhdHVzOworICAgIH0KKworICAgIHN0YXR1cyA9IHBzYV9nZXRfYW5kX2xvY2tfa2V5X3Nsb3Rfd2l0aF9wb2xpY3koCisgICAgICAgIGtleSwgJnNsb3QsCisgICAgICAgIGlucHV0X2lzX21lc3NhZ2UgPyBQU0FfS0VZX1VTQUdFX1ZFUklGWV9NRVNTQUdFIDoKKyAgICAgICAgUFNBX0tFWV9VU0FHRV9WRVJJRllfSEFTSCwKKyAgICAgICAgYWxnKTsKKworICAgIGlmIChzdGF0dXMgIT0gUFNBX1NVQ0NFU1MpIHsKKyAgICAgICAgcmV0dXJuIHN0YXR1czsKKyAgICB9CisKKyAgICBpZiAoaW5wdXRfaXNfbWVzc2FnZSkgeworICAgICAgICBzdGF0dXMgPSBwc2FfZHJpdmVyX3dyYXBwZXJfdmVyaWZ5X21lc3NhZ2UoCisgICAgICAgICAgICAmc2xvdC0+YXR0ciwgc2xvdC0+a2V5LmRhdGEsIHNsb3QtPmtleS5ieXRlcywKKyAgICAgICAgICAgIGFsZywgaW5wdXQsIGlucHV0X2xlbmd0aCwKKyAgICAgICAgICAgIHNpZ25hdHVyZSwgc2lnbmF0dXJlX2xlbmd0aCk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgc3RhdHVzID0gcHNhX2RyaXZlcl93cmFwcGVyX3ZlcmlmeV9oYXNoKAorICAgICAgICAgICAgJnNsb3QtPmF0dHIsIHNsb3QtPmtleS5kYXRhLCBzbG90LT5rZXkuYnl0ZXMsCisgICAgICAgICAgICBhbGcsIGlucHV0LCBpbnB1dF9sZW5ndGgsCisgICAgICAgICAgICBzaWduYXR1cmUsIHNpZ25hdHVyZV9sZW5ndGgpOworICAgIH0KKworICAgIHVubG9ja19zdGF0dXMgPSBwc2FfdW5yZWdpc3Rlcl9yZWFkX3VuZGVyX211dGV4KHNsb3QpOworCisgICAgcmV0dXJuIChzdGF0dXMgPT0gUFNBX1NVQ0NFU1MpID8gdW5sb2NrX3N0YXR1cyA6IHN0YXR1czsKKworfQorCitwc2Ffc3RhdHVzX3QgcHNhX3NpZ25fbWVzc2FnZV9idWlsdGluKAorICAgIGNvbnN0IHBzYV9rZXlfYXR0cmlidXRlc190ICphdHRyaWJ1dGVzLAorICAgIGNvbnN0IHVpbnQ4X3QgKmtleV9idWZmZXIsCisgICAgc2l6ZV90IGtleV9idWZmZXJfc2l6ZSwKKyAgICBwc2FfYWxnb3JpdGhtX3QgYWxnLAorICAgIGNvbnN0IHVpbnQ4X3QgKmlucHV0LAorICAgIHNpemVfdCBpbnB1dF9sZW5ndGgsCisgICAgdWludDhfdCAqc2lnbmF0dXJlLAorICAgIHNpemVfdCBzaWduYXR1cmVfc2l6ZSwKKyAgICBzaXplX3QgKnNpZ25hdHVyZV9sZW5ndGgpCit7CisgICAgcHNhX3N0YXR1c190IHN0YXR1cyA9IFBTQV9FUlJPUl9DT1JSVVBUSU9OX0RFVEVDVEVEOworCisgICAgaWYgKFBTQV9BTEdfSVNfU0lHTl9IQVNIKGFsZykpIHsKKyAgICAgICAgc2l6ZV90IGhhc2hfbGVuZ3RoOworICAgICAgICB1aW50OF90IGhhc2hbUFNBX0hBU0hfTUFYX1NJWkVdOworCisgICAgICAgIHN0YXR1cyA9IHBzYV9kcml2ZXJfd3JhcHBlcl9oYXNoX2NvbXB1dGUoCisgICAgICAgICAgICBQU0FfQUxHX1NJR05fR0VUX0hBU0goYWxnKSwKKyAgICAgICAgICAgIGlucHV0LCBpbnB1dF9sZW5ndGgsCisgICAgICAgICAgICBoYXNoLCBzaXplb2YoaGFzaCksICZoYXNoX2xlbmd0aCk7CisKKyAgICAgICAgaWYgKHN0YXR1cyAhPSBQU0FfU1VDQ0VTUykgeworICAgICAgICAgICAgcmV0dXJuIHN0YXR1czsKKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiBwc2FfZHJpdmVyX3dyYXBwZXJfc2lnbl9oYXNoKAorICAgICAgICAgICAgYXR0cmlidXRlcywga2V5X2J1ZmZlciwga2V5X2J1ZmZlcl9zaXplLAorICAgICAgICAgICAgYWxnLCBoYXNoLCBoYXNoX2xlbmd0aCwKKyAgICAgICAgICAgIHNpZ25hdHVyZSwgc2lnbmF0dXJlX3NpemUsIHNpZ25hdHVyZV9sZW5ndGgpOworICAgIH0KKworICAgIHJldHVybiBQU0FfRVJST1JfTk9UX1NVUFBPUlRFRDsKK30KKworcHNhX3N0YXR1c190IHBzYV9zaWduX21lc3NhZ2UobWJlZHRsc19zdmNfa2V5X2lkX3Qga2V5LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHNhX2FsZ29yaXRobV90IGFsZywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVpbnQ4X3QgKmlucHV0X2V4dGVybmFsLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IGlucHV0X2xlbmd0aCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQ4X3QgKnNpZ25hdHVyZV9leHRlcm5hbCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBzaWduYXR1cmVfc2l6ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCAqc2lnbmF0dXJlX2xlbmd0aCkKK3sKKyAgICBwc2Ffc3RhdHVzX3Qgc3RhdHVzID0gUFNBX0VSUk9SX0NPUlJVUFRJT05fREVURUNURUQ7CisgICAgTE9DQUxfSU5QVVRfREVDTEFSRShpbnB1dF9leHRlcm5hbCwgaW5wdXQpOworICAgIExPQ0FMX09VVFBVVF9ERUNMQVJFKHNpZ25hdHVyZV9leHRlcm5hbCwgc2lnbmF0dXJlKTsKKworICAgIExPQ0FMX0lOUFVUX0FMTE9DKGlucHV0X2V4dGVybmFsLCBpbnB1dF9sZW5ndGgsIGlucHV0KTsKKyAgICBMT0NBTF9PVVRQVVRfQUxMT0Moc2lnbmF0dXJlX2V4dGVybmFsLCBzaWduYXR1cmVfc2l6ZSwgc2lnbmF0dXJlKTsKKyAgICBzdGF0dXMgPSBwc2Ffc2lnbl9pbnRlcm5hbChrZXksIDEsIGFsZywgaW5wdXQsIGlucHV0X2xlbmd0aCwgc2lnbmF0dXJlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpZ25hdHVyZV9zaXplLCBzaWduYXR1cmVfbGVuZ3RoKTsKKworI2lmICFkZWZpbmVkKE1CRURUTFNfUFNBX0FTU1VNRV9FWENMVVNJVkVfQlVGRkVSUykKK2V4aXQ6CisjZW5kaWYKKyAgICBMT0NBTF9JTlBVVF9GUkVFKGlucHV0X2V4dGVybmFsLCBpbnB1dCk7CisgICAgTE9DQUxfT1VUUFVUX0ZSRUUoc2lnbmF0dXJlX2V4dGVybmFsLCBzaWduYXR1cmUpOworICAgIHJldHVybiBzdGF0dXM7Cit9CisKK3BzYV9zdGF0dXNfdCBwc2FfdmVyaWZ5X21lc3NhZ2VfYnVpbHRpbigKKyAgICBjb25zdCBwc2Ffa2V5X2F0dHJpYnV0ZXNfdCAqYXR0cmlidXRlcywKKyAgICBjb25zdCB1aW50OF90ICprZXlfYnVmZmVyLAorICAgIHNpemVfdCBrZXlfYnVmZmVyX3NpemUsCisgICAgcHNhX2FsZ29yaXRobV90IGFsZywKKyAgICBjb25zdCB1aW50OF90ICppbnB1dCwKKyAgICBzaXplX3QgaW5wdXRfbGVuZ3RoLAorICAgIGNvbnN0IHVpbnQ4X3QgKnNpZ25hdHVyZSwKKyAgICBzaXplX3Qgc2lnbmF0dXJlX2xlbmd0aCkKK3sKKyAgICBwc2Ffc3RhdHVzX3Qgc3RhdHVzID0gUFNBX0VSUk9SX0NPUlJVUFRJT05fREVURUNURUQ7CisKKyAgICBpZiAoUFNBX0FMR19JU19TSUdOX0hBU0goYWxnKSkgeworICAgICAgICBzaXplX3QgaGFzaF9sZW5ndGg7CisgICAgICAgIHVpbnQ4X3QgaGFzaFtQU0FfSEFTSF9NQVhfU0laRV07CisKKyAgICAgICAgc3RhdHVzID0gcHNhX2RyaXZlcl93cmFwcGVyX2hhc2hfY29tcHV0ZSgKKyAgICAgICAgICAgIFBTQV9BTEdfU0lHTl9HRVRfSEFTSChhbGcpLAorICAgICAgICAgICAgaW5wdXQsIGlucHV0X2xlbmd0aCwKKyAgICAgICAgICAgIGhhc2gsIHNpemVvZihoYXNoKSwgJmhhc2hfbGVuZ3RoKTsKKworICAgICAgICBpZiAoc3RhdHVzICE9IFBTQV9TVUNDRVNTKSB7CisgICAgICAgICAgICByZXR1cm4gc3RhdHVzOworICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIHBzYV9kcml2ZXJfd3JhcHBlcl92ZXJpZnlfaGFzaCgKKyAgICAgICAgICAgIGF0dHJpYnV0ZXMsIGtleV9idWZmZXIsIGtleV9idWZmZXJfc2l6ZSwKKyAgICAgICAgICAgIGFsZywgaGFzaCwgaGFzaF9sZW5ndGgsCisgICAgICAgICAgICBzaWduYXR1cmUsIHNpZ25hdHVyZV9sZW5ndGgpOworICAgIH0KKworICAgIHJldHVybiBQU0FfRVJST1JfTk9UX1NVUFBPUlRFRDsKK30KKworcHNhX3N0YXR1c190IHBzYV92ZXJpZnlfbWVzc2FnZShtYmVkdGxzX3N2Y19rZXlfaWRfdCBrZXksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBzYV9hbGdvcml0aG1fdCBhbGcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVpbnQ4X3QgKmlucHV0X2V4dGVybmFsLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgaW5wdXRfbGVuZ3RoLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1aW50OF90ICpzaWduYXR1cmVfZXh0ZXJuYWwsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBzaWduYXR1cmVfbGVuZ3RoKQoreworICAgIHBzYV9zdGF0dXNfdCBzdGF0dXMgPSBQU0FfRVJST1JfQ09SUlVQVElPTl9ERVRFQ1RFRDsKKyAgICBMT0NBTF9JTlBVVF9ERUNMQVJFKGlucHV0X2V4dGVybmFsLCBpbnB1dCk7CisgICAgTE9DQUxfSU5QVVRfREVDTEFSRShzaWduYXR1cmVfZXh0ZXJuYWwsIHNpZ25hdHVyZSk7CisKKyAgICBMT0NBTF9JTlBVVF9BTExPQyhpbnB1dF9leHRlcm5hbCwgaW5wdXRfbGVuZ3RoLCBpbnB1dCk7CisgICAgTE9DQUxfSU5QVVRfQUxMT0Moc2lnbmF0dXJlX2V4dGVybmFsLCBzaWduYXR1cmVfbGVuZ3RoLCBzaWduYXR1cmUpOworICAgIHN0YXR1cyA9IHBzYV92ZXJpZnlfaW50ZXJuYWwoa2V5LCAxLCBhbGcsIGlucHV0LCBpbnB1dF9sZW5ndGgsIHNpZ25hdHVyZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpZ25hdHVyZV9sZW5ndGgpOworCisjaWYgIWRlZmluZWQoTUJFRFRMU19QU0FfQVNTVU1FX0VYQ0xVU0lWRV9CVUZGRVJTKQorZXhpdDoKKyNlbmRpZgorICAgIExPQ0FMX0lOUFVUX0ZSRUUoaW5wdXRfZXh0ZXJuYWwsIGlucHV0KTsKKyAgICBMT0NBTF9JTlBVVF9GUkVFKHNpZ25hdHVyZV9leHRlcm5hbCwgc2lnbmF0dXJlKTsKKworICAgIHJldHVybiBzdGF0dXM7Cit9CisKK3BzYV9zdGF0dXNfdCBwc2Ffc2lnbl9oYXNoX2J1aWx0aW4oCisgICAgY29uc3QgcHNhX2tleV9hdHRyaWJ1dGVzX3QgKmF0dHJpYnV0ZXMsCisgICAgY29uc3QgdWludDhfdCAqa2V5X2J1ZmZlciwgc2l6ZV90IGtleV9idWZmZXJfc2l6ZSwKKyAgICBwc2FfYWxnb3JpdGhtX3QgYWxnLCBjb25zdCB1aW50OF90ICpoYXNoLCBzaXplX3QgaGFzaF9sZW5ndGgsCisgICAgdWludDhfdCAqc2lnbmF0dXJlLCBzaXplX3Qgc2lnbmF0dXJlX3NpemUsIHNpemVfdCAqc2lnbmF0dXJlX2xlbmd0aCkKK3sKKyAgICBpZiAoYXR0cmlidXRlcy0+dHlwZSA9PSBQU0FfS0VZX1RZUEVfUlNBX0tFWV9QQUlSKSB7CisgICAgICAgIGlmIChQU0FfQUxHX0lTX1JTQV9QS0NTMVYxNV9TSUdOKGFsZykgfHwKKyAgICAgICAgICAgIFBTQV9BTEdfSVNfUlNBX1BTUyhhbGcpKSB7CisjaWYgZGVmaW5lZChNQkVEVExTX1BTQV9CVUlMVElOX0FMR19SU0FfUEtDUzFWMTVfU0lHTikgfHwgXAorICAgICAgICAgICAgZGVmaW5lZChNQkVEVExTX1BTQV9CVUlMVElOX0FMR19SU0FfUFNTKQorICAgICAgICAgICAgcmV0dXJuIG1iZWR0bHNfcHNhX3JzYV9zaWduX2hhc2goCisgICAgICAgICAgICAgICAgYXR0cmlidXRlcywKKyAgICAgICAgICAgICAgICBrZXlfYnVmZmVyLCBrZXlfYnVmZmVyX3NpemUsCisgICAgICAgICAgICAgICAgYWxnLCBoYXNoLCBoYXNoX2xlbmd0aCwKKyAgICAgICAgICAgICAgICBzaWduYXR1cmUsIHNpZ25hdHVyZV9zaXplLCBzaWduYXR1cmVfbGVuZ3RoKTsKKyNlbmRpZiAvKiBkZWZpbmVkKE1CRURUTFNfUFNBX0JVSUxUSU5fQUxHX1JTQV9QS0NTMVYxNV9TSUdOKSB8fAorICAgICAgICAqIGRlZmluZWQoTUJFRFRMU19QU0FfQlVJTFRJTl9BTEdfUlNBX1BTUykgKi8KKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHJldHVybiBQU0FfRVJST1JfSU5WQUxJRF9BUkdVTUVOVDsKKyAgICAgICAgfQorICAgIH0gZWxzZSBpZiAoUFNBX0tFWV9UWVBFX0lTX0VDQyhhdHRyaWJ1dGVzLT50eXBlKSkgeworICAgICAgICBpZiAoUFNBX0FMR19JU19FQ0RTQShhbGcpKSB7CisjaWYgZGVmaW5lZChNQkVEVExTX1BTQV9CVUlMVElOX0FMR19FQ0RTQSkgfHwgXAorICAgICAgICAgICAgZGVmaW5lZChNQkVEVExTX1BTQV9CVUlMVElOX0FMR19ERVRFUk1JTklTVElDX0VDRFNBKQorICAgICAgICAgICAgcmV0dXJuIG1iZWR0bHNfcHNhX2VjZHNhX3NpZ25faGFzaCgKKyAgICAgICAgICAgICAgICBhdHRyaWJ1dGVzLAorICAgICAgICAgICAgICAgIGtleV9idWZmZXIsIGtleV9idWZmZXJfc2l6ZSwKKyAgICAgICAgICAgICAgICBhbGcsIGhhc2gsIGhhc2hfbGVuZ3RoLAorICAgICAgICAgICAgICAgIHNpZ25hdHVyZSwgc2lnbmF0dXJlX3NpemUsIHNpZ25hdHVyZV9sZW5ndGgpOworI2VuZGlmIC8qIGRlZmluZWQoTUJFRFRMU19QU0FfQlVJTFRJTl9BTEdfRUNEU0EpIHx8CisgICAgICAgICogZGVmaW5lZChNQkVEVExTX1BTQV9CVUlMVElOX0FMR19ERVRFUk1JTklTVElDX0VDRFNBKSAqLworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgcmV0dXJuIFBTQV9FUlJPUl9JTlZBTElEX0FSR1VNRU5UOworICAgICAgICB9CisgICAgfQorCisgICAgKHZvaWQpIGtleV9idWZmZXI7CisgICAgKHZvaWQpIGtleV9idWZmZXJfc2l6ZTsKKyAgICAodm9pZCkgaGFzaDsKKyAgICAodm9pZCkgaGFzaF9sZW5ndGg7CisgICAgKHZvaWQpIHNpZ25hdHVyZTsKKyAgICAodm9pZCkgc2lnbmF0dXJlX3NpemU7CisgICAgKHZvaWQpIHNpZ25hdHVyZV9sZW5ndGg7CisKKyAgICByZXR1cm4gUFNBX0VSUk9SX05PVF9TVVBQT1JURUQ7Cit9CisKK3BzYV9zdGF0dXNfdCBwc2Ffc2lnbl9oYXNoKG1iZWR0bHNfc3ZjX2tleV9pZF90IGtleSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIHBzYV9hbGdvcml0aG1fdCBhbGcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1aW50OF90ICpoYXNoX2V4dGVybmFsLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IGhhc2hfbGVuZ3RoLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDhfdCAqc2lnbmF0dXJlX2V4dGVybmFsLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IHNpZ25hdHVyZV9zaXplLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90ICpzaWduYXR1cmVfbGVuZ3RoKQoreworICAgIHBzYV9zdGF0dXNfdCBzdGF0dXMgPSBQU0FfRVJST1JfQ09SUlVQVElPTl9ERVRFQ1RFRDsKKyAgICBMT0NBTF9JTlBVVF9ERUNMQVJFKGhhc2hfZXh0ZXJuYWwsIGhhc2gpOworICAgIExPQ0FMX09VVFBVVF9ERUNMQVJFKHNpZ25hdHVyZV9leHRlcm5hbCwgc2lnbmF0dXJlKTsKKworICAgIExPQ0FMX0lOUFVUX0FMTE9DKGhhc2hfZXh0ZXJuYWwsIGhhc2hfbGVuZ3RoLCBoYXNoKTsKKyAgICBMT0NBTF9PVVRQVVRfQUxMT0Moc2lnbmF0dXJlX2V4dGVybmFsLCBzaWduYXR1cmVfc2l6ZSwgc2lnbmF0dXJlKTsKKyAgICBzdGF0dXMgPSBwc2Ffc2lnbl9pbnRlcm5hbChrZXksIDAsIGFsZywgaGFzaCwgaGFzaF9sZW5ndGgsIHNpZ25hdHVyZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaWduYXR1cmVfc2l6ZSwgc2lnbmF0dXJlX2xlbmd0aCk7CisKKyNpZiAhZGVmaW5lZChNQkVEVExTX1BTQV9BU1NVTUVfRVhDTFVTSVZFX0JVRkZFUlMpCitleGl0OgorI2VuZGlmCisgICAgTE9DQUxfSU5QVVRfRlJFRShoYXNoX2V4dGVybmFsLCBoYXNoKTsKKyAgICBMT0NBTF9PVVRQVVRfRlJFRShzaWduYXR1cmVfZXh0ZXJuYWwsIHNpZ25hdHVyZSk7CisKKyAgICByZXR1cm4gc3RhdHVzOworfQorCitwc2Ffc3RhdHVzX3QgcHNhX3ZlcmlmeV9oYXNoX2J1aWx0aW4oCisgICAgY29uc3QgcHNhX2tleV9hdHRyaWJ1dGVzX3QgKmF0dHJpYnV0ZXMsCisgICAgY29uc3QgdWludDhfdCAqa2V5X2J1ZmZlciwgc2l6ZV90IGtleV9idWZmZXJfc2l6ZSwKKyAgICBwc2FfYWxnb3JpdGhtX3QgYWxnLCBjb25zdCB1aW50OF90ICpoYXNoLCBzaXplX3QgaGFzaF9sZW5ndGgsCisgICAgY29uc3QgdWludDhfdCAqc2lnbmF0dXJlLCBzaXplX3Qgc2lnbmF0dXJlX2xlbmd0aCkKK3sKKyAgICBpZiAoUFNBX0tFWV9UWVBFX0lTX1JTQShhdHRyaWJ1dGVzLT50eXBlKSkgeworICAgICAgICBpZiAoUFNBX0FMR19JU19SU0FfUEtDUzFWMTVfU0lHTihhbGcpIHx8CisgICAgICAgICAgICBQU0FfQUxHX0lTX1JTQV9QU1MoYWxnKSkgeworI2lmIGRlZmluZWQoTUJFRFRMU19QU0FfQlVJTFRJTl9BTEdfUlNBX1BLQ1MxVjE1X1NJR04pIHx8IFwKKyAgICAgICAgICAgIGRlZmluZWQoTUJFRFRMU19QU0FfQlVJTFRJTl9BTEdfUlNBX1BTUykKKyAgICAgICAgICAgIHJldHVybiBtYmVkdGxzX3BzYV9yc2FfdmVyaWZ5X2hhc2goCisgICAgICAgICAgICAgICAgYXR0cmlidXRlcywKKyAgICAgICAgICAgICAgICBrZXlfYnVmZmVyLCBrZXlfYnVmZmVyX3NpemUsCisgICAgICAgICAgICAgICAgYWxnLCBoYXNoLCBoYXNoX2xlbmd0aCwKKyAgICAgICAgICAgICAgICBzaWduYXR1cmUsIHNpZ25hdHVyZV9sZW5ndGgpOworI2VuZGlmIC8qIGRlZmluZWQoTUJFRFRMU19QU0FfQlVJTFRJTl9BTEdfUlNBX1BLQ1MxVjE1X1NJR04pIHx8CisgICAgICAgICogZGVmaW5lZChNQkVEVExTX1BTQV9CVUlMVElOX0FMR19SU0FfUFNTKSAqLworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgcmV0dXJuIFBTQV9FUlJPUl9JTlZBTElEX0FSR1VNRU5UOworICAgICAgICB9CisgICAgfSBlbHNlIGlmIChQU0FfS0VZX1RZUEVfSVNfRUNDKGF0dHJpYnV0ZXMtPnR5cGUpKSB7CisgICAgICAgIGlmIChQU0FfQUxHX0lTX0VDRFNBKGFsZykpIHsKKyNpZiBkZWZpbmVkKE1CRURUTFNfUFNBX0JVSUxUSU5fQUxHX0VDRFNBKSB8fCBcCisgICAgICAgICAgICBkZWZpbmVkKE1CRURUTFNfUFNBX0JVSUxUSU5fQUxHX0RFVEVSTUlOSVNUSUNfRUNEU0EpCisgICAgICAgICAgICByZXR1cm4gbWJlZHRsc19wc2FfZWNkc2FfdmVyaWZ5X2hhc2goCisgICAgICAgICAgICAgICAgYXR0cmlidXRlcywKKyAgICAgICAgICAgICAgICBrZXlfYnVmZmVyLCBrZXlfYnVmZmVyX3NpemUsCisgICAgICAgICAgICAgICAgYWxnLCBoYXNoLCBoYXNoX2xlbmd0aCwKKyAgICAgICAgICAgICAgICBzaWduYXR1cmUsIHNpZ25hdHVyZV9sZW5ndGgpOworI2VuZGlmIC8qIGRlZmluZWQoTUJFRFRMU19QU0FfQlVJTFRJTl9BTEdfRUNEU0EpIHx8CisgICAgICAgICogZGVmaW5lZChNQkVEVExTX1BTQV9CVUlMVElOX0FMR19ERVRFUk1JTklTVElDX0VDRFNBKSAqLworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgcmV0dXJuIFBTQV9FUlJPUl9JTlZBTElEX0FSR1VNRU5UOworICAgICAgICB9CisgICAgfQorCisgICAgKHZvaWQpIGtleV9idWZmZXI7CisgICAgKHZvaWQpIGtleV9idWZmZXJfc2l6ZTsKKyAgICAodm9pZCkgaGFzaDsKKyAgICAodm9pZCkgaGFzaF9sZW5ndGg7CisgICAgKHZvaWQpIHNpZ25hdHVyZTsKKyAgICAodm9pZCkgc2lnbmF0dXJlX2xlbmd0aDsKKworICAgIHJldHVybiBQU0FfRVJST1JfTk9UX1NVUFBPUlRFRDsKK30KKworcHNhX3N0YXR1c190IHBzYV92ZXJpZnlfaGFzaChtYmVkdGxzX3N2Y19rZXlfaWRfdCBrZXksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBzYV9hbGdvcml0aG1fdCBhbGcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVpbnQ4X3QgKmhhc2hfZXh0ZXJuYWwsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBoYXNoX2xlbmd0aCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdWludDhfdCAqc2lnbmF0dXJlX2V4dGVybmFsLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3Qgc2lnbmF0dXJlX2xlbmd0aCkKK3sKKyAgICBwc2Ffc3RhdHVzX3Qgc3RhdHVzID0gUFNBX0VSUk9SX0NPUlJVUFRJT05fREVURUNURUQ7CisgICAgTE9DQUxfSU5QVVRfREVDTEFSRShoYXNoX2V4dGVybmFsLCBoYXNoKTsKKyAgICBMT0NBTF9JTlBVVF9ERUNMQVJFKHNpZ25hdHVyZV9leHRlcm5hbCwgc2lnbmF0dXJlKTsKKworICAgIExPQ0FMX0lOUFVUX0FMTE9DKGhhc2hfZXh0ZXJuYWwsIGhhc2hfbGVuZ3RoLCBoYXNoKTsKKyAgICBMT0NBTF9JTlBVVF9BTExPQyhzaWduYXR1cmVfZXh0ZXJuYWwsIHNpZ25hdHVyZV9sZW5ndGgsIHNpZ25hdHVyZSk7CisgICAgc3RhdHVzID0gcHNhX3ZlcmlmeV9pbnRlcm5hbChrZXksIDAsIGFsZywgaGFzaCwgaGFzaF9sZW5ndGgsIHNpZ25hdHVyZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpZ25hdHVyZV9sZW5ndGgpOworCisjaWYgIWRlZmluZWQoTUJFRFRMU19QU0FfQVNTVU1FX0VYQ0xVU0lWRV9CVUZGRVJTKQorZXhpdDoKKyNlbmRpZgorICAgIExPQ0FMX0lOUFVUX0ZSRUUoaGFzaF9leHRlcm5hbCwgaGFzaCk7CisgICAgTE9DQUxfSU5QVVRfRlJFRShzaWduYXR1cmVfZXh0ZXJuYWwsIHNpZ25hdHVyZSk7CisKKyAgICByZXR1cm4gc3RhdHVzOworfQorCitwc2Ffc3RhdHVzX3QgcHNhX2FzeW1tZXRyaWNfZW5jcnlwdChtYmVkdGxzX3N2Y19rZXlfaWRfdCBrZXksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwc2FfYWxnb3JpdGhtX3QgYWxnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdWludDhfdCAqaW5wdXRfZXh0ZXJuYWwsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgaW5wdXRfbGVuZ3RoLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdWludDhfdCAqc2FsdF9leHRlcm5hbCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBzYWx0X2xlbmd0aCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQ4X3QgKm91dHB1dF9leHRlcm5hbCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBvdXRwdXRfc2l6ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCAqb3V0cHV0X2xlbmd0aCkKK3sKKyAgICBwc2Ffc3RhdHVzX3Qgc3RhdHVzID0gUFNBX0VSUk9SX0NPUlJVUFRJT05fREVURUNURUQ7CisgICAgcHNhX3N0YXR1c190IHVubG9ja19zdGF0dXMgPSBQU0FfRVJST1JfQ09SUlVQVElPTl9ERVRFQ1RFRDsKKyAgICBwc2Ffa2V5X3Nsb3RfdCAqc2xvdDsKKworICAgIExPQ0FMX0lOUFVUX0RFQ0xBUkUoaW5wdXRfZXh0ZXJuYWwsIGlucHV0KTsKKyAgICBMT0NBTF9JTlBVVF9ERUNMQVJFKHNhbHRfZXh0ZXJuYWwsIHNhbHQpOworICAgIExPQ0FMX09VVFBVVF9ERUNMQVJFKG91dHB1dF9leHRlcm5hbCwgb3V0cHV0KTsKKworICAgICh2b2lkKSBpbnB1dDsKKyAgICAodm9pZCkgaW5wdXRfbGVuZ3RoOworICAgICh2b2lkKSBzYWx0OworICAgICh2b2lkKSBvdXRwdXQ7CisgICAgKHZvaWQpIG91dHB1dF9zaXplOworCisgICAgKm91dHB1dF9sZW5ndGggPSAwOworCisgICAgaWYgKCFQU0FfQUxHX0lTX1JTQV9PQUVQKGFsZykgJiYgc2FsdF9sZW5ndGggIT0gMCkgeworICAgICAgICByZXR1cm4gUFNBX0VSUk9SX0lOVkFMSURfQVJHVU1FTlQ7CisgICAgfQorCisgICAgc3RhdHVzID0gcHNhX2dldF9hbmRfbG9ja19rZXlfc2xvdF93aXRoX3BvbGljeSgKKyAgICAgICAga2V5LCAmc2xvdCwgUFNBX0tFWV9VU0FHRV9FTkNSWVBULCBhbGcpOworICAgIGlmIChzdGF0dXMgIT0gUFNBX1NVQ0NFU1MpIHsKKyAgICAgICAgcmV0dXJuIHN0YXR1czsKKyAgICB9CisgICAgaWYgKCEoUFNBX0tFWV9UWVBFX0lTX1BVQkxJQ19LRVkoc2xvdC0+YXR0ci50eXBlKSB8fAorICAgICAgICAgIFBTQV9LRVlfVFlQRV9JU19LRVlfUEFJUihzbG90LT5hdHRyLnR5cGUpKSkgeworICAgICAgICBzdGF0dXMgPSBQU0FfRVJST1JfSU5WQUxJRF9BUkdVTUVOVDsKKyAgICAgICAgZ290byBleGl0OworICAgIH0KKworICAgIExPQ0FMX0lOUFVUX0FMTE9DKGlucHV0X2V4dGVybmFsLCBpbnB1dF9sZW5ndGgsIGlucHV0KTsKKyAgICBMT0NBTF9JTlBVVF9BTExPQyhzYWx0X2V4dGVybmFsLCBzYWx0X2xlbmd0aCwgc2FsdCk7CisgICAgTE9DQUxfT1VUUFVUX0FMTE9DKG91dHB1dF9leHRlcm5hbCwgb3V0cHV0X3NpemUsIG91dHB1dCk7CisKKyAgICBzdGF0dXMgPSBwc2FfZHJpdmVyX3dyYXBwZXJfYXN5bW1ldHJpY19lbmNyeXB0KAorICAgICAgICAmc2xvdC0+YXR0ciwgc2xvdC0+a2V5LmRhdGEsIHNsb3QtPmtleS5ieXRlcywKKyAgICAgICAgYWxnLCBpbnB1dCwgaW5wdXRfbGVuZ3RoLCBzYWx0LCBzYWx0X2xlbmd0aCwKKyAgICAgICAgb3V0cHV0LCBvdXRwdXRfc2l6ZSwgb3V0cHV0X2xlbmd0aCk7CitleGl0OgorICAgIHVubG9ja19zdGF0dXMgPSBwc2FfdW5yZWdpc3Rlcl9yZWFkX3VuZGVyX211dGV4KHNsb3QpOworCisgICAgTE9DQUxfSU5QVVRfRlJFRShpbnB1dF9leHRlcm5hbCwgaW5wdXQpOworICAgIExPQ0FMX0lOUFVUX0ZSRUUoc2FsdF9leHRlcm5hbCwgc2FsdCk7CisgICAgTE9DQUxfT1VUUFVUX0ZSRUUob3V0cHV0X2V4dGVybmFsLCBvdXRwdXQpOworCisgICAgcmV0dXJuIChzdGF0dXMgPT0gUFNBX1NVQ0NFU1MpID8gdW5sb2NrX3N0YXR1cyA6IHN0YXR1czsKK30KKworcHNhX3N0YXR1c190IHBzYV9hc3ltbWV0cmljX2RlY3J5cHQobWJlZHRsc19zdmNfa2V5X2lkX3Qga2V5LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHNhX2FsZ29yaXRobV90IGFsZywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVpbnQ4X3QgKmlucHV0X2V4dGVybmFsLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IGlucHV0X2xlbmd0aCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVpbnQ4X3QgKnNhbHRfZXh0ZXJuYWwsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3Qgc2FsdF9sZW5ndGgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50OF90ICpvdXRwdXRfZXh0ZXJuYWwsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3Qgb3V0cHV0X3NpemUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgKm91dHB1dF9sZW5ndGgpCit7CisgICAgcHNhX3N0YXR1c190IHN0YXR1cyA9IFBTQV9FUlJPUl9DT1JSVVBUSU9OX0RFVEVDVEVEOworICAgIHBzYV9zdGF0dXNfdCB1bmxvY2tfc3RhdHVzID0gUFNBX0VSUk9SX0NPUlJVUFRJT05fREVURUNURUQ7CisgICAgcHNhX2tleV9zbG90X3QgKnNsb3Q7CisKKyAgICBMT0NBTF9JTlBVVF9ERUNMQVJFKGlucHV0X2V4dGVybmFsLCBpbnB1dCk7CisgICAgTE9DQUxfSU5QVVRfREVDTEFSRShzYWx0X2V4dGVybmFsLCBzYWx0KTsKKyAgICBMT0NBTF9PVVRQVVRfREVDTEFSRShvdXRwdXRfZXh0ZXJuYWwsIG91dHB1dCk7CisKKyAgICAodm9pZCkgaW5wdXQ7CisgICAgKHZvaWQpIGlucHV0X2xlbmd0aDsKKyAgICAodm9pZCkgc2FsdDsKKyAgICAodm9pZCkgb3V0cHV0OworICAgICh2b2lkKSBvdXRwdXRfc2l6ZTsKKworICAgICpvdXRwdXRfbGVuZ3RoID0gMDsKKworICAgIGlmICghUFNBX0FMR19JU19SU0FfT0FFUChhbGcpICYmIHNhbHRfbGVuZ3RoICE9IDApIHsKKyAgICAgICAgcmV0dXJuIFBTQV9FUlJPUl9JTlZBTElEX0FSR1VNRU5UOworICAgIH0KKworICAgIHN0YXR1cyA9IHBzYV9nZXRfYW5kX2xvY2tfa2V5X3Nsb3Rfd2l0aF9wb2xpY3koCisgICAgICAgIGtleSwgJnNsb3QsIFBTQV9LRVlfVVNBR0VfREVDUllQVCwgYWxnKTsKKyAgICBpZiAoc3RhdHVzICE9IFBTQV9TVUNDRVNTKSB7CisgICAgICAgIHJldHVybiBzdGF0dXM7CisgICAgfQorICAgIGlmICghUFNBX0tFWV9UWVBFX0lTX0tFWV9QQUlSKHNsb3QtPmF0dHIudHlwZSkpIHsKKyAgICAgICAgc3RhdHVzID0gUFNBX0VSUk9SX0lOVkFMSURfQVJHVU1FTlQ7CisgICAgICAgIGdvdG8gZXhpdDsKKyAgICB9CisKKyAgICBMT0NBTF9JTlBVVF9BTExPQyhpbnB1dF9leHRlcm5hbCwgaW5wdXRfbGVuZ3RoLCBpbnB1dCk7CisgICAgTE9DQUxfSU5QVVRfQUxMT0Moc2FsdF9leHRlcm5hbCwgc2FsdF9sZW5ndGgsIHNhbHQpOworICAgIExPQ0FMX09VVFBVVF9BTExPQyhvdXRwdXRfZXh0ZXJuYWwsIG91dHB1dF9zaXplLCBvdXRwdXQpOworCisgICAgc3RhdHVzID0gcHNhX2RyaXZlcl93cmFwcGVyX2FzeW1tZXRyaWNfZGVjcnlwdCgKKyAgICAgICAgJnNsb3QtPmF0dHIsIHNsb3QtPmtleS5kYXRhLCBzbG90LT5rZXkuYnl0ZXMsCisgICAgICAgIGFsZywgaW5wdXQsIGlucHV0X2xlbmd0aCwgc2FsdCwgc2FsdF9sZW5ndGgsCisgICAgICAgIG91dHB1dCwgb3V0cHV0X3NpemUsIG91dHB1dF9sZW5ndGgpOworCitleGl0OgorICAgIHVubG9ja19zdGF0dXMgPSBwc2FfdW5yZWdpc3Rlcl9yZWFkX3VuZGVyX211dGV4KHNsb3QpOworCisgICAgTE9DQUxfSU5QVVRfRlJFRShpbnB1dF9leHRlcm5hbCwgaW5wdXQpOworICAgIExPQ0FMX0lOUFVUX0ZSRUUoc2FsdF9leHRlcm5hbCwgc2FsdCk7CisgICAgTE9DQUxfT1VUUFVUX0ZSRUUob3V0cHV0X2V4dGVybmFsLCBvdXRwdXQpOworCisgICAgcmV0dXJuIChzdGF0dXMgPT0gUFNBX1NVQ0NFU1MpID8gdW5sb2NrX3N0YXR1cyA6IHN0YXR1czsKK30KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisvKiBBc3ltbWV0cmljIGludGVycnVwdGlibGUgY3J5cHRvZ3JhcGh5ICAgICAgICAgICAgICAgICAgICAgICAgKi8KKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCitzdGF0aWMgdWludDMyX3QgcHNhX2ludGVycnVwdGlibGVfbWF4X29wcyA9IFBTQV9JTlRFUlJVUFRJQkxFX01BWF9PUFNfVU5MSU1JVEVEOworCit2b2lkIHBzYV9pbnRlcnJ1cHRpYmxlX3NldF9tYXhfb3BzKHVpbnQzMl90IG1heF9vcHMpCit7CisgICAgcHNhX2ludGVycnVwdGlibGVfbWF4X29wcyA9IG1heF9vcHM7Cit9CisKK3VpbnQzMl90IHBzYV9pbnRlcnJ1cHRpYmxlX2dldF9tYXhfb3BzKHZvaWQpCit7CisgICAgcmV0dXJuIHBzYV9pbnRlcnJ1cHRpYmxlX21heF9vcHM7Cit9CisKK3VpbnQzMl90IHBzYV9zaWduX2hhc2hfZ2V0X251bV9vcHMoCisgICAgY29uc3QgcHNhX3NpZ25faGFzaF9pbnRlcnJ1cHRpYmxlX29wZXJhdGlvbl90ICpvcGVyYXRpb24pCit7CisgICAgcmV0dXJuIG9wZXJhdGlvbi0+bnVtX29wczsKK30KKwordWludDMyX3QgcHNhX3ZlcmlmeV9oYXNoX2dldF9udW1fb3BzKAorICAgIGNvbnN0IHBzYV92ZXJpZnlfaGFzaF9pbnRlcnJ1cHRpYmxlX29wZXJhdGlvbl90ICpvcGVyYXRpb24pCit7CisgICAgcmV0dXJuIG9wZXJhdGlvbi0+bnVtX29wczsKK30KKworc3RhdGljIHBzYV9zdGF0dXNfdCBwc2Ffc2lnbl9oYXNoX2Fib3J0X2ludGVybmFsKAorICAgIHBzYV9zaWduX2hhc2hfaW50ZXJydXB0aWJsZV9vcGVyYXRpb25fdCAqb3BlcmF0aW9uKQoreworICAgIGlmIChvcGVyYXRpb24tPmlkID09IDApIHsKKyAgICAgICAgLyogVGhlIG9iamVjdCBoYXMgKGFwcGFyZW50bHkpIGJlZW4gaW5pdGlhbGl6ZWQgYnV0IGl0IGlzIG5vdCAoeWV0KQorICAgICAgICAgKiBpbiB1c2UuIEl0J3Mgb2sgdG8gY2FsbCBhYm9ydCBvbiBzdWNoIGFuIG9iamVjdCwgYW5kIHRoZXJlJ3MKKyAgICAgICAgICogbm90aGluZyB0byBkby4gKi8KKyAgICAgICAgcmV0dXJuIFBTQV9TVUNDRVNTOworICAgIH0KKworICAgIHBzYV9zdGF0dXNfdCBzdGF0dXMgPSBQU0FfRVJST1JfQ09SUlVQVElPTl9ERVRFQ1RFRDsKKworICAgIHN0YXR1cyA9IHBzYV9kcml2ZXJfd3JhcHBlcl9zaWduX2hhc2hfYWJvcnQob3BlcmF0aW9uKTsKKworICAgIG9wZXJhdGlvbi0+aWQgPSAwOworCisgICAgLyogRG8gbm90IGNsZWFyIGVpdGhlciB0aGUgZXJyb3Jfb2NjdXJyZWQgb3IgbnVtX29wcyBlbGVtZW50cyBoZXJlIGFzIHRoZXkKKyAgICAgKiBvbmx5IHdhbnQgdG8gYmUgY2xlYXJlZCBieSB0aGUgYXBwbGljYXRpb24gY2FsbGluZyBhYm9ydCwgbm90IGJ5IGFib3J0CisgICAgICogYmVpbmcgY2FsbGVkIGF0IGNvbXBsZXRpb24gb2YgYW4gb3BlcmF0aW9uLiAqLworCisgICAgcmV0dXJuIHN0YXR1czsKK30KKworcHNhX3N0YXR1c190IHBzYV9zaWduX2hhc2hfc3RhcnQoCisgICAgcHNhX3NpZ25faGFzaF9pbnRlcnJ1cHRpYmxlX29wZXJhdGlvbl90ICpvcGVyYXRpb24sCisgICAgbWJlZHRsc19zdmNfa2V5X2lkX3Qga2V5LCBwc2FfYWxnb3JpdGhtX3QgYWxnLAorICAgIGNvbnN0IHVpbnQ4X3QgKmhhc2hfZXh0ZXJuYWwsIHNpemVfdCBoYXNoX2xlbmd0aCkKK3sKKyAgICBwc2Ffc3RhdHVzX3Qgc3RhdHVzID0gUFNBX0VSUk9SX0NPUlJVUFRJT05fREVURUNURUQ7CisgICAgcHNhX3N0YXR1c190IHVubG9ja19zdGF0dXMgPSBQU0FfRVJST1JfQ09SUlVQVElPTl9ERVRFQ1RFRDsKKyAgICBwc2Ffa2V5X3Nsb3RfdCAqc2xvdDsKKworICAgIExPQ0FMX0lOUFVUX0RFQ0xBUkUoaGFzaF9leHRlcm5hbCwgaGFzaCk7CisKKyAgICAvKiBDaGVjayB0aGF0IHN0YXJ0IGhhcyBub3QgYmVlbiBwcmV2aW91c2x5IGNhbGxlZCwgb3Igb3BlcmF0aW9uIGhhcyBub3QKKyAgICAgKiBwcmV2aW91c2x5IGVycm9yZWQuICovCisgICAgaWYgKG9wZXJhdGlvbi0+aWQgIT0gMCB8fCBvcGVyYXRpb24tPmVycm9yX29jY3VycmVkKSB7CisgICAgICAgIHJldHVybiBQU0FfRVJST1JfQkFEX1NUQVRFOworICAgIH0KKworICAgIHN0YXR1cyA9IHBzYV9zaWduX3ZlcmlmeV9jaGVja19hbGcoMCwgYWxnKTsKKyAgICBpZiAoc3RhdHVzICE9IFBTQV9TVUNDRVNTKSB7CisgICAgICAgIG9wZXJhdGlvbi0+ZXJyb3Jfb2NjdXJyZWQgPSAxOworICAgICAgICByZXR1cm4gc3RhdHVzOworICAgIH0KKworICAgIHN0YXR1cyA9IHBzYV9nZXRfYW5kX2xvY2tfa2V5X3Nsb3Rfd2l0aF9wb2xpY3koa2V5LCAmc2xvdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBTQV9LRVlfVVNBR0VfU0lHTl9IQVNILAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWxnKTsKKworICAgIGlmIChzdGF0dXMgIT0gUFNBX1NVQ0NFU1MpIHsKKyAgICAgICAgZ290byBleGl0OworICAgIH0KKworICAgIGlmICghUFNBX0tFWV9UWVBFX0lTX0tFWV9QQUlSKHNsb3QtPmF0dHIudHlwZSkpIHsKKyAgICAgICAgc3RhdHVzID0gUFNBX0VSUk9SX0lOVkFMSURfQVJHVU1FTlQ7CisgICAgICAgIGdvdG8gZXhpdDsKKyAgICB9CisKKyAgICBMT0NBTF9JTlBVVF9BTExPQyhoYXNoX2V4dGVybmFsLCBoYXNoX2xlbmd0aCwgaGFzaCk7CisKKyAgICAvKiBFbnN1cmUgb3BzIGNvdW50IGdldHMgcmVzZXQsIGluIGNhc2Ugb2Ygb3BlcmF0aW9uIHJlLXVzZS4gKi8KKyAgICBvcGVyYXRpb24tPm51bV9vcHMgPSAwOworCisgICAgc3RhdHVzID0gcHNhX2RyaXZlcl93cmFwcGVyX3NpZ25faGFzaF9zdGFydChvcGVyYXRpb24sICZzbG90LT5hdHRyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2xvdC0+a2V5LmRhdGEsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzbG90LT5rZXkuYnl0ZXMsIGFsZywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhc2gsIGhhc2hfbGVuZ3RoKTsKK2V4aXQ6CisKKyAgICBpZiAoc3RhdHVzICE9IFBTQV9TVUNDRVNTKSB7CisgICAgICAgIG9wZXJhdGlvbi0+ZXJyb3Jfb2NjdXJyZWQgPSAxOworICAgICAgICBwc2Ffc2lnbl9oYXNoX2Fib3J0X2ludGVybmFsKG9wZXJhdGlvbik7CisgICAgfQorCisgICAgdW5sb2NrX3N0YXR1cyA9IHBzYV91bnJlZ2lzdGVyX3JlYWRfdW5kZXJfbXV0ZXgoc2xvdCk7CisKKyAgICBpZiAodW5sb2NrX3N0YXR1cyAhPSBQU0FfU1VDQ0VTUykgeworICAgICAgICBvcGVyYXRpb24tPmVycm9yX29jY3VycmVkID0gMTsKKyAgICB9CisKKyAgICBMT0NBTF9JTlBVVF9GUkVFKGhhc2hfZXh0ZXJuYWwsIGhhc2gpOworCisgICAgcmV0dXJuIChzdGF0dXMgPT0gUFNBX1NVQ0NFU1MpID8gdW5sb2NrX3N0YXR1cyA6IHN0YXR1czsKK30KKworCitwc2Ffc3RhdHVzX3QgcHNhX3NpZ25faGFzaF9jb21wbGV0ZSgKKyAgICBwc2Ffc2lnbl9oYXNoX2ludGVycnVwdGlibGVfb3BlcmF0aW9uX3QgKm9wZXJhdGlvbiwKKyAgICB1aW50OF90ICpzaWduYXR1cmVfZXh0ZXJuYWwsIHNpemVfdCBzaWduYXR1cmVfc2l6ZSwKKyAgICBzaXplX3QgKnNpZ25hdHVyZV9sZW5ndGgpCit7CisgICAgcHNhX3N0YXR1c190IHN0YXR1cyA9IFBTQV9FUlJPUl9DT1JSVVBUSU9OX0RFVEVDVEVEOworCisgICAgTE9DQUxfT1VUUFVUX0RFQ0xBUkUoc2lnbmF0dXJlX2V4dGVybmFsLCBzaWduYXR1cmUpOworCisgICAgKnNpZ25hdHVyZV9sZW5ndGggPSAwOworCisgICAgLyogQ2hlY2sgdGhhdCBzdGFydCBoYXMgYmVlbiBjYWxsZWQgZmlyc3QsIGFuZCB0aGF0IG9wZXJhdGlvbiBoYXMgbm90CisgICAgICogcHJldmlvdXNseSBlcnJvcmVkLiAqLworICAgIGlmIChvcGVyYXRpb24tPmlkID09IDAgfHwgb3BlcmF0aW9uLT5lcnJvcl9vY2N1cnJlZCkgeworICAgICAgICBzdGF0dXMgPSBQU0FfRVJST1JfQkFEX1NUQVRFOworICAgICAgICBnb3RvIGV4aXQ7CisgICAgfQorCisgICAgLyogSW1tZWRpYXRlbHkgcmVqZWN0IGEgemVyby1sZW5ndGggc2lnbmF0dXJlIGJ1ZmZlci4gVGhpcyBndWFyYW50ZWVzIHRoYXQKKyAgICAgKiBzaWduYXR1cmUgbXVzdCBiZSBhIHZhbGlkIHBvaW50ZXIuICovCisgICAgaWYgKHNpZ25hdHVyZV9zaXplID09IDApIHsKKyAgICAgICAgc3RhdHVzID0gUFNBX0VSUk9SX0JVRkZFUl9UT09fU01BTEw7CisgICAgICAgIGdvdG8gZXhpdDsKKyAgICB9CisKKyAgICBMT0NBTF9PVVRQVVRfQUxMT0Moc2lnbmF0dXJlX2V4dGVybmFsLCBzaWduYXR1cmVfc2l6ZSwgc2lnbmF0dXJlKTsKKworICAgIHN0YXR1cyA9IHBzYV9kcml2ZXJfd3JhcHBlcl9zaWduX2hhc2hfY29tcGxldGUob3BlcmF0aW9uLCBzaWduYXR1cmUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaWduYXR1cmVfc2l6ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpZ25hdHVyZV9sZW5ndGgpOworCisgICAgLyogVXBkYXRlIG9wcyBjb3VudCB3aXRoIHdvcmsgZG9uZS4gKi8KKyAgICBvcGVyYXRpb24tPm51bV9vcHMgPSBwc2FfZHJpdmVyX3dyYXBwZXJfc2lnbl9oYXNoX2dldF9udW1fb3BzKG9wZXJhdGlvbik7CisKK2V4aXQ6CisKKyAgICBpZiAoc2lnbmF0dXJlICE9IE5VTEwpIHsKKyAgICAgICAgcHNhX3dpcGVfdGFnX291dHB1dF9idWZmZXIoc2lnbmF0dXJlLCBzdGF0dXMsIHNpZ25hdHVyZV9zaXplLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqc2lnbmF0dXJlX2xlbmd0aCk7CisgICAgfQorCisgICAgaWYgKHN0YXR1cyAhPSBQU0FfT1BFUkFUSU9OX0lOQ09NUExFVEUpIHsKKyAgICAgICAgaWYgKHN0YXR1cyAhPSBQU0FfU1VDQ0VTUykgeworICAgICAgICAgICAgb3BlcmF0aW9uLT5lcnJvcl9vY2N1cnJlZCA9IDE7CisgICAgICAgIH0KKworICAgICAgICBwc2Ffc2lnbl9oYXNoX2Fib3J0X2ludGVybmFsKG9wZXJhdGlvbik7CisgICAgfQorCisgICAgTE9DQUxfT1VUUFVUX0ZSRUUoc2lnbmF0dXJlX2V4dGVybmFsLCBzaWduYXR1cmUpOworCisgICAgcmV0dXJuIHN0YXR1czsKK30KKworcHNhX3N0YXR1c190IHBzYV9zaWduX2hhc2hfYWJvcnQoCisgICAgcHNhX3NpZ25faGFzaF9pbnRlcnJ1cHRpYmxlX29wZXJhdGlvbl90ICpvcGVyYXRpb24pCit7CisgICAgcHNhX3N0YXR1c190IHN0YXR1cyA9IFBTQV9FUlJPUl9DT1JSVVBUSU9OX0RFVEVDVEVEOworCisgICAgc3RhdHVzID0gcHNhX3NpZ25faGFzaF9hYm9ydF9pbnRlcm5hbChvcGVyYXRpb24pOworCisgICAgLyogV2UgY2xlYXIgdGhlIG51bWJlciBvZiBvcHMgZG9uZSBoZXJlLCBzbyB0aGF0IGl0IGlzIG5vdCBjbGVhcmVkIHdoZW4KKyAgICAgKiB0aGUgb3BlcmF0aW9uIGZhaWxzIG9yIHN1Y2NlZWRzLCBvbmx5IG9uIG1hbnVhbCBhYm9ydC4gKi8KKyAgICBvcGVyYXRpb24tPm51bV9vcHMgPSAwOworCisgICAgLyogTGlrZXdpc2UsIGZhaWx1cmUgc3RhdGUuICovCisgICAgb3BlcmF0aW9uLT5lcnJvcl9vY2N1cnJlZCA9IDA7CisKKyAgICByZXR1cm4gc3RhdHVzOworfQorCitzdGF0aWMgcHNhX3N0YXR1c190IHBzYV92ZXJpZnlfaGFzaF9hYm9ydF9pbnRlcm5hbCgKKyAgICBwc2FfdmVyaWZ5X2hhc2hfaW50ZXJydXB0aWJsZV9vcGVyYXRpb25fdCAqb3BlcmF0aW9uKQoreworICAgIGlmIChvcGVyYXRpb24tPmlkID09IDApIHsKKyAgICAgICAgLyogVGhlIG9iamVjdCBoYXMgKGFwcGFyZW50bHkpIGJlZW4gaW5pdGlhbGl6ZWQgYnV0IGl0IGlzIG5vdCAoeWV0KQorICAgICAgICAgKiBpbiB1c2UuIEl0J3Mgb2sgdG8gY2FsbCBhYm9ydCBvbiBzdWNoIGFuIG9iamVjdCwgYW5kIHRoZXJlJ3MKKyAgICAgICAgICogbm90aGluZyB0byBkby4gKi8KKyAgICAgICAgcmV0dXJuIFBTQV9TVUNDRVNTOworICAgIH0KKworICAgIHBzYV9zdGF0dXNfdCBzdGF0dXMgPSBQU0FfRVJST1JfQ09SUlVQVElPTl9ERVRFQ1RFRDsKKworICAgIHN0YXR1cyA9IHBzYV9kcml2ZXJfd3JhcHBlcl92ZXJpZnlfaGFzaF9hYm9ydChvcGVyYXRpb24pOworCisgICAgb3BlcmF0aW9uLT5pZCA9IDA7CisKKyAgICAvKiBEbyBub3QgY2xlYXIgZWl0aGVyIHRoZSBlcnJvcl9vY2N1cnJlZCBvciBudW1fb3BzIGVsZW1lbnRzIGhlcmUgYXMgdGhleQorICAgICAqIG9ubHkgd2FudCB0byBiZSBjbGVhcmVkIGJ5IHRoZSBhcHBsaWNhdGlvbiBjYWxsaW5nIGFib3J0LCBub3QgYnkgYWJvcnQKKyAgICAgKiBiZWluZyBjYWxsZWQgYXQgY29tcGxldGlvbiBvZiBhbiBvcGVyYXRpb24uICovCisKKyAgICByZXR1cm4gc3RhdHVzOworfQorCitwc2Ffc3RhdHVzX3QgcHNhX3ZlcmlmeV9oYXNoX3N0YXJ0KAorICAgIHBzYV92ZXJpZnlfaGFzaF9pbnRlcnJ1cHRpYmxlX29wZXJhdGlvbl90ICpvcGVyYXRpb24sCisgICAgbWJlZHRsc19zdmNfa2V5X2lkX3Qga2V5LCBwc2FfYWxnb3JpdGhtX3QgYWxnLAorICAgIGNvbnN0IHVpbnQ4X3QgKmhhc2hfZXh0ZXJuYWwsIHNpemVfdCBoYXNoX2xlbmd0aCwKKyAgICBjb25zdCB1aW50OF90ICpzaWduYXR1cmVfZXh0ZXJuYWwsIHNpemVfdCBzaWduYXR1cmVfbGVuZ3RoKQoreworICAgIHBzYV9zdGF0dXNfdCBzdGF0dXMgPSBQU0FfRVJST1JfQ09SUlVQVElPTl9ERVRFQ1RFRDsKKyAgICBwc2Ffc3RhdHVzX3QgdW5sb2NrX3N0YXR1cyA9IFBTQV9FUlJPUl9DT1JSVVBUSU9OX0RFVEVDVEVEOworICAgIHBzYV9rZXlfc2xvdF90ICpzbG90OworCisgICAgTE9DQUxfSU5QVVRfREVDTEFSRShoYXNoX2V4dGVybmFsLCBoYXNoKTsKKyAgICBMT0NBTF9JTlBVVF9ERUNMQVJFKHNpZ25hdHVyZV9leHRlcm5hbCwgc2lnbmF0dXJlKTsKKworICAgIC8qIENoZWNrIHRoYXQgc3RhcnQgaGFzIG5vdCBiZWVuIHByZXZpb3VzbHkgY2FsbGVkLCBvciBvcGVyYXRpb24gaGFzIG5vdAorICAgICAqIHByZXZpb3VzbHkgZXJyb3JlZC4gKi8KKyAgICBpZiAob3BlcmF0aW9uLT5pZCAhPSAwIHx8IG9wZXJhdGlvbi0+ZXJyb3Jfb2NjdXJyZWQpIHsKKyAgICAgICAgcmV0dXJuIFBTQV9FUlJPUl9CQURfU1RBVEU7CisgICAgfQorCisgICAgc3RhdHVzID0gcHNhX3NpZ25fdmVyaWZ5X2NoZWNrX2FsZygwLCBhbGcpOworICAgIGlmIChzdGF0dXMgIT0gUFNBX1NVQ0NFU1MpIHsKKyAgICAgICAgb3BlcmF0aW9uLT5lcnJvcl9vY2N1cnJlZCA9IDE7CisgICAgICAgIHJldHVybiBzdGF0dXM7CisgICAgfQorCisgICAgc3RhdHVzID0gcHNhX2dldF9hbmRfbG9ja19rZXlfc2xvdF93aXRoX3BvbGljeShrZXksICZzbG90LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUFNBX0tFWV9VU0FHRV9WRVJJRllfSEFTSCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFsZyk7CisKKyAgICBpZiAoc3RhdHVzICE9IFBTQV9TVUNDRVNTKSB7CisgICAgICAgIG9wZXJhdGlvbi0+ZXJyb3Jfb2NjdXJyZWQgPSAxOworICAgICAgICByZXR1cm4gc3RhdHVzOworICAgIH0KKworICAgIExPQ0FMX0lOUFVUX0FMTE9DKGhhc2hfZXh0ZXJuYWwsIGhhc2hfbGVuZ3RoLCBoYXNoKTsKKyAgICBMT0NBTF9JTlBVVF9BTExPQyhzaWduYXR1cmVfZXh0ZXJuYWwsIHNpZ25hdHVyZV9sZW5ndGgsIHNpZ25hdHVyZSk7CisKKyAgICAvKiBFbnN1cmUgb3BzIGNvdW50IGdldHMgcmVzZXQsIGluIGNhc2Ugb2Ygb3BlcmF0aW9uIHJlLXVzZS4gKi8KKyAgICBvcGVyYXRpb24tPm51bV9vcHMgPSAwOworCisgICAgc3RhdHVzID0gcHNhX2RyaXZlcl93cmFwcGVyX3ZlcmlmeV9oYXNoX3N0YXJ0KG9wZXJhdGlvbiwgJnNsb3QtPmF0dHIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNsb3QtPmtleS5kYXRhLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzbG90LT5rZXkuYnl0ZXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFsZywgaGFzaCwgaGFzaF9sZW5ndGgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpZ25hdHVyZSwgc2lnbmF0dXJlX2xlbmd0aCk7CisjaWYgIWRlZmluZWQoTUJFRFRMU19QU0FfQVNTVU1FX0VYQ0xVU0lWRV9CVUZGRVJTKQorZXhpdDoKKyNlbmRpZgorCisgICAgaWYgKHN0YXR1cyAhPSBQU0FfU1VDQ0VTUykgeworICAgICAgICBvcGVyYXRpb24tPmVycm9yX29jY3VycmVkID0gMTsKKyAgICAgICAgcHNhX3ZlcmlmeV9oYXNoX2Fib3J0X2ludGVybmFsKG9wZXJhdGlvbik7CisgICAgfQorCisgICAgdW5sb2NrX3N0YXR1cyA9IHBzYV91bnJlZ2lzdGVyX3JlYWRfdW5kZXJfbXV0ZXgoc2xvdCk7CisKKyAgICBpZiAodW5sb2NrX3N0YXR1cyAhPSBQU0FfU1VDQ0VTUykgeworICAgICAgICBvcGVyYXRpb24tPmVycm9yX29jY3VycmVkID0gMTsKKyAgICB9CisKKyAgICBMT0NBTF9JTlBVVF9GUkVFKGhhc2hfZXh0ZXJuYWwsIGhhc2gpOworICAgIExPQ0FMX0lOUFVUX0ZSRUUoc2lnbmF0dXJlX2V4dGVybmFsLCBzaWduYXR1cmUpOworCisgICAgcmV0dXJuIChzdGF0dXMgPT0gUFNBX1NVQ0NFU1MpID8gdW5sb2NrX3N0YXR1cyA6IHN0YXR1czsKK30KKworcHNhX3N0YXR1c190IHBzYV92ZXJpZnlfaGFzaF9jb21wbGV0ZSgKKyAgICBwc2FfdmVyaWZ5X2hhc2hfaW50ZXJydXB0aWJsZV9vcGVyYXRpb25fdCAqb3BlcmF0aW9uKQoreworICAgIHBzYV9zdGF0dXNfdCBzdGF0dXMgPSBQU0FfRVJST1JfQ09SUlVQVElPTl9ERVRFQ1RFRDsKKworICAgIC8qIENoZWNrIHRoYXQgc3RhcnQgaGFzIGJlZW4gY2FsbGVkIGZpcnN0LCBhbmQgdGhhdCBvcGVyYXRpb24gaGFzIG5vdAorICAgICAqIHByZXZpb3VzbHkgZXJyb3JlZC4gKi8KKyAgICBpZiAob3BlcmF0aW9uLT5pZCA9PSAwIHx8IG9wZXJhdGlvbi0+ZXJyb3Jfb2NjdXJyZWQpIHsKKyAgICAgICAgc3RhdHVzID0gUFNBX0VSUk9SX0JBRF9TVEFURTsKKyAgICAgICAgZ290byBleGl0OworICAgIH0KKworICAgIHN0YXR1cyA9IHBzYV9kcml2ZXJfd3JhcHBlcl92ZXJpZnlfaGFzaF9jb21wbGV0ZShvcGVyYXRpb24pOworCisgICAgLyogVXBkYXRlIG9wcyBjb3VudCB3aXRoIHdvcmsgZG9uZS4gKi8KKyAgICBvcGVyYXRpb24tPm51bV9vcHMgPSBwc2FfZHJpdmVyX3dyYXBwZXJfdmVyaWZ5X2hhc2hfZ2V0X251bV9vcHMoCisgICAgICAgIG9wZXJhdGlvbik7CisKK2V4aXQ6CisKKyAgICBpZiAoc3RhdHVzICE9IFBTQV9PUEVSQVRJT05fSU5DT01QTEVURSkgeworICAgICAgICBpZiAoc3RhdHVzICE9IFBTQV9TVUNDRVNTKSB7CisgICAgICAgICAgICBvcGVyYXRpb24tPmVycm9yX29jY3VycmVkID0gMTsKKyAgICAgICAgfQorCisgICAgICAgIHBzYV92ZXJpZnlfaGFzaF9hYm9ydF9pbnRlcm5hbChvcGVyYXRpb24pOworICAgIH0KKworICAgIHJldHVybiBzdGF0dXM7Cit9CisKK3BzYV9zdGF0dXNfdCBwc2FfdmVyaWZ5X2hhc2hfYWJvcnQoCisgICAgcHNhX3ZlcmlmeV9oYXNoX2ludGVycnVwdGlibGVfb3BlcmF0aW9uX3QgKm9wZXJhdGlvbikKK3sKKyAgICBwc2Ffc3RhdHVzX3Qgc3RhdHVzID0gUFNBX0VSUk9SX0NPUlJVUFRJT05fREVURUNURUQ7CisKKyAgICBzdGF0dXMgPSBwc2FfdmVyaWZ5X2hhc2hfYWJvcnRfaW50ZXJuYWwob3BlcmF0aW9uKTsKKworICAgIC8qIFdlIGNsZWFyIHRoZSBudW1iZXIgb2Ygb3BzIGRvbmUgaGVyZSwgc28gdGhhdCBpdCBpcyBub3QgY2xlYXJlZCB3aGVuCisgICAgICogdGhlIG9wZXJhdGlvbiBmYWlscyBvciBzdWNjZWVkcywgb25seSBvbiBtYW51YWwgYWJvcnQuICovCisgICAgb3BlcmF0aW9uLT5udW1fb3BzID0gMDsKKworICAgIC8qIExpa2V3aXNlLCBmYWlsdXJlIHN0YXRlLiAqLworICAgIG9wZXJhdGlvbi0+ZXJyb3Jfb2NjdXJyZWQgPSAwOworCisgICAgcmV0dXJuIHN0YXR1czsKK30KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisvKiBBc3ltbWV0cmljIGludGVycnVwdGlibGUgY3J5cHRvZ3JhcGh5IGludGVybmFsICAgICAgICAgICAgICAgKi8KKy8qIGltcGxlbWVudGF0aW9ucyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKK3ZvaWQgbWJlZHRsc19wc2FfaW50ZXJydXB0aWJsZV9zZXRfbWF4X29wcyh1aW50MzJfdCBtYXhfb3BzKQoreworCisjaWYgKGRlZmluZWQoTUJFRFRMU19QU0FfQlVJTFRJTl9BTEdfRUNEU0EpIHx8IFwKKyAgICBkZWZpbmVkKE1CRURUTFNfUFNBX0JVSUxUSU5fQUxHX0RFVEVSTUlOSVNUSUNfRUNEU0EpKSAmJiBcCisgICAgZGVmaW5lZChNQkVEVExTX0VDUF9SRVNUQVJUQUJMRSkKKworICAgIC8qIEludGVybmFsIGltcGxlbWVudGF0aW9uIHVzZXMgemVybyB0byBpbmRpY2F0ZSBpbmZpbml0ZSBudW1iZXIgbWF4IG9wcywKKyAgICAgKiB0aGVyZWZvcmUgYXZvaWQgdGhpcyB2YWx1ZSwgYW5kIHNldCB0byBtaW5pbXVtIHBvc3NpYmxlLiAqLworICAgIGlmIChtYXhfb3BzID09IDApIHsKKyAgICAgICAgbWF4X29wcyA9IDE7CisgICAgfQorCisgICAgbWJlZHRsc19lY3Bfc2V0X21heF9vcHMobWF4X29wcyk7CisjZWxzZQorICAgICh2b2lkKSBtYXhfb3BzOworI2VuZGlmIC8qIGRlZmluZWQoTUJFRFRMU19QU0FfQlVJTFRJTl9BTEdfRUNEU0EpIHx8CisgICAgICAgICogZGVmaW5lZChNQkVEVExTX1BTQV9CVUlMVElOX0FMR19ERVRFUk1JTklTVElDX0VDRFNBKSAmJgorICAgICAgICAqIGRlZmluZWQoIE1CRURUTFNfRUNQX1JFU1RBUlRBQkxFICkgKi8KK30KKwordWludDMyX3QgbWJlZHRsc19wc2Ffc2lnbl9oYXNoX2dldF9udW1fb3BzKAorICAgIGNvbnN0IG1iZWR0bHNfcHNhX3NpZ25faGFzaF9pbnRlcnJ1cHRpYmxlX29wZXJhdGlvbl90ICpvcGVyYXRpb24pCit7CisjaWYgKGRlZmluZWQoTUJFRFRMU19QU0FfQlVJTFRJTl9BTEdfRUNEU0EpIHx8IFwKKyAgICBkZWZpbmVkKE1CRURUTFNfUFNBX0JVSUxUSU5fQUxHX0RFVEVSTUlOSVNUSUNfRUNEU0EpKSAmJiBcCisgICAgZGVmaW5lZChNQkVEVExTX0VDUF9SRVNUQVJUQUJMRSkKKworICAgIHJldHVybiBvcGVyYXRpb24tPm51bV9vcHM7CisjZWxzZQorICAgICh2b2lkKSBvcGVyYXRpb247CisgICAgcmV0dXJuIDA7CisjZW5kaWYgLyogZGVmaW5lZChNQkVEVExTX1BTQV9CVUlMVElOX0FMR19FQ0RTQSkgfHwKKyAgICAgICAgKiBkZWZpbmVkKE1CRURUTFNfUFNBX0JVSUxUSU5fQUxHX0RFVEVSTUlOSVNUSUNfRUNEU0EpICYmCisgICAgICAgICogZGVmaW5lZCggTUJFRFRMU19FQ1BfUkVTVEFSVEFCTEUgKSAqLworfQorCit1aW50MzJfdCBtYmVkdGxzX3BzYV92ZXJpZnlfaGFzaF9nZXRfbnVtX29wcygKKyAgICBjb25zdCBtYmVkdGxzX3BzYV92ZXJpZnlfaGFzaF9pbnRlcnJ1cHRpYmxlX29wZXJhdGlvbl90ICpvcGVyYXRpb24pCit7CisgICAgI2lmIChkZWZpbmVkKE1CRURUTFNfUFNBX0JVSUxUSU5fQUxHX0VDRFNBKSB8fCBcCisgICAgZGVmaW5lZChNQkVEVExTX1BTQV9CVUlMVElOX0FMR19ERVRFUk1JTklTVElDX0VDRFNBKSkgJiYgXAorICAgIGRlZmluZWQoTUJFRFRMU19FQ1BfUkVTVEFSVEFCTEUpCisKKyAgICByZXR1cm4gb3BlcmF0aW9uLT5udW1fb3BzOworI2Vsc2UKKyAgICAodm9pZCkgb3BlcmF0aW9uOworICAgIHJldHVybiAwOworI2VuZGlmIC8qIGRlZmluZWQoTUJFRFRMU19QU0FfQlVJTFRJTl9BTEdfRUNEU0EpIHx8CisgICAgICAgICogZGVmaW5lZChNQkVEVExTX1BTQV9CVUlMVElOX0FMR19ERVRFUk1JTklTVElDX0VDRFNBKSAmJgorICAgICAgICAqIGRlZmluZWQoIE1CRURUTFNfRUNQX1JFU1RBUlRBQkxFICkgKi8KK30KKworcHNhX3N0YXR1c190IG1iZWR0bHNfcHNhX3NpZ25faGFzaF9zdGFydCgKKyAgICBtYmVkdGxzX3BzYV9zaWduX2hhc2hfaW50ZXJydXB0aWJsZV9vcGVyYXRpb25fdCAqb3BlcmF0aW9uLAorICAgIGNvbnN0IHBzYV9rZXlfYXR0cmlidXRlc190ICphdHRyaWJ1dGVzLCBjb25zdCB1aW50OF90ICprZXlfYnVmZmVyLAorICAgIHNpemVfdCBrZXlfYnVmZmVyX3NpemUsIHBzYV9hbGdvcml0aG1fdCBhbGcsCisgICAgY29uc3QgdWludDhfdCAqaGFzaCwgc2l6ZV90IGhhc2hfbGVuZ3RoKQoreworICAgIHBzYV9zdGF0dXNfdCBzdGF0dXMgPSBQU0FfRVJST1JfQ09SUlVQVElPTl9ERVRFQ1RFRDsKKyAgICBzaXplX3QgcmVxdWlyZWRfaGFzaF9sZW5ndGg7CisKKyAgICBpZiAoIVBTQV9LRVlfVFlQRV9JU19FQ0MoYXR0cmlidXRlcy0+dHlwZSkpIHsKKyAgICAgICAgcmV0dXJuIFBTQV9FUlJPUl9OT1RfU1VQUE9SVEVEOworICAgIH0KKworICAgIGlmICghUFNBX0FMR19JU19FQ0RTQShhbGcpKSB7CisgICAgICAgIHJldHVybiBQU0FfRVJST1JfTk9UX1NVUFBPUlRFRDsKKyAgICB9CisKKyNpZiAoZGVmaW5lZChNQkVEVExTX1BTQV9CVUlMVElOX0FMR19FQ0RTQSkgfHwgXAorICAgIGRlZmluZWQoTUJFRFRMU19QU0FfQlVJTFRJTl9BTEdfREVURVJNSU5JU1RJQ19FQ0RTQSkpICYmIFwKKyAgICBkZWZpbmVkKE1CRURUTFNfRUNQX1JFU1RBUlRBQkxFKQorCisgICAgbWJlZHRsc19lY2RzYV9yZXN0YXJ0X2luaXQoJm9wZXJhdGlvbi0+cmVzdGFydF9jdHgpOworCisgICAgLyogRW5zdXJlIG51bV9vcHMgaXMgemVybydlZCBpbiBjYXNlIG9mIGNvbnRleHQgcmUtdXNlLiAqLworICAgIG9wZXJhdGlvbi0+bnVtX29wcyA9IDA7CisKKyAgICBzdGF0dXMgPSBtYmVkdGxzX3BzYV9lY3BfbG9hZF9yZXByZXNlbnRhdGlvbihhdHRyaWJ1dGVzLT50eXBlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZXMtPmJpdHMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga2V5X2J1ZmZlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXlfYnVmZmVyX3NpemUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJm9wZXJhdGlvbi0+Y3R4KTsKKworICAgIGlmIChzdGF0dXMgIT0gUFNBX1NVQ0NFU1MpIHsKKyAgICAgICAgcmV0dXJuIHN0YXR1czsKKyAgICB9CisKKyAgICBvcGVyYXRpb24tPmNvb3JkaW5hdGVfYnl0ZXMgPSBQU0FfQklUU19UT19CWVRFUygKKyAgICAgICAgb3BlcmF0aW9uLT5jdHgtPmdycC5uYml0cyk7CisKKyAgICBwc2FfYWxnb3JpdGhtX3QgaGFzaF9hbGcgPSBQU0FfQUxHX1NJR05fR0VUX0hBU0goYWxnKTsKKyAgICBvcGVyYXRpb24tPm1kX2FsZyA9IG1iZWR0bHNfbWRfdHlwZV9mcm9tX3BzYV9hbGcoaGFzaF9hbGcpOworICAgIG9wZXJhdGlvbi0+YWxnID0gYWxnOworCisgICAgLyogV2Ugb25seSBuZWVkIHRvIHN0b3JlIHRoZSBzYW1lIGxlbmd0aCBvZiBoYXNoIGFzIHRoZSBwcml2YXRlIGtleSBzaXplCisgICAgICogaGVyZSwgaXQgd291bGQgYmUgdHJ1bmNhdGVkIGJ5IHRoZSBpbnRlcm5hbCBpbXBsZW1lbnRhdGlvbiBhbnl3YXkuICovCisgICAgcmVxdWlyZWRfaGFzaF9sZW5ndGggPSAoaGFzaF9sZW5ndGggPCBvcGVyYXRpb24tPmNvb3JkaW5hdGVfYnl0ZXMgPworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhc2hfbGVuZ3RoIDogb3BlcmF0aW9uLT5jb29yZGluYXRlX2J5dGVzKTsKKworICAgIGlmIChyZXF1aXJlZF9oYXNoX2xlbmd0aCA+IHNpemVvZihvcGVyYXRpb24tPmhhc2gpKSB7CisgICAgICAgIC8qIFNob3VsZG4ndCBoYXBwZW4sIGJ1dCBiZXR0ZXIgc2FmZSB0aGFuIHNvcnJ5LiAqLworICAgICAgICByZXR1cm4gUFNBX0VSUk9SX0NPUlJVUFRJT05fREVURUNURUQ7CisgICAgfQorCisgICAgbWVtY3B5KG9wZXJhdGlvbi0+aGFzaCwgaGFzaCwgcmVxdWlyZWRfaGFzaF9sZW5ndGgpOworICAgIG9wZXJhdGlvbi0+aGFzaF9sZW5ndGggPSByZXF1aXJlZF9oYXNoX2xlbmd0aDsKKworICAgIHJldHVybiBQU0FfU1VDQ0VTUzsKKworI2Vsc2UKKyAgICAodm9pZCkgb3BlcmF0aW9uOworICAgICh2b2lkKSBrZXlfYnVmZmVyOworICAgICh2b2lkKSBrZXlfYnVmZmVyX3NpemU7CisgICAgKHZvaWQpIGFsZzsKKyAgICAodm9pZCkgaGFzaDsKKyAgICAodm9pZCkgaGFzaF9sZW5ndGg7CisgICAgKHZvaWQpIHN0YXR1czsKKyAgICAodm9pZCkgcmVxdWlyZWRfaGFzaF9sZW5ndGg7CisKKyAgICByZXR1cm4gUFNBX0VSUk9SX05PVF9TVVBQT1JURUQ7CisjZW5kaWYgLyogZGVmaW5lZChNQkVEVExTX1BTQV9CVUlMVElOX0FMR19FQ0RTQSkgfHwKKyAgICAgICAgKiBkZWZpbmVkKE1CRURUTFNfUFNBX0JVSUxUSU5fQUxHX0RFVEVSTUlOSVNUSUNfRUNEU0EpICYmCisgICAgICAgICogZGVmaW5lZCggTUJFRFRMU19FQ1BfUkVTVEFSVEFCTEUgKSAqLworfQorCitwc2Ffc3RhdHVzX3QgbWJlZHRsc19wc2Ffc2lnbl9oYXNoX2NvbXBsZXRlKAorICAgIG1iZWR0bHNfcHNhX3NpZ25faGFzaF9pbnRlcnJ1cHRpYmxlX29wZXJhdGlvbl90ICpvcGVyYXRpb24sCisgICAgdWludDhfdCAqc2lnbmF0dXJlLCBzaXplX3Qgc2lnbmF0dXJlX3NpemUsCisgICAgc2l6ZV90ICpzaWduYXR1cmVfbGVuZ3RoKQoreworI2lmIChkZWZpbmVkKE1CRURUTFNfUFNBX0JVSUxUSU5fQUxHX0VDRFNBKSB8fCBcCisgICAgZGVmaW5lZChNQkVEVExTX1BTQV9CVUlMVElOX0FMR19ERVRFUk1JTklTVElDX0VDRFNBKSkgJiYgXAorICAgIGRlZmluZWQoTUJFRFRMU19FQ1BfUkVTVEFSVEFCTEUpCisKKyAgICBwc2Ffc3RhdHVzX3Qgc3RhdHVzID0gUFNBX0VSUk9SX0NPUlJVUFRJT05fREVURUNURUQ7CisgICAgbWJlZHRsc19tcGkgcjsKKyAgICBtYmVkdGxzX21waSBzOworCisgICAgbWJlZHRsc19tcGlfaW5pdCgmcik7CisgICAgbWJlZHRsc19tcGlfaW5pdCgmcyk7CisKKyAgICAvKiBFbnN1cmUgbWF4X29wcyBpcyBzZXQgdG8gdGhlIGN1cnJlbnQgdmFsdWUgKG9yIGRlZmF1bHQpLiAqLworICAgIG1iZWR0bHNfcHNhX2ludGVycnVwdGlibGVfc2V0X21heF9vcHMocHNhX2ludGVycnVwdGlibGVfZ2V0X21heF9vcHMoKSk7CisKKyAgICBpZiAoc2lnbmF0dXJlX3NpemUgPCAyICogb3BlcmF0aW9uLT5jb29yZGluYXRlX2J5dGVzKSB7CisgICAgICAgIHN0YXR1cyA9IFBTQV9FUlJPUl9CVUZGRVJfVE9PX1NNQUxMOworICAgICAgICBnb3RvIGV4aXQ7CisgICAgfQorCisgICAgaWYgKFBTQV9BTEdfRUNEU0FfSVNfREVURVJNSU5JU1RJQyhvcGVyYXRpb24tPmFsZykpIHsKKworI2lmIGRlZmluZWQoTUJFRFRMU19QU0FfQlVJTFRJTl9BTEdfREVURVJNSU5JU1RJQ19FQ0RTQSkKKyAgICAgICAgc3RhdHVzID0gbWJlZHRsc190b19wc2FfZXJyb3IoCisgICAgICAgICAgICBtYmVkdGxzX2VjZHNhX3NpZ25fZGV0X3Jlc3RhcnRhYmxlKCZvcGVyYXRpb24tPmN0eC0+Z3JwLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJnMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZvcGVyYXRpb24tPmN0eC0+ZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3BlcmF0aW9uLT5oYXNoLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcGVyYXRpb24tPmhhc2hfbGVuZ3RoLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcGVyYXRpb24tPm1kX2FsZywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWJlZHRsc19wc2FfZ2V0X3JhbmRvbSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTUJFRFRMU19QU0FfUkFORE9NX1NUQVRFLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmb3BlcmF0aW9uLT5yZXN0YXJ0X2N0eCkpOworI2Vsc2UgLyogZGVmaW5lZChNQkVEVExTX1BTQV9CVUlMVElOX0FMR19ERVRFUk1JTklTVElDX0VDRFNBKSAqLworICAgICAgICBzdGF0dXMgPSBQU0FfRVJST1JfTk9UX1NVUFBPUlRFRDsKKyAgICAgICAgZ290byBleGl0OworI2VuZGlmIC8qIGRlZmluZWQoTUJFRFRMU19QU0FfQlVJTFRJTl9BTEdfREVURVJNSU5JU1RJQ19FQ0RTQSkgKi8KKyAgICB9IGVsc2UgeworICAgICAgICBzdGF0dXMgPSBtYmVkdGxzX3RvX3BzYV9lcnJvcigKKyAgICAgICAgICAgIG1iZWR0bHNfZWNkc2Ffc2lnbl9yZXN0YXJ0YWJsZSgmb3BlcmF0aW9uLT5jdHgtPmdycCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmb3BlcmF0aW9uLT5jdHgtPmQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3BlcmF0aW9uLT5oYXNoLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wZXJhdGlvbi0+aGFzaF9sZW5ndGgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWJlZHRsc19wc2FfZ2V0X3JhbmRvbSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNQkVEVExTX1BTQV9SQU5ET01fU1RBVEUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWJlZHRsc19wc2FfZ2V0X3JhbmRvbSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNQkVEVExTX1BTQV9SQU5ET01fU1RBVEUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJm9wZXJhdGlvbi0+cmVzdGFydF9jdHgpKTsKKyAgICB9CisKKyAgICAvKiBIaWRlIHRoZSBmYWN0IHRoYXQgdGhlIHJlc3RhcnQgY29udGV4dCBvbmx5IGhvbGRzIGEgZGVsdGEgb2YgbnVtYmVyIG9mCisgICAgICogb3BzIGRvbmUgZHVyaW5nIHRoZSBsYXN0IG9wZXJhdGlvbiwgbm90IGFuIGFic29sdXRlIHZhbHVlLiAqLworICAgIG9wZXJhdGlvbi0+bnVtX29wcyArPSBvcGVyYXRpb24tPnJlc3RhcnRfY3R4LmVjcC5vcHNfZG9uZTsKKworICAgIGlmIChzdGF0dXMgPT0gUFNBX1NVQ0NFU1MpIHsKKyAgICAgICAgc3RhdHVzID0gIG1iZWR0bHNfdG9fcHNhX2Vycm9yKAorICAgICAgICAgICAgbWJlZHRsc19tcGlfd3JpdGVfYmluYXJ5KCZyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpZ25hdHVyZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcGVyYXRpb24tPmNvb3JkaW5hdGVfYnl0ZXMpCisgICAgICAgICAgICApOworCisgICAgICAgIGlmIChzdGF0dXMgIT0gUFNBX1NVQ0NFU1MpIHsKKyAgICAgICAgICAgIGdvdG8gZXhpdDsKKyAgICAgICAgfQorCisgICAgICAgIHN0YXR1cyA9ICBtYmVkdGxzX3RvX3BzYV9lcnJvcigKKyAgICAgICAgICAgIG1iZWR0bHNfbXBpX3dyaXRlX2JpbmFyeSgmcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaWduYXR1cmUgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wZXJhdGlvbi0+Y29vcmRpbmF0ZV9ieXRlcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcGVyYXRpb24tPmNvb3JkaW5hdGVfYnl0ZXMpCisgICAgICAgICAgICApOworCisgICAgICAgIGlmIChzdGF0dXMgIT0gUFNBX1NVQ0NFU1MpIHsKKyAgICAgICAgICAgIGdvdG8gZXhpdDsKKyAgICAgICAgfQorCisgICAgICAgICpzaWduYXR1cmVfbGVuZ3RoID0gb3BlcmF0aW9uLT5jb29yZGluYXRlX2J5dGVzICogMjsKKworICAgICAgICBzdGF0dXMgPSBQU0FfU1VDQ0VTUzsKKyAgICB9CisKK2V4aXQ6CisKKyAgICBtYmVkdGxzX21waV9mcmVlKCZyKTsKKyAgICBtYmVkdGxzX21waV9mcmVlKCZzKTsKKyAgICByZXR1cm4gc3RhdHVzOworCisgI2Vsc2UKKworICAgICh2b2lkKSBvcGVyYXRpb247CisgICAgKHZvaWQpIHNpZ25hdHVyZTsKKyAgICAodm9pZCkgc2lnbmF0dXJlX3NpemU7CisgICAgKHZvaWQpIHNpZ25hdHVyZV9sZW5ndGg7CisKKyAgICByZXR1cm4gUFNBX0VSUk9SX05PVF9TVVBQT1JURUQ7CisKKyNlbmRpZiAvKiBkZWZpbmVkKE1CRURUTFNfUFNBX0JVSUxUSU5fQUxHX0VDRFNBKSB8fAorICAgICAgICAqIGRlZmluZWQoTUJFRFRMU19QU0FfQlVJTFRJTl9BTEdfREVURVJNSU5JU1RJQ19FQ0RTQSkgJiYKKyAgICAgICAgKiBkZWZpbmVkKCBNQkVEVExTX0VDUF9SRVNUQVJUQUJMRSApICovCit9CisKK3BzYV9zdGF0dXNfdCBtYmVkdGxzX3BzYV9zaWduX2hhc2hfYWJvcnQoCisgICAgbWJlZHRsc19wc2Ffc2lnbl9oYXNoX2ludGVycnVwdGlibGVfb3BlcmF0aW9uX3QgKm9wZXJhdGlvbikKK3sKKworI2lmIChkZWZpbmVkKE1CRURUTFNfUFNBX0JVSUxUSU5fQUxHX0VDRFNBKSB8fCBcCisgICAgZGVmaW5lZChNQkVEVExTX1BTQV9CVUlMVElOX0FMR19ERVRFUk1JTklTVElDX0VDRFNBKSkgJiYgXAorICAgIGRlZmluZWQoTUJFRFRMU19FQ1BfUkVTVEFSVEFCTEUpCisKKyAgICBpZiAob3BlcmF0aW9uLT5jdHgpIHsKKyAgICAgICAgbWJlZHRsc19lY2RzYV9mcmVlKG9wZXJhdGlvbi0+Y3R4KTsKKyAgICAgICAgbWJlZHRsc19mcmVlKG9wZXJhdGlvbi0+Y3R4KTsKKyAgICAgICAgb3BlcmF0aW9uLT5jdHggPSBOVUxMOworICAgIH0KKworICAgIG1iZWR0bHNfZWNkc2FfcmVzdGFydF9mcmVlKCZvcGVyYXRpb24tPnJlc3RhcnRfY3R4KTsKKworICAgIG9wZXJhdGlvbi0+bnVtX29wcyA9IDA7CisKKyAgICByZXR1cm4gUFNBX1NVQ0NFU1M7CisKKyNlbHNlCisKKyAgICAodm9pZCkgb3BlcmF0aW9uOworCisgICAgcmV0dXJuIFBTQV9FUlJPUl9OT1RfU1VQUE9SVEVEOworCisjZW5kaWYgLyogZGVmaW5lZChNQkVEVExTX1BTQV9CVUlMVElOX0FMR19FQ0RTQSkgfHwKKyAgICAgICAgKiBkZWZpbmVkKE1CRURUTFNfUFNBX0JVSUxUSU5fQUxHX0RFVEVSTUlOSVNUSUNfRUNEU0EpICYmCisgICAgICAgICogZGVmaW5lZCggTUJFRFRMU19FQ1BfUkVTVEFSVEFCTEUgKSAqLworfQorCitwc2Ffc3RhdHVzX3QgbWJlZHRsc19wc2FfdmVyaWZ5X2hhc2hfc3RhcnQoCisgICAgbWJlZHRsc19wc2FfdmVyaWZ5X2hhc2hfaW50ZXJydXB0aWJsZV9vcGVyYXRpb25fdCAqb3BlcmF0aW9uLAorICAgIGNvbnN0IHBzYV9rZXlfYXR0cmlidXRlc190ICphdHRyaWJ1dGVzLAorICAgIGNvbnN0IHVpbnQ4X3QgKmtleV9idWZmZXIsIHNpemVfdCBrZXlfYnVmZmVyX3NpemUsCisgICAgcHNhX2FsZ29yaXRobV90IGFsZywKKyAgICBjb25zdCB1aW50OF90ICpoYXNoLCBzaXplX3QgaGFzaF9sZW5ndGgsCisgICAgY29uc3QgdWludDhfdCAqc2lnbmF0dXJlLCBzaXplX3Qgc2lnbmF0dXJlX2xlbmd0aCkKK3sKKyAgICBwc2Ffc3RhdHVzX3Qgc3RhdHVzID0gUFNBX0VSUk9SX0NPUlJVUFRJT05fREVURUNURUQ7CisgICAgc2l6ZV90IGNvb3JkaW5hdGVfYnl0ZXMgPSAwOworICAgIHNpemVfdCByZXF1aXJlZF9oYXNoX2xlbmd0aCA9IDA7CisKKyAgICBpZiAoIVBTQV9LRVlfVFlQRV9JU19FQ0MoYXR0cmlidXRlcy0+dHlwZSkpIHsKKyAgICAgICAgcmV0dXJuIFBTQV9FUlJPUl9OT1RfU1VQUE9SVEVEOworICAgIH0KKworICAgIGlmICghUFNBX0FMR19JU19FQ0RTQShhbGcpKSB7CisgICAgICAgIHJldHVybiBQU0FfRVJST1JfTk9UX1NVUFBPUlRFRDsKKyAgICB9CisKKyNpZiAoZGVmaW5lZChNQkVEVExTX1BTQV9CVUlMVElOX0FMR19FQ0RTQSkgfHwgXAorICAgIGRlZmluZWQoTUJFRFRMU19QU0FfQlVJTFRJTl9BTEdfREVURVJNSU5JU1RJQ19FQ0RTQSkpICYmIFwKKyAgICBkZWZpbmVkKE1CRURUTFNfRUNQX1JFU1RBUlRBQkxFKQorCisgICAgbWJlZHRsc19lY2RzYV9yZXN0YXJ0X2luaXQoJm9wZXJhdGlvbi0+cmVzdGFydF9jdHgpOworICAgIG1iZWR0bHNfbXBpX2luaXQoJm9wZXJhdGlvbi0+cik7CisgICAgbWJlZHRsc19tcGlfaW5pdCgmb3BlcmF0aW9uLT5zKTsKKworICAgIC8qIEVuc3VyZSBudW1fb3BzIGlzIHplcm8nZWQgaW4gY2FzZSBvZiBjb250ZXh0IHJlLXVzZS4gKi8KKyAgICBvcGVyYXRpb24tPm51bV9vcHMgPSAwOworCisgICAgc3RhdHVzID0gbWJlZHRsc19wc2FfZWNwX2xvYWRfcmVwcmVzZW50YXRpb24oYXR0cmlidXRlcy0+dHlwZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdHRyaWJ1dGVzLT5iaXRzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtleV9idWZmZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga2V5X2J1ZmZlcl9zaXplLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZvcGVyYXRpb24tPmN0eCk7CisKKyAgICBpZiAoc3RhdHVzICE9IFBTQV9TVUNDRVNTKSB7CisgICAgICAgIHJldHVybiBzdGF0dXM7CisgICAgfQorCisgICAgY29vcmRpbmF0ZV9ieXRlcyA9IFBTQV9CSVRTX1RPX0JZVEVTKG9wZXJhdGlvbi0+Y3R4LT5ncnAubmJpdHMpOworCisgICAgaWYgKHNpZ25hdHVyZV9sZW5ndGggIT0gMiAqIGNvb3JkaW5hdGVfYnl0ZXMpIHsKKyAgICAgICAgcmV0dXJuIFBTQV9FUlJPUl9JTlZBTElEX1NJR05BVFVSRTsKKyAgICB9CisKKyAgICBzdGF0dXMgPSBtYmVkdGxzX3RvX3BzYV9lcnJvcigKKyAgICAgICAgbWJlZHRsc19tcGlfcmVhZF9iaW5hcnkoJm9wZXJhdGlvbi0+ciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2lnbmF0dXJlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb29yZGluYXRlX2J5dGVzKSk7CisKKyAgICBpZiAoc3RhdHVzICE9IFBTQV9TVUNDRVNTKSB7CisgICAgICAgIHJldHVybiBzdGF0dXM7CisgICAgfQorCisgICAgc3RhdHVzID0gbWJlZHRsc190b19wc2FfZXJyb3IoCisgICAgICAgIG1iZWR0bHNfbXBpX3JlYWRfYmluYXJ5KCZvcGVyYXRpb24tPnMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpZ25hdHVyZSArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvb3JkaW5hdGVfYnl0ZXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvb3JkaW5hdGVfYnl0ZXMpKTsKKworICAgIGlmIChzdGF0dXMgIT0gUFNBX1NVQ0NFU1MpIHsKKyAgICAgICAgcmV0dXJuIHN0YXR1czsKKyAgICB9CisKKyAgICBzdGF0dXMgPSBtYmVkdGxzX3BzYV9lY3BfbG9hZF9wdWJsaWNfcGFydChvcGVyYXRpb24tPmN0eCk7CisKKyAgICBpZiAoc3RhdHVzICE9IFBTQV9TVUNDRVNTKSB7CisgICAgICAgIHJldHVybiBzdGF0dXM7CisgICAgfQorCisgICAgLyogV2Ugb25seSBuZWVkIHRvIHN0b3JlIHRoZSBzYW1lIGxlbmd0aCBvZiBoYXNoIGFzIHRoZSBwcml2YXRlIGtleSBzaXplCisgICAgICogaGVyZSwgaXQgd291bGQgYmUgdHJ1bmNhdGVkIGJ5IHRoZSBpbnRlcm5hbCBpbXBsZW1lbnRhdGlvbiBhbnl3YXkuICovCisgICAgcmVxdWlyZWRfaGFzaF9sZW5ndGggPSAoaGFzaF9sZW5ndGggPCBjb29yZGluYXRlX2J5dGVzID8gaGFzaF9sZW5ndGggOgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvb3JkaW5hdGVfYnl0ZXMpOworCisgICAgaWYgKHJlcXVpcmVkX2hhc2hfbGVuZ3RoID4gc2l6ZW9mKG9wZXJhdGlvbi0+aGFzaCkpIHsKKyAgICAgICAgLyogU2hvdWxkbid0IGhhcHBlbiwgYnV0IGJldHRlciBzYWZlIHRoYW4gc29ycnkuICovCisgICAgICAgIHJldHVybiBQU0FfRVJST1JfQ09SUlVQVElPTl9ERVRFQ1RFRDsKKyAgICB9CisKKyAgICBtZW1jcHkob3BlcmF0aW9uLT5oYXNoLCBoYXNoLCByZXF1aXJlZF9oYXNoX2xlbmd0aCk7CisgICAgb3BlcmF0aW9uLT5oYXNoX2xlbmd0aCA9IHJlcXVpcmVkX2hhc2hfbGVuZ3RoOworCisgICAgcmV0dXJuIFBTQV9TVUNDRVNTOworI2Vsc2UKKyAgICAodm9pZCkgb3BlcmF0aW9uOworICAgICh2b2lkKSBrZXlfYnVmZmVyOworICAgICh2b2lkKSBrZXlfYnVmZmVyX3NpemU7CisgICAgKHZvaWQpIGFsZzsKKyAgICAodm9pZCkgaGFzaDsKKyAgICAodm9pZCkgaGFzaF9sZW5ndGg7CisgICAgKHZvaWQpIHNpZ25hdHVyZTsKKyAgICAodm9pZCkgc2lnbmF0dXJlX2xlbmd0aDsKKyAgICAodm9pZCkgc3RhdHVzOworICAgICh2b2lkKSBjb29yZGluYXRlX2J5dGVzOworICAgICh2b2lkKSByZXF1aXJlZF9oYXNoX2xlbmd0aDsKKworICAgIHJldHVybiBQU0FfRVJST1JfTk9UX1NVUFBPUlRFRDsKKyNlbmRpZiAvKiBkZWZpbmVkKE1CRURUTFNfUFNBX0JVSUxUSU5fQUxHX0VDRFNBKSB8fAorICAgICAgICAqIGRlZmluZWQoTUJFRFRMU19QU0FfQlVJTFRJTl9BTEdfREVURVJNSU5JU1RJQ19FQ0RTQSkgJiYKKyAgICAgICAgKiBkZWZpbmVkKCBNQkVEVExTX0VDUF9SRVNUQVJUQUJMRSApICovCit9CisKK3BzYV9zdGF0dXNfdCBtYmVkdGxzX3BzYV92ZXJpZnlfaGFzaF9jb21wbGV0ZSgKKyAgICBtYmVkdGxzX3BzYV92ZXJpZnlfaGFzaF9pbnRlcnJ1cHRpYmxlX29wZXJhdGlvbl90ICpvcGVyYXRpb24pCit7CisKKyNpZiAoZGVmaW5lZChNQkVEVExTX1BTQV9CVUlMVElOX0FMR19FQ0RTQSkgfHwgXAorICAgIGRlZmluZWQoTUJFRFRMU19QU0FfQlVJTFRJTl9BTEdfREVURVJNSU5JU1RJQ19FQ0RTQSkpICYmIFwKKyAgICBkZWZpbmVkKE1CRURUTFNfRUNQX1JFU1RBUlRBQkxFKQorCisgICAgcHNhX3N0YXR1c190IHN0YXR1cyA9IFBTQV9FUlJPUl9DT1JSVVBUSU9OX0RFVEVDVEVEOworCisgICAgLyogRW5zdXJlIG1heF9vcHMgaXMgc2V0IHRvIHRoZSBjdXJyZW50IHZhbHVlIChvciBkZWZhdWx0KS4gKi8KKyAgICBtYmVkdGxzX3BzYV9pbnRlcnJ1cHRpYmxlX3NldF9tYXhfb3BzKHBzYV9pbnRlcnJ1cHRpYmxlX2dldF9tYXhfb3BzKCkpOworCisgICAgc3RhdHVzID0gbWJlZHRsc190b19wc2FfZXJyb3IoCisgICAgICAgIG1iZWR0bHNfZWNkc2FfdmVyaWZ5X3Jlc3RhcnRhYmxlKCZvcGVyYXRpb24tPmN0eC0+Z3JwLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcGVyYXRpb24tPmhhc2gsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wZXJhdGlvbi0+aGFzaF9sZW5ndGgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZvcGVyYXRpb24tPmN0eC0+USwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJm9wZXJhdGlvbi0+ciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJm9wZXJhdGlvbi0+cywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJm9wZXJhdGlvbi0+cmVzdGFydF9jdHgpKTsKKworICAgIC8qIEhpZGUgdGhlIGZhY3QgdGhhdCB0aGUgcmVzdGFydCBjb250ZXh0IG9ubHkgaG9sZHMgYSBkZWx0YSBvZiBudW1iZXIgb2YKKyAgICAgKiBvcHMgZG9uZSBkdXJpbmcgdGhlIGxhc3Qgb3BlcmF0aW9uLCBub3QgYW4gYWJzb2x1dGUgdmFsdWUuICovCisgICAgb3BlcmF0aW9uLT5udW1fb3BzICs9IG9wZXJhdGlvbi0+cmVzdGFydF9jdHguZWNwLm9wc19kb25lOworCisgICAgcmV0dXJuIHN0YXR1czsKKyNlbHNlCisgICAgKHZvaWQpIG9wZXJhdGlvbjsKKworICAgIHJldHVybiBQU0FfRVJST1JfTk9UX1NVUFBPUlRFRDsKKworI2VuZGlmIC8qIGRlZmluZWQoTUJFRFRMU19QU0FfQlVJTFRJTl9BTEdfRUNEU0EpIHx8CisgICAgICAgICogZGVmaW5lZChNQkVEVExTX1BTQV9CVUlMVElOX0FMR19ERVRFUk1JTklTVElDX0VDRFNBKSAmJgorICAgICAgICAqIGRlZmluZWQoIE1CRURUTFNfRUNQX1JFU1RBUlRBQkxFICkgKi8KK30KKworcHNhX3N0YXR1c190IG1iZWR0bHNfcHNhX3ZlcmlmeV9oYXNoX2Fib3J0KAorICAgIG1iZWR0bHNfcHNhX3ZlcmlmeV9oYXNoX2ludGVycnVwdGlibGVfb3BlcmF0aW9uX3QgKm9wZXJhdGlvbikKK3sKKworI2lmIChkZWZpbmVkKE1CRURUTFNfUFNBX0JVSUxUSU5fQUxHX0VDRFNBKSB8fCBcCisgICAgZGVmaW5lZChNQkVEVExTX1BTQV9CVUlMVElOX0FMR19ERVRFUk1JTklTVElDX0VDRFNBKSkgJiYgXAorICAgIGRlZmluZWQoTUJFRFRMU19FQ1BfUkVTVEFSVEFCTEUpCisKKyAgICBpZiAob3BlcmF0aW9uLT5jdHgpIHsKKyAgICAgICAgbWJlZHRsc19lY2RzYV9mcmVlKG9wZXJhdGlvbi0+Y3R4KTsKKyAgICAgICAgbWJlZHRsc19mcmVlKG9wZXJhdGlvbi0+Y3R4KTsKKyAgICAgICAgb3BlcmF0aW9uLT5jdHggPSBOVUxMOworICAgIH0KKworICAgIG1iZWR0bHNfZWNkc2FfcmVzdGFydF9mcmVlKCZvcGVyYXRpb24tPnJlc3RhcnRfY3R4KTsKKworICAgIG9wZXJhdGlvbi0+bnVtX29wcyA9IDA7CisKKyAgICBtYmVkdGxzX21waV9mcmVlKCZvcGVyYXRpb24tPnIpOworICAgIG1iZWR0bHNfbXBpX2ZyZWUoJm9wZXJhdGlvbi0+cyk7CisKKyAgICByZXR1cm4gUFNBX1NVQ0NFU1M7CisKKyNlbHNlCisgICAgKHZvaWQpIG9wZXJhdGlvbjsKKworICAgIHJldHVybiBQU0FfRVJST1JfTk9UX1NVUFBPUlRFRDsKKworI2VuZGlmIC8qIGRlZmluZWQoTUJFRFRMU19QU0FfQlVJTFRJTl9BTEdfRUNEU0EpIHx8CisgICAgICAgICogZGVmaW5lZChNQkVEVExTX1BTQV9CVUlMVElOX0FMR19ERVRFUk1JTklTVElDX0VDRFNBKSAmJgorICAgICAgICAqIGRlZmluZWQoIE1CRURUTFNfRUNQX1JFU1RBUlRBQkxFICkgKi8KK30KKworc3RhdGljIHBzYV9zdGF0dXNfdCBwc2FfZ2VuZXJhdGVfcmFuZG9tX2ludGVybmFsKHVpbnQ4X3QgKm91dHB1dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3Qgb3V0cHV0X3NpemUpCit7CisgICAgR1VBUkRfTU9EVUxFX0lOSVRJQUxJWkVEOworCisjaWYgZGVmaW5lZChNQkVEVExTX1BTQV9DUllQVE9fRVhURVJOQUxfUk5HKQorCisgICAgcHNhX3N0YXR1c190IHN0YXR1czsKKyAgICBzaXplX3Qgb3V0cHV0X2xlbmd0aCA9IDA7CisgICAgc3RhdHVzID0gbWJlZHRsc19wc2FfZXh0ZXJuYWxfZ2V0X3JhbmRvbSgmZ2xvYmFsX2RhdGEucm5nLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3V0cHV0LCBvdXRwdXRfc2l6ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZvdXRwdXRfbGVuZ3RoKTsKKyAgICBpZiAoc3RhdHVzICE9IFBTQV9TVUNDRVNTKSB7CisgICAgICAgIHJldHVybiBzdGF0dXM7CisgICAgfQorICAgIC8qIEJyZWFraW5nIHVwIGEgcmVxdWVzdCBpbnRvIHNtYWxsZXIgY2h1bmtzIGlzIGN1cnJlbnRseSBub3Qgc3VwcG9ydGVkCisgICAgICogZm9yIHRoZSBleHRlcm5hbCBSTkcgaW50ZXJmYWNlLiAqLworICAgIGlmIChvdXRwdXRfbGVuZ3RoICE9IG91dHB1dF9zaXplKSB7CisgICAgICAgIHJldHVybiBQU0FfRVJST1JfSU5TVUZGSUNJRU5UX0VOVFJPUFk7CisgICAgfQorICAgIHJldHVybiBQU0FfU1VDQ0VTUzsKKworI2Vsc2UgLyogTUJFRFRMU19QU0FfQ1JZUFRPX0VYVEVSTkFMX1JORyAqLworCisgICAgd2hpbGUgKG91dHB1dF9zaXplID4gMCkgeworICAgICAgICBpbnQgcmV0ID0gTUJFRFRMU19FUlJfUExBVEZPUk1fRkVBVFVSRV9VTlNVUFBPUlRFRDsKKyAgICAgICAgc2l6ZV90IHJlcXVlc3Rfc2l6ZSA9CisgICAgICAgICAgICAob3V0cHV0X3NpemUgPiBNQkVEVExTX1BTQV9SQU5ET01fTUFYX1JFUVVFU1QgPworICAgICAgICAgICAgIE1CRURUTFNfUFNBX1JBTkRPTV9NQVhfUkVRVUVTVCA6CisgICAgICAgICAgICAgb3V0cHV0X3NpemUpOworI2lmIGRlZmluZWQoTUJFRFRMU19DVFJfRFJCR19DKQorICAgICAgICByZXQgPSBtYmVkdGxzX2N0cl9kcmJnX3JhbmRvbSgmZ2xvYmFsX2RhdGEucm5nLmRyYmcsIG91dHB1dCwgcmVxdWVzdF9zaXplKTsKKyNlbGlmIGRlZmluZWQoTUJFRFRMU19ITUFDX0RSQkdfQykKKyAgICAgICAgcmV0ID0gbWJlZHRsc19obWFjX2RyYmdfcmFuZG9tKCZnbG9iYWxfZGF0YS5ybmcuZHJiZywgb3V0cHV0LCByZXF1ZXN0X3NpemUpOworI2VuZGlmIC8qICFNQkVEVExTX0NUUl9EUkJHX0MgJiYgIU1CRURUTFNfSE1BQ19EUkJHX0MgKi8KKyAgICAgICAgaWYgKHJldCAhPSAwKSB7CisgICAgICAgICAgICByZXR1cm4gbWJlZHRsc190b19wc2FfZXJyb3IocmV0KTsKKyAgICAgICAgfQorICAgICAgICBvdXRwdXRfc2l6ZSAtPSByZXF1ZXN0X3NpemU7CisgICAgICAgIG91dHB1dCArPSByZXF1ZXN0X3NpemU7CisgICAgfQorICAgIHJldHVybiBQU0FfU1VDQ0VTUzsKKyNlbmRpZiAvKiBNQkVEVExTX1BTQV9DUllQVE9fRVhURVJOQUxfUk5HICovCit9CisKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisvKiBTeW1tZXRyaWMgY3J5cHRvZ3JhcGh5ICovCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworc3RhdGljIHBzYV9zdGF0dXNfdCBwc2FfY2lwaGVyX3NldHVwKHBzYV9jaXBoZXJfb3BlcmF0aW9uX3QgKm9wZXJhdGlvbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYmVkdGxzX3N2Y19rZXlfaWRfdCBrZXksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHNhX2FsZ29yaXRobV90IGFsZywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYmVkdGxzX29wZXJhdGlvbl90IGNpcGhlcl9vcGVyYXRpb24pCit7CisgICAgcHNhX3N0YXR1c190IHN0YXR1cyA9IFBTQV9FUlJPUl9DT1JSVVBUSU9OX0RFVEVDVEVEOworICAgIHBzYV9zdGF0dXNfdCB1bmxvY2tfc3RhdHVzID0gUFNBX0VSUk9SX0NPUlJVUFRJT05fREVURUNURUQ7CisgICAgcHNhX2tleV9zbG90X3QgKnNsb3QgPSBOVUxMOworICAgIHBzYV9rZXlfdXNhZ2VfdCB1c2FnZSA9IChjaXBoZXJfb3BlcmF0aW9uID09IE1CRURUTFNfRU5DUllQVCA/CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBTQV9LRVlfVVNBR0VfRU5DUllQVCA6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBTQV9LRVlfVVNBR0VfREVDUllQVCk7CisKKyAgICAvKiBBIGNvbnRleHQgbXVzdCBiZSBmcmVzaGx5IGluaXRpYWxpemVkIGJlZm9yZSBpdCBjYW4gYmUgc2V0IHVwLiAqLworICAgIGlmIChvcGVyYXRpb24tPmlkICE9IDApIHsKKyAgICAgICAgc3RhdHVzID0gUFNBX0VSUk9SX0JBRF9TVEFURTsKKyAgICAgICAgZ290byBleGl0OworICAgIH0KKworICAgIGlmICghUFNBX0FMR19JU19DSVBIRVIoYWxnKSkgeworICAgICAgICBzdGF0dXMgPSBQU0FfRVJST1JfSU5WQUxJRF9BUkdVTUVOVDsKKyAgICAgICAgZ290byBleGl0OworICAgIH0KKworICAgIHN0YXR1cyA9IHBzYV9nZXRfYW5kX2xvY2tfa2V5X3Nsb3Rfd2l0aF9wb2xpY3koa2V5LCAmc2xvdCwgdXNhZ2UsIGFsZyk7CisgICAgaWYgKHN0YXR1cyAhPSBQU0FfU1VDQ0VTUykgeworICAgICAgICBnb3RvIGV4aXQ7CisgICAgfQorCisgICAgLyogSW5pdGlhbGl6ZSB0aGUgb3BlcmF0aW9uIHN0cnVjdCBtZW1iZXJzLCBleGNlcHQgZm9yIGlkLiBUaGUgaWQgbWVtYmVyCisgICAgICogaXMgdXNlZCB0byBpbmRpY2F0ZSB0byBwc2FfY2lwaGVyX2Fib3J0IHRoYXQgdGhlcmUgYXJlIHJlc291cmNlcyB0byBmcmVlLAorICAgICAqIHNvIHdlIG9ubHkgc2V0IGl0IChpbiB0aGUgZHJpdmVyIHdyYXBwZXIpIGFmdGVyIHJlc291cmNlcyBoYXZlIGJlZW4KKyAgICAgKiBhbGxvY2F0ZWQvaW5pdGlhbGl6ZWQuICovCisgICAgb3BlcmF0aW9uLT5pdl9zZXQgPSAwOworICAgIGlmIChhbGcgPT0gUFNBX0FMR19FQ0JfTk9fUEFERElORykgeworICAgICAgICBvcGVyYXRpb24tPml2X3JlcXVpcmVkID0gMDsKKyAgICB9IGVsc2UgeworICAgICAgICBvcGVyYXRpb24tPml2X3JlcXVpcmVkID0gMTsKKyAgICB9CisgICAgb3BlcmF0aW9uLT5kZWZhdWx0X2l2X2xlbmd0aCA9IFBTQV9DSVBIRVJfSVZfTEVOR1RIKHNsb3QtPmF0dHIudHlwZSwgYWxnKTsKKworICAgIC8qIFRyeSBkb2luZyB0aGUgb3BlcmF0aW9uIHRocm91Z2ggYSBkcml2ZXIgYmVmb3JlIHVzaW5nIHNvZnR3YXJlIGZhbGxiYWNrLiAqLworICAgIGlmIChjaXBoZXJfb3BlcmF0aW9uID09IE1CRURUTFNfRU5DUllQVCkgeworICAgICAgICBzdGF0dXMgPSBwc2FfZHJpdmVyX3dyYXBwZXJfY2lwaGVyX2VuY3J5cHRfc2V0dXAob3BlcmF0aW9uLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJnNsb3QtPmF0dHIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzbG90LT5rZXkuZGF0YSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNsb3QtPmtleS5ieXRlcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFsZyk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgc3RhdHVzID0gcHNhX2RyaXZlcl93cmFwcGVyX2NpcGhlcl9kZWNyeXB0X3NldHVwKG9wZXJhdGlvbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZzbG90LT5hdHRyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2xvdC0+a2V5LmRhdGEsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzbG90LT5rZXkuYnl0ZXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbGcpOworICAgIH0KKworZXhpdDoKKyAgICBpZiAoc3RhdHVzICE9IFBTQV9TVUNDRVNTKSB7CisgICAgICAgIHBzYV9jaXBoZXJfYWJvcnQob3BlcmF0aW9uKTsKKyAgICB9CisKKyAgICB1bmxvY2tfc3RhdHVzID0gcHNhX3VucmVnaXN0ZXJfcmVhZF91bmRlcl9tdXRleChzbG90KTsKKworICAgIHJldHVybiAoc3RhdHVzID09IFBTQV9TVUNDRVNTKSA/IHVubG9ja19zdGF0dXMgOiBzdGF0dXM7Cit9CisKK3BzYV9zdGF0dXNfdCBwc2FfY2lwaGVyX2VuY3J5cHRfc2V0dXAocHNhX2NpcGhlcl9vcGVyYXRpb25fdCAqb3BlcmF0aW9uLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYmVkdGxzX3N2Y19rZXlfaWRfdCBrZXksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBzYV9hbGdvcml0aG1fdCBhbGcpCit7CisgICAgcmV0dXJuIHBzYV9jaXBoZXJfc2V0dXAob3BlcmF0aW9uLCBrZXksIGFsZywgTUJFRFRMU19FTkNSWVBUKTsKK30KKworcHNhX3N0YXR1c190IHBzYV9jaXBoZXJfZGVjcnlwdF9zZXR1cChwc2FfY2lwaGVyX29wZXJhdGlvbl90ICpvcGVyYXRpb24sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1iZWR0bHNfc3ZjX2tleV9pZF90IGtleSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHNhX2FsZ29yaXRobV90IGFsZykKK3sKKyAgICByZXR1cm4gcHNhX2NpcGhlcl9zZXR1cChvcGVyYXRpb24sIGtleSwgYWxnLCBNQkVEVExTX0RFQ1JZUFQpOworfQorCitwc2Ffc3RhdHVzX3QgcHNhX2NpcGhlcl9nZW5lcmF0ZV9pdihwc2FfY2lwaGVyX29wZXJhdGlvbl90ICpvcGVyYXRpb24sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50OF90ICppdl9leHRlcm5hbCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBpdl9zaXplLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90ICppdl9sZW5ndGgpCit7CisgICAgcHNhX3N0YXR1c190IHN0YXR1cyA9IFBTQV9FUlJPUl9DT1JSVVBUSU9OX0RFVEVDVEVEOworICAgIHNpemVfdCBkZWZhdWx0X2l2X2xlbmd0aCA9IDA7CisKKyAgICBMT0NBTF9PVVRQVVRfREVDTEFSRShpdl9leHRlcm5hbCwgaXYpOworCisgICAgaWYgKG9wZXJhdGlvbi0+aWQgPT0gMCkgeworICAgICAgICBzdGF0dXMgPSBQU0FfRVJST1JfQkFEX1NUQVRFOworICAgICAgICBnb3RvIGV4aXQ7CisgICAgfQorCisgICAgaWYgKG9wZXJhdGlvbi0+aXZfc2V0IHx8ICFvcGVyYXRpb24tPml2X3JlcXVpcmVkKSB7CisgICAgICAgIHN0YXR1cyA9IFBTQV9FUlJPUl9CQURfU1RBVEU7CisgICAgICAgIGdvdG8gZXhpdDsKKyAgICB9CisKKyAgICBkZWZhdWx0X2l2X2xlbmd0aCA9IG9wZXJhdGlvbi0+ZGVmYXVsdF9pdl9sZW5ndGg7CisgICAgaWYgKGl2X3NpemUgPCBkZWZhdWx0X2l2X2xlbmd0aCkgeworICAgICAgICBzdGF0dXMgPSBQU0FfRVJST1JfQlVGRkVSX1RPT19TTUFMTDsKKyAgICAgICAgZ290byBleGl0OworICAgIH0KKworICAgIGlmIChkZWZhdWx0X2l2X2xlbmd0aCA+IFBTQV9DSVBIRVJfSVZfTUFYX1NJWkUpIHsKKyAgICAgICAgc3RhdHVzID0gUFNBX0VSUk9SX0dFTkVSSUNfRVJST1I7CisgICAgICAgIGdvdG8gZXhpdDsKKyAgICB9CisKKyAgICBMT0NBTF9PVVRQVVRfQUxMT0MoaXZfZXh0ZXJuYWwsIGRlZmF1bHRfaXZfbGVuZ3RoLCBpdik7CisKKyAgICBzdGF0dXMgPSBwc2FfZ2VuZXJhdGVfcmFuZG9tX2ludGVybmFsKGl2LCBkZWZhdWx0X2l2X2xlbmd0aCk7CisgICAgaWYgKHN0YXR1cyAhPSBQU0FfU1VDQ0VTUykgeworICAgICAgICBnb3RvIGV4aXQ7CisgICAgfQorCisgICAgc3RhdHVzID0gcHNhX2RyaXZlcl93cmFwcGVyX2NpcGhlcl9zZXRfaXYob3BlcmF0aW9uLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGl2LCBkZWZhdWx0X2l2X2xlbmd0aCk7CisKK2V4aXQ6CisgICAgaWYgKHN0YXR1cyA9PSBQU0FfU1VDQ0VTUykgeworICAgICAgICAqaXZfbGVuZ3RoID0gZGVmYXVsdF9pdl9sZW5ndGg7CisgICAgICAgIG9wZXJhdGlvbi0+aXZfc2V0ID0gMTsKKyAgICB9IGVsc2UgeworICAgICAgICAqaXZfbGVuZ3RoID0gMDsKKyAgICAgICAgcHNhX2NpcGhlcl9hYm9ydChvcGVyYXRpb24pOworICAgICAgICBpZiAoaXYgIT0gTlVMTCkgeworICAgICAgICAgICAgbWJlZHRsc19wbGF0Zm9ybV96ZXJvaXplKGl2LCBkZWZhdWx0X2l2X2xlbmd0aCk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBMT0NBTF9PVVRQVVRfRlJFRShpdl9leHRlcm5hbCwgaXYpOworICAgIHJldHVybiBzdGF0dXM7Cit9CisKK3BzYV9zdGF0dXNfdCBwc2FfY2lwaGVyX3NldF9pdihwc2FfY2lwaGVyX29wZXJhdGlvbl90ICpvcGVyYXRpb24sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdWludDhfdCAqaXZfZXh0ZXJuYWwsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IGl2X2xlbmd0aCkKK3sKKyAgICBwc2Ffc3RhdHVzX3Qgc3RhdHVzID0gUFNBX0VSUk9SX0NPUlJVUFRJT05fREVURUNURUQ7CisKKyAgICBMT0NBTF9JTlBVVF9ERUNMQVJFKGl2X2V4dGVybmFsLCBpdik7CisKKyAgICBpZiAob3BlcmF0aW9uLT5pZCA9PSAwKSB7CisgICAgICAgIHN0YXR1cyA9IFBTQV9FUlJPUl9CQURfU1RBVEU7CisgICAgICAgIGdvdG8gZXhpdDsKKyAgICB9CisKKyAgICBpZiAob3BlcmF0aW9uLT5pdl9zZXQgfHwgIW9wZXJhdGlvbi0+aXZfcmVxdWlyZWQpIHsKKyAgICAgICAgc3RhdHVzID0gUFNBX0VSUk9SX0JBRF9TVEFURTsKKyAgICAgICAgZ290byBleGl0OworICAgIH0KKworICAgIGlmIChpdl9sZW5ndGggPiBQU0FfQ0lQSEVSX0lWX01BWF9TSVpFKSB7CisgICAgICAgIHN0YXR1cyA9IFBTQV9FUlJPUl9JTlZBTElEX0FSR1VNRU5UOworICAgICAgICBnb3RvIGV4aXQ7CisgICAgfQorCisgICAgTE9DQUxfSU5QVVRfQUxMT0MoaXZfZXh0ZXJuYWwsIGl2X2xlbmd0aCwgaXYpOworCisgICAgc3RhdHVzID0gcHNhX2RyaXZlcl93cmFwcGVyX2NpcGhlcl9zZXRfaXYob3BlcmF0aW9uLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGl2LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGl2X2xlbmd0aCk7CisKK2V4aXQ6CisgICAgaWYgKHN0YXR1cyA9PSBQU0FfU1VDQ0VTUykgeworICAgICAgICBvcGVyYXRpb24tPml2X3NldCA9IDE7CisgICAgfSBlbHNlIHsKKyAgICAgICAgcHNhX2NpcGhlcl9hYm9ydChvcGVyYXRpb24pOworICAgIH0KKworICAgIExPQ0FMX0lOUFVUX0ZSRUUoaXZfZXh0ZXJuYWwsIGl2KTsKKworICAgIHJldHVybiBzdGF0dXM7Cit9CisKK3BzYV9zdGF0dXNfdCBwc2FfY2lwaGVyX3VwZGF0ZShwc2FfY2lwaGVyX29wZXJhdGlvbl90ICpvcGVyYXRpb24sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdWludDhfdCAqaW5wdXRfZXh0ZXJuYWwsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IGlucHV0X2xlbmd0aCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50OF90ICpvdXRwdXRfZXh0ZXJuYWwsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IG91dHB1dF9zaXplLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCAqb3V0cHV0X2xlbmd0aCkKK3sKKyAgICBwc2Ffc3RhdHVzX3Qgc3RhdHVzID0gUFNBX0VSUk9SX0NPUlJVUFRJT05fREVURUNURUQ7CisKKyAgICBMT0NBTF9JTlBVVF9ERUNMQVJFKGlucHV0X2V4dGVybmFsLCBpbnB1dCk7CisgICAgTE9DQUxfT1VUUFVUX0RFQ0xBUkUob3V0cHV0X2V4dGVybmFsLCBvdXRwdXQpOworCisgICAgaWYgKG9wZXJhdGlvbi0+aWQgPT0gMCkgeworICAgICAgICBzdGF0dXMgPSBQU0FfRVJST1JfQkFEX1NUQVRFOworICAgICAgICBnb3RvIGV4aXQ7CisgICAgfQorCisgICAgaWYgKG9wZXJhdGlvbi0+aXZfcmVxdWlyZWQgJiYgIW9wZXJhdGlvbi0+aXZfc2V0KSB7CisgICAgICAgIHN0YXR1cyA9IFBTQV9FUlJPUl9CQURfU1RBVEU7CisgICAgICAgIGdvdG8gZXhpdDsKKyAgICB9CisKKyAgICBMT0NBTF9JTlBVVF9BTExPQyhpbnB1dF9leHRlcm5hbCwgaW5wdXRfbGVuZ3RoLCBpbnB1dCk7CisgICAgTE9DQUxfT1VUUFVUX0FMTE9DKG91dHB1dF9leHRlcm5hbCwgb3V0cHV0X3NpemUsIG91dHB1dCk7CisKKyAgICBzdGF0dXMgPSBwc2FfZHJpdmVyX3dyYXBwZXJfY2lwaGVyX3VwZGF0ZShvcGVyYXRpb24sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5wdXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5wdXRfbGVuZ3RoLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG91dHB1dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvdXRwdXRfc2l6ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvdXRwdXRfbGVuZ3RoKTsKKworZXhpdDoKKyAgICBpZiAoc3RhdHVzICE9IFBTQV9TVUNDRVNTKSB7CisgICAgICAgIHBzYV9jaXBoZXJfYWJvcnQob3BlcmF0aW9uKTsKKyAgICB9CisKKyAgICBMT0NBTF9JTlBVVF9GUkVFKGlucHV0X2V4dGVybmFsLCBpbnB1dCk7CisgICAgTE9DQUxfT1VUUFVUX0ZSRUUob3V0cHV0X2V4dGVybmFsLCBvdXRwdXQpOworCisgICAgcmV0dXJuIHN0YXR1czsKK30KKworcHNhX3N0YXR1c190IHBzYV9jaXBoZXJfZmluaXNoKHBzYV9jaXBoZXJfb3BlcmF0aW9uX3QgKm9wZXJhdGlvbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50OF90ICpvdXRwdXRfZXh0ZXJuYWwsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IG91dHB1dF9zaXplLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCAqb3V0cHV0X2xlbmd0aCkKK3sKKyAgICBwc2Ffc3RhdHVzX3Qgc3RhdHVzID0gUFNBX0VSUk9SX0dFTkVSSUNfRVJST1I7CisKKyAgICBMT0NBTF9PVVRQVVRfREVDTEFSRShvdXRwdXRfZXh0ZXJuYWwsIG91dHB1dCk7CisKKyAgICBpZiAob3BlcmF0aW9uLT5pZCA9PSAwKSB7CisgICAgICAgIHN0YXR1cyA9IFBTQV9FUlJPUl9CQURfU1RBVEU7CisgICAgICAgIGdvdG8gZXhpdDsKKyAgICB9CisKKyAgICBpZiAob3BlcmF0aW9uLT5pdl9yZXF1aXJlZCAmJiAhb3BlcmF0aW9uLT5pdl9zZXQpIHsKKyAgICAgICAgc3RhdHVzID0gUFNBX0VSUk9SX0JBRF9TVEFURTsKKyAgICAgICAgZ290byBleGl0OworICAgIH0KKworICAgIExPQ0FMX09VVFBVVF9BTExPQyhvdXRwdXRfZXh0ZXJuYWwsIG91dHB1dF9zaXplLCBvdXRwdXQpOworCisgICAgc3RhdHVzID0gcHNhX2RyaXZlcl93cmFwcGVyX2NpcGhlcl9maW5pc2gob3BlcmF0aW9uLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG91dHB1dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvdXRwdXRfc2l6ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvdXRwdXRfbGVuZ3RoKTsKKworZXhpdDoKKyAgICBpZiAoc3RhdHVzID09IFBTQV9TVUNDRVNTKSB7CisgICAgICAgIHN0YXR1cyA9IHBzYV9jaXBoZXJfYWJvcnQob3BlcmF0aW9uKTsKKyAgICB9IGVsc2UgeworICAgICAgICAqb3V0cHV0X2xlbmd0aCA9IDA7CisgICAgICAgICh2b2lkKSBwc2FfY2lwaGVyX2Fib3J0KG9wZXJhdGlvbik7CisgICAgfQorCisgICAgTE9DQUxfT1VUUFVUX0ZSRUUob3V0cHV0X2V4dGVybmFsLCBvdXRwdXQpOworCisgICAgcmV0dXJuIHN0YXR1czsKK30KKworcHNhX3N0YXR1c190IHBzYV9jaXBoZXJfYWJvcnQocHNhX2NpcGhlcl9vcGVyYXRpb25fdCAqb3BlcmF0aW9uKQoreworICAgIGlmIChvcGVyYXRpb24tPmlkID09IDApIHsKKyAgICAgICAgLyogVGhlIG9iamVjdCBoYXMgKGFwcGFyZW50bHkpIGJlZW4gaW5pdGlhbGl6ZWQgYnV0IGl0IGlzIG5vdCAoeWV0KQorICAgICAgICAgKiBpbiB1c2UuIEl0J3Mgb2sgdG8gY2FsbCBhYm9ydCBvbiBzdWNoIGFuIG9iamVjdCwgYW5kIHRoZXJlJ3MKKyAgICAgICAgICogbm90aGluZyB0byBkby4gKi8KKyAgICAgICAgcmV0dXJuIFBTQV9TVUNDRVNTOworICAgIH0KKworICAgIHBzYV9kcml2ZXJfd3JhcHBlcl9jaXBoZXJfYWJvcnQob3BlcmF0aW9uKTsKKworICAgIG9wZXJhdGlvbi0+aWQgPSAwOworICAgIG9wZXJhdGlvbi0+aXZfc2V0ID0gMDsKKyAgICBvcGVyYXRpb24tPml2X3JlcXVpcmVkID0gMDsKKworICAgIHJldHVybiBQU0FfU1VDQ0VTUzsKK30KKworcHNhX3N0YXR1c190IHBzYV9jaXBoZXJfZW5jcnlwdChtYmVkdGxzX3N2Y19rZXlfaWRfdCBrZXksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBzYV9hbGdvcml0aG1fdCBhbGcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVpbnQ4X3QgKmlucHV0X2V4dGVybmFsLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgaW5wdXRfbGVuZ3RoLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50OF90ICpvdXRwdXRfZXh0ZXJuYWwsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBvdXRwdXRfc2l6ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90ICpvdXRwdXRfbGVuZ3RoKQoreworICAgIHBzYV9zdGF0dXNfdCBzdGF0dXMgPSBQU0FfRVJST1JfQ09SUlVQVElPTl9ERVRFQ1RFRDsKKyAgICBwc2Ffc3RhdHVzX3QgdW5sb2NrX3N0YXR1cyA9IFBTQV9FUlJPUl9DT1JSVVBUSU9OX0RFVEVDVEVEOworICAgIHBzYV9rZXlfc2xvdF90ICpzbG90ID0gTlVMTDsKKyAgICB1aW50OF90IGxvY2FsX2l2W1BTQV9DSVBIRVJfSVZfTUFYX1NJWkVdOworICAgIHNpemVfdCBkZWZhdWx0X2l2X2xlbmd0aCA9IDA7CisKKyAgICBMT0NBTF9JTlBVVF9ERUNMQVJFKGlucHV0X2V4dGVybmFsLCBpbnB1dCk7CisgICAgTE9DQUxfT1VUUFVUX0RFQ0xBUkUob3V0cHV0X2V4dGVybmFsLCBvdXRwdXQpOworCisgICAgaWYgKCFQU0FfQUxHX0lTX0NJUEhFUihhbGcpKSB7CisgICAgICAgIHN0YXR1cyA9IFBTQV9FUlJPUl9JTlZBTElEX0FSR1VNRU5UOworICAgICAgICBnb3RvIGV4aXQ7CisgICAgfQorCisgICAgc3RhdHVzID0gcHNhX2dldF9hbmRfbG9ja19rZXlfc2xvdF93aXRoX3BvbGljeShrZXksICZzbG90LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUFNBX0tFWV9VU0FHRV9FTkNSWVBULAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWxnKTsKKyAgICBpZiAoc3RhdHVzICE9IFBTQV9TVUNDRVNTKSB7CisgICAgICAgIGdvdG8gZXhpdDsKKyAgICB9CisKKyAgICBkZWZhdWx0X2l2X2xlbmd0aCA9IFBTQV9DSVBIRVJfSVZfTEVOR1RIKHNsb3QtPmF0dHIudHlwZSwgYWxnKTsKKyAgICBpZiAoZGVmYXVsdF9pdl9sZW5ndGggPiBQU0FfQ0lQSEVSX0lWX01BWF9TSVpFKSB7CisgICAgICAgIHN0YXR1cyA9IFBTQV9FUlJPUl9HRU5FUklDX0VSUk9SOworICAgICAgICBnb3RvIGV4aXQ7CisgICAgfQorCisgICAgaWYgKGRlZmF1bHRfaXZfbGVuZ3RoID4gMCkgeworICAgICAgICBpZiAob3V0cHV0X3NpemUgPCBkZWZhdWx0X2l2X2xlbmd0aCkgeworICAgICAgICAgICAgc3RhdHVzID0gUFNBX0VSUk9SX0JVRkZFUl9UT09fU01BTEw7CisgICAgICAgICAgICBnb3RvIGV4aXQ7CisgICAgICAgIH0KKworICAgICAgICBzdGF0dXMgPSBwc2FfZ2VuZXJhdGVfcmFuZG9tX2ludGVybmFsKGxvY2FsX2l2LCBkZWZhdWx0X2l2X2xlbmd0aCk7CisgICAgICAgIGlmIChzdGF0dXMgIT0gUFNBX1NVQ0NFU1MpIHsKKyAgICAgICAgICAgIGdvdG8gZXhpdDsKKyAgICAgICAgfQorICAgIH0KKworICAgIExPQ0FMX0lOUFVUX0FMTE9DKGlucHV0X2V4dGVybmFsLCBpbnB1dF9sZW5ndGgsIGlucHV0KTsKKyAgICBMT0NBTF9PVVRQVVRfQUxMT0Mob3V0cHV0X2V4dGVybmFsLCBvdXRwdXRfc2l6ZSwgb3V0cHV0KTsKKworICAgIHN0YXR1cyA9IHBzYV9kcml2ZXJfd3JhcHBlcl9jaXBoZXJfZW5jcnlwdCgKKyAgICAgICAgJnNsb3QtPmF0dHIsIHNsb3QtPmtleS5kYXRhLCBzbG90LT5rZXkuYnl0ZXMsCisgICAgICAgIGFsZywgbG9jYWxfaXYsIGRlZmF1bHRfaXZfbGVuZ3RoLCBpbnB1dCwgaW5wdXRfbGVuZ3RoLAorICAgICAgICBwc2FfY3J5cHRvX2J1ZmZlcl9vZmZzZXQob3V0cHV0LCBkZWZhdWx0X2l2X2xlbmd0aCksCisgICAgICAgIG91dHB1dF9zaXplIC0gZGVmYXVsdF9pdl9sZW5ndGgsIG91dHB1dF9sZW5ndGgpOworCitleGl0OgorICAgIHVubG9ja19zdGF0dXMgPSBwc2FfdW5yZWdpc3Rlcl9yZWFkX3VuZGVyX211dGV4KHNsb3QpOworICAgIGlmIChzdGF0dXMgPT0gUFNBX1NVQ0NFU1MpIHsKKyAgICAgICAgc3RhdHVzID0gdW5sb2NrX3N0YXR1czsKKyAgICB9CisKKyAgICBpZiAoc3RhdHVzID09IFBTQV9TVUNDRVNTKSB7CisgICAgICAgIGlmIChkZWZhdWx0X2l2X2xlbmd0aCA+IDApIHsKKyAgICAgICAgICAgIG1lbWNweShvdXRwdXQsIGxvY2FsX2l2LCBkZWZhdWx0X2l2X2xlbmd0aCk7CisgICAgICAgIH0KKyAgICAgICAgKm91dHB1dF9sZW5ndGggKz0gZGVmYXVsdF9pdl9sZW5ndGg7CisgICAgfSBlbHNlIHsKKyAgICAgICAgKm91dHB1dF9sZW5ndGggPSAwOworICAgIH0KKworICAgIExPQ0FMX0lOUFVUX0ZSRUUoaW5wdXRfZXh0ZXJuYWwsIGlucHV0KTsKKyAgICBMT0NBTF9PVVRQVVRfRlJFRShvdXRwdXRfZXh0ZXJuYWwsIG91dHB1dCk7CisKKyAgICByZXR1cm4gc3RhdHVzOworfQorCitwc2Ffc3RhdHVzX3QgcHNhX2NpcGhlcl9kZWNyeXB0KG1iZWR0bHNfc3ZjX2tleV9pZF90IGtleSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHNhX2FsZ29yaXRobV90IGFsZywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdWludDhfdCAqaW5wdXRfZXh0ZXJuYWwsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBpbnB1dF9sZW5ndGgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQ4X3QgKm91dHB1dF9leHRlcm5hbCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IG91dHB1dF9zaXplLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgKm91dHB1dF9sZW5ndGgpCit7CisgICAgcHNhX3N0YXR1c190IHN0YXR1cyA9IFBTQV9FUlJPUl9DT1JSVVBUSU9OX0RFVEVDVEVEOworICAgIHBzYV9zdGF0dXNfdCB1bmxvY2tfc3RhdHVzID0gUFNBX0VSUk9SX0NPUlJVUFRJT05fREVURUNURUQ7CisgICAgcHNhX2tleV9zbG90X3QgKnNsb3QgPSBOVUxMOworCisgICAgTE9DQUxfSU5QVVRfREVDTEFSRShpbnB1dF9leHRlcm5hbCwgaW5wdXQpOworICAgIExPQ0FMX09VVFBVVF9ERUNMQVJFKG91dHB1dF9leHRlcm5hbCwgb3V0cHV0KTsKKworICAgIGlmICghUFNBX0FMR19JU19DSVBIRVIoYWxnKSkgeworICAgICAgICBzdGF0dXMgPSBQU0FfRVJST1JfSU5WQUxJRF9BUkdVTUVOVDsKKyAgICAgICAgZ290byBleGl0OworICAgIH0KKworICAgIHN0YXR1cyA9IHBzYV9nZXRfYW5kX2xvY2tfa2V5X3Nsb3Rfd2l0aF9wb2xpY3koa2V5LCAmc2xvdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBTQV9LRVlfVVNBR0VfREVDUllQVCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFsZyk7CisgICAgaWYgKHN0YXR1cyAhPSBQU0FfU1VDQ0VTUykgeworICAgICAgICBnb3RvIGV4aXQ7CisgICAgfQorCisgICAgaWYgKGlucHV0X2xlbmd0aCA8IFBTQV9DSVBIRVJfSVZfTEVOR1RIKHNsb3QtPmF0dHIudHlwZSwgYWxnKSkgeworICAgICAgICBzdGF0dXMgPSBQU0FfRVJST1JfSU5WQUxJRF9BUkdVTUVOVDsKKyAgICAgICAgZ290byBleGl0OworICAgIH0KKworICAgIExPQ0FMX0lOUFVUX0FMTE9DKGlucHV0X2V4dGVybmFsLCBpbnB1dF9sZW5ndGgsIGlucHV0KTsKKyAgICBMT0NBTF9PVVRQVVRfQUxMT0Mob3V0cHV0X2V4dGVybmFsLCBvdXRwdXRfc2l6ZSwgb3V0cHV0KTsKKworICAgIHN0YXR1cyA9IHBzYV9kcml2ZXJfd3JhcHBlcl9jaXBoZXJfZGVjcnlwdCgKKyAgICAgICAgJnNsb3QtPmF0dHIsIHNsb3QtPmtleS5kYXRhLCBzbG90LT5rZXkuYnl0ZXMsCisgICAgICAgIGFsZywgaW5wdXQsIGlucHV0X2xlbmd0aCwKKyAgICAgICAgb3V0cHV0LCBvdXRwdXRfc2l6ZSwgb3V0cHV0X2xlbmd0aCk7CisKK2V4aXQ6CisgICAgdW5sb2NrX3N0YXR1cyA9IHBzYV91bnJlZ2lzdGVyX3JlYWRfdW5kZXJfbXV0ZXgoc2xvdCk7CisgICAgaWYgKHN0YXR1cyA9PSBQU0FfU1VDQ0VTUykgeworICAgICAgICBzdGF0dXMgPSB1bmxvY2tfc3RhdHVzOworICAgIH0KKworICAgIGlmIChzdGF0dXMgIT0gUFNBX1NVQ0NFU1MpIHsKKyAgICAgICAgKm91dHB1dF9sZW5ndGggPSAwOworICAgIH0KKworICAgIExPQ0FMX0lOUFVUX0ZSRUUoaW5wdXRfZXh0ZXJuYWwsIGlucHV0KTsKKyAgICBMT0NBTF9PVVRQVVRfRlJFRShvdXRwdXRfZXh0ZXJuYWwsIG91dHB1dCk7CisKKyAgICByZXR1cm4gc3RhdHVzOworfQorCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworLyogQUVBRCAqLworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKy8qIEhlbHBlciBmdW5jdGlvbiB0byBnZXQgdGhlIGJhc2UgYWxnb3JpdGhtIGZyb20gaXRzIHZhcmlhbnRzLiAqLworc3RhdGljIHBzYV9hbGdvcml0aG1fdCBwc2FfYWVhZF9nZXRfYmFzZV9hbGdvcml0aG0ocHNhX2FsZ29yaXRobV90IGFsZykKK3sKKyAgICByZXR1cm4gUFNBX0FMR19BRUFEX1dJVEhfREVGQVVMVF9MRU5HVEhfVEFHKGFsZyk7Cit9CisKKy8qIEhlbHBlciBmdW5jdGlvbiB0byBwZXJmb3JtIGNvbW1vbiBub25jZSBsZW5ndGggY2hlY2tzLiAqLworc3RhdGljIHBzYV9zdGF0dXNfdCBwc2FfYWVhZF9jaGVja19ub25jZV9sZW5ndGgocHNhX2FsZ29yaXRobV90IGFsZywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBub25jZV9sZW5ndGgpCit7CisgICAgcHNhX2FsZ29yaXRobV90IGJhc2VfYWxnID0gcHNhX2FlYWRfZ2V0X2Jhc2VfYWxnb3JpdGhtKGFsZyk7CisKKyAgICBzd2l0Y2ggKGJhc2VfYWxnKSB7CisjaWYgZGVmaW5lZChQU0FfV0FOVF9BTEdfR0NNKQorICAgICAgICBjYXNlIFBTQV9BTEdfR0NNOgorICAgICAgICAgICAgLyogTm90IGNoZWNraW5nIG1heCBub25jZSBzaXplIGhlcmUgYXMgR0NNIHNwZWMgYWxsb3dzIGFsbW9zdAorICAgICAgICAgICAgICogYXJiaXRyYXJpbHkgbGFyZ2Ugbm9uY2VzLiBQbGVhc2Ugbm90ZSB0aGF0IHdlIGRvIG5vdCBnZW5lcmFsbHkKKyAgICAgICAgICAgICAqIHJlY29tbWVuZCB0aGUgdXNhZ2Ugb2Ygbm9uY2VzIG9mIGdyZWF0ZXIgbGVuZ3RoIHRoYW4KKyAgICAgICAgICAgICAqIFBTQV9BRUFEX05PTkNFX01BWF9TSVpFLCBhcyBsYXJnZSBub25jZXMgYXJlIGhhc2hlZCB0byBhIHNob3J0ZXIKKyAgICAgICAgICAgICAqIHNpemUsIHdoaWNoIGNhbiB0aGVuIGxlYWQgdG8gY29sbGlzaW9ucyBpZiB5b3UgZW5jcnlwdCBhIHZlcnkKKyAgICAgICAgICAgICAqIGxhcmdlIG51bWJlciBvZiBtZXNzYWdlcy4qLworICAgICAgICAgICAgaWYgKG5vbmNlX2xlbmd0aCAhPSAwKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIFBTQV9TVUNDRVNTOworICAgICAgICAgICAgfQorICAgICAgICAgICAgYnJlYWs7CisjZW5kaWYgLyogUFNBX1dBTlRfQUxHX0dDTSAqLworI2lmIGRlZmluZWQoUFNBX1dBTlRfQUxHX0NDTSkKKyAgICAgICAgY2FzZSBQU0FfQUxHX0NDTToKKyAgICAgICAgICAgIGlmIChub25jZV9sZW5ndGggPj0gNyAmJiBub25jZV9sZW5ndGggPD0gMTMpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gUFNBX1NVQ0NFU1M7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBicmVhazsKKyNlbmRpZiAvKiBQU0FfV0FOVF9BTEdfQ0NNICovCisjaWYgZGVmaW5lZChQU0FfV0FOVF9BTEdfQ0hBQ0hBMjBfUE9MWTEzMDUpCisgICAgICAgIGNhc2UgUFNBX0FMR19DSEFDSEEyMF9QT0xZMTMwNToKKyAgICAgICAgICAgIGlmIChub25jZV9sZW5ndGggPT0gMTIpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gUFNBX1NVQ0NFU1M7CisgICAgICAgICAgICB9IGVsc2UgaWYgKG5vbmNlX2xlbmd0aCA9PSA4KSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIFBTQV9FUlJPUl9OT1RfU1VQUE9SVEVEOworICAgICAgICAgICAgfQorICAgICAgICAgICAgYnJlYWs7CisjZW5kaWYgLyogUFNBX1dBTlRfQUxHX0NIQUNIQTIwX1BPTFkxMzA1ICovCisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICAodm9pZCkgbm9uY2VfbGVuZ3RoOworICAgICAgICAgICAgcmV0dXJuIFBTQV9FUlJPUl9OT1RfU1VQUE9SVEVEOworICAgIH0KKworICAgIHJldHVybiBQU0FfRVJST1JfSU5WQUxJRF9BUkdVTUVOVDsKK30KKworc3RhdGljIHBzYV9zdGF0dXNfdCBwc2FfYWVhZF9jaGVja19hbGdvcml0aG0ocHNhX2FsZ29yaXRobV90IGFsZykKK3sKKyAgICBpZiAoIVBTQV9BTEdfSVNfQUVBRChhbGcpIHx8IFBTQV9BTEdfSVNfV0lMRENBUkQoYWxnKSkgeworICAgICAgICByZXR1cm4gUFNBX0VSUk9SX0lOVkFMSURfQVJHVU1FTlQ7CisgICAgfQorCisgICAgcmV0dXJuIFBTQV9TVUNDRVNTOworfQorCitwc2Ffc3RhdHVzX3QgcHNhX2FlYWRfZW5jcnlwdChtYmVkdGxzX3N2Y19rZXlfaWRfdCBrZXksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwc2FfYWxnb3JpdGhtX3QgYWxnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdWludDhfdCAqbm9uY2VfZXh0ZXJuYWwsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3Qgbm9uY2VfbGVuZ3RoLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdWludDhfdCAqYWRkaXRpb25hbF9kYXRhX2V4dGVybmFsLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IGFkZGl0aW9uYWxfZGF0YV9sZW5ndGgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1aW50OF90ICpwbGFpbnRleHRfZXh0ZXJuYWwsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgcGxhaW50ZXh0X2xlbmd0aCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQ4X3QgKmNpcGhlcnRleHRfZXh0ZXJuYWwsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgY2lwaGVydGV4dF9zaXplLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90ICpjaXBoZXJ0ZXh0X2xlbmd0aCkKK3sKKyAgICBwc2Ffc3RhdHVzX3Qgc3RhdHVzID0gUFNBX0VSUk9SX0NPUlJVUFRJT05fREVURUNURUQ7CisgICAgcHNhX2tleV9zbG90X3QgKnNsb3Q7CisKKyAgICBMT0NBTF9JTlBVVF9ERUNMQVJFKG5vbmNlX2V4dGVybmFsLCBub25jZSk7CisgICAgTE9DQUxfSU5QVVRfREVDTEFSRShhZGRpdGlvbmFsX2RhdGFfZXh0ZXJuYWwsIGFkZGl0aW9uYWxfZGF0YSk7CisgICAgTE9DQUxfSU5QVVRfREVDTEFSRShwbGFpbnRleHRfZXh0ZXJuYWwsIHBsYWludGV4dCk7CisgICAgTE9DQUxfT1VUUFVUX0RFQ0xBUkUoY2lwaGVydGV4dF9leHRlcm5hbCwgY2lwaGVydGV4dCk7CisKKyAgICAqY2lwaGVydGV4dF9sZW5ndGggPSAwOworCisgICAgc3RhdHVzID0gcHNhX2FlYWRfY2hlY2tfYWxnb3JpdGhtKGFsZyk7CisgICAgaWYgKHN0YXR1cyAhPSBQU0FfU1VDQ0VTUykgeworICAgICAgICByZXR1cm4gc3RhdHVzOworICAgIH0KKworICAgIHN0YXR1cyA9IHBzYV9nZXRfYW5kX2xvY2tfa2V5X3Nsb3Rfd2l0aF9wb2xpY3koCisgICAgICAgIGtleSwgJnNsb3QsIFBTQV9LRVlfVVNBR0VfRU5DUllQVCwgYWxnKTsKKyAgICBpZiAoc3RhdHVzICE9IFBTQV9TVUNDRVNTKSB7CisgICAgICAgIHJldHVybiBzdGF0dXM7CisgICAgfQorCisgICAgTE9DQUxfSU5QVVRfQUxMT0Mobm9uY2VfZXh0ZXJuYWwsIG5vbmNlX2xlbmd0aCwgbm9uY2UpOworICAgIExPQ0FMX0lOUFVUX0FMTE9DKGFkZGl0aW9uYWxfZGF0YV9leHRlcm5hbCwgYWRkaXRpb25hbF9kYXRhX2xlbmd0aCwgYWRkaXRpb25hbF9kYXRhKTsKKyAgICBMT0NBTF9JTlBVVF9BTExPQyhwbGFpbnRleHRfZXh0ZXJuYWwsIHBsYWludGV4dF9sZW5ndGgsIHBsYWludGV4dCk7CisgICAgTE9DQUxfT1VUUFVUX0FMTE9DKGNpcGhlcnRleHRfZXh0ZXJuYWwsIGNpcGhlcnRleHRfc2l6ZSwgY2lwaGVydGV4dCk7CisKKyAgICBzdGF0dXMgPSBwc2FfYWVhZF9jaGVja19ub25jZV9sZW5ndGgoYWxnLCBub25jZV9sZW5ndGgpOworICAgIGlmIChzdGF0dXMgIT0gUFNBX1NVQ0NFU1MpIHsKKyAgICAgICAgZ290byBleGl0OworICAgIH0KKworICAgIHN0YXR1cyA9IHBzYV9kcml2ZXJfd3JhcHBlcl9hZWFkX2VuY3J5cHQoCisgICAgICAgICZzbG90LT5hdHRyLCBzbG90LT5rZXkuZGF0YSwgc2xvdC0+a2V5LmJ5dGVzLAorICAgICAgICBhbGcsCisgICAgICAgIG5vbmNlLCBub25jZV9sZW5ndGgsCisgICAgICAgIGFkZGl0aW9uYWxfZGF0YSwgYWRkaXRpb25hbF9kYXRhX2xlbmd0aCwKKyAgICAgICAgcGxhaW50ZXh0LCBwbGFpbnRleHRfbGVuZ3RoLAorICAgICAgICBjaXBoZXJ0ZXh0LCBjaXBoZXJ0ZXh0X3NpemUsIGNpcGhlcnRleHRfbGVuZ3RoKTsKKworICAgIGlmIChzdGF0dXMgIT0gUFNBX1NVQ0NFU1MgJiYgY2lwaGVydGV4dF9zaXplICE9IDApIHsKKyAgICAgICAgbWVtc2V0KGNpcGhlcnRleHQsIDAsIGNpcGhlcnRleHRfc2l6ZSk7CisgICAgfQorCitleGl0OgorICAgIExPQ0FMX0lOUFVUX0ZSRUUobm9uY2VfZXh0ZXJuYWwsIG5vbmNlKTsKKyAgICBMT0NBTF9JTlBVVF9GUkVFKGFkZGl0aW9uYWxfZGF0YV9leHRlcm5hbCwgYWRkaXRpb25hbF9kYXRhKTsKKyAgICBMT0NBTF9JTlBVVF9GUkVFKHBsYWludGV4dF9leHRlcm5hbCwgcGxhaW50ZXh0KTsKKyAgICBMT0NBTF9PVVRQVVRfRlJFRShjaXBoZXJ0ZXh0X2V4dGVybmFsLCBjaXBoZXJ0ZXh0KTsKKworICAgIHBzYV91bnJlZ2lzdGVyX3JlYWRfdW5kZXJfbXV0ZXgoc2xvdCk7CisKKyAgICByZXR1cm4gc3RhdHVzOworfQorCitwc2Ffc3RhdHVzX3QgcHNhX2FlYWRfZGVjcnlwdChtYmVkdGxzX3N2Y19rZXlfaWRfdCBrZXksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwc2FfYWxnb3JpdGhtX3QgYWxnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdWludDhfdCAqbm9uY2VfZXh0ZXJuYWwsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3Qgbm9uY2VfbGVuZ3RoLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdWludDhfdCAqYWRkaXRpb25hbF9kYXRhX2V4dGVybmFsLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IGFkZGl0aW9uYWxfZGF0YV9sZW5ndGgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1aW50OF90ICpjaXBoZXJ0ZXh0X2V4dGVybmFsLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IGNpcGhlcnRleHRfbGVuZ3RoLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDhfdCAqcGxhaW50ZXh0X2V4dGVybmFsLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IHBsYWludGV4dF9zaXplLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90ICpwbGFpbnRleHRfbGVuZ3RoKQoreworICAgIHBzYV9zdGF0dXNfdCBzdGF0dXMgPSBQU0FfRVJST1JfQ09SUlVQVElPTl9ERVRFQ1RFRDsKKyAgICBwc2Ffa2V5X3Nsb3RfdCAqc2xvdDsKKworICAgIExPQ0FMX0lOUFVUX0RFQ0xBUkUobm9uY2VfZXh0ZXJuYWwsIG5vbmNlKTsKKyAgICBMT0NBTF9JTlBVVF9ERUNMQVJFKGFkZGl0aW9uYWxfZGF0YV9leHRlcm5hbCwgYWRkaXRpb25hbF9kYXRhKTsKKyAgICBMT0NBTF9JTlBVVF9ERUNMQVJFKGNpcGhlcnRleHRfZXh0ZXJuYWwsIGNpcGhlcnRleHQpOworICAgIExPQ0FMX09VVFBVVF9ERUNMQVJFKHBsYWludGV4dF9leHRlcm5hbCwgcGxhaW50ZXh0KTsKKworICAgICpwbGFpbnRleHRfbGVuZ3RoID0gMDsKKworICAgIHN0YXR1cyA9IHBzYV9hZWFkX2NoZWNrX2FsZ29yaXRobShhbGcpOworICAgIGlmIChzdGF0dXMgIT0gUFNBX1NVQ0NFU1MpIHsKKyAgICAgICAgcmV0dXJuIHN0YXR1czsKKyAgICB9CisKKyAgICBzdGF0dXMgPSBwc2FfZ2V0X2FuZF9sb2NrX2tleV9zbG90X3dpdGhfcG9saWN5KAorICAgICAgICBrZXksICZzbG90LCBQU0FfS0VZX1VTQUdFX0RFQ1JZUFQsIGFsZyk7CisgICAgaWYgKHN0YXR1cyAhPSBQU0FfU1VDQ0VTUykgeworICAgICAgICByZXR1cm4gc3RhdHVzOworICAgIH0KKworICAgIExPQ0FMX0lOUFVUX0FMTE9DKG5vbmNlX2V4dGVybmFsLCBub25jZV9sZW5ndGgsIG5vbmNlKTsKKyAgICBMT0NBTF9JTlBVVF9BTExPQyhhZGRpdGlvbmFsX2RhdGFfZXh0ZXJuYWwsIGFkZGl0aW9uYWxfZGF0YV9sZW5ndGgsCisgICAgICAgICAgICAgICAgICAgICAgYWRkaXRpb25hbF9kYXRhKTsKKyAgICBMT0NBTF9JTlBVVF9BTExPQyhjaXBoZXJ0ZXh0X2V4dGVybmFsLCBjaXBoZXJ0ZXh0X2xlbmd0aCwgY2lwaGVydGV4dCk7CisgICAgTE9DQUxfT1VUUFVUX0FMTE9DKHBsYWludGV4dF9leHRlcm5hbCwgcGxhaW50ZXh0X3NpemUsIHBsYWludGV4dCk7CisKKyAgICBzdGF0dXMgPSBwc2FfYWVhZF9jaGVja19ub25jZV9sZW5ndGgoYWxnLCBub25jZV9sZW5ndGgpOworICAgIGlmIChzdGF0dXMgIT0gUFNBX1NVQ0NFU1MpIHsKKyAgICAgICAgZ290byBleGl0OworICAgIH0KKworICAgIHN0YXR1cyA9IHBzYV9kcml2ZXJfd3JhcHBlcl9hZWFkX2RlY3J5cHQoCisgICAgICAgICZzbG90LT5hdHRyLCBzbG90LT5rZXkuZGF0YSwgc2xvdC0+a2V5LmJ5dGVzLAorICAgICAgICBhbGcsCisgICAgICAgIG5vbmNlLCBub25jZV9sZW5ndGgsCisgICAgICAgIGFkZGl0aW9uYWxfZGF0YSwgYWRkaXRpb25hbF9kYXRhX2xlbmd0aCwKKyAgICAgICAgY2lwaGVydGV4dCwgY2lwaGVydGV4dF9sZW5ndGgsCisgICAgICAgIHBsYWludGV4dCwgcGxhaW50ZXh0X3NpemUsIHBsYWludGV4dF9sZW5ndGgpOworCisgICAgaWYgKHN0YXR1cyAhPSBQU0FfU1VDQ0VTUyAmJiBwbGFpbnRleHRfc2l6ZSAhPSAwKSB7CisgICAgICAgIG1lbXNldChwbGFpbnRleHQsIDAsIHBsYWludGV4dF9zaXplKTsKKyAgICB9CisKK2V4aXQ6CisgICAgTE9DQUxfSU5QVVRfRlJFRShub25jZV9leHRlcm5hbCwgbm9uY2UpOworICAgIExPQ0FMX0lOUFVUX0ZSRUUoYWRkaXRpb25hbF9kYXRhX2V4dGVybmFsLCBhZGRpdGlvbmFsX2RhdGEpOworICAgIExPQ0FMX0lOUFVUX0ZSRUUoY2lwaGVydGV4dF9leHRlcm5hbCwgY2lwaGVydGV4dCk7CisgICAgTE9DQUxfT1VUUFVUX0ZSRUUocGxhaW50ZXh0X2V4dGVybmFsLCBwbGFpbnRleHQpOworCisgICAgcHNhX3VucmVnaXN0ZXJfcmVhZF91bmRlcl9tdXRleChzbG90KTsKKworICAgIHJldHVybiBzdGF0dXM7Cit9CisKK3N0YXRpYyBwc2Ffc3RhdHVzX3QgcHNhX3ZhbGlkYXRlX3RhZ19sZW5ndGgocHNhX2FsZ29yaXRobV90IGFsZykKK3sKKyAgICBjb25zdCB1aW50OF90IHRhZ19sZW4gPSBQU0FfQUxHX0FFQURfR0VUX1RBR19MRU5HVEgoYWxnKTsKKworICAgIHN3aXRjaCAoUFNBX0FMR19BRUFEX1dJVEhfU0hPUlRFTkVEX1RBRyhhbGcsIDApKSB7CisjaWYgZGVmaW5lZChQU0FfV0FOVF9BTEdfQ0NNKQorICAgICAgICBjYXNlIFBTQV9BTEdfQUVBRF9XSVRIX1NIT1JURU5FRF9UQUcoUFNBX0FMR19DQ00sIDApOgorICAgICAgICAgICAgLyogQ0NNIGFsbG93cyB0aGUgZm9sbG93aW5nIHRhZyBsZW5ndGhzOiA0LCA2LCA4LCAxMCwgMTIsIDE0LCAxNi4qLworICAgICAgICAgICAgaWYgKHRhZ19sZW4gPCA0IHx8IHRhZ19sZW4gPiAxNiB8fCB0YWdfbGVuICUgMikgeworICAgICAgICAgICAgICAgIHJldHVybiBQU0FfRVJST1JfSU5WQUxJRF9BUkdVTUVOVDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGJyZWFrOworI2VuZGlmIC8qIFBTQV9XQU5UX0FMR19DQ00gKi8KKworI2lmIGRlZmluZWQoUFNBX1dBTlRfQUxHX0dDTSkKKyAgICAgICAgY2FzZSBQU0FfQUxHX0FFQURfV0lUSF9TSE9SVEVORURfVEFHKFBTQV9BTEdfR0NNLCAwKToKKyAgICAgICAgICAgIC8qIEdDTSBhbGxvd3MgdGhlIGZvbGxvd2luZyB0YWcgbGVuZ3RoczogNCwgOCwgMTIsIDEzLCAxNCwgMTUsIDE2LiAqLworICAgICAgICAgICAgaWYgKHRhZ19sZW4gIT0gNCAmJiB0YWdfbGVuICE9IDggJiYgKHRhZ19sZW4gPCAxMiB8fCB0YWdfbGVuID4gMTYpKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIFBTQV9FUlJPUl9JTlZBTElEX0FSR1VNRU5UOworICAgICAgICAgICAgfQorICAgICAgICAgICAgYnJlYWs7CisjZW5kaWYgLyogUFNBX1dBTlRfQUxHX0dDTSAqLworCisjaWYgZGVmaW5lZChQU0FfV0FOVF9BTEdfQ0hBQ0hBMjBfUE9MWTEzMDUpCisgICAgICAgIGNhc2UgUFNBX0FMR19BRUFEX1dJVEhfU0hPUlRFTkVEX1RBRyhQU0FfQUxHX0NIQUNIQTIwX1BPTFkxMzA1LCAwKToKKyAgICAgICAgICAgIC8qIFdlIG9ubHkgc3VwcG9ydCB0aGUgZGVmYXVsdCB0YWcgbGVuZ3RoLiAqLworICAgICAgICAgICAgaWYgKHRhZ19sZW4gIT0gMTYpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gUFNBX0VSUk9SX0lOVkFMSURfQVJHVU1FTlQ7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBicmVhazsKKyNlbmRpZiAvKiBQU0FfV0FOVF9BTEdfQ0hBQ0hBMjBfUE9MWTEzMDUgKi8KKworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgKHZvaWQpIHRhZ19sZW47CisgICAgICAgICAgICByZXR1cm4gUFNBX0VSUk9SX05PVF9TVVBQT1JURUQ7CisgICAgfQorICAgIHJldHVybiBQU0FfU1VDQ0VTUzsKK30KKworLyogU2V0IHRoZSBrZXkgZm9yIGEgbXVsdGlwYXJ0IGF1dGhlbnRpY2F0ZWQgb3BlcmF0aW9uLiAqLworc3RhdGljIHBzYV9zdGF0dXNfdCBwc2FfYWVhZF9zZXR1cChwc2FfYWVhZF9vcGVyYXRpb25fdCAqb3BlcmF0aW9uLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgaXNfZW5jcnlwdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWJlZHRsc19zdmNfa2V5X2lkX3Qga2V5LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwc2FfYWxnb3JpdGhtX3QgYWxnKQoreworICAgIHBzYV9zdGF0dXNfdCBzdGF0dXMgPSBQU0FfRVJST1JfQ09SUlVQVElPTl9ERVRFQ1RFRDsKKyAgICBwc2Ffc3RhdHVzX3QgdW5sb2NrX3N0YXR1cyA9IFBTQV9FUlJPUl9DT1JSVVBUSU9OX0RFVEVDVEVEOworICAgIHBzYV9rZXlfc2xvdF90ICpzbG90ID0gTlVMTDsKKyAgICBwc2Ffa2V5X3VzYWdlX3Qga2V5X3VzYWdlID0gMDsKKworICAgIHN0YXR1cyA9IHBzYV9hZWFkX2NoZWNrX2FsZ29yaXRobShhbGcpOworICAgIGlmIChzdGF0dXMgIT0gUFNBX1NVQ0NFU1MpIHsKKyAgICAgICAgZ290byBleGl0OworICAgIH0KKworICAgIGlmIChvcGVyYXRpb24tPmlkICE9IDApIHsKKyAgICAgICAgc3RhdHVzID0gUFNBX0VSUk9SX0JBRF9TVEFURTsKKyAgICAgICAgZ290byBleGl0OworICAgIH0KKworICAgIGlmIChvcGVyYXRpb24tPm5vbmNlX3NldCB8fCBvcGVyYXRpb24tPmxlbmd0aHNfc2V0IHx8CisgICAgICAgIG9wZXJhdGlvbi0+YWRfc3RhcnRlZCB8fCBvcGVyYXRpb24tPmJvZHlfc3RhcnRlZCkgeworICAgICAgICBzdGF0dXMgPSBQU0FfRVJST1JfQkFEX1NUQVRFOworICAgICAgICBnb3RvIGV4aXQ7CisgICAgfQorCisgICAgaWYgKGlzX2VuY3J5cHQpIHsKKyAgICAgICAga2V5X3VzYWdlID0gUFNBX0tFWV9VU0FHRV9FTkNSWVBUOworICAgIH0gZWxzZSB7CisgICAgICAgIGtleV91c2FnZSA9IFBTQV9LRVlfVVNBR0VfREVDUllQVDsKKyAgICB9CisKKyAgICBzdGF0dXMgPSBwc2FfZ2V0X2FuZF9sb2NrX2tleV9zbG90X3dpdGhfcG9saWN5KGtleSwgJnNsb3QsIGtleV91c2FnZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFsZyk7CisgICAgaWYgKHN0YXR1cyAhPSBQU0FfU1VDQ0VTUykgeworICAgICAgICBnb3RvIGV4aXQ7CisgICAgfQorCisgICAgaWYgKChzdGF0dXMgPSBwc2FfdmFsaWRhdGVfdGFnX2xlbmd0aChhbGcpKSAhPSBQU0FfU1VDQ0VTUykgeworICAgICAgICBnb3RvIGV4aXQ7CisgICAgfQorCisgICAgaWYgKGlzX2VuY3J5cHQpIHsKKyAgICAgICAgc3RhdHVzID0gcHNhX2RyaXZlcl93cmFwcGVyX2FlYWRfZW5jcnlwdF9zZXR1cChvcGVyYXRpb24sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJnNsb3QtPmF0dHIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2xvdC0+a2V5LmRhdGEsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2xvdC0+a2V5LmJ5dGVzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFsZyk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgc3RhdHVzID0gcHNhX2RyaXZlcl93cmFwcGVyX2FlYWRfZGVjcnlwdF9zZXR1cChvcGVyYXRpb24sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJnNsb3QtPmF0dHIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2xvdC0+a2V5LmRhdGEsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2xvdC0+a2V5LmJ5dGVzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFsZyk7CisgICAgfQorICAgIGlmIChzdGF0dXMgIT0gUFNBX1NVQ0NFU1MpIHsKKyAgICAgICAgZ290byBleGl0OworICAgIH0KKworICAgIG9wZXJhdGlvbi0+a2V5X3R5cGUgPSBwc2FfZ2V0X2tleV90eXBlKCZzbG90LT5hdHRyKTsKKworZXhpdDoKKyAgICB1bmxvY2tfc3RhdHVzID0gcHNhX3VucmVnaXN0ZXJfcmVhZF91bmRlcl9tdXRleChzbG90KTsKKworICAgIGlmIChzdGF0dXMgPT0gUFNBX1NVQ0NFU1MpIHsKKyAgICAgICAgc3RhdHVzID0gdW5sb2NrX3N0YXR1czsKKyAgICAgICAgb3BlcmF0aW9uLT5hbGcgPSBwc2FfYWVhZF9nZXRfYmFzZV9hbGdvcml0aG0oYWxnKTsKKyAgICAgICAgb3BlcmF0aW9uLT5pc19lbmNyeXB0ID0gaXNfZW5jcnlwdDsKKyAgICB9IGVsc2UgeworICAgICAgICBwc2FfYWVhZF9hYm9ydChvcGVyYXRpb24pOworICAgIH0KKworICAgIHJldHVybiBzdGF0dXM7Cit9CisKKy8qIFNldCB0aGUga2V5IGZvciBhIG11bHRpcGFydCBhdXRoZW50aWNhdGVkIGVuY3J5cHRpb24gb3BlcmF0aW9uLiAqLworcHNhX3N0YXR1c190IHBzYV9hZWFkX2VuY3J5cHRfc2V0dXAocHNhX2FlYWRfb3BlcmF0aW9uX3QgKm9wZXJhdGlvbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1iZWR0bHNfc3ZjX2tleV9pZF90IGtleSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBzYV9hbGdvcml0aG1fdCBhbGcpCit7CisgICAgcmV0dXJuIHBzYV9hZWFkX3NldHVwKG9wZXJhdGlvbiwgMSwga2V5LCBhbGcpOworfQorCisvKiBTZXQgdGhlIGtleSBmb3IgYSBtdWx0aXBhcnQgYXV0aGVudGljYXRlZCBkZWNyeXB0aW9uIG9wZXJhdGlvbi4gKi8KK3BzYV9zdGF0dXNfdCBwc2FfYWVhZF9kZWNyeXB0X3NldHVwKHBzYV9hZWFkX29wZXJhdGlvbl90ICpvcGVyYXRpb24sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYmVkdGxzX3N2Y19rZXlfaWRfdCBrZXksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwc2FfYWxnb3JpdGhtX3QgYWxnKQoreworICAgIHJldHVybiBwc2FfYWVhZF9zZXR1cChvcGVyYXRpb24sIDAsIGtleSwgYWxnKTsKK30KKworc3RhdGljIHBzYV9zdGF0dXNfdCBwc2FfYWVhZF9zZXRfbm9uY2VfaW50ZXJuYWwocHNhX2FlYWRfb3BlcmF0aW9uX3QgKm9wZXJhdGlvbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVpbnQ4X3QgKm5vbmNlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IG5vbmNlX2xlbmd0aCkKK3sKKyAgICBwc2Ffc3RhdHVzX3Qgc3RhdHVzID0gUFNBX0VSUk9SX0NPUlJVUFRJT05fREVURUNURUQ7CisKKyAgICBpZiAob3BlcmF0aW9uLT5pZCA9PSAwKSB7CisgICAgICAgIHN0YXR1cyA9IFBTQV9FUlJPUl9CQURfU1RBVEU7CisgICAgICAgIGdvdG8gZXhpdDsKKyAgICB9CisKKyAgICBpZiAob3BlcmF0aW9uLT5ub25jZV9zZXQpIHsKKyAgICAgICAgc3RhdHVzID0gUFNBX0VSUk9SX0JBRF9TVEFURTsKKyAgICAgICAgZ290byBleGl0OworICAgIH0KKworICAgIHN0YXR1cyA9IHBzYV9hZWFkX2NoZWNrX25vbmNlX2xlbmd0aChvcGVyYXRpb24tPmFsZywgbm9uY2VfbGVuZ3RoKTsKKyAgICBpZiAoc3RhdHVzICE9IFBTQV9TVUNDRVNTKSB7CisgICAgICAgIHN0YXR1cyA9IFBTQV9FUlJPUl9JTlZBTElEX0FSR1VNRU5UOworICAgICAgICBnb3RvIGV4aXQ7CisgICAgfQorCisgICAgc3RhdHVzID0gcHNhX2RyaXZlcl93cmFwcGVyX2FlYWRfc2V0X25vbmNlKG9wZXJhdGlvbiwgbm9uY2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbmNlX2xlbmd0aCk7CisKK2V4aXQ6CisgICAgaWYgKHN0YXR1cyA9PSBQU0FfU1VDQ0VTUykgeworICAgICAgICBvcGVyYXRpb24tPm5vbmNlX3NldCA9IDE7CisgICAgfSBlbHNlIHsKKyAgICAgICAgcHNhX2FlYWRfYWJvcnQob3BlcmF0aW9uKTsKKyAgICB9CisKKyAgICByZXR1cm4gc3RhdHVzOworfQorCisvKiBHZW5lcmF0ZSBhIHJhbmRvbSBub25jZSAvIElWIGZvciBtdWx0aXBhcnQgQUVBRCBvcGVyYXRpb24gKi8KK3BzYV9zdGF0dXNfdCBwc2FfYWVhZF9nZW5lcmF0ZV9ub25jZShwc2FfYWVhZF9vcGVyYXRpb25fdCAqb3BlcmF0aW9uLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQ4X3QgKm5vbmNlX2V4dGVybmFsLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBub25jZV9zaXplLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCAqbm9uY2VfbGVuZ3RoKQoreworICAgIHBzYV9zdGF0dXNfdCBzdGF0dXMgPSBQU0FfRVJST1JfQ09SUlVQVElPTl9ERVRFQ1RFRDsKKyAgICB1aW50OF90IGxvY2FsX25vbmNlW1BTQV9BRUFEX05PTkNFX01BWF9TSVpFXTsKKyAgICBzaXplX3QgcmVxdWlyZWRfbm9uY2Vfc2l6ZSA9IDA7CisKKyAgICBMT0NBTF9PVVRQVVRfREVDTEFSRShub25jZV9leHRlcm5hbCwgbm9uY2UpOworICAgIExPQ0FMX09VVFBVVF9BTExPQyhub25jZV9leHRlcm5hbCwgbm9uY2Vfc2l6ZSwgbm9uY2UpOworCisgICAgKm5vbmNlX2xlbmd0aCA9IDA7CisKKyAgICBpZiAob3BlcmF0aW9uLT5pZCA9PSAwKSB7CisgICAgICAgIHN0YXR1cyA9IFBTQV9FUlJPUl9CQURfU1RBVEU7CisgICAgICAgIGdvdG8gZXhpdDsKKyAgICB9CisKKyAgICBpZiAob3BlcmF0aW9uLT5ub25jZV9zZXQgfHwgIW9wZXJhdGlvbi0+aXNfZW5jcnlwdCkgeworICAgICAgICBzdGF0dXMgPSBQU0FfRVJST1JfQkFEX1NUQVRFOworICAgICAgICBnb3RvIGV4aXQ7CisgICAgfQorCisgICAgLyogRm9yIENDTSwgdGhpcyBzaXplIG1heSBub3QgYmUgY29ycmVjdCBhY2NvcmRpbmcgdG8gdGhlIFBTQQorICAgICAqIHNwZWNpZmljYXRpb24uIFRoZSBQU0EgQ3J5cHRvIDEuMC4xIHNwZWNpZmljYXRpb24gc3RhdGVzOgorICAgICAqCisgICAgICogQ0NNIGVuY29kZXMgdGhlIHBsYWludGV4dCBsZW5ndGggcExlbiBpbiBMIG9jdGV0cywgd2l0aCBMIHRoZSBzbWFsbGVzdAorICAgICAqIGludGVnZXIgPj0gMiB3aGVyZSBwTGVuIDwgMl4oOEwpLiBUaGUgbm9uY2UgbGVuZ3RoIGlzIHRoZW4gMTUgLSBMIGJ5dGVzLgorICAgICAqCisgICAgICogSG93ZXZlciB0aGlzIHJlc3RyaWN0aW9uIHRoYXQgTCBoYXMgdG8gYmUgdGhlIHNtYWxsZXN0IGludGVnZXIgaXMgbm90CisgICAgICogYXBwbGllZCBpbiBwcmFjdGljZSwgYW5kIGl0IGlzIG5vdCBpbXBsZW1lbnRhYmxlIGhlcmUgc2luY2UgdGhlCisgICAgICogcGxhaW50ZXh0IGxlbmd0aCBtYXkgb3IgbWF5IG5vdCBiZSBrbm93biBhdCB0aGlzIHRpbWUuICovCisgICAgcmVxdWlyZWRfbm9uY2Vfc2l6ZSA9IFBTQV9BRUFEX05PTkNFX0xFTkdUSChvcGVyYXRpb24tPmtleV90eXBlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3BlcmF0aW9uLT5hbGcpOworICAgIGlmIChub25jZV9zaXplIDwgcmVxdWlyZWRfbm9uY2Vfc2l6ZSkgeworICAgICAgICBzdGF0dXMgPSBQU0FfRVJST1JfQlVGRkVSX1RPT19TTUFMTDsKKyAgICAgICAgZ290byBleGl0OworICAgIH0KKworICAgIHN0YXR1cyA9IHBzYV9nZW5lcmF0ZV9yYW5kb21faW50ZXJuYWwobG9jYWxfbm9uY2UsIHJlcXVpcmVkX25vbmNlX3NpemUpOworICAgIGlmIChzdGF0dXMgIT0gUFNBX1NVQ0NFU1MpIHsKKyAgICAgICAgZ290byBleGl0OworICAgIH0KKworICAgIHN0YXR1cyA9IHBzYV9hZWFkX3NldF9ub25jZV9pbnRlcm5hbChvcGVyYXRpb24sIGxvY2FsX25vbmNlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1aXJlZF9ub25jZV9zaXplKTsKKworZXhpdDoKKyAgICBpZiAoc3RhdHVzID09IFBTQV9TVUNDRVNTKSB7CisgICAgICAgIG1lbWNweShub25jZSwgbG9jYWxfbm9uY2UsIHJlcXVpcmVkX25vbmNlX3NpemUpOworICAgICAgICAqbm9uY2VfbGVuZ3RoID0gcmVxdWlyZWRfbm9uY2Vfc2l6ZTsKKyAgICB9IGVsc2UgeworICAgICAgICBwc2FfYWVhZF9hYm9ydChvcGVyYXRpb24pOworICAgIH0KKworICAgIExPQ0FMX09VVFBVVF9GUkVFKG5vbmNlX2V4dGVybmFsLCBub25jZSk7CisKKyAgICByZXR1cm4gc3RhdHVzOworfQorCisvKiBTZXQgdGhlIG5vbmNlIGZvciBhIG11bHRpcGFydCBhdXRoZW50aWNhdGVkIGVuY3J5cHRpb24gb3IgZGVjcnlwdGlvbgorICAgb3BlcmF0aW9uLiovCitwc2Ffc3RhdHVzX3QgcHNhX2FlYWRfc2V0X25vbmNlKHBzYV9hZWFkX29wZXJhdGlvbl90ICpvcGVyYXRpb24sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVpbnQ4X3QgKm5vbmNlX2V4dGVybmFsLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3Qgbm9uY2VfbGVuZ3RoKQoreworICAgIHBzYV9zdGF0dXNfdCBzdGF0dXM7CisKKyAgICBMT0NBTF9JTlBVVF9ERUNMQVJFKG5vbmNlX2V4dGVybmFsLCBub25jZSk7CisgICAgTE9DQUxfSU5QVVRfQUxMT0Mobm9uY2VfZXh0ZXJuYWwsIG5vbmNlX2xlbmd0aCwgbm9uY2UpOworCisgICAgc3RhdHVzID0gcHNhX2FlYWRfc2V0X25vbmNlX2ludGVybmFsKG9wZXJhdGlvbiwgbm9uY2UsIG5vbmNlX2xlbmd0aCk7CisKKy8qIEV4aXQgbGFiZWwgaXMgb25seSBuZWVkZWQgZm9yIGJ1ZmZlciBjb3B5aW5nLCBwcmV2ZW50IHVudXNlZCB3YXJuaW5ncy4gKi8KKyNpZiAhZGVmaW5lZChNQkVEVExTX1BTQV9BU1NVTUVfRVhDTFVTSVZFX0JVRkZFUlMpCitleGl0OgorI2VuZGlmCisKKyAgICBMT0NBTF9JTlBVVF9GUkVFKG5vbmNlX2V4dGVybmFsLCBub25jZSk7CisKKyAgICByZXR1cm4gc3RhdHVzOworfQorCisvKiBEZWNsYXJlIHRoZSBsZW5ndGhzIG9mIHRoZSBtZXNzYWdlIGFuZCBhZGRpdGlvbmFsIGRhdGEgZm9yIG11bHRpcGFydCBBRUFELiAqLworcHNhX3N0YXR1c190IHBzYV9hZWFkX3NldF9sZW5ndGhzKHBzYV9hZWFkX29wZXJhdGlvbl90ICpvcGVyYXRpb24sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IGFkX2xlbmd0aCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgcGxhaW50ZXh0X2xlbmd0aCkKK3sKKyAgICBwc2Ffc3RhdHVzX3Qgc3RhdHVzID0gUFNBX0VSUk9SX0NPUlJVUFRJT05fREVURUNURUQ7CisKKyAgICBpZiAob3BlcmF0aW9uLT5pZCA9PSAwKSB7CisgICAgICAgIHN0YXR1cyA9IFBTQV9FUlJPUl9CQURfU1RBVEU7CisgICAgICAgIGdvdG8gZXhpdDsKKyAgICB9CisKKyAgICBpZiAob3BlcmF0aW9uLT5sZW5ndGhzX3NldCB8fCBvcGVyYXRpb24tPmFkX3N0YXJ0ZWQgfHwKKyAgICAgICAgb3BlcmF0aW9uLT5ib2R5X3N0YXJ0ZWQpIHsKKyAgICAgICAgc3RhdHVzID0gUFNBX0VSUk9SX0JBRF9TVEFURTsKKyAgICAgICAgZ290byBleGl0OworICAgIH0KKworICAgIHN3aXRjaCAob3BlcmF0aW9uLT5hbGcpIHsKKyNpZiBkZWZpbmVkKFBTQV9XQU5UX0FMR19HQ00pCisgICAgICAgIGNhc2UgUFNBX0FMR19HQ006CisgICAgICAgICAgICAvKiBMZW5ndGhzIGNhbiBvbmx5IGJlIHRvbyBsYXJnZSBmb3IgR0NNIGlmIHNpemVfdCBpcyBiaWdnZXIgdGhhbiAzMgorICAgICAgICAgICAgICogYml0cy4gV2l0aG91dCB0aGUgZ3VhcmQgdGhpcyBjb2RlIHdpbGwgZ2VuZXJhdGUgd2FybmluZ3Mgb24gMzJiaXQKKyAgICAgICAgICAgICAqIGJ1aWxkcy4gKi8KKyNpZiBTSVpFX01BWCA+IFVJTlQzMl9NQVgKKyAgICAgICAgICAgIGlmICgoKHVpbnQ2NF90KSBhZF9sZW5ndGgpID4+IDYxICE9IDAgfHwKKyAgICAgICAgICAgICAgICAoKHVpbnQ2NF90KSBwbGFpbnRleHRfbGVuZ3RoKSA+IDB4RkZGRkZGRkUwdWxsKSB7CisgICAgICAgICAgICAgICAgc3RhdHVzID0gUFNBX0VSUk9SX0lOVkFMSURfQVJHVU1FTlQ7CisgICAgICAgICAgICAgICAgZ290byBleGl0OworICAgICAgICAgICAgfQorI2VuZGlmCisgICAgICAgICAgICBicmVhazsKKyNlbmRpZiAvKiBQU0FfV0FOVF9BTEdfR0NNICovCisjaWYgZGVmaW5lZChQU0FfV0FOVF9BTEdfQ0NNKQorICAgICAgICBjYXNlIFBTQV9BTEdfQ0NNOgorICAgICAgICAgICAgaWYgKGFkX2xlbmd0aCA+IDB4RkYwMCkgeworICAgICAgICAgICAgICAgIHN0YXR1cyA9IFBTQV9FUlJPUl9JTlZBTElEX0FSR1VNRU5UOworICAgICAgICAgICAgICAgIGdvdG8gZXhpdDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGJyZWFrOworI2VuZGlmIC8qIFBTQV9XQU5UX0FMR19DQ00gKi8KKyNpZiBkZWZpbmVkKFBTQV9XQU5UX0FMR19DSEFDSEEyMF9QT0xZMTMwNSkKKyAgICAgICAgY2FzZSBQU0FfQUxHX0NIQUNIQTIwX1BPTFkxMzA1OgorICAgICAgICAgICAgLyogTm8gbGVuZ3RoIHJlc3RyaWN0aW9ucyBmb3IgQ2hhQ2hhUG9seS4gKi8KKyAgICAgICAgICAgIGJyZWFrOworI2VuZGlmIC8qIFBTQV9XQU5UX0FMR19DSEFDSEEyMF9QT0xZMTMwNSAqLworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgYnJlYWs7CisgICAgfQorCisgICAgc3RhdHVzID0gcHNhX2RyaXZlcl93cmFwcGVyX2FlYWRfc2V0X2xlbmd0aHMob3BlcmF0aW9uLCBhZF9sZW5ndGgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGxhaW50ZXh0X2xlbmd0aCk7CisKK2V4aXQ6CisgICAgaWYgKHN0YXR1cyA9PSBQU0FfU1VDQ0VTUykgeworICAgICAgICBvcGVyYXRpb24tPmFkX3JlbWFpbmluZyA9IGFkX2xlbmd0aDsKKyAgICAgICAgb3BlcmF0aW9uLT5ib2R5X3JlbWFpbmluZyA9IHBsYWludGV4dF9sZW5ndGg7CisgICAgICAgIG9wZXJhdGlvbi0+bGVuZ3Roc19zZXQgPSAxOworICAgIH0gZWxzZSB7CisgICAgICAgIHBzYV9hZWFkX2Fib3J0KG9wZXJhdGlvbik7CisgICAgfQorCisgICAgcmV0dXJuIHN0YXR1czsKK30KKworLyogUGFzcyBhZGRpdGlvbmFsIGRhdGEgdG8gYW4gYWN0aXZlIG11bHRpcGFydCBBRUFEIG9wZXJhdGlvbi4gKi8KK3BzYV9zdGF0dXNfdCBwc2FfYWVhZF91cGRhdGVfYWQocHNhX2FlYWRfb3BlcmF0aW9uX3QgKm9wZXJhdGlvbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdWludDhfdCAqaW5wdXRfZXh0ZXJuYWwsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBpbnB1dF9sZW5ndGgpCit7CisgICAgcHNhX3N0YXR1c190IHN0YXR1cyA9IFBTQV9FUlJPUl9DT1JSVVBUSU9OX0RFVEVDVEVEOworCisgICAgTE9DQUxfSU5QVVRfREVDTEFSRShpbnB1dF9leHRlcm5hbCwgaW5wdXQpOworICAgIExPQ0FMX0lOUFVUX0FMTE9DKGlucHV0X2V4dGVybmFsLCBpbnB1dF9sZW5ndGgsIGlucHV0KTsKKworICAgIGlmIChvcGVyYXRpb24tPmlkID09IDApIHsKKyAgICAgICAgc3RhdHVzID0gUFNBX0VSUk9SX0JBRF9TVEFURTsKKyAgICAgICAgZ290byBleGl0OworICAgIH0KKworICAgIGlmICghb3BlcmF0aW9uLT5ub25jZV9zZXQgfHwgb3BlcmF0aW9uLT5ib2R5X3N0YXJ0ZWQpIHsKKyAgICAgICAgc3RhdHVzID0gUFNBX0VSUk9SX0JBRF9TVEFURTsKKyAgICAgICAgZ290byBleGl0OworICAgIH0KKworICAgIC8qIE5vIGlucHV0IHRvIGFkZCAoemVybyBsZW5ndGgpLCBub3RoaW5nIHRvIGRvLiAqLworICAgIGlmIChpbnB1dF9sZW5ndGggPT0gMCkgeworICAgICAgICBzdGF0dXMgPSBQU0FfU1VDQ0VTUzsKKyAgICAgICAgZ290byBleGl0OworICAgIH0KKworICAgIGlmIChvcGVyYXRpb24tPmxlbmd0aHNfc2V0KSB7CisgICAgICAgIGlmIChvcGVyYXRpb24tPmFkX3JlbWFpbmluZyA8IGlucHV0X2xlbmd0aCkgeworICAgICAgICAgICAgc3RhdHVzID0gUFNBX0VSUk9SX0lOVkFMSURfQVJHVU1FTlQ7CisgICAgICAgICAgICBnb3RvIGV4aXQ7CisgICAgICAgIH0KKworICAgICAgICBvcGVyYXRpb24tPmFkX3JlbWFpbmluZyAtPSBpbnB1dF9sZW5ndGg7CisgICAgfQorI2lmIGRlZmluZWQoUFNBX1dBTlRfQUxHX0NDTSkKKyAgICBlbHNlIGlmIChvcGVyYXRpb24tPmFsZyA9PSBQU0FfQUxHX0NDTSkgeworICAgICAgICBzdGF0dXMgPSBQU0FfRVJST1JfQkFEX1NUQVRFOworICAgICAgICBnb3RvIGV4aXQ7CisgICAgfQorI2VuZGlmIC8qIFBTQV9XQU5UX0FMR19DQ00gKi8KKworICAgIHN0YXR1cyA9IHBzYV9kcml2ZXJfd3JhcHBlcl9hZWFkX3VwZGF0ZV9hZChvcGVyYXRpb24sIGlucHV0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnB1dF9sZW5ndGgpOworCitleGl0OgorICAgIGlmIChzdGF0dXMgPT0gUFNBX1NVQ0NFU1MpIHsKKyAgICAgICAgb3BlcmF0aW9uLT5hZF9zdGFydGVkID0gMTsKKyAgICB9IGVsc2UgeworICAgICAgICBwc2FfYWVhZF9hYm9ydChvcGVyYXRpb24pOworICAgIH0KKworICAgIExPQ0FMX0lOUFVUX0ZSRUUoaW5wdXRfZXh0ZXJuYWwsIGlucHV0KTsKKworICAgIHJldHVybiBzdGF0dXM7Cit9CisKKy8qIEVuY3J5cHQgb3IgZGVjcnlwdCBhIG1lc3NhZ2UgZnJhZ21lbnQgaW4gYW4gYWN0aXZlIG11bHRpcGFydCBBRUFECisgICBvcGVyYXRpb24uKi8KK3BzYV9zdGF0dXNfdCBwc2FfYWVhZF91cGRhdGUocHNhX2FlYWRfb3BlcmF0aW9uX3QgKm9wZXJhdGlvbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdWludDhfdCAqaW5wdXRfZXh0ZXJuYWwsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBpbnB1dF9sZW5ndGgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQ4X3QgKm91dHB1dF9leHRlcm5hbCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IG91dHB1dF9zaXplLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgKm91dHB1dF9sZW5ndGgpCit7CisgICAgcHNhX3N0YXR1c190IHN0YXR1cyA9IFBTQV9FUlJPUl9DT1JSVVBUSU9OX0RFVEVDVEVEOworCisKKyAgICBMT0NBTF9JTlBVVF9ERUNMQVJFKGlucHV0X2V4dGVybmFsLCBpbnB1dCk7CisgICAgTE9DQUxfT1VUUFVUX0RFQ0xBUkUob3V0cHV0X2V4dGVybmFsLCBvdXRwdXQpOworCisgICAgTE9DQUxfSU5QVVRfQUxMT0MoaW5wdXRfZXh0ZXJuYWwsIGlucHV0X2xlbmd0aCwgaW5wdXQpOworICAgIExPQ0FMX09VVFBVVF9BTExPQyhvdXRwdXRfZXh0ZXJuYWwsIG91dHB1dF9zaXplLCBvdXRwdXQpOworCisgICAgKm91dHB1dF9sZW5ndGggPSAwOworCisgICAgaWYgKG9wZXJhdGlvbi0+aWQgPT0gMCkgeworICAgICAgICBzdGF0dXMgPSBQU0FfRVJST1JfQkFEX1NUQVRFOworICAgICAgICBnb3RvIGV4aXQ7CisgICAgfQorCisgICAgaWYgKCFvcGVyYXRpb24tPm5vbmNlX3NldCkgeworICAgICAgICBzdGF0dXMgPSBQU0FfRVJST1JfQkFEX1NUQVRFOworICAgICAgICBnb3RvIGV4aXQ7CisgICAgfQorCisgICAgaWYgKG9wZXJhdGlvbi0+bGVuZ3Roc19zZXQpIHsKKyAgICAgICAgLyogQWRkaXRpb25hbCBkYXRhIGxlbmd0aCB3YXMgc3VwcGxpZWQsIGJ1dCBub3QgYWxsIHRoZSBhZGRpdGlvbmFsCisgICAgICAgICAgIGRhdGEgd2FzIHN1cHBsaWVkLiovCisgICAgICAgIGlmIChvcGVyYXRpb24tPmFkX3JlbWFpbmluZyAhPSAwKSB7CisgICAgICAgICAgICBzdGF0dXMgPSBQU0FfRVJST1JfSU5WQUxJRF9BUkdVTUVOVDsKKyAgICAgICAgICAgIGdvdG8gZXhpdDsKKyAgICAgICAgfQorCisgICAgICAgIC8qIFRvbyBtdWNoIGRhdGEgcHJvdmlkZWQuICovCisgICAgICAgIGlmIChvcGVyYXRpb24tPmJvZHlfcmVtYWluaW5nIDwgaW5wdXRfbGVuZ3RoKSB7CisgICAgICAgICAgICBzdGF0dXMgPSBQU0FfRVJST1JfSU5WQUxJRF9BUkdVTUVOVDsKKyAgICAgICAgICAgIGdvdG8gZXhpdDsKKyAgICAgICAgfQorCisgICAgICAgIG9wZXJhdGlvbi0+Ym9keV9yZW1haW5pbmcgLT0gaW5wdXRfbGVuZ3RoOworICAgIH0KKyNpZiBkZWZpbmVkKFBTQV9XQU5UX0FMR19DQ00pCisgICAgZWxzZSBpZiAob3BlcmF0aW9uLT5hbGcgPT0gUFNBX0FMR19DQ00pIHsKKyAgICAgICAgc3RhdHVzID0gUFNBX0VSUk9SX0JBRF9TVEFURTsKKyAgICAgICAgZ290byBleGl0OworICAgIH0KKyNlbmRpZiAvKiBQU0FfV0FOVF9BTEdfQ0NNICovCisKKyAgICBzdGF0dXMgPSBwc2FfZHJpdmVyX3dyYXBwZXJfYWVhZF91cGRhdGUob3BlcmF0aW9uLCBpbnB1dCwgaW5wdXRfbGVuZ3RoLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvdXRwdXQsIG91dHB1dF9zaXplLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvdXRwdXRfbGVuZ3RoKTsKKworZXhpdDoKKyAgICBpZiAoc3RhdHVzID09IFBTQV9TVUNDRVNTKSB7CisgICAgICAgIG9wZXJhdGlvbi0+Ym9keV9zdGFydGVkID0gMTsKKyAgICB9IGVsc2UgeworICAgICAgICBwc2FfYWVhZF9hYm9ydChvcGVyYXRpb24pOworICAgIH0KKworICAgIExPQ0FMX0lOUFVUX0ZSRUUoaW5wdXRfZXh0ZXJuYWwsIGlucHV0KTsKKyAgICBMT0NBTF9PVVRQVVRfRlJFRShvdXRwdXRfZXh0ZXJuYWwsIG91dHB1dCk7CisKKyAgICByZXR1cm4gc3RhdHVzOworfQorCitzdGF0aWMgcHNhX3N0YXR1c190IHBzYV9hZWFkX2ZpbmFsX2NoZWNrcyhjb25zdCBwc2FfYWVhZF9vcGVyYXRpb25fdCAqb3BlcmF0aW9uKQoreworICAgIGlmIChvcGVyYXRpb24tPmlkID09IDAgfHwgIW9wZXJhdGlvbi0+bm9uY2Vfc2V0KSB7CisgICAgICAgIHJldHVybiBQU0FfRVJST1JfQkFEX1NUQVRFOworICAgIH0KKworICAgIGlmIChvcGVyYXRpb24tPmxlbmd0aHNfc2V0ICYmIChvcGVyYXRpb24tPmFkX3JlbWFpbmluZyAhPSAwIHx8CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wZXJhdGlvbi0+Ym9keV9yZW1haW5pbmcgIT0gMCkpIHsKKyAgICAgICAgcmV0dXJuIFBTQV9FUlJPUl9JTlZBTElEX0FSR1VNRU5UOworICAgIH0KKworICAgIHJldHVybiBQU0FfU1VDQ0VTUzsKK30KKworLyogRmluaXNoIGVuY3J5cHRpbmcgYSBtZXNzYWdlIGluIGEgbXVsdGlwYXJ0IEFFQUQgb3BlcmF0aW9uLiAqLworcHNhX3N0YXR1c190IHBzYV9hZWFkX2ZpbmlzaChwc2FfYWVhZF9vcGVyYXRpb25fdCAqb3BlcmF0aW9uLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50OF90ICpjaXBoZXJ0ZXh0X2V4dGVybmFsLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgY2lwaGVydGV4dF9zaXplLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgKmNpcGhlcnRleHRfbGVuZ3RoLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50OF90ICp0YWdfZXh0ZXJuYWwsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCB0YWdfc2l6ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90ICp0YWdfbGVuZ3RoKQoreworICAgIHBzYV9zdGF0dXNfdCBzdGF0dXMgPSBQU0FfRVJST1JfQ09SUlVQVElPTl9ERVRFQ1RFRDsKKworICAgIExPQ0FMX09VVFBVVF9ERUNMQVJFKGNpcGhlcnRleHRfZXh0ZXJuYWwsIGNpcGhlcnRleHQpOworICAgIExPQ0FMX09VVFBVVF9ERUNMQVJFKHRhZ19leHRlcm5hbCwgdGFnKTsKKworICAgIExPQ0FMX09VVFBVVF9BTExPQyhjaXBoZXJ0ZXh0X2V4dGVybmFsLCBjaXBoZXJ0ZXh0X3NpemUsIGNpcGhlcnRleHQpOworICAgIExPQ0FMX09VVFBVVF9BTExPQyh0YWdfZXh0ZXJuYWwsIHRhZ19zaXplLCB0YWcpOworCisgICAgKmNpcGhlcnRleHRfbGVuZ3RoID0gMDsKKyAgICAqdGFnX2xlbmd0aCA9IHRhZ19zaXplOworCisgICAgc3RhdHVzID0gcHNhX2FlYWRfZmluYWxfY2hlY2tzKG9wZXJhdGlvbik7CisgICAgaWYgKHN0YXR1cyAhPSBQU0FfU1VDQ0VTUykgeworICAgICAgICBnb3RvIGV4aXQ7CisgICAgfQorCisgICAgaWYgKCFvcGVyYXRpb24tPmlzX2VuY3J5cHQpIHsKKyAgICAgICAgc3RhdHVzID0gUFNBX0VSUk9SX0JBRF9TVEFURTsKKyAgICAgICAgZ290byBleGl0OworICAgIH0KKworICAgIHN0YXR1cyA9IHBzYV9kcml2ZXJfd3JhcHBlcl9hZWFkX2ZpbmlzaChvcGVyYXRpb24sIGNpcGhlcnRleHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNpcGhlcnRleHRfc2l6ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2lwaGVydGV4dF9sZW5ndGgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhZywgdGFnX3NpemUsIHRhZ19sZW5ndGgpOworCitleGl0OgorCisKKyAgICAvKiBJbiBjYXNlIHRoZSBvcGVyYXRpb24gZmFpbHMgYW5kIHRoZSB1c2VyIGZhaWxzIHRvIGNoZWNrIGZvciBmYWlsdXJlIG9yCisgICAgICogdGhlIHplcm8gdGFnIHNpemUsIG1ha2Ugc3VyZSB0aGUgdGFnIGlzIHNldCB0byBzb21ldGhpbmcgaW1wbGF1c2libGUuCisgICAgICogRXZlbiBpZiB0aGUgb3BlcmF0aW9uIHN1Y2NlZWRzLCBtYWtlIHN1cmUgd2UgY2xlYXIgdGhlIHJlc3Qgb2YgdGhlCisgICAgICogYnVmZmVyIHRvIHByZXZlbnQgcG90ZW50aWFsIGxlYWthZ2Ugb2YgYW55dGhpbmcgcHJldmlvdXNseSBwbGFjZWQgaW4KKyAgICAgKiB0aGUgc2FtZSBidWZmZXIuKi8KKyAgICBwc2Ffd2lwZV90YWdfb3V0cHV0X2J1ZmZlcih0YWcsIHN0YXR1cywgdGFnX3NpemUsICp0YWdfbGVuZ3RoKTsKKworICAgIHBzYV9hZWFkX2Fib3J0KG9wZXJhdGlvbik7CisKKyAgICBMT0NBTF9PVVRQVVRfRlJFRShjaXBoZXJ0ZXh0X2V4dGVybmFsLCBjaXBoZXJ0ZXh0KTsKKyAgICBMT0NBTF9PVVRQVVRfRlJFRSh0YWdfZXh0ZXJuYWwsIHRhZyk7CisKKyAgICByZXR1cm4gc3RhdHVzOworfQorCisvKiBGaW5pc2ggYXV0aGVudGljYXRpbmcgYW5kIGRlY3J5cHRpbmcgYSBtZXNzYWdlIGluIGEgbXVsdGlwYXJ0IEFFQUQKKyAgIG9wZXJhdGlvbi4qLworcHNhX3N0YXR1c190IHBzYV9hZWFkX3ZlcmlmeShwc2FfYWVhZF9vcGVyYXRpb25fdCAqb3BlcmF0aW9uLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50OF90ICpwbGFpbnRleHRfZXh0ZXJuYWwsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBwbGFpbnRleHRfc2l6ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90ICpwbGFpbnRleHRfbGVuZ3RoLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1aW50OF90ICp0YWdfZXh0ZXJuYWwsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCB0YWdfbGVuZ3RoKQoreworICAgIHBzYV9zdGF0dXNfdCBzdGF0dXMgPSBQU0FfRVJST1JfQ09SUlVQVElPTl9ERVRFQ1RFRDsKKworICAgIExPQ0FMX09VVFBVVF9ERUNMQVJFKHBsYWludGV4dF9leHRlcm5hbCwgcGxhaW50ZXh0KTsKKyAgICBMT0NBTF9JTlBVVF9ERUNMQVJFKHRhZ19leHRlcm5hbCwgdGFnKTsKKworICAgIExPQ0FMX09VVFBVVF9BTExPQyhwbGFpbnRleHRfZXh0ZXJuYWwsIHBsYWludGV4dF9zaXplLCBwbGFpbnRleHQpOworICAgIExPQ0FMX0lOUFVUX0FMTE9DKHRhZ19leHRlcm5hbCwgdGFnX2xlbmd0aCwgdGFnKTsKKworICAgICpwbGFpbnRleHRfbGVuZ3RoID0gMDsKKworICAgIHN0YXR1cyA9IHBzYV9hZWFkX2ZpbmFsX2NoZWNrcyhvcGVyYXRpb24pOworICAgIGlmIChzdGF0dXMgIT0gUFNBX1NVQ0NFU1MpIHsKKyAgICAgICAgZ290byBleGl0OworICAgIH0KKworICAgIGlmIChvcGVyYXRpb24tPmlzX2VuY3J5cHQpIHsKKyAgICAgICAgc3RhdHVzID0gUFNBX0VSUk9SX0JBRF9TVEFURTsKKyAgICAgICAgZ290byBleGl0OworICAgIH0KKworICAgIHN0YXR1cyA9IHBzYV9kcml2ZXJfd3JhcHBlcl9hZWFkX3ZlcmlmeShvcGVyYXRpb24sIHBsYWludGV4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGxhaW50ZXh0X3NpemUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBsYWludGV4dF9sZW5ndGgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhZywgdGFnX2xlbmd0aCk7CisKK2V4aXQ6CisgICAgcHNhX2FlYWRfYWJvcnQob3BlcmF0aW9uKTsKKworICAgIExPQ0FMX09VVFBVVF9GUkVFKHBsYWludGV4dF9leHRlcm5hbCwgcGxhaW50ZXh0KTsKKyAgICBMT0NBTF9JTlBVVF9GUkVFKHRhZ19leHRlcm5hbCwgdGFnKTsKKworICAgIHJldHVybiBzdGF0dXM7Cit9CisKKy8qIEFib3J0IGFuIEFFQUQgb3BlcmF0aW9uLiAqLworcHNhX3N0YXR1c190IHBzYV9hZWFkX2Fib3J0KHBzYV9hZWFkX29wZXJhdGlvbl90ICpvcGVyYXRpb24pCit7CisgICAgcHNhX3N0YXR1c190IHN0YXR1cyA9IFBTQV9FUlJPUl9DT1JSVVBUSU9OX0RFVEVDVEVEOworCisgICAgaWYgKG9wZXJhdGlvbi0+aWQgPT0gMCkgeworICAgICAgICAvKiBUaGUgb2JqZWN0IGhhcyAoYXBwYXJlbnRseSkgYmVlbiBpbml0aWFsaXplZCBidXQgaXQgaXMgbm90ICh5ZXQpCisgICAgICAgICAqIGluIHVzZS4gSXQncyBvayB0byBjYWxsIGFib3J0IG9uIHN1Y2ggYW4gb2JqZWN0LCBhbmQgdGhlcmUncworICAgICAgICAgKiBub3RoaW5nIHRvIGRvLiAqLworICAgICAgICByZXR1cm4gUFNBX1NVQ0NFU1M7CisgICAgfQorCisgICAgc3RhdHVzID0gcHNhX2RyaXZlcl93cmFwcGVyX2FlYWRfYWJvcnQob3BlcmF0aW9uKTsKKworICAgIG1lbXNldChvcGVyYXRpb24sIDAsIHNpemVvZigqb3BlcmF0aW9uKSk7CisKKyAgICByZXR1cm4gc3RhdHVzOworfQorCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKy8qIEdlbmVyYXRvcnMgKi8KKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisjaWYgZGVmaW5lZChCVUlMVElOX0FMR19BTllfSEtERikgfHwgXAorICAgIGRlZmluZWQoTUJFRFRMU19QU0FfQlVJTFRJTl9BTEdfVExTMTJfUFJGKSB8fCBcCisgICAgZGVmaW5lZChNQkVEVExTX1BTQV9CVUlMVElOX0FMR19UTFMxMl9QU0tfVE9fTVMpIHx8IFwKKyAgICBkZWZpbmVkKE1CRURUTFNfUFNBX0JVSUxUSU5fQUxHX1RMUzEyX0VDSlBBS0VfVE9fUE1TKSB8fCBcCisgICAgZGVmaW5lZChQU0FfSEFWRV9TT0ZUX1BCS0RGMikKKyNkZWZpbmUgQVRfTEVBU1RfT05FX0JVSUxUSU5fS0RGCisjZW5kaWYgLyogQXQgbGVhc3Qgb25lIGJ1aWx0aW4gS0RGICovCisKKyNpZiBkZWZpbmVkKEJVSUxUSU5fQUxHX0FOWV9IS0RGKSB8fCBcCisgICAgZGVmaW5lZChNQkVEVExTX1BTQV9CVUlMVElOX0FMR19UTFMxMl9QUkYpIHx8IFwKKyAgICBkZWZpbmVkKE1CRURUTFNfUFNBX0JVSUxUSU5fQUxHX1RMUzEyX1BTS19UT19NUykKK3N0YXRpYyBwc2Ffc3RhdHVzX3QgcHNhX2tleV9kZXJpdmF0aW9uX3N0YXJ0X2htYWMoCisgICAgcHNhX21hY19vcGVyYXRpb25fdCAqb3BlcmF0aW9uLAorICAgIHBzYV9hbGdvcml0aG1fdCBoYXNoX2FsZywKKyAgICBjb25zdCB1aW50OF90ICpobWFjX2tleSwKKyAgICBzaXplX3QgaG1hY19rZXlfbGVuZ3RoKQoreworICAgIHBzYV9zdGF0dXNfdCBzdGF0dXMgPSBQU0FfRVJST1JfQ09SUlVQVElPTl9ERVRFQ1RFRDsKKyAgICBwc2Ffa2V5X2F0dHJpYnV0ZXNfdCBhdHRyaWJ1dGVzID0gUFNBX0tFWV9BVFRSSUJVVEVTX0lOSVQ7CisgICAgcHNhX3NldF9rZXlfdHlwZSgmYXR0cmlidXRlcywgUFNBX0tFWV9UWVBFX0hNQUMpOworICAgIHBzYV9zZXRfa2V5X2JpdHMoJmF0dHJpYnV0ZXMsIFBTQV9CWVRFU19UT19CSVRTKGhtYWNfa2V5X2xlbmd0aCkpOworICAgIHBzYV9zZXRfa2V5X3VzYWdlX2ZsYWdzKCZhdHRyaWJ1dGVzLCBQU0FfS0VZX1VTQUdFX1NJR05fSEFTSCk7CisKKyAgICBvcGVyYXRpb24tPmlzX3NpZ24gPSAxOworICAgIG9wZXJhdGlvbi0+bWFjX3NpemUgPSBQU0FfSEFTSF9MRU5HVEgoaGFzaF9hbGcpOworCisgICAgc3RhdHVzID0gcHNhX2RyaXZlcl93cmFwcGVyX21hY19zaWduX3NldHVwKG9wZXJhdGlvbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJmF0dHJpYnV0ZXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhtYWNfa2V5LCBobWFjX2tleV9sZW5ndGgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBTQV9BTEdfSE1BQyhoYXNoX2FsZykpOworCisgICAgcHNhX3Jlc2V0X2tleV9hdHRyaWJ1dGVzKCZhdHRyaWJ1dGVzKTsKKyAgICByZXR1cm4gc3RhdHVzOworfQorI2VuZGlmIC8qIEtERiBhbGdvcml0aG1zIHJlbGlhbnQgb24gSE1BQyAqLworCisjZGVmaW5lIEhLREZfU1RBVEVfSU5JVCAwIC8qIG5vIGlucHV0IHlldCAqLworI2RlZmluZSBIS0RGX1NUQVRFX1NUQVJURUQgMSAvKiBnb3Qgc2FsdCAqLworI2RlZmluZSBIS0RGX1NUQVRFX0tFWUVEIDIgLyogZ290IGtleSAqLworI2RlZmluZSBIS0RGX1NUQVRFX09VVFBVVCAzIC8qIG91dHB1dCBzdGFydGVkICovCisKK3N0YXRpYyBwc2FfYWxnb3JpdGhtX3QgcHNhX2tleV9kZXJpdmF0aW9uX2dldF9rZGZfYWxnKAorICAgIGNvbnN0IHBzYV9rZXlfZGVyaXZhdGlvbl9vcGVyYXRpb25fdCAqb3BlcmF0aW9uKQoreworICAgIGlmIChQU0FfQUxHX0lTX0tFWV9BR1JFRU1FTlQob3BlcmF0aW9uLT5hbGcpKSB7CisgICAgICAgIHJldHVybiBQU0FfQUxHX0tFWV9BR1JFRU1FTlRfR0VUX0tERihvcGVyYXRpb24tPmFsZyk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgcmV0dXJuIG9wZXJhdGlvbi0+YWxnOworICAgIH0KK30KKworcHNhX3N0YXR1c190IHBzYV9rZXlfZGVyaXZhdGlvbl9hYm9ydChwc2Ffa2V5X2Rlcml2YXRpb25fb3BlcmF0aW9uX3QgKm9wZXJhdGlvbikKK3sKKyAgICBwc2Ffc3RhdHVzX3Qgc3RhdHVzID0gUFNBX1NVQ0NFU1M7CisgICAgcHNhX2FsZ29yaXRobV90IGtkZl9hbGcgPSBwc2Ffa2V5X2Rlcml2YXRpb25fZ2V0X2tkZl9hbGcob3BlcmF0aW9uKTsKKyAgICBpZiAoa2RmX2FsZyA9PSAwKSB7CisgICAgICAgIC8qIFRoZSBvYmplY3QgaGFzIChhcHBhcmVudGx5KSBiZWVuIGluaXRpYWxpemVkIGJ1dCBpdCBpcyBub3QKKyAgICAgICAgICogaW4gdXNlLiBJdCdzIG9rIHRvIGNhbGwgYWJvcnQgb24gc3VjaCBhbiBvYmplY3QsIGFuZCB0aGVyZSdzCisgICAgICAgICAqIG5vdGhpbmcgdG8gZG8uICovCisgICAgfSBlbHNlCisjaWYgZGVmaW5lZChCVUlMVElOX0FMR19BTllfSEtERikKKyAgICBpZiAoUFNBX0FMR19JU19BTllfSEtERihrZGZfYWxnKSkgeworICAgICAgICBtYmVkdGxzX2ZyZWUob3BlcmF0aW9uLT5jdHguaGtkZi5pbmZvKTsKKyAgICAgICAgc3RhdHVzID0gcHNhX21hY19hYm9ydCgmb3BlcmF0aW9uLT5jdHguaGtkZi5obWFjKTsKKyAgICB9IGVsc2UKKyNlbmRpZiAvKiBCVUlMVElOX0FMR19BTllfSEtERiAqLworI2lmIGRlZmluZWQoTUJFRFRMU19QU0FfQlVJTFRJTl9BTEdfVExTMTJfUFJGKSB8fCBcCisgICAgZGVmaW5lZChNQkVEVExTX1BTQV9CVUlMVElOX0FMR19UTFMxMl9QU0tfVE9fTVMpCisgICAgaWYgKFBTQV9BTEdfSVNfVExTMTJfUFJGKGtkZl9hbGcpIHx8CisgICAgICAgIC8qIFRMUy0xLjIgUFNLLXRvLU1TIEtERiB1c2VzIHRoZSBzYW1lIGNvcmUgYXMgVExTLTEuMiBQUkYgKi8KKyAgICAgICAgUFNBX0FMR19JU19UTFMxMl9QU0tfVE9fTVMoa2RmX2FsZykpIHsKKyAgICAgICAgaWYgKG9wZXJhdGlvbi0+Y3R4LnRsczEyX3ByZi5zZWNyZXQgIT0gTlVMTCkgeworICAgICAgICAgICAgbWJlZHRsc196ZXJvaXplX2FuZF9mcmVlKG9wZXJhdGlvbi0+Y3R4LnRsczEyX3ByZi5zZWNyZXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3BlcmF0aW9uLT5jdHgudGxzMTJfcHJmLnNlY3JldF9sZW5ndGgpOworICAgICAgICB9CisKKyAgICAgICAgaWYgKG9wZXJhdGlvbi0+Y3R4LnRsczEyX3ByZi5zZWVkICE9IE5VTEwpIHsKKyAgICAgICAgICAgIG1iZWR0bHNfemVyb2l6ZV9hbmRfZnJlZShvcGVyYXRpb24tPmN0eC50bHMxMl9wcmYuc2VlZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcGVyYXRpb24tPmN0eC50bHMxMl9wcmYuc2VlZF9sZW5ndGgpOworICAgICAgICB9CisKKyAgICAgICAgaWYgKG9wZXJhdGlvbi0+Y3R4LnRsczEyX3ByZi5sYWJlbCAhPSBOVUxMKSB7CisgICAgICAgICAgICBtYmVkdGxzX3plcm9pemVfYW5kX2ZyZWUob3BlcmF0aW9uLT5jdHgudGxzMTJfcHJmLmxhYmVsLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wZXJhdGlvbi0+Y3R4LnRsczEyX3ByZi5sYWJlbF9sZW5ndGgpOworICAgICAgICB9CisjaWYgZGVmaW5lZChNQkVEVExTX1BTQV9CVUlMVElOX0FMR19UTFMxMl9QU0tfVE9fTVMpCisgICAgICAgIGlmIChvcGVyYXRpb24tPmN0eC50bHMxMl9wcmYub3RoZXJfc2VjcmV0ICE9IE5VTEwpIHsKKyAgICAgICAgICAgIG1iZWR0bHNfemVyb2l6ZV9hbmRfZnJlZShvcGVyYXRpb24tPmN0eC50bHMxMl9wcmYub3RoZXJfc2VjcmV0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wZXJhdGlvbi0+Y3R4LnRsczEyX3ByZi5vdGhlcl9zZWNyZXRfbGVuZ3RoKTsKKyAgICAgICAgfQorI2VuZGlmIC8qIE1CRURUTFNfUFNBX0JVSUxUSU5fQUxHX1RMUzEyX1BTS19UT19NUyAqLworICAgICAgICBzdGF0dXMgPSBQU0FfU1VDQ0VTUzsKKworICAgICAgICAvKiBXZSBsZWF2ZSB0aGUgZmllbGRzIEFpIGFuZCBvdXRwdXRfYmxvY2sgdG8gYmUgZXJhc2VkIHNhZmVseSBieSB0aGUKKyAgICAgICAgICogbWJlZHRsc19wbGF0Zm9ybV96ZXJvaXplKCkgaW4gdGhlIGVuZCBvZiB0aGlzIGZ1bmN0aW9uLiAqLworICAgIH0gZWxzZQorI2VuZGlmIC8qIGRlZmluZWQoTUJFRFRMU19QU0FfQlVJTFRJTl9BTEdfVExTMTJfUFJGKSB8fAorICAgICAgICAqIGRlZmluZWQoTUJFRFRMU19QU0FfQlVJTFRJTl9BTEdfVExTMTJfUFNLX1RPX01TKSAqLworI2lmIGRlZmluZWQoTUJFRFRMU19QU0FfQlVJTFRJTl9BTEdfVExTMTJfRUNKUEFLRV9UT19QTVMpCisgICAgaWYgKGtkZl9hbGcgPT0gUFNBX0FMR19UTFMxMl9FQ0pQQUtFX1RPX1BNUykgeworICAgICAgICBtYmVkdGxzX3BsYXRmb3JtX3plcm9pemUob3BlcmF0aW9uLT5jdHgudGxzMTJfZWNqcGFrZV90b19wbXMuZGF0YSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVvZihvcGVyYXRpb24tPmN0eC50bHMxMl9lY2pwYWtlX3RvX3Btcy5kYXRhKSk7CisgICAgfSBlbHNlCisjZW5kaWYgLyogZGVmaW5lZChNQkVEVExTX1BTQV9CVUlMVElOX0FMR19UTFMxMl9FQ0pQQUtFX1RPX1BNUykgKi8KKyNpZiBkZWZpbmVkKFBTQV9IQVZFX1NPRlRfUEJLREYyKQorICAgIGlmIChQU0FfQUxHX0lTX1BCS0RGMihrZGZfYWxnKSkgeworICAgICAgICBpZiAob3BlcmF0aW9uLT5jdHgucGJrZGYyLnNhbHQgIT0gTlVMTCkgeworICAgICAgICAgICAgbWJlZHRsc196ZXJvaXplX2FuZF9mcmVlKG9wZXJhdGlvbi0+Y3R4LnBia2RmMi5zYWx0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wZXJhdGlvbi0+Y3R4LnBia2RmMi5zYWx0X2xlbmd0aCk7CisgICAgICAgIH0KKworICAgICAgICBzdGF0dXMgPSBQU0FfU1VDQ0VTUzsKKyAgICB9IGVsc2UKKyNlbmRpZiAvKiBkZWZpbmVkKFBTQV9IQVZFX1NPRlRfUEJLREYyKSAqLworICAgIHsKKyAgICAgICAgc3RhdHVzID0gUFNBX0VSUk9SX0JBRF9TVEFURTsKKyAgICB9CisgICAgbWJlZHRsc19wbGF0Zm9ybV96ZXJvaXplKG9wZXJhdGlvbiwgc2l6ZW9mKCpvcGVyYXRpb24pKTsKKyAgICByZXR1cm4gc3RhdHVzOworfQorCitwc2Ffc3RhdHVzX3QgcHNhX2tleV9kZXJpdmF0aW9uX2dldF9jYXBhY2l0eShjb25zdCBwc2Ffa2V5X2Rlcml2YXRpb25fb3BlcmF0aW9uX3QgKm9wZXJhdGlvbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCAqY2FwYWNpdHkpCit7CisgICAgaWYgKG9wZXJhdGlvbi0+YWxnID09IDApIHsKKyAgICAgICAgLyogVGhpcyBpcyBhIGJsYW5rIGtleSBkZXJpdmF0aW9uIG9wZXJhdGlvbi4gKi8KKyAgICAgICAgcmV0dXJuIFBTQV9FUlJPUl9CQURfU1RBVEU7CisgICAgfQorCisgICAgKmNhcGFjaXR5ID0gb3BlcmF0aW9uLT5jYXBhY2l0eTsKKyAgICByZXR1cm4gUFNBX1NVQ0NFU1M7Cit9CisKK3BzYV9zdGF0dXNfdCBwc2Ffa2V5X2Rlcml2YXRpb25fc2V0X2NhcGFjaXR5KHBzYV9rZXlfZGVyaXZhdGlvbl9vcGVyYXRpb25fdCAqb3BlcmF0aW9uLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IGNhcGFjaXR5KQoreworICAgIGlmIChvcGVyYXRpb24tPmFsZyA9PSAwKSB7CisgICAgICAgIHJldHVybiBQU0FfRVJST1JfQkFEX1NUQVRFOworICAgIH0KKyAgICBpZiAoY2FwYWNpdHkgPiBvcGVyYXRpb24tPmNhcGFjaXR5KSB7CisgICAgICAgIHJldHVybiBQU0FfRVJST1JfSU5WQUxJRF9BUkdVTUVOVDsKKyAgICB9CisgICAgb3BlcmF0aW9uLT5jYXBhY2l0eSA9IGNhcGFjaXR5OworICAgIHJldHVybiBQU0FfU1VDQ0VTUzsKK30KKworI2lmIGRlZmluZWQoQlVJTFRJTl9BTEdfQU5ZX0hLREYpCisvKiBSZWFkIHNvbWUgYnl0ZXMgZnJvbSBhbiBIS0RGLWJhc2VkIG9wZXJhdGlvbi4gKi8KK3N0YXRpYyBwc2Ffc3RhdHVzX3QgcHNhX2tleV9kZXJpdmF0aW9uX2hrZGZfcmVhZChwc2FfaGtkZl9rZXlfZGVyaXZhdGlvbl90ICpoa2RmLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBzYV9hbGdvcml0aG1fdCBrZGZfYWxnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQ4X3QgKm91dHB1dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3Qgb3V0cHV0X2xlbmd0aCkKK3sKKyAgICBwc2FfYWxnb3JpdGhtX3QgaGFzaF9hbGcgPSBQU0FfQUxHX0hLREZfR0VUX0hBU0goa2RmX2FsZyk7CisgICAgdWludDhfdCBoYXNoX2xlbmd0aCA9IFBTQV9IQVNIX0xFTkdUSChoYXNoX2FsZyk7CisgICAgc2l6ZV90IGhtYWNfb3V0cHV0X2xlbmd0aDsKKyAgICBwc2Ffc3RhdHVzX3Qgc3RhdHVzOworI2lmIGRlZmluZWQoTUJFRFRMU19QU0FfQlVJTFRJTl9BTEdfSEtERl9FWFRSQUNUKQorICAgIGNvbnN0IHVpbnQ4X3QgbGFzdF9ibG9jayA9IFBTQV9BTEdfSVNfSEtERl9FWFRSQUNUKGtkZl9hbGcpID8gMCA6IDB4ZmY7CisjZWxzZQorICAgIGNvbnN0IHVpbnQ4X3QgbGFzdF9ibG9jayA9IDB4ZmY7CisjZW5kaWYgLyogTUJFRFRMU19QU0FfQlVJTFRJTl9BTEdfSEtERl9FWFRSQUNUICovCisKKyAgICBpZiAoaGtkZi0+c3RhdGUgPCBIS0RGX1NUQVRFX0tFWUVEIHx8CisgICAgICAgICghaGtkZi0+aW5mb19zZXQKKyNpZiBkZWZpbmVkKE1CRURUTFNfUFNBX0JVSUxUSU5fQUxHX0hLREZfRVhUUkFDVCkKKyAgICAgICAgICYmICFQU0FfQUxHX0lTX0hLREZfRVhUUkFDVChrZGZfYWxnKQorI2VuZGlmIC8qIE1CRURUTFNfUFNBX0JVSUxUSU5fQUxHX0hLREZfRVhUUkFDVCAqLworICAgICAgICApKSB7CisgICAgICAgIHJldHVybiBQU0FfRVJST1JfQkFEX1NUQVRFOworICAgIH0KKyAgICBoa2RmLT5zdGF0ZSA9IEhLREZfU1RBVEVfT1VUUFVUOworCisgICAgd2hpbGUgKG91dHB1dF9sZW5ndGggIT0gMCkgeworICAgICAgICAvKiBDb3B5IHdoYXQgcmVtYWlucyBvZiB0aGUgY3VycmVudCBibG9jayAqLworICAgICAgICB1aW50OF90IG4gPSBoYXNoX2xlbmd0aCAtIGhrZGYtPm9mZnNldF9pbl9ibG9jazsKKyAgICAgICAgaWYgKG4gPiBvdXRwdXRfbGVuZ3RoKSB7CisgICAgICAgICAgICBuID0gKHVpbnQ4X3QpIG91dHB1dF9sZW5ndGg7CisgICAgICAgIH0KKyAgICAgICAgbWVtY3B5KG91dHB1dCwgaGtkZi0+b3V0cHV0X2Jsb2NrICsgaGtkZi0+b2Zmc2V0X2luX2Jsb2NrLCBuKTsKKyAgICAgICAgb3V0cHV0ICs9IG47CisgICAgICAgIG91dHB1dF9sZW5ndGggLT0gbjsKKyAgICAgICAgaGtkZi0+b2Zmc2V0X2luX2Jsb2NrICs9IG47CisgICAgICAgIGlmIChvdXRwdXRfbGVuZ3RoID09IDApIHsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgICAgIC8qIFdlIGNhbid0IGJlIHdhbnRpbmcgbW9yZSBvdXRwdXQgYWZ0ZXIgdGhlIGxhc3QgYmxvY2ssIG90aGVyd2lzZQorICAgICAgICAgKiB0aGUgY2FwYWNpdHkgY2hlY2sgaW4gcHNhX2tleV9kZXJpdmF0aW9uX291dHB1dF9ieXRlcygpIHdvdWxkIGhhdmUKKyAgICAgICAgICogcHJldmVudGVkIHRoaXMgY2FsbC4gSXQgY291bGQgaGFwcGVuIG9ubHkgaWYgdGhlIG9wZXJhdGlvbgorICAgICAgICAgKiBvYmplY3Qgd2FzIGNvcnJ1cHRlZCBvciBpZiB0aGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCBkaXJlY3RseQorICAgICAgICAgKiBpbnNpZGUgdGhlIGxpYnJhcnkuICovCisgICAgICAgIGlmIChoa2RmLT5ibG9ja19udW1iZXIgPT0gbGFzdF9ibG9jaykgeworICAgICAgICAgICAgcmV0dXJuIFBTQV9FUlJPUl9CQURfU1RBVEU7CisgICAgICAgIH0KKworICAgICAgICAvKiBXZSBuZWVkIGEgbmV3IGJsb2NrICovCisgICAgICAgICsraGtkZi0+YmxvY2tfbnVtYmVyOworICAgICAgICBoa2RmLT5vZmZzZXRfaW5fYmxvY2sgPSAwOworCisgICAgICAgIHN0YXR1cyA9IHBzYV9rZXlfZGVyaXZhdGlvbl9zdGFydF9obWFjKCZoa2RmLT5obWFjLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYXNoX2FsZywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGtkZi0+cHJrLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYXNoX2xlbmd0aCk7CisgICAgICAgIGlmIChzdGF0dXMgIT0gUFNBX1NVQ0NFU1MpIHsKKyAgICAgICAgICAgIHJldHVybiBzdGF0dXM7CisgICAgICAgIH0KKworICAgICAgICBpZiAoaGtkZi0+YmxvY2tfbnVtYmVyICE9IDEpIHsKKyAgICAgICAgICAgIHN0YXR1cyA9IHBzYV9tYWNfdXBkYXRlKCZoa2RmLT5obWFjLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGtkZi0+b3V0cHV0X2Jsb2NrLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFzaF9sZW5ndGgpOworICAgICAgICAgICAgaWYgKHN0YXR1cyAhPSBQU0FfU1VDQ0VTUykgeworICAgICAgICAgICAgICAgIHJldHVybiBzdGF0dXM7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgc3RhdHVzID0gcHNhX21hY191cGRhdGUoJmhrZGYtPmhtYWMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhrZGYtPmluZm8sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhrZGYtPmluZm9fbGVuZ3RoKTsKKyAgICAgICAgaWYgKHN0YXR1cyAhPSBQU0FfU1VDQ0VTUykgeworICAgICAgICAgICAgcmV0dXJuIHN0YXR1czsKKyAgICAgICAgfQorICAgICAgICBzdGF0dXMgPSBwc2FfbWFjX3VwZGF0ZSgmaGtkZi0+aG1hYywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJmhrZGYtPmJsb2NrX251bWJlciwgMSk7CisgICAgICAgIGlmIChzdGF0dXMgIT0gUFNBX1NVQ0NFU1MpIHsKKyAgICAgICAgICAgIHJldHVybiBzdGF0dXM7CisgICAgICAgIH0KKyAgICAgICAgc3RhdHVzID0gcHNhX21hY19zaWduX2ZpbmlzaCgmaGtkZi0+aG1hYywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoa2RmLT5vdXRwdXRfYmxvY2ssCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZW9mKGhrZGYtPm91dHB1dF9ibG9jayksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJmhtYWNfb3V0cHV0X2xlbmd0aCk7CisgICAgICAgIGlmIChzdGF0dXMgIT0gUFNBX1NVQ0NFU1MpIHsKKyAgICAgICAgICAgIHJldHVybiBzdGF0dXM7CisgICAgICAgIH0KKyAgICB9CisKKyAgICByZXR1cm4gUFNBX1NVQ0NFU1M7Cit9CisjZW5kaWYgLyogQlVJTFRJTl9BTEdfQU5ZX0hLREYgKi8KKworI2lmIGRlZmluZWQoTUJFRFRMU19QU0FfQlVJTFRJTl9BTEdfVExTMTJfUFJGKSB8fCBcCisgICAgZGVmaW5lZChNQkVEVExTX1BTQV9CVUlMVElOX0FMR19UTFMxMl9QU0tfVE9fTVMpCitzdGF0aWMgcHNhX3N0YXR1c190IHBzYV9rZXlfZGVyaXZhdGlvbl90bHMxMl9wcmZfZ2VuZXJhdGVfbmV4dF9ibG9jaygKKyAgICBwc2FfdGxzMTJfcHJmX2tleV9kZXJpdmF0aW9uX3QgKnRsczEyX3ByZiwKKyAgICBwc2FfYWxnb3JpdGhtX3QgYWxnKQoreworICAgIHBzYV9hbGdvcml0aG1fdCBoYXNoX2FsZyA9IFBTQV9BTEdfSEtERl9HRVRfSEFTSChhbGcpOworICAgIHVpbnQ4X3QgaGFzaF9sZW5ndGggPSBQU0FfSEFTSF9MRU5HVEgoaGFzaF9hbGcpOworICAgIHBzYV9tYWNfb3BlcmF0aW9uX3QgaG1hYyA9IFBTQV9NQUNfT1BFUkFUSU9OX0lOSVQ7CisgICAgc2l6ZV90IGhtYWNfb3V0cHV0X2xlbmd0aDsKKyAgICBwc2Ffc3RhdHVzX3Qgc3RhdHVzLCBjbGVhbnVwX3N0YXR1czsKKworICAgIC8qIFdlIGNhbid0IGJlIHdhbnRpbmcgbW9yZSBvdXRwdXQgYWZ0ZXIgYmxvY2sgMHhmZiwgb3RoZXJ3aXNlCisgICAgICogdGhlIGNhcGFjaXR5IGNoZWNrIGluIHBzYV9rZXlfZGVyaXZhdGlvbl9vdXRwdXRfYnl0ZXMoKSB3b3VsZCBoYXZlCisgICAgICogcHJldmVudGVkIHRoaXMgY2FsbC4gSXQgY291bGQgaGFwcGVuIG9ubHkgaWYgdGhlIG9wZXJhdGlvbgorICAgICAqIG9iamVjdCB3YXMgY29ycnVwdGVkIG9yIGlmIHRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIGRpcmVjdGx5CisgICAgICogaW5zaWRlIHRoZSBsaWJyYXJ5LiAqLworICAgIGlmICh0bHMxMl9wcmYtPmJsb2NrX251bWJlciA9PSAweGZmKSB7CisgICAgICAgIHJldHVybiBQU0FfRVJST1JfQ09SUlVQVElPTl9ERVRFQ1RFRDsKKyAgICB9CisKKyAgICAvKiBXZSBuZWVkIGEgbmV3IGJsb2NrICovCisgICAgKyt0bHMxMl9wcmYtPmJsb2NrX251bWJlcjsKKyAgICB0bHMxMl9wcmYtPmxlZnRfaW5fYmxvY2sgPSBoYXNoX2xlbmd0aDsKKworICAgIC8qIFJlY2FsbCB0aGUgZGVmaW5pdGlvbiBvZiB0aGUgVExTLTEuMi1QUkYgZnJvbSBSRkMgNTI0NjoKKyAgICAgKgorICAgICAqIFBSRihzZWNyZXQsIGxhYmVsLCBzZWVkKSA9IFBfPGhhc2g+KHNlY3JldCwgbGFiZWwgKyBzZWVkKQorICAgICAqCisgICAgICogUF9oYXNoKHNlY3JldCwgc2VlZCkgPSBITUFDX2hhc2goc2VjcmV0LCBBKDEpICsgc2VlZCkgKworICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgSE1BQ19oYXNoKHNlY3JldCwgQSgyKSArIHNlZWQpICsKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgIEhNQUNfaGFzaChzZWNyZXQsIEEoMykgKyBzZWVkKSArIC4uLgorICAgICAqCisgICAgICogQSgwKSA9IHNlZWQKKyAgICAgKiBBKGkpID0gSE1BQ19oYXNoKHNlY3JldCwgQShpLTEpKQorICAgICAqCisgICAgICogVGhlIGBwc2FfdGxzMTJfcHJmX2tleV9kZXJpdmF0aW9uYCBzdHJ1Y3R1cmUgc2F2ZXMgdGhlIGJsb2NrCisgICAgICogYEhNQUNfaGFzaChzZWNyZXQsIEEoaSkgKyBzZWVkKWAgZnJvbSB3aGljaCB0aGUgb3V0cHV0CisgICAgICogaXMgY3VycmVudGx5IGV4dHJhY3RlZCBhcyBgb3V0cHV0X2Jsb2NrYCBhbmQgd2hlcmUgaSBpcworICAgICAqIGBibG9ja19udW1iZXJgLgorICAgICAqLworCisgICAgc3RhdHVzID0gcHNhX2tleV9kZXJpdmF0aW9uX3N0YXJ0X2htYWMoJmhtYWMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFzaF9hbGcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGxzMTJfcHJmLT5zZWNyZXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGxzMTJfcHJmLT5zZWNyZXRfbGVuZ3RoKTsKKyAgICBpZiAoc3RhdHVzICE9IFBTQV9TVUNDRVNTKSB7CisgICAgICAgIGdvdG8gY2xlYW51cDsKKyAgICB9CisKKyAgICAvKiBDYWxjdWxhdGUgQShpKSB3aGVyZSBpID0gdGxzMTJfcHJmLT5ibG9ja19udW1iZXIuICovCisgICAgaWYgKHRsczEyX3ByZi0+YmxvY2tfbnVtYmVyID09IDEpIHsKKyAgICAgICAgLyogQSgxKSA9IEhNQUNfaGFzaChzZWNyZXQsIEEoMCkpLCB3aGVyZSBBKDApID0gc2VlZC4gKFRoZSBSRkMgb3ZlcmxvYWRzCisgICAgICAgICAqIHRoZSB2YXJpYWJsZSBzZWVkIGFuZCBpbiB0aGlzIGluc3RhbmNlIG1lYW5zIGl0IGluIHRoZSBjb250ZXh0IG9mIHRoZQorICAgICAgICAgKiBQX2hhc2ggZnVuY3Rpb24sIHdoZXJlIHNlZWQgPSBsYWJlbCArIHNlZWQuKSAqLworICAgICAgICBzdGF0dXMgPSBwc2FfbWFjX3VwZGF0ZSgmaG1hYywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGxzMTJfcHJmLT5sYWJlbCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGxzMTJfcHJmLT5sYWJlbF9sZW5ndGgpOworICAgICAgICBpZiAoc3RhdHVzICE9IFBTQV9TVUNDRVNTKSB7CisgICAgICAgICAgICBnb3RvIGNsZWFudXA7CisgICAgICAgIH0KKyAgICAgICAgc3RhdHVzID0gcHNhX21hY191cGRhdGUoJmhtYWMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRsczEyX3ByZi0+c2VlZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGxzMTJfcHJmLT5zZWVkX2xlbmd0aCk7CisgICAgICAgIGlmIChzdGF0dXMgIT0gUFNBX1NVQ0NFU1MpIHsKKyAgICAgICAgICAgIGdvdG8gY2xlYW51cDsKKyAgICAgICAgfQorICAgIH0gZWxzZSB7CisgICAgICAgIC8qIEEoaSkgPSBITUFDX2hhc2goc2VjcmV0LCBBKGktMSkpICovCisgICAgICAgIHN0YXR1cyA9IHBzYV9tYWNfdXBkYXRlKCZobWFjLCB0bHMxMl9wcmYtPkFpLCBoYXNoX2xlbmd0aCk7CisgICAgICAgIGlmIChzdGF0dXMgIT0gUFNBX1NVQ0NFU1MpIHsKKyAgICAgICAgICAgIGdvdG8gY2xlYW51cDsKKyAgICAgICAgfQorICAgIH0KKworICAgIHN0YXR1cyA9IHBzYV9tYWNfc2lnbl9maW5pc2goJmhtYWMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0bHMxMl9wcmYtPkFpLCBoYXNoX2xlbmd0aCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZobWFjX291dHB1dF9sZW5ndGgpOworICAgIGlmIChobWFjX291dHB1dF9sZW5ndGggIT0gaGFzaF9sZW5ndGgpIHsKKyAgICAgICAgc3RhdHVzID0gUFNBX0VSUk9SX0NPUlJVUFRJT05fREVURUNURUQ7CisgICAgfQorICAgIGlmIChzdGF0dXMgIT0gUFNBX1NVQ0NFU1MpIHsKKyAgICAgICAgZ290byBjbGVhbnVwOworICAgIH0KKworICAgIC8qIENhbGN1bGF0ZSBITUFDX2hhc2goc2VjcmV0LCBBKGkpICsgbGFiZWwgKyBzZWVkKS4gKi8KKyAgICBzdGF0dXMgPSBwc2Ffa2V5X2Rlcml2YXRpb25fc3RhcnRfaG1hYygmaG1hYywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYXNoX2FsZywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0bHMxMl9wcmYtPnNlY3JldCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0bHMxMl9wcmYtPnNlY3JldF9sZW5ndGgpOworICAgIGlmIChzdGF0dXMgIT0gUFNBX1NVQ0NFU1MpIHsKKyAgICAgICAgZ290byBjbGVhbnVwOworICAgIH0KKyAgICBzdGF0dXMgPSBwc2FfbWFjX3VwZGF0ZSgmaG1hYywgdGxzMTJfcHJmLT5BaSwgaGFzaF9sZW5ndGgpOworICAgIGlmIChzdGF0dXMgIT0gUFNBX1NVQ0NFU1MpIHsKKyAgICAgICAgZ290byBjbGVhbnVwOworICAgIH0KKyAgICBzdGF0dXMgPSBwc2FfbWFjX3VwZGF0ZSgmaG1hYywgdGxzMTJfcHJmLT5sYWJlbCwgdGxzMTJfcHJmLT5sYWJlbF9sZW5ndGgpOworICAgIGlmIChzdGF0dXMgIT0gUFNBX1NVQ0NFU1MpIHsKKyAgICAgICAgZ290byBjbGVhbnVwOworICAgIH0KKyAgICBzdGF0dXMgPSBwc2FfbWFjX3VwZGF0ZSgmaG1hYywgdGxzMTJfcHJmLT5zZWVkLCB0bHMxMl9wcmYtPnNlZWRfbGVuZ3RoKTsKKyAgICBpZiAoc3RhdHVzICE9IFBTQV9TVUNDRVNTKSB7CisgICAgICAgIGdvdG8gY2xlYW51cDsKKyAgICB9CisgICAgc3RhdHVzID0gcHNhX21hY19zaWduX2ZpbmlzaCgmaG1hYywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRsczEyX3ByZi0+b3V0cHV0X2Jsb2NrLCBoYXNoX2xlbmd0aCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZobWFjX291dHB1dF9sZW5ndGgpOworICAgIGlmIChzdGF0dXMgIT0gUFNBX1NVQ0NFU1MpIHsKKyAgICAgICAgZ290byBjbGVhbnVwOworICAgIH0KKworCitjbGVhbnVwOgorICAgIGNsZWFudXBfc3RhdHVzID0gcHNhX21hY19hYm9ydCgmaG1hYyk7CisgICAgaWYgKHN0YXR1cyA9PSBQU0FfU1VDQ0VTUyAmJiBjbGVhbnVwX3N0YXR1cyAhPSBQU0FfU1VDQ0VTUykgeworICAgICAgICBzdGF0dXMgPSBjbGVhbnVwX3N0YXR1czsKKyAgICB9CisKKyAgICByZXR1cm4gc3RhdHVzOworfQorCitzdGF0aWMgcHNhX3N0YXR1c190IHBzYV9rZXlfZGVyaXZhdGlvbl90bHMxMl9wcmZfcmVhZCgKKyAgICBwc2FfdGxzMTJfcHJmX2tleV9kZXJpdmF0aW9uX3QgKnRsczEyX3ByZiwKKyAgICBwc2FfYWxnb3JpdGhtX3QgYWxnLAorICAgIHVpbnQ4X3QgKm91dHB1dCwKKyAgICBzaXplX3Qgb3V0cHV0X2xlbmd0aCkKK3sKKyAgICBwc2FfYWxnb3JpdGhtX3QgaGFzaF9hbGcgPSBQU0FfQUxHX1RMUzEyX1BSRl9HRVRfSEFTSChhbGcpOworICAgIHVpbnQ4X3QgaGFzaF9sZW5ndGggPSBQU0FfSEFTSF9MRU5HVEgoaGFzaF9hbGcpOworICAgIHBzYV9zdGF0dXNfdCBzdGF0dXM7CisgICAgdWludDhfdCBvZmZzZXQsIGxlbmd0aDsKKworICAgIHN3aXRjaCAodGxzMTJfcHJmLT5zdGF0ZSkgeworICAgICAgICBjYXNlIFBTQV9UTFMxMl9QUkZfU1RBVEVfTEFCRUxfU0VUOgorICAgICAgICAgICAgdGxzMTJfcHJmLT5zdGF0ZSA9IFBTQV9UTFMxMl9QUkZfU1RBVEVfT1VUUFVUOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgUFNBX1RMUzEyX1BSRl9TVEFURV9PVVRQVVQ6CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIHJldHVybiBQU0FfRVJST1JfQkFEX1NUQVRFOworICAgIH0KKworICAgIHdoaWxlIChvdXRwdXRfbGVuZ3RoICE9IDApIHsKKyAgICAgICAgLyogQ2hlY2sgaWYgd2UgaGF2ZSBmdWxseSBwcm9jZXNzZWQgdGhlIGN1cnJlbnQgYmxvY2suICovCisgICAgICAgIGlmICh0bHMxMl9wcmYtPmxlZnRfaW5fYmxvY2sgPT0gMCkgeworICAgICAgICAgICAgc3RhdHVzID0gcHNhX2tleV9kZXJpdmF0aW9uX3RsczEyX3ByZl9nZW5lcmF0ZV9uZXh0X2Jsb2NrKHRsczEyX3ByZiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbGcpOworICAgICAgICAgICAgaWYgKHN0YXR1cyAhPSBQU0FfU1VDQ0VTUykgeworICAgICAgICAgICAgICAgIHJldHVybiBzdGF0dXM7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICB9CisKKyAgICAgICAgaWYgKHRsczEyX3ByZi0+bGVmdF9pbl9ibG9jayA+IG91dHB1dF9sZW5ndGgpIHsKKyAgICAgICAgICAgIGxlbmd0aCA9ICh1aW50OF90KSBvdXRwdXRfbGVuZ3RoOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgbGVuZ3RoID0gdGxzMTJfcHJmLT5sZWZ0X2luX2Jsb2NrOworICAgICAgICB9CisKKyAgICAgICAgb2Zmc2V0ID0gaGFzaF9sZW5ndGggLSB0bHMxMl9wcmYtPmxlZnRfaW5fYmxvY2s7CisgICAgICAgIG1lbWNweShvdXRwdXQsIHRsczEyX3ByZi0+b3V0cHV0X2Jsb2NrICsgb2Zmc2V0LCBsZW5ndGgpOworICAgICAgICBvdXRwdXQgKz0gbGVuZ3RoOworICAgICAgICBvdXRwdXRfbGVuZ3RoIC09IGxlbmd0aDsKKyAgICAgICAgdGxzMTJfcHJmLT5sZWZ0X2luX2Jsb2NrIC09IGxlbmd0aDsKKyAgICB9CisKKyAgICByZXR1cm4gUFNBX1NVQ0NFU1M7Cit9CisjZW5kaWYgLyogTUJFRFRMU19QU0FfQlVJTFRJTl9BTEdfVExTMTJfUFJGIHx8CisgICAgICAgICogTUJFRFRMU19QU0FfQlVJTFRJTl9BTEdfVExTMTJfUFNLX1RPX01TICovCisKKyNpZiBkZWZpbmVkKE1CRURUTFNfUFNBX0JVSUxUSU5fQUxHX1RMUzEyX0VDSlBBS0VfVE9fUE1TKQorc3RhdGljIHBzYV9zdGF0dXNfdCBwc2Ffa2V5X2Rlcml2YXRpb25fdGxzMTJfZWNqcGFrZV90b19wbXNfcmVhZCgKKyAgICBwc2FfdGxzMTJfZWNqcGFrZV90b19wbXNfdCAqZWNqcGFrZSwKKyAgICB1aW50OF90ICpvdXRwdXQsCisgICAgc2l6ZV90IG91dHB1dF9sZW5ndGgpCit7CisgICAgcHNhX3N0YXR1c190IHN0YXR1cyA9IFBTQV9FUlJPUl9DT1JSVVBUSU9OX0RFVEVDVEVEOworICAgIHNpemVfdCBvdXRwdXRfc2l6ZSA9IDA7CisKKyAgICBpZiAob3V0cHV0X2xlbmd0aCAhPSAzMikgeworICAgICAgICByZXR1cm4gUFNBX0VSUk9SX0lOVkFMSURfQVJHVU1FTlQ7CisgICAgfQorCisgICAgc3RhdHVzID0gcHNhX2hhc2hfY29tcHV0ZShQU0FfQUxHX1NIQV8yNTYsIGVjanBha2UtPmRhdGEsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQU0FfVExTMTJfRUNKUEFLRV9UT19QTVNfREFUQV9TSVpFLCBvdXRwdXQsIG91dHB1dF9sZW5ndGgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmb3V0cHV0X3NpemUpOworICAgIGlmIChzdGF0dXMgIT0gUFNBX1NVQ0NFU1MpIHsKKyAgICAgICAgcmV0dXJuIHN0YXR1czsKKyAgICB9CisKKyAgICBpZiAob3V0cHV0X3NpemUgIT0gb3V0cHV0X2xlbmd0aCkgeworICAgICAgICByZXR1cm4gUFNBX0VSUk9SX0dFTkVSSUNfRVJST1I7CisgICAgfQorCisgICAgcmV0dXJuIFBTQV9TVUNDRVNTOworfQorI2VuZGlmCisKKyNpZiBkZWZpbmVkKFBTQV9IQVZFX1NPRlRfUEJLREYyKQorc3RhdGljIHBzYV9zdGF0dXNfdCBwc2Ffa2V5X2Rlcml2YXRpb25fcGJrZGYyX2dlbmVyYXRlX2Jsb2NrKAorICAgIHBzYV9wYmtkZjJfa2V5X2Rlcml2YXRpb25fdCAqcGJrZGYyLAorICAgIHBzYV9hbGdvcml0aG1fdCBwcmZfYWxnLAorICAgIHVpbnQ4X3QgcHJmX291dHB1dF9sZW5ndGgsCisgICAgcHNhX2tleV9hdHRyaWJ1dGVzX3QgKmF0dHJpYnV0ZXMpCit7CisgICAgcHNhX3N0YXR1c190IHN0YXR1czsKKyAgICBwc2FfbWFjX29wZXJhdGlvbl90IG1hY19vcGVyYXRpb24gPSBQU0FfTUFDX09QRVJBVElPTl9JTklUOworICAgIHNpemVfdCBtYWNfb3V0cHV0X2xlbmd0aDsKKyAgICB1aW50OF90IFVfaVtQU0FfTUFDX01BWF9TSVpFXTsKKyAgICB1aW50OF90ICpVX2FjY3VtdWxhdG9yID0gcGJrZGYyLT5vdXRwdXRfYmxvY2s7CisgICAgdWludDY0X3QgaTsKKyAgICB1aW50OF90IGJsb2NrX2NvdW50ZXJbNF07CisKKyAgICBtYWNfb3BlcmF0aW9uLmlzX3NpZ24gPSAxOworICAgIG1hY19vcGVyYXRpb24ubWFjX3NpemUgPSBwcmZfb3V0cHV0X2xlbmd0aDsKKyAgICBNQkVEVExTX1BVVF9VSU5UMzJfQkUocGJrZGYyLT5ibG9ja19udW1iZXIsIGJsb2NrX2NvdW50ZXIsIDApOworCisgICAgc3RhdHVzID0gcHNhX2RyaXZlcl93cmFwcGVyX21hY19zaWduX3NldHVwKCZtYWNfb3BlcmF0aW9uLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdHRyaWJ1dGVzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYmtkZjItPnBhc3N3b3JkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYmtkZjItPnBhc3N3b3JkX2xlbmd0aCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJmX2FsZyk7CisgICAgaWYgKHN0YXR1cyAhPSBQU0FfU1VDQ0VTUykgeworICAgICAgICBnb3RvIGNsZWFudXA7CisgICAgfQorICAgIHN0YXR1cyA9IHBzYV9tYWNfdXBkYXRlKCZtYWNfb3BlcmF0aW9uLCBwYmtkZjItPnNhbHQsIHBia2RmMi0+c2FsdF9sZW5ndGgpOworICAgIGlmIChzdGF0dXMgIT0gUFNBX1NVQ0NFU1MpIHsKKyAgICAgICAgZ290byBjbGVhbnVwOworICAgIH0KKyAgICBzdGF0dXMgPSBwc2FfbWFjX3VwZGF0ZSgmbWFjX29wZXJhdGlvbiwgYmxvY2tfY291bnRlciwgc2l6ZW9mKGJsb2NrX2NvdW50ZXIpKTsKKyAgICBpZiAoc3RhdHVzICE9IFBTQV9TVUNDRVNTKSB7CisgICAgICAgIGdvdG8gY2xlYW51cDsKKyAgICB9CisgICAgc3RhdHVzID0gcHNhX21hY19zaWduX2ZpbmlzaCgmbWFjX29wZXJhdGlvbiwgVV9pLCBzaXplb2YoVV9pKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZtYWNfb3V0cHV0X2xlbmd0aCk7CisgICAgaWYgKHN0YXR1cyAhPSBQU0FfU1VDQ0VTUykgeworICAgICAgICBnb3RvIGNsZWFudXA7CisgICAgfQorCisgICAgaWYgKG1hY19vdXRwdXRfbGVuZ3RoICE9IHByZl9vdXRwdXRfbGVuZ3RoKSB7CisgICAgICAgIHN0YXR1cyA9IFBTQV9FUlJPUl9DT1JSVVBUSU9OX0RFVEVDVEVEOworICAgICAgICBnb3RvIGNsZWFudXA7CisgICAgfQorCisgICAgbWVtY3B5KFVfYWNjdW11bGF0b3IsIFVfaSwgcHJmX291dHB1dF9sZW5ndGgpOworCisgICAgZm9yIChpID0gMTsgaSA8IHBia2RmMi0+aW5wdXRfY29zdDsgaSsrKSB7CisgICAgICAgIC8qIFdlIGFyZSBwYXNzaW5nIHByZl9vdXRwdXRfbGVuZ3RoIGFzIG1hY19zaXplIGJlY2F1c2UgdGhlIGRyaXZlcgorICAgICAgICAgKiBmdW5jdGlvbiBkaXJlY3RseSBzZXRzIG1hY19vdXRwdXRfbGVuZ3RoIGFzIG1hY19zaXplIHVwb24gc3VjY2Vzcy4KKyAgICAgICAgICogU2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9NYmVkLVRMUy9tYmVkdGxzL2lzc3Vlcy83ODAxICovCisgICAgICAgIHN0YXR1cyA9IHBzYV9kcml2ZXJfd3JhcHBlcl9tYWNfY29tcHV0ZShhdHRyaWJ1dGVzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGJrZGYyLT5wYXNzd29yZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBia2RmMi0+cGFzc3dvcmRfbGVuZ3RoLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJmX2FsZywgVV9pLCBwcmZfb3V0cHV0X2xlbmd0aCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVfaSwgcHJmX291dHB1dF9sZW5ndGgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmbWFjX291dHB1dF9sZW5ndGgpOworICAgICAgICBpZiAoc3RhdHVzICE9IFBTQV9TVUNDRVNTKSB7CisgICAgICAgICAgICBnb3RvIGNsZWFudXA7CisgICAgICAgIH0KKworICAgICAgICBtYmVkdGxzX3hvcihVX2FjY3VtdWxhdG9yLCBVX2FjY3VtdWxhdG9yLCBVX2ksIHByZl9vdXRwdXRfbGVuZ3RoKTsKKyAgICB9CisKK2NsZWFudXA6CisgICAgLyogWmVyb2lzZSBidWZmZXJzIHRvIGNsZWFyIHNlbnNpdGl2ZSBkYXRhIGZyb20gbWVtb3J5LiAqLworICAgIG1iZWR0bHNfcGxhdGZvcm1femVyb2l6ZShVX2ksIFBTQV9NQUNfTUFYX1NJWkUpOworICAgIHJldHVybiBzdGF0dXM7Cit9CisKK3N0YXRpYyBwc2Ffc3RhdHVzX3QgcHNhX2tleV9kZXJpdmF0aW9uX3Bia2RmMl9yZWFkKAorICAgIHBzYV9wYmtkZjJfa2V5X2Rlcml2YXRpb25fdCAqcGJrZGYyLAorICAgIHBzYV9hbGdvcml0aG1fdCBrZGZfYWxnLAorICAgIHVpbnQ4X3QgKm91dHB1dCwKKyAgICBzaXplX3Qgb3V0cHV0X2xlbmd0aCkKK3sKKyAgICBwc2Ffc3RhdHVzX3Qgc3RhdHVzOworICAgIHBzYV9hbGdvcml0aG1fdCBwcmZfYWxnOworICAgIHVpbnQ4X3QgcHJmX291dHB1dF9sZW5ndGg7CisgICAgcHNhX2tleV9hdHRyaWJ1dGVzX3QgYXR0cmlidXRlcyA9IFBTQV9LRVlfQVRUUklCVVRFU19JTklUOworICAgIHBzYV9zZXRfa2V5X2JpdHMoJmF0dHJpYnV0ZXMsIFBTQV9CWVRFU19UT19CSVRTKHBia2RmMi0+cGFzc3dvcmRfbGVuZ3RoKSk7CisgICAgcHNhX3NldF9rZXlfdXNhZ2VfZmxhZ3MoJmF0dHJpYnV0ZXMsIFBTQV9LRVlfVVNBR0VfU0lHTl9NRVNTQUdFKTsKKworICAgIGlmIChQU0FfQUxHX0lTX1BCS0RGMl9ITUFDKGtkZl9hbGcpKSB7CisgICAgICAgIHByZl9hbGcgPSBQU0FfQUxHX0hNQUMoUFNBX0FMR19QQktERjJfSE1BQ19HRVRfSEFTSChrZGZfYWxnKSk7CisgICAgICAgIHByZl9vdXRwdXRfbGVuZ3RoID0gUFNBX0hBU0hfTEVOR1RIKHByZl9hbGcpOworICAgICAgICBwc2Ffc2V0X2tleV90eXBlKCZhdHRyaWJ1dGVzLCBQU0FfS0VZX1RZUEVfSE1BQyk7CisgICAgfSBlbHNlIGlmIChrZGZfYWxnID09IFBTQV9BTEdfUEJLREYyX0FFU19DTUFDX1BSRl8xMjgpIHsKKyAgICAgICAgcHJmX2FsZyA9IFBTQV9BTEdfQ01BQzsKKyAgICAgICAgcHJmX291dHB1dF9sZW5ndGggPSBQU0FfTUFDX0xFTkdUSChQU0FfS0VZX1RZUEVfQUVTLCAxMjhVLCBQU0FfQUxHX0NNQUMpOworICAgICAgICBwc2Ffc2V0X2tleV90eXBlKCZhdHRyaWJ1dGVzLCBQU0FfS0VZX1RZUEVfQUVTKTsKKyAgICB9IGVsc2UgeworICAgICAgICByZXR1cm4gUFNBX0VSUk9SX0lOVkFMSURfQVJHVU1FTlQ7CisgICAgfQorCisgICAgc3dpdGNoIChwYmtkZjItPnN0YXRlKSB7CisgICAgICAgIGNhc2UgUFNBX1BCS0RGMl9TVEFURV9QQVNTV09SRF9TRVQ6CisgICAgICAgICAgICAvKiBJbml0aWFsbHkgd2UgbmVlZCBhIG5ldyBibG9jayBzbyBieXRlc191c2VkIGlzIGVxdWFsIHRvIGJsb2NrIHNpemUqLworICAgICAgICAgICAgcGJrZGYyLT5ieXRlc191c2VkID0gcHJmX291dHB1dF9sZW5ndGg7CisgICAgICAgICAgICBwYmtkZjItPnN0YXRlID0gUFNBX1BCS0RGMl9TVEFURV9PVVRQVVQ7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBQU0FfUEJLREYyX1NUQVRFX09VVFBVVDoKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgcmV0dXJuIFBTQV9FUlJPUl9CQURfU1RBVEU7CisgICAgfQorCisgICAgd2hpbGUgKG91dHB1dF9sZW5ndGggIT0gMCkgeworICAgICAgICB1aW50OF90IG4gPSBwcmZfb3V0cHV0X2xlbmd0aCAtIHBia2RmMi0+Ynl0ZXNfdXNlZDsKKyAgICAgICAgaWYgKG4gPiBvdXRwdXRfbGVuZ3RoKSB7CisgICAgICAgICAgICBuID0gKHVpbnQ4X3QpIG91dHB1dF9sZW5ndGg7CisgICAgICAgIH0KKyAgICAgICAgbWVtY3B5KG91dHB1dCwgcGJrZGYyLT5vdXRwdXRfYmxvY2sgKyBwYmtkZjItPmJ5dGVzX3VzZWQsIG4pOworICAgICAgICBvdXRwdXQgKz0gbjsKKyAgICAgICAgb3V0cHV0X2xlbmd0aCAtPSBuOworICAgICAgICBwYmtkZjItPmJ5dGVzX3VzZWQgKz0gbjsKKworICAgICAgICBpZiAob3V0cHV0X2xlbmd0aCA9PSAwKSB7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorCisgICAgICAgIC8qIFdlIG5lZWQgYSBuZXcgYmxvY2sgKi8KKyAgICAgICAgcGJrZGYyLT5ieXRlc191c2VkID0gMDsKKyAgICAgICAgcGJrZGYyLT5ibG9ja19udW1iZXIrKzsKKworICAgICAgICBzdGF0dXMgPSBwc2Ffa2V5X2Rlcml2YXRpb25fcGJrZGYyX2dlbmVyYXRlX2Jsb2NrKHBia2RmMiwgcHJmX2FsZywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmZfb3V0cHV0X2xlbmd0aCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmYXR0cmlidXRlcyk7CisgICAgICAgIGlmIChzdGF0dXMgIT0gUFNBX1NVQ0NFU1MpIHsKKyAgICAgICAgICAgIHJldHVybiBzdGF0dXM7CisgICAgICAgIH0KKyAgICB9CisKKyAgICByZXR1cm4gUFNBX1NVQ0NFU1M7Cit9CisjZW5kaWYgLyogUFNBX0hBVkVfU09GVF9QQktERjIgKi8KKworcHNhX3N0YXR1c190IHBzYV9rZXlfZGVyaXZhdGlvbl9vdXRwdXRfYnl0ZXMoCisgICAgcHNhX2tleV9kZXJpdmF0aW9uX29wZXJhdGlvbl90ICpvcGVyYXRpb24sCisgICAgdWludDhfdCAqb3V0cHV0X2V4dGVybmFsLAorICAgIHNpemVfdCBvdXRwdXRfbGVuZ3RoKQoreworICAgIHBzYV9zdGF0dXNfdCBzdGF0dXM7CisgICAgTE9DQUxfT1VUUFVUX0RFQ0xBUkUob3V0cHV0X2V4dGVybmFsLCBvdXRwdXQpOworCisgICAgcHNhX2FsZ29yaXRobV90IGtkZl9hbGcgPSBwc2Ffa2V5X2Rlcml2YXRpb25fZ2V0X2tkZl9hbGcob3BlcmF0aW9uKTsKKworICAgIGlmIChvcGVyYXRpb24tPmFsZyA9PSAwKSB7CisgICAgICAgIC8qIFRoaXMgaXMgYSBibGFuayBvcGVyYXRpb24uICovCisgICAgICAgIHJldHVybiBQU0FfRVJST1JfQkFEX1NUQVRFOworICAgIH0KKworICAgIGlmIChvdXRwdXRfbGVuZ3RoID09IDAgJiYgb3BlcmF0aW9uLT5jYXBhY2l0eSA9PSAwKSB7CisgICAgICAgIC8qIEVkZ2UgY2FzZTogdGhpcyBpcyBhIGZpbmlzaGVkIG9wZXJhdGlvbiwgYW5kIDAgYnl0ZXMKKyAgICAgICAgICogd2VyZSByZXF1ZXN0ZWQuIFRoZSByaWdodCBlcnJvciBpbiB0aGlzIGNhc2UgY291bGQKKyAgICAgICAgICogYmUgZWl0aGVyIElOU1VGRklDSUVOVF9DQVBBQ0lUWSBvciBCQURfU1RBVEUuIFJldHVybgorICAgICAgICAgKiBJTlNVRkZJQ0lFTlRfQ0FQQUNJVFksIHdoaWNoIGlzIHJpZ2h0IGZvciBhIGZpbmlzaGVkCisgICAgICAgICAqIG9wZXJhdGlvbiwgZm9yIGNvbnNpc3RlbmN5IHdpdGggdGhlIGNhc2Ugd2hlbgorICAgICAgICAgKiBvdXRwdXRfbGVuZ3RoID4gMC4gKi8KKyAgICAgICAgcmV0dXJuIFBTQV9FUlJPUl9JTlNVRkZJQ0lFTlRfREFUQTsKKyAgICB9CisKKyAgICBMT0NBTF9PVVRQVVRfQUxMT0Mob3V0cHV0X2V4dGVybmFsLCBvdXRwdXRfbGVuZ3RoLCBvdXRwdXQpOworICAgIGlmIChvdXRwdXRfbGVuZ3RoID4gb3BlcmF0aW9uLT5jYXBhY2l0eSkgeworICAgICAgICBvcGVyYXRpb24tPmNhcGFjaXR5ID0gMDsKKyAgICAgICAgLyogR28gdGhyb3VnaCB0aGUgZXJyb3IgcGF0aCB0byB3aXBlIGFsbCBjb25maWRlbnRpYWwgZGF0YSBub3cKKyAgICAgICAgICogdGhhdCB0aGUgb3BlcmF0aW9uIG9iamVjdCBpcyB1c2VsZXNzLiAqLworICAgICAgICBzdGF0dXMgPSBQU0FfRVJST1JfSU5TVUZGSUNJRU5UX0RBVEE7CisgICAgICAgIGdvdG8gZXhpdDsKKyAgICB9CisKKyAgICBvcGVyYXRpb24tPmNhcGFjaXR5IC09IG91dHB1dF9sZW5ndGg7CisKKyNpZiBkZWZpbmVkKEJVSUxUSU5fQUxHX0FOWV9IS0RGKQorICAgIGlmIChQU0FfQUxHX0lTX0FOWV9IS0RGKGtkZl9hbGcpKSB7CisgICAgICAgIHN0YXR1cyA9IHBzYV9rZXlfZGVyaXZhdGlvbl9oa2RmX3JlYWQoJm9wZXJhdGlvbi0+Y3R4LmhrZGYsIGtkZl9hbGcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3V0cHV0LCBvdXRwdXRfbGVuZ3RoKTsKKyAgICB9IGVsc2UKKyNlbmRpZiAvKiBCVUlMVElOX0FMR19BTllfSEtERiAqLworI2lmIGRlZmluZWQoTUJFRFRMU19QU0FfQlVJTFRJTl9BTEdfVExTMTJfUFJGKSB8fCBcCisgICAgZGVmaW5lZChNQkVEVExTX1BTQV9CVUlMVElOX0FMR19UTFMxMl9QU0tfVE9fTVMpCisgICAgaWYgKFBTQV9BTEdfSVNfVExTMTJfUFJGKGtkZl9hbGcpIHx8CisgICAgICAgIFBTQV9BTEdfSVNfVExTMTJfUFNLX1RPX01TKGtkZl9hbGcpKSB7CisgICAgICAgIHN0YXR1cyA9IHBzYV9rZXlfZGVyaXZhdGlvbl90bHMxMl9wcmZfcmVhZCgmb3BlcmF0aW9uLT5jdHgudGxzMTJfcHJmLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga2RmX2FsZywgb3V0cHV0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3V0cHV0X2xlbmd0aCk7CisgICAgfSBlbHNlCisjZW5kaWYgLyogTUJFRFRMU19QU0FfQlVJTFRJTl9BTEdfVExTMTJfUFJGIHx8CisgICAgICAgICogTUJFRFRMU19QU0FfQlVJTFRJTl9BTEdfVExTMTJfUFNLX1RPX01TICovCisjaWYgZGVmaW5lZChNQkVEVExTX1BTQV9CVUlMVElOX0FMR19UTFMxMl9FQ0pQQUtFX1RPX1BNUykKKyAgICBpZiAoa2RmX2FsZyA9PSBQU0FfQUxHX1RMUzEyX0VDSlBBS0VfVE9fUE1TKSB7CisgICAgICAgIHN0YXR1cyA9IHBzYV9rZXlfZGVyaXZhdGlvbl90bHMxMl9lY2pwYWtlX3RvX3Btc19yZWFkKAorICAgICAgICAgICAgJm9wZXJhdGlvbi0+Y3R4LnRsczEyX2VjanBha2VfdG9fcG1zLCBvdXRwdXQsIG91dHB1dF9sZW5ndGgpOworICAgIH0gZWxzZQorI2VuZGlmIC8qIE1CRURUTFNfUFNBX0JVSUxUSU5fQUxHX1RMUzEyX0VDSlBBS0VfVE9fUE1TICovCisjaWYgZGVmaW5lZChQU0FfSEFWRV9TT0ZUX1BCS0RGMikKKyAgICBpZiAoUFNBX0FMR19JU19QQktERjIoa2RmX2FsZykpIHsKKyAgICAgICAgc3RhdHVzID0gcHNhX2tleV9kZXJpdmF0aW9uX3Bia2RmMl9yZWFkKCZvcGVyYXRpb24tPmN0eC5wYmtkZjIsIGtkZl9hbGcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvdXRwdXQsIG91dHB1dF9sZW5ndGgpOworICAgIH0gZWxzZQorI2VuZGlmIC8qIFBTQV9IQVZFX1NPRlRfUEJLREYyICovCisKKyAgICB7CisgICAgICAgICh2b2lkKSBrZGZfYWxnOworICAgICAgICBzdGF0dXMgPSBQU0FfRVJST1JfQkFEX1NUQVRFOworICAgICAgICBMT0NBTF9PVVRQVVRfRlJFRShvdXRwdXRfZXh0ZXJuYWwsIG91dHB1dCk7CisKKyAgICAgICAgcmV0dXJuIHN0YXR1czsKKyAgICB9CisKK2V4aXQ6CisgICAgaWYgKHN0YXR1cyAhPSBQU0FfU1VDQ0VTUykgeworICAgICAgICAvKiBQcmVzZXJ2ZSB0aGUgYWxnb3JpdGhtIHVwb24gZXJyb3JzLCBidXQgY2xlYXIgYWxsIHNlbnNpdGl2ZSBzdGF0ZS4KKyAgICAgICAgICogVGhpcyBhbGxvd3MgdXMgdG8gZGlmZmVyZW50aWF0ZSBiZXR3ZWVuIGV4aGF1c3RlZCBvcGVyYXRpb25zIGFuZAorICAgICAgICAgKiBibGFuayBvcGVyYXRpb25zLCBzbyB3ZSBjYW4gcmV0dXJuIFBTQV9FUlJPUl9CQURfU1RBVEUgb24gYmxhbmsKKyAgICAgICAgICogb3BlcmF0aW9ucy4gKi8KKyAgICAgICAgcHNhX2FsZ29yaXRobV90IGFsZyA9IG9wZXJhdGlvbi0+YWxnOworICAgICAgICBwc2Ffa2V5X2Rlcml2YXRpb25fYWJvcnQob3BlcmF0aW9uKTsKKyAgICAgICAgb3BlcmF0aW9uLT5hbGcgPSBhbGc7CisgICAgICAgIGlmIChvdXRwdXQgIT0gTlVMTCkgeworICAgICAgICAgICAgbWVtc2V0KG91dHB1dCwgJyEnLCBvdXRwdXRfbGVuZ3RoKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIExPQ0FMX09VVFBVVF9GUkVFKG91dHB1dF9leHRlcm5hbCwgb3V0cHV0KTsKKyAgICByZXR1cm4gc3RhdHVzOworfQorCisjaWYgZGVmaW5lZChNQkVEVExTX1BTQV9CVUlMVElOX0tFWV9UWVBFX0RFUykKK3N0YXRpYyB2b2lkIHBzYV9kZXNfc2V0X2tleV9wYXJpdHkodWludDhfdCAqZGF0YSwgc2l6ZV90IGRhdGFfc2l6ZSkKK3sKKyAgICBpZiAoZGF0YV9zaXplID49IDgpIHsKKyAgICAgICAgbWJlZHRsc19kZXNfa2V5X3NldF9wYXJpdHkoZGF0YSk7CisgICAgfQorICAgIGlmIChkYXRhX3NpemUgPj0gMTYpIHsKKyAgICAgICAgbWJlZHRsc19kZXNfa2V5X3NldF9wYXJpdHkoZGF0YSArIDgpOworICAgIH0KKyAgICBpZiAoZGF0YV9zaXplID49IDI0KSB7CisgICAgICAgIG1iZWR0bHNfZGVzX2tleV9zZXRfcGFyaXR5KGRhdGEgKyAxNik7CisgICAgfQorfQorI2VuZGlmIC8qIE1CRURUTFNfUFNBX0JVSUxUSU5fS0VZX1RZUEVfREVTICovCisKKy8qCisgKiBFQ0Mga2V5cyBvbiBhIFdlaWVyc3RyYXNzIGVsbGlwdGljIGN1cnZlIHJlcXVpcmUgdGhlIGdlbmVyYXRpb24KKyAqIG9mIGEgcHJpdmF0ZSBrZXkgd2hpY2ggaXMgYW4gaW50ZWdlcgorICogaW4gdGhlIHJhbmdlIFsxLCBOIC0gMV0sIHdoZXJlIE4gaXMgdGhlIGJvdW5kYXJ5IG9mIHRoZSBwcml2YXRlIGtleSBkb21haW46CisgKiBOIGlzIHRoZSBwcmltZSBwIGZvciBEaWZmaWUtSGVsbG1hbiwgb3IgdGhlIG9yZGVyIG9mIHRoZQorICogY3VydmXigJlzIGJhc2UgcG9pbnQgZm9yIEVDQy4KKyAqCisgKiBMZXQgbSBiZSB0aGUgYml0IHNpemUgb2YgTiwgc3VjaCB0aGF0IDJebSA+IE4gPj0gMl4obS0xKS4KKyAqIFRoaXMgZnVuY3Rpb24gZ2VuZXJhdGVzIHRoZSBwcml2YXRlIGtleSB1c2luZyB0aGUgZm9sbG93aW5nIHByb2Nlc3M6CisgKgorICogMS4gRHJhdyBhIGJ5dGUgc3RyaW5nIG9mIGxlbmd0aCBjZWlsaW5nKG0vOCkgYnl0ZXMuCisgKiAyLiBJZiBtIGlzIG5vdCBhIG11bHRpcGxlIG9mIDgsIHNldCB0aGUgbW9zdCBzaWduaWZpY2FudAorICogICAgKDggKiBjZWlsaW5nKG0vOCkgLSBtKSBiaXRzIG9mIHRoZSBmaXJzdCBieXRlIGluIHRoZSBzdHJpbmcgdG8gemVyby4KKyAqIDMuIENvbnZlcnQgdGhlIHN0cmluZyB0byBpbnRlZ2VyIGsgYnkgZGVjb2RpbmcgaXQgYXMgYSBiaWctZW5kaWFuIGJ5dGUgc3RyaW5nLgorICogNC4gSWYgayA+IE4gLSAyLCBkaXNjYXJkIHRoZSByZXN1bHQgYW5kIHJldHVybiB0byBzdGVwIDEuCisgKiA1LiBPdXRwdXQgayArIDEgYXMgdGhlIHByaXZhdGUga2V5LgorICoKKyAqIFRoaXMgbWV0aG9kIGFsbG93cyBjb21wbGlhbmNlIHRvIE5JU1Qgc3RhbmRhcmRzLCBzcGVjaWZpY2FsbHkgdGhlIG1ldGhvZHMgdGl0bGVkCisgKiBLZXktUGFpciBHZW5lcmF0aW9uIGJ5IFRlc3RpbmcgQ2FuZGlkYXRlcyBpbiB0aGUgZm9sbG93aW5nIHB1YmxpY2F0aW9uczoKKyAqIC0gTklTVCBTcGVjaWFsIFB1YmxpY2F0aW9uIDgwMC01NkE6IFJlY29tbWVuZGF0aW9uIGZvciBQYWlyLVdpc2UgS2V5LUVzdGFibGlzaG1lbnQKKyAqICAgU2NoZW1lcyBVc2luZyBEaXNjcmV0ZSBMb2dhcml0aG0gQ3J5cHRvZ3JhcGh5IFtTUDgwMC01NkFdIMKnNS42LjEuMS40IGZvcgorICogICBEaWZmaWUtSGVsbG1hbiBrZXlzLgorICoKKyAqIC0gW1NQODAwLTU2QV0gwqc1LjYuMS4yLjIgb3IgRklQUyBQdWJsaWNhdGlvbiAxODYtNDogRGlnaXRhbCBTaWduYXR1cmUKKyAqICAgU3RhbmRhcmQgKERTUykgW0ZJUFMxODYtNF0gwqdCLjQuMiBmb3IgZWxsaXB0aWMgY3VydmUga2V5cy4KKyAqCisgKiBOb3RlOiBGdW5jdGlvbiBhbGxvY2F0ZXMgbWVtb3J5IGZvciAqZGF0YSBidWZmZXIsIHNvIGdpdmVuICpkYXRhIHNob3VsZCBiZQorICogICAgICAgYWx3YXlzIE5VTEwuCisgKi8KKyNpZiBkZWZpbmVkKFBTQV9XQU5UX0tFWV9UWVBFX0VDQ19LRVlfUEFJUl9ERVJJVkUpCisjaWYgZGVmaW5lZChNQkVEVExTX1BTQV9CVUlMVElOX0tFWV9UWVBFX0VDQ19LRVlfUEFJUl9ERVJJVkUpCitzdGF0aWMgcHNhX3N0YXR1c190IHBzYV9nZW5lcmF0ZV9kZXJpdmVkX2VjY19rZXlfd2VpZXJzdHJhc3NfaGVscGVyKAorICAgIHBzYV9rZXlfc2xvdF90ICpzbG90LAorICAgIHNpemVfdCBiaXRzLAorICAgIHBzYV9rZXlfZGVyaXZhdGlvbl9vcGVyYXRpb25fdCAqb3BlcmF0aW9uLAorICAgIHVpbnQ4X3QgKipkYXRhCisgICAgKQoreworICAgIHVuc2lnbmVkIGtleV9vdXRfb2ZfcmFuZ2UgPSAxOworICAgIG1iZWR0bHNfbXBpIGs7CisgICAgbWJlZHRsc19tcGkgZGlmZl9OXzI7CisgICAgaW50IHJldCA9IE1CRURUTFNfRVJSX0VSUk9SX0NPUlJVUFRJT05fREVURUNURUQ7CisgICAgcHNhX3N0YXR1c190IHN0YXR1cyA9IFBTQV9FUlJPUl9DT1JSVVBUSU9OX0RFVEVDVEVEOworICAgIHNpemVfdCBtOworICAgIHNpemVfdCBtX2J5dGVzOworCisgICAgbWJlZHRsc19tcGlfaW5pdCgmayk7CisgICAgbWJlZHRsc19tcGlfaW5pdCgmZGlmZl9OXzIpOworCisgICAgcHNhX2VjY19mYW1pbHlfdCBjdXJ2ZSA9IFBTQV9LRVlfVFlQRV9FQ0NfR0VUX0ZBTUlMWSgKKyAgICAgICAgc2xvdC0+YXR0ci50eXBlKTsKKyAgICBtYmVkdGxzX2VjcF9ncm91cF9pZCBncnBfaWQgPQorICAgICAgICBtYmVkdGxzX2VjY19ncm91cF9mcm9tX3BzYShjdXJ2ZSwgYml0cyk7CisKKyAgICBpZiAoZ3JwX2lkID09IE1CRURUTFNfRUNQX0RQX05PTkUpIHsKKyAgICAgICAgcmV0ID0gTUJFRFRMU19FUlJfQVNOMV9JTlZBTElEX0RBVEE7CisgICAgICAgIGdvdG8gY2xlYW51cDsKKyAgICB9CisKKyAgICBtYmVkdGxzX2VjcF9ncm91cCBlY3BfZ3JvdXA7CisgICAgbWJlZHRsc19lY3BfZ3JvdXBfaW5pdCgmZWNwX2dyb3VwKTsKKworICAgIE1CRURUTFNfTVBJX0NISyhtYmVkdGxzX2VjcF9ncm91cF9sb2FkKCZlY3BfZ3JvdXAsIGdycF9pZCkpOworCisgICAgLyogTiBpcyB0aGUgYm91bmRhcnkgb2YgdGhlIHByaXZhdGUga2V5IGRvbWFpbiAoZWNwX2dyb3VwLk4pLiAqLworICAgIC8qIExldCBtIGJlIHRoZSBiaXQgc2l6ZSBvZiBOLiAqLworICAgIG0gPSBlY3BfZ3JvdXAubmJpdHM7CisKKyAgICBtX2J5dGVzID0gUFNBX0JJVFNfVE9fQllURVMobSk7CisKKyAgICAvKiBDYWxjdWxhdGUgTiAtIDIgLSBpdCB3aWxsIGJlIG5lZWRlZCBsYXRlci4gKi8KKyAgICBNQkVEVExTX01QSV9DSEsobWJlZHRsc19tcGlfc3ViX2ludCgmZGlmZl9OXzIsICZlY3BfZ3JvdXAuTiwgMikpOworCisgICAgLyogTm90ZTogVGhpcyBmdW5jdGlvbiBpcyBhbHdheXMgY2FsbGVkIHdpdGggKmRhdGEgPT0gTlVMTCBhbmQgaXQKKyAgICAgKiBhbGxvY2F0ZXMgbWVtb3J5IGZvciB0aGUgZGF0YSBidWZmZXIuICovCisgICAgKmRhdGEgPSBtYmVkdGxzX2NhbGxvYygxLCBtX2J5dGVzKTsKKyAgICBpZiAoKmRhdGEgPT0gTlVMTCkgeworICAgICAgICByZXQgPSBNQkVEVExTX0VSUl9BU04xX0FMTE9DX0ZBSUxFRDsKKyAgICAgICAgZ290byBjbGVhbnVwOworICAgIH0KKworICAgIHdoaWxlIChrZXlfb3V0X29mX3JhbmdlKSB7CisgICAgICAgIC8qIDEuIERyYXcgYSBieXRlIHN0cmluZyBvZiBsZW5ndGggY2VpbGluZyhtLzgpIGJ5dGVzLiAqLworICAgICAgICBpZiAoKHN0YXR1cyA9IHBzYV9rZXlfZGVyaXZhdGlvbl9vdXRwdXRfYnl0ZXMob3BlcmF0aW9uLCAqZGF0YSwgbV9ieXRlcykpICE9IDApIHsKKyAgICAgICAgICAgIGdvdG8gY2xlYW51cDsKKyAgICAgICAgfQorCisgICAgICAgIC8qIDIuIElmIG0gaXMgbm90IGEgbXVsdGlwbGUgb2YgOCAqLworICAgICAgICBpZiAobSAlIDggIT0gMCkgeworICAgICAgICAgICAgLyogU2V0IHRoZSBtb3N0IHNpZ25pZmljYW50CisgICAgICAgICAgICAgKiAoOCAqIGNlaWxpbmcobS84KSAtIG0pIGJpdHMgb2YgdGhlIGZpcnN0IGJ5dGUgaW4KKyAgICAgICAgICAgICAqIHRoZSBzdHJpbmcgdG8gemVyby4KKyAgICAgICAgICAgICAqLworICAgICAgICAgICAgdWludDhfdCBjbGVhcl9iaXRfbWFzayA9ICgxIDw8IChtICUgOCkpIC0gMTsKKyAgICAgICAgICAgICgqZGF0YSlbMF0gJj0gY2xlYXJfYml0X21hc2s7CisgICAgICAgIH0KKworICAgICAgICAvKiAzLiBDb252ZXJ0IHRoZSBzdHJpbmcgdG8gaW50ZWdlciBrIGJ5IGRlY29kaW5nIGl0IGFzIGEKKyAgICAgICAgICogICAgYmlnLWVuZGlhbiBieXRlIHN0cmluZy4KKyAgICAgICAgICovCisgICAgICAgIE1CRURUTFNfTVBJX0NISyhtYmVkdGxzX21waV9yZWFkX2JpbmFyeSgmaywgKmRhdGEsIG1fYnl0ZXMpKTsKKworICAgICAgICAvKiA0LiBJZiBrID4gTiAtIDIsIGRpc2NhcmQgdGhlIHJlc3VsdCBhbmQgcmV0dXJuIHRvIHN0ZXAgMS4KKyAgICAgICAgICogICAgUmVzdWx0IG9mIGNvbXBhcmlzb24gaXMgcmV0dXJuZWQuIFdoZW4gaXQgaW5kaWNhdGVzIGVycm9yCisgICAgICAgICAqICAgIHRoZW4gdGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQgYWdhaW4uCisgICAgICAgICAqLworICAgICAgICBNQkVEVExTX01QSV9DSEsobWJlZHRsc19tcGlfbHRfbXBpX2N0KCZkaWZmX05fMiwgJmssICZrZXlfb3V0X29mX3JhbmdlKSk7CisgICAgfQorCisgICAgLyogNS4gT3V0cHV0IGsgKyAxIGFzIHRoZSBwcml2YXRlIGtleS4gKi8KKyAgICBNQkVEVExTX01QSV9DSEsobWJlZHRsc19tcGlfYWRkX2ludCgmaywgJmssIDEpKTsKKyAgICBNQkVEVExTX01QSV9DSEsobWJlZHRsc19tcGlfd3JpdGVfYmluYXJ5KCZrLCAqZGF0YSwgbV9ieXRlcykpOworY2xlYW51cDoKKyAgICBpZiAocmV0ICE9IDApIHsKKyAgICAgICAgc3RhdHVzID0gbWJlZHRsc190b19wc2FfZXJyb3IocmV0KTsKKyAgICB9CisgICAgaWYgKHN0YXR1cyAhPSBQU0FfU1VDQ0VTUykgeworICAgICAgICBtYmVkdGxzX2ZyZWUoKmRhdGEpOworICAgICAgICAqZGF0YSA9IE5VTEw7CisgICAgfQorICAgIG1iZWR0bHNfbXBpX2ZyZWUoJmspOworICAgIG1iZWR0bHNfbXBpX2ZyZWUoJmRpZmZfTl8yKTsKKyAgICByZXR1cm4gc3RhdHVzOworfQorCisvKiBFQ0Mga2V5cyBvbiBhIE1vbnRnb21lcnkgZWxsaXB0aWMgY3VydmUgZHJhd3MgYSBieXRlIHN0cmluZyB3aG9zZSBsZW5ndGgKKyAqIGlzIGRldGVybWluZWQgYnkgdGhlIGN1cnZlLCBhbmQgc2V0cyB0aGUgbWFuZGF0b3J5IGJpdHMgYWNjb3JkaW5nbHkuIFRoYXQgaXM6CisgKgorICogLSBDdXJ2ZTI1NTE5IChQU0FfRUNDX0ZBTUlMWV9NT05UR09NRVJZLCAyNTUgYml0cyk6CisgKiAgIGRyYXcgYSAzMi1ieXRlIHN0cmluZyBhbmQgcHJvY2VzcyBpdCBhcyBzcGVjaWZpZWQgaW4KKyAqICAgRWxsaXB0aWMgQ3VydmVzIGZvciBTZWN1cml0eSBbUkZDNzc0OF0gwqc1LgorICoKKyAqIC0gQ3VydmU0NDggKFBTQV9FQ0NfRkFNSUxZX01PTlRHT01FUlksIDQ0OCBiaXRzKToKKyAqICAgZHJhdyBhIDU2LWJ5dGUgc3RyaW5nIGFuZCBwcm9jZXNzIGl0IGFzIHNwZWNpZmllZCBpbiBbUkZDNzc0OF0gwqc1LgorICoKKyAqIE5vdGU6IEZ1bmN0aW9uIGFsbG9jYXRlcyBtZW1vcnkgZm9yICpkYXRhIGJ1ZmZlciwgc28gZ2l2ZW4gKmRhdGEgc2hvdWxkIGJlCisgKiAgICAgICBhbHdheXMgTlVMTC4KKyAqLworCitzdGF0aWMgcHNhX3N0YXR1c190IHBzYV9nZW5lcmF0ZV9kZXJpdmVkX2VjY19rZXlfbW9udGdvbWVyeV9oZWxwZXIoCisgICAgc2l6ZV90IGJpdHMsCisgICAgcHNhX2tleV9kZXJpdmF0aW9uX29wZXJhdGlvbl90ICpvcGVyYXRpb24sCisgICAgdWludDhfdCAqKmRhdGEKKyAgICApCit7CisgICAgc2l6ZV90IG91dHB1dF9sZW5ndGg7CisgICAgcHNhX3N0YXR1c190IHN0YXR1cyA9IFBTQV9FUlJPUl9DT1JSVVBUSU9OX0RFVEVDVEVEOworCisgICAgc3dpdGNoIChiaXRzKSB7CisgICAgICAgIGNhc2UgMjU1OgorICAgICAgICAgICAgb3V0cHV0X2xlbmd0aCA9IDMyOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgNDQ4OgorICAgICAgICAgICAgb3V0cHV0X2xlbmd0aCA9IDU2OworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICByZXR1cm4gUFNBX0VSUk9SX0lOVkFMSURfQVJHVU1FTlQ7CisgICAgICAgICAgICBicmVhazsKKyAgICB9CisKKyAgICAqZGF0YSA9IG1iZWR0bHNfY2FsbG9jKDEsIG91dHB1dF9sZW5ndGgpOworCisgICAgaWYgKCpkYXRhID09IE5VTEwpIHsKKyAgICAgICAgcmV0dXJuIFBTQV9FUlJPUl9JTlNVRkZJQ0lFTlRfTUVNT1JZOworICAgIH0KKworICAgIHN0YXR1cyA9IHBzYV9rZXlfZGVyaXZhdGlvbl9vdXRwdXRfYnl0ZXMob3BlcmF0aW9uLCAqZGF0YSwgb3V0cHV0X2xlbmd0aCk7CisKKyAgICBpZiAoc3RhdHVzICE9IFBTQV9TVUNDRVNTKSB7CisgICAgICAgIHJldHVybiBzdGF0dXM7CisgICAgfQorCisgICAgc3dpdGNoIChiaXRzKSB7CisgICAgICAgIGNhc2UgMjU1OgorICAgICAgICAgICAgKCpkYXRhKVswXSAmPSAyNDg7CisgICAgICAgICAgICAoKmRhdGEpWzMxXSAmPSAxMjc7CisgICAgICAgICAgICAoKmRhdGEpWzMxXSB8PSA2NDsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDQ0ODoKKyAgICAgICAgICAgICgqZGF0YSlbMF0gJj0gMjUyOworICAgICAgICAgICAgKCpkYXRhKVs1NV0gfD0gMTI4OworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICByZXR1cm4gUFNBX0VSUk9SX0NPUlJVUFRJT05fREVURUNURUQ7CisgICAgICAgICAgICBicmVhazsKKyAgICB9CisKKyAgICByZXR1cm4gc3RhdHVzOworfQorI2Vsc2UgLyogTUJFRFRMU19QU0FfQlVJTFRJTl9LRVlfVFlQRV9FQ0NfS0VZX1BBSVJfREVSSVZFICovCitzdGF0aWMgcHNhX3N0YXR1c190IHBzYV9nZW5lcmF0ZV9kZXJpdmVkX2VjY19rZXlfd2VpZXJzdHJhc3NfaGVscGVyKAorICAgIHBzYV9rZXlfc2xvdF90ICpzbG90LCBzaXplX3QgYml0cywKKyAgICBwc2Ffa2V5X2Rlcml2YXRpb25fb3BlcmF0aW9uX3QgKm9wZXJhdGlvbiwgdWludDhfdCAqKmRhdGEpCit7CisgICAgKHZvaWQpIHNsb3Q7CisgICAgKHZvaWQpIGJpdHM7CisgICAgKHZvaWQpIG9wZXJhdGlvbjsKKyAgICAodm9pZCkgZGF0YTsKKyAgICByZXR1cm4gUFNBX0VSUk9SX05PVF9TVVBQT1JURUQ7Cit9CisKK3N0YXRpYyBwc2Ffc3RhdHVzX3QgcHNhX2dlbmVyYXRlX2Rlcml2ZWRfZWNjX2tleV9tb250Z29tZXJ5X2hlbHBlcigKKyAgICBzaXplX3QgYml0cywgcHNhX2tleV9kZXJpdmF0aW9uX29wZXJhdGlvbl90ICpvcGVyYXRpb24sIHVpbnQ4X3QgKipkYXRhKQoreworICAgICh2b2lkKSBiaXRzOworICAgICh2b2lkKSBvcGVyYXRpb247CisgICAgKHZvaWQpIGRhdGE7CisgICAgcmV0dXJuIFBTQV9FUlJPUl9OT1RfU1VQUE9SVEVEOworfQorI2VuZGlmIC8qIE1CRURUTFNfUFNBX0JVSUxUSU5fS0VZX1RZUEVfRUNDX0tFWV9QQUlSX0RFUklWRSAqLworI2VuZGlmIC8qIFBTQV9XQU5UX0tFWV9UWVBFX0VDQ19LRVlfUEFJUl9ERVJJVkUgKi8KKworc3RhdGljIHBzYV9zdGF0dXNfdCBwc2FfZ2VuZXJhdGVfZGVyaXZlZF9rZXlfaW50ZXJuYWwoCisgICAgcHNhX2tleV9zbG90X3QgKnNsb3QsCisgICAgc2l6ZV90IGJpdHMsCisgICAgcHNhX2tleV9kZXJpdmF0aW9uX29wZXJhdGlvbl90ICpvcGVyYXRpb24pCit7CisgICAgdWludDhfdCAqZGF0YSA9IE5VTEw7CisgICAgc2l6ZV90IGJ5dGVzID0gUFNBX0JJVFNfVE9fQllURVMoYml0cyk7CisgICAgc2l6ZV90IHN0b3JhZ2Vfc2l6ZSA9IGJ5dGVzOworICAgIHBzYV9zdGF0dXNfdCBzdGF0dXMgPSBQU0FfRVJST1JfQ09SUlVQVElPTl9ERVRFQ1RFRDsKKworICAgIGlmIChQU0FfS0VZX1RZUEVfSVNfUFVCTElDX0tFWShzbG90LT5hdHRyLnR5cGUpKSB7CisgICAgICAgIHJldHVybiBQU0FfRVJST1JfSU5WQUxJRF9BUkdVTUVOVDsKKyAgICB9CisKKyNpZiBkZWZpbmVkKFBTQV9XQU5UX0tFWV9UWVBFX0VDQ19LRVlfUEFJUl9ERVJJVkUpIHx8IFwKKyAgICBkZWZpbmVkKE1CRURUTFNfUFNBX0JVSUxUSU5fS0VZX1RZUEVfRUNDX0tFWV9QQUlSX0RFUklWRSkKKyAgICBpZiAoUFNBX0tFWV9UWVBFX0lTX0VDQyhzbG90LT5hdHRyLnR5cGUpKSB7CisgICAgICAgIHBzYV9lY2NfZmFtaWx5X3QgY3VydmUgPSBQU0FfS0VZX1RZUEVfRUNDX0dFVF9GQU1JTFkoc2xvdC0+YXR0ci50eXBlKTsKKyAgICAgICAgaWYgKFBTQV9FQ0NfRkFNSUxZX0lTX1dFSUVSU1RSQVNTKGN1cnZlKSkgeworICAgICAgICAgICAgLyogV2VpZXJzdHJhc3MgZWxsaXB0aWMgY3VydmUgKi8KKyAgICAgICAgICAgIHN0YXR1cyA9IHBzYV9nZW5lcmF0ZV9kZXJpdmVkX2VjY19rZXlfd2VpZXJzdHJhc3NfaGVscGVyKHNsb3QsIGJpdHMsIG9wZXJhdGlvbiwgJmRhdGEpOworICAgICAgICAgICAgaWYgKHN0YXR1cyAhPSBQU0FfU1VDQ0VTUykgeworICAgICAgICAgICAgICAgIGdvdG8gZXhpdDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIC8qIE1vbnRnb21lcnkgZWxsaXB0aWMgY3VydmUgKi8KKyAgICAgICAgICAgIHN0YXR1cyA9IHBzYV9nZW5lcmF0ZV9kZXJpdmVkX2VjY19rZXlfbW9udGdvbWVyeV9oZWxwZXIoYml0cywgb3BlcmF0aW9uLCAmZGF0YSk7CisgICAgICAgICAgICBpZiAoc3RhdHVzICE9IFBTQV9TVUNDRVNTKSB7CisgICAgICAgICAgICAgICAgZ290byBleGl0OworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfSBlbHNlCisjZW5kaWYgLyogZGVmaW5lZChQU0FfV0FOVF9LRVlfVFlQRV9FQ0NfS0VZX1BBSVJfREVSSVZFKSB8fAorICAgICAgICAgIGRlZmluZWQoTUJFRFRMU19QU0FfQlVJTFRJTl9LRVlfVFlQRV9FQ0NfS0VZX1BBSVJfREVSSVZFKSAqLworICAgIGlmIChrZXlfdHlwZV9pc19yYXdfYnl0ZXMoc2xvdC0+YXR0ci50eXBlKSkgeworICAgICAgICBpZiAoYml0cyAlIDggIT0gMCkgeworICAgICAgICAgICAgcmV0dXJuIFBTQV9FUlJPUl9JTlZBTElEX0FSR1VNRU5UOworICAgICAgICB9CisgICAgICAgIGRhdGEgPSBtYmVkdGxzX2NhbGxvYygxLCBieXRlcyk7CisgICAgICAgIGlmIChkYXRhID09IE5VTEwpIHsKKyAgICAgICAgICAgIHJldHVybiBQU0FfRVJST1JfSU5TVUZGSUNJRU5UX01FTU9SWTsKKyAgICAgICAgfQorCisgICAgICAgIHN0YXR1cyA9IHBzYV9rZXlfZGVyaXZhdGlvbl9vdXRwdXRfYnl0ZXMob3BlcmF0aW9uLCBkYXRhLCBieXRlcyk7CisgICAgICAgIGlmIChzdGF0dXMgIT0gUFNBX1NVQ0NFU1MpIHsKKyAgICAgICAgICAgIGdvdG8gZXhpdDsKKyAgICAgICAgfQorI2lmIGRlZmluZWQoTUJFRFRMU19QU0FfQlVJTFRJTl9LRVlfVFlQRV9ERVMpCisgICAgICAgIGlmIChzbG90LT5hdHRyLnR5cGUgPT0gUFNBX0tFWV9UWVBFX0RFUykgeworICAgICAgICAgICAgcHNhX2Rlc19zZXRfa2V5X3Bhcml0eShkYXRhLCBieXRlcyk7CisgICAgICAgIH0KKyNlbmRpZiAvKiBkZWZpbmVkKE1CRURUTFNfUFNBX0JVSUxUSU5fS0VZX1RZUEVfREVTKSAqLworICAgIH0gZWxzZSB7CisgICAgICAgIHJldHVybiBQU0FfRVJST1JfTk9UX1NVUFBPUlRFRDsKKyAgICB9CisKKyAgICBzbG90LT5hdHRyLmJpdHMgPSAocHNhX2tleV9iaXRzX3QpIGJpdHM7CisKKyAgICBpZiAocHNhX2tleV9saWZldGltZV9pc19leHRlcm5hbChzbG90LT5hdHRyLmxpZmV0aW1lKSkgeworICAgICAgICBzdGF0dXMgPSBwc2FfZHJpdmVyX3dyYXBwZXJfZ2V0X2tleV9idWZmZXJfc2l6ZSgmc2xvdC0+YXR0ciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJnN0b3JhZ2Vfc2l6ZSk7CisgICAgICAgIGlmIChzdGF0dXMgIT0gUFNBX1NVQ0NFU1MpIHsKKyAgICAgICAgICAgIGdvdG8gZXhpdDsKKyAgICAgICAgfQorICAgIH0KKyAgICBzdGF0dXMgPSBwc2FfYWxsb2NhdGVfYnVmZmVyX3RvX3Nsb3Qoc2xvdCwgc3RvcmFnZV9zaXplKTsKKyAgICBpZiAoc3RhdHVzICE9IFBTQV9TVUNDRVNTKSB7CisgICAgICAgIGdvdG8gZXhpdDsKKyAgICB9CisKKyAgICBzdGF0dXMgPSBwc2FfZHJpdmVyX3dyYXBwZXJfaW1wb3J0X2tleSgmc2xvdC0+YXR0ciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhLCBieXRlcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzbG90LT5rZXkuZGF0YSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzbG90LT5rZXkuYnl0ZXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJnNsb3QtPmtleS5ieXRlcywgJmJpdHMpOworICAgIGlmIChiaXRzICE9IHNsb3QtPmF0dHIuYml0cykgeworICAgICAgICBzdGF0dXMgPSBQU0FfRVJST1JfSU5WQUxJRF9BUkdVTUVOVDsKKyAgICB9CisKK2V4aXQ6CisgICAgbWJlZHRsc19mcmVlKGRhdGEpOworICAgIHJldHVybiBzdGF0dXM7Cit9CisKK3N0YXRpYyBjb25zdCBwc2Ffa2V5X3Byb2R1Y3Rpb25fcGFyYW1ldGVyc190IGRlZmF1bHRfcHJvZHVjdGlvbl9wYXJhbWV0ZXJzID0KKyAgICBQU0FfS0VZX1BST0RVQ1RJT05fUEFSQU1FVEVSU19JTklUOworCitpbnQgcHNhX2tleV9wcm9kdWN0aW9uX3BhcmFtZXRlcnNfYXJlX2RlZmF1bHQoCisgICAgY29uc3QgcHNhX2tleV9wcm9kdWN0aW9uX3BhcmFtZXRlcnNfdCAqcGFyYW1zLAorICAgIHNpemVfdCBwYXJhbXNfZGF0YV9sZW5ndGgpCit7CisgICAgaWYgKHBhcmFtcy0+ZmxhZ3MgIT0gMCkgeworICAgICAgICByZXR1cm4gMDsKKyAgICB9CisgICAgaWYgKHBhcmFtc19kYXRhX2xlbmd0aCAhPSAwKSB7CisgICAgICAgIHJldHVybiAwOworICAgIH0KKyAgICByZXR1cm4gMTsKK30KKworcHNhX3N0YXR1c190IHBzYV9rZXlfZGVyaXZhdGlvbl9vdXRwdXRfa2V5X2V4dCgKKyAgICBjb25zdCBwc2Ffa2V5X2F0dHJpYnV0ZXNfdCAqYXR0cmlidXRlcywKKyAgICBwc2Ffa2V5X2Rlcml2YXRpb25fb3BlcmF0aW9uX3QgKm9wZXJhdGlvbiwKKyAgICBjb25zdCBwc2Ffa2V5X3Byb2R1Y3Rpb25fcGFyYW1ldGVyc190ICpwYXJhbXMsCisgICAgc2l6ZV90IHBhcmFtc19kYXRhX2xlbmd0aCwKKyAgICBtYmVkdGxzX3N2Y19rZXlfaWRfdCAqa2V5KQoreworICAgIHBzYV9zdGF0dXNfdCBzdGF0dXM7CisgICAgcHNhX2tleV9zbG90X3QgKnNsb3QgPSBOVUxMOworICAgIHBzYV9zZV9kcnZfdGFibGVfZW50cnlfdCAqZHJpdmVyID0gTlVMTDsKKworICAgICprZXkgPSBNQkVEVExTX1NWQ19LRVlfSURfSU5JVDsKKworICAgIC8qIFJlamVjdCBhbnkgYXR0ZW1wdCB0byBjcmVhdGUgYSB6ZXJvLWxlbmd0aCBrZXkgc28gdGhhdCB3ZSBkb24ndAorICAgICAqIHJpc2sgdHJpcHBpbmcgdXAgbGF0ZXIsIGUuZy4gb24gYSBtYWxsb2MoMCkgdGhhdCByZXR1cm5zIE5VTEwuICovCisgICAgaWYgKHBzYV9nZXRfa2V5X2JpdHMoYXR0cmlidXRlcykgPT0gMCkgeworICAgICAgICByZXR1cm4gUFNBX0VSUk9SX0lOVkFMSURfQVJHVU1FTlQ7CisgICAgfQorCisgICAgaWYgKCFwc2Ffa2V5X3Byb2R1Y3Rpb25fcGFyYW1ldGVyc19hcmVfZGVmYXVsdChwYXJhbXMsIHBhcmFtc19kYXRhX2xlbmd0aCkpIHsKKyAgICAgICAgcmV0dXJuIFBTQV9FUlJPUl9JTlZBTElEX0FSR1VNRU5UOworICAgIH0KKworICAgIGlmIChvcGVyYXRpb24tPmFsZyA9PSBQU0FfQUxHX05PTkUpIHsKKyAgICAgICAgcmV0dXJuIFBTQV9FUlJPUl9CQURfU1RBVEU7CisgICAgfQorCisgICAgaWYgKCFvcGVyYXRpb24tPmNhbl9vdXRwdXRfa2V5KSB7CisgICAgICAgIHJldHVybiBQU0FfRVJST1JfTk9UX1BFUk1JVFRFRDsKKyAgICB9CisKKyAgICBzdGF0dXMgPSBwc2Ffc3RhcnRfa2V5X2NyZWF0aW9uKFBTQV9LRVlfQ1JFQVRJT05fREVSSVZFLCBhdHRyaWJ1dGVzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJnNsb3QsICZkcml2ZXIpOworI2lmIGRlZmluZWQoTUJFRFRMU19QU0FfQ1JZUFRPX1NFX0MpCisgICAgaWYgKGRyaXZlciAhPSBOVUxMKSB7CisgICAgICAgIC8qIERlcml2aW5nIGEga2V5IGluIGEgc2VjdXJlIGVsZW1lbnQgaXMgbm90IGltcGxlbWVudGVkIHlldC4gKi8KKyAgICAgICAgc3RhdHVzID0gUFNBX0VSUk9SX05PVF9TVVBQT1JURUQ7CisgICAgfQorI2VuZGlmIC8qIE1CRURUTFNfUFNBX0NSWVBUT19TRV9DICovCisgICAgaWYgKHN0YXR1cyA9PSBQU0FfU1VDQ0VTUykgeworICAgICAgICBzdGF0dXMgPSBwc2FfZ2VuZXJhdGVfZGVyaXZlZF9rZXlfaW50ZXJuYWwoc2xvdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZXMtPmJpdHMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcGVyYXRpb24pOworICAgIH0KKyAgICBpZiAoc3RhdHVzID09IFBTQV9TVUNDRVNTKSB7CisgICAgICAgIHN0YXR1cyA9IHBzYV9maW5pc2hfa2V5X2NyZWF0aW9uKHNsb3QsIGRyaXZlciwga2V5KTsKKyAgICB9CisgICAgaWYgKHN0YXR1cyAhPSBQU0FfU1VDQ0VTUykgeworICAgICAgICBwc2FfZmFpbF9rZXlfY3JlYXRpb24oc2xvdCwgZHJpdmVyKTsKKyAgICB9CisKKyAgICByZXR1cm4gc3RhdHVzOworfQorCitwc2Ffc3RhdHVzX3QgcHNhX2tleV9kZXJpdmF0aW9uX291dHB1dF9rZXkoCisgICAgY29uc3QgcHNhX2tleV9hdHRyaWJ1dGVzX3QgKmF0dHJpYnV0ZXMsCisgICAgcHNhX2tleV9kZXJpdmF0aW9uX29wZXJhdGlvbl90ICpvcGVyYXRpb24sCisgICAgbWJlZHRsc19zdmNfa2V5X2lkX3QgKmtleSkKK3sKKyAgICByZXR1cm4gcHNhX2tleV9kZXJpdmF0aW9uX291dHB1dF9rZXlfZXh0KGF0dHJpYnV0ZXMsIG9wZXJhdGlvbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZkZWZhdWx0X3Byb2R1Y3Rpb25fcGFyYW1ldGVycywgMCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtleSk7Cit9CisKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisvKiBLZXkgZGVyaXZhdGlvbiAqLworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKyNpZiBkZWZpbmVkKEFUX0xFQVNUX09ORV9CVUlMVElOX0tERikKK3N0YXRpYyBpbnQgaXNfa2RmX2FsZ19zdXBwb3J0ZWQocHNhX2FsZ29yaXRobV90IGtkZl9hbGcpCit7CisjaWYgZGVmaW5lZChNQkVEVExTX1BTQV9CVUlMVElOX0FMR19IS0RGKQorICAgIGlmIChQU0FfQUxHX0lTX0hLREYoa2RmX2FsZykpIHsKKyAgICAgICAgcmV0dXJuIDE7CisgICAgfQorI2VuZGlmCisjaWYgZGVmaW5lZChNQkVEVExTX1BTQV9CVUlMVElOX0FMR19IS0RGX0VYVFJBQ1QpCisgICAgaWYgKFBTQV9BTEdfSVNfSEtERl9FWFRSQUNUKGtkZl9hbGcpKSB7CisgICAgICAgIHJldHVybiAxOworICAgIH0KKyNlbmRpZgorI2lmIGRlZmluZWQoTUJFRFRMU19QU0FfQlVJTFRJTl9BTEdfSEtERl9FWFBBTkQpCisgICAgaWYgKFBTQV9BTEdfSVNfSEtERl9FWFBBTkQoa2RmX2FsZykpIHsKKyAgICAgICAgcmV0dXJuIDE7CisgICAgfQorI2VuZGlmCisjaWYgZGVmaW5lZChNQkVEVExTX1BTQV9CVUlMVElOX0FMR19UTFMxMl9QUkYpCisgICAgaWYgKFBTQV9BTEdfSVNfVExTMTJfUFJGKGtkZl9hbGcpKSB7CisgICAgICAgIHJldHVybiAxOworICAgIH0KKyNlbmRpZgorI2lmIGRlZmluZWQoTUJFRFRMU19QU0FfQlVJTFRJTl9BTEdfVExTMTJfUFNLX1RPX01TKQorICAgIGlmIChQU0FfQUxHX0lTX1RMUzEyX1BTS19UT19NUyhrZGZfYWxnKSkgeworICAgICAgICByZXR1cm4gMTsKKyAgICB9CisjZW5kaWYKKyNpZiBkZWZpbmVkKE1CRURUTFNfUFNBX0JVSUxUSU5fQUxHX1RMUzEyX0VDSlBBS0VfVE9fUE1TKQorICAgIGlmIChrZGZfYWxnID09IFBTQV9BTEdfVExTMTJfRUNKUEFLRV9UT19QTVMpIHsKKyAgICAgICAgcmV0dXJuIDE7CisgICAgfQorI2VuZGlmCisjaWYgZGVmaW5lZChNQkVEVExTX1BTQV9CVUlMVElOX0FMR19QQktERjJfSE1BQykKKyAgICBpZiAoUFNBX0FMR19JU19QQktERjJfSE1BQyhrZGZfYWxnKSkgeworICAgICAgICByZXR1cm4gMTsKKyAgICB9CisjZW5kaWYKKyNpZiBkZWZpbmVkKE1CRURUTFNfUFNBX0JVSUxUSU5fQUxHX1BCS0RGMl9BRVNfQ01BQ19QUkZfMTI4KQorICAgIGlmIChrZGZfYWxnID09IFBTQV9BTEdfUEJLREYyX0FFU19DTUFDX1BSRl8xMjgpIHsKKyAgICAgICAgcmV0dXJuIDE7CisgICAgfQorI2VuZGlmCisgICAgcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBwc2Ffc3RhdHVzX3QgcHNhX2hhc2hfdHJ5X3N1cHBvcnQocHNhX2FsZ29yaXRobV90IGFsZykKK3sKKyAgICBwc2FfaGFzaF9vcGVyYXRpb25fdCBvcGVyYXRpb24gPSBQU0FfSEFTSF9PUEVSQVRJT05fSU5JVDsKKyAgICBwc2Ffc3RhdHVzX3Qgc3RhdHVzID0gcHNhX2hhc2hfc2V0dXAoJm9wZXJhdGlvbiwgYWxnKTsKKyAgICBwc2FfaGFzaF9hYm9ydCgmb3BlcmF0aW9uKTsKKyAgICByZXR1cm4gc3RhdHVzOworfQorCitzdGF0aWMgcHNhX3N0YXR1c190IHBzYV9rZXlfZGVyaXZhdGlvbl9zZXRfbWF4aW11bV9jYXBhY2l0eSgKKyAgICBwc2Ffa2V5X2Rlcml2YXRpb25fb3BlcmF0aW9uX3QgKm9wZXJhdGlvbiwKKyAgICBwc2FfYWxnb3JpdGhtX3Qga2RmX2FsZykKK3sKKyNpZiBkZWZpbmVkKFBTQV9XQU5UX0FMR19UTFMxMl9FQ0pQQUtFX1RPX1BNUykKKyAgICBpZiAoa2RmX2FsZyA9PSBQU0FfQUxHX1RMUzEyX0VDSlBBS0VfVE9fUE1TKSB7CisgICAgICAgIG9wZXJhdGlvbi0+Y2FwYWNpdHkgPSBQU0FfSEFTSF9MRU5HVEgoUFNBX0FMR19TSEFfMjU2KTsKKyAgICAgICAgcmV0dXJuIFBTQV9TVUNDRVNTOworICAgIH0KKyNlbmRpZgorI2lmIGRlZmluZWQoUFNBX1dBTlRfQUxHX1BCS0RGMl9BRVNfQ01BQ19QUkZfMTI4KQorICAgIGlmIChrZGZfYWxnID09IFBTQV9BTEdfUEJLREYyX0FFU19DTUFDX1BSRl8xMjgpIHsKKyNpZiAoU0laRV9NQVggPiBVSU5UMzJfTUFYKQorICAgICAgICBvcGVyYXRpb24tPmNhcGFjaXR5ID0gVUlOVDMyX01BWCAqIChzaXplX3QpIFBTQV9NQUNfTEVOR1RIKAorICAgICAgICAgICAgUFNBX0tFWV9UWVBFX0FFUywKKyAgICAgICAgICAgIDEyOFUsCisgICAgICAgICAgICBQU0FfQUxHX0NNQUMpOworI2Vsc2UKKyAgICAgICAgb3BlcmF0aW9uLT5jYXBhY2l0eSA9IFNJWkVfTUFYOworI2VuZGlmCisgICAgICAgIHJldHVybiBQU0FfU1VDQ0VTUzsKKyAgICB9CisjZW5kaWYgLyogUFNBX1dBTlRfQUxHX1BCS0RGMl9BRVNfQ01BQ19QUkZfMTI4ICovCisKKyAgICAvKiBBZnRlciB0aGlzIHBvaW50LCBpZiBrZGZfYWxnIGlzIG5vdCB2YWxpZCB0aGVuIHZhbHVlIG9mIGhhc2hfYWxnIG1heSBiZQorICAgICAqIGludmFsaWQgb3IgbWVhbmluZ2xlc3MgYnV0IGl0IGRvZXMgbm90IGFmZmVjdCB0aGlzIGZ1bmN0aW9uICovCisgICAgcHNhX2FsZ29yaXRobV90IGhhc2hfYWxnID0gUFNBX0FMR19HRVRfSEFTSChrZGZfYWxnKTsKKyAgICBzaXplX3QgaGFzaF9zaXplID0gUFNBX0hBU0hfTEVOR1RIKGhhc2hfYWxnKTsKKyAgICBpZiAoaGFzaF9zaXplID09IDApIHsKKyAgICAgICAgcmV0dXJuIFBTQV9FUlJPUl9OT1RfU1VQUE9SVEVEOworICAgIH0KKworICAgIC8qIE1ha2Ugc3VyZSB0aGF0IGhhc2hfYWxnIGlzIGEgc3VwcG9ydGVkIGhhc2ggYWxnb3JpdGhtLiBPdGhlcndpc2UKKyAgICAgKiB3ZSBtaWdodCBmYWlsIGxhdGVyLCB3aGljaCBpcyBzb21ld2hhdCB1bmZyaWVuZGx5IGFuZCBwb3RlbnRpYWxseQorICAgICAqIHJpc2stcHJvbmUuICovCisgICAgcHNhX3N0YXR1c190IHN0YXR1cyA9IHBzYV9oYXNoX3RyeV9zdXBwb3J0KGhhc2hfYWxnKTsKKyAgICBpZiAoc3RhdHVzICE9IFBTQV9TVUNDRVNTKSB7CisgICAgICAgIHJldHVybiBzdGF0dXM7CisgICAgfQorCisjaWYgZGVmaW5lZChQU0FfV0FOVF9BTEdfSEtERikKKyAgICBpZiAoUFNBX0FMR19JU19IS0RGKGtkZl9hbGcpKSB7CisgICAgICAgIG9wZXJhdGlvbi0+Y2FwYWNpdHkgPSAyNTUgKiBoYXNoX3NpemU7CisgICAgfSBlbHNlCisjZW5kaWYKKyNpZiBkZWZpbmVkKFBTQV9XQU5UX0FMR19IS0RGX0VYVFJBQ1QpCisgICAgaWYgKFBTQV9BTEdfSVNfSEtERl9FWFRSQUNUKGtkZl9hbGcpKSB7CisgICAgICAgIG9wZXJhdGlvbi0+Y2FwYWNpdHkgPSBoYXNoX3NpemU7CisgICAgfSBlbHNlCisjZW5kaWYKKyNpZiBkZWZpbmVkKFBTQV9XQU5UX0FMR19IS0RGX0VYUEFORCkKKyAgICBpZiAoUFNBX0FMR19JU19IS0RGX0VYUEFORChrZGZfYWxnKSkgeworICAgICAgICBvcGVyYXRpb24tPmNhcGFjaXR5ID0gMjU1ICogaGFzaF9zaXplOworICAgIH0gZWxzZQorI2VuZGlmCisjaWYgZGVmaW5lZChQU0FfV0FOVF9BTEdfVExTMTJfUFJGKQorICAgIGlmIChQU0FfQUxHX0lTX1RMUzEyX1BSRihrZGZfYWxnKSAmJgorICAgICAgICAoaGFzaF9hbGcgPT0gUFNBX0FMR19TSEFfMjU2IHx8IGhhc2hfYWxnID09IFBTQV9BTEdfU0hBXzM4NCkpIHsKKyAgICAgICAgb3BlcmF0aW9uLT5jYXBhY2l0eSA9IFNJWkVfTUFYOworICAgIH0gZWxzZQorI2VuZGlmCisjaWYgZGVmaW5lZChQU0FfV0FOVF9BTEdfVExTMTJfUFNLX1RPX01TKQorICAgIGlmIChQU0FfQUxHX0lTX1RMUzEyX1BTS19UT19NUyhrZGZfYWxnKSAmJgorICAgICAgICAoaGFzaF9hbGcgPT0gUFNBX0FMR19TSEFfMjU2IHx8IGhhc2hfYWxnID09IFBTQV9BTEdfU0hBXzM4NCkpIHsKKyAgICAgICAgLyogTWFzdGVyIFNlY3JldCBpcyBhbHdheXMgNDggYnl0ZXMKKyAgICAgICAgICogaHR0cHM6Ly9kYXRhdHJhY2tlci5pZXRmLm9yZy9kb2MvaHRtbC9yZmM1MjQ2Lmh0bWwjc2VjdGlvbi04LjEgKi8KKyAgICAgICAgb3BlcmF0aW9uLT5jYXBhY2l0eSA9IDQ4VTsKKyAgICB9IGVsc2UKKyNlbmRpZgorI2lmIGRlZmluZWQoUFNBX1dBTlRfQUxHX1BCS0RGMl9ITUFDKQorICAgIGlmIChQU0FfQUxHX0lTX1BCS0RGMl9ITUFDKGtkZl9hbGcpKSB7CisjaWYgKFNJWkVfTUFYID4gVUlOVDMyX01BWCkKKyAgICAgICAgb3BlcmF0aW9uLT5jYXBhY2l0eSA9IFVJTlQzMl9NQVggKiBoYXNoX3NpemU7CisjZWxzZQorICAgICAgICBvcGVyYXRpb24tPmNhcGFjaXR5ID0gU0laRV9NQVg7CisjZW5kaWYKKyAgICB9IGVsc2UKKyNlbmRpZiAvKiBQU0FfV0FOVF9BTEdfUEJLREYyX0hNQUMgKi8KKyAgICB7CisgICAgICAgICh2b2lkKSBoYXNoX3NpemU7CisgICAgICAgIHN0YXR1cyA9IFBTQV9FUlJPUl9OT1RfU1VQUE9SVEVEOworICAgIH0KKyAgICByZXR1cm4gc3RhdHVzOworfQorCitzdGF0aWMgcHNhX3N0YXR1c190IHBzYV9rZXlfZGVyaXZhdGlvbl9zZXR1cF9rZGYoCisgICAgcHNhX2tleV9kZXJpdmF0aW9uX29wZXJhdGlvbl90ICpvcGVyYXRpb24sCisgICAgcHNhX2FsZ29yaXRobV90IGtkZl9hbGcpCit7CisgICAgLyogTWFrZSBzdXJlIHRoYXQgb3BlcmF0aW9uLT5jdHggaXMgcHJvcGVybHkgemVyby1pbml0aWFsaXNlZC4gKE1hY3JvCisgICAgICogaW5pdGlhbGlzZXJzIGZvciB0aGlzIHVuaW9uIGxlYXZlIHNvbWUgYnl0ZXMgdW5zcGVjaWZpZWQuKSAqLworICAgIG1lbXNldCgmb3BlcmF0aW9uLT5jdHgsIDAsIHNpemVvZihvcGVyYXRpb24tPmN0eCkpOworCisgICAgLyogTWFrZSBzdXJlIHRoYXQga2RmX2FsZyBpcyBhIHN1cHBvcnRlZCBrZXkgZGVyaXZhdGlvbiBhbGdvcml0aG0uICovCisgICAgaWYgKCFpc19rZGZfYWxnX3N1cHBvcnRlZChrZGZfYWxnKSkgeworICAgICAgICByZXR1cm4gUFNBX0VSUk9SX05PVF9TVVBQT1JURUQ7CisgICAgfQorCisgICAgcHNhX3N0YXR1c190IHN0YXR1cyA9IHBzYV9rZXlfZGVyaXZhdGlvbl9zZXRfbWF4aW11bV9jYXBhY2l0eShvcGVyYXRpb24sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZGZfYWxnKTsKKyAgICByZXR1cm4gc3RhdHVzOworfQorCitzdGF0aWMgcHNhX3N0YXR1c190IHBzYV9rZXlfYWdyZWVtZW50X3RyeV9zdXBwb3J0KHBzYV9hbGdvcml0aG1fdCBhbGcpCit7CisjaWYgZGVmaW5lZChQU0FfV0FOVF9BTEdfRUNESCkKKyAgICBpZiAoYWxnID09IFBTQV9BTEdfRUNESCkgeworICAgICAgICByZXR1cm4gUFNBX1NVQ0NFU1M7CisgICAgfQorI2VuZGlmCisjaWYgZGVmaW5lZChQU0FfV0FOVF9BTEdfRkZESCkKKyAgICBpZiAoYWxnID09IFBTQV9BTEdfRkZESCkgeworICAgICAgICByZXR1cm4gUFNBX1NVQ0NFU1M7CisgICAgfQorI2VuZGlmCisgICAgKHZvaWQpIGFsZzsKKyAgICByZXR1cm4gUFNBX0VSUk9SX05PVF9TVVBQT1JURUQ7Cit9CisKK3N0YXRpYyBpbnQgcHNhX2tleV9kZXJpdmF0aW9uX2FsbG93c19mcmVlX2Zvcm1fc2VjcmV0X2lucHV0KAorICAgIHBzYV9hbGdvcml0aG1fdCBrZGZfYWxnKQoreworI2lmIGRlZmluZWQoUFNBX1dBTlRfQUxHX1RMUzEyX0VDSlBBS0VfVE9fUE1TKQorICAgIGlmIChrZGZfYWxnID09IFBTQV9BTEdfVExTMTJfRUNKUEFLRV9UT19QTVMpIHsKKyAgICAgICAgcmV0dXJuIDA7CisgICAgfQorI2VuZGlmCisgICAgKHZvaWQpIGtkZl9hbGc7CisgICAgcmV0dXJuIDE7Cit9CisjZW5kaWYgLyogQVRfTEVBU1RfT05FX0JVSUxUSU5fS0RGICovCisKK3BzYV9zdGF0dXNfdCBwc2Ffa2V5X2Rlcml2YXRpb25fc2V0dXAocHNhX2tleV9kZXJpdmF0aW9uX29wZXJhdGlvbl90ICpvcGVyYXRpb24sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBzYV9hbGdvcml0aG1fdCBhbGcpCit7CisgICAgcHNhX3N0YXR1c190IHN0YXR1czsKKworICAgIGlmIChvcGVyYXRpb24tPmFsZyAhPSAwKSB7CisgICAgICAgIHJldHVybiBQU0FfRVJST1JfQkFEX1NUQVRFOworICAgIH0KKworICAgIGlmIChQU0FfQUxHX0lTX1JBV19LRVlfQUdSRUVNRU5UKGFsZykpIHsKKyAgICAgICAgcmV0dXJuIFBTQV9FUlJPUl9JTlZBTElEX0FSR1VNRU5UOworICAgIH0gZWxzZSBpZiAoUFNBX0FMR19JU19LRVlfQUdSRUVNRU5UKGFsZykpIHsKKyNpZiBkZWZpbmVkKEFUX0xFQVNUX09ORV9CVUlMVElOX0tERikKKyAgICAgICAgcHNhX2FsZ29yaXRobV90IGtkZl9hbGcgPSBQU0FfQUxHX0tFWV9BR1JFRU1FTlRfR0VUX0tERihhbGcpOworICAgICAgICBwc2FfYWxnb3JpdGhtX3Qga2FfYWxnID0gUFNBX0FMR19LRVlfQUdSRUVNRU5UX0dFVF9CQVNFKGFsZyk7CisgICAgICAgIHN0YXR1cyA9IHBzYV9rZXlfYWdyZWVtZW50X3RyeV9zdXBwb3J0KGthX2FsZyk7CisgICAgICAgIGlmIChzdGF0dXMgIT0gUFNBX1NVQ0NFU1MpIHsKKyAgICAgICAgICAgIHJldHVybiBzdGF0dXM7CisgICAgICAgIH0KKyAgICAgICAgaWYgKCFwc2Ffa2V5X2Rlcml2YXRpb25fYWxsb3dzX2ZyZWVfZm9ybV9zZWNyZXRfaW5wdXQoa2RmX2FsZykpIHsKKyAgICAgICAgICAgIHJldHVybiBQU0FfRVJST1JfSU5WQUxJRF9BUkdVTUVOVDsKKyAgICAgICAgfQorICAgICAgICBzdGF0dXMgPSBwc2Ffa2V5X2Rlcml2YXRpb25fc2V0dXBfa2RmKG9wZXJhdGlvbiwga2RmX2FsZyk7CisjZWxzZQorICAgICAgICByZXR1cm4gUFNBX0VSUk9SX05PVF9TVVBQT1JURUQ7CisjZW5kaWYgLyogQVRfTEVBU1RfT05FX0JVSUxUSU5fS0RGICovCisgICAgfSBlbHNlIGlmIChQU0FfQUxHX0lTX0tFWV9ERVJJVkFUSU9OKGFsZykpIHsKKyNpZiBkZWZpbmVkKEFUX0xFQVNUX09ORV9CVUlMVElOX0tERikKKyAgICAgICAgc3RhdHVzID0gcHNhX2tleV9kZXJpdmF0aW9uX3NldHVwX2tkZihvcGVyYXRpb24sIGFsZyk7CisjZWxzZQorICAgICAgICByZXR1cm4gUFNBX0VSUk9SX05PVF9TVVBQT1JURUQ7CisjZW5kaWYgLyogQVRfTEVBU1RfT05FX0JVSUxUSU5fS0RGICovCisgICAgfSBlbHNlIHsKKyAgICAgICAgcmV0dXJuIFBTQV9FUlJPUl9JTlZBTElEX0FSR1VNRU5UOworICAgIH0KKworICAgIGlmIChzdGF0dXMgPT0gUFNBX1NVQ0NFU1MpIHsKKyAgICAgICAgb3BlcmF0aW9uLT5hbGcgPSBhbGc7CisgICAgfQorICAgIHJldHVybiBzdGF0dXM7Cit9CisKKyNpZiBkZWZpbmVkKEJVSUxUSU5fQUxHX0FOWV9IS0RGKQorc3RhdGljIHBzYV9zdGF0dXNfdCBwc2FfaGtkZl9pbnB1dChwc2FfaGtkZl9rZXlfZGVyaXZhdGlvbl90ICpoa2RmLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwc2FfYWxnb3JpdGhtX3Qga2RmX2FsZywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHNhX2tleV9kZXJpdmF0aW9uX3N0ZXBfdCBzdGVwLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1aW50OF90ICpkYXRhLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgZGF0YV9sZW5ndGgpCit7CisgICAgcHNhX2FsZ29yaXRobV90IGhhc2hfYWxnID0gUFNBX0FMR19IS0RGX0dFVF9IQVNIKGtkZl9hbGcpOworICAgIHBzYV9zdGF0dXNfdCBzdGF0dXM7CisgICAgc3dpdGNoIChzdGVwKSB7CisgICAgICAgIGNhc2UgUFNBX0tFWV9ERVJJVkFUSU9OX0lOUFVUX1NBTFQ6CisjaWYgZGVmaW5lZChNQkVEVExTX1BTQV9CVUlMVElOX0FMR19IS0RGX0VYUEFORCkKKyAgICAgICAgICAgIGlmIChQU0FfQUxHX0lTX0hLREZfRVhQQU5EKGtkZl9hbGcpKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIFBTQV9FUlJPUl9JTlZBTElEX0FSR1VNRU5UOworICAgICAgICAgICAgfQorI2VuZGlmIC8qIE1CRURUTFNfUFNBX0JVSUxUSU5fQUxHX0hLREZfRVhQQU5EICovCisgICAgICAgICAgICBpZiAoaGtkZi0+c3RhdGUgIT0gSEtERl9TVEFURV9JTklUKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIFBTQV9FUlJPUl9CQURfU1RBVEU7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIHN0YXR1cyA9IHBzYV9rZXlfZGVyaXZhdGlvbl9zdGFydF9obWFjKCZoa2RmLT5obWFjLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhc2hfYWxnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEsIGRhdGFfbGVuZ3RoKTsKKyAgICAgICAgICAgICAgICBpZiAoc3RhdHVzICE9IFBTQV9TVUNDRVNTKSB7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBzdGF0dXM7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGhrZGYtPnN0YXRlID0gSEtERl9TVEFURV9TVEFSVEVEOworICAgICAgICAgICAgICAgIHJldHVybiBQU0FfU1VDQ0VTUzsKKyAgICAgICAgICAgIH0KKyAgICAgICAgY2FzZSBQU0FfS0VZX0RFUklWQVRJT05fSU5QVVRfU0VDUkVUOgorI2lmIGRlZmluZWQoTUJFRFRMU19QU0FfQlVJTFRJTl9BTEdfSEtERl9FWFBBTkQpCisgICAgICAgICAgICBpZiAoUFNBX0FMR19JU19IS0RGX0VYUEFORChrZGZfYWxnKSkgeworICAgICAgICAgICAgICAgIC8qIFdlIHNob3VsZG4ndCBiZSBpbiBkaWZmZXJlbnQgc3RhdGUgYXMgSEtERl9FWFBBTkQgb25seSBhbGxvd3MKKyAgICAgICAgICAgICAgICAgKiB0d28gaW5wdXRzOiBTRUNSRVQgKHRoaXMgY2FzZSkgYW5kIElORk8gd2hpY2ggZG9lcyBub3QgbW9kaWZ5CisgICAgICAgICAgICAgICAgICogdGhlIHN0YXRlLiBJdCBjb3VsZCBoYXBwZW4gb25seSBpZiB0aGUgaGtkZgorICAgICAgICAgICAgICAgICAqIG9iamVjdCB3YXMgY29ycnVwdGVkLiAqLworICAgICAgICAgICAgICAgIGlmIChoa2RmLT5zdGF0ZSAhPSBIS0RGX1NUQVRFX0lOSVQpIHsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFBTQV9FUlJPUl9CQURfU1RBVEU7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgLyogQWxsb3cgb25seSBpbnB1dCB0aGF0IGZpdHMgZXhwZWN0ZWQgcHJrIHNpemUgKi8KKyAgICAgICAgICAgICAgICBpZiAoZGF0YV9sZW5ndGggIT0gUFNBX0hBU0hfTEVOR1RIKGhhc2hfYWxnKSkgeworICAgICAgICAgICAgICAgICAgICByZXR1cm4gUFNBX0VSUk9SX0lOVkFMSURfQVJHVU1FTlQ7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgbWVtY3B5KGhrZGYtPnByaywgZGF0YSwgZGF0YV9sZW5ndGgpOworICAgICAgICAgICAgfSBlbHNlCisjZW5kaWYgLyogTUJFRFRMU19QU0FfQlVJTFRJTl9BTEdfSEtERl9FWFBBTkQgKi8KKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAvKiBIS0RGOiBJZiBubyBzYWx0IHdhcyBwcm92aWRlZCwgdXNlIGFuIGVtcHR5IHNhbHQuCisgICAgICAgICAgICAgICAgICogSEtERi1FWFRSQUNUOiBzYWx0IGlzIG1hbmRhdG9yeS4gKi8KKyAgICAgICAgICAgICAgICBpZiAoaGtkZi0+c3RhdGUgPT0gSEtERl9TVEFURV9JTklUKSB7CisjaWYgZGVmaW5lZChNQkVEVExTX1BTQV9CVUlMVElOX0FMR19IS0RGX0VYVFJBQ1QpCisgICAgICAgICAgICAgICAgICAgIGlmIChQU0FfQUxHX0lTX0hLREZfRVhUUkFDVChrZGZfYWxnKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFBTQV9FUlJPUl9CQURfU1RBVEU7CisgICAgICAgICAgICAgICAgICAgIH0KKyNlbmRpZiAvKiBNQkVEVExTX1BTQV9CVUlMVElOX0FMR19IS0RGX0VYVFJBQ1QgKi8KKyAgICAgICAgICAgICAgICAgICAgc3RhdHVzID0gcHNhX2tleV9kZXJpdmF0aW9uX3N0YXJ0X2htYWMoJmhrZGYtPmhtYWMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhc2hfYWxnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOVUxMLCAwKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHN0YXR1cyAhPSBQU0FfU1VDQ0VTUykgeworICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHN0YXR1czsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBoa2RmLT5zdGF0ZSA9IEhLREZfU1RBVEVfU1RBUlRFRDsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaWYgKGhrZGYtPnN0YXRlICE9IEhLREZfU1RBVEVfU1RBUlRFRCkgeworICAgICAgICAgICAgICAgICAgICByZXR1cm4gUFNBX0VSUk9SX0JBRF9TVEFURTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgc3RhdHVzID0gcHNhX21hY191cGRhdGUoJmhrZGYtPmhtYWMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YSwgZGF0YV9sZW5ndGgpOworICAgICAgICAgICAgICAgIGlmIChzdGF0dXMgIT0gUFNBX1NVQ0NFU1MpIHsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHN0YXR1czsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgc3RhdHVzID0gcHNhX21hY19zaWduX2ZpbmlzaCgmaGtkZi0+aG1hYywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhrZGYtPnByaywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVvZihoa2RmLT5wcmspLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJmRhdGFfbGVuZ3RoKTsKKyAgICAgICAgICAgICAgICBpZiAoc3RhdHVzICE9IFBTQV9TVUNDRVNTKSB7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBzdGF0dXM7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorCisgICAgICAgICAgICBoa2RmLT5zdGF0ZSA9IEhLREZfU1RBVEVfS0VZRUQ7CisgICAgICAgICAgICBoa2RmLT5ibG9ja19udW1iZXIgPSAwOworI2lmIGRlZmluZWQoTUJFRFRMU19QU0FfQlVJTFRJTl9BTEdfSEtERl9FWFRSQUNUKQorICAgICAgICAgICAgaWYgKFBTQV9BTEdfSVNfSEtERl9FWFRSQUNUKGtkZl9hbGcpKSB7CisgICAgICAgICAgICAgICAgLyogVGhlIG9ubHkgYmxvY2sgb2Ygb3V0cHV0IGlzIHRoZSBQUksuICovCisgICAgICAgICAgICAgICAgbWVtY3B5KGhrZGYtPm91dHB1dF9ibG9jaywgaGtkZi0+cHJrLCBQU0FfSEFTSF9MRU5HVEgoaGFzaF9hbGcpKTsKKyAgICAgICAgICAgICAgICBoa2RmLT5vZmZzZXRfaW5fYmxvY2sgPSAwOworICAgICAgICAgICAgfSBlbHNlCisjZW5kaWYgLyogTUJFRFRMU19QU0FfQlVJTFRJTl9BTEdfSEtERl9FWFRSQUNUICovCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgLyogQmxvY2sgMCBpcyBlbXB0eSwgYW5kIHRoZSBuZXh0IGJsb2NrIHdpbGwgYmUKKyAgICAgICAgICAgICAgICAgKiBnZW5lcmF0ZWQgYnkgcHNhX2tleV9kZXJpdmF0aW9uX2hrZGZfcmVhZCgpLiAqLworICAgICAgICAgICAgICAgIGhrZGYtPm9mZnNldF9pbl9ibG9jayA9IFBTQV9IQVNIX0xFTkdUSChoYXNoX2FsZyk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHJldHVybiBQU0FfU1VDQ0VTUzsKKyAgICAgICAgY2FzZSBQU0FfS0VZX0RFUklWQVRJT05fSU5QVVRfSU5GTzoKKyNpZiBkZWZpbmVkKE1CRURUTFNfUFNBX0JVSUxUSU5fQUxHX0hLREZfRVhUUkFDVCkKKyAgICAgICAgICAgIGlmIChQU0FfQUxHX0lTX0hLREZfRVhUUkFDVChrZGZfYWxnKSkgeworICAgICAgICAgICAgICAgIHJldHVybiBQU0FfRVJST1JfSU5WQUxJRF9BUkdVTUVOVDsKKyAgICAgICAgICAgIH0KKyNlbmRpZiAvKiBNQkVEVExTX1BTQV9CVUlMVElOX0FMR19IS0RGX0VYVFJBQ1QgKi8KKyNpZiBkZWZpbmVkKE1CRURUTFNfUFNBX0JVSUxUSU5fQUxHX0hLREZfRVhQQU5EKQorICAgICAgICAgICAgaWYgKFBTQV9BTEdfSVNfSEtERl9FWFBBTkQoa2RmX2FsZykgJiYKKyAgICAgICAgICAgICAgICBoa2RmLT5zdGF0ZSA9PSBIS0RGX1NUQVRFX0lOSVQpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gUFNBX0VSUk9SX0JBRF9TVEFURTsKKyAgICAgICAgICAgIH0KKyNlbmRpZiAvKiBNQkVEVExTX1BTQV9CVUlMVElOX0FMR19IS0RGX0VYVFJBQ1QgKi8KKyAgICAgICAgICAgIGlmIChoa2RmLT5zdGF0ZSA9PSBIS0RGX1NUQVRFX09VVFBVVCkgeworICAgICAgICAgICAgICAgIHJldHVybiBQU0FfRVJST1JfQkFEX1NUQVRFOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKGhrZGYtPmluZm9fc2V0KSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIFBTQV9FUlJPUl9CQURfU1RBVEU7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBoa2RmLT5pbmZvX2xlbmd0aCA9IGRhdGFfbGVuZ3RoOworICAgICAgICAgICAgaWYgKGRhdGFfbGVuZ3RoICE9IDApIHsKKyAgICAgICAgICAgICAgICBoa2RmLT5pbmZvID0gbWJlZHRsc19jYWxsb2MoMSwgZGF0YV9sZW5ndGgpOworICAgICAgICAgICAgICAgIGlmIChoa2RmLT5pbmZvID09IE5VTEwpIHsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFBTQV9FUlJPUl9JTlNVRkZJQ0lFTlRfTUVNT1JZOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBtZW1jcHkoaGtkZi0+aW5mbywgZGF0YSwgZGF0YV9sZW5ndGgpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaGtkZi0+aW5mb19zZXQgPSAxOworICAgICAgICAgICAgcmV0dXJuIFBTQV9TVUNDRVNTOworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgcmV0dXJuIFBTQV9FUlJPUl9JTlZBTElEX0FSR1VNRU5UOworICAgIH0KK30KKyNlbmRpZiAvKiBCVUlMVElOX0FMR19BTllfSEtERiAqLworCisjaWYgZGVmaW5lZChNQkVEVExTX1BTQV9CVUlMVElOX0FMR19UTFMxMl9QUkYpIHx8IFwKKyAgICBkZWZpbmVkKE1CRURUTFNfUFNBX0JVSUxUSU5fQUxHX1RMUzEyX1BTS19UT19NUykKK3N0YXRpYyBwc2Ffc3RhdHVzX3QgcHNhX3RsczEyX3ByZl9zZXRfc2VlZChwc2FfdGxzMTJfcHJmX2tleV9kZXJpdmF0aW9uX3QgKnByZiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1aW50OF90ICpkYXRhLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBkYXRhX2xlbmd0aCkKK3sKKyAgICBpZiAocHJmLT5zdGF0ZSAhPSBQU0FfVExTMTJfUFJGX1NUQVRFX0lOSVQpIHsKKyAgICAgICAgcmV0dXJuIFBTQV9FUlJPUl9CQURfU1RBVEU7CisgICAgfQorCisgICAgaWYgKGRhdGFfbGVuZ3RoICE9IDApIHsKKyAgICAgICAgcHJmLT5zZWVkID0gbWJlZHRsc19jYWxsb2MoMSwgZGF0YV9sZW5ndGgpOworICAgICAgICBpZiAocHJmLT5zZWVkID09IE5VTEwpIHsKKyAgICAgICAgICAgIHJldHVybiBQU0FfRVJST1JfSU5TVUZGSUNJRU5UX01FTU9SWTsKKyAgICAgICAgfQorCisgICAgICAgIG1lbWNweShwcmYtPnNlZWQsIGRhdGEsIGRhdGFfbGVuZ3RoKTsKKyAgICAgICAgcHJmLT5zZWVkX2xlbmd0aCA9IGRhdGFfbGVuZ3RoOworICAgIH0KKworICAgIHByZi0+c3RhdGUgPSBQU0FfVExTMTJfUFJGX1NUQVRFX1NFRURfU0VUOworCisgICAgcmV0dXJuIFBTQV9TVUNDRVNTOworfQorCitzdGF0aWMgcHNhX3N0YXR1c190IHBzYV90bHMxMl9wcmZfc2V0X2tleShwc2FfdGxzMTJfcHJmX2tleV9kZXJpdmF0aW9uX3QgKnByZiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVpbnQ4X3QgKmRhdGEsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgZGF0YV9sZW5ndGgpCit7CisgICAgaWYgKHByZi0+c3RhdGUgIT0gUFNBX1RMUzEyX1BSRl9TVEFURV9TRUVEX1NFVCAmJgorICAgICAgICBwcmYtPnN0YXRlICE9IFBTQV9UTFMxMl9QUkZfU1RBVEVfT1RIRVJfS0VZX1NFVCkgeworICAgICAgICByZXR1cm4gUFNBX0VSUk9SX0JBRF9TVEFURTsKKyAgICB9CisKKyAgICBpZiAoZGF0YV9sZW5ndGggIT0gMCkgeworICAgICAgICBwcmYtPnNlY3JldCA9IG1iZWR0bHNfY2FsbG9jKDEsIGRhdGFfbGVuZ3RoKTsKKyAgICAgICAgaWYgKHByZi0+c2VjcmV0ID09IE5VTEwpIHsKKyAgICAgICAgICAgIHJldHVybiBQU0FfRVJST1JfSU5TVUZGSUNJRU5UX01FTU9SWTsKKyAgICAgICAgfQorCisgICAgICAgIG1lbWNweShwcmYtPnNlY3JldCwgZGF0YSwgZGF0YV9sZW5ndGgpOworICAgICAgICBwcmYtPnNlY3JldF9sZW5ndGggPSBkYXRhX2xlbmd0aDsKKyAgICB9CisKKyAgICBwcmYtPnN0YXRlID0gUFNBX1RMUzEyX1BSRl9TVEFURV9LRVlfU0VUOworCisgICAgcmV0dXJuIFBTQV9TVUNDRVNTOworfQorCitzdGF0aWMgcHNhX3N0YXR1c190IHBzYV90bHMxMl9wcmZfc2V0X2xhYmVsKHBzYV90bHMxMl9wcmZfa2V5X2Rlcml2YXRpb25fdCAqcHJmLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1aW50OF90ICpkYXRhLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgZGF0YV9sZW5ndGgpCit7CisgICAgaWYgKHByZi0+c3RhdGUgIT0gUFNBX1RMUzEyX1BSRl9TVEFURV9LRVlfU0VUKSB7CisgICAgICAgIHJldHVybiBQU0FfRVJST1JfQkFEX1NUQVRFOworICAgIH0KKworICAgIGlmIChkYXRhX2xlbmd0aCAhPSAwKSB7CisgICAgICAgIHByZi0+bGFiZWwgPSBtYmVkdGxzX2NhbGxvYygxLCBkYXRhX2xlbmd0aCk7CisgICAgICAgIGlmIChwcmYtPmxhYmVsID09IE5VTEwpIHsKKyAgICAgICAgICAgIHJldHVybiBQU0FfRVJST1JfSU5TVUZGSUNJRU5UX01FTU9SWTsKKyAgICAgICAgfQorCisgICAgICAgIG1lbWNweShwcmYtPmxhYmVsLCBkYXRhLCBkYXRhX2xlbmd0aCk7CisgICAgICAgIHByZi0+bGFiZWxfbGVuZ3RoID0gZGF0YV9sZW5ndGg7CisgICAgfQorCisgICAgcHJmLT5zdGF0ZSA9IFBTQV9UTFMxMl9QUkZfU1RBVEVfTEFCRUxfU0VUOworCisgICAgcmV0dXJuIFBTQV9TVUNDRVNTOworfQorCitzdGF0aWMgcHNhX3N0YXR1c190IHBzYV90bHMxMl9wcmZfaW5wdXQocHNhX3RsczEyX3ByZl9rZXlfZGVyaXZhdGlvbl90ICpwcmYsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHNhX2tleV9kZXJpdmF0aW9uX3N0ZXBfdCBzdGVwLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVpbnQ4X3QgKmRhdGEsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IGRhdGFfbGVuZ3RoKQoreworICAgIHN3aXRjaCAoc3RlcCkgeworICAgICAgICBjYXNlIFBTQV9LRVlfREVSSVZBVElPTl9JTlBVVF9TRUVEOgorICAgICAgICAgICAgcmV0dXJuIHBzYV90bHMxMl9wcmZfc2V0X3NlZWQocHJmLCBkYXRhLCBkYXRhX2xlbmd0aCk7CisgICAgICAgIGNhc2UgUFNBX0tFWV9ERVJJVkFUSU9OX0lOUFVUX1NFQ1JFVDoKKyAgICAgICAgICAgIHJldHVybiBwc2FfdGxzMTJfcHJmX3NldF9rZXkocHJmLCBkYXRhLCBkYXRhX2xlbmd0aCk7CisgICAgICAgIGNhc2UgUFNBX0tFWV9ERVJJVkFUSU9OX0lOUFVUX0xBQkVMOgorICAgICAgICAgICAgcmV0dXJuIHBzYV90bHMxMl9wcmZfc2V0X2xhYmVsKHByZiwgZGF0YSwgZGF0YV9sZW5ndGgpOworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgcmV0dXJuIFBTQV9FUlJPUl9JTlZBTElEX0FSR1VNRU5UOworICAgIH0KK30KKyNlbmRpZiAvKiBNQkVEVExTX1BTQV9CVUlMVElOX0FMR19UTFMxMl9QUkYpIHx8CisgICAgICAgICogTUJFRFRMU19QU0FfQlVJTFRJTl9BTEdfVExTMTJfUFNLX1RPX01TICovCisKKyNpZiBkZWZpbmVkKE1CRURUTFNfUFNBX0JVSUxUSU5fQUxHX1RMUzEyX1BTS19UT19NUykKK3N0YXRpYyBwc2Ffc3RhdHVzX3QgcHNhX3RsczEyX3ByZl9wc2tfdG9fbXNfc2V0X2tleSgKKyAgICBwc2FfdGxzMTJfcHJmX2tleV9kZXJpdmF0aW9uX3QgKnByZiwKKyAgICBjb25zdCB1aW50OF90ICpkYXRhLAorICAgIHNpemVfdCBkYXRhX2xlbmd0aCkKK3sKKyAgICBwc2Ffc3RhdHVzX3Qgc3RhdHVzOworICAgIGNvbnN0IHNpemVfdCBwbXNfbGVuID0gKHByZi0+c3RhdGUgPT0gUFNBX1RMUzEyX1BSRl9TVEFURV9PVEhFUl9LRVlfU0VUID8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICA0ICsgZGF0YV9sZW5ndGggKyBwcmYtPm90aGVyX3NlY3JldF9sZW5ndGggOgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIDQgKyAyICogZGF0YV9sZW5ndGgpOworCisgICAgaWYgKGRhdGFfbGVuZ3RoID4gUFNBX1RMUzEyX1BTS19UT19NU19QU0tfTUFYX1NJWkUpIHsKKyAgICAgICAgcmV0dXJuIFBTQV9FUlJPUl9JTlZBTElEX0FSR1VNRU5UOworICAgIH0KKworICAgIHVpbnQ4X3QgKnBtcyA9IG1iZWR0bHNfY2FsbG9jKDEsIHBtc19sZW4pOworICAgIGlmIChwbXMgPT0gTlVMTCkgeworICAgICAgICByZXR1cm4gUFNBX0VSUk9SX0lOU1VGRklDSUVOVF9NRU1PUlk7CisgICAgfQorICAgIHVpbnQ4X3QgKmN1ciA9IHBtczsKKworICAgIC8qIHB1cmUtUFNLOgorICAgICAqIFF1b3RpbmcgUkZDIDQyNzksIFNlY3Rpb24gMjoKKyAgICAgKgorICAgICAqIFRoZSBwcmVtYXN0ZXIgc2VjcmV0IGlzIGZvcm1lZCBhcyBmb2xsb3dzOiBpZiB0aGUgUFNLIGlzIE4gb2N0ZXRzCisgICAgICogbG9uZywgY29uY2F0ZW5hdGUgYSB1aW50MTYgd2l0aCB0aGUgdmFsdWUgTiwgTiB6ZXJvIG9jdGV0cywgYSBzZWNvbmQKKyAgICAgKiB1aW50MTYgd2l0aCB0aGUgdmFsdWUgTiwgYW5kIHRoZSBQU0sgaXRzZWxmLgorICAgICAqCisgICAgICogbWl4ZWQtUFNLOgorICAgICAqIEluIGEgREhFLVBTSywgUlNBLVBTSywgRUNESEUtUFNLIHRoZSBwcmVtYXN0ZXIgc2VjcmV0IGlzIGZvcm1lZCBhcworICAgICAqIGZvbGxvd3M6IGNvbmNhdGVuYXRlIGEgdWludDE2IHdpdGggdGhlIGxlbmd0aCBvZiB0aGUgb3RoZXIgc2VjcmV0LAorICAgICAqIHRoZSBvdGhlciBzZWNyZXQgaXRzZWxmLCB1aW50MTYgd2l0aCB0aGUgbGVuZ3RoIG9mIFBTSywgYW5kIHRoZQorICAgICAqIFBTSyBpdHNlbGYuCisgICAgICogRm9yIGRldGFpbHMgcGxlYXNlIGNoZWNrOgorICAgICAqIC0gUkZDIDQyNzksIFNlY3Rpb24gNCBmb3IgdGhlIGRlZmluaXRpb24gb2YgUlNBLVBTSywKKyAgICAgKiAtIFJGQyA0Mjc5LCBTZWN0aW9uIDMgZm9yIHRoZSBkZWZpbml0aW9uIG9mIERIRS1QU0ssCisgICAgICogLSBSRkMgNTQ4OSBmb3IgdGhlIGRlZmluaXRpb24gb2YgRUNESEUtUFNLLgorICAgICAqLworCisgICAgaWYgKHByZi0+c3RhdGUgPT0gUFNBX1RMUzEyX1BSRl9TVEFURV9PVEhFUl9LRVlfU0VUKSB7CisgICAgICAgICpjdXIrKyA9IE1CRURUTFNfQllURV8xKHByZi0+b3RoZXJfc2VjcmV0X2xlbmd0aCk7CisgICAgICAgICpjdXIrKyA9IE1CRURUTFNfQllURV8wKHByZi0+b3RoZXJfc2VjcmV0X2xlbmd0aCk7CisgICAgICAgIGlmIChwcmYtPm90aGVyX3NlY3JldF9sZW5ndGggIT0gMCkgeworICAgICAgICAgICAgbWVtY3B5KGN1ciwgcHJmLT5vdGhlcl9zZWNyZXQsIHByZi0+b3RoZXJfc2VjcmV0X2xlbmd0aCk7CisgICAgICAgICAgICBtYmVkdGxzX3BsYXRmb3JtX3plcm9pemUocHJmLT5vdGhlcl9zZWNyZXQsIHByZi0+b3RoZXJfc2VjcmV0X2xlbmd0aCk7CisgICAgICAgICAgICBjdXIgKz0gcHJmLT5vdGhlcl9zZWNyZXRfbGVuZ3RoOworICAgICAgICB9CisgICAgfSBlbHNlIHsKKyAgICAgICAgKmN1cisrID0gTUJFRFRMU19CWVRFXzEoZGF0YV9sZW5ndGgpOworICAgICAgICAqY3VyKysgPSBNQkVEVExTX0JZVEVfMChkYXRhX2xlbmd0aCk7CisgICAgICAgIG1lbXNldChjdXIsIDAsIGRhdGFfbGVuZ3RoKTsKKyAgICAgICAgY3VyICs9IGRhdGFfbGVuZ3RoOworICAgIH0KKworICAgICpjdXIrKyA9IE1CRURUTFNfQllURV8xKGRhdGFfbGVuZ3RoKTsKKyAgICAqY3VyKysgPSBNQkVEVExTX0JZVEVfMChkYXRhX2xlbmd0aCk7CisgICAgbWVtY3B5KGN1ciwgZGF0YSwgZGF0YV9sZW5ndGgpOworICAgIGN1ciArPSBkYXRhX2xlbmd0aDsKKworICAgIHN0YXR1cyA9IHBzYV90bHMxMl9wcmZfc2V0X2tleShwcmYsIHBtcywgKHNpemVfdCkgKGN1ciAtIHBtcykpOworCisgICAgbWJlZHRsc196ZXJvaXplX2FuZF9mcmVlKHBtcywgcG1zX2xlbik7CisgICAgcmV0dXJuIHN0YXR1czsKK30KKworc3RhdGljIHBzYV9zdGF0dXNfdCBwc2FfdGxzMTJfcHJmX3Bza190b19tc19zZXRfb3RoZXJfa2V5KAorICAgIHBzYV90bHMxMl9wcmZfa2V5X2Rlcml2YXRpb25fdCAqcHJmLAorICAgIGNvbnN0IHVpbnQ4X3QgKmRhdGEsCisgICAgc2l6ZV90IGRhdGFfbGVuZ3RoKQoreworICAgIGlmIChwcmYtPnN0YXRlICE9IFBTQV9UTFMxMl9QUkZfU1RBVEVfU0VFRF9TRVQpIHsKKyAgICAgICAgcmV0dXJuIFBTQV9FUlJPUl9CQURfU1RBVEU7CisgICAgfQorCisgICAgaWYgKGRhdGFfbGVuZ3RoICE9IDApIHsKKyAgICAgICAgcHJmLT5vdGhlcl9zZWNyZXQgPSBtYmVkdGxzX2NhbGxvYygxLCBkYXRhX2xlbmd0aCk7CisgICAgICAgIGlmIChwcmYtPm90aGVyX3NlY3JldCA9PSBOVUxMKSB7CisgICAgICAgICAgICByZXR1cm4gUFNBX0VSUk9SX0lOU1VGRklDSUVOVF9NRU1PUlk7CisgICAgICAgIH0KKworICAgICAgICBtZW1jcHkocHJmLT5vdGhlcl9zZWNyZXQsIGRhdGEsIGRhdGFfbGVuZ3RoKTsKKyAgICAgICAgcHJmLT5vdGhlcl9zZWNyZXRfbGVuZ3RoID0gZGF0YV9sZW5ndGg7CisgICAgfSBlbHNlIHsKKyAgICAgICAgcHJmLT5vdGhlcl9zZWNyZXRfbGVuZ3RoID0gMDsKKyAgICB9CisKKyAgICBwcmYtPnN0YXRlID0gUFNBX1RMUzEyX1BSRl9TVEFURV9PVEhFUl9LRVlfU0VUOworCisgICAgcmV0dXJuIFBTQV9TVUNDRVNTOworfQorCitzdGF0aWMgcHNhX3N0YXR1c190IHBzYV90bHMxMl9wcmZfcHNrX3RvX21zX2lucHV0KAorICAgIHBzYV90bHMxMl9wcmZfa2V5X2Rlcml2YXRpb25fdCAqcHJmLAorICAgIHBzYV9rZXlfZGVyaXZhdGlvbl9zdGVwX3Qgc3RlcCwKKyAgICBjb25zdCB1aW50OF90ICpkYXRhLAorICAgIHNpemVfdCBkYXRhX2xlbmd0aCkKK3sKKyAgICBzd2l0Y2ggKHN0ZXApIHsKKyAgICAgICAgY2FzZSBQU0FfS0VZX0RFUklWQVRJT05fSU5QVVRfU0VDUkVUOgorICAgICAgICAgICAgcmV0dXJuIHBzYV90bHMxMl9wcmZfcHNrX3RvX21zX3NldF9rZXkocHJmLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YSwgZGF0YV9sZW5ndGgpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgUFNBX0tFWV9ERVJJVkFUSU9OX0lOUFVUX09USEVSX1NFQ1JFVDoKKyAgICAgICAgICAgIHJldHVybiBwc2FfdGxzMTJfcHJmX3Bza190b19tc19zZXRfb3RoZXJfa2V5KHByZiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhX2xlbmd0aCk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIHJldHVybiBwc2FfdGxzMTJfcHJmX2lucHV0KHByZiwgc3RlcCwgZGF0YSwgZGF0YV9sZW5ndGgpOworICAgICAgICAgICAgYnJlYWs7CisKKyAgICB9Cit9CisjZW5kaWYgLyogTUJFRFRMU19QU0FfQlVJTFRJTl9BTEdfVExTMTJfUFNLX1RPX01TICovCisKKyNpZiBkZWZpbmVkKE1CRURUTFNfUFNBX0JVSUxUSU5fQUxHX1RMUzEyX0VDSlBBS0VfVE9fUE1TKQorc3RhdGljIHBzYV9zdGF0dXNfdCBwc2FfdGxzMTJfZWNqcGFrZV90b19wbXNfaW5wdXQoCisgICAgcHNhX3RsczEyX2VjanBha2VfdG9fcG1zX3QgKmVjanBha2UsCisgICAgcHNhX2tleV9kZXJpdmF0aW9uX3N0ZXBfdCBzdGVwLAorICAgIGNvbnN0IHVpbnQ4X3QgKmRhdGEsCisgICAgc2l6ZV90IGRhdGFfbGVuZ3RoKQoreworICAgIGlmIChkYXRhX2xlbmd0aCAhPSBQU0FfVExTMTJfRUNKUEFLRV9UT19QTVNfSU5QVVRfU0laRSB8fAorICAgICAgICBzdGVwICE9IFBTQV9LRVlfREVSSVZBVElPTl9JTlBVVF9TRUNSRVQpIHsKKyAgICAgICAgcmV0dXJuIFBTQV9FUlJPUl9JTlZBTElEX0FSR1VNRU5UOworICAgIH0KKworICAgIC8qIENoZWNrIGlmIHRoZSBwYXNzZWQgcG9pbnQgaXMgaW4gYW4gdW5jb21wcmVzc2VkIGZvcm0gKi8KKyAgICBpZiAoZGF0YVswXSAhPSAweDA0KSB7CisgICAgICAgIHJldHVybiBQU0FfRVJST1JfSU5WQUxJRF9BUkdVTUVOVDsKKyAgICB9CisKKyAgICAvKiBPbmx5IEsuWCBoYXMgdG8gYmUgZXh0cmFjdGVkIC0gYnl0ZXMgMSB0byAzMiBpbmNsdXNpdmUuICovCisgICAgbWVtY3B5KGVjanBha2UtPmRhdGEsIGRhdGEgKyAxLCBQU0FfVExTMTJfRUNKUEFLRV9UT19QTVNfREFUQV9TSVpFKTsKKworICAgIHJldHVybiBQU0FfU1VDQ0VTUzsKK30KKyNlbmRpZiAvKiBNQkVEVExTX1BTQV9CVUlMVElOX0FMR19UTFMxMl9FQ0pQQUtFX1RPX1BNUyAqLworCisjaWYgZGVmaW5lZChQU0FfSEFWRV9TT0ZUX1BCS0RGMikKK3N0YXRpYyBwc2Ffc3RhdHVzX3QgcHNhX3Bia2RmMl9zZXRfaW5wdXRfY29zdCgKKyAgICBwc2FfcGJrZGYyX2tleV9kZXJpdmF0aW9uX3QgKnBia2RmMiwKKyAgICBwc2Ffa2V5X2Rlcml2YXRpb25fc3RlcF90IHN0ZXAsCisgICAgdWludDY0X3QgZGF0YSkKK3sKKyAgICBpZiAoc3RlcCAhPSBQU0FfS0VZX0RFUklWQVRJT05fSU5QVVRfQ09TVCkgeworICAgICAgICByZXR1cm4gUFNBX0VSUk9SX0lOVkFMSURfQVJHVU1FTlQ7CisgICAgfQorCisgICAgaWYgKHBia2RmMi0+c3RhdGUgIT0gUFNBX1BCS0RGMl9TVEFURV9JTklUKSB7CisgICAgICAgIHJldHVybiBQU0FfRVJST1JfQkFEX1NUQVRFOworICAgIH0KKworICAgIGlmIChkYXRhID4gUFNBX1ZFTkRPUl9QQktERjJfTUFYX0lURVJBVElPTlMpIHsKKyAgICAgICAgcmV0dXJuIFBTQV9FUlJPUl9OT1RfU1VQUE9SVEVEOworICAgIH0KKworICAgIGlmIChkYXRhID09IDApIHsKKyAgICAgICAgcmV0dXJuIFBTQV9FUlJPUl9JTlZBTElEX0FSR1VNRU5UOworICAgIH0KKworICAgIHBia2RmMi0+aW5wdXRfY29zdCA9IGRhdGE7CisgICAgcGJrZGYyLT5zdGF0ZSA9IFBTQV9QQktERjJfU1RBVEVfSU5QVVRfQ09TVF9TRVQ7CisKKyAgICByZXR1cm4gUFNBX1NVQ0NFU1M7Cit9CisKK3N0YXRpYyBwc2Ffc3RhdHVzX3QgcHNhX3Bia2RmMl9zZXRfc2FsdChwc2FfcGJrZGYyX2tleV9kZXJpdmF0aW9uX3QgKnBia2RmMiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1aW50OF90ICpkYXRhLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBkYXRhX2xlbmd0aCkKK3sKKyAgICBpZiAocGJrZGYyLT5zdGF0ZSA9PSBQU0FfUEJLREYyX1NUQVRFX0lOUFVUX0NPU1RfU0VUKSB7CisgICAgICAgIHBia2RmMi0+c3RhdGUgPSBQU0FfUEJLREYyX1NUQVRFX1NBTFRfU0VUOworICAgIH0gZWxzZSBpZiAocGJrZGYyLT5zdGF0ZSA9PSBQU0FfUEJLREYyX1NUQVRFX1NBTFRfU0VUKSB7CisgICAgICAgIC8qIEFwcGVuZGluZyB0byBleGlzdGluZyBzYWx0LiBObyBzdGF0ZSBjaGFuZ2UuICovCisgICAgfSBlbHNlIHsKKyAgICAgICAgcmV0dXJuIFBTQV9FUlJPUl9CQURfU1RBVEU7CisgICAgfQorCisgICAgaWYgKGRhdGFfbGVuZ3RoID09IDApIHsKKyAgICAgICAgLyogQXBwZW5kaW5nIGFuIGVtcHR5IHN0cmluZywgbm90aGluZyB0byBkby4gKi8KKyAgICB9IGVsc2UgeworICAgICAgICB1aW50OF90ICpuZXh0X3NhbHQ7CisKKyAgICAgICAgbmV4dF9zYWx0ID0gbWJlZHRsc19jYWxsb2MoMSwgZGF0YV9sZW5ndGggKyBwYmtkZjItPnNhbHRfbGVuZ3RoKTsKKyAgICAgICAgaWYgKG5leHRfc2FsdCA9PSBOVUxMKSB7CisgICAgICAgICAgICByZXR1cm4gUFNBX0VSUk9SX0lOU1VGRklDSUVOVF9NRU1PUlk7CisgICAgICAgIH0KKworICAgICAgICBpZiAocGJrZGYyLT5zYWx0X2xlbmd0aCAhPSAwKSB7CisgICAgICAgICAgICBtZW1jcHkobmV4dF9zYWx0LCBwYmtkZjItPnNhbHQsIHBia2RmMi0+c2FsdF9sZW5ndGgpOworICAgICAgICB9CisgICAgICAgIG1lbWNweShuZXh0X3NhbHQgKyBwYmtkZjItPnNhbHRfbGVuZ3RoLCBkYXRhLCBkYXRhX2xlbmd0aCk7CisgICAgICAgIHBia2RmMi0+c2FsdF9sZW5ndGggKz0gZGF0YV9sZW5ndGg7CisgICAgICAgIG1iZWR0bHNfZnJlZShwYmtkZjItPnNhbHQpOworICAgICAgICBwYmtkZjItPnNhbHQgPSBuZXh0X3NhbHQ7CisgICAgfQorICAgIHJldHVybiBQU0FfU1VDQ0VTUzsKK30KKworI2lmIGRlZmluZWQoTUJFRFRMU19QU0FfQlVJTFRJTl9BTEdfUEJLREYyX0hNQUMpCitzdGF0aWMgcHNhX3N0YXR1c190IHBzYV9wYmtkZjJfaG1hY19zZXRfcGFzc3dvcmQocHNhX2FsZ29yaXRobV90IGhhc2hfYWxnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVpbnQ4X3QgKmlucHV0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBpbnB1dF9sZW4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDhfdCAqb3V0cHV0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCAqb3V0cHV0X2xlbikKK3sKKyAgICBwc2Ffc3RhdHVzX3Qgc3RhdHVzID0gUFNBX1NVQ0NFU1M7CisgICAgaWYgKGlucHV0X2xlbiA+IFBTQV9IQVNIX0JMT0NLX0xFTkdUSChoYXNoX2FsZykpIHsKKyAgICAgICAgcmV0dXJuIHBzYV9oYXNoX2NvbXB1dGUoaGFzaF9hbGcsIGlucHV0LCBpbnB1dF9sZW4sIG91dHB1dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUFNBX0hNQUNfTUFYX0hBU0hfQkxPQ0tfU0laRSwgb3V0cHV0X2xlbik7CisgICAgfSBlbHNlIGlmIChpbnB1dF9sZW4gPiAwKSB7CisgICAgICAgIG1lbWNweShvdXRwdXQsIGlucHV0LCBpbnB1dF9sZW4pOworICAgIH0KKyAgICAqb3V0cHV0X2xlbiA9IFBTQV9IQVNIX0JMT0NLX0xFTkdUSChoYXNoX2FsZyk7CisgICAgcmV0dXJuIHN0YXR1czsKK30KKyNlbmRpZiAvKiBNQkVEVExTX1BTQV9CVUlMVElOX0FMR19QQktERjJfSE1BQyAqLworCisjaWYgZGVmaW5lZChNQkVEVExTX1BTQV9CVUlMVElOX0FMR19QQktERjJfQUVTX0NNQUNfUFJGXzEyOCkKK3N0YXRpYyBwc2Ffc3RhdHVzX3QgcHNhX3Bia2RmMl9jbWFjX3NldF9wYXNzd29yZChjb25zdCB1aW50OF90ICppbnB1dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgaW5wdXRfbGVuLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQ4X3QgKm91dHB1dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgKm91dHB1dF9sZW4pCit7CisgICAgcHNhX3N0YXR1c190IHN0YXR1cyA9IFBTQV9TVUNDRVNTOworICAgIGlmIChpbnB1dF9sZW4gIT0gUFNBX01BQ19MRU5HVEgoUFNBX0tFWV9UWVBFX0FFUywgMTI4VSwgUFNBX0FMR19DTUFDKSkgeworICAgICAgICBwc2Ffa2V5X2F0dHJpYnV0ZXNfdCBhdHRyaWJ1dGVzID0gUFNBX0tFWV9BVFRSSUJVVEVTX0lOSVQ7CisgICAgICAgIHVpbnQ4X3QgemVyb3NbMTZdID0geyAwIH07CisgICAgICAgIHBzYV9zZXRfa2V5X3R5cGUoJmF0dHJpYnV0ZXMsIFBTQV9LRVlfVFlQRV9BRVMpOworICAgICAgICBwc2Ffc2V0X2tleV9iaXRzKCZhdHRyaWJ1dGVzLCBQU0FfQllURVNfVE9fQklUUyhzaXplb2YoemVyb3MpKSk7CisgICAgICAgIHBzYV9zZXRfa2V5X3VzYWdlX2ZsYWdzKCZhdHRyaWJ1dGVzLCBQU0FfS0VZX1VTQUdFX1NJR05fTUVTU0FHRSk7CisgICAgICAgIC8qIFBhc3NpbmcgUFNBX01BQ19MRU5HVEgoUFNBX0tFWV9UWVBFX0FFUywgMTI4VSwgUFNBX0FMR19DTUFDKSBhcworICAgICAgICAgKiBtYWNfc2l6ZSBhcyB0aGUgZHJpdmVyIGZ1bmN0aW9uIHNldHMgbWFjX291dHB1dF9sZW5ndGggPSBtYWNfc2l6ZQorICAgICAgICAgKiBvbiBzdWNjZXNzLiBTZWUgaHR0cHM6Ly9naXRodWIuY29tL01iZWQtVExTL21iZWR0bHMvaXNzdWVzLzc4MDEgKi8KKyAgICAgICAgc3RhdHVzID0gcHNhX2RyaXZlcl93cmFwcGVyX21hY19jb21wdXRlKCZhdHRyaWJ1dGVzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgemVyb3MsIHNpemVvZih6ZXJvcyksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQU0FfQUxHX0NNQUMsIGlucHV0LCBpbnB1dF9sZW4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvdXRwdXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQU0FfTUFDX0xFTkdUSChQU0FfS0VZX1RZUEVfQUVTLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMTI4VSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBTQV9BTEdfQ01BQyksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvdXRwdXRfbGVuKTsKKyAgICB9IGVsc2UgeworICAgICAgICBtZW1jcHkob3V0cHV0LCBpbnB1dCwgaW5wdXRfbGVuKTsKKyAgICAgICAgKm91dHB1dF9sZW4gPSBQU0FfTUFDX0xFTkdUSChQU0FfS0VZX1RZUEVfQUVTLCAxMjhVLCBQU0FfQUxHX0NNQUMpOworICAgIH0KKyAgICByZXR1cm4gc3RhdHVzOworfQorI2VuZGlmIC8qIE1CRURUTFNfUFNBX0JVSUxUSU5fQUxHX1BCS0RGMl9BRVNfQ01BQ19QUkZfMTI4ICovCisKK3N0YXRpYyBwc2Ffc3RhdHVzX3QgcHNhX3Bia2RmMl9zZXRfcGFzc3dvcmQocHNhX3Bia2RmMl9rZXlfZGVyaXZhdGlvbl90ICpwYmtkZjIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBzYV9hbGdvcml0aG1fdCBrZGZfYWxnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1aW50OF90ICpkYXRhLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgZGF0YV9sZW5ndGgpCit7CisgICAgcHNhX3N0YXR1c190IHN0YXR1cyA9IFBTQV9TVUNDRVNTOworICAgIGlmIChwYmtkZjItPnN0YXRlICE9IFBTQV9QQktERjJfU1RBVEVfU0FMVF9TRVQpIHsKKyAgICAgICAgcmV0dXJuIFBTQV9FUlJPUl9CQURfU1RBVEU7CisgICAgfQorCisjaWYgZGVmaW5lZChNQkVEVExTX1BTQV9CVUlMVElOX0FMR19QQktERjJfSE1BQykKKyAgICBpZiAoUFNBX0FMR19JU19QQktERjJfSE1BQyhrZGZfYWxnKSkgeworICAgICAgICBwc2FfYWxnb3JpdGhtX3QgaGFzaF9hbGcgPSBQU0FfQUxHX1BCS0RGMl9ITUFDX0dFVF9IQVNIKGtkZl9hbGcpOworICAgICAgICBzdGF0dXMgPSBwc2FfcGJrZGYyX2htYWNfc2V0X3Bhc3N3b3JkKGhhc2hfYWxnLCBkYXRhLCBkYXRhX2xlbmd0aCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYmtkZjItPnBhc3N3b3JkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZwYmtkZjItPnBhc3N3b3JkX2xlbmd0aCk7CisgICAgfSBlbHNlCisjZW5kaWYgLyogTUJFRFRMU19QU0FfQlVJTFRJTl9BTEdfUEJLREYyX0hNQUMgKi8KKyNpZiBkZWZpbmVkKE1CRURUTFNfUFNBX0JVSUxUSU5fQUxHX1BCS0RGMl9BRVNfQ01BQ19QUkZfMTI4KQorICAgIGlmIChrZGZfYWxnID09IFBTQV9BTEdfUEJLREYyX0FFU19DTUFDX1BSRl8xMjgpIHsKKyAgICAgICAgc3RhdHVzID0gcHNhX3Bia2RmMl9jbWFjX3NldF9wYXNzd29yZChkYXRhLCBkYXRhX2xlbmd0aCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYmtkZjItPnBhc3N3b3JkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZwYmtkZjItPnBhc3N3b3JkX2xlbmd0aCk7CisgICAgfSBlbHNlCisjZW5kaWYgLyogTUJFRFRMU19QU0FfQlVJTFRJTl9BTEdfUEJLREYyX0FFU19DTUFDX1BSRl8xMjggKi8KKyAgICB7CisgICAgICAgIHJldHVybiBQU0FfRVJST1JfSU5WQUxJRF9BUkdVTUVOVDsKKyAgICB9CisKKyAgICBwYmtkZjItPnN0YXRlID0gUFNBX1BCS0RGMl9TVEFURV9QQVNTV09SRF9TRVQ7CisKKyAgICByZXR1cm4gc3RhdHVzOworfQorCitzdGF0aWMgcHNhX3N0YXR1c190IHBzYV9wYmtkZjJfaW5wdXQocHNhX3Bia2RmMl9rZXlfZGVyaXZhdGlvbl90ICpwYmtkZjIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHNhX2FsZ29yaXRobV90IGtkZl9hbGcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHNhX2tleV9kZXJpdmF0aW9uX3N0ZXBfdCBzdGVwLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVpbnQ4X3QgKmRhdGEsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IGRhdGFfbGVuZ3RoKQoreworICAgIHN3aXRjaCAoc3RlcCkgeworICAgICAgICBjYXNlIFBTQV9LRVlfREVSSVZBVElPTl9JTlBVVF9TQUxUOgorICAgICAgICAgICAgcmV0dXJuIHBzYV9wYmtkZjJfc2V0X3NhbHQocGJrZGYyLCBkYXRhLCBkYXRhX2xlbmd0aCk7CisgICAgICAgIGNhc2UgUFNBX0tFWV9ERVJJVkFUSU9OX0lOUFVUX1BBU1NXT1JEOgorICAgICAgICAgICAgcmV0dXJuIHBzYV9wYmtkZjJfc2V0X3Bhc3N3b3JkKHBia2RmMiwga2RmX2FsZywgZGF0YSwgZGF0YV9sZW5ndGgpOworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgcmV0dXJuIFBTQV9FUlJPUl9JTlZBTElEX0FSR1VNRU5UOworICAgIH0KK30KKyNlbmRpZiAvKiBQU0FfSEFWRV9TT0ZUX1BCS0RGMiAqLworCisvKiogQ2hlY2sgd2hldGhlciB0aGUgZ2l2ZW4ga2V5IHR5cGUgaXMgYWNjZXB0YWJsZSBmb3IgdGhlIGdpdmVuCisgKiBpbnB1dCBzdGVwIG9mIGEga2V5IGRlcml2YXRpb24uCisgKgorICogU2VjcmV0IGlucHV0cyBtdXN0IGhhdmUgdGhlIHR5cGUgI1BTQV9LRVlfVFlQRV9ERVJJVkUuCisgKiBOb24tc2VjcmV0IGlucHV0cyBtdXN0IGhhdmUgdGhlIHR5cGUgI1BTQV9LRVlfVFlQRV9SQVdfREFUQS4KKyAqIEJvdGggc2VjcmV0IGFuZCBub24tc2VjcmV0IGlucHV0cyBjYW4gYWx0ZXJuYXRpdmVseSBoYXZlIHRoZSB0eXBlCisgKiAjUFNBX0tFWV9UWVBFX05PTkUsIHdoaWNoIGlzIG5ldmVyIHRoZSB0eXBlIG9mIGEga2V5IG9iamVjdCwgbWVhbmluZworICogdGhhdCB0aGUgaW5wdXQgd2FzIHBhc3NlZCBhcyBhIGJ1ZmZlciByYXRoZXIgdGhhbiB2aWEgYSBrZXkgb2JqZWN0LgorICovCitzdGF0aWMgaW50IHBzYV9rZXlfZGVyaXZhdGlvbl9jaGVja19pbnB1dF90eXBlKAorICAgIHBzYV9rZXlfZGVyaXZhdGlvbl9zdGVwX3Qgc3RlcCwKKyAgICBwc2Ffa2V5X3R5cGVfdCBrZXlfdHlwZSkKK3sKKyAgICBzd2l0Y2ggKHN0ZXApIHsKKyAgICAgICAgY2FzZSBQU0FfS0VZX0RFUklWQVRJT05fSU5QVVRfU0VDUkVUOgorICAgICAgICAgICAgaWYgKGtleV90eXBlID09IFBTQV9LRVlfVFlQRV9ERVJJVkUpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gUFNBX1NVQ0NFU1M7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoa2V5X3R5cGUgPT0gUFNBX0tFWV9UWVBFX05PTkUpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gUFNBX1NVQ0NFU1M7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBQU0FfS0VZX0RFUklWQVRJT05fSU5QVVRfT1RIRVJfU0VDUkVUOgorICAgICAgICAgICAgaWYgKGtleV90eXBlID09IFBTQV9LRVlfVFlQRV9ERVJJVkUpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gUFNBX1NVQ0NFU1M7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoa2V5X3R5cGUgPT0gUFNBX0tFWV9UWVBFX05PTkUpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gUFNBX1NVQ0NFU1M7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBQU0FfS0VZX0RFUklWQVRJT05fSU5QVVRfTEFCRUw6CisgICAgICAgIGNhc2UgUFNBX0tFWV9ERVJJVkFUSU9OX0lOUFVUX1NBTFQ6CisgICAgICAgIGNhc2UgUFNBX0tFWV9ERVJJVkFUSU9OX0lOUFVUX0lORk86CisgICAgICAgIGNhc2UgUFNBX0tFWV9ERVJJVkFUSU9OX0lOUFVUX1NFRUQ6CisgICAgICAgICAgICBpZiAoa2V5X3R5cGUgPT0gUFNBX0tFWV9UWVBFX1JBV19EQVRBKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIFBTQV9TVUNDRVNTOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKGtleV90eXBlID09IFBTQV9LRVlfVFlQRV9OT05FKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIFBTQV9TVUNDRVNTOworICAgICAgICAgICAgfQorICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgUFNBX0tFWV9ERVJJVkFUSU9OX0lOUFVUX1BBU1NXT1JEOgorICAgICAgICAgICAgaWYgKGtleV90eXBlID09IFBTQV9LRVlfVFlQRV9QQVNTV09SRCkgeworICAgICAgICAgICAgICAgIHJldHVybiBQU0FfU1VDQ0VTUzsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChrZXlfdHlwZSA9PSBQU0FfS0VZX1RZUEVfREVSSVZFKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIFBTQV9TVUNDRVNTOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKGtleV90eXBlID09IFBTQV9LRVlfVFlQRV9OT05FKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIFBTQV9TVUNDRVNTOworICAgICAgICAgICAgfQorICAgICAgICAgICAgYnJlYWs7CisgICAgfQorICAgIHJldHVybiBQU0FfRVJST1JfSU5WQUxJRF9BUkdVTUVOVDsKK30KKworc3RhdGljIHBzYV9zdGF0dXNfdCBwc2Ffa2V5X2Rlcml2YXRpb25faW5wdXRfaW50ZXJuYWwoCisgICAgcHNhX2tleV9kZXJpdmF0aW9uX29wZXJhdGlvbl90ICpvcGVyYXRpb24sCisgICAgcHNhX2tleV9kZXJpdmF0aW9uX3N0ZXBfdCBzdGVwLAorICAgIHBzYV9rZXlfdHlwZV90IGtleV90eXBlLAorICAgIGNvbnN0IHVpbnQ4X3QgKmRhdGEsCisgICAgc2l6ZV90IGRhdGFfbGVuZ3RoKQoreworICAgIHBzYV9zdGF0dXNfdCBzdGF0dXM7CisgICAgcHNhX2FsZ29yaXRobV90IGtkZl9hbGcgPSBwc2Ffa2V5X2Rlcml2YXRpb25fZ2V0X2tkZl9hbGcob3BlcmF0aW9uKTsKKworICAgIHN0YXR1cyA9IHBzYV9rZXlfZGVyaXZhdGlvbl9jaGVja19pbnB1dF90eXBlKHN0ZXAsIGtleV90eXBlKTsKKyAgICBpZiAoc3RhdHVzICE9IFBTQV9TVUNDRVNTKSB7CisgICAgICAgIGdvdG8gZXhpdDsKKyAgICB9CisKKyNpZiBkZWZpbmVkKEJVSUxUSU5fQUxHX0FOWV9IS0RGKQorICAgIGlmIChQU0FfQUxHX0lTX0FOWV9IS0RGKGtkZl9hbGcpKSB7CisgICAgICAgIHN0YXR1cyA9IHBzYV9oa2RmX2lucHV0KCZvcGVyYXRpb24tPmN0eC5oa2RmLCBrZGZfYWxnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGVwLCBkYXRhLCBkYXRhX2xlbmd0aCk7CisgICAgfSBlbHNlCisjZW5kaWYgLyogQlVJTFRJTl9BTEdfQU5ZX0hLREYgKi8KKyNpZiBkZWZpbmVkKE1CRURUTFNfUFNBX0JVSUxUSU5fQUxHX1RMUzEyX1BSRikKKyAgICBpZiAoUFNBX0FMR19JU19UTFMxMl9QUkYoa2RmX2FsZykpIHsKKyAgICAgICAgc3RhdHVzID0gcHNhX3RsczEyX3ByZl9pbnB1dCgmb3BlcmF0aW9uLT5jdHgudGxzMTJfcHJmLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0ZXAsIGRhdGEsIGRhdGFfbGVuZ3RoKTsKKyAgICB9IGVsc2UKKyNlbmRpZiAvKiBNQkVEVExTX1BTQV9CVUlMVElOX0FMR19UTFMxMl9QUkYgKi8KKyNpZiBkZWZpbmVkKE1CRURUTFNfUFNBX0JVSUxUSU5fQUxHX1RMUzEyX1BTS19UT19NUykKKyAgICBpZiAoUFNBX0FMR19JU19UTFMxMl9QU0tfVE9fTVMoa2RmX2FsZykpIHsKKyAgICAgICAgc3RhdHVzID0gcHNhX3RsczEyX3ByZl9wc2tfdG9fbXNfaW5wdXQoJm9wZXJhdGlvbi0+Y3R4LnRsczEyX3ByZiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RlcCwgZGF0YSwgZGF0YV9sZW5ndGgpOworICAgIH0gZWxzZQorI2VuZGlmIC8qIE1CRURUTFNfUFNBX0JVSUxUSU5fQUxHX1RMUzEyX1BTS19UT19NUyAqLworI2lmIGRlZmluZWQoTUJFRFRMU19QU0FfQlVJTFRJTl9BTEdfVExTMTJfRUNKUEFLRV9UT19QTVMpCisgICAgaWYgKGtkZl9hbGcgPT0gUFNBX0FMR19UTFMxMl9FQ0pQQUtFX1RPX1BNUykgeworICAgICAgICBzdGF0dXMgPSBwc2FfdGxzMTJfZWNqcGFrZV90b19wbXNfaW5wdXQoCisgICAgICAgICAgICAmb3BlcmF0aW9uLT5jdHgudGxzMTJfZWNqcGFrZV90b19wbXMsIHN0ZXAsIGRhdGEsIGRhdGFfbGVuZ3RoKTsKKyAgICB9IGVsc2UKKyNlbmRpZiAvKiBNQkVEVExTX1BTQV9CVUlMVElOX0FMR19UTFMxMl9FQ0pQQUtFX1RPX1BNUyAqLworI2lmIGRlZmluZWQoUFNBX0hBVkVfU09GVF9QQktERjIpCisgICAgaWYgKFBTQV9BTEdfSVNfUEJLREYyKGtkZl9hbGcpKSB7CisgICAgICAgIHN0YXR1cyA9IHBzYV9wYmtkZjJfaW5wdXQoJm9wZXJhdGlvbi0+Y3R4LnBia2RmMiwga2RmX2FsZywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGVwLCBkYXRhLCBkYXRhX2xlbmd0aCk7CisgICAgfSBlbHNlCisjZW5kaWYgLyogUFNBX0hBVkVfU09GVF9QQktERjIgKi8KKyAgICB7CisgICAgICAgIC8qIFRoaXMgY2FuJ3QgaGFwcGVuIHVubGVzcyB0aGUgb3BlcmF0aW9uIG9iamVjdCB3YXMgbm90IGluaXRpYWxpemVkICovCisgICAgICAgICh2b2lkKSBkYXRhOworICAgICAgICAodm9pZCkgZGF0YV9sZW5ndGg7CisgICAgICAgICh2b2lkKSBrZGZfYWxnOworICAgICAgICByZXR1cm4gUFNBX0VSUk9SX0JBRF9TVEFURTsKKyAgICB9CisKK2V4aXQ6CisgICAgaWYgKHN0YXR1cyAhPSBQU0FfU1VDQ0VTUykgeworICAgICAgICBwc2Ffa2V5X2Rlcml2YXRpb25fYWJvcnQob3BlcmF0aW9uKTsKKyAgICB9CisgICAgcmV0dXJuIHN0YXR1czsKK30KKworc3RhdGljIHBzYV9zdGF0dXNfdCBwc2Ffa2V5X2Rlcml2YXRpb25faW5wdXRfaW50ZWdlcl9pbnRlcm5hbCgKKyAgICBwc2Ffa2V5X2Rlcml2YXRpb25fb3BlcmF0aW9uX3QgKm9wZXJhdGlvbiwKKyAgICBwc2Ffa2V5X2Rlcml2YXRpb25fc3RlcF90IHN0ZXAsCisgICAgdWludDY0X3QgdmFsdWUpCit7CisgICAgcHNhX3N0YXR1c190IHN0YXR1czsKKyAgICBwc2FfYWxnb3JpdGhtX3Qga2RmX2FsZyA9IHBzYV9rZXlfZGVyaXZhdGlvbl9nZXRfa2RmX2FsZyhvcGVyYXRpb24pOworCisjaWYgZGVmaW5lZChQU0FfSEFWRV9TT0ZUX1BCS0RGMikKKyAgICBpZiAoUFNBX0FMR19JU19QQktERjIoa2RmX2FsZykpIHsKKyAgICAgICAgc3RhdHVzID0gcHNhX3Bia2RmMl9zZXRfaW5wdXRfY29zdCgKKyAgICAgICAgICAgICZvcGVyYXRpb24tPmN0eC5wYmtkZjIsIHN0ZXAsIHZhbHVlKTsKKyAgICB9IGVsc2UKKyNlbmRpZiAvKiBQU0FfSEFWRV9TT0ZUX1BCS0RGMiAqLworICAgIHsKKyAgICAgICAgKHZvaWQpIHN0ZXA7CisgICAgICAgICh2b2lkKSB2YWx1ZTsKKyAgICAgICAgKHZvaWQpIGtkZl9hbGc7CisgICAgICAgIHN0YXR1cyA9IFBTQV9FUlJPUl9JTlZBTElEX0FSR1VNRU5UOworICAgIH0KKworICAgIGlmIChzdGF0dXMgIT0gUFNBX1NVQ0NFU1MpIHsKKyAgICAgICAgcHNhX2tleV9kZXJpdmF0aW9uX2Fib3J0KG9wZXJhdGlvbik7CisgICAgfQorICAgIHJldHVybiBzdGF0dXM7Cit9CisKK3BzYV9zdGF0dXNfdCBwc2Ffa2V5X2Rlcml2YXRpb25faW5wdXRfYnl0ZXMoCisgICAgcHNhX2tleV9kZXJpdmF0aW9uX29wZXJhdGlvbl90ICpvcGVyYXRpb24sCisgICAgcHNhX2tleV9kZXJpdmF0aW9uX3N0ZXBfdCBzdGVwLAorICAgIGNvbnN0IHVpbnQ4X3QgKmRhdGFfZXh0ZXJuYWwsCisgICAgc2l6ZV90IGRhdGFfbGVuZ3RoKQoreworICAgIHBzYV9zdGF0dXNfdCBzdGF0dXMgPSBQU0FfRVJST1JfQ09SUlVQVElPTl9ERVRFQ1RFRDsKKyAgICBMT0NBTF9JTlBVVF9ERUNMQVJFKGRhdGFfZXh0ZXJuYWwsIGRhdGEpOworCisgICAgTE9DQUxfSU5QVVRfQUxMT0MoZGF0YV9leHRlcm5hbCwgZGF0YV9sZW5ndGgsIGRhdGEpOworCisgICAgc3RhdHVzID0gcHNhX2tleV9kZXJpdmF0aW9uX2lucHV0X2ludGVybmFsKG9wZXJhdGlvbiwgc3RlcCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUFNBX0tFWV9UWVBFX05PTkUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEsIGRhdGFfbGVuZ3RoKTsKKyNpZiAhZGVmaW5lZChNQkVEVExTX1BTQV9BU1NVTUVfRVhDTFVTSVZFX0JVRkZFUlMpCitleGl0OgorI2VuZGlmCisgICAgTE9DQUxfSU5QVVRfRlJFRShkYXRhX2V4dGVybmFsLCBkYXRhKTsKKyAgICByZXR1cm4gc3RhdHVzOworfQorCitwc2Ffc3RhdHVzX3QgcHNhX2tleV9kZXJpdmF0aW9uX2lucHV0X2ludGVnZXIoCisgICAgcHNhX2tleV9kZXJpdmF0aW9uX29wZXJhdGlvbl90ICpvcGVyYXRpb24sCisgICAgcHNhX2tleV9kZXJpdmF0aW9uX3N0ZXBfdCBzdGVwLAorICAgIHVpbnQ2NF90IHZhbHVlKQoreworICAgIHJldHVybiBwc2Ffa2V5X2Rlcml2YXRpb25faW5wdXRfaW50ZWdlcl9pbnRlcm5hbChvcGVyYXRpb24sIHN0ZXAsIHZhbHVlKTsKK30KKworcHNhX3N0YXR1c190IHBzYV9rZXlfZGVyaXZhdGlvbl9pbnB1dF9rZXkoCisgICAgcHNhX2tleV9kZXJpdmF0aW9uX29wZXJhdGlvbl90ICpvcGVyYXRpb24sCisgICAgcHNhX2tleV9kZXJpdmF0aW9uX3N0ZXBfdCBzdGVwLAorICAgIG1iZWR0bHNfc3ZjX2tleV9pZF90IGtleSkKK3sKKyAgICBwc2Ffc3RhdHVzX3Qgc3RhdHVzID0gUFNBX0VSUk9SX0NPUlJVUFRJT05fREVURUNURUQ7CisgICAgcHNhX3N0YXR1c190IHVubG9ja19zdGF0dXMgPSBQU0FfRVJST1JfQ09SUlVQVElPTl9ERVRFQ1RFRDsKKyAgICBwc2Ffa2V5X3Nsb3RfdCAqc2xvdDsKKworICAgIHN0YXR1cyA9IHBzYV9nZXRfYW5kX2xvY2tfdHJhbnNwYXJlbnRfa2V5X3Nsb3Rfd2l0aF9wb2xpY3koCisgICAgICAgIGtleSwgJnNsb3QsIFBTQV9LRVlfVVNBR0VfREVSSVZFLCBvcGVyYXRpb24tPmFsZyk7CisgICAgaWYgKHN0YXR1cyAhPSBQU0FfU1VDQ0VTUykgeworICAgICAgICBwc2Ffa2V5X2Rlcml2YXRpb25fYWJvcnQob3BlcmF0aW9uKTsKKyAgICAgICAgcmV0dXJuIHN0YXR1czsKKyAgICB9CisKKyAgICAvKiBQYXNzaW5nIGEga2V5IG9iamVjdCBhcyBhIFNFQ1JFVCBvciBQQVNTV09SRCBpbnB1dCB1bmxvY2tzIHRoZQorICAgICAqIHBlcm1pc3Npb24gdG8gb3V0cHV0IHRvIGEga2V5IG9iamVjdC4gKi8KKyAgICBpZiAoc3RlcCA9PSBQU0FfS0VZX0RFUklWQVRJT05fSU5QVVRfU0VDUkVUIHx8CisgICAgICAgIHN0ZXAgPT0gUFNBX0tFWV9ERVJJVkFUSU9OX0lOUFVUX1BBU1NXT1JEKSB7CisgICAgICAgIG9wZXJhdGlvbi0+Y2FuX291dHB1dF9rZXkgPSAxOworICAgIH0KKworICAgIHN0YXR1cyA9IHBzYV9rZXlfZGVyaXZhdGlvbl9pbnB1dF9pbnRlcm5hbChvcGVyYXRpb24sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0ZXAsIHNsb3QtPmF0dHIudHlwZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2xvdC0+a2V5LmRhdGEsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNsb3QtPmtleS5ieXRlcyk7CisKKyAgICB1bmxvY2tfc3RhdHVzID0gcHNhX3VucmVnaXN0ZXJfcmVhZF91bmRlcl9tdXRleChzbG90KTsKKworICAgIHJldHVybiAoc3RhdHVzID09IFBTQV9TVUNDRVNTKSA/IHVubG9ja19zdGF0dXMgOiBzdGF0dXM7Cit9CisKKworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKy8qIEtleSBhZ3JlZW1lbnQgKi8KKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCitwc2Ffc3RhdHVzX3QgcHNhX2tleV9hZ3JlZW1lbnRfcmF3X2J1aWx0aW4oY29uc3QgcHNhX2tleV9hdHRyaWJ1dGVzX3QgKmF0dHJpYnV0ZXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdWludDhfdCAqa2V5X2J1ZmZlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3Qga2V5X2J1ZmZlcl9zaXplLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBzYV9hbGdvcml0aG1fdCBhbGcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdWludDhfdCAqcGVlcl9rZXksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IHBlZXJfa2V5X2xlbmd0aCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50OF90ICpzaGFyZWRfc2VjcmV0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBzaGFyZWRfc2VjcmV0X3NpemUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90ICpzaGFyZWRfc2VjcmV0X2xlbmd0aCkKK3sKKyAgICBzd2l0Y2ggKGFsZykgeworI2lmIGRlZmluZWQoTUJFRFRMU19QU0FfQlVJTFRJTl9BTEdfRUNESCkKKyAgICAgICAgY2FzZSBQU0FfQUxHX0VDREg6CisgICAgICAgICAgICByZXR1cm4gbWJlZHRsc19wc2Ffa2V5X2FncmVlbWVudF9lY2RoKGF0dHJpYnV0ZXMsIGtleV9idWZmZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtleV9idWZmZXJfc2l6ZSwgYWxnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwZWVyX2tleSwgcGVlcl9rZXlfbGVuZ3RoLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaGFyZWRfc2VjcmV0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaGFyZWRfc2VjcmV0X3NpemUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNoYXJlZF9zZWNyZXRfbGVuZ3RoKTsKKyNlbmRpZiAvKiBNQkVEVExTX1BTQV9CVUlMVElOX0FMR19FQ0RIICovCisKKyNpZiBkZWZpbmVkKE1CRURUTFNfUFNBX0JVSUxUSU5fQUxHX0ZGREgpCisgICAgICAgIGNhc2UgUFNBX0FMR19GRkRIOgorICAgICAgICAgICAgcmV0dXJuIG1iZWR0bHNfcHNhX2ZmZGhfa2V5X2FncmVlbWVudChhdHRyaWJ1dGVzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwZWVyX2tleSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGVlcl9rZXlfbGVuZ3RoLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXlfYnVmZmVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXlfYnVmZmVyX3NpemUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNoYXJlZF9zZWNyZXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNoYXJlZF9zZWNyZXRfc2l6ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2hhcmVkX3NlY3JldF9sZW5ndGgpOworI2VuZGlmIC8qIE1CRURUTFNfUFNBX0JVSUxUSU5fQUxHX0ZGREggKi8KKworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgKHZvaWQpIGF0dHJpYnV0ZXM7CisgICAgICAgICAgICAodm9pZCkga2V5X2J1ZmZlcjsKKyAgICAgICAgICAgICh2b2lkKSBrZXlfYnVmZmVyX3NpemU7CisgICAgICAgICAgICAodm9pZCkgcGVlcl9rZXk7CisgICAgICAgICAgICAodm9pZCkgcGVlcl9rZXlfbGVuZ3RoOworICAgICAgICAgICAgKHZvaWQpIHNoYXJlZF9zZWNyZXQ7CisgICAgICAgICAgICAodm9pZCkgc2hhcmVkX3NlY3JldF9zaXplOworICAgICAgICAgICAgKHZvaWQpIHNoYXJlZF9zZWNyZXRfbGVuZ3RoOworICAgICAgICAgICAgcmV0dXJuIFBTQV9FUlJPUl9OT1RfU1VQUE9SVEVEOworICAgIH0KK30KKworLyoqIEludGVybmFsIGZ1bmN0aW9uIGZvciByYXcga2V5IGFncmVlbWVudAorICogIENhbGxzIHRoZSBkcml2ZXIgd3JhcHBlciB3aGljaCB3aWxsIGhhbmQgb2ZmIGtleSBhZ3JlZW1lbnQgdGFzaworICogIHRvIHRoZSBkcml2ZXIncyBpbXBsZW1lbnRhdGlvbiBpZiBhIGRyaXZlciBpcyBwcmVzZW50LgorICogIEZhbGxiYWNrIHNwZWNpZmllZCBpbiB0aGUgZHJpdmVyIHdyYXBwZXIgaXMgYnVpbHQtaW4gcmF3IGtleSBhZ3JlZW1lbnQKKyAqICAocHNhX2tleV9hZ3JlZW1lbnRfcmF3X2J1aWx0aW4pLgorICovCitzdGF0aWMgcHNhX3N0YXR1c190IHBzYV9rZXlfYWdyZWVtZW50X3Jhd19pbnRlcm5hbChwc2FfYWxnb3JpdGhtX3QgYWxnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHNhX2tleV9zbG90X3QgKnByaXZhdGVfa2V5LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdWludDhfdCAqcGVlcl9rZXksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgcGVlcl9rZXlfbGVuZ3RoLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDhfdCAqc2hhcmVkX3NlY3JldCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBzaGFyZWRfc2VjcmV0X3NpemUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgKnNoYXJlZF9zZWNyZXRfbGVuZ3RoKQoreworICAgIGlmICghUFNBX0FMR19JU19SQVdfS0VZX0FHUkVFTUVOVChhbGcpKSB7CisgICAgICAgIHJldHVybiBQU0FfRVJST1JfTk9UX1NVUFBPUlRFRDsKKyAgICB9CisKKyAgICByZXR1cm4gcHNhX2RyaXZlcl93cmFwcGVyX2tleV9hZ3JlZW1lbnQoJnByaXZhdGVfa2V5LT5hdHRyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcml2YXRlX2tleS0+a2V5LmRhdGEsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByaXZhdGVfa2V5LT5rZXkuYnl0ZXMsIGFsZywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGVlcl9rZXksIHBlZXJfa2V5X2xlbmd0aCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2hhcmVkX3NlY3JldCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2hhcmVkX3NlY3JldF9zaXplLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaGFyZWRfc2VjcmV0X2xlbmd0aCk7Cit9CisKKy8qIE5vdGUgdGhhdCBpZiB0aGlzIGZ1bmN0aW9uIGZhaWxzLCB5b3UgbXVzdCBjYWxsIHBzYV9rZXlfZGVyaXZhdGlvbl9hYm9ydCgpCisgKiB0byBwb3RlbnRpYWxseSBmcmVlIGVtYmVkZGVkIGRhdGEgc3RydWN0dXJlcyBhbmQgd2lwZSBjb25maWRlbnRpYWwgZGF0YS4KKyAqLworc3RhdGljIHBzYV9zdGF0dXNfdCBwc2Ffa2V5X2FncmVlbWVudF9pbnRlcm5hbChwc2Ffa2V5X2Rlcml2YXRpb25fb3BlcmF0aW9uX3QgKm9wZXJhdGlvbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHNhX2tleV9kZXJpdmF0aW9uX3N0ZXBfdCBzdGVwLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwc2Ffa2V5X3Nsb3RfdCAqcHJpdmF0ZV9rZXksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVpbnQ4X3QgKnBlZXJfa2V5LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgcGVlcl9rZXlfbGVuZ3RoKQoreworICAgIHBzYV9zdGF0dXNfdCBzdGF0dXM7CisgICAgdWludDhfdCBzaGFyZWRfc2VjcmV0W1BTQV9SQVdfS0VZX0FHUkVFTUVOVF9PVVRQVVRfTUFYX1NJWkVdID0geyAwIH07CisgICAgc2l6ZV90IHNoYXJlZF9zZWNyZXRfbGVuZ3RoID0gMDsKKyAgICBwc2FfYWxnb3JpdGhtX3Qga2FfYWxnID0gUFNBX0FMR19LRVlfQUdSRUVNRU5UX0dFVF9CQVNFKG9wZXJhdGlvbi0+YWxnKTsKKworICAgIC8qIFN0ZXAgMTogcnVuIHRoZSBzZWNyZXQgYWdyZWVtZW50IGFsZ29yaXRobSB0byBnZW5lcmF0ZSB0aGUgc2hhcmVkCisgICAgICogc2VjcmV0LiAqLworICAgIHN0YXR1cyA9IHBzYV9rZXlfYWdyZWVtZW50X3Jhd19pbnRlcm5hbChrYV9hbGcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByaXZhdGVfa2V5LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwZWVyX2tleSwgcGVlcl9rZXlfbGVuZ3RoLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaGFyZWRfc2VjcmV0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplb2Yoc2hhcmVkX3NlY3JldCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZzaGFyZWRfc2VjcmV0X2xlbmd0aCk7CisgICAgaWYgKHN0YXR1cyAhPSBQU0FfU1VDQ0VTUykgeworICAgICAgICBnb3RvIGV4aXQ7CisgICAgfQorCisgICAgLyogU3RlcCAyOiBzZXQgdXAgdGhlIGtleSBkZXJpdmF0aW9uIHRvIGdlbmVyYXRlIGtleSBtYXRlcmlhbCBmcm9tCisgICAgICogdGhlIHNoYXJlZCBzZWNyZXQuIEEgc2hhcmVkIHNlY3JldCBpcyBwZXJtaXR0ZWQgd2hlcmV2ZXIgYSBrZXkKKyAgICAgKiBvZiB0eXBlIERFUklWRSBpcyBwZXJtaXR0ZWQuICovCisgICAgc3RhdHVzID0gcHNhX2tleV9kZXJpdmF0aW9uX2lucHV0X2ludGVybmFsKG9wZXJhdGlvbiwgc3RlcCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUFNBX0tFWV9UWVBFX0RFUklWRSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2hhcmVkX3NlY3JldCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2hhcmVkX3NlY3JldF9sZW5ndGgpOworZXhpdDoKKyAgICBtYmVkdGxzX3BsYXRmb3JtX3plcm9pemUoc2hhcmVkX3NlY3JldCwgc2hhcmVkX3NlY3JldF9sZW5ndGgpOworICAgIHJldHVybiBzdGF0dXM7Cit9CisKK3BzYV9zdGF0dXNfdCBwc2Ffa2V5X2Rlcml2YXRpb25fa2V5X2FncmVlbWVudChwc2Ffa2V5X2Rlcml2YXRpb25fb3BlcmF0aW9uX3QgKm9wZXJhdGlvbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwc2Ffa2V5X2Rlcml2YXRpb25fc3RlcF90IHN0ZXAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWJlZHRsc19zdmNfa2V5X2lkX3QgcHJpdmF0ZV9rZXksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdWludDhfdCAqcGVlcl9rZXlfZXh0ZXJuYWwsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IHBlZXJfa2V5X2xlbmd0aCkKK3sKKyAgICBwc2Ffc3RhdHVzX3Qgc3RhdHVzID0gUFNBX0VSUk9SX0NPUlJVUFRJT05fREVURUNURUQ7CisgICAgcHNhX3N0YXR1c190IHVubG9ja19zdGF0dXMgPSBQU0FfRVJST1JfQ09SUlVQVElPTl9ERVRFQ1RFRDsKKyAgICBwc2Ffa2V5X3Nsb3RfdCAqc2xvdDsKKyAgICBMT0NBTF9JTlBVVF9ERUNMQVJFKHBlZXJfa2V5X2V4dGVybmFsLCBwZWVyX2tleSk7CisKKyAgICBpZiAoIVBTQV9BTEdfSVNfS0VZX0FHUkVFTUVOVChvcGVyYXRpb24tPmFsZykpIHsKKyAgICAgICAgcmV0dXJuIFBTQV9FUlJPUl9JTlZBTElEX0FSR1VNRU5UOworICAgIH0KKyAgICBzdGF0dXMgPSBwc2FfZ2V0X2FuZF9sb2NrX3RyYW5zcGFyZW50X2tleV9zbG90X3dpdGhfcG9saWN5KAorICAgICAgICBwcml2YXRlX2tleSwgJnNsb3QsIFBTQV9LRVlfVVNBR0VfREVSSVZFLCBvcGVyYXRpb24tPmFsZyk7CisgICAgaWYgKHN0YXR1cyAhPSBQU0FfU1VDQ0VTUykgeworICAgICAgICByZXR1cm4gc3RhdHVzOworICAgIH0KKworICAgIExPQ0FMX0lOUFVUX0FMTE9DKHBlZXJfa2V5X2V4dGVybmFsLCBwZWVyX2tleV9sZW5ndGgsIHBlZXJfa2V5KTsKKyAgICBzdGF0dXMgPSBwc2Ffa2V5X2FncmVlbWVudF9pbnRlcm5hbChvcGVyYXRpb24sIHN0ZXAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2xvdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwZWVyX2tleSwgcGVlcl9rZXlfbGVuZ3RoKTsKKworI2lmICFkZWZpbmVkKE1CRURUTFNfUFNBX0FTU1VNRV9FWENMVVNJVkVfQlVGRkVSUykKK2V4aXQ6CisjZW5kaWYKKyAgICBpZiAoc3RhdHVzICE9IFBTQV9TVUNDRVNTKSB7CisgICAgICAgIHBzYV9rZXlfZGVyaXZhdGlvbl9hYm9ydChvcGVyYXRpb24pOworICAgIH0gZWxzZSB7CisgICAgICAgIC8qIElmIGEgcHJpdmF0ZSBrZXkgaGFzIGJlZW4gYWRkZWQgYXMgU0VDUkVULCB3ZSBhbGxvdyB0aGUgZGVyaXZlZAorICAgICAgICAgKiBrZXkgbWF0ZXJpYWwgdG8gYmUgdXNlZCBhcyBhIGtleSBpbiBQU0EgQ3J5cHRvLiAqLworICAgICAgICBpZiAoc3RlcCA9PSBQU0FfS0VZX0RFUklWQVRJT05fSU5QVVRfU0VDUkVUKSB7CisgICAgICAgICAgICBvcGVyYXRpb24tPmNhbl9vdXRwdXRfa2V5ID0gMTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHVubG9ja19zdGF0dXMgPSBwc2FfdW5yZWdpc3Rlcl9yZWFkX3VuZGVyX211dGV4KHNsb3QpOworICAgIExPQ0FMX0lOUFVUX0ZSRUUocGVlcl9rZXlfZXh0ZXJuYWwsIHBlZXJfa2V5KTsKKworICAgIHJldHVybiAoc3RhdHVzID09IFBTQV9TVUNDRVNTKSA/IHVubG9ja19zdGF0dXMgOiBzdGF0dXM7Cit9CisKK3BzYV9zdGF0dXNfdCBwc2FfcmF3X2tleV9hZ3JlZW1lbnQocHNhX2FsZ29yaXRobV90IGFsZywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWJlZHRsc19zdmNfa2V5X2lkX3QgcHJpdmF0ZV9rZXksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVpbnQ4X3QgKnBlZXJfa2V5X2V4dGVybmFsLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgcGVlcl9rZXlfbGVuZ3RoLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50OF90ICpvdXRwdXRfZXh0ZXJuYWwsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBvdXRwdXRfc2l6ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90ICpvdXRwdXRfbGVuZ3RoKQoreworICAgIHBzYV9zdGF0dXNfdCBzdGF0dXMgPSBQU0FfRVJST1JfQ09SUlVQVElPTl9ERVRFQ1RFRDsKKyAgICBwc2Ffc3RhdHVzX3QgdW5sb2NrX3N0YXR1cyA9IFBTQV9FUlJPUl9DT1JSVVBUSU9OX0RFVEVDVEVEOworICAgIHBzYV9rZXlfc2xvdF90ICpzbG90ID0gTlVMTDsKKyAgICBzaXplX3QgZXhwZWN0ZWRfbGVuZ3RoOworICAgIExPQ0FMX0lOUFVUX0RFQ0xBUkUocGVlcl9rZXlfZXh0ZXJuYWwsIHBlZXJfa2V5KTsKKyAgICBMT0NBTF9PVVRQVVRfREVDTEFSRShvdXRwdXRfZXh0ZXJuYWwsIG91dHB1dCk7CisgICAgTE9DQUxfT1VUUFVUX0FMTE9DKG91dHB1dF9leHRlcm5hbCwgb3V0cHV0X3NpemUsIG91dHB1dCk7CisKKyAgICBpZiAoIVBTQV9BTEdfSVNfS0VZX0FHUkVFTUVOVChhbGcpKSB7CisgICAgICAgIHN0YXR1cyA9IFBTQV9FUlJPUl9JTlZBTElEX0FSR1VNRU5UOworICAgICAgICBnb3RvIGV4aXQ7CisgICAgfQorICAgIHN0YXR1cyA9IHBzYV9nZXRfYW5kX2xvY2tfdHJhbnNwYXJlbnRfa2V5X3Nsb3Rfd2l0aF9wb2xpY3koCisgICAgICAgIHByaXZhdGVfa2V5LCAmc2xvdCwgUFNBX0tFWV9VU0FHRV9ERVJJVkUsIGFsZyk7CisgICAgaWYgKHN0YXR1cyAhPSBQU0FfU1VDQ0VTUykgeworICAgICAgICBnb3RvIGV4aXQ7CisgICAgfQorCisgICAgLyogUFNBX1JBV19LRVlfQUdSRUVNRU5UX09VVFBVVF9TSVpFKCkgaXMgaW4gZ2VuZXJhbCBhbiB1cHBlciBib3VuZAorICAgICAqIGZvciB0aGUgb3V0cHV0IHNpemUuIFRoZSBQU0Egc3BlY2lmaWNhdGlvbiBvbmx5IGd1YXJhbnRlZXMgdGhhdCB0aGlzCisgICAgICogZnVuY3Rpb24gd29ya3MgaWYgb3V0cHV0X3NpemUgPj0gUFNBX1JBV19LRVlfQUdSRUVNRU5UX09VVFBVVF9TSVpFKC4uLiksCisgICAgICogYnV0IGl0IG1pZ2h0IGJlIG5pY2UgdG8gYWxsb3cgc21hbGxlciBidWZmZXJzIGlmIHRoZSBvdXRwdXQgZml0cy4KKyAgICAgKiBBdCB0aGUgdGltZSBvZiB3cml0aW5nIHRoaXMgY29tbWVudCwgd2l0aCBvbmx5IEVDREggaW1wbGVtZW50ZWQsCisgICAgICogUFNBX1JBV19LRVlfQUdSRUVNRU5UX09VVFBVVF9TSVpFKCkgaXMgZXhhY3Qgc28gdGhlIHBvaW50IGlzIG1vb3QuCisgICAgICogSWYgRkZESCBpcyBpbXBsZW1lbnRlZCwgUFNBX1JBV19LRVlfQUdSRUVNRU5UX09VVFBVVF9TSVpFKCkgY2FuIGVhc2lseQorICAgICAqIGJlIGV4YWN0IGZvciBpdCBhcyB3ZWxsLiAqLworICAgIGV4cGVjdGVkX2xlbmd0aCA9CisgICAgICAgIFBTQV9SQVdfS0VZX0FHUkVFTUVOVF9PVVRQVVRfU0laRShzbG90LT5hdHRyLnR5cGUsIHNsb3QtPmF0dHIuYml0cyk7CisgICAgaWYgKG91dHB1dF9zaXplIDwgZXhwZWN0ZWRfbGVuZ3RoKSB7CisgICAgICAgIHN0YXR1cyA9IFBTQV9FUlJPUl9CVUZGRVJfVE9PX1NNQUxMOworICAgICAgICBnb3RvIGV4aXQ7CisgICAgfQorCisgICAgTE9DQUxfSU5QVVRfQUxMT0MocGVlcl9rZXlfZXh0ZXJuYWwsIHBlZXJfa2V5X2xlbmd0aCwgcGVlcl9rZXkpOworICAgIHN0YXR1cyA9IHBzYV9rZXlfYWdyZWVtZW50X3Jhd19pbnRlcm5hbChhbGcsIHNsb3QsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBlZXJfa2V5LCBwZWVyX2tleV9sZW5ndGgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG91dHB1dCwgb3V0cHV0X3NpemUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG91dHB1dF9sZW5ndGgpOworCitleGl0OgorICAgIC8qIENoZWNrIGZvciBzdWNjZXNzZnVsIGFsbG9jYXRpb24gb2Ygb3V0cHV0LAorICAgICAqIHdpdGggYW4gdW5zdWNjZXNzZnVsIHN0YXR1cy4gKi8KKyAgICBpZiAob3V0cHV0ICE9IE5VTEwgJiYgc3RhdHVzICE9IFBTQV9TVUNDRVNTKSB7CisgICAgICAgIC8qIElmIGFuIGVycm9yIGhhcHBlbnMgYW5kIGlzIG5vdCBoYW5kbGVkIHByb3Blcmx5LCB0aGUgb3V0cHV0CisgICAgICAgICAqIG1heSBiZSB1c2VkIGFzIGEga2V5IHRvIHByb3RlY3Qgc2Vuc2l0aXZlIGRhdGEuIEFycmFuZ2UgZm9yIHN1Y2gKKyAgICAgICAgICogYSBrZXkgdG8gYmUgcmFuZG9tLCB3aGljaCBpcyBsaWtlbHkgdG8gcmVzdWx0IGluIGRlY3J5cHRpb24gb3IKKyAgICAgICAgICogdmVyaWZpY2F0aW9uIGVycm9ycy4gVGhpcyBpcyBiZXR0ZXIgdGhhbiBmaWxsaW5nIHRoZSBidWZmZXIgd2l0aAorICAgICAgICAgKiBzb21lIGNvbnN0YW50IGRhdGEgc3VjaCBhcyB6ZXJvcywgd2hpY2ggd291bGQgcmVzdWx0IGluIHRoZSBkYXRhCisgICAgICAgICAqIGJlaW5nIHByb3RlY3RlZCB3aXRoIGEgcmVwcm9kdWNpYmxlLCBlYXNpbHkga25vd2FibGUga2V5LgorICAgICAgICAgKi8KKyAgICAgICAgcHNhX2dlbmVyYXRlX3JhbmRvbV9pbnRlcm5hbChvdXRwdXQsIG91dHB1dF9zaXplKTsKKyAgICAgICAgKm91dHB1dF9sZW5ndGggPSBvdXRwdXRfc2l6ZTsKKyAgICB9CisKKyAgICBpZiAob3V0cHV0ID09IE5VTEwpIHsKKyAgICAgICAgLyogb3V0cHV0IGFsbG9jYXRpb24gZmFpbGVkLiAqLworICAgICAgICAqb3V0cHV0X2xlbmd0aCA9IDA7CisgICAgfQorCisgICAgdW5sb2NrX3N0YXR1cyA9IHBzYV91bnJlZ2lzdGVyX3JlYWRfdW5kZXJfbXV0ZXgoc2xvdCk7CisKKyAgICBMT0NBTF9JTlBVVF9GUkVFKHBlZXJfa2V5X2V4dGVybmFsLCBwZWVyX2tleSk7CisgICAgTE9DQUxfT1VUUFVUX0ZSRUUob3V0cHV0X2V4dGVybmFsLCBvdXRwdXQpOworICAgIHJldHVybiAoc3RhdHVzID09IFBTQV9TVUNDRVNTKSA/IHVubG9ja19zdGF0dXMgOiBzdGF0dXM7Cit9CisKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisvKiBSYW5kb20gZ2VuZXJhdGlvbiAqLworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKyNpZiBkZWZpbmVkKE1CRURUTFNfUFNBX0lOSkVDVF9FTlRST1BZKQorI2luY2x1ZGUgImVudHJvcHlfcG9sbC5oIgorI2VuZGlmCisKKy8qKiBJbml0aWFsaXplIHRoZSBQU0EgcmFuZG9tIGdlbmVyYXRvci4KKyAqCisgKiAgTm90ZTogdGhlIG1iZWR0bHNfdGhyZWFkaW5nX3BzYV9ybmdkYXRhX211dGV4IHNob3VsZCBiZSBoZWxkIHdoZW4gY2FsbGluZworICogIHRoaXMgZnVuY3Rpb24gaWYgbXV0ZXhlcyBhcmUgZW5hYmxlZC4KKyAqLworc3RhdGljIHZvaWQgbWJlZHRsc19wc2FfcmFuZG9tX2luaXQobWJlZHRsc19wc2FfcmFuZG9tX2NvbnRleHRfdCAqcm5nKQoreworI2lmIGRlZmluZWQoTUJFRFRMU19QU0FfQ1JZUFRPX0VYVEVSTkFMX1JORykKKyAgICBtZW1zZXQocm5nLCAwLCBzaXplb2YoKnJuZykpOworI2Vsc2UgLyogTUJFRFRMU19QU0FfQ1JZUFRPX0VYVEVSTkFMX1JORyAqLworCisgICAgLyogU2V0IGRlZmF1bHQgY29uZmlndXJhdGlvbiBpZgorICAgICAqIG1iZWR0bHNfcHNhX2NyeXB0b19jb25maWd1cmVfZW50cm9weV9zb3VyY2VzKCkgaGFzbid0IGJlZW4gY2FsbGVkLiAqLworICAgIGlmIChybmctPmVudHJvcHlfaW5pdCA9PSBOVUxMKSB7CisgICAgICAgIHJuZy0+ZW50cm9weV9pbml0ID0gbWJlZHRsc19lbnRyb3B5X2luaXQ7CisgICAgfQorICAgIGlmIChybmctPmVudHJvcHlfZnJlZSA9PSBOVUxMKSB7CisgICAgICAgIHJuZy0+ZW50cm9weV9mcmVlID0gbWJlZHRsc19lbnRyb3B5X2ZyZWU7CisgICAgfQorCisgICAgcm5nLT5lbnRyb3B5X2luaXQoJnJuZy0+ZW50cm9weSk7CisjaWYgZGVmaW5lZChNQkVEVExTX1BTQV9JTkpFQ1RfRU5UUk9QWSkgJiYgXAorICAgIGRlZmluZWQoTUJFRFRMU19OT19ERUZBVUxUX0VOVFJPUFlfU09VUkNFUykKKyAgICAvKiBUaGUgUFNBIGVudHJvcHkgaW5qZWN0aW9uIGZlYXR1cmUgZGVwZW5kcyBvbiB1c2luZyBOViBzZWVkIGFzIGFuIGVudHJvcHkKKyAgICAgKiBzb3VyY2UuIEFkZCBOViBzZWVkIGFzIGFuIGVudHJvcHkgc291cmNlIGZvciBQU0EgZW50cm9weSBpbmplY3Rpb24uICovCisgICAgbWJlZHRsc19lbnRyb3B5X2FkZF9zb3VyY2UoJnJuZy0+ZW50cm9weSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYmVkdGxzX252X3NlZWRfcG9sbCwgTlVMTCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNQkVEVExTX0VOVFJPUFlfQkxPQ0tfU0laRSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNQkVEVExTX0VOVFJPUFlfU09VUkNFX1NUUk9ORyk7CisjZW5kaWYKKworICAgIG1iZWR0bHNfcHNhX2RyYmdfaW5pdCgmcm5nLT5kcmJnKTsKKyNlbmRpZiAvKiBNQkVEVExTX1BTQV9DUllQVE9fRVhURVJOQUxfUk5HICovCit9CisKKy8qKiBEZWluaXRpYWxpemUgdGhlIFBTQSByYW5kb20gZ2VuZXJhdG9yLgorICoKKyAqICBOb3RlOiB0aGUgbWJlZHRsc190aHJlYWRpbmdfcHNhX3JuZ2RhdGFfbXV0ZXggc2hvdWxkIGJlIGhlbGQgd2hlbiBjYWxsaW5nCisgKiAgdGhpcyBmdW5jdGlvbiBpZiBtdXRleGVzIGFyZSBlbmFibGVkLgorICovCitzdGF0aWMgdm9pZCBtYmVkdGxzX3BzYV9yYW5kb21fZnJlZShtYmVkdGxzX3BzYV9yYW5kb21fY29udGV4dF90ICpybmcpCit7CisjaWYgZGVmaW5lZChNQkVEVExTX1BTQV9DUllQVE9fRVhURVJOQUxfUk5HKQorICAgIG1lbXNldChybmcsIDAsIHNpemVvZigqcm5nKSk7CisjZWxzZSAvKiBNQkVEVExTX1BTQV9DUllQVE9fRVhURVJOQUxfUk5HICovCisgICAgbWJlZHRsc19wc2FfZHJiZ19mcmVlKCZybmctPmRyYmcpOworICAgIHJuZy0+ZW50cm9weV9mcmVlKCZybmctPmVudHJvcHkpOworI2VuZGlmIC8qIE1CRURUTFNfUFNBX0NSWVBUT19FWFRFUk5BTF9STkcgKi8KK30KKworLyoqIFNlZWQgdGhlIFBTQSByYW5kb20gZ2VuZXJhdG9yLgorICovCitzdGF0aWMgcHNhX3N0YXR1c190IG1iZWR0bHNfcHNhX3JhbmRvbV9zZWVkKG1iZWR0bHNfcHNhX3JhbmRvbV9jb250ZXh0X3QgKnJuZykKK3sKKyNpZiBkZWZpbmVkKE1CRURUTFNfUFNBX0NSWVBUT19FWFRFUk5BTF9STkcpCisgICAgLyogRG8gbm90aGluZzogdGhlIGV4dGVybmFsIFJORyBzZWVkcyBpdHNlbGYuICovCisgICAgKHZvaWQpIHJuZzsKKyAgICByZXR1cm4gUFNBX1NVQ0NFU1M7CisjZWxzZSAvKiBNQkVEVExTX1BTQV9DUllQVE9fRVhURVJOQUxfUk5HICovCisgICAgY29uc3QgdW5zaWduZWQgY2hhciBkcmJnX3NlZWRbXSA9ICJQU0EiOworICAgIGludCByZXQgPSBtYmVkdGxzX3BzYV9kcmJnX3NlZWQoJnJuZy0+ZHJiZywgJnJuZy0+ZW50cm9weSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRyYmdfc2VlZCwgc2l6ZW9mKGRyYmdfc2VlZCkgLSAxKTsKKyAgICByZXR1cm4gbWJlZHRsc190b19wc2FfZXJyb3IocmV0KTsKKyNlbmRpZiAvKiBNQkVEVExTX1BTQV9DUllQVE9fRVhURVJOQUxfUk5HICovCit9CisKK3BzYV9zdGF0dXNfdCBwc2FfZ2VuZXJhdGVfcmFuZG9tKHVpbnQ4X3QgKm91dHB1dF9leHRlcm5hbCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBvdXRwdXRfc2l6ZSkKK3sKKyAgICBwc2Ffc3RhdHVzX3Qgc3RhdHVzOworCisgICAgTE9DQUxfT1VUUFVUX0RFQ0xBUkUob3V0cHV0X2V4dGVybmFsLCBvdXRwdXQpOworICAgIExPQ0FMX09VVFBVVF9BTExPQyhvdXRwdXRfZXh0ZXJuYWwsIG91dHB1dF9zaXplLCBvdXRwdXQpOworCisgICAgc3RhdHVzID0gcHNhX2dlbmVyYXRlX3JhbmRvbV9pbnRlcm5hbChvdXRwdXQsIG91dHB1dF9zaXplKTsKKworI2lmICFkZWZpbmVkKE1CRURUTFNfUFNBX0FTU1VNRV9FWENMVVNJVkVfQlVGRkVSUykKK2V4aXQ6CisjZW5kaWYKKyAgICBMT0NBTF9PVVRQVVRfRlJFRShvdXRwdXRfZXh0ZXJuYWwsIG91dHB1dCk7CisgICAgcmV0dXJuIHN0YXR1czsKK30KKworI2lmIGRlZmluZWQoTUJFRFRMU19QU0FfSU5KRUNUX0VOVFJPUFkpCitwc2Ffc3RhdHVzX3QgbWJlZHRsc19wc2FfaW5qZWN0X2VudHJvcHkoY29uc3QgdWludDhfdCAqc2VlZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3Qgc2VlZF9zaXplKQoreworICAgIGlmIChwc2FfZ2V0X2luaXRpYWxpemVkKCkpIHsKKyAgICAgICAgcmV0dXJuIFBTQV9FUlJPUl9OT1RfUEVSTUlUVEVEOworICAgIH0KKworICAgIGlmICgoKHNlZWRfc2l6ZSA8IE1CRURUTFNfRU5UUk9QWV9NSU5fUExBVEZPUk0pIHx8CisgICAgICAgICAoc2VlZF9zaXplIDwgTUJFRFRMU19FTlRST1BZX0JMT0NLX1NJWkUpKSB8fAorICAgICAgICAoc2VlZF9zaXplID4gTUJFRFRMU19FTlRST1BZX01BWF9TRUVEX1NJWkUpKSB7CisgICAgICAgIHJldHVybiBQU0FfRVJST1JfSU5WQUxJRF9BUkdVTUVOVDsKKyAgICB9CisKKyAgICByZXR1cm4gbWJlZHRsc19wc2Ffc3RvcmFnZV9pbmplY3RfZW50cm9weShzZWVkLCBzZWVkX3NpemUpOworfQorI2VuZGlmIC8qIE1CRURUTFNfUFNBX0lOSkVDVF9FTlRST1BZICovCisKKy8qKiBWYWxpZGF0ZSB0aGUga2V5IHR5cGUgYW5kIHNpemUgZm9yIGtleSBnZW5lcmF0aW9uCisgKgorICogXHBhcmFtICB0eXBlICBUaGUga2V5IHR5cGUKKyAqIFxwYXJhbSAgYml0cyAgVGhlIG51bWJlciBvZiBiaXRzIG9mIHRoZSBrZXkKKyAqCisgKiBccmV0dmFsICNQU0FfU1VDQ0VTUworICogICAgICAgICBUaGUga2V5IHR5cGUgYW5kIHNpemUgYXJlIHZhbGlkLgorICogXHJldHZhbCAjUFNBX0VSUk9SX0lOVkFMSURfQVJHVU1FTlQKKyAqICAgICAgICAgVGhlIHNpemUgaW4gYml0cyBvZiB0aGUga2V5IGlzIG5vdCB2YWxpZC4KKyAqIFxyZXR2YWwgI1BTQV9FUlJPUl9OT1RfU1VQUE9SVEVECisgKiAgICAgICAgIFRoZSB0eXBlIGFuZC9vciB0aGUgc2l6ZSBpbiBiaXRzIG9mIHRoZSBrZXkgb3IgdGhlIGNvbWJpbmF0aW9uIG9mCisgKiAgICAgICAgIHRoZSB0d28gaXMgbm90IHN1cHBvcnRlZC4KKyAqLworc3RhdGljIHBzYV9zdGF0dXNfdCBwc2FfdmFsaWRhdGVfa2V5X3R5cGVfYW5kX3NpemVfZm9yX2tleV9nZW5lcmF0aW9uKAorICAgIHBzYV9rZXlfdHlwZV90IHR5cGUsIHNpemVfdCBiaXRzKQoreworICAgIHBzYV9zdGF0dXNfdCBzdGF0dXMgPSBQU0FfRVJST1JfQ09SUlVQVElPTl9ERVRFQ1RFRDsKKworICAgIGlmIChrZXlfdHlwZV9pc19yYXdfYnl0ZXModHlwZSkpIHsKKyAgICAgICAgc3RhdHVzID0gcHNhX3ZhbGlkYXRlX3Vuc3RydWN0dXJlZF9rZXlfYml0X3NpemUodHlwZSwgYml0cyk7CisgICAgICAgIGlmIChzdGF0dXMgIT0gUFNBX1NVQ0NFU1MpIHsKKyAgICAgICAgICAgIHJldHVybiBzdGF0dXM7CisgICAgICAgIH0KKyAgICB9IGVsc2UKKyNpZiBkZWZpbmVkKFBTQV9XQU5UX0tFWV9UWVBFX1JTQV9LRVlfUEFJUl9HRU5FUkFURSkKKyAgICBpZiAoUFNBX0tFWV9UWVBFX0lTX1JTQSh0eXBlKSAmJiBQU0FfS0VZX1RZUEVfSVNfS0VZX1BBSVIodHlwZSkpIHsKKyAgICAgICAgaWYgKGJpdHMgPiBQU0FfVkVORE9SX1JTQV9NQVhfS0VZX0JJVFMpIHsKKyAgICAgICAgICAgIHJldHVybiBQU0FfRVJST1JfTk9UX1NVUFBPUlRFRDsKKyAgICAgICAgfQorICAgICAgICBpZiAoYml0cyA8IFBTQV9WRU5ET1JfUlNBX0dFTkVSQVRFX01JTl9LRVlfQklUUykgeworICAgICAgICAgICAgcmV0dXJuIFBTQV9FUlJPUl9OT1RfU1VQUE9SVEVEOworICAgICAgICB9CisKKyAgICAgICAgLyogQWNjZXB0IG9ubHkgYnl0ZS1hbGlnbmVkIGtleXMsIGZvciB0aGUgc2FtZSByZWFzb25zIGFzCisgICAgICAgICAqIGluIHBzYV9pbXBvcnRfcnNhX2tleSgpLiAqLworICAgICAgICBpZiAoYml0cyAlIDggIT0gMCkgeworICAgICAgICAgICAgcmV0dXJuIFBTQV9FUlJPUl9OT1RfU1VQUE9SVEVEOworICAgICAgICB9CisgICAgfSBlbHNlCisjZW5kaWYgLyogZGVmaW5lZChQU0FfV0FOVF9LRVlfVFlQRV9SU0FfS0VZX1BBSVJfR0VORVJBVEUpICovCisKKyNpZiBkZWZpbmVkKFBTQV9XQU5UX0tFWV9UWVBFX0VDQ19LRVlfUEFJUl9HRU5FUkFURSkKKyAgICBpZiAoUFNBX0tFWV9UWVBFX0lTX0VDQyh0eXBlKSAmJiBQU0FfS0VZX1RZUEVfSVNfS0VZX1BBSVIodHlwZSkpIHsKKyAgICAgICAgLyogVG8gYXZvaWQgZW1wdHkgYmxvY2ssIHJldHVybiBzdWNjZXNzZnVsbHkgaGVyZS4gKi8KKyAgICAgICAgcmV0dXJuIFBTQV9TVUNDRVNTOworICAgIH0gZWxzZQorI2VuZGlmIC8qIGRlZmluZWQoUFNBX1dBTlRfS0VZX1RZUEVfRUNDX0tFWV9QQUlSX0dFTkVSQVRFKSAqLworCisjaWYgZGVmaW5lZChQU0FfV0FOVF9LRVlfVFlQRV9ESF9LRVlfUEFJUl9HRU5FUkFURSkKKyAgICBpZiAoUFNBX0tFWV9UWVBFX0lTX0RIKHR5cGUpICYmIFBTQV9LRVlfVFlQRV9JU19LRVlfUEFJUih0eXBlKSkgeworICAgICAgICBpZiAocHNhX2lzX2RoX2tleV9zaXplX3ZhbGlkKGJpdHMpID09IDApIHsKKyAgICAgICAgICAgIHJldHVybiBQU0FfRVJST1JfTk9UX1NVUFBPUlRFRDsKKyAgICAgICAgfQorICAgIH0gZWxzZQorI2VuZGlmIC8qIGRlZmluZWQoUFNBX1dBTlRfS0VZX1RZUEVfREhfS0VZX1BBSVJfR0VORVJBVEUpICovCisgICAgeworICAgICAgICByZXR1cm4gUFNBX0VSUk9SX05PVF9TVVBQT1JURUQ7CisgICAgfQorCisgICAgcmV0dXJuIFBTQV9TVUNDRVNTOworfQorCitwc2Ffc3RhdHVzX3QgcHNhX2dlbmVyYXRlX2tleV9pbnRlcm5hbCgKKyAgICBjb25zdCBwc2Ffa2V5X2F0dHJpYnV0ZXNfdCAqYXR0cmlidXRlcywKKyAgICBjb25zdCBwc2Ffa2V5X3Byb2R1Y3Rpb25fcGFyYW1ldGVyc190ICpwYXJhbXMsIHNpemVfdCBwYXJhbXNfZGF0YV9sZW5ndGgsCisgICAgdWludDhfdCAqa2V5X2J1ZmZlciwgc2l6ZV90IGtleV9idWZmZXJfc2l6ZSwgc2l6ZV90ICprZXlfYnVmZmVyX2xlbmd0aCkKK3sKKyAgICBwc2Ffc3RhdHVzX3Qgc3RhdHVzID0gUFNBX0VSUk9SX0NPUlJVUFRJT05fREVURUNURUQ7CisgICAgcHNhX2tleV90eXBlX3QgdHlwZSA9IGF0dHJpYnV0ZXMtPnR5cGU7CisKKyAgICAvKiBPbmx5IHVzZWQgZm9yIFJTQSAqLworICAgICh2b2lkKSBwYXJhbXM7CisgICAgKHZvaWQpIHBhcmFtc19kYXRhX2xlbmd0aDsKKworICAgIGlmIChrZXlfdHlwZV9pc19yYXdfYnl0ZXModHlwZSkpIHsKKyAgICAgICAgc3RhdHVzID0gcHNhX2dlbmVyYXRlX3JhbmRvbV9pbnRlcm5hbChrZXlfYnVmZmVyLCBrZXlfYnVmZmVyX3NpemUpOworICAgICAgICBpZiAoc3RhdHVzICE9IFBTQV9TVUNDRVNTKSB7CisgICAgICAgICAgICByZXR1cm4gc3RhdHVzOworICAgICAgICB9CisKKyNpZiBkZWZpbmVkKE1CRURUTFNfUFNBX0JVSUxUSU5fS0VZX1RZUEVfREVTKQorICAgICAgICBpZiAodHlwZSA9PSBQU0FfS0VZX1RZUEVfREVTKSB7CisgICAgICAgICAgICBwc2FfZGVzX3NldF9rZXlfcGFyaXR5KGtleV9idWZmZXIsIGtleV9idWZmZXJfc2l6ZSk7CisgICAgICAgIH0KKyNlbmRpZiAvKiBNQkVEVExTX1BTQV9CVUlMVElOX0tFWV9UWVBFX0RFUyAqLworICAgIH0gZWxzZQorCisjaWYgZGVmaW5lZChNQkVEVExTX1BTQV9CVUlMVElOX0tFWV9UWVBFX1JTQV9LRVlfUEFJUl9HRU5FUkFURSkKKyAgICBpZiAodHlwZSA9PSBQU0FfS0VZX1RZUEVfUlNBX0tFWV9QQUlSKSB7CisgICAgICAgIHJldHVybiBtYmVkdGxzX3BzYV9yc2FfZ2VuZXJhdGVfa2V5KGF0dHJpYnV0ZXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhcmFtcywgcGFyYW1zX2RhdGFfbGVuZ3RoLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXlfYnVmZmVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXlfYnVmZmVyX3NpemUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtleV9idWZmZXJfbGVuZ3RoKTsKKyAgICB9IGVsc2UKKyNlbmRpZiAvKiBkZWZpbmVkKE1CRURUTFNfUFNBX0JVSUxUSU5fS0VZX1RZUEVfUlNBX0tFWV9QQUlSX0dFTkVSQVRFKSAqLworCisjaWYgZGVmaW5lZChNQkVEVExTX1BTQV9CVUlMVElOX0tFWV9UWVBFX0VDQ19LRVlfUEFJUl9HRU5FUkFURSkKKyAgICBpZiAoUFNBX0tFWV9UWVBFX0lTX0VDQyh0eXBlKSAmJiBQU0FfS0VZX1RZUEVfSVNfS0VZX1BBSVIodHlwZSkpIHsKKyAgICAgICAgcmV0dXJuIG1iZWR0bHNfcHNhX2VjcF9nZW5lcmF0ZV9rZXkoYXR0cmlidXRlcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga2V5X2J1ZmZlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga2V5X2J1ZmZlcl9zaXplLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXlfYnVmZmVyX2xlbmd0aCk7CisgICAgfSBlbHNlCisjZW5kaWYgLyogZGVmaW5lZChNQkVEVExTX1BTQV9CVUlMVElOX0tFWV9UWVBFX0VDQ19LRVlfUEFJUl9HRU5FUkFURSkgKi8KKworI2lmIGRlZmluZWQoTUJFRFRMU19QU0FfQlVJTFRJTl9LRVlfVFlQRV9ESF9LRVlfUEFJUl9HRU5FUkFURSkKKyAgICBpZiAoUFNBX0tFWV9UWVBFX0lTX0RIKHR5cGUpICYmIFBTQV9LRVlfVFlQRV9JU19LRVlfUEFJUih0eXBlKSkgeworICAgICAgICByZXR1cm4gbWJlZHRsc19wc2FfZmZkaF9nZW5lcmF0ZV9rZXkoYXR0cmlidXRlcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtleV9idWZmZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXlfYnVmZmVyX3NpemUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXlfYnVmZmVyX2xlbmd0aCk7CisgICAgfSBlbHNlCisjZW5kaWYgLyogZGVmaW5lZChNQkVEVExTX1BTQV9CVUlMVElOX0tFWV9UWVBFX0RIX0tFWV9QQUlSX0dFTkVSQVRFKSAqLworICAgIHsKKyAgICAgICAgKHZvaWQpIGtleV9idWZmZXJfbGVuZ3RoOworICAgICAgICByZXR1cm4gUFNBX0VSUk9SX05PVF9TVVBQT1JURUQ7CisgICAgfQorCisgICAgcmV0dXJuIFBTQV9TVUNDRVNTOworfQorCitwc2Ffc3RhdHVzX3QgcHNhX2dlbmVyYXRlX2tleV9leHQoY29uc3QgcHNhX2tleV9hdHRyaWJ1dGVzX3QgKmF0dHJpYnV0ZXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgcHNhX2tleV9wcm9kdWN0aW9uX3BhcmFtZXRlcnNfdCAqcGFyYW1zLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBwYXJhbXNfZGF0YV9sZW5ndGgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWJlZHRsc19zdmNfa2V5X2lkX3QgKmtleSkKK3sKKyAgICBwc2Ffc3RhdHVzX3Qgc3RhdHVzOworICAgIHBzYV9rZXlfc2xvdF90ICpzbG90ID0gTlVMTDsKKyAgICBwc2Ffc2VfZHJ2X3RhYmxlX2VudHJ5X3QgKmRyaXZlciA9IE5VTEw7CisgICAgc2l6ZV90IGtleV9idWZmZXJfc2l6ZTsKKworICAgICprZXkgPSBNQkVEVExTX1NWQ19LRVlfSURfSU5JVDsKKworICAgIC8qIFJlamVjdCBhbnkgYXR0ZW1wdCB0byBjcmVhdGUgYSB6ZXJvLWxlbmd0aCBrZXkgc28gdGhhdCB3ZSBkb24ndAorICAgICAqIHJpc2sgdHJpcHBpbmcgdXAgbGF0ZXIsIGUuZy4gb24gYSBtYWxsb2MoMCkgdGhhdCByZXR1cm5zIE5VTEwuICovCisgICAgaWYgKHBzYV9nZXRfa2V5X2JpdHMoYXR0cmlidXRlcykgPT0gMCkgeworICAgICAgICByZXR1cm4gUFNBX0VSUk9SX0lOVkFMSURfQVJHVU1FTlQ7CisgICAgfQorCisgICAgLyogUmVqZWN0IGFueSBhdHRlbXB0IHRvIGNyZWF0ZSBhIHB1YmxpYyBrZXkuICovCisgICAgaWYgKFBTQV9LRVlfVFlQRV9JU19QVUJMSUNfS0VZKGF0dHJpYnV0ZXMtPnR5cGUpKSB7CisgICAgICAgIHJldHVybiBQU0FfRVJST1JfSU5WQUxJRF9BUkdVTUVOVDsKKyAgICB9CisKKyNpZiBkZWZpbmVkKFBTQV9XQU5UX0tFWV9UWVBFX1JTQV9LRVlfUEFJUl9HRU5FUkFURSkKKyAgICBpZiAoYXR0cmlidXRlcy0+dHlwZSA9PSBQU0FfS0VZX1RZUEVfUlNBX0tFWV9QQUlSKSB7CisgICAgICAgIGlmIChwYXJhbXMtPmZsYWdzICE9IDApIHsKKyAgICAgICAgICAgIHJldHVybiBQU0FfRVJST1JfSU5WQUxJRF9BUkdVTUVOVDsKKyAgICAgICAgfQorICAgIH0gZWxzZQorI2VuZGlmCisgICAgaWYgKCFwc2Ffa2V5X3Byb2R1Y3Rpb25fcGFyYW1ldGVyc19hcmVfZGVmYXVsdChwYXJhbXMsIHBhcmFtc19kYXRhX2xlbmd0aCkpIHsKKyAgICAgICAgcmV0dXJuIFBTQV9FUlJPUl9JTlZBTElEX0FSR1VNRU5UOworICAgIH0KKworICAgIHN0YXR1cyA9IHBzYV9zdGFydF9rZXlfY3JlYXRpb24oUFNBX0tFWV9DUkVBVElPTl9HRU5FUkFURSwgYXR0cmlidXRlcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZzbG90LCAmZHJpdmVyKTsKKyAgICBpZiAoc3RhdHVzICE9IFBTQV9TVUNDRVNTKSB7CisgICAgICAgIGdvdG8gZXhpdDsKKyAgICB9CisKKyAgICAvKiBJbiB0aGUgY2FzZSBvZiBhIHRyYW5zcGFyZW50IGtleSBvciBhbiBvcGFxdWUga2V5IHN0b3JlZCBpbiBsb2NhbAorICAgICAqIHN0b3JhZ2UgKCB0aHVzIG5vdCBpbiB0aGUgY2FzZSBvZiBnZW5lcmF0aW5nIGEga2V5IGluIGEgc2VjdXJlIGVsZW1lbnQKKyAgICAgKiB3aXRoIHN0b3JhZ2UgKCBNQkVEVExTX1BTQV9DUllQVE9fU0VfQyApICksd2UgaGF2ZSB0byBhbGxvY2F0ZSBhCisgICAgICogYnVmZmVyIHRvIGhvbGQgdGhlIGdlbmVyYXRlZCBrZXkgbWF0ZXJpYWwuICovCisgICAgaWYgKHNsb3QtPmtleS5kYXRhID09IE5VTEwpIHsKKyAgICAgICAgaWYgKFBTQV9LRVlfTElGRVRJTUVfR0VUX0xPQ0FUSU9OKGF0dHJpYnV0ZXMtPmxpZmV0aW1lKSA9PQorICAgICAgICAgICAgUFNBX0tFWV9MT0NBVElPTl9MT0NBTF9TVE9SQUdFKSB7CisgICAgICAgICAgICBzdGF0dXMgPSBwc2FfdmFsaWRhdGVfa2V5X3R5cGVfYW5kX3NpemVfZm9yX2tleV9nZW5lcmF0aW9uKAorICAgICAgICAgICAgICAgIGF0dHJpYnV0ZXMtPnR5cGUsIGF0dHJpYnV0ZXMtPmJpdHMpOworICAgICAgICAgICAgaWYgKHN0YXR1cyAhPSBQU0FfU1VDQ0VTUykgeworICAgICAgICAgICAgICAgIGdvdG8gZXhpdDsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAga2V5X2J1ZmZlcl9zaXplID0gUFNBX0VYUE9SVF9LRVlfT1VUUFVUX1NJWkUoCisgICAgICAgICAgICAgICAgYXR0cmlidXRlcy0+dHlwZSwKKyAgICAgICAgICAgICAgICBhdHRyaWJ1dGVzLT5iaXRzKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHN0YXR1cyA9IHBzYV9kcml2ZXJfd3JhcHBlcl9nZXRfa2V5X2J1ZmZlcl9zaXplKAorICAgICAgICAgICAgICAgIGF0dHJpYnV0ZXMsICZrZXlfYnVmZmVyX3NpemUpOworICAgICAgICAgICAgaWYgKHN0YXR1cyAhPSBQU0FfU1VDQ0VTUykgeworICAgICAgICAgICAgICAgIGdvdG8gZXhpdDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIHN0YXR1cyA9IHBzYV9hbGxvY2F0ZV9idWZmZXJfdG9fc2xvdChzbG90LCBrZXlfYnVmZmVyX3NpemUpOworICAgICAgICBpZiAoc3RhdHVzICE9IFBTQV9TVUNDRVNTKSB7CisgICAgICAgICAgICBnb3RvIGV4aXQ7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBzdGF0dXMgPSBwc2FfZHJpdmVyX3dyYXBwZXJfZ2VuZXJhdGVfa2V5KGF0dHJpYnV0ZXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXJhbXMsIHBhcmFtc19kYXRhX2xlbmd0aCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNsb3QtPmtleS5kYXRhLCBzbG90LT5rZXkuYnl0ZXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmc2xvdC0+a2V5LmJ5dGVzKTsKKyAgICBpZiAoc3RhdHVzICE9IFBTQV9TVUNDRVNTKSB7CisgICAgICAgIHBzYV9yZW1vdmVfa2V5X2RhdGFfZnJvbV9tZW1vcnkoc2xvdCk7CisgICAgfQorCitleGl0OgorICAgIGlmIChzdGF0dXMgPT0gUFNBX1NVQ0NFU1MpIHsKKyAgICAgICAgc3RhdHVzID0gcHNhX2ZpbmlzaF9rZXlfY3JlYXRpb24oc2xvdCwgZHJpdmVyLCBrZXkpOworICAgIH0KKyAgICBpZiAoc3RhdHVzICE9IFBTQV9TVUNDRVNTKSB7CisgICAgICAgIHBzYV9mYWlsX2tleV9jcmVhdGlvbihzbG90LCBkcml2ZXIpOworICAgIH0KKworICAgIHJldHVybiBzdGF0dXM7Cit9CisKK3BzYV9zdGF0dXNfdCBwc2FfZ2VuZXJhdGVfa2V5KGNvbnN0IHBzYV9rZXlfYXR0cmlidXRlc190ICphdHRyaWJ1dGVzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWJlZHRsc19zdmNfa2V5X2lkX3QgKmtleSkKK3sKKyAgICByZXR1cm4gcHNhX2dlbmVyYXRlX2tleV9leHQoYXR0cmlidXRlcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJmRlZmF1bHRfcHJvZHVjdGlvbl9wYXJhbWV0ZXJzLCAwLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXkpOworfQorCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKy8qIE1vZHVsZSBzZXR1cCAqLworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKyNpZiAhZGVmaW5lZChNQkVEVExTX1BTQV9DUllQVE9fRVhURVJOQUxfUk5HKQorcHNhX3N0YXR1c190IG1iZWR0bHNfcHNhX2NyeXB0b19jb25maWd1cmVfZW50cm9weV9zb3VyY2VzKAorICAgIHZvaWQgKCogZW50cm9weV9pbml0KShtYmVkdGxzX2VudHJvcHlfY29udGV4dCAqY3R4KSwKKyAgICB2b2lkICgqIGVudHJvcHlfZnJlZSkobWJlZHRsc19lbnRyb3B5X2NvbnRleHQgKmN0eCkpCit7CisgICAgcHNhX3N0YXR1c190IHN0YXR1cyA9IFBTQV9FUlJPUl9DT1JSVVBUSU9OX0RFVEVDVEVEOworCisjaWYgZGVmaW5lZChNQkVEVExTX1RIUkVBRElOR19DKQorICAgIG1iZWR0bHNfbXV0ZXhfbG9jaygmbWJlZHRsc190aHJlYWRpbmdfcHNhX3JuZ2RhdGFfbXV0ZXgpOworI2VuZGlmIC8qIGRlZmluZWQoTUJFRFRMU19USFJFQURJTkdfQykgKi8KKworICAgIGlmIChnbG9iYWxfZGF0YS5ybmdfc3RhdGUgIT0gUk5HX05PVF9JTklUSUFMSVpFRCkgeworICAgICAgICBzdGF0dXMgPSBQU0FfRVJST1JfQkFEX1NUQVRFOworICAgIH0gZWxzZSB7CisgICAgICAgIGdsb2JhbF9kYXRhLnJuZy5lbnRyb3B5X2luaXQgPSBlbnRyb3B5X2luaXQ7CisgICAgICAgIGdsb2JhbF9kYXRhLnJuZy5lbnRyb3B5X2ZyZWUgPSBlbnRyb3B5X2ZyZWU7CisgICAgICAgIHN0YXR1cyA9IFBTQV9TVUNDRVNTOworICAgIH0KKworI2lmIGRlZmluZWQoTUJFRFRMU19USFJFQURJTkdfQykKKyAgICBtYmVkdGxzX211dGV4X3VubG9jaygmbWJlZHRsc190aHJlYWRpbmdfcHNhX3JuZ2RhdGFfbXV0ZXgpOworI2VuZGlmIC8qIGRlZmluZWQoTUJFRFRMU19USFJFQURJTkdfQykgKi8KKworICAgIHJldHVybiBzdGF0dXM7Cit9CisjZW5kaWYgLyogIWRlZmluZWQoTUJFRFRMU19QU0FfQ1JZUFRPX0VYVEVSTkFMX1JORykgKi8KKwordm9pZCBtYmVkdGxzX3BzYV9jcnlwdG9fZnJlZSh2b2lkKQoreworCisjaWYgZGVmaW5lZChNQkVEVExTX1RIUkVBRElOR19DKQorICAgIG1iZWR0bHNfbXV0ZXhfbG9jaygmbWJlZHRsc190aHJlYWRpbmdfcHNhX2dsb2JhbGRhdGFfbXV0ZXgpOworI2VuZGlmIC8qIGRlZmluZWQoTUJFRFRMU19USFJFQURJTkdfQykgKi8KKworICAgIC8qIE5vdGhpbmcgdG8gZG8gdG8gZnJlZSB0cmFuc2FjdGlvbi4gKi8KKyAgICBpZiAoZ2xvYmFsX2RhdGEuaW5pdGlhbGl6ZWQgJiBQU0FfQ1JZUFRPX1NVQlNZU1RFTV9UUkFOU0FDVElPTl9JTklUSUFMSVpFRCkgeworICAgICAgICBnbG9iYWxfZGF0YS5pbml0aWFsaXplZCAmPSB+UFNBX0NSWVBUT19TVUJTWVNURU1fVFJBTlNBQ1RJT05fSU5JVElBTElaRUQ7CisgICAgfQorCisgICAgaWYgKGdsb2JhbF9kYXRhLmluaXRpYWxpemVkICYgUFNBX0NSWVBUT19TVUJTWVNURU1fS0VZX1NMT1RTX0lOSVRJQUxJWkVEKSB7CisgICAgICAgIHBzYV93aXBlX2FsbF9rZXlfc2xvdHMoKTsKKyAgICAgICAgZ2xvYmFsX2RhdGEuaW5pdGlhbGl6ZWQgJj0gflBTQV9DUllQVE9fU1VCU1lTVEVNX0tFWV9TTE9UU19JTklUSUFMSVpFRDsKKyAgICB9CisKKyNpZiBkZWZpbmVkKE1CRURUTFNfVEhSRUFESU5HX0MpCisgICAgbWJlZHRsc19tdXRleF91bmxvY2soJm1iZWR0bHNfdGhyZWFkaW5nX3BzYV9nbG9iYWxkYXRhX211dGV4KTsKKyNlbmRpZiAvKiBkZWZpbmVkKE1CRURUTFNfVEhSRUFESU5HX0MpICovCisKKyNpZiBkZWZpbmVkKE1CRURUTFNfVEhSRUFESU5HX0MpCisgICAgbWJlZHRsc19tdXRleF9sb2NrKCZtYmVkdGxzX3RocmVhZGluZ19wc2Ffcm5nZGF0YV9tdXRleCk7CisjZW5kaWYgLyogZGVmaW5lZChNQkVEVExTX1RIUkVBRElOR19DKSAqLworCisgICAgaWYgKGdsb2JhbF9kYXRhLnJuZ19zdGF0ZSAhPSBSTkdfTk9UX0lOSVRJQUxJWkVEKSB7CisgICAgICAgIG1iZWR0bHNfcHNhX3JhbmRvbV9mcmVlKCZnbG9iYWxfZGF0YS5ybmcpOworICAgIH0KKyAgICBnbG9iYWxfZGF0YS5ybmdfc3RhdGUgPSBSTkdfTk9UX0lOSVRJQUxJWkVEOworICAgIG1iZWR0bHNfcGxhdGZvcm1femVyb2l6ZSgmZ2xvYmFsX2RhdGEucm5nLCBzaXplb2YoZ2xvYmFsX2RhdGEucm5nKSk7CisKKyNpZiBkZWZpbmVkKE1CRURUTFNfVEhSRUFESU5HX0MpCisgICAgbWJlZHRsc19tdXRleF91bmxvY2soJm1iZWR0bHNfdGhyZWFkaW5nX3BzYV9ybmdkYXRhX211dGV4KTsKKyNlbmRpZiAvKiBkZWZpbmVkKE1CRURUTFNfVEhSRUFESU5HX0MpICovCisKKyNpZiBkZWZpbmVkKE1CRURUTFNfVEhSRUFESU5HX0MpCisgICAgbWJlZHRsc19tdXRleF9sb2NrKCZtYmVkdGxzX3RocmVhZGluZ19wc2FfZ2xvYmFsZGF0YV9tdXRleCk7CisjZW5kaWYgLyogZGVmaW5lZChNQkVEVExTX1RIUkVBRElOR19DKSAqLworCisgICAgLyogVGVybWluYXRlIGRyaXZlcnMgKi8KKyAgICBpZiAoZ2xvYmFsX2RhdGEuaW5pdGlhbGl6ZWQgJiBQU0FfQ1JZUFRPX1NVQlNZU1RFTV9EUklWRVJfV1JBUFBFUlNfSU5JVElBTElaRUQpIHsKKyAgICAgICAgcHNhX2RyaXZlcl93cmFwcGVyX2ZyZWUoKTsKKyAgICAgICAgZ2xvYmFsX2RhdGEuaW5pdGlhbGl6ZWQgJj0gflBTQV9DUllQVE9fU1VCU1lTVEVNX0RSSVZFUl9XUkFQUEVSU19JTklUSUFMSVpFRDsKKyAgICB9CisKKyNpZiBkZWZpbmVkKE1CRURUTFNfVEhSRUFESU5HX0MpCisgICAgbWJlZHRsc19tdXRleF91bmxvY2soJm1iZWR0bHNfdGhyZWFkaW5nX3BzYV9nbG9iYWxkYXRhX211dGV4KTsKKyNlbmRpZiAvKiBkZWZpbmVkKE1CRURUTFNfVEhSRUFESU5HX0MpICovCisKK30KKworI2lmIGRlZmluZWQoUFNBX0NSWVBUT19TVE9SQUdFX0hBU19UUkFOU0FDVElPTlMpCisvKiogUmVjb3ZlciBhIHRyYW5zYWN0aW9uIHRoYXQgd2FzIGludGVycnVwdGVkIGJ5IGEgcG93ZXIgZmFpbHVyZS4KKyAqCisgKiBUaGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCBkdXJpbmcgaW5pdGlhbGl6YXRpb24sIGJlZm9yZSBwc2FfY3J5cHRvX2luaXQoKQorICogcmV0dXJucy4gSWYgdGhpcyBmdW5jdGlvbiByZXR1cm5zIGEgZmFpbHVyZSBzdGF0dXMsIHRoZSBpbml0aWFsaXphdGlvbgorICogZmFpbHMuCisgKi8KK3N0YXRpYyBwc2Ffc3RhdHVzX3QgcHNhX2NyeXB0b19yZWNvdmVyX3RyYW5zYWN0aW9uKAorICAgIGNvbnN0IHBzYV9jcnlwdG9fdHJhbnNhY3Rpb25fdCAqdHJhbnNhY3Rpb24pCit7CisgICAgc3dpdGNoICh0cmFuc2FjdGlvbi0+dW5rbm93bi50eXBlKSB7CisgICAgICAgIGNhc2UgUFNBX0NSWVBUT19UUkFOU0FDVElPTl9DUkVBVEVfS0VZOgorICAgICAgICBjYXNlIFBTQV9DUllQVE9fVFJBTlNBQ1RJT05fREVTVFJPWV9LRVk6CisgICAgICAgIC8qIFRPRE8gLSBmYWxsIHRocm91Z2ggdG8gdGhlIGZhaWx1cmUgY2FzZSB1bnRpbCB0aGlzCisgICAgICAgICAqIGlzIGltcGxlbWVudGVkLgorICAgICAgICAgKiBodHRwczovL2dpdGh1Yi5jb20vQVJNbWJlZC9tYmVkLWNyeXB0by9pc3N1ZXMvMjE4CisgICAgICAgICAqLworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgLyogV2UgZm91bmQgYW4gdW5zdXBwb3J0ZWQgdHJhbnNhY3Rpb24gaW4gdGhlIHN0b3JhZ2UuCisgICAgICAgICAgICAgKiBXZSBkb24ndCBrbm93IHdoYXQgc3RhdGUgdGhlIHN0b3JhZ2UgaXMgaW4uIEdpdmUgdXAuICovCisgICAgICAgICAgICByZXR1cm4gUFNBX0VSUk9SX0RBVEFfSU5WQUxJRDsKKyAgICB9Cit9CisjZW5kaWYgLyogUFNBX0NSWVBUT19TVE9SQUdFX0hBU19UUkFOU0FDVElPTlMgKi8KKworc3RhdGljIHBzYV9zdGF0dXNfdCBtYmVkdGxzX3BzYV9jcnlwdG9faW5pdF9zdWJzeXN0ZW0obWJlZHRsc19wc2FfY3J5cHRvX3N1YnN5c3RlbSBzdWJzeXN0ZW0pCit7CisgICAgcHNhX3N0YXR1c190IHN0YXR1cyA9IFBTQV9TVUNDRVNTOworICAgIHVpbnQ4X3QgZHJpdmVyX3dyYXBwZXJzX2luaXRpYWxpemVkID0gMDsKKworICAgIHN3aXRjaCAoc3Vic3lzdGVtKSB7CisgICAgICAgIGNhc2UgUFNBX0NSWVBUT19TVUJTWVNURU1fRFJJVkVSX1dSQVBQRVJTOgorCisjaWYgZGVmaW5lZChNQkVEVExTX1RIUkVBRElOR19DKQorICAgICAgICAgICAgUFNBX1RIUkVBRElOR19DSEtfR09UT19FWElUKG1iZWR0bHNfbXV0ZXhfbG9jaygmbWJlZHRsc190aHJlYWRpbmdfcHNhX2dsb2JhbGRhdGFfbXV0ZXgpKTsKKyNlbmRpZiAvKiBkZWZpbmVkKE1CRURUTFNfVEhSRUFESU5HX0MpICovCisKKyAgICAgICAgICAgIGlmICghKGdsb2JhbF9kYXRhLmluaXRpYWxpemVkICYgUFNBX0NSWVBUT19TVUJTWVNURU1fRFJJVkVSX1dSQVBQRVJTX0lOSVRJQUxJWkVEKSkgeworICAgICAgICAgICAgICAgIC8qIEluaXQgZHJpdmVycyAqLworICAgICAgICAgICAgICAgIHN0YXR1cyA9IHBzYV9kcml2ZXJfd3JhcHBlcl9pbml0KCk7CisKKyAgICAgICAgICAgICAgICAvKiBEcml2ZXJzIG5lZWQgc2h1dGRvd24gcmVnYXJkbGVzcyBvZiBzdGFydHVwIGVycm9ycy4gKi8KKyAgICAgICAgICAgICAgICBnbG9iYWxfZGF0YS5pbml0aWFsaXplZCB8PSBQU0FfQ1JZUFRPX1NVQlNZU1RFTV9EUklWRVJfV1JBUFBFUlNfSU5JVElBTElaRUQ7CisKKworICAgICAgICAgICAgfQorI2lmIGRlZmluZWQoTUJFRFRMU19USFJFQURJTkdfQykKKyAgICAgICAgICAgIFBTQV9USFJFQURJTkdfQ0hLX0dPVE9fRVhJVChtYmVkdGxzX211dGV4X3VubG9jaygKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJm1iZWR0bHNfdGhyZWFkaW5nX3BzYV9nbG9iYWxkYXRhX211dGV4KSk7CisjZW5kaWYgLyogZGVmaW5lZChNQkVEVExTX1RIUkVBRElOR19DKSAqLworCisgICAgICAgICAgICBicmVhazsKKworICAgICAgICBjYXNlIFBTQV9DUllQVE9fU1VCU1lTVEVNX0tFWV9TTE9UUzoKKworI2lmIGRlZmluZWQoTUJFRFRMU19USFJFQURJTkdfQykKKyAgICAgICAgICAgIFBTQV9USFJFQURJTkdfQ0hLX0dPVE9fRVhJVChtYmVkdGxzX211dGV4X2xvY2soJm1iZWR0bHNfdGhyZWFkaW5nX3BzYV9nbG9iYWxkYXRhX211dGV4KSk7CisjZW5kaWYgLyogZGVmaW5lZChNQkVEVExTX1RIUkVBRElOR19DKSAqLworCisgICAgICAgICAgICBpZiAoIShnbG9iYWxfZGF0YS5pbml0aWFsaXplZCAmIFBTQV9DUllQVE9fU1VCU1lTVEVNX0tFWV9TTE9UU19JTklUSUFMSVpFRCkpIHsKKyAgICAgICAgICAgICAgICBzdGF0dXMgPSBwc2FfaW5pdGlhbGl6ZV9rZXlfc2xvdHMoKTsKKworICAgICAgICAgICAgICAgIC8qIE5lZWQgdG8gd2lwZSBrZXlzIGV2ZW4gaWYgaW5pdGlhbGl6YXRpb24gZmFpbHMuICovCisgICAgICAgICAgICAgICAgZ2xvYmFsX2RhdGEuaW5pdGlhbGl6ZWQgfD0gUFNBX0NSWVBUT19TVUJTWVNURU1fS0VZX1NMT1RTX0lOSVRJQUxJWkVEOworCisgICAgICAgICAgICB9CisjaWYgZGVmaW5lZChNQkVEVExTX1RIUkVBRElOR19DKQorICAgICAgICAgICAgUFNBX1RIUkVBRElOR19DSEtfR09UT19FWElUKG1iZWR0bHNfbXV0ZXhfdW5sb2NrKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmbWJlZHRsc190aHJlYWRpbmdfcHNhX2dsb2JhbGRhdGFfbXV0ZXgpKTsKKyNlbmRpZiAvKiBkZWZpbmVkKE1CRURUTFNfVEhSRUFESU5HX0MpICovCisKKyAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgIGNhc2UgUFNBX0NSWVBUT19TVUJTWVNURU1fUk5HOgorCisjaWYgZGVmaW5lZChNQkVEVExTX1RIUkVBRElOR19DKQorICAgICAgICAgICAgUFNBX1RIUkVBRElOR19DSEtfR09UT19FWElUKG1iZWR0bHNfbXV0ZXhfbG9jaygmbWJlZHRsc190aHJlYWRpbmdfcHNhX2dsb2JhbGRhdGFfbXV0ZXgpKTsKKyNlbmRpZiAvKiBkZWZpbmVkKE1CRURUTFNfVEhSRUFESU5HX0MpICovCisKKyAgICAgICAgICAgIGRyaXZlcl93cmFwcGVyc19pbml0aWFsaXplZCA9CisgICAgICAgICAgICAgICAgKGdsb2JhbF9kYXRhLmluaXRpYWxpemVkICYgUFNBX0NSWVBUT19TVUJTWVNURU1fRFJJVkVSX1dSQVBQRVJTX0lOSVRJQUxJWkVEKTsKKworI2lmIGRlZmluZWQoTUJFRFRMU19USFJFQURJTkdfQykKKyAgICAgICAgICAgIFBTQV9USFJFQURJTkdfQ0hLX0dPVE9fRVhJVChtYmVkdGxzX211dGV4X3VubG9jaygKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJm1iZWR0bHNfdGhyZWFkaW5nX3BzYV9nbG9iYWxkYXRhX211dGV4KSk7CisjZW5kaWYgLyogZGVmaW5lZChNQkVEVExTX1RIUkVBRElOR19DKSAqLworCisgICAgICAgICAgICAvKiBOZWVkIHRvIHVzZSBzZXBhcmF0ZSBtdXRleCBoZXJlLCBhcyBpbml0aWFsaXNhdGlvbiBjYW4gcmVxdWlyZQorICAgICAgICAgICAgICogdGVzdGluZyBvZiBpbml0IGZsYWdzLCB3aGljaCByZXF1aXJlcyBsb2NraW5nIHRoZSBnbG9iYWwgZGF0YQorICAgICAgICAgICAgICogbXV0ZXguICovCisjaWYgZGVmaW5lZChNQkVEVExTX1RIUkVBRElOR19DKQorICAgICAgICAgICAgUFNBX1RIUkVBRElOR19DSEtfR09UT19FWElUKG1iZWR0bHNfbXV0ZXhfbG9jaygmbWJlZHRsc190aHJlYWRpbmdfcHNhX3JuZ2RhdGFfbXV0ZXgpKTsKKyNlbmRpZiAvKiBkZWZpbmVkKE1CRURUTFNfVEhSRUFESU5HX0MpICovCisKKyAgICAgICAgICAgIC8qIEluaXRpYWxpemUgYW5kIHNlZWQgdGhlIHJhbmRvbSBnZW5lcmF0b3IuICovCisgICAgICAgICAgICBpZiAoZ2xvYmFsX2RhdGEucm5nX3N0YXRlID09IFJOR19OT1RfSU5JVElBTElaRUQgJiYgZHJpdmVyX3dyYXBwZXJzX2luaXRpYWxpemVkKSB7CisgICAgICAgICAgICAgICAgbWJlZHRsc19wc2FfcmFuZG9tX2luaXQoJmdsb2JhbF9kYXRhLnJuZyk7CisgICAgICAgICAgICAgICAgZ2xvYmFsX2RhdGEucm5nX3N0YXRlID0gUk5HX0lOSVRJQUxJWkVEOworCisgICAgICAgICAgICAgICAgc3RhdHVzID0gbWJlZHRsc19wc2FfcmFuZG9tX3NlZWQoJmdsb2JhbF9kYXRhLnJuZyk7CisgICAgICAgICAgICAgICAgaWYgKHN0YXR1cyA9PSBQU0FfU1VDQ0VTUykgeworICAgICAgICAgICAgICAgICAgICBnbG9iYWxfZGF0YS5ybmdfc3RhdGUgPSBSTkdfU0VFREVEOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKworI2lmIGRlZmluZWQoTUJFRFRMU19USFJFQURJTkdfQykKKyAgICAgICAgICAgIFBTQV9USFJFQURJTkdfQ0hLX0dPVE9fRVhJVChtYmVkdGxzX211dGV4X3VubG9jaygKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJm1iZWR0bHNfdGhyZWFkaW5nX3BzYV9ybmdkYXRhX211dGV4KSk7CisjZW5kaWYgLyogZGVmaW5lZChNQkVEVExTX1RIUkVBRElOR19DKSAqLworCisgICAgICAgICAgICBicmVhazsKKworICAgICAgICBjYXNlIFBTQV9DUllQVE9fU1VCU1lTVEVNX1RSQU5TQUNUSU9OOgorCisjaWYgZGVmaW5lZChNQkVEVExTX1RIUkVBRElOR19DKQorICAgICAgICAgICAgUFNBX1RIUkVBRElOR19DSEtfR09UT19FWElUKG1iZWR0bHNfbXV0ZXhfbG9jaygmbWJlZHRsc190aHJlYWRpbmdfcHNhX2dsb2JhbGRhdGFfbXV0ZXgpKTsKKyNlbmRpZiAvKiBkZWZpbmVkKE1CRURUTFNfVEhSRUFESU5HX0MpICovCisKKyAgICAgICAgICAgIGlmICghKGdsb2JhbF9kYXRhLmluaXRpYWxpemVkICYgUFNBX0NSWVBUT19TVUJTWVNURU1fVFJBTlNBQ1RJT05fSU5JVElBTElaRUQpKSB7CisjaWYgZGVmaW5lZChQU0FfQ1JZUFRPX1NUT1JBR0VfSEFTX1RSQU5TQUNUSU9OUykKKyAgICAgICAgICAgICAgICBzdGF0dXMgPSBwc2FfY3J5cHRvX2xvYWRfdHJhbnNhY3Rpb24oKTsKKyAgICAgICAgICAgICAgICBpZiAoc3RhdHVzID09IFBTQV9TVUNDRVNTKSB7CisgICAgICAgICAgICAgICAgICAgIHN0YXR1cyA9IHBzYV9jcnlwdG9fcmVjb3Zlcl90cmFuc2FjdGlvbigmcHNhX2NyeXB0b190cmFuc2FjdGlvbik7CisgICAgICAgICAgICAgICAgICAgIGlmIChzdGF0dXMgPT0gUFNBX1NVQ0NFU1MpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGdsb2JhbF9kYXRhLmluaXRpYWxpemVkIHw9IFBTQV9DUllQVE9fU1VCU1lTVEVNX1RSQU5TQUNUSU9OX0lOSVRJQUxJWkVEOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIHN0YXR1cyA9IHBzYV9jcnlwdG9fc3RvcF90cmFuc2FjdGlvbigpOworICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoc3RhdHVzID09IFBTQV9FUlJPUl9ET0VTX05PVF9FWElTVCkgeworICAgICAgICAgICAgICAgICAgICAvKiBUaGVyZSdzIG5vIHRyYW5zYWN0aW9uIHRvIGNvbXBsZXRlLiBJdCdzIGFsbCBnb29kLiAqLworICAgICAgICAgICAgICAgICAgICBnbG9iYWxfZGF0YS5pbml0aWFsaXplZCB8PSBQU0FfQ1JZUFRPX1NVQlNZU1RFTV9UUkFOU0FDVElPTl9JTklUSUFMSVpFRDsKKyAgICAgICAgICAgICAgICAgICAgc3RhdHVzID0gUFNBX1NVQ0NFU1M7CisgICAgICAgICAgICAgICAgfQorI2Vsc2UgLyogZGVmaW5lZChQU0FfQ1JZUFRPX1NUT1JBR0VfSEFTX1RSQU5TQUNUSU9OUykgKi8KKyAgICAgICAgICAgICAgICBnbG9iYWxfZGF0YS5pbml0aWFsaXplZCB8PSBQU0FfQ1JZUFRPX1NVQlNZU1RFTV9UUkFOU0FDVElPTl9JTklUSUFMSVpFRDsKKyAgICAgICAgICAgICAgICBzdGF0dXMgPSBQU0FfU1VDQ0VTUzsKKyNlbmRpZiAvKiBkZWZpbmVkKFBTQV9DUllQVE9fU1RPUkFHRV9IQVNfVFJBTlNBQ1RJT05TKSAqLworICAgICAgICAgICAgfQorCisjaWYgZGVmaW5lZChNQkVEVExTX1RIUkVBRElOR19DKQorICAgICAgICAgICAgUFNBX1RIUkVBRElOR19DSEtfR09UT19FWElUKG1iZWR0bHNfbXV0ZXhfdW5sb2NrKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmbWJlZHRsc190aHJlYWRpbmdfcHNhX2dsb2JhbGRhdGFfbXV0ZXgpKTsKKyNlbmRpZiAvKiBkZWZpbmVkKE1CRURUTFNfVEhSRUFESU5HX0MpICovCisKKyAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICBzdGF0dXMgPSBQU0FfRVJST1JfQ09SUlVQVElPTl9ERVRFQ1RFRDsKKyAgICB9CisKKyAgICAvKiBFeGl0IGxhYmVsIG9ubHkgcmVxdWlyZWQgd2hlbiB1c2luZyB0aHJlYWRpbmcgbWFjcm9zLiAqLworI2lmIGRlZmluZWQoTUJFRFRMU19USFJFQURJTkdfQykKK2V4aXQ6CisjZW5kaWYgLyogZGVmaW5lZChNQkVEVExTX1RIUkVBRElOR19DKSAqLworCisgICAgcmV0dXJuIHN0YXR1czsKK30KKworcHNhX3N0YXR1c190IHBzYV9jcnlwdG9faW5pdCh2b2lkKQoreworICAgIHBzYV9zdGF0dXNfdCBzdGF0dXM7CisKKyAgICAvKiBEb3VibGUgaW5pdGlhbGl6YXRpb24gaXMgZXhwbGljaXRseSBhbGxvd2VkLiBFYXJseSBvdXQgaWYgZXZlcnl0aGluZyBpcworICAgICAqIGRvbmUuICovCisgICAgaWYgKHBzYV9nZXRfaW5pdGlhbGl6ZWQoKSkgeworICAgICAgICByZXR1cm4gUFNBX1NVQ0NFU1M7CisgICAgfQorCisgICAgc3RhdHVzID0gbWJlZHRsc19wc2FfY3J5cHRvX2luaXRfc3Vic3lzdGVtKFBTQV9DUllQVE9fU1VCU1lTVEVNX0RSSVZFUl9XUkFQUEVSUyk7CisgICAgaWYgKHN0YXR1cyAhPSBQU0FfU1VDQ0VTUykgeworICAgICAgICBnb3RvIGV4aXQ7CisgICAgfQorCisgICAgc3RhdHVzID0gbWJlZHRsc19wc2FfY3J5cHRvX2luaXRfc3Vic3lzdGVtKFBTQV9DUllQVE9fU1VCU1lTVEVNX0tFWV9TTE9UUyk7CisgICAgaWYgKHN0YXR1cyAhPSBQU0FfU1VDQ0VTUykgeworICAgICAgICBnb3RvIGV4aXQ7CisgICAgfQorCisgICAgc3RhdHVzID0gbWJlZHRsc19wc2FfY3J5cHRvX2luaXRfc3Vic3lzdGVtKFBTQV9DUllQVE9fU1VCU1lTVEVNX1JORyk7CisgICAgaWYgKHN0YXR1cyAhPSBQU0FfU1VDQ0VTUykgeworICAgICAgICBnb3RvIGV4aXQ7CisgICAgfQorCisgICAgc3RhdHVzID0gbWJlZHRsc19wc2FfY3J5cHRvX2luaXRfc3Vic3lzdGVtKFBTQV9DUllQVE9fU1VCU1lTVEVNX1RSQU5TQUNUSU9OKTsKKworZXhpdDoKKworICAgIGlmIChzdGF0dXMgIT0gUFNBX1NVQ0NFU1MpIHsKKyAgICAgICAgbWJlZHRsc19wc2FfY3J5cHRvX2ZyZWUoKTsKKyAgICB9CisKKyAgICByZXR1cm4gc3RhdHVzOworfQorCisjaWYgZGVmaW5lZChQU0FfV0FOVF9BTEdfU09NRV9QQUtFKQorcHNhX3N0YXR1c190IHBzYV9jcnlwdG9fZHJpdmVyX3Bha2VfZ2V0X3Bhc3N3b3JkX2xlbigKKyAgICBjb25zdCBwc2FfY3J5cHRvX2RyaXZlcl9wYWtlX2lucHV0c190ICppbnB1dHMsCisgICAgc2l6ZV90ICpwYXNzd29yZF9sZW4pCit7CisgICAgaWYgKGlucHV0cy0+cGFzc3dvcmRfbGVuID09IDApIHsKKyAgICAgICAgcmV0dXJuIFBTQV9FUlJPUl9CQURfU1RBVEU7CisgICAgfQorCisgICAgKnBhc3N3b3JkX2xlbiA9IGlucHV0cy0+cGFzc3dvcmRfbGVuOworCisgICAgcmV0dXJuIFBTQV9TVUNDRVNTOworfQorCitwc2Ffc3RhdHVzX3QgcHNhX2NyeXB0b19kcml2ZXJfcGFrZV9nZXRfcGFzc3dvcmQoCisgICAgY29uc3QgcHNhX2NyeXB0b19kcml2ZXJfcGFrZV9pbnB1dHNfdCAqaW5wdXRzLAorICAgIHVpbnQ4X3QgKmJ1ZmZlciwgc2l6ZV90IGJ1ZmZlcl9zaXplLCBzaXplX3QgKmJ1ZmZlcl9sZW5ndGgpCit7CisgICAgaWYgKGlucHV0cy0+cGFzc3dvcmRfbGVuID09IDApIHsKKyAgICAgICAgcmV0dXJuIFBTQV9FUlJPUl9CQURfU1RBVEU7CisgICAgfQorCisgICAgaWYgKGJ1ZmZlcl9zaXplIDwgaW5wdXRzLT5wYXNzd29yZF9sZW4pIHsKKyAgICAgICAgcmV0dXJuIFBTQV9FUlJPUl9CVUZGRVJfVE9PX1NNQUxMOworICAgIH0KKworICAgIG1lbWNweShidWZmZXIsIGlucHV0cy0+cGFzc3dvcmQsIGlucHV0cy0+cGFzc3dvcmRfbGVuKTsKKyAgICAqYnVmZmVyX2xlbmd0aCA9IGlucHV0cy0+cGFzc3dvcmRfbGVuOworCisgICAgcmV0dXJuIFBTQV9TVUNDRVNTOworfQorCitwc2Ffc3RhdHVzX3QgcHNhX2NyeXB0b19kcml2ZXJfcGFrZV9nZXRfdXNlcl9sZW4oCisgICAgY29uc3QgcHNhX2NyeXB0b19kcml2ZXJfcGFrZV9pbnB1dHNfdCAqaW5wdXRzLAorICAgIHNpemVfdCAqdXNlcl9sZW4pCit7CisgICAgaWYgKGlucHV0cy0+dXNlcl9sZW4gPT0gMCkgeworICAgICAgICByZXR1cm4gUFNBX0VSUk9SX0JBRF9TVEFURTsKKyAgICB9CisKKyAgICAqdXNlcl9sZW4gPSBpbnB1dHMtPnVzZXJfbGVuOworCisgICAgcmV0dXJuIFBTQV9TVUNDRVNTOworfQorCitwc2Ffc3RhdHVzX3QgcHNhX2NyeXB0b19kcml2ZXJfcGFrZV9nZXRfdXNlcigKKyAgICBjb25zdCBwc2FfY3J5cHRvX2RyaXZlcl9wYWtlX2lucHV0c190ICppbnB1dHMsCisgICAgdWludDhfdCAqdXNlcl9pZCwgc2l6ZV90IHVzZXJfaWRfc2l6ZSwgc2l6ZV90ICp1c2VyX2lkX2xlbikKK3sKKyAgICBpZiAoaW5wdXRzLT51c2VyX2xlbiA9PSAwKSB7CisgICAgICAgIHJldHVybiBQU0FfRVJST1JfQkFEX1NUQVRFOworICAgIH0KKworICAgIGlmICh1c2VyX2lkX3NpemUgPCBpbnB1dHMtPnVzZXJfbGVuKSB7CisgICAgICAgIHJldHVybiBQU0FfRVJST1JfQlVGRkVSX1RPT19TTUFMTDsKKyAgICB9CisKKyAgICBtZW1jcHkodXNlcl9pZCwgaW5wdXRzLT51c2VyLCBpbnB1dHMtPnVzZXJfbGVuKTsKKyAgICAqdXNlcl9pZF9sZW4gPSBpbnB1dHMtPnVzZXJfbGVuOworCisgICAgcmV0dXJuIFBTQV9TVUNDRVNTOworfQorCitwc2Ffc3RhdHVzX3QgcHNhX2NyeXB0b19kcml2ZXJfcGFrZV9nZXRfcGVlcl9sZW4oCisgICAgY29uc3QgcHNhX2NyeXB0b19kcml2ZXJfcGFrZV9pbnB1dHNfdCAqaW5wdXRzLAorICAgIHNpemVfdCAqcGVlcl9sZW4pCit7CisgICAgaWYgKGlucHV0cy0+cGVlcl9sZW4gPT0gMCkgeworICAgICAgICByZXR1cm4gUFNBX0VSUk9SX0JBRF9TVEFURTsKKyAgICB9CisKKyAgICAqcGVlcl9sZW4gPSBpbnB1dHMtPnBlZXJfbGVuOworCisgICAgcmV0dXJuIFBTQV9TVUNDRVNTOworfQorCitwc2Ffc3RhdHVzX3QgcHNhX2NyeXB0b19kcml2ZXJfcGFrZV9nZXRfcGVlcigKKyAgICBjb25zdCBwc2FfY3J5cHRvX2RyaXZlcl9wYWtlX2lucHV0c190ICppbnB1dHMsCisgICAgdWludDhfdCAqcGVlcl9pZCwgc2l6ZV90IHBlZXJfaWRfc2l6ZSwgc2l6ZV90ICpwZWVyX2lkX2xlbmd0aCkKK3sKKyAgICBpZiAoaW5wdXRzLT5wZWVyX2xlbiA9PSAwKSB7CisgICAgICAgIHJldHVybiBQU0FfRVJST1JfQkFEX1NUQVRFOworICAgIH0KKworICAgIGlmIChwZWVyX2lkX3NpemUgPCBpbnB1dHMtPnBlZXJfbGVuKSB7CisgICAgICAgIHJldHVybiBQU0FfRVJST1JfQlVGRkVSX1RPT19TTUFMTDsKKyAgICB9CisKKyAgICBtZW1jcHkocGVlcl9pZCwgaW5wdXRzLT5wZWVyLCBpbnB1dHMtPnBlZXJfbGVuKTsKKyAgICAqcGVlcl9pZF9sZW5ndGggPSBpbnB1dHMtPnBlZXJfbGVuOworCisgICAgcmV0dXJuIFBTQV9TVUNDRVNTOworfQorCitwc2Ffc3RhdHVzX3QgcHNhX2NyeXB0b19kcml2ZXJfcGFrZV9nZXRfY2lwaGVyX3N1aXRlKAorICAgIGNvbnN0IHBzYV9jcnlwdG9fZHJpdmVyX3Bha2VfaW5wdXRzX3QgKmlucHV0cywKKyAgICBwc2FfcGFrZV9jaXBoZXJfc3VpdGVfdCAqY2lwaGVyX3N1aXRlKQoreworICAgIGlmIChpbnB1dHMtPmNpcGhlcl9zdWl0ZS5hbGdvcml0aG0gPT0gUFNBX0FMR19OT05FKSB7CisgICAgICAgIHJldHVybiBQU0FfRVJST1JfQkFEX1NUQVRFOworICAgIH0KKworICAgICpjaXBoZXJfc3VpdGUgPSBpbnB1dHMtPmNpcGhlcl9zdWl0ZTsKKworICAgIHJldHVybiBQU0FfU1VDQ0VTUzsKK30KKworcHNhX3N0YXR1c190IHBzYV9wYWtlX3NldHVwKAorICAgIHBzYV9wYWtlX29wZXJhdGlvbl90ICpvcGVyYXRpb24sCisgICAgY29uc3QgcHNhX3Bha2VfY2lwaGVyX3N1aXRlX3QgKmNpcGhlcl9zdWl0ZSkKK3sKKyAgICBwc2Ffc3RhdHVzX3Qgc3RhdHVzID0gUFNBX0VSUk9SX0NPUlJVUFRJT05fREVURUNURUQ7CisKKyAgICBpZiAob3BlcmF0aW9uLT5zdGFnZSAhPSBQU0FfUEFLRV9PUEVSQVRJT05fU1RBR0VfU0VUVVApIHsKKyAgICAgICAgc3RhdHVzID0gUFNBX0VSUk9SX0JBRF9TVEFURTsKKyAgICAgICAgZ290byBleGl0OworICAgIH0KKworICAgIGlmIChQU0FfQUxHX0lTX1BBS0UoY2lwaGVyX3N1aXRlLT5hbGdvcml0aG0pID09IDAgfHwKKyAgICAgICAgUFNBX0FMR19JU19IQVNIKGNpcGhlcl9zdWl0ZS0+aGFzaCkgPT0gMCkgeworICAgICAgICBzdGF0dXMgPSBQU0FfRVJST1JfSU5WQUxJRF9BUkdVTUVOVDsKKyAgICAgICAgZ290byBleGl0OworICAgIH0KKworICAgIG1lbXNldCgmb3BlcmF0aW9uLT5kYXRhLmlucHV0cywgMCwgc2l6ZW9mKG9wZXJhdGlvbi0+ZGF0YS5pbnB1dHMpKTsKKworICAgIG9wZXJhdGlvbi0+YWxnID0gY2lwaGVyX3N1aXRlLT5hbGdvcml0aG07CisgICAgb3BlcmF0aW9uLT5wcmltaXRpdmUgPSBQU0FfUEFLRV9QUklNSVRJVkUoY2lwaGVyX3N1aXRlLT50eXBlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNpcGhlcl9zdWl0ZS0+ZmFtaWx5LCBjaXBoZXJfc3VpdGUtPmJpdHMpOworICAgIG9wZXJhdGlvbi0+ZGF0YS5pbnB1dHMuY2lwaGVyX3N1aXRlID0gKmNpcGhlcl9zdWl0ZTsKKworI2lmIGRlZmluZWQoUFNBX1dBTlRfQUxHX0pQQUtFKQorICAgIGlmIChvcGVyYXRpb24tPmFsZyA9PSBQU0FfQUxHX0pQQUtFKSB7CisgICAgICAgIHBzYV9qcGFrZV9jb21wdXRhdGlvbl9zdGFnZV90ICpjb21wdXRhdGlvbl9zdGFnZSA9CisgICAgICAgICAgICAmb3BlcmF0aW9uLT5jb21wdXRhdGlvbl9zdGFnZS5qcGFrZTsKKworICAgICAgICBtZW1zZXQoY29tcHV0YXRpb25fc3RhZ2UsIDAsIHNpemVvZigqY29tcHV0YXRpb25fc3RhZ2UpKTsKKyAgICAgICAgY29tcHV0YXRpb25fc3RhZ2UtPnN0ZXAgPSBQU0FfUEFLRV9TVEVQX0tFWV9TSEFSRTsKKyAgICB9IGVsc2UKKyNlbmRpZiAvKiBQU0FfV0FOVF9BTEdfSlBBS0UgKi8KKyAgICB7CisgICAgICAgIHN0YXR1cyA9IFBTQV9FUlJPUl9OT1RfU1VQUE9SVEVEOworICAgICAgICBnb3RvIGV4aXQ7CisgICAgfQorCisgICAgb3BlcmF0aW9uLT5zdGFnZSA9IFBTQV9QQUtFX09QRVJBVElPTl9TVEFHRV9DT0xMRUNUX0lOUFVUUzsKKworICAgIHJldHVybiBQU0FfU1VDQ0VTUzsKK2V4aXQ6CisgICAgcHNhX3Bha2VfYWJvcnQob3BlcmF0aW9uKTsKKyAgICByZXR1cm4gc3RhdHVzOworfQorCitwc2Ffc3RhdHVzX3QgcHNhX3Bha2Vfc2V0X3Bhc3N3b3JkX2tleSgKKyAgICBwc2FfcGFrZV9vcGVyYXRpb25fdCAqb3BlcmF0aW9uLAorICAgIG1iZWR0bHNfc3ZjX2tleV9pZF90IHBhc3N3b3JkKQoreworICAgIHBzYV9zdGF0dXNfdCBzdGF0dXMgPSBQU0FfRVJST1JfQ09SUlVQVElPTl9ERVRFQ1RFRDsKKyAgICBwc2Ffc3RhdHVzX3QgdW5sb2NrX3N0YXR1cyA9IFBTQV9FUlJPUl9DT1JSVVBUSU9OX0RFVEVDVEVEOworICAgIHBzYV9rZXlfc2xvdF90ICpzbG90ID0gTlVMTDsKKyAgICBwc2Ffa2V5X3R5cGVfdCB0eXBlOworCisgICAgaWYgKG9wZXJhdGlvbi0+c3RhZ2UgIT0gUFNBX1BBS0VfT1BFUkFUSU9OX1NUQUdFX0NPTExFQ1RfSU5QVVRTKSB7CisgICAgICAgIHN0YXR1cyA9IFBTQV9FUlJPUl9CQURfU1RBVEU7CisgICAgICAgIGdvdG8gZXhpdDsKKyAgICB9CisKKyAgICBzdGF0dXMgPSBwc2FfZ2V0X2FuZF9sb2NrX2tleV9zbG90X3dpdGhfcG9saWN5KHBhc3N3b3JkLCAmc2xvdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBTQV9LRVlfVVNBR0VfREVSSVZFLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3BlcmF0aW9uLT5hbGcpOworICAgIGlmIChzdGF0dXMgIT0gUFNBX1NVQ0NFU1MpIHsKKyAgICAgICAgZ290byBleGl0OworICAgIH0KKworICAgIHR5cGUgPSBwc2FfZ2V0X2tleV90eXBlKCZzbG90LT5hdHRyKTsKKworICAgIGlmICh0eXBlICE9IFBTQV9LRVlfVFlQRV9QQVNTV09SRCAmJgorICAgICAgICB0eXBlICE9IFBTQV9LRVlfVFlQRV9QQVNTV09SRF9IQVNIKSB7CisgICAgICAgIHN0YXR1cyA9IFBTQV9FUlJPUl9JTlZBTElEX0FSR1VNRU5UOworICAgICAgICBnb3RvIGV4aXQ7CisgICAgfQorCisgICAgb3BlcmF0aW9uLT5kYXRhLmlucHV0cy5wYXNzd29yZCA9IG1iZWR0bHNfY2FsbG9jKDEsIHNsb3QtPmtleS5ieXRlcyk7CisgICAgaWYgKG9wZXJhdGlvbi0+ZGF0YS5pbnB1dHMucGFzc3dvcmQgPT0gTlVMTCkgeworICAgICAgICBzdGF0dXMgPSBQU0FfRVJST1JfSU5TVUZGSUNJRU5UX01FTU9SWTsKKyAgICAgICAgZ290byBleGl0OworICAgIH0KKworICAgIG1lbWNweShvcGVyYXRpb24tPmRhdGEuaW5wdXRzLnBhc3N3b3JkLCBzbG90LT5rZXkuZGF0YSwgc2xvdC0+a2V5LmJ5dGVzKTsKKyAgICBvcGVyYXRpb24tPmRhdGEuaW5wdXRzLnBhc3N3b3JkX2xlbiA9IHNsb3QtPmtleS5ieXRlczsKKyAgICBvcGVyYXRpb24tPmRhdGEuaW5wdXRzLmF0dHJpYnV0ZXMgPSBzbG90LT5hdHRyOworCitleGl0OgorICAgIGlmIChzdGF0dXMgIT0gUFNBX1NVQ0NFU1MpIHsKKyAgICAgICAgcHNhX3Bha2VfYWJvcnQob3BlcmF0aW9uKTsKKyAgICB9CisgICAgdW5sb2NrX3N0YXR1cyA9IHBzYV91bnJlZ2lzdGVyX3JlYWRfdW5kZXJfbXV0ZXgoc2xvdCk7CisgICAgcmV0dXJuIChzdGF0dXMgPT0gUFNBX1NVQ0NFU1MpID8gdW5sb2NrX3N0YXR1cyA6IHN0YXR1czsKK30KKworcHNhX3N0YXR1c190IHBzYV9wYWtlX3NldF91c2VyKAorICAgIHBzYV9wYWtlX29wZXJhdGlvbl90ICpvcGVyYXRpb24sCisgICAgY29uc3QgdWludDhfdCAqdXNlcl9pZF9leHRlcm5hbCwKKyAgICBzaXplX3QgdXNlcl9pZF9sZW4pCit7CisgICAgcHNhX3N0YXR1c190IHN0YXR1cyA9IFBTQV9FUlJPUl9DT1JSVVBUSU9OX0RFVEVDVEVEOworICAgIExPQ0FMX0lOUFVUX0RFQ0xBUkUodXNlcl9pZF9leHRlcm5hbCwgdXNlcl9pZCk7CisKKyAgICBpZiAob3BlcmF0aW9uLT5zdGFnZSAhPSBQU0FfUEFLRV9PUEVSQVRJT05fU1RBR0VfQ09MTEVDVF9JTlBVVFMpIHsKKyAgICAgICAgc3RhdHVzID0gUFNBX0VSUk9SX0JBRF9TVEFURTsKKyAgICAgICAgZ290byBleGl0OworICAgIH0KKworICAgIGlmICh1c2VyX2lkX2xlbiA9PSAwKSB7CisgICAgICAgIHN0YXR1cyA9IFBTQV9FUlJPUl9JTlZBTElEX0FSR1VNRU5UOworICAgICAgICBnb3RvIGV4aXQ7CisgICAgfQorCisgICAgaWYgKG9wZXJhdGlvbi0+ZGF0YS5pbnB1dHMudXNlcl9sZW4gIT0gMCkgeworICAgICAgICBzdGF0dXMgPSBQU0FfRVJST1JfQkFEX1NUQVRFOworICAgICAgICBnb3RvIGV4aXQ7CisgICAgfQorCisgICAgb3BlcmF0aW9uLT5kYXRhLmlucHV0cy51c2VyID0gbWJlZHRsc19jYWxsb2MoMSwgdXNlcl9pZF9sZW4pOworICAgIGlmIChvcGVyYXRpb24tPmRhdGEuaW5wdXRzLnVzZXIgPT0gTlVMTCkgeworICAgICAgICBzdGF0dXMgPSBQU0FfRVJST1JfSU5TVUZGSUNJRU5UX01FTU9SWTsKKyAgICAgICAgZ290byBleGl0OworICAgIH0KKworICAgIExPQ0FMX0lOUFVUX0FMTE9DKHVzZXJfaWRfZXh0ZXJuYWwsIHVzZXJfaWRfbGVuLCB1c2VyX2lkKTsKKworICAgIG1lbWNweShvcGVyYXRpb24tPmRhdGEuaW5wdXRzLnVzZXIsIHVzZXJfaWQsIHVzZXJfaWRfbGVuKTsKKyAgICBvcGVyYXRpb24tPmRhdGEuaW5wdXRzLnVzZXJfbGVuID0gdXNlcl9pZF9sZW47CisKKyAgICBzdGF0dXMgPSBQU0FfU1VDQ0VTUzsKKworZXhpdDoKKyAgICBMT0NBTF9JTlBVVF9GUkVFKHVzZXJfaWRfZXh0ZXJuYWwsIHVzZXJfaWQpOworICAgIGlmIChzdGF0dXMgIT0gUFNBX1NVQ0NFU1MpIHsKKyAgICAgICAgcHNhX3Bha2VfYWJvcnQob3BlcmF0aW9uKTsKKyAgICB9CisgICAgcmV0dXJuIHN0YXR1czsKK30KKworcHNhX3N0YXR1c190IHBzYV9wYWtlX3NldF9wZWVyKAorICAgIHBzYV9wYWtlX29wZXJhdGlvbl90ICpvcGVyYXRpb24sCisgICAgY29uc3QgdWludDhfdCAqcGVlcl9pZF9leHRlcm5hbCwKKyAgICBzaXplX3QgcGVlcl9pZF9sZW4pCit7CisgICAgcHNhX3N0YXR1c190IHN0YXR1cyA9IFBTQV9FUlJPUl9DT1JSVVBUSU9OX0RFVEVDVEVEOworICAgIExPQ0FMX0lOUFVUX0RFQ0xBUkUocGVlcl9pZF9leHRlcm5hbCwgcGVlcl9pZCk7CisKKyAgICBpZiAob3BlcmF0aW9uLT5zdGFnZSAhPSBQU0FfUEFLRV9PUEVSQVRJT05fU1RBR0VfQ09MTEVDVF9JTlBVVFMpIHsKKyAgICAgICAgc3RhdHVzID0gUFNBX0VSUk9SX0JBRF9TVEFURTsKKyAgICAgICAgZ290byBleGl0OworICAgIH0KKworICAgIGlmIChwZWVyX2lkX2xlbiA9PSAwKSB7CisgICAgICAgIHN0YXR1cyA9IFBTQV9FUlJPUl9JTlZBTElEX0FSR1VNRU5UOworICAgICAgICBnb3RvIGV4aXQ7CisgICAgfQorCisgICAgaWYgKG9wZXJhdGlvbi0+ZGF0YS5pbnB1dHMucGVlcl9sZW4gIT0gMCkgeworICAgICAgICBzdGF0dXMgPSBQU0FfRVJST1JfQkFEX1NUQVRFOworICAgICAgICBnb3RvIGV4aXQ7CisgICAgfQorCisgICAgb3BlcmF0aW9uLT5kYXRhLmlucHV0cy5wZWVyID0gbWJlZHRsc19jYWxsb2MoMSwgcGVlcl9pZF9sZW4pOworICAgIGlmIChvcGVyYXRpb24tPmRhdGEuaW5wdXRzLnBlZXIgPT0gTlVMTCkgeworICAgICAgICBzdGF0dXMgPSBQU0FfRVJST1JfSU5TVUZGSUNJRU5UX01FTU9SWTsKKyAgICAgICAgZ290byBleGl0OworICAgIH0KKworICAgIExPQ0FMX0lOUFVUX0FMTE9DKHBlZXJfaWRfZXh0ZXJuYWwsIHBlZXJfaWRfbGVuLCBwZWVyX2lkKTsKKworICAgIG1lbWNweShvcGVyYXRpb24tPmRhdGEuaW5wdXRzLnBlZXIsIHBlZXJfaWQsIHBlZXJfaWRfbGVuKTsKKyAgICBvcGVyYXRpb24tPmRhdGEuaW5wdXRzLnBlZXJfbGVuID0gcGVlcl9pZF9sZW47CisKKyAgICBzdGF0dXMgPSBQU0FfU1VDQ0VTUzsKKworZXhpdDoKKyAgICBMT0NBTF9JTlBVVF9GUkVFKHBlZXJfaWRfZXh0ZXJuYWwsIHBlZXJfaWQpOworICAgIGlmIChzdGF0dXMgIT0gUFNBX1NVQ0NFU1MpIHsKKyAgICAgICAgcHNhX3Bha2VfYWJvcnQob3BlcmF0aW9uKTsKKyAgICB9CisgICAgcmV0dXJuIHN0YXR1czsKK30KKworcHNhX3N0YXR1c190IHBzYV9wYWtlX3NldF9yb2xlKAorICAgIHBzYV9wYWtlX29wZXJhdGlvbl90ICpvcGVyYXRpb24sCisgICAgcHNhX3Bha2Vfcm9sZV90IHJvbGUpCit7CisgICAgcHNhX3N0YXR1c190IHN0YXR1cyA9IFBTQV9FUlJPUl9DT1JSVVBUSU9OX0RFVEVDVEVEOworCisgICAgaWYgKG9wZXJhdGlvbi0+c3RhZ2UgIT0gUFNBX1BBS0VfT1BFUkFUSU9OX1NUQUdFX0NPTExFQ1RfSU5QVVRTKSB7CisgICAgICAgIHN0YXR1cyA9IFBTQV9FUlJPUl9CQURfU1RBVEU7CisgICAgICAgIGdvdG8gZXhpdDsKKyAgICB9CisKKyAgICBzd2l0Y2ggKG9wZXJhdGlvbi0+YWxnKSB7CisjaWYgZGVmaW5lZChQU0FfV0FOVF9BTEdfSlBBS0UpCisgICAgICAgIGNhc2UgUFNBX0FMR19KUEFLRToKKyAgICAgICAgICAgIGlmIChyb2xlID09IFBTQV9QQUtFX1JPTEVfTk9ORSkgeworICAgICAgICAgICAgICAgIHJldHVybiBQU0FfU1VDQ0VTUzsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHN0YXR1cyA9IFBTQV9FUlJPUl9JTlZBTElEX0FSR1VNRU5UOworICAgICAgICAgICAgYnJlYWs7CisjZW5kaWYKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgICh2b2lkKSByb2xlOworICAgICAgICAgICAgc3RhdHVzID0gUFNBX0VSUk9SX05PVF9TVVBQT1JURUQ7CisgICAgICAgICAgICBnb3RvIGV4aXQ7CisgICAgfQorZXhpdDoKKyAgICBwc2FfcGFrZV9hYm9ydChvcGVyYXRpb24pOworICAgIHJldHVybiBzdGF0dXM7Cit9CisKKy8qIEF1eGlsaWFyeSBmdW5jdGlvbiB0byBjb252ZXJ0IGNvcmUgY29tcHV0YXRpb24gc3RhZ2UgdG8gc2luZ2xlIGRyaXZlciBzdGVwLiAqLworI2lmIGRlZmluZWQoUFNBX1dBTlRfQUxHX0pQQUtFKQorc3RhdGljIHBzYV9jcnlwdG9fZHJpdmVyX3Bha2Vfc3RlcF90IGNvbnZlcnRfanBha2VfY29tcHV0YXRpb25fc3RhZ2VfdG9fZHJpdmVyX3N0ZXAoCisgICAgcHNhX2pwYWtlX2NvbXB1dGF0aW9uX3N0YWdlX3QgKnN0YWdlKQoreworICAgIHBzYV9jcnlwdG9fZHJpdmVyX3Bha2Vfc3RlcF90IGtleV9zaGFyZV9zdGVwOworICAgIGlmIChzdGFnZS0+cm91bmQgPT0gUFNBX0pQQUtFX0ZJUlNUKSB7CisgICAgICAgIGludCBpc194MTsKKworICAgICAgICBpZiAoc3RhZ2UtPmlvX21vZGUgPT0gUFNBX0pQQUtFX09VVFBVVCkgeworICAgICAgICAgICAgaXNfeDEgPSAoc3RhZ2UtPm91dHB1dHMgPCAxKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGlzX3gxID0gKHN0YWdlLT5pbnB1dHMgPCAxKTsKKyAgICAgICAgfQorCisgICAgICAgIGtleV9zaGFyZV9zdGVwID0gaXNfeDEgPworICAgICAgICAgICAgICAgICAgICAgICAgIFBTQV9KUEFLRV9YMV9TVEVQX0tFWV9TSEFSRSA6CisgICAgICAgICAgICAgICAgICAgICAgICAgUFNBX0pQQUtFX1gyX1NURVBfS0VZX1NIQVJFOworICAgIH0gZWxzZSBpZiAoc3RhZ2UtPnJvdW5kID09IFBTQV9KUEFLRV9TRUNPTkQpIHsKKyAgICAgICAga2V5X3NoYXJlX3N0ZXAgPSAoc3RhZ2UtPmlvX21vZGUgPT0gUFNBX0pQQUtFX09VVFBVVCkgPworICAgICAgICAgICAgICAgICAgICAgICAgIFBTQV9KUEFLRV9YMlNfU1RFUF9LRVlfU0hBUkUgOgorICAgICAgICAgICAgICAgICAgICAgICAgIFBTQV9KUEFLRV9YNFNfU1RFUF9LRVlfU0hBUkU7CisgICAgfSBlbHNlIHsKKyAgICAgICAgcmV0dXJuIFBTQV9KUEFLRV9TVEVQX0lOVkFMSUQ7CisgICAgfQorICAgIHJldHVybiAocHNhX2NyeXB0b19kcml2ZXJfcGFrZV9zdGVwX3QpIChrZXlfc2hhcmVfc3RlcCArIHN0YWdlLT5zdGVwIC0gUFNBX1BBS0VfU1RFUF9LRVlfU0hBUkUpOworfQorI2VuZGlmIC8qIFBTQV9XQU5UX0FMR19KUEFLRSAqLworCitzdGF0aWMgcHNhX3N0YXR1c190IHBzYV9wYWtlX2NvbXBsZXRlX2lucHV0cygKKyAgICBwc2FfcGFrZV9vcGVyYXRpb25fdCAqb3BlcmF0aW9uKQoreworICAgIHBzYV9zdGF0dXNfdCBzdGF0dXMgPSBQU0FfRVJST1JfQ09SUlVQVElPTl9ERVRFQ1RFRDsKKyAgICAvKiBDcmVhdGUgY29weSBvZiB0aGUgaW5wdXRzIG9uIHN0YWNrIGFzIGlucHV0cyBzaGFyZSBtZW1vcnkKKyAgICAgICB3aXRoIHRoZSBkcml2ZXIgY29udGV4dCB3aGljaCB3aWxsIGJlIHNldHVwIGJ5IHRoZSBkcml2ZXIuICovCisgICAgcHNhX2NyeXB0b19kcml2ZXJfcGFrZV9pbnB1dHNfdCBpbnB1dHMgPSBvcGVyYXRpb24tPmRhdGEuaW5wdXRzOworCisgICAgaWYgKGlucHV0cy5wYXNzd29yZF9sZW4gPT0gMCkgeworICAgICAgICByZXR1cm4gUFNBX0VSUk9SX0JBRF9TVEFURTsKKyAgICB9CisKKyAgICBpZiAob3BlcmF0aW9uLT5hbGcgPT0gUFNBX0FMR19KUEFLRSkgeworICAgICAgICBpZiAoaW5wdXRzLnVzZXJfbGVuID09IDAgfHwgaW5wdXRzLnBlZXJfbGVuID09IDApIHsKKyAgICAgICAgICAgIHJldHVybiBQU0FfRVJST1JfQkFEX1NUQVRFOworICAgICAgICB9CisgICAgfQorCisgICAgLyogQ2xlYXIgZHJpdmVyIGNvbnRleHQgKi8KKyAgICBtYmVkdGxzX3BsYXRmb3JtX3plcm9pemUoJm9wZXJhdGlvbi0+ZGF0YSwgc2l6ZW9mKG9wZXJhdGlvbi0+ZGF0YSkpOworCisgICAgc3RhdHVzID0gcHNhX2RyaXZlcl93cmFwcGVyX3Bha2Vfc2V0dXAob3BlcmF0aW9uLCAmaW5wdXRzKTsKKworICAgIC8qIERyaXZlciBpcyByZXNwb25zaWJsZSBmb3IgY3JlYXRpbmcgaXRzIG93biBjb3B5IG9mIHRoZSBwYXNzd29yZC4gKi8KKyAgICBtYmVkdGxzX3plcm9pemVfYW5kX2ZyZWUoaW5wdXRzLnBhc3N3b3JkLCBpbnB1dHMucGFzc3dvcmRfbGVuKTsKKworICAgIC8qIFVzZXIgYW5kIHBlZXIgYXJlIHRyYW5zbGF0ZWQgdG8gcm9sZS4gKi8KKyAgICBtYmVkdGxzX2ZyZWUoaW5wdXRzLnVzZXIpOworICAgIG1iZWR0bHNfZnJlZShpbnB1dHMucGVlcik7CisKKyAgICBpZiAoc3RhdHVzID09IFBTQV9TVUNDRVNTKSB7CisjaWYgZGVmaW5lZChQU0FfV0FOVF9BTEdfSlBBS0UpCisgICAgICAgIGlmIChvcGVyYXRpb24tPmFsZyA9PSBQU0FfQUxHX0pQQUtFKSB7CisgICAgICAgICAgICBvcGVyYXRpb24tPnN0YWdlID0gUFNBX1BBS0VfT1BFUkFUSU9OX1NUQUdFX0NPTVBVVEFUSU9OOworICAgICAgICB9IGVsc2UKKyNlbmRpZiAvKiBQU0FfV0FOVF9BTEdfSlBBS0UgKi8KKyAgICAgICAgeworICAgICAgICAgICAgc3RhdHVzID0gUFNBX0VSUk9SX05PVF9TVVBQT1JURUQ7CisgICAgICAgIH0KKyAgICB9CisgICAgcmV0dXJuIHN0YXR1czsKK30KKworI2lmIGRlZmluZWQoUFNBX1dBTlRfQUxHX0pQQUtFKQorc3RhdGljIHBzYV9zdGF0dXNfdCBwc2FfanBha2VfcHJvbG9ndWUoCisgICAgcHNhX3Bha2Vfb3BlcmF0aW9uX3QgKm9wZXJhdGlvbiwKKyAgICBwc2FfcGFrZV9zdGVwX3Qgc3RlcCwKKyAgICBwc2FfanBha2VfaW9fbW9kZV90IGlvX21vZGUpCit7CisgICAgaWYgKHN0ZXAgIT0gUFNBX1BBS0VfU1RFUF9LRVlfU0hBUkUgJiYKKyAgICAgICAgc3RlcCAhPSBQU0FfUEFLRV9TVEVQX1pLX1BVQkxJQyAmJgorICAgICAgICBzdGVwICE9IFBTQV9QQUtFX1NURVBfWktfUFJPT0YpIHsKKyAgICAgICAgcmV0dXJuIFBTQV9FUlJPUl9JTlZBTElEX0FSR1VNRU5UOworICAgIH0KKworICAgIHBzYV9qcGFrZV9jb21wdXRhdGlvbl9zdGFnZV90ICpjb21wdXRhdGlvbl9zdGFnZSA9CisgICAgICAgICZvcGVyYXRpb24tPmNvbXB1dGF0aW9uX3N0YWdlLmpwYWtlOworCisgICAgaWYgKGNvbXB1dGF0aW9uX3N0YWdlLT5yb3VuZCAhPSBQU0FfSlBBS0VfRklSU1QgJiYKKyAgICAgICAgY29tcHV0YXRpb25fc3RhZ2UtPnJvdW5kICE9IFBTQV9KUEFLRV9TRUNPTkQpIHsKKyAgICAgICAgcmV0dXJuIFBTQV9FUlJPUl9CQURfU1RBVEU7CisgICAgfQorCisgICAgLyogQ2hlY2sgdGhhdCB0aGUgc3RlcCB3ZSBhcmUgZ2l2ZW4gaXMgdGhlIG9uZSB3ZSB3ZXJlIGV4cGVjdGluZyAqLworICAgIGlmIChzdGVwICE9IGNvbXB1dGF0aW9uX3N0YWdlLT5zdGVwKSB7CisgICAgICAgIHJldHVybiBQU0FfRVJST1JfQkFEX1NUQVRFOworICAgIH0KKworICAgIGlmIChzdGVwID09IFBTQV9QQUtFX1NURVBfS0VZX1NIQVJFICYmCisgICAgICAgIGNvbXB1dGF0aW9uX3N0YWdlLT5pbnB1dHMgPT0gMCAmJgorICAgICAgICBjb21wdXRhdGlvbl9zdGFnZS0+b3V0cHV0cyA9PSAwKSB7CisgICAgICAgIC8qIFN0YXJ0IG9mIHRoZSByb3VuZCwgc28gZnVuY3Rpb24gZGVjaWRlcyB3aGV0aGVyIHdlIGFyZSBpbnB1dHRpbmcKKyAgICAgICAgICogb3Igb3V0cHV0dGluZyAqLworICAgICAgICBjb21wdXRhdGlvbl9zdGFnZS0+aW9fbW9kZSA9IGlvX21vZGU7CisgICAgfSBlbHNlIGlmIChjb21wdXRhdGlvbl9zdGFnZS0+aW9fbW9kZSAhPSBpb19tb2RlKSB7CisgICAgICAgIC8qIE1pZGRsZSBvZiB0aGUgcm91bmQgc28gdGhlIG1vZGUgd2UgYXJlIGluIG11c3QgbWF0Y2ggdGhlIGZ1bmN0aW9uCisgICAgICAgICAqIGNhbGxlZCBieSB0aGUgdXNlciAqLworICAgICAgICByZXR1cm4gUFNBX0VSUk9SX0JBRF9TVEFURTsKKyAgICB9CisKKyAgICByZXR1cm4gUFNBX1NVQ0NFU1M7Cit9CisKK3N0YXRpYyBwc2Ffc3RhdHVzX3QgcHNhX2pwYWtlX2VwaWxvZ3VlKAorICAgIHBzYV9wYWtlX29wZXJhdGlvbl90ICpvcGVyYXRpb24sCisgICAgcHNhX2pwYWtlX2lvX21vZGVfdCBpb19tb2RlKQoreworICAgIHBzYV9qcGFrZV9jb21wdXRhdGlvbl9zdGFnZV90ICpzdGFnZSA9CisgICAgICAgICZvcGVyYXRpb24tPmNvbXB1dGF0aW9uX3N0YWdlLmpwYWtlOworCisgICAgaWYgKHN0YWdlLT5zdGVwID09IFBTQV9QQUtFX1NURVBfWktfUFJPT0YpIHsKKyAgICAgICAgLyogRW5kIG9mIGFuIGlucHV0L291dHB1dCAqLworICAgICAgICBpZiAoaW9fbW9kZSA9PSBQU0FfSlBBS0VfSU5QVVQpIHsKKyAgICAgICAgICAgIHN0YWdlLT5pbnB1dHMrKzsKKyAgICAgICAgICAgIGlmIChzdGFnZS0+aW5wdXRzID09IFBTQV9KUEFLRV9FWFBFQ1RFRF9JTlBVVFMoc3RhZ2UtPnJvdW5kKSkgeworICAgICAgICAgICAgICAgIHN0YWdlLT5pb19tb2RlID0gUFNBX0pQQUtFX09VVFBVVDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBpZiAoaW9fbW9kZSA9PSBQU0FfSlBBS0VfT1VUUFVUKSB7CisgICAgICAgICAgICBzdGFnZS0+b3V0cHV0cysrOworICAgICAgICAgICAgaWYgKHN0YWdlLT5vdXRwdXRzID09IFBTQV9KUEFLRV9FWFBFQ1RFRF9PVVRQVVRTKHN0YWdlLT5yb3VuZCkpIHsKKyAgICAgICAgICAgICAgICBzdGFnZS0+aW9fbW9kZSA9IFBTQV9KUEFLRV9JTlBVVDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBpZiAoc3RhZ2UtPmlucHV0cyA9PSBQU0FfSlBBS0VfRVhQRUNURURfSU5QVVRTKHN0YWdlLT5yb3VuZCkgJiYKKyAgICAgICAgICAgIHN0YWdlLT5vdXRwdXRzID09IFBTQV9KUEFLRV9FWFBFQ1RFRF9PVVRQVVRTKHN0YWdlLT5yb3VuZCkpIHsKKyAgICAgICAgICAgIC8qIEVuZCBvZiBhIHJvdW5kLCBtb3ZlIHRvIHRoZSBuZXh0IHJvdW5kICovCisgICAgICAgICAgICBzdGFnZS0+aW5wdXRzID0gMDsKKyAgICAgICAgICAgIHN0YWdlLT5vdXRwdXRzID0gMDsKKyAgICAgICAgICAgIHN0YWdlLT5yb3VuZCsrOworICAgICAgICB9CisgICAgICAgIHN0YWdlLT5zdGVwID0gUFNBX1BBS0VfU1RFUF9LRVlfU0hBUkU7CisgICAgfSBlbHNlIHsKKyAgICAgICAgc3RhZ2UtPnN0ZXArKzsKKyAgICB9CisgICAgcmV0dXJuIFBTQV9TVUNDRVNTOworfQorCisjZW5kaWYgLyogUFNBX1dBTlRfQUxHX0pQQUtFICovCisKK3BzYV9zdGF0dXNfdCBwc2FfcGFrZV9vdXRwdXQoCisgICAgcHNhX3Bha2Vfb3BlcmF0aW9uX3QgKm9wZXJhdGlvbiwKKyAgICBwc2FfcGFrZV9zdGVwX3Qgc3RlcCwKKyAgICB1aW50OF90ICpvdXRwdXRfZXh0ZXJuYWwsCisgICAgc2l6ZV90IG91dHB1dF9zaXplLAorICAgIHNpemVfdCAqb3V0cHV0X2xlbmd0aCkKK3sKKyAgICBwc2Ffc3RhdHVzX3Qgc3RhdHVzID0gUFNBX0VSUk9SX0NPUlJVUFRJT05fREVURUNURUQ7CisgICAgcHNhX2NyeXB0b19kcml2ZXJfcGFrZV9zdGVwX3QgZHJpdmVyX3N0ZXAgPSBQU0FfSlBBS0VfU1RFUF9JTlZBTElEOworICAgIExPQ0FMX09VVFBVVF9ERUNMQVJFKG91dHB1dF9leHRlcm5hbCwgb3V0cHV0KTsKKyAgICAqb3V0cHV0X2xlbmd0aCA9IDA7CisKKyAgICBpZiAob3BlcmF0aW9uLT5zdGFnZSA9PSBQU0FfUEFLRV9PUEVSQVRJT05fU1RBR0VfQ09MTEVDVF9JTlBVVFMpIHsKKyAgICAgICAgc3RhdHVzID0gcHNhX3Bha2VfY29tcGxldGVfaW5wdXRzKG9wZXJhdGlvbik7CisgICAgICAgIGlmIChzdGF0dXMgIT0gUFNBX1NVQ0NFU1MpIHsKKyAgICAgICAgICAgIGdvdG8gZXhpdDsKKyAgICAgICAgfQorICAgIH0KKworICAgIGlmIChvcGVyYXRpb24tPnN0YWdlICE9IFBTQV9QQUtFX09QRVJBVElPTl9TVEFHRV9DT01QVVRBVElPTikgeworICAgICAgICBzdGF0dXMgPSBQU0FfRVJST1JfQkFEX1NUQVRFOworICAgICAgICBnb3RvIGV4aXQ7CisgICAgfQorCisgICAgaWYgKG91dHB1dF9zaXplID09IDApIHsKKyAgICAgICAgc3RhdHVzID0gUFNBX0VSUk9SX0lOVkFMSURfQVJHVU1FTlQ7CisgICAgICAgIGdvdG8gZXhpdDsKKyAgICB9CisKKyAgICBzd2l0Y2ggKG9wZXJhdGlvbi0+YWxnKSB7CisjaWYgZGVmaW5lZChQU0FfV0FOVF9BTEdfSlBBS0UpCisgICAgICAgIGNhc2UgUFNBX0FMR19KUEFLRToKKyAgICAgICAgICAgIHN0YXR1cyA9IHBzYV9qcGFrZV9wcm9sb2d1ZShvcGVyYXRpb24sIHN0ZXAsIFBTQV9KUEFLRV9PVVRQVVQpOworICAgICAgICAgICAgaWYgKHN0YXR1cyAhPSBQU0FfU1VDQ0VTUykgeworICAgICAgICAgICAgICAgIGdvdG8gZXhpdDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGRyaXZlcl9zdGVwID0gY29udmVydF9qcGFrZV9jb21wdXRhdGlvbl9zdGFnZV90b19kcml2ZXJfc3RlcCgKKyAgICAgICAgICAgICAgICAmb3BlcmF0aW9uLT5jb21wdXRhdGlvbl9zdGFnZS5qcGFrZSk7CisgICAgICAgICAgICBicmVhazsKKyNlbmRpZiAvKiBQU0FfV0FOVF9BTEdfSlBBS0UgKi8KKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgICh2b2lkKSBzdGVwOworICAgICAgICAgICAgc3RhdHVzID0gUFNBX0VSUk9SX05PVF9TVVBQT1JURUQ7CisgICAgICAgICAgICBnb3RvIGV4aXQ7CisgICAgfQorCisgICAgTE9DQUxfT1VUUFVUX0FMTE9DKG91dHB1dF9leHRlcm5hbCwgb3V0cHV0X3NpemUsIG91dHB1dCk7CisKKyAgICBzdGF0dXMgPSBwc2FfZHJpdmVyX3dyYXBwZXJfcGFrZV9vdXRwdXQob3BlcmF0aW9uLCBkcml2ZXJfc3RlcCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3V0cHV0LCBvdXRwdXRfc2l6ZSwgb3V0cHV0X2xlbmd0aCk7CisKKyAgICBpZiAoc3RhdHVzICE9IFBTQV9TVUNDRVNTKSB7CisgICAgICAgIGdvdG8gZXhpdDsKKyAgICB9CisKKyAgICBzd2l0Y2ggKG9wZXJhdGlvbi0+YWxnKSB7CisjaWYgZGVmaW5lZChQU0FfV0FOVF9BTEdfSlBBS0UpCisgICAgICAgIGNhc2UgUFNBX0FMR19KUEFLRToKKyAgICAgICAgICAgIHN0YXR1cyA9IHBzYV9qcGFrZV9lcGlsb2d1ZShvcGVyYXRpb24sIFBTQV9KUEFLRV9PVVRQVVQpOworICAgICAgICAgICAgaWYgKHN0YXR1cyAhPSBQU0FfU1VDQ0VTUykgeworICAgICAgICAgICAgICAgIGdvdG8gZXhpdDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGJyZWFrOworI2VuZGlmIC8qIFBTQV9XQU5UX0FMR19KUEFLRSAqLworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgc3RhdHVzID0gUFNBX0VSUk9SX05PVF9TVVBQT1JURUQ7CisgICAgICAgICAgICBnb3RvIGV4aXQ7CisgICAgfQorCitleGl0OgorICAgIExPQ0FMX09VVFBVVF9GUkVFKG91dHB1dF9leHRlcm5hbCwgb3V0cHV0KTsKKyAgICBpZiAoc3RhdHVzICE9IFBTQV9TVUNDRVNTKSB7CisgICAgICAgIHBzYV9wYWtlX2Fib3J0KG9wZXJhdGlvbik7CisgICAgfQorICAgIHJldHVybiBzdGF0dXM7Cit9CisKK3BzYV9zdGF0dXNfdCBwc2FfcGFrZV9pbnB1dCgKKyAgICBwc2FfcGFrZV9vcGVyYXRpb25fdCAqb3BlcmF0aW9uLAorICAgIHBzYV9wYWtlX3N0ZXBfdCBzdGVwLAorICAgIGNvbnN0IHVpbnQ4X3QgKmlucHV0X2V4dGVybmFsLAorICAgIHNpemVfdCBpbnB1dF9sZW5ndGgpCit7CisgICAgcHNhX3N0YXR1c190IHN0YXR1cyA9IFBTQV9FUlJPUl9DT1JSVVBUSU9OX0RFVEVDVEVEOworICAgIHBzYV9jcnlwdG9fZHJpdmVyX3Bha2Vfc3RlcF90IGRyaXZlcl9zdGVwID0gUFNBX0pQQUtFX1NURVBfSU5WQUxJRDsKKyAgICBjb25zdCBzaXplX3QgbWF4X2lucHV0X2xlbmd0aCA9IChzaXplX3QpIFBTQV9QQUtFX0lOUFVUX1NJWkUob3BlcmF0aW9uLT5hbGcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wZXJhdGlvbi0+cHJpbWl0aXZlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGVwKTsKKyAgICBMT0NBTF9JTlBVVF9ERUNMQVJFKGlucHV0X2V4dGVybmFsLCBpbnB1dCk7CisKKyAgICBpZiAob3BlcmF0aW9uLT5zdGFnZSA9PSBQU0FfUEFLRV9PUEVSQVRJT05fU1RBR0VfQ09MTEVDVF9JTlBVVFMpIHsKKyAgICAgICAgc3RhdHVzID0gcHNhX3Bha2VfY29tcGxldGVfaW5wdXRzKG9wZXJhdGlvbik7CisgICAgICAgIGlmIChzdGF0dXMgIT0gUFNBX1NVQ0NFU1MpIHsKKyAgICAgICAgICAgIGdvdG8gZXhpdDsKKyAgICAgICAgfQorICAgIH0KKworICAgIGlmIChvcGVyYXRpb24tPnN0YWdlICE9IFBTQV9QQUtFX09QRVJBVElPTl9TVEFHRV9DT01QVVRBVElPTikgeworICAgICAgICBzdGF0dXMgPSAgUFNBX0VSUk9SX0JBRF9TVEFURTsKKyAgICAgICAgZ290byBleGl0OworICAgIH0KKworICAgIGlmIChpbnB1dF9sZW5ndGggPT0gMCB8fCBpbnB1dF9sZW5ndGggPiBtYXhfaW5wdXRfbGVuZ3RoKSB7CisgICAgICAgIHN0YXR1cyA9IFBTQV9FUlJPUl9JTlZBTElEX0FSR1VNRU5UOworICAgICAgICBnb3RvIGV4aXQ7CisgICAgfQorCisgICAgc3dpdGNoIChvcGVyYXRpb24tPmFsZykgeworI2lmIGRlZmluZWQoUFNBX1dBTlRfQUxHX0pQQUtFKQorICAgICAgICBjYXNlIFBTQV9BTEdfSlBBS0U6CisgICAgICAgICAgICBzdGF0dXMgPSBwc2FfanBha2VfcHJvbG9ndWUob3BlcmF0aW9uLCBzdGVwLCBQU0FfSlBBS0VfSU5QVVQpOworICAgICAgICAgICAgaWYgKHN0YXR1cyAhPSBQU0FfU1VDQ0VTUykgeworICAgICAgICAgICAgICAgIGdvdG8gZXhpdDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGRyaXZlcl9zdGVwID0gY29udmVydF9qcGFrZV9jb21wdXRhdGlvbl9zdGFnZV90b19kcml2ZXJfc3RlcCgKKyAgICAgICAgICAgICAgICAmb3BlcmF0aW9uLT5jb21wdXRhdGlvbl9zdGFnZS5qcGFrZSk7CisgICAgICAgICAgICBicmVhazsKKyNlbmRpZiAvKiBQU0FfV0FOVF9BTEdfSlBBS0UgKi8KKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgICh2b2lkKSBzdGVwOworICAgICAgICAgICAgc3RhdHVzID0gUFNBX0VSUk9SX05PVF9TVVBQT1JURUQ7CisgICAgICAgICAgICBnb3RvIGV4aXQ7CisgICAgfQorCisgICAgTE9DQUxfSU5QVVRfQUxMT0MoaW5wdXRfZXh0ZXJuYWwsIGlucHV0X2xlbmd0aCwgaW5wdXQpOworICAgIHN0YXR1cyA9IHBzYV9kcml2ZXJfd3JhcHBlcl9wYWtlX2lucHV0KG9wZXJhdGlvbiwgZHJpdmVyX3N0ZXAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5wdXQsIGlucHV0X2xlbmd0aCk7CisKKyAgICBpZiAoc3RhdHVzICE9IFBTQV9TVUNDRVNTKSB7CisgICAgICAgIGdvdG8gZXhpdDsKKyAgICB9CisKKyAgICBzd2l0Y2ggKG9wZXJhdGlvbi0+YWxnKSB7CisjaWYgZGVmaW5lZChQU0FfV0FOVF9BTEdfSlBBS0UpCisgICAgICAgIGNhc2UgUFNBX0FMR19KUEFLRToKKyAgICAgICAgICAgIHN0YXR1cyA9IHBzYV9qcGFrZV9lcGlsb2d1ZShvcGVyYXRpb24sIFBTQV9KUEFLRV9JTlBVVCk7CisgICAgICAgICAgICBpZiAoc3RhdHVzICE9IFBTQV9TVUNDRVNTKSB7CisgICAgICAgICAgICAgICAgZ290byBleGl0OworICAgICAgICAgICAgfQorICAgICAgICAgICAgYnJlYWs7CisjZW5kaWYgLyogUFNBX1dBTlRfQUxHX0pQQUtFICovCisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICBzdGF0dXMgPSBQU0FfRVJST1JfTk9UX1NVUFBPUlRFRDsKKyAgICAgICAgICAgIGdvdG8gZXhpdDsKKyAgICB9CisKK2V4aXQ6CisgICAgTE9DQUxfSU5QVVRfRlJFRShpbnB1dF9leHRlcm5hbCwgaW5wdXQpOworICAgIGlmIChzdGF0dXMgIT0gUFNBX1NVQ0NFU1MpIHsKKyAgICAgICAgcHNhX3Bha2VfYWJvcnQob3BlcmF0aW9uKTsKKyAgICB9CisgICAgcmV0dXJuIHN0YXR1czsKK30KKworcHNhX3N0YXR1c190IHBzYV9wYWtlX2dldF9pbXBsaWNpdF9rZXkoCisgICAgcHNhX3Bha2Vfb3BlcmF0aW9uX3QgKm9wZXJhdGlvbiwKKyAgICBwc2Ffa2V5X2Rlcml2YXRpb25fb3BlcmF0aW9uX3QgKm91dHB1dCkKK3sKKyAgICBwc2Ffc3RhdHVzX3Qgc3RhdHVzID0gUFNBX0VSUk9SX0NPUlJVUFRJT05fREVURUNURUQ7CisgICAgcHNhX3N0YXR1c190IGFib3J0X3N0YXR1cyA9IFBTQV9FUlJPUl9DT1JSVVBUSU9OX0RFVEVDVEVEOworICAgIHVpbnQ4X3Qgc2hhcmVkX2tleVtNQkVEVExTX1BTQV9KUEFLRV9CVUZGRVJfU0laRV07CisgICAgc2l6ZV90IHNoYXJlZF9rZXlfbGVuID0gMDsKKworICAgIGlmIChvcGVyYXRpb24tPnN0YWdlICE9IFBTQV9QQUtFX09QRVJBVElPTl9TVEFHRV9DT01QVVRBVElPTikgeworICAgICAgICBzdGF0dXMgPSBQU0FfRVJST1JfQkFEX1NUQVRFOworICAgICAgICBnb3RvIGV4aXQ7CisgICAgfQorCisjaWYgZGVmaW5lZChQU0FfV0FOVF9BTEdfSlBBS0UpCisgICAgaWYgKG9wZXJhdGlvbi0+YWxnID09IFBTQV9BTEdfSlBBS0UpIHsKKyAgICAgICAgcHNhX2pwYWtlX2NvbXB1dGF0aW9uX3N0YWdlX3QgKmNvbXB1dGF0aW9uX3N0YWdlID0KKyAgICAgICAgICAgICZvcGVyYXRpb24tPmNvbXB1dGF0aW9uX3N0YWdlLmpwYWtlOworICAgICAgICBpZiAoY29tcHV0YXRpb25fc3RhZ2UtPnJvdW5kICE9IFBTQV9KUEFLRV9GSU5JU0hFRCkgeworICAgICAgICAgICAgc3RhdHVzID0gUFNBX0VSUk9SX0JBRF9TVEFURTsKKyAgICAgICAgICAgIGdvdG8gZXhpdDsKKyAgICAgICAgfQorICAgIH0gZWxzZQorI2VuZGlmIC8qIFBTQV9XQU5UX0FMR19KUEFLRSAqLworICAgIHsKKyAgICAgICAgc3RhdHVzID0gUFNBX0VSUk9SX05PVF9TVVBQT1JURUQ7CisgICAgICAgIGdvdG8gZXhpdDsKKyAgICB9CisKKyAgICBzdGF0dXMgPSBwc2FfZHJpdmVyX3dyYXBwZXJfcGFrZV9nZXRfaW1wbGljaXRfa2V5KG9wZXJhdGlvbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNoYXJlZF9rZXksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplb2Yoc2hhcmVkX2tleSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmc2hhcmVkX2tleV9sZW4pOworCisgICAgaWYgKHN0YXR1cyAhPSBQU0FfU1VDQ0VTUykgeworICAgICAgICBnb3RvIGV4aXQ7CisgICAgfQorCisgICAgc3RhdHVzID0gcHNhX2tleV9kZXJpdmF0aW9uX2lucHV0X2J5dGVzKG91dHB1dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUFNBX0tFWV9ERVJJVkFUSU9OX0lOUFVUX1NFQ1JFVCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2hhcmVkX2tleSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2hhcmVkX2tleV9sZW4pOworCisgICAgbWJlZHRsc19wbGF0Zm9ybV96ZXJvaXplKHNoYXJlZF9rZXksIHNpemVvZihzaGFyZWRfa2V5KSk7CitleGl0OgorICAgIGFib3J0X3N0YXR1cyA9IHBzYV9wYWtlX2Fib3J0KG9wZXJhdGlvbik7CisgICAgcmV0dXJuIHN0YXR1cyA9PSBQU0FfU1VDQ0VTUyA/IGFib3J0X3N0YXR1cyA6IHN0YXR1czsKK30KKworcHNhX3N0YXR1c190IHBzYV9wYWtlX2Fib3J0KAorICAgIHBzYV9wYWtlX29wZXJhdGlvbl90ICpvcGVyYXRpb24pCit7CisgICAgcHNhX3N0YXR1c190IHN0YXR1cyA9IFBTQV9TVUNDRVNTOworCisgICAgaWYgKG9wZXJhdGlvbi0+c3RhZ2UgPT0gUFNBX1BBS0VfT1BFUkFUSU9OX1NUQUdFX0NPTVBVVEFUSU9OKSB7CisgICAgICAgIHN0YXR1cyA9IHBzYV9kcml2ZXJfd3JhcHBlcl9wYWtlX2Fib3J0KG9wZXJhdGlvbik7CisgICAgfQorCisgICAgaWYgKG9wZXJhdGlvbi0+c3RhZ2UgPT0gUFNBX1BBS0VfT1BFUkFUSU9OX1NUQUdFX0NPTExFQ1RfSU5QVVRTKSB7CisgICAgICAgIGlmIChvcGVyYXRpb24tPmRhdGEuaW5wdXRzLnBhc3N3b3JkICE9IE5VTEwpIHsKKyAgICAgICAgICAgIG1iZWR0bHNfemVyb2l6ZV9hbmRfZnJlZShvcGVyYXRpb24tPmRhdGEuaW5wdXRzLnBhc3N3b3JkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wZXJhdGlvbi0+ZGF0YS5pbnB1dHMucGFzc3dvcmRfbGVuKTsKKyAgICAgICAgfQorICAgICAgICBpZiAob3BlcmF0aW9uLT5kYXRhLmlucHV0cy51c2VyICE9IE5VTEwpIHsKKyAgICAgICAgICAgIG1iZWR0bHNfZnJlZShvcGVyYXRpb24tPmRhdGEuaW5wdXRzLnVzZXIpOworICAgICAgICB9CisgICAgICAgIGlmIChvcGVyYXRpb24tPmRhdGEuaW5wdXRzLnBlZXIgIT0gTlVMTCkgeworICAgICAgICAgICAgbWJlZHRsc19mcmVlKG9wZXJhdGlvbi0+ZGF0YS5pbnB1dHMucGVlcik7CisgICAgICAgIH0KKyAgICB9CisgICAgbWVtc2V0KG9wZXJhdGlvbiwgMCwgc2l6ZW9mKHBzYV9wYWtlX29wZXJhdGlvbl90KSk7CisKKyAgICByZXR1cm4gc3RhdHVzOworfQorI2VuZGlmIC8qIFBTQV9XQU5UX0FMR19TT01FX1BBS0UgKi8KKworLyogTWVtb3J5IGNvcHlpbmcgdGVzdCBob29rcy4gVGhlc2UgYXJlIGNhbGxlZCBiZWZvcmUgaW5wdXQgY29weSwgYWZ0ZXIgaW5wdXQKKyAqIGNvcHksIGJlZm9yZSBvdXRwdXQgY29weSBhbmQgYWZ0ZXIgb3V0cHV0IGNvcHksIHJlc3BlY3RpdmVseS4KKyAqIFRoZXkgYXJlIHVzZWQgYnkgbWVtb3J5LXBvaXNvbmluZyB0ZXN0cyB0byB0ZW1wb3JhcmlseSB1bnBvaXNvbiBidWZmZXJzCisgKiB3aGlsZSB0aGV5IGFyZSBjb3BpZWQuICovCisjaWYgZGVmaW5lZChNQkVEVExTX1RFU1RfSE9PS1MpCit2b2lkICgqcHNhX2lucHV0X3ByZV9jb3B5X2hvb2spKGNvbnN0IHVpbnQ4X3QgKmlucHV0LCBzaXplX3QgaW5wdXRfbGVuKSA9IE5VTEw7Cit2b2lkICgqcHNhX2lucHV0X3Bvc3RfY29weV9ob29rKShjb25zdCB1aW50OF90ICppbnB1dCwgc2l6ZV90IGlucHV0X2xlbikgPSBOVUxMOwordm9pZCAoKnBzYV9vdXRwdXRfcHJlX2NvcHlfaG9vaykoY29uc3QgdWludDhfdCAqb3V0cHV0LCBzaXplX3Qgb3V0cHV0X2xlbikgPSBOVUxMOwordm9pZCAoKnBzYV9vdXRwdXRfcG9zdF9jb3B5X2hvb2spKGNvbnN0IHVpbnQ4X3QgKm91dHB1dCwgc2l6ZV90IG91dHB1dF9sZW4pID0gTlVMTDsKKyNlbmRpZgorCisvKiogQ29weSBmcm9tIGFuIGlucHV0IGJ1ZmZlciB0byBhIGxvY2FsIGNvcHkuCisgKgorICogXHBhcmFtW2luXSBpbnB1dCAgICAgICAgICAgICBQb2ludGVyIHRvIGlucHV0IGJ1ZmZlci4KKyAqIFxwYXJhbVtpbl0gaW5wdXRfbGVuICAgICAgICAgTGVuZ3RoIG9mIHRoZSBpbnB1dCBidWZmZXIuCisgKiBccGFyYW1bb3V0XSBpbnB1dF9jb3B5ICAgICAgIFBvaW50ZXIgdG8gYSBsb2NhbCBjb3B5IGluIHdoaWNoIHRvIHN0b3JlIHRoZSBpbnB1dCBkYXRhLgorICogXHBhcmFtW291dF0gaW5wdXRfY29weV9sZW4gICBMZW5ndGggb2YgdGhlIGxvY2FsIGNvcHkgYnVmZmVyLgorICogXHJldHVybiAgICAgICAgICAgICAgICAgICAgICAjUFNBX1NVQ0NFU1MsIGlmIHRoZSBidWZmZXIgd2FzIHN1Y2Nlc3NmdWxseQorICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb3BpZWQuCisgKiBccmV0dXJuICAgICAgICAgICAgICAgICAgICAgICNQU0FfRVJST1JfQ09SUlVQVElPTl9ERVRFQ1RFRCwgaWYgdGhlIGxvY2FsCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvcHkgaXMgdG9vIHNtYWxsIHRvIGhvbGQgY29udGVudHMgb2YgdGhlCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlucHV0IGJ1ZmZlci4KKyAqLworTUJFRFRMU19TVEFUSUNfVEVTVEFCTEUKK3BzYV9zdGF0dXNfdCBwc2FfY3J5cHRvX2NvcHlfaW5wdXQoY29uc3QgdWludDhfdCAqaW5wdXQsIHNpemVfdCBpbnB1dF9sZW4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQ4X3QgKmlucHV0X2NvcHksIHNpemVfdCBpbnB1dF9jb3B5X2xlbikKK3sKKyAgICBpZiAoaW5wdXRfbGVuID4gaW5wdXRfY29weV9sZW4pIHsKKyAgICAgICAgcmV0dXJuIFBTQV9FUlJPUl9DT1JSVVBUSU9OX0RFVEVDVEVEOworICAgIH0KKworI2lmIGRlZmluZWQoTUJFRFRMU19URVNUX0hPT0tTKQorICAgIGlmIChwc2FfaW5wdXRfcHJlX2NvcHlfaG9vayAhPSBOVUxMKSB7CisgICAgICAgIHBzYV9pbnB1dF9wcmVfY29weV9ob29rKGlucHV0LCBpbnB1dF9sZW4pOworICAgIH0KKyNlbmRpZgorCisgICAgaWYgKGlucHV0X2xlbiA+IDApIHsKKyAgICAgICAgbWVtY3B5KGlucHV0X2NvcHksIGlucHV0LCBpbnB1dF9sZW4pOworICAgIH0KKworI2lmIGRlZmluZWQoTUJFRFRMU19URVNUX0hPT0tTKQorICAgIGlmIChwc2FfaW5wdXRfcG9zdF9jb3B5X2hvb2sgIT0gTlVMTCkgeworICAgICAgICBwc2FfaW5wdXRfcG9zdF9jb3B5X2hvb2soaW5wdXQsIGlucHV0X2xlbik7CisgICAgfQorI2VuZGlmCisKKyAgICByZXR1cm4gUFNBX1NVQ0NFU1M7Cit9CisKKy8qKiBDb3B5IGZyb20gYSBsb2NhbCBvdXRwdXQgYnVmZmVyIGludG8gYSB1c2VyLXN1cHBsaWVkIG9uZS4KKyAqCisgKiBccGFyYW1baW5dIG91dHB1dF9jb3B5ICAgICAgIFBvaW50ZXIgdG8gYSBsb2NhbCBidWZmZXIgY29udGFpbmluZyB0aGUgb3V0cHV0LgorICogXHBhcmFtW2luXSBvdXRwdXRfY29weV9sZW4gICBMZW5ndGggb2YgdGhlIGxvY2FsIGJ1ZmZlci4KKyAqIFxwYXJhbVtvdXRdIG91dHB1dCAgICAgICAgICAgUG9pbnRlciB0byB1c2VyLXN1cHBsaWVkIG91dHB1dCBidWZmZXIuCisgKiBccGFyYW1bb3V0XSBvdXRwdXRfbGVuICAgICAgIExlbmd0aCBvZiB0aGUgdXNlci1zdXBwbGllZCBvdXRwdXQgYnVmZmVyLgorICogXHJldHVybiAgICAgICAgICAgICAgICAgICAgICAjUFNBX1NVQ0NFU1MsIGlmIHRoZSBidWZmZXIgd2FzIHN1Y2Nlc3NmdWxseQorICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb3BpZWQuCisgKiBccmV0dXJuICAgICAgICAgICAgICAgICAgICAgICNQU0FfRVJST1JfQlVGRkVSX1RPT19TTUFMTCwgaWYgdGhlCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVzZXItc3VwcGxpZWQgb3V0cHV0IGJ1ZmZlciBpcyB0b28gc21hbGwgdG8KKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaG9sZCB0aGUgY29udGVudHMgb2YgdGhlIGxvY2FsIGJ1ZmZlci4KKyAqLworTUJFRFRMU19TVEFUSUNfVEVTVEFCTEUKK3BzYV9zdGF0dXNfdCBwc2FfY3J5cHRvX2NvcHlfb3V0cHV0KGNvbnN0IHVpbnQ4X3QgKm91dHB1dF9jb3B5LCBzaXplX3Qgb3V0cHV0X2NvcHlfbGVuLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDhfdCAqb3V0cHV0LCBzaXplX3Qgb3V0cHV0X2xlbikKK3sKKyAgICBpZiAob3V0cHV0X2xlbiA8IG91dHB1dF9jb3B5X2xlbikgeworICAgICAgICByZXR1cm4gUFNBX0VSUk9SX0JVRkZFUl9UT09fU01BTEw7CisgICAgfQorCisjaWYgZGVmaW5lZChNQkVEVExTX1RFU1RfSE9PS1MpCisgICAgaWYgKHBzYV9vdXRwdXRfcHJlX2NvcHlfaG9vayAhPSBOVUxMKSB7CisgICAgICAgIHBzYV9vdXRwdXRfcHJlX2NvcHlfaG9vayhvdXRwdXQsIG91dHB1dF9sZW4pOworICAgIH0KKyNlbmRpZgorCisgICAgaWYgKG91dHB1dF9jb3B5X2xlbiA+IDApIHsKKyAgICAgICAgbWVtY3B5KG91dHB1dCwgb3V0cHV0X2NvcHksIG91dHB1dF9jb3B5X2xlbik7CisgICAgfQorCisjaWYgZGVmaW5lZChNQkVEVExTX1RFU1RfSE9PS1MpCisgICAgaWYgKHBzYV9vdXRwdXRfcG9zdF9jb3B5X2hvb2sgIT0gTlVMTCkgeworICAgICAgICBwc2Ffb3V0cHV0X3Bvc3RfY29weV9ob29rKG91dHB1dCwgb3V0cHV0X2xlbik7CisgICAgfQorI2VuZGlmCisKKyAgICByZXR1cm4gUFNBX1NVQ0NFU1M7Cit9CisKK3BzYV9zdGF0dXNfdCBwc2FfY3J5cHRvX2xvY2FsX2lucHV0X2FsbG9jKGNvbnN0IHVpbnQ4X3QgKmlucHV0LCBzaXplX3QgaW5wdXRfbGVuLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHNhX2NyeXB0b19sb2NhbF9pbnB1dF90ICpsb2NhbF9pbnB1dCkKK3sKKyAgICBwc2Ffc3RhdHVzX3Qgc3RhdHVzOworCisgICAgKmxvY2FsX2lucHV0ID0gUFNBX0NSWVBUT19MT0NBTF9JTlBVVF9JTklUOworCisgICAgaWYgKGlucHV0X2xlbiA9PSAwKSB7CisgICAgICAgIHJldHVybiBQU0FfU1VDQ0VTUzsKKyAgICB9CisKKyAgICBsb2NhbF9pbnB1dC0+YnVmZmVyID0gbWJlZHRsc19jYWxsb2MoaW5wdXRfbGVuLCAxKTsKKyAgICBpZiAobG9jYWxfaW5wdXQtPmJ1ZmZlciA9PSBOVUxMKSB7CisgICAgICAgIC8qIFNpbmNlIHdlIGRlYWx0IHdpdGggdGhlIHplcm8tbGVuZ3RoIGNhc2UgYWJvdmUsIHdlIGtub3cgdGhhdAorICAgICAgICAgKiBhIE5VTEwgcmV0dXJuIHZhbHVlIG1lYW5zIGEgZmFpbHVyZSBvZiBhbGxvY2F0aW9uLiAqLworICAgICAgICByZXR1cm4gUFNBX0VSUk9SX0lOU1VGRklDSUVOVF9NRU1PUlk7CisgICAgfQorICAgIC8qIEZyb20gbm93IG9uLCB3ZSBtdXN0IGZyZWUgbG9jYWxfaW5wdXQtPmJ1ZmZlciBvbiBlcnJvci4gKi8KKworICAgIGxvY2FsX2lucHV0LT5sZW5ndGggPSBpbnB1dF9sZW47CisKKyAgICBzdGF0dXMgPSBwc2FfY3J5cHRvX2NvcHlfaW5wdXQoaW5wdXQsIGlucHV0X2xlbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9jYWxfaW5wdXQtPmJ1ZmZlciwgbG9jYWxfaW5wdXQtPmxlbmd0aCk7CisgICAgaWYgKHN0YXR1cyAhPSBQU0FfU1VDQ0VTUykgeworICAgICAgICBnb3RvIGVycm9yOworICAgIH0KKworICAgIHJldHVybiBQU0FfU1VDQ0VTUzsKKworZXJyb3I6CisgICAgbWJlZHRsc19mcmVlKGxvY2FsX2lucHV0LT5idWZmZXIpOworICAgIGxvY2FsX2lucHV0LT5idWZmZXIgPSBOVUxMOworICAgIGxvY2FsX2lucHV0LT5sZW5ndGggPSAwOworICAgIHJldHVybiBzdGF0dXM7Cit9CisKK3ZvaWQgcHNhX2NyeXB0b19sb2NhbF9pbnB1dF9mcmVlKHBzYV9jcnlwdG9fbG9jYWxfaW5wdXRfdCAqbG9jYWxfaW5wdXQpCit7CisgICAgbWJlZHRsc19mcmVlKGxvY2FsX2lucHV0LT5idWZmZXIpOworICAgIGxvY2FsX2lucHV0LT5idWZmZXIgPSBOVUxMOworICAgIGxvY2FsX2lucHV0LT5sZW5ndGggPSAwOworfQorCitwc2Ffc3RhdHVzX3QgcHNhX2NyeXB0b19sb2NhbF9vdXRwdXRfYWxsb2ModWludDhfdCAqb3V0cHV0LCBzaXplX3Qgb3V0cHV0X2xlbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwc2FfY3J5cHRvX2xvY2FsX291dHB1dF90ICpsb2NhbF9vdXRwdXQpCit7CisgICAgKmxvY2FsX291dHB1dCA9IFBTQV9DUllQVE9fTE9DQUxfT1VUUFVUX0lOSVQ7CisKKyAgICBpZiAob3V0cHV0X2xlbiA9PSAwKSB7CisgICAgICAgIHJldHVybiBQU0FfU1VDQ0VTUzsKKyAgICB9CisgICAgbG9jYWxfb3V0cHV0LT5idWZmZXIgPSBtYmVkdGxzX2NhbGxvYyhvdXRwdXRfbGVuLCAxKTsKKyAgICBpZiAobG9jYWxfb3V0cHV0LT5idWZmZXIgPT0gTlVMTCkgeworICAgICAgICAvKiBTaW5jZSB3ZSBkZWFsdCB3aXRoIHRoZSB6ZXJvLWxlbmd0aCBjYXNlIGFib3ZlLCB3ZSBrbm93IHRoYXQKKyAgICAgICAgICogYSBOVUxMIHJldHVybiB2YWx1ZSBtZWFucyBhIGZhaWx1cmUgb2YgYWxsb2NhdGlvbi4gKi8KKyAgICAgICAgcmV0dXJuIFBTQV9FUlJPUl9JTlNVRkZJQ0lFTlRfTUVNT1JZOworICAgIH0KKyAgICBsb2NhbF9vdXRwdXQtPmxlbmd0aCA9IG91dHB1dF9sZW47CisgICAgbG9jYWxfb3V0cHV0LT5vcmlnaW5hbCA9IG91dHB1dDsKKworICAgIHJldHVybiBQU0FfU1VDQ0VTUzsKK30KKworcHNhX3N0YXR1c190IHBzYV9jcnlwdG9fbG9jYWxfb3V0cHV0X2ZyZWUocHNhX2NyeXB0b19sb2NhbF9vdXRwdXRfdCAqbG9jYWxfb3V0cHV0KQoreworICAgIHBzYV9zdGF0dXNfdCBzdGF0dXM7CisKKyAgICBpZiAobG9jYWxfb3V0cHV0LT5idWZmZXIgPT0gTlVMTCkgeworICAgICAgICBsb2NhbF9vdXRwdXQtPmxlbmd0aCA9IDA7CisgICAgICAgIHJldHVybiBQU0FfU1VDQ0VTUzsKKyAgICB9CisgICAgaWYgKGxvY2FsX291dHB1dC0+b3JpZ2luYWwgPT0gTlVMTCkgeworICAgICAgICAvKiBXZSBoYXZlIGFuIGludGVybmFsIGNvcHkgYnV0IG5vdGhpbmcgdG8gY29weSBiYWNrIHRvLiAqLworICAgICAgICByZXR1cm4gUFNBX0VSUk9SX0NPUlJVUFRJT05fREVURUNURUQ7CisgICAgfQorCisgICAgc3RhdHVzID0gcHNhX2NyeXB0b19jb3B5X291dHB1dChsb2NhbF9vdXRwdXQtPmJ1ZmZlciwgbG9jYWxfb3V0cHV0LT5sZW5ndGgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2NhbF9vdXRwdXQtPm9yaWdpbmFsLCBsb2NhbF9vdXRwdXQtPmxlbmd0aCk7CisgICAgaWYgKHN0YXR1cyAhPSBQU0FfU1VDQ0VTUykgeworICAgICAgICByZXR1cm4gc3RhdHVzOworICAgIH0KKworICAgIG1iZWR0bHNfZnJlZShsb2NhbF9vdXRwdXQtPmJ1ZmZlcik7CisgICAgbG9jYWxfb3V0cHV0LT5idWZmZXIgPSBOVUxMOworICAgIGxvY2FsX291dHB1dC0+bGVuZ3RoID0gMDsKKworICAgIHJldHVybiBQU0FfU1VDQ0VTUzsKK30KKworI2VuZGlmIC8qIE1CRURUTFNfUFNBX0NSWVBUT19DICovCmRpZmYgLS1naXQgYS9saWJyYXJ5L3BzYV9jcnlwdG9fYWVhZC5jIGIvdGYtcHNhLWNyeXB0by9jb3JlL3BzYV9jcnlwdG9fYWVhZC5jCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBsaWJyYXJ5L3BzYV9jcnlwdG9fYWVhZC5jCnJlbmFtZSB0byB0Zi1wc2EtY3J5cHRvL2NvcmUvcHNhX2NyeXB0b19hZWFkLmMKZGlmZiAtLWdpdCBhL2xpYnJhcnkvcHNhX2NyeXB0b19hZWFkLmggYi90Zi1wc2EtY3J5cHRvL2NvcmUvcHNhX2NyeXB0b19hZWFkLmgKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIGxpYnJhcnkvcHNhX2NyeXB0b19hZWFkLmgKcmVuYW1lIHRvIHRmLXBzYS1jcnlwdG8vY29yZS9wc2FfY3J5cHRvX2FlYWQuaApkaWZmIC0tZ2l0IGEvdGYtcHNhLWNyeXB0by9jb3JlL3BzYV9jcnlwdG9fY2lwaGVyLmMgYi90Zi1wc2EtY3J5cHRvL2NvcmUvcHNhX2NyeXB0b19jaXBoZXIuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zMjE2Yzk0Ci0tLSAvZGV2L251bGwKKysrIGIvdGYtcHNhLWNyeXB0by9jb3JlL3BzYV9jcnlwdG9fY2lwaGVyLmMKQEAgLTAsMCArMSw3MjQgQEAKKy8qCisgKiAgUFNBIGNpcGhlciBkcml2ZXIgZW50cnkgcG9pbnRzCisgKi8KKy8qCisgKiAgQ29weXJpZ2h0IFRoZSBNYmVkIFRMUyBDb250cmlidXRvcnMKKyAqICBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMCBPUiBHUEwtMi4wLW9yLWxhdGVyCisgKi8KKworI2luY2x1ZGUgImNvbW1vbi5oIgorCisjaWYgZGVmaW5lZChNQkVEVExTX1BTQV9DUllQVE9fQykKKworI2luY2x1ZGUgInBzYV9jcnlwdG9fY2lwaGVyLmgiCisjaW5jbHVkZSAicHNhX2NyeXB0b19jb3JlLmgiCisjaW5jbHVkZSAicHNhX2NyeXB0b19yYW5kb21faW1wbC5oIgorCisjaW5jbHVkZSAibWJlZHRscy9jaXBoZXIuaCIKKyNpbmNsdWRlICJtYmVkdGxzL2Vycm9yLmgiCisKKyNpbmNsdWRlIDxzdHJpbmcuaD4KKworLyogbWJlZHRsc19jaXBoZXJfdmFsdWVzX2Zyb21fcHNhKCkgYmVsb3cgb25seSBjaGVja3MgaWYgdGhlIHByb3BlciBidWlsZCBzeW1ib2xzCisgKiBhcmUgZW5hYmxlZCwgYnV0IGl0IGRvZXMgbm90IHByb3ZpZGUgYW55IGNvbXBhdGliaWxpdHkgY2hlY2sgYmV0d2VlbiB0aGVtCisgKiAoaS5lLiBpZiB0aGUgc3BlY2lmaWVkIGtleSB3b3JrcyB3aXRoIHRoZSBzcGVjaWZpZWQgYWxnb3JpdGhtKS4gVGhpcyBoZWxwZXIKKyAqIGZ1bmN0aW9uIGlzIG1lYW50IHRvIHByb3ZpZGUgdGhpcyBzdXBwb3J0LgorICogbWJlZHRsc19jaXBoZXJfaW5mb19mcm9tX3BzYSgpIG1pZ2h0IGJlIHVzZWQgZm9yIHRoZSBzYW1lIHB1cnBvc2UsIGJ1dCBpdAorICogcmVxdWlyZXMgQ0lQSEVSX0MgdG8gYmUgZW5hYmxlZC4KKyAqLworc3RhdGljIHBzYV9zdGF0dXNfdCBtYmVkdGxzX2NpcGhlcl92YWxpZGF0ZV92YWx1ZXMoCisgICAgcHNhX2FsZ29yaXRobV90IGFsZywKKyAgICBwc2Ffa2V5X3R5cGVfdCBrZXlfdHlwZSkKK3sKKyAgICAvKiBSZWR1Y2UgY29kZSBzaXplIC0gaGludGluZyB0byB0aGUgY29tcGlsZXIgYWJvdXQgd2hhdCBpdCBjYW4gYXNzdW1lIGFsbG93cyB0aGUgY29tcGlsZXIgdG8KKyAgICAgICBlbGltaW5hdGUgYml0cyBvZiB0aGUgbG9naWMgYmVsb3cuICovCisjaWYgIWRlZmluZWQoUFNBX1dBTlRfS0VZX1RZUEVfQUVTKQorICAgIE1CRURUTFNfQVNTVU1FKGtleV90eXBlICE9IFBTQV9LRVlfVFlQRV9BRVMpOworI2VuZGlmCisjaWYgIWRlZmluZWQoUFNBX1dBTlRfS0VZX1RZUEVfQVJJQSkKKyAgICBNQkVEVExTX0FTU1VNRShrZXlfdHlwZSAhPSBQU0FfS0VZX1RZUEVfQVJJQSk7CisjZW5kaWYKKyNpZiAhZGVmaW5lZChQU0FfV0FOVF9LRVlfVFlQRV9DQU1FTExJQSkKKyAgICBNQkVEVExTX0FTU1VNRShrZXlfdHlwZSAhPSBQU0FfS0VZX1RZUEVfQ0FNRUxMSUEpOworI2VuZGlmCisjaWYgIWRlZmluZWQoUFNBX1dBTlRfS0VZX1RZUEVfQ0hBQ0hBMjApCisgICAgTUJFRFRMU19BU1NVTUUoa2V5X3R5cGUgIT0gUFNBX0tFWV9UWVBFX0NIQUNIQTIwKTsKKyNlbmRpZgorI2lmICFkZWZpbmVkKFBTQV9XQU5UX0tFWV9UWVBFX0RFUykKKyAgICBNQkVEVExTX0FTU1VNRShrZXlfdHlwZSAhPSBQU0FfS0VZX1RZUEVfREVTKTsKKyNlbmRpZgorI2lmICFkZWZpbmVkKFBTQV9XQU5UX0FMR19DQ00pCisgICAgTUJFRFRMU19BU1NVTUUoYWxnICE9IFBTQV9BTEdfQUVBRF9XSVRIX1NIT1JURU5FRF9UQUcoUFNBX0FMR19DQ00sIDApKTsKKyNlbmRpZgorI2lmICFkZWZpbmVkKFBTQV9XQU5UX0FMR19HQ00pCisgICAgTUJFRFRMU19BU1NVTUUoYWxnICE9IFBTQV9BTEdfQUVBRF9XSVRIX1NIT1JURU5FRF9UQUcoUFNBX0FMR19HQ00sIDApKTsKKyNlbmRpZgorI2lmICFkZWZpbmVkKFBTQV9XQU5UX0FMR19TVFJFQU1fQ0lQSEVSKQorICAgIE1CRURUTFNfQVNTVU1FKGFsZyAhPSBQU0FfQUxHX1NUUkVBTV9DSVBIRVIpOworI2VuZGlmCisjaWYgIWRlZmluZWQoUFNBX1dBTlRfQUxHX0NIQUNIQTIwX1BPTFkxMzA1KQorICAgIE1CRURUTFNfQVNTVU1FKGFsZyAhPSBQU0FfQUxHX0FFQURfV0lUSF9TSE9SVEVORURfVEFHKFBTQV9BTEdfQ0hBQ0hBMjBfUE9MWTEzMDUsIDApKTsKKyNlbmRpZgorI2lmICFkZWZpbmVkKFBTQV9XQU5UX0FMR19DQ01fU1RBUl9OT19UQUcpCisgICAgTUJFRFRMU19BU1NVTUUoYWxnICE9IFBTQV9BTEdfQ0NNX1NUQVJfTk9fVEFHKTsKKyNlbmRpZgorI2lmICFkZWZpbmVkKFBTQV9XQU5UX0FMR19DVFIpCisgICAgTUJFRFRMU19BU1NVTUUoYWxnICE9IFBTQV9BTEdfQ1RSKTsKKyNlbmRpZgorI2lmICFkZWZpbmVkKFBTQV9XQU5UX0FMR19DRkIpCisgICAgTUJFRFRMU19BU1NVTUUoYWxnICE9IFBTQV9BTEdfQ0ZCKTsKKyNlbmRpZgorI2lmICFkZWZpbmVkKFBTQV9XQU5UX0FMR19PRkIpCisgICAgTUJFRFRMU19BU1NVTUUoYWxnICE9IFBTQV9BTEdfT0ZCKTsKKyNlbmRpZgorI2lmICFkZWZpbmVkKFBTQV9XQU5UX0FMR19YVFMpCisgICAgTUJFRFRMU19BU1NVTUUoYWxnICE9IFBTQV9BTEdfWFRTKTsKKyNlbmRpZgorI2lmICFkZWZpbmVkKFBTQV9XQU5UX0FMR19FQ0JfTk9fUEFERElORykKKyAgICBNQkVEVExTX0FTU1VNRShhbGcgIT0gUFNBX0FMR19FQ0JfTk9fUEFERElORyk7CisjZW5kaWYKKyNpZiAhZGVmaW5lZChQU0FfV0FOVF9BTEdfQ0JDX05PX1BBRERJTkcpCisgICAgTUJFRFRMU19BU1NVTUUoYWxnICE9IFBTQV9BTEdfQ0JDX05PX1BBRERJTkcpOworI2VuZGlmCisjaWYgIWRlZmluZWQoUFNBX1dBTlRfQUxHX0NCQ19QS0NTNykKKyAgICBNQkVEVExTX0FTU1VNRShhbGcgIT0gUFNBX0FMR19DQkNfUEtDUzcpOworI2VuZGlmCisjaWYgIWRlZmluZWQoUFNBX1dBTlRfQUxHX0NNQUMpCisgICAgTUJFRFRMU19BU1NVTUUoYWxnICE9IFBTQV9BTEdfQ01BQyk7CisjZW5kaWYKKworICAgIGlmIChhbGcgPT0gUFNBX0FMR19TVFJFQU1fQ0lQSEVSIHx8CisgICAgICAgIGFsZyA9PSBQU0FfQUxHX0FFQURfV0lUSF9TSE9SVEVORURfVEFHKFBTQV9BTEdfQ0hBQ0hBMjBfUE9MWTEzMDUsIDApKSB7CisgICAgICAgIGlmIChrZXlfdHlwZSA9PSBQU0FfS0VZX1RZUEVfQ0hBQ0hBMjApIHsKKyAgICAgICAgICAgIHJldHVybiBQU0FfU1VDQ0VTUzsKKyAgICAgICAgfQorICAgIH0KKworICAgIGlmIChhbGcgPT0gUFNBX0FMR19BRUFEX1dJVEhfU0hPUlRFTkVEX1RBRyhQU0FfQUxHX0NDTSwgMCkgfHwKKyAgICAgICAgYWxnID09IFBTQV9BTEdfQUVBRF9XSVRIX1NIT1JURU5FRF9UQUcoUFNBX0FMR19HQ00sIDApIHx8CisgICAgICAgIGFsZyA9PSBQU0FfQUxHX0NDTV9TVEFSX05PX1RBRykgeworICAgICAgICBpZiAoa2V5X3R5cGUgPT0gUFNBX0tFWV9UWVBFX0FFUyB8fAorICAgICAgICAgICAga2V5X3R5cGUgPT0gUFNBX0tFWV9UWVBFX0FSSUEgfHwKKyAgICAgICAgICAgIGtleV90eXBlID09IFBTQV9LRVlfVFlQRV9DQU1FTExJQSkgeworICAgICAgICAgICAgcmV0dXJuIFBTQV9TVUNDRVNTOworICAgICAgICB9CisgICAgfQorCisgICAgaWYgKGFsZyA9PSBQU0FfQUxHX0NUUiB8fAorICAgICAgICBhbGcgPT0gUFNBX0FMR19DRkIgfHwKKyAgICAgICAgYWxnID09IFBTQV9BTEdfT0ZCIHx8CisgICAgICAgIGFsZyA9PSBQU0FfQUxHX1hUUyB8fAorICAgICAgICBhbGcgPT0gUFNBX0FMR19FQ0JfTk9fUEFERElORyB8fAorICAgICAgICBhbGcgPT0gUFNBX0FMR19DQkNfTk9fUEFERElORyB8fAorICAgICAgICBhbGcgPT0gUFNBX0FMR19DQkNfUEtDUzcgfHwKKyAgICAgICAgYWxnID09IFBTQV9BTEdfQ01BQykgeworICAgICAgICBpZiAoa2V5X3R5cGUgPT0gUFNBX0tFWV9UWVBFX0FFUyB8fAorICAgICAgICAgICAga2V5X3R5cGUgPT0gUFNBX0tFWV9UWVBFX0FSSUEgfHwKKyAgICAgICAgICAgIGtleV90eXBlID09IFBTQV9LRVlfVFlQRV9ERVMgfHwKKyAgICAgICAgICAgIGtleV90eXBlID09IFBTQV9LRVlfVFlQRV9DQU1FTExJQSkgeworICAgICAgICAgICAgcmV0dXJuIFBTQV9TVUNDRVNTOworICAgICAgICB9CisgICAgfQorCisgICAgcmV0dXJuIFBTQV9FUlJPUl9OT1RfU1VQUE9SVEVEOworfQorCitwc2Ffc3RhdHVzX3QgbWJlZHRsc19jaXBoZXJfdmFsdWVzX2Zyb21fcHNhKAorICAgIHBzYV9hbGdvcml0aG1fdCBhbGcsCisgICAgcHNhX2tleV90eXBlX3Qga2V5X3R5cGUsCisgICAgc2l6ZV90ICprZXlfYml0cywKKyAgICBtYmVkdGxzX2NpcGhlcl9tb2RlX3QgKm1vZGUsCisgICAgbWJlZHRsc19jaXBoZXJfaWRfdCAqY2lwaGVyX2lkKQoreworICAgIG1iZWR0bHNfY2lwaGVyX2lkX3QgY2lwaGVyX2lkX3RtcDsKKyAgICAvKiBPbmx5IERFUyBtb2RpZmllcyBrZXlfYml0cyAqLworI2lmICFkZWZpbmVkKE1CRURUTFNfUFNBX0JVSUxUSU5fS0VZX1RZUEVfREVTKQorICAgICh2b2lkKSBrZXlfYml0czsKKyNlbmRpZgorCisgICAgaWYgKFBTQV9BTEdfSVNfQUVBRChhbGcpKSB7CisgICAgICAgIGFsZyA9IFBTQV9BTEdfQUVBRF9XSVRIX1NIT1JURU5FRF9UQUcoYWxnLCAwKTsKKyAgICB9CisKKyAgICBpZiAoUFNBX0FMR19JU19DSVBIRVIoYWxnKSB8fCBQU0FfQUxHX0lTX0FFQUQoYWxnKSkgeworICAgICAgICBzd2l0Y2ggKGFsZykgeworI2lmIGRlZmluZWQoTUJFRFRMU19QU0FfQlVJTFRJTl9BTEdfU1RSRUFNX0NJUEhFUikKKyAgICAgICAgICAgIGNhc2UgUFNBX0FMR19TVFJFQU1fQ0lQSEVSOgorICAgICAgICAgICAgICAgICptb2RlID0gTUJFRFRMU19NT0RFX1NUUkVBTTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyNlbmRpZgorI2lmIGRlZmluZWQoTUJFRFRMU19QU0FfQlVJTFRJTl9BTEdfQ1RSKQorICAgICAgICAgICAgY2FzZSBQU0FfQUxHX0NUUjoKKyAgICAgICAgICAgICAgICAqbW9kZSA9IE1CRURUTFNfTU9ERV9DVFI7CisgICAgICAgICAgICAgICAgYnJlYWs7CisjZW5kaWYKKyNpZiBkZWZpbmVkKE1CRURUTFNfUFNBX0JVSUxUSU5fQUxHX0NGQikKKyAgICAgICAgICAgIGNhc2UgUFNBX0FMR19DRkI6CisgICAgICAgICAgICAgICAgKm1vZGUgPSBNQkVEVExTX01PREVfQ0ZCOworICAgICAgICAgICAgICAgIGJyZWFrOworI2VuZGlmCisjaWYgZGVmaW5lZChNQkVEVExTX1BTQV9CVUlMVElOX0FMR19PRkIpCisgICAgICAgICAgICBjYXNlIFBTQV9BTEdfT0ZCOgorICAgICAgICAgICAgICAgICptb2RlID0gTUJFRFRMU19NT0RFX09GQjsKKyAgICAgICAgICAgICAgICBicmVhazsKKyNlbmRpZgorI2lmIGRlZmluZWQoTUJFRFRMU19QU0FfQlVJTFRJTl9BTEdfRUNCX05PX1BBRERJTkcpCisgICAgICAgICAgICBjYXNlIFBTQV9BTEdfRUNCX05PX1BBRERJTkc6CisgICAgICAgICAgICAgICAgKm1vZGUgPSBNQkVEVExTX01PREVfRUNCOworICAgICAgICAgICAgICAgIGJyZWFrOworI2VuZGlmCisjaWYgZGVmaW5lZChNQkVEVExTX1BTQV9CVUlMVElOX0FMR19DQkNfTk9fUEFERElORykKKyAgICAgICAgICAgIGNhc2UgUFNBX0FMR19DQkNfTk9fUEFERElORzoKKyAgICAgICAgICAgICAgICAqbW9kZSA9IE1CRURUTFNfTU9ERV9DQkM7CisgICAgICAgICAgICAgICAgYnJlYWs7CisjZW5kaWYKKyNpZiBkZWZpbmVkKE1CRURUTFNfUFNBX0JVSUxUSU5fQUxHX0NCQ19QS0NTNykKKyAgICAgICAgICAgIGNhc2UgUFNBX0FMR19DQkNfUEtDUzc6CisgICAgICAgICAgICAgICAgKm1vZGUgPSBNQkVEVExTX01PREVfQ0JDOworICAgICAgICAgICAgICAgIGJyZWFrOworI2VuZGlmCisjaWYgZGVmaW5lZChNQkVEVExTX1BTQV9CVUlMVElOX0FMR19DQ01fU1RBUl9OT19UQUcpCisgICAgICAgICAgICBjYXNlIFBTQV9BTEdfQ0NNX1NUQVJfTk9fVEFHOgorICAgICAgICAgICAgICAgICptb2RlID0gTUJFRFRMU19NT0RFX0NDTV9TVEFSX05PX1RBRzsKKyAgICAgICAgICAgICAgICBicmVhazsKKyNlbmRpZgorI2lmIGRlZmluZWQoTUJFRFRMU19QU0FfQlVJTFRJTl9BTEdfQ0NNKQorICAgICAgICAgICAgY2FzZSBQU0FfQUxHX0FFQURfV0lUSF9TSE9SVEVORURfVEFHKFBTQV9BTEdfQ0NNLCAwKToKKyAgICAgICAgICAgICAgICAqbW9kZSA9IE1CRURUTFNfTU9ERV9DQ007CisgICAgICAgICAgICAgICAgYnJlYWs7CisjZW5kaWYKKyNpZiBkZWZpbmVkKE1CRURUTFNfUFNBX0JVSUxUSU5fQUxHX0dDTSkKKyAgICAgICAgICAgIGNhc2UgUFNBX0FMR19BRUFEX1dJVEhfU0hPUlRFTkVEX1RBRyhQU0FfQUxHX0dDTSwgMCk6CisgICAgICAgICAgICAgICAgKm1vZGUgPSBNQkVEVExTX01PREVfR0NNOworICAgICAgICAgICAgICAgIGJyZWFrOworI2VuZGlmCisjaWYgZGVmaW5lZChNQkVEVExTX1BTQV9CVUlMVElOX0FMR19DSEFDSEEyMF9QT0xZMTMwNSkKKyAgICAgICAgICAgIGNhc2UgUFNBX0FMR19BRUFEX1dJVEhfU0hPUlRFTkVEX1RBRyhQU0FfQUxHX0NIQUNIQTIwX1BPTFkxMzA1LCAwKToKKyAgICAgICAgICAgICAgICAqbW9kZSA9IE1CRURUTFNfTU9ERV9DSEFDSEFQT0xZOworICAgICAgICAgICAgICAgIGJyZWFrOworI2VuZGlmCisgICAgICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgICAgIHJldHVybiBQU0FfRVJST1JfTk9UX1NVUFBPUlRFRDsKKyAgICAgICAgfQorICAgIH0gZWxzZSBpZiAoYWxnID09IFBTQV9BTEdfQ01BQykgeworICAgICAgICAqbW9kZSA9IE1CRURUTFNfTU9ERV9FQ0I7CisgICAgfSBlbHNlIHsKKyAgICAgICAgcmV0dXJuIFBTQV9FUlJPUl9OT1RfU1VQUE9SVEVEOworICAgIH0KKworICAgIHN3aXRjaCAoa2V5X3R5cGUpIHsKKyNpZiBkZWZpbmVkKE1CRURUTFNfUFNBX0JVSUxUSU5fS0VZX1RZUEVfQUVTKQorICAgICAgICBjYXNlIFBTQV9LRVlfVFlQRV9BRVM6CisgICAgICAgICAgICBjaXBoZXJfaWRfdG1wID0gTUJFRFRMU19DSVBIRVJfSURfQUVTOworICAgICAgICAgICAgYnJlYWs7CisjZW5kaWYKKyNpZiBkZWZpbmVkKE1CRURUTFNfUFNBX0JVSUxUSU5fS0VZX1RZUEVfQVJJQSkKKyAgICAgICAgY2FzZSBQU0FfS0VZX1RZUEVfQVJJQToKKyAgICAgICAgICAgIGNpcGhlcl9pZF90bXAgPSBNQkVEVExTX0NJUEhFUl9JRF9BUklBOworICAgICAgICAgICAgYnJlYWs7CisjZW5kaWYKKyNpZiBkZWZpbmVkKE1CRURUTFNfUFNBX0JVSUxUSU5fS0VZX1RZUEVfREVTKQorICAgICAgICBjYXNlIFBTQV9LRVlfVFlQRV9ERVM6CisgICAgICAgICAgICAvKiBrZXlfYml0cyBpcyA2NCBmb3IgU2luZ2xlLURFUywgMTI4IGZvciB0d28ta2V5IFRyaXBsZS1ERVMsCisgICAgICAgICAgICAgKiBhbmQgMTkyIGZvciB0aHJlZS1rZXkgVHJpcGxlLURFUy4gKi8KKyAgICAgICAgICAgIGlmICgqa2V5X2JpdHMgPT0gNjQpIHsKKyAgICAgICAgICAgICAgICBjaXBoZXJfaWRfdG1wID0gTUJFRFRMU19DSVBIRVJfSURfREVTOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBjaXBoZXJfaWRfdG1wID0gTUJFRFRMU19DSVBIRVJfSURfM0RFUzsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIC8qIG1iZWR0bHMgZG9lc24ndCByZWNvZ25pemUgdHdvLWtleSBUcmlwbGUtREVTIGFzIGFuIGFsZ29yaXRobSwKKyAgICAgICAgICAgICAqIGJ1dCB0d28ta2V5IFRyaXBsZS1ERVMgaXMgZnVuY3Rpb25hbGx5IHRocmVlLWtleSBUcmlwbGUtREVTCisgICAgICAgICAgICAgKiB3aXRoIEsxPUszLCBzbyB0aGF0J3MgaG93IHdlIHByZXNlbnQgaXQgdG8gbWJlZHRscy4gKi8KKyAgICAgICAgICAgIGlmICgqa2V5X2JpdHMgPT0gMTI4KSB7CisgICAgICAgICAgICAgICAgKmtleV9iaXRzID0gMTkyOworICAgICAgICAgICAgfQorICAgICAgICAgICAgYnJlYWs7CisjZW5kaWYKKyNpZiBkZWZpbmVkKE1CRURUTFNfUFNBX0JVSUxUSU5fS0VZX1RZUEVfQ0FNRUxMSUEpCisgICAgICAgIGNhc2UgUFNBX0tFWV9UWVBFX0NBTUVMTElBOgorICAgICAgICAgICAgY2lwaGVyX2lkX3RtcCA9IE1CRURUTFNfQ0lQSEVSX0lEX0NBTUVMTElBOworICAgICAgICAgICAgYnJlYWs7CisjZW5kaWYKKyNpZiBkZWZpbmVkKE1CRURUTFNfUFNBX0JVSUxUSU5fS0VZX1RZUEVfQ0hBQ0hBMjApCisgICAgICAgIGNhc2UgUFNBX0tFWV9UWVBFX0NIQUNIQTIwOgorICAgICAgICAgICAgY2lwaGVyX2lkX3RtcCA9IE1CRURUTFNfQ0lQSEVSX0lEX0NIQUNIQTIwOworICAgICAgICAgICAgYnJlYWs7CisjZW5kaWYKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIHJldHVybiBQU0FfRVJST1JfTk9UX1NVUFBPUlRFRDsKKyAgICB9CisgICAgaWYgKGNpcGhlcl9pZCAhPSBOVUxMKSB7CisgICAgICAgICpjaXBoZXJfaWQgPSBjaXBoZXJfaWRfdG1wOworICAgIH0KKworICAgIHJldHVybiBtYmVkdGxzX2NpcGhlcl92YWxpZGF0ZV92YWx1ZXMoYWxnLCBrZXlfdHlwZSk7Cit9CisKKyNpZiBkZWZpbmVkKE1CRURUTFNfQ0lQSEVSX0MpCitjb25zdCBtYmVkdGxzX2NpcGhlcl9pbmZvX3QgKm1iZWR0bHNfY2lwaGVyX2luZm9fZnJvbV9wc2EoCisgICAgcHNhX2FsZ29yaXRobV90IGFsZywKKyAgICBwc2Ffa2V5X3R5cGVfdCBrZXlfdHlwZSwKKyAgICBzaXplX3Qga2V5X2JpdHMsCisgICAgbWJlZHRsc19jaXBoZXJfaWRfdCAqY2lwaGVyX2lkKQoreworICAgIG1iZWR0bHNfY2lwaGVyX21vZGVfdCBtb2RlOworICAgIHBzYV9zdGF0dXNfdCBzdGF0dXM7CisgICAgbWJlZHRsc19jaXBoZXJfaWRfdCBjaXBoZXJfaWRfdG1wID0gTUJFRFRMU19DSVBIRVJfSURfTk9ORTsKKworICAgIHN0YXR1cyA9IG1iZWR0bHNfY2lwaGVyX3ZhbHVlc19mcm9tX3BzYShhbGcsIGtleV90eXBlLCAma2V5X2JpdHMsICZtb2RlLCAmY2lwaGVyX2lkX3RtcCk7CisgICAgaWYgKHN0YXR1cyAhPSBQU0FfU1VDQ0VTUykgeworICAgICAgICByZXR1cm4gTlVMTDsKKyAgICB9CisgICAgaWYgKGNpcGhlcl9pZCAhPSBOVUxMKSB7CisgICAgICAgICpjaXBoZXJfaWQgPSBjaXBoZXJfaWRfdG1wOworICAgIH0KKworICAgIHJldHVybiBtYmVkdGxzX2NpcGhlcl9pbmZvX2Zyb21fdmFsdWVzKGNpcGhlcl9pZF90bXAsIChpbnQpIGtleV9iaXRzLCBtb2RlKTsKK30KKyNlbmRpZiAvKiBNQkVEVExTX0NJUEhFUl9DICovCisKKyNpZiBkZWZpbmVkKE1CRURUTFNfUFNBX0JVSUxUSU5fQ0lQSEVSKQorCitzdGF0aWMgcHNhX3N0YXR1c190IHBzYV9jaXBoZXJfc2V0dXAoCisgICAgbWJlZHRsc19wc2FfY2lwaGVyX29wZXJhdGlvbl90ICpvcGVyYXRpb24sCisgICAgY29uc3QgcHNhX2tleV9hdHRyaWJ1dGVzX3QgKmF0dHJpYnV0ZXMsCisgICAgY29uc3QgdWludDhfdCAqa2V5X2J1ZmZlciwgc2l6ZV90IGtleV9idWZmZXJfc2l6ZSwKKyAgICBwc2FfYWxnb3JpdGhtX3QgYWxnLAorICAgIG1iZWR0bHNfb3BlcmF0aW9uX3QgY2lwaGVyX29wZXJhdGlvbikKK3sKKyAgICBpbnQgcmV0ID0gMDsKKyAgICBzaXplX3Qga2V5X2JpdHM7CisgICAgY29uc3QgbWJlZHRsc19jaXBoZXJfaW5mb190ICpjaXBoZXJfaW5mbyA9IE5VTEw7CisgICAgcHNhX2tleV90eXBlX3Qga2V5X3R5cGUgPSBhdHRyaWJ1dGVzLT50eXBlOworCisgICAgKHZvaWQpIGtleV9idWZmZXJfc2l6ZTsKKworICAgIG1iZWR0bHNfY2lwaGVyX2luaXQoJm9wZXJhdGlvbi0+Y3R4LmNpcGhlcik7CisKKyAgICBvcGVyYXRpb24tPmFsZyA9IGFsZzsKKyAgICBrZXlfYml0cyA9IGF0dHJpYnV0ZXMtPmJpdHM7CisgICAgY2lwaGVyX2luZm8gPSBtYmVkdGxzX2NpcGhlcl9pbmZvX2Zyb21fcHNhKGFsZywga2V5X3R5cGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtleV9iaXRzLCBOVUxMKTsKKyAgICBpZiAoY2lwaGVyX2luZm8gPT0gTlVMTCkgeworICAgICAgICByZXR1cm4gUFNBX0VSUk9SX05PVF9TVVBQT1JURUQ7CisgICAgfQorCisgICAgcmV0ID0gbWJlZHRsc19jaXBoZXJfc2V0dXAoJm9wZXJhdGlvbi0+Y3R4LmNpcGhlciwgY2lwaGVyX2luZm8pOworICAgIGlmIChyZXQgIT0gMCkgeworICAgICAgICBnb3RvIGV4aXQ7CisgICAgfQorCisjaWYgZGVmaW5lZChNQkVEVExTX1BTQV9CVUlMVElOX0tFWV9UWVBFX0RFUykKKyAgICBpZiAoa2V5X3R5cGUgPT0gUFNBX0tFWV9UWVBFX0RFUyAmJiBrZXlfYml0cyA9PSAxMjgpIHsKKyAgICAgICAgLyogVHdvLWtleSBUcmlwbGUtREVTIGlzIDMta2V5IFRyaXBsZS1ERVMgd2l0aCBLMT1LMyAqLworICAgICAgICB1aW50OF90IGtleXNbMjRdOworICAgICAgICBtZW1jcHkoa2V5cywga2V5X2J1ZmZlciwgMTYpOworICAgICAgICBtZW1jcHkoa2V5cyArIDE2LCBrZXlfYnVmZmVyLCA4KTsKKyAgICAgICAgcmV0ID0gbWJlZHRsc19jaXBoZXJfc2V0a2V5KCZvcGVyYXRpb24tPmN0eC5jaXBoZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXlzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMTkyLCBjaXBoZXJfb3BlcmF0aW9uKTsKKyAgICB9IGVsc2UKKyNlbmRpZgorICAgIHsKKyAgICAgICAgcmV0ID0gbWJlZHRsc19jaXBoZXJfc2V0a2V5KCZvcGVyYXRpb24tPmN0eC5jaXBoZXIsIGtleV9idWZmZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50KSBrZXlfYml0cywgY2lwaGVyX29wZXJhdGlvbik7CisgICAgfQorICAgIGlmIChyZXQgIT0gMCkgeworICAgICAgICBnb3RvIGV4aXQ7CisgICAgfQorCisjaWYgZGVmaW5lZChNQkVEVExTX1BTQV9CVUlMVElOX0FMR19DQkNfTk9fUEFERElORykgfHwgXAorICAgIGRlZmluZWQoTUJFRFRMU19QU0FfQlVJTFRJTl9BTEdfQ0JDX1BLQ1M3KQorICAgIHN3aXRjaCAoYWxnKSB7CisgICAgICAgIGNhc2UgUFNBX0FMR19DQkNfTk9fUEFERElORzoKKyAgICAgICAgICAgIHJldCA9IG1iZWR0bHNfY2lwaGVyX3NldF9wYWRkaW5nX21vZGUoJm9wZXJhdGlvbi0+Y3R4LmNpcGhlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTUJFRFRMU19QQURESU5HX05PTkUpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgUFNBX0FMR19DQkNfUEtDUzc6CisgICAgICAgICAgICByZXQgPSBtYmVkdGxzX2NpcGhlcl9zZXRfcGFkZGluZ19tb2RlKCZvcGVyYXRpb24tPmN0eC5jaXBoZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1CRURUTFNfUEFERElOR19QS0NTNyk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIC8qIFRoZSBhbGdvcml0aG0gZG9lc24ndCBpbnZvbHZlIHBhZGRpbmcuICovCisgICAgICAgICAgICByZXQgPSAwOworICAgICAgICAgICAgYnJlYWs7CisgICAgfQorICAgIGlmIChyZXQgIT0gMCkgeworICAgICAgICBnb3RvIGV4aXQ7CisgICAgfQorI2VuZGlmIC8qIE1CRURUTFNfUFNBX0JVSUxUSU5fQUxHX0NCQ19OT19QQURESU5HIHx8CisgICAgICAgICAgTUJFRFRMU19QU0FfQlVJTFRJTl9BTEdfQ0JDX1BLQ1M3ICovCisKKyAgICBvcGVyYXRpb24tPmJsb2NrX2xlbmd0aCA9IChQU0FfQUxHX0lTX1NUUkVBTV9DSVBIRVIoYWxnKSA/IDEgOgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBTQV9CTE9DS19DSVBIRVJfQkxPQ0tfTEVOR1RIKGtleV90eXBlKSk7CisgICAgb3BlcmF0aW9uLT5pdl9sZW5ndGggPSBQU0FfQ0lQSEVSX0lWX0xFTkdUSChrZXlfdHlwZSwgYWxnKTsKKworZXhpdDoKKyAgICByZXR1cm4gbWJlZHRsc190b19wc2FfZXJyb3IocmV0KTsKK30KKworcHNhX3N0YXR1c190IG1iZWR0bHNfcHNhX2NpcGhlcl9lbmNyeXB0X3NldHVwKAorICAgIG1iZWR0bHNfcHNhX2NpcGhlcl9vcGVyYXRpb25fdCAqb3BlcmF0aW9uLAorICAgIGNvbnN0IHBzYV9rZXlfYXR0cmlidXRlc190ICphdHRyaWJ1dGVzLAorICAgIGNvbnN0IHVpbnQ4X3QgKmtleV9idWZmZXIsIHNpemVfdCBrZXlfYnVmZmVyX3NpemUsCisgICAgcHNhX2FsZ29yaXRobV90IGFsZykKK3sKKyAgICByZXR1cm4gcHNhX2NpcGhlcl9zZXR1cChvcGVyYXRpb24sIGF0dHJpYnV0ZXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAga2V5X2J1ZmZlciwga2V5X2J1ZmZlcl9zaXplLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFsZywgTUJFRFRMU19FTkNSWVBUKTsKK30KKworcHNhX3N0YXR1c190IG1iZWR0bHNfcHNhX2NpcGhlcl9kZWNyeXB0X3NldHVwKAorICAgIG1iZWR0bHNfcHNhX2NpcGhlcl9vcGVyYXRpb25fdCAqb3BlcmF0aW9uLAorICAgIGNvbnN0IHBzYV9rZXlfYXR0cmlidXRlc190ICphdHRyaWJ1dGVzLAorICAgIGNvbnN0IHVpbnQ4X3QgKmtleV9idWZmZXIsIHNpemVfdCBrZXlfYnVmZmVyX3NpemUsCisgICAgcHNhX2FsZ29yaXRobV90IGFsZykKK3sKKyAgICByZXR1cm4gcHNhX2NpcGhlcl9zZXR1cChvcGVyYXRpb24sIGF0dHJpYnV0ZXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAga2V5X2J1ZmZlciwga2V5X2J1ZmZlcl9zaXplLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFsZywgTUJFRFRMU19ERUNSWVBUKTsKK30KKworcHNhX3N0YXR1c190IG1iZWR0bHNfcHNhX2NpcGhlcl9zZXRfaXYoCisgICAgbWJlZHRsc19wc2FfY2lwaGVyX29wZXJhdGlvbl90ICpvcGVyYXRpb24sCisgICAgY29uc3QgdWludDhfdCAqaXYsIHNpemVfdCBpdl9sZW5ndGgpCit7CisgICAgaWYgKGl2X2xlbmd0aCAhPSBvcGVyYXRpb24tPml2X2xlbmd0aCkgeworICAgICAgICByZXR1cm4gUFNBX0VSUk9SX0lOVkFMSURfQVJHVU1FTlQ7CisgICAgfQorCisgICAgcmV0dXJuIG1iZWR0bHNfdG9fcHNhX2Vycm9yKAorICAgICAgICBtYmVkdGxzX2NpcGhlcl9zZXRfaXYoJm9wZXJhdGlvbi0+Y3R4LmNpcGhlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGl2LCBpdl9sZW5ndGgpKTsKK30KKworI2lmIGRlZmluZWQoTUJFRFRMU19QU0FfQlVJTFRJTl9BTEdfRUNCX05PX1BBRERJTkcpCisvKiogUHJvY2VzcyBpbnB1dCBmb3Igd2hpY2ggdGhlIGFsZ29yaXRobSBpcyBzZXQgdG8gRUNCIG1vZGUuCisgKgorICogVGhpcyByZXF1aXJlcyBtYW51YWwgcHJvY2Vzc2luZywgc2luY2UgdGhlIFBTQSBBUEkgaXMgZGVmaW5lZCBhcyBiZWluZworICogYWJsZSB0byBwcm9jZXNzIGFyYml0cmFyeS1sZW5ndGggY2FsbHMgdG8gcHNhX2NpcGhlcl91cGRhdGUoKSB3aXRoIEVDQiBtb2RlLAorICogYnV0IHRoZSB1bmRlcmx5aW5nIG1iZWR0bHNfY2lwaGVyX3VwZGF0ZSBvbmx5IHRha2VzIGZ1bGwgYmxvY2tzLgorICoKKyAqIFxwYXJhbSBjdHggICAgICAgICAgIFRoZSBtYmVkdGxzIGNpcGhlciBjb250ZXh0IHRvIHVzZS4gSXQgbXVzdCBoYXZlIGJlZW4KKyAqICAgICAgICAgICAgICAgICAgICAgIHNldCB1cCBmb3IgRUNCLgorICogXHBhcmFtW2luXSBpbnB1dCAgICAgVGhlIGlucHV0IHBsYWludGV4dCBvciBjaXBoZXJ0ZXh0IHRvIHByb2Nlc3MuCisgKiBccGFyYW0gaW5wdXRfbGVuZ3RoICBUaGUgbnVtYmVyIG9mIGJ5dGVzIHRvIHByb2Nlc3MgZnJvbSBccCBpbnB1dC4KKyAqICAgICAgICAgICAgICAgICAgICAgIFRoaXMgZG9lcyBub3QgbmVlZCB0byBiZSBhbGlnbmVkIHRvIGEgYmxvY2sgYm91bmRhcnkuCisgKiAgICAgICAgICAgICAgICAgICAgICBJZiB0aGVyZSBpcyBhIHBhcnRpYWwgYmxvY2sgYXQgdGhlIGVuZCBvZiB0aGUgaW5wdXQsCisgKiAgICAgICAgICAgICAgICAgICAgICBpdCBpcyBzdG9yZWQgaW4gXHAgY3R4IGZvciBmdXR1cmUgcHJvY2Vzc2luZy4KKyAqIFxwYXJhbSBvdXRwdXQgICAgICAgIFRoZSBidWZmZXIgd2hlcmUgdGhlIG91dHB1dCBpcyB3cml0dGVuLiBJdCBtdXN0IGJlCisgKiAgICAgICAgICAgICAgICAgICAgICBhdCBsZWFzdCBgQlMgKiBmbG9vcigocCArIGlucHV0X2xlbmd0aCkgLyBCUylgIGJ5dGVzCisgKiAgICAgICAgICAgICAgICAgICAgICBsb25nLCB3aGVyZSBgcGAgaXMgdGhlIG51bWJlciBvZiBieXRlcyBpbiB0aGUKKyAqICAgICAgICAgICAgICAgICAgICAgIHVucHJvY2Vzc2VkIHBhcnRpYWwgYmxvY2sgaW4gXHAgY3R4ICh3aXRoCisgKiAgICAgICAgICAgICAgICAgICAgICBgMCA8PSBwIDw9IEJTIC0gMWApIGFuZCBgQlNgIGlzIHRoZSBibG9jayBzaXplLgorICogXHBhcmFtIG91dHB1dF9sZW5ndGggT24gc3VjY2VzcywgdGhlIG51bWJlciBvZiBieXRlcyB3cml0dGVuIHRvIFxwIG91dHB1dC4KKyAqICAgICAgICAgICAgICAgICAgICAgIFxjIDAgb24gZXJyb3IuCisgKgorICogXHJldHVybiAjUFNBX1NVQ0NFU1Mgb3IgYW4gZXJyb3IgZnJvbSBhIGhhcmR3YXJlIGFjY2VsZXJhdG9yCisgKi8KK3N0YXRpYyBwc2Ffc3RhdHVzX3QgcHNhX2NpcGhlcl91cGRhdGVfZWNiKAorICAgIG1iZWR0bHNfY2lwaGVyX2NvbnRleHRfdCAqY3R4LAorICAgIGNvbnN0IHVpbnQ4X3QgKmlucHV0LAorICAgIHNpemVfdCBpbnB1dF9sZW5ndGgsCisgICAgdWludDhfdCAqb3V0cHV0LAorICAgIHNpemVfdCAqb3V0cHV0X2xlbmd0aCkKK3sKKyAgICBwc2Ffc3RhdHVzX3Qgc3RhdHVzID0gUFNBX0VSUk9SX0NPUlJVUFRJT05fREVURUNURUQ7CisgICAgc2l6ZV90IGJsb2NrX3NpemUgPSBtYmVkdGxzX2NpcGhlcl9pbmZvX2dldF9ibG9ja19zaXplKGN0eC0+Y2lwaGVyX2luZm8pOworICAgIHNpemVfdCBpbnRlcm5hbF9vdXRwdXRfbGVuZ3RoID0gMDsKKyAgICAqb3V0cHV0X2xlbmd0aCA9IDA7CisKKyAgICBpZiAoaW5wdXRfbGVuZ3RoID09IDApIHsKKyAgICAgICAgc3RhdHVzID0gUFNBX1NVQ0NFU1M7CisgICAgICAgIGdvdG8gZXhpdDsKKyAgICB9CisKKyAgICBpZiAoY3R4LT51bnByb2Nlc3NlZF9sZW4gPiAwKSB7CisgICAgICAgIC8qIEZpbGwgdXAgdG8gYmxvY2sgc2l6ZSwgYW5kIHJ1biB0aGUgYmxvY2sgaWYgdGhlcmUncyBhIGZ1bGwgb25lLiAqLworICAgICAgICBzaXplX3QgYnl0ZXNfdG9fY29weSA9IGJsb2NrX3NpemUgLSBjdHgtPnVucHJvY2Vzc2VkX2xlbjsKKworICAgICAgICBpZiAoaW5wdXRfbGVuZ3RoIDwgYnl0ZXNfdG9fY29weSkgeworICAgICAgICAgICAgYnl0ZXNfdG9fY29weSA9IGlucHV0X2xlbmd0aDsKKyAgICAgICAgfQorCisgICAgICAgIG1lbWNweSgmKGN0eC0+dW5wcm9jZXNzZWRfZGF0YVtjdHgtPnVucHJvY2Vzc2VkX2xlbl0pLAorICAgICAgICAgICAgICAgaW5wdXQsIGJ5dGVzX3RvX2NvcHkpOworICAgICAgICBpbnB1dF9sZW5ndGggLT0gYnl0ZXNfdG9fY29weTsKKyAgICAgICAgaW5wdXQgKz0gYnl0ZXNfdG9fY29weTsKKyAgICAgICAgY3R4LT51bnByb2Nlc3NlZF9sZW4gKz0gYnl0ZXNfdG9fY29weTsKKworICAgICAgICBpZiAoY3R4LT51bnByb2Nlc3NlZF9sZW4gPT0gYmxvY2tfc2l6ZSkgeworICAgICAgICAgICAgc3RhdHVzID0gbWJlZHRsc190b19wc2FfZXJyb3IoCisgICAgICAgICAgICAgICAgbWJlZHRsc19jaXBoZXJfdXBkYXRlKGN0eCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3R4LT51bnByb2Nlc3NlZF9kYXRhLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBibG9ja19zaXplLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvdXRwdXQsICZpbnRlcm5hbF9vdXRwdXRfbGVuZ3RoKSk7CisKKyAgICAgICAgICAgIGlmIChzdGF0dXMgIT0gUFNBX1NVQ0NFU1MpIHsKKyAgICAgICAgICAgICAgICBnb3RvIGV4aXQ7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIG91dHB1dCArPSBpbnRlcm5hbF9vdXRwdXRfbGVuZ3RoOworICAgICAgICAgICAgKm91dHB1dF9sZW5ndGggKz0gaW50ZXJuYWxfb3V0cHV0X2xlbmd0aDsKKyAgICAgICAgICAgIGN0eC0+dW5wcm9jZXNzZWRfbGVuID0gMDsKKyAgICAgICAgfQorICAgIH0KKworICAgIHdoaWxlIChpbnB1dF9sZW5ndGggPj0gYmxvY2tfc2l6ZSkgeworICAgICAgICAvKiBSdW4gYWxsIGZ1bGwgYmxvY2tzIHdlIGhhdmUsIG9uZSBieSBvbmUgKi8KKyAgICAgICAgc3RhdHVzID0gbWJlZHRsc190b19wc2FfZXJyb3IoCisgICAgICAgICAgICBtYmVkdGxzX2NpcGhlcl91cGRhdGUoY3R4LCBpbnB1dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBibG9ja19zaXplLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG91dHB1dCwgJmludGVybmFsX291dHB1dF9sZW5ndGgpKTsKKworICAgICAgICBpZiAoc3RhdHVzICE9IFBTQV9TVUNDRVNTKSB7CisgICAgICAgICAgICBnb3RvIGV4aXQ7CisgICAgICAgIH0KKworICAgICAgICBpbnB1dF9sZW5ndGggLT0gYmxvY2tfc2l6ZTsKKyAgICAgICAgaW5wdXQgKz0gYmxvY2tfc2l6ZTsKKworICAgICAgICBvdXRwdXQgKz0gaW50ZXJuYWxfb3V0cHV0X2xlbmd0aDsKKyAgICAgICAgKm91dHB1dF9sZW5ndGggKz0gaW50ZXJuYWxfb3V0cHV0X2xlbmd0aDsKKyAgICB9CisKKyAgICBpZiAoaW5wdXRfbGVuZ3RoID4gMCkgeworICAgICAgICAvKiBTYXZlIHVucHJvY2Vzc2VkIGJ5dGVzIGZvciBsYXRlciBwcm9jZXNzaW5nICovCisgICAgICAgIG1lbWNweSgmKGN0eC0+dW5wcm9jZXNzZWRfZGF0YVtjdHgtPnVucHJvY2Vzc2VkX2xlbl0pLAorICAgICAgICAgICAgICAgaW5wdXQsIGlucHV0X2xlbmd0aCk7CisgICAgICAgIGN0eC0+dW5wcm9jZXNzZWRfbGVuICs9IGlucHV0X2xlbmd0aDsKKyAgICB9CisKKyAgICBzdGF0dXMgPSBQU0FfU1VDQ0VTUzsKKworZXhpdDoKKyAgICByZXR1cm4gc3RhdHVzOworfQorI2VuZGlmIC8qIE1CRURUTFNfUFNBX0JVSUxUSU5fQUxHX0VDQl9OT19QQURESU5HICovCisKK3BzYV9zdGF0dXNfdCBtYmVkdGxzX3BzYV9jaXBoZXJfdXBkYXRlKAorICAgIG1iZWR0bHNfcHNhX2NpcGhlcl9vcGVyYXRpb25fdCAqb3BlcmF0aW9uLAorICAgIGNvbnN0IHVpbnQ4X3QgKmlucHV0LCBzaXplX3QgaW5wdXRfbGVuZ3RoLAorICAgIHVpbnQ4X3QgKm91dHB1dCwgc2l6ZV90IG91dHB1dF9zaXplLCBzaXplX3QgKm91dHB1dF9sZW5ndGgpCit7CisgICAgcHNhX3N0YXR1c190IHN0YXR1cyA9IFBTQV9FUlJPUl9DT1JSVVBUSU9OX0RFVEVDVEVEOworICAgIHNpemVfdCBleHBlY3RlZF9vdXRwdXRfc2l6ZTsKKworICAgIGlmICghUFNBX0FMR19JU19TVFJFQU1fQ0lQSEVSKG9wZXJhdGlvbi0+YWxnKSkgeworICAgICAgICAvKiBUYWtlIHRoZSB1bnByb2Nlc3NlZCBwYXJ0aWFsIGJsb2NrIGxlZnQgb3ZlciBmcm9tIHByZXZpb3VzCisgICAgICAgICAqIHVwZGF0ZSBjYWxscywgaWYgYW55LCBwbHVzIHRoZSBpbnB1dCB0byB0aGlzIGNhbGwuIFJlbW92ZQorICAgICAgICAgKiB0aGUgbGFzdCBwYXJ0aWFsIGJsb2NrLCBpZiBhbnkuIFlvdSBnZXQgdGhlIGRhdGEgdGhhdCB3aWxsIGJlCisgICAgICAgICAqIG91dHB1dCBpbiB0aGlzIGNhbGwuICovCisgICAgICAgIGV4cGVjdGVkX291dHB1dF9zaXplID0KKyAgICAgICAgICAgIChvcGVyYXRpb24tPmN0eC5jaXBoZXIudW5wcm9jZXNzZWRfbGVuICsgaW5wdXRfbGVuZ3RoKQorICAgICAgICAgICAgLyBvcGVyYXRpb24tPmJsb2NrX2xlbmd0aCAqIG9wZXJhdGlvbi0+YmxvY2tfbGVuZ3RoOworICAgIH0gZWxzZSB7CisgICAgICAgIGV4cGVjdGVkX291dHB1dF9zaXplID0gaW5wdXRfbGVuZ3RoOworICAgIH0KKworICAgIGlmIChvdXRwdXRfc2l6ZSA8IGV4cGVjdGVkX291dHB1dF9zaXplKSB7CisgICAgICAgIHJldHVybiBQU0FfRVJST1JfQlVGRkVSX1RPT19TTUFMTDsKKyAgICB9CisKKyNpZiBkZWZpbmVkKE1CRURUTFNfUFNBX0JVSUxUSU5fQUxHX0VDQl9OT19QQURESU5HKQorICAgIGlmIChvcGVyYXRpb24tPmFsZyA9PSBQU0FfQUxHX0VDQl9OT19QQURESU5HKSB7CisgICAgICAgIC8qIG1iZWR0bHNfY2lwaGVyX3VwZGF0ZSBoYXMgYW4gQVBJIGluY29uc2lzdGVuY3k6IGl0IHdpbGwgb25seQorICAgICAgICAgKiBwcm9jZXNzIGEgc2luZ2xlIGJsb2NrIGF0IGEgdGltZSBpbiBFQ0IgbW9kZS4gQWJzdHJhY3QgYXdheSB0aGF0CisgICAgICAgICAqIGluY29uc2lzdGVuY3kgaGVyZSB0byBtYXRjaCB0aGUgUFNBIEFQSSBiZWhhdmlvdXIuICovCisgICAgICAgIHN0YXR1cyA9IHBzYV9jaXBoZXJfdXBkYXRlX2VjYigmb3BlcmF0aW9uLT5jdHguY2lwaGVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5wdXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnB1dF9sZW5ndGgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvdXRwdXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvdXRwdXRfbGVuZ3RoKTsKKyAgICB9IGVsc2UKKyNlbmRpZiAvKiBNQkVEVExTX1BTQV9CVUlMVElOX0FMR19FQ0JfTk9fUEFERElORyAqLworICAgIGlmIChpbnB1dF9sZW5ndGggPT0gMCkgeworICAgICAgICAvKiBUaGVyZSBpcyBubyBpbnB1dCwgbm90aGluZyB0byBiZSBkb25lICovCisgICAgICAgICpvdXRwdXRfbGVuZ3RoID0gMDsKKyAgICAgICAgc3RhdHVzID0gUFNBX1NVQ0NFU1M7CisgICAgfSBlbHNlIHsKKyAgICAgICAgc3RhdHVzID0gbWJlZHRsc190b19wc2FfZXJyb3IoCisgICAgICAgICAgICBtYmVkdGxzX2NpcGhlcl91cGRhdGUoJm9wZXJhdGlvbi0+Y3R4LmNpcGhlciwgaW5wdXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5wdXRfbGVuZ3RoLCBvdXRwdXQsIG91dHB1dF9sZW5ndGgpKTsKKworICAgICAgICBpZiAoKm91dHB1dF9sZW5ndGggPiBvdXRwdXRfc2l6ZSkgeworICAgICAgICAgICAgcmV0dXJuIFBTQV9FUlJPUl9DT1JSVVBUSU9OX0RFVEVDVEVEOworICAgICAgICB9CisgICAgfQorCisgICAgcmV0dXJuIHN0YXR1czsKK30KKworcHNhX3N0YXR1c190IG1iZWR0bHNfcHNhX2NpcGhlcl9maW5pc2goCisgICAgbWJlZHRsc19wc2FfY2lwaGVyX29wZXJhdGlvbl90ICpvcGVyYXRpb24sCisgICAgdWludDhfdCAqb3V0cHV0LCBzaXplX3Qgb3V0cHV0X3NpemUsIHNpemVfdCAqb3V0cHV0X2xlbmd0aCkKK3sKKyAgICBwc2Ffc3RhdHVzX3Qgc3RhdHVzID0gUFNBX0VSUk9SX0dFTkVSSUNfRVJST1I7CisgICAgdWludDhfdCB0ZW1wX291dHB1dF9idWZmZXJbTUJFRFRMU19NQVhfQkxPQ0tfTEVOR1RIXTsKKworICAgIGlmIChvcGVyYXRpb24tPmN0eC5jaXBoZXIudW5wcm9jZXNzZWRfbGVuICE9IDApIHsKKyAgICAgICAgaWYgKG9wZXJhdGlvbi0+YWxnID09IFBTQV9BTEdfRUNCX05PX1BBRERJTkcgfHwKKyAgICAgICAgICAgIG9wZXJhdGlvbi0+YWxnID09IFBTQV9BTEdfQ0JDX05PX1BBRERJTkcpIHsKKyAgICAgICAgICAgIHN0YXR1cyA9IFBTQV9FUlJPUl9JTlZBTElEX0FSR1VNRU5UOworICAgICAgICAgICAgZ290byBleGl0OworICAgICAgICB9CisgICAgfQorCisgICAgc3RhdHVzID0gbWJlZHRsc190b19wc2FfZXJyb3IoCisgICAgICAgIG1iZWR0bHNfY2lwaGVyX2ZpbmlzaCgmb3BlcmF0aW9uLT5jdHguY2lwaGVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGVtcF9vdXRwdXRfYnVmZmVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3V0cHV0X2xlbmd0aCkpOworICAgIGlmIChzdGF0dXMgIT0gUFNBX1NVQ0NFU1MpIHsKKyAgICAgICAgZ290byBleGl0OworICAgIH0KKworICAgIGlmICgqb3V0cHV0X2xlbmd0aCA9PSAwKSB7CisgICAgICAgIDsgLyogTm90aGluZyB0byBjb3B5LiBOb3RlIHRoYXQgb3V0cHV0IG1heSBiZSBOVUxMIGluIHRoaXMgY2FzZS4gKi8KKyAgICB9IGVsc2UgaWYgKG91dHB1dF9zaXplID49ICpvdXRwdXRfbGVuZ3RoKSB7CisgICAgICAgIG1lbWNweShvdXRwdXQsIHRlbXBfb3V0cHV0X2J1ZmZlciwgKm91dHB1dF9sZW5ndGgpOworICAgIH0gZWxzZSB7CisgICAgICAgIHN0YXR1cyA9IFBTQV9FUlJPUl9CVUZGRVJfVE9PX1NNQUxMOworICAgIH0KKworZXhpdDoKKyAgICBtYmVkdGxzX3BsYXRmb3JtX3plcm9pemUodGVtcF9vdXRwdXRfYnVmZmVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplb2YodGVtcF9vdXRwdXRfYnVmZmVyKSk7CisKKyAgICByZXR1cm4gc3RhdHVzOworfQorCitwc2Ffc3RhdHVzX3QgbWJlZHRsc19wc2FfY2lwaGVyX2Fib3J0KAorICAgIG1iZWR0bHNfcHNhX2NpcGhlcl9vcGVyYXRpb25fdCAqb3BlcmF0aW9uKQoreworICAgIC8qIFNhbml0eSBjaGVjayAoc2hvdWxkbid0IGhhcHBlbjogb3BlcmF0aW9uLT5hbGcgc2hvdWxkCisgICAgICogYWx3YXlzIGhhdmUgYmVlbiBpbml0aWFsaXplZCB0byBhIHZhbGlkIHZhbHVlKS4gKi8KKyAgICBpZiAoIVBTQV9BTEdfSVNfQ0lQSEVSKG9wZXJhdGlvbi0+YWxnKSkgeworICAgICAgICByZXR1cm4gUFNBX0VSUk9SX0JBRF9TVEFURTsKKyAgICB9CisKKyAgICBtYmVkdGxzX2NpcGhlcl9mcmVlKCZvcGVyYXRpb24tPmN0eC5jaXBoZXIpOworCisgICAgcmV0dXJuIFBTQV9TVUNDRVNTOworfQorCitwc2Ffc3RhdHVzX3QgbWJlZHRsc19wc2FfY2lwaGVyX2VuY3J5cHQoCisgICAgY29uc3QgcHNhX2tleV9hdHRyaWJ1dGVzX3QgKmF0dHJpYnV0ZXMsCisgICAgY29uc3QgdWludDhfdCAqa2V5X2J1ZmZlciwKKyAgICBzaXplX3Qga2V5X2J1ZmZlcl9zaXplLAorICAgIHBzYV9hbGdvcml0aG1fdCBhbGcsCisgICAgY29uc3QgdWludDhfdCAqaXYsCisgICAgc2l6ZV90IGl2X2xlbmd0aCwKKyAgICBjb25zdCB1aW50OF90ICppbnB1dCwKKyAgICBzaXplX3QgaW5wdXRfbGVuZ3RoLAorICAgIHVpbnQ4X3QgKm91dHB1dCwKKyAgICBzaXplX3Qgb3V0cHV0X3NpemUsCisgICAgc2l6ZV90ICpvdXRwdXRfbGVuZ3RoKQoreworICAgIHBzYV9zdGF0dXNfdCBzdGF0dXMgPSBQU0FfRVJST1JfQ09SUlVQVElPTl9ERVRFQ1RFRDsKKyAgICBtYmVkdGxzX3BzYV9jaXBoZXJfb3BlcmF0aW9uX3Qgb3BlcmF0aW9uID0gTUJFRFRMU19QU0FfQ0lQSEVSX09QRVJBVElPTl9JTklUOworICAgIHNpemVfdCB1cGRhdGVfb3V0cHV0X2xlbmd0aCwgZmluaXNoX291dHB1dF9sZW5ndGg7CisKKyAgICBzdGF0dXMgPSBtYmVkdGxzX3BzYV9jaXBoZXJfZW5jcnlwdF9zZXR1cCgmb3BlcmF0aW9uLCBhdHRyaWJ1dGVzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtleV9idWZmZXIsIGtleV9idWZmZXJfc2l6ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbGcpOworICAgIGlmIChzdGF0dXMgIT0gUFNBX1NVQ0NFU1MpIHsKKyAgICAgICAgZ290byBleGl0OworICAgIH0KKworICAgIGlmIChpdl9sZW5ndGggPiAwKSB7CisgICAgICAgIHN0YXR1cyA9IG1iZWR0bHNfcHNhX2NpcGhlcl9zZXRfaXYoJm9wZXJhdGlvbiwgaXYsIGl2X2xlbmd0aCk7CisgICAgICAgIGlmIChzdGF0dXMgIT0gUFNBX1NVQ0NFU1MpIHsKKyAgICAgICAgICAgIGdvdG8gZXhpdDsKKyAgICAgICAgfQorICAgIH0KKworICAgIHN0YXR1cyA9IG1iZWR0bHNfcHNhX2NpcGhlcl91cGRhdGUoJm9wZXJhdGlvbiwgaW5wdXQsIGlucHV0X2xlbmd0aCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG91dHB1dCwgb3V0cHV0X3NpemUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmdXBkYXRlX291dHB1dF9sZW5ndGgpOworICAgIGlmIChzdGF0dXMgIT0gUFNBX1NVQ0NFU1MpIHsKKyAgICAgICAgZ290byBleGl0OworICAgIH0KKworICAgIHN0YXR1cyA9IG1iZWR0bHNfcHNhX2NpcGhlcl9maW5pc2goCisgICAgICAgICZvcGVyYXRpb24sCisgICAgICAgIG1iZWR0bHNfYnVmZmVyX29mZnNldChvdXRwdXQsIHVwZGF0ZV9vdXRwdXRfbGVuZ3RoKSwKKyAgICAgICAgb3V0cHV0X3NpemUgLSB1cGRhdGVfb3V0cHV0X2xlbmd0aCwgJmZpbmlzaF9vdXRwdXRfbGVuZ3RoKTsKKyAgICBpZiAoc3RhdHVzICE9IFBTQV9TVUNDRVNTKSB7CisgICAgICAgIGdvdG8gZXhpdDsKKyAgICB9CisKKyAgICAqb3V0cHV0X2xlbmd0aCA9IHVwZGF0ZV9vdXRwdXRfbGVuZ3RoICsgZmluaXNoX291dHB1dF9sZW5ndGg7CisKK2V4aXQ6CisgICAgaWYgKHN0YXR1cyA9PSBQU0FfU1VDQ0VTUykgeworICAgICAgICBzdGF0dXMgPSBtYmVkdGxzX3BzYV9jaXBoZXJfYWJvcnQoJm9wZXJhdGlvbik7CisgICAgfSBlbHNlIHsKKyAgICAgICAgbWJlZHRsc19wc2FfY2lwaGVyX2Fib3J0KCZvcGVyYXRpb24pOworICAgIH0KKworICAgIHJldHVybiBzdGF0dXM7Cit9CisKK3BzYV9zdGF0dXNfdCBtYmVkdGxzX3BzYV9jaXBoZXJfZGVjcnlwdCgKKyAgICBjb25zdCBwc2Ffa2V5X2F0dHJpYnV0ZXNfdCAqYXR0cmlidXRlcywKKyAgICBjb25zdCB1aW50OF90ICprZXlfYnVmZmVyLAorICAgIHNpemVfdCBrZXlfYnVmZmVyX3NpemUsCisgICAgcHNhX2FsZ29yaXRobV90IGFsZywKKyAgICBjb25zdCB1aW50OF90ICppbnB1dCwKKyAgICBzaXplX3QgaW5wdXRfbGVuZ3RoLAorICAgIHVpbnQ4X3QgKm91dHB1dCwKKyAgICBzaXplX3Qgb3V0cHV0X3NpemUsCisgICAgc2l6ZV90ICpvdXRwdXRfbGVuZ3RoKQoreworICAgIHBzYV9zdGF0dXNfdCBzdGF0dXMgPSBQU0FfRVJST1JfQ09SUlVQVElPTl9ERVRFQ1RFRDsKKyAgICBtYmVkdGxzX3BzYV9jaXBoZXJfb3BlcmF0aW9uX3Qgb3BlcmF0aW9uID0gTUJFRFRMU19QU0FfQ0lQSEVSX09QRVJBVElPTl9JTklUOworICAgIHNpemVfdCBvbGVuZ3RoLCBhY2N1bXVsYXRlZF9sZW5ndGg7CisKKyAgICBzdGF0dXMgPSBtYmVkdGxzX3BzYV9jaXBoZXJfZGVjcnlwdF9zZXR1cCgmb3BlcmF0aW9uLCBhdHRyaWJ1dGVzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtleV9idWZmZXIsIGtleV9idWZmZXJfc2l6ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbGcpOworICAgIGlmIChzdGF0dXMgIT0gUFNBX1NVQ0NFU1MpIHsKKyAgICAgICAgZ290byBleGl0OworICAgIH0KKworICAgIGlmIChvcGVyYXRpb24uaXZfbGVuZ3RoID4gMCkgeworICAgICAgICBzdGF0dXMgPSBtYmVkdGxzX3BzYV9jaXBoZXJfc2V0X2l2KCZvcGVyYXRpb24sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5wdXQsIG9wZXJhdGlvbi5pdl9sZW5ndGgpOworICAgICAgICBpZiAoc3RhdHVzICE9IFBTQV9TVUNDRVNTKSB7CisgICAgICAgICAgICBnb3RvIGV4aXQ7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBzdGF0dXMgPSBtYmVkdGxzX3BzYV9jaXBoZXJfdXBkYXRlKAorICAgICAgICAmb3BlcmF0aW9uLAorICAgICAgICBtYmVkdGxzX2J1ZmZlcl9vZmZzZXRfY29uc3QoaW5wdXQsIG9wZXJhdGlvbi5pdl9sZW5ndGgpLAorICAgICAgICBpbnB1dF9sZW5ndGggLSBvcGVyYXRpb24uaXZfbGVuZ3RoLAorICAgICAgICBvdXRwdXQsIG91dHB1dF9zaXplLCAmb2xlbmd0aCk7CisgICAgaWYgKHN0YXR1cyAhPSBQU0FfU1VDQ0VTUykgeworICAgICAgICBnb3RvIGV4aXQ7CisgICAgfQorCisgICAgYWNjdW11bGF0ZWRfbGVuZ3RoID0gb2xlbmd0aDsKKworICAgIHN0YXR1cyA9IG1iZWR0bHNfcHNhX2NpcGhlcl9maW5pc2goCisgICAgICAgICZvcGVyYXRpb24sCisgICAgICAgIG1iZWR0bHNfYnVmZmVyX29mZnNldChvdXRwdXQsIGFjY3VtdWxhdGVkX2xlbmd0aCksCisgICAgICAgIG91dHB1dF9zaXplIC0gYWNjdW11bGF0ZWRfbGVuZ3RoLCAmb2xlbmd0aCk7CisgICAgaWYgKHN0YXR1cyAhPSBQU0FfU1VDQ0VTUykgeworICAgICAgICBnb3RvIGV4aXQ7CisgICAgfQorCisgICAgKm91dHB1dF9sZW5ndGggPSBhY2N1bXVsYXRlZF9sZW5ndGggKyBvbGVuZ3RoOworCitleGl0OgorICAgIGlmIChzdGF0dXMgPT0gUFNBX1NVQ0NFU1MpIHsKKyAgICAgICAgc3RhdHVzID0gbWJlZHRsc19wc2FfY2lwaGVyX2Fib3J0KCZvcGVyYXRpb24pOworICAgIH0gZWxzZSB7CisgICAgICAgIG1iZWR0bHNfcHNhX2NpcGhlcl9hYm9ydCgmb3BlcmF0aW9uKTsKKyAgICB9CisKKyAgICByZXR1cm4gc3RhdHVzOworfQorI2VuZGlmIC8qIE1CRURUTFNfUFNBX0JVSUxUSU5fQ0lQSEVSICovCisKKyNlbmRpZiAvKiBNQkVEVExTX1BTQV9DUllQVE9fQyAqLwpkaWZmIC0tZ2l0IGEvbGlicmFyeS9wc2FfY3J5cHRvX2NpcGhlci5oIGIvdGYtcHNhLWNyeXB0by9jb3JlL3BzYV9jcnlwdG9fY2lwaGVyLmgKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIGxpYnJhcnkvcHNhX2NyeXB0b19jaXBoZXIuaApyZW5hbWUgdG8gdGYtcHNhLWNyeXB0by9jb3JlL3BzYV9jcnlwdG9fY2lwaGVyLmgKZGlmZiAtLWdpdCBhL2xpYnJhcnkvcHNhX2NyeXB0b19jbGllbnQuYyBiL3RmLXBzYS1jcnlwdG8vY29yZS9wc2FfY3J5cHRvX2NsaWVudC5jCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBsaWJyYXJ5L3BzYV9jcnlwdG9fY2xpZW50LmMKcmVuYW1lIHRvIHRmLXBzYS1jcnlwdG8vY29yZS9wc2FfY3J5cHRvX2NsaWVudC5jCmRpZmYgLS1naXQgYS9saWJyYXJ5L3BzYV9jcnlwdG9fY29yZS5oIGIvdGYtcHNhLWNyeXB0by9jb3JlL3BzYV9jcnlwdG9fY29yZS5oCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBsaWJyYXJ5L3BzYV9jcnlwdG9fY29yZS5oCnJlbmFtZSB0byB0Zi1wc2EtY3J5cHRvL2NvcmUvcHNhX2NyeXB0b19jb3JlLmgKZGlmZiAtLWdpdCBhL2xpYnJhcnkvcHNhX2NyeXB0b19jb3JlX2NvbW1vbi5oIGIvdGYtcHNhLWNyeXB0by9jb3JlL3BzYV9jcnlwdG9fY29yZV9jb21tb24uaApzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gbGlicmFyeS9wc2FfY3J5cHRvX2NvcmVfY29tbW9uLmgKcmVuYW1lIHRvIHRmLXBzYS1jcnlwdG8vY29yZS9wc2FfY3J5cHRvX2NvcmVfY29tbW9uLmgKZGlmZiAtLWdpdCBhL2xpYnJhcnkvcHNhX2NyeXB0b19kcml2ZXJfd3JhcHBlcnNfbm9fc3RhdGljLmggYi90Zi1wc2EtY3J5cHRvL2NvcmUvcHNhX2NyeXB0b19kcml2ZXJfd3JhcHBlcnNfbm9fc3RhdGljLmgKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIGxpYnJhcnkvcHNhX2NyeXB0b19kcml2ZXJfd3JhcHBlcnNfbm9fc3RhdGljLmgKcmVuYW1lIHRvIHRmLXBzYS1jcnlwdG8vY29yZS9wc2FfY3J5cHRvX2RyaXZlcl93cmFwcGVyc19ub19zdGF0aWMuaApkaWZmIC0tZ2l0IGEvbGlicmFyeS9wc2FfY3J5cHRvX2VjcC5jIGIvdGYtcHNhLWNyeXB0by9jb3JlL3BzYV9jcnlwdG9fZWNwLmMKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIGxpYnJhcnkvcHNhX2NyeXB0b19lY3AuYwpyZW5hbWUgdG8gdGYtcHNhLWNyeXB0by9jb3JlL3BzYV9jcnlwdG9fZWNwLmMKZGlmZiAtLWdpdCBhL2xpYnJhcnkvcHNhX2NyeXB0b19lY3AuaCBiL3RmLXBzYS1jcnlwdG8vY29yZS9wc2FfY3J5cHRvX2VjcC5oCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBsaWJyYXJ5L3BzYV9jcnlwdG9fZWNwLmgKcmVuYW1lIHRvIHRmLXBzYS1jcnlwdG8vY29yZS9wc2FfY3J5cHRvX2VjcC5oCmRpZmYgLS1naXQgYS9saWJyYXJ5L3BzYV9jcnlwdG9fZmZkaC5jIGIvdGYtcHNhLWNyeXB0by9jb3JlL3BzYV9jcnlwdG9fZmZkaC5jCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBsaWJyYXJ5L3BzYV9jcnlwdG9fZmZkaC5jCnJlbmFtZSB0byB0Zi1wc2EtY3J5cHRvL2NvcmUvcHNhX2NyeXB0b19mZmRoLmMKZGlmZiAtLWdpdCBhL2xpYnJhcnkvcHNhX2NyeXB0b19mZmRoLmggYi90Zi1wc2EtY3J5cHRvL2NvcmUvcHNhX2NyeXB0b19mZmRoLmgKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIGxpYnJhcnkvcHNhX2NyeXB0b19mZmRoLmgKcmVuYW1lIHRvIHRmLXBzYS1jcnlwdG8vY29yZS9wc2FfY3J5cHRvX2ZmZGguaApkaWZmIC0tZ2l0IGEvbGlicmFyeS9wc2FfY3J5cHRvX2hhc2guYyBiL3RmLXBzYS1jcnlwdG8vY29yZS9wc2FfY3J5cHRvX2hhc2guYwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gbGlicmFyeS9wc2FfY3J5cHRvX2hhc2guYwpyZW5hbWUgdG8gdGYtcHNhLWNyeXB0by9jb3JlL3BzYV9jcnlwdG9faGFzaC5jCmRpZmYgLS1naXQgYS9saWJyYXJ5L3BzYV9jcnlwdG9faGFzaC5oIGIvdGYtcHNhLWNyeXB0by9jb3JlL3BzYV9jcnlwdG9faGFzaC5oCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBsaWJyYXJ5L3BzYV9jcnlwdG9faGFzaC5oCnJlbmFtZSB0byB0Zi1wc2EtY3J5cHRvL2NvcmUvcHNhX2NyeXB0b19oYXNoLmgKZGlmZiAtLWdpdCBhL2xpYnJhcnkvcHNhX2NyeXB0b19pbnZhc2l2ZS5oIGIvdGYtcHNhLWNyeXB0by9jb3JlL3BzYV9jcnlwdG9faW52YXNpdmUuaApzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gbGlicmFyeS9wc2FfY3J5cHRvX2ludmFzaXZlLmgKcmVuYW1lIHRvIHRmLXBzYS1jcnlwdG8vY29yZS9wc2FfY3J5cHRvX2ludmFzaXZlLmgKZGlmZiAtLWdpdCBhL2xpYnJhcnkvcHNhX2NyeXB0b19pdHMuaCBiL3RmLXBzYS1jcnlwdG8vY29yZS9wc2FfY3J5cHRvX2l0cy5oCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBsaWJyYXJ5L3BzYV9jcnlwdG9faXRzLmgKcmVuYW1lIHRvIHRmLXBzYS1jcnlwdG8vY29yZS9wc2FfY3J5cHRvX2l0cy5oCmRpZmYgLS1naXQgYS9saWJyYXJ5L3BzYV9jcnlwdG9fbWFjLmMgYi90Zi1wc2EtY3J5cHRvL2NvcmUvcHNhX2NyeXB0b19tYWMuYwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gbGlicmFyeS9wc2FfY3J5cHRvX21hYy5jCnJlbmFtZSB0byB0Zi1wc2EtY3J5cHRvL2NvcmUvcHNhX2NyeXB0b19tYWMuYwpkaWZmIC0tZ2l0IGEvbGlicmFyeS9wc2FfY3J5cHRvX21hYy5oIGIvdGYtcHNhLWNyeXB0by9jb3JlL3BzYV9jcnlwdG9fbWFjLmgKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIGxpYnJhcnkvcHNhX2NyeXB0b19tYWMuaApyZW5hbWUgdG8gdGYtcHNhLWNyeXB0by9jb3JlL3BzYV9jcnlwdG9fbWFjLmgKZGlmZiAtLWdpdCBhL2xpYnJhcnkvcHNhX2NyeXB0b19wYWtlLmMgYi90Zi1wc2EtY3J5cHRvL2NvcmUvcHNhX2NyeXB0b19wYWtlLmMKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIGxpYnJhcnkvcHNhX2NyeXB0b19wYWtlLmMKcmVuYW1lIHRvIHRmLXBzYS1jcnlwdG8vY29yZS9wc2FfY3J5cHRvX3Bha2UuYwpkaWZmIC0tZ2l0IGEvbGlicmFyeS9wc2FfY3J5cHRvX3Bha2UuaCBiL3RmLXBzYS1jcnlwdG8vY29yZS9wc2FfY3J5cHRvX3Bha2UuaApzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gbGlicmFyeS9wc2FfY3J5cHRvX3Bha2UuaApyZW5hbWUgdG8gdGYtcHNhLWNyeXB0by9jb3JlL3BzYV9jcnlwdG9fcGFrZS5oCmRpZmYgLS1naXQgYS90Zi1wc2EtY3J5cHRvL2NvcmUvcHNhX2NyeXB0b19yYW5kb21faW1wbC5oIGIvdGYtcHNhLWNyeXB0by9jb3JlL3BzYV9jcnlwdG9fcmFuZG9tX2ltcGwuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45MDQ5ODIyCi0tLSAvZGV2L251bGwKKysrIGIvdGYtcHNhLWNyeXB0by9jb3JlL3BzYV9jcnlwdG9fcmFuZG9tX2ltcGwuaApAQCAtMCwwICsxLDEzNSBAQAorLyoqIFxmaWxlIHBzYV9jcnlwdG9fcmFuZG9tX2ltcGwuaAorICoKKyAqIFxicmllZiBQU0EgY3J5cHRvIHJhbmRvbSBnZW5lcmF0b3IgaW1wbGVtZW50YXRpb24gYWJzdHJhY3Rpb24uCisgKi8KKy8qCisgKiAgQ29weXJpZ2h0IFRoZSBNYmVkIFRMUyBDb250cmlidXRvcnMKKyAqICBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMCBPUiBHUEwtMi4wLW9yLWxhdGVyCisgKi8KKworI2lmbmRlZiBQU0FfQ1JZUFRPX1JBTkRPTV9JTVBMX0gKKyNkZWZpbmUgUFNBX0NSWVBUT19SQU5ET01fSU1QTF9ICisKKyNpbmNsdWRlICJwc2FfdXRpbF9pbnRlcm5hbC5oIgorCisjaWYgZGVmaW5lZChNQkVEVExTX1BTQV9DUllQVE9fRVhURVJOQUxfUk5HKQorCit0eXBlZGVmIG1iZWR0bHNfcHNhX2V4dGVybmFsX3JhbmRvbV9jb250ZXh0X3QgbWJlZHRsc19wc2FfcmFuZG9tX2NvbnRleHRfdDsKKworI2Vsc2UgLyogTUJFRFRMU19QU0FfQ1JZUFRPX0VYVEVSTkFMX1JORyAqLworCisjaW5jbHVkZSAibWJlZHRscy9lbnRyb3B5LmgiCisKKy8qIENob29zZSBhIERSQkcgYmFzZWQgb24gY29uZmlndXJhdGlvbiBhbmQgYXZhaWxhYmlsaXR5ICovCisjaWYgZGVmaW5lZChNQkVEVExTX1BTQV9ITUFDX0RSQkdfTURfVFlQRSkKKworI2luY2x1ZGUgIm1iZWR0bHMvaG1hY19kcmJnLmgiCisKKyNlbGlmIGRlZmluZWQoTUJFRFRMU19DVFJfRFJCR19DKQorCisjaW5jbHVkZSAibWJlZHRscy9jdHJfZHJiZy5oIgorCisjZWxpZiBkZWZpbmVkKE1CRURUTFNfSE1BQ19EUkJHX0MpCisKKyNpbmNsdWRlICJtYmVkdGxzL2htYWNfZHJiZy5oIgorI2lmIGRlZmluZWQoTUJFRFRMU19NRF9DQU5fU0hBNTEyKSAmJiBkZWZpbmVkKFBTQV9XQU5UX0FMR19TSEFfMjU2KQorI2luY2x1ZGUgPGxpbWl0cy5oPgorI2lmIFNJWkVfTUFYID4gMHhmZmZmZmZmZgorLyogTG9va3MgbGlrZSBhIDY0LWJpdCBzeXN0ZW0sIHNvIHByZWZlciBTSEEtNTEyLiAqLworI2RlZmluZSBNQkVEVExTX1BTQV9ITUFDX0RSQkdfTURfVFlQRSBNQkVEVExTX01EX1NIQTUxMgorI2Vsc2UKKy8qIExvb2tzIGxpa2UgYSAzMi1iaXQgc3lzdGVtLCBzbyBwcmVmZXIgU0hBLTI1Ni4gKi8KKyNkZWZpbmUgTUJFRFRMU19QU0FfSE1BQ19EUkJHX01EX1RZUEUgTUJFRFRMU19NRF9TSEEyNTYKKyNlbmRpZgorI2VsaWYgZGVmaW5lZChNQkVEVExTX01EX0NBTl9TSEE1MTIpCisjZGVmaW5lIE1CRURUTFNfUFNBX0hNQUNfRFJCR19NRF9UWVBFIE1CRURUTFNfTURfU0hBNTEyCisjZWxpZiBkZWZpbmVkKFBTQV9XQU5UX0FMR19TSEFfMjU2KQorI2RlZmluZSBNQkVEVExTX1BTQV9ITUFDX0RSQkdfTURfVFlQRSBNQkVEVExTX01EX1NIQTI1NgorI2Vsc2UKKyNlcnJvciAiTm8gaGFzaCBhbGdvcml0aG0gYXZhaWxhYmxlIGZvciBITUFDX0RCUkcuIgorI2VuZGlmCisKKyNlbHNlIC8qICFNQkVEVExTX1BTQV9ITUFDX0RSQkdfTURfVFlQRSAmJiAhTUJFRFRMU19DVFJfRFJCR19DICYmICFNQkVEVExTX0hNQUNfRFJCR19DKi8KKworI2Vycm9yICJObyBEUkJHIG1vZHVsZSBhdmFpbGFibGUgZm9yIHRoZSBwc2FfY3J5cHRvIG1vZHVsZS4iCisKKyNlbmRpZiAvKiAhTUJFRFRMU19QU0FfSE1BQ19EUkJHX01EX1RZUEUgJiYgIU1CRURUTFNfQ1RSX0RSQkdfQyAmJiAhTUJFRFRMU19ITUFDX0RSQkdfQyovCisKKyNpZiBkZWZpbmVkKE1CRURUTFNfQ1RSX0RSQkdfQykKKyNpbmNsdWRlICJtYmVkdGxzL2N0cl9kcmJnLmgiCisjZWxpZiBkZWZpbmVkKE1CRURUTFNfSE1BQ19EUkJHX0MpCisjaW5jbHVkZSAibWJlZHRscy9obWFjX2RyYmcuaCIKKyNlbmRpZiAvKiAhTUJFRFRMU19DVFJfRFJCR19DICYmICFNQkVEVExTX0hNQUNfRFJCR19DICovCisKKy8qIFRoZSBtYXhpbXVtIG51bWJlciBvZiBieXRlcyB0aGF0IG1iZWR0bHNfcHNhX2dldF9yYW5kb20oKSBpcyBleHBlY3RlZCB0byByZXR1cm4uICovCisjaWYgZGVmaW5lZChNQkVEVExTX0NUUl9EUkJHX0MpCisjZGVmaW5lIE1CRURUTFNfUFNBX1JBTkRPTV9NQVhfUkVRVUVTVCBNQkVEVExTX0NUUl9EUkJHX01BWF9SRVFVRVNUCisjZWxpZiBkZWZpbmVkKE1CRURUTFNfSE1BQ19EUkJHX0MpCisjZGVmaW5lIE1CRURUTFNfUFNBX1JBTkRPTV9NQVhfUkVRVUVTVCBNQkVEVExTX0hNQUNfRFJCR19NQVhfUkVRVUVTVAorI2VuZGlmCisKKyNpZiBkZWZpbmVkKE1CRURUTFNfQ1RSX0RSQkdfQykKK3R5cGVkZWYgbWJlZHRsc19jdHJfZHJiZ19jb250ZXh0ICAgICAgICAgICAgbWJlZHRsc19wc2FfZHJiZ19jb250ZXh0X3Q7CisjZWxpZiBkZWZpbmVkKE1CRURUTFNfSE1BQ19EUkJHX0MpCit0eXBlZGVmIG1iZWR0bHNfaG1hY19kcmJnX2NvbnRleHQgICAgICAgICAgIG1iZWR0bHNfcHNhX2RyYmdfY29udGV4dF90OworI2VuZGlmIC8qICFNQkVEVExTX0NUUl9EUkJHX0MgJiYgIU1CRURUTFNfSE1BQ19EUkJHX0MgKi8KKwordHlwZWRlZiBzdHJ1Y3QgeworICAgIHZvaWQgKCogZW50cm9weV9pbml0KShtYmVkdGxzX2VudHJvcHlfY29udGV4dCAqY3R4KTsKKyAgICB2b2lkICgqIGVudHJvcHlfZnJlZSkobWJlZHRsc19lbnRyb3B5X2NvbnRleHQgKmN0eCk7CisgICAgbWJlZHRsc19lbnRyb3B5X2NvbnRleHQgZW50cm9weTsKKyAgICBtYmVkdGxzX3BzYV9kcmJnX2NvbnRleHRfdCBkcmJnOworfSBtYmVkdGxzX3BzYV9yYW5kb21fY29udGV4dF90OworCisvKiogSW5pdGlhbGl6ZSB0aGUgUFNBIERSQkcuCisgKgorICogXHBhcmFtIHBfcm5nICAgICAgICBQb2ludGVyIHRvIHRoZSBNYmVkIFRMUyBEUkJHIHN0YXRlLgorICovCitzdGF0aWMgaW5saW5lIHZvaWQgbWJlZHRsc19wc2FfZHJiZ19pbml0KG1iZWR0bHNfcHNhX2RyYmdfY29udGV4dF90ICpwX3JuZykKK3sKKyNpZiBkZWZpbmVkKE1CRURUTFNfQ1RSX0RSQkdfQykKKyAgICBtYmVkdGxzX2N0cl9kcmJnX2luaXQocF9ybmcpOworI2VsaWYgZGVmaW5lZChNQkVEVExTX0hNQUNfRFJCR19DKQorICAgIG1iZWR0bHNfaG1hY19kcmJnX2luaXQocF9ybmcpOworI2VuZGlmCit9CisKKy8qKiBEZWluaXRpYWxpemUgdGhlIFBTQSBEUkJHLgorICoKKyAqIFxwYXJhbSBwX3JuZyAgICAgICAgUG9pbnRlciB0byB0aGUgTWJlZCBUTFMgRFJCRyBzdGF0ZS4KKyAqLworc3RhdGljIGlubGluZSB2b2lkIG1iZWR0bHNfcHNhX2RyYmdfZnJlZShtYmVkdGxzX3BzYV9kcmJnX2NvbnRleHRfdCAqcF9ybmcpCit7CisjaWYgZGVmaW5lZChNQkVEVExTX0NUUl9EUkJHX0MpCisgICAgbWJlZHRsc19jdHJfZHJiZ19mcmVlKHBfcm5nKTsKKyNlbGlmIGRlZmluZWQoTUJFRFRMU19ITUFDX0RSQkdfQykKKyAgICBtYmVkdGxzX2htYWNfZHJiZ19mcmVlKHBfcm5nKTsKKyNlbmRpZgorfQorCisvKiogU2VlZCB0aGUgUFNBIERSQkcuCisgKgorICogXHBhcmFtIGVudHJvcHkgICAgICAgQW4gZW50cm9weSBjb250ZXh0IHRvIHJlYWQgdGhlIHNlZWQgZnJvbS4KKyAqIFxwYXJhbSBjdXN0b20gICAgICAgIFRoZSBwZXJzb25hbGl6YXRpb24gc3RyaW5nLgorICogICAgICAgICAgICAgICAgICAgICAgVGhpcyBjYW4gYmUgXGMgTlVMTCwgaW4gd2hpY2ggY2FzZSB0aGUgcGVyc29uYWxpemF0aW9uCisgKiAgICAgICAgICAgICAgICAgICAgICBzdHJpbmcgaXMgZW1wdHkgcmVnYXJkbGVzcyBvZiB0aGUgdmFsdWUgb2YgXHAgbGVuLgorICogXHBhcmFtIGxlbiAgICAgICAgICAgVGhlIGxlbmd0aCBvZiB0aGUgcGVyc29uYWxpemF0aW9uIHN0cmluZy4KKyAqCisgKiBccmV0dXJuICAgICAgICAgICAgICBcYyAwIG9uIHN1Y2Nlc3MuCisgKiBccmV0dXJuICAgICAgICAgICAgICBBbiBNYmVkIFRMUyBlcnJvciBjb2RlIChcYyBNQkVEVExTX0VSUl94eHgpIG9uIGZhaWx1cmUuCisgKi8KK3N0YXRpYyBpbmxpbmUgaW50IG1iZWR0bHNfcHNhX2RyYmdfc2VlZChtYmVkdGxzX3BzYV9kcmJnX2NvbnRleHRfdCAqZHJiZ19jdHgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWJlZHRsc19lbnRyb3B5X2NvbnRleHQgKmVudHJvcHksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdW5zaWduZWQgY2hhciAqY3VzdG9tLCBzaXplX3QgbGVuKQoreworI2lmIGRlZmluZWQoTUJFRFRMU19DVFJfRFJCR19DKQorICAgIHJldHVybiBtYmVkdGxzX2N0cl9kcmJnX3NlZWQoZHJiZ19jdHgsIG1iZWR0bHNfZW50cm9weV9mdW5jLCBlbnRyb3B5LCBjdXN0b20sIGxlbik7CisjZWxpZiBkZWZpbmVkKE1CRURUTFNfSE1BQ19EUkJHX0MpCisgICAgY29uc3QgbWJlZHRsc19tZF9pbmZvX3QgKm1kX2luZm8gPSBtYmVkdGxzX21kX2luZm9fZnJvbV90eXBlKE1CRURUTFNfUFNBX0hNQUNfRFJCR19NRF9UWVBFKTsKKyAgICByZXR1cm4gbWJlZHRsc19obWFjX2RyYmdfc2VlZChkcmJnX2N0eCwgbWRfaW5mbywgbWJlZHRsc19lbnRyb3B5X2Z1bmMsIGVudHJvcHksIGN1c3RvbSwgbGVuKTsKKyNlbmRpZgorfQorCisjZW5kaWYgLyogTUJFRFRMU19QU0FfQ1JZUFRPX0VYVEVSTkFMX1JORyAqLworCisjZW5kaWYgLyogUFNBX0NSWVBUT19SQU5ET01fSU1QTF9IICovCmRpZmYgLS1naXQgYS9saWJyYXJ5L3BzYV9jcnlwdG9fcnNhLmMgYi90Zi1wc2EtY3J5cHRvL2NvcmUvcHNhX2NyeXB0b19yc2EuYwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gbGlicmFyeS9wc2FfY3J5cHRvX3JzYS5jCnJlbmFtZSB0byB0Zi1wc2EtY3J5cHRvL2NvcmUvcHNhX2NyeXB0b19yc2EuYwpkaWZmIC0tZ2l0IGEvbGlicmFyeS9wc2FfY3J5cHRvX3JzYS5oIGIvdGYtcHNhLWNyeXB0by9jb3JlL3BzYV9jcnlwdG9fcnNhLmgKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIGxpYnJhcnkvcHNhX2NyeXB0b19yc2EuaApyZW5hbWUgdG8gdGYtcHNhLWNyeXB0by9jb3JlL3BzYV9jcnlwdG9fcnNhLmgKZGlmZiAtLWdpdCBhL2xpYnJhcnkvcHNhX2NyeXB0b19zZS5jIGIvdGYtcHNhLWNyeXB0by9jb3JlL3BzYV9jcnlwdG9fc2UuYwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gbGlicmFyeS9wc2FfY3J5cHRvX3NlLmMKcmVuYW1lIHRvIHRmLXBzYS1jcnlwdG8vY29yZS9wc2FfY3J5cHRvX3NlLmMKZGlmZiAtLWdpdCBhL2xpYnJhcnkvcHNhX2NyeXB0b19zZS5oIGIvdGYtcHNhLWNyeXB0by9jb3JlL3BzYV9jcnlwdG9fc2UuaApzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gbGlicmFyeS9wc2FfY3J5cHRvX3NlLmgKcmVuYW1lIHRvIHRmLXBzYS1jcnlwdG8vY29yZS9wc2FfY3J5cHRvX3NlLmgKZGlmZiAtLWdpdCBhL2xpYnJhcnkvcHNhX2NyeXB0b19zbG90X21hbmFnZW1lbnQuYyBiL3RmLXBzYS1jcnlwdG8vY29yZS9wc2FfY3J5cHRvX3Nsb3RfbWFuYWdlbWVudC5jCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBsaWJyYXJ5L3BzYV9jcnlwdG9fc2xvdF9tYW5hZ2VtZW50LmMKcmVuYW1lIHRvIHRmLXBzYS1jcnlwdG8vY29yZS9wc2FfY3J5cHRvX3Nsb3RfbWFuYWdlbWVudC5jCmRpZmYgLS1naXQgYS9saWJyYXJ5L3BzYV9jcnlwdG9fc2xvdF9tYW5hZ2VtZW50LmggYi90Zi1wc2EtY3J5cHRvL2NvcmUvcHNhX2NyeXB0b19zbG90X21hbmFnZW1lbnQuaApzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gbGlicmFyeS9wc2FfY3J5cHRvX3Nsb3RfbWFuYWdlbWVudC5oCnJlbmFtZSB0byB0Zi1wc2EtY3J5cHRvL2NvcmUvcHNhX2NyeXB0b19zbG90X21hbmFnZW1lbnQuaApkaWZmIC0tZ2l0IGEvbGlicmFyeS9wc2FfY3J5cHRvX3N0b3JhZ2UuYyBiL3RmLXBzYS1jcnlwdG8vY29yZS9wc2FfY3J5cHRvX3N0b3JhZ2UuYwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gbGlicmFyeS9wc2FfY3J5cHRvX3N0b3JhZ2UuYwpyZW5hbWUgdG8gdGYtcHNhLWNyeXB0by9jb3JlL3BzYV9jcnlwdG9fc3RvcmFnZS5jCmRpZmYgLS1naXQgYS9saWJyYXJ5L3BzYV9jcnlwdG9fc3RvcmFnZS5oIGIvdGYtcHNhLWNyeXB0by9jb3JlL3BzYV9jcnlwdG9fc3RvcmFnZS5oCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBsaWJyYXJ5L3BzYV9jcnlwdG9fc3RvcmFnZS5oCnJlbmFtZSB0byB0Zi1wc2EtY3J5cHRvL2NvcmUvcHNhX2NyeXB0b19zdG9yYWdlLmgKZGlmZiAtLWdpdCBhL2xpYnJhcnkvcHNhX2l0c19maWxlLmMgYi90Zi1wc2EtY3J5cHRvL2NvcmUvcHNhX2l0c19maWxlLmMKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIGxpYnJhcnkvcHNhX2l0c19maWxlLmMKcmVuYW1lIHRvIHRmLXBzYS1jcnlwdG8vY29yZS9wc2FfaXRzX2ZpbGUuYwpkaWZmIC0tZ2l0IGEvdGYtcHNhLWNyeXB0by9jb3JlL3BzYV91dGlsLmMgYi90Zi1wc2EtY3J5cHRvL2NvcmUvcHNhX3V0aWwuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kYmQ4MjhlCi0tLSAvZGV2L251bGwKKysrIGIvdGYtcHNhLWNyeXB0by9jb3JlL3BzYV91dGlsLmMKQEAgLTAsMCArMSw2MDIgQEAKKy8qCisgKiAgUFNBIGhhc2hpbmcgbGF5ZXIgb24gdG9wIG9mIE1iZWQgVExTIHNvZnR3YXJlIGNyeXB0bworICovCisvKgorICogIENvcHlyaWdodCBUaGUgTWJlZCBUTFMgQ29udHJpYnV0b3JzCisgKiAgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjAgT1IgR1BMLTIuMC1vci1sYXRlcgorICovCisKKyNpbmNsdWRlICJjb21tb24uaCIKKworLyogVGhpcyBpcyBuZWVkZWQgZm9yIE1CRURUTFNfRVJSX1hYWCBtYWNyb3MgKi8KKyNpbmNsdWRlIDxtYmVkdGxzL2Vycm9yLmg+CisKKyNpZiBkZWZpbmVkKE1CRURUTFNfQVNOMV9XUklURV9DKQorI2luY2x1ZGUgPG1iZWR0bHMvYXNuMXdyaXRlLmg+CisjaW5jbHVkZSA8cHNhL2NyeXB0b19zaXplcy5oPgorI2VuZGlmCisKKyNpbmNsdWRlICJwc2FfdXRpbF9pbnRlcm5hbC5oIgorCisjaWYgZGVmaW5lZChNQkVEVExTX1BTQV9DUllQVE9fQ0xJRU5UKQorCisjaW5jbHVkZSA8cHNhL2NyeXB0by5oPgorCisjaWYgZGVmaW5lZChNQkVEVExTX01EX0xJR0hUKQorI2luY2x1ZGUgPG1iZWR0bHMvbWQuaD4KKyNlbmRpZgorI2lmIGRlZmluZWQoTUJFRFRMU19MTVNfQykKKyNpbmNsdWRlIDxtYmVkdGxzL2xtcy5oPgorI2VuZGlmCisjaWYgZGVmaW5lZChNQkVEVExTX1NTTF9UTFNfQykgJiYgXAorICAgIChkZWZpbmVkKE1CRURUTFNfVVNFX1BTQV9DUllQVE8pIHx8IGRlZmluZWQoTUJFRFRMU19TU0xfUFJPVE9fVExTMV8zKSkKKyNpbmNsdWRlIDxtYmVkdGxzL3NzbC5oPgorI2VuZGlmCisjaWYgZGVmaW5lZChQU0FfV0FOVF9LRVlfVFlQRV9SU0FfUFVCTElDX0tFWSkgfHwgICAgXAorICAgIGRlZmluZWQoUFNBX1dBTlRfS0VZX1RZUEVfUlNBX0tFWV9QQUlSX0JBU0lDKQorI2luY2x1ZGUgPG1iZWR0bHMvcnNhLmg+CisjZW5kaWYKKyNpZiBkZWZpbmVkKE1CRURUTFNfVVNFX1BTQV9DUllQVE8pICYmIFwKKyAgICBkZWZpbmVkKFBTQV9XQU5UX0tFWV9UWVBFX0VDQ19QVUJMSUNfS0VZKQorI2luY2x1ZGUgPG1iZWR0bHMvZWNwLmg+CisjZW5kaWYKKyNpZiBkZWZpbmVkKE1CRURUTFNfUEtfQykKKyNpbmNsdWRlIDxtYmVkdGxzL3BrLmg+CisjZW5kaWYKKyNpZiBkZWZpbmVkKE1CRURUTFNfQkxPQ0tfQ0lQSEVSX1NPTUVfUFNBKQorI2luY2x1ZGUgPG1iZWR0bHMvY2lwaGVyLmg+CisjZW5kaWYKKyNpbmNsdWRlIDxtYmVkdGxzL2VudHJvcHkuaD4KKworLyogUFNBX1NVQ0NFU1MgaXMga2VwdCBhdCB0aGUgdG9wIG9mIGVhY2ggZXJyb3IgdGFibGUgc2luY2UKKyAqIGl0J3MgdGhlIG1vc3QgY29tbW9uIHN0YXR1cyB3aGVuIGV2ZXJ5dGhpbmcgZnVuY3Rpb25zIHByb3Blcmx5LiAqLworI2lmIGRlZmluZWQoTUJFRFRMU19NRF9MSUdIVCkKK2NvbnN0IG1iZWR0bHNfZXJyb3JfcGFpcl90IHBzYV90b19tZF9lcnJvcnNbXSA9Cit7CisgICAgeyBQU0FfU1VDQ0VTUywgICAgICAgICAgICAgICAgICAgICAwIH0sCisgICAgeyBQU0FfRVJST1JfTk9UX1NVUFBPUlRFRCwgICAgICAgICBNQkVEVExTX0VSUl9NRF9GRUFUVVJFX1VOQVZBSUxBQkxFIH0sCisgICAgeyBQU0FfRVJST1JfSU5WQUxJRF9BUkdVTUVOVCwgICAgICBNQkVEVExTX0VSUl9NRF9CQURfSU5QVVRfREFUQSB9LAorICAgIHsgUFNBX0VSUk9SX0lOU1VGRklDSUVOVF9NRU1PUlksICAgTUJFRFRMU19FUlJfTURfQUxMT0NfRkFJTEVEIH0KK307CisjZW5kaWYKKworI2lmIGRlZmluZWQoTUJFRFRMU19CTE9DS19DSVBIRVJfU09NRV9QU0EpCitjb25zdCBtYmVkdGxzX2Vycm9yX3BhaXJfdCBwc2FfdG9fY2lwaGVyX2Vycm9yc1tdID0KK3sKKyAgICB7IFBTQV9TVUNDRVNTLCAgICAgICAgICAgICAgICAgICAgIDAgfSwKKyAgICB7IFBTQV9FUlJPUl9OT1RfU1VQUE9SVEVELCAgICAgICAgIE1CRURUTFNfRVJSX0NJUEhFUl9GRUFUVVJFX1VOQVZBSUxBQkxFIH0sCisgICAgeyBQU0FfRVJST1JfSU5WQUxJRF9BUkdVTUVOVCwgICAgICBNQkVEVExTX0VSUl9DSVBIRVJfQkFEX0lOUFVUX0RBVEEgfSwKKyAgICB7IFBTQV9FUlJPUl9JTlNVRkZJQ0lFTlRfTUVNT1JZLCAgIE1CRURUTFNfRVJSX0NJUEhFUl9BTExPQ19GQUlMRUQgfQorfTsKKyNlbmRpZgorCisjaWYgZGVmaW5lZChNQkVEVExTX0xNU19DKQorY29uc3QgbWJlZHRsc19lcnJvcl9wYWlyX3QgcHNhX3RvX2xtc19lcnJvcnNbXSA9Cit7CisgICAgeyBQU0FfU1VDQ0VTUywgICAgICAgICAgICAgICAgICAgICAwIH0sCisgICAgeyBQU0FfRVJST1JfQlVGRkVSX1RPT19TTUFMTCwgICAgICBNQkVEVExTX0VSUl9MTVNfQlVGRkVSX1RPT19TTUFMTCB9LAorICAgIHsgUFNBX0VSUk9SX0lOVkFMSURfQVJHVU1FTlQsICAgICAgTUJFRFRMU19FUlJfTE1TX0JBRF9JTlBVVF9EQVRBIH0KK307CisjZW5kaWYKKworI2lmIGRlZmluZWQoTUJFRFRMU19TU0xfVExTX0MpICYmIFwKKyAgICAoZGVmaW5lZChNQkVEVExTX1VTRV9QU0FfQ1JZUFRPKSB8fCBkZWZpbmVkKE1CRURUTFNfU1NMX1BST1RPX1RMUzFfMykpCitjb25zdCBtYmVkdGxzX2Vycm9yX3BhaXJfdCBwc2FfdG9fc3NsX2Vycm9yc1tdID0KK3sKKyAgICB7IFBTQV9TVUNDRVNTLCAgICAgICAgICAgICAgICAgICAgIDAgfSwKKyAgICB7IFBTQV9FUlJPUl9JTlNVRkZJQ0lFTlRfTUVNT1JZLCAgIE1CRURUTFNfRVJSX1NTTF9BTExPQ19GQUlMRUQgfSwKKyAgICB7IFBTQV9FUlJPUl9OT1RfU1VQUE9SVEVELCAgICAgICAgIE1CRURUTFNfRVJSX1NTTF9GRUFUVVJFX1VOQVZBSUxBQkxFIH0sCisgICAgeyBQU0FfRVJST1JfSU5WQUxJRF9TSUdOQVRVUkUsICAgICBNQkVEVExTX0VSUl9TU0xfSU5WQUxJRF9NQUMgfSwKKyAgICB7IFBTQV9FUlJPUl9JTlZBTElEX0FSR1VNRU5ULCAgICAgIE1CRURUTFNfRVJSX1NTTF9CQURfSU5QVVRfREFUQSB9LAorICAgIHsgUFNBX0VSUk9SX0JBRF9TVEFURSwgICAgICAgICAgICAgTUJFRFRMU19FUlJfU1NMX0lOVEVSTkFMX0VSUk9SIH0sCisgICAgeyBQU0FfRVJST1JfQlVGRkVSX1RPT19TTUFMTCwgICAgICBNQkVEVExTX0VSUl9TU0xfQlVGRkVSX1RPT19TTUFMTCB9Cit9OworI2VuZGlmCisKKyNpZiBkZWZpbmVkKFBTQV9XQU5UX0tFWV9UWVBFX1JTQV9QVUJMSUNfS0VZKSB8fCAgICBcCisgICAgZGVmaW5lZChQU0FfV0FOVF9LRVlfVFlQRV9SU0FfS0VZX1BBSVJfQkFTSUMpCitjb25zdCBtYmVkdGxzX2Vycm9yX3BhaXJfdCBwc2FfdG9fcGtfcnNhX2Vycm9yc1tdID0KK3sKKyAgICB7IFBTQV9TVUNDRVNTLCAgICAgICAgICAgICAgICAgICAgIDAgfSwKKyAgICB7IFBTQV9FUlJPUl9OT1RfUEVSTUlUVEVELCAgICAgICAgIE1CRURUTFNfRVJSX1JTQV9CQURfSU5QVVRfREFUQSB9LAorICAgIHsgUFNBX0VSUk9SX0lOVkFMSURfQVJHVU1FTlQsICAgICAgTUJFRFRMU19FUlJfUlNBX0JBRF9JTlBVVF9EQVRBIH0sCisgICAgeyBQU0FfRVJST1JfSU5WQUxJRF9IQU5ETEUsICAgICAgICBNQkVEVExTX0VSUl9SU0FfQkFEX0lOUFVUX0RBVEEgfSwKKyAgICB7IFBTQV9FUlJPUl9CVUZGRVJfVE9PX1NNQUxMLCAgICAgIE1CRURUTFNfRVJSX1JTQV9PVVRQVVRfVE9PX0xBUkdFIH0sCisgICAgeyBQU0FfRVJST1JfSU5TVUZGSUNJRU5UX0VOVFJPUFksICBNQkVEVExTX0VSUl9SU0FfUk5HX0ZBSUxFRCB9LAorICAgIHsgUFNBX0VSUk9SX0lOVkFMSURfU0lHTkFUVVJFLCAgICAgTUJFRFRMU19FUlJfUlNBX1ZFUklGWV9GQUlMRUQgfSwKKyAgICB7IFBTQV9FUlJPUl9JTlZBTElEX1BBRERJTkcsICAgICAgIE1CRURUTFNfRVJSX1JTQV9JTlZBTElEX1BBRERJTkcgfQorfTsKKyNlbmRpZgorCisjaWYgZGVmaW5lZChNQkVEVExTX1VTRV9QU0FfQ1JZUFRPKSAmJiBcCisgICAgZGVmaW5lZChQU0FfV0FOVF9LRVlfVFlQRV9FQ0NfUFVCTElDX0tFWSkKK2NvbnN0IG1iZWR0bHNfZXJyb3JfcGFpcl90IHBzYV90b19wa19lY2RzYV9lcnJvcnNbXSA9Cit7CisgICAgeyBQU0FfU1VDQ0VTUywgICAgICAgICAgICAgICAgICAgICAwIH0sCisgICAgeyBQU0FfRVJST1JfTk9UX1BFUk1JVFRFRCwgICAgICAgICBNQkVEVExTX0VSUl9FQ1BfQkFEX0lOUFVUX0RBVEEgfSwKKyAgICB7IFBTQV9FUlJPUl9JTlZBTElEX0FSR1VNRU5ULCAgICAgIE1CRURUTFNfRVJSX0VDUF9CQURfSU5QVVRfREFUQSB9LAorICAgIHsgUFNBX0VSUk9SX0lOVkFMSURfSEFORExFLCAgICAgICAgTUJFRFRMU19FUlJfRUNQX0ZFQVRVUkVfVU5BVkFJTEFCTEUgfSwKKyAgICB7IFBTQV9FUlJPUl9CVUZGRVJfVE9PX1NNQUxMLCAgICAgIE1CRURUTFNfRVJSX0VDUF9CVUZGRVJfVE9PX1NNQUxMIH0sCisgICAgeyBQU0FfRVJST1JfSU5TVUZGSUNJRU5UX0VOVFJPUFksICBNQkVEVExTX0VSUl9FQ1BfUkFORE9NX0ZBSUxFRCB9LAorICAgIHsgUFNBX0VSUk9SX0lOVkFMSURfU0lHTkFUVVJFLCAgICAgTUJFRFRMU19FUlJfRUNQX1ZFUklGWV9GQUlMRUQgfQorfTsKKyNlbmRpZgorCitpbnQgcHNhX2dlbmVyaWNfc3RhdHVzX3RvX21iZWR0bHMocHNhX3N0YXR1c190IHN0YXR1cykKK3sKKyAgICBzd2l0Y2ggKHN0YXR1cykgeworICAgICAgICBjYXNlIFBTQV9TVUNDRVNTOgorICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIGNhc2UgUFNBX0VSUk9SX05PVF9TVVBQT1JURUQ6CisgICAgICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfUExBVEZPUk1fRkVBVFVSRV9VTlNVUFBPUlRFRDsKKyAgICAgICAgY2FzZSBQU0FfRVJST1JfQ09SUlVQVElPTl9ERVRFQ1RFRDoKKyAgICAgICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9FUlJPUl9DT1JSVVBUSU9OX0RFVEVDVEVEOworICAgICAgICBjYXNlIFBTQV9FUlJPUl9DT01NVU5JQ0FUSU9OX0ZBSUxVUkU6CisgICAgICAgIGNhc2UgUFNBX0VSUk9SX0hBUkRXQVJFX0ZBSUxVUkU6CisgICAgICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfUExBVEZPUk1fSFdfQUNDRUxfRkFJTEVEOworICAgICAgICBjYXNlIFBTQV9FUlJPUl9OT1RfUEVSTUlUVEVEOgorICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgcmV0dXJuIE1CRURUTFNfRVJSX0VSUk9SX0dFTkVSSUNfRVJST1I7CisgICAgfQorfQorCitpbnQgcHNhX3N0YXR1c190b19tYmVkdGxzKHBzYV9zdGF0dXNfdCBzdGF0dXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IG1iZWR0bHNfZXJyb3JfcGFpcl90ICpsb2NhbF90cmFuc2xhdGlvbnMsCisgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBsb2NhbF9lcnJvcnNfbnVtLAorICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgKCpmYWxsYmFja19mKShwc2Ffc3RhdHVzX3QpKQoreworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbG9jYWxfZXJyb3JzX251bTsgaSsrKSB7CisgICAgICAgIGlmIChzdGF0dXMgPT0gbG9jYWxfdHJhbnNsYXRpb25zW2ldLnBzYV9zdGF0dXMpIHsKKyAgICAgICAgICAgIHJldHVybiBsb2NhbF90cmFuc2xhdGlvbnNbaV0ubWJlZHRsc19lcnJvcjsKKyAgICAgICAgfQorICAgIH0KKyAgICByZXR1cm4gZmFsbGJhY2tfZihzdGF0dXMpOworfQorCisjaWYgZGVmaW5lZChNQkVEVExTX1BLX0MpCitpbnQgcHNhX3BrX3N0YXR1c190b19tYmVkdGxzKHBzYV9zdGF0dXNfdCBzdGF0dXMpCit7CisgICAgc3dpdGNoIChzdGF0dXMpIHsKKyAgICAgICAgY2FzZSBQU0FfRVJST1JfSU5WQUxJRF9IQU5ETEU6CisgICAgICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfUEtfS0VZX0lOVkFMSURfRk9STUFUOworICAgICAgICBjYXNlIFBTQV9FUlJPUl9CVUZGRVJfVE9PX1NNQUxMOgorICAgICAgICAgICAgcmV0dXJuIE1CRURUTFNfRVJSX1BLX0JVRkZFUl9UT09fU01BTEw7CisgICAgICAgIGNhc2UgUFNBX0VSUk9SX05PVF9TVVBQT1JURUQ6CisgICAgICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfUEtfRkVBVFVSRV9VTkFWQUlMQUJMRTsKKyAgICAgICAgY2FzZSBQU0FfRVJST1JfSU5WQUxJRF9BUkdVTUVOVDoKKyAgICAgICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9QS19JTlZBTElEX0FMRzsKKyAgICAgICAgY2FzZSBQU0FfRVJST1JfTk9UX1BFUk1JVFRFRDoKKyAgICAgICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9QS19UWVBFX01JU01BVENIOworICAgICAgICBjYXNlIFBTQV9FUlJPUl9JTlNVRkZJQ0lFTlRfTUVNT1JZOgorICAgICAgICAgICAgcmV0dXJuIE1CRURUTFNfRVJSX1BLX0FMTE9DX0ZBSUxFRDsKKyAgICAgICAgY2FzZSBQU0FfRVJST1JfQkFEX1NUQVRFOgorICAgICAgICAgICAgcmV0dXJuIE1CRURUTFNfRVJSX1BLX0JBRF9JTlBVVF9EQVRBOworICAgICAgICBjYXNlIFBTQV9FUlJPUl9EQVRBX0NPUlJVUFQ6CisgICAgICAgIGNhc2UgUFNBX0VSUk9SX0RBVEFfSU5WQUxJRDoKKyAgICAgICAgY2FzZSBQU0FfRVJST1JfU1RPUkFHRV9GQUlMVVJFOgorICAgICAgICAgICAgcmV0dXJuIE1CRURUTFNfRVJSX1BLX0ZJTEVfSU9fRVJST1I7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICByZXR1cm4gcHNhX2dlbmVyaWNfc3RhdHVzX3RvX21iZWR0bHMoc3RhdHVzKTsKKyAgICB9Cit9CisjZW5kaWYgLyogTUJFRFRMU19QS19DICovCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworLyogS2V5IG1hbmFnZW1lbnQgKi8KKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisjaWYgZGVmaW5lZChQU0FfV0FOVF9LRVlfVFlQRV9FQ0NfUFVCTElDX0tFWSkKK3BzYV9lY2NfZmFtaWx5X3QgbWJlZHRsc19lY2NfZ3JvdXBfdG9fcHNhKG1iZWR0bHNfZWNwX2dyb3VwX2lkIGdycGlkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90ICpiaXRzKQoreworICAgIHN3aXRjaCAoZ3JwaWQpIHsKKyNpZiBkZWZpbmVkKFBTQV9XQU5UX0VDQ19TRUNQX1IxXzE5MikKKyAgICAgICAgY2FzZSBNQkVEVExTX0VDUF9EUF9TRUNQMTkyUjE6CisgICAgICAgICAgICAqYml0cyA9IDE5MjsKKyAgICAgICAgICAgIHJldHVybiBQU0FfRUNDX0ZBTUlMWV9TRUNQX1IxOworI2VuZGlmCisjaWYgZGVmaW5lZChQU0FfV0FOVF9FQ0NfU0VDUF9SMV8yMjQpCisgICAgICAgIGNhc2UgTUJFRFRMU19FQ1BfRFBfU0VDUDIyNFIxOgorICAgICAgICAgICAgKmJpdHMgPSAyMjQ7CisgICAgICAgICAgICByZXR1cm4gUFNBX0VDQ19GQU1JTFlfU0VDUF9SMTsKKyNlbmRpZgorI2lmIGRlZmluZWQoTUJFRFRMU19FQ1BfSEFWRV9TRUNQMjU2UjEpCisgICAgICAgIGNhc2UgTUJFRFRMU19FQ1BfRFBfU0VDUDI1NlIxOgorICAgICAgICAgICAgKmJpdHMgPSAyNTY7CisgICAgICAgICAgICByZXR1cm4gUFNBX0VDQ19GQU1JTFlfU0VDUF9SMTsKKyNlbmRpZgorI2lmIGRlZmluZWQoTUJFRFRMU19FQ1BfSEFWRV9TRUNQMzg0UjEpCisgICAgICAgIGNhc2UgTUJFRFRMU19FQ1BfRFBfU0VDUDM4NFIxOgorICAgICAgICAgICAgKmJpdHMgPSAzODQ7CisgICAgICAgICAgICByZXR1cm4gUFNBX0VDQ19GQU1JTFlfU0VDUF9SMTsKKyNlbmRpZgorI2lmIGRlZmluZWQoTUJFRFRMU19FQ1BfSEFWRV9TRUNQNTIxUjEpCisgICAgICAgIGNhc2UgTUJFRFRMU19FQ1BfRFBfU0VDUDUyMVIxOgorICAgICAgICAgICAgKmJpdHMgPSA1MjE7CisgICAgICAgICAgICByZXR1cm4gUFNBX0VDQ19GQU1JTFlfU0VDUF9SMTsKKyNlbmRpZgorI2lmIGRlZmluZWQoUFNBX1dBTlRfRUNDX0JSQUlOUE9PTF9QX1IxXzI1NikKKyAgICAgICAgY2FzZSBNQkVEVExTX0VDUF9EUF9CUDI1NlIxOgorICAgICAgICAgICAgKmJpdHMgPSAyNTY7CisgICAgICAgICAgICByZXR1cm4gUFNBX0VDQ19GQU1JTFlfQlJBSU5QT09MX1BfUjE7CisjZW5kaWYKKyNpZiBkZWZpbmVkKFBTQV9XQU5UX0VDQ19CUkFJTlBPT0xfUF9SMV8zODQpCisgICAgICAgIGNhc2UgTUJFRFRMU19FQ1BfRFBfQlAzODRSMToKKyAgICAgICAgICAgICpiaXRzID0gMzg0OworICAgICAgICAgICAgcmV0dXJuIFBTQV9FQ0NfRkFNSUxZX0JSQUlOUE9PTF9QX1IxOworI2VuZGlmCisjaWYgZGVmaW5lZChQU0FfV0FOVF9FQ0NfQlJBSU5QT09MX1BfUjFfNTEyKQorICAgICAgICBjYXNlIE1CRURUTFNfRUNQX0RQX0JQNTEyUjE6CisgICAgICAgICAgICAqYml0cyA9IDUxMjsKKyAgICAgICAgICAgIHJldHVybiBQU0FfRUNDX0ZBTUlMWV9CUkFJTlBPT0xfUF9SMTsKKyNlbmRpZgorI2lmIGRlZmluZWQoTUJFRFRMU19FQ1BfSEFWRV9DVVJWRTI1NTE5KQorICAgICAgICBjYXNlIE1CRURUTFNfRUNQX0RQX0NVUlZFMjU1MTk6CisgICAgICAgICAgICAqYml0cyA9IDI1NTsKKyAgICAgICAgICAgIHJldHVybiBQU0FfRUNDX0ZBTUlMWV9NT05UR09NRVJZOworI2VuZGlmCisjaWYgZGVmaW5lZChQU0FfV0FOVF9FQ0NfU0VDUF9LMV8xOTIpCisgICAgICAgIGNhc2UgTUJFRFRMU19FQ1BfRFBfU0VDUDE5MksxOgorICAgICAgICAgICAgKmJpdHMgPSAxOTI7CisgICAgICAgICAgICByZXR1cm4gUFNBX0VDQ19GQU1JTFlfU0VDUF9LMTsKKyNlbmRpZgorI2lmIGRlZmluZWQoTUJFRFRMU19FQ1BfSEFWRV9TRUNQMjI0SzEpCisgICAgLyogc2VjcDIyNGsxIGlzIG5vdCBhbmQgd2lsbCBub3QgYmUgc3VwcG9ydGVkIGluIFBTQSAoIzM1NDEpLiAqLworI2VuZGlmCisjaWYgZGVmaW5lZChQU0FfV0FOVF9FQ0NfU0VDUF9LMV8yNTYpCisgICAgICAgIGNhc2UgTUJFRFRMU19FQ1BfRFBfU0VDUDI1NksxOgorICAgICAgICAgICAgKmJpdHMgPSAyNTY7CisgICAgICAgICAgICByZXR1cm4gUFNBX0VDQ19GQU1JTFlfU0VDUF9LMTsKKyNlbmRpZgorI2lmIGRlZmluZWQoTUJFRFRMU19FQ1BfSEFWRV9DVVJWRTQ0OCkKKyAgICAgICAgY2FzZSBNQkVEVExTX0VDUF9EUF9DVVJWRTQ0ODoKKyAgICAgICAgICAgICpiaXRzID0gNDQ4OworICAgICAgICAgICAgcmV0dXJuIFBTQV9FQ0NfRkFNSUxZX01PTlRHT01FUlk7CisjZW5kaWYKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgICpiaXRzID0gMDsKKyAgICAgICAgICAgIHJldHVybiAwOworICAgIH0KK30KKworbWJlZHRsc19lY3BfZ3JvdXBfaWQgbWJlZHRsc19lY2NfZ3JvdXBfZnJvbV9wc2EocHNhX2VjY19mYW1pbHlfdCBmYW1pbHksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgYml0cykKK3sKKyAgICBzd2l0Y2ggKGZhbWlseSkgeworICAgICAgICBjYXNlIFBTQV9FQ0NfRkFNSUxZX1NFQ1BfUjE6CisgICAgICAgICAgICBzd2l0Y2ggKGJpdHMpIHsKKyNpZiBkZWZpbmVkKFBTQV9XQU5UX0VDQ19TRUNQX1IxXzE5MikKKyAgICAgICAgICAgICAgICBjYXNlIDE5MjoKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIE1CRURUTFNfRUNQX0RQX1NFQ1AxOTJSMTsKKyNlbmRpZgorI2lmIGRlZmluZWQoUFNBX1dBTlRfRUNDX1NFQ1BfUjFfMjI0KQorICAgICAgICAgICAgICAgIGNhc2UgMjI0OgorICAgICAgICAgICAgICAgICAgICByZXR1cm4gTUJFRFRMU19FQ1BfRFBfU0VDUDIyNFIxOworI2VuZGlmCisjaWYgZGVmaW5lZChQU0FfV0FOVF9FQ0NfU0VDUF9SMV8yNTYpCisgICAgICAgICAgICAgICAgY2FzZSAyNTY6CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBNQkVEVExTX0VDUF9EUF9TRUNQMjU2UjE7CisjZW5kaWYKKyNpZiBkZWZpbmVkKFBTQV9XQU5UX0VDQ19TRUNQX1IxXzM4NCkKKyAgICAgICAgICAgICAgICBjYXNlIDM4NDoKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIE1CRURUTFNfRUNQX0RQX1NFQ1AzODRSMTsKKyNlbmRpZgorI2lmIGRlZmluZWQoUFNBX1dBTlRfRUNDX1NFQ1BfUjFfNTIxKQorICAgICAgICAgICAgICAgIGNhc2UgNTIxOgorICAgICAgICAgICAgICAgICAgICByZXR1cm4gTUJFRFRMU19FQ1BfRFBfU0VDUDUyMVIxOworI2VuZGlmCisgICAgICAgICAgICB9CisgICAgICAgICAgICBicmVhazsKKworICAgICAgICBjYXNlIFBTQV9FQ0NfRkFNSUxZX0JSQUlOUE9PTF9QX1IxOgorICAgICAgICAgICAgc3dpdGNoIChiaXRzKSB7CisjaWYgZGVmaW5lZChQU0FfV0FOVF9FQ0NfQlJBSU5QT09MX1BfUjFfMjU2KQorICAgICAgICAgICAgICAgIGNhc2UgMjU2OgorICAgICAgICAgICAgICAgICAgICByZXR1cm4gTUJFRFRMU19FQ1BfRFBfQlAyNTZSMTsKKyNlbmRpZgorI2lmIGRlZmluZWQoUFNBX1dBTlRfRUNDX0JSQUlOUE9PTF9QX1IxXzM4NCkKKyAgICAgICAgICAgICAgICBjYXNlIDM4NDoKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIE1CRURUTFNfRUNQX0RQX0JQMzg0UjE7CisjZW5kaWYKKyNpZiBkZWZpbmVkKFBTQV9XQU5UX0VDQ19CUkFJTlBPT0xfUF9SMV81MTIpCisgICAgICAgICAgICAgICAgY2FzZSA1MTI6CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBNQkVEVExTX0VDUF9EUF9CUDUxMlIxOworI2VuZGlmCisgICAgICAgICAgICB9CisgICAgICAgICAgICBicmVhazsKKworICAgICAgICBjYXNlIFBTQV9FQ0NfRkFNSUxZX01PTlRHT01FUlk6CisgICAgICAgICAgICBzd2l0Y2ggKGJpdHMpIHsKKyNpZiBkZWZpbmVkKFBTQV9XQU5UX0VDQ19NT05UR09NRVJZXzI1NSkKKyAgICAgICAgICAgICAgICBjYXNlIDI1NToKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIE1CRURUTFNfRUNQX0RQX0NVUlZFMjU1MTk7CisjZW5kaWYKKyNpZiBkZWZpbmVkKFBTQV9XQU5UX0VDQ19NT05UR09NRVJZXzQ0OCkKKyAgICAgICAgICAgICAgICBjYXNlIDQ0ODoKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIE1CRURUTFNfRUNQX0RQX0NVUlZFNDQ4OworI2VuZGlmCisgICAgICAgICAgICB9CisgICAgICAgICAgICBicmVhazsKKworICAgICAgICBjYXNlIFBTQV9FQ0NfRkFNSUxZX1NFQ1BfSzE6CisgICAgICAgICAgICBzd2l0Y2ggKGJpdHMpIHsKKyNpZiBkZWZpbmVkKFBTQV9XQU5UX0VDQ19TRUNQX0sxXzE5MikKKyAgICAgICAgICAgICAgICBjYXNlIDE5MjoKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIE1CRURUTFNfRUNQX0RQX1NFQ1AxOTJLMTsKKyNlbmRpZgorI2lmIGRlZmluZWQoUFNBX1dBTlRfRUNDX1NFQ1BfSzFfMjI0KQorICAgICAgICAgICAgLyogc2VjcDIyNGsxIGlzIG5vdCBhbmQgd2lsbCBub3QgYmUgc3VwcG9ydGVkIGluIFBTQSAoIzM1NDEpLiAqLworI2VuZGlmCisjaWYgZGVmaW5lZChQU0FfV0FOVF9FQ0NfU0VDUF9LMV8yNTYpCisgICAgICAgICAgICAgICAgY2FzZSAyNTY6CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBNQkVEVExTX0VDUF9EUF9TRUNQMjU2SzE7CisjZW5kaWYKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGJyZWFrOworICAgIH0KKworICAgIHJldHVybiBNQkVEVExTX0VDUF9EUF9OT05FOworfQorI2VuZGlmIC8qIFBTQV9XQU5UX0tFWV9UWVBFX0VDQ19QVUJMSUNfS0VZICovCisKKy8qIFdyYXBwZXIgZnVuY3Rpb24gYWxsb3dpbmcgdGhlIGNsYXNzaWMgQVBJIHRvIHVzZSB0aGUgUFNBIFJORy4KKyAqCisgKiBgbWJlZHRsc19wc2FfZ2V0X3JhbmRvbShNQkVEVExTX1BTQV9SQU5ET01fU1RBVEUsIC4uLilgIGNhbGxzCisgKiBgcHNhX2dlbmVyYXRlX3JhbmRvbSguLi4pYC4gVGhlIHN0YXRlIHBhcmFtZXRlciBpcyBpZ25vcmVkIHNpbmNlIHRoZQorICogUFNBIEFQSSBkb2Vzbid0IHN1cHBvcnQgcGFzc2luZyBhbiBleHBsaWNpdCBzdGF0ZS4KKyAqLworaW50IG1iZWR0bHNfcHNhX2dldF9yYW5kb20odm9pZCAqcF9ybmcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBjaGFyICpvdXRwdXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3Qgb3V0cHV0X3NpemUpCit7CisgICAgLyogVGhpcyBmdW5jdGlvbiB0YWtlcyBhIHBvaW50ZXIgdG8gdGhlIFJORyBzdGF0ZSBiZWNhdXNlIHRoYXQncyB3aGF0CisgICAgICogY2xhc3NpYyBtYmVkdGxzIGZ1bmN0aW9ucyB1c2luZyBhbiBSTkcgZXhwZWN0LiBUaGUgUFNBIFJORyBtYW5hZ2VzCisgICAgICogaXRzIG93biBzdGF0ZSBpbnRlcm5hbGx5IGFuZCBkb2Vzbid0IGxldCB0aGUgY2FsbGVyIGFjY2VzcyB0aGF0IHN0YXRlLgorICAgICAqIFNvIHdlIGp1c3QgaWdub3JlIHRoZSBzdGF0ZSBwYXJhbWV0ZXIsIGFuZCBpbiBwcmFjdGljZSB3ZSdsbCBwYXNzCisgICAgICogTlVMTC4gKi8KKyAgICAodm9pZCkgcF9ybmc7CisgICAgcHNhX3N0YXR1c190IHN0YXR1cyA9IHBzYV9nZW5lcmF0ZV9yYW5kb20ob3V0cHV0LCBvdXRwdXRfc2l6ZSk7CisgICAgaWYgKHN0YXR1cyA9PSBQU0FfU1VDQ0VTUykgeworICAgICAgICByZXR1cm4gMDsKKyAgICB9IGVsc2UgeworICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfRU5UUk9QWV9TT1VSQ0VfRkFJTEVEOworICAgIH0KK30KKworI2VuZGlmIC8qIE1CRURUTFNfUFNBX0NSWVBUT19DTElFTlQgKi8KKworI2lmIGRlZmluZWQoTUJFRFRMU19QU0FfVVRJTF9IQVZFX0VDRFNBKQorCisvKioKKyAqIFxicmllZiAgQ29udmVydCBhIHNpbmdsZSByYXcgY29vcmRpbmF0ZSB0byBERVIgQVNOLjEgZm9ybWF0LiBUaGUgb3V0cHV0IGRlcgorICogICAgICAgICBidWZmZXIgaXMgZmlsbGVkIGJhY2t3YXJkIChpLmUuIHN0YXJ0aW5nIGZyb20gaXRzIGVuZCkuCisgKgorICogXHBhcmFtIHJhd19idWYgICAgICAgICAgIEJ1ZmZlciBjb250YWluaW5nIHRoZSByYXcgY29vcmRpbmF0ZSB0byBiZQorICogICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnZlcnRlZC4KKyAqIFxwYXJhbSByYXdfbGVuICAgICAgICAgICBMZW5ndGggb2YgcmF3X2J1ZiBpbiBieXRlcy4gVGhpcyBtdXN0IGJlID4gMC4KKyAqIFxwYXJhbSBkZXJfYnVmX3N0YXJ0ICAgICBQb2ludGVyIHRvIHRoZSBiZWdpbm5pbmcgb2YgdGhlIGJ1ZmZlciB3aGljaAorICogICAgICAgICAgICAgICAgICAgICAgICAgIHdpbGwgYmUgZmlsbGVkIHdpdGggdGhlIERFUiBjb252ZXJ0ZWQgZGF0YS4KKyAqIFxwYXJhbSBkZXJfYnVmX2VuZCAgICAgICBFbmQgb2YgdGhlIGJ1ZmZlciB1c2VkIHRvIHN0b3JlIHRoZSBERVIgb3V0cHV0LgorICoKKyAqIFxyZXR1cm4gICAgICAgICAgICAgICAgICBPbiBzdWNjZXNzLCB0aGUgYW1vdW50IG9mIGRhdGEgKGluIGJ5dGVzKSB3cml0dGVuIHRvCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlIERFUiBidWZmZXIuCisgKiBccmV0dXJuICAgICAgICAgICAgICAgICAgTUJFRFRMU19FUlJfQVNOMV9CVUZfVE9PX1NNQUxMIGlmIHRoZSBwcm92aWRlZCBkZXIKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICBidWZmZXIgaXMgdG9vIHNtYWxsIHRvIGNvbnRhaW4gYWxsIHRoZSBjb252ZXJ0ZWQgZGF0YS4KKyAqIFxyZXR1cm4gICAgICAgICAgICAgICAgICBNQkVEVExTX0VSUl9BU04xX0lOVkFMSURfREFUQSBpZiB0aGUgaW5wdXQgcmF3CisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgY29vcmRpbmF0ZSBpcyBudWxsIChpLmUuIGFsbCB6ZXJvcykuCisgKgorICogXHdhcm5pbmcgICAgICAgICAgICAgICAgIFJhdyBhbmQgZGVyIGJ1ZmZlciBtdXN0IG5vdCBiZSBvdmVybGFwcGluZy4KKyAqLworc3RhdGljIGludCBjb252ZXJ0X3Jhd190b19kZXJfc2luZ2xlX2ludChjb25zdCB1bnNpZ25lZCBjaGFyICpyYXdfYnVmLCBzaXplX3QgcmF3X2xlbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgY2hhciAqZGVyX2J1Zl9zdGFydCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgY2hhciAqZGVyX2J1Zl9lbmQpCit7CisgICAgdW5zaWduZWQgY2hhciAqcCA9IGRlcl9idWZfZW5kOworICAgIGludCBsZW47CisgICAgaW50IHJldCA9IE1CRURUTFNfRVJSX0VSUk9SX0NPUlJVUFRJT05fREVURUNURUQ7CisKKyAgICAvKiBBU04uMSBERVIgZW5jb2RpbmcgcmVxdWlyZXMgbWluaW1hbCBsZW5ndGgsIHNvIHNraXAgbGVhZGluZyAwcy4KKyAgICAgKiBQcm92aWRlZCBpbnB1dCBNUElzIHNob3VsZCBub3QgYmUgMCwgYnV0IGFzIGEgZmFpbHNhZmUgbWVhc3VyZSwgc3RpbGwKKyAgICAgKiBkZXRlY3QgdGhhdCBhbmQgcmV0dXJuIGVycm9yIGluIGNhc2UuICovCisgICAgd2hpbGUgKCpyYXdfYnVmID09IDB4MDApIHsKKyAgICAgICAgKytyYXdfYnVmOworICAgICAgICAtLXJhd19sZW47CisgICAgICAgIGlmIChyYXdfbGVuID09IDApIHsKKyAgICAgICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9BU04xX0lOVkFMSURfREFUQTsKKyAgICAgICAgfQorICAgIH0KKyAgICBsZW4gPSAoaW50KSByYXdfbGVuOworCisgICAgLyogQ29weSB0aGUgcmF3IGNvb3JkaW5hdGUgdG8gdGhlIGVuZCBvZiBkZXJfYnVmLiAqLworICAgIGlmICgocCAtIGRlcl9idWZfc3RhcnQpIDwgbGVuKSB7CisgICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9BU04xX0JVRl9UT09fU01BTEw7CisgICAgfQorICAgIHAgLT0gbGVuOworICAgIG1lbWNweShwLCByYXdfYnVmLCBsZW4pOworCisgICAgLyogSWYgTVNiIGlzIDEsIEFTTi4xIHJlcXVpcmVzIHRoYXQgd2UgcHJlcGVuZCBhIDAuICovCisgICAgaWYgKCpwICYgMHg4MCkgeworICAgICAgICBpZiAoKHAgLSBkZXJfYnVmX3N0YXJ0KSA8IDEpIHsKKyAgICAgICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9BU04xX0JVRl9UT09fU01BTEw7CisgICAgICAgIH0KKyAgICAgICAgLS1wOworICAgICAgICAqcCA9IDB4MDA7CisgICAgICAgICsrbGVuOworICAgIH0KKworICAgIE1CRURUTFNfQVNOMV9DSEtfQUREKGxlbiwgbWJlZHRsc19hc24xX3dyaXRlX2xlbigmcCwgZGVyX2J1Zl9zdGFydCwgbGVuKSk7CisgICAgTUJFRFRMU19BU04xX0NIS19BREQobGVuLCBtYmVkdGxzX2FzbjFfd3JpdGVfdGFnKCZwLCBkZXJfYnVmX3N0YXJ0LCBNQkVEVExTX0FTTjFfSU5URUdFUikpOworCisgICAgcmV0dXJuIGxlbjsKK30KKworaW50IG1iZWR0bHNfZWNkc2FfcmF3X3RvX2RlcihzaXplX3QgYml0cywgY29uc3QgdW5zaWduZWQgY2hhciAqcmF3LCBzaXplX3QgcmF3X2xlbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgY2hhciAqZGVyLCBzaXplX3QgZGVyX3NpemUsIHNpemVfdCAqZGVyX2xlbikKK3sKKyAgICB1bnNpZ25lZCBjaGFyIHJbUFNBX0JJVFNfVE9fQllURVMoUFNBX1ZFTkRPUl9FQ0NfTUFYX0NVUlZFX0JJVFMpXTsKKyAgICB1bnNpZ25lZCBjaGFyIHNbUFNBX0JJVFNfVE9fQllURVMoUFNBX1ZFTkRPUl9FQ0NfTUFYX0NVUlZFX0JJVFMpXTsKKyAgICBjb25zdCBzaXplX3QgY29vcmRpbmF0ZV9sZW4gPSBQU0FfQklUU19UT19CWVRFUyhiaXRzKTsKKyAgICBzaXplX3QgbGVuID0gMDsKKyAgICB1bnNpZ25lZCBjaGFyICpwID0gZGVyICsgZGVyX3NpemU7CisgICAgaW50IHJldCA9IE1CRURUTFNfRVJSX0VSUk9SX0NPUlJVUFRJT05fREVURUNURUQ7CisKKyAgICBpZiAocmF3X2xlbiAhPSAoMiAqIGNvb3JkaW5hdGVfbGVuKSkgeworICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfQVNOMV9JTlZBTElEX0RBVEE7CisgICAgfQorCisgICAgLyogU2luY2UgcmF3IGFuZCBkZXIgYnVmZmVycyBtaWdodCBvdmVybGFwLCBkdW1wIHIgYW5kIHMgYmVmb3JlIHN0YXJ0aW5nCisgICAgICogdGhlIGNvbnZlcnNpb24uICovCisgICAgbWVtY3B5KHIsIHJhdywgY29vcmRpbmF0ZV9sZW4pOworICAgIG1lbWNweShzLCByYXcgKyBjb29yZGluYXRlX2xlbiwgY29vcmRpbmF0ZV9sZW4pOworCisgICAgLyogZGVyIGJ1ZmZlciB3aWxsIGluaXRpYWxseSBiZSB3cml0dGVuIHN0YXJ0aW5nIGZyb20gaXRzIGVuZCBzbyB3ZSBwaWNrIHMKKyAgICAgKiBmaXJzdCBhbmQgdGhlbiByLiAqLworICAgIHJldCA9IGNvbnZlcnRfcmF3X3RvX2Rlcl9zaW5nbGVfaW50KHMsIGNvb3JkaW5hdGVfbGVuLCBkZXIsIHApOworICAgIGlmIChyZXQgPCAwKSB7CisgICAgICAgIHJldHVybiByZXQ7CisgICAgfQorICAgIHAgLT0gcmV0OworICAgIGxlbiArPSByZXQ7CisKKyAgICByZXQgPSBjb252ZXJ0X3Jhd190b19kZXJfc2luZ2xlX2ludChyLCBjb29yZGluYXRlX2xlbiwgZGVyLCBwKTsKKyAgICBpZiAocmV0IDwgMCkgeworICAgICAgICByZXR1cm4gcmV0OworICAgIH0KKyAgICBwIC09IHJldDsKKyAgICBsZW4gKz0gcmV0OworCisgICAgLyogQWRkIEFTTi4xIGhlYWRlciAobGVuICsgdGFnKS4gKi8KKyAgICBNQkVEVExTX0FTTjFfQ0hLX0FERChsZW4sIG1iZWR0bHNfYXNuMV93cml0ZV9sZW4oJnAsIGRlciwgbGVuKSk7CisgICAgTUJFRFRMU19BU04xX0NIS19BREQobGVuLCBtYmVkdGxzX2FzbjFfd3JpdGVfdGFnKCZwLCBkZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1CRURUTFNfQVNOMV9DT05TVFJVQ1RFRCB8CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1CRURUTFNfQVNOMV9TRVFVRU5DRSkpOworCisgICAgLyogbWVtbW92ZSB0aGUgY29udGVudCBvZiBkZXIgYnVmZmVyIHRvIGl0cyBiZWdpbm5pZy4gKi8KKyAgICBtZW1tb3ZlKGRlciwgcCwgbGVuKTsKKyAgICAqZGVyX2xlbiA9IGxlbjsKKworICAgIHJldHVybiAwOworfQorCisvKioKKyAqIFxicmllZiBDb252ZXJ0IGEgc2luZ2xlIGludGVnZXIgZnJvbSBBU04uMSBERVIgZm9ybWF0IHRvIHJhdy4KKyAqCisgKiBccGFyYW0gZGVyICAgICAgICAgICAgICAgQnVmZmVyIGNvbnRhaW5pbmcgdGhlIERFUiBpbnRlZ2VyIHZhbHVlIHRvIGJlCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgY29udmVydGVkLgorICogXHBhcmFtIGRlcl9sZW4gICAgICAgICAgIExlbmd0aCBvZiB0aGUgZGVyIGJ1ZmZlciBpbiBieXRlcy4KKyAqIFxwYXJhbSByYXcgICAgICAgICAgICAgICBPdXRwdXQgYnVmZmVyIHRoYXQgd2lsbCBiZSBmaWxsZWQgd2l0aCB0aGUKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICBjb252ZXJ0ZWQgZGF0YS4gVGhpcyBzaG91bGQgYmUgYXQgbGVhc3QKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICBjb29yZGluYXRlX3NpemUgYnl0ZXMgYW5kIGl0IG11c3QgYmUgemVyb2VkIGJlZm9yZQorICogICAgICAgICAgICAgICAgICAgICAgICAgIGNhbGxpbmcgdGhpcyBmdW5jdGlvbi4KKyAqIFxwYXJhbSBjb29yZGluYXRlX3NpemUgICBTaXplIChpbiBieXRlcykgb2YgYSBzaW5nbGUgY29vcmRpbmF0ZSBpbiByYXcKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICBmb3JtYXQuCisgKgorICogXHJldHVybiAgICAgICAgICAgICAgICAgIE9uIHN1Y2Nlc3MsIHRoZSBhbW91bnQgb2YgREVSIGRhdGEgcGFyc2VkIGZyb20gdGhlCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvdmlkZWQgZGVyIGJ1ZmZlci4KKyAqIFxyZXR1cm4gICAgICAgICAgICAgICAgICBNQkVEVExTX0VSUl9BU04xX1VORVhQRUNURURfVEFHIGlmIHRoZSBpbnRlZ2VyIHRhZworICogICAgICAgICAgICAgICAgICAgICAgICAgIGlzIG1pc3NpbmcgaW4gdGhlIGRlciBidWZmZXIuCisgKiBccmV0dXJuICAgICAgICAgICAgICAgICAgTUJFRFRMU19FUlJfQVNOMV9MRU5HVEhfTUlTTUFUQ0ggaWYgdGhlIGludGVnZXIKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICBpcyBudWxsIChpLmUuIGFsbCB6ZXJvcykgb3IgaWYgdGhlIG91dHB1dCByYXcgYnVmZmVyCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgaXMgdG9vIHNtYWxsIHRvIGNvbnRhaW4gdGhlIGNvbnZlcnRlZCByYXcgdmFsdWUuCisgKgorICogXHdhcm5pbmcgICAgICAgICAgICAgICAgIERlciBhbmQgcmF3IGJ1ZmZlcnMgbXVzdCBub3QgYmUgb3ZlcmxhcHBpbmcuCisgKi8KK3N0YXRpYyBpbnQgY29udmVydF9kZXJfdG9fcmF3X3NpbmdsZV9pbnQodW5zaWduZWQgY2hhciAqZGVyLCBzaXplX3QgZGVyX2xlbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgY2hhciAqcmF3LCBzaXplX3QgY29vcmRpbmF0ZV9zaXplKQoreworICAgIHVuc2lnbmVkIGNoYXIgKnAgPSBkZXI7CisgICAgaW50IHJldCA9IE1CRURUTFNfRVJSX0VSUk9SX0NPUlJVUFRJT05fREVURUNURUQ7CisgICAgc2l6ZV90IHVucGFkZGVkX2xlbiwgcGFkZGluZ19sZW4gPSAwOworCisgICAgLyogR2V0IHRoZSBsZW5ndGggb2YgQVNOLjEgZWxlbWVudCAoaS5lLiB0aGUgaW50ZWdlciB3ZSBuZWVkIHRvIHBhcnNlKS4gKi8KKyAgICByZXQgPSBtYmVkdGxzX2FzbjFfZ2V0X3RhZygmcCwgcCArIGRlcl9sZW4sICZ1bnBhZGRlZF9sZW4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTUJFRFRMU19BU04xX0lOVEVHRVIpOworICAgIGlmIChyZXQgIT0gMCkgeworICAgICAgICByZXR1cm4gcmV0OworICAgIH0KKworICAgIC8qIEl0J3MgaW52YWxpZCB0byBoYXZlOgorICAgICAqIC0gdW5wYWRkZWRfbGVuID09IDAuCisgICAgICogLSBNU2Igc2V0IHdpdGhvdXQgYSBsZWFkaW5nIDB4MDAgKGxlYWRpbmcgMHgwMCBpcyBjaGVja2VkIGJlbG93KS4gKi8KKyAgICBpZiAoKCh1bnBhZGRlZF9sZW4gPT0gMCkgfHwgKCpwICYgMHg4MCkgIT0gMCkpIHsKKyAgICAgICAgcmV0dXJuIE1CRURUTFNfRVJSX0FTTjFfSU5WQUxJRF9EQVRBOworICAgIH0KKworICAgIC8qIFNraXAgcG9zc2libGUgbGVhZGluZyB6ZXJvICovCisgICAgaWYgKCpwID09IDB4MDApIHsKKyAgICAgICAgcCsrOworICAgICAgICB1bnBhZGRlZF9sZW4tLTsKKyAgICAgICAgLyogSXQgaXMgbm90IGFsbG93ZWQgdG8gaGF2ZSBtb3JlIHRoYW4gMSBsZWFkaW5nIHplcm8uCisgICAgICAgICAqIElnbm9yZSB0aGUgY2FzZSBpbiB3aGljaCB1bnBhZGRlZF9sZW4gPSAwIGJlY2F1c2UgdGhhdCdzIGEgMCBlbmNvZGVkCisgICAgICAgICAqIGluIEFTTi4xIGZvcm1hdCAoaS5lLiAwMjAxMDApLiAqLworICAgICAgICBpZiAoKHVucGFkZGVkX2xlbiA+IDApICYmICgqcCA9PSAweDAwKSkgeworICAgICAgICAgICAgcmV0dXJuIE1CRURUTFNfRVJSX0FTTjFfSU5WQUxJRF9EQVRBOworICAgICAgICB9CisgICAgfQorCisgICAgaWYgKHVucGFkZGVkX2xlbiA+IGNvb3JkaW5hdGVfc2l6ZSkgeworICAgICAgICAvKiBQYXJzZWQgbnVtYmVyIGlzIGxvbmdlciB0aGFuIHRoZSBtYXhpbXVtIGV4cGVjdGVkIHZhbHVlLiAqLworICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfQVNOMV9JTlZBTElEX0RBVEE7CisgICAgfQorICAgIHBhZGRpbmdfbGVuID0gY29vcmRpbmF0ZV9zaXplIC0gdW5wYWRkZWRfbGVuOworICAgIC8qIHJhdyBidWZmZXIgd2FzIGFscmVhZHkgemVyb2VkIGJ5IHRoZSBjYWxsaW5nIGZ1bmN0aW9uIHNvIHplcm8tcGFkZGluZworICAgICAqIG9wZXJhdGlvbiBpcyBza2lwcGVkIGhlcmUuICovCisgICAgbWVtY3B5KHJhdyArIHBhZGRpbmdfbGVuLCBwLCB1bnBhZGRlZF9sZW4pOworICAgIHAgKz0gdW5wYWRkZWRfbGVuOworCisgICAgcmV0dXJuIChpbnQpIChwIC0gZGVyKTsKK30KKworaW50IG1iZWR0bHNfZWNkc2FfZGVyX3RvX3JhdyhzaXplX3QgYml0cywgY29uc3QgdW5zaWduZWQgY2hhciAqZGVyLCBzaXplX3QgZGVyX2xlbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgY2hhciAqcmF3LCBzaXplX3QgcmF3X3NpemUsIHNpemVfdCAqcmF3X2xlbikKK3sKKyAgICB1bnNpZ25lZCBjaGFyIHJhd190bXBbUFNBX1ZFTkRPUl9FQ0RTQV9TSUdOQVRVUkVfTUFYX1NJWkVdOworICAgIHVuc2lnbmVkIGNoYXIgKnAgPSAodW5zaWduZWQgY2hhciAqKSBkZXI7CisgICAgc2l6ZV90IGRhdGFfbGVuOworICAgIHNpemVfdCBjb29yZGluYXRlX3NpemUgPSBQU0FfQklUU19UT19CWVRFUyhiaXRzKTsKKyAgICBpbnQgcmV0OworCisgICAgLyogVGhlIG91dHB1dCByYXcgYnVmZmVyIHNob3VsZCBiZSBhdCBsZWFzdCB0d2ljZSB0aGUgc2l6ZSBvZiBhIHJhdworICAgICAqIGNvb3JkaW5hdGUgaW4gb3JkZXIgdG8gc3RvcmUgciBhbmQgcy4gKi8KKyAgICBpZiAocmF3X3NpemUgPCBjb29yZGluYXRlX3NpemUgKiAyKSB7CisgICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9BU04xX0JVRl9UT09fU01BTEw7CisgICAgfQorCisgICAgLyogQ2hlY2sgdGhhdCB0aGUgcHJvdmlkZWQgaW5wdXQgREVSIGJ1ZmZlciBoYXMgdGhlIHJpZ2h0IGhlYWRlci4gKi8KKyAgICByZXQgPSBtYmVkdGxzX2FzbjFfZ2V0X3RhZygmcCwgZGVyICsgZGVyX2xlbiwgJmRhdGFfbGVuLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1CRURUTFNfQVNOMV9DT05TVFJVQ1RFRCB8IE1CRURUTFNfQVNOMV9TRVFVRU5DRSk7CisgICAgaWYgKHJldCAhPSAwKSB7CisgICAgICAgIHJldHVybiByZXQ7CisgICAgfQorCisgICAgbWVtc2V0KHJhd190bXAsIDAsIDIgKiBjb29yZGluYXRlX3NpemUpOworCisgICAgLyogRXh0cmFjdCByICovCisgICAgcmV0ID0gY29udmVydF9kZXJfdG9fcmF3X3NpbmdsZV9pbnQocCwgZGF0YV9sZW4sIHJhd190bXAsIGNvb3JkaW5hdGVfc2l6ZSk7CisgICAgaWYgKHJldCA8IDApIHsKKyAgICAgICAgcmV0dXJuIHJldDsKKyAgICB9CisgICAgcCArPSByZXQ7CisgICAgZGF0YV9sZW4gLT0gcmV0OworCisgICAgLyogRXh0cmFjdCBzICovCisgICAgcmV0ID0gY29udmVydF9kZXJfdG9fcmF3X3NpbmdsZV9pbnQocCwgZGF0YV9sZW4sIHJhd190bXAgKyBjb29yZGluYXRlX3NpemUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29vcmRpbmF0ZV9zaXplKTsKKyAgICBpZiAocmV0IDwgMCkgeworICAgICAgICByZXR1cm4gcmV0OworICAgIH0KKyAgICBwICs9IHJldDsKKyAgICBkYXRhX2xlbiAtPSByZXQ7CisKKyAgICAvKiBDaGVjayB0aGF0IHdlIGNvbnN1bWVkIGFsbCB0aGUgaW5wdXQgZGVyIGRhdGEuICovCisgICAgaWYgKChzaXplX3QpIChwIC0gZGVyKSAhPSBkZXJfbGVuKSB7CisgICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9BU04xX0xFTkdUSF9NSVNNQVRDSDsKKyAgICB9CisKKyAgICBtZW1jcHkocmF3LCByYXdfdG1wLCAyICogY29vcmRpbmF0ZV9zaXplKTsKKyAgICAqcmF3X2xlbiA9IDIgKiBjb29yZGluYXRlX3NpemU7CisKKyAgICByZXR1cm4gMDsKK30KKworI2VuZGlmIC8qIE1CRURUTFNfUFNBX1VUSUxfSEFWRV9FQ0RTQSAqLwpkaWZmIC0tZ2l0IGEvbGlicmFyeS9wc2FfdXRpbF9pbnRlcm5hbC5oIGIvdGYtcHNhLWNyeXB0by9jb3JlL3BzYV91dGlsX2ludGVybmFsLmgKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIGxpYnJhcnkvcHNhX3V0aWxfaW50ZXJuYWwuaApyZW5hbWUgdG8gdGYtcHNhLWNyeXB0by9jb3JlL3BzYV91dGlsX2ludGVybmFsLmgKZGlmZiAtLWdpdCBhL3RmLXBzYS1jcnlwdG8vZHJpdmVycy9DTWFrZUxpc3RzLnR4dCBiL3RmLXBzYS1jcnlwdG8vZHJpdmVycy9DTWFrZUxpc3RzLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41MTdiNmRmCi0tLSAvZGV2L251bGwKKysrIGIvdGYtcHNhLWNyeXB0by9kcml2ZXJzL0NNYWtlTGlzdHMudHh0CkBAIC0wLDAgKzEsMyBAQAorYWRkX3N1YmRpcmVjdG9yeShidWlsdGluKQorYWRkX3N1YmRpcmVjdG9yeShldmVyZXN0KQorYWRkX3N1YmRpcmVjdG9yeShwMjU2LW0pCmRpZmYgLS1naXQgYS90Zi1wc2EtY3J5cHRvL2RyaXZlcnMvYnVpbHRpbi9DTWFrZUxpc3RzLnR4dCBiL3RmLXBzYS1jcnlwdG8vZHJpdmVycy9idWlsdGluL0NNYWtlTGlzdHMudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmZlYmQ0ZjAKLS0tIC9kZXYvbnVsbAorKysgYi90Zi1wc2EtY3J5cHRvL2RyaXZlcnMvYnVpbHRpbi9DTWFrZUxpc3RzLnR4dApAQCAtMCwwICsxIEBACithZGRfc3ViZGlyZWN0b3J5KHNyYykKZGlmZiAtLWdpdCBhL3RmLXBzYS1jcnlwdG8vZHJpdmVycy9idWlsdGluL2luY2x1ZGUvbWJlZHRscy9hZXMuaCBiL3RmLXBzYS1jcnlwdG8vZHJpdmVycy9idWlsdGluL2luY2x1ZGUvbWJlZHRscy9hZXMuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41NTllMWQ4Ci0tLSAvZGV2L251bGwKKysrIGIvdGYtcHNhLWNyeXB0by9kcml2ZXJzL2J1aWx0aW4vaW5jbHVkZS9tYmVkdGxzL2Flcy5oCkBAIC0wLDAgKzEsNjE5IEBACisvKioKKyAqIFxmaWxlIGFlcy5oCisgKgorICogXGJyaWVmICAgVGhpcyBmaWxlIGNvbnRhaW5zIEFFUyBkZWZpbml0aW9ucyBhbmQgZnVuY3Rpb25zLgorICoKKyAqICAgICAgICAgIFRoZSBBZHZhbmNlZCBFbmNyeXB0aW9uIFN0YW5kYXJkIChBRVMpIHNwZWNpZmllcyBhIEZJUFMtYXBwcm92ZWQKKyAqICAgICAgICAgIGNyeXB0b2dyYXBoaWMgYWxnb3JpdGhtIHRoYXQgY2FuIGJlIHVzZWQgdG8gcHJvdGVjdCBlbGVjdHJvbmljCisgKiAgICAgICAgICBkYXRhLgorICoKKyAqICAgICAgICAgIFRoZSBBRVMgYWxnb3JpdGhtIGlzIGEgc3ltbWV0cmljIGJsb2NrIGNpcGhlciB0aGF0IGNhbgorICogICAgICAgICAgZW5jcnlwdCBhbmQgZGVjcnlwdCBpbmZvcm1hdGlvbi4gRm9yIG1vcmUgaW5mb3JtYXRpb24sIHNlZQorICogICAgICAgICAgPGVtPkZJUFMgUHVibGljYXRpb24gMTk3OiBBZHZhbmNlZCBFbmNyeXB0aW9uIFN0YW5kYXJkPC9lbT4gYW5kCisgKiAgICAgICAgICA8ZW0+SVNPL0lFQyAxODAzMy0yOjIwMDY6IEluZm9ybWF0aW9uIHRlY2hub2xvZ3kgLS0gU2VjdXJpdHkKKyAqICAgICAgICAgIHRlY2huaXF1ZXMgLS0gRW5jcnlwdGlvbiBhbGdvcml0aG1zIC0tIFBhcnQgMjogQXN5bW1ldHJpYworICogICAgICAgICAgY2lwaGVyczwvZW0+LgorICoKKyAqICAgICAgICAgIFRoZSBBRVMtWFRTIGJsb2NrIG1vZGUgaXMgc3RhbmRhcmRpemVkIGJ5IE5JU1QgU1AgODAwLTM4RQorICogICAgICAgICAgPGh0dHBzOi8vbnZscHVicy5uaXN0Lmdvdi9uaXN0cHVicy9sZWdhY3kvc3AvbmlzdHNwZWNpYWxwdWJsaWNhdGlvbjgwMC0zOGUucGRmPgorICogICAgICAgICAgYW5kIGRlc2NyaWJlZCBpbiBkZXRhaWwgYnkgSUVFRSBQMTYxOQorICogICAgICAgICAgPGh0dHBzOi8vaWVlZXhwbG9yZS5pZWVlLm9yZy9zZXJ2bGV0L29wYWM/cHVudW1iZXI9NDM3NTI3OD4uCisgKi8KKworLyoKKyAqICBDb3B5cmlnaHQgVGhlIE1iZWQgVExTIENvbnRyaWJ1dG9ycworICogIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wIE9SIEdQTC0yLjAtb3ItbGF0ZXIKKyAqLworCisjaWZuZGVmIE1CRURUTFNfQUVTX0gKKyNkZWZpbmUgTUJFRFRMU19BRVNfSAorI2luY2x1ZGUgIm1iZWR0bHMvcHJpdmF0ZV9hY2Nlc3MuaCIKKworI2luY2x1ZGUgIm1iZWR0bHMvYnVpbGRfaW5mby5oIgorI2luY2x1ZGUgIm1iZWR0bHMvcGxhdGZvcm1fdXRpbC5oIgorCisjaW5jbHVkZSA8c3RkZGVmLmg+CisjaW5jbHVkZSA8c3RkaW50Lmg+CisKKy8qIGFlc25pLmMgcmVsaWVzIG9uIHRoZXNlIHZhbHVlcyEgKi8KKyNkZWZpbmUgTUJFRFRMU19BRVNfRU5DUllQVCAgICAgMSAvKio8IEFFUyBlbmNyeXB0aW9uLiAqLworI2RlZmluZSBNQkVEVExTX0FFU19ERUNSWVBUICAgICAwIC8qKjwgQUVTIGRlY3J5cHRpb24uICovCisKKy8qIEVycm9yIGNvZGVzIGluIHJhbmdlIDB4MDAyMC0weDAwMjIgKi8KKy8qKiBJbnZhbGlkIGtleSBsZW5ndGguICovCisjZGVmaW5lIE1CRURUTFNfRVJSX0FFU19JTlZBTElEX0tFWV9MRU5HVEggICAgICAgICAgICAgICAgLTB4MDAyMAorLyoqIEludmFsaWQgZGF0YSBpbnB1dCBsZW5ndGguICovCisjZGVmaW5lIE1CRURUTFNfRVJSX0FFU19JTlZBTElEX0lOUFVUX0xFTkdUSCAgICAgICAgICAgICAgLTB4MDAyMgorCisvKiBFcnJvciBjb2RlcyBpbiByYW5nZSAweDAwMjEtMHgwMDI1ICovCisvKiogSW52YWxpZCBpbnB1dCBkYXRhLiAqLworI2RlZmluZSBNQkVEVExTX0VSUl9BRVNfQkFEX0lOUFVUX0RBVEEgICAgICAgICAgICAgICAgICAgIC0weDAwMjEKKworI2lmZGVmIF9fY3BsdXNwbHVzCitleHRlcm4gIkMiIHsKKyNlbmRpZgorCisvKioKKyAqIFxicmllZiBUaGUgQUVTIGNvbnRleHQtdHlwZSBkZWZpbml0aW9uLgorICovCit0eXBlZGVmIHN0cnVjdCBtYmVkdGxzX2Flc19jb250ZXh0IHsKKyAgICBpbnQgTUJFRFRMU19QUklWQVRFKG5yKTsgICAgICAgICAgICAgICAgICAgICAvKiE8IFRoZSBudW1iZXIgb2Ygcm91bmRzLiAqLworICAgIHNpemVfdCBNQkVEVExTX1BSSVZBVEUocmtfb2Zmc2V0KTsgICAgICAgICAgIC8qITwgVGhlIG9mZnNldCBpbiBhcnJheSBlbGVtZW50cyB0byBBRVMKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByb3VuZCBrZXlzIGluIHRoZSBidWZmZXIuICovCisjaWYgZGVmaW5lZChNQkVEVExTX0FFU19PTkxZXzEyOF9CSVRfS0VZX0xFTkdUSCkKKyAgICB1aW50MzJfdCBNQkVEVExTX1BSSVZBVEUoYnVmKVs0NF07ICAgICAgICAgICAvKiE8IEFsaWduZWQgZGF0YSBidWZmZXIgdG8gaG9sZAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEwIHJvdW5kIGtleXMgZm9yIDEyOC1iaXQgY2FzZS4gKi8KKyNlbHNlCisgICAgdWludDMyX3QgTUJFRFRMU19QUklWQVRFKGJ1ZilbNjhdOyAgICAgICAgICAgLyohPCBVbmFsaWduZWQgZGF0YSBidWZmZXIuIFRoaXMgYnVmZmVyIGNhbgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhvbGQgMzIgZXh0cmEgQnl0ZXMsIHdoaWNoIGNhbiBiZSB1c2VkIGZvcgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpbXBsaWZ5aW5nIGtleSBleHBhbnNpb24gaW4gdGhlIDI1Ni1iaXQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXNlIGJ5IGdlbmVyYXRpbmcgYW4gZXh0cmEgcm91bmQga2V5LiAqLworI2VuZGlmIC8qIE1CRURUTFNfQUVTX09OTFlfMTI4X0JJVF9LRVlfTEVOR1RIICovCit9CittYmVkdGxzX2Flc19jb250ZXh0OworCisjaWYgZGVmaW5lZChNQkVEVExTX0NJUEhFUl9NT0RFX1hUUykKKy8qKgorICogXGJyaWVmIFRoZSBBRVMgWFRTIGNvbnRleHQtdHlwZSBkZWZpbml0aW9uLgorICovCit0eXBlZGVmIHN0cnVjdCBtYmVkdGxzX2Flc194dHNfY29udGV4dCB7CisgICAgbWJlZHRsc19hZXNfY29udGV4dCBNQkVEVExTX1BSSVZBVEUoY3J5cHQpOyAvKiE8IFRoZSBBRVMgY29udGV4dCB0byB1c2UgZm9yIEFFUyBibG9jaworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5jcnlwdGlvbiBvciBkZWNyeXB0aW9uLiAqLworICAgIG1iZWR0bHNfYWVzX2NvbnRleHQgTUJFRFRMU19QUklWQVRFKHR3ZWFrKTsgLyohPCBUaGUgQUVTIGNvbnRleHQgdXNlZCBmb3IgdHdlYWsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbXB1dGF0aW9uLiAqLworfSBtYmVkdGxzX2Flc194dHNfY29udGV4dDsKKyNlbmRpZiAvKiBNQkVEVExTX0NJUEhFUl9NT0RFX1hUUyAqLworCisvKioKKyAqIFxicmllZiAgICAgICAgICBUaGlzIGZ1bmN0aW9uIGluaXRpYWxpemVzIHRoZSBzcGVjaWZpZWQgQUVTIGNvbnRleHQuCisgKgorICogICAgICAgICAgICAgICAgIEl0IG11c3QgYmUgdGhlIGZpcnN0IEFQSSBjYWxsZWQgYmVmb3JlIHVzaW5nCisgKiAgICAgICAgICAgICAgICAgdGhlIGNvbnRleHQuCisgKgorICogXHBhcmFtIGN0eCAgICAgIFRoZSBBRVMgY29udGV4dCB0byBpbml0aWFsaXplLiBUaGlzIG11c3Qgbm90IGJlIFxjIE5VTEwuCisgKi8KK3ZvaWQgbWJlZHRsc19hZXNfaW5pdChtYmVkdGxzX2Flc19jb250ZXh0ICpjdHgpOworCisvKioKKyAqIFxicmllZiAgICAgICAgICBUaGlzIGZ1bmN0aW9uIHJlbGVhc2VzIGFuZCBjbGVhcnMgdGhlIHNwZWNpZmllZCBBRVMgY29udGV4dC4KKyAqCisgKiBccGFyYW0gY3R4ICAgICAgVGhlIEFFUyBjb250ZXh0IHRvIGNsZWFyLgorICogICAgICAgICAgICAgICAgIElmIHRoaXMgaXMgXGMgTlVMTCwgdGhpcyBmdW5jdGlvbiBkb2VzIG5vdGhpbmcuCisgKiAgICAgICAgICAgICAgICAgT3RoZXJ3aXNlLCB0aGUgY29udGV4dCBtdXN0IGhhdmUgYmVlbiBhdCBsZWFzdCBpbml0aWFsaXplZC4KKyAqLwordm9pZCBtYmVkdGxzX2Flc19mcmVlKG1iZWR0bHNfYWVzX2NvbnRleHQgKmN0eCk7CisKKyNpZiBkZWZpbmVkKE1CRURUTFNfQ0lQSEVSX01PREVfWFRTKQorLyoqCisgKiBcYnJpZWYgICAgICAgICAgVGhpcyBmdW5jdGlvbiBpbml0aWFsaXplcyB0aGUgc3BlY2lmaWVkIEFFUyBYVFMgY29udGV4dC4KKyAqCisgKiAgICAgICAgICAgICAgICAgSXQgbXVzdCBiZSB0aGUgZmlyc3QgQVBJIGNhbGxlZCBiZWZvcmUgdXNpbmcKKyAqICAgICAgICAgICAgICAgICB0aGUgY29udGV4dC4KKyAqCisgKiBccGFyYW0gY3R4ICAgICAgVGhlIEFFUyBYVFMgY29udGV4dCB0byBpbml0aWFsaXplLiBUaGlzIG11c3Qgbm90IGJlIFxjIE5VTEwuCisgKi8KK3ZvaWQgbWJlZHRsc19hZXNfeHRzX2luaXQobWJlZHRsc19hZXNfeHRzX2NvbnRleHQgKmN0eCk7CisKKy8qKgorICogXGJyaWVmICAgICAgICAgIFRoaXMgZnVuY3Rpb24gcmVsZWFzZXMgYW5kIGNsZWFycyB0aGUgc3BlY2lmaWVkIEFFUyBYVFMgY29udGV4dC4KKyAqCisgKiBccGFyYW0gY3R4ICAgICAgVGhlIEFFUyBYVFMgY29udGV4dCB0byBjbGVhci4KKyAqICAgICAgICAgICAgICAgICBJZiB0aGlzIGlzIFxjIE5VTEwsIHRoaXMgZnVuY3Rpb24gZG9lcyBub3RoaW5nLgorICogICAgICAgICAgICAgICAgIE90aGVyd2lzZSwgdGhlIGNvbnRleHQgbXVzdCBoYXZlIGJlZW4gYXQgbGVhc3QgaW5pdGlhbGl6ZWQuCisgKi8KK3ZvaWQgbWJlZHRsc19hZXNfeHRzX2ZyZWUobWJlZHRsc19hZXNfeHRzX2NvbnRleHQgKmN0eCk7CisjZW5kaWYgLyogTUJFRFRMU19DSVBIRVJfTU9ERV9YVFMgKi8KKworLyoqCisgKiBcYnJpZWYgICAgICAgICAgVGhpcyBmdW5jdGlvbiBzZXRzIHRoZSBlbmNyeXB0aW9uIGtleS4KKyAqCisgKiBccGFyYW0gY3R4ICAgICAgVGhlIEFFUyBjb250ZXh0IHRvIHdoaWNoIHRoZSBrZXkgc2hvdWxkIGJlIGJvdW5kLgorICogICAgICAgICAgICAgICAgIEl0IG11c3QgYmUgaW5pdGlhbGl6ZWQuCisgKiBccGFyYW0ga2V5ICAgICAgVGhlIGVuY3J5cHRpb24ga2V5LgorICogICAgICAgICAgICAgICAgIFRoaXMgbXVzdCBiZSBhIHJlYWRhYmxlIGJ1ZmZlciBvZiBzaXplIFxwIGtleWJpdHMgYml0cy4KKyAqIFxwYXJhbSBrZXliaXRzICBUaGUgc2l6ZSBvZiBkYXRhIHBhc3NlZCBpbiBiaXRzLiBWYWxpZCBvcHRpb25zIGFyZToKKyAqICAgICAgICAgICAgICAgICA8dWw+PGxpPjEyOCBiaXRzPC9saT4KKyAqICAgICAgICAgICAgICAgICA8bGk+MTkyIGJpdHM8L2xpPgorICogICAgICAgICAgICAgICAgIDxsaT4yNTYgYml0czwvbGk+PC91bD4KKyAqCisgKiBccmV0dXJuICAgICAgICAgXGMgMCBvbiBzdWNjZXNzLgorICogXHJldHVybiAgICAgICAgICNNQkVEVExTX0VSUl9BRVNfSU5WQUxJRF9LRVlfTEVOR1RIIG9uIGZhaWx1cmUuCisgKi8KK01CRURUTFNfQ0hFQ0tfUkVUVVJOX1RZUElDQUwKK2ludCBtYmVkdGxzX2Flc19zZXRrZXlfZW5jKG1iZWR0bHNfYWVzX2NvbnRleHQgKmN0eCwgY29uc3QgdW5zaWduZWQgY2hhciAqa2V5LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50IGtleWJpdHMpOworCisjaWYgIWRlZmluZWQoTUJFRFRMU19CTE9DS19DSVBIRVJfTk9fREVDUllQVCkKKy8qKgorICogXGJyaWVmICAgICAgICAgIFRoaXMgZnVuY3Rpb24gc2V0cyB0aGUgZGVjcnlwdGlvbiBrZXkuCisgKgorICogXHBhcmFtIGN0eCAgICAgIFRoZSBBRVMgY29udGV4dCB0byB3aGljaCB0aGUga2V5IHNob3VsZCBiZSBib3VuZC4KKyAqICAgICAgICAgICAgICAgICBJdCBtdXN0IGJlIGluaXRpYWxpemVkLgorICogXHBhcmFtIGtleSAgICAgIFRoZSBkZWNyeXB0aW9uIGtleS4KKyAqICAgICAgICAgICAgICAgICBUaGlzIG11c3QgYmUgYSByZWFkYWJsZSBidWZmZXIgb2Ygc2l6ZSBccCBrZXliaXRzIGJpdHMuCisgKiBccGFyYW0ga2V5Yml0cyAgVGhlIHNpemUgb2YgZGF0YSBwYXNzZWQuIFZhbGlkIG9wdGlvbnMgYXJlOgorICogICAgICAgICAgICAgICAgIDx1bD48bGk+MTI4IGJpdHM8L2xpPgorICogICAgICAgICAgICAgICAgIDxsaT4xOTIgYml0czwvbGk+CisgKiAgICAgICAgICAgICAgICAgPGxpPjI1NiBiaXRzPC9saT48L3VsPgorICoKKyAqIFxyZXR1cm4gICAgICAgICBcYyAwIG9uIHN1Y2Nlc3MuCisgKiBccmV0dXJuICAgICAgICAgI01CRURUTFNfRVJSX0FFU19JTlZBTElEX0tFWV9MRU5HVEggb24gZmFpbHVyZS4KKyAqLworTUJFRFRMU19DSEVDS19SRVRVUk5fVFlQSUNBTAoraW50IG1iZWR0bHNfYWVzX3NldGtleV9kZWMobWJlZHRsc19hZXNfY29udGV4dCAqY3R4LCBjb25zdCB1bnNpZ25lZCBjaGFyICprZXksCisgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQga2V5Yml0cyk7CisjZW5kaWYgLyogIU1CRURUTFNfQkxPQ0tfQ0lQSEVSX05PX0RFQ1JZUFQgKi8KKworI2lmIGRlZmluZWQoTUJFRFRMU19DSVBIRVJfTU9ERV9YVFMpCisvKioKKyAqIFxicmllZiAgICAgICAgICBUaGlzIGZ1bmN0aW9uIHByZXBhcmVzIGFuIFhUUyBjb250ZXh0IGZvciBlbmNyeXB0aW9uIGFuZAorICogICAgICAgICAgICAgICAgIHNldHMgdGhlIGVuY3J5cHRpb24ga2V5LgorICoKKyAqIFxwYXJhbSBjdHggICAgICBUaGUgQUVTIFhUUyBjb250ZXh0IHRvIHdoaWNoIHRoZSBrZXkgc2hvdWxkIGJlIGJvdW5kLgorICogICAgICAgICAgICAgICAgIEl0IG11c3QgYmUgaW5pdGlhbGl6ZWQuCisgKiBccGFyYW0ga2V5ICAgICAgVGhlIGVuY3J5cHRpb24ga2V5LiBUaGlzIGlzIGNvbXByaXNlZCBvZiB0aGUgWFRTIGtleTEKKyAqICAgICAgICAgICAgICAgICBjb25jYXRlbmF0ZWQgd2l0aCB0aGUgWFRTIGtleTIuCisgKiAgICAgICAgICAgICAgICAgVGhpcyBtdXN0IGJlIGEgcmVhZGFibGUgYnVmZmVyIG9mIHNpemUgXHAga2V5Yml0cyBiaXRzLgorICogXHBhcmFtIGtleWJpdHMgIFRoZSBzaXplIG9mIFxwIGtleSBwYXNzZWQgaW4gYml0cy4gVmFsaWQgb3B0aW9ucyBhcmU6CisgKiAgICAgICAgICAgICAgICAgPHVsPjxsaT4yNTYgYml0cyAoZWFjaCBvZiBrZXkxIGFuZCBrZXkyIGlzIGEgMTI4LWJpdCBrZXkpPC9saT4KKyAqICAgICAgICAgICAgICAgICA8bGk+NTEyIGJpdHMgKGVhY2ggb2Yga2V5MSBhbmQga2V5MiBpcyBhIDI1Ni1iaXQga2V5KTwvbGk+PC91bD4KKyAqCisgKiBccmV0dXJuICAgICAgICAgXGMgMCBvbiBzdWNjZXNzLgorICogXHJldHVybiAgICAgICAgICNNQkVEVExTX0VSUl9BRVNfSU5WQUxJRF9LRVlfTEVOR1RIIG9uIGZhaWx1cmUuCisgKi8KK01CRURUTFNfQ0hFQ0tfUkVUVVJOX1RZUElDQUwKK2ludCBtYmVkdGxzX2Flc194dHNfc2V0a2V5X2VuYyhtYmVkdGxzX2Flc194dHNfY29udGV4dCAqY3R4LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgKmtleSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQga2V5Yml0cyk7CisKKy8qKgorICogXGJyaWVmICAgICAgICAgIFRoaXMgZnVuY3Rpb24gcHJlcGFyZXMgYW4gWFRTIGNvbnRleHQgZm9yIGRlY3J5cHRpb24gYW5kCisgKiAgICAgICAgICAgICAgICAgc2V0cyB0aGUgZGVjcnlwdGlvbiBrZXkuCisgKgorICogXHBhcmFtIGN0eCAgICAgIFRoZSBBRVMgWFRTIGNvbnRleHQgdG8gd2hpY2ggdGhlIGtleSBzaG91bGQgYmUgYm91bmQuCisgKiAgICAgICAgICAgICAgICAgSXQgbXVzdCBiZSBpbml0aWFsaXplZC4KKyAqIFxwYXJhbSBrZXkgICAgICBUaGUgZGVjcnlwdGlvbiBrZXkuIFRoaXMgaXMgY29tcHJpc2VkIG9mIHRoZSBYVFMga2V5MQorICogICAgICAgICAgICAgICAgIGNvbmNhdGVuYXRlZCB3aXRoIHRoZSBYVFMga2V5Mi4KKyAqICAgICAgICAgICAgICAgICBUaGlzIG11c3QgYmUgYSByZWFkYWJsZSBidWZmZXIgb2Ygc2l6ZSBccCBrZXliaXRzIGJpdHMuCisgKiBccGFyYW0ga2V5Yml0cyAgVGhlIHNpemUgb2YgXHAga2V5IHBhc3NlZCBpbiBiaXRzLiBWYWxpZCBvcHRpb25zIGFyZToKKyAqICAgICAgICAgICAgICAgICA8dWw+PGxpPjI1NiBiaXRzIChlYWNoIG9mIGtleTEgYW5kIGtleTIgaXMgYSAxMjgtYml0IGtleSk8L2xpPgorICogICAgICAgICAgICAgICAgIDxsaT41MTIgYml0cyAoZWFjaCBvZiBrZXkxIGFuZCBrZXkyIGlzIGEgMjU2LWJpdCBrZXkpPC9saT48L3VsPgorICoKKyAqIFxyZXR1cm4gICAgICAgICBcYyAwIG9uIHN1Y2Nlc3MuCisgKiBccmV0dXJuICAgICAgICAgI01CRURUTFNfRVJSX0FFU19JTlZBTElEX0tFWV9MRU5HVEggb24gZmFpbHVyZS4KKyAqLworTUJFRFRMU19DSEVDS19SRVRVUk5fVFlQSUNBTAoraW50IG1iZWR0bHNfYWVzX3h0c19zZXRrZXlfZGVjKG1iZWR0bHNfYWVzX3h0c19jb250ZXh0ICpjdHgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdW5zaWduZWQgY2hhciAqa2V5LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCBrZXliaXRzKTsKKyNlbmRpZiAvKiBNQkVEVExTX0NJUEhFUl9NT0RFX1hUUyAqLworCisvKioKKyAqIFxicmllZiAgICAgICAgICBUaGlzIGZ1bmN0aW9uIHBlcmZvcm1zIGFuIEFFUyBzaW5nbGUtYmxvY2sgZW5jcnlwdGlvbiBvcgorICogICAgICAgICAgICAgICAgIGRlY3J5cHRpb24gb3BlcmF0aW9uLgorICoKKyAqICAgICAgICAgICAgICAgICBJdCBwZXJmb3JtcyB0aGUgb3BlcmF0aW9uIGRlZmluZWQgaW4gdGhlIFxwIG1vZGUgcGFyYW1ldGVyCisgKiAgICAgICAgICAgICAgICAgKGVuY3J5cHQgb3IgZGVjcnlwdCksIG9uIHRoZSBpbnB1dCBkYXRhIGJ1ZmZlciBkZWZpbmVkIGluCisgKiAgICAgICAgICAgICAgICAgdGhlIFxwIGlucHV0IHBhcmFtZXRlci4KKyAqCisgKiAgICAgICAgICAgICAgICAgbWJlZHRsc19hZXNfaW5pdCgpLCBhbmQgZWl0aGVyIG1iZWR0bHNfYWVzX3NldGtleV9lbmMoKSBvcgorICogICAgICAgICAgICAgICAgIG1iZWR0bHNfYWVzX3NldGtleV9kZWMoKSBtdXN0IGJlIGNhbGxlZCBiZWZvcmUgdGhlIGZpcnN0CisgKiAgICAgICAgICAgICAgICAgY2FsbCB0byB0aGlzIEFQSSB3aXRoIHRoZSBzYW1lIGNvbnRleHQuCisgKgorICogXHBhcmFtIGN0eCAgICAgIFRoZSBBRVMgY29udGV4dCB0byB1c2UgZm9yIGVuY3J5cHRpb24gb3IgZGVjcnlwdGlvbi4KKyAqICAgICAgICAgICAgICAgICBJdCBtdXN0IGJlIGluaXRpYWxpemVkIGFuZCBib3VuZCB0byBhIGtleS4KKyAqIFxwYXJhbSBtb2RlICAgICBUaGUgQUVTIG9wZXJhdGlvbjogI01CRURUTFNfQUVTX0VOQ1JZUFQgb3IKKyAqICAgICAgICAgICAgICAgICAjTUJFRFRMU19BRVNfREVDUllQVC4KKyAqIFxwYXJhbSBpbnB1dCAgICBUaGUgYnVmZmVyIGhvbGRpbmcgdGhlIGlucHV0IGRhdGEuCisgKiAgICAgICAgICAgICAgICAgSXQgbXVzdCBiZSByZWFkYWJsZSBhbmQgYXQgbGVhc3QgXGMgMTYgQnl0ZXMgbG9uZy4KKyAqIFxwYXJhbSBvdXRwdXQgICBUaGUgYnVmZmVyIHdoZXJlIHRoZSBvdXRwdXQgZGF0YSB3aWxsIGJlIHdyaXR0ZW4uCisgKiAgICAgICAgICAgICAgICAgSXQgbXVzdCBiZSB3cml0ZWFibGUgYW5kIGF0IGxlYXN0IFxjIDE2IEJ5dGVzIGxvbmcuCisKKyAqIFxyZXR1cm4gICAgICAgICBcYyAwIG9uIHN1Y2Nlc3MuCisgKi8KK01CRURUTFNfQ0hFQ0tfUkVUVVJOX1RZUElDQUwKK2ludCBtYmVkdGxzX2Flc19jcnlwdF9lY2IobWJlZHRsc19hZXNfY29udGV4dCAqY3R4LAorICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgbW9kZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdW5zaWduZWQgY2hhciBpbnB1dFsxNl0sCisgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGNoYXIgb3V0cHV0WzE2XSk7CisKKyNpZiBkZWZpbmVkKE1CRURUTFNfQ0lQSEVSX01PREVfQ0JDKQorLyoqCisgKiBcYnJpZWYgIFRoaXMgZnVuY3Rpb24gcGVyZm9ybXMgYW4gQUVTLUNCQyBlbmNyeXB0aW9uIG9yIGRlY3J5cHRpb24gb3BlcmF0aW9uCisgKiAgICAgICAgIG9uIGZ1bGwgYmxvY2tzLgorICoKKyAqICAgICAgICAgSXQgcGVyZm9ybXMgdGhlIG9wZXJhdGlvbiBkZWZpbmVkIGluIHRoZSBccCBtb2RlCisgKiAgICAgICAgIHBhcmFtZXRlciAoZW5jcnlwdC9kZWNyeXB0KSwgb24gdGhlIGlucHV0IGRhdGEgYnVmZmVyIGRlZmluZWQgaW4KKyAqICAgICAgICAgdGhlIFxwIGlucHV0IHBhcmFtZXRlci4KKyAqCisgKiAgICAgICAgIEl0IGNhbiBiZSBjYWxsZWQgYXMgbWFueSB0aW1lcyBhcyBuZWVkZWQsIHVudGlsIGFsbCB0aGUgaW5wdXQKKyAqICAgICAgICAgZGF0YSBpcyBwcm9jZXNzZWQuIG1iZWR0bHNfYWVzX2luaXQoKSwgYW5kIGVpdGhlcgorICogICAgICAgICBtYmVkdGxzX2Flc19zZXRrZXlfZW5jKCkgb3IgbWJlZHRsc19hZXNfc2V0a2V5X2RlYygpIG11c3QgYmUgY2FsbGVkCisgKiAgICAgICAgIGJlZm9yZSB0aGUgZmlyc3QgY2FsbCB0byB0aGlzIEFQSSB3aXRoIHRoZSBzYW1lIGNvbnRleHQuCisgKgorICogXG5vdGUgICBUaGlzIGZ1bmN0aW9uIG9wZXJhdGVzIG9uIGZ1bGwgYmxvY2tzLCB0aGF0IGlzLCB0aGUgaW5wdXQgc2l6ZQorICogICAgICAgICBtdXN0IGJlIGEgbXVsdGlwbGUgb2YgdGhlIEFFUyBibG9jayBzaXplIG9mIFxjIDE2IEJ5dGVzLgorICoKKyAqIFxub3RlICAgVXBvbiBleGl0LCB0aGUgY29udGVudCBvZiB0aGUgSVYgaXMgdXBkYXRlZCBzbyB0aGF0IHlvdSBjYW4KKyAqICAgICAgICAgY2FsbCB0aGUgc2FtZSBmdW5jdGlvbiBhZ2FpbiBvbiB0aGUgbmV4dAorICogICAgICAgICBibG9jayhzKSBvZiBkYXRhIGFuZCBnZXQgdGhlIHNhbWUgcmVzdWx0IGFzIGlmIGl0IHdhcworICogICAgICAgICBlbmNyeXB0ZWQgaW4gb25lIGNhbGwuIFRoaXMgYWxsb3dzIGEgInN0cmVhbWluZyIgdXNhZ2UuCisgKiAgICAgICAgIElmIHlvdSBuZWVkIHRvIHJldGFpbiB0aGUgY29udGVudHMgb2YgdGhlIElWLCB5b3Ugc2hvdWxkCisgKiAgICAgICAgIGVpdGhlciBzYXZlIGl0IG1hbnVhbGx5IG9yIHVzZSB0aGUgY2lwaGVyIG1vZHVsZSBpbnN0ZWFkLgorICoKKyAqCisgKiBccGFyYW0gY3R4ICAgICAgVGhlIEFFUyBjb250ZXh0IHRvIHVzZSBmb3IgZW5jcnlwdGlvbiBvciBkZWNyeXB0aW9uLgorICogICAgICAgICAgICAgICAgIEl0IG11c3QgYmUgaW5pdGlhbGl6ZWQgYW5kIGJvdW5kIHRvIGEga2V5LgorICogXHBhcmFtIG1vZGUgICAgIFRoZSBBRVMgb3BlcmF0aW9uOiAjTUJFRFRMU19BRVNfRU5DUllQVCBvcgorICogICAgICAgICAgICAgICAgICNNQkVEVExTX0FFU19ERUNSWVBULgorICogXHBhcmFtIGxlbmd0aCAgIFRoZSBsZW5ndGggb2YgdGhlIGlucHV0IGRhdGEgaW4gQnl0ZXMuIFRoaXMgbXVzdCBiZSBhCisgKiAgICAgICAgICAgICAgICAgbXVsdGlwbGUgb2YgdGhlIGJsb2NrIHNpemUgKFxjIDE2IEJ5dGVzKS4KKyAqIFxwYXJhbSBpdiAgICAgICBJbml0aWFsaXphdGlvbiB2ZWN0b3IgKHVwZGF0ZWQgYWZ0ZXIgdXNlKS4KKyAqICAgICAgICAgICAgICAgICBJdCBtdXN0IGJlIGEgcmVhZGFibGUgYW5kIHdyaXRlYWJsZSBidWZmZXIgb2YgXGMgMTYgQnl0ZXMuCisgKiBccGFyYW0gaW5wdXQgICAgVGhlIGJ1ZmZlciBob2xkaW5nIHRoZSBpbnB1dCBkYXRhLgorICogICAgICAgICAgICAgICAgIEl0IG11c3QgYmUgcmVhZGFibGUgYW5kIG9mIHNpemUgXHAgbGVuZ3RoIEJ5dGVzLgorICogXHBhcmFtIG91dHB1dCAgIFRoZSBidWZmZXIgaG9sZGluZyB0aGUgb3V0cHV0IGRhdGEuCisgKiAgICAgICAgICAgICAgICAgSXQgbXVzdCBiZSB3cml0ZWFibGUgYW5kIG9mIHNpemUgXHAgbGVuZ3RoIEJ5dGVzLgorICoKKyAqIFxyZXR1cm4gICAgICAgICBcYyAwIG9uIHN1Y2Nlc3MuCisgKiBccmV0dXJuICAgICAgICAgI01CRURUTFNfRVJSX0FFU19JTlZBTElEX0lOUFVUX0xFTkdUSAorICogICAgICAgICAgICAgICAgIG9uIGZhaWx1cmUuCisgKi8KK01CRURUTFNfQ0hFQ0tfUkVUVVJOX1RZUElDQUwKK2ludCBtYmVkdGxzX2Flc19jcnlwdF9jYmMobWJlZHRsc19hZXNfY29udGV4dCAqY3R4LAorICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgbW9kZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IGxlbmd0aCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgY2hhciBpdlsxNl0sCisgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgKmlucHV0LAorICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBjaGFyICpvdXRwdXQpOworI2VuZGlmIC8qIE1CRURUTFNfQ0lQSEVSX01PREVfQ0JDICovCisKKyNpZiBkZWZpbmVkKE1CRURUTFNfQ0lQSEVSX01PREVfWFRTKQorLyoqCisgKiBcYnJpZWYgICAgICBUaGlzIGZ1bmN0aW9uIHBlcmZvcm1zIGFuIEFFUy1YVFMgZW5jcnlwdGlvbiBvciBkZWNyeXB0aW9uCisgKiAgICAgICAgICAgICBvcGVyYXRpb24gZm9yIGFuIGVudGlyZSBYVFMgZGF0YSB1bml0LgorICoKKyAqICAgICAgICAgICAgIEFFUy1YVFMgZW5jcnlwdHMgb3IgZGVjcnlwdHMgYmxvY2tzIGJhc2VkIG9uIHRoZWlyIGxvY2F0aW9uIGFzCisgKiAgICAgICAgICAgICBkZWZpbmVkIGJ5IGEgZGF0YSB1bml0IG51bWJlci4gVGhlIGRhdGEgdW5pdCBudW1iZXIgbXVzdCBiZQorICogICAgICAgICAgICAgcHJvdmlkZWQgYnkgXHAgZGF0YV91bml0LgorICoKKyAqICAgICAgICAgICAgIE5JU1QgU1AgODAwLTM4RSBsaW1pdHMgdGhlIG1heGltdW0gc2l6ZSBvZiBhIGRhdGEgdW5pdCB0byAyXjIwCisgKiAgICAgICAgICAgICBBRVMgYmxvY2tzLiBJZiB0aGUgZGF0YSB1bml0IGlzIGxhcmdlciB0aGFuIHRoaXMsIHRoaXMgZnVuY3Rpb24KKyAqICAgICAgICAgICAgIHJldHVybnMgI01CRURUTFNfRVJSX0FFU19JTlZBTElEX0lOUFVUX0xFTkdUSC4KKyAqCisgKiBccGFyYW0gY3R4ICAgICAgICAgIFRoZSBBRVMgWFRTIGNvbnRleHQgdG8gdXNlIGZvciBBRVMgWFRTIG9wZXJhdGlvbnMuCisgKiAgICAgICAgICAgICAgICAgICAgIEl0IG11c3QgYmUgaW5pdGlhbGl6ZWQgYW5kIGJvdW5kIHRvIGEga2V5LgorICogXHBhcmFtIG1vZGUgICAgICAgICBUaGUgQUVTIG9wZXJhdGlvbjogI01CRURUTFNfQUVTX0VOQ1JZUFQgb3IKKyAqICAgICAgICAgICAgICAgICAgICAgI01CRURUTFNfQUVTX0RFQ1JZUFQuCisgKiBccGFyYW0gbGVuZ3RoICAgICAgIFRoZSBsZW5ndGggb2YgYSBkYXRhIHVuaXQgaW4gQnl0ZXMuIFRoaXMgY2FuIGJlIGFueQorICogICAgICAgICAgICAgICAgICAgICBsZW5ndGggYmV0d2VlbiAxNiBieXRlcyBhbmQgMl4yNCBieXRlcyBpbmNsdXNpdmUKKyAqICAgICAgICAgICAgICAgICAgICAgKGJldHdlZW4gMSBhbmQgMl4yMCBibG9jayBjaXBoZXIgYmxvY2tzKS4KKyAqIFxwYXJhbSBkYXRhX3VuaXQgICAgVGhlIGFkZHJlc3Mgb2YgdGhlIGRhdGEgdW5pdCBlbmNvZGVkIGFzIGFuIGFycmF5IG9mIDE2CisgKiAgICAgICAgICAgICAgICAgICAgIGJ5dGVzIGluIGxpdHRsZS1lbmRpYW4gZm9ybWF0LiBGb3IgZGlzayBlbmNyeXB0aW9uLCB0aGlzCisgKiAgICAgICAgICAgICAgICAgICAgIGlzIHR5cGljYWxseSB0aGUgaW5kZXggb2YgdGhlIGJsb2NrIGRldmljZSBzZWN0b3IgdGhhdAorICogICAgICAgICAgICAgICAgICAgICBjb250YWlucyB0aGUgZGF0YS4KKyAqIFxwYXJhbSBpbnB1dCAgICAgICAgVGhlIGJ1ZmZlciBob2xkaW5nIHRoZSBpbnB1dCBkYXRhICh3aGljaCBpcyBhbiBlbnRpcmUKKyAqICAgICAgICAgICAgICAgICAgICAgZGF0YSB1bml0KS4gVGhpcyBmdW5jdGlvbiByZWFkcyBccCBsZW5ndGggQnl0ZXMgZnJvbSBccAorICogICAgICAgICAgICAgICAgICAgICBpbnB1dC4KKyAqIFxwYXJhbSBvdXRwdXQgICAgICAgVGhlIGJ1ZmZlciBob2xkaW5nIHRoZSBvdXRwdXQgZGF0YSAod2hpY2ggaXMgYW4gZW50aXJlCisgKiAgICAgICAgICAgICAgICAgICAgIGRhdGEgdW5pdCkuIFRoaXMgZnVuY3Rpb24gd3JpdGVzIFxwIGxlbmd0aCBCeXRlcyB0byBccAorICogICAgICAgICAgICAgICAgICAgICBvdXRwdXQuCisgKgorICogXHJldHVybiAgICAgICAgICAgICBcYyAwIG9uIHN1Y2Nlc3MuCisgKiBccmV0dXJuICAgICAgICAgICAgICNNQkVEVExTX0VSUl9BRVNfSU5WQUxJRF9JTlBVVF9MRU5HVEggaWYgXHAgbGVuZ3RoIGlzCisgKiAgICAgICAgICAgICAgICAgICAgIHNtYWxsZXIgdGhhbiBhbiBBRVMgYmxvY2sgaW4gc2l6ZSAoMTYgQnl0ZXMpIG9yIGlmIFxwCisgKiAgICAgICAgICAgICAgICAgICAgIGxlbmd0aCBpcyBsYXJnZXIgdGhhbiAyXjIwIGJsb2NrcyAoMTYgTWlCKS4KKyAqLworTUJFRFRMU19DSEVDS19SRVRVUk5fVFlQSUNBTAoraW50IG1iZWR0bHNfYWVzX2NyeXB0X3h0cyhtYmVkdGxzX2Flc194dHNfY29udGV4dCAqY3R4LAorICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgbW9kZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IGxlbmd0aCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdW5zaWduZWQgY2hhciBkYXRhX3VuaXRbMTZdLAorICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1bnNpZ25lZCBjaGFyICppbnB1dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgY2hhciAqb3V0cHV0KTsKKyNlbmRpZiAvKiBNQkVEVExTX0NJUEhFUl9NT0RFX1hUUyAqLworCisjaWYgZGVmaW5lZChNQkVEVExTX0NJUEhFUl9NT0RFX0NGQikKKy8qKgorICogXGJyaWVmIFRoaXMgZnVuY3Rpb24gcGVyZm9ybXMgYW4gQUVTLUNGQjEyOCBlbmNyeXB0aW9uIG9yIGRlY3J5cHRpb24KKyAqICAgICAgICBvcGVyYXRpb24uCisgKgorICogICAgICAgIEl0IHBlcmZvcm1zIHRoZSBvcGVyYXRpb24gZGVmaW5lZCBpbiB0aGUgXHAgbW9kZQorICogICAgICAgIHBhcmFtZXRlciAoZW5jcnlwdCBvciBkZWNyeXB0KSwgb24gdGhlIGlucHV0IGRhdGEgYnVmZmVyCisgKiAgICAgICAgZGVmaW5lZCBpbiB0aGUgXHAgaW5wdXQgcGFyYW1ldGVyLgorICoKKyAqICAgICAgICBGb3IgQ0ZCLCB5b3UgbXVzdCBzZXQgdXAgdGhlIGNvbnRleHQgd2l0aCBtYmVkdGxzX2Flc19zZXRrZXlfZW5jKCksCisgKiAgICAgICAgcmVnYXJkbGVzcyBvZiB3aGV0aGVyIHlvdSBhcmUgcGVyZm9ybWluZyBhbiBlbmNyeXB0aW9uIG9yIGRlY3J5cHRpb24KKyAqICAgICAgICBvcGVyYXRpb24sIHRoYXQgaXMsIHJlZ2FyZGxlc3Mgb2YgdGhlIFxwIG1vZGUgcGFyYW1ldGVyLiBUaGlzIGlzCisgKiAgICAgICAgYmVjYXVzZSBDRkIgbW9kZSB1c2VzIHRoZSBzYW1lIGtleSBzY2hlZHVsZSBmb3IgZW5jcnlwdGlvbiBhbmQKKyAqICAgICAgICBkZWNyeXB0aW9uLgorICoKKyAqIFxub3RlICBVcG9uIGV4aXQsIHRoZSBjb250ZW50IG9mIHRoZSBJViBpcyB1cGRhdGVkIHNvIHRoYXQgeW91IGNhbgorICogICAgICAgIGNhbGwgdGhlIHNhbWUgZnVuY3Rpb24gYWdhaW4gb24gdGhlIG5leHQKKyAqICAgICAgICBibG9jayhzKSBvZiBkYXRhIGFuZCBnZXQgdGhlIHNhbWUgcmVzdWx0IGFzIGlmIGl0IHdhcworICogICAgICAgIGVuY3J5cHRlZCBpbiBvbmUgY2FsbC4gVGhpcyBhbGxvd3MgYSAic3RyZWFtaW5nIiB1c2FnZS4KKyAqICAgICAgICBJZiB5b3UgbmVlZCB0byByZXRhaW4gdGhlIGNvbnRlbnRzIG9mIHRoZQorICogICAgICAgIElWLCB5b3UgbXVzdCBlaXRoZXIgc2F2ZSBpdCBtYW51YWxseSBvciB1c2UgdGhlIGNpcGhlcgorICogICAgICAgIG1vZHVsZSBpbnN0ZWFkLgorICoKKyAqCisgKiBccGFyYW0gY3R4ICAgICAgVGhlIEFFUyBjb250ZXh0IHRvIHVzZSBmb3IgZW5jcnlwdGlvbiBvciBkZWNyeXB0aW9uLgorICogICAgICAgICAgICAgICAgIEl0IG11c3QgYmUgaW5pdGlhbGl6ZWQgYW5kIGJvdW5kIHRvIGEga2V5LgorICogXHBhcmFtIG1vZGUgICAgIFRoZSBBRVMgb3BlcmF0aW9uOiAjTUJFRFRMU19BRVNfRU5DUllQVCBvcgorICogICAgICAgICAgICAgICAgICNNQkVEVExTX0FFU19ERUNSWVBULgorICogXHBhcmFtIGxlbmd0aCAgIFRoZSBsZW5ndGggb2YgdGhlIGlucHV0IGRhdGEgaW4gQnl0ZXMuCisgKiBccGFyYW0gaXZfb2ZmICAgVGhlIG9mZnNldCBpbiBJViAodXBkYXRlZCBhZnRlciB1c2UpLgorICogICAgICAgICAgICAgICAgIEl0IG11c3QgcG9pbnQgdG8gYSB2YWxpZCBcYyBzaXplX3QuCisgKiBccGFyYW0gaXYgICAgICAgVGhlIGluaXRpYWxpemF0aW9uIHZlY3RvciAodXBkYXRlZCBhZnRlciB1c2UpLgorICogICAgICAgICAgICAgICAgIEl0IG11c3QgYmUgYSByZWFkYWJsZSBhbmQgd3JpdGVhYmxlIGJ1ZmZlciBvZiBcYyAxNiBCeXRlcy4KKyAqIFxwYXJhbSBpbnB1dCAgICBUaGUgYnVmZmVyIGhvbGRpbmcgdGhlIGlucHV0IGRhdGEuCisgKiAgICAgICAgICAgICAgICAgSXQgbXVzdCBiZSByZWFkYWJsZSBhbmQgb2Ygc2l6ZSBccCBsZW5ndGggQnl0ZXMuCisgKiBccGFyYW0gb3V0cHV0ICAgVGhlIGJ1ZmZlciBob2xkaW5nIHRoZSBvdXRwdXQgZGF0YS4KKyAqICAgICAgICAgICAgICAgICBJdCBtdXN0IGJlIHdyaXRlYWJsZSBhbmQgb2Ygc2l6ZSBccCBsZW5ndGggQnl0ZXMuCisgKgorICogXHJldHVybiAgICAgICAgIFxjIDAgb24gc3VjY2Vzcy4KKyAqLworTUJFRFRMU19DSEVDS19SRVRVUk5fVFlQSUNBTAoraW50IG1iZWR0bHNfYWVzX2NyeXB0X2NmYjEyOChtYmVkdGxzX2Flc19jb250ZXh0ICpjdHgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBtb2RlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgbGVuZ3RoLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgKml2X29mZiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgY2hhciBpdlsxNl0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgKmlucHV0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBjaGFyICpvdXRwdXQpOworCisvKioKKyAqIFxicmllZiBUaGlzIGZ1bmN0aW9uIHBlcmZvcm1zIGFuIEFFUy1DRkI4IGVuY3J5cHRpb24gb3IgZGVjcnlwdGlvbgorICogICAgICAgIG9wZXJhdGlvbi4KKyAqCisgKiAgICAgICAgSXQgcGVyZm9ybXMgdGhlIG9wZXJhdGlvbiBkZWZpbmVkIGluIHRoZSBccCBtb2RlCisgKiAgICAgICAgcGFyYW1ldGVyIChlbmNyeXB0L2RlY3J5cHQpLCBvbiB0aGUgaW5wdXQgZGF0YSBidWZmZXIgZGVmaW5lZAorICogICAgICAgIGluIHRoZSBccCBpbnB1dCBwYXJhbWV0ZXIuCisgKgorICogICAgICAgIER1ZSB0byB0aGUgbmF0dXJlIG9mIENGQiwgeW91IG11c3QgdXNlIHRoZSBzYW1lIGtleSBzY2hlZHVsZSBmb3IKKyAqICAgICAgICBib3RoIGVuY3J5cHRpb24gYW5kIGRlY3J5cHRpb24gb3BlcmF0aW9ucy4gVGhlcmVmb3JlLCB5b3UgbXVzdAorICogICAgICAgIHVzZSB0aGUgY29udGV4dCBpbml0aWFsaXplZCB3aXRoIG1iZWR0bHNfYWVzX3NldGtleV9lbmMoKSBmb3IKKyAqICAgICAgICBib3RoICNNQkVEVExTX0FFU19FTkNSWVBUIGFuZCAjTUJFRFRMU19BRVNfREVDUllQVC4KKyAqCisgKiBcbm90ZSAgVXBvbiBleGl0LCB0aGUgY29udGVudCBvZiB0aGUgSVYgaXMgdXBkYXRlZCBzbyB0aGF0IHlvdSBjYW4KKyAqICAgICAgICBjYWxsIHRoZSBzYW1lIGZ1bmN0aW9uIGFnYWluIG9uIHRoZSBuZXh0CisgKiAgICAgICAgYmxvY2socykgb2YgZGF0YSBhbmQgZ2V0IHRoZSBzYW1lIHJlc3VsdCBhcyBpZiBpdCB3YXMKKyAqICAgICAgICBlbmNyeXB0ZWQgaW4gb25lIGNhbGwuIFRoaXMgYWxsb3dzIGEgInN0cmVhbWluZyIgdXNhZ2UuCisgKiAgICAgICAgSWYgeW91IG5lZWQgdG8gcmV0YWluIHRoZSBjb250ZW50cyBvZiB0aGUKKyAqICAgICAgICBJViwgeW91IHNob3VsZCBlaXRoZXIgc2F2ZSBpdCBtYW51YWxseSBvciB1c2UgdGhlIGNpcGhlcgorICogICAgICAgIG1vZHVsZSBpbnN0ZWFkLgorICoKKyAqCisgKiBccGFyYW0gY3R4ICAgICAgVGhlIEFFUyBjb250ZXh0IHRvIHVzZSBmb3IgZW5jcnlwdGlvbiBvciBkZWNyeXB0aW9uLgorICogICAgICAgICAgICAgICAgIEl0IG11c3QgYmUgaW5pdGlhbGl6ZWQgYW5kIGJvdW5kIHRvIGEga2V5LgorICogXHBhcmFtIG1vZGUgICAgIFRoZSBBRVMgb3BlcmF0aW9uOiAjTUJFRFRMU19BRVNfRU5DUllQVCBvcgorICogICAgICAgICAgICAgICAgICNNQkVEVExTX0FFU19ERUNSWVBUCisgKiBccGFyYW0gbGVuZ3RoICAgVGhlIGxlbmd0aCBvZiB0aGUgaW5wdXQgZGF0YS4KKyAqIFxwYXJhbSBpdiAgICAgICBUaGUgaW5pdGlhbGl6YXRpb24gdmVjdG9yICh1cGRhdGVkIGFmdGVyIHVzZSkuCisgKiAgICAgICAgICAgICAgICAgSXQgbXVzdCBiZSBhIHJlYWRhYmxlIGFuZCB3cml0ZWFibGUgYnVmZmVyIG9mIFxjIDE2IEJ5dGVzLgorICogXHBhcmFtIGlucHV0ICAgIFRoZSBidWZmZXIgaG9sZGluZyB0aGUgaW5wdXQgZGF0YS4KKyAqICAgICAgICAgICAgICAgICBJdCBtdXN0IGJlIHJlYWRhYmxlIGFuZCBvZiBzaXplIFxwIGxlbmd0aCBCeXRlcy4KKyAqIFxwYXJhbSBvdXRwdXQgICBUaGUgYnVmZmVyIGhvbGRpbmcgdGhlIG91dHB1dCBkYXRhLgorICogICAgICAgICAgICAgICAgIEl0IG11c3QgYmUgd3JpdGVhYmxlIGFuZCBvZiBzaXplIFxwIGxlbmd0aCBCeXRlcy4KKyAqCisgKiBccmV0dXJuICAgICAgICAgXGMgMCBvbiBzdWNjZXNzLgorICovCitNQkVEVExTX0NIRUNLX1JFVFVSTl9UWVBJQ0FMCitpbnQgbWJlZHRsc19hZXNfY3J5cHRfY2ZiOChtYmVkdGxzX2Flc19jb250ZXh0ICpjdHgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgbW9kZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBsZW5ndGgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBjaGFyIGl2WzE2XSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgKmlucHV0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgY2hhciAqb3V0cHV0KTsKKyNlbmRpZiAvKk1CRURUTFNfQ0lQSEVSX01PREVfQ0ZCICovCisKKyNpZiBkZWZpbmVkKE1CRURUTFNfQ0lQSEVSX01PREVfT0ZCKQorLyoqCisgKiBcYnJpZWYgICAgICAgVGhpcyBmdW5jdGlvbiBwZXJmb3JtcyBhbiBBRVMtT0ZCIChPdXRwdXQgRmVlZGJhY2sgTW9kZSkKKyAqICAgICAgICAgICAgICBlbmNyeXB0aW9uIG9yIGRlY3J5cHRpb24gb3BlcmF0aW9uLgorICoKKyAqICAgICAgICAgICAgICBGb3IgT0ZCLCB5b3UgbXVzdCBzZXQgdXAgdGhlIGNvbnRleHQgd2l0aAorICogICAgICAgICAgICAgIG1iZWR0bHNfYWVzX3NldGtleV9lbmMoKSwgcmVnYXJkbGVzcyBvZiB3aGV0aGVyIHlvdSBhcmUKKyAqICAgICAgICAgICAgICBwZXJmb3JtaW5nIGFuIGVuY3J5cHRpb24gb3IgZGVjcnlwdGlvbiBvcGVyYXRpb24uIFRoaXMgaXMKKyAqICAgICAgICAgICAgICBiZWNhdXNlIE9GQiBtb2RlIHVzZXMgdGhlIHNhbWUga2V5IHNjaGVkdWxlIGZvciBlbmNyeXB0aW9uIGFuZAorICogICAgICAgICAgICAgIGRlY3J5cHRpb24uCisgKgorICogICAgICAgICAgICAgIFRoZSBPRkIgb3BlcmF0aW9uIGlzIGlkZW50aWNhbCBmb3IgZW5jcnlwdGlvbiBvciBkZWNyeXB0aW9uLAorICogICAgICAgICAgICAgIHRoZXJlZm9yZSBubyBvcGVyYXRpb24gbW9kZSBuZWVkcyB0byBiZSBzcGVjaWZpZWQuCisgKgorICogXG5vdGUgICAgICAgIFVwb24gZXhpdCwgdGhlIGNvbnRlbnQgb2YgaXYsIHRoZSBJbml0aWFsaXNhdGlvbiBWZWN0b3IsIGlzCisgKiAgICAgICAgICAgICAgdXBkYXRlZCBzbyB0aGF0IHlvdSBjYW4gY2FsbCB0aGUgc2FtZSBmdW5jdGlvbiBhZ2FpbiBvbiB0aGUgbmV4dAorICogICAgICAgICAgICAgIGJsb2NrKHMpIG9mIGRhdGEgYW5kIGdldCB0aGUgc2FtZSByZXN1bHQgYXMgaWYgaXQgd2FzIGVuY3J5cHRlZAorICogICAgICAgICAgICAgIGluIG9uZSBjYWxsLiBUaGlzIGFsbG93cyBhICJzdHJlYW1pbmciIHVzYWdlLCBieSBpbml0aWFsaXNpbmcKKyAqICAgICAgICAgICAgICBpdl9vZmYgdG8gMCBiZWZvcmUgdGhlIGZpcnN0IGNhbGwsIGFuZCBwcmVzZXJ2aW5nIGl0cyB2YWx1ZQorICogICAgICAgICAgICAgIGJldHdlZW4gY2FsbHMuCisgKgorICogICAgICAgICAgICAgIEZvciBub24tc3RyZWFtaW5nIHVzZSwgdGhlIGl2IHNob3VsZCBiZSBpbml0aWFsaXNlZCBvbiBlYWNoIGNhbGwKKyAqICAgICAgICAgICAgICB0byBhIHVuaXF1ZSB2YWx1ZSwgYW5kIGl2X29mZiBzZXQgdG8gMCBvbiBlYWNoIGNhbGwuCisgKgorICogICAgICAgICAgICAgIElmIHlvdSBuZWVkIHRvIHJldGFpbiB0aGUgY29udGVudHMgb2YgdGhlIGluaXRpYWxpc2F0aW9uIHZlY3RvciwKKyAqICAgICAgICAgICAgICB5b3UgbXVzdCBlaXRoZXIgc2F2ZSBpdCBtYW51YWxseSBvciB1c2UgdGhlIGNpcGhlciBtb2R1bGUKKyAqICAgICAgICAgICAgICBpbnN0ZWFkLgorICoKKyAqIFx3YXJuaW5nICAgICBGb3IgdGhlIE9GQiBtb2RlLCB0aGUgaW5pdGlhbGlzYXRpb24gdmVjdG9yIG11c3QgYmUgdW5pcXVlCisgKiAgICAgICAgICAgICAgZXZlcnkgZW5jcnlwdGlvbiBvcGVyYXRpb24uIFJldXNlIG9mIGFuIGluaXRpYWxpc2F0aW9uIHZlY3RvcgorICogICAgICAgICAgICAgIHdpbGwgY29tcHJvbWlzZSBzZWN1cml0eS4KKyAqCisgKiBccGFyYW0gY3R4ICAgICAgVGhlIEFFUyBjb250ZXh0IHRvIHVzZSBmb3IgZW5jcnlwdGlvbiBvciBkZWNyeXB0aW9uLgorICogICAgICAgICAgICAgICAgIEl0IG11c3QgYmUgaW5pdGlhbGl6ZWQgYW5kIGJvdW5kIHRvIGEga2V5LgorICogXHBhcmFtIGxlbmd0aCAgIFRoZSBsZW5ndGggb2YgdGhlIGlucHV0IGRhdGEuCisgKiBccGFyYW0gaXZfb2ZmICAgVGhlIG9mZnNldCBpbiBJViAodXBkYXRlZCBhZnRlciB1c2UpLgorICogICAgICAgICAgICAgICAgIEl0IG11c3QgcG9pbnQgdG8gYSB2YWxpZCBcYyBzaXplX3QuCisgKiBccGFyYW0gaXYgICAgICAgVGhlIGluaXRpYWxpemF0aW9uIHZlY3RvciAodXBkYXRlZCBhZnRlciB1c2UpLgorICogICAgICAgICAgICAgICAgIEl0IG11c3QgYmUgYSByZWFkYWJsZSBhbmQgd3JpdGVhYmxlIGJ1ZmZlciBvZiBcYyAxNiBCeXRlcy4KKyAqIFxwYXJhbSBpbnB1dCAgICBUaGUgYnVmZmVyIGhvbGRpbmcgdGhlIGlucHV0IGRhdGEuCisgKiAgICAgICAgICAgICAgICAgSXQgbXVzdCBiZSByZWFkYWJsZSBhbmQgb2Ygc2l6ZSBccCBsZW5ndGggQnl0ZXMuCisgKiBccGFyYW0gb3V0cHV0ICAgVGhlIGJ1ZmZlciBob2xkaW5nIHRoZSBvdXRwdXQgZGF0YS4KKyAqICAgICAgICAgICAgICAgICBJdCBtdXN0IGJlIHdyaXRlYWJsZSBhbmQgb2Ygc2l6ZSBccCBsZW5ndGggQnl0ZXMuCisgKgorICogXHJldHVybiAgICAgICAgIFxjIDAgb24gc3VjY2Vzcy4KKyAqLworTUJFRFRMU19DSEVDS19SRVRVUk5fVFlQSUNBTAoraW50IG1iZWR0bHNfYWVzX2NyeXB0X29mYihtYmVkdGxzX2Flc19jb250ZXh0ICpjdHgsCisgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBsZW5ndGgsCisgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCAqaXZfb2ZmLAorICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBjaGFyIGl2WzE2XSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdW5zaWduZWQgY2hhciAqaW5wdXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGNoYXIgKm91dHB1dCk7CisKKyNlbmRpZiAvKiBNQkVEVExTX0NJUEhFUl9NT0RFX09GQiAqLworCisjaWYgZGVmaW5lZChNQkVEVExTX0NJUEhFUl9NT0RFX0NUUikKKy8qKgorICogXGJyaWVmICAgICAgVGhpcyBmdW5jdGlvbiBwZXJmb3JtcyBhbiBBRVMtQ1RSIGVuY3J5cHRpb24gb3IgZGVjcnlwdGlvbgorICogICAgICAgICAgICAgb3BlcmF0aW9uLgorICoKKyAqICAgICAgICAgICAgIER1ZSB0byB0aGUgbmF0dXJlIG9mIENUUiwgeW91IG11c3QgdXNlIHRoZSBzYW1lIGtleSBzY2hlZHVsZQorICogICAgICAgICAgICAgZm9yIGJvdGggZW5jcnlwdGlvbiBhbmQgZGVjcnlwdGlvbiBvcGVyYXRpb25zLiBUaGVyZWZvcmUsIHlvdQorICogICAgICAgICAgICAgbXVzdCB1c2UgdGhlIGNvbnRleHQgaW5pdGlhbGl6ZWQgd2l0aCBtYmVkdGxzX2Flc19zZXRrZXlfZW5jKCkKKyAqICAgICAgICAgICAgIGZvciBib3RoICNNQkVEVExTX0FFU19FTkNSWVBUIGFuZCAjTUJFRFRMU19BRVNfREVDUllQVC4KKyAqCisgKiBcd2FybmluZyAgICBZb3UgbXVzdCBuZXZlciByZXVzZSBhIG5vbmNlIHZhbHVlIHdpdGggdGhlIHNhbWUga2V5LiBEb2luZyBzbworICogICAgICAgICAgICAgd291bGQgdm9pZCB0aGUgZW5jcnlwdGlvbiBmb3IgdGhlIHR3byBtZXNzYWdlcyBlbmNyeXB0ZWQgd2l0aAorICogICAgICAgICAgICAgdGhlIHNhbWUgbm9uY2UgYW5kIGtleS4KKyAqCisgKiAgICAgICAgICAgICBUaGVyZSBhcmUgdHdvIGNvbW1vbiBzdHJhdGVnaWVzIGZvciBtYW5hZ2luZyBub25jZXMgd2l0aCBDVFI6CisgKgorICogICAgICAgICAgICAgMS4gWW91IGNhbiBoYW5kbGUgZXZlcnl0aGluZyBhcyBhIHNpbmdsZSBtZXNzYWdlIHByb2Nlc3NlZCBvdmVyCisgKiAgICAgICAgICAgICBzdWNjZXNzaXZlIGNhbGxzIHRvIHRoaXMgZnVuY3Rpb24uIEluIHRoYXQgY2FzZSwgeW91IHdhbnQgdG8KKyAqICAgICAgICAgICAgIHNldCBccCBub25jZV9jb3VudGVyIGFuZCBccCBuY19vZmYgdG8gMCBmb3IgdGhlIGZpcnN0IGNhbGwsIGFuZAorICogICAgICAgICAgICAgdGhlbiBwcmVzZXJ2ZSB0aGUgdmFsdWVzIG9mIFxwIG5vbmNlX2NvdW50ZXIsIFxwIG5jX29mZiBhbmQgXHAKKyAqICAgICAgICAgICAgIHN0cmVhbV9ibG9jayBhY3Jvc3MgY2FsbHMgdG8gdGhpcyBmdW5jdGlvbiBhcyB0aGV5IHdpbGwgYmUKKyAqICAgICAgICAgICAgIHVwZGF0ZWQgYnkgdGhpcyBmdW5jdGlvbi4KKyAqCisgKiAgICAgICAgICAgICBXaXRoIHRoaXMgc3RyYXRlZ3ksIHlvdSBtdXN0IG5vdCBlbmNyeXB0IG1vcmUgdGhhbiAyKioxMjgKKyAqICAgICAgICAgICAgIGJsb2NrcyBvZiBkYXRhIHdpdGggdGhlIHNhbWUga2V5LgorICoKKyAqICAgICAgICAgICAgIDIuIFlvdSBjYW4gZW5jcnlwdCBzZXBhcmF0ZSBtZXNzYWdlcyBieSBkaXZpZGluZyB0aGUgXHAKKyAqICAgICAgICAgICAgIG5vbmNlX2NvdW50ZXIgYnVmZmVyIGluIHR3byBhcmVhczogdGhlIGZpcnN0IG9uZSB1c2VkIGZvciBhCisgKiAgICAgICAgICAgICBwZXItbWVzc2FnZSBub25jZSwgaGFuZGxlZCBieSB5b3Vyc2VsZiwgYW5kIHRoZSBzZWNvbmQgb25lCisgKiAgICAgICAgICAgICB1cGRhdGVkIGJ5IHRoaXMgZnVuY3Rpb24gaW50ZXJuYWxseS4KKyAqCisgKiAgICAgICAgICAgICBGb3IgZXhhbXBsZSwgeW91IG1pZ2h0IHJlc2VydmUgdGhlIGZpcnN0IDEyIGJ5dGVzIGZvciB0aGUKKyAqICAgICAgICAgICAgIHBlci1tZXNzYWdlIG5vbmNlLCBhbmQgdGhlIGxhc3QgNCBieXRlcyBmb3IgaW50ZXJuYWwgdXNlLiBJbiB0aGF0CisgKiAgICAgICAgICAgICBjYXNlLCBiZWZvcmUgY2FsbGluZyB0aGlzIGZ1bmN0aW9uIG9uIGEgbmV3IG1lc3NhZ2UgeW91IG5lZWQgdG8KKyAqICAgICAgICAgICAgIHNldCB0aGUgZmlyc3QgMTIgYnl0ZXMgb2YgXHAgbm9uY2VfY291bnRlciB0byB5b3VyIGNob3NlbiBub25jZQorICogICAgICAgICAgICAgdmFsdWUsIHRoZSBsYXN0IDQgdG8gMCwgYW5kIFxwIG5jX29mZiB0byAwICh3aGljaCB3aWxsIGNhdXNlIFxwCisgKiAgICAgICAgICAgICBzdHJlYW1fYmxvY2sgdG8gYmUgaWdub3JlZCkuIFRoYXQgd2F5LCB5b3UgY2FuIGVuY3J5cHQgYXQgbW9zdAorICogICAgICAgICAgICAgMioqOTYgbWVzc2FnZXMgb2YgdXAgdG8gMioqMzIgYmxvY2tzIGVhY2ggd2l0aCB0aGUgc2FtZSBrZXkuCisgKgorICogICAgICAgICAgICAgVGhlIHBlci1tZXNzYWdlIG5vbmNlIChvciBpbmZvcm1hdGlvbiBzdWZmaWNpZW50IHRvIHJlY29uc3RydWN0CisgKiAgICAgICAgICAgICBpdCkgbmVlZHMgdG8gYmUgY29tbXVuaWNhdGVkIHdpdGggdGhlIGNpcGhlcnRleHQgYW5kIG11c3QgYmUgdW5pcXVlLgorICogICAgICAgICAgICAgVGhlIHJlY29tbWVuZGVkIHdheSB0byBlbnN1cmUgdW5pcXVlbmVzcyBpcyB0byB1c2UgYSBtZXNzYWdlCisgKiAgICAgICAgICAgICBjb3VudGVyLiBBbiBhbHRlcm5hdGl2ZSBpcyB0byBnZW5lcmF0ZSByYW5kb20gbm9uY2VzLCBidXQgdGhpcworICogICAgICAgICAgICAgbGltaXRzIHRoZSBudW1iZXIgb2YgbWVzc2FnZXMgdGhhdCBjYW4gYmUgc2VjdXJlbHkgZW5jcnlwdGVkOgorICogICAgICAgICAgICAgZm9yIGV4YW1wbGUsIHdpdGggOTYtYml0IHJhbmRvbSBub25jZXMsIHlvdSBzaG91bGQgbm90IGVuY3J5cHQKKyAqICAgICAgICAgICAgIG1vcmUgdGhhbiAyKiozMiBtZXNzYWdlcyB3aXRoIHRoZSBzYW1lIGtleS4KKyAqCisgKiAgICAgICAgICAgICBOb3RlIHRoYXQgZm9yIGJvdGggc3RyYXRlZ2llcywgc2l6ZXMgYXJlIG1lYXN1cmVkIGluIGJsb2NrcyBhbmQKKyAqICAgICAgICAgICAgIHRoYXQgYW4gQUVTIGJsb2NrIGlzIDE2IGJ5dGVzLgorICoKKyAqIFx3YXJuaW5nICAgIFVwb24gcmV0dXJuLCBccCBzdHJlYW1fYmxvY2sgY29udGFpbnMgc2Vuc2l0aXZlIGRhdGEuIEl0cworICogICAgICAgICAgICAgY29udGVudCBtdXN0IG5vdCBiZSB3cml0dGVuIHRvIGluc2VjdXJlIHN0b3JhZ2UgYW5kIHNob3VsZCBiZQorICogICAgICAgICAgICAgc2VjdXJlbHkgZGlzY2FyZGVkIGFzIHNvb24gYXMgaXQncyBubyBsb25nZXIgbmVlZGVkLgorICoKKyAqIFxwYXJhbSBjdHggICAgICAgICAgICAgIFRoZSBBRVMgY29udGV4dCB0byB1c2UgZm9yIGVuY3J5cHRpb24gb3IgZGVjcnlwdGlvbi4KKyAqICAgICAgICAgICAgICAgICAgICAgICAgIEl0IG11c3QgYmUgaW5pdGlhbGl6ZWQgYW5kIGJvdW5kIHRvIGEga2V5LgorICogXHBhcmFtIGxlbmd0aCAgICAgICAgICAgVGhlIGxlbmd0aCBvZiB0aGUgaW5wdXQgZGF0YS4KKyAqIFxwYXJhbSBuY19vZmYgICAgICAgICAgIFRoZSBvZmZzZXQgaW4gdGhlIGN1cnJlbnQgXHAgc3RyZWFtX2Jsb2NrLCBmb3IKKyAqICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VtaW5nIHdpdGhpbiB0aGUgY3VycmVudCBjaXBoZXIgc3RyZWFtLiBUaGUKKyAqICAgICAgICAgICAgICAgICAgICAgICAgIG9mZnNldCBwb2ludGVyIHNob3VsZCBiZSAwIGF0IHRoZSBzdGFydCBvZiBhIHN0cmVhbS4KKyAqICAgICAgICAgICAgICAgICAgICAgICAgIEl0IG11c3QgcG9pbnQgdG8gYSB2YWxpZCBcYyBzaXplX3QuCisgKiBccGFyYW0gbm9uY2VfY291bnRlciAgICBUaGUgMTI4LWJpdCBub25jZSBhbmQgY291bnRlci4KKyAqICAgICAgICAgICAgICAgICAgICAgICAgIEl0IG11c3QgYmUgYSByZWFkYWJsZS13cml0ZWFibGUgYnVmZmVyIG9mIFxjIDE2IEJ5dGVzLgorICogXHBhcmFtIHN0cmVhbV9ibG9jayAgICAgVGhlIHNhdmVkIHN0cmVhbSBibG9jayBmb3IgcmVzdW1pbmcuIFRoaXMgaXMKKyAqICAgICAgICAgICAgICAgICAgICAgICAgIG92ZXJ3cml0dGVuIGJ5IHRoZSBmdW5jdGlvbi4KKyAqICAgICAgICAgICAgICAgICAgICAgICAgIEl0IG11c3QgYmUgYSByZWFkYWJsZS13cml0ZWFibGUgYnVmZmVyIG9mIFxjIDE2IEJ5dGVzLgorICogXHBhcmFtIGlucHV0ICAgICAgICAgICAgVGhlIGJ1ZmZlciBob2xkaW5nIHRoZSBpbnB1dCBkYXRhLgorICogICAgICAgICAgICAgICAgICAgICAgICAgSXQgbXVzdCBiZSByZWFkYWJsZSBhbmQgb2Ygc2l6ZSBccCBsZW5ndGggQnl0ZXMuCisgKiBccGFyYW0gb3V0cHV0ICAgICAgICAgICBUaGUgYnVmZmVyIGhvbGRpbmcgdGhlIG91dHB1dCBkYXRhLgorICogICAgICAgICAgICAgICAgICAgICAgICAgSXQgbXVzdCBiZSB3cml0ZWFibGUgYW5kIG9mIHNpemUgXHAgbGVuZ3RoIEJ5dGVzLgorICoKKyAqIFxyZXR1cm4gICAgICAgICAgICAgICAgIFxjIDAgb24gc3VjY2Vzcy4KKyAqLworTUJFRFRMU19DSEVDS19SRVRVUk5fVFlQSUNBTAoraW50IG1iZWR0bHNfYWVzX2NyeXB0X2N0cihtYmVkdGxzX2Flc19jb250ZXh0ICpjdHgsCisgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBsZW5ndGgsCisgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCAqbmNfb2ZmLAorICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBjaGFyIG5vbmNlX2NvdW50ZXJbMTZdLAorICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBjaGFyIHN0cmVhbV9ibG9ja1sxNl0sCisgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgKmlucHV0LAorICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBjaGFyICpvdXRwdXQpOworI2VuZGlmIC8qIE1CRURUTFNfQ0lQSEVSX01PREVfQ1RSICovCisKKy8qKgorICogXGJyaWVmICAgICAgICAgICBJbnRlcm5hbCBBRVMgYmxvY2sgZW5jcnlwdGlvbiBmdW5jdGlvbi4gVGhpcyBpcyBvbmx5CisgKiAgICAgICAgICAgICAgICAgIGV4cG9zZWQgdG8gYWxsb3cgb3ZlcnJpZGluZyBpdCB1c2luZworICogICAgICAgICAgICAgICAgICBcYyBNQkVEVExTX0FFU19FTkNSWVBUX0FMVC4KKyAqCisgKiBccGFyYW0gY3R4ICAgICAgIFRoZSBBRVMgY29udGV4dCB0byB1c2UgZm9yIGVuY3J5cHRpb24uCisgKiBccGFyYW0gaW5wdXQgICAgIFRoZSBwbGFpbnRleHQgYmxvY2suCisgKiBccGFyYW0gb3V0cHV0ICAgIFRoZSBvdXRwdXQgKGNpcGhlcnRleHQpIGJsb2NrLgorICoKKyAqIFxyZXR1cm4gICAgICAgICAgXGMgMCBvbiBzdWNjZXNzLgorICovCitNQkVEVExTX0NIRUNLX1JFVFVSTl9UWVBJQ0FMCitpbnQgbWJlZHRsc19pbnRlcm5hbF9hZXNfZW5jcnlwdChtYmVkdGxzX2Flc19jb250ZXh0ICpjdHgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1bnNpZ25lZCBjaGFyIGlucHV0WzE2XSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGNoYXIgb3V0cHV0WzE2XSk7CisKKyNpZiAhZGVmaW5lZChNQkVEVExTX0JMT0NLX0NJUEhFUl9OT19ERUNSWVBUKQorLyoqCisgKiBcYnJpZWYgICAgICAgICAgIEludGVybmFsIEFFUyBibG9jayBkZWNyeXB0aW9uIGZ1bmN0aW9uLiBUaGlzIGlzIG9ubHkKKyAqICAgICAgICAgICAgICAgICAgZXhwb3NlZCB0byBhbGxvdyBvdmVycmlkaW5nIGl0IHVzaW5nIHNlZQorICogICAgICAgICAgICAgICAgICBcYyBNQkVEVExTX0FFU19ERUNSWVBUX0FMVC4KKyAqCisgKiBccGFyYW0gY3R4ICAgICAgIFRoZSBBRVMgY29udGV4dCB0byB1c2UgZm9yIGRlY3J5cHRpb24uCisgKiBccGFyYW0gaW5wdXQgICAgIFRoZSBjaXBoZXJ0ZXh0IGJsb2NrLgorICogXHBhcmFtIG91dHB1dCAgICBUaGUgb3V0cHV0IChwbGFpbnRleHQpIGJsb2NrLgorICoKKyAqIFxyZXR1cm4gICAgICAgICAgXGMgMCBvbiBzdWNjZXNzLgorICovCitNQkVEVExTX0NIRUNLX1JFVFVSTl9UWVBJQ0FMCitpbnQgbWJlZHRsc19pbnRlcm5hbF9hZXNfZGVjcnlwdChtYmVkdGxzX2Flc19jb250ZXh0ICpjdHgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1bnNpZ25lZCBjaGFyIGlucHV0WzE2XSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGNoYXIgb3V0cHV0WzE2XSk7CisjZW5kaWYgLyogIU1CRURUTFNfQkxPQ0tfQ0lQSEVSX05PX0RFQ1JZUFQgKi8KKworI2lmIGRlZmluZWQoTUJFRFRMU19TRUxGX1RFU1QpCisvKioKKyAqIFxicmllZiAgICAgICAgICBDaGVja3VwIHJvdXRpbmUuCisgKgorICogXHJldHVybiAgICAgICAgIFxjIDAgb24gc3VjY2Vzcy4KKyAqIFxyZXR1cm4gICAgICAgICBcYyAxIG9uIGZhaWx1cmUuCisgKi8KK01CRURUTFNfQ0hFQ0tfUkVUVVJOX0NSSVRJQ0FMCitpbnQgbWJlZHRsc19hZXNfc2VsZl90ZXN0KGludCB2ZXJib3NlKTsKKworI2VuZGlmIC8qIE1CRURUTFNfU0VMRl9URVNUICovCisKKyNpZmRlZiBfX2NwbHVzcGx1cworfQorI2VuZGlmCisKKyNlbmRpZiAvKiBhZXMuaCAqLwpkaWZmIC0tZ2l0IGEvdGYtcHNhLWNyeXB0by9kcml2ZXJzL2J1aWx0aW4vaW5jbHVkZS9tYmVkdGxzL2FyaWEuaCBiL3RmLXBzYS1jcnlwdG8vZHJpdmVycy9idWlsdGluL2luY2x1ZGUvbWJlZHRscy9hcmlhLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZmExNzVmMAotLS0gL2Rldi9udWxsCisrKyBiL3RmLXBzYS1jcnlwdG8vZHJpdmVycy9idWlsdGluL2luY2x1ZGUvbWJlZHRscy9hcmlhLmgKQEAgLTAsMCArMSwzMzUgQEAKKy8qKgorICogXGZpbGUgYXJpYS5oCisgKgorICogXGJyaWVmIEFSSUEgYmxvY2sgY2lwaGVyCisgKgorICogICAgICAgIFRoZSBBUklBIGFsZ29yaXRobSBpcyBhIHN5bW1ldHJpYyBibG9jayBjaXBoZXIgdGhhdCBjYW4gZW5jcnlwdCBhbmQKKyAqICAgICAgICBkZWNyeXB0IGluZm9ybWF0aW9uLiBJdCBpcyBkZWZpbmVkIGJ5IHRoZSBLb3JlYW4gQWdlbmN5IGZvcgorICogICAgICAgIFRlY2hub2xvZ3kgYW5kIFN0YW5kYXJkcyAoS0FUUykgaW4gPGVtPktTIFggMTIxMzoyMDA0PC9lbT4gKGluCisgKiAgICAgICAgS29yZWFuLCBidXQgc2VlIGh0dHA6Ly8yMTAuMTA0LjMzLjEwL0FSSUEvaW5kZXgtZS5odG1sIGluIEVuZ2xpc2gpCisgKiAgICAgICAgYW5kIGFsc28gZGVzY3JpYmVkIGJ5IHRoZSBJRVRGIGluIDxlbT5SRkMgNTc5NDwvZW0+LgorICovCisvKgorICogIENvcHlyaWdodCBUaGUgTWJlZCBUTFMgQ29udHJpYnV0b3JzCisgKiAgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjAgT1IgR1BMLTIuMC1vci1sYXRlcgorICovCisKKyNpZm5kZWYgTUJFRFRMU19BUklBX0gKKyNkZWZpbmUgTUJFRFRMU19BUklBX0gKKyNpbmNsdWRlICJtYmVkdGxzL3ByaXZhdGVfYWNjZXNzLmgiCisKKyNpbmNsdWRlICJtYmVkdGxzL2J1aWxkX2luZm8uaCIKKworI2luY2x1ZGUgPHN0ZGRlZi5oPgorI2luY2x1ZGUgPHN0ZGludC5oPgorCisjaW5jbHVkZSAibWJlZHRscy9wbGF0Zm9ybV91dGlsLmgiCisKKyNkZWZpbmUgTUJFRFRMU19BUklBX0VOQ1JZUFQgICAgIDEgLyoqPCBBUklBIGVuY3J5cHRpb24uICovCisjZGVmaW5lIE1CRURUTFNfQVJJQV9ERUNSWVBUICAgICAwIC8qKjwgQVJJQSBkZWNyeXB0aW9uLiAqLworCisjZGVmaW5lIE1CRURUTFNfQVJJQV9CTE9DS1NJWkUgICAxNiAvKio8IEFSSUEgYmxvY2sgc2l6ZSBpbiBieXRlcy4gKi8KKyNkZWZpbmUgTUJFRFRMU19BUklBX01BWF9ST1VORFMgIDE2IC8qKjwgTWF4aW11bSBudW1iZXIgb2Ygcm91bmRzIGluIEFSSUEuICovCisjZGVmaW5lIE1CRURUTFNfQVJJQV9NQVhfS0VZU0laRSAzMiAvKio8IE1heGltdW0gc2l6ZSBvZiBhbiBBUklBIGtleSBpbiBieXRlcy4gKi8KKworLyoqIEJhZCBpbnB1dCBkYXRhLiAqLworI2RlZmluZSBNQkVEVExTX0VSUl9BUklBX0JBRF9JTlBVVF9EQVRBIC0weDAwNUMKKworLyoqIEludmFsaWQgZGF0YSBpbnB1dCBsZW5ndGguICovCisjZGVmaW5lIE1CRURUTFNfRVJSX0FSSUFfSU5WQUxJRF9JTlBVVF9MRU5HVEggLTB4MDA1RQorCisjaWZkZWYgX19jcGx1c3BsdXMKK2V4dGVybiAiQyIgeworI2VuZGlmCisKKy8qKgorICogXGJyaWVmIFRoZSBBUklBIGNvbnRleHQtdHlwZSBkZWZpbml0aW9uLgorICovCit0eXBlZGVmIHN0cnVjdCBtYmVkdGxzX2FyaWFfY29udGV4dCB7CisgICAgdW5zaWduZWQgY2hhciBNQkVEVExTX1BSSVZBVEUobnIpOyAgICAgICAgICAgLyohPCBUaGUgbnVtYmVyIG9mIHJvdW5kcyAoMTIsIDE0IG9yIDE2KSAqLworICAgIC8qISBUaGUgQVJJQSByb3VuZCBrZXlzLiAqLworICAgIHVpbnQzMl90IE1CRURUTFNfUFJJVkFURShyaylbTUJFRFRMU19BUklBX01BWF9ST1VORFMgKyAxXVtNQkVEVExTX0FSSUFfQkxPQ0tTSVpFIC8gNF07Cit9CittYmVkdGxzX2FyaWFfY29udGV4dDsKKworLyoqCisgKiBcYnJpZWYgICAgICAgICAgVGhpcyBmdW5jdGlvbiBpbml0aWFsaXplcyB0aGUgc3BlY2lmaWVkIEFSSUEgY29udGV4dC4KKyAqCisgKiAgICAgICAgICAgICAgICAgSXQgbXVzdCBiZSB0aGUgZmlyc3QgQVBJIGNhbGxlZCBiZWZvcmUgdXNpbmcKKyAqICAgICAgICAgICAgICAgICB0aGUgY29udGV4dC4KKyAqCisgKiBccGFyYW0gY3R4ICAgICAgVGhlIEFSSUEgY29udGV4dCB0byBpbml0aWFsaXplLiBUaGlzIG11c3Qgbm90IGJlIFxjIE5VTEwuCisgKi8KK3ZvaWQgbWJlZHRsc19hcmlhX2luaXQobWJlZHRsc19hcmlhX2NvbnRleHQgKmN0eCk7CisKKy8qKgorICogXGJyaWVmICAgICAgICAgIFRoaXMgZnVuY3Rpb24gcmVsZWFzZXMgYW5kIGNsZWFycyB0aGUgc3BlY2lmaWVkIEFSSUEgY29udGV4dC4KKyAqCisgKiBccGFyYW0gY3R4ICAgICAgVGhlIEFSSUEgY29udGV4dCB0byBjbGVhci4gVGhpcyBtYXkgYmUgXGMgTlVMTCwgaW4gd2hpY2gKKyAqICAgICAgICAgICAgICAgICBjYXNlIHRoaXMgZnVuY3Rpb24gcmV0dXJucyBpbW1lZGlhdGVseS4gSWYgaXQgaXMgbm90IFxjIE5VTEwsCisgKiAgICAgICAgICAgICAgICAgaXQgbXVzdCBwb2ludCB0byBhbiBpbml0aWFsaXplZCBBUklBIGNvbnRleHQuCisgKi8KK3ZvaWQgbWJlZHRsc19hcmlhX2ZyZWUobWJlZHRsc19hcmlhX2NvbnRleHQgKmN0eCk7CisKKy8qKgorICogXGJyaWVmICAgICAgICAgIFRoaXMgZnVuY3Rpb24gc2V0cyB0aGUgZW5jcnlwdGlvbiBrZXkuCisgKgorICogXHBhcmFtIGN0eCAgICAgIFRoZSBBUklBIGNvbnRleHQgdG8gd2hpY2ggdGhlIGtleSBzaG91bGQgYmUgYm91bmQuCisgKiAgICAgICAgICAgICAgICAgVGhpcyBtdXN0IGJlIGluaXRpYWxpemVkLgorICogXHBhcmFtIGtleSAgICAgIFRoZSBlbmNyeXB0aW9uIGtleS4gVGhpcyBtdXN0IGJlIGEgcmVhZGFibGUgYnVmZmVyCisgKiAgICAgICAgICAgICAgICAgb2Ygc2l6ZSBccCBrZXliaXRzIEJpdHMuCisgKiBccGFyYW0ga2V5Yml0cyAgVGhlIHNpemUgb2YgXHAga2V5IGluIEJpdHMuIFZhbGlkIG9wdGlvbnMgYXJlOgorICogICAgICAgICAgICAgICAgIDx1bD48bGk+MTI4IGJpdHM8L2xpPgorICogICAgICAgICAgICAgICAgIDxsaT4xOTIgYml0czwvbGk+CisgKiAgICAgICAgICAgICAgICAgPGxpPjI1NiBiaXRzPC9saT48L3VsPgorICoKKyAqIFxyZXR1cm4gICAgICAgICBcYyAwIG9uIHN1Y2Nlc3MuCisgKiBccmV0dXJuICAgICAgICAgQSBuZWdhdGl2ZSBlcnJvciBjb2RlIG9uIGZhaWx1cmUuCisgKi8KK2ludCBtYmVkdGxzX2FyaWFfc2V0a2V5X2VuYyhtYmVkdGxzX2FyaWFfY29udGV4dCAqY3R4LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgKmtleSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQga2V5Yml0cyk7CisKKyNpZiAhZGVmaW5lZChNQkVEVExTX0JMT0NLX0NJUEhFUl9OT19ERUNSWVBUKQorLyoqCisgKiBcYnJpZWYgICAgICAgICAgVGhpcyBmdW5jdGlvbiBzZXRzIHRoZSBkZWNyeXB0aW9uIGtleS4KKyAqCisgKiBccGFyYW0gY3R4ICAgICAgVGhlIEFSSUEgY29udGV4dCB0byB3aGljaCB0aGUga2V5IHNob3VsZCBiZSBib3VuZC4KKyAqICAgICAgICAgICAgICAgICBUaGlzIG11c3QgYmUgaW5pdGlhbGl6ZWQuCisgKiBccGFyYW0ga2V5ICAgICAgVGhlIGRlY3J5cHRpb24ga2V5LiBUaGlzIG11c3QgYmUgYSByZWFkYWJsZSBidWZmZXIKKyAqICAgICAgICAgICAgICAgICBvZiBzaXplIFxwIGtleWJpdHMgQml0cy4KKyAqIFxwYXJhbSBrZXliaXRzICBUaGUgc2l6ZSBvZiBkYXRhIHBhc3NlZC4gVmFsaWQgb3B0aW9ucyBhcmU6CisgKiAgICAgICAgICAgICAgICAgPHVsPjxsaT4xMjggYml0czwvbGk+CisgKiAgICAgICAgICAgICAgICAgPGxpPjE5MiBiaXRzPC9saT4KKyAqICAgICAgICAgICAgICAgICA8bGk+MjU2IGJpdHM8L2xpPjwvdWw+CisgKgorICogXHJldHVybiAgICAgICAgIFxjIDAgb24gc3VjY2Vzcy4KKyAqIFxyZXR1cm4gICAgICAgICBBIG5lZ2F0aXZlIGVycm9yIGNvZGUgb24gZmFpbHVyZS4KKyAqLworaW50IG1iZWR0bHNfYXJpYV9zZXRrZXlfZGVjKG1iZWR0bHNfYXJpYV9jb250ZXh0ICpjdHgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdW5zaWduZWQgY2hhciAqa2V5LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCBrZXliaXRzKTsKKyNlbmRpZiAvKiAhTUJFRFRMU19CTE9DS19DSVBIRVJfTk9fREVDUllQVCAqLworCisvKioKKyAqIFxicmllZiAgICAgICAgICBUaGlzIGZ1bmN0aW9uIHBlcmZvcm1zIGFuIEFSSUEgc2luZ2xlLWJsb2NrIGVuY3J5cHRpb24gb3IKKyAqICAgICAgICAgICAgICAgICBkZWNyeXB0aW9uIG9wZXJhdGlvbi4KKyAqCisgKiAgICAgICAgICAgICAgICAgSXQgcGVyZm9ybXMgZW5jcnlwdGlvbiBvciBkZWNyeXB0aW9uIChkZXBlbmRpbmcgb24gd2hldGhlcgorICogICAgICAgICAgICAgICAgIHRoZSBrZXkgd2FzIHNldCBmb3IgZW5jcnlwdGlvbiBvbiBkZWNyeXB0aW9uKSBvbiB0aGUgaW5wdXQKKyAqICAgICAgICAgICAgICAgICBkYXRhIGJ1ZmZlciBkZWZpbmVkIGluIHRoZSBccCBpbnB1dCBwYXJhbWV0ZXIuCisgKgorICogICAgICAgICAgICAgICAgIG1iZWR0bHNfYXJpYV9pbml0KCksIGFuZCBlaXRoZXIgbWJlZHRsc19hcmlhX3NldGtleV9lbmMoKSBvcgorICogICAgICAgICAgICAgICAgIG1iZWR0bHNfYXJpYV9zZXRrZXlfZGVjKCkgbXVzdCBiZSBjYWxsZWQgYmVmb3JlIHRoZSBmaXJzdAorICogICAgICAgICAgICAgICAgIGNhbGwgdG8gdGhpcyBBUEkgd2l0aCB0aGUgc2FtZSBjb250ZXh0LgorICoKKyAqIFxwYXJhbSBjdHggICAgICBUaGUgQVJJQSBjb250ZXh0IHRvIHVzZSBmb3IgZW5jcnlwdGlvbiBvciBkZWNyeXB0aW9uLgorICogICAgICAgICAgICAgICAgIFRoaXMgbXVzdCBiZSBpbml0aWFsaXplZCBhbmQgYm91bmQgdG8gYSBrZXkuCisgKiBccGFyYW0gaW5wdXQgICAgVGhlIDE2LUJ5dGUgYnVmZmVyIGhvbGRpbmcgdGhlIGlucHV0IGRhdGEuCisgKiBccGFyYW0gb3V0cHV0ICAgVGhlIDE2LUJ5dGUgYnVmZmVyIGhvbGRpbmcgdGhlIG91dHB1dCBkYXRhLgorCisgKiBccmV0dXJuICAgICAgICAgXGMgMCBvbiBzdWNjZXNzLgorICogXHJldHVybiAgICAgICAgIEEgbmVnYXRpdmUgZXJyb3IgY29kZSBvbiBmYWlsdXJlLgorICovCitpbnQgbWJlZHRsc19hcmlhX2NyeXB0X2VjYihtYmVkdGxzX2FyaWFfY29udGV4dCAqY3R4LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdW5zaWduZWQgY2hhciBpbnB1dFtNQkVEVExTX0FSSUFfQkxPQ0tTSVpFXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGNoYXIgb3V0cHV0W01CRURUTFNfQVJJQV9CTE9DS1NJWkVdKTsKKworI2lmIGRlZmluZWQoTUJFRFRMU19DSVBIRVJfTU9ERV9DQkMpCisvKioKKyAqIFxicmllZiAgVGhpcyBmdW5jdGlvbiBwZXJmb3JtcyBhbiBBUklBLUNCQyBlbmNyeXB0aW9uIG9yIGRlY3J5cHRpb24gb3BlcmF0aW9uCisgKiAgICAgICAgIG9uIGZ1bGwgYmxvY2tzLgorICoKKyAqICAgICAgICAgSXQgcGVyZm9ybXMgdGhlIG9wZXJhdGlvbiBkZWZpbmVkIGluIHRoZSBccCBtb2RlCisgKiAgICAgICAgIHBhcmFtZXRlciAoZW5jcnlwdC9kZWNyeXB0KSwgb24gdGhlIGlucHV0IGRhdGEgYnVmZmVyIGRlZmluZWQgaW4KKyAqICAgICAgICAgdGhlIFxwIGlucHV0IHBhcmFtZXRlci4KKyAqCisgKiAgICAgICAgIEl0IGNhbiBiZSBjYWxsZWQgYXMgbWFueSB0aW1lcyBhcyBuZWVkZWQsIHVudGlsIGFsbCB0aGUgaW5wdXQKKyAqICAgICAgICAgZGF0YSBpcyBwcm9jZXNzZWQuIG1iZWR0bHNfYXJpYV9pbml0KCksIGFuZCBlaXRoZXIKKyAqICAgICAgICAgbWJlZHRsc19hcmlhX3NldGtleV9lbmMoKSBvciBtYmVkdGxzX2FyaWFfc2V0a2V5X2RlYygpIG11c3QgYmUgY2FsbGVkCisgKiAgICAgICAgIGJlZm9yZSB0aGUgZmlyc3QgY2FsbCB0byB0aGlzIEFQSSB3aXRoIHRoZSBzYW1lIGNvbnRleHQuCisgKgorICogXG5vdGUgICBUaGlzIGZ1bmN0aW9uIG9wZXJhdGVzIG9uIGFsaWduZWQgYmxvY2tzLCB0aGF0IGlzLCB0aGUgaW5wdXQgc2l6ZQorICogICAgICAgICBtdXN0IGJlIGEgbXVsdGlwbGUgb2YgdGhlIEFSSUEgYmxvY2sgc2l6ZSBvZiAxNiBCeXRlcy4KKyAqCisgKiBcbm90ZSAgIFVwb24gZXhpdCwgdGhlIGNvbnRlbnQgb2YgdGhlIElWIGlzIHVwZGF0ZWQgc28gdGhhdCB5b3UgY2FuCisgKiAgICAgICAgIGNhbGwgdGhlIHNhbWUgZnVuY3Rpb24gYWdhaW4gb24gdGhlIG5leHQKKyAqICAgICAgICAgYmxvY2socykgb2YgZGF0YSBhbmQgZ2V0IHRoZSBzYW1lIHJlc3VsdCBhcyBpZiBpdCB3YXMKKyAqICAgICAgICAgZW5jcnlwdGVkIGluIG9uZSBjYWxsLiBUaGlzIGFsbG93cyBhICJzdHJlYW1pbmciIHVzYWdlLgorICogICAgICAgICBJZiB5b3UgbmVlZCB0byByZXRhaW4gdGhlIGNvbnRlbnRzIG9mIHRoZSBJViwgeW91IHNob3VsZAorICogICAgICAgICBlaXRoZXIgc2F2ZSBpdCBtYW51YWxseSBvciB1c2UgdGhlIGNpcGhlciBtb2R1bGUgaW5zdGVhZC4KKyAqCisgKgorICogXHBhcmFtIGN0eCAgICAgIFRoZSBBUklBIGNvbnRleHQgdG8gdXNlIGZvciBlbmNyeXB0aW9uIG9yIGRlY3J5cHRpb24uCisgKiAgICAgICAgICAgICAgICAgVGhpcyBtdXN0IGJlIGluaXRpYWxpemVkIGFuZCBib3VuZCB0byBhIGtleS4KKyAqIFxwYXJhbSBtb2RlICAgICBUaGUgbW9kZSBvZiBvcGVyYXRpb24uIFRoaXMgbXVzdCBiZSBlaXRoZXIKKyAqICAgICAgICAgICAgICAgICAjTUJFRFRMU19BUklBX0VOQ1JZUFQgZm9yIGVuY3J5cHRpb24sIG9yCisgKiAgICAgICAgICAgICAgICAgI01CRURUTFNfQVJJQV9ERUNSWVBUIGZvciBkZWNyeXB0aW9uLgorICogXHBhcmFtIGxlbmd0aCAgIFRoZSBsZW5ndGggb2YgdGhlIGlucHV0IGRhdGEgaW4gQnl0ZXMuIFRoaXMgbXVzdCBiZSBhCisgKiAgICAgICAgICAgICAgICAgbXVsdGlwbGUgb2YgdGhlIGJsb2NrIHNpemUgKDE2IEJ5dGVzKS4KKyAqIFxwYXJhbSBpdiAgICAgICBJbml0aWFsaXphdGlvbiB2ZWN0b3IgKHVwZGF0ZWQgYWZ0ZXIgdXNlKS4KKyAqICAgICAgICAgICAgICAgICBUaGlzIG11c3QgYmUgYSByZWFkYWJsZSBidWZmZXIgb2Ygc2l6ZSAxNiBCeXRlcy4KKyAqIFxwYXJhbSBpbnB1dCAgICBUaGUgYnVmZmVyIGhvbGRpbmcgdGhlIGlucHV0IGRhdGEuIFRoaXMgbXVzdAorICogICAgICAgICAgICAgICAgIGJlIGEgcmVhZGFibGUgYnVmZmVyIG9mIGxlbmd0aCBccCBsZW5ndGggQnl0ZXMuCisgKiBccGFyYW0gb3V0cHV0ICAgVGhlIGJ1ZmZlciBob2xkaW5nIHRoZSBvdXRwdXQgZGF0YS4gVGhpcyBtdXN0CisgKiAgICAgICAgICAgICAgICAgYmUgYSB3cml0YWJsZSBidWZmZXIgb2YgbGVuZ3RoIFxwIGxlbmd0aCBCeXRlcy4KKyAqCisgKiBccmV0dXJuICAgICAgICAgXGMgMCBvbiBzdWNjZXNzLgorICogXHJldHVybiAgICAgICAgIEEgbmVnYXRpdmUgZXJyb3IgY29kZSBvbiBmYWlsdXJlLgorICovCitpbnQgbWJlZHRsc19hcmlhX2NyeXB0X2NiYyhtYmVkdGxzX2FyaWFfY29udGV4dCAqY3R4LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IG1vZGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgbGVuZ3RoLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgY2hhciBpdltNQkVEVExTX0FSSUFfQkxPQ0tTSVpFXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgKmlucHV0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgY2hhciAqb3V0cHV0KTsKKyNlbmRpZiAvKiBNQkVEVExTX0NJUEhFUl9NT0RFX0NCQyAqLworCisjaWYgZGVmaW5lZChNQkVEVExTX0NJUEhFUl9NT0RFX0NGQikKKy8qKgorICogXGJyaWVmIFRoaXMgZnVuY3Rpb24gcGVyZm9ybXMgYW4gQVJJQS1DRkIxMjggZW5jcnlwdGlvbiBvciBkZWNyeXB0aW9uCisgKiAgICAgICAgb3BlcmF0aW9uLgorICoKKyAqICAgICAgICBJdCBwZXJmb3JtcyB0aGUgb3BlcmF0aW9uIGRlZmluZWQgaW4gdGhlIFxwIG1vZGUKKyAqICAgICAgICBwYXJhbWV0ZXIgKGVuY3J5cHQgb3IgZGVjcnlwdCksIG9uIHRoZSBpbnB1dCBkYXRhIGJ1ZmZlcgorICogICAgICAgIGRlZmluZWQgaW4gdGhlIFxwIGlucHV0IHBhcmFtZXRlci4KKyAqCisgKiAgICAgICAgRm9yIENGQiwgeW91IG11c3Qgc2V0IHVwIHRoZSBjb250ZXh0IHdpdGggbWJlZHRsc19hcmlhX3NldGtleV9lbmMoKSwKKyAqICAgICAgICByZWdhcmRsZXNzIG9mIHdoZXRoZXIgeW91IGFyZSBwZXJmb3JtaW5nIGFuIGVuY3J5cHRpb24gb3IgZGVjcnlwdGlvbgorICogICAgICAgIG9wZXJhdGlvbiwgdGhhdCBpcywgcmVnYXJkbGVzcyBvZiB0aGUgXHAgbW9kZSBwYXJhbWV0ZXIuIFRoaXMgaXMKKyAqICAgICAgICBiZWNhdXNlIENGQiBtb2RlIHVzZXMgdGhlIHNhbWUga2V5IHNjaGVkdWxlIGZvciBlbmNyeXB0aW9uIGFuZAorICogICAgICAgIGRlY3J5cHRpb24uCisgKgorICogXG5vdGUgIFVwb24gZXhpdCwgdGhlIGNvbnRlbnQgb2YgdGhlIElWIGlzIHVwZGF0ZWQgc28gdGhhdCB5b3UgY2FuCisgKiAgICAgICAgY2FsbCB0aGUgc2FtZSBmdW5jdGlvbiBhZ2FpbiBvbiB0aGUgbmV4dAorICogICAgICAgIGJsb2NrKHMpIG9mIGRhdGEgYW5kIGdldCB0aGUgc2FtZSByZXN1bHQgYXMgaWYgaXQgd2FzCisgKiAgICAgICAgZW5jcnlwdGVkIGluIG9uZSBjYWxsLiBUaGlzIGFsbG93cyBhICJzdHJlYW1pbmciIHVzYWdlLgorICogICAgICAgIElmIHlvdSBuZWVkIHRvIHJldGFpbiB0aGUgY29udGVudHMgb2YgdGhlCisgKiAgICAgICAgSVYsIHlvdSBtdXN0IGVpdGhlciBzYXZlIGl0IG1hbnVhbGx5IG9yIHVzZSB0aGUgY2lwaGVyCisgKiAgICAgICAgbW9kdWxlIGluc3RlYWQuCisgKgorICoKKyAqIFxwYXJhbSBjdHggICAgICBUaGUgQVJJQSBjb250ZXh0IHRvIHVzZSBmb3IgZW5jcnlwdGlvbiBvciBkZWNyeXB0aW9uLgorICogICAgICAgICAgICAgICAgIFRoaXMgbXVzdCBiZSBpbml0aWFsaXplZCBhbmQgYm91bmQgdG8gYSBrZXkuCisgKiBccGFyYW0gbW9kZSAgICAgVGhlIG1vZGUgb2Ygb3BlcmF0aW9uLiBUaGlzIG11c3QgYmUgZWl0aGVyCisgKiAgICAgICAgICAgICAgICAgI01CRURUTFNfQVJJQV9FTkNSWVBUIGZvciBlbmNyeXB0aW9uLCBvcgorICogICAgICAgICAgICAgICAgICNNQkVEVExTX0FSSUFfREVDUllQVCBmb3IgZGVjcnlwdGlvbi4KKyAqIFxwYXJhbSBsZW5ndGggICBUaGUgbGVuZ3RoIG9mIHRoZSBpbnB1dCBkYXRhIFxwIGlucHV0IGluIEJ5dGVzLgorICogXHBhcmFtIGl2X29mZiAgIFRoZSBvZmZzZXQgaW4gSVYgKHVwZGF0ZWQgYWZ0ZXIgdXNlKS4KKyAqICAgICAgICAgICAgICAgICBUaGlzIG11c3Qgbm90IGJlIGxhcmdlciB0aGFuIDE1LgorICogXHBhcmFtIGl2ICAgICAgIFRoZSBpbml0aWFsaXphdGlvbiB2ZWN0b3IgKHVwZGF0ZWQgYWZ0ZXIgdXNlKS4KKyAqICAgICAgICAgICAgICAgICBUaGlzIG11c3QgYmUgYSByZWFkYWJsZSBidWZmZXIgb2Ygc2l6ZSAxNiBCeXRlcy4KKyAqIFxwYXJhbSBpbnB1dCAgICBUaGUgYnVmZmVyIGhvbGRpbmcgdGhlIGlucHV0IGRhdGEuIFRoaXMgbXVzdAorICogICAgICAgICAgICAgICAgIGJlIGEgcmVhZGFibGUgYnVmZmVyIG9mIGxlbmd0aCBccCBsZW5ndGggQnl0ZXMuCisgKiBccGFyYW0gb3V0cHV0ICAgVGhlIGJ1ZmZlciBob2xkaW5nIHRoZSBvdXRwdXQgZGF0YS4gVGhpcyBtdXN0CisgKiAgICAgICAgICAgICAgICAgYmUgYSB3cml0YWJsZSBidWZmZXIgb2YgbGVuZ3RoIFxwIGxlbmd0aCBCeXRlcy4KKyAqCisgKiBccmV0dXJuICAgICAgICAgXGMgMCBvbiBzdWNjZXNzLgorICogXHJldHVybiAgICAgICAgIEEgbmVnYXRpdmUgZXJyb3IgY29kZSBvbiBmYWlsdXJlLgorICovCitpbnQgbWJlZHRsc19hcmlhX2NyeXB0X2NmYjEyOChtYmVkdGxzX2FyaWFfY29udGV4dCAqY3R4LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IG1vZGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgbGVuZ3RoLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90ICppdl9vZmYsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBjaGFyIGl2W01CRURUTFNfQVJJQV9CTE9DS1NJWkVdLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdW5zaWduZWQgY2hhciAqaW5wdXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBjaGFyICpvdXRwdXQpOworI2VuZGlmIC8qIE1CRURUTFNfQ0lQSEVSX01PREVfQ0ZCICovCisKKyNpZiBkZWZpbmVkKE1CRURUTFNfQ0lQSEVSX01PREVfQ1RSKQorLyoqCisgKiBcYnJpZWYgICAgICBUaGlzIGZ1bmN0aW9uIHBlcmZvcm1zIGFuIEFSSUEtQ1RSIGVuY3J5cHRpb24gb3IgZGVjcnlwdGlvbgorICogICAgICAgICAgICAgb3BlcmF0aW9uLgorICoKKyAqICAgICAgICAgICAgIER1ZSB0byB0aGUgbmF0dXJlIG9mIENUUiwgeW91IG11c3QgdXNlIHRoZSBzYW1lIGtleSBzY2hlZHVsZQorICogICAgICAgICAgICAgZm9yIGJvdGggZW5jcnlwdGlvbiBhbmQgZGVjcnlwdGlvbiBvcGVyYXRpb25zLiBUaGVyZWZvcmUsIHlvdQorICogICAgICAgICAgICAgbXVzdCB1c2UgdGhlIGNvbnRleHQgaW5pdGlhbGl6ZWQgd2l0aCBtYmVkdGxzX2FyaWFfc2V0a2V5X2VuYygpCisgKiAgICAgICAgICAgICBmb3IgYm90aCAjTUJFRFRMU19BUklBX0VOQ1JZUFQgYW5kICNNQkVEVExTX0FSSUFfREVDUllQVC4KKyAqCisgKiBcd2FybmluZyAgICBZb3UgbXVzdCBuZXZlciByZXVzZSBhIG5vbmNlIHZhbHVlIHdpdGggdGhlIHNhbWUga2V5LiBEb2luZyBzbworICogICAgICAgICAgICAgd291bGQgdm9pZCB0aGUgZW5jcnlwdGlvbiBmb3IgdGhlIHR3byBtZXNzYWdlcyBlbmNyeXB0ZWQgd2l0aAorICogICAgICAgICAgICAgdGhlIHNhbWUgbm9uY2UgYW5kIGtleS4KKyAqCisgKiAgICAgICAgICAgICBUaGVyZSBhcmUgdHdvIGNvbW1vbiBzdHJhdGVnaWVzIGZvciBtYW5hZ2luZyBub25jZXMgd2l0aCBDVFI6CisgKgorICogICAgICAgICAgICAgMS4gWW91IGNhbiBoYW5kbGUgZXZlcnl0aGluZyBhcyBhIHNpbmdsZSBtZXNzYWdlIHByb2Nlc3NlZCBvdmVyCisgKiAgICAgICAgICAgICBzdWNjZXNzaXZlIGNhbGxzIHRvIHRoaXMgZnVuY3Rpb24uIEluIHRoYXQgY2FzZSwgeW91IHdhbnQgdG8KKyAqICAgICAgICAgICAgIHNldCBccCBub25jZV9jb3VudGVyIGFuZCBccCBuY19vZmYgdG8gMCBmb3IgdGhlIGZpcnN0IGNhbGwsIGFuZAorICogICAgICAgICAgICAgdGhlbiBwcmVzZXJ2ZSB0aGUgdmFsdWVzIG9mIFxwIG5vbmNlX2NvdW50ZXIsIFxwIG5jX29mZiBhbmQgXHAKKyAqICAgICAgICAgICAgIHN0cmVhbV9ibG9jayBhY3Jvc3MgY2FsbHMgdG8gdGhpcyBmdW5jdGlvbiBhcyB0aGV5IHdpbGwgYmUKKyAqICAgICAgICAgICAgIHVwZGF0ZWQgYnkgdGhpcyBmdW5jdGlvbi4KKyAqCisgKiAgICAgICAgICAgICBXaXRoIHRoaXMgc3RyYXRlZ3ksIHlvdSBtdXN0IG5vdCBlbmNyeXB0IG1vcmUgdGhhbiAyKioxMjgKKyAqICAgICAgICAgICAgIGJsb2NrcyBvZiBkYXRhIHdpdGggdGhlIHNhbWUga2V5LgorICoKKyAqICAgICAgICAgICAgIDIuIFlvdSBjYW4gZW5jcnlwdCBzZXBhcmF0ZSBtZXNzYWdlcyBieSBkaXZpZGluZyB0aGUgXHAKKyAqICAgICAgICAgICAgIG5vbmNlX2NvdW50ZXIgYnVmZmVyIGluIHR3byBhcmVhczogdGhlIGZpcnN0IG9uZSB1c2VkIGZvciBhCisgKiAgICAgICAgICAgICBwZXItbWVzc2FnZSBub25jZSwgaGFuZGxlZCBieSB5b3Vyc2VsZiwgYW5kIHRoZSBzZWNvbmQgb25lCisgKiAgICAgICAgICAgICB1cGRhdGVkIGJ5IHRoaXMgZnVuY3Rpb24gaW50ZXJuYWxseS4KKyAqCisgKiAgICAgICAgICAgICBGb3IgZXhhbXBsZSwgeW91IG1pZ2h0IHJlc2VydmUgdGhlIGZpcnN0IDEyIGJ5dGVzIGZvciB0aGUKKyAqICAgICAgICAgICAgIHBlci1tZXNzYWdlIG5vbmNlLCBhbmQgdGhlIGxhc3QgNCBieXRlcyBmb3IgaW50ZXJuYWwgdXNlLiBJbiB0aGF0CisgKiAgICAgICAgICAgICBjYXNlLCBiZWZvcmUgY2FsbGluZyB0aGlzIGZ1bmN0aW9uIG9uIGEgbmV3IG1lc3NhZ2UgeW91IG5lZWQgdG8KKyAqICAgICAgICAgICAgIHNldCB0aGUgZmlyc3QgMTIgYnl0ZXMgb2YgXHAgbm9uY2VfY291bnRlciB0byB5b3VyIGNob3NlbiBub25jZQorICogICAgICAgICAgICAgdmFsdWUsIHRoZSBsYXN0IDQgdG8gMCwgYW5kIFxwIG5jX29mZiB0byAwICh3aGljaCB3aWxsIGNhdXNlIFxwCisgKiAgICAgICAgICAgICBzdHJlYW1fYmxvY2sgdG8gYmUgaWdub3JlZCkuIFRoYXQgd2F5LCB5b3UgY2FuIGVuY3J5cHQgYXQgbW9zdAorICogICAgICAgICAgICAgMioqOTYgbWVzc2FnZXMgb2YgdXAgdG8gMioqMzIgYmxvY2tzIGVhY2ggd2l0aCB0aGUgc2FtZSBrZXkuCisgKgorICogICAgICAgICAgICAgVGhlIHBlci1tZXNzYWdlIG5vbmNlIChvciBpbmZvcm1hdGlvbiBzdWZmaWNpZW50IHRvIHJlY29uc3RydWN0CisgKiAgICAgICAgICAgICBpdCkgbmVlZHMgdG8gYmUgY29tbXVuaWNhdGVkIHdpdGggdGhlIGNpcGhlcnRleHQgYW5kIG11c3QgYmUgdW5pcXVlLgorICogICAgICAgICAgICAgVGhlIHJlY29tbWVuZGVkIHdheSB0byBlbnN1cmUgdW5pcXVlbmVzcyBpcyB0byB1c2UgYSBtZXNzYWdlCisgKiAgICAgICAgICAgICBjb3VudGVyLiBBbiBhbHRlcm5hdGl2ZSBpcyB0byBnZW5lcmF0ZSByYW5kb20gbm9uY2VzLCBidXQgdGhpcworICogICAgICAgICAgICAgbGltaXRzIHRoZSBudW1iZXIgb2YgbWVzc2FnZXMgdGhhdCBjYW4gYmUgc2VjdXJlbHkgZW5jcnlwdGVkOgorICogICAgICAgICAgICAgZm9yIGV4YW1wbGUsIHdpdGggOTYtYml0IHJhbmRvbSBub25jZXMsIHlvdSBzaG91bGQgbm90IGVuY3J5cHQKKyAqICAgICAgICAgICAgIG1vcmUgdGhhbiAyKiozMiBtZXNzYWdlcyB3aXRoIHRoZSBzYW1lIGtleS4KKyAqCisgKiAgICAgICAgICAgICBOb3RlIHRoYXQgZm9yIGJvdGggc3RyYXRlZ2llcywgc2l6ZXMgYXJlIG1lYXN1cmVkIGluIGJsb2NrcyBhbmQKKyAqICAgICAgICAgICAgIHRoYXQgYW4gQVJJQSBibG9jayBpcyAxNiBieXRlcy4KKyAqCisgKiBcd2FybmluZyAgICBVcG9uIHJldHVybiwgXHAgc3RyZWFtX2Jsb2NrIGNvbnRhaW5zIHNlbnNpdGl2ZSBkYXRhLiBJdHMKKyAqICAgICAgICAgICAgIGNvbnRlbnQgbXVzdCBub3QgYmUgd3JpdHRlbiB0byBpbnNlY3VyZSBzdG9yYWdlIGFuZCBzaG91bGQgYmUKKyAqICAgICAgICAgICAgIHNlY3VyZWx5IGRpc2NhcmRlZCBhcyBzb29uIGFzIGl0J3Mgbm8gbG9uZ2VyIG5lZWRlZC4KKyAqCisgKiBccGFyYW0gY3R4ICAgICAgICAgICAgICBUaGUgQVJJQSBjb250ZXh0IHRvIHVzZSBmb3IgZW5jcnlwdGlvbiBvciBkZWNyeXB0aW9uLgorICogICAgICAgICAgICAgICAgICAgICAgICAgVGhpcyBtdXN0IGJlIGluaXRpYWxpemVkIGFuZCBib3VuZCB0byBhIGtleS4KKyAqIFxwYXJhbSBsZW5ndGggICAgICAgICAgIFRoZSBsZW5ndGggb2YgdGhlIGlucHV0IGRhdGEgXHAgaW5wdXQgaW4gQnl0ZXMuCisgKiBccGFyYW0gbmNfb2ZmICAgICAgICAgICBUaGUgb2Zmc2V0IGluIEJ5dGVzIGluIHRoZSBjdXJyZW50IFxwIHN0cmVhbV9ibG9jaywKKyAqICAgICAgICAgICAgICAgICAgICAgICAgIGZvciByZXN1bWluZyB3aXRoaW4gdGhlIGN1cnJlbnQgY2lwaGVyIHN0cmVhbS4gVGhlCisgKiAgICAgICAgICAgICAgICAgICAgICAgICBvZmZzZXQgcG9pbnRlciBzaG91bGQgYmUgXGMgMCBhdCB0aGUgc3RhcnQgb2YgYQorICogICAgICAgICAgICAgICAgICAgICAgICAgc3RyZWFtLiBUaGlzIG11c3Qgbm90IGJlIGxhcmdlciB0aGFuIFxjIDE1IEJ5dGVzLgorICogXHBhcmFtIG5vbmNlX2NvdW50ZXIgICAgVGhlIDEyOC1iaXQgbm9uY2UgYW5kIGNvdW50ZXIuIFRoaXMgbXVzdCBwb2ludCB0bworICogICAgICAgICAgICAgICAgICAgICAgICAgYSByZWFkL3dyaXRlIGJ1ZmZlciBvZiBsZW5ndGggXGMgMTYgYnl0ZXMuCisgKiBccGFyYW0gc3RyZWFtX2Jsb2NrICAgICBUaGUgc2F2ZWQgc3RyZWFtIGJsb2NrIGZvciByZXN1bWluZy4gVGhpcyBtdXN0CisgKiAgICAgICAgICAgICAgICAgICAgICAgICBwb2ludCB0byBhIHJlYWQvd3JpdGUgYnVmZmVyIG9mIGxlbmd0aCBcYyAxNiBieXRlcy4KKyAqICAgICAgICAgICAgICAgICAgICAgICAgIFRoaXMgaXMgb3ZlcndyaXR0ZW4gYnkgdGhlIGZ1bmN0aW9uLgorICogXHBhcmFtIGlucHV0ICAgICAgICAgICAgVGhlIGJ1ZmZlciBob2xkaW5nIHRoZSBpbnB1dCBkYXRhLiBUaGlzIG11c3QKKyAqICAgICAgICAgICAgICAgICAgICAgICAgIGJlIGEgcmVhZGFibGUgYnVmZmVyIG9mIGxlbmd0aCBccCBsZW5ndGggQnl0ZXMuCisgKiBccGFyYW0gb3V0cHV0ICAgICAgICAgICBUaGUgYnVmZmVyIGhvbGRpbmcgdGhlIG91dHB1dCBkYXRhLiBUaGlzIG11c3QKKyAqICAgICAgICAgICAgICAgICAgICAgICAgIGJlIGEgd3JpdGFibGUgYnVmZmVyIG9mIGxlbmd0aCBccCBsZW5ndGggQnl0ZXMuCisgKgorICogXHJldHVybiAgICAgICAgICAgICAgICAgXGMgMCBvbiBzdWNjZXNzLgorICogXHJldHVybiAgICAgICAgICAgICAgICAgQSBuZWdhdGl2ZSBlcnJvciBjb2RlIG9uIGZhaWx1cmUuCisgKi8KK2ludCBtYmVkdGxzX2FyaWFfY3J5cHRfY3RyKG1iZWR0bHNfYXJpYV9jb250ZXh0ICpjdHgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgbGVuZ3RoLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90ICpuY19vZmYsCisgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBjaGFyIG5vbmNlX2NvdW50ZXJbTUJFRFRMU19BUklBX0JMT0NLU0laRV0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBjaGFyIHN0cmVhbV9ibG9ja1tNQkVEVExTX0FSSUFfQkxPQ0tTSVpFXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgKmlucHV0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgY2hhciAqb3V0cHV0KTsKKyNlbmRpZiAvKiBNQkVEVExTX0NJUEhFUl9NT0RFX0NUUiAqLworCisjaWYgZGVmaW5lZChNQkVEVExTX1NFTEZfVEVTVCkKKy8qKgorICogXGJyaWVmICAgICAgICAgIENoZWNrdXAgcm91dGluZS4KKyAqCisgKiBccmV0dXJuICAgICAgICAgXGMgMCBvbiBzdWNjZXNzLCBvciBcYyAxIG9uIGZhaWx1cmUuCisgKi8KK2ludCBtYmVkdGxzX2FyaWFfc2VsZl90ZXN0KGludCB2ZXJib3NlKTsKKyNlbmRpZiAvKiBNQkVEVExTX1NFTEZfVEVTVCAqLworCisjaWZkZWYgX19jcGx1c3BsdXMKK30KKyNlbmRpZgorCisjZW5kaWYgLyogYXJpYS5oICovCmRpZmYgLS1naXQgYS9pbmNsdWRlL21iZWR0bHMvYXNuMS5oIGIvdGYtcHNhLWNyeXB0by9kcml2ZXJzL2J1aWx0aW4vaW5jbHVkZS9tYmVkdGxzL2FzbjEuaApzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gaW5jbHVkZS9tYmVkdGxzL2FzbjEuaApyZW5hbWUgdG8gdGYtcHNhLWNyeXB0by9kcml2ZXJzL2J1aWx0aW4vaW5jbHVkZS9tYmVkdGxzL2FzbjEuaApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9tYmVkdGxzL2FzbjF3cml0ZS5oIGIvdGYtcHNhLWNyeXB0by9kcml2ZXJzL2J1aWx0aW4vaW5jbHVkZS9tYmVkdGxzL2FzbjF3cml0ZS5oCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBpbmNsdWRlL21iZWR0bHMvYXNuMXdyaXRlLmgKcmVuYW1lIHRvIHRmLXBzYS1jcnlwdG8vZHJpdmVycy9idWlsdGluL2luY2x1ZGUvbWJlZHRscy9hc24xd3JpdGUuaApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9tYmVkdGxzL2Jhc2U2NC5oIGIvdGYtcHNhLWNyeXB0by9kcml2ZXJzL2J1aWx0aW4vaW5jbHVkZS9tYmVkdGxzL2Jhc2U2NC5oCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBpbmNsdWRlL21iZWR0bHMvYmFzZTY0LmgKcmVuYW1lIHRvIHRmLXBzYS1jcnlwdG8vZHJpdmVycy9idWlsdGluL2luY2x1ZGUvbWJlZHRscy9iYXNlNjQuaApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9tYmVkdGxzL2JpZ251bS5oIGIvdGYtcHNhLWNyeXB0by9kcml2ZXJzL2J1aWx0aW4vaW5jbHVkZS9tYmVkdGxzL2JpZ251bS5oCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBpbmNsdWRlL21iZWR0bHMvYmlnbnVtLmgKcmVuYW1lIHRvIHRmLXBzYS1jcnlwdG8vZHJpdmVycy9idWlsdGluL2luY2x1ZGUvbWJlZHRscy9iaWdudW0uaApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9tYmVkdGxzL2Jsb2NrX2NpcGhlci5oIGIvdGYtcHNhLWNyeXB0by9kcml2ZXJzL2J1aWx0aW4vaW5jbHVkZS9tYmVkdGxzL2Jsb2NrX2NpcGhlci5oCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBpbmNsdWRlL21iZWR0bHMvYmxvY2tfY2lwaGVyLmgKcmVuYW1lIHRvIHRmLXBzYS1jcnlwdG8vZHJpdmVycy9idWlsdGluL2luY2x1ZGUvbWJlZHRscy9ibG9ja19jaXBoZXIuaApkaWZmIC0tZ2l0IGEvdGYtcHNhLWNyeXB0by9kcml2ZXJzL2J1aWx0aW4vaW5jbHVkZS9tYmVkdGxzL2NhbWVsbGlhLmggYi90Zi1wc2EtY3J5cHRvL2RyaXZlcnMvYnVpbHRpbi9pbmNsdWRlL21iZWR0bHMvY2FtZWxsaWEuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zOTI2NmJmCi0tLSAvZGV2L251bGwKKysrIGIvdGYtcHNhLWNyeXB0by9kcml2ZXJzL2J1aWx0aW4vaW5jbHVkZS9tYmVkdGxzL2NhbWVsbGlhLmgKQEAgLTAsMCArMSwyOTcgQEAKKy8qKgorICogXGZpbGUgY2FtZWxsaWEuaAorICoKKyAqIFxicmllZiBDYW1lbGxpYSBibG9jayBjaXBoZXIKKyAqLworLyoKKyAqICBDb3B5cmlnaHQgVGhlIE1iZWQgVExTIENvbnRyaWJ1dG9ycworICogIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wIE9SIEdQTC0yLjAtb3ItbGF0ZXIKKyAqLworI2lmbmRlZiBNQkVEVExTX0NBTUVMTElBX0gKKyNkZWZpbmUgTUJFRFRMU19DQU1FTExJQV9ICisjaW5jbHVkZSAibWJlZHRscy9wcml2YXRlX2FjY2Vzcy5oIgorCisjaW5jbHVkZSAibWJlZHRscy9idWlsZF9pbmZvLmgiCisKKyNpbmNsdWRlIDxzdGRkZWYuaD4KKyNpbmNsdWRlIDxzdGRpbnQuaD4KKworI2luY2x1ZGUgIm1iZWR0bHMvcGxhdGZvcm1fdXRpbC5oIgorCisjZGVmaW5lIE1CRURUTFNfQ0FNRUxMSUFfRU5DUllQVCAgICAgMQorI2RlZmluZSBNQkVEVExTX0NBTUVMTElBX0RFQ1JZUFQgICAgIDAKKworLyoqIEJhZCBpbnB1dCBkYXRhLiAqLworI2RlZmluZSBNQkVEVExTX0VSUl9DQU1FTExJQV9CQURfSU5QVVRfREFUQSAtMHgwMDI0CisKKy8qKiBJbnZhbGlkIGRhdGEgaW5wdXQgbGVuZ3RoLiAqLworI2RlZmluZSBNQkVEVExTX0VSUl9DQU1FTExJQV9JTlZBTElEX0lOUFVUX0xFTkdUSCAtMHgwMDI2CisKKyNpZmRlZiBfX2NwbHVzcGx1cworZXh0ZXJuICJDIiB7CisjZW5kaWYKKworLyoqCisgKiBcYnJpZWYgICAgICAgICAgQ0FNRUxMSUEgY29udGV4dCBzdHJ1Y3R1cmUKKyAqLwordHlwZWRlZiBzdHJ1Y3QgbWJlZHRsc19jYW1lbGxpYV9jb250ZXh0IHsKKyAgICBpbnQgTUJFRFRMU19QUklWQVRFKG5yKTsgICAgICAgICAgICAgICAgICAgICAvKiE8ICBudW1iZXIgb2Ygcm91bmRzICAqLworICAgIHVpbnQzMl90IE1CRURUTFNfUFJJVkFURShyaylbNjhdOyAgICAgICAgICAgIC8qITwgIENBTUVMTElBIHJvdW5kIGtleXMgICAgKi8KK30KK21iZWR0bHNfY2FtZWxsaWFfY29udGV4dDsKKworLyoqCisgKiBcYnJpZWYgICAgICAgICAgSW5pdGlhbGl6ZSBhIENBTUVMTElBIGNvbnRleHQuCisgKgorICogXHBhcmFtIGN0eCAgICAgIFRoZSBDQU1FTExJQSBjb250ZXh0IHRvIGJlIGluaXRpYWxpemVkLgorICogICAgICAgICAgICAgICAgIFRoaXMgbXVzdCBub3QgYmUgXGMgTlVMTC4KKyAqLwordm9pZCBtYmVkdGxzX2NhbWVsbGlhX2luaXQobWJlZHRsc19jYW1lbGxpYV9jb250ZXh0ICpjdHgpOworCisvKioKKyAqIFxicmllZiAgICAgICAgICBDbGVhciBhIENBTUVMTElBIGNvbnRleHQuCisgKgorICogXHBhcmFtIGN0eCAgICAgIFRoZSBDQU1FTExJQSBjb250ZXh0IHRvIGJlIGNsZWFyZWQuIFRoaXMgbWF5IGJlIFxjIE5VTEwsCisgKiAgICAgICAgICAgICAgICAgaW4gd2hpY2ggY2FzZSB0aGlzIGZ1bmN0aW9uIHJldHVybnMgaW1tZWRpYXRlbHkuIElmIGl0IGlzIG5vdAorICogICAgICAgICAgICAgICAgIFxjIE5VTEwsIGl0IG11c3QgYmUgaW5pdGlhbGl6ZWQuCisgKi8KK3ZvaWQgbWJlZHRsc19jYW1lbGxpYV9mcmVlKG1iZWR0bHNfY2FtZWxsaWFfY29udGV4dCAqY3R4KTsKKworLyoqCisgKiBcYnJpZWYgICAgICAgICAgUGVyZm9ybSBhIENBTUVMTElBIGtleSBzY2hlZHVsZSBvcGVyYXRpb24gZm9yIGVuY3J5cHRpb24uCisgKgorICogXHBhcmFtIGN0eCAgICAgIFRoZSBDQU1FTExJQSBjb250ZXh0IHRvIHVzZS4gVGhpcyBtdXN0IGJlIGluaXRpYWxpemVkLgorICogXHBhcmFtIGtleSAgICAgIFRoZSBlbmNyeXB0aW9uIGtleSB0byB1c2UuIFRoaXMgbXVzdCBiZSBhIHJlYWRhYmxlIGJ1ZmZlcgorICogICAgICAgICAgICAgICAgIG9mIHNpemUgXHAga2V5Yml0cyBCaXRzLgorICogXHBhcmFtIGtleWJpdHMgIFRoZSBsZW5ndGggb2YgXHAga2V5IGluIEJpdHMuIFRoaXMgbXVzdCBiZSBlaXRoZXIgXGMgMTI4LAorICogICAgICAgICAgICAgICAgIFxjIDE5MiBvciBcYyAyNTYuCisgKgorICogXHJldHVybiAgICAgICAgIFxjIDAgaWYgc3VjY2Vzc2Z1bC4KKyAqIFxyZXR1cm4gICAgICAgICBBIG5lZ2F0aXZlIGVycm9yIGNvZGUgb24gZmFpbHVyZS4KKyAqLworaW50IG1iZWR0bHNfY2FtZWxsaWFfc2V0a2V5X2VuYyhtYmVkdGxzX2NhbWVsbGlhX2NvbnRleHQgKmN0eCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdW5zaWduZWQgY2hhciAqa2V5LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQga2V5Yml0cyk7CisKKyNpZiAhZGVmaW5lZChNQkVEVExTX0JMT0NLX0NJUEhFUl9OT19ERUNSWVBUKQorLyoqCisgKiBcYnJpZWYgICAgICAgICAgUGVyZm9ybSBhIENBTUVMTElBIGtleSBzY2hlZHVsZSBvcGVyYXRpb24gZm9yIGRlY3J5cHRpb24uCisgKgorICogXHBhcmFtIGN0eCAgICAgIFRoZSBDQU1FTExJQSBjb250ZXh0IHRvIHVzZS4gVGhpcyBtdXN0IGJlIGluaXRpYWxpemVkLgorICogXHBhcmFtIGtleSAgICAgIFRoZSBkZWNyeXB0aW9uIGtleS4gVGhpcyBtdXN0IGJlIGEgcmVhZGFibGUgYnVmZmVyCisgKiAgICAgICAgICAgICAgICAgb2Ygc2l6ZSBccCBrZXliaXRzIEJpdHMuCisgKiBccGFyYW0ga2V5Yml0cyAgVGhlIGxlbmd0aCBvZiBccCBrZXkgaW4gQml0cy4gVGhpcyBtdXN0IGJlIGVpdGhlciBcYyAxMjgsCisgKiAgICAgICAgICAgICAgICAgXGMgMTkyIG9yIFxjIDI1Ni4KKyAqCisgKiBccmV0dXJuICAgICAgICAgXGMgMCBpZiBzdWNjZXNzZnVsLgorICogXHJldHVybiAgICAgICAgIEEgbmVnYXRpdmUgZXJyb3IgY29kZSBvbiBmYWlsdXJlLgorICovCitpbnQgbWJlZHRsc19jYW1lbGxpYV9zZXRrZXlfZGVjKG1iZWR0bHNfY2FtZWxsaWFfY29udGV4dCAqY3R4LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1bnNpZ25lZCBjaGFyICprZXksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCBrZXliaXRzKTsKKyNlbmRpZiAvKiAhTUJFRFRMU19CTE9DS19DSVBIRVJfTk9fREVDUllQVCAqLworCisvKioKKyAqIFxicmllZiAgICAgICAgICBQZXJmb3JtIGEgQ0FNRUxMSUEtRUNCIGJsb2NrIGVuY3J5cHRpb24vZGVjcnlwdGlvbiBvcGVyYXRpb24uCisgKgorICogXHBhcmFtIGN0eCAgICAgIFRoZSBDQU1FTExJQSBjb250ZXh0IHRvIHVzZS4gVGhpcyBtdXN0IGJlIGluaXRpYWxpemVkCisgKiAgICAgICAgICAgICAgICAgYW5kIGJvdW5kIHRvIGEga2V5LgorICogXHBhcmFtIG1vZGUgICAgIFRoZSBtb2RlIG9mIG9wZXJhdGlvbi4gVGhpcyBtdXN0IGJlIGVpdGhlcgorICogICAgICAgICAgICAgICAgICNNQkVEVExTX0NBTUVMTElBX0VOQ1JZUFQgb3IgI01CRURUTFNfQ0FNRUxMSUFfREVDUllQVC4KKyAqIFxwYXJhbSBpbnB1dCAgICBUaGUgaW5wdXQgYmxvY2suIFRoaXMgbXVzdCBiZSBhIHJlYWRhYmxlIGJ1ZmZlcgorICogICAgICAgICAgICAgICAgIG9mIHNpemUgXGMgMTYgQnl0ZXMuCisgKiBccGFyYW0gb3V0cHV0ICAgVGhlIG91dHB1dCBibG9jay4gVGhpcyBtdXN0IGJlIGEgd3JpdGFibGUgYnVmZmVyCisgKiAgICAgICAgICAgICAgICAgb2Ygc2l6ZSBcYyAxNiBCeXRlcy4KKyAqCisgKiBccmV0dXJuICAgICAgICAgXGMgMCBpZiBzdWNjZXNzZnVsLgorICogXHJldHVybiAgICAgICAgIEEgbmVnYXRpdmUgZXJyb3IgY29kZSBvbiBmYWlsdXJlLgorICovCitpbnQgbWJlZHRsc19jYW1lbGxpYV9jcnlwdF9lY2IobWJlZHRsc19jYW1lbGxpYV9jb250ZXh0ICpjdHgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IG1vZGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdW5zaWduZWQgY2hhciBpbnB1dFsxNl0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgY2hhciBvdXRwdXRbMTZdKTsKKworI2lmIGRlZmluZWQoTUJFRFRMU19DSVBIRVJfTU9ERV9DQkMpCisvKioKKyAqIFxicmllZiAgICAgICAgICBQZXJmb3JtIGEgQ0FNRUxMSUEtQ0JDIGJ1ZmZlciBlbmNyeXB0aW9uL2RlY3J5cHRpb24gb3BlcmF0aW9uLgorICoKKyAqIFxub3RlICAgICAgICAgICBVcG9uIGV4aXQsIHRoZSBjb250ZW50IG9mIHRoZSBJViBpcyB1cGRhdGVkIHNvIHRoYXQgeW91IGNhbgorICogICAgICAgICAgICAgICAgIGNhbGwgdGhlIGZ1bmN0aW9uIHNhbWUgZnVuY3Rpb24gYWdhaW4gb24gdGhlIGZvbGxvd2luZworICogICAgICAgICAgICAgICAgIGJsb2NrKHMpIG9mIGRhdGEgYW5kIGdldCB0aGUgc2FtZSByZXN1bHQgYXMgaWYgaXQgd2FzCisgKiAgICAgICAgICAgICAgICAgZW5jcnlwdGVkIGluIG9uZSBjYWxsLiBUaGlzIGFsbG93cyBhICJzdHJlYW1pbmciIHVzYWdlLgorICogICAgICAgICAgICAgICAgIElmIG9uIHRoZSBvdGhlciBoYW5kIHlvdSBuZWVkIHRvIHJldGFpbiB0aGUgY29udGVudHMgb2YgdGhlCisgKiAgICAgICAgICAgICAgICAgSVYsIHlvdSBzaG91bGQgZWl0aGVyIHNhdmUgaXQgbWFudWFsbHkgb3IgdXNlIHRoZSBjaXBoZXIKKyAqICAgICAgICAgICAgICAgICBtb2R1bGUgaW5zdGVhZC4KKyAqCisgKiBccGFyYW0gY3R4ICAgICAgVGhlIENBTUVMTElBIGNvbnRleHQgdG8gdXNlLiBUaGlzIG11c3QgYmUgaW5pdGlhbGl6ZWQKKyAqICAgICAgICAgICAgICAgICBhbmQgYm91bmQgdG8gYSBrZXkuCisgKiBccGFyYW0gbW9kZSAgICAgVGhlIG1vZGUgb2Ygb3BlcmF0aW9uLiBUaGlzIG11c3QgYmUgZWl0aGVyCisgKiAgICAgICAgICAgICAgICAgI01CRURUTFNfQ0FNRUxMSUFfRU5DUllQVCBvciAjTUJFRFRMU19DQU1FTExJQV9ERUNSWVBULgorICogXHBhcmFtIGxlbmd0aCAgIFRoZSBsZW5ndGggaW4gQnl0ZXMgb2YgdGhlIGlucHV0IGRhdGEgXHAgaW5wdXQuCisgKiAgICAgICAgICAgICAgICAgVGhpcyBtdXN0IGJlIGEgbXVsdGlwbGUgb2YgXGMgMTYgQnl0ZXMuCisgKiBccGFyYW0gaXYgICAgICAgVGhlIGluaXRpYWxpemF0aW9uIHZlY3Rvci4gVGhpcyBtdXN0IGJlIGEgcmVhZC93cml0ZSBidWZmZXIKKyAqICAgICAgICAgICAgICAgICBvZiBsZW5ndGggXGMgMTYgQnl0ZXMuIEl0IGlzIHVwZGF0ZWQgdG8gYWxsb3cgc3RyZWFtaW5nCisgKiAgICAgICAgICAgICAgICAgdXNlIGFzIGV4cGxhaW5lZCBhYm92ZS4KKyAqIFxwYXJhbSBpbnB1dCAgICBUaGUgYnVmZmVyIGhvbGRpbmcgdGhlIGlucHV0IGRhdGEuIFRoaXMgbXVzdCBwb2ludCB0byBhCisgKiAgICAgICAgICAgICAgICAgcmVhZGFibGUgYnVmZmVyIG9mIGxlbmd0aCBccCBsZW5ndGggQnl0ZXMuCisgKiBccGFyYW0gb3V0cHV0ICAgVGhlIGJ1ZmZlciBob2xkaW5nIHRoZSBvdXRwdXQgZGF0YS4gVGhpcyBtdXN0IHBvaW50IHRvIGEKKyAqICAgICAgICAgICAgICAgICB3cml0YWJsZSBidWZmZXIgb2YgbGVuZ3RoIFxwIGxlbmd0aCBCeXRlcy4KKyAqCisgKiBccmV0dXJuICAgICAgICAgXGMgMCBpZiBzdWNjZXNzZnVsLgorICogXHJldHVybiAgICAgICAgIEEgbmVnYXRpdmUgZXJyb3IgY29kZSBvbiBmYWlsdXJlLgorICovCitpbnQgbWJlZHRsc19jYW1lbGxpYV9jcnlwdF9jYmMobWJlZHRsc19jYW1lbGxpYV9jb250ZXh0ICpjdHgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IG1vZGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IGxlbmd0aCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBjaGFyIGl2WzE2XSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1bnNpZ25lZCBjaGFyICppbnB1dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBjaGFyICpvdXRwdXQpOworI2VuZGlmIC8qIE1CRURUTFNfQ0lQSEVSX01PREVfQ0JDICovCisKKyNpZiBkZWZpbmVkKE1CRURUTFNfQ0lQSEVSX01PREVfQ0ZCKQorLyoqCisgKiBcYnJpZWYgICAgICAgICAgUGVyZm9ybSBhIENBTUVMTElBLUNGQjEyOCBidWZmZXIgZW5jcnlwdGlvbi9kZWNyeXB0aW9uCisgKiAgICAgICAgICAgICAgICAgb3BlcmF0aW9uLgorICoKKyAqIFxub3RlICAgICAgICAgICBEdWUgdG8gdGhlIG5hdHVyZSBvZiBDRkIgbW9kZSwgeW91IHNob3VsZCB1c2UgdGhlIHNhbWUKKyAqICAgICAgICAgICAgICAgICBrZXkgZm9yIGJvdGggZW5jcnlwdGlvbiBhbmQgZGVjcnlwdGlvbi4gSW4gcGFydGljdWxhciwgY2FsbHMKKyAqICAgICAgICAgICAgICAgICB0byB0aGlzIGZ1bmN0aW9uIHNob3VsZCBiZSBwcmVjZWRlZCBieSBhIGtleS1zY2hlZHVsZSB2aWEKKyAqICAgICAgICAgICAgICAgICBtYmVkdGxzX2NhbWVsbGlhX3NldGtleV9lbmMoKSByZWdhcmRsZXNzIG9mIHdoZXRoZXIgXHAgbW9kZQorICogICAgICAgICAgICAgICAgIGlzICNNQkVEVExTX0NBTUVMTElBX0VOQ1JZUFQgb3IgI01CRURUTFNfQ0FNRUxMSUFfREVDUllQVC4KKyAqCisgKiBcbm90ZSAgICAgICAgICAgVXBvbiBleGl0LCB0aGUgY29udGVudCBvZiB0aGUgSVYgaXMgdXBkYXRlZCBzbyB0aGF0IHlvdSBjYW4KKyAqICAgICAgICAgICAgICAgICBjYWxsIHRoZSBmdW5jdGlvbiBzYW1lIGZ1bmN0aW9uIGFnYWluIG9uIHRoZSBmb2xsb3dpbmcKKyAqICAgICAgICAgICAgICAgICBibG9jayhzKSBvZiBkYXRhIGFuZCBnZXQgdGhlIHNhbWUgcmVzdWx0IGFzIGlmIGl0IHdhcworICogICAgICAgICAgICAgICAgIGVuY3J5cHRlZCBpbiBvbmUgY2FsbC4gVGhpcyBhbGxvd3MgYSAic3RyZWFtaW5nIiB1c2FnZS4KKyAqICAgICAgICAgICAgICAgICBJZiBvbiB0aGUgb3RoZXIgaGFuZCB5b3UgbmVlZCB0byByZXRhaW4gdGhlIGNvbnRlbnRzIG9mIHRoZQorICogICAgICAgICAgICAgICAgIElWLCB5b3Ugc2hvdWxkIGVpdGhlciBzYXZlIGl0IG1hbnVhbGx5IG9yIHVzZSB0aGUgY2lwaGVyCisgKiAgICAgICAgICAgICAgICAgbW9kdWxlIGluc3RlYWQuCisgKgorICogXHBhcmFtIGN0eCAgICAgIFRoZSBDQU1FTExJQSBjb250ZXh0IHRvIHVzZS4gVGhpcyBtdXN0IGJlIGluaXRpYWxpemVkCisgKiAgICAgICAgICAgICAgICAgYW5kIGJvdW5kIHRvIGEga2V5LgorICogXHBhcmFtIG1vZGUgICAgIFRoZSBtb2RlIG9mIG9wZXJhdGlvbi4gVGhpcyBtdXN0IGJlIGVpdGhlcgorICogICAgICAgICAgICAgICAgICNNQkVEVExTX0NBTUVMTElBX0VOQ1JZUFQgb3IgI01CRURUTFNfQ0FNRUxMSUFfREVDUllQVC4KKyAqIFxwYXJhbSBsZW5ndGggICBUaGUgbGVuZ3RoIG9mIHRoZSBpbnB1dCBkYXRhIFxwIGlucHV0LiBBbnkgdmFsdWUgaXMgYWxsb3dlZC4KKyAqIFxwYXJhbSBpdl9vZmYgICBUaGUgY3VycmVudCBvZmZzZXQgaW4gdGhlIElWLiBUaGlzIG11c3QgYmUgc21hbGxlcgorICogICAgICAgICAgICAgICAgIHRoYW4gXGMgMTYgQnl0ZXMuIEl0IGlzIHVwZGF0ZWQgYWZ0ZXIgdGhpcyBjYWxsIHRvIGFsbG93CisgKiAgICAgICAgICAgICAgICAgdGhlIGFmb3JlbWVudGlvbmVkIHN0cmVhbWluZyB1c2FnZS4KKyAqIFxwYXJhbSBpdiAgICAgICBUaGUgaW5pdGlhbGl6YXRpb24gdmVjdG9yLiBUaGlzIG11c3QgYmUgYSByZWFkL3dyaXRlIGJ1ZmZlcgorICogICAgICAgICAgICAgICAgIG9mIGxlbmd0aCBcYyAxNiBCeXRlcy4gSXQgaXMgdXBkYXRlZCBhZnRlciB0aGlzIGNhbGwgdG8KKyAqICAgICAgICAgICAgICAgICBhbGxvdyB0aGUgYWZvcmVtZW50aW9uZWQgc3RyZWFtaW5nIHVzYWdlLgorICogXHBhcmFtIGlucHV0ICAgIFRoZSBidWZmZXIgaG9sZGluZyB0aGUgaW5wdXQgZGF0YS4gVGhpcyBtdXN0IGJlIGEgcmVhZGFibGUKKyAqICAgICAgICAgICAgICAgICBidWZmZXIgb2Ygc2l6ZSBccCBsZW5ndGggQnl0ZXMuCisgKiBccGFyYW0gb3V0cHV0ICAgVGhlIGJ1ZmZlciB0byBob2xkIHRoZSBvdXRwdXQgZGF0YS4gVGhpcyBtdXN0IGJlIGEgd3JpdGFibGUKKyAqICAgICAgICAgICAgICAgICBidWZmZXIgb2YgbGVuZ3RoIFxwIGxlbmd0aCBCeXRlcy4KKyAqCisgKiBccmV0dXJuICAgICAgICAgXGMgMCBpZiBzdWNjZXNzZnVsLgorICogXHJldHVybiAgICAgICAgIEEgbmVnYXRpdmUgZXJyb3IgY29kZSBvbiBmYWlsdXJlLgorICovCitpbnQgbWJlZHRsc19jYW1lbGxpYV9jcnlwdF9jZmIxMjgobWJlZHRsc19jYW1lbGxpYV9jb250ZXh0ICpjdHgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IG1vZGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IGxlbmd0aCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgKml2X29mZiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBjaGFyIGl2WzE2XSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1bnNpZ25lZCBjaGFyICppbnB1dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBjaGFyICpvdXRwdXQpOworI2VuZGlmIC8qIE1CRURUTFNfQ0lQSEVSX01PREVfQ0ZCICovCisKKyNpZiBkZWZpbmVkKE1CRURUTFNfQ0lQSEVSX01PREVfQ1RSKQorLyoqCisgKiBcYnJpZWYgICAgICBQZXJmb3JtIGEgQ0FNRUxMSUEtQ1RSIGJ1ZmZlciBlbmNyeXB0aW9uL2RlY3J5cHRpb24gb3BlcmF0aW9uLgorICoKKyAqICpub3RlICAgICAgIER1ZSB0byB0aGUgbmF0dXJlIG9mIENUUiBtb2RlLCB5b3Ugc2hvdWxkIHVzZSB0aGUgc2FtZQorICogICAgICAgICAgICAga2V5IGZvciBib3RoIGVuY3J5cHRpb24gYW5kIGRlY3J5cHRpb24uIEluIHBhcnRpY3VsYXIsIGNhbGxzCisgKiAgICAgICAgICAgICB0byB0aGlzIGZ1bmN0aW9uIHNob3VsZCBiZSBwcmVjZWRlZCBieSBhIGtleS1zY2hlZHVsZSB2aWEKKyAqICAgICAgICAgICAgIG1iZWR0bHNfY2FtZWxsaWFfc2V0a2V5X2VuYygpIHJlZ2FyZGxlc3Mgb2Ygd2hldGhlciB0aGUgbW9kZQorICogICAgICAgICAgICAgaXMgI01CRURUTFNfQ0FNRUxMSUFfRU5DUllQVCBvciAjTUJFRFRMU19DQU1FTExJQV9ERUNSWVBULgorICoKKyAqIFx3YXJuaW5nICAgIFlvdSBtdXN0IG5ldmVyIHJldXNlIGEgbm9uY2UgdmFsdWUgd2l0aCB0aGUgc2FtZSBrZXkuIERvaW5nIHNvCisgKiAgICAgICAgICAgICB3b3VsZCB2b2lkIHRoZSBlbmNyeXB0aW9uIGZvciB0aGUgdHdvIG1lc3NhZ2VzIGVuY3J5cHRlZCB3aXRoCisgKiAgICAgICAgICAgICB0aGUgc2FtZSBub25jZSBhbmQga2V5LgorICoKKyAqICAgICAgICAgICAgIFRoZXJlIGFyZSB0d28gY29tbW9uIHN0cmF0ZWdpZXMgZm9yIG1hbmFnaW5nIG5vbmNlcyB3aXRoIENUUjoKKyAqCisgKiAgICAgICAgICAgICAxLiBZb3UgY2FuIGhhbmRsZSBldmVyeXRoaW5nIGFzIGEgc2luZ2xlIG1lc3NhZ2UgcHJvY2Vzc2VkIG92ZXIKKyAqICAgICAgICAgICAgIHN1Y2Nlc3NpdmUgY2FsbHMgdG8gdGhpcyBmdW5jdGlvbi4gSW4gdGhhdCBjYXNlLCB5b3Ugd2FudCB0bworICogICAgICAgICAgICAgc2V0IFxwIG5vbmNlX2NvdW50ZXIgYW5kIFxwIG5jX29mZiB0byAwIGZvciB0aGUgZmlyc3QgY2FsbCwgYW5kCisgKiAgICAgICAgICAgICB0aGVuIHByZXNlcnZlIHRoZSB2YWx1ZXMgb2YgXHAgbm9uY2VfY291bnRlciwgXHAgbmNfb2ZmIGFuZCBccAorICogICAgICAgICAgICAgc3RyZWFtX2Jsb2NrIGFjcm9zcyBjYWxscyB0byB0aGlzIGZ1bmN0aW9uIGFzIHRoZXkgd2lsbCBiZQorICogICAgICAgICAgICAgdXBkYXRlZCBieSB0aGlzIGZ1bmN0aW9uLgorICoKKyAqICAgICAgICAgICAgIFdpdGggdGhpcyBzdHJhdGVneSwgeW91IG11c3Qgbm90IGVuY3J5cHQgbW9yZSB0aGFuIDIqKjEyOAorICogICAgICAgICAgICAgYmxvY2tzIG9mIGRhdGEgd2l0aCB0aGUgc2FtZSBrZXkuCisgKgorICogICAgICAgICAgICAgMi4gWW91IGNhbiBlbmNyeXB0IHNlcGFyYXRlIG1lc3NhZ2VzIGJ5IGRpdmlkaW5nIHRoZSBccAorICogICAgICAgICAgICAgbm9uY2VfY291bnRlciBidWZmZXIgaW4gdHdvIGFyZWFzOiB0aGUgZmlyc3Qgb25lIHVzZWQgZm9yIGEKKyAqICAgICAgICAgICAgIHBlci1tZXNzYWdlIG5vbmNlLCBoYW5kbGVkIGJ5IHlvdXJzZWxmLCBhbmQgdGhlIHNlY29uZCBvbmUKKyAqICAgICAgICAgICAgIHVwZGF0ZWQgYnkgdGhpcyBmdW5jdGlvbiBpbnRlcm5hbGx5LgorICoKKyAqICAgICAgICAgICAgIEZvciBleGFtcGxlLCB5b3UgbWlnaHQgcmVzZXJ2ZSB0aGUgZmlyc3QgXGMgMTIgQnl0ZXMgZm9yIHRoZQorICogICAgICAgICAgICAgcGVyLW1lc3NhZ2Ugbm9uY2UsIGFuZCB0aGUgbGFzdCBcYyA0IEJ5dGVzIGZvciBpbnRlcm5hbCB1c2UuCisgKiAgICAgICAgICAgICBJbiB0aGF0IGNhc2UsIGJlZm9yZSBjYWxsaW5nIHRoaXMgZnVuY3Rpb24gb24gYSBuZXcgbWVzc2FnZSB5b3UKKyAqICAgICAgICAgICAgIG5lZWQgdG8gc2V0IHRoZSBmaXJzdCBcYyAxMiBCeXRlcyBvZiBccCBub25jZV9jb3VudGVyIHRvIHlvdXIKKyAqICAgICAgICAgICAgIGNob3NlbiBub25jZSB2YWx1ZSwgdGhlIGxhc3QgZm91ciB0byBcYyAwLCBhbmQgXHAgbmNfb2ZmIHRvIFxjIDAKKyAqICAgICAgICAgICAgICh3aGljaCB3aWxsIGNhdXNlIFxwIHN0cmVhbV9ibG9jayB0byBiZSBpZ25vcmVkKS4gVGhhdCB3YXksIHlvdQorICogICAgICAgICAgICAgY2FuIGVuY3J5cHQgYXQgbW9zdCBcYyAyKio5NiBtZXNzYWdlcyBvZiB1cCB0byBcYyAyKiozMiBibG9ja3MKKyAqICAgICAgICAgICAgIGVhY2ggIHdpdGggdGhlIHNhbWUga2V5LgorICoKKyAqICAgICAgICAgICAgIFRoZSBwZXItbWVzc2FnZSBub25jZSAob3IgaW5mb3JtYXRpb24gc3VmZmljaWVudCB0byByZWNvbnN0cnVjdAorICogICAgICAgICAgICAgaXQpIG5lZWRzIHRvIGJlIGNvbW11bmljYXRlZCB3aXRoIHRoZSBjaXBoZXJ0ZXh0IGFuZCBtdXN0IGJlCisgKiAgICAgICAgICAgICB1bmlxdWUuIFRoZSByZWNvbW1lbmRlZCB3YXkgdG8gZW5zdXJlIHVuaXF1ZW5lc3MgaXMgdG8gdXNlIGEKKyAqICAgICAgICAgICAgIG1lc3NhZ2UgY291bnRlci4gQW4gYWx0ZXJuYXRpdmUgaXMgdG8gZ2VuZXJhdGUgcmFuZG9tIG5vbmNlcywKKyAqICAgICAgICAgICAgIGJ1dCB0aGlzIGxpbWl0cyB0aGUgbnVtYmVyIG9mIG1lc3NhZ2VzIHRoYXQgY2FuIGJlIHNlY3VyZWx5CisgKiAgICAgICAgICAgICBlbmNyeXB0ZWQ6IGZvciBleGFtcGxlLCB3aXRoIDk2LWJpdCByYW5kb20gbm9uY2VzLCB5b3Ugc2hvdWxkCisgKiAgICAgICAgICAgICBub3QgZW5jcnlwdCBtb3JlIHRoYW4gMioqMzIgbWVzc2FnZXMgd2l0aCB0aGUgc2FtZSBrZXkuCisgKgorICogICAgICAgICAgICAgTm90ZSB0aGF0IGZvciBib3RoIHN0cmF0ZWdpZXMsIHNpemVzIGFyZSBtZWFzdXJlZCBpbiBibG9ja3MgYW5kCisgKiAgICAgICAgICAgICB0aGF0IGEgQ0FNRUxMSUEgYmxvY2sgaXMgXGMgMTYgQnl0ZXMuCisgKgorICogXHdhcm5pbmcgICAgVXBvbiByZXR1cm4sIFxwIHN0cmVhbV9ibG9jayBjb250YWlucyBzZW5zaXRpdmUgZGF0YS4gSXRzCisgKiAgICAgICAgICAgICBjb250ZW50IG11c3Qgbm90IGJlIHdyaXR0ZW4gdG8gaW5zZWN1cmUgc3RvcmFnZSBhbmQgc2hvdWxkIGJlCisgKiAgICAgICAgICAgICBzZWN1cmVseSBkaXNjYXJkZWQgYXMgc29vbiBhcyBpdCdzIG5vIGxvbmdlciBuZWVkZWQuCisgKgorICogXHBhcmFtIGN0eCAgICAgICAgICAgVGhlIENBTUVMTElBIGNvbnRleHQgdG8gdXNlLiBUaGlzIG11c3QgYmUgaW5pdGlhbGl6ZWQKKyAqICAgICAgICAgICAgICAgICAgICAgIGFuZCBib3VuZCB0byBhIGtleS4KKyAqIFxwYXJhbSBsZW5ndGggICAgICAgIFRoZSBsZW5ndGggb2YgdGhlIGlucHV0IGRhdGEgXHAgaW5wdXQgaW4gQnl0ZXMuCisgKiAgICAgICAgICAgICAgICAgICAgICBBbnkgdmFsdWUgaXMgYWxsb3dlZC4KKyAqIFxwYXJhbSBuY19vZmYgICAgICAgIFRoZSBvZmZzZXQgaW4gdGhlIGN1cnJlbnQgXHAgc3RyZWFtX2Jsb2NrIChmb3IgcmVzdW1pbmcKKyAqICAgICAgICAgICAgICAgICAgICAgIHdpdGhpbiBjdXJyZW50IGNpcGhlciBzdHJlYW0pLiBUaGUgb2Zmc2V0IHBvaW50ZXIgdG8KKyAqICAgICAgICAgICAgICAgICAgICAgIHNob3VsZCBiZSBcYyAwIGF0IHRoZSBzdGFydCBvZiBhIHN0cmVhbS4gSXQgaXMgdXBkYXRlZAorICogICAgICAgICAgICAgICAgICAgICAgYXQgdGhlIGVuZCBvZiB0aGlzIGNhbGwuCisgKiBccGFyYW0gbm9uY2VfY291bnRlciBUaGUgMTI4LWJpdCBub25jZSBhbmQgY291bnRlci4gVGhpcyBtdXN0IGJlIGEgcmVhZC93cml0ZQorICogICAgICAgICAgICAgICAgICAgICAgYnVmZmVyIG9mIGxlbmd0aCBcYyAxNiBCeXRlcy4KKyAqIFxwYXJhbSBzdHJlYW1fYmxvY2sgIFRoZSBzYXZlZCBzdHJlYW0tYmxvY2sgZm9yIHJlc3VtaW5nLiBUaGlzIG11c3QgYmUgYQorICogICAgICAgICAgICAgICAgICAgICAgcmVhZC93cml0ZSBidWZmZXIgb2YgbGVuZ3RoIFxjIDE2IEJ5dGVzLgorICogXHBhcmFtIGlucHV0ICAgICAgICAgVGhlIGlucHV0IGRhdGEgc3RyZWFtLiBUaGlzIG11c3QgYmUgYSByZWFkYWJsZSBidWZmZXIgb2YKKyAqICAgICAgICAgICAgICAgICAgICAgIHNpemUgXHAgbGVuZ3RoIEJ5dGVzLgorICogXHBhcmFtIG91dHB1dCAgICAgICAgVGhlIG91dHB1dCBkYXRhIHN0cmVhbS4gVGhpcyBtdXN0IGJlIGEgd3JpdGFibGUgYnVmZmVyCisgKiAgICAgICAgICAgICAgICAgICAgICBvZiBzaXplIFxwIGxlbmd0aCBCeXRlcy4KKyAqCisgKiBccmV0dXJuICAgICAgICAgICAgICBcYyAwIGlmIHN1Y2Nlc3NmdWwuCisgKiBccmV0dXJuICAgICAgICAgICAgICBBIG5lZ2F0aXZlIGVycm9yIGNvZGUgb24gZmFpbHVyZS4KKyAqLworaW50IG1iZWR0bHNfY2FtZWxsaWFfY3J5cHRfY3RyKG1iZWR0bHNfY2FtZWxsaWFfY29udGV4dCAqY3R4LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBsZW5ndGgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90ICpuY19vZmYsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgY2hhciBub25jZV9jb3VudGVyWzE2XSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBjaGFyIHN0cmVhbV9ibG9ja1sxNl0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdW5zaWduZWQgY2hhciAqaW5wdXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgY2hhciAqb3V0cHV0KTsKKyNlbmRpZiAvKiBNQkVEVExTX0NJUEhFUl9NT0RFX0NUUiAqLworCisjaWYgZGVmaW5lZChNQkVEVExTX1NFTEZfVEVTVCkKKworLyoqCisgKiBcYnJpZWYgICAgICAgICAgQ2hlY2t1cCByb3V0aW5lCisgKgorICogXHJldHVybiAgICAgICAgIDAgaWYgc3VjY2Vzc2Z1bCwgb3IgMSBpZiB0aGUgdGVzdCBmYWlsZWQKKyAqLworaW50IG1iZWR0bHNfY2FtZWxsaWFfc2VsZl90ZXN0KGludCB2ZXJib3NlKTsKKworI2VuZGlmIC8qIE1CRURUTFNfU0VMRl9URVNUICovCisKKyNpZmRlZiBfX2NwbHVzcGx1cworfQorI2VuZGlmCisKKyNlbmRpZiAvKiBjYW1lbGxpYS5oICovCmRpZmYgLS1naXQgYS90Zi1wc2EtY3J5cHRvL2RyaXZlcnMvYnVpbHRpbi9pbmNsdWRlL21iZWR0bHMvY2NtLmggYi90Zi1wc2EtY3J5cHRvL2RyaXZlcnMvYnVpbHRpbi9pbmNsdWRlL21iZWR0bHMvY2NtLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjdkMTczZAotLS0gL2Rldi9udWxsCisrKyBiL3RmLXBzYS1jcnlwdG8vZHJpdmVycy9idWlsdGluL2luY2x1ZGUvbWJlZHRscy9jY20uaApAQCAtMCwwICsxLDUxOCBAQAorLyoqCisgKiBcZmlsZSBjY20uaAorICoKKyAqIFxicmllZiBUaGlzIGZpbGUgcHJvdmlkZXMgYW4gQVBJIGZvciB0aGUgQ0NNIGF1dGhlbnRpY2F0ZWQgZW5jcnlwdGlvbgorICogICAgICAgIG1vZGUgZm9yIGJsb2NrIGNpcGhlcnMuCisgKgorICogQ0NNIGNvbWJpbmVzIENvdW50ZXIgbW9kZSBlbmNyeXB0aW9uIHdpdGggQ0JDLU1BQyBhdXRoZW50aWNhdGlvbgorICogZm9yIDEyOC1iaXQgYmxvY2sgY2lwaGVycy4KKyAqCisgKiBJbnB1dCB0byBDQ00gaW5jbHVkZXMgdGhlIGZvbGxvd2luZyBlbGVtZW50czoKKyAqIDx1bD48bGk+UGF5bG9hZCAtIGRhdGEgdGhhdCBpcyBib3RoIGF1dGhlbnRpY2F0ZWQgYW5kIGVuY3J5cHRlZC48L2xpPgorICogPGxpPkFzc29jaWF0ZWQgZGF0YSAoQWRhdGEpIC0gZGF0YSB0aGF0IGlzIGF1dGhlbnRpY2F0ZWQgYnV0IG5vdAorICogZW5jcnlwdGVkLCBGb3IgZXhhbXBsZSwgYSBoZWFkZXIuPC9saT4KKyAqIDxsaT5Ob25jZSAtIEEgdW5pcXVlIHZhbHVlIHRoYXQgaXMgYXNzaWduZWQgdG8gdGhlIHBheWxvYWQgYW5kIHRoZQorICogYXNzb2NpYXRlZCBkYXRhLjwvbGk+PC91bD4KKyAqCisgKiBEZWZpbml0aW9uIG9mIENDTToKKyAqIGh0dHA6Ly9jc3JjLm5pc3QuZ292L3B1YmxpY2F0aW9ucy9uaXN0cHVicy84MDAtMzhDL1NQODAwLTM4Q191cGRhdGVkLUp1bHkyMF8yMDA3LnBkZgorICogUkZDIDM2MTAgIkNvdW50ZXIgd2l0aCBDQkMtTUFDIChDQ00pIgorICoKKyAqIFJlbGF0ZWQ6CisgKiBSRkMgNTExNiAiQW4gSW50ZXJmYWNlIGFuZCBBbGdvcml0aG1zIGZvciBBdXRoZW50aWNhdGVkIEVuY3J5cHRpb24iCisgKgorICogRGVmaW5pdGlvbiBvZiBDQ00qOgorICogSUVFRSA4MDIuMTUuNCAtIElFRUUgU3RhbmRhcmQgZm9yIExvY2FsIGFuZCBtZXRyb3BvbGl0YW4gYXJlYSBuZXR3b3JrcworICogSW50ZWdlciByZXByZXNlbnRhdGlvbiBpcyBmaXhlZCBtb3N0LXNpZ25pZmljYW50LW9jdGV0LWZpcnN0IG9yZGVyIGFuZAorICogdGhlIHJlcHJlc2VudGF0aW9uIG9mIG9jdGV0cyBpcyBtb3N0LXNpZ25pZmljYW50LWJpdC1maXJzdCBvcmRlci4gVGhpcyBpcworICogY29uc2lzdGVudCB3aXRoIFJGQyAzNjEwLgorICovCisvKgorICogIENvcHlyaWdodCBUaGUgTWJlZCBUTFMgQ29udHJpYnV0b3JzCisgKiAgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjAgT1IgR1BMLTIuMC1vci1sYXRlcgorICovCisKKyNpZm5kZWYgTUJFRFRMU19DQ01fSAorI2RlZmluZSBNQkVEVExTX0NDTV9ICisjaW5jbHVkZSAibWJlZHRscy9wcml2YXRlX2FjY2Vzcy5oIgorCisjaW5jbHVkZSAibWJlZHRscy9idWlsZF9pbmZvLmgiCisKKyNpbmNsdWRlICJtYmVkdGxzL2NpcGhlci5oIgorCisjaWYgZGVmaW5lZChNQkVEVExTX0JMT0NLX0NJUEhFUl9DKQorI2luY2x1ZGUgIm1iZWR0bHMvYmxvY2tfY2lwaGVyLmgiCisjZW5kaWYKKworI2RlZmluZSBNQkVEVExTX0NDTV9ERUNSWVBUICAgICAgIDAKKyNkZWZpbmUgTUJFRFRMU19DQ01fRU5DUllQVCAgICAgICAxCisjZGVmaW5lIE1CRURUTFNfQ0NNX1NUQVJfREVDUllQVCAgMgorI2RlZmluZSBNQkVEVExTX0NDTV9TVEFSX0VOQ1JZUFQgIDMKKworLyoqIEJhZCBpbnB1dCBwYXJhbWV0ZXJzIHRvIHRoZSBmdW5jdGlvbi4gKi8KKyNkZWZpbmUgTUJFRFRMU19FUlJfQ0NNX0JBRF9JTlBVVCAgICAgICAtMHgwMDBECisvKiogQXV0aGVudGljYXRlZCBkZWNyeXB0aW9uIGZhaWxlZC4gKi8KKyNkZWZpbmUgTUJFRFRMU19FUlJfQ0NNX0FVVEhfRkFJTEVEICAgICAtMHgwMDBGCisKKyNpZmRlZiBfX2NwbHVzcGx1cworZXh0ZXJuICJDIiB7CisjZW5kaWYKKworLyoqCisgKiBcYnJpZWYgICAgVGhlIENDTSBjb250ZXh0LXR5cGUgZGVmaW5pdGlvbi4gVGhlIENDTSBjb250ZXh0IGlzIHBhc3NlZAorICogICAgICAgICAgIHRvIHRoZSBBUElzIGNhbGxlZC4KKyAqLwordHlwZWRlZiBzdHJ1Y3QgbWJlZHRsc19jY21fY29udGV4dCB7CisgICAgdW5zaWduZWQgY2hhciBNQkVEVExTX1BSSVZBVEUoeSlbMTZdOyAgICAvKiE8IFRoZSBZIHdvcmtpbmcgYnVmZmVyICovCisgICAgdW5zaWduZWQgY2hhciBNQkVEVExTX1BSSVZBVEUoY3RyKVsxNl07ICAvKiE8IFRoZSBjb3VudGVyIGJ1ZmZlciAqLworICAgIHNpemVfdCBNQkVEVExTX1BSSVZBVEUocGxhaW50ZXh0X2xlbik7ICAgLyohPCBUb3RhbCBwbGFpbnRleHQgbGVuZ3RoICovCisgICAgc2l6ZV90IE1CRURUTFNfUFJJVkFURShhZGRfbGVuKTsgICAgICAgICAvKiE8IFRvdGFsIGF1dGhlbnRpY2F0aW9uIGRhdGEgbGVuZ3RoICovCisgICAgc2l6ZV90IE1CRURUTFNfUFJJVkFURSh0YWdfbGVuKTsgICAgICAgICAvKiE8IFRvdGFsIHRhZyBsZW5ndGggKi8KKyAgICBzaXplX3QgTUJFRFRMU19QUklWQVRFKHByb2Nlc3NlZCk7ICAgICAgIC8qITwgVHJhY2sgaG93IG1hbnkgYnl0ZXMgb2YgaW5wdXQgZGF0YQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3ZXJlIHByb2Nlc3NlZCAoY2h1bmtlZCBpbnB1dCkuCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVzZWQgaW5kZXBlbmRlbnRseSBmb3IgYm90aCBhdXRoIGRhdGEKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYW5kIHBsYWludGV4dC9jaXBoZXJ0ZXh0LgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUaGlzIHZhcmlhYmxlIGlzIHNldCB0byB6ZXJvIGFmdGVyCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF1dGggZGF0YSBpbnB1dCBpcyBmaW5pc2hlZC4gKi8KKyAgICB1bnNpZ25lZCBpbnQgTUJFRFRMU19QUklWQVRFKHEpOyAgICAgICAgIC8qITwgVGhlIFEgd29ya2luZyB2YWx1ZSAqLworICAgIHVuc2lnbmVkIGludCBNQkVEVExTX1BSSVZBVEUobW9kZSk7ICAgICAgLyohPCBUaGUgb3BlcmF0aW9uIHRvIHBlcmZvcm06CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgI01CRURUTFNfQ0NNX0VOQ1JZUFQgb3IKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjTUJFRFRMU19DQ01fREVDUllQVCBvcgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICNNQkVEVExTX0NDTV9TVEFSX0VOQ1JZUFQgb3IKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjTUJFRFRMU19DQ01fU1RBUl9ERUNSWVBULiAqLworI2lmIGRlZmluZWQoTUJFRFRMU19CTE9DS19DSVBIRVJfQykKKyAgICBtYmVkdGxzX2Jsb2NrX2NpcGhlcl9jb250ZXh0X3QgTUJFRFRMU19QUklWQVRFKGJsb2NrX2NpcGhlcl9jdHgpOyAgICAvKiE8IFRoZSBjaXBoZXIgY29udGV4dCB1c2VkLiAqLworI2Vsc2UKKyAgICBtYmVkdGxzX2NpcGhlcl9jb250ZXh0X3QgTUJFRFRMU19QUklWQVRFKGNpcGhlcl9jdHgpOyAgICAvKiE8IFRoZSBjaXBoZXIgY29udGV4dCB1c2VkLiAqLworI2VuZGlmCisgICAgaW50IE1CRURUTFNfUFJJVkFURShzdGF0ZSk7ICAgICAgICAgICAgICAvKiE8IFdvcmtpbmcgdmFsdWUgaG9sZGluZyBjb250ZXh0J3MKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGUuIFVzZWQgZm9yIGNodW5rZWQgZGF0YSBpbnB1dCAqLworfQorbWJlZHRsc19jY21fY29udGV4dDsKKworLyoqCisgKiBcYnJpZWYgICAgICAgICAgIFRoaXMgZnVuY3Rpb24gaW5pdGlhbGl6ZXMgdGhlIHNwZWNpZmllZCBDQ00gY29udGV4dCwKKyAqICAgICAgICAgICAgICAgICAgdG8gbWFrZSByZWZlcmVuY2VzIHZhbGlkLCBhbmQgcHJlcGFyZSB0aGUgY29udGV4dAorICogICAgICAgICAgICAgICAgICBmb3IgbWJlZHRsc19jY21fc2V0a2V5KCkgb3IgbWJlZHRsc19jY21fZnJlZSgpLgorICoKKyAqIFxwYXJhbSBjdHggICAgICAgVGhlIENDTSBjb250ZXh0IHRvIGluaXRpYWxpemUuIFRoaXMgbXVzdCBub3QgYmUgXGMgTlVMTC4KKyAqLwordm9pZCBtYmVkdGxzX2NjbV9pbml0KG1iZWR0bHNfY2NtX2NvbnRleHQgKmN0eCk7CisKKy8qKgorICogXGJyaWVmICAgICAgICAgICBUaGlzIGZ1bmN0aW9uIGluaXRpYWxpemVzIHRoZSBDQ00gY29udGV4dCBzZXQgaW4gdGhlCisgKiAgICAgICAgICAgICAgICAgIFxwIGN0eCBwYXJhbWV0ZXIgYW5kIHNldHMgdGhlIGVuY3J5cHRpb24ga2V5LgorICoKKyAqIFxwYXJhbSBjdHggICAgICAgVGhlIENDTSBjb250ZXh0IHRvIGluaXRpYWxpemUuIFRoaXMgbXVzdCBiZSBhbiBpbml0aWFsaXplZAorICogICAgICAgICAgICAgICAgICBjb250ZXh0LgorICogXHBhcmFtIGNpcGhlciAgICBUaGUgMTI4LWJpdCBibG9jayBjaXBoZXIgdG8gdXNlLgorICogXHBhcmFtIGtleSAgICAgICBUaGUgZW5jcnlwdGlvbiBrZXkuIFRoaXMgbXVzdCBub3QgYmUgXGMgTlVMTC4KKyAqIFxwYXJhbSBrZXliaXRzICAgVGhlIGtleSBzaXplIGluIGJpdHMuIFRoaXMgbXVzdCBiZSBhY2NlcHRhYmxlIGJ5IHRoZSBjaXBoZXIuCisgKgorICogXHJldHVybiAgICAgICAgICBcYyAwIG9uIHN1Y2Nlc3MuCisgKiBccmV0dXJuICAgICAgICAgIEEgQ0NNIG9yIGNpcGhlci1zcGVjaWZpYyBlcnJvciBjb2RlIG9uIGZhaWx1cmUuCisgKi8KK2ludCBtYmVkdGxzX2NjbV9zZXRrZXkobWJlZHRsc19jY21fY29udGV4dCAqY3R4LAorICAgICAgICAgICAgICAgICAgICAgICBtYmVkdGxzX2NpcGhlcl9pZF90IGNpcGhlciwKKyAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdW5zaWduZWQgY2hhciAqa2V5LAorICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQga2V5Yml0cyk7CisKKy8qKgorICogXGJyaWVmICAgVGhpcyBmdW5jdGlvbiByZWxlYXNlcyBhbmQgY2xlYXJzIHRoZSBzcGVjaWZpZWQgQ0NNIGNvbnRleHQKKyAqICAgICAgICAgIGFuZCB1bmRlcmx5aW5nIGNpcGhlciBzdWItY29udGV4dC4KKyAqCisgKiBccGFyYW0gY3R4ICAgICAgIFRoZSBDQ00gY29udGV4dCB0byBjbGVhci4gSWYgdGhpcyBpcyBcYyBOVUxMLCB0aGUgZnVuY3Rpb24KKyAqICAgICAgICAgICAgICAgICAgaGFzIG5vIGVmZmVjdC4gT3RoZXJ3aXNlLCB0aGlzIG11c3QgYmUgaW5pdGlhbGl6ZWQuCisgKi8KK3ZvaWQgbWJlZHRsc19jY21fZnJlZShtYmVkdGxzX2NjbV9jb250ZXh0ICpjdHgpOworCisvKioKKyAqIFxicmllZiAgICAgICAgICAgVGhpcyBmdW5jdGlvbiBlbmNyeXB0cyBhIGJ1ZmZlciB1c2luZyBDQ00uCisgKgorICogXG5vdGUgICAgICAgICAgICBUaGUgdGFnIGlzIHdyaXR0ZW4gdG8gYSBzZXBhcmF0ZSBidWZmZXIuIFRvIGNvbmNhdGVuYXRlCisgKiAgICAgICAgICAgICAgICAgIHRoZSBccCB0YWcgd2l0aCB0aGUgXHAgb3V0cHV0LCBhcyBkb25lIGluIDxlbT5SRkMtMzYxMDoKKyAqICAgICAgICAgICAgICAgICAgQ291bnRlciB3aXRoIENCQy1NQUMgKENDTSk8L2VtPiwgdXNlCisgKiAgICAgICAgICAgICAgICAgIFxwIHRhZyA9IFxwIG91dHB1dCArIFxwIGxlbmd0aCwgYW5kIG1ha2Ugc3VyZSB0aGF0IHRoZQorICogICAgICAgICAgICAgICAgICBvdXRwdXQgYnVmZmVyIGlzIGF0IGxlYXN0IFxwIGxlbmd0aCArIFxwIHRhZ19sZW4gd2lkZS4KKyAqCisgKiBccGFyYW0gY3R4ICAgICAgIFRoZSBDQ00gY29udGV4dCB0byB1c2UgZm9yIGVuY3J5cHRpb24uIFRoaXMgbXVzdCBiZQorICogICAgICAgICAgICAgICAgICBpbml0aWFsaXplZCBhbmQgYm91bmQgdG8gYSBrZXkuCisgKiBccGFyYW0gbGVuZ3RoICAgIFRoZSBsZW5ndGggb2YgdGhlIGlucHV0IGRhdGEgaW4gQnl0ZXMuCisgKiBccGFyYW0gaXYgICAgICAgIFRoZSBpbml0aWFsaXphdGlvbiB2ZWN0b3IgKG5vbmNlKS4gVGhpcyBtdXN0IGJlIGEgcmVhZGFibGUKKyAqICAgICAgICAgICAgICAgICAgYnVmZmVyIG9mIGF0IGxlYXN0IFxwIGl2X2xlbiBCeXRlcy4KKyAqIFxwYXJhbSBpdl9sZW4gICAgVGhlIGxlbmd0aCBvZiB0aGUgbm9uY2UgaW4gQnl0ZXM6IDcsIDgsIDksIDEwLCAxMSwgMTIsCisgKiAgICAgICAgICAgICAgICAgIG9yIDEzLiBUaGUgbGVuZ3RoIEwgb2YgdGhlIG1lc3NhZ2UgbGVuZ3RoIGZpZWxkIGlzCisgKiAgICAgICAgICAgICAgICAgIDE1IC0gXHAgaXZfbGVuLgorICogXHBhcmFtIGFkICAgICAgICBUaGUgYWRkaXRpb25hbCBkYXRhIGZpZWxkLiBJZiBccCBhZF9sZW4gaXMgZ3JlYXRlciB0aGFuCisgKiAgICAgICAgICAgICAgICAgIHplcm8sIFxwIGFkIG11c3QgYmUgYSByZWFkYWJsZSBidWZmZXIgb2YgYXQgbGVhc3QgdGhhdAorICogICAgICAgICAgICAgICAgICBsZW5ndGguCisgKiBccGFyYW0gYWRfbGVuICAgIFRoZSBsZW5ndGggb2YgYWRkaXRpb25hbCBkYXRhIGluIEJ5dGVzLgorICogICAgICAgICAgICAgICAgICBUaGlzIG11c3QgYmUgbGVzcyB0aGFuIGAyXjE2IC0gMl44YC4KKyAqIFxwYXJhbSBpbnB1dCAgICAgVGhlIGJ1ZmZlciBob2xkaW5nIHRoZSBpbnB1dCBkYXRhLiBJZiBccCBsZW5ndGggaXMgZ3JlYXRlcgorICogICAgICAgICAgICAgICAgICB0aGFuIHplcm8sIFxwIGlucHV0IG11c3QgYmUgYSByZWFkYWJsZSBidWZmZXIgb2YgYXQgbGVhc3QKKyAqICAgICAgICAgICAgICAgICAgdGhhdCBsZW5ndGguCisgKiBccGFyYW0gb3V0cHV0ICAgIFRoZSBidWZmZXIgaG9sZGluZyB0aGUgb3V0cHV0IGRhdGEuIElmIFxwIGxlbmd0aCBpcyBncmVhdGVyCisgKiAgICAgICAgICAgICAgICAgIHRoYW4gemVybywgXHAgb3V0cHV0IG11c3QgYmUgYSB3cml0YWJsZSBidWZmZXIgb2YgYXQgbGVhc3QKKyAqICAgICAgICAgICAgICAgICAgdGhhdCBsZW5ndGguCisgKiBccGFyYW0gdGFnICAgICAgIFRoZSBidWZmZXIgaG9sZGluZyB0aGUgYXV0aGVudGljYXRpb24gZmllbGQuIFRoaXMgbXVzdCBiZSBhCisgKiAgICAgICAgICAgICAgICAgIHdyaXRhYmxlIGJ1ZmZlciBvZiBhdCBsZWFzdCBccCB0YWdfbGVuIEJ5dGVzLgorICogXHBhcmFtIHRhZ19sZW4gICBUaGUgbGVuZ3RoIG9mIHRoZSBhdXRoZW50aWNhdGlvbiBmaWVsZCB0byBnZW5lcmF0ZSBpbiBCeXRlczoKKyAqICAgICAgICAgICAgICAgICAgNCwgNiwgOCwgMTAsIDEyLCAxNCBvciAxNi4KKyAqCisgKiBccmV0dXJuICAgICAgICAgIFxjIDAgb24gc3VjY2Vzcy4KKyAqIFxyZXR1cm4gICAgICAgICAgQSBDQ00gb3IgY2lwaGVyLXNwZWNpZmljIGVycm9yIGNvZGUgb24gZmFpbHVyZS4KKyAqLworaW50IG1iZWR0bHNfY2NtX2VuY3J5cHRfYW5kX3RhZyhtYmVkdGxzX2NjbV9jb250ZXh0ICpjdHgsIHNpemVfdCBsZW5ndGgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgKml2LCBzaXplX3QgaXZfbGVuLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1bnNpZ25lZCBjaGFyICphZCwgc2l6ZV90IGFkX2xlbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdW5zaWduZWQgY2hhciAqaW5wdXQsIHVuc2lnbmVkIGNoYXIgKm91dHB1dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgY2hhciAqdGFnLCBzaXplX3QgdGFnX2xlbik7CisKKy8qKgorICogXGJyaWVmICAgICAgICAgICBUaGlzIGZ1bmN0aW9uIGVuY3J5cHRzIGEgYnVmZmVyIHVzaW5nIENDTSouCisgKgorICogXG5vdGUgICAgICAgICAgICBUaGUgdGFnIGlzIHdyaXR0ZW4gdG8gYSBzZXBhcmF0ZSBidWZmZXIuIFRvIGNvbmNhdGVuYXRlCisgKiAgICAgICAgICAgICAgICAgIHRoZSBccCB0YWcgd2l0aCB0aGUgXHAgb3V0cHV0LCBhcyBkb25lIGluIDxlbT5SRkMtMzYxMDoKKyAqICAgICAgICAgICAgICAgICAgQ291bnRlciB3aXRoIENCQy1NQUMgKENDTSk8L2VtPiwgdXNlCisgKiAgICAgICAgICAgICAgICAgIFxwIHRhZyA9IFxwIG91dHB1dCArIFxwIGxlbmd0aCwgYW5kIG1ha2Ugc3VyZSB0aGF0IHRoZQorICogICAgICAgICAgICAgICAgICBvdXRwdXQgYnVmZmVyIGlzIGF0IGxlYXN0IFxwIGxlbmd0aCArIFxwIHRhZ19sZW4gd2lkZS4KKyAqCisgKiBcbm90ZSAgICAgICAgICAgIFdoZW4gdXNpbmcgdGhpcyBmdW5jdGlvbiBpbiBhIHZhcmlhYmxlIHRhZyBsZW5ndGggY29udGV4dCwKKyAqICAgICAgICAgICAgICAgICAgdGhlIHRhZyBsZW5ndGggaGFzIHRvIGJlIGVuY29kZWQgaW50byB0aGUgXHAgaXYgcGFzc2VkIHRvCisgKiAgICAgICAgICAgICAgICAgIHRoaXMgZnVuY3Rpb24uCisgKgorICogXHBhcmFtIGN0eCAgICAgICBUaGUgQ0NNIGNvbnRleHQgdG8gdXNlIGZvciBlbmNyeXB0aW9uLiBUaGlzIG11c3QgYmUKKyAqICAgICAgICAgICAgICAgICAgaW5pdGlhbGl6ZWQgYW5kIGJvdW5kIHRvIGEga2V5LgorICogXHBhcmFtIGxlbmd0aCAgICBUaGUgbGVuZ3RoIG9mIHRoZSBpbnB1dCBkYXRhIGluIEJ5dGVzLgorICogICAgICAgICAgICAgICAgICBGb3IgdGFnIGxlbmd0aCA9IDAsIGlucHV0IGxlbmd0aCBpcyBpZ25vcmVkLgorICogXHBhcmFtIGl2ICAgICAgICBUaGUgaW5pdGlhbGl6YXRpb24gdmVjdG9yIChub25jZSkuIFRoaXMgbXVzdCBiZSBhIHJlYWRhYmxlCisgKiAgICAgICAgICAgICAgICAgIGJ1ZmZlciBvZiBhdCBsZWFzdCBccCBpdl9sZW4gQnl0ZXMuCisgKiBccGFyYW0gaXZfbGVuICAgIFRoZSBsZW5ndGggb2YgdGhlIG5vbmNlIGluIEJ5dGVzOiA3LCA4LCA5LCAxMCwgMTEsIDEyLAorICogICAgICAgICAgICAgICAgICBvciAxMy4gVGhlIGxlbmd0aCBMIG9mIHRoZSBtZXNzYWdlIGxlbmd0aCBmaWVsZCBpcworICogICAgICAgICAgICAgICAgICAxNSAtIFxwIGl2X2xlbi4KKyAqIFxwYXJhbSBhZCAgICAgICAgVGhlIGFkZGl0aW9uYWwgZGF0YSBmaWVsZC4gVGhpcyBtdXN0IGJlIGEgcmVhZGFibGUgYnVmZmVyIG9mCisgKiAgICAgICAgICAgICAgICAgIGF0IGxlYXN0IFxwIGFkX2xlbiBCeXRlcy4KKyAqIFxwYXJhbSBhZF9sZW4gICAgVGhlIGxlbmd0aCBvZiBhZGRpdGlvbmFsIGRhdGEgaW4gQnl0ZXMuCisgKiAgICAgICAgICAgICAgICAgIFRoaXMgbXVzdCBiZSBsZXNzIHRoYW4gMl4xNiAtIDJeOC4KKyAqIFxwYXJhbSBpbnB1dCAgICAgVGhlIGJ1ZmZlciBob2xkaW5nIHRoZSBpbnB1dCBkYXRhLiBJZiBccCBsZW5ndGggaXMgZ3JlYXRlcgorICogICAgICAgICAgICAgICAgICB0aGFuIHplcm8sIFxwIGlucHV0IG11c3QgYmUgYSByZWFkYWJsZSBidWZmZXIgb2YgYXQgbGVhc3QKKyAqICAgICAgICAgICAgICAgICAgdGhhdCBsZW5ndGguCisgKiBccGFyYW0gb3V0cHV0ICAgIFRoZSBidWZmZXIgaG9sZGluZyB0aGUgb3V0cHV0IGRhdGEuIElmIFxwIGxlbmd0aCBpcyBncmVhdGVyCisgKiAgICAgICAgICAgICAgICAgIHRoYW4gemVybywgXHAgb3V0cHV0IG11c3QgYmUgYSB3cml0YWJsZSBidWZmZXIgb2YgYXQgbGVhc3QKKyAqICAgICAgICAgICAgICAgICAgdGhhdCBsZW5ndGguCisgKiBccGFyYW0gdGFnICAgICAgIFRoZSBidWZmZXIgaG9sZGluZyB0aGUgYXV0aGVudGljYXRpb24gZmllbGQuIFRoaXMgbXVzdCBiZSBhCisgKiAgICAgICAgICAgICAgICAgIHdyaXRhYmxlIGJ1ZmZlciBvZiBhdCBsZWFzdCBccCB0YWdfbGVuIEJ5dGVzLgorICogXHBhcmFtIHRhZ19sZW4gICBUaGUgbGVuZ3RoIG9mIHRoZSBhdXRoZW50aWNhdGlvbiBmaWVsZCB0byBnZW5lcmF0ZSBpbiBCeXRlczoKKyAqICAgICAgICAgICAgICAgICAgMCwgNCwgNiwgOCwgMTAsIDEyLCAxNCBvciAxNi4KKyAqCisgKiBcd2FybmluZyAgICAgICAgIFBhc3NpbmcgXGMgMCBhcyBccCB0YWdfbGVuIG1lYW5zIHRoYXQgdGhlIG1lc3NhZ2UgaXMgbm8KKyAqICAgICAgICAgICAgICAgICAgbG9uZ2VyIGF1dGhlbnRpY2F0ZWQuCisgKgorICogXHJldHVybiAgICAgICAgICBcYyAwIG9uIHN1Y2Nlc3MuCisgKiBccmV0dXJuICAgICAgICAgIEEgQ0NNIG9yIGNpcGhlci1zcGVjaWZpYyBlcnJvciBjb2RlIG9uIGZhaWx1cmUuCisgKi8KK2ludCBtYmVkdGxzX2NjbV9zdGFyX2VuY3J5cHRfYW5kX3RhZyhtYmVkdGxzX2NjbV9jb250ZXh0ICpjdHgsIHNpemVfdCBsZW5ndGgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdW5zaWduZWQgY2hhciAqaXYsIHNpemVfdCBpdl9sZW4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdW5zaWduZWQgY2hhciAqYWQsIHNpemVfdCBhZF9sZW4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdW5zaWduZWQgY2hhciAqaW5wdXQsIHVuc2lnbmVkIGNoYXIgKm91dHB1dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBjaGFyICp0YWcsIHNpemVfdCB0YWdfbGVuKTsKKworLyoqCisgKiBcYnJpZWYgICAgICAgICAgIFRoaXMgZnVuY3Rpb24gcGVyZm9ybXMgYSBDQ00gYXV0aGVudGljYXRlZCBkZWNyeXB0aW9uIG9mIGEKKyAqICAgICAgICAgICAgICAgICAgYnVmZmVyLgorICoKKyAqIFxwYXJhbSBjdHggICAgICAgVGhlIENDTSBjb250ZXh0IHRvIHVzZSBmb3IgZGVjcnlwdGlvbi4gVGhpcyBtdXN0IGJlCisgKiAgICAgICAgICAgICAgICAgIGluaXRpYWxpemVkIGFuZCBib3VuZCB0byBhIGtleS4KKyAqIFxwYXJhbSBsZW5ndGggICAgVGhlIGxlbmd0aCBvZiB0aGUgaW5wdXQgZGF0YSBpbiBCeXRlcy4KKyAqIFxwYXJhbSBpdiAgICAgICAgVGhlIGluaXRpYWxpemF0aW9uIHZlY3RvciAobm9uY2UpLiBUaGlzIG11c3QgYmUgYSByZWFkYWJsZQorICogICAgICAgICAgICAgICAgICBidWZmZXIgb2YgYXQgbGVhc3QgXHAgaXZfbGVuIEJ5dGVzLgorICogXHBhcmFtIGl2X2xlbiAgICBUaGUgbGVuZ3RoIG9mIHRoZSBub25jZSBpbiBCeXRlczogNywgOCwgOSwgMTAsIDExLCAxMiwKKyAqICAgICAgICAgICAgICAgICAgb3IgMTMuIFRoZSBsZW5ndGggTCBvZiB0aGUgbWVzc2FnZSBsZW5ndGggZmllbGQgaXMKKyAqICAgICAgICAgICAgICAgICAgMTUgLSBccCBpdl9sZW4uCisgKiBccGFyYW0gYWQgICAgICAgIFRoZSBhZGRpdGlvbmFsIGRhdGEgZmllbGQuIFRoaXMgbXVzdCBiZSBhIHJlYWRhYmxlIGJ1ZmZlcgorICogICAgICAgICAgICAgICAgICBvZiBhdCBsZWFzdCB0aGF0IFxwIGFkX2xlbiBCeXRlcy4uCisgKiBccGFyYW0gYWRfbGVuICAgIFRoZSBsZW5ndGggb2YgYWRkaXRpb25hbCBkYXRhIGluIEJ5dGVzLgorICogICAgICAgICAgICAgICAgICBUaGlzIG11c3QgYmUgbGVzcyB0aGFuIDJeMTYgLSAyXjguCisgKiBccGFyYW0gaW5wdXQgICAgIFRoZSBidWZmZXIgaG9sZGluZyB0aGUgaW5wdXQgZGF0YS4gSWYgXHAgbGVuZ3RoIGlzIGdyZWF0ZXIKKyAqICAgICAgICAgICAgICAgICAgdGhhbiB6ZXJvLCBccCBpbnB1dCBtdXN0IGJlIGEgcmVhZGFibGUgYnVmZmVyIG9mIGF0IGxlYXN0CisgKiAgICAgICAgICAgICAgICAgIHRoYXQgbGVuZ3RoLgorICogXHBhcmFtIG91dHB1dCAgICBUaGUgYnVmZmVyIGhvbGRpbmcgdGhlIG91dHB1dCBkYXRhLiBJZiBccCBsZW5ndGggaXMgZ3JlYXRlcgorICogICAgICAgICAgICAgICAgICB0aGFuIHplcm8sIFxwIG91dHB1dCBtdXN0IGJlIGEgd3JpdGFibGUgYnVmZmVyIG9mIGF0IGxlYXN0CisgKiAgICAgICAgICAgICAgICAgIHRoYXQgbGVuZ3RoLgorICogXHBhcmFtIHRhZyAgICAgICBUaGUgYnVmZmVyIGhvbGRpbmcgdGhlIGF1dGhlbnRpY2F0aW9uIGZpZWxkLiBUaGlzIG11c3QgYmUgYQorICogICAgICAgICAgICAgICAgICByZWFkYWJsZSBidWZmZXIgb2YgYXQgbGVhc3QgXHAgdGFnX2xlbiBCeXRlcy4KKyAqIFxwYXJhbSB0YWdfbGVuICAgVGhlIGxlbmd0aCBvZiB0aGUgYXV0aGVudGljYXRpb24gZmllbGQgdG8gZ2VuZXJhdGUgaW4gQnl0ZXM6CisgKiAgICAgICAgICAgICAgICAgIDQsIDYsIDgsIDEwLCAxMiwgMTQgb3IgMTYuCisgKgorICogXHJldHVybiAgICAgICAgICBcYyAwIG9uIHN1Y2Nlc3MuIFRoaXMgaW5kaWNhdGVzIHRoYXQgdGhlIG1lc3NhZ2UgaXMgYXV0aGVudGljLgorICogXHJldHVybiAgICAgICAgICAjTUJFRFRMU19FUlJfQ0NNX0FVVEhfRkFJTEVEIGlmIHRoZSB0YWcgZG9lcyBub3QgbWF0Y2guCisgKiBccmV0dXJuICAgICAgICAgIEEgY2lwaGVyLXNwZWNpZmljIGVycm9yIGNvZGUgb24gY2FsY3VsYXRpb24gZmFpbHVyZS4KKyAqLworaW50IG1iZWR0bHNfY2NtX2F1dGhfZGVjcnlwdChtYmVkdGxzX2NjbV9jb250ZXh0ICpjdHgsIHNpemVfdCBsZW5ndGgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgKml2LCBzaXplX3QgaXZfbGVuLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1bnNpZ25lZCBjaGFyICphZCwgc2l6ZV90IGFkX2xlbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdW5zaWduZWQgY2hhciAqaW5wdXQsIHVuc2lnbmVkIGNoYXIgKm91dHB1dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdW5zaWduZWQgY2hhciAqdGFnLCBzaXplX3QgdGFnX2xlbik7CisKKy8qKgorICogXGJyaWVmICAgICAgICAgICBUaGlzIGZ1bmN0aW9uIHBlcmZvcm1zIGEgQ0NNKiBhdXRoZW50aWNhdGVkIGRlY3J5cHRpb24gb2YgYQorICogICAgICAgICAgICAgICAgICBidWZmZXIuCisgKgorICogXG5vdGUgICAgICAgICAgICBXaGVuIHVzaW5nIHRoaXMgZnVuY3Rpb24gaW4gYSB2YXJpYWJsZSB0YWcgbGVuZ3RoIGNvbnRleHQsCisgKiAgICAgICAgICAgICAgICAgIHRoZSB0YWcgbGVuZ3RoIGhhcyB0byBiZSBkZWNvZGVkIGZyb20gXHAgaXYgYW5kIHBhc3NlZCB0bworICogICAgICAgICAgICAgICAgICB0aGlzIGZ1bmN0aW9uIGFzIFxwIHRhZ19sZW4uIChccCB0YWcgbmVlZHMgdG8gYmUgYWRqdXN0ZWQKKyAqICAgICAgICAgICAgICAgICAgYWNjb3JkaW5nbHkuKQorICoKKyAqIFxwYXJhbSBjdHggICAgICAgVGhlIENDTSBjb250ZXh0IHRvIHVzZSBmb3IgZGVjcnlwdGlvbi4gVGhpcyBtdXN0IGJlCisgKiAgICAgICAgICAgICAgICAgIGluaXRpYWxpemVkIGFuZCBib3VuZCB0byBhIGtleS4KKyAqIFxwYXJhbSBsZW5ndGggICAgVGhlIGxlbmd0aCBvZiB0aGUgaW5wdXQgZGF0YSBpbiBCeXRlcy4KKyAqICAgICAgICAgICAgICAgICAgRm9yIHRhZyBsZW5ndGggPSAwLCBpbnB1dCBsZW5ndGggaXMgaWdub3JlZC4KKyAqIFxwYXJhbSBpdiAgICAgICAgVGhlIGluaXRpYWxpemF0aW9uIHZlY3RvciAobm9uY2UpLiBUaGlzIG11c3QgYmUgYSByZWFkYWJsZQorICogICAgICAgICAgICAgICAgICBidWZmZXIgb2YgYXQgbGVhc3QgXHAgaXZfbGVuIEJ5dGVzLgorICogXHBhcmFtIGl2X2xlbiAgICBUaGUgbGVuZ3RoIG9mIHRoZSBub25jZSBpbiBCeXRlczogNywgOCwgOSwgMTAsIDExLCAxMiwKKyAqICAgICAgICAgICAgICAgICAgb3IgMTMuIFRoZSBsZW5ndGggTCBvZiB0aGUgbWVzc2FnZSBsZW5ndGggZmllbGQgaXMKKyAqICAgICAgICAgICAgICAgICAgMTUgLSBccCBpdl9sZW4uCisgKiBccGFyYW0gYWQgICAgICAgIFRoZSBhZGRpdGlvbmFsIGRhdGEgZmllbGQuIFRoaXMgbXVzdCBiZSBhIHJlYWRhYmxlIGJ1ZmZlciBvZgorICogICAgICAgICAgICAgICAgICBhdCBsZWFzdCB0aGF0IFxwIGFkX2xlbiBCeXRlcy4KKyAqIFxwYXJhbSBhZF9sZW4gICAgVGhlIGxlbmd0aCBvZiBhZGRpdGlvbmFsIGRhdGEgaW4gQnl0ZXMuCisgKiAgICAgICAgICAgICAgICAgIFRoaXMgbXVzdCBiZSBsZXNzIHRoYW4gMl4xNiAtIDJeOC4KKyAqIFxwYXJhbSBpbnB1dCAgICAgVGhlIGJ1ZmZlciBob2xkaW5nIHRoZSBpbnB1dCBkYXRhLiBJZiBccCBsZW5ndGggaXMgZ3JlYXRlcgorICogICAgICAgICAgICAgICAgICB0aGFuIHplcm8sIFxwIGlucHV0IG11c3QgYmUgYSByZWFkYWJsZSBidWZmZXIgb2YgYXQgbGVhc3QKKyAqICAgICAgICAgICAgICAgICAgdGhhdCBsZW5ndGguCisgKiBccGFyYW0gb3V0cHV0ICAgIFRoZSBidWZmZXIgaG9sZGluZyB0aGUgb3V0cHV0IGRhdGEuIElmIFxwIGxlbmd0aCBpcyBncmVhdGVyCisgKiAgICAgICAgICAgICAgICAgIHRoYW4gemVybywgXHAgb3V0cHV0IG11c3QgYmUgYSB3cml0YWJsZSBidWZmZXIgb2YgYXQgbGVhc3QKKyAqICAgICAgICAgICAgICAgICAgdGhhdCBsZW5ndGguCisgKiBccGFyYW0gdGFnICAgICAgIFRoZSBidWZmZXIgaG9sZGluZyB0aGUgYXV0aGVudGljYXRpb24gZmllbGQuIFRoaXMgbXVzdCBiZSBhCisgKiAgICAgICAgICAgICAgICAgIHJlYWRhYmxlIGJ1ZmZlciBvZiBhdCBsZWFzdCBccCB0YWdfbGVuIEJ5dGVzLgorICogXHBhcmFtIHRhZ19sZW4gICBUaGUgbGVuZ3RoIG9mIHRoZSBhdXRoZW50aWNhdGlvbiBmaWVsZCBpbiBCeXRlcy4KKyAqICAgICAgICAgICAgICAgICAgMCwgNCwgNiwgOCwgMTAsIDEyLCAxNCBvciAxNi4KKyAqCisgKiBcd2FybmluZyAgICAgICAgIFBhc3NpbmcgXGMgMCBhcyBccCB0YWdfbGVuIG1lYW5zIHRoYXQgdGhlIG1lc3NhZ2UgaXMgbm9zCisgKiAgICAgICAgICAgICAgICAgIGxvbmdlciBhdXRoZW50aWNhdGVkLgorICoKKyAqIFxyZXR1cm4gICAgICAgICAgXGMgMCBvbiBzdWNjZXNzLgorICogXHJldHVybiAgICAgICAgICAjTUJFRFRMU19FUlJfQ0NNX0FVVEhfRkFJTEVEIGlmIHRoZSB0YWcgZG9lcyBub3QgbWF0Y2guCisgKiBccmV0dXJuICAgICAgICAgIEEgY2lwaGVyLXNwZWNpZmljIGVycm9yIGNvZGUgb24gY2FsY3VsYXRpb24gZmFpbHVyZS4KKyAqLworaW50IG1iZWR0bHNfY2NtX3N0YXJfYXV0aF9kZWNyeXB0KG1iZWR0bHNfY2NtX2NvbnRleHQgKmN0eCwgc2l6ZV90IGxlbmd0aCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1bnNpZ25lZCBjaGFyICppdiwgc2l6ZV90IGl2X2xlbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1bnNpZ25lZCBjaGFyICphZCwgc2l6ZV90IGFkX2xlbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1bnNpZ25lZCBjaGFyICppbnB1dCwgdW5zaWduZWQgY2hhciAqb3V0cHV0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgKnRhZywgc2l6ZV90IHRhZ19sZW4pOworCisvKioKKyAqIFxicmllZiAgICAgICAgICAgVGhpcyBmdW5jdGlvbiBzdGFydHMgYSBDQ00gZW5jcnlwdGlvbiBvciBkZWNyeXB0aW9uCisgKiAgICAgICAgICAgICAgICAgIG9wZXJhdGlvbi4KKyAqCisgKiAgICAgICAgICAgICAgICAgIFRoaXMgZnVuY3Rpb24gYW5kIG1iZWR0bHNfY2NtX3NldF9sZW5ndGhzKCkgbXVzdCBiZSBjYWxsZWQKKyAqICAgICAgICAgICAgICAgICAgYmVmb3JlIGNhbGxpbmcgbWJlZHRsc19jY21fdXBkYXRlX2FkKCkgb3IKKyAqICAgICAgICAgICAgICAgICAgbWJlZHRsc19jY21fdXBkYXRlKCkuIFRoaXMgZnVuY3Rpb24gY2FuIGJlIGNhbGxlZCBiZWZvcmUKKyAqICAgICAgICAgICAgICAgICAgb3IgYWZ0ZXIgbWJlZHRsc19jY21fc2V0X2xlbmd0aHMoKS4KKyAqCisgKiBcbm90ZSAgICAgICAgICAgIFRoaXMgZnVuY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIE1iZWQgVExTIHlldC4KKyAqCisgKiBccGFyYW0gY3R4ICAgICAgIFRoZSBDQ00gY29udGV4dC4gVGhpcyBtdXN0IGJlIGluaXRpYWxpemVkLgorICogXHBhcmFtIG1vZGUgICAgICBUaGUgb3BlcmF0aW9uIHRvIHBlcmZvcm06ICNNQkVEVExTX0NDTV9FTkNSWVBUIG9yCisgKiAgICAgICAgICAgICAgICAgICNNQkVEVExTX0NDTV9ERUNSWVBUIG9yICNNQkVEVExTX0NDTV9TVEFSX0VOQ1JZUFQgb3IKKyAqICAgICAgICAgICAgICAgICAgI01CRURUTFNfQ0NNX1NUQVJfREVDUllQVC4KKyAqIFxwYXJhbSBpdiAgICAgICAgVGhlIGluaXRpYWxpemF0aW9uIHZlY3Rvci4gVGhpcyBtdXN0IGJlIGEgcmVhZGFibGUgYnVmZmVyCisgKiAgICAgICAgICAgICAgICAgIG9mIGF0IGxlYXN0IFxwIGl2X2xlbiBCeXRlcy4KKyAqIFxwYXJhbSBpdl9sZW4gICAgVGhlIGxlbmd0aCBvZiB0aGUgbm9uY2UgaW4gQnl0ZXM6IDcsIDgsIDksIDEwLCAxMSwgMTIsCisgKiAgICAgICAgICAgICAgICAgIG9yIDEzLiBUaGUgbGVuZ3RoIEwgb2YgdGhlIG1lc3NhZ2UgbGVuZ3RoIGZpZWxkIGlzCisgKiAgICAgICAgICAgICAgICAgIDE1IC0gXHAgaXZfbGVuLgorICoKKyAqIFxyZXR1cm4gICAgICAgICAgXGMgMCBvbiBzdWNjZXNzLgorICogXHJldHVybiAgICAgICAgICAjTUJFRFRMU19FUlJfQ0NNX0JBRF9JTlBVVCBvbiBmYWlsdXJlOgorICogICAgICAgICAgICAgICAgICBccCBjdHggaXMgaW4gYW4gaW52YWxpZCBzdGF0ZSwKKyAqICAgICAgICAgICAgICAgICAgXHAgbW9kZSBpcyBpbnZhbGlkLAorICogICAgICAgICAgICAgICAgICBccCBpdl9sZW4gaXMgaW52YWxpZCAobG93ZXIgdGhhbiBcYyA3IG9yIGdyZWF0ZXIgdGhhbgorICogICAgICAgICAgICAgICAgICBcYyAxMykuCisgKi8KK2ludCBtYmVkdGxzX2NjbV9zdGFydHMobWJlZHRsc19jY21fY29udGV4dCAqY3R4LAorICAgICAgICAgICAgICAgICAgICAgICBpbnQgbW9kZSwKKyAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdW5zaWduZWQgY2hhciAqaXYsCisgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBpdl9sZW4pOworCisvKioKKyAqIFxicmllZiAgICAgICAgICAgVGhpcyBmdW5jdGlvbiBkZWNsYXJlcyB0aGUgbGVuZ3RocyBvZiB0aGUgbWVzc2FnZQorICogICAgICAgICAgICAgICAgICBhbmQgYWRkaXRpb25hbCBkYXRhIGZvciBhIENDTSBlbmNyeXB0aW9uIG9yIGRlY3J5cHRpb24KKyAqICAgICAgICAgICAgICAgICAgb3BlcmF0aW9uLgorICoKKyAqICAgICAgICAgICAgICAgICAgVGhpcyBmdW5jdGlvbiBhbmQgbWJlZHRsc19jY21fc3RhcnRzKCkgbXVzdCBiZSBjYWxsZWQKKyAqICAgICAgICAgICAgICAgICAgYmVmb3JlIGNhbGxpbmcgbWJlZHRsc19jY21fdXBkYXRlX2FkKCkgb3IKKyAqICAgICAgICAgICAgICAgICAgbWJlZHRsc19jY21fdXBkYXRlKCkuIFRoaXMgZnVuY3Rpb24gY2FuIGJlIGNhbGxlZCBiZWZvcmUKKyAqICAgICAgICAgICAgICAgICAgb3IgYWZ0ZXIgbWJlZHRsc19jY21fc3RhcnRzKCkuCisgKgorICogXG5vdGUgICAgICAgICAgICBUaGlzIGZ1bmN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiBNYmVkIFRMUyB5ZXQuCisgKgorICogXHBhcmFtIGN0eCAgICAgICBUaGUgQ0NNIGNvbnRleHQuIFRoaXMgbXVzdCBiZSBpbml0aWFsaXplZC4KKyAqIFxwYXJhbSB0b3RhbF9hZF9sZW4gICBUaGUgdG90YWwgbGVuZ3RoIG9mIGFkZGl0aW9uYWwgZGF0YSBpbiBieXRlcy4KKyAqICAgICAgICAgICAgICAgICAgICAgICBUaGlzIG11c3QgYmUgbGVzcyB0aGFuIGAyXjE2IC0gMl44YC4KKyAqIFxwYXJhbSBwbGFpbnRleHRfbGVuICBUaGUgbGVuZ3RoIGluIGJ5dGVzIG9mIHRoZSBwbGFpbnRleHQgdG8gZW5jcnlwdCBvcgorICogICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdCBvZiB0aGUgZGVjcnlwdGlvbiAodGh1cyBub3QgZW5jb21wYXNzaW5nIHRoZQorICogICAgICAgICAgICAgICAgICAgICAgIGFkZGl0aW9uYWwgZGF0YSB0aGF0IGFyZSBub3QgZW5jcnlwdGVkKS4KKyAqIFxwYXJhbSB0YWdfbGVuICAgVGhlIGxlbmd0aCBvZiB0aGUgdGFnIHRvIGdlbmVyYXRlIGluIEJ5dGVzOgorICogICAgICAgICAgICAgICAgICA0LCA2LCA4LCAxMCwgMTIsIDE0IG9yIDE2LgorICogICAgICAgICAgICAgICAgICBGb3IgQ0NNKiwgemVybyBpcyBhbHNvIHZhbGlkLgorICoKKyAqIFxyZXR1cm4gICAgICAgICAgXGMgMCBvbiBzdWNjZXNzLgorICogXHJldHVybiAgICAgICAgICAjTUJFRFRMU19FUlJfQ0NNX0JBRF9JTlBVVCBvbiBmYWlsdXJlOgorICogICAgICAgICAgICAgICAgICBccCBjdHggaXMgaW4gYW4gaW52YWxpZCBzdGF0ZSwKKyAqICAgICAgICAgICAgICAgICAgXHAgdG90YWxfYWRfbGVuIGlzIGdyZWF0ZXIgdGhhbiBcYyAweEZGMDAuCisgKi8KK2ludCBtYmVkdGxzX2NjbV9zZXRfbGVuZ3RocyhtYmVkdGxzX2NjbV9jb250ZXh0ICpjdHgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IHRvdGFsX2FkX2xlbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgcGxhaW50ZXh0X2xlbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgdGFnX2xlbik7CisKKy8qKgorICogXGJyaWVmICAgICAgICAgICBUaGlzIGZ1bmN0aW9uIGZlZWRzIGFuIGlucHV0IGJ1ZmZlciBhcyBhc3NvY2lhdGVkIGRhdGEKKyAqICAgICAgICAgICAgICAgICAgKGF1dGhlbnRpY2F0ZWQgYnV0IG5vdCBlbmNyeXB0ZWQgZGF0YSkgaW4gYSBDQ00KKyAqICAgICAgICAgICAgICAgICAgZW5jcnlwdGlvbiBvciBkZWNyeXB0aW9uIG9wZXJhdGlvbi4KKyAqCisgKiAgICAgICAgICAgICAgICAgIFlvdSBtYXkgY2FsbCB0aGlzIGZ1bmN0aW9uIHplcm8sIG9uZSBvciBtb3JlIHRpbWVzCisgKiAgICAgICAgICAgICAgICAgIHRvIHBhc3Mgc3VjY2Vzc2l2ZSBwYXJ0cyBvZiB0aGUgYWRkaXRpb25hbCBkYXRhLiBUaGUKKyAqICAgICAgICAgICAgICAgICAgbGVuZ3RocyBccCBhZF9sZW4gb2YgdGhlIGRhdGEgcGFydHMgc2hvdWxkIGV2ZW50dWFsbHkgYWRkCisgKiAgICAgICAgICAgICAgICAgIHVwIGV4YWN0bHkgdG8gdGhlIHRvdGFsIGxlbmd0aCBvZiBhZGRpdGlvbmFsIGRhdGEKKyAqICAgICAgICAgICAgICAgICAgXGMgdG90YWxfYWRfbGVuIHBhc3NlZCB0byBtYmVkdGxzX2NjbV9zZXRfbGVuZ3RocygpLiBZb3UKKyAqICAgICAgICAgICAgICAgICAgbWF5IG5vdCBjYWxsIHRoaXMgZnVuY3Rpb24gYWZ0ZXIgY2FsbGluZworICogICAgICAgICAgICAgICAgICBtYmVkdGxzX2NjbV91cGRhdGUoKS4KKyAqCisgKiBcbm90ZSAgICAgICAgICAgIFRoaXMgZnVuY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIE1iZWQgVExTIHlldC4KKyAqCisgKiBccGFyYW0gY3R4ICAgICAgIFRoZSBDQ00gY29udGV4dC4gVGhpcyBtdXN0IGhhdmUgYmVlbiBzdGFydGVkIHdpdGgKKyAqICAgICAgICAgICAgICAgICAgbWJlZHRsc19jY21fc3RhcnRzKCksIHRoZSBsZW5ndGhzIG9mIHRoZSBtZXNzYWdlIGFuZAorICogICAgICAgICAgICAgICAgICBhZGRpdGlvbmFsIGRhdGEgbXVzdCBoYXZlIGJlZW4gZGVjbGFyZWQgd2l0aAorICogICAgICAgICAgICAgICAgICBtYmVkdGxzX2NjbV9zZXRfbGVuZ3RocygpIGFuZCB0aGlzIG11c3Qgbm90IGhhdmUgeWV0CisgKiAgICAgICAgICAgICAgICAgIHJlY2VpdmVkIGFueSBpbnB1dCB3aXRoIG1iZWR0bHNfY2NtX3VwZGF0ZSgpLgorICogXHBhcmFtIGFkICAgICAgICBUaGUgYnVmZmVyIGhvbGRpbmcgdGhlIGFkZGl0aW9uYWwgZGF0YSwgb3IgXGMgTlVMTAorICogICAgICAgICAgICAgICAgICBpZiBccCBhZF9sZW4gaXMgXGMgMC4KKyAqIFxwYXJhbSBhZF9sZW4gICAgVGhlIGxlbmd0aCBvZiB0aGUgYWRkaXRpb25hbCBkYXRhLiBJZiBcYyAwLAorICogICAgICAgICAgICAgICAgICBccCBhZCBtYXkgYmUgXGMgTlVMTC4KKyAqCisgKiBccmV0dXJuICAgICAgICAgIFxjIDAgb24gc3VjY2Vzcy4KKyAqIFxyZXR1cm4gICAgICAgICAgI01CRURUTFNfRVJSX0NDTV9CQURfSU5QVVQgb24gZmFpbHVyZToKKyAqICAgICAgICAgICAgICAgICAgXHAgY3R4IGlzIGluIGFuIGludmFsaWQgc3RhdGUsCisgKiAgICAgICAgICAgICAgICAgIHRvdGFsIGlucHV0IGxlbmd0aCB0b28gbG9uZy4KKyAqLworaW50IG1iZWR0bHNfY2NtX3VwZGF0ZV9hZChtYmVkdGxzX2NjbV9jb250ZXh0ICpjdHgsCisgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgKmFkLAorICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgYWRfbGVuKTsKKworLyoqCisgKiBcYnJpZWYgICAgICAgICAgIFRoaXMgZnVuY3Rpb24gZmVlZHMgYW4gaW5wdXQgYnVmZmVyIGludG8gYW4gb25nb2luZyBDQ00KKyAqICAgICAgICAgICAgICAgICAgZW5jcnlwdGlvbiBvciBkZWNyeXB0aW9uIG9wZXJhdGlvbi4KKyAqCisgKiAgICAgICAgICAgICAgICAgIFlvdSBtYXkgY2FsbCB0aGlzIGZ1bmN0aW9uIHplcm8sIG9uZSBvciBtb3JlIHRpbWVzCisgKiAgICAgICAgICAgICAgICAgIHRvIHBhc3Mgc3VjY2Vzc2l2ZSBwYXJ0cyBvZiB0aGUgaW5wdXQ6IHRoZSBwbGFpbnRleHQgdG8KKyAqICAgICAgICAgICAgICAgICAgZW5jcnlwdCwgb3IgdGhlIGNpcGhlcnRleHQgKG5vdCBpbmNsdWRpbmcgdGhlIHRhZykgdG8KKyAqICAgICAgICAgICAgICAgICAgZGVjcnlwdC4gQWZ0ZXIgdGhlIGxhc3QgcGFydCBvZiB0aGUgaW5wdXQsIGNhbGwKKyAqICAgICAgICAgICAgICAgICAgbWJlZHRsc19jY21fZmluaXNoKCkuIFRoZSBsZW5ndGhzIFxwIGlucHV0X2xlbiBvZiB0aGUKKyAqICAgICAgICAgICAgICAgICAgZGF0YSBwYXJ0cyBzaG91bGQgZXZlbnR1YWxseSBhZGQgdXAgZXhhY3RseSB0byB0aGUKKyAqICAgICAgICAgICAgICAgICAgcGxhaW50ZXh0IGxlbmd0aCBcYyBwbGFpbnRleHRfbGVuIHBhc3NlZCB0bworICogICAgICAgICAgICAgICAgICBtYmVkdGxzX2NjbV9zZXRfbGVuZ3RocygpLgorICoKKyAqICAgICAgICAgICAgICAgICAgVGhpcyBmdW5jdGlvbiBtYXkgcHJvZHVjZSBvdXRwdXQgaW4gb25lIG9mIHRoZSBmb2xsb3dpbmcKKyAqICAgICAgICAgICAgICAgICAgd2F5czoKKyAqICAgICAgICAgICAgICAgICAgLSBJbW1lZGlhdGUgb3V0cHV0OiB0aGUgb3V0cHV0IGxlbmd0aCBpcyBhbHdheXMgZXF1YWwKKyAqICAgICAgICAgICAgICAgICAgICB0byB0aGUgaW5wdXQgbGVuZ3RoLgorICogICAgICAgICAgICAgICAgICAtIEJ1ZmZlcmVkIG91dHB1dDogZXhjZXB0IGZvciB0aGUgbGFzdCBwYXJ0IG9mIGlucHV0IGRhdGEsCisgKiAgICAgICAgICAgICAgICAgICAgdGhlIG91dHB1dCBjb25zaXN0cyBvZiBhIHdob2xlIG51bWJlciBvZiAxNi1ieXRlIGJsb2Nrcy4KKyAqICAgICAgICAgICAgICAgICAgICBJZiB0aGUgdG90YWwgaW5wdXQgbGVuZ3RoIHNvIGZhciAobm90IGluY2x1ZGluZworICogICAgICAgICAgICAgICAgICAgIGFzc29jaWF0ZWQgZGF0YSkgaXMgMTYgXCogKkIqICsgKkEqIHdpdGggKkEqIDwgMTYgdGhlbgorICogICAgICAgICAgICAgICAgICAgIHRoZSB0b3RhbCBvdXRwdXQgbGVuZ3RoIGlzIDE2IFwqICpCKi4KKyAqICAgICAgICAgICAgICAgICAgICBGb3IgdGhlIGxhc3QgcGFydCBvZiBpbnB1dCBkYXRhLCB0aGUgb3V0cHV0IGxlbmd0aCBpcworICogICAgICAgICAgICAgICAgICAgIGVxdWFsIHRvIHRoZSBpbnB1dCBsZW5ndGggcGx1cyB0aGUgbnVtYmVyIG9mIGJ5dGVzICgqQSopCisgKiAgICAgICAgICAgICAgICAgICAgYnVmZmVyZWQgaW4gdGhlIHByZXZpb3VzIGNhbGwgdG8gdGhlIGZ1bmN0aW9uIChpZiBhbnkpLgorICogICAgICAgICAgICAgICAgICAgIFRoZSBmdW5jdGlvbiB1c2VzIHRoZSBwbGFpbnRleHQgbGVuZ3RoCisgKiAgICAgICAgICAgICAgICAgICAgXGMgcGxhaW50ZXh0X2xlbiBwYXNzZWQgdG8gbWJlZHRsc19jY21fc2V0X2xlbmd0aHMoKQorICogICAgICAgICAgICAgICAgICAgIHRvIGRldGVjdCB0aGUgbGFzdCBwYXJ0IG9mIGlucHV0IGRhdGEuCisgKgorICogICAgICAgICAgICAgICAgICBJbiBwYXJ0aWN1bGFyOgorICogICAgICAgICAgICAgICAgICAtIEl0IGlzIGFsd2F5cyBjb3JyZWN0IHRvIGNhbGwgdGhpcyBmdW5jdGlvbiB3aXRoCisgKiAgICAgICAgICAgICAgICAgICAgXHAgb3V0cHV0X3NpemUgPj0gXHAgaW5wdXRfbGVuICsgMTUuCisgKiAgICAgICAgICAgICAgICAgIC0gSWYgXHAgaW5wdXRfbGVuIGlzIGEgbXVsdGlwbGUgb2YgMTYgZm9yIGFsbCB0aGUgY2FsbHMKKyAqICAgICAgICAgICAgICAgICAgICB0byB0aGlzIGZ1bmN0aW9uIGR1cmluZyBhbiBvcGVyYXRpb24gKG5vdCBuZWNlc3NhcnkgZm9yCisgKiAgICAgICAgICAgICAgICAgICAgdGhlIGxhc3Qgb25lKSB0aGVuIGl0IGlzIGNvcnJlY3QgdG8gdXNlIFxwIG91dHB1dF9zaXplCisgKiAgICAgICAgICAgICAgICAgICAgPVxwIGlucHV0X2xlbi4KKyAqCisgKiBcbm90ZSAgICAgICAgICAgIFRoaXMgZnVuY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIE1iZWQgVExTIHlldC4KKyAqCisgKiBccGFyYW0gY3R4ICAgICAgICAgICBUaGUgQ0NNIGNvbnRleHQuIFRoaXMgbXVzdCBoYXZlIGJlZW4gc3RhcnRlZCB3aXRoCisgKiAgICAgICAgICAgICAgICAgICAgICBtYmVkdGxzX2NjbV9zdGFydHMoKSBhbmQgdGhlIGxlbmd0aHMgb2YgdGhlIG1lc3NhZ2UgYW5kCisgKiAgICAgICAgICAgICAgICAgICAgICBhZGRpdGlvbmFsIGRhdGEgbXVzdCBoYXZlIGJlZW4gZGVjbGFyZWQgd2l0aAorICogICAgICAgICAgICAgICAgICAgICAgbWJlZHRsc19jY21fc2V0X2xlbmd0aHMoKS4KKyAqIFxwYXJhbSBpbnB1dCAgICAgICAgIFRoZSBidWZmZXIgaG9sZGluZyB0aGUgaW5wdXQgZGF0YS4gSWYgXHAgaW5wdXRfbGVuCisgKiAgICAgICAgICAgICAgICAgICAgICBpcyBncmVhdGVyIHRoYW4gemVybywgdGhpcyBtdXN0IGJlIGEgcmVhZGFibGUgYnVmZmVyCisgKiAgICAgICAgICAgICAgICAgICAgICBvZiBhdCBsZWFzdCBccCBpbnB1dF9sZW4gYnl0ZXMuCisgKiBccGFyYW0gaW5wdXRfbGVuICAgICBUaGUgbGVuZ3RoIG9mIHRoZSBpbnB1dCBkYXRhIGluIGJ5dGVzLgorICogXHBhcmFtIG91dHB1dCAgICAgICAgVGhlIGJ1ZmZlciBmb3IgdGhlIG91dHB1dCBkYXRhLiBJZiBccCBvdXRwdXRfc2l6ZQorICogICAgICAgICAgICAgICAgICAgICAgaXMgZ3JlYXRlciB0aGFuIHplcm8sIHRoaXMgbXVzdCBiZSBhIHdyaXRhYmxlIGJ1ZmZlciBvZgorICogICAgICAgICAgICAgICAgICAgICAgYXQgbGVhc3QgXHAgb3V0cHV0X3NpemUgYnl0ZXMuCisgKiBccGFyYW0gb3V0cHV0X3NpemUgICBUaGUgc2l6ZSBvZiB0aGUgb3V0cHV0IGJ1ZmZlciBpbiBieXRlcy4KKyAqICAgICAgICAgICAgICAgICAgICAgIFNlZSB0aGUgZnVuY3Rpb24gZGVzY3JpcHRpb24gcmVnYXJkaW5nIHRoZSBvdXRwdXQgc2l6ZS4KKyAqIFxwYXJhbSBvdXRwdXRfbGVuICAgIE9uIHN1Y2Nlc3MsIFxwICpvdXRwdXRfbGVuIGNvbnRhaW5zIHRoZSBhY3R1YWwKKyAqICAgICAgICAgICAgICAgICAgICAgIGxlbmd0aCBvZiB0aGUgb3V0cHV0IHdyaXR0ZW4gaW4gXHAgb3V0cHV0LgorICogICAgICAgICAgICAgICAgICAgICAgT24gZmFpbHVyZSwgdGhlIGNvbnRlbnQgb2YgXHAgKm91dHB1dF9sZW4gaXMKKyAqICAgICAgICAgICAgICAgICAgICAgIHVuc3BlY2lmaWVkLgorICoKKyAqIFxyZXR1cm4gICAgICAgICBcYyAwIG9uIHN1Y2Nlc3MuCisgKiBccmV0dXJuICAgICAgICAgI01CRURUTFNfRVJSX0NDTV9CQURfSU5QVVQgb24gZmFpbHVyZToKKyAqICAgICAgICAgICAgICAgICBccCBjdHggaXMgaW4gYW4gaW52YWxpZCBzdGF0ZSwKKyAqICAgICAgICAgICAgICAgICB0b3RhbCBpbnB1dCBsZW5ndGggdG9vIGxvbmcsCisgKiAgICAgICAgICAgICAgICAgb3IgXHAgb3V0cHV0X3NpemUgdG9vIHNtYWxsLgorICovCitpbnQgbWJlZHRsc19jY21fdXBkYXRlKG1iZWR0bHNfY2NtX2NvbnRleHQgKmN0eCwKKyAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdW5zaWduZWQgY2hhciAqaW5wdXQsIHNpemVfdCBpbnB1dF9sZW4sCisgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGNoYXIgKm91dHB1dCwgc2l6ZV90IG91dHB1dF9zaXplLAorICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgKm91dHB1dF9sZW4pOworCisvKioKKyAqIFxicmllZiAgICAgICAgICAgVGhpcyBmdW5jdGlvbiBmaW5pc2hlcyB0aGUgQ0NNIG9wZXJhdGlvbiBhbmQgZ2VuZXJhdGVzCisgKiAgICAgICAgICAgICAgICAgIHRoZSBhdXRoZW50aWNhdGlvbiB0YWcuCisgKgorICogICAgICAgICAgICAgICAgICBJdCB3cmFwcyB1cCB0aGUgQ0NNIHN0cmVhbSwgYW5kIGdlbmVyYXRlcyB0aGUKKyAqICAgICAgICAgICAgICAgICAgdGFnLiBUaGUgdGFnIGNhbiBoYXZlIGEgbWF4aW11bSBsZW5ndGggb2YgMTYgQnl0ZXMuCisgKgorICogXG5vdGUgICAgICAgICAgICBUaGlzIGZ1bmN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiBNYmVkIFRMUyB5ZXQuCisgKgorICogXHBhcmFtIGN0eCAgICAgICBUaGUgQ0NNIGNvbnRleHQuIFRoaXMgbXVzdCBoYXZlIGJlZW4gc3RhcnRlZCB3aXRoCisgKiAgICAgICAgICAgICAgICAgIG1iZWR0bHNfY2NtX3N0YXJ0cygpIGFuZCB0aGUgbGVuZ3RocyBvZiB0aGUgbWVzc2FnZSBhbmQKKyAqICAgICAgICAgICAgICAgICAgYWRkaXRpb25hbCBkYXRhIG11c3QgaGF2ZSBiZWVuIGRlY2xhcmVkIHdpdGgKKyAqICAgICAgICAgICAgICAgICAgbWJlZHRsc19jY21fc2V0X2xlbmd0aHMoKS4KKyAqIFxwYXJhbSB0YWcgICAgICAgVGhlIGJ1ZmZlciBmb3IgaG9sZGluZyB0aGUgdGFnLiBJZiBccCB0YWdfbGVuIGlzIGdyZWF0ZXIKKyAqICAgICAgICAgICAgICAgICAgdGhhbiB6ZXJvLCB0aGlzIG11c3QgYmUgYSB3cml0YWJsZSBidWZmZXIgb2YgYXQgbGVhc3QgXHAKKyAqICAgICAgICAgICAgICAgICAgdGFnX2xlbiBCeXRlcy4KKyAqIFxwYXJhbSB0YWdfbGVuICAgVGhlIGxlbmd0aCBvZiB0aGUgdGFnLiBNdXN0IG1hdGNoIHRoZSB0YWcgbGVuZ3RoIHBhc3NlZCB0bworICogICAgICAgICAgICAgICAgICBtYmVkdGxzX2NjbV9zZXRfbGVuZ3RocygpIGZ1bmN0aW9uLgorICoKKyAqIFxyZXR1cm4gICAgICAgICAgXGMgMCBvbiBzdWNjZXNzLgorICogXHJldHVybiAgICAgICAgICAjTUJFRFRMU19FUlJfQ0NNX0JBRF9JTlBVVCBvbiBmYWlsdXJlOgorICogICAgICAgICAgICAgICAgICBccCBjdHggaXMgaW4gYW4gaW52YWxpZCBzdGF0ZSwKKyAqICAgICAgICAgICAgICAgICAgaW52YWxpZCB2YWx1ZSBvZiBccCB0YWdfbGVuLAorICogICAgICAgICAgICAgICAgICB0aGUgdG90YWwgYW1vdW50IG9mIGFkZGl0aW9uYWwgZGF0YSBwYXNzZWQgdG8KKyAqICAgICAgICAgICAgICAgICAgbWJlZHRsc19jY21fdXBkYXRlX2FkKCkgd2FzIGxvd2VyIHRoYW4gdGhlIHRvdGFsIGxlbmd0aCBvZgorICogICAgICAgICAgICAgICAgICBhZGRpdGlvbmFsIGRhdGEgXGMgdG90YWxfYWRfbGVuIHBhc3NlZCB0bworICogICAgICAgICAgICAgICAgICBtYmVkdGxzX2NjbV9zZXRfbGVuZ3RocygpLAorICogICAgICAgICAgICAgICAgICB0aGUgdG90YWwgYW1vdW50IG9mIGlucHV0IGRhdGEgcGFzc2VkIHRvCisgKiAgICAgICAgICAgICAgICAgIG1iZWR0bHNfY2NtX3VwZGF0ZSgpIHdhcyBsb3dlciB0aGFuIHRoZSBwbGFpbnRleHQgbGVuZ3RoCisgKiAgICAgICAgICAgICAgICAgIFxjIHBsYWludGV4dF9sZW4gcGFzc2VkIHRvIG1iZWR0bHNfY2NtX3NldF9sZW5ndGhzKCkuCisgKi8KK2ludCBtYmVkdGxzX2NjbV9maW5pc2gobWJlZHRsc19jY21fY29udGV4dCAqY3R4LAorICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBjaGFyICp0YWcsIHNpemVfdCB0YWdfbGVuKTsKKworI2lmIGRlZmluZWQoTUJFRFRMU19TRUxGX1RFU1QpICYmIGRlZmluZWQoTUJFRFRMU19DQ01fR0NNX0NBTl9BRVMpCisvKioKKyAqIFxicmllZiAgICAgICAgICBUaGUgQ0NNIGNoZWNrdXAgcm91dGluZS4KKyAqCisgKiBccmV0dXJuICAgICAgICAgXGMgMCBvbiBzdWNjZXNzLgorICogXHJldHVybiAgICAgICAgIFxjIDEgb24gZmFpbHVyZS4KKyAqLworaW50IG1iZWR0bHNfY2NtX3NlbGZfdGVzdChpbnQgdmVyYm9zZSk7CisjZW5kaWYgLyogTUJFRFRMU19TRUxGX1RFU1QgJiYgTUJFRFRMU19BRVNfQyAqLworCisjaWZkZWYgX19jcGx1c3BsdXMKK30KKyNlbmRpZgorCisjZW5kaWYgLyogTUJFRFRMU19DQ01fSCAqLwpkaWZmIC0tZ2l0IGEvdGYtcHNhLWNyeXB0by9kcml2ZXJzL2J1aWx0aW4vaW5jbHVkZS9tYmVkdGxzL2NoYWNoYTIwLmggYi90Zi1wc2EtY3J5cHRvL2RyaXZlcnMvYnVpbHRpbi9pbmNsdWRlL21iZWR0bHMvY2hhY2hhMjAuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hYjcxOTVlCi0tLSAvZGV2L251bGwKKysrIGIvdGYtcHNhLWNyeXB0by9kcml2ZXJzL2J1aWx0aW4vaW5jbHVkZS9tYmVkdGxzL2NoYWNoYTIwLmgKQEAgLTAsMCArMSwxOTYgQEAKKy8qKgorICogXGZpbGUgY2hhY2hhMjAuaAorICoKKyAqIFxicmllZiAgIFRoaXMgZmlsZSBjb250YWlucyBDaGFDaGEyMCBkZWZpbml0aW9ucyBhbmQgZnVuY3Rpb25zLgorICoKKyAqICAgICAgICAgIENoYUNoYTIwIGlzIGEgc3RyZWFtIGNpcGhlciB0aGF0IGNhbiBlbmNyeXB0IGFuZCBkZWNyeXB0CisgKiAgICAgICAgICBpbmZvcm1hdGlvbi4gQ2hhQ2hhIHdhcyBjcmVhdGVkIGJ5IERhbmllbCBCZXJuc3RlaW4gYXMgYSB2YXJpYW50IG9mCisgKiAgICAgICAgICBpdHMgU2Fsc2EgY2lwaGVyIGh0dHBzOi8vY3IueXAudG8vY2hhY2hhL2NoYWNoYS0yMDA4MDEyOC5wZGYKKyAqICAgICAgICAgIENoYUNoYTIwIGlzIHRoZSB2YXJpYW50IHdpdGggMjAgcm91bmRzLCB0aGF0IHdhcyBhbHNvIHN0YW5kYXJkaXplZAorICogICAgICAgICAgaW4gUkZDIDc1MzkuCisgKgorICogXGF1dGhvciBEYW5pZWwgS2luZyA8ZGFtYWtpLmdoQGdtYWlsLmNvbT4KKyAqLworCisvKgorICogIENvcHlyaWdodCBUaGUgTWJlZCBUTFMgQ29udHJpYnV0b3JzCisgKiAgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjAgT1IgR1BMLTIuMC1vci1sYXRlcgorICovCisKKyNpZm5kZWYgTUJFRFRMU19DSEFDSEEyMF9ICisjZGVmaW5lIE1CRURUTFNfQ0hBQ0hBMjBfSAorI2luY2x1ZGUgIm1iZWR0bHMvcHJpdmF0ZV9hY2Nlc3MuaCIKKworI2luY2x1ZGUgIm1iZWR0bHMvYnVpbGRfaW5mby5oIgorCisjaW5jbHVkZSA8c3RkaW50Lmg+CisjaW5jbHVkZSA8c3RkZGVmLmg+CisKKy8qKiBJbnZhbGlkIGlucHV0IHBhcmFtZXRlcihzKS4gKi8KKyNkZWZpbmUgTUJFRFRMU19FUlJfQ0hBQ0hBMjBfQkFEX0lOUFVUX0RBVEEgICAgICAgICAtMHgwMDUxCisKKyNpZmRlZiBfX2NwbHVzcGx1cworZXh0ZXJuICJDIiB7CisjZW5kaWYKKwordHlwZWRlZiBzdHJ1Y3QgbWJlZHRsc19jaGFjaGEyMF9jb250ZXh0IHsKKyAgICB1aW50MzJfdCBNQkVEVExTX1BSSVZBVEUoc3RhdGUpWzE2XTsgICAgICAgICAgLyohIFRoZSBzdGF0ZSAoYmVmb3JlIHJvdW5kIG9wZXJhdGlvbnMpLiAqLworICAgIHVpbnQ4X3QgIE1CRURUTFNfUFJJVkFURShrZXlzdHJlYW04KVs2NF07ICAgICAvKiEgTGVmdG92ZXIga2V5c3RyZWFtIGJ5dGVzLiAqLworICAgIHNpemVfdCBNQkVEVExTX1BSSVZBVEUoa2V5c3RyZWFtX2J5dGVzX3VzZWQpOyAvKiEgTnVtYmVyIG9mIGtleXN0cmVhbSBieXRlcyBhbHJlYWR5IHVzZWQuICovCit9CittYmVkdGxzX2NoYWNoYTIwX2NvbnRleHQ7CisKKy8qKgorICogXGJyaWVmICAgICAgICAgICBUaGlzIGZ1bmN0aW9uIGluaXRpYWxpemVzIHRoZSBzcGVjaWZpZWQgQ2hhQ2hhMjAgY29udGV4dC4KKyAqCisgKiAgICAgICAgICAgICAgICAgIEl0IG11c3QgYmUgdGhlIGZpcnN0IEFQSSBjYWxsZWQgYmVmb3JlIHVzaW5nCisgKiAgICAgICAgICAgICAgICAgIHRoZSBjb250ZXh0LgorICoKKyAqICAgICAgICAgICAgICAgICAgSXQgaXMgdXN1YWxseSBmb2xsb3dlZCBieSBjYWxscyB0bworICogICAgICAgICAgICAgICAgICBcYyBtYmVkdGxzX2NoYWNoYTIwX3NldGtleSgpIGFuZAorICogICAgICAgICAgICAgICAgICBcYyBtYmVkdGxzX2NoYWNoYTIwX3N0YXJ0cygpLCB0aGVuIG9uZSBvciBtb3JlIGNhbGxzIHRvCisgKiAgICAgICAgICAgICAgICAgIHRvIFxjIG1iZWR0bHNfY2hhY2hhMjBfdXBkYXRlKCksIGFuZCBmaW5hbGx5IHRvCisgKiAgICAgICAgICAgICAgICAgIFxjIG1iZWR0bHNfY2hhY2hhMjBfZnJlZSgpLgorICoKKyAqIFxwYXJhbSBjdHggICAgICAgVGhlIENoYUNoYTIwIGNvbnRleHQgdG8gaW5pdGlhbGl6ZS4KKyAqICAgICAgICAgICAgICAgICAgVGhpcyBtdXN0IG5vdCBiZSBcYyBOVUxMLgorICovCit2b2lkIG1iZWR0bHNfY2hhY2hhMjBfaW5pdChtYmVkdGxzX2NoYWNoYTIwX2NvbnRleHQgKmN0eCk7CisKKy8qKgorICogXGJyaWVmICAgICAgICAgICBUaGlzIGZ1bmN0aW9uIHJlbGVhc2VzIGFuZCBjbGVhcnMgdGhlIHNwZWNpZmllZAorICogICAgICAgICAgICAgICAgICBDaGFDaGEyMCBjb250ZXh0LgorICoKKyAqIFxwYXJhbSBjdHggICAgICAgVGhlIENoYUNoYTIwIGNvbnRleHQgdG8gY2xlYXIuIFRoaXMgbWF5IGJlIFxjIE5VTEwsCisgKiAgICAgICAgICAgICAgICAgIGluIHdoaWNoIGNhc2UgdGhpcyBmdW5jdGlvbiBpcyBhIG5vLW9wLiBJZiBpdCBpcyBub3QKKyAqICAgICAgICAgICAgICAgICAgXGMgTlVMTCwgaXQgbXVzdCBwb2ludCB0byBhbiBpbml0aWFsaXplZCBjb250ZXh0LgorICoKKyAqLwordm9pZCBtYmVkdGxzX2NoYWNoYTIwX2ZyZWUobWJlZHRsc19jaGFjaGEyMF9jb250ZXh0ICpjdHgpOworCisvKioKKyAqIFxicmllZiAgICAgICAgICAgVGhpcyBmdW5jdGlvbiBzZXRzIHRoZSBlbmNyeXB0aW9uL2RlY3J5cHRpb24ga2V5LgorICoKKyAqIFxub3RlICAgICAgICAgICAgQWZ0ZXIgdXNpbmcgdGhpcyBmdW5jdGlvbiwgeW91IG11c3QgYWxzbyBjYWxsCisgKiAgICAgICAgICAgICAgICAgIFxjIG1iZWR0bHNfY2hhY2hhMjBfc3RhcnRzKCkgdG8gc2V0IGEgbm9uY2UgYmVmb3JlIHlvdQorICogICAgICAgICAgICAgICAgICBzdGFydCBlbmNyeXB0aW5nL2RlY3J5cHRpbmcgZGF0YSB3aXRoCisgKiAgICAgICAgICAgICAgICAgIFxjIG1iZWR0bHNfY2hhY2hhX3VwZGF0ZSgpLgorICoKKyAqIFxwYXJhbSBjdHggICAgICAgVGhlIENoYUNoYTIwIGNvbnRleHQgdG8gd2hpY2ggdGhlIGtleSBzaG91bGQgYmUgYm91bmQuCisgKiAgICAgICAgICAgICAgICAgIEl0IG11c3QgYmUgaW5pdGlhbGl6ZWQuCisgKiBccGFyYW0ga2V5ICAgICAgIFRoZSBlbmNyeXB0aW9uL2RlY3J5cHRpb24ga2V5LiBUaGlzIG11c3QgYmUgXGMgMzIgQnl0ZXMKKyAqICAgICAgICAgICAgICAgICAgaW4gbGVuZ3RoLgorICoKKyAqIFxyZXR1cm4gICAgICAgICAgXGMgMCBvbiBzdWNjZXNzLgorICogXHJldHVybiAgICAgICAgICAjTUJFRFRMU19FUlJfQ0hBQ0hBMjBfQkFEX0lOUFVUX0RBVEEgaWYgY3R4IG9yIGtleSBpcyBOVUxMLgorICovCitpbnQgbWJlZHRsc19jaGFjaGEyMF9zZXRrZXkobWJlZHRsc19jaGFjaGEyMF9jb250ZXh0ICpjdHgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdW5zaWduZWQgY2hhciBrZXlbMzJdKTsKKworLyoqCisgKiBcYnJpZWYgICAgICAgICAgIFRoaXMgZnVuY3Rpb24gc2V0cyB0aGUgbm9uY2UgYW5kIGluaXRpYWwgY291bnRlciB2YWx1ZS4KKyAqCisgKiBcbm90ZSAgICAgICAgICAgIEEgQ2hhQ2hhMjAgY29udGV4dCBjYW4gYmUgcmUtdXNlZCB3aXRoIHRoZSBzYW1lIGtleSBieQorICogICAgICAgICAgICAgICAgICBjYWxsaW5nIHRoaXMgZnVuY3Rpb24gdG8gY2hhbmdlIHRoZSBub25jZS4KKyAqCisgKiBcd2FybmluZyAgICAgICAgIFlvdSBtdXN0IG5ldmVyIHVzZSB0aGUgc2FtZSBub25jZSB0d2ljZSB3aXRoIHRoZSBzYW1lIGtleS4KKyAqICAgICAgICAgICAgICAgICAgVGhpcyB3b3VsZCB2b2lkIGFueSBjb25maWRlbnRpYWxpdHkgZ3VhcmFudGVlcyBmb3IgdGhlCisgKiAgICAgICAgICAgICAgICAgIG1lc3NhZ2VzIGVuY3J5cHRlZCB3aXRoIHRoZSBzYW1lIG5vbmNlIGFuZCBrZXkuCisgKgorICogXHBhcmFtIGN0eCAgICAgICBUaGUgQ2hhQ2hhMjAgY29udGV4dCB0byB3aGljaCB0aGUgbm9uY2Ugc2hvdWxkIGJlIGJvdW5kLgorICogICAgICAgICAgICAgICAgICBJdCBtdXN0IGJlIGluaXRpYWxpemVkIGFuZCBib3VuZCB0byBhIGtleS4KKyAqIFxwYXJhbSBub25jZSAgICAgVGhlIG5vbmNlLiBUaGlzIG11c3QgYmUgXGMgMTIgQnl0ZXMgaW4gc2l6ZS4KKyAqIFxwYXJhbSBjb3VudGVyICAgVGhlIGluaXRpYWwgY291bnRlciB2YWx1ZS4gVGhpcyBpcyB1c3VhbGx5IFxjIDAuCisgKgorICogXHJldHVybiAgICAgICAgICBcYyAwIG9uIHN1Y2Nlc3MuCisgKiBccmV0dXJuICAgICAgICAgICNNQkVEVExTX0VSUl9DSEFDSEEyMF9CQURfSU5QVVRfREFUQSBpZiBjdHggb3Igbm9uY2UgaXMKKyAqICAgICAgICAgICAgICAgICAgTlVMTC4KKyAqLworaW50IG1iZWR0bHNfY2hhY2hhMjBfc3RhcnRzKG1iZWR0bHNfY2hhY2hhMjBfY29udGV4dCAqY3R4LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgbm9uY2VbMTJdLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQzMl90IGNvdW50ZXIpOworCisvKioKKyAqIFxicmllZiAgICAgICAgICAgVGhpcyBmdW5jdGlvbiBlbmNyeXB0cyBvciBkZWNyeXB0cyBkYXRhLgorICoKKyAqICAgICAgICAgICAgICAgICAgU2luY2UgQ2hhQ2hhMjAgaXMgYSBzdHJlYW0gY2lwaGVyLCB0aGUgc2FtZSBvcGVyYXRpb24gaXMKKyAqICAgICAgICAgICAgICAgICAgdXNlZCBmb3IgZW5jcnlwdGluZyBhbmQgZGVjcnlwdGluZyBkYXRhLgorICoKKyAqIFxub3RlICAgICAgICAgICAgVGhlIFxwIGlucHV0IGFuZCBccCBvdXRwdXQgcG9pbnRlcnMgbXVzdCBlaXRoZXIgYmUgZXF1YWwgb3IKKyAqICAgICAgICAgICAgICAgICAgcG9pbnQgdG8gbm9uLW92ZXJsYXBwaW5nIGJ1ZmZlcnMuCisgKgorICogXG5vdGUgICAgICAgICAgICBcYyBtYmVkdGxzX2NoYWNoYTIwX3NldGtleSgpIGFuZAorICogICAgICAgICAgICAgICAgICBcYyBtYmVkdGxzX2NoYWNoYTIwX3N0YXJ0cygpIG11c3QgYmUgY2FsbGVkIGF0IGxlYXN0IG9uY2UKKyAqICAgICAgICAgICAgICAgICAgdG8gc2V0dXAgdGhlIGNvbnRleHQgYmVmb3JlIHRoaXMgZnVuY3Rpb24gY2FuIGJlIGNhbGxlZC4KKyAqCisgKiBcbm90ZSAgICAgICAgICAgIFRoaXMgZnVuY3Rpb24gY2FuIGJlIGNhbGxlZCBtdWx0aXBsZSB0aW1lcyBpbiBhIHJvdyBpbgorICogICAgICAgICAgICAgICAgICBvcmRlciB0byBlbmNyeXB0IG9mIGRlY3J5cHQgZGF0YSBwaWVjZXdpc2Ugd2l0aCB0aGUgc2FtZQorICogICAgICAgICAgICAgICAgICBrZXkgYW5kIG5vbmNlLgorICoKKyAqIFxwYXJhbSBjdHggICAgICAgVGhlIENoYUNoYTIwIGNvbnRleHQgdG8gdXNlIGZvciBlbmNyeXB0aW9uIG9yIGRlY3J5cHRpb24uCisgKiAgICAgICAgICAgICAgICAgIEl0IG11c3QgYmUgaW5pdGlhbGl6ZWQgYW5kIGJvdW5kIHRvIGEga2V5IGFuZCBub25jZS4KKyAqIFxwYXJhbSBzaXplICAgICAgVGhlIGxlbmd0aCBvZiB0aGUgaW5wdXQgZGF0YSBpbiBCeXRlcy4KKyAqIFxwYXJhbSBpbnB1dCAgICAgVGhlIGJ1ZmZlciBob2xkaW5nIHRoZSBpbnB1dCBkYXRhLgorICogICAgICAgICAgICAgICAgICBUaGlzIHBvaW50ZXIgY2FuIGJlIFxjIE5VTEwgaWYgYHNpemUgPT0gMGAuCisgKiBccGFyYW0gb3V0cHV0ICAgIFRoZSBidWZmZXIgaG9sZGluZyB0aGUgb3V0cHV0IGRhdGEuCisgKiAgICAgICAgICAgICAgICAgIFRoaXMgbXVzdCBiZSBhYmxlIHRvIGhvbGQgXHAgc2l6ZSBCeXRlcy4KKyAqICAgICAgICAgICAgICAgICAgVGhpcyBwb2ludGVyIGNhbiBiZSBcYyBOVUxMIGlmIGBzaXplID09IDBgLgorICoKKyAqIFxyZXR1cm4gICAgICAgICAgXGMgMCBvbiBzdWNjZXNzLgorICogXHJldHVybiAgICAgICAgICBBIG5lZ2F0aXZlIGVycm9yIGNvZGUgb24gZmFpbHVyZS4KKyAqLworaW50IG1iZWR0bHNfY2hhY2hhMjBfdXBkYXRlKG1iZWR0bHNfY2hhY2hhMjBfY29udGV4dCAqY3R4LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBzaXplLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgKmlucHV0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGNoYXIgKm91dHB1dCk7CisKKy8qKgorICogXGJyaWVmICAgICAgICAgICBUaGlzIGZ1bmN0aW9uIGVuY3J5cHRzIG9yIGRlY3J5cHRzIGRhdGEgd2l0aCBDaGFDaGEyMCBhbmQKKyAqICAgICAgICAgICAgICAgICAgdGhlIGdpdmVuIGtleSBhbmQgbm9uY2UuCisgKgorICogICAgICAgICAgICAgICAgICBTaW5jZSBDaGFDaGEyMCBpcyBhIHN0cmVhbSBjaXBoZXIsIHRoZSBzYW1lIG9wZXJhdGlvbiBpcworICogICAgICAgICAgICAgICAgICB1c2VkIGZvciBlbmNyeXB0aW5nIGFuZCBkZWNyeXB0aW5nIGRhdGEuCisgKgorICogXHdhcm5pbmcgICAgICAgICBZb3UgbXVzdCBuZXZlciB1c2UgdGhlIHNhbWUgKGtleSwgbm9uY2UpIHBhaXIgbW9yZSB0aGFuCisgKiAgICAgICAgICAgICAgICAgIG9uY2UuIFRoaXMgd291bGQgdm9pZCBhbnkgY29uZmlkZW50aWFsaXR5IGd1YXJhbnRlZXMgZm9yCisgKiAgICAgICAgICAgICAgICAgIHRoZSBtZXNzYWdlcyBlbmNyeXB0ZWQgd2l0aCB0aGUgc2FtZSBub25jZSBhbmQga2V5LgorICoKKyAqIFxub3RlICAgICAgICAgICAgVGhlIFxwIGlucHV0IGFuZCBccCBvdXRwdXQgcG9pbnRlcnMgbXVzdCBlaXRoZXIgYmUgZXF1YWwgb3IKKyAqICAgICAgICAgICAgICAgICAgcG9pbnQgdG8gbm9uLW92ZXJsYXBwaW5nIGJ1ZmZlcnMuCisgKgorICogXHBhcmFtIGtleSAgICAgICBUaGUgZW5jcnlwdGlvbi9kZWNyeXB0aW9uIGtleS4KKyAqICAgICAgICAgICAgICAgICAgVGhpcyBtdXN0IGJlIFxjIDMyIEJ5dGVzIGluIGxlbmd0aC4KKyAqIFxwYXJhbSBub25jZSAgICAgVGhlIG5vbmNlLiBUaGlzIG11c3QgYmUgXGMgMTIgQnl0ZXMgaW4gc2l6ZS4KKyAqIFxwYXJhbSBjb3VudGVyICAgVGhlIGluaXRpYWwgY291bnRlciB2YWx1ZS4gVGhpcyBpcyB1c3VhbGx5IFxjIDAuCisgKiBccGFyYW0gc2l6ZSAgICAgIFRoZSBsZW5ndGggb2YgdGhlIGlucHV0IGRhdGEgaW4gQnl0ZXMuCisgKiBccGFyYW0gaW5wdXQgICAgIFRoZSBidWZmZXIgaG9sZGluZyB0aGUgaW5wdXQgZGF0YS4KKyAqICAgICAgICAgICAgICAgICAgVGhpcyBwb2ludGVyIGNhbiBiZSBcYyBOVUxMIGlmIGBzaXplID09IDBgLgorICogXHBhcmFtIG91dHB1dCAgICBUaGUgYnVmZmVyIGhvbGRpbmcgdGhlIG91dHB1dCBkYXRhLgorICogICAgICAgICAgICAgICAgICBUaGlzIG11c3QgYmUgYWJsZSB0byBob2xkIFxwIHNpemUgQnl0ZXMuCisgKiAgICAgICAgICAgICAgICAgIFRoaXMgcG9pbnRlciBjYW4gYmUgXGMgTlVMTCBpZiBgc2l6ZSA9PSAwYC4KKyAqCisgKiBccmV0dXJuICAgICAgICAgIFxjIDAgb24gc3VjY2Vzcy4KKyAqIFxyZXR1cm4gICAgICAgICAgQSBuZWdhdGl2ZSBlcnJvciBjb2RlIG9uIGZhaWx1cmUuCisgKi8KK2ludCBtYmVkdGxzX2NoYWNoYTIwX2NyeXB0KGNvbnN0IHVuc2lnbmVkIGNoYXIga2V5WzMyXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgbm9uY2VbMTJdLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDMyX3QgY291bnRlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBzaXplLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdW5zaWduZWQgY2hhciAqaW5wdXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBjaGFyICpvdXRwdXQpOworCisjaWYgZGVmaW5lZChNQkVEVExTX1NFTEZfVEVTVCkKKy8qKgorICogXGJyaWVmICAgICAgICAgICBUaGUgQ2hhQ2hhMjAgY2hlY2t1cCByb3V0aW5lLgorICoKKyAqIFxyZXR1cm4gICAgICAgICAgXGMgMCBvbiBzdWNjZXNzLgorICogXHJldHVybiAgICAgICAgICBcYyAxIG9uIGZhaWx1cmUuCisgKi8KK2ludCBtYmVkdGxzX2NoYWNoYTIwX3NlbGZfdGVzdChpbnQgdmVyYm9zZSk7CisjZW5kaWYgLyogTUJFRFRMU19TRUxGX1RFU1QgKi8KKworI2lmZGVmIF9fY3BsdXNwbHVzCit9CisjZW5kaWYKKworI2VuZGlmIC8qIE1CRURUTFNfQ0hBQ0hBMjBfSCAqLwpkaWZmIC0tZ2l0IGEvdGYtcHNhLWNyeXB0by9kcml2ZXJzL2J1aWx0aW4vaW5jbHVkZS9tYmVkdGxzL2NoYWNoYXBvbHkuaCBiL3RmLXBzYS1jcnlwdG8vZHJpdmVycy9idWlsdGluL2luY2x1ZGUvbWJlZHRscy9jaGFjaGFwb2x5LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNmMyMzZmZQotLS0gL2Rldi9udWxsCisrKyBiL3RmLXBzYS1jcnlwdG8vZHJpdmVycy9idWlsdGluL2luY2x1ZGUvbWJlZHRscy9jaGFjaGFwb2x5LmgKQEAgLTAsMCArMSwzMzYgQEAKKy8qKgorICogXGZpbGUgY2hhY2hhcG9seS5oCisgKgorICogXGJyaWVmICAgVGhpcyBmaWxlIGNvbnRhaW5zIHRoZSBBRUFELUNoYUNoYTIwLVBvbHkxMzA1IGRlZmluaXRpb25zIGFuZAorICogICAgICAgICAgZnVuY3Rpb25zLgorICoKKyAqICAgICAgICAgIENoYUNoYTIwLVBvbHkxMzA1IGlzIGFuIGFsZ29yaXRobSBmb3IgQXV0aGVudGljYXRlZCBFbmNyeXB0aW9uCisgKiAgICAgICAgICB3aXRoIEFzc29jaWF0ZWQgRGF0YSAoQUVBRCkgdGhhdCBjYW4gYmUgdXNlZCB0byBlbmNyeXB0IGFuZAorICogICAgICAgICAgYXV0aGVudGljYXRlIGRhdGEuIEl0IGlzIGJhc2VkIG9uIENoYUNoYTIwIGFuZCBQb2x5MTMwNSBieSBEYW5pZWwKKyAqICAgICAgICAgIEJlcm5zdGVpbiBhbmQgd2FzIHN0YW5kYXJkaXplZCBpbiBSRkMgNzUzOS4KKyAqCisgKiBcYXV0aG9yIERhbmllbCBLaW5nIDxkYW1ha2kuZ2hAZ21haWwuY29tPgorICovCisKKy8qCisgKiAgQ29weXJpZ2h0IFRoZSBNYmVkIFRMUyBDb250cmlidXRvcnMKKyAqICBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMCBPUiBHUEwtMi4wLW9yLWxhdGVyCisgKi8KKworI2lmbmRlZiBNQkVEVExTX0NIQUNIQVBPTFlfSAorI2RlZmluZSBNQkVEVExTX0NIQUNIQVBPTFlfSAorI2luY2x1ZGUgIm1iZWR0bHMvcHJpdmF0ZV9hY2Nlc3MuaCIKKworI2luY2x1ZGUgIm1iZWR0bHMvYnVpbGRfaW5mby5oIgorCisvKiBmb3Igc2hhcmVkIGVycm9yIGNvZGVzICovCisjaW5jbHVkZSAibWJlZHRscy9wb2x5MTMwNS5oIgorCisvKiogVGhlIHJlcXVlc3RlZCBvcGVyYXRpb24gaXMgbm90IHBlcm1pdHRlZCBpbiB0aGUgY3VycmVudCBzdGF0ZS4gKi8KKyNkZWZpbmUgTUJFRFRMU19FUlJfQ0hBQ0hBUE9MWV9CQURfU1RBVEUgICAgICAgICAgICAtMHgwMDU0CisvKiogQXV0aGVudGljYXRlZCBkZWNyeXB0aW9uIGZhaWxlZDogZGF0YSB3YXMgbm90IGF1dGhlbnRpYy4gKi8KKyNkZWZpbmUgTUJFRFRMU19FUlJfQ0hBQ0hBUE9MWV9BVVRIX0ZBSUxFRCAgICAgICAgICAtMHgwMDU2CisKKyNpZmRlZiBfX2NwbHVzcGx1cworZXh0ZXJuICJDIiB7CisjZW5kaWYKKwordHlwZWRlZiBlbnVtIHsKKyAgICBNQkVEVExTX0NIQUNIQVBPTFlfRU5DUllQVCwgICAgIC8qKjwgVGhlIG1vZGUgdmFsdWUgZm9yIHBlcmZvcm1pbmcgZW5jcnlwdGlvbi4gKi8KKyAgICBNQkVEVExTX0NIQUNIQVBPTFlfREVDUllQVCAgICAgIC8qKjwgVGhlIG1vZGUgdmFsdWUgZm9yIHBlcmZvcm1pbmcgZGVjcnlwdGlvbi4gKi8KK30KK21iZWR0bHNfY2hhY2hhcG9seV9tb2RlX3Q7CisKKyNpbmNsdWRlICJtYmVkdGxzL2NoYWNoYTIwLmgiCisKK3R5cGVkZWYgc3RydWN0IG1iZWR0bHNfY2hhY2hhcG9seV9jb250ZXh0IHsKKyAgICBtYmVkdGxzX2NoYWNoYTIwX2NvbnRleHQgTUJFRFRMU19QUklWQVRFKGNoYWNoYTIwX2N0eCk7ICAvKio8IFRoZSBDaGFDaGEyMCBjb250ZXh0LiAqLworICAgIG1iZWR0bHNfcG9seTEzMDVfY29udGV4dCBNQkVEVExTX1BSSVZBVEUocG9seTEzMDVfY3R4KTsgIC8qKjwgVGhlIFBvbHkxMzA1IGNvbnRleHQuICovCisgICAgdWludDY0X3QgTUJFRFRMU19QUklWQVRFKGFhZF9sZW4pOyAgICAgICAgICAgICAgICAgICAgICAgLyoqPCBUaGUgbGVuZ3RoIChieXRlcykgb2YgdGhlIEFkZGl0aW9uYWwgQXV0aGVudGljYXRlZCBEYXRhLiAqLworICAgIHVpbnQ2NF90IE1CRURUTFNfUFJJVkFURShjaXBoZXJ0ZXh0X2xlbik7ICAgICAgICAgICAgICAgIC8qKjwgVGhlIGxlbmd0aCAoYnl0ZXMpIG9mIHRoZSBjaXBoZXJ0ZXh0LiAqLworICAgIGludCBNQkVEVExTX1BSSVZBVEUoc3RhdGUpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qKjwgVGhlIGN1cnJlbnQgc3RhdGUgb2YgdGhlIGNvbnRleHQuICovCisgICAgbWJlZHRsc19jaGFjaGFwb2x5X21vZGVfdCBNQkVEVExTX1BSSVZBVEUobW9kZSk7ICAgICAgICAgLyoqPCBDaXBoZXIgbW9kZSAoZW5jcnlwdCBvciBkZWNyeXB0KS4gKi8KK30KK21iZWR0bHNfY2hhY2hhcG9seV9jb250ZXh0OworCisvKioKKyAqIFxicmllZiAgICAgICAgICAgVGhpcyBmdW5jdGlvbiBpbml0aWFsaXplcyB0aGUgc3BlY2lmaWVkIENoYUNoYTIwLVBvbHkxMzA1IGNvbnRleHQuCisgKgorICogICAgICAgICAgICAgICAgICBJdCBtdXN0IGJlIHRoZSBmaXJzdCBBUEkgY2FsbGVkIGJlZm9yZSB1c2luZworICogICAgICAgICAgICAgICAgICB0aGUgY29udGV4dC4gSXQgbXVzdCBiZSBmb2xsb3dlZCBieSBhIGNhbGwgdG8KKyAqICAgICAgICAgICAgICAgICAgXGMgbWJlZHRsc19jaGFjaGFwb2x5X3NldGtleSgpIGJlZm9yZSBhbnkgb3BlcmF0aW9uIGNhbiBiZQorICogICAgICAgICAgICAgICAgICBkb25lLCBhbmQgdG8gXGMgbWJlZHRsc19jaGFjaGFwb2x5X2ZyZWUoKSBvbmNlIGFsbAorICogICAgICAgICAgICAgICAgICBvcGVyYXRpb25zIHdpdGggdGhhdCBjb250ZXh0IGhhdmUgYmVlbiBmaW5pc2hlZC4KKyAqCisgKiAgICAgICAgICAgICAgICAgIEluIG9yZGVyIHRvIGVuY3J5cHQgb3IgZGVjcnlwdCBmdWxsIG1lc3NhZ2VzIGF0IG9uY2UsIGZvcgorICogICAgICAgICAgICAgICAgICBlYWNoIG1lc3NhZ2UgeW91IHNob3VsZCBtYWtlIGEgc2luZ2xlIGNhbGwgdG8KKyAqICAgICAgICAgICAgICAgICAgXGMgbWJlZHRsc19jaGFjaGFwb2x5X2NyeXB0X2FuZF90YWcoKSBvcgorICogICAgICAgICAgICAgICAgICBcYyBtYmVkdGxzX2NoYWNoYXBvbHlfYXV0aF9kZWNyeXB0KCkuCisgKgorICogICAgICAgICAgICAgICAgICBJbiBvcmRlciB0byBlbmNyeXB0IG1lc3NhZ2VzIHBpZWNld2lzZSwgZm9yIGVhY2gKKyAqICAgICAgICAgICAgICAgICAgbWVzc2FnZSB5b3Ugc2hvdWxkIG1ha2UgYSBjYWxsIHRvCisgKiAgICAgICAgICAgICAgICAgIFxjIG1iZWR0bHNfY2hhY2hhcG9seV9zdGFydHMoKSwgdGhlbiAwIG9yIG1vcmUgY2FsbHMgdG8KKyAqICAgICAgICAgICAgICAgICAgXGMgbWJlZHRsc19jaGFjaGFwb2x5X3VwZGF0ZV9hYWQoKSwgdGhlbiAwIG9yIG1vcmUgY2FsbHMgdG8KKyAqICAgICAgICAgICAgICAgICAgXGMgbWJlZHRsc19jaGFjaGFwb2x5X3VwZGF0ZSgpLCB0aGVuIG9uZSBjYWxsIHRvCisgKiAgICAgICAgICAgICAgICAgIFxjIG1iZWR0bHNfY2hhY2hhcG9seV9maW5pc2goKS4KKyAqCisgKiBcd2FybmluZyAgICAgICAgIERlY3J5cHRpb24gd2l0aCB0aGUgcGllY2V3aXNlIEFQSSBpcyBkaXNjb3VyYWdlZCEgQWx3YXlzCisgKiAgICAgICAgICAgICAgICAgIHVzZSBcYyBtYmVkdGxzX2NoYWNoYXBvbHlfYXV0aF9kZWNyeXB0KCkgd2hlbiBwb3NzaWJsZSEKKyAqCisgKiAgICAgICAgICAgICAgICAgIElmIGhvd2V2ZXIgdGhpcyBpcyBub3QgcG9zc2libGUgYmVjYXVzZSB0aGUgZGF0YSBpcyB0b28KKyAqICAgICAgICAgICAgICAgICAgbGFyZ2UgdG8gZml0IGluIG1lbW9yeSwgeW91IG5lZWQgdG86CisgKgorICogICAgICAgICAgICAgICAgICAtIGNhbGwgXGMgbWJlZHRsc19jaGFjaGFwb2x5X3N0YXJ0cygpIGFuZCAoaWYgbmVlZGVkKQorICogICAgICAgICAgICAgICAgICBcYyBtYmVkdGxzX2NoYWNoYXBvbHlfdXBkYXRlX2FhZCgpIGFzIGFib3ZlLAorICogICAgICAgICAgICAgICAgICAtIGNhbGwgXGMgbWJlZHRsc19jaGFjaGFwb2x5X3VwZGF0ZSgpIG11bHRpcGxlIHRpbWVzIGFuZAorICogICAgICAgICAgICAgICAgICBlbnN1cmUgaXRzIG91dHB1dCAodGhlIHBsYWludGV4dCkgaXMgTk9UIHVzZWQgaW4gYW55IG90aGVyCisgKiAgICAgICAgICAgICAgICAgIHdheSB0aGFuIHBsYWNpbmcgaXQgaW4gdGVtcG9yYXJ5IHN0b3JhZ2UgYXQgdGhpcyBwb2ludCwKKyAqICAgICAgICAgICAgICAgICAgLSBjYWxsIFxjIG1iZWR0bHNfY2hhY2hhcG9seV9maW5pc2goKSB0byBjb21wdXRlIHRoZQorICogICAgICAgICAgICAgICAgICBhdXRoZW50aWNhdGlvbiB0YWcgYW5kIGNvbXBhcmVkIGl0IGluIGNvbnN0YW50IHRpbWUgdG8gdGhlCisgKiAgICAgICAgICAgICAgICAgIHRhZyByZWNlaXZlZCB3aXRoIHRoZSBjaXBoZXJ0ZXh0LgorICoKKyAqICAgICAgICAgICAgICAgICAgSWYgdGhlIHRhZ3MgYXJlIG5vdCBlcXVhbCwgeW91IG11c3QgaW1tZWRpYXRlbHkgZGlzY2FyZAorICogICAgICAgICAgICAgICAgICBhbGwgcHJldmlvdXMgb3V0cHV0cyBvZiBcYyBtYmVkdGxzX2NoYWNoYXBvbHlfdXBkYXRlKCksCisgKiAgICAgICAgICAgICAgICAgIG90aGVyd2lzZSB5b3UgY2FuIG5vdyBzYWZlbHkgdXNlIHRoZSBwbGFpbnRleHQuCisgKgorICogXHBhcmFtIGN0eCAgICAgICBUaGUgQ2hhY2hhUG9seSBjb250ZXh0IHRvIGluaXRpYWxpemUuIE11c3Qgbm90IGJlIFxjIE5VTEwuCisgKi8KK3ZvaWQgbWJlZHRsc19jaGFjaGFwb2x5X2luaXQobWJlZHRsc19jaGFjaGFwb2x5X2NvbnRleHQgKmN0eCk7CisKKy8qKgorICogXGJyaWVmICAgICAgICAgICBUaGlzIGZ1bmN0aW9uIHJlbGVhc2VzIGFuZCBjbGVhcnMgdGhlIHNwZWNpZmllZAorICogICAgICAgICAgICAgICAgICBDaGFDaGEyMC1Qb2x5MTMwNSBjb250ZXh0LgorICoKKyAqIFxwYXJhbSBjdHggICAgICAgVGhlIENoYWNoYVBvbHkgY29udGV4dCB0byBjbGVhci4gVGhpcyBtYXkgYmUgXGMgTlVMTCwgaW4gd2hpY2gKKyAqICAgICAgICAgICAgICAgICAgY2FzZSB0aGlzIGZ1bmN0aW9uIGlzIGEgbm8tb3AuCisgKi8KK3ZvaWQgbWJlZHRsc19jaGFjaGFwb2x5X2ZyZWUobWJlZHRsc19jaGFjaGFwb2x5X2NvbnRleHQgKmN0eCk7CisKKy8qKgorICogXGJyaWVmICAgICAgICAgICBUaGlzIGZ1bmN0aW9uIHNldHMgdGhlIENoYUNoYTIwLVBvbHkxMzA1CisgKiAgICAgICAgICAgICAgICAgIHN5bW1ldHJpYyBlbmNyeXB0aW9uIGtleS4KKyAqCisgKiBccGFyYW0gY3R4ICAgICAgIFRoZSBDaGFDaGEyMC1Qb2x5MTMwNSBjb250ZXh0IHRvIHdoaWNoIHRoZSBrZXkgc2hvdWxkIGJlCisgKiAgICAgICAgICAgICAgICAgIGJvdW5kLiBUaGlzIG11c3QgYmUgaW5pdGlhbGl6ZWQuCisgKiBccGFyYW0ga2V5ICAgICAgIFRoZSBcYyAyNTYgQml0IChcYyAzMiBCeXRlcykga2V5LgorICoKKyAqIFxyZXR1cm4gICAgICAgICAgXGMgMCBvbiBzdWNjZXNzLgorICogXHJldHVybiAgICAgICAgICBBIG5lZ2F0aXZlIGVycm9yIGNvZGUgb24gZmFpbHVyZS4KKyAqLworaW50IG1iZWR0bHNfY2hhY2hhcG9seV9zZXRrZXkobWJlZHRsc19jaGFjaGFwb2x5X2NvbnRleHQgKmN0eCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIga2V5WzMyXSk7CisKKy8qKgorICogXGJyaWVmICAgICAgICAgICBUaGlzIGZ1bmN0aW9uIHN0YXJ0cyBhIENoYUNoYTIwLVBvbHkxMzA1IGVuY3J5cHRpb24gb3IKKyAqICAgICAgICAgICAgICAgICAgZGVjcnlwdGlvbiBvcGVyYXRpb24uCisgKgorICogXHdhcm5pbmcgICAgICAgICBZb3UgbXVzdCBuZXZlciB1c2UgdGhlIHNhbWUgbm9uY2UgdHdpY2Ugd2l0aCB0aGUgc2FtZSBrZXkuCisgKiAgICAgICAgICAgICAgICAgIFRoaXMgd291bGQgdm9pZCBhbnkgY29uZmlkZW50aWFsaXR5IGFuZCBhdXRoZW50aWNpdHkKKyAqICAgICAgICAgICAgICAgICAgZ3VhcmFudGVlcyBmb3IgdGhlIG1lc3NhZ2VzIGVuY3J5cHRlZCB3aXRoIHRoZSBzYW1lIG5vbmNlCisgKiAgICAgICAgICAgICAgICAgIGFuZCBrZXkuCisgKgorICogXG5vdGUgICAgICAgICAgICBJZiB0aGUgY29udGV4dCBpcyBiZWluZyB1c2VkIGZvciBBQUQgb25seSAobm8gZGF0YSB0bworICogICAgICAgICAgICAgICAgICBlbmNyeXB0IG9yIGRlY3J5cHQpIHRoZW4gXHAgbW9kZSBjYW4gYmUgc2V0IHRvIGFueSB2YWx1ZS4KKyAqCisgKiBcd2FybmluZyAgICAgICAgIERlY3J5cHRpb24gd2l0aCB0aGUgcGllY2V3aXNlIEFQSSBpcyBkaXNjb3VyYWdlZCwgc2VlIHRoZQorICogICAgICAgICAgICAgICAgICB3YXJuaW5nIG9uIFxjIG1iZWR0bHNfY2hhY2hhcG9seV9pbml0KCkuCisgKgorICogXHBhcmFtIGN0eCAgICAgICBUaGUgQ2hhQ2hhMjAtUG9seTEzMDUgY29udGV4dC4gVGhpcyBtdXN0IGJlIGluaXRpYWxpemVkCisgKiAgICAgICAgICAgICAgICAgIGFuZCBib3VuZCB0byBhIGtleS4KKyAqIFxwYXJhbSBub25jZSAgICAgVGhlIG5vbmNlL0lWIHRvIHVzZSBmb3IgdGhlIG1lc3NhZ2UuCisgKiAgICAgICAgICAgICAgICAgIFRoaXMgbXVzdCBiZSBhIHJlYWRhYmxlIGJ1ZmZlciBvZiBsZW5ndGggXGMgMTIgQnl0ZXMuCisgKiBccGFyYW0gbW9kZSAgICAgIFRoZSBvcGVyYXRpb24gdG8gcGVyZm9ybTogI01CRURUTFNfQ0hBQ0hBUE9MWV9FTkNSWVBUIG9yCisgKiAgICAgICAgICAgICAgICAgICNNQkVEVExTX0NIQUNIQVBPTFlfREVDUllQVCAoZGlzY291cmFnZWQsIHNlZSB3YXJuaW5nKS4KKyAqCisgKiBccmV0dXJuICAgICAgICAgIFxjIDAgb24gc3VjY2Vzcy4KKyAqIFxyZXR1cm4gICAgICAgICAgQSBuZWdhdGl2ZSBlcnJvciBjb2RlIG9uIGZhaWx1cmUuCisgKi8KK2ludCBtYmVkdGxzX2NoYWNoYXBvbHlfc3RhcnRzKG1iZWR0bHNfY2hhY2hhcG9seV9jb250ZXh0ICpjdHgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1bnNpZ25lZCBjaGFyIG5vbmNlWzEyXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1iZWR0bHNfY2hhY2hhcG9seV9tb2RlX3QgbW9kZSk7CisKKy8qKgorICogXGJyaWVmICAgICAgICAgICBUaGlzIGZ1bmN0aW9uIGZlZWRzIGFkZGl0aW9uYWwgZGF0YSB0byBiZSBhdXRoZW50aWNhdGVkCisgKiAgICAgICAgICAgICAgICAgIGludG8gYW4gb25nb2luZyBDaGFDaGEyMC1Qb2x5MTMwNSBvcGVyYXRpb24uCisgKgorICogICAgICAgICAgICAgICAgICBUaGUgQWRkaXRpb25hbCBBdXRoZW50aWNhdGVkIERhdGEgKEFBRCksIGFsc28gY2FsbGVkCisgKiAgICAgICAgICAgICAgICAgIEFzc29jaWF0ZWQgRGF0YSAoQUQpIGlzIG9ubHkgYXV0aGVudGljYXRlZCBidXQgbm90CisgKiAgICAgICAgICAgICAgICAgIGVuY3J5cHRlZCBub3IgaW5jbHVkZWQgaW4gdGhlIGVuY3J5cHRlZCBvdXRwdXQuIEl0IGlzCisgKiAgICAgICAgICAgICAgICAgIHVzdWFsbHkgdHJhbnNtaXR0ZWQgc2VwYXJhdGVseSBmcm9tIHRoZSBjaXBoZXJ0ZXh0IG9yCisgKiAgICAgICAgICAgICAgICAgIGNvbXB1dGVkIGxvY2FsbHkgYnkgZWFjaCBwYXJ0eS4KKyAqCisgKiBcbm90ZSAgICAgICAgICAgIFRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIGJlZm9yZSBkYXRhIGlzIGVuY3J5cHRlZC9kZWNyeXB0ZWQuCisgKiAgICAgICAgICAgICAgICAgIEkuZS4gY2FsbCB0aGlzIGZ1bmN0aW9uIHRvIHByb2Nlc3MgdGhlIEFBRCBiZWZvcmUgY2FsbGluZworICogICAgICAgICAgICAgICAgICBcYyBtYmVkdGxzX2NoYWNoYXBvbHlfdXBkYXRlKCkuCisgKgorICogICAgICAgICAgICAgICAgICBZb3UgbWF5IGNhbGwgdGhpcyBmdW5jdGlvbiBtdWx0aXBsZSB0aW1lcyB0byBwcm9jZXNzCisgKiAgICAgICAgICAgICAgICAgIGFuIGFyYml0cmFyeSBhbW91bnQgb2YgQUFELiBJdCBpcyBwZXJtaXR0ZWQgdG8gY2FsbAorICogICAgICAgICAgICAgICAgICB0aGlzIGZ1bmN0aW9uIDAgdGltZXMsIGlmIG5vIEFBRCBpcyB1c2VkLgorICoKKyAqICAgICAgICAgICAgICAgICAgVGhpcyBmdW5jdGlvbiBjYW5ub3QgYmUgY2FsbGVkIGFueSBtb3JlIGlmIGRhdGEgaGFzCisgKiAgICAgICAgICAgICAgICAgIGJlZW4gcHJvY2Vzc2VkIGJ5IFxjIG1iZWR0bHNfY2hhY2hhcG9seV91cGRhdGUoKSwKKyAqICAgICAgICAgICAgICAgICAgb3IgaWYgdGhlIGNvbnRleHQgaGFzIGJlZW4gZmluaXNoZWQuCisgKgorICogXHdhcm5pbmcgICAgICAgICBEZWNyeXB0aW9uIHdpdGggdGhlIHBpZWNld2lzZSBBUEkgaXMgZGlzY291cmFnZWQsIHNlZSB0aGUKKyAqICAgICAgICAgICAgICAgICAgd2FybmluZyBvbiBcYyBtYmVkdGxzX2NoYWNoYXBvbHlfaW5pdCgpLgorICoKKyAqIFxwYXJhbSBjdHggICAgICAgVGhlIENoYUNoYTIwLVBvbHkxMzA1IGNvbnRleHQuIFRoaXMgbXVzdCBiZSBpbml0aWFsaXplZAorICogICAgICAgICAgICAgICAgICBhbmQgYm91bmQgdG8gYSBrZXkuCisgKiBccGFyYW0gYWFkX2xlbiAgIFRoZSBsZW5ndGggaW4gQnl0ZXMgb2YgdGhlIEFBRC4gVGhlIGxlbmd0aCBoYXMgbm8KKyAqICAgICAgICAgICAgICAgICAgcmVzdHJpY3Rpb25zLgorICogXHBhcmFtIGFhZCAgICAgICBCdWZmZXIgY29udGFpbmluZyB0aGUgQUFELgorICogICAgICAgICAgICAgICAgICBUaGlzIHBvaW50ZXIgY2FuIGJlIFxjIE5VTEwgaWYgYGFhZF9sZW4gPT0gMGAuCisgKgorICogXHJldHVybiAgICAgICAgICBcYyAwIG9uIHN1Y2Nlc3MuCisgKiBccmV0dXJuICAgICAgICAgICNNQkVEVExTX0VSUl9QT0xZMTMwNV9CQURfSU5QVVRfREFUQQorICogICAgICAgICAgICAgICAgICBpZiBccCBjdHggb3IgXHAgYWFkIGFyZSBOVUxMLgorICogXHJldHVybiAgICAgICAgICAjTUJFRFRMU19FUlJfQ0hBQ0hBUE9MWV9CQURfU1RBVEUKKyAqICAgICAgICAgICAgICAgICAgaWYgdGhlIG9wZXJhdGlvbnMgaGFzIG5vdCBiZWVuIHN0YXJ0ZWQgb3IgaGFzIGJlZW4KKyAqICAgICAgICAgICAgICAgICAgZmluaXNoZWQsIG9yIGlmIHRoZSBBQUQgaGFzIGJlZW4gZmluaXNoZWQuCisgKi8KK2ludCBtYmVkdGxzX2NoYWNoYXBvbHlfdXBkYXRlX2FhZChtYmVkdGxzX2NoYWNoYXBvbHlfY29udGV4dCAqY3R4LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgKmFhZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgYWFkX2xlbik7CisKKy8qKgorICogXGJyaWVmICAgICAgICAgICBUaHVzIGZ1bmN0aW9uIGZlZWRzIGRhdGEgdG8gYmUgZW5jcnlwdGVkIG9yIGRlY3J5cHRlZAorICogICAgICAgICAgICAgICAgICBpbnRvIGFuIG9uLWdvaW5nIENoYUNoYTIwLVBvbHkxMzA1CisgKiAgICAgICAgICAgICAgICAgIG9wZXJhdGlvbi4KKyAqCisgKiAgICAgICAgICAgICAgICAgIFRoZSBkaXJlY3Rpb24gKGVuY3J5cHRpb24gb3IgZGVjcnlwdGlvbikgZGVwZW5kcyBvbiB0aGUKKyAqICAgICAgICAgICAgICAgICAgbW9kZSB0aGF0IHdhcyBnaXZlbiB3aGVuIGNhbGxpbmcKKyAqICAgICAgICAgICAgICAgICAgXGMgbWJlZHRsc19jaGFjaGFwb2x5X3N0YXJ0cygpLgorICoKKyAqICAgICAgICAgICAgICAgICAgWW91IG1heSBjYWxsIHRoaXMgZnVuY3Rpb24gbXVsdGlwbGUgdGltZXMgdG8gcHJvY2VzcworICogICAgICAgICAgICAgICAgICBhbiBhcmJpdHJhcnkgYW1vdW50IG9mIGRhdGEuIEl0IGlzIHBlcm1pdHRlZCB0byBjYWxsCisgKiAgICAgICAgICAgICAgICAgIHRoaXMgZnVuY3Rpb24gMCB0aW1lcywgaWYgbm8gZGF0YSBpcyB0byBiZSBlbmNyeXB0ZWQKKyAqICAgICAgICAgICAgICAgICAgb3IgZGVjcnlwdGVkLgorICoKKyAqIFx3YXJuaW5nICAgICAgICAgRGVjcnlwdGlvbiB3aXRoIHRoZSBwaWVjZXdpc2UgQVBJIGlzIGRpc2NvdXJhZ2VkLCBzZWUgdGhlCisgKiAgICAgICAgICAgICAgICAgIHdhcm5pbmcgb24gXGMgbWJlZHRsc19jaGFjaGFwb2x5X2luaXQoKS4KKyAqCisgKiBccGFyYW0gY3R4ICAgICAgIFRoZSBDaGFDaGEyMC1Qb2x5MTMwNSBjb250ZXh0IHRvIHVzZS4gVGhpcyBtdXN0IGJlIGluaXRpYWxpemVkLgorICogXHBhcmFtIGxlbiAgICAgICBUaGUgbGVuZ3RoIChpbiBieXRlcykgb2YgdGhlIGRhdGEgdG8gZW5jcnlwdCBvciBkZWNyeXB0LgorICogXHBhcmFtIGlucHV0ICAgICBUaGUgYnVmZmVyIGNvbnRhaW5pbmcgdGhlIGRhdGEgdG8gZW5jcnlwdCBvciBkZWNyeXB0LgorICogICAgICAgICAgICAgICAgICBUaGlzIHBvaW50ZXIgY2FuIGJlIFxjIE5VTEwgaWYgYGxlbiA9PSAwYC4KKyAqIFxwYXJhbSBvdXRwdXQgICAgVGhlIGJ1ZmZlciB0byB3aGVyZSB0aGUgZW5jcnlwdGVkIG9yIGRlY3J5cHRlZCBkYXRhIGlzCisgKiAgICAgICAgICAgICAgICAgIHdyaXR0ZW4uIFRoaXMgbXVzdCBiZSBhYmxlIHRvIGhvbGQgXHAgbGVuIGJ5dGVzLgorICogICAgICAgICAgICAgICAgICBUaGlzIHBvaW50ZXIgY2FuIGJlIFxjIE5VTEwgaWYgYGxlbiA9PSAwYC4KKyAqCisgKiBccmV0dXJuICAgICAgICAgIFxjIDAgb24gc3VjY2Vzcy4KKyAqIFxyZXR1cm4gICAgICAgICAgI01CRURUTFNfRVJSX0NIQUNIQVBPTFlfQkFEX1NUQVRFCisgKiAgICAgICAgICAgICAgICAgIGlmIHRoZSBvcGVyYXRpb24gaGFzIG5vdCBiZWVuIHN0YXJ0ZWQgb3IgaGFzIGJlZW4KKyAqICAgICAgICAgICAgICAgICAgZmluaXNoZWQuCisgKiBccmV0dXJuICAgICAgICAgIEFub3RoZXIgbmVnYXRpdmUgZXJyb3IgY29kZSBvbiBvdGhlciBraW5kcyBvZiBmYWlsdXJlLgorICovCitpbnQgbWJlZHRsc19jaGFjaGFwb2x5X3VwZGF0ZShtYmVkdGxzX2NoYWNoYXBvbHlfY29udGV4dCAqY3R4LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IGxlbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgKmlucHV0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgY2hhciAqb3V0cHV0KTsKKworLyoqCisgKiBcYnJpZWYgICAgICAgICAgIFRoaXMgZnVuY3Rpb24gZmluaXNoZWQgdGhlIENoYUNoYTIwLVBvbHkxMzA1IG9wZXJhdGlvbiBhbmQKKyAqICAgICAgICAgICAgICAgICAgZ2VuZXJhdGVzIHRoZSBNQUMgKGF1dGhlbnRpY2F0aW9uIHRhZykuCisgKgorICogXHBhcmFtIGN0eCAgICAgICBUaGUgQ2hhQ2hhMjAtUG9seTEzMDUgY29udGV4dCB0byB1c2UuIFRoaXMgbXVzdCBiZSBpbml0aWFsaXplZC4KKyAqIFxwYXJhbSBtYWMgICAgICAgVGhlIGJ1ZmZlciB0byB3aGVyZSB0aGUgMTI4LWJpdCAoMTYgYnl0ZXMpIE1BQyBpcyB3cml0dGVuLgorICoKKyAqIFx3YXJuaW5nICAgICAgICAgRGVjcnlwdGlvbiB3aXRoIHRoZSBwaWVjZXdpc2UgQVBJIGlzIGRpc2NvdXJhZ2VkLCBzZWUgdGhlCisgKiAgICAgICAgICAgICAgICAgIHdhcm5pbmcgb24gXGMgbWJlZHRsc19jaGFjaGFwb2x5X2luaXQoKS4KKyAqCisgKiBccmV0dXJuICAgICAgICAgIFxjIDAgb24gc3VjY2Vzcy4KKyAqIFxyZXR1cm4gICAgICAgICAgI01CRURUTFNfRVJSX0NIQUNIQVBPTFlfQkFEX1NUQVRFCisgKiAgICAgICAgICAgICAgICAgIGlmIHRoZSBvcGVyYXRpb24gaGFzIG5vdCBiZWVuIHN0YXJ0ZWQgb3IgaGFzIGJlZW4KKyAqICAgICAgICAgICAgICAgICAgZmluaXNoZWQuCisgKiBccmV0dXJuICAgICAgICAgIEFub3RoZXIgbmVnYXRpdmUgZXJyb3IgY29kZSBvbiBvdGhlciBraW5kcyBvZiBmYWlsdXJlLgorICovCitpbnQgbWJlZHRsc19jaGFjaGFwb2x5X2ZpbmlzaChtYmVkdGxzX2NoYWNoYXBvbHlfY29udGV4dCAqY3R4LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgY2hhciBtYWNbMTZdKTsKKworLyoqCisgKiBcYnJpZWYgICAgICAgICAgIFRoaXMgZnVuY3Rpb24gcGVyZm9ybXMgYSBjb21wbGV0ZSBDaGFDaGEyMC1Qb2x5MTMwNQorICogICAgICAgICAgICAgICAgICBhdXRoZW50aWNhdGVkIGVuY3J5cHRpb24gd2l0aCB0aGUgcHJldmlvdXNseS1zZXQga2V5LgorICoKKyAqIFxub3RlICAgICAgICAgICAgQmVmb3JlIHVzaW5nIHRoaXMgZnVuY3Rpb24sIHlvdSBtdXN0IHNldCB0aGUga2V5IHdpdGgKKyAqICAgICAgICAgICAgICAgICAgXGMgbWJlZHRsc19jaGFjaGFwb2x5X3NldGtleSgpLgorICoKKyAqIFx3YXJuaW5nICAgICAgICAgWW91IG11c3QgbmV2ZXIgdXNlIHRoZSBzYW1lIG5vbmNlIHR3aWNlIHdpdGggdGhlIHNhbWUga2V5LgorICogICAgICAgICAgICAgICAgICBUaGlzIHdvdWxkIHZvaWQgYW55IGNvbmZpZGVudGlhbGl0eSBhbmQgYXV0aGVudGljaXR5CisgKiAgICAgICAgICAgICAgICAgIGd1YXJhbnRlZXMgZm9yIHRoZSBtZXNzYWdlcyBlbmNyeXB0ZWQgd2l0aCB0aGUgc2FtZSBub25jZQorICogICAgICAgICAgICAgICAgICBhbmQga2V5LgorICoKKyAqIFxwYXJhbSBjdHggICAgICAgVGhlIENoYUNoYTIwLVBvbHkxMzA1IGNvbnRleHQgdG8gdXNlIChob2xkcyB0aGUga2V5KS4KKyAqICAgICAgICAgICAgICAgICAgVGhpcyBtdXN0IGJlIGluaXRpYWxpemVkLgorICogXHBhcmFtIGxlbmd0aCAgICBUaGUgbGVuZ3RoIChpbiBieXRlcykgb2YgdGhlIGRhdGEgdG8gZW5jcnlwdCBvciBkZWNyeXB0LgorICogXHBhcmFtIG5vbmNlICAgICBUaGUgOTYtYml0ICgxMiBieXRlcykgbm9uY2UvSVYgdG8gdXNlLgorICogXHBhcmFtIGFhZCAgICAgICBUaGUgYnVmZmVyIGNvbnRhaW5pbmcgdGhlIGFkZGl0aW9uYWwgYXV0aGVudGljYXRlZAorICogICAgICAgICAgICAgICAgICBkYXRhIChBQUQpLiBUaGlzIHBvaW50ZXIgY2FuIGJlIFxjIE5VTEwgaWYgYGFhZF9sZW4gPT0gMGAuCisgKiBccGFyYW0gYWFkX2xlbiAgIFRoZSBsZW5ndGggKGluIGJ5dGVzKSBvZiB0aGUgQUFEIGRhdGEgdG8gcHJvY2Vzcy4KKyAqIFxwYXJhbSBpbnB1dCAgICAgVGhlIGJ1ZmZlciBjb250YWluaW5nIHRoZSBkYXRhIHRvIGVuY3J5cHQgb3IgZGVjcnlwdC4KKyAqICAgICAgICAgICAgICAgICAgVGhpcyBwb2ludGVyIGNhbiBiZSBcYyBOVUxMIGlmIGBpbGVuID09IDBgLgorICogXHBhcmFtIG91dHB1dCAgICBUaGUgYnVmZmVyIHRvIHdoZXJlIHRoZSBlbmNyeXB0ZWQgb3IgZGVjcnlwdGVkIGRhdGEKKyAqICAgICAgICAgICAgICAgICAgaXMgd3JpdHRlbi4gVGhpcyBwb2ludGVyIGNhbiBiZSBcYyBOVUxMIGlmIGBpbGVuID09IDBgLgorICogXHBhcmFtIHRhZyAgICAgICBUaGUgYnVmZmVyIHRvIHdoZXJlIHRoZSBjb21wdXRlZCAxMjgtYml0ICgxNiBieXRlcykgTUFDCisgKiAgICAgICAgICAgICAgICAgIGlzIHdyaXR0ZW4uIFRoaXMgbXVzdCBub3QgYmUgXGMgTlVMTC4KKyAqCisgKiBccmV0dXJuICAgICAgICAgIFxjIDAgb24gc3VjY2Vzcy4KKyAqIFxyZXR1cm4gICAgICAgICAgQSBuZWdhdGl2ZSBlcnJvciBjb2RlIG9uIGZhaWx1cmUuCisgKi8KK2ludCBtYmVkdGxzX2NoYWNoYXBvbHlfZW5jcnlwdF9hbmRfdGFnKG1iZWR0bHNfY2hhY2hhcG9seV9jb250ZXh0ICpjdHgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgbGVuZ3RoLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdW5zaWduZWQgY2hhciBub25jZVsxMl0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1bnNpZ25lZCBjaGFyICphYWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgYWFkX2xlbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgKmlucHV0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgY2hhciAqb3V0cHV0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgY2hhciB0YWdbMTZdKTsKKworLyoqCisgKiBcYnJpZWYgICAgICAgICAgIFRoaXMgZnVuY3Rpb24gcGVyZm9ybXMgYSBjb21wbGV0ZSBDaGFDaGEyMC1Qb2x5MTMwNQorICogICAgICAgICAgICAgICAgICBhdXRoZW50aWNhdGVkIGRlY3J5cHRpb24gd2l0aCB0aGUgcHJldmlvdXNseS1zZXQga2V5LgorICoKKyAqIFxub3RlICAgICAgICAgICAgQmVmb3JlIHVzaW5nIHRoaXMgZnVuY3Rpb24sIHlvdSBtdXN0IHNldCB0aGUga2V5IHdpdGgKKyAqICAgICAgICAgICAgICAgICAgXGMgbWJlZHRsc19jaGFjaGFwb2x5X3NldGtleSgpLgorICoKKyAqIFxwYXJhbSBjdHggICAgICAgVGhlIENoYUNoYTIwLVBvbHkxMzA1IGNvbnRleHQgdG8gdXNlIChob2xkcyB0aGUga2V5KS4KKyAqIFxwYXJhbSBsZW5ndGggICAgVGhlIGxlbmd0aCAoaW4gQnl0ZXMpIG9mIHRoZSBkYXRhIHRvIGRlY3J5cHQuCisgKiBccGFyYW0gbm9uY2UgICAgIFRoZSBcYyA5NiBCaXQgKFxjIDEyIGJ5dGVzKSBub25jZS9JViB0byB1c2UuCisgKiBccGFyYW0gYWFkICAgICAgIFRoZSBidWZmZXIgY29udGFpbmluZyB0aGUgYWRkaXRpb25hbCBhdXRoZW50aWNhdGVkIGRhdGEgKEFBRCkuCisgKiAgICAgICAgICAgICAgICAgIFRoaXMgcG9pbnRlciBjYW4gYmUgXGMgTlVMTCBpZiBgYWFkX2xlbiA9PSAwYC4KKyAqIFxwYXJhbSBhYWRfbGVuICAgVGhlIGxlbmd0aCAoaW4gYnl0ZXMpIG9mIHRoZSBBQUQgZGF0YSB0byBwcm9jZXNzLgorICogXHBhcmFtIHRhZyAgICAgICBUaGUgYnVmZmVyIGhvbGRpbmcgdGhlIGF1dGhlbnRpY2F0aW9uIHRhZy4KKyAqICAgICAgICAgICAgICAgICAgVGhpcyBtdXN0IGJlIGEgcmVhZGFibGUgYnVmZmVyIG9mIGxlbmd0aCBcYyAxNiBCeXRlcy4KKyAqIFxwYXJhbSBpbnB1dCAgICAgVGhlIGJ1ZmZlciBjb250YWluaW5nIHRoZSBkYXRhIHRvIGRlY3J5cHQuCisgKiAgICAgICAgICAgICAgICAgIFRoaXMgcG9pbnRlciBjYW4gYmUgXGMgTlVMTCBpZiBgaWxlbiA9PSAwYC4KKyAqIFxwYXJhbSBvdXRwdXQgICAgVGhlIGJ1ZmZlciB0byB3aGVyZSB0aGUgZGVjcnlwdGVkIGRhdGEgaXMgd3JpdHRlbi4KKyAqICAgICAgICAgICAgICAgICAgVGhpcyBwb2ludGVyIGNhbiBiZSBcYyBOVUxMIGlmIGBpbGVuID09IDBgLgorICoKKyAqIFxyZXR1cm4gICAgICAgICAgXGMgMCBvbiBzdWNjZXNzLgorICogXHJldHVybiAgICAgICAgICAjTUJFRFRMU19FUlJfQ0hBQ0hBUE9MWV9BVVRIX0ZBSUxFRAorICogICAgICAgICAgICAgICAgICBpZiB0aGUgZGF0YSB3YXMgbm90IGF1dGhlbnRpYy4KKyAqIFxyZXR1cm4gICAgICAgICAgQW5vdGhlciBuZWdhdGl2ZSBlcnJvciBjb2RlIG9uIG90aGVyIGtpbmRzIG9mIGZhaWx1cmUuCisgKi8KK2ludCBtYmVkdGxzX2NoYWNoYXBvbHlfYXV0aF9kZWNyeXB0KG1iZWR0bHNfY2hhY2hhcG9seV9jb250ZXh0ICpjdHgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgbGVuZ3RoLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdW5zaWduZWQgY2hhciBub25jZVsxMl0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1bnNpZ25lZCBjaGFyICphYWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgYWFkX2xlbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgdGFnWzE2XSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgKmlucHV0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgY2hhciAqb3V0cHV0KTsKKworI2lmIGRlZmluZWQoTUJFRFRMU19TRUxGX1RFU1QpCisvKioKKyAqIFxicmllZiAgICAgICAgICAgVGhlIENoYUNoYTIwLVBvbHkxMzA1IGNoZWNrdXAgcm91dGluZS4KKyAqCisgKiBccmV0dXJuICAgICAgICAgIFxjIDAgb24gc3VjY2Vzcy4KKyAqIFxyZXR1cm4gICAgICAgICAgXGMgMSBvbiBmYWlsdXJlLgorICovCitpbnQgbWJlZHRsc19jaGFjaGFwb2x5X3NlbGZfdGVzdChpbnQgdmVyYm9zZSk7CisjZW5kaWYgLyogTUJFRFRMU19TRUxGX1RFU1QgKi8KKworI2lmZGVmIF9fY3BsdXNwbHVzCit9CisjZW5kaWYKKworI2VuZGlmIC8qIE1CRURUTFNfQ0hBQ0hBUE9MWV9IICovCmRpZmYgLS1naXQgYS9pbmNsdWRlL21iZWR0bHMvY2lwaGVyLmggYi90Zi1wc2EtY3J5cHRvL2RyaXZlcnMvYnVpbHRpbi9pbmNsdWRlL21iZWR0bHMvY2lwaGVyLmgKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIGluY2x1ZGUvbWJlZHRscy9jaXBoZXIuaApyZW5hbWUgdG8gdGYtcHNhLWNyeXB0by9kcml2ZXJzL2J1aWx0aW4vaW5jbHVkZS9tYmVkdGxzL2NpcGhlci5oCmRpZmYgLS1naXQgYS90Zi1wc2EtY3J5cHRvL2RyaXZlcnMvYnVpbHRpbi9pbmNsdWRlL21iZWR0bHMvY21hYy5oIGIvdGYtcHNhLWNyeXB0by9kcml2ZXJzL2J1aWx0aW4vaW5jbHVkZS9tYmVkdGxzL2NtYWMuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mZDNkOGEyCi0tLSAvZGV2L251bGwKKysrIGIvdGYtcHNhLWNyeXB0by9kcml2ZXJzL2J1aWx0aW4vaW5jbHVkZS9tYmVkdGxzL2NtYWMuaApAQCAtMCwwICsxLDIyMiBAQAorLyoqCisgKiBcZmlsZSBjbWFjLmgKKyAqCisgKiBcYnJpZWYgVGhpcyBmaWxlIGNvbnRhaW5zIENNQUMgZGVmaW5pdGlvbnMgYW5kIGZ1bmN0aW9ucy4KKyAqCisgKiBUaGUgQ2lwaGVyLWJhc2VkIE1lc3NhZ2UgQXV0aGVudGljYXRpb24gQ29kZSAoQ01BQykgTW9kZSBmb3IKKyAqIEF1dGhlbnRpY2F0aW9uIGlzIGRlZmluZWQgaW4gPGVtPlJGQy00NDkzOiBUaGUgQUVTLUNNQUMgQWxnb3JpdGhtPC9lbT4uCisgKiBJdCBpcyBzdXBwb3J0ZWQgd2l0aCBBRVMgYW5kIERFUy4KKyAqLworLyoKKyAqICBDb3B5cmlnaHQgVGhlIE1iZWQgVExTIENvbnRyaWJ1dG9ycworICogIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wIE9SIEdQTC0yLjAtb3ItbGF0ZXIKKyAqLworCisjaWZuZGVmIE1CRURUTFNfQ01BQ19ICisjZGVmaW5lIE1CRURUTFNfQ01BQ19ICisjaW5jbHVkZSAibWJlZHRscy9wcml2YXRlX2FjY2Vzcy5oIgorCisjaW5jbHVkZSAibWJlZHRscy9idWlsZF9pbmZvLmgiCisKKyNpbmNsdWRlICJtYmVkdGxzL2NpcGhlci5oIgorCisjaWZkZWYgX19jcGx1c3BsdXMKK2V4dGVybiAiQyIgeworI2VuZGlmCisKKyNkZWZpbmUgTUJFRFRMU19BRVNfQkxPQ0tfU0laRSAgICAgICAgICAxNgorI2RlZmluZSBNQkVEVExTX0RFUzNfQkxPQ0tfU0laRSAgICAgICAgIDgKKworLyogV2UgZG9uJ3Qgc3VwcG9ydCBDYW1lbGxpYSBvciBBUklBIGluIHRoaXMgbW9kdWxlICovCisjaWYgZGVmaW5lZChNQkVEVExTX0FFU19DKQorI2RlZmluZSBNQkVEVExTX0NNQUNfTUFYX0JMT0NLX1NJWkUgICAgICAxNiAgLyoqPCBUaGUgbG9uZ2VzdCBibG9jayB1c2VkIGJ5IENNQUMgaXMgdGhhdCBvZiBBRVMuICovCisjZWxzZQorI2RlZmluZSBNQkVEVExTX0NNQUNfTUFYX0JMT0NLX1NJWkUgICAgICA4ICAgLyoqPCBUaGUgbG9uZ2VzdCBibG9jayB1c2VkIGJ5IENNQUMgaXMgdGhhdCBvZiAzREVTLiAqLworI2VuZGlmCisKKyNpZiAhZGVmaW5lZChNQkVEVExTX0RFUFJFQ0FURURfUkVNT1ZFRCkKKy8qKiBUaGUgbG9uZ2VzdCBibG9jayBzdXBwb3J0ZWQgYnkgdGhlIGNpcGhlciBtb2R1bGUuCisgKgorICogXGRlcHJlY2F0ZWQKKyAqIEZvciB0aGUgbWF4aW11bSBibG9jayBzaXplIG9mIGEgY2lwaGVyIHN1cHBvcnRlZCBieSB0aGUgQ01BQyBtb2R1bGUsCisgKiB1c2UgI01CRURUTFNfQ01BQ19NQVhfQkxPQ0tfU0laRS4KKyAqIEZvciB0aGUgbWF4aW11bSBibG9jayBzaXplIG9mIGEgY2lwaGVyIHN1cHBvcnRlZCBieSB0aGUgY2lwaGVyIG1vZHVsZSwKKyAqIHVzZSAjTUJFRFRMU19NQVhfQkxPQ0tfTEVOR1RILgorICovCisvKiBCZWZvcmUgTWJlZCBUTFMgMy41LCB0aGlzIHdhcyB0aGUgbWF4aW11bSBibG9jayBzaXplIHN1cHBvcnRlZCBieSB0aGUgQ01BQworICogbW9kdWxlLCBzbyBpdCBkaWRuJ3QgdGFrZSBDYW1lbGxpYSBvciBBUklBIGludG8gYWNjb3VudC4gU2luY2UgdGhlIG5hbWUKKyAqIG9mIHRoZSBtYWNybyBkb2Vzbid0IGV2ZW4gY29udmV5ICJDTUFDIiwgdGhpcyB3YXMgbWlzbGVhZGluZy4gTm93IHRoZSBzaXplCisgKiBpcyBzdWZmaWNpZW50IGZvciBhbnkgY2lwaGVyLCBidXQgdGhlIG5hbWUgaXMgZGVmaW5lZCBpbiBjbWFjLmggZm9yCisgKiBiYWNrd2FyZCBjb21wYXRpYmlsaXR5LiAqLworI2RlZmluZSBNQkVEVExTX0NJUEhFUl9CTEtTSVpFX01BWCBNQkVEVExTX01BWF9CTE9DS19MRU5HVEgKKyNlbmRpZiAvKiBNQkVEVExTX0RFUFJFQ0FURURfUkVNT1ZFRCAqLworCisvKioKKyAqIFRoZSBDTUFDIGNvbnRleHQgc3RydWN0dXJlLgorICovCitzdHJ1Y3QgbWJlZHRsc19jbWFjX2NvbnRleHRfdCB7CisgICAgLyoqIFRoZSBpbnRlcm5hbCBzdGF0ZSBvZiB0aGUgQ01BQyBhbGdvcml0aG0uICAqLworICAgIHVuc2lnbmVkIGNoYXIgICAgICAgTUJFRFRMU19QUklWQVRFKHN0YXRlKVtNQkVEVExTX0NNQUNfTUFYX0JMT0NLX1NJWkVdOworCisgICAgLyoqIFVucHJvY2Vzc2VkIGRhdGEgLSBlaXRoZXIgZGF0YSB0aGF0IHdhcyBub3QgYmxvY2sgYWxpZ25lZCBhbmQgaXMgc3RpbGwKKyAgICAgKiAgcGVuZGluZyBwcm9jZXNzaW5nLCBvciB0aGUgZmluYWwgYmxvY2suICovCisgICAgdW5zaWduZWQgY2hhciAgICAgICBNQkVEVExTX1BSSVZBVEUodW5wcm9jZXNzZWRfYmxvY2spW01CRURUTFNfQ01BQ19NQVhfQkxPQ0tfU0laRV07CisKKyAgICAvKiogVGhlIGxlbmd0aCBvZiBkYXRhIHBlbmRpbmcgcHJvY2Vzc2luZy4gKi8KKyAgICBzaXplX3QgICAgICAgICAgICAgIE1CRURUTFNfUFJJVkFURSh1bnByb2Nlc3NlZF9sZW4pOworfTsKKworLyoqCisgKiBcYnJpZWYgICAgICAgICAgICAgICBUaGlzIGZ1bmN0aW9uIHN0YXJ0cyBhIG5ldyBDTUFDIGNvbXB1dGF0aW9uCisgKiAgICAgICAgICAgICAgICAgICAgICBieSBzZXR0aW5nIHRoZSBDTUFDIGtleSwgYW5kIHByZXBhcmluZyB0byBhdXRoZW50aWNhdGUKKyAqICAgICAgICAgICAgICAgICAgICAgIHRoZSBpbnB1dCBkYXRhLgorICogICAgICAgICAgICAgICAgICAgICAgSXQgbXVzdCBiZSBjYWxsZWQgd2l0aCBhbiBpbml0aWFsaXplZCBjaXBoZXIgY29udGV4dC4KKyAqCisgKiAgICAgICAgICAgICAgICAgICAgICBPbmNlIHRoaXMgZnVuY3Rpb24gaGFzIGNvbXBsZXRlZCwgZGF0YSBjYW4gYmUgc3VwcGxpZWQKKyAqICAgICAgICAgICAgICAgICAgICAgIHRvIHRoZSBDTUFDIGNvbXB1dGF0aW9uIGJ5IGNhbGxpbmcKKyAqICAgICAgICAgICAgICAgICAgICAgIG1iZWR0bHNfY2lwaGVyX2NtYWNfdXBkYXRlKCkuCisgKgorICogICAgICAgICAgICAgICAgICAgICAgVG8gc3RhcnQgYSBDTUFDIGNvbXB1dGF0aW9uIHVzaW5nIHRoZSBzYW1lIGtleSBhcyBhIHByZXZpb3VzCisgKiAgICAgICAgICAgICAgICAgICAgICBDTUFDIGNvbXB1dGF0aW9uLCB1c2UgbWJlZHRsc19jaXBoZXJfY21hY19maW5pc2goKS4KKyAqCisgKiBccGFyYW0gY3R4ICAgICAgICAgICBUaGUgY2lwaGVyIGNvbnRleHQgdXNlZCBmb3IgdGhlIENNQUMgb3BlcmF0aW9uLCBpbml0aWFsaXplZAorICogICAgICAgICAgICAgICAgICAgICAgYXMgb25lIG9mIHRoZSBmb2xsb3dpbmcgdHlwZXM6IE1CRURUTFNfQ0lQSEVSX0FFU18xMjhfRUNCLAorICogICAgICAgICAgICAgICAgICAgICAgTUJFRFRMU19DSVBIRVJfQUVTXzE5Ml9FQ0IsIE1CRURUTFNfQ0lQSEVSX0FFU18yNTZfRUNCLAorICogICAgICAgICAgICAgICAgICAgICAgb3IgTUJFRFRMU19DSVBIRVJfREVTX0VERTNfRUNCLgorICogXHBhcmFtIGtleSAgICAgICAgICAgVGhlIENNQUMga2V5LgorICogXHBhcmFtIGtleWJpdHMgICAgICAgVGhlIGxlbmd0aCBvZiB0aGUgQ01BQyBrZXkgaW4gYml0cy4KKyAqICAgICAgICAgICAgICAgICAgICAgIE11c3QgYmUgc3VwcG9ydGVkIGJ5IHRoZSBjaXBoZXIuCisgKgorICogXHJldHVybiAgICAgICAgICAgICAgXGMgMCBvbiBzdWNjZXNzLgorICogXHJldHVybiAgICAgICAgICAgICAgQSBjaXBoZXItc3BlY2lmaWMgZXJyb3IgY29kZSBvbiBmYWlsdXJlLgorICovCitpbnQgbWJlZHRsc19jaXBoZXJfY21hY19zdGFydHMobWJlZHRsc19jaXBoZXJfY29udGV4dF90ICpjdHgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdW5zaWduZWQgY2hhciAqa2V5LCBzaXplX3Qga2V5Yml0cyk7CisKKy8qKgorICogXGJyaWVmICAgICAgICAgICAgICAgVGhpcyBmdW5jdGlvbiBmZWVkcyBhbiBpbnB1dCBidWZmZXIgaW50byBhbiBvbmdvaW5nIENNQUMKKyAqICAgICAgICAgICAgICAgICAgICAgIGNvbXB1dGF0aW9uLgorICoKKyAqICAgICAgICAgICAgICAgICAgICAgIFRoZSBDTUFDIGNvbXB1dGF0aW9uIG11c3QgaGF2ZSBwcmV2aW91c2x5IGJlZW4gc3RhcnRlZAorICogICAgICAgICAgICAgICAgICAgICAgYnkgY2FsbGluZyBtYmVkdGxzX2NpcGhlcl9jbWFjX3N0YXJ0cygpIG9yCisgKiAgICAgICAgICAgICAgICAgICAgICBtYmVkdGxzX2NpcGhlcl9jbWFjX3Jlc2V0KCkuCisgKgorICogICAgICAgICAgICAgICAgICAgICAgQ2FsbCB0aGlzIGZ1bmN0aW9uIGFzIG1hbnkgdGltZXMgYXMgbmVlZGVkIHRvIGlucHV0IHRoZQorICogICAgICAgICAgICAgICAgICAgICAgZGF0YSB0byBiZSBhdXRoZW50aWNhdGVkLgorICogICAgICAgICAgICAgICAgICAgICAgT25jZSBhbGwgb2YgdGhlIHJlcXVpcmVkIGRhdGEgaGFzIGJlZW4gaW5wdXQsCisgKiAgICAgICAgICAgICAgICAgICAgICBjYWxsIG1iZWR0bHNfY2lwaGVyX2NtYWNfZmluaXNoKCkgdG8gb2J0YWluIHRoZSByZXN1bHQKKyAqICAgICAgICAgICAgICAgICAgICAgIG9mIHRoZSBDTUFDIG9wZXJhdGlvbi4KKyAqCisgKiBccGFyYW0gY3R4ICAgICAgICAgICBUaGUgY2lwaGVyIGNvbnRleHQgdXNlZCBmb3IgdGhlIENNQUMgb3BlcmF0aW9uLgorICogXHBhcmFtIGlucHV0ICAgICAgICAgVGhlIGJ1ZmZlciBob2xkaW5nIHRoZSBpbnB1dCBkYXRhLgorICogXHBhcmFtIGlsZW4gICAgICAgICAgVGhlIGxlbmd0aCBvZiB0aGUgaW5wdXQgZGF0YS4KKyAqCisgKiBccmV0dXJuICAgICAgICAgICAgIFxjIDAgb24gc3VjY2Vzcy4KKyAqIFxyZXR1cm4gICAgICAgICAgICAgI01CRURUTFNfRVJSX01EX0JBRF9JTlBVVF9EQVRBCisgKiAgICAgICAgICAgICAgICAgICAgIGlmIHBhcmFtZXRlciB2ZXJpZmljYXRpb24gZmFpbHMuCisgKi8KK2ludCBtYmVkdGxzX2NpcGhlcl9jbWFjX3VwZGF0ZShtYmVkdGxzX2NpcGhlcl9jb250ZXh0X3QgKmN0eCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1bnNpZ25lZCBjaGFyICppbnB1dCwgc2l6ZV90IGlsZW4pOworCisvKioKKyAqIFxicmllZiAgICAgICAgICAgICAgIFRoaXMgZnVuY3Rpb24gZmluaXNoZXMgYW4gb25nb2luZyBDTUFDIG9wZXJhdGlvbiwgYW5kCisgKiAgICAgICAgICAgICAgICAgICAgICB3cml0ZXMgdGhlIHJlc3VsdCB0byB0aGUgb3V0cHV0IGJ1ZmZlci4KKyAqCisgKiAgICAgICAgICAgICAgICAgICAgICBJdCBzaG91bGQgYmUgZm9sbG93ZWQgZWl0aGVyIGJ5CisgKiAgICAgICAgICAgICAgICAgICAgICBtYmVkdGxzX2NpcGhlcl9jbWFjX3Jlc2V0KCksIHdoaWNoIHN0YXJ0cyBhbm90aGVyIENNQUMKKyAqICAgICAgICAgICAgICAgICAgICAgIG9wZXJhdGlvbiB3aXRoIHRoZSBzYW1lIGtleSwgb3IgbWJlZHRsc19jaXBoZXJfZnJlZSgpLAorICogICAgICAgICAgICAgICAgICAgICAgd2hpY2ggY2xlYXJzIHRoZSBjaXBoZXIgY29udGV4dC4KKyAqCisgKiBccGFyYW0gY3R4ICAgICAgICAgICBUaGUgY2lwaGVyIGNvbnRleHQgdXNlZCBmb3IgdGhlIENNQUMgb3BlcmF0aW9uLgorICogXHBhcmFtIG91dHB1dCAgICAgICAgVGhlIG91dHB1dCBidWZmZXIgZm9yIHRoZSBDTUFDIGNoZWNrc3VtIHJlc3VsdC4KKyAqCisgKiBccmV0dXJuICAgICAgICAgICAgICBcYyAwIG9uIHN1Y2Nlc3MuCisgKiBccmV0dXJuICAgICAgICAgICAgICAjTUJFRFRMU19FUlJfTURfQkFEX0lOUFVUX0RBVEEKKyAqICAgICAgICAgICAgICAgICAgICAgIGlmIHBhcmFtZXRlciB2ZXJpZmljYXRpb24gZmFpbHMuCisgKi8KK2ludCBtYmVkdGxzX2NpcGhlcl9jbWFjX2ZpbmlzaChtYmVkdGxzX2NpcGhlcl9jb250ZXh0X3QgKmN0eCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBjaGFyICpvdXRwdXQpOworCisvKioKKyAqIFxicmllZiAgICAgICAgICAgICAgIFRoaXMgZnVuY3Rpb24gc3RhcnRzIGEgbmV3IENNQUMgb3BlcmF0aW9uIHdpdGggdGhlIHNhbWUKKyAqICAgICAgICAgICAgICAgICAgICAgIGtleSBhcyB0aGUgcHJldmlvdXMgb25lLgorICoKKyAqICAgICAgICAgICAgICAgICAgICAgIEl0IHNob3VsZCBiZSBjYWxsZWQgYWZ0ZXIgZmluaXNoaW5nIHRoZSBwcmV2aW91cyBDTUFDCisgKiAgICAgICAgICAgICAgICAgICAgICBvcGVyYXRpb24gd2l0aCBtYmVkdGxzX2NpcGhlcl9jbWFjX2ZpbmlzaCgpLgorICogICAgICAgICAgICAgICAgICAgICAgQWZ0ZXIgY2FsbGluZyB0aGlzIGZ1bmN0aW9uLAorICogICAgICAgICAgICAgICAgICAgICAgY2FsbCBtYmVkdGxzX2NpcGhlcl9jbWFjX3VwZGF0ZSgpIHRvIHN1cHBseSB0aGUgbmV3CisgKiAgICAgICAgICAgICAgICAgICAgICBDTUFDIG9wZXJhdGlvbiB3aXRoIGRhdGEuCisgKgorICogXHBhcmFtIGN0eCAgICAgICAgICAgVGhlIGNpcGhlciBjb250ZXh0IHVzZWQgZm9yIHRoZSBDTUFDIG9wZXJhdGlvbi4KKyAqCisgKiBccmV0dXJuICAgICAgICAgICAgICBcYyAwIG9uIHN1Y2Nlc3MuCisgKiBccmV0dXJuICAgICAgICAgICAgICAjTUJFRFRMU19FUlJfTURfQkFEX0lOUFVUX0RBVEEKKyAqICAgICAgICAgICAgICAgICAgICAgIGlmIHBhcmFtZXRlciB2ZXJpZmljYXRpb24gZmFpbHMuCisgKi8KK2ludCBtYmVkdGxzX2NpcGhlcl9jbWFjX3Jlc2V0KG1iZWR0bHNfY2lwaGVyX2NvbnRleHRfdCAqY3R4KTsKKworLyoqCisgKiBcYnJpZWYgICAgICAgICAgICAgICBUaGlzIGZ1bmN0aW9uIGNhbGN1bGF0ZXMgdGhlIGZ1bGwgZ2VuZXJpYyBDTUFDCisgKiAgICAgICAgICAgICAgICAgICAgICBvbiB0aGUgaW5wdXQgYnVmZmVyIHdpdGggdGhlIHByb3ZpZGVkIGtleS4KKyAqCisgKiAgICAgICAgICAgICAgICAgICAgICBUaGUgZnVuY3Rpb24gYWxsb2NhdGVzIHRoZSBjb250ZXh0LCBwZXJmb3JtcyB0aGUKKyAqICAgICAgICAgICAgICAgICAgICAgIGNhbGN1bGF0aW9uLCBhbmQgZnJlZXMgdGhlIGNvbnRleHQuCisgKgorICogICAgICAgICAgICAgICAgICAgICAgVGhlIENNQUMgcmVzdWx0IGlzIGNhbGN1bGF0ZWQgYXMKKyAqICAgICAgICAgICAgICAgICAgICAgIG91dHB1dCA9IGdlbmVyaWMgQ01BQyhjbWFjIGtleSwgaW5wdXQgYnVmZmVyKS4KKyAqCisgKiBccGFyYW0gY2lwaGVyX2luZm8gICBUaGUgY2lwaGVyIGluZm9ybWF0aW9uLgorICogXHBhcmFtIGtleSAgICAgICAgICAgVGhlIENNQUMga2V5LgorICogXHBhcmFtIGtleWxlbiAgICAgICAgVGhlIGxlbmd0aCBvZiB0aGUgQ01BQyBrZXkgaW4gYml0cy4KKyAqIFxwYXJhbSBpbnB1dCAgICAgICAgIFRoZSBidWZmZXIgaG9sZGluZyB0aGUgaW5wdXQgZGF0YS4KKyAqIFxwYXJhbSBpbGVuICAgICAgICAgIFRoZSBsZW5ndGggb2YgdGhlIGlucHV0IGRhdGEuCisgKiBccGFyYW0gb3V0cHV0ICAgICAgICBUaGUgYnVmZmVyIGZvciB0aGUgZ2VuZXJpYyBDTUFDIHJlc3VsdC4KKyAqCisgKiBccmV0dXJuICAgICAgICAgICAgICBcYyAwIG9uIHN1Y2Nlc3MuCisgKiBccmV0dXJuICAgICAgICAgICAgICAjTUJFRFRMU19FUlJfTURfQkFEX0lOUFVUX0RBVEEKKyAqICAgICAgICAgICAgICAgICAgICAgIGlmIHBhcmFtZXRlciB2ZXJpZmljYXRpb24gZmFpbHMuCisgKi8KK2ludCBtYmVkdGxzX2NpcGhlcl9jbWFjKGNvbnN0IG1iZWR0bHNfY2lwaGVyX2luZm9fdCAqY2lwaGVyX2luZm8sCisgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1bnNpZ25lZCBjaGFyICprZXksIHNpemVfdCBrZXlsZW4sCisgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1bnNpZ25lZCBjaGFyICppbnB1dCwgc2l6ZV90IGlsZW4sCisgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBjaGFyICpvdXRwdXQpOworCisjaWYgZGVmaW5lZChNQkVEVExTX0FFU19DKQorLyoqCisgKiBcYnJpZWYgICAgICAgICAgIFRoaXMgZnVuY3Rpb24gaW1wbGVtZW50cyB0aGUgQUVTLUNNQUMtUFJGLTEyOCBwc2V1ZG9yYW5kb20KKyAqICAgICAgICAgICAgICAgICAgZnVuY3Rpb24sIGFzIGRlZmluZWQgaW4KKyAqICAgICAgICAgICAgICAgICAgPGVtPlJGQy00NjE1OiBUaGUgQWR2YW5jZWQgRW5jcnlwdGlvbiBTdGFuZGFyZC1DaXBoZXItYmFzZWQKKyAqICAgICAgICAgICAgICAgICAgTWVzc2FnZSBBdXRoZW50aWNhdGlvbiBDb2RlLVBzZXVkby1SYW5kb20gRnVuY3Rpb24tMTI4CisgKiAgICAgICAgICAgICAgICAgIChBRVMtQ01BQy1QUkYtMTI4KSBBbGdvcml0aG0gZm9yIHRoZSBJbnRlcm5ldCBLZXkKKyAqICAgICAgICAgICAgICAgICAgRXhjaGFuZ2UgUHJvdG9jb2wgKElLRSkuPC9lbT4KKyAqCisgKiBccGFyYW0ga2V5ICAgICAgIFRoZSBrZXkgdG8gdXNlLgorICogXHBhcmFtIGtleV9sZW4gICBUaGUga2V5IGxlbmd0aCBpbiBCeXRlcy4KKyAqIFxwYXJhbSBpbnB1dCAgICAgVGhlIGJ1ZmZlciBob2xkaW5nIHRoZSBpbnB1dCBkYXRhLgorICogXHBhcmFtIGluX2xlbiAgICBUaGUgbGVuZ3RoIG9mIHRoZSBpbnB1dCBkYXRhIGluIEJ5dGVzLgorICogXHBhcmFtIG91dHB1dCAgICBUaGUgYnVmZmVyIGhvbGRpbmcgdGhlIGdlbmVyYXRlZCAxNiBCeXRlcyBvZgorICogICAgICAgICAgICAgICAgICBwc2V1ZG9yYW5kb20gb3V0cHV0LgorICoKKyAqIFxyZXR1cm4gICAgICAgICAgXGMgMCBvbiBzdWNjZXNzLgorICovCitpbnQgbWJlZHRsc19hZXNfY21hY19wcmZfMTI4KGNvbnN0IHVuc2lnbmVkIGNoYXIgKmtleSwgc2l6ZV90IGtleV9sZW4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgKmlucHV0LCBzaXplX3QgaW5fbGVuLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBjaGFyIG91dHB1dFsxNl0pOworI2VuZGlmIC8qIE1CRURUTFNfQUVTX0MgKi8KKworI2lmIGRlZmluZWQoTUJFRFRMU19TRUxGX1RFU1QpICYmIChkZWZpbmVkKE1CRURUTFNfQUVTX0MpIHx8IGRlZmluZWQoTUJFRFRMU19ERVNfQykpCisvKioKKyAqIFxicmllZiAgICAgICAgICBUaGUgQ01BQyBjaGVja3VwIHJvdXRpbmUuCisgKgorICoKKyAqIFxyZXR1cm4gICAgICAgICBcYyAwIG9uIHN1Y2Nlc3MuCisgKiBccmV0dXJuICAgICAgICAgXGMgMSBvbiBmYWlsdXJlLgorICovCitpbnQgbWJlZHRsc19jbWFjX3NlbGZfdGVzdChpbnQgdmVyYm9zZSk7CisjZW5kaWYgLyogTUJFRFRMU19TRUxGX1RFU1QgJiYgKCBNQkVEVExTX0FFU19DIHx8IE1CRURUTFNfREVTX0MgKSAqLworCisjaWZkZWYgX19jcGx1c3BsdXMKK30KKyNlbmRpZgorCisjZW5kaWYgLyogTUJFRFRMU19DTUFDX0ggKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvbWJlZHRscy9jb25maWdfYWRqdXN0X2xlZ2FjeV9mcm9tX3BzYS5oIGIvdGYtcHNhLWNyeXB0by9kcml2ZXJzL2J1aWx0aW4vaW5jbHVkZS9tYmVkdGxzL2NvbmZpZ19hZGp1c3RfbGVnYWN5X2Zyb21fcHNhLmgKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIGluY2x1ZGUvbWJlZHRscy9jb25maWdfYWRqdXN0X2xlZ2FjeV9mcm9tX3BzYS5oCnJlbmFtZSB0byB0Zi1wc2EtY3J5cHRvL2RyaXZlcnMvYnVpbHRpbi9pbmNsdWRlL21iZWR0bHMvY29uZmlnX2FkanVzdF9sZWdhY3lfZnJvbV9wc2EuaApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9tYmVkdGxzL2NvbmZpZ19hZGp1c3RfcHNhX3N1cGVyc2V0X2xlZ2FjeS5oIGIvdGYtcHNhLWNyeXB0by9kcml2ZXJzL2J1aWx0aW4vaW5jbHVkZS9tYmVkdGxzL2NvbmZpZ19hZGp1c3RfcHNhX3N1cGVyc2V0X2xlZ2FjeS5oCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBpbmNsdWRlL21iZWR0bHMvY29uZmlnX2FkanVzdF9wc2Ffc3VwZXJzZXRfbGVnYWN5LmgKcmVuYW1lIHRvIHRmLXBzYS1jcnlwdG8vZHJpdmVycy9idWlsdGluL2luY2x1ZGUvbWJlZHRscy9jb25maWdfYWRqdXN0X3BzYV9zdXBlcnNldF9sZWdhY3kuaApkaWZmIC0tZ2l0IGEvdGYtcHNhLWNyeXB0by9kcml2ZXJzL2J1aWx0aW4vaW5jbHVkZS9tYmVkdGxzL2NvbmZpZ19wc2EuaCBiL3RmLXBzYS1jcnlwdG8vZHJpdmVycy9idWlsdGluL2luY2x1ZGUvbWJlZHRscy9jb25maWdfcHNhLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNWYzZDBmMwotLS0gL2Rldi9udWxsCisrKyBiL3RmLXBzYS1jcnlwdG8vZHJpdmVycy9idWlsdGluL2luY2x1ZGUvbWJlZHRscy9jb25maWdfcHNhLmgKQEAgLTAsMCArMSw2MSBAQAorLyoqCisgKiBcZmlsZSBtYmVkdGxzL2NvbmZpZ19wc2EuaAorICogXGJyaWVmIFBTQSBjcnlwdG8gY29uZmlndXJhdGlvbiBvcHRpb25zIChzZXQgb2YgZGVmaW5lcykKKyAqCisgKiAgVGhpcyBzZXQgb2YgY29tcGlsZS10aW1lIG9wdGlvbnMgdGFrZXMgc2V0dGluZ3MgZGVmaW5lZCBpbgorICogIGluY2x1ZGUvbWJlZHRscy9tYmVkdGxzX2NvbmZpZy5oIGFuZCBpbmNsdWRlL3BzYS9jcnlwdG9fY29uZmlnLmggYW5kIHVzZXMKKyAqICB0aG9zZSBkZWZpbml0aW9ucyB0byBkZWZpbmUgc3ltYm9scyB1c2VkIGluIHRoZSBsaWJyYXJ5IGNvZGUuCisgKgorICogIFVzZXJzIGFuZCBpbnRlZ3JhdG9ycyBzaG91bGQgbm90IGVkaXQgdGhpcyBmaWxlLCBwbGVhc2UgZWRpdAorICogIGluY2x1ZGUvbWJlZHRscy9tYmVkdGxzX2NvbmZpZy5oIGZvciBNQkVEVExTX1hYWCBzZXR0aW5ncyBvcgorICogIGluY2x1ZGUvcHNhL2NyeXB0b19jb25maWcuaCBmb3IgUFNBX1dBTlRfWFhYIHNldHRpbmdzLgorICovCisvKgorICogIENvcHlyaWdodCBUaGUgTWJlZCBUTFMgQ29udHJpYnV0b3JzCisgKiAgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjAgT1IgR1BMLTIuMC1vci1sYXRlcgorICovCisKKyNpZm5kZWYgTUJFRFRMU19DT05GSUdfUFNBX0gKKyNkZWZpbmUgTUJFRFRMU19DT05GSUdfUFNBX0gKKworI2luY2x1ZGUgInBzYS9jcnlwdG9fbGVnYWN5LmgiCisKKyNpbmNsdWRlICJwc2EvY3J5cHRvX2FkanVzdF9jb25maWdfc3lub255bXMuaCIKKworI2luY2x1ZGUgInBzYS9jcnlwdG9fYWRqdXN0X2NvbmZpZ19kZXBlbmRlbmNpZXMuaCIKKworI2luY2x1ZGUgIm1iZWR0bHMvY29uZmlnX2FkanVzdF9wc2Ffc3VwZXJzZXRfbGVnYWN5LmgiCisKKyNpZiBkZWZpbmVkKE1CRURUTFNfUFNBX0NSWVBUT19DT05GSUcpCisKKy8qIFJlcXVpcmUgYnVpbHQtaW4gaW1wbGVtZW50YXRpb25zIGJhc2VkIG9uIFBTQSByZXF1aXJlbWVudHMgKi8KKworLyogV2UgbmVlZCB0aGlzIHRvIGhhdmUgYSBjb21wbGV0ZSBsaXN0IG9mIHJlcXVpcmVtZW50cworICogYmVmb3JlIHdlIGRlZHVjZSB3aGF0IGJ1aWx0LWlucyBhcmUgcmVxdWlyZWQuICovCisjaW5jbHVkZSAicHNhL2NyeXB0b19hZGp1c3RfY29uZmlnX2tleV9wYWlyX3R5cGVzLmgiCisKKyNpZiBkZWZpbmVkKE1CRURUTFNfUFNBX0NSWVBUT19DKQorLyogSWYgd2UgYXJlIGltcGxlbWVudGluZyBQU0EgY3J5cHRvIG91cnNlbHZlcywgdGhlbiB3ZSB3YW50IHRvIGVuYWJsZSB0aGUKKyAqIHJlcXVpcmVkIGJ1aWx0LWlucy4gT3RoZXJ3aXNlLCBQU0EgZmVhdHVyZXMgd2lsbCBiZSBwcm92aWRlZCBieSB0aGUgc2VydmVyLiAqLworI2luY2x1ZGUgIm1iZWR0bHMvY29uZmlnX2FkanVzdF9sZWdhY3lfZnJvbV9wc2EuaCIKKyNlbmRpZgorCisjZWxzZSAvKiBNQkVEVExTX1BTQV9DUllQVE9fQ09ORklHICovCisKKy8qIEluZmVyIFBTQSByZXF1aXJlbWVudHMgZnJvbSBNYmVkIFRMUyBjYXBhYmlsaXRpZXMgKi8KKworI2luY2x1ZGUgIm1iZWR0bHMvY29uZmlnX2FkanVzdF9wc2FfZnJvbV9sZWdhY3kuaCIKKworLyogSG9wZWZ1bGx5IHRoZSBmaWxlIGFib3ZlIHdpbGwgaGF2ZSBlbmFibGVkIGtleXBhaXIgc3ltYm9scyBpbiBhIGNvbnNpc3RlbnQKKyAqIHdheSwgYnV0IGluY2x1ZGluZyB0aGlzIGhlcmUgZml4ZXMgdGhlbSBpZiB0aGF0IHdhc24ndCB0aGUgY2FzZS4gKi8KKyNpbmNsdWRlICJwc2EvY3J5cHRvX2FkanVzdF9jb25maWdfa2V5X3BhaXJfdHlwZXMuaCIKKworI2VuZGlmIC8qIE1CRURUTFNfUFNBX0NSWVBUT19DT05GSUcgKi8KKworI2lmIGRlZmluZWQoUFNBX1dBTlRfQUxHX0pQQUtFKQorI2RlZmluZSBQU0FfV0FOVF9BTEdfU09NRV9QQUtFIDEKKyNlbmRpZgorCisjaW5jbHVkZSAicHNhL2NyeXB0b19hZGp1c3RfYXV0b19lbmFibGVkLmgiCisKKyNlbmRpZiAvKiBNQkVEVExTX0NPTkZJR19QU0FfSCAqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9tYmVkdGxzL2NvbnN0YW50X3RpbWUuaCBiL3RmLXBzYS1jcnlwdG8vZHJpdmVycy9idWlsdGluL2luY2x1ZGUvbWJlZHRscy9jb25zdGFudF90aW1lLmgKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIGluY2x1ZGUvbWJlZHRscy9jb25zdGFudF90aW1lLmgKcmVuYW1lIHRvIHRmLXBzYS1jcnlwdG8vZHJpdmVycy9idWlsdGluL2luY2x1ZGUvbWJlZHRscy9jb25zdGFudF90aW1lLmgKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbWJlZHRscy9jdHJfZHJiZy5oIGIvdGYtcHNhLWNyeXB0by9kcml2ZXJzL2J1aWx0aW4vaW5jbHVkZS9tYmVkdGxzL2N0cl9kcmJnLmgKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIGluY2x1ZGUvbWJlZHRscy9jdHJfZHJiZy5oCnJlbmFtZSB0byB0Zi1wc2EtY3J5cHRvL2RyaXZlcnMvYnVpbHRpbi9pbmNsdWRlL21iZWR0bHMvY3RyX2RyYmcuaApkaWZmIC0tZ2l0IGEvdGYtcHNhLWNyeXB0by9kcml2ZXJzL2J1aWx0aW4vaW5jbHVkZS9tYmVkdGxzL2Rlcy5oIGIvdGYtcHNhLWNyeXB0by9kcml2ZXJzL2J1aWx0aW4vaW5jbHVkZS9tYmVkdGxzL2Rlcy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmMyZDkxMGMKLS0tIC9kZXYvbnVsbAorKysgYi90Zi1wc2EtY3J5cHRvL2RyaXZlcnMvYnVpbHRpbi9pbmNsdWRlL21iZWR0bHMvZGVzLmgKQEAgLTAsMCArMSwzNzggQEAKKy8qKgorICogXGZpbGUgZGVzLmgKKyAqCisgKiBcYnJpZWYgREVTIGJsb2NrIGNpcGhlcgorICoKKyAqIFx3YXJuaW5nICAgREVTLzNERVMgYXJlIGNvbnNpZGVyZWQgd2VhayBjaXBoZXJzIGFuZCB0aGVpciB1c2UgY29uc3RpdHV0ZXMgYQorICogICAgICAgICAgICBzZWN1cml0eSByaXNrLiBXZSByZWNvbW1lbmQgY29uc2lkZXJpbmcgc3Ryb25nZXIgY2lwaGVycworICogICAgICAgICAgICBpbnN0ZWFkLgorICovCisvKgorICogIENvcHlyaWdodCBUaGUgTWJlZCBUTFMgQ29udHJpYnV0b3JzCisgKiAgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjAgT1IgR1BMLTIuMC1vci1sYXRlcgorICoKKyAqLworI2lmbmRlZiBNQkVEVExTX0RFU19ICisjZGVmaW5lIE1CRURUTFNfREVTX0gKKyNpbmNsdWRlICJtYmVkdGxzL3ByaXZhdGVfYWNjZXNzLmgiCisKKyNpbmNsdWRlICJtYmVkdGxzL2J1aWxkX2luZm8uaCIKKyNpbmNsdWRlICJtYmVkdGxzL3BsYXRmb3JtX3V0aWwuaCIKKworI2luY2x1ZGUgPHN0ZGRlZi5oPgorI2luY2x1ZGUgPHN0ZGludC5oPgorCisjZGVmaW5lIE1CRURUTFNfREVTX0VOQ1JZUFQgICAgIDEKKyNkZWZpbmUgTUJFRFRMU19ERVNfREVDUllQVCAgICAgMAorCisvKiogVGhlIGRhdGEgaW5wdXQgaGFzIGFuIGludmFsaWQgbGVuZ3RoLiAqLworI2RlZmluZSBNQkVEVExTX0VSUl9ERVNfSU5WQUxJRF9JTlBVVF9MRU5HVEggICAgICAgICAgICAgIC0weDAwMzIKKworI2RlZmluZSBNQkVEVExTX0RFU19LRVlfU0laRSAgICA4CisKKyNpZmRlZiBfX2NwbHVzcGx1cworZXh0ZXJuICJDIiB7CisjZW5kaWYKKworLyoqCisgKiBcYnJpZWYgICAgICAgICAgREVTIGNvbnRleHQgc3RydWN0dXJlCisgKgorICogXHdhcm5pbmcgICAgICAgIERFUy8zREVTIGFyZSBjb25zaWRlcmVkIHdlYWsgY2lwaGVycyBhbmQgdGhlaXIgdXNlIGNvbnN0aXR1dGVzIGEKKyAqICAgICAgICAgICAgICAgICBzZWN1cml0eSByaXNrLiBXZSByZWNvbW1lbmQgY29uc2lkZXJpbmcgc3Ryb25nZXIgY2lwaGVycworICogICAgICAgICAgICAgICAgIGluc3RlYWQuCisgKi8KK3R5cGVkZWYgc3RydWN0IG1iZWR0bHNfZGVzX2NvbnRleHQgeworICAgIHVpbnQzMl90IE1CRURUTFNfUFJJVkFURShzaylbMzJdOyAgICAgICAgICAgIC8qITwgIERFUyBzdWJrZXlzICAgICAgICovCit9CittYmVkdGxzX2Rlc19jb250ZXh0OworCisvKioKKyAqIFxicmllZiAgICAgICAgICBUcmlwbGUtREVTIGNvbnRleHQgc3RydWN0dXJlCisgKgorICogXHdhcm5pbmcgICAgICAgIERFUy8zREVTIGFyZSBjb25zaWRlcmVkIHdlYWsgY2lwaGVycyBhbmQgdGhlaXIgdXNlIGNvbnN0aXR1dGVzIGEKKyAqICAgICAgICAgICAgICAgICBzZWN1cml0eSByaXNrLiBXZSByZWNvbW1lbmQgY29uc2lkZXJpbmcgc3Ryb25nZXIgY2lwaGVycworICogICAgICAgICAgICAgICAgIGluc3RlYWQuCisgKi8KK3R5cGVkZWYgc3RydWN0IG1iZWR0bHNfZGVzM19jb250ZXh0IHsKKyAgICB1aW50MzJfdCBNQkVEVExTX1BSSVZBVEUoc2spWzk2XTsgICAgICAgICAgICAvKiE8ICAzREVTIHN1YmtleXMgICAgICAqLworfQorbWJlZHRsc19kZXMzX2NvbnRleHQ7CisKKworLyoqCisgKiBcYnJpZWYgICAgICAgICAgSW5pdGlhbGl6ZSBERVMgY29udGV4dAorICoKKyAqIFxwYXJhbSBjdHggICAgICBERVMgY29udGV4dCB0byBiZSBpbml0aWFsaXplZAorICoKKyAqIFx3YXJuaW5nICAgICAgICBERVMvM0RFUyBhcmUgY29uc2lkZXJlZCB3ZWFrIGNpcGhlcnMgYW5kIHRoZWlyIHVzZSBjb25zdGl0dXRlcyBhCisgKiAgICAgICAgICAgICAgICAgc2VjdXJpdHkgcmlzay4gV2UgcmVjb21tZW5kIGNvbnNpZGVyaW5nIHN0cm9uZ2VyIGNpcGhlcnMKKyAqICAgICAgICAgICAgICAgICBpbnN0ZWFkLgorICovCit2b2lkIG1iZWR0bHNfZGVzX2luaXQobWJlZHRsc19kZXNfY29udGV4dCAqY3R4KTsKKworLyoqCisgKiBcYnJpZWYgICAgICAgICAgQ2xlYXIgREVTIGNvbnRleHQKKyAqCisgKiBccGFyYW0gY3R4ICAgICAgREVTIGNvbnRleHQgdG8gYmUgY2xlYXJlZAorICoKKyAqIFx3YXJuaW5nICAgICAgICBERVMvM0RFUyBhcmUgY29uc2lkZXJlZCB3ZWFrIGNpcGhlcnMgYW5kIHRoZWlyIHVzZSBjb25zdGl0dXRlcyBhCisgKiAgICAgICAgICAgICAgICAgc2VjdXJpdHkgcmlzay4gV2UgcmVjb21tZW5kIGNvbnNpZGVyaW5nIHN0cm9uZ2VyIGNpcGhlcnMKKyAqICAgICAgICAgICAgICAgICBpbnN0ZWFkLgorICovCit2b2lkIG1iZWR0bHNfZGVzX2ZyZWUobWJlZHRsc19kZXNfY29udGV4dCAqY3R4KTsKKworLyoqCisgKiBcYnJpZWYgICAgICAgICAgSW5pdGlhbGl6ZSBUcmlwbGUtREVTIGNvbnRleHQKKyAqCisgKiBccGFyYW0gY3R4ICAgICAgREVTMyBjb250ZXh0IHRvIGJlIGluaXRpYWxpemVkCisgKgorICogXHdhcm5pbmcgICAgICAgIERFUy8zREVTIGFyZSBjb25zaWRlcmVkIHdlYWsgY2lwaGVycyBhbmQgdGhlaXIgdXNlIGNvbnN0aXR1dGVzIGEKKyAqICAgICAgICAgICAgICAgICBzZWN1cml0eSByaXNrLiBXZSByZWNvbW1lbmQgY29uc2lkZXJpbmcgc3Ryb25nZXIgY2lwaGVycworICogICAgICAgICAgICAgICAgIGluc3RlYWQuCisgKi8KK3ZvaWQgbWJlZHRsc19kZXMzX2luaXQobWJlZHRsc19kZXMzX2NvbnRleHQgKmN0eCk7CisKKy8qKgorICogXGJyaWVmICAgICAgICAgIENsZWFyIFRyaXBsZS1ERVMgY29udGV4dAorICoKKyAqIFxwYXJhbSBjdHggICAgICBERVMzIGNvbnRleHQgdG8gYmUgY2xlYXJlZAorICoKKyAqIFx3YXJuaW5nICAgICAgICBERVMvM0RFUyBhcmUgY29uc2lkZXJlZCB3ZWFrIGNpcGhlcnMgYW5kIHRoZWlyIHVzZSBjb25zdGl0dXRlcyBhCisgKiAgICAgICAgICAgICAgICAgc2VjdXJpdHkgcmlzay4gV2UgcmVjb21tZW5kIGNvbnNpZGVyaW5nIHN0cm9uZ2VyIGNpcGhlcnMKKyAqICAgICAgICAgICAgICAgICBpbnN0ZWFkLgorICovCit2b2lkIG1iZWR0bHNfZGVzM19mcmVlKG1iZWR0bHNfZGVzM19jb250ZXh0ICpjdHgpOworCisvKioKKyAqIFxicmllZiAgICAgICAgICBTZXQga2V5IHBhcml0eSBvbiB0aGUgZ2l2ZW4ga2V5IHRvIG9kZC4KKyAqCisgKiAgICAgICAgICAgICAgICAgREVTIGtleXMgYXJlIDU2IGJpdHMgbG9uZywgYnV0IGVhY2ggYnl0ZSBpcyBwYWRkZWQgd2l0aAorICogICAgICAgICAgICAgICAgIGEgcGFyaXR5IGJpdCB0byBhbGxvdyB2ZXJpZmljYXRpb24uCisgKgorICogXHBhcmFtIGtleSAgICAgIDgtYnl0ZSBzZWNyZXQga2V5CisgKgorICogXHdhcm5pbmcgICAgICAgIERFUy8zREVTIGFyZSBjb25zaWRlcmVkIHdlYWsgY2lwaGVycyBhbmQgdGhlaXIgdXNlIGNvbnN0aXR1dGVzIGEKKyAqICAgICAgICAgICAgICAgICBzZWN1cml0eSByaXNrLiBXZSByZWNvbW1lbmQgY29uc2lkZXJpbmcgc3Ryb25nZXIgY2lwaGVycworICogICAgICAgICAgICAgICAgIGluc3RlYWQuCisgKi8KK3ZvaWQgbWJlZHRsc19kZXNfa2V5X3NldF9wYXJpdHkodW5zaWduZWQgY2hhciBrZXlbTUJFRFRMU19ERVNfS0VZX1NJWkVdKTsKKworLyoqCisgKiBcYnJpZWYgICAgICAgICAgQ2hlY2sgdGhhdCBrZXkgcGFyaXR5IG9uIHRoZSBnaXZlbiBrZXkgaXMgb2RkLgorICoKKyAqICAgICAgICAgICAgICAgICBERVMga2V5cyBhcmUgNTYgYml0cyBsb25nLCBidXQgZWFjaCBieXRlIGlzIHBhZGRlZCB3aXRoCisgKiAgICAgICAgICAgICAgICAgYSBwYXJpdHkgYml0IHRvIGFsbG93IHZlcmlmaWNhdGlvbi4KKyAqCisgKiBccGFyYW0ga2V5ICAgICAgOC1ieXRlIHNlY3JldCBrZXkKKyAqCisgKiBccmV0dXJuICAgICAgICAgMCBpcyBwYXJpdHkgd2FzIG9rLCAxIGlmIHBhcml0eSB3YXMgbm90IGNvcnJlY3QuCisgKgorICogXHdhcm5pbmcgICAgICAgIERFUy8zREVTIGFyZSBjb25zaWRlcmVkIHdlYWsgY2lwaGVycyBhbmQgdGhlaXIgdXNlIGNvbnN0aXR1dGVzIGEKKyAqICAgICAgICAgICAgICAgICBzZWN1cml0eSByaXNrLiBXZSByZWNvbW1lbmQgY29uc2lkZXJpbmcgc3Ryb25nZXIgY2lwaGVycworICogICAgICAgICAgICAgICAgIGluc3RlYWQuCisgKi8KK01CRURUTFNfQ0hFQ0tfUkVUVVJOX1RZUElDQUwKK2ludCBtYmVkdGxzX2Rlc19rZXlfY2hlY2tfa2V5X3Bhcml0eShjb25zdCB1bnNpZ25lZCBjaGFyIGtleVtNQkVEVExTX0RFU19LRVlfU0laRV0pOworCisvKioKKyAqIFxicmllZiAgICAgICAgICBDaGVjayB0aGF0IGtleSBpcyBub3QgYSB3ZWFrIG9yIHNlbWktd2VhayBERVMga2V5CisgKgorICogXHBhcmFtIGtleSAgICAgIDgtYnl0ZSBzZWNyZXQga2V5CisgKgorICogXHJldHVybiAgICAgICAgIDAgaWYgbm8gd2VhayBrZXkgd2FzIGZvdW5kLCAxIGlmIGEgd2VhayBrZXkgd2FzIGlkZW50aWZpZWQuCisgKgorICogXHdhcm5pbmcgICAgICAgIERFUy8zREVTIGFyZSBjb25zaWRlcmVkIHdlYWsgY2lwaGVycyBhbmQgdGhlaXIgdXNlIGNvbnN0aXR1dGVzIGEKKyAqICAgICAgICAgICAgICAgICBzZWN1cml0eSByaXNrLiBXZSByZWNvbW1lbmQgY29uc2lkZXJpbmcgc3Ryb25nZXIgY2lwaGVycworICogICAgICAgICAgICAgICAgIGluc3RlYWQuCisgKi8KK01CRURUTFNfQ0hFQ0tfUkVUVVJOX1RZUElDQUwKK2ludCBtYmVkdGxzX2Rlc19rZXlfY2hlY2tfd2Vhayhjb25zdCB1bnNpZ25lZCBjaGFyIGtleVtNQkVEVExTX0RFU19LRVlfU0laRV0pOworCisvKioKKyAqIFxicmllZiAgICAgICAgICBERVMga2V5IHNjaGVkdWxlICg1Ni1iaXQsIGVuY3J5cHRpb24pCisgKgorICogXHBhcmFtIGN0eCAgICAgIERFUyBjb250ZXh0IHRvIGJlIGluaXRpYWxpemVkCisgKiBccGFyYW0ga2V5ICAgICAgOC1ieXRlIHNlY3JldCBrZXkKKyAqCisgKiBccmV0dXJuICAgICAgICAgMAorICoKKyAqIFx3YXJuaW5nICAgICAgICBERVMvM0RFUyBhcmUgY29uc2lkZXJlZCB3ZWFrIGNpcGhlcnMgYW5kIHRoZWlyIHVzZSBjb25zdGl0dXRlcyBhCisgKiAgICAgICAgICAgICAgICAgc2VjdXJpdHkgcmlzay4gV2UgcmVjb21tZW5kIGNvbnNpZGVyaW5nIHN0cm9uZ2VyIGNpcGhlcnMKKyAqICAgICAgICAgICAgICAgICBpbnN0ZWFkLgorICovCitNQkVEVExTX0NIRUNLX1JFVFVSTl9UWVBJQ0FMCitpbnQgbWJlZHRsc19kZXNfc2V0a2V5X2VuYyhtYmVkdGxzX2Rlc19jb250ZXh0ICpjdHgsIGNvbnN0IHVuc2lnbmVkIGNoYXIga2V5W01CRURUTFNfREVTX0tFWV9TSVpFXSk7CisKKy8qKgorICogXGJyaWVmICAgICAgICAgIERFUyBrZXkgc2NoZWR1bGUgKDU2LWJpdCwgZGVjcnlwdGlvbikKKyAqCisgKiBccGFyYW0gY3R4ICAgICAgREVTIGNvbnRleHQgdG8gYmUgaW5pdGlhbGl6ZWQKKyAqIFxwYXJhbSBrZXkgICAgICA4LWJ5dGUgc2VjcmV0IGtleQorICoKKyAqIFxyZXR1cm4gICAgICAgICAwCisgKgorICogXHdhcm5pbmcgICAgICAgIERFUy8zREVTIGFyZSBjb25zaWRlcmVkIHdlYWsgY2lwaGVycyBhbmQgdGhlaXIgdXNlIGNvbnN0aXR1dGVzIGEKKyAqICAgICAgICAgICAgICAgICBzZWN1cml0eSByaXNrLiBXZSByZWNvbW1lbmQgY29uc2lkZXJpbmcgc3Ryb25nZXIgY2lwaGVycworICogICAgICAgICAgICAgICAgIGluc3RlYWQuCisgKi8KK01CRURUTFNfQ0hFQ0tfUkVUVVJOX1RZUElDQUwKK2ludCBtYmVkdGxzX2Rlc19zZXRrZXlfZGVjKG1iZWR0bHNfZGVzX2NvbnRleHQgKmN0eCwgY29uc3QgdW5zaWduZWQgY2hhciBrZXlbTUJFRFRMU19ERVNfS0VZX1NJWkVdKTsKKworLyoqCisgKiBcYnJpZWYgICAgICAgICAgVHJpcGxlLURFUyBrZXkgc2NoZWR1bGUgKDExMi1iaXQsIGVuY3J5cHRpb24pCisgKgorICogXHBhcmFtIGN0eCAgICAgIDNERVMgY29udGV4dCB0byBiZSBpbml0aWFsaXplZAorICogXHBhcmFtIGtleSAgICAgIDE2LWJ5dGUgc2VjcmV0IGtleQorICoKKyAqIFxyZXR1cm4gICAgICAgICAwCisgKgorICogXHdhcm5pbmcgICAgICAgIERFUy8zREVTIGFyZSBjb25zaWRlcmVkIHdlYWsgY2lwaGVycyBhbmQgdGhlaXIgdXNlIGNvbnN0aXR1dGVzIGEKKyAqICAgICAgICAgICAgICAgICBzZWN1cml0eSByaXNrLiBXZSByZWNvbW1lbmQgY29uc2lkZXJpbmcgc3Ryb25nZXIgY2lwaGVycworICogICAgICAgICAgICAgICAgIGluc3RlYWQuCisgKi8KK01CRURUTFNfQ0hFQ0tfUkVUVVJOX1RZUElDQUwKK2ludCBtYmVkdGxzX2RlczNfc2V0MmtleV9lbmMobWJlZHRsc19kZXMzX2NvbnRleHQgKmN0eCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdW5zaWduZWQgY2hhciBrZXlbTUJFRFRMU19ERVNfS0VZX1NJWkUgKiAyXSk7CisKKy8qKgorICogXGJyaWVmICAgICAgICAgIFRyaXBsZS1ERVMga2V5IHNjaGVkdWxlICgxMTItYml0LCBkZWNyeXB0aW9uKQorICoKKyAqIFxwYXJhbSBjdHggICAgICAzREVTIGNvbnRleHQgdG8gYmUgaW5pdGlhbGl6ZWQKKyAqIFxwYXJhbSBrZXkgICAgICAxNi1ieXRlIHNlY3JldCBrZXkKKyAqCisgKiBccmV0dXJuICAgICAgICAgMAorICoKKyAqIFx3YXJuaW5nICAgICAgICBERVMvM0RFUyBhcmUgY29uc2lkZXJlZCB3ZWFrIGNpcGhlcnMgYW5kIHRoZWlyIHVzZSBjb25zdGl0dXRlcyBhCisgKiAgICAgICAgICAgICAgICAgc2VjdXJpdHkgcmlzay4gV2UgcmVjb21tZW5kIGNvbnNpZGVyaW5nIHN0cm9uZ2VyIGNpcGhlcnMKKyAqICAgICAgICAgICAgICAgICBpbnN0ZWFkLgorICovCitNQkVEVExTX0NIRUNLX1JFVFVSTl9UWVBJQ0FMCitpbnQgbWJlZHRsc19kZXMzX3NldDJrZXlfZGVjKG1iZWR0bHNfZGVzM19jb250ZXh0ICpjdHgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIga2V5W01CRURUTFNfREVTX0tFWV9TSVpFICogMl0pOworCisvKioKKyAqIFxicmllZiAgICAgICAgICBUcmlwbGUtREVTIGtleSBzY2hlZHVsZSAoMTY4LWJpdCwgZW5jcnlwdGlvbikKKyAqCisgKiBccGFyYW0gY3R4ICAgICAgM0RFUyBjb250ZXh0IHRvIGJlIGluaXRpYWxpemVkCisgKiBccGFyYW0ga2V5ICAgICAgMjQtYnl0ZSBzZWNyZXQga2V5CisgKgorICogXHJldHVybiAgICAgICAgIDAKKyAqCisgKiBcd2FybmluZyAgICAgICAgREVTLzNERVMgYXJlIGNvbnNpZGVyZWQgd2VhayBjaXBoZXJzIGFuZCB0aGVpciB1c2UgY29uc3RpdHV0ZXMgYQorICogICAgICAgICAgICAgICAgIHNlY3VyaXR5IHJpc2suIFdlIHJlY29tbWVuZCBjb25zaWRlcmluZyBzdHJvbmdlciBjaXBoZXJzCisgKiAgICAgICAgICAgICAgICAgaW5zdGVhZC4KKyAqLworTUJFRFRMU19DSEVDS19SRVRVUk5fVFlQSUNBTAoraW50IG1iZWR0bHNfZGVzM19zZXQza2V5X2VuYyhtYmVkdGxzX2RlczNfY29udGV4dCAqY3R4LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1bnNpZ25lZCBjaGFyIGtleVtNQkVEVExTX0RFU19LRVlfU0laRSAqIDNdKTsKKworLyoqCisgKiBcYnJpZWYgICAgICAgICAgVHJpcGxlLURFUyBrZXkgc2NoZWR1bGUgKDE2OC1iaXQsIGRlY3J5cHRpb24pCisgKgorICogXHBhcmFtIGN0eCAgICAgIDNERVMgY29udGV4dCB0byBiZSBpbml0aWFsaXplZAorICogXHBhcmFtIGtleSAgICAgIDI0LWJ5dGUgc2VjcmV0IGtleQorICoKKyAqIFxyZXR1cm4gICAgICAgICAwCisgKgorICogXHdhcm5pbmcgICAgICAgIERFUy8zREVTIGFyZSBjb25zaWRlcmVkIHdlYWsgY2lwaGVycyBhbmQgdGhlaXIgdXNlIGNvbnN0aXR1dGVzIGEKKyAqICAgICAgICAgICAgICAgICBzZWN1cml0eSByaXNrLiBXZSByZWNvbW1lbmQgY29uc2lkZXJpbmcgc3Ryb25nZXIgY2lwaGVycworICogICAgICAgICAgICAgICAgIGluc3RlYWQuCisgKi8KK01CRURUTFNfQ0hFQ0tfUkVUVVJOX1RZUElDQUwKK2ludCBtYmVkdGxzX2RlczNfc2V0M2tleV9kZWMobWJlZHRsc19kZXMzX2NvbnRleHQgKmN0eCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdW5zaWduZWQgY2hhciBrZXlbTUJFRFRMU19ERVNfS0VZX1NJWkUgKiAzXSk7CisKKy8qKgorICogXGJyaWVmICAgICAgICAgIERFUy1FQ0IgYmxvY2sgZW5jcnlwdGlvbi9kZWNyeXB0aW9uCisgKgorICogXHBhcmFtIGN0eCAgICAgIERFUyBjb250ZXh0CisgKiBccGFyYW0gaW5wdXQgICAgNjQtYml0IGlucHV0IGJsb2NrCisgKiBccGFyYW0gb3V0cHV0ICAgNjQtYml0IG91dHB1dCBibG9jaworICoKKyAqIFxyZXR1cm4gICAgICAgICAwIGlmIHN1Y2Nlc3NmdWwKKyAqCisgKiBcd2FybmluZyAgICAgICAgREVTLzNERVMgYXJlIGNvbnNpZGVyZWQgd2VhayBjaXBoZXJzIGFuZCB0aGVpciB1c2UgY29uc3RpdHV0ZXMgYQorICogICAgICAgICAgICAgICAgIHNlY3VyaXR5IHJpc2suIFdlIHJlY29tbWVuZCBjb25zaWRlcmluZyBzdHJvbmdlciBjaXBoZXJzCisgKiAgICAgICAgICAgICAgICAgaW5zdGVhZC4KKyAqLworTUJFRFRMU19DSEVDS19SRVRVUk5fVFlQSUNBTAoraW50IG1iZWR0bHNfZGVzX2NyeXB0X2VjYihtYmVkdGxzX2Rlc19jb250ZXh0ICpjdHgsCisgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgaW5wdXRbOF0sCisgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGNoYXIgb3V0cHV0WzhdKTsKKworI2lmIGRlZmluZWQoTUJFRFRMU19DSVBIRVJfTU9ERV9DQkMpCisvKioKKyAqIFxicmllZiAgICAgICAgICBERVMtQ0JDIGJ1ZmZlciBlbmNyeXB0aW9uL2RlY3J5cHRpb24KKyAqCisgKiBcbm90ZSAgICAgICAgICAgVXBvbiBleGl0LCB0aGUgY29udGVudCBvZiB0aGUgSVYgaXMgdXBkYXRlZCBzbyB0aGF0IHlvdSBjYW4KKyAqICAgICAgICAgICAgICAgICBjYWxsIHRoZSBmdW5jdGlvbiBzYW1lIGZ1bmN0aW9uIGFnYWluIG9uIHRoZSBmb2xsb3dpbmcKKyAqICAgICAgICAgICAgICAgICBibG9jayhzKSBvZiBkYXRhIGFuZCBnZXQgdGhlIHNhbWUgcmVzdWx0IGFzIGlmIGl0IHdhcworICogICAgICAgICAgICAgICAgIGVuY3J5cHRlZCBpbiBvbmUgY2FsbC4gVGhpcyBhbGxvd3MgYSAic3RyZWFtaW5nIiB1c2FnZS4KKyAqICAgICAgICAgICAgICAgICBJZiBvbiB0aGUgb3RoZXIgaGFuZCB5b3UgbmVlZCB0byByZXRhaW4gdGhlIGNvbnRlbnRzIG9mIHRoZQorICogICAgICAgICAgICAgICAgIElWLCB5b3Ugc2hvdWxkIGVpdGhlciBzYXZlIGl0IG1hbnVhbGx5IG9yIHVzZSB0aGUgY2lwaGVyCisgKiAgICAgICAgICAgICAgICAgbW9kdWxlIGluc3RlYWQuCisgKgorICogXHBhcmFtIGN0eCAgICAgIERFUyBjb250ZXh0CisgKiBccGFyYW0gbW9kZSAgICAgTUJFRFRMU19ERVNfRU5DUllQVCBvciBNQkVEVExTX0RFU19ERUNSWVBUCisgKiBccGFyYW0gbGVuZ3RoICAgbGVuZ3RoIG9mIHRoZSBpbnB1dCBkYXRhCisgKiBccGFyYW0gaXYgICAgICAgaW5pdGlhbGl6YXRpb24gdmVjdG9yICh1cGRhdGVkIGFmdGVyIHVzZSkKKyAqIFxwYXJhbSBpbnB1dCAgICBidWZmZXIgaG9sZGluZyB0aGUgaW5wdXQgZGF0YQorICogXHBhcmFtIG91dHB1dCAgIGJ1ZmZlciBob2xkaW5nIHRoZSBvdXRwdXQgZGF0YQorICoKKyAqIFx3YXJuaW5nICAgICAgICBERVMvM0RFUyBhcmUgY29uc2lkZXJlZCB3ZWFrIGNpcGhlcnMgYW5kIHRoZWlyIHVzZSBjb25zdGl0dXRlcyBhCisgKiAgICAgICAgICAgICAgICAgc2VjdXJpdHkgcmlzay4gV2UgcmVjb21tZW5kIGNvbnNpZGVyaW5nIHN0cm9uZ2VyIGNpcGhlcnMKKyAqICAgICAgICAgICAgICAgICBpbnN0ZWFkLgorICovCitNQkVEVExTX0NIRUNLX1JFVFVSTl9UWVBJQ0FMCitpbnQgbWJlZHRsc19kZXNfY3J5cHRfY2JjKG1iZWR0bHNfZGVzX2NvbnRleHQgKmN0eCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IG1vZGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBsZW5ndGgsCisgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGNoYXIgaXZbOF0sCisgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgKmlucHV0LAorICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBjaGFyICpvdXRwdXQpOworI2VuZGlmIC8qIE1CRURUTFNfQ0lQSEVSX01PREVfQ0JDICovCisKKy8qKgorICogXGJyaWVmICAgICAgICAgIDNERVMtRUNCIGJsb2NrIGVuY3J5cHRpb24vZGVjcnlwdGlvbgorICoKKyAqIFxwYXJhbSBjdHggICAgICAzREVTIGNvbnRleHQKKyAqIFxwYXJhbSBpbnB1dCAgICA2NC1iaXQgaW5wdXQgYmxvY2sKKyAqIFxwYXJhbSBvdXRwdXQgICA2NC1iaXQgb3V0cHV0IGJsb2NrCisgKgorICogXHJldHVybiAgICAgICAgIDAgaWYgc3VjY2Vzc2Z1bAorICoKKyAqIFx3YXJuaW5nICAgICAgICBERVMvM0RFUyBhcmUgY29uc2lkZXJlZCB3ZWFrIGNpcGhlcnMgYW5kIHRoZWlyIHVzZSBjb25zdGl0dXRlcyBhCisgKiAgICAgICAgICAgICAgICAgc2VjdXJpdHkgcmlzay4gV2UgcmVjb21tZW5kIGNvbnNpZGVyaW5nIHN0cm9uZ2VyIGNpcGhlcnMKKyAqICAgICAgICAgICAgICAgICBpbnN0ZWFkLgorICovCitNQkVEVExTX0NIRUNLX1JFVFVSTl9UWVBJQ0FMCitpbnQgbWJlZHRsc19kZXMzX2NyeXB0X2VjYihtYmVkdGxzX2RlczNfY29udGV4dCAqY3R4LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdW5zaWduZWQgY2hhciBpbnB1dFs4XSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGNoYXIgb3V0cHV0WzhdKTsKKworI2lmIGRlZmluZWQoTUJFRFRMU19DSVBIRVJfTU9ERV9DQkMpCisvKioKKyAqIFxicmllZiAgICAgICAgICAzREVTLUNCQyBidWZmZXIgZW5jcnlwdGlvbi9kZWNyeXB0aW9uCisgKgorICogXG5vdGUgICAgICAgICAgIFVwb24gZXhpdCwgdGhlIGNvbnRlbnQgb2YgdGhlIElWIGlzIHVwZGF0ZWQgc28gdGhhdCB5b3UgY2FuCisgKiAgICAgICAgICAgICAgICAgY2FsbCB0aGUgZnVuY3Rpb24gc2FtZSBmdW5jdGlvbiBhZ2FpbiBvbiB0aGUgZm9sbG93aW5nCisgKiAgICAgICAgICAgICAgICAgYmxvY2socykgb2YgZGF0YSBhbmQgZ2V0IHRoZSBzYW1lIHJlc3VsdCBhcyBpZiBpdCB3YXMKKyAqICAgICAgICAgICAgICAgICBlbmNyeXB0ZWQgaW4gb25lIGNhbGwuIFRoaXMgYWxsb3dzIGEgInN0cmVhbWluZyIgdXNhZ2UuCisgKiAgICAgICAgICAgICAgICAgSWYgb24gdGhlIG90aGVyIGhhbmQgeW91IG5lZWQgdG8gcmV0YWluIHRoZSBjb250ZW50cyBvZiB0aGUKKyAqICAgICAgICAgICAgICAgICBJViwgeW91IHNob3VsZCBlaXRoZXIgc2F2ZSBpdCBtYW51YWxseSBvciB1c2UgdGhlIGNpcGhlcgorICogICAgICAgICAgICAgICAgIG1vZHVsZSBpbnN0ZWFkLgorICoKKyAqIFxwYXJhbSBjdHggICAgICAzREVTIGNvbnRleHQKKyAqIFxwYXJhbSBtb2RlICAgICBNQkVEVExTX0RFU19FTkNSWVBUIG9yIE1CRURUTFNfREVTX0RFQ1JZUFQKKyAqIFxwYXJhbSBsZW5ndGggICBsZW5ndGggb2YgdGhlIGlucHV0IGRhdGEKKyAqIFxwYXJhbSBpdiAgICAgICBpbml0aWFsaXphdGlvbiB2ZWN0b3IgKHVwZGF0ZWQgYWZ0ZXIgdXNlKQorICogXHBhcmFtIGlucHV0ICAgIGJ1ZmZlciBob2xkaW5nIHRoZSBpbnB1dCBkYXRhCisgKiBccGFyYW0gb3V0cHV0ICAgYnVmZmVyIGhvbGRpbmcgdGhlIG91dHB1dCBkYXRhCisgKgorICogXHJldHVybiAgICAgICAgIDAgaWYgc3VjY2Vzc2Z1bCwgb3IgTUJFRFRMU19FUlJfREVTX0lOVkFMSURfSU5QVVRfTEVOR1RICisgKgorICogXHdhcm5pbmcgICAgICAgIERFUy8zREVTIGFyZSBjb25zaWRlcmVkIHdlYWsgY2lwaGVycyBhbmQgdGhlaXIgdXNlIGNvbnN0aXR1dGVzIGEKKyAqICAgICAgICAgICAgICAgICBzZWN1cml0eSByaXNrLiBXZSByZWNvbW1lbmQgY29uc2lkZXJpbmcgc3Ryb25nZXIgY2lwaGVycworICogICAgICAgICAgICAgICAgIGluc3RlYWQuCisgKi8KK01CRURUTFNfQ0hFQ0tfUkVUVVJOX1RZUElDQUwKK2ludCBtYmVkdGxzX2RlczNfY3J5cHRfY2JjKG1iZWR0bHNfZGVzM19jb250ZXh0ICpjdHgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgbW9kZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBsZW5ndGgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBjaGFyIGl2WzhdLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdW5zaWduZWQgY2hhciAqaW5wdXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBjaGFyICpvdXRwdXQpOworI2VuZGlmIC8qIE1CRURUTFNfQ0lQSEVSX01PREVfQ0JDICovCisKKy8qKgorICogXGJyaWVmICAgICAgICAgIEludGVybmFsIGZ1bmN0aW9uIGZvciBrZXkgZXhwYW5zaW9uLgorICogICAgICAgICAgICAgICAgIChPbmx5IGV4cG9zZWQgdG8gYWxsb3cgb3ZlcnJpZGluZyBpdCwKKyAqICAgICAgICAgICAgICAgICBzZWUgTUJFRFRMU19ERVNfU0VUS0VZX0FMVCkKKyAqCisgKiBccGFyYW0gU0sgICAgICAgUm91bmQga2V5cworICogXHBhcmFtIGtleSAgICAgIEJhc2Uga2V5CisgKgorICogXHdhcm5pbmcgICAgICAgIERFUy8zREVTIGFyZSBjb25zaWRlcmVkIHdlYWsgY2lwaGVycyBhbmQgdGhlaXIgdXNlIGNvbnN0aXR1dGVzIGEKKyAqICAgICAgICAgICAgICAgICBzZWN1cml0eSByaXNrLiBXZSByZWNvbW1lbmQgY29uc2lkZXJpbmcgc3Ryb25nZXIgY2lwaGVycworICogICAgICAgICAgICAgICAgIGluc3RlYWQuCisgKi8KK3ZvaWQgbWJlZHRsc19kZXNfc2V0a2V5KHVpbnQzMl90IFNLWzMyXSwKKyAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIga2V5W01CRURUTFNfREVTX0tFWV9TSVpFXSk7CisKKyNpZiBkZWZpbmVkKE1CRURUTFNfU0VMRl9URVNUKQorCisvKioKKyAqIFxicmllZiAgICAgICAgICBDaGVja3VwIHJvdXRpbmUKKyAqCisgKiBccmV0dXJuICAgICAgICAgMCBpZiBzdWNjZXNzZnVsLCBvciAxIGlmIHRoZSB0ZXN0IGZhaWxlZAorICovCitNQkVEVExTX0NIRUNLX1JFVFVSTl9DUklUSUNBTAoraW50IG1iZWR0bHNfZGVzX3NlbGZfdGVzdChpbnQgdmVyYm9zZSk7CisKKyNlbmRpZiAvKiBNQkVEVExTX1NFTEZfVEVTVCAqLworCisjaWZkZWYgX19jcGx1c3BsdXMKK30KKyNlbmRpZgorCisjZW5kaWYgLyogZGVzLmggKi8KZGlmZiAtLWdpdCBhL3RmLXBzYS1jcnlwdG8vZHJpdmVycy9idWlsdGluL2luY2x1ZGUvbWJlZHRscy9kaG0uaCBiL3RmLXBzYS1jcnlwdG8vZHJpdmVycy9idWlsdGluL2luY2x1ZGUvbWJlZHRscy9kaG0uaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wMTQzNDA1Ci0tLSAvZGV2L251bGwKKysrIGIvdGYtcHNhLWNyeXB0by9kcml2ZXJzL2J1aWx0aW4vaW5jbHVkZS9tYmVkdGxzL2RobS5oCkBAIC0wLDAgKzEsOTY2IEBACisvKioKKyAqIFxmaWxlIGRobS5oCisgKgorICogXGJyaWVmICAgVGhpcyBmaWxlIGNvbnRhaW5zIERpZmZpZS1IZWxsbWFuLU1lcmtsZSAoREhNKSBrZXkgZXhjaGFuZ2UKKyAqICAgICAgICAgIGRlZmluaXRpb25zIGFuZCBmdW5jdGlvbnMuCisgKgorICogRGlmZmllLUhlbGxtYW4tTWVya2xlIChESE0pIGtleSBleGNoYW5nZSBpcyBkZWZpbmVkIGluCisgKiA8ZW0+UkZDLTI2MzE6IERpZmZpZS1IZWxsbWFuIEtleSBBZ3JlZW1lbnQgTWV0aG9kPC9lbT4gYW5kCisgKiA8ZW0+UHVibGljLUtleSBDcnlwdG9ncmFwaHkgU3RhbmRhcmRzIChQS0NTKSAjMzogRGlmZmllCisgKiBIZWxsbWFuIEtleSBBZ3JlZW1lbnQgU3RhbmRhcmQ8L2VtPi4KKyAqCisgKiA8ZW0+UkZDLTM1MjY6IE1vcmUgTW9kdWxhciBFeHBvbmVudGlhbCAoTU9EUCkgRGlmZmllLUhlbGxtYW4gZ3JvdXBzIGZvcgorICogSW50ZXJuZXQgS2V5IEV4Y2hhbmdlIChJS0UpPC9lbT4gZGVmaW5lcyBhIG51bWJlciBvZiBzdGFuZGFyZGl6ZWQKKyAqIERpZmZpZS1IZWxsbWFuIGdyb3VwcyBmb3IgSUtFLgorICoKKyAqIDxlbT5SRkMtNTExNDogQWRkaXRpb25hbCBEaWZmaWUtSGVsbG1hbiBHcm91cHMgZm9yIFVzZSB3aXRoIElFVEYKKyAqIFN0YW5kYXJkczwvZW0+IGRlZmluZXMgYSBudW1iZXIgb2Ygc3RhbmRhcmRpemVkIERpZmZpZS1IZWxsbWFuCisgKiBncm91cHMgdGhhdCBjYW4gYmUgdXNlZC4KKyAqCisgKiBcd2FybmluZyAgVGhlIHNlY3VyaXR5IG9mIHRoZSBESE0ga2V5IGV4Y2hhbmdlIHJlbGllcyBvbiB0aGUgcHJvcGVyIGNob2ljZQorICogICAgICAgICAgIG9mIHByaW1lIG1vZHVsdXMgLSBvcHRpbWFsbHksIGl0IHNob3VsZCBiZSBhIHNhZmUgcHJpbWUuIFRoZSB1c2FnZQorICogICAgICAgICAgIG9mIG5vbi1zYWZlIHByaW1lcyBib3RoIGRlY3JlYXNlcyB0aGUgZGlmZmljdWx0eSBvZiB0aGUgdW5kZXJseWluZworICogICAgICAgICAgIGRpc2NyZXRlIGxvZ2FyaXRobSBwcm9ibGVtIGFuZCBjYW4gbGVhZCB0byBzbWFsbCBzdWJncm91cCBhdHRhY2tzCisgKiAgICAgICAgICAgbGVha2luZyBwcml2YXRlIGV4cG9uZW50IGJpdHMgd2hlbiBpbnZhbGlkIHB1YmxpYyBrZXlzIGFyZSB1c2VkCisgKiAgICAgICAgICAgYW5kIG5vdCBkZXRlY3RlZC4gVGhpcyBpcyBlc3BlY2lhbGx5IHJlbGV2YW50IGlmIHRoZSBzYW1lIERITQorICogICAgICAgICAgIHBhcmFtZXRlcnMgYXJlIHJldXNlZCBmb3IgbXVsdGlwbGUga2V5IGV4Y2hhbmdlcyBhcyBpbiBzdGF0aWMgREhNLAorICogICAgICAgICAgIHdoaWxlIHRoZSBjcml0aWNhbGl0eSBvZiBzbWFsbC1zdWJncm91cCBhdHRhY2tzIGlzIGxvd2VyIGZvcgorICogICAgICAgICAgIGVwaGVtZXJhbCBESE0uCisgKgorICogXHdhcm5pbmcgIEZvciBwZXJmb3JtYW5jZSByZWFzb25zLCB0aGUgY29kZSBkb2VzIG5laXRoZXIgcGVyZm9ybSBwcmltYWxpdHkKKyAqICAgICAgICAgICBub3Igc2FmZSBwcmltYWxpdHkgdGVzdHMsIG5vciB0aGUgZXhwZW5zaXZlIGNoZWNrcyBmb3IgaW52YWxpZAorICogICAgICAgICAgIHN1Ymdyb3Vwcy4gTW9yZW92ZXIsIGV2ZW4gaWYgdGhlc2Ugd2VyZSBwZXJmb3JtZWQsIG5vbi1zdGFuZGFyZGl6ZWQKKyAqICAgICAgICAgICBwcmltZXMgY2Fubm90IGJlIHRydXN0ZWQgYmVjYXVzZSBvZiB0aGUgcG9zc2liaWxpdHkgb2YgYmFja2Rvb3JzCisgKiAgICAgICAgICAgdGhhdCBjYW4ndCBiZSBlZmZlY3RpdmVseSBjaGVja2VkIGZvci4KKyAqCisgKiBcd2FybmluZyAgRGlmZmllLUhlbGxtYW4tTWVya2xlIGlzIHRoZXJlZm9yZSBhIHNlY3VyaXR5IHJpc2sgd2hlbiBub3QgdXNpbmcKKyAqICAgICAgICAgICBzdGFuZGFyZGl6ZWQgcHJpbWVzIGdlbmVyYXRlZCB1c2luZyBhIHRydXN0d29ydGh5ICgibm90aGluZyB1cAorICogICAgICAgICAgIG15IHNsZWV2ZSIpIG1ldGhvZCwgc3VjaCBhcyB0aGUgUkZDIDM1MjYgLyA3OTE5IHByaW1lcy4gSW4gdGhlIFRMUworICogICAgICAgICAgIHByb3RvY29sLCBESCBwYXJhbWV0ZXJzIG5lZWQgdG8gYmUgbmVnb3RpYXRlZCwgc28gdXNpbmcgdGhlIGRlZmF1bHQKKyAqICAgICAgICAgICBwcmltZXMgc3lzdGVtYXRpY2FsbHkgaXMgbm90IGFsd2F5cyBhbiBvcHRpb24uIElmIHBvc3NpYmxlLCB1c2UKKyAqICAgICAgICAgICBFbGxpcHRpYyBDdXJ2ZSBEaWZmaWUtSGVsbG1hbiAoRUNESCksIHdoaWNoIGhhcyBiZXR0ZXIgcGVyZm9ybWFuY2UsCisgKiAgICAgICAgICAgYW5kIGZvciB3aGljaCB0aGUgVExTIHByb3RvY29sIG1hbmRhdGVzIHRoZSB1c2Ugb2Ygc3RhbmRhcmQKKyAqICAgICAgICAgICBwYXJhbWV0ZXJzLgorICoKKyAqLworLyoKKyAqICBDb3B5cmlnaHQgVGhlIE1iZWQgVExTIENvbnRyaWJ1dG9ycworICogIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wIE9SIEdQTC0yLjAtb3ItbGF0ZXIKKyAqLworCisjaWZuZGVmIE1CRURUTFNfREhNX0gKKyNkZWZpbmUgTUJFRFRMU19ESE1fSAorI2luY2x1ZGUgIm1iZWR0bHMvcHJpdmF0ZV9hY2Nlc3MuaCIKKworI2luY2x1ZGUgIm1iZWR0bHMvYnVpbGRfaW5mby5oIgorI2luY2x1ZGUgIm1iZWR0bHMvYmlnbnVtLmgiCisKKy8qCisgKiBESE0gRXJyb3IgY29kZXMKKyAqLworLyoqIEJhZCBpbnB1dCBwYXJhbWV0ZXJzLiAqLworI2RlZmluZSBNQkVEVExTX0VSUl9ESE1fQkFEX0lOUFVUX0RBVEEgICAgICAgICAgICAgICAgICAgIC0weDMwODAKKy8qKiBSZWFkaW5nIG9mIHRoZSBESE0gcGFyYW1ldGVycyBmYWlsZWQuICovCisjZGVmaW5lIE1CRURUTFNfRVJSX0RITV9SRUFEX1BBUkFNU19GQUlMRUQgICAgICAgICAgICAgICAgLTB4MzEwMAorLyoqIE1ha2luZyBvZiB0aGUgREhNIHBhcmFtZXRlcnMgZmFpbGVkLiAqLworI2RlZmluZSBNQkVEVExTX0VSUl9ESE1fTUFLRV9QQVJBTVNfRkFJTEVEICAgICAgICAgICAgICAgIC0weDMxODAKKy8qKiBSZWFkaW5nIG9mIHRoZSBwdWJsaWMgdmFsdWVzIGZhaWxlZC4gKi8KKyNkZWZpbmUgTUJFRFRMU19FUlJfREhNX1JFQURfUFVCTElDX0ZBSUxFRCAgICAgICAgICAgICAgICAtMHgzMjAwCisvKiogTWFraW5nIG9mIHRoZSBwdWJsaWMgdmFsdWUgZmFpbGVkLiAqLworI2RlZmluZSBNQkVEVExTX0VSUl9ESE1fTUFLRV9QVUJMSUNfRkFJTEVEICAgICAgICAgICAgICAgIC0weDMyODAKKy8qKiBDYWxjdWxhdGlvbiBvZiB0aGUgREhNIHNlY3JldCBmYWlsZWQuICovCisjZGVmaW5lIE1CRURUTFNfRVJSX0RITV9DQUxDX1NFQ1JFVF9GQUlMRUQgICAgICAgICAgICAgICAgLTB4MzMwMAorLyoqIFRoZSBBU04uMSBkYXRhIGlzIG5vdCBmb3JtYXR0ZWQgY29ycmVjdGx5LiAqLworI2RlZmluZSBNQkVEVExTX0VSUl9ESE1fSU5WQUxJRF9GT1JNQVQgICAgICAgICAgICAgICAgICAgIC0weDMzODAKKy8qKiBBbGxvY2F0aW9uIG9mIG1lbW9yeSBmYWlsZWQuICovCisjZGVmaW5lIE1CRURUTFNfRVJSX0RITV9BTExPQ19GQUlMRUQgICAgICAgICAgICAgICAgICAgICAgLTB4MzQwMAorLyoqIFJlYWQgb3Igd3JpdGUgb2YgZmlsZSBmYWlsZWQuICovCisjZGVmaW5lIE1CRURUTFNfRVJSX0RITV9GSUxFX0lPX0VSUk9SICAgICAgICAgICAgICAgICAgICAgLTB4MzQ4MAorLyoqIFNldHRpbmcgdGhlIG1vZHVsdXMgYW5kIGdlbmVyYXRvciBmYWlsZWQuICovCisjZGVmaW5lIE1CRURUTFNfRVJSX0RITV9TRVRfR1JPVVBfRkFJTEVEICAgICAgICAgICAgICAgICAgLTB4MzU4MAorCisvKiogV2hpY2ggcGFyYW1ldGVyIHRvIGFjY2VzcyBpbiBtYmVkdGxzX2RobV9nZXRfdmFsdWUoKS4gKi8KK3R5cGVkZWYgZW51bSB7CisgICAgTUJFRFRMU19ESE1fUEFSQU1fUCwgIC8qITwgIFRoZSBwcmltZSBtb2R1bHVzLiAqLworICAgIE1CRURUTFNfREhNX1BBUkFNX0csICAvKiE8ICBUaGUgZ2VuZXJhdG9yLiAqLworICAgIE1CRURUTFNfREhNX1BBUkFNX1gsICAvKiE8ICBPdXIgc2VjcmV0IHZhbHVlLiAqLworICAgIE1CRURUTFNfREhNX1BBUkFNX0dYLCAvKiE8ICBPdXIgcHVibGljIGtleSA9IFxjIEdeWCBtb2QgXGMgUC4gKi8KKyAgICBNQkVEVExTX0RITV9QQVJBTV9HWSwgLyohPCAgVGhlIHB1YmxpYyBrZXkgb2YgdGhlIHBlZXIgPSBcYyBHXlkgbW9kIFxjIFAuICovCisgICAgTUJFRFRMU19ESE1fUEFSQU1fSywgIC8qITwgIFRoZSBzaGFyZWQgc2VjcmV0ID0gXGMgR14oWFkpIG1vZCBcYyBQLiAqLworfSBtYmVkdGxzX2RobV9wYXJhbWV0ZXI7CisKKyNpZmRlZiBfX2NwbHVzcGx1cworZXh0ZXJuICJDIiB7CisjZW5kaWYKKworLyoqCisgKiBcYnJpZWYgICAgICAgICAgVGhlIERITSBjb250ZXh0IHN0cnVjdHVyZS4KKyAqLwordHlwZWRlZiBzdHJ1Y3QgbWJlZHRsc19kaG1fY29udGV4dCB7CisgICAgbWJlZHRsc19tcGkgTUJFRFRMU19QUklWQVRFKFApOyAgICAgIC8qITwgIFRoZSBwcmltZSBtb2R1bHVzLiAqLworICAgIG1iZWR0bHNfbXBpIE1CRURUTFNfUFJJVkFURShHKTsgICAgICAvKiE8ICBUaGUgZ2VuZXJhdG9yLiAqLworICAgIG1iZWR0bHNfbXBpIE1CRURUTFNfUFJJVkFURShYKTsgICAgICAvKiE8ICBPdXIgc2VjcmV0IHZhbHVlLiAqLworICAgIG1iZWR0bHNfbXBpIE1CRURUTFNfUFJJVkFURShHWCk7ICAgICAvKiE8ICBPdXIgcHVibGljIGtleSA9IFxjIEdeWCBtb2QgXGMgUC4gKi8KKyAgICBtYmVkdGxzX21waSBNQkVEVExTX1BSSVZBVEUoR1kpOyAgICAgLyohPCAgVGhlIHB1YmxpYyBrZXkgb2YgdGhlIHBlZXIgPSBcYyBHXlkgbW9kIFxjIFAuICovCisgICAgbWJlZHRsc19tcGkgTUJFRFRMU19QUklWQVRFKEspOyAgICAgIC8qITwgIFRoZSBzaGFyZWQgc2VjcmV0ID0gXGMgR14oWFkpIG1vZCBcYyBQLiAqLworICAgIG1iZWR0bHNfbXBpIE1CRURUTFNfUFJJVkFURShSUCk7ICAgICAvKiE8ICBUaGUgY2FjaGVkIHZhbHVlID0gXGMgUl4yIG1vZCBcYyBQLiAqLworICAgIG1iZWR0bHNfbXBpIE1CRURUTFNfUFJJVkFURShWaSk7ICAgICAvKiE8ICBUaGUgYmxpbmRpbmcgdmFsdWUuICovCisgICAgbWJlZHRsc19tcGkgTUJFRFRMU19QUklWQVRFKFZmKTsgICAgIC8qITwgIFRoZSB1bmJsaW5kaW5nIHZhbHVlLiAqLworICAgIG1iZWR0bHNfbXBpIE1CRURUTFNfUFJJVkFURShwWCk7ICAgICAvKiE8ICBUaGUgcHJldmlvdXMgXGMgWC4gKi8KK30KK21iZWR0bHNfZGhtX2NvbnRleHQ7CisKKy8qKgorICogXGJyaWVmICAgICAgICAgIFRoaXMgZnVuY3Rpb24gaW5pdGlhbGl6ZXMgdGhlIERITSBjb250ZXh0LgorICoKKyAqIFxwYXJhbSBjdHggICAgICBUaGUgREhNIGNvbnRleHQgdG8gaW5pdGlhbGl6ZS4KKyAqLwordm9pZCBtYmVkdGxzX2RobV9pbml0KG1iZWR0bHNfZGhtX2NvbnRleHQgKmN0eCk7CisKKy8qKgorICogXGJyaWVmICAgICAgICAgIFRoaXMgZnVuY3Rpb24gcGFyc2VzIHRoZSBESE0gcGFyYW1ldGVycyBpbiBhCisgKiAgICAgICAgICAgICAgICAgVExTIFNlcnZlcktleUV4Y2hhbmdlIGhhbmRzaGFrZSBtZXNzYWdlCisgKiAgICAgICAgICAgICAgICAgKERITSBtb2R1bHVzLCBnZW5lcmF0b3IsIGFuZCBwdWJsaWMga2V5KS4KKyAqCisgKiBcbm90ZSAgICAgICAgICAgSW4gYSBUTFMgaGFuZHNoYWtlLCB0aGlzIGlzIHRoZSBob3cgdGhlIGNsaWVudAorICogICAgICAgICAgICAgICAgIHNldHMgdXAgaXRzIERITSBjb250ZXh0IGZyb20gdGhlIHNlcnZlcidzIHB1YmxpYworICogICAgICAgICAgICAgICAgIERITSBrZXkgbWF0ZXJpYWwuCisgKgorICogXHBhcmFtIGN0eCAgICAgIFRoZSBESE0gY29udGV4dCB0byB1c2UuIFRoaXMgbXVzdCBiZSBpbml0aWFsaXplZC4KKyAqIFxwYXJhbSBwICAgICAgICBPbiBpbnB1dCwgKnAgbXVzdCBiZSB0aGUgc3RhcnQgb2YgdGhlIGlucHV0IGJ1ZmZlci4KKyAqICAgICAgICAgICAgICAgICBPbiBvdXRwdXQsICpwIGlzIHVwZGF0ZWQgdG8gcG9pbnQgdG8gdGhlIGVuZCBvZiB0aGUgZGF0YQorICogICAgICAgICAgICAgICAgIHRoYXQgaGFzIGJlZW4gcmVhZC4gT24gc3VjY2VzcywgdGhpcyBpcyB0aGUgZmlyc3QgYnl0ZQorICogICAgICAgICAgICAgICAgIHBhc3QgdGhlIGVuZCBvZiB0aGUgU2VydmVyS2V5RXhjaGFuZ2UgcGFyYW1ldGVycy4KKyAqICAgICAgICAgICAgICAgICBPbiBlcnJvciwgdGhpcyBpcyB0aGUgcG9pbnQgYXQgd2hpY2ggYW4gZXJyb3IgaGFzIGJlZW4KKyAqICAgICAgICAgICAgICAgICBkZXRlY3RlZCwgd2hpY2ggaXMgdXN1YWxseSBub3QgdXNlZnVsIGV4Y2VwdCB0byBkZWJ1ZworICogICAgICAgICAgICAgICAgIGZhaWx1cmVzLgorICogXHBhcmFtIGVuZCAgICAgIFRoZSBlbmQgb2YgdGhlIGlucHV0IGJ1ZmZlci4KKyAqCisgKiBccmV0dXJuICAgICAgICAgXGMgMCBvbiBzdWNjZXNzLgorICogXHJldHVybiAgICAgICAgIEFuIFxjIE1CRURUTFNfRVJSX0RITV9YWFggZXJyb3IgY29kZSBvbiBmYWlsdXJlLgorICovCitpbnQgbWJlZHRsc19kaG1fcmVhZF9wYXJhbXMobWJlZHRsc19kaG1fY29udGV4dCAqY3R4LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGNoYXIgKipwLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgKmVuZCk7CisKKy8qKgorICogXGJyaWVmICAgICAgICAgIFRoaXMgZnVuY3Rpb24gZ2VuZXJhdGVzIGEgREhNIGtleSBwYWlyIGFuZCBleHBvcnRzIGl0cworICogICAgICAgICAgICAgICAgIHB1YmxpYyBwYXJ0IHRvZ2V0aGVyIHdpdGggdGhlIERITSBwYXJhbWV0ZXJzIGluIHRoZSBmb3JtYXQKKyAqICAgICAgICAgICAgICAgICB1c2VkIGluIGEgVExTIFNlcnZlcktleUV4Y2hhbmdlIGhhbmRzaGFrZSBtZXNzYWdlLgorICoKKyAqIFxub3RlICAgICAgICAgICBUaGlzIGZ1bmN0aW9uIGFzc3VtZXMgdGhhdCB0aGUgREhNIHBhcmFtZXRlcnMgXGMgY3R4LT5QCisgKiAgICAgICAgICAgICAgICAgYW5kIFxjIGN0eC0+RyBoYXZlIGFscmVhZHkgYmVlbiBwcm9wZXJseSBzZXQuIEZvciB0aGF0LCB1c2UKKyAqICAgICAgICAgICAgICAgICBtYmVkdGxzX2RobV9zZXRfZ3JvdXAoKSBiZWxvdyBpbiBjb25qdW5jdGlvbiB3aXRoCisgKiAgICAgICAgICAgICAgICAgbWJlZHRsc19tcGlfcmVhZF9iaW5hcnkoKSBhbmQgbWJlZHRsc19tcGlfcmVhZF9zdHJpbmcoKS4KKyAqCisgKiBcbm90ZSAgICAgICAgICAgSW4gYSBUTFMgaGFuZHNoYWtlLCB0aGlzIGlzIHRoZSBob3cgdGhlIHNlcnZlciBnZW5lcmF0ZXMKKyAqICAgICAgICAgICAgICAgICBhbmQgZXhwb3J0cyBpdHMgREhNIGtleSBtYXRlcmlhbC4KKyAqCisgKiBccGFyYW0gY3R4ICAgICAgVGhlIERITSBjb250ZXh0IHRvIHVzZS4gVGhpcyBtdXN0IGJlIGluaXRpYWxpemVkCisgKiAgICAgICAgICAgICAgICAgYW5kIGhhdmUgdGhlIERITSBwYXJhbWV0ZXJzIHNldC4gSXQgbWF5IG9yIG1heSBub3QKKyAqICAgICAgICAgICAgICAgICBhbHJlYWR5IGhhdmUgaW1wb3J0ZWQgdGhlIHBlZXIncyBwdWJsaWMga2V5LgorICogXHBhcmFtIHhfc2l6ZSAgIFRoZSBwcml2YXRlIGtleSBzaXplIGluIEJ5dGVzLgorICogXHBhcmFtIG9sZW4gICAgIFRoZSBhZGRyZXNzIGF0IHdoaWNoIHRvIHN0b3JlIHRoZSBudW1iZXIgb2YgQnl0ZXMKKyAqICAgICAgICAgICAgICAgICB3cml0dGVuIG9uIHN1Y2Nlc3MuIFRoaXMgbXVzdCBub3QgYmUgXGMgTlVMTC4KKyAqIFxwYXJhbSBvdXRwdXQgICBUaGUgZGVzdGluYXRpb24gYnVmZmVyLiBUaGlzIG11c3QgYmUgYSB3cml0YWJsZSBidWZmZXIgb2YKKyAqICAgICAgICAgICAgICAgICBzdWZmaWNpZW50IHNpemUgdG8gaG9sZCB0aGUgcmVkdWNlZCBiaW5hcnkgcHJlc2VudGF0aW9uIG9mCisgKiAgICAgICAgICAgICAgICAgdGhlIG1vZHVsdXMsIHRoZSBnZW5lcmF0b3IgYW5kIHRoZSBwdWJsaWMga2V5LCBlYWNoIHdyYXBwZWQKKyAqICAgICAgICAgICAgICAgICB3aXRoIGEgMi1ieXRlIGxlbmd0aCBmaWVsZC4gSXQgaXMgdGhlIHJlc3BvbnNpYmlsaXR5IG9mIHRoZQorICogICAgICAgICAgICAgICAgIGNhbGxlciB0byBlbnN1cmUgdGhhdCBlbm91Z2ggc3BhY2UgaXMgYXZhaWxhYmxlLiBSZWZlciB0bworICogICAgICAgICAgICAgICAgIG1iZWR0bHNfbXBpX3NpemUoKSB0byBjb21wdXRpbmcgdGhlIGJ5dGUtc2l6ZSBvZiBhbiBNUEkuCisgKiBccGFyYW0gZl9ybmcgICAgVGhlIFJORyBmdW5jdGlvbi4gTXVzdCBub3QgYmUgXGMgTlVMTC4KKyAqIFxwYXJhbSBwX3JuZyAgICBUaGUgUk5HIGNvbnRleHQgdG8gYmUgcGFzc2VkIHRvIFxwIGZfcm5nLiBUaGlzIG1heSBiZQorICogICAgICAgICAgICAgICAgIFxjIE5VTEwgaWYgXHAgZl9ybmcgZG9lc24ndCBuZWVkIGEgY29udGV4dCBwYXJhbWV0ZXIuCisgKgorICogXHJldHVybiAgICAgICAgIFxjIDAgb24gc3VjY2Vzcy4KKyAqIFxyZXR1cm4gICAgICAgICBBbiBcYyBNQkVEVExTX0VSUl9ESE1fWFhYIGVycm9yIGNvZGUgb24gZmFpbHVyZS4KKyAqLworaW50IG1iZWR0bHNfZGhtX21ha2VfcGFyYW1zKG1iZWR0bHNfZGhtX2NvbnRleHQgKmN0eCwgaW50IHhfc2l6ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBjaGFyICpvdXRwdXQsIHNpemVfdCAqb2xlbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgKCpmX3JuZykodm9pZCAqLCB1bnNpZ25lZCBjaGFyICosIHNpemVfdCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdm9pZCAqcF9ybmcpOworCisvKioKKyAqIFxicmllZiAgICAgICAgICBUaGlzIGZ1bmN0aW9uIHNldHMgdGhlIHByaW1lIG1vZHVsdXMgYW5kIGdlbmVyYXRvci4KKyAqCisgKiBcbm90ZSAgICAgICAgICAgVGhpcyBmdW5jdGlvbiBjYW4gYmUgdXNlZCB0byBzZXQgXGMgY3R4LT5QLCBcYyBjdHgtPkcKKyAqICAgICAgICAgICAgICAgICBpbiBwcmVwYXJhdGlvbiBmb3IgbWJlZHRsc19kaG1fbWFrZV9wYXJhbXMoKS4KKyAqCisgKiBccGFyYW0gY3R4ICAgICAgVGhlIERITSBjb250ZXh0IHRvIGNvbmZpZ3VyZS4gVGhpcyBtdXN0IGJlIGluaXRpYWxpemVkLgorICogXHBhcmFtIFAgICAgICAgIFRoZSBNUEkgaG9sZGluZyB0aGUgREhNIHByaW1lIG1vZHVsdXMuIFRoaXMgbXVzdCBiZQorICogICAgICAgICAgICAgICAgIGFuIGluaXRpYWxpemVkIE1QSS4KKyAqIFxwYXJhbSBHICAgICAgICBUaGUgTVBJIGhvbGRpbmcgdGhlIERITSBnZW5lcmF0b3IuIFRoaXMgbXVzdCBiZSBhbgorICogICAgICAgICAgICAgICAgIGluaXRpYWxpemVkIE1QSS4KKyAqCisgKiBccmV0dXJuICAgICAgICAgXGMgMCBpZiBzdWNjZXNzZnVsLgorICogXHJldHVybiAgICAgICAgIEFuIFxjIE1CRURUTFNfRVJSX0RITV9YWFggZXJyb3IgY29kZSBvbiBmYWlsdXJlLgorICovCitpbnQgbWJlZHRsc19kaG1fc2V0X2dyb3VwKG1iZWR0bHNfZGhtX2NvbnRleHQgKmN0eCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbWJlZHRsc19tcGkgKlAsCisgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IG1iZWR0bHNfbXBpICpHKTsKKworLyoqCisgKiBcYnJpZWYgICAgICAgICAgVGhpcyBmdW5jdGlvbiBpbXBvcnRzIHRoZSByYXcgcHVibGljIHZhbHVlIG9mIHRoZSBwZWVyLgorICoKKyAqIFxub3RlICAgICAgICAgICBJbiBhIFRMUyBoYW5kc2hha2UsIHRoaXMgaXMgdGhlIGhvdyB0aGUgc2VydmVyIGltcG9ydHMKKyAqICAgICAgICAgICAgICAgICB0aGUgQ2xpZW50J3MgcHVibGljIERITSBrZXkuCisgKgorICogXHBhcmFtIGN0eCAgICAgIFRoZSBESE0gY29udGV4dCB0byB1c2UuIFRoaXMgbXVzdCBiZSBpbml0aWFsaXplZCBhbmQgaGF2ZQorICogICAgICAgICAgICAgICAgIGl0cyBESE0gcGFyYW1ldGVycyBzZXQsIGUuZy4gdmlhIG1iZWR0bHNfZGhtX3NldF9ncm91cCgpLgorICogICAgICAgICAgICAgICAgIEl0IG1heSBvciBtYXkgbm90IGFscmVhZHkgaGF2ZSBnZW5lcmF0ZWQgaXRzIG93biBwcml2YXRlIGtleS4KKyAqIFxwYXJhbSBpbnB1dCAgICBUaGUgaW5wdXQgYnVmZmVyIGNvbnRhaW5pbmcgdGhlIFxjIEdeWSB2YWx1ZSBvZiB0aGUgcGVlci4KKyAqICAgICAgICAgICAgICAgICBUaGlzIG11c3QgYmUgYSByZWFkYWJsZSBidWZmZXIgb2Ygc2l6ZSBccCBpbGVuIEJ5dGVzLgorICogXHBhcmFtIGlsZW4gICAgIFRoZSBzaXplIG9mIHRoZSBpbnB1dCBidWZmZXIgXHAgaW5wdXQgaW4gQnl0ZXMuCisgKgorICogXHJldHVybiAgICAgICAgIFxjIDAgb24gc3VjY2Vzcy4KKyAqIFxyZXR1cm4gICAgICAgICBBbiBcYyBNQkVEVExTX0VSUl9ESE1fWFhYIGVycm9yIGNvZGUgb24gZmFpbHVyZS4KKyAqLworaW50IG1iZWR0bHNfZGhtX3JlYWRfcHVibGljKG1iZWR0bHNfZGhtX2NvbnRleHQgKmN0eCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1bnNpZ25lZCBjaGFyICppbnB1dCwgc2l6ZV90IGlsZW4pOworCisvKioKKyAqIFxicmllZiAgICAgICAgICBUaGlzIGZ1bmN0aW9uIGNyZWF0ZXMgYSBESE0ga2V5IHBhaXIgYW5kIGV4cG9ydHMKKyAqICAgICAgICAgICAgICAgICB0aGUgcmF3IHB1YmxpYyBrZXkgaW4gYmlnLWVuZGlhbiBmb3JtYXQuCisgKgorICogXG5vdGUgICAgICAgICAgIFRoZSBkZXN0aW5hdGlvbiBidWZmZXIgaXMgYWx3YXlzIGZ1bGx5IHdyaXR0ZW4KKyAqICAgICAgICAgICAgICAgICBzbyBhcyB0byBjb250YWluIGEgYmlnLWVuZGlhbiByZXByZXNlbnRhdGlvbiBvZiBHXlggbW9kIFAuCisgKiAgICAgICAgICAgICAgICAgSWYgaXQgaXMgbGFyZ2VyIHRoYW4gXGMgY3R4LT5sZW4sIGl0IGlzIHBhZGRlZCBhY2NvcmRpbmdseQorICogICAgICAgICAgICAgICAgIHdpdGggemVyby1ieXRlcyBhdCB0aGUgYmVnaW5uaW5nLgorICoKKyAqIFxwYXJhbSBjdHggICAgICBUaGUgREhNIGNvbnRleHQgdG8gdXNlLiBUaGlzIG11c3QgYmUgaW5pdGlhbGl6ZWQgYW5kCisgKiAgICAgICAgICAgICAgICAgaGF2ZSB0aGUgREhNIHBhcmFtZXRlcnMgc2V0LiBJdCBtYXkgb3IgbWF5IG5vdCBhbHJlYWR5CisgKiAgICAgICAgICAgICAgICAgaGF2ZSBpbXBvcnRlZCB0aGUgcGVlcidzIHB1YmxpYyBrZXkuCisgKiBccGFyYW0geF9zaXplICAgVGhlIHByaXZhdGUga2V5IHNpemUgaW4gQnl0ZXMuCisgKiBccGFyYW0gb3V0cHV0ICAgVGhlIGRlc3RpbmF0aW9uIGJ1ZmZlci4gVGhpcyBtdXN0IGJlIGEgd3JpdGFibGUgYnVmZmVyIG9mCisgKiAgICAgICAgICAgICAgICAgc2l6ZSBccCBvbGVuIEJ5dGVzLgorICogXHBhcmFtIG9sZW4gICAgIFRoZSBsZW5ndGggb2YgdGhlIGRlc3RpbmF0aW9uIGJ1ZmZlci4gVGhpcyBtdXN0IGJlIGF0IGxlYXN0CisgKiAgICAgICAgICAgICAgICAgZXF1YWwgdG8gYGN0eC0+bGVuYCAodGhlIHNpemUgb2YgXGMgUCkuCisgKiBccGFyYW0gZl9ybmcgICAgVGhlIFJORyBmdW5jdGlvbi4gVGhpcyBtdXN0IG5vdCBiZSBcYyBOVUxMLgorICogXHBhcmFtIHBfcm5nICAgIFRoZSBSTkcgY29udGV4dCB0byBiZSBwYXNzZWQgdG8gXHAgZl9ybmcuIFRoaXMgbWF5IGJlIFxjIE5VTEwKKyAqICAgICAgICAgICAgICAgICBpZiBccCBmX3JuZyBkb2Vzbid0IG5lZWQgYSBjb250ZXh0IGFyZ3VtZW50LgorICoKKyAqIFxyZXR1cm4gICAgICAgICBcYyAwIG9uIHN1Y2Nlc3MuCisgKiBccmV0dXJuICAgICAgICAgQW4gXGMgTUJFRFRMU19FUlJfREhNX1hYWCBlcnJvciBjb2RlIG9uIGZhaWx1cmUuCisgKi8KK2ludCBtYmVkdGxzX2RobV9tYWtlX3B1YmxpYyhtYmVkdGxzX2RobV9jb250ZXh0ICpjdHgsIGludCB4X3NpemUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgY2hhciAqb3V0cHV0LCBzaXplX3Qgb2xlbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgKCpmX3JuZykodm9pZCAqLCB1bnNpZ25lZCBjaGFyICosIHNpemVfdCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdm9pZCAqcF9ybmcpOworCisvKioKKyAqIFxicmllZiAgICAgICAgICBUaGlzIGZ1bmN0aW9uIGRlcml2ZXMgYW5kIGV4cG9ydHMgdGhlIHNoYXJlZCBzZWNyZXQKKyAqICAgICAgICAgICAgICAgICBcYyAoR15ZKV5YIG1vZCBcYyBQLgorICoKKyAqIFxub3RlICAgICAgICAgICBJZiBccCBmX3JuZyBpcyBub3QgXGMgTlVMTCwgaXQgaXMgdXNlZCB0byBibGluZCB0aGUgaW5wdXQgYXMKKyAqICAgICAgICAgICAgICAgICBhIGNvdW50ZXJtZWFzdXJlIGFnYWluc3QgdGltaW5nIGF0dGFja3MuIEJsaW5kaW5nIGlzIHVzZWQKKyAqICAgICAgICAgICAgICAgICBvbmx5IGlmIG91ciBwcml2YXRlIGtleSBcYyBYIGlzIHJlLXVzZWQsIGFuZCBub3QgdXNlZAorICogICAgICAgICAgICAgICAgIG90aGVyd2lzZS4gV2UgcmVjb21tZW5kIGFsd2F5cyBwYXNzaW5nIGEgbm9uLU5VTEwKKyAqICAgICAgICAgICAgICAgICBccCBmX3JuZyBhcmd1bWVudC4KKyAqCisgKiBccGFyYW0gY3R4ICAgICAgICAgICBUaGUgREhNIGNvbnRleHQgdG8gdXNlLiBUaGlzIG11c3QgYmUgaW5pdGlhbGl6ZWQKKyAqICAgICAgICAgICAgICAgICAgICAgIGFuZCBoYXZlIGl0cyBvd24gcHJpdmF0ZSBrZXkgZ2VuZXJhdGVkIGFuZCB0aGUgcGVlcidzCisgKiAgICAgICAgICAgICAgICAgICAgICBwdWJsaWMga2V5IGltcG9ydGVkLgorICogXHBhcmFtIG91dHB1dCAgICAgICAgVGhlIGJ1ZmZlciB0byB3cml0ZSB0aGUgZ2VuZXJhdGVkIHNoYXJlZCBrZXkgdG8uIFRoaXMKKyAqICAgICAgICAgICAgICAgICAgICAgIG11c3QgYmUgYSB3cml0YWJsZSBidWZmZXIgb2Ygc2l6ZSBccCBvdXRwdXRfc2l6ZSBCeXRlcy4KKyAqIFxwYXJhbSBvdXRwdXRfc2l6ZSAgIFRoZSBzaXplIG9mIHRoZSBkZXN0aW5hdGlvbiBidWZmZXIuIFRoaXMgbXVzdCBiZSBhdAorICogICAgICAgICAgICAgICAgICAgICAgbGVhc3QgdGhlIHNpemUgb2YgXGMgY3R4LT5sZW4gKHRoZSBzaXplIG9mIFxjIFApLgorICogXHBhcmFtIG9sZW4gICAgICAgICAgT24gZXhpdCwgaG9sZHMgdGhlIGFjdHVhbCBudW1iZXIgb2YgQnl0ZXMgd3JpdHRlbi4KKyAqIFxwYXJhbSBmX3JuZyAgICAgICAgIFRoZSBSTkcgZnVuY3Rpb24uIE11c3Qgbm90IGJlIFxjIE5VTEwuIFVzZWQgZm9yCisgKiAgICAgICAgICAgICAgICAgICAgICBibGluZGluZy4KKyAqIFxwYXJhbSBwX3JuZyAgICAgICAgIFRoZSBSTkcgY29udGV4dCB0byBiZSBwYXNzZWQgdG8gXHAgZl9ybmcuIFRoaXMgbWF5IGJlCisgKiAgICAgICAgICAgICAgICAgICAgICBcYyBOVUxMIGlmIFxwIGZfcm5nIGRvZXNuJ3QgbmVlZCBhIGNvbnRleHQgcGFyYW1ldGVyLgorICoKKyAqIFxyZXR1cm4gICAgICAgICAgICAgIFxjIDAgb24gc3VjY2Vzcy4KKyAqIFxyZXR1cm4gICAgICAgICAgICAgIEFuIFxjIE1CRURUTFNfRVJSX0RITV9YWFggZXJyb3IgY29kZSBvbiBmYWlsdXJlLgorICovCitpbnQgbWJlZHRsc19kaG1fY2FsY19zZWNyZXQobWJlZHRsc19kaG1fY29udGV4dCAqY3R4LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGNoYXIgKm91dHB1dCwgc2l6ZV90IG91dHB1dF9zaXplLCBzaXplX3QgKm9sZW4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50ICgqZl9ybmcpKHZvaWQgKiwgdW5zaWduZWQgY2hhciAqLCBzaXplX3QpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZvaWQgKnBfcm5nKTsKKworLyoqCisgKiBcYnJpZWYgICAgICAgICAgVGhpcyBmdW5jdGlvbiByZXR1cm5zIHRoZSBzaXplIG9mIHRoZSBwcmltZSBtb2R1bHVzIGluIGJpdHMuCisgKgorICogXHBhcmFtIGN0eCAgICAgIFRoZSBESE0gY29udGV4dCB0byBxdWVyeS4KKyAqCisgKiBccmV0dXJuICAgICAgICAgVGhlIHNpemUgb2YgdGhlIHByaW1lIG1vZHVsdXMgaW4gYml0cywKKyAqICAgICAgICAgICAgICAgICBpLmUuIHRoZSBudW1iZXIgbiBzdWNoIHRoYXQgMl4obi0xKSA8PSBQIDwgMl5uLgorICovCitzaXplX3QgbWJlZHRsc19kaG1fZ2V0X2JpdGxlbihjb25zdCBtYmVkdGxzX2RobV9jb250ZXh0ICpjdHgpOworCisvKioKKyAqIFxicmllZiAgICAgICAgICBUaGlzIGZ1bmN0aW9uIHJldHVybnMgdGhlIHNpemUgb2YgdGhlIHByaW1lIG1vZHVsdXMgaW4gYnl0ZXMuCisgKgorICogXHBhcmFtIGN0eCAgICAgIFRoZSBESE0gY29udGV4dCB0byBxdWVyeS4KKyAqCisgKiBccmV0dXJuICAgICAgICAgVGhlIHNpemUgb2YgdGhlIHByaW1lIG1vZHVsdXMgaW4gYnl0ZXMsCisgKiAgICAgICAgICAgICAgICAgaS5lLiB0aGUgbnVtYmVyIG4gc3VjaCB0aGF0IDJeKDgqKG4tMSkpIDw9IFAgPCAyXig4Km4pLgorICovCitzaXplX3QgbWJlZHRsc19kaG1fZ2V0X2xlbihjb25zdCBtYmVkdGxzX2RobV9jb250ZXh0ICpjdHgpOworCisvKioKKyAqIFxicmllZiAgICAgICAgICBUaGlzIGZ1bmN0aW9uIGNvcGllcyBhIHBhcmFtZXRlciBvZiBhIERITSBrZXkuCisgKgorICogXHBhcmFtIGN0eCAgICAgIFRoZSBESE0gY29udGV4dCB0byBxdWVyeS4KKyAqIFxwYXJhbSBwYXJhbSAgICBUaGUgcGFyYW1ldGVyIHRvIGNvcHkuCisgKiBccGFyYW0gZGVzdCAgICAgVGhlIE1QSSBvYmplY3QgdG8gY29weSB0aGUgdmFsdWUgaW50by4gSXQgbXVzdCBiZQorICogICAgICAgICAgICAgICAgIGluaXRpYWxpemVkLgorICoKKyAqIFxyZXR1cm4gICAgICAgICBcYyAwIG9uIHN1Y2Nlc3MuCisgKiBccmV0dXJuICAgICAgICAgI01CRURUTFNfRVJSX0RITV9CQURfSU5QVVRfREFUQSBpZiBccCBwYXJhbSBpcyBpbnZhbGlkLgorICogXHJldHVybiAgICAgICAgIEFuIFxjIE1CRURUTFNfRVJSX01QSV9YWFggZXJyb3IgY29kZSBpZiB0aGUgY29weSBmYWlscy4KKyAqLworaW50IG1iZWR0bHNfZGhtX2dldF92YWx1ZShjb25zdCBtYmVkdGxzX2RobV9jb250ZXh0ICpjdHgsCisgICAgICAgICAgICAgICAgICAgICAgICAgIG1iZWR0bHNfZGhtX3BhcmFtZXRlciBwYXJhbSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgbWJlZHRsc19tcGkgKmRlc3QpOworCisvKioKKyAqIFxicmllZiAgICAgICAgICBUaGlzIGZ1bmN0aW9uIGZyZWVzIGFuZCBjbGVhcnMgdGhlIGNvbXBvbmVudHMKKyAqICAgICAgICAgICAgICAgICBvZiBhIERITSBjb250ZXh0LgorICoKKyAqIFxwYXJhbSBjdHggICAgICBUaGUgREhNIGNvbnRleHQgdG8gZnJlZSBhbmQgY2xlYXIuIFRoaXMgbWF5IGJlIFxjIE5VTEwsCisgKiAgICAgICAgICAgICAgICAgaW4gd2hpY2ggY2FzZSB0aGlzIGZ1bmN0aW9uIGlzIGEgbm8tb3AuIElmIGl0IGlzIG5vdCBcYyBOVUxMLAorICogICAgICAgICAgICAgICAgIGl0IG11c3QgcG9pbnQgdG8gYW4gaW5pdGlhbGl6ZWQgREhNIGNvbnRleHQuCisgKi8KK3ZvaWQgbWJlZHRsc19kaG1fZnJlZShtYmVkdGxzX2RobV9jb250ZXh0ICpjdHgpOworCisjaWYgZGVmaW5lZChNQkVEVExTX0FTTjFfUEFSU0VfQykKKy8qKgorICogXGJyaWVmICAgICAgICAgICAgIFRoaXMgZnVuY3Rpb24gcGFyc2VzIERITSBwYXJhbWV0ZXJzIGluIFBFTSBvciBERVIgZm9ybWF0LgorICoKKyAqIFxwYXJhbSBkaG0gICAgICAgICBUaGUgREhNIGNvbnRleHQgdG8gaW1wb3J0IHRoZSBESE0gcGFyYW1ldGVycyBpbnRvLgorICogICAgICAgICAgICAgICAgICAgIFRoaXMgbXVzdCBiZSBpbml0aWFsaXplZC4KKyAqIFxwYXJhbSBkaG1pbiAgICAgICBUaGUgaW5wdXQgYnVmZmVyLiBUaGlzIG11c3QgYmUgYSByZWFkYWJsZSBidWZmZXIgb2YKKyAqICAgICAgICAgICAgICAgICAgICBsZW5ndGggXHAgZGhtaW5sZW4gQnl0ZXMuCisgKiBccGFyYW0gZGhtaW5sZW4gICAgVGhlIHNpemUgb2YgdGhlIGlucHV0IGJ1ZmZlciBccCBkaG1pbiwgaW5jbHVkaW5nIHRoZQorICogICAgICAgICAgICAgICAgICAgIHRlcm1pbmF0aW5nIFxjIE5VTEwgQnl0ZSBmb3IgUEVNIGRhdGEuCisgKgorICogXHJldHVybiAgICAgICAgICAgIFxjIDAgb24gc3VjY2Vzcy4KKyAqIFxyZXR1cm4gICAgICAgICAgICBBbiBcYyBNQkVEVExTX0VSUl9ESE1fWFhYIG9yIFxjIE1CRURUTFNfRVJSX1BFTV9YWFggZXJyb3IKKyAqICAgICAgICAgICAgICAgICAgICBjb2RlIG9uIGZhaWx1cmUuCisgKi8KK2ludCBtYmVkdGxzX2RobV9wYXJzZV9kaG0obWJlZHRsc19kaG1fY29udGV4dCAqZGhtLCBjb25zdCB1bnNpZ25lZCBjaGFyICpkaG1pbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IGRobWlubGVuKTsKKworI2lmIGRlZmluZWQoTUJFRFRMU19GU19JTykKKy8qKgorICogXGJyaWVmICAgICAgICAgIFRoaXMgZnVuY3Rpb24gbG9hZHMgYW5kIHBhcnNlcyBESE0gcGFyYW1ldGVycyBmcm9tIGEgZmlsZS4KKyAqCisgKiBccGFyYW0gZGhtICAgICAgVGhlIERITSBjb250ZXh0IHRvIGxvYWQgdGhlIHBhcmFtZXRlcnMgdG8uCisgKiAgICAgICAgICAgICAgICAgVGhpcyBtdXN0IGJlIGluaXRpYWxpemVkLgorICogXHBhcmFtIHBhdGggICAgIFRoZSBmaWxlbmFtZSB0byByZWFkIHRoZSBESE0gcGFyYW1ldGVycyBmcm9tLgorICogICAgICAgICAgICAgICAgIFRoaXMgbXVzdCBub3QgYmUgXGMgTlVMTC4KKyAqCisgKiBccmV0dXJuICAgICAgICAgXGMgMCBvbiBzdWNjZXNzLgorICogXHJldHVybiAgICAgICAgIEFuIFxjIE1CRURUTFNfRVJSX0RITV9YWFggb3IgXGMgTUJFRFRMU19FUlJfUEVNX1hYWAorICogICAgICAgICAgICAgICAgIGVycm9yIGNvZGUgb24gZmFpbHVyZS4KKyAqLworaW50IG1iZWR0bHNfZGhtX3BhcnNlX2RobWZpbGUobWJlZHRsc19kaG1fY29udGV4dCAqZGhtLCBjb25zdCBjaGFyICpwYXRoKTsKKyNlbmRpZiAvKiBNQkVEVExTX0ZTX0lPICovCisjZW5kaWYgLyogTUJFRFRMU19BU04xX1BBUlNFX0MgKi8KKworI2lmIGRlZmluZWQoTUJFRFRMU19TRUxGX1RFU1QpCisKKy8qKgorICogXGJyaWVmICAgICAgICAgIFRoZSBETUggY2hlY2t1cCByb3V0aW5lLgorICoKKyAqIFxyZXR1cm4gICAgICAgICBcYyAwIG9uIHN1Y2Nlc3MuCisgKiBccmV0dXJuICAgICAgICAgXGMgMSBvbiBmYWlsdXJlLgorICovCitpbnQgbWJlZHRsc19kaG1fc2VsZl90ZXN0KGludCB2ZXJib3NlKTsKKworI2VuZGlmIC8qIE1CRURUTFNfU0VMRl9URVNUICovCisjaWZkZWYgX19jcGx1c3BsdXMKK30KKyNlbmRpZgorCisvKioKKyAqIFJGQyAzNTI2LCBSRkMgNTExNCBhbmQgUkZDIDc5MTkgc3RhbmRhcmRpemUgYSBudW1iZXIgb2YKKyAqIERpZmZpZS1IZWxsbWFuIGdyb3Vwcywgc29tZSBvZiB3aGljaCBhcmUgaW5jbHVkZWQgaGVyZQorICogZm9yIHVzZSB3aXRoaW4gdGhlIFNTTC9UTFMgbW9kdWxlIGFuZCB0aGUgdXNlcidzIGNvbnZlbmllbmNlCisgKiB3aGVuIGNvbmZpZ3VyaW5nIHRoZSBEaWZmaWUtSGVsbG1hbiBwYXJhbWV0ZXJzIGJ5IGhhbmQKKyAqIHRocm91Z2ggXGMgbWJlZHRsc19zc2xfY29uZl9kaF9wYXJhbS4KKyAqCisgKiBUaGUgZm9sbG93aW5nIGxpc3RzIHRoZSBzb3VyY2Ugb2YgdGhlIGFib3ZlIGdyb3VwcyBpbiB0aGUgc3RhbmRhcmRzOgorICogLSBSRkMgNTExNCBzZWN0aW9uIDIuMjogIDIwNDgtYml0IE1PRFAgR3JvdXAgd2l0aCAyMjQtYml0IFByaW1lIE9yZGVyIFN1Ymdyb3VwCisgKiAtIFJGQyAzNTI2IHNlY3Rpb24gMzogICAgMjA0OC1iaXQgTU9EUCBHcm91cAorICogLSBSRkMgMzUyNiBzZWN0aW9uIDQ6ICAgIDMwNzItYml0IE1PRFAgR3JvdXAKKyAqIC0gUkZDIDM1MjYgc2VjdGlvbiA1OiAgICA0MDk2LWJpdCBNT0RQIEdyb3VwCisgKiAtIFJGQyA3OTE5IHNlY3Rpb24gQS4xOiAgZmZkaGUyMDQ4CisgKiAtIFJGQyA3OTE5IHNlY3Rpb24gQS4yOiAgZmZkaGUzMDcyCisgKiAtIFJGQyA3OTE5IHNlY3Rpb24gQS4zOiAgZmZkaGU0MDk2CisgKiAtIFJGQyA3OTE5IHNlY3Rpb24gQS40OiAgZmZkaGU2MTQ0CisgKiAtIFJGQyA3OTE5IHNlY3Rpb24gQS41OiAgZmZkaGU4MTkyCisgKgorICogVGhlIGNvbnN0YW50cyB3aXRoIHN1ZmZpeCAiX3AiIGRlbm90ZSB0aGUgY2hvc2VuIHByaW1lIG1vZHVsaSwgd2hpbGUKKyAqIHRoZSBjb25zdGFudHMgd2l0aCBzdWZmaXggIl9nIiBkZW5vdGUgdGhlIGNob3NlbiBnZW5lcmF0b3IKKyAqIG9mIHRoZSBhc3NvY2lhdGVkIHByaW1lIGZpZWxkLgorICoKKyAqIFRoZSBjb25zdGFudHMgZnVydGhlciBzdWZmaXhlZCB3aXRoICJfYmluIiBhcmUgcHJvdmlkZWQgaW4gYmluYXJ5IGZvcm1hdCwKKyAqIHdoaWxlIGFsbCBvdGhlciBjb25zdGFudHMgcmVwcmVzZW50IG51bGwtdGVybWluYXRlZCBzdHJpbmdzIGhvbGRpbmcgdGhlCisgKiBoZXhhZGVjaW1hbCBwcmVzZW50YXRpb24gb2YgdGhlIHJlc3BlY3RpdmUgbnVtYmVycy4KKyAqCisgKiBUaGUgcHJpbWVzIGZyb20gUkZDIDM1MjYgYW5kIFJGQyA3OTE5IGhhdmUgYmVlbiBnZW5lcmF0aW5nIGJ5IHRoZSBmb2xsb3dpbmcKKyAqIHRydXN0LXdvcnRoeSBwcm9jZWR1cmU6CisgKiAtIEZpeCBOIGluIHsgMjA0OCwgMzA3MiwgNDA5NiwgNjE0NCwgODE5MiB9IGFuZCBjb25zaWRlciB0aGUgTi1iaXQgbnVtYmVyCisgKiAgIHRoZSBmaXJzdCBhbmQgbGFzdCA2NCBiaXRzIGFyZSBhbGwgMSwgYW5kIHRoZSByZW1haW5pbmcgTiAtIDEyOCBiaXRzIG9mCisgKiAgIHdoaWNoIGFyZSAweDdmZi4uLmZmLgorICogLSBBZGQgdGhlIHNtYWxsZXN0IG11bHRpcGxlIG9mIHRoZSBmaXJzdCBOIC0gMTI5IGJpdHMgb2YgdGhlIGJpbmFyeSBleHBhbnNpb24KKyAqICAgb2YgcGkgKGZvciBSRkMgNTIzNikgb3IgZSAoZm9yIFJGQyA3OTE5KSB0byB0aGlzIGludGVybWVkaWF0ZSBiaXQtc3RyaW5nCisgKiAgIHN1Y2ggdGhhdCB0aGUgcmVzdWx0aW5nIGludGVnZXIgaXMgYSBzYWZlLXByaW1lLgorICogLSBUaGUgcmVzdWx0IGlzIHRoZSByZXNwZWN0aXZlIFJGQyAzNTI2IC8gNzkxOSBwcmltZSwgYW5kIHRoZSBjb3JyZXNwb25kaW5nCisgKiAgIGdlbmVyYXRvciBpcyBhbHdheXMgY2hvc2VuIHRvIGJlIDIgKHdoaWNoIGlzIGEgc3F1YXJlIGZvciB0aGVzZSBwcmltZSwKKyAqICAgaGVuY2UgdGhlIGNvcnJlc3BvbmRpbmcgc3ViZ3JvdXAgaGFzIG9yZGVyIChwLTEpLzIgYW5kIGF2b2lkcyBsZWFraW5nIGEKKyAqICAgYml0IGluIHRoZSBwcml2YXRlIGV4cG9uZW50KS4KKyAqCisgKi8KKworLyoKKyAqIFRydXN0d29ydGh5IERITSBwYXJhbWV0ZXJzIGluIGJpbmFyeSBmb3JtCisgKi8KKworI2RlZmluZSBNQkVEVExTX0RITV9SRkMzNTI2X01PRFBfMjA0OF9QX0JJTiB7ICAgICAgICBcCisgICAgICAgIDB4RkYsIDB4RkYsIDB4RkYsIDB4RkYsIDB4RkYsIDB4RkYsIDB4RkYsIDB4RkYsIFwKKyAgICAgICAgMHhDOSwgMHgwRiwgMHhEQSwgMHhBMiwgMHgyMSwgMHg2OCwgMHhDMiwgMHgzNCwgXAorICAgICAgICAweEM0LCAweEM2LCAweDYyLCAweDhCLCAweDgwLCAweERDLCAweDFDLCAweEQxLCBcCisgICAgICAgIDB4MjksIDB4MDIsIDB4NEUsIDB4MDgsIDB4OEEsIDB4NjcsIDB4Q0MsIDB4NzQsIFwKKyAgICAgICAgMHgwMiwgMHgwQiwgMHhCRSwgMHhBNiwgMHgzQiwgMHgxMywgMHg5QiwgMHgyMiwgXAorICAgICAgICAweDUxLCAweDRBLCAweDA4LCAweDc5LCAweDhFLCAweDM0LCAweDA0LCAweERELCBcCisgICAgICAgIDB4RUYsIDB4OTUsIDB4MTksIDB4QjMsIDB4Q0QsIDB4M0EsIDB4NDMsIDB4MUIsIFwKKyAgICAgICAgMHgzMCwgMHgyQiwgMHgwQSwgMHg2RCwgMHhGMiwgMHg1RiwgMHgxNCwgMHgzNywgXAorICAgICAgICAweDRGLCAweEUxLCAweDM1LCAweDZELCAweDZELCAweDUxLCAweEMyLCAweDQ1LCBcCisgICAgICAgIDB4RTQsIDB4ODUsIDB4QjUsIDB4NzYsIDB4NjIsIDB4NUUsIDB4N0UsIDB4QzYsIFwKKyAgICAgICAgMHhGNCwgMHg0QywgMHg0MiwgMHhFOSwgMHhBNiwgMHgzNywgMHhFRCwgMHg2QiwgXAorICAgICAgICAweDBCLCAweEZGLCAweDVDLCAweEI2LCAweEY0LCAweDA2LCAweEI3LCAweEVELCBcCisgICAgICAgIDB4RUUsIDB4MzgsIDB4NkIsIDB4RkIsIDB4NUEsIDB4ODksIDB4OUYsIDB4QTUsIFwKKyAgICAgICAgMHhBRSwgMHg5RiwgMHgyNCwgMHgxMSwgMHg3QywgMHg0QiwgMHgxRiwgMHhFNiwgXAorICAgICAgICAweDQ5LCAweDI4LCAweDY2LCAweDUxLCAweEVDLCAweEU0LCAweDVCLCAweDNELCBcCisgICAgICAgIDB4QzIsIDB4MDAsIDB4N0MsIDB4QjgsIDB4QTEsIDB4NjMsIDB4QkYsIDB4MDUsIFwKKyAgICAgICAgMHg5OCwgMHhEQSwgMHg0OCwgMHgzNiwgMHgxQywgMHg1NSwgMHhEMywgMHg5QSwgXAorICAgICAgICAweDY5LCAweDE2LCAweDNGLCAweEE4LCAweEZELCAweDI0LCAweENGLCAweDVGLCBcCisgICAgICAgIDB4ODMsIDB4NjUsIDB4NUQsIDB4MjMsIDB4REMsIDB4QTMsIDB4QUQsIDB4OTYsIFwKKyAgICAgICAgMHgxQywgMHg2MiwgMHhGMywgMHg1NiwgMHgyMCwgMHg4NSwgMHg1MiwgMHhCQiwgXAorICAgICAgICAweDlFLCAweEQ1LCAweDI5LCAweDA3LCAweDcwLCAweDk2LCAweDk2LCAweDZELCBcCisgICAgICAgIDB4NjcsIDB4MEMsIDB4MzUsIDB4NEUsIDB4NEEsIDB4QkMsIDB4OTgsIDB4MDQsIFwKKyAgICAgICAgMHhGMSwgMHg3NCwgMHg2QywgMHgwOCwgMHhDQSwgMHgxOCwgMHgyMSwgMHg3QywgXAorICAgICAgICAweDMyLCAweDkwLCAweDVFLCAweDQ2LCAweDJFLCAweDM2LCAweENFLCAweDNCLCBcCisgICAgICAgIDB4RTMsIDB4OUUsIDB4NzcsIDB4MkMsIDB4MTgsIDB4MEUsIDB4ODYsIDB4MDMsIFwKKyAgICAgICAgMHg5QiwgMHgyNywgMHg4MywgMHhBMiwgMHhFQywgMHgwNywgMHhBMiwgMHg4RiwgXAorICAgICAgICAweEI1LCAweEM1LCAweDVELCAweEYwLCAweDZGLCAweDRDLCAweDUyLCAweEM5LCBcCisgICAgICAgIDB4REUsIDB4MkIsIDB4Q0IsIDB4RjYsIDB4OTUsIDB4NTgsIDB4MTcsIDB4MTgsIFwKKyAgICAgICAgMHgzOSwgMHg5NSwgMHg0OSwgMHg3QywgMHhFQSwgMHg5NSwgMHg2QSwgMHhFNSwgXAorICAgICAgICAweDE1LCAweEQyLCAweDI2LCAweDE4LCAweDk4LCAweEZBLCAweDA1LCAweDEwLCBcCisgICAgICAgIDB4MTUsIDB4NzIsIDB4OEUsIDB4NUEsIDB4OEEsIDB4QUMsIDB4QUEsIDB4NjgsIFwKKyAgICAgICAgMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiB9CisKKyNkZWZpbmUgTUJFRFRMU19ESE1fUkZDMzUyNl9NT0RQXzIwNDhfR19CSU4geyAweDAyIH0KKworI2RlZmluZSBNQkVEVExTX0RITV9SRkMzNTI2X01PRFBfMzA3Ml9QX0JJTiB7ICAgICAgIFwKKyAgICAgICAgMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiwgXAorICAgICAgICAweEM5LCAweDBGLCAweERBLCAweEEyLCAweDIxLCAweDY4LCAweEMyLCAweDM0LCBcCisgICAgICAgIDB4QzQsIDB4QzYsIDB4NjIsIDB4OEIsIDB4ODAsIDB4REMsIDB4MUMsIDB4RDEsIFwKKyAgICAgICAgMHgyOSwgMHgwMiwgMHg0RSwgMHgwOCwgMHg4QSwgMHg2NywgMHhDQywgMHg3NCwgXAorICAgICAgICAweDAyLCAweDBCLCAweEJFLCAweEE2LCAweDNCLCAweDEzLCAweDlCLCAweDIyLCBcCisgICAgICAgIDB4NTEsIDB4NEEsIDB4MDgsIDB4NzksIDB4OEUsIDB4MzQsIDB4MDQsIDB4REQsIFwKKyAgICAgICAgMHhFRiwgMHg5NSwgMHgxOSwgMHhCMywgMHhDRCwgMHgzQSwgMHg0MywgMHgxQiwgXAorICAgICAgICAweDMwLCAweDJCLCAweDBBLCAweDZELCAweEYyLCAweDVGLCAweDE0LCAweDM3LCBcCisgICAgICAgIDB4NEYsIDB4RTEsIDB4MzUsIDB4NkQsIDB4NkQsIDB4NTEsIDB4QzIsIDB4NDUsIFwKKyAgICAgICAgMHhFNCwgMHg4NSwgMHhCNSwgMHg3NiwgMHg2MiwgMHg1RSwgMHg3RSwgMHhDNiwgXAorICAgICAgICAweEY0LCAweDRDLCAweDQyLCAweEU5LCAweEE2LCAweDM3LCAweEVELCAweDZCLCBcCisgICAgICAgIDB4MEIsIDB4RkYsIDB4NUMsIDB4QjYsIDB4RjQsIDB4MDYsIDB4QjcsIDB4RUQsIFwKKyAgICAgICAgMHhFRSwgMHgzOCwgMHg2QiwgMHhGQiwgMHg1QSwgMHg4OSwgMHg5RiwgMHhBNSwgXAorICAgICAgICAweEFFLCAweDlGLCAweDI0LCAweDExLCAweDdDLCAweDRCLCAweDFGLCAweEU2LCBcCisgICAgICAgIDB4NDksIDB4MjgsIDB4NjYsIDB4NTEsIDB4RUMsIDB4RTQsIDB4NUIsIDB4M0QsIFwKKyAgICAgICAgMHhDMiwgMHgwMCwgMHg3QywgMHhCOCwgMHhBMSwgMHg2MywgMHhCRiwgMHgwNSwgXAorICAgICAgICAweDk4LCAweERBLCAweDQ4LCAweDM2LCAweDFDLCAweDU1LCAweEQzLCAweDlBLCBcCisgICAgICAgIDB4NjksIDB4MTYsIDB4M0YsIDB4QTgsIDB4RkQsIDB4MjQsIDB4Q0YsIDB4NUYsIFwKKyAgICAgICAgMHg4MywgMHg2NSwgMHg1RCwgMHgyMywgMHhEQywgMHhBMywgMHhBRCwgMHg5NiwgXAorICAgICAgICAweDFDLCAweDYyLCAweEYzLCAweDU2LCAweDIwLCAweDg1LCAweDUyLCAweEJCLCBcCisgICAgICAgIDB4OUUsIDB4RDUsIDB4MjksIDB4MDcsIDB4NzAsIDB4OTYsIDB4OTYsIDB4NkQsIFwKKyAgICAgICAgMHg2NywgMHgwQywgMHgzNSwgMHg0RSwgMHg0QSwgMHhCQywgMHg5OCwgMHgwNCwgXAorICAgICAgICAweEYxLCAweDc0LCAweDZDLCAweDA4LCAweENBLCAweDE4LCAweDIxLCAweDdDLCBcCisgICAgICAgIDB4MzIsIDB4OTAsIDB4NUUsIDB4NDYsIDB4MkUsIDB4MzYsIDB4Q0UsIDB4M0IsIFwKKyAgICAgICAgMHhFMywgMHg5RSwgMHg3NywgMHgyQywgMHgxOCwgMHgwRSwgMHg4NiwgMHgwMywgXAorICAgICAgICAweDlCLCAweDI3LCAweDgzLCAweEEyLCAweEVDLCAweDA3LCAweEEyLCAweDhGLCBcCisgICAgICAgIDB4QjUsIDB4QzUsIDB4NUQsIDB4RjAsIDB4NkYsIDB4NEMsIDB4NTIsIDB4QzksIFwKKyAgICAgICAgMHhERSwgMHgyQiwgMHhDQiwgMHhGNiwgMHg5NSwgMHg1OCwgMHgxNywgMHgxOCwgXAorICAgICAgICAweDM5LCAweDk1LCAweDQ5LCAweDdDLCAweEVBLCAweDk1LCAweDZBLCAweEU1LCBcCisgICAgICAgIDB4MTUsIDB4RDIsIDB4MjYsIDB4MTgsIDB4OTgsIDB4RkEsIDB4MDUsIDB4MTAsIFwKKyAgICAgICAgMHgxNSwgMHg3MiwgMHg4RSwgMHg1QSwgMHg4QSwgMHhBQSwgMHhDNCwgMHgyRCwgXAorICAgICAgICAweEFELCAweDMzLCAweDE3LCAweDBELCAweDA0LCAweDUwLCAweDdBLCAweDMzLCBcCisgICAgICAgIDB4QTgsIDB4NTUsIDB4MjEsIDB4QUIsIDB4REYsIDB4MUMsIDB4QkEsIDB4NjQsIFwKKyAgICAgICAgMHhFQywgMHhGQiwgMHg4NSwgMHgwNCwgMHg1OCwgMHhEQiwgMHhFRiwgMHgwQSwgXAorICAgICAgICAweDhBLCAweEVBLCAweDcxLCAweDU3LCAweDVELCAweDA2LCAweDBDLCAweDdELCBcCisgICAgICAgIDB4QjMsIDB4OTcsIDB4MEYsIDB4ODUsIDB4QTYsIDB4RTEsIDB4RTQsIDB4QzcsIFwKKyAgICAgICAgMHhBQiwgMHhGNSwgMHhBRSwgMHg4QywgMHhEQiwgMHgwOSwgMHgzMywgMHhENywgXAorICAgICAgICAweDFFLCAweDhDLCAweDk0LCAweEUwLCAweDRBLCAweDI1LCAweDYxLCAweDlELCBcCisgICAgICAgIDB4Q0UsIDB4RTMsIDB4RDIsIDB4MjYsIDB4MUEsIDB4RDIsIDB4RUUsIDB4NkIsIFwKKyAgICAgICAgMHhGMSwgMHgyRiwgMHhGQSwgMHgwNiwgMHhEOSwgMHg4QSwgMHgwOCwgMHg2NCwgXAorICAgICAgICAweEQ4LCAweDc2LCAweDAyLCAweDczLCAweDNFLCAweEM4LCAweDZBLCAweDY0LCBcCisgICAgICAgIDB4NTIsIDB4MUYsIDB4MkIsIDB4MTgsIDB4MTcsIDB4N0IsIDB4MjAsIDB4MEMsIFwKKyAgICAgICAgMHhCQiwgMHhFMSwgMHgxNywgMHg1NywgMHg3QSwgMHg2MSwgMHg1RCwgMHg2QywgXAorICAgICAgICAweDc3LCAweDA5LCAweDg4LCAweEMwLCAweEJBLCAweEQ5LCAweDQ2LCAweEUyLCBcCisgICAgICAgIDB4MDgsIDB4RTIsIDB4NEYsIDB4QTAsIDB4NzQsIDB4RTUsIDB4QUIsIDB4MzEsIFwKKyAgICAgICAgMHg0MywgMHhEQiwgMHg1QiwgMHhGQywgMHhFMCwgMHhGRCwgMHgxMCwgMHg4RSwgXAorICAgICAgICAweDRCLCAweDgyLCAweEQxLCAweDIwLCAweEE5LCAweDNBLCAweEQyLCAweENBLCBcCisgICAgICAgIDB4RkYsIDB4RkYsIDB4RkYsIDB4RkYsIDB4RkYsIDB4RkYsIDB4RkYsIDB4RkYgfQorCisjZGVmaW5lIE1CRURUTFNfREhNX1JGQzM1MjZfTU9EUF8zMDcyX0dfQklOIHsgMHgwMiB9CisKKyNkZWZpbmUgTUJFRFRMU19ESE1fUkZDMzUyNl9NT0RQXzQwOTZfUF9CSU4gIHsgICAgICAgXAorICAgICAgICAweEZGLCAweEZGLCAweEZGLCAweEZGLCAweEZGLCAweEZGLCAweEZGLCAweEZGLCAgXAorICAgICAgICAweEM5LCAweDBGLCAweERBLCAweEEyLCAweDIxLCAweDY4LCAweEMyLCAweDM0LCAgXAorICAgICAgICAweEM0LCAweEM2LCAweDYyLCAweDhCLCAweDgwLCAweERDLCAweDFDLCAweEQxLCAgXAorICAgICAgICAweDI5LCAweDAyLCAweDRFLCAweDA4LCAweDhBLCAweDY3LCAweENDLCAweDc0LCAgXAorICAgICAgICAweDAyLCAweDBCLCAweEJFLCAweEE2LCAweDNCLCAweDEzLCAweDlCLCAweDIyLCAgXAorICAgICAgICAweDUxLCAweDRBLCAweDA4LCAweDc5LCAweDhFLCAweDM0LCAweDA0LCAweERELCAgXAorICAgICAgICAweEVGLCAweDk1LCAweDE5LCAweEIzLCAweENELCAweDNBLCAweDQzLCAweDFCLCAgXAorICAgICAgICAweDMwLCAweDJCLCAweDBBLCAweDZELCAweEYyLCAweDVGLCAweDE0LCAweDM3LCAgXAorICAgICAgICAweDRGLCAweEUxLCAweDM1LCAweDZELCAweDZELCAweDUxLCAweEMyLCAweDQ1LCAgXAorICAgICAgICAweEU0LCAweDg1LCAweEI1LCAweDc2LCAweDYyLCAweDVFLCAweDdFLCAweEM2LCAgXAorICAgICAgICAweEY0LCAweDRDLCAweDQyLCAweEU5LCAweEE2LCAweDM3LCAweEVELCAweDZCLCAgXAorICAgICAgICAweDBCLCAweEZGLCAweDVDLCAweEI2LCAweEY0LCAweDA2LCAweEI3LCAweEVELCAgXAorICAgICAgICAweEVFLCAweDM4LCAweDZCLCAweEZCLCAweDVBLCAweDg5LCAweDlGLCAweEE1LCAgXAorICAgICAgICAweEFFLCAweDlGLCAweDI0LCAweDExLCAweDdDLCAweDRCLCAweDFGLCAweEU2LCAgXAorICAgICAgICAweDQ5LCAweDI4LCAweDY2LCAweDUxLCAweEVDLCAweEU0LCAweDVCLCAweDNELCAgXAorICAgICAgICAweEMyLCAweDAwLCAweDdDLCAweEI4LCAweEExLCAweDYzLCAweEJGLCAweDA1LCAgXAorICAgICAgICAweDk4LCAweERBLCAweDQ4LCAweDM2LCAweDFDLCAweDU1LCAweEQzLCAweDlBLCAgXAorICAgICAgICAweDY5LCAweDE2LCAweDNGLCAweEE4LCAweEZELCAweDI0LCAweENGLCAweDVGLCAgXAorICAgICAgICAweDgzLCAweDY1LCAweDVELCAweDIzLCAweERDLCAweEEzLCAweEFELCAweDk2LCAgXAorICAgICAgICAweDFDLCAweDYyLCAweEYzLCAweDU2LCAweDIwLCAweDg1LCAweDUyLCAweEJCLCAgXAorICAgICAgICAweDlFLCAweEQ1LCAweDI5LCAweDA3LCAweDcwLCAweDk2LCAweDk2LCAweDZELCAgXAorICAgICAgICAweDY3LCAweDBDLCAweDM1LCAweDRFLCAweDRBLCAweEJDLCAweDk4LCAweDA0LCAgXAorICAgICAgICAweEYxLCAweDc0LCAweDZDLCAweDA4LCAweENBLCAweDE4LCAweDIxLCAweDdDLCAgXAorICAgICAgICAweDMyLCAweDkwLCAweDVFLCAweDQ2LCAweDJFLCAweDM2LCAweENFLCAweDNCLCAgXAorICAgICAgICAweEUzLCAweDlFLCAweDc3LCAweDJDLCAweDE4LCAweDBFLCAweDg2LCAweDAzLCAgXAorICAgICAgICAweDlCLCAweDI3LCAweDgzLCAweEEyLCAweEVDLCAweDA3LCAweEEyLCAweDhGLCAgXAorICAgICAgICAweEI1LCAweEM1LCAweDVELCAweEYwLCAweDZGLCAweDRDLCAweDUyLCAweEM5LCAgXAorICAgICAgICAweERFLCAweDJCLCAweENCLCAweEY2LCAweDk1LCAweDU4LCAweDE3LCAweDE4LCAgXAorICAgICAgICAweDM5LCAweDk1LCAweDQ5LCAweDdDLCAweEVBLCAweDk1LCAweDZBLCAweEU1LCAgXAorICAgICAgICAweDE1LCAweEQyLCAweDI2LCAweDE4LCAweDk4LCAweEZBLCAweDA1LCAweDEwLCAgXAorICAgICAgICAweDE1LCAweDcyLCAweDhFLCAweDVBLCAweDhBLCAweEFBLCAweEM0LCAweDJELCAgXAorICAgICAgICAweEFELCAweDMzLCAweDE3LCAweDBELCAweDA0LCAweDUwLCAweDdBLCAweDMzLCAgXAorICAgICAgICAweEE4LCAweDU1LCAweDIxLCAweEFCLCAweERGLCAweDFDLCAweEJBLCAweDY0LCAgXAorICAgICAgICAweEVDLCAweEZCLCAweDg1LCAweDA0LCAweDU4LCAweERCLCAweEVGLCAweDBBLCAgXAorICAgICAgICAweDhBLCAweEVBLCAweDcxLCAweDU3LCAweDVELCAweDA2LCAweDBDLCAweDdELCAgXAorICAgICAgICAweEIzLCAweDk3LCAweDBGLCAweDg1LCAweEE2LCAweEUxLCAweEU0LCAweEM3LCAgXAorICAgICAgICAweEFCLCAweEY1LCAweEFFLCAweDhDLCAweERCLCAweDA5LCAweDMzLCAweEQ3LCAgXAorICAgICAgICAweDFFLCAweDhDLCAweDk0LCAweEUwLCAweDRBLCAweDI1LCAweDYxLCAweDlELCAgXAorICAgICAgICAweENFLCAweEUzLCAweEQyLCAweDI2LCAweDFBLCAweEQyLCAweEVFLCAweDZCLCAgXAorICAgICAgICAweEYxLCAweDJGLCAweEZBLCAweDA2LCAweEQ5LCAweDhBLCAweDA4LCAweDY0LCAgXAorICAgICAgICAweEQ4LCAweDc2LCAweDAyLCAweDczLCAweDNFLCAweEM4LCAweDZBLCAweDY0LCAgXAorICAgICAgICAweDUyLCAweDFGLCAweDJCLCAweDE4LCAweDE3LCAweDdCLCAweDIwLCAweDBDLCAgXAorICAgICAgICAweEJCLCAweEUxLCAweDE3LCAweDU3LCAweDdBLCAweDYxLCAweDVELCAweDZDLCAgXAorICAgICAgICAweDc3LCAweDA5LCAweDg4LCAweEMwLCAweEJBLCAweEQ5LCAweDQ2LCAweEUyLCAgXAorICAgICAgICAweDA4LCAweEUyLCAweDRGLCAweEEwLCAweDc0LCAweEU1LCAweEFCLCAweDMxLCAgXAorICAgICAgICAweDQzLCAweERCLCAweDVCLCAweEZDLCAweEUwLCAweEZELCAweDEwLCAweDhFLCAgXAorICAgICAgICAweDRCLCAweDgyLCAweEQxLCAweDIwLCAweEE5LCAweDIxLCAweDA4LCAweDAxLCAgXAorICAgICAgICAweDFBLCAweDcyLCAweDNDLCAweDEyLCAweEE3LCAweDg3LCAweEU2LCAweEQ3LCAgXAorICAgICAgICAweDg4LCAweDcxLCAweDlBLCAweDEwLCAweEJELCAweEJBLCAweDVCLCAweDI2LCAgXAorICAgICAgICAweDk5LCAweEMzLCAweDI3LCAweDE4LCAweDZBLCAweEY0LCAweEUyLCAweDNDLCAgXAorICAgICAgICAweDFBLCAweDk0LCAweDY4LCAweDM0LCAweEI2LCAweDE1LCAweDBCLCAweERBLCAgXAorICAgICAgICAweDI1LCAweDgzLCAweEU5LCAweENBLCAweDJBLCAweEQ0LCAweDRDLCAweEU4LCAgXAorICAgICAgICAweERCLCAweEJCLCAweEMyLCAweERCLCAweDA0LCAweERFLCAweDhFLCAweEY5LCAgXAorICAgICAgICAweDJFLCAweDhFLCAweEZDLCAweDE0LCAweDFGLCAweEJFLCAweENBLCAweEE2LCAgXAorICAgICAgICAweDI4LCAweDdDLCAweDU5LCAweDQ3LCAweDRFLCAweDZCLCAweEMwLCAweDVELCAgXAorICAgICAgICAweDk5LCAweEIyLCAweDk2LCAweDRGLCAweEEwLCAweDkwLCAweEMzLCAweEEyLCAgXAorICAgICAgICAweDIzLCAweDNCLCAweEExLCAweDg2LCAweDUxLCAweDVCLCAweEU3LCAweEVELCAgXAorICAgICAgICAweDFGLCAweDYxLCAweDI5LCAweDcwLCAweENFLCAweEUyLCAweEQ3LCAweEFGLCAgXAorICAgICAgICAweEI4LCAweDFCLCAweERELCAweDc2LCAweDIxLCAweDcwLCAweDQ4LCAweDFDLCAgXAorICAgICAgICAweEQwLCAweDA2LCAweDkxLCAweDI3LCAweEQ1LCAweEIwLCAweDVBLCAweEE5LCAgXAorICAgICAgICAweDkzLCAweEI0LCAweEVBLCAweDk4LCAweDhELCAweDhGLCAweERELCAweEMxLCAgXAorICAgICAgICAweDg2LCAweEZGLCAweEI3LCAweERDLCAweDkwLCAweEE2LCAweEMwLCAweDhGLCAgXAorICAgICAgICAweDRELCAweEY0LCAweDM1LCAweEM5LCAweDM0LCAweDA2LCAweDMxLCAweDk5LCAgXAorICAgICAgICAweEZGLCAweEZGLCAweEZGLCAweEZGLCAweEZGLCAweEZGLCAweEZGLCAweEZGIH0KKworI2RlZmluZSBNQkVEVExTX0RITV9SRkMzNTI2X01PRFBfNDA5Nl9HX0JJTiB7IDB4MDIgfQorCisjZGVmaW5lIE1CRURUTFNfREhNX1JGQzc5MTlfRkZESEUyMDQ4X1BfQklOIHsgICAgICAgIFwKKyAgICAgICAgMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiwgXAorICAgICAgICAweEFELCAweEY4LCAweDU0LCAweDU4LCAweEEyLCAweEJCLCAweDRBLCAweDlBLCBcCisgICAgICAgIDB4QUYsIDB4REMsIDB4NTYsIDB4MjAsIDB4MjcsIDB4M0QsIDB4M0MsIDB4RjEsIFwKKyAgICAgICAgMHhEOCwgMHhCOSwgMHhDNSwgMHg4MywgMHhDRSwgMHgyRCwgMHgzNiwgMHg5NSwgXAorICAgICAgICAweEE5LCAweEUxLCAweDM2LCAweDQxLCAweDE0LCAweDY0LCAweDMzLCAweEZCLCBcCisgICAgICAgIDB4Q0MsIDB4OTMsIDB4OUQsIDB4Q0UsIDB4MjQsIDB4OUIsIDB4M0UsIDB4RjksIFwKKyAgICAgICAgMHg3RCwgMHgyRiwgMHhFMywgMHg2MywgMHg2MywgMHgwQywgMHg3NSwgMHhEOCwgXAorICAgICAgICAweEY2LCAweDgxLCAweEIyLCAweDAyLCAweEFFLCAweEM0LCAweDYxLCAweDdBLCBcCisgICAgICAgIDB4RDMsIDB4REYsIDB4MUUsIDB4RDUsIDB4RDUsIDB4RkQsIDB4NjUsIDB4NjEsIFwKKyAgICAgICAgMHgyNCwgMHgzMywgMHhGNSwgMHgxRiwgMHg1RiwgMHgwNiwgMHg2RSwgMHhEMCwgXAorICAgICAgICAweDg1LCAweDYzLCAweDY1LCAweDU1LCAweDNELCAweEVELCAweDFBLCAweEYzLCBcCisgICAgICAgIDB4QjUsIDB4NTcsIDB4MTMsIDB4NUUsIDB4N0YsIDB4NTcsIDB4QzksIDB4MzUsIFwKKyAgICAgICAgMHg5OCwgMHg0RiwgMHgwQywgMHg3MCwgMHhFMCwgMHhFNiwgMHg4QiwgMHg3NywgXAorICAgICAgICAweEUyLCAweEE2LCAweDg5LCAweERBLCAweEYzLCAweEVGLCAweEU4LCAweDcyLCBcCisgICAgICAgIDB4MUQsIDB4RjEsIDB4NTgsIDB4QTEsIDB4MzYsIDB4QUQsIDB4RTcsIDB4MzUsIFwKKyAgICAgICAgMHgzMCwgMHhBQywgMHhDQSwgMHg0RiwgMHg0OCwgMHgzQSwgMHg3OSwgMHg3QSwgXAorICAgICAgICAweEJDLCAweDBBLCAweEIxLCAweDgyLCAweEIzLCAweDI0LCAweEZCLCAweDYxLCBcCisgICAgICAgIDB4RDEsIDB4MDgsIDB4QTksIDB4NEIsIDB4QjIsIDB4QzgsIDB4RTMsIDB4RkIsIFwKKyAgICAgICAgMHhCOSwgMHg2QSwgMHhEQSwgMHhCNywgMHg2MCwgMHhENywgMHhGNCwgMHg2OCwgXAorICAgICAgICAweDFELCAweDRGLCAweDQyLCAweEEzLCAweERFLCAweDM5LCAweDRELCAweEY0LCBcCisgICAgICAgIDB4QUUsIDB4NTYsIDB4RUQsIDB4RTcsIDB4NjMsIDB4NzIsIDB4QkIsIDB4MTksIFwKKyAgICAgICAgMHgwQiwgMHgwNywgMHhBNywgMHhDOCwgMHhFRSwgMHgwQSwgMHg2RCwgMHg3MCwgXAorICAgICAgICAweDlFLCAweDAyLCAweEZDLCAweEUxLCAweENELCAweEY3LCAweEUyLCAweEVDLCBcCisgICAgICAgIDB4QzAsIDB4MzQsIDB4MDQsIDB4Q0QsIDB4MjgsIDB4MzQsIDB4MkYsIDB4NjEsIFwKKyAgICAgICAgMHg5MSwgMHg3MiwgMHhGRSwgMHg5QywgMHhFOSwgMHg4NSwgMHg4MywgMHhGRiwgXAorICAgICAgICAweDhFLCAweDRGLCAweDEyLCAweDMyLCAweEVFLCAweEYyLCAweDgxLCAweDgzLCBcCisgICAgICAgIDB4QzMsIDB4RkUsIDB4M0IsIDB4MUIsIDB4NEMsIDB4NkYsIDB4QUQsIDB4NzMsIFwKKyAgICAgICAgMHgzQiwgMHhCNSwgMHhGQywgMHhCQywgMHgyRSwgMHhDMiwgMHgyMCwgMHgwNSwgXAorICAgICAgICAweEM1LCAweDhFLCAweEYxLCAweDgzLCAweDdELCAweDE2LCAweDgzLCAweEIyLCBcCisgICAgICAgIDB4QzYsIDB4RjMsIDB4NEEsIDB4MjYsIDB4QzEsIDB4QjIsIDB4RUYsIDB4RkEsIFwKKyAgICAgICAgMHg4OCwgMHg2QiwgMHg0MiwgMHgzOCwgMHg2MSwgMHgyOCwgMHg1QywgMHg5NywgXAorICAgICAgICAweEZGLCAweEZGLCAweEZGLCAweEZGLCAweEZGLCAweEZGLCAweEZGLCAweEZGLCB9CisKKyNkZWZpbmUgTUJFRFRMU19ESE1fUkZDNzkxOV9GRkRIRTIwNDhfR19CSU4geyAweDAyIH0KKworI2RlZmluZSBNQkVEVExTX0RITV9SRkM3OTE5X0ZGREhFMzA3Ml9QX0JJTiB7IFwKKyAgICAgICAgMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiwgXAorICAgICAgICAweEFELCAweEY4LCAweDU0LCAweDU4LCAweEEyLCAweEJCLCAweDRBLCAweDlBLCBcCisgICAgICAgIDB4QUYsIDB4REMsIDB4NTYsIDB4MjAsIDB4MjcsIDB4M0QsIDB4M0MsIDB4RjEsIFwKKyAgICAgICAgMHhEOCwgMHhCOSwgMHhDNSwgMHg4MywgMHhDRSwgMHgyRCwgMHgzNiwgMHg5NSwgXAorICAgICAgICAweEE5LCAweEUxLCAweDM2LCAweDQxLCAweDE0LCAweDY0LCAweDMzLCAweEZCLCBcCisgICAgICAgIDB4Q0MsIDB4OTMsIDB4OUQsIDB4Q0UsIDB4MjQsIDB4OUIsIDB4M0UsIDB4RjksIFwKKyAgICAgICAgMHg3RCwgMHgyRiwgMHhFMywgMHg2MywgMHg2MywgMHgwQywgMHg3NSwgMHhEOCwgXAorICAgICAgICAweEY2LCAweDgxLCAweEIyLCAweDAyLCAweEFFLCAweEM0LCAweDYxLCAweDdBLCBcCisgICAgICAgIDB4RDMsIDB4REYsIDB4MUUsIDB4RDUsIDB4RDUsIDB4RkQsIDB4NjUsIDB4NjEsIFwKKyAgICAgICAgMHgyNCwgMHgzMywgMHhGNSwgMHgxRiwgMHg1RiwgMHgwNiwgMHg2RSwgMHhEMCwgXAorICAgICAgICAweDg1LCAweDYzLCAweDY1LCAweDU1LCAweDNELCAweEVELCAweDFBLCAweEYzLCBcCisgICAgICAgIDB4QjUsIDB4NTcsIDB4MTMsIDB4NUUsIDB4N0YsIDB4NTcsIDB4QzksIDB4MzUsIFwKKyAgICAgICAgMHg5OCwgMHg0RiwgMHgwQywgMHg3MCwgMHhFMCwgMHhFNiwgMHg4QiwgMHg3NywgXAorICAgICAgICAweEUyLCAweEE2LCAweDg5LCAweERBLCAweEYzLCAweEVGLCAweEU4LCAweDcyLCBcCisgICAgICAgIDB4MUQsIDB4RjEsIDB4NTgsIDB4QTEsIDB4MzYsIDB4QUQsIDB4RTcsIDB4MzUsIFwKKyAgICAgICAgMHgzMCwgMHhBQywgMHhDQSwgMHg0RiwgMHg0OCwgMHgzQSwgMHg3OSwgMHg3QSwgXAorICAgICAgICAweEJDLCAweDBBLCAweEIxLCAweDgyLCAweEIzLCAweDI0LCAweEZCLCAweDYxLCBcCisgICAgICAgIDB4RDEsIDB4MDgsIDB4QTksIDB4NEIsIDB4QjIsIDB4QzgsIDB4RTMsIDB4RkIsIFwKKyAgICAgICAgMHhCOSwgMHg2QSwgMHhEQSwgMHhCNywgMHg2MCwgMHhENywgMHhGNCwgMHg2OCwgXAorICAgICAgICAweDFELCAweDRGLCAweDQyLCAweEEzLCAweERFLCAweDM5LCAweDRELCAweEY0LCBcCisgICAgICAgIDB4QUUsIDB4NTYsIDB4RUQsIDB4RTcsIDB4NjMsIDB4NzIsIDB4QkIsIDB4MTksIFwKKyAgICAgICAgMHgwQiwgMHgwNywgMHhBNywgMHhDOCwgMHhFRSwgMHgwQSwgMHg2RCwgMHg3MCwgXAorICAgICAgICAweDlFLCAweDAyLCAweEZDLCAweEUxLCAweENELCAweEY3LCAweEUyLCAweEVDLCBcCisgICAgICAgIDB4QzAsIDB4MzQsIDB4MDQsIDB4Q0QsIDB4MjgsIDB4MzQsIDB4MkYsIDB4NjEsIFwKKyAgICAgICAgMHg5MSwgMHg3MiwgMHhGRSwgMHg5QywgMHhFOSwgMHg4NSwgMHg4MywgMHhGRiwgXAorICAgICAgICAweDhFLCAweDRGLCAweDEyLCAweDMyLCAweEVFLCAweEYyLCAweDgxLCAweDgzLCBcCisgICAgICAgIDB4QzMsIDB4RkUsIDB4M0IsIDB4MUIsIDB4NEMsIDB4NkYsIDB4QUQsIDB4NzMsIFwKKyAgICAgICAgMHgzQiwgMHhCNSwgMHhGQywgMHhCQywgMHgyRSwgMHhDMiwgMHgyMCwgMHgwNSwgXAorICAgICAgICAweEM1LCAweDhFLCAweEYxLCAweDgzLCAweDdELCAweDE2LCAweDgzLCAweEIyLCBcCisgICAgICAgIDB4QzYsIDB4RjMsIDB4NEEsIDB4MjYsIDB4QzEsIDB4QjIsIDB4RUYsIDB4RkEsIFwKKyAgICAgICAgMHg4OCwgMHg2QiwgMHg0MiwgMHgzOCwgMHg2MSwgMHgxRiwgMHhDRiwgMHhEQywgXAorICAgICAgICAweERFLCAweDM1LCAweDVCLCAweDNCLCAweDY1LCAweDE5LCAweDAzLCAweDVCLCBcCisgICAgICAgIDB4QkMsIDB4MzQsIDB4RjQsIDB4REUsIDB4RjksIDB4OUMsIDB4MDIsIDB4MzgsIFwKKyAgICAgICAgMHg2MSwgMHhCNCwgMHg2RiwgMHhDOSwgMHhENiwgMHhFNiwgMHhDOSwgMHgwNywgXAorICAgICAgICAweDdBLCAweEQ5LCAweDFELCAweDI2LCAweDkxLCAweEY3LCAweEY3LCAweEVFLCBcCisgICAgICAgIDB4NTksIDB4OEMsIDB4QjAsIDB4RkEsIDB4QzEsIDB4ODYsIDB4RDksIDB4MUMsIFwKKyAgICAgICAgMHhBRSwgMHhGRSwgMHgxMywgMHgwOSwgMHg4NSwgMHgxMywgMHg5MiwgMHg3MCwgXAorICAgICAgICAweEI0LCAweDEzLCAweDBDLCAweDkzLCAweEJDLCAweDQzLCAweDc5LCAweDQ0LCBcCisgICAgICAgIDB4RjQsIDB4RkQsIDB4NDQsIDB4NTIsIDB4RTIsIDB4RDcsIDB4NEQsIDB4RDMsIFwKKyAgICAgICAgMHg2NCwgMHhGMiwgMHhFMiwgMHgxRSwgMHg3MSwgMHhGNSwgMHg0QiwgMHhGRiwgXAorICAgICAgICAweDVDLCAweEFFLCAweDgyLCAweEFCLCAweDlDLCAweDlELCAweEY2LCAweDlFLCBcCisgICAgICAgIDB4RTgsIDB4NkQsIDB4MkIsIDB4QzUsIDB4MjIsIDB4MzYsIDB4M0EsIDB4MEQsIFwKKyAgICAgICAgMHhBQiwgMHhDNSwgMHgyMSwgMHg5NywgMHg5QiwgMHgwRCwgMHhFQSwgMHhEQSwgXAorICAgICAgICAweDFELCAweEJGLCAweDlBLCAweDQyLCAweEQ1LCAweEM0LCAweDQ4LCAweDRFLCBcCisgICAgICAgIDB4MEEsIDB4QkMsIDB4RDAsIDB4NkIsIDB4RkEsIDB4NTMsIDB4REQsIDB4RUYsIFwKKyAgICAgICAgMHgzQywgMHgxQiwgMHgyMCwgMHhFRSwgMHgzRiwgMHhENSwgMHg5RCwgMHg3QywgXAorICAgICAgICAweDI1LCAweEU0LCAweDFELCAweDJCLCAweDY2LCAweEM2LCAweDJFLCAweDM3LCBcCisgICAgICAgIDB4RkYsIDB4RkYsIDB4RkYsIDB4RkYsIDB4RkYsIDB4RkYsIDB4RkYsIDB4RkYgfQorCisjZGVmaW5lIE1CRURUTFNfREhNX1JGQzc5MTlfRkZESEUzMDcyX0dfQklOIHsgMHgwMiB9CisKKyNkZWZpbmUgTUJFRFRMU19ESE1fUkZDNzkxOV9GRkRIRTQwOTZfUF9CSU4geyAgICAgICAgXAorICAgICAgICAweEZGLCAweEZGLCAweEZGLCAweEZGLCAweEZGLCAweEZGLCAweEZGLCAweEZGLCBcCisgICAgICAgIDB4QUQsIDB4RjgsIDB4NTQsIDB4NTgsIDB4QTIsIDB4QkIsIDB4NEEsIDB4OUEsIFwKKyAgICAgICAgMHhBRiwgMHhEQywgMHg1NiwgMHgyMCwgMHgyNywgMHgzRCwgMHgzQywgMHhGMSwgXAorICAgICAgICAweEQ4LCAweEI5LCAweEM1LCAweDgzLCAweENFLCAweDJELCAweDM2LCAweDk1LCBcCisgICAgICAgIDB4QTksIDB4RTEsIDB4MzYsIDB4NDEsIDB4MTQsIDB4NjQsIDB4MzMsIDB4RkIsIFwKKyAgICAgICAgMHhDQywgMHg5MywgMHg5RCwgMHhDRSwgMHgyNCwgMHg5QiwgMHgzRSwgMHhGOSwgXAorICAgICAgICAweDdELCAweDJGLCAweEUzLCAweDYzLCAweDYzLCAweDBDLCAweDc1LCAweEQ4LCBcCisgICAgICAgIDB4RjYsIDB4ODEsIDB4QjIsIDB4MDIsIDB4QUUsIDB4QzQsIDB4NjEsIDB4N0EsIFwKKyAgICAgICAgMHhEMywgMHhERiwgMHgxRSwgMHhENSwgMHhENSwgMHhGRCwgMHg2NSwgMHg2MSwgXAorICAgICAgICAweDI0LCAweDMzLCAweEY1LCAweDFGLCAweDVGLCAweDA2LCAweDZFLCAweEQwLCBcCisgICAgICAgIDB4ODUsIDB4NjMsIDB4NjUsIDB4NTUsIDB4M0QsIDB4RUQsIDB4MUEsIDB4RjMsIFwKKyAgICAgICAgMHhCNSwgMHg1NywgMHgxMywgMHg1RSwgMHg3RiwgMHg1NywgMHhDOSwgMHgzNSwgXAorICAgICAgICAweDk4LCAweDRGLCAweDBDLCAweDcwLCAweEUwLCAweEU2LCAweDhCLCAweDc3LCBcCisgICAgICAgIDB4RTIsIDB4QTYsIDB4ODksIDB4REEsIDB4RjMsIDB4RUYsIDB4RTgsIDB4NzIsIFwKKyAgICAgICAgMHgxRCwgMHhGMSwgMHg1OCwgMHhBMSwgMHgzNiwgMHhBRCwgMHhFNywgMHgzNSwgXAorICAgICAgICAweDMwLCAweEFDLCAweENBLCAweDRGLCAweDQ4LCAweDNBLCAweDc5LCAweDdBLCBcCisgICAgICAgIDB4QkMsIDB4MEEsIDB4QjEsIDB4ODIsIDB4QjMsIDB4MjQsIDB4RkIsIDB4NjEsIFwKKyAgICAgICAgMHhEMSwgMHgwOCwgMHhBOSwgMHg0QiwgMHhCMiwgMHhDOCwgMHhFMywgMHhGQiwgXAorICAgICAgICAweEI5LCAweDZBLCAweERBLCAweEI3LCAweDYwLCAweEQ3LCAweEY0LCAweDY4LCBcCisgICAgICAgIDB4MUQsIDB4NEYsIDB4NDIsIDB4QTMsIDB4REUsIDB4MzksIDB4NEQsIDB4RjQsIFwKKyAgICAgICAgMHhBRSwgMHg1NiwgMHhFRCwgMHhFNywgMHg2MywgMHg3MiwgMHhCQiwgMHgxOSwgXAorICAgICAgICAweDBCLCAweDA3LCAweEE3LCAweEM4LCAweEVFLCAweDBBLCAweDZELCAweDcwLCBcCisgICAgICAgIDB4OUUsIDB4MDIsIDB4RkMsIDB4RTEsIDB4Q0QsIDB4RjcsIDB4RTIsIDB4RUMsIFwKKyAgICAgICAgMHhDMCwgMHgzNCwgMHgwNCwgMHhDRCwgMHgyOCwgMHgzNCwgMHgyRiwgMHg2MSwgXAorICAgICAgICAweDkxLCAweDcyLCAweEZFLCAweDlDLCAweEU5LCAweDg1LCAweDgzLCAweEZGLCBcCisgICAgICAgIDB4OEUsIDB4NEYsIDB4MTIsIDB4MzIsIDB4RUUsIDB4RjIsIDB4ODEsIDB4ODMsIFwKKyAgICAgICAgMHhDMywgMHhGRSwgMHgzQiwgMHgxQiwgMHg0QywgMHg2RiwgMHhBRCwgMHg3MywgXAorICAgICAgICAweDNCLCAweEI1LCAweEZDLCAweEJDLCAweDJFLCAweEMyLCAweDIwLCAweDA1LCBcCisgICAgICAgIDB4QzUsIDB4OEUsIDB4RjEsIDB4ODMsIDB4N0QsIDB4MTYsIDB4ODMsIDB4QjIsIFwKKyAgICAgICAgMHhDNiwgMHhGMywgMHg0QSwgMHgyNiwgMHhDMSwgMHhCMiwgMHhFRiwgMHhGQSwgXAorICAgICAgICAweDg4LCAweDZCLCAweDQyLCAweDM4LCAweDYxLCAweDFGLCAweENGLCAweERDLCBcCisgICAgICAgIDB4REUsIDB4MzUsIDB4NUIsIDB4M0IsIDB4NjUsIDB4MTksIDB4MDMsIDB4NUIsIFwKKyAgICAgICAgMHhCQywgMHgzNCwgMHhGNCwgMHhERSwgMHhGOSwgMHg5QywgMHgwMiwgMHgzOCwgXAorICAgICAgICAweDYxLCAweEI0LCAweDZGLCAweEM5LCAweEQ2LCAweEU2LCAweEM5LCAweDA3LCBcCisgICAgICAgIDB4N0EsIDB4RDksIDB4MUQsIDB4MjYsIDB4OTEsIDB4RjcsIDB4RjcsIDB4RUUsIFwKKyAgICAgICAgMHg1OSwgMHg4QywgMHhCMCwgMHhGQSwgMHhDMSwgMHg4NiwgMHhEOSwgMHgxQywgXAorICAgICAgICAweEFFLCAweEZFLCAweDEzLCAweDA5LCAweDg1LCAweDEzLCAweDkyLCAweDcwLCBcCisgICAgICAgIDB4QjQsIDB4MTMsIDB4MEMsIDB4OTMsIDB4QkMsIDB4NDMsIDB4NzksIDB4NDQsIFwKKyAgICAgICAgMHhGNCwgMHhGRCwgMHg0NCwgMHg1MiwgMHhFMiwgMHhENywgMHg0RCwgMHhEMywgXAorICAgICAgICAweDY0LCAweEYyLCAweEUyLCAweDFFLCAweDcxLCAweEY1LCAweDRCLCAweEZGLCBcCisgICAgICAgIDB4NUMsIDB4QUUsIDB4ODIsIDB4QUIsIDB4OUMsIDB4OUQsIDB4RjYsIDB4OUUsIFwKKyAgICAgICAgMHhFOCwgMHg2RCwgMHgyQiwgMHhDNSwgMHgyMiwgMHgzNiwgMHgzQSwgMHgwRCwgXAorICAgICAgICAweEFCLCAweEM1LCAweDIxLCAweDk3LCAweDlCLCAweDBELCAweEVBLCAweERBLCBcCisgICAgICAgIDB4MUQsIDB4QkYsIDB4OUEsIDB4NDIsIDB4RDUsIDB4QzQsIDB4NDgsIDB4NEUsIFwKKyAgICAgICAgMHgwQSwgMHhCQywgMHhEMCwgMHg2QiwgMHhGQSwgMHg1MywgMHhERCwgMHhFRiwgXAorICAgICAgICAweDNDLCAweDFCLCAweDIwLCAweEVFLCAweDNGLCAweEQ1LCAweDlELCAweDdDLCBcCisgICAgICAgIDB4MjUsIDB4RTQsIDB4MUQsIDB4MkIsIDB4NjYsIDB4OUUsIDB4MUUsIDB4RjEsIFwKKyAgICAgICAgMHg2RSwgMHg2RiwgMHg1MiwgMHhDMywgMHgxNiwgMHg0RCwgMHhGNCwgMHhGQiwgXAorICAgICAgICAweDc5LCAweDMwLCAweEU5LCAweEU0LCAweEU1LCAweDg4LCAweDU3LCAweEI2LCBcCisgICAgICAgIDB4QUMsIDB4N0QsIDB4NUYsIDB4NDIsIDB4RDYsIDB4OUYsIDB4NkQsIDB4MTgsIFwKKyAgICAgICAgMHg3NywgMHg2MywgMHhDRiwgMHgxRCwgMHg1NSwgMHgwMywgMHg0MCwgMHgwNCwgXAorICAgICAgICAweDg3LCAweEY1LCAweDVCLCAweEE1LCAweDdFLCAweDMxLCAweENDLCAweDdBLCBcCisgICAgICAgIDB4NzEsIDB4MzUsIDB4QzgsIDB4ODYsIDB4RUYsIDB4QjQsIDB4MzEsIDB4OEEsIFwKKyAgICAgICAgMHhFRCwgMHg2QSwgMHgxRSwgMHgwMSwgMHgyRCwgMHg5RSwgMHg2OCwgMHgzMiwgXAorICAgICAgICAweEE5LCAweDA3LCAweDYwLCAweDBBLCAweDkxLCAweDgxLCAweDMwLCAweEM0LCBcCisgICAgICAgIDB4NkQsIDB4QzcsIDB4NzgsIDB4RjksIDB4NzEsIDB4QUQsIDB4MDAsIDB4MzgsIFwKKyAgICAgICAgMHgwOSwgMHgyOSwgMHg5OSwgMHhBMywgMHgzMywgMHhDQiwgMHg4QiwgMHg3QSwgXAorICAgICAgICAweDFBLCAweDFELCAweEI5LCAweDNELCAweDcxLCAweDQwLCAweDAwLCAweDNDLCBcCisgICAgICAgIDB4MkEsIDB4NEUsIDB4Q0UsIDB4QTksIDB4RjksIDB4OEQsIDB4MEEsIDB4Q0MsIFwKKyAgICAgICAgMHgwQSwgMHg4MiwgMHg5MSwgMHhDRCwgMHhDRSwgMHhDOSwgMHg3RCwgMHhDRiwgXAorICAgICAgICAweDhFLCAweEM5LCAweEI1LCAweDVBLCAweDdGLCAweDg4LCAweEE0LCAweDZCLCBcCisgICAgICAgIDB4NEQsIDB4QjUsIDB4QTgsIDB4NTEsIDB4RjQsIDB4NDEsIDB4ODIsIDB4RTEsIFwKKyAgICAgICAgMHhDNiwgMHg4QSwgMHgwMCwgMHg3RSwgMHg1RSwgMHg2NSwgMHg1RiwgMHg2QSwgXAorICAgICAgICAweEZGLCAweEZGLCAweEZGLCAweEZGLCAweEZGLCAweEZGLCAweEZGLCAweEZGIH0KKworI2RlZmluZSBNQkVEVExTX0RITV9SRkM3OTE5X0ZGREhFNDA5Nl9HX0JJTiB7IDB4MDIgfQorCisjZGVmaW5lIE1CRURUTFNfREhNX1JGQzc5MTlfRkZESEU2MTQ0X1BfQklOIHsgICAgICAgIFwKKyAgICAgICAgMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiwgXAorICAgICAgICAweEFELCAweEY4LCAweDU0LCAweDU4LCAweEEyLCAweEJCLCAweDRBLCAweDlBLCBcCisgICAgICAgIDB4QUYsIDB4REMsIDB4NTYsIDB4MjAsIDB4MjcsIDB4M0QsIDB4M0MsIDB4RjEsIFwKKyAgICAgICAgMHhEOCwgMHhCOSwgMHhDNSwgMHg4MywgMHhDRSwgMHgyRCwgMHgzNiwgMHg5NSwgXAorICAgICAgICAweEE5LCAweEUxLCAweDM2LCAweDQxLCAweDE0LCAweDY0LCAweDMzLCAweEZCLCBcCisgICAgICAgIDB4Q0MsIDB4OTMsIDB4OUQsIDB4Q0UsIDB4MjQsIDB4OUIsIDB4M0UsIDB4RjksIFwKKyAgICAgICAgMHg3RCwgMHgyRiwgMHhFMywgMHg2MywgMHg2MywgMHgwQywgMHg3NSwgMHhEOCwgXAorICAgICAgICAweEY2LCAweDgxLCAweEIyLCAweDAyLCAweEFFLCAweEM0LCAweDYxLCAweDdBLCBcCisgICAgICAgIDB4RDMsIDB4REYsIDB4MUUsIDB4RDUsIDB4RDUsIDB4RkQsIDB4NjUsIDB4NjEsIFwKKyAgICAgICAgMHgyNCwgMHgzMywgMHhGNSwgMHgxRiwgMHg1RiwgMHgwNiwgMHg2RSwgMHhEMCwgXAorICAgICAgICAweDg1LCAweDYzLCAweDY1LCAweDU1LCAweDNELCAweEVELCAweDFBLCAweEYzLCBcCisgICAgICAgIDB4QjUsIDB4NTcsIDB4MTMsIDB4NUUsIDB4N0YsIDB4NTcsIDB4QzksIDB4MzUsIFwKKyAgICAgICAgMHg5OCwgMHg0RiwgMHgwQywgMHg3MCwgMHhFMCwgMHhFNiwgMHg4QiwgMHg3NywgXAorICAgICAgICAweEUyLCAweEE2LCAweDg5LCAweERBLCAweEYzLCAweEVGLCAweEU4LCAweDcyLCBcCisgICAgICAgIDB4MUQsIDB4RjEsIDB4NTgsIDB4QTEsIDB4MzYsIDB4QUQsIDB4RTcsIDB4MzUsIFwKKyAgICAgICAgMHgzMCwgMHhBQywgMHhDQSwgMHg0RiwgMHg0OCwgMHgzQSwgMHg3OSwgMHg3QSwgXAorICAgICAgICAweEJDLCAweDBBLCAweEIxLCAweDgyLCAweEIzLCAweDI0LCAweEZCLCAweDYxLCBcCisgICAgICAgIDB4RDEsIDB4MDgsIDB4QTksIDB4NEIsIDB4QjIsIDB4QzgsIDB4RTMsIDB4RkIsIFwKKyAgICAgICAgMHhCOSwgMHg2QSwgMHhEQSwgMHhCNywgMHg2MCwgMHhENywgMHhGNCwgMHg2OCwgXAorICAgICAgICAweDFELCAweDRGLCAweDQyLCAweEEzLCAweERFLCAweDM5LCAweDRELCAweEY0LCBcCisgICAgICAgIDB4QUUsIDB4NTYsIDB4RUQsIDB4RTcsIDB4NjMsIDB4NzIsIDB4QkIsIDB4MTksIFwKKyAgICAgICAgMHgwQiwgMHgwNywgMHhBNywgMHhDOCwgMHhFRSwgMHgwQSwgMHg2RCwgMHg3MCwgXAorICAgICAgICAweDlFLCAweDAyLCAweEZDLCAweEUxLCAweENELCAweEY3LCAweEUyLCAweEVDLCBcCisgICAgICAgIDB4QzAsIDB4MzQsIDB4MDQsIDB4Q0QsIDB4MjgsIDB4MzQsIDB4MkYsIDB4NjEsIFwKKyAgICAgICAgMHg5MSwgMHg3MiwgMHhGRSwgMHg5QywgMHhFOSwgMHg4NSwgMHg4MywgMHhGRiwgXAorICAgICAgICAweDhFLCAweDRGLCAweDEyLCAweDMyLCAweEVFLCAweEYyLCAweDgxLCAweDgzLCBcCisgICAgICAgIDB4QzMsIDB4RkUsIDB4M0IsIDB4MUIsIDB4NEMsIDB4NkYsIDB4QUQsIDB4NzMsIFwKKyAgICAgICAgMHgzQiwgMHhCNSwgMHhGQywgMHhCQywgMHgyRSwgMHhDMiwgMHgyMCwgMHgwNSwgXAorICAgICAgICAweEM1LCAweDhFLCAweEYxLCAweDgzLCAweDdELCAweDE2LCAweDgzLCAweEIyLCBcCisgICAgICAgIDB4QzYsIDB4RjMsIDB4NEEsIDB4MjYsIDB4QzEsIDB4QjIsIDB4RUYsIDB4RkEsIFwKKyAgICAgICAgMHg4OCwgMHg2QiwgMHg0MiwgMHgzOCwgMHg2MSwgMHgxRiwgMHhDRiwgMHhEQywgXAorICAgICAgICAweERFLCAweDM1LCAweDVCLCAweDNCLCAweDY1LCAweDE5LCAweDAzLCAweDVCLCBcCisgICAgICAgIDB4QkMsIDB4MzQsIDB4RjQsIDB4REUsIDB4RjksIDB4OUMsIDB4MDIsIDB4MzgsIFwKKyAgICAgICAgMHg2MSwgMHhCNCwgMHg2RiwgMHhDOSwgMHhENiwgMHhFNiwgMHhDOSwgMHgwNywgXAorICAgICAgICAweDdBLCAweEQ5LCAweDFELCAweDI2LCAweDkxLCAweEY3LCAweEY3LCAweEVFLCBcCisgICAgICAgIDB4NTksIDB4OEMsIDB4QjAsIDB4RkEsIDB4QzEsIDB4ODYsIDB4RDksIDB4MUMsIFwKKyAgICAgICAgMHhBRSwgMHhGRSwgMHgxMywgMHgwOSwgMHg4NSwgMHgxMywgMHg5MiwgMHg3MCwgXAorICAgICAgICAweEI0LCAweDEzLCAweDBDLCAweDkzLCAweEJDLCAweDQzLCAweDc5LCAweDQ0LCBcCisgICAgICAgIDB4RjQsIDB4RkQsIDB4NDQsIDB4NTIsIDB4RTIsIDB4RDcsIDB4NEQsIDB4RDMsIFwKKyAgICAgICAgMHg2NCwgMHhGMiwgMHhFMiwgMHgxRSwgMHg3MSwgMHhGNSwgMHg0QiwgMHhGRiwgXAorICAgICAgICAweDVDLCAweEFFLCAweDgyLCAweEFCLCAweDlDLCAweDlELCAweEY2LCAweDlFLCBcCisgICAgICAgIDB4RTgsIDB4NkQsIDB4MkIsIDB4QzUsIDB4MjIsIDB4MzYsIDB4M0EsIDB4MEQsIFwKKyAgICAgICAgMHhBQiwgMHhDNSwgMHgyMSwgMHg5NywgMHg5QiwgMHgwRCwgMHhFQSwgMHhEQSwgXAorICAgICAgICAweDFELCAweEJGLCAweDlBLCAweDQyLCAweEQ1LCAweEM0LCAweDQ4LCAweDRFLCBcCisgICAgICAgIDB4MEEsIDB4QkMsIDB4RDAsIDB4NkIsIDB4RkEsIDB4NTMsIDB4REQsIDB4RUYsIFwKKyAgICAgICAgMHgzQywgMHgxQiwgMHgyMCwgMHhFRSwgMHgzRiwgMHhENSwgMHg5RCwgMHg3QywgXAorICAgICAgICAweDI1LCAweEU0LCAweDFELCAweDJCLCAweDY2LCAweDlFLCAweDFFLCAweEYxLCBcCisgICAgICAgIDB4NkUsIDB4NkYsIDB4NTIsIDB4QzMsIDB4MTYsIDB4NEQsIDB4RjQsIDB4RkIsIFwKKyAgICAgICAgMHg3OSwgMHgzMCwgMHhFOSwgMHhFNCwgMHhFNSwgMHg4OCwgMHg1NywgMHhCNiwgXAorICAgICAgICAweEFDLCAweDdELCAweDVGLCAweDQyLCAweEQ2LCAweDlGLCAweDZELCAweDE4LCBcCisgICAgICAgIDB4NzcsIDB4NjMsIDB4Q0YsIDB4MUQsIDB4NTUsIDB4MDMsIDB4NDAsIDB4MDQsIFwKKyAgICAgICAgMHg4NywgMHhGNSwgMHg1QiwgMHhBNSwgMHg3RSwgMHgzMSwgMHhDQywgMHg3QSwgXAorICAgICAgICAweDcxLCAweDM1LCAweEM4LCAweDg2LCAweEVGLCAweEI0LCAweDMxLCAweDhBLCBcCisgICAgICAgIDB4RUQsIDB4NkEsIDB4MUUsIDB4MDEsIDB4MkQsIDB4OUUsIDB4NjgsIDB4MzIsIFwKKyAgICAgICAgMHhBOSwgMHgwNywgMHg2MCwgMHgwQSwgMHg5MSwgMHg4MSwgMHgzMCwgMHhDNCwgXAorICAgICAgICAweDZELCAweEM3LCAweDc4LCAweEY5LCAweDcxLCAweEFELCAweDAwLCAweDM4LCBcCisgICAgICAgIDB4MDksIDB4MjksIDB4OTksIDB4QTMsIDB4MzMsIDB4Q0IsIDB4OEIsIDB4N0EsIFwKKyAgICAgICAgMHgxQSwgMHgxRCwgMHhCOSwgMHgzRCwgMHg3MSwgMHg0MCwgMHgwMCwgMHgzQywgXAorICAgICAgICAweDJBLCAweDRFLCAweENFLCAweEE5LCAweEY5LCAweDhELCAweDBBLCAweENDLCBcCisgICAgICAgIDB4MEEsIDB4ODIsIDB4OTEsIDB4Q0QsIDB4Q0UsIDB4QzksIDB4N0QsIDB4Q0YsIFwKKyAgICAgICAgMHg4RSwgMHhDOSwgMHhCNSwgMHg1QSwgMHg3RiwgMHg4OCwgMHhBNCwgMHg2QiwgXAorICAgICAgICAweDRELCAweEI1LCAweEE4LCAweDUxLCAweEY0LCAweDQxLCAweDgyLCAweEUxLCBcCisgICAgICAgIDB4QzYsIDB4OEEsIDB4MDAsIDB4N0UsIDB4NUUsIDB4MEQsIDB4RDksIDB4MDIsIFwKKyAgICAgICAgMHgwQiwgMHhGRCwgMHg2NCwgMHhCNiwgMHg0NSwgMHgwMywgMHg2QywgMHg3QSwgXAorICAgICAgICAweDRFLCAweDY3LCAweDdELCAweDJDLCAweDM4LCAweDUzLCAweDJBLCAweDNBLCBcCisgICAgICAgIDB4MjMsIDB4QkEsIDB4NDQsIDB4NDIsIDB4Q0EsIDB4RjUsIDB4M0UsIDB4QTYsIFwKKyAgICAgICAgMHgzQiwgMHhCNCwgMHg1NCwgMHgzMiwgMHg5QiwgMHg3NiwgMHgyNCwgMHhDOCwgXAorICAgICAgICAweDkxLCAweDdCLCAweERELCAweDY0LCAweEIxLCAweEMwLCAweEZELCAweDRDLCBcCisgICAgICAgIDB4QjMsIDB4OEUsIDB4OEMsIDB4MzMsIDB4NEMsIDB4NzAsIDB4MUMsIDB4M0EsIFwKKyAgICAgICAgMHhDRCwgMHhBRCwgMHgwNiwgMHg1NywgMHhGQywgMHhDRiwgMHhFQywgMHg3MSwgXAorICAgICAgICAweDlCLCAweDFGLCAweDVDLCAweDNFLCAweDRFLCAweDQ2LCAweDA0LCAweDFGLCBcCisgICAgICAgIDB4MzgsIDB4ODEsIDB4NDcsIDB4RkIsIDB4NEMsIDB4RkQsIDB4QjQsIDB4NzcsIFwKKyAgICAgICAgMHhBNSwgMHgyNCwgMHg3MSwgMHhGNywgMHhBOSwgMHhBOSwgMHg2OSwgMHgxMCwgXAorICAgICAgICAweEI4LCAweDU1LCAweDMyLCAweDJFLCAweERCLCAweDYzLCAweDQwLCAweEQ4LCBcCisgICAgICAgIDB4QTAsIDB4MEUsIDB4RjAsIDB4OTIsIDB4MzUsIDB4MDUsIDB4MTEsIDB4RTMsIFwKKyAgICAgICAgMHgwQSwgMHhCRSwgMHhDMSwgMHhGRiwgMHhGOSwgMHhFMywgMHhBMiwgMHg2RSwgXAorICAgICAgICAweDdGLCAweEIyLCAweDlGLCAweDhDLCAweDE4LCAweDMwLCAweDIzLCAweEMzLCBcCisgICAgICAgIDB4NTgsIDB4N0UsIDB4MzgsIDB4REEsIDB4MDAsIDB4NzcsIDB4RDksIDB4QjQsIFwKKyAgICAgICAgMHg3NiwgMHgzRSwgMHg0RSwgMHg0QiwgMHg5NCwgMHhCMiwgMHhCQiwgMHhDMSwgXAorICAgICAgICAweDk0LCAweEM2LCAweDY1LCAweDFFLCAweDc3LCAweENBLCAweEY5LCAweDkyLCBcCisgICAgICAgIDB4RUUsIDB4QUEsIDB4QzAsIDB4MjMsIDB4MkEsIDB4MjgsIDB4MUIsIDB4RjYsIFwKKyAgICAgICAgMHhCMywgMHhBNywgMHgzOSwgMHhDMSwgMHgyMiwgMHg2MSwgMHgxNiwgMHg4MiwgXAorICAgICAgICAweDBBLCAweEU4LCAweERCLCAweDU4LCAweDQ3LCAweEE2LCAweDdDLCAweEJFLCBcCisgICAgICAgIDB4RjksIDB4QzksIDB4MDksIDB4MUIsIDB4NDYsIDB4MkQsIDB4NTMsIDB4OEMsIFwKKyAgICAgICAgMHhENywgMHgyQiwgMHgwMywgMHg3NCwgMHg2QSwgMHhFNywgMHg3RiwgMHg1RSwgXAorICAgICAgICAweDYyLCAweDI5LCAweDJDLCAweDMxLCAweDE1LCAweDYyLCAweEE4LCAweDQ2LCBcCisgICAgICAgIDB4NTAsIDB4NUQsIDB4QzgsIDB4MkQsIDB4QjgsIDB4NTQsIDB4MzMsIDB4OEEsIFwKKyAgICAgICAgMHhFNCwgMHg5RiwgMHg1MiwgMHgzNSwgMHhDOSwgMHg1QiwgMHg5MSwgMHgxNywgXAorICAgICAgICAweDhDLCAweENGLCAweDJELCAweEQ1LCAweENBLCAweENFLCAweEY0LCAweDAzLCBcCisgICAgICAgIDB4RUMsIDB4OUQsIDB4MTgsIDB4MTAsIDB4QzYsIDB4MjcsIDB4MkIsIDB4MDQsIFwKKyAgICAgICAgMHg1QiwgMHgzQiwgMHg3MSwgMHhGOSwgMHhEQywgMHg2QiwgMHg4MCwgMHhENiwgXAorICAgICAgICAweDNGLCAweERELCAweDRBLCAweDhFLCAweDlBLCAweERCLCAweDFFLCAweDY5LCBcCisgICAgICAgIDB4NjIsIDB4QTYsIDB4OTUsIDB4MjYsIDB4RDQsIDB4MzEsIDB4NjEsIDB4QzEsIFwKKyAgICAgICAgMHhBNCwgMHgxRCwgMHg1NywgMHgwRCwgMHg3OSwgMHgzOCwgMHhEQSwgMHhENCwgXAorICAgICAgICAweEE0LCAweDBFLCAweDMyLCAweDlDLCAweEQwLCAweEU0LCAweDBFLCAweDY1LCBcCisgICAgICAgIDB4RkYsIDB4RkYsIDB4RkYsIDB4RkYsIDB4RkYsIDB4RkYsIDB4RkYsIDB4RkYgfQorCisjZGVmaW5lIE1CRURUTFNfREhNX1JGQzc5MTlfRkZESEU2MTQ0X0dfQklOIHsgMHgwMiB9CisKKyNkZWZpbmUgTUJFRFRMU19ESE1fUkZDNzkxOV9GRkRIRTgxOTJfUF9CSU4geyAgICAgICAgXAorICAgICAgICAweEZGLCAweEZGLCAweEZGLCAweEZGLCAweEZGLCAweEZGLCAweEZGLCAweEZGLCBcCisgICAgICAgIDB4QUQsIDB4RjgsIDB4NTQsIDB4NTgsIDB4QTIsIDB4QkIsIDB4NEEsIDB4OUEsIFwKKyAgICAgICAgMHhBRiwgMHhEQywgMHg1NiwgMHgyMCwgMHgyNywgMHgzRCwgMHgzQywgMHhGMSwgXAorICAgICAgICAweEQ4LCAweEI5LCAweEM1LCAweDgzLCAweENFLCAweDJELCAweDM2LCAweDk1LCBcCisgICAgICAgIDB4QTksIDB4RTEsIDB4MzYsIDB4NDEsIDB4MTQsIDB4NjQsIDB4MzMsIDB4RkIsIFwKKyAgICAgICAgMHhDQywgMHg5MywgMHg5RCwgMHhDRSwgMHgyNCwgMHg5QiwgMHgzRSwgMHhGOSwgXAorICAgICAgICAweDdELCAweDJGLCAweEUzLCAweDYzLCAweDYzLCAweDBDLCAweDc1LCAweEQ4LCBcCisgICAgICAgIDB4RjYsIDB4ODEsIDB4QjIsIDB4MDIsIDB4QUUsIDB4QzQsIDB4NjEsIDB4N0EsIFwKKyAgICAgICAgMHhEMywgMHhERiwgMHgxRSwgMHhENSwgMHhENSwgMHhGRCwgMHg2NSwgMHg2MSwgXAorICAgICAgICAweDI0LCAweDMzLCAweEY1LCAweDFGLCAweDVGLCAweDA2LCAweDZFLCAweEQwLCBcCisgICAgICAgIDB4ODUsIDB4NjMsIDB4NjUsIDB4NTUsIDB4M0QsIDB4RUQsIDB4MUEsIDB4RjMsIFwKKyAgICAgICAgMHhCNSwgMHg1NywgMHgxMywgMHg1RSwgMHg3RiwgMHg1NywgMHhDOSwgMHgzNSwgXAorICAgICAgICAweDk4LCAweDRGLCAweDBDLCAweDcwLCAweEUwLCAweEU2LCAweDhCLCAweDc3LCBcCisgICAgICAgIDB4RTIsIDB4QTYsIDB4ODksIDB4REEsIDB4RjMsIDB4RUYsIDB4RTgsIDB4NzIsIFwKKyAgICAgICAgMHgxRCwgMHhGMSwgMHg1OCwgMHhBMSwgMHgzNiwgMHhBRCwgMHhFNywgMHgzNSwgXAorICAgICAgICAweDMwLCAweEFDLCAweENBLCAweDRGLCAweDQ4LCAweDNBLCAweDc5LCAweDdBLCBcCisgICAgICAgIDB4QkMsIDB4MEEsIDB4QjEsIDB4ODIsIDB4QjMsIDB4MjQsIDB4RkIsIDB4NjEsIFwKKyAgICAgICAgMHhEMSwgMHgwOCwgMHhBOSwgMHg0QiwgMHhCMiwgMHhDOCwgMHhFMywgMHhGQiwgXAorICAgICAgICAweEI5LCAweDZBLCAweERBLCAweEI3LCAweDYwLCAweEQ3LCAweEY0LCAweDY4LCBcCisgICAgICAgIDB4MUQsIDB4NEYsIDB4NDIsIDB4QTMsIDB4REUsIDB4MzksIDB4NEQsIDB4RjQsIFwKKyAgICAgICAgMHhBRSwgMHg1NiwgMHhFRCwgMHhFNywgMHg2MywgMHg3MiwgMHhCQiwgMHgxOSwgXAorICAgICAgICAweDBCLCAweDA3LCAweEE3LCAweEM4LCAweEVFLCAweDBBLCAweDZELCAweDcwLCBcCisgICAgICAgIDB4OUUsIDB4MDIsIDB4RkMsIDB4RTEsIDB4Q0QsIDB4RjcsIDB4RTIsIDB4RUMsIFwKKyAgICAgICAgMHhDMCwgMHgzNCwgMHgwNCwgMHhDRCwgMHgyOCwgMHgzNCwgMHgyRiwgMHg2MSwgXAorICAgICAgICAweDkxLCAweDcyLCAweEZFLCAweDlDLCAweEU5LCAweDg1LCAweDgzLCAweEZGLCBcCisgICAgICAgIDB4OEUsIDB4NEYsIDB4MTIsIDB4MzIsIDB4RUUsIDB4RjIsIDB4ODEsIDB4ODMsIFwKKyAgICAgICAgMHhDMywgMHhGRSwgMHgzQiwgMHgxQiwgMHg0QywgMHg2RiwgMHhBRCwgMHg3MywgXAorICAgICAgICAweDNCLCAweEI1LCAweEZDLCAweEJDLCAweDJFLCAweEMyLCAweDIwLCAweDA1LCBcCisgICAgICAgIDB4QzUsIDB4OEUsIDB4RjEsIDB4ODMsIDB4N0QsIDB4MTYsIDB4ODMsIDB4QjIsIFwKKyAgICAgICAgMHhDNiwgMHhGMywgMHg0QSwgMHgyNiwgMHhDMSwgMHhCMiwgMHhFRiwgMHhGQSwgXAorICAgICAgICAweDg4LCAweDZCLCAweDQyLCAweDM4LCAweDYxLCAweDFGLCAweENGLCAweERDLCBcCisgICAgICAgIDB4REUsIDB4MzUsIDB4NUIsIDB4M0IsIDB4NjUsIDB4MTksIDB4MDMsIDB4NUIsIFwKKyAgICAgICAgMHhCQywgMHgzNCwgMHhGNCwgMHhERSwgMHhGOSwgMHg5QywgMHgwMiwgMHgzOCwgXAorICAgICAgICAweDYxLCAweEI0LCAweDZGLCAweEM5LCAweEQ2LCAweEU2LCAweEM5LCAweDA3LCBcCisgICAgICAgIDB4N0EsIDB4RDksIDB4MUQsIDB4MjYsIDB4OTEsIDB4RjcsIDB4RjcsIDB4RUUsIFwKKyAgICAgICAgMHg1OSwgMHg4QywgMHhCMCwgMHhGQSwgMHhDMSwgMHg4NiwgMHhEOSwgMHgxQywgXAorICAgICAgICAweEFFLCAweEZFLCAweDEzLCAweDA5LCAweDg1LCAweDEzLCAweDkyLCAweDcwLCBcCisgICAgICAgIDB4QjQsIDB4MTMsIDB4MEMsIDB4OTMsIDB4QkMsIDB4NDMsIDB4NzksIDB4NDQsIFwKKyAgICAgICAgMHhGNCwgMHhGRCwgMHg0NCwgMHg1MiwgMHhFMiwgMHhENywgMHg0RCwgMHhEMywgXAorICAgICAgICAweDY0LCAweEYyLCAweEUyLCAweDFFLCAweDcxLCAweEY1LCAweDRCLCAweEZGLCBcCisgICAgICAgIDB4NUMsIDB4QUUsIDB4ODIsIDB4QUIsIDB4OUMsIDB4OUQsIDB4RjYsIDB4OUUsIFwKKyAgICAgICAgMHhFOCwgMHg2RCwgMHgyQiwgMHhDNSwgMHgyMiwgMHgzNiwgMHgzQSwgMHgwRCwgXAorICAgICAgICAweEFCLCAweEM1LCAweDIxLCAweDk3LCAweDlCLCAweDBELCAweEVBLCAweERBLCBcCisgICAgICAgIDB4MUQsIDB4QkYsIDB4OUEsIDB4NDIsIDB4RDUsIDB4QzQsIDB4NDgsIDB4NEUsIFwKKyAgICAgICAgMHgwQSwgMHhCQywgMHhEMCwgMHg2QiwgMHhGQSwgMHg1MywgMHhERCwgMHhFRiwgXAorICAgICAgICAweDNDLCAweDFCLCAweDIwLCAweEVFLCAweDNGLCAweEQ1LCAweDlELCAweDdDLCBcCisgICAgICAgIDB4MjUsIDB4RTQsIDB4MUQsIDB4MkIsIDB4NjYsIDB4OUUsIDB4MUUsIDB4RjEsIFwKKyAgICAgICAgMHg2RSwgMHg2RiwgMHg1MiwgMHhDMywgMHgxNiwgMHg0RCwgMHhGNCwgMHhGQiwgXAorICAgICAgICAweDc5LCAweDMwLCAweEU5LCAweEU0LCAweEU1LCAweDg4LCAweDU3LCAweEI2LCBcCisgICAgICAgIDB4QUMsIDB4N0QsIDB4NUYsIDB4NDIsIDB4RDYsIDB4OUYsIDB4NkQsIDB4MTgsIFwKKyAgICAgICAgMHg3NywgMHg2MywgMHhDRiwgMHgxRCwgMHg1NSwgMHgwMywgMHg0MCwgMHgwNCwgXAorICAgICAgICAweDg3LCAweEY1LCAweDVCLCAweEE1LCAweDdFLCAweDMxLCAweENDLCAweDdBLCBcCisgICAgICAgIDB4NzEsIDB4MzUsIDB4QzgsIDB4ODYsIDB4RUYsIDB4QjQsIDB4MzEsIDB4OEEsIFwKKyAgICAgICAgMHhFRCwgMHg2QSwgMHgxRSwgMHgwMSwgMHgyRCwgMHg5RSwgMHg2OCwgMHgzMiwgXAorICAgICAgICAweEE5LCAweDA3LCAweDYwLCAweDBBLCAweDkxLCAweDgxLCAweDMwLCAweEM0LCBcCisgICAgICAgIDB4NkQsIDB4QzcsIDB4NzgsIDB4RjksIDB4NzEsIDB4QUQsIDB4MDAsIDB4MzgsIFwKKyAgICAgICAgMHgwOSwgMHgyOSwgMHg5OSwgMHhBMywgMHgzMywgMHhDQiwgMHg4QiwgMHg3QSwgXAorICAgICAgICAweDFBLCAweDFELCAweEI5LCAweDNELCAweDcxLCAweDQwLCAweDAwLCAweDNDLCBcCisgICAgICAgIDB4MkEsIDB4NEUsIDB4Q0UsIDB4QTksIDB4RjksIDB4OEQsIDB4MEEsIDB4Q0MsIFwKKyAgICAgICAgMHgwQSwgMHg4MiwgMHg5MSwgMHhDRCwgMHhDRSwgMHhDOSwgMHg3RCwgMHhDRiwgXAorICAgICAgICAweDhFLCAweEM5LCAweEI1LCAweDVBLCAweDdGLCAweDg4LCAweEE0LCAweDZCLCBcCisgICAgICAgIDB4NEQsIDB4QjUsIDB4QTgsIDB4NTEsIDB4RjQsIDB4NDEsIDB4ODIsIDB4RTEsIFwKKyAgICAgICAgMHhDNiwgMHg4QSwgMHgwMCwgMHg3RSwgMHg1RSwgMHgwRCwgMHhEOSwgMHgwMiwgXAorICAgICAgICAweDBCLCAweEZELCAweDY0LCAweEI2LCAweDQ1LCAweDAzLCAweDZDLCAweDdBLCBcCisgICAgICAgIDB4NEUsIDB4NjcsIDB4N0QsIDB4MkMsIDB4MzgsIDB4NTMsIDB4MkEsIDB4M0EsIFwKKyAgICAgICAgMHgyMywgMHhCQSwgMHg0NCwgMHg0MiwgMHhDQSwgMHhGNSwgMHgzRSwgMHhBNiwgXAorICAgICAgICAweDNCLCAweEI0LCAweDU0LCAweDMyLCAweDlCLCAweDc2LCAweDI0LCAweEM4LCBcCisgICAgICAgIDB4OTEsIDB4N0IsIDB4REQsIDB4NjQsIDB4QjEsIDB4QzAsIDB4RkQsIDB4NEMsIFwKKyAgICAgICAgMHhCMywgMHg4RSwgMHg4QywgMHgzMywgMHg0QywgMHg3MCwgMHgxQywgMHgzQSwgXAorICAgICAgICAweENELCAweEFELCAweDA2LCAweDU3LCAweEZDLCAweENGLCAweEVDLCAweDcxLCBcCisgICAgICAgIDB4OUIsIDB4MUYsIDB4NUMsIDB4M0UsIDB4NEUsIDB4NDYsIDB4MDQsIDB4MUYsIFwKKyAgICAgICAgMHgzOCwgMHg4MSwgMHg0NywgMHhGQiwgMHg0QywgMHhGRCwgMHhCNCwgMHg3NywgXAorICAgICAgICAweEE1LCAweDI0LCAweDcxLCAweEY3LCAweEE5LCAweEE5LCAweDY5LCAweDEwLCBcCisgICAgICAgIDB4QjgsIDB4NTUsIDB4MzIsIDB4MkUsIDB4REIsIDB4NjMsIDB4NDAsIDB4RDgsIFwKKyAgICAgICAgMHhBMCwgMHgwRSwgMHhGMCwgMHg5MiwgMHgzNSwgMHgwNSwgMHgxMSwgMHhFMywgXAorICAgICAgICAweDBBLCAweEJFLCAweEMxLCAweEZGLCAweEY5LCAweEUzLCAweEEyLCAweDZFLCBcCisgICAgICAgIDB4N0YsIDB4QjIsIDB4OUYsIDB4OEMsIDB4MTgsIDB4MzAsIDB4MjMsIDB4QzMsIFwKKyAgICAgICAgMHg1OCwgMHg3RSwgMHgzOCwgMHhEQSwgMHgwMCwgMHg3NywgMHhEOSwgMHhCNCwgXAorICAgICAgICAweDc2LCAweDNFLCAweDRFLCAweDRCLCAweDk0LCAweEIyLCAweEJCLCAweEMxLCBcCisgICAgICAgIDB4OTQsIDB4QzYsIDB4NjUsIDB4MUUsIDB4NzcsIDB4Q0EsIDB4RjksIDB4OTIsIFwKKyAgICAgICAgMHhFRSwgMHhBQSwgMHhDMCwgMHgyMywgMHgyQSwgMHgyOCwgMHgxQiwgMHhGNiwgXAorICAgICAgICAweEIzLCAweEE3LCAweDM5LCAweEMxLCAweDIyLCAweDYxLCAweDE2LCAweDgyLCBcCisgICAgICAgIDB4MEEsIDB4RTgsIDB4REIsIDB4NTgsIDB4NDcsIDB4QTYsIDB4N0MsIDB4QkUsIFwKKyAgICAgICAgMHhGOSwgMHhDOSwgMHgwOSwgMHgxQiwgMHg0NiwgMHgyRCwgMHg1MywgMHg4QywgXAorICAgICAgICAweEQ3LCAweDJCLCAweDAzLCAweDc0LCAweDZBLCAweEU3LCAweDdGLCAweDVFLCBcCisgICAgICAgIDB4NjIsIDB4MjksIDB4MkMsIDB4MzEsIDB4MTUsIDB4NjIsIDB4QTgsIDB4NDYsIFwKKyAgICAgICAgMHg1MCwgMHg1RCwgMHhDOCwgMHgyRCwgMHhCOCwgMHg1NCwgMHgzMywgMHg4QSwgXAorICAgICAgICAweEU0LCAweDlGLCAweDUyLCAweDM1LCAweEM5LCAweDVCLCAweDkxLCAweDE3LCBcCisgICAgICAgIDB4OEMsIDB4Q0YsIDB4MkQsIDB4RDUsIDB4Q0EsIDB4Q0UsIDB4RjQsIDB4MDMsIFwKKyAgICAgICAgMHhFQywgMHg5RCwgMHgxOCwgMHgxMCwgMHhDNiwgMHgyNywgMHgyQiwgMHgwNCwgXAorICAgICAgICAweDVCLCAweDNCLCAweDcxLCAweEY5LCAweERDLCAweDZCLCAweDgwLCAweEQ2LCBcCisgICAgICAgIDB4M0YsIDB4REQsIDB4NEEsIDB4OEUsIDB4OUEsIDB4REIsIDB4MUUsIDB4NjksIFwKKyAgICAgICAgMHg2MiwgMHhBNiwgMHg5NSwgMHgyNiwgMHhENCwgMHgzMSwgMHg2MSwgMHhDMSwgXAorICAgICAgICAweEE0LCAweDFELCAweDU3LCAweDBELCAweDc5LCAweDM4LCAweERBLCAweEQ0LCBcCisgICAgICAgIDB4QTQsIDB4MEUsIDB4MzIsIDB4OUMsIDB4Q0YsIDB4RjQsIDB4NkEsIDB4QUEsIFwKKyAgICAgICAgMHgzNiwgMHhBRCwgMHgwMCwgMHg0QywgMHhGNiwgMHgwMCwgMHhDOCwgMHgzOCwgXAorICAgICAgICAweDFFLCAweDQyLCAweDVBLCAweDMxLCAweEQ5LCAweDUxLCAweEFFLCAweDY0LCBcCisgICAgICAgIDB4RkQsIDB4QjIsIDB4M0YsIDB4Q0UsIDB4QzksIDB4NTAsIDB4OUQsIDB4NDMsIFwKKyAgICAgICAgMHg2OCwgMHg3RiwgMHhFQiwgMHg2OSwgMHhFRCwgMHhEMSwgMHhDQywgMHg1RSwgXAorICAgICAgICAweDBCLCAweDhDLCAweEMzLCAweEJELCAweEY2LCAweDRCLCAweDEwLCAweEVGLCBcCisgICAgICAgIDB4ODYsIDB4QjYsIDB4MzEsIDB4NDIsIDB4QTMsIDB4QUIsIDB4ODgsIDB4MjksIFwKKyAgICAgICAgMHg1NSwgMHg1QiwgMHgyRiwgMHg3NCwgMHg3QywgMHg5MywgMHgyNiwgMHg2NSwgXAorICAgICAgICAweENCLCAweDJDLCAweDBGLCAweDFDLCAweEMwLCAweDFCLCAweEQ3LCAweDAyLCBcCisgICAgICAgIDB4MjksIDB4MzgsIDB4ODgsIDB4MzksIDB4RDIsIDB4QUYsIDB4MDUsIDB4RTQsIFwKKyAgICAgICAgMHg1NCwgMHg1MCwgMHg0QSwgMHhDNywgMHg4QiwgMHg3NSwgMHg4MiwgMHg4MiwgXAorICAgICAgICAweDI4LCAweDQ2LCAweEMwLCAweEJBLCAweDM1LCAweEMzLCAweDVGLCAweDVDLCBcCisgICAgICAgIDB4NTksIDB4MTYsIDB4MEMsIDB4QzAsIDB4NDYsIDB4RkQsIDB4ODIsIDB4NTEsIFwKKyAgICAgICAgMHg1NCwgMHgxRiwgMHhDNiwgMHg4QywgMHg5QywgMHg4NiwgMHhCMCwgMHgyMiwgXAorICAgICAgICAweEJCLCAweDcwLCAweDk5LCAweDg3LCAweDZBLCAweDQ2LCAweDBFLCAweDc0LCBcCisgICAgICAgIDB4NTEsIDB4QTgsIDB4QTksIDB4MzEsIDB4MDksIDB4NzAsIDB4M0YsIDB4RUUsIFwKKyAgICAgICAgMHgxQywgMHgyMSwgMHg3RSwgMHg2QywgMHgzOCwgMHgyNiwgMHhFNSwgMHgyQywgXAorICAgICAgICAweDUxLCAweEFBLCAweDY5LCAweDFFLCAweDBFLCAweDQyLCAweDNDLCAweEZDLCBcCisgICAgICAgIDB4OTksIDB4RTksIDB4RTMsIDB4MTYsIDB4NTAsIDB4QzEsIDB4MjEsIDB4N0IsIFwKKyAgICAgICAgMHg2MiwgMHg0OCwgMHgxNiwgMHhDRCwgMHhBRCwgMHg5QSwgMHg5NSwgMHhGOSwgXAorICAgICAgICAweEQ1LCAweEI4LCAweDAxLCAweDk0LCAweDg4LCAweEQ5LCAweEMwLCAweEEwLCBcCisgICAgICAgIDB4QTEsIDB4RkUsIDB4MzAsIDB4NzUsIDB4QTUsIDB4NzcsIDB4RTIsIDB4MzEsIFwKKyAgICAgICAgMHg4MywgMHhGOCwgMHgxRCwgMHg0QSwgMHgzRiwgMHgyRiwgMHhBNCwgMHg1NywgXAorICAgICAgICAweDFFLCAweEZDLCAweDhDLCAweEUwLCAweEJBLCAweDhBLCAweDRGLCAweEU4LCBcCisgICAgICAgIDB4QjYsIDB4ODUsIDB4NUQsIDB4RkUsIDB4NzIsIDB4QjAsIDB4QTYsIDB4NkUsIFwKKyAgICAgICAgMHhERSwgMHhEMiwgMHhGQiwgMHhBQiwgMHhGQiwgMHhFNSwgMHg4QSwgMHgzMCwgXAorICAgICAgICAweEZBLCAweEZBLCAweEJFLCAweDFDLCAweDVELCAweDcxLCAweEE4LCAweDdFLCBcCisgICAgICAgIDB4MkYsIDB4NzQsIDB4MUUsIDB4RjgsIDB4QzEsIDB4RkUsIDB4ODYsIDB4RkUsIFwKKyAgICAgICAgMHhBNiwgMHhCQiwgMHhGRCwgMHhFNSwgMHgzMCwgMHg2NywgMHg3RiwgMHgwRCwgXAorICAgICAgICAweDk3LCAweEQxLCAweDFELCAweDQ5LCAweEY3LCAweEE4LCAweDQ0LCAweDNELCBcCisgICAgICAgIDB4MDgsIDB4MjIsIDB4RTUsIDB4MDYsIDB4QTksIDB4RjQsIDB4NjEsIDB4NEUsIFwKKyAgICAgICAgMHgwMSwgMHgxRSwgMHgyQSwgMHg5NCwgMHg4MywgMHg4RiwgMHhGOCwgMHg4QywgXAorICAgICAgICAweEQ2LCAweDhDLCAweDhCLCAweEI3LCAweEM1LCAweEM2LCAweDQyLCAweDRDLCBcCisgICAgICAgIDB4RkYsIDB4RkYsIDB4RkYsIDB4RkYsIDB4RkYsIDB4RkYsIDB4RkYsIDB4RkYgfQorCisjZGVmaW5lIE1CRURUTFNfREhNX1JGQzc5MTlfRkZESEU4MTkyX0dfQklOIHsgMHgwMiB9CisKKyNlbmRpZiAvKiBkaG0uaCAqLwpkaWZmIC0tZ2l0IGEvdGYtcHNhLWNyeXB0by9kcml2ZXJzL2J1aWx0aW4vaW5jbHVkZS9tYmVkdGxzL2VjZGguaCBiL3RmLXBzYS1jcnlwdG8vZHJpdmVycy9idWlsdGluL2luY2x1ZGUvbWJlZHRscy9lY2RoLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTZhNTA2OQotLS0gL2Rldi9udWxsCisrKyBiL3RmLXBzYS1jcnlwdG8vZHJpdmVycy9idWlsdGluL2luY2x1ZGUvbWJlZHRscy9lY2RoLmgKQEAgLTAsMCArMSw0NTQgQEAKKy8qKgorICogXGZpbGUgZWNkaC5oCisgKgorICogXGJyaWVmIFRoaXMgZmlsZSBjb250YWlucyBFQ0RIIGRlZmluaXRpb25zIGFuZCBmdW5jdGlvbnMuCisgKgorICogVGhlIEVsbGlwdGljIEN1cnZlIERpZmZpZS1IZWxsbWFuIChFQ0RIKSBwcm90b2NvbCBpcyBhbiBhbm9ueW1vdXMKKyAqIGtleSBhZ3JlZW1lbnQgcHJvdG9jb2wgYWxsb3dpbmcgdHdvIHBhcnRpZXMgdG8gZXN0YWJsaXNoIGEgc2hhcmVkCisgKiBzZWNyZXQgb3ZlciBhbiBpbnNlY3VyZSBjaGFubmVsLiBFYWNoIHBhcnR5IG11c3QgaGF2ZSBhbgorICogZWxsaXB0aWMtY3VydmUgcHVibGlj4oCTcHJpdmF0ZSBrZXkgcGFpci4KKyAqCisgKiBGb3IgbW9yZSBpbmZvcm1hdGlvbiwgc2VlIDxlbT5OSVNUIFNQIDgwMC01NkEgUmV2LiAyOiBSZWNvbW1lbmRhdGlvbiBmb3IKKyAqIFBhaXItV2lzZSBLZXkgRXN0YWJsaXNobWVudCBTY2hlbWVzIFVzaW5nIERpc2NyZXRlIExvZ2FyaXRobQorICogQ3J5cHRvZ3JhcGh5PC9lbT4uCisgKi8KKy8qCisgKiAgQ29weXJpZ2h0IFRoZSBNYmVkIFRMUyBDb250cmlidXRvcnMKKyAqICBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMCBPUiBHUEwtMi4wLW9yLWxhdGVyCisgKi8KKworI2lmbmRlZiBNQkVEVExTX0VDREhfSAorI2RlZmluZSBNQkVEVExTX0VDREhfSAorI2luY2x1ZGUgIm1iZWR0bHMvcHJpdmF0ZV9hY2Nlc3MuaCIKKworI2luY2x1ZGUgIm1iZWR0bHMvYnVpbGRfaW5mby5oIgorCisjaW5jbHVkZSAibWJlZHRscy9lY3AuaCIKKworLyoKKyAqIE1iZWQgVExTIHN1cHBvcnRzIHR3byBmb3JtYXRzIGZvciBFQ0RIIGNvbnRleHRzICgjbWJlZHRsc19lY2RoX2NvbnRleHQKKyAqIGRlZmluZWQgaW4gYGVjZGguaGApLiBGb3IgbW9zdCBhcHBsaWNhdGlvbnMsIHRoZSBjaG9pY2Ugb2YgZm9ybWF0IG1ha2VzCisgKiBubyBkaWZmZXJlbmNlLCBzaW5jZSBhbGwgbGlicmFyeSBmdW5jdGlvbnMgY2FuIHdvcmsgd2l0aCBlaXRoZXIgZm9ybWF0LAorICogZXhjZXB0IHRoYXQgdGhlIG5ldyBmb3JtYXQgaXMgaW5jb21wYXRpYmxlIHdpdGggTUJFRFRMU19FQ1BfUkVTVEFSVEFCTEUuCisKKyAqIFRoZSBuZXcgZm9ybWF0IHVzZWQgd2hlbiB0aGlzIG9wdGlvbiBpcyBkaXNhYmxlZCBpcyBzbWFsbGVyCisgKiAoNTYgYnl0ZXMgb24gYSAzMi1iaXQgcGxhdGZvcm0pLiBJbiBmdXR1cmUgdmVyc2lvbnMgb2YgdGhlIGxpYnJhcnksIGl0CisgKiB3aWxsIHN1cHBvcnQgYWx0ZXJuYXRpdmUgaW1wbGVtZW50YXRpb25zIG9mIEVDREggb3BlcmF0aW9ucy4KKyAqIFRoZSBuZXcgZm9ybWF0IGlzIGluY29tcGF0aWJsZSB3aXRoIGFwcGxpY2F0aW9ucyB0aGF0IGFjY2VzcworICogY29udGV4dCBmaWVsZHMgZGlyZWN0bHkgYW5kIHdpdGggcmVzdGFydGFibGUgRUNQIG9wZXJhdGlvbnMuCisgKi8KKworI2lmIGRlZmluZWQoTUJFRFRMU19FQ1BfUkVTVEFSVEFCTEUpCisjZGVmaW5lIE1CRURUTFNfRUNESF9MRUdBQ1lfQ09OVEVYVAorI2Vsc2UKKyN1bmRlZiBNQkVEVExTX0VDREhfTEVHQUNZX0NPTlRFWFQKKyNlbmRpZgorCisjaWYgZGVmaW5lZChNQkVEVExTX0VDREhfVkFSSUFOVF9FVkVSRVNUX0VOQUJMRUQpCisjdW5kZWYgTUJFRFRMU19FQ0RIX0xFR0FDWV9DT05URVhUCisjaW5jbHVkZSAiZXZlcmVzdC9ldmVyZXN0LmgiCisjZW5kaWYKKworI2lmZGVmIF9fY3BsdXNwbHVzCitleHRlcm4gIkMiIHsKKyNlbmRpZgorCisvKioKKyAqIERlZmluZXMgdGhlIHNvdXJjZSBvZiB0aGUgaW1wb3J0ZWQgRUMga2V5LgorICovCit0eXBlZGVmIGVudW0geworICAgIE1CRURUTFNfRUNESF9PVVJTLCAgIC8qKjwgT3VyIGtleS4gKi8KKyAgICBNQkVEVExTX0VDREhfVEhFSVJTLCAvKio8IFRoZSBrZXkgb2YgdGhlIHBlZXIuICovCit9IG1iZWR0bHNfZWNkaF9zaWRlOworCisjaWYgIWRlZmluZWQoTUJFRFRMU19FQ0RIX0xFR0FDWV9DT05URVhUKQorLyoqCisgKiBEZWZpbmVzIHRoZSBFQ0RIIGltcGxlbWVudGF0aW9uIHVzZWQuCisgKgorICogTGF0ZXIgdmVyc2lvbnMgb2YgdGhlIGxpYnJhcnkgbWF5IGFkZCBuZXcgdmFyaWFudHMsIHRoZXJlZm9yZSB1c2VycyBzaG91bGQKKyAqIG5vdCBtYWtlIGFueSBhc3N1bXB0aW9ucyBhYm91dCB0aGVtLgorICovCit0eXBlZGVmIGVudW0geworICAgIE1CRURUTFNfRUNESF9WQVJJQU5UX05PTkUgPSAwLCAgIC8qITwgSW1wbGVtZW50YXRpb24gbm90IGRlZmluZWQuICovCisgICAgTUJFRFRMU19FQ0RIX1ZBUklBTlRfTUJFRFRMU18yXzAsLyohPCBUaGUgZGVmYXVsdCBNYmVkIFRMUyBpbXBsZW1lbnRhdGlvbiAqLworI2lmIGRlZmluZWQoTUJFRFRMU19FQ0RIX1ZBUklBTlRfRVZFUkVTVF9FTkFCTEVEKQorICAgIE1CRURUTFNfRUNESF9WQVJJQU5UX0VWRVJFU1QgICAgIC8qITwgRXZlcmVzdCBpbXBsZW1lbnRhdGlvbiAqLworI2VuZGlmCit9IG1iZWR0bHNfZWNkaF92YXJpYW50OworCisvKioKKyAqIFRoZSBjb250ZXh0IHVzZWQgYnkgdGhlIGRlZmF1bHQgRUNESCBpbXBsZW1lbnRhdGlvbi4KKyAqCisgKiBMYXRlciB2ZXJzaW9ucyBtaWdodCBjaGFuZ2UgdGhlIHN0cnVjdHVyZSBvZiB0aGlzIGNvbnRleHQsIHRoZXJlZm9yZSB1c2VycworICogc2hvdWxkIG5vdCBtYWtlIGFueSBhc3N1bXB0aW9ucyBhYm91dCB0aGUgc3RydWN0dXJlIG9mCisgKiBtYmVkdGxzX2VjZGhfY29udGV4dF9tYmVkLgorICovCit0eXBlZGVmIHN0cnVjdCBtYmVkdGxzX2VjZGhfY29udGV4dF9tYmVkIHsKKyAgICBtYmVkdGxzX2VjcF9ncm91cCBNQkVEVExTX1BSSVZBVEUoZ3JwKTsgICAvKiE8IFRoZSBlbGxpcHRpYyBjdXJ2ZSB1c2VkLiAqLworICAgIG1iZWR0bHNfbXBpIE1CRURUTFNfUFJJVkFURShkKTsgICAgICAgICAgIC8qITwgVGhlIHByaXZhdGUga2V5LiAqLworICAgIG1iZWR0bHNfZWNwX3BvaW50IE1CRURUTFNfUFJJVkFURShRKTsgICAgIC8qITwgVGhlIHB1YmxpYyBrZXkuICovCisgICAgbWJlZHRsc19lY3BfcG9pbnQgTUJFRFRMU19QUklWQVRFKFFwKTsgICAgLyohPCBUaGUgdmFsdWUgb2YgdGhlIHB1YmxpYyBrZXkgb2YgdGhlIHBlZXIuICovCisgICAgbWJlZHRsc19tcGkgTUJFRFRMU19QUklWQVRFKHopOyAgICAgICAgICAgLyohPCBUaGUgc2hhcmVkIHNlY3JldC4gKi8KKyNpZiBkZWZpbmVkKE1CRURUTFNfRUNQX1JFU1RBUlRBQkxFKQorICAgIG1iZWR0bHNfZWNwX3Jlc3RhcnRfY3R4IE1CRURUTFNfUFJJVkFURShycyk7IC8qITwgVGhlIHJlc3RhcnQgY29udGV4dCBmb3IgRUMgY29tcHV0YXRpb25zLiAqLworI2VuZGlmCit9IG1iZWR0bHNfZWNkaF9jb250ZXh0X21iZWQ7CisjZW5kaWYKKworLyoqCisgKgorICogXHdhcm5pbmcgICAgICAgICBQZXJmb3JtaW5nIG11bHRpcGxlIG9wZXJhdGlvbnMgY29uY3VycmVudGx5IG9uIHRoZSBzYW1lCisgKiAgICAgICAgICAgICAgICAgIEVDRFNBIGNvbnRleHQgaXMgbm90IHN1cHBvcnRlZDsgb2JqZWN0cyBvZiB0aGlzIHR5cGUKKyAqICAgICAgICAgICAgICAgICAgc2hvdWxkIG5vdCBiZSBzaGFyZWQgYmV0d2VlbiBtdWx0aXBsZSB0aHJlYWRzLgorICogXGJyaWVmICAgICAgICAgICBUaGUgRUNESCBjb250ZXh0IHN0cnVjdHVyZS4KKyAqLwordHlwZWRlZiBzdHJ1Y3QgbWJlZHRsc19lY2RoX2NvbnRleHQgeworI2lmIGRlZmluZWQoTUJFRFRMU19FQ0RIX0xFR0FDWV9DT05URVhUKQorICAgIG1iZWR0bHNfZWNwX2dyb3VwIE1CRURUTFNfUFJJVkFURShncnApOyAgIC8qITwgVGhlIGVsbGlwdGljIGN1cnZlIHVzZWQuICovCisgICAgbWJlZHRsc19tcGkgTUJFRFRMU19QUklWQVRFKGQpOyAgICAgICAgICAgLyohPCBUaGUgcHJpdmF0ZSBrZXkuICovCisgICAgbWJlZHRsc19lY3BfcG9pbnQgTUJFRFRMU19QUklWQVRFKFEpOyAgICAgLyohPCBUaGUgcHVibGljIGtleS4gKi8KKyAgICBtYmVkdGxzX2VjcF9wb2ludCBNQkVEVExTX1BSSVZBVEUoUXApOyAgICAvKiE8IFRoZSB2YWx1ZSBvZiB0aGUgcHVibGljIGtleSBvZiB0aGUgcGVlci4gKi8KKyAgICBtYmVkdGxzX21waSBNQkVEVExTX1BSSVZBVEUoeik7ICAgICAgICAgICAvKiE8IFRoZSBzaGFyZWQgc2VjcmV0LiAqLworICAgIGludCBNQkVEVExTX1BSSVZBVEUocG9pbnRfZm9ybWF0KTsgICAgICAgIC8qITwgVGhlIGZvcm1hdCBvZiBwb2ludCBleHBvcnQgaW4gVExTIG1lc3NhZ2VzLiAqLworICAgIG1iZWR0bHNfZWNwX3BvaW50IE1CRURUTFNfUFJJVkFURShWaSk7ICAgIC8qITwgVGhlIGJsaW5kaW5nIHZhbHVlLiAqLworICAgIG1iZWR0bHNfZWNwX3BvaW50IE1CRURUTFNfUFJJVkFURShWZik7ICAgIC8qITwgVGhlIHVuYmxpbmRpbmcgdmFsdWUuICovCisgICAgbWJlZHRsc19tcGkgTUJFRFRMU19QUklWQVRFKF9kKTsgICAgICAgICAgLyohPCBUaGUgcHJldmlvdXMgXHAgZC4gKi8KKyNpZiBkZWZpbmVkKE1CRURUTFNfRUNQX1JFU1RBUlRBQkxFKQorICAgIGludCBNQkVEVExTX1BSSVZBVEUocmVzdGFydF9lbmFibGVkKTsgICAgICAgIC8qITwgVGhlIGZsYWcgZm9yIHJlc3RhcnRhYmxlIG1vZGUuICovCisgICAgbWJlZHRsc19lY3BfcmVzdGFydF9jdHggTUJFRFRMU19QUklWQVRFKHJzKTsgLyohPCBUaGUgcmVzdGFydCBjb250ZXh0IGZvciBFQyBjb21wdXRhdGlvbnMuICovCisjZW5kaWYgLyogTUJFRFRMU19FQ1BfUkVTVEFSVEFCTEUgKi8KKyNlbHNlCisgICAgdWludDhfdCBNQkVEVExTX1BSSVZBVEUocG9pbnRfZm9ybWF0KTsgICAgICAgLyohPCBUaGUgZm9ybWF0IG9mIHBvaW50IGV4cG9ydCBpbiBUTFMgbWVzc2FnZXMKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcyBkZWZpbmVkIGluIFJGQyA0NDkyLiAqLworICAgIG1iZWR0bHNfZWNwX2dyb3VwX2lkIE1CRURUTFNfUFJJVkFURShncnBfaWQpOy8qITwgVGhlIGVsbGlwdGljIGN1cnZlIHVzZWQuICovCisgICAgbWJlZHRsc19lY2RoX3ZhcmlhbnQgTUJFRFRMU19QUklWQVRFKHZhcik7ICAgLyohPCBUaGUgRUNESCBpbXBsZW1lbnRhdGlvbi9zdHJ1Y3R1cmUgdXNlZC4gKi8KKyAgICB1bmlvbiB7CisgICAgICAgIG1iZWR0bHNfZWNkaF9jb250ZXh0X21iZWQgICBNQkVEVExTX1BSSVZBVEUobWJlZF9lY2RoKTsKKyNpZiBkZWZpbmVkKE1CRURUTFNfRUNESF9WQVJJQU5UX0VWRVJFU1RfRU5BQkxFRCkKKyAgICAgICAgbWJlZHRsc19lY2RoX2NvbnRleHRfZXZlcmVzdCBNQkVEVExTX1BSSVZBVEUoZXZlcmVzdF9lY2RoKTsKKyNlbmRpZgorICAgIH0gTUJFRFRMU19QUklWQVRFKGN0eCk7ICAgICAgICAgICAgICAgICAgICAgIC8qITwgSW1wbGVtZW50YXRpb24tc3BlY2lmaWMgY29udGV4dC4gVGhlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGV4dCBpbiB1c2UgaXMgc3BlY2lmaWVkIGJ5IHRoZSBcYyB2YXIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWVsZC4gKi8KKyNpZiBkZWZpbmVkKE1CRURUTFNfRUNQX1JFU1RBUlRBQkxFKQorICAgIHVpbnQ4X3QgTUJFRFRMU19QUklWQVRFKHJlc3RhcnRfZW5hYmxlZCk7ICAgIC8qITwgVGhlIGZsYWcgZm9yIHJlc3RhcnRhYmxlIG1vZGUuIEZ1bmN0aW9ucyBvZgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFuIGFsdGVybmF0aXZlIGltcGxlbWVudGF0aW9uIG5vdCBzdXBwb3J0aW5nCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzdGFydGFibGUgbW9kZSBtdXN0IHJldHVybgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1CRURUTFNfRVJSX1BMQVRGT1JNX0ZFQVRVUkVfVU5TVVBQT1JURUQgZXJyb3IKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiB0aGlzIGZsYWcgaXMgc2V0LiAqLworI2VuZGlmIC8qIE1CRURUTFNfRUNQX1JFU1RBUlRBQkxFICovCisjZW5kaWYgLyogTUJFRFRMU19FQ0RIX0xFR0FDWV9DT05URVhUICovCit9CittYmVkdGxzX2VjZGhfY29udGV4dDsKKworLyoqCisgKiBcYnJpZWYgICAgICAgICAgUmV0dXJuIHRoZSBFQ1AgZ3JvdXAgZm9yIHByb3ZpZGVkIGNvbnRleHQuCisgKgorICogXG5vdGUgICAgICAgICAgIFRvIGFjY2VzcyBncm91cCBzcGVjaWZpYyBmaWVsZHMsIHVzZXJzIHNob3VsZCB1c2UKKyAqICAgICAgICAgICAgICAgICBgbWJlZHRsc19lY3BfY3VydmVfaW5mb19mcm9tX2dycF9pZGAgb3IKKyAqICAgICAgICAgICAgICAgICBgbWJlZHRsc19lY3BfZ3JvdXBfbG9hZGAgb24gdGhlIGV4dHJhY3RlZCBgZ3JvdXBfaWRgLgorICoKKyAqIFxwYXJhbSBjdHggICAgICBUaGUgRUNESCBjb250ZXh0IHRvIHBhcnNlLiBUaGlzIG11c3Qgbm90IGJlIFxjIE5VTEwuCisgKgorICogXHJldHVybiAgICAgICAgIFRoZSBcYyBtYmVkdGxzX2VjcF9ncm91cF9pZCBvZiB0aGUgY29udGV4dC4KKyAqLworbWJlZHRsc19lY3BfZ3JvdXBfaWQgbWJlZHRsc19lY2RoX2dldF9ncnBfaWQobWJlZHRsc19lY2RoX2NvbnRleHQgKmN0eCk7CisKKy8qKgorICogXGJyaWVmICAgICAgICAgIENoZWNrIHdoZXRoZXIgYSBnaXZlbiBncm91cCBjYW4gYmUgdXNlZCBmb3IgRUNESC4KKyAqCisgKiBccGFyYW0gZ2lkICAgICAgVGhlIEVDUCBncm91cCBJRCB0byBjaGVjay4KKyAqCisgKiBccmV0dXJuICAgICAgICAgXGMgMSBpZiB0aGUgZ3JvdXAgY2FuIGJlIHVzZWQsIFxjIDAgb3RoZXJ3aXNlCisgKi8KK2ludCBtYmVkdGxzX2VjZGhfY2FuX2RvKG1iZWR0bHNfZWNwX2dyb3VwX2lkIGdpZCk7CisKKy8qKgorICogXGJyaWVmICAgICAgICAgICBUaGlzIGZ1bmN0aW9uIGdlbmVyYXRlcyBhbiBFQ0RIIGtleXBhaXIgb24gYW4gZWxsaXB0aWMKKyAqICAgICAgICAgICAgICAgICAgY3VydmUuCisgKgorICogICAgICAgICAgICAgICAgICBUaGlzIGZ1bmN0aW9uIHBlcmZvcm1zIHRoZSBmaXJzdCBvZiB0d28gY29yZSBjb21wdXRhdGlvbnMKKyAqICAgICAgICAgICAgICAgICAgaW1wbGVtZW50ZWQgZHVyaW5nIHRoZSBFQ0RIIGtleSBleGNoYW5nZS4gVGhlIHNlY29uZCBjb3JlCisgKiAgICAgICAgICAgICAgICAgIGNvbXB1dGF0aW9uIGlzIHBlcmZvcm1lZCBieSBtYmVkdGxzX2VjZGhfY29tcHV0ZV9zaGFyZWQoKS4KKyAqCisgKiBcc2VlICAgICAgICAgICAgIGVjcC5oCisgKgorICogXHBhcmFtIGdycCAgICAgICBUaGUgRUNQIGdyb3VwIHRvIHVzZS4gVGhpcyBtdXN0IGJlIGluaXRpYWxpemVkIGFuZCBoYXZlCisgKiAgICAgICAgICAgICAgICAgIGRvbWFpbiBwYXJhbWV0ZXJzIGxvYWRlZCwgZm9yIGV4YW1wbGUgdGhyb3VnaAorICogICAgICAgICAgICAgICAgICBtYmVkdGxzX2VjcF9sb2FkKCkgb3IgbWJlZHRsc19lY3BfdGxzX3JlYWRfZ3JvdXAoKS4KKyAqIFxwYXJhbSBkICAgICAgICAgVGhlIGRlc3RpbmF0aW9uIE1QSSAocHJpdmF0ZSBrZXkpLgorICogICAgICAgICAgICAgICAgICBUaGlzIG11c3QgYmUgaW5pdGlhbGl6ZWQuCisgKiBccGFyYW0gUSAgICAgICAgIFRoZSBkZXN0aW5hdGlvbiBwb2ludCAocHVibGljIGtleSkuCisgKiAgICAgICAgICAgICAgICAgIFRoaXMgbXVzdCBiZSBpbml0aWFsaXplZC4KKyAqIFxwYXJhbSBmX3JuZyAgICAgVGhlIFJORyBmdW5jdGlvbiB0byB1c2UuIFRoaXMgbXVzdCBub3QgYmUgXGMgTlVMTC4KKyAqIFxwYXJhbSBwX3JuZyAgICAgVGhlIFJORyBjb250ZXh0IHRvIGJlIHBhc3NlZCB0byBccCBmX3JuZy4gVGhpcyBtYXkgYmUKKyAqICAgICAgICAgICAgICAgICAgXGMgTlVMTCBpbiBjYXNlIFxwIGZfcm5nIGRvZXNuJ3QgbmVlZCBhIGNvbnRleHQgYXJndW1lbnQuCisgKgorICogXHJldHVybiAgICAgICAgICBcYyAwIG9uIHN1Y2Nlc3MuCisgKiBccmV0dXJuICAgICAgICAgIEFub3RoZXIgXGMgTUJFRFRMU19FUlJfRUNQX1hYWCBvcgorICogICAgICAgICAgICAgICAgICBcYyBNQkVEVExTX01QSV9YWFggZXJyb3IgY29kZSBvbiBmYWlsdXJlLgorICovCitpbnQgbWJlZHRsc19lY2RoX2dlbl9wdWJsaWMobWJlZHRsc19lY3BfZ3JvdXAgKmdycCwgbWJlZHRsc19tcGkgKmQsIG1iZWR0bHNfZWNwX3BvaW50ICpRLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCAoKmZfcm5nKSh2b2lkICosIHVuc2lnbmVkIGNoYXIgKiwgc2l6ZV90KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB2b2lkICpwX3JuZyk7CisKKy8qKgorICogXGJyaWVmICAgICAgICAgICBUaGlzIGZ1bmN0aW9uIGNvbXB1dGVzIHRoZSBzaGFyZWQgc2VjcmV0LgorICoKKyAqICAgICAgICAgICAgICAgICAgVGhpcyBmdW5jdGlvbiBwZXJmb3JtcyB0aGUgc2Vjb25kIG9mIHR3byBjb3JlIGNvbXB1dGF0aW9ucworICogICAgICAgICAgICAgICAgICBpbXBsZW1lbnRlZCBkdXJpbmcgdGhlIEVDREgga2V5IGV4Y2hhbmdlLiBUaGUgZmlyc3QgY29yZQorICogICAgICAgICAgICAgICAgICBjb21wdXRhdGlvbiBpcyBwZXJmb3JtZWQgYnkgbWJlZHRsc19lY2RoX2dlbl9wdWJsaWMoKS4KKyAqCisgKiBcc2VlICAgICAgICAgICAgIGVjcC5oCisgKgorICogXG5vdGUgICAgICAgICAgICBJZiBccCBmX3JuZyBpcyBub3QgTlVMTCwgaXQgaXMgdXNlZCB0byBpbXBsZW1lbnQKKyAqICAgICAgICAgICAgICAgICAgY291bnRlcm1lYXN1cmVzIGFnYWluc3Qgc2lkZS1jaGFubmVsIGF0dGFja3MuCisgKiAgICAgICAgICAgICAgICAgIEZvciBtb3JlIGluZm9ybWF0aW9uLCBzZWUgbWJlZHRsc19lY3BfbXVsKCkuCisgKgorICogXHBhcmFtIGdycCAgICAgICBUaGUgRUNQIGdyb3VwIHRvIHVzZS4gVGhpcyBtdXN0IGJlIGluaXRpYWxpemVkIGFuZCBoYXZlCisgKiAgICAgICAgICAgICAgICAgIGRvbWFpbiBwYXJhbWV0ZXJzIGxvYWRlZCwgZm9yIGV4YW1wbGUgdGhyb3VnaAorICogICAgICAgICAgICAgICAgICBtYmVkdGxzX2VjcF9sb2FkKCkgb3IgbWJlZHRsc19lY3BfdGxzX3JlYWRfZ3JvdXAoKS4KKyAqIFxwYXJhbSB6ICAgICAgICAgVGhlIGRlc3RpbmF0aW9uIE1QSSAoc2hhcmVkIHNlY3JldCkuCisgKiAgICAgICAgICAgICAgICAgIFRoaXMgbXVzdCBiZSBpbml0aWFsaXplZC4KKyAqIFxwYXJhbSBRICAgICAgICAgVGhlIHB1YmxpYyBrZXkgZnJvbSBhbm90aGVyIHBhcnR5LgorICogICAgICAgICAgICAgICAgICBUaGlzIG11c3QgYmUgaW5pdGlhbGl6ZWQuCisgKiBccGFyYW0gZCAgICAgICAgIE91ciBzZWNyZXQgZXhwb25lbnQgKHByaXZhdGUga2V5KS4KKyAqICAgICAgICAgICAgICAgICAgVGhpcyBtdXN0IGJlIGluaXRpYWxpemVkLgorICogXHBhcmFtIGZfcm5nICAgICBUaGUgUk5HIGZ1bmN0aW9uIHRvIHVzZS4gVGhpcyBtdXN0IG5vdCBiZSBcYyBOVUxMLgorICogXHBhcmFtIHBfcm5nICAgICBUaGUgUk5HIGNvbnRleHQgdG8gYmUgcGFzc2VkIHRvIFxwIGZfcm5nLiBUaGlzIG1heSBiZQorICogICAgICAgICAgICAgICAgICBcYyBOVUxMIGlmIFxwIGZfcm5nIGlzIFxjIE5VTEwgb3IgZG9lc24ndCBuZWVkIGEKKyAqICAgICAgICAgICAgICAgICAgY29udGV4dCBhcmd1bWVudC4KKyAqCisgKiBccmV0dXJuICAgICAgICAgIFxjIDAgb24gc3VjY2Vzcy4KKyAqIFxyZXR1cm4gICAgICAgICAgQW5vdGhlciBcYyBNQkVEVExTX0VSUl9FQ1BfWFhYIG9yCisgKiAgICAgICAgICAgICAgICAgIFxjIE1CRURUTFNfTVBJX1hYWCBlcnJvciBjb2RlIG9uIGZhaWx1cmUuCisgKi8KK2ludCBtYmVkdGxzX2VjZGhfY29tcHV0ZV9zaGFyZWQobWJlZHRsc19lY3BfZ3JvdXAgKmdycCwgbWJlZHRsc19tcGkgKnosCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IG1iZWR0bHNfZWNwX3BvaW50ICpRLCBjb25zdCBtYmVkdGxzX21waSAqZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50ICgqZl9ybmcpKHZvaWQgKiwgdW5zaWduZWQgY2hhciAqLCBzaXplX3QpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2b2lkICpwX3JuZyk7CisKKy8qKgorICogXGJyaWVmICAgICAgICAgICBUaGlzIGZ1bmN0aW9uIGluaXRpYWxpemVzIGFuIEVDREggY29udGV4dC4KKyAqCisgKiBccGFyYW0gY3R4ICAgICAgIFRoZSBFQ0RIIGNvbnRleHQgdG8gaW5pdGlhbGl6ZS4gVGhpcyBtdXN0IG5vdCBiZSBcYyBOVUxMLgorICovCit2b2lkIG1iZWR0bHNfZWNkaF9pbml0KG1iZWR0bHNfZWNkaF9jb250ZXh0ICpjdHgpOworCisvKioKKyAqIFxicmllZiAgICAgICAgICAgVGhpcyBmdW5jdGlvbiBzZXRzIHVwIHRoZSBFQ0RIIGNvbnRleHQgd2l0aCB0aGUgaW5mb3JtYXRpb24KKyAqICAgICAgICAgICAgICAgICAgZ2l2ZW4uCisgKgorICogICAgICAgICAgICAgICAgICBUaGlzIGZ1bmN0aW9uIHNob3VsZCBiZSBjYWxsZWQgYWZ0ZXIgbWJlZHRsc19lY2RoX2luaXQoKSBidXQKKyAqICAgICAgICAgICAgICAgICAgYmVmb3JlIG1iZWR0bHNfZWNkaF9tYWtlX3BhcmFtcygpLiBUaGVyZSBpcyBubyBuZWVkIHRvIGNhbGwKKyAqICAgICAgICAgICAgICAgICAgdGhpcyBmdW5jdGlvbiBiZWZvcmUgbWJlZHRsc19lY2RoX3JlYWRfcGFyYW1zKCkuCisgKgorICogICAgICAgICAgICAgICAgICBUaGlzIGlzIHRoZSBmaXJzdCBmdW5jdGlvbiB1c2VkIGJ5IGEgVExTIHNlcnZlciBmb3IgRUNESEUKKyAqICAgICAgICAgICAgICAgICAgY2lwaGVyc3VpdGVzLgorICoKKyAqIFxwYXJhbSBjdHggICAgICAgVGhlIEVDREggY29udGV4dCB0byBzZXQgdXAuIFRoaXMgbXVzdCBiZSBpbml0aWFsaXplZC4KKyAqIFxwYXJhbSBncnBfaWQgICAgVGhlIGdyb3VwIGlkIG9mIHRoZSBncm91cCB0byBzZXQgdXAgdGhlIGNvbnRleHQgZm9yLgorICoKKyAqIFxyZXR1cm4gICAgICAgICAgXGMgMCBvbiBzdWNjZXNzLgorICovCitpbnQgbWJlZHRsc19lY2RoX3NldHVwKG1iZWR0bHNfZWNkaF9jb250ZXh0ICpjdHgsCisgICAgICAgICAgICAgICAgICAgICAgIG1iZWR0bHNfZWNwX2dyb3VwX2lkIGdycF9pZCk7CisKKy8qKgorICogXGJyaWVmICAgICAgICAgICBUaGlzIGZ1bmN0aW9uIGZyZWVzIGEgY29udGV4dC4KKyAqCisgKiBccGFyYW0gY3R4ICAgICAgIFRoZSBjb250ZXh0IHRvIGZyZWUuIFRoaXMgbWF5IGJlIFxjIE5VTEwsIGluIHdoaWNoCisgKiAgICAgICAgICAgICAgICAgIGNhc2UgdGhpcyBmdW5jdGlvbiBkb2VzIG5vdGhpbmcuIElmIGl0IGlzIG5vdCBcYyBOVUxMLAorICogICAgICAgICAgICAgICAgICBpdCBtdXN0IHBvaW50IHRvIGFuIGluaXRpYWxpemVkIEVDREggY29udGV4dC4KKyAqLwordm9pZCBtYmVkdGxzX2VjZGhfZnJlZShtYmVkdGxzX2VjZGhfY29udGV4dCAqY3R4KTsKKworLyoqCisgKiBcYnJpZWYgICAgICAgICAgIFRoaXMgZnVuY3Rpb24gZ2VuZXJhdGVzIGFuIEVDIGtleSBwYWlyIGFuZCBleHBvcnRzIGl0cworICogICAgICAgICAgICAgICAgICBpbiB0aGUgZm9ybWF0IHVzZWQgaW4gYSBUTFMgU2VydmVyS2V5RXhjaGFuZ2UgaGFuZHNoYWtlCisgKiAgICAgICAgICAgICAgICAgIG1lc3NhZ2UuCisgKgorICogICAgICAgICAgICAgICAgICBUaGlzIGlzIHRoZSBzZWNvbmQgZnVuY3Rpb24gdXNlZCBieSBhIFRMUyBzZXJ2ZXIgZm9yIEVDREhFCisgKiAgICAgICAgICAgICAgICAgIGNpcGhlcnN1aXRlcy4gKEl0IGlzIGNhbGxlZCBhZnRlciBtYmVkdGxzX2VjZGhfc2V0dXAoKS4pCisgKgorICogXHNlZSAgICAgICAgICAgICBlY3AuaAorICoKKyAqIFxwYXJhbSBjdHggICAgICAgVGhlIEVDREggY29udGV4dCB0byB1c2UuIFRoaXMgbXVzdCBiZSBpbml0aWFsaXplZAorICogICAgICAgICAgICAgICAgICBhbmQgYm91bmQgdG8gYSBncm91cCwgZm9yIGV4YW1wbGUgdmlhIG1iZWR0bHNfZWNkaF9zZXR1cCgpLgorICogXHBhcmFtIG9sZW4gICAgICBUaGUgYWRkcmVzcyBhdCB3aGljaCB0byBzdG9yZSB0aGUgbnVtYmVyIG9mIEJ5dGVzIHdyaXR0ZW4uCisgKiBccGFyYW0gYnVmICAgICAgIFRoZSBkZXN0aW5hdGlvbiBidWZmZXIuIFRoaXMgbXVzdCBiZSBhIHdyaXRhYmxlIGJ1ZmZlciBvZgorICogICAgICAgICAgICAgICAgICBsZW5ndGggXHAgYmxlbiBCeXRlcy4KKyAqIFxwYXJhbSBibGVuICAgICAgVGhlIGxlbmd0aCBvZiB0aGUgZGVzdGluYXRpb24gYnVmZmVyIFxwIGJ1ZiBpbiBCeXRlcy4KKyAqIFxwYXJhbSBmX3JuZyAgICAgVGhlIFJORyBmdW5jdGlvbiB0byB1c2UuIFRoaXMgbXVzdCBub3QgYmUgXGMgTlVMTC4KKyAqIFxwYXJhbSBwX3JuZyAgICAgVGhlIFJORyBjb250ZXh0IHRvIGJlIHBhc3NlZCB0byBccCBmX3JuZy4gVGhpcyBtYXkgYmUKKyAqICAgICAgICAgICAgICAgICAgXGMgTlVMTCBpbiBjYXNlIFxwIGZfcm5nIGRvZXNuJ3QgbmVlZCBhIGNvbnRleHQgYXJndW1lbnQuCisgKgorICogXHJldHVybiAgICAgICAgICBcYyAwIG9uIHN1Y2Nlc3MuCisgKiBccmV0dXJuICAgICAgICAgICNNQkVEVExTX0VSUl9FQ1BfSU5fUFJPR1JFU1MgaWYgbWF4aW11bSBudW1iZXIgb2YKKyAqICAgICAgICAgICAgICAgICAgb3BlcmF0aW9ucyB3YXMgcmVhY2hlZDogc2VlIFxjIG1iZWR0bHNfZWNwX3NldF9tYXhfb3BzKCkuCisgKiBccmV0dXJuICAgICAgICAgIEFub3RoZXIgXGMgTUJFRFRMU19FUlJfRUNQX1hYWCBlcnJvciBjb2RlIG9uIGZhaWx1cmUuCisgKi8KK2ludCBtYmVkdGxzX2VjZGhfbWFrZV9wYXJhbXMobWJlZHRsc19lY2RoX2NvbnRleHQgKmN0eCwgc2l6ZV90ICpvbGVuLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBjaGFyICpidWYsIHNpemVfdCBibGVuLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgKCpmX3JuZykodm9pZCAqLCB1bnNpZ25lZCBjaGFyICosIHNpemVfdCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZvaWQgKnBfcm5nKTsKKworLyoqCisgKiBcYnJpZWYgICAgICAgICAgIFRoaXMgZnVuY3Rpb24gcGFyc2VzIHRoZSBFQ0RIRSBwYXJhbWV0ZXJzIGluIGEKKyAqICAgICAgICAgICAgICAgICAgVExTIFNlcnZlcktleUV4Y2hhbmdlIGhhbmRzaGFrZSBtZXNzYWdlLgorICoKKyAqIFxub3RlICAgICAgICAgICAgSW4gYSBUTFMgaGFuZHNoYWtlLCB0aGlzIGlzIHRoZSBob3cgdGhlIGNsaWVudAorICogICAgICAgICAgICAgICAgICBzZXRzIHVwIGl0cyBFQ0RIRSBjb250ZXh0IGZyb20gdGhlIHNlcnZlcidzIHB1YmxpYworICogICAgICAgICAgICAgICAgICBFQ0RIRSBrZXkgbWF0ZXJpYWwuCisgKgorICogXHNlZSAgICAgICAgICAgICBlY3AuaAorICoKKyAqIFxwYXJhbSBjdHggICAgICAgVGhlIEVDREhFIGNvbnRleHQgdG8gdXNlLiBUaGlzIG11c3QgYmUgaW5pdGlhbGl6ZWQuCisgKiBccGFyYW0gYnVmICAgICAgIE9uIGlucHV0LCBcYyAqYnVmIG11c3QgYmUgdGhlIHN0YXJ0IG9mIHRoZSBpbnB1dCBidWZmZXIuCisgKiAgICAgICAgICAgICAgICAgIE9uIG91dHB1dCwgXGMgKmJ1ZiBpcyB1cGRhdGVkIHRvIHBvaW50IHRvIHRoZSBlbmQgb2YgdGhlCisgKiAgICAgICAgICAgICAgICAgIGRhdGEgdGhhdCBoYXMgYmVlbiByZWFkLiBPbiBzdWNjZXNzLCB0aGlzIGlzIHRoZSBmaXJzdCBieXRlCisgKiAgICAgICAgICAgICAgICAgIHBhc3QgdGhlIGVuZCBvZiB0aGUgU2VydmVyS2V5RXhjaGFuZ2UgcGFyYW1ldGVycy4KKyAqICAgICAgICAgICAgICAgICAgT24gZXJyb3IsIHRoaXMgaXMgdGhlIHBvaW50IGF0IHdoaWNoIGFuIGVycm9yIGhhcyBiZWVuCisgKiAgICAgICAgICAgICAgICAgIGRldGVjdGVkLCB3aGljaCBpcyB1c3VhbGx5IG5vdCB1c2VmdWwgZXhjZXB0IHRvIGRlYnVnCisgKiAgICAgICAgICAgICAgICAgIGZhaWx1cmVzLgorICogXHBhcmFtIGVuZCAgICAgICBUaGUgZW5kIG9mIHRoZSBpbnB1dCBidWZmZXIuCisgKgorICogXHJldHVybiAgICAgICAgICBcYyAwIG9uIHN1Y2Nlc3MuCisgKiBccmV0dXJuICAgICAgICAgIEFuIFxjIE1CRURUTFNfRVJSX0VDUF9YWFggZXJyb3IgY29kZSBvbiBmYWlsdXJlLgorICoKKyAqLworaW50IG1iZWR0bHNfZWNkaF9yZWFkX3BhcmFtcyhtYmVkdGxzX2VjZGhfY29udGV4dCAqY3R4LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1bnNpZ25lZCBjaGFyICoqYnVmLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1bnNpZ25lZCBjaGFyICplbmQpOworCisvKioKKyAqIFxicmllZiAgICAgICAgICAgVGhpcyBmdW5jdGlvbiBzZXRzIHVwIGFuIEVDREggY29udGV4dCBmcm9tIGFuIEVDIGtleS4KKyAqCisgKiAgICAgICAgICAgICAgICAgIEl0IGlzIHVzZWQgYnkgY2xpZW50cyBhbmQgc2VydmVycyBpbiBwbGFjZSBvZiB0aGUKKyAqICAgICAgICAgICAgICAgICAgU2VydmVyS2V5RXhjaGFuZ2UgZm9yIHN0YXRpYyBFQ0RILCBhbmQgaW1wb3J0cyBFQ0RICisgKiAgICAgICAgICAgICAgICAgIHBhcmFtZXRlcnMgZnJvbSB0aGUgRUMga2V5IGluZm9ybWF0aW9uIG9mIGEgY2VydGlmaWNhdGUuCisgKgorICogXHNlZSAgICAgICAgICAgICBlY3AuaAorICoKKyAqIFxwYXJhbSBjdHggICAgICAgVGhlIEVDREggY29udGV4dCB0byBzZXQgdXAuIFRoaXMgbXVzdCBiZSBpbml0aWFsaXplZC4KKyAqIFxwYXJhbSBrZXkgICAgICAgVGhlIEVDIGtleSB0byB1c2UuIFRoaXMgbXVzdCBiZSBpbml0aWFsaXplZC4KKyAqIFxwYXJhbSBzaWRlICAgICAgRGVmaW5lcyB0aGUgc291cmNlIG9mIHRoZSBrZXkuIFBvc3NpYmxlIHZhbHVlcyBhcmU6CisgKiAgICAgICAgICAgICAgICAgIC0gI01CRURUTFNfRUNESF9PVVJTOiBUaGUga2V5IGlzIG91cnMuCisgKiAgICAgICAgICAgICAgICAgIC0gI01CRURUTFNfRUNESF9USEVJUlM6IFRoZSBrZXkgaXMgdGhhdCBvZiB0aGUgcGVlci4KKyAqCisgKiBccmV0dXJuICAgICAgICAgIFxjIDAgb24gc3VjY2Vzcy4KKyAqIFxyZXR1cm4gICAgICAgICAgQW5vdGhlciBcYyBNQkVEVExTX0VSUl9FQ1BfWFhYIGVycm9yIGNvZGUgb24gZmFpbHVyZS4KKyAqCisgKi8KK2ludCBtYmVkdGxzX2VjZGhfZ2V0X3BhcmFtcyhtYmVkdGxzX2VjZGhfY29udGV4dCAqY3R4LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IG1iZWR0bHNfZWNwX2tleXBhaXIgKmtleSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYmVkdGxzX2VjZGhfc2lkZSBzaWRlKTsKKworLyoqCisgKiBcYnJpZWYgICAgICAgICAgIFRoaXMgZnVuY3Rpb24gZ2VuZXJhdGVzIGEgcHVibGljIGtleSBhbmQgZXhwb3J0cyBpdAorICogICAgICAgICAgICAgICAgICBhcyBhIFRMUyBDbGllbnRLZXlFeGNoYW5nZSBwYXlsb2FkLgorICoKKyAqICAgICAgICAgICAgICAgICAgVGhpcyBpcyB0aGUgc2Vjb25kIGZ1bmN0aW9uIHVzZWQgYnkgYSBUTFMgY2xpZW50IGZvciBFQ0RIKEUpCisgKiAgICAgICAgICAgICAgICAgIGNpcGhlcnN1aXRlcy4KKyAqCisgKiBcc2VlICAgICAgICAgICAgIGVjcC5oCisgKgorICogXHBhcmFtIGN0eCAgICAgICBUaGUgRUNESCBjb250ZXh0IHRvIHVzZS4gVGhpcyBtdXN0IGJlIGluaXRpYWxpemVkCisgKiAgICAgICAgICAgICAgICAgIGFuZCBib3VuZCB0byBhIGdyb3VwLCB0aGUgbGF0dGVyIHVzdWFsbHkgYnkKKyAqICAgICAgICAgICAgICAgICAgbWJlZHRsc19lY2RoX3JlYWRfcGFyYW1zKCkuCisgKiBccGFyYW0gb2xlbiAgICAgIFRoZSBhZGRyZXNzIGF0IHdoaWNoIHRvIHN0b3JlIHRoZSBudW1iZXIgb2YgQnl0ZXMgd3JpdHRlbi4KKyAqICAgICAgICAgICAgICAgICAgVGhpcyBtdXN0IG5vdCBiZSBcYyBOVUxMLgorICogXHBhcmFtIGJ1ZiAgICAgICBUaGUgZGVzdGluYXRpb24gYnVmZmVyLiBUaGlzIG11c3QgYmUgYSB3cml0YWJsZSBidWZmZXIKKyAqICAgICAgICAgICAgICAgICAgb2YgbGVuZ3RoIFxwIGJsZW4gQnl0ZXMuCisgKiBccGFyYW0gYmxlbiAgICAgIFRoZSBzaXplIG9mIHRoZSBkZXN0aW5hdGlvbiBidWZmZXIgXHAgYnVmIGluIEJ5dGVzLgorICogXHBhcmFtIGZfcm5nICAgICBUaGUgUk5HIGZ1bmN0aW9uIHRvIHVzZS4gVGhpcyBtdXN0IG5vdCBiZSBcYyBOVUxMLgorICogXHBhcmFtIHBfcm5nICAgICBUaGUgUk5HIGNvbnRleHQgdG8gYmUgcGFzc2VkIHRvIFxwIGZfcm5nLiBUaGlzIG1heSBiZQorICogICAgICAgICAgICAgICAgICBcYyBOVUxMIGluIGNhc2UgXHAgZl9ybmcgZG9lc24ndCBuZWVkIGEgY29udGV4dCBhcmd1bWVudC4KKyAqCisgKiBccmV0dXJuICAgICAgICAgIFxjIDAgb24gc3VjY2Vzcy4KKyAqIFxyZXR1cm4gICAgICAgICAgI01CRURUTFNfRVJSX0VDUF9JTl9QUk9HUkVTUyBpZiBtYXhpbXVtIG51bWJlciBvZgorICogICAgICAgICAgICAgICAgICBvcGVyYXRpb25zIHdhcyByZWFjaGVkOiBzZWUgXGMgbWJlZHRsc19lY3Bfc2V0X21heF9vcHMoKS4KKyAqIFxyZXR1cm4gICAgICAgICAgQW5vdGhlciBcYyBNQkVEVExTX0VSUl9FQ1BfWFhYIGVycm9yIGNvZGUgb24gZmFpbHVyZS4KKyAqLworaW50IG1iZWR0bHNfZWNkaF9tYWtlX3B1YmxpYyhtYmVkdGxzX2VjZGhfY29udGV4dCAqY3R4LCBzaXplX3QgKm9sZW4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGNoYXIgKmJ1Ziwgc2l6ZV90IGJsZW4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCAoKmZfcm5nKSh2b2lkICosIHVuc2lnbmVkIGNoYXIgKiwgc2l6ZV90KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdm9pZCAqcF9ybmcpOworCisvKioKKyAqIFxicmllZiAgICAgICBUaGlzIGZ1bmN0aW9uIHBhcnNlcyBhbmQgcHJvY2Vzc2VzIHRoZSBFQ0RIRSBwYXlsb2FkIG9mIGEKKyAqICAgICAgICAgICAgICBUTFMgQ2xpZW50S2V5RXhjaGFuZ2UgbWVzc2FnZS4KKyAqCisgKiAgICAgICAgICAgICAgVGhpcyBpcyB0aGUgdGhpcmQgZnVuY3Rpb24gdXNlZCBieSBhIFRMUyBzZXJ2ZXIgZm9yIEVDREgoRSkKKyAqICAgICAgICAgICAgICBjaXBoZXJzdWl0ZXMuIChJdCBpcyBjYWxsZWQgYWZ0ZXIgbWJlZHRsc19lY2RoX3NldHVwKCkgYW5kCisgKiAgICAgICAgICAgICAgbWJlZHRsc19lY2RoX21ha2VfcGFyYW1zKCkuKQorICoKKyAqIFxzZWUgICAgICAgICBlY3AuaAorICoKKyAqIFxwYXJhbSBjdHggICBUaGUgRUNESCBjb250ZXh0IHRvIHVzZS4gVGhpcyBtdXN0IGJlIGluaXRpYWxpemVkCisgKiAgICAgICAgICAgICAgYW5kIGJvdW5kIHRvIGEgZ3JvdXAsIGZvciBleGFtcGxlIHZpYSBtYmVkdGxzX2VjZGhfc2V0dXAoKS4KKyAqIFxwYXJhbSBidWYgICBUaGUgcG9pbnRlciB0byB0aGUgQ2xpZW50S2V5RXhjaGFuZ2UgcGF5bG9hZC4gVGhpcyBtdXN0CisgKiAgICAgICAgICAgICAgYmUgYSByZWFkYWJsZSBidWZmZXIgb2YgbGVuZ3RoIFxwIGJsZW4gQnl0ZXMuCisgKiBccGFyYW0gYmxlbiAgVGhlIGxlbmd0aCBvZiB0aGUgaW5wdXQgYnVmZmVyIFxwIGJ1ZiBpbiBCeXRlcy4KKyAqCisgKiBccmV0dXJuICAgICAgXGMgMCBvbiBzdWNjZXNzLgorICogXHJldHVybiAgICAgIEFuIFxjIE1CRURUTFNfRVJSX0VDUF9YWFggZXJyb3IgY29kZSBvbiBmYWlsdXJlLgorICovCitpbnQgbWJlZHRsc19lY2RoX3JlYWRfcHVibGljKG1iZWR0bHNfZWNkaF9jb250ZXh0ICpjdHgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgKmJ1Ziwgc2l6ZV90IGJsZW4pOworCisvKioKKyAqIFxicmllZiAgICAgICAgICAgVGhpcyBmdW5jdGlvbiBkZXJpdmVzIGFuZCBleHBvcnRzIHRoZSBzaGFyZWQgc2VjcmV0LgorICoKKyAqICAgICAgICAgICAgICAgICAgVGhpcyBpcyB0aGUgbGFzdCBmdW5jdGlvbiB1c2VkIGJ5IGJvdGggVExTIGNsaWVudAorICogICAgICAgICAgICAgICAgICBhbmQgc2VydmVycy4KKyAqCisgKiBcbm90ZSAgICAgICAgICAgIElmIFxwIGZfcm5nIGlzIG5vdCBOVUxMLCBpdCBpcyB1c2VkIHRvIGltcGxlbWVudAorICogICAgICAgICAgICAgICAgICBjb3VudGVybWVhc3VyZXMgYWdhaW5zdCBzaWRlLWNoYW5uZWwgYXR0YWNrcy4KKyAqICAgICAgICAgICAgICAgICAgRm9yIG1vcmUgaW5mb3JtYXRpb24sIHNlZSBtYmVkdGxzX2VjcF9tdWwoKS4KKyAqCisgKiBcc2VlICAgICAgICAgICAgIGVjcC5oCisKKyAqIFxwYXJhbSBjdHggICAgICAgVGhlIEVDREggY29udGV4dCB0byB1c2UuIFRoaXMgbXVzdCBiZSBpbml0aWFsaXplZAorICogICAgICAgICAgICAgICAgICBhbmQgaGF2ZSBpdHMgb3duIHByaXZhdGUga2V5IGdlbmVyYXRlZCBhbmQgdGhlIHBlZXIncworICogICAgICAgICAgICAgICAgICBwdWJsaWMga2V5IGltcG9ydGVkLgorICogXHBhcmFtIG9sZW4gICAgICBUaGUgYWRkcmVzcyBhdCB3aGljaCB0byBzdG9yZSB0aGUgdG90YWwgbnVtYmVyIG9mCisgKiAgICAgICAgICAgICAgICAgIEJ5dGVzIHdyaXR0ZW4gb24gc3VjY2Vzcy4gVGhpcyBtdXN0IG5vdCBiZSBcYyBOVUxMLgorICogXHBhcmFtIGJ1ZiAgICAgICBUaGUgYnVmZmVyIHRvIHdyaXRlIHRoZSBnZW5lcmF0ZWQgc2hhcmVkIGtleSB0by4gVGhpcworICogICAgICAgICAgICAgICAgICBtdXN0IGJlIGEgd3JpdGFibGUgYnVmZmVyIG9mIHNpemUgXHAgYmxlbiBCeXRlcy4KKyAqIFxwYXJhbSBibGVuICAgICAgVGhlIGxlbmd0aCBvZiB0aGUgZGVzdGluYXRpb24gYnVmZmVyIFxwIGJ1ZiBpbiBCeXRlcy4KKyAqIFxwYXJhbSBmX3JuZyAgICAgVGhlIFJORyBmdW5jdGlvbiB0byB1c2UuIFRoaXMgbXVzdCBub3QgYmUgXGMgTlVMTC4KKyAqIFxwYXJhbSBwX3JuZyAgICAgVGhlIFJORyBjb250ZXh0LiBUaGlzIG1heSBiZSBcYyBOVUxMIGlmIFxwIGZfcm5nCisgKiAgICAgICAgICAgICAgICAgIGRvZXNuJ3QgbmVlZCBhIGNvbnRleHQgYXJndW1lbnQuCisgKgorICogXHJldHVybiAgICAgICAgICBcYyAwIG9uIHN1Y2Nlc3MuCisgKiBccmV0dXJuICAgICAgICAgICNNQkVEVExTX0VSUl9FQ1BfSU5fUFJPR1JFU1MgaWYgbWF4aW11bSBudW1iZXIgb2YKKyAqICAgICAgICAgICAgICAgICAgb3BlcmF0aW9ucyB3YXMgcmVhY2hlZDogc2VlIFxjIG1iZWR0bHNfZWNwX3NldF9tYXhfb3BzKCkuCisgKiBccmV0dXJuICAgICAgICAgIEFub3RoZXIgXGMgTUJFRFRMU19FUlJfRUNQX1hYWCBlcnJvciBjb2RlIG9uIGZhaWx1cmUuCisgKi8KK2ludCBtYmVkdGxzX2VjZGhfY2FsY19zZWNyZXQobWJlZHRsc19lY2RoX2NvbnRleHQgKmN0eCwgc2l6ZV90ICpvbGVuLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBjaGFyICpidWYsIHNpemVfdCBibGVuLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgKCpmX3JuZykodm9pZCAqLCB1bnNpZ25lZCBjaGFyICosIHNpemVfdCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZvaWQgKnBfcm5nKTsKKworI2lmIGRlZmluZWQoTUJFRFRMU19FQ1BfUkVTVEFSVEFCTEUpCisvKioKKyAqIFxicmllZiAgICAgICAgICAgVGhpcyBmdW5jdGlvbiBlbmFibGVzIHJlc3RhcnRhYmxlIEVDIGNvbXB1dGF0aW9ucyBmb3IgdGhpcworICogICAgICAgICAgICAgICAgICBjb250ZXh0LiAgKERlZmF1bHQ6IGRpc2FibGVkLikKKyAqCisgKiBcc2VlICAgICAgICAgICAgIFxjIG1iZWR0bHNfZWNwX3NldF9tYXhfb3BzKCkKKyAqCisgKiBcbm90ZSAgICAgICAgICAgIEl0IGlzIG5vdCBwb3NzaWJsZSB0byBzYWZlbHkgZGlzYWJsZSByZXN0YXJ0YWJsZQorICogICAgICAgICAgICAgICAgICBjb21wdXRhdGlvbnMgb25jZSBlbmFibGVkLCBleGNlcHQgYnkgZnJlZS1pbmcgdGhlIGNvbnRleHQsCisgKiAgICAgICAgICAgICAgICAgIHdoaWNoIGNhbmNlbHMgcG9zc2libGUgaW4tcHJvZ3Jlc3Mgb3BlcmF0aW9ucy4KKyAqCisgKiBccGFyYW0gY3R4ICAgICAgIFRoZSBFQ0RIIGNvbnRleHQgdG8gdXNlLiBUaGlzIG11c3QgYmUgaW5pdGlhbGl6ZWQuCisgKi8KK3ZvaWQgbWJlZHRsc19lY2RoX2VuYWJsZV9yZXN0YXJ0KG1iZWR0bHNfZWNkaF9jb250ZXh0ICpjdHgpOworI2VuZGlmIC8qIE1CRURUTFNfRUNQX1JFU1RBUlRBQkxFICovCisKKyNpZmRlZiBfX2NwbHVzcGx1cworfQorI2VuZGlmCisKKyNlbmRpZiAvKiBlY2RoLmggKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvbWJlZHRscy9lY2RzYS5oIGIvdGYtcHNhLWNyeXB0by9kcml2ZXJzL2J1aWx0aW4vaW5jbHVkZS9tYmVkdGxzL2VjZHNhLmgKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIGluY2x1ZGUvbWJlZHRscy9lY2RzYS5oCnJlbmFtZSB0byB0Zi1wc2EtY3J5cHRvL2RyaXZlcnMvYnVpbHRpbi9pbmNsdWRlL21iZWR0bHMvZWNkc2EuaApkaWZmIC0tZ2l0IGEvdGYtcHNhLWNyeXB0by9kcml2ZXJzL2J1aWx0aW4vaW5jbHVkZS9tYmVkdGxzL2VjanBha2UuaCBiL3RmLXBzYS1jcnlwdG8vZHJpdmVycy9idWlsdGluL2luY2x1ZGUvbWJlZHRscy9lY2pwYWtlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTc1YThlYwotLS0gL2Rldi9udWxsCisrKyBiL3RmLXBzYS1jcnlwdG8vZHJpdmVycy9idWlsdGluL2luY2x1ZGUvbWJlZHRscy9lY2pwYWtlLmgKQEAgLTAsMCArMSwyOTMgQEAKKy8qKgorICogXGZpbGUgZWNqcGFrZS5oCisgKgorICogXGJyaWVmIEVsbGlwdGljIGN1cnZlIEotUEFLRQorICovCisvKgorICogIENvcHlyaWdodCBUaGUgTWJlZCBUTFMgQ29udHJpYnV0b3JzCisgKiAgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjAgT1IgR1BMLTIuMC1vci1sYXRlcgorICovCisjaWZuZGVmIE1CRURUTFNfRUNKUEFLRV9ICisjZGVmaW5lIE1CRURUTFNfRUNKUEFLRV9ICisjaW5jbHVkZSAibWJlZHRscy9wcml2YXRlX2FjY2Vzcy5oIgorCisvKgorICogSi1QQUtFIGlzIGEgcGFzc3dvcmQtYXV0aGVudGljYXRlZCBrZXkgZXhjaGFuZ2UgdGhhdCBhbGxvd3MgZGVyaXZpbmcgYQorICogc3Ryb25nIHNoYXJlZCBzZWNyZXQgZnJvbSBhIChwb3RlbnRpYWxseSBsb3cgZW50cm9weSkgcHJlLXNoYXJlZAorICogcGFzc3BocmFzZSwgd2l0aCBmb3J3YXJkIHNlY3JlY3kgYW5kIG11dHVhbCBhdXRoZW50aWNhdGlvbi4KKyAqIGh0dHBzOi8vZW4ud2lraXBlZGlhLm9yZy93aWtpL1Bhc3N3b3JkX0F1dGhlbnRpY2F0ZWRfS2V5X0V4Y2hhbmdlX2J5X0p1Z2dsaW5nCisgKgorICogVGhpcyBmaWxlIGltcGxlbWVudHMgdGhlIEVsbGlwdGljIEN1cnZlIHZhcmlhbnQgb2YgSi1QQUtFLAorICogYXMgZGVmaW5lZCBpbiBDaGFwdGVyIDcuNCBvZiB0aGUgVGhyZWFkIHYxLjAgU3BlY2lmaWNhdGlvbiwKKyAqIGF2YWlsYWJsZSB0byBtZW1iZXJzIG9mIHRoZSBUaHJlYWQgR3JvdXAgaHR0cDovL3RocmVhZGdyb3VwLm9yZy8KKyAqCisgKiBBcyB0aGUgSi1QQUtFIGFsZ29yaXRobSBpcyBpbmhlcmVudGx5IHN5bW1ldHJpYywgc28gaXMgb3VyIEFQSS4KKyAqIEVhY2ggcGFydHkgbmVlZHMgdG8gc2VuZCBpdHMgZmlyc3Qgcm91bmQgbWVzc2FnZSwgaW4gYW55IG9yZGVyLCB0byB0aGUKKyAqIG90aGVyIHBhcnR5LCB0aGVuIGVhY2ggc2VuZHMgaXRzIHNlY29uZCByb3VuZCBtZXNzYWdlLCBpbiBhbnkgb3JkZXIuCisgKiBUaGUgcGF5bG9hZHMgYXJlIHNlcmlhbGl6ZWQgaW4gYSB3YXkgc3VpdGFibGUgZm9yIHVzZSBpbiBUTFMsIGJ1dCBjb3VsZAorICogYWxzbyBiZSB1c2Ugb3V0c2lkZSBUTFMuCisgKi8KKyNpbmNsdWRlICJtYmVkdGxzL2J1aWxkX2luZm8uaCIKKworI2luY2x1ZGUgIm1iZWR0bHMvZWNwLmgiCisjaW5jbHVkZSAibWJlZHRscy9tZC5oIgorCisjaWZkZWYgX19jcGx1c3BsdXMKK2V4dGVybiAiQyIgeworI2VuZGlmCisKKy8qKgorICogUm9sZXMgaW4gdGhlIEVDIEotUEFLRSBleGNoYW5nZQorICovCit0eXBlZGVmIGVudW0geworICAgIE1CRURUTFNfRUNKUEFLRV9DTElFTlQgPSAwLCAgICAgICAgIC8qKjwgQ2xpZW50ICAgICAgICAgICAgICAgICAgICAgICAgICovCisgICAgTUJFRFRMU19FQ0pQQUtFX1NFUlZFUiwgICAgICAgICAgICAgLyoqPCBTZXJ2ZXIgICAgICAgICAgICAgICAgICAgICAgICAgKi8KKyAgICBNQkVEVExTX0VDSlBBS0VfTk9ORSwgICAgICAgICAgICAgICAvKio8IFVuZGVmaW5lZCAgICAgICAgICAgICAgICAgICAgICAqLworfSBtYmVkdGxzX2VjanBha2Vfcm9sZTsKKworLyoqCisgKiBFQyBKLVBBS0UgY29udGV4dCBzdHJ1Y3R1cmUuCisgKgorICogSi1QQUtFIGlzIGEgc3ltbWV0cmljIHByb3RvY29sLCBleGNlcHQgZm9yIHRoZSBpZGVudGlmaWVycyB1c2VkIGluCisgKiBaZXJvLUtub3dsZWRnZSBQcm9vZnMsIGFuZCB0aGUgc2VyaWFsaXphdGlvbiBvZiB0aGUgc2Vjb25kIG1lc3NhZ2UKKyAqIChLZXlFeGNoYW5nZSkgYXMgZGVmaW5lZCBieSB0aGUgVGhyZWFkIHNwZWMuCisgKgorICogSW4gb3JkZXIgdG8gYmVuZWZpdCBmcm9tIHRoaXMgc3ltbWV0cnksIHdlIGNob29zZSBhIGRpZmZlcmVudCBuYW1pbmcKKyAqIGNvbnZlbnRpb24gZnJvbSB0aGUgVGhyZWFkIHYxLjAgc3BlYy4gQ29ycmVzcG9uZGVuY2UgaXMgaW5kaWNhdGVkIGluIHRoZQorICogZGVzY3JpcHRpb24gYXMgYSBwYWlyIEM6IGNsaWVudCBuYW1lLCBTOiBzZXJ2ZXIgbmFtZQorICovCit0eXBlZGVmIHN0cnVjdCBtYmVkdGxzX2VjanBha2VfY29udGV4dCB7CisgICAgbWJlZHRsc19tZF90eXBlX3QgTUJFRFRMU19QUklWQVRFKG1kX3R5cGUpOyAgICAgICAgICAvKio8IEhhc2ggdG8gdXNlICAgICAgICAgICAgICAgICAgICAqLworICAgIG1iZWR0bHNfZWNwX2dyb3VwIE1CRURUTFNfUFJJVkFURShncnApOyAgICAgICAgICAgICAgLyoqPCBFbGxpcHRpYyBjdXJ2ZSAgICAgICAgICAgICAgICAgKi8KKyAgICBtYmVkdGxzX2VjanBha2Vfcm9sZSBNQkVEVExTX1BSSVZBVEUocm9sZSk7ICAgICAgICAgIC8qKjwgQXJlIHdlIGNsaWVudCBvciBzZXJ2ZXI/ICAgICAgICovCisgICAgaW50IE1CRURUTFNfUFJJVkFURShwb2ludF9mb3JtYXQpOyAgICAgICAgICAgICAgICAgICAvKio8IEZvcm1hdCBmb3IgcG9pbnQgZXhwb3J0ICAgICAgICAqLworCisgICAgbWJlZHRsc19lY3BfcG9pbnQgTUJFRFRMU19QUklWQVRFKFhtMSk7ICAgICAgICAgICAgICAvKio8IE15IHB1YmxpYyBrZXkgMSAgIEM6IFgxLCBTOiBYMyAqLworICAgIG1iZWR0bHNfZWNwX3BvaW50IE1CRURUTFNfUFJJVkFURShYbTIpOyAgICAgICAgICAgICAgLyoqPCBNeSBwdWJsaWMga2V5IDIgICBDOiBYMiwgUzogWDQgKi8KKyAgICBtYmVkdGxzX2VjcF9wb2ludCBNQkVEVExTX1BSSVZBVEUoWHAxKTsgICAgICAgICAgICAgIC8qKjwgUGVlciBwdWJsaWMga2V5IDEgQzogWDMsIFM6IFgxICovCisgICAgbWJlZHRsc19lY3BfcG9pbnQgTUJFRFRMU19QUklWQVRFKFhwMik7ICAgICAgICAgICAgICAvKio8IFBlZXIgcHVibGljIGtleSAyIEM6IFg0LCBTOiBYMiAqLworICAgIG1iZWR0bHNfZWNwX3BvaW50IE1CRURUTFNfUFJJVkFURShYcCk7ICAgICAgICAgICAgICAgLyoqPCBQZWVyIHB1YmxpYyBrZXkgICBDOiBYcywgUzogWGMgKi8KKworICAgIG1iZWR0bHNfbXBpIE1CRURUTFNfUFJJVkFURSh4bTEpOyAgICAgICAgICAgICAgICAgICAgLyoqPCBNeSBwcml2YXRlIGtleSAxICBDOiB4MSwgUzogeDMgKi8KKyAgICBtYmVkdGxzX21waSBNQkVEVExTX1BSSVZBVEUoeG0yKTsgICAgICAgICAgICAgICAgICAgIC8qKjwgTXkgcHJpdmF0ZSBrZXkgMiAgQzogeDIsIFM6IHg0ICovCisKKyAgICBtYmVkdGxzX21waSBNQkVEVExTX1BSSVZBVEUocyk7ICAgICAgICAgICAgICAgICAgICAgIC8qKjwgUHJlLXNoYXJlZCBzZWNyZXQgKHBhc3NwaHJhc2UpICovCit9IG1iZWR0bHNfZWNqcGFrZV9jb250ZXh0OworCisvKioKKyAqIFxicmllZiAgICAgICAgICAgSW5pdGlhbGl6ZSBhbiBFQ0pQQUtFIGNvbnRleHQuCisgKgorICogXHBhcmFtIGN0eCAgICAgICBUaGUgRUNKUEFLRSBjb250ZXh0IHRvIGluaXRpYWxpemUuCisgKiAgICAgICAgICAgICAgICAgIFRoaXMgbXVzdCBub3QgYmUgXGMgTlVMTC4KKyAqLwordm9pZCBtYmVkdGxzX2VjanBha2VfaW5pdChtYmVkdGxzX2VjanBha2VfY29udGV4dCAqY3R4KTsKKworLyoqCisgKiBcYnJpZWYgICAgICAgICAgIFNldCB1cCBhbiBFQ0pQQUtFIGNvbnRleHQgZm9yIHVzZS4KKyAqCisgKiBcbm90ZSAgICAgICAgICAgIEN1cnJlbnRseSB0aGUgb25seSB2YWx1ZXMgZm9yIGhhc2gvY3VydmUgYWxsb3dlZCBieSB0aGUKKyAqICAgICAgICAgICAgICAgICAgc3RhbmRhcmQgYXJlICNNQkVEVExTX01EX1NIQTI1Ni8jTUJFRFRMU19FQ1BfRFBfU0VDUDI1NlIxLgorICoKKyAqIFxwYXJhbSBjdHggICAgICAgVGhlIEVDSlBBS0UgY29udGV4dCB0byBzZXQgdXAuIFRoaXMgbXVzdCBiZSBpbml0aWFsaXplZC4KKyAqIFxwYXJhbSByb2xlICAgICAgVGhlIHJvbGUgb2YgdGhlIGNhbGxlci4gVGhpcyBtdXN0IGJlIGVpdGhlcgorICogICAgICAgICAgICAgICAgICAjTUJFRFRMU19FQ0pQQUtFX0NMSUVOVCBvciAjTUJFRFRMU19FQ0pQQUtFX1NFUlZFUi4KKyAqIFxwYXJhbSBoYXNoICAgICAgVGhlIGlkZW50aWZpZXIgb2YgdGhlIGhhc2ggZnVuY3Rpb24gdG8gdXNlLAorICogICAgICAgICAgICAgICAgICBmb3IgZXhhbXBsZSAjTUJFRFRMU19NRF9TSEEyNTYuCisgKiBccGFyYW0gY3VydmUgICAgIFRoZSBpZGVudGlmaWVyIG9mIHRoZSBlbGxpcHRpYyBjdXJ2ZSB0byB1c2UsCisgKiAgICAgICAgICAgICAgICAgIGZvciBleGFtcGxlICNNQkVEVExTX0VDUF9EUF9TRUNQMjU2UjEuCisgKiBccGFyYW0gc2VjcmV0ICAgIFRoZSBwcmUtc2hhcmVkIHNlY3JldCAocGFzc3BocmFzZSkuIFRoaXMgbXVzdCBiZQorICogICAgICAgICAgICAgICAgICBhIHJlYWRhYmxlIG5vdCBlbXB0eSBidWZmZXIgb2YgbGVuZ3RoIFxwIGxlbiBCeXRlcy4gSXQgbmVlZAorICogICAgICAgICAgICAgICAgICBvbmx5IGJlIHZhbGlkIGZvciB0aGUgZHVyYXRpb24gb2YgdGhpcyBjYWxsLgorICogXHBhcmFtIGxlbiAgICAgICBUaGUgbGVuZ3RoIG9mIHRoZSBwcmUtc2hhcmVkIHNlY3JldCBccCBzZWNyZXQuCisgKgorICogXHJldHVybiAgICAgICAgICBcYyAwIGlmIHN1Y2Nlc3NmdWwuCisgKiBccmV0dXJuICAgICAgICAgIEEgbmVnYXRpdmUgZXJyb3IgY29kZSBvbiBmYWlsdXJlLgorICovCitpbnQgbWJlZHRsc19lY2pwYWtlX3NldHVwKG1iZWR0bHNfZWNqcGFrZV9jb250ZXh0ICpjdHgsCisgICAgICAgICAgICAgICAgICAgICAgICAgIG1iZWR0bHNfZWNqcGFrZV9yb2xlIHJvbGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgIG1iZWR0bHNfbWRfdHlwZV90IGhhc2gsCisgICAgICAgICAgICAgICAgICAgICAgICAgIG1iZWR0bHNfZWNwX2dyb3VwX2lkIGN1cnZlLAorICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1bnNpZ25lZCBjaGFyICpzZWNyZXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBsZW4pOworCisvKioKKyAqIFxicmllZiAgICAgICAgICAgICAgIFNldCB0aGUgcG9pbnQgZm9ybWF0IGZvciBmdXR1cmUgcmVhZHMgYW5kIHdyaXRlcy4KKyAqCisgKiBccGFyYW0gY3R4ICAgICAgICAgICBUaGUgRUNKUEFLRSBjb250ZXh0IHRvIGNvbmZpZ3VyZS4KKyAqIFxwYXJhbSBwb2ludF9mb3JtYXQgIFRoZSBwb2ludCBmb3JtYXQgdG8gdXNlOgorICogICAgICAgICAgICAgICAgICAgICAgI01CRURUTFNfRUNQX1BGX1VOQ09NUFJFU1NFRCAoZGVmYXVsdCkKKyAqICAgICAgICAgICAgICAgICAgICAgIG9yICNNQkVEVExTX0VDUF9QRl9DT01QUkVTU0VELgorICoKKyAqIFxyZXR1cm4gICAgICAgICAgICAgIFxjIDAgaWYgc3VjY2Vzc2Z1bC4KKyAqIFxyZXR1cm4gICAgICAgICAgICAgICNNQkVEVExTX0VSUl9FQ1BfQkFEX0lOUFVUX0RBVEEgaWYgXHAgcG9pbnRfZm9ybWF0CisgKiAgICAgICAgICAgICAgICAgICAgICBpcyBpbnZhbGlkLgorICovCitpbnQgbWJlZHRsc19lY2pwYWtlX3NldF9wb2ludF9mb3JtYXQobWJlZHRsc19lY2pwYWtlX2NvbnRleHQgKmN0eCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgcG9pbnRfZm9ybWF0KTsKKworLyoqCisgKiBcYnJpZWYgICAgICAgICAgIENoZWNrIGlmIGFuIEVDSlBBS0UgY29udGV4dCBpcyByZWFkeSBmb3IgdXNlLgorICoKKyAqIFxwYXJhbSBjdHggICAgICAgVGhlIEVDSlBBS0UgY29udGV4dCB0byBjaGVjay4gVGhpcyBtdXN0IGJlCisgKiAgICAgICAgICAgICAgICAgIGluaXRpYWxpemVkLgorICoKKyAqIFxyZXR1cm4gICAgICAgICAgXGMgMCBpZiB0aGUgY29udGV4dCBpcyByZWFkeSBmb3IgdXNlLgorICogXHJldHVybiAgICAgICAgICAjTUJFRFRMU19FUlJfRUNQX0JBRF9JTlBVVF9EQVRBIG90aGVyd2lzZS4KKyAqLworaW50IG1iZWR0bHNfZWNqcGFrZV9jaGVjayhjb25zdCBtYmVkdGxzX2VjanBha2VfY29udGV4dCAqY3R4KTsKKworLyoqCisgKiBcYnJpZWYgICAgICAgICAgIEdlbmVyYXRlIGFuZCB3cml0ZSB0aGUgZmlyc3Qgcm91bmQgbWVzc2FnZQorICogICAgICAgICAgICAgICAgICAoVExTOiBjb250ZW50cyBvZiB0aGUgQ2xpZW50L1NlcnZlckhlbGxvIGV4dGVuc2lvbiwKKyAqICAgICAgICAgICAgICAgICAgZXhjbHVkaW5nIGV4dGVuc2lvbiB0eXBlIGFuZCBsZW5ndGggYnl0ZXMpLgorICoKKyAqIFxwYXJhbSBjdHggICAgICAgVGhlIEVDSlBBS0UgY29udGV4dCB0byB1c2UuIFRoaXMgbXVzdCBiZQorICogICAgICAgICAgICAgICAgICBpbml0aWFsaXplZCBhbmQgc2V0IHVwLgorICogXHBhcmFtIGJ1ZiAgICAgICBUaGUgYnVmZmVyIHRvIHdyaXRlIHRoZSBjb250ZW50cyB0by4gVGhpcyBtdXN0IGJlIGEKKyAqICAgICAgICAgICAgICAgICAgd3JpdGFibGUgYnVmZmVyIG9mIGxlbmd0aCBccCBsZW4gQnl0ZXMuCisgKiBccGFyYW0gbGVuICAgICAgIFRoZSBsZW5ndGggb2YgXHAgYnVmIGluIEJ5dGVzLgorICogXHBhcmFtIG9sZW4gICAgICBUaGUgYWRkcmVzcyBhdCB3aGljaCB0byBzdG9yZSB0aGUgdG90YWwgbnVtYmVyCisgKiAgICAgICAgICAgICAgICAgIG9mIEJ5dGVzIHdyaXR0ZW4gdG8gXHAgYnVmLiBUaGlzIG11c3Qgbm90IGJlIFxjIE5VTEwuCisgKiBccGFyYW0gZl9ybmcgICAgIFRoZSBSTkcgZnVuY3Rpb24gdG8gdXNlLiBUaGlzIG11c3Qgbm90IGJlIFxjIE5VTEwuCisgKiBccGFyYW0gcF9ybmcgICAgIFRoZSBSTkcgcGFyYW1ldGVyIHRvIGJlIHBhc3NlZCB0byBccCBmX3JuZy4gVGhpcworICogICAgICAgICAgICAgICAgICBtYXkgYmUgXGMgTlVMTCBpZiBccCBmX3JuZyBkb2Vzbid0IHVzZSBhIGNvbnRleHQuCisgKgorICogXHJldHVybiAgICAgICAgICBcYyAwIGlmIHN1Y2Nlc3NmdWwuCisgKiBccmV0dXJuICAgICAgICAgIEEgbmVnYXRpdmUgZXJyb3IgY29kZSBvbiBmYWlsdXJlLgorICovCitpbnQgbWJlZHRsc19lY2pwYWtlX3dyaXRlX3JvdW5kX29uZShtYmVkdGxzX2VjanBha2VfY29udGV4dCAqY3R4LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgY2hhciAqYnVmLCBzaXplX3QgbGVuLCBzaXplX3QgKm9sZW4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgKCpmX3JuZykodm9pZCAqLCB1bnNpZ25lZCBjaGFyICosIHNpemVfdCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2b2lkICpwX3JuZyk7CisKKy8qKgorICogXGJyaWVmICAgICAgICAgICBSZWFkIGFuZCBwcm9jZXNzIHRoZSBmaXJzdCByb3VuZCBtZXNzYWdlCisgKiAgICAgICAgICAgICAgICAgIChUTFM6IGNvbnRlbnRzIG9mIHRoZSBDbGllbnQvU2VydmVySGVsbG8gZXh0ZW5zaW9uLAorICogICAgICAgICAgICAgICAgICBleGNsdWRpbmcgZXh0ZW5zaW9uIHR5cGUgYW5kIGxlbmd0aCBieXRlcykuCisgKgorICogXHBhcmFtIGN0eCAgICAgICBUaGUgRUNKUEFLRSBjb250ZXh0IHRvIHVzZS4gVGhpcyBtdXN0IGJlIGluaXRpYWxpemVkCisgKiAgICAgICAgICAgICAgICAgIGFuZCBzZXQgdXAuCisgKiBccGFyYW0gYnVmICAgICAgIFRoZSBidWZmZXIgaG9sZGluZyB0aGUgZmlyc3Qgcm91bmQgbWVzc2FnZS4gVGhpcyBtdXN0CisgKiAgICAgICAgICAgICAgICAgIGJlIGEgcmVhZGFibGUgYnVmZmVyIG9mIGxlbmd0aCBccCBsZW4gQnl0ZXMuCisgKiBccGFyYW0gbGVuICAgICAgIFRoZSBsZW5ndGggaW4gQnl0ZXMgb2YgXHAgYnVmLgorICoKKyAqIFxyZXR1cm4gICAgICAgICAgXGMgMCBpZiBzdWNjZXNzZnVsLgorICogXHJldHVybiAgICAgICAgICBBIG5lZ2F0aXZlIGVycm9yIGNvZGUgb24gZmFpbHVyZS4KKyAqLworaW50IG1iZWR0bHNfZWNqcGFrZV9yZWFkX3JvdW5kX29uZShtYmVkdGxzX2VjanBha2VfY29udGV4dCAqY3R4LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1bnNpZ25lZCBjaGFyICpidWYsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBsZW4pOworCisvKioKKyAqIFxicmllZiAgICAgICAgICAgR2VuZXJhdGUgYW5kIHdyaXRlIHRoZSBzZWNvbmQgcm91bmQgbWVzc2FnZQorICogICAgICAgICAgICAgICAgICAoVExTOiBjb250ZW50cyBvZiB0aGUgQ2xpZW50L1NlcnZlcktleUV4Y2hhbmdlKS4KKyAqCisgKiBccGFyYW0gY3R4ICAgICAgIFRoZSBFQ0pQQUtFIGNvbnRleHQgdG8gdXNlLiBUaGlzIG11c3QgYmUgaW5pdGlhbGl6ZWQsCisgKiAgICAgICAgICAgICAgICAgIHNldCB1cCwgYW5kIGFscmVhZHkgaGF2ZSBwZXJmb3JtZWQgcm91bmQgb25lLgorICogXHBhcmFtIGJ1ZiAgICAgICBUaGUgYnVmZmVyIHRvIHdyaXRlIHRoZSByb3VuZCB0d28gY29udGVudHMgdG8uCisgKiAgICAgICAgICAgICAgICAgIFRoaXMgbXVzdCBiZSBhIHdyaXRhYmxlIGJ1ZmZlciBvZiBsZW5ndGggXHAgbGVuIEJ5dGVzLgorICogXHBhcmFtIGxlbiAgICAgICBUaGUgc2l6ZSBvZiBccCBidWYgaW4gQnl0ZXMuCisgKiBccGFyYW0gb2xlbiAgICAgIFRoZSBhZGRyZXNzIGF0IHdoaWNoIHRvIHN0b3JlIHRoZSB0b3RhbCBudW1iZXIgb2YgQnl0ZXMKKyAqICAgICAgICAgICAgICAgICAgd3JpdHRlbiB0byBccCBidWYuIFRoaXMgbXVzdCBub3QgYmUgXGMgTlVMTC4KKyAqIFxwYXJhbSBmX3JuZyAgICAgVGhlIFJORyBmdW5jdGlvbiB0byB1c2UuIFRoaXMgbXVzdCBub3QgYmUgXGMgTlVMTC4KKyAqIFxwYXJhbSBwX3JuZyAgICAgVGhlIFJORyBwYXJhbWV0ZXIgdG8gYmUgcGFzc2VkIHRvIFxwIGZfcm5nLiBUaGlzCisgKiAgICAgICAgICAgICAgICAgIG1heSBiZSBcYyBOVUxMIGlmIFxwIGZfcm5nIGRvZXNuJ3QgdXNlIGEgY29udGV4dC4KKyAqCisgKiBccmV0dXJuICAgICAgICAgIFxjIDAgaWYgc3VjY2Vzc2Z1bC4KKyAqIFxyZXR1cm4gICAgICAgICAgQSBuZWdhdGl2ZSBlcnJvciBjb2RlIG9uIGZhaWx1cmUuCisgKi8KK2ludCBtYmVkdGxzX2VjanBha2Vfd3JpdGVfcm91bmRfdHdvKG1iZWR0bHNfZWNqcGFrZV9jb250ZXh0ICpjdHgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBjaGFyICpidWYsIHNpemVfdCBsZW4sIHNpemVfdCAqb2xlbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCAoKmZfcm5nKSh2b2lkICosIHVuc2lnbmVkIGNoYXIgKiwgc2l6ZV90KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZvaWQgKnBfcm5nKTsKKworLyoqCisgKiBcYnJpZWYgICAgICAgICAgIFJlYWQgYW5kIHByb2Nlc3MgdGhlIHNlY29uZCByb3VuZCBtZXNzYWdlCisgKiAgICAgICAgICAgICAgICAgIChUTFM6IGNvbnRlbnRzIG9mIHRoZSBDbGllbnQvU2VydmVyS2V5RXhjaGFuZ2UpLgorICoKKyAqIFxwYXJhbSBjdHggICAgICAgVGhlIEVDSlBBS0UgY29udGV4dCB0byB1c2UuIFRoaXMgbXVzdCBiZSBpbml0aWFsaXplZAorICogICAgICAgICAgICAgICAgICBhbmQgc2V0IHVwIGFuZCBhbHJlYWR5IGhhdmUgcGVyZm9ybWVkIHJvdW5kIG9uZS4KKyAqIFxwYXJhbSBidWYgICAgICAgVGhlIGJ1ZmZlciBob2xkaW5nIHRoZSBzZWNvbmQgcm91bmQgbWVzc2FnZS4gVGhpcyBtdXN0CisgKiAgICAgICAgICAgICAgICAgIGJlIGEgcmVhZGFibGUgYnVmZmVyIG9mIGxlbmd0aCBccCBsZW4gQnl0ZXMuCisgKiBccGFyYW0gbGVuICAgICAgIFRoZSBsZW5ndGggaW4gQnl0ZXMgb2YgXHAgYnVmLgorICoKKyAqIFxyZXR1cm4gICAgICAgICAgXGMgMCBpZiBzdWNjZXNzZnVsLgorICogXHJldHVybiAgICAgICAgICBBIG5lZ2F0aXZlIGVycm9yIGNvZGUgb24gZmFpbHVyZS4KKyAqLworaW50IG1iZWR0bHNfZWNqcGFrZV9yZWFkX3JvdW5kX3R3byhtYmVkdGxzX2VjanBha2VfY29udGV4dCAqY3R4LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1bnNpZ25lZCBjaGFyICpidWYsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBsZW4pOworCisvKioKKyAqIFxicmllZiAgICAgICAgICAgRGVyaXZlIHRoZSBzaGFyZWQgc2VjcmV0CisgKiAgICAgICAgICAgICAgICAgIChUTFM6IFByZS1NYXN0ZXIgU2VjcmV0KS4KKyAqCisgKiBccGFyYW0gY3R4ICAgICAgIFRoZSBFQ0pQQUtFIGNvbnRleHQgdG8gdXNlLiBUaGlzIG11c3QgYmUgaW5pdGlhbGl6ZWQsCisgKiAgICAgICAgICAgICAgICAgIHNldCB1cCBhbmQgaGF2ZSBwZXJmb3JtZWQgYm90aCByb3VuZCBvbmUgYW5kIHR3by4KKyAqIFxwYXJhbSBidWYgICAgICAgVGhlIGJ1ZmZlciB0byB3cml0ZSB0aGUgZGVyaXZlZCBzZWNyZXQgdG8uIFRoaXMgbXVzdAorICogICAgICAgICAgICAgICAgICBiZSBhIHdyaXRhYmxlIGJ1ZmZlciBvZiBsZW5ndGggXHAgbGVuIEJ5dGVzLgorICogXHBhcmFtIGxlbiAgICAgICBUaGUgbGVuZ3RoIG9mIFxwIGJ1ZiBpbiBCeXRlcy4KKyAqIFxwYXJhbSBvbGVuICAgICAgVGhlIGFkZHJlc3MgYXQgd2hpY2ggdG8gc3RvcmUgdGhlIHRvdGFsIG51bWJlciBvZiBCeXRlcworICogICAgICAgICAgICAgICAgICB3cml0dGVuIHRvIFxwIGJ1Zi4gVGhpcyBtdXN0IG5vdCBiZSBcYyBOVUxMLgorICogXHBhcmFtIGZfcm5nICAgICBUaGUgUk5HIGZ1bmN0aW9uIHRvIHVzZS4gVGhpcyBtdXN0IG5vdCBiZSBcYyBOVUxMLgorICogXHBhcmFtIHBfcm5nICAgICBUaGUgUk5HIHBhcmFtZXRlciB0byBiZSBwYXNzZWQgdG8gXHAgZl9ybmcuIFRoaXMKKyAqICAgICAgICAgICAgICAgICAgbWF5IGJlIFxjIE5VTEwgaWYgXHAgZl9ybmcgZG9lc24ndCB1c2UgYSBjb250ZXh0LgorICoKKyAqIFxyZXR1cm4gICAgICAgICAgXGMgMCBpZiBzdWNjZXNzZnVsLgorICogXHJldHVybiAgICAgICAgICBBIG5lZ2F0aXZlIGVycm9yIGNvZGUgb24gZmFpbHVyZS4KKyAqLworaW50IG1iZWR0bHNfZWNqcGFrZV9kZXJpdmVfc2VjcmV0KG1iZWR0bHNfZWNqcGFrZV9jb250ZXh0ICpjdHgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgY2hhciAqYnVmLCBzaXplX3QgbGVuLCBzaXplX3QgKm9sZW4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50ICgqZl9ybmcpKHZvaWQgKiwgdW5zaWduZWQgY2hhciAqLCBzaXplX3QpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZvaWQgKnBfcm5nKTsKKworLyoqCisgKiBcYnJpZWYgICAgICAgICAgIFdyaXRlIHRoZSBzaGFyZWQga2V5IG1hdGVyaWFsIHRvIGJlIHBhc3NlZCB0byBhIEtleQorICogICAgICAgICAgICAgICAgICBEZXJpdmF0aW9uIEZ1bmN0aW9uIGFzIGRlc2NyaWJlZCBpbiBSRkM4MjM2LgorICoKKyAqIFxwYXJhbSBjdHggICAgICAgVGhlIEVDSlBBS0UgY29udGV4dCB0byB1c2UuIFRoaXMgbXVzdCBiZSBpbml0aWFsaXplZCwKKyAqICAgICAgICAgICAgICAgICAgc2V0IHVwIGFuZCBoYXZlIHBlcmZvcm1lZCBib3RoIHJvdW5kIG9uZSBhbmQgdHdvLgorICogXHBhcmFtIGJ1ZiAgICAgICBUaGUgYnVmZmVyIHRvIHdyaXRlIHRoZSBkZXJpdmVkIHNlY3JldCB0by4gVGhpcyBtdXN0CisgKiAgICAgICAgICAgICAgICAgIGJlIGEgd3JpdGFibGUgYnVmZmVyIG9mIGxlbmd0aCBccCBsZW4gQnl0ZXMuCisgKiBccGFyYW0gbGVuICAgICAgIFRoZSBsZW5ndGggb2YgXHAgYnVmIGluIEJ5dGVzLgorICogXHBhcmFtIG9sZW4gICAgICBUaGUgYWRkcmVzcyBhdCB3aGljaCB0byBzdG9yZSB0aGUgdG90YWwgbnVtYmVyIG9mIGJ5dGVzCisgKiAgICAgICAgICAgICAgICAgIHdyaXR0ZW4gdG8gXHAgYnVmLiBUaGlzIG11c3Qgbm90IGJlIFxjIE5VTEwuCisgKiBccGFyYW0gZl9ybmcgICAgIFRoZSBSTkcgZnVuY3Rpb24gdG8gdXNlLiBUaGlzIG11c3Qgbm90IGJlIFxjIE5VTEwuCisgKiBccGFyYW0gcF9ybmcgICAgIFRoZSBSTkcgcGFyYW1ldGVyIHRvIGJlIHBhc3NlZCB0byBccCBmX3JuZy4gVGhpcworICogICAgICAgICAgICAgICAgICBtYXkgYmUgXGMgTlVMTCBpZiBccCBmX3JuZyBkb2Vzbid0IHVzZSBhIGNvbnRleHQuCisgKgorICogXHJldHVybiAgICAgICAgICBcYyAwIGlmIHN1Y2Nlc3NmdWwuCisgKiBccmV0dXJuICAgICAgICAgIEEgbmVnYXRpdmUgZXJyb3IgY29kZSBvbiBmYWlsdXJlLgorICovCitpbnQgbWJlZHRsc19lY2pwYWtlX3dyaXRlX3NoYXJlZF9rZXkobWJlZHRsc19lY2pwYWtlX2NvbnRleHQgKmN0eCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBjaGFyICpidWYsIHNpemVfdCBsZW4sIHNpemVfdCAqb2xlbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgKCpmX3JuZykodm9pZCAqLCB1bnNpZ25lZCBjaGFyICosIHNpemVfdCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdm9pZCAqcF9ybmcpOworCisvKioKKyAqIFxicmllZiAgICAgICAgICAgVGhpcyBjbGVhcnMgYW4gRUNKUEFLRSBjb250ZXh0IGFuZCBmcmVlcyBhbnkKKyAqICAgICAgICAgICAgICAgICAgZW1iZWRkZWQgZGF0YSBzdHJ1Y3R1cmUuCisgKgorICogXHBhcmFtIGN0eCAgICAgICBUaGUgRUNKUEFLRSBjb250ZXh0IHRvIGZyZWUuIFRoaXMgbWF5IGJlIFxjIE5VTEwsCisgKiAgICAgICAgICAgICAgICAgIGluIHdoaWNoIGNhc2UgdGhpcyBmdW5jdGlvbiBkb2VzIG5vdGhpbmcuIElmIGl0IGlzIG5vdAorICogICAgICAgICAgICAgICAgICBcYyBOVUxMLCBpdCBtdXN0IHBvaW50IHRvIGFuIGluaXRpYWxpemVkIEVDSlBBS0UgY29udGV4dC4KKyAqLwordm9pZCBtYmVkdGxzX2VjanBha2VfZnJlZShtYmVkdGxzX2VjanBha2VfY29udGV4dCAqY3R4KTsKKworI2lmIGRlZmluZWQoTUJFRFRMU19TRUxGX1RFU1QpCisKKy8qKgorICogXGJyaWVmICAgICAgICAgIENoZWNrdXAgcm91dGluZQorICoKKyAqIFxyZXR1cm4gICAgICAgICAwIGlmIHN1Y2Nlc3NmdWwsIG9yIDEgaWYgYSB0ZXN0IGZhaWxlZAorICovCitpbnQgbWJlZHRsc19lY2pwYWtlX3NlbGZfdGVzdChpbnQgdmVyYm9zZSk7CisKKyNlbmRpZiAvKiBNQkVEVExTX1NFTEZfVEVTVCAqLworCisjaWZkZWYgX19jcGx1c3BsdXMKK30KKyNlbmRpZgorCisKKyNlbmRpZiAvKiBlY2pwYWtlLmggKi8KZGlmZiAtLWdpdCBhL3RmLXBzYS1jcnlwdG8vZHJpdmVycy9idWlsdGluL2luY2x1ZGUvbWJlZHRscy9lY3AuaCBiL3RmLXBzYS1jcnlwdG8vZHJpdmVycy9idWlsdGluL2luY2x1ZGUvbWJlZHRscy9lY3AuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43YjBhODBkCi0tLSAvZGV2L251bGwKKysrIGIvdGYtcHNhLWNyeXB0by9kcml2ZXJzL2J1aWx0aW4vaW5jbHVkZS9tYmVkdGxzL2VjcC5oCkBAIC0wLDAgKzEsMTUxNSBAQAorLyoqCisgKiBcZmlsZSBlY3AuaAorICoKKyAqIFxicmllZiBUaGlzIGZpbGUgcHJvdmlkZXMgYW4gQVBJIGZvciBFbGxpcHRpYyBDdXJ2ZXMgb3ZlciBHRihQKSAoRUNQKS4KKyAqCisgKiBUaGUgdXNlIG9mIEVDUCBpbiBjcnlwdG9ncmFwaHkgYW5kIFRMUyBpcyBkZWZpbmVkIGluCisgKiA8ZW0+U3RhbmRhcmRzIGZvciBFZmZpY2llbnQgQ3J5cHRvZ3JhcGh5IEdyb3VwIChTRUNHKTogU0VDMQorICogRWxsaXB0aWMgQ3VydmUgQ3J5cHRvZ3JhcGh5PC9lbT4gYW5kCisgKiA8ZW0+UkZDLTQ0OTI6IEVsbGlwdGljIEN1cnZlIENyeXB0b2dyYXBoeSAoRUNDKSBDaXBoZXIgU3VpdGVzCisgKiBmb3IgVHJhbnNwb3J0IExheWVyIFNlY3VyaXR5IChUTFMpPC9lbT4uCisgKgorICogPGVtPlJGQy0yNDA5OiBUaGUgSW50ZXJuZXQgS2V5IEV4Y2hhbmdlIChJS0UpPC9lbT4gZGVmaW5lcyBFQ1AKKyAqIGdyb3VwIHR5cGVzLgorICoKKyAqLworCisvKgorICogIENvcHlyaWdodCBUaGUgTWJlZCBUTFMgQ29udHJpYnV0b3JzCisgKiAgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjAgT1IgR1BMLTIuMC1vci1sYXRlcgorICovCisKKyNpZm5kZWYgTUJFRFRMU19FQ1BfSAorI2RlZmluZSBNQkVEVExTX0VDUF9ICisjaW5jbHVkZSAibWJlZHRscy9wcml2YXRlX2FjY2Vzcy5oIgorCisjaW5jbHVkZSAibWJlZHRscy9idWlsZF9pbmZvLmgiCisjaW5jbHVkZSAibWJlZHRscy9wbGF0Zm9ybV91dGlsLmgiCisKKyNpbmNsdWRlICJtYmVkdGxzL2JpZ251bS5oIgorCisvKgorICogRUNQIGVycm9yIGNvZGVzCisgKi8KKy8qKiBCYWQgaW5wdXQgcGFyYW1ldGVycyB0byBmdW5jdGlvbi4gKi8KKyNkZWZpbmUgTUJFRFRMU19FUlJfRUNQX0JBRF9JTlBVVF9EQVRBICAgICAgICAgICAgICAgICAgICAtMHg0RjgwCisvKiogVGhlIGJ1ZmZlciBpcyB0b28gc21hbGwgdG8gd3JpdGUgdG8uICovCisjZGVmaW5lIE1CRURUTFNfRVJSX0VDUF9CVUZGRVJfVE9PX1NNQUxMICAgICAgICAgICAgICAgICAgLTB4NEYwMAorLyoqIFRoZSByZXF1ZXN0ZWQgZmVhdHVyZSBpcyBub3QgYXZhaWxhYmxlLCBmb3IgZXhhbXBsZSwgdGhlIHJlcXVlc3RlZCBjdXJ2ZSBpcyBub3Qgc3VwcG9ydGVkLiAqLworI2RlZmluZSBNQkVEVExTX0VSUl9FQ1BfRkVBVFVSRV9VTkFWQUlMQUJMRSAgICAgICAgICAgICAgIC0weDRFODAKKy8qKiBUaGUgc2lnbmF0dXJlIGlzIG5vdCB2YWxpZC4gKi8KKyNkZWZpbmUgTUJFRFRMU19FUlJfRUNQX1ZFUklGWV9GQUlMRUQgICAgICAgICAgICAgICAgICAgICAtMHg0RTAwCisvKiogTWVtb3J5IGFsbG9jYXRpb24gZmFpbGVkLiAqLworI2RlZmluZSBNQkVEVExTX0VSUl9FQ1BfQUxMT0NfRkFJTEVEICAgICAgICAgICAgICAgICAgICAgIC0weDREODAKKy8qKiBHZW5lcmF0aW9uIG9mIHJhbmRvbSB2YWx1ZSwgc3VjaCBhcyBlcGhlbWVyYWwga2V5LCBmYWlsZWQuICovCisjZGVmaW5lIE1CRURUTFNfRVJSX0VDUF9SQU5ET01fRkFJTEVEICAgICAgICAgICAgICAgICAgICAgLTB4NEQwMAorLyoqIEludmFsaWQgcHJpdmF0ZSBvciBwdWJsaWMga2V5LiAqLworI2RlZmluZSBNQkVEVExTX0VSUl9FQ1BfSU5WQUxJRF9LRVkgICAgICAgICAgICAgICAgICAgICAgIC0weDRDODAKKy8qKiBUaGUgYnVmZmVyIGNvbnRhaW5zIGEgdmFsaWQgc2lnbmF0dXJlIGZvbGxvd2VkIGJ5IG1vcmUgZGF0YS4gKi8KKyNkZWZpbmUgTUJFRFRMU19FUlJfRUNQX1NJR19MRU5fTUlTTUFUQ0ggICAgICAgICAgICAgICAgICAtMHg0QzAwCisvKiogT3BlcmF0aW9uIGluIHByb2dyZXNzLCBjYWxsIGFnYWluIHdpdGggdGhlIHNhbWUgcGFyYW1ldGVycyB0byBjb250aW51ZS4gKi8KKyNkZWZpbmUgTUJFRFRMU19FUlJfRUNQX0lOX1BST0dSRVNTICAgICAgICAgICAgICAgICAgICAgICAtMHg0QjAwCisKKy8qIEZsYWdzIGluZGljYXRpbmcgd2hldGhlciB0byBpbmNsdWRlIGNvZGUgdGhhdCBpcyBzcGVjaWZpYyB0byBjZXJ0YWluCisgKiB0eXBlcyBvZiBjdXJ2ZXMuIFRoZXNlIGZsYWdzIGFyZSBmb3IgaW50ZXJuYWwgbGlicmFyeSB1c2Ugb25seS4gKi8KKyNpZiBkZWZpbmVkKE1CRURUTFNfRUNQX0RQX1NFQ1AxOTJSMV9FTkFCTEVEKSB8fCBcCisgICAgZGVmaW5lZChNQkVEVExTX0VDUF9EUF9TRUNQMjI0UjFfRU5BQkxFRCkgfHwgXAorICAgIGRlZmluZWQoTUJFRFRMU19FQ1BfRFBfU0VDUDI1NlIxX0VOQUJMRUQpIHx8IFwKKyAgICBkZWZpbmVkKE1CRURUTFNfRUNQX0RQX1NFQ1AzODRSMV9FTkFCTEVEKSB8fCBcCisgICAgZGVmaW5lZChNQkVEVExTX0VDUF9EUF9TRUNQNTIxUjFfRU5BQkxFRCkgfHwgXAorICAgIGRlZmluZWQoTUJFRFRMU19FQ1BfRFBfQlAyNTZSMV9FTkFCTEVEKSB8fCBcCisgICAgZGVmaW5lZChNQkVEVExTX0VDUF9EUF9CUDM4NFIxX0VOQUJMRUQpIHx8IFwKKyAgICBkZWZpbmVkKE1CRURUTFNfRUNQX0RQX0JQNTEyUjFfRU5BQkxFRCkgfHwgXAorICAgIGRlZmluZWQoTUJFRFRMU19FQ1BfRFBfU0VDUDE5MksxX0VOQUJMRUQpIHx8IFwKKyAgICBkZWZpbmVkKE1CRURUTFNfRUNQX0RQX1NFQ1AyMjRLMV9FTkFCTEVEKSB8fCBcCisgICAgZGVmaW5lZChNQkVEVExTX0VDUF9EUF9TRUNQMjU2SzFfRU5BQkxFRCkKKyNkZWZpbmUgTUJFRFRMU19FQ1BfU0hPUlRfV0VJRVJTVFJBU1NfRU5BQkxFRAorI2VuZGlmCisjaWYgZGVmaW5lZChNQkVEVExTX0VDUF9EUF9DVVJWRTI1NTE5X0VOQUJMRUQpIHx8IFwKKyAgICBkZWZpbmVkKE1CRURUTFNfRUNQX0RQX0NVUlZFNDQ4X0VOQUJMRUQpCisjZGVmaW5lIE1CRURUTFNfRUNQX01PTlRHT01FUllfRU5BQkxFRAorI2VuZGlmCisKKyNpZmRlZiBfX2NwbHVzcGx1cworZXh0ZXJuICJDIiB7CisjZW5kaWYKKworLyoqCisgKiBEb21haW4tcGFyYW1ldGVyIGlkZW50aWZpZXJzOiBjdXJ2ZSwgc3ViZ3JvdXAsIGFuZCBnZW5lcmF0b3IuCisgKgorICogXG5vdGUgT25seSBjdXJ2ZXMgb3ZlciBwcmltZSBmaWVsZHMgYXJlIHN1cHBvcnRlZC4KKyAqCisgKiBcd2FybmluZyBUaGlzIGxpYnJhcnkgZG9lcyBub3Qgc3VwcG9ydCB2YWxpZGF0aW9uIG9mIGFyYml0cmFyeSBkb21haW4KKyAqIHBhcmFtZXRlcnMuIFRoZXJlZm9yZSwgb25seSBzdGFuZGFyZGl6ZWQgZG9tYWluIHBhcmFtZXRlcnMgZnJvbSB0cnVzdGVkCisgKiBzb3VyY2VzIHNob3VsZCBiZSB1c2VkLiBTZWUgbWJlZHRsc19lY3BfZ3JvdXBfbG9hZCgpLgorICovCisvKiBOb3RlOiB3aGVuIGFkZGluZyBhIG5ldyBjdXJ2ZToKKyAqIC0gQWRkIGl0IGF0IHRoZSBlbmQgb2YgdGhpcyBlbnVtLCBvdGhlcndpc2UgeW91J2xsIGJyZWFrIHRoZSBBQkkgYnkKKyAqICAgY2hhbmdpbmcgdGhlIG51bWVyaWNhbCB2YWx1ZSBmb3IgZXhpc3RpbmcgY3VydmVzLgorICogLSBJbmNyZW1lbnQgTUJFRFRMU19FQ1BfRFBfTUFYIGJlbG93IGlmIG5lZWRlZC4KKyAqIC0gVXBkYXRlIHRoZSBjYWxjdWxhdGlvbiBvZiBNQkVEVExTX0VDUF9NQVhfQklUUyBiZWxvdy4KKyAqIC0gQWRkIHRoZSBjb3JyZXNwb25kaW5nIE1CRURUTFNfRUNQX0RQX3h4eF9FTkFCTEVEIG1hY3JvIGRlZmluaXRpb24gdG8KKyAqICAgbWJlZHRsc19jb25maWcuaC4KKyAqIC0gTGlzdCB0aGUgY3VydmUgYXMgYSBkZXBlbmRlbmN5IG9mIE1CRURUTFNfRUNQX0MgYW5kCisgKiAgIE1CRURUTFNfRUNEU0FfQyBpZiBzdXBwb3J0ZWQgaW4gY2hlY2tfY29uZmlnLmguCisgKiAtIEFkZCB0aGUgY3VydmUgdG8gdGhlIGFwcHJvcHJpYXRlIGN1cnZlIHR5cGUgbWFjcm8KKyAqICAgTUJFRFRMU19FQ1BfeXl5X0VOQUJMRUQgYWJvdmUuCisgKiAtIEFkZCB0aGUgbmVjZXNzYXJ5IGRlZmluaXRpb25zIHRvIGVjcF9jdXJ2ZXMuYy4KKyAqIC0gQWRkIHRoZSBjdXJ2ZSB0byB0aGUgZWNwX3N1cHBvcnRlZF9jdXJ2ZXMgYXJyYXkgaW4gZWNwLmMuCisgKiAtIEFkZCB0aGUgY3VydmUgdG8gYXBwbGljYWJsZSBwcm9maWxlcyBpbiB4NTA5X2NydC5jLgorICogLSBBZGQgdGhlIGN1cnZlIHRvIGFwcGxpY2FibGUgcHJlc2V0cyBpbiBzc2xfdGxzLmMuCisgKi8KK3R5cGVkZWYgZW51bSB7CisgICAgTUJFRFRMU19FQ1BfRFBfTk9ORSA9IDAsICAgICAgIC8qITwgQ3VydmUgbm90IGRlZmluZWQuICovCisgICAgTUJFRFRMU19FQ1BfRFBfU0VDUDE5MlIxLCAgICAgIC8qITwgRG9tYWluIHBhcmFtZXRlcnMgZm9yIHRoZSAxOTItYml0IGN1cnZlIGRlZmluZWQgYnkgRklQUyAxODYtNCBhbmQgU0VDMS4gKi8KKyAgICBNQkVEVExTX0VDUF9EUF9TRUNQMjI0UjEsICAgICAgLyohPCBEb21haW4gcGFyYW1ldGVycyBmb3IgdGhlIDIyNC1iaXQgY3VydmUgZGVmaW5lZCBieSBGSVBTIDE4Ni00IGFuZCBTRUMxLiAqLworICAgIE1CRURUTFNfRUNQX0RQX1NFQ1AyNTZSMSwgICAgICAvKiE8IERvbWFpbiBwYXJhbWV0ZXJzIGZvciB0aGUgMjU2LWJpdCBjdXJ2ZSBkZWZpbmVkIGJ5IEZJUFMgMTg2LTQgYW5kIFNFQzEuICovCisgICAgTUJFRFRMU19FQ1BfRFBfU0VDUDM4NFIxLCAgICAgIC8qITwgRG9tYWluIHBhcmFtZXRlcnMgZm9yIHRoZSAzODQtYml0IGN1cnZlIGRlZmluZWQgYnkgRklQUyAxODYtNCBhbmQgU0VDMS4gKi8KKyAgICBNQkVEVExTX0VDUF9EUF9TRUNQNTIxUjEsICAgICAgLyohPCBEb21haW4gcGFyYW1ldGVycyBmb3IgdGhlIDUyMS1iaXQgY3VydmUgZGVmaW5lZCBieSBGSVBTIDE4Ni00IGFuZCBTRUMxLiAqLworICAgIE1CRURUTFNfRUNQX0RQX0JQMjU2UjEsICAgICAgICAvKiE8IERvbWFpbiBwYXJhbWV0ZXJzIGZvciAyNTYtYml0IEJyYWlucG9vbCBjdXJ2ZS4gKi8KKyAgICBNQkVEVExTX0VDUF9EUF9CUDM4NFIxLCAgICAgICAgLyohPCBEb21haW4gcGFyYW1ldGVycyBmb3IgMzg0LWJpdCBCcmFpbnBvb2wgY3VydmUuICovCisgICAgTUJFRFRMU19FQ1BfRFBfQlA1MTJSMSwgICAgICAgIC8qITwgRG9tYWluIHBhcmFtZXRlcnMgZm9yIDUxMi1iaXQgQnJhaW5wb29sIGN1cnZlLiAqLworICAgIE1CRURUTFNfRUNQX0RQX0NVUlZFMjU1MTksICAgICAvKiE8IERvbWFpbiBwYXJhbWV0ZXJzIGZvciBDdXJ2ZTI1NTE5LiAqLworICAgIE1CRURUTFNfRUNQX0RQX1NFQ1AxOTJLMSwgICAgICAvKiE8IERvbWFpbiBwYXJhbWV0ZXJzIGZvciAxOTItYml0ICJLb2JsaXR6IiBjdXJ2ZS4gKi8KKyAgICBNQkVEVExTX0VDUF9EUF9TRUNQMjI0SzEsICAgICAgLyohPCBEb21haW4gcGFyYW1ldGVycyBmb3IgMjI0LWJpdCAiS29ibGl0eiIgY3VydmUuICovCisgICAgTUJFRFRMU19FQ1BfRFBfU0VDUDI1NksxLCAgICAgIC8qITwgRG9tYWluIHBhcmFtZXRlcnMgZm9yIDI1Ni1iaXQgIktvYmxpdHoiIGN1cnZlLiAqLworICAgIE1CRURUTFNfRUNQX0RQX0NVUlZFNDQ4LCAgICAgICAvKiE8IERvbWFpbiBwYXJhbWV0ZXJzIGZvciBDdXJ2ZTQ0OC4gKi8KK30gbWJlZHRsc19lY3BfZ3JvdXBfaWQ7CisKKy8qKgorICogVGhlIG51bWJlciBvZiBzdXBwb3J0ZWQgY3VydmVzLCBwbHVzIG9uZSBmb3IgI01CRURUTFNfRUNQX0RQX05PTkUuCisgKi8KKyNkZWZpbmUgTUJFRFRMU19FQ1BfRFBfTUFYICAgICAxNAorCisvKgorICogQ3VydmUgdHlwZXMKKyAqLwordHlwZWRlZiBlbnVtIHsKKyAgICBNQkVEVExTX0VDUF9UWVBFX05PTkUgPSAwLAorICAgIE1CRURUTFNfRUNQX1RZUEVfU0hPUlRfV0VJRVJTVFJBU1MsICAgIC8qIHleMiA9IHheMyArIGEgeCArIGIgICAgICAqLworICAgIE1CRURUTFNfRUNQX1RZUEVfTU9OVEdPTUVSWSwgICAgICAgICAgIC8qIHleMiA9IHheMyArIGEgeF4yICsgeCAgICAqLworfSBtYmVkdGxzX2VjcF9jdXJ2ZV90eXBlOworCisvKioKKyAqIEN1cnZlIGluZm9ybWF0aW9uLCBmb3IgdXNlIGJ5IG90aGVyIG1vZHVsZXMuCisgKgorICogVGhlIGZpZWxkcyBvZiB0aGlzIHN0cnVjdHVyZSBhcmUgcGFydCBvZiB0aGUgcHVibGljIEFQSSBhbmQgY2FuIGJlCisgKiBhY2Nlc3NlZCBkaXJlY3RseSBieSBhcHBsaWNhdGlvbnMuIEZ1dHVyZSB2ZXJzaW9ucyBvZiB0aGUgbGlicmFyeSBtYXkKKyAqIGFkZCBleHRyYSBmaWVsZHMgb3IgcmVvcmRlciBleGlzdGluZyBmaWVsZHMuCisgKi8KK3R5cGVkZWYgc3RydWN0IG1iZWR0bHNfZWNwX2N1cnZlX2luZm8geworICAgIG1iZWR0bHNfZWNwX2dyb3VwX2lkIGdycF9pZDsgICAgLyohPCBBbiBpbnRlcm5hbCBpZGVudGlmaWVyLiAqLworICAgIHVpbnQxNl90IHRsc19pZDsgICAgICAgICAgICAgICAgLyohPCBUaGUgVExTIE5hbWVkQ3VydmUgaWRlbnRpZmllci4gKi8KKyAgICB1aW50MTZfdCBiaXRfc2l6ZTsgICAgICAgICAgICAgIC8qITwgVGhlIGN1cnZlIHNpemUgaW4gYml0cy4gKi8KKyAgICBjb25zdCBjaGFyICpuYW1lOyAgICAgICAgICAgICAgIC8qITwgQSBodW1hbi1mcmllbmRseSBuYW1lLiAqLworfSBtYmVkdGxzX2VjcF9jdXJ2ZV9pbmZvOworCisvKioKKyAqIFxicmllZiAgICAgICAgICAgVGhlIEVDUCBwb2ludCBzdHJ1Y3R1cmUsIGluIEphY29iaWFuIGNvb3JkaW5hdGVzLgorICoKKyAqIFxub3RlICAgICAgICAgICAgQWxsIGZ1bmN0aW9ucyBleHBlY3QgYW5kIHJldHVybiBwb2ludHMgc2F0aXNmeWluZworICogICAgICAgICAgICAgICAgICB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbjogPGNvZGU+WiA9PSAwPC9jb2RlPiBvcgorICogICAgICAgICAgICAgICAgICA8Y29kZT5aID09IDE8L2NvZGU+LiBPdGhlciB2YWx1ZXMgb2YgXHAgWiBhcmUKKyAqICAgICAgICAgICAgICAgICAgdXNlZCBvbmx5IGJ5IGludGVybmFsIGZ1bmN0aW9ucy4KKyAqICAgICAgICAgICAgICAgICAgVGhlIHBvaW50IGlzIHplcm8sIG9yICJhdCBpbmZpbml0eSIsIGlmIDxjb2RlPlogPT0gMDwvY29kZT4uCisgKiAgICAgICAgICAgICAgICAgIE90aGVyd2lzZSwgXHAgWCBhbmQgXHAgWSBhcmUgaXRzIHN0YW5kYXJkIChhZmZpbmUpCisgKiAgICAgICAgICAgICAgICAgIGNvb3JkaW5hdGVzLgorICovCit0eXBlZGVmIHN0cnVjdCBtYmVkdGxzX2VjcF9wb2ludCB7CisgICAgbWJlZHRsc19tcGkgTUJFRFRMU19QUklWQVRFKFgpOyAgICAgICAgICAvKiE8IFRoZSBYIGNvb3JkaW5hdGUgb2YgdGhlIEVDUCBwb2ludC4gKi8KKyAgICBtYmVkdGxzX21waSBNQkVEVExTX1BSSVZBVEUoWSk7ICAgICAgICAgIC8qITwgVGhlIFkgY29vcmRpbmF0ZSBvZiB0aGUgRUNQIHBvaW50LiAqLworICAgIG1iZWR0bHNfbXBpIE1CRURUTFNfUFJJVkFURShaKTsgICAgICAgICAgLyohPCBUaGUgWiBjb29yZGluYXRlIG9mIHRoZSBFQ1AgcG9pbnQuICovCit9CittYmVkdGxzX2VjcF9wb2ludDsKKworLyoqCisgKiBcYnJpZWYgICAgICAgICAgIFRoZSBFQ1AgZ3JvdXAgc3RydWN0dXJlLgorICoKKyAqIFdlIGNvbnNpZGVyIHR3byB0eXBlcyBvZiBjdXJ2ZSBlcXVhdGlvbnM6CisgKiA8dWw+PGxpPlNob3J0IFdlaWVyc3RyYXNzOiA8Y29kZT55XjIgPSB4XjMgKyBBIHggKyBCIG1vZCBQPC9jb2RlPgorICogKFNFQzEgKyBSRkMtNDQ5Mik8L2xpPgorICogPGxpPk1vbnRnb21lcnk6IDxjb2RlPnleMiA9IHheMyArIEEgeF4yICsgeCBtb2QgUDwvY29kZT4gKEN1cnZlMjU1MTksCisgKiBDdXJ2ZTQ0OCk8L2xpPjwvdWw+CisgKiBJbiBib3RoIGNhc2VzLCB0aGUgZ2VuZXJhdG9yIChccCBHKSBmb3IgYSBwcmltZS1vcmRlciBzdWJncm91cCBpcyBmaXhlZC4KKyAqCisgKiBGb3IgU2hvcnQgV2VpZXJzdHJhc3MsIHRoaXMgc3ViZ3JvdXAgaXMgdGhlIHdob2xlIGN1cnZlLCBhbmQgaXRzCisgKiBjYXJkaW5hbGl0eSBpcyBkZW5vdGVkIGJ5IFxwIE4uIE91ciBjb2RlIHJlcXVpcmVzIHRoYXQgXHAgTiBpcyBhbgorICogb2RkIHByaW1lIGFzIG1iZWR0bHNfZWNwX211bCgpIHJlcXVpcmVzIGFuIG9kZCBudW1iZXIsIGFuZAorICogbWJlZHRsc19lY2RzYV9zaWduKCkgcmVxdWlyZXMgdGhhdCBpdCBpcyBwcmltZSBmb3IgYmxpbmRpbmcgcHVycG9zZXMuCisgKgorICogVGhlIGRlZmF1bHQgaW1wbGVtZW50YXRpb24gb25seSBpbml0aWFsaXplcyBccCBBIHdpdGhvdXQgc2V0dGluZyBpdCB0byB0aGUKKyAqIGF1dGhlbnRpYyB2YWx1ZSBmb3IgY3VydmVzIHdpdGggPGNvZGU+QSA9IC0zPC9jb2RlPihTRUNQMjU2UjEsIGV0YyksIGluIHdoaWNoCisgKiBjYXNlIHlvdSBuZWVkIHRvIGxvYWQgXHAgQSBieSB5b3Vyc2VsZiB3aGVuIHVzaW5nIGRvbWFpbiBwYXJhbWV0ZXJzIGRpcmVjdGx5LAorICogZm9yIGV4YW1wbGU6CisgKiBcY29kZQorICogbWJlZHRsc19tcGlfaW5pdCgmQSk7CisgKiBtYmVkdGxzX2VjcF9ncm91cF9pbml0KCZncnApOworICogQ0hFQ0tfUkVUVVJOKG1iZWR0bHNfZWNwX2dyb3VwX2xvYWQoJmdycCwgZ3JwX2lkKSk7CisgKiBpZiAobWJlZHRsc19lY3BfZ3JvdXBfYV9pc19taW51c18zKCZncnApKSB7CisgKiAgICAgQ0hFQ0tfUkVUVVJOKG1iZWR0bHNfbXBpX3N1Yl9pbnQoJkEsICZncnAuUCwgMykpOworICogfSBlbHNlIHsKKyAqICAgICBDSEVDS19SRVRVUk4obWJlZHRsc19tcGlfY29weSgmQSwgJmdycC5BKSk7CisgKiB9CisgKgorICogZG9fc29tZXRoaW5nX3dpdGhfYSgmQSk7CisgKgorICogY2xlYW51cDoKKyAqIG1iZWR0bHNfbXBpX2ZyZWUoJkEpOworICogbWJlZHRsc19lY3BfZ3JvdXBfZnJlZSgmZ3JwKTsKKyAqIFxlbmRjb2RlCisgKgorICogRm9yIE1vbnRnb21lcnkgY3VydmVzLCB3ZSBkbyBub3Qgc3RvcmUgXHAgQSwgYnV0IDxjb2RlPihBICsgMikgLyA0PC9jb2RlPiwKKyAqIHdoaWNoIGlzIHRoZSBxdWFudGl0eSB1c2VkIGluIHRoZSBmb3JtdWxhcy4gQWRkaXRpb25hbGx5LCBccCBuYml0cyBpcworICogbm90IHRoZSBzaXplIG9mIFxwIE4gYnV0IHRoZSByZXF1aXJlZCBzaXplIGZvciBwcml2YXRlIGtleXMuCisgKgorICogSWYgXHAgbW9kcCBpcyBOVUxMLCByZWR1Y3Rpb24gbW9kdWxvIFxwIFAgaXMgZG9uZSB1c2luZyBhIGdlbmVyaWMgYWxnb3JpdGhtLgorICogT3RoZXJ3aXNlLCBccCBtb2RwIG11c3QgcG9pbnQgdG8gYSBmdW5jdGlvbiB0aGF0IHRha2VzIGFuIFxwIG1iZWR0bHNfbXBpIGluIHRoZQorICogcmFuZ2Ugb2YgPGNvZGU+MC4uMl4oMipwYml0cyktMTwvY29kZT4sIGFuZCB0cmFuc2Zvcm1zIGl0IGluLXBsYWNlIHRvIGFuIGludGVnZXIKKyAqIHdoaWNoIGlzIGNvbmdydWVudCBtb2QgXHAgUCB0byB0aGUgZ2l2ZW4gTVBJLCBhbmQgaXMgY2xvc2UgZW5vdWdoIHRvIFxwIHBiaXRzCisgKiBpbiBzaXplLCBzbyB0aGF0IGl0IG1heSBiZSBlZmZpY2llbnRseSBicm91Z2h0IGluIHRoZSAwLi5QLTEgcmFuZ2UgYnkgYSBmZXcKKyAqIGFkZGl0aW9ucyBvciBzdWJ0cmFjdGlvbnMuIFRoZXJlZm9yZSwgaXQgaXMgb25seSBhbiBhcHByb3hpbWF0ZSBtb2R1bGFyCisgKiByZWR1Y3Rpb24uIEl0IG11c3QgcmV0dXJuIDAgb24gc3VjY2VzcyBhbmQgbm9uLXplcm8gb24gZmFpbHVyZS4KKyAqCisgKiBcbm90ZSAgICAgICAgQWx0ZXJuYXRpdmUgaW1wbGVtZW50YXRpb25zIG9mIHRoZSBFQ1AgbW9kdWxlIG11c3Qgb2JleSB0aGUKKyAqICAgICAgICAgICAgICBmb2xsb3dpbmcgY29uc3RyYWludHMuCisgKiAgICAgICAgICAgICAgKiBHcm91cCBJRHMgbXVzdCBiZSBkaXN0aW5jdDogaWYgdHdvIGdyb3VwIHN0cnVjdHVyZXMgaGF2ZQorICogICAgICAgICAgICAgICAgdGhlIHNhbWUgSUQsIHRoZW4gdGhleSBtdXN0IGJlIGlkZW50aWNhbC4KKyAqICAgICAgICAgICAgICAqIFRoZSBmaWVsZHMgXGMgaWQsIFxjIFAsIFxjIEEsIFxjIEIsIFxjIEcsIFxjIE4sCisgKiAgICAgICAgICAgICAgICBcYyBwYml0cyBhbmQgXGMgbmJpdHMgbXVzdCBoYXZlIHRoZSBzYW1lIHR5cGUgYW5kIHNlbWFudGljcworICogICAgICAgICAgICAgICAgYXMgaW4gdGhlIGJ1aWx0LWluIGltcGxlbWVudGF0aW9uLgorICogICAgICAgICAgICAgICAgVGhleSBtdXN0IGJlIGF2YWlsYWJsZSBmb3IgcmVhZGluZywgYnV0IGRpcmVjdCBtb2RpZmljYXRpb24KKyAqICAgICAgICAgICAgICAgIG9mIHRoZXNlIGZpZWxkcyBkb2VzIG5vdCBuZWVkIHRvIGJlIHN1cHBvcnRlZC4KKyAqICAgICAgICAgICAgICAgIFRoZXkgZG8gbm90IG5lZWQgdG8gYmUgYXQgdGhlIHNhbWUgb2Zmc2V0IGluIHRoZSBzdHJ1Y3R1cmUuCisgKi8KK3R5cGVkZWYgc3RydWN0IG1iZWR0bHNfZWNwX2dyb3VwIHsKKyAgICBtYmVkdGxzX2VjcF9ncm91cF9pZCBpZDsgICAgLyohPCBBbiBpbnRlcm5hbCBncm91cCBpZGVudGlmaWVyLiAqLworICAgIG1iZWR0bHNfbXBpIFA7ICAgICAgICAgICAgICAvKiE8IFRoZSBwcmltZSBtb2R1bHVzIG9mIHRoZSBiYXNlIGZpZWxkLiAqLworICAgIG1iZWR0bHNfbXBpIEE7ICAgICAgICAgICAgICAvKiE8IEZvciBTaG9ydCBXZWllcnN0cmFzczogXHAgQSBpbiB0aGUgZXF1YXRpb24uIE5vdGUgdGhhdAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxwIEEgaXMgbm90IHNldCB0byB0aGUgYXV0aGVudGljIHZhbHVlIGluIHNvbWUgY2FzZXMuCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmVmZXIgdG8gZGV0YWlsZWQgZGVzY3JpcHRpb24gb2YgOjptYmVkdGxzX2VjcF9ncm91cCBpZgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVzaW5nIGRvbWFpbiBwYXJhbWV0ZXJzIGluIHRoZSBzdHJ1Y3R1cmUuCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRm9yIE1vbnRnb21lcnkgY3VydmVzOiA8Y29kZT4oQSArIDIpIC8gNDwvY29kZT4uICovCisgICAgbWJlZHRsc19tcGkgQjsgICAgICAgICAgICAgIC8qITwgRm9yIFNob3J0IFdlaWVyc3RyYXNzOiBccCBCIGluIHRoZSBlcXVhdGlvbi4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBGb3IgTW9udGdvbWVyeSBjdXJ2ZXM6IHVudXNlZC4gKi8KKyAgICBtYmVkdGxzX2VjcF9wb2ludCBHOyAgICAgICAgLyohPCBUaGUgZ2VuZXJhdG9yIG9mIHRoZSBzdWJncm91cCB1c2VkLiAqLworICAgIG1iZWR0bHNfbXBpIE47ICAgICAgICAgICAgICAvKiE8IFRoZSBvcmRlciBvZiBccCBHLiAqLworICAgIHNpemVfdCBwYml0czsgICAgICAgICAgICAgICAvKiE8IFRoZSBudW1iZXIgb2YgYml0cyBpbiBccCBQLiovCisgICAgc2l6ZV90IG5iaXRzOyAgICAgICAgICAgICAgIC8qITwgRm9yIFNob3J0IFdlaWVyc3RyYXNzOiBUaGUgbnVtYmVyIG9mIGJpdHMgaW4gXHAgUC4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBGb3IgTW9udGdvbWVyeSBjdXJ2ZXM6IHRoZSBudW1iZXIgb2YgYml0cyBpbiB0aGUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcml2YXRlIGtleXMuICovCisgICAgLyogRW5kIG9mIHB1YmxpYyBmaWVsZHMgKi8KKworICAgIHVuc2lnbmVkIGludCBNQkVEVExTX1BSSVZBVEUoaCk7ICAgICAgICAgICAgIC8qITwgXGludGVybmFsIDEgaWYgdGhlIGNvbnN0YW50cyBhcmUgc3RhdGljLiAqLworICAgIGludCgqTUJFRFRMU19QUklWQVRFKG1vZHApKShtYmVkdGxzX21waSAqKTsgIC8qITwgVGhlIGZ1bmN0aW9uIGZvciBmYXN0IHBzZXVkby1yZWR1Y3Rpb24KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtb2QgXHAgUCAoc2VlIGFib3ZlKS4qLworICAgIGludCgqTUJFRFRMU19QUklWQVRFKHRfcHJlKSkobWJlZHRsc19lY3BfcG9pbnQgKiwgdm9pZCAqKTsgICAvKiE8IFVudXNlZC4gKi8KKyAgICBpbnQoKk1CRURUTFNfUFJJVkFURSh0X3Bvc3QpKShtYmVkdGxzX2VjcF9wb2ludCAqLCB2b2lkICopOyAgLyohPCBVbnVzZWQuICovCisgICAgdm9pZCAqTUJFRFRMU19QUklWQVRFKHRfZGF0YSk7ICAgICAgICAgICAgICAgLyohPCBVbnVzZWQuICovCisgICAgbWJlZHRsc19lY3BfcG9pbnQgKk1CRURUTFNfUFJJVkFURShUKTsgICAgICAgLyohPCBQcmUtY29tcHV0ZWQgcG9pbnRzIGZvciBlY3BfbXVsX2NvbWIoKS4gKi8KKyAgICBzaXplX3QgTUJFRFRMU19QUklWQVRFKFRfc2l6ZSk7ICAgICAgICAgICAgICAvKiE8IFRoZSBudW1iZXIgb2YgZHluYW1pYyBhbGxvY2F0ZWQgcHJlLWNvbXB1dGVkIHBvaW50cy4gKi8KK30KK21iZWR0bHNfZWNwX2dyb3VwOworCisvKioKKyAqIFxuYW1lIFNFQ1RJT046IE1vZHVsZSBzZXR0aW5ncworICoKKyAqIFRoZSBjb25maWd1cmF0aW9uIG9wdGlvbnMgeW91IGNhbiBzZXQgZm9yIHRoaXMgbW9kdWxlIGFyZSBpbiB0aGlzIHNlY3Rpb24uCisgKiBFaXRoZXIgY2hhbmdlIHRoZW0gaW4gbWJlZHRsc19jb25maWcuaCwgb3IgZGVmaW5lIHRoZW0gdXNpbmcgdGhlIGNvbXBpbGVyIGNvbW1hbmQgbGluZS4KKyAqIFx7CisgKi8KKworI2lmICFkZWZpbmVkKE1CRURUTFNfRUNQX1dJTkRPV19TSVpFKQorLyoKKyAqIE1heGltdW0gIndpbmRvdyIgc2l6ZSB1c2VkIGZvciBwb2ludCBtdWx0aXBsaWNhdGlvbi4KKyAqIERlZmF1bHQ6IGEgcG9pbnQgd2hlcmUgaGlnaGVyIG1lbW9yeSB1c2FnZSB5aWVsZHMgZGltaW5pc2hpbmcgcGVyZm9ybWFuY2UKKyAqICAgICAgICAgIHJldHVybnMuCisgKiBNaW5pbXVtIHZhbHVlOiAyLiBNYXhpbXVtIHZhbHVlOiA3LgorICoKKyAqIFJlc3VsdCBpcyBhbiBhcnJheSBvZiBhdCBtb3N0ICggMSA8PCAoIE1CRURUTFNfRUNQX1dJTkRPV19TSVpFIC0gMSApICkKKyAqIHBvaW50cyB1c2VkIGZvciBwb2ludCBtdWx0aXBsaWNhdGlvbi4gVGhpcyB2YWx1ZSBpcyBkaXJlY3RseSB0aWVkIHRvIEVDCisgKiBwZWFrIG1lbW9yeSB1c2FnZSwgc28gZGVjcmVhc2luZyBpdCBieSBvbmUgc2hvdWxkIHJvdWdobHkgY3V0IG1lbW9yeSB1c2FnZQorICogYnkgdHdvIChpZiBsYXJnZSBjdXJ2ZXMgYXJlIGluIHVzZSkuCisgKgorICogUmVkdWN0aW9uIGluIHNpemUgbWF5IHJlZHVjZSBzcGVlZCwgYnV0IGxhcmdlciBjdXJ2ZXMgYXJlIGltcGFjdGVkIGZpcnN0LgorICogU2FtcGxlIHBlcmZvcm1hbmNlcyAoaW4gRUNESEUgaGFuZHNoYWtlcy9zLCB3aXRoIEZJWEVEX1BPSU5UX09QVElNID0gMSk6CisgKiAgICAgIHctc2l6ZTogICAgIDYgICAgICAgNSAgICAgICA0ICAgICAgIDMgICAgICAgMgorICogICAgICA1MjEgICAgICAgMTQ1ICAgICAxNDEgICAgIDEzNSAgICAgMTIwICAgICAgOTcKKyAqICAgICAgMzg0ICAgICAgIDIxNCAgICAgMjA5ICAgICAxOTggICAgIDE3NyAgICAgMTQ2CisgKiAgICAgIDI1NiAgICAgICAzMjAgICAgIDMyMCAgICAgMzAzICAgICAyNjIgICAgIDIyNgorICogICAgICAyMjQgICAgICAgNDc1ICAgICA0NzUgICAgIDQ1MyAgICAgMzk4ICAgICAzNDIKKyAqICAgICAgMTkyICAgICAgIDY0MCAgICAgNjQwICAgICA2MzMgICAgIDU4NyAgICAgNDc2CisgKi8KKyNkZWZpbmUgTUJFRFRMU19FQ1BfV0lORE9XX1NJWkUgICAgNCAgIC8qKjwgVGhlIG1heGltdW0gd2luZG93IHNpemUgdXNlZC4gKi8KKyNlbmRpZiAvKiBNQkVEVExTX0VDUF9XSU5ET1dfU0laRSAqLworCisjaWYgIWRlZmluZWQoTUJFRFRMU19FQ1BfRklYRURfUE9JTlRfT1BUSU0pCisvKgorICogVHJhZGUgY29kZSBzaXplIGZvciBzcGVlZCBvbiBmaXhlZC1wb2ludCBtdWx0aXBsaWNhdGlvbi4KKyAqCisgKiBUaGlzIHNwZWVkcyB1cCByZXBlYXRlZCBtdWx0aXBsaWNhdGlvbiBvZiB0aGUgZ2VuZXJhdG9yICh0aGF0IGlzLCB0aGUKKyAqIG11bHRpcGxpY2F0aW9uIGluIEVDRFNBIHNpZ25hdHVyZXMsIGFuZCBoYWxmIG9mIHRoZSBtdWx0aXBsaWNhdGlvbnMgaW4KKyAqIEVDRFNBIHZlcmlmaWNhdGlvbiBhbmQgRUNESEUpIGJ5IGEgZmFjdG9yIHJvdWdobHkgMyB0byA0LgorICoKKyAqIEZvciBlYWNoIG4tYml0IFNob3J0IFdlaWVyc3RyYXNzIGN1cnZlIHRoYXQgaXMgZW5hYmxlZCwgdGhpcyBhZGRzIDRuIGJ5dGVzCisgKiBvZiBjb2RlIHNpemUgaWYgbiA8IDM4NCBhbmQgOG4gb3RoZXJ3aXNlLgorICoKKyAqIENoYW5nZSB0aGlzIHZhbHVlIHRvIDAgdG8gcmVkdWNlIGNvZGUgc2l6ZS4KKyAqLworI2RlZmluZSBNQkVEVExTX0VDUF9GSVhFRF9QT0lOVF9PUFRJTSAgMSAgIC8qKjwgRW5hYmxlIGZpeGVkLXBvaW50IHNwZWVkLXVwLiAqLworI2VuZGlmIC8qIE1CRURUTFNfRUNQX0ZJWEVEX1BPSU5UX09QVElNICovCisKKy8qKiBcfSBuYW1lIFNFQ1RJT046IE1vZHVsZSBzZXR0aW5ncyAqLworCisvKioKKyAqIFRoZSBtYXhpbXVtIHNpemUgb2YgdGhlIGdyb3VwcywgdGhhdCBpcywgb2YgXGMgTiBhbmQgXGMgUC4KKyAqLworI2lmICFkZWZpbmVkKE1CRURUTFNfRUNQX0xJR0hUKQorLyogRHVtbXkgZGVmaW5pdGlvbiB0byBoZWxwIGNvZGUgdGhhdCBoYXMgb3B0aW9uYWwgRUNQIHN1cHBvcnQgYW5kCisgKiBkZWZpbmVzIGFuIE1CRURUTFNfRUNQX01BWF9CWVRFUy1zaXplZCBhcnJheSB1bmNvbmRpdGlvbmFsbHkuICovCisjZGVmaW5lIE1CRURUTFNfRUNQX01BWF9CSVRTIDEKKy8qIE5vdGU6IHRoZSBjdXJ2ZXMgbXVzdCBiZSBsaXN0ZWQgaW4gREVDUkVBU0lORyBzaXplISAqLworI2VsaWYgZGVmaW5lZChNQkVEVExTX0VDUF9EUF9TRUNQNTIxUjFfRU5BQkxFRCkKKyNkZWZpbmUgTUJFRFRMU19FQ1BfTUFYX0JJVFMgNTIxCisjZWxpZiBkZWZpbmVkKE1CRURUTFNfRUNQX0RQX0JQNTEyUjFfRU5BQkxFRCkKKyNkZWZpbmUgTUJFRFRMU19FQ1BfTUFYX0JJVFMgNTEyCisjZWxpZiBkZWZpbmVkKE1CRURUTFNfRUNQX0RQX0NVUlZFNDQ4X0VOQUJMRUQpCisjZGVmaW5lIE1CRURUTFNfRUNQX01BWF9CSVRTIDQ0OAorI2VsaWYgZGVmaW5lZChNQkVEVExTX0VDUF9EUF9CUDM4NFIxX0VOQUJMRUQpCisjZGVmaW5lIE1CRURUTFNfRUNQX01BWF9CSVRTIDM4NAorI2VsaWYgZGVmaW5lZChNQkVEVExTX0VDUF9EUF9TRUNQMzg0UjFfRU5BQkxFRCkKKyNkZWZpbmUgTUJFRFRMU19FQ1BfTUFYX0JJVFMgMzg0CisjZWxpZiBkZWZpbmVkKE1CRURUTFNfRUNQX0RQX0JQMjU2UjFfRU5BQkxFRCkKKyNkZWZpbmUgTUJFRFRMU19FQ1BfTUFYX0JJVFMgMjU2CisjZWxpZiBkZWZpbmVkKE1CRURUTFNfRUNQX0RQX1NFQ1AyNTZLMV9FTkFCTEVEKQorI2RlZmluZSBNQkVEVExTX0VDUF9NQVhfQklUUyAyNTYKKyNlbGlmIGRlZmluZWQoTUJFRFRMU19FQ1BfRFBfU0VDUDI1NlIxX0VOQUJMRUQpCisjZGVmaW5lIE1CRURUTFNfRUNQX01BWF9CSVRTIDI1NgorI2VsaWYgZGVmaW5lZChNQkVEVExTX0VDUF9EUF9DVVJWRTI1NTE5X0VOQUJMRUQpCisjZGVmaW5lIE1CRURUTFNfRUNQX01BWF9CSVRTIDI1NQorI2VsaWYgZGVmaW5lZChNQkVEVExTX0VDUF9EUF9TRUNQMjI0SzFfRU5BQkxFRCkKKyNkZWZpbmUgTUJFRFRMU19FQ1BfTUFYX0JJVFMgMjI1IC8vIG4gaXMgc2xpZ2h0bHkgYWJvdmUgMl4yMjQKKyNlbGlmIGRlZmluZWQoTUJFRFRMU19FQ1BfRFBfU0VDUDIyNFIxX0VOQUJMRUQpCisjZGVmaW5lIE1CRURUTFNfRUNQX01BWF9CSVRTIDIyNAorI2VsaWYgZGVmaW5lZChNQkVEVExTX0VDUF9EUF9TRUNQMTkySzFfRU5BQkxFRCkKKyNkZWZpbmUgTUJFRFRMU19FQ1BfTUFYX0JJVFMgMTkyCisjZWxpZiBkZWZpbmVkKE1CRURUTFNfRUNQX0RQX1NFQ1AxOTJSMV9FTkFCTEVEKQorI2RlZmluZSBNQkVEVExTX0VDUF9NQVhfQklUUyAxOTIKKyNlbHNlIC8qICFNQkVEVExTX0VDUF9MSUdIVCAqLworI2Vycm9yICJNaXNzaW5nIGRlZmluaXRpb24gb2YgTUJFRFRMU19FQ1BfTUFYX0JJVFMiCisjZW5kaWYgLyogIU1CRURUTFNfRUNQX0xJR0hUICovCisKKyNkZWZpbmUgTUJFRFRMU19FQ1BfTUFYX0JZVEVTICAgICgoTUJFRFRMU19FQ1BfTUFYX0JJVFMgKyA3KSAvIDgpCisjZGVmaW5lIE1CRURUTFNfRUNQX01BWF9QVF9MRU4gICAoMiAqIE1CRURUTFNfRUNQX01BWF9CWVRFUyArIDEpCisKKyNpZiBkZWZpbmVkKE1CRURUTFNfRUNQX1JFU1RBUlRBQkxFKQorCisvKioKKyAqIFxicmllZiAgICAgICAgICAgSW50ZXJuYWwgcmVzdGFydCBjb250ZXh0IGZvciBtdWx0aXBsaWNhdGlvbgorICoKKyAqIFxub3RlICAgICAgICAgICAgT3BhcXVlIHN0cnVjdAorICovCit0eXBlZGVmIHN0cnVjdCBtYmVkdGxzX2VjcF9yZXN0YXJ0X211bCBtYmVkdGxzX2VjcF9yZXN0YXJ0X211bF9jdHg7CisKKy8qKgorICogXGJyaWVmICAgICAgICAgICBJbnRlcm5hbCByZXN0YXJ0IGNvbnRleHQgZm9yIGVjcF9tdWxhZGQoKQorICoKKyAqIFxub3RlICAgICAgICAgICAgT3BhcXVlIHN0cnVjdAorICovCit0eXBlZGVmIHN0cnVjdCBtYmVkdGxzX2VjcF9yZXN0YXJ0X211bGFkZCBtYmVkdGxzX2VjcF9yZXN0YXJ0X211bGFkZF9jdHg7CisKKy8qKgorICogXGJyaWVmICAgICAgICAgICBHZW5lcmFsIGNvbnRleHQgZm9yIHJlc3VtaW5nIEVDQyBvcGVyYXRpb25zCisgKi8KK3R5cGVkZWYgc3RydWN0IHsKKyAgICB1bnNpZ25lZCBNQkVEVExTX1BSSVZBVEUob3BzX2RvbmUpOyAgICAgICAgICAgICAgICAgIC8qITwgIGN1cnJlbnQgb3BzIGNvdW50ICAgICAgICAgICAgICovCisgICAgdW5zaWduZWQgTUJFRFRMU19QUklWQVRFKGRlcHRoKTsgICAgICAgICAgICAgICAgICAgICAvKiE8ICBjYWxsIGRlcHRoICgwID0gdG9wLWxldmVsKSAgICAqLworICAgIG1iZWR0bHNfZWNwX3Jlc3RhcnRfbXVsX2N0eCAqTUJFRFRMU19QUklWQVRFKHJzbSk7ICAgLyohPCAgZWNwX211bF9jb21iKCkgc3ViLWNvbnRleHQgICAgKi8KKyAgICBtYmVkdGxzX2VjcF9yZXN0YXJ0X211bGFkZF9jdHggKk1CRURUTFNfUFJJVkFURShtYSk7IC8qITwgIGVjcF9tdWxhZGQoKSBzdWItY29udGV4dCAgICAgICovCit9IG1iZWR0bHNfZWNwX3Jlc3RhcnRfY3R4OworCisvKgorICogT3BlcmF0aW9uIGNvdW50cyBmb3IgcmVzdGFydGFibGUgZnVuY3Rpb25zCisgKi8KKyNkZWZpbmUgTUJFRFRMU19FQ1BfT1BTX0NISyAgIDMgLyohPCBiYXNpYyBvcHMgY291bnQgZm9yIGVjcF9jaGVja19wdWJrZXkoKSAgKi8KKyNkZWZpbmUgTUJFRFRMU19FQ1BfT1BTX0RCTCAgIDggLyohPCBiYXNpYyBvcHMgY291bnQgZm9yIGVjcF9kb3VibGVfamFjKCkgICAgKi8KKyNkZWZpbmUgTUJFRFRMU19FQ1BfT1BTX0FERCAgMTEgLyohPCBiYXNpYyBvcHMgY291bnQgZm9yIHNlZSBlY3BfYWRkX21peGVkKCkgKi8KKyNkZWZpbmUgTUJFRFRMU19FQ1BfT1BTX0lOViAxMjAgLyohPCBlbXBpcmljYWwgZXF1aXZhbGVudCBmb3IgbXBpX21vZF9pbnYoKSAgKi8KKworLyoqCisgKiBcYnJpZWYgICAgICAgICAgIEludGVybmFsOyBmb3IgcmVzdGFydGFibGUgZnVuY3Rpb25zIGluIG90aGVyIG1vZHVsZXMuCisgKiAgICAgICAgICAgICAgICAgIENoZWNrIGFuZCB1cGRhdGUgYmFzaWMgb3BzIGJ1ZGdldC4KKyAqCisgKiBccGFyYW0gZ3JwICAgICAgIEdyb3VwIHN0cnVjdHVyZQorICogXHBhcmFtIHJzX2N0eCAgICBSZXN0YXJ0IGNvbnRleHQKKyAqIFxwYXJhbSBvcHMgICAgICAgTnVtYmVyIG9mIGJhc2ljIG9wcyB0byBkbworICoKKyAqIFxyZXR1cm4gICAgICAgICAgXGMgMCBpZiBkb2luZyBccCBvcHMgYmFzaWMgb3BzIGlzIHN0aWxsIGFsbG93ZWQsCisgKiBccmV0dXJuICAgICAgICAgICNNQkVEVExTX0VSUl9FQ1BfSU5fUFJPR1JFU1Mgb3RoZXJ3aXNlLgorICovCitpbnQgbWJlZHRsc19lY3BfY2hlY2tfYnVkZ2V0KGNvbnN0IG1iZWR0bHNfZWNwX2dyb3VwICpncnAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1iZWR0bHNfZWNwX3Jlc3RhcnRfY3R4ICpyc19jdHgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIG9wcyk7CisKKy8qIFV0aWxpdHkgbWFjcm8gZm9yIGNoZWNraW5nIGFuZCB1cGRhdGluZyBvcHMgYnVkZ2V0ICovCisjZGVmaW5lIE1CRURUTFNfRUNQX0JVREdFVChvcHMpICAgXAorICAgIE1CRURUTFNfTVBJX0NISyhtYmVkdGxzX2VjcF9jaGVja19idWRnZXQoZ3JwLCByc19jdHgsIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh1bnNpZ25lZCkgKG9wcykpKTsKKworI2Vsc2UgLyogTUJFRFRMU19FQ1BfUkVTVEFSVEFCTEUgKi8KKworI2RlZmluZSBNQkVEVExTX0VDUF9CVURHRVQob3BzKSAgICAgLyogbm8tb3A7IGZvciBjb21wYXRpYmlsaXR5ICovCisKKy8qIFdlIHdhbnQgdG8gZGVjbGFyZSByZXN0YXJ0YWJsZSB2ZXJzaW9ucyBvZiBleGlzdGluZyBmdW5jdGlvbnMgYW55d2F5ICovCit0eXBlZGVmIHZvaWQgbWJlZHRsc19lY3BfcmVzdGFydF9jdHg7CisKKyNlbmRpZiAvKiBNQkVEVExTX0VDUF9SRVNUQVJUQUJMRSAqLworCisvKioKKyAqIFxicmllZiAgICBUaGUgRUNQIGtleS1wYWlyIHN0cnVjdHVyZS4KKyAqCisgKiBBIGdlbmVyaWMga2V5LXBhaXIgdGhhdCBtYXkgYmUgdXNlZCBmb3IgRUNEU0EgYW5kIGZpeGVkIEVDREgsIGZvciBleGFtcGxlLgorICoKKyAqIFxub3RlICAgIE1lbWJlcnMgYXJlIGRlbGliZXJhdGVseSBpbiB0aGUgc2FtZSBvcmRlciBhcyBpbiB0aGUKKyAqICAgICAgICAgIDo6bWJlZHRsc19lY2RzYV9jb250ZXh0IHN0cnVjdHVyZS4KKyAqLwordHlwZWRlZiBzdHJ1Y3QgbWJlZHRsc19lY3Bfa2V5cGFpciB7CisgICAgbWJlZHRsc19lY3BfZ3JvdXAgTUJFRFRMU19QUklWQVRFKGdycCk7ICAgICAgLyohPCAgRWxsaXB0aWMgY3VydmUgYW5kIGJhc2UgcG9pbnQgICAgICovCisgICAgbWJlZHRsc19tcGkgTUJFRFRMU19QUklWQVRFKGQpOyAgICAgICAgICAgICAgLyohPCAgb3VyIHNlY3JldCB2YWx1ZSAgICAgICAgICAgICAgICAgICovCisgICAgbWJlZHRsc19lY3BfcG9pbnQgTUJFRFRMU19QUklWQVRFKFEpOyAgICAgICAgLyohPCAgb3VyIHB1YmxpYyB2YWx1ZSAgICAgICAgICAgICAgICAgICovCit9CittYmVkdGxzX2VjcF9rZXlwYWlyOworCisvKioKKyAqIFRoZSB1bmNvbXByZXNzZWQgcG9pbnQgZm9ybWF0IGZvciBTaG9ydCBXZWllcnN0cmFzcyBjdXJ2ZXMKKyAqIChNQkVEVExTX0VDUF9EUF9TRUNQX1hYWCBhbmQgTUJFRFRMU19FQ1BfRFBfQlBfWFhYKS4KKyAqLworI2RlZmluZSBNQkVEVExTX0VDUF9QRl9VTkNPTVBSRVNTRUQgICAgMAorLyoqCisgKiBUaGUgY29tcHJlc3NlZCBwb2ludCBmb3JtYXQgZm9yIFNob3J0IFdlaWVyc3RyYXNzIGN1cnZlcworICogKE1CRURUTFNfRUNQX0RQX1NFQ1BfWFhYIGFuZCBNQkVEVExTX0VDUF9EUF9CUF9YWFgpLgorICoKKyAqIFx3YXJuaW5nICAgICBXaGlsZSB0aGlzIGZvcm1hdCBpcyBzdXBwb3J0ZWQgZm9yIGFsbCBjb25jZXJuZWQgY3VydmVzIGZvcgorICogICAgICAgICAgICAgIHdyaXRpbmcsIHdoZW4gaXQgY29tZXMgdG8gcGFyc2luZywgaXQgaXMgbm90IHN1cHBvcnRlZCBmb3IgYWxsCisgKiAgICAgICAgICAgICAgY3VydmVzLiBTcGVjaWZpY2FsbHksIHBhcnNpbmcgY29tcHJlc3NlZCBwb2ludHMgb24KKyAqICAgICAgICAgICAgICBNQkVEVExTX0VDUF9EUF9TRUNQMjI0UjEgYW5kIE1CRURUTFNfRUNQX0RQX1NFQ1AyMjRLMSBpcyBub3QKKyAqICAgICAgICAgICAgICBzdXBwb3J0ZWQuCisgKi8KKyNkZWZpbmUgTUJFRFRMU19FQ1BfUEZfQ09NUFJFU1NFRCAgICAgIDEKKworLyoKKyAqIFNvbWUgb3RoZXIgY29uc3RhbnRzIGZyb20gUkZDIDQ0OTIKKyAqLworI2RlZmluZSBNQkVEVExTX0VDUF9UTFNfTkFNRURfQ1VSVkUgICAgMyAgIC8qKjwgVGhlIG5hbWVkX2N1cnZlIG9mIEVDQ3VydmVUeXBlLiAqLworCisjaWYgZGVmaW5lZChNQkVEVExTX0VDUF9SRVNUQVJUQUJMRSkKKy8qKgorICogXGJyaWVmICAgICAgICAgICBTZXQgdGhlIG1heGltdW0gbnVtYmVyIG9mIGJhc2ljIG9wZXJhdGlvbnMgZG9uZSBpbiBhIHJvdy4KKyAqCisgKiAgICAgICAgICAgICAgICAgIElmIG1vcmUgb3BlcmF0aW9ucyBhcmUgbmVlZGVkIHRvIGNvbXBsZXRlIGEgY29tcHV0YXRpb24sCisgKiAgICAgICAgICAgICAgICAgICNNQkVEVExTX0VSUl9FQ1BfSU5fUFJPR1JFU1Mgd2lsbCBiZSByZXR1cm5lZCBieSB0aGUKKyAqICAgICAgICAgICAgICAgICAgZnVuY3Rpb24gcGVyZm9ybWluZyB0aGUgY29tcHV0YXRpb24uIEl0IGlzIHRoZW4gdGhlCisgKiAgICAgICAgICAgICAgICAgIGNhbGxlcidzIHJlc3BvbnNpYmlsaXR5IHRvIGVpdGhlciBjYWxsIGFnYWluIHdpdGggdGhlIHNhbWUKKyAqICAgICAgICAgICAgICAgICAgcGFyYW1ldGVycyB1bnRpbCBpdCByZXR1cm5zIDAgb3IgYW4gZXJyb3IgY29kZTsgb3IgdG8gZnJlZQorICogICAgICAgICAgICAgICAgICB0aGUgcmVzdGFydCBjb250ZXh0IGlmIHRoZSBvcGVyYXRpb24gaXMgdG8gYmUgYWJvcnRlZC4KKyAqCisgKiAgICAgICAgICAgICAgICAgIEl0IGlzIHN0cmljdGx5IHJlcXVpcmVkIHRoYXQgYWxsIGlucHV0IHBhcmFtZXRlcnMgYW5kIHRoZQorICogICAgICAgICAgICAgICAgICByZXN0YXJ0IGNvbnRleHQgYmUgdGhlIHNhbWUgb24gc3VjY2Vzc2l2ZSBjYWxscyBmb3IgdGhlCisgKiAgICAgICAgICAgICAgICAgIHNhbWUgb3BlcmF0aW9uLCBidXQgb3V0cHV0IHBhcmFtZXRlcnMgbmVlZCBub3QgYmUgdGhlCisgKiAgICAgICAgICAgICAgICAgIHNhbWU7IHRoZXkgbXVzdCBub3QgYmUgdXNlZCB1bnRpbCB0aGUgZnVuY3Rpb24gZmluYWxseQorICogICAgICAgICAgICAgICAgICByZXR1cm5zIDAuCisgKgorICogICAgICAgICAgICAgICAgICBUaGlzIG9ubHkgYXBwbGllcyB0byBmdW5jdGlvbnMgd2hvc2UgZG9jdW1lbnRhdGlvbgorICogICAgICAgICAgICAgICAgICBtZW50aW9ucyB0aGV5IG1heSByZXR1cm4gI01CRURUTFNfRVJSX0VDUF9JTl9QUk9HUkVTUyAob3IKKyAqICAgICAgICAgICAgICAgICAgI01CRURUTFNfRVJSX1NTTF9DUllQVE9fSU5fUFJPR1JFU1MgZm9yIGZ1bmN0aW9ucyBpbiB0aGUKKyAqICAgICAgICAgICAgICAgICAgU1NMIG1vZHVsZSkuIEZvciBmdW5jdGlvbnMgdGhhdCBhY2NlcHQgYSAicmVzdGFydCBjb250ZXh0IgorICogICAgICAgICAgICAgICAgICBhcmd1bWVudCwgcGFzc2luZyBOVUxMIGRpc2FibGVzIHJlc3RhcnQgYW5kIG1ha2VzIHRoZQorICogICAgICAgICAgICAgICAgICBmdW5jdGlvbiBlcXVpdmFsZW50IHRvIHRoZSBmdW5jdGlvbiB3aXRoIHRoZSBzYW1lIG5hbWUKKyAqICAgICAgICAgICAgICAgICAgd2l0aCBcYyBfcmVzdGFydGFibGUgcmVtb3ZlZC4gRm9yIGZ1bmN0aW9ucyBpbiB0aGUgRUNESAorICogICAgICAgICAgICAgICAgICBtb2R1bGUsIHJlc3RhcnQgaXMgZGlzYWJsZWQgdW5sZXNzIHRoZSBmdW5jdGlvbiBhY2NlcHRzCisgKiAgICAgICAgICAgICAgICAgIGFuICJFQ0RIIGNvbnRleHQiIGFyZ3VtZW50IGFuZAorICogICAgICAgICAgICAgICAgICBtYmVkdGxzX2VjZGhfZW5hYmxlX3Jlc3RhcnQoKSB3YXMgcHJldmlvdXNseSBjYWxsZWQgb24KKyAqICAgICAgICAgICAgICAgICAgdGhhdCBjb250ZXh0LiBGb3IgZnVuY3Rpb24gaW4gdGhlIFNTTCBtb2R1bGUsIHJlc3RhcnQgaXMKKyAqICAgICAgICAgICAgICAgICAgb25seSBlbmFibGVkIGZvciBzcGVjaWZpYyBzaWRlcyBhbmQga2V5IGV4Y2hhbmdlcworICogICAgICAgICAgICAgICAgICAoY3VycmVudGx5IG9ubHkgZm9yIGNsaWVudHMgYW5kIEVDREhFLUVDRFNBKS4KKyAqCisgKiBcd2FybmluZyAgICAgICAgIFVzaW5nIHRoZSBQU0EgaW50ZXJydXB0aWJsZSBpbnRlcmZhY2VzIHdpdGgga2V5cyBpbiBsb2NhbAorICogICAgICAgICAgICAgICAgICBzdG9yYWdlIGFuZCBubyBhY2NlbGVyYXRvciBkcml2ZXIgd2lsbCBhbHNvIGNhbGwgdGhpcworICogICAgICAgICAgICAgICAgICBmdW5jdGlvbiB0byBzZXQgdGhlIHZhbHVlcyBzcGVjaWZpZWQgdmlhIHRob3NlIGludGVyZmFjZXMsCisgKiAgICAgICAgICAgICAgICAgIG92ZXJ3cml0aW5nIHZhbHVlcyBwcmV2aW91c2x5IHNldC4gQ2FyZSBzaG91bGQgYmUgdGFrZW4gaWYKKyAqICAgICAgICAgICAgICAgICAgbWl4aW5nIHRoZXNlIHR3byBpbnRlcmZhY2VzLgorICoKKyAqIFxwYXJhbSBtYXhfb3BzICAgTWF4aW11bSBudW1iZXIgb2YgYmFzaWMgb3BlcmF0aW9ucyBkb25lIGluIGEgcm93LgorICogICAgICAgICAgICAgICAgICBEZWZhdWx0OiAwICh1bmxpbWl0ZWQpLgorICogICAgICAgICAgICAgICAgICBMb3dlciAobm9uLXplcm8pIHZhbHVlcyBtZWFuIEVDQyBmdW5jdGlvbnMgd2lsbCBibG9jayBmb3IKKyAqICAgICAgICAgICAgICAgICAgYSBsZXNzZXIgbWF4aW11bSBhbW91bnQgb2YgdGltZS4KKyAqCisgKiBcbm90ZSAgICAgICAgICAgIEEgImJhc2ljIG9wZXJhdGlvbiIgaXMgZGVmaW5lZCBhcyBhIHJvdWdoIGVxdWl2YWxlbnQgb2YgYQorICogICAgICAgICAgICAgICAgICBtdWx0aXBsaWNhdGlvbiBpbiBHRihwKSBmb3IgdGhlIE5JU1QgUC0yNTYgY3VydmUuCisgKiAgICAgICAgICAgICAgICAgIEFzIGFuIGluZGljYXRpb24sIHdpdGggZGVmYXVsdCBzZXR0aW5ncywgYSBzY2FsYXIKKyAqICAgICAgICAgICAgICAgICAgbXVsdGlwbGljYXRpb24gKGZ1bGwgcnVuIG9mIFxjIG1iZWR0bHNfZWNwX211bCgpKSBpczoKKyAqICAgICAgICAgICAgICAgICAgLSBhYm91dCAzMzAwIGJhc2ljIG9wZXJhdGlvbnMgZm9yIFAtMjU2CisgKiAgICAgICAgICAgICAgICAgIC0gYWJvdXQgOTQwMCBiYXNpYyBvcGVyYXRpb25zIGZvciBQLTM4NAorICoKKyAqIFxub3RlICAgICAgICAgICAgVmVyeSBsb3cgdmFsdWVzIGFyZSBub3QgYWx3YXlzIHJlc3BlY3RlZDogc29tZXRpbWVzCisgKiAgICAgICAgICAgICAgICAgIGZ1bmN0aW9ucyBuZWVkIHRvIGJsb2NrIGZvciBhIG1pbmltdW0gbnVtYmVyIG9mCisgKiAgICAgICAgICAgICAgICAgIG9wZXJhdGlvbnMsIGFuZCB3aWxsIGRvIHNvIGV2ZW4gaWYgbWF4X29wcyBpcyBzZXQgdG8gYQorICogICAgICAgICAgICAgICAgICBsb3dlciB2YWx1ZS4gIFRoYXQgbWluaW11bSBkZXBlbmRzIG9uIHRoZSBjdXJ2ZSBzaXplLCBhbmQKKyAqICAgICAgICAgICAgICAgICAgY2FuIGJlIG1hZGUgbG93ZXIgYnkgZGVjcmVhc2luZyB0aGUgdmFsdWUgb2YKKyAqICAgICAgICAgICAgICAgICAgXGMgTUJFRFRMU19FQ1BfV0lORE9XX1NJWkUuICBBcyBhbiBpbmRpY2F0aW9uLCBoZXJlIGlzIHRoZQorICogICAgICAgICAgICAgICAgICBsb3dlc3QgZWZmZWN0aXZlIHZhbHVlIGZvciB2YXJpb3VzIGN1cnZlcyBhbmQgdmFsdWVzIG9mCisgKiAgICAgICAgICAgICAgICAgIHRoYXQgcGFyYW1ldGVyICh3IGZvciBzaG9ydCk6CisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgdz02ICAgICB3PTUgICAgIHc9NCAgICAgdz0zICAgICB3PTIKKyAqICAgICAgICAgICAgICAgICAgUC0yNTYgICAyMDggICAgIDIwOCAgICAgMTYwICAgICAxMzYgICAgIDEyNAorICogICAgICAgICAgICAgICAgICBQLTM4NCAgIDY4MiAgICAgNDE2ICAgICAzMjAgICAgIDI3MiAgICAgMjQ4CisgKiAgICAgICAgICAgICAgICAgIFAtNTIxICAxMzY0ICAgICA4MzIgICAgIDY0MCAgICAgNTQ0ICAgICA0OTYKKyAqCisgKiBcbm90ZSAgICAgICAgICAgIFRoaXMgc2V0dGluZyBpcyBjdXJyZW50bHkgaWdub3JlZCBieSBDdXJ2ZTI1NTE5LgorICovCit2b2lkIG1iZWR0bHNfZWNwX3NldF9tYXhfb3BzKHVuc2lnbmVkIG1heF9vcHMpOworCisvKioKKyAqIFxicmllZiAgICAgICAgICAgQ2hlY2sgaWYgcmVzdGFydCBpcyBlbmFibGVkIChtYXhfb3BzICE9IDApCisgKgorICogXHJldHVybiAgICAgICAgICBcYyAwIGlmIFxjIG1heF9vcHMgPT0gMCAocmVzdGFydCBkaXNhYmxlZCkKKyAqIFxyZXR1cm4gICAgICAgICAgXGMgMSBvdGhlcndpc2UgKHJlc3RhcnQgZW5hYmxlZCkKKyAqLworaW50IG1iZWR0bHNfZWNwX3Jlc3RhcnRfaXNfZW5hYmxlZCh2b2lkKTsKKyNlbmRpZiAvKiBNQkVEVExTX0VDUF9SRVNUQVJUQUJMRSAqLworCisvKgorICogR2V0IHRoZSB0eXBlIG9mIGEgY3VydmUKKyAqLworbWJlZHRsc19lY3BfY3VydmVfdHlwZSBtYmVkdGxzX2VjcF9nZXRfdHlwZShjb25zdCBtYmVkdGxzX2VjcF9ncm91cCAqZ3JwKTsKKworLyoqCisgKiBcYnJpZWYgICAgICAgICAgIFRoaXMgZnVuY3Rpb24gcmV0cmlldmVzIHRoZSBpbmZvcm1hdGlvbiBkZWZpbmVkIGluCisgKiAgICAgICAgICAgICAgICAgIG1iZWR0bHNfZWNwX2N1cnZlX2luZm8oKSBmb3IgYWxsIHN1cHBvcnRlZCBjdXJ2ZXMuCisgKgorICogXG5vdGUgICAgICAgICAgICBUaGlzIGZ1bmN0aW9uIHJldHVybnMgaW5mb3JtYXRpb24gYWJvdXQgYWxsIGN1cnZlcworICogICAgICAgICAgICAgICAgICBzdXBwb3J0ZWQgYnkgdGhlIGxpYnJhcnkuIFNvbWUgY3VydmVzIG1heSBub3QgYmUKKyAqICAgICAgICAgICAgICAgICAgc3VwcG9ydGVkIGZvciBhbGwgYWxnb3JpdGhtcy4gQ2FsbCBtYmVkdGxzX2VjZGhfY2FuX2RvKCkKKyAqICAgICAgICAgICAgICAgICAgb3IgbWJlZHRsc19lY2RzYV9jYW5fZG8oKSB0byBjaGVjayBpZiBhIGN1cnZlIGlzCisgKiAgICAgICAgICAgICAgICAgIHN1cHBvcnRlZCBmb3IgRUNESCBvciBFQ0RTQS4KKyAqCisgKiBccmV0dXJuICAgICAgICAgIEEgc3RhdGljYWxseSBhbGxvY2F0ZWQgYXJyYXkuIFRoZSBsYXN0IGVudHJ5IGlzIDAuCisgKi8KK2NvbnN0IG1iZWR0bHNfZWNwX2N1cnZlX2luZm8gKm1iZWR0bHNfZWNwX2N1cnZlX2xpc3Qodm9pZCk7CisKKy8qKgorICogXGJyaWVmICAgICAgICAgICBUaGlzIGZ1bmN0aW9uIHJldHJpZXZlcyB0aGUgbGlzdCBvZiBpbnRlcm5hbCBncm91cAorICogICAgICAgICAgICAgICAgICBpZGVudGlmaWVycyBvZiBhbGwgc3VwcG9ydGVkIGN1cnZlcyBpbiB0aGUgb3JkZXIgb2YKKyAqICAgICAgICAgICAgICAgICAgcHJlZmVyZW5jZS4KKyAqCisgKiBcbm90ZSAgICAgICAgICAgIFRoaXMgZnVuY3Rpb24gcmV0dXJucyBpbmZvcm1hdGlvbiBhYm91dCBhbGwgY3VydmVzCisgKiAgICAgICAgICAgICAgICAgIHN1cHBvcnRlZCBieSB0aGUgbGlicmFyeS4gU29tZSBjdXJ2ZXMgbWF5IG5vdCBiZQorICogICAgICAgICAgICAgICAgICBzdXBwb3J0ZWQgZm9yIGFsbCBhbGdvcml0aG1zLiBDYWxsIG1iZWR0bHNfZWNkaF9jYW5fZG8oKQorICogICAgICAgICAgICAgICAgICBvciBtYmVkdGxzX2VjZHNhX2Nhbl9kbygpIHRvIGNoZWNrIGlmIGEgY3VydmUgaXMKKyAqICAgICAgICAgICAgICAgICAgc3VwcG9ydGVkIGZvciBFQ0RIIG9yIEVDRFNBLgorICoKKyAqIFxyZXR1cm4gICAgICAgICAgQSBzdGF0aWNhbGx5IGFsbG9jYXRlZCBhcnJheSwKKyAqICAgICAgICAgICAgICAgICAgdGVybWluYXRlZCB3aXRoIE1CRURUTFNfRUNQX0RQX05PTkUuCisgKi8KK2NvbnN0IG1iZWR0bHNfZWNwX2dyb3VwX2lkICptYmVkdGxzX2VjcF9ncnBfaWRfbGlzdCh2b2lkKTsKKworLyoqCisgKiBcYnJpZWYgICAgICAgICAgIFRoaXMgZnVuY3Rpb24gcmV0cmlldmVzIGN1cnZlIGluZm9ybWF0aW9uIGZyb20gYW4gaW50ZXJuYWwKKyAqICAgICAgICAgICAgICAgICAgZ3JvdXAgaWRlbnRpZmllci4KKyAqCisgKiBccGFyYW0gZ3JwX2lkICAgIEFuIFxjIE1CRURUTFNfRUNQX0RQX1hYWCB2YWx1ZS4KKyAqCisgKiBccmV0dXJuICAgICAgICAgIFRoZSBhc3NvY2lhdGVkIGN1cnZlIGluZm9ybWF0aW9uIG9uIHN1Y2Nlc3MuCisgKiBccmV0dXJuICAgICAgICAgIE5VTEwgb24gZmFpbHVyZS4KKyAqLworY29uc3QgbWJlZHRsc19lY3BfY3VydmVfaW5mbyAqbWJlZHRsc19lY3BfY3VydmVfaW5mb19mcm9tX2dycF9pZChtYmVkdGxzX2VjcF9ncm91cF9pZCBncnBfaWQpOworCisvKioKKyAqIFxicmllZiAgICAgICAgICAgVGhpcyBmdW5jdGlvbiByZXRyaWV2ZXMgY3VydmUgaW5mb3JtYXRpb24gZnJvbSBhIFRMUworICogICAgICAgICAgICAgICAgICBOYW1lZEN1cnZlIHZhbHVlLgorICoKKyAqIFxwYXJhbSB0bHNfaWQgICAgQW4gXGMgTUJFRFRMU19FQ1BfRFBfWFhYIHZhbHVlLgorICoKKyAqIFxyZXR1cm4gICAgICAgICAgVGhlIGFzc29jaWF0ZWQgY3VydmUgaW5mb3JtYXRpb24gb24gc3VjY2Vzcy4KKyAqIFxyZXR1cm4gICAgICAgICAgTlVMTCBvbiBmYWlsdXJlLgorICovCitjb25zdCBtYmVkdGxzX2VjcF9jdXJ2ZV9pbmZvICptYmVkdGxzX2VjcF9jdXJ2ZV9pbmZvX2Zyb21fdGxzX2lkKHVpbnQxNl90IHRsc19pZCk7CisKKy8qKgorICogXGJyaWVmICAgICAgICAgICBUaGlzIGZ1bmN0aW9uIHJldHJpZXZlcyBjdXJ2ZSBpbmZvcm1hdGlvbiBmcm9tIGEKKyAqICAgICAgICAgICAgICAgICAgaHVtYW4tcmVhZGFibGUgbmFtZS4KKyAqCisgKiBccGFyYW0gbmFtZSAgICAgIFRoZSBodW1hbi1yZWFkYWJsZSBuYW1lLgorICoKKyAqIFxyZXR1cm4gICAgICAgICAgVGhlIGFzc29jaWF0ZWQgY3VydmUgaW5mb3JtYXRpb24gb24gc3VjY2Vzcy4KKyAqIFxyZXR1cm4gICAgICAgICAgTlVMTCBvbiBmYWlsdXJlLgorICovCitjb25zdCBtYmVkdGxzX2VjcF9jdXJ2ZV9pbmZvICptYmVkdGxzX2VjcF9jdXJ2ZV9pbmZvX2Zyb21fbmFtZShjb25zdCBjaGFyICpuYW1lKTsKKworLyoqCisgKiBcYnJpZWYgICAgICAgICAgIFRoaXMgZnVuY3Rpb24gaW5pdGlhbGl6ZXMgYSBwb2ludCBhcyB6ZXJvLgorICoKKyAqIFxwYXJhbSBwdCAgICAgICAgVGhlIHBvaW50IHRvIGluaXRpYWxpemUuCisgKi8KK3ZvaWQgbWJlZHRsc19lY3BfcG9pbnRfaW5pdChtYmVkdGxzX2VjcF9wb2ludCAqcHQpOworCisvKioKKyAqIFxicmllZiAgICAgICAgICAgVGhpcyBmdW5jdGlvbiBpbml0aWFsaXplcyBhbiBFQ1AgZ3JvdXAgY29udGV4dAorICogICAgICAgICAgICAgICAgICB3aXRob3V0IGxvYWRpbmcgYW55IGRvbWFpbiBwYXJhbWV0ZXJzLgorICoKKyAqIFxub3RlICAgICAgICAgICAgQWZ0ZXIgdGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQsIGRvbWFpbiBwYXJhbWV0ZXJzCisgKiAgICAgICAgICAgICAgICAgIGZvciB2YXJpb3VzIEVDUCBncm91cHMgY2FuIGJlIGxvYWRlZCB0aHJvdWdoIHRoZQorICogICAgICAgICAgICAgICAgICBtYmVkdGxzX2VjcF9ncm91cF9sb2FkKCkgb3IgbWJlZHRsc19lY3BfdGxzX3JlYWRfZ3JvdXAoKQorICogICAgICAgICAgICAgICAgICBmdW5jdGlvbnMuCisgKi8KK3ZvaWQgbWJlZHRsc19lY3BfZ3JvdXBfaW5pdChtYmVkdGxzX2VjcF9ncm91cCAqZ3JwKTsKKworLyoqCisgKiBcYnJpZWYgICAgICAgICAgIFRoaXMgZnVuY3Rpb24gaW5pdGlhbGl6ZXMgYSBrZXkgcGFpciBhcyBhbiBpbnZhbGlkIG9uZS4KKyAqCisgKiBccGFyYW0ga2V5ICAgICAgIFRoZSBrZXkgcGFpciB0byBpbml0aWFsaXplLgorICovCit2b2lkIG1iZWR0bHNfZWNwX2tleXBhaXJfaW5pdChtYmVkdGxzX2VjcF9rZXlwYWlyICprZXkpOworCisvKioKKyAqIFxicmllZiAgICAgICAgICAgVGhpcyBmdW5jdGlvbiBmcmVlcyB0aGUgY29tcG9uZW50cyBvZiBhIHBvaW50LgorICoKKyAqIFxwYXJhbSBwdCAgICAgICAgVGhlIHBvaW50IHRvIGZyZWUuCisgKi8KK3ZvaWQgbWJlZHRsc19lY3BfcG9pbnRfZnJlZShtYmVkdGxzX2VjcF9wb2ludCAqcHQpOworCisvKioKKyAqIFxicmllZiAgICAgICAgICAgVGhpcyBmdW5jdGlvbiBmcmVlcyB0aGUgY29tcG9uZW50cyBvZiBhbiBFQ1AgZ3JvdXAuCisgKgorICogXHBhcmFtIGdycCAgICAgICBUaGUgZ3JvdXAgdG8gZnJlZS4gVGhpcyBtYXkgYmUgXGMgTlVMTCwgaW4gd2hpY2gKKyAqICAgICAgICAgICAgICAgICAgY2FzZSB0aGlzIGZ1bmN0aW9uIHJldHVybnMgaW1tZWRpYXRlbHkuIElmIGl0IGlzIG5vdAorICogICAgICAgICAgICAgICAgICBcYyBOVUxMLCBpdCBtdXN0IHBvaW50IHRvIGFuIGluaXRpYWxpemVkIEVDUCBncm91cC4KKyAqLwordm9pZCBtYmVkdGxzX2VjcF9ncm91cF9mcmVlKG1iZWR0bHNfZWNwX2dyb3VwICpncnApOworCisvKioKKyAqIFxicmllZiAgICAgICAgICAgVGhpcyBmdW5jdGlvbiBmcmVlcyB0aGUgY29tcG9uZW50cyBvZiBhIGtleSBwYWlyLgorICoKKyAqIFxwYXJhbSBrZXkgICAgICAgVGhlIGtleSBwYWlyIHRvIGZyZWUuIFRoaXMgbWF5IGJlIFxjIE5VTEwsIGluIHdoaWNoCisgKiAgICAgICAgICAgICAgICAgIGNhc2UgdGhpcyBmdW5jdGlvbiByZXR1cm5zIGltbWVkaWF0ZWx5LiBJZiBpdCBpcyBub3QKKyAqICAgICAgICAgICAgICAgICAgXGMgTlVMTCwgaXQgbXVzdCBwb2ludCB0byBhbiBpbml0aWFsaXplZCBFQ1Aga2V5IHBhaXIuCisgKi8KK3ZvaWQgbWJlZHRsc19lY3Bfa2V5cGFpcl9mcmVlKG1iZWR0bHNfZWNwX2tleXBhaXIgKmtleSk7CisKKyNpZiBkZWZpbmVkKE1CRURUTFNfRUNQX1JFU1RBUlRBQkxFKQorLyoqCisgKiBcYnJpZWYgICAgICAgICAgIEluaXRpYWxpemUgYSByZXN0YXJ0IGNvbnRleHQuCisgKgorICogXHBhcmFtIGN0eCAgICAgICBUaGUgcmVzdGFydCBjb250ZXh0IHRvIGluaXRpYWxpemUuIFRoaXMgbXVzdAorICogICAgICAgICAgICAgICAgICBub3QgYmUgXGMgTlVMTC4KKyAqLwordm9pZCBtYmVkdGxzX2VjcF9yZXN0YXJ0X2luaXQobWJlZHRsc19lY3BfcmVzdGFydF9jdHggKmN0eCk7CisKKy8qKgorICogXGJyaWVmICAgICAgICAgICBGcmVlIHRoZSBjb21wb25lbnRzIG9mIGEgcmVzdGFydCBjb250ZXh0LgorICoKKyAqIFxwYXJhbSBjdHggICAgICAgVGhlIHJlc3RhcnQgY29udGV4dCB0byBmcmVlLiBUaGlzIG1heSBiZSBcYyBOVUxMLCBpbiB3aGljaAorICogICAgICAgICAgICAgICAgICBjYXNlIHRoaXMgZnVuY3Rpb24gcmV0dXJucyBpbW1lZGlhdGVseS4gSWYgaXQgaXMgbm90CisgKiAgICAgICAgICAgICAgICAgIFxjIE5VTEwsIGl0IG11c3QgcG9pbnQgdG8gYW4gaW5pdGlhbGl6ZWQgcmVzdGFydCBjb250ZXh0LgorICovCit2b2lkIG1iZWR0bHNfZWNwX3Jlc3RhcnRfZnJlZShtYmVkdGxzX2VjcF9yZXN0YXJ0X2N0eCAqY3R4KTsKKyNlbmRpZiAvKiBNQkVEVExTX0VDUF9SRVNUQVJUQUJMRSAqLworCisvKioKKyAqIFxicmllZiAgICAgICAgICAgVGhpcyBmdW5jdGlvbiBjb3BpZXMgdGhlIGNvbnRlbnRzIG9mIHBvaW50IFxwIFEgaW50bworICogICAgICAgICAgICAgICAgICBwb2ludCBccCBQLgorICoKKyAqIFxwYXJhbSBQICAgICAgICAgVGhlIGRlc3RpbmF0aW9uIHBvaW50LiBUaGlzIG11c3QgYmUgaW5pdGlhbGl6ZWQuCisgKiBccGFyYW0gUSAgICAgICAgIFRoZSBzb3VyY2UgcG9pbnQuIFRoaXMgbXVzdCBiZSBpbml0aWFsaXplZC4KKyAqCisgKiBccmV0dXJuICAgICAgICAgIFxjIDAgb24gc3VjY2Vzcy4KKyAqIFxyZXR1cm4gICAgICAgICAgI01CRURUTFNfRVJSX01QSV9BTExPQ19GQUlMRUQgb24gbWVtb3J5LWFsbG9jYXRpb24gZmFpbHVyZS4KKyAqIFxyZXR1cm4gICAgICAgICAgQW5vdGhlciBuZWdhdGl2ZSBlcnJvciBjb2RlIGZvciBvdGhlciBraW5kcyBvZiBmYWlsdXJlLgorICovCitpbnQgbWJlZHRsc19lY3BfY29weShtYmVkdGxzX2VjcF9wb2ludCAqUCwgY29uc3QgbWJlZHRsc19lY3BfcG9pbnQgKlEpOworCisvKioKKyAqIFxicmllZiAgICAgICAgICAgVGhpcyBmdW5jdGlvbiBjb3BpZXMgdGhlIGNvbnRlbnRzIG9mIGdyb3VwIFxwIHNyYyBpbnRvCisgKiAgICAgICAgICAgICAgICAgIGdyb3VwIFxwIGRzdC4KKyAqCisgKiBccGFyYW0gZHN0ICAgICAgIFRoZSBkZXN0aW5hdGlvbiBncm91cC4gVGhpcyBtdXN0IGJlIGluaXRpYWxpemVkLgorICogXHBhcmFtIHNyYyAgICAgICBUaGUgc291cmNlIGdyb3VwLiBUaGlzIG11c3QgYmUgaW5pdGlhbGl6ZWQuCisgKgorICogXHJldHVybiAgICAgICAgICBcYyAwIG9uIHN1Y2Nlc3MuCisgKiBccmV0dXJuICAgICAgICAgICNNQkVEVExTX0VSUl9NUElfQUxMT0NfRkFJTEVEIG9uIG1lbW9yeS1hbGxvY2F0aW9uIGZhaWx1cmUuCisgKiBccmV0dXJuICAgICAgICAgIEFub3RoZXIgbmVnYXRpdmUgZXJyb3IgY29kZSBvbiBvdGhlciBraW5kcyBvZiBmYWlsdXJlLgorICovCitpbnQgbWJlZHRsc19lY3BfZ3JvdXBfY29weShtYmVkdGxzX2VjcF9ncm91cCAqZHN0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbWJlZHRsc19lY3BfZ3JvdXAgKnNyYyk7CisKKy8qKgorICogXGJyaWVmICAgICAgICAgICBUaGlzIGZ1bmN0aW9uIHNldHMgYSBwb2ludCB0byB0aGUgcG9pbnQgYXQgaW5maW5pdHkuCisgKgorICogXHBhcmFtIHB0ICAgICAgICBUaGUgcG9pbnQgdG8gc2V0LiBUaGlzIG11c3QgYmUgaW5pdGlhbGl6ZWQuCisgKgorICogXHJldHVybiAgICAgICAgICBcYyAwIG9uIHN1Y2Nlc3MuCisgKiBccmV0dXJuICAgICAgICAgICNNQkVEVExTX0VSUl9NUElfQUxMT0NfRkFJTEVEIG9uIG1lbW9yeS1hbGxvY2F0aW9uIGZhaWx1cmUuCisgKiBccmV0dXJuICAgICAgICAgIEFub3RoZXIgbmVnYXRpdmUgZXJyb3IgY29kZSBvbiBvdGhlciBraW5kcyBvZiBmYWlsdXJlLgorICovCitpbnQgbWJlZHRsc19lY3Bfc2V0X3plcm8obWJlZHRsc19lY3BfcG9pbnQgKnB0KTsKKworLyoqCisgKiBcYnJpZWYgICAgICAgICAgIFRoaXMgZnVuY3Rpb24gY2hlY2tzIGlmIGEgcG9pbnQgaXMgdGhlIHBvaW50IGF0IGluZmluaXR5LgorICoKKyAqIFxwYXJhbSBwdCAgICAgICAgVGhlIHBvaW50IHRvIHRlc3QuIFRoaXMgbXVzdCBiZSBpbml0aWFsaXplZC4KKyAqCisgKiBccmV0dXJuICAgICAgICAgIFxjIDEgaWYgdGhlIHBvaW50IGlzIHplcm8uCisgKiBccmV0dXJuICAgICAgICAgIFxjIDAgaWYgdGhlIHBvaW50IGlzIG5vbi16ZXJvLgorICogXHJldHVybiAgICAgICAgICBBIG5lZ2F0aXZlIGVycm9yIGNvZGUgb24gZmFpbHVyZS4KKyAqLworaW50IG1iZWR0bHNfZWNwX2lzX3plcm8obWJlZHRsc19lY3BfcG9pbnQgKnB0KTsKKworLyoqCisgKiBcYnJpZWYgICAgICAgICAgIFRoaXMgZnVuY3Rpb24gY29tcGFyZXMgdHdvIHBvaW50cy4KKyAqCisgKiBcbm90ZSAgICAgICAgICAgIFRoaXMgYXNzdW1lcyB0aGF0IHRoZSBwb2ludHMgYXJlIG5vcm1hbGl6ZWQuIE90aGVyd2lzZSwKKyAqICAgICAgICAgICAgICAgICAgdGhleSBtYXkgY29tcGFyZSBhcyAibm90IGVxdWFsIiBldmVuIGlmIHRoZXkgYXJlLgorICoKKyAqIFxwYXJhbSBQICAgICAgICAgVGhlIGZpcnN0IHBvaW50IHRvIGNvbXBhcmUuIFRoaXMgbXVzdCBiZSBpbml0aWFsaXplZC4KKyAqIFxwYXJhbSBRICAgICAgICAgVGhlIHNlY29uZCBwb2ludCB0byBjb21wYXJlLiBUaGlzIG11c3QgYmUgaW5pdGlhbGl6ZWQuCisgKgorICogXHJldHVybiAgICAgICAgICBcYyAwIGlmIHRoZSBwb2ludHMgYXJlIGVxdWFsLgorICogXHJldHVybiAgICAgICAgICAjTUJFRFRMU19FUlJfRUNQX0JBRF9JTlBVVF9EQVRBIGlmIHRoZSBwb2ludHMgYXJlIG5vdCBlcXVhbC4KKyAqLworaW50IG1iZWR0bHNfZWNwX3BvaW50X2NtcChjb25zdCBtYmVkdGxzX2VjcF9wb2ludCAqUCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbWJlZHRsc19lY3BfcG9pbnQgKlEpOworCisvKioKKyAqIFxicmllZiAgICAgICAgICAgVGhpcyBmdW5jdGlvbiBpbXBvcnRzIGEgbm9uLXplcm8gcG9pbnQgZnJvbSB0d28gQVNDSUkKKyAqICAgICAgICAgICAgICAgICAgc3RyaW5ncy4KKyAqCisgKiBccGFyYW0gUCAgICAgICAgIFRoZSBkZXN0aW5hdGlvbiBwb2ludC4gVGhpcyBtdXN0IGJlIGluaXRpYWxpemVkLgorICogXHBhcmFtIHJhZGl4ICAgICBUaGUgbnVtZXJpYyBiYXNlIG9mIHRoZSBpbnB1dC4KKyAqIFxwYXJhbSB4ICAgICAgICAgVGhlIGZpcnN0IGFmZmluZSBjb29yZGluYXRlLCBhcyBhIG51bGwtdGVybWluYXRlZCBzdHJpbmcuCisgKiBccGFyYW0geSAgICAgICAgIFRoZSBzZWNvbmQgYWZmaW5lIGNvb3JkaW5hdGUsIGFzIGEgbnVsbC10ZXJtaW5hdGVkIHN0cmluZy4KKyAqCisgKiBccmV0dXJuICAgICAgICAgIFxjIDAgb24gc3VjY2Vzcy4KKyAqIFxyZXR1cm4gICAgICAgICAgQW4gXGMgTUJFRFRMU19FUlJfTVBJX1hYWCBlcnJvciBjb2RlIG9uIGZhaWx1cmUuCisgKi8KK2ludCBtYmVkdGxzX2VjcF9wb2ludF9yZWFkX3N0cmluZyhtYmVkdGxzX2VjcF9wb2ludCAqUCwgaW50IHJhZGl4LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKngsIGNvbnN0IGNoYXIgKnkpOworCisvKioKKyAqIFxicmllZiAgICAgICAgICAgVGhpcyBmdW5jdGlvbiBleHBvcnRzIGEgcG9pbnQgaW50byB1bnNpZ25lZCBiaW5hcnkgZGF0YS4KKyAqCisgKiBccGFyYW0gZ3JwICAgICAgIFRoZSBncm91cCB0byB3aGljaCB0aGUgcG9pbnQgc2hvdWxkIGJlbG9uZy4KKyAqICAgICAgICAgICAgICAgICAgVGhpcyBtdXN0IGJlIGluaXRpYWxpemVkIGFuZCBoYXZlIGdyb3VwIHBhcmFtZXRlcnMKKyAqICAgICAgICAgICAgICAgICAgc2V0LCBmb3IgZXhhbXBsZSB0aHJvdWdoIG1iZWR0bHNfZWNwX2dyb3VwX2xvYWQoKS4KKyAqIFxwYXJhbSBQICAgICAgICAgVGhlIHBvaW50IHRvIGV4cG9ydC4gVGhpcyBtdXN0IGJlIGluaXRpYWxpemVkLgorICogXHBhcmFtIGZvcm1hdCAgICBUaGUgcG9pbnQgZm9ybWF0LiBUaGlzIG11c3QgYmUgZWl0aGVyCisgKiAgICAgICAgICAgICAgICAgICNNQkVEVExTX0VDUF9QRl9DT01QUkVTU0VEIG9yICNNQkVEVExTX0VDUF9QRl9VTkNPTVBSRVNTRUQuCisgKiAgICAgICAgICAgICAgICAgIChGb3IgZ3JvdXBzIHdpdGhvdXQgdGhlc2UgZm9ybWF0cywgdGhpcyBwYXJhbWV0ZXIgaXMKKyAqICAgICAgICAgICAgICAgICAgaWdub3JlZC4gQnV0IGl0IHN0aWxsIGhhcyB0byBiZSBlaXRoZXIgb2YgdGhlIGFib3ZlCisgKiAgICAgICAgICAgICAgICAgIHZhbHVlcy4pCisgKiBccGFyYW0gb2xlbiAgICAgIFRoZSBhZGRyZXNzIGF0IHdoaWNoIHRvIHN0b3JlIHRoZSBsZW5ndGggb2YKKyAqICAgICAgICAgICAgICAgICAgdGhlIG91dHB1dCBpbiBCeXRlcy4gVGhpcyBtdXN0IG5vdCBiZSBcYyBOVUxMLgorICogXHBhcmFtIGJ1ZiAgICAgICBUaGUgb3V0cHV0IGJ1ZmZlci4gVGhpcyBtdXN0IGJlIGEgd3JpdGFibGUgYnVmZmVyCisgKiAgICAgICAgICAgICAgICAgIG9mIGxlbmd0aCBccCBidWZsZW4gQnl0ZXMuCisgKiBccGFyYW0gYnVmbGVuICAgIFRoZSBsZW5ndGggb2YgdGhlIG91dHB1dCBidWZmZXIgXHAgYnVmIGluIEJ5dGVzLgorICoKKyAqIFxyZXR1cm4gICAgICAgICAgXGMgMCBvbiBzdWNjZXNzLgorICogXHJldHVybiAgICAgICAgICAjTUJFRFRMU19FUlJfRUNQX0JVRkZFUl9UT09fU01BTEwgaWYgdGhlIG91dHB1dCBidWZmZXIKKyAqICAgICAgICAgICAgICAgICAgaXMgdG9vIHNtYWxsIHRvIGhvbGQgdGhlIHBvaW50LgorICogXHJldHVybiAgICAgICAgICAjTUJFRFRMU19FUlJfRUNQX0ZFQVRVUkVfVU5BVkFJTEFCTEUgaWYgdGhlIHBvaW50IGZvcm1hdAorICogICAgICAgICAgICAgICAgICBvciB0aGUgZXhwb3J0IGZvciB0aGUgZ2l2ZW4gZ3JvdXAgaXMgbm90IGltcGxlbWVudGVkLgorICogXHJldHVybiAgICAgICAgICBBbm90aGVyIG5lZ2F0aXZlIGVycm9yIGNvZGUgb24gb3RoZXIga2luZHMgb2YgZmFpbHVyZS4KKyAqLworaW50IG1iZWR0bHNfZWNwX3BvaW50X3dyaXRlX2JpbmFyeShjb25zdCBtYmVkdGxzX2VjcF9ncm91cCAqZ3JwLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBtYmVkdGxzX2VjcF9wb2ludCAqUCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGZvcm1hdCwgc2l6ZV90ICpvbGVuLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBjaGFyICpidWYsIHNpemVfdCBidWZsZW4pOworCisvKioKKyAqIFxicmllZiAgICAgICAgICAgVGhpcyBmdW5jdGlvbiBpbXBvcnRzIGEgcG9pbnQgZnJvbSB1bnNpZ25lZCBiaW5hcnkgZGF0YS4KKyAqCisgKiBcbm90ZSAgICAgICAgICAgIFRoaXMgZnVuY3Rpb24gZG9lcyBub3QgY2hlY2sgdGhhdCB0aGUgcG9pbnQgYWN0dWFsbHkKKyAqICAgICAgICAgICAgICAgICAgYmVsb25ncyB0byB0aGUgZ2l2ZW4gZ3JvdXAsIHNlZSBtYmVkdGxzX2VjcF9jaGVja19wdWJrZXkoKQorICogICAgICAgICAgICAgICAgICBmb3IgdGhhdC4KKyAqCisgKiBcbm90ZSAgICAgICAgICAgIEZvciBjb21wcmVzc2VkIHBvaW50cywgc2VlICNNQkVEVExTX0VDUF9QRl9DT01QUkVTU0VEIGZvcgorICogICAgICAgICAgICAgICAgICBsaW1pdGF0aW9ucy4KKyAqCisgKiBccGFyYW0gZ3JwICAgICAgIFRoZSBncm91cCB0byB3aGljaCB0aGUgcG9pbnQgc2hvdWxkIGJlbG9uZy4KKyAqICAgICAgICAgICAgICAgICAgVGhpcyBtdXN0IGJlIGluaXRpYWxpemVkIGFuZCBoYXZlIGdyb3VwIHBhcmFtZXRlcnMKKyAqICAgICAgICAgICAgICAgICAgc2V0LCBmb3IgZXhhbXBsZSB0aHJvdWdoIG1iZWR0bHNfZWNwX2dyb3VwX2xvYWQoKS4KKyAqIFxwYXJhbSBQICAgICAgICAgVGhlIGRlc3RpbmF0aW9uIGNvbnRleHQgdG8gaW1wb3J0IHRoZSBwb2ludCB0by4KKyAqICAgICAgICAgICAgICAgICAgVGhpcyBtdXN0IGJlIGluaXRpYWxpemVkLgorICogXHBhcmFtIGJ1ZiAgICAgICBUaGUgaW5wdXQgYnVmZmVyLiBUaGlzIG11c3QgYmUgYSByZWFkYWJsZSBidWZmZXIKKyAqICAgICAgICAgICAgICAgICAgb2YgbGVuZ3RoIFxwIGlsZW4gQnl0ZXMuCisgKiBccGFyYW0gaWxlbiAgICAgIFRoZSBsZW5ndGggb2YgdGhlIGlucHV0IGJ1ZmZlciBccCBidWYgaW4gQnl0ZXMuCisgKgorICogXHJldHVybiAgICAgICAgICBcYyAwIG9uIHN1Y2Nlc3MuCisgKiBccmV0dXJuICAgICAgICAgICNNQkVEVExTX0VSUl9FQ1BfQkFEX0lOUFVUX0RBVEEgaWYgdGhlIGlucHV0IGlzIGludmFsaWQuCisgKiBccmV0dXJuICAgICAgICAgICNNQkVEVExTX0VSUl9NUElfQUxMT0NfRkFJTEVEIG9uIG1lbW9yeS1hbGxvY2F0aW9uIGZhaWx1cmUuCisgKiBccmV0dXJuICAgICAgICAgICNNQkVEVExTX0VSUl9FQ1BfRkVBVFVSRV9VTkFWQUlMQUJMRSBpZiB0aGUgaW1wb3J0IGZvciB0aGUKKyAqICAgICAgICAgICAgICAgICAgZ2l2ZW4gZ3JvdXAgaXMgbm90IGltcGxlbWVudGVkLgorICovCitpbnQgbWJlZHRsc19lY3BfcG9pbnRfcmVhZF9iaW5hcnkoY29uc3QgbWJlZHRsc19lY3BfZ3JvdXAgKmdycCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYmVkdGxzX2VjcF9wb2ludCAqUCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1bnNpZ25lZCBjaGFyICpidWYsIHNpemVfdCBpbGVuKTsKKworLyoqCisgKiBcYnJpZWYgICAgICAgICAgIFRoaXMgZnVuY3Rpb24gaW1wb3J0cyBhIHBvaW50IGZyb20gYSBUTFMgRUNQb2ludCByZWNvcmQuCisgKgorICogXG5vdGUgICAgICAgICAgICBPbiBmdW5jdGlvbiByZXR1cm4sIFxwICpidWYgaXMgdXBkYXRlZCB0byBwb2ludCBpbW1lZGlhdGVseQorICogICAgICAgICAgICAgICAgICBhZnRlciB0aGUgRUNQb2ludCByZWNvcmQuCisgKgorICogXHBhcmFtIGdycCAgICAgICBUaGUgRUNQIGdyb3VwIHRvIHVzZS4KKyAqICAgICAgICAgICAgICAgICAgVGhpcyBtdXN0IGJlIGluaXRpYWxpemVkIGFuZCBoYXZlIGdyb3VwIHBhcmFtZXRlcnMKKyAqICAgICAgICAgICAgICAgICAgc2V0LCBmb3IgZXhhbXBsZSB0aHJvdWdoIG1iZWR0bHNfZWNwX2dyb3VwX2xvYWQoKS4KKyAqIFxwYXJhbSBwdCAgICAgICAgVGhlIGRlc3RpbmF0aW9uIHBvaW50LgorICogXHBhcmFtIGJ1ZiAgICAgICBUaGUgYWRkcmVzcyBvZiB0aGUgcG9pbnRlciB0byB0aGUgc3RhcnQgb2YgdGhlIGlucHV0IGJ1ZmZlci4KKyAqIFxwYXJhbSBsZW4gICAgICAgVGhlIGxlbmd0aCBvZiB0aGUgYnVmZmVyLgorICoKKyAqIFxyZXR1cm4gICAgICAgICAgXGMgMCBvbiBzdWNjZXNzLgorICogXHJldHVybiAgICAgICAgICBBbiBcYyBNQkVEVExTX0VSUl9NUElfWFhYIGVycm9yIGNvZGUgb24gaW5pdGlhbGl6YXRpb24KKyAqICAgICAgICAgICAgICAgICAgZmFpbHVyZS4KKyAqIFxyZXR1cm4gICAgICAgICAgI01CRURUTFNfRVJSX0VDUF9CQURfSU5QVVRfREFUQSBpZiBpbnB1dCBpcyBpbnZhbGlkLgorICovCitpbnQgbWJlZHRsc19lY3BfdGxzX3JlYWRfcG9pbnQoY29uc3QgbWJlZHRsc19lY3BfZ3JvdXAgKmdycCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYmVkdGxzX2VjcF9wb2ludCAqcHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdW5zaWduZWQgY2hhciAqKmJ1Ziwgc2l6ZV90IGxlbik7CisKKy8qKgorICogXGJyaWVmICAgICAgICAgICBUaGlzIGZ1bmN0aW9uIGV4cG9ydHMgYSBwb2ludCBhcyBhIFRMUyBFQ1BvaW50IHJlY29yZAorICogICAgICAgICAgICAgICAgICBkZWZpbmVkIGluIFJGQyA0NDkyLCBTZWN0aW9uIDUuNC4KKyAqCisgKiBccGFyYW0gZ3JwICAgICAgIFRoZSBFQ1AgZ3JvdXAgdG8gdXNlLgorICogICAgICAgICAgICAgICAgICBUaGlzIG11c3QgYmUgaW5pdGlhbGl6ZWQgYW5kIGhhdmUgZ3JvdXAgcGFyYW1ldGVycworICogICAgICAgICAgICAgICAgICBzZXQsIGZvciBleGFtcGxlIHRocm91Z2ggbWJlZHRsc19lY3BfZ3JvdXBfbG9hZCgpLgorICogXHBhcmFtIHB0ICAgICAgICBUaGUgcG9pbnQgdG8gYmUgZXhwb3J0ZWQuIFRoaXMgbXVzdCBiZSBpbml0aWFsaXplZC4KKyAqIFxwYXJhbSBmb3JtYXQgICAgVGhlIHBvaW50IGZvcm1hdCB0byB1c2UuIFRoaXMgbXVzdCBiZSBlaXRoZXIKKyAqICAgICAgICAgICAgICAgICAgI01CRURUTFNfRUNQX1BGX0NPTVBSRVNTRUQgb3IgI01CRURUTFNfRUNQX1BGX1VOQ09NUFJFU1NFRC4KKyAqIFxwYXJhbSBvbGVuICAgICAgVGhlIGFkZHJlc3MgYXQgd2hpY2ggdG8gc3RvcmUgdGhlIGxlbmd0aCBpbiBCeXRlcworICogICAgICAgICAgICAgICAgICBvZiB0aGUgZGF0YSB3cml0dGVuLgorICogXHBhcmFtIGJ1ZiAgICAgICBUaGUgdGFyZ2V0IGJ1ZmZlci4gVGhpcyBtdXN0IGJlIGEgd3JpdGFibGUgYnVmZmVyIG9mCisgKiAgICAgICAgICAgICAgICAgIGxlbmd0aCBccCBibGVuIEJ5dGVzLgorICogXHBhcmFtIGJsZW4gICAgICBUaGUgbGVuZ3RoIG9mIHRoZSB0YXJnZXQgYnVmZmVyIFxwIGJ1ZiBpbiBCeXRlcy4KKyAqCisgKiBccmV0dXJuICAgICAgICAgIFxjIDAgb24gc3VjY2Vzcy4KKyAqIFxyZXR1cm4gICAgICAgICAgI01CRURUTFNfRVJSX0VDUF9CQURfSU5QVVRfREFUQSBpZiB0aGUgaW5wdXQgaXMgaW52YWxpZC4KKyAqIFxyZXR1cm4gICAgICAgICAgI01CRURUTFNfRVJSX0VDUF9CVUZGRVJfVE9PX1NNQUxMIGlmIHRoZSB0YXJnZXQgYnVmZmVyCisgKiAgICAgICAgICAgICAgICAgIGlzIHRvbyBzbWFsbCB0byBob2xkIHRoZSBleHBvcnRlZCBwb2ludC4KKyAqIFxyZXR1cm4gICAgICAgICAgQW5vdGhlciBuZWdhdGl2ZSBlcnJvciBjb2RlIG9uIG90aGVyIGtpbmRzIG9mIGZhaWx1cmUuCisgKi8KK2ludCBtYmVkdGxzX2VjcF90bHNfd3JpdGVfcG9pbnQoY29uc3QgbWJlZHRsc19lY3BfZ3JvdXAgKmdycCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbWJlZHRsc19lY3BfcG9pbnQgKnB0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgZm9ybWF0LCBzaXplX3QgKm9sZW4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGNoYXIgKmJ1Ziwgc2l6ZV90IGJsZW4pOworCisvKioKKyAqIFxicmllZiAgICAgICAgICAgVGhpcyBmdW5jdGlvbiBzZXRzIHVwIGFuIEVDUCBncm91cCBjb250ZXh0CisgKiAgICAgICAgICAgICAgICAgIGZyb20gYSBzdGFuZGFyZGl6ZWQgc2V0IG9mIGRvbWFpbiBwYXJhbWV0ZXJzLgorICoKKyAqIFxub3RlICAgICAgICAgICAgVGhlIGluZGV4IHNob3VsZCBiZSBhIHZhbHVlIG9mIHRoZSBOYW1lZEN1cnZlIGVudW0sCisgKiAgICAgICAgICAgICAgICAgIGFzIGRlZmluZWQgaW4gPGVtPlJGQy00NDkyOiBFbGxpcHRpYyBDdXJ2ZSBDcnlwdG9ncmFwaHkKKyAqICAgICAgICAgICAgICAgICAgKEVDQykgQ2lwaGVyIFN1aXRlcyBmb3IgVHJhbnNwb3J0IExheWVyIFNlY3VyaXR5IChUTFMpPC9lbT4sCisgKiAgICAgICAgICAgICAgICAgIHVzdWFsbHkgaW4gdGhlIGZvcm0gb2YgYW4gXGMgTUJFRFRMU19FQ1BfRFBfWFhYIG1hY3JvLgorICoKKyAqIFxwYXJhbSBncnAgICAgICAgVGhlIGdyb3VwIGNvbnRleHQgdG8gc2V0dXAuIFRoaXMgbXVzdCBiZSBpbml0aWFsaXplZC4KKyAqIFxwYXJhbSBpZCAgICAgICAgVGhlIGlkZW50aWZpZXIgb2YgdGhlIGRvbWFpbiBwYXJhbWV0ZXIgc2V0IHRvIGxvYWQuCisgKgorICogXHJldHVybiAgICAgICAgICBcYyAwIG9uIHN1Y2Nlc3MuCisgKiBccmV0dXJuICAgICAgICAgICNNQkVEVExTX0VSUl9FQ1BfRkVBVFVSRV9VTkFWQUlMQUJMRSBpZiBccCBpZCBkb2Vzbid0CisgKiAgICAgICAgICAgICAgICAgIGNvcnJlc3BvbmQgdG8gYSBrbm93biBncm91cC4KKyAqIFxyZXR1cm4gICAgICAgICAgQW5vdGhlciBuZWdhdGl2ZSBlcnJvciBjb2RlIG9uIG90aGVyIGtpbmRzIG9mIGZhaWx1cmUuCisgKi8KK2ludCBtYmVkdGxzX2VjcF9ncm91cF9sb2FkKG1iZWR0bHNfZWNwX2dyb3VwICpncnAsIG1iZWR0bHNfZWNwX2dyb3VwX2lkIGlkKTsKKworLyoqCisgKiBcYnJpZWYgICAgICAgICAgIFRoaXMgZnVuY3Rpb24gc2V0cyB1cCBhbiBFQ1AgZ3JvdXAgY29udGV4dCBmcm9tIGEgVExTCisgKiAgICAgICAgICAgICAgICAgIEVDUGFyYW1ldGVycyByZWNvcmQgYXMgZGVmaW5lZCBpbiBSRkMgNDQ5MiwgU2VjdGlvbiA1LjQuCisgKgorICogXG5vdGUgICAgICAgICAgICBUaGUgcmVhZCBwb2ludGVyIFxwIGJ1ZiBpcyB1cGRhdGVkIHRvIHBvaW50IHJpZ2h0IGFmdGVyCisgKiAgICAgICAgICAgICAgICAgIHRoZSBFQ1BhcmFtZXRlcnMgcmVjb3JkIG9uIGV4aXQuCisgKgorICogXHBhcmFtIGdycCAgICAgICBUaGUgZ3JvdXAgY29udGV4dCB0byBzZXR1cC4gVGhpcyBtdXN0IGJlIGluaXRpYWxpemVkLgorICogXHBhcmFtIGJ1ZiAgICAgICBUaGUgYWRkcmVzcyBvZiB0aGUgcG9pbnRlciB0byB0aGUgc3RhcnQgb2YgdGhlIGlucHV0IGJ1ZmZlci4KKyAqIFxwYXJhbSBsZW4gICAgICAgVGhlIGxlbmd0aCBvZiB0aGUgaW5wdXQgYnVmZmVyIFxjICpidWYgaW4gQnl0ZXMuCisgKgorICogXHJldHVybiAgICAgICAgICBcYyAwIG9uIHN1Y2Nlc3MuCisgKiBccmV0dXJuICAgICAgICAgICNNQkVEVExTX0VSUl9FQ1BfQkFEX0lOUFVUX0RBVEEgaWYgaW5wdXQgaXMgaW52YWxpZC4KKyAqIFxyZXR1cm4gICAgICAgICAgI01CRURUTFNfRVJSX0VDUF9GRUFUVVJFX1VOQVZBSUxBQkxFIGlmIHRoZSBncm91cCBpcyBub3QKKyAqICAgICAgICAgICAgICAgICAgcmVjb2duaXplZC4KKyAqIFxyZXR1cm4gICAgICAgICAgQW5vdGhlciBuZWdhdGl2ZSBlcnJvciBjb2RlIG9uIG90aGVyIGtpbmRzIG9mIGZhaWx1cmUuCisgKi8KK2ludCBtYmVkdGxzX2VjcF90bHNfcmVhZF9ncm91cChtYmVkdGxzX2VjcF9ncm91cCAqZ3JwLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgKipidWYsIHNpemVfdCBsZW4pOworCisvKioKKyAqIFxicmllZiAgICAgICAgICAgVGhpcyBmdW5jdGlvbiBleHRyYWN0cyBhbiBlbGxpcHRpYyBjdXJ2ZSBncm91cCBJRCBmcm9tIGEKKyAqICAgICAgICAgICAgICAgICAgVExTIEVDUGFyYW1ldGVycyByZWNvcmQgYXMgZGVmaW5lZCBpbiBSRkMgNDQ5MiwgU2VjdGlvbiA1LjQuCisgKgorICogXG5vdGUgICAgICAgICAgICBUaGUgcmVhZCBwb2ludGVyIFxwIGJ1ZiBpcyB1cGRhdGVkIHRvIHBvaW50IHJpZ2h0IGFmdGVyCisgKiAgICAgICAgICAgICAgICAgIHRoZSBFQ1BhcmFtZXRlcnMgcmVjb3JkIG9uIGV4aXQuCisgKgorICogXHBhcmFtIGdycCAgICAgICBUaGUgYWRkcmVzcyBhdCB3aGljaCB0byBzdG9yZSB0aGUgZ3JvdXAgaWQuCisgKiAgICAgICAgICAgICAgICAgIFRoaXMgbXVzdCBub3QgYmUgXGMgTlVMTC4KKyAqIFxwYXJhbSBidWYgICAgICAgVGhlIGFkZHJlc3Mgb2YgdGhlIHBvaW50ZXIgdG8gdGhlIHN0YXJ0IG9mIHRoZSBpbnB1dCBidWZmZXIuCisgKiBccGFyYW0gbGVuICAgICAgIFRoZSBsZW5ndGggb2YgdGhlIGlucHV0IGJ1ZmZlciBcYyAqYnVmIGluIEJ5dGVzLgorICoKKyAqIFxyZXR1cm4gICAgICAgICAgXGMgMCBvbiBzdWNjZXNzLgorICogXHJldHVybiAgICAgICAgICAjTUJFRFRMU19FUlJfRUNQX0JBRF9JTlBVVF9EQVRBIGlmIGlucHV0IGlzIGludmFsaWQuCisgKiBccmV0dXJuICAgICAgICAgICNNQkVEVExTX0VSUl9FQ1BfRkVBVFVSRV9VTkFWQUlMQUJMRSBpZiB0aGUgZ3JvdXAgaXMgbm90CisgKiAgICAgICAgICAgICAgICAgIHJlY29nbml6ZWQuCisgKiBccmV0dXJuICAgICAgICAgIEFub3RoZXIgbmVnYXRpdmUgZXJyb3IgY29kZSBvbiBvdGhlciBraW5kcyBvZiBmYWlsdXJlLgorICovCitpbnQgbWJlZHRsc19lY3BfdGxzX3JlYWRfZ3JvdXBfaWQobWJlZHRsc19lY3BfZ3JvdXBfaWQgKmdycCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1bnNpZ25lZCBjaGFyICoqYnVmLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBsZW4pOworLyoqCisgKiBcYnJpZWYgICAgICAgICAgIFRoaXMgZnVuY3Rpb24gZXhwb3J0cyBhbiBlbGxpcHRpYyBjdXJ2ZSBhcyBhIFRMUworICogICAgICAgICAgICAgICAgICBFQ1BhcmFtZXRlcnMgcmVjb3JkIGFzIGRlZmluZWQgaW4gUkZDIDQ0OTIsIFNlY3Rpb24gNS40LgorICoKKyAqIFxwYXJhbSBncnAgICAgICAgVGhlIEVDUCBncm91cCB0byBiZSBleHBvcnRlZC4KKyAqICAgICAgICAgICAgICAgICAgVGhpcyBtdXN0IGJlIGluaXRpYWxpemVkIGFuZCBoYXZlIGdyb3VwIHBhcmFtZXRlcnMKKyAqICAgICAgICAgICAgICAgICAgc2V0LCBmb3IgZXhhbXBsZSB0aHJvdWdoIG1iZWR0bHNfZWNwX2dyb3VwX2xvYWQoKS4KKyAqIFxwYXJhbSBvbGVuICAgICAgVGhlIGFkZHJlc3MgYXQgd2hpY2ggdG8gc3RvcmUgdGhlIG51bWJlciBvZiBCeXRlcyB3cml0dGVuLgorICogICAgICAgICAgICAgICAgICBUaGlzIG11c3Qgbm90IGJlIFxjIE5VTEwuCisgKiBccGFyYW0gYnVmICAgICAgIFRoZSBidWZmZXIgdG8gd3JpdGUgdG8uIFRoaXMgbXVzdCBiZSBhIHdyaXRhYmxlIGJ1ZmZlcgorICogICAgICAgICAgICAgICAgICBvZiBsZW5ndGggXHAgYmxlbiBCeXRlcy4KKyAqIFxwYXJhbSBibGVuICAgICAgVGhlIGxlbmd0aCBvZiB0aGUgb3V0cHV0IGJ1ZmZlciBccCBidWYgaW4gQnl0ZXMuCisgKgorICogXHJldHVybiAgICAgICAgICBcYyAwIG9uIHN1Y2Nlc3MuCisgKiBccmV0dXJuICAgICAgICAgICNNQkVEVExTX0VSUl9FQ1BfQlVGRkVSX1RPT19TTUFMTCBpZiB0aGUgb3V0cHV0CisgKiAgICAgICAgICAgICAgICAgIGJ1ZmZlciBpcyB0b28gc21hbGwgdG8gaG9sZCB0aGUgZXhwb3J0ZWQgZ3JvdXAuCisgKiBccmV0dXJuICAgICAgICAgIEFub3RoZXIgbmVnYXRpdmUgZXJyb3IgY29kZSBvbiBvdGhlciBraW5kcyBvZiBmYWlsdXJlLgorICovCitpbnQgbWJlZHRsc19lY3BfdGxzX3dyaXRlX2dyb3VwKGNvbnN0IG1iZWR0bHNfZWNwX2dyb3VwICpncnAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCAqb2xlbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgY2hhciAqYnVmLCBzaXplX3QgYmxlbik7CisKKy8qKgorICogXGJyaWVmICAgICAgICAgICBUaGlzIGZ1bmN0aW9uIHBlcmZvcm1zIGEgc2NhbGFyIG11bHRpcGxpY2F0aW9uIG9mIGEgcG9pbnQKKyAqICAgICAgICAgICAgICAgICAgYnkgYW4gaW50ZWdlcjogXHAgUiA9IFxwIG0gKiBccCBQLgorICoKKyAqICAgICAgICAgICAgICAgICAgSXQgaXMgbm90IHRocmVhZC1zYWZlIHRvIHVzZSBzYW1lIGdyb3VwIGluIG11bHRpcGxlIHRocmVhZHMuCisgKgorICogXG5vdGUgICAgICAgICAgICBUbyBwcmV2ZW50IHRpbWluZyBhdHRhY2tzLCB0aGlzIGZ1bmN0aW9uCisgKiAgICAgICAgICAgICAgICAgIGV4ZWN1dGVzIHRoZSBleGFjdCBzYW1lIHNlcXVlbmNlIG9mIGJhc2UtZmllbGQKKyAqICAgICAgICAgICAgICAgICAgb3BlcmF0aW9ucyBmb3IgYW55IHZhbGlkIFxwIG0uIEl0IGF2b2lkcyBhbnkgaWYtYnJhbmNoIG9yCisgKiAgICAgICAgICAgICAgICAgIGFycmF5IGluZGV4IGRlcGVuZGluZyBvbiB0aGUgdmFsdWUgb2YgXHAgbS4gSXQgYWxzbyB1c2VzCisgKiAgICAgICAgICAgICAgICAgIFxwIGZfcm5nIHRvIHJhbmRvbWl6ZSBzb21lIGludGVybWVkaWF0ZSByZXN1bHRzLgorICoKKyAqIFxwYXJhbSBncnAgICAgICAgVGhlIEVDUCBncm91cCB0byB1c2UuCisgKiAgICAgICAgICAgICAgICAgIFRoaXMgbXVzdCBiZSBpbml0aWFsaXplZCBhbmQgaGF2ZSBncm91cCBwYXJhbWV0ZXJzCisgKiAgICAgICAgICAgICAgICAgIHNldCwgZm9yIGV4YW1wbGUgdGhyb3VnaCBtYmVkdGxzX2VjcF9ncm91cF9sb2FkKCkuCisgKiBccGFyYW0gUiAgICAgICAgIFRoZSBwb2ludCBpbiB3aGljaCB0byBzdG9yZSB0aGUgcmVzdWx0IG9mIHRoZSBjYWxjdWxhdGlvbi4KKyAqICAgICAgICAgICAgICAgICAgVGhpcyBtdXN0IGJlIGluaXRpYWxpemVkLgorICogXHBhcmFtIG0gICAgICAgICBUaGUgaW50ZWdlciBieSB3aGljaCB0byBtdWx0aXBseS4gVGhpcyBtdXN0IGJlIGluaXRpYWxpemVkLgorICogXHBhcmFtIFAgICAgICAgICBUaGUgcG9pbnQgdG8gbXVsdGlwbHkuIFRoaXMgbXVzdCBiZSBpbml0aWFsaXplZC4KKyAqIFxwYXJhbSBmX3JuZyAgICAgVGhlIFJORyBmdW5jdGlvbi4gVGhpcyBtdXN0IG5vdCBiZSBcYyBOVUxMLgorICogXHBhcmFtIHBfcm5nICAgICBUaGUgUk5HIGNvbnRleHQgdG8gYmUgcGFzc2VkIHRvIFxwIGZfcm5nLiBUaGlzIG1heSBiZSBcYworICogICAgICAgICAgICAgICAgICBOVUxMIGlmIFxwIGZfcm5nIGRvZXNuJ3QgbmVlZCBhIGNvbnRleHQuCisgKgorICogXHJldHVybiAgICAgICAgICBcYyAwIG9uIHN1Y2Nlc3MuCisgKiBccmV0dXJuICAgICAgICAgICNNQkVEVExTX0VSUl9FQ1BfSU5WQUxJRF9LRVkgaWYgXHAgbSBpcyBub3QgYSB2YWxpZCBwcml2YXRlCisgKiAgICAgICAgICAgICAgICAgIGtleSwgb3IgXHAgUCBpcyBub3QgYSB2YWxpZCBwdWJsaWMga2V5LgorICogXHJldHVybiAgICAgICAgICAjTUJFRFRMU19FUlJfTVBJX0FMTE9DX0ZBSUxFRCBvbiBtZW1vcnktYWxsb2NhdGlvbiBmYWlsdXJlLgorICogXHJldHVybiAgICAgICAgICBBbm90aGVyIG5lZ2F0aXZlIGVycm9yIGNvZGUgb24gb3RoZXIga2luZHMgb2YgZmFpbHVyZS4KKyAqLworaW50IG1iZWR0bHNfZWNwX211bChtYmVkdGxzX2VjcF9ncm91cCAqZ3JwLCBtYmVkdGxzX2VjcF9wb2ludCAqUiwKKyAgICAgICAgICAgICAgICAgICAgY29uc3QgbWJlZHRsc19tcGkgKm0sIGNvbnN0IG1iZWR0bHNfZWNwX3BvaW50ICpQLAorICAgICAgICAgICAgICAgICAgICBpbnQgKCpmX3JuZykodm9pZCAqLCB1bnNpZ25lZCBjaGFyICosIHNpemVfdCksIHZvaWQgKnBfcm5nKTsKKworLyoqCisgKiBcYnJpZWYgICAgICAgICAgIFRoaXMgZnVuY3Rpb24gcGVyZm9ybXMgbXVsdGlwbGljYXRpb24gb2YgYSBwb2ludCBieQorICogICAgICAgICAgICAgICAgICBhbiBpbnRlZ2VyOiBccCBSID0gXHAgbSAqIFxwIFAgaW4gYSByZXN0YXJ0YWJsZSB3YXkuCisgKgorICogXHNlZSAgICAgICAgICAgICBtYmVkdGxzX2VjcF9tdWwoKQorICoKKyAqIFxub3RlICAgICAgICAgICAgVGhpcyBmdW5jdGlvbiBkb2VzIHRoZSBzYW1lIGFzIFxjIG1iZWR0bHNfZWNwX211bCgpLCBidXQKKyAqICAgICAgICAgICAgICAgICAgaXQgY2FuIHJldHVybiBlYXJseSBhbmQgcmVzdGFydCBhY2NvcmRpbmcgdG8gdGhlIGxpbWl0IHNldAorICogICAgICAgICAgICAgICAgICB3aXRoIFxjIG1iZWR0bHNfZWNwX3NldF9tYXhfb3BzKCkgdG8gcmVkdWNlIGJsb2NraW5nLgorICoKKyAqIFxwYXJhbSBncnAgICAgICAgVGhlIEVDUCBncm91cCB0byB1c2UuCisgKiAgICAgICAgICAgICAgICAgIFRoaXMgbXVzdCBiZSBpbml0aWFsaXplZCBhbmQgaGF2ZSBncm91cCBwYXJhbWV0ZXJzCisgKiAgICAgICAgICAgICAgICAgIHNldCwgZm9yIGV4YW1wbGUgdGhyb3VnaCBtYmVkdGxzX2VjcF9ncm91cF9sb2FkKCkuCisgKiBccGFyYW0gUiAgICAgICAgIFRoZSBwb2ludCBpbiB3aGljaCB0byBzdG9yZSB0aGUgcmVzdWx0IG9mIHRoZSBjYWxjdWxhdGlvbi4KKyAqICAgICAgICAgICAgICAgICAgVGhpcyBtdXN0IGJlIGluaXRpYWxpemVkLgorICogXHBhcmFtIG0gICAgICAgICBUaGUgaW50ZWdlciBieSB3aGljaCB0byBtdWx0aXBseS4gVGhpcyBtdXN0IGJlIGluaXRpYWxpemVkLgorICogXHBhcmFtIFAgICAgICAgICBUaGUgcG9pbnQgdG8gbXVsdGlwbHkuIFRoaXMgbXVzdCBiZSBpbml0aWFsaXplZC4KKyAqIFxwYXJhbSBmX3JuZyAgICAgVGhlIFJORyBmdW5jdGlvbi4gVGhpcyBtdXN0IG5vdCBiZSBcYyBOVUxMLgorICogXHBhcmFtIHBfcm5nICAgICBUaGUgUk5HIGNvbnRleHQgdG8gYmUgcGFzc2VkIHRvIFxwIGZfcm5nLiBUaGlzIG1heSBiZSBcYworICogICAgICAgICAgICAgICAgICBOVUxMIGlmIFxwIGZfcm5nIGRvZXNuJ3QgbmVlZCBhIGNvbnRleHQuCisgKiBccGFyYW0gcnNfY3R4ICAgIFRoZSByZXN0YXJ0IGNvbnRleHQgKE5VTEwgZGlzYWJsZXMgcmVzdGFydCkuCisgKgorICogXHJldHVybiAgICAgICAgICBcYyAwIG9uIHN1Y2Nlc3MuCisgKiBccmV0dXJuICAgICAgICAgICNNQkVEVExTX0VSUl9FQ1BfSU5WQUxJRF9LRVkgaWYgXHAgbSBpcyBub3QgYSB2YWxpZCBwcml2YXRlCisgKiAgICAgICAgICAgICAgICAgIGtleSwgb3IgXHAgUCBpcyBub3QgYSB2YWxpZCBwdWJsaWMga2V5LgorICogXHJldHVybiAgICAgICAgICAjTUJFRFRMU19FUlJfTVBJX0FMTE9DX0ZBSUxFRCBvbiBtZW1vcnktYWxsb2NhdGlvbiBmYWlsdXJlLgorICogXHJldHVybiAgICAgICAgICAjTUJFRFRMU19FUlJfRUNQX0lOX1BST0dSRVNTIGlmIG1heGltdW0gbnVtYmVyIG9mCisgKiAgICAgICAgICAgICAgICAgIG9wZXJhdGlvbnMgd2FzIHJlYWNoZWQ6IHNlZSBcYyBtYmVkdGxzX2VjcF9zZXRfbWF4X29wcygpLgorICogXHJldHVybiAgICAgICAgICBBbm90aGVyIG5lZ2F0aXZlIGVycm9yIGNvZGUgb24gb3RoZXIga2luZHMgb2YgZmFpbHVyZS4KKyAqLworaW50IG1iZWR0bHNfZWNwX211bF9yZXN0YXJ0YWJsZShtYmVkdGxzX2VjcF9ncm91cCAqZ3JwLCBtYmVkdGxzX2VjcF9wb2ludCAqUiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbWJlZHRsc19tcGkgKm0sIGNvbnN0IG1iZWR0bHNfZWNwX3BvaW50ICpQLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgKCpmX3JuZykodm9pZCAqLCB1bnNpZ25lZCBjaGFyICosIHNpemVfdCksIHZvaWQgKnBfcm5nLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYmVkdGxzX2VjcF9yZXN0YXJ0X2N0eCAqcnNfY3R4KTsKKworI2lmIGRlZmluZWQoTUJFRFRMU19FQ1BfU0hPUlRfV0VJRVJTVFJBU1NfRU5BQkxFRCkKKy8qKgorICogXGJyaWVmICAgICAgICAgICBUaGlzIGZ1bmN0aW9uIGNoZWNrcyBpZiBkb21haW4gcGFyYW1ldGVyIEEgb2YgdGhlIGN1cnZlIGlzCisgKiAgICAgICAgICAgICAgICAgIFxjIC0zLgorICoKKyAqIFxub3RlICAgICAgICAgICAgVGhpcyBmdW5jdGlvbiBpcyBvbmx5IGRlZmluZWQgZm9yIHNob3J0IFdlaWVyc3RyYXNzIGN1cnZlcy4KKyAqICAgICAgICAgICAgICAgICAgSXQgbWF5IG5vdCBiZSBpbmNsdWRlZCBpbiBidWlsZHMgd2l0aG91dCBhbnkgc2hvcnQKKyAqICAgICAgICAgICAgICAgICAgV2VpZXJzdHJhc3MgY3VydmUuCisgKgorICogXHBhcmFtIGdycCAgICAgICBUaGUgRUNQIGdyb3VwIHRvIHVzZS4KKyAqICAgICAgICAgICAgICAgICAgVGhpcyBtdXN0IGJlIGluaXRpYWxpemVkIGFuZCBoYXZlIGdyb3VwIHBhcmFtZXRlcnMKKyAqICAgICAgICAgICAgICAgICAgc2V0LCBmb3IgZXhhbXBsZSB0aHJvdWdoIG1iZWR0bHNfZWNwX2dyb3VwX2xvYWQoKS4KKyAqCisgKiBccmV0dXJuICAgICAgICAgIFxjIDEgaWYgPGNvZGU+QSA9IC0zPC9jb2RlPi4KKyAqIFxyZXR1cm4gICAgICAgICAgXGMgMCBPdGhlcndpc2UuCisgKi8KK3N0YXRpYyBpbmxpbmUgaW50IG1iZWR0bHNfZWNwX2dyb3VwX2FfaXNfbWludXNfMyhjb25zdCBtYmVkdGxzX2VjcF9ncm91cCAqZ3JwKQoreworICAgIHJldHVybiBncnAtPkEuTUJFRFRMU19QUklWQVRFKHApID09IE5VTEw7Cit9CisKKy8qKgorICogXGJyaWVmICAgICAgICAgICBUaGlzIGZ1bmN0aW9uIHBlcmZvcm1zIG11bHRpcGxpY2F0aW9uIGFuZCBhZGRpdGlvbiBvZiB0d28KKyAqICAgICAgICAgICAgICAgICAgcG9pbnRzIGJ5IGludGVnZXJzOiBccCBSID0gXHAgbSAqIFxwIFAgKyBccCBuICogXHAgUQorICoKKyAqICAgICAgICAgICAgICAgICAgSXQgaXMgbm90IHRocmVhZC1zYWZlIHRvIHVzZSBzYW1lIGdyb3VwIGluIG11bHRpcGxlIHRocmVhZHMuCisgKgorICogXG5vdGUgICAgICAgICAgICBJbiBjb250cmFzdCB0byBtYmVkdGxzX2VjcF9tdWwoKSwgdGhpcyBmdW5jdGlvbiBkb2VzIG5vdAorICogICAgICAgICAgICAgICAgICBndWFyYW50ZWUgYSBjb25zdGFudCBleGVjdXRpb24gZmxvdyBhbmQgdGltaW5nLgorICoKKyAqIFxub3RlICAgICAgICAgICAgVGhpcyBmdW5jdGlvbiBpcyBvbmx5IGRlZmluZWQgZm9yIHNob3J0IFdlaWVyc3RyYXNzIGN1cnZlcy4KKyAqICAgICAgICAgICAgICAgICAgSXQgbWF5IG5vdCBiZSBpbmNsdWRlZCBpbiBidWlsZHMgd2l0aG91dCBhbnkgc2hvcnQKKyAqICAgICAgICAgICAgICAgICAgV2VpZXJzdHJhc3MgY3VydmUuCisgKgorICogXHBhcmFtIGdycCAgICAgICBUaGUgRUNQIGdyb3VwIHRvIHVzZS4KKyAqICAgICAgICAgICAgICAgICAgVGhpcyBtdXN0IGJlIGluaXRpYWxpemVkIGFuZCBoYXZlIGdyb3VwIHBhcmFtZXRlcnMKKyAqICAgICAgICAgICAgICAgICAgc2V0LCBmb3IgZXhhbXBsZSB0aHJvdWdoIG1iZWR0bHNfZWNwX2dyb3VwX2xvYWQoKS4KKyAqIFxwYXJhbSBSICAgICAgICAgVGhlIHBvaW50IGluIHdoaWNoIHRvIHN0b3JlIHRoZSByZXN1bHQgb2YgdGhlIGNhbGN1bGF0aW9uLgorICogICAgICAgICAgICAgICAgICBUaGlzIG11c3QgYmUgaW5pdGlhbGl6ZWQuCisgKiBccGFyYW0gbSAgICAgICAgIFRoZSBpbnRlZ2VyIGJ5IHdoaWNoIHRvIG11bHRpcGx5IFxwIFAuCisgKiAgICAgICAgICAgICAgICAgIFRoaXMgbXVzdCBiZSBpbml0aWFsaXplZC4KKyAqIFxwYXJhbSBQICAgICAgICAgVGhlIHBvaW50IHRvIG11bHRpcGx5IGJ5IFxwIG0uIFRoaXMgbXVzdCBiZSBpbml0aWFsaXplZC4KKyAqIFxwYXJhbSBuICAgICAgICAgVGhlIGludGVnZXIgYnkgd2hpY2ggdG8gbXVsdGlwbHkgXHAgUS4KKyAqICAgICAgICAgICAgICAgICAgVGhpcyBtdXN0IGJlIGluaXRpYWxpemVkLgorICogXHBhcmFtIFEgICAgICAgICBUaGUgcG9pbnQgdG8gYmUgbXVsdGlwbGllZCBieSBccCBuLgorICogICAgICAgICAgICAgICAgICBUaGlzIG11c3QgYmUgaW5pdGlhbGl6ZWQuCisgKgorICogXHJldHVybiAgICAgICAgICBcYyAwIG9uIHN1Y2Nlc3MuCisgKiBccmV0dXJuICAgICAgICAgICNNQkVEVExTX0VSUl9FQ1BfSU5WQUxJRF9LRVkgaWYgXHAgbSBvciBccCBuIGFyZSBub3QKKyAqICAgICAgICAgICAgICAgICAgdmFsaWQgcHJpdmF0ZSBrZXlzLCBvciBccCBQIG9yIFxwIFEgYXJlIG5vdCB2YWxpZCBwdWJsaWMKKyAqICAgICAgICAgICAgICAgICAga2V5cy4KKyAqIFxyZXR1cm4gICAgICAgICAgI01CRURUTFNfRVJSX01QSV9BTExPQ19GQUlMRUQgb24gbWVtb3J5LWFsbG9jYXRpb24gZmFpbHVyZS4KKyAqIFxyZXR1cm4gICAgICAgICAgI01CRURUTFNfRVJSX0VDUF9GRUFUVVJFX1VOQVZBSUxBQkxFIGlmIFxwIGdycCBkb2VzIG5vdAorICogICAgICAgICAgICAgICAgICBkZXNpZ25hdGUgYSBzaG9ydCBXZWllcnN0cmFzcyBjdXJ2ZS4KKyAqIFxyZXR1cm4gICAgICAgICAgQW5vdGhlciBuZWdhdGl2ZSBlcnJvciBjb2RlIG9uIG90aGVyIGtpbmRzIG9mIGZhaWx1cmUuCisgKi8KK2ludCBtYmVkdGxzX2VjcF9tdWxhZGQobWJlZHRsc19lY3BfZ3JvdXAgKmdycCwgbWJlZHRsc19lY3BfcG9pbnQgKlIsCisgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IG1iZWR0bHNfbXBpICptLCBjb25zdCBtYmVkdGxzX2VjcF9wb2ludCAqUCwKKyAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbWJlZHRsc19tcGkgKm4sIGNvbnN0IG1iZWR0bHNfZWNwX3BvaW50ICpRKTsKKworLyoqCisgKiBcYnJpZWYgICAgICAgICAgIFRoaXMgZnVuY3Rpb24gcGVyZm9ybXMgbXVsdGlwbGljYXRpb24gYW5kIGFkZGl0aW9uIG9mIHR3bworICogICAgICAgICAgICAgICAgICBwb2ludHMgYnkgaW50ZWdlcnM6IFxwIFIgPSBccCBtICogXHAgUCArIFxwIG4gKiBccCBRIGluIGEKKyAqICAgICAgICAgICAgICAgICAgcmVzdGFydGFibGUgd2F5LgorICoKKyAqIFxzZWUgICAgICAgICAgICAgXGMgbWJlZHRsc19lY3BfbXVsYWRkKCkKKyAqCisgKiBcbm90ZSAgICAgICAgICAgIFRoaXMgZnVuY3Rpb24gd29ya3MgdGhlIHNhbWUgYXMgXGMgbWJlZHRsc19lY3BfbXVsYWRkKCksCisgKiAgICAgICAgICAgICAgICAgIGJ1dCBpdCBjYW4gcmV0dXJuIGVhcmx5IGFuZCByZXN0YXJ0IGFjY29yZGluZyB0byB0aGUgbGltaXQKKyAqICAgICAgICAgICAgICAgICAgc2V0IHdpdGggXGMgbWJlZHRsc19lY3Bfc2V0X21heF9vcHMoKSB0byByZWR1Y2UgYmxvY2tpbmcuCisgKgorICogXG5vdGUgICAgICAgICAgICBUaGlzIGZ1bmN0aW9uIGlzIG9ubHkgZGVmaW5lZCBmb3Igc2hvcnQgV2VpZXJzdHJhc3MgY3VydmVzLgorICogICAgICAgICAgICAgICAgICBJdCBtYXkgbm90IGJlIGluY2x1ZGVkIGluIGJ1aWxkcyB3aXRob3V0IGFueSBzaG9ydAorICogICAgICAgICAgICAgICAgICBXZWllcnN0cmFzcyBjdXJ2ZS4KKyAqCisgKiBccGFyYW0gZ3JwICAgICAgIFRoZSBFQ1AgZ3JvdXAgdG8gdXNlLgorICogICAgICAgICAgICAgICAgICBUaGlzIG11c3QgYmUgaW5pdGlhbGl6ZWQgYW5kIGhhdmUgZ3JvdXAgcGFyYW1ldGVycworICogICAgICAgICAgICAgICAgICBzZXQsIGZvciBleGFtcGxlIHRocm91Z2ggbWJlZHRsc19lY3BfZ3JvdXBfbG9hZCgpLgorICogXHBhcmFtIFIgICAgICAgICBUaGUgcG9pbnQgaW4gd2hpY2ggdG8gc3RvcmUgdGhlIHJlc3VsdCBvZiB0aGUgY2FsY3VsYXRpb24uCisgKiAgICAgICAgICAgICAgICAgIFRoaXMgbXVzdCBiZSBpbml0aWFsaXplZC4KKyAqIFxwYXJhbSBtICAgICAgICAgVGhlIGludGVnZXIgYnkgd2hpY2ggdG8gbXVsdGlwbHkgXHAgUC4KKyAqICAgICAgICAgICAgICAgICAgVGhpcyBtdXN0IGJlIGluaXRpYWxpemVkLgorICogXHBhcmFtIFAgICAgICAgICBUaGUgcG9pbnQgdG8gbXVsdGlwbHkgYnkgXHAgbS4gVGhpcyBtdXN0IGJlIGluaXRpYWxpemVkLgorICogXHBhcmFtIG4gICAgICAgICBUaGUgaW50ZWdlciBieSB3aGljaCB0byBtdWx0aXBseSBccCBRLgorICogICAgICAgICAgICAgICAgICBUaGlzIG11c3QgYmUgaW5pdGlhbGl6ZWQuCisgKiBccGFyYW0gUSAgICAgICAgIFRoZSBwb2ludCB0byBiZSBtdWx0aXBsaWVkIGJ5IFxwIG4uCisgKiAgICAgICAgICAgICAgICAgIFRoaXMgbXVzdCBiZSBpbml0aWFsaXplZC4KKyAqIFxwYXJhbSByc19jdHggICAgVGhlIHJlc3RhcnQgY29udGV4dCAoTlVMTCBkaXNhYmxlcyByZXN0YXJ0KS4KKyAqCisgKiBccmV0dXJuICAgICAgICAgIFxjIDAgb24gc3VjY2Vzcy4KKyAqIFxyZXR1cm4gICAgICAgICAgI01CRURUTFNfRVJSX0VDUF9JTlZBTElEX0tFWSBpZiBccCBtIG9yIFxwIG4gYXJlIG5vdAorICogICAgICAgICAgICAgICAgICB2YWxpZCBwcml2YXRlIGtleXMsIG9yIFxwIFAgb3IgXHAgUSBhcmUgbm90IHZhbGlkIHB1YmxpYworICogICAgICAgICAgICAgICAgICBrZXlzLgorICogXHJldHVybiAgICAgICAgICAjTUJFRFRMU19FUlJfTVBJX0FMTE9DX0ZBSUxFRCBvbiBtZW1vcnktYWxsb2NhdGlvbiBmYWlsdXJlLgorICogXHJldHVybiAgICAgICAgICAjTUJFRFRMU19FUlJfRUNQX0ZFQVRVUkVfVU5BVkFJTEFCTEUgaWYgXHAgZ3JwIGRvZXMgbm90CisgKiAgICAgICAgICAgICAgICAgIGRlc2lnbmF0ZSBhIHNob3J0IFdlaWVyc3RyYXNzIGN1cnZlLgorICogXHJldHVybiAgICAgICAgICAjTUJFRFRMU19FUlJfRUNQX0lOX1BST0dSRVNTIGlmIG1heGltdW0gbnVtYmVyIG9mCisgKiAgICAgICAgICAgICAgICAgIG9wZXJhdGlvbnMgd2FzIHJlYWNoZWQ6IHNlZSBcYyBtYmVkdGxzX2VjcF9zZXRfbWF4X29wcygpLgorICogXHJldHVybiAgICAgICAgICBBbm90aGVyIG5lZ2F0aXZlIGVycm9yIGNvZGUgb24gb3RoZXIga2luZHMgb2YgZmFpbHVyZS4KKyAqLworaW50IG1iZWR0bHNfZWNwX211bGFkZF9yZXN0YXJ0YWJsZSgKKyAgICBtYmVkdGxzX2VjcF9ncm91cCAqZ3JwLCBtYmVkdGxzX2VjcF9wb2ludCAqUiwKKyAgICBjb25zdCBtYmVkdGxzX21waSAqbSwgY29uc3QgbWJlZHRsc19lY3BfcG9pbnQgKlAsCisgICAgY29uc3QgbWJlZHRsc19tcGkgKm4sIGNvbnN0IG1iZWR0bHNfZWNwX3BvaW50ICpRLAorICAgIG1iZWR0bHNfZWNwX3Jlc3RhcnRfY3R4ICpyc19jdHgpOworI2VuZGlmIC8qIE1CRURUTFNfRUNQX1NIT1JUX1dFSUVSU1RSQVNTX0VOQUJMRUQgKi8KKworLyoqCisgKiBcYnJpZWYgICAgICAgICAgIFRoaXMgZnVuY3Rpb24gY2hlY2tzIHRoYXQgYSBwb2ludCBpcyBhIHZhbGlkIHB1YmxpYyBrZXkKKyAqICAgICAgICAgICAgICAgICAgb24gdGhpcyBjdXJ2ZS4KKyAqCisgKiAgICAgICAgICAgICAgICAgIEl0IG9ubHkgY2hlY2tzIHRoYXQgdGhlIHBvaW50IGlzIG5vbi16ZXJvLCBoYXMKKyAqICAgICAgICAgICAgICAgICAgdmFsaWQgY29vcmRpbmF0ZXMgYW5kIGxpZXMgb24gdGhlIGN1cnZlLiBJdCBkb2VzIG5vdCB2ZXJpZnkKKyAqICAgICAgICAgICAgICAgICAgdGhhdCBpdCBpcyBpbmRlZWQgYSBtdWx0aXBsZSBvZiBcYyBHLiBUaGlzIGFkZGl0aW9uYWwKKyAqICAgICAgICAgICAgICAgICAgY2hlY2sgaXMgY29tcHV0YXRpb25hbGx5IG1vcmUgZXhwZW5zaXZlLCBpcyBub3QgcmVxdWlyZWQKKyAqICAgICAgICAgICAgICAgICAgYnkgc3RhbmRhcmRzLCBhbmQgc2hvdWxkIG5vdCBiZSBuZWNlc3NhcnkgaWYgdGhlIGdyb3VwCisgKiAgICAgICAgICAgICAgICAgIHVzZWQgaGFzIGEgc21hbGwgY29mYWN0b3IuIEluIHBhcnRpY3VsYXIsIGl0IGlzIHVzZWxlc3MgZm9yCisgKiAgICAgICAgICAgICAgICAgIHRoZSBOSVNUIGdyb3VwcyB3aGljaCBhbGwgaGF2ZSBhIGNvZmFjdG9yIG9mIDEuCisgKgorICogXG5vdGUgICAgICAgICAgICBUaGlzIGZ1bmN0aW9uIHVzZXMgYmFyZSBjb21wb25lbnRzIHJhdGhlciB0aGFuIGFuCisgKiAgICAgICAgICAgICAgICAgIDo6bWJlZHRsc19lY3Bfa2V5cGFpciBzdHJ1Y3R1cmUsIHRvIGVhc2UgdXNlIHdpdGggb3RoZXIKKyAqICAgICAgICAgICAgICAgICAgc3RydWN0dXJlcywgc3VjaCBhcyA6Om1iZWR0bHNfZWNkaF9jb250ZXh0IG9yCisgKiAgICAgICAgICAgICAgICAgIDo6bWJlZHRsc19lY2RzYV9jb250ZXh0LgorICoKKyAqIFxwYXJhbSBncnAgICAgICAgVGhlIEVDUCBncm91cCB0aGUgcG9pbnQgc2hvdWxkIGJlbG9uZyB0by4KKyAqICAgICAgICAgICAgICAgICAgVGhpcyBtdXN0IGJlIGluaXRpYWxpemVkIGFuZCBoYXZlIGdyb3VwIHBhcmFtZXRlcnMKKyAqICAgICAgICAgICAgICAgICAgc2V0LCBmb3IgZXhhbXBsZSB0aHJvdWdoIG1iZWR0bHNfZWNwX2dyb3VwX2xvYWQoKS4KKyAqIFxwYXJhbSBwdCAgICAgICAgVGhlIHBvaW50IHRvIGNoZWNrLiBUaGlzIG11c3QgYmUgaW5pdGlhbGl6ZWQuCisgKgorICogXHJldHVybiAgICAgICAgICBcYyAwIGlmIHRoZSBwb2ludCBpcyBhIHZhbGlkIHB1YmxpYyBrZXkuCisgKiBccmV0dXJuICAgICAgICAgICNNQkVEVExTX0VSUl9FQ1BfSU5WQUxJRF9LRVkgaWYgdGhlIHBvaW50IGlzIG5vdAorICogICAgICAgICAgICAgICAgICBhIHZhbGlkIHB1YmxpYyBrZXkgZm9yIHRoZSBnaXZlbiBjdXJ2ZS4KKyAqIFxyZXR1cm4gICAgICAgICAgQW5vdGhlciBuZWdhdGl2ZSBlcnJvciBjb2RlIG9uIG90aGVyIGtpbmRzIG9mIGZhaWx1cmUuCisgKi8KK2ludCBtYmVkdGxzX2VjcF9jaGVja19wdWJrZXkoY29uc3QgbWJlZHRsc19lY3BfZ3JvdXAgKmdycCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbWJlZHRsc19lY3BfcG9pbnQgKnB0KTsKKworLyoqCisgKiBcYnJpZWYgICAgICAgICAgIFRoaXMgZnVuY3Rpb24gY2hlY2tzIHRoYXQgYW4gXGMgbWJlZHRsc19tcGkgaXMgYQorICogICAgICAgICAgICAgICAgICB2YWxpZCBwcml2YXRlIGtleSBmb3IgdGhpcyBjdXJ2ZS4KKyAqCisgKiBcbm90ZSAgICAgICAgICAgIFRoaXMgZnVuY3Rpb24gdXNlcyBiYXJlIGNvbXBvbmVudHMgcmF0aGVyIHRoYW4gYW4KKyAqICAgICAgICAgICAgICAgICAgOjptYmVkdGxzX2VjcF9rZXlwYWlyIHN0cnVjdHVyZSB0byBlYXNlIHVzZSB3aXRoIG90aGVyCisgKiAgICAgICAgICAgICAgICAgIHN0cnVjdHVyZXMsIHN1Y2ggYXMgOjptYmVkdGxzX2VjZGhfY29udGV4dCBvcgorICogICAgICAgICAgICAgICAgICA6Om1iZWR0bHNfZWNkc2FfY29udGV4dC4KKyAqCisgKiBccGFyYW0gZ3JwICAgICAgIFRoZSBFQ1AgZ3JvdXAgdGhlIHByaXZhdGUga2V5IHNob3VsZCBiZWxvbmcgdG8uCisgKiAgICAgICAgICAgICAgICAgIFRoaXMgbXVzdCBiZSBpbml0aWFsaXplZCBhbmQgaGF2ZSBncm91cCBwYXJhbWV0ZXJzCisgKiAgICAgICAgICAgICAgICAgIHNldCwgZm9yIGV4YW1wbGUgdGhyb3VnaCBtYmVkdGxzX2VjcF9ncm91cF9sb2FkKCkuCisgKiBccGFyYW0gZCAgICAgICAgIFRoZSBpbnRlZ2VyIHRvIGNoZWNrLiBUaGlzIG11c3QgYmUgaW5pdGlhbGl6ZWQuCisgKgorICogXHJldHVybiAgICAgICAgICBcYyAwIGlmIHRoZSBwb2ludCBpcyBhIHZhbGlkIHByaXZhdGUga2V5LgorICogXHJldHVybiAgICAgICAgICAjTUJFRFRMU19FUlJfRUNQX0lOVkFMSURfS0VZIGlmIHRoZSBwb2ludCBpcyBub3QgYSB2YWxpZAorICogICAgICAgICAgICAgICAgICBwcml2YXRlIGtleSBmb3IgdGhlIGdpdmVuIGN1cnZlLgorICogXHJldHVybiAgICAgICAgICBBbm90aGVyIG5lZ2F0aXZlIGVycm9yIGNvZGUgb24gb3RoZXIga2luZHMgb2YgZmFpbHVyZS4KKyAqLworaW50IG1iZWR0bHNfZWNwX2NoZWNrX3ByaXZrZXkoY29uc3QgbWJlZHRsc19lY3BfZ3JvdXAgKmdycCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IG1iZWR0bHNfbXBpICpkKTsKKworLyoqCisgKiBcYnJpZWYgICAgICAgICAgIFRoaXMgZnVuY3Rpb24gZ2VuZXJhdGVzIGEgcHJpdmF0ZSBrZXkuCisgKgorICogXHBhcmFtIGdycCAgICAgICBUaGUgRUNQIGdyb3VwIHRvIGdlbmVyYXRlIGEgcHJpdmF0ZSBrZXkgZm9yLgorICogICAgICAgICAgICAgICAgICBUaGlzIG11c3QgYmUgaW5pdGlhbGl6ZWQgYW5kIGhhdmUgZ3JvdXAgcGFyYW1ldGVycworICogICAgICAgICAgICAgICAgICBzZXQsIGZvciBleGFtcGxlIHRocm91Z2ggbWJlZHRsc19lY3BfZ3JvdXBfbG9hZCgpLgorICogXHBhcmFtIGQgICAgICAgICBUaGUgZGVzdGluYXRpb24gTVBJIChzZWNyZXQgcGFydCkuIFRoaXMgbXVzdCBiZSBpbml0aWFsaXplZC4KKyAqIFxwYXJhbSBmX3JuZyAgICAgVGhlIFJORyBmdW5jdGlvbi4gVGhpcyBtdXN0IG5vdCBiZSBcYyBOVUxMLgorICogXHBhcmFtIHBfcm5nICAgICBUaGUgUk5HIHBhcmFtZXRlciB0byBiZSBwYXNzZWQgdG8gXHAgZl9ybmcuIFRoaXMgbWF5IGJlCisgKiAgICAgICAgICAgICAgICAgIFxjIE5VTEwgaWYgXHAgZl9ybmcgZG9lc24ndCBuZWVkIGEgY29udGV4dCBhcmd1bWVudC4KKyAqCisgKiBccmV0dXJuICAgICAgICAgIFxjIDAgb24gc3VjY2Vzcy4KKyAqIFxyZXR1cm4gICAgICAgICAgQW4gXGMgTUJFRFRMU19FUlJfRUNQX1hYWCBvciBcYyBNQkVEVExTX01QSV9YWFggZXJyb3IgY29kZQorICogICAgICAgICAgICAgICAgICBvbiBmYWlsdXJlLgorICovCitpbnQgbWJlZHRsc19lY3BfZ2VuX3ByaXZrZXkoY29uc3QgbWJlZHRsc19lY3BfZ3JvdXAgKmdycCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYmVkdGxzX21waSAqZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgKCpmX3JuZykodm9pZCAqLCB1bnNpZ25lZCBjaGFyICosIHNpemVfdCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdm9pZCAqcF9ybmcpOworCisvKioKKyAqIFxicmllZiAgICAgICAgICAgVGhpcyBmdW5jdGlvbiBnZW5lcmF0ZXMgYSBrZXlwYWlyIHdpdGggYSBjb25maWd1cmFibGUgYmFzZQorICogICAgICAgICAgICAgICAgICBwb2ludC4KKyAqCisgKiBcbm90ZSAgICAgICAgICAgIFRoaXMgZnVuY3Rpb24gdXNlcyBiYXJlIGNvbXBvbmVudHMgcmF0aGVyIHRoYW4gYW4KKyAqICAgICAgICAgICAgICAgICAgOjptYmVkdGxzX2VjcF9rZXlwYWlyIHN0cnVjdHVyZSB0byBlYXNlIHVzZSB3aXRoIG90aGVyCisgKiAgICAgICAgICAgICAgICAgIHN0cnVjdHVyZXMsIHN1Y2ggYXMgOjptYmVkdGxzX2VjZGhfY29udGV4dCBvcgorICogICAgICAgICAgICAgICAgICA6Om1iZWR0bHNfZWNkc2FfY29udGV4dC4KKyAqCisgKiBccGFyYW0gZ3JwICAgICAgIFRoZSBFQ1AgZ3JvdXAgdG8gZ2VuZXJhdGUgYSBrZXkgcGFpciBmb3IuCisgKiAgICAgICAgICAgICAgICAgIFRoaXMgbXVzdCBiZSBpbml0aWFsaXplZCBhbmQgaGF2ZSBncm91cCBwYXJhbWV0ZXJzCisgKiAgICAgICAgICAgICAgICAgIHNldCwgZm9yIGV4YW1wbGUgdGhyb3VnaCBtYmVkdGxzX2VjcF9ncm91cF9sb2FkKCkuCisgKiBccGFyYW0gRyAgICAgICAgIFRoZSBiYXNlIHBvaW50IHRvIHVzZS4gVGhpcyBtdXN0IGJlIGluaXRpYWxpemVkCisgKiAgICAgICAgICAgICAgICAgIGFuZCBiZWxvbmcgdG8gXHAgZ3JwLiBJdCByZXBsYWNlcyB0aGUgZGVmYXVsdCBiYXNlCisgKiAgICAgICAgICAgICAgICAgIHBvaW50IFxjIGdycC0+RyB1c2VkIGJ5IG1iZWR0bHNfZWNwX2dlbl9rZXlwYWlyKCkuCisgKiBccGFyYW0gZCAgICAgICAgIFRoZSBkZXN0aW5hdGlvbiBNUEkgKHNlY3JldCBwYXJ0KS4KKyAqICAgICAgICAgICAgICAgICAgVGhpcyBtdXN0IGJlIGluaXRpYWxpemVkLgorICogXHBhcmFtIFEgICAgICAgICBUaGUgZGVzdGluYXRpb24gcG9pbnQgKHB1YmxpYyBwYXJ0KS4KKyAqICAgICAgICAgICAgICAgICAgVGhpcyBtdXN0IGJlIGluaXRpYWxpemVkLgorICogXHBhcmFtIGZfcm5nICAgICBUaGUgUk5HIGZ1bmN0aW9uLiBUaGlzIG11c3Qgbm90IGJlIFxjIE5VTEwuCisgKiBccGFyYW0gcF9ybmcgICAgIFRoZSBSTkcgY29udGV4dCB0byBiZSBwYXNzZWQgdG8gXHAgZl9ybmcuIFRoaXMgbWF5CisgKiAgICAgICAgICAgICAgICAgIGJlIFxjIE5VTEwgaWYgXHAgZl9ybmcgZG9lc24ndCBuZWVkIGEgY29udGV4dCBhcmd1bWVudC4KKyAqCisgKiBccmV0dXJuICAgICAgICAgIFxjIDAgb24gc3VjY2Vzcy4KKyAqIFxyZXR1cm4gICAgICAgICAgQW4gXGMgTUJFRFRMU19FUlJfRUNQX1hYWCBvciBcYyBNQkVEVExTX01QSV9YWFggZXJyb3IgY29kZQorICogICAgICAgICAgICAgICAgICBvbiBmYWlsdXJlLgorICovCitpbnQgbWJlZHRsc19lY3BfZ2VuX2tleXBhaXJfYmFzZShtYmVkdGxzX2VjcF9ncm91cCAqZ3JwLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbWJlZHRsc19lY3BfcG9pbnQgKkcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYmVkdGxzX21waSAqZCwgbWJlZHRsc19lY3BfcG9pbnQgKlEsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgKCpmX3JuZykodm9pZCAqLCB1bnNpZ25lZCBjaGFyICosIHNpemVfdCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2b2lkICpwX3JuZyk7CisKKy8qKgorICogXGJyaWVmICAgICAgICAgICBUaGlzIGZ1bmN0aW9uIGdlbmVyYXRlcyBhbiBFQ1Aga2V5cGFpci4KKyAqCisgKiBcbm90ZSAgICAgICAgICAgIFRoaXMgZnVuY3Rpb24gdXNlcyBiYXJlIGNvbXBvbmVudHMgcmF0aGVyIHRoYW4gYW4KKyAqICAgICAgICAgICAgICAgICAgOjptYmVkdGxzX2VjcF9rZXlwYWlyIHN0cnVjdHVyZSB0byBlYXNlIHVzZSB3aXRoIG90aGVyCisgKiAgICAgICAgICAgICAgICAgIHN0cnVjdHVyZXMsIHN1Y2ggYXMgOjptYmVkdGxzX2VjZGhfY29udGV4dCBvcgorICogICAgICAgICAgICAgICAgICA6Om1iZWR0bHNfZWNkc2FfY29udGV4dC4KKyAqCisgKiBccGFyYW0gZ3JwICAgICAgIFRoZSBFQ1AgZ3JvdXAgdG8gZ2VuZXJhdGUgYSBrZXkgcGFpciBmb3IuCisgKiAgICAgICAgICAgICAgICAgIFRoaXMgbXVzdCBiZSBpbml0aWFsaXplZCBhbmQgaGF2ZSBncm91cCBwYXJhbWV0ZXJzCisgKiAgICAgICAgICAgICAgICAgIHNldCwgZm9yIGV4YW1wbGUgdGhyb3VnaCBtYmVkdGxzX2VjcF9ncm91cF9sb2FkKCkuCisgKiBccGFyYW0gZCAgICAgICAgIFRoZSBkZXN0aW5hdGlvbiBNUEkgKHNlY3JldCBwYXJ0KS4KKyAqICAgICAgICAgICAgICAgICAgVGhpcyBtdXN0IGJlIGluaXRpYWxpemVkLgorICogXHBhcmFtIFEgICAgICAgICBUaGUgZGVzdGluYXRpb24gcG9pbnQgKHB1YmxpYyBwYXJ0KS4KKyAqICAgICAgICAgICAgICAgICAgVGhpcyBtdXN0IGJlIGluaXRpYWxpemVkLgorICogXHBhcmFtIGZfcm5nICAgICBUaGUgUk5HIGZ1bmN0aW9uLiBUaGlzIG11c3Qgbm90IGJlIFxjIE5VTEwuCisgKiBccGFyYW0gcF9ybmcgICAgIFRoZSBSTkcgY29udGV4dCB0byBiZSBwYXNzZWQgdG8gXHAgZl9ybmcuIFRoaXMgbWF5CisgKiAgICAgICAgICAgICAgICAgIGJlIFxjIE5VTEwgaWYgXHAgZl9ybmcgZG9lc24ndCBuZWVkIGEgY29udGV4dCBhcmd1bWVudC4KKyAqCisgKiBccmV0dXJuICAgICAgICAgIFxjIDAgb24gc3VjY2Vzcy4KKyAqIFxyZXR1cm4gICAgICAgICAgQW4gXGMgTUJFRFRMU19FUlJfRUNQX1hYWCBvciBcYyBNQkVEVExTX01QSV9YWFggZXJyb3IgY29kZQorICogICAgICAgICAgICAgICAgICBvbiBmYWlsdXJlLgorICovCitpbnQgbWJlZHRsc19lY3BfZ2VuX2tleXBhaXIobWJlZHRsc19lY3BfZ3JvdXAgKmdycCwgbWJlZHRsc19tcGkgKmQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWJlZHRsc19lY3BfcG9pbnQgKlEsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50ICgqZl9ybmcpKHZvaWQgKiwgdW5zaWduZWQgY2hhciAqLCBzaXplX3QpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZvaWQgKnBfcm5nKTsKKworLyoqCisgKiBcYnJpZWYgICAgICAgICAgIFRoaXMgZnVuY3Rpb24gZ2VuZXJhdGVzIGFuIEVDUCBrZXkuCisgKgorICogXHBhcmFtIGdycF9pZCAgICBUaGUgRUNQIGdyb3VwIGlkZW50aWZpZXIuCisgKiBccGFyYW0ga2V5ICAgICAgIFRoZSBkZXN0aW5hdGlvbiBrZXkuIFRoaXMgbXVzdCBiZSBpbml0aWFsaXplZC4KKyAqIFxwYXJhbSBmX3JuZyAgICAgVGhlIFJORyBmdW5jdGlvbiB0byB1c2UuIFRoaXMgbXVzdCBub3QgYmUgXGMgTlVMTC4KKyAqIFxwYXJhbSBwX3JuZyAgICAgVGhlIFJORyBjb250ZXh0IHRvIGJlIHBhc3NlZCB0byBccCBmX3JuZy4gVGhpcyBtYXkKKyAqICAgICAgICAgICAgICAgICAgYmUgXGMgTlVMTCBpZiBccCBmX3JuZyBkb2Vzbid0IG5lZWQgYSBjb250ZXh0IGFyZ3VtZW50LgorICoKKyAqIFxyZXR1cm4gICAgICAgICAgXGMgMCBvbiBzdWNjZXNzLgorICogXHJldHVybiAgICAgICAgICBBbiBcYyBNQkVEVExTX0VSUl9FQ1BfWFhYIG9yIFxjIE1CRURUTFNfTVBJX1hYWCBlcnJvciBjb2RlCisgKiAgICAgICAgICAgICAgICAgIG9uIGZhaWx1cmUuCisgKi8KK2ludCBtYmVkdGxzX2VjcF9nZW5fa2V5KG1iZWR0bHNfZWNwX2dyb3VwX2lkIGdycF9pZCwgbWJlZHRsc19lY3Bfa2V5cGFpciAqa2V5LAorICAgICAgICAgICAgICAgICAgICAgICAgaW50ICgqZl9ybmcpKHZvaWQgKiwgdW5zaWduZWQgY2hhciAqLCBzaXplX3QpLAorICAgICAgICAgICAgICAgICAgICAgICAgdm9pZCAqcF9ybmcpOworCisvKiogXGJyaWVmICAgICAgICAgIFNldCB0aGUgcHVibGljIGtleSBpbiBhIGtleSBwYWlyIG9iamVjdC4KKyAqCisgKiBcbm90ZSAgICAgICAgICAgIFRoaXMgZnVuY3Rpb24gZG9lcyBub3QgY2hlY2sgdGhhdCB0aGUgcG9pbnQgYWN0dWFsbHkKKyAqICAgICAgICAgICAgICAgICAgYmVsb25ncyB0byB0aGUgZ2l2ZW4gZ3JvdXAuIENhbGwgbWJlZHRsc19lY3BfY2hlY2tfcHVia2V5KCkKKyAqICAgICAgICAgICAgICAgICAgb24gXHAgUSBiZWZvcmUgY2FsbGluZyB0aGlzIGZ1bmN0aW9uIHRvIGNoZWNrIHRoYXQuCisgKgorICogXG5vdGUgICAgICAgICAgICBUaGlzIGZ1bmN0aW9uIGRvZXMgbm90IGNoZWNrIHRoYXQgdGhlIHB1YmxpYyBrZXkgbWF0Y2hlcworICogICAgICAgICAgICAgICAgICB0aGUgcHJpdmF0ZSBrZXkgdGhhdCBpcyBhbHJlYWR5IGluIFxwIGtleSwgaWYgYW55LgorICogICAgICAgICAgICAgICAgICBUbyBjaGVjayB0aGUgY29uc2lzdGVuY3kgb2YgdGhlIHJlc3VsdGluZyBrZXkgcGFpciBvYmplY3QsCisgKiAgICAgICAgICAgICAgICAgIGNhbGwgbWJlZHRsc19lY3BfY2hlY2tfcHViX3ByaXYoKSBhZnRlciBzZXR0aW5nIGJvdGgKKyAqICAgICAgICAgICAgICAgICAgdGhlIHB1YmxpYyBrZXkgYW5kIHRoZSBwcml2YXRlIGtleS4KKyAqCisgKiBccGFyYW0gZ3JwX2lkICAgIFRoZSBFQ1AgZ3JvdXAgaWRlbnRpZmllci4KKyAqIFxwYXJhbSBrZXkgICAgICAgVGhlIGtleSBwYWlyIG9iamVjdC4gSXQgbXVzdCBiZSBpbml0aWFsaXplZC4KKyAqICAgICAgICAgICAgICAgICAgSWYgaXRzIGdyb3VwIGhhcyBhbHJlYWR5IGJlZW4gc2V0LCBpdCBtdXN0IG1hdGNoIFxwIGdycF9pZC4KKyAqICAgICAgICAgICAgICAgICAgSWYgaXRzIGdyb3VwIGhhcyBub3QgYmVlbiBzZXQsIGl0IHdpbGwgYmUgc2V0IHRvIFxwIGdycF9pZC4KKyAqICAgICAgICAgICAgICAgICAgSWYgdGhlIHB1YmxpYyBrZXkgaGFzIGFscmVhZHkgYmVlbiBzZXQsIGl0IGlzIG92ZXJ3cml0dGVuLgorICogXHBhcmFtIFEgICAgICAgICBUaGUgcHVibGljIGtleSB0byBjb3B5LiBUaGlzIG11c3QgYmUgYSBwb2ludCBvbiB0aGUKKyAqICAgICAgICAgICAgICAgICAgY3VydmUgaW5kaWNhdGVkIGJ5IFxwIGdycF9pZC4KKyAqCisgKiBccmV0dXJuICAgICAgICAgIFxjIDAgb24gc3VjY2Vzcy4KKyAqIFxyZXR1cm4gICAgICAgICAgI01CRURUTFNfRVJSX0VDUF9CQURfSU5QVVRfREFUQSBpZiBccCBrZXkgZG9lcyBub3QKKyAqICAgICAgICAgICAgICAgICAgbWF0Y2ggXHAgZ3JwX2lkLgorICogXHJldHVybiAgICAgICAgICAjTUJFRFRMU19FUlJfRUNQX0ZFQVRVUkVfVU5BVkFJTEFCTEUgaWYgdGhlIG9wZXJhdGlvbiBmb3IKKyAqICAgICAgICAgICAgICAgICAgdGhlIGdyb3VwIGlzIG5vdCBpbXBsZW1lbnRlZC4KKyAqIFxyZXR1cm4gICAgICAgICAgI01CRURUTFNfRVJSX01QSV9BTExPQ19GQUlMRUQgb24gbWVtb3J5LWFsbG9jYXRpb24gZmFpbHVyZS4KKyAqIFxyZXR1cm4gICAgICAgICAgQW5vdGhlciBuZWdhdGl2ZSBlcnJvciBjb2RlIG9uIG90aGVyIGtpbmRzIG9mIGZhaWx1cmUuCisgKi8KK2ludCBtYmVkdGxzX2VjcF9zZXRfcHVibGljX2tleShtYmVkdGxzX2VjcF9ncm91cF9pZCBncnBfaWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWJlZHRsc19lY3Bfa2V5cGFpciAqa2V5LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IG1iZWR0bHNfZWNwX3BvaW50ICpRKTsKKworLyoqCisgKiBcYnJpZWYgICAgICAgICAgIFRoaXMgZnVuY3Rpb24gcmVhZHMgYW4gZWxsaXB0aWMgY3VydmUgcHJpdmF0ZSBrZXkuCisgKgorICogXG5vdGUgICAgICAgICAgICBUaGlzIGZ1bmN0aW9uIGRvZXMgbm90IHNldCB0aGUgcHVibGljIGtleSBpbiB0aGUKKyAqICAgICAgICAgICAgICAgICAga2V5IHBhaXIgb2JqZWN0LiBXaXRob3V0IGEgcHVibGljIGtleSwgdGhlIGtleSBwYWlyIG9iamVjdAorICogICAgICAgICAgICAgICAgICBjYW5ub3QgYmUgdXNlZCB3aXRoIG9wZXJhdGlvbnMgdGhhdCByZXF1aXJlIHRoZSBwdWJsaWMga2V5LgorICogICAgICAgICAgICAgICAgICBDYWxsIG1iZWR0bHNfZWNwX2tleXBhaXJfY2FsY19wdWJsaWMoKSB0byBzZXQgdGhlIHB1YmxpYworICogICAgICAgICAgICAgICAgICBrZXkgZnJvbSB0aGUgcHJpdmF0ZSBrZXkuIEFsdGVybmF0aXZlbHksIHlvdSBjYW4gY2FsbAorICogICAgICAgICAgICAgICAgICBtYmVkdGxzX2VjcF9zZXRfcHVibGljX2tleSgpIHRvIHNldCB0aGUgcHVibGljIGtleSBwYXJ0LAorICogICAgICAgICAgICAgICAgICBhbmQgdGhlbiBvcHRpb25hbGx5IG1iZWR0bHNfZWNwX2NoZWNrX3B1Yl9wcml2KCkgdG8gY2hlY2sKKyAqICAgICAgICAgICAgICAgICAgdGhhdCB0aGUgcHJpdmF0ZSBhbmQgcHVibGljIHBhcnRzIGFyZSBjb25zaXN0ZW50LgorICoKKyAqIFxub3RlICAgICAgICAgICAgSWYgYSBwdWJsaWMga2V5IGhhcyBhbHJlYWR5IGJlZW4gc2V0IGluIHRoZSBrZXkgcGFpcgorICogICAgICAgICAgICAgICAgICBvYmplY3QsIHRoaXMgZnVuY3Rpb24gZG9lcyBub3QgY2hlY2sgdGhhdCBpdCBpcyBjb25zaXN0ZW50CisgKiAgICAgICAgICAgICAgICAgIHdpdGggdGhlIHByaXZhdGUga2V5LiBDYWxsIG1iZWR0bHNfZWNwX2NoZWNrX3B1Yl9wcml2KCkKKyAqICAgICAgICAgICAgICAgICAgYWZ0ZXIgc2V0dGluZyBib3RoIHRoZSBwdWJsaWMga2V5IGFuZCB0aGUgcHJpdmF0ZSBrZXkKKyAqICAgICAgICAgICAgICAgICAgdG8gbWFrZSB0aGF0IGNoZWNrLgorICoKKyAqIFxwYXJhbSBncnBfaWQgICAgVGhlIEVDUCBncm91cCBpZGVudGlmaWVyLgorICogXHBhcmFtIGtleSAgICAgICBUaGUgZGVzdGluYXRpb24ga2V5LgorICogXHBhcmFtIGJ1ZiAgICAgICBUaGUgYnVmZmVyIGNvbnRhaW5pbmcgdGhlIGJpbmFyeSByZXByZXNlbnRhdGlvbiBvZiB0aGUKKyAqICAgICAgICAgICAgICAgICAga2V5LiAoQmlnIGVuZGlhbiBpbnRlZ2VyIGZvciBXZWllcnN0cmFzcyBjdXJ2ZXMsIGJ5dGUKKyAqICAgICAgICAgICAgICAgICAgc3RyaW5nIGZvciBNb250Z29tZXJ5IGN1cnZlcy4pCisgKiBccGFyYW0gYnVmbGVuICAgIFRoZSBsZW5ndGggb2YgdGhlIGJ1ZmZlciBpbiBieXRlcy4KKyAqCisgKiBccmV0dXJuICAgICAgICAgIFxjIDAgb24gc3VjY2Vzcy4KKyAqIFxyZXR1cm4gICAgICAgICAgI01CRURUTFNfRVJSX0VDUF9JTlZBTElEX0tFWSBlcnJvciBpZiB0aGUga2V5IGlzCisgKiAgICAgICAgICAgICAgICAgIGludmFsaWQuCisgKiBccmV0dXJuICAgICAgICAgICNNQkVEVExTX0VSUl9NUElfQUxMT0NfRkFJTEVEIGlmIG1lbW9yeSBhbGxvY2F0aW9uIGZhaWxlZC4KKyAqIFxyZXR1cm4gICAgICAgICAgI01CRURUTFNfRVJSX0VDUF9GRUFUVVJFX1VOQVZBSUxBQkxFIGlmIHRoZSBvcGVyYXRpb24gZm9yCisgKiAgICAgICAgICAgICAgICAgIHRoZSBncm91cCBpcyBub3QgaW1wbGVtZW50ZWQuCisgKiBccmV0dXJuICAgICAgICAgIEFub3RoZXIgbmVnYXRpdmUgZXJyb3IgY29kZSBvbiBkaWZmZXJlbnQga2luZHMgb2YgZmFpbHVyZS4KKyAqLworaW50IG1iZWR0bHNfZWNwX3JlYWRfa2V5KG1iZWR0bHNfZWNwX2dyb3VwX2lkIGdycF9pZCwgbWJlZHRsc19lY3Bfa2V5cGFpciAqa2V5LAorICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgKmJ1Ziwgc2l6ZV90IGJ1Zmxlbik7CisKKyNpZiAhZGVmaW5lZChNQkVEVExTX0RFUFJFQ0FURURfUkVNT1ZFRCkKKy8qKgorICogXGJyaWVmICAgICAgICAgICBUaGlzIGZ1bmN0aW9uIGV4cG9ydHMgYW4gZWxsaXB0aWMgY3VydmUgcHJpdmF0ZSBrZXkuCisgKgorICogXGRlcHJlY2F0ZWQgICAgICBOb3RlIHRoYXQgYWx0aG91Z2ggdGhpcyBmdW5jdGlvbiBhY2NlcHRzIGFuIG91dHB1dAorICogICAgICAgICAgICAgICAgICBidWZmZXIgdGhhdCBpcyBzbWFsbGVyIG9yIGxhcmdlciB0aGFuIHRoZSBrZXksIG1vc3Qga2V5CisgKiAgICAgICAgICAgICAgICAgIGltcG9ydCBpbnRlcmZhY2VzIHJlcXVpcmUgdGhlIG91dHB1dCB0byBoYXZlIGV4YWN0bHkKKyAqICAgICAgICAgICAgICAgICAga2V5J3Mgbm9taW5hbCBsZW5ndGguIEl0IGlzIGdlbmVyYWxseSBzaW1wbGVzdCB0bworICogICAgICAgICAgICAgICAgICBwYXNzIHRoZSBrZXkncyBub21pbmFsIGxlbmd0aCBhcyBcYyBidWZsZW4sIGFmdGVyCisgKiAgICAgICAgICAgICAgICAgIGNoZWNraW5nIHRoYXQgdGhlIG91dHB1dCBidWZmZXIgaXMgbGFyZ2UgZW5vdWdoLgorICogICAgICAgICAgICAgICAgICBTZWUgdGhlIGRlc2NyaXB0aW9uIG9mIHRoZSBccCBidWZsZW4gcGFyYW1ldGVyIGZvcgorICogICAgICAgICAgICAgICAgICBob3cgdG8gY2FsY3VsYXRlIHRoZSBub21pbmFsIGxlbmd0aC4KKyAqICAgICAgICAgICAgICAgICAgVG8gYXZvaWQgdGhpcyBkaWZmaWN1bHR5LCB1c2UgbWJlZHRsc19lY3Bfd3JpdGVfa2V5X2V4dCgpCisgKiAgICAgICAgICAgICAgICAgIGluc3RlYWQuCisgKiAgICAgICAgICAgICAgICAgIG1iZWR0bHNfZWNwX3dyaXRlX2tleSgpIGlzIGRlcHJlY2F0ZWQgYW5kIHdpbGwgYmUKKyAqICAgICAgICAgICAgICAgICAgcmVtb3ZlZCBpbiBhIGZ1dHVyZSB2ZXJzaW9uIG9mIHRoZSBsaWJyYXJ5LgorICoKKyAqIFxub3RlICAgICAgICAgICAgSWYgdGhlIHByaXZhdGUga2V5IHdhcyBub3Qgc2V0IGluIFxwIGtleSwKKyAqICAgICAgICAgICAgICAgICAgdGhlIG91dHB1dCBpcyB1bnNwZWNpZmllZC4gRnV0dXJlIHZlcnNpb25zCisgKiAgICAgICAgICAgICAgICAgIG1heSByZXR1cm4gYW4gZXJyb3IgaW4gdGhhdCBjYXNlLgorICoKKyAqIFxwYXJhbSBrZXkgICAgICAgVGhlIHByaXZhdGUga2V5LgorICogXHBhcmFtIGJ1ZiAgICAgICBUaGUgb3V0cHV0IGJ1ZmZlciBmb3IgY29udGFpbmluZyB0aGUgYmluYXJ5IHJlcHJlc2VudGF0aW9uCisgKiAgICAgICAgICAgICAgICAgIG9mIHRoZSBrZXkuCisgKiAgICAgICAgICAgICAgICAgIEZvciBXZWllcnN0cmFzcyBjdXJ2ZXMsIHRoaXMgaXMgdGhlIGJpZy1lbmRpYW4KKyAqICAgICAgICAgICAgICAgICAgcmVwcmVzZW50YXRpb24sIHBhZGRlZCB3aXRoIG51bGwgYnl0ZXMgYXQgdGhlIGJlZ2lubmluZworICogICAgICAgICAgICAgICAgICB0byByZWFjaCBccCBidWZsZW4gYnl0ZXMuCisgKiAgICAgICAgICAgICAgICAgIEZvciBNb250Z29tZXJ5IGN1cnZlcywgdGhpcyBpcyB0aGUgc3RhbmRhcmQgYnl0ZSBzdHJpbmcKKyAqICAgICAgICAgICAgICAgICAgcmVwcmVzZW50YXRpb24gKHdoaWNoIGlzIGxpdHRsZS1lbmRpYW4pLCBwYWRkZWQgd2l0aAorICogICAgICAgICAgICAgICAgICBudWxsIGJ5dGVzIGF0IHRoZSBlbmQgdG8gcmVhY2ggXHAgYnVmbGVuIGJ5dGVzLgorICogXHBhcmFtIGJ1ZmxlbiAgICBUaGUgdG90YWwgbGVuZ3RoIG9mIHRoZSBidWZmZXIgaW4gYnl0ZXMuCisgKiAgICAgICAgICAgICAgICAgIFRoZSBsZW5ndGggb2YgdGhlIG91dHB1dCBpcworICogICAgICAgICAgICAgICAgICAoYGdycC0+bmJpdHNgICsgNykgLyA4IGJ5dGVzCisgKiAgICAgICAgICAgICAgICAgIHdoZXJlIGBncnAtPm5iaXRzYCBpcyB0aGUgcHJpdmF0ZSBrZXkgc2l6ZSBpbiBiaXRzLgorICogICAgICAgICAgICAgICAgICBGb3IgV2VpZXJzdHJhc3Mga2V5cywgaWYgdGhlIG91dHB1dCBidWZmZXIgaXMgc21hbGxlciwKKyAqICAgICAgICAgICAgICAgICAgbGVhZGluZyB6ZXJvcyBhcmUgdHJpbW1lZCB0byBmaXQgaWYgcG9zc2libGUuIEZvcgorICogICAgICAgICAgICAgICAgICBNb250Z29tZXJ5IGtleXMsIHRoZSBvdXRwdXQgYnVmZmVyIG11c3QgYWx3YXlzIGJlIGxhcmdlCisgKiAgICAgICAgICAgICAgICAgIGVub3VnaCBmb3IgdGhlIG5vbWluYWwgbGVuZ3RoLgorICoKKyAqIFxyZXR1cm4gICAgICAgICAgXGMgMCBvbiBzdWNjZXNzLgorICogXHJldHVybiAgICAgICAgICAjTUJFRFRMU19FUlJfRUNQX0JVRkZFUl9UT09fU01BTEwgb3IKKyAqICAgICAgICAgICAgICAgICAgI01CRURUTFNfRVJSX01QSV9CVUZGRVJfVE9PX1NNQUxMIGlmIHRoZSBccCBrZXkKKyAqICAgICAgICAgICAgICAgICAgcmVwcmVzZW50YXRpb24gaXMgbGFyZ2VyIHRoYW4gdGhlIGF2YWlsYWJsZSBzcGFjZSBpbiBccCBidWYuCisgKiBccmV0dXJuICAgICAgICAgIEFub3RoZXIgbmVnYXRpdmUgZXJyb3IgY29kZSBvbiBkaWZmZXJlbnQga2luZHMgb2YgZmFpbHVyZS4KKyAqLworaW50IE1CRURUTFNfREVQUkVDQVRFRCBtYmVkdGxzX2VjcF93cml0ZV9rZXkobWJlZHRsc19lY3Bfa2V5cGFpciAqa2V5LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgY2hhciAqYnVmLCBzaXplX3QgYnVmbGVuKTsKKyNlbmRpZiAvKiBNQkVEVExTX0RFUFJFQ0FURURfUkVNT1ZFRCAqLworCisvKioKKyAqIFxicmllZiAgICAgICAgICAgVGhpcyBmdW5jdGlvbiBleHBvcnRzIGFuIGVsbGlwdGljIGN1cnZlIHByaXZhdGUga2V5LgorICoKKyAqIFxwYXJhbSBrZXkgICAgICAgVGhlIHByaXZhdGUga2V5LgorICogXHBhcmFtIG9sZW4gICAgICBPbiBzdWNjZXNzLCB0aGUgbGVuZ3RoIG9mIHRoZSBwcml2YXRlIGtleS4KKyAqICAgICAgICAgICAgICAgICAgVGhpcyBpcyBhbHdheXMgKGBncnAtPm5iaXRzYCArIDcpIC8gOCBieXRlcworICogICAgICAgICAgICAgICAgICB3aGVyZSBgZ3JwLT5uYml0c2AgaXMgdGhlIHByaXZhdGUga2V5IHNpemUgaW4gYml0cy4KKyAqIFxwYXJhbSBidWYgICAgICAgVGhlIG91dHB1dCBidWZmZXIgZm9yIGNvbnRhaW5pbmcgdGhlIGJpbmFyeSByZXByZXNlbnRhdGlvbgorICogICAgICAgICAgICAgICAgICBvZiB0aGUga2V5LgorICogXHBhcmFtIGJ1ZmxlbiAgICBUaGUgdG90YWwgbGVuZ3RoIG9mIHRoZSBidWZmZXIgaW4gYnl0ZXMuCisgKiAgICAgICAgICAgICAgICAgICNNQkVEVExTX0VDUF9NQVhfQllURVMgaXMgYWx3YXlzIHN1ZmZpY2llbnQuCisgKgorICogXHJldHVybiAgICAgICAgICBcYyAwIG9uIHN1Y2Nlc3MuCisgKiBccmV0dXJuICAgICAgICAgICNNQkVEVExTX0VSUl9FQ1BfQlVGRkVSX1RPT19TTUFMTCBpZiB0aGUgXHAga2V5CisgKiAgICAgICAgICAgICAgICAgIHJlcHJlc2VudGF0aW9uIGlzIGxhcmdlciB0aGFuIHRoZSBhdmFpbGFibGUgc3BhY2UgaW4gXHAgYnVmLgorICogXHJldHVybiAgICAgICAgICAjTUJFRFRMU19FUlJfRUNQX0JBRF9JTlBVVF9EQVRBIGlmIG5vIHByaXZhdGUga2V5IGlzCisgKiAgICAgICAgICAgICAgICAgIHNldCBpbiBccCBrZXkuCisgKiBccmV0dXJuICAgICAgICAgIEFub3RoZXIgbmVnYXRpdmUgZXJyb3IgY29kZSBvbiBkaWZmZXJlbnQga2luZHMgb2YgZmFpbHVyZS4KKyAqLworaW50IG1iZWR0bHNfZWNwX3dyaXRlX2tleV9leHQoY29uc3QgbWJlZHRsc19lY3Bfa2V5cGFpciAqa2V5LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90ICpvbGVuLCB1bnNpZ25lZCBjaGFyICpidWYsIHNpemVfdCBidWZsZW4pOworCisvKioKKyAqIFxicmllZiAgICAgICAgICAgVGhpcyBmdW5jdGlvbiBleHBvcnRzIGFuIGVsbGlwdGljIGN1cnZlIHB1YmxpYyBrZXkuCisgKgorICogXG5vdGUgICAgICAgICAgICBJZiB0aGUgcHVibGljIGtleSB3YXMgbm90IHNldCBpbiBccCBrZXksCisgKiAgICAgICAgICAgICAgICAgIHRoZSBvdXRwdXQgaXMgdW5zcGVjaWZpZWQuIEZ1dHVyZSB2ZXJzaW9ucworICogICAgICAgICAgICAgICAgICBtYXkgcmV0dXJuIGFuIGVycm9yIGluIHRoYXQgY2FzZS4KKyAqCisgKiBccGFyYW0ga2V5ICAgICAgIFRoZSBwdWJsaWMga2V5LgorICogXHBhcmFtIGZvcm1hdCAgICBUaGUgcG9pbnQgZm9ybWF0LiBUaGlzIG11c3QgYmUgZWl0aGVyCisgKiAgICAgICAgICAgICAgICAgICNNQkVEVExTX0VDUF9QRl9DT01QUkVTU0VEIG9yICNNQkVEVExTX0VDUF9QRl9VTkNPTVBSRVNTRUQuCisgKiAgICAgICAgICAgICAgICAgIChGb3IgZ3JvdXBzIHdpdGhvdXQgdGhlc2UgZm9ybWF0cywgdGhpcyBwYXJhbWV0ZXIgaXMKKyAqICAgICAgICAgICAgICAgICAgaWdub3JlZC4gQnV0IGl0IHN0aWxsIGhhcyB0byBiZSBlaXRoZXIgb2YgdGhlIGFib3ZlCisgKiAgICAgICAgICAgICAgICAgIHZhbHVlcy4pCisgKiBccGFyYW0gb2xlbiAgICAgIFRoZSBhZGRyZXNzIGF0IHdoaWNoIHRvIHN0b3JlIHRoZSBsZW5ndGggb2YKKyAqICAgICAgICAgICAgICAgICAgdGhlIG91dHB1dCBpbiBCeXRlcy4gVGhpcyBtdXN0IG5vdCBiZSBcYyBOVUxMLgorICogXHBhcmFtIGJ1ZiAgICAgICBUaGUgb3V0cHV0IGJ1ZmZlci4gVGhpcyBtdXN0IGJlIGEgd3JpdGFibGUgYnVmZmVyCisgKiAgICAgICAgICAgICAgICAgIG9mIGxlbmd0aCBccCBidWZsZW4gQnl0ZXMuCisgKiBccGFyYW0gYnVmbGVuICAgIFRoZSBsZW5ndGggb2YgdGhlIG91dHB1dCBidWZmZXIgXHAgYnVmIGluIEJ5dGVzLgorICoKKyAqIFxyZXR1cm4gICAgICAgICAgXGMgMCBvbiBzdWNjZXNzLgorICogXHJldHVybiAgICAgICAgICAjTUJFRFRMU19FUlJfRUNQX0JVRkZFUl9UT09fU01BTEwgaWYgdGhlIG91dHB1dCBidWZmZXIKKyAqICAgICAgICAgICAgICAgICAgaXMgdG9vIHNtYWxsIHRvIGhvbGQgdGhlIHBvaW50LgorICogXHJldHVybiAgICAgICAgICAjTUJFRFRMU19FUlJfRUNQX0ZFQVRVUkVfVU5BVkFJTEFCTEUgaWYgdGhlIHBvaW50IGZvcm1hdAorICogICAgICAgICAgICAgICAgICBvciB0aGUgZXhwb3J0IGZvciB0aGUgZ2l2ZW4gZ3JvdXAgaXMgbm90IGltcGxlbWVudGVkLgorICogXHJldHVybiAgICAgICAgICBBbm90aGVyIG5lZ2F0aXZlIGVycm9yIGNvZGUgb24gb3RoZXIga2luZHMgb2YgZmFpbHVyZS4KKyAqLworaW50IG1iZWR0bHNfZWNwX3dyaXRlX3B1YmxpY19rZXkoY29uc3QgbWJlZHRsc19lY3Bfa2V5cGFpciAqa2V5LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGZvcm1hdCwgc2l6ZV90ICpvbGVuLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgY2hhciAqYnVmLCBzaXplX3QgYnVmbGVuKTsKKworLyoqCisgKiBcYnJpZWYgICAgICAgICAgIFRoaXMgZnVuY3Rpb24gY2hlY2tzIHRoYXQgdGhlIGtleXBhaXIgb2JqZWN0cworICogICAgICAgICAgICAgICAgICBccCBwdWIgYW5kIFxwIHBydiBoYXZlIHRoZSBzYW1lIGdyb3VwIGFuZCB0aGUKKyAqICAgICAgICAgICAgICAgICAgc2FtZSBwdWJsaWMgcG9pbnQsIGFuZCB0aGF0IHRoZSBwcml2YXRlIGtleSBpbgorICogICAgICAgICAgICAgICAgICBccCBwcnYgaXMgY29uc2lzdGVudCB3aXRoIHRoZSBwdWJsaWMga2V5LgorICoKKyAqIFxwYXJhbSBwdWIgICAgICAgVGhlIGtleXBhaXIgc3RydWN0dXJlIGhvbGRpbmcgdGhlIHB1YmxpYyBrZXkuIFRoaXMKKyAqICAgICAgICAgICAgICAgICAgbXVzdCBiZSBpbml0aWFsaXplZC4gSWYgaXQgY29udGFpbnMgYSBwcml2YXRlIGtleSwgdGhhdAorICogICAgICAgICAgICAgICAgICBwYXJ0IGlzIGlnbm9yZWQuCisgKiBccGFyYW0gcHJ2ICAgICAgIFRoZSBrZXlwYWlyIHN0cnVjdHVyZSBob2xkaW5nIHRoZSBmdWxsIGtleXBhaXIuCisgKiAgICAgICAgICAgICAgICAgIFRoaXMgbXVzdCBiZSBpbml0aWFsaXplZC4KKyAqIFxwYXJhbSBmX3JuZyAgICAgVGhlIFJORyBmdW5jdGlvbi4gVGhpcyBtdXN0IG5vdCBiZSBcYyBOVUxMLgorICogXHBhcmFtIHBfcm5nICAgICBUaGUgUk5HIGNvbnRleHQgdG8gYmUgcGFzc2VkIHRvIFxwIGZfcm5nLiBUaGlzIG1heSBiZSBcYworICogICAgICAgICAgICAgICAgICBOVUxMIGlmIFxwIGZfcm5nIGRvZXNuJ3QgbmVlZCBhIGNvbnRleHQuCisgKgorICogXHJldHVybiAgICAgICAgICBcYyAwIG9uIHN1Y2Nlc3MsIG1lYW5pbmcgdGhhdCB0aGUga2V5cyBhcmUgdmFsaWQgYW5kIG1hdGNoLgorICogXHJldHVybiAgICAgICAgICAjTUJFRFRMU19FUlJfRUNQX0JBRF9JTlBVVF9EQVRBIGlmIHRoZSBrZXlzIGFyZSBpbnZhbGlkIG9yIGRvIG5vdCBtYXRjaC4KKyAqIFxyZXR1cm4gICAgICAgICAgQW4gXGMgTUJFRFRMU19FUlJfRUNQX1hYWCBvciBhbiBcYyBNQkVEVExTX0VSUl9NUElfWFhYCisgKiAgICAgICAgICAgICAgICAgIGVycm9yIGNvZGUgb24gY2FsY3VsYXRpb24gZmFpbHVyZS4KKyAqLworaW50IG1iZWR0bHNfZWNwX2NoZWNrX3B1Yl9wcml2KAorICAgIGNvbnN0IG1iZWR0bHNfZWNwX2tleXBhaXIgKnB1YiwgY29uc3QgbWJlZHRsc19lY3Bfa2V5cGFpciAqcHJ2LAorICAgIGludCAoKmZfcm5nKSh2b2lkICosIHVuc2lnbmVkIGNoYXIgKiwgc2l6ZV90KSwgdm9pZCAqcF9ybmcpOworCisvKiogXGJyaWVmICAgICAgICAgIENhbGN1bGF0ZSB0aGUgcHVibGljIGtleSBmcm9tIGEgcHJpdmF0ZSBrZXkgaW4gYSBrZXkgcGFpci4KKyAqCisgKiBccGFyYW0ga2V5ICAgICAgIEEga2V5cGFpciBzdHJ1Y3R1cmUuIEl0IG11c3QgaGF2ZSBhIHByaXZhdGUga2V5IHNldC4KKyAqICAgICAgICAgICAgICAgICAgSWYgdGhlIHB1YmxpYyBrZXkgaXMgc2V0LCBpdCB3aWxsIGJlIG92ZXJ3cml0dGVuLgorICogXHBhcmFtIGZfcm5nICAgICBUaGUgUk5HIGZ1bmN0aW9uLiBUaGlzIG11c3Qgbm90IGJlIFxjIE5VTEwuCisgKiBccGFyYW0gcF9ybmcgICAgIFRoZSBSTkcgY29udGV4dCB0byBiZSBwYXNzZWQgdG8gXHAgZl9ybmcuIFRoaXMgbWF5IGJlIFxjCisgKiAgICAgICAgICAgICAgICAgIE5VTEwgaWYgXHAgZl9ybmcgZG9lc24ndCBuZWVkIGEgY29udGV4dC4KKyAqCisgKiBccmV0dXJuICAgICAgICAgIFxjIDAgb24gc3VjY2Vzcy4gVGhlIGtleSBwYWlyIG9iamVjdCBjYW4gYmUgdXNlZCBmb3IKKyAqICAgICAgICAgICAgICAgICAgb3BlcmF0aW9ucyB0aGF0IHJlcXVpcmUgdGhlIHB1YmxpYyBrZXkuCisgKiBccmV0dXJuICAgICAgICAgIEFuIFxjIE1CRURUTFNfRVJSX0VDUF9YWFggb3IgYW4gXGMgTUJFRFRMU19FUlJfTVBJX1hYWAorICogICAgICAgICAgICAgICAgICBlcnJvciBjb2RlIG9uIGNhbGN1bGF0aW9uIGZhaWx1cmUuCisgKi8KK2ludCBtYmVkdGxzX2VjcF9rZXlwYWlyX2NhbGNfcHVibGljKAorICAgIG1iZWR0bHNfZWNwX2tleXBhaXIgKmtleSwKKyAgICBpbnQgKCpmX3JuZykodm9pZCAqLCB1bnNpZ25lZCBjaGFyICosIHNpemVfdCksIHZvaWQgKnBfcm5nKTsKKworLyoqIFxicmllZiAgICAgICAgICBRdWVyeSB0aGUgZ3JvdXAgdGhhdCBhIGtleSBwYWlyIGJlbG9uZ3MgdG8uCisgKgorICogXHBhcmFtIGtleSAgICAgICBUaGUga2V5IHBhaXIgdG8gcXVlcnkuCisgKgorICogXHJldHVybiAgICAgICAgICBUaGUgZ3JvdXAgSUQgZm9yIHRoZSBncm91cCByZWdpc3RlcmVkIGluIHRoZSBrZXkgcGFpcgorICogICAgICAgICAgICAgICAgICBvYmplY3QuCisgKiAgICAgICAgICAgICAgICAgIFRoaXMgaXMgXGMgTUJFRFRMU19FQ1BfRFBfTk9ORSBpZiBubyBncm91cCBoYXMgYmVlbiBzZXQKKyAqICAgICAgICAgICAgICAgICAgaW4gdGhlIGtleSBwYWlyIG9iamVjdC4KKyAqLworbWJlZHRsc19lY3BfZ3JvdXBfaWQgbWJlZHRsc19lY3Bfa2V5cGFpcl9nZXRfZ3JvdXBfaWQoCisgICAgY29uc3QgbWJlZHRsc19lY3Bfa2V5cGFpciAqa2V5KTsKKworLyoqCisgKiBcYnJpZWYgICAgICAgICAgIFRoaXMgZnVuY3Rpb24gZXhwb3J0cyBnZW5lcmljIGtleS1wYWlyIHBhcmFtZXRlcnMuCisgKgorICogICAgICAgICAgICAgICAgICBFYWNoIG9mIHRoZSBvdXRwdXQgcGFyYW1ldGVycyBjYW4gYmUgYSBudWxsIHBvaW50ZXIKKyAqICAgICAgICAgICAgICAgICAgaWYgeW91IGRvIG5vdCBuZWVkIHRoYXQgcGFyYW1ldGVyLgorICoKKyAqIFxub3RlICAgICAgICAgICAgSWYgdGhlIHByaXZhdGUga2V5IG9yIHRoZSBwdWJsaWMga2V5IHdhcyBub3Qgc2V0IGluIFxwIGtleSwKKyAqICAgICAgICAgICAgICAgICAgdGhlIGNvcnJlc3BvbmRpbmcgb3V0cHV0IGlzIHVuc3BlY2lmaWVkLiBGdXR1cmUgdmVyc2lvbnMKKyAqICAgICAgICAgICAgICAgICAgbWF5IHJldHVybiBhbiBlcnJvciBpbiB0aGF0IGNhc2UuCisgKgorICogXHBhcmFtIGtleSAgICAgICBUaGUga2V5IHBhaXIgdG8gZXhwb3J0IGZyb20uCisgKiBccGFyYW0gZ3JwICAgICAgIFNsb3QgZm9yIGV4cG9ydGVkIEVDUCBncm91cC4KKyAqICAgICAgICAgICAgICAgICAgSXQgbXVzdCBlaXRoZXIgYmUgbnVsbCBvciBwb2ludCB0byBhbiBpbml0aWFsaXplZCBFQ1AgZ3JvdXAuCisgKiBccGFyYW0gZCAgICAgICAgIFNsb3QgZm9yIHRoZSBleHBvcnRlZCBzZWNyZXQgdmFsdWUuCisgKiAgICAgICAgICAgICAgICAgIEl0IG11c3QgZWl0aGVyIGJlIG51bGwgb3IgcG9pbnQgdG8gYW4gaW5pdGlhbGl6ZWQgbXBpLgorICogXHBhcmFtIFEgICAgICAgICBTbG90IGZvciB0aGUgZXhwb3J0ZWQgcHVibGljIHZhbHVlLgorICogICAgICAgICAgICAgICAgICBJdCBtdXN0IGVpdGhlciBiZSBudWxsIG9yIHBvaW50IHRvIGFuIGluaXRpYWxpemVkIEVDUCBwb2ludC4KKyAqCisgKiBccmV0dXJuICAgICAgICAgIFxjIDAgb24gc3VjY2VzcywKKyAqIFxyZXR1cm4gICAgICAgICAgI01CRURUTFNfRVJSX01QSV9BTExPQ19GQUlMRUQgb24gbWVtb3J5LWFsbG9jYXRpb24gZmFpbHVyZS4KKyAqIFxyZXR1cm4gICAgICAgICAgI01CRURUTFNfRVJSX0VDUF9GRUFUVVJFX1VOQVZBSUxBQkxFIGlmIGtleSBpZCBkb2Vzbid0CisgKiAgICAgICAgICAgICAgICAgIGNvcnJlc3BvbmQgdG8gYSBrbm93biBncm91cC4KKyAqIFxyZXR1cm4gICAgICAgICAgQW5vdGhlciBuZWdhdGl2ZSBlcnJvciBjb2RlIG9uIG90aGVyIGtpbmRzIG9mIGZhaWx1cmUuCisgKi8KK2ludCBtYmVkdGxzX2VjcF9leHBvcnQoY29uc3QgbWJlZHRsc19lY3Bfa2V5cGFpciAqa2V5LCBtYmVkdGxzX2VjcF9ncm91cCAqZ3JwLAorICAgICAgICAgICAgICAgICAgICAgICBtYmVkdGxzX21waSAqZCwgbWJlZHRsc19lY3BfcG9pbnQgKlEpOworCisjaWYgZGVmaW5lZChNQkVEVExTX1NFTEZfVEVTVCkKKworLyoqCisgKiBcYnJpZWYgICAgICAgICAgVGhlIEVDUCBjaGVja3VwIHJvdXRpbmUuCisgKgorICogXHJldHVybiAgICAgICAgIFxjIDAgb24gc3VjY2Vzcy4KKyAqIFxyZXR1cm4gICAgICAgICBcYyAxIG9uIGZhaWx1cmUuCisgKi8KK2ludCBtYmVkdGxzX2VjcF9zZWxmX3Rlc3QoaW50IHZlcmJvc2UpOworCisjZW5kaWYgLyogTUJFRFRMU19TRUxGX1RFU1QgKi8KKworI2lmZGVmIF9fY3BsdXNwbHVzCit9CisjZW5kaWYKKworI2VuZGlmIC8qIGVjcC5oICovCmRpZmYgLS1naXQgYS90Zi1wc2EtY3J5cHRvL2RyaXZlcnMvYnVpbHRpbi9pbmNsdWRlL21iZWR0bHMvZW50cm9weS5oIGIvdGYtcHNhLWNyeXB0by9kcml2ZXJzL2J1aWx0aW4vaW5jbHVkZS9tYmVkdGxzL2VudHJvcHkuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41N2FmMDJhCi0tLSAvZGV2L251bGwKKysrIGIvdGYtcHNhLWNyeXB0by9kcml2ZXJzL2J1aWx0aW4vaW5jbHVkZS9tYmVkdGxzL2VudHJvcHkuaApAQCAtMCwwICsxLDI3MyBAQAorLyoqCisgKiBcZmlsZSBlbnRyb3B5LmgKKyAqCisgKiBcYnJpZWYgRW50cm9weSBhY2N1bXVsYXRvciBpbXBsZW1lbnRhdGlvbgorICovCisvKgorICogIENvcHlyaWdodCBUaGUgTWJlZCBUTFMgQ29udHJpYnV0b3JzCisgKiAgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjAgT1IgR1BMLTIuMC1vci1sYXRlcgorICovCisjaWZuZGVmIE1CRURUTFNfRU5UUk9QWV9ICisjZGVmaW5lIE1CRURUTFNfRU5UUk9QWV9ICisjaW5jbHVkZSAibWJlZHRscy9wcml2YXRlX2FjY2Vzcy5oIgorCisjaW5jbHVkZSAibWJlZHRscy9idWlsZF9pbmZvLmgiCisKKyNpbmNsdWRlIDxzdGRkZWYuaD4KKworI2luY2x1ZGUgIm1kLmgiCisKKyNpZiBkZWZpbmVkKE1CRURUTFNfTURfQ0FOX1NIQTUxMikgJiYgIWRlZmluZWQoTUJFRFRMU19FTlRST1BZX0ZPUkNFX1NIQTI1NikKKyNkZWZpbmUgTUJFRFRMU19FTlRST1BZX1NIQTUxMl9BQ0NVTVVMQVRPUgorI2RlZmluZSBNQkVEVExTX0VOVFJPUFlfTUQgIE1CRURUTFNfTURfU0hBNTEyCisjZGVmaW5lIE1CRURUTFNfRU5UUk9QWV9CTE9DS19TSVpFICAgICAgNjQgICAgICAvKio8IEJsb2NrIHNpemUgb2YgZW50cm9weSBhY2N1bXVsYXRvciAoU0hBLTUxMikgKi8KKyNlbHNlCisjaWYgZGVmaW5lZChQU0FfV0FOVF9BTEdfU0hBXzI1NikKKyNkZWZpbmUgTUJFRFRMU19FTlRST1BZX1NIQTI1Nl9BQ0NVTVVMQVRPUgorI2RlZmluZSBNQkVEVExTX0VOVFJPUFlfTUQgIE1CRURUTFNfTURfU0hBMjU2CisjZGVmaW5lIE1CRURUTFNfRU5UUk9QWV9CTE9DS19TSVpFICAgICAgMzIgICAgICAvKio8IEJsb2NrIHNpemUgb2YgZW50cm9weSBhY2N1bXVsYXRvciAoU0hBLTI1NikgKi8KKyNlbmRpZgorI2VuZGlmCisKKyNpZiBkZWZpbmVkKE1CRURUTFNfVEhSRUFESU5HX0MpCisjaW5jbHVkZSAibWJlZHRscy90aHJlYWRpbmcuaCIKKyNlbmRpZgorCisKKy8qKiBDcml0aWNhbCBlbnRyb3B5IHNvdXJjZSBmYWlsdXJlLiAqLworI2RlZmluZSBNQkVEVExTX0VSUl9FTlRST1BZX1NPVVJDRV9GQUlMRUQgICAgICAgICAgICAgICAgIC0weDAwM0MKKy8qKiBObyBtb3JlIHNvdXJjZXMgY2FuIGJlIGFkZGVkLiAqLworI2RlZmluZSBNQkVEVExTX0VSUl9FTlRST1BZX01BWF9TT1VSQ0VTICAgICAgICAgICAgICAgICAgIC0weDAwM0UKKy8qKiBObyBzb3VyY2VzIGhhdmUgYmVlbiBhZGRlZCB0byBwb2xsLiAqLworI2RlZmluZSBNQkVEVExTX0VSUl9FTlRST1BZX05PX1NPVVJDRVNfREVGSU5FRCAgICAgICAgICAgIC0weDAwNDAKKy8qKiBObyBzdHJvbmcgc291cmNlcyBoYXZlIGJlZW4gYWRkZWQgdG8gcG9sbC4gKi8KKyNkZWZpbmUgTUJFRFRMU19FUlJfRU5UUk9QWV9OT19TVFJPTkdfU09VUkNFICAgICAgICAgICAgICAtMHgwMDNECisvKiogUmVhZC93cml0ZSBlcnJvciBpbiBmaWxlLiAqLworI2RlZmluZSBNQkVEVExTX0VSUl9FTlRST1BZX0ZJTEVfSU9fRVJST1IgICAgICAgICAgICAgICAgIC0weDAwM0YKKworLyoqCisgKiBcbmFtZSBTRUNUSU9OOiBNb2R1bGUgc2V0dGluZ3MKKyAqCisgKiBUaGUgY29uZmlndXJhdGlvbiBvcHRpb25zIHlvdSBjYW4gc2V0IGZvciB0aGlzIG1vZHVsZSBhcmUgaW4gdGhpcyBzZWN0aW9uLgorICogRWl0aGVyIGNoYW5nZSB0aGVtIGluIG1iZWR0bHNfY29uZmlnLmggb3IgZGVmaW5lIHRoZW0gb24gdGhlIGNvbXBpbGVyIGNvbW1hbmQgbGluZS4KKyAqIFx7CisgKi8KKworI2lmICFkZWZpbmVkKE1CRURUTFNfRU5UUk9QWV9NQVhfU09VUkNFUykKKyNkZWZpbmUgTUJFRFRMU19FTlRST1BZX01BWF9TT1VSQ0VTICAgICAyMCAgICAgIC8qKjwgTWF4aW11bSBudW1iZXIgb2Ygc291cmNlcyBzdXBwb3J0ZWQgKi8KKyNlbmRpZgorCisjaWYgIWRlZmluZWQoTUJFRFRMU19FTlRST1BZX01BWF9HQVRIRVIpCisjZGVmaW5lIE1CRURUTFNfRU5UUk9QWV9NQVhfR0FUSEVSICAgICAgMTI4ICAgICAvKio8IE1heGltdW0gYW1vdW50IHJlcXVlc3RlZCBmcm9tIGVudHJvcHkgc291cmNlcyAqLworI2VuZGlmCisKKy8qKiBcfSBuYW1lIFNFQ1RJT046IE1vZHVsZSBzZXR0aW5ncyAqLworCisjZGVmaW5lIE1CRURUTFNfRU5UUk9QWV9NQVhfU0VFRF9TSVpFICAgMTAyNCAgICAvKio8IE1heGltdW0gc2l6ZSBvZiBzZWVkIHdlIHJlYWQgZnJvbSBzZWVkIGZpbGUgKi8KKyNkZWZpbmUgTUJFRFRMU19FTlRST1BZX1NPVVJDRV9NQU5VQUwgICBNQkVEVExTX0VOVFJPUFlfTUFYX1NPVVJDRVMKKworI2RlZmluZSBNQkVEVExTX0VOVFJPUFlfU09VUkNFX1NUUk9ORyAgIDEgICAgICAgLyoqPCBFbnRyb3B5IHNvdXJjZSBpcyBzdHJvbmcgICAqLworI2RlZmluZSBNQkVEVExTX0VOVFJPUFlfU09VUkNFX1dFQUsgICAgIDAgICAgICAgLyoqPCBFbnRyb3B5IHNvdXJjZSBpcyB3ZWFrICAgICAqLworCisjaWZkZWYgX19jcGx1c3BsdXMKK2V4dGVybiAiQyIgeworI2VuZGlmCisKKy8qKgorICogXGJyaWVmICAgICAgICAgICBFbnRyb3B5IHBvbGwgY2FsbGJhY2sgcG9pbnRlcgorICoKKyAqIFxwYXJhbSBkYXRhICAgICAgQ2FsbGJhY2stc3BlY2lmaWMgZGF0YSBwb2ludGVyCisgKiBccGFyYW0gb3V0cHV0ICAgIERhdGEgdG8gZmlsbAorICogXHBhcmFtIGxlbiAgICAgICBNYXhpbXVtIHNpemUgdG8gcHJvdmlkZQorICogXHBhcmFtIG9sZW4gICAgICBUaGUgYWN0dWFsIGFtb3VudCBvZiBieXRlcyBwdXQgaW50byB0aGUgYnVmZmVyIChDYW4gYmUgMCkKKyAqCisgKiBccmV0dXJuICAgICAgICAgIDAgaWYgbm8gY3JpdGljYWwgZmFpbHVyZXMgb2NjdXJyZWQsCisgKiAgICAgICAgICAgICAgICAgIE1CRURUTFNfRVJSX0VOVFJPUFlfU09VUkNFX0ZBSUxFRCBvdGhlcndpc2UKKyAqLwordHlwZWRlZiBpbnQgKCptYmVkdGxzX2VudHJvcHlfZl9zb3VyY2VfcHRyKSh2b2lkICpkYXRhLCB1bnNpZ25lZCBjaGFyICpvdXRwdXQsIHNpemVfdCBsZW4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCAqb2xlbik7CisKKy8qKgorICogXGJyaWVmICAgICAgICAgICBFbnRyb3B5IHNvdXJjZSBzdGF0ZQorICovCit0eXBlZGVmIHN0cnVjdCBtYmVkdGxzX2VudHJvcHlfc291cmNlX3N0YXRlIHsKKyAgICBtYmVkdGxzX2VudHJvcHlfZl9zb3VyY2VfcHRyICAgIE1CRURUTFNfUFJJVkFURShmX3NvdXJjZSk7ICAgLyoqPCBUaGUgZW50cm9weSBzb3VyY2UgY2FsbGJhY2sgKi8KKyAgICB2b2lkICpNQkVEVExTX1BSSVZBVEUocF9zb3VyY2UpOyAgICAgICAgICAgICAvKio8IFRoZSBjYWxsYmFjayBkYXRhIHBvaW50ZXIgKi8KKyAgICBzaXplX3QgICAgICAgICAgTUJFRFRMU19QUklWQVRFKHNpemUpOyAgICAgICAvKio8IEFtb3VudCByZWNlaXZlZCBpbiBieXRlcyAqLworICAgIHNpemVfdCAgICAgICAgICBNQkVEVExTX1BSSVZBVEUodGhyZXNob2xkKTsgIC8qKjwgTWluaW11bSBieXRlcyByZXF1aXJlZCBiZWZvcmUgcmVsZWFzZSAqLworICAgIGludCAgICAgICAgICAgICBNQkVEVExTX1BSSVZBVEUoc3Ryb25nKTsgICAgIC8qKjwgSXMgdGhlIHNvdXJjZSBzdHJvbmc/ICovCit9CittYmVkdGxzX2VudHJvcHlfc291cmNlX3N0YXRlOworCisvKioKKyAqIFxicmllZiAgICAgICAgICAgRW50cm9weSBjb250ZXh0IHN0cnVjdHVyZQorICovCit0eXBlZGVmIHN0cnVjdCBtYmVkdGxzX2VudHJvcHlfY29udGV4dCB7CisgICAgbWJlZHRsc19tZF9jb250ZXh0X3QgIE1CRURUTFNfUFJJVkFURShhY2N1bXVsYXRvcik7CisgICAgaW50IE1CRURUTFNfUFJJVkFURShhY2N1bXVsYXRvcl9zdGFydGVkKTsgLyogMCBhZnRlciBpbml0LgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqIDEgYWZ0ZXIgdGhlIGZpcnN0IHVwZGF0ZS4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiAtMSBhZnRlciBmcmVlLiAqLworICAgIGludCAgICAgICAgICAgICBNQkVEVExTX1BSSVZBVEUoc291cmNlX2NvdW50KTsgLyogTnVtYmVyIG9mIGVudHJpZXMgdXNlZCBpbiBzb3VyY2UuICovCisgICAgbWJlZHRsc19lbnRyb3B5X3NvdXJjZV9zdGF0ZSAgICBNQkVEVExTX1BSSVZBVEUoc291cmNlKVtNQkVEVExTX0VOVFJPUFlfTUFYX1NPVVJDRVNdOworI2lmIGRlZmluZWQoTUJFRFRMU19USFJFQURJTkdfQykKKyAgICBtYmVkdGxzX3RocmVhZGluZ19tdXRleF90IE1CRURUTFNfUFJJVkFURShtdXRleCk7ICAgIC8qITwgbXV0ZXggICAgICAgICAgICAgICAgICAqLworI2VuZGlmCisjaWYgZGVmaW5lZChNQkVEVExTX0VOVFJPUFlfTlZfU0VFRCkKKyAgICBpbnQgTUJFRFRMU19QUklWQVRFKGluaXRpYWxfZW50cm9weV9ydW4pOworI2VuZGlmCit9CittYmVkdGxzX2VudHJvcHlfY29udGV4dDsKKworI2lmICFkZWZpbmVkKE1CRURUTFNfTk9fUExBVEZPUk1fRU5UUk9QWSkKKy8qKgorICogXGJyaWVmICAgICAgICAgICBQbGF0Zm9ybS1zcGVjaWZpYyBlbnRyb3B5IHBvbGwgY2FsbGJhY2sKKyAqLworaW50IG1iZWR0bHNfcGxhdGZvcm1fZW50cm9weV9wb2xsKHZvaWQgKmRhdGEsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgY2hhciAqb3V0cHV0LCBzaXplX3QgbGVuLCBzaXplX3QgKm9sZW4pOworI2VuZGlmCisKKy8qKgorICogXGJyaWVmICAgICAgICAgICBJbml0aWFsaXplIHRoZSBjb250ZXh0CisgKgorICogXHBhcmFtIGN0eCAgICAgICBFbnRyb3B5IGNvbnRleHQgdG8gaW5pdGlhbGl6ZQorICovCit2b2lkIG1iZWR0bHNfZW50cm9weV9pbml0KG1iZWR0bHNfZW50cm9weV9jb250ZXh0ICpjdHgpOworCisvKioKKyAqIFxicmllZiAgICAgICAgICAgRnJlZSB0aGUgZGF0YSBpbiB0aGUgY29udGV4dAorICoKKyAqIFxwYXJhbSBjdHggICAgICAgRW50cm9weSBjb250ZXh0IHRvIGZyZWUKKyAqLwordm9pZCBtYmVkdGxzX2VudHJvcHlfZnJlZShtYmVkdGxzX2VudHJvcHlfY29udGV4dCAqY3R4KTsKKworLyoqCisgKiBcYnJpZWYgICAgICAgICAgIEFkZHMgYW4gZW50cm9weSBzb3VyY2UgdG8gcG9sbAorICogICAgICAgICAgICAgICAgICAoVGhyZWFkLXNhZmUgaWYgTUJFRFRMU19USFJFQURJTkdfQyBpcyBlbmFibGVkKQorICoKKyAqIFxwYXJhbSBjdHggICAgICAgRW50cm9weSBjb250ZXh0CisgKiBccGFyYW0gZl9zb3VyY2UgIEVudHJvcHkgZnVuY3Rpb24KKyAqIFxwYXJhbSBwX3NvdXJjZSAgRnVuY3Rpb24gZGF0YQorICogXHBhcmFtIHRocmVzaG9sZCBNaW5pbXVtIHJlcXVpcmVkIGZyb20gc291cmNlIGJlZm9yZSBlbnRyb3B5IGlzIHJlbGVhc2VkCisgKiAgICAgICAgICAgICAgICAgICggd2l0aCBtYmVkdGxzX2VudHJvcHlfZnVuYygpICkgKGluIGJ5dGVzKQorICogXHBhcmFtIHN0cm9uZyAgICBNQkVEVExTX0VOVFJPUFlfU09VUkNFX1NUUk9ORyBvcgorICogICAgICAgICAgICAgICAgICBNQkVEVExTX0VOVFJPUFlfU09VUkNFX1dFQUsuCisgKiAgICAgICAgICAgICAgICAgIEF0IGxlYXN0IG9uZSBzdHJvbmcgc291cmNlIG5lZWRzIHRvIGJlIGFkZGVkLgorICogICAgICAgICAgICAgICAgICBXZWFrZXIgc291cmNlcyAoc3VjaCBhcyB0aGUgY3ljbGUgY291bnRlcikgY2FuIGJlIHVzZWQgYXMKKyAqICAgICAgICAgICAgICAgICAgYSBjb21wbGVtZW50LgorICoKKyAqIFxyZXR1cm4gICAgICAgICAgMCBpZiBzdWNjZXNzZnVsIG9yIE1CRURUTFNfRVJSX0VOVFJPUFlfTUFYX1NPVVJDRVMKKyAqLworaW50IG1iZWR0bHNfZW50cm9weV9hZGRfc291cmNlKG1iZWR0bHNfZW50cm9weV9jb250ZXh0ICpjdHgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWJlZHRsc19lbnRyb3B5X2Zfc291cmNlX3B0ciBmX3NvdXJjZSwgdm9pZCAqcF9zb3VyY2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IHRocmVzaG9sZCwgaW50IHN0cm9uZyk7CisKKy8qKgorICogXGJyaWVmICAgICAgICAgICBUcmlnZ2VyIGFuIGV4dHJhIGdhdGhlciBwb2xsIGZvciB0aGUgYWNjdW11bGF0b3IKKyAqICAgICAgICAgICAgICAgICAgKFRocmVhZC1zYWZlIGlmIE1CRURUTFNfVEhSRUFESU5HX0MgaXMgZW5hYmxlZCkKKyAqCisgKiBccGFyYW0gY3R4ICAgICAgIEVudHJvcHkgY29udGV4dAorICoKKyAqIFxyZXR1cm4gICAgICAgICAgMCBpZiBzdWNjZXNzZnVsLCBvciBNQkVEVExTX0VSUl9FTlRST1BZX1NPVVJDRV9GQUlMRUQKKyAqLworaW50IG1iZWR0bHNfZW50cm9weV9nYXRoZXIobWJlZHRsc19lbnRyb3B5X2NvbnRleHQgKmN0eCk7CisKKy8qKgorICogXGJyaWVmICAgICAgICAgICBSZXRyaWV2ZSBlbnRyb3B5IGZyb20gdGhlIGFjY3VtdWxhdG9yCisgKiAgICAgICAgICAgICAgICAgIChNYXhpbXVtIGxlbmd0aDogTUJFRFRMU19FTlRST1BZX0JMT0NLX1NJWkUpCisgKiAgICAgICAgICAgICAgICAgIChUaHJlYWQtc2FmZSBpZiBNQkVEVExTX1RIUkVBRElOR19DIGlzIGVuYWJsZWQpCisgKgorICogXHBhcmFtIGRhdGEgICAgICBFbnRyb3B5IGNvbnRleHQKKyAqIFxwYXJhbSBvdXRwdXQgICAgQnVmZmVyIHRvIGZpbGwKKyAqIFxwYXJhbSBsZW4gICAgICAgTnVtYmVyIG9mIGJ5dGVzIGRlc2lyZWQsIG11c3QgYmUgYXQgbW9zdCBNQkVEVExTX0VOVFJPUFlfQkxPQ0tfU0laRQorICoKKyAqIFxyZXR1cm4gICAgICAgICAgMCBpZiBzdWNjZXNzZnVsLCBvciBNQkVEVExTX0VSUl9FTlRST1BZX1NPVVJDRV9GQUlMRUQKKyAqLworaW50IG1iZWR0bHNfZW50cm9weV9mdW5jKHZvaWQgKmRhdGEsIHVuc2lnbmVkIGNoYXIgKm91dHB1dCwgc2l6ZV90IGxlbik7CisKKy8qKgorICogXGJyaWVmICAgICAgICAgICBBZGQgZGF0YSB0byB0aGUgYWNjdW11bGF0b3IgbWFudWFsbHkKKyAqICAgICAgICAgICAgICAgICAgKFRocmVhZC1zYWZlIGlmIE1CRURUTFNfVEhSRUFESU5HX0MgaXMgZW5hYmxlZCkKKyAqCisgKiBccGFyYW0gY3R4ICAgICAgIEVudHJvcHkgY29udGV4dAorICogXHBhcmFtIGRhdGEgICAgICBEYXRhIHRvIGFkZAorICogXHBhcmFtIGxlbiAgICAgICBMZW5ndGggb2YgZGF0YQorICoKKyAqIFxyZXR1cm4gICAgICAgICAgMCBpZiBzdWNjZXNzZnVsCisgKi8KK2ludCBtYmVkdGxzX2VudHJvcHlfdXBkYXRlX21hbnVhbChtYmVkdGxzX2VudHJvcHlfY29udGV4dCAqY3R4LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgKmRhdGEsIHNpemVfdCBsZW4pOworCisjaWYgZGVmaW5lZChNQkVEVExTX0VOVFJPUFlfTlZfU0VFRCkKKy8qKgorICogXGJyaWVmICAgICAgICAgICBUcmlnZ2VyIGFuIHVwZGF0ZSBvZiB0aGUgc2VlZCBmaWxlIGluIE5WIGJ5IHVzaW5nIHRoZQorICogICAgICAgICAgICAgICAgICBjdXJyZW50IGVudHJvcHkgcG9vbC4KKyAqCisgKiBccGFyYW0gY3R4ICAgICAgIEVudHJvcHkgY29udGV4dAorICoKKyAqIFxyZXR1cm4gICAgICAgICAgMCBpZiBzdWNjZXNzZnVsCisgKi8KK2ludCBtYmVkdGxzX2VudHJvcHlfdXBkYXRlX252X3NlZWQobWJlZHRsc19lbnRyb3B5X2NvbnRleHQgKmN0eCk7CisjZW5kaWYgLyogTUJFRFRMU19FTlRST1BZX05WX1NFRUQgKi8KKworI2lmIGRlZmluZWQoTUJFRFRMU19GU19JTykKKy8qKgorICogXGJyaWVmICAgICAgICAgICAgICAgV3JpdGUgYSBzZWVkIGZpbGUKKyAqCisgKiBccGFyYW0gY3R4ICAgICAgICAgICBFbnRyb3B5IGNvbnRleHQKKyAqIFxwYXJhbSBwYXRoICAgICAgICAgIE5hbWUgb2YgdGhlIGZpbGUKKyAqCisgKiBccmV0dXJuICAgICAgICAgICAgICAwIGlmIHN1Y2Nlc3NmdWwsCisgKiAgICAgICAgICAgICAgICAgICAgICBNQkVEVExTX0VSUl9FTlRST1BZX0ZJTEVfSU9fRVJST1Igb24gZmlsZSBlcnJvciwgb3IKKyAqICAgICAgICAgICAgICAgICAgICAgIE1CRURUTFNfRVJSX0VOVFJPUFlfU09VUkNFX0ZBSUxFRAorICovCitpbnQgbWJlZHRsc19lbnRyb3B5X3dyaXRlX3NlZWRfZmlsZShtYmVkdGxzX2VudHJvcHlfY29udGV4dCAqY3R4LCBjb25zdCBjaGFyICpwYXRoKTsKKworLyoqCisgKiBcYnJpZWYgICAgICAgICAgICAgICBSZWFkIGFuZCB1cGRhdGUgYSBzZWVkIGZpbGUuIFNlZWQgaXMgYWRkZWQgdG8gdGhpcworICogICAgICAgICAgICAgICAgICAgICAgaW5zdGFuY2UuIE5vIG1vcmUgdGhhbiBNQkVEVExTX0VOVFJPUFlfTUFYX1NFRURfU0laRSBieXRlcyBhcmUKKyAqICAgICAgICAgICAgICAgICAgICAgIHJlYWQgZnJvbSB0aGUgc2VlZCBmaWxlLiBUaGUgcmVzdCBpcyBpZ25vcmVkLgorICoKKyAqIFxwYXJhbSBjdHggICAgICAgICAgIEVudHJvcHkgY29udGV4dAorICogXHBhcmFtIHBhdGggICAgICAgICAgTmFtZSBvZiB0aGUgZmlsZQorICoKKyAqIFxyZXR1cm4gICAgICAgICAgICAgIDAgaWYgc3VjY2Vzc2Z1bCwKKyAqICAgICAgICAgICAgICAgICAgICAgIE1CRURUTFNfRVJSX0VOVFJPUFlfRklMRV9JT19FUlJPUiBvbiBmaWxlIGVycm9yLAorICogICAgICAgICAgICAgICAgICAgICAgTUJFRFRMU19FUlJfRU5UUk9QWV9TT1VSQ0VfRkFJTEVECisgKi8KK2ludCBtYmVkdGxzX2VudHJvcHlfdXBkYXRlX3NlZWRfZmlsZShtYmVkdGxzX2VudHJvcHlfY29udGV4dCAqY3R4LCBjb25zdCBjaGFyICpwYXRoKTsKKyNlbmRpZiAvKiBNQkVEVExTX0ZTX0lPICovCisKKyNpZiBkZWZpbmVkKE1CRURUTFNfU0VMRl9URVNUKQorLyoqCisgKiBcYnJpZWYgICAgICAgICAgQ2hlY2t1cCByb3V0aW5lCisgKgorICogICAgICAgICAgICAgICAgIFRoaXMgbW9kdWxlIHNlbGYtdGVzdCBhbHNvIGNhbGxzIHRoZSBlbnRyb3B5IHNlbGYtdGVzdCwKKyAqICAgICAgICAgICAgICAgICBtYmVkdGxzX2VudHJvcHlfc291cmNlX3NlbGZfdGVzdCgpOworICoKKyAqIFxyZXR1cm4gICAgICAgICAwIGlmIHN1Y2Nlc3NmdWwsIG9yIDEgaWYgYSB0ZXN0IGZhaWxlZAorICovCitpbnQgbWJlZHRsc19lbnRyb3B5X3NlbGZfdGVzdChpbnQgdmVyYm9zZSk7CisKKyNpZiBkZWZpbmVkKE1CRURUTFNfRU5UUk9QWV9IQVJEV0FSRV9BTFQpCisvKioKKyAqIFxicmllZiAgICAgICAgICBDaGVja3VwIHJvdXRpbmUKKyAqCisgKiAgICAgICAgICAgICAgICAgVmVyaWZpZXMgdGhlIGludGVncml0eSBvZiB0aGUgaGFyZHdhcmUgZW50cm9weSBzb3VyY2UKKyAqICAgICAgICAgICAgICAgICBwcm92aWRlZCBieSB0aGUgZnVuY3Rpb24gJ21iZWR0bHNfaGFyZHdhcmVfcG9sbCgpJy4KKyAqCisgKiAgICAgICAgICAgICAgICAgTm90ZSB0aGlzIGlzIHRoZSBvbmx5IGhhcmR3YXJlIGVudHJvcHkgc291cmNlIHRoYXQgaXMga25vd24KKyAqICAgICAgICAgICAgICAgICBhdCBsaW5rIHRpbWUsIGFuZCBvdGhlciBlbnRyb3B5IHNvdXJjZXMgY29uZmlndXJlZAorICogICAgICAgICAgICAgICAgIGR5bmFtaWNhbGx5IGF0IHJ1bnRpbWUgYnkgdGhlIGZ1bmN0aW9uCisgKiAgICAgICAgICAgICAgICAgbWJlZHRsc19lbnRyb3B5X2FkZF9zb3VyY2UoKSB3aWxsIG5vdCBiZSB0ZXN0ZWQuCisgKgorICogXHJldHVybiAgICAgICAgIDAgaWYgc3VjY2Vzc2Z1bCwgb3IgMSBpZiBhIHRlc3QgZmFpbGVkCisgKi8KK2ludCBtYmVkdGxzX2VudHJvcHlfc291cmNlX3NlbGZfdGVzdChpbnQgdmVyYm9zZSk7CisjZW5kaWYgLyogTUJFRFRMU19FTlRST1BZX0hBUkRXQVJFX0FMVCAqLworI2VuZGlmIC8qIE1CRURUTFNfU0VMRl9URVNUICovCisKKyNpZmRlZiBfX2NwbHVzcGx1cworfQorI2VuZGlmCisKKyNlbmRpZiAvKiBlbnRyb3B5LmggKi8KZGlmZiAtLWdpdCBhL3RmLXBzYS1jcnlwdG8vZHJpdmVycy9idWlsdGluL2luY2x1ZGUvbWJlZHRscy9lcnJvci5oIGIvdGYtcHNhLWNyeXB0by9kcml2ZXJzL2J1aWx0aW4vaW5jbHVkZS9tYmVkdGxzL2Vycm9yLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDEwMWRlZQotLS0gL2Rldi9udWxsCisrKyBiL3RmLXBzYS1jcnlwdG8vZHJpdmVycy9idWlsdGluL2luY2x1ZGUvbWJlZHRscy9lcnJvci5oCkBAIC0wLDAgKzEsMjAwIEBACisvKioKKyAqIFxmaWxlIGVycm9yLmgKKyAqCisgKiBcYnJpZWYgRXJyb3IgdG8gc3RyaW5nIHRyYW5zbGF0aW9uCisgKi8KKy8qCisgKiAgQ29weXJpZ2h0IFRoZSBNYmVkIFRMUyBDb250cmlidXRvcnMKKyAqICBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMCBPUiBHUEwtMi4wLW9yLWxhdGVyCisgKi8KKyNpZm5kZWYgTUJFRFRMU19FUlJPUl9ICisjZGVmaW5lIE1CRURUTFNfRVJST1JfSAorCisjaW5jbHVkZSAibWJlZHRscy9idWlsZF9pbmZvLmgiCisKKyNpbmNsdWRlIDxzdGRkZWYuaD4KKworLyoqCisgKiBFcnJvciBjb2RlIGxheW91dC4KKyAqCisgKiBDdXJyZW50bHkgd2UgdHJ5IHRvIGtlZXAgYWxsIGVycm9yIGNvZGVzIHdpdGhpbiB0aGUgbmVnYXRpdmUgc3BhY2Ugb2YgMTYKKyAqIGJpdHMgc2lnbmVkIGludGVnZXJzIHRvIHN1cHBvcnQgYWxsIHBsYXRmb3JtcyAoLTB4MDAwMSAtIC0weDdGRkYpLiBJbgorICogYWRkaXRpb24gd2UnZCBsaWtlIHRvIGdpdmUgdHdvIGxheWVycyBvZiBpbmZvcm1hdGlvbiBvbiB0aGUgZXJyb3IgaWYKKyAqIHBvc3NpYmxlLgorICoKKyAqIEZvciB0aGF0IHB1cnBvc2UgdGhlIGVycm9yIGNvZGVzIGFyZSBzZWdtZW50ZWQgaW4gdGhlIGZvbGxvd2luZyBtYW5uZXI6CisgKgorICogMTYgYml0IGVycm9yIGNvZGUgYml0LXNlZ21lbnRhdGlvbgorICoKKyAqIDEgYml0ICAtIFVudXNlZCAoc2lnbiBiaXQpCisgKiAzIGJpdHMgLSBIaWdoIGxldmVsIG1vZHVsZSBJRAorICogNSBiaXRzIC0gTW9kdWxlLWRlcGVuZGVudCBlcnJvciBjb2RlCisgKiA3IGJpdHMgLSBMb3cgbGV2ZWwgbW9kdWxlIGVycm9ycworICoKKyAqIEZvciBoaXN0b3JpY2FsIHJlYXNvbnMsIGxvdy1sZXZlbCBlcnJvciBjb2RlcyBhcmUgZGl2aWRlZCBpbiBldmVuIGFuZCBvZGQsCisgKiBldmVuIGNvZGVzIHdlcmUgYXNzaWduZWQgZmlyc3QsIGFuZCAtMSBpcyByZXNlcnZlZCBmb3Igb3RoZXIgZXJyb3JzLgorICoKKyAqIExvdy1sZXZlbCBtb2R1bGUgZXJyb3JzICgweDAwMDItMHgwMDdFLCAweDAwMDEtMHgwMDdGKQorICoKKyAqIE1vZHVsZSAgIE5yICBDb2RlcyBhc3NpZ25lZAorICogRVJST1IgICAgIDIgIDB4MDA2RSAgICAgICAgICAweDAwMDEKKyAqIE1QSSAgICAgICA3ICAweDAwMDItMHgwMDEwCisgKiBHQ00gICAgICAgMyAgMHgwMDEyLTB4MDAxNiAgIDB4MDAxMy0weDAwMTMKKyAqIFRIUkVBRElORyAzICAweDAwMUEtMHgwMDFFCisgKiBBRVMgICAgICAgNSAgMHgwMDIwLTB4MDAyMiAgIDB4MDAyMS0weDAwMjUKKyAqIENBTUVMTElBICAzICAweDAwMjQtMHgwMDI2ICAgMHgwMDI3LTB4MDAyNworICogQkFTRTY0ICAgIDIgIDB4MDAyQS0weDAwMkMKKyAqIE9JRCAgICAgICAxICAweDAwMkUtMHgwMDJFICAgMHgwMDBCLTB4MDAwQgorICogREVTICAgICAgIDIgIDB4MDAzMi0weDAwMzIgICAweDAwMzMtMHgwMDMzCisgKiBDVFJfREJSRyAgNCAgMHgwMDM0LTB4MDAzQQorICogRU5UUk9QWSAgIDMgIDB4MDAzQy0weDAwNDAgICAweDAwM0QtMHgwMDNGCisgKiBORVQgICAgICAxMyAgMHgwMDQyLTB4MDA1MiAgIDB4MDA0My0weDAwNDkKKyAqIEFSSUEgICAgICA0ICAweDAwNTgtMHgwMDVFCisgKiBBU04xICAgICAgNyAgMHgwMDYwLTB4MDA2QworICogQ01BQyAgICAgIDEgIDB4MDA3QS0weDAwN0EKKyAqIFBCS0RGMiAgICAxICAweDAwN0MtMHgwMDdDCisgKiBITUFDX0RSQkcgNCAgICAgICAgICAgICAgICAgIDB4MDAwMy0weDAwMDkKKyAqIENDTSAgICAgICAzICAgICAgICAgICAgICAgICAgMHgwMDBELTB4MDAxMQorICogTUQ1ICAgICAgIDEgICAgICAgICAgICAgICAgICAweDAwMkYtMHgwMDJGCisgKiBSSVBFTUQxNjAgMSAgICAgICAgICAgICAgICAgIDB4MDAzMS0weDAwMzEKKyAqIFNIQTEgICAgICAxICAgICAgICAgICAgICAgICAgMHgwMDM1LTB4MDAzNSAweDAwNzMtMHgwMDczCisgKiBTSEEyNTYgICAgMSAgICAgICAgICAgICAgICAgIDB4MDAzNy0weDAwMzcgMHgwMDc0LTB4MDA3NAorICogU0hBNTEyICAgIDEgICAgICAgICAgICAgICAgICAweDAwMzktMHgwMDM5IDB4MDA3NS0weDAwNzUKKyAqIFNIQS0zICAgICAxICAgICAgICAgICAgICAgICAgMHgwMDc2LTB4MDA3NgorICogQ0hBQ0hBMjAgIDMgICAgICAgICAgICAgICAgICAweDAwNTEtMHgwMDU1CisgKiBQT0xZMTMwNSAgMyAgICAgICAgICAgICAgICAgIDB4MDA1Ny0weDAwNUIKKyAqIENIQUNIQVBPTFkgMiAweDAwNTQtMHgwMDU2CisgKiBQTEFURk9STSAgMiAgMHgwMDcwLTB4MDA3MgorICogTE1TICAgICAgIDUgIDB4MDAxMS0weDAwMTkKKyAqCisgKiBIaWdoLWxldmVsIG1vZHVsZSBuciAoMyBiaXRzIC0gMHgwLi4uLTB4Ny4uLikKKyAqIE5hbWUgICAgICBJRCAgTnIgb2YgRXJyb3JzCisgKiBQRU0gICAgICAgMSAgIDkKKyAqIFBLQ1MjMTIgICAxICAgNCAoU3RhcnRlZCBmcm9tIHRvcCkKKyAqIFg1MDkgICAgICAyICAgMjAKKyAqIFBLQ1M1ICAgICAyICAgNCAoU3RhcnRlZCBmcm9tIHRvcCkKKyAqIERITSAgICAgICAzICAgMTEKKyAqIFBLICAgICAgICAzICAgMTUgKFN0YXJ0ZWQgZnJvbSB0b3ApCisgKiBSU0EgICAgICAgNCAgIDExCisgKiBFQ1AgICAgICAgNCAgIDEwIChTdGFydGVkIGZyb20gdG9wKQorICogTUQgICAgICAgIDUgICA1CisgKiBIS0RGICAgICAgNSAgIDEgKFN0YXJ0ZWQgZnJvbSB0b3ApCisgKiBQS0NTNyAgICAgNSAgIDEyIChTdGFydGVkIGZyb20gMHg1MzAwKQorICogU1NMICAgICAgIDUgICAyIChTdGFydGVkIGZyb20gMHg1RjAwKQorICogQ0lQSEVSICAgIDYgICA4IChTdGFydGVkIGZyb20gMHg2MDgwKQorICogU1NMICAgICAgIDYgICAyMiAoU3RhcnRlZCBmcm9tIHRvcCwgcGx1cyAweDYwMDApCisgKiBTU0wgICAgICAgNyAgIDIwIChTdGFydGVkIGZyb20gMHg3MDAwLCBnYXBzIGF0CisgKiAgICAgICAgICAgICAgICAgICAweDczODAsIDB4NzkwMC0weDc5ODAsIDB4N0E4MC0weDdFODApCisgKgorICogTW9kdWxlIGRlcGVuZGVudCBlcnJvciBjb2RlICg1IGJpdHMgMHguMDAuLTB4LkY4LikKKyAqLworCisjaWZkZWYgX19jcGx1c3BsdXMKK2V4dGVybiAiQyIgeworI2VuZGlmCisKKy8qKiBHZW5lcmljIGVycm9yICovCisjZGVmaW5lIE1CRURUTFNfRVJSX0VSUk9SX0dFTkVSSUNfRVJST1IgICAgICAgLTB4MDAwMQorLyoqIFRoaXMgaXMgYSBidWcgaW4gdGhlIGxpYnJhcnkgKi8KKyNkZWZpbmUgTUJFRFRMU19FUlJfRVJST1JfQ09SUlVQVElPTl9ERVRFQ1RFRCAtMHgwMDZFCisKKy8qKiBIYXJkd2FyZSBhY2NlbGVyYXRvciBmYWlsZWQgKi8KKyNkZWZpbmUgTUJFRFRMU19FUlJfUExBVEZPUk1fSFdfQUNDRUxfRkFJTEVEICAgICAtMHgwMDcwCisvKiogVGhlIHJlcXVlc3RlZCBmZWF0dXJlIGlzIG5vdCBzdXBwb3J0ZWQgYnkgdGhlIHBsYXRmb3JtICovCisjZGVmaW5lIE1CRURUTFNfRVJSX1BMQVRGT1JNX0ZFQVRVUkVfVU5TVVBQT1JURUQgLTB4MDA3MgorCisvKioKKyAqIFxicmllZiBDb21iaW5lcyBhIGhpZ2gtbGV2ZWwgYW5kIGxvdy1sZXZlbCBlcnJvciBjb2RlIHRvZ2V0aGVyLgorICoKKyAqICAgICAgICBXcmFwcGVyIG1hY3JvIGZvciBtYmVkdGxzX2Vycm9yX2FkZCgpLiBTZWUgdGhhdCBmdW5jdGlvbiBmb3IKKyAqICAgICAgICBtb3JlIGRldGFpbHMuCisgKi8KKyNkZWZpbmUgTUJFRFRMU19FUlJPUl9BREQoaGlnaCwgbG93KSBcCisgICAgbWJlZHRsc19lcnJvcl9hZGQoaGlnaCwgbG93LCBfX0ZJTEVfXywgX19MSU5FX18pCisKKyNpZiBkZWZpbmVkKE1CRURUTFNfVEVTVF9IT09LUykKKy8qKgorICogXGJyaWVmIFRlc3RpbmcgaG9vayBjYWxsZWQgYmVmb3JlIGFkZGluZy9jb21iaW5pbmcgdHdvIGVycm9yIGNvZGVzIHRvZ2V0aGVyLgorICogICAgICAgIE9ubHkgdXNlZCB3aGVuIGludmFzaXZlIHRlc3RpbmcgaXMgZW5hYmxlZCB2aWEgTUJFRFRMU19URVNUX0hPT0tTLgorICovCitleHRlcm4gdm9pZCAoKm1iZWR0bHNfdGVzdF9ob29rX2Vycm9yX2FkZCkoaW50LCBpbnQsIGNvbnN0IGNoYXIgKiwgaW50KTsKKyNlbmRpZgorCisvKioKKyAqIFxicmllZiBDb21iaW5lcyBhIGhpZ2gtbGV2ZWwgYW5kIGxvdy1sZXZlbCBlcnJvciBjb2RlIHRvZ2V0aGVyLgorICoKKyAqICAgICAgICBUaGlzIGZ1bmN0aW9uIGNhbiBiZSBjYWxsZWQgZGlyZWN0bHkgaG93ZXZlciBpdCBpcyB1c3VhbGx5CisgKiAgICAgICAgY2FsbGVkIHZpYSB0aGUgI01CRURUTFNfRVJST1JfQUREIG1hY3JvLgorICoKKyAqICAgICAgICBXaGlsZSBhIHZhbHVlIG9mIHplcm8gaXMgbm90IGEgbmVnYXRpdmUgZXJyb3IgY29kZSwgaXQgaXMgc3RpbGwgYW4KKyAqICAgICAgICBlcnJvciBjb2RlICh0aGF0IGRlbm90ZXMgc3VjY2VzcykgYW5kIGNhbiBiZSBjb21iaW5lZCB3aXRoIGJvdGggYQorICogICAgICAgIG5lZ2F0aXZlIGVycm9yIGNvZGUgb3IgYW5vdGhlciB2YWx1ZSBvZiB6ZXJvLgorICoKKyAqIFxub3RlICBXaGVuIGludmFzaXZlIHRlc3RpbmcgaXMgZW5hYmxlZCB2aWEgI01CRURUTFNfVEVTVF9IT09LUywgYWxzbyB0cnkgdG8KKyAqICAgICAgICBjYWxsIFxsaW5rIG1iZWR0bHNfdGVzdF9ob29rX2Vycm9yX2FkZCBcZW5kbGluay4KKyAqCisgKiBccGFyYW0gaGlnaCAgICAgIGhpZ2gtbGV2ZWwgZXJyb3IgY29kZS4gU2VlIGVycm9yLmggZm9yIG1vcmUgZGV0YWlscy4KKyAqIFxwYXJhbSBsb3cgICAgICAgbG93LWxldmVsIGVycm9yIGNvZGUuIFNlZSBlcnJvci5oIGZvciBtb3JlIGRldGFpbHMuCisgKiBccGFyYW0gZmlsZSAgICAgIGZpbGUgd2hlcmUgdGhpcyBlcnJvciBjb2RlIGFkZGl0aW9uIG9jY3VycmVkLgorICogXHBhcmFtIGxpbmUgICAgICBsaW5lIHdoZXJlIHRoaXMgZXJyb3IgY29kZSBhZGRpdGlvbiBvY2N1cnJlZC4KKyAqLworc3RhdGljIGlubGluZSBpbnQgbWJlZHRsc19lcnJvcl9hZGQoaW50IGhpZ2gsIGludCBsb3csCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICpmaWxlLCBpbnQgbGluZSkKK3sKKyNpZiBkZWZpbmVkKE1CRURUTFNfVEVTVF9IT09LUykKKyAgICBpZiAoKm1iZWR0bHNfdGVzdF9ob29rX2Vycm9yX2FkZCAhPSBOVUxMKSB7CisgICAgICAgICgqbWJlZHRsc190ZXN0X2hvb2tfZXJyb3JfYWRkKShoaWdoLCBsb3csIGZpbGUsIGxpbmUpOworICAgIH0KKyNlbmRpZgorICAgICh2b2lkKSBmaWxlOworICAgICh2b2lkKSBsaW5lOworCisgICAgcmV0dXJuIGhpZ2ggKyBsb3c7Cit9CisKKy8qKgorICogXGJyaWVmIFRyYW5zbGF0ZSBhbiBNYmVkIFRMUyBlcnJvciBjb2RlIGludG8gYSBzdHJpbmcgcmVwcmVzZW50YXRpb24uCisgKiAgICAgICAgVGhlIHJlc3VsdCBpcyB0cnVuY2F0ZWQgaWYgbmVjZXNzYXJ5IGFuZCBhbHdheXMgaW5jbHVkZXMgYQorICogICAgICAgIHRlcm1pbmF0aW5nIG51bGwgYnl0ZS4KKyAqCisgKiBccGFyYW0gZXJybnVtICAgIGVycm9yIGNvZGUKKyAqIFxwYXJhbSBidWZmZXIgICAgYnVmZmVyIHRvIHBsYWNlIHJlcHJlc2VudGF0aW9uIGluCisgKiBccGFyYW0gYnVmbGVuICAgIGxlbmd0aCBvZiB0aGUgYnVmZmVyCisgKi8KK3ZvaWQgbWJlZHRsc19zdHJlcnJvcihpbnQgZXJybnVtLCBjaGFyICpidWZmZXIsIHNpemVfdCBidWZsZW4pOworCisvKioKKyAqIFxicmllZiBUcmFuc2xhdGUgdGhlIGhpZ2gtbGV2ZWwgcGFydCBvZiBhbiBNYmVkIFRMUyBlcnJvciBjb2RlIGludG8gYSBzdHJpbmcKKyAqICAgICAgICByZXByZXNlbnRhdGlvbi4KKyAqCisgKiBUaGlzIGZ1bmN0aW9uIHJldHVybnMgYSBjb25zdCBwb2ludGVyIHRvIGFuIHVuLW1vZGlmaWFibGUgc3RyaW5nLiBUaGUgY2FsbGVyCisgKiBtdXN0IG5vdCB0cnkgdG8gbW9kaWZ5IHRoZSBzdHJpbmcuIEl0IGlzIGludGVuZGVkIHRvIGJlIHVzZWQgbW9zdGx5IGZvcgorICogbG9nZ2luZyBwdXJwb3Nlcy4KKyAqCisgKiBccGFyYW0gZXJyb3JfY29kZSAgICBlcnJvciBjb2RlCisgKgorICogXHJldHVybiBUaGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBlcnJvciBjb2RlLCBvciBcYyBOVUxMIGlmIHRoZSBlcnJvcgorICogICAgICAgICBjb2RlIGlzIHVua25vd24uCisgKi8KK2NvbnN0IGNoYXIgKm1iZWR0bHNfaGlnaF9sZXZlbF9zdHJlcnIoaW50IGVycm9yX2NvZGUpOworCisvKioKKyAqIFxicmllZiBUcmFuc2xhdGUgdGhlIGxvdy1sZXZlbCBwYXJ0IG9mIGFuIE1iZWQgVExTIGVycm9yIGNvZGUgaW50byBhIHN0cmluZworICogICAgICAgIHJlcHJlc2VudGF0aW9uLgorICoKKyAqIFRoaXMgZnVuY3Rpb24gcmV0dXJucyBhIGNvbnN0IHBvaW50ZXIgdG8gYW4gdW4tbW9kaWZpYWJsZSBzdHJpbmcuIFRoZSBjYWxsZXIKKyAqIG11c3Qgbm90IHRyeSB0byBtb2RpZnkgdGhlIHN0cmluZy4gSXQgaXMgaW50ZW5kZWQgdG8gYmUgdXNlZCBtb3N0bHkgZm9yCisgKiBsb2dnaW5nIHB1cnBvc2VzLgorICoKKyAqIFxwYXJhbSBlcnJvcl9jb2RlICAgIGVycm9yIGNvZGUKKyAqCisgKiBccmV0dXJuIFRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIGVycm9yIGNvZGUsIG9yIFxjIE5VTEwgaWYgdGhlIGVycm9yCisgKiAgICAgICAgIGNvZGUgaXMgdW5rbm93bi4KKyAqLworY29uc3QgY2hhciAqbWJlZHRsc19sb3dfbGV2ZWxfc3RyZXJyKGludCBlcnJvcl9jb2RlKTsKKworI2lmZGVmIF9fY3BsdXNwbHVzCit9CisjZW5kaWYKKworI2VuZGlmIC8qIGVycm9yLmggKi8KZGlmZiAtLWdpdCBhL3RmLXBzYS1jcnlwdG8vZHJpdmVycy9idWlsdGluL2luY2x1ZGUvbWJlZHRscy9nY20uaCBiL3RmLXBzYS1jcnlwdG8vZHJpdmVycy9idWlsdGluL2luY2x1ZGUvbWJlZHRscy9nY20uaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43MjYzMmZhCi0tLSAvZGV2L251bGwKKysrIGIvdGYtcHNhLWNyeXB0by9kcml2ZXJzL2J1aWx0aW4vaW5jbHVkZS9tYmVkdGxzL2djbS5oCkBAIC0wLDAgKzEsMzc4IEBACisvKioKKyAqIFxmaWxlIGdjbS5oCisgKgorICogXGJyaWVmIFRoaXMgZmlsZSBjb250YWlucyBHQ00gZGVmaW5pdGlvbnMgYW5kIGZ1bmN0aW9ucy4KKyAqCisgKiBUaGUgR2Fsb2lzL0NvdW50ZXIgTW9kZSAoR0NNKSBmb3IgMTI4LWJpdCBibG9jayBjaXBoZXJzIGlzIGRlZmluZWQKKyAqIGluIDxlbT5ELiBNY0dyZXcsIEouIFZpZWdhLCBUaGUgR2Fsb2lzL0NvdW50ZXIgTW9kZSBvZiBPcGVyYXRpb24KKyAqIChHQ00pLCBOYXRsLiBJbnN0LiBTdGFuZC4gVGVjaG5vbC48L2VtPgorICoKKyAqIEZvciBtb3JlIGluZm9ybWF0aW9uIG9uIEdDTSwgc2VlIDxlbT5OSVNUIFNQIDgwMC0zOEQ6IFJlY29tbWVuZGF0aW9uIGZvcgorICogQmxvY2sgQ2lwaGVyIE1vZGVzIG9mIE9wZXJhdGlvbjogR2Fsb2lzL0NvdW50ZXIgTW9kZSAoR0NNKSBhbmQgR01BQzwvZW0+LgorICoKKyAqLworLyoKKyAqICBDb3B5cmlnaHQgVGhlIE1iZWQgVExTIENvbnRyaWJ1dG9ycworICogIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wIE9SIEdQTC0yLjAtb3ItbGF0ZXIKKyAqLworCisjaWZuZGVmIE1CRURUTFNfR0NNX0gKKyNkZWZpbmUgTUJFRFRMU19HQ01fSAorI2luY2x1ZGUgIm1iZWR0bHMvcHJpdmF0ZV9hY2Nlc3MuaCIKKworI2luY2x1ZGUgIm1iZWR0bHMvYnVpbGRfaW5mby5oIgorCisjaW5jbHVkZSAibWJlZHRscy9jaXBoZXIuaCIKKworI2lmIGRlZmluZWQoTUJFRFRMU19CTE9DS19DSVBIRVJfQykKKyNpbmNsdWRlICJtYmVkdGxzL2Jsb2NrX2NpcGhlci5oIgorI2VuZGlmCisKKyNpbmNsdWRlIDxzdGRpbnQuaD4KKworI2RlZmluZSBNQkVEVExTX0dDTV9FTkNSWVBUICAgICAxCisjZGVmaW5lIE1CRURUTFNfR0NNX0RFQ1JZUFQgICAgIDAKKworLyoqIEF1dGhlbnRpY2F0ZWQgZGVjcnlwdGlvbiBmYWlsZWQuICovCisjZGVmaW5lIE1CRURUTFNfRVJSX0dDTV9BVVRIX0ZBSUxFRCAgICAgICAgICAgICAgICAgICAgICAgLTB4MDAxMgorLyoqIEJhZCBpbnB1dCBwYXJhbWV0ZXJzIHRvIGZ1bmN0aW9uLiAqLworI2RlZmluZSBNQkVEVExTX0VSUl9HQ01fQkFEX0lOUFVUICAgICAgICAgICAgICAgICAgICAgICAgIC0weDAwMTQKKy8qKiBBbiBvdXRwdXQgYnVmZmVyIGlzIHRvbyBzbWFsbC4gKi8KKyNkZWZpbmUgTUJFRFRMU19FUlJfR0NNX0JVRkZFUl9UT09fU01BTEwgICAgICAgICAgICAgICAgICAtMHgwMDE2CisKKyNpZmRlZiBfX2NwbHVzcGx1cworZXh0ZXJuICJDIiB7CisjZW5kaWYKKworI2lmIGRlZmluZWQoTUJFRFRMU19HQ01fTEFSR0VfVEFCTEUpCisjZGVmaW5lIE1CRURUTFNfR0NNX0hUQUJMRV9TSVpFIDI1NgorI2Vsc2UKKyNkZWZpbmUgTUJFRFRMU19HQ01fSFRBQkxFX1NJWkUgMTYKKyNlbmRpZgorCisvKioKKyAqIFxicmllZiAgICAgICAgICBUaGUgR0NNIGNvbnRleHQgc3RydWN0dXJlLgorICovCit0eXBlZGVmIHN0cnVjdCBtYmVkdGxzX2djbV9jb250ZXh0IHsKKyNpZiBkZWZpbmVkKE1CRURUTFNfQkxPQ0tfQ0lQSEVSX0MpCisgICAgbWJlZHRsc19ibG9ja19jaXBoZXJfY29udGV4dF90IE1CRURUTFNfUFJJVkFURShibG9ja19jaXBoZXJfY3R4KTsgIC8qITwgVGhlIGNpcGhlciBjb250ZXh0IHVzZWQuICovCisjZWxzZQorICAgIG1iZWR0bHNfY2lwaGVyX2NvbnRleHRfdCBNQkVEVExTX1BSSVZBVEUoY2lwaGVyX2N0eCk7ICAgIC8qITwgVGhlIGNpcGhlciBjb250ZXh0IHVzZWQuICovCisjZW5kaWYKKyAgICB1aW50NjRfdCBNQkVEVExTX1BSSVZBVEUoSClbTUJFRFRMU19HQ01fSFRBQkxFX1NJWkVdWzJdOyAvKiE8IFByZWNhbGN1bGF0ZWQgSFRhYmxlLiAqLworICAgIHVpbnQ2NF90IE1CRURUTFNfUFJJVkFURShsZW4pOyAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qITwgVGhlIHRvdGFsIGxlbmd0aCBvZiB0aGUgZW5jcnlwdGVkIGRhdGEuICovCisgICAgdWludDY0X3QgTUJFRFRMU19QUklWQVRFKGFkZF9sZW4pOyAgICAgICAgICAgICAgICAgICAgICAgLyohPCBUaGUgdG90YWwgbGVuZ3RoIG9mIHRoZSBhZGRpdGlvbmFsIGRhdGEuICovCisgICAgdW5zaWduZWQgY2hhciBNQkVEVExTX1BSSVZBVEUoYmFzZV9lY3RyKVsxNl07ICAgICAgICAgICAgLyohPCBUaGUgZmlyc3QgRUNUUiBmb3IgdGFnLiAqLworICAgIHVuc2lnbmVkIGNoYXIgTUJFRFRMU19QUklWQVRFKHkpWzE2XTsgICAgICAgICAgICAgICAgICAgIC8qITwgVGhlIFkgd29ya2luZyB2YWx1ZS4gKi8KKyAgICB1bnNpZ25lZCBjaGFyIE1CRURUTFNfUFJJVkFURShidWYpWzE2XTsgICAgICAgICAgICAgICAgICAvKiE8IFRoZSBidWYgd29ya2luZyB2YWx1ZS4gKi8KKyAgICB1bnNpZ25lZCBjaGFyIE1CRURUTFNfUFJJVkFURShtb2RlKTsgICAgICAgICAgICAgICAgICAgICAvKiE8IFRoZSBvcGVyYXRpb24gdG8gcGVyZm9ybToKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgI01CRURUTFNfR0NNX0VOQ1JZUFQgb3IKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgI01CRURUTFNfR0NNX0RFQ1JZUFQuICovCisgICAgdW5zaWduZWQgY2hhciBNQkVEVExTX1BSSVZBVEUoYWNjZWxlcmF0aW9uKTsgICAgICAgICAgICAgLyohPCBUaGUgYWNjZWxlcmF0aW9uIHRvIHVzZS4gKi8KK30KK21iZWR0bHNfZ2NtX2NvbnRleHQ7CisKKy8qKgorICogXGJyaWVmICAgICAgICAgICBUaGlzIGZ1bmN0aW9uIGluaXRpYWxpemVzIHRoZSBzcGVjaWZpZWQgR0NNIGNvbnRleHQsCisgKiAgICAgICAgICAgICAgICAgIHRvIG1ha2UgcmVmZXJlbmNlcyB2YWxpZCwgYW5kIHByZXBhcmVzIHRoZSBjb250ZXh0CisgKiAgICAgICAgICAgICAgICAgIGZvciBtYmVkdGxzX2djbV9zZXRrZXkoKSBvciBtYmVkdGxzX2djbV9mcmVlKCkuCisgKgorICogICAgICAgICAgICAgICAgICBUaGUgZnVuY3Rpb24gZG9lcyBub3QgYmluZCB0aGUgR0NNIGNvbnRleHQgdG8gYSBwYXJ0aWN1bGFyCisgKiAgICAgICAgICAgICAgICAgIGNpcGhlciwgbm9yIHNldCB0aGUga2V5LiBGb3IgdGhpcyBwdXJwb3NlLCB1c2UKKyAqICAgICAgICAgICAgICAgICAgbWJlZHRsc19nY21fc2V0a2V5KCkuCisgKgorICogXHBhcmFtIGN0eCAgICAgICBUaGUgR0NNIGNvbnRleHQgdG8gaW5pdGlhbGl6ZS4gVGhpcyBtdXN0IG5vdCBiZSBcYyBOVUxMLgorICovCit2b2lkIG1iZWR0bHNfZ2NtX2luaXQobWJlZHRsc19nY21fY29udGV4dCAqY3R4KTsKKworLyoqCisgKiBcYnJpZWYgICAgICAgICAgIFRoaXMgZnVuY3Rpb24gYXNzb2NpYXRlcyBhIEdDTSBjb250ZXh0IHdpdGggYQorICogICAgICAgICAgICAgICAgICBjaXBoZXIgYWxnb3JpdGhtIGFuZCBhIGtleS4KKyAqCisgKiBccGFyYW0gY3R4ICAgICAgIFRoZSBHQ00gY29udGV4dC4gVGhpcyBtdXN0IGJlIGluaXRpYWxpemVkLgorICogXHBhcmFtIGNpcGhlciAgICBUaGUgMTI4LWJpdCBibG9jayBjaXBoZXIgdG8gdXNlLgorICogXHBhcmFtIGtleSAgICAgICBUaGUgZW5jcnlwdGlvbiBrZXkuIFRoaXMgbXVzdCBiZSBhIHJlYWRhYmxlIGJ1ZmZlciBvZiBhdAorICogICAgICAgICAgICAgICAgICBsZWFzdCBccCBrZXliaXRzIGJpdHMuCisgKiBccGFyYW0ga2V5Yml0cyAgIFRoZSBrZXkgc2l6ZSBpbiBiaXRzLiBWYWxpZCBvcHRpb25zIGFyZToKKyAqICAgICAgICAgICAgICAgICAgPHVsPjxsaT4xMjggYml0czwvbGk+CisgKiAgICAgICAgICAgICAgICAgIDxsaT4xOTIgYml0czwvbGk+CisgKiAgICAgICAgICAgICAgICAgIDxsaT4yNTYgYml0czwvbGk+PC91bD4KKyAqCisgKiBccmV0dXJuICAgICAgICAgIFxjIDAgb24gc3VjY2Vzcy4KKyAqIFxyZXR1cm4gICAgICAgICAgQSBjaXBoZXItc3BlY2lmaWMgZXJyb3IgY29kZSBvbiBmYWlsdXJlLgorICovCitpbnQgbWJlZHRsc19nY21fc2V0a2V5KG1iZWR0bHNfZ2NtX2NvbnRleHQgKmN0eCwKKyAgICAgICAgICAgICAgICAgICAgICAgbWJlZHRsc19jaXBoZXJfaWRfdCBjaXBoZXIsCisgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgKmtleSwKKyAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50IGtleWJpdHMpOworCisvKioKKyAqIFxicmllZiAgICAgICAgICAgVGhpcyBmdW5jdGlvbiBwZXJmb3JtcyBHQ00gZW5jcnlwdGlvbiBvciBkZWNyeXB0aW9uIG9mIGEgYnVmZmVyLgorICoKKyAqIFxub3RlICAgICAgICAgICAgRm9yIGVuY3J5cHRpb24sIHRoZSBvdXRwdXQgYnVmZmVyIGNhbiBiZSB0aGUgc2FtZSBhcyB0aGUKKyAqICAgICAgICAgICAgICAgICAgaW5wdXQgYnVmZmVyLiBGb3IgZGVjcnlwdGlvbiwgdGhlIG91dHB1dCBidWZmZXIgY2Fubm90IGJlCisgKiAgICAgICAgICAgICAgICAgIHRoZSBzYW1lIGFzIGlucHV0IGJ1ZmZlci4gSWYgdGhlIGJ1ZmZlcnMgb3ZlcmxhcCwgdGhlIG91dHB1dAorICogICAgICAgICAgICAgICAgICBidWZmZXIgbXVzdCB0cmFpbCBhdCBsZWFzdCA4IEJ5dGVzIGJlaGluZCB0aGUgaW5wdXQgYnVmZmVyLgorICoKKyAqIFx3YXJuaW5nICAgICAgICAgV2hlbiB0aGlzIGZ1bmN0aW9uIHBlcmZvcm1zIGEgZGVjcnlwdGlvbiwgaXQgb3V0cHV0cyB0aGUKKyAqICAgICAgICAgICAgICAgICAgYXV0aGVudGljYXRpb24gdGFnIGFuZCBkb2VzIG5vdCB2ZXJpZnkgdGhhdCB0aGUgZGF0YSBpcworICogICAgICAgICAgICAgICAgICBhdXRoZW50aWMuIFlvdSBzaG91bGQgdXNlIHRoaXMgZnVuY3Rpb24gdG8gcGVyZm9ybSBlbmNyeXB0aW9uCisgKiAgICAgICAgICAgICAgICAgIG9ubHkuIEZvciBkZWNyeXB0aW9uLCB1c2UgbWJlZHRsc19nY21fYXV0aF9kZWNyeXB0KCkgaW5zdGVhZC4KKyAqCisgKiBccGFyYW0gY3R4ICAgICAgIFRoZSBHQ00gY29udGV4dCB0byB1c2UgZm9yIGVuY3J5cHRpb24gb3IgZGVjcnlwdGlvbi4gVGhpcworICogICAgICAgICAgICAgICAgICBtdXN0IGJlIGluaXRpYWxpemVkLgorICogXHBhcmFtIG1vZGUgICAgICBUaGUgb3BlcmF0aW9uIHRvIHBlcmZvcm06CisgKiAgICAgICAgICAgICAgICAgIC0gI01CRURUTFNfR0NNX0VOQ1JZUFQgdG8gcGVyZm9ybSBhdXRoZW50aWNhdGVkIGVuY3J5cHRpb24uCisgKiAgICAgICAgICAgICAgICAgICAgVGhlIGNpcGhlcnRleHQgaXMgd3JpdHRlbiB0byBccCBvdXRwdXQgYW5kIHRoZQorICogICAgICAgICAgICAgICAgICAgIGF1dGhlbnRpY2F0aW9uIHRhZyBpcyB3cml0dGVuIHRvIFxwIHRhZy4KKyAqICAgICAgICAgICAgICAgICAgLSAjTUJFRFRMU19HQ01fREVDUllQVCB0byBwZXJmb3JtIGRlY3J5cHRpb24uCisgKiAgICAgICAgICAgICAgICAgICAgVGhlIHBsYWludGV4dCBpcyB3cml0dGVuIHRvIFxwIG91dHB1dCBhbmQgdGhlCisgKiAgICAgICAgICAgICAgICAgICAgYXV0aGVudGljYXRpb24gdGFnIGlzIHdyaXR0ZW4gdG8gXHAgdGFnLgorICogICAgICAgICAgICAgICAgICAgIE5vdGUgdGhhdCB0aGlzIG1vZGUgaXMgbm90IHJlY29tbWVuZGVkLCBiZWNhdXNlIGl0IGRvZXMKKyAqICAgICAgICAgICAgICAgICAgICBub3QgdmVyaWZ5IHRoZSBhdXRoZW50aWNpdHkgb2YgdGhlIGRhdGEuIEZvciB0aGlzIHJlYXNvbiwKKyAqICAgICAgICAgICAgICAgICAgICB5b3Ugc2hvdWxkIHVzZSBtYmVkdGxzX2djbV9hdXRoX2RlY3J5cHQoKSBpbnN0ZWFkIG9mCisgKiAgICAgICAgICAgICAgICAgICAgY2FsbGluZyB0aGlzIGZ1bmN0aW9uIGluIGRlY3J5cHRpb24gbW9kZS4KKyAqIFxwYXJhbSBsZW5ndGggICAgVGhlIGxlbmd0aCBvZiB0aGUgaW5wdXQgZGF0YSwgd2hpY2ggaXMgZXF1YWwgdG8gdGhlIGxlbmd0aAorICogICAgICAgICAgICAgICAgICBvZiB0aGUgb3V0cHV0IGRhdGEuCisgKiBccGFyYW0gaXYgICAgICAgIFRoZSBpbml0aWFsaXphdGlvbiB2ZWN0b3IuIFRoaXMgbXVzdCBiZSBhIHJlYWRhYmxlIGJ1ZmZlciBvZgorICogICAgICAgICAgICAgICAgICBhdCBsZWFzdCBccCBpdl9sZW4gQnl0ZXMuCisgKiBccGFyYW0gaXZfbGVuICAgIFRoZSBsZW5ndGggb2YgdGhlIElWLgorICogXHBhcmFtIGFkZCAgICAgICBUaGUgYnVmZmVyIGhvbGRpbmcgdGhlIGFkZGl0aW9uYWwgZGF0YS4gVGhpcyBtdXN0IGJlIG9mIGF0CisgKiAgICAgICAgICAgICAgICAgIGxlYXN0IHRoYXQgc2l6ZSBpbiBCeXRlcy4KKyAqIFxwYXJhbSBhZGRfbGVuICAgVGhlIGxlbmd0aCBvZiB0aGUgYWRkaXRpb25hbCBkYXRhLgorICogXHBhcmFtIGlucHV0ICAgICBUaGUgYnVmZmVyIGhvbGRpbmcgdGhlIGlucHV0IGRhdGEuIElmIFxwIGxlbmd0aCBpcyBncmVhdGVyCisgKiAgICAgICAgICAgICAgICAgIHRoYW4gemVybywgdGhpcyBtdXN0IGJlIGEgcmVhZGFibGUgYnVmZmVyIG9mIGF0IGxlYXN0IHRoYXQKKyAqICAgICAgICAgICAgICAgICAgc2l6ZSBpbiBCeXRlcy4KKyAqIFxwYXJhbSBvdXRwdXQgICAgVGhlIGJ1ZmZlciBmb3IgaG9sZGluZyB0aGUgb3V0cHV0IGRhdGEuIElmIFxwIGxlbmd0aCBpcyBncmVhdGVyCisgKiAgICAgICAgICAgICAgICAgIHRoYW4gemVybywgdGhpcyBtdXN0IGJlIGEgd3JpdGFibGUgYnVmZmVyIG9mIGF0IGxlYXN0IHRoYXQKKyAqICAgICAgICAgICAgICAgICAgc2l6ZSBpbiBCeXRlcy4KKyAqIFxwYXJhbSB0YWdfbGVuICAgVGhlIGxlbmd0aCBvZiB0aGUgdGFnIHRvIGdlbmVyYXRlLgorICogXHBhcmFtIHRhZyAgICAgICBUaGUgYnVmZmVyIGZvciBob2xkaW5nIHRoZSB0YWcuIFRoaXMgbXVzdCBiZSBhIHdyaXRhYmxlCisgKiAgICAgICAgICAgICAgICAgIGJ1ZmZlciBvZiBhdCBsZWFzdCBccCB0YWdfbGVuIEJ5dGVzLgorICoKKyAqIFxyZXR1cm4gICAgICAgICAgXGMgMCBpZiB0aGUgZW5jcnlwdGlvbiBvciBkZWNyeXB0aW9uIHdhcyBwZXJmb3JtZWQKKyAqICAgICAgICAgICAgICAgICAgc3VjY2Vzc2Z1bGx5LiBOb3RlIHRoYXQgaW4gI01CRURUTFNfR0NNX0RFQ1JZUFQgbW9kZSwKKyAqICAgICAgICAgICAgICAgICAgdGhpcyBkb2VzIG5vdCBpbmRpY2F0ZSB0aGF0IHRoZSBkYXRhIGlzIGF1dGhlbnRpYy4KKyAqIFxyZXR1cm4gICAgICAgICAgI01CRURUTFNfRVJSX0dDTV9CQURfSU5QVVQgaWYgdGhlIGxlbmd0aHMgb3IgcG9pbnRlcnMgYXJlCisgKiAgICAgICAgICAgICAgICAgIG5vdCB2YWxpZCBvciBhIGNpcGhlci1zcGVjaWZpYyBlcnJvciBjb2RlIGlmIHRoZSBlbmNyeXB0aW9uCisgKiAgICAgICAgICAgICAgICAgIG9yIGRlY3J5cHRpb24gZmFpbGVkLgorICovCitpbnQgbWJlZHRsc19nY21fY3J5cHRfYW5kX3RhZyhtYmVkdGxzX2djbV9jb250ZXh0ICpjdHgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgbW9kZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBsZW5ndGgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1bnNpZ25lZCBjaGFyICppdiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBpdl9sZW4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1bnNpZ25lZCBjaGFyICphZGQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgYWRkX2xlbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgKmlucHV0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgY2hhciAqb3V0cHV0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IHRhZ19sZW4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBjaGFyICp0YWcpOworCisvKioKKyAqIFxicmllZiAgICAgICAgICAgVGhpcyBmdW5jdGlvbiBwZXJmb3JtcyBhIEdDTSBhdXRoZW50aWNhdGVkIGRlY3J5cHRpb24gb2YgYQorICogICAgICAgICAgICAgICAgICBidWZmZXIuCisgKgorICogXG5vdGUgICAgICAgICAgICBGb3IgZGVjcnlwdGlvbiwgdGhlIG91dHB1dCBidWZmZXIgY2Fubm90IGJlIHRoZSBzYW1lIGFzCisgKiAgICAgICAgICAgICAgICAgIGlucHV0IGJ1ZmZlci4gSWYgdGhlIGJ1ZmZlcnMgb3ZlcmxhcCwgdGhlIG91dHB1dCBidWZmZXIKKyAqICAgICAgICAgICAgICAgICAgbXVzdCB0cmFpbCBhdCBsZWFzdCA4IEJ5dGVzIGJlaGluZCB0aGUgaW5wdXQgYnVmZmVyLgorICoKKyAqIFxwYXJhbSBjdHggICAgICAgVGhlIEdDTSBjb250ZXh0LiBUaGlzIG11c3QgYmUgaW5pdGlhbGl6ZWQuCisgKiBccGFyYW0gbGVuZ3RoICAgIFRoZSBsZW5ndGggb2YgdGhlIGNpcGhlcnRleHQgdG8gZGVjcnlwdCwgd2hpY2ggaXMgYWxzbworICogICAgICAgICAgICAgICAgICB0aGUgbGVuZ3RoIG9mIHRoZSBkZWNyeXB0ZWQgcGxhaW50ZXh0LgorICogXHBhcmFtIGl2ICAgICAgICBUaGUgaW5pdGlhbGl6YXRpb24gdmVjdG9yLiBUaGlzIG11c3QgYmUgYSByZWFkYWJsZSBidWZmZXIKKyAqICAgICAgICAgICAgICAgICAgb2YgYXQgbGVhc3QgXHAgaXZfbGVuIEJ5dGVzLgorICogXHBhcmFtIGl2X2xlbiAgICBUaGUgbGVuZ3RoIG9mIHRoZSBJVi4KKyAqIFxwYXJhbSBhZGQgICAgICAgVGhlIGJ1ZmZlciBob2xkaW5nIHRoZSBhZGRpdGlvbmFsIGRhdGEuIFRoaXMgbXVzdCBiZSBvZiBhdAorICogICAgICAgICAgICAgICAgICBsZWFzdCB0aGF0IHNpemUgaW4gQnl0ZXMuCisgKiBccGFyYW0gYWRkX2xlbiAgIFRoZSBsZW5ndGggb2YgdGhlIGFkZGl0aW9uYWwgZGF0YS4KKyAqIFxwYXJhbSB0YWcgICAgICAgVGhlIGJ1ZmZlciBob2xkaW5nIHRoZSB0YWcgdG8gdmVyaWZ5LiBUaGlzIG11c3QgYmUgYQorICogICAgICAgICAgICAgICAgICByZWFkYWJsZSBidWZmZXIgb2YgYXQgbGVhc3QgXHAgdGFnX2xlbiBCeXRlcy4KKyAqIFxwYXJhbSB0YWdfbGVuICAgVGhlIGxlbmd0aCBvZiB0aGUgdGFnIHRvIHZlcmlmeS4KKyAqIFxwYXJhbSBpbnB1dCAgICAgVGhlIGJ1ZmZlciBob2xkaW5nIHRoZSBjaXBoZXJ0ZXh0LiBJZiBccCBsZW5ndGggaXMgZ3JlYXRlcgorICogICAgICAgICAgICAgICAgICB0aGFuIHplcm8sIHRoaXMgbXVzdCBiZSBhIHJlYWRhYmxlIGJ1ZmZlciBvZiBhdCBsZWFzdCB0aGF0CisgKiAgICAgICAgICAgICAgICAgIHNpemUuCisgKiBccGFyYW0gb3V0cHV0ICAgIFRoZSBidWZmZXIgZm9yIGhvbGRpbmcgdGhlIGRlY3J5cHRlZCBwbGFpbnRleHQuIElmIFxwIGxlbmd0aAorICogICAgICAgICAgICAgICAgICBpcyBncmVhdGVyIHRoYW4gemVybywgdGhpcyBtdXN0IGJlIGEgd3JpdGFibGUgYnVmZmVyIG9mIGF0CisgKiAgICAgICAgICAgICAgICAgIGxlYXN0IHRoYXQgc2l6ZS4KKyAqCisgKiBccmV0dXJuICAgICAgICAgIFxjIDAgaWYgc3VjY2Vzc2Z1bCBhbmQgYXV0aGVudGljYXRlZC4KKyAqIFxyZXR1cm4gICAgICAgICAgI01CRURUTFNfRVJSX0dDTV9BVVRIX0ZBSUxFRCBpZiB0aGUgdGFnIGRvZXMgbm90IG1hdGNoLgorICogXHJldHVybiAgICAgICAgICAjTUJFRFRMU19FUlJfR0NNX0JBRF9JTlBVVCBpZiB0aGUgbGVuZ3RocyBvciBwb2ludGVycyBhcmUKKyAqICAgICAgICAgICAgICAgICAgbm90IHZhbGlkIG9yIGEgY2lwaGVyLXNwZWNpZmljIGVycm9yIGNvZGUgaWYgdGhlIGRlY3J5cHRpb24KKyAqICAgICAgICAgICAgICAgICAgZmFpbGVkLgorICovCitpbnQgbWJlZHRsc19nY21fYXV0aF9kZWNyeXB0KG1iZWR0bHNfZ2NtX2NvbnRleHQgKmN0eCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IGxlbmd0aCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdW5zaWduZWQgY2hhciAqaXYsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBpdl9sZW4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgKmFkZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IGFkZF9sZW4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgKnRhZywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IHRhZ19sZW4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgKmlucHV0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBjaGFyICpvdXRwdXQpOworCisvKioKKyAqIFxicmllZiAgICAgICAgICAgVGhpcyBmdW5jdGlvbiBzdGFydHMgYSBHQ00gZW5jcnlwdGlvbiBvciBkZWNyeXB0aW9uCisgKiAgICAgICAgICAgICAgICAgIG9wZXJhdGlvbi4KKyAqCisgKiBccGFyYW0gY3R4ICAgICAgIFRoZSBHQ00gY29udGV4dC4gVGhpcyBtdXN0IGJlIGluaXRpYWxpemVkLgorICogXHBhcmFtIG1vZGUgICAgICBUaGUgb3BlcmF0aW9uIHRvIHBlcmZvcm06ICNNQkVEVExTX0dDTV9FTkNSWVBUIG9yCisgKiAgICAgICAgICAgICAgICAgICNNQkVEVExTX0dDTV9ERUNSWVBULgorICogXHBhcmFtIGl2ICAgICAgICBUaGUgaW5pdGlhbGl6YXRpb24gdmVjdG9yLiBUaGlzIG11c3QgYmUgYSByZWFkYWJsZSBidWZmZXIgb2YKKyAqICAgICAgICAgICAgICAgICAgYXQgbGVhc3QgXHAgaXZfbGVuIEJ5dGVzLgorICogXHBhcmFtIGl2X2xlbiAgICBUaGUgbGVuZ3RoIG9mIHRoZSBJVi4KKyAqCisgKiBccmV0dXJuICAgICAgICAgIFxjIDAgb24gc3VjY2Vzcy4KKyAqLworaW50IG1iZWR0bHNfZ2NtX3N0YXJ0cyhtYmVkdGxzX2djbV9jb250ZXh0ICpjdHgsCisgICAgICAgICAgICAgICAgICAgICAgIGludCBtb2RlLAorICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1bnNpZ25lZCBjaGFyICppdiwKKyAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IGl2X2xlbik7CisKKy8qKgorICogXGJyaWVmICAgICAgICAgICBUaGlzIGZ1bmN0aW9uIGZlZWRzIGFuIGlucHV0IGJ1ZmZlciBhcyBhc3NvY2lhdGVkIGRhdGEKKyAqICAgICAgICAgICAgICAgICAgKGF1dGhlbnRpY2F0ZWQgYnV0IG5vdCBlbmNyeXB0ZWQgZGF0YSkgaW4gYSBHQ00KKyAqICAgICAgICAgICAgICAgICAgZW5jcnlwdGlvbiBvciBkZWNyeXB0aW9uIG9wZXJhdGlvbi4KKyAqCisgKiAgICAgICAgICAgICAgICAgIENhbGwgdGhpcyBmdW5jdGlvbiBhZnRlciBtYmVkdGxzX2djbV9zdGFydHMoKSB0byBwYXNzCisgKiAgICAgICAgICAgICAgICAgIHRoZSBhc3NvY2lhdGVkIGRhdGEuIElmIHRoZSBhc3NvY2lhdGVkIGRhdGEgaXMgZW1wdHksCisgKiAgICAgICAgICAgICAgICAgIHlvdSBkbyBub3QgbmVlZCB0byBjYWxsIHRoaXMgZnVuY3Rpb24uIFlvdSBtYXkgbm90CisgKiAgICAgICAgICAgICAgICAgIGNhbGwgdGhpcyBmdW5jdGlvbiBhZnRlciBjYWxsaW5nIG1iZWR0bHNfY2lwaGVyX3VwZGF0ZSgpLgorICoKKyAqIFxwYXJhbSBjdHggICAgICAgVGhlIEdDTSBjb250ZXh0LiBUaGlzIG11c3QgaGF2ZSBiZWVuIHN0YXJ0ZWQgd2l0aAorICogICAgICAgICAgICAgICAgICBtYmVkdGxzX2djbV9zdGFydHMoKSBhbmQgbXVzdCBub3QgaGF2ZSB5ZXQgcmVjZWl2ZWQKKyAqICAgICAgICAgICAgICAgICAgYW55IGlucHV0IHdpdGggbWJlZHRsc19nY21fdXBkYXRlKCkuCisgKiBccGFyYW0gYWRkICAgICAgIFRoZSBidWZmZXIgaG9sZGluZyB0aGUgYWRkaXRpb25hbCBkYXRhLCBvciBcYyBOVUxMCisgKiAgICAgICAgICAgICAgICAgIGlmIFxwIGFkZF9sZW4gaXMgXGMgMC4KKyAqIFxwYXJhbSBhZGRfbGVuICAgVGhlIGxlbmd0aCBvZiB0aGUgYWRkaXRpb25hbCBkYXRhLiBJZiBcYyAwLAorICogICAgICAgICAgICAgICAgICBccCBhZGQgbWF5IGJlIFxjIE5VTEwuCisgKgorICogXHJldHVybiAgICAgICAgICBcYyAwIG9uIHN1Y2Nlc3MuCisgKi8KK2ludCBtYmVkdGxzX2djbV91cGRhdGVfYWQobWJlZHRsc19nY21fY29udGV4dCAqY3R4LAorICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1bnNpZ25lZCBjaGFyICphZGQsCisgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBhZGRfbGVuKTsKKworLyoqCisgKiBcYnJpZWYgICAgICAgICAgIFRoaXMgZnVuY3Rpb24gZmVlZHMgYW4gaW5wdXQgYnVmZmVyIGludG8gYW4gb25nb2luZyBHQ00KKyAqICAgICAgICAgICAgICAgICAgZW5jcnlwdGlvbiBvciBkZWNyeXB0aW9uIG9wZXJhdGlvbi4KKyAqCisgKiAgICAgICAgICAgICAgICAgIFlvdSBtYXkgY2FsbCB0aGlzIGZ1bmN0aW9uIHplcm8sIG9uZSBvciBtb3JlIHRpbWVzCisgKiAgICAgICAgICAgICAgICAgIHRvIHBhc3Mgc3VjY2Vzc2l2ZSBwYXJ0cyBvZiB0aGUgaW5wdXQ6IHRoZSBwbGFpbnRleHQgdG8KKyAqICAgICAgICAgICAgICAgICAgZW5jcnlwdCwgb3IgdGhlIGNpcGhlcnRleHQgKG5vdCBpbmNsdWRpbmcgdGhlIHRhZykgdG8KKyAqICAgICAgICAgICAgICAgICAgZGVjcnlwdC4gQWZ0ZXIgdGhlIGxhc3QgcGFydCBvZiB0aGUgaW5wdXQsIGNhbGwKKyAqICAgICAgICAgICAgICAgICAgbWJlZHRsc19nY21fZmluaXNoKCkuCisgKgorICogICAgICAgICAgICAgICAgICBUaGlzIGZ1bmN0aW9uIG1heSBwcm9kdWNlIG91dHB1dCBpbiBvbmUgb2YgdGhlIGZvbGxvd2luZworICogICAgICAgICAgICAgICAgICB3YXlzOgorICogICAgICAgICAgICAgICAgICAtIEltbWVkaWF0ZSBvdXRwdXQ6IHRoZSBvdXRwdXQgbGVuZ3RoIGlzIGFsd2F5cyBlcXVhbAorICogICAgICAgICAgICAgICAgICAgIHRvIHRoZSBpbnB1dCBsZW5ndGguCisgKiAgICAgICAgICAgICAgICAgIC0gQnVmZmVyZWQgb3V0cHV0OiB0aGUgb3V0cHV0IGNvbnNpc3RzIG9mIGEgd2hvbGUgbnVtYmVyCisgKiAgICAgICAgICAgICAgICAgICAgb2YgMTYtYnl0ZSBibG9ja3MuIElmIHRoZSB0b3RhbCBpbnB1dCBsZW5ndGggc28gZmFyCisgKiAgICAgICAgICAgICAgICAgICAgKG5vdCBpbmNsdWRpbmcgYXNzb2NpYXRlZCBkYXRhKSBpcyAxNiBcKiAqQiogKyAqQSoKKyAqICAgICAgICAgICAgICAgICAgICB3aXRoICpBKiA8IDE2IHRoZW4gdGhlIHRvdGFsIG91dHB1dCBsZW5ndGggaXMgMTYgXCogKkIqLgorICoKKyAqICAgICAgICAgICAgICAgICAgSW4gcGFydGljdWxhcjoKKyAqICAgICAgICAgICAgICAgICAgLSBJdCBpcyBhbHdheXMgY29ycmVjdCB0byBjYWxsIHRoaXMgZnVuY3Rpb24gd2l0aAorICogICAgICAgICAgICAgICAgICAgIFxwIG91dHB1dF9zaXplID49IFxwIGlucHV0X2xlbmd0aCArIDE1LgorICogICAgICAgICAgICAgICAgICAtIElmIFxwIGlucHV0X2xlbmd0aCBpcyBhIG11bHRpcGxlIG9mIDE2IGZvciBhbGwgdGhlIGNhbGxzCisgKiAgICAgICAgICAgICAgICAgICAgdG8gdGhpcyBmdW5jdGlvbiBkdXJpbmcgYW4gb3BlcmF0aW9uLCB0aGVuIGl0IGlzCisgKiAgICAgICAgICAgICAgICAgICAgY29ycmVjdCB0byB1c2UgXHAgb3V0cHV0X3NpemUgPSBccCBpbnB1dF9sZW5ndGguCisgKgorICogXG5vdGUgICAgICAgICAgICBGb3IgZGVjcnlwdGlvbiwgdGhlIG91dHB1dCBidWZmZXIgY2Fubm90IGJlIHRoZSBzYW1lIGFzCisgKiAgICAgICAgICAgICAgICAgIGlucHV0IGJ1ZmZlci4gSWYgdGhlIGJ1ZmZlcnMgb3ZlcmxhcCwgdGhlIG91dHB1dCBidWZmZXIKKyAqICAgICAgICAgICAgICAgICAgbXVzdCB0cmFpbCBhdCBsZWFzdCA4IEJ5dGVzIGJlaGluZCB0aGUgaW5wdXQgYnVmZmVyLgorICoKKyAqIFxwYXJhbSBjdHggICAgICAgICAgIFRoZSBHQ00gY29udGV4dC4gVGhpcyBtdXN0IGJlIGluaXRpYWxpemVkLgorICogXHBhcmFtIGlucHV0ICAgICAgICAgVGhlIGJ1ZmZlciBob2xkaW5nIHRoZSBpbnB1dCBkYXRhLiBJZiBccCBpbnB1dF9sZW5ndGgKKyAqICAgICAgICAgICAgICAgICAgICAgIGlzIGdyZWF0ZXIgdGhhbiB6ZXJvLCB0aGlzIG11c3QgYmUgYSByZWFkYWJsZSBidWZmZXIKKyAqICAgICAgICAgICAgICAgICAgICAgIG9mIGF0IGxlYXN0IFxwIGlucHV0X2xlbmd0aCBieXRlcy4KKyAqIFxwYXJhbSBpbnB1dF9sZW5ndGggIFRoZSBsZW5ndGggb2YgdGhlIGlucHV0IGRhdGEgaW4gYnl0ZXMuCisgKiBccGFyYW0gb3V0cHV0ICAgICAgICBUaGUgYnVmZmVyIGZvciB0aGUgb3V0cHV0IGRhdGEuIElmIFxwIG91dHB1dF9zaXplCisgKiAgICAgICAgICAgICAgICAgICAgICBpcyBncmVhdGVyIHRoYW4gemVybywgdGhpcyBtdXN0IGJlIGEgd3JpdGFibGUgYnVmZmVyIG9mCisgKiAgICAgICAgICAgICAgICAgICAgICBvZiBhdCBsZWFzdCBccCBvdXRwdXRfc2l6ZSBieXRlcy4KKyAqIFxwYXJhbSBvdXRwdXRfc2l6ZSAgIFRoZSBzaXplIG9mIHRoZSBvdXRwdXQgYnVmZmVyIGluIGJ5dGVzLgorICogICAgICAgICAgICAgICAgICAgICAgU2VlIHRoZSBmdW5jdGlvbiBkZXNjcmlwdGlvbiByZWdhcmRpbmcgdGhlIG91dHB1dCBzaXplLgorICogXHBhcmFtIG91dHB1dF9sZW5ndGggT24gc3VjY2VzcywgXHAgKm91dHB1dF9sZW5ndGggY29udGFpbnMgdGhlIGFjdHVhbAorICogICAgICAgICAgICAgICAgICAgICAgbGVuZ3RoIG9mIHRoZSBvdXRwdXQgd3JpdHRlbiBpbiBccCBvdXRwdXQuCisgKiAgICAgICAgICAgICAgICAgICAgICBPbiBmYWlsdXJlLCB0aGUgY29udGVudCBvZiBccCAqb3V0cHV0X2xlbmd0aCBpcworICogICAgICAgICAgICAgICAgICAgICAgdW5zcGVjaWZpZWQuCisgKgorICogXHJldHVybiAgICAgICAgIFxjIDAgb24gc3VjY2Vzcy4KKyAqIFxyZXR1cm4gICAgICAgICAjTUJFRFRMU19FUlJfR0NNX0JBRF9JTlBVVCBvbiBmYWlsdXJlOgorICogICAgICAgICAgICAgICAgIHRvdGFsIGlucHV0IGxlbmd0aCB0b28gbG9uZywKKyAqICAgICAgICAgICAgICAgICB1bnN1cHBvcnRlZCBpbnB1dC9vdXRwdXQgYnVmZmVyIG92ZXJsYXAgZGV0ZWN0ZWQsCisgKiAgICAgICAgICAgICAgICAgb3IgXHAgb3V0cHV0X3NpemUgdG9vIHNtYWxsLgorICovCitpbnQgbWJlZHRsc19nY21fdXBkYXRlKG1iZWR0bHNfZ2NtX2NvbnRleHQgKmN0eCwKKyAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdW5zaWduZWQgY2hhciAqaW5wdXQsIHNpemVfdCBpbnB1dF9sZW5ndGgsCisgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGNoYXIgKm91dHB1dCwgc2l6ZV90IG91dHB1dF9zaXplLAorICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgKm91dHB1dF9sZW5ndGgpOworCisvKioKKyAqIFxicmllZiAgICAgICAgICAgVGhpcyBmdW5jdGlvbiBmaW5pc2hlcyB0aGUgR0NNIG9wZXJhdGlvbiBhbmQgZ2VuZXJhdGVzCisgKiAgICAgICAgICAgICAgICAgIHRoZSBhdXRoZW50aWNhdGlvbiB0YWcuCisgKgorICogICAgICAgICAgICAgICAgICBJdCB3cmFwcyB1cCB0aGUgR0NNIHN0cmVhbSwgYW5kIGdlbmVyYXRlcyB0aGUKKyAqICAgICAgICAgICAgICAgICAgdGFnLiBUaGUgdGFnIGNhbiBoYXZlIGEgbWF4aW11bSBsZW5ndGggb2YgMTYgQnl0ZXMuCisgKgorICogXHBhcmFtIGN0eCAgICAgICBUaGUgR0NNIGNvbnRleHQuIFRoaXMgbXVzdCBiZSBpbml0aWFsaXplZC4KKyAqIFxwYXJhbSB0YWcgICAgICAgVGhlIGJ1ZmZlciBmb3IgaG9sZGluZyB0aGUgdGFnLiBUaGlzIG11c3QgYmUgYSB3cml0YWJsZQorICogICAgICAgICAgICAgICAgICBidWZmZXIgb2YgYXQgbGVhc3QgXHAgdGFnX2xlbiBCeXRlcy4KKyAqIFxwYXJhbSB0YWdfbGVuICAgVGhlIGxlbmd0aCBvZiB0aGUgdGFnIHRvIGdlbmVyYXRlLiBUaGlzIG11c3QgYmUgYXQgbGVhc3QKKyAqICAgICAgICAgICAgICAgICAgZm91ci4KKyAqIFxwYXJhbSBvdXRwdXQgICAgVGhlIGJ1ZmZlciBmb3IgdGhlIGZpbmFsIG91dHB1dC4KKyAqICAgICAgICAgICAgICAgICAgSWYgXHAgb3V0cHV0X3NpemUgaXMgbm9uemVybywgdGhpcyBtdXN0IGJlIGEgd3JpdGFibGUKKyAqICAgICAgICAgICAgICAgICAgYnVmZmVyIG9mIGF0IGxlYXN0IFxwIG91dHB1dF9zaXplIGJ5dGVzLgorICogXHBhcmFtIG91dHB1dF9zaXplICBUaGUgc2l6ZSBvZiB0aGUgXHAgb3V0cHV0IGJ1ZmZlciBpbiBieXRlcy4KKyAqICAgICAgICAgICAgICAgICAgVGhpcyBtdXN0IGJlIGxhcmdlIGVub3VnaCBmb3IgdGhlIG91dHB1dCB0aGF0CisgKiAgICAgICAgICAgICAgICAgIG1iZWR0bHNfZ2NtX3VwZGF0ZSgpIGhhcyBub3QgcHJvZHVjZWQuIEluIHBhcnRpY3VsYXI6CisgKiAgICAgICAgICAgICAgICAgIC0gSWYgbWJlZHRsc19nY21fdXBkYXRlKCkgcHJvZHVjZXMgaW1tZWRpYXRlIG91dHB1dCwKKyAqICAgICAgICAgICAgICAgICAgICBvciBpZiB0aGUgdG90YWwgaW5wdXQgc2l6ZSBpcyBhIG11bHRpcGxlIG9mIFxjIDE2LAorICogICAgICAgICAgICAgICAgICAgIHRoZW4gbWJlZHRsc19nY21fZmluaXNoKCkgbmV2ZXIgcHJvZHVjZXMgYW55IG91dHB1dCwKKyAqICAgICAgICAgICAgICAgICAgICBzbyBccCBvdXRwdXRfc2l6ZSBjYW4gYmUgXGMgMC4KKyAqICAgICAgICAgICAgICAgICAgLSBccCBvdXRwdXRfc2l6ZSBuZXZlciBuZWVkcyB0byBiZSBtb3JlIHRoYW4gXGMgMTUuCisgKiBccGFyYW0gb3V0cHV0X2xlbmd0aCBPbiBzdWNjZXNzLCBccCAqb3V0cHV0X2xlbmd0aCBjb250YWlucyB0aGUgYWN0dWFsCisgKiAgICAgICAgICAgICAgICAgICAgICBsZW5ndGggb2YgdGhlIG91dHB1dCB3cml0dGVuIGluIFxwIG91dHB1dC4KKyAqICAgICAgICAgICAgICAgICAgICAgIE9uIGZhaWx1cmUsIHRoZSBjb250ZW50IG9mIFxwICpvdXRwdXRfbGVuZ3RoIGlzCisgKiAgICAgICAgICAgICAgICAgICAgICB1bnNwZWNpZmllZC4KKyAqCisgKiBccmV0dXJuICAgICAgICAgIFxjIDAgb24gc3VjY2Vzcy4KKyAqIFxyZXR1cm4gICAgICAgICAgI01CRURUTFNfRVJSX0dDTV9CQURfSU5QVVQgb24gZmFpbHVyZToKKyAqICAgICAgICAgICAgICAgICAgaW52YWxpZCB2YWx1ZSBvZiBccCB0YWdfbGVuLAorICogICAgICAgICAgICAgICAgICBvciBccCBvdXRwdXRfc2l6ZSB0b28gc21hbGwuCisgKi8KK2ludCBtYmVkdGxzX2djbV9maW5pc2gobWJlZHRsc19nY21fY29udGV4dCAqY3R4LAorICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBjaGFyICpvdXRwdXQsIHNpemVfdCBvdXRwdXRfc2l6ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90ICpvdXRwdXRfbGVuZ3RoLAorICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBjaGFyICp0YWcsIHNpemVfdCB0YWdfbGVuKTsKKworLyoqCisgKiBcYnJpZWYgICAgICAgICAgIFRoaXMgZnVuY3Rpb24gY2xlYXJzIGEgR0NNIGNvbnRleHQgYW5kIHRoZSB1bmRlcmx5aW5nCisgKiAgICAgICAgICAgICAgICAgIGNpcGhlciBzdWItY29udGV4dC4KKyAqCisgKiBccGFyYW0gY3R4ICAgICAgIFRoZSBHQ00gY29udGV4dCB0byBjbGVhci4gSWYgdGhpcyBpcyBcYyBOVUxMLCB0aGUgY2FsbCBoYXMKKyAqICAgICAgICAgICAgICAgICAgbm8gZWZmZWN0LiBPdGhlcndpc2UsIHRoaXMgbXVzdCBiZSBpbml0aWFsaXplZC4KKyAqLwordm9pZCBtYmVkdGxzX2djbV9mcmVlKG1iZWR0bHNfZ2NtX2NvbnRleHQgKmN0eCk7CisKKyNpZiBkZWZpbmVkKE1CRURUTFNfU0VMRl9URVNUKQorCisvKioKKyAqIFxicmllZiAgICAgICAgICBUaGUgR0NNIGNoZWNrdXAgcm91dGluZS4KKyAqCisgKiBccmV0dXJuICAgICAgICAgXGMgMCBvbiBzdWNjZXNzLgorICogXHJldHVybiAgICAgICAgIFxjIDEgb24gZmFpbHVyZS4KKyAqLworaW50IG1iZWR0bHNfZ2NtX3NlbGZfdGVzdChpbnQgdmVyYm9zZSk7CisKKyNlbmRpZiAvKiBNQkVEVExTX1NFTEZfVEVTVCAqLworCisjaWZkZWYgX19jcGx1c3BsdXMKK30KKyNlbmRpZgorCisKKyNlbmRpZiAvKiBnY20uaCAqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9tYmVkdGxzL2htYWNfZHJiZy5oIGIvdGYtcHNhLWNyeXB0by9kcml2ZXJzL2J1aWx0aW4vaW5jbHVkZS9tYmVkdGxzL2htYWNfZHJiZy5oCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBpbmNsdWRlL21iZWR0bHMvaG1hY19kcmJnLmgKcmVuYW1lIHRvIHRmLXBzYS1jcnlwdG8vZHJpdmVycy9idWlsdGluL2luY2x1ZGUvbWJlZHRscy9obWFjX2RyYmcuaApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9tYmVkdGxzL2xtcy5oIGIvdGYtcHNhLWNyeXB0by9kcml2ZXJzL2J1aWx0aW4vaW5jbHVkZS9tYmVkdGxzL2xtcy5oCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBpbmNsdWRlL21iZWR0bHMvbG1zLmgKcmVuYW1lIHRvIHRmLXBzYS1jcnlwdG8vZHJpdmVycy9idWlsdGluL2luY2x1ZGUvbWJlZHRscy9sbXMuaApkaWZmIC0tZ2l0IGEvdGYtcHNhLWNyeXB0by9kcml2ZXJzL2J1aWx0aW4vaW5jbHVkZS9tYmVkdGxzL21kLmggYi90Zi1wc2EtY3J5cHRvL2RyaXZlcnMvYnVpbHRpbi9pbmNsdWRlL21iZWR0bHMvbWQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42MmE1ZmU1Ci0tLSAvZGV2L251bGwKKysrIGIvdGYtcHNhLWNyeXB0by9kcml2ZXJzL2J1aWx0aW4vaW5jbHVkZS9tYmVkdGxzL21kLmgKQEAgLTAsMCArMSw1MjYgQEAKKy8qKgorICogXGZpbGUgbWQuaAorICoKKyAqIFxicmllZiAgIFRoaXMgZmlsZSBjb250YWlucyB0aGUgZ2VuZXJpYyBmdW5jdGlvbnMgZm9yIG1lc3NhZ2UtZGlnZXN0CisgKiAgICAgICAgICAoaGFzaGluZykgYW5kIEhNQUMuCisgKgorICogXGF1dGhvciBBZHJpYWFuIGRlIEpvbmcgPGRlam9uZ0Bmb3gtaXQuY29tPgorICovCisvKgorICogIENvcHlyaWdodCBUaGUgTWJlZCBUTFMgQ29udHJpYnV0b3JzCisgKiAgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjAgT1IgR1BMLTIuMC1vci1sYXRlcgorICovCisKKyNpZm5kZWYgTUJFRFRMU19NRF9ICisjZGVmaW5lIE1CRURUTFNfTURfSAorI2luY2x1ZGUgIm1iZWR0bHMvcHJpdmF0ZV9hY2Nlc3MuaCIKKworI2luY2x1ZGUgPHN0ZGRlZi5oPgorCisjaW5jbHVkZSAibWJlZHRscy9idWlsZF9pbmZvLmgiCisjaW5jbHVkZSAibWJlZHRscy9wbGF0Zm9ybV91dGlsLmgiCisKKy8qKiBUaGUgc2VsZWN0ZWQgZmVhdHVyZSBpcyBub3QgYXZhaWxhYmxlLiAqLworI2RlZmluZSBNQkVEVExTX0VSUl9NRF9GRUFUVVJFX1VOQVZBSUxBQkxFICAgICAgICAgICAgICAgIC0weDUwODAKKy8qKiBCYWQgaW5wdXQgcGFyYW1ldGVycyB0byBmdW5jdGlvbi4gKi8KKyNkZWZpbmUgTUJFRFRMU19FUlJfTURfQkFEX0lOUFVUX0RBVEEgICAgICAgICAgICAgICAgICAgICAtMHg1MTAwCisvKiogRmFpbGVkIHRvIGFsbG9jYXRlIG1lbW9yeS4gKi8KKyNkZWZpbmUgTUJFRFRMU19FUlJfTURfQUxMT0NfRkFJTEVEICAgICAgICAgICAgICAgICAgICAgICAtMHg1MTgwCisvKiogT3BlbmluZyBvciByZWFkaW5nIG9mIGZpbGUgZmFpbGVkLiAqLworI2RlZmluZSBNQkVEVExTX0VSUl9NRF9GSUxFX0lPX0VSUk9SICAgICAgICAgICAgICAgICAgICAgIC0weDUyMDAKKworI2lmZGVmIF9fY3BsdXNwbHVzCitleHRlcm4gIkMiIHsKKyNlbmRpZgorCisvKioKKyAqIFxicmllZiAgICAgU3VwcG9ydGVkIG1lc3NhZ2UgZGlnZXN0cy4KKyAqCisgKiBcd2FybmluZyAgIE1ENSBhbmQgU0hBLTEgYXJlIGNvbnNpZGVyZWQgd2VhayBtZXNzYWdlIGRpZ2VzdHMgYW5kCisgKiAgICAgICAgICAgIHRoZWlyIHVzZSBjb25zdGl0dXRlcyBhIHNlY3VyaXR5IHJpc2suIFdlIHJlY29tbWVuZCBjb25zaWRlcmluZworICogICAgICAgICAgICBzdHJvbmdlciBtZXNzYWdlIGRpZ2VzdHMgaW5zdGVhZC4KKyAqCisgKi8KKy8qIE5vdGU6IHRoZXNlIGFyZSBhbGlnbmVkIHdpdGggdGhlIGRlZmluaXRpb25zIG9mIFBTQV9BTEdfIG1hY3JvcyBmb3IgaGFzaGVzLAorICogaW4gb3JkZXIgdG8gZW5hYmxlIGFuIGVmZmljaWVudCBpbXBsZW1lbnRhdGlvbiBvZiBjb252ZXJzaW9uIGZ1bmN0aW9ucy4KKyAqIFRoaXMgaXMgdGVzdGVkIGJ5IG1kX3RvX2Zyb21fcHNhKCkgaW4gdGVzdF9zdWl0ZV9tZC4gKi8KK3R5cGVkZWYgZW51bSB7CisgICAgTUJFRFRMU19NRF9OT05FPTAsICAgIC8qKjwgTm9uZS4gKi8KKyAgICBNQkVEVExTX01EX01ENT0weDAzLCAgICAgICAvKio8IFRoZSBNRDUgbWVzc2FnZSBkaWdlc3QuICovCisgICAgTUJFRFRMU19NRF9SSVBFTUQxNjA9MHgwNCwgLyoqPCBUaGUgUklQRU1ELTE2MCBtZXNzYWdlIGRpZ2VzdC4gKi8KKyAgICBNQkVEVExTX01EX1NIQTE9MHgwNSwgICAgICAvKio8IFRoZSBTSEEtMSBtZXNzYWdlIGRpZ2VzdC4gKi8KKyAgICBNQkVEVExTX01EX1NIQTIyND0weDA4LCAgICAvKio8IFRoZSBTSEEtMjI0IG1lc3NhZ2UgZGlnZXN0LiAqLworICAgIE1CRURUTFNfTURfU0hBMjU2PTB4MDksICAgIC8qKjwgVGhlIFNIQS0yNTYgbWVzc2FnZSBkaWdlc3QuICovCisgICAgTUJFRFRMU19NRF9TSEEzODQ9MHgwYSwgICAgLyoqPCBUaGUgU0hBLTM4NCBtZXNzYWdlIGRpZ2VzdC4gKi8KKyAgICBNQkVEVExTX01EX1NIQTUxMj0weDBiLCAgICAvKio8IFRoZSBTSEEtNTEyIG1lc3NhZ2UgZGlnZXN0LiAqLworICAgIE1CRURUTFNfTURfU0hBM18yMjQ9MHgxMCwgIC8qKjwgVGhlIFNIQTMtMjI0IG1lc3NhZ2UgZGlnZXN0LiAqLworICAgIE1CRURUTFNfTURfU0hBM18yNTY9MHgxMSwgIC8qKjwgVGhlIFNIQTMtMjU2IG1lc3NhZ2UgZGlnZXN0LiAqLworICAgIE1CRURUTFNfTURfU0hBM18zODQ9MHgxMiwgIC8qKjwgVGhlIFNIQTMtMzg0IG1lc3NhZ2UgZGlnZXN0LiAqLworICAgIE1CRURUTFNfTURfU0hBM181MTI9MHgxMywgIC8qKjwgVGhlIFNIQTMtNTEyIG1lc3NhZ2UgZGlnZXN0LiAqLworfSBtYmVkdGxzX21kX3R5cGVfdDsKKworLyogTm90ZTogdGhpcyBzaG91bGQgYWx3YXlzIGJlID49IFBTQV9IQVNIX01BWF9TSVpFCisgKiBpbiBhbGwgYnVpbGRzIHdpdGggYm90aCBDUllQVE9fQyBhbmQgTURfTElHSFQuCisgKgorICogVGhpcyBpcyB0byBtYWtlIHRoaW5ncyBlYXNpZXIgZm9yIG1vZHVsZXMgc3VjaCBhcyBUTFMgdGhhdCBtYXkgZGVmaW5lIGEKKyAqIGJ1ZmZlciBzaXplIHVzaW5nIE1EX01BWF9TSVpFIGluIGEgcGFydCBvZiB0aGUgY29kZSB0aGF0J3MgY29tbW9uIHRvIFBTQQorICogYW5kIGxlZ2FjeSwgdGhlbiBhc3N1bWUgdGhlIGJ1ZmZlcidzIHNpemUgaXMgUFNBX0hBU0hfTUFYX1NJWkUgaW4gYW5vdGhlcgorICogcGFydCBvZiB0aGUgY29kZSBiYXNlZCBvbiBQU0EuCisgKi8KKyNpZiBkZWZpbmVkKE1CRURUTFNfTURfQ0FOX1NIQTUxMikgfHwgZGVmaW5lZChQU0FfV0FOVF9BTEdfU0hBM181MTIpCisjZGVmaW5lIE1CRURUTFNfTURfTUFYX1NJWkUgICAgICAgICA2NCAgLyogbG9uZ2VzdCBrbm93biBpcyBTSEE1MTIgKi8KKyNlbGlmIGRlZmluZWQoUFNBX1dBTlRfQUxHX1NIQV8zODQpIHx8IGRlZmluZWQoUFNBX1dBTlRfQUxHX1NIQTNfMzg0KQorI2RlZmluZSBNQkVEVExTX01EX01BWF9TSVpFICAgICAgICAgNDggIC8qIGxvbmdlc3Qga25vd24gaXMgU0hBMzg0ICovCisjZWxpZiBkZWZpbmVkKFBTQV9XQU5UX0FMR19TSEFfMjU2KSB8fCBkZWZpbmVkKFBTQV9XQU5UX0FMR19TSEEzXzI1NikKKyNkZWZpbmUgTUJFRFRMU19NRF9NQVhfU0laRSAgICAgICAgIDMyICAvKiBsb25nZXN0IGtub3duIGlzIFNIQTI1NiAqLworI2VsaWYgZGVmaW5lZChQU0FfV0FOVF9BTEdfU0hBXzIyNCkgfHwgZGVmaW5lZChQU0FfV0FOVF9BTEdfU0hBM18yMjQpCisjZGVmaW5lIE1CRURUTFNfTURfTUFYX1NJWkUgICAgICAgICAyOCAgLyogbG9uZ2VzdCBrbm93biBpcyBTSEEyMjQgKi8KKyNlbHNlCisjZGVmaW5lIE1CRURUTFNfTURfTUFYX1NJWkUgICAgICAgICAyMCAgLyogbG9uZ2VzdCBrbm93biBpcyBTSEExIG9yIFJJUEUgTUQtMTYwCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3Igc21hbGxlciAoTUQ1IGFuZCBlYXJsaWVyKSAqLworI2VuZGlmCisKKyNpZiBkZWZpbmVkKFBTQV9XQU5UX0FMR19TSEEzXzIyNCkKKyNkZWZpbmUgTUJFRFRMU19NRF9NQVhfQkxPQ0tfU0laRSAgICAgICAgIDE0NCAvKiB0aGUgbG9uZ2VzdCBrbm93biBpcyBTSEEzLTIyNCAqLworI2VsaWYgZGVmaW5lZChQU0FfV0FOVF9BTEdfU0hBM18yNTYpCisjZGVmaW5lIE1CRURUTFNfTURfTUFYX0JMT0NLX1NJWkUgICAgICAgICAxMzYKKyNlbGlmIGRlZmluZWQoTUJFRFRMU19NRF9DQU5fU0hBNTEyKSB8fCBkZWZpbmVkKFBTQV9XQU5UX0FMR19TSEFfMzg0KQorI2RlZmluZSBNQkVEVExTX01EX01BWF9CTE9DS19TSVpFICAgICAgICAgMTI4CisjZWxpZiBkZWZpbmVkKFBTQV9XQU5UX0FMR19TSEEzXzM4NCkKKyNkZWZpbmUgTUJFRFRMU19NRF9NQVhfQkxPQ0tfU0laRSAgICAgICAgIDEwNAorI2VsaWYgZGVmaW5lZChQU0FfV0FOVF9BTEdfU0hBM181MTIpCisjZGVmaW5lIE1CRURUTFNfTURfTUFYX0JMT0NLX1NJWkUgICAgICAgICA3MgorI2Vsc2UKKyNkZWZpbmUgTUJFRFRMU19NRF9NQVhfQkxPQ0tfU0laRSAgICAgICAgIDY0CisjZW5kaWYKKworLyoqCisgKiBPcGFxdWUgc3RydWN0LgorICoKKyAqIENvbnN0cnVjdGVkIHVzaW5nIGVpdGhlciAjbWJlZHRsc19tZF9pbmZvX2Zyb21fc3RyaW5nIG9yCisgKiAjbWJlZHRsc19tZF9pbmZvX2Zyb21fdHlwZS4KKyAqCisgKiBGaWVsZHMgY2FuIGJlIGFjY2Vzc2VkIHdpdGggI21iZWR0bHNfbWRfZ2V0X3NpemUsCisgKiAjbWJlZHRsc19tZF9nZXRfdHlwZSBhbmQgI21iZWR0bHNfbWRfZ2V0X25hbWUuCisgKi8KKy8qIERlZmluZWQgaW50ZXJuYWxseSBpbiBsaWJyYXJ5L21kX3dyYXAuaC4gKi8KK3R5cGVkZWYgc3RydWN0IG1iZWR0bHNfbWRfaW5mb190IG1iZWR0bHNfbWRfaW5mb190OworCisvKioKKyAqIFVzZWQgaW50ZXJuYWxseSB0byBpbmRpY2F0ZSB3aGV0aGVyIGEgY29udGV4dCB1c2VzIGxlZ2FjeSBvciBQU0EuCisgKgorICogSW50ZXJuYWwgdXNlIG9ubHkuCisgKi8KK3R5cGVkZWYgZW51bSB7CisgICAgTUJFRFRMU19NRF9FTkdJTkVfTEVHQUNZID0gMCwKKyAgICBNQkVEVExTX01EX0VOR0lORV9QU0EsCit9IG1iZWR0bHNfbWRfZW5naW5lX3Q7CisKKy8qKgorICogVGhlIGdlbmVyaWMgbWVzc2FnZS1kaWdlc3QgY29udGV4dC4KKyAqLwordHlwZWRlZiBzdHJ1Y3QgbWJlZHRsc19tZF9jb250ZXh0X3QgeworICAgIC8qKiBJbmZvcm1hdGlvbiBhYm91dCB0aGUgYXNzb2NpYXRlZCBtZXNzYWdlIGRpZ2VzdC4gKi8KKyAgICBjb25zdCBtYmVkdGxzX21kX2luZm9fdCAqTUJFRFRMU19QUklWQVRFKG1kX2luZm8pOworCisjaWYgZGVmaW5lZChNQkVEVExTX01EX1NPTUVfUFNBKQorICAgIC8qKiBBcmUgaGFzaCBvcGVyYXRpb25zIGRpc3BhdGNoZWQgdG8gUFNBIG9yIGxlZ2FjeT8gKi8KKyAgICBtYmVkdGxzX21kX2VuZ2luZV90IE1CRURUTFNfUFJJVkFURShlbmdpbmUpOworI2VuZGlmCisKKyAgICAvKiogVGhlIGRpZ2VzdC1zcGVjaWZpYyBjb250ZXh0IChsZWdhY3kpIG9yIHRoZSBQU0Egb3BlcmF0aW9uLiAqLworICAgIHZvaWQgKk1CRURUTFNfUFJJVkFURShtZF9jdHgpOworCisjaWYgZGVmaW5lZChNQkVEVExTX01EX0MpCisgICAgLyoqIFRoZSBITUFDIHBhcnQgb2YgdGhlIGNvbnRleHQuICovCisgICAgdm9pZCAqTUJFRFRMU19QUklWQVRFKGhtYWNfY3R4KTsKKyNlbmRpZgorfSBtYmVkdGxzX21kX2NvbnRleHRfdDsKKworLyoqCisgKiBcYnJpZWYgICAgICAgICAgIFRoaXMgZnVuY3Rpb24gcmV0dXJucyB0aGUgbWVzc2FnZS1kaWdlc3QgaW5mb3JtYXRpb24KKyAqICAgICAgICAgICAgICAgICAgYXNzb2NpYXRlZCB3aXRoIHRoZSBnaXZlbiBkaWdlc3QgdHlwZS4KKyAqCisgKiBccGFyYW0gbWRfdHlwZSAgIFRoZSB0eXBlIG9mIGRpZ2VzdCB0byBzZWFyY2ggZm9yLgorICoKKyAqIFxyZXR1cm4gICAgICAgICAgVGhlIG1lc3NhZ2UtZGlnZXN0IGluZm9ybWF0aW9uIGFzc29jaWF0ZWQgd2l0aCBccCBtZF90eXBlLgorICogXHJldHVybiAgICAgICAgICBOVUxMIGlmIHRoZSBhc3NvY2lhdGVkIG1lc3NhZ2UtZGlnZXN0IGluZm9ybWF0aW9uIGlzIG5vdCBmb3VuZC4KKyAqLworY29uc3QgbWJlZHRsc19tZF9pbmZvX3QgKm1iZWR0bHNfbWRfaW5mb19mcm9tX3R5cGUobWJlZHRsc19tZF90eXBlX3QgbWRfdHlwZSk7CisKKy8qKgorICogXGJyaWVmICAgICAgICAgICBUaGlzIGZ1bmN0aW9uIGluaXRpYWxpemVzIGEgbWVzc2FnZS1kaWdlc3QgY29udGV4dCB3aXRob3V0CisgKiAgICAgICAgICAgICAgICAgIGJpbmRpbmcgaXQgdG8gYSBwYXJ0aWN1bGFyIG1lc3NhZ2UtZGlnZXN0IGFsZ29yaXRobS4KKyAqCisgKiAgICAgICAgICAgICAgICAgIFRoaXMgZnVuY3Rpb24gc2hvdWxkIGFsd2F5cyBiZSBjYWxsZWQgZmlyc3QuIEl0IHByZXBhcmVzIHRoZQorICogICAgICAgICAgICAgICAgICBjb250ZXh0IGZvciBtYmVkdGxzX21kX3NldHVwKCkgZm9yIGJpbmRpbmcgaXQgdG8gYQorICogICAgICAgICAgICAgICAgICBtZXNzYWdlLWRpZ2VzdCBhbGdvcml0aG0uCisgKi8KK3ZvaWQgbWJlZHRsc19tZF9pbml0KG1iZWR0bHNfbWRfY29udGV4dF90ICpjdHgpOworCisvKioKKyAqIFxicmllZiAgICAgICAgICAgVGhpcyBmdW5jdGlvbiBjbGVhcnMgdGhlIGludGVybmFsIHN0cnVjdHVyZSBvZiBccCBjdHggYW5kCisgKiAgICAgICAgICAgICAgICAgIGZyZWVzIGFueSBlbWJlZGRlZCBpbnRlcm5hbCBzdHJ1Y3R1cmUsIGJ1dCBkb2VzIG5vdCBmcmVlCisgKiAgICAgICAgICAgICAgICAgIFxwIGN0eCBpdHNlbGYuCisgKgorICogICAgICAgICAgICAgICAgICBJZiB5b3UgaGF2ZSBjYWxsZWQgbWJlZHRsc19tZF9zZXR1cCgpIG9uIFxwIGN0eCwgeW91IG11c3QKKyAqICAgICAgICAgICAgICAgICAgY2FsbCBtYmVkdGxzX21kX2ZyZWUoKSB3aGVuIHlvdSBhcmUgbm8gbG9uZ2VyIHVzaW5nIHRoZQorICogICAgICAgICAgICAgICAgICBjb250ZXh0LgorICogICAgICAgICAgICAgICAgICBDYWxsaW5nIHRoaXMgZnVuY3Rpb24gaWYgeW91IGhhdmUgcHJldmlvdXNseQorICogICAgICAgICAgICAgICAgICBjYWxsZWQgbWJlZHRsc19tZF9pbml0KCkgYW5kIG5vdGhpbmcgZWxzZSBpcyBvcHRpb25hbC4KKyAqICAgICAgICAgICAgICAgICAgWW91IG11c3Qgbm90IGNhbGwgdGhpcyBmdW5jdGlvbiBpZiB5b3UgaGF2ZSBub3QgY2FsbGVkCisgKiAgICAgICAgICAgICAgICAgIG1iZWR0bHNfbWRfaW5pdCgpLgorICovCit2b2lkIG1iZWR0bHNfbWRfZnJlZShtYmVkdGxzX21kX2NvbnRleHRfdCAqY3R4KTsKKworCisvKioKKyAqIFxicmllZiAgICAgICAgICAgVGhpcyBmdW5jdGlvbiBzZWxlY3RzIHRoZSBtZXNzYWdlIGRpZ2VzdCBhbGdvcml0aG0gdG8gdXNlLAorICogICAgICAgICAgICAgICAgICBhbmQgYWxsb2NhdGVzIGludGVybmFsIHN0cnVjdHVyZXMuCisgKgorICogICAgICAgICAgICAgICAgICBJdCBzaG91bGQgYmUgY2FsbGVkIGFmdGVyIG1iZWR0bHNfbWRfaW5pdCgpIG9yCisgKiAgICAgICAgICAgICAgICAgIG1iZWR0bHNfbWRfZnJlZSgpLiBNYWtlcyBpdCBuZWNlc3NhcnkgdG8gY2FsbAorICogICAgICAgICAgICAgICAgICBtYmVkdGxzX21kX2ZyZWUoKSBsYXRlci4KKyAqCisgKiBccGFyYW0gY3R4ICAgICAgIFRoZSBjb250ZXh0IHRvIHNldCB1cC4KKyAqIFxwYXJhbSBtZF9pbmZvICAgVGhlIGluZm9ybWF0aW9uIHN0cnVjdHVyZSBvZiB0aGUgbWVzc2FnZS1kaWdlc3QgYWxnb3JpdGhtCisgKiAgICAgICAgICAgICAgICAgIHRvIHVzZS4KKyAqIFxwYXJhbSBobWFjICAgICAgRGVmaW5lcyBpZiBITUFDIGlzIHVzZWQuIDA6IEhNQUMgaXMgbm90IHVzZWQgKHNhdmVzIHNvbWUgbWVtb3J5KSwKKyAqICAgICAgICAgICAgICAgICAgb3Igbm9uLXplcm86IEhNQUMgaXMgdXNlZCB3aXRoIHRoaXMgY29udGV4dC4KKyAqCisgKiBccmV0dXJuICAgICAgICAgIFxjIDAgb24gc3VjY2Vzcy4KKyAqIFxyZXR1cm4gICAgICAgICAgI01CRURUTFNfRVJSX01EX0JBRF9JTlBVVF9EQVRBIG9uIHBhcmFtZXRlci12ZXJpZmljYXRpb24KKyAqICAgICAgICAgICAgICAgICAgZmFpbHVyZS4KKyAqIFxyZXR1cm4gICAgICAgICAgI01CRURUTFNfRVJSX01EX0FMTE9DX0ZBSUxFRCBvbiBtZW1vcnktYWxsb2NhdGlvbiBmYWlsdXJlLgorICovCitNQkVEVExTX0NIRUNLX1JFVFVSTl9UWVBJQ0FMCitpbnQgbWJlZHRsc19tZF9zZXR1cChtYmVkdGxzX21kX2NvbnRleHRfdCAqY3R4LCBjb25zdCBtYmVkdGxzX21kX2luZm9fdCAqbWRfaW5mbywgaW50IGhtYWMpOworCisvKioKKyAqIFxicmllZiAgICAgICAgICAgVGhpcyBmdW5jdGlvbiBjbG9uZXMgdGhlIHN0YXRlIG9mIGEgbWVzc2FnZS1kaWdlc3QKKyAqICAgICAgICAgICAgICAgICAgY29udGV4dC4KKyAqCisgKiBcbm90ZSAgICAgICAgICAgIFlvdSBtdXN0IGNhbGwgbWJlZHRsc19tZF9zZXR1cCgpIG9uIFxjIGRzdCBiZWZvcmUgY2FsbGluZworICogICAgICAgICAgICAgICAgICB0aGlzIGZ1bmN0aW9uLgorICoKKyAqIFxub3RlICAgICAgICAgICAgVGhlIHR3byBjb250ZXh0cyBtdXN0IGhhdmUgdGhlIHNhbWUgdHlwZSwKKyAqICAgICAgICAgICAgICAgICAgZm9yIGV4YW1wbGUsIGJvdGggYXJlIFNIQS0yNTYuCisgKgorICogXHdhcm5pbmcgICAgICAgICBUaGlzIGZ1bmN0aW9uIGNsb25lcyB0aGUgbWVzc2FnZS1kaWdlc3Qgc3RhdGUsIG5vdCB0aGUKKyAqICAgICAgICAgICAgICAgICAgSE1BQyBzdGF0ZS4KKyAqCisgKiBccGFyYW0gZHN0ICAgICAgIFRoZSBkZXN0aW5hdGlvbiBjb250ZXh0LgorICogXHBhcmFtIHNyYyAgICAgICBUaGUgY29udGV4dCB0byBiZSBjbG9uZWQuCisgKgorICogXHJldHVybiAgICAgICAgICBcYyAwIG9uIHN1Y2Nlc3MuCisgKiBccmV0dXJuICAgICAgICAgICNNQkVEVExTX0VSUl9NRF9CQURfSU5QVVRfREFUQSBvbiBwYXJhbWV0ZXItdmVyaWZpY2F0aW9uIGZhaWx1cmUuCisgKiBccmV0dXJuICAgICAgICAgICNNQkVEVExTX0VSUl9NRF9GRUFUVVJFX1VOQVZBSUxBQkxFIGlmIGJvdGggY29udGV4dHMgYXJlCisgKiAgICAgICAgICAgICAgICAgIG5vdCB1c2luZyB0aGUgc2FtZSBlbmdpbmUuIFRoaXMgY2FuIGJlIGF2b2lkZWQgYnkgbW92aW5nCisgKiAgICAgICAgICAgICAgICAgIHRoZSBjYWxsIHRvIHBzYV9jcnlwdG9faW5pdCgpIGJlZm9yZSB0aGUgZmlyc3QgY2FsbCB0bworICogICAgICAgICAgICAgICAgICBtYmVkdGxzX21kX3NldHVwKCkuCisgKi8KK01CRURUTFNfQ0hFQ0tfUkVUVVJOX1RZUElDQUwKK2ludCBtYmVkdGxzX21kX2Nsb25lKG1iZWR0bHNfbWRfY29udGV4dF90ICpkc3QsCisgICAgICAgICAgICAgICAgICAgICBjb25zdCBtYmVkdGxzX21kX2NvbnRleHRfdCAqc3JjKTsKKworLyoqCisgKiBcYnJpZWYgICAgICAgICAgIFRoaXMgZnVuY3Rpb24gZXh0cmFjdHMgdGhlIG1lc3NhZ2UtZGlnZXN0IHNpemUgZnJvbSB0aGUKKyAqICAgICAgICAgICAgICAgICAgbWVzc2FnZS1kaWdlc3QgaW5mb3JtYXRpb24gc3RydWN0dXJlLgorICoKKyAqIFxwYXJhbSBtZF9pbmZvICAgVGhlIGluZm9ybWF0aW9uIHN0cnVjdHVyZSBvZiB0aGUgbWVzc2FnZS1kaWdlc3QgYWxnb3JpdGhtCisgKiAgICAgICAgICAgICAgICAgIHRvIHVzZS4KKyAqCisgKiBccmV0dXJuICAgICAgICAgIFRoZSBzaXplIG9mIHRoZSBtZXNzYWdlLWRpZ2VzdCBvdXRwdXQgaW4gQnl0ZXMuCisgKi8KK3Vuc2lnbmVkIGNoYXIgbWJlZHRsc19tZF9nZXRfc2l6ZShjb25zdCBtYmVkdGxzX21kX2luZm9fdCAqbWRfaW5mbyk7CisKKy8qKgorICogXGJyaWVmICAgICAgICAgICBUaGlzIGZ1bmN0aW9uIGdpdmVzIHRoZSBtZXNzYWdlLWRpZ2VzdCBzaXplIGFzc29jaWF0ZWQgdG8KKyAqICAgICAgICAgICAgICAgICAgbWVzc2FnZS1kaWdlc3QgdHlwZS4KKyAqCisgKiBccGFyYW0gbWRfdHlwZSAgIFRoZSBtZXNzYWdlLWRpZ2VzdCB0eXBlLgorICoKKyAqIFxyZXR1cm4gICAgICAgICAgVGhlIHNpemUgb2YgdGhlIG1lc3NhZ2UtZGlnZXN0IG91dHB1dCBpbiBCeXRlcywKKyAqICAgICAgICAgICAgICAgICAgb3IgMCBpZiB0aGUgbWVzc2FnZS1kaWdlc3QgdHlwZSBpcyBub3Qga25vd24uCisgKi8KK3N0YXRpYyBpbmxpbmUgdW5zaWduZWQgY2hhciBtYmVkdGxzX21kX2dldF9zaXplX2Zyb21fdHlwZShtYmVkdGxzX21kX3R5cGVfdCBtZF90eXBlKQoreworICAgIHJldHVybiBtYmVkdGxzX21kX2dldF9zaXplKG1iZWR0bHNfbWRfaW5mb19mcm9tX3R5cGUobWRfdHlwZSkpOworfQorCisvKioKKyAqIFxicmllZiAgICAgICAgICAgVGhpcyBmdW5jdGlvbiBleHRyYWN0cyB0aGUgbWVzc2FnZS1kaWdlc3QgdHlwZSBmcm9tIHRoZQorICogICAgICAgICAgICAgICAgICBtZXNzYWdlLWRpZ2VzdCBpbmZvcm1hdGlvbiBzdHJ1Y3R1cmUuCisgKgorICogXHBhcmFtIG1kX2luZm8gICBUaGUgaW5mb3JtYXRpb24gc3RydWN0dXJlIG9mIHRoZSBtZXNzYWdlLWRpZ2VzdCBhbGdvcml0aG0KKyAqICAgICAgICAgICAgICAgICAgdG8gdXNlLgorICoKKyAqIFxyZXR1cm4gICAgICAgICAgVGhlIHR5cGUgb2YgdGhlIG1lc3NhZ2UgZGlnZXN0LgorICovCittYmVkdGxzX21kX3R5cGVfdCBtYmVkdGxzX21kX2dldF90eXBlKGNvbnN0IG1iZWR0bHNfbWRfaW5mb190ICptZF9pbmZvKTsKKworLyoqCisgKiBcYnJpZWYgICAgICAgICAgIFRoaXMgZnVuY3Rpb24gc3RhcnRzIGEgbWVzc2FnZS1kaWdlc3QgY29tcHV0YXRpb24uCisgKgorICogICAgICAgICAgICAgICAgICBZb3UgbXVzdCBjYWxsIHRoaXMgZnVuY3Rpb24gYWZ0ZXIgc2V0dGluZyB1cCB0aGUgY29udGV4dAorICogICAgICAgICAgICAgICAgICB3aXRoIG1iZWR0bHNfbWRfc2V0dXAoKSwgYW5kIGJlZm9yZSBwYXNzaW5nIGRhdGEgd2l0aAorICogICAgICAgICAgICAgICAgICBtYmVkdGxzX21kX3VwZGF0ZSgpLgorICoKKyAqIFxwYXJhbSBjdHggICAgICAgVGhlIGdlbmVyaWMgbWVzc2FnZS1kaWdlc3QgY29udGV4dC4KKyAqCisgKiBccmV0dXJuICAgICAgICAgIFxjIDAgb24gc3VjY2Vzcy4KKyAqIFxyZXR1cm4gICAgICAgICAgI01CRURUTFNfRVJSX01EX0JBRF9JTlBVVF9EQVRBIG9uIHBhcmFtZXRlci12ZXJpZmljYXRpb24KKyAqICAgICAgICAgICAgICAgICAgZmFpbHVyZS4KKyAqLworTUJFRFRMU19DSEVDS19SRVRVUk5fVFlQSUNBTAoraW50IG1iZWR0bHNfbWRfc3RhcnRzKG1iZWR0bHNfbWRfY29udGV4dF90ICpjdHgpOworCisvKioKKyAqIFxicmllZiAgICAgICAgICAgVGhpcyBmdW5jdGlvbiBmZWVkcyBhbiBpbnB1dCBidWZmZXIgaW50byBhbiBvbmdvaW5nCisgKiAgICAgICAgICAgICAgICAgIG1lc3NhZ2UtZGlnZXN0IGNvbXB1dGF0aW9uLgorICoKKyAqICAgICAgICAgICAgICAgICAgWW91IG11c3QgY2FsbCBtYmVkdGxzX21kX3N0YXJ0cygpIGJlZm9yZSBjYWxsaW5nIHRoaXMKKyAqICAgICAgICAgICAgICAgICAgZnVuY3Rpb24uIFlvdSBtYXkgY2FsbCB0aGlzIGZ1bmN0aW9uIG11bHRpcGxlIHRpbWVzLgorICogICAgICAgICAgICAgICAgICBBZnRlcndhcmRzLCBjYWxsIG1iZWR0bHNfbWRfZmluaXNoKCkuCisgKgorICogXHBhcmFtIGN0eCAgICAgICBUaGUgZ2VuZXJpYyBtZXNzYWdlLWRpZ2VzdCBjb250ZXh0LgorICogXHBhcmFtIGlucHV0ICAgICBUaGUgYnVmZmVyIGhvbGRpbmcgdGhlIGlucHV0IGRhdGEuCisgKiBccGFyYW0gaWxlbiAgICAgIFRoZSBsZW5ndGggb2YgdGhlIGlucHV0IGRhdGEuCisgKgorICogXHJldHVybiAgICAgICAgICBcYyAwIG9uIHN1Y2Nlc3MuCisgKiBccmV0dXJuICAgICAgICAgICNNQkVEVExTX0VSUl9NRF9CQURfSU5QVVRfREFUQSBvbiBwYXJhbWV0ZXItdmVyaWZpY2F0aW9uCisgKiAgICAgICAgICAgICAgICAgIGZhaWx1cmUuCisgKi8KK01CRURUTFNfQ0hFQ0tfUkVUVVJOX1RZUElDQUwKK2ludCBtYmVkdGxzX21kX3VwZGF0ZShtYmVkdGxzX21kX2NvbnRleHRfdCAqY3R4LCBjb25zdCB1bnNpZ25lZCBjaGFyICppbnB1dCwgc2l6ZV90IGlsZW4pOworCisvKioKKyAqIFxicmllZiAgICAgICAgICAgVGhpcyBmdW5jdGlvbiBmaW5pc2hlcyB0aGUgZGlnZXN0IG9wZXJhdGlvbiwKKyAqICAgICAgICAgICAgICAgICAgYW5kIHdyaXRlcyB0aGUgcmVzdWx0IHRvIHRoZSBvdXRwdXQgYnVmZmVyLgorICoKKyAqICAgICAgICAgICAgICAgICAgQ2FsbCB0aGlzIGZ1bmN0aW9uIGFmdGVyIGEgY2FsbCB0byBtYmVkdGxzX21kX3N0YXJ0cygpLAorICogICAgICAgICAgICAgICAgICBmb2xsb3dlZCBieSBhbnkgbnVtYmVyIG9mIGNhbGxzIHRvIG1iZWR0bHNfbWRfdXBkYXRlKCkuCisgKiAgICAgICAgICAgICAgICAgIEFmdGVyd2FyZHMsIHlvdSBtYXkgZWl0aGVyIGNsZWFyIHRoZSBjb250ZXh0IHdpdGgKKyAqICAgICAgICAgICAgICAgICAgbWJlZHRsc19tZF9mcmVlKCksIG9yIGNhbGwgbWJlZHRsc19tZF9zdGFydHMoKSB0byByZXVzZQorICogICAgICAgICAgICAgICAgICB0aGUgY29udGV4dCBmb3IgYW5vdGhlciBkaWdlc3Qgb3BlcmF0aW9uIHdpdGggdGhlIHNhbWUKKyAqICAgICAgICAgICAgICAgICAgYWxnb3JpdGhtLgorICoKKyAqIFxwYXJhbSBjdHggICAgICAgVGhlIGdlbmVyaWMgbWVzc2FnZS1kaWdlc3QgY29udGV4dC4KKyAqIFxwYXJhbSBvdXRwdXQgICAgVGhlIGJ1ZmZlciBmb3IgdGhlIGdlbmVyaWMgbWVzc2FnZS1kaWdlc3QgY2hlY2tzdW0gcmVzdWx0LgorICoKKyAqIFxyZXR1cm4gICAgICAgICAgXGMgMCBvbiBzdWNjZXNzLgorICogXHJldHVybiAgICAgICAgICAjTUJFRFRMU19FUlJfTURfQkFEX0lOUFVUX0RBVEEgb24gcGFyYW1ldGVyLXZlcmlmaWNhdGlvbgorICogICAgICAgICAgICAgICAgICBmYWlsdXJlLgorICovCitNQkVEVExTX0NIRUNLX1JFVFVSTl9UWVBJQ0FMCitpbnQgbWJlZHRsc19tZF9maW5pc2gobWJlZHRsc19tZF9jb250ZXh0X3QgKmN0eCwgdW5zaWduZWQgY2hhciAqb3V0cHV0KTsKKworLyoqCisgKiBcYnJpZWYgICAgICAgICAgVGhpcyBmdW5jdGlvbiBjYWxjdWxhdGVzIHRoZSBtZXNzYWdlLWRpZ2VzdCBvZiBhIGJ1ZmZlciwKKyAqICAgICAgICAgICAgICAgICB3aXRoIHJlc3BlY3QgdG8gYSBjb25maWd1cmFibGUgbWVzc2FnZS1kaWdlc3QgYWxnb3JpdGhtCisgKiAgICAgICAgICAgICAgICAgaW4gYSBzaW5nbGUgY2FsbC4KKyAqCisgKiAgICAgICAgICAgICAgICAgVGhlIHJlc3VsdCBpcyBjYWxjdWxhdGVkIGFzCisgKiAgICAgICAgICAgICAgICAgT3V0cHV0ID0gbWVzc2FnZV9kaWdlc3QoaW5wdXQgYnVmZmVyKS4KKyAqCisgKiBccGFyYW0gbWRfaW5mbyAgVGhlIGluZm9ybWF0aW9uIHN0cnVjdHVyZSBvZiB0aGUgbWVzc2FnZS1kaWdlc3QgYWxnb3JpdGhtCisgKiAgICAgICAgICAgICAgICAgdG8gdXNlLgorICogXHBhcmFtIGlucHV0ICAgIFRoZSBidWZmZXIgaG9sZGluZyB0aGUgZGF0YS4KKyAqIFxwYXJhbSBpbGVuICAgICBUaGUgbGVuZ3RoIG9mIHRoZSBpbnB1dCBkYXRhLgorICogXHBhcmFtIG91dHB1dCAgIFRoZSBnZW5lcmljIG1lc3NhZ2UtZGlnZXN0IGNoZWNrc3VtIHJlc3VsdC4KKyAqCisgKiBccmV0dXJuICAgICAgICAgXGMgMCBvbiBzdWNjZXNzLgorICogXHJldHVybiAgICAgICAgICNNQkVEVExTX0VSUl9NRF9CQURfSU5QVVRfREFUQSBvbiBwYXJhbWV0ZXItdmVyaWZpY2F0aW9uCisgKiAgICAgICAgICAgICAgICAgZmFpbHVyZS4KKyAqLworTUJFRFRMU19DSEVDS19SRVRVUk5fVFlQSUNBTAoraW50IG1iZWR0bHNfbWQoY29uc3QgbWJlZHRsc19tZF9pbmZvX3QgKm1kX2luZm8sIGNvbnN0IHVuc2lnbmVkIGNoYXIgKmlucHV0LCBzaXplX3QgaWxlbiwKKyAgICAgICAgICAgICAgIHVuc2lnbmVkIGNoYXIgKm91dHB1dCk7CisKKy8qKgorICogXGJyaWVmICAgICAgICAgICBUaGlzIGZ1bmN0aW9uIHJldHVybnMgdGhlIGxpc3Qgb2YgZGlnZXN0cyBzdXBwb3J0ZWQgYnkgdGhlCisgKiAgICAgICAgICAgICAgICAgIGdlbmVyaWMgZGlnZXN0IG1vZHVsZS4KKyAqCisgKiBcbm90ZSAgICAgICAgICAgIFRoZSBsaXN0IHN0YXJ0cyB3aXRoIHRoZSBzdHJvbmdlc3QgYXZhaWxhYmxlIGhhc2hlcy4KKyAqCisgKiBccmV0dXJuICAgICAgICAgIEEgc3RhdGljYWxseSBhbGxvY2F0ZWQgYXJyYXkgb2YgZGlnZXN0cy4gRWFjaCBlbGVtZW50CisgKiAgICAgICAgICAgICAgICAgIGluIHRoZSByZXR1cm5lZCBsaXN0IGlzIGFuIGludGVnZXIgYmVsb25naW5nIHRvIHRoZQorICogICAgICAgICAgICAgICAgICBtZXNzYWdlLWRpZ2VzdCBlbnVtZXJhdGlvbiAjbWJlZHRsc19tZF90eXBlX3QuCisgKiAgICAgICAgICAgICAgICAgIFRoZSBsYXN0IGVudHJ5IGlzIDAuCisgKi8KK2NvbnN0IGludCAqbWJlZHRsc19tZF9saXN0KHZvaWQpOworCisvKioKKyAqIFxicmllZiAgICAgICAgICAgVGhpcyBmdW5jdGlvbiByZXR1cm5zIHRoZSBtZXNzYWdlLWRpZ2VzdCBpbmZvcm1hdGlvbgorICogICAgICAgICAgICAgICAgICBhc3NvY2lhdGVkIHdpdGggdGhlIGdpdmVuIGRpZ2VzdCBuYW1lLgorICoKKyAqIFxwYXJhbSBtZF9uYW1lICAgVGhlIG5hbWUgb2YgdGhlIGRpZ2VzdCB0byBzZWFyY2ggZm9yLgorICoKKyAqIFxyZXR1cm4gICAgICAgICAgVGhlIG1lc3NhZ2UtZGlnZXN0IGluZm9ybWF0aW9uIGFzc29jaWF0ZWQgd2l0aCBccCBtZF9uYW1lLgorICogXHJldHVybiAgICAgICAgICBOVUxMIGlmIHRoZSBhc3NvY2lhdGVkIG1lc3NhZ2UtZGlnZXN0IGluZm9ybWF0aW9uIGlzIG5vdCBmb3VuZC4KKyAqLworY29uc3QgbWJlZHRsc19tZF9pbmZvX3QgKm1iZWR0bHNfbWRfaW5mb19mcm9tX3N0cmluZyhjb25zdCBjaGFyICptZF9uYW1lKTsKKworLyoqCisgKiBcYnJpZWYgICAgICAgICAgIFRoaXMgZnVuY3Rpb24gcmV0dXJucyB0aGUgbmFtZSBvZiB0aGUgbWVzc2FnZSBkaWdlc3QgZm9yCisgKiAgICAgICAgICAgICAgICAgIHRoZSBtZXNzYWdlLWRpZ2VzdCBpbmZvcm1hdGlvbiBzdHJ1Y3R1cmUgZ2l2ZW4uCisgKgorICogXHBhcmFtIG1kX2luZm8gICBUaGUgaW5mb3JtYXRpb24gc3RydWN0dXJlIG9mIHRoZSBtZXNzYWdlLWRpZ2VzdCBhbGdvcml0aG0KKyAqICAgICAgICAgICAgICAgICAgdG8gdXNlLgorICoKKyAqIFxyZXR1cm4gICAgICAgICAgVGhlIG5hbWUgb2YgdGhlIG1lc3NhZ2UgZGlnZXN0LgorICovCitjb25zdCBjaGFyICptYmVkdGxzX21kX2dldF9uYW1lKGNvbnN0IG1iZWR0bHNfbWRfaW5mb190ICptZF9pbmZvKTsKKworLyoqCisgKiBcYnJpZWYgICAgICAgICAgIFRoaXMgZnVuY3Rpb24gcmV0dXJucyB0aGUgbWVzc2FnZS1kaWdlc3QgaW5mb3JtYXRpb24KKyAqICAgICAgICAgICAgICAgICAgZnJvbSB0aGUgZ2l2ZW4gY29udGV4dC4KKyAqCisgKiBccGFyYW0gY3R4ICAgICAgIFRoZSBjb250ZXh0IGZyb20gd2hpY2ggdG8gZXh0cmFjdCB0aGUgaW5mb3JtYXRpb24uCisgKiAgICAgICAgICAgICAgICAgIFRoaXMgbXVzdCBiZSBpbml0aWFsaXplZCAob3IgXGMgTlVMTCkuCisgKgorICogXHJldHVybiAgICAgICAgICBUaGUgbWVzc2FnZS1kaWdlc3QgaW5mb3JtYXRpb24gYXNzb2NpYXRlZCB3aXRoIFxwIGN0eC4KKyAqIFxyZXR1cm4gICAgICAgICAgXGMgTlVMTCBpZiBccCBjdHggaXMgXGMgTlVMTC4KKyAqLworY29uc3QgbWJlZHRsc19tZF9pbmZvX3QgKm1iZWR0bHNfbWRfaW5mb19mcm9tX2N0eCgKKyAgICBjb25zdCBtYmVkdGxzX21kX2NvbnRleHRfdCAqY3R4KTsKKworI2lmIGRlZmluZWQoTUJFRFRMU19GU19JTykKKy8qKgorICogXGJyaWVmICAgICAgICAgIFRoaXMgZnVuY3Rpb24gY2FsY3VsYXRlcyB0aGUgbWVzc2FnZS1kaWdlc3QgY2hlY2tzdW0KKyAqICAgICAgICAgICAgICAgICByZXN1bHQgb2YgdGhlIGNvbnRlbnRzIG9mIHRoZSBwcm92aWRlZCBmaWxlLgorICoKKyAqICAgICAgICAgICAgICAgICBUaGUgcmVzdWx0IGlzIGNhbGN1bGF0ZWQgYXMKKyAqICAgICAgICAgICAgICAgICBPdXRwdXQgPSBtZXNzYWdlX2RpZ2VzdChmaWxlIGNvbnRlbnRzKS4KKyAqCisgKiBccGFyYW0gbWRfaW5mbyAgVGhlIGluZm9ybWF0aW9uIHN0cnVjdHVyZSBvZiB0aGUgbWVzc2FnZS1kaWdlc3QgYWxnb3JpdGhtCisgKiAgICAgICAgICAgICAgICAgdG8gdXNlLgorICogXHBhcmFtIHBhdGggICAgIFRoZSBpbnB1dCBmaWxlIG5hbWUuCisgKiBccGFyYW0gb3V0cHV0ICAgVGhlIGdlbmVyaWMgbWVzc2FnZS1kaWdlc3QgY2hlY2tzdW0gcmVzdWx0LgorICoKKyAqIFxyZXR1cm4gICAgICAgICBcYyAwIG9uIHN1Y2Nlc3MuCisgKiBccmV0dXJuICAgICAgICAgI01CRURUTFNfRVJSX01EX0ZJTEVfSU9fRVJST1Igb24gYW4gSS9PIGVycm9yIGFjY2Vzc2luZworICogICAgICAgICAgICAgICAgIHRoZSBmaWxlIHBvaW50ZWQgYnkgXHAgcGF0aC4KKyAqIFxyZXR1cm4gICAgICAgICAjTUJFRFRMU19FUlJfTURfQkFEX0lOUFVUX0RBVEEgaWYgXHAgbWRfaW5mbyB3YXMgTlVMTC4KKyAqLworTUJFRFRMU19DSEVDS19SRVRVUk5fVFlQSUNBTAoraW50IG1iZWR0bHNfbWRfZmlsZShjb25zdCBtYmVkdGxzX21kX2luZm9fdCAqbWRfaW5mbywgY29uc3QgY2hhciAqcGF0aCwKKyAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgY2hhciAqb3V0cHV0KTsKKyNlbmRpZiAvKiBNQkVEVExTX0ZTX0lPICovCisKKy8qKgorICogXGJyaWVmICAgICAgICAgICBUaGlzIGZ1bmN0aW9uIHNldHMgdGhlIEhNQUMga2V5IGFuZCBwcmVwYXJlcyB0bworICogICAgICAgICAgICAgICAgICBhdXRoZW50aWNhdGUgYSBuZXcgbWVzc2FnZS4KKyAqCisgKiAgICAgICAgICAgICAgICAgIENhbGwgdGhpcyBmdW5jdGlvbiBhZnRlciBtYmVkdGxzX21kX3NldHVwKCksIHRvIHVzZQorICogICAgICAgICAgICAgICAgICB0aGUgTUQgY29udGV4dCBmb3IgYW4gSE1BQyBjYWxjdWxhdGlvbiwgdGhlbiBjYWxsCisgKiAgICAgICAgICAgICAgICAgIG1iZWR0bHNfbWRfaG1hY191cGRhdGUoKSB0byBwcm92aWRlIHRoZSBpbnB1dCBkYXRhLCBhbmQKKyAqICAgICAgICAgICAgICAgICAgbWJlZHRsc19tZF9obWFjX2ZpbmlzaCgpIHRvIGdldCB0aGUgSE1BQyB2YWx1ZS4KKyAqCisgKiBccGFyYW0gY3R4ICAgICAgIFRoZSBtZXNzYWdlIGRpZ2VzdCBjb250ZXh0IGNvbnRhaW5pbmcgYW4gZW1iZWRkZWQgSE1BQworICogICAgICAgICAgICAgICAgICBjb250ZXh0LgorICogXHBhcmFtIGtleSAgICAgICBUaGUgSE1BQyBzZWNyZXQga2V5LgorICogXHBhcmFtIGtleWxlbiAgICBUaGUgbGVuZ3RoIG9mIHRoZSBITUFDIGtleSBpbiBCeXRlcy4KKyAqCisgKiBccmV0dXJuICAgICAgICAgIFxjIDAgb24gc3VjY2Vzcy4KKyAqIFxyZXR1cm4gICAgICAgICAgI01CRURUTFNfRVJSX01EX0JBRF9JTlBVVF9EQVRBIG9uIHBhcmFtZXRlci12ZXJpZmljYXRpb24KKyAqICAgICAgICAgICAgICAgICAgZmFpbHVyZS4KKyAqLworTUJFRFRMU19DSEVDS19SRVRVUk5fVFlQSUNBTAoraW50IG1iZWR0bHNfbWRfaG1hY19zdGFydHMobWJlZHRsc19tZF9jb250ZXh0X3QgKmN0eCwgY29uc3QgdW5zaWduZWQgY2hhciAqa2V5LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IGtleWxlbik7CisKKy8qKgorICogXGJyaWVmICAgICAgICAgICBUaGlzIGZ1bmN0aW9uIGZlZWRzIGFuIGlucHV0IGJ1ZmZlciBpbnRvIGFuIG9uZ29pbmcgSE1BQworICogICAgICAgICAgICAgICAgICBjb21wdXRhdGlvbi4KKyAqCisgKiAgICAgICAgICAgICAgICAgIENhbGwgbWJlZHRsc19tZF9obWFjX3N0YXJ0cygpIG9yIG1iZWR0bHNfbWRfaG1hY19yZXNldCgpCisgKiAgICAgICAgICAgICAgICAgIGJlZm9yZSBjYWxsaW5nIHRoaXMgZnVuY3Rpb24uCisgKiAgICAgICAgICAgICAgICAgIFlvdSBtYXkgY2FsbCB0aGlzIGZ1bmN0aW9uIG11bHRpcGxlIHRpbWVzIHRvIHBhc3MgdGhlCisgKiAgICAgICAgICAgICAgICAgIGlucHV0IHBpZWNld2lzZS4KKyAqICAgICAgICAgICAgICAgICAgQWZ0ZXJ3YXJkcywgY2FsbCBtYmVkdGxzX21kX2htYWNfZmluaXNoKCkuCisgKgorICogXHBhcmFtIGN0eCAgICAgICBUaGUgbWVzc2FnZSBkaWdlc3QgY29udGV4dCBjb250YWluaW5nIGFuIGVtYmVkZGVkIEhNQUMKKyAqICAgICAgICAgICAgICAgICAgY29udGV4dC4KKyAqIFxwYXJhbSBpbnB1dCAgICAgVGhlIGJ1ZmZlciBob2xkaW5nIHRoZSBpbnB1dCBkYXRhLgorICogXHBhcmFtIGlsZW4gICAgICBUaGUgbGVuZ3RoIG9mIHRoZSBpbnB1dCBkYXRhLgorICoKKyAqIFxyZXR1cm4gICAgICAgICAgXGMgMCBvbiBzdWNjZXNzLgorICogXHJldHVybiAgICAgICAgICAjTUJFRFRMU19FUlJfTURfQkFEX0lOUFVUX0RBVEEgb24gcGFyYW1ldGVyLXZlcmlmaWNhdGlvbgorICogICAgICAgICAgICAgICAgICBmYWlsdXJlLgorICovCitNQkVEVExTX0NIRUNLX1JFVFVSTl9UWVBJQ0FMCitpbnQgbWJlZHRsc19tZF9obWFjX3VwZGF0ZShtYmVkdGxzX21kX2NvbnRleHRfdCAqY3R4LCBjb25zdCB1bnNpZ25lZCBjaGFyICppbnB1dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBpbGVuKTsKKworLyoqCisgKiBcYnJpZWYgICAgICAgICAgIFRoaXMgZnVuY3Rpb24gZmluaXNoZXMgdGhlIEhNQUMgb3BlcmF0aW9uLCBhbmQgd3JpdGVzCisgKiAgICAgICAgICAgICAgICAgIHRoZSByZXN1bHQgdG8gdGhlIG91dHB1dCBidWZmZXIuCisgKgorICogICAgICAgICAgICAgICAgICBDYWxsIHRoaXMgZnVuY3Rpb24gYWZ0ZXIgbWJlZHRsc19tZF9obWFjX3N0YXJ0cygpIGFuZAorICogICAgICAgICAgICAgICAgICBtYmVkdGxzX21kX2htYWNfdXBkYXRlKCkgdG8gZ2V0IHRoZSBITUFDIHZhbHVlLiBBZnRlcndhcmRzCisgKiAgICAgICAgICAgICAgICAgIHlvdSBtYXkgZWl0aGVyIGNhbGwgbWJlZHRsc19tZF9mcmVlKCkgdG8gY2xlYXIgdGhlIGNvbnRleHQsCisgKiAgICAgICAgICAgICAgICAgIG9yIGNhbGwgbWJlZHRsc19tZF9obWFjX3Jlc2V0KCkgdG8gcmV1c2UgdGhlIGNvbnRleHQgd2l0aAorICogICAgICAgICAgICAgICAgICB0aGUgc2FtZSBITUFDIGtleS4KKyAqCisgKiBccGFyYW0gY3R4ICAgICAgIFRoZSBtZXNzYWdlIGRpZ2VzdCBjb250ZXh0IGNvbnRhaW5pbmcgYW4gZW1iZWRkZWQgSE1BQworICogICAgICAgICAgICAgICAgICBjb250ZXh0LgorICogXHBhcmFtIG91dHB1dCAgICBUaGUgZ2VuZXJpYyBITUFDIGNoZWNrc3VtIHJlc3VsdC4KKyAqCisgKiBccmV0dXJuICAgICAgICAgIFxjIDAgb24gc3VjY2Vzcy4KKyAqIFxyZXR1cm4gICAgICAgICAgI01CRURUTFNfRVJSX01EX0JBRF9JTlBVVF9EQVRBIG9uIHBhcmFtZXRlci12ZXJpZmljYXRpb24KKyAqICAgICAgICAgICAgICAgICAgZmFpbHVyZS4KKyAqLworTUJFRFRMU19DSEVDS19SRVRVUk5fVFlQSUNBTAoraW50IG1iZWR0bHNfbWRfaG1hY19maW5pc2gobWJlZHRsc19tZF9jb250ZXh0X3QgKmN0eCwgdW5zaWduZWQgY2hhciAqb3V0cHV0KTsKKworLyoqCisgKiBcYnJpZWYgICAgICAgICAgIFRoaXMgZnVuY3Rpb24gcHJlcGFyZXMgdG8gYXV0aGVudGljYXRlIGEgbmV3IG1lc3NhZ2Ugd2l0aAorICogICAgICAgICAgICAgICAgICB0aGUgc2FtZSBrZXkgYXMgdGhlIHByZXZpb3VzIEhNQUMgb3BlcmF0aW9uLgorICoKKyAqICAgICAgICAgICAgICAgICAgWW91IG1heSBjYWxsIHRoaXMgZnVuY3Rpb24gYWZ0ZXIgbWJlZHRsc19tZF9obWFjX2ZpbmlzaCgpLgorICogICAgICAgICAgICAgICAgICBBZnRlcndhcmRzIGNhbGwgbWJlZHRsc19tZF9obWFjX3VwZGF0ZSgpIHRvIHBhc3MgdGhlIG5ldworICogICAgICAgICAgICAgICAgICBpbnB1dC4KKyAqCisgKiBccGFyYW0gY3R4ICAgICAgIFRoZSBtZXNzYWdlIGRpZ2VzdCBjb250ZXh0IGNvbnRhaW5pbmcgYW4gZW1iZWRkZWQgSE1BQworICogICAgICAgICAgICAgICAgICBjb250ZXh0LgorICoKKyAqIFxyZXR1cm4gICAgICAgICAgXGMgMCBvbiBzdWNjZXNzLgorICogXHJldHVybiAgICAgICAgICAjTUJFRFRMU19FUlJfTURfQkFEX0lOUFVUX0RBVEEgb24gcGFyYW1ldGVyLXZlcmlmaWNhdGlvbgorICogICAgICAgICAgICAgICAgICBmYWlsdXJlLgorICovCitNQkVEVExTX0NIRUNLX1JFVFVSTl9UWVBJQ0FMCitpbnQgbWJlZHRsc19tZF9obWFjX3Jlc2V0KG1iZWR0bHNfbWRfY29udGV4dF90ICpjdHgpOworCisvKioKKyAqIFxicmllZiAgICAgICAgICBUaGlzIGZ1bmN0aW9uIGNhbGN1bGF0ZXMgdGhlIGZ1bGwgZ2VuZXJpYyBITUFDCisgKiAgICAgICAgICAgICAgICAgb24gdGhlIGlucHV0IGJ1ZmZlciB3aXRoIHRoZSBwcm92aWRlZCBrZXkuCisgKgorICogICAgICAgICAgICAgICAgIFRoZSBmdW5jdGlvbiBhbGxvY2F0ZXMgdGhlIGNvbnRleHQsIHBlcmZvcm1zIHRoZQorICogICAgICAgICAgICAgICAgIGNhbGN1bGF0aW9uLCBhbmQgZnJlZXMgdGhlIGNvbnRleHQuCisgKgorICogICAgICAgICAgICAgICAgIFRoZSBITUFDIHJlc3VsdCBpcyBjYWxjdWxhdGVkIGFzCisgKiAgICAgICAgICAgICAgICAgb3V0cHV0ID0gZ2VuZXJpYyBITUFDKGhtYWMga2V5LCBpbnB1dCBidWZmZXIpLgorICoKKyAqIFxwYXJhbSBtZF9pbmZvICBUaGUgaW5mb3JtYXRpb24gc3RydWN0dXJlIG9mIHRoZSBtZXNzYWdlLWRpZ2VzdCBhbGdvcml0aG0KKyAqICAgICAgICAgICAgICAgICB0byB1c2UuCisgKiBccGFyYW0ga2V5ICAgICAgVGhlIEhNQUMgc2VjcmV0IGtleS4KKyAqIFxwYXJhbSBrZXlsZW4gICBUaGUgbGVuZ3RoIG9mIHRoZSBITUFDIHNlY3JldCBrZXkgaW4gQnl0ZXMuCisgKiBccGFyYW0gaW5wdXQgICAgVGhlIGJ1ZmZlciBob2xkaW5nIHRoZSBpbnB1dCBkYXRhLgorICogXHBhcmFtIGlsZW4gICAgIFRoZSBsZW5ndGggb2YgdGhlIGlucHV0IGRhdGEuCisgKiBccGFyYW0gb3V0cHV0ICAgVGhlIGdlbmVyaWMgSE1BQyByZXN1bHQuCisgKgorICogXHJldHVybiAgICAgICAgIFxjIDAgb24gc3VjY2Vzcy4KKyAqIFxyZXR1cm4gICAgICAgICAjTUJFRFRMU19FUlJfTURfQkFEX0lOUFVUX0RBVEEgb24gcGFyYW1ldGVyLXZlcmlmaWNhdGlvbgorICogICAgICAgICAgICAgICAgIGZhaWx1cmUuCisgKi8KK01CRURUTFNfQ0hFQ0tfUkVUVVJOX1RZUElDQUwKK2ludCBtYmVkdGxzX21kX2htYWMoY29uc3QgbWJlZHRsc19tZF9pbmZvX3QgKm1kX2luZm8sIGNvbnN0IHVuc2lnbmVkIGNoYXIgKmtleSwgc2l6ZV90IGtleWxlbiwKKyAgICAgICAgICAgICAgICAgICAgY29uc3QgdW5zaWduZWQgY2hhciAqaW5wdXQsIHNpemVfdCBpbGVuLAorICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBjaGFyICpvdXRwdXQpOworCisjaWZkZWYgX19jcGx1c3BsdXMKK30KKyNlbmRpZgorCisjZW5kaWYgLyogTUJFRFRMU19NRF9IICovCmRpZmYgLS1naXQgYS90Zi1wc2EtY3J5cHRvL2RyaXZlcnMvYnVpbHRpbi9pbmNsdWRlL21iZWR0bHMvbWQ1LmggYi90Zi1wc2EtY3J5cHRvL2RyaXZlcnMvYnVpbHRpbi9pbmNsdWRlL21iZWR0bHMvbWQ1LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODI2Y2NhNwotLS0gL2Rldi9udWxsCisrKyBiL3RmLXBzYS1jcnlwdG8vZHJpdmVycy9idWlsdGluL2luY2x1ZGUvbWJlZHRscy9tZDUuaApAQCAtMCwwICsxLDE4MiBAQAorLyoqCisgKiBcZmlsZSBtZDUuaAorICoKKyAqIFxicmllZiBNRDUgbWVzc2FnZSBkaWdlc3QgYWxnb3JpdGhtIChoYXNoIGZ1bmN0aW9uKQorICoKKyAqIFx3YXJuaW5nICAgTUQ1IGlzIGNvbnNpZGVyZWQgYSB3ZWFrIG1lc3NhZ2UgZGlnZXN0IGFuZCBpdHMgdXNlIGNvbnN0aXR1dGVzIGEKKyAqICAgICAgICAgICAgc2VjdXJpdHkgcmlzay4gV2UgcmVjb21tZW5kIGNvbnNpZGVyaW5nIHN0cm9uZ2VyIG1lc3NhZ2UKKyAqICAgICAgICAgICAgZGlnZXN0cyBpbnN0ZWFkLgorICovCisvKgorICogIENvcHlyaWdodCBUaGUgTWJlZCBUTFMgQ29udHJpYnV0b3JzCisgKiAgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjAgT1IgR1BMLTIuMC1vci1sYXRlcgorICovCisjaWZuZGVmIE1CRURUTFNfTUQ1X0gKKyNkZWZpbmUgTUJFRFRMU19NRDVfSAorI2luY2x1ZGUgIm1iZWR0bHMvcHJpdmF0ZV9hY2Nlc3MuaCIKKworI2luY2x1ZGUgIm1iZWR0bHMvYnVpbGRfaW5mby5oIgorCisjaW5jbHVkZSA8c3RkZGVmLmg+CisjaW5jbHVkZSA8c3RkaW50Lmg+CisKKyNpZmRlZiBfX2NwbHVzcGx1cworZXh0ZXJuICJDIiB7CisjZW5kaWYKKworLyoqCisgKiBcYnJpZWYgICAgICAgICAgTUQ1IGNvbnRleHQgc3RydWN0dXJlCisgKgorICogXHdhcm5pbmcgICAgICAgIE1ENSBpcyBjb25zaWRlcmVkIGEgd2VhayBtZXNzYWdlIGRpZ2VzdCBhbmQgaXRzIHVzZQorICogICAgICAgICAgICAgICAgIGNvbnN0aXR1dGVzIGEgc2VjdXJpdHkgcmlzay4gV2UgcmVjb21tZW5kIGNvbnNpZGVyaW5nCisgKiAgICAgICAgICAgICAgICAgc3Ryb25nZXIgbWVzc2FnZSBkaWdlc3RzIGluc3RlYWQuCisgKgorICovCit0eXBlZGVmIHN0cnVjdCBtYmVkdGxzX21kNV9jb250ZXh0IHsKKyAgICB1aW50MzJfdCBNQkVEVExTX1BSSVZBVEUodG90YWwpWzJdOyAgICAgICAgICAvKiE8IG51bWJlciBvZiBieXRlcyBwcm9jZXNzZWQgICovCisgICAgdWludDMyX3QgTUJFRFRMU19QUklWQVRFKHN0YXRlKVs0XTsgICAgICAgICAgLyohPCBpbnRlcm1lZGlhdGUgZGlnZXN0IHN0YXRlICAqLworICAgIHVuc2lnbmVkIGNoYXIgTUJFRFRMU19QUklWQVRFKGJ1ZmZlcilbNjRdOyAgIC8qITwgZGF0YSBibG9jayBiZWluZyBwcm9jZXNzZWQgKi8KK30KK21iZWR0bHNfbWQ1X2NvbnRleHQ7CisKKy8qKgorICogXGJyaWVmICAgICAgICAgIEluaXRpYWxpemUgTUQ1IGNvbnRleHQKKyAqCisgKiBccGFyYW0gY3R4ICAgICAgTUQ1IGNvbnRleHQgdG8gYmUgaW5pdGlhbGl6ZWQKKyAqCisgKiBcd2FybmluZyAgICAgICAgTUQ1IGlzIGNvbnNpZGVyZWQgYSB3ZWFrIG1lc3NhZ2UgZGlnZXN0IGFuZCBpdHMgdXNlCisgKiAgICAgICAgICAgICAgICAgY29uc3RpdHV0ZXMgYSBzZWN1cml0eSByaXNrLiBXZSByZWNvbW1lbmQgY29uc2lkZXJpbmcKKyAqICAgICAgICAgICAgICAgICBzdHJvbmdlciBtZXNzYWdlIGRpZ2VzdHMgaW5zdGVhZC4KKyAqCisgKi8KK3ZvaWQgbWJlZHRsc19tZDVfaW5pdChtYmVkdGxzX21kNV9jb250ZXh0ICpjdHgpOworCisvKioKKyAqIFxicmllZiAgICAgICAgICBDbGVhciBNRDUgY29udGV4dAorICoKKyAqIFxwYXJhbSBjdHggICAgICBNRDUgY29udGV4dCB0byBiZSBjbGVhcmVkCisgKgorICogXHdhcm5pbmcgICAgICAgIE1ENSBpcyBjb25zaWRlcmVkIGEgd2VhayBtZXNzYWdlIGRpZ2VzdCBhbmQgaXRzIHVzZQorICogICAgICAgICAgICAgICAgIGNvbnN0aXR1dGVzIGEgc2VjdXJpdHkgcmlzay4gV2UgcmVjb21tZW5kIGNvbnNpZGVyaW5nCisgKiAgICAgICAgICAgICAgICAgc3Ryb25nZXIgbWVzc2FnZSBkaWdlc3RzIGluc3RlYWQuCisgKgorICovCit2b2lkIG1iZWR0bHNfbWQ1X2ZyZWUobWJlZHRsc19tZDVfY29udGV4dCAqY3R4KTsKKworLyoqCisgKiBcYnJpZWYgICAgICAgICAgQ2xvbmUgKHRoZSBzdGF0ZSBvZikgYW4gTUQ1IGNvbnRleHQKKyAqCisgKiBccGFyYW0gZHN0ICAgICAgVGhlIGRlc3RpbmF0aW9uIGNvbnRleHQKKyAqIFxwYXJhbSBzcmMgICAgICBUaGUgY29udGV4dCB0byBiZSBjbG9uZWQKKyAqCisgKiBcd2FybmluZyAgICAgICAgTUQ1IGlzIGNvbnNpZGVyZWQgYSB3ZWFrIG1lc3NhZ2UgZGlnZXN0IGFuZCBpdHMgdXNlCisgKiAgICAgICAgICAgICAgICAgY29uc3RpdHV0ZXMgYSBzZWN1cml0eSByaXNrLiBXZSByZWNvbW1lbmQgY29uc2lkZXJpbmcKKyAqICAgICAgICAgICAgICAgICBzdHJvbmdlciBtZXNzYWdlIGRpZ2VzdHMgaW5zdGVhZC4KKyAqCisgKi8KK3ZvaWQgbWJlZHRsc19tZDVfY2xvbmUobWJlZHRsc19tZDVfY29udGV4dCAqZHN0LAorICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBtYmVkdGxzX21kNV9jb250ZXh0ICpzcmMpOworCisvKioKKyAqIFxicmllZiAgICAgICAgICBNRDUgY29udGV4dCBzZXR1cAorICoKKyAqIFxwYXJhbSBjdHggICAgICBjb250ZXh0IHRvIGJlIGluaXRpYWxpemVkCisgKgorICogXHJldHVybiAgICAgICAgIDAgaWYgc3VjY2Vzc2Z1bAorICoKKyAqIFx3YXJuaW5nICAgICAgICBNRDUgaXMgY29uc2lkZXJlZCBhIHdlYWsgbWVzc2FnZSBkaWdlc3QgYW5kIGl0cyB1c2UKKyAqICAgICAgICAgICAgICAgICBjb25zdGl0dXRlcyBhIHNlY3VyaXR5IHJpc2suIFdlIHJlY29tbWVuZCBjb25zaWRlcmluZworICogICAgICAgICAgICAgICAgIHN0cm9uZ2VyIG1lc3NhZ2UgZGlnZXN0cyBpbnN0ZWFkLgorICoKKyAqLworaW50IG1iZWR0bHNfbWQ1X3N0YXJ0cyhtYmVkdGxzX21kNV9jb250ZXh0ICpjdHgpOworCisvKioKKyAqIFxicmllZiAgICAgICAgICBNRDUgcHJvY2VzcyBidWZmZXIKKyAqCisgKiBccGFyYW0gY3R4ICAgICAgTUQ1IGNvbnRleHQKKyAqIFxwYXJhbSBpbnB1dCAgICBidWZmZXIgaG9sZGluZyB0aGUgZGF0YQorICogXHBhcmFtIGlsZW4gICAgIGxlbmd0aCBvZiB0aGUgaW5wdXQgZGF0YQorICoKKyAqIFxyZXR1cm4gICAgICAgICAwIGlmIHN1Y2Nlc3NmdWwKKyAqCisgKiBcd2FybmluZyAgICAgICAgTUQ1IGlzIGNvbnNpZGVyZWQgYSB3ZWFrIG1lc3NhZ2UgZGlnZXN0IGFuZCBpdHMgdXNlCisgKiAgICAgICAgICAgICAgICAgY29uc3RpdHV0ZXMgYSBzZWN1cml0eSByaXNrLiBXZSByZWNvbW1lbmQgY29uc2lkZXJpbmcKKyAqICAgICAgICAgICAgICAgICBzdHJvbmdlciBtZXNzYWdlIGRpZ2VzdHMgaW5zdGVhZC4KKyAqCisgKi8KK2ludCBtYmVkdGxzX21kNV91cGRhdGUobWJlZHRsc19tZDVfY29udGV4dCAqY3R4LAorICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1bnNpZ25lZCBjaGFyICppbnB1dCwKKyAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IGlsZW4pOworCisvKioKKyAqIFxicmllZiAgICAgICAgICBNRDUgZmluYWwgZGlnZXN0CisgKgorICogXHBhcmFtIGN0eCAgICAgIE1ENSBjb250ZXh0CisgKiBccGFyYW0gb3V0cHV0ICAgTUQ1IGNoZWNrc3VtIHJlc3VsdAorICoKKyAqIFxyZXR1cm4gICAgICAgICAwIGlmIHN1Y2Nlc3NmdWwKKyAqCisgKiBcd2FybmluZyAgICAgICAgTUQ1IGlzIGNvbnNpZGVyZWQgYSB3ZWFrIG1lc3NhZ2UgZGlnZXN0IGFuZCBpdHMgdXNlCisgKiAgICAgICAgICAgICAgICAgY29uc3RpdHV0ZXMgYSBzZWN1cml0eSByaXNrLiBXZSByZWNvbW1lbmQgY29uc2lkZXJpbmcKKyAqICAgICAgICAgICAgICAgICBzdHJvbmdlciBtZXNzYWdlIGRpZ2VzdHMgaW5zdGVhZC4KKyAqCisgKi8KK2ludCBtYmVkdGxzX21kNV9maW5pc2gobWJlZHRsc19tZDVfY29udGV4dCAqY3R4LAorICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBjaGFyIG91dHB1dFsxNl0pOworCisvKioKKyAqIFxicmllZiAgICAgICAgICBNRDUgcHJvY2VzcyBkYXRhIGJsb2NrIChpbnRlcm5hbCB1c2Ugb25seSkKKyAqCisgKiBccGFyYW0gY3R4ICAgICAgTUQ1IGNvbnRleHQKKyAqIFxwYXJhbSBkYXRhICAgICBidWZmZXIgaG9sZGluZyBvbmUgYmxvY2sgb2YgZGF0YQorICoKKyAqIFxyZXR1cm4gICAgICAgICAwIGlmIHN1Y2Nlc3NmdWwKKyAqCisgKiBcd2FybmluZyAgICAgICAgTUQ1IGlzIGNvbnNpZGVyZWQgYSB3ZWFrIG1lc3NhZ2UgZGlnZXN0IGFuZCBpdHMgdXNlCisgKiAgICAgICAgICAgICAgICAgY29uc3RpdHV0ZXMgYSBzZWN1cml0eSByaXNrLiBXZSByZWNvbW1lbmQgY29uc2lkZXJpbmcKKyAqICAgICAgICAgICAgICAgICBzdHJvbmdlciBtZXNzYWdlIGRpZ2VzdHMgaW5zdGVhZC4KKyAqCisgKi8KK2ludCBtYmVkdGxzX2ludGVybmFsX21kNV9wcm9jZXNzKG1iZWR0bHNfbWQ1X2NvbnRleHQgKmN0eCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgZGF0YVs2NF0pOworCisvKioKKyAqIFxicmllZiAgICAgICAgICBPdXRwdXQgPSBNRDUoIGlucHV0IGJ1ZmZlciApCisgKgorICogXHBhcmFtIGlucHV0ICAgIGJ1ZmZlciBob2xkaW5nIHRoZSBkYXRhCisgKiBccGFyYW0gaWxlbiAgICAgbGVuZ3RoIG9mIHRoZSBpbnB1dCBkYXRhCisgKiBccGFyYW0gb3V0cHV0ICAgTUQ1IGNoZWNrc3VtIHJlc3VsdAorICoKKyAqIFxyZXR1cm4gICAgICAgICAwIGlmIHN1Y2Nlc3NmdWwKKyAqCisgKiBcd2FybmluZyAgICAgICAgTUQ1IGlzIGNvbnNpZGVyZWQgYSB3ZWFrIG1lc3NhZ2UgZGlnZXN0IGFuZCBpdHMgdXNlCisgKiAgICAgICAgICAgICAgICAgY29uc3RpdHV0ZXMgYSBzZWN1cml0eSByaXNrLiBXZSByZWNvbW1lbmQgY29uc2lkZXJpbmcKKyAqICAgICAgICAgICAgICAgICBzdHJvbmdlciBtZXNzYWdlIGRpZ2VzdHMgaW5zdGVhZC4KKyAqCisgKi8KK2ludCBtYmVkdGxzX21kNShjb25zdCB1bnNpZ25lZCBjaGFyICppbnB1dCwKKyAgICAgICAgICAgICAgICBzaXplX3QgaWxlbiwKKyAgICAgICAgICAgICAgICB1bnNpZ25lZCBjaGFyIG91dHB1dFsxNl0pOworCisjaWYgZGVmaW5lZChNQkVEVExTX1NFTEZfVEVTVCkKKworLyoqCisgKiBcYnJpZWYgICAgICAgICAgQ2hlY2t1cCByb3V0aW5lCisgKgorICogXHJldHVybiAgICAgICAgIDAgaWYgc3VjY2Vzc2Z1bCwgb3IgMSBpZiB0aGUgdGVzdCBmYWlsZWQKKyAqCisgKiBcd2FybmluZyAgICAgICAgTUQ1IGlzIGNvbnNpZGVyZWQgYSB3ZWFrIG1lc3NhZ2UgZGlnZXN0IGFuZCBpdHMgdXNlCisgKiAgICAgICAgICAgICAgICAgY29uc3RpdHV0ZXMgYSBzZWN1cml0eSByaXNrLiBXZSByZWNvbW1lbmQgY29uc2lkZXJpbmcKKyAqICAgICAgICAgICAgICAgICBzdHJvbmdlciBtZXNzYWdlIGRpZ2VzdHMgaW5zdGVhZC4KKyAqCisgKi8KK2ludCBtYmVkdGxzX21kNV9zZWxmX3Rlc3QoaW50IHZlcmJvc2UpOworCisjZW5kaWYgLyogTUJFRFRMU19TRUxGX1RFU1QgKi8KKworI2lmZGVmIF9fY3BsdXNwbHVzCit9CisjZW5kaWYKKworI2VuZGlmIC8qIG1iZWR0bHNfbWQ1LmggKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvbWJlZHRscy9tZW1vcnlfYnVmZmVyX2FsbG9jLmggYi90Zi1wc2EtY3J5cHRvL2RyaXZlcnMvYnVpbHRpbi9pbmNsdWRlL21iZWR0bHMvbWVtb3J5X2J1ZmZlcl9hbGxvYy5oCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBpbmNsdWRlL21iZWR0bHMvbWVtb3J5X2J1ZmZlcl9hbGxvYy5oCnJlbmFtZSB0byB0Zi1wc2EtY3J5cHRvL2RyaXZlcnMvYnVpbHRpbi9pbmNsdWRlL21iZWR0bHMvbWVtb3J5X2J1ZmZlcl9hbGxvYy5oCmRpZmYgLS1naXQgYS90Zi1wc2EtY3J5cHRvL2RyaXZlcnMvYnVpbHRpbi9pbmNsdWRlL21iZWR0bHMvbmlzdF9rdy5oIGIvdGYtcHNhLWNyeXB0by9kcml2ZXJzL2J1aWx0aW4vaW5jbHVkZS9tYmVkdGxzL25pc3Rfa3cuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hOTlkOTI1Ci0tLSAvZGV2L251bGwKKysrIGIvdGYtcHNhLWNyeXB0by9kcml2ZXJzL2J1aWx0aW4vaW5jbHVkZS9tYmVkdGxzL25pc3Rfa3cuaApAQCAtMCwwICsxLDE1OCBAQAorLyoqCisgKiBcZmlsZSBuaXN0X2t3LmgKKyAqCisgKiBcYnJpZWYgVGhpcyBmaWxlIHByb3ZpZGVzIGFuIEFQSSBmb3Iga2V5IHdyYXBwaW5nIChLVykgYW5kIGtleSB3cmFwcGluZyB3aXRoCisgKiAgICAgICAgcGFkZGluZyAoS1dQKSBhcyBkZWZpbmVkIGluIE5JU1QgU1AgODAwLTM4Ri4KKyAqICAgICAgICBodHRwczovL252bHB1YnMubmlzdC5nb3YvbmlzdHB1YnMvU3BlY2lhbFB1YmxpY2F0aW9ucy9OSVNULlNQLjgwMC0zOEYucGRmCisgKgorICogICAgICAgIEtleSB3cmFwcGluZyBzcGVjaWZpZXMgYSBkZXRlcm1pbmlzdGljIGF1dGhlbnRpY2F0ZWQtZW5jcnlwdGlvbiBtb2RlCisgKiAgICAgICAgb2Ygb3BlcmF0aW9uLCBhY2NvcmRpbmcgdG8gPGVtPk5JU1QgU1AgODAwLTM4RjogUmVjb21tZW5kYXRpb24gZm9yCisgKiAgICAgICAgQmxvY2sgQ2lwaGVyIE1vZGVzIG9mIE9wZXJhdGlvbjogTWV0aG9kcyBmb3IgS2V5IFdyYXBwaW5nPC9lbT4uIEl0cworICogICAgICAgIHB1cnBvc2UgaXMgdG8gcHJvdGVjdCBjcnlwdG9ncmFwaGljIGtleXMuCisgKgorICogICAgICAgIEl0cyBlcXVpdmFsZW50IGlzIFJGQyAzMzk0IGZvciBLVywgYW5kIFJGQyA1NjQ5IGZvciBLV1AuCisgKiAgICAgICAgaHR0cHM6Ly90b29scy5pZXRmLm9yZy9odG1sL3JmYzMzOTQKKyAqICAgICAgICBodHRwczovL3Rvb2xzLmlldGYub3JnL2h0bWwvcmZjNTY0OQorICoKKyAqLworLyoKKyAqICBDb3B5cmlnaHQgVGhlIE1iZWQgVExTIENvbnRyaWJ1dG9ycworICogIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wIE9SIEdQTC0yLjAtb3ItbGF0ZXIKKyAqLworCisjaWZuZGVmIE1CRURUTFNfTklTVF9LV19ICisjZGVmaW5lIE1CRURUTFNfTklTVF9LV19ICisjaW5jbHVkZSAibWJlZHRscy9wcml2YXRlX2FjY2Vzcy5oIgorCisjaW5jbHVkZSAibWJlZHRscy9idWlsZF9pbmZvLmgiCisKKyNpbmNsdWRlICJtYmVkdGxzL2NpcGhlci5oIgorCisjaWZkZWYgX19jcGx1c3BsdXMKK2V4dGVybiAiQyIgeworI2VuZGlmCisKK3R5cGVkZWYgZW51bSB7CisgICAgTUJFRFRMU19LV19NT0RFX0tXID0gMCwKKyAgICBNQkVEVExTX0tXX01PREVfS1dQID0gMQorfSBtYmVkdGxzX25pc3Rfa3dfbW9kZV90OworCisvKioKKyAqIFxicmllZiAgICBUaGUga2V5IHdyYXBwaW5nIGNvbnRleHQtdHlwZSBkZWZpbml0aW9uLiBUaGUga2V5IHdyYXBwaW5nIGNvbnRleHQgaXMgcGFzc2VkCisgKiAgICAgICAgICAgdG8gdGhlIEFQSXMgY2FsbGVkLgorICoKKyAqIFxub3RlICAgICBUaGUgZGVmaW5pdGlvbiBvZiB0aGlzIHR5cGUgbWF5IGNoYW5nZSBpbiBmdXR1cmUgbGlicmFyeSB2ZXJzaW9ucy4KKyAqICAgICAgICAgICBEb24ndCBtYWtlIGFueSBhc3N1bXB0aW9ucyBvbiB0aGlzIGNvbnRleHQhCisgKi8KK3R5cGVkZWYgc3RydWN0IHsKKyAgICBtYmVkdGxzX2NpcGhlcl9jb250ZXh0X3QgTUJFRFRMU19QUklWQVRFKGNpcGhlcl9jdHgpOyAgICAvKiE8IFRoZSBjaXBoZXIgY29udGV4dCB1c2VkLiAqLworfSBtYmVkdGxzX25pc3Rfa3dfY29udGV4dDsKKworLyoqCisgKiBcYnJpZWYgICAgICAgICAgIFRoaXMgZnVuY3Rpb24gaW5pdGlhbGl6ZXMgdGhlIHNwZWNpZmllZCBrZXkgd3JhcHBpbmcgY29udGV4dAorICogICAgICAgICAgICAgICAgICB0byBtYWtlIHJlZmVyZW5jZXMgdmFsaWQgYW5kIHByZXBhcmUgdGhlIGNvbnRleHQKKyAqICAgICAgICAgICAgICAgICAgZm9yIG1iZWR0bHNfbmlzdF9rd19zZXRrZXkoKSBvciBtYmVkdGxzX25pc3Rfa3dfZnJlZSgpLgorICoKKyAqIFxwYXJhbSBjdHggICAgICAgVGhlIGtleSB3cmFwcGluZyBjb250ZXh0IHRvIGluaXRpYWxpemUuCisgKgorICovCit2b2lkIG1iZWR0bHNfbmlzdF9rd19pbml0KG1iZWR0bHNfbmlzdF9rd19jb250ZXh0ICpjdHgpOworCisvKioKKyAqIFxicmllZiAgICAgICAgICAgVGhpcyBmdW5jdGlvbiBpbml0aWFsaXplcyB0aGUga2V5IHdyYXBwaW5nIGNvbnRleHQgc2V0IGluIHRoZQorICogICAgICAgICAgICAgICAgICBccCBjdHggcGFyYW1ldGVyIGFuZCBzZXRzIHRoZSBlbmNyeXB0aW9uIGtleS4KKyAqCisgKiBccGFyYW0gY3R4ICAgICAgIFRoZSBrZXkgd3JhcHBpbmcgY29udGV4dC4KKyAqIFxwYXJhbSBjaXBoZXIgICAgVGhlIDEyOC1iaXQgYmxvY2sgY2lwaGVyIHRvIHVzZS4gT25seSBBRVMgaXMgc3VwcG9ydGVkLgorICogXHBhcmFtIGtleSAgICAgICBUaGUgS2V5IEVuY3J5cHRpb24gS2V5IChLRUspLgorICogXHBhcmFtIGtleWJpdHMgICBUaGUgS0VLIHNpemUgaW4gYml0cy4gVGhpcyBtdXN0IGJlIGFjY2VwdGFibGUgYnkgdGhlIGNpcGhlci4KKyAqIFxwYXJhbSBpc193cmFwICAgU3BlY2lmeSB3aGV0aGVyIHRoZSBvcGVyYXRpb24gd2l0aGluIHRoZSBjb250ZXh0IGlzIHdyYXBwaW5nIG9yIHVud3JhcHBpbmcKKyAqCisgKiBccmV0dXJuICAgICAgICAgIFxjIDAgb24gc3VjY2Vzcy4KKyAqIFxyZXR1cm4gICAgICAgICAgXGMgTUJFRFRMU19FUlJfQ0lQSEVSX0JBRF9JTlBVVF9EQVRBIGZvciBhbnkgaW52YWxpZCBpbnB1dC4KKyAqIFxyZXR1cm4gICAgICAgICAgXGMgTUJFRFRMU19FUlJfQ0lQSEVSX0ZFQVRVUkVfVU5BVkFJTEFCTEUgZm9yIDEyOC1iaXQgYmxvY2sgY2lwaGVycworICogICAgICAgICAgICAgICAgICB3aGljaCBhcmUgbm90IHN1cHBvcnRlZC4KKyAqIFxyZXR1cm4gICAgICAgICAgY2lwaGVyLXNwZWNpZmljIGVycm9yIGNvZGUgb24gZmFpbHVyZSBvZiB0aGUgdW5kZXJseWluZyBjaXBoZXIuCisgKi8KK2ludCBtYmVkdGxzX25pc3Rfa3dfc2V0a2V5KG1iZWR0bHNfbmlzdF9rd19jb250ZXh0ICpjdHgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICBtYmVkdGxzX2NpcGhlcl9pZF90IGNpcGhlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgKmtleSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCBrZXliaXRzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgaW50IGlzX3dyYXApOworCisvKioKKyAqIFxicmllZiAgIFRoaXMgZnVuY3Rpb24gcmVsZWFzZXMgYW5kIGNsZWFycyB0aGUgc3BlY2lmaWVkIGtleSB3cmFwcGluZyBjb250ZXh0CisgKiAgICAgICAgICBhbmQgdW5kZXJseWluZyBjaXBoZXIgc3ViLWNvbnRleHQuCisgKgorICogXHBhcmFtIGN0eCAgICAgICBUaGUga2V5IHdyYXBwaW5nIGNvbnRleHQgdG8gY2xlYXIuCisgKi8KK3ZvaWQgbWJlZHRsc19uaXN0X2t3X2ZyZWUobWJlZHRsc19uaXN0X2t3X2NvbnRleHQgKmN0eCk7CisKKy8qKgorICogXGJyaWVmICAgICAgICAgICBUaGlzIGZ1bmN0aW9uIGVuY3J5cHRzIGEgYnVmZmVyIHVzaW5nIGtleSB3cmFwcGluZy4KKyAqCisgKiBccGFyYW0gY3R4ICAgICAgIFRoZSBrZXkgd3JhcHBpbmcgY29udGV4dCB0byB1c2UgZm9yIGVuY3J5cHRpb24uCisgKiBccGFyYW0gbW9kZSAgICAgIFRoZSBrZXkgd3JhcHBpbmcgbW9kZSB0byB1c2UgKE1CRURUTFNfS1dfTU9ERV9LVyBvciBNQkVEVExTX0tXX01PREVfS1dQKQorICogXHBhcmFtIGlucHV0ICAgICBUaGUgYnVmZmVyIGhvbGRpbmcgdGhlIGlucHV0IGRhdGEuCisgKiBccGFyYW0gaW5fbGVuICAgIFRoZSBsZW5ndGggb2YgdGhlIGlucHV0IGRhdGEgaW4gQnl0ZXMuCisgKiAgICAgICAgICAgICAgICAgIFRoZSBpbnB1dCB1c2VzIHVuaXRzIG9mIDggQnl0ZXMgY2FsbGVkIHNlbWlibG9ja3MuCisgKiAgICAgICAgICAgICAgICAgIDx1bD48bGk+Rm9yIEtXIG1vZGU6IGEgbXVsdGlwbGUgb2YgOCBieXRlcyBiZXR3ZWVuIDE2IGFuZCAyXjU3LTggaW5jbHVzaXZlLiA8L2xpPgorICogICAgICAgICAgICAgICAgICA8bGk+Rm9yIEtXUCBtb2RlOiBhbnkgbGVuZ3RoIGJldHdlZW4gMSBhbmQgMl4zMi0xIGluY2x1c2l2ZS48L2xpPjwvdWw+CisgKiBccGFyYW1bb3V0XSBvdXRwdXQgICAgVGhlIGJ1ZmZlciBob2xkaW5nIHRoZSBvdXRwdXQgZGF0YS4KKyAqICAgICAgICAgICAgICAgICAgPHVsPjxsaT5Gb3IgS1cgbW9kZTogTXVzdCBiZSBhdCBsZWFzdCA4IGJ5dGVzIGxhcmdlciB0aGFuIFxwIGluX2xlbi48L2xpPgorICogICAgICAgICAgICAgICAgICA8bGk+Rm9yIEtXUCBtb2RlOiBNdXN0IGJlIGF0IGxlYXN0IDggYnl0ZXMgbGFyZ2VyIHJvdW5kZWQgdXAgdG8gYSBtdWx0aXBsZSBvZgorICogICAgICAgICAgICAgICAgICA4IGJ5dGVzIGZvciBLV1AgKDE1IGJ5dGVzIGF0IG1vc3QpLjwvbGk+PC91bD4KKyAqIFxwYXJhbVtvdXRdIG91dF9sZW4gVGhlIG51bWJlciBvZiBieXRlcyB3cml0dGVuIHRvIHRoZSBvdXRwdXQgYnVmZmVyLiBcYyAwIG9uIGZhaWx1cmUuCisgKiBccGFyYW1baW5dIG91dF9zaXplIFRoZSBjYXBhY2l0eSBvZiB0aGUgb3V0cHV0IGJ1ZmZlci4KKyAqCisgKiBccmV0dXJuICAgICAgICAgIFxjIDAgb24gc3VjY2Vzcy4KKyAqIFxyZXR1cm4gICAgICAgICAgXGMgTUJFRFRMU19FUlJfQ0lQSEVSX0JBRF9JTlBVVF9EQVRBIGZvciBpbnZhbGlkIGlucHV0IGxlbmd0aC4KKyAqIFxyZXR1cm4gICAgICAgICAgY2lwaGVyLXNwZWNpZmljIGVycm9yIGNvZGUgb24gZmFpbHVyZSBvZiB0aGUgdW5kZXJseWluZyBjaXBoZXIuCisgKi8KK2ludCBtYmVkdGxzX25pc3Rfa3dfd3JhcChtYmVkdGxzX25pc3Rfa3dfY29udGV4dCAqY3R4LCBtYmVkdGxzX25pc3Rfa3dfbW9kZV90IG1vZGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdW5zaWduZWQgY2hhciAqaW5wdXQsIHNpemVfdCBpbl9sZW4sCisgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgY2hhciAqb3V0cHV0LCBzaXplX3QgKm91dF9sZW4sIHNpemVfdCBvdXRfc2l6ZSk7CisKKy8qKgorICogXGJyaWVmICAgICAgICAgICBUaGlzIGZ1bmN0aW9uIGRlY3J5cHRzIGEgYnVmZmVyIHVzaW5nIGtleSB3cmFwcGluZy4KKyAqCisgKiBccGFyYW0gY3R4ICAgICAgIFRoZSBrZXkgd3JhcHBpbmcgY29udGV4dCB0byB1c2UgZm9yIGRlY3J5cHRpb24uCisgKiBccGFyYW0gbW9kZSAgICAgIFRoZSBrZXkgd3JhcHBpbmcgbW9kZSB0byB1c2UgKE1CRURUTFNfS1dfTU9ERV9LVyBvciBNQkVEVExTX0tXX01PREVfS1dQKQorICogXHBhcmFtIGlucHV0ICAgICBUaGUgYnVmZmVyIGhvbGRpbmcgdGhlIGlucHV0IGRhdGEuCisgKiBccGFyYW0gaW5fbGVuICAgIFRoZSBsZW5ndGggb2YgdGhlIGlucHV0IGRhdGEgaW4gQnl0ZXMuCisgKiAgICAgICAgICAgICAgICAgIFRoZSBpbnB1dCB1c2VzIHVuaXRzIG9mIDggQnl0ZXMgY2FsbGVkIHNlbWlibG9ja3MuCisgKiAgICAgICAgICAgICAgICAgIFRoZSBpbnB1dCBtdXN0IGJlIGEgbXVsdGlwbGUgb2Ygc2VtaWJsb2Nrcy4KKyAqICAgICAgICAgICAgICAgICAgPHVsPjxsaT5Gb3IgS1cgbW9kZTogYSBtdWx0aXBsZSBvZiA4IGJ5dGVzIGJldHdlZW4gMjQgYW5kIDJeNTcgaW5jbHVzaXZlLiA8L2xpPgorICogICAgICAgICAgICAgICAgICA8bGk+Rm9yIEtXUCBtb2RlOiBhIG11bHRpcGxlIG9mIDggYnl0ZXMgYmV0d2VlbiAxNiBhbmQgMl4zMiBpbmNsdXNpdmUuPC9saT48L3VsPgorICogXHBhcmFtW291dF0gb3V0cHV0ICAgIFRoZSBidWZmZXIgaG9sZGluZyB0aGUgb3V0cHV0IGRhdGEuCisgKiAgICAgICAgICAgICAgICAgIFRoZSBvdXRwdXQgYnVmZmVyJ3MgbWluaW1hbCBsZW5ndGggaXMgOCBieXRlcyBzaG9ydGVyIHRoYW4gXHAgaW5fbGVuLgorICogXHBhcmFtW291dF0gb3V0X2xlbiBUaGUgbnVtYmVyIG9mIGJ5dGVzIHdyaXR0ZW4gdG8gdGhlIG91dHB1dCBidWZmZXIuIFxjIDAgb24gZmFpbHVyZS4KKyAqICAgICAgICAgICAgICAgICAgRm9yIEtXUCBtb2RlLCB0aGUgbGVuZ3RoIGNvdWxkIGJlIHVwIHRvIDE1IGJ5dGVzIHNob3J0ZXIgdGhhbiBccCBpbl9sZW4sCisgKiAgICAgICAgICAgICAgICAgIGRlcGVuZGluZyBvbiBob3cgbXVjaCBwYWRkaW5nIHdhcyBhZGRlZCB0byB0aGUgZGF0YS4KKyAqIFxwYXJhbVtpbl0gb3V0X3NpemUgVGhlIGNhcGFjaXR5IG9mIHRoZSBvdXRwdXQgYnVmZmVyLgorICoKKyAqIFxyZXR1cm4gICAgICAgICAgXGMgMCBvbiBzdWNjZXNzLgorICogXHJldHVybiAgICAgICAgICBcYyBNQkVEVExTX0VSUl9DSVBIRVJfQkFEX0lOUFVUX0RBVEEgZm9yIGludmFsaWQgaW5wdXQgbGVuZ3RoLgorICogXHJldHVybiAgICAgICAgICBcYyBNQkVEVExTX0VSUl9DSVBIRVJfQVVUSF9GQUlMRUQgZm9yIHZlcmlmaWNhdGlvbiBmYWlsdXJlIG9mIHRoZSBjaXBoZXJ0ZXh0LgorICogXHJldHVybiAgICAgICAgICBjaXBoZXItc3BlY2lmaWMgZXJyb3IgY29kZSBvbiBmYWlsdXJlIG9mIHRoZSB1bmRlcmx5aW5nIGNpcGhlci4KKyAqLworaW50IG1iZWR0bHNfbmlzdF9rd191bndyYXAobWJlZHRsc19uaXN0X2t3X2NvbnRleHQgKmN0eCwgbWJlZHRsc19uaXN0X2t3X21vZGVfdCBtb2RlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdW5zaWduZWQgY2hhciAqaW5wdXQsIHNpemVfdCBpbl9sZW4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBjaGFyICpvdXRwdXQsIHNpemVfdCAqb3V0X2xlbiwgc2l6ZV90IG91dF9zaXplKTsKKworCisjaWYgZGVmaW5lZChNQkVEVExTX1NFTEZfVEVTVCkgJiYgZGVmaW5lZChNQkVEVExTX0FFU19DKQorLyoqCisgKiBcYnJpZWYgICAgICAgICAgVGhlIGtleSB3cmFwcGluZyBjaGVja3VwIHJvdXRpbmUuCisgKgorICogXHJldHVybiAgICAgICAgIFxjIDAgb24gc3VjY2Vzcy4KKyAqIFxyZXR1cm4gICAgICAgICBcYyAxIG9uIGZhaWx1cmUuCisgKi8KK2ludCBtYmVkdGxzX25pc3Rfa3dfc2VsZl90ZXN0KGludCB2ZXJib3NlKTsKKyNlbmRpZiAvKiBNQkVEVExTX1NFTEZfVEVTVCAmJiBNQkVEVExTX0FFU19DICovCisKKyNpZmRlZiBfX2NwbHVzcGx1cworfQorI2VuZGlmCisKKyNlbmRpZiAvKiBNQkVEVExTX05JU1RfS1dfSCAqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9tYmVkdGxzL29pZC5oIGIvdGYtcHNhLWNyeXB0by9kcml2ZXJzL2J1aWx0aW4vaW5jbHVkZS9tYmVkdGxzL29pZC5oCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBpbmNsdWRlL21iZWR0bHMvb2lkLmgKcmVuYW1lIHRvIHRmLXBzYS1jcnlwdG8vZHJpdmVycy9idWlsdGluL2luY2x1ZGUvbWJlZHRscy9vaWQuaApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9tYmVkdGxzL3BlbS5oIGIvdGYtcHNhLWNyeXB0by9kcml2ZXJzL2J1aWx0aW4vaW5jbHVkZS9tYmVkdGxzL3BlbS5oCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBpbmNsdWRlL21iZWR0bHMvcGVtLmgKcmVuYW1lIHRvIHRmLXBzYS1jcnlwdG8vZHJpdmVycy9idWlsdGluL2luY2x1ZGUvbWJlZHRscy9wZW0uaApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9tYmVkdGxzL3BrLmggYi90Zi1wc2EtY3J5cHRvL2RyaXZlcnMvYnVpbHRpbi9pbmNsdWRlL21iZWR0bHMvcGsuaApzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gaW5jbHVkZS9tYmVkdGxzL3BrLmgKcmVuYW1lIHRvIHRmLXBzYS1jcnlwdG8vZHJpdmVycy9idWlsdGluL2luY2x1ZGUvbWJlZHRscy9way5oCmRpZmYgLS1naXQgYS9pbmNsdWRlL21iZWR0bHMvcGtjczEyLmggYi90Zi1wc2EtY3J5cHRvL2RyaXZlcnMvYnVpbHRpbi9pbmNsdWRlL21iZWR0bHMvcGtjczEyLmgKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIGluY2x1ZGUvbWJlZHRscy9wa2NzMTIuaApyZW5hbWUgdG8gdGYtcHNhLWNyeXB0by9kcml2ZXJzL2J1aWx0aW4vaW5jbHVkZS9tYmVkdGxzL3BrY3MxMi5oCmRpZmYgLS1naXQgYS9pbmNsdWRlL21iZWR0bHMvcGtjczUuaCBiL3RmLXBzYS1jcnlwdG8vZHJpdmVycy9idWlsdGluL2luY2x1ZGUvbWJlZHRscy9wa2NzNS5oCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBpbmNsdWRlL21iZWR0bHMvcGtjczUuaApyZW5hbWUgdG8gdGYtcHNhLWNyeXB0by9kcml2ZXJzL2J1aWx0aW4vaW5jbHVkZS9tYmVkdGxzL3BrY3M1LmgKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbWJlZHRscy9wbGF0Zm9ybS5oIGIvdGYtcHNhLWNyeXB0by9kcml2ZXJzL2J1aWx0aW4vaW5jbHVkZS9tYmVkdGxzL3BsYXRmb3JtLmgKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIGluY2x1ZGUvbWJlZHRscy9wbGF0Zm9ybS5oCnJlbmFtZSB0byB0Zi1wc2EtY3J5cHRvL2RyaXZlcnMvYnVpbHRpbi9pbmNsdWRlL21iZWR0bHMvcGxhdGZvcm0uaApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9tYmVkdGxzL3BsYXRmb3JtX3RpbWUuaCBiL3RmLXBzYS1jcnlwdG8vZHJpdmVycy9idWlsdGluL2luY2x1ZGUvbWJlZHRscy9wbGF0Zm9ybV90aW1lLmgKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIGluY2x1ZGUvbWJlZHRscy9wbGF0Zm9ybV90aW1lLmgKcmVuYW1lIHRvIHRmLXBzYS1jcnlwdG8vZHJpdmVycy9idWlsdGluL2luY2x1ZGUvbWJlZHRscy9wbGF0Zm9ybV90aW1lLmgKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbWJlZHRscy9wbGF0Zm9ybV91dGlsLmggYi90Zi1wc2EtY3J5cHRvL2RyaXZlcnMvYnVpbHRpbi9pbmNsdWRlL21iZWR0bHMvcGxhdGZvcm1fdXRpbC5oCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBpbmNsdWRlL21iZWR0bHMvcGxhdGZvcm1fdXRpbC5oCnJlbmFtZSB0byB0Zi1wc2EtY3J5cHRvL2RyaXZlcnMvYnVpbHRpbi9pbmNsdWRlL21iZWR0bHMvcGxhdGZvcm1fdXRpbC5oCmRpZmYgLS1naXQgYS90Zi1wc2EtY3J5cHRvL2RyaXZlcnMvYnVpbHRpbi9pbmNsdWRlL21iZWR0bHMvcG9seTEzMDUuaCBiL3RmLXBzYS1jcnlwdG8vZHJpdmVycy9idWlsdGluL2luY2x1ZGUvbWJlZHRscy9wb2x5MTMwNS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmI3MGJmYjgKLS0tIC9kZXYvbnVsbAorKysgYi90Zi1wc2EtY3J5cHRvL2RyaXZlcnMvYnVpbHRpbi9pbmNsdWRlL21iZWR0bHMvcG9seTEzMDUuaApAQCAtMCwwICsxLDE2MiBAQAorLyoqCisgKiBcZmlsZSBwb2x5MTMwNS5oCisgKgorICogXGJyaWVmICAgVGhpcyBmaWxlIGNvbnRhaW5zIFBvbHkxMzA1IGRlZmluaXRpb25zIGFuZCBmdW5jdGlvbnMuCisgKgorICogICAgICAgICAgUG9seTEzMDUgaXMgYSBvbmUtdGltZSBtZXNzYWdlIGF1dGhlbnRpY2F0b3IgdGhhdCBjYW4gYmUgdXNlZCB0bworICogICAgICAgICAgYXV0aGVudGljYXRlIG1lc3NhZ2VzLiBQb2x5MTMwNS1BRVMgd2FzIGNyZWF0ZWQgYnkgRGFuaWVsCisgKiAgICAgICAgICBCZXJuc3RlaW4gaHR0cHM6Ly9jci55cC50by9tYWMvcG9seTEzMDUtMjAwNTAzMjkucGRmIFRoZSBnZW5lcmljCisgKiAgICAgICAgICBQb2x5MTMwNSBhbGdvcml0aG0gKG5vdCB0aWVkIHRvIEFFUykgd2FzIGFsc28gc3RhbmRhcmRpemVkIGluIFJGQworICogICAgICAgICAgNzUzOS4KKyAqCisgKiBcYXV0aG9yIERhbmllbCBLaW5nIDxkYW1ha2kuZ2hAZ21haWwuY29tPgorICovCisKKy8qCisgKiAgQ29weXJpZ2h0IFRoZSBNYmVkIFRMUyBDb250cmlidXRvcnMKKyAqICBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMCBPUiBHUEwtMi4wLW9yLWxhdGVyCisgKi8KKworI2lmbmRlZiBNQkVEVExTX1BPTFkxMzA1X0gKKyNkZWZpbmUgTUJFRFRMU19QT0xZMTMwNV9ICisjaW5jbHVkZSAibWJlZHRscy9wcml2YXRlX2FjY2Vzcy5oIgorCisjaW5jbHVkZSAibWJlZHRscy9idWlsZF9pbmZvLmgiCisKKyNpbmNsdWRlIDxzdGRpbnQuaD4KKyNpbmNsdWRlIDxzdGRkZWYuaD4KKworLyoqIEludmFsaWQgaW5wdXQgcGFyYW1ldGVyKHMpLiAqLworI2RlZmluZSBNQkVEVExTX0VSUl9QT0xZMTMwNV9CQURfSU5QVVRfREFUQSAgICAgICAgIC0weDAwNTcKKworI2lmZGVmIF9fY3BsdXNwbHVzCitleHRlcm4gIkMiIHsKKyNlbmRpZgorCit0eXBlZGVmIHN0cnVjdCBtYmVkdGxzX3BvbHkxMzA1X2NvbnRleHQgeworICAgIHVpbnQzMl90IE1CRURUTFNfUFJJVkFURShyKVs0XTsgICAgICAvKiogVGhlIHZhbHVlIGZvciAncicgKGxvdyAxMjggYml0cyBvZiB0aGUga2V5KS4gKi8KKyAgICB1aW50MzJfdCBNQkVEVExTX1BSSVZBVEUocylbNF07ICAgICAgLyoqIFRoZSB2YWx1ZSBmb3IgJ3MnIChoaWdoIDEyOCBiaXRzIG9mIHRoZSBrZXkpLiAqLworICAgIHVpbnQzMl90IE1CRURUTFNfUFJJVkFURShhY2MpWzVdOyAgICAvKiogVGhlIGFjY3VtdWxhdG9yIG51bWJlci4gKi8KKyAgICB1aW50OF90IE1CRURUTFNfUFJJVkFURShxdWV1ZSlbMTZdOyAgLyoqIFRoZSBjdXJyZW50IHBhcnRpYWwgYmxvY2sgb2YgZGF0YS4gKi8KKyAgICBzaXplX3QgTUJFRFRMU19QUklWQVRFKHF1ZXVlX2xlbik7ICAgLyoqIFRoZSBudW1iZXIgb2YgYnl0ZXMgc3RvcmVkIGluICdxdWV1ZScuICovCit9CittYmVkdGxzX3BvbHkxMzA1X2NvbnRleHQ7CisKKy8qKgorICogXGJyaWVmICAgICAgICAgICBUaGlzIGZ1bmN0aW9uIGluaXRpYWxpemVzIHRoZSBzcGVjaWZpZWQgUG9seTEzMDUgY29udGV4dC4KKyAqCisgKiAgICAgICAgICAgICAgICAgIEl0IG11c3QgYmUgdGhlIGZpcnN0IEFQSSBjYWxsZWQgYmVmb3JlIHVzaW5nCisgKiAgICAgICAgICAgICAgICAgIHRoZSBjb250ZXh0LgorICoKKyAqICAgICAgICAgICAgICAgICAgSXQgaXMgdXN1YWxseSBmb2xsb3dlZCBieSBhIGNhbGwgdG8KKyAqICAgICAgICAgICAgICAgICAgXGMgbWJlZHRsc19wb2x5MTMwNV9zdGFydHMoKSwgdGhlbiBvbmUgb3IgbW9yZSBjYWxscyB0bworICogICAgICAgICAgICAgICAgICBcYyBtYmVkdGxzX3BvbHkxMzA1X3VwZGF0ZSgpLCB0aGVuIG9uZSBjYWxsIHRvCisgKiAgICAgICAgICAgICAgICAgIFxjIG1iZWR0bHNfcG9seTEzMDVfZmluaXNoKCksIHRoZW4gZmluYWxseQorICogICAgICAgICAgICAgICAgICBcYyBtYmVkdGxzX3BvbHkxMzA1X2ZyZWUoKS4KKyAqCisgKiBccGFyYW0gY3R4ICAgICAgIFRoZSBQb2x5MTMwNSBjb250ZXh0IHRvIGluaXRpYWxpemUuIFRoaXMgbXVzdAorICogICAgICAgICAgICAgICAgICBub3QgYmUgXGMgTlVMTC4KKyAqLwordm9pZCBtYmVkdGxzX3BvbHkxMzA1X2luaXQobWJlZHRsc19wb2x5MTMwNV9jb250ZXh0ICpjdHgpOworCisvKioKKyAqIFxicmllZiAgICAgICAgICAgVGhpcyBmdW5jdGlvbiByZWxlYXNlcyBhbmQgY2xlYXJzIHRoZSBzcGVjaWZpZWQKKyAqICAgICAgICAgICAgICAgICAgUG9seTEzMDUgY29udGV4dC4KKyAqCisgKiBccGFyYW0gY3R4ICAgICAgIFRoZSBQb2x5MTMwNSBjb250ZXh0IHRvIGNsZWFyLiBUaGlzIG1heSBiZSBcYyBOVUxMLCBpbiB3aGljaAorICogICAgICAgICAgICAgICAgICBjYXNlIHRoaXMgZnVuY3Rpb24gaXMgYSBuby1vcC4gSWYgaXQgaXMgbm90IFxjIE5VTEwsIGl0IG11c3QKKyAqICAgICAgICAgICAgICAgICAgcG9pbnQgdG8gYW4gaW5pdGlhbGl6ZWQgUG9seTEzMDUgY29udGV4dC4KKyAqLwordm9pZCBtYmVkdGxzX3BvbHkxMzA1X2ZyZWUobWJlZHRsc19wb2x5MTMwNV9jb250ZXh0ICpjdHgpOworCisvKioKKyAqIFxicmllZiAgICAgICAgICAgVGhpcyBmdW5jdGlvbiBzZXRzIHRoZSBvbmUtdGltZSBhdXRoZW50aWNhdGlvbiBrZXkuCisgKgorICogXHdhcm5pbmcgICAgICAgICBUaGUga2V5IG11c3QgYmUgdW5pcXVlIGFuZCB1bnByZWRpY3RhYmxlIGZvciBlYWNoCisgKiAgICAgICAgICAgICAgICAgIGludm9jYXRpb24gb2YgUG9seTEzMDUuCisgKgorICogXHBhcmFtIGN0eCAgICAgICBUaGUgUG9seTEzMDUgY29udGV4dCB0byB3aGljaCB0aGUga2V5IHNob3VsZCBiZSBib3VuZC4KKyAqICAgICAgICAgICAgICAgICAgVGhpcyBtdXN0IGJlIGluaXRpYWxpemVkLgorICogXHBhcmFtIGtleSAgICAgICBUaGUgYnVmZmVyIGNvbnRhaW5pbmcgdGhlIFxjIDMyIEJ5dGUgKFxjIDI1NiBCaXQpIGtleS4KKyAqCisgKiBccmV0dXJuICAgICAgICAgIFxjIDAgb24gc3VjY2Vzcy4KKyAqIFxyZXR1cm4gICAgICAgICAgQSBuZWdhdGl2ZSBlcnJvciBjb2RlIG9uIGZhaWx1cmUuCisgKi8KK2ludCBtYmVkdGxzX3BvbHkxMzA1X3N0YXJ0cyhtYmVkdGxzX3BvbHkxMzA1X2NvbnRleHQgKmN0eCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1bnNpZ25lZCBjaGFyIGtleVszMl0pOworCisvKioKKyAqIFxicmllZiAgICAgICAgICAgVGhpcyBmdW5jdGlvbnMgZmVlZHMgYW4gaW5wdXQgYnVmZmVyIGludG8gYW4gb25nb2luZworICogICAgICAgICAgICAgICAgICBQb2x5MTMwNSBjb21wdXRhdGlvbi4KKyAqCisgKiAgICAgICAgICAgICAgICAgIEl0IGlzIGNhbGxlZCBiZXR3ZWVuIFxjIG1iZWR0bHNfY2lwaGVyX3BvbHkxMzA1X3N0YXJ0cygpIGFuZAorICogICAgICAgICAgICAgICAgICBcYyBtYmVkdGxzX2NpcGhlcl9wb2x5MTMwNV9maW5pc2goKS4KKyAqICAgICAgICAgICAgICAgICAgSXQgY2FuIGJlIGNhbGxlZCByZXBlYXRlZGx5IHRvIHByb2Nlc3MgYSBzdHJlYW0gb2YgZGF0YS4KKyAqCisgKiBccGFyYW0gY3R4ICAgICAgIFRoZSBQb2x5MTMwNSBjb250ZXh0IHRvIHVzZSBmb3IgdGhlIFBvbHkxMzA1IG9wZXJhdGlvbi4KKyAqICAgICAgICAgICAgICAgICAgVGhpcyBtdXN0IGJlIGluaXRpYWxpemVkIGFuZCBib3VuZCB0byBhIGtleS4KKyAqIFxwYXJhbSBpbGVuICAgICAgVGhlIGxlbmd0aCBvZiB0aGUgaW5wdXQgZGF0YSBpbiBCeXRlcy4KKyAqICAgICAgICAgICAgICAgICAgQW55IHZhbHVlIGlzIGFjY2VwdGVkLgorICogXHBhcmFtIGlucHV0ICAgICBUaGUgYnVmZmVyIGhvbGRpbmcgdGhlIGlucHV0IGRhdGEuCisgKiAgICAgICAgICAgICAgICAgIFRoaXMgcG9pbnRlciBjYW4gYmUgXGMgTlVMTCBpZiBgaWxlbiA9PSAwYC4KKyAqCisgKiBccmV0dXJuICAgICAgICAgIFxjIDAgb24gc3VjY2Vzcy4KKyAqIFxyZXR1cm4gICAgICAgICAgQSBuZWdhdGl2ZSBlcnJvciBjb2RlIG9uIGZhaWx1cmUuCisgKi8KK2ludCBtYmVkdGxzX3BvbHkxMzA1X3VwZGF0ZShtYmVkdGxzX3BvbHkxMzA1X2NvbnRleHQgKmN0eCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1bnNpZ25lZCBjaGFyICppbnB1dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgaWxlbik7CisKKy8qKgorICogXGJyaWVmICAgICAgICAgICBUaGlzIGZ1bmN0aW9uIGdlbmVyYXRlcyB0aGUgUG9seTEzMDUgTWVzc2FnZQorICogICAgICAgICAgICAgICAgICBBdXRoZW50aWNhdGlvbiBDb2RlIChNQUMpLgorICoKKyAqIFxwYXJhbSBjdHggICAgICAgVGhlIFBvbHkxMzA1IGNvbnRleHQgdG8gdXNlIGZvciB0aGUgUG9seTEzMDUgb3BlcmF0aW9uLgorICogICAgICAgICAgICAgICAgICBUaGlzIG11c3QgYmUgaW5pdGlhbGl6ZWQgYW5kIGJvdW5kIHRvIGEga2V5LgorICogXHBhcmFtIG1hYyAgICAgICBUaGUgYnVmZmVyIHRvIHdoZXJlIHRoZSBNQUMgaXMgd3JpdHRlbi4gVGhpcyBtdXN0CisgKiAgICAgICAgICAgICAgICAgIGJlIGEgd3JpdGFibGUgYnVmZmVyIG9mIGxlbmd0aCBcYyAxNiBCeXRlcy4KKyAqCisgKiBccmV0dXJuICAgICAgICAgIFxjIDAgb24gc3VjY2Vzcy4KKyAqIFxyZXR1cm4gICAgICAgICAgQSBuZWdhdGl2ZSBlcnJvciBjb2RlIG9uIGZhaWx1cmUuCisgKi8KK2ludCBtYmVkdGxzX3BvbHkxMzA1X2ZpbmlzaChtYmVkdGxzX3BvbHkxMzA1X2NvbnRleHQgKmN0eCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBjaGFyIG1hY1sxNl0pOworCisvKioKKyAqIFxicmllZiAgICAgICAgICAgVGhpcyBmdW5jdGlvbiBjYWxjdWxhdGVzIHRoZSBQb2x5MTMwNSBNQUMgb2YgdGhlIGlucHV0CisgKiAgICAgICAgICAgICAgICAgIGJ1ZmZlciB3aXRoIHRoZSBwcm92aWRlZCBrZXkuCisgKgorICogXHdhcm5pbmcgICAgICAgICBUaGUga2V5IG11c3QgYmUgdW5pcXVlIGFuZCB1bnByZWRpY3RhYmxlIGZvciBlYWNoCisgKiAgICAgICAgICAgICAgICAgIGludm9jYXRpb24gb2YgUG9seTEzMDUuCisgKgorICogXHBhcmFtIGtleSAgICAgICBUaGUgYnVmZmVyIGNvbnRhaW5pbmcgdGhlIFxjIDMyIEJ5dGUgKFxjIDI1NiBCaXQpIGtleS4KKyAqIFxwYXJhbSBpbGVuICAgICAgVGhlIGxlbmd0aCBvZiB0aGUgaW5wdXQgZGF0YSBpbiBCeXRlcy4KKyAqICAgICAgICAgICAgICAgICAgQW55IHZhbHVlIGlzIGFjY2VwdGVkLgorICogXHBhcmFtIGlucHV0ICAgICBUaGUgYnVmZmVyIGhvbGRpbmcgdGhlIGlucHV0IGRhdGEuCisgKiAgICAgICAgICAgICAgICAgIFRoaXMgcG9pbnRlciBjYW4gYmUgXGMgTlVMTCBpZiBgaWxlbiA9PSAwYC4KKyAqIFxwYXJhbSBtYWMgICAgICAgVGhlIGJ1ZmZlciB0byB3aGVyZSB0aGUgTUFDIGlzIHdyaXR0ZW4uIFRoaXMgbXVzdCBiZQorICogICAgICAgICAgICAgICAgICBhIHdyaXRhYmxlIGJ1ZmZlciBvZiBsZW5ndGggXGMgMTYgQnl0ZXMuCisgKgorICogXHJldHVybiAgICAgICAgICBcYyAwIG9uIHN1Y2Nlc3MuCisgKiBccmV0dXJuICAgICAgICAgIEEgbmVnYXRpdmUgZXJyb3IgY29kZSBvbiBmYWlsdXJlLgorICovCitpbnQgbWJlZHRsc19wb2x5MTMwNV9tYWMoY29uc3QgdW5zaWduZWQgY2hhciBrZXlbMzJdLAorICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgKmlucHV0LAorICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBpbGVuLAorICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGNoYXIgbWFjWzE2XSk7CisKKyNpZiBkZWZpbmVkKE1CRURUTFNfU0VMRl9URVNUKQorLyoqCisgKiBcYnJpZWYgICAgICAgICAgIFRoZSBQb2x5MTMwNSBjaGVja3VwIHJvdXRpbmUuCisgKgorICogXHJldHVybiAgICAgICAgICBcYyAwIG9uIHN1Y2Nlc3MuCisgKiBccmV0dXJuICAgICAgICAgIFxjIDEgb24gZmFpbHVyZS4KKyAqLworaW50IG1iZWR0bHNfcG9seTEzMDVfc2VsZl90ZXN0KGludCB2ZXJib3NlKTsKKyNlbmRpZiAvKiBNQkVEVExTX1NFTEZfVEVTVCAqLworCisjaWZkZWYgX19jcGx1c3BsdXMKK30KKyNlbmRpZgorCisjZW5kaWYgLyogTUJFRFRMU19QT0xZMTMwNV9IICovCmRpZmYgLS1naXQgYS9pbmNsdWRlL21iZWR0bHMvcHJpdmF0ZV9hY2Nlc3MuaCBiL3RmLXBzYS1jcnlwdG8vZHJpdmVycy9idWlsdGluL2luY2x1ZGUvbWJlZHRscy9wcml2YXRlX2FjY2Vzcy5oCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBpbmNsdWRlL21iZWR0bHMvcHJpdmF0ZV9hY2Nlc3MuaApyZW5hbWUgdG8gdGYtcHNhLWNyeXB0by9kcml2ZXJzL2J1aWx0aW4vaW5jbHVkZS9tYmVkdGxzL3ByaXZhdGVfYWNjZXNzLmgKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbWJlZHRscy9wc2FfdXRpbC5oIGIvdGYtcHNhLWNyeXB0by9kcml2ZXJzL2J1aWx0aW4vaW5jbHVkZS9tYmVkdGxzL3BzYV91dGlsLmgKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIGluY2x1ZGUvbWJlZHRscy9wc2FfdXRpbC5oCnJlbmFtZSB0byB0Zi1wc2EtY3J5cHRvL2RyaXZlcnMvYnVpbHRpbi9pbmNsdWRlL21iZWR0bHMvcHNhX3V0aWwuaApkaWZmIC0tZ2l0IGEvdGYtcHNhLWNyeXB0by9kcml2ZXJzL2J1aWx0aW4vaW5jbHVkZS9tYmVkdGxzL3JpcGVtZDE2MC5oIGIvdGYtcHNhLWNyeXB0by9kcml2ZXJzL2J1aWx0aW4vaW5jbHVkZS9tYmVkdGxzL3JpcGVtZDE2MC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjU3MGFiMmUKLS0tIC9kZXYvbnVsbAorKysgYi90Zi1wc2EtY3J5cHRvL2RyaXZlcnMvYnVpbHRpbi9pbmNsdWRlL21iZWR0bHMvcmlwZW1kMTYwLmgKQEAgLTAsMCArMSwxMjggQEAKKy8qKgorICogXGZpbGUgcmlwZW1kMTYwLmgKKyAqCisgKiBcYnJpZWYgUklQRSBNRC0xNjAgbWVzc2FnZSBkaWdlc3QKKyAqLworLyoKKyAqICBDb3B5cmlnaHQgVGhlIE1iZWQgVExTIENvbnRyaWJ1dG9ycworICogIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wIE9SIEdQTC0yLjAtb3ItbGF0ZXIKKyAqLworI2lmbmRlZiBNQkVEVExTX1JJUEVNRDE2MF9ICisjZGVmaW5lIE1CRURUTFNfUklQRU1EMTYwX0gKKyNpbmNsdWRlICJtYmVkdGxzL3ByaXZhdGVfYWNjZXNzLmgiCisKKyNpbmNsdWRlICJtYmVkdGxzL2J1aWxkX2luZm8uaCIKKworI2luY2x1ZGUgPHN0ZGRlZi5oPgorI2luY2x1ZGUgPHN0ZGludC5oPgorCisjaWZkZWYgX19jcGx1c3BsdXMKK2V4dGVybiAiQyIgeworI2VuZGlmCisKKy8qKgorICogXGJyaWVmICAgICAgICAgIFJJUEVNRC0xNjAgY29udGV4dCBzdHJ1Y3R1cmUKKyAqLwordHlwZWRlZiBzdHJ1Y3QgbWJlZHRsc19yaXBlbWQxNjBfY29udGV4dCB7CisgICAgdWludDMyX3QgTUJFRFRMU19QUklWQVRFKHRvdGFsKVsyXTsgICAgICAgICAgLyohPCBudW1iZXIgb2YgYnl0ZXMgcHJvY2Vzc2VkICAqLworICAgIHVpbnQzMl90IE1CRURUTFNfUFJJVkFURShzdGF0ZSlbNV07ICAgICAgICAgIC8qITwgaW50ZXJtZWRpYXRlIGRpZ2VzdCBzdGF0ZSAgKi8KKyAgICB1bnNpZ25lZCBjaGFyIE1CRURUTFNfUFJJVkFURShidWZmZXIpWzY0XTsgICAvKiE8IGRhdGEgYmxvY2sgYmVpbmcgcHJvY2Vzc2VkICovCit9CittYmVkdGxzX3JpcGVtZDE2MF9jb250ZXh0OworCisvKioKKyAqIFxicmllZiAgICAgICAgICBJbml0aWFsaXplIFJJUEVNRC0xNjAgY29udGV4dAorICoKKyAqIFxwYXJhbSBjdHggICAgICBSSVBFTUQtMTYwIGNvbnRleHQgdG8gYmUgaW5pdGlhbGl6ZWQKKyAqLwordm9pZCBtYmVkdGxzX3JpcGVtZDE2MF9pbml0KG1iZWR0bHNfcmlwZW1kMTYwX2NvbnRleHQgKmN0eCk7CisKKy8qKgorICogXGJyaWVmICAgICAgICAgIENsZWFyIFJJUEVNRC0xNjAgY29udGV4dAorICoKKyAqIFxwYXJhbSBjdHggICAgICBSSVBFTUQtMTYwIGNvbnRleHQgdG8gYmUgY2xlYXJlZAorICovCit2b2lkIG1iZWR0bHNfcmlwZW1kMTYwX2ZyZWUobWJlZHRsc19yaXBlbWQxNjBfY29udGV4dCAqY3R4KTsKKworLyoqCisgKiBcYnJpZWYgICAgICAgICAgQ2xvbmUgKHRoZSBzdGF0ZSBvZikgYSBSSVBFTUQtMTYwIGNvbnRleHQKKyAqCisgKiBccGFyYW0gZHN0ICAgICAgVGhlIGRlc3RpbmF0aW9uIGNvbnRleHQKKyAqIFxwYXJhbSBzcmMgICAgICBUaGUgY29udGV4dCB0byBiZSBjbG9uZWQKKyAqLwordm9pZCBtYmVkdGxzX3JpcGVtZDE2MF9jbG9uZShtYmVkdGxzX3JpcGVtZDE2MF9jb250ZXh0ICpkc3QsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IG1iZWR0bHNfcmlwZW1kMTYwX2NvbnRleHQgKnNyYyk7CisKKy8qKgorICogXGJyaWVmICAgICAgICAgIFJJUEVNRC0xNjAgY29udGV4dCBzZXR1cAorICoKKyAqIFxwYXJhbSBjdHggICAgICBjb250ZXh0IHRvIGJlIGluaXRpYWxpemVkCisgKgorICogXHJldHVybiAgICAgICAgIDAgaWYgc3VjY2Vzc2Z1bAorICovCitpbnQgbWJlZHRsc19yaXBlbWQxNjBfc3RhcnRzKG1iZWR0bHNfcmlwZW1kMTYwX2NvbnRleHQgKmN0eCk7CisKKy8qKgorICogXGJyaWVmICAgICAgICAgIFJJUEVNRC0xNjAgcHJvY2VzcyBidWZmZXIKKyAqCisgKiBccGFyYW0gY3R4ICAgICAgUklQRU1ELTE2MCBjb250ZXh0CisgKiBccGFyYW0gaW5wdXQgICAgYnVmZmVyIGhvbGRpbmcgdGhlIGRhdGEKKyAqIFxwYXJhbSBpbGVuICAgICBsZW5ndGggb2YgdGhlIGlucHV0IGRhdGEKKyAqCisgKiBccmV0dXJuICAgICAgICAgMCBpZiBzdWNjZXNzZnVsCisgKi8KK2ludCBtYmVkdGxzX3JpcGVtZDE2MF91cGRhdGUobWJlZHRsc19yaXBlbWQxNjBfY29udGV4dCAqY3R4LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1bnNpZ25lZCBjaGFyICppbnB1dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IGlsZW4pOworCisvKioKKyAqIFxicmllZiAgICAgICAgICBSSVBFTUQtMTYwIGZpbmFsIGRpZ2VzdAorICoKKyAqIFxwYXJhbSBjdHggICAgICBSSVBFTUQtMTYwIGNvbnRleHQKKyAqIFxwYXJhbSBvdXRwdXQgICBSSVBFTUQtMTYwIGNoZWNrc3VtIHJlc3VsdAorICoKKyAqIFxyZXR1cm4gICAgICAgICAwIGlmIHN1Y2Nlc3NmdWwKKyAqLworaW50IG1iZWR0bHNfcmlwZW1kMTYwX2ZpbmlzaChtYmVkdGxzX3JpcGVtZDE2MF9jb250ZXh0ICpjdHgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGNoYXIgb3V0cHV0WzIwXSk7CisKKy8qKgorICogXGJyaWVmICAgICAgICAgIFJJUEVNRC0xNjAgcHJvY2VzcyBkYXRhIGJsb2NrIChpbnRlcm5hbCB1c2Ugb25seSkKKyAqCisgKiBccGFyYW0gY3R4ICAgICAgUklQRU1ELTE2MCBjb250ZXh0CisgKiBccGFyYW0gZGF0YSAgICAgYnVmZmVyIGhvbGRpbmcgb25lIGJsb2NrIG9mIGRhdGEKKyAqCisgKiBccmV0dXJuICAgICAgICAgMCBpZiBzdWNjZXNzZnVsCisgKi8KK2ludCBtYmVkdGxzX2ludGVybmFsX3JpcGVtZDE2MF9wcm9jZXNzKG1iZWR0bHNfcmlwZW1kMTYwX2NvbnRleHQgKmN0eCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgZGF0YVs2NF0pOworCisvKioKKyAqIFxicmllZiAgICAgICAgICBPdXRwdXQgPSBSSVBFTUQtMTYwKCBpbnB1dCBidWZmZXIgKQorICoKKyAqIFxwYXJhbSBpbnB1dCAgICBidWZmZXIgaG9sZGluZyB0aGUgZGF0YQorICogXHBhcmFtIGlsZW4gICAgIGxlbmd0aCBvZiB0aGUgaW5wdXQgZGF0YQorICogXHBhcmFtIG91dHB1dCAgIFJJUEVNRC0xNjAgY2hlY2tzdW0gcmVzdWx0CisgKgorICogXHJldHVybiAgICAgICAgIDAgaWYgc3VjY2Vzc2Z1bAorICovCitpbnQgbWJlZHRsc19yaXBlbWQxNjAoY29uc3QgdW5zaWduZWQgY2hhciAqaW5wdXQsCisgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IGlsZW4sCisgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgY2hhciBvdXRwdXRbMjBdKTsKKworI2lmIGRlZmluZWQoTUJFRFRMU19TRUxGX1RFU1QpCisKKy8qKgorICogXGJyaWVmICAgICAgICAgIENoZWNrdXAgcm91dGluZQorICoKKyAqIFxyZXR1cm4gICAgICAgICAwIGlmIHN1Y2Nlc3NmdWwsIG9yIDEgaWYgdGhlIHRlc3QgZmFpbGVkCisgKi8KK2ludCBtYmVkdGxzX3JpcGVtZDE2MF9zZWxmX3Rlc3QoaW50IHZlcmJvc2UpOworCisjZW5kaWYgLyogTUJFRFRMU19TRUxGX1RFU1QgKi8KKworI2lmZGVmIF9fY3BsdXNwbHVzCit9CisjZW5kaWYKKworI2VuZGlmIC8qIG1iZWR0bHNfcmlwZW1kMTYwLmggKi8KZGlmZiAtLWdpdCBhL3RmLXBzYS1jcnlwdG8vZHJpdmVycy9idWlsdGluL2luY2x1ZGUvbWJlZHRscy9yc2EuaCBiL3RmLXBzYS1jcnlwdG8vZHJpdmVycy9idWlsdGluL2luY2x1ZGUvbWJlZHRscy9yc2EuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jYzgzOWYyCi0tLSAvZGV2L251bGwKKysrIGIvdGYtcHNhLWNyeXB0by9kcml2ZXJzL2J1aWx0aW4vaW5jbHVkZS9tYmVkdGxzL3JzYS5oCkBAIC0wLDAgKzEsMTE1NiBAQAorLyoqCisgKiBcZmlsZSByc2EuaAorICoKKyAqIFxicmllZiBUaGlzIGZpbGUgcHJvdmlkZXMgYW4gQVBJIGZvciB0aGUgUlNBIHB1YmxpYy1rZXkgY3J5cHRvc3lzdGVtLgorICoKKyAqIFRoZSBSU0EgcHVibGljLWtleSBjcnlwdG9zeXN0ZW0gaXMgZGVmaW5lZCBpbiA8ZW0+UHVibGljLUtleQorICogQ3J5cHRvZ3JhcGh5IFN0YW5kYXJkcyAoUEtDUykgIzEgdjEuNTogUlNBIEVuY3J5cHRpb248L2VtPgorICogYW5kIDxlbT5QdWJsaWMtS2V5IENyeXB0b2dyYXBoeSBTdGFuZGFyZHMgKFBLQ1MpICMxIHYyLjE6CisgKiBSU0EgQ3J5cHRvZ3JhcGh5IFNwZWNpZmljYXRpb25zPC9lbT4uCisgKgorICovCisvKgorICogIENvcHlyaWdodCBUaGUgTWJlZCBUTFMgQ29udHJpYnV0b3JzCisgKiAgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjAgT1IgR1BMLTIuMC1vci1sYXRlcgorICovCisjaWZuZGVmIE1CRURUTFNfUlNBX0gKKyNkZWZpbmUgTUJFRFRMU19SU0FfSAorI2luY2x1ZGUgIm1iZWR0bHMvcHJpdmF0ZV9hY2Nlc3MuaCIKKworI2luY2x1ZGUgIm1iZWR0bHMvYnVpbGRfaW5mby5oIgorCisjaW5jbHVkZSAibWJlZHRscy9iaWdudW0uaCIKKyNpbmNsdWRlICJtYmVkdGxzL21kLmgiCisKKyNpZiBkZWZpbmVkKE1CRURUTFNfVEhSRUFESU5HX0MpCisjaW5jbHVkZSAibWJlZHRscy90aHJlYWRpbmcuaCIKKyNlbmRpZgorCisvKgorICogUlNBIEVycm9yIGNvZGVzCisgKi8KKy8qKiBCYWQgaW5wdXQgcGFyYW1ldGVycyB0byBmdW5jdGlvbi4gKi8KKyNkZWZpbmUgTUJFRFRMU19FUlJfUlNBX0JBRF9JTlBVVF9EQVRBICAgICAgICAgICAgICAgICAgICAtMHg0MDgwCisvKiogSW5wdXQgZGF0YSBjb250YWlucyBpbnZhbGlkIHBhZGRpbmcgYW5kIGlzIHJlamVjdGVkLiAqLworI2RlZmluZSBNQkVEVExTX0VSUl9SU0FfSU5WQUxJRF9QQURESU5HICAgICAgICAgICAgICAgICAgIC0weDQxMDAKKy8qKiBTb21ldGhpbmcgZmFpbGVkIGR1cmluZyBnZW5lcmF0aW9uIG9mIGEga2V5LiAqLworI2RlZmluZSBNQkVEVExTX0VSUl9SU0FfS0VZX0dFTl9GQUlMRUQgICAgICAgICAgICAgICAgICAgIC0weDQxODAKKy8qKiBLZXkgZmFpbGVkIHRvIHBhc3MgdGhlIHZhbGlkaXR5IGNoZWNrIG9mIHRoZSBsaWJyYXJ5LiAqLworI2RlZmluZSBNQkVEVExTX0VSUl9SU0FfS0VZX0NIRUNLX0ZBSUxFRCAgICAgICAgICAgICAgICAgIC0weDQyMDAKKy8qKiBUaGUgcHVibGljIGtleSBvcGVyYXRpb24gZmFpbGVkLiAqLworI2RlZmluZSBNQkVEVExTX0VSUl9SU0FfUFVCTElDX0ZBSUxFRCAgICAgICAgICAgICAgICAgICAgIC0weDQyODAKKy8qKiBUaGUgcHJpdmF0ZSBrZXkgb3BlcmF0aW9uIGZhaWxlZC4gKi8KKyNkZWZpbmUgTUJFRFRMU19FUlJfUlNBX1BSSVZBVEVfRkFJTEVEICAgICAgICAgICAgICAgICAgICAtMHg0MzAwCisvKiogVGhlIFBLQ1MjMSB2ZXJpZmljYXRpb24gZmFpbGVkLiAqLworI2RlZmluZSBNQkVEVExTX0VSUl9SU0FfVkVSSUZZX0ZBSUxFRCAgICAgICAgICAgICAgICAgICAgIC0weDQzODAKKy8qKiBUaGUgb3V0cHV0IGJ1ZmZlciBmb3IgZGVjcnlwdGlvbiBpcyBub3QgbGFyZ2UgZW5vdWdoLiAqLworI2RlZmluZSBNQkVEVExTX0VSUl9SU0FfT1VUUFVUX1RPT19MQVJHRSAgICAgICAgICAgICAgICAgIC0weDQ0MDAKKy8qKiBUaGUgcmFuZG9tIGdlbmVyYXRvciBmYWlsZWQgdG8gZ2VuZXJhdGUgbm9uLXplcm9zLiAqLworI2RlZmluZSBNQkVEVExTX0VSUl9SU0FfUk5HX0ZBSUxFRCAgICAgICAgICAgICAgICAgICAgICAgIC0weDQ0ODAKKworLyoKKyAqIFJTQSBjb25zdGFudHMKKyAqLworCisjZGVmaW5lIE1CRURUTFNfUlNBX1BLQ1NfVjE1ICAgIDAgLyoqPCBVc2UgUEtDUyMxIHYxLjUgZW5jb2RpbmcuICovCisjZGVmaW5lIE1CRURUTFNfUlNBX1BLQ1NfVjIxICAgIDEgLyoqPCBVc2UgUEtDUyMxIHYyLjEgZW5jb2RpbmcuICovCisKKyNkZWZpbmUgTUJFRFRMU19SU0FfU0lHTiAgICAgICAgMSAvKio8IElkZW50aWZpZXIgZm9yIFJTQSBzaWduYXR1cmUgb3BlcmF0aW9ucy4gKi8KKyNkZWZpbmUgTUJFRFRMU19SU0FfQ1JZUFQgICAgICAgMiAvKio8IElkZW50aWZpZXIgZm9yIFJTQSBlbmNyeXB0aW9uIGFuZCBkZWNyeXB0aW9uIG9wZXJhdGlvbnMuICovCisKKyNkZWZpbmUgTUJFRFRMU19SU0FfU0FMVF9MRU5fQU5ZICAgIC0xCisKKy8qCisgKiBUaGUgYWJvdmUgY29uc3RhbnRzIG1heSBiZSB1c2VkIGV2ZW4gaWYgdGhlIFJTQSBtb2R1bGUgaXMgY29tcGlsZSBvdXQsCisgKiBlZyBmb3IgYWx0ZXJuYXRpdmUgKFBLQ1MjMTEpIFJTQSBpbXBsZW1lbnRhdGlvbnMgaW4gdGhlIFBLIGxheWVycy4KKyAqLworCisjaWZkZWYgX19jcGx1c3BsdXMKK2V4dGVybiAiQyIgeworI2VuZGlmCisKKyNpZiAhZGVmaW5lZChNQkVEVExTX1JTQV9HRU5fS0VZX01JTl9CSVRTKQorI2RlZmluZSBNQkVEVExTX1JTQV9HRU5fS0VZX01JTl9CSVRTIDEwMjQKKyNlbGlmIE1CRURUTFNfUlNBX0dFTl9LRVlfTUlOX0JJVFMgPCAxMjgKKyNlcnJvciAiTUJFRFRMU19SU0FfR0VOX0tFWV9NSU5fQklUUyBtdXN0IGJlIGF0IGxlYXN0IDEyOCBiaXRzIgorI2VuZGlmCisKKy8qKgorICogXGJyaWVmICAgVGhlIFJTQSBjb250ZXh0IHN0cnVjdHVyZS4KKyAqLwordHlwZWRlZiBzdHJ1Y3QgbWJlZHRsc19yc2FfY29udGV4dCB7CisgICAgaW50IE1CRURUTFNfUFJJVkFURSh2ZXIpOyAgICAgICAgICAgICAgICAgICAgLyohPCAgUmVzZXJ2ZWQgZm9yIGludGVybmFsIHB1cnBvc2VzLgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqICAgIERvIG5vdCBzZXQgdGhpcyBmaWVsZCBpbiBhcHBsaWNhdGlvbgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqICAgIGNvZGUuIEl0cyBtZWFuaW5nIG1pZ2h0IGNoYW5nZSB3aXRob3V0CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICogICAgbm90aWNlLiAqLworICAgIHNpemVfdCBNQkVEVExTX1BSSVZBVEUobGVuKTsgICAgICAgICAgICAgICAgIC8qITwgIFRoZSBzaXplIG9mIFxwIE4gaW4gQnl0ZXMuICovCisKKyAgICBtYmVkdGxzX21waSBNQkVEVExTX1BSSVZBVEUoTik7ICAgICAgICAgICAgICAvKiE8ICBUaGUgcHVibGljIG1vZHVsdXMuICovCisgICAgbWJlZHRsc19tcGkgTUJFRFRMU19QUklWQVRFKEUpOyAgICAgICAgICAgICAgLyohPCAgVGhlIHB1YmxpYyBleHBvbmVudC4gKi8KKworICAgIG1iZWR0bHNfbXBpIE1CRURUTFNfUFJJVkFURShEKTsgICAgICAgICAgICAgIC8qITwgIFRoZSBwcml2YXRlIGV4cG9uZW50LiAqLworICAgIG1iZWR0bHNfbXBpIE1CRURUTFNfUFJJVkFURShQKTsgICAgICAgICAgICAgIC8qITwgIFRoZSBmaXJzdCBwcmltZSBmYWN0b3IuICovCisgICAgbWJlZHRsc19tcGkgTUJFRFRMU19QUklWQVRFKFEpOyAgICAgICAgICAgICAgLyohPCAgVGhlIHNlY29uZCBwcmltZSBmYWN0b3IuICovCisKKyAgICBtYmVkdGxzX21waSBNQkVEVExTX1BSSVZBVEUoRFApOyAgICAgICAgICAgICAvKiE8ICA8Y29kZT5EICUgKFAgLSAxKTwvY29kZT4uICovCisgICAgbWJlZHRsc19tcGkgTUJFRFRMU19QUklWQVRFKERRKTsgICAgICAgICAgICAgLyohPCAgPGNvZGU+RCAlIChRIC0gMSk8L2NvZGU+LiAqLworICAgIG1iZWR0bHNfbXBpIE1CRURUTFNfUFJJVkFURShRUCk7ICAgICAgICAgICAgIC8qITwgIDxjb2RlPjEgLyAoUSAlIFApPC9jb2RlPi4gKi8KKworICAgIG1iZWR0bHNfbXBpIE1CRURUTFNfUFJJVkFURShSTik7ICAgICAgICAgICAgIC8qITwgIGNhY2hlZCA8Y29kZT5SXjIgbW9kIE48L2NvZGU+LiAqLworCisgICAgbWJlZHRsc19tcGkgTUJFRFRMU19QUklWQVRFKFJQKTsgICAgICAgICAgICAgLyohPCAgY2FjaGVkIDxjb2RlPlJeMiBtb2QgUDwvY29kZT4uICovCisgICAgbWJlZHRsc19tcGkgTUJFRFRMU19QUklWQVRFKFJRKTsgICAgICAgICAgICAgLyohPCAgY2FjaGVkIDxjb2RlPlJeMiBtb2QgUTwvY29kZT4uICovCisKKyAgICBtYmVkdGxzX21waSBNQkVEVExTX1BSSVZBVEUoVmkpOyAgICAgICAgICAgICAvKiE8ICBUaGUgY2FjaGVkIGJsaW5kaW5nIHZhbHVlLiAqLworICAgIG1iZWR0bHNfbXBpIE1CRURUTFNfUFJJVkFURShWZik7ICAgICAgICAgICAgIC8qITwgIFRoZSBjYWNoZWQgdW4tYmxpbmRpbmcgdmFsdWUuICovCisKKyAgICBpbnQgTUJFRFRMU19QUklWQVRFKHBhZGRpbmcpOyAgICAgICAgICAgICAgICAvKiE8IFNlbGVjdHMgcGFkZGluZyBtb2RlOgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjTUJFRFRMU19SU0FfUEtDU19WMTUgZm9yIDEuNSBwYWRkaW5nIGFuZAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjTUJFRFRMU19SU0FfUEtDU19WMjEgZm9yIE9BRVAgb3IgUFNTLiAqLworICAgIGludCBNQkVEVExTX1BSSVZBVEUoaGFzaF9pZCk7ICAgICAgICAgICAgICAgIC8qITwgSGFzaCBpZGVudGlmaWVyIG9mIG1iZWR0bHNfbWRfdHlwZV90IHR5cGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXMgc3BlY2lmaWVkIGluIG1kLmggZm9yIHVzZSBpbiB0aGUgTUdGCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFzayBnZW5lcmF0aW5nIGZ1bmN0aW9uIHVzZWQgaW4gdGhlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRU1FLU9BRVAgYW5kIEVNU0EtUFNTIGVuY29kaW5ncy4gKi8KKyNpZiBkZWZpbmVkKE1CRURUTFNfVEhSRUFESU5HX0MpCisgICAgLyogSW52YXJpYW50OiB0aGUgbXV0ZXggaXMgaW5pdGlhbGl6ZWQgaWZmIHZlciAhPSAwLiAqLworICAgIG1iZWR0bHNfdGhyZWFkaW5nX211dGV4X3QgTUJFRFRMU19QUklWQVRFKG11dGV4KTsgICAgLyohPCAgVGhyZWFkLXNhZmV0eSBtdXRleC4gKi8KKyNlbmRpZgorfQorbWJlZHRsc19yc2FfY29udGV4dDsKKworLyoqCisgKiBcYnJpZWYgICAgICAgICAgVGhpcyBmdW5jdGlvbiBpbml0aWFsaXplcyBhbiBSU0EgY29udGV4dC4KKyAqCisgKiBcbm90ZSAgICAgICAgICAgVGhpcyBmdW5jdGlvbiBpbml0aWFsaXplcyB0aGUgcGFkZGluZyBhbmQgdGhlIGhhc2gKKyAqICAgICAgICAgICAgICAgICBpZGVudGlmaWVyIHRvIHJlc3BlY3RpdmVseSAjTUJFRFRMU19SU0FfUEtDU19WMTUgYW5kCisgKiAgICAgICAgICAgICAgICAgI01CRURUTFNfTURfTk9ORS4gU2VlIG1iZWR0bHNfcnNhX3NldF9wYWRkaW5nKCkgZm9yIG1vcmUKKyAqICAgICAgICAgICAgICAgICBpbmZvcm1hdGlvbiBhYm91dCB0aG9zZSBwYXJhbWV0ZXJzLgorICoKKyAqIFxwYXJhbSBjdHggICAgICBUaGUgUlNBIGNvbnRleHQgdG8gaW5pdGlhbGl6ZS4gVGhpcyBtdXN0IG5vdCBiZSBcYyBOVUxMLgorICovCit2b2lkIG1iZWR0bHNfcnNhX2luaXQobWJlZHRsc19yc2FfY29udGV4dCAqY3R4KTsKKworLyoqCisgKiBcYnJpZWYgICAgICAgICAgVGhpcyBmdW5jdGlvbiBzZXRzIHBhZGRpbmcgZm9yIGFuIGFscmVhZHkgaW5pdGlhbGl6ZWQgUlNBCisgKiAgICAgICAgICAgICAgICAgY29udGV4dC4KKyAqCisgKiBcbm90ZSAgICAgICAgICAgU2V0IHBhZGRpbmcgdG8gI01CRURUTFNfUlNBX1BLQ1NfVjIxIGZvciB0aGUgUlNBRVMtT0FFUAorICogICAgICAgICAgICAgICAgIGVuY3J5cHRpb24gc2NoZW1lIGFuZCB0aGUgUlNBU1NBLVBTUyBzaWduYXR1cmUgc2NoZW1lLgorICoKKyAqIFxub3RlICAgICAgICAgICBUaGUgXHAgaGFzaF9pZCBwYXJhbWV0ZXIgaXMgaWdub3JlZCB3aGVuIHVzaW5nCisgKiAgICAgICAgICAgICAgICAgI01CRURUTFNfUlNBX1BLQ1NfVjE1IHBhZGRpbmcuCisgKgorICogXG5vdGUgICAgICAgICAgIFRoZSBjaG9pY2Ugb2YgcGFkZGluZyBtb2RlIGlzIHN0cmljdGx5IGVuZm9yY2VkIGZvciBwcml2YXRlCisgKiAgICAgICAgICAgICAgICAga2V5IG9wZXJhdGlvbnMsIHNpbmNlIHRoZXJlIG1pZ2h0IGJlIHNlY3VyaXR5IGNvbmNlcm5zIGluCisgKiAgICAgICAgICAgICAgICAgbWl4aW5nIHBhZGRpbmcgbW9kZXMuIEZvciBwdWJsaWMga2V5IG9wZXJhdGlvbnMgaXQgaXMKKyAqICAgICAgICAgICAgICAgICBhIGRlZmF1bHQgdmFsdWUsIHdoaWNoIGNhbiBiZSBvdmVycmlkZGVuIGJ5IGNhbGxpbmcgc3BlY2lmaWMKKyAqICAgICAgICAgICAgICAgICBcYyBtYmVkdGxzX3JzYV9yc2Flc194eHggb3IgXGMgbWJlZHRsc19yc2FfcnNhc3NhX3h4eAorICogICAgICAgICAgICAgICAgIGZ1bmN0aW9ucy4KKyAqCisgKiBcbm90ZSAgICAgICAgICAgVGhlIGhhc2ggc2VsZWN0ZWQgaW4gXHAgaGFzaF9pZCBpcyBhbHdheXMgdXNlZCBmb3IgT0VBUAorICogICAgICAgICAgICAgICAgIGVuY3J5cHRpb24uIEZvciBQU1Mgc2lnbmF0dXJlcywgaXQgaXMgYWx3YXlzIHVzZWQgZm9yCisgKiAgICAgICAgICAgICAgICAgbWFraW5nIHNpZ25hdHVyZXMsIGJ1dCBjYW4gYmUgb3ZlcnJpZGRlbiBmb3IgdmVyaWZ5aW5nIHRoZW0uCisgKiAgICAgICAgICAgICAgICAgSWYgc2V0IHRvICNNQkVEVExTX01EX05PTkUsIGl0IGlzIGFsd2F5cyBvdmVycmlkZGVuLgorICoKKyAqIFxwYXJhbSBjdHggICAgICBUaGUgaW5pdGlhbGl6ZWQgUlNBIGNvbnRleHQgdG8gYmUgY29uZmlndXJlZC4KKyAqIFxwYXJhbSBwYWRkaW5nICBUaGUgcGFkZGluZyBtb2RlIHRvIHVzZS4gVGhpcyBtdXN0IGJlIGVpdGhlcgorICogICAgICAgICAgICAgICAgICNNQkVEVExTX1JTQV9QS0NTX1YxNSBvciAjTUJFRFRMU19SU0FfUEtDU19WMjEuCisgKiBccGFyYW0gaGFzaF9pZCAgVGhlIGhhc2ggaWRlbnRpZmllciBmb3IgUFNTIG9yIE9BRVAsIGlmIFxwIHBhZGRpbmcgaXMKKyAqICAgICAgICAgICAgICAgICAjTUJFRFRMU19SU0FfUEtDU19WMjEuICNNQkVEVExTX01EX05PTkUgaXMgYWNjZXB0ZWQgYnkgdGhpcworICogICAgICAgICAgICAgICAgIGZ1bmN0aW9uIGJ1dCBtYXkgYmUgbm90IHN1aXRhYmxlIGZvciBzb21lIG9wZXJhdGlvbnMuCisgKiAgICAgICAgICAgICAgICAgSWdub3JlZCBpZiBccCBwYWRkaW5nIGlzICNNQkVEVExTX1JTQV9QS0NTX1YxNS4KKyAqCisgKiBccmV0dXJuICAgICAgICAgXGMgMCBvbiBzdWNjZXNzLgorICogXHJldHVybiAgICAgICAgICNNQkVEVExTX0VSUl9SU0FfSU5WQUxJRF9QQURESU5HIGZhaWx1cmU6CisgKiAgICAgICAgICAgICAgICAgXHAgcGFkZGluZyBvciBccCBoYXNoX2lkIGlzIGludmFsaWQuCisgKi8KK2ludCBtYmVkdGxzX3JzYV9zZXRfcGFkZGluZyhtYmVkdGxzX3JzYV9jb250ZXh0ICpjdHgsIGludCBwYWRkaW5nLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1iZWR0bHNfbWRfdHlwZV90IGhhc2hfaWQpOworCisvKioKKyAqIFxicmllZiAgICAgICAgICBUaGlzIGZ1bmN0aW9uIHJldHJpZXZlcyBwYWRkaW5nIG1vZGUgb2YgaW5pdGlhbGl6ZWQKKyAqICAgICAgICAgICAgICAgICBSU0EgY29udGV4dC4KKyAqCisgKiBccGFyYW0gY3R4ICAgICAgVGhlIGluaXRpYWxpemVkIFJTQSBjb250ZXh0LgorICoKKyAqIFxyZXR1cm4gICAgICAgICBSU0EgcGFkZGluZyBtb2RlLgorICoKKyAqLworaW50IG1iZWR0bHNfcnNhX2dldF9wYWRkaW5nX21vZGUoY29uc3QgbWJlZHRsc19yc2FfY29udGV4dCAqY3R4KTsKKworLyoqCisgKiBcYnJpZWYgICAgICAgICAgVGhpcyBmdW5jdGlvbiByZXRyaWV2ZXMgaGFzaCBpZGVudGlmaWVyIG9mIG1iZWR0bHNfbWRfdHlwZV90CisgKiAgICAgICAgICAgICAgICAgdHlwZS4KKyAqCisgKiBccGFyYW0gY3R4ICAgICAgVGhlIGluaXRpYWxpemVkIFJTQSBjb250ZXh0LgorICoKKyAqIFxyZXR1cm4gICAgICAgICBIYXNoIGlkZW50aWZpZXIgb2YgbWJlZHRsc19tZF90eXBlX3QgdHlwZS4KKyAqCisgKi8KK2ludCBtYmVkdGxzX3JzYV9nZXRfbWRfYWxnKGNvbnN0IG1iZWR0bHNfcnNhX2NvbnRleHQgKmN0eCk7CisKKy8qKgorICogXGJyaWVmICAgICAgICAgIFRoaXMgZnVuY3Rpb24gaW1wb3J0cyBhIHNldCBvZiBjb3JlIHBhcmFtZXRlcnMgaW50byBhbgorICogICAgICAgICAgICAgICAgIFJTQSBjb250ZXh0LgorICoKKyAqIFxub3RlICAgICAgICAgICBUaGlzIGZ1bmN0aW9uIGNhbiBiZSBjYWxsZWQgbXVsdGlwbGUgdGltZXMgZm9yIHN1Y2Nlc3NpdmUKKyAqICAgICAgICAgICAgICAgICBpbXBvcnRzLCBpZiB0aGUgcGFyYW1ldGVycyBhcmUgbm90IHNpbXVsdGFuZW91c2x5IHByZXNlbnQuCisgKgorICogICAgICAgICAgICAgICAgIEFueSBzZXF1ZW5jZSBvZiBjYWxscyB0byB0aGlzIGZ1bmN0aW9uIHNob3VsZCBiZSBmb2xsb3dlZAorICogICAgICAgICAgICAgICAgIGJ5IGEgY2FsbCB0byBtYmVkdGxzX3JzYV9jb21wbGV0ZSgpLCB3aGljaCBjaGVja3MgYW5kCisgKiAgICAgICAgICAgICAgICAgY29tcGxldGVzIHRoZSBwcm92aWRlZCBpbmZvcm1hdGlvbiB0byBhIHJlYWR5LWZvci11c2UKKyAqICAgICAgICAgICAgICAgICBwdWJsaWMgb3IgcHJpdmF0ZSBSU0Ega2V5LgorICoKKyAqIFxub3RlICAgICAgICAgICBTZWUgbWJlZHRsc19yc2FfY29tcGxldGUoKSBmb3IgbW9yZSBpbmZvcm1hdGlvbiBvbiB3aGljaAorICogICAgICAgICAgICAgICAgIHBhcmFtZXRlcnMgYXJlIG5lY2Vzc2FyeSB0byBzZXQgdXAgYSBwcml2YXRlIG9yIHB1YmxpYworICogICAgICAgICAgICAgICAgIFJTQSBrZXkuCisgKgorICogXG5vdGUgICAgICAgICAgIFRoZSBpbXBvcnRlZCBwYXJhbWV0ZXJzIGFyZSBjb3BpZWQgYW5kIG5lZWQgbm90IGJlIHByZXNlcnZlZAorICogICAgICAgICAgICAgICAgIGZvciB0aGUgbGlmZXRpbWUgb2YgdGhlIFJTQSBjb250ZXh0IGJlaW5nIHNldCB1cC4KKyAqCisgKiBccGFyYW0gY3R4ICAgICAgVGhlIGluaXRpYWxpemVkIFJTQSBjb250ZXh0IHRvIHN0b3JlIHRoZSBwYXJhbWV0ZXJzIGluLgorICogXHBhcmFtIE4gICAgICAgIFRoZSBSU0EgbW9kdWx1cy4gVGhpcyBtYXkgYmUgXGMgTlVMTC4KKyAqIFxwYXJhbSBQICAgICAgICBUaGUgZmlyc3QgcHJpbWUgZmFjdG9yIG9mIFxwIE4uIFRoaXMgbWF5IGJlIFxjIE5VTEwuCisgKiBccGFyYW0gUSAgICAgICAgVGhlIHNlY29uZCBwcmltZSBmYWN0b3Igb2YgXHAgTi4gVGhpcyBtYXkgYmUgXGMgTlVMTC4KKyAqIFxwYXJhbSBEICAgICAgICBUaGUgcHJpdmF0ZSBleHBvbmVudC4gVGhpcyBtYXkgYmUgXGMgTlVMTC4KKyAqIFxwYXJhbSBFICAgICAgICBUaGUgcHVibGljIGV4cG9uZW50LiBUaGlzIG1heSBiZSBcYyBOVUxMLgorICoKKyAqIFxyZXR1cm4gICAgICAgICBcYyAwIG9uIHN1Y2Nlc3MuCisgKiBccmV0dXJuICAgICAgICAgQSBub24temVybyBlcnJvciBjb2RlIG9uIGZhaWx1cmUuCisgKi8KK2ludCBtYmVkdGxzX3JzYV9pbXBvcnQobWJlZHRsc19yc2FfY29udGV4dCAqY3R4LAorICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBtYmVkdGxzX21waSAqTiwKKyAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbWJlZHRsc19tcGkgKlAsIGNvbnN0IG1iZWR0bHNfbXBpICpRLAorICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBtYmVkdGxzX21waSAqRCwgY29uc3QgbWJlZHRsc19tcGkgKkUpOworCisvKioKKyAqIFxicmllZiAgICAgICAgICBUaGlzIGZ1bmN0aW9uIGltcG9ydHMgY29yZSBSU0EgcGFyYW1ldGVycywgaW4gcmF3IGJpZy1lbmRpYW4KKyAqICAgICAgICAgICAgICAgICBiaW5hcnkgZm9ybWF0LCBpbnRvIGFuIFJTQSBjb250ZXh0LgorICoKKyAqIFxub3RlICAgICAgICAgICBUaGlzIGZ1bmN0aW9uIGNhbiBiZSBjYWxsZWQgbXVsdGlwbGUgdGltZXMgZm9yIHN1Y2Nlc3NpdmUKKyAqICAgICAgICAgICAgICAgICBpbXBvcnRzLCBpZiB0aGUgcGFyYW1ldGVycyBhcmUgbm90IHNpbXVsdGFuZW91c2x5IHByZXNlbnQuCisgKgorICogICAgICAgICAgICAgICAgIEFueSBzZXF1ZW5jZSBvZiBjYWxscyB0byB0aGlzIGZ1bmN0aW9uIHNob3VsZCBiZSBmb2xsb3dlZAorICogICAgICAgICAgICAgICAgIGJ5IGEgY2FsbCB0byBtYmVkdGxzX3JzYV9jb21wbGV0ZSgpLCB3aGljaCBjaGVja3MgYW5kCisgKiAgICAgICAgICAgICAgICAgY29tcGxldGVzIHRoZSBwcm92aWRlZCBpbmZvcm1hdGlvbiB0byBhIHJlYWR5LWZvci11c2UKKyAqICAgICAgICAgICAgICAgICBwdWJsaWMgb3IgcHJpdmF0ZSBSU0Ega2V5LgorICoKKyAqIFxub3RlICAgICAgICAgICBTZWUgbWJlZHRsc19yc2FfY29tcGxldGUoKSBmb3IgbW9yZSBpbmZvcm1hdGlvbiBvbiB3aGljaAorICogICAgICAgICAgICAgICAgIHBhcmFtZXRlcnMgYXJlIG5lY2Vzc2FyeSB0byBzZXQgdXAgYSBwcml2YXRlIG9yIHB1YmxpYworICogICAgICAgICAgICAgICAgIFJTQSBrZXkuCisgKgorICogXG5vdGUgICAgICAgICAgIFRoZSBpbXBvcnRlZCBwYXJhbWV0ZXJzIGFyZSBjb3BpZWQgYW5kIG5lZWQgbm90IGJlIHByZXNlcnZlZAorICogICAgICAgICAgICAgICAgIGZvciB0aGUgbGlmZXRpbWUgb2YgdGhlIFJTQSBjb250ZXh0IGJlaW5nIHNldCB1cC4KKyAqCisgKiBccGFyYW0gY3R4ICAgICAgVGhlIGluaXRpYWxpemVkIFJTQSBjb250ZXh0IHRvIHN0b3JlIHRoZSBwYXJhbWV0ZXJzIGluLgorICogXHBhcmFtIE4gICAgICAgIFRoZSBSU0EgbW9kdWx1cy4gVGhpcyBtYXkgYmUgXGMgTlVMTC4KKyAqIFxwYXJhbSBOX2xlbiAgICBUaGUgQnl0ZSBsZW5ndGggb2YgXHAgTjsgaXQgaXMgaWdub3JlZCBpZiBccCBOID09IE5VTEwuCisgKiBccGFyYW0gUCAgICAgICAgVGhlIGZpcnN0IHByaW1lIGZhY3RvciBvZiBccCBOLiBUaGlzIG1heSBiZSBcYyBOVUxMLgorICogXHBhcmFtIFBfbGVuICAgIFRoZSBCeXRlIGxlbmd0aCBvZiBccCBQOyBpdCBpcyBpZ25vcmVkIGlmIFxwIFAgPT0gTlVMTC4KKyAqIFxwYXJhbSBRICAgICAgICBUaGUgc2Vjb25kIHByaW1lIGZhY3RvciBvZiBccCBOLiBUaGlzIG1heSBiZSBcYyBOVUxMLgorICogXHBhcmFtIFFfbGVuICAgIFRoZSBCeXRlIGxlbmd0aCBvZiBccCBROyBpdCBpcyBpZ25vcmVkIGlmIFxwIFEgPT0gTlVMTC4KKyAqIFxwYXJhbSBEICAgICAgICBUaGUgcHJpdmF0ZSBleHBvbmVudC4gVGhpcyBtYXkgYmUgXGMgTlVMTC4KKyAqIFxwYXJhbSBEX2xlbiAgICBUaGUgQnl0ZSBsZW5ndGggb2YgXHAgRDsgaXQgaXMgaWdub3JlZCBpZiBccCBEID09IE5VTEwuCisgKiBccGFyYW0gRSAgICAgICAgVGhlIHB1YmxpYyBleHBvbmVudC4gVGhpcyBtYXkgYmUgXGMgTlVMTC4KKyAqIFxwYXJhbSBFX2xlbiAgICBUaGUgQnl0ZSBsZW5ndGggb2YgXHAgRTsgaXQgaXMgaWdub3JlZCBpZiBccCBFID09IE5VTEwuCisgKgorICogXHJldHVybiAgICAgICAgIFxjIDAgb24gc3VjY2Vzcy4KKyAqIFxyZXR1cm4gICAgICAgICBBIG5vbi16ZXJvIGVycm9yIGNvZGUgb24gZmFpbHVyZS4KKyAqLworaW50IG1iZWR0bHNfcnNhX2ltcG9ydF9yYXcobWJlZHRsc19yc2FfY29udGV4dCAqY3R4LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgY2hhciBjb25zdCAqTiwgc2l6ZV90IE5fbGVuLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgY2hhciBjb25zdCAqUCwgc2l6ZV90IFBfbGVuLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgY2hhciBjb25zdCAqUSwgc2l6ZV90IFFfbGVuLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgY2hhciBjb25zdCAqRCwgc2l6ZV90IERfbGVuLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgY2hhciBjb25zdCAqRSwgc2l6ZV90IEVfbGVuKTsKKworLyoqCisgKiBcYnJpZWYgICAgICAgICAgVGhpcyBmdW5jdGlvbiBjb21wbGV0ZXMgYW4gUlNBIGNvbnRleHQgZnJvbQorICogICAgICAgICAgICAgICAgIGEgc2V0IG9mIGltcG9ydGVkIGNvcmUgcGFyYW1ldGVycy4KKyAqCisgKiAgICAgICAgICAgICAgICAgVG8gc2V0dXAgYW4gUlNBIHB1YmxpYyBrZXksIHByZWNpc2VseSBcYyBOIGFuZCBcYyBFCisgKiAgICAgICAgICAgICAgICAgbXVzdCBoYXZlIGJlZW4gaW1wb3J0ZWQuCisgKgorICogICAgICAgICAgICAgICAgIFRvIHNldHVwIGFuIFJTQSBwcml2YXRlIGtleSwgc3VmZmljaWVudCBpbmZvcm1hdGlvbiBtdXN0CisgKiAgICAgICAgICAgICAgICAgYmUgcHJlc2VudCBmb3IgdGhlIG90aGVyIHBhcmFtZXRlcnMgdG8gYmUgZGVyaXZhYmxlLgorICoKKyAqICAgICAgICAgICAgICAgICBUaGUgZGVmYXVsdCBpbXBsZW1lbnRhdGlvbiBzdXBwb3J0cyB0aGUgZm9sbG93aW5nOgorICogICAgICAgICAgICAgICAgIDx1bD48bGk+RGVyaXZlIFxjIFAsIFxjIFEgZnJvbSBcYyBOLCBcYyBELCBcYyBFLjwvbGk+CisgKiAgICAgICAgICAgICAgICAgPGxpPkRlcml2ZSBcYyBOLCBcYyBEIGZyb20gXGMgUCwgXGMgUSwgXGMgRS48L2xpPjwvdWw+CisgKiAgICAgICAgICAgICAgICAgQWx0ZXJuYXRpdmUgaW1wbGVtZW50YXRpb25zIG5lZWQgbm90IHN1cHBvcnQgdGhlc2UuCisgKgorICogICAgICAgICAgICAgICAgIElmIHRoaXMgZnVuY3Rpb24gcnVucyBzdWNjZXNzZnVsbHksIGl0IGd1YXJhbnRlZXMgdGhhdAorICogICAgICAgICAgICAgICAgIHRoZSBSU0EgY29udGV4dCBjYW4gYmUgdXNlZCBmb3IgUlNBIG9wZXJhdGlvbnMgd2l0aG91dAorICogICAgICAgICAgICAgICAgIHRoZSByaXNrIG9mIGZhaWx1cmUgb3IgY3Jhc2guCisgKgorICogXHdhcm5pbmcgICAgICAgIFRoaXMgZnVuY3Rpb24gbmVlZCBub3QgcGVyZm9ybSBjb25zaXN0ZW5jeSBjaGVja3MKKyAqICAgICAgICAgICAgICAgICBmb3IgdGhlIGltcG9ydGVkIHBhcmFtZXRlcnMuIEluIHBhcnRpY3VsYXIsIHBhcmFtZXRlcnMgdGhhdAorICogICAgICAgICAgICAgICAgIGFyZSBub3QgbmVlZGVkIGJ5IHRoZSBpbXBsZW1lbnRhdGlvbiBtaWdodCBiZSBzaWxlbnRseQorICogICAgICAgICAgICAgICAgIGRpc2NhcmRlZCBhbmQgbGVmdCB1bmNoZWNrZWQuIFRvIGNoZWNrIHRoZSBjb25zaXN0ZW5jeQorICogICAgICAgICAgICAgICAgIG9mIHRoZSBrZXkgbWF0ZXJpYWwsIHNlZSBtYmVkdGxzX3JzYV9jaGVja19wcml2a2V5KCkuCisgKgorICogXHBhcmFtIGN0eCAgICAgIFRoZSBpbml0aWFsaXplZCBSU0EgY29udGV4dCBob2xkaW5nIGltcG9ydGVkIHBhcmFtZXRlcnMuCisgKgorICogXHJldHVybiAgICAgICAgIFxjIDAgb24gc3VjY2Vzcy4KKyAqIFxyZXR1cm4gICAgICAgICAjTUJFRFRMU19FUlJfUlNBX0JBRF9JTlBVVF9EQVRBIGlmIHRoZSBhdHRlbXB0ZWQgZGVyaXZhdGlvbnMKKyAqICAgICAgICAgICAgICAgICBmYWlsZWQuCisgKgorICovCitpbnQgbWJlZHRsc19yc2FfY29tcGxldGUobWJlZHRsc19yc2FfY29udGV4dCAqY3R4KTsKKworLyoqCisgKiBcYnJpZWYgICAgICAgICAgVGhpcyBmdW5jdGlvbiBleHBvcnRzIHRoZSBjb3JlIHBhcmFtZXRlcnMgb2YgYW4gUlNBIGtleS4KKyAqCisgKiAgICAgICAgICAgICAgICAgSWYgdGhpcyBmdW5jdGlvbiBydW5zIHN1Y2Nlc3NmdWxseSwgdGhlIG5vbi1OVUxMIGJ1ZmZlcnMKKyAqICAgICAgICAgICAgICAgICBwb2ludGVkIHRvIGJ5IFxwIE4sIFxwIFAsIFxwIFEsIFxwIEQsIGFuZCBccCBFIGFyZSBmdWxseQorICogICAgICAgICAgICAgICAgIHdyaXR0ZW4sIHdpdGggYWRkaXRpb25hbCB1bnVzZWQgc3BhY2UgZmlsbGVkIGxlYWRpbmcgYnkKKyAqICAgICAgICAgICAgICAgICB6ZXJvIEJ5dGVzLgorICoKKyAqICAgICAgICAgICAgICAgICBQb3NzaWJsZSByZWFzb25zIGZvciByZXR1cm5pbmcKKyAqICAgICAgICAgICAgICAgICAjTUJFRFRMU19FUlJfUExBVEZPUk1fRkVBVFVSRV9VTlNVUFBPUlRFRDo8dWw+CisgKiAgICAgICAgICAgICAgICAgPGxpPkFuIGFsdGVybmF0aXZlIFJTQSBpbXBsZW1lbnRhdGlvbiBpcyBpbiB1c2UsIHdoaWNoCisgKiAgICAgICAgICAgICAgICAgc3RvcmVzIHRoZSBrZXkgZXh0ZXJuYWxseSwgYW5kIGVpdGhlciBjYW5ub3Qgb3Igc2hvdWxkCisgKiAgICAgICAgICAgICAgICAgbm90IGV4cG9ydCBpdCBpbnRvIFJBTS48L2xpPgorICogICAgICAgICAgICAgICAgIDxsaT5BIFNXIG9yIEhXIGltcGxlbWVudGF0aW9uIG1pZ2h0IG5vdCBzdXBwb3J0IGEgY2VydGFpbgorICogICAgICAgICAgICAgICAgIGRlZHVjdGlvbi4gRm9yIGV4YW1wbGUsIFxwIFAsIFxwIFEgZnJvbSBccCBOLCBccCBELAorICogICAgICAgICAgICAgICAgIGFuZCBccCBFIGlmIHRoZSBmb3JtZXIgYXJlIG5vdCBwYXJ0IG9mIHRoZQorICogICAgICAgICAgICAgICAgIGltcGxlbWVudGF0aW9uLjwvbGk+PC91bD4KKyAqCisgKiAgICAgICAgICAgICAgICAgSWYgdGhlIGZ1bmN0aW9uIGZhaWxzIGR1ZSB0byBhbiB1bnN1cHBvcnRlZCBvcGVyYXRpb24sCisgKiAgICAgICAgICAgICAgICAgdGhlIFJTQSBjb250ZXh0IHN0YXlzIGludGFjdCBhbmQgcmVtYWlucyB1c2FibGUuCisgKgorICogXHBhcmFtIGN0eCAgICAgIFRoZSBpbml0aWFsaXplZCBSU0EgY29udGV4dC4KKyAqIFxwYXJhbSBOICAgICAgICBUaGUgTVBJIHRvIGhvbGQgdGhlIFJTQSBtb2R1bHVzLgorICogICAgICAgICAgICAgICAgIFRoaXMgbWF5IGJlIFxjIE5VTEwgaWYgdGhpcyBmaWVsZCBuZWVkIG5vdCBiZSBleHBvcnRlZC4KKyAqIFxwYXJhbSBQICAgICAgICBUaGUgTVBJIHRvIGhvbGQgdGhlIGZpcnN0IHByaW1lIGZhY3RvciBvZiBccCBOLgorICogICAgICAgICAgICAgICAgIFRoaXMgbWF5IGJlIFxjIE5VTEwgaWYgdGhpcyBmaWVsZCBuZWVkIG5vdCBiZSBleHBvcnRlZC4KKyAqIFxwYXJhbSBRICAgICAgICBUaGUgTVBJIHRvIGhvbGQgdGhlIHNlY29uZCBwcmltZSBmYWN0b3Igb2YgXHAgTi4KKyAqICAgICAgICAgICAgICAgICBUaGlzIG1heSBiZSBcYyBOVUxMIGlmIHRoaXMgZmllbGQgbmVlZCBub3QgYmUgZXhwb3J0ZWQuCisgKiBccGFyYW0gRCAgICAgICAgVGhlIE1QSSB0byBob2xkIHRoZSBwcml2YXRlIGV4cG9uZW50LgorICogICAgICAgICAgICAgICAgIFRoaXMgbWF5IGJlIFxjIE5VTEwgaWYgdGhpcyBmaWVsZCBuZWVkIG5vdCBiZSBleHBvcnRlZC4KKyAqIFxwYXJhbSBFICAgICAgICBUaGUgTVBJIHRvIGhvbGQgdGhlIHB1YmxpYyBleHBvbmVudC4KKyAqICAgICAgICAgICAgICAgICBUaGlzIG1heSBiZSBcYyBOVUxMIGlmIHRoaXMgZmllbGQgbmVlZCBub3QgYmUgZXhwb3J0ZWQuCisgKgorICogXHJldHVybiAgICAgICAgIFxjIDAgb24gc3VjY2Vzcy4KKyAqIFxyZXR1cm4gICAgICAgICAjTUJFRFRMU19FUlJfUExBVEZPUk1fRkVBVFVSRV9VTlNVUFBPUlRFRCBpZiBleHBvcnRpbmcgdGhlCisgKiAgICAgICAgICAgICAgICAgcmVxdWVzdGVkIHBhcmFtZXRlcnMgY2Fubm90IGJlIGRvbmUgZHVlIHRvIG1pc3NpbmcKKyAqICAgICAgICAgICAgICAgICBmdW5jdGlvbmFsaXR5IG9yIGJlY2F1c2Ugb2Ygc2VjdXJpdHkgcG9saWNpZXMuCisgKiBccmV0dXJuICAgICAgICAgQSBub24temVybyByZXR1cm4gY29kZSBvbiBhbnkgb3RoZXIgZmFpbHVyZS4KKyAqCisgKi8KK2ludCBtYmVkdGxzX3JzYV9leHBvcnQoY29uc3QgbWJlZHRsc19yc2FfY29udGV4dCAqY3R4LAorICAgICAgICAgICAgICAgICAgICAgICBtYmVkdGxzX21waSAqTiwgbWJlZHRsc19tcGkgKlAsIG1iZWR0bHNfbXBpICpRLAorICAgICAgICAgICAgICAgICAgICAgICBtYmVkdGxzX21waSAqRCwgbWJlZHRsc19tcGkgKkUpOworCisvKioKKyAqIFxicmllZiAgICAgICAgICBUaGlzIGZ1bmN0aW9uIGV4cG9ydHMgY29yZSBwYXJhbWV0ZXJzIG9mIGFuIFJTQSBrZXkKKyAqICAgICAgICAgICAgICAgICBpbiByYXcgYmlnLWVuZGlhbiBiaW5hcnkgZm9ybWF0LgorICoKKyAqICAgICAgICAgICAgICAgICBJZiB0aGlzIGZ1bmN0aW9uIHJ1bnMgc3VjY2Vzc2Z1bGx5LCB0aGUgbm9uLU5VTEwgYnVmZmVycworICogICAgICAgICAgICAgICAgIHBvaW50ZWQgdG8gYnkgXHAgTiwgXHAgUCwgXHAgUSwgXHAgRCwgYW5kIFxwIEUgYXJlIGZ1bGx5CisgKiAgICAgICAgICAgICAgICAgd3JpdHRlbiwgd2l0aCBhZGRpdGlvbmFsIHVudXNlZCBzcGFjZSBmaWxsZWQgbGVhZGluZyBieQorICogICAgICAgICAgICAgICAgIHplcm8gQnl0ZXMuCisgKgorICogICAgICAgICAgICAgICAgIFBvc3NpYmxlIHJlYXNvbnMgZm9yIHJldHVybmluZworICogICAgICAgICAgICAgICAgICNNQkVEVExTX0VSUl9QTEFURk9STV9GRUFUVVJFX1VOU1VQUE9SVEVEOjx1bD4KKyAqICAgICAgICAgICAgICAgICA8bGk+QW4gYWx0ZXJuYXRpdmUgUlNBIGltcGxlbWVudGF0aW9uIGlzIGluIHVzZSwgd2hpY2gKKyAqICAgICAgICAgICAgICAgICBzdG9yZXMgdGhlIGtleSBleHRlcm5hbGx5LCBhbmQgZWl0aGVyIGNhbm5vdCBvciBzaG91bGQKKyAqICAgICAgICAgICAgICAgICBub3QgZXhwb3J0IGl0IGludG8gUkFNLjwvbGk+CisgKiAgICAgICAgICAgICAgICAgPGxpPkEgU1cgb3IgSFcgaW1wbGVtZW50YXRpb24gbWlnaHQgbm90IHN1cHBvcnQgYSBjZXJ0YWluCisgKiAgICAgICAgICAgICAgICAgZGVkdWN0aW9uLiBGb3IgZXhhbXBsZSwgXHAgUCwgXHAgUSBmcm9tIFxwIE4sIFxwIEQsCisgKiAgICAgICAgICAgICAgICAgYW5kIFxwIEUgaWYgdGhlIGZvcm1lciBhcmUgbm90IHBhcnQgb2YgdGhlCisgKiAgICAgICAgICAgICAgICAgaW1wbGVtZW50YXRpb24uPC9saT48L3VsPgorICogICAgICAgICAgICAgICAgIElmIHRoZSBmdW5jdGlvbiBmYWlscyBkdWUgdG8gYW4gdW5zdXBwb3J0ZWQgb3BlcmF0aW9uLAorICogICAgICAgICAgICAgICAgIHRoZSBSU0EgY29udGV4dCBzdGF5cyBpbnRhY3QgYW5kIHJlbWFpbnMgdXNhYmxlLgorICoKKyAqIFxub3RlICAgICAgICAgICBUaGUgbGVuZ3RoIHBhcmFtZXRlcnMgYXJlIGlnbm9yZWQgaWYgdGhlIGNvcnJlc3BvbmRpbmcKKyAqICAgICAgICAgICAgICAgICBidWZmZXIgcG9pbnRlcnMgYXJlIE5VTEwuCisgKgorICogXHBhcmFtIGN0eCAgICAgIFRoZSBpbml0aWFsaXplZCBSU0EgY29udGV4dC4KKyAqIFxwYXJhbSBOICAgICAgICBUaGUgQnl0ZSBhcnJheSB0byBzdG9yZSB0aGUgUlNBIG1vZHVsdXMsCisgKiAgICAgICAgICAgICAgICAgb3IgXGMgTlVMTCBpZiB0aGlzIGZpZWxkIG5lZWQgbm90IGJlIGV4cG9ydGVkLgorICogXHBhcmFtIE5fbGVuICAgIFRoZSBzaXplIG9mIHRoZSBidWZmZXIgZm9yIHRoZSBtb2R1bHVzLgorICogXHBhcmFtIFAgICAgICAgIFRoZSBCeXRlIGFycmF5IHRvIGhvbGQgdGhlIGZpcnN0IHByaW1lIGZhY3RvciBvZiBccCBOLAorICogICAgICAgICAgICAgICAgIG9yIFxjIE5VTEwgaWYgdGhpcyBmaWVsZCBuZWVkIG5vdCBiZSBleHBvcnRlZC4KKyAqIFxwYXJhbSBQX2xlbiAgICBUaGUgc2l6ZSBvZiB0aGUgYnVmZmVyIGZvciB0aGUgZmlyc3QgcHJpbWUgZmFjdG9yLgorICogXHBhcmFtIFEgICAgICAgIFRoZSBCeXRlIGFycmF5IHRvIGhvbGQgdGhlIHNlY29uZCBwcmltZSBmYWN0b3Igb2YgXHAgTiwKKyAqICAgICAgICAgICAgICAgICBvciBcYyBOVUxMIGlmIHRoaXMgZmllbGQgbmVlZCBub3QgYmUgZXhwb3J0ZWQuCisgKiBccGFyYW0gUV9sZW4gICAgVGhlIHNpemUgb2YgdGhlIGJ1ZmZlciBmb3IgdGhlIHNlY29uZCBwcmltZSBmYWN0b3IuCisgKiBccGFyYW0gRCAgICAgICAgVGhlIEJ5dGUgYXJyYXkgdG8gaG9sZCB0aGUgcHJpdmF0ZSBleHBvbmVudCwKKyAqICAgICAgICAgICAgICAgICBvciBcYyBOVUxMIGlmIHRoaXMgZmllbGQgbmVlZCBub3QgYmUgZXhwb3J0ZWQuCisgKiBccGFyYW0gRF9sZW4gICAgVGhlIHNpemUgb2YgdGhlIGJ1ZmZlciBmb3IgdGhlIHByaXZhdGUgZXhwb25lbnQuCisgKiBccGFyYW0gRSAgICAgICAgVGhlIEJ5dGUgYXJyYXkgdG8gaG9sZCB0aGUgcHVibGljIGV4cG9uZW50LAorICogICAgICAgICAgICAgICAgIG9yIFxjIE5VTEwgaWYgdGhpcyBmaWVsZCBuZWVkIG5vdCBiZSBleHBvcnRlZC4KKyAqIFxwYXJhbSBFX2xlbiAgICBUaGUgc2l6ZSBvZiB0aGUgYnVmZmVyIGZvciB0aGUgcHVibGljIGV4cG9uZW50LgorICoKKyAqIFxyZXR1cm4gICAgICAgICBcYyAwIG9uIHN1Y2Nlc3MuCisgKiBccmV0dXJuICAgICAgICAgI01CRURUTFNfRVJSX1BMQVRGT1JNX0ZFQVRVUkVfVU5TVVBQT1JURUQgaWYgZXhwb3J0aW5nIHRoZQorICogICAgICAgICAgICAgICAgIHJlcXVlc3RlZCBwYXJhbWV0ZXJzIGNhbm5vdCBiZSBkb25lIGR1ZSB0byBtaXNzaW5nCisgKiAgICAgICAgICAgICAgICAgZnVuY3Rpb25hbGl0eSBvciBiZWNhdXNlIG9mIHNlY3VyaXR5IHBvbGljaWVzLgorICogXHJldHVybiAgICAgICAgIEEgbm9uLXplcm8gcmV0dXJuIGNvZGUgb24gYW55IG90aGVyIGZhaWx1cmUuCisgKi8KK2ludCBtYmVkdGxzX3JzYV9leHBvcnRfcmF3KGNvbnN0IG1iZWR0bHNfcnNhX2NvbnRleHQgKmN0eCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGNoYXIgKk4sIHNpemVfdCBOX2xlbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGNoYXIgKlAsIHNpemVfdCBQX2xlbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGNoYXIgKlEsIHNpemVfdCBRX2xlbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGNoYXIgKkQsIHNpemVfdCBEX2xlbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGNoYXIgKkUsIHNpemVfdCBFX2xlbik7CisKKy8qKgorICogXGJyaWVmICAgICAgICAgIFRoaXMgZnVuY3Rpb24gZXhwb3J0cyBDUlQgcGFyYW1ldGVycyBvZiBhIHByaXZhdGUgUlNBIGtleS4KKyAqCisgKiBcbm90ZSAgICAgICAgICAgQWx0ZXJuYXRpdmUgUlNBIGltcGxlbWVudGF0aW9ucyBub3QgdXNpbmcgQ1JULXBhcmFtZXRlcnMKKyAqICAgICAgICAgICAgICAgICBpbnRlcm5hbGx5IGNhbiBpbXBsZW1lbnQgdGhpcyBmdW5jdGlvbiBiYXNlZCBvbgorICogICAgICAgICAgICAgICAgIG1iZWR0bHNfcnNhX2RlZHVjZV9vcHQoKS4KKyAqCisgKiBccGFyYW0gY3R4ICAgICAgVGhlIGluaXRpYWxpemVkIFJTQSBjb250ZXh0LgorICogXHBhcmFtIERQICAgICAgIFRoZSBNUEkgdG8gaG9sZCBcYyBEIG1vZHVsbyBgUC0xYCwKKyAqICAgICAgICAgICAgICAgICBvciBcYyBOVUxMIGlmIGl0IG5lZWQgbm90IGJlIGV4cG9ydGVkLgorICogXHBhcmFtIERRICAgICAgIFRoZSBNUEkgdG8gaG9sZCBcYyBEIG1vZHVsbyBgUS0xYCwKKyAqICAgICAgICAgICAgICAgICBvciBcYyBOVUxMIGlmIGl0IG5lZWQgbm90IGJlIGV4cG9ydGVkLgorICogXHBhcmFtIFFQICAgICAgIFRoZSBNUEkgdG8gaG9sZCBtb2R1bGFyIGludmVyc2Ugb2YgXGMgUSBtb2R1bG8gXGMgUCwKKyAqICAgICAgICAgICAgICAgICBvciBcYyBOVUxMIGlmIGl0IG5lZWQgbm90IGJlIGV4cG9ydGVkLgorICoKKyAqIFxyZXR1cm4gICAgICAgICBcYyAwIG9uIHN1Y2Nlc3MuCisgKiBccmV0dXJuICAgICAgICAgQSBub24temVybyBlcnJvciBjb2RlIG9uIGZhaWx1cmUuCisgKgorICovCitpbnQgbWJlZHRsc19yc2FfZXhwb3J0X2NydChjb25zdCBtYmVkdGxzX3JzYV9jb250ZXh0ICpjdHgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICBtYmVkdGxzX21waSAqRFAsIG1iZWR0bHNfbXBpICpEUSwgbWJlZHRsc19tcGkgKlFQKTsKKworLyoqCisgKiBcYnJpZWYgICAgICAgICAgVGhpcyBmdW5jdGlvbiByZXRyaWV2ZXMgdGhlIGxlbmd0aCBvZiB0aGUgUlNBIG1vZHVsdXMgaW4gYml0cy4KKyAqCisgKiBccGFyYW0gY3R4ICAgICAgVGhlIGluaXRpYWxpemVkIFJTQSBjb250ZXh0LgorICoKKyAqIFxyZXR1cm4gICAgICAgICBUaGUgbGVuZ3RoIG9mIHRoZSBSU0EgbW9kdWx1cyBpbiBiaXRzLgorICoKKyAqLworc2l6ZV90IG1iZWR0bHNfcnNhX2dldF9iaXRsZW4oY29uc3QgbWJlZHRsc19yc2FfY29udGV4dCAqY3R4KTsKKworLyoqCisgKiBcYnJpZWYgICAgICAgICAgVGhpcyBmdW5jdGlvbiByZXRyaWV2ZXMgdGhlIGxlbmd0aCBvZiBSU0EgbW9kdWx1cyBpbiBCeXRlcy4KKyAqCisgKiBccGFyYW0gY3R4ICAgICAgVGhlIGluaXRpYWxpemVkIFJTQSBjb250ZXh0LgorICoKKyAqIFxyZXR1cm4gICAgICAgICBUaGUgbGVuZ3RoIG9mIHRoZSBSU0EgbW9kdWx1cyBpbiBCeXRlcy4KKyAqCisgKi8KK3NpemVfdCBtYmVkdGxzX3JzYV9nZXRfbGVuKGNvbnN0IG1iZWR0bHNfcnNhX2NvbnRleHQgKmN0eCk7CisKKy8qKgorICogXGJyaWVmICAgICAgICAgIFRoaXMgZnVuY3Rpb24gZ2VuZXJhdGVzIGFuIFJTQSBrZXlwYWlyLgorICoKKyAqIFxub3RlICAgICAgICAgICBtYmVkdGxzX3JzYV9pbml0KCkgbXVzdCBiZSBjYWxsZWQgYmVmb3JlIHRoaXMgZnVuY3Rpb24sCisgKiAgICAgICAgICAgICAgICAgdG8gc2V0IHVwIHRoZSBSU0EgY29udGV4dC4KKyAqCisgKiBccGFyYW0gY3R4ICAgICAgVGhlIGluaXRpYWxpemVkIFJTQSBjb250ZXh0IHVzZWQgdG8gaG9sZCB0aGUga2V5LgorICogXHBhcmFtIGZfcm5nICAgIFRoZSBSTkcgZnVuY3Rpb24gdG8gYmUgdXNlZCBmb3Iga2V5IGdlbmVyYXRpb24uCisgKiAgICAgICAgICAgICAgICAgVGhpcyBpcyBtYW5kYXRvcnkgYW5kIG11c3Qgbm90IGJlIFxjIE5VTEwuCisgKiBccGFyYW0gcF9ybmcgICAgVGhlIFJORyBjb250ZXh0IHRvIGJlIHBhc3NlZCB0byBccCBmX3JuZy4KKyAqICAgICAgICAgICAgICAgICBUaGlzIG1heSBiZSBcYyBOVUxMIGlmIFxwIGZfcm5nIGRvZXNuJ3QgbmVlZCBhIGNvbnRleHQuCisgKiBccGFyYW0gbmJpdHMgICAgVGhlIHNpemUgb2YgdGhlIHB1YmxpYyBrZXkgaW4gYml0cy4KKyAqIFxwYXJhbSBleHBvbmVudCBUaGUgcHVibGljIGV4cG9uZW50IHRvIHVzZS4gRm9yIGV4YW1wbGUsIFxjIDY1NTM3LgorICogICAgICAgICAgICAgICAgIFRoaXMgbXVzdCBiZSBvZGQgYW5kIGdyZWF0ZXIgdGhhbiBcYyAxLgorICoKKyAqIFxyZXR1cm4gICAgICAgICBcYyAwIG9uIHN1Y2Nlc3MuCisgKiBccmV0dXJuICAgICAgICAgQW4gXGMgTUJFRFRMU19FUlJfUlNBX1hYWCBlcnJvciBjb2RlIG9uIGZhaWx1cmUuCisgKi8KK2ludCBtYmVkdGxzX3JzYV9nZW5fa2V5KG1iZWR0bHNfcnNhX2NvbnRleHQgKmN0eCwKKyAgICAgICAgICAgICAgICAgICAgICAgIGludCAoKmZfcm5nKSh2b2lkICosIHVuc2lnbmVkIGNoYXIgKiwgc2l6ZV90KSwKKyAgICAgICAgICAgICAgICAgICAgICAgIHZvaWQgKnBfcm5nLAorICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50IG5iaXRzLCBpbnQgZXhwb25lbnQpOworCisvKioKKyAqIFxicmllZiAgICAgICAgICBUaGlzIGZ1bmN0aW9uIGNoZWNrcyBpZiBhIGNvbnRleHQgY29udGFpbnMgYXQgbGVhc3QgYW4gUlNBCisgKiAgICAgICAgICAgICAgICAgcHVibGljIGtleS4KKyAqCisgKiAgICAgICAgICAgICAgICAgSWYgdGhlIGZ1bmN0aW9uIHJ1bnMgc3VjY2Vzc2Z1bGx5LCBpdCBpcyBndWFyYW50ZWVkIHRoYXQKKyAqICAgICAgICAgICAgICAgICBlbm91Z2ggaW5mb3JtYXRpb24gaXMgcHJlc2VudCB0byBwZXJmb3JtIGFuIFJTQSBwdWJsaWMga2V5CisgKiAgICAgICAgICAgICAgICAgb3BlcmF0aW9uIHVzaW5nIG1iZWR0bHNfcnNhX3B1YmxpYygpLgorICoKKyAqIFxwYXJhbSBjdHggICAgICBUaGUgaW5pdGlhbGl6ZWQgUlNBIGNvbnRleHQgdG8gY2hlY2suCisgKgorICogXHJldHVybiAgICAgICAgIFxjIDAgb24gc3VjY2Vzcy4KKyAqIFxyZXR1cm4gICAgICAgICBBbiBcYyBNQkVEVExTX0VSUl9SU0FfWFhYIGVycm9yIGNvZGUgb24gZmFpbHVyZS4KKyAqCisgKi8KK2ludCBtYmVkdGxzX3JzYV9jaGVja19wdWJrZXkoY29uc3QgbWJlZHRsc19yc2FfY29udGV4dCAqY3R4KTsKKworLyoqCisgKiBcYnJpZWYgICAgICBUaGlzIGZ1bmN0aW9uIGNoZWNrcyBpZiBhIGNvbnRleHQgY29udGFpbnMgYW4gUlNBIHByaXZhdGUga2V5CisgKiAgICAgICAgICAgICBhbmQgcGVyZm9ybSBiYXNpYyBjb25zaXN0ZW5jeSBjaGVja3MuCisgKgorICogXG5vdGUgICAgICAgVGhlIGNvbnNpc3RlbmN5IGNoZWNrcyBwZXJmb3JtZWQgYnkgdGhpcyBmdW5jdGlvbiBub3Qgb25seQorICogICAgICAgICAgICAgZW5zdXJlIHRoYXQgbWJlZHRsc19yc2FfcHJpdmF0ZSgpIGNhbiBiZSBjYWxsZWQgc3VjY2Vzc2Z1bGx5CisgKiAgICAgICAgICAgICBvbiB0aGUgZ2l2ZW4gY29udGV4dCwgYnV0IHRoYXQgdGhlIHZhcmlvdXMgcGFyYW1ldGVycyBhcmUKKyAqICAgICAgICAgICAgIG11dHVhbGx5IGNvbnNpc3RlbnQgd2l0aCBoaWdoIHByb2JhYmlsaXR5LCBpbiB0aGUgc2Vuc2UgdGhhdAorICogICAgICAgICAgICAgbWJlZHRsc19yc2FfcHVibGljKCkgYW5kIG1iZWR0bHNfcnNhX3ByaXZhdGUoKSBhcmUgaW52ZXJzZXMuCisgKgorICogXHdhcm5pbmcgICAgVGhpcyBmdW5jdGlvbiBzaG91bGQgY2F0Y2ggYWNjaWRlbnRhbCBtaXNjb25maWd1cmF0aW9ucworICogICAgICAgICAgICAgbGlrZSBzd2FwcGluZyBvZiBwYXJhbWV0ZXJzLCBidXQgaXQgY2Fubm90IGVzdGFibGlzaCBmdWxsCisgKiAgICAgICAgICAgICB0cnVzdCBpbiBuZWl0aGVyIHRoZSBxdWFsaXR5IG5vciB0aGUgY29uc2lzdGVuY3kgb2YgdGhlIGtleQorICogICAgICAgICAgICAgbWF0ZXJpYWwgdGhhdCB3YXMgdXNlZCB0byBzZXR1cCB0aGUgZ2l2ZW4gUlNBIGNvbnRleHQ6CisgKiAgICAgICAgICAgICA8dWw+PGxpPkNvbnNpc3RlbmN5OiBJbXBvcnRlZCBwYXJhbWV0ZXJzIHRoYXQgYXJlIGlycmVsZXZhbnQKKyAqICAgICAgICAgICAgIGZvciB0aGUgaW1wbGVtZW50YXRpb24gbWlnaHQgYmUgc2lsZW50bHkgZHJvcHBlZC4gSWYgZHJvcHBlZCwKKyAqICAgICAgICAgICAgIHRoZSBjdXJyZW50IGZ1bmN0aW9uIGRvZXMgbm90IGhhdmUgYWNjZXNzIHRvIHRoZW0sCisgKiAgICAgICAgICAgICBhbmQgdGhlcmVmb3JlIGNhbm5vdCBjaGVjayB0aGVtLiBTZWUgbWJlZHRsc19yc2FfY29tcGxldGUoKS4KKyAqICAgICAgICAgICAgIElmIHlvdSB3YW50IHRvIGNoZWNrIHRoZSBjb25zaXN0ZW5jeSBvZiB0aGUgZW50aXJlCisgKiAgICAgICAgICAgICBjb250ZW50IG9mIGEgUEtDUzEtZW5jb2RlZCBSU0EgcHJpdmF0ZSBrZXksIGZvciBleGFtcGxlLCB5b3UKKyAqICAgICAgICAgICAgIHNob3VsZCB1c2UgbWJlZHRsc19yc2FfdmFsaWRhdGVfcGFyYW1zKCkgYmVmb3JlIHNldHRpbmcKKyAqICAgICAgICAgICAgIHVwIHRoZSBSU0EgY29udGV4dC4KKyAqICAgICAgICAgICAgIEFkZGl0aW9uYWxseSwgaWYgdGhlIGltcGxlbWVudGF0aW9uIHBlcmZvcm1zIGVtcGlyaWNhbCBjaGVja3MsCisgKiAgICAgICAgICAgICB0aGVzZSBjaGVja3Mgc3Vic3RhbnRpYXRlIGJ1dCBkbyBub3QgZ3VhcmFudGVlIGNvbnNpc3RlbmN5LjwvbGk+CisgKiAgICAgICAgICAgICA8bGk+UXVhbGl0eTogVGhpcyBmdW5jdGlvbiBpcyBub3QgZXhwZWN0ZWQgdG8gcGVyZm9ybQorICogICAgICAgICAgICAgZXh0ZW5kZWQgcXVhbGl0eSBhc3Nlc3NtZW50cyBsaWtlIGNoZWNraW5nIHRoYXQgdGhlIHByaW1lCisgKiAgICAgICAgICAgICBmYWN0b3JzIGFyZSBzYWZlLiBBZGRpdGlvbmFsbHksIGl0IGlzIHRoZSByZXNwb25zaWJpbGl0eSBvZiB0aGUKKyAqICAgICAgICAgICAgIHVzZXIgdG8gZW5zdXJlIHRoZSB0cnVzdHdvcnRoaW5lc3Mgb2YgdGhlIHNvdXJjZSBvZiBoaXMgUlNBCisgKiAgICAgICAgICAgICBwYXJhbWV0ZXJzLCB3aGljaCBnb2VzIGJleW9uZCB3aGF0IGlzIGVmZmVjdGl2ZWx5IGNoZWNrYWJsZQorICogICAgICAgICAgICAgYnkgdGhlIGxpYnJhcnkuPC9saT48L3VsPgorICoKKyAqIFxwYXJhbSBjdHggIFRoZSBpbml0aWFsaXplZCBSU0EgY29udGV4dCB0byBjaGVjay4KKyAqCisgKiBccmV0dXJuICAgICBcYyAwIG9uIHN1Y2Nlc3MuCisgKiBccmV0dXJuICAgICBBbiBcYyBNQkVEVExTX0VSUl9SU0FfWFhYIGVycm9yIGNvZGUgb24gZmFpbHVyZS4KKyAqLworaW50IG1iZWR0bHNfcnNhX2NoZWNrX3ByaXZrZXkoY29uc3QgbWJlZHRsc19yc2FfY29udGV4dCAqY3R4KTsKKworLyoqCisgKiBcYnJpZWYgICAgICAgICAgVGhpcyBmdW5jdGlvbiBjaGVja3MgYSBwdWJsaWMtcHJpdmF0ZSBSU0Ega2V5IHBhaXIuCisgKgorICogICAgICAgICAgICAgICAgIEl0IGNoZWNrcyBlYWNoIG9mIHRoZSBjb250ZXh0cywgYW5kIG1ha2VzIHN1cmUgdGhleSBtYXRjaC4KKyAqCisgKiBccGFyYW0gcHViICAgICAgVGhlIGluaXRpYWxpemVkIFJTQSBjb250ZXh0IGhvbGRpbmcgdGhlIHB1YmxpYyBrZXkuCisgKiBccGFyYW0gcHJ2ICAgICAgVGhlIGluaXRpYWxpemVkIFJTQSBjb250ZXh0IGhvbGRpbmcgdGhlIHByaXZhdGUga2V5LgorICoKKyAqIFxyZXR1cm4gICAgICAgICBcYyAwIG9uIHN1Y2Nlc3MuCisgKiBccmV0dXJuICAgICAgICAgQW4gXGMgTUJFRFRMU19FUlJfUlNBX1hYWCBlcnJvciBjb2RlIG9uIGZhaWx1cmUuCisgKi8KK2ludCBtYmVkdGxzX3JzYV9jaGVja19wdWJfcHJpdihjb25zdCBtYmVkdGxzX3JzYV9jb250ZXh0ICpwdWIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbWJlZHRsc19yc2FfY29udGV4dCAqcHJ2KTsKKworLyoqCisgKiBcYnJpZWYgICAgICAgICAgVGhpcyBmdW5jdGlvbiBwZXJmb3JtcyBhbiBSU0EgcHVibGljIGtleSBvcGVyYXRpb24uCisgKgorICogXHBhcmFtIGN0eCAgICAgIFRoZSBpbml0aWFsaXplZCBSU0EgY29udGV4dCB0byB1c2UuCisgKiBccGFyYW0gaW5wdXQgICAgVGhlIGlucHV0IGJ1ZmZlci4gVGhpcyBtdXN0IGJlIGEgcmVhZGFibGUgYnVmZmVyCisgKiAgICAgICAgICAgICAgICAgb2YgbGVuZ3RoIFxjIGN0eC0+bGVuIEJ5dGVzLiBGb3IgZXhhbXBsZSwgXGMgMjU2IEJ5dGVzCisgKiAgICAgICAgICAgICAgICAgZm9yIGFuIDIwNDgtYml0IFJTQSBtb2R1bHVzLgorICogXHBhcmFtIG91dHB1dCAgIFRoZSBvdXRwdXQgYnVmZmVyLiBUaGlzIG11c3QgYmUgYSB3cml0YWJsZSBidWZmZXIKKyAqICAgICAgICAgICAgICAgICBvZiBsZW5ndGggXGMgY3R4LT5sZW4gQnl0ZXMuIEZvciBleGFtcGxlLCBcYyAyNTYgQnl0ZXMKKyAqICAgICAgICAgICAgICAgICBmb3IgYW4gMjA0OC1iaXQgUlNBIG1vZHVsdXMuCisgKgorICogXG5vdGUgICAgICAgICAgIFRoaXMgZnVuY3Rpb24gZG9lcyBub3QgaGFuZGxlIG1lc3NhZ2UgcGFkZGluZy4KKyAqCisgKiBcbm90ZSAgICAgICAgICAgTWFrZSBzdXJlIHRvIHNldCBccCBpbnB1dFswXSA9IDAgb3IgZW5zdXJlIHRoYXQKKyAqICAgICAgICAgICAgICAgICBpbnB1dCBpcyBzbWFsbGVyIHRoYW4gXGMgTi4KKyAqCisgKiBccmV0dXJuICAgICAgICAgXGMgMCBvbiBzdWNjZXNzLgorICogXHJldHVybiAgICAgICAgIEFuIFxjIE1CRURUTFNfRVJSX1JTQV9YWFggZXJyb3IgY29kZSBvbiBmYWlsdXJlLgorICovCitpbnQgbWJlZHRsc19yc2FfcHVibGljKG1iZWR0bHNfcnNhX2NvbnRleHQgKmN0eCwKKyAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdW5zaWduZWQgY2hhciAqaW5wdXQsCisgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGNoYXIgKm91dHB1dCk7CisKKy8qKgorICogXGJyaWVmICAgICAgICAgIFRoaXMgZnVuY3Rpb24gcGVyZm9ybXMgYW4gUlNBIHByaXZhdGUga2V5IG9wZXJhdGlvbi4KKyAqCisgKiBcbm90ZSAgICAgICAgICAgQmxpbmRpbmcgaXMgdXNlZCBpZiBhbmQgb25seSBpZiBhIFBSTkcgaXMgcHJvdmlkZWQuCisgKgorICogXG5vdGUgICAgICAgICAgIElmIGJsaW5kaW5nIGlzIHVzZWQsIGJvdGggdGhlIGJhc2Ugb2YgZXhwb25lbnRpYXRpb24KKyAqICAgICAgICAgICAgICAgICBhbmQgdGhlIGV4cG9uZW50IGFyZSBibGluZGVkLCBwcm92aWRpbmcgcHJvdGVjdGlvbgorICogICAgICAgICAgICAgICAgIGFnYWluc3Qgc29tZSBzaWRlLWNoYW5uZWwgYXR0YWNrcy4KKyAqCisgKiBcd2FybmluZyAgICAgICAgSXQgaXMgZGVwcmVjYXRlZCBhbmQgYSBzZWN1cml0eSByaXNrIHRvIG5vdCBwcm92aWRlCisgKiAgICAgICAgICAgICAgICAgYSBQUk5HIGhlcmUgYW5kIHRoZXJlYnkgcHJldmVudCB0aGUgdXNlIG9mIGJsaW5kaW5nLgorICogICAgICAgICAgICAgICAgIEZ1dHVyZSB2ZXJzaW9ucyBvZiB0aGUgbGlicmFyeSBtYXkgZW5mb3JjZSB0aGUgcHJlc2VuY2UKKyAqICAgICAgICAgICAgICAgICBvZiBhIFBSTkcuCisgKgorICogXHBhcmFtIGN0eCAgICAgIFRoZSBpbml0aWFsaXplZCBSU0EgY29udGV4dCB0byB1c2UuCisgKiBccGFyYW0gZl9ybmcgICAgVGhlIFJORyBmdW5jdGlvbiwgdXNlZCBmb3IgYmxpbmRpbmcuIEl0IGlzIG1hbmRhdG9yeS4KKyAqIFxwYXJhbSBwX3JuZyAgICBUaGUgUk5HIGNvbnRleHQgdG8gcGFzcyB0byBccCBmX3JuZy4gVGhpcyBtYXkgYmUgXGMgTlVMTAorICogICAgICAgICAgICAgICAgIGlmIFxwIGZfcm5nIGRvZXNuJ3QgbmVlZCBhIGNvbnRleHQuCisgKiBccGFyYW0gaW5wdXQgICAgVGhlIGlucHV0IGJ1ZmZlci4gVGhpcyBtdXN0IGJlIGEgcmVhZGFibGUgYnVmZmVyCisgKiAgICAgICAgICAgICAgICAgb2YgbGVuZ3RoIFxjIGN0eC0+bGVuIEJ5dGVzLiBGb3IgZXhhbXBsZSwgXGMgMjU2IEJ5dGVzCisgKiAgICAgICAgICAgICAgICAgZm9yIGFuIDIwNDgtYml0IFJTQSBtb2R1bHVzLgorICogXHBhcmFtIG91dHB1dCAgIFRoZSBvdXRwdXQgYnVmZmVyLiBUaGlzIG11c3QgYmUgYSB3cml0YWJsZSBidWZmZXIKKyAqICAgICAgICAgICAgICAgICBvZiBsZW5ndGggXGMgY3R4LT5sZW4gQnl0ZXMuIEZvciBleGFtcGxlLCBcYyAyNTYgQnl0ZXMKKyAqICAgICAgICAgICAgICAgICBmb3IgYW4gMjA0OC1iaXQgUlNBIG1vZHVsdXMuCisgKgorICogXHJldHVybiAgICAgICAgIFxjIDAgb24gc3VjY2Vzcy4KKyAqIFxyZXR1cm4gICAgICAgICBBbiBcYyBNQkVEVExTX0VSUl9SU0FfWFhYIGVycm9yIGNvZGUgb24gZmFpbHVyZS4KKyAqCisgKi8KK2ludCBtYmVkdGxzX3JzYV9wcml2YXRlKG1iZWR0bHNfcnNhX2NvbnRleHQgKmN0eCwKKyAgICAgICAgICAgICAgICAgICAgICAgIGludCAoKmZfcm5nKSh2b2lkICosIHVuc2lnbmVkIGNoYXIgKiwgc2l6ZV90KSwKKyAgICAgICAgICAgICAgICAgICAgICAgIHZvaWQgKnBfcm5nLAorICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdW5zaWduZWQgY2hhciAqaW5wdXQsCisgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBjaGFyICpvdXRwdXQpOworCisvKioKKyAqIFxicmllZiAgICAgICAgICBUaGlzIGZ1bmN0aW9uIGFkZHMgdGhlIG1lc3NhZ2UgcGFkZGluZywgdGhlbiBwZXJmb3JtcyBhbiBSU0EKKyAqICAgICAgICAgICAgICAgICBvcGVyYXRpb24uCisgKgorICogICAgICAgICAgICAgICAgIEl0IGlzIHRoZSBnZW5lcmljIHdyYXBwZXIgZm9yIHBlcmZvcm1pbmcgYSBQS0NTIzEgZW5jcnlwdGlvbgorICogICAgICAgICAgICAgICAgIG9wZXJhdGlvbi4KKyAqCisgKiBccGFyYW0gY3R4ICAgICAgVGhlIGluaXRpYWxpemVkIFJTQSBjb250ZXh0IHRvIHVzZS4KKyAqIFxwYXJhbSBmX3JuZyAgICBUaGUgUk5HIHRvIHVzZS4gSXQgaXMgdXNlZCBmb3IgcGFkZGluZyBnZW5lcmF0aW9uCisgKiAgICAgICAgICAgICAgICAgYW5kIGl0IGlzIG1hbmRhdG9yeS4KKyAqIFxwYXJhbSBwX3JuZyAgICBUaGUgUk5HIGNvbnRleHQgdG8gYmUgcGFzc2VkIHRvIFxwIGZfcm5nLiBNYXkgYmUKKyAqICAgICAgICAgICAgICAgICBcYyBOVUxMIGlmIFxwIGZfcm5nIGRvZXNuJ3QgbmVlZCBhIGNvbnRleHQgYXJndW1lbnQuCisgKiBccGFyYW0gaWxlbiAgICAgVGhlIGxlbmd0aCBvZiB0aGUgcGxhaW50ZXh0IGluIEJ5dGVzLgorICogXHBhcmFtIGlucHV0ICAgIFRoZSBpbnB1dCBkYXRhIHRvIGVuY3J5cHQuIFRoaXMgbXVzdCBiZSBhIHJlYWRhYmxlCisgKiAgICAgICAgICAgICAgICAgYnVmZmVyIG9mIHNpemUgXHAgaWxlbiBCeXRlcy4gSXQgbWF5IGJlIFxjIE5VTEwgaWYKKyAqICAgICAgICAgICAgICAgICBgaWxlbiA9PSAwYC4KKyAqIFxwYXJhbSBvdXRwdXQgICBUaGUgb3V0cHV0IGJ1ZmZlci4gVGhpcyBtdXN0IGJlIGEgd3JpdGFibGUgYnVmZmVyCisgKiAgICAgICAgICAgICAgICAgb2YgbGVuZ3RoIFxjIGN0eC0+bGVuIEJ5dGVzLiBGb3IgZXhhbXBsZSwgXGMgMjU2IEJ5dGVzCisgKiAgICAgICAgICAgICAgICAgZm9yIGFuIDIwNDgtYml0IFJTQSBtb2R1bHVzLgorICoKKyAqIFxyZXR1cm4gICAgICAgICBcYyAwIG9uIHN1Y2Nlc3MuCisgKiBccmV0dXJuICAgICAgICAgQW4gXGMgTUJFRFRMU19FUlJfUlNBX1hYWCBlcnJvciBjb2RlIG9uIGZhaWx1cmUuCisgKi8KK2ludCBtYmVkdGxzX3JzYV9wa2NzMV9lbmNyeXB0KG1iZWR0bHNfcnNhX2NvbnRleHQgKmN0eCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCAoKmZfcm5nKSh2b2lkICosIHVuc2lnbmVkIGNoYXIgKiwgc2l6ZV90KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZvaWQgKnBfcm5nLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IGlsZW4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1bnNpZ25lZCBjaGFyICppbnB1dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGNoYXIgKm91dHB1dCk7CisKKy8qKgorICogXGJyaWVmICAgICAgICAgIFRoaXMgZnVuY3Rpb24gcGVyZm9ybXMgYSBQS0NTIzEgdjEuNSBlbmNyeXB0aW9uIG9wZXJhdGlvbgorICogICAgICAgICAgICAgICAgIChSU0FFUy1QS0NTMS12MV81LUVOQ1JZUFQpLgorICoKKyAqIFxwYXJhbSBjdHggICAgICBUaGUgaW5pdGlhbGl6ZWQgUlNBIGNvbnRleHQgdG8gdXNlLgorICogXHBhcmFtIGZfcm5nICAgIFRoZSBSTkcgZnVuY3Rpb24gdG8gdXNlLiBJdCBpcyBtYW5kYXRvcnkgYW5kIHVzZWQgZm9yCisgKiAgICAgICAgICAgICAgICAgcGFkZGluZyBnZW5lcmF0aW9uLgorICogXHBhcmFtIHBfcm5nICAgIFRoZSBSTkcgY29udGV4dCB0byBiZSBwYXNzZWQgdG8gXHAgZl9ybmcuIFRoaXMgbWF5CisgKiAgICAgICAgICAgICAgICAgYmUgXGMgTlVMTCBpZiBccCBmX3JuZyBkb2Vzbid0IG5lZWQgYSBjb250ZXh0IGFyZ3VtZW50LgorICogXHBhcmFtIGlsZW4gICAgIFRoZSBsZW5ndGggb2YgdGhlIHBsYWludGV4dCBpbiBCeXRlcy4KKyAqIFxwYXJhbSBpbnB1dCAgICBUaGUgaW5wdXQgZGF0YSB0byBlbmNyeXB0LiBUaGlzIG11c3QgYmUgYSByZWFkYWJsZQorICogICAgICAgICAgICAgICAgIGJ1ZmZlciBvZiBzaXplIFxwIGlsZW4gQnl0ZXMuIEl0IG1heSBiZSBcYyBOVUxMIGlmCisgKiAgICAgICAgICAgICAgICAgYGlsZW4gPT0gMGAuCisgKiBccGFyYW0gb3V0cHV0ICAgVGhlIG91dHB1dCBidWZmZXIuIFRoaXMgbXVzdCBiZSBhIHdyaXRhYmxlIGJ1ZmZlcgorICogICAgICAgICAgICAgICAgIG9mIGxlbmd0aCBcYyBjdHgtPmxlbiBCeXRlcy4gRm9yIGV4YW1wbGUsIFxjIDI1NiBCeXRlcworICogICAgICAgICAgICAgICAgIGZvciBhbiAyMDQ4LWJpdCBSU0EgbW9kdWx1cy4KKyAqCisgKiBccmV0dXJuICAgICAgICAgXGMgMCBvbiBzdWNjZXNzLgorICogXHJldHVybiAgICAgICAgIEFuIFxjIE1CRURUTFNfRVJSX1JTQV9YWFggZXJyb3IgY29kZSBvbiBmYWlsdXJlLgorICovCitpbnQgbWJlZHRsc19yc2FfcnNhZXNfcGtjczFfdjE1X2VuY3J5cHQobWJlZHRsc19yc2FfY29udGV4dCAqY3R4LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCAoKmZfcm5nKSh2b2lkICosIHVuc2lnbmVkIGNoYXIgKiwgc2l6ZV90KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2b2lkICpwX3JuZywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgaWxlbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1bnNpZ25lZCBjaGFyICppbnB1dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBjaGFyICpvdXRwdXQpOworCisvKioKKyAqIFxicmllZiAgICAgICAgICAgIFRoaXMgZnVuY3Rpb24gcGVyZm9ybXMgYSBQS0NTIzEgdjIuMSBPQUVQIGVuY3J5cHRpb24KKyAqICAgICAgICAgICAgICAgICAgIG9wZXJhdGlvbiAoUlNBRVMtT0FFUC1FTkNSWVBUKS4KKyAqCisgKiBcbm90ZSAgICAgICAgICAgICBUaGUgb3V0cHV0IGJ1ZmZlciBtdXN0IGJlIGFzIGxhcmdlIGFzIHRoZSBzaXplCisgKiAgICAgICAgICAgICAgICAgICBvZiBjdHgtPk4uIEZvciBleGFtcGxlLCAxMjggQnl0ZXMgaWYgUlNBLTEwMjQgaXMgdXNlZC4KKyAqCisgKiBccGFyYW0gY3R4ICAgICAgICBUaGUgaW5pdGlhbGl6ZWQgUlNBIGNvbnRleHQgdG8gdXNlLgorICogXHBhcmFtIGZfcm5nICAgICAgVGhlIFJORyBmdW5jdGlvbiB0byB1c2UuIFRoaXMgaXMgbmVlZGVkIGZvciBwYWRkaW5nCisgKiAgICAgICAgICAgICAgICAgICBnZW5lcmF0aW9uIGFuZCBpcyBtYW5kYXRvcnkuCisgKiBccGFyYW0gcF9ybmcgICAgICBUaGUgUk5HIGNvbnRleHQgdG8gYmUgcGFzc2VkIHRvIFxwIGZfcm5nLiBUaGlzIG1heQorICogICAgICAgICAgICAgICAgICAgYmUgXGMgTlVMTCBpZiBccCBmX3JuZyBkb2Vzbid0IG5lZWQgYSBjb250ZXh0IGFyZ3VtZW50LgorICogXHBhcmFtIGxhYmVsICAgICAgVGhlIGJ1ZmZlciBob2xkaW5nIHRoZSBjdXN0b20gbGFiZWwgdG8gdXNlLgorICogICAgICAgICAgICAgICAgICAgVGhpcyBtdXN0IGJlIGEgcmVhZGFibGUgYnVmZmVyIG9mIGxlbmd0aCBccCBsYWJlbF9sZW4KKyAqICAgICAgICAgICAgICAgICAgIEJ5dGVzLiBJdCBtYXkgYmUgXGMgTlVMTCBpZiBccCBsYWJlbF9sZW4gaXMgXGMgMC4KKyAqIFxwYXJhbSBsYWJlbF9sZW4gIFRoZSBsZW5ndGggb2YgdGhlIGxhYmVsIGluIEJ5dGVzLgorICogXHBhcmFtIGlsZW4gICAgICAgVGhlIGxlbmd0aCBvZiB0aGUgcGxhaW50ZXh0IGJ1ZmZlciBccCBpbnB1dCBpbiBCeXRlcy4KKyAqIFxwYXJhbSBpbnB1dCAgICAgIFRoZSBpbnB1dCBkYXRhIHRvIGVuY3J5cHQuIFRoaXMgbXVzdCBiZSBhIHJlYWRhYmxlCisgKiAgICAgICAgICAgICAgICAgICBidWZmZXIgb2Ygc2l6ZSBccCBpbGVuIEJ5dGVzLiBJdCBtYXkgYmUgXGMgTlVMTCBpZgorICogICAgICAgICAgICAgICAgICAgYGlsZW4gPT0gMGAuCisgKiBccGFyYW0gb3V0cHV0ICAgICBUaGUgb3V0cHV0IGJ1ZmZlci4gVGhpcyBtdXN0IGJlIGEgd3JpdGFibGUgYnVmZmVyCisgKiAgICAgICAgICAgICAgICAgICBvZiBsZW5ndGggXGMgY3R4LT5sZW4gQnl0ZXMuIEZvciBleGFtcGxlLCBcYyAyNTYgQnl0ZXMKKyAqICAgICAgICAgICAgICAgICAgIGZvciBhbiAyMDQ4LWJpdCBSU0EgbW9kdWx1cy4KKyAqCisgKiBccmV0dXJuICAgICAgICAgICBcYyAwIG9uIHN1Y2Nlc3MuCisgKiBccmV0dXJuICAgICAgICAgICBBbiBcYyBNQkVEVExTX0VSUl9SU0FfWFhYIGVycm9yIGNvZGUgb24gZmFpbHVyZS4KKyAqLworaW50IG1iZWR0bHNfcnNhX3JzYWVzX29hZXBfZW5jcnlwdChtYmVkdGxzX3JzYV9jb250ZXh0ICpjdHgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCAoKmZfcm5nKSh2b2lkICosIHVuc2lnbmVkIGNoYXIgKiwgc2l6ZV90KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdm9pZCAqcF9ybmcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgKmxhYmVsLCBzaXplX3QgbGFiZWxfbGVuLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgaWxlbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdW5zaWduZWQgY2hhciAqaW5wdXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGNoYXIgKm91dHB1dCk7CisKKy8qKgorICogXGJyaWVmICAgICAgICAgIFRoaXMgZnVuY3Rpb24gcGVyZm9ybXMgYW4gUlNBIG9wZXJhdGlvbiwgdGhlbiByZW1vdmVzIHRoZQorICogICAgICAgICAgICAgICAgIG1lc3NhZ2UgcGFkZGluZy4KKyAqCisgKiAgICAgICAgICAgICAgICAgSXQgaXMgdGhlIGdlbmVyaWMgd3JhcHBlciBmb3IgcGVyZm9ybWluZyBhIFBLQ1MjMSBkZWNyeXB0aW9uCisgKiAgICAgICAgICAgICAgICAgb3BlcmF0aW9uLgorICoKKyAqIFx3YXJuaW5nICAgICAgICBXaGVuIFxwIGN0eC0+cGFkZGluZyBpcyBzZXQgdG8gI01CRURUTFNfUlNBX1BLQ1NfVjE1LAorICogICAgICAgICAgICAgICAgIG1iZWR0bHNfcnNhX3JzYWVzX3BrY3MxX3YxNV9kZWNyeXB0KCkgaXMgY2FsbGVkLCB3aGljaCBpcyBhbgorICogICAgICAgICAgICAgICAgIGluaGVyZW50bHkgZGFuZ2Vyb3VzIGZ1bmN0aW9uIChDV0UtMjQyKS4KKyAqCisgKiBcbm90ZSAgICAgICAgICAgVGhlIG91dHB1dCBidWZmZXIgbGVuZ3RoIFxjIG91dHB1dF9tYXhfbGVuIHNob3VsZCBiZQorICogICAgICAgICAgICAgICAgIGFzIGxhcmdlIGFzIHRoZSBzaXplIFxwIGN0eC0+bGVuIG9mIFxwIGN0eC0+TiAoZm9yIGV4YW1wbGUsCisgKiAgICAgICAgICAgICAgICAgMTI4IEJ5dGVzIGlmIFJTQS0xMDI0IGlzIHVzZWQpIHRvIGJlIGFibGUgdG8gaG9sZCBhbgorICogICAgICAgICAgICAgICAgIGFyYml0cmFyeSBkZWNyeXB0ZWQgbWVzc2FnZS4gSWYgaXQgaXMgbm90IGxhcmdlIGVub3VnaCB0bworICogICAgICAgICAgICAgICAgIGhvbGQgdGhlIGRlY3J5cHRpb24gb2YgdGhlIHBhcnRpY3VsYXIgY2lwaGVydGV4dCBwcm92aWRlZCwKKyAqICAgICAgICAgICAgICAgICB0aGUgZnVuY3Rpb24gcmV0dXJucyBcYyBNQkVEVExTX0VSUl9SU0FfT1VUUFVUX1RPT19MQVJHRS4KKyAqCisgKiBccGFyYW0gY3R4ICAgICAgVGhlIGluaXRpYWxpemVkIFJTQSBjb250ZXh0IHRvIHVzZS4KKyAqIFxwYXJhbSBmX3JuZyAgICBUaGUgUk5HIGZ1bmN0aW9uLiBUaGlzIGlzIHVzZWQgZm9yIGJsaW5kaW5nIGFuZCBpcworICogICAgICAgICAgICAgICAgIG1hbmRhdG9yeTsgc2VlIG1iZWR0bHNfcnNhX3ByaXZhdGUoKSBmb3IgbW9yZS4KKyAqIFxwYXJhbSBwX3JuZyAgICBUaGUgUk5HIGNvbnRleHQgdG8gYmUgcGFzc2VkIHRvIFxwIGZfcm5nLiBUaGlzIG1heSBiZQorICogICAgICAgICAgICAgICAgIFxjIE5VTEwgaWYgXHAgZl9ybmcgZG9lc24ndCBuZWVkIGEgY29udGV4dC4KKyAqIFxwYXJhbSBvbGVuICAgICBUaGUgYWRkcmVzcyBhdCB3aGljaCB0byBzdG9yZSB0aGUgbGVuZ3RoIG9mCisgKiAgICAgICAgICAgICAgICAgdGhlIHBsYWludGV4dC4gVGhpcyBtdXN0IG5vdCBiZSBcYyBOVUxMLgorICogXHBhcmFtIGlucHV0ICAgIFRoZSBjaXBoZXJ0ZXh0IGJ1ZmZlci4gVGhpcyBtdXN0IGJlIGEgcmVhZGFibGUgYnVmZmVyCisgKiAgICAgICAgICAgICAgICAgb2YgbGVuZ3RoIFxjIGN0eC0+bGVuIEJ5dGVzLiBGb3IgZXhhbXBsZSwgXGMgMjU2IEJ5dGVzCisgKiAgICAgICAgICAgICAgICAgZm9yIGFuIDIwNDgtYml0IFJTQSBtb2R1bHVzLgorICogXHBhcmFtIG91dHB1dCAgIFRoZSBidWZmZXIgdXNlZCB0byBob2xkIHRoZSBwbGFpbnRleHQuIFRoaXMgbXVzdAorICogICAgICAgICAgICAgICAgIGJlIGEgd3JpdGFibGUgYnVmZmVyIG9mIGxlbmd0aCBccCBvdXRwdXRfbWF4X2xlbiBCeXRlcy4KKyAqIFxwYXJhbSBvdXRwdXRfbWF4X2xlbiBUaGUgbGVuZ3RoIGluIEJ5dGVzIG9mIHRoZSBvdXRwdXQgYnVmZmVyIFxwIG91dHB1dC4KKyAqCisgKiBccmV0dXJuICAgICAgICAgXGMgMCBvbiBzdWNjZXNzLgorICogXHJldHVybiAgICAgICAgIEFuIFxjIE1CRURUTFNfRVJSX1JTQV9YWFggZXJyb3IgY29kZSBvbiBmYWlsdXJlLgorICovCitpbnQgbWJlZHRsc19yc2FfcGtjczFfZGVjcnlwdChtYmVkdGxzX3JzYV9jb250ZXh0ICpjdHgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgKCpmX3JuZykodm9pZCAqLCB1bnNpZ25lZCBjaGFyICosIHNpemVfdCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2b2lkICpwX3JuZywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCAqb2xlbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgKmlucHV0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgY2hhciAqb3V0cHV0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IG91dHB1dF9tYXhfbGVuKTsKKworLyoqCisgKiBcYnJpZWYgICAgICAgICAgVGhpcyBmdW5jdGlvbiBwZXJmb3JtcyBhIFBLQ1MjMSB2MS41IGRlY3J5cHRpb24KKyAqICAgICAgICAgICAgICAgICBvcGVyYXRpb24gKFJTQUVTLVBLQ1MxLXYxXzUtREVDUllQVCkuCisgKgorICogXHdhcm5pbmcgICAgICAgIFRoaXMgaXMgYW4gaW5oZXJlbnRseSBkYW5nZXJvdXMgZnVuY3Rpb24gKENXRS0yNDIpLiBVbmxlc3MKKyAqICAgICAgICAgICAgICAgICBpdCBpcyB1c2VkIGluIGEgc2lkZSBjaGFubmVsIGZyZWUgYW5kIHNhZmUgd2F5IChlZy4KKyAqICAgICAgICAgICAgICAgICBpbXBsZW1lbnRpbmcgdGhlIFRMUyBwcm90b2NvbCBhcyBwZXIgNy40LjcuMSBvZiBSRkMgNTI0NiksCisgKiAgICAgICAgICAgICAgICAgdGhlIGNhbGxpbmcgY29kZSBpcyB2dWxuZXJhYmxlLgorICoKKyAqIFxub3RlICAgICAgICAgICBUaGUgb3V0cHV0IGJ1ZmZlciBsZW5ndGggXGMgb3V0cHV0X21heF9sZW4gc2hvdWxkIGJlCisgKiAgICAgICAgICAgICAgICAgYXMgbGFyZ2UgYXMgdGhlIHNpemUgXHAgY3R4LT5sZW4gb2YgXHAgY3R4LT5OLCBmb3IgZXhhbXBsZSwKKyAqICAgICAgICAgICAgICAgICAxMjggQnl0ZXMgaWYgUlNBLTEwMjQgaXMgdXNlZCwgdG8gYmUgYWJsZSB0byBob2xkIGFuCisgKiAgICAgICAgICAgICAgICAgYXJiaXRyYXJ5IGRlY3J5cHRlZCBtZXNzYWdlLiBJZiBpdCBpcyBub3QgbGFyZ2UgZW5vdWdoIHRvCisgKiAgICAgICAgICAgICAgICAgaG9sZCB0aGUgZGVjcnlwdGlvbiBvZiB0aGUgcGFydGljdWxhciBjaXBoZXJ0ZXh0IHByb3ZpZGVkLAorICogICAgICAgICAgICAgICAgIHRoZSBmdW5jdGlvbiByZXR1cm5zICNNQkVEVExTX0VSUl9SU0FfT1VUUFVUX1RPT19MQVJHRS4KKyAqCisgKiBccGFyYW0gY3R4ICAgICAgVGhlIGluaXRpYWxpemVkIFJTQSBjb250ZXh0IHRvIHVzZS4KKyAqIFxwYXJhbSBmX3JuZyAgICBUaGUgUk5HIGZ1bmN0aW9uLiBUaGlzIGlzIHVzZWQgZm9yIGJsaW5kaW5nIGFuZCBpcworICogICAgICAgICAgICAgICAgIG1hbmRhdG9yeTsgc2VlIG1iZWR0bHNfcnNhX3ByaXZhdGUoKSBmb3IgbW9yZS4KKyAqIFxwYXJhbSBwX3JuZyAgICBUaGUgUk5HIGNvbnRleHQgdG8gYmUgcGFzc2VkIHRvIFxwIGZfcm5nLiBUaGlzIG1heSBiZQorICogICAgICAgICAgICAgICAgIFxjIE5VTEwgaWYgXHAgZl9ybmcgZG9lc24ndCBuZWVkIGEgY29udGV4dC4KKyAqIFxwYXJhbSBvbGVuICAgICBUaGUgYWRkcmVzcyBhdCB3aGljaCB0byBzdG9yZSB0aGUgbGVuZ3RoIG9mCisgKiAgICAgICAgICAgICAgICAgdGhlIHBsYWludGV4dC4gVGhpcyBtdXN0IG5vdCBiZSBcYyBOVUxMLgorICogXHBhcmFtIGlucHV0ICAgIFRoZSBjaXBoZXJ0ZXh0IGJ1ZmZlci4gVGhpcyBtdXN0IGJlIGEgcmVhZGFibGUgYnVmZmVyCisgKiAgICAgICAgICAgICAgICAgb2YgbGVuZ3RoIFxjIGN0eC0+bGVuIEJ5dGVzLiBGb3IgZXhhbXBsZSwgXGMgMjU2IEJ5dGVzCisgKiAgICAgICAgICAgICAgICAgZm9yIGFuIDIwNDgtYml0IFJTQSBtb2R1bHVzLgorICogXHBhcmFtIG91dHB1dCAgIFRoZSBidWZmZXIgdXNlZCB0byBob2xkIHRoZSBwbGFpbnRleHQuIFRoaXMgbXVzdAorICogICAgICAgICAgICAgICAgIGJlIGEgd3JpdGFibGUgYnVmZmVyIG9mIGxlbmd0aCBccCBvdXRwdXRfbWF4X2xlbiBCeXRlcy4KKyAqIFxwYXJhbSBvdXRwdXRfbWF4X2xlbiBUaGUgbGVuZ3RoIGluIEJ5dGVzIG9mIHRoZSBvdXRwdXQgYnVmZmVyIFxwIG91dHB1dC4KKyAqCisgKiBccmV0dXJuICAgICAgICAgXGMgMCBvbiBzdWNjZXNzLgorICogXHJldHVybiAgICAgICAgIEFuIFxjIE1CRURUTFNfRVJSX1JTQV9YWFggZXJyb3IgY29kZSBvbiBmYWlsdXJlLgorICoKKyAqLworaW50IG1iZWR0bHNfcnNhX3JzYWVzX3BrY3MxX3YxNV9kZWNyeXB0KG1iZWR0bHNfcnNhX2NvbnRleHQgKmN0eCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgKCpmX3JuZykodm9pZCAqLCB1bnNpZ25lZCBjaGFyICosIHNpemVfdCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdm9pZCAqcF9ybmcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90ICpvbGVuLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgKmlucHV0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGNoYXIgKm91dHB1dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3Qgb3V0cHV0X21heF9sZW4pOworCisvKioKKyAqIFxicmllZiAgICAgICAgICAgIFRoaXMgZnVuY3Rpb24gcGVyZm9ybXMgYSBQS0NTIzEgdjIuMSBPQUVQIGRlY3J5cHRpb24KKyAqICAgICAgICAgICAgICAgICAgIG9wZXJhdGlvbiAoUlNBRVMtT0FFUC1ERUNSWVBUKS4KKyAqCisgKiBcbm90ZSAgICAgICAgICAgICBUaGUgb3V0cHV0IGJ1ZmZlciBsZW5ndGggXGMgb3V0cHV0X21heF9sZW4gc2hvdWxkIGJlCisgKiAgICAgICAgICAgICAgICAgICBhcyBsYXJnZSBhcyB0aGUgc2l6ZSBccCBjdHgtPmxlbiBvZiBccCBjdHgtPk4sIGZvcgorICogICAgICAgICAgICAgICAgICAgZXhhbXBsZSwgMTI4IEJ5dGVzIGlmIFJTQS0xMDI0IGlzIHVzZWQsIHRvIGJlIGFibGUgdG8KKyAqICAgICAgICAgICAgICAgICAgIGhvbGQgYW4gYXJiaXRyYXJ5IGRlY3J5cHRlZCBtZXNzYWdlLiBJZiBpdCBpcyBub3QKKyAqICAgICAgICAgICAgICAgICAgIGxhcmdlIGVub3VnaCB0byBob2xkIHRoZSBkZWNyeXB0aW9uIG9mIHRoZSBwYXJ0aWN1bGFyCisgKiAgICAgICAgICAgICAgICAgICBjaXBoZXJ0ZXh0IHByb3ZpZGVkLCB0aGUgZnVuY3Rpb24gcmV0dXJucworICogICAgICAgICAgICAgICAgICAgI01CRURUTFNfRVJSX1JTQV9PVVRQVVRfVE9PX0xBUkdFLgorICoKKyAqIFxwYXJhbSBjdHggICAgICAgIFRoZSBpbml0aWFsaXplZCBSU0EgY29udGV4dCB0byB1c2UuCisgKiBccGFyYW0gZl9ybmcgICAgICBUaGUgUk5HIGZ1bmN0aW9uLiBUaGlzIGlzIHVzZWQgZm9yIGJsaW5kaW5nIGFuZCBpcworICogICAgICAgICAgICAgICAgICAgbWFuZGF0b3J5LgorICogXHBhcmFtIHBfcm5nICAgICAgVGhlIFJORyBjb250ZXh0IHRvIGJlIHBhc3NlZCB0byBccCBmX3JuZy4gVGhpcyBtYXkgYmUKKyAqICAgICAgICAgICAgICAgICAgIFxjIE5VTEwgaWYgXHAgZl9ybmcgZG9lc24ndCBuZWVkIGEgY29udGV4dC4KKyAqIFxwYXJhbSBsYWJlbCAgICAgIFRoZSBidWZmZXIgaG9sZGluZyB0aGUgY3VzdG9tIGxhYmVsIHRvIHVzZS4KKyAqICAgICAgICAgICAgICAgICAgIFRoaXMgbXVzdCBiZSBhIHJlYWRhYmxlIGJ1ZmZlciBvZiBsZW5ndGggXHAgbGFiZWxfbGVuCisgKiAgICAgICAgICAgICAgICAgICBCeXRlcy4gSXQgbWF5IGJlIFxjIE5VTEwgaWYgXHAgbGFiZWxfbGVuIGlzIFxjIDAuCisgKiBccGFyYW0gbGFiZWxfbGVuICBUaGUgbGVuZ3RoIG9mIHRoZSBsYWJlbCBpbiBCeXRlcy4KKyAqIFxwYXJhbSBvbGVuICAgICAgIFRoZSBhZGRyZXNzIGF0IHdoaWNoIHRvIHN0b3JlIHRoZSBsZW5ndGggb2YKKyAqICAgICAgICAgICAgICAgICAgIHRoZSBwbGFpbnRleHQuIFRoaXMgbXVzdCBub3QgYmUgXGMgTlVMTC4KKyAqIFxwYXJhbSBpbnB1dCAgICAgIFRoZSBjaXBoZXJ0ZXh0IGJ1ZmZlci4gVGhpcyBtdXN0IGJlIGEgcmVhZGFibGUgYnVmZmVyCisgKiAgICAgICAgICAgICAgICAgICBvZiBsZW5ndGggXGMgY3R4LT5sZW4gQnl0ZXMuIEZvciBleGFtcGxlLCBcYyAyNTYgQnl0ZXMKKyAqICAgICAgICAgICAgICAgICAgIGZvciBhbiAyMDQ4LWJpdCBSU0EgbW9kdWx1cy4KKyAqIFxwYXJhbSBvdXRwdXQgICAgIFRoZSBidWZmZXIgdXNlZCB0byBob2xkIHRoZSBwbGFpbnRleHQuIFRoaXMgbXVzdAorICogICAgICAgICAgICAgICAgICAgYmUgYSB3cml0YWJsZSBidWZmZXIgb2YgbGVuZ3RoIFxwIG91dHB1dF9tYXhfbGVuIEJ5dGVzLgorICogXHBhcmFtIG91dHB1dF9tYXhfbGVuIFRoZSBsZW5ndGggaW4gQnl0ZXMgb2YgdGhlIG91dHB1dCBidWZmZXIgXHAgb3V0cHV0LgorICoKKyAqIFxyZXR1cm4gICAgICAgICBcYyAwIG9uIHN1Y2Nlc3MuCisgKiBccmV0dXJuICAgICAgICAgQW4gXGMgTUJFRFRMU19FUlJfUlNBX1hYWCBlcnJvciBjb2RlIG9uIGZhaWx1cmUuCisgKi8KK2ludCBtYmVkdGxzX3JzYV9yc2Flc19vYWVwX2RlY3J5cHQobWJlZHRsc19yc2FfY29udGV4dCAqY3R4LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgKCpmX3JuZykodm9pZCAqLCB1bnNpZ25lZCBjaGFyICosIHNpemVfdCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZvaWQgKnBfcm5nLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1bnNpZ25lZCBjaGFyICpsYWJlbCwgc2l6ZV90IGxhYmVsX2xlbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90ICpvbGVuLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1bnNpZ25lZCBjaGFyICppbnB1dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgY2hhciAqb3V0cHV0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3Qgb3V0cHV0X21heF9sZW4pOworCisvKioKKyAqIFxicmllZiAgICAgICAgICBUaGlzIGZ1bmN0aW9uIHBlcmZvcm1zIGEgcHJpdmF0ZSBSU0Egb3BlcmF0aW9uIHRvIHNpZ24KKyAqICAgICAgICAgICAgICAgICBhIG1lc3NhZ2UgZGlnZXN0IHVzaW5nIFBLQ1MjMS4KKyAqCisgKiAgICAgICAgICAgICAgICAgSXQgaXMgdGhlIGdlbmVyaWMgd3JhcHBlciBmb3IgcGVyZm9ybWluZyBhIFBLQ1MjMQorICogICAgICAgICAgICAgICAgIHNpZ25hdHVyZS4KKyAqCisgKiBcbm90ZSAgICAgICAgICAgVGhlIFxwIHNpZyBidWZmZXIgbXVzdCBiZSBhcyBsYXJnZSBhcyB0aGUgc2l6ZQorICogICAgICAgICAgICAgICAgIG9mIFxwIGN0eC0+Ti4gRm9yIGV4YW1wbGUsIDEyOCBCeXRlcyBpZiBSU0EtMTAyNCBpcyB1c2VkLgorICoKKyAqIFxub3RlICAgICAgICAgICBGb3IgUEtDUyMxIHYyLjEgZW5jb2RpbmcsIHNlZSBjb21tZW50cyBvbgorICogICAgICAgICAgICAgICAgIG1iZWR0bHNfcnNhX3JzYXNzYV9wc3Nfc2lnbigpIGZvciBkZXRhaWxzIG9uCisgKiAgICAgICAgICAgICAgICAgXHAgbWRfYWxnIGFuZCBccCBoYXNoX2lkLgorICoKKyAqIFxwYXJhbSBjdHggICAgICBUaGUgaW5pdGlhbGl6ZWQgUlNBIGNvbnRleHQgdG8gdXNlLgorICogXHBhcmFtIGZfcm5nICAgIFRoZSBSTkcgZnVuY3Rpb24gdG8gdXNlLiBUaGlzIGlzIG1hbmRhdG9yeSBhbmQKKyAqICAgICAgICAgICAgICAgICBtdXN0IG5vdCBiZSBcYyBOVUxMLgorICogXHBhcmFtIHBfcm5nICAgIFRoZSBSTkcgY29udGV4dCB0byBiZSBwYXNzZWQgdG8gXHAgZl9ybmcuIFRoaXMgbWF5IGJlIFxjIE5VTEwKKyAqICAgICAgICAgICAgICAgICBpZiBccCBmX3JuZyBkb2Vzbid0IG5lZWQgYSBjb250ZXh0IGFyZ3VtZW50LgorICogXHBhcmFtIG1kX2FsZyAgIFRoZSBtZXNzYWdlLWRpZ2VzdCBhbGdvcml0aG0gdXNlZCB0byBoYXNoIHRoZSBvcmlnaW5hbCBkYXRhLgorICogICAgICAgICAgICAgICAgIFVzZSAjTUJFRFRMU19NRF9OT05FIGZvciBzaWduaW5nIHJhdyBkYXRhLgorICogXHBhcmFtIGhhc2hsZW4gIFRoZSBsZW5ndGggb2YgdGhlIG1lc3NhZ2UgZGlnZXN0IG9yIHJhdyBkYXRhIGluIEJ5dGVzLgorICogICAgICAgICAgICAgICAgIElmIFxwIG1kX2FsZyBpcyBub3QgI01CRURUTFNfTURfTk9ORSwgdGhpcyBtdXN0IG1hdGNoIHRoZQorICogICAgICAgICAgICAgICAgIG91dHB1dCBsZW5ndGggb2YgdGhlIGNvcnJlc3BvbmRpbmcgaGFzaCBhbGdvcml0aG0uCisgKiBccGFyYW0gaGFzaCAgICAgVGhlIGJ1ZmZlciBob2xkaW5nIHRoZSBtZXNzYWdlIGRpZ2VzdCBvciByYXcgZGF0YS4KKyAqICAgICAgICAgICAgICAgICBUaGlzIG11c3QgYmUgYSByZWFkYWJsZSBidWZmZXIgb2YgYXQgbGVhc3QgXHAgaGFzaGxlbiBCeXRlcy4KKyAqIFxwYXJhbSBzaWcgICAgICBUaGUgYnVmZmVyIHRvIGhvbGQgdGhlIHNpZ25hdHVyZS4gVGhpcyBtdXN0IGJlIGEgd3JpdGFibGUKKyAqICAgICAgICAgICAgICAgICBidWZmZXIgb2YgbGVuZ3RoIFxjIGN0eC0+bGVuIEJ5dGVzLiBGb3IgZXhhbXBsZSwgXGMgMjU2IEJ5dGVzCisgKiAgICAgICAgICAgICAgICAgZm9yIGFuIDIwNDgtYml0IFJTQSBtb2R1bHVzLiBBIGJ1ZmZlciBsZW5ndGggb2YKKyAqICAgICAgICAgICAgICAgICAjTUJFRFRMU19NUElfTUFYX1NJWkUgaXMgYWx3YXlzIHNhZmUuCisgKgorICogXHJldHVybiAgICAgICAgIFxjIDAgaWYgdGhlIHNpZ25pbmcgb3BlcmF0aW9uIHdhcyBzdWNjZXNzZnVsLgorICogXHJldHVybiAgICAgICAgIEFuIFxjIE1CRURUTFNfRVJSX1JTQV9YWFggZXJyb3IgY29kZSBvbiBmYWlsdXJlLgorICovCitpbnQgbWJlZHRsc19yc2FfcGtjczFfc2lnbihtYmVkdGxzX3JzYV9jb250ZXh0ICpjdHgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgKCpmX3JuZykodm9pZCAqLCB1bnNpZ25lZCBjaGFyICosIHNpemVfdCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICB2b2lkICpwX3JuZywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIG1iZWR0bHNfbWRfdHlwZV90IG1kX2FsZywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCBoYXNobGVuLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdW5zaWduZWQgY2hhciAqaGFzaCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGNoYXIgKnNpZyk7CisKKy8qKgorICogXGJyaWVmICAgICAgICAgIFRoaXMgZnVuY3Rpb24gcGVyZm9ybXMgYSBQS0NTIzEgdjEuNSBzaWduYXR1cmUKKyAqICAgICAgICAgICAgICAgICBvcGVyYXRpb24gKFJTQVNTQS1QS0NTMS12MV81LVNJR04pLgorICoKKyAqIFxwYXJhbSBjdHggICAgICBUaGUgaW5pdGlhbGl6ZWQgUlNBIGNvbnRleHQgdG8gdXNlLgorICogXHBhcmFtIGZfcm5nICAgIFRoZSBSTkcgZnVuY3Rpb24uIFRoaXMgaXMgdXNlZCBmb3IgYmxpbmRpbmcgYW5kIGlzCisgKiAgICAgICAgICAgICAgICAgbWFuZGF0b3J5OyBzZWUgbWJlZHRsc19yc2FfcHJpdmF0ZSgpIGZvciBtb3JlLgorICogXHBhcmFtIHBfcm5nICAgIFRoZSBSTkcgY29udGV4dCB0byBiZSBwYXNzZWQgdG8gXHAgZl9ybmcuIFRoaXMgbWF5IGJlIFxjIE5VTEwKKyAqICAgICAgICAgICAgICAgICBpZiBccCBmX3JuZyBkb2Vzbid0IG5lZWQgYSBjb250ZXh0IGFyZ3VtZW50LgorICogXHBhcmFtIG1kX2FsZyAgIFRoZSBtZXNzYWdlLWRpZ2VzdCBhbGdvcml0aG0gdXNlZCB0byBoYXNoIHRoZSBvcmlnaW5hbCBkYXRhLgorICogICAgICAgICAgICAgICAgIFVzZSAjTUJFRFRMU19NRF9OT05FIGZvciBzaWduaW5nIHJhdyBkYXRhLgorICogXHBhcmFtIGhhc2hsZW4gIFRoZSBsZW5ndGggb2YgdGhlIG1lc3NhZ2UgZGlnZXN0IG9yIHJhdyBkYXRhIGluIEJ5dGVzLgorICogICAgICAgICAgICAgICAgIElmIFxwIG1kX2FsZyBpcyBub3QgI01CRURUTFNfTURfTk9ORSwgdGhpcyBtdXN0IG1hdGNoIHRoZQorICogICAgICAgICAgICAgICAgIG91dHB1dCBsZW5ndGggb2YgdGhlIGNvcnJlc3BvbmRpbmcgaGFzaCBhbGdvcml0aG0uCisgKiBccGFyYW0gaGFzaCAgICAgVGhlIGJ1ZmZlciBob2xkaW5nIHRoZSBtZXNzYWdlIGRpZ2VzdCBvciByYXcgZGF0YS4KKyAqICAgICAgICAgICAgICAgICBUaGlzIG11c3QgYmUgYSByZWFkYWJsZSBidWZmZXIgb2YgYXQgbGVhc3QgXHAgaGFzaGxlbiBCeXRlcy4KKyAqIFxwYXJhbSBzaWcgICAgICBUaGUgYnVmZmVyIHRvIGhvbGQgdGhlIHNpZ25hdHVyZS4gVGhpcyBtdXN0IGJlIGEgd3JpdGFibGUKKyAqICAgICAgICAgICAgICAgICBidWZmZXIgb2YgbGVuZ3RoIFxjIGN0eC0+bGVuIEJ5dGVzLiBGb3IgZXhhbXBsZSwgXGMgMjU2IEJ5dGVzCisgKiAgICAgICAgICAgICAgICAgZm9yIGFuIDIwNDgtYml0IFJTQSBtb2R1bHVzLiBBIGJ1ZmZlciBsZW5ndGggb2YKKyAqICAgICAgICAgICAgICAgICAjTUJFRFRMU19NUElfTUFYX1NJWkUgaXMgYWx3YXlzIHNhZmUuCisgKgorICogXHJldHVybiAgICAgICAgIFxjIDAgaWYgdGhlIHNpZ25pbmcgb3BlcmF0aW9uIHdhcyBzdWNjZXNzZnVsLgorICogXHJldHVybiAgICAgICAgIEFuIFxjIE1CRURUTFNfRVJSX1JTQV9YWFggZXJyb3IgY29kZSBvbiBmYWlsdXJlLgorICovCitpbnQgbWJlZHRsc19yc2FfcnNhc3NhX3BrY3MxX3YxNV9zaWduKG1iZWR0bHNfcnNhX2NvbnRleHQgKmN0eCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50ICgqZl9ybmcpKHZvaWQgKiwgdW5zaWduZWQgY2hhciAqLCBzaXplX3QpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2b2lkICpwX3JuZywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWJlZHRsc19tZF90eXBlX3QgbWRfYWxnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgaGFzaGxlbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdW5zaWduZWQgY2hhciAqaGFzaCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgY2hhciAqc2lnKTsKKworI2lmIGRlZmluZWQoTUJFRFRMU19QS0NTMV9WMjEpCisvKioKKyAqIFxicmllZiAgICAgICAgICBUaGlzIGZ1bmN0aW9uIHBlcmZvcm1zIGEgUEtDUyMxIHYyLjEgUFNTIHNpZ25hdHVyZQorICogICAgICAgICAgICAgICAgIG9wZXJhdGlvbiAoUlNBU1NBLVBTUy1TSUdOKS4KKyAqCisgKiBcbm90ZSAgICAgICAgICAgVGhlIFxjIGhhc2hfaWQgc2V0IGluIFxwIGN0eCBieSBjYWxsaW5nCisgKiAgICAgICAgICAgICAgICAgbWJlZHRsc19yc2Ffc2V0X3BhZGRpbmcoKSBzZWxlY3RzIHRoZSBoYXNoIHVzZWQgZm9yIHRoZQorICogICAgICAgICAgICAgICAgIGVuY29kaW5nIG9wZXJhdGlvbiBhbmQgZm9yIHRoZSBtYXNrIGdlbmVyYXRpb24gZnVuY3Rpb24KKyAqICAgICAgICAgICAgICAgICAoTUdGMSkuIEZvciBtb3JlIGRldGFpbHMgb24gdGhlIGVuY29kaW5nIG9wZXJhdGlvbiBhbmQgdGhlCisgKiAgICAgICAgICAgICAgICAgbWFzayBnZW5lcmF0aW9uIGZ1bmN0aW9uLCBjb25zdWx0IDxlbT5SRkMtMzQ0NzogUHVibGljLUtleQorICogICAgICAgICAgICAgICAgIENyeXB0b2dyYXBoeSBTdGFuZGFyZHMgKFBLQ1MpICMxIHYyLjE6IFJTQSBDcnlwdG9ncmFwaHkKKyAqICAgICAgICAgICAgICAgICBTcGVjaWZpY2F0aW9uczwvZW0+LgorICoKKyAqIFxub3RlICAgICAgICAgICBUaGlzIGZ1bmN0aW9uIGVuZm9yY2VzIHRoYXQgdGhlIHByb3ZpZGVkIHNhbHQgbGVuZ3RoIGNvbXBsaWVzCisgKiAgICAgICAgICAgICAgICAgd2l0aCBGSVBTIDE4Ni00IMKnNS41IChlKSBhbmQgUkZDIDgwMTcgKFBLQ1MjMSB2Mi4yKSDCpzkuMS4xCisgKiAgICAgICAgICAgICAgICAgc3RlcCAzLiBUaGUgY29uc3RyYWludCBpcyB0aGF0IHRoZSBoYXNoIGxlbmd0aCBwbHVzIHRoZSBzYWx0CisgKiAgICAgICAgICAgICAgICAgbGVuZ3RoIHBsdXMgMiBieXRlcyBtdXN0IGJlIGF0IG1vc3QgdGhlIGtleSBsZW5ndGguIElmIHRoaXMKKyAqICAgICAgICAgICAgICAgICBjb25zdHJhaW50IGlzIG5vdCBtZXQsIHRoaXMgZnVuY3Rpb24gcmV0dXJucworICogICAgICAgICAgICAgICAgICNNQkVEVExTX0VSUl9SU0FfQkFEX0lOUFVUX0RBVEEuCisgKgorICogXHBhcmFtIGN0eCAgICAgIFRoZSBpbml0aWFsaXplZCBSU0EgY29udGV4dCB0byB1c2UuCisgKiBccGFyYW0gZl9ybmcgICAgVGhlIFJORyBmdW5jdGlvbi4gSXQgaXMgbWFuZGF0b3J5IGFuZCBtdXN0IG5vdCBiZSBcYyBOVUxMLgorICogXHBhcmFtIHBfcm5nICAgIFRoZSBSTkcgY29udGV4dCB0byBiZSBwYXNzZWQgdG8gXHAgZl9ybmcuIFRoaXMgbWF5IGJlIFxjIE5VTEwKKyAqICAgICAgICAgICAgICAgICBpZiBccCBmX3JuZyBkb2Vzbid0IG5lZWQgYSBjb250ZXh0IGFyZ3VtZW50LgorICogXHBhcmFtIG1kX2FsZyAgIFRoZSBtZXNzYWdlLWRpZ2VzdCBhbGdvcml0aG0gdXNlZCB0byBoYXNoIHRoZSBvcmlnaW5hbCBkYXRhLgorICogICAgICAgICAgICAgICAgIFVzZSAjTUJFRFRMU19NRF9OT05FIGZvciBzaWduaW5nIHJhdyBkYXRhLgorICogXHBhcmFtIGhhc2hsZW4gIFRoZSBsZW5ndGggb2YgdGhlIG1lc3NhZ2UgZGlnZXN0IG9yIHJhdyBkYXRhIGluIEJ5dGVzLgorICogICAgICAgICAgICAgICAgIElmIFxwIG1kX2FsZyBpcyBub3QgI01CRURUTFNfTURfTk9ORSwgdGhpcyBtdXN0IG1hdGNoIHRoZQorICogICAgICAgICAgICAgICAgIG91dHB1dCBsZW5ndGggb2YgdGhlIGNvcnJlc3BvbmRpbmcgaGFzaCBhbGdvcml0aG0uCisgKiBccGFyYW0gaGFzaCAgICAgVGhlIGJ1ZmZlciBob2xkaW5nIHRoZSBtZXNzYWdlIGRpZ2VzdCBvciByYXcgZGF0YS4KKyAqICAgICAgICAgICAgICAgICBUaGlzIG11c3QgYmUgYSByZWFkYWJsZSBidWZmZXIgb2YgYXQgbGVhc3QgXHAgaGFzaGxlbiBCeXRlcy4KKyAqIFxwYXJhbSBzYWx0bGVuICBUaGUgbGVuZ3RoIG9mIHRoZSBzYWx0IHRoYXQgc2hvdWxkIGJlIHVzZWQuCisgKiAgICAgICAgICAgICAgICAgSWYgcGFzc2VkICNNQkVEVExTX1JTQV9TQUxUX0xFTl9BTlksIHRoZSBmdW5jdGlvbiB3aWxsIHVzZQorICogICAgICAgICAgICAgICAgIHRoZSBsYXJnZXN0IHBvc3NpYmxlIHNhbHQgbGVuZ3RoIHVwIHRvIHRoZSBoYXNoIGxlbmd0aCwKKyAqICAgICAgICAgICAgICAgICB3aGljaCBpcyB0aGUgbGFyZ2VzdCBwZXJtaXR0ZWQgYnkgc29tZSBzdGFuZGFyZHMgaW5jbHVkaW5nCisgKiAgICAgICAgICAgICAgICAgRklQUyAxODYtNCDCpzUuNS4KKyAqIFxwYXJhbSBzaWcgICAgICBUaGUgYnVmZmVyIHRvIGhvbGQgdGhlIHNpZ25hdHVyZS4gVGhpcyBtdXN0IGJlIGEgd3JpdGFibGUKKyAqICAgICAgICAgICAgICAgICBidWZmZXIgb2YgbGVuZ3RoIFxjIGN0eC0+bGVuIEJ5dGVzLiBGb3IgZXhhbXBsZSwgXGMgMjU2IEJ5dGVzCisgKiAgICAgICAgICAgICAgICAgZm9yIGFuIDIwNDgtYml0IFJTQSBtb2R1bHVzLiBBIGJ1ZmZlciBsZW5ndGggb2YKKyAqICAgICAgICAgICAgICAgICAjTUJFRFRMU19NUElfTUFYX1NJWkUgaXMgYWx3YXlzIHNhZmUuCisgKgorICogXHJldHVybiAgICAgICAgIFxjIDAgaWYgdGhlIHNpZ25pbmcgb3BlcmF0aW9uIHdhcyBzdWNjZXNzZnVsLgorICogXHJldHVybiAgICAgICAgIEFuIFxjIE1CRURUTFNfRVJSX1JTQV9YWFggZXJyb3IgY29kZSBvbiBmYWlsdXJlLgorICovCitpbnQgbWJlZHRsc19yc2FfcnNhc3NhX3Bzc19zaWduX2V4dChtYmVkdGxzX3JzYV9jb250ZXh0ICpjdHgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgKCpmX3JuZykodm9pZCAqLCB1bnNpZ25lZCBjaGFyICosIHNpemVfdCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2b2lkICpwX3JuZywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1iZWR0bHNfbWRfdHlwZV90IG1kX2FsZywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCBoYXNobGVuLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdW5zaWduZWQgY2hhciAqaGFzaCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBzYWx0bGVuLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgY2hhciAqc2lnKTsKKworLyoqCisgKiBcYnJpZWYgICAgICAgICAgVGhpcyBmdW5jdGlvbiBwZXJmb3JtcyBhIFBLQ1MjMSB2Mi4xIFBTUyBzaWduYXR1cmUKKyAqICAgICAgICAgICAgICAgICBvcGVyYXRpb24gKFJTQVNTQS1QU1MtU0lHTikuCisgKgorICogXG5vdGUgICAgICAgICAgIFRoZSBcYyBoYXNoX2lkIHNldCBpbiBccCBjdHggYnkgY2FsbGluZworICogICAgICAgICAgICAgICAgIG1iZWR0bHNfcnNhX3NldF9wYWRkaW5nKCkgc2VsZWN0cyB0aGUgaGFzaCB1c2VkIGZvciB0aGUKKyAqICAgICAgICAgICAgICAgICBlbmNvZGluZyBvcGVyYXRpb24gYW5kIGZvciB0aGUgbWFzayBnZW5lcmF0aW9uIGZ1bmN0aW9uCisgKiAgICAgICAgICAgICAgICAgKE1HRjEpLiBGb3IgbW9yZSBkZXRhaWxzIG9uIHRoZSBlbmNvZGluZyBvcGVyYXRpb24gYW5kIHRoZQorICogICAgICAgICAgICAgICAgIG1hc2sgZ2VuZXJhdGlvbiBmdW5jdGlvbiwgY29uc3VsdCA8ZW0+UkZDLTM0NDc6IFB1YmxpYy1LZXkKKyAqICAgICAgICAgICAgICAgICBDcnlwdG9ncmFwaHkgU3RhbmRhcmRzIChQS0NTKSAjMSB2Mi4xOiBSU0EgQ3J5cHRvZ3JhcGh5CisgKiAgICAgICAgICAgICAgICAgU3BlY2lmaWNhdGlvbnM8L2VtPi4KKyAqCisgKiBcbm90ZSAgICAgICAgICAgVGhpcyBmdW5jdGlvbiBhbHdheXMgdXNlcyB0aGUgbWF4aW11bSBwb3NzaWJsZSBzYWx0IHNpemUsCisgKiAgICAgICAgICAgICAgICAgdXAgdG8gdGhlIGxlbmd0aCBvZiB0aGUgcGF5bG9hZCBoYXNoLiBUaGlzIGNob2ljZSBvZiBzYWx0CisgKiAgICAgICAgICAgICAgICAgc2l6ZSBjb21wbGllcyB3aXRoIEZJUFMgMTg2LTQgwqc1LjUgKGUpIGFuZCBSRkMgODAxNyAoUEtDUyMxCisgKiAgICAgICAgICAgICAgICAgdjIuMikgwqc5LjEuMSBzdGVwIDMuIEZ1cnRoZXJtb3JlIHRoaXMgZnVuY3Rpb24gZW5mb3JjZXMgYQorICogICAgICAgICAgICAgICAgIG1pbmltdW0gc2FsdCBzaXplIHdoaWNoIGlzIHRoZSBoYXNoIHNpemUgbWludXMgMiBieXRlcy4gSWYKKyAqICAgICAgICAgICAgICAgICB0aGlzIG1pbmltdW0gc2l6ZSBpcyB0b28gbGFyZ2UgZ2l2ZW4gdGhlIGtleSBzaXplICh0aGUgc2FsdAorICogICAgICAgICAgICAgICAgIHNpemUsIHBsdXMgdGhlIGhhc2ggc2l6ZSwgcGx1cyAyIGJ5dGVzIG11c3QgYmUgbm8gbW9yZSB0aGFuCisgKiAgICAgICAgICAgICAgICAgdGhlIGtleSBzaXplIGluIGJ5dGVzKSwgdGhpcyBmdW5jdGlvbiByZXR1cm5zCisgKiAgICAgICAgICAgICAgICAgI01CRURUTFNfRVJSX1JTQV9CQURfSU5QVVRfREFUQS4KKyAqCisgKiBccGFyYW0gY3R4ICAgICAgVGhlIGluaXRpYWxpemVkIFJTQSBjb250ZXh0IHRvIHVzZS4KKyAqIFxwYXJhbSBmX3JuZyAgICBUaGUgUk5HIGZ1bmN0aW9uLiBJdCBpcyBtYW5kYXRvcnkgYW5kIG11c3Qgbm90IGJlIFxjIE5VTEwuCisgKiBccGFyYW0gcF9ybmcgICAgVGhlIFJORyBjb250ZXh0IHRvIGJlIHBhc3NlZCB0byBccCBmX3JuZy4gVGhpcyBtYXkgYmUgXGMgTlVMTAorICogICAgICAgICAgICAgICAgIGlmIFxwIGZfcm5nIGRvZXNuJ3QgbmVlZCBhIGNvbnRleHQgYXJndW1lbnQuCisgKiBccGFyYW0gbWRfYWxnICAgVGhlIG1lc3NhZ2UtZGlnZXN0IGFsZ29yaXRobSB1c2VkIHRvIGhhc2ggdGhlIG9yaWdpbmFsIGRhdGEuCisgKiAgICAgICAgICAgICAgICAgVXNlICNNQkVEVExTX01EX05PTkUgZm9yIHNpZ25pbmcgcmF3IGRhdGEuCisgKiBccGFyYW0gaGFzaGxlbiAgVGhlIGxlbmd0aCBvZiB0aGUgbWVzc2FnZSBkaWdlc3Qgb3IgcmF3IGRhdGEgaW4gQnl0ZXMuCisgKiAgICAgICAgICAgICAgICAgSWYgXHAgbWRfYWxnIGlzIG5vdCAjTUJFRFRMU19NRF9OT05FLCB0aGlzIG11c3QgbWF0Y2ggdGhlCisgKiAgICAgICAgICAgICAgICAgb3V0cHV0IGxlbmd0aCBvZiB0aGUgY29ycmVzcG9uZGluZyBoYXNoIGFsZ29yaXRobS4KKyAqIFxwYXJhbSBoYXNoICAgICBUaGUgYnVmZmVyIGhvbGRpbmcgdGhlIG1lc3NhZ2UgZGlnZXN0IG9yIHJhdyBkYXRhLgorICogICAgICAgICAgICAgICAgIFRoaXMgbXVzdCBiZSBhIHJlYWRhYmxlIGJ1ZmZlciBvZiBhdCBsZWFzdCBccCBoYXNobGVuIEJ5dGVzLgorICogXHBhcmFtIHNpZyAgICAgIFRoZSBidWZmZXIgdG8gaG9sZCB0aGUgc2lnbmF0dXJlLiBUaGlzIG11c3QgYmUgYSB3cml0YWJsZQorICogICAgICAgICAgICAgICAgIGJ1ZmZlciBvZiBsZW5ndGggXGMgY3R4LT5sZW4gQnl0ZXMuIEZvciBleGFtcGxlLCBcYyAyNTYgQnl0ZXMKKyAqICAgICAgICAgICAgICAgICBmb3IgYW4gMjA0OC1iaXQgUlNBIG1vZHVsdXMuIEEgYnVmZmVyIGxlbmd0aCBvZgorICogICAgICAgICAgICAgICAgICNNQkVEVExTX01QSV9NQVhfU0laRSBpcyBhbHdheXMgc2FmZS4KKyAqCisgKiBccmV0dXJuICAgICAgICAgXGMgMCBpZiB0aGUgc2lnbmluZyBvcGVyYXRpb24gd2FzIHN1Y2Nlc3NmdWwuCisgKiBccmV0dXJuICAgICAgICAgQW4gXGMgTUJFRFRMU19FUlJfUlNBX1hYWCBlcnJvciBjb2RlIG9uIGZhaWx1cmUuCisgKi8KK2ludCBtYmVkdGxzX3JzYV9yc2Fzc2FfcHNzX3NpZ24obWJlZHRsc19yc2FfY29udGV4dCAqY3R4LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgKCpmX3JuZykodm9pZCAqLCB1bnNpZ25lZCBjaGFyICosIHNpemVfdCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZvaWQgKnBfcm5nLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYmVkdGxzX21kX3R5cGVfdCBtZF9hbGcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCBoYXNobGVuLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1bnNpZ25lZCBjaGFyICpoYXNoLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBjaGFyICpzaWcpOworI2VuZGlmIC8qIE1CRURUTFNfUEtDUzFfVjIxICovCisKKy8qKgorICogXGJyaWVmICAgICAgICAgIFRoaXMgZnVuY3Rpb24gcGVyZm9ybXMgYSBwdWJsaWMgUlNBIG9wZXJhdGlvbiBhbmQgY2hlY2tzCisgKiAgICAgICAgICAgICAgICAgdGhlIG1lc3NhZ2UgZGlnZXN0LgorICoKKyAqICAgICAgICAgICAgICAgICBUaGlzIGlzIHRoZSBnZW5lcmljIHdyYXBwZXIgZm9yIHBlcmZvcm1pbmcgYSBQS0NTIzEKKyAqICAgICAgICAgICAgICAgICB2ZXJpZmljYXRpb24uCisgKgorICogXG5vdGUgICAgICAgICAgIEZvciBQS0NTIzEgdjIuMSBlbmNvZGluZywgc2VlIGNvbW1lbnRzIG9uCisgKiAgICAgICAgICAgICAgICAgbWJlZHRsc19yc2FfcnNhc3NhX3Bzc192ZXJpZnkoKSBhYm91dCBcYyBtZF9hbGcgYW5kCisgKiAgICAgICAgICAgICAgICAgXGMgaGFzaF9pZC4KKyAqCisgKiBccGFyYW0gY3R4ICAgICAgVGhlIGluaXRpYWxpemVkIFJTQSBwdWJsaWMga2V5IGNvbnRleHQgdG8gdXNlLgorICogXHBhcmFtIG1kX2FsZyAgIFRoZSBtZXNzYWdlLWRpZ2VzdCBhbGdvcml0aG0gdXNlZCB0byBoYXNoIHRoZSBvcmlnaW5hbCBkYXRhLgorICogICAgICAgICAgICAgICAgIFVzZSAjTUJFRFRMU19NRF9OT05FIGZvciBzaWduaW5nIHJhdyBkYXRhLgorICogXHBhcmFtIGhhc2hsZW4gIFRoZSBsZW5ndGggb2YgdGhlIG1lc3NhZ2UgZGlnZXN0IG9yIHJhdyBkYXRhIGluIEJ5dGVzLgorICogICAgICAgICAgICAgICAgIElmIFxwIG1kX2FsZyBpcyBub3QgI01CRURUTFNfTURfTk9ORSwgdGhpcyBtdXN0IG1hdGNoIHRoZQorICogICAgICAgICAgICAgICAgIG91dHB1dCBsZW5ndGggb2YgdGhlIGNvcnJlc3BvbmRpbmcgaGFzaCBhbGdvcml0aG0uCisgKiBccGFyYW0gaGFzaCAgICAgVGhlIGJ1ZmZlciBob2xkaW5nIHRoZSBtZXNzYWdlIGRpZ2VzdCBvciByYXcgZGF0YS4KKyAqICAgICAgICAgICAgICAgICBUaGlzIG11c3QgYmUgYSByZWFkYWJsZSBidWZmZXIgb2YgYXQgbGVhc3QgXHAgaGFzaGxlbiBCeXRlcy4KKyAqIFxwYXJhbSBzaWcgICAgICBUaGUgYnVmZmVyIGhvbGRpbmcgdGhlIHNpZ25hdHVyZS4gVGhpcyBtdXN0IGJlIGEgcmVhZGFibGUKKyAqICAgICAgICAgICAgICAgICBidWZmZXIgb2YgbGVuZ3RoIFxjIGN0eC0+bGVuIEJ5dGVzLiBGb3IgZXhhbXBsZSwgXGMgMjU2IEJ5dGVzCisgKiAgICAgICAgICAgICAgICAgZm9yIGFuIDIwNDgtYml0IFJTQSBtb2R1bHVzLgorICoKKyAqIFxyZXR1cm4gICAgICAgICBcYyAwIGlmIHRoZSB2ZXJpZnkgb3BlcmF0aW9uIHdhcyBzdWNjZXNzZnVsLgorICogXHJldHVybiAgICAgICAgIEFuIFxjIE1CRURUTFNfRVJSX1JTQV9YWFggZXJyb3IgY29kZSBvbiBmYWlsdXJlLgorICovCitpbnQgbWJlZHRsc19yc2FfcGtjczFfdmVyaWZ5KG1iZWR0bHNfcnNhX2NvbnRleHQgKmN0eCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWJlZHRsc19tZF90eXBlX3QgbWRfYWxnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgaGFzaGxlbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdW5zaWduZWQgY2hhciAqaGFzaCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdW5zaWduZWQgY2hhciAqc2lnKTsKKworLyoqCisgKiBcYnJpZWYgICAgICAgICAgVGhpcyBmdW5jdGlvbiBwZXJmb3JtcyBhIFBLQ1MjMSB2MS41IHZlcmlmaWNhdGlvbgorICogICAgICAgICAgICAgICAgIG9wZXJhdGlvbiAoUlNBU1NBLVBLQ1MxLXYxXzUtVkVSSUZZKS4KKyAqCisgKiBccGFyYW0gY3R4ICAgICAgVGhlIGluaXRpYWxpemVkIFJTQSBwdWJsaWMga2V5IGNvbnRleHQgdG8gdXNlLgorICogXHBhcmFtIG1kX2FsZyAgIFRoZSBtZXNzYWdlLWRpZ2VzdCBhbGdvcml0aG0gdXNlZCB0byBoYXNoIHRoZSBvcmlnaW5hbCBkYXRhLgorICogICAgICAgICAgICAgICAgIFVzZSAjTUJFRFRMU19NRF9OT05FIGZvciBzaWduaW5nIHJhdyBkYXRhLgorICogXHBhcmFtIGhhc2hsZW4gIFRoZSBsZW5ndGggb2YgdGhlIG1lc3NhZ2UgZGlnZXN0IG9yIHJhdyBkYXRhIGluIEJ5dGVzLgorICogICAgICAgICAgICAgICAgIElmIFxwIG1kX2FsZyBpcyBub3QgI01CRURUTFNfTURfTk9ORSwgdGhpcyBtdXN0IG1hdGNoIHRoZQorICogICAgICAgICAgICAgICAgIG91dHB1dCBsZW5ndGggb2YgdGhlIGNvcnJlc3BvbmRpbmcgaGFzaCBhbGdvcml0aG0uCisgKiBccGFyYW0gaGFzaCAgICAgVGhlIGJ1ZmZlciBob2xkaW5nIHRoZSBtZXNzYWdlIGRpZ2VzdCBvciByYXcgZGF0YS4KKyAqICAgICAgICAgICAgICAgICBUaGlzIG11c3QgYmUgYSByZWFkYWJsZSBidWZmZXIgb2YgYXQgbGVhc3QgXHAgaGFzaGxlbiBCeXRlcy4KKyAqIFxwYXJhbSBzaWcgICAgICBUaGUgYnVmZmVyIGhvbGRpbmcgdGhlIHNpZ25hdHVyZS4gVGhpcyBtdXN0IGJlIGEgcmVhZGFibGUKKyAqICAgICAgICAgICAgICAgICBidWZmZXIgb2YgbGVuZ3RoIFxjIGN0eC0+bGVuIEJ5dGVzLiBGb3IgZXhhbXBsZSwgXGMgMjU2IEJ5dGVzCisgKiAgICAgICAgICAgICAgICAgZm9yIGFuIDIwNDgtYml0IFJTQSBtb2R1bHVzLgorICoKKyAqIFxyZXR1cm4gICAgICAgICBcYyAwIGlmIHRoZSB2ZXJpZnkgb3BlcmF0aW9uIHdhcyBzdWNjZXNzZnVsLgorICogXHJldHVybiAgICAgICAgIEFuIFxjIE1CRURUTFNfRVJSX1JTQV9YWFggZXJyb3IgY29kZSBvbiBmYWlsdXJlLgorICovCitpbnQgbWJlZHRsc19yc2FfcnNhc3NhX3BrY3MxX3YxNV92ZXJpZnkobWJlZHRsc19yc2FfY29udGV4dCAqY3R4LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1iZWR0bHNfbWRfdHlwZV90IG1kX2FsZywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgaGFzaGxlbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1bnNpZ25lZCBjaGFyICpoYXNoLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgKnNpZyk7CisKKy8qKgorICogXGJyaWVmICAgICAgICAgIFRoaXMgZnVuY3Rpb24gcGVyZm9ybXMgYSBQS0NTIzEgdjIuMSBQU1MgdmVyaWZpY2F0aW9uCisgKiAgICAgICAgICAgICAgICAgb3BlcmF0aW9uIChSU0FTU0EtUFNTLVZFUklGWSkuCisgKgorICogXG5vdGUgICAgICAgICAgIFRoZSBcYyBoYXNoX2lkIHNldCBpbiBccCBjdHggYnkgY2FsbGluZworICogICAgICAgICAgICAgICAgIG1iZWR0bHNfcnNhX3NldF9wYWRkaW5nKCkgc2VsZWN0cyB0aGUgaGFzaCB1c2VkIGZvciB0aGUKKyAqICAgICAgICAgICAgICAgICBlbmNvZGluZyBvcGVyYXRpb24gYW5kIGZvciB0aGUgbWFzayBnZW5lcmF0aW9uIGZ1bmN0aW9uCisgKiAgICAgICAgICAgICAgICAgKE1HRjEpLiBGb3IgbW9yZSBkZXRhaWxzIG9uIHRoZSBlbmNvZGluZyBvcGVyYXRpb24gYW5kIHRoZQorICogICAgICAgICAgICAgICAgIG1hc2sgZ2VuZXJhdGlvbiBmdW5jdGlvbiwgY29uc3VsdCA8ZW0+UkZDLTM0NDc6IFB1YmxpYy1LZXkKKyAqICAgICAgICAgICAgICAgICBDcnlwdG9ncmFwaHkgU3RhbmRhcmRzIChQS0NTKSAjMSB2Mi4xOiBSU0EgQ3J5cHRvZ3JhcGh5CisgKiAgICAgICAgICAgICAgICAgU3BlY2lmaWNhdGlvbnM8L2VtPi4gSWYgdGhlIFxjIGhhc2hfaWQgc2V0IGluIFxwIGN0eCBieQorICogICAgICAgICAgICAgICAgIG1iZWR0bHNfcnNhX3NldF9wYWRkaW5nKCkgaXMgI01CRURUTFNfTURfTk9ORSwgdGhlIFxwIG1kX2FsZworICogICAgICAgICAgICAgICAgIHBhcmFtZXRlciBpcyB1c2VkLgorICoKKyAqIFxwYXJhbSBjdHggICAgICBUaGUgaW5pdGlhbGl6ZWQgUlNBIHB1YmxpYyBrZXkgY29udGV4dCB0byB1c2UuCisgKiBccGFyYW0gbWRfYWxnICAgVGhlIG1lc3NhZ2UtZGlnZXN0IGFsZ29yaXRobSB1c2VkIHRvIGhhc2ggdGhlIG9yaWdpbmFsIGRhdGEuCisgKiAgICAgICAgICAgICAgICAgVXNlICNNQkVEVExTX01EX05PTkUgZm9yIHNpZ25pbmcgcmF3IGRhdGEuCisgKiBccGFyYW0gaGFzaGxlbiAgVGhlIGxlbmd0aCBvZiB0aGUgbWVzc2FnZSBkaWdlc3Qgb3IgcmF3IGRhdGEgaW4gQnl0ZXMuCisgKiAgICAgICAgICAgICAgICAgSWYgXHAgbWRfYWxnIGlzIG5vdCAjTUJFRFRMU19NRF9OT05FLCB0aGlzIG11c3QgbWF0Y2ggdGhlCisgKiAgICAgICAgICAgICAgICAgb3V0cHV0IGxlbmd0aCBvZiB0aGUgY29ycmVzcG9uZGluZyBoYXNoIGFsZ29yaXRobS4KKyAqIFxwYXJhbSBoYXNoICAgICBUaGUgYnVmZmVyIGhvbGRpbmcgdGhlIG1lc3NhZ2UgZGlnZXN0IG9yIHJhdyBkYXRhLgorICogICAgICAgICAgICAgICAgIFRoaXMgbXVzdCBiZSBhIHJlYWRhYmxlIGJ1ZmZlciBvZiBhdCBsZWFzdCBccCBoYXNobGVuIEJ5dGVzLgorICogXHBhcmFtIHNpZyAgICAgIFRoZSBidWZmZXIgaG9sZGluZyB0aGUgc2lnbmF0dXJlLiBUaGlzIG11c3QgYmUgYSByZWFkYWJsZQorICogICAgICAgICAgICAgICAgIGJ1ZmZlciBvZiBsZW5ndGggXGMgY3R4LT5sZW4gQnl0ZXMuIEZvciBleGFtcGxlLCBcYyAyNTYgQnl0ZXMKKyAqICAgICAgICAgICAgICAgICBmb3IgYW4gMjA0OC1iaXQgUlNBIG1vZHVsdXMuCisgKgorICogXHJldHVybiAgICAgICAgIFxjIDAgaWYgdGhlIHZlcmlmeSBvcGVyYXRpb24gd2FzIHN1Y2Nlc3NmdWwuCisgKiBccmV0dXJuICAgICAgICAgQW4gXGMgTUJFRFRMU19FUlJfUlNBX1hYWCBlcnJvciBjb2RlIG9uIGZhaWx1cmUuCisgKi8KK2ludCBtYmVkdGxzX3JzYV9yc2Fzc2FfcHNzX3ZlcmlmeShtYmVkdGxzX3JzYV9jb250ZXh0ICpjdHgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWJlZHRsc19tZF90eXBlX3QgbWRfYWxnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCBoYXNobGVuLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgKmhhc2gsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdW5zaWduZWQgY2hhciAqc2lnKTsKKworLyoqCisgKiBcYnJpZWYgICAgICAgICAgVGhpcyBmdW5jdGlvbiBwZXJmb3JtcyBhIFBLQ1MjMSB2Mi4xIFBTUyB2ZXJpZmljYXRpb24KKyAqICAgICAgICAgICAgICAgICBvcGVyYXRpb24gKFJTQVNTQS1QU1MtVkVSSUZZKS4KKyAqCisgKiBcbm90ZSAgICAgICAgICAgVGhlIFxwIHNpZyBidWZmZXIgbXVzdCBiZSBhcyBsYXJnZSBhcyB0aGUgc2l6ZQorICogICAgICAgICAgICAgICAgIG9mIFxwIGN0eC0+Ti4gRm9yIGV4YW1wbGUsIDEyOCBCeXRlcyBpZiBSU0EtMTAyNCBpcyB1c2VkLgorICoKKyAqIFxub3RlICAgICAgICAgICBUaGUgXGMgaGFzaF9pZCBzZXQgaW4gXHAgY3R4IGJ5IG1iZWR0bHNfcnNhX3NldF9wYWRkaW5nKCkgaXMKKyAqICAgICAgICAgICAgICAgICBpZ25vcmVkLgorICoKKyAqIFxwYXJhbSBjdHggICAgICBUaGUgaW5pdGlhbGl6ZWQgUlNBIHB1YmxpYyBrZXkgY29udGV4dCB0byB1c2UuCisgKiBccGFyYW0gbWRfYWxnICAgVGhlIG1lc3NhZ2UtZGlnZXN0IGFsZ29yaXRobSB1c2VkIHRvIGhhc2ggdGhlIG9yaWdpbmFsIGRhdGEuCisgKiAgICAgICAgICAgICAgICAgVXNlICNNQkVEVExTX01EX05PTkUgZm9yIHNpZ25pbmcgcmF3IGRhdGEuCisgKiBccGFyYW0gaGFzaGxlbiAgVGhlIGxlbmd0aCBvZiB0aGUgbWVzc2FnZSBkaWdlc3Qgb3IgcmF3IGRhdGEgaW4gQnl0ZXMuCisgKiAgICAgICAgICAgICAgICAgSWYgXHAgbWRfYWxnIGlzIG5vdCAjTUJFRFRMU19NRF9OT05FLCB0aGlzIG11c3QgbWF0Y2ggdGhlCisgKiAgICAgICAgICAgICAgICAgb3V0cHV0IGxlbmd0aCBvZiB0aGUgY29ycmVzcG9uZGluZyBoYXNoIGFsZ29yaXRobS4KKyAqIFxwYXJhbSBoYXNoICAgICBUaGUgYnVmZmVyIGhvbGRpbmcgdGhlIG1lc3NhZ2UgZGlnZXN0IG9yIHJhdyBkYXRhLgorICogICAgICAgICAgICAgICAgIFRoaXMgbXVzdCBiZSBhIHJlYWRhYmxlIGJ1ZmZlciBvZiBhdCBsZWFzdCBccCBoYXNobGVuIEJ5dGVzLgorICogXHBhcmFtIG1nZjFfaGFzaF9pZCAgICAgIFRoZSBtZXNzYWdlIGRpZ2VzdCBhbGdvcml0aG0gdXNlZCBmb3IgdGhlCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgdmVyaWZpY2F0aW9uIG9wZXJhdGlvbiBhbmQgdGhlIG1hc2sgZ2VuZXJhdGlvbgorICogICAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmN0aW9uIChNR0YxKS4gRm9yIG1vcmUgZGV0YWlscyBvbiB0aGUgZW5jb2RpbmcKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICBvcGVyYXRpb24gYW5kIHRoZSBtYXNrIGdlbmVyYXRpb24gZnVuY3Rpb24sIGNvbnN1bHQKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICA8ZW0+UkZDLTM0NDc6IFB1YmxpYy1LZXkgQ3J5cHRvZ3JhcGh5IFN0YW5kYXJkcworICogICAgICAgICAgICAgICAgICAgICAgICAgIChQS0NTKSAjMSB2Mi4xOiBSU0EgQ3J5cHRvZ3JhcGh5CisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgU3BlY2lmaWNhdGlvbnM8L2VtPi4KKyAqIFxwYXJhbSBleHBlY3RlZF9zYWx0X2xlbiBUaGUgbGVuZ3RoIG9mIHRoZSBzYWx0IHVzZWQgaW4gcGFkZGluZy4gVXNlCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgI01CRURUTFNfUlNBX1NBTFRfTEVOX0FOWSB0byBhY2NlcHQgYW55IHNhbHQgbGVuZ3RoLgorICogXHBhcmFtIHNpZyAgICAgIFRoZSBidWZmZXIgaG9sZGluZyB0aGUgc2lnbmF0dXJlLiBUaGlzIG11c3QgYmUgYSByZWFkYWJsZQorICogICAgICAgICAgICAgICAgIGJ1ZmZlciBvZiBsZW5ndGggXGMgY3R4LT5sZW4gQnl0ZXMuIEZvciBleGFtcGxlLCBcYyAyNTYgQnl0ZXMKKyAqICAgICAgICAgICAgICAgICBmb3IgYW4gMjA0OC1iaXQgUlNBIG1vZHVsdXMuCisgKgorICogXHJldHVybiAgICAgICAgIFxjIDAgaWYgdGhlIHZlcmlmeSBvcGVyYXRpb24gd2FzIHN1Y2Nlc3NmdWwuCisgKiBccmV0dXJuICAgICAgICAgQW4gXGMgTUJFRFRMU19FUlJfUlNBX1hYWCBlcnJvciBjb2RlIG9uIGZhaWx1cmUuCisgKi8KK2ludCBtYmVkdGxzX3JzYV9yc2Fzc2FfcHNzX3ZlcmlmeV9leHQobWJlZHRsc19yc2FfY29udGV4dCAqY3R4LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYmVkdGxzX21kX3R5cGVfdCBtZF9hbGcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCBoYXNobGVuLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1bnNpZ25lZCBjaGFyICpoYXNoLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYmVkdGxzX21kX3R5cGVfdCBtZ2YxX2hhc2hfaWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBleHBlY3RlZF9zYWx0X2xlbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdW5zaWduZWQgY2hhciAqc2lnKTsKKworLyoqCisgKiBcYnJpZWYgICAgICAgICAgVGhpcyBmdW5jdGlvbiBjb3BpZXMgdGhlIGNvbXBvbmVudHMgb2YgYW4gUlNBIGNvbnRleHQuCisgKgorICogXHBhcmFtIGRzdCAgICAgIFRoZSBkZXN0aW5hdGlvbiBjb250ZXh0LiBUaGlzIG11c3QgYmUgaW5pdGlhbGl6ZWQuCisgKiBccGFyYW0gc3JjICAgICAgVGhlIHNvdXJjZSBjb250ZXh0LiBUaGlzIG11c3QgYmUgaW5pdGlhbGl6ZWQuCisgKgorICogXHJldHVybiAgICAgICAgIFxjIDAgb24gc3VjY2Vzcy4KKyAqIFxyZXR1cm4gICAgICAgICAjTUJFRFRMU19FUlJfTVBJX0FMTE9DX0ZBSUxFRCBvbiBtZW1vcnkgYWxsb2NhdGlvbiBmYWlsdXJlLgorICovCitpbnQgbWJlZHRsc19yc2FfY29weShtYmVkdGxzX3JzYV9jb250ZXh0ICpkc3QsIGNvbnN0IG1iZWR0bHNfcnNhX2NvbnRleHQgKnNyYyk7CisKKy8qKgorICogXGJyaWVmICAgICAgICAgIFRoaXMgZnVuY3Rpb24gZnJlZXMgdGhlIGNvbXBvbmVudHMgb2YgYW4gUlNBIGtleS4KKyAqCisgKiBccGFyYW0gY3R4ICAgICAgVGhlIFJTQSBjb250ZXh0IHRvIGZyZWUuIE1heSBiZSBcYyBOVUxMLCBpbiB3aGljaCBjYXNlCisgKiAgICAgICAgICAgICAgICAgdGhpcyBmdW5jdGlvbiBpcyBhIG5vLW9wLiBJZiBpdCBpcyBub3QgXGMgTlVMTCwgaXQgbXVzdAorICogICAgICAgICAgICAgICAgIHBvaW50IHRvIGFuIGluaXRpYWxpemVkIFJTQSBjb250ZXh0LgorICovCit2b2lkIG1iZWR0bHNfcnNhX2ZyZWUobWJlZHRsc19yc2FfY29udGV4dCAqY3R4KTsKKworI2lmIGRlZmluZWQoTUJFRFRMU19TRUxGX1RFU1QpCisKKy8qKgorICogXGJyaWVmICAgICAgICAgIFRoZSBSU0EgY2hlY2t1cCByb3V0aW5lLgorICoKKyAqIFxyZXR1cm4gICAgICAgICBcYyAwIG9uIHN1Y2Nlc3MuCisgKiBccmV0dXJuICAgICAgICAgXGMgMSBvbiBmYWlsdXJlLgorICovCitpbnQgbWJlZHRsc19yc2Ffc2VsZl90ZXN0KGludCB2ZXJib3NlKTsKKworI2VuZGlmIC8qIE1CRURUTFNfU0VMRl9URVNUICovCisKKyNpZmRlZiBfX2NwbHVzcGx1cworfQorI2VuZGlmCisKKyNlbmRpZiAvKiByc2EuaCAqLwpkaWZmIC0tZ2l0IGEvdGYtcHNhLWNyeXB0by9kcml2ZXJzL2J1aWx0aW4vaW5jbHVkZS9tYmVkdGxzL3NoYTEuaCBiL3RmLXBzYS1jcnlwdG8vZHJpdmVycy9idWlsdGluL2luY2x1ZGUvbWJlZHRscy9zaGExLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNGIzMWMwMgotLS0gL2Rldi9udWxsCisrKyBiL3RmLXBzYS1jcnlwdG8vZHJpdmVycy9idWlsdGluL2luY2x1ZGUvbWJlZHRscy9zaGExLmgKQEAgLTAsMCArMSwyMTEgQEAKKy8qKgorICogXGZpbGUgc2hhMS5oCisgKgorICogXGJyaWVmIFRoaXMgZmlsZSBjb250YWlucyBTSEEtMSBkZWZpbml0aW9ucyBhbmQgZnVuY3Rpb25zLgorICoKKyAqIFRoZSBTZWN1cmUgSGFzaCBBbGdvcml0aG0gMSAoU0hBLTEpIGNyeXB0b2dyYXBoaWMgaGFzaCBmdW5jdGlvbiBpcyBkZWZpbmVkIGluCisgKiA8ZW0+RklQUyAxODAtNDogU2VjdXJlIEhhc2ggU3RhbmRhcmQgKFNIUyk8L2VtPi4KKyAqCisgKiBcd2FybmluZyAgIFNIQS0xIGlzIGNvbnNpZGVyZWQgYSB3ZWFrIG1lc3NhZ2UgZGlnZXN0IGFuZCBpdHMgdXNlIGNvbnN0aXR1dGVzCisgKiAgICAgICAgICAgIGEgc2VjdXJpdHkgcmlzay4gV2UgcmVjb21tZW5kIGNvbnNpZGVyaW5nIHN0cm9uZ2VyIG1lc3NhZ2UKKyAqICAgICAgICAgICAgZGlnZXN0cyBpbnN0ZWFkLgorICovCisvKgorICogIENvcHlyaWdodCBUaGUgTWJlZCBUTFMgQ29udHJpYnV0b3JzCisgKiAgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjAgT1IgR1BMLTIuMC1vci1sYXRlcgorICovCisjaWZuZGVmIE1CRURUTFNfU0hBMV9ICisjZGVmaW5lIE1CRURUTFNfU0hBMV9ICisjaW5jbHVkZSAibWJlZHRscy9wcml2YXRlX2FjY2Vzcy5oIgorCisjaW5jbHVkZSAibWJlZHRscy9idWlsZF9pbmZvLmgiCisKKyNpbmNsdWRlIDxzdGRkZWYuaD4KKyNpbmNsdWRlIDxzdGRpbnQuaD4KKworLyoqIFNIQS0xIGlucHV0IGRhdGEgd2FzIG1hbGZvcm1lZC4gKi8KKyNkZWZpbmUgTUJFRFRMU19FUlJfU0hBMV9CQURfSU5QVVRfREFUQSAgICAgICAgICAgICAgICAgICAtMHgwMDczCisKKyNpZmRlZiBfX2NwbHVzcGx1cworZXh0ZXJuICJDIiB7CisjZW5kaWYKKworLyoqCisgKiBcYnJpZWYgICAgICAgICAgVGhlIFNIQS0xIGNvbnRleHQgc3RydWN0dXJlLgorICoKKyAqIFx3YXJuaW5nICAgICAgICBTSEEtMSBpcyBjb25zaWRlcmVkIGEgd2VhayBtZXNzYWdlIGRpZ2VzdCBhbmQgaXRzIHVzZQorICogICAgICAgICAgICAgICAgIGNvbnN0aXR1dGVzIGEgc2VjdXJpdHkgcmlzay4gV2UgcmVjb21tZW5kIGNvbnNpZGVyaW5nCisgKiAgICAgICAgICAgICAgICAgc3Ryb25nZXIgbWVzc2FnZSBkaWdlc3RzIGluc3RlYWQuCisgKgorICovCit0eXBlZGVmIHN0cnVjdCBtYmVkdGxzX3NoYTFfY29udGV4dCB7CisgICAgdWludDMyX3QgTUJFRFRMU19QUklWQVRFKHRvdGFsKVsyXTsgICAgICAgICAgLyohPCBUaGUgbnVtYmVyIG9mIEJ5dGVzIHByb2Nlc3NlZC4gICovCisgICAgdWludDMyX3QgTUJFRFRMU19QUklWQVRFKHN0YXRlKVs1XTsgICAgICAgICAgLyohPCBUaGUgaW50ZXJtZWRpYXRlIGRpZ2VzdCBzdGF0ZS4gICovCisgICAgdW5zaWduZWQgY2hhciBNQkVEVExTX1BSSVZBVEUoYnVmZmVyKVs2NF07ICAgLyohPCBUaGUgZGF0YSBibG9jayBiZWluZyBwcm9jZXNzZWQuICovCit9CittYmVkdGxzX3NoYTFfY29udGV4dDsKKworLyoqCisgKiBcYnJpZWYgICAgICAgICAgVGhpcyBmdW5jdGlvbiBpbml0aWFsaXplcyBhIFNIQS0xIGNvbnRleHQuCisgKgorICogXHdhcm5pbmcgICAgICAgIFNIQS0xIGlzIGNvbnNpZGVyZWQgYSB3ZWFrIG1lc3NhZ2UgZGlnZXN0IGFuZCBpdHMgdXNlCisgKiAgICAgICAgICAgICAgICAgY29uc3RpdHV0ZXMgYSBzZWN1cml0eSByaXNrLiBXZSByZWNvbW1lbmQgY29uc2lkZXJpbmcKKyAqICAgICAgICAgICAgICAgICBzdHJvbmdlciBtZXNzYWdlIGRpZ2VzdHMgaW5zdGVhZC4KKyAqCisgKiBccGFyYW0gY3R4ICAgICAgVGhlIFNIQS0xIGNvbnRleHQgdG8gaW5pdGlhbGl6ZS4KKyAqICAgICAgICAgICAgICAgICBUaGlzIG11c3Qgbm90IGJlIFxjIE5VTEwuCisgKgorICovCit2b2lkIG1iZWR0bHNfc2hhMV9pbml0KG1iZWR0bHNfc2hhMV9jb250ZXh0ICpjdHgpOworCisvKioKKyAqIFxicmllZiAgICAgICAgICBUaGlzIGZ1bmN0aW9uIGNsZWFycyBhIFNIQS0xIGNvbnRleHQuCisgKgorICogXHdhcm5pbmcgICAgICAgIFNIQS0xIGlzIGNvbnNpZGVyZWQgYSB3ZWFrIG1lc3NhZ2UgZGlnZXN0IGFuZCBpdHMgdXNlCisgKiAgICAgICAgICAgICAgICAgY29uc3RpdHV0ZXMgYSBzZWN1cml0eSByaXNrLiBXZSByZWNvbW1lbmQgY29uc2lkZXJpbmcKKyAqICAgICAgICAgICAgICAgICBzdHJvbmdlciBtZXNzYWdlIGRpZ2VzdHMgaW5zdGVhZC4KKyAqCisgKiBccGFyYW0gY3R4ICAgICAgVGhlIFNIQS0xIGNvbnRleHQgdG8gY2xlYXIuIFRoaXMgbWF5IGJlIFxjIE5VTEwsCisgKiAgICAgICAgICAgICAgICAgaW4gd2hpY2ggY2FzZSB0aGlzIGZ1bmN0aW9uIGRvZXMgbm90aGluZy4gSWYgaXQgaXMKKyAqICAgICAgICAgICAgICAgICBub3QgXGMgTlVMTCwgaXQgbXVzdCBwb2ludCB0byBhbiBpbml0aWFsaXplZAorICogICAgICAgICAgICAgICAgIFNIQS0xIGNvbnRleHQuCisgKgorICovCit2b2lkIG1iZWR0bHNfc2hhMV9mcmVlKG1iZWR0bHNfc2hhMV9jb250ZXh0ICpjdHgpOworCisvKioKKyAqIFxicmllZiAgICAgICAgICBUaGlzIGZ1bmN0aW9uIGNsb25lcyB0aGUgc3RhdGUgb2YgYSBTSEEtMSBjb250ZXh0LgorICoKKyAqIFx3YXJuaW5nICAgICAgICBTSEEtMSBpcyBjb25zaWRlcmVkIGEgd2VhayBtZXNzYWdlIGRpZ2VzdCBhbmQgaXRzIHVzZQorICogICAgICAgICAgICAgICAgIGNvbnN0aXR1dGVzIGEgc2VjdXJpdHkgcmlzay4gV2UgcmVjb21tZW5kIGNvbnNpZGVyaW5nCisgKiAgICAgICAgICAgICAgICAgc3Ryb25nZXIgbWVzc2FnZSBkaWdlc3RzIGluc3RlYWQuCisgKgorICogXHBhcmFtIGRzdCAgICAgIFRoZSBTSEEtMSBjb250ZXh0IHRvIGNsb25lIHRvLiBUaGlzIG11c3QgYmUgaW5pdGlhbGl6ZWQuCisgKiBccGFyYW0gc3JjICAgICAgVGhlIFNIQS0xIGNvbnRleHQgdG8gY2xvbmUgZnJvbS4gVGhpcyBtdXN0IGJlIGluaXRpYWxpemVkLgorICoKKyAqLwordm9pZCBtYmVkdGxzX3NoYTFfY2xvbmUobWJlZHRsc19zaGExX2NvbnRleHQgKmRzdCwKKyAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IG1iZWR0bHNfc2hhMV9jb250ZXh0ICpzcmMpOworCisvKioKKyAqIFxicmllZiAgICAgICAgICBUaGlzIGZ1bmN0aW9uIHN0YXJ0cyBhIFNIQS0xIGNoZWNrc3VtIGNhbGN1bGF0aW9uLgorICoKKyAqIFx3YXJuaW5nICAgICAgICBTSEEtMSBpcyBjb25zaWRlcmVkIGEgd2VhayBtZXNzYWdlIGRpZ2VzdCBhbmQgaXRzIHVzZQorICogICAgICAgICAgICAgICAgIGNvbnN0aXR1dGVzIGEgc2VjdXJpdHkgcmlzay4gV2UgcmVjb21tZW5kIGNvbnNpZGVyaW5nCisgKiAgICAgICAgICAgICAgICAgc3Ryb25nZXIgbWVzc2FnZSBkaWdlc3RzIGluc3RlYWQuCisgKgorICogXHBhcmFtIGN0eCAgICAgIFRoZSBTSEEtMSBjb250ZXh0IHRvIGluaXRpYWxpemUuIFRoaXMgbXVzdCBiZSBpbml0aWFsaXplZC4KKyAqCisgKiBccmV0dXJuICAgICAgICAgXGMgMCBvbiBzdWNjZXNzLgorICogXHJldHVybiAgICAgICAgIEEgbmVnYXRpdmUgZXJyb3IgY29kZSBvbiBmYWlsdXJlLgorICoKKyAqLworaW50IG1iZWR0bHNfc2hhMV9zdGFydHMobWJlZHRsc19zaGExX2NvbnRleHQgKmN0eCk7CisKKy8qKgorICogXGJyaWVmICAgICAgICAgIFRoaXMgZnVuY3Rpb24gZmVlZHMgYW4gaW5wdXQgYnVmZmVyIGludG8gYW4gb25nb2luZyBTSEEtMQorICogICAgICAgICAgICAgICAgIGNoZWNrc3VtIGNhbGN1bGF0aW9uLgorICoKKyAqIFx3YXJuaW5nICAgICAgICBTSEEtMSBpcyBjb25zaWRlcmVkIGEgd2VhayBtZXNzYWdlIGRpZ2VzdCBhbmQgaXRzIHVzZQorICogICAgICAgICAgICAgICAgIGNvbnN0aXR1dGVzIGEgc2VjdXJpdHkgcmlzay4gV2UgcmVjb21tZW5kIGNvbnNpZGVyaW5nCisgKiAgICAgICAgICAgICAgICAgc3Ryb25nZXIgbWVzc2FnZSBkaWdlc3RzIGluc3RlYWQuCisgKgorICogXHBhcmFtIGN0eCAgICAgIFRoZSBTSEEtMSBjb250ZXh0LiBUaGlzIG11c3QgYmUgaW5pdGlhbGl6ZWQKKyAqICAgICAgICAgICAgICAgICBhbmQgaGF2ZSBhIGhhc2ggb3BlcmF0aW9uIHN0YXJ0ZWQuCisgKiBccGFyYW0gaW5wdXQgICAgVGhlIGJ1ZmZlciBob2xkaW5nIHRoZSBpbnB1dCBkYXRhLgorICogICAgICAgICAgICAgICAgIFRoaXMgbXVzdCBiZSBhIHJlYWRhYmxlIGJ1ZmZlciBvZiBsZW5ndGggXHAgaWxlbiBCeXRlcy4KKyAqIFxwYXJhbSBpbGVuICAgICBUaGUgbGVuZ3RoIG9mIHRoZSBpbnB1dCBkYXRhIFxwIGlucHV0IGluIEJ5dGVzLgorICoKKyAqIFxyZXR1cm4gICAgICAgICBcYyAwIG9uIHN1Y2Nlc3MuCisgKiBccmV0dXJuICAgICAgICAgQSBuZWdhdGl2ZSBlcnJvciBjb2RlIG9uIGZhaWx1cmUuCisgKi8KK2ludCBtYmVkdGxzX3NoYTFfdXBkYXRlKG1iZWR0bHNfc2hhMV9jb250ZXh0ICpjdHgsCisgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1bnNpZ25lZCBjaGFyICppbnB1dCwKKyAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBpbGVuKTsKKworLyoqCisgKiBcYnJpZWYgICAgICAgICAgVGhpcyBmdW5jdGlvbiBmaW5pc2hlcyB0aGUgU0hBLTEgb3BlcmF0aW9uLCBhbmQgd3JpdGVzCisgKiAgICAgICAgICAgICAgICAgdGhlIHJlc3VsdCB0byB0aGUgb3V0cHV0IGJ1ZmZlci4KKyAqCisgKiBcd2FybmluZyAgICAgICAgU0hBLTEgaXMgY29uc2lkZXJlZCBhIHdlYWsgbWVzc2FnZSBkaWdlc3QgYW5kIGl0cyB1c2UKKyAqICAgICAgICAgICAgICAgICBjb25zdGl0dXRlcyBhIHNlY3VyaXR5IHJpc2suIFdlIHJlY29tbWVuZCBjb25zaWRlcmluZworICogICAgICAgICAgICAgICAgIHN0cm9uZ2VyIG1lc3NhZ2UgZGlnZXN0cyBpbnN0ZWFkLgorICoKKyAqIFxwYXJhbSBjdHggICAgICBUaGUgU0hBLTEgY29udGV4dCB0byB1c2UuIFRoaXMgbXVzdCBiZSBpbml0aWFsaXplZCBhbmQKKyAqICAgICAgICAgICAgICAgICBoYXZlIGEgaGFzaCBvcGVyYXRpb24gc3RhcnRlZC4KKyAqIFxwYXJhbSBvdXRwdXQgICBUaGUgU0hBLTEgY2hlY2tzdW0gcmVzdWx0LiBUaGlzIG11c3QgYmUgYSB3cml0YWJsZQorICogICAgICAgICAgICAgICAgIGJ1ZmZlciBvZiBsZW5ndGggXGMgMjAgQnl0ZXMuCisgKgorICogXHJldHVybiAgICAgICAgIFxjIDAgb24gc3VjY2Vzcy4KKyAqIFxyZXR1cm4gICAgICAgICBBIG5lZ2F0aXZlIGVycm9yIGNvZGUgb24gZmFpbHVyZS4KKyAqLworaW50IG1iZWR0bHNfc2hhMV9maW5pc2gobWJlZHRsc19zaGExX2NvbnRleHQgKmN0eCwKKyAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGNoYXIgb3V0cHV0WzIwXSk7CisKKy8qKgorICogXGJyaWVmICAgICAgICAgIFNIQS0xIHByb2Nlc3MgZGF0YSBibG9jayAoaW50ZXJuYWwgdXNlIG9ubHkpLgorICoKKyAqIFx3YXJuaW5nICAgICAgICBTSEEtMSBpcyBjb25zaWRlcmVkIGEgd2VhayBtZXNzYWdlIGRpZ2VzdCBhbmQgaXRzIHVzZQorICogICAgICAgICAgICAgICAgIGNvbnN0aXR1dGVzIGEgc2VjdXJpdHkgcmlzay4gV2UgcmVjb21tZW5kIGNvbnNpZGVyaW5nCisgKiAgICAgICAgICAgICAgICAgc3Ryb25nZXIgbWVzc2FnZSBkaWdlc3RzIGluc3RlYWQuCisgKgorICogXHBhcmFtIGN0eCAgICAgIFRoZSBTSEEtMSBjb250ZXh0IHRvIHVzZS4gVGhpcyBtdXN0IGJlIGluaXRpYWxpemVkLgorICogXHBhcmFtIGRhdGEgICAgIFRoZSBkYXRhIGJsb2NrIGJlaW5nIHByb2Nlc3NlZC4gVGhpcyBtdXN0IGJlIGEKKyAqICAgICAgICAgICAgICAgICByZWFkYWJsZSBidWZmZXIgb2YgbGVuZ3RoIFxjIDY0IEJ5dGVzLgorICoKKyAqIFxyZXR1cm4gICAgICAgICBcYyAwIG9uIHN1Y2Nlc3MuCisgKiBccmV0dXJuICAgICAgICAgQSBuZWdhdGl2ZSBlcnJvciBjb2RlIG9uIGZhaWx1cmUuCisgKgorICovCitpbnQgbWJlZHRsc19pbnRlcm5hbF9zaGExX3Byb2Nlc3MobWJlZHRsc19zaGExX2NvbnRleHQgKmN0eCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1bnNpZ25lZCBjaGFyIGRhdGFbNjRdKTsKKworLyoqCisgKiBcYnJpZWYgICAgICAgICAgVGhpcyBmdW5jdGlvbiBjYWxjdWxhdGVzIHRoZSBTSEEtMSBjaGVja3N1bSBvZiBhIGJ1ZmZlci4KKyAqCisgKiAgICAgICAgICAgICAgICAgVGhlIGZ1bmN0aW9uIGFsbG9jYXRlcyB0aGUgY29udGV4dCwgcGVyZm9ybXMgdGhlCisgKiAgICAgICAgICAgICAgICAgY2FsY3VsYXRpb24sIGFuZCBmcmVlcyB0aGUgY29udGV4dC4KKyAqCisgKiAgICAgICAgICAgICAgICAgVGhlIFNIQS0xIHJlc3VsdCBpcyBjYWxjdWxhdGVkIGFzCisgKiAgICAgICAgICAgICAgICAgb3V0cHV0ID0gU0hBLTEoaW5wdXQgYnVmZmVyKS4KKyAqCisgKiBcd2FybmluZyAgICAgICAgU0hBLTEgaXMgY29uc2lkZXJlZCBhIHdlYWsgbWVzc2FnZSBkaWdlc3QgYW5kIGl0cyB1c2UKKyAqICAgICAgICAgICAgICAgICBjb25zdGl0dXRlcyBhIHNlY3VyaXR5IHJpc2suIFdlIHJlY29tbWVuZCBjb25zaWRlcmluZworICogICAgICAgICAgICAgICAgIHN0cm9uZ2VyIG1lc3NhZ2UgZGlnZXN0cyBpbnN0ZWFkLgorICoKKyAqIFxwYXJhbSBpbnB1dCAgICBUaGUgYnVmZmVyIGhvbGRpbmcgdGhlIGlucHV0IGRhdGEuCisgKiAgICAgICAgICAgICAgICAgVGhpcyBtdXN0IGJlIGEgcmVhZGFibGUgYnVmZmVyIG9mIGxlbmd0aCBccCBpbGVuIEJ5dGVzLgorICogXHBhcmFtIGlsZW4gICAgIFRoZSBsZW5ndGggb2YgdGhlIGlucHV0IGRhdGEgXHAgaW5wdXQgaW4gQnl0ZXMuCisgKiBccGFyYW0gb3V0cHV0ICAgVGhlIFNIQS0xIGNoZWNrc3VtIHJlc3VsdC4KKyAqICAgICAgICAgICAgICAgICBUaGlzIG11c3QgYmUgYSB3cml0YWJsZSBidWZmZXIgb2YgbGVuZ3RoIFxjIDIwIEJ5dGVzLgorICoKKyAqIFxyZXR1cm4gICAgICAgICBcYyAwIG9uIHN1Y2Nlc3MuCisgKiBccmV0dXJuICAgICAgICAgQSBuZWdhdGl2ZSBlcnJvciBjb2RlIG9uIGZhaWx1cmUuCisgKgorICovCitpbnQgbWJlZHRsc19zaGExKGNvbnN0IHVuc2lnbmVkIGNoYXIgKmlucHV0LAorICAgICAgICAgICAgICAgICBzaXplX3QgaWxlbiwKKyAgICAgICAgICAgICAgICAgdW5zaWduZWQgY2hhciBvdXRwdXRbMjBdKTsKKworI2lmIGRlZmluZWQoTUJFRFRMU19TRUxGX1RFU1QpCisKKy8qKgorICogXGJyaWVmICAgICAgICAgIFRoZSBTSEEtMSBjaGVja3VwIHJvdXRpbmUuCisgKgorICogXHdhcm5pbmcgICAgICAgIFNIQS0xIGlzIGNvbnNpZGVyZWQgYSB3ZWFrIG1lc3NhZ2UgZGlnZXN0IGFuZCBpdHMgdXNlCisgKiAgICAgICAgICAgICAgICAgY29uc3RpdHV0ZXMgYSBzZWN1cml0eSByaXNrLiBXZSByZWNvbW1lbmQgY29uc2lkZXJpbmcKKyAqICAgICAgICAgICAgICAgICBzdHJvbmdlciBtZXNzYWdlIGRpZ2VzdHMgaW5zdGVhZC4KKyAqCisgKiBccmV0dXJuICAgICAgICAgXGMgMCBvbiBzdWNjZXNzLgorICogXHJldHVybiAgICAgICAgIFxjIDEgb24gZmFpbHVyZS4KKyAqCisgKi8KK2ludCBtYmVkdGxzX3NoYTFfc2VsZl90ZXN0KGludCB2ZXJib3NlKTsKKworI2VuZGlmIC8qIE1CRURUTFNfU0VMRl9URVNUICovCisKKyNpZmRlZiBfX2NwbHVzcGx1cworfQorI2VuZGlmCisKKyNlbmRpZiAvKiBtYmVkdGxzX3NoYTEuaCAqLwpkaWZmIC0tZ2l0IGEvdGYtcHNhLWNyeXB0by9kcml2ZXJzL2J1aWx0aW4vaW5jbHVkZS9tYmVkdGxzL3NoYTI1Ni5oIGIvdGYtcHNhLWNyeXB0by9kcml2ZXJzL2J1aWx0aW4vaW5jbHVkZS9tYmVkdGxzL3NoYTI1Ni5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjAyNTNmN2QKLS0tIC9kZXYvbnVsbAorKysgYi90Zi1wc2EtY3J5cHRvL2RyaXZlcnMvYnVpbHRpbi9pbmNsdWRlL21iZWR0bHMvc2hhMjU2LmgKQEAgLTAsMCArMSwxOTIgQEAKKy8qKgorICogXGZpbGUgc2hhMjU2LmgKKyAqCisgKiBcYnJpZWYgVGhpcyBmaWxlIGNvbnRhaW5zIFNIQS0yMjQgYW5kIFNIQS0yNTYgZGVmaW5pdGlvbnMgYW5kIGZ1bmN0aW9ucy4KKyAqCisgKiBUaGUgU2VjdXJlIEhhc2ggQWxnb3JpdGhtcyAyMjQgYW5kIDI1NiAoU0hBLTIyNCBhbmQgU0hBLTI1NikgY3J5cHRvZ3JhcGhpYworICogaGFzaCBmdW5jdGlvbnMgYXJlIGRlZmluZWQgaW4gPGVtPkZJUFMgMTgwLTQ6IFNlY3VyZSBIYXNoIFN0YW5kYXJkIChTSFMpPC9lbT4uCisgKi8KKy8qCisgKiAgQ29weXJpZ2h0IFRoZSBNYmVkIFRMUyBDb250cmlidXRvcnMKKyAqICBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMCBPUiBHUEwtMi4wLW9yLWxhdGVyCisgKi8KKyNpZm5kZWYgTUJFRFRMU19TSEEyNTZfSAorI2RlZmluZSBNQkVEVExTX1NIQTI1Nl9ICisjaW5jbHVkZSAibWJlZHRscy9wcml2YXRlX2FjY2Vzcy5oIgorCisjaW5jbHVkZSAibWJlZHRscy9idWlsZF9pbmZvLmgiCisKKyNpbmNsdWRlIDxzdGRkZWYuaD4KKyNpbmNsdWRlIDxzdGRpbnQuaD4KKworLyoqIFNIQS0yNTYgaW5wdXQgZGF0YSB3YXMgbWFsZm9ybWVkLiAqLworI2RlZmluZSBNQkVEVExTX0VSUl9TSEEyNTZfQkFEX0lOUFVUX0RBVEEgICAgICAgICAgICAgICAgIC0weDAwNzQKKworI2lmZGVmIF9fY3BsdXNwbHVzCitleHRlcm4gIkMiIHsKKyNlbmRpZgorCisvKioKKyAqIFxicmllZiAgICAgICAgICBUaGUgU0hBLTI1NiBjb250ZXh0IHN0cnVjdHVyZS4KKyAqCisgKiAgICAgICAgICAgICAgICAgVGhlIHN0cnVjdHVyZSBpcyB1c2VkIGJvdGggZm9yIFNIQS0yNTYgYW5kIGZvciBTSEEtMjI0CisgKiAgICAgICAgICAgICAgICAgY2hlY2tzdW0gY2FsY3VsYXRpb25zLiBUaGUgY2hvaWNlIGJldHdlZW4gdGhlc2UgdHdvIGlzCisgKiAgICAgICAgICAgICAgICAgbWFkZSBpbiB0aGUgY2FsbCB0byBtYmVkdGxzX3NoYTI1Nl9zdGFydHMoKS4KKyAqLwordHlwZWRlZiBzdHJ1Y3QgbWJlZHRsc19zaGEyNTZfY29udGV4dCB7CisgICAgdW5zaWduZWQgY2hhciBNQkVEVExTX1BSSVZBVEUoYnVmZmVyKVs2NF07ICAgLyohPCBUaGUgZGF0YSBibG9jayBiZWluZyBwcm9jZXNzZWQuICovCisgICAgdWludDMyX3QgTUJFRFRMU19QUklWQVRFKHRvdGFsKVsyXTsgICAgICAgICAgLyohPCBUaGUgbnVtYmVyIG9mIEJ5dGVzIHByb2Nlc3NlZC4gICovCisgICAgdWludDMyX3QgTUJFRFRMU19QUklWQVRFKHN0YXRlKVs4XTsgICAgICAgICAgLyohPCBUaGUgaW50ZXJtZWRpYXRlIGRpZ2VzdCBzdGF0ZS4gICovCisjaWYgZGVmaW5lZChNQkVEVExTX1NIQTIyNF9DKQorICAgIGludCBNQkVEVExTX1BSSVZBVEUoaXMyMjQpOyAgICAgICAgICAgICAgICAgIC8qITwgRGV0ZXJtaW5lcyB3aGljaCBmdW5jdGlvbiB0byB1c2U6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMDogVXNlIFNIQS0yNTYsIG9yIDE6IFVzZSBTSEEtMjI0LiAqLworI2VuZGlmCit9CittYmVkdGxzX3NoYTI1Nl9jb250ZXh0OworCisvKioKKyAqIFxicmllZiAgICAgICAgICBUaGlzIGZ1bmN0aW9uIGluaXRpYWxpemVzIGEgU0hBLTI1NiBjb250ZXh0LgorICoKKyAqIFxwYXJhbSBjdHggICAgICBUaGUgU0hBLTI1NiBjb250ZXh0IHRvIGluaXRpYWxpemUuIFRoaXMgbXVzdCBub3QgYmUgXGMgTlVMTC4KKyAqLwordm9pZCBtYmVkdGxzX3NoYTI1Nl9pbml0KG1iZWR0bHNfc2hhMjU2X2NvbnRleHQgKmN0eCk7CisKKy8qKgorICogXGJyaWVmICAgICAgICAgIFRoaXMgZnVuY3Rpb24gY2xlYXJzIGEgU0hBLTI1NiBjb250ZXh0LgorICoKKyAqIFxwYXJhbSBjdHggICAgICBUaGUgU0hBLTI1NiBjb250ZXh0IHRvIGNsZWFyLiBUaGlzIG1heSBiZSBcYyBOVUxMLCBpbiB3aGljaAorICogICAgICAgICAgICAgICAgIGNhc2UgdGhpcyBmdW5jdGlvbiByZXR1cm5zIGltbWVkaWF0ZWx5LiBJZiBpdCBpcyBub3QgXGMgTlVMTCwKKyAqICAgICAgICAgICAgICAgICBpdCBtdXN0IHBvaW50IHRvIGFuIGluaXRpYWxpemVkIFNIQS0yNTYgY29udGV4dC4KKyAqLwordm9pZCBtYmVkdGxzX3NoYTI1Nl9mcmVlKG1iZWR0bHNfc2hhMjU2X2NvbnRleHQgKmN0eCk7CisKKy8qKgorICogXGJyaWVmICAgICAgICAgIFRoaXMgZnVuY3Rpb24gY2xvbmVzIHRoZSBzdGF0ZSBvZiBhIFNIQS0yNTYgY29udGV4dC4KKyAqCisgKiBccGFyYW0gZHN0ICAgICAgVGhlIGRlc3RpbmF0aW9uIGNvbnRleHQuIFRoaXMgbXVzdCBiZSBpbml0aWFsaXplZC4KKyAqIFxwYXJhbSBzcmMgICAgICBUaGUgY29udGV4dCB0byBjbG9uZS4gVGhpcyBtdXN0IGJlIGluaXRpYWxpemVkLgorICovCit2b2lkIG1iZWR0bHNfc2hhMjU2X2Nsb25lKG1iZWR0bHNfc2hhMjU2X2NvbnRleHQgKmRzdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbWJlZHRsc19zaGEyNTZfY29udGV4dCAqc3JjKTsKKworLyoqCisgKiBcYnJpZWYgICAgICAgICAgVGhpcyBmdW5jdGlvbiBzdGFydHMgYSBTSEEtMjI0IG9yIFNIQS0yNTYgY2hlY2tzdW0KKyAqICAgICAgICAgICAgICAgICBjYWxjdWxhdGlvbi4KKyAqCisgKiBccGFyYW0gY3R4ICAgICAgVGhlIGNvbnRleHQgdG8gdXNlLiBUaGlzIG11c3QgYmUgaW5pdGlhbGl6ZWQuCisgKiBccGFyYW0gaXMyMjQgICAgVGhpcyBkZXRlcm1pbmVzIHdoaWNoIGZ1bmN0aW9uIHRvIHVzZS4gVGhpcyBtdXN0IGJlCisgKiAgICAgICAgICAgICAgICAgZWl0aGVyIFxjIDAgZm9yIFNIQS0yNTYsIG9yIFxjIDEgZm9yIFNIQS0yMjQuCisgKgorICogXG5vdGUgICAgICAgICAgIGlzMjI0IG11c3QgYmUgZGVmaW5lZCBhY2NvcmRpbmdseSB0byB0aGUgZW5hYmxlZAorICogICAgICAgICAgICAgICAgIE1CRURUTFNfU0hBMjI0X0MvTUJFRFRMU19TSEEyNTZfQyBzeW1ib2xzIG90aGVyd2lzZSB0aGUKKyAqICAgICAgICAgICAgICAgICBmdW5jdGlvbiB3aWxsIHJldHVybiAjTUJFRFRMU19FUlJfU0hBNTEyX0JBRF9JTlBVVF9EQVRBLgorICoKKyAqIFxyZXR1cm4gICAgICAgICBcYyAwIG9uIHN1Y2Nlc3MuCisgKiBccmV0dXJuICAgICAgICAgQSBuZWdhdGl2ZSBlcnJvciBjb2RlIG9uIGZhaWx1cmUuCisgKi8KK2ludCBtYmVkdGxzX3NoYTI1Nl9zdGFydHMobWJlZHRsc19zaGEyNTZfY29udGV4dCAqY3R4LCBpbnQgaXMyMjQpOworCisvKioKKyAqIFxicmllZiAgICAgICAgICBUaGlzIGZ1bmN0aW9uIGZlZWRzIGFuIGlucHV0IGJ1ZmZlciBpbnRvIGFuIG9uZ29pbmcKKyAqICAgICAgICAgICAgICAgICBTSEEtMjU2IGNoZWNrc3VtIGNhbGN1bGF0aW9uLgorICoKKyAqIFxwYXJhbSBjdHggICAgICBUaGUgU0hBLTI1NiBjb250ZXh0LiBUaGlzIG11c3QgYmUgaW5pdGlhbGl6ZWQKKyAqICAgICAgICAgICAgICAgICBhbmQgaGF2ZSBhIGhhc2ggb3BlcmF0aW9uIHN0YXJ0ZWQuCisgKiBccGFyYW0gaW5wdXQgICAgVGhlIGJ1ZmZlciBob2xkaW5nIHRoZSBkYXRhLiBUaGlzIG11c3QgYmUgYSByZWFkYWJsZQorICogICAgICAgICAgICAgICAgIGJ1ZmZlciBvZiBsZW5ndGggXHAgaWxlbiBCeXRlcy4KKyAqIFxwYXJhbSBpbGVuICAgICBUaGUgbGVuZ3RoIG9mIHRoZSBpbnB1dCBkYXRhIGluIEJ5dGVzLgorICoKKyAqIFxyZXR1cm4gICAgICAgICBcYyAwIG9uIHN1Y2Nlc3MuCisgKiBccmV0dXJuICAgICAgICAgQSBuZWdhdGl2ZSBlcnJvciBjb2RlIG9uIGZhaWx1cmUuCisgKi8KK2ludCBtYmVkdGxzX3NoYTI1Nl91cGRhdGUobWJlZHRsc19zaGEyNTZfY29udGV4dCAqY3R4LAorICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1bnNpZ25lZCBjaGFyICppbnB1dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IGlsZW4pOworCisvKioKKyAqIFxicmllZiAgICAgICAgICBUaGlzIGZ1bmN0aW9uIGZpbmlzaGVzIHRoZSBTSEEtMjU2IG9wZXJhdGlvbiwgYW5kIHdyaXRlcworICogICAgICAgICAgICAgICAgIHRoZSByZXN1bHQgdG8gdGhlIG91dHB1dCBidWZmZXIuCisgKgorICogXHBhcmFtIGN0eCAgICAgIFRoZSBTSEEtMjU2IGNvbnRleHQuIFRoaXMgbXVzdCBiZSBpbml0aWFsaXplZAorICogICAgICAgICAgICAgICAgIGFuZCBoYXZlIGEgaGFzaCBvcGVyYXRpb24gc3RhcnRlZC4KKyAqIFxwYXJhbSBvdXRwdXQgICBUaGUgU0hBLTIyNCBvciBTSEEtMjU2IGNoZWNrc3VtIHJlc3VsdC4KKyAqICAgICAgICAgICAgICAgICBUaGlzIG11c3QgYmUgYSB3cml0YWJsZSBidWZmZXIgb2YgbGVuZ3RoIFxjIDMyIGJ5dGVzCisgKiAgICAgICAgICAgICAgICAgZm9yIFNIQS0yNTYsIFxjIDI4IGJ5dGVzIGZvciBTSEEtMjI0LgorICoKKyAqIFxyZXR1cm4gICAgICAgICBcYyAwIG9uIHN1Y2Nlc3MuCisgKiBccmV0dXJuICAgICAgICAgQSBuZWdhdGl2ZSBlcnJvciBjb2RlIG9uIGZhaWx1cmUuCisgKi8KK2ludCBtYmVkdGxzX3NoYTI1Nl9maW5pc2gobWJlZHRsc19zaGEyNTZfY29udGV4dCAqY3R4LAorICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBjaGFyICpvdXRwdXQpOworCisvKioKKyAqIFxicmllZiAgICAgICAgICBUaGlzIGZ1bmN0aW9uIHByb2Nlc3NlcyBhIHNpbmdsZSBkYXRhIGJsb2NrIHdpdGhpbgorICogICAgICAgICAgICAgICAgIHRoZSBvbmdvaW5nIFNIQS0yNTYgY29tcHV0YXRpb24uIFRoaXMgZnVuY3Rpb24gaXMgZm9yCisgKiAgICAgICAgICAgICAgICAgaW50ZXJuYWwgdXNlIG9ubHkuCisgKgorICogXHBhcmFtIGN0eCAgICAgIFRoZSBTSEEtMjU2IGNvbnRleHQuIFRoaXMgbXVzdCBiZSBpbml0aWFsaXplZC4KKyAqIFxwYXJhbSBkYXRhICAgICBUaGUgYnVmZmVyIGhvbGRpbmcgb25lIGJsb2NrIG9mIGRhdGEuIFRoaXMgbXVzdAorICogICAgICAgICAgICAgICAgIGJlIGEgcmVhZGFibGUgYnVmZmVyIG9mIGxlbmd0aCBcYyA2NCBCeXRlcy4KKyAqCisgKiBccmV0dXJuICAgICAgICAgXGMgMCBvbiBzdWNjZXNzLgorICogXHJldHVybiAgICAgICAgIEEgbmVnYXRpdmUgZXJyb3IgY29kZSBvbiBmYWlsdXJlLgorICovCitpbnQgbWJlZHRsc19pbnRlcm5hbF9zaGEyNTZfcHJvY2VzcyhtYmVkdGxzX3NoYTI1Nl9jb250ZXh0ICpjdHgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1bnNpZ25lZCBjaGFyIGRhdGFbNjRdKTsKKworLyoqCisgKiBcYnJpZWYgICAgICAgICAgVGhpcyBmdW5jdGlvbiBjYWxjdWxhdGVzIHRoZSBTSEEtMjI0IG9yIFNIQS0yNTYKKyAqICAgICAgICAgICAgICAgICBjaGVja3N1bSBvZiBhIGJ1ZmZlci4KKyAqCisgKiAgICAgICAgICAgICAgICAgVGhlIGZ1bmN0aW9uIGFsbG9jYXRlcyB0aGUgY29udGV4dCwgcGVyZm9ybXMgdGhlCisgKiAgICAgICAgICAgICAgICAgY2FsY3VsYXRpb24sIGFuZCBmcmVlcyB0aGUgY29udGV4dC4KKyAqCisgKiAgICAgICAgICAgICAgICAgVGhlIFNIQS0yNTYgcmVzdWx0IGlzIGNhbGN1bGF0ZWQgYXMKKyAqICAgICAgICAgICAgICAgICBvdXRwdXQgPSBTSEEtMjU2KGlucHV0IGJ1ZmZlcikuCisgKgorICogXHBhcmFtIGlucHV0ICAgIFRoZSBidWZmZXIgaG9sZGluZyB0aGUgZGF0YS4gVGhpcyBtdXN0IGJlIGEgcmVhZGFibGUKKyAqICAgICAgICAgICAgICAgICBidWZmZXIgb2YgbGVuZ3RoIFxwIGlsZW4gQnl0ZXMuCisgKiBccGFyYW0gaWxlbiAgICAgVGhlIGxlbmd0aCBvZiB0aGUgaW5wdXQgZGF0YSBpbiBCeXRlcy4KKyAqIFxwYXJhbSBvdXRwdXQgICBUaGUgU0hBLTIyNCBvciBTSEEtMjU2IGNoZWNrc3VtIHJlc3VsdC4KKyAqICAgICAgICAgICAgICAgICBUaGlzIG11c3QgYmUgYSB3cml0YWJsZSBidWZmZXIgb2YgbGVuZ3RoIFxjIDMyIGJ5dGVzCisgKiAgICAgICAgICAgICAgICAgZm9yIFNIQS0yNTYsIFxjIDI4IGJ5dGVzIGZvciBTSEEtMjI0LgorICogXHBhcmFtIGlzMjI0ICAgIERldGVybWluZXMgd2hpY2ggZnVuY3Rpb24gdG8gdXNlLiBUaGlzIG11c3QgYmUKKyAqICAgICAgICAgICAgICAgICBlaXRoZXIgXGMgMCBmb3IgU0hBLTI1Niwgb3IgXGMgMSBmb3IgU0hBLTIyNC4KKyAqCisgKiBccmV0dXJuICAgICAgICAgXGMgMCBvbiBzdWNjZXNzLgorICogXHJldHVybiAgICAgICAgIEEgbmVnYXRpdmUgZXJyb3IgY29kZSBvbiBmYWlsdXJlLgorICovCitpbnQgbWJlZHRsc19zaGEyNTYoY29uc3QgdW5zaWduZWQgY2hhciAqaW5wdXQsCisgICAgICAgICAgICAgICAgICAgc2l6ZV90IGlsZW4sCisgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgY2hhciAqb3V0cHV0LAorICAgICAgICAgICAgICAgICAgIGludCBpczIyNCk7CisKKyNpZiBkZWZpbmVkKE1CRURUTFNfU0VMRl9URVNUKQorCisjaWYgZGVmaW5lZChNQkVEVExTX1NIQTIyNF9DKQorLyoqCisgKiBcYnJpZWYgICAgICAgICAgVGhlIFNIQS0yMjQgY2hlY2t1cCByb3V0aW5lLgorICoKKyAqIFxyZXR1cm4gICAgICAgICBcYyAwIG9uIHN1Y2Nlc3MuCisgKiBccmV0dXJuICAgICAgICAgXGMgMSBvbiBmYWlsdXJlLgorICovCitpbnQgbWJlZHRsc19zaGEyMjRfc2VsZl90ZXN0KGludCB2ZXJib3NlKTsKKyNlbmRpZiAvKiBNQkVEVExTX1NIQTIyNF9DICovCisKKyNpZiBkZWZpbmVkKE1CRURUTFNfU0hBMjU2X0MpCisvKioKKyAqIFxicmllZiAgICAgICAgICBUaGUgU0hBLTI1NiBjaGVja3VwIHJvdXRpbmUuCisgKgorICogXHJldHVybiAgICAgICAgIFxjIDAgb24gc3VjY2Vzcy4KKyAqIFxyZXR1cm4gICAgICAgICBcYyAxIG9uIGZhaWx1cmUuCisgKi8KK2ludCBtYmVkdGxzX3NoYTI1Nl9zZWxmX3Rlc3QoaW50IHZlcmJvc2UpOworI2VuZGlmIC8qIE1CRURUTFNfU0hBMjU2X0MgKi8KKworI2VuZGlmIC8qIE1CRURUTFNfU0VMRl9URVNUICovCisKKyNpZmRlZiBfX2NwbHVzcGx1cworfQorI2VuZGlmCisKKyNlbmRpZiAvKiBtYmVkdGxzX3NoYTI1Ni5oICovCmRpZmYgLS1naXQgYS9pbmNsdWRlL21iZWR0bHMvc2hhMy5oIGIvdGYtcHNhLWNyeXB0by9kcml2ZXJzL2J1aWx0aW4vaW5jbHVkZS9tYmVkdGxzL3NoYTMuaApzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gaW5jbHVkZS9tYmVkdGxzL3NoYTMuaApyZW5hbWUgdG8gdGYtcHNhLWNyeXB0by9kcml2ZXJzL2J1aWx0aW4vaW5jbHVkZS9tYmVkdGxzL3NoYTMuaApkaWZmIC0tZ2l0IGEvdGYtcHNhLWNyeXB0by9kcml2ZXJzL2J1aWx0aW4vaW5jbHVkZS9tYmVkdGxzL3NoYTUxMi5oIGIvdGYtcHNhLWNyeXB0by9kcml2ZXJzL2J1aWx0aW4vaW5jbHVkZS9tYmVkdGxzL3NoYTUxMi5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjAwMmZlOWQKLS0tIC9kZXYvbnVsbAorKysgYi90Zi1wc2EtY3J5cHRvL2RyaXZlcnMvYnVpbHRpbi9pbmNsdWRlL21iZWR0bHMvc2hhNTEyLmgKQEAgLTAsMCArMSwyMDAgQEAKKy8qKgorICogXGZpbGUgc2hhNTEyLmgKKyAqIFxicmllZiBUaGlzIGZpbGUgY29udGFpbnMgU0hBLTM4NCBhbmQgU0hBLTUxMiBkZWZpbml0aW9ucyBhbmQgZnVuY3Rpb25zLgorICoKKyAqIFRoZSBTZWN1cmUgSGFzaCBBbGdvcml0aG1zIDM4NCBhbmQgNTEyIChTSEEtMzg0IGFuZCBTSEEtNTEyKSBjcnlwdG9ncmFwaGljCisgKiBoYXNoIGZ1bmN0aW9ucyBhcmUgZGVmaW5lZCBpbiA8ZW0+RklQUyAxODAtNDogU2VjdXJlIEhhc2ggU3RhbmRhcmQgKFNIUyk8L2VtPi4KKyAqLworLyoKKyAqICBDb3B5cmlnaHQgVGhlIE1iZWQgVExTIENvbnRyaWJ1dG9ycworICogIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wIE9SIEdQTC0yLjAtb3ItbGF0ZXIKKyAqLworI2lmbmRlZiBNQkVEVExTX1NIQTUxMl9ICisjZGVmaW5lIE1CRURUTFNfU0hBNTEyX0gKKyNpbmNsdWRlICJtYmVkdGxzL3ByaXZhdGVfYWNjZXNzLmgiCisKKyNpbmNsdWRlICJtYmVkdGxzL2J1aWxkX2luZm8uaCIKKworI2luY2x1ZGUgPHN0ZGRlZi5oPgorI2luY2x1ZGUgPHN0ZGludC5oPgorCisvKiogU0hBLTUxMiBpbnB1dCBkYXRhIHdhcyBtYWxmb3JtZWQuICovCisjZGVmaW5lIE1CRURUTFNfRVJSX1NIQTUxMl9CQURfSU5QVVRfREFUQSAgICAgICAgICAgICAgICAgLTB4MDA3NQorCisjaWZkZWYgX19jcGx1c3BsdXMKK2V4dGVybiAiQyIgeworI2VuZGlmCisKKy8qKgorICogXGJyaWVmICAgICAgICAgIFRoZSBTSEEtNTEyIGNvbnRleHQgc3RydWN0dXJlLgorICoKKyAqICAgICAgICAgICAgICAgICBUaGUgc3RydWN0dXJlIGlzIHVzZWQgYm90aCBmb3IgU0hBLTM4NCBhbmQgZm9yIFNIQS01MTIKKyAqICAgICAgICAgICAgICAgICBjaGVja3N1bSBjYWxjdWxhdGlvbnMuIFRoZSBjaG9pY2UgYmV0d2VlbiB0aGVzZSB0d28gaXMKKyAqICAgICAgICAgICAgICAgICBtYWRlIGluIHRoZSBjYWxsIHRvIG1iZWR0bHNfc2hhNTEyX3N0YXJ0cygpLgorICovCit0eXBlZGVmIHN0cnVjdCBtYmVkdGxzX3NoYTUxMl9jb250ZXh0IHsKKyAgICB1aW50NjRfdCBNQkVEVExTX1BSSVZBVEUodG90YWwpWzJdOyAgICAgICAgICAvKiE8IFRoZSBudW1iZXIgb2YgQnl0ZXMgcHJvY2Vzc2VkLiAqLworICAgIHVpbnQ2NF90IE1CRURUTFNfUFJJVkFURShzdGF0ZSlbOF07ICAgICAgICAgIC8qITwgVGhlIGludGVybWVkaWF0ZSBkaWdlc3Qgc3RhdGUuICovCisgICAgdW5zaWduZWQgY2hhciBNQkVEVExTX1BSSVZBVEUoYnVmZmVyKVsxMjhdOyAgLyohPCBUaGUgZGF0YSBibG9jayBiZWluZyBwcm9jZXNzZWQuICovCisjaWYgZGVmaW5lZChNQkVEVExTX1NIQTM4NF9DKQorICAgIGludCBNQkVEVExTX1BSSVZBVEUoaXMzODQpOyAgICAgICAgICAgICAgICAgIC8qITwgRGV0ZXJtaW5lcyB3aGljaCBmdW5jdGlvbiB0byB1c2U6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwOiBVc2UgU0hBLTUxMiwgb3IgMTogVXNlIFNIQS0zODQuICovCisjZW5kaWYKK30KK21iZWR0bHNfc2hhNTEyX2NvbnRleHQ7CisKKy8qKgorICogXGJyaWVmICAgICAgICAgIFRoaXMgZnVuY3Rpb24gaW5pdGlhbGl6ZXMgYSBTSEEtNTEyIGNvbnRleHQuCisgKgorICogXHBhcmFtIGN0eCAgICAgIFRoZSBTSEEtNTEyIGNvbnRleHQgdG8gaW5pdGlhbGl6ZS4gVGhpcyBtdXN0CisgKiAgICAgICAgICAgICAgICAgbm90IGJlIFxjIE5VTEwuCisgKi8KK3ZvaWQgbWJlZHRsc19zaGE1MTJfaW5pdChtYmVkdGxzX3NoYTUxMl9jb250ZXh0ICpjdHgpOworCisvKioKKyAqIFxicmllZiAgICAgICAgICBUaGlzIGZ1bmN0aW9uIGNsZWFycyBhIFNIQS01MTIgY29udGV4dC4KKyAqCisgKiBccGFyYW0gY3R4ICAgICAgVGhlIFNIQS01MTIgY29udGV4dCB0byBjbGVhci4gVGhpcyBtYXkgYmUgXGMgTlVMTCwKKyAqICAgICAgICAgICAgICAgICBpbiB3aGljaCBjYXNlIHRoaXMgZnVuY3Rpb24gZG9lcyBub3RoaW5nLiBJZiBpdAorICogICAgICAgICAgICAgICAgIGlzIG5vdCBcYyBOVUxMLCBpdCBtdXN0IHBvaW50IHRvIGFuIGluaXRpYWxpemVkCisgKiAgICAgICAgICAgICAgICAgU0hBLTUxMiBjb250ZXh0LgorICovCit2b2lkIG1iZWR0bHNfc2hhNTEyX2ZyZWUobWJlZHRsc19zaGE1MTJfY29udGV4dCAqY3R4KTsKKworLyoqCisgKiBcYnJpZWYgICAgICAgICAgVGhpcyBmdW5jdGlvbiBjbG9uZXMgdGhlIHN0YXRlIG9mIGEgU0hBLTUxMiBjb250ZXh0LgorICoKKyAqIFxwYXJhbSBkc3QgICAgICBUaGUgZGVzdGluYXRpb24gY29udGV4dC4gVGhpcyBtdXN0IGJlIGluaXRpYWxpemVkLgorICogXHBhcmFtIHNyYyAgICAgIFRoZSBjb250ZXh0IHRvIGNsb25lLiBUaGlzIG11c3QgYmUgaW5pdGlhbGl6ZWQuCisgKi8KK3ZvaWQgbWJlZHRsc19zaGE1MTJfY2xvbmUobWJlZHRsc19zaGE1MTJfY29udGV4dCAqZHN0LAorICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBtYmVkdGxzX3NoYTUxMl9jb250ZXh0ICpzcmMpOworCisvKioKKyAqIFxicmllZiAgICAgICAgICBUaGlzIGZ1bmN0aW9uIHN0YXJ0cyBhIFNIQS0zODQgb3IgU0hBLTUxMiBjaGVja3N1bQorICogICAgICAgICAgICAgICAgIGNhbGN1bGF0aW9uLgorICoKKyAqIFxwYXJhbSBjdHggICAgICBUaGUgU0hBLTUxMiBjb250ZXh0IHRvIHVzZS4gVGhpcyBtdXN0IGJlIGluaXRpYWxpemVkLgorICogXHBhcmFtIGlzMzg0ICAgIERldGVybWluZXMgd2hpY2ggZnVuY3Rpb24gdG8gdXNlLiBUaGlzIG11c3QgYmUKKyAqICAgICAgICAgICAgICAgICBlaXRoZXIgXGMgMCBmb3IgU0hBLTUxMiwgb3IgXGMgMSBmb3IgU0hBLTM4NC4KKyAqCisgKiBcbm90ZSAgICAgICAgICAgaXMzODQgbXVzdCBiZSBkZWZpbmVkIGFjY29yZGluZ2x5IHRvIHRoZSBlbmFibGVkCisgKiAgICAgICAgICAgICAgICAgTUJFRFRMU19TSEEzODRfQy9NQkVEVExTX1NIQTUxMl9DIHN5bWJvbHMgb3RoZXJ3aXNlIHRoZQorICogICAgICAgICAgICAgICAgIGZ1bmN0aW9uIHdpbGwgcmV0dXJuICNNQkVEVExTX0VSUl9TSEE1MTJfQkFEX0lOUFVUX0RBVEEuCisgKgorICogXHJldHVybiAgICAgICAgIFxjIDAgb24gc3VjY2Vzcy4KKyAqIFxyZXR1cm4gICAgICAgICBBIG5lZ2F0aXZlIGVycm9yIGNvZGUgb24gZmFpbHVyZS4KKyAqLworaW50IG1iZWR0bHNfc2hhNTEyX3N0YXJ0cyhtYmVkdGxzX3NoYTUxMl9jb250ZXh0ICpjdHgsIGludCBpczM4NCk7CisKKy8qKgorICogXGJyaWVmICAgICAgICAgIFRoaXMgZnVuY3Rpb24gZmVlZHMgYW4gaW5wdXQgYnVmZmVyIGludG8gYW4gb25nb2luZworICogICAgICAgICAgICAgICAgIFNIQS01MTIgY2hlY2tzdW0gY2FsY3VsYXRpb24uCisgKgorICogXHBhcmFtIGN0eCAgICAgIFRoZSBTSEEtNTEyIGNvbnRleHQuIFRoaXMgbXVzdCBiZSBpbml0aWFsaXplZAorICogICAgICAgICAgICAgICAgIGFuZCBoYXZlIGEgaGFzaCBvcGVyYXRpb24gc3RhcnRlZC4KKyAqIFxwYXJhbSBpbnB1dCAgICBUaGUgYnVmZmVyIGhvbGRpbmcgdGhlIGlucHV0IGRhdGEuIFRoaXMgbXVzdAorICogICAgICAgICAgICAgICAgIGJlIGEgcmVhZGFibGUgYnVmZmVyIG9mIGxlbmd0aCBccCBpbGVuIEJ5dGVzLgorICogXHBhcmFtIGlsZW4gICAgIFRoZSBsZW5ndGggb2YgdGhlIGlucHV0IGRhdGEgaW4gQnl0ZXMuCisgKgorICogXHJldHVybiAgICAgICAgIFxjIDAgb24gc3VjY2Vzcy4KKyAqIFxyZXR1cm4gICAgICAgICBBIG5lZ2F0aXZlIGVycm9yIGNvZGUgb24gZmFpbHVyZS4KKyAqLworaW50IG1iZWR0bHNfc2hhNTEyX3VwZGF0ZShtYmVkdGxzX3NoYTUxMl9jb250ZXh0ICpjdHgsCisgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgKmlucHV0LAorICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgaWxlbik7CisKKy8qKgorICogXGJyaWVmICAgICAgICAgIFRoaXMgZnVuY3Rpb24gZmluaXNoZXMgdGhlIFNIQS01MTIgb3BlcmF0aW9uLCBhbmQgd3JpdGVzCisgKiAgICAgICAgICAgICAgICAgdGhlIHJlc3VsdCB0byB0aGUgb3V0cHV0IGJ1ZmZlci4KKyAqCisgKiBccGFyYW0gY3R4ICAgICAgVGhlIFNIQS01MTIgY29udGV4dC4gVGhpcyBtdXN0IGJlIGluaXRpYWxpemVkCisgKiAgICAgICAgICAgICAgICAgYW5kIGhhdmUgYSBoYXNoIG9wZXJhdGlvbiBzdGFydGVkLgorICogXHBhcmFtIG91dHB1dCAgIFRoZSBTSEEtMzg0IG9yIFNIQS01MTIgY2hlY2tzdW0gcmVzdWx0LgorICogICAgICAgICAgICAgICAgIFRoaXMgbXVzdCBiZSBhIHdyaXRhYmxlIGJ1ZmZlciBvZiBsZW5ndGggXGMgNjQgYnl0ZXMKKyAqICAgICAgICAgICAgICAgICBmb3IgU0hBLTUxMiwgXGMgNDggYnl0ZXMgZm9yIFNIQS0zODQuCisgKgorICogXHJldHVybiAgICAgICAgIFxjIDAgb24gc3VjY2Vzcy4KKyAqIFxyZXR1cm4gICAgICAgICBBIG5lZ2F0aXZlIGVycm9yIGNvZGUgb24gZmFpbHVyZS4KKyAqLworaW50IG1iZWR0bHNfc2hhNTEyX2ZpbmlzaChtYmVkdGxzX3NoYTUxMl9jb250ZXh0ICpjdHgsCisgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGNoYXIgKm91dHB1dCk7CisKKy8qKgorICogXGJyaWVmICAgICAgICAgIFRoaXMgZnVuY3Rpb24gcHJvY2Vzc2VzIGEgc2luZ2xlIGRhdGEgYmxvY2sgd2l0aGluCisgKiAgICAgICAgICAgICAgICAgdGhlIG9uZ29pbmcgU0hBLTUxMiBjb21wdXRhdGlvbi4KKyAqICAgICAgICAgICAgICAgICBUaGlzIGZ1bmN0aW9uIGlzIGZvciBpbnRlcm5hbCB1c2Ugb25seS4KKyAqCisgKiBccGFyYW0gY3R4ICAgICAgVGhlIFNIQS01MTIgY29udGV4dC4gVGhpcyBtdXN0IGJlIGluaXRpYWxpemVkLgorICogXHBhcmFtIGRhdGEgICAgIFRoZSBidWZmZXIgaG9sZGluZyBvbmUgYmxvY2sgb2YgZGF0YS4gVGhpcworICogICAgICAgICAgICAgICAgIG11c3QgYmUgYSByZWFkYWJsZSBidWZmZXIgb2YgbGVuZ3RoIFxjIDEyOCBCeXRlcy4KKyAqCisgKiBccmV0dXJuICAgICAgICAgXGMgMCBvbiBzdWNjZXNzLgorICogXHJldHVybiAgICAgICAgIEEgbmVnYXRpdmUgZXJyb3IgY29kZSBvbiBmYWlsdXJlLgorICovCitpbnQgbWJlZHRsc19pbnRlcm5hbF9zaGE1MTJfcHJvY2VzcyhtYmVkdGxzX3NoYTUxMl9jb250ZXh0ICpjdHgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1bnNpZ25lZCBjaGFyIGRhdGFbMTI4XSk7CisKKy8qKgorICogXGJyaWVmICAgICAgICAgIFRoaXMgZnVuY3Rpb24gY2FsY3VsYXRlcyB0aGUgU0hBLTUxMiBvciBTSEEtMzg0CisgKiAgICAgICAgICAgICAgICAgY2hlY2tzdW0gb2YgYSBidWZmZXIuCisgKgorICogICAgICAgICAgICAgICAgIFRoZSBmdW5jdGlvbiBhbGxvY2F0ZXMgdGhlIGNvbnRleHQsIHBlcmZvcm1zIHRoZQorICogICAgICAgICAgICAgICAgIGNhbGN1bGF0aW9uLCBhbmQgZnJlZXMgdGhlIGNvbnRleHQuCisgKgorICogICAgICAgICAgICAgICAgIFRoZSBTSEEtNTEyIHJlc3VsdCBpcyBjYWxjdWxhdGVkIGFzCisgKiAgICAgICAgICAgICAgICAgb3V0cHV0ID0gU0hBLTUxMihpbnB1dCBidWZmZXIpLgorICoKKyAqIFxwYXJhbSBpbnB1dCAgICBUaGUgYnVmZmVyIGhvbGRpbmcgdGhlIGlucHV0IGRhdGEuIFRoaXMgbXVzdCBiZQorICogICAgICAgICAgICAgICAgIGEgcmVhZGFibGUgYnVmZmVyIG9mIGxlbmd0aCBccCBpbGVuIEJ5dGVzLgorICogXHBhcmFtIGlsZW4gICAgIFRoZSBsZW5ndGggb2YgdGhlIGlucHV0IGRhdGEgaW4gQnl0ZXMuCisgKiBccGFyYW0gb3V0cHV0ICAgVGhlIFNIQS0zODQgb3IgU0hBLTUxMiBjaGVja3N1bSByZXN1bHQuCisgKiAgICAgICAgICAgICAgICAgVGhpcyBtdXN0IGJlIGEgd3JpdGFibGUgYnVmZmVyIG9mIGxlbmd0aCBcYyA2NCBieXRlcworICogICAgICAgICAgICAgICAgIGZvciBTSEEtNTEyLCBcYyA0OCBieXRlcyBmb3IgU0hBLTM4NC4KKyAqIFxwYXJhbSBpczM4NCAgICBEZXRlcm1pbmVzIHdoaWNoIGZ1bmN0aW9uIHRvIHVzZS4gVGhpcyBtdXN0IGJlIGVpdGhlcgorICogICAgICAgICAgICAgICAgIFxjIDAgZm9yIFNIQS01MTIsIG9yIFxjIDEgZm9yIFNIQS0zODQuCisgKgorICogXG5vdGUgICAgICAgICAgIGlzMzg0IG11c3QgYmUgZGVmaW5lZCBhY2NvcmRpbmdseSB3aXRoIHRoZSBzdXBwb3J0ZWQKKyAqICAgICAgICAgICAgICAgICBzeW1ib2xzIGluIHRoZSBjb25maWcgZmlsZS4gSWY6CisgKiAgICAgICAgICAgICAgICAgLSBpczM4NCBpcyAwLCBidXQgXGMgTUJFRFRMU19TSEEzODRfQyBpcyBub3QgZGVmaW5lZCwgb3IKKyAqICAgICAgICAgICAgICAgICAtIGlzMzg0IGlzIDEsIGJ1dCBcYyBNQkVEVExTX1NIQTUxMl9DIGlzIG5vdCBkZWZpbmVkCisgKiAgICAgICAgICAgICAgICAgdGhlbiB0aGUgZnVuY3Rpb24gd2lsbCByZXR1cm4KKyAqICAgICAgICAgICAgICAgICAjTUJFRFRMU19FUlJfU0hBNTEyX0JBRF9JTlBVVF9EQVRBLgorICoKKyAqIFxyZXR1cm4gICAgICAgICBcYyAwIG9uIHN1Y2Nlc3MuCisgKiBccmV0dXJuICAgICAgICAgQSBuZWdhdGl2ZSBlcnJvciBjb2RlIG9uIGZhaWx1cmUuCisgKi8KK2ludCBtYmVkdGxzX3NoYTUxMihjb25zdCB1bnNpZ25lZCBjaGFyICppbnB1dCwKKyAgICAgICAgICAgICAgICAgICBzaXplX3QgaWxlbiwKKyAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBjaGFyICpvdXRwdXQsCisgICAgICAgICAgICAgICAgICAgaW50IGlzMzg0KTsKKworI2lmIGRlZmluZWQoTUJFRFRMU19TRUxGX1RFU1QpCisKKyNpZiBkZWZpbmVkKE1CRURUTFNfU0hBMzg0X0MpCisvKioKKyAqIFxicmllZiAgICAgICAgICBUaGUgU0hBLTM4NCBjaGVja3VwIHJvdXRpbmUuCisgKgorICogXHJldHVybiAgICAgICAgIFxjIDAgb24gc3VjY2Vzcy4KKyAqIFxyZXR1cm4gICAgICAgICBcYyAxIG9uIGZhaWx1cmUuCisgKi8KK2ludCBtYmVkdGxzX3NoYTM4NF9zZWxmX3Rlc3QoaW50IHZlcmJvc2UpOworI2VuZGlmIC8qIE1CRURUTFNfU0hBMzg0X0MgKi8KKworI2lmIGRlZmluZWQoTUJFRFRMU19TSEE1MTJfQykKKy8qKgorICogXGJyaWVmICAgICAgICAgIFRoZSBTSEEtNTEyIGNoZWNrdXAgcm91dGluZS4KKyAqCisgKiBccmV0dXJuICAgICAgICAgXGMgMCBvbiBzdWNjZXNzLgorICogXHJldHVybiAgICAgICAgIFxjIDEgb24gZmFpbHVyZS4KKyAqLworaW50IG1iZWR0bHNfc2hhNTEyX3NlbGZfdGVzdChpbnQgdmVyYm9zZSk7CisjZW5kaWYgLyogTUJFRFRMU19TSEE1MTJfQyAqLworCisjZW5kaWYgLyogTUJFRFRMU19TRUxGX1RFU1QgKi8KKworI2lmZGVmIF9fY3BsdXNwbHVzCit9CisjZW5kaWYKKworI2VuZGlmIC8qIG1iZWR0bHNfc2hhNTEyLmggKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvbWJlZHRscy90aHJlYWRpbmcuaCBiL3RmLXBzYS1jcnlwdG8vZHJpdmVycy9idWlsdGluL2luY2x1ZGUvbWJlZHRscy90aHJlYWRpbmcuaApzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gaW5jbHVkZS9tYmVkdGxzL3RocmVhZGluZy5oCnJlbmFtZSB0byB0Zi1wc2EtY3J5cHRvL2RyaXZlcnMvYnVpbHRpbi9pbmNsdWRlL21iZWR0bHMvdGhyZWFkaW5nLmgKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbWJlZHRscy90aW1pbmcuaCBiL3RmLXBzYS1jcnlwdG8vZHJpdmVycy9idWlsdGluL2luY2x1ZGUvbWJlZHRscy90aW1pbmcuaApzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gaW5jbHVkZS9tYmVkdGxzL3RpbWluZy5oCnJlbmFtZSB0byB0Zi1wc2EtY3J5cHRvL2RyaXZlcnMvYnVpbHRpbi9pbmNsdWRlL21iZWR0bHMvdGltaW5nLmgKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbWJlZHRscy92ZXJzaW9uLmggYi90Zi1wc2EtY3J5cHRvL2RyaXZlcnMvYnVpbHRpbi9pbmNsdWRlL21iZWR0bHMvdmVyc2lvbi5oCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBpbmNsdWRlL21iZWR0bHMvdmVyc2lvbi5oCnJlbmFtZSB0byB0Zi1wc2EtY3J5cHRvL2RyaXZlcnMvYnVpbHRpbi9pbmNsdWRlL21iZWR0bHMvdmVyc2lvbi5oCmRpZmYgLS1naXQgYS90Zi1wc2EtY3J5cHRvL2RyaXZlcnMvYnVpbHRpbi9zcmMvLmdpdGlnbm9yZSBiL3RmLXBzYS1jcnlwdG8vZHJpdmVycy9idWlsdGluL3NyYy8uZ2l0aWdub3JlCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmYzOTIzYjEKLS0tIC9kZXYvbnVsbAorKysgYi90Zi1wc2EtY3J5cHRvL2RyaXZlcnMvYnVpbHRpbi9zcmMvLmdpdGlnbm9yZQpAQCAtMCwwICsxLDQgQEAKKyMjI1NUQVJUX0dFTkVSQVRFRF9GSUxFUyMjIworL2Vycm9yLmMKKy92ZXJzaW9uX2ZlYXR1cmVzLmMKKyMjI0VORF9HRU5FUkFURURfRklMRVMjIyMKZGlmZiAtLWdpdCBhL3Rlc3RzL2RhdGFfZmlsZXMvYmFzZTY0L2VtcHR5LnR4dCBiL3RmLXBzYS1jcnlwdG8vZHJpdmVycy9idWlsdGluL3NyYy9DTWFrZUxpc3RzLnR4dApzaW1pbGFyaXR5IGluZGV4IDEwMCUKY29weSBmcm9tIHRlc3RzL2RhdGFfZmlsZXMvYmFzZTY0L2VtcHR5LnR4dApjb3B5IHRvIHRmLXBzYS1jcnlwdG8vZHJpdmVycy9idWlsdGluL3NyYy9DTWFrZUxpc3RzLnR4dApkaWZmIC0tZ2l0IGEvdGYtcHNhLWNyeXB0by9kcml2ZXJzL2J1aWx0aW4vc3JjL2Flcy5jIGIvdGYtcHNhLWNyeXB0by9kcml2ZXJzL2J1aWx0aW4vc3JjL2Flcy5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjY3ZmEyZDUKLS0tIC9kZXYvbnVsbAorKysgYi90Zi1wc2EtY3J5cHRvL2RyaXZlcnMvYnVpbHRpbi9zcmMvYWVzLmMKQEAgLTAsMCArMSwyMjQwIEBACisvKgorICogIEZJUFMtMTk3IGNvbXBsaWFudCBBRVMgaW1wbGVtZW50YXRpb24KKyAqCisgKiAgQ29weXJpZ2h0IFRoZSBNYmVkIFRMUyBDb250cmlidXRvcnMKKyAqICBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMCBPUiBHUEwtMi4wLW9yLWxhdGVyCisgKi8KKy8qCisgKiAgVGhlIEFFUyBibG9jayBjaXBoZXIgd2FzIGRlc2lnbmVkIGJ5IFZpbmNlbnQgUmlqbWVuIGFuZCBKb2FuIERhZW1lbi4KKyAqCisgKiAgaHR0cHM6Ly9jc3JjLm5pc3QuZ292L2NzcmMvbWVkaWEvcHJvamVjdHMvY3J5cHRvZ3JhcGhpYy1zdGFuZGFyZHMtYW5kLWd1aWRlbGluZXMvZG9jdW1lbnRzL2Flcy1kZXZlbG9wbWVudC9yaWpuZGFlbC1hbW1lbmRlZC5wZGYKKyAqICBodHRwOi8vY3NyYy5uaXN0Lmdvdi9wdWJsaWNhdGlvbnMvZmlwcy9maXBzMTk3L2ZpcHMtMTk3LnBkZgorICovCisKKyNpbmNsdWRlICJjb21tb24uaCIKKworI2lmIGRlZmluZWQoTUJFRFRMU19BRVNfQykKKworI2luY2x1ZGUgPHN0cmluZy5oPgorCisjaW5jbHVkZSAibWJlZHRscy9hZXMuaCIKKyNpbmNsdWRlICJtYmVkdGxzL3BsYXRmb3JtLmgiCisjaW5jbHVkZSAibWJlZHRscy9wbGF0Zm9ybV91dGlsLmgiCisjaW5jbHVkZSAibWJlZHRscy9lcnJvci5oIgorCisjaWYgZGVmaW5lZChNQkVEVExTX0FFU19VU0VfSEFSRFdBUkVfT05MWSkKKyNpZiAhKChkZWZpbmVkKE1CRURUTFNfQVJDSF9JU19BUk1WOF9BKSAmJiBkZWZpbmVkKE1CRURUTFNfQUVTQ0VfQykpIHx8IFwKKyAgICAoZGVmaW5lZChNQkVEVExTX0FSQ0hfSVNfWDY0KSAgICAgICAmJiBkZWZpbmVkKE1CRURUTFNfQUVTTklfQykpIHx8IFwKKyAgICAoZGVmaW5lZChNQkVEVExTX0FSQ0hfSVNfWDg2KSAgICAgICAmJiBkZWZpbmVkKE1CRURUTFNfQUVTTklfQykpKQorI2Vycm9yICJNQkVEVExTX0FFU19VU0VfSEFSRFdBUkVfT05MWSBkZWZpbmVkLCBidXQgbm90IGFsbCBwcmVyZXF1aXNpdGVzIgorI2VuZGlmCisjZW5kaWYKKworI2lmIGRlZmluZWQoTUJFRFRMU19BRVNOSV9DKQorI2luY2x1ZGUgImFlc25pLmgiCisjZW5kaWYKKyNpZiBkZWZpbmVkKE1CRURUTFNfQUVTQ0VfQykKKyNpbmNsdWRlICJhZXNjZS5oIgorI2VuZGlmCisKKyNpbmNsdWRlICJtYmVkdGxzL3BsYXRmb3JtLmgiCisjaW5jbHVkZSAiY3RyLmgiCisKKy8qCisgKiBUaGlzIGlzIGEgY29udmVuaWVuY2Ugc2hvcnRoYW5kIG1hY3JvIHRvIGNoZWNrIGlmIHdlIG5lZWQgcmV2ZXJzZSBTLWJveCBhbmQKKyAqIHJldmVyc2UgdGFibGVzLiBJdCdzIHByaXZhdGUgYW5kIG9ubHkgZGVmaW5lZCBpbiB0aGlzIGZpbGUuCisgKi8KKyNpZiAoIWRlZmluZWQoTUJFRFRMU19BRVNfREVDUllQVF9BTFQpIHx8IFwKKyAgICAoIWRlZmluZWQoTUJFRFRMU19BRVNfU0VUS0VZX0RFQ19BTFQpICYmICFkZWZpbmVkKE1CRURUTFNfQUVTX1VTRV9IQVJEV0FSRV9PTkxZKSkpICYmIFwKKyAgICAhZGVmaW5lZChNQkVEVExTX0JMT0NLX0NJUEhFUl9OT19ERUNSWVBUKQorI2RlZmluZSBNQkVEVExTX0FFU19ORUVEX1JFVkVSU0VfVEFCTEVTCisjZW5kaWYKKworI2lmIGRlZmluZWQoTUJFRFRMU19BRVNfUk9NX1RBQkxFUykKKy8qCisgKiBGb3J3YXJkIFMtYm94CisgKi8KK01CRURUTFNfTUFZQkVfVU5VU0VEIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBjaGFyIEZTYlsyNTZdID0KK3sKKyAgICAweDYzLCAweDdDLCAweDc3LCAweDdCLCAweEYyLCAweDZCLCAweDZGLCAweEM1LAorICAgIDB4MzAsIDB4MDEsIDB4NjcsIDB4MkIsIDB4RkUsIDB4RDcsIDB4QUIsIDB4NzYsCisgICAgMHhDQSwgMHg4MiwgMHhDOSwgMHg3RCwgMHhGQSwgMHg1OSwgMHg0NywgMHhGMCwKKyAgICAweEFELCAweEQ0LCAweEEyLCAweEFGLCAweDlDLCAweEE0LCAweDcyLCAweEMwLAorICAgIDB4QjcsIDB4RkQsIDB4OTMsIDB4MjYsIDB4MzYsIDB4M0YsIDB4RjcsIDB4Q0MsCisgICAgMHgzNCwgMHhBNSwgMHhFNSwgMHhGMSwgMHg3MSwgMHhEOCwgMHgzMSwgMHgxNSwKKyAgICAweDA0LCAweEM3LCAweDIzLCAweEMzLCAweDE4LCAweDk2LCAweDA1LCAweDlBLAorICAgIDB4MDcsIDB4MTIsIDB4ODAsIDB4RTIsIDB4RUIsIDB4MjcsIDB4QjIsIDB4NzUsCisgICAgMHgwOSwgMHg4MywgMHgyQywgMHgxQSwgMHgxQiwgMHg2RSwgMHg1QSwgMHhBMCwKKyAgICAweDUyLCAweDNCLCAweEQ2LCAweEIzLCAweDI5LCAweEUzLCAweDJGLCAweDg0LAorICAgIDB4NTMsIDB4RDEsIDB4MDAsIDB4RUQsIDB4MjAsIDB4RkMsIDB4QjEsIDB4NUIsCisgICAgMHg2QSwgMHhDQiwgMHhCRSwgMHgzOSwgMHg0QSwgMHg0QywgMHg1OCwgMHhDRiwKKyAgICAweEQwLCAweEVGLCAweEFBLCAweEZCLCAweDQzLCAweDRELCAweDMzLCAweDg1LAorICAgIDB4NDUsIDB4RjksIDB4MDIsIDB4N0YsIDB4NTAsIDB4M0MsIDB4OUYsIDB4QTgsCisgICAgMHg1MSwgMHhBMywgMHg0MCwgMHg4RiwgMHg5MiwgMHg5RCwgMHgzOCwgMHhGNSwKKyAgICAweEJDLCAweEI2LCAweERBLCAweDIxLCAweDEwLCAweEZGLCAweEYzLCAweEQyLAorICAgIDB4Q0QsIDB4MEMsIDB4MTMsIDB4RUMsIDB4NUYsIDB4OTcsIDB4NDQsIDB4MTcsCisgICAgMHhDNCwgMHhBNywgMHg3RSwgMHgzRCwgMHg2NCwgMHg1RCwgMHgxOSwgMHg3MywKKyAgICAweDYwLCAweDgxLCAweDRGLCAweERDLCAweDIyLCAweDJBLCAweDkwLCAweDg4LAorICAgIDB4NDYsIDB4RUUsIDB4QjgsIDB4MTQsIDB4REUsIDB4NUUsIDB4MEIsIDB4REIsCisgICAgMHhFMCwgMHgzMiwgMHgzQSwgMHgwQSwgMHg0OSwgMHgwNiwgMHgyNCwgMHg1QywKKyAgICAweEMyLCAweEQzLCAweEFDLCAweDYyLCAweDkxLCAweDk1LCAweEU0LCAweDc5LAorICAgIDB4RTcsIDB4QzgsIDB4MzcsIDB4NkQsIDB4OEQsIDB4RDUsIDB4NEUsIDB4QTksCisgICAgMHg2QywgMHg1NiwgMHhGNCwgMHhFQSwgMHg2NSwgMHg3QSwgMHhBRSwgMHgwOCwKKyAgICAweEJBLCAweDc4LCAweDI1LCAweDJFLCAweDFDLCAweEE2LCAweEI0LCAweEM2LAorICAgIDB4RTgsIDB4REQsIDB4NzQsIDB4MUYsIDB4NEIsIDB4QkQsIDB4OEIsIDB4OEEsCisgICAgMHg3MCwgMHgzRSwgMHhCNSwgMHg2NiwgMHg0OCwgMHgwMywgMHhGNiwgMHgwRSwKKyAgICAweDYxLCAweDM1LCAweDU3LCAweEI5LCAweDg2LCAweEMxLCAweDFELCAweDlFLAorICAgIDB4RTEsIDB4RjgsIDB4OTgsIDB4MTEsIDB4NjksIDB4RDksIDB4OEUsIDB4OTQsCisgICAgMHg5QiwgMHgxRSwgMHg4NywgMHhFOSwgMHhDRSwgMHg1NSwgMHgyOCwgMHhERiwKKyAgICAweDhDLCAweEExLCAweDg5LCAweDBELCAweEJGLCAweEU2LCAweDQyLCAweDY4LAorICAgIDB4NDEsIDB4OTksIDB4MkQsIDB4MEYsIDB4QjAsIDB4NTQsIDB4QkIsIDB4MTYKK307CisKKy8qCisgKiBGb3J3YXJkIHRhYmxlcworICovCisjZGVmaW5lIEZUIFwKK1wKKyAgICBWKEE1LCA2MywgNjMsIEM2KSwgVig4NCwgN0MsIDdDLCBGOCksIFYoOTksIDc3LCA3NywgRUUpLCBWKDhELCA3QiwgN0IsIEY2KSwgXAorICAgIFYoMEQsIEYyLCBGMiwgRkYpLCBWKEJELCA2QiwgNkIsIEQ2KSwgVihCMSwgNkYsIDZGLCBERSksIFYoNTQsIEM1LCBDNSwgOTEpLCBcCisgICAgVig1MCwgMzAsIDMwLCA2MCksIFYoMDMsIDAxLCAwMSwgMDIpLCBWKEE5LCA2NywgNjcsIENFKSwgVig3RCwgMkIsIDJCLCA1NiksIFwKKyAgICBWKDE5LCBGRSwgRkUsIEU3KSwgVig2MiwgRDcsIEQ3LCBCNSksIFYoRTYsIEFCLCBBQiwgNEQpLCBWKDlBLCA3NiwgNzYsIEVDKSwgXAorICAgIFYoNDUsIENBLCBDQSwgOEYpLCBWKDlELCA4MiwgODIsIDFGKSwgVig0MCwgQzksIEM5LCA4OSksIFYoODcsIDdELCA3RCwgRkEpLCBcCisgICAgVigxNSwgRkEsIEZBLCBFRiksIFYoRUIsIDU5LCA1OSwgQjIpLCBWKEM5LCA0NywgNDcsIDhFKSwgVigwQiwgRjAsIEYwLCBGQiksIFwKKyAgICBWKEVDLCBBRCwgQUQsIDQxKSwgVig2NywgRDQsIEQ0LCBCMyksIFYoRkQsIEEyLCBBMiwgNUYpLCBWKEVBLCBBRiwgQUYsIDQ1KSwgXAorICAgIFYoQkYsIDlDLCA5QywgMjMpLCBWKEY3LCBBNCwgQTQsIDUzKSwgVig5NiwgNzIsIDcyLCBFNCksIFYoNUIsIEMwLCBDMCwgOUIpLCBcCisgICAgVihDMiwgQjcsIEI3LCA3NSksIFYoMUMsIEZELCBGRCwgRTEpLCBWKEFFLCA5MywgOTMsIDNEKSwgVig2QSwgMjYsIDI2LCA0QyksIFwKKyAgICBWKDVBLCAzNiwgMzYsIDZDKSwgVig0MSwgM0YsIDNGLCA3RSksIFYoMDIsIEY3LCBGNywgRjUpLCBWKDRGLCBDQywgQ0MsIDgzKSwgXAorICAgIFYoNUMsIDM0LCAzNCwgNjgpLCBWKEY0LCBBNSwgQTUsIDUxKSwgVigzNCwgRTUsIEU1LCBEMSksIFYoMDgsIEYxLCBGMSwgRjkpLCBcCisgICAgVig5MywgNzEsIDcxLCBFMiksIFYoNzMsIEQ4LCBEOCwgQUIpLCBWKDUzLCAzMSwgMzEsIDYyKSwgVigzRiwgMTUsIDE1LCAyQSksIFwKKyAgICBWKDBDLCAwNCwgMDQsIDA4KSwgVig1MiwgQzcsIEM3LCA5NSksIFYoNjUsIDIzLCAyMywgNDYpLCBWKDVFLCBDMywgQzMsIDlEKSwgXAorICAgIFYoMjgsIDE4LCAxOCwgMzApLCBWKEExLCA5NiwgOTYsIDM3KSwgVigwRiwgMDUsIDA1LCAwQSksIFYoQjUsIDlBLCA5QSwgMkYpLCBcCisgICAgVigwOSwgMDcsIDA3LCAwRSksIFYoMzYsIDEyLCAxMiwgMjQpLCBWKDlCLCA4MCwgODAsIDFCKSwgVigzRCwgRTIsIEUyLCBERiksIFwKKyAgICBWKDI2LCBFQiwgRUIsIENEKSwgVig2OSwgMjcsIDI3LCA0RSksIFYoQ0QsIEIyLCBCMiwgN0YpLCBWKDlGLCA3NSwgNzUsIEVBKSwgXAorICAgIFYoMUIsIDA5LCAwOSwgMTIpLCBWKDlFLCA4MywgODMsIDFEKSwgVig3NCwgMkMsIDJDLCA1OCksIFYoMkUsIDFBLCAxQSwgMzQpLCBcCisgICAgVigyRCwgMUIsIDFCLCAzNiksIFYoQjIsIDZFLCA2RSwgREMpLCBWKEVFLCA1QSwgNUEsIEI0KSwgVihGQiwgQTAsIEEwLCA1QiksIFwKKyAgICBWKEY2LCA1MiwgNTIsIEE0KSwgVig0RCwgM0IsIDNCLCA3NiksIFYoNjEsIEQ2LCBENiwgQjcpLCBWKENFLCBCMywgQjMsIDdEKSwgXAorICAgIFYoN0IsIDI5LCAyOSwgNTIpLCBWKDNFLCBFMywgRTMsIEREKSwgVig3MSwgMkYsIDJGLCA1RSksIFYoOTcsIDg0LCA4NCwgMTMpLCBcCisgICAgVihGNSwgNTMsIDUzLCBBNiksIFYoNjgsIEQxLCBEMSwgQjkpLCBWKDAwLCAwMCwgMDAsIDAwKSwgVigyQywgRUQsIEVELCBDMSksIFwKKyAgICBWKDYwLCAyMCwgMjAsIDQwKSwgVigxRiwgRkMsIEZDLCBFMyksIFYoQzgsIEIxLCBCMSwgNzkpLCBWKEVELCA1QiwgNUIsIEI2KSwgXAorICAgIFYoQkUsIDZBLCA2QSwgRDQpLCBWKDQ2LCBDQiwgQ0IsIDhEKSwgVihEOSwgQkUsIEJFLCA2NyksIFYoNEIsIDM5LCAzOSwgNzIpLCBcCisgICAgVihERSwgNEEsIDRBLCA5NCksIFYoRDQsIDRDLCA0QywgOTgpLCBWKEU4LCA1OCwgNTgsIEIwKSwgVig0QSwgQ0YsIENGLCA4NSksIFwKKyAgICBWKDZCLCBEMCwgRDAsIEJCKSwgVigyQSwgRUYsIEVGLCBDNSksIFYoRTUsIEFBLCBBQSwgNEYpLCBWKDE2LCBGQiwgRkIsIEVEKSwgXAorICAgIFYoQzUsIDQzLCA0MywgODYpLCBWKEQ3LCA0RCwgNEQsIDlBKSwgVig1NSwgMzMsIDMzLCA2NiksIFYoOTQsIDg1LCA4NSwgMTEpLCBcCisgICAgVihDRiwgNDUsIDQ1LCA4QSksIFYoMTAsIEY5LCBGOSwgRTkpLCBWKDA2LCAwMiwgMDIsIDA0KSwgVig4MSwgN0YsIDdGLCBGRSksIFwKKyAgICBWKEYwLCA1MCwgNTAsIEEwKSwgVig0NCwgM0MsIDNDLCA3OCksIFYoQkEsIDlGLCA5RiwgMjUpLCBWKEUzLCBBOCwgQTgsIDRCKSwgXAorICAgIFYoRjMsIDUxLCA1MSwgQTIpLCBWKEZFLCBBMywgQTMsIDVEKSwgVihDMCwgNDAsIDQwLCA4MCksIFYoOEEsIDhGLCA4RiwgMDUpLCBcCisgICAgVihBRCwgOTIsIDkyLCAzRiksIFYoQkMsIDlELCA5RCwgMjEpLCBWKDQ4LCAzOCwgMzgsIDcwKSwgVigwNCwgRjUsIEY1LCBGMSksIFwKKyAgICBWKERGLCBCQywgQkMsIDYzKSwgVihDMSwgQjYsIEI2LCA3NyksIFYoNzUsIERBLCBEQSwgQUYpLCBWKDYzLCAyMSwgMjEsIDQyKSwgXAorICAgIFYoMzAsIDEwLCAxMCwgMjApLCBWKDFBLCBGRiwgRkYsIEU1KSwgVigwRSwgRjMsIEYzLCBGRCksIFYoNkQsIEQyLCBEMiwgQkYpLCBcCisgICAgVig0QywgQ0QsIENELCA4MSksIFYoMTQsIDBDLCAwQywgMTgpLCBWKDM1LCAxMywgMTMsIDI2KSwgVigyRiwgRUMsIEVDLCBDMyksIFwKKyAgICBWKEUxLCA1RiwgNUYsIEJFKSwgVihBMiwgOTcsIDk3LCAzNSksIFYoQ0MsIDQ0LCA0NCwgODgpLCBWKDM5LCAxNywgMTcsIDJFKSwgXAorICAgIFYoNTcsIEM0LCBDNCwgOTMpLCBWKEYyLCBBNywgQTcsIDU1KSwgVig4MiwgN0UsIDdFLCBGQyksIFYoNDcsIDNELCAzRCwgN0EpLCBcCisgICAgVihBQywgNjQsIDY0LCBDOCksIFYoRTcsIDVELCA1RCwgQkEpLCBWKDJCLCAxOSwgMTksIDMyKSwgVig5NSwgNzMsIDczLCBFNiksIFwKKyAgICBWKEEwLCA2MCwgNjAsIEMwKSwgVig5OCwgODEsIDgxLCAxOSksIFYoRDEsIDRGLCA0RiwgOUUpLCBWKDdGLCBEQywgREMsIEEzKSwgXAorICAgIFYoNjYsIDIyLCAyMiwgNDQpLCBWKDdFLCAyQSwgMkEsIDU0KSwgVihBQiwgOTAsIDkwLCAzQiksIFYoODMsIDg4LCA4OCwgMEIpLCBcCisgICAgVihDQSwgNDYsIDQ2LCA4QyksIFYoMjksIEVFLCBFRSwgQzcpLCBWKEQzLCBCOCwgQjgsIDZCKSwgVigzQywgMTQsIDE0LCAyOCksIFwKKyAgICBWKDc5LCBERSwgREUsIEE3KSwgVihFMiwgNUUsIDVFLCBCQyksIFYoMUQsIDBCLCAwQiwgMTYpLCBWKDc2LCBEQiwgREIsIEFEKSwgXAorICAgIFYoM0IsIEUwLCBFMCwgREIpLCBWKDU2LCAzMiwgMzIsIDY0KSwgVig0RSwgM0EsIDNBLCA3NCksIFYoMUUsIDBBLCAwQSwgMTQpLCBcCisgICAgVihEQiwgNDksIDQ5LCA5MiksIFYoMEEsIDA2LCAwNiwgMEMpLCBWKDZDLCAyNCwgMjQsIDQ4KSwgVihFNCwgNUMsIDVDLCBCOCksIFwKKyAgICBWKDVELCBDMiwgQzIsIDlGKSwgVig2RSwgRDMsIEQzLCBCRCksIFYoRUYsIEFDLCBBQywgNDMpLCBWKEE2LCA2MiwgNjIsIEM0KSwgXAorICAgIFYoQTgsIDkxLCA5MSwgMzkpLCBWKEE0LCA5NSwgOTUsIDMxKSwgVigzNywgRTQsIEU0LCBEMyksIFYoOEIsIDc5LCA3OSwgRjIpLCBcCisgICAgVigzMiwgRTcsIEU3LCBENSksIFYoNDMsIEM4LCBDOCwgOEIpLCBWKDU5LCAzNywgMzcsIDZFKSwgVihCNywgNkQsIDZELCBEQSksIFwKKyAgICBWKDhDLCA4RCwgOEQsIDAxKSwgVig2NCwgRDUsIEQ1LCBCMSksIFYoRDIsIDRFLCA0RSwgOUMpLCBWKEUwLCBBOSwgQTksIDQ5KSwgXAorICAgIFYoQjQsIDZDLCA2QywgRDgpLCBWKEZBLCA1NiwgNTYsIEFDKSwgVigwNywgRjQsIEY0LCBGMyksIFYoMjUsIEVBLCBFQSwgQ0YpLCBcCisgICAgVihBRiwgNjUsIDY1LCBDQSksIFYoOEUsIDdBLCA3QSwgRjQpLCBWKEU5LCBBRSwgQUUsIDQ3KSwgVigxOCwgMDgsIDA4LCAxMCksIFwKKyAgICBWKEQ1LCBCQSwgQkEsIDZGKSwgVig4OCwgNzgsIDc4LCBGMCksIFYoNkYsIDI1LCAyNSwgNEEpLCBWKDcyLCAyRSwgMkUsIDVDKSwgXAorICAgIFYoMjQsIDFDLCAxQywgMzgpLCBWKEYxLCBBNiwgQTYsIDU3KSwgVihDNywgQjQsIEI0LCA3MyksIFYoNTEsIEM2LCBDNiwgOTcpLCBcCisgICAgVigyMywgRTgsIEU4LCBDQiksIFYoN0MsIERELCBERCwgQTEpLCBWKDlDLCA3NCwgNzQsIEU4KSwgVigyMSwgMUYsIDFGLCAzRSksIFwKKyAgICBWKERELCA0QiwgNEIsIDk2KSwgVihEQywgQkQsIEJELCA2MSksIFYoODYsIDhCLCA4QiwgMEQpLCBWKDg1LCA4QSwgOEEsIDBGKSwgXAorICAgIFYoOTAsIDcwLCA3MCwgRTApLCBWKDQyLCAzRSwgM0UsIDdDKSwgVihDNCwgQjUsIEI1LCA3MSksIFYoQUEsIDY2LCA2NiwgQ0MpLCBcCisgICAgVihEOCwgNDgsIDQ4LCA5MCksIFYoMDUsIDAzLCAwMywgMDYpLCBWKDAxLCBGNiwgRjYsIEY3KSwgVigxMiwgMEUsIDBFLCAxQyksIFwKKyAgICBWKEEzLCA2MSwgNjEsIEMyKSwgVig1RiwgMzUsIDM1LCA2QSksIFYoRjksIDU3LCA1NywgQUUpLCBWKEQwLCBCOSwgQjksIDY5KSwgXAorICAgIFYoOTEsIDg2LCA4NiwgMTcpLCBWKDU4LCBDMSwgQzEsIDk5KSwgVigyNywgMUQsIDFELCAzQSksIFYoQjksIDlFLCA5RSwgMjcpLCBcCisgICAgVigzOCwgRTEsIEUxLCBEOSksIFYoMTMsIEY4LCBGOCwgRUIpLCBWKEIzLCA5OCwgOTgsIDJCKSwgVigzMywgMTEsIDExLCAyMiksIFwKKyAgICBWKEJCLCA2OSwgNjksIEQyKSwgVig3MCwgRDksIEQ5LCBBOSksIFYoODksIDhFLCA4RSwgMDcpLCBWKEE3LCA5NCwgOTQsIDMzKSwgXAorICAgIFYoQjYsIDlCLCA5QiwgMkQpLCBWKDIyLCAxRSwgMUUsIDNDKSwgVig5MiwgODcsIDg3LCAxNSksIFYoMjAsIEU5LCBFOSwgQzkpLCBcCisgICAgVig0OSwgQ0UsIENFLCA4NyksIFYoRkYsIDU1LCA1NSwgQUEpLCBWKDc4LCAyOCwgMjgsIDUwKSwgVig3QSwgREYsIERGLCBBNSksIFwKKyAgICBWKDhGLCA4QywgOEMsIDAzKSwgVihGOCwgQTEsIEExLCA1OSksIFYoODAsIDg5LCA4OSwgMDkpLCBWKDE3LCAwRCwgMEQsIDFBKSwgXAorICAgIFYoREEsIEJGLCBCRiwgNjUpLCBWKDMxLCBFNiwgRTYsIEQ3KSwgVihDNiwgNDIsIDQyLCA4NCksIFYoQjgsIDY4LCA2OCwgRDApLCBcCisgICAgVihDMywgNDEsIDQxLCA4MiksIFYoQjAsIDk5LCA5OSwgMjkpLCBWKDc3LCAyRCwgMkQsIDVBKSwgVigxMSwgMEYsIDBGLCAxRSksIFwKKyAgICBWKENCLCBCMCwgQjAsIDdCKSwgVihGQywgNTQsIDU0LCBBOCksIFYoRDYsIEJCLCBCQiwgNkQpLCBWKDNBLCAxNiwgMTYsIDJDKQorCisjZGVmaW5lIFYoYSwgYiwgYywgZCkgMHgjI2EjI2IjI2MjI2QKK01CRURUTFNfTUFZQkVfVU5VU0VEIHN0YXRpYyBjb25zdCB1aW50MzJfdCBGVDBbMjU2XSA9IHsgRlQgfTsKKyN1bmRlZiBWCisKKyNkZWZpbmUgVihhLCBiLCBjLCBkKSAweCMjYiMjYyMjZCMjYQorTUJFRFRMU19NQVlCRV9VTlVTRUQgc3RhdGljIGNvbnN0IHVpbnQzMl90IEZUMVsyNTZdID0geyBGVCB9OworI3VuZGVmIFYKKworI2RlZmluZSBWKGEsIGIsIGMsIGQpIDB4IyNjIyNkIyNhIyNiCitNQkVEVExTX01BWUJFX1VOVVNFRCBzdGF0aWMgY29uc3QgdWludDMyX3QgRlQyWzI1Nl0gPSB7IEZUIH07CisjdW5kZWYgVgorCisjZGVmaW5lIFYoYSwgYiwgYywgZCkgMHgjI2QjI2EjI2IjI2MKK01CRURUTFNfTUFZQkVfVU5VU0VEIHN0YXRpYyBjb25zdCB1aW50MzJfdCBGVDNbMjU2XSA9IHsgRlQgfTsKKyN1bmRlZiBWCisKKyN1bmRlZiBGVAorCisvKgorICogUmV2ZXJzZSBTLWJveAorICovCitNQkVEVExTX01BWUJFX1VOVVNFRCBzdGF0aWMgY29uc3QgdW5zaWduZWQgY2hhciBSU2JbMjU2XSA9Cit7CisgICAgMHg1MiwgMHgwOSwgMHg2QSwgMHhENSwgMHgzMCwgMHgzNiwgMHhBNSwgMHgzOCwKKyAgICAweEJGLCAweDQwLCAweEEzLCAweDlFLCAweDgxLCAweEYzLCAweEQ3LCAweEZCLAorICAgIDB4N0MsIDB4RTMsIDB4MzksIDB4ODIsIDB4OUIsIDB4MkYsIDB4RkYsIDB4ODcsCisgICAgMHgzNCwgMHg4RSwgMHg0MywgMHg0NCwgMHhDNCwgMHhERSwgMHhFOSwgMHhDQiwKKyAgICAweDU0LCAweDdCLCAweDk0LCAweDMyLCAweEE2LCAweEMyLCAweDIzLCAweDNELAorICAgIDB4RUUsIDB4NEMsIDB4OTUsIDB4MEIsIDB4NDIsIDB4RkEsIDB4QzMsIDB4NEUsCisgICAgMHgwOCwgMHgyRSwgMHhBMSwgMHg2NiwgMHgyOCwgMHhEOSwgMHgyNCwgMHhCMiwKKyAgICAweDc2LCAweDVCLCAweEEyLCAweDQ5LCAweDZELCAweDhCLCAweEQxLCAweDI1LAorICAgIDB4NzIsIDB4RjgsIDB4RjYsIDB4NjQsIDB4ODYsIDB4NjgsIDB4OTgsIDB4MTYsCisgICAgMHhENCwgMHhBNCwgMHg1QywgMHhDQywgMHg1RCwgMHg2NSwgMHhCNiwgMHg5MiwKKyAgICAweDZDLCAweDcwLCAweDQ4LCAweDUwLCAweEZELCAweEVELCAweEI5LCAweERBLAorICAgIDB4NUUsIDB4MTUsIDB4NDYsIDB4NTcsIDB4QTcsIDB4OEQsIDB4OUQsIDB4ODQsCisgICAgMHg5MCwgMHhEOCwgMHhBQiwgMHgwMCwgMHg4QywgMHhCQywgMHhEMywgMHgwQSwKKyAgICAweEY3LCAweEU0LCAweDU4LCAweDA1LCAweEI4LCAweEIzLCAweDQ1LCAweDA2LAorICAgIDB4RDAsIDB4MkMsIDB4MUUsIDB4OEYsIDB4Q0EsIDB4M0YsIDB4MEYsIDB4MDIsCisgICAgMHhDMSwgMHhBRiwgMHhCRCwgMHgwMywgMHgwMSwgMHgxMywgMHg4QSwgMHg2QiwKKyAgICAweDNBLCAweDkxLCAweDExLCAweDQxLCAweDRGLCAweDY3LCAweERDLCAweEVBLAorICAgIDB4OTcsIDB4RjIsIDB4Q0YsIDB4Q0UsIDB4RjAsIDB4QjQsIDB4RTYsIDB4NzMsCisgICAgMHg5NiwgMHhBQywgMHg3NCwgMHgyMiwgMHhFNywgMHhBRCwgMHgzNSwgMHg4NSwKKyAgICAweEUyLCAweEY5LCAweDM3LCAweEU4LCAweDFDLCAweDc1LCAweERGLCAweDZFLAorICAgIDB4NDcsIDB4RjEsIDB4MUEsIDB4NzEsIDB4MUQsIDB4MjksIDB4QzUsIDB4ODksCisgICAgMHg2RiwgMHhCNywgMHg2MiwgMHgwRSwgMHhBQSwgMHgxOCwgMHhCRSwgMHgxQiwKKyAgICAweEZDLCAweDU2LCAweDNFLCAweDRCLCAweEM2LCAweEQyLCAweDc5LCAweDIwLAorICAgIDB4OUEsIDB4REIsIDB4QzAsIDB4RkUsIDB4NzgsIDB4Q0QsIDB4NUEsIDB4RjQsCisgICAgMHgxRiwgMHhERCwgMHhBOCwgMHgzMywgMHg4OCwgMHgwNywgMHhDNywgMHgzMSwKKyAgICAweEIxLCAweDEyLCAweDEwLCAweDU5LCAweDI3LCAweDgwLCAweEVDLCAweDVGLAorICAgIDB4NjAsIDB4NTEsIDB4N0YsIDB4QTksIDB4MTksIDB4QjUsIDB4NEEsIDB4MEQsCisgICAgMHgyRCwgMHhFNSwgMHg3QSwgMHg5RiwgMHg5MywgMHhDOSwgMHg5QywgMHhFRiwKKyAgICAweEEwLCAweEUwLCAweDNCLCAweDRELCAweEFFLCAweDJBLCAweEY1LCAweEIwLAorICAgIDB4QzgsIDB4RUIsIDB4QkIsIDB4M0MsIDB4ODMsIDB4NTMsIDB4OTksIDB4NjEsCisgICAgMHgxNywgMHgyQiwgMHgwNCwgMHg3RSwgMHhCQSwgMHg3NywgMHhENiwgMHgyNiwKKyAgICAweEUxLCAweDY5LCAweDE0LCAweDYzLCAweDU1LCAweDIxLCAweDBDLCAweDdECit9OworCisvKgorICogUmV2ZXJzZSB0YWJsZXMKKyAqLworI2RlZmluZSBSVCBcCitcCisgICAgVig1MCwgQTcsIEY0LCA1MSksIFYoNTMsIDY1LCA0MSwgN0UpLCBWKEMzLCBBNCwgMTcsIDFBKSwgVig5NiwgNUUsIDI3LCAzQSksIFwKKyAgICBWKENCLCA2QiwgQUIsIDNCKSwgVihGMSwgNDUsIDlELCAxRiksIFYoQUIsIDU4LCBGQSwgQUMpLCBWKDkzLCAwMywgRTMsIDRCKSwgXAorICAgIFYoNTUsIEZBLCAzMCwgMjApLCBWKEY2LCA2RCwgNzYsIEFEKSwgVig5MSwgNzYsIENDLCA4OCksIFYoMjUsIDRDLCAwMiwgRjUpLCBcCisgICAgVihGQywgRDcsIEU1LCA0RiksIFYoRDcsIENCLCAyQSwgQzUpLCBWKDgwLCA0NCwgMzUsIDI2KSwgVig4RiwgQTMsIDYyLCBCNSksIFwKKyAgICBWKDQ5LCA1QSwgQjEsIERFKSwgVig2NywgMUIsIEJBLCAyNSksIFYoOTgsIDBFLCBFQSwgNDUpLCBWKEUxLCBDMCwgRkUsIDVEKSwgXAorICAgIFYoMDIsIDc1LCAyRiwgQzMpLCBWKDEyLCBGMCwgNEMsIDgxKSwgVihBMywgOTcsIDQ2LCA4RCksIFYoQzYsIEY5LCBEMywgNkIpLCBcCisgICAgVihFNywgNUYsIDhGLCAwMyksIFYoOTUsIDlDLCA5MiwgMTUpLCBWKEVCLCA3QSwgNkQsIEJGKSwgVihEQSwgNTksIDUyLCA5NSksIFwKKyAgICBWKDJELCA4MywgQkUsIEQ0KSwgVihEMywgMjEsIDc0LCA1OCksIFYoMjksIDY5LCBFMCwgNDkpLCBWKDQ0LCBDOCwgQzksIDhFKSwgXAorICAgIFYoNkEsIDg5LCBDMiwgNzUpLCBWKDc4LCA3OSwgOEUsIEY0KSwgVig2QiwgM0UsIDU4LCA5OSksIFYoREQsIDcxLCBCOSwgMjcpLCBcCisgICAgVihCNiwgNEYsIEUxLCBCRSksIFYoMTcsIEFELCA4OCwgRjApLCBWKDY2LCBBQywgMjAsIEM5KSwgVihCNCwgM0EsIENFLCA3RCksIFwKKyAgICBWKDE4LCA0QSwgREYsIDYzKSwgVig4MiwgMzEsIDFBLCBFNSksIFYoNjAsIDMzLCA1MSwgOTcpLCBWKDQ1LCA3RiwgNTMsIDYyKSwgXAorICAgIFYoRTAsIDc3LCA2NCwgQjEpLCBWKDg0LCBBRSwgNkIsIEJCKSwgVigxQywgQTAsIDgxLCBGRSksIFYoOTQsIDJCLCAwOCwgRjkpLCBcCisgICAgVig1OCwgNjgsIDQ4LCA3MCksIFYoMTksIEZELCA0NSwgOEYpLCBWKDg3LCA2QywgREUsIDk0KSwgVihCNywgRjgsIDdCLCA1MiksIFwKKyAgICBWKDIzLCBEMywgNzMsIEFCKSwgVihFMiwgMDIsIDRCLCA3MiksIFYoNTcsIDhGLCAxRiwgRTMpLCBWKDJBLCBBQiwgNTUsIDY2KSwgXAorICAgIFYoMDcsIDI4LCBFQiwgQjIpLCBWKDAzLCBDMiwgQjUsIDJGKSwgVig5QSwgN0IsIEM1LCA4NiksIFYoQTUsIDA4LCAzNywgRDMpLCBcCisgICAgVihGMiwgODcsIDI4LCAzMCksIFYoQjIsIEE1LCBCRiwgMjMpLCBWKEJBLCA2QSwgMDMsIDAyKSwgVig1QywgODIsIDE2LCBFRCksIFwKKyAgICBWKDJCLCAxQywgQ0YsIDhBKSwgVig5MiwgQjQsIDc5LCBBNyksIFYoRjAsIEYyLCAwNywgRjMpLCBWKEExLCBFMiwgNjksIDRFKSwgXAorICAgIFYoQ0QsIEY0LCBEQSwgNjUpLCBWKEQ1LCBCRSwgMDUsIDA2KSwgVigxRiwgNjIsIDM0LCBEMSksIFYoOEEsIEZFLCBBNiwgQzQpLCBcCisgICAgVig5RCwgNTMsIDJFLCAzNCksIFYoQTAsIDU1LCBGMywgQTIpLCBWKDMyLCBFMSwgOEEsIDA1KSwgVig3NSwgRUIsIEY2LCBBNCksIFwKKyAgICBWKDM5LCBFQywgODMsIDBCKSwgVihBQSwgRUYsIDYwLCA0MCksIFYoMDYsIDlGLCA3MSwgNUUpLCBWKDUxLCAxMCwgNkUsIEJEKSwgXAorICAgIFYoRjksIDhBLCAyMSwgM0UpLCBWKDNELCAwNiwgREQsIDk2KSwgVihBRSwgMDUsIDNFLCBERCksIFYoNDYsIEJELCBFNiwgNEQpLCBcCisgICAgVihCNSwgOEQsIDU0LCA5MSksIFYoMDUsIDVELCBDNCwgNzEpLCBWKDZGLCBENCwgMDYsIDA0KSwgVihGRiwgMTUsIDUwLCA2MCksIFwKKyAgICBWKDI0LCBGQiwgOTgsIDE5KSwgVig5NywgRTksIEJELCBENiksIFYoQ0MsIDQzLCA0MCwgODkpLCBWKDc3LCA5RSwgRDksIDY3KSwgXAorICAgIFYoQkQsIDQyLCBFOCwgQjApLCBWKDg4LCA4QiwgODksIDA3KSwgVigzOCwgNUIsIDE5LCBFNyksIFYoREIsIEVFLCBDOCwgNzkpLCBcCisgICAgVig0NywgMEEsIDdDLCBBMSksIFYoRTksIDBGLCA0MiwgN0MpLCBWKEM5LCAxRSwgODQsIEY4KSwgVigwMCwgMDAsIDAwLCAwMCksIFwKKyAgICBWKDgzLCA4NiwgODAsIDA5KSwgVig0OCwgRUQsIDJCLCAzMiksIFYoQUMsIDcwLCAxMSwgMUUpLCBWKDRFLCA3MiwgNUEsIDZDKSwgXAorICAgIFYoRkIsIEZGLCAwRSwgRkQpLCBWKDU2LCAzOCwgODUsIDBGKSwgVigxRSwgRDUsIEFFLCAzRCksIFYoMjcsIDM5LCAyRCwgMzYpLCBcCisgICAgVig2NCwgRDksIDBGLCAwQSksIFYoMjEsIEE2LCA1QywgNjgpLCBWKEQxLCA1NCwgNUIsIDlCKSwgVigzQSwgMkUsIDM2LCAyNCksIFwKKyAgICBWKEIxLCA2NywgMEEsIDBDKSwgVigwRiwgRTcsIDU3LCA5MyksIFYoRDIsIDk2LCBFRSwgQjQpLCBWKDlFLCA5MSwgOUIsIDFCKSwgXAorICAgIFYoNEYsIEM1LCBDMCwgODApLCBWKEEyLCAyMCwgREMsIDYxKSwgVig2OSwgNEIsIDc3LCA1QSksIFYoMTYsIDFBLCAxMiwgMUMpLCBcCisgICAgVigwQSwgQkEsIDkzLCBFMiksIFYoRTUsIDJBLCBBMCwgQzApLCBWKDQzLCBFMCwgMjIsIDNDKSwgVigxRCwgMTcsIDFCLCAxMiksIFwKKyAgICBWKDBCLCAwRCwgMDksIDBFKSwgVihBRCwgQzcsIDhCLCBGMiksIFYoQjksIEE4LCBCNiwgMkQpLCBWKEM4LCBBOSwgMUUsIDE0KSwgXAorICAgIFYoODUsIDE5LCBGMSwgNTcpLCBWKDRDLCAwNywgNzUsIEFGKSwgVihCQiwgREQsIDk5LCBFRSksIFYoRkQsIDYwLCA3RiwgQTMpLCBcCisgICAgVig5RiwgMjYsIDAxLCBGNyksIFYoQkMsIEY1LCA3MiwgNUMpLCBWKEM1LCAzQiwgNjYsIDQ0KSwgVigzNCwgN0UsIEZCLCA1QiksIFwKKyAgICBWKDc2LCAyOSwgNDMsIDhCKSwgVihEQywgQzYsIDIzLCBDQiksIFYoNjgsIEZDLCBFRCwgQjYpLCBWKDYzLCBGMSwgRTQsIEI4KSwgXAorICAgIFYoQ0EsIERDLCAzMSwgRDcpLCBWKDEwLCA4NSwgNjMsIDQyKSwgVig0MCwgMjIsIDk3LCAxMyksIFYoMjAsIDExLCBDNiwgODQpLCBcCisgICAgVig3RCwgMjQsIDRBLCA4NSksIFYoRjgsIDNELCBCQiwgRDIpLCBWKDExLCAzMiwgRjksIEFFKSwgVig2RCwgQTEsIDI5LCBDNyksIFwKKyAgICBWKDRCLCAyRiwgOUUsIDFEKSwgVihGMywgMzAsIEIyLCBEQyksIFYoRUMsIDUyLCA4NiwgMEQpLCBWKEQwLCBFMywgQzEsIDc3KSwgXAorICAgIFYoNkMsIDE2LCBCMywgMkIpLCBWKDk5LCBCOSwgNzAsIEE5KSwgVihGQSwgNDgsIDk0LCAxMSksIFYoMjIsIDY0LCBFOSwgNDcpLCBcCisgICAgVihDNCwgOEMsIEZDLCBBOCksIFYoMUEsIDNGLCBGMCwgQTApLCBWKEQ4LCAyQywgN0QsIDU2KSwgVihFRiwgOTAsIDMzLCAyMiksIFwKKyAgICBWKEM3LCA0RSwgNDksIDg3KSwgVihDMSwgRDEsIDM4LCBEOSksIFYoRkUsIEEyLCBDQSwgOEMpLCBWKDM2LCAwQiwgRDQsIDk4KSwgXAorICAgIFYoQ0YsIDgxLCBGNSwgQTYpLCBWKDI4LCBERSwgN0EsIEE1KSwgVigyNiwgOEUsIEI3LCBEQSksIFYoQTQsIEJGLCBBRCwgM0YpLCBcCisgICAgVihFNCwgOUQsIDNBLCAyQyksIFYoMEQsIDkyLCA3OCwgNTApLCBWKDlCLCBDQywgNUYsIDZBKSwgVig2MiwgNDYsIDdFLCA1NCksIFwKKyAgICBWKEMyLCAxMywgOEQsIEY2KSwgVihFOCwgQjgsIEQ4LCA5MCksIFYoNUUsIEY3LCAzOSwgMkUpLCBWKEY1LCBBRiwgQzMsIDgyKSwgXAorICAgIFYoQkUsIDgwLCA1RCwgOUYpLCBWKDdDLCA5MywgRDAsIDY5KSwgVihBOSwgMkQsIEQ1LCA2RiksIFYoQjMsIDEyLCAyNSwgQ0YpLCBcCisgICAgVigzQiwgOTksIEFDLCBDOCksIFYoQTcsIDdELCAxOCwgMTApLCBWKDZFLCA2MywgOUMsIEU4KSwgVig3QiwgQkIsIDNCLCBEQiksIFwKKyAgICBWKDA5LCA3OCwgMjYsIENEKSwgVihGNCwgMTgsIDU5LCA2RSksIFYoMDEsIEI3LCA5QSwgRUMpLCBWKEE4LCA5QSwgNEYsIDgzKSwgXAorICAgIFYoNjUsIDZFLCA5NSwgRTYpLCBWKDdFLCBFNiwgRkYsIEFBKSwgVigwOCwgQ0YsIEJDLCAyMSksIFYoRTYsIEU4LCAxNSwgRUYpLCBcCisgICAgVihEOSwgOUIsIEU3LCBCQSksIFYoQ0UsIDM2LCA2RiwgNEEpLCBWKEQ0LCAwOSwgOUYsIEVBKSwgVihENiwgN0MsIEIwLCAyOSksIFwKKyAgICBWKEFGLCBCMiwgQTQsIDMxKSwgVigzMSwgMjMsIDNGLCAyQSksIFYoMzAsIDk0LCBBNSwgQzYpLCBWKEMwLCA2NiwgQTIsIDM1KSwgXAorICAgIFYoMzcsIEJDLCA0RSwgNzQpLCBWKEE2LCBDQSwgODIsIEZDKSwgVihCMCwgRDAsIDkwLCBFMCksIFYoMTUsIEQ4LCBBNywgMzMpLCBcCisgICAgVig0QSwgOTgsIDA0LCBGMSksIFYoRjcsIERBLCBFQywgNDEpLCBWKDBFLCA1MCwgQ0QsIDdGKSwgVigyRiwgRjYsIDkxLCAxNyksIFwKKyAgICBWKDhELCBENiwgNEQsIDc2KSwgVig0RCwgQjAsIEVGLCA0MyksIFYoNTQsIDRELCBBQSwgQ0MpLCBWKERGLCAwNCwgOTYsIEU0KSwgXAorICAgIFYoRTMsIEI1LCBEMSwgOUUpLCBWKDFCLCA4OCwgNkEsIDRDKSwgVihCOCwgMUYsIDJDLCBDMSksIFYoN0YsIDUxLCA2NSwgNDYpLCBcCisgICAgVigwNCwgRUEsIDVFLCA5RCksIFYoNUQsIDM1LCA4QywgMDEpLCBWKDczLCA3NCwgODcsIEZBKSwgVigyRSwgNDEsIDBCLCBGQiksIFwKKyAgICBWKDVBLCAxRCwgNjcsIEIzKSwgVig1MiwgRDIsIERCLCA5MiksIFYoMzMsIDU2LCAxMCwgRTkpLCBWKDEzLCA0NywgRDYsIDZEKSwgXAorICAgIFYoOEMsIDYxLCBENywgOUEpLCBWKDdBLCAwQywgQTEsIDM3KSwgVig4RSwgMTQsIEY4LCA1OSksIFYoODksIDNDLCAxMywgRUIpLCBcCisgICAgVihFRSwgMjcsIEE5LCBDRSksIFYoMzUsIEM5LCA2MSwgQjcpLCBWKEVELCBFNSwgMUMsIEUxKSwgVigzQywgQjEsIDQ3LCA3QSksIFwKKyAgICBWKDU5LCBERiwgRDIsIDlDKSwgVigzRiwgNzMsIEYyLCA1NSksIFYoNzksIENFLCAxNCwgMTgpLCBWKEJGLCAzNywgQzcsIDczKSwgXAorICAgIFYoRUEsIENELCBGNywgNTMpLCBWKDVCLCBBQSwgRkQsIDVGKSwgVigxNCwgNkYsIDNELCBERiksIFYoODYsIERCLCA0NCwgNzgpLCBcCisgICAgVig4MSwgRjMsIEFGLCBDQSksIFYoM0UsIEM0LCA2OCwgQjkpLCBWKDJDLCAzNCwgMjQsIDM4KSwgVig1RiwgNDAsIEEzLCBDMiksIFwKKyAgICBWKDcyLCBDMywgMUQsIDE2KSwgVigwQywgMjUsIEUyLCBCQyksIFYoOEIsIDQ5LCAzQywgMjgpLCBWKDQxLCA5NSwgMEQsIEZGKSwgXAorICAgIFYoNzEsIDAxLCBBOCwgMzkpLCBWKERFLCBCMywgMEMsIDA4KSwgVig5QywgRTQsIEI0LCBEOCksIFYoOTAsIEMxLCA1NiwgNjQpLCBcCisgICAgVig2MSwgODQsIENCLCA3QiksIFYoNzAsIEI2LCAzMiwgRDUpLCBWKDc0LCA1QywgNkMsIDQ4KSwgVig0MiwgNTcsIEI4LCBEMCkKKworCisjZGVmaW5lIFYoYSwgYiwgYywgZCkgMHgjI2EjI2IjI2MjI2QKK01CRURUTFNfTUFZQkVfVU5VU0VEIHN0YXRpYyBjb25zdCB1aW50MzJfdCBSVDBbMjU2XSA9IHsgUlQgfTsKKyN1bmRlZiBWCisKKyNkZWZpbmUgVihhLCBiLCBjLCBkKSAweCMjYiMjYyMjZCMjYQorTUJFRFRMU19NQVlCRV9VTlVTRUQgc3RhdGljIGNvbnN0IHVpbnQzMl90IFJUMVsyNTZdID0geyBSVCB9OworI3VuZGVmIFYKKworI2RlZmluZSBWKGEsIGIsIGMsIGQpIDB4IyNjIyNkIyNhIyNiCitNQkVEVExTX01BWUJFX1VOVVNFRCBzdGF0aWMgY29uc3QgdWludDMyX3QgUlQyWzI1Nl0gPSB7IFJUIH07CisjdW5kZWYgVgorCisjZGVmaW5lIFYoYSwgYiwgYywgZCkgMHgjI2QjI2EjI2IjI2MKK01CRURUTFNfTUFZQkVfVU5VU0VEIHN0YXRpYyBjb25zdCB1aW50MzJfdCBSVDNbMjU2XSA9IHsgUlQgfTsKKyN1bmRlZiBWCisKKyN1bmRlZiBSVAorCisvKgorICogUm91bmQgY29uc3RhbnRzCisgKi8KK01CRURUTFNfTUFZQkVfVU5VU0VEIHN0YXRpYyBjb25zdCB1aW50MzJfdCByb3VuZF9jb25zdGFudHNbMTBdID0KK3sKKyAgICAweDAwMDAwMDAxLCAweDAwMDAwMDAyLCAweDAwMDAwMDA0LCAweDAwMDAwMDA4LAorICAgIDB4MDAwMDAwMTAsIDB4MDAwMDAwMjAsIDB4MDAwMDAwNDAsIDB4MDAwMDAwODAsCisgICAgMHgwMDAwMDAxQiwgMHgwMDAwMDAzNgorfTsKKworI2Vsc2UgLyogTUJFRFRMU19BRVNfUk9NX1RBQkxFUyAqLworCisvKgorICogRm9yd2FyZCBTLWJveCAmIHRhYmxlcworICovCitNQkVEVExTX01BWUJFX1VOVVNFRCBzdGF0aWMgdW5zaWduZWQgY2hhciBGU2JbMjU2XTsKK01CRURUTFNfTUFZQkVfVU5VU0VEIHN0YXRpYyB1aW50MzJfdCBGVDBbMjU2XTsKK01CRURUTFNfTUFZQkVfVU5VU0VEIHN0YXRpYyB1aW50MzJfdCBGVDFbMjU2XTsKK01CRURUTFNfTUFZQkVfVU5VU0VEIHN0YXRpYyB1aW50MzJfdCBGVDJbMjU2XTsKK01CRURUTFNfTUFZQkVfVU5VU0VEIHN0YXRpYyB1aW50MzJfdCBGVDNbMjU2XTsKKworLyoKKyAqIFJldmVyc2UgUy1ib3ggJiB0YWJsZXMKKyAqLworTUJFRFRMU19NQVlCRV9VTlVTRUQgc3RhdGljIHVuc2lnbmVkIGNoYXIgUlNiWzI1Nl07CisKK01CRURUTFNfTUFZQkVfVU5VU0VEIHN0YXRpYyB1aW50MzJfdCBSVDBbMjU2XTsKK01CRURUTFNfTUFZQkVfVU5VU0VEIHN0YXRpYyB1aW50MzJfdCBSVDFbMjU2XTsKK01CRURUTFNfTUFZQkVfVU5VU0VEIHN0YXRpYyB1aW50MzJfdCBSVDJbMjU2XTsKK01CRURUTFNfTUFZQkVfVU5VU0VEIHN0YXRpYyB1aW50MzJfdCBSVDNbMjU2XTsKKworLyoKKyAqIFJvdW5kIGNvbnN0YW50cworICovCitNQkVEVExTX01BWUJFX1VOVVNFRCBzdGF0aWMgdWludDMyX3Qgcm91bmRfY29uc3RhbnRzWzEwXTsKKworLyoKKyAqIFRhYmxlcyBnZW5lcmF0aW9uIGNvZGUKKyAqLworI2RlZmluZSBST1RMOCh4KSAoKCh4KSA8PCA4KSAmIDB4RkZGRkZGRkYpIHwgKCh4KSA+PiAyNCkKKyNkZWZpbmUgWFRJTUUoeCkgKCgoeCkgPDwgMSkgXiAoKCh4KSAmIDB4ODApID8gMHgxQiA6IDB4MDApKQorI2RlZmluZSBNVUwoeCwgeSkgKCgoeCkgJiYgKHkpKSA/IHBvd1sobG9nWyh4KV0rbG9nWyh5KV0pICUgMjU1XSA6IDApCisKK01CRURUTFNfTUFZQkVfVU5VU0VEIHN0YXRpYyBpbnQgYWVzX2luaXRfZG9uZSA9IDA7CisKK01CRURUTFNfTUFZQkVfVU5VU0VEIHN0YXRpYyB2b2lkIGFlc19nZW5fdGFibGVzKHZvaWQpCit7CisgICAgaW50IGk7CisgICAgdWludDhfdCB4LCB5LCB6OworICAgIHVpbnQ4X3QgcG93WzI1Nl07CisgICAgdWludDhfdCBsb2dbMjU2XTsKKworICAgIC8qCisgICAgICogY29tcHV0ZSBwb3cgYW5kIGxvZyB0YWJsZXMgb3ZlciBHRigyXjgpCisgICAgICovCisgICAgZm9yIChpID0gMCwgeCA9IDE7IGkgPCAyNTY7IGkrKykgeworICAgICAgICBwb3dbaV0gPSB4OworICAgICAgICBsb2dbeF0gPSAodWludDhfdCkgaTsKKyAgICAgICAgeCBePSBYVElNRSh4KTsKKyAgICB9CisKKyAgICAvKgorICAgICAqIGNhbGN1bGF0ZSB0aGUgcm91bmQgY29uc3RhbnRzCisgICAgICovCisgICAgZm9yIChpID0gMCwgeCA9IDE7IGkgPCAxMDsgaSsrKSB7CisgICAgICAgIHJvdW5kX2NvbnN0YW50c1tpXSA9IHg7CisgICAgICAgIHggPSBYVElNRSh4KTsKKyAgICB9CisKKyAgICAvKgorICAgICAqIGdlbmVyYXRlIHRoZSBmb3J3YXJkIGFuZCByZXZlcnNlIFMtYm94ZXMKKyAgICAgKi8KKyAgICBGU2JbMHgwMF0gPSAweDYzOworI2lmIGRlZmluZWQoTUJFRFRMU19BRVNfTkVFRF9SRVZFUlNFX1RBQkxFUykKKyAgICBSU2JbMHg2M10gPSAweDAwOworI2VuZGlmCisKKyAgICBmb3IgKGkgPSAxOyBpIDwgMjU2OyBpKyspIHsKKyAgICAgICAgeCA9IHBvd1syNTUgLSBsb2dbaV1dOworCisgICAgICAgIHkgID0geDsgeSA9ICh5IDw8IDEpIHwgKHkgPj4gNyk7CisgICAgICAgIHggXj0geTsgeSA9ICh5IDw8IDEpIHwgKHkgPj4gNyk7CisgICAgICAgIHggXj0geTsgeSA9ICh5IDw8IDEpIHwgKHkgPj4gNyk7CisgICAgICAgIHggXj0geTsgeSA9ICh5IDw8IDEpIHwgKHkgPj4gNyk7CisgICAgICAgIHggXj0geSBeIDB4NjM7CisKKyAgICAgICAgRlNiW2ldID0geDsKKyNpZiBkZWZpbmVkKE1CRURUTFNfQUVTX05FRURfUkVWRVJTRV9UQUJMRVMpCisgICAgICAgIFJTYlt4XSA9ICh1bnNpZ25lZCBjaGFyKSBpOworI2VuZGlmCisgICAgfQorCisgICAgLyoKKyAgICAgKiBnZW5lcmF0ZSB0aGUgZm9yd2FyZCBhbmQgcmV2ZXJzZSB0YWJsZXMKKyAgICAgKi8KKyAgICBmb3IgKGkgPSAwOyBpIDwgMjU2OyBpKyspIHsKKyAgICAgICAgeCA9IEZTYltpXTsKKyAgICAgICAgeSA9IFhUSU1FKHgpOworICAgICAgICB6ID0geSBeIHg7CisKKyAgICAgICAgRlQwW2ldID0gKCh1aW50MzJfdCkgeSkgXgorICAgICAgICAgICAgICAgICAoKHVpbnQzMl90KSB4IDw8ICA4KSBeCisgICAgICAgICAgICAgICAgICgodWludDMyX3QpIHggPDwgMTYpIF4KKyAgICAgICAgICAgICAgICAgKCh1aW50MzJfdCkgeiA8PCAyNCk7CisKKyNpZiAhZGVmaW5lZChNQkVEVExTX0FFU19GRVdFUl9UQUJMRVMpCisgICAgICAgIEZUMVtpXSA9IFJPVEw4KEZUMFtpXSk7CisgICAgICAgIEZUMltpXSA9IFJPVEw4KEZUMVtpXSk7CisgICAgICAgIEZUM1tpXSA9IFJPVEw4KEZUMltpXSk7CisjZW5kaWYgLyogIU1CRURUTFNfQUVTX0ZFV0VSX1RBQkxFUyAqLworCisjaWYgZGVmaW5lZChNQkVEVExTX0FFU19ORUVEX1JFVkVSU0VfVEFCTEVTKQorICAgICAgICB4ID0gUlNiW2ldOworCisgICAgICAgIFJUMFtpXSA9ICgodWludDMyX3QpIE1VTCgweDBFLCB4KSkgXgorICAgICAgICAgICAgICAgICAoKHVpbnQzMl90KSBNVUwoMHgwOSwgeCkgPDwgIDgpIF4KKyAgICAgICAgICAgICAgICAgKCh1aW50MzJfdCkgTVVMKDB4MEQsIHgpIDw8IDE2KSBeCisgICAgICAgICAgICAgICAgICgodWludDMyX3QpIE1VTCgweDBCLCB4KSA8PCAyNCk7CisKKyNpZiAhZGVmaW5lZChNQkVEVExTX0FFU19GRVdFUl9UQUJMRVMpCisgICAgICAgIFJUMVtpXSA9IFJPVEw4KFJUMFtpXSk7CisgICAgICAgIFJUMltpXSA9IFJPVEw4KFJUMVtpXSk7CisgICAgICAgIFJUM1tpXSA9IFJPVEw4KFJUMltpXSk7CisjZW5kaWYgLyogIU1CRURUTFNfQUVTX0ZFV0VSX1RBQkxFUyAqLworI2VuZGlmIC8qIE1CRURUTFNfQUVTX05FRURfUkVWRVJTRV9UQUJMRVMgKi8KKyAgICB9Cit9CisKKyN1bmRlZiBST1RMOAorCisjZW5kaWYgLyogTUJFRFRMU19BRVNfUk9NX1RBQkxFUyAqLworCisjaWYgZGVmaW5lZChNQkVEVExTX0FFU19GRVdFUl9UQUJMRVMpCisKKyNkZWZpbmUgUk9UTDgoeCkgICgodWludDMyX3QpICgoeCkgPDwgIDgpICsgKHVpbnQzMl90KSAoKHgpID4+IDI0KSkKKyNkZWZpbmUgUk9UTDE2KHgpICgodWludDMyX3QpICgoeCkgPDwgMTYpICsgKHVpbnQzMl90KSAoKHgpID4+IDE2KSkKKyNkZWZpbmUgUk9UTDI0KHgpICgodWludDMyX3QpICgoeCkgPDwgMjQpICsgKHVpbnQzMl90KSAoKHgpID4+ICA4KSkKKworI2RlZmluZSBBRVNfUlQwKGlkeCkgUlQwW2lkeF0KKyNkZWZpbmUgQUVTX1JUMShpZHgpIFJPVEw4KFJUMFtpZHhdKQorI2RlZmluZSBBRVNfUlQyKGlkeCkgUk9UTDE2KFJUMFtpZHhdKQorI2RlZmluZSBBRVNfUlQzKGlkeCkgUk9UTDI0KFJUMFtpZHhdKQorCisjZGVmaW5lIEFFU19GVDAoaWR4KSBGVDBbaWR4XQorI2RlZmluZSBBRVNfRlQxKGlkeCkgUk9UTDgoRlQwW2lkeF0pCisjZGVmaW5lIEFFU19GVDIoaWR4KSBST1RMMTYoRlQwW2lkeF0pCisjZGVmaW5lIEFFU19GVDMoaWR4KSBST1RMMjQoRlQwW2lkeF0pCisKKyNlbHNlIC8qIE1CRURUTFNfQUVTX0ZFV0VSX1RBQkxFUyAqLworCisjZGVmaW5lIEFFU19SVDAoaWR4KSBSVDBbaWR4XQorI2RlZmluZSBBRVNfUlQxKGlkeCkgUlQxW2lkeF0KKyNkZWZpbmUgQUVTX1JUMihpZHgpIFJUMltpZHhdCisjZGVmaW5lIEFFU19SVDMoaWR4KSBSVDNbaWR4XQorCisjZGVmaW5lIEFFU19GVDAoaWR4KSBGVDBbaWR4XQorI2RlZmluZSBBRVNfRlQxKGlkeCkgRlQxW2lkeF0KKyNkZWZpbmUgQUVTX0ZUMihpZHgpIEZUMltpZHhdCisjZGVmaW5lIEFFU19GVDMoaWR4KSBGVDNbaWR4XQorCisjZW5kaWYgLyogTUJFRFRMU19BRVNfRkVXRVJfVEFCTEVTICovCisKK3ZvaWQgbWJlZHRsc19hZXNfaW5pdChtYmVkdGxzX2Flc19jb250ZXh0ICpjdHgpCit7CisgICAgbWVtc2V0KGN0eCwgMCwgc2l6ZW9mKG1iZWR0bHNfYWVzX2NvbnRleHQpKTsKK30KKwordm9pZCBtYmVkdGxzX2Flc19mcmVlKG1iZWR0bHNfYWVzX2NvbnRleHQgKmN0eCkKK3sKKyAgICBpZiAoY3R4ID09IE5VTEwpIHsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIG1iZWR0bHNfcGxhdGZvcm1femVyb2l6ZShjdHgsIHNpemVvZihtYmVkdGxzX2Flc19jb250ZXh0KSk7Cit9CisKKyNpZiBkZWZpbmVkKE1CRURUTFNfQ0lQSEVSX01PREVfWFRTKQordm9pZCBtYmVkdGxzX2Flc194dHNfaW5pdChtYmVkdGxzX2Flc194dHNfY29udGV4dCAqY3R4KQoreworICAgIG1iZWR0bHNfYWVzX2luaXQoJmN0eC0+Y3J5cHQpOworICAgIG1iZWR0bHNfYWVzX2luaXQoJmN0eC0+dHdlYWspOworfQorCit2b2lkIG1iZWR0bHNfYWVzX3h0c19mcmVlKG1iZWR0bHNfYWVzX3h0c19jb250ZXh0ICpjdHgpCit7CisgICAgaWYgKGN0eCA9PSBOVUxMKSB7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBtYmVkdGxzX2Flc19mcmVlKCZjdHgtPmNyeXB0KTsKKyAgICBtYmVkdGxzX2Flc19mcmVlKCZjdHgtPnR3ZWFrKTsKK30KKyNlbmRpZiAvKiBNQkVEVExTX0NJUEhFUl9NT0RFX1hUUyAqLworCisvKiBTb21lIGltcGxlbWVudGF0aW9ucyBuZWVkIHRoZSByb3VuZCBrZXlzIHRvIGJlIGFsaWduZWQuCisgKiBSZXR1cm4gYW4gb2Zmc2V0IHRvIGJlIGFkZGVkIHRvIGJ1Ziwgc3VjaCB0aGF0IChidWYgKyBvZmZzZXQpIGlzCisgKiBjb3JyZWN0bHkgYWxpZ25lZC4KKyAqIE5vdGUgdGhhdCB0aGUgb2Zmc2V0IGlzIGluIHVuaXRzIG9mIGVsZW1lbnRzIG9mIGJ1ZiwgaS5lLiAzMi1iaXQgd29yZHMsCisgKiBpLmUuIGFuIG9mZnNldCBvZiAxIG1lYW5zIDQgYnl0ZXMgYW5kIHNvIG9uLgorICovCisjaWYgZGVmaW5lZChNQkVEVExTX0FFU05JX0MpICYmIE1CRURUTFNfQUVTTklfSEFWRV9DT0RFID09IDIKKyNkZWZpbmUgTUFZX05FRURfVE9fQUxJR04KKyNlbmRpZgorCitNQkVEVExTX01BWUJFX1VOVVNFRCBzdGF0aWMgdW5zaWduZWQgbWJlZHRsc19hZXNfcmtfb2Zmc2V0KHVpbnQzMl90ICpidWYpCit7CisjaWYgZGVmaW5lZChNQVlfTkVFRF9UT19BTElHTikKKyAgICBpbnQgYWxpZ25fMTZfYnl0ZXMgPSAwOworCisjaWYgZGVmaW5lZChNQkVEVExTX0FFU05JX0MpICYmIE1CRURUTFNfQUVTTklfSEFWRV9DT0RFID09IDIKKyAgICBpZiAobWJlZHRsc19hZXNuaV9oYXNfc3VwcG9ydChNQkVEVExTX0FFU05JX0FFUykpIHsKKyAgICAgICAgYWxpZ25fMTZfYnl0ZXMgPSAxOworICAgIH0KKyNlbmRpZgorCisgICAgaWYgKGFsaWduXzE2X2J5dGVzKSB7CisgICAgICAgIC8qIFRoZXNlIGltcGxlbWVudGF0aW9ucyBuZWVkcyAxNi1ieXRlIGFsaWdubWVudAorICAgICAgICAgKiBmb3IgdGhlIHJvdW5kIGtleSBhcnJheS4gKi8KKyAgICAgICAgdW5zaWduZWQgZGVsdGEgPSAoKHVpbnRwdHJfdCkgYnVmICYgMHgwMDAwMDAwZlUpIC8gNDsKKyAgICAgICAgaWYgKGRlbHRhID09IDApIHsKKyAgICAgICAgICAgIHJldHVybiAwOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgcmV0dXJuIDQgLSBkZWx0YTsgLy8gMTYgYnl0ZXMgPSA0IHVpbnQzMl90CisgICAgICAgIH0KKyAgICB9CisjZWxzZSAvKiBNQVlfTkVFRF9UT19BTElHTiAqLworICAgICh2b2lkKSBidWY7CisjZW5kaWYgLyogTUFZX05FRURfVE9fQUxJR04gKi8KKworICAgIHJldHVybiAwOworfQorCisvKgorICogQUVTIGtleSBzY2hlZHVsZSAoZW5jcnlwdGlvbikKKyAqLworI2lmICFkZWZpbmVkKE1CRURUTFNfQUVTX1NFVEtFWV9FTkNfQUxUKQoraW50IG1iZWR0bHNfYWVzX3NldGtleV9lbmMobWJlZHRsc19hZXNfY29udGV4dCAqY3R4LCBjb25zdCB1bnNpZ25lZCBjaGFyICprZXksCisgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQga2V5Yml0cykKK3sKKyAgICB1aW50MzJfdCAqUks7CisKKyAgICBzd2l0Y2ggKGtleWJpdHMpIHsKKyAgICAgICAgY2FzZSAxMjg6IGN0eC0+bnIgPSAxMDsgYnJlYWs7CisjaWYgIWRlZmluZWQoTUJFRFRMU19BRVNfT05MWV8xMjhfQklUX0tFWV9MRU5HVEgpCisgICAgICAgIGNhc2UgMTkyOiBjdHgtPm5yID0gMTI7IGJyZWFrOworICAgICAgICBjYXNlIDI1NjogY3R4LT5uciA9IDE0OyBicmVhazsKKyNlbmRpZiAvKiAhTUJFRFRMU19BRVNfT05MWV8xMjhfQklUX0tFWV9MRU5HVEggKi8KKyAgICAgICAgZGVmYXVsdDogcmV0dXJuIE1CRURUTFNfRVJSX0FFU19JTlZBTElEX0tFWV9MRU5HVEg7CisgICAgfQorCisjaWYgIWRlZmluZWQoTUJFRFRMU19BRVNfUk9NX1RBQkxFUykKKyAgICBpZiAoYWVzX2luaXRfZG9uZSA9PSAwKSB7CisgICAgICAgIGFlc19nZW5fdGFibGVzKCk7CisgICAgICAgIGFlc19pbml0X2RvbmUgPSAxOworICAgIH0KKyNlbmRpZgorCisgICAgY3R4LT5ya19vZmZzZXQgPSBtYmVkdGxzX2Flc19ya19vZmZzZXQoY3R4LT5idWYpOworICAgIFJLID0gY3R4LT5idWYgKyBjdHgtPnJrX29mZnNldDsKKworI2lmIGRlZmluZWQoTUJFRFRMU19BRVNOSV9IQVZFX0NPREUpCisgICAgaWYgKG1iZWR0bHNfYWVzbmlfaGFzX3N1cHBvcnQoTUJFRFRMU19BRVNOSV9BRVMpKSB7CisgICAgICAgIHJldHVybiBtYmVkdGxzX2Flc25pX3NldGtleV9lbmMoKHVuc2lnbmVkIGNoYXIgKikgUkssIGtleSwga2V5Yml0cyk7CisgICAgfQorI2VuZGlmCisKKyNpZiBkZWZpbmVkKE1CRURUTFNfQUVTQ0VfSEFWRV9DT0RFKQorICAgIGlmIChNQkVEVExTX0FFU0NFX0hBU19TVVBQT1JUKCkpIHsKKyAgICAgICAgcmV0dXJuIG1iZWR0bHNfYWVzY2Vfc2V0a2V5X2VuYygodW5zaWduZWQgY2hhciAqKSBSSywga2V5LCBrZXliaXRzKTsKKyAgICB9CisjZW5kaWYKKworI2lmICFkZWZpbmVkKE1CRURUTFNfQUVTX1VTRV9IQVJEV0FSRV9PTkxZKQorICAgIGZvciAodW5zaWduZWQgaW50IGkgPSAwOyBpIDwgKGtleWJpdHMgPj4gNSk7IGkrKykgeworICAgICAgICBSS1tpXSA9IE1CRURUTFNfR0VUX1VJTlQzMl9MRShrZXksIGkgPDwgMik7CisgICAgfQorCisgICAgc3dpdGNoIChjdHgtPm5yKSB7CisgICAgICAgIGNhc2UgMTA6CisKKyAgICAgICAgICAgIGZvciAodW5zaWduZWQgaW50IGkgPSAwOyBpIDwgMTA7IGkrKywgUksgKz0gNCkgeworICAgICAgICAgICAgICAgIFJLWzRdICA9IFJLWzBdIF4gcm91bmRfY29uc3RhbnRzW2ldIF4KKyAgICAgICAgICAgICAgICAgICAgICAgICAoKHVpbnQzMl90KSBGU2JbTUJFRFRMU19CWVRFXzEoUktbM10pXSkgXgorICAgICAgICAgICAgICAgICAgICAgICAgICgodWludDMyX3QpIEZTYltNQkVEVExTX0JZVEVfMihSS1szXSldIDw8ICA4KSBeCisgICAgICAgICAgICAgICAgICAgICAgICAgKCh1aW50MzJfdCkgRlNiW01CRURUTFNfQllURV8zKFJLWzNdKV0gPDwgMTYpIF4KKyAgICAgICAgICAgICAgICAgICAgICAgICAoKHVpbnQzMl90KSBGU2JbTUJFRFRMU19CWVRFXzAoUktbM10pXSA8PCAyNCk7CisKKyAgICAgICAgICAgICAgICBSS1s1XSAgPSBSS1sxXSBeIFJLWzRdOworICAgICAgICAgICAgICAgIFJLWzZdICA9IFJLWzJdIF4gUktbNV07CisgICAgICAgICAgICAgICAgUktbN10gID0gUktbM10gXiBSS1s2XTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGJyZWFrOworCisjaWYgIWRlZmluZWQoTUJFRFRMU19BRVNfT05MWV8xMjhfQklUX0tFWV9MRU5HVEgpCisgICAgICAgIGNhc2UgMTI6CisKKyAgICAgICAgICAgIGZvciAodW5zaWduZWQgaW50IGkgPSAwOyBpIDwgODsgaSsrLCBSSyArPSA2KSB7CisgICAgICAgICAgICAgICAgUktbNl0gID0gUktbMF0gXiByb3VuZF9jb25zdGFudHNbaV0gXgorICAgICAgICAgICAgICAgICAgICAgICAgICgodWludDMyX3QpIEZTYltNQkVEVExTX0JZVEVfMShSS1s1XSldKSBeCisgICAgICAgICAgICAgICAgICAgICAgICAgKCh1aW50MzJfdCkgRlNiW01CRURUTFNfQllURV8yKFJLWzVdKV0gPDwgIDgpIF4KKyAgICAgICAgICAgICAgICAgICAgICAgICAoKHVpbnQzMl90KSBGU2JbTUJFRFRMU19CWVRFXzMoUktbNV0pXSA8PCAxNikgXgorICAgICAgICAgICAgICAgICAgICAgICAgICgodWludDMyX3QpIEZTYltNQkVEVExTX0JZVEVfMChSS1s1XSldIDw8IDI0KTsKKworICAgICAgICAgICAgICAgIFJLWzddICA9IFJLWzFdIF4gUktbNl07CisgICAgICAgICAgICAgICAgUktbOF0gID0gUktbMl0gXiBSS1s3XTsKKyAgICAgICAgICAgICAgICBSS1s5XSAgPSBSS1szXSBeIFJLWzhdOworICAgICAgICAgICAgICAgIFJLWzEwXSA9IFJLWzRdIF4gUktbOV07CisgICAgICAgICAgICAgICAgUktbMTFdID0gUktbNV0gXiBSS1sxMF07CisgICAgICAgICAgICB9CisgICAgICAgICAgICBicmVhazsKKworICAgICAgICBjYXNlIDE0OgorCisgICAgICAgICAgICBmb3IgKHVuc2lnbmVkIGludCBpID0gMDsgaSA8IDc7IGkrKywgUksgKz0gOCkgeworICAgICAgICAgICAgICAgIFJLWzhdICA9IFJLWzBdIF4gcm91bmRfY29uc3RhbnRzW2ldIF4KKyAgICAgICAgICAgICAgICAgICAgICAgICAoKHVpbnQzMl90KSBGU2JbTUJFRFRMU19CWVRFXzEoUktbN10pXSkgXgorICAgICAgICAgICAgICAgICAgICAgICAgICgodWludDMyX3QpIEZTYltNQkVEVExTX0JZVEVfMihSS1s3XSldIDw8ICA4KSBeCisgICAgICAgICAgICAgICAgICAgICAgICAgKCh1aW50MzJfdCkgRlNiW01CRURUTFNfQllURV8zKFJLWzddKV0gPDwgMTYpIF4KKyAgICAgICAgICAgICAgICAgICAgICAgICAoKHVpbnQzMl90KSBGU2JbTUJFRFRMU19CWVRFXzAoUktbN10pXSA8PCAyNCk7CisKKyAgICAgICAgICAgICAgICBSS1s5XSAgPSBSS1sxXSBeIFJLWzhdOworICAgICAgICAgICAgICAgIFJLWzEwXSA9IFJLWzJdIF4gUktbOV07CisgICAgICAgICAgICAgICAgUktbMTFdID0gUktbM10gXiBSS1sxMF07CisKKyAgICAgICAgICAgICAgICBSS1sxMl0gPSBSS1s0XSBeCisgICAgICAgICAgICAgICAgICAgICAgICAgKCh1aW50MzJfdCkgRlNiW01CRURUTFNfQllURV8wKFJLWzExXSldKSBeCisgICAgICAgICAgICAgICAgICAgICAgICAgKCh1aW50MzJfdCkgRlNiW01CRURUTFNfQllURV8xKFJLWzExXSldIDw8ICA4KSBeCisgICAgICAgICAgICAgICAgICAgICAgICAgKCh1aW50MzJfdCkgRlNiW01CRURUTFNfQllURV8yKFJLWzExXSldIDw8IDE2KSBeCisgICAgICAgICAgICAgICAgICAgICAgICAgKCh1aW50MzJfdCkgRlNiW01CRURUTFNfQllURV8zKFJLWzExXSldIDw8IDI0KTsKKworICAgICAgICAgICAgICAgIFJLWzEzXSA9IFJLWzVdIF4gUktbMTJdOworICAgICAgICAgICAgICAgIFJLWzE0XSA9IFJLWzZdIF4gUktbMTNdOworICAgICAgICAgICAgICAgIFJLWzE1XSA9IFJLWzddIF4gUktbMTRdOworICAgICAgICAgICAgfQorICAgICAgICAgICAgYnJlYWs7CisjZW5kaWYgLyogIU1CRURUTFNfQUVTX09OTFlfMTI4X0JJVF9LRVlfTEVOR1RIICovCisgICAgfQorCisgICAgcmV0dXJuIDA7CisjZW5kaWYgLyogIU1CRURUTFNfQUVTX1VTRV9IQVJEV0FSRV9PTkxZICovCit9CisjZW5kaWYgLyogIU1CRURUTFNfQUVTX1NFVEtFWV9FTkNfQUxUICovCisKKy8qCisgKiBBRVMga2V5IHNjaGVkdWxlIChkZWNyeXB0aW9uKQorICovCisjaWYgIWRlZmluZWQoTUJFRFRMU19BRVNfU0VUS0VZX0RFQ19BTFQpICYmICFkZWZpbmVkKE1CRURUTFNfQkxPQ0tfQ0lQSEVSX05PX0RFQ1JZUFQpCitpbnQgbWJlZHRsc19hZXNfc2V0a2V5X2RlYyhtYmVkdGxzX2Flc19jb250ZXh0ICpjdHgsIGNvbnN0IHVuc2lnbmVkIGNoYXIgKmtleSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCBrZXliaXRzKQoreworI2lmICFkZWZpbmVkKE1CRURUTFNfQUVTX1VTRV9IQVJEV0FSRV9PTkxZKQorICAgIHVpbnQzMl90ICpTSzsKKyNlbmRpZgorICAgIGludCByZXQ7CisgICAgbWJlZHRsc19hZXNfY29udGV4dCBjdHk7CisgICAgdWludDMyX3QgKlJLOworCisKKyAgICBtYmVkdGxzX2Flc19pbml0KCZjdHkpOworCisgICAgY3R4LT5ya19vZmZzZXQgPSBtYmVkdGxzX2Flc19ya19vZmZzZXQoY3R4LT5idWYpOworICAgIFJLID0gY3R4LT5idWYgKyBjdHgtPnJrX29mZnNldDsKKworICAgIC8qIEFsc28gY2hlY2tzIGtleWJpdHMgKi8KKyAgICBpZiAoKHJldCA9IG1iZWR0bHNfYWVzX3NldGtleV9lbmMoJmN0eSwga2V5LCBrZXliaXRzKSkgIT0gMCkgeworICAgICAgICBnb3RvIGV4aXQ7CisgICAgfQorCisgICAgY3R4LT5uciA9IGN0eS5ucjsKKworI2lmIGRlZmluZWQoTUJFRFRMU19BRVNOSV9IQVZFX0NPREUpCisgICAgaWYgKG1iZWR0bHNfYWVzbmlfaGFzX3N1cHBvcnQoTUJFRFRMU19BRVNOSV9BRVMpKSB7CisgICAgICAgIG1iZWR0bHNfYWVzbmlfaW52ZXJzZV9rZXkoKHVuc2lnbmVkIGNoYXIgKikgUkssCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNvbnN0IHVuc2lnbmVkIGNoYXIgKikgKGN0eS5idWYgKyBjdHkucmtfb2Zmc2V0KSwgY3R4LT5ucik7CisgICAgICAgIGdvdG8gZXhpdDsKKyAgICB9CisjZW5kaWYKKworI2lmIGRlZmluZWQoTUJFRFRMU19BRVNDRV9IQVZFX0NPREUpCisgICAgaWYgKE1CRURUTFNfQUVTQ0VfSEFTX1NVUFBPUlQoKSkgeworICAgICAgICBtYmVkdGxzX2Flc2NlX2ludmVyc2Vfa2V5KAorICAgICAgICAgICAgKHVuc2lnbmVkIGNoYXIgKikgUkssCisgICAgICAgICAgICAoY29uc3QgdW5zaWduZWQgY2hhciAqKSAoY3R5LmJ1ZiArIGN0eS5ya19vZmZzZXQpLAorICAgICAgICAgICAgY3R4LT5ucik7CisgICAgICAgIGdvdG8gZXhpdDsKKyAgICB9CisjZW5kaWYKKworI2lmICFkZWZpbmVkKE1CRURUTFNfQUVTX1VTRV9IQVJEV0FSRV9PTkxZKQorICAgIFNLID0gY3R5LmJ1ZiArIGN0eS5ya19vZmZzZXQgKyBjdHkubnIgKiA0OworCisgICAgKlJLKysgPSAqU0srKzsKKyAgICAqUksrKyA9ICpTSysrOworICAgICpSSysrID0gKlNLKys7CisgICAgKlJLKysgPSAqU0srKzsKKyAgICBTSyAtPSA4OworICAgIGZvciAoaW50IGkgPSBjdHgtPm5yIC0gMTsgaSA+IDA7IGktLSwgU0sgLT0gOCkgeworICAgICAgICBmb3IgKGludCBqID0gMDsgaiA8IDQ7IGorKywgU0srKykgeworICAgICAgICAgICAgKlJLKysgPSBBRVNfUlQwKEZTYltNQkVEVExTX0JZVEVfMCgqU0spXSkgXgorICAgICAgICAgICAgICAgICAgICBBRVNfUlQxKEZTYltNQkVEVExTX0JZVEVfMSgqU0spXSkgXgorICAgICAgICAgICAgICAgICAgICBBRVNfUlQyKEZTYltNQkVEVExTX0JZVEVfMigqU0spXSkgXgorICAgICAgICAgICAgICAgICAgICBBRVNfUlQzKEZTYltNQkVEVExTX0JZVEVfMygqU0spXSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAqUksrKyA9ICpTSysrOworICAgICpSSysrID0gKlNLKys7CisgICAgKlJLKysgPSAqU0srKzsKKyAgICAqUksrKyA9ICpTSysrOworI2VuZGlmIC8qICFNQkVEVExTX0FFU19VU0VfSEFSRFdBUkVfT05MWSAqLworZXhpdDoKKyAgICBtYmVkdGxzX2Flc19mcmVlKCZjdHkpOworCisgICAgcmV0dXJuIHJldDsKK30KKyNlbmRpZiAvKiAhTUJFRFRMU19BRVNfU0VUS0VZX0RFQ19BTFQgJiYgIU1CRURUTFNfQkxPQ0tfQ0lQSEVSX05PX0RFQ1JZUFQgKi8KKworI2lmIGRlZmluZWQoTUJFRFRMU19DSVBIRVJfTU9ERV9YVFMpCitzdGF0aWMgaW50IG1iZWR0bHNfYWVzX3h0c19kZWNvZGVfa2V5cyhjb25zdCB1bnNpZ25lZCBjaGFyICprZXksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQga2V5Yml0cywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgKiprZXkxLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50ICprZXkxYml0cywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgKiprZXkyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50ICprZXkyYml0cykKK3sKKyAgICBjb25zdCB1bnNpZ25lZCBpbnQgaGFsZl9rZXliaXRzID0ga2V5Yml0cyAvIDI7CisgICAgY29uc3QgdW5zaWduZWQgaW50IGhhbGZfa2V5Ynl0ZXMgPSBoYWxmX2tleWJpdHMgLyA4OworCisgICAgc3dpdGNoIChrZXliaXRzKSB7CisgICAgICAgIGNhc2UgMjU2OiBicmVhazsKKyAgICAgICAgY2FzZSA1MTI6IGJyZWFrOworICAgICAgICBkZWZhdWx0OiByZXR1cm4gTUJFRFRMU19FUlJfQUVTX0lOVkFMSURfS0VZX0xFTkdUSDsKKyAgICB9CisKKyAgICAqa2V5MWJpdHMgPSBoYWxmX2tleWJpdHM7CisgICAgKmtleTJiaXRzID0gaGFsZl9rZXliaXRzOworICAgICprZXkxID0gJmtleVswXTsKKyAgICAqa2V5MiA9ICZrZXlbaGFsZl9rZXlieXRlc107CisKKyAgICByZXR1cm4gMDsKK30KKworaW50IG1iZWR0bHNfYWVzX3h0c19zZXRrZXlfZW5jKG1iZWR0bHNfYWVzX3h0c19jb250ZXh0ICpjdHgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdW5zaWduZWQgY2hhciAqa2V5LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCBrZXliaXRzKQoreworICAgIGludCByZXQgPSBNQkVEVExTX0VSUl9FUlJPUl9DT1JSVVBUSU9OX0RFVEVDVEVEOworICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgKmtleTEsICprZXkyOworICAgIHVuc2lnbmVkIGludCBrZXkxYml0cywga2V5MmJpdHM7CisKKyAgICByZXQgPSBtYmVkdGxzX2Flc194dHNfZGVjb2RlX2tleXMoa2V5LCBrZXliaXRzLCAma2V5MSwgJmtleTFiaXRzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAma2V5MiwgJmtleTJiaXRzKTsKKyAgICBpZiAocmV0ICE9IDApIHsKKyAgICAgICAgcmV0dXJuIHJldDsKKyAgICB9CisKKyAgICAvKiBTZXQgdGhlIHR3ZWFrIGtleS4gQWx3YXlzIHNldCB0d2VhayBrZXkgZm9yIHRoZSBlbmNyeXB0aW9uIG1vZGUuICovCisgICAgcmV0ID0gbWJlZHRsc19hZXNfc2V0a2V5X2VuYygmY3R4LT50d2Vhaywga2V5Miwga2V5MmJpdHMpOworICAgIGlmIChyZXQgIT0gMCkgeworICAgICAgICByZXR1cm4gcmV0OworICAgIH0KKworICAgIC8qIFNldCBjcnlwdCBrZXkgZm9yIGVuY3J5cHRpb24uICovCisgICAgcmV0dXJuIG1iZWR0bHNfYWVzX3NldGtleV9lbmMoJmN0eC0+Y3J5cHQsIGtleTEsIGtleTFiaXRzKTsKK30KKworaW50IG1iZWR0bHNfYWVzX3h0c19zZXRrZXlfZGVjKG1iZWR0bHNfYWVzX3h0c19jb250ZXh0ICpjdHgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdW5zaWduZWQgY2hhciAqa2V5LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCBrZXliaXRzKQoreworICAgIGludCByZXQgPSBNQkVEVExTX0VSUl9FUlJPUl9DT1JSVVBUSU9OX0RFVEVDVEVEOworICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgKmtleTEsICprZXkyOworICAgIHVuc2lnbmVkIGludCBrZXkxYml0cywga2V5MmJpdHM7CisKKyAgICByZXQgPSBtYmVkdGxzX2Flc194dHNfZGVjb2RlX2tleXMoa2V5LCBrZXliaXRzLCAma2V5MSwgJmtleTFiaXRzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAma2V5MiwgJmtleTJiaXRzKTsKKyAgICBpZiAocmV0ICE9IDApIHsKKyAgICAgICAgcmV0dXJuIHJldDsKKyAgICB9CisKKyAgICAvKiBTZXQgdGhlIHR3ZWFrIGtleS4gQWx3YXlzIHNldCB0d2VhayBrZXkgZm9yIGVuY3J5cHRpb24uICovCisgICAgcmV0ID0gbWJlZHRsc19hZXNfc2V0a2V5X2VuYygmY3R4LT50d2Vhaywga2V5Miwga2V5MmJpdHMpOworICAgIGlmIChyZXQgIT0gMCkgeworICAgICAgICByZXR1cm4gcmV0OworICAgIH0KKworICAgIC8qIFNldCBjcnlwdCBrZXkgZm9yIGRlY3J5cHRpb24uICovCisgICAgcmV0dXJuIG1iZWR0bHNfYWVzX3NldGtleV9kZWMoJmN0eC0+Y3J5cHQsIGtleTEsIGtleTFiaXRzKTsKK30KKyNlbmRpZiAvKiBNQkVEVExTX0NJUEhFUl9NT0RFX1hUUyAqLworCisjZGVmaW5lIEFFU19GUk9VTkQoWDAsIFgxLCBYMiwgWDMsIFkwLCBZMSwgWTIsIFkzKSAgICAgICAgICAgICAgICAgXAorICAgIGRvICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICAoWDApID0gKlJLKysgXiBBRVNfRlQwKE1CRURUTFNfQllURV8wKFkwKSkgXiAgICBcCisgICAgICAgICAgICAgICBBRVNfRlQxKE1CRURUTFNfQllURV8xKFkxKSkgXiAgICBcCisgICAgICAgICAgICAgICBBRVNfRlQyKE1CRURUTFNfQllURV8yKFkyKSkgXiAgICBcCisgICAgICAgICAgICAgICBBRVNfRlQzKE1CRURUTFNfQllURV8zKFkzKSk7ICAgICBcCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgIChYMSkgPSAqUksrKyBeIEFFU19GVDAoTUJFRFRMU19CWVRFXzAoWTEpKSBeICAgIFwKKyAgICAgICAgICAgICAgIEFFU19GVDEoTUJFRFRMU19CWVRFXzEoWTIpKSBeICAgIFwKKyAgICAgICAgICAgICAgIEFFU19GVDIoTUJFRFRMU19CWVRFXzIoWTMpKSBeICAgIFwKKyAgICAgICAgICAgICAgIEFFU19GVDMoTUJFRFRMU19CWVRFXzMoWTApKTsgICAgIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgKFgyKSA9ICpSSysrIF4gQUVTX0ZUMChNQkVEVExTX0JZVEVfMChZMikpIF4gICAgXAorICAgICAgICAgICAgICAgQUVTX0ZUMShNQkVEVExTX0JZVEVfMShZMykpIF4gICAgXAorICAgICAgICAgICAgICAgQUVTX0ZUMihNQkVEVExTX0JZVEVfMihZMCkpIF4gICAgXAorICAgICAgICAgICAgICAgQUVTX0ZUMyhNQkVEVExTX0JZVEVfMyhZMSkpOyAgICAgXAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICAoWDMpID0gKlJLKysgXiBBRVNfRlQwKE1CRURUTFNfQllURV8wKFkzKSkgXiAgICBcCisgICAgICAgICAgICAgICBBRVNfRlQxKE1CRURUTFNfQllURV8xKFkwKSkgXiAgICBcCisgICAgICAgICAgICAgICBBRVNfRlQyKE1CRURUTFNfQllURV8yKFkxKSkgXiAgICBcCisgICAgICAgICAgICAgICBBRVNfRlQzKE1CRURUTFNfQllURV8zKFkyKSk7ICAgICBcCisgICAgfSB3aGlsZSAoMCkKKworI2RlZmluZSBBRVNfUlJPVU5EKFgwLCBYMSwgWDIsIFgzLCBZMCwgWTEsIFkyLCBZMykgICAgICAgICAgICAgICAgIFwKKyAgICBkbyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgKFgwKSA9ICpSSysrIF4gQUVTX1JUMChNQkVEVExTX0JZVEVfMChZMCkpIF4gICAgXAorICAgICAgICAgICAgICAgQUVTX1JUMShNQkVEVExTX0JZVEVfMShZMykpIF4gICAgXAorICAgICAgICAgICAgICAgQUVTX1JUMihNQkVEVExTX0JZVEVfMihZMikpIF4gICAgXAorICAgICAgICAgICAgICAgQUVTX1JUMyhNQkVEVExTX0JZVEVfMyhZMSkpOyAgICAgXAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICAoWDEpID0gKlJLKysgXiBBRVNfUlQwKE1CRURUTFNfQllURV8wKFkxKSkgXiAgICBcCisgICAgICAgICAgICAgICBBRVNfUlQxKE1CRURUTFNfQllURV8xKFkwKSkgXiAgICBcCisgICAgICAgICAgICAgICBBRVNfUlQyKE1CRURUTFNfQllURV8yKFkzKSkgXiAgICBcCisgICAgICAgICAgICAgICBBRVNfUlQzKE1CRURUTFNfQllURV8zKFkyKSk7ICAgICBcCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgIChYMikgPSAqUksrKyBeIEFFU19SVDAoTUJFRFRMU19CWVRFXzAoWTIpKSBeICAgIFwKKyAgICAgICAgICAgICAgIEFFU19SVDEoTUJFRFRMU19CWVRFXzEoWTEpKSBeICAgIFwKKyAgICAgICAgICAgICAgIEFFU19SVDIoTUJFRFRMU19CWVRFXzIoWTApKSBeICAgIFwKKyAgICAgICAgICAgICAgIEFFU19SVDMoTUJFRFRMU19CWVRFXzMoWTMpKTsgICAgIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgKFgzKSA9ICpSSysrIF4gQUVTX1JUMChNQkVEVExTX0JZVEVfMChZMykpIF4gICAgXAorICAgICAgICAgICAgICAgQUVTX1JUMShNQkVEVExTX0JZVEVfMShZMikpIF4gICAgXAorICAgICAgICAgICAgICAgQUVTX1JUMihNQkVEVExTX0JZVEVfMihZMSkpIF4gICAgXAorICAgICAgICAgICAgICAgQUVTX1JUMyhNQkVEVExTX0JZVEVfMyhZMCkpOyAgICAgXAorICAgIH0gd2hpbGUgKDApCisKKy8qCisgKiBBRVMtRUNCIGJsb2NrIGVuY3J5cHRpb24KKyAqLworI2lmICFkZWZpbmVkKE1CRURUTFNfQUVTX0VOQ1JZUFRfQUxUKQoraW50IG1iZWR0bHNfaW50ZXJuYWxfYWVzX2VuY3J5cHQobWJlZHRsc19hZXNfY29udGV4dCAqY3R4LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdW5zaWduZWQgY2hhciBpbnB1dFsxNl0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBjaGFyIG91dHB1dFsxNl0pCit7CisgICAgaW50IGk7CisgICAgdWludDMyX3QgKlJLID0gY3R4LT5idWYgKyBjdHgtPnJrX29mZnNldDsKKyAgICBzdHJ1Y3QgeworICAgICAgICB1aW50MzJfdCBYWzRdOworICAgICAgICB1aW50MzJfdCBZWzRdOworICAgIH0gdDsKKworICAgIHQuWFswXSA9IE1CRURUTFNfR0VUX1VJTlQzMl9MRShpbnB1dCwgIDApOyB0LlhbMF0gXj0gKlJLKys7CisgICAgdC5YWzFdID0gTUJFRFRMU19HRVRfVUlOVDMyX0xFKGlucHV0LCAgNCk7IHQuWFsxXSBePSAqUksrKzsKKyAgICB0LlhbMl0gPSBNQkVEVExTX0dFVF9VSU5UMzJfTEUoaW5wdXQsICA4KTsgdC5YWzJdIF49ICpSSysrOworICAgIHQuWFszXSA9IE1CRURUTFNfR0VUX1VJTlQzMl9MRShpbnB1dCwgMTIpOyB0LlhbM10gXj0gKlJLKys7CisKKyAgICBmb3IgKGkgPSAoY3R4LT5uciA+PiAxKSAtIDE7IGkgPiAwOyBpLS0pIHsKKyAgICAgICAgQUVTX0ZST1VORCh0LllbMF0sIHQuWVsxXSwgdC5ZWzJdLCB0LllbM10sIHQuWFswXSwgdC5YWzFdLCB0LlhbMl0sIHQuWFszXSk7CisgICAgICAgIEFFU19GUk9VTkQodC5YWzBdLCB0LlhbMV0sIHQuWFsyXSwgdC5YWzNdLCB0LllbMF0sIHQuWVsxXSwgdC5ZWzJdLCB0LllbM10pOworICAgIH0KKworICAgIEFFU19GUk9VTkQodC5ZWzBdLCB0LllbMV0sIHQuWVsyXSwgdC5ZWzNdLCB0LlhbMF0sIHQuWFsxXSwgdC5YWzJdLCB0LlhbM10pOworCisgICAgdC5YWzBdID0gKlJLKysgXiBcCisgICAgICAgICAgICAgKCh1aW50MzJfdCkgRlNiW01CRURUTFNfQllURV8wKHQuWVswXSldKSBeCisgICAgICAgICAgICAgKCh1aW50MzJfdCkgRlNiW01CRURUTFNfQllURV8xKHQuWVsxXSldIDw8ICA4KSBeCisgICAgICAgICAgICAgKCh1aW50MzJfdCkgRlNiW01CRURUTFNfQllURV8yKHQuWVsyXSldIDw8IDE2KSBeCisgICAgICAgICAgICAgKCh1aW50MzJfdCkgRlNiW01CRURUTFNfQllURV8zKHQuWVszXSldIDw8IDI0KTsKKworICAgIHQuWFsxXSA9ICpSSysrIF4gXAorICAgICAgICAgICAgICgodWludDMyX3QpIEZTYltNQkVEVExTX0JZVEVfMCh0LllbMV0pXSkgXgorICAgICAgICAgICAgICgodWludDMyX3QpIEZTYltNQkVEVExTX0JZVEVfMSh0LllbMl0pXSA8PCAgOCkgXgorICAgICAgICAgICAgICgodWludDMyX3QpIEZTYltNQkVEVExTX0JZVEVfMih0LllbM10pXSA8PCAxNikgXgorICAgICAgICAgICAgICgodWludDMyX3QpIEZTYltNQkVEVExTX0JZVEVfMyh0LllbMF0pXSA8PCAyNCk7CisKKyAgICB0LlhbMl0gPSAqUksrKyBeIFwKKyAgICAgICAgICAgICAoKHVpbnQzMl90KSBGU2JbTUJFRFRMU19CWVRFXzAodC5ZWzJdKV0pIF4KKyAgICAgICAgICAgICAoKHVpbnQzMl90KSBGU2JbTUJFRFRMU19CWVRFXzEodC5ZWzNdKV0gPDwgIDgpIF4KKyAgICAgICAgICAgICAoKHVpbnQzMl90KSBGU2JbTUJFRFRMU19CWVRFXzIodC5ZWzBdKV0gPDwgMTYpIF4KKyAgICAgICAgICAgICAoKHVpbnQzMl90KSBGU2JbTUJFRFRMU19CWVRFXzModC5ZWzFdKV0gPDwgMjQpOworCisgICAgdC5YWzNdID0gKlJLKysgXiBcCisgICAgICAgICAgICAgKCh1aW50MzJfdCkgRlNiW01CRURUTFNfQllURV8wKHQuWVszXSldKSBeCisgICAgICAgICAgICAgKCh1aW50MzJfdCkgRlNiW01CRURUTFNfQllURV8xKHQuWVswXSldIDw8ICA4KSBeCisgICAgICAgICAgICAgKCh1aW50MzJfdCkgRlNiW01CRURUTFNfQllURV8yKHQuWVsxXSldIDw8IDE2KSBeCisgICAgICAgICAgICAgKCh1aW50MzJfdCkgRlNiW01CRURUTFNfQllURV8zKHQuWVsyXSldIDw8IDI0KTsKKworICAgIE1CRURUTFNfUFVUX1VJTlQzMl9MRSh0LlhbMF0sIG91dHB1dCwgIDApOworICAgIE1CRURUTFNfUFVUX1VJTlQzMl9MRSh0LlhbMV0sIG91dHB1dCwgIDQpOworICAgIE1CRURUTFNfUFVUX1VJTlQzMl9MRSh0LlhbMl0sIG91dHB1dCwgIDgpOworICAgIE1CRURUTFNfUFVUX1VJTlQzMl9MRSh0LlhbM10sIG91dHB1dCwgMTIpOworCisgICAgbWJlZHRsc19wbGF0Zm9ybV96ZXJvaXplKCZ0LCBzaXplb2YodCkpOworCisgICAgcmV0dXJuIDA7Cit9CisjZW5kaWYgLyogIU1CRURUTFNfQUVTX0VOQ1JZUFRfQUxUICovCisKKy8qCisgKiBBRVMtRUNCIGJsb2NrIGRlY3J5cHRpb24KKyAqLworI2lmICFkZWZpbmVkKE1CRURUTFNfQUVTX0RFQ1JZUFRfQUxUKSAmJiAhZGVmaW5lZChNQkVEVExTX0JMT0NLX0NJUEhFUl9OT19ERUNSWVBUKQoraW50IG1iZWR0bHNfaW50ZXJuYWxfYWVzX2RlY3J5cHQobWJlZHRsc19hZXNfY29udGV4dCAqY3R4LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdW5zaWduZWQgY2hhciBpbnB1dFsxNl0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBjaGFyIG91dHB1dFsxNl0pCit7CisgICAgaW50IGk7CisgICAgdWludDMyX3QgKlJLID0gY3R4LT5idWYgKyBjdHgtPnJrX29mZnNldDsKKyAgICBzdHJ1Y3QgeworICAgICAgICB1aW50MzJfdCBYWzRdOworICAgICAgICB1aW50MzJfdCBZWzRdOworICAgIH0gdDsKKworICAgIHQuWFswXSA9IE1CRURUTFNfR0VUX1VJTlQzMl9MRShpbnB1dCwgIDApOyB0LlhbMF0gXj0gKlJLKys7CisgICAgdC5YWzFdID0gTUJFRFRMU19HRVRfVUlOVDMyX0xFKGlucHV0LCAgNCk7IHQuWFsxXSBePSAqUksrKzsKKyAgICB0LlhbMl0gPSBNQkVEVExTX0dFVF9VSU5UMzJfTEUoaW5wdXQsICA4KTsgdC5YWzJdIF49ICpSSysrOworICAgIHQuWFszXSA9IE1CRURUTFNfR0VUX1VJTlQzMl9MRShpbnB1dCwgMTIpOyB0LlhbM10gXj0gKlJLKys7CisKKyAgICBmb3IgKGkgPSAoY3R4LT5uciA+PiAxKSAtIDE7IGkgPiAwOyBpLS0pIHsKKyAgICAgICAgQUVTX1JST1VORCh0LllbMF0sIHQuWVsxXSwgdC5ZWzJdLCB0LllbM10sIHQuWFswXSwgdC5YWzFdLCB0LlhbMl0sIHQuWFszXSk7CisgICAgICAgIEFFU19SUk9VTkQodC5YWzBdLCB0LlhbMV0sIHQuWFsyXSwgdC5YWzNdLCB0LllbMF0sIHQuWVsxXSwgdC5ZWzJdLCB0LllbM10pOworICAgIH0KKworICAgIEFFU19SUk9VTkQodC5ZWzBdLCB0LllbMV0sIHQuWVsyXSwgdC5ZWzNdLCB0LlhbMF0sIHQuWFsxXSwgdC5YWzJdLCB0LlhbM10pOworCisgICAgdC5YWzBdID0gKlJLKysgXiBcCisgICAgICAgICAgICAgKCh1aW50MzJfdCkgUlNiW01CRURUTFNfQllURV8wKHQuWVswXSldKSBeCisgICAgICAgICAgICAgKCh1aW50MzJfdCkgUlNiW01CRURUTFNfQllURV8xKHQuWVszXSldIDw8ICA4KSBeCisgICAgICAgICAgICAgKCh1aW50MzJfdCkgUlNiW01CRURUTFNfQllURV8yKHQuWVsyXSldIDw8IDE2KSBeCisgICAgICAgICAgICAgKCh1aW50MzJfdCkgUlNiW01CRURUTFNfQllURV8zKHQuWVsxXSldIDw8IDI0KTsKKworICAgIHQuWFsxXSA9ICpSSysrIF4gXAorICAgICAgICAgICAgICgodWludDMyX3QpIFJTYltNQkVEVExTX0JZVEVfMCh0LllbMV0pXSkgXgorICAgICAgICAgICAgICgodWludDMyX3QpIFJTYltNQkVEVExTX0JZVEVfMSh0LllbMF0pXSA8PCAgOCkgXgorICAgICAgICAgICAgICgodWludDMyX3QpIFJTYltNQkVEVExTX0JZVEVfMih0LllbM10pXSA8PCAxNikgXgorICAgICAgICAgICAgICgodWludDMyX3QpIFJTYltNQkVEVExTX0JZVEVfMyh0LllbMl0pXSA8PCAyNCk7CisKKyAgICB0LlhbMl0gPSAqUksrKyBeIFwKKyAgICAgICAgICAgICAoKHVpbnQzMl90KSBSU2JbTUJFRFRMU19CWVRFXzAodC5ZWzJdKV0pIF4KKyAgICAgICAgICAgICAoKHVpbnQzMl90KSBSU2JbTUJFRFRMU19CWVRFXzEodC5ZWzFdKV0gPDwgIDgpIF4KKyAgICAgICAgICAgICAoKHVpbnQzMl90KSBSU2JbTUJFRFRMU19CWVRFXzIodC5ZWzBdKV0gPDwgMTYpIF4KKyAgICAgICAgICAgICAoKHVpbnQzMl90KSBSU2JbTUJFRFRMU19CWVRFXzModC5ZWzNdKV0gPDwgMjQpOworCisgICAgdC5YWzNdID0gKlJLKysgXiBcCisgICAgICAgICAgICAgKCh1aW50MzJfdCkgUlNiW01CRURUTFNfQllURV8wKHQuWVszXSldKSBeCisgICAgICAgICAgICAgKCh1aW50MzJfdCkgUlNiW01CRURUTFNfQllURV8xKHQuWVsyXSldIDw8ICA4KSBeCisgICAgICAgICAgICAgKCh1aW50MzJfdCkgUlNiW01CRURUTFNfQllURV8yKHQuWVsxXSldIDw8IDE2KSBeCisgICAgICAgICAgICAgKCh1aW50MzJfdCkgUlNiW01CRURUTFNfQllURV8zKHQuWVswXSldIDw8IDI0KTsKKworICAgIE1CRURUTFNfUFVUX1VJTlQzMl9MRSh0LlhbMF0sIG91dHB1dCwgIDApOworICAgIE1CRURUTFNfUFVUX1VJTlQzMl9MRSh0LlhbMV0sIG91dHB1dCwgIDQpOworICAgIE1CRURUTFNfUFVUX1VJTlQzMl9MRSh0LlhbMl0sIG91dHB1dCwgIDgpOworICAgIE1CRURUTFNfUFVUX1VJTlQzMl9MRSh0LlhbM10sIG91dHB1dCwgMTIpOworCisgICAgbWJlZHRsc19wbGF0Zm9ybV96ZXJvaXplKCZ0LCBzaXplb2YodCkpOworCisgICAgcmV0dXJuIDA7Cit9CisjZW5kaWYgLyogIU1CRURUTFNfQUVTX0RFQ1JZUFRfQUxUICYmICFNQkVEVExTX0JMT0NLX0NJUEhFUl9OT19ERUNSWVBUICovCisKKy8qCisgKiBPdXIgaW50cmluc2ljcy1iYXNlZCBpbXBsZW1lbnRhdGlvbiBvZiBBRVNOSSByZXF1aXJlcyB0aGUgcm91bmQga2V5cyB0byBiZQorICogYWxpZ25lZCBvbiBhIDE2LWJ5dGUgYm91bmRhcnkuIFdlIHRha2UgY2FyZSBvZiB0aGlzIGJlZm9yZSBjcmVhdGluZyB0aGVtLAorICogYnV0IHRoZSBBRVMgY29udGV4dCBtYXkgaGF2ZSBtb3ZlZCAodGhpcyBjYW4gaGFwcGVuIGlmIHRoZSBsaWJyYXJ5IGlzCisgKiBjYWxsZWQgZnJvbSBhIGxhbmd1YWdlIHdpdGggbWFuYWdlZCBtZW1vcnkpLCBhbmQgaW4gbGF0ZXIgY2FsbHMgaXQgbWlnaHQKKyAqIGhhdmUgYSBkaWZmZXJlbnQgYWxpZ25tZW50IHdpdGggcmVzcGVjdCB0byAxNi1ieXRlIG1lbW9yeS4gU28gd2UgbWF5IG5lZWQKKyAqIHRvIHJlYWxpZ24uCisgKi8KKyNpZiBkZWZpbmVkKE1BWV9ORUVEX1RPX0FMSUdOKQorTUJFRFRMU19NQVlCRV9VTlVTRUQgc3RhdGljIHZvaWQgYWVzX21heWJlX3JlYWxpZ24obWJlZHRsc19hZXNfY29udGV4dCAqY3R4KQoreworICAgIHVuc2lnbmVkIG5ld19vZmZzZXQgPSBtYmVkdGxzX2Flc19ya19vZmZzZXQoY3R4LT5idWYpOworICAgIGlmIChuZXdfb2Zmc2V0ICE9IGN0eC0+cmtfb2Zmc2V0KSB7CisgICAgICAgIG1lbW1vdmUoY3R4LT5idWYgKyBuZXdfb2Zmc2V0LCAgICAgLy8gbmV3IGFkZHJlc3MKKyAgICAgICAgICAgICAgICBjdHgtPmJ1ZiArIGN0eC0+cmtfb2Zmc2V0LCAvLyBjdXJyZW50IGFkZHJlc3MKKyAgICAgICAgICAgICAgICAoY3R4LT5uciArIDEpICogMTYpOyAgICAgICAvLyBudW1iZXIgb2Ygcm91bmQga2V5cyAqIGJ5dGVzIHBlciByaworICAgICAgICBjdHgtPnJrX29mZnNldCA9IG5ld19vZmZzZXQ7CisgICAgfQorfQorI2VuZGlmIC8qIE1BWV9ORUVEX1RPX0FMSUdOICovCisvKgorICogQUVTLUVDQiBibG9jayBlbmNyeXB0aW9uL2RlY3J5cHRpb24KKyAqLworaW50IG1iZWR0bHNfYWVzX2NyeXB0X2VjYihtYmVkdGxzX2Flc19jb250ZXh0ICpjdHgsCisgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBtb2RlLAorICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1bnNpZ25lZCBjaGFyIGlucHV0WzE2XSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgY2hhciBvdXRwdXRbMTZdKQoreworICAgIGlmIChtb2RlICE9IE1CRURUTFNfQUVTX0VOQ1JZUFQgJiYgbW9kZSAhPSBNQkVEVExTX0FFU19ERUNSWVBUKSB7CisgICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9BRVNfQkFEX0lOUFVUX0RBVEE7CisgICAgfQorCisjaWYgZGVmaW5lZChNQVlfTkVFRF9UT19BTElHTikKKyAgICBhZXNfbWF5YmVfcmVhbGlnbihjdHgpOworI2VuZGlmCisKKyNpZiBkZWZpbmVkKE1CRURUTFNfQUVTTklfSEFWRV9DT0RFKQorICAgIGlmIChtYmVkdGxzX2Flc25pX2hhc19zdXBwb3J0KE1CRURUTFNfQUVTTklfQUVTKSkgeworICAgICAgICByZXR1cm4gbWJlZHRsc19hZXNuaV9jcnlwdF9lY2IoY3R4LCBtb2RlLCBpbnB1dCwgb3V0cHV0KTsKKyAgICB9CisjZW5kaWYKKworI2lmIGRlZmluZWQoTUJFRFRMU19BRVNDRV9IQVZFX0NPREUpCisgICAgaWYgKE1CRURUTFNfQUVTQ0VfSEFTX1NVUFBPUlQoKSkgeworICAgICAgICByZXR1cm4gbWJlZHRsc19hZXNjZV9jcnlwdF9lY2IoY3R4LCBtb2RlLCBpbnB1dCwgb3V0cHV0KTsKKyAgICB9CisjZW5kaWYKKworI2lmICFkZWZpbmVkKE1CRURUTFNfQUVTX1VTRV9IQVJEV0FSRV9PTkxZKQorI2lmICFkZWZpbmVkKE1CRURUTFNfQkxPQ0tfQ0lQSEVSX05PX0RFQ1JZUFQpCisgICAgaWYgKG1vZGUgPT0gTUJFRFRMU19BRVNfREVDUllQVCkgeworICAgICAgICByZXR1cm4gbWJlZHRsc19pbnRlcm5hbF9hZXNfZGVjcnlwdChjdHgsIGlucHV0LCBvdXRwdXQpOworICAgIH0gZWxzZQorI2VuZGlmCisgICAgeworICAgICAgICByZXR1cm4gbWJlZHRsc19pbnRlcm5hbF9hZXNfZW5jcnlwdChjdHgsIGlucHV0LCBvdXRwdXQpOworICAgIH0KKyNlbmRpZiAvKiAhTUJFRFRMU19BRVNfVVNFX0hBUkRXQVJFX09OTFkgKi8KK30KKworI2lmIGRlZmluZWQoTUJFRFRMU19DSVBIRVJfTU9ERV9DQkMpCisKKy8qCisgKiBBRVMtQ0JDIGJ1ZmZlciBlbmNyeXB0aW9uL2RlY3J5cHRpb24KKyAqLworaW50IG1iZWR0bHNfYWVzX2NyeXB0X2NiYyhtYmVkdGxzX2Flc19jb250ZXh0ICpjdHgsCisgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBtb2RlLAorICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgbGVuZ3RoLAorICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBjaGFyIGl2WzE2XSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdW5zaWduZWQgY2hhciAqaW5wdXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGNoYXIgKm91dHB1dCkKK3sKKyAgICBpbnQgcmV0ID0gTUJFRFRMU19FUlJfRVJST1JfQ09SUlVQVElPTl9ERVRFQ1RFRDsKKyAgICB1bnNpZ25lZCBjaGFyIHRlbXBbMTZdOworCisgICAgaWYgKG1vZGUgIT0gTUJFRFRMU19BRVNfRU5DUllQVCAmJiBtb2RlICE9IE1CRURUTFNfQUVTX0RFQ1JZUFQpIHsKKyAgICAgICAgcmV0dXJuIE1CRURUTFNfRVJSX0FFU19CQURfSU5QVVRfREFUQTsKKyAgICB9CisKKyAgICAvKiBOb3RoaW5nIHRvIGRvIGlmIGxlbmd0aCBpcyB6ZXJvLiAqLworICAgIGlmIChsZW5ndGggPT0gMCkgeworICAgICAgICByZXR1cm4gMDsKKyAgICB9CisKKyAgICBpZiAobGVuZ3RoICUgMTYpIHsKKyAgICAgICAgcmV0dXJuIE1CRURUTFNfRVJSX0FFU19JTlZBTElEX0lOUFVUX0xFTkdUSDsKKyAgICB9CisKKyAgICBjb25zdCB1bnNpZ25lZCBjaGFyICppdnAgPSBpdjsKKworICAgIGlmIChtb2RlID09IE1CRURUTFNfQUVTX0RFQ1JZUFQpIHsKKyAgICAgICAgd2hpbGUgKGxlbmd0aCA+IDApIHsKKyAgICAgICAgICAgIG1lbWNweSh0ZW1wLCBpbnB1dCwgMTYpOworICAgICAgICAgICAgcmV0ID0gbWJlZHRsc19hZXNfY3J5cHRfZWNiKGN0eCwgbW9kZSwgaW5wdXQsIG91dHB1dCk7CisgICAgICAgICAgICBpZiAocmV0ICE9IDApIHsKKyAgICAgICAgICAgICAgICBnb3RvIGV4aXQ7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAvKiBBdm9pZCB1c2luZyB0aGUgTkVPTiBpbXBsZW1lbnRhdGlvbiBvZiBtYmVkdGxzX3hvci4gQmVjYXVzZSBvZiB0aGUgZGVwZW5kZW5jeSBvbgorICAgICAgICAgICAgICogdGhlIHJlc3VsdCBmb3IgdGhlIG5leHQgYmxvY2sgaW4gQ0JDLCBhbmQgdGhlIGNvc3Qgb2YgdHJhbnNmZXJyaW5nIHRoYXQgZGF0YSBmcm9tCisgICAgICAgICAgICAgKiBORU9OIHJlZ2lzdGVycywgTkVPTiBpcyBzbG93ZXIgb24gYWFyY2g2NC4gKi8KKyAgICAgICAgICAgIG1iZWR0bHNfeG9yX25vX3NpbWQob3V0cHV0LCBvdXRwdXQsIGl2LCAxNik7CisKKyAgICAgICAgICAgIG1lbWNweShpdiwgdGVtcCwgMTYpOworCisgICAgICAgICAgICBpbnB1dCAgKz0gMTY7CisgICAgICAgICAgICBvdXRwdXQgKz0gMTY7CisgICAgICAgICAgICBsZW5ndGggLT0gMTY7CisgICAgICAgIH0KKyAgICB9IGVsc2UgeworICAgICAgICB3aGlsZSAobGVuZ3RoID4gMCkgeworICAgICAgICAgICAgbWJlZHRsc194b3Jfbm9fc2ltZChvdXRwdXQsIGlucHV0LCBpdnAsIDE2KTsKKworICAgICAgICAgICAgcmV0ID0gbWJlZHRsc19hZXNfY3J5cHRfZWNiKGN0eCwgbW9kZSwgb3V0cHV0LCBvdXRwdXQpOworICAgICAgICAgICAgaWYgKHJldCAhPSAwKSB7CisgICAgICAgICAgICAgICAgZ290byBleGl0OworICAgICAgICAgICAgfQorICAgICAgICAgICAgaXZwID0gb3V0cHV0OworCisgICAgICAgICAgICBpbnB1dCAgKz0gMTY7CisgICAgICAgICAgICBvdXRwdXQgKz0gMTY7CisgICAgICAgICAgICBsZW5ndGggLT0gMTY7CisgICAgICAgIH0KKyAgICAgICAgbWVtY3B5KGl2LCBpdnAsIDE2KTsKKyAgICB9CisgICAgcmV0ID0gMDsKKworZXhpdDoKKyAgICByZXR1cm4gcmV0OworfQorI2VuZGlmIC8qIE1CRURUTFNfQ0lQSEVSX01PREVfQ0JDICovCisKKyNpZiBkZWZpbmVkKE1CRURUTFNfQ0lQSEVSX01PREVfWFRTKQorCit0eXBlZGVmIHVuc2lnbmVkIGNoYXIgbWJlZHRsc19iZTEyOFsxNl07CisKKy8qCisgKiBHRigyXjEyOCkgbXVsdGlwbGljYXRpb24gZnVuY3Rpb24KKyAqCisgKiBUaGlzIGZ1bmN0aW9uIG11bHRpcGxpZXMgYSBmaWVsZCBlbGVtZW50IGJ5IHggaW4gdGhlIHBvbHlub21pYWwgZmllbGQKKyAqIHJlcHJlc2VudGF0aW9uLiBJdCB1c2VzIDY0LWJpdCB3b3JkIG9wZXJhdGlvbnMgdG8gZ2FpbiBzcGVlZCBidXQgY29tcGVuc2F0ZXMKKyAqIGZvciBtYWNoaW5lIGVuZGlhbm5lc3MgYW5kIGhlbmNlIHdvcmtzIGNvcnJlY3RseSBvbiBib3RoIGJpZyBhbmQgbGl0dGxlCisgKiBlbmRpYW4gbWFjaGluZXMuCisgKi8KKyNpZiBkZWZpbmVkKE1CRURUTFNfQUVTQ0VfQykgfHwgZGVmaW5lZChNQkVEVExTX0FFU05JX0MpCitNQkVEVExTX09QVElNSVpFX0ZPUl9QRVJGT1JNQU5DRQorI2VuZGlmCitzdGF0aWMgaW5saW5lIHZvaWQgbWJlZHRsc19nZjEyOG11bF94X2JsZSh1bnNpZ25lZCBjaGFyIHJbMTZdLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdW5zaWduZWQgY2hhciB4WzE2XSkKK3sKKyAgICB1aW50NjRfdCBhLCBiLCByYSwgcmI7CisKKyAgICBhID0gTUJFRFRMU19HRVRfVUlOVDY0X0xFKHgsIDApOworICAgIGIgPSBNQkVEVExTX0dFVF9VSU5UNjRfTEUoeCwgOCk7CisKKyAgICByYSA9IChhIDw8IDEpICBeIDB4MDA4NyA+PiAoOCAtICgoYiA+PiA2MykgPDwgMykpOworICAgIHJiID0gKGEgPj4gNjMpIHwgKGIgPDwgMSk7CisKKyAgICBNQkVEVExTX1BVVF9VSU5UNjRfTEUocmEsIHIsIDApOworICAgIE1CRURUTFNfUFVUX1VJTlQ2NF9MRShyYiwgciwgOCk7Cit9CisKKy8qCisgKiBBRVMtWFRTIGJ1ZmZlciBlbmNyeXB0aW9uL2RlY3J5cHRpb24KKyAqCisgKiBVc2Ugb2YgTUJFRFRMU19PUFRJTUlaRV9GT1JfUEVSRk9STUFOQ0UgaGVyZSBhbmQgZm9yIG1iZWR0bHNfZ2YxMjhtdWxfeF9ibGUoKQorICogaXMgYSAzeCBwZXJmb3JtYW5jZSBpbXByb3ZlbWVudCBmb3IgZ2NjIC1PcywgaWYgd2UgaGF2ZSBoYXJkd2FyZSBBRVMgc3VwcG9ydC4KKyAqLworI2lmIGRlZmluZWQoTUJFRFRMU19BRVNDRV9DKSB8fCBkZWZpbmVkKE1CRURUTFNfQUVTTklfQykKK01CRURUTFNfT1BUSU1JWkVfRk9SX1BFUkZPUk1BTkNFCisjZW5kaWYKK2ludCBtYmVkdGxzX2Flc19jcnlwdF94dHMobWJlZHRsc19hZXNfeHRzX2NvbnRleHQgKmN0eCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IG1vZGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBsZW5ndGgsCisgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgZGF0YV91bml0WzE2XSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdW5zaWduZWQgY2hhciAqaW5wdXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGNoYXIgKm91dHB1dCkKK3sKKyAgICBpbnQgcmV0ID0gTUJFRFRMU19FUlJfRVJST1JfQ09SUlVQVElPTl9ERVRFQ1RFRDsKKyAgICBzaXplX3QgYmxvY2tzID0gbGVuZ3RoIC8gMTY7CisgICAgc2l6ZV90IGxlZnRvdmVyID0gbGVuZ3RoICUgMTY7CisgICAgdW5zaWduZWQgY2hhciB0d2Vha1sxNl07CisgICAgdW5zaWduZWQgY2hhciBwcmV2X3R3ZWFrWzE2XTsKKyAgICB1bnNpZ25lZCBjaGFyIHRtcFsxNl07CisKKyAgICBpZiAobW9kZSAhPSBNQkVEVExTX0FFU19FTkNSWVBUICYmIG1vZGUgIT0gTUJFRFRMU19BRVNfREVDUllQVCkgeworICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfQUVTX0JBRF9JTlBVVF9EQVRBOworICAgIH0KKworICAgIC8qIERhdGEgdW5pdHMgbXVzdCBiZSBhdCBsZWFzdCAxNiBieXRlcyBsb25nLiAqLworICAgIGlmIChsZW5ndGggPCAxNikgeworICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfQUVTX0lOVkFMSURfSU5QVVRfTEVOR1RIOworICAgIH0KKworICAgIC8qIE5JU1QgU1AgODAwLTM4RSBkaXNhbGxvd3MgZGF0YSB1bml0cyBsYXJnZXIgdGhhbiAyKioyMCBibG9ja3MuICovCisgICAgaWYgKGxlbmd0aCA+ICgxIDw8IDIwKSAqIDE2KSB7CisgICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9BRVNfSU5WQUxJRF9JTlBVVF9MRU5HVEg7CisgICAgfQorCisgICAgLyogQ29tcHV0ZSB0aGUgdHdlYWsuICovCisgICAgcmV0ID0gbWJlZHRsc19hZXNfY3J5cHRfZWNiKCZjdHgtPnR3ZWFrLCBNQkVEVExTX0FFU19FTkNSWVBULAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhX3VuaXQsIHR3ZWFrKTsKKyAgICBpZiAocmV0ICE9IDApIHsKKyAgICAgICAgcmV0dXJuIHJldDsKKyAgICB9CisKKyAgICB3aGlsZSAoYmxvY2tzLS0pIHsKKyAgICAgICAgaWYgKE1CRURUTFNfVU5MSUtFTFkobGVmdG92ZXIgJiYgKG1vZGUgPT0gTUJFRFRMU19BRVNfREVDUllQVCkgJiYgYmxvY2tzID09IDApKSB7CisgICAgICAgICAgICAvKiBXZSBhcmUgb24gdGhlIGxhc3QgYmxvY2sgaW4gYSBkZWNyeXB0IG9wZXJhdGlvbiB0aGF0IGhhcworICAgICAgICAgICAgICogbGVmdG92ZXIgYnl0ZXMsIHNvIHdlIG5lZWQgdG8gdXNlIHRoZSBuZXh0IHR3ZWFrIGZvciB0aGlzIGJsb2NrLAorICAgICAgICAgICAgICogYW5kIHRoaXMgdHdlYWsgZm9yIHRoZSBsZWZ0b3ZlciBieXRlcy4gU2F2ZSB0aGUgY3VycmVudCB0d2VhayBmb3IKKyAgICAgICAgICAgICAqIHRoZSBsZWZ0b3ZlcnMgYW5kIHRoZW4gdXBkYXRlIHRoZSBjdXJyZW50IHR3ZWFrIGZvciB1c2Ugb24gdGhpcywKKyAgICAgICAgICAgICAqIHRoZSBsYXN0IGZ1bGwgYmxvY2suICovCisgICAgICAgICAgICBtZW1jcHkocHJldl90d2VhaywgdHdlYWssIHNpemVvZih0d2VhaykpOworICAgICAgICAgICAgbWJlZHRsc19nZjEyOG11bF94X2JsZSh0d2VhaywgdHdlYWspOworICAgICAgICB9CisKKyAgICAgICAgbWJlZHRsc194b3IodG1wLCBpbnB1dCwgdHdlYWssIDE2KTsKKworICAgICAgICByZXQgPSBtYmVkdGxzX2Flc19jcnlwdF9lY2IoJmN0eC0+Y3J5cHQsIG1vZGUsIHRtcCwgdG1wKTsKKyAgICAgICAgaWYgKHJldCAhPSAwKSB7CisgICAgICAgICAgICByZXR1cm4gcmV0OworICAgICAgICB9CisKKyAgICAgICAgbWJlZHRsc194b3Iob3V0cHV0LCB0bXAsIHR3ZWFrLCAxNik7CisKKyAgICAgICAgLyogVXBkYXRlIHRoZSB0d2VhayBmb3IgdGhlIG5leHQgYmxvY2suICovCisgICAgICAgIG1iZWR0bHNfZ2YxMjhtdWxfeF9ibGUodHdlYWssIHR3ZWFrKTsKKworICAgICAgICBvdXRwdXQgKz0gMTY7CisgICAgICAgIGlucHV0ICs9IDE2OworICAgIH0KKworICAgIGlmIChsZWZ0b3ZlcikgeworICAgICAgICAvKiBJZiB3ZSBhcmUgb24gdGhlIGxlZnRvdmVyIGJ5dGVzIGluIGEgZGVjcnlwdCBvcGVyYXRpb24sIHdlIG5lZWQgdG8KKyAgICAgICAgICogdXNlIHRoZSBwcmV2aW91cyB0d2VhayBmb3IgdGhlc2UgYnl0ZXMgKGFzIHNhdmVkIGluIHByZXZfdHdlYWspLiAqLworICAgICAgICB1bnNpZ25lZCBjaGFyICp0ID0gbW9kZSA9PSBNQkVEVExTX0FFU19ERUNSWVBUID8gcHJldl90d2VhayA6IHR3ZWFrOworCisgICAgICAgIC8qIFdlIGFyZSBub3cgb24gdGhlIGZpbmFsIHBhcnQgb2YgdGhlIGRhdGEgdW5pdCwgd2hpY2ggZG9lc24ndCBkaXZpZGUKKyAgICAgICAgICogZXZlbmx5IGJ5IDE2LiBJdCdzIHRpbWUgZm9yIGNpcGhlcnRleHQgc3RlYWxpbmcuICovCisgICAgICAgIHNpemVfdCBpOworICAgICAgICB1bnNpZ25lZCBjaGFyICpwcmV2X291dHB1dCA9IG91dHB1dCAtIDE2OworCisgICAgICAgIC8qIENvcHkgY2lwaGVydGV4dCBieXRlcyBmcm9tIHRoZSBwcmV2aW91cyBibG9jayB0byBvdXIgb3V0cHV0IGZvciBlYWNoCisgICAgICAgICAqIGJ5dGUgb2YgY2lwaGVydGV4dCB3ZSB3b24ndCBzdGVhbC4gKi8KKyAgICAgICAgZm9yIChpID0gMDsgaSA8IGxlZnRvdmVyOyBpKyspIHsKKyAgICAgICAgICAgIG91dHB1dFtpXSA9IHByZXZfb3V0cHV0W2ldOworICAgICAgICB9CisKKyAgICAgICAgLyogQ29weSB0aGUgcmVtYWluZGVyIG9mIHRoZSBpbnB1dCBmb3IgdGhpcyBmaW5hbCByb3VuZC4gKi8KKyAgICAgICAgbWJlZHRsc194b3IodG1wLCBpbnB1dCwgdCwgbGVmdG92ZXIpOworCisgICAgICAgIC8qIENvcHkgY2lwaGVydGV4dCBieXRlcyBmcm9tIHRoZSBwcmV2aW91cyBibG9jayBmb3IgaW5wdXQgaW4gdGhpcworICAgICAgICAgKiByb3VuZC4gKi8KKyAgICAgICAgbWJlZHRsc194b3IodG1wICsgaSwgcHJldl9vdXRwdXQgKyBpLCB0ICsgaSwgMTYgLSBpKTsKKworICAgICAgICByZXQgPSBtYmVkdGxzX2Flc19jcnlwdF9lY2IoJmN0eC0+Y3J5cHQsIG1vZGUsIHRtcCwgdG1wKTsKKyAgICAgICAgaWYgKHJldCAhPSAwKSB7CisgICAgICAgICAgICByZXR1cm4gcmV0OworICAgICAgICB9CisKKyAgICAgICAgLyogV3JpdGUgdGhlIHJlc3VsdCBiYWNrIHRvIHRoZSBwcmV2aW91cyBibG9jaywgb3ZlcnJpZGluZyB0aGUgcHJldmlvdXMKKyAgICAgICAgICogb3V0cHV0IHdlIGNvcGllZC4gKi8KKyAgICAgICAgbWJlZHRsc194b3IocHJldl9vdXRwdXQsIHRtcCwgdCwgMTYpOworICAgIH0KKworICAgIHJldHVybiAwOworfQorI2VuZGlmIC8qIE1CRURUTFNfQ0lQSEVSX01PREVfWFRTICovCisKKyNpZiBkZWZpbmVkKE1CRURUTFNfQ0lQSEVSX01PREVfQ0ZCKQorLyoKKyAqIEFFUy1DRkIxMjggYnVmZmVyIGVuY3J5cHRpb24vZGVjcnlwdGlvbgorICovCitpbnQgbWJlZHRsc19hZXNfY3J5cHRfY2ZiMTI4KG1iZWR0bHNfYWVzX2NvbnRleHQgKmN0eCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IG1vZGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBsZW5ndGgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCAqaXZfb2ZmLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBjaGFyIGl2WzE2XSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdW5zaWduZWQgY2hhciAqaW5wdXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGNoYXIgKm91dHB1dCkKK3sKKyAgICBpbnQgYzsKKyAgICBpbnQgcmV0ID0gTUJFRFRMU19FUlJfRVJST1JfQ09SUlVQVElPTl9ERVRFQ1RFRDsKKyAgICBzaXplX3QgbjsKKworICAgIGlmIChtb2RlICE9IE1CRURUTFNfQUVTX0VOQ1JZUFQgJiYgbW9kZSAhPSBNQkVEVExTX0FFU19ERUNSWVBUKSB7CisgICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9BRVNfQkFEX0lOUFVUX0RBVEE7CisgICAgfQorCisgICAgbiA9ICppdl9vZmY7CisKKyAgICBpZiAobiA+IDE1KSB7CisgICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9BRVNfQkFEX0lOUFVUX0RBVEE7CisgICAgfQorCisgICAgaWYgKG1vZGUgPT0gTUJFRFRMU19BRVNfREVDUllQVCkgeworICAgICAgICB3aGlsZSAobGVuZ3RoLS0pIHsKKyAgICAgICAgICAgIGlmIChuID09IDApIHsKKyAgICAgICAgICAgICAgICByZXQgPSBtYmVkdGxzX2Flc19jcnlwdF9lY2IoY3R4LCBNQkVEVExTX0FFU19FTkNSWVBULCBpdiwgaXYpOworICAgICAgICAgICAgICAgIGlmIChyZXQgIT0gMCkgeworICAgICAgICAgICAgICAgICAgICBnb3RvIGV4aXQ7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorCisgICAgICAgICAgICBjID0gKmlucHV0Kys7CisgICAgICAgICAgICAqb3V0cHV0KysgPSAodW5zaWduZWQgY2hhcikgKGMgXiBpdltuXSk7CisgICAgICAgICAgICBpdltuXSA9ICh1bnNpZ25lZCBjaGFyKSBjOworCisgICAgICAgICAgICBuID0gKG4gKyAxKSAmIDB4MEY7CisgICAgICAgIH0KKyAgICB9IGVsc2UgeworICAgICAgICB3aGlsZSAobGVuZ3RoLS0pIHsKKyAgICAgICAgICAgIGlmIChuID09IDApIHsKKyAgICAgICAgICAgICAgICByZXQgPSBtYmVkdGxzX2Flc19jcnlwdF9lY2IoY3R4LCBNQkVEVExTX0FFU19FTkNSWVBULCBpdiwgaXYpOworICAgICAgICAgICAgICAgIGlmIChyZXQgIT0gMCkgeworICAgICAgICAgICAgICAgICAgICBnb3RvIGV4aXQ7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpdltuXSA9ICpvdXRwdXQrKyA9ICh1bnNpZ25lZCBjaGFyKSAoaXZbbl0gXiAqaW5wdXQrKyk7CisKKyAgICAgICAgICAgIG4gPSAobiArIDEpICYgMHgwRjsKKyAgICAgICAgfQorICAgIH0KKworICAgICppdl9vZmYgPSBuOworICAgIHJldCA9IDA7CisKK2V4aXQ6CisgICAgcmV0dXJuIHJldDsKK30KKworLyoKKyAqIEFFUy1DRkI4IGJ1ZmZlciBlbmNyeXB0aW9uL2RlY3J5cHRpb24KKyAqLworaW50IG1iZWR0bHNfYWVzX2NyeXB0X2NmYjgobWJlZHRsc19hZXNfY29udGV4dCAqY3R4LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IG1vZGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgbGVuZ3RoLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgY2hhciBpdlsxNl0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1bnNpZ25lZCBjaGFyICppbnB1dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGNoYXIgKm91dHB1dCkKK3sKKyAgICBpbnQgcmV0ID0gTUJFRFRMU19FUlJfRVJST1JfQ09SUlVQVElPTl9ERVRFQ1RFRDsKKyAgICB1bnNpZ25lZCBjaGFyIGM7CisgICAgdW5zaWduZWQgY2hhciBvdlsxN107CisKKyAgICBpZiAobW9kZSAhPSBNQkVEVExTX0FFU19FTkNSWVBUICYmIG1vZGUgIT0gTUJFRFRMU19BRVNfREVDUllQVCkgeworICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfQUVTX0JBRF9JTlBVVF9EQVRBOworICAgIH0KKyAgICB3aGlsZSAobGVuZ3RoLS0pIHsKKyAgICAgICAgbWVtY3B5KG92LCBpdiwgMTYpOworICAgICAgICByZXQgPSBtYmVkdGxzX2Flc19jcnlwdF9lY2IoY3R4LCBNQkVEVExTX0FFU19FTkNSWVBULCBpdiwgaXYpOworICAgICAgICBpZiAocmV0ICE9IDApIHsKKyAgICAgICAgICAgIGdvdG8gZXhpdDsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChtb2RlID09IE1CRURUTFNfQUVTX0RFQ1JZUFQpIHsKKyAgICAgICAgICAgIG92WzE2XSA9ICppbnB1dDsKKyAgICAgICAgfQorCisgICAgICAgIGMgPSAqb3V0cHV0KysgPSAodW5zaWduZWQgY2hhcikgKGl2WzBdIF4gKmlucHV0KyspOworCisgICAgICAgIGlmIChtb2RlID09IE1CRURUTFNfQUVTX0VOQ1JZUFQpIHsKKyAgICAgICAgICAgIG92WzE2XSA9IGM7CisgICAgICAgIH0KKworICAgICAgICBtZW1jcHkoaXYsIG92ICsgMSwgMTYpOworICAgIH0KKyAgICByZXQgPSAwOworCitleGl0OgorICAgIHJldHVybiByZXQ7Cit9CisjZW5kaWYgLyogTUJFRFRMU19DSVBIRVJfTU9ERV9DRkIgKi8KKworI2lmIGRlZmluZWQoTUJFRFRMU19DSVBIRVJfTU9ERV9PRkIpCisvKgorICogQUVTLU9GQiAoT3V0cHV0IEZlZWRiYWNrIE1vZGUpIGJ1ZmZlciBlbmNyeXB0aW9uL2RlY3J5cHRpb24KKyAqLworaW50IG1iZWR0bHNfYWVzX2NyeXB0X29mYihtYmVkdGxzX2Flc19jb250ZXh0ICpjdHgsCisgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBsZW5ndGgsCisgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCAqaXZfb2ZmLAorICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBjaGFyIGl2WzE2XSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdW5zaWduZWQgY2hhciAqaW5wdXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGNoYXIgKm91dHB1dCkKK3sKKyAgICBpbnQgcmV0ID0gMDsKKyAgICBzaXplX3QgbjsKKworICAgIG4gPSAqaXZfb2ZmOworCisgICAgaWYgKG4gPiAxNSkgeworICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfQUVTX0JBRF9JTlBVVF9EQVRBOworICAgIH0KKworICAgIHdoaWxlIChsZW5ndGgtLSkgeworICAgICAgICBpZiAobiA9PSAwKSB7CisgICAgICAgICAgICByZXQgPSBtYmVkdGxzX2Flc19jcnlwdF9lY2IoY3R4LCBNQkVEVExTX0FFU19FTkNSWVBULCBpdiwgaXYpOworICAgICAgICAgICAgaWYgKHJldCAhPSAwKSB7CisgICAgICAgICAgICAgICAgZ290byBleGl0OworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgICpvdXRwdXQrKyA9ICAqaW5wdXQrKyBeIGl2W25dOworCisgICAgICAgIG4gPSAobiArIDEpICYgMHgwRjsKKyAgICB9CisKKyAgICAqaXZfb2ZmID0gbjsKKworZXhpdDoKKyAgICByZXR1cm4gcmV0OworfQorI2VuZGlmIC8qIE1CRURUTFNfQ0lQSEVSX01PREVfT0ZCICovCisKKyNpZiBkZWZpbmVkKE1CRURUTFNfQ0lQSEVSX01PREVfQ1RSKQorLyoKKyAqIEFFUy1DVFIgYnVmZmVyIGVuY3J5cHRpb24vZGVjcnlwdGlvbgorICovCitpbnQgbWJlZHRsc19hZXNfY3J5cHRfY3RyKG1iZWR0bHNfYWVzX2NvbnRleHQgKmN0eCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IGxlbmd0aCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90ICpuY19vZmYsCisgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGNoYXIgbm9uY2VfY291bnRlclsxNl0sCisgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGNoYXIgc3RyZWFtX2Jsb2NrWzE2XSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdW5zaWduZWQgY2hhciAqaW5wdXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGNoYXIgKm91dHB1dCkKK3sKKyAgICBpbnQgcmV0ID0gTUJFRFRMU19FUlJfRVJST1JfQ09SUlVQVElPTl9ERVRFQ1RFRDsKKworICAgIHNpemVfdCBvZmZzZXQgPSAqbmNfb2ZmOworCisgICAgaWYgKG9mZnNldCA+IDB4MEYpIHsKKyAgICAgICAgcmV0dXJuIE1CRURUTFNfRVJSX0FFU19CQURfSU5QVVRfREFUQTsKKyAgICB9CisKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGxlbmd0aDspIHsKKyAgICAgICAgc2l6ZV90IG4gPSAxNjsKKyAgICAgICAgaWYgKG9mZnNldCA9PSAwKSB7CisgICAgICAgICAgICByZXQgPSBtYmVkdGxzX2Flc19jcnlwdF9lY2IoY3R4LCBNQkVEVExTX0FFU19FTkNSWVBULCBub25jZV9jb3VudGVyLCBzdHJlYW1fYmxvY2spOworICAgICAgICAgICAgaWYgKHJldCAhPSAwKSB7CisgICAgICAgICAgICAgICAgZ290byBleGl0OworICAgICAgICAgICAgfQorICAgICAgICAgICAgbWJlZHRsc19jdHJfaW5jcmVtZW50X2NvdW50ZXIobm9uY2VfY291bnRlcik7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBuIC09IG9mZnNldDsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChuID4gKGxlbmd0aCAtIGkpKSB7CisgICAgICAgICAgICBuID0gKGxlbmd0aCAtIGkpOworICAgICAgICB9CisgICAgICAgIG1iZWR0bHNfeG9yKCZvdXRwdXRbaV0sICZpbnB1dFtpXSwgJnN0cmVhbV9ibG9ja1tvZmZzZXRdLCBuKTsKKyAgICAgICAgLy8gb2Zmc2V0IG1pZ2h0IGJlIG5vbi16ZXJvIGZvciB0aGUgbGFzdCBibG9jaywgYnV0IGluIHRoYXQgY2FzZSwgd2UgZG9uJ3QgdXNlIGl0IGFnYWluCisgICAgICAgIG9mZnNldCA9IDA7CisgICAgICAgIGkgKz0gbjsKKyAgICB9CisKKyAgICAvLyBjYXB0dXJlIG9mZnNldCBmb3IgZnV0dXJlIHJlc3VtcHRpb24KKyAgICAqbmNfb2ZmID0gKCpuY19vZmYgKyBsZW5ndGgpICUgMTY7CisKKyAgICByZXQgPSAwOworCitleGl0OgorICAgIHJldHVybiByZXQ7Cit9CisjZW5kaWYgLyogTUJFRFRMU19DSVBIRVJfTU9ERV9DVFIgKi8KKworI2lmIGRlZmluZWQoTUJFRFRMU19TRUxGX1RFU1QpCisvKgorICogQUVTIHRlc3QgdmVjdG9ycyBmcm9tOgorICoKKyAqIGh0dHA6Ly9jc3JjLm5pc3QuZ292L2FyY2hpdmUvYWVzL3Jpam5kYWVsL3Jpam5kYWVsLXZhbHMuemlwCisgKi8KKyNpZiAhZGVmaW5lZChNQkVEVExTX0JMT0NLX0NJUEhFUl9OT19ERUNSWVBUKQorc3RhdGljIGNvbnN0IHVuc2lnbmVkIGNoYXIgYWVzX3Rlc3RfZWNiX2RlY1tdWzE2XSA9Cit7CisgICAgeyAweDQ0LCAweDQxLCAweDZBLCAweEMyLCAweEQxLCAweEY1LCAweDNDLCAweDU4LAorICAgICAgMHgzMywgMHgwMywgMHg5MSwgMHg3RSwgMHg2QiwgMHhFOSwgMHhFQiwgMHhFMCB9LAorI2lmICFkZWZpbmVkKE1CRURUTFNfQUVTX09OTFlfMTI4X0JJVF9LRVlfTEVOR1RIKQorICAgIHsgMHg0OCwgMHhFMywgMHgxRSwgMHg5RSwgMHgyNSwgMHg2NywgMHgxOCwgMHhGMiwKKyAgICAgIDB4OTIsIDB4MjksIDB4MzEsIDB4OUMsIDB4MTksIDB4RjEsIDB4NUIsIDB4QTQgfSwKKyAgICB7IDB4MDUsIDB4OEMsIDB4Q0YsIDB4RkQsIDB4QkIsIDB4Q0IsIDB4MzgsIDB4MkQsCisgICAgICAweDFGLCAweDZGLCAweDU2LCAweDU4LCAweDVELCAweDhBLCAweDRBLCAweERFIH0KKyNlbmRpZgorfTsKKyNlbmRpZgorCitzdGF0aWMgY29uc3QgdW5zaWduZWQgY2hhciBhZXNfdGVzdF9lY2JfZW5jW11bMTZdID0KK3sKKyAgICB7IDB4QzMsIDB4NEMsIDB4MDUsIDB4MkMsIDB4QzAsIDB4REEsIDB4OEQsIDB4NzMsCisgICAgICAweDQ1LCAweDFBLCAweEZFLCAweDVGLCAweDAzLCAweEJFLCAweDI5LCAweDdGIH0sCisjaWYgIWRlZmluZWQoTUJFRFRMU19BRVNfT05MWV8xMjhfQklUX0tFWV9MRU5HVEgpCisgICAgeyAweEYzLCAweEY2LCAweDc1LCAweDJBLCAweEU4LCAweEQ3LCAweDgzLCAweDExLAorICAgICAgMHgzOCwgMHhGMCwgMHg0MSwgMHg1NiwgMHgwNiwgMHgzMSwgMHhCMSwgMHgxNCB9LAorICAgIHsgMHg4QiwgMHg3OSwgMHhFRSwgMHhDQywgMHg5MywgMHhBMCwgMHhFRSwgMHg1RCwKKyAgICAgIDB4RkYsIDB4MzAsIDB4QjQsIDB4RUEsIDB4MjEsIDB4NjMsIDB4NkQsIDB4QTQgfQorI2VuZGlmCit9OworCisjaWYgZGVmaW5lZChNQkVEVExTX0NJUEhFUl9NT0RFX0NCQykKK3N0YXRpYyBjb25zdCB1bnNpZ25lZCBjaGFyIGFlc190ZXN0X2NiY19kZWNbXVsxNl0gPQoreworICAgIHsgMHhGQSwgMHhDQSwgMHgzNywgMHhFMCwgMHhCMCwgMHhDOCwgMHg1MywgMHg3MywKKyAgICAgIDB4REYsIDB4NzAsIDB4NkUsIDB4NzMsIDB4RjcsIDB4QzksIDB4QUYsIDB4ODYgfSwKKyNpZiAhZGVmaW5lZChNQkVEVExTX0FFU19PTkxZXzEyOF9CSVRfS0VZX0xFTkdUSCkKKyAgICB7IDB4NUQsIDB4RjYsIDB4NzgsIDB4REQsIDB4MTcsIDB4QkEsIDB4NEUsIDB4NzUsCisgICAgICAweEI2LCAweDE3LCAweDY4LCAweEM2LCAweEFELCAweEVGLCAweDdDLCAweDdCIH0sCisgICAgeyAweDQ4LCAweDA0LCAweEUxLCAweDgxLCAweDhGLCAweEU2LCAweDI5LCAweDc1LAorICAgICAgMHgxOSwgMHhBMywgMHhFOCwgMHg4QywgMHg1NywgMHgzMSwgMHgwNCwgMHgxMyB9CisjZW5kaWYKK307CisKK3N0YXRpYyBjb25zdCB1bnNpZ25lZCBjaGFyIGFlc190ZXN0X2NiY19lbmNbXVsxNl0gPQoreworICAgIHsgMHg4QSwgMHgwNSwgMHhGQywgMHg1RSwgMHgwOSwgMHg1QSwgMHhGNCwgMHg4NCwKKyAgICAgIDB4OEEsIDB4MDgsIDB4RDMsIDB4MjgsIDB4RDMsIDB4NjgsIDB4OEUsIDB4M0QgfSwKKyNpZiAhZGVmaW5lZChNQkVEVExTX0FFU19PTkxZXzEyOF9CSVRfS0VZX0xFTkdUSCkKKyAgICB7IDB4N0IsIDB4RDksIDB4NjYsIDB4RDUsIDB4M0EsIDB4RDgsIDB4QzEsIDB4QkIsCisgICAgICAweDg1LCAweEQyLCAweEFELCAweEZBLCAweEU4LCAweDdCLCAweEIxLCAweDA0IH0sCisgICAgeyAweEZFLCAweDNDLCAweDUzLCAweDY1LCAweDNFLCAweDJGLCAweDQ1LCAweEI1LAorICAgICAgMHg2RiwgMHhDRCwgMHg4OCwgMHhCMiwgMHhDQywgMHg4OSwgMHg4RiwgMHhGMCB9CisjZW5kaWYKK307CisjZW5kaWYgLyogTUJFRFRMU19DSVBIRVJfTU9ERV9DQkMgKi8KKworI2lmIGRlZmluZWQoTUJFRFRMU19DSVBIRVJfTU9ERV9DRkIpCisvKgorICogQUVTLUNGQjEyOCB0ZXN0IHZlY3RvcnMgZnJvbToKKyAqCisgKiBodHRwOi8vY3NyYy5uaXN0Lmdvdi9wdWJsaWNhdGlvbnMvbmlzdHB1YnMvODAwLTM4YS9zcDgwMC0zOGEucGRmCisgKi8KK3N0YXRpYyBjb25zdCB1bnNpZ25lZCBjaGFyIGFlc190ZXN0X2NmYjEyOF9rZXlbXVszMl0gPQoreworICAgIHsgMHgyQiwgMHg3RSwgMHgxNSwgMHgxNiwgMHgyOCwgMHhBRSwgMHhEMiwgMHhBNiwKKyAgICAgIDB4QUIsIDB4RjcsIDB4MTUsIDB4ODgsIDB4MDksIDB4Q0YsIDB4NEYsIDB4M0MgfSwKKyNpZiAhZGVmaW5lZChNQkVEVExTX0FFU19PTkxZXzEyOF9CSVRfS0VZX0xFTkdUSCkKKyAgICB7IDB4OEUsIDB4NzMsIDB4QjAsIDB4RjcsIDB4REEsIDB4MEUsIDB4NjQsIDB4NTIsCisgICAgICAweEM4LCAweDEwLCAweEYzLCAweDJCLCAweDgwLCAweDkwLCAweDc5LCAweEU1LAorICAgICAgMHg2MiwgMHhGOCwgMHhFQSwgMHhEMiwgMHg1MiwgMHgyQywgMHg2QiwgMHg3QiB9LAorICAgIHsgMHg2MCwgMHgzRCwgMHhFQiwgMHgxMCwgMHgxNSwgMHhDQSwgMHg3MSwgMHhCRSwKKyAgICAgIDB4MkIsIDB4NzMsIDB4QUUsIDB4RjAsIDB4ODUsIDB4N0QsIDB4NzcsIDB4ODEsCisgICAgICAweDFGLCAweDM1LCAweDJDLCAweDA3LCAweDNCLCAweDYxLCAweDA4LCAweEQ3LAorICAgICAgMHgyRCwgMHg5OCwgMHgxMCwgMHhBMywgMHgwOSwgMHgxNCwgMHhERiwgMHhGNCB9CisjZW5kaWYKK307CisKK3N0YXRpYyBjb25zdCB1bnNpZ25lZCBjaGFyIGFlc190ZXN0X2NmYjEyOF9pdlsxNl0gPQoreworICAgIDB4MDAsIDB4MDEsIDB4MDIsIDB4MDMsIDB4MDQsIDB4MDUsIDB4MDYsIDB4MDcsCisgICAgMHgwOCwgMHgwOSwgMHgwQSwgMHgwQiwgMHgwQywgMHgwRCwgMHgwRSwgMHgwRgorfTsKKworc3RhdGljIGNvbnN0IHVuc2lnbmVkIGNoYXIgYWVzX3Rlc3RfY2ZiMTI4X3B0WzY0XSA9Cit7CisgICAgMHg2QiwgMHhDMSwgMHhCRSwgMHhFMiwgMHgyRSwgMHg0MCwgMHg5RiwgMHg5NiwKKyAgICAweEU5LCAweDNELCAweDdFLCAweDExLCAweDczLCAweDkzLCAweDE3LCAweDJBLAorICAgIDB4QUUsIDB4MkQsIDB4OEEsIDB4NTcsIDB4MUUsIDB4MDMsIDB4QUMsIDB4OUMsCisgICAgMHg5RSwgMHhCNywgMHg2RiwgMHhBQywgMHg0NSwgMHhBRiwgMHg4RSwgMHg1MSwKKyAgICAweDMwLCAweEM4LCAweDFDLCAweDQ2LCAweEEzLCAweDVDLCAweEU0LCAweDExLAorICAgIDB4RTUsIDB4RkIsIDB4QzEsIDB4MTksIDB4MUEsIDB4MEEsIDB4NTIsIDB4RUYsCisgICAgMHhGNiwgMHg5RiwgMHgyNCwgMHg0NSwgMHhERiwgMHg0RiwgMHg5QiwgMHgxNywKKyAgICAweEFELCAweDJCLCAweDQxLCAweDdCLCAweEU2LCAweDZDLCAweDM3LCAweDEwCit9OworCitzdGF0aWMgY29uc3QgdW5zaWduZWQgY2hhciBhZXNfdGVzdF9jZmIxMjhfY3RbXVs2NF0gPQoreworICAgIHsgMHgzQiwgMHgzRiwgMHhEOSwgMHgyRSwgMHhCNywgMHgyRCwgMHhBRCwgMHgyMCwKKyAgICAgIDB4MzMsIDB4MzQsIDB4NDksIDB4RjgsIDB4RTgsIDB4M0MsIDB4RkIsIDB4NEEsCisgICAgICAweEM4LCAweEE2LCAweDQ1LCAweDM3LCAweEEwLCAweEIzLCAweEE5LCAweDNGLAorICAgICAgMHhDRCwgMHhFMywgMHhDRCwgMHhBRCwgMHg5RiwgMHgxQywgMHhFNSwgMHg4QiwKKyAgICAgIDB4MjYsIDB4NzUsIDB4MUYsIDB4NjcsIDB4QTMsIDB4Q0IsIDB4QjEsIDB4NDAsCisgICAgICAweEIxLCAweDgwLCAweDhDLCAweEYxLCAweDg3LCAweEE0LCAweEY0LCAweERGLAorICAgICAgMHhDMCwgMHg0QiwgMHgwNSwgMHgzNSwgMHg3QywgMHg1RCwgMHgxQywgMHgwRSwKKyAgICAgIDB4RUEsIDB4QzQsIDB4QzYsIDB4NkYsIDB4OUYsIDB4RjcsIDB4RjIsIDB4RTYgfSwKKyNpZiAhZGVmaW5lZChNQkVEVExTX0FFU19PTkxZXzEyOF9CSVRfS0VZX0xFTkdUSCkKKyAgICB7IDB4Q0QsIDB4QzgsIDB4MEQsIDB4NkYsIDB4REQsIDB4RjEsIDB4OEMsIDB4QUIsCisgICAgICAweDM0LCAweEMyLCAweDU5LCAweDA5LCAweEM5LCAweDlBLCAweDQxLCAweDc0LAorICAgICAgMHg2NywgMHhDRSwgMHg3RiwgMHg3RiwgMHg4MSwgMHgxNywgMHgzNiwgMHgyMSwKKyAgICAgIDB4OTYsIDB4MUEsIDB4MkIsIDB4NzAsIDB4MTcsIDB4MUQsIDB4M0QsIDB4N0EsCisgICAgICAweDJFLCAweDFFLCAweDhBLCAweDFELCAweEQ1LCAweDlCLCAweDg4LCAweEIxLAorICAgICAgMHhDOCwgMHhFNiwgMHgwRiwgMHhFRCwgMHgxRSwgMHhGQSwgMHhDNCwgMHhDOSwKKyAgICAgIDB4QzAsIDB4NUYsIDB4OUYsIDB4OUMsIDB4QTksIDB4ODMsIDB4NEYsIDB4QTAsCisgICAgICAweDQyLCAweEFFLCAweDhGLCAweEJBLCAweDU4LCAweDRCLCAweDA5LCAweEZGIH0sCisgICAgeyAweERDLCAweDdFLCAweDg0LCAweEJGLCAweERBLCAweDc5LCAweDE2LCAweDRCLAorICAgICAgMHg3RSwgMHhDRCwgMHg4NCwgMHg4NiwgMHg5OCwgMHg1RCwgMHgzOCwgMHg2MCwKKyAgICAgIDB4MzksIDB4RkYsIDB4RUQsIDB4MTQsIDB4M0IsIDB4MjgsIDB4QjEsIDB4QzgsCisgICAgICAweDMyLCAweDExLCAweDNDLCAweDYzLCAweDMxLCAweEU1LCAweDQwLCAweDdCLAorICAgICAgMHhERiwgMHgxMCwgMHgxMywgMHgyNCwgMHgxNSwgMHhFNSwgMHg0QiwgMHg5MiwKKyAgICAgIDB4QTEsIDB4M0UsIDB4RDAsIDB4QTgsIDB4MjYsIDB4N0EsIDB4RTIsIDB4RjksCisgICAgICAweDc1LCAweEEzLCAweDg1LCAweDc0LCAweDFBLCAweEI5LCAweENFLCAweEY4LAorICAgICAgMHgyMCwgMHgzMSwgMHg2MiwgMHgzRCwgMHg1NSwgMHhCMSwgMHhFNCwgMHg3MSB9CisjZW5kaWYKK307CisjZW5kaWYgLyogTUJFRFRMU19DSVBIRVJfTU9ERV9DRkIgKi8KKworI2lmIGRlZmluZWQoTUJFRFRMU19DSVBIRVJfTU9ERV9PRkIpCisvKgorICogQUVTLU9GQiB0ZXN0IHZlY3RvcnMgZnJvbToKKyAqCisgKiBodHRwczovL2NzcmMubmlzdC5nb3YvcHVibGljYXRpb25zL2RldGFpbC9zcC84MDAtMzhhL2ZpbmFsCisgKi8KK3N0YXRpYyBjb25zdCB1bnNpZ25lZCBjaGFyIGFlc190ZXN0X29mYl9rZXlbXVszMl0gPQoreworICAgIHsgMHgyQiwgMHg3RSwgMHgxNSwgMHgxNiwgMHgyOCwgMHhBRSwgMHhEMiwgMHhBNiwKKyAgICAgIDB4QUIsIDB4RjcsIDB4MTUsIDB4ODgsIDB4MDksIDB4Q0YsIDB4NEYsIDB4M0MgfSwKKyNpZiAhZGVmaW5lZChNQkVEVExTX0FFU19PTkxZXzEyOF9CSVRfS0VZX0xFTkdUSCkKKyAgICB7IDB4OEUsIDB4NzMsIDB4QjAsIDB4RjcsIDB4REEsIDB4MEUsIDB4NjQsIDB4NTIsCisgICAgICAweEM4LCAweDEwLCAweEYzLCAweDJCLCAweDgwLCAweDkwLCAweDc5LCAweEU1LAorICAgICAgMHg2MiwgMHhGOCwgMHhFQSwgMHhEMiwgMHg1MiwgMHgyQywgMHg2QiwgMHg3QiB9LAorICAgIHsgMHg2MCwgMHgzRCwgMHhFQiwgMHgxMCwgMHgxNSwgMHhDQSwgMHg3MSwgMHhCRSwKKyAgICAgIDB4MkIsIDB4NzMsIDB4QUUsIDB4RjAsIDB4ODUsIDB4N0QsIDB4NzcsIDB4ODEsCisgICAgICAweDFGLCAweDM1LCAweDJDLCAweDA3LCAweDNCLCAweDYxLCAweDA4LCAweEQ3LAorICAgICAgMHgyRCwgMHg5OCwgMHgxMCwgMHhBMywgMHgwOSwgMHgxNCwgMHhERiwgMHhGNCB9CisjZW5kaWYKK307CisKK3N0YXRpYyBjb25zdCB1bnNpZ25lZCBjaGFyIGFlc190ZXN0X29mYl9pdlsxNl0gPQoreworICAgIDB4MDAsIDB4MDEsIDB4MDIsIDB4MDMsIDB4MDQsIDB4MDUsIDB4MDYsIDB4MDcsCisgICAgMHgwOCwgMHgwOSwgMHgwQSwgMHgwQiwgMHgwQywgMHgwRCwgMHgwRSwgMHgwRgorfTsKKworc3RhdGljIGNvbnN0IHVuc2lnbmVkIGNoYXIgYWVzX3Rlc3Rfb2ZiX3B0WzY0XSA9Cit7CisgICAgMHg2QiwgMHhDMSwgMHhCRSwgMHhFMiwgMHgyRSwgMHg0MCwgMHg5RiwgMHg5NiwKKyAgICAweEU5LCAweDNELCAweDdFLCAweDExLCAweDczLCAweDkzLCAweDE3LCAweDJBLAorICAgIDB4QUUsIDB4MkQsIDB4OEEsIDB4NTcsIDB4MUUsIDB4MDMsIDB4QUMsIDB4OUMsCisgICAgMHg5RSwgMHhCNywgMHg2RiwgMHhBQywgMHg0NSwgMHhBRiwgMHg4RSwgMHg1MSwKKyAgICAweDMwLCAweEM4LCAweDFDLCAweDQ2LCAweEEzLCAweDVDLCAweEU0LCAweDExLAorICAgIDB4RTUsIDB4RkIsIDB4QzEsIDB4MTksIDB4MUEsIDB4MEEsIDB4NTIsIDB4RUYsCisgICAgMHhGNiwgMHg5RiwgMHgyNCwgMHg0NSwgMHhERiwgMHg0RiwgMHg5QiwgMHgxNywKKyAgICAweEFELCAweDJCLCAweDQxLCAweDdCLCAweEU2LCAweDZDLCAweDM3LCAweDEwCit9OworCitzdGF0aWMgY29uc3QgdW5zaWduZWQgY2hhciBhZXNfdGVzdF9vZmJfY3RbXVs2NF0gPQoreworICAgIHsgMHgzQiwgMHgzRiwgMHhEOSwgMHgyRSwgMHhCNywgMHgyRCwgMHhBRCwgMHgyMCwKKyAgICAgIDB4MzMsIDB4MzQsIDB4NDksIDB4RjgsIDB4RTgsIDB4M0MsIDB4RkIsIDB4NEEsCisgICAgICAweDc3LCAweDg5LCAweDUwLCAweDhkLCAweDE2LCAweDkxLCAweDhmLCAweDAzLAorICAgICAgMHhmNSwgMHgzYywgMHg1MiwgMHhkYSwgMHhjNSwgMHg0ZSwgMHhkOCwgMHgyNSwKKyAgICAgIDB4OTcsIDB4NDAsIDB4MDUsIDB4MWUsIDB4OWMsIDB4NWYsIDB4ZWMsIDB4ZjYsCisgICAgICAweDQzLCAweDQ0LCAweGY3LCAweGE4LCAweDIyLCAweDYwLCAweGVkLCAweGNjLAorICAgICAgMHgzMCwgMHg0YywgMHg2NSwgMHgyOCwgMHhmNiwgMHg1OSwgMHhjNywgMHg3OCwKKyAgICAgIDB4NjYsIDB4YTUsIDB4MTAsIDB4ZDksIDB4YzEsIDB4ZDYsIDB4YWUsIDB4NWUgfSwKKyNpZiAhZGVmaW5lZChNQkVEVExTX0FFU19PTkxZXzEyOF9CSVRfS0VZX0xFTkdUSCkKKyAgICB7IDB4Q0QsIDB4QzgsIDB4MEQsIDB4NkYsIDB4REQsIDB4RjEsIDB4OEMsIDB4QUIsCisgICAgICAweDM0LCAweEMyLCAweDU5LCAweDA5LCAweEM5LCAweDlBLCAweDQxLCAweDc0LAorICAgICAgMHhmYywgMHhjMiwgMHg4YiwgMHg4ZCwgMHg0YywgMHg2MywgMHg4MywgMHg3YywKKyAgICAgIDB4MDksIDB4ZTgsIDB4MTcsIDB4MDAsIDB4YzEsIDB4MTAsIDB4MDQsIDB4MDEsCisgICAgICAweDhkLCAweDlhLCAweDlhLCAweGVhLCAweGMwLCAweGY2LCAweDU5LCAweDZmLAorICAgICAgMHg1NSwgMHg5YywgMHg2ZCwgMHg0ZCwgMHhhZiwgMHg1OSwgMHhhNSwgMHhmMiwKKyAgICAgIDB4NmQsIDB4OWYsIDB4MjAsIDB4MDgsIDB4NTcsIDB4Y2EsIDB4NmMsIDB4M2UsCisgICAgICAweDljLCAweGFjLCAweDUyLCAweDRiLCAweGQ5LCAweGFjLCAweGM5LCAweDJhIH0sCisgICAgeyAweERDLCAweDdFLCAweDg0LCAweEJGLCAweERBLCAweDc5LCAweDE2LCAweDRCLAorICAgICAgMHg3RSwgMHhDRCwgMHg4NCwgMHg4NiwgMHg5OCwgMHg1RCwgMHgzOCwgMHg2MCwKKyAgICAgIDB4NGYsIDB4ZWIsIDB4ZGMsIDB4NjcsIDB4NDAsIDB4ZDIsIDB4MGIsIDB4M2EsCisgICAgICAweGM4LCAweDhmLCAweDZhLCAweGQ4LCAweDJhLCAweDRmLCAweGIwLCAweDhkLAorICAgICAgMHg3MSwgMHhhYiwgMHg0NywgMHhhMCwgMHg4NiwgMHhlOCwgMHg2ZSwgMHhlZCwKKyAgICAgIDB4ZjMsIDB4OWQsIDB4MWMsIDB4NWIsIDB4YmEsIDB4OTcsIDB4YzQsIDB4MDgsCisgICAgICAweDAxLCAweDI2LCAweDE0LCAweDFkLCAweDY3LCAweGYzLCAweDdiLCAweGU4LAorICAgICAgMHg1MywgMHg4ZiwgMHg1YSwgMHg4YiwgMHhlNywgMHg0MCwgMHhlNCwgMHg4NCB9CisjZW5kaWYKK307CisjZW5kaWYgLyogTUJFRFRMU19DSVBIRVJfTU9ERV9PRkIgKi8KKworI2lmIGRlZmluZWQoTUJFRFRMU19DSVBIRVJfTU9ERV9DVFIpCisvKgorICogQUVTLUNUUiB0ZXN0IHZlY3RvcnMgZnJvbToKKyAqCisgKiBodHRwOi8vd3d3LmZhcXMub3JnL3JmY3MvcmZjMzY4Ni5odG1sCisgKi8KKworc3RhdGljIGNvbnN0IHVuc2lnbmVkIGNoYXIgYWVzX3Rlc3RfY3RyX2tleVtdWzE2XSA9Cit7CisgICAgeyAweEFFLCAweDY4LCAweDUyLCAweEY4LCAweDEyLCAweDEwLCAweDY3LCAweENDLAorICAgICAgMHg0QiwgMHhGNywgMHhBNSwgMHg3NiwgMHg1NSwgMHg3NywgMHhGMywgMHg5RSB9LAorICAgIHsgMHg3RSwgMHgyNCwgMHgwNiwgMHg3OCwgMHgxNywgMHhGQSwgMHhFMCwgMHhENywKKyAgICAgIDB4NDMsIDB4RDYsIDB4Q0UsIDB4MUYsIDB4MzIsIDB4NTMsIDB4OTEsIDB4NjMgfSwKKyAgICB7IDB4NzYsIDB4OTEsIDB4QkUsIDB4MDMsIDB4NUUsIDB4NTAsIDB4MjAsIDB4QTgsCisgICAgICAweEFDLCAweDZFLCAweDYxLCAweDg1LCAweDI5LCAweEY5LCAweEEwLCAweERDIH0KK307CisKK3N0YXRpYyBjb25zdCB1bnNpZ25lZCBjaGFyIGFlc190ZXN0X2N0cl9ub25jZV9jb3VudGVyW11bMTZdID0KK3sKKyAgICB7IDB4MDAsIDB4MDAsIDB4MDAsIDB4MzAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCisgICAgICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAxIH0sCisgICAgeyAweDAwLCAweDZDLCAweEI2LCAweERCLCAweEMwLCAweDU0LCAweDNCLCAweDU5LAorICAgICAgMHhEQSwgMHg0OCwgMHhEOSwgMHgwQiwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMSB9LAorICAgIHsgMHgwMCwgMHhFMCwgMHgwMSwgMHg3QiwgMHgyNywgMHg3NywgMHg3RiwgMHgzRiwKKyAgICAgIDB4NEEsIDB4MTcsIDB4ODYsIDB4RjAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDEgfQorfTsKKworc3RhdGljIGNvbnN0IHVuc2lnbmVkIGNoYXIgYWVzX3Rlc3RfY3RyX3B0W11bNDhdID0KK3sKKyAgICB7IDB4NTMsIDB4NjksIDB4NkUsIDB4NjcsIDB4NkMsIDB4NjUsIDB4MjAsIDB4NjIsCisgICAgICAweDZDLCAweDZGLCAweDYzLCAweDZCLCAweDIwLCAweDZELCAweDczLCAweDY3IH0sCisgICAgeyAweDAwLCAweDAxLCAweDAyLCAweDAzLCAweDA0LCAweDA1LCAweDA2LCAweDA3LAorICAgICAgMHgwOCwgMHgwOSwgMHgwQSwgMHgwQiwgMHgwQywgMHgwRCwgMHgwRSwgMHgwRiwKKyAgICAgIDB4MTAsIDB4MTEsIDB4MTIsIDB4MTMsIDB4MTQsIDB4MTUsIDB4MTYsIDB4MTcsCisgICAgICAweDE4LCAweDE5LCAweDFBLCAweDFCLCAweDFDLCAweDFELCAweDFFLCAweDFGIH0sCisKKyAgICB7IDB4MDAsIDB4MDEsIDB4MDIsIDB4MDMsIDB4MDQsIDB4MDUsIDB4MDYsIDB4MDcsCisgICAgICAweDA4LCAweDA5LCAweDBBLCAweDBCLCAweDBDLCAweDBELCAweDBFLCAweDBGLAorICAgICAgMHgxMCwgMHgxMSwgMHgxMiwgMHgxMywgMHgxNCwgMHgxNSwgMHgxNiwgMHgxNywKKyAgICAgIDB4MTgsIDB4MTksIDB4MUEsIDB4MUIsIDB4MUMsIDB4MUQsIDB4MUUsIDB4MUYsCisgICAgICAweDIwLCAweDIxLCAweDIyLCAweDIzIH0KK307CisKK3N0YXRpYyBjb25zdCB1bnNpZ25lZCBjaGFyIGFlc190ZXN0X2N0cl9jdFtdWzQ4XSA9Cit7CisgICAgeyAweEU0LCAweDA5LCAweDVELCAweDRGLCAweEI3LCAweEE3LCAweEIzLCAweDc5LAorICAgICAgMHgyRCwgMHg2MSwgMHg3NSwgMHhBMywgMHgyNiwgMHgxMywgMHgxMSwgMHhCOCB9LAorICAgIHsgMHg1MSwgMHgwNCwgMHhBMSwgMHgwNiwgMHgxNiwgMHg4QSwgMHg3MiwgMHhEOSwKKyAgICAgIDB4NzksIDB4MEQsIDB4NDEsIDB4RUUsIDB4OEUsIDB4REEsIDB4RDMsIDB4ODgsCisgICAgICAweEVCLCAweDJFLCAweDFFLCAweEZDLCAweDQ2LCAweERBLCAweDU3LCAweEM4LAorICAgICAgMHhGQywgMHhFNiwgMHgzMCwgMHhERiwgMHg5MSwgMHg0MSwgMHhCRSwgMHgyOCB9LAorICAgIHsgMHhDMSwgMHhDRiwgMHg0OCwgMHhBOCwgMHg5RiwgMHgyRiwgMHhGRCwgMHhEOSwKKyAgICAgIDB4Q0YsIDB4NDYsIDB4NTIsIDB4RTksIDB4RUYsIDB4REIsIDB4NzIsIDB4RDcsCisgICAgICAweDQ1LCAweDQwLCAweEE0LCAweDJCLCAweERFLCAweDZELCAweDc4LCAweDM2LAorICAgICAgMHhENSwgMHg5QSwgMHg1QywgMHhFQSwgMHhBRSwgMHhGMywgMHgxMCwgMHg1MywKKyAgICAgIDB4MjUsIDB4QjIsIDB4MDcsIDB4MkYgfQorfTsKKworc3RhdGljIGNvbnN0IGludCBhZXNfdGVzdF9jdHJfbGVuWzNdID0KK3sgMTYsIDMyLCAzNiB9OworI2VuZGlmIC8qIE1CRURUTFNfQ0lQSEVSX01PREVfQ1RSICovCisKKyNpZiBkZWZpbmVkKE1CRURUTFNfQ0lQSEVSX01PREVfWFRTKQorLyoKKyAqIEFFUy1YVFMgdGVzdCB2ZWN0b3JzIGZyb206CisgKgorICogSUVFRSBQMTYxOS9EMTYgQW5uZXggQgorICogaHR0cHM6Ly93ZWIuYXJjaGl2ZS5vcmcvd2ViLzIwMTUwNjI5MDI0NDIxL2h0dHA6Ly9ncm91cGVyLmllZWUub3JnL2dyb3Vwcy8xNjE5L2VtYWlsL3BkZjAwMDg2LnBkZgorICogKEFyY2hpdmVkIGZyb20gb3JpZ2luYWwgYXQgaHR0cDovL2dyb3VwZXIuaWVlZS5vcmcvZ3JvdXBzLzE2MTkvZW1haWwvcGRmMDAwODYucGRmKQorICovCitzdGF0aWMgY29uc3QgdW5zaWduZWQgY2hhciBhZXNfdGVzdF94dHNfa2V5W11bMzJdID0KK3sKKyAgICB7IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCisgICAgICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAorICAgICAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKKyAgICAgIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAgfSwKKyAgICB7IDB4MTEsIDB4MTEsIDB4MTEsIDB4MTEsIDB4MTEsIDB4MTEsIDB4MTEsIDB4MTEsCisgICAgICAweDExLCAweDExLCAweDExLCAweDExLCAweDExLCAweDExLCAweDExLCAweDExLAorICAgICAgMHgyMiwgMHgyMiwgMHgyMiwgMHgyMiwgMHgyMiwgMHgyMiwgMHgyMiwgMHgyMiwKKyAgICAgIDB4MjIsIDB4MjIsIDB4MjIsIDB4MjIsIDB4MjIsIDB4MjIsIDB4MjIsIDB4MjIgfSwKKyAgICB7IDB4ZmYsIDB4ZmUsIDB4ZmQsIDB4ZmMsIDB4ZmIsIDB4ZmEsIDB4ZjksIDB4ZjgsCisgICAgICAweGY3LCAweGY2LCAweGY1LCAweGY0LCAweGYzLCAweGYyLCAweGYxLCAweGYwLAorICAgICAgMHgyMiwgMHgyMiwgMHgyMiwgMHgyMiwgMHgyMiwgMHgyMiwgMHgyMiwgMHgyMiwKKyAgICAgIDB4MjIsIDB4MjIsIDB4MjIsIDB4MjIsIDB4MjIsIDB4MjIsIDB4MjIsIDB4MjIgfSwKK307CisKK3N0YXRpYyBjb25zdCB1bnNpZ25lZCBjaGFyIGFlc190ZXN0X3h0c19wdDMyW11bMzJdID0KK3sKKyAgICB7IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCisgICAgICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAorICAgICAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKKyAgICAgIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAgfSwKKyAgICB7IDB4NDQsIDB4NDQsIDB4NDQsIDB4NDQsIDB4NDQsIDB4NDQsIDB4NDQsIDB4NDQsCisgICAgICAweDQ0LCAweDQ0LCAweDQ0LCAweDQ0LCAweDQ0LCAweDQ0LCAweDQ0LCAweDQ0LAorICAgICAgMHg0NCwgMHg0NCwgMHg0NCwgMHg0NCwgMHg0NCwgMHg0NCwgMHg0NCwgMHg0NCwKKyAgICAgIDB4NDQsIDB4NDQsIDB4NDQsIDB4NDQsIDB4NDQsIDB4NDQsIDB4NDQsIDB4NDQgfSwKKyAgICB7IDB4NDQsIDB4NDQsIDB4NDQsIDB4NDQsIDB4NDQsIDB4NDQsIDB4NDQsIDB4NDQsCisgICAgICAweDQ0LCAweDQ0LCAweDQ0LCAweDQ0LCAweDQ0LCAweDQ0LCAweDQ0LCAweDQ0LAorICAgICAgMHg0NCwgMHg0NCwgMHg0NCwgMHg0NCwgMHg0NCwgMHg0NCwgMHg0NCwgMHg0NCwKKyAgICAgIDB4NDQsIDB4NDQsIDB4NDQsIDB4NDQsIDB4NDQsIDB4NDQsIDB4NDQsIDB4NDQgfSwKK307CisKK3N0YXRpYyBjb25zdCB1bnNpZ25lZCBjaGFyIGFlc190ZXN0X3h0c19jdDMyW11bMzJdID0KK3sKKyAgICB7IDB4OTEsIDB4N2MsIDB4ZjYsIDB4OWUsIDB4YmQsIDB4NjgsIDB4YjIsIDB4ZWMsCisgICAgICAweDliLCAweDlmLCAweGU5LCAweGEzLCAweGVhLCAweGRkLCAweGE2LCAweDkyLAorICAgICAgMHhjZCwgMHg0MywgMHhkMiwgMHhmNSwgMHg5NSwgMHg5OCwgMHhlZCwgMHg4NSwKKyAgICAgIDB4OGMsIDB4MDIsIDB4YzIsIDB4NjUsIDB4MmYsIDB4YmYsIDB4OTIsIDB4MmUgfSwKKyAgICB7IDB4YzQsIDB4NTQsIDB4MTgsIDB4NWUsIDB4NmEsIDB4MTYsIDB4OTMsIDB4NmUsCisgICAgICAweDM5LCAweDMzLCAweDQwLCAweDM4LCAweGFjLCAweGVmLCAweDgzLCAweDhiLAorICAgICAgMHhmYiwgMHgxOCwgMHg2ZiwgMHhmZiwgMHg3NCwgMHg4MCwgMHhhZCwgMHhjNCwKKyAgICAgIDB4MjgsIDB4OTMsIDB4ODIsIDB4ZWMsIDB4ZDYsIDB4ZDMsIDB4OTQsIDB4ZjAgfSwKKyAgICB7IDB4YWYsIDB4ODUsIDB4MzMsIDB4NmIsIDB4NTksIDB4N2EsIDB4ZmMsIDB4MWEsCisgICAgICAweDkwLCAweDBiLCAweDJlLCAweGIyLCAweDFlLCAweGM5LCAweDQ5LCAweGQyLAorICAgICAgMHg5MiwgMHhkZiwgMHg0YywgMHgwNCwgMHg3ZSwgMHgwYiwgMHgyMSwgMHg1MywKKyAgICAgIDB4MjEsIDB4ODYsIDB4YTUsIDB4OTcsIDB4MWEsIDB4MjIsIDB4N2EsIDB4ODkgfSwKK307CisKK3N0YXRpYyBjb25zdCB1bnNpZ25lZCBjaGFyIGFlc190ZXN0X3h0c19kYXRhX3VuaXRbXVsxNl0gPQoreworICAgIHsgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKKyAgICAgIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAgfSwKKyAgICB7IDB4MzMsIDB4MzMsIDB4MzMsIDB4MzMsIDB4MzMsIDB4MDAsIDB4MDAsIDB4MDAsCisgICAgICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwIH0sCisgICAgeyAweDMzLCAweDMzLCAweDMzLCAweDMzLCAweDMzLCAweDAwLCAweDAwLCAweDAwLAorICAgICAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCB9LAorfTsKKworI2VuZGlmIC8qIE1CRURUTFNfQ0lQSEVSX01PREVfWFRTICovCisKKy8qCisgKiBDaGVja3VwIHJvdXRpbmUKKyAqLworaW50IG1iZWR0bHNfYWVzX3NlbGZfdGVzdChpbnQgdmVyYm9zZSkKK3sKKyAgICBpbnQgcmV0ID0gMCwgaSwgaiwgdSwgbW9kZTsKKyAgICB1bnNpZ25lZCBpbnQga2V5Yml0czsKKyAgICB1bnNpZ25lZCBjaGFyIGtleVszMl07CisgICAgdW5zaWduZWQgY2hhciBidWZbNjRdOworICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgKmFlc190ZXN0czsKKyNpZiBkZWZpbmVkKE1CRURUTFNfQ0lQSEVSX01PREVfQ0JDKSB8fCBkZWZpbmVkKE1CRURUTFNfQ0lQSEVSX01PREVfQ0ZCKSB8fCBcCisgICAgZGVmaW5lZChNQkVEVExTX0NJUEhFUl9NT0RFX09GQikKKyAgICB1bnNpZ25lZCBjaGFyIGl2WzE2XTsKKyNlbmRpZgorI2lmIGRlZmluZWQoTUJFRFRMU19DSVBIRVJfTU9ERV9DQkMpCisgICAgdW5zaWduZWQgY2hhciBwcnZbMTZdOworI2VuZGlmCisjaWYgZGVmaW5lZChNQkVEVExTX0NJUEhFUl9NT0RFX0NUUikgfHwgZGVmaW5lZChNQkVEVExTX0NJUEhFUl9NT0RFX0NGQikgfHwgXAorICAgIGRlZmluZWQoTUJFRFRMU19DSVBIRVJfTU9ERV9PRkIpCisgICAgc2l6ZV90IG9mZnNldDsKKyNlbmRpZgorI2lmIGRlZmluZWQoTUJFRFRMU19DSVBIRVJfTU9ERV9DVFIpIHx8IGRlZmluZWQoTUJFRFRMU19DSVBIRVJfTU9ERV9YVFMpCisgICAgaW50IGxlbjsKKyNlbmRpZgorI2lmIGRlZmluZWQoTUJFRFRMU19DSVBIRVJfTU9ERV9DVFIpCisgICAgdW5zaWduZWQgY2hhciBub25jZV9jb3VudGVyWzE2XTsKKyAgICB1bnNpZ25lZCBjaGFyIHN0cmVhbV9ibG9ja1sxNl07CisjZW5kaWYKKyAgICBtYmVkdGxzX2Flc19jb250ZXh0IGN0eDsKKworICAgIG1lbXNldChrZXksIDAsIDMyKTsKKyAgICBtYmVkdGxzX2Flc19pbml0KCZjdHgpOworCisgICAgaWYgKHZlcmJvc2UgIT0gMCkgeworI2lmIGRlZmluZWQoTUJFRFRMU19BRVNOSV9IQVZFX0NPREUpCisjaWYgTUJFRFRMU19BRVNOSV9IQVZFX0NPREUgPT0gMQorICAgICAgICBtYmVkdGxzX3ByaW50ZigiICBBRVMgbm90ZTogQUVTTkkgY29kZSBwcmVzZW50IChhc3NlbWJseSBpbXBsZW1lbnRhdGlvbikuXG4iKTsKKyNlbGlmIE1CRURUTFNfQUVTTklfSEFWRV9DT0RFID09IDIKKyAgICAgICAgbWJlZHRsc19wcmludGYoIiAgQUVTIG5vdGU6IEFFU05JIGNvZGUgcHJlc2VudCAoaW50cmluc2ljcyBpbXBsZW1lbnRhdGlvbikuXG4iKTsKKyNlbHNlCisjZXJyb3IgIlVucmVjb2duaXNlZCB2YWx1ZSBmb3IgTUJFRFRMU19BRVNOSV9IQVZFX0NPREUiCisjZW5kaWYKKyAgICAgICAgaWYgKG1iZWR0bHNfYWVzbmlfaGFzX3N1cHBvcnQoTUJFRFRMU19BRVNOSV9BRVMpKSB7CisgICAgICAgICAgICBtYmVkdGxzX3ByaW50ZigiICBBRVMgbm90ZTogdXNpbmcgQUVTTkkuXG4iKTsKKyAgICAgICAgfSBlbHNlCisjZW5kaWYKKyNpZiBkZWZpbmVkKE1CRURUTFNfQUVTQ0VfSEFWRV9DT0RFKQorICAgICAgICBpZiAoTUJFRFRMU19BRVNDRV9IQVNfU1VQUE9SVCgpKSB7CisgICAgICAgICAgICBtYmVkdGxzX3ByaW50ZigiICBBRVMgbm90ZTogdXNpbmcgQUVTQ0UuXG4iKTsKKyAgICAgICAgfSBlbHNlCisjZW5kaWYKKyAgICAgICAgeworI2lmICFkZWZpbmVkKE1CRURUTFNfQUVTX1VTRV9IQVJEV0FSRV9PTkxZKQorICAgICAgICAgICAgbWJlZHRsc19wcmludGYoIiAgQUVTIG5vdGU6IGJ1aWx0LWluIGltcGxlbWVudGF0aW9uLlxuIik7CisjZW5kaWYKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qCisgICAgICogRUNCIG1vZGUKKyAgICAgKi8KKyAgICB7CisgICAgICAgIHN0YXRpYyBjb25zdCBpbnQgbnVtX3Rlc3RzID0KKyAgICAgICAgICAgIHNpemVvZihhZXNfdGVzdF9lY2JfZW5jKSAvIHNpemVvZigqYWVzX3Rlc3RfZWNiX2VuYyk7CisKKyAgICAgICAgZm9yIChpID0gMDsgaSA8IG51bV90ZXN0cyA8PCAxOyBpKyspIHsKKyAgICAgICAgICAgIHUgPSBpID4+IDE7CisgICAgICAgICAgICBrZXliaXRzID0gMTI4ICsgdSAqIDY0OworICAgICAgICAgICAgbW9kZSA9IGkgJiAxOworCisgICAgICAgICAgICBpZiAodmVyYm9zZSAhPSAwKSB7CisgICAgICAgICAgICAgICAgbWJlZHRsc19wcmludGYoIiAgQUVTLUVDQi0lM3UgKCVzKTogIiwga2V5Yml0cywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9kZSA9PSBNQkVEVExTX0FFU19ERUNSWVBUKSA/ICJkZWMiIDogImVuYyIpOworICAgICAgICAgICAgfQorI2lmIGRlZmluZWQoTUJFRFRMU19CTE9DS19DSVBIRVJfTk9fREVDUllQVCkKKyAgICAgICAgICAgIGlmIChtb2RlID09IE1CRURUTFNfQUVTX0RFQ1JZUFQpIHsKKyAgICAgICAgICAgICAgICBpZiAodmVyYm9zZSAhPSAwKSB7CisgICAgICAgICAgICAgICAgICAgIG1iZWR0bHNfcHJpbnRmKCJza2lwcGVkXG4iKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICB9CisjZW5kaWYKKworICAgICAgICAgICAgbWVtc2V0KGJ1ZiwgMCwgMTYpOworCisjaWYgIWRlZmluZWQoTUJFRFRMU19CTE9DS19DSVBIRVJfTk9fREVDUllQVCkKKyAgICAgICAgICAgIGlmIChtb2RlID09IE1CRURUTFNfQUVTX0RFQ1JZUFQpIHsKKyAgICAgICAgICAgICAgICByZXQgPSBtYmVkdGxzX2Flc19zZXRrZXlfZGVjKCZjdHgsIGtleSwga2V5Yml0cyk7CisgICAgICAgICAgICAgICAgYWVzX3Rlc3RzID0gYWVzX3Rlc3RfZWNiX2RlY1t1XTsKKyAgICAgICAgICAgIH0gZWxzZQorI2VuZGlmCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgcmV0ID0gbWJlZHRsc19hZXNfc2V0a2V5X2VuYygmY3R4LCBrZXksIGtleWJpdHMpOworICAgICAgICAgICAgICAgIGFlc190ZXN0cyA9IGFlc190ZXN0X2VjYl9lbmNbdV07CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIC8qCisgICAgICAgICAgICAgKiBBRVMtMTkyIGlzIGFuIG9wdGlvbmFsIGZlYXR1cmUgdGhhdCBtYXkgYmUgdW5hdmFpbGFibGUgd2hlbgorICAgICAgICAgICAgICogdGhlcmUgaXMgYW4gYWx0ZXJuYXRpdmUgdW5kZXJseWluZyBpbXBsZW1lbnRhdGlvbiBpLmUgd2hlbgorICAgICAgICAgICAgICogTUJFRFRMU19BRVNfU0VUS0VZX0VOQ19BTFQgb3IgTUJFRFRMU19BRVNfU0VUS0VZX0RFQ19BTFQKKyAgICAgICAgICAgICAqIGFyZSBkZWZpbmVkLgorICAgICAgICAgICAgICovCisgICAgICAgICAgICBpZiAocmV0ID09IE1CRURUTFNfRVJSX1BMQVRGT1JNX0ZFQVRVUkVfVU5TVVBQT1JURUQgJiYga2V5Yml0cyA9PSAxOTIpIHsKKyAgICAgICAgICAgICAgICBtYmVkdGxzX3ByaW50Zigic2tpcHBlZFxuIik7CisgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICB9IGVsc2UgaWYgKHJldCAhPSAwKSB7CisgICAgICAgICAgICAgICAgZ290byBleGl0OworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBmb3IgKGogPSAwOyBqIDwgMTAwMDA7IGorKykgeworICAgICAgICAgICAgICAgIHJldCA9IG1iZWR0bHNfYWVzX2NyeXB0X2VjYigmY3R4LCBtb2RlLCBidWYsIGJ1Zik7CisgICAgICAgICAgICAgICAgaWYgKHJldCAhPSAwKSB7CisgICAgICAgICAgICAgICAgICAgIGdvdG8gZXhpdDsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGlmIChtZW1jbXAoYnVmLCBhZXNfdGVzdHMsIDE2KSAhPSAwKSB7CisgICAgICAgICAgICAgICAgcmV0ID0gMTsKKyAgICAgICAgICAgICAgICBnb3RvIGV4aXQ7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGlmICh2ZXJib3NlICE9IDApIHsKKyAgICAgICAgICAgICAgICBtYmVkdGxzX3ByaW50ZigicGFzc2VkXG4iKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIGlmICh2ZXJib3NlICE9IDApIHsKKyAgICAgICAgICAgIG1iZWR0bHNfcHJpbnRmKCJcbiIpOworICAgICAgICB9CisgICAgfQorCisjaWYgZGVmaW5lZChNQkVEVExTX0NJUEhFUl9NT0RFX0NCQykKKyAgICAvKgorICAgICAqIENCQyBtb2RlCisgICAgICovCisgICAgeworICAgICAgICBzdGF0aWMgY29uc3QgaW50IG51bV90ZXN0cyA9CisgICAgICAgICAgICBzaXplb2YoYWVzX3Rlc3RfY2JjX2RlYykgLyBzaXplb2YoKmFlc190ZXN0X2NiY19kZWMpOworCisgICAgICAgIGZvciAoaSA9IDA7IGkgPCBudW1fdGVzdHMgPDwgMTsgaSsrKSB7CisgICAgICAgICAgICB1ID0gaSA+PiAxOworICAgICAgICAgICAga2V5Yml0cyA9IDEyOCArIHUgKiA2NDsKKyAgICAgICAgICAgIG1vZGUgPSBpICYgMTsKKworICAgICAgICAgICAgaWYgKHZlcmJvc2UgIT0gMCkgeworICAgICAgICAgICAgICAgIG1iZWR0bHNfcHJpbnRmKCIgIEFFUy1DQkMtJTN1ICglcyk6ICIsIGtleWJpdHMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vZGUgPT0gTUJFRFRMU19BRVNfREVDUllQVCkgPyAiZGVjIiA6ICJlbmMiKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgbWVtc2V0KGl2LCAwLCAxNik7CisgICAgICAgICAgICBtZW1zZXQocHJ2LCAwLCAxNik7CisgICAgICAgICAgICBtZW1zZXQoYnVmLCAwLCAxNik7CisKKyAgICAgICAgICAgIGlmIChtb2RlID09IE1CRURUTFNfQUVTX0RFQ1JZUFQpIHsKKyAgICAgICAgICAgICAgICByZXQgPSBtYmVkdGxzX2Flc19zZXRrZXlfZGVjKCZjdHgsIGtleSwga2V5Yml0cyk7CisgICAgICAgICAgICAgICAgYWVzX3Rlc3RzID0gYWVzX3Rlc3RfY2JjX2RlY1t1XTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgcmV0ID0gbWJlZHRsc19hZXNfc2V0a2V5X2VuYygmY3R4LCBrZXksIGtleWJpdHMpOworICAgICAgICAgICAgICAgIGFlc190ZXN0cyA9IGFlc190ZXN0X2NiY19lbmNbdV07CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIC8qCisgICAgICAgICAgICAgKiBBRVMtMTkyIGlzIGFuIG9wdGlvbmFsIGZlYXR1cmUgdGhhdCBtYXkgYmUgdW5hdmFpbGFibGUgd2hlbgorICAgICAgICAgICAgICogdGhlcmUgaXMgYW4gYWx0ZXJuYXRpdmUgdW5kZXJseWluZyBpbXBsZW1lbnRhdGlvbiBpLmUgd2hlbgorICAgICAgICAgICAgICogTUJFRFRMU19BRVNfU0VUS0VZX0VOQ19BTFQgb3IgTUJFRFRMU19BRVNfU0VUS0VZX0RFQ19BTFQKKyAgICAgICAgICAgICAqIGFyZSBkZWZpbmVkLgorICAgICAgICAgICAgICovCisgICAgICAgICAgICBpZiAocmV0ID09IE1CRURUTFNfRVJSX1BMQVRGT1JNX0ZFQVRVUkVfVU5TVVBQT1JURUQgJiYga2V5Yml0cyA9PSAxOTIpIHsKKyAgICAgICAgICAgICAgICBtYmVkdGxzX3ByaW50Zigic2tpcHBlZFxuIik7CisgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICB9IGVsc2UgaWYgKHJldCAhPSAwKSB7CisgICAgICAgICAgICAgICAgZ290byBleGl0OworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBmb3IgKGogPSAwOyBqIDwgMTAwMDA7IGorKykgeworICAgICAgICAgICAgICAgIGlmIChtb2RlID09IE1CRURUTFNfQUVTX0VOQ1JZUFQpIHsKKyAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgY2hhciB0bXBbMTZdOworCisgICAgICAgICAgICAgICAgICAgIG1lbWNweSh0bXAsIHBydiwgMTYpOworICAgICAgICAgICAgICAgICAgICBtZW1jcHkocHJ2LCBidWYsIDE2KTsKKyAgICAgICAgICAgICAgICAgICAgbWVtY3B5KGJ1ZiwgdG1wLCAxNik7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgcmV0ID0gbWJlZHRsc19hZXNfY3J5cHRfY2JjKCZjdHgsIG1vZGUsIDE2LCBpdiwgYnVmLCBidWYpOworICAgICAgICAgICAgICAgIGlmIChyZXQgIT0gMCkgeworICAgICAgICAgICAgICAgICAgICBnb3RvIGV4aXQ7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGlmIChtZW1jbXAoYnVmLCBhZXNfdGVzdHMsIDE2KSAhPSAwKSB7CisgICAgICAgICAgICAgICAgcmV0ID0gMTsKKyAgICAgICAgICAgICAgICBnb3RvIGV4aXQ7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGlmICh2ZXJib3NlICE9IDApIHsKKyAgICAgICAgICAgICAgICBtYmVkdGxzX3ByaW50ZigicGFzc2VkXG4iKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIGlmICh2ZXJib3NlICE9IDApIHsKKyAgICAgICAgICAgIG1iZWR0bHNfcHJpbnRmKCJcbiIpOworICAgICAgICB9CisgICAgfQorI2VuZGlmIC8qIE1CRURUTFNfQ0lQSEVSX01PREVfQ0JDICovCisKKyNpZiBkZWZpbmVkKE1CRURUTFNfQ0lQSEVSX01PREVfQ0ZCKQorICAgIC8qCisgICAgICogQ0ZCMTI4IG1vZGUKKyAgICAgKi8KKyAgICB7CisgICAgICAgIHN0YXRpYyBjb25zdCBpbnQgbnVtX3Rlc3RzID0KKyAgICAgICAgICAgIHNpemVvZihhZXNfdGVzdF9jZmIxMjhfa2V5KSAvIHNpemVvZigqYWVzX3Rlc3RfY2ZiMTI4X2tleSk7CisKKyAgICAgICAgZm9yIChpID0gMDsgaSA8IG51bV90ZXN0cyA8PCAxOyBpKyspIHsKKyAgICAgICAgICAgIHUgPSBpID4+IDE7CisgICAgICAgICAgICBrZXliaXRzID0gMTI4ICsgdSAqIDY0OworICAgICAgICAgICAgbW9kZSA9IGkgJiAxOworCisgICAgICAgICAgICBpZiAodmVyYm9zZSAhPSAwKSB7CisgICAgICAgICAgICAgICAgbWJlZHRsc19wcmludGYoIiAgQUVTLUNGQjEyOC0lM3UgKCVzKTogIiwga2V5Yml0cywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9kZSA9PSBNQkVEVExTX0FFU19ERUNSWVBUKSA/ICJkZWMiIDogImVuYyIpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBtZW1jcHkoaXYsICBhZXNfdGVzdF9jZmIxMjhfaXYsIDE2KTsKKyAgICAgICAgICAgIG1lbWNweShrZXksIGFlc190ZXN0X2NmYjEyOF9rZXlbdV0sIGtleWJpdHMgLyA4KTsKKworICAgICAgICAgICAgb2Zmc2V0ID0gMDsKKyAgICAgICAgICAgIHJldCA9IG1iZWR0bHNfYWVzX3NldGtleV9lbmMoJmN0eCwga2V5LCBrZXliaXRzKTsKKyAgICAgICAgICAgIC8qCisgICAgICAgICAgICAgKiBBRVMtMTkyIGlzIGFuIG9wdGlvbmFsIGZlYXR1cmUgdGhhdCBtYXkgYmUgdW5hdmFpbGFibGUgd2hlbgorICAgICAgICAgICAgICogdGhlcmUgaXMgYW4gYWx0ZXJuYXRpdmUgdW5kZXJseWluZyBpbXBsZW1lbnRhdGlvbiBpLmUgd2hlbgorICAgICAgICAgICAgICogTUJFRFRMU19BRVNfU0VUS0VZX0VOQ19BTFQgb3IgTUJFRFRMU19BRVNfU0VUS0VZX0RFQ19BTFQKKyAgICAgICAgICAgICAqIGFyZSBkZWZpbmVkLgorICAgICAgICAgICAgICovCisgICAgICAgICAgICBpZiAocmV0ID09IE1CRURUTFNfRVJSX1BMQVRGT1JNX0ZFQVRVUkVfVU5TVVBQT1JURUQgJiYga2V5Yml0cyA9PSAxOTIpIHsKKyAgICAgICAgICAgICAgICBtYmVkdGxzX3ByaW50Zigic2tpcHBlZFxuIik7CisgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICB9IGVsc2UgaWYgKHJldCAhPSAwKSB7CisgICAgICAgICAgICAgICAgZ290byBleGl0OworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpZiAobW9kZSA9PSBNQkVEVExTX0FFU19ERUNSWVBUKSB7CisgICAgICAgICAgICAgICAgbWVtY3B5KGJ1ZiwgYWVzX3Rlc3RfY2ZiMTI4X2N0W3VdLCA2NCk7CisgICAgICAgICAgICAgICAgYWVzX3Rlc3RzID0gYWVzX3Rlc3RfY2ZiMTI4X3B0OworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBtZW1jcHkoYnVmLCBhZXNfdGVzdF9jZmIxMjhfcHQsIDY0KTsKKyAgICAgICAgICAgICAgICBhZXNfdGVzdHMgPSBhZXNfdGVzdF9jZmIxMjhfY3RbdV07CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHJldCA9IG1iZWR0bHNfYWVzX2NyeXB0X2NmYjEyOCgmY3R4LCBtb2RlLCA2NCwgJm9mZnNldCwgaXYsIGJ1ZiwgYnVmKTsKKyAgICAgICAgICAgIGlmIChyZXQgIT0gMCkgeworICAgICAgICAgICAgICAgIGdvdG8gZXhpdDsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaWYgKG1lbWNtcChidWYsIGFlc190ZXN0cywgNjQpICE9IDApIHsKKyAgICAgICAgICAgICAgICByZXQgPSAxOworICAgICAgICAgICAgICAgIGdvdG8gZXhpdDsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaWYgKHZlcmJvc2UgIT0gMCkgeworICAgICAgICAgICAgICAgIG1iZWR0bHNfcHJpbnRmKCJwYXNzZWRcbiIpOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgaWYgKHZlcmJvc2UgIT0gMCkgeworICAgICAgICAgICAgbWJlZHRsc19wcmludGYoIlxuIik7CisgICAgICAgIH0KKyAgICB9CisjZW5kaWYgLyogTUJFRFRMU19DSVBIRVJfTU9ERV9DRkIgKi8KKworI2lmIGRlZmluZWQoTUJFRFRMU19DSVBIRVJfTU9ERV9PRkIpCisgICAgLyoKKyAgICAgKiBPRkIgbW9kZQorICAgICAqLworICAgIHsKKyAgICAgICAgc3RhdGljIGNvbnN0IGludCBudW1fdGVzdHMgPQorICAgICAgICAgICAgc2l6ZW9mKGFlc190ZXN0X29mYl9rZXkpIC8gc2l6ZW9mKCphZXNfdGVzdF9vZmJfa2V5KTsKKworICAgICAgICBmb3IgKGkgPSAwOyBpIDwgbnVtX3Rlc3RzIDw8IDE7IGkrKykgeworICAgICAgICAgICAgdSA9IGkgPj4gMTsKKyAgICAgICAgICAgIGtleWJpdHMgPSAxMjggKyB1ICogNjQ7CisgICAgICAgICAgICBtb2RlID0gaSAmIDE7CisKKyAgICAgICAgICAgIGlmICh2ZXJib3NlICE9IDApIHsKKyAgICAgICAgICAgICAgICBtYmVkdGxzX3ByaW50ZigiICBBRVMtT0ZCLSUzdSAoJXMpOiAiLCBrZXliaXRzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb2RlID09IE1CRURUTFNfQUVTX0RFQ1JZUFQpID8gImRlYyIgOiAiZW5jIik7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIG1lbWNweShpdiwgIGFlc190ZXN0X29mYl9pdiwgMTYpOworICAgICAgICAgICAgbWVtY3B5KGtleSwgYWVzX3Rlc3Rfb2ZiX2tleVt1XSwga2V5Yml0cyAvIDgpOworCisgICAgICAgICAgICBvZmZzZXQgPSAwOworICAgICAgICAgICAgcmV0ID0gbWJlZHRsc19hZXNfc2V0a2V5X2VuYygmY3R4LCBrZXksIGtleWJpdHMpOworICAgICAgICAgICAgLyoKKyAgICAgICAgICAgICAqIEFFUy0xOTIgaXMgYW4gb3B0aW9uYWwgZmVhdHVyZSB0aGF0IG1heSBiZSB1bmF2YWlsYWJsZSB3aGVuCisgICAgICAgICAgICAgKiB0aGVyZSBpcyBhbiBhbHRlcm5hdGl2ZSB1bmRlcmx5aW5nIGltcGxlbWVudGF0aW9uIGkuZSB3aGVuCisgICAgICAgICAgICAgKiBNQkVEVExTX0FFU19TRVRLRVlfRU5DX0FMVCBvciBNQkVEVExTX0FFU19TRVRLRVlfREVDX0FMVAorICAgICAgICAgICAgICogYXJlIGRlZmluZWQuCisgICAgICAgICAgICAgKi8KKyAgICAgICAgICAgIGlmIChyZXQgPT0gTUJFRFRMU19FUlJfUExBVEZPUk1fRkVBVFVSRV9VTlNVUFBPUlRFRCAmJiBrZXliaXRzID09IDE5MikgeworICAgICAgICAgICAgICAgIG1iZWR0bHNfcHJpbnRmKCJza2lwcGVkXG4iKTsKKyAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgIH0gZWxzZSBpZiAocmV0ICE9IDApIHsKKyAgICAgICAgICAgICAgICBnb3RvIGV4aXQ7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGlmIChtb2RlID09IE1CRURUTFNfQUVTX0RFQ1JZUFQpIHsKKyAgICAgICAgICAgICAgICBtZW1jcHkoYnVmLCBhZXNfdGVzdF9vZmJfY3RbdV0sIDY0KTsKKyAgICAgICAgICAgICAgICBhZXNfdGVzdHMgPSBhZXNfdGVzdF9vZmJfcHQ7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIG1lbWNweShidWYsIGFlc190ZXN0X29mYl9wdCwgNjQpOworICAgICAgICAgICAgICAgIGFlc190ZXN0cyA9IGFlc190ZXN0X29mYl9jdFt1XTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgcmV0ID0gbWJlZHRsc19hZXNfY3J5cHRfb2ZiKCZjdHgsIDY0LCAmb2Zmc2V0LCBpdiwgYnVmLCBidWYpOworICAgICAgICAgICAgaWYgKHJldCAhPSAwKSB7CisgICAgICAgICAgICAgICAgZ290byBleGl0OworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpZiAobWVtY21wKGJ1ZiwgYWVzX3Rlc3RzLCA2NCkgIT0gMCkgeworICAgICAgICAgICAgICAgIHJldCA9IDE7CisgICAgICAgICAgICAgICAgZ290byBleGl0OworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpZiAodmVyYm9zZSAhPSAwKSB7CisgICAgICAgICAgICAgICAgbWJlZHRsc19wcmludGYoInBhc3NlZFxuIik7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBpZiAodmVyYm9zZSAhPSAwKSB7CisgICAgICAgICAgICBtYmVkdGxzX3ByaW50ZigiXG4iKTsKKyAgICAgICAgfQorICAgIH0KKyNlbmRpZiAvKiBNQkVEVExTX0NJUEhFUl9NT0RFX09GQiAqLworCisjaWYgZGVmaW5lZChNQkVEVExTX0NJUEhFUl9NT0RFX0NUUikKKyAgICAvKgorICAgICAqIENUUiBtb2RlCisgICAgICovCisgICAgeworICAgICAgICBzdGF0aWMgY29uc3QgaW50IG51bV90ZXN0cyA9CisgICAgICAgICAgICBzaXplb2YoYWVzX3Rlc3RfY3RyX2tleSkgLyBzaXplb2YoKmFlc190ZXN0X2N0cl9rZXkpOworCisgICAgICAgIGZvciAoaSA9IDA7IGkgPCBudW1fdGVzdHMgPDwgMTsgaSsrKSB7CisgICAgICAgICAgICB1ID0gaSA+PiAxOworICAgICAgICAgICAgbW9kZSA9IGkgJiAxOworCisgICAgICAgICAgICBpZiAodmVyYm9zZSAhPSAwKSB7CisgICAgICAgICAgICAgICAgbWJlZHRsc19wcmludGYoIiAgQUVTLUNUUi0xMjggKCVzKTogIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9kZSA9PSBNQkVEVExTX0FFU19ERUNSWVBUKSA/ICJkZWMiIDogImVuYyIpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBtZW1jcHkobm9uY2VfY291bnRlciwgYWVzX3Rlc3RfY3RyX25vbmNlX2NvdW50ZXJbdV0sIDE2KTsKKyAgICAgICAgICAgIG1lbWNweShrZXksIGFlc190ZXN0X2N0cl9rZXlbdV0sIDE2KTsKKworICAgICAgICAgICAgb2Zmc2V0ID0gMDsKKyAgICAgICAgICAgIGlmICgocmV0ID0gbWJlZHRsc19hZXNfc2V0a2V5X2VuYygmY3R4LCBrZXksIDEyOCkpICE9IDApIHsKKyAgICAgICAgICAgICAgICBnb3RvIGV4aXQ7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGxlbiA9IGFlc190ZXN0X2N0cl9sZW5bdV07CisKKyAgICAgICAgICAgIGlmIChtb2RlID09IE1CRURUTFNfQUVTX0RFQ1JZUFQpIHsKKyAgICAgICAgICAgICAgICBtZW1jcHkoYnVmLCBhZXNfdGVzdF9jdHJfY3RbdV0sIGxlbik7CisgICAgICAgICAgICAgICAgYWVzX3Rlc3RzID0gYWVzX3Rlc3RfY3RyX3B0W3VdOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBtZW1jcHkoYnVmLCBhZXNfdGVzdF9jdHJfcHRbdV0sIGxlbik7CisgICAgICAgICAgICAgICAgYWVzX3Rlc3RzID0gYWVzX3Rlc3RfY3RyX2N0W3VdOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICByZXQgPSBtYmVkdGxzX2Flc19jcnlwdF9jdHIoJmN0eCwgbGVuLCAmb2Zmc2V0LCBub25jZV9jb3VudGVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cmVhbV9ibG9jaywgYnVmLCBidWYpOworICAgICAgICAgICAgaWYgKHJldCAhPSAwKSB7CisgICAgICAgICAgICAgICAgZ290byBleGl0OworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpZiAobWVtY21wKGJ1ZiwgYWVzX3Rlc3RzLCBsZW4pICE9IDApIHsKKyAgICAgICAgICAgICAgICByZXQgPSAxOworICAgICAgICAgICAgICAgIGdvdG8gZXhpdDsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaWYgKHZlcmJvc2UgIT0gMCkgeworICAgICAgICAgICAgICAgIG1iZWR0bHNfcHJpbnRmKCJwYXNzZWRcbiIpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgaWYgKHZlcmJvc2UgIT0gMCkgeworICAgICAgICBtYmVkdGxzX3ByaW50ZigiXG4iKTsKKyAgICB9CisjZW5kaWYgLyogTUJFRFRMU19DSVBIRVJfTU9ERV9DVFIgKi8KKworI2lmIGRlZmluZWQoTUJFRFRMU19DSVBIRVJfTU9ERV9YVFMpCisgICAgLyoKKyAgICAgKiBYVFMgbW9kZQorICAgICAqLworICAgIHsKKyAgICAgICAgc3RhdGljIGNvbnN0IGludCBudW1fdGVzdHMgPQorICAgICAgICAgICAgc2l6ZW9mKGFlc190ZXN0X3h0c19rZXkpIC8gc2l6ZW9mKCphZXNfdGVzdF94dHNfa2V5KTsKKyAgICAgICAgbWJlZHRsc19hZXNfeHRzX2NvbnRleHQgY3R4X3h0czsKKworICAgICAgICBtYmVkdGxzX2Flc194dHNfaW5pdCgmY3R4X3h0cyk7CisKKyAgICAgICAgZm9yIChpID0gMDsgaSA8IG51bV90ZXN0cyA8PCAxOyBpKyspIHsKKyAgICAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgKmRhdGFfdW5pdDsKKyAgICAgICAgICAgIHUgPSBpID4+IDE7CisgICAgICAgICAgICBtb2RlID0gaSAmIDE7CisKKyAgICAgICAgICAgIGlmICh2ZXJib3NlICE9IDApIHsKKyAgICAgICAgICAgICAgICBtYmVkdGxzX3ByaW50ZigiICBBRVMtWFRTLTEyOCAoJXMpOiAiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb2RlID09IE1CRURUTFNfQUVTX0RFQ1JZUFQpID8gImRlYyIgOiAiZW5jIik7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIG1lbXNldChrZXksIDAsIHNpemVvZihrZXkpKTsKKyAgICAgICAgICAgIG1lbWNweShrZXksIGFlc190ZXN0X3h0c19rZXlbdV0sIDMyKTsKKyAgICAgICAgICAgIGRhdGFfdW5pdCA9IGFlc190ZXN0X3h0c19kYXRhX3VuaXRbdV07CisKKyAgICAgICAgICAgIGxlbiA9IHNpemVvZigqYWVzX3Rlc3RfeHRzX2N0MzIpOworCisgICAgICAgICAgICBpZiAobW9kZSA9PSBNQkVEVExTX0FFU19ERUNSWVBUKSB7CisgICAgICAgICAgICAgICAgcmV0ID0gbWJlZHRsc19hZXNfeHRzX3NldGtleV9kZWMoJmN0eF94dHMsIGtleSwgMjU2KTsKKyAgICAgICAgICAgICAgICBpZiAocmV0ICE9IDApIHsKKyAgICAgICAgICAgICAgICAgICAgZ290byBleGl0OworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBtZW1jcHkoYnVmLCBhZXNfdGVzdF94dHNfY3QzMlt1XSwgbGVuKTsKKyAgICAgICAgICAgICAgICBhZXNfdGVzdHMgPSBhZXNfdGVzdF94dHNfcHQzMlt1XTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgcmV0ID0gbWJlZHRsc19hZXNfeHRzX3NldGtleV9lbmMoJmN0eF94dHMsIGtleSwgMjU2KTsKKyAgICAgICAgICAgICAgICBpZiAocmV0ICE9IDApIHsKKyAgICAgICAgICAgICAgICAgICAgZ290byBleGl0OworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBtZW1jcHkoYnVmLCBhZXNfdGVzdF94dHNfcHQzMlt1XSwgbGVuKTsKKyAgICAgICAgICAgICAgICBhZXNfdGVzdHMgPSBhZXNfdGVzdF94dHNfY3QzMlt1XTsKKyAgICAgICAgICAgIH0KKworCisgICAgICAgICAgICByZXQgPSBtYmVkdGxzX2Flc19jcnlwdF94dHMoJmN0eF94dHMsIG1vZGUsIGxlbiwgZGF0YV91bml0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ1ZiwgYnVmKTsKKyAgICAgICAgICAgIGlmIChyZXQgIT0gMCkgeworICAgICAgICAgICAgICAgIGdvdG8gZXhpdDsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaWYgKG1lbWNtcChidWYsIGFlc190ZXN0cywgbGVuKSAhPSAwKSB7CisgICAgICAgICAgICAgICAgcmV0ID0gMTsKKyAgICAgICAgICAgICAgICBnb3RvIGV4aXQ7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGlmICh2ZXJib3NlICE9IDApIHsKKyAgICAgICAgICAgICAgICBtYmVkdGxzX3ByaW50ZigicGFzc2VkXG4iKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIGlmICh2ZXJib3NlICE9IDApIHsKKyAgICAgICAgICAgIG1iZWR0bHNfcHJpbnRmKCJcbiIpOworICAgICAgICB9CisKKyAgICAgICAgbWJlZHRsc19hZXNfeHRzX2ZyZWUoJmN0eF94dHMpOworICAgIH0KKyNlbmRpZiAvKiBNQkVEVExTX0NJUEhFUl9NT0RFX1hUUyAqLworCisgICAgcmV0ID0gMDsKKworZXhpdDoKKyAgICBpZiAocmV0ICE9IDAgJiYgdmVyYm9zZSAhPSAwKSB7CisgICAgICAgIG1iZWR0bHNfcHJpbnRmKCJmYWlsZWRcbiIpOworICAgIH0KKworICAgIG1iZWR0bHNfYWVzX2ZyZWUoJmN0eCk7CisKKyAgICByZXR1cm4gcmV0OworfQorCisjZW5kaWYgLyogTUJFRFRMU19TRUxGX1RFU1QgKi8KKworI2VuZGlmIC8qIE1CRURUTFNfQUVTX0MgKi8KZGlmZiAtLWdpdCBhL2xpYnJhcnkvYWVzY2UuYyBiL3RmLXBzYS1jcnlwdG8vZHJpdmVycy9idWlsdGluL3NyYy9hZXNjZS5jCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBsaWJyYXJ5L2Flc2NlLmMKcmVuYW1lIHRvIHRmLXBzYS1jcnlwdG8vZHJpdmVycy9idWlsdGluL3NyYy9hZXNjZS5jCmRpZmYgLS1naXQgYS9saWJyYXJ5L2Flc2NlLmggYi90Zi1wc2EtY3J5cHRvL2RyaXZlcnMvYnVpbHRpbi9zcmMvYWVzY2UuaApzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gbGlicmFyeS9hZXNjZS5oCnJlbmFtZSB0byB0Zi1wc2EtY3J5cHRvL2RyaXZlcnMvYnVpbHRpbi9zcmMvYWVzY2UuaApkaWZmIC0tZ2l0IGEvbGlicmFyeS9hZXNuaS5jIGIvdGYtcHNhLWNyeXB0by9kcml2ZXJzL2J1aWx0aW4vc3JjL2Flc25pLmMKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIGxpYnJhcnkvYWVzbmkuYwpyZW5hbWUgdG8gdGYtcHNhLWNyeXB0by9kcml2ZXJzL2J1aWx0aW4vc3JjL2Flc25pLmMKZGlmZiAtLWdpdCBhL2xpYnJhcnkvYWVzbmkuaCBiL3RmLXBzYS1jcnlwdG8vZHJpdmVycy9idWlsdGluL3NyYy9hZXNuaS5oCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBsaWJyYXJ5L2Flc25pLmgKcmVuYW1lIHRvIHRmLXBzYS1jcnlwdG8vZHJpdmVycy9idWlsdGluL3NyYy9hZXNuaS5oCmRpZmYgLS1naXQgYS90Zi1wc2EtY3J5cHRvL2RyaXZlcnMvYnVpbHRpbi9zcmMvYXJpYS5jIGIvdGYtcHNhLWNyeXB0by9kcml2ZXJzL2J1aWx0aW4vc3JjL2FyaWEuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mMTk1OGVlCi0tLSAvZGV2L251bGwKKysrIGIvdGYtcHNhLWNyeXB0by9kcml2ZXJzL2J1aWx0aW4vc3JjL2FyaWEuYwpAQCAtMCwwICsxLDk2NiBAQAorLyoKKyAqICBBUklBIGltcGxlbWVudGF0aW9uCisgKgorICogIENvcHlyaWdodCBUaGUgTWJlZCBUTFMgQ29udHJpYnV0b3JzCisgKiAgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjAgT1IgR1BMLTIuMC1vci1sYXRlcgorICovCisKKy8qCisgKiBUaGlzIGltcGxlbWVudGF0aW9uIGlzIGJhc2VkIG9uIHRoZSBmb2xsb3dpbmcgc3RhbmRhcmRzOgorICogWzFdIGh0dHA6Ly8yMTAuMTA0LjMzLjEwL0FSSUEvZG9jL0FSSUEtc3BlY2lmaWNhdGlvbi1lLnBkZgorICogWzJdIGh0dHBzOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9yZmM1Nzk0CisgKi8KKworI2luY2x1ZGUgImNvbW1vbi5oIgorCisjaWYgZGVmaW5lZChNQkVEVExTX0FSSUFfQykKKworI2luY2x1ZGUgIm1iZWR0bHMvYXJpYS5oIgorCisjaW5jbHVkZSA8c3RyaW5nLmg+CisKKyNpbmNsdWRlICJtYmVkdGxzL3BsYXRmb3JtLmgiCisKKyNpbmNsdWRlICJtYmVkdGxzL3BsYXRmb3JtX3V0aWwuaCIKKworLyoKKyAqIG1vZGlmeSBieXRlIG9yZGVyOiAoIEEgQiBDIEQgKSAtPiAoIEIgQSBEIEMgKSwgaS5lLiBzd2FwIHBhaXJzIG9mIGJ5dGVzCisgKgorICogVGhpcyBpcyBzdWJtYXRyaXggUDEgaW4gWzFdIEFwcGVuZGl4IEIuMQorICoKKyAqIENvbW1vbiBjb21waWxlcnMgZmFpbCB0byB0cmFuc2xhdGUgdGhpcyB0byBtaW5pbWFsIG51bWJlciBvZiBpbnN0cnVjdGlvbnMsCisgKiBzbyBsZXQncyBwcm92aWRlIGFzbSB2ZXJzaW9ucyBmb3IgY29tbW9uIHBsYXRmb3JtcyB3aXRoIEMgZmFsbGJhY2suCisgKi8KKyNpZiBkZWZpbmVkKE1CRURUTFNfSEFWRV9BU00pCisjaWYgZGVmaW5lZChfX2FybV9fKSAvKiByZXYxNiBhdmFpbGFibGUgZnJvbSB2NiB1cCAqLworLyogYXJtY2M1IC0tZ251IGRlZmluZXMgX19HTlVDX18gYnV0IGRvZXNuJ3Qgc3VwcG9ydCBHTlUncyBleHRlbmRlZCBhc20gKi8KKyNpZiBkZWZpbmVkKF9fR05VQ19fKSAmJiBcCisgICAgKCFkZWZpbmVkKF9fQVJNQ0NfVkVSU0lPTikgfHwgX19BUk1DQ19WRVJTSU9OID49IDYwMDAwMDApICYmIFwKKyAgICBfX0FSTV9BUkNIID49IDYKK3N0YXRpYyBpbmxpbmUgdWludDMyX3QgYXJpYV9wMSh1aW50MzJfdCB4KQoreworICAgIHVpbnQzMl90IHI7CisgICAgX19hc20oInJldjE2ICUwLCAlMSIgOiAiPWwiIChyKSA6ICJsIiAoeCkpOworICAgIHJldHVybiByOworfQorI2RlZmluZSBBUklBX1AxIGFyaWFfcDEKKyNlbGlmIGRlZmluZWQoX19BUk1DQ19WRVJTSU9OKSAmJiBfX0FSTUNDX1ZFUlNJT04gPCA2MDAwMDAwICYmIFwKKyAgICAoX19UQVJHRVRfQVJDSF9BUk0gPj0gNiB8fCBfX1RBUkdFVF9BUkNIX1RIVU1CID49IDMpCitzdGF0aWMgaW5saW5lIHVpbnQzMl90IGFyaWFfcDEodWludDMyX3QgeCkKK3sKKyAgICB1aW50MzJfdCByOworICAgIF9fYXNtKCJyZXYxNiByLCB4Iik7CisgICAgcmV0dXJuIHI7Cit9CisjZGVmaW5lIEFSSUFfUDEgYXJpYV9wMQorI2VuZGlmCisjZW5kaWYgLyogYXJtICovCisjaWYgZGVmaW5lZChfX0dOVUNfXykgJiYgXAorICAgIGRlZmluZWQoX19pMzg2X18pIHx8IGRlZmluZWQoX19hbWQ2NF9fKSB8fCBkZWZpbmVkKF9feDg2XzY0X18pCisvKiBJIGNvdWxkbid0IGZpbmQgYW4gSW50ZWwgZXF1aXZhbGVudCBvZiByZXYxNiwgc28gdHdvIGluc3RydWN0aW9ucyAqLworI2RlZmluZSBBUklBX1AxKHgpIEFSSUFfUDIoQVJJQV9QMyh4KSkKKyNlbmRpZiAvKiB4ODYgZ251YyAqLworI2VuZGlmIC8qIE1CRURUTFNfSEFWRV9BU00gJiYgR05VQyAqLworI2lmICFkZWZpbmVkKEFSSUFfUDEpCisjZGVmaW5lIEFSSUFfUDEoeCkgKCgoKHgpID4+IDgpICYgMHgwMEZGMDBGRikgXiAoKCh4KSAmIDB4MDBGRjAwRkYpIDw8IDgpKQorI2VuZGlmCisKKy8qCisgKiBtb2RpZnkgYnl0ZSBvcmRlcjogKCBBIEIgQyBEICkgLT4gKCBDIEQgQSBCICksIGkuZS4gcm90YXRlIGJ5IDE2IGJpdHMKKyAqCisgKiBUaGlzIGlzIHN1Ym1hdHJpeCBQMiBpbiBbMV0gQXBwZW5kaXggQi4xCisgKgorICogQ29tbW9uIGNvbXBpbGVycyB3aWxsIHRyYW5zbGF0ZSB0aGlzIHRvIGEgc2luZ2xlIGluc3RydWN0aW9uLgorICovCisjZGVmaW5lIEFSSUFfUDIoeCkgKCgoeCkgPj4gMTYpIF4gKCh4KSA8PCAxNikpCisKKy8qCisgKiBtb2RpZnkgYnl0ZSBvcmRlcjogKCBBIEIgQyBEICkgLT4gKCBEIEMgQiBBICksIGkuZS4gY2hhbmdlIGVuZGlhbm5lc3MKKyAqCisgKiBUaGlzIGlzIHN1Ym1hdHJpeCBQMyBpbiBbMV0gQXBwZW5kaXggQi4xCisgKi8KKyNkZWZpbmUgQVJJQV9QMyh4KSBNQkVEVExTX0JTV0FQMzIoeCkKKworLyoKKyAqIEFSSUEgQWZmaW5lIFRyYW5zZm9ybQorICogKGEsIGIsIGMsIGQpID0gc3RhdGUgaW4vb3V0CisgKgorICogSWYgd2UgZGVub3RlIHRoZSBmaXJzdCBieXRlIG9mIGlucHV0IGJ5IDAsIC4uLiwgdGhlIGxhc3QgYnl0ZSBieSBmLAorICogdGhlbiBpbnB1dHMgYXJlOiBhID0gMDEyMywgYiA9IDQ1NjcsIGMgPSA4OWFiLCBkID0gY2RlZi4KKyAqCisgKiBSZWFkaW5nIFsxXSAyLjQgb3IgWzJdIDIuNC4zIGluIGNvbHVtbnMgYW5kIHBlcmZvcm1pbmcgc2ltcGxlCisgKiByZWFycmFuZ2VtZW50cyBvbiBhZGphY2VudCBwYWlycywgb3V0cHV0IGlzOgorICoKKyAqIGEgPSAzMjEwICsgNDU0NSArIDY3NjcgKyA4OGFhICsgOTliYiArIGRjY2QgKyBlZmZlCisgKiAgID0gMzIxMCArIDQ1NjcgKyA2NzQ1ICsgODlhYiArIDk4YmEgKyBkY2ZlICsgZWZjZAorICogYiA9IDAxMDEgKyAyMzIzICsgNTQ3NiArIDg5OTggKyBiYWFiICsgZWVjYyArIGZmZGQKKyAqICAgPSAwMTIzICsgMjMwMSArIDU0NzYgKyA4OWFiICsgYmE5OCArIGVmY2QgKyBmZWRjCisgKiBjID0gMDAyMiArIDExMzMgKyA0NTU0ICsgNzY2NyArIGFiODkgKyBkY2RjICsgZmVmZQorICogICA9IDAxMjMgKyAxMDMyICsgNDU2NyArIDc2NTQgKyBhYjg5ICsgZGNmZSArIGZlZGMKKyAqIGQgPSAxMDAxICsgMjMzMiArIDY2NDQgKyA3NzU1ICsgOTg5OCArIGJhYmEgKyBjZGVmCisgKiAgID0gMTAzMiArIDIzMDEgKyA2NzQ1ICsgNzY1NCArIDk4YmEgKyBiYTk4ICsgY2RlZgorICoKKyAqIE5vdGU6IGFub3RoZXIgcHJlc2VudGF0aW9uIG9mIHRoZSBBIHRyYW5zZm9ybSBjYW4gYmUgZm91bmQgYXMgdGhlIGZpcnN0CisgKiBoYWxmIG9mIEFwcC4gQi4xIGluIFsxXSBpbiB0ZXJtcyBvZiA0LWJ5dGUgb3BlcmF0b3JzIFAxLCBQMiwgUDMgYW5kIFA0LgorICogVGhlIGltcGxlbWVudGF0aW9uIGJlbG93IHVzZXMgb25seSBQMSBhbmQgUDIgYXMgdGhleSBhcmUgc3VmZmljaWVudC4KKyAqLworc3RhdGljIGlubGluZSB2b2lkIGFyaWFfYSh1aW50MzJfdCAqYSwgdWludDMyX3QgKmIsCisgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQzMl90ICpjLCB1aW50MzJfdCAqZCkKK3sKKyAgICB1aW50MzJfdCB0YSwgdGIsIHRjOworICAgIHRhICA9ICAqYjsgICAgICAgICAgICAgICAgICAgICAgLy8gNDU2NworICAgICpiICA9ICAqYTsgICAgICAgICAgICAgICAgICAgICAgLy8gMDEyMworICAgICphICA9ICBBUklBX1AyKHRhKTsgICAgICAgICAgICAgLy8gNjc0NQorICAgIHRiICA9ICBBUklBX1AyKCpkKTsgICAgICAgICAgICAgLy8gZWZjZAorICAgICpkICA9ICBBUklBX1AxKCpjKTsgICAgICAgICAgICAgLy8gOThiYQorICAgICpjICA9ICBBUklBX1AxKHRiKTsgICAgICAgICAgICAgLy8gZmVkYworICAgIHRhICBePSAqZDsgICAgICAgICAgICAgICAgICAgICAgLy8gNDU2Nys5OGJhCisgICAgdGMgID0gIEFSSUFfUDIoKmIpOyAgICAgICAgICAgICAvLyAyMzAxCisgICAgdGEgID0gIEFSSUFfUDEodGEpIF4gdGMgXiAqYzsgICAvLyAyMzAxKzU0NzYrODlhYitmZWRjCisgICAgdGIgIF49IEFSSUFfUDIoKmQpOyAgICAgICAgICAgICAvLyBiYTk4K2VmY2QKKyAgICB0YyAgXj0gQVJJQV9QMSgqYSk7ICAgICAgICAgICAgIC8vIDIzMDErNzY1NAorICAgICpiICBePSB0YSBeIHRiOyAgICAgICAgICAgICAgICAgLy8gMDEyMysyMzAxKzU0NzYrODlhYitiYTk4K2VmY2QrZmVkYyBPVVQKKyAgICB0YiAgPSAgQVJJQV9QMih0YikgXiB0YTsgICAgICAgIC8vIDIzMDErNTQ3Nis4OWFiKzk4YmErY2RlZitmZWRjCisgICAgKmEgIF49IEFSSUFfUDEodGIpOyAgICAgICAgICAgICAvLyAzMjEwKzQ1NjcrNjc0NSs4OWFiKzk4YmErZGNmZStlZmNkIE9VVAorICAgIHRhICA9ICBBUklBX1AyKHRhKTsgICAgICAgICAgICAgLy8gMDEyMys3NjU0K2FiODkrZGNmZQorICAgICpkICBePSBBUklBX1AxKHRhKSBeIHRjOyAgICAgICAgLy8gMTAzMisyMzAxKzY3NDUrNzY1NCs5OGJhK2JhOTgrY2RlZiBPVVQKKyAgICB0YyAgPSAgQVJJQV9QMih0Yyk7ICAgICAgICAgICAgIC8vIDAxMjMrNTQ3NgorICAgICpjICBePSBBUklBX1AxKHRjKSBeIHRhOyAgICAgICAgLy8gMDEyMysxMDMyKzQ1NjcrNzY1NCthYjg5K2RjZmUrZmVkYyBPVVQKK30KKworLyoKKyAqIEFSSUEgU3Vic3RpdHV0aW9uIExheWVyIFNMMSAvIFNMMgorICogKGEsIGIsIGMsIGQpID0gc3RhdGUgaW4vb3V0CisgKiAoc2EsIHNiLCBzYywgc2QpID0gMjU2IDgtYml0IFMtQm94ZXMgKHNlZSBiZWxvdykKKyAqCisgKiBCeSBwYXNzaW5nIHNiMSwgc2IyLCBpczEsIGlzMiBhcyBTLUJveGVzIHlvdSBnZXQgU0wxCisgKiBCeSBwYXNzaW5nIGlzMSwgaXMyLCBzYjEsIHNiMiBhcyBTLUJveGVzIHlvdSBnZXQgU0wyCisgKi8KK3N0YXRpYyBpbmxpbmUgdm9pZCBhcmlhX3NsKHVpbnQzMl90ICphLCB1aW50MzJfdCAqYiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQzMl90ICpjLCB1aW50MzJfdCAqZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVpbnQ4X3Qgc2FbMjU2XSwgY29uc3QgdWludDhfdCBzYlsyNTZdLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdWludDhfdCBzY1syNTZdLCBjb25zdCB1aW50OF90IHNkWzI1Nl0pCit7CisgICAgKmEgPSAoKHVpbnQzMl90KSBzYVtNQkVEVExTX0JZVEVfMCgqYSldKSBeCisgICAgICAgICAoKCh1aW50MzJfdCkgc2JbTUJFRFRMU19CWVRFXzEoKmEpXSkgPDwgIDgpIF4KKyAgICAgICAgICgoKHVpbnQzMl90KSBzY1tNQkVEVExTX0JZVEVfMigqYSldKSA8PCAxNikgXgorICAgICAgICAgKCgodWludDMyX3QpIHNkW01CRURUTFNfQllURV8zKCphKV0pIDw8IDI0KTsKKyAgICAqYiA9ICgodWludDMyX3QpIHNhW01CRURUTFNfQllURV8wKCpiKV0pIF4KKyAgICAgICAgICgoKHVpbnQzMl90KSBzYltNQkVEVExTX0JZVEVfMSgqYildKSA8PCAgOCkgXgorICAgICAgICAgKCgodWludDMyX3QpIHNjW01CRURUTFNfQllURV8yKCpiKV0pIDw8IDE2KSBeCisgICAgICAgICAoKCh1aW50MzJfdCkgc2RbTUJFRFRMU19CWVRFXzMoKmIpXSkgPDwgMjQpOworICAgICpjID0gKCh1aW50MzJfdCkgc2FbTUJFRFRMU19CWVRFXzAoKmMpXSkgXgorICAgICAgICAgKCgodWludDMyX3QpIHNiW01CRURUTFNfQllURV8xKCpjKV0pIDw8ICA4KSBeCisgICAgICAgICAoKCh1aW50MzJfdCkgc2NbTUJFRFRMU19CWVRFXzIoKmMpXSkgPDwgMTYpIF4KKyAgICAgICAgICgoKHVpbnQzMl90KSBzZFtNQkVEVExTX0JZVEVfMygqYyldKSA8PCAyNCk7CisgICAgKmQgPSAoKHVpbnQzMl90KSBzYVtNQkVEVExTX0JZVEVfMCgqZCldKSBeCisgICAgICAgICAoKCh1aW50MzJfdCkgc2JbTUJFRFRMU19CWVRFXzEoKmQpXSkgPDwgIDgpIF4KKyAgICAgICAgICgoKHVpbnQzMl90KSBzY1tNQkVEVExTX0JZVEVfMigqZCldKSA8PCAxNikgXgorICAgICAgICAgKCgodWludDMyX3QpIHNkW01CRURUTFNfQllURV8zKCpkKV0pIDw8IDI0KTsKK30KKworLyoKKyAqIFMtQm94ZXMKKyAqLworc3RhdGljIGNvbnN0IHVpbnQ4X3QgYXJpYV9zYjFbMjU2XSA9Cit7CisgICAgMHg2MywgMHg3QywgMHg3NywgMHg3QiwgMHhGMiwgMHg2QiwgMHg2RiwgMHhDNSwgMHgzMCwgMHgwMSwgMHg2NywgMHgyQiwKKyAgICAweEZFLCAweEQ3LCAweEFCLCAweDc2LCAweENBLCAweDgyLCAweEM5LCAweDdELCAweEZBLCAweDU5LCAweDQ3LCAweEYwLAorICAgIDB4QUQsIDB4RDQsIDB4QTIsIDB4QUYsIDB4OUMsIDB4QTQsIDB4NzIsIDB4QzAsIDB4QjcsIDB4RkQsIDB4OTMsIDB4MjYsCisgICAgMHgzNiwgMHgzRiwgMHhGNywgMHhDQywgMHgzNCwgMHhBNSwgMHhFNSwgMHhGMSwgMHg3MSwgMHhEOCwgMHgzMSwgMHgxNSwKKyAgICAweDA0LCAweEM3LCAweDIzLCAweEMzLCAweDE4LCAweDk2LCAweDA1LCAweDlBLCAweDA3LCAweDEyLCAweDgwLCAweEUyLAorICAgIDB4RUIsIDB4MjcsIDB4QjIsIDB4NzUsIDB4MDksIDB4ODMsIDB4MkMsIDB4MUEsIDB4MUIsIDB4NkUsIDB4NUEsIDB4QTAsCisgICAgMHg1MiwgMHgzQiwgMHhENiwgMHhCMywgMHgyOSwgMHhFMywgMHgyRiwgMHg4NCwgMHg1MywgMHhEMSwgMHgwMCwgMHhFRCwKKyAgICAweDIwLCAweEZDLCAweEIxLCAweDVCLCAweDZBLCAweENCLCAweEJFLCAweDM5LCAweDRBLCAweDRDLCAweDU4LCAweENGLAorICAgIDB4RDAsIDB4RUYsIDB4QUEsIDB4RkIsIDB4NDMsIDB4NEQsIDB4MzMsIDB4ODUsIDB4NDUsIDB4RjksIDB4MDIsIDB4N0YsCisgICAgMHg1MCwgMHgzQywgMHg5RiwgMHhBOCwgMHg1MSwgMHhBMywgMHg0MCwgMHg4RiwgMHg5MiwgMHg5RCwgMHgzOCwgMHhGNSwKKyAgICAweEJDLCAweEI2LCAweERBLCAweDIxLCAweDEwLCAweEZGLCAweEYzLCAweEQyLCAweENELCAweDBDLCAweDEzLCAweEVDLAorICAgIDB4NUYsIDB4OTcsIDB4NDQsIDB4MTcsIDB4QzQsIDB4QTcsIDB4N0UsIDB4M0QsIDB4NjQsIDB4NUQsIDB4MTksIDB4NzMsCisgICAgMHg2MCwgMHg4MSwgMHg0RiwgMHhEQywgMHgyMiwgMHgyQSwgMHg5MCwgMHg4OCwgMHg0NiwgMHhFRSwgMHhCOCwgMHgxNCwKKyAgICAweERFLCAweDVFLCAweDBCLCAweERCLCAweEUwLCAweDMyLCAweDNBLCAweDBBLCAweDQ5LCAweDA2LCAweDI0LCAweDVDLAorICAgIDB4QzIsIDB4RDMsIDB4QUMsIDB4NjIsIDB4OTEsIDB4OTUsIDB4RTQsIDB4NzksIDB4RTcsIDB4QzgsIDB4MzcsIDB4NkQsCisgICAgMHg4RCwgMHhENSwgMHg0RSwgMHhBOSwgMHg2QywgMHg1NiwgMHhGNCwgMHhFQSwgMHg2NSwgMHg3QSwgMHhBRSwgMHgwOCwKKyAgICAweEJBLCAweDc4LCAweDI1LCAweDJFLCAweDFDLCAweEE2LCAweEI0LCAweEM2LCAweEU4LCAweERELCAweDc0LCAweDFGLAorICAgIDB4NEIsIDB4QkQsIDB4OEIsIDB4OEEsIDB4NzAsIDB4M0UsIDB4QjUsIDB4NjYsIDB4NDgsIDB4MDMsIDB4RjYsIDB4MEUsCisgICAgMHg2MSwgMHgzNSwgMHg1NywgMHhCOSwgMHg4NiwgMHhDMSwgMHgxRCwgMHg5RSwgMHhFMSwgMHhGOCwgMHg5OCwgMHgxMSwKKyAgICAweDY5LCAweEQ5LCAweDhFLCAweDk0LCAweDlCLCAweDFFLCAweDg3LCAweEU5LCAweENFLCAweDU1LCAweDI4LCAweERGLAorICAgIDB4OEMsIDB4QTEsIDB4ODksIDB4MEQsIDB4QkYsIDB4RTYsIDB4NDIsIDB4NjgsIDB4NDEsIDB4OTksIDB4MkQsIDB4MEYsCisgICAgMHhCMCwgMHg1NCwgMHhCQiwgMHgxNgorfTsKKworc3RhdGljIGNvbnN0IHVpbnQ4X3QgYXJpYV9zYjJbMjU2XSA9Cit7CisgICAgMHhFMiwgMHg0RSwgMHg1NCwgMHhGQywgMHg5NCwgMHhDMiwgMHg0QSwgMHhDQywgMHg2MiwgMHgwRCwgMHg2QSwgMHg0NiwKKyAgICAweDNDLCAweDRELCAweDhCLCAweEQxLCAweDVFLCAweEZBLCAweDY0LCAweENCLCAweEI0LCAweDk3LCAweEJFLCAweDJCLAorICAgIDB4QkMsIDB4NzcsIDB4MkUsIDB4MDMsIDB4RDMsIDB4MTksIDB4NTksIDB4QzEsIDB4MUQsIDB4MDYsIDB4NDEsIDB4NkIsCisgICAgMHg1NSwgMHhGMCwgMHg5OSwgMHg2OSwgMHhFQSwgMHg5QywgMHgxOCwgMHhBRSwgMHg2MywgMHhERiwgMHhFNywgMHhCQiwKKyAgICAweDAwLCAweDczLCAweDY2LCAweEZCLCAweDk2LCAweDRDLCAweDg1LCAweEU0LCAweDNBLCAweDA5LCAweDQ1LCAweEFBLAorICAgIDB4MEYsIDB4RUUsIDB4MTAsIDB4RUIsIDB4MkQsIDB4N0YsIDB4RjQsIDB4MjksIDB4QUMsIDB4Q0YsIDB4QUQsIDB4OTEsCisgICAgMHg4RCwgMHg3OCwgMHhDOCwgMHg5NSwgMHhGOSwgMHgyRiwgMHhDRSwgMHhDRCwgMHgwOCwgMHg3QSwgMHg4OCwgMHgzOCwKKyAgICAweDVDLCAweDgzLCAweDJBLCAweDI4LCAweDQ3LCAweERCLCAweEI4LCAweEM3LCAweDkzLCAweEE0LCAweDEyLCAweDUzLAorICAgIDB4RkYsIDB4ODcsIDB4MEUsIDB4MzEsIDB4MzYsIDB4MjEsIDB4NTgsIDB4NDgsIDB4MDEsIDB4OEUsIDB4MzcsIDB4NzQsCisgICAgMHgzMiwgMHhDQSwgMHhFOSwgMHhCMSwgMHhCNywgMHhBQiwgMHgwQywgMHhENywgMHhDNCwgMHg1NiwgMHg0MiwgMHgyNiwKKyAgICAweDA3LCAweDk4LCAweDYwLCAweEQ5LCAweEI2LCAweEI5LCAweDExLCAweDQwLCAweEVDLCAweDIwLCAweDhDLCAweEJELAorICAgIDB4QTAsIDB4QzksIDB4ODQsIDB4MDQsIDB4NDksIDB4MjMsIDB4RjEsIDB4NEYsIDB4NTAsIDB4MUYsIDB4MTMsIDB4REMsCisgICAgMHhEOCwgMHhDMCwgMHg5RSwgMHg1NywgMHhFMywgMHhDMywgMHg3QiwgMHg2NSwgMHgzQiwgMHgwMiwgMHg4RiwgMHgzRSwKKyAgICAweEU4LCAweDI1LCAweDkyLCAweEU1LCAweDE1LCAweERELCAweEZELCAweDE3LCAweEE5LCAweEJGLCAweEQ0LCAweDlBLAorICAgIDB4N0UsIDB4QzUsIDB4MzksIDB4NjcsIDB4RkUsIDB4NzYsIDB4OUQsIDB4NDMsIDB4QTcsIDB4RTEsIDB4RDAsIDB4RjUsCisgICAgMHg2OCwgMHhGMiwgMHgxQiwgMHgzNCwgMHg3MCwgMHgwNSwgMHhBMywgMHg4QSwgMHhENSwgMHg3OSwgMHg4NiwgMHhBOCwKKyAgICAweDMwLCAweEM2LCAweDUxLCAweDRCLCAweDFFLCAweEE2LCAweDI3LCAweEY2LCAweDM1LCAweEQyLCAweDZFLCAweDI0LAorICAgIDB4MTYsIDB4ODIsIDB4NUYsIDB4REEsIDB4RTYsIDB4NzUsIDB4QTIsIDB4RUYsIDB4MkMsIDB4QjIsIDB4MUMsIDB4OUYsCisgICAgMHg1RCwgMHg2RiwgMHg4MCwgMHgwQSwgMHg3MiwgMHg0NCwgMHg5QiwgMHg2QywgMHg5MCwgMHgwQiwgMHg1QiwgMHgzMywKKyAgICAweDdELCAweDVBLCAweDUyLCAweEYzLCAweDYxLCAweEExLCAweEY3LCAweEIwLCAweEQ2LCAweDNGLCAweDdDLCAweDZELAorICAgIDB4RUQsIDB4MTQsIDB4RTAsIDB4QTUsIDB4M0QsIDB4MjIsIDB4QjMsIDB4RjgsIDB4ODksIDB4REUsIDB4NzEsIDB4MUEsCisgICAgMHhBRiwgMHhCQSwgMHhCNSwgMHg4MQorfTsKKworc3RhdGljIGNvbnN0IHVpbnQ4X3QgYXJpYV9pczFbMjU2XSA9Cit7CisgICAgMHg1MiwgMHgwOSwgMHg2QSwgMHhENSwgMHgzMCwgMHgzNiwgMHhBNSwgMHgzOCwgMHhCRiwgMHg0MCwgMHhBMywgMHg5RSwKKyAgICAweDgxLCAweEYzLCAweEQ3LCAweEZCLCAweDdDLCAweEUzLCAweDM5LCAweDgyLCAweDlCLCAweDJGLCAweEZGLCAweDg3LAorICAgIDB4MzQsIDB4OEUsIDB4NDMsIDB4NDQsIDB4QzQsIDB4REUsIDB4RTksIDB4Q0IsIDB4NTQsIDB4N0IsIDB4OTQsIDB4MzIsCisgICAgMHhBNiwgMHhDMiwgMHgyMywgMHgzRCwgMHhFRSwgMHg0QywgMHg5NSwgMHgwQiwgMHg0MiwgMHhGQSwgMHhDMywgMHg0RSwKKyAgICAweDA4LCAweDJFLCAweEExLCAweDY2LCAweDI4LCAweEQ5LCAweDI0LCAweEIyLCAweDc2LCAweDVCLCAweEEyLCAweDQ5LAorICAgIDB4NkQsIDB4OEIsIDB4RDEsIDB4MjUsIDB4NzIsIDB4RjgsIDB4RjYsIDB4NjQsIDB4ODYsIDB4NjgsIDB4OTgsIDB4MTYsCisgICAgMHhENCwgMHhBNCwgMHg1QywgMHhDQywgMHg1RCwgMHg2NSwgMHhCNiwgMHg5MiwgMHg2QywgMHg3MCwgMHg0OCwgMHg1MCwKKyAgICAweEZELCAweEVELCAweEI5LCAweERBLCAweDVFLCAweDE1LCAweDQ2LCAweDU3LCAweEE3LCAweDhELCAweDlELCAweDg0LAorICAgIDB4OTAsIDB4RDgsIDB4QUIsIDB4MDAsIDB4OEMsIDB4QkMsIDB4RDMsIDB4MEEsIDB4RjcsIDB4RTQsIDB4NTgsIDB4MDUsCisgICAgMHhCOCwgMHhCMywgMHg0NSwgMHgwNiwgMHhEMCwgMHgyQywgMHgxRSwgMHg4RiwgMHhDQSwgMHgzRiwgMHgwRiwgMHgwMiwKKyAgICAweEMxLCAweEFGLCAweEJELCAweDAzLCAweDAxLCAweDEzLCAweDhBLCAweDZCLCAweDNBLCAweDkxLCAweDExLCAweDQxLAorICAgIDB4NEYsIDB4NjcsIDB4REMsIDB4RUEsIDB4OTcsIDB4RjIsIDB4Q0YsIDB4Q0UsIDB4RjAsIDB4QjQsIDB4RTYsIDB4NzMsCisgICAgMHg5NiwgMHhBQywgMHg3NCwgMHgyMiwgMHhFNywgMHhBRCwgMHgzNSwgMHg4NSwgMHhFMiwgMHhGOSwgMHgzNywgMHhFOCwKKyAgICAweDFDLCAweDc1LCAweERGLCAweDZFLCAweDQ3LCAweEYxLCAweDFBLCAweDcxLCAweDFELCAweDI5LCAweEM1LCAweDg5LAorICAgIDB4NkYsIDB4QjcsIDB4NjIsIDB4MEUsIDB4QUEsIDB4MTgsIDB4QkUsIDB4MUIsIDB4RkMsIDB4NTYsIDB4M0UsIDB4NEIsCisgICAgMHhDNiwgMHhEMiwgMHg3OSwgMHgyMCwgMHg5QSwgMHhEQiwgMHhDMCwgMHhGRSwgMHg3OCwgMHhDRCwgMHg1QSwgMHhGNCwKKyAgICAweDFGLCAweERELCAweEE4LCAweDMzLCAweDg4LCAweDA3LCAweEM3LCAweDMxLCAweEIxLCAweDEyLCAweDEwLCAweDU5LAorICAgIDB4MjcsIDB4ODAsIDB4RUMsIDB4NUYsIDB4NjAsIDB4NTEsIDB4N0YsIDB4QTksIDB4MTksIDB4QjUsIDB4NEEsIDB4MEQsCisgICAgMHgyRCwgMHhFNSwgMHg3QSwgMHg5RiwgMHg5MywgMHhDOSwgMHg5QywgMHhFRiwgMHhBMCwgMHhFMCwgMHgzQiwgMHg0RCwKKyAgICAweEFFLCAweDJBLCAweEY1LCAweEIwLCAweEM4LCAweEVCLCAweEJCLCAweDNDLCAweDgzLCAweDUzLCAweDk5LCAweDYxLAorICAgIDB4MTcsIDB4MkIsIDB4MDQsIDB4N0UsIDB4QkEsIDB4NzcsIDB4RDYsIDB4MjYsIDB4RTEsIDB4NjksIDB4MTQsIDB4NjMsCisgICAgMHg1NSwgMHgyMSwgMHgwQywgMHg3RAorfTsKKworc3RhdGljIGNvbnN0IHVpbnQ4X3QgYXJpYV9pczJbMjU2XSA9Cit7CisgICAgMHgzMCwgMHg2OCwgMHg5OSwgMHgxQiwgMHg4NywgMHhCOSwgMHgyMSwgMHg3OCwgMHg1MCwgMHgzOSwgMHhEQiwgMHhFMSwKKyAgICAweDcyLCAweDA5LCAweDYyLCAweDNDLCAweDNFLCAweDdFLCAweDVFLCAweDhFLCAweEYxLCAweEEwLCAweENDLCAweEEzLAorICAgIDB4MkEsIDB4MUQsIDB4RkIsIDB4QjYsIDB4RDYsIDB4MjAsIDB4QzQsIDB4OEQsIDB4ODEsIDB4NjUsIDB4RjUsIDB4ODksCisgICAgMHhDQiwgMHg5RCwgMHg3NywgMHhDNiwgMHg1NywgMHg0MywgMHg1NiwgMHgxNywgMHhENCwgMHg0MCwgMHgxQSwgMHg0RCwKKyAgICAweEMwLCAweDYzLCAweDZDLCAweEUzLCAweEI3LCAweEM4LCAweDY0LCAweDZBLCAweDUzLCAweEFBLCAweDM4LCAweDk4LAorICAgIDB4MEMsIDB4RjQsIDB4OUIsIDB4RUQsIDB4N0YsIDB4MjIsIDB4NzYsIDB4QUYsIDB4REQsIDB4M0EsIDB4MEIsIDB4NTgsCisgICAgMHg2NywgMHg4OCwgMHgwNiwgMHhDMywgMHgzNSwgMHgwRCwgMHgwMSwgMHg4QiwgMHg4QywgMHhDMiwgMHhFNiwgMHg1RiwKKyAgICAweDAyLCAweDI0LCAweDc1LCAweDkzLCAweDY2LCAweDFFLCAweEU1LCAweEUyLCAweDU0LCAweEQ4LCAweDEwLCAweENFLAorICAgIDB4N0EsIDB4RTgsIDB4MDgsIDB4MkMsIDB4MTIsIDB4OTcsIDB4MzIsIDB4QUIsIDB4QjQsIDB4MjcsIDB4MEEsIDB4MjMsCisgICAgMHhERiwgMHhFRiwgMHhDQSwgMHhEOSwgMHhCOCwgMHhGQSwgMHhEQywgMHgzMSwgMHg2QiwgMHhEMSwgMHhBRCwgMHgxOSwKKyAgICAweDQ5LCAweEJELCAweDUxLCAweDk2LCAweEVFLCAweEU0LCAweEE4LCAweDQxLCAweERBLCAweEZGLCAweENELCAweDU1LAorICAgIDB4ODYsIDB4MzYsIDB4QkUsIDB4NjEsIDB4NTIsIDB4RjgsIDB4QkIsIDB4MEUsIDB4ODIsIDB4NDgsIDB4NjksIDB4OUEsCisgICAgMHhFMCwgMHg0NywgMHg5RSwgMHg1QywgMHgwNCwgMHg0QiwgMHgzNCwgMHgxNSwgMHg3OSwgMHgyNiwgMHhBNywgMHhERSwKKyAgICAweDI5LCAweEFFLCAweDkyLCAweEQ3LCAweDg0LCAweEU5LCAweEQyLCAweEJBLCAweDVELCAweEYzLCAweEM1LCAweEIwLAorICAgIDB4QkYsIDB4QTQsIDB4M0IsIDB4NzEsIDB4NDQsIDB4NDYsIDB4MkIsIDB4RkMsIDB4RUIsIDB4NkYsIDB4RDUsIDB4RjYsCisgICAgMHgxNCwgMHhGRSwgMHg3QywgMHg3MCwgMHg1QSwgMHg3RCwgMHhGRCwgMHgyRiwgMHgxOCwgMHg4MywgMHgxNiwgMHhBNSwKKyAgICAweDkxLCAweDFGLCAweDA1LCAweDk1LCAweDc0LCAweEE5LCAweEMxLCAweDVCLCAweDRBLCAweDg1LCAweDZELCAweDEzLAorICAgIDB4MDcsIDB4NEYsIDB4NEUsIDB4NDUsIDB4QjIsIDB4MEYsIDB4QzksIDB4MUMsIDB4QTYsIDB4QkMsIDB4RUMsIDB4NzMsCisgICAgMHg5MCwgMHg3QiwgMHhDRiwgMHg1OSwgMHg4RiwgMHhBMSwgMHhGOSwgMHgyRCwgMHhGMiwgMHhCMSwgMHgwMCwgMHg5NCwKKyAgICAweDM3LCAweDlGLCAweEQwLCAweDJFLCAweDlDLCAweDZFLCAweDI4LCAweDNGLCAweDgwLCAweEYwLCAweDNELCAweEQzLAorICAgIDB4MjUsIDB4OEEsIDB4QjUsIDB4RTcsIDB4NDIsIDB4QjMsIDB4QzcsIDB4RUEsIDB4RjcsIDB4NEMsIDB4MTEsIDB4MzMsCisgICAgMHgwMywgMHhBMiwgMHhBQywgMHg2MAorfTsKKworLyoKKyAqIEhlbHBlciBmb3Iga2V5IHNjaGVkdWxlOiByID0gRk8oIHAsIGsgKSBeIHgKKyAqLworc3RhdGljIHZvaWQgYXJpYV9mb194b3IodWludDMyX3Qgcls0XSwgY29uc3QgdWludDMyX3QgcFs0XSwKKyAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVpbnQzMl90IGtbNF0sIGNvbnN0IHVpbnQzMl90IHhbNF0pCit7CisgICAgdWludDMyX3QgYSwgYiwgYywgZDsKKworICAgIGEgPSBwWzBdIF4ga1swXTsKKyAgICBiID0gcFsxXSBeIGtbMV07CisgICAgYyA9IHBbMl0gXiBrWzJdOworICAgIGQgPSBwWzNdIF4ga1szXTsKKworICAgIGFyaWFfc2woJmEsICZiLCAmYywgJmQsIGFyaWFfc2IxLCBhcmlhX3NiMiwgYXJpYV9pczEsIGFyaWFfaXMyKTsKKyAgICBhcmlhX2EoJmEsICZiLCAmYywgJmQpOworCisgICAgclswXSA9IGEgXiB4WzBdOworICAgIHJbMV0gPSBiIF4geFsxXTsKKyAgICByWzJdID0gYyBeIHhbMl07CisgICAgclszXSA9IGQgXiB4WzNdOworfQorCisvKgorICogSGVscGVyIGZvciBrZXkgc2NoZWR1bGU6IHIgPSBGRSggcCwgayApIF4geAorICovCitzdGF0aWMgdm9pZCBhcmlhX2ZlX3hvcih1aW50MzJfdCByWzRdLCBjb25zdCB1aW50MzJfdCBwWzRdLAorICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdWludDMyX3Qga1s0XSwgY29uc3QgdWludDMyX3QgeFs0XSkKK3sKKyAgICB1aW50MzJfdCBhLCBiLCBjLCBkOworCisgICAgYSA9IHBbMF0gXiBrWzBdOworICAgIGIgPSBwWzFdIF4ga1sxXTsKKyAgICBjID0gcFsyXSBeIGtbMl07CisgICAgZCA9IHBbM10gXiBrWzNdOworCisgICAgYXJpYV9zbCgmYSwgJmIsICZjLCAmZCwgYXJpYV9pczEsIGFyaWFfaXMyLCBhcmlhX3NiMSwgYXJpYV9zYjIpOworICAgIGFyaWFfYSgmYSwgJmIsICZjLCAmZCk7CisKKyAgICByWzBdID0gYSBeIHhbMF07CisgICAgclsxXSA9IGIgXiB4WzFdOworICAgIHJbMl0gPSBjIF4geFsyXTsKKyAgICByWzNdID0gZCBeIHhbM107Cit9CisKKy8qCisgKiBCaWcgZW5kaWFuIDEyOC1iaXQgcm90YXRpb246IHIgPSBhIF4gKGIgPDw8IG4pLCB1c2VkIG9ubHkgaW4ga2V5IHNldHVwLgorICoKKyAqIFdlIGNob3NlIHRvIHN0b3JlIGJ5dGVzIGludG8gMzItYml0IHdvcmRzIGluIGxpdHRsZS1lbmRpYW4gZm9ybWF0IChzZWUKKyAqIE1CRURUTFNfR0VUX1VJTlQzMl9MRSAvIE1CRURUTFNfUFVUX1VJTlQzMl9MRSApIHNvIHdlIG5lZWQgdG8gcmV2ZXJzZQorICogYnl0ZXMgaGVyZS4KKyAqLworc3RhdGljIHZvaWQgYXJpYV9yb3QxMjgodWludDMyX3Qgcls0XSwgY29uc3QgdWludDMyX3QgYVs0XSwKKyAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVpbnQzMl90IGJbNF0sIHVpbnQ4X3QgbikKK3sKKyAgICB1aW50OF90IGksIGo7CisgICAgdWludDMyX3QgdCwgdTsKKworICAgIGNvbnN0IHVpbnQ4X3QgbjEgPSBuICUgMzI7ICAgICAgICAgICAgICAvLyBiaXQgb2Zmc2V0CisgICAgY29uc3QgdWludDhfdCBuMiA9IG4xID8gMzIgLSBuMSA6IDA7ICAgIC8vIHJldmVyc2UgYml0IG9mZnNldAorCisgICAgaiA9IChuIC8gMzIpICUgNDsgICAgICAgICAgICAgICAgICAgICAgIC8vIGluaXRpYWwgd29yZCBvZmZzZXQKKyAgICB0ID0gQVJJQV9QMyhiW2pdKTsgICAgICAgICAgICAgICAgICAgICAgLy8gYmlnIGVuZGlhbgorICAgIGZvciAoaSA9IDA7IGkgPCA0OyBpKyspIHsKKyAgICAgICAgaiA9IChqICsgMSkgJSA0OyAgICAgICAgICAgICAgICAgICAgLy8gZ2V0IG5leHQgd29yZCwgYmlnIGVuZGlhbgorICAgICAgICB1ID0gQVJJQV9QMyhiW2pdKTsKKyAgICAgICAgdCA8PD0gbjE7ICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gcm90YXRlCisgICAgICAgIHQgfD0gdSA+PiBuMjsKKyAgICAgICAgdCA9IEFSSUFfUDModCk7ICAgICAgICAgICAgICAgICAgICAgLy8gYmFjayB0byBsaXR0bGUgZW5kaWFuCisgICAgICAgIHJbaV0gPSBhW2ldIF4gdDsgICAgICAgICAgICAgICAgICAgIC8vIHN0b3JlCisgICAgICAgIHQgPSB1OyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIG1vdmUgdG8gbmV4dCB3b3JkCisgICAgfQorfQorCisvKgorICogU2V0IGVuY3J5cHRpb24ga2V5CisgKi8KK2ludCBtYmVkdGxzX2FyaWFfc2V0a2V5X2VuYyhtYmVkdGxzX2FyaWFfY29udGV4dCAqY3R4LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgKmtleSwgdW5zaWduZWQgaW50IGtleWJpdHMpCit7CisgICAgLyogcm91bmQgY29uc3RhbnQgbWFza3MgKi8KKyAgICBjb25zdCB1aW50MzJfdCByY1szXVs0XSA9CisgICAgeworICAgICAgICB7ICAgMHhCN0MxN0M1MSwgMHg5NDBBMjIyNywgMHhFOEFCMTNGRSwgMHhFMDZFOUFGQSAgfSwKKyAgICAgICAgeyAgIDB4Q0M0QUIxNkQsIDB4MjBDODIxOUUsIDB4RDVCMTI4RkYsIDB4QjBFMjVERUYgIH0sCisgICAgICAgIHsgICAweDFEMzc5MkRCLCAweDcwRTkyNjIxLCAweDc1OTcyNDAzLCAweDBFQzlFODA0ICB9CisgICAgfTsKKworICAgIGludCBpOworICAgIHVpbnQzMl90IHdbNF1bNF0sICp3MjsKKworICAgIGlmIChrZXliaXRzICE9IDEyOCAmJiBrZXliaXRzICE9IDE5MiAmJiBrZXliaXRzICE9IDI1NikgeworICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfQVJJQV9CQURfSU5QVVRfREFUQTsKKyAgICB9CisKKyAgICAvKiBDb3B5IGtleSB0byBXMCAoYW5kIHBvdGVudGlhbCByZW1haW5kZXIgdG8gVzEpICovCisgICAgd1swXVswXSA9IE1CRURUTFNfR0VUX1VJTlQzMl9MRShrZXksICAwKTsKKyAgICB3WzBdWzFdID0gTUJFRFRMU19HRVRfVUlOVDMyX0xFKGtleSwgIDQpOworICAgIHdbMF1bMl0gPSBNQkVEVExTX0dFVF9VSU5UMzJfTEUoa2V5LCAgOCk7CisgICAgd1swXVszXSA9IE1CRURUTFNfR0VUX1VJTlQzMl9MRShrZXksIDEyKTsKKworICAgIG1lbXNldCh3WzFdLCAwLCAxNik7CisgICAgaWYgKGtleWJpdHMgPj0gMTkyKSB7CisgICAgICAgIHdbMV1bMF0gPSBNQkVEVExTX0dFVF9VSU5UMzJfTEUoa2V5LCAxNik7ICAgIC8vIDE5MiBiaXQga2V5CisgICAgICAgIHdbMV1bMV0gPSBNQkVEVExTX0dFVF9VSU5UMzJfTEUoa2V5LCAyMCk7CisgICAgfQorICAgIGlmIChrZXliaXRzID09IDI1NikgeworICAgICAgICB3WzFdWzJdID0gTUJFRFRMU19HRVRfVUlOVDMyX0xFKGtleSwgMjQpOyAgICAvLyAyNTYgYml0IGtleQorICAgICAgICB3WzFdWzNdID0gTUJFRFRMU19HRVRfVUlOVDMyX0xFKGtleSwgMjgpOworICAgIH0KKworICAgIGkgPSAoa2V5Yml0cyAtIDEyOCkgPj4gNjsgICAgICAgICAgICAgICAvLyBpbmRleDogMCwgMSwgMgorICAgIGN0eC0+bnIgPSAxMiArIDIgKiBpOyAgICAgICAgICAgICAgICAgICAvLyBuby4gcm91bmRzOiAxMiwgMTQsIDE2CisKKyAgICBhcmlhX2ZvX3hvcih3WzFdLCB3WzBdLCByY1tpXSwgd1sxXSk7ICAgLy8gVzEgPSBGTyhXMCwgQ0sxKSBeIEtSCisgICAgaSA9IGkgPCAyID8gaSArIDEgOiAwOworICAgIGFyaWFfZmVfeG9yKHdbMl0sIHdbMV0sIHJjW2ldLCB3WzBdKTsgICAvLyBXMiA9IEZFKFcxLCBDSzIpIF4gVzAKKyAgICBpID0gaSA8IDIgPyBpICsgMSA6IDA7CisgICAgYXJpYV9mb194b3Iod1szXSwgd1syXSwgcmNbaV0sIHdbMV0pOyAgIC8vIFczID0gRk8oVzIsIENLMykgXiBXMQorCisgICAgZm9yIChpID0gMDsgaSA8IDQ7IGkrKykgeyAgICAgICAgICAgICAgIC8vIGNyZWF0ZSByb3VuZCBrZXlzCisgICAgICAgIHcyID0gd1soaSArIDEpICYgM107CisgICAgICAgIGFyaWFfcm90MTI4KGN0eC0+cmtbaV0sIHdbaV0sIHcyLCAxMjggLSAxOSk7CisgICAgICAgIGFyaWFfcm90MTI4KGN0eC0+cmtbaSArICA0XSwgd1tpXSwgdzIsIDEyOCAtIDMxKTsKKyAgICAgICAgYXJpYV9yb3QxMjgoY3R4LT5ya1tpICsgIDhdLCB3W2ldLCB3MiwgICAgICAgNjEpOworICAgICAgICBhcmlhX3JvdDEyOChjdHgtPnJrW2kgKyAxMl0sIHdbaV0sIHcyLCAgICAgICAzMSk7CisgICAgfQorICAgIGFyaWFfcm90MTI4KGN0eC0+cmtbMTZdLCB3WzBdLCB3WzFdLCAxOSk7CisKKyAgICAvKiB3IGhvbGRzIGVub3VnaCBpbmZvIHRvIHJlY29uc3RydWN0IHRoZSByb3VuZCBrZXlzICovCisgICAgbWJlZHRsc19wbGF0Zm9ybV96ZXJvaXplKHcsIHNpemVvZih3KSk7CisKKyAgICByZXR1cm4gMDsKK30KKworLyoKKyAqIFNldCBkZWNyeXB0aW9uIGtleQorICovCisjaWYgIWRlZmluZWQoTUJFRFRMU19CTE9DS19DSVBIRVJfTk9fREVDUllQVCkKK2ludCBtYmVkdGxzX2FyaWFfc2V0a2V5X2RlYyhtYmVkdGxzX2FyaWFfY29udGV4dCAqY3R4LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgKmtleSwgdW5zaWduZWQgaW50IGtleWJpdHMpCit7CisgICAgaW50IGksIGosIGssIHJldDsKKworICAgIHJldCA9IG1iZWR0bHNfYXJpYV9zZXRrZXlfZW5jKGN0eCwga2V5LCBrZXliaXRzKTsKKyAgICBpZiAocmV0ICE9IDApIHsKKyAgICAgICAgcmV0dXJuIHJldDsKKyAgICB9CisKKyAgICAvKiBmbGlwIHRoZSBvcmRlciBvZiByb3VuZCBrZXlzICovCisgICAgZm9yIChpID0gMCwgaiA9IGN0eC0+bnI7IGkgPCBqOyBpKyssIGotLSkgeworICAgICAgICBmb3IgKGsgPSAwOyBrIDwgNDsgaysrKSB7CisgICAgICAgICAgICB1aW50MzJfdCB0ID0gY3R4LT5ya1tpXVtrXTsKKyAgICAgICAgICAgIGN0eC0+cmtbaV1ba10gPSBjdHgtPnJrW2pdW2tdOworICAgICAgICAgICAgY3R4LT5ya1tqXVtrXSA9IHQ7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKiBhcHBseSBhZmZpbmUgdHJhbnNmb3JtIHRvIG1pZGRsZSBrZXlzICovCisgICAgZm9yIChpID0gMTsgaSA8IGN0eC0+bnI7IGkrKykgeworICAgICAgICBhcmlhX2EoJmN0eC0+cmtbaV1bMF0sICZjdHgtPnJrW2ldWzFdLAorICAgICAgICAgICAgICAgJmN0eC0+cmtbaV1bMl0sICZjdHgtPnJrW2ldWzNdKTsKKyAgICB9CisKKyAgICByZXR1cm4gMDsKK30KKyNlbmRpZiAvKiAhTUJFRFRMU19CTE9DS19DSVBIRVJfTk9fREVDUllQVCAqLworCisvKgorICogRW5jcnlwdCBhIGJsb2NrCisgKi8KK2ludCBtYmVkdGxzX2FyaWFfY3J5cHRfZWNiKG1iZWR0bHNfYXJpYV9jb250ZXh0ICpjdHgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1bnNpZ25lZCBjaGFyIGlucHV0W01CRURUTFNfQVJJQV9CTE9DS1NJWkVdLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgY2hhciBvdXRwdXRbTUJFRFRMU19BUklBX0JMT0NLU0laRV0pCit7CisgICAgaW50IGk7CisKKyAgICB1aW50MzJfdCBhLCBiLCBjLCBkOworCisgICAgYSA9IE1CRURUTFNfR0VUX1VJTlQzMl9MRShpbnB1dCwgIDApOworICAgIGIgPSBNQkVEVExTX0dFVF9VSU5UMzJfTEUoaW5wdXQsICA0KTsKKyAgICBjID0gTUJFRFRMU19HRVRfVUlOVDMyX0xFKGlucHV0LCAgOCk7CisgICAgZCA9IE1CRURUTFNfR0VUX1VJTlQzMl9MRShpbnB1dCwgMTIpOworCisgICAgaSA9IDA7CisgICAgd2hpbGUgKDEpIHsKKyAgICAgICAgYSBePSBjdHgtPnJrW2ldWzBdOworICAgICAgICBiIF49IGN0eC0+cmtbaV1bMV07CisgICAgICAgIGMgXj0gY3R4LT5ya1tpXVsyXTsKKyAgICAgICAgZCBePSBjdHgtPnJrW2ldWzNdOworICAgICAgICBpKys7CisKKyAgICAgICAgYXJpYV9zbCgmYSwgJmIsICZjLCAmZCwgYXJpYV9zYjEsIGFyaWFfc2IyLCBhcmlhX2lzMSwgYXJpYV9pczIpOworICAgICAgICBhcmlhX2EoJmEsICZiLCAmYywgJmQpOworCisgICAgICAgIGEgXj0gY3R4LT5ya1tpXVswXTsKKyAgICAgICAgYiBePSBjdHgtPnJrW2ldWzFdOworICAgICAgICBjIF49IGN0eC0+cmtbaV1bMl07CisgICAgICAgIGQgXj0gY3R4LT5ya1tpXVszXTsKKyAgICAgICAgaSsrOworCisgICAgICAgIGFyaWFfc2woJmEsICZiLCAmYywgJmQsIGFyaWFfaXMxLCBhcmlhX2lzMiwgYXJpYV9zYjEsIGFyaWFfc2IyKTsKKyAgICAgICAgaWYgKGkgPj0gY3R4LT5ucikgeworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAgYXJpYV9hKCZhLCAmYiwgJmMsICZkKTsKKyAgICB9CisKKyAgICAvKiBmaW5hbCBrZXkgbWl4aW5nICovCisgICAgYSBePSBjdHgtPnJrW2ldWzBdOworICAgIGIgXj0gY3R4LT5ya1tpXVsxXTsKKyAgICBjIF49IGN0eC0+cmtbaV1bMl07CisgICAgZCBePSBjdHgtPnJrW2ldWzNdOworCisgICAgTUJFRFRMU19QVVRfVUlOVDMyX0xFKGEsIG91dHB1dCwgIDApOworICAgIE1CRURUTFNfUFVUX1VJTlQzMl9MRShiLCBvdXRwdXQsICA0KTsKKyAgICBNQkVEVExTX1BVVF9VSU5UMzJfTEUoYywgb3V0cHV0LCAgOCk7CisgICAgTUJFRFRMU19QVVRfVUlOVDMyX0xFKGQsIG91dHB1dCwgMTIpOworCisgICAgcmV0dXJuIDA7Cit9CisKKy8qIEluaXRpYWxpemUgY29udGV4dCAqLwordm9pZCBtYmVkdGxzX2FyaWFfaW5pdChtYmVkdGxzX2FyaWFfY29udGV4dCAqY3R4KQoreworICAgIG1lbXNldChjdHgsIDAsIHNpemVvZihtYmVkdGxzX2FyaWFfY29udGV4dCkpOworfQorCisvKiBDbGVhciBjb250ZXh0ICovCit2b2lkIG1iZWR0bHNfYXJpYV9mcmVlKG1iZWR0bHNfYXJpYV9jb250ZXh0ICpjdHgpCit7CisgICAgaWYgKGN0eCA9PSBOVUxMKSB7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBtYmVkdGxzX3BsYXRmb3JtX3plcm9pemUoY3R4LCBzaXplb2YobWJlZHRsc19hcmlhX2NvbnRleHQpKTsKK30KKworI2lmIGRlZmluZWQoTUJFRFRMU19DSVBIRVJfTU9ERV9DQkMpCisvKgorICogQVJJQS1DQkMgYnVmZmVyIGVuY3J5cHRpb24vZGVjcnlwdGlvbgorICovCitpbnQgbWJlZHRsc19hcmlhX2NyeXB0X2NiYyhtYmVkdGxzX2FyaWFfY29udGV4dCAqY3R4LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IG1vZGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgbGVuZ3RoLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgY2hhciBpdltNQkVEVExTX0FSSUFfQkxPQ0tTSVpFXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgKmlucHV0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgY2hhciAqb3V0cHV0KQoreworICAgIHVuc2lnbmVkIGNoYXIgdGVtcFtNQkVEVExTX0FSSUFfQkxPQ0tTSVpFXTsKKworICAgIGlmICgobW9kZSAhPSBNQkVEVExTX0FSSUFfRU5DUllQVCkgJiYgKG1vZGUgIT0gTUJFRFRMU19BUklBX0RFQ1JZUFQpKSB7CisgICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9BUklBX0JBRF9JTlBVVF9EQVRBOworICAgIH0KKworICAgIGlmIChsZW5ndGggJSBNQkVEVExTX0FSSUFfQkxPQ0tTSVpFKSB7CisgICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9BUklBX0lOVkFMSURfSU5QVVRfTEVOR1RIOworICAgIH0KKworICAgIGlmIChtb2RlID09IE1CRURUTFNfQVJJQV9ERUNSWVBUKSB7CisgICAgICAgIHdoaWxlIChsZW5ndGggPiAwKSB7CisgICAgICAgICAgICBtZW1jcHkodGVtcCwgaW5wdXQsIE1CRURUTFNfQVJJQV9CTE9DS1NJWkUpOworICAgICAgICAgICAgbWJlZHRsc19hcmlhX2NyeXB0X2VjYihjdHgsIGlucHV0LCBvdXRwdXQpOworCisgICAgICAgICAgICBtYmVkdGxzX3hvcihvdXRwdXQsIG91dHB1dCwgaXYsIE1CRURUTFNfQVJJQV9CTE9DS1NJWkUpOworCisgICAgICAgICAgICBtZW1jcHkoaXYsIHRlbXAsIE1CRURUTFNfQVJJQV9CTE9DS1NJWkUpOworCisgICAgICAgICAgICBpbnB1dCAgKz0gTUJFRFRMU19BUklBX0JMT0NLU0laRTsKKyAgICAgICAgICAgIG91dHB1dCArPSBNQkVEVExTX0FSSUFfQkxPQ0tTSVpFOworICAgICAgICAgICAgbGVuZ3RoIC09IE1CRURUTFNfQVJJQV9CTE9DS1NJWkU7CisgICAgICAgIH0KKyAgICB9IGVsc2UgeworICAgICAgICB3aGlsZSAobGVuZ3RoID4gMCkgeworICAgICAgICAgICAgbWJlZHRsc194b3Iob3V0cHV0LCBpbnB1dCwgaXYsIE1CRURUTFNfQVJJQV9CTE9DS1NJWkUpOworCisgICAgICAgICAgICBtYmVkdGxzX2FyaWFfY3J5cHRfZWNiKGN0eCwgb3V0cHV0LCBvdXRwdXQpOworICAgICAgICAgICAgbWVtY3B5KGl2LCBvdXRwdXQsIE1CRURUTFNfQVJJQV9CTE9DS1NJWkUpOworCisgICAgICAgICAgICBpbnB1dCAgKz0gTUJFRFRMU19BUklBX0JMT0NLU0laRTsKKyAgICAgICAgICAgIG91dHB1dCArPSBNQkVEVExTX0FSSUFfQkxPQ0tTSVpFOworICAgICAgICAgICAgbGVuZ3RoIC09IE1CRURUTFNfQVJJQV9CTE9DS1NJWkU7CisgICAgICAgIH0KKyAgICB9CisKKyAgICByZXR1cm4gMDsKK30KKyNlbmRpZiAvKiBNQkVEVExTX0NJUEhFUl9NT0RFX0NCQyAqLworCisjaWYgZGVmaW5lZChNQkVEVExTX0NJUEhFUl9NT0RFX0NGQikKKy8qCisgKiBBUklBLUNGQjEyOCBidWZmZXIgZW5jcnlwdGlvbi9kZWNyeXB0aW9uCisgKi8KK2ludCBtYmVkdGxzX2FyaWFfY3J5cHRfY2ZiMTI4KG1iZWR0bHNfYXJpYV9jb250ZXh0ICpjdHgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgbW9kZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBsZW5ndGgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgKml2X29mZiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGNoYXIgaXZbTUJFRFRMU19BUklBX0JMT0NLU0laRV0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1bnNpZ25lZCBjaGFyICppbnB1dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGNoYXIgKm91dHB1dCkKK3sKKyAgICB1bnNpZ25lZCBjaGFyIGM7CisgICAgc2l6ZV90IG47CisKKyAgICBpZiAoKG1vZGUgIT0gTUJFRFRMU19BUklBX0VOQ1JZUFQpICYmIChtb2RlICE9IE1CRURUTFNfQVJJQV9ERUNSWVBUKSkgeworICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfQVJJQV9CQURfSU5QVVRfREFUQTsKKyAgICB9CisKKyAgICBuID0gKml2X29mZjsKKworICAgIC8qIEFuIG92ZXJseSBsYXJnZSB2YWx1ZSBvZiBuIGNhbiBsZWFkIHRvIGFuIHVubGltaXRlZAorICAgICAqIGJ1ZmZlciBvdmVyZmxvdy4gKi8KKyAgICBpZiAobiA+PSBNQkVEVExTX0FSSUFfQkxPQ0tTSVpFKSB7CisgICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9BUklBX0JBRF9JTlBVVF9EQVRBOworICAgIH0KKworICAgIGlmIChtb2RlID09IE1CRURUTFNfQVJJQV9ERUNSWVBUKSB7CisgICAgICAgIHdoaWxlIChsZW5ndGgtLSkgeworICAgICAgICAgICAgaWYgKG4gPT0gMCkgeworICAgICAgICAgICAgICAgIG1iZWR0bHNfYXJpYV9jcnlwdF9lY2IoY3R4LCBpdiwgaXYpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBjID0gKmlucHV0Kys7CisgICAgICAgICAgICAqb3V0cHV0KysgPSBjIF4gaXZbbl07CisgICAgICAgICAgICBpdltuXSA9IGM7CisKKyAgICAgICAgICAgIG4gPSAobiArIDEpICYgMHgwRjsKKyAgICAgICAgfQorICAgIH0gZWxzZSB7CisgICAgICAgIHdoaWxlIChsZW5ndGgtLSkgeworICAgICAgICAgICAgaWYgKG4gPT0gMCkgeworICAgICAgICAgICAgICAgIG1iZWR0bHNfYXJpYV9jcnlwdF9lY2IoY3R4LCBpdiwgaXYpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpdltuXSA9ICpvdXRwdXQrKyA9ICh1bnNpZ25lZCBjaGFyKSAoaXZbbl0gXiAqaW5wdXQrKyk7CisKKyAgICAgICAgICAgIG4gPSAobiArIDEpICYgMHgwRjsKKyAgICAgICAgfQorICAgIH0KKworICAgICppdl9vZmYgPSBuOworCisgICAgcmV0dXJuIDA7Cit9CisjZW5kaWYgLyogTUJFRFRMU19DSVBIRVJfTU9ERV9DRkIgKi8KKworI2lmIGRlZmluZWQoTUJFRFRMU19DSVBIRVJfTU9ERV9DVFIpCisvKgorICogQVJJQS1DVFIgYnVmZmVyIGVuY3J5cHRpb24vZGVjcnlwdGlvbgorICovCitpbnQgbWJlZHRsc19hcmlhX2NyeXB0X2N0cihtYmVkdGxzX2FyaWFfY29udGV4dCAqY3R4LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IGxlbmd0aCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCAqbmNfb2ZmLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgY2hhciBub25jZV9jb3VudGVyW01CRURUTFNfQVJJQV9CTE9DS1NJWkVdLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgY2hhciBzdHJlYW1fYmxvY2tbTUJFRFRMU19BUklBX0JMT0NLU0laRV0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1bnNpZ25lZCBjaGFyICppbnB1dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGNoYXIgKm91dHB1dCkKK3sKKyAgICBpbnQgYywgaTsKKyAgICBzaXplX3QgbjsKKworICAgIG4gPSAqbmNfb2ZmOworICAgIC8qIEFuIG92ZXJseSBsYXJnZSB2YWx1ZSBvZiBuIGNhbiBsZWFkIHRvIGFuIHVubGltaXRlZAorICAgICAqIGJ1ZmZlciBvdmVyZmxvdy4gKi8KKyAgICBpZiAobiA+PSBNQkVEVExTX0FSSUFfQkxPQ0tTSVpFKSB7CisgICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9BUklBX0JBRF9JTlBVVF9EQVRBOworICAgIH0KKworICAgIHdoaWxlIChsZW5ndGgtLSkgeworICAgICAgICBpZiAobiA9PSAwKSB7CisgICAgICAgICAgICBtYmVkdGxzX2FyaWFfY3J5cHRfZWNiKGN0eCwgbm9uY2VfY291bnRlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RyZWFtX2Jsb2NrKTsKKworICAgICAgICAgICAgZm9yIChpID0gTUJFRFRMU19BUklBX0JMT0NLU0laRTsgaSA+IDA7IGktLSkgeworICAgICAgICAgICAgICAgIGlmICgrK25vbmNlX2NvdW50ZXJbaSAtIDFdICE9IDApIHsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGMgPSAqaW5wdXQrKzsKKyAgICAgICAgKm91dHB1dCsrID0gKHVuc2lnbmVkIGNoYXIpIChjIF4gc3RyZWFtX2Jsb2NrW25dKTsKKworICAgICAgICBuID0gKG4gKyAxKSAmIDB4MEY7CisgICAgfQorCisgICAgKm5jX29mZiA9IG47CisKKyAgICByZXR1cm4gMDsKK30KKyNlbmRpZiAvKiBNQkVEVExTX0NJUEhFUl9NT0RFX0NUUiAqLworCisjaWYgZGVmaW5lZChNQkVEVExTX1NFTEZfVEVTVCkKKworLyoKKyAqIEJhc2ljIEFSSUEgRUNCIHRlc3QgdmVjdG9ycyBmcm9tIFJGQyA1Nzk0CisgKi8KK3N0YXRpYyBjb25zdCB1aW50OF90IGFyaWFfdGVzdDFfZWNiX2tleVszMl0gPSAgICAgICAgICAgLy8gdGVzdCBrZXkKK3sKKyAgICAweDAwLCAweDAxLCAweDAyLCAweDAzLCAweDA0LCAweDA1LCAweDA2LCAweDA3LCAgICAgLy8gMTI4IGJpdAorICAgIDB4MDgsIDB4MDksIDB4MEEsIDB4MEIsIDB4MEMsIDB4MEQsIDB4MEUsIDB4MEYsCisgICAgMHgxMCwgMHgxMSwgMHgxMiwgMHgxMywgMHgxNCwgMHgxNSwgMHgxNiwgMHgxNywgICAgIC8vIDE5MiBiaXQKKyAgICAweDE4LCAweDE5LCAweDFBLCAweDFCLCAweDFDLCAweDFELCAweDFFLCAweDFGICAgICAgLy8gMjU2IGJpdAorfTsKKworc3RhdGljIGNvbnN0IHVpbnQ4X3QgYXJpYV90ZXN0MV9lY2JfcHRbTUJFRFRMU19BUklBX0JMT0NLU0laRV0gPSAgICAgICAgICAgIC8vIHBsYWludGV4dAoreworICAgIDB4MDAsIDB4MTEsIDB4MjIsIDB4MzMsIDB4NDQsIDB4NTUsIDB4NjYsIDB4NzcsICAgICAvLyBzYW1lIGZvciBhbGwKKyAgICAweDg4LCAweDk5LCAweEFBLCAweEJCLCAweENDLCAweERELCAweEVFLCAweEZGICAgICAgLy8ga2V5IHNpemVzCit9OworCitzdGF0aWMgY29uc3QgdWludDhfdCBhcmlhX3Rlc3QxX2VjYl9jdFszXVtNQkVEVExTX0FSSUFfQkxPQ0tTSVpFXSA9ICAgICAgICAgLy8gY2lwaGVydGV4dAoreworICAgIHsgMHhENywgMHgxOCwgMHhGQiwgMHhENiwgMHhBQiwgMHg2NCwgMHg0QywgMHg3MywgICAvLyAxMjggYml0CisgICAgICAweDlELCAweEE5LCAweDVGLCAweDNCLCAweEU2LCAweDQ1LCAweDE3LCAweDc4IH0sCisgICAgeyAweDI2LCAweDQ0LCAweDlDLCAweDE4LCAweDA1LCAweERCLCAweEU3LCAweEFBLCAgIC8vIDE5MiBiaXQKKyAgICAgIDB4MjUsIDB4QTQsIDB4NjgsIDB4Q0UsIDB4MjYsIDB4M0EsIDB4OUUsIDB4NzkgfSwKKyAgICB7IDB4RjksIDB4MkIsIDB4RDcsIDB4QzcsIDB4OUYsIDB4QjcsIDB4MkUsIDB4MkYsICAgLy8gMjU2IGJpdAorICAgICAgMHgyQiwgMHg4RiwgMHg4MCwgMHhDMSwgMHg5NywgMHgyRCwgMHgyNCwgMHhGQyB9Cit9OworCisvKgorICogTW9kZSB0ZXN0cyBmcm9tICJUZXN0IFZlY3RvcnMgZm9yIEFSSUEiICBWZXJzaW9uIDEuMAorICogaHR0cDovLzIxMC4xMDQuMzMuMTAvQVJJQS9kb2MvQVJJQS10ZXN0dmVjdG9yLWUucGRmCisgKi8KKyNpZiAoZGVmaW5lZChNQkVEVExTX0NJUEhFUl9NT0RFX0NCQykgfHwgZGVmaW5lZChNQkVEVExTX0NJUEhFUl9NT0RFX0NGQikgfHwgXAorICAgIGRlZmluZWQoTUJFRFRMU19DSVBIRVJfTU9ERV9DVFIpKQorc3RhdGljIGNvbnN0IHVpbnQ4X3QgYXJpYV90ZXN0Ml9rZXlbMzJdID0KK3sKKyAgICAweDAwLCAweDExLCAweDIyLCAweDMzLCAweDQ0LCAweDU1LCAweDY2LCAweDc3LCAgICAgLy8gMTI4IGJpdAorICAgIDB4ODgsIDB4OTksIDB4YWEsIDB4YmIsIDB4Y2MsIDB4ZGQsIDB4ZWUsIDB4ZmYsCisgICAgMHgwMCwgMHgxMSwgMHgyMiwgMHgzMywgMHg0NCwgMHg1NSwgMHg2NiwgMHg3NywgICAgIC8vIDE5MiBiaXQKKyAgICAweDg4LCAweDk5LCAweGFhLCAweGJiLCAweGNjLCAweGRkLCAweGVlLCAweGZmICAgICAgLy8gMjU2IGJpdAorfTsKKworc3RhdGljIGNvbnN0IHVpbnQ4X3QgYXJpYV90ZXN0Ml9wdFs0OF0gPQoreworICAgIDB4MTEsIDB4MTEsIDB4MTEsIDB4MTEsIDB4YWEsIDB4YWEsIDB4YWEsIDB4YWEsICAgICAvLyBzYW1lIGZvciBhbGwKKyAgICAweDExLCAweDExLCAweDExLCAweDExLCAweGJiLCAweGJiLCAweGJiLCAweGJiLAorICAgIDB4MTEsIDB4MTEsIDB4MTEsIDB4MTEsIDB4Y2MsIDB4Y2MsIDB4Y2MsIDB4Y2MsCisgICAgMHgxMSwgMHgxMSwgMHgxMSwgMHgxMSwgMHhkZCwgMHhkZCwgMHhkZCwgMHhkZCwKKyAgICAweDIyLCAweDIyLCAweDIyLCAweDIyLCAweGFhLCAweGFhLCAweGFhLCAweGFhLAorICAgIDB4MjIsIDB4MjIsIDB4MjIsIDB4MjIsIDB4YmIsIDB4YmIsIDB4YmIsIDB4YmIsCit9OworI2VuZGlmCisKKyNpZiAoZGVmaW5lZChNQkVEVExTX0NJUEhFUl9NT0RFX0NCQykgfHwgZGVmaW5lZChNQkVEVExTX0NJUEhFUl9NT0RFX0NGQikpCitzdGF0aWMgY29uc3QgdWludDhfdCBhcmlhX3Rlc3QyX2l2W01CRURUTFNfQVJJQV9CTE9DS1NJWkVdID0KK3sKKyAgICAweDBmLCAweDFlLCAweDJkLCAweDNjLCAweDRiLCAweDVhLCAweDY5LCAweDc4LCAgICAgLy8gc2FtZSBmb3IgQ0JDLCBDRkIKKyAgICAweDg3LCAweDk2LCAweGE1LCAweGI0LCAweGMzLCAweGQyLCAweGUxLCAweGYwICAgICAgLy8gQ1RSIGhhcyB6ZXJvIElWCit9OworI2VuZGlmCisKKyNpZiBkZWZpbmVkKE1CRURUTFNfQ0lQSEVSX01PREVfQ0JDKQorc3RhdGljIGNvbnN0IHVpbnQ4X3QgYXJpYV90ZXN0Ml9jYmNfY3RbM11bNDhdID0gICAgICAgICAvLyBDQkMgY2lwaGVydGV4dAoreworICAgIHsgMHg0OSwgMHhkNiwgMHgxOCwgMHg2MCwgMHhiMSwgMHg0OSwgMHgwOSwgMHgxMCwgICAvLyAxMjgtYml0IGtleQorICAgICAgMHg5YywgMHhlZiwgMHgwZCwgMHgyMiwgMHhhOSwgMHgyNiwgMHg4MSwgMHgzNCwKKyAgICAgIDB4ZmEsIDB4ZGYsIDB4OWYsIDB4YjIsIDB4MzEsIDB4NTEsIDB4ZTksIDB4NjQsCisgICAgICAweDVmLCAweGJhLCAweDc1LCAweDAxLCAweDhiLCAweGRiLCAweDE1LCAweDM4LAorICAgICAgMHhiNSwgMHgzMywgMHgzNCwgMHg2MywgMHg0YiwgMHhiZiwgMHg3ZCwgMHg0YywKKyAgICAgIDB4ZDQsIDB4YjUsIDB4MzcsIDB4NzAsIDB4MzMsIDB4MDYsIDB4MGMsIDB4MTUgfSwKKyAgICB7IDB4YWYsIDB4ZTYsIDB4Y2YsIDB4MjMsIDB4OTcsIDB4NGIsIDB4NTMsIDB4M2MsICAgLy8gMTkyLWJpdCBrZXkKKyAgICAgIDB4NjcsIDB4MmEsIDB4ODIsIDB4NjIsIDB4NjQsIDB4ZWEsIDB4NzgsIDB4NWYsCisgICAgICAweDRlLCAweDRmLCAweDdmLCAweDc4LCAweDBkLCAweGM3LCAweGYzLCAweGYxLAorICAgICAgMHhlMCwgMHg5NiwgMHgyYiwgMHg4MCwgMHg5MCwgMHgyMywgMHg4NiwgMHhkNSwKKyAgICAgIDB4MTQsIDB4ZTksIDB4YzMsIDB4ZTcsIDB4NzIsIDB4NTksIDB4ZGUsIDB4OTIsCisgICAgICAweGRkLCAweDExLCAweDAyLCAweGZmLCAweGFiLCAweDA4LCAweDZjLCAweDFlIH0sCisgICAgeyAweDUyLCAweDNhLCAweDhhLCAweDgwLCAweDZhLCAweGU2LCAweDIxLCAweGYxLCAgIC8vIDI1Ni1iaXQga2V5CisgICAgICAweDU1LCAweGZkLCAweGQyLCAweDhkLCAweGJjLCAweDM0LCAweGUxLCAweGFiLAorICAgICAgMHg3YiwgMHg5YiwgMHg0MiwgMHg0MywgMHgyYSwgMHhkOCwgMHhiMiwgMHhlZiwKKyAgICAgIDB4YjksIDB4NmUsIDB4MjMsIDB4YjEsIDB4M2YsIDB4MGEsIDB4NmUsIDB4NTIsCisgICAgICAweGYzLCAweDYxLCAweDg1LCAweGQ1LCAweDBhLCAweGQwLCAweDAyLCAweGM1LAorICAgICAgMHhmNiwgMHgwMSwgMHhiZSwgMHhlNSwgMHg0OSwgMHgzZiwgMHgxMSwgMHg4YiB9Cit9OworI2VuZGlmIC8qIE1CRURUTFNfQ0lQSEVSX01PREVfQ0JDICovCisKKyNpZiBkZWZpbmVkKE1CRURUTFNfQ0lQSEVSX01PREVfQ0ZCKQorc3RhdGljIGNvbnN0IHVpbnQ4X3QgYXJpYV90ZXN0Ml9jZmJfY3RbM11bNDhdID0gICAgICAgICAvLyBDRkIgY2lwaGVydGV4dAoreworICAgIHsgMHgzNywgMHgyMCwgMHhlNSwgMHgzYiwgMHhhNywgMHhkNiwgMHgxNSwgMHgzOCwgICAvLyAxMjgtYml0IGtleQorICAgICAgMHgzNCwgMHgwNiwgMHhiMCwgMHg5ZiwgMHgwYSwgMHgwNSwgMHhhMiwgMHgwMCwKKyAgICAgIDB4YzAsIDB4N2MsIDB4MjEsIDB4ZTYsIDB4MzcsIDB4MGYsIDB4NDEsIDB4M2EsCisgICAgICAweDVkLCAweDEzLCAweDI1LCAweDAwLCAweGE2LCAweDgyLCAweDg1LCAweDAxLAorICAgICAgMHg3YywgMHg2MSwgMHhiNCwgMHgzNCwgMHhjNywgMHhiNywgMHhjYSwgMHg5NiwKKyAgICAgIDB4ODUsIDB4YTUsIDB4MTAsIDB4NzEsIDB4ODYsIDB4MWUsIDB4NGQsIDB4NGIgfSwKKyAgICB7IDB4NDEsIDB4NzEsIDB4ZjcsIDB4MTksIDB4MmIsIDB4ZjQsIDB4NDksIDB4NTQsICAgLy8gMTkyLWJpdCBrZXkKKyAgICAgIDB4OTQsIDB4ZDIsIDB4NzMsIDB4NjEsIDB4MjksIDB4NjQsIDB4MGYsIDB4NWMsCisgICAgICAweDRkLCAweDg3LCAweGE5LCAweGEyLCAweDEzLCAweDY2LCAweDRjLCAweDk0LAorICAgICAgMHg0OCwgMHg0NywgMHg3YywgMHg2ZSwgMHhjYywgMHgyMCwgMHgxMywgMHg1OSwKKyAgICAgIDB4OGQsIDB4OTcsIDB4NjYsIDB4OTUsIDB4MmQsIDB4ZDgsIDB4YzMsIDB4ODYsCisgICAgICAweDhmLCAweDE3LCAweGUzLCAweDZlLCAweGY2LCAweDZmLCAweGQ4LCAweDRiIH0sCisgICAgeyAweDI2LCAweDgzLCAweDQ3LCAweDA1LCAweGIwLCAweGYyLCAweGMwLCAweGUyLCAgIC8vIDI1Ni1iaXQga2V5CisgICAgICAweDU4LCAweDhkLCAweDRhLCAweDdmLCAweDA5LCAweDAwLCAweDk2LCAweDM1LAorICAgICAgMHhmMiwgMHg4YiwgMHhiOSwgMHgzZCwgMHg4YywgMHgzMSwgMHhmOCwgMHg3MCwKKyAgICAgIDB4ZWMsIDB4MWUsIDB4MGIsIDB4ZGIsIDB4MDgsIDB4MmIsIDB4NjYsIDB4ZmEsCisgICAgICAweDQwLCAweDJkLCAweGQ5LCAweGMyLCAweDAyLCAweGJlLCAweDMwLCAweDBjLAorICAgICAgMHg0NSwgMHgxNywgMHhkMSwgMHg5NiwgMHhiMSwgMHg0ZCwgMHg0YywgMHhlMSB9Cit9OworI2VuZGlmIC8qIE1CRURUTFNfQ0lQSEVSX01PREVfQ0ZCICovCisKKyNpZiBkZWZpbmVkKE1CRURUTFNfQ0lQSEVSX01PREVfQ1RSKQorc3RhdGljIGNvbnN0IHVpbnQ4X3QgYXJpYV90ZXN0Ml9jdHJfY3RbM11bNDhdID0gICAgICAgICAvLyBDVFIgY2lwaGVydGV4dAoreworICAgIHsgMHhhYywgMHg1ZCwgMHg3ZCwgMHhlOCwgMHgwNSwgMHhhMCwgMHhiZiwgMHgxYywgICAvLyAxMjgtYml0IGtleQorICAgICAgMHg1NywgMHhjOCwgMHg1NCwgMHg1MCwgMHgxYSwgMHhmNiwgMHgwZiwgMHhhMSwKKyAgICAgIDB4MTQsIDB4OTcsIDB4ZTIsIDB4YTMsIDB4NDUsIDB4MTksIDB4ZGUsIDB4YTEsCisgICAgICAweDU2LCAweDllLCAweDkxLCAweGU1LCAweGI1LCAweGNjLCAweGFlLCAweDJmLAorICAgICAgMHhmMywgMHhiZiwgMHhhMSwgMHhiZiwgMHg5NywgMHg1ZiwgMHg0NSwgMHg3MSwKKyAgICAgIDB4ZjQsIDB4OGIsIDB4ZTEsIDB4OTEsIDB4NjEsIDB4MzUsIDB4NDYsIDB4YzMgfSwKKyAgICB7IDB4MDgsIDB4NjIsIDB4NWMsIDB4YTgsIDB4ZmUsIDB4NTYsIDB4OWMsIDB4MTksICAgLy8gMTkyLWJpdCBrZXkKKyAgICAgIDB4YmEsIDB4N2EsIDB4ZjMsIDB4NzYsIDB4MGEsIDB4NmUsIDB4ZDEsIDB4Y2UsCisgICAgICAweGY0LCAweGQxLCAweDk5LCAweDI2LCAweDNlLCAweDk5LCAweDlkLCAweGRlLAorICAgICAgMHgxNCwgMHgwOCwgMHgyZCwgMHhiYiwgMHhhNywgMHg1NiwgMHgwYiwgMHg3OSwKKyAgICAgIDB4YTQsIDB4YzYsIDB4YjQsIDB4NTYsIDB4YjgsIDB4NzAsIDB4N2QsIDB4Y2UsCisgICAgICAweDc1LCAweDFmLCAweDk4LCAweDU0LCAweGYxLCAweDg4LCAweDkzLCAweGRmIH0sCisgICAgeyAweDMwLCAweDAyLCAweDZjLCAweDMyLCAweDk2LCAweDY2LCAweDE0LCAweDE3LCAgIC8vIDI1Ni1iaXQga2V5CisgICAgICAweDIxLCAweDE3LCAweDhiLCAweDk5LCAweGMwLCAweGExLCAweGYxLCAweGIyLAorICAgICAgMHhmMCwgMHg2OSwgMHg0MCwgMHgyNSwgMHgzZiwgMHg3YiwgMHgzMCwgMHg4OSwKKyAgICAgIDB4ZTIsIDB4YTMsIDB4MGUsIDB4YTgsIDB4NmEsIDB4YTMsIDB4YzgsIDB4OGYsCisgICAgICAweDU5LCAweDQwLCAweGYwLCAweDVhLCAweGQ3LCAweGVlLCAweDQxLCAweGQ3LAorICAgICAgMHgxMywgMHg0NywgMHhiYiwgMHg3MiwgMHg2MSwgMHhlMywgMHg0OCwgMHhmMSB9Cit9OworI2VuZGlmIC8qIE1CRURUTFNfQ0lQSEVSX01PREVfQ0ZCICovCisKKyNkZWZpbmUgQVJJQV9TRUxGX1RFU1RfQVNTRVJUKGNvbmQpICAgICAgICAgICAgICAgICAgIFwKKyAgICBkbyB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgIGlmIChjb25kKSB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgICAgICBpZiAodmVyYm9zZSkgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgICAgICBtYmVkdGxzX3ByaW50ZigiZmFpbGVkXG4iKTsgICAgICAgXAorICAgICAgICAgICAgZ290byBleGl0OyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgfSBlbHNlIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgICAgICBpZiAodmVyYm9zZSkgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgICAgICBtYmVkdGxzX3ByaW50ZigicGFzc2VkXG4iKTsgICAgICAgXAorICAgICAgICB9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICB9IHdoaWxlICgwKQorCisvKgorICogQ2hlY2t1cCByb3V0aW5lCisgKi8KK2ludCBtYmVkdGxzX2FyaWFfc2VsZl90ZXN0KGludCB2ZXJib3NlKQoreworICAgIGludCBpOworICAgIHVpbnQ4X3QgYmxrW01CRURUTFNfQVJJQV9CTE9DS1NJWkVdOworICAgIG1iZWR0bHNfYXJpYV9jb250ZXh0IGN0eDsKKyAgICBpbnQgcmV0ID0gMTsKKworI2lmIChkZWZpbmVkKE1CRURUTFNfQ0lQSEVSX01PREVfQ0ZCKSB8fCBkZWZpbmVkKE1CRURUTFNfQ0lQSEVSX01PREVfQ1RSKSkKKyAgICBzaXplX3QgajsKKyNlbmRpZgorCisjaWYgKGRlZmluZWQoTUJFRFRMU19DSVBIRVJfTU9ERV9DQkMpIHx8IFwKKyAgICBkZWZpbmVkKE1CRURUTFNfQ0lQSEVSX01PREVfQ0ZCKSB8fCBcCisgICAgZGVmaW5lZChNQkVEVExTX0NJUEhFUl9NT0RFX0NUUikpCisgICAgdWludDhfdCBidWZbNDhdLCBpdltNQkVEVExTX0FSSUFfQkxPQ0tTSVpFXTsKKyNlbmRpZgorCisgICAgbWJlZHRsc19hcmlhX2luaXQoJmN0eCk7CisKKyAgICAvKgorICAgICAqIFRlc3Qgc2V0IDEKKyAgICAgKi8KKyAgICBmb3IgKGkgPSAwOyBpIDwgMzsgaSsrKSB7CisgICAgICAgIC8qIHRlc3QgRUNCIGVuY3J5cHRpb24gKi8KKyAgICAgICAgaWYgKHZlcmJvc2UpIHsKKyAgICAgICAgICAgIG1iZWR0bHNfcHJpbnRmKCIgIEFSSUEtRUNCLSVkIChlbmMpOiAiLCAxMjggKyA2NCAqIGkpOworICAgICAgICB9CisgICAgICAgIG1iZWR0bHNfYXJpYV9zZXRrZXlfZW5jKCZjdHgsIGFyaWFfdGVzdDFfZWNiX2tleSwgMTI4ICsgNjQgKiBpKTsKKyAgICAgICAgbWJlZHRsc19hcmlhX2NyeXB0X2VjYigmY3R4LCBhcmlhX3Rlc3QxX2VjYl9wdCwgYmxrKTsKKyAgICAgICAgQVJJQV9TRUxGX1RFU1RfQVNTRVJUKAorICAgICAgICAgICAgbWVtY21wKGJsaywgYXJpYV90ZXN0MV9lY2JfY3RbaV0sIE1CRURUTFNfQVJJQV9CTE9DS1NJWkUpCisgICAgICAgICAgICAhPSAwKTsKKworICAgICAgICAvKiB0ZXN0IEVDQiBkZWNyeXB0aW9uICovCisgICAgICAgIGlmICh2ZXJib3NlKSB7CisgICAgICAgICAgICBtYmVkdGxzX3ByaW50ZigiICBBUklBLUVDQi0lZCAoZGVjKTogIiwgMTI4ICsgNjQgKiBpKTsKKyNpZiBkZWZpbmVkKE1CRURUTFNfQkxPQ0tfQ0lQSEVSX05PX0RFQ1JZUFQpCisgICAgICAgICAgICBtYmVkdGxzX3ByaW50Zigic2tpcHBlZFxuIik7CisjZW5kaWYKKyAgICAgICAgfQorCisjaWYgIWRlZmluZWQoTUJFRFRMU19CTE9DS19DSVBIRVJfTk9fREVDUllQVCkKKyAgICAgICAgbWJlZHRsc19hcmlhX3NldGtleV9kZWMoJmN0eCwgYXJpYV90ZXN0MV9lY2Jfa2V5LCAxMjggKyA2NCAqIGkpOworICAgICAgICBtYmVkdGxzX2FyaWFfY3J5cHRfZWNiKCZjdHgsIGFyaWFfdGVzdDFfZWNiX2N0W2ldLCBibGspOworICAgICAgICBBUklBX1NFTEZfVEVTVF9BU1NFUlQoCisgICAgICAgICAgICBtZW1jbXAoYmxrLCBhcmlhX3Rlc3QxX2VjYl9wdCwgTUJFRFRMU19BUklBX0JMT0NLU0laRSkKKyAgICAgICAgICAgICE9IDApOworI2VuZGlmCisgICAgfQorICAgIGlmICh2ZXJib3NlKSB7CisgICAgICAgIG1iZWR0bHNfcHJpbnRmKCJcbiIpOworICAgIH0KKworICAgIC8qCisgICAgICogVGVzdCBzZXQgMgorICAgICAqLworI2lmIGRlZmluZWQoTUJFRFRMU19DSVBIRVJfTU9ERV9DQkMpCisgICAgZm9yIChpID0gMDsgaSA8IDM7IGkrKykgeworICAgICAgICAvKiBUZXN0IENCQyBlbmNyeXB0aW9uICovCisgICAgICAgIGlmICh2ZXJib3NlKSB7CisgICAgICAgICAgICBtYmVkdGxzX3ByaW50ZigiICBBUklBLUNCQy0lZCAoZW5jKTogIiwgMTI4ICsgNjQgKiBpKTsKKyAgICAgICAgfQorICAgICAgICBtYmVkdGxzX2FyaWFfc2V0a2V5X2VuYygmY3R4LCBhcmlhX3Rlc3QyX2tleSwgMTI4ICsgNjQgKiBpKTsKKyAgICAgICAgbWVtY3B5KGl2LCBhcmlhX3Rlc3QyX2l2LCBNQkVEVExTX0FSSUFfQkxPQ0tTSVpFKTsKKyAgICAgICAgbWVtc2V0KGJ1ZiwgMHg1NSwgc2l6ZW9mKGJ1ZikpOworICAgICAgICBtYmVkdGxzX2FyaWFfY3J5cHRfY2JjKCZjdHgsIE1CRURUTFNfQVJJQV9FTkNSWVBULCA0OCwgaXYsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJpYV90ZXN0Ml9wdCwgYnVmKTsKKyAgICAgICAgQVJJQV9TRUxGX1RFU1RfQVNTRVJUKG1lbWNtcChidWYsIGFyaWFfdGVzdDJfY2JjX2N0W2ldLCA0OCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICE9IDApOworCisgICAgICAgIC8qIFRlc3QgQ0JDIGRlY3J5cHRpb24gKi8KKyAgICAgICAgaWYgKHZlcmJvc2UpIHsKKyAgICAgICAgICAgIG1iZWR0bHNfcHJpbnRmKCIgIEFSSUEtQ0JDLSVkIChkZWMpOiAiLCAxMjggKyA2NCAqIGkpOworICAgICAgICB9CisgICAgICAgIG1iZWR0bHNfYXJpYV9zZXRrZXlfZGVjKCZjdHgsIGFyaWFfdGVzdDJfa2V5LCAxMjggKyA2NCAqIGkpOworICAgICAgICBtZW1jcHkoaXYsIGFyaWFfdGVzdDJfaXYsIE1CRURUTFNfQVJJQV9CTE9DS1NJWkUpOworICAgICAgICBtZW1zZXQoYnVmLCAweEFBLCBzaXplb2YoYnVmKSk7CisgICAgICAgIG1iZWR0bHNfYXJpYV9jcnlwdF9jYmMoJmN0eCwgTUJFRFRMU19BUklBX0RFQ1JZUFQsIDQ4LCBpdiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmlhX3Rlc3QyX2NiY19jdFtpXSwgYnVmKTsKKyAgICAgICAgQVJJQV9TRUxGX1RFU1RfQVNTRVJUKG1lbWNtcChidWYsIGFyaWFfdGVzdDJfcHQsIDQ4KSAhPSAwKTsKKyAgICB9CisgICAgaWYgKHZlcmJvc2UpIHsKKyAgICAgICAgbWJlZHRsc19wcmludGYoIlxuIik7CisgICAgfQorCisjZW5kaWYgLyogTUJFRFRMU19DSVBIRVJfTU9ERV9DQkMgKi8KKworI2lmIGRlZmluZWQoTUJFRFRMU19DSVBIRVJfTU9ERV9DRkIpCisgICAgZm9yIChpID0gMDsgaSA8IDM7IGkrKykgeworICAgICAgICAvKiBUZXN0IENGQiBlbmNyeXB0aW9uICovCisgICAgICAgIGlmICh2ZXJib3NlKSB7CisgICAgICAgICAgICBtYmVkdGxzX3ByaW50ZigiICBBUklBLUNGQi0lZCAoZW5jKTogIiwgMTI4ICsgNjQgKiBpKTsKKyAgICAgICAgfQorICAgICAgICBtYmVkdGxzX2FyaWFfc2V0a2V5X2VuYygmY3R4LCBhcmlhX3Rlc3QyX2tleSwgMTI4ICsgNjQgKiBpKTsKKyAgICAgICAgbWVtY3B5KGl2LCBhcmlhX3Rlc3QyX2l2LCBNQkVEVExTX0FSSUFfQkxPQ0tTSVpFKTsKKyAgICAgICAgbWVtc2V0KGJ1ZiwgMHg1NSwgc2l6ZW9mKGJ1ZikpOworICAgICAgICBqID0gMDsKKyAgICAgICAgbWJlZHRsc19hcmlhX2NyeXB0X2NmYjEyOCgmY3R4LCBNQkVEVExTX0FSSUFfRU5DUllQVCwgNDgsICZqLCBpdiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmlhX3Rlc3QyX3B0LCBidWYpOworICAgICAgICBBUklBX1NFTEZfVEVTVF9BU1NFUlQobWVtY21wKGJ1ZiwgYXJpYV90ZXN0Ml9jZmJfY3RbaV0sIDQ4KSAhPSAwKTsKKworICAgICAgICAvKiBUZXN0IENGQiBkZWNyeXB0aW9uICovCisgICAgICAgIGlmICh2ZXJib3NlKSB7CisgICAgICAgICAgICBtYmVkdGxzX3ByaW50ZigiICBBUklBLUNGQi0lZCAoZGVjKTogIiwgMTI4ICsgNjQgKiBpKTsKKyAgICAgICAgfQorICAgICAgICBtYmVkdGxzX2FyaWFfc2V0a2V5X2VuYygmY3R4LCBhcmlhX3Rlc3QyX2tleSwgMTI4ICsgNjQgKiBpKTsKKyAgICAgICAgbWVtY3B5KGl2LCBhcmlhX3Rlc3QyX2l2LCBNQkVEVExTX0FSSUFfQkxPQ0tTSVpFKTsKKyAgICAgICAgbWVtc2V0KGJ1ZiwgMHhBQSwgc2l6ZW9mKGJ1ZikpOworICAgICAgICBqID0gMDsKKyAgICAgICAgbWJlZHRsc19hcmlhX2NyeXB0X2NmYjEyOCgmY3R4LCBNQkVEVExTX0FSSUFfREVDUllQVCwgNDgsICZqLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGl2LCBhcmlhX3Rlc3QyX2NmYl9jdFtpXSwgYnVmKTsKKyAgICAgICAgQVJJQV9TRUxGX1RFU1RfQVNTRVJUKG1lbWNtcChidWYsIGFyaWFfdGVzdDJfcHQsIDQ4KSAhPSAwKTsKKyAgICB9CisgICAgaWYgKHZlcmJvc2UpIHsKKyAgICAgICAgbWJlZHRsc19wcmludGYoIlxuIik7CisgICAgfQorI2VuZGlmIC8qIE1CRURUTFNfQ0lQSEVSX01PREVfQ0ZCICovCisKKyNpZiBkZWZpbmVkKE1CRURUTFNfQ0lQSEVSX01PREVfQ1RSKQorICAgIGZvciAoaSA9IDA7IGkgPCAzOyBpKyspIHsKKyAgICAgICAgLyogVGVzdCBDVFIgZW5jcnlwdGlvbiAqLworICAgICAgICBpZiAodmVyYm9zZSkgeworICAgICAgICAgICAgbWJlZHRsc19wcmludGYoIiAgQVJJQS1DVFItJWQgKGVuYyk6ICIsIDEyOCArIDY0ICogaSk7CisgICAgICAgIH0KKyAgICAgICAgbWJlZHRsc19hcmlhX3NldGtleV9lbmMoJmN0eCwgYXJpYV90ZXN0Ml9rZXksIDEyOCArIDY0ICogaSk7CisgICAgICAgIG1lbXNldChpdiwgMCwgTUJFRFRMU19BUklBX0JMT0NLU0laRSk7ICAgICAgICAgICAgICAgICAgICAgIC8vIElWID0gMAorICAgICAgICBtZW1zZXQoYnVmLCAweDU1LCBzaXplb2YoYnVmKSk7CisgICAgICAgIGogPSAwOworICAgICAgICBtYmVkdGxzX2FyaWFfY3J5cHRfY3RyKCZjdHgsIDQ4LCAmaiwgaXYsIGJsaywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmlhX3Rlc3QyX3B0LCBidWYpOworICAgICAgICBBUklBX1NFTEZfVEVTVF9BU1NFUlQobWVtY21wKGJ1ZiwgYXJpYV90ZXN0Ml9jdHJfY3RbaV0sIDQ4KSAhPSAwKTsKKworICAgICAgICAvKiBUZXN0IENUUiBkZWNyeXB0aW9uICovCisgICAgICAgIGlmICh2ZXJib3NlKSB7CisgICAgICAgICAgICBtYmVkdGxzX3ByaW50ZigiICBBUklBLUNUUi0lZCAoZGVjKTogIiwgMTI4ICsgNjQgKiBpKTsKKyAgICAgICAgfQorICAgICAgICBtYmVkdGxzX2FyaWFfc2V0a2V5X2VuYygmY3R4LCBhcmlhX3Rlc3QyX2tleSwgMTI4ICsgNjQgKiBpKTsKKyAgICAgICAgbWVtc2V0KGl2LCAwLCBNQkVEVExTX0FSSUFfQkxPQ0tTSVpFKTsgICAgICAgICAgICAgICAgICAgICAgLy8gSVYgPSAwCisgICAgICAgIG1lbXNldChidWYsIDB4QUEsIHNpemVvZihidWYpKTsKKyAgICAgICAgaiA9IDA7CisgICAgICAgIG1iZWR0bHNfYXJpYV9jcnlwdF9jdHIoJmN0eCwgNDgsICZqLCBpdiwgYmxrLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyaWFfdGVzdDJfY3RyX2N0W2ldLCBidWYpOworICAgICAgICBBUklBX1NFTEZfVEVTVF9BU1NFUlQobWVtY21wKGJ1ZiwgYXJpYV90ZXN0Ml9wdCwgNDgpICE9IDApOworICAgIH0KKyAgICBpZiAodmVyYm9zZSkgeworICAgICAgICBtYmVkdGxzX3ByaW50ZigiXG4iKTsKKyAgICB9CisjZW5kaWYgLyogTUJFRFRMU19DSVBIRVJfTU9ERV9DVFIgKi8KKworICAgIHJldCA9IDA7CisKK2V4aXQ6CisgICAgbWJlZHRsc19hcmlhX2ZyZWUoJmN0eCk7CisgICAgcmV0dXJuIHJldDsKK30KKworI2VuZGlmIC8qIE1CRURUTFNfU0VMRl9URVNUICovCisKKyNlbmRpZiAvKiBNQkVEVExTX0FSSUFfQyAqLwpkaWZmIC0tZ2l0IGEvbGlicmFyeS9hc24xcGFyc2UuYyBiL3RmLXBzYS1jcnlwdG8vZHJpdmVycy9idWlsdGluL3NyYy9hc24xcGFyc2UuYwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gbGlicmFyeS9hc24xcGFyc2UuYwpyZW5hbWUgdG8gdGYtcHNhLWNyeXB0by9kcml2ZXJzL2J1aWx0aW4vc3JjL2FzbjFwYXJzZS5jCmRpZmYgLS1naXQgYS9saWJyYXJ5L2FzbjF3cml0ZS5jIGIvdGYtcHNhLWNyeXB0by9kcml2ZXJzL2J1aWx0aW4vc3JjL2FzbjF3cml0ZS5jCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBsaWJyYXJ5L2FzbjF3cml0ZS5jCnJlbmFtZSB0byB0Zi1wc2EtY3J5cHRvL2RyaXZlcnMvYnVpbHRpbi9zcmMvYXNuMXdyaXRlLmMKZGlmZiAtLWdpdCBhL2xpYnJhcnkvYmFzZTY0LmMgYi90Zi1wc2EtY3J5cHRvL2RyaXZlcnMvYnVpbHRpbi9zcmMvYmFzZTY0LmMKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIGxpYnJhcnkvYmFzZTY0LmMKcmVuYW1lIHRvIHRmLXBzYS1jcnlwdG8vZHJpdmVycy9idWlsdGluL3NyYy9iYXNlNjQuYwpkaWZmIC0tZ2l0IGEvbGlicmFyeS9iYXNlNjRfaW50ZXJuYWwuaCBiL3RmLXBzYS1jcnlwdG8vZHJpdmVycy9idWlsdGluL3NyYy9iYXNlNjRfaW50ZXJuYWwuaApzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gbGlicmFyeS9iYXNlNjRfaW50ZXJuYWwuaApyZW5hbWUgdG8gdGYtcHNhLWNyeXB0by9kcml2ZXJzL2J1aWx0aW4vc3JjL2Jhc2U2NF9pbnRlcm5hbC5oCmRpZmYgLS1naXQgYS9saWJyYXJ5L2JpZ251bS5jIGIvdGYtcHNhLWNyeXB0by9kcml2ZXJzL2J1aWx0aW4vc3JjL2JpZ251bS5jCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBsaWJyYXJ5L2JpZ251bS5jCnJlbmFtZSB0byB0Zi1wc2EtY3J5cHRvL2RyaXZlcnMvYnVpbHRpbi9zcmMvYmlnbnVtLmMKZGlmZiAtLWdpdCBhL2xpYnJhcnkvYmlnbnVtX2NvcmUuYyBiL3RmLXBzYS1jcnlwdG8vZHJpdmVycy9idWlsdGluL3NyYy9iaWdudW1fY29yZS5jCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBsaWJyYXJ5L2JpZ251bV9jb3JlLmMKcmVuYW1lIHRvIHRmLXBzYS1jcnlwdG8vZHJpdmVycy9idWlsdGluL3NyYy9iaWdudW1fY29yZS5jCmRpZmYgLS1naXQgYS9saWJyYXJ5L2JpZ251bV9jb3JlLmggYi90Zi1wc2EtY3J5cHRvL2RyaXZlcnMvYnVpbHRpbi9zcmMvYmlnbnVtX2NvcmUuaApzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gbGlicmFyeS9iaWdudW1fY29yZS5oCnJlbmFtZSB0byB0Zi1wc2EtY3J5cHRvL2RyaXZlcnMvYnVpbHRpbi9zcmMvYmlnbnVtX2NvcmUuaApkaWZmIC0tZ2l0IGEvbGlicmFyeS9iaWdudW1fbW9kLmMgYi90Zi1wc2EtY3J5cHRvL2RyaXZlcnMvYnVpbHRpbi9zcmMvYmlnbnVtX21vZC5jCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBsaWJyYXJ5L2JpZ251bV9tb2QuYwpyZW5hbWUgdG8gdGYtcHNhLWNyeXB0by9kcml2ZXJzL2J1aWx0aW4vc3JjL2JpZ251bV9tb2QuYwpkaWZmIC0tZ2l0IGEvbGlicmFyeS9iaWdudW1fbW9kLmggYi90Zi1wc2EtY3J5cHRvL2RyaXZlcnMvYnVpbHRpbi9zcmMvYmlnbnVtX21vZC5oCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBsaWJyYXJ5L2JpZ251bV9tb2QuaApyZW5hbWUgdG8gdGYtcHNhLWNyeXB0by9kcml2ZXJzL2J1aWx0aW4vc3JjL2JpZ251bV9tb2QuaApkaWZmIC0tZ2l0IGEvbGlicmFyeS9iaWdudW1fbW9kX3Jhdy5jIGIvdGYtcHNhLWNyeXB0by9kcml2ZXJzL2J1aWx0aW4vc3JjL2JpZ251bV9tb2RfcmF3LmMKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIGxpYnJhcnkvYmlnbnVtX21vZF9yYXcuYwpyZW5hbWUgdG8gdGYtcHNhLWNyeXB0by9kcml2ZXJzL2J1aWx0aW4vc3JjL2JpZ251bV9tb2RfcmF3LmMKZGlmZiAtLWdpdCBhL2xpYnJhcnkvYmlnbnVtX21vZF9yYXcuaCBiL3RmLXBzYS1jcnlwdG8vZHJpdmVycy9idWlsdGluL3NyYy9iaWdudW1fbW9kX3Jhdy5oCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBsaWJyYXJ5L2JpZ251bV9tb2RfcmF3LmgKcmVuYW1lIHRvIHRmLXBzYS1jcnlwdG8vZHJpdmVycy9idWlsdGluL3NyYy9iaWdudW1fbW9kX3Jhdy5oCmRpZmYgLS1naXQgYS9saWJyYXJ5L2JpZ251bV9tb2RfcmF3X2ludmFzaXZlLmggYi90Zi1wc2EtY3J5cHRvL2RyaXZlcnMvYnVpbHRpbi9zcmMvYmlnbnVtX21vZF9yYXdfaW52YXNpdmUuaApzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gbGlicmFyeS9iaWdudW1fbW9kX3Jhd19pbnZhc2l2ZS5oCnJlbmFtZSB0byB0Zi1wc2EtY3J5cHRvL2RyaXZlcnMvYnVpbHRpbi9zcmMvYmlnbnVtX21vZF9yYXdfaW52YXNpdmUuaApkaWZmIC0tZ2l0IGEvdGYtcHNhLWNyeXB0by9kcml2ZXJzL2J1aWx0aW4vc3JjL2Jsb2NrX2NpcGhlci5jIGIvdGYtcHNhLWNyeXB0by9kcml2ZXJzL2J1aWx0aW4vc3JjL2Jsb2NrX2NpcGhlci5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjUxY2RjZGYKLS0tIC9kZXYvbnVsbAorKysgYi90Zi1wc2EtY3J5cHRvL2RyaXZlcnMvYnVpbHRpbi9zcmMvYmxvY2tfY2lwaGVyLmMKQEAgLTAsMCArMSwyMDcgQEAKKy8qKgorICogXGZpbGUgYmxvY2tfY2lwaGVyLmMKKyAqCisgKiBcYnJpZWYgTGlnaHR3ZWlnaHQgYWJzdHJhY3Rpb24gbGF5ZXIgZm9yIGJsb2NrIGNpcGhlcnMgd2l0aCAxMjggYml0IGJsb2NrcywKKyAqIGZvciB1c2UgYnkgdGhlIEdDTSBhbmQgQ0NNIG1vZHVsZXMuCisgKi8KKy8qCisgKiAgQ29weXJpZ2h0IFRoZSBNYmVkIFRMUyBDb250cmlidXRvcnMKKyAqICBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMCBPUiBHUEwtMi4wLW9yLWxhdGVyCisgKi8KKworI2luY2x1ZGUgImNvbW1vbi5oIgorCisjaWYgZGVmaW5lZChNQkVEVExTX0JMT0NLX0NJUEhFUl9TT01FX1BTQSkKKyNpbmNsdWRlICJwc2EvY3J5cHRvLmgiCisjaW5jbHVkZSAicHNhX2NyeXB0b19jb3JlLmgiCisjaW5jbHVkZSAicHNhX3V0aWxfaW50ZXJuYWwuaCIKKyNlbmRpZgorCisjaW5jbHVkZSAiYmxvY2tfY2lwaGVyX2ludGVybmFsLmgiCisKKyNpZiBkZWZpbmVkKE1CRURUTFNfQkxPQ0tfQ0lQSEVSX0MpCisKKyNpZiBkZWZpbmVkKE1CRURUTFNfQkxPQ0tfQ0lQSEVSX1NPTUVfUFNBKQorc3RhdGljIHBzYV9rZXlfdHlwZV90IHBzYV9rZXlfdHlwZV9mcm9tX2Jsb2NrX2NpcGhlcl9pZChtYmVkdGxzX2Jsb2NrX2NpcGhlcl9pZF90IGNpcGhlcl9pZCkKK3sKKyAgICBzd2l0Y2ggKGNpcGhlcl9pZCkgeworI2lmIGRlZmluZWQoTUJFRFRMU19CTE9DS19DSVBIRVJfQUVTX1ZJQV9QU0EpCisgICAgICAgIGNhc2UgTUJFRFRMU19CTE9DS19DSVBIRVJfSURfQUVTOgorICAgICAgICAgICAgcmV0dXJuIFBTQV9LRVlfVFlQRV9BRVM7CisjZW5kaWYKKyNpZiBkZWZpbmVkKE1CRURUTFNfQkxPQ0tfQ0lQSEVSX0FSSUFfVklBX1BTQSkKKyAgICAgICAgY2FzZSBNQkVEVExTX0JMT0NLX0NJUEhFUl9JRF9BUklBOgorICAgICAgICAgICAgcmV0dXJuIFBTQV9LRVlfVFlQRV9BUklBOworI2VuZGlmCisjaWYgZGVmaW5lZChNQkVEVExTX0JMT0NLX0NJUEhFUl9DQU1FTExJQV9WSUFfUFNBKQorICAgICAgICBjYXNlIE1CRURUTFNfQkxPQ0tfQ0lQSEVSX0lEX0NBTUVMTElBOgorICAgICAgICAgICAgcmV0dXJuIFBTQV9LRVlfVFlQRV9DQU1FTExJQTsKKyNlbmRpZgorICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgcmV0dXJuIFBTQV9LRVlfVFlQRV9OT05FOworICAgIH0KK30KKworc3RhdGljIGludCBtYmVkdGxzX2NpcGhlcl9lcnJvcl9mcm9tX3BzYShwc2Ffc3RhdHVzX3Qgc3RhdHVzKQoreworICAgIHJldHVybiBQU0FfVE9fTUJFRFRMU19FUlJfTElTVChzdGF0dXMsIHBzYV90b19jaXBoZXJfZXJyb3JzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwc2FfZ2VuZXJpY19zdGF0dXNfdG9fbWJlZHRscyk7Cit9CisjZW5kaWYgLyogTUJFRFRMU19CTE9DS19DSVBIRVJfU09NRV9QU0EgKi8KKwordm9pZCBtYmVkdGxzX2Jsb2NrX2NpcGhlcl9mcmVlKG1iZWR0bHNfYmxvY2tfY2lwaGVyX2NvbnRleHRfdCAqY3R4KQoreworICAgIGlmIChjdHggPT0gTlVMTCkgeworICAgICAgICByZXR1cm47CisgICAgfQorCisjaWYgZGVmaW5lZChNQkVEVExTX0JMT0NLX0NJUEhFUl9TT01FX1BTQSkKKyAgICBpZiAoY3R4LT5lbmdpbmUgPT0gTUJFRFRMU19CTE9DS19DSVBIRVJfRU5HSU5FX1BTQSkgeworICAgICAgICBwc2FfZGVzdHJveV9rZXkoY3R4LT5wc2Ffa2V5X2lkKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyNlbmRpZgorICAgIHN3aXRjaCAoY3R4LT5pZCkgeworI2lmIGRlZmluZWQoTUJFRFRMU19BRVNfQykKKyAgICAgICAgY2FzZSBNQkVEVExTX0JMT0NLX0NJUEhFUl9JRF9BRVM6CisgICAgICAgICAgICBtYmVkdGxzX2Flc19mcmVlKCZjdHgtPmN0eC5hZXMpOworICAgICAgICAgICAgYnJlYWs7CisjZW5kaWYKKyNpZiBkZWZpbmVkKE1CRURUTFNfQVJJQV9DKQorICAgICAgICBjYXNlIE1CRURUTFNfQkxPQ0tfQ0lQSEVSX0lEX0FSSUE6CisgICAgICAgICAgICBtYmVkdGxzX2FyaWFfZnJlZSgmY3R4LT5jdHguYXJpYSk7CisgICAgICAgICAgICBicmVhazsKKyNlbmRpZgorI2lmIGRlZmluZWQoTUJFRFRMU19DQU1FTExJQV9DKQorICAgICAgICBjYXNlIE1CRURUTFNfQkxPQ0tfQ0lQSEVSX0lEX0NBTUVMTElBOgorICAgICAgICAgICAgbWJlZHRsc19jYW1lbGxpYV9mcmVlKCZjdHgtPmN0eC5jYW1lbGxpYSk7CisgICAgICAgICAgICBicmVhazsKKyNlbmRpZgorICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgYnJlYWs7CisgICAgfQorICAgIGN0eC0+aWQgPSBNQkVEVExTX0JMT0NLX0NJUEhFUl9JRF9OT05FOworfQorCitpbnQgbWJlZHRsc19ibG9ja19jaXBoZXJfc2V0dXAobWJlZHRsc19ibG9ja19jaXBoZXJfY29udGV4dF90ICpjdHgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWJlZHRsc19jaXBoZXJfaWRfdCBjaXBoZXJfaWQpCit7CisgICAgY3R4LT5pZCA9IChjaXBoZXJfaWQgPT0gTUJFRFRMU19DSVBIRVJfSURfQUVTKSA/IE1CRURUTFNfQkxPQ0tfQ0lQSEVSX0lEX0FFUyA6CisgICAgICAgICAgICAgIChjaXBoZXJfaWQgPT0gTUJFRFRMU19DSVBIRVJfSURfQVJJQSkgPyBNQkVEVExTX0JMT0NLX0NJUEhFUl9JRF9BUklBIDoKKyAgICAgICAgICAgICAgKGNpcGhlcl9pZCA9PSBNQkVEVExTX0NJUEhFUl9JRF9DQU1FTExJQSkgPyBNQkVEVExTX0JMT0NLX0NJUEhFUl9JRF9DQU1FTExJQSA6CisgICAgICAgICAgICAgIE1CRURUTFNfQkxPQ0tfQ0lQSEVSX0lEX05PTkU7CisKKyNpZiBkZWZpbmVkKE1CRURUTFNfQkxPQ0tfQ0lQSEVSX1NPTUVfUFNBKQorICAgIHBzYV9rZXlfdHlwZV90IHBzYV9rZXlfdHlwZSA9IHBzYV9rZXlfdHlwZV9mcm9tX2Jsb2NrX2NpcGhlcl9pZChjdHgtPmlkKTsKKyAgICBpZiAocHNhX2tleV90eXBlICE9IFBTQV9LRVlfVFlQRV9OT05FICYmCisgICAgICAgIHBzYV9jYW5fZG9fY2lwaGVyKHBzYV9rZXlfdHlwZSwgUFNBX0FMR19FQ0JfTk9fUEFERElORykpIHsKKyAgICAgICAgY3R4LT5lbmdpbmUgPSBNQkVEVExTX0JMT0NLX0NJUEhFUl9FTkdJTkVfUFNBOworICAgICAgICByZXR1cm4gMDsKKyAgICB9CisgICAgY3R4LT5lbmdpbmUgPSBNQkVEVExTX0JMT0NLX0NJUEhFUl9FTkdJTkVfTEVHQUNZOworI2VuZGlmCisKKyAgICBzd2l0Y2ggKGN0eC0+aWQpIHsKKyNpZiBkZWZpbmVkKE1CRURUTFNfQUVTX0MpCisgICAgICAgIGNhc2UgTUJFRFRMU19CTE9DS19DSVBIRVJfSURfQUVTOgorICAgICAgICAgICAgbWJlZHRsc19hZXNfaW5pdCgmY3R4LT5jdHguYWVzKTsKKyAgICAgICAgICAgIHJldHVybiAwOworI2VuZGlmCisjaWYgZGVmaW5lZChNQkVEVExTX0FSSUFfQykKKyAgICAgICAgY2FzZSBNQkVEVExTX0JMT0NLX0NJUEhFUl9JRF9BUklBOgorICAgICAgICAgICAgbWJlZHRsc19hcmlhX2luaXQoJmN0eC0+Y3R4LmFyaWEpOworICAgICAgICAgICAgcmV0dXJuIDA7CisjZW5kaWYKKyNpZiBkZWZpbmVkKE1CRURUTFNfQ0FNRUxMSUFfQykKKyAgICAgICAgY2FzZSBNQkVEVExTX0JMT0NLX0NJUEhFUl9JRF9DQU1FTExJQToKKyAgICAgICAgICAgIG1iZWR0bHNfY2FtZWxsaWFfaW5pdCgmY3R4LT5jdHguY2FtZWxsaWEpOworICAgICAgICAgICAgcmV0dXJuIDA7CisjZW5kaWYKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIGN0eC0+aWQgPSBNQkVEVExTX0JMT0NLX0NJUEhFUl9JRF9OT05FOworICAgICAgICAgICAgcmV0dXJuIE1CRURUTFNfRVJSX0NJUEhFUl9CQURfSU5QVVRfREFUQTsKKyAgICB9Cit9CisKK2ludCBtYmVkdGxzX2Jsb2NrX2NpcGhlcl9zZXRrZXkobWJlZHRsc19ibG9ja19jaXBoZXJfY29udGV4dF90ICpjdHgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgKmtleSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQga2V5X2JpdGxlbikKK3sKKyNpZiBkZWZpbmVkKE1CRURUTFNfQkxPQ0tfQ0lQSEVSX1NPTUVfUFNBKQorICAgIGlmIChjdHgtPmVuZ2luZSA9PSBNQkVEVExTX0JMT0NLX0NJUEhFUl9FTkdJTkVfUFNBKSB7CisgICAgICAgIHBzYV9rZXlfYXR0cmlidXRlc190IGtleV9hdHRyID0gUFNBX0tFWV9BVFRSSUJVVEVTX0lOSVQ7CisgICAgICAgIHBzYV9zdGF0dXNfdCBzdGF0dXM7CisKKyAgICAgICAgcHNhX3NldF9rZXlfdHlwZSgma2V5X2F0dHIsIHBzYV9rZXlfdHlwZV9mcm9tX2Jsb2NrX2NpcGhlcl9pZChjdHgtPmlkKSk7CisgICAgICAgIHBzYV9zZXRfa2V5X2JpdHMoJmtleV9hdHRyLCBrZXlfYml0bGVuKTsKKyAgICAgICAgcHNhX3NldF9rZXlfYWxnb3JpdGhtKCZrZXlfYXR0ciwgUFNBX0FMR19FQ0JfTk9fUEFERElORyk7CisgICAgICAgIHBzYV9zZXRfa2V5X3VzYWdlX2ZsYWdzKCZrZXlfYXR0ciwgUFNBX0tFWV9VU0FHRV9FTkNSWVBUKTsKKworICAgICAgICBzdGF0dXMgPSBwc2FfaW1wb3J0X2tleSgma2V5X2F0dHIsIGtleSwgUFNBX0JJVFNfVE9fQllURVMoa2V5X2JpdGxlbiksICZjdHgtPnBzYV9rZXlfaWQpOworICAgICAgICBpZiAoc3RhdHVzICE9IFBTQV9TVUNDRVNTKSB7CisgICAgICAgICAgICByZXR1cm4gbWJlZHRsc19jaXBoZXJfZXJyb3JfZnJvbV9wc2Eoc3RhdHVzKTsKKyAgICAgICAgfQorICAgICAgICBwc2FfcmVzZXRfa2V5X2F0dHJpYnV0ZXMoJmtleV9hdHRyKTsKKworICAgICAgICByZXR1cm4gMDsKKyAgICB9CisjZW5kaWYgLyogTUJFRFRMU19CTE9DS19DSVBIRVJfU09NRV9QU0EgKi8KKworICAgIHN3aXRjaCAoY3R4LT5pZCkgeworI2lmIGRlZmluZWQoTUJFRFRMU19BRVNfQykKKyAgICAgICAgY2FzZSBNQkVEVExTX0JMT0NLX0NJUEhFUl9JRF9BRVM6CisgICAgICAgICAgICByZXR1cm4gbWJlZHRsc19hZXNfc2V0a2V5X2VuYygmY3R4LT5jdHguYWVzLCBrZXksIGtleV9iaXRsZW4pOworI2VuZGlmCisjaWYgZGVmaW5lZChNQkVEVExTX0FSSUFfQykKKyAgICAgICAgY2FzZSBNQkVEVExTX0JMT0NLX0NJUEhFUl9JRF9BUklBOgorICAgICAgICAgICAgcmV0dXJuIG1iZWR0bHNfYXJpYV9zZXRrZXlfZW5jKCZjdHgtPmN0eC5hcmlhLCBrZXksIGtleV9iaXRsZW4pOworI2VuZGlmCisjaWYgZGVmaW5lZChNQkVEVExTX0NBTUVMTElBX0MpCisgICAgICAgIGNhc2UgTUJFRFRMU19CTE9DS19DSVBIRVJfSURfQ0FNRUxMSUE6CisgICAgICAgICAgICByZXR1cm4gbWJlZHRsc19jYW1lbGxpYV9zZXRrZXlfZW5jKCZjdHgtPmN0eC5jYW1lbGxpYSwga2V5LCBrZXlfYml0bGVuKTsKKyNlbmRpZgorICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgcmV0dXJuIE1CRURUTFNfRVJSX0NJUEhFUl9JTlZBTElEX0NPTlRFWFQ7CisgICAgfQorfQorCitpbnQgbWJlZHRsc19ibG9ja19jaXBoZXJfZW5jcnlwdChtYmVkdGxzX2Jsb2NrX2NpcGhlcl9jb250ZXh0X3QgKmN0eCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgaW5wdXRbMTZdLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgY2hhciBvdXRwdXRbMTZdKQoreworI2lmIGRlZmluZWQoTUJFRFRMU19CTE9DS19DSVBIRVJfU09NRV9QU0EpCisgICAgaWYgKGN0eC0+ZW5naW5lID09IE1CRURUTFNfQkxPQ0tfQ0lQSEVSX0VOR0lORV9QU0EpIHsKKyAgICAgICAgcHNhX3N0YXR1c190IHN0YXR1czsKKyAgICAgICAgc2l6ZV90IG9sZW47CisKKyAgICAgICAgc3RhdHVzID0gcHNhX2NpcGhlcl9lbmNyeXB0KGN0eC0+cHNhX2tleV9pZCwgUFNBX0FMR19FQ0JfTk9fUEFERElORywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlucHV0LCAxNiwgb3V0cHV0LCAxNiwgJm9sZW4pOworICAgICAgICBpZiAoc3RhdHVzICE9IFBTQV9TVUNDRVNTKSB7CisgICAgICAgICAgICByZXR1cm4gbWJlZHRsc19jaXBoZXJfZXJyb3JfZnJvbV9wc2Eoc3RhdHVzKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gMDsKKyAgICB9CisjZW5kaWYgLyogTUJFRFRMU19CTE9DS19DSVBIRVJfU09NRV9QU0EgKi8KKworICAgIHN3aXRjaCAoY3R4LT5pZCkgeworI2lmIGRlZmluZWQoTUJFRFRMU19BRVNfQykKKyAgICAgICAgY2FzZSBNQkVEVExTX0JMT0NLX0NJUEhFUl9JRF9BRVM6CisgICAgICAgICAgICByZXR1cm4gbWJlZHRsc19hZXNfY3J5cHRfZWNiKCZjdHgtPmN0eC5hZXMsIE1CRURUTFNfQUVTX0VOQ1JZUFQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlucHV0LCBvdXRwdXQpOworI2VuZGlmCisjaWYgZGVmaW5lZChNQkVEVExTX0FSSUFfQykKKyAgICAgICAgY2FzZSBNQkVEVExTX0JMT0NLX0NJUEhFUl9JRF9BUklBOgorICAgICAgICAgICAgcmV0dXJuIG1iZWR0bHNfYXJpYV9jcnlwdF9lY2IoJmN0eC0+Y3R4LmFyaWEsIGlucHV0LCBvdXRwdXQpOworI2VuZGlmCisjaWYgZGVmaW5lZChNQkVEVExTX0NBTUVMTElBX0MpCisgICAgICAgIGNhc2UgTUJFRFRMU19CTE9DS19DSVBIRVJfSURfQ0FNRUxMSUE6CisgICAgICAgICAgICByZXR1cm4gbWJlZHRsc19jYW1lbGxpYV9jcnlwdF9lY2IoJmN0eC0+Y3R4LmNhbWVsbGlhLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1CRURUTFNfQ0FNRUxMSUFfRU5DUllQVCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnB1dCwgb3V0cHV0KTsKKyNlbmRpZgorICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgcmV0dXJuIE1CRURUTFNfRVJSX0NJUEhFUl9JTlZBTElEX0NPTlRFWFQ7CisgICAgfQorfQorCisjZW5kaWYgLyogTUJFRFRMU19CTE9DS19DSVBIRVJfQyAqLwpkaWZmIC0tZ2l0IGEvbGlicmFyeS9ibG9ja19jaXBoZXJfaW50ZXJuYWwuaCBiL3RmLXBzYS1jcnlwdG8vZHJpdmVycy9idWlsdGluL3NyYy9ibG9ja19jaXBoZXJfaW50ZXJuYWwuaApzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gbGlicmFyeS9ibG9ja19jaXBoZXJfaW50ZXJuYWwuaApyZW5hbWUgdG8gdGYtcHNhLWNyeXB0by9kcml2ZXJzL2J1aWx0aW4vc3JjL2Jsb2NrX2NpcGhlcl9pbnRlcm5hbC5oCmRpZmYgLS1naXQgYS9saWJyYXJ5L2JuX211bC5oIGIvdGYtcHNhLWNyeXB0by9kcml2ZXJzL2J1aWx0aW4vc3JjL2JuX211bC5oCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBsaWJyYXJ5L2JuX211bC5oCnJlbmFtZSB0byB0Zi1wc2EtY3J5cHRvL2RyaXZlcnMvYnVpbHRpbi9zcmMvYm5fbXVsLmgKZGlmZiAtLWdpdCBhL3RmLXBzYS1jcnlwdG8vZHJpdmVycy9idWlsdGluL3NyYy9jYW1lbGxpYS5jIGIvdGYtcHNhLWNyeXB0by9kcml2ZXJzL2J1aWx0aW4vc3JjL2NhbWVsbGlhLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDg2MzY5OQotLS0gL2Rldi9udWxsCisrKyBiL3RmLXBzYS1jcnlwdG8vZHJpdmVycy9idWlsdGluL3NyYy9jYW1lbGxpYS5jCkBAIC0wLDAgKzEsMTA1NSBAQAorLyoKKyAqICBDYW1lbGxpYSBpbXBsZW1lbnRhdGlvbgorICoKKyAqICBDb3B5cmlnaHQgVGhlIE1iZWQgVExTIENvbnRyaWJ1dG9ycworICogIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wIE9SIEdQTC0yLjAtb3ItbGF0ZXIKKyAqLworLyoKKyAqICBUaGUgQ2FtZWxsaWEgYmxvY2sgY2lwaGVyIHdhcyBkZXNpZ25lZCBieSBOVFQgYW5kIE1pdHN1YmlzaGkgRWxlY3RyaWMKKyAqICBDb3Jwb3JhdGlvbi4KKyAqCisgKiAgaHR0cDovL2luZm8uaXNsLm50dC5jby5qcC9jcnlwdC9lbmcvY2FtZWxsaWEvZGwvMDFlc3BlYy5wZGYKKyAqLworCisjaW5jbHVkZSAiY29tbW9uLmgiCisKKyNpZiBkZWZpbmVkKE1CRURUTFNfQ0FNRUxMSUFfQykKKworI2luY2x1ZGUgIm1iZWR0bHMvY2FtZWxsaWEuaCIKKyNpbmNsdWRlICJtYmVkdGxzL3BsYXRmb3JtX3V0aWwuaCIKKworI2luY2x1ZGUgPHN0cmluZy5oPgorCisjaW5jbHVkZSAibWJlZHRscy9wbGF0Zm9ybS5oIgorCitzdGF0aWMgY29uc3QgdW5zaWduZWQgY2hhciBTSUdNQV9DSEFSU1s2XVs4XSA9Cit7CisgICAgeyAweGEwLCAweDllLCAweDY2LCAweDdmLCAweDNiLCAweGNjLCAweDkwLCAweDhiIH0sCisgICAgeyAweGI2LCAweDdhLCAweGU4LCAweDU4LCAweDRjLCAweGFhLCAweDczLCAweGIyIH0sCisgICAgeyAweGM2LCAweGVmLCAweDM3LCAweDJmLCAweGU5LCAweDRmLCAweDgyLCAweGJlIH0sCisgICAgeyAweDU0LCAweGZmLCAweDUzLCAweGE1LCAweGYxLCAweGQzLCAweDZmLCAweDFjIH0sCisgICAgeyAweDEwLCAweGU1LCAweDI3LCAweGZhLCAweGRlLCAweDY4LCAweDJkLCAweDFkIH0sCisgICAgeyAweGIwLCAweDU2LCAweDg4LCAweGMyLCAweGIzLCAweGU2LCAweGMxLCAweGZkIH0KK307CisKKyNpZiBkZWZpbmVkKE1CRURUTFNfQ0FNRUxMSUFfU01BTExfTUVNT1JZKQorCitzdGF0aWMgY29uc3QgdW5zaWduZWQgY2hhciBGU2JbMjU2XSA9Cit7CisgICAgMTEyLCAxMzAsIDQ0LCAyMzYsIDE3OSwgMzksIDE5MiwgMjI5LCAyMjgsIDEzMywgODcsIDUzLCAyMzQsIDEyLCAxNzQsIDY1LAorICAgIDM1LCAyMzksIDEwNywgMTQ3LCA2OSwgMjUsIDE2NSwgMzMsIDIzNywgMTQsIDc5LCA3OCwgMjksIDEwMSwgMTQ2LCAxODksCisgICAgMTM0LCAxODQsIDE3NSwgMTQzLCAxMjQsIDIzNSwgMzEsIDIwNiwgNjIsIDQ4LCAyMjAsIDk1LCA5NCwgMTk3LCAxMSwgMjYsCisgICAgMTY2LCAyMjUsIDU3LCAyMDIsIDIxMywgNzEsIDkzLCA2MSwgMjE3LCAgMSwgOTAsIDIxNCwgODEsIDg2LCAxMDgsIDc3LAorICAgIDEzOSwgMTMsIDE1NCwgMTAyLCAyNTEsIDIwNCwgMTc2LCA0NSwgMTE2LCAxOCwgNDMsIDMyLCAyNDAsIDE3NywgMTMyLCAxNTMsCisgICAgMjIzLCA3NiwgMjAzLCAxOTQsIDUyLCAxMjYsIDExOCwgIDUsIDEwOSwgMTgzLCAxNjksIDQ5LCAyMDksIDIzLCAgNCwgMjE1LAorICAgIDIwLCA4OCwgNTgsIDk3LCAyMjIsIDI3LCAxNywgMjgsIDUwLCAxNSwgMTU2LCAyMiwgODMsIDI0LCAyNDIsIDM0LAorICAgIDI1NCwgNjgsIDIwNywgMTc4LCAxOTUsIDE4MSwgMTIyLCAxNDUsIDM2LCAgOCwgMjMyLCAxNjgsIDk2LCAyNTIsIDEwNSwgODAsCisgICAgMTcwLCAyMDgsIDE2MCwgMTI1LCAxNjEsIDEzNywgOTgsIDE1MSwgODQsIDkxLCAzMCwgMTQ5LCAyMjQsIDI1NSwgMTAwLCAyMTAsCisgICAgMTYsIDE5NiwgIDAsIDcyLCAxNjMsIDI0NywgMTE3LCAyMTksIDEzOCwgIDMsIDIzMCwgMjE4LCAgOSwgNjMsIDIyMSwgMTQ4LAorICAgIDEzNSwgOTIsIDEzMSwgIDIsIDIwNSwgNzQsIDE0NCwgNTEsIDExNSwgMTAzLCAyNDYsIDI0MywgMTU3LCAxMjcsIDE5MSwgMjI2LAorICAgIDgyLCAxNTUsIDIxNiwgMzgsIDIwMCwgNTUsIDE5OCwgNTksIDEyOSwgMTUwLCAxMTEsIDc1LCAxOSwgMTkwLCA5OSwgNDYsCisgICAgMjMzLCAxMjEsIDE2NywgMTQwLCAxNTksIDExMCwgMTg4LCAxNDIsIDQxLCAyNDUsIDI0OSwgMTgyLCA0NywgMjUzLCAxODAsIDg5LAorICAgIDEyMCwgMTUyLCAgNiwgMTA2LCAyMzEsIDcwLCAxMTMsIDE4NiwgMjEyLCAzNywgMTcxLCA2NiwgMTM2LCAxNjIsIDE0MSwgMjUwLAorICAgIDExNCwgIDcsIDE4NSwgODUsIDI0OCwgMjM4LCAxNzIsIDEwLCA1NCwgNzMsIDQyLCAxMDQsIDYwLCA1NiwgMjQxLCAxNjQsCisgICAgNjQsIDQwLCAyMTEsIDEyMywgMTg3LCAyMDEsIDY3LCAxOTMsIDIxLCAyMjcsIDE3MywgMjQ0LCAxMTksIDE5OSwgMTI4LCAxNTgKK307CisKKyNkZWZpbmUgU0JPWDEobikgRlNiWyhuKV0KKyNkZWZpbmUgU0JPWDIobikgKHVuc2lnbmVkIGNoYXIpICgoRlNiWyhuKV0gPj4gNyBeIEZTYlsobildIDw8IDEpICYgMHhmZikKKyNkZWZpbmUgU0JPWDMobikgKHVuc2lnbmVkIGNoYXIpICgoRlNiWyhuKV0gPj4gMSBeIEZTYlsobildIDw8IDcpICYgMHhmZikKKyNkZWZpbmUgU0JPWDQobikgRlNiWygobikgPDwgMSBeIChuKSA+PiA3KSAmMHhmZl0KKworI2Vsc2UgLyogTUJFRFRMU19DQU1FTExJQV9TTUFMTF9NRU1PUlkgKi8KKworc3RhdGljIGNvbnN0IHVuc2lnbmVkIGNoYXIgRlNiWzI1Nl0gPQoreworICAgIDExMiwgMTMwLCAgNDQsIDIzNiwgMTc5LCAgMzksIDE5MiwgMjI5LCAyMjgsIDEzMywgIDg3LCAgNTMsIDIzNCwgIDEyLCAxNzQsICA2NSwKKyAgICAzNSwgMjM5LCAxMDcsIDE0NywgIDY5LCAgMjUsIDE2NSwgIDMzLCAyMzcsICAxNCwgIDc5LCAgNzgsICAyOSwgMTAxLCAxNDYsIDE4OSwKKyAgICAxMzQsIDE4NCwgMTc1LCAxNDMsIDEyNCwgMjM1LCAgMzEsIDIwNiwgIDYyLCAgNDgsIDIyMCwgIDk1LCAgOTQsIDE5NywgIDExLCAgMjYsCisgICAgMTY2LCAyMjUsICA1NywgMjAyLCAyMTMsICA3MSwgIDkzLCAgNjEsIDIxNywgICAxLCAgOTAsIDIxNCwgIDgxLCAgODYsIDEwOCwgIDc3LAorICAgIDEzOSwgIDEzLCAxNTQsIDEwMiwgMjUxLCAyMDQsIDE3NiwgIDQ1LCAxMTYsICAxOCwgIDQzLCAgMzIsIDI0MCwgMTc3LCAxMzIsIDE1MywKKyAgICAyMjMsICA3NiwgMjAzLCAxOTQsICA1MiwgMTI2LCAxMTgsICAgNSwgMTA5LCAxODMsIDE2OSwgIDQ5LCAyMDksICAyMywgICA0LCAyMTUsCisgICAgMjAsICA4OCwgIDU4LCAgOTcsIDIyMiwgIDI3LCAgMTcsICAyOCwgIDUwLCAgMTUsIDE1NiwgIDIyLCAgODMsICAyNCwgMjQyLCAgMzQsCisgICAgMjU0LCAgNjgsIDIwNywgMTc4LCAxOTUsIDE4MSwgMTIyLCAxNDUsICAzNiwgICA4LCAyMzIsIDE2OCwgIDk2LCAyNTIsIDEwNSwgIDgwLAorICAgIDE3MCwgMjA4LCAxNjAsIDEyNSwgMTYxLCAxMzcsICA5OCwgMTUxLCAgODQsICA5MSwgIDMwLCAxNDksIDIyNCwgMjU1LCAxMDAsIDIxMCwKKyAgICAxNiwgMTk2LCAgIDAsICA3MiwgMTYzLCAyNDcsIDExNywgMjE5LCAxMzgsICAgMywgMjMwLCAyMTgsICAgOSwgIDYzLCAyMjEsIDE0OCwKKyAgICAxMzUsICA5MiwgMTMxLCAgIDIsIDIwNSwgIDc0LCAxNDQsICA1MSwgMTE1LCAxMDMsIDI0NiwgMjQzLCAxNTcsIDEyNywgMTkxLCAyMjYsCisgICAgODIsIDE1NSwgMjE2LCAgMzgsIDIwMCwgIDU1LCAxOTgsICA1OSwgMTI5LCAxNTAsIDExMSwgIDc1LCAgMTksIDE5MCwgIDk5LCAgNDYsCisgICAgMjMzLCAxMjEsIDE2NywgMTQwLCAxNTksIDExMCwgMTg4LCAxNDIsICA0MSwgMjQ1LCAyNDksIDE4MiwgIDQ3LCAyNTMsIDE4MCwgIDg5LAorICAgIDEyMCwgMTUyLCAgIDYsIDEwNiwgMjMxLCAgNzAsIDExMywgMTg2LCAyMTIsICAzNywgMTcxLCAgNjYsIDEzNiwgMTYyLCAxNDEsIDI1MCwKKyAgICAxMTQsICAgNywgMTg1LCAgODUsIDI0OCwgMjM4LCAxNzIsICAxMCwgIDU0LCAgNzMsICA0MiwgMTA0LCAgNjAsICA1NiwgMjQxLCAxNjQsCisgICAgNjQsICA0MCwgMjExLCAxMjMsIDE4NywgMjAxLCAgNjcsIDE5MywgIDIxLCAyMjcsIDE3MywgMjQ0LCAxMTksIDE5OSwgMTI4LCAxNTgKK307CisKK3N0YXRpYyBjb25zdCB1bnNpZ25lZCBjaGFyIEZTYjJbMjU2XSA9Cit7CisgICAgMjI0LCAgIDUsICA4OCwgMjE3LCAxMDMsICA3OCwgMTI5LCAyMDMsIDIwMSwgIDExLCAxNzQsIDEwNiwgMjEzLCAgMjQsICA5MywgMTMwLAorICAgIDcwLCAyMjMsIDIxNCwgIDM5LCAxMzgsICA1MCwgIDc1LCAgNjYsIDIxOSwgIDI4LCAxNTgsIDE1NiwgIDU4LCAyMDIsICAzNywgMTIzLAorICAgIDEzLCAxMTMsICA5NSwgIDMxLCAyNDgsIDIxNSwgIDYyLCAxNTcsIDEyNCwgIDk2LCAxODUsIDE5MCwgMTg4LCAxMzksICAyMiwgIDUyLAorICAgIDc3LCAxOTUsIDExNCwgMTQ5LCAxNzEsIDE0MiwgMTg2LCAxMjIsIDE3OSwgICAyLCAxODAsIDE3MywgMTYyLCAxNzIsIDIxNiwgMTU0LAorICAgIDIzLCAgMjYsICA1MywgMjA0LCAyNDcsIDE1MywgIDk3LCAgOTAsIDIzMiwgIDM2LCAgODYsICA2NCwgMjI1LCAgOTksICAgOSwgIDUxLAorICAgIDE5MSwgMTUyLCAxNTEsIDEzMywgMTA0LCAyNTIsIDIzNiwgIDEwLCAyMTgsIDExMSwgIDgzLCAgOTgsIDE2MywgIDQ2LCAgIDgsIDE3NSwKKyAgICA0MCwgMTc2LCAxMTYsIDE5NCwgMTg5LCAgNTQsICAzNCwgIDU2LCAxMDAsICAzMCwgIDU3LCAgNDQsIDE2NiwgIDQ4LCAyMjksICA2OCwKKyAgICAyNTMsIDEzNiwgMTU5LCAxMDEsIDEzNSwgMTA3LCAyNDQsICAzNSwgIDcyLCAgMTYsIDIwOSwgIDgxLCAxOTIsIDI0OSwgMjEwLCAxNjAsCisgICAgODUsIDE2MSwgIDY1LCAyNTAsICA2NywgIDE5LCAxOTYsICA0NywgMTY4LCAxODIsICA2MCwgIDQzLCAxOTMsIDI1NSwgMjAwLCAxNjUsCisgICAgMzIsIDEzNywgICAwLCAxNDQsICA3MSwgMjM5LCAyMzQsIDE4MywgIDIxLCAgIDYsIDIwNSwgMTgxLCAgMTgsIDEyNiwgMTg3LCAgNDEsCisgICAgMTUsIDE4NCwgICA3LCAgIDQsIDE1NSwgMTQ4LCAgMzMsIDEwMiwgMjMwLCAyMDYsIDIzNywgMjMxLCAgNTksIDI1NCwgMTI3LCAxOTcsCisgICAgMTY0LCAgNTUsIDE3NywgIDc2LCAxNDUsIDExMCwgMTQxLCAxMTgsICAgMywgIDQ1LCAyMjIsIDE1MCwgIDM4LCAxMjUsIDE5OCwgIDkyLAorICAgIDIxMSwgMjQyLCAgNzksICAyNSwgIDYzLCAyMjAsIDEyMSwgIDI5LCAgODIsIDIzNSwgMjQzLCAxMDksICA5NCwgMjUxLCAxMDUsIDE3OCwKKyAgICAyNDAsICA0OSwgIDEyLCAyMTIsIDIwNywgMTQwLCAyMjYsIDExNywgMTY5LCAgNzQsICA4NywgMTMyLCAgMTcsICA2OSwgIDI3LCAyNDUsCisgICAgMjI4LCAgMTQsIDExNSwgMTcwLCAyNDEsIDIyMSwgIDg5LCAgMjAsIDEwOCwgMTQ2LCAgODQsIDIwOCwgMTIwLCAxMTIsIDIyNywgIDczLAorICAgIDEyOCwgIDgwLCAxNjcsIDI0NiwgMTE5LCAxNDcsIDEzNCwgMTMxLCAgNDIsIDE5OSwgIDkxLCAyMzMsIDIzOCwgMTQzLCAgIDEsICA2MQorfTsKKworc3RhdGljIGNvbnN0IHVuc2lnbmVkIGNoYXIgRlNiM1syNTZdID0KK3sKKyAgICA1NiwgIDY1LCAgMjIsIDExOCwgMjE3LCAxNDcsICA5NiwgMjQyLCAxMTQsIDE5NCwgMTcxLCAxNTQsIDExNywgICA2LCAgODcsIDE2MCwKKyAgICAxNDUsIDI0NywgMTgxLCAyMDEsIDE2MiwgMTQwLCAyMTAsIDE0NCwgMjQ2LCAgIDcsIDE2NywgIDM5LCAxNDIsIDE3OCwgIDczLCAyMjIsCisgICAgNjcsICA5MiwgMjE1LCAxOTksICA2MiwgMjQ1LCAxNDMsIDEwMywgIDMxLCAgMjQsIDExMCwgMTc1LCAgNDcsIDIyNiwgMTMzLCAgMTMsCisgICAgODMsIDI0MCwgMTU2LCAxMDEsIDIzNCwgMTYzLCAxNzQsIDE1OCwgMjM2LCAxMjgsICA0NSwgMTA3LCAxNjgsICA0MywgIDU0LCAxNjYsCisgICAgMTk3LCAxMzQsICA3NywgIDUxLCAyNTMsIDEwMiwgIDg4LCAxNTAsICA1OCwgICA5LCAxNDksICAxNiwgMTIwLCAyMTYsICA2NiwgMjA0LAorICAgIDIzOSwgIDM4LCAyMjksICA5NywgIDI2LCAgNjMsICA1OSwgMTMwLCAxODIsIDIxOSwgMjEyLCAxNTIsIDIzMiwgMTM5LCAgIDIsIDIzNSwKKyAgICAxMCwgIDQ0LCAgMjksIDE3NiwgMTExLCAxNDEsIDEzNiwgIDE0LCAgMjUsIDEzNSwgIDc4LCAgMTEsIDE2OSwgIDEyLCAxMjEsICAxNywKKyAgICAxMjcsICAzNCwgMjMxLCAgODksIDIyNSwgMjE4LCAgNjEsIDIwMCwgIDE4LCAgIDQsIDExNiwgIDg0LCAgNDgsIDEyNiwgMTgwLCAgNDAsCisgICAgODUsIDEwNCwgIDgwLCAxOTAsIDIwOCwgMTk2LCAgNDksIDIwMywgIDQyLCAxNzMsICAxNSwgMjAyLCAxMTIsIDI1NSwgIDUwLCAxMDUsCisgICAgOCwgIDk4LCAgIDAsICAzNiwgMjA5LCAyNTEsIDE4NiwgMjM3LCAgNjksIDEyOSwgMTE1LCAxMDksIDEzMiwgMTU5LCAyMzgsICA3NCwKKyAgICAxOTUsICA0NiwgMTkzLCAgIDEsIDIzMCwgIDM3LCAgNzIsIDE1MywgMTg1LCAxNzksIDEyMywgMjQ5LCAyMDYsIDE5MSwgMjIzLCAxMTMsCisgICAgNDEsIDIwNSwgMTA4LCAgMTksIDEwMCwgMTU1LCAgOTksIDE1NywgMTkyLCAgNzUsIDE4MywgMTY1LCAxMzcsICA5NSwgMTc3LCAgMjMsCisgICAgMjQ0LCAxODgsIDIxMSwgIDcwLCAyMDcsICA1NSwgIDk0LCAgNzEsIDE0OCwgMjUwLCAyNTIsICA5MSwgMTUxLCAyNTQsICA5MCwgMTcyLAorICAgIDYwLCAgNzYsICAgMywgIDUzLCAyNDMsICAzNSwgMTg0LCAgOTMsIDEwNiwgMTQ2LCAyMTMsICAzMywgIDY4LCAgODEsIDE5OCwgMTI1LAorICAgIDU3LCAxMzEsIDIyMCwgMTcwLCAxMjQsIDExOSwgIDg2LCAgIDUsICAyNywgMTY0LCAgMjEsICA1MiwgIDMwLCAgMjgsIDI0OCwgIDgyLAorICAgIDMyLCAgMjAsIDIzMywgMTg5LCAyMjEsIDIyOCwgMTYxLCAyMjQsIDEzOCwgMjQxLCAyMTQsIDEyMiwgMTg3LCAyMjcsICA2NCwgIDc5Cit9OworCitzdGF0aWMgY29uc3QgdW5zaWduZWQgY2hhciBGU2I0WzI1Nl0gPQoreworICAgIDExMiwgIDQ0LCAxNzksIDE5MiwgMjI4LCAgODcsIDIzNCwgMTc0LCAgMzUsIDEwNywgIDY5LCAxNjUsIDIzNywgIDc5LCAgMjksIDE0NiwKKyAgICAxMzQsIDE3NSwgMTI0LCAgMzEsICA2MiwgMjIwLCAgOTQsICAxMSwgMTY2LCAgNTcsIDIxMywgIDkzLCAyMTcsICA5MCwgIDgxLCAxMDgsCisgICAgMTM5LCAxNTQsIDI1MSwgMTc2LCAxMTYsICA0MywgMjQwLCAxMzIsIDIyMywgMjAzLCAgNTIsIDExOCwgMTA5LCAxNjksIDIwOSwgICA0LAorICAgIDIwLCAgNTgsIDIyMiwgIDE3LCAgNTAsIDE1NiwgIDgzLCAyNDIsIDI1NCwgMjA3LCAxOTUsIDEyMiwgIDM2LCAyMzIsICA5NiwgMTA1LAorICAgIDE3MCwgMTYwLCAxNjEsICA5OCwgIDg0LCAgMzAsIDIyNCwgMTAwLCAgMTYsICAgMCwgMTYzLCAxMTcsIDEzOCwgMjMwLCAgIDksIDIyMSwKKyAgICAxMzUsIDEzMSwgMjA1LCAxNDQsIDExNSwgMjQ2LCAxNTcsIDE5MSwgIDgyLCAyMTYsIDIwMCwgMTk4LCAxMjksIDExMSwgIDE5LCAgOTksCisgICAgMjMzLCAxNjcsIDE1OSwgMTg4LCAgNDEsIDI0OSwgIDQ3LCAxODAsIDEyMCwgICA2LCAyMzEsIDExMywgMjEyLCAxNzEsIDEzNiwgMTQxLAorICAgIDExNCwgMTg1LCAyNDgsIDE3MiwgIDU0LCAgNDIsICA2MCwgMjQxLCAgNjQsIDIxMSwgMTg3LCAgNjcsICAyMSwgMTczLCAxMTksIDEyOCwKKyAgICAxMzAsIDIzNiwgIDM5LCAyMjksIDEzMywgIDUzLCAgMTIsICA2NSwgMjM5LCAxNDcsICAyNSwgIDMzLCAgMTQsICA3OCwgMTAxLCAxODksCisgICAgMTg0LCAxNDMsIDIzNSwgMjA2LCAgNDgsICA5NSwgMTk3LCAgMjYsIDIyNSwgMjAyLCAgNzEsICA2MSwgICAxLCAyMTQsICA4NiwgIDc3LAorICAgIDEzLCAxMDIsIDIwNCwgIDQ1LCAgMTgsICAzMiwgMTc3LCAxNTMsICA3NiwgMTk0LCAxMjYsICAgNSwgMTgzLCAgNDksICAyMywgMjE1LAorICAgIDg4LCAgOTcsICAyNywgIDI4LCAgMTUsICAyMiwgIDI0LCAgMzQsICA2OCwgMTc4LCAxODEsIDE0NSwgICA4LCAxNjgsIDI1MiwgIDgwLAorICAgIDIwOCwgMTI1LCAxMzcsIDE1MSwgIDkxLCAxNDksIDI1NSwgMjEwLCAxOTYsICA3MiwgMjQ3LCAyMTksICAgMywgMjE4LCAgNjMsIDE0OCwKKyAgICA5MiwgICAyLCAgNzQsICA1MSwgMTAzLCAyNDMsIDEyNywgMjI2LCAxNTUsICAzOCwgIDU1LCAgNTksIDE1MCwgIDc1LCAxOTAsICA0NiwKKyAgICAxMjEsIDE0MCwgMTEwLCAxNDIsIDI0NSwgMTgyLCAyNTMsICA4OSwgMTUyLCAxMDYsICA3MCwgMTg2LCAgMzcsICA2NiwgMTYyLCAyNTAsCisgICAgNywgIDg1LCAyMzgsICAxMCwgIDczLCAxMDQsICA1NiwgMTY0LCAgNDAsIDEyMywgMjAxLCAxOTMsIDIyNywgMjQ0LCAxOTksIDE1OAorfTsKKworI2RlZmluZSBTQk9YMShuKSBGU2JbKG4pXQorI2RlZmluZSBTQk9YMihuKSBGU2IyWyhuKV0KKyNkZWZpbmUgU0JPWDMobikgRlNiM1sobildCisjZGVmaW5lIFNCT1g0KG4pIEZTYjRbKG4pXQorCisjZW5kaWYgLyogTUJFRFRMU19DQU1FTExJQV9TTUFMTF9NRU1PUlkgKi8KKworc3RhdGljIGNvbnN0IHVuc2lnbmVkIGNoYXIgc2hpZnRzWzJdWzRdWzRdID0KK3sKKyAgICB7CisgICAgICAgIHsgMSwgMSwgMSwgMSB9LCAvKiBLTCAqLworICAgICAgICB7IDAsIDAsIDAsIDAgfSwgLyogS1IgKi8KKyAgICAgICAgeyAxLCAxLCAxLCAxIH0sIC8qIEtBICovCisgICAgICAgIHsgMCwgMCwgMCwgMCB9ICAvKiBLQiAqLworICAgIH0sCisgICAgeworICAgICAgICB7IDEsIDAsIDEsIDEgfSwgLyogS0wgKi8KKyAgICAgICAgeyAxLCAxLCAwLCAxIH0sIC8qIEtSICovCisgICAgICAgIHsgMSwgMSwgMSwgMCB9LCAvKiBLQSAqLworICAgICAgICB7IDEsIDEsIDAsIDEgfSAgLyogS0IgKi8KKyAgICB9Cit9OworCitzdGF0aWMgY29uc3Qgc2lnbmVkIGNoYXIgaW5kZXhlc1syXVs0XVsyMF0gPQoreworICAgIHsKKyAgICAgICAgeyAgMCwgIDEsICAyLCAgMywgIDgsICA5LCAxMCwgMTEsIDM4LCAzOSwKKyAgICAgICAgICAgMzYsIDM3LCAyMywgMjAsIDIxLCAyMiwgMjcsIC0xLCAtMSwgMjYgfSwgLyogS0wgLT4gUksgKi8KKyAgICAgICAgeyAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwKKyAgICAgICAgICAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSB9LCAvKiBLUiAtPiBSSyAqLworICAgICAgICB7ICA0LCAgNSwgIDYsICA3LCAxMiwgMTMsIDE0LCAxNSwgMTYsIDE3LAorICAgICAgICAgICAxOCwgMTksIC0xLCAyNCwgMjUsIC0xLCAzMSwgMjgsIDI5LCAzMCB9LCAvKiBLQSAtPiBSSyAqLworICAgICAgICB7IC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLAorICAgICAgICAgIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xIH0gIC8qIEtCIC0+IFJLICovCisgICAgfSwKKyAgICB7CisgICAgICAgIHsgIDAsICAxLCAgMiwgIDMsIDYxLCA2MiwgNjMsIDYwLCAtMSwgLTEsCisgICAgICAgICAgIC0xLCAtMSwgMjcsIDI0LCAyNSwgMjYsIDM1LCAzMiwgMzMsIDM0IH0sIC8qIEtMIC0+IFJLICovCisgICAgICAgIHsgLTEsIC0xLCAtMSwgLTEsICA4LCAgOSwgMTAsIDExLCAxNiwgMTcsCisgICAgICAgICAgMTgsIDE5LCAtMSwgLTEsIC0xLCAtMSwgMzksIDM2LCAzNywgMzggfSwgLyogS1IgLT4gUksgKi8KKyAgICAgICAgeyAtMSwgLTEsIC0xLCAtMSwgMTIsIDEzLCAxNCwgMTUsIDU4LCA1OSwKKyAgICAgICAgICA1NiwgNTcsIDMxLCAyOCwgMjksIDMwLCAtMSwgLTEsIC0xLCAtMSB9LCAvKiBLQSAtPiBSSyAqLworICAgICAgICB7ICA0LCAgNSwgIDYsICA3LCA2NSwgNjYsIDY3LCA2NCwgMjAsIDIxLAorICAgICAgICAgICAyMiwgMjMsIC0xLCAtMSwgLTEsIC0xLCA0MywgNDAsIDQxLCA0MiB9IC8qIEtCIC0+IFJLICovCisgICAgfQorfTsKKworc3RhdGljIGNvbnN0IHNpZ25lZCBjaGFyIHRyYW5zcG9zZXNbMl1bMjBdID0KK3sKKyAgICB7CisgICAgICAgIDIxLCAyMiwgMjMsIDIwLAorICAgICAgICAtMSwgLTEsIC0xLCAtMSwKKyAgICAgICAgMTgsIDE5LCAxNiwgMTcsCisgICAgICAgIDExLCAgOCwgIDksIDEwLAorICAgICAgICAxNSwgMTIsIDEzLCAxNAorICAgIH0sCisgICAgeworICAgICAgICAyNSwgMjYsIDI3LCAyNCwKKyAgICAgICAgMjksIDMwLCAzMSwgMjgsCisgICAgICAgIDE4LCAxOSwgMTYsIDE3LAorICAgICAgICAtMSwgLTEsIC0xLCAtMSwKKyAgICAgICAgLTEsIC0xLCAtMSwgLTEKKyAgICB9Cit9OworCisvKiBTaGlmdCBtYWNybyBmb3IgMTI4IGJpdCBzdHJpbmdzIHdpdGggcm90YXRpb24gc21hbGxlciB0aGFuIDMyIGJpdHMgKCEpICovCisjZGVmaW5lIFJPVEwoREVTVCwgU1JDLCBTSElGVCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgKERFU1QpWzBdID0gKFNSQylbMF0gPDwgKFNISUZUKSBeIChTUkMpWzFdID4+ICgzMiAtIChTSElGVCkpOyAgIFwKKyAgICAgICAgKERFU1QpWzFdID0gKFNSQylbMV0gPDwgKFNISUZUKSBeIChTUkMpWzJdID4+ICgzMiAtIChTSElGVCkpOyAgIFwKKyAgICAgICAgKERFU1QpWzJdID0gKFNSQylbMl0gPDwgKFNISUZUKSBeIChTUkMpWzNdID4+ICgzMiAtIChTSElGVCkpOyAgIFwKKyAgICAgICAgKERFU1QpWzNdID0gKFNSQylbM10gPDwgKFNISUZUKSBeIChTUkMpWzBdID4+ICgzMiAtIChTSElGVCkpOyAgIFwKKyAgICB9CisKKyNkZWZpbmUgRkwoWEwsIFhSLCBLTCwgS1IpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICAoWFIpID0gKCgoKFhMKSAmKEtMKSkgPDwgMSkgfCAoKChYTCkgJihLTCkpID4+IDMxKSkgXiAoWFIpOyAgIFwKKyAgICAgICAgKFhMKSA9ICgoWFIpIHwgKEtSKSkgXiAoWEwpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICB9CisKKyNkZWZpbmUgRkxJbnYoWUwsIFlSLCBLTCwgS1IpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICAoWUwpID0gKChZUikgfCAoS1IpKSBeIChZTCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICAoWVIpID0gKCgoKFlMKSAmKEtMKSkgPDwgMSkgfCAoKChZTCkgJihLTCkpID4+IDMxKSkgXiAoWVIpOyAgIFwKKyAgICB9CisKKyNkZWZpbmUgU0hJRlRfQU5EX1BMQUNFKElOREVYLCBPRkZTRVQpICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgIFRLWzBdID0gS0NbKE9GRlNFVCkgKiA0ICsgMF07ICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICBUS1sxXSA9IEtDWyhPRkZTRVQpICogNCArIDFdOyAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgVEtbMl0gPSBLQ1soT0ZGU0VUKSAqIDQgKyAyXTsgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgIFRLWzNdID0gS0NbKE9GRlNFVCkgKiA0ICsgM107ICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICBmb3IgKGkgPSAxOyBpIDw9IDQ7IGkrKykgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICBpZiAoc2hpZnRzWyhJTkRFWCldWyhPRkZTRVQpXVtpIC0xXSkgICAgICAgICAgICAgICBcCisgICAgICAgIFJPVEwoVEsgKyBpICogNCwgVEssICgxNSAqIGkpICUgMzIpOyAgICAgICAgICBcCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgIGZvciAoaSA9IDA7IGkgPCAyMDsgaSsrKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgIGlmIChpbmRleGVzWyhJTkRFWCldWyhPRkZTRVQpXVtpXSAhPSAtMSkgeyAgICAgICAgIFwKKyAgICAgICAgICAgIFJLW2luZGV4ZXNbKElOREVYKV1bKE9GRlNFVCldW2ldXSA9IFRLW2ldOyAgICBcCisgICAgICAgIH0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgfQorCitzdGF0aWMgdm9pZCBjYW1lbGxpYV9mZWlzdGVsKGNvbnN0IHVpbnQzMl90IHhbMl0sIGNvbnN0IHVpbnQzMl90IGtbMl0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQzMl90IHpbMl0pCit7CisgICAgdWludDMyX3QgSTAsIEkxOworICAgIEkwID0geFswXSBeIGtbMF07CisgICAgSTEgPSB4WzFdIF4ga1sxXTsKKworICAgIEkwID0gKCh1aW50MzJfdCkgU0JPWDEoTUJFRFRMU19CWVRFXzMoSTApKSA8PCAyNCkgfAorICAgICAgICAgKCh1aW50MzJfdCkgU0JPWDIoTUJFRFRMU19CWVRFXzIoSTApKSA8PCAxNikgfAorICAgICAgICAgKCh1aW50MzJfdCkgU0JPWDMoTUJFRFRMU19CWVRFXzEoSTApKSA8PCAgOCkgfAorICAgICAgICAgKCh1aW50MzJfdCkgU0JPWDQoTUJFRFRMU19CWVRFXzAoSTApKSk7CisgICAgSTEgPSAoKHVpbnQzMl90KSBTQk9YMihNQkVEVExTX0JZVEVfMyhJMSkpIDw8IDI0KSB8CisgICAgICAgICAoKHVpbnQzMl90KSBTQk9YMyhNQkVEVExTX0JZVEVfMihJMSkpIDw8IDE2KSB8CisgICAgICAgICAoKHVpbnQzMl90KSBTQk9YNChNQkVEVExTX0JZVEVfMShJMSkpIDw8ICA4KSB8CisgICAgICAgICAoKHVpbnQzMl90KSBTQk9YMShNQkVEVExTX0JZVEVfMChJMSkpKTsKKworICAgIEkwIF49IChJMSA8PCA4KSB8IChJMSA+PiAyNCk7CisgICAgSTEgXj0gKEkwIDw8IDE2KSB8IChJMCA+PiAxNik7CisgICAgSTAgXj0gKEkxID4+IDgpIHwgKEkxIDw8IDI0KTsKKyAgICBJMSBePSAoSTAgPj4gOCkgfCAoSTAgPDwgMjQpOworCisgICAgelswXSBePSBJMTsKKyAgICB6WzFdIF49IEkwOworfQorCit2b2lkIG1iZWR0bHNfY2FtZWxsaWFfaW5pdChtYmVkdGxzX2NhbWVsbGlhX2NvbnRleHQgKmN0eCkKK3sKKyAgICBtZW1zZXQoY3R4LCAwLCBzaXplb2YobWJlZHRsc19jYW1lbGxpYV9jb250ZXh0KSk7Cit9CisKK3ZvaWQgbWJlZHRsc19jYW1lbGxpYV9mcmVlKG1iZWR0bHNfY2FtZWxsaWFfY29udGV4dCAqY3R4KQoreworICAgIGlmIChjdHggPT0gTlVMTCkgeworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgbWJlZHRsc19wbGF0Zm9ybV96ZXJvaXplKGN0eCwgc2l6ZW9mKG1iZWR0bHNfY2FtZWxsaWFfY29udGV4dCkpOworfQorCisvKgorICogQ2FtZWxsaWEga2V5IHNjaGVkdWxlIChlbmNyeXB0aW9uKQorICovCitpbnQgbWJlZHRsc19jYW1lbGxpYV9zZXRrZXlfZW5jKG1iZWR0bHNfY2FtZWxsaWFfY29udGV4dCAqY3R4LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1bnNpZ25lZCBjaGFyICprZXksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCBrZXliaXRzKQoreworICAgIGludCBpZHg7CisgICAgc2l6ZV90IGk7CisgICAgdWludDMyX3QgKlJLOworICAgIHVuc2lnbmVkIGNoYXIgdFs2NF07CisgICAgdWludDMyX3QgU0lHTUFbNl1bMl07CisgICAgdWludDMyX3QgS0NbMTZdOworICAgIHVpbnQzMl90IFRLWzIwXTsKKworICAgIFJLID0gY3R4LT5yazsKKworICAgIG1lbXNldCh0LCAwLCA2NCk7CisgICAgbWVtc2V0KFJLLCAwLCBzaXplb2YoY3R4LT5yaykpOworCisgICAgc3dpdGNoIChrZXliaXRzKSB7CisgICAgICAgIGNhc2UgMTI4OiBjdHgtPm5yID0gMzsgaWR4ID0gMDsgYnJlYWs7CisgICAgICAgIGNhc2UgMTkyOgorICAgICAgICBjYXNlIDI1NjogY3R4LT5uciA9IDQ7IGlkeCA9IDE7IGJyZWFrOworICAgICAgICBkZWZhdWx0OiByZXR1cm4gTUJFRFRMU19FUlJfQ0FNRUxMSUFfQkFEX0lOUFVUX0RBVEE7CisgICAgfQorCisgICAgZm9yIChpID0gMDsgaSA8IGtleWJpdHMgLyA4OyArK2kpIHsKKyAgICAgICAgdFtpXSA9IGtleVtpXTsKKyAgICB9CisKKyAgICBpZiAoa2V5Yml0cyA9PSAxOTIpIHsKKyAgICAgICAgZm9yIChpID0gMDsgaSA8IDg7IGkrKykgeworICAgICAgICAgICAgdFsyNCArIGldID0gfnRbMTYgKyBpXTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qCisgICAgICogUHJlcGFyZSBTSUdNQSB2YWx1ZXMKKyAgICAgKi8KKyAgICBmb3IgKGkgPSAwOyBpIDwgNjsgaSsrKSB7CisgICAgICAgIFNJR01BW2ldWzBdID0gTUJFRFRMU19HRVRfVUlOVDMyX0JFKFNJR01BX0NIQVJTW2ldLCAwKTsKKyAgICAgICAgU0lHTUFbaV1bMV0gPSBNQkVEVExTX0dFVF9VSU5UMzJfQkUoU0lHTUFfQ0hBUlNbaV0sIDQpOworICAgIH0KKworICAgIC8qCisgICAgICogS2V5IHN0b3JhZ2UgaW4gS0MKKyAgICAgKiBPcmRlcjogS0wsIEtSLCBLQSwgS0IKKyAgICAgKi8KKyAgICBtZW1zZXQoS0MsIDAsIHNpemVvZihLQykpOworCisgICAgLyogU3RvcmUgS0wsIEtSICovCisgICAgZm9yIChpID0gMDsgaSA8IDg7IGkrKykgeworICAgICAgICBLQ1tpXSA9IE1CRURUTFNfR0VUX1VJTlQzMl9CRSh0LCBpICogNCk7CisgICAgfQorCisgICAgLyogR2VuZXJhdGUgS0EgKi8KKyAgICBmb3IgKGkgPSAwOyBpIDwgNDsgKytpKSB7CisgICAgICAgIEtDWzggKyBpXSA9IEtDW2ldIF4gS0NbNCArIGldOworICAgIH0KKworICAgIGNhbWVsbGlhX2ZlaXN0ZWwoS0MgKyA4LCBTSUdNQVswXSwgS0MgKyAxMCk7CisgICAgY2FtZWxsaWFfZmVpc3RlbChLQyArIDEwLCBTSUdNQVsxXSwgS0MgKyA4KTsKKworICAgIGZvciAoaSA9IDA7IGkgPCA0OyArK2kpIHsKKyAgICAgICAgS0NbOCArIGldIF49IEtDW2ldOworICAgIH0KKworICAgIGNhbWVsbGlhX2ZlaXN0ZWwoS0MgKyA4LCBTSUdNQVsyXSwgS0MgKyAxMCk7CisgICAgY2FtZWxsaWFfZmVpc3RlbChLQyArIDEwLCBTSUdNQVszXSwgS0MgKyA4KTsKKworICAgIGlmIChrZXliaXRzID4gMTI4KSB7CisgICAgICAgIC8qIEdlbmVyYXRlIEtCICovCisgICAgICAgIGZvciAoaSA9IDA7IGkgPCA0OyArK2kpIHsKKyAgICAgICAgICAgIEtDWzEyICsgaV0gPSBLQ1s0ICsgaV0gXiBLQ1s4ICsgaV07CisgICAgICAgIH0KKworICAgICAgICBjYW1lbGxpYV9mZWlzdGVsKEtDICsgMTIsIFNJR01BWzRdLCBLQyArIDE0KTsKKyAgICAgICAgY2FtZWxsaWFfZmVpc3RlbChLQyArIDE0LCBTSUdNQVs1XSwgS0MgKyAxMik7CisgICAgfQorCisgICAgLyoKKyAgICAgKiBHZW5lcmF0aW5nIHN1YmtleXMKKyAgICAgKi8KKworICAgIC8qIE1hbmlwdWxhdGluZyBLTCAqLworICAgIFNISUZUX0FORF9QTEFDRShpZHgsIDApOworCisgICAgLyogTWFuaXB1bGF0aW5nIEtSICovCisgICAgaWYgKGtleWJpdHMgPiAxMjgpIHsKKyAgICAgICAgU0hJRlRfQU5EX1BMQUNFKGlkeCwgMSk7CisgICAgfQorCisgICAgLyogTWFuaXB1bGF0aW5nIEtBICovCisgICAgU0hJRlRfQU5EX1BMQUNFKGlkeCwgMik7CisKKyAgICAvKiBNYW5pcHVsYXRpbmcgS0IgKi8KKyAgICBpZiAoa2V5Yml0cyA+IDEyOCkgeworICAgICAgICBTSElGVF9BTkRfUExBQ0UoaWR4LCAzKTsKKyAgICB9CisKKyAgICAvKiBEbyB0cmFuc3Bvc2l0aW9ucyAqLworICAgIGZvciAoaSA9IDA7IGkgPCAyMDsgaSsrKSB7CisgICAgICAgIGlmICh0cmFuc3Bvc2VzW2lkeF1baV0gIT0gLTEpIHsKKyAgICAgICAgICAgIFJLWzMyICsgMTIgKiBpZHggKyBpXSA9IFJLW3RyYW5zcG9zZXNbaWR4XVtpXV07CisgICAgICAgIH0KKyAgICB9CisKKyAgICByZXR1cm4gMDsKK30KKworLyoKKyAqIENhbWVsbGlhIGtleSBzY2hlZHVsZSAoZGVjcnlwdGlvbikKKyAqLworI2lmICFkZWZpbmVkKE1CRURUTFNfQkxPQ0tfQ0lQSEVSX05PX0RFQ1JZUFQpCitpbnQgbWJlZHRsc19jYW1lbGxpYV9zZXRrZXlfZGVjKG1iZWR0bHNfY2FtZWxsaWFfY29udGV4dCAqY3R4LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1bnNpZ25lZCBjaGFyICprZXksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCBrZXliaXRzKQoreworICAgIGludCBpZHgsIHJldDsKKyAgICBzaXplX3QgaTsKKyAgICBtYmVkdGxzX2NhbWVsbGlhX2NvbnRleHQgY3R5OworICAgIHVpbnQzMl90ICpSSzsKKyAgICB1aW50MzJfdCAqU0s7CisKKyAgICBtYmVkdGxzX2NhbWVsbGlhX2luaXQoJmN0eSk7CisKKyAgICAvKiBBbHNvIGNoZWNrcyBrZXliaXRzICovCisgICAgaWYgKChyZXQgPSBtYmVkdGxzX2NhbWVsbGlhX3NldGtleV9lbmMoJmN0eSwga2V5LCBrZXliaXRzKSkgIT0gMCkgeworICAgICAgICBnb3RvIGV4aXQ7CisgICAgfQorCisgICAgY3R4LT5uciA9IGN0eS5ucjsKKyAgICBpZHggPSAoY3R4LT5uciA9PSA0KTsKKworICAgIFJLID0gY3R4LT5yazsKKyAgICBTSyA9IGN0eS5yayArIDI0ICogMiArIDggKiBpZHggKiAyOworCisgICAgKlJLKysgPSAqU0srKzsKKyAgICAqUksrKyA9ICpTSysrOworICAgICpSSysrID0gKlNLKys7CisgICAgKlJLKysgPSAqU0srKzsKKworICAgIGZvciAoaSA9IDIyICsgOCAqIGlkeCwgU0sgLT0gNjsgaSA+IDA7IGktLSwgU0sgLT0gNCkgeworICAgICAgICAqUksrKyA9ICpTSysrOworICAgICAgICAqUksrKyA9ICpTSysrOworICAgIH0KKworICAgIFNLIC09IDI7CisKKyAgICAqUksrKyA9ICpTSysrOworICAgICpSSysrID0gKlNLKys7CisgICAgKlJLKysgPSAqU0srKzsKKyAgICAqUksrKyA9ICpTSysrOworCitleGl0OgorICAgIG1iZWR0bHNfY2FtZWxsaWFfZnJlZSgmY3R5KTsKKworICAgIHJldHVybiByZXQ7Cit9CisjZW5kaWYgLyogIU1CRURUTFNfQkxPQ0tfQ0lQSEVSX05PX0RFQ1JZUFQgKi8KKworLyoKKyAqIENhbWVsbGlhLUVDQiBibG9jayBlbmNyeXB0aW9uL2RlY3J5cHRpb24KKyAqLworaW50IG1iZWR0bHNfY2FtZWxsaWFfY3J5cHRfZWNiKG1iZWR0bHNfY2FtZWxsaWFfY29udGV4dCAqY3R4LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBtb2RlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgaW5wdXRbMTZdLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGNoYXIgb3V0cHV0WzE2XSkKK3sKKyAgICBpbnQgTlI7CisgICAgdWludDMyX3QgKlJLLCBYWzRdOworICAgIGlmIChtb2RlICE9IE1CRURUTFNfQ0FNRUxMSUFfRU5DUllQVCAmJiBtb2RlICE9IE1CRURUTFNfQ0FNRUxMSUFfREVDUllQVCkgeworICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfQ0FNRUxMSUFfQkFEX0lOUFVUX0RBVEE7CisgICAgfQorCisgICAgKCh2b2lkKSBtb2RlKTsKKworICAgIE5SID0gY3R4LT5ucjsKKyAgICBSSyA9IGN0eC0+cms7CisKKyAgICBYWzBdID0gTUJFRFRMU19HRVRfVUlOVDMyX0JFKGlucHV0LCAgMCk7CisgICAgWFsxXSA9IE1CRURUTFNfR0VUX1VJTlQzMl9CRShpbnB1dCwgIDQpOworICAgIFhbMl0gPSBNQkVEVExTX0dFVF9VSU5UMzJfQkUoaW5wdXQsICA4KTsKKyAgICBYWzNdID0gTUJFRFRMU19HRVRfVUlOVDMyX0JFKGlucHV0LCAxMik7CisKKyAgICBYWzBdIF49ICpSSysrOworICAgIFhbMV0gXj0gKlJLKys7CisgICAgWFsyXSBePSAqUksrKzsKKyAgICBYWzNdIF49ICpSSysrOworCisgICAgd2hpbGUgKE5SKSB7CisgICAgICAgIC0tTlI7CisgICAgICAgIGNhbWVsbGlhX2ZlaXN0ZWwoWCwgUkssIFggKyAyKTsKKyAgICAgICAgUksgKz0gMjsKKyAgICAgICAgY2FtZWxsaWFfZmVpc3RlbChYICsgMiwgUkssIFgpOworICAgICAgICBSSyArPSAyOworICAgICAgICBjYW1lbGxpYV9mZWlzdGVsKFgsIFJLLCBYICsgMik7CisgICAgICAgIFJLICs9IDI7CisgICAgICAgIGNhbWVsbGlhX2ZlaXN0ZWwoWCArIDIsIFJLLCBYKTsKKyAgICAgICAgUksgKz0gMjsKKyAgICAgICAgY2FtZWxsaWFfZmVpc3RlbChYLCBSSywgWCArIDIpOworICAgICAgICBSSyArPSAyOworICAgICAgICBjYW1lbGxpYV9mZWlzdGVsKFggKyAyLCBSSywgWCk7CisgICAgICAgIFJLICs9IDI7CisKKyAgICAgICAgaWYgKE5SKSB7CisgICAgICAgICAgICBGTChYWzBdLCBYWzFdLCBSS1swXSwgUktbMV0pOworICAgICAgICAgICAgUksgKz0gMjsKKyAgICAgICAgICAgIEZMSW52KFhbMl0sIFhbM10sIFJLWzBdLCBSS1sxXSk7CisgICAgICAgICAgICBSSyArPSAyOworICAgICAgICB9CisgICAgfQorCisgICAgWFsyXSBePSAqUksrKzsKKyAgICBYWzNdIF49ICpSSysrOworICAgIFhbMF0gXj0gKlJLKys7CisgICAgWFsxXSBePSAqUksrKzsKKworICAgIE1CRURUTFNfUFVUX1VJTlQzMl9CRShYWzJdLCBvdXRwdXQsICAwKTsKKyAgICBNQkVEVExTX1BVVF9VSU5UMzJfQkUoWFszXSwgb3V0cHV0LCAgNCk7CisgICAgTUJFRFRMU19QVVRfVUlOVDMyX0JFKFhbMF0sIG91dHB1dCwgIDgpOworICAgIE1CRURUTFNfUFVUX1VJTlQzMl9CRShYWzFdLCBvdXRwdXQsIDEyKTsKKworICAgIHJldHVybiAwOworfQorCisjaWYgZGVmaW5lZChNQkVEVExTX0NJUEhFUl9NT0RFX0NCQykKKy8qCisgKiBDYW1lbGxpYS1DQkMgYnVmZmVyIGVuY3J5cHRpb24vZGVjcnlwdGlvbgorICovCitpbnQgbWJlZHRsc19jYW1lbGxpYV9jcnlwdF9jYmMobWJlZHRsc19jYW1lbGxpYV9jb250ZXh0ICpjdHgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IG1vZGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IGxlbmd0aCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBjaGFyIGl2WzE2XSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1bnNpZ25lZCBjaGFyICppbnB1dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBjaGFyICpvdXRwdXQpCit7CisgICAgdW5zaWduZWQgY2hhciB0ZW1wWzE2XTsKKyAgICBpZiAobW9kZSAhPSBNQkVEVExTX0NBTUVMTElBX0VOQ1JZUFQgJiYgbW9kZSAhPSBNQkVEVExTX0NBTUVMTElBX0RFQ1JZUFQpIHsKKyAgICAgICAgcmV0dXJuIE1CRURUTFNfRVJSX0NBTUVMTElBX0JBRF9JTlBVVF9EQVRBOworICAgIH0KKworICAgIGlmIChsZW5ndGggJSAxNikgeworICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfQ0FNRUxMSUFfSU5WQUxJRF9JTlBVVF9MRU5HVEg7CisgICAgfQorCisgICAgaWYgKG1vZGUgPT0gTUJFRFRMU19DQU1FTExJQV9ERUNSWVBUKSB7CisgICAgICAgIHdoaWxlIChsZW5ndGggPiAwKSB7CisgICAgICAgICAgICBtZW1jcHkodGVtcCwgaW5wdXQsIDE2KTsKKyAgICAgICAgICAgIG1iZWR0bHNfY2FtZWxsaWFfY3J5cHRfZWNiKGN0eCwgbW9kZSwgaW5wdXQsIG91dHB1dCk7CisKKyAgICAgICAgICAgIG1iZWR0bHNfeG9yKG91dHB1dCwgb3V0cHV0LCBpdiwgMTYpOworCisgICAgICAgICAgICBtZW1jcHkoaXYsIHRlbXAsIDE2KTsKKworICAgICAgICAgICAgaW5wdXQgICs9IDE2OworICAgICAgICAgICAgb3V0cHV0ICs9IDE2OworICAgICAgICAgICAgbGVuZ3RoIC09IDE2OworICAgICAgICB9CisgICAgfSBlbHNlIHsKKyAgICAgICAgd2hpbGUgKGxlbmd0aCA+IDApIHsKKyAgICAgICAgICAgIG1iZWR0bHNfeG9yKG91dHB1dCwgaW5wdXQsIGl2LCAxNik7CisKKyAgICAgICAgICAgIG1iZWR0bHNfY2FtZWxsaWFfY3J5cHRfZWNiKGN0eCwgbW9kZSwgb3V0cHV0LCBvdXRwdXQpOworICAgICAgICAgICAgbWVtY3B5KGl2LCBvdXRwdXQsIDE2KTsKKworICAgICAgICAgICAgaW5wdXQgICs9IDE2OworICAgICAgICAgICAgb3V0cHV0ICs9IDE2OworICAgICAgICAgICAgbGVuZ3RoIC09IDE2OworICAgICAgICB9CisgICAgfQorCisgICAgcmV0dXJuIDA7Cit9CisjZW5kaWYgLyogTUJFRFRMU19DSVBIRVJfTU9ERV9DQkMgKi8KKworI2lmIGRlZmluZWQoTUJFRFRMU19DSVBIRVJfTU9ERV9DRkIpCisvKgorICogQ2FtZWxsaWEtQ0ZCMTI4IGJ1ZmZlciBlbmNyeXB0aW9uL2RlY3J5cHRpb24KKyAqLworaW50IG1iZWR0bHNfY2FtZWxsaWFfY3J5cHRfY2ZiMTI4KG1iZWR0bHNfY2FtZWxsaWFfY29udGV4dCAqY3R4LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBtb2RlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBsZW5ndGgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90ICppdl9vZmYsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgY2hhciBpdlsxNl0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdW5zaWduZWQgY2hhciAqaW5wdXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgY2hhciAqb3V0cHV0KQoreworICAgIGludCBjOworICAgIHNpemVfdCBuOworICAgIGlmIChtb2RlICE9IE1CRURUTFNfQ0FNRUxMSUFfRU5DUllQVCAmJiBtb2RlICE9IE1CRURUTFNfQ0FNRUxMSUFfREVDUllQVCkgeworICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfQ0FNRUxMSUFfQkFEX0lOUFVUX0RBVEE7CisgICAgfQorCisgICAgbiA9ICppdl9vZmY7CisgICAgaWYgKG4gPj0gMTYpIHsKKyAgICAgICAgcmV0dXJuIE1CRURUTFNfRVJSX0NBTUVMTElBX0JBRF9JTlBVVF9EQVRBOworICAgIH0KKworICAgIGlmIChtb2RlID09IE1CRURUTFNfQ0FNRUxMSUFfREVDUllQVCkgeworICAgICAgICB3aGlsZSAobGVuZ3RoLS0pIHsKKyAgICAgICAgICAgIGlmIChuID09IDApIHsKKyAgICAgICAgICAgICAgICBtYmVkdGxzX2NhbWVsbGlhX2NyeXB0X2VjYihjdHgsIE1CRURUTFNfQ0FNRUxMSUFfRU5DUllQVCwgaXYsIGl2KTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgYyA9ICppbnB1dCsrOworICAgICAgICAgICAgKm91dHB1dCsrID0gKHVuc2lnbmVkIGNoYXIpIChjIF4gaXZbbl0pOworICAgICAgICAgICAgaXZbbl0gPSAodW5zaWduZWQgY2hhcikgYzsKKworICAgICAgICAgICAgbiA9IChuICsgMSkgJiAweDBGOworICAgICAgICB9CisgICAgfSBlbHNlIHsKKyAgICAgICAgd2hpbGUgKGxlbmd0aC0tKSB7CisgICAgICAgICAgICBpZiAobiA9PSAwKSB7CisgICAgICAgICAgICAgICAgbWJlZHRsc19jYW1lbGxpYV9jcnlwdF9lY2IoY3R4LCBNQkVEVExTX0NBTUVMTElBX0VOQ1JZUFQsIGl2LCBpdik7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGl2W25dID0gKm91dHB1dCsrID0gKHVuc2lnbmVkIGNoYXIpIChpdltuXSBeICppbnB1dCsrKTsKKworICAgICAgICAgICAgbiA9IChuICsgMSkgJiAweDBGOworICAgICAgICB9CisgICAgfQorCisgICAgKml2X29mZiA9IG47CisKKyAgICByZXR1cm4gMDsKK30KKyNlbmRpZiAvKiBNQkVEVExTX0NJUEhFUl9NT0RFX0NGQiAqLworCisjaWYgZGVmaW5lZChNQkVEVExTX0NJUEhFUl9NT0RFX0NUUikKKy8qCisgKiBDYW1lbGxpYS1DVFIgYnVmZmVyIGVuY3J5cHRpb24vZGVjcnlwdGlvbgorICovCitpbnQgbWJlZHRsc19jYW1lbGxpYV9jcnlwdF9jdHIobWJlZHRsc19jYW1lbGxpYV9jb250ZXh0ICpjdHgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IGxlbmd0aCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgKm5jX29mZiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBjaGFyIG5vbmNlX2NvdW50ZXJbMTZdLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGNoYXIgc3RyZWFtX2Jsb2NrWzE2XSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1bnNpZ25lZCBjaGFyICppbnB1dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBjaGFyICpvdXRwdXQpCit7CisgICAgaW50IGMsIGk7CisgICAgc2l6ZV90IG47CisKKyAgICBuID0gKm5jX29mZjsKKyAgICBpZiAobiA+PSAxNikgeworICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfQ0FNRUxMSUFfQkFEX0lOUFVUX0RBVEE7CisgICAgfQorCisgICAgd2hpbGUgKGxlbmd0aC0tKSB7CisgICAgICAgIGlmIChuID09IDApIHsKKyAgICAgICAgICAgIG1iZWR0bHNfY2FtZWxsaWFfY3J5cHRfZWNiKGN0eCwgTUJFRFRMU19DQU1FTExJQV9FTkNSWVBULCBub25jZV9jb3VudGVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RyZWFtX2Jsb2NrKTsKKworICAgICAgICAgICAgZm9yIChpID0gMTY7IGkgPiAwOyBpLS0pIHsKKyAgICAgICAgICAgICAgICBpZiAoKytub25jZV9jb3VudGVyW2kgLSAxXSAhPSAwKSB7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBjID0gKmlucHV0Kys7CisgICAgICAgICpvdXRwdXQrKyA9ICh1bnNpZ25lZCBjaGFyKSAoYyBeIHN0cmVhbV9ibG9ja1tuXSk7CisKKyAgICAgICAgbiA9IChuICsgMSkgJiAweDBGOworICAgIH0KKworICAgICpuY19vZmYgPSBuOworCisgICAgcmV0dXJuIDA7Cit9CisjZW5kaWYgLyogTUJFRFRMU19DSVBIRVJfTU9ERV9DVFIgKi8KKworI2lmIGRlZmluZWQoTUJFRFRMU19TRUxGX1RFU1QpCisKKy8qCisgKiBDYW1lbGxpYSB0ZXN0IHZlY3RvcnMgZnJvbToKKyAqCisgKiBodHRwOi8vaW5mby5pc2wubnR0LmNvLmpwL2NyeXB0L2VuZy9jYW1lbGxpYS90ZWNobm9sb2d5Lmh0bWw6CisgKiAgIGh0dHA6Ly9pbmZvLmlzbC5udHQuY28uanAvY3J5cHQvZW5nL2NhbWVsbGlhL2RsL2NyeXB0cmVjL2ludGVybWVkaWF0ZS50eHQKKyAqICAgaHR0cDovL2luZm8uaXNsLm50dC5jby5qcC9jcnlwdC9lbmcvY2FtZWxsaWEvZGwvY3J5cHRyZWMvdF9jYW1lbGxpYS50eHQKKyAqICAgICAgICAgICAgICAgICAgICAgIChGb3IgZWFjaCBiaXRsZW5ndGg6IEtleSAwLCBOciAzOSkKKyAqLworI2RlZmluZSBDQU1FTExJQV9URVNUU19FQ0IgIDIKKworc3RhdGljIGNvbnN0IHVuc2lnbmVkIGNoYXIgY2FtZWxsaWFfdGVzdF9lY2Jfa2V5WzNdW0NBTUVMTElBX1RFU1RTX0VDQl1bMzJdID0KK3sKKyAgICB7CisgICAgICAgIHsgMHgwMSwgMHgyMywgMHg0NSwgMHg2NywgMHg4OSwgMHhhYiwgMHhjZCwgMHhlZiwKKyAgICAgICAgICAweGZlLCAweGRjLCAweGJhLCAweDk4LCAweDc2LCAweDU0LCAweDMyLCAweDEwIH0sCisgICAgICAgIHsgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKKyAgICAgICAgICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwIH0KKyAgICB9LAorICAgIHsKKyAgICAgICAgeyAweDAxLCAweDIzLCAweDQ1LCAweDY3LCAweDg5LCAweGFiLCAweGNkLCAweGVmLAorICAgICAgICAgIDB4ZmUsIDB4ZGMsIDB4YmEsIDB4OTgsIDB4NzYsIDB4NTQsIDB4MzIsIDB4MTAsCisgICAgICAgICAgMHgwMCwgMHgxMSwgMHgyMiwgMHgzMywgMHg0NCwgMHg1NSwgMHg2NiwgMHg3NyB9LAorICAgICAgICB7IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCisgICAgICAgICAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKKyAgICAgICAgICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwIH0KKyAgICB9LAorICAgIHsKKyAgICAgICAgeyAweDAxLCAweDIzLCAweDQ1LCAweDY3LCAweDg5LCAweGFiLCAweGNkLCAweGVmLAorICAgICAgICAgIDB4ZmUsIDB4ZGMsIDB4YmEsIDB4OTgsIDB4NzYsIDB4NTQsIDB4MzIsIDB4MTAsCisgICAgICAgICAgMHgwMCwgMHgxMSwgMHgyMiwgMHgzMywgMHg0NCwgMHg1NSwgMHg2NiwgMHg3NywKKyAgICAgICAgICAweDg4LCAweDk5LCAweGFhLCAweGJiLCAweGNjLCAweGRkLCAweGVlLCAweGZmIH0sCisgICAgICAgIHsgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKKyAgICAgICAgICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAorICAgICAgICAgIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCisgICAgICAgICAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCB9CisgICAgfSwKK307CisKK3N0YXRpYyBjb25zdCB1bnNpZ25lZCBjaGFyIGNhbWVsbGlhX3Rlc3RfZWNiX3BsYWluW0NBTUVMTElBX1RFU1RTX0VDQl1bMTZdID0KK3sKKyAgICB7IDB4MDEsIDB4MjMsIDB4NDUsIDB4NjcsIDB4ODksIDB4YWIsIDB4Y2QsIDB4ZWYsCisgICAgICAweGZlLCAweGRjLCAweGJhLCAweDk4LCAweDc2LCAweDU0LCAweDMyLCAweDEwIH0sCisgICAgeyAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAyLCAweDAwLCAweDAwLCAweDAwLAorICAgICAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCB9Cit9OworCitzdGF0aWMgY29uc3QgdW5zaWduZWQgY2hhciBjYW1lbGxpYV90ZXN0X2VjYl9jaXBoZXJbM11bQ0FNRUxMSUFfVEVTVFNfRUNCXVsxNl0gPQoreworICAgIHsKKyAgICAgICAgeyAweDY3LCAweDY3LCAweDMxLCAweDM4LCAweDU0LCAweDk2LCAweDY5LCAweDczLAorICAgICAgICAgIDB4MDgsIDB4NTcsIDB4MDYsIDB4NTYsIDB4NDgsIDB4ZWEsIDB4YmUsIDB4NDMgfSwKKyAgICAgICAgeyAweDM4LCAweDNDLCAweDZDLCAweDJBLCAweEFCLCAweEVGLCAweDdGLCAweERFLAorICAgICAgICAgIDB4MjUsIDB4Q0QsIDB4NDcsIDB4MEIsIDB4RjcsIDB4NzQsIDB4QTMsIDB4MzEgfQorICAgIH0sCisgICAgeworICAgICAgICB7IDB4YjQsIDB4OTksIDB4MzQsIDB4MDEsIDB4YjMsIDB4ZTksIDB4OTYsIDB4ZjgsCisgICAgICAgICAgMHg0ZSwgMHhlNSwgMHhjZSwgMHhlNywgMHhkNywgMHg5YiwgMHgwOSwgMHhiOSB9LAorICAgICAgICB7IDB4RDEsIDB4NzYsIDB4M0YsIDB4QzAsIDB4MTksIDB4RDcsIDB4N0MsIDB4QzksCisgICAgICAgICAgMHgzMCwgMHhCRiwgMHhGMiwgMHhBNSwgMHg2RiwgMHg3QywgMHg5MywgMHg2NCB9CisgICAgfSwKKyAgICB7CisgICAgICAgIHsgMHg5YSwgMHhjYywgMHgyMywgMHg3ZCwgMHhmZiwgMHgxNiwgMHhkNywgMHg2YywKKyAgICAgICAgICAweDIwLCAweGVmLCAweDdjLCAweDkxLCAweDllLCAweDNhLCAweDc1LCAweDA5IH0sCisgICAgICAgIHsgMHgwNSwgMHgwMywgMHhGQiwgMHgxMCwgMHhBQiwgMHgyNCwgMHgxRSwgMHg3QywKKyAgICAgICAgICAweEY0LCAweDVELCAweDhDLCAweERFLCAweEVFLCAweDQ3LCAweDQzLCAweDM1IH0KKyAgICB9Cit9OworCisjaWYgZGVmaW5lZChNQkVEVExTX0NJUEhFUl9NT0RFX0NCQykKKyNkZWZpbmUgQ0FNRUxMSUFfVEVTVFNfQ0JDICAzCisKK3N0YXRpYyBjb25zdCB1bnNpZ25lZCBjaGFyIGNhbWVsbGlhX3Rlc3RfY2JjX2tleVszXVszMl0gPQoreworICAgIHsgMHgyQiwgMHg3RSwgMHgxNSwgMHgxNiwgMHgyOCwgMHhBRSwgMHhEMiwgMHhBNiwKKyAgICAgIDB4QUIsIDB4RjcsIDB4MTUsIDB4ODgsIDB4MDksIDB4Q0YsIDB4NEYsIDB4M0MgfQorICAgICwKKyAgICB7IDB4OEUsIDB4NzMsIDB4QjAsIDB4RjcsIDB4REEsIDB4MEUsIDB4NjQsIDB4NTIsCisgICAgICAweEM4LCAweDEwLCAweEYzLCAweDJCLCAweDgwLCAweDkwLCAweDc5LCAweEU1LAorICAgICAgMHg2MiwgMHhGOCwgMHhFQSwgMHhEMiwgMHg1MiwgMHgyQywgMHg2QiwgMHg3QiB9CisgICAgLAorICAgIHsgMHg2MCwgMHgzRCwgMHhFQiwgMHgxMCwgMHgxNSwgMHhDQSwgMHg3MSwgMHhCRSwKKyAgICAgIDB4MkIsIDB4NzMsIDB4QUUsIDB4RjAsIDB4ODUsIDB4N0QsIDB4NzcsIDB4ODEsCisgICAgICAweDFGLCAweDM1LCAweDJDLCAweDA3LCAweDNCLCAweDYxLCAweDA4LCAweEQ3LAorICAgICAgMHgyRCwgMHg5OCwgMHgxMCwgMHhBMywgMHgwOSwgMHgxNCwgMHhERiwgMHhGNCB9Cit9OworCitzdGF0aWMgY29uc3QgdW5zaWduZWQgY2hhciBjYW1lbGxpYV90ZXN0X2NiY19pdlsxNl0gPQorCit7IDB4MDAsIDB4MDEsIDB4MDIsIDB4MDMsIDB4MDQsIDB4MDUsIDB4MDYsIDB4MDcsCisgIDB4MDgsIDB4MDksIDB4MEEsIDB4MEIsIDB4MEMsIDB4MEQsIDB4MEUsIDB4MEYgfQorOworCitzdGF0aWMgY29uc3QgdW5zaWduZWQgY2hhciBjYW1lbGxpYV90ZXN0X2NiY19wbGFpbltDQU1FTExJQV9URVNUU19DQkNdWzE2XSA9Cit7CisgICAgeyAweDZCLCAweEMxLCAweEJFLCAweEUyLCAweDJFLCAweDQwLCAweDlGLCAweDk2LAorICAgICAgMHhFOSwgMHgzRCwgMHg3RSwgMHgxMSwgMHg3MywgMHg5MywgMHgxNywgMHgyQSB9LAorICAgIHsgMHhBRSwgMHgyRCwgMHg4QSwgMHg1NywgMHgxRSwgMHgwMywgMHhBQywgMHg5QywKKyAgICAgIDB4OUUsIDB4QjcsIDB4NkYsIDB4QUMsIDB4NDUsIDB4QUYsIDB4OEUsIDB4NTEgfSwKKyAgICB7IDB4MzAsIDB4QzgsIDB4MUMsIDB4NDYsIDB4QTMsIDB4NUMsIDB4RTQsIDB4MTEsCisgICAgICAweEU1LCAweEZCLCAweEMxLCAweDE5LCAweDFBLCAweDBBLCAweDUyLCAweEVGIH0KKworfTsKKworc3RhdGljIGNvbnN0IHVuc2lnbmVkIGNoYXIgY2FtZWxsaWFfdGVzdF9jYmNfY2lwaGVyWzNdW0NBTUVMTElBX1RFU1RTX0NCQ11bMTZdID0KK3sKKyAgICB7CisgICAgICAgIHsgMHgxNiwgMHgwNywgMHhDRiwgMHg0OSwgMHg0QiwgMHgzNiwgMHhCQiwgMHhGMCwKKyAgICAgICAgICAweDBELCAweEFFLCAweEIwLCAweEI1LCAweDAzLCAweEM4LCAweDMxLCAweEFCIH0sCisgICAgICAgIHsgMHhBMiwgMHhGMiwgMHhDRiwgMHg2NywgMHgxNiwgMHgyOSwgMHhFRiwgMHg3OCwKKyAgICAgICAgICAweDQwLCAweEM1LCAweEE1LCAweERGLCAweEI1LCAweDA3LCAweDQ4LCAweDg3IH0sCisgICAgICAgIHsgMHgwRiwgMHgwNiwgMHgxNiwgMHg1MCwgMHgwOCwgMHhDRiwgMHg4QiwgMHg4QiwKKyAgICAgICAgICAweDVBLCAweDYzLCAweDU4LCAweDYzLCAweDYyLCAweDU0LCAweDNFLCAweDU0IH0KKyAgICB9LAorICAgIHsKKyAgICAgICAgeyAweDJBLCAweDQ4LCAweDMwLCAweEFCLCAweDVBLCAweEM0LCAweEExLCAweEEyLAorICAgICAgICAgIDB4NDAsIDB4NTksIDB4NTUsIDB4RkQsIDB4MjEsIDB4OTUsIDB4Q0YsIDB4OTMgfSwKKyAgICAgICAgeyAweDVELCAweDVBLCAweDg2LCAweDlCLCAweEQxLCAweDRDLCAweEU1LCAweDQyLAorICAgICAgICAgIDB4NjQsIDB4RjgsIDB4OTIsIDB4QTYsIDB4REQsIDB4MkUsIDB4QzMsIDB4RDUgfSwKKyAgICAgICAgeyAweDM3LCAweEQzLCAweDU5LCAweEMzLCAweDM0LCAweDk4LCAweDM2LCAweEQ4LAorICAgICAgICAgIDB4ODQsIDB4RTMsIDB4MTAsIDB4QUQsIDB4REYsIDB4NjgsIDB4QzQsIDB4NDkgfQorICAgIH0sCisgICAgeworICAgICAgICB7IDB4RTYsIDB4Q0YsIDB4QTMsIDB4NUYsIDB4QzAsIDB4MkIsIDB4MTMsIDB4NEEsCisgICAgICAgICAgMHg0RCwgMHgyQywgMHgwQiwgMHg2NywgMHgzNywgMHhBQywgMHgzRSwgMHhEQSB9LAorICAgICAgICB7IDB4MzYsIDB4Q0IsIDB4RUIsIDB4NzMsIDB4QkQsIDB4NTAsIDB4NEIsIDB4NDAsCisgICAgICAgICAgMHg3MCwgMHhCMSwgMHhCNywgMHhERSwgMHgyQiwgMHgyMSwgMHhFQiwgMHg1MCB9LAorICAgICAgICB7IDB4RTMsIDB4MUEsIDB4NjAsIDB4NTUsIDB4MjksIDB4N0QsIDB4OTYsIDB4Q0EsCisgICAgICAgICAgMHgzMywgMHgzMCwgMHhDRCwgMHhGMSwgMHhCMSwgMHg4NiwgMHgwQSwgMHg4MyB9CisgICAgfQorfTsKKyNlbmRpZiAvKiBNQkVEVExTX0NJUEhFUl9NT0RFX0NCQyAqLworCisjaWYgZGVmaW5lZChNQkVEVExTX0NJUEhFUl9NT0RFX0NUUikKKy8qCisgKiBDYW1lbGxpYS1DVFIgdGVzdCB2ZWN0b3JzIGZyb206CisgKgorICogaHR0cDovL3d3dy5mYXFzLm9yZy9yZmNzL3JmYzU1MjguaHRtbAorICovCisKK3N0YXRpYyBjb25zdCB1bnNpZ25lZCBjaGFyIGNhbWVsbGlhX3Rlc3RfY3RyX2tleVszXVsxNl0gPQoreworICAgIHsgMHhBRSwgMHg2OCwgMHg1MiwgMHhGOCwgMHgxMiwgMHgxMCwgMHg2NywgMHhDQywKKyAgICAgIDB4NEIsIDB4RjcsIDB4QTUsIDB4NzYsIDB4NTUsIDB4NzcsIDB4RjMsIDB4OUUgfSwKKyAgICB7IDB4N0UsIDB4MjQsIDB4MDYsIDB4NzgsIDB4MTcsIDB4RkEsIDB4RTAsIDB4RDcsCisgICAgICAweDQzLCAweEQ2LCAweENFLCAweDFGLCAweDMyLCAweDUzLCAweDkxLCAweDYzIH0sCisgICAgeyAweDc2LCAweDkxLCAweEJFLCAweDAzLCAweDVFLCAweDUwLCAweDIwLCAweEE4LAorICAgICAgMHhBQywgMHg2RSwgMHg2MSwgMHg4NSwgMHgyOSwgMHhGOSwgMHhBMCwgMHhEQyB9Cit9OworCitzdGF0aWMgY29uc3QgdW5zaWduZWQgY2hhciBjYW1lbGxpYV90ZXN0X2N0cl9ub25jZV9jb3VudGVyWzNdWzE2XSA9Cit7CisgICAgeyAweDAwLCAweDAwLCAweDAwLCAweDMwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAorICAgICAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMSB9LAorICAgIHsgMHgwMCwgMHg2QywgMHhCNiwgMHhEQiwgMHhDMCwgMHg1NCwgMHgzQiwgMHg1OSwKKyAgICAgIDB4REEsIDB4NDgsIDB4RDksIDB4MEIsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDEgfSwKKyAgICB7IDB4MDAsIDB4RTAsIDB4MDEsIDB4N0IsIDB4MjcsIDB4NzcsIDB4N0YsIDB4M0YsCisgICAgICAweDRBLCAweDE3LCAweDg2LCAweEYwLCAweDAwLCAweDAwLCAweDAwLCAweDAxIH0KK307CisKK3N0YXRpYyBjb25zdCB1bnNpZ25lZCBjaGFyIGNhbWVsbGlhX3Rlc3RfY3RyX3B0WzNdWzQ4XSA9Cit7CisgICAgeyAweDUzLCAweDY5LCAweDZFLCAweDY3LCAweDZDLCAweDY1LCAweDIwLCAweDYyLAorICAgICAgMHg2QywgMHg2RiwgMHg2MywgMHg2QiwgMHgyMCwgMHg2RCwgMHg3MywgMHg2NyB9LAorCisgICAgeyAweDAwLCAweDAxLCAweDAyLCAweDAzLCAweDA0LCAweDA1LCAweDA2LCAweDA3LAorICAgICAgMHgwOCwgMHgwOSwgMHgwQSwgMHgwQiwgMHgwQywgMHgwRCwgMHgwRSwgMHgwRiwKKyAgICAgIDB4MTAsIDB4MTEsIDB4MTIsIDB4MTMsIDB4MTQsIDB4MTUsIDB4MTYsIDB4MTcsCisgICAgICAweDE4LCAweDE5LCAweDFBLCAweDFCLCAweDFDLCAweDFELCAweDFFLCAweDFGIH0sCisKKyAgICB7IDB4MDAsIDB4MDEsIDB4MDIsIDB4MDMsIDB4MDQsIDB4MDUsIDB4MDYsIDB4MDcsCisgICAgICAweDA4LCAweDA5LCAweDBBLCAweDBCLCAweDBDLCAweDBELCAweDBFLCAweDBGLAorICAgICAgMHgxMCwgMHgxMSwgMHgxMiwgMHgxMywgMHgxNCwgMHgxNSwgMHgxNiwgMHgxNywKKyAgICAgIDB4MTgsIDB4MTksIDB4MUEsIDB4MUIsIDB4MUMsIDB4MUQsIDB4MUUsIDB4MUYsCisgICAgICAweDIwLCAweDIxLCAweDIyLCAweDIzIH0KK307CisKK3N0YXRpYyBjb25zdCB1bnNpZ25lZCBjaGFyIGNhbWVsbGlhX3Rlc3RfY3RyX2N0WzNdWzQ4XSA9Cit7CisgICAgeyAweEQwLCAweDlELCAweEMyLCAweDlBLCAweDgyLCAweDE0LCAweDYxLCAweDlBLAorICAgICAgMHgyMCwgMHg4NywgMHg3QywgMHg3NiwgMHhEQiwgMHgxRiwgMHgwQiwgMHgzRiB9LAorICAgIHsgMHhEQiwgMHhGMywgMHhDNywgMHg4RCwgMHhDMCwgMHg4MywgMHg5NiwgMHhENCwKKyAgICAgIDB4REEsIDB4N0MsIDB4OTAsIDB4NzcsIDB4NjUsIDB4QkIsIDB4Q0IsIDB4NDQsCisgICAgICAweDJCLCAweDhFLCAweDhFLCAweDBGLCAweDMxLCAweEYwLCAweERDLCAweEE3LAorICAgICAgMHgyQywgMHg3NCwgMHgxNywgMHhFMywgMHg1MywgMHg2MCwgMHhFMCwgMHg0OCB9LAorICAgIHsgMHhCMSwgMHg5RCwgMHgxRiwgMHhDRCwgMHhDQiwgMHg3NSwgMHhFQiwgMHg4OCwKKyAgICAgIDB4MkYsIDB4ODQsIDB4OUMsIDB4RTIsIDB4NEQsIDB4ODUsIDB4Q0YsIDB4NzMsCisgICAgICAweDlDLCAweEU2LCAweDRCLCAweDJCLCAweDVDLCAweDlELCAweDczLCAweEYxLAorICAgICAgMHg0RiwgMHgyRCwgMHg1RCwgMHg5RCwgMHhDRSwgMHg5OCwgMHg4OSwgMHhDRCwKKyAgICAgIDB4REYsIDB4NTAsIDB4ODYsIDB4OTYgfQorfTsKKworc3RhdGljIGNvbnN0IGludCBjYW1lbGxpYV90ZXN0X2N0cl9sZW5bM10gPQoreyAxNiwgMzIsIDM2IH07CisjZW5kaWYgLyogTUJFRFRMU19DSVBIRVJfTU9ERV9DVFIgKi8KKworLyoKKyAqIENoZWNrdXAgcm91dGluZQorICovCitpbnQgbWJlZHRsc19jYW1lbGxpYV9zZWxmX3Rlc3QoaW50IHZlcmJvc2UpCit7CisgICAgaW50IGksIGosIHUsIHY7CisgICAgdW5zaWduZWQgY2hhciBrZXlbMzJdOworICAgIHVuc2lnbmVkIGNoYXIgYnVmWzY0XTsKKyAgICB1bnNpZ25lZCBjaGFyIHNyY1sxNl07CisgICAgdW5zaWduZWQgY2hhciBkc3RbMTZdOworI2lmIGRlZmluZWQoTUJFRFRMU19DSVBIRVJfTU9ERV9DQkMpCisgICAgdW5zaWduZWQgY2hhciBpdlsxNl07CisjZW5kaWYKKyNpZiBkZWZpbmVkKE1CRURUTFNfQ0lQSEVSX01PREVfQ1RSKQorICAgIHNpemVfdCBvZmZzZXQsIGxlbjsKKyAgICB1bnNpZ25lZCBjaGFyIG5vbmNlX2NvdW50ZXJbMTZdOworICAgIHVuc2lnbmVkIGNoYXIgc3RyZWFtX2Jsb2NrWzE2XTsKKyNlbmRpZgorICAgIGludCByZXQgPSAxOworCisgICAgbWJlZHRsc19jYW1lbGxpYV9jb250ZXh0IGN0eDsKKworICAgIG1iZWR0bHNfY2FtZWxsaWFfaW5pdCgmY3R4KTsKKyAgICBtZW1zZXQoa2V5LCAwLCAzMik7CisKKyAgICBmb3IgKGogPSAwOyBqIDwgNjsgaisrKSB7CisgICAgICAgIHUgPSBqID4+IDE7CisgICAgICAgIHYgPSBqICYgMTsKKworICAgICAgICBpZiAodmVyYm9zZSAhPSAwKSB7CisgICAgICAgICAgICBtYmVkdGxzX3ByaW50ZigiICBDQU1FTExJQS1FQ0ItJTNkICglcyk6ICIsIDEyOCArIHUgKiA2NCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICh2ID09IE1CRURUTFNfQ0FNRUxMSUFfREVDUllQVCkgPyAiZGVjIiA6ICJlbmMiKTsKKyAgICAgICAgfQorCisjaWYgZGVmaW5lZChNQkVEVExTX0JMT0NLX0NJUEhFUl9OT19ERUNSWVBUKQorICAgICAgICBpZiAodiA9PSBNQkVEVExTX0NBTUVMTElBX0RFQ1JZUFQpIHsKKyAgICAgICAgICAgIGlmICh2ZXJib3NlICE9IDApIHsKKyAgICAgICAgICAgICAgICBtYmVkdGxzX3ByaW50Zigic2tpcHBlZFxuIik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgfQorI2VuZGlmCisKKyAgICAgICAgZm9yIChpID0gMDsgaSA8IENBTUVMTElBX1RFU1RTX0VDQjsgaSsrKSB7CisgICAgICAgICAgICBtZW1jcHkoa2V5LCBjYW1lbGxpYV90ZXN0X2VjYl9rZXlbdV1baV0sIDE2ICsgOCAqIHUpOworCisjaWYgIWRlZmluZWQoTUJFRFRMU19CTE9DS19DSVBIRVJfTk9fREVDUllQVCkKKyAgICAgICAgICAgIGlmICh2ID09IE1CRURUTFNfQ0FNRUxMSUFfREVDUllQVCkgeworICAgICAgICAgICAgICAgIG1iZWR0bHNfY2FtZWxsaWFfc2V0a2V5X2RlYygmY3R4LCBrZXksIDEyOCArIHUgKiA2NCk7CisgICAgICAgICAgICAgICAgbWVtY3B5KHNyYywgY2FtZWxsaWFfdGVzdF9lY2JfY2lwaGVyW3VdW2ldLCAxNik7CisgICAgICAgICAgICAgICAgbWVtY3B5KGRzdCwgY2FtZWxsaWFfdGVzdF9lY2JfcGxhaW5baV0sIDE2KTsKKyAgICAgICAgICAgIH0gZWxzZQorI2VuZGlmCisgICAgICAgICAgICB7IC8qIE1CRURUTFNfQ0FNRUxMSUFfRU5DUllQVCAqLworICAgICAgICAgICAgICAgIG1iZWR0bHNfY2FtZWxsaWFfc2V0a2V5X2VuYygmY3R4LCBrZXksIDEyOCArIHUgKiA2NCk7CisgICAgICAgICAgICAgICAgbWVtY3B5KHNyYywgY2FtZWxsaWFfdGVzdF9lY2JfcGxhaW5baV0sIDE2KTsKKyAgICAgICAgICAgICAgICBtZW1jcHkoZHN0LCBjYW1lbGxpYV90ZXN0X2VjYl9jaXBoZXJbdV1baV0sIDE2KTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgbWJlZHRsc19jYW1lbGxpYV9jcnlwdF9lY2IoJmN0eCwgdiwgc3JjLCBidWYpOworCisgICAgICAgICAgICBpZiAobWVtY21wKGJ1ZiwgZHN0LCAxNikgIT0gMCkgeworICAgICAgICAgICAgICAgIGlmICh2ZXJib3NlICE9IDApIHsKKyAgICAgICAgICAgICAgICAgICAgbWJlZHRsc19wcmludGYoImZhaWxlZFxuIik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGdvdG8gZXhpdDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIGlmICh2ZXJib3NlICE9IDApIHsKKyAgICAgICAgICAgIG1iZWR0bHNfcHJpbnRmKCJwYXNzZWRcbiIpOworICAgICAgICB9CisgICAgfQorCisgICAgaWYgKHZlcmJvc2UgIT0gMCkgeworICAgICAgICBtYmVkdGxzX3ByaW50ZigiXG4iKTsKKyAgICB9CisKKyNpZiBkZWZpbmVkKE1CRURUTFNfQ0lQSEVSX01PREVfQ0JDKQorICAgIC8qCisgICAgICogQ0JDIG1vZGUKKyAgICAgKi8KKyAgICBmb3IgKGogPSAwOyBqIDwgNjsgaisrKSB7CisgICAgICAgIHUgPSBqID4+IDE7CisgICAgICAgIHYgPSBqICAmIDE7CisKKyAgICAgICAgaWYgKHZlcmJvc2UgIT0gMCkgeworICAgICAgICAgICAgbWJlZHRsc19wcmludGYoIiAgQ0FNRUxMSUEtQ0JDLSUzZCAoJXMpOiAiLCAxMjggKyB1ICogNjQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAodiA9PSBNQkVEVExTX0NBTUVMTElBX0RFQ1JZUFQpID8gImRlYyIgOiAiZW5jIik7CisgICAgICAgIH0KKworICAgICAgICBtZW1jcHkoc3JjLCBjYW1lbGxpYV90ZXN0X2NiY19pdiwgMTYpOworICAgICAgICBtZW1jcHkoZHN0LCBjYW1lbGxpYV90ZXN0X2NiY19pdiwgMTYpOworICAgICAgICBtZW1jcHkoa2V5LCBjYW1lbGxpYV90ZXN0X2NiY19rZXlbdV0sIDE2ICsgOCAqIHUpOworCisgICAgICAgIGlmICh2ID09IE1CRURUTFNfQ0FNRUxMSUFfREVDUllQVCkgeworICAgICAgICAgICAgbWJlZHRsc19jYW1lbGxpYV9zZXRrZXlfZGVjKCZjdHgsIGtleSwgMTI4ICsgdSAqIDY0KTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIG1iZWR0bHNfY2FtZWxsaWFfc2V0a2V5X2VuYygmY3R4LCBrZXksIDEyOCArIHUgKiA2NCk7CisgICAgICAgIH0KKworICAgICAgICBmb3IgKGkgPSAwOyBpIDwgQ0FNRUxMSUFfVEVTVFNfQ0JDOyBpKyspIHsKKworICAgICAgICAgICAgaWYgKHYgPT0gTUJFRFRMU19DQU1FTExJQV9ERUNSWVBUKSB7CisgICAgICAgICAgICAgICAgbWVtY3B5KGl2LCBzcmMsIDE2KTsKKyAgICAgICAgICAgICAgICBtZW1jcHkoc3JjLCBjYW1lbGxpYV90ZXN0X2NiY19jaXBoZXJbdV1baV0sIDE2KTsKKyAgICAgICAgICAgICAgICBtZW1jcHkoZHN0LCBjYW1lbGxpYV90ZXN0X2NiY19wbGFpbltpXSwgMTYpOworICAgICAgICAgICAgfSBlbHNlIHsgLyogTUJFRFRMU19DQU1FTExJQV9FTkNSWVBUICovCisgICAgICAgICAgICAgICAgbWVtY3B5KGl2LCBkc3QsIDE2KTsKKyAgICAgICAgICAgICAgICBtZW1jcHkoc3JjLCBjYW1lbGxpYV90ZXN0X2NiY19wbGFpbltpXSwgMTYpOworICAgICAgICAgICAgICAgIG1lbWNweShkc3QsIGNhbWVsbGlhX3Rlc3RfY2JjX2NpcGhlclt1XVtpXSwgMTYpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBtYmVkdGxzX2NhbWVsbGlhX2NyeXB0X2NiYygmY3R4LCB2LCAxNiwgaXYsIHNyYywgYnVmKTsKKworICAgICAgICAgICAgaWYgKG1lbWNtcChidWYsIGRzdCwgMTYpICE9IDApIHsKKyAgICAgICAgICAgICAgICBpZiAodmVyYm9zZSAhPSAwKSB7CisgICAgICAgICAgICAgICAgICAgIG1iZWR0bHNfcHJpbnRmKCJmYWlsZWRcbiIpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBnb3RvIGV4aXQ7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBpZiAodmVyYm9zZSAhPSAwKSB7CisgICAgICAgICAgICBtYmVkdGxzX3ByaW50ZigicGFzc2VkXG4iKTsKKyAgICAgICAgfQorICAgIH0KKyNlbmRpZiAvKiBNQkVEVExTX0NJUEhFUl9NT0RFX0NCQyAqLworCisgICAgaWYgKHZlcmJvc2UgIT0gMCkgeworICAgICAgICBtYmVkdGxzX3ByaW50ZigiXG4iKTsKKyAgICB9CisKKyNpZiBkZWZpbmVkKE1CRURUTFNfQ0lQSEVSX01PREVfQ1RSKQorICAgIC8qCisgICAgICogQ1RSIG1vZGUKKyAgICAgKi8KKyAgICBmb3IgKGkgPSAwOyBpIDwgNjsgaSsrKSB7CisgICAgICAgIHUgPSBpID4+IDE7CisgICAgICAgIHYgPSBpICAmIDE7CisKKyAgICAgICAgaWYgKHZlcmJvc2UgIT0gMCkgeworICAgICAgICAgICAgbWJlZHRsc19wcmludGYoIiAgQ0FNRUxMSUEtQ1RSLTEyOCAoJXMpOiAiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgKHYgPT0gTUJFRFRMU19DQU1FTExJQV9ERUNSWVBUKSA/ICJkZWMiIDogImVuYyIpOworICAgICAgICB9CisKKyAgICAgICAgbWVtY3B5KG5vbmNlX2NvdW50ZXIsIGNhbWVsbGlhX3Rlc3RfY3RyX25vbmNlX2NvdW50ZXJbdV0sIDE2KTsKKyAgICAgICAgbWVtY3B5KGtleSwgY2FtZWxsaWFfdGVzdF9jdHJfa2V5W3VdLCAxNik7CisKKyAgICAgICAgb2Zmc2V0ID0gMDsKKyAgICAgICAgbWJlZHRsc19jYW1lbGxpYV9zZXRrZXlfZW5jKCZjdHgsIGtleSwgMTI4KTsKKworICAgICAgICBpZiAodiA9PSBNQkVEVExTX0NBTUVMTElBX0RFQ1JZUFQpIHsKKyAgICAgICAgICAgIGxlbiA9IGNhbWVsbGlhX3Rlc3RfY3RyX2xlblt1XTsKKyAgICAgICAgICAgIG1lbWNweShidWYsIGNhbWVsbGlhX3Rlc3RfY3RyX2N0W3VdLCBsZW4pOworCisgICAgICAgICAgICBtYmVkdGxzX2NhbWVsbGlhX2NyeXB0X2N0cigmY3R4LCBsZW4sICZvZmZzZXQsIG5vbmNlX2NvdW50ZXIsIHN0cmVhbV9ibG9jaywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ1ZiwgYnVmKTsKKworICAgICAgICAgICAgaWYgKG1lbWNtcChidWYsIGNhbWVsbGlhX3Rlc3RfY3RyX3B0W3VdLCBsZW4pICE9IDApIHsKKyAgICAgICAgICAgICAgICBpZiAodmVyYm9zZSAhPSAwKSB7CisgICAgICAgICAgICAgICAgICAgIG1iZWR0bHNfcHJpbnRmKCJmYWlsZWRcbiIpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBnb3RvIGV4aXQ7CisgICAgICAgICAgICB9CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBsZW4gPSBjYW1lbGxpYV90ZXN0X2N0cl9sZW5bdV07CisgICAgICAgICAgICBtZW1jcHkoYnVmLCBjYW1lbGxpYV90ZXN0X2N0cl9wdFt1XSwgbGVuKTsKKworICAgICAgICAgICAgbWJlZHRsc19jYW1lbGxpYV9jcnlwdF9jdHIoJmN0eCwgbGVuLCAmb2Zmc2V0LCBub25jZV9jb3VudGVyLCBzdHJlYW1fYmxvY2ssCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBidWYsIGJ1Zik7CisKKyAgICAgICAgICAgIGlmIChtZW1jbXAoYnVmLCBjYW1lbGxpYV90ZXN0X2N0cl9jdFt1XSwgbGVuKSAhPSAwKSB7CisgICAgICAgICAgICAgICAgaWYgKHZlcmJvc2UgIT0gMCkgeworICAgICAgICAgICAgICAgICAgICBtYmVkdGxzX3ByaW50ZigiZmFpbGVkXG4iKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgZ290byBleGl0OworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgaWYgKHZlcmJvc2UgIT0gMCkgeworICAgICAgICAgICAgbWJlZHRsc19wcmludGYoInBhc3NlZFxuIik7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBpZiAodmVyYm9zZSAhPSAwKSB7CisgICAgICAgIG1iZWR0bHNfcHJpbnRmKCJcbiIpOworICAgIH0KKyNlbmRpZiAvKiBNQkVEVExTX0NJUEhFUl9NT0RFX0NUUiAqLworCisgICAgcmV0ID0gMDsKKworZXhpdDoKKyAgICBtYmVkdGxzX2NhbWVsbGlhX2ZyZWUoJmN0eCk7CisgICAgcmV0dXJuIHJldDsKK30KKworI2VuZGlmIC8qIE1CRURUTFNfU0VMRl9URVNUICovCisKKyNlbmRpZiAvKiBNQkVEVExTX0NBTUVMTElBX0MgKi8KZGlmZiAtLWdpdCBhL3RmLXBzYS1jcnlwdG8vZHJpdmVycy9idWlsdGluL3NyYy9jY20uYyBiL3RmLXBzYS1jcnlwdG8vZHJpdmVycy9idWlsdGluL3NyYy9jY20uYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yNTAzZTlmCi0tLSAvZGV2L251bGwKKysrIGIvdGYtcHNhLWNyeXB0by9kcml2ZXJzL2J1aWx0aW4vc3JjL2NjbS5jCkBAIC0wLDAgKzEsNzU5IEBACisvKgorICogIE5JU1QgU1A4MDAtMzhDIGNvbXBsaWFudCBDQ00gaW1wbGVtZW50YXRpb24KKyAqCisgKiAgQ29weXJpZ2h0IFRoZSBNYmVkIFRMUyBDb250cmlidXRvcnMKKyAqICBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMCBPUiBHUEwtMi4wLW9yLWxhdGVyCisgKi8KKworLyoKKyAqIERlZmluaXRpb24gb2YgQ0NNOgorICogaHR0cDovL2NzcmMubmlzdC5nb3YvcHVibGljYXRpb25zL25pc3RwdWJzLzgwMC0zOEMvU1A4MDAtMzhDX3VwZGF0ZWQtSnVseTIwXzIwMDcucGRmCisgKiBSRkMgMzYxMCAiQ291bnRlciB3aXRoIENCQy1NQUMgKENDTSkiCisgKgorICogUmVsYXRlZDoKKyAqIFJGQyA1MTE2ICJBbiBJbnRlcmZhY2UgYW5kIEFsZ29yaXRobXMgZm9yIEF1dGhlbnRpY2F0ZWQgRW5jcnlwdGlvbiIKKyAqLworCisjaW5jbHVkZSAiY29tbW9uLmgiCisKKyNpZiBkZWZpbmVkKE1CRURUTFNfQ0NNX0MpCisKKyNpbmNsdWRlICJtYmVkdGxzL2NjbS5oIgorI2luY2x1ZGUgIm1iZWR0bHMvcGxhdGZvcm1fdXRpbC5oIgorI2luY2x1ZGUgIm1iZWR0bHMvZXJyb3IuaCIKKyNpbmNsdWRlICJtYmVkdGxzL2NvbnN0YW50X3RpbWUuaCIKKworI2lmIGRlZmluZWQoTUJFRFRMU19CTE9DS19DSVBIRVJfQykKKyNpbmNsdWRlICJibG9ja19jaXBoZXJfaW50ZXJuYWwuaCIKKyNlbmRpZgorCisjaW5jbHVkZSA8c3RyaW5nLmg+CisKKyNpZiBkZWZpbmVkKE1CRURUTFNfUExBVEZPUk1fQykKKyNpbmNsdWRlICJtYmVkdGxzL3BsYXRmb3JtLmgiCisjZWxzZQorI2lmIGRlZmluZWQoTUJFRFRMU19TRUxGX1RFU1QpICYmIGRlZmluZWQoTUJFRFRMU19BRVNfQykKKyNpbmNsdWRlIDxzdGRpby5oPgorI2RlZmluZSBtYmVkdGxzX3ByaW50ZiBwcmludGYKKyNlbmRpZiAvKiBNQkVEVExTX1NFTEZfVEVTVCAmJiBNQkVEVExTX0FFU19DICovCisjZW5kaWYgLyogTUJFRFRMU19QTEFURk9STV9DICovCisKKy8qCisgKiBJbml0aWFsaXplIGNvbnRleHQKKyAqLwordm9pZCBtYmVkdGxzX2NjbV9pbml0KG1iZWR0bHNfY2NtX2NvbnRleHQgKmN0eCkKK3sKKyAgICBtZW1zZXQoY3R4LCAwLCBzaXplb2YobWJlZHRsc19jY21fY29udGV4dCkpOworfQorCitpbnQgbWJlZHRsc19jY21fc2V0a2V5KG1iZWR0bHNfY2NtX2NvbnRleHQgKmN0eCwKKyAgICAgICAgICAgICAgICAgICAgICAgbWJlZHRsc19jaXBoZXJfaWRfdCBjaXBoZXIsCisgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgKmtleSwKKyAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50IGtleWJpdHMpCit7CisgICAgaW50IHJldCA9IE1CRURUTFNfRVJSX0VSUk9SX0NPUlJVUFRJT05fREVURUNURUQ7CisKKyNpZiBkZWZpbmVkKE1CRURUTFNfQkxPQ0tfQ0lQSEVSX0MpCisgICAgbWJlZHRsc19ibG9ja19jaXBoZXJfZnJlZSgmY3R4LT5ibG9ja19jaXBoZXJfY3R4KTsKKworICAgIGlmICgocmV0ID0gbWJlZHRsc19ibG9ja19jaXBoZXJfc2V0dXAoJmN0eC0+YmxvY2tfY2lwaGVyX2N0eCwgY2lwaGVyKSkgIT0gMCkgeworICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfQ0NNX0JBRF9JTlBVVDsKKyAgICB9CisKKyAgICBpZiAoKHJldCA9IG1iZWR0bHNfYmxvY2tfY2lwaGVyX3NldGtleSgmY3R4LT5ibG9ja19jaXBoZXJfY3R4LCBrZXksIGtleWJpdHMpKSAhPSAwKSB7CisgICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9DQ01fQkFEX0lOUFVUOworICAgIH0KKyNlbHNlCisgICAgY29uc3QgbWJlZHRsc19jaXBoZXJfaW5mb190ICpjaXBoZXJfaW5mbzsKKworICAgIGNpcGhlcl9pbmZvID0gbWJlZHRsc19jaXBoZXJfaW5mb19mcm9tX3ZhbHVlcyhjaXBoZXIsIGtleWJpdHMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1CRURUTFNfTU9ERV9FQ0IpOworICAgIGlmIChjaXBoZXJfaW5mbyA9PSBOVUxMKSB7CisgICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9DQ01fQkFEX0lOUFVUOworICAgIH0KKworICAgIGlmIChtYmVkdGxzX2NpcGhlcl9pbmZvX2dldF9ibG9ja19zaXplKGNpcGhlcl9pbmZvKSAhPSAxNikgeworICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfQ0NNX0JBRF9JTlBVVDsKKyAgICB9CisKKyAgICBtYmVkdGxzX2NpcGhlcl9mcmVlKCZjdHgtPmNpcGhlcl9jdHgpOworCisgICAgaWYgKChyZXQgPSBtYmVkdGxzX2NpcGhlcl9zZXR1cCgmY3R4LT5jaXBoZXJfY3R4LCBjaXBoZXJfaW5mbykpICE9IDApIHsKKyAgICAgICAgcmV0dXJuIHJldDsKKyAgICB9CisKKyAgICBpZiAoKHJldCA9IG1iZWR0bHNfY2lwaGVyX3NldGtleSgmY3R4LT5jaXBoZXJfY3R4LCBrZXksIGtleWJpdHMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTUJFRFRMU19FTkNSWVBUKSkgIT0gMCkgeworICAgICAgICByZXR1cm4gcmV0OworICAgIH0KKyNlbmRpZgorCisgICAgcmV0dXJuIHJldDsKK30KKworLyoKKyAqIEZyZWUgY29udGV4dAorICovCit2b2lkIG1iZWR0bHNfY2NtX2ZyZWUobWJlZHRsc19jY21fY29udGV4dCAqY3R4KQoreworICAgIGlmIChjdHggPT0gTlVMTCkgeworICAgICAgICByZXR1cm47CisgICAgfQorI2lmIGRlZmluZWQoTUJFRFRMU19CTE9DS19DSVBIRVJfQykKKyAgICBtYmVkdGxzX2Jsb2NrX2NpcGhlcl9mcmVlKCZjdHgtPmJsb2NrX2NpcGhlcl9jdHgpOworI2Vsc2UKKyAgICBtYmVkdGxzX2NpcGhlcl9mcmVlKCZjdHgtPmNpcGhlcl9jdHgpOworI2VuZGlmCisgICAgbWJlZHRsc19wbGF0Zm9ybV96ZXJvaXplKGN0eCwgc2l6ZW9mKG1iZWR0bHNfY2NtX2NvbnRleHQpKTsKK30KKworI2RlZmluZSBDQ01fU1RBVEVfX0NMRUFSICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgQ0NNX1NUQVRFX19TVEFSVEVEICAgICAgICAgICAgICAoMSA8PCAwKQorI2RlZmluZSBDQ01fU1RBVEVfX0xFTkdUSFNfU0VUICAgICAgICAgICgxIDw8IDEpCisjZGVmaW5lIENDTV9TVEFURV9fQVVUSF9EQVRBX1NUQVJURUQgICAgKDEgPDwgMikKKyNkZWZpbmUgQ0NNX1NUQVRFX19BVVRIX0RBVEFfRklOSVNIRUQgICAoMSA8PCAzKQorI2RlZmluZSBDQ01fU1RBVEVfX0VSUk9SICAgICAgICAgICAgICAgICgxIDw8IDQpCisKKy8qCisgKiBFbmNyeXB0IG9yIGRlY3J5cHQgYSBwYXJ0aWFsIGJsb2NrIHdpdGggQ1RSCisgKi8KK3N0YXRpYyBpbnQgbWJlZHRsc19jY21fY3J5cHQobWJlZHRsc19jY21fY29udGV4dCAqY3R4LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3Qgb2Zmc2V0LCBzaXplX3QgdXNlX2xlbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdW5zaWduZWQgY2hhciAqaW5wdXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGNoYXIgKm91dHB1dCkKK3sKKyAgICBpbnQgcmV0ID0gTUJFRFRMU19FUlJfRVJST1JfQ09SUlVQVElPTl9ERVRFQ1RFRDsKKyAgICB1bnNpZ25lZCBjaGFyIHRtcF9idWZbMTZdID0geyAwIH07CisKKyNpZiBkZWZpbmVkKE1CRURUTFNfQkxPQ0tfQ0lQSEVSX0MpCisgICAgcmV0ID0gbWJlZHRsc19ibG9ja19jaXBoZXJfZW5jcnlwdCgmY3R4LT5ibG9ja19jaXBoZXJfY3R4LCBjdHgtPmN0ciwgdG1wX2J1Zik7CisjZWxzZQorICAgIHNpemVfdCBvbGVuID0gMDsKKyAgICByZXQgPSBtYmVkdGxzX2NpcGhlcl91cGRhdGUoJmN0eC0+Y2lwaGVyX2N0eCwgY3R4LT5jdHIsIDE2LCB0bXBfYnVmLCAmb2xlbik7CisjZW5kaWYKKyAgICBpZiAocmV0ICE9IDApIHsKKyAgICAgICAgY3R4LT5zdGF0ZSB8PSBDQ01fU1RBVEVfX0VSUk9SOworICAgICAgICBtYmVkdGxzX3BsYXRmb3JtX3plcm9pemUodG1wX2J1Ziwgc2l6ZW9mKHRtcF9idWYpKTsKKyAgICAgICAgcmV0dXJuIHJldDsKKyAgICB9CisKKyAgICBtYmVkdGxzX3hvcihvdXRwdXQsIGlucHV0LCB0bXBfYnVmICsgb2Zmc2V0LCB1c2VfbGVuKTsKKworICAgIG1iZWR0bHNfcGxhdGZvcm1femVyb2l6ZSh0bXBfYnVmLCBzaXplb2YodG1wX2J1ZikpOworICAgIHJldHVybiByZXQ7Cit9CisKK3N0YXRpYyB2b2lkIG1iZWR0bHNfY2NtX2NsZWFyX3N0YXRlKG1iZWR0bHNfY2NtX2NvbnRleHQgKmN0eCkKK3sKKyAgICBjdHgtPnN0YXRlID0gQ0NNX1NUQVRFX19DTEVBUjsKKyAgICBtZW1zZXQoY3R4LT55LCAwLCAxNik7CisgICAgbWVtc2V0KGN0eC0+Y3RyLCAwLCAxNik7Cit9CisKK3N0YXRpYyBpbnQgY2NtX2NhbGN1bGF0ZV9maXJzdF9ibG9ja19pZl9yZWFkeShtYmVkdGxzX2NjbV9jb250ZXh0ICpjdHgpCit7CisgICAgaW50IHJldCA9IE1CRURUTFNfRVJSX0VSUk9SX0NPUlJVUFRJT05fREVURUNURUQ7CisgICAgdW5zaWduZWQgY2hhciBpOworICAgIHNpemVfdCBsZW5fbGVmdDsKKyNpZiAhZGVmaW5lZChNQkVEVExTX0JMT0NLX0NJUEhFUl9DKQorICAgIHNpemVfdCBvbGVuOworI2VuZGlmCisKKyAgICAvKiBsZW5ndGggY2FsY3VsYXRpb24gY2FuIGJlIGRvbmUgb25seSBhZnRlciBib3RoCisgICAgICogbWJlZHRsc19jY21fc3RhcnRzKCkgYW5kIG1iZWR0bHNfY2NtX3NldF9sZW5ndGhzKCkgaGF2ZSBiZWVuIGV4ZWN1dGVkCisgICAgICovCisgICAgaWYgKCEoY3R4LT5zdGF0ZSAmIENDTV9TVEFURV9fU1RBUlRFRCkgfHwgIShjdHgtPnN0YXRlICYgQ0NNX1NUQVRFX19MRU5HVEhTX1NFVCkpIHsKKyAgICAgICAgcmV0dXJuIDA7CisgICAgfQorCisgICAgLyogQ0NNIGV4cGVjdHMgbm9uLWVtcHR5IHRhZy4KKyAgICAgKiBDQ00qIGFsbG93cyBlbXB0eSB0YWcuIEZvciBDQ00qIHdpdGhvdXQgdGFnLCBpZ25vcmUgcGxhaW50ZXh0IGxlbmd0aC4KKyAgICAgKi8KKyAgICBpZiAoY3R4LT50YWdfbGVuID09IDApIHsKKyAgICAgICAgaWYgKGN0eC0+bW9kZSA9PSBNQkVEVExTX0NDTV9TVEFSX0VOQ1JZUFQgfHwgY3R4LT5tb2RlID09IE1CRURUTFNfQ0NNX1NUQVJfREVDUllQVCkgeworICAgICAgICAgICAgY3R4LT5wbGFpbnRleHRfbGVuID0gMDsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9DQ01fQkFEX0lOUFVUOworICAgICAgICB9CisgICAgfQorCisgICAgLyoKKyAgICAgKiBGaXJzdCBibG9jazoKKyAgICAgKiAwICAgICAgICAuLiAwICAgICAgICBmbGFncworICAgICAqIDEgICAgICAgIC4uIGl2X2xlbiAgIG5vbmNlIChha2EgaXYpICAtIHNldCBieTogbWJlZHRsc19jY21fc3RhcnRzKCkKKyAgICAgKiBpdl9sZW4rMSAuLiAxNSAgICAgICBsZW5ndGgKKyAgICAgKgorICAgICAqIFdpdGggZmxhZ3MgYXMgKGJpdHMpOgorICAgICAqIDcgICAgICAgIDAKKyAgICAgKiA2ICAgICAgICBhZGQgcHJlc2VudD8KKyAgICAgKiA1IC4uIDMgICAodCAtIDIpIC8gMgorICAgICAqIDIgLi4gMCAgIHEgLSAxCisgICAgICovCisgICAgY3R4LT55WzBdIHw9IChjdHgtPmFkZF9sZW4gPiAwKSA8PCA2OworICAgIGN0eC0+eVswXSB8PSAoKGN0eC0+dGFnX2xlbiAtIDIpIC8gMikgPDwgMzsKKyAgICBjdHgtPnlbMF0gfD0gY3R4LT5xIC0gMTsKKworICAgIGZvciAoaSA9IDAsIGxlbl9sZWZ0ID0gY3R4LT5wbGFpbnRleHRfbGVuOyBpIDwgY3R4LT5xOyBpKyssIGxlbl9sZWZ0ID4+PSA4KSB7CisgICAgICAgIGN0eC0+eVsxNS1pXSA9IE1CRURUTFNfQllURV8wKGxlbl9sZWZ0KTsKKyAgICB9CisKKyAgICBpZiAobGVuX2xlZnQgPiAwKSB7CisgICAgICAgIGN0eC0+c3RhdGUgfD0gQ0NNX1NUQVRFX19FUlJPUjsKKyAgICAgICAgcmV0dXJuIE1CRURUTFNfRVJSX0NDTV9CQURfSU5QVVQ7CisgICAgfQorCisgICAgLyogU3RhcnQgQ0JDLU1BQyB3aXRoIGZpcnN0IGJsb2NrKi8KKyNpZiBkZWZpbmVkKE1CRURUTFNfQkxPQ0tfQ0lQSEVSX0MpCisgICAgcmV0ID0gbWJlZHRsc19ibG9ja19jaXBoZXJfZW5jcnlwdCgmY3R4LT5ibG9ja19jaXBoZXJfY3R4LCBjdHgtPnksIGN0eC0+eSk7CisjZWxzZQorICAgIHJldCA9IG1iZWR0bHNfY2lwaGVyX3VwZGF0ZSgmY3R4LT5jaXBoZXJfY3R4LCBjdHgtPnksIDE2LCBjdHgtPnksICZvbGVuKTsKKyNlbmRpZgorICAgIGlmIChyZXQgIT0gMCkgeworICAgICAgICBjdHgtPnN0YXRlIHw9IENDTV9TVEFURV9fRVJST1I7CisgICAgICAgIHJldHVybiByZXQ7CisgICAgfQorCisgICAgcmV0dXJuIDA7Cit9CisKK2ludCBtYmVkdGxzX2NjbV9zdGFydHMobWJlZHRsc19jY21fY29udGV4dCAqY3R4LAorICAgICAgICAgICAgICAgICAgICAgICBpbnQgbW9kZSwKKyAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdW5zaWduZWQgY2hhciAqaXYsCisgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBpdl9sZW4pCit7CisgICAgLyogQWxzbyBpbXBsaWVzIHEgaXMgd2l0aGluIGJvdW5kcyAqLworICAgIGlmIChpdl9sZW4gPCA3IHx8IGl2X2xlbiA+IDEzKSB7CisgICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9DQ01fQkFEX0lOUFVUOworICAgIH0KKworICAgIGN0eC0+bW9kZSA9IG1vZGU7CisgICAgY3R4LT5xID0gMTYgLSAxIC0gKHVuc2lnbmVkIGNoYXIpIGl2X2xlbjsKKworICAgIC8qCisgICAgICogUHJlcGFyZSBjb3VudGVyIGJsb2NrIGZvciBlbmNyeXB0aW9uOgorICAgICAqIDAgICAgICAgIC4uIDAgICAgICAgIGZsYWdzCisgICAgICogMSAgICAgICAgLi4gaXZfbGVuICAgbm9uY2UgKGFrYSBpdikKKyAgICAgKiBpdl9sZW4rMSAuLiAxNSAgICAgICBjb3VudGVyIChpbml0aWFsbHkgMSkKKyAgICAgKgorICAgICAqIFdpdGggZmxhZ3MgYXMgKGJpdHMpOgorICAgICAqIDcgLi4gMyAgIDAKKyAgICAgKiAyIC4uIDAgICBxIC0gMQorICAgICAqLworICAgIG1lbXNldChjdHgtPmN0ciwgMCwgMTYpOworICAgIGN0eC0+Y3RyWzBdID0gY3R4LT5xIC0gMTsKKyAgICBtZW1jcHkoY3R4LT5jdHIgKyAxLCBpdiwgaXZfbGVuKTsKKyAgICBtZW1zZXQoY3R4LT5jdHIgKyAxICsgaXZfbGVuLCAwLCBjdHgtPnEpOworICAgIGN0eC0+Y3RyWzE1XSA9IDE7CisKKyAgICAvKgorICAgICAqIFNlZSBjY21fY2FsY3VsYXRlX2ZpcnN0X2Jsb2NrX2lmX3JlYWR5KCkgZm9yIGJsb2NrIGxheW91dCBkZXNjcmlwdGlvbgorICAgICAqLworICAgIG1lbWNweShjdHgtPnkgKyAxLCBpdiwgaXZfbGVuKTsKKworICAgIGN0eC0+c3RhdGUgfD0gQ0NNX1NUQVRFX19TVEFSVEVEOworICAgIHJldHVybiBjY21fY2FsY3VsYXRlX2ZpcnN0X2Jsb2NrX2lmX3JlYWR5KGN0eCk7Cit9CisKK2ludCBtYmVkdGxzX2NjbV9zZXRfbGVuZ3RocyhtYmVkdGxzX2NjbV9jb250ZXh0ICpjdHgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IHRvdGFsX2FkX2xlbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgcGxhaW50ZXh0X2xlbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgdGFnX2xlbikKK3sKKyAgICAvKgorICAgICAqIENoZWNrIGxlbmd0aCByZXF1aXJlbWVudHM6IFNQODAwLTM4QyBBLjEKKyAgICAgKiBBZGRpdGlvbmFsIHJlcXVpcmVtZW50OiBhIDwgMl4xNiAtIDJeOCB0byBzaW1wbGlmeSB0aGUgY29kZS4KKyAgICAgKiAnbGVuZ3RoJyBjaGVja2VkIGxhdGVyICh3aGVuIHdyaXRpbmcgaXQgdG8gdGhlIGZpcnN0IGJsb2NrKQorICAgICAqCisgICAgICogQWxzbywgbG9vc2VuIHRoZSByZXF1aXJlbWVudHMgdG8gZW5hYmxlIHN1cHBvcnQgZm9yIENDTSogKElFRUUgODAyLjE1LjQpLgorICAgICAqLworICAgIGlmICh0YWdfbGVuID09IDIgfHwgdGFnX2xlbiA+IDE2IHx8IHRhZ19sZW4gJSAyICE9IDApIHsKKyAgICAgICAgcmV0dXJuIE1CRURUTFNfRVJSX0NDTV9CQURfSU5QVVQ7CisgICAgfQorCisgICAgaWYgKHRvdGFsX2FkX2xlbiA+PSAweEZGMDApIHsKKyAgICAgICAgcmV0dXJuIE1CRURUTFNfRVJSX0NDTV9CQURfSU5QVVQ7CisgICAgfQorCisgICAgY3R4LT5wbGFpbnRleHRfbGVuID0gcGxhaW50ZXh0X2xlbjsKKyAgICBjdHgtPmFkZF9sZW4gPSB0b3RhbF9hZF9sZW47CisgICAgY3R4LT50YWdfbGVuID0gdGFnX2xlbjsKKyAgICBjdHgtPnByb2Nlc3NlZCA9IDA7CisKKyAgICBjdHgtPnN0YXRlIHw9IENDTV9TVEFURV9fTEVOR1RIU19TRVQ7CisgICAgcmV0dXJuIGNjbV9jYWxjdWxhdGVfZmlyc3RfYmxvY2tfaWZfcmVhZHkoY3R4KTsKK30KKworaW50IG1iZWR0bHNfY2NtX3VwZGF0ZV9hZChtYmVkdGxzX2NjbV9jb250ZXh0ICpjdHgsCisgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgKmFkZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IGFkZF9sZW4pCit7CisgICAgaW50IHJldCA9IE1CRURUTFNfRVJSX0VSUk9SX0NPUlJVUFRJT05fREVURUNURUQ7CisgICAgc2l6ZV90IHVzZV9sZW4sIG9mZnNldDsKKyNpZiAhZGVmaW5lZChNQkVEVExTX0JMT0NLX0NJUEhFUl9DKQorICAgIHNpemVfdCBvbGVuOworI2VuZGlmCisKKyAgICBpZiAoY3R4LT5zdGF0ZSAmIENDTV9TVEFURV9fRVJST1IpIHsKKyAgICAgICAgcmV0dXJuIE1CRURUTFNfRVJSX0NDTV9CQURfSU5QVVQ7CisgICAgfQorCisgICAgaWYgKGFkZF9sZW4gPiAwKSB7CisgICAgICAgIGlmIChjdHgtPnN0YXRlICYgQ0NNX1NUQVRFX19BVVRIX0RBVEFfRklOSVNIRUQpIHsKKyAgICAgICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9DQ01fQkFEX0lOUFVUOworICAgICAgICB9CisKKyAgICAgICAgaWYgKCEoY3R4LT5zdGF0ZSAmIENDTV9TVEFURV9fQVVUSF9EQVRBX1NUQVJURUQpKSB7CisgICAgICAgICAgICBpZiAoYWRkX2xlbiA+IGN0eC0+YWRkX2xlbikgeworICAgICAgICAgICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9DQ01fQkFEX0lOUFVUOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBjdHgtPnlbMF0gXj0gKHVuc2lnbmVkIGNoYXIpICgoY3R4LT5hZGRfbGVuID4+IDgpICYgMHhGRik7CisgICAgICAgICAgICBjdHgtPnlbMV0gXj0gKHVuc2lnbmVkIGNoYXIpICgoY3R4LT5hZGRfbGVuKSAmIDB4RkYpOworCisgICAgICAgICAgICBjdHgtPnN0YXRlIHw9IENDTV9TVEFURV9fQVVUSF9EQVRBX1NUQVJURUQ7CisgICAgICAgIH0gZWxzZSBpZiAoY3R4LT5wcm9jZXNzZWQgKyBhZGRfbGVuID4gY3R4LT5hZGRfbGVuKSB7CisgICAgICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfQ0NNX0JBRF9JTlBVVDsKKyAgICAgICAgfQorCisgICAgICAgIHdoaWxlIChhZGRfbGVuID4gMCkgeworICAgICAgICAgICAgb2Zmc2V0ID0gKGN0eC0+cHJvY2Vzc2VkICsgMikgJSAxNjsgLyogYWNjb3VudCBmb3IgeVswXSBhbmQgeVsxXQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICogaG9sZGluZyB0b3RhbCBhdXRoIGRhdGEgbGVuZ3RoICovCisgICAgICAgICAgICB1c2VfbGVuID0gMTYgLSBvZmZzZXQ7CisKKyAgICAgICAgICAgIGlmICh1c2VfbGVuID4gYWRkX2xlbikgeworICAgICAgICAgICAgICAgIHVzZV9sZW4gPSBhZGRfbGVuOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBtYmVkdGxzX3hvcihjdHgtPnkgKyBvZmZzZXQsIGN0eC0+eSArIG9mZnNldCwgYWRkLCB1c2VfbGVuKTsKKworICAgICAgICAgICAgY3R4LT5wcm9jZXNzZWQgKz0gdXNlX2xlbjsKKyAgICAgICAgICAgIGFkZF9sZW4gLT0gdXNlX2xlbjsKKyAgICAgICAgICAgIGFkZCArPSB1c2VfbGVuOworCisgICAgICAgICAgICBpZiAodXNlX2xlbiArIG9mZnNldCA9PSAxNiB8fCBjdHgtPnByb2Nlc3NlZCA9PSBjdHgtPmFkZF9sZW4pIHsKKyNpZiBkZWZpbmVkKE1CRURUTFNfQkxPQ0tfQ0lQSEVSX0MpCisgICAgICAgICAgICAgICAgcmV0ID0gbWJlZHRsc19ibG9ja19jaXBoZXJfZW5jcnlwdCgmY3R4LT5ibG9ja19jaXBoZXJfY3R4LCBjdHgtPnksIGN0eC0+eSk7CisjZWxzZQorICAgICAgICAgICAgICAgIHJldCA9IG1iZWR0bHNfY2lwaGVyX3VwZGF0ZSgmY3R4LT5jaXBoZXJfY3R4LCBjdHgtPnksIDE2LCBjdHgtPnksICZvbGVuKTsKKyNlbmRpZgorICAgICAgICAgICAgICAgIGlmIChyZXQgIT0gMCkgeworICAgICAgICAgICAgICAgICAgICBjdHgtPnN0YXRlIHw9IENDTV9TVEFURV9fRVJST1I7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiByZXQ7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgaWYgKGN0eC0+cHJvY2Vzc2VkID09IGN0eC0+YWRkX2xlbikgeworICAgICAgICAgICAgY3R4LT5zdGF0ZSB8PSBDQ01fU1RBVEVfX0FVVEhfREFUQV9GSU5JU0hFRDsKKyAgICAgICAgICAgIGN0eC0+cHJvY2Vzc2VkID0gMDsgLy8gcHJlcGFyZSBmb3IgbWJlZHRsc19jY21fdXBkYXRlKCkKKyAgICAgICAgfQorICAgIH0KKworICAgIHJldHVybiAwOworfQorCitpbnQgbWJlZHRsc19jY21fdXBkYXRlKG1iZWR0bHNfY2NtX2NvbnRleHQgKmN0eCwKKyAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdW5zaWduZWQgY2hhciAqaW5wdXQsIHNpemVfdCBpbnB1dF9sZW4sCisgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGNoYXIgKm91dHB1dCwgc2l6ZV90IG91dHB1dF9zaXplLAorICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgKm91dHB1dF9sZW4pCit7CisgICAgaW50IHJldCA9IE1CRURUTFNfRVJSX0VSUk9SX0NPUlJVUFRJT05fREVURUNURUQ7CisgICAgdW5zaWduZWQgY2hhciBpOworICAgIHNpemVfdCB1c2VfbGVuLCBvZmZzZXQ7CisjaWYgIWRlZmluZWQoTUJFRFRMU19CTE9DS19DSVBIRVJfQykKKyAgICBzaXplX3Qgb2xlbjsKKyNlbmRpZgorCisgICAgdW5zaWduZWQgY2hhciBsb2NhbF9vdXRwdXRbMTZdOworCisgICAgaWYgKGN0eC0+c3RhdGUgJiBDQ01fU1RBVEVfX0VSUk9SKSB7CisgICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9DQ01fQkFEX0lOUFVUOworICAgIH0KKworICAgIC8qIENoZWNrIGFnYWluc3QgcGxhaW50ZXh0IGxlbmd0aCBvbmx5IGlmIHBlcmZvcm1pbmcgb3BlcmF0aW9uIHdpdGgKKyAgICAgKiBhdXRoZW50aWNhdGlvbgorICAgICAqLworICAgIGlmIChjdHgtPnRhZ19sZW4gIT0gMCAmJiBjdHgtPnByb2Nlc3NlZCArIGlucHV0X2xlbiA+IGN0eC0+cGxhaW50ZXh0X2xlbikgeworICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfQ0NNX0JBRF9JTlBVVDsKKyAgICB9CisKKyAgICBpZiAob3V0cHV0X3NpemUgPCBpbnB1dF9sZW4pIHsKKyAgICAgICAgcmV0dXJuIE1CRURUTFNfRVJSX0NDTV9CQURfSU5QVVQ7CisgICAgfQorICAgICpvdXRwdXRfbGVuID0gaW5wdXRfbGVuOworCisgICAgcmV0ID0gMDsKKworICAgIHdoaWxlIChpbnB1dF9sZW4gPiAwKSB7CisgICAgICAgIG9mZnNldCA9IGN0eC0+cHJvY2Vzc2VkICUgMTY7CisKKyAgICAgICAgdXNlX2xlbiA9IDE2IC0gb2Zmc2V0OworCisgICAgICAgIGlmICh1c2VfbGVuID4gaW5wdXRfbGVuKSB7CisgICAgICAgICAgICB1c2VfbGVuID0gaW5wdXRfbGVuOworICAgICAgICB9CisKKyAgICAgICAgY3R4LT5wcm9jZXNzZWQgKz0gdXNlX2xlbjsKKworICAgICAgICBpZiAoY3R4LT5tb2RlID09IE1CRURUTFNfQ0NNX0VOQ1JZUFQgfHwgXAorICAgICAgICAgICAgY3R4LT5tb2RlID09IE1CRURUTFNfQ0NNX1NUQVJfRU5DUllQVCkgeworICAgICAgICAgICAgbWJlZHRsc194b3IoY3R4LT55ICsgb2Zmc2V0LCBjdHgtPnkgKyBvZmZzZXQsIGlucHV0LCB1c2VfbGVuKTsKKworICAgICAgICAgICAgaWYgKHVzZV9sZW4gKyBvZmZzZXQgPT0gMTYgfHwgY3R4LT5wcm9jZXNzZWQgPT0gY3R4LT5wbGFpbnRleHRfbGVuKSB7CisjaWYgZGVmaW5lZChNQkVEVExTX0JMT0NLX0NJUEhFUl9DKQorICAgICAgICAgICAgICAgIHJldCA9IG1iZWR0bHNfYmxvY2tfY2lwaGVyX2VuY3J5cHQoJmN0eC0+YmxvY2tfY2lwaGVyX2N0eCwgY3R4LT55LCBjdHgtPnkpOworI2Vsc2UKKyAgICAgICAgICAgICAgICByZXQgPSBtYmVkdGxzX2NpcGhlcl91cGRhdGUoJmN0eC0+Y2lwaGVyX2N0eCwgY3R4LT55LCAxNiwgY3R4LT55LCAmb2xlbik7CisjZW5kaWYKKyAgICAgICAgICAgICAgICBpZiAocmV0ICE9IDApIHsKKyAgICAgICAgICAgICAgICAgICAgY3R4LT5zdGF0ZSB8PSBDQ01fU1RBVEVfX0VSUk9SOworICAgICAgICAgICAgICAgICAgICBnb3RvIGV4aXQ7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorCisgICAgICAgICAgICByZXQgPSBtYmVkdGxzX2NjbV9jcnlwdChjdHgsIG9mZnNldCwgdXNlX2xlbiwgaW5wdXQsIG91dHB1dCk7CisgICAgICAgICAgICBpZiAocmV0ICE9IDApIHsKKyAgICAgICAgICAgICAgICBnb3RvIGV4aXQ7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBpZiAoY3R4LT5tb2RlID09IE1CRURUTFNfQ0NNX0RFQ1JZUFQgfHwgXAorICAgICAgICAgICAgY3R4LT5tb2RlID09IE1CRURUTFNfQ0NNX1NUQVJfREVDUllQVCkgeworICAgICAgICAgICAgLyogU2luY2Ugb3V0cHV0IG1heSBiZSBpbiBzaGFyZWQgbWVtb3J5LCB3ZSBjYW5ub3QgYmUgc3VyZSB0aGF0CisgICAgICAgICAgICAgKiBpdCB3aWxsIGNvbnRhaW4gd2hhdCB3ZSB3cm90ZSB0byBpdC4gVGhlcmVmb3JlLCB3ZSBzaG91bGQgYXZvaWQgdXNpbmcKKyAgICAgICAgICAgICAqIGl0IGFzIGlucHV0IHRvIGFueSBvcGVyYXRpb25zLgorICAgICAgICAgICAgICogV3JpdGUgZGVjcnlwdGVkIGRhdGEgdG8gbG9jYWxfb3V0cHV0IHRvIGF2b2lkIHVzaW5nIG91dHB1dCB2YXJpYWJsZSBhcworICAgICAgICAgICAgICogaW5wdXQgaW4gdGhlIFhPUiBvcGVyYXRpb24gZm9yIFkuCisgICAgICAgICAgICAgKi8KKyAgICAgICAgICAgIHJldCA9IG1iZWR0bHNfY2NtX2NyeXB0KGN0eCwgb2Zmc2V0LCB1c2VfbGVuLCBpbnB1dCwgbG9jYWxfb3V0cHV0KTsKKyAgICAgICAgICAgIGlmIChyZXQgIT0gMCkgeworICAgICAgICAgICAgICAgIGdvdG8gZXhpdDsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgbWJlZHRsc194b3IoY3R4LT55ICsgb2Zmc2V0LCBjdHgtPnkgKyBvZmZzZXQsIGxvY2FsX291dHB1dCwgdXNlX2xlbik7CisKKyAgICAgICAgICAgIG1lbWNweShvdXRwdXQsIGxvY2FsX291dHB1dCwgdXNlX2xlbik7CisKKyAgICAgICAgICAgIGlmICh1c2VfbGVuICsgb2Zmc2V0ID09IDE2IHx8IGN0eC0+cHJvY2Vzc2VkID09IGN0eC0+cGxhaW50ZXh0X2xlbikgeworI2lmIGRlZmluZWQoTUJFRFRMU19CTE9DS19DSVBIRVJfQykKKyAgICAgICAgICAgICAgICByZXQgPSBtYmVkdGxzX2Jsb2NrX2NpcGhlcl9lbmNyeXB0KCZjdHgtPmJsb2NrX2NpcGhlcl9jdHgsIGN0eC0+eSwgY3R4LT55KTsKKyNlbHNlCisgICAgICAgICAgICAgICAgcmV0ID0gbWJlZHRsc19jaXBoZXJfdXBkYXRlKCZjdHgtPmNpcGhlcl9jdHgsIGN0eC0+eSwgMTYsIGN0eC0+eSwgJm9sZW4pOworI2VuZGlmCisgICAgICAgICAgICAgICAgaWYgKHJldCAhPSAwKSB7CisgICAgICAgICAgICAgICAgICAgIGN0eC0+c3RhdGUgfD0gQ0NNX1NUQVRFX19FUlJPUjsKKyAgICAgICAgICAgICAgICAgICAgZ290byBleGl0OworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIGlmICh1c2VfbGVuICsgb2Zmc2V0ID09IDE2IHx8IGN0eC0+cHJvY2Vzc2VkID09IGN0eC0+cGxhaW50ZXh0X2xlbikgeworICAgICAgICAgICAgZm9yIChpID0gMDsgaSA8IGN0eC0+cTsgaSsrKSB7CisgICAgICAgICAgICAgICAgaWYgKCsrKGN0eC0+Y3RyKVsxNS1pXSAhPSAwKSB7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIGlucHV0X2xlbiAtPSB1c2VfbGVuOworICAgICAgICBpbnB1dCArPSB1c2VfbGVuOworICAgICAgICBvdXRwdXQgKz0gdXNlX2xlbjsKKyAgICB9CisKK2V4aXQ6CisgICAgbWJlZHRsc19wbGF0Zm9ybV96ZXJvaXplKGxvY2FsX291dHB1dCwgMTYpOworCisgICAgcmV0dXJuIHJldDsKK30KKworaW50IG1iZWR0bHNfY2NtX2ZpbmlzaChtYmVkdGxzX2NjbV9jb250ZXh0ICpjdHgsCisgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGNoYXIgKnRhZywgc2l6ZV90IHRhZ19sZW4pCit7CisgICAgaW50IHJldCA9IE1CRURUTFNfRVJSX0VSUk9SX0NPUlJVUFRJT05fREVURUNURUQ7CisgICAgdW5zaWduZWQgY2hhciBpOworCisgICAgaWYgKGN0eC0+c3RhdGUgJiBDQ01fU1RBVEVfX0VSUk9SKSB7CisgICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9FUlJPUl9DT1JSVVBUSU9OX0RFVEVDVEVEOworICAgIH0KKworICAgIGlmIChjdHgtPmFkZF9sZW4gPiAwICYmICEoY3R4LT5zdGF0ZSAmIENDTV9TVEFURV9fQVVUSF9EQVRBX0ZJTklTSEVEKSkgeworICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfQ0NNX0JBRF9JTlBVVDsKKyAgICB9CisKKyAgICBpZiAoY3R4LT5wbGFpbnRleHRfbGVuID4gMCAmJiBjdHgtPnByb2Nlc3NlZCAhPSBjdHgtPnBsYWludGV4dF9sZW4pIHsKKyAgICAgICAgcmV0dXJuIE1CRURUTFNfRVJSX0NDTV9CQURfSU5QVVQ7CisgICAgfQorCisgICAgLyoKKyAgICAgKiBBdXRoZW50aWNhdGlvbjogcmVzZXQgY291bnRlciBhbmQgY3J5cHQvbWFzayBpbnRlcm5hbCB0YWcKKyAgICAgKi8KKyAgICBmb3IgKGkgPSAwOyBpIDwgY3R4LT5xOyBpKyspIHsKKyAgICAgICAgY3R4LT5jdHJbMTUtaV0gPSAwOworICAgIH0KKworICAgIHJldCA9IG1iZWR0bHNfY2NtX2NyeXB0KGN0eCwgMCwgMTYsIGN0eC0+eSwgY3R4LT55KTsKKyAgICBpZiAocmV0ICE9IDApIHsKKyAgICAgICAgcmV0dXJuIHJldDsKKyAgICB9CisgICAgaWYgKHRhZyAhPSBOVUxMKSB7CisgICAgICAgIG1lbWNweSh0YWcsIGN0eC0+eSwgdGFnX2xlbik7CisgICAgfQorICAgIG1iZWR0bHNfY2NtX2NsZWFyX3N0YXRlKGN0eCk7CisKKyAgICByZXR1cm4gMDsKK30KKworLyoKKyAqIEF1dGhlbnRpY2F0ZWQgZW5jcnlwdGlvbiBvciBkZWNyeXB0aW9uCisgKi8KK3N0YXRpYyBpbnQgY2NtX2F1dGhfY3J5cHQobWJlZHRsc19jY21fY29udGV4dCAqY3R4LCBpbnQgbW9kZSwgc2l6ZV90IGxlbmd0aCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdW5zaWduZWQgY2hhciAqaXYsIHNpemVfdCBpdl9sZW4sCisgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgKmFkZCwgc2l6ZV90IGFkZF9sZW4sCisgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgKmlucHV0LCB1bnNpZ25lZCBjaGFyICpvdXRwdXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGNoYXIgKnRhZywgc2l6ZV90IHRhZ19sZW4pCit7CisgICAgaW50IHJldCA9IE1CRURUTFNfRVJSX0VSUk9SX0NPUlJVUFRJT05fREVURUNURUQ7CisgICAgc2l6ZV90IG9sZW47CisKKyAgICBpZiAoKHJldCA9IG1iZWR0bHNfY2NtX3N0YXJ0cyhjdHgsIG1vZGUsIGl2LCBpdl9sZW4pKSAhPSAwKSB7CisgICAgICAgIHJldHVybiByZXQ7CisgICAgfQorCisgICAgaWYgKChyZXQgPSBtYmVkdGxzX2NjbV9zZXRfbGVuZ3RocyhjdHgsIGFkZF9sZW4sIGxlbmd0aCwgdGFnX2xlbikpICE9IDApIHsKKyAgICAgICAgcmV0dXJuIHJldDsKKyAgICB9CisKKyAgICBpZiAoKHJldCA9IG1iZWR0bHNfY2NtX3VwZGF0ZV9hZChjdHgsIGFkZCwgYWRkX2xlbikpICE9IDApIHsKKyAgICAgICAgcmV0dXJuIHJldDsKKyAgICB9CisKKyAgICBpZiAoKHJldCA9IG1iZWR0bHNfY2NtX3VwZGF0ZShjdHgsIGlucHV0LCBsZW5ndGgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3V0cHV0LCBsZW5ndGgsICZvbGVuKSkgIT0gMCkgeworICAgICAgICByZXR1cm4gcmV0OworICAgIH0KKworICAgIGlmICgocmV0ID0gbWJlZHRsc19jY21fZmluaXNoKGN0eCwgdGFnLCB0YWdfbGVuKSkgIT0gMCkgeworICAgICAgICByZXR1cm4gcmV0OworICAgIH0KKworICAgIHJldHVybiAwOworfQorCisvKgorICogQXV0aGVudGljYXRlZCBlbmNyeXB0aW9uCisgKi8KK2ludCBtYmVkdGxzX2NjbV9zdGFyX2VuY3J5cHRfYW5kX3RhZyhtYmVkdGxzX2NjbV9jb250ZXh0ICpjdHgsIHNpemVfdCBsZW5ndGgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdW5zaWduZWQgY2hhciAqaXYsIHNpemVfdCBpdl9sZW4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdW5zaWduZWQgY2hhciAqYWRkLCBzaXplX3QgYWRkX2xlbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1bnNpZ25lZCBjaGFyICppbnB1dCwgdW5zaWduZWQgY2hhciAqb3V0cHV0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGNoYXIgKnRhZywgc2l6ZV90IHRhZ19sZW4pCit7CisgICAgcmV0dXJuIGNjbV9hdXRoX2NyeXB0KGN0eCwgTUJFRFRMU19DQ01fU1RBUl9FTkNSWVBULCBsZW5ndGgsIGl2LCBpdl9sZW4sCisgICAgICAgICAgICAgICAgICAgICAgICAgIGFkZCwgYWRkX2xlbiwgaW5wdXQsIG91dHB1dCwgdGFnLCB0YWdfbGVuKTsKK30KKworaW50IG1iZWR0bHNfY2NtX2VuY3J5cHRfYW5kX3RhZyhtYmVkdGxzX2NjbV9jb250ZXh0ICpjdHgsIHNpemVfdCBsZW5ndGgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgKml2LCBzaXplX3QgaXZfbGVuLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1bnNpZ25lZCBjaGFyICphZGQsIHNpemVfdCBhZGRfbGVuLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1bnNpZ25lZCBjaGFyICppbnB1dCwgdW5zaWduZWQgY2hhciAqb3V0cHV0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBjaGFyICp0YWcsIHNpemVfdCB0YWdfbGVuKQoreworICAgIHJldHVybiBjY21fYXV0aF9jcnlwdChjdHgsIE1CRURUTFNfQ0NNX0VOQ1JZUFQsIGxlbmd0aCwgaXYsIGl2X2xlbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgYWRkLCBhZGRfbGVuLCBpbnB1dCwgb3V0cHV0LCB0YWcsIHRhZ19sZW4pOworfQorCisvKgorICogQXV0aGVudGljYXRlZCBkZWNyeXB0aW9uCisgKi8KK3N0YXRpYyBpbnQgbWJlZHRsc19jY21fY29tcGFyZV90YWdzKGNvbnN0IHVuc2lnbmVkIGNoYXIgKnRhZzEsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1bnNpZ25lZCBjaGFyICp0YWcyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IHRhZ19sZW4pCit7CisgICAgLyogQ2hlY2sgdGFnIGluICJjb25zdGFudC10aW1lIiAqLworICAgIGludCBkaWZmID0gbWJlZHRsc19jdF9tZW1jbXAodGFnMSwgdGFnMiwgdGFnX2xlbik7CisKKyAgICBpZiAoZGlmZiAhPSAwKSB7CisgICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9DQ01fQVVUSF9GQUlMRUQ7CisgICAgfQorCisgICAgcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgY2NtX2F1dGhfZGVjcnlwdChtYmVkdGxzX2NjbV9jb250ZXh0ICpjdHgsIGludCBtb2RlLCBzaXplX3QgbGVuZ3RoLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgKml2LCBzaXplX3QgaXZfbGVuLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgKmFkZCwgc2l6ZV90IGFkZF9sZW4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdW5zaWduZWQgY2hhciAqaW5wdXQsIHVuc2lnbmVkIGNoYXIgKm91dHB1dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1bnNpZ25lZCBjaGFyICp0YWcsIHNpemVfdCB0YWdfbGVuKQoreworICAgIGludCByZXQgPSBNQkVEVExTX0VSUl9FUlJPUl9DT1JSVVBUSU9OX0RFVEVDVEVEOworICAgIHVuc2lnbmVkIGNoYXIgY2hlY2tfdGFnWzE2XTsKKworICAgIGlmICgocmV0ID0gY2NtX2F1dGhfY3J5cHQoY3R4LCBtb2RlLCBsZW5ndGgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpdiwgaXZfbGVuLCBhZGQsIGFkZF9sZW4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnB1dCwgb3V0cHV0LCBjaGVja190YWcsIHRhZ19sZW4pKSAhPSAwKSB7CisgICAgICAgIHJldHVybiByZXQ7CisgICAgfQorCisgICAgaWYgKChyZXQgPSBtYmVkdGxzX2NjbV9jb21wYXJlX3RhZ3ModGFnLCBjaGVja190YWcsIHRhZ19sZW4pKSAhPSAwKSB7CisgICAgICAgIG1iZWR0bHNfcGxhdGZvcm1femVyb2l6ZShvdXRwdXQsIGxlbmd0aCk7CisgICAgICAgIHJldHVybiByZXQ7CisgICAgfQorCisgICAgcmV0dXJuIDA7Cit9CisKK2ludCBtYmVkdGxzX2NjbV9zdGFyX2F1dGhfZGVjcnlwdChtYmVkdGxzX2NjbV9jb250ZXh0ICpjdHgsIHNpemVfdCBsZW5ndGgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdW5zaWduZWQgY2hhciAqaXYsIHNpemVfdCBpdl9sZW4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdW5zaWduZWQgY2hhciAqYWRkLCBzaXplX3QgYWRkX2xlbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1bnNpZ25lZCBjaGFyICppbnB1dCwgdW5zaWduZWQgY2hhciAqb3V0cHV0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgKnRhZywgc2l6ZV90IHRhZ19sZW4pCit7CisgICAgcmV0dXJuIGNjbV9hdXRoX2RlY3J5cHQoY3R4LCBNQkVEVExTX0NDTV9TVEFSX0RFQ1JZUFQsIGxlbmd0aCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpdiwgaXZfbGVuLCBhZGQsIGFkZF9sZW4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5wdXQsIG91dHB1dCwgdGFnLCB0YWdfbGVuKTsKK30KKworaW50IG1iZWR0bHNfY2NtX2F1dGhfZGVjcnlwdChtYmVkdGxzX2NjbV9jb250ZXh0ICpjdHgsIHNpemVfdCBsZW5ndGgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgKml2LCBzaXplX3QgaXZfbGVuLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1bnNpZ25lZCBjaGFyICphZGQsIHNpemVfdCBhZGRfbGVuLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1bnNpZ25lZCBjaGFyICppbnB1dCwgdW5zaWduZWQgY2hhciAqb3V0cHV0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1bnNpZ25lZCBjaGFyICp0YWcsIHNpemVfdCB0YWdfbGVuKQoreworICAgIHJldHVybiBjY21fYXV0aF9kZWNyeXB0KGN0eCwgTUJFRFRMU19DQ01fREVDUllQVCwgbGVuZ3RoLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGl2LCBpdl9sZW4sIGFkZCwgYWRkX2xlbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnB1dCwgb3V0cHV0LCB0YWcsIHRhZ19sZW4pOworfQorCisjaWYgZGVmaW5lZChNQkVEVExTX1NFTEZfVEVTVCkgJiYgZGVmaW5lZChNQkVEVExTX0NDTV9HQ01fQ0FOX0FFUykKKy8qCisgKiBFeGFtcGxlcyAxIHRvIDMgZnJvbSBTUDgwMC0zOEMgQXBwZW5kaXggQworICovCisKKyNkZWZpbmUgTkJfVEVTVFMgMworI2RlZmluZSBDQ01fU0VMRlRFU1RfUFRfTUFYX0xFTiAyNAorI2RlZmluZSBDQ01fU0VMRlRFU1RfQ1RfTUFYX0xFTiAzMgorLyoKKyAqIFRoZSBkYXRhIGlzIHRoZSBzYW1lIGZvciBhbGwgdGVzdHMsIG9ubHkgdGhlIHVzZWQgbGVuZ3RoIGNoYW5nZXMKKyAqLworc3RhdGljIGNvbnN0IHVuc2lnbmVkIGNoYXIga2V5X3Rlc3RfZGF0YVtdID0geworICAgIDB4NDAsIDB4NDEsIDB4NDIsIDB4NDMsIDB4NDQsIDB4NDUsIDB4NDYsIDB4NDcsCisgICAgMHg0OCwgMHg0OSwgMHg0YSwgMHg0YiwgMHg0YywgMHg0ZCwgMHg0ZSwgMHg0ZgorfTsKKworc3RhdGljIGNvbnN0IHVuc2lnbmVkIGNoYXIgaXZfdGVzdF9kYXRhW10gPSB7CisgICAgMHgxMCwgMHgxMSwgMHgxMiwgMHgxMywgMHgxNCwgMHgxNSwgMHgxNiwgMHgxNywKKyAgICAweDE4LCAweDE5LCAweDFhLCAweDFiCit9OworCitzdGF0aWMgY29uc3QgdW5zaWduZWQgY2hhciBhZF90ZXN0X2RhdGFbXSA9IHsKKyAgICAweDAwLCAweDAxLCAweDAyLCAweDAzLCAweDA0LCAweDA1LCAweDA2LCAweDA3LAorICAgIDB4MDgsIDB4MDksIDB4MGEsIDB4MGIsIDB4MGMsIDB4MGQsIDB4MGUsIDB4MGYsCisgICAgMHgxMCwgMHgxMSwgMHgxMiwgMHgxMworfTsKKworc3RhdGljIGNvbnN0IHVuc2lnbmVkIGNoYXIgbXNnX3Rlc3RfZGF0YVtDQ01fU0VMRlRFU1RfUFRfTUFYX0xFTl0gPSB7CisgICAgMHgyMCwgMHgyMSwgMHgyMiwgMHgyMywgMHgyNCwgMHgyNSwgMHgyNiwgMHgyNywKKyAgICAweDI4LCAweDI5LCAweDJhLCAweDJiLCAweDJjLCAweDJkLCAweDJlLCAweDJmLAorICAgIDB4MzAsIDB4MzEsIDB4MzIsIDB4MzMsIDB4MzQsIDB4MzUsIDB4MzYsIDB4MzcsCit9OworCitzdGF0aWMgY29uc3Qgc2l6ZV90IGl2X2xlbl90ZXN0X2RhdGFbTkJfVEVTVFNdID0geyA3LCA4LCAgMTIgfTsKK3N0YXRpYyBjb25zdCBzaXplX3QgYWRkX2xlbl90ZXN0X2RhdGFbTkJfVEVTVFNdID0geyA4LCAxNiwgMjAgfTsKK3N0YXRpYyBjb25zdCBzaXplX3QgbXNnX2xlbl90ZXN0X2RhdGFbTkJfVEVTVFNdID0geyA0LCAxNiwgMjQgfTsKK3N0YXRpYyBjb25zdCBzaXplX3QgdGFnX2xlbl90ZXN0X2RhdGFbTkJfVEVTVFNdID0geyA0LCA2LCAgOCAgfTsKKworc3RhdGljIGNvbnN0IHVuc2lnbmVkIGNoYXIgcmVzX3Rlc3RfZGF0YVtOQl9URVNUU11bQ0NNX1NFTEZURVNUX0NUX01BWF9MRU5dID0geworICAgIHsgICAweDcxLCAweDYyLCAweDAxLCAweDViLCAweDRkLCAweGFjLCAweDI1LCAweDVkIH0sCisgICAgeyAgIDB4ZDIsIDB4YTEsIDB4ZjAsIDB4ZTAsIDB4NTEsIDB4ZWEsIDB4NWYsIDB4NjIsCisgICAgICAgIDB4MDgsIDB4MWEsIDB4NzcsIDB4OTIsIDB4MDcsIDB4M2QsIDB4NTksIDB4M2QsCisgICAgICAgIDB4MWYsIDB4YzYsIDB4NGYsIDB4YmYsIDB4YWMsIDB4Y2QgfSwKKyAgICB7ICAgMHhlMywgMHhiMiwgMHgwMSwgMHhhOSwgMHhmNSwgMHhiNywgMHgxYSwgMHg3YSwKKyAgICAgICAgMHg5YiwgMHgxYywgMHhlYSwgMHhlYywgMHhjZCwgMHg5NywgMHhlNywgMHgwYiwKKyAgICAgICAgMHg2MSwgMHg3NiwgMHhhYSwgMHhkOSwgMHhhNCwgMHg0MiwgMHg4YSwgMHhhNSwKKyAgICAgICAgMHg0OCwgMHg0MywgMHg5MiwgMHhmYiwgMHhjMSwgMHhiMCwgMHg5OSwgMHg1MSB9Cit9OworCitpbnQgbWJlZHRsc19jY21fc2VsZl90ZXN0KGludCB2ZXJib3NlKQoreworICAgIG1iZWR0bHNfY2NtX2NvbnRleHQgY3R4OworICAgIC8qCisgICAgICogU29tZSBoYXJkd2FyZSBhY2NlbGVyYXRvcnMgcmVxdWlyZSB0aGUgaW5wdXQgYW5kIG91dHB1dCBidWZmZXJzCisgICAgICogd291bGQgYmUgaW4gUkFNLCBiZWNhdXNlIHRoZSBmbGFzaCBpcyBub3QgYWNjZXNzaWJsZS4KKyAgICAgKiBVc2UgYnVmZmVycyBvbiB0aGUgc3RhY2sgdG8gaG9sZCB0aGUgdGVzdCB2ZWN0b3JzIGRhdGEuCisgICAgICovCisgICAgdW5zaWduZWQgY2hhciBwbGFpbnRleHRbQ0NNX1NFTEZURVNUX1BUX01BWF9MRU5dOworICAgIHVuc2lnbmVkIGNoYXIgY2lwaGVydGV4dFtDQ01fU0VMRlRFU1RfQ1RfTUFYX0xFTl07CisgICAgc2l6ZV90IGk7CisgICAgaW50IHJldCA9IE1CRURUTFNfRVJSX0VSUk9SX0NPUlJVUFRJT05fREVURUNURUQ7CisKKyAgICBtYmVkdGxzX2NjbV9pbml0KCZjdHgpOworCisgICAgaWYgKG1iZWR0bHNfY2NtX3NldGtleSgmY3R4LCBNQkVEVExTX0NJUEhFUl9JRF9BRVMsIGtleV90ZXN0X2RhdGEsCisgICAgICAgICAgICAgICAgICAgICAgICAgICA4ICogc2l6ZW9mKGtleV90ZXN0X2RhdGEpKSAhPSAwKSB7CisgICAgICAgIGlmICh2ZXJib3NlICE9IDApIHsKKyAgICAgICAgICAgIG1iZWR0bHNfcHJpbnRmKCIgIENDTTogc2V0dXAgZmFpbGVkIik7CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gMTsKKyAgICB9CisKKyAgICBmb3IgKGkgPSAwOyBpIDwgTkJfVEVTVFM7IGkrKykgeworICAgICAgICBpZiAodmVyYm9zZSAhPSAwKSB7CisgICAgICAgICAgICBtYmVkdGxzX3ByaW50ZigiICBDQ00tQUVTICMldTogIiwgKHVuc2lnbmVkIGludCkgaSArIDEpOworICAgICAgICB9CisKKyAgICAgICAgbWVtc2V0KHBsYWludGV4dCwgMCwgQ0NNX1NFTEZURVNUX1BUX01BWF9MRU4pOworICAgICAgICBtZW1zZXQoY2lwaGVydGV4dCwgMCwgQ0NNX1NFTEZURVNUX0NUX01BWF9MRU4pOworICAgICAgICBtZW1jcHkocGxhaW50ZXh0LCBtc2dfdGVzdF9kYXRhLCBtc2dfbGVuX3Rlc3RfZGF0YVtpXSk7CisKKyAgICAgICAgcmV0ID0gbWJlZHRsc19jY21fZW5jcnlwdF9hbmRfdGFnKCZjdHgsIG1zZ19sZW5fdGVzdF9kYXRhW2ldLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXZfdGVzdF9kYXRhLCBpdl9sZW5fdGVzdF9kYXRhW2ldLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWRfdGVzdF9kYXRhLCBhZGRfbGVuX3Rlc3RfZGF0YVtpXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBsYWludGV4dCwgY2lwaGVydGV4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNpcGhlcnRleHQgKyBtc2dfbGVuX3Rlc3RfZGF0YVtpXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhZ19sZW5fdGVzdF9kYXRhW2ldKTsKKworICAgICAgICBpZiAocmV0ICE9IDAgfHwKKyAgICAgICAgICAgIG1lbWNtcChjaXBoZXJ0ZXh0LCByZXNfdGVzdF9kYXRhW2ldLAorICAgICAgICAgICAgICAgICAgIG1zZ19sZW5fdGVzdF9kYXRhW2ldICsgdGFnX2xlbl90ZXN0X2RhdGFbaV0pICE9IDApIHsKKyAgICAgICAgICAgIGlmICh2ZXJib3NlICE9IDApIHsKKyAgICAgICAgICAgICAgICBtYmVkdGxzX3ByaW50ZigiZmFpbGVkXG4iKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgcmV0dXJuIDE7CisgICAgICAgIH0KKyAgICAgICAgbWVtc2V0KHBsYWludGV4dCwgMCwgQ0NNX1NFTEZURVNUX1BUX01BWF9MRU4pOworCisgICAgICAgIHJldCA9IG1iZWR0bHNfY2NtX2F1dGhfZGVjcnlwdCgmY3R4LCBtc2dfbGVuX3Rlc3RfZGF0YVtpXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGl2X3Rlc3RfZGF0YSwgaXZfbGVuX3Rlc3RfZGF0YVtpXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFkX3Rlc3RfZGF0YSwgYWRkX2xlbl90ZXN0X2RhdGFbaV0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaXBoZXJ0ZXh0LCBwbGFpbnRleHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaXBoZXJ0ZXh0ICsgbXNnX2xlbl90ZXN0X2RhdGFbaV0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YWdfbGVuX3Rlc3RfZGF0YVtpXSk7CisKKyAgICAgICAgaWYgKHJldCAhPSAwIHx8CisgICAgICAgICAgICBtZW1jbXAocGxhaW50ZXh0LCBtc2dfdGVzdF9kYXRhLCBtc2dfbGVuX3Rlc3RfZGF0YVtpXSkgIT0gMCkgeworICAgICAgICAgICAgaWYgKHZlcmJvc2UgIT0gMCkgeworICAgICAgICAgICAgICAgIG1iZWR0bHNfcHJpbnRmKCJmYWlsZWRcbiIpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICByZXR1cm4gMTsKKyAgICAgICAgfQorCisgICAgICAgIGlmICh2ZXJib3NlICE9IDApIHsKKyAgICAgICAgICAgIG1iZWR0bHNfcHJpbnRmKCJwYXNzZWRcbiIpOworICAgICAgICB9CisgICAgfQorCisgICAgbWJlZHRsc19jY21fZnJlZSgmY3R4KTsKKworICAgIGlmICh2ZXJib3NlICE9IDApIHsKKyAgICAgICAgbWJlZHRsc19wcmludGYoIlxuIik7CisgICAgfQorCisgICAgcmV0dXJuIDA7Cit9CisKKyNlbmRpZiAvKiBNQkVEVExTX1NFTEZfVEVTVCAmJiBNQkVEVExTX0FFU19DICovCisKKyNlbmRpZiAvKiBNQkVEVExTX0NDTV9DICovCmRpZmYgLS1naXQgYS90Zi1wc2EtY3J5cHRvL2RyaXZlcnMvYnVpbHRpbi9zcmMvY2hhY2hhMjAuYyBiL3RmLXBzYS1jcnlwdG8vZHJpdmVycy9idWlsdGluL3NyYy9jaGFjaGEyMC5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjM1MDE4MzcKLS0tIC9kZXYvbnVsbAorKysgYi90Zi1wc2EtY3J5cHRvL2RyaXZlcnMvYnVpbHRpbi9zcmMvY2hhY2hhMjAuYwpAQCAtMCwwICsxLDQ5MyBAQAorLyoqCisgKiBcZmlsZSBjaGFjaGEyMC5jCisgKgorICogXGJyaWVmIENoYUNoYTIwIGNpcGhlci4KKyAqCisgKiBcYXV0aG9yIERhbmllbCBLaW5nIDxkYW1ha2kuZ2hAZ21haWwuY29tPgorICoKKyAqICBDb3B5cmlnaHQgVGhlIE1iZWQgVExTIENvbnRyaWJ1dG9ycworICogIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wIE9SIEdQTC0yLjAtb3ItbGF0ZXIKKyAqLworCisjaW5jbHVkZSAiY29tbW9uLmgiCisKKyNpZiBkZWZpbmVkKE1CRURUTFNfQ0hBQ0hBMjBfQykKKworI2luY2x1ZGUgIm1iZWR0bHMvY2hhY2hhMjAuaCIKKyNpbmNsdWRlICJtYmVkdGxzL3BsYXRmb3JtX3V0aWwuaCIKKyNpbmNsdWRlICJtYmVkdGxzL2Vycm9yLmgiCisKKyNpbmNsdWRlIDxzdGRkZWYuaD4KKyNpbmNsdWRlIDxzdHJpbmcuaD4KKworI2luY2x1ZGUgIm1iZWR0bHMvcGxhdGZvcm0uaCIKKworI2RlZmluZSBST1RMMzIodmFsdWUsIGFtb3VudCkgXAorICAgICgodWludDMyX3QpICgodmFsdWUpIDw8IChhbW91bnQpKSB8ICgodmFsdWUpID4+ICgzMiAtIChhbW91bnQpKSkpCisKKyNkZWZpbmUgQ0hBQ0hBMjBfQ1RSX0lOREVYICgxMlUpCisKKyNkZWZpbmUgQ0hBQ0hBMjBfQkxPQ0tfU0laRV9CWVRFUyAoNFUgKiAxNlUpCisKKy8qKgorICogXGJyaWVmICAgICAgICAgICBDaGFDaGEyMCBxdWFydGVyIHJvdW5kIG9wZXJhdGlvbi4KKyAqCisgKiAgICAgICAgICAgICAgICAgIFRoZSBxdWFydGVyIHJvdW5kIGlzIGRlZmluZWQgYXMgZm9sbG93cyAoZnJvbSBSRkMgNzUzOSk6CisgKiAgICAgICAgICAgICAgICAgICAgICAxLiAgYSArPSBiOyBkIF49IGE7IGQgPDw8PSAxNjsKKyAqICAgICAgICAgICAgICAgICAgICAgIDIuICBjICs9IGQ7IGIgXj0gYzsgYiA8PDw9IDEyOworICogICAgICAgICAgICAgICAgICAgICAgMy4gIGEgKz0gYjsgZCBePSBhOyBkIDw8PD0gODsKKyAqICAgICAgICAgICAgICAgICAgICAgIDQuICBjICs9IGQ7IGIgXj0gYzsgYiA8PDw9IDc7CisgKgorICogXHBhcmFtIHN0YXRlICAgICBDaGFDaGEyMCBzdGF0ZSB0byBtb2RpZnkuCisgKiBccGFyYW0gYSAgICAgICAgIFRoZSBpbmRleCBvZiAnYScgaW4gdGhlIHN0YXRlLgorICogXHBhcmFtIGIgICAgICAgICBUaGUgaW5kZXggb2YgJ2InIGluIHRoZSBzdGF0ZS4KKyAqIFxwYXJhbSBjICAgICAgICAgVGhlIGluZGV4IG9mICdjJyBpbiB0aGUgc3RhdGUuCisgKiBccGFyYW0gZCAgICAgICAgIFRoZSBpbmRleCBvZiAnZCcgaW4gdGhlIHN0YXRlLgorICovCitzdGF0aWMgaW5saW5lIHZvaWQgY2hhY2hhMjBfcXVhcnRlcl9yb3VuZCh1aW50MzJfdCBzdGF0ZVsxNl0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgYSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IGMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgZCkKK3sKKyAgICAvKiBhICs9IGI7IGQgXj0gYTsgZCA8PDw9IDE2OyAqLworICAgIHN0YXRlW2FdICs9IHN0YXRlW2JdOworICAgIHN0YXRlW2RdIF49IHN0YXRlW2FdOworICAgIHN0YXRlW2RdID0gUk9UTDMyKHN0YXRlW2RdLCAxNik7CisKKyAgICAvKiBjICs9IGQ7IGIgXj0gYzsgYiA8PDw9IDEyICovCisgICAgc3RhdGVbY10gKz0gc3RhdGVbZF07CisgICAgc3RhdGVbYl0gXj0gc3RhdGVbY107CisgICAgc3RhdGVbYl0gPSBST1RMMzIoc3RhdGVbYl0sIDEyKTsKKworICAgIC8qIGEgKz0gYjsgZCBePSBhOyBkIDw8PD0gODsgKi8KKyAgICBzdGF0ZVthXSArPSBzdGF0ZVtiXTsKKyAgICBzdGF0ZVtkXSBePSBzdGF0ZVthXTsKKyAgICBzdGF0ZVtkXSA9IFJPVEwzMihzdGF0ZVtkXSwgOCk7CisKKyAgICAvKiBjICs9IGQ7IGIgXj0gYzsgYiA8PDw9IDc7ICovCisgICAgc3RhdGVbY10gKz0gc3RhdGVbZF07CisgICAgc3RhdGVbYl0gXj0gc3RhdGVbY107CisgICAgc3RhdGVbYl0gPSBST1RMMzIoc3RhdGVbYl0sIDcpOworfQorCisvKioKKyAqIFxicmllZiAgICAgICAgICAgUGVyZm9ybSB0aGUgQ2hhQ2hhMjAgaW5uZXIgYmxvY2sgb3BlcmF0aW9uLgorICoKKyAqICAgICAgICAgICAgICAgICAgVGhpcyBmdW5jdGlvbiBwZXJmb3JtcyB0d28gcm91bmRzOiB0aGUgY29sdW1uIHJvdW5kIGFuZCB0aGUKKyAqICAgICAgICAgICAgICAgICAgZGlhZ29uYWwgcm91bmQuCisgKgorICogXHBhcmFtIHN0YXRlICAgICBUaGUgQ2hhQ2hhMjAgc3RhdGUgdG8gdXBkYXRlLgorICovCitzdGF0aWMgdm9pZCBjaGFjaGEyMF9pbm5lcl9ibG9jayh1aW50MzJfdCBzdGF0ZVsxNl0pCit7CisgICAgY2hhY2hhMjBfcXVhcnRlcl9yb3VuZChzdGF0ZSwgMCwgNCwgOCwgIDEyKTsKKyAgICBjaGFjaGEyMF9xdWFydGVyX3JvdW5kKHN0YXRlLCAxLCA1LCA5LCAgMTMpOworICAgIGNoYWNoYTIwX3F1YXJ0ZXJfcm91bmQoc3RhdGUsIDIsIDYsIDEwLCAxNCk7CisgICAgY2hhY2hhMjBfcXVhcnRlcl9yb3VuZChzdGF0ZSwgMywgNywgMTEsIDE1KTsKKworICAgIGNoYWNoYTIwX3F1YXJ0ZXJfcm91bmQoc3RhdGUsIDAsIDUsIDEwLCAxNSk7CisgICAgY2hhY2hhMjBfcXVhcnRlcl9yb3VuZChzdGF0ZSwgMSwgNiwgMTEsIDEyKTsKKyAgICBjaGFjaGEyMF9xdWFydGVyX3JvdW5kKHN0YXRlLCAyLCA3LCA4LCAgMTMpOworICAgIGNoYWNoYTIwX3F1YXJ0ZXJfcm91bmQoc3RhdGUsIDMsIDQsIDksICAxNCk7Cit9CisKKy8qKgorICogXGJyaWVmICAgICAgICAgICAgICAgR2VuZXJhdGVzIGEga2V5c3RyZWFtIGJsb2NrLgorICoKKyAqIFxwYXJhbSBpbml0aWFsX3N0YXRlIFRoZSBpbml0aWFsIENoYUNoYTIwIHN0YXRlIChrZXksIG5vbmNlLCBjb3VudGVyKS4KKyAqIFxwYXJhbSBrZXlzdHJlYW0gICAgIEdlbmVyYXRlZCBrZXlzdHJlYW0gYnl0ZXMgYXJlIHdyaXR0ZW4gdG8gdGhpcyBidWZmZXIuCisgKi8KK3N0YXRpYyB2b2lkIGNoYWNoYTIwX2Jsb2NrKGNvbnN0IHVpbnQzMl90IGluaXRpYWxfc3RhdGVbMTZdLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgY2hhciBrZXlzdHJlYW1bNjRdKQoreworICAgIHVpbnQzMl90IHdvcmtpbmdfc3RhdGVbMTZdOworICAgIHNpemVfdCBpOworCisgICAgbWVtY3B5KHdvcmtpbmdfc3RhdGUsCisgICAgICAgICAgIGluaXRpYWxfc3RhdGUsCisgICAgICAgICAgIENIQUNIQTIwX0JMT0NLX1NJWkVfQllURVMpOworCisgICAgZm9yIChpID0gMFU7IGkgPCAxMFU7IGkrKykgeworICAgICAgICBjaGFjaGEyMF9pbm5lcl9ibG9jayh3b3JraW5nX3N0YXRlKTsKKyAgICB9CisKKyAgICB3b3JraW5nX3N0YXRlWzBdICs9IGluaXRpYWxfc3RhdGVbMF07CisgICAgd29ya2luZ19zdGF0ZVsxXSArPSBpbml0aWFsX3N0YXRlWzFdOworICAgIHdvcmtpbmdfc3RhdGVbMl0gKz0gaW5pdGlhbF9zdGF0ZVsyXTsKKyAgICB3b3JraW5nX3N0YXRlWzNdICs9IGluaXRpYWxfc3RhdGVbM107CisgICAgd29ya2luZ19zdGF0ZVs0XSArPSBpbml0aWFsX3N0YXRlWzRdOworICAgIHdvcmtpbmdfc3RhdGVbNV0gKz0gaW5pdGlhbF9zdGF0ZVs1XTsKKyAgICB3b3JraW5nX3N0YXRlWzZdICs9IGluaXRpYWxfc3RhdGVbNl07CisgICAgd29ya2luZ19zdGF0ZVs3XSArPSBpbml0aWFsX3N0YXRlWzddOworICAgIHdvcmtpbmdfc3RhdGVbOF0gKz0gaW5pdGlhbF9zdGF0ZVs4XTsKKyAgICB3b3JraW5nX3N0YXRlWzldICs9IGluaXRpYWxfc3RhdGVbOV07CisgICAgd29ya2luZ19zdGF0ZVsxMF0gKz0gaW5pdGlhbF9zdGF0ZVsxMF07CisgICAgd29ya2luZ19zdGF0ZVsxMV0gKz0gaW5pdGlhbF9zdGF0ZVsxMV07CisgICAgd29ya2luZ19zdGF0ZVsxMl0gKz0gaW5pdGlhbF9zdGF0ZVsxMl07CisgICAgd29ya2luZ19zdGF0ZVsxM10gKz0gaW5pdGlhbF9zdGF0ZVsxM107CisgICAgd29ya2luZ19zdGF0ZVsxNF0gKz0gaW5pdGlhbF9zdGF0ZVsxNF07CisgICAgd29ya2luZ19zdGF0ZVsxNV0gKz0gaW5pdGlhbF9zdGF0ZVsxNV07CisKKyAgICBmb3IgKGkgPSAwVTsgaSA8IDE2OyBpKyspIHsKKyAgICAgICAgc2l6ZV90IG9mZnNldCA9IGkgKiA0VTsKKworICAgICAgICBNQkVEVExTX1BVVF9VSU5UMzJfTEUod29ya2luZ19zdGF0ZVtpXSwga2V5c3RyZWFtLCBvZmZzZXQpOworICAgIH0KKworICAgIG1iZWR0bHNfcGxhdGZvcm1femVyb2l6ZSh3b3JraW5nX3N0YXRlLCBzaXplb2Yod29ya2luZ19zdGF0ZSkpOworfQorCit2b2lkIG1iZWR0bHNfY2hhY2hhMjBfaW5pdChtYmVkdGxzX2NoYWNoYTIwX2NvbnRleHQgKmN0eCkKK3sKKyAgICBtYmVkdGxzX3BsYXRmb3JtX3plcm9pemUoY3R4LT5zdGF0ZSwgc2l6ZW9mKGN0eC0+c3RhdGUpKTsKKyAgICBtYmVkdGxzX3BsYXRmb3JtX3plcm9pemUoY3R4LT5rZXlzdHJlYW04LCBzaXplb2YoY3R4LT5rZXlzdHJlYW04KSk7CisKKyAgICAvKiBJbml0aWFsbHksIHRoZXJlJ3Mgbm8ga2V5c3RyZWFtIGJ5dGVzIGF2YWlsYWJsZSAqLworICAgIGN0eC0+a2V5c3RyZWFtX2J5dGVzX3VzZWQgPSBDSEFDSEEyMF9CTE9DS19TSVpFX0JZVEVTOworfQorCit2b2lkIG1iZWR0bHNfY2hhY2hhMjBfZnJlZShtYmVkdGxzX2NoYWNoYTIwX2NvbnRleHQgKmN0eCkKK3sKKyAgICBpZiAoY3R4ICE9IE5VTEwpIHsKKyAgICAgICAgbWJlZHRsc19wbGF0Zm9ybV96ZXJvaXplKGN0eCwgc2l6ZW9mKG1iZWR0bHNfY2hhY2hhMjBfY29udGV4dCkpOworICAgIH0KK30KKworaW50IG1iZWR0bHNfY2hhY2hhMjBfc2V0a2V5KG1iZWR0bHNfY2hhY2hhMjBfY29udGV4dCAqY3R4LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIga2V5WzMyXSkKK3sKKyAgICAvKiBDaGFDaGEyMCBjb25zdGFudHMgLSB0aGUgc3RyaW5nICJleHBhbmQgMzItYnl0ZSBrIiAqLworICAgIGN0eC0+c3RhdGVbMF0gPSAweDYxNzA3ODY1OworICAgIGN0eC0+c3RhdGVbMV0gPSAweDMzMjA2NDZlOworICAgIGN0eC0+c3RhdGVbMl0gPSAweDc5NjIyZDMyOworICAgIGN0eC0+c3RhdGVbM10gPSAweDZiMjA2NTc0OworCisgICAgLyogU2V0IGtleSAqLworICAgIGN0eC0+c3RhdGVbNF0gID0gTUJFRFRMU19HRVRfVUlOVDMyX0xFKGtleSwgMCk7CisgICAgY3R4LT5zdGF0ZVs1XSAgPSBNQkVEVExTX0dFVF9VSU5UMzJfTEUoa2V5LCA0KTsKKyAgICBjdHgtPnN0YXRlWzZdICA9IE1CRURUTFNfR0VUX1VJTlQzMl9MRShrZXksIDgpOworICAgIGN0eC0+c3RhdGVbN10gID0gTUJFRFRMU19HRVRfVUlOVDMyX0xFKGtleSwgMTIpOworICAgIGN0eC0+c3RhdGVbOF0gID0gTUJFRFRMU19HRVRfVUlOVDMyX0xFKGtleSwgMTYpOworICAgIGN0eC0+c3RhdGVbOV0gID0gTUJFRFRMU19HRVRfVUlOVDMyX0xFKGtleSwgMjApOworICAgIGN0eC0+c3RhdGVbMTBdID0gTUJFRFRMU19HRVRfVUlOVDMyX0xFKGtleSwgMjQpOworICAgIGN0eC0+c3RhdGVbMTFdID0gTUJFRFRMU19HRVRfVUlOVDMyX0xFKGtleSwgMjgpOworCisgICAgcmV0dXJuIDA7Cit9CisKK2ludCBtYmVkdGxzX2NoYWNoYTIwX3N0YXJ0cyhtYmVkdGxzX2NoYWNoYTIwX2NvbnRleHQgKmN0eCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1bnNpZ25lZCBjaGFyIG5vbmNlWzEyXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCBjb3VudGVyKQoreworICAgIC8qIENvdW50ZXIgKi8KKyAgICBjdHgtPnN0YXRlWzEyXSA9IGNvdW50ZXI7CisKKyAgICAvKiBOb25jZSAqLworICAgIGN0eC0+c3RhdGVbMTNdID0gTUJFRFRMU19HRVRfVUlOVDMyX0xFKG5vbmNlLCAwKTsKKyAgICBjdHgtPnN0YXRlWzE0XSA9IE1CRURUTFNfR0VUX1VJTlQzMl9MRShub25jZSwgNCk7CisgICAgY3R4LT5zdGF0ZVsxNV0gPSBNQkVEVExTX0dFVF9VSU5UMzJfTEUobm9uY2UsIDgpOworCisgICAgbWJlZHRsc19wbGF0Zm9ybV96ZXJvaXplKGN0eC0+a2V5c3RyZWFtOCwgc2l6ZW9mKGN0eC0+a2V5c3RyZWFtOCkpOworCisgICAgLyogSW5pdGlhbGx5LCB0aGVyZSdzIG5vIGtleXN0cmVhbSBieXRlcyBhdmFpbGFibGUgKi8KKyAgICBjdHgtPmtleXN0cmVhbV9ieXRlc191c2VkID0gQ0hBQ0hBMjBfQkxPQ0tfU0laRV9CWVRFUzsKKworICAgIHJldHVybiAwOworfQorCitpbnQgbWJlZHRsc19jaGFjaGEyMF91cGRhdGUobWJlZHRsc19jaGFjaGEyMF9jb250ZXh0ICpjdHgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IHNpemUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdW5zaWduZWQgY2hhciAqaW5wdXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgY2hhciAqb3V0cHV0KQoreworICAgIHNpemVfdCBvZmZzZXQgPSAwVTsKKworICAgIC8qIFVzZSBsZWZ0b3ZlciBrZXlzdHJlYW0gYnl0ZXMsIGlmIGF2YWlsYWJsZSAqLworICAgIHdoaWxlIChzaXplID4gMFUgJiYgY3R4LT5rZXlzdHJlYW1fYnl0ZXNfdXNlZCA8IENIQUNIQTIwX0JMT0NLX1NJWkVfQllURVMpIHsKKyAgICAgICAgb3V0cHV0W29mZnNldF0gPSBpbnB1dFtvZmZzZXRdCisgICAgICAgICAgICAgICAgICAgICAgICAgXiBjdHgtPmtleXN0cmVhbThbY3R4LT5rZXlzdHJlYW1fYnl0ZXNfdXNlZF07CisKKyAgICAgICAgY3R4LT5rZXlzdHJlYW1fYnl0ZXNfdXNlZCsrOworICAgICAgICBvZmZzZXQrKzsKKyAgICAgICAgc2l6ZS0tOworICAgIH0KKworICAgIC8qIFByb2Nlc3MgZnVsbCBibG9ja3MgKi8KKyAgICB3aGlsZSAoc2l6ZSA+PSBDSEFDSEEyMF9CTE9DS19TSVpFX0JZVEVTKSB7CisgICAgICAgIC8qIEdlbmVyYXRlIG5ldyBrZXlzdHJlYW0gYmxvY2sgYW5kIGluY3JlbWVudCBjb3VudGVyICovCisgICAgICAgIGNoYWNoYTIwX2Jsb2NrKGN0eC0+c3RhdGUsIGN0eC0+a2V5c3RyZWFtOCk7CisgICAgICAgIGN0eC0+c3RhdGVbQ0hBQ0hBMjBfQ1RSX0lOREVYXSsrOworCisgICAgICAgIG1iZWR0bHNfeG9yKG91dHB1dCArIG9mZnNldCwgaW5wdXQgKyBvZmZzZXQsIGN0eC0+a2V5c3RyZWFtOCwgNjRVKTsKKworICAgICAgICBvZmZzZXQgKz0gQ0hBQ0hBMjBfQkxPQ0tfU0laRV9CWVRFUzsKKyAgICAgICAgc2l6ZSAgIC09IENIQUNIQTIwX0JMT0NLX1NJWkVfQllURVM7CisgICAgfQorCisgICAgLyogTGFzdCAocGFydGlhbCkgYmxvY2sgKi8KKyAgICBpZiAoc2l6ZSA+IDBVKSB7CisgICAgICAgIC8qIEdlbmVyYXRlIG5ldyBrZXlzdHJlYW0gYmxvY2sgYW5kIGluY3JlbWVudCBjb3VudGVyICovCisgICAgICAgIGNoYWNoYTIwX2Jsb2NrKGN0eC0+c3RhdGUsIGN0eC0+a2V5c3RyZWFtOCk7CisgICAgICAgIGN0eC0+c3RhdGVbQ0hBQ0hBMjBfQ1RSX0lOREVYXSsrOworCisgICAgICAgIG1iZWR0bHNfeG9yKG91dHB1dCArIG9mZnNldCwgaW5wdXQgKyBvZmZzZXQsIGN0eC0+a2V5c3RyZWFtOCwgc2l6ZSk7CisKKyAgICAgICAgY3R4LT5rZXlzdHJlYW1fYnl0ZXNfdXNlZCA9IHNpemU7CisKKyAgICB9CisKKyAgICByZXR1cm4gMDsKK30KKworaW50IG1iZWR0bHNfY2hhY2hhMjBfY3J5cHQoY29uc3QgdW5zaWduZWQgY2hhciBrZXlbMzJdLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdW5zaWduZWQgY2hhciBub25jZVsxMl0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCBjb3VudGVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IGRhdGFfbGVuLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdW5zaWduZWQgY2hhciAqaW5wdXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBjaGFyICpvdXRwdXQpCit7CisgICAgbWJlZHRsc19jaGFjaGEyMF9jb250ZXh0IGN0eDsKKyAgICBpbnQgcmV0ID0gTUJFRFRMU19FUlJfRVJST1JfQ09SUlVQVElPTl9ERVRFQ1RFRDsKKworICAgIG1iZWR0bHNfY2hhY2hhMjBfaW5pdCgmY3R4KTsKKworICAgIHJldCA9IG1iZWR0bHNfY2hhY2hhMjBfc2V0a2V5KCZjdHgsIGtleSk7CisgICAgaWYgKHJldCAhPSAwKSB7CisgICAgICAgIGdvdG8gY2xlYW51cDsKKyAgICB9CisKKyAgICByZXQgPSBtYmVkdGxzX2NoYWNoYTIwX3N0YXJ0cygmY3R4LCBub25jZSwgY291bnRlcik7CisgICAgaWYgKHJldCAhPSAwKSB7CisgICAgICAgIGdvdG8gY2xlYW51cDsKKyAgICB9CisKKyAgICByZXQgPSBtYmVkdGxzX2NoYWNoYTIwX3VwZGF0ZSgmY3R4LCBkYXRhX2xlbiwgaW5wdXQsIG91dHB1dCk7CisKK2NsZWFudXA6CisgICAgbWJlZHRsc19jaGFjaGEyMF9mcmVlKCZjdHgpOworICAgIHJldHVybiByZXQ7Cit9CisKKyNpZiBkZWZpbmVkKE1CRURUTFNfU0VMRl9URVNUKQorCitzdGF0aWMgY29uc3QgdW5zaWduZWQgY2hhciB0ZXN0X2tleXNbMl1bMzJdID0KK3sKKyAgICB7CisgICAgICAgIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCisgICAgICAgIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCisgICAgICAgIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCisgICAgICAgIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAKKyAgICB9LAorICAgIHsKKyAgICAgICAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKKyAgICAgICAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKKyAgICAgICAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKKyAgICAgICAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMQorICAgIH0KK307CisKK3N0YXRpYyBjb25zdCB1bnNpZ25lZCBjaGFyIHRlc3Rfbm9uY2VzWzJdWzEyXSA9Cit7CisgICAgeworICAgICAgICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAorICAgICAgICAweDAwLCAweDAwLCAweDAwLCAweDAwCisgICAgfSwKKyAgICB7CisgICAgICAgIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCisgICAgICAgIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDIKKyAgICB9Cit9OworCitzdGF0aWMgY29uc3QgdWludDMyX3QgdGVzdF9jb3VudGVyc1syXSA9Cit7CisgICAgMFUsCisgICAgMVUKK307CisKK3N0YXRpYyBjb25zdCB1bnNpZ25lZCBjaGFyIHRlc3RfaW5wdXRbMl1bMzc1XSA9Cit7CisgICAgeworICAgICAgICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAorICAgICAgICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAorICAgICAgICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAorICAgICAgICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAorICAgICAgICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAorICAgICAgICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAorICAgICAgICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAorICAgICAgICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwCisgICAgfSwKKyAgICB7CisgICAgICAgIDB4NDEsIDB4NmUsIDB4NzksIDB4MjAsIDB4NzMsIDB4NzUsIDB4NjIsIDB4NmQsCisgICAgICAgIDB4NjksIDB4NzMsIDB4NzMsIDB4NjksIDB4NmYsIDB4NmUsIDB4MjAsIDB4NzQsCisgICAgICAgIDB4NmYsIDB4MjAsIDB4NzQsIDB4NjgsIDB4NjUsIDB4MjAsIDB4NDksIDB4NDUsCisgICAgICAgIDB4NTQsIDB4NDYsIDB4MjAsIDB4NjksIDB4NmUsIDB4NzQsIDB4NjUsIDB4NmUsCisgICAgICAgIDB4NjQsIDB4NjUsIDB4NjQsIDB4MjAsIDB4NjIsIDB4NzksIDB4MjAsIDB4NzQsCisgICAgICAgIDB4NjgsIDB4NjUsIDB4MjAsIDB4NDMsIDB4NmYsIDB4NmUsIDB4NzQsIDB4NzIsCisgICAgICAgIDB4NjksIDB4NjIsIDB4NzUsIDB4NzQsIDB4NmYsIDB4NzIsIDB4MjAsIDB4NjYsCisgICAgICAgIDB4NmYsIDB4NzIsIDB4MjAsIDB4NzAsIDB4NzUsIDB4NjIsIDB4NmMsIDB4NjksCisgICAgICAgIDB4NjMsIDB4NjEsIDB4NzQsIDB4NjksIDB4NmYsIDB4NmUsIDB4MjAsIDB4NjEsCisgICAgICAgIDB4NzMsIDB4MjAsIDB4NjEsIDB4NmMsIDB4NmMsIDB4MjAsIDB4NmYsIDB4NzIsCisgICAgICAgIDB4MjAsIDB4NzAsIDB4NjEsIDB4NzIsIDB4NzQsIDB4MjAsIDB4NmYsIDB4NjYsCisgICAgICAgIDB4MjAsIDB4NjEsIDB4NmUsIDB4MjAsIDB4NDksIDB4NDUsIDB4NTQsIDB4NDYsCisgICAgICAgIDB4MjAsIDB4NDksIDB4NmUsIDB4NzQsIDB4NjUsIDB4NzIsIDB4NmUsIDB4NjUsCisgICAgICAgIDB4NzQsIDB4MmQsIDB4NDQsIDB4NzIsIDB4NjEsIDB4NjYsIDB4NzQsIDB4MjAsCisgICAgICAgIDB4NmYsIDB4NzIsIDB4MjAsIDB4NTIsIDB4NDYsIDB4NDMsIDB4MjAsIDB4NjEsCisgICAgICAgIDB4NmUsIDB4NjQsIDB4MjAsIDB4NjEsIDB4NmUsIDB4NzksIDB4MjAsIDB4NzMsCisgICAgICAgIDB4NzQsIDB4NjEsIDB4NzQsIDB4NjUsIDB4NmQsIDB4NjUsIDB4NmUsIDB4NzQsCisgICAgICAgIDB4MjAsIDB4NmQsIDB4NjEsIDB4NjQsIDB4NjUsIDB4MjAsIDB4NzcsIDB4NjksCisgICAgICAgIDB4NzQsIDB4NjgsIDB4NjksIDB4NmUsIDB4MjAsIDB4NzQsIDB4NjgsIDB4NjUsCisgICAgICAgIDB4MjAsIDB4NjMsIDB4NmYsIDB4NmUsIDB4NzQsIDB4NjUsIDB4NzgsIDB4NzQsCisgICAgICAgIDB4MjAsIDB4NmYsIDB4NjYsIDB4MjAsIDB4NjEsIDB4NmUsIDB4MjAsIDB4NDksCisgICAgICAgIDB4NDUsIDB4NTQsIDB4NDYsIDB4MjAsIDB4NjEsIDB4NjMsIDB4NzQsIDB4NjksCisgICAgICAgIDB4NzYsIDB4NjksIDB4NzQsIDB4NzksIDB4MjAsIDB4NjksIDB4NzMsIDB4MjAsCisgICAgICAgIDB4NjMsIDB4NmYsIDB4NmUsIDB4NzMsIDB4NjksIDB4NjQsIDB4NjUsIDB4NzIsCisgICAgICAgIDB4NjUsIDB4NjQsIDB4MjAsIDB4NjEsIDB4NmUsIDB4MjAsIDB4MjIsIDB4NDksCisgICAgICAgIDB4NDUsIDB4NTQsIDB4NDYsIDB4MjAsIDB4NDMsIDB4NmYsIDB4NmUsIDB4NzQsCisgICAgICAgIDB4NzIsIDB4NjksIDB4NjIsIDB4NzUsIDB4NzQsIDB4NjksIDB4NmYsIDB4NmUsCisgICAgICAgIDB4MjIsIDB4MmUsIDB4MjAsIDB4NTMsIDB4NzUsIDB4NjMsIDB4NjgsIDB4MjAsCisgICAgICAgIDB4NzMsIDB4NzQsIDB4NjEsIDB4NzQsIDB4NjUsIDB4NmQsIDB4NjUsIDB4NmUsCisgICAgICAgIDB4NzQsIDB4NzMsIDB4MjAsIDB4NjksIDB4NmUsIDB4NjMsIDB4NmMsIDB4NzUsCisgICAgICAgIDB4NjQsIDB4NjUsIDB4MjAsIDB4NmYsIDB4NzIsIDB4NjEsIDB4NmMsIDB4MjAsCisgICAgICAgIDB4NzMsIDB4NzQsIDB4NjEsIDB4NzQsIDB4NjUsIDB4NmQsIDB4NjUsIDB4NmUsCisgICAgICAgIDB4NzQsIDB4NzMsIDB4MjAsIDB4NjksIDB4NmUsIDB4MjAsIDB4NDksIDB4NDUsCisgICAgICAgIDB4NTQsIDB4NDYsIDB4MjAsIDB4NzMsIDB4NjUsIDB4NzMsIDB4NzMsIDB4NjksCisgICAgICAgIDB4NmYsIDB4NmUsIDB4NzMsIDB4MmMsIDB4MjAsIDB4NjEsIDB4NzMsIDB4MjAsCisgICAgICAgIDB4NzcsIDB4NjUsIDB4NmMsIDB4NmMsIDB4MjAsIDB4NjEsIDB4NzMsIDB4MjAsCisgICAgICAgIDB4NzcsIDB4NzIsIDB4NjksIDB4NzQsIDB4NzQsIDB4NjUsIDB4NmUsIDB4MjAsCisgICAgICAgIDB4NjEsIDB4NmUsIDB4NjQsIDB4MjAsIDB4NjUsIDB4NmMsIDB4NjUsIDB4NjMsCisgICAgICAgIDB4NzQsIDB4NzIsIDB4NmYsIDB4NmUsIDB4NjksIDB4NjMsIDB4MjAsIDB4NjMsCisgICAgICAgIDB4NmYsIDB4NmQsIDB4NmQsIDB4NzUsIDB4NmUsIDB4NjksIDB4NjMsIDB4NjEsCisgICAgICAgIDB4NzQsIDB4NjksIDB4NmYsIDB4NmUsIDB4NzMsIDB4MjAsIDB4NmQsIDB4NjEsCisgICAgICAgIDB4NjQsIDB4NjUsIDB4MjAsIDB4NjEsIDB4NzQsIDB4MjAsIDB4NjEsIDB4NmUsCisgICAgICAgIDB4NzksIDB4MjAsIDB4NzQsIDB4NjksIDB4NmQsIDB4NjUsIDB4MjAsIDB4NmYsCisgICAgICAgIDB4NzIsIDB4MjAsIDB4NzAsIDB4NmMsIDB4NjEsIDB4NjMsIDB4NjUsIDB4MmMsCisgICAgICAgIDB4MjAsIDB4NzcsIDB4NjgsIDB4NjksIDB4NjMsIDB4NjgsIDB4MjAsIDB4NjEsCisgICAgICAgIDB4NzIsIDB4NjUsIDB4MjAsIDB4NjEsIDB4NjQsIDB4NjQsIDB4NzIsIDB4NjUsCisgICAgICAgIDB4NzMsIDB4NzMsIDB4NjUsIDB4NjQsIDB4MjAsIDB4NzQsIDB4NmYKKyAgICB9Cit9OworCitzdGF0aWMgY29uc3QgdW5zaWduZWQgY2hhciB0ZXN0X291dHB1dFsyXVszNzVdID0KK3sKKyAgICB7CisgICAgICAgIDB4NzYsIDB4YjgsIDB4ZTAsIDB4YWQsIDB4YTAsIDB4ZjEsIDB4M2QsIDB4OTAsCisgICAgICAgIDB4NDAsIDB4NWQsIDB4NmEsIDB4ZTUsIDB4NTMsIDB4ODYsIDB4YmQsIDB4MjgsCisgICAgICAgIDB4YmQsIDB4ZDIsIDB4MTksIDB4YjgsIDB4YTAsIDB4OGQsIDB4ZWQsIDB4MWEsCisgICAgICAgIDB4YTgsIDB4MzYsIDB4ZWYsIDB4Y2MsIDB4OGIsIDB4NzcsIDB4MGQsIDB4YzcsCisgICAgICAgIDB4ZGEsIDB4NDEsIDB4NTksIDB4N2MsIDB4NTEsIDB4NTcsIDB4NDgsIDB4OGQsCisgICAgICAgIDB4NzcsIDB4MjQsIDB4ZTAsIDB4M2YsIDB4YjgsIDB4ZDgsIDB4NGEsIDB4MzcsCisgICAgICAgIDB4NmEsIDB4NDMsIDB4YjgsIDB4ZjQsIDB4MTUsIDB4MTgsIDB4YTEsIDB4MWMsCisgICAgICAgIDB4YzMsIDB4ODcsIDB4YjYsIDB4NjksIDB4YjIsIDB4ZWUsIDB4NjUsIDB4ODYKKyAgICB9LAorICAgIHsKKyAgICAgICAgMHhhMywgMHhmYiwgMHhmMCwgMHg3ZCwgMHhmMywgMHhmYSwgMHgyZiwgMHhkZSwKKyAgICAgICAgMHg0ZiwgMHgzNywgMHg2YywgMHhhMiwgMHgzZSwgMHg4MiwgMHg3MywgMHg3MCwKKyAgICAgICAgMHg0MSwgMHg2MCwgMHg1ZCwgMHg5ZiwgMHg0ZiwgMHg0ZiwgMHg1NywgMHhiZCwKKyAgICAgICAgMHg4YywgMHhmZiwgMHgyYywgMHgxZCwgMHg0YiwgMHg3OSwgMHg1NSwgMHhlYywKKyAgICAgICAgMHgyYSwgMHg5NywgMHg5NCwgMHg4YiwgMHhkMywgMHg3MiwgMHgyOSwgMHgxNSwKKyAgICAgICAgMHhjOCwgMHhmMywgMHhkMywgMHgzNywgMHhmNywgMHhkMywgMHg3MCwgMHgwNSwKKyAgICAgICAgMHgwZSwgMHg5ZSwgMHg5NiwgMHhkNiwgMHg0NywgMHhiNywgMHhjMywgMHg5ZiwKKyAgICAgICAgMHg1NiwgMHhlMCwgMHgzMSwgMHhjYSwgMHg1ZSwgMHhiNiwgMHgyNSwgMHgwZCwKKyAgICAgICAgMHg0MCwgMHg0MiwgMHhlMCwgMHgyNywgMHg4NSwgMHhlYywgMHhlYywgMHhmYSwKKyAgICAgICAgMHg0YiwgMHg0YiwgMHhiNSwgMHhlOCwgMHhlYSwgMHhkMCwgMHg0NCwgMHgwZSwKKyAgICAgICAgMHgyMCwgMHhiNiwgMHhlOCwgMHhkYiwgMHgwOSwgMHhkOCwgMHg4MSwgMHhhNywKKyAgICAgICAgMHhjNiwgMHgxMywgMHgyZiwgMHg0MiwgMHgwZSwgMHg1MiwgMHg3OSwgMHg1MCwKKyAgICAgICAgMHg0MiwgMHhiZCwgMHhmYSwgMHg3NywgMHg3MywgMHhkOCwgMHhhOSwgMHgwNSwKKyAgICAgICAgMHgxNCwgMHg0NywgMHhiMywgMHgyOSwgMHgxYywgMHhlMSwgMHg0MSwgMHgxYywKKyAgICAgICAgMHg2OCwgMHgwNCwgMHg2NSwgMHg1NSwgMHgyYSwgMHhhNiwgMHhjNCwgMHgwNSwKKyAgICAgICAgMHhiNywgMHg3NiwgMHg0ZCwgMHg1ZSwgMHg4NywgMHhiZSwgMHhhOCwgMHg1YSwKKyAgICAgICAgMHhkMCwgMHgwZiwgMHg4NCwgMHg0OSwgMHhlZCwgMHg4ZiwgMHg3MiwgMHhkMCwKKyAgICAgICAgMHhkNiwgMHg2MiwgMHhhYiwgMHgwNSwgMHgyNiwgMHg5MSwgMHhjYSwgMHg2NiwKKyAgICAgICAgMHg0MiwgMHg0YiwgMHhjOCwgMHg2ZCwgMHgyZCwgMHhmOCwgMHgwZSwgMHhhNCwKKyAgICAgICAgMHgxZiwgMHg0MywgMHhhYiwgMHhmOSwgMHgzNywgMHhkMywgMHgyNSwgMHg5ZCwKKyAgICAgICAgMHhjNCwgMHhiMiwgMHhkMCwgMHhkZiwgMHhiNCwgMHg4YSwgMHg2YywgMHg5MSwKKyAgICAgICAgMHgzOSwgMHhkZCwgMHhkNywgMHhmNywgMHg2OSwgMHg2NiwgMHhlOSwgMHgyOCwKKyAgICAgICAgMHhlNiwgMHgzNSwgMHg1NSwgMHgzYiwgMHhhNywgMHg2YywgMHg1YywgMHg4NywKKyAgICAgICAgMHg5ZCwgMHg3YiwgMHgzNSwgMHhkNCwgMHg5ZSwgMHhiMiwgMHhlNiwgMHgyYiwKKyAgICAgICAgMHgwOCwgMHg3MSwgMHhjZCwgMHhhYywgMHg2MywgMHg4OSwgMHgzOSwgMHhlMiwKKyAgICAgICAgMHg1ZSwgMHg4YSwgMHgxZSwgMHgwZSwgMHhmOSwgMHhkNSwgMHgyOCwgMHgwZiwKKyAgICAgICAgMHhhOCwgMHhjYSwgMHgzMiwgMHg4YiwgMHgzNSwgMHgxYywgMHgzYywgMHg3NiwKKyAgICAgICAgMHg1OSwgMHg4OSwgMHhjYiwgMHhjZiwgMHgzZCwgMHhhYSwgMHg4YiwgMHg2YywKKyAgICAgICAgMHhjYywgMHgzYSwgMHhhZiwgMHg5ZiwgMHgzOSwgMHg3OSwgMHhjOSwgMHgyYiwKKyAgICAgICAgMHgzNywgMHgyMCwgMHhmYywgMHg4OCwgMHhkYywgMHg5NSwgMHhlZCwgMHg4NCwKKyAgICAgICAgMHhhMSwgMHhiZSwgMHgwNSwgMHg5YywgMHg2NCwgMHg5OSwgMHhiOSwgMHhmZCwKKyAgICAgICAgMHhhMiwgMHgzNiwgMHhlNywgMHhlOCwgMHgxOCwgMHhiMCwgMHg0YiwgMHgwYiwKKyAgICAgICAgMHhjMywgMHg5YywgMHgxZSwgMHg4NywgMHg2YiwgMHgxOSwgMHgzYiwgMHhmZSwKKyAgICAgICAgMHg1NSwgMHg2OSwgMHg3NSwgMHgzZiwgMHg4OCwgMHgxMiwgMHg4YywgMHhjMCwKKyAgICAgICAgMHg4YSwgMHhhYSwgMHg5YiwgMHg2MywgMHhkMSwgMHhhMSwgMHg2ZiwgMHg4MCwKKyAgICAgICAgMHhlZiwgMHgyNSwgMHg1NCwgMHhkNywgMHgxOCwgMHg5YywgMHg0MSwgMHgxZiwKKyAgICAgICAgMHg1OCwgMHg2OSwgMHhjYSwgMHg1MiwgMHhjNSwgMHhiOCwgMHgzZiwgMHhhMywKKyAgICAgICAgMHg2ZiwgMHhmMiwgMHgxNiwgMHhiOSwgMHhjMSwgMHhkMywgMHgwMCwgMHg2MiwKKyAgICAgICAgMHhiZSwgMHhiYywgMHhmZCwgMHgyZCwgMHhjNSwgMHhiYywgMHhlMCwgMHg5MSwKKyAgICAgICAgMHgxOSwgMHgzNCwgMHhmZCwgMHhhNywgMHg5YSwgMHg4NiwgMHhmNiwgMHhlNiwKKyAgICAgICAgMHg5OCwgMHhjZSwgMHhkNywgMHg1OSwgMHhjMywgMHhmZiwgMHg5YiwgMHg2NCwKKyAgICAgICAgMHg3NywgMHgzMywgMHg4ZiwgMHgzZCwgMHhhNCwgMHhmOSwgMHhjZCwgMHg4NSwKKyAgICAgICAgMHgxNCwgMHhlYSwgMHg5OSwgMHg4MiwgMHhjYywgMHhhZiwgMHhiMywgMHg0MSwKKyAgICAgICAgMHhiMiwgMHgzOCwgMHg0ZCwgMHhkOSwgMHgwMiwgMHhmMywgMHhkMSwgMHhhYiwKKyAgICAgICAgMHg3YSwgMHhjNiwgMHgxZCwgMHhkMiwgMHg5YywgMHg2ZiwgMHgyMSwgMHhiYSwKKyAgICAgICAgMHg1YiwgMHg4NiwgMHgyZiwgMHgzNywgMHgzMCwgMHhlMywgMHg3YywgMHhmZCwKKyAgICAgICAgMHhjNCwgMHhmZCwgMHg4MCwgMHg2YywgMHgyMiwgMHhmMiwgMHgyMQorICAgIH0KK307CisKK3N0YXRpYyBjb25zdCBzaXplX3QgdGVzdF9sZW5ndGhzWzJdID0KK3sKKyAgICA2NFUsCisgICAgMzc1VQorfTsKKworLyogTWFrZSBzdXJlIG5vIG90aGVyIGRlZmluaXRpb24gaXMgYWxyZWFkeSBwcmVzZW50LiAqLworI3VuZGVmIEFTU0VSVAorCisjZGVmaW5lIEFTU0VSVChjb25kLCBhcmdzKSAgICAgICAgICAgIFwKKyAgICBkbyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICBpZiAoIShjb25kKSkgICAgICAgICAgICAgICAgXAorICAgICAgICB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgICAgIGlmICh2ZXJib3NlICE9IDApICAgICAgICAgIFwKKyAgICAgICAgICAgIG1iZWR0bHNfcHJpbnRmIGFyZ3M7ICAgIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgICAgICByZXR1cm4gLTE7ICAgICAgICAgICAgICAgXAorICAgICAgICB9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICB9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgd2hpbGUgKDApCisKK2ludCBtYmVkdGxzX2NoYWNoYTIwX3NlbGZfdGVzdChpbnQgdmVyYm9zZSkKK3sKKyAgICB1bnNpZ25lZCBjaGFyIG91dHB1dFszODFdOworICAgIHVuc2lnbmVkIGk7CisgICAgaW50IHJldCA9IE1CRURUTFNfRVJSX0VSUk9SX0NPUlJVUFRJT05fREVURUNURUQ7CisKKyAgICBmb3IgKGkgPSAwVTsgaSA8IDJVOyBpKyspIHsKKyAgICAgICAgaWYgKHZlcmJvc2UgIT0gMCkgeworICAgICAgICAgICAgbWJlZHRsc19wcmludGYoIiAgQ2hhQ2hhMjAgdGVzdCAldSAiLCBpKTsKKyAgICAgICAgfQorCisgICAgICAgIHJldCA9IG1iZWR0bHNfY2hhY2hhMjBfY3J5cHQodGVzdF9rZXlzW2ldLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRlc3Rfbm9uY2VzW2ldLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RfY291bnRlcnNbaV0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGVzdF9sZW5ndGhzW2ldLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RfaW5wdXRbaV0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3V0cHV0KTsKKworICAgICAgICBBU1NFUlQoMCA9PSByZXQsICgiZXJyb3IgY29kZTogJWlcbiIsIHJldCkpOworCisgICAgICAgIEFTU0VSVCgwID09IG1lbWNtcChvdXRwdXQsIHRlc3Rfb3V0cHV0W2ldLCB0ZXN0X2xlbmd0aHNbaV0pLAorICAgICAgICAgICAgICAgKCJmYWlsZWQgKG91dHB1dClcbiIpKTsKKworICAgICAgICBpZiAodmVyYm9zZSAhPSAwKSB7CisgICAgICAgICAgICBtYmVkdGxzX3ByaW50ZigicGFzc2VkXG4iKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIGlmICh2ZXJib3NlICE9IDApIHsKKyAgICAgICAgbWJlZHRsc19wcmludGYoIlxuIik7CisgICAgfQorCisgICAgcmV0dXJuIDA7Cit9CisKKyNlbmRpZiAvKiBNQkVEVExTX1NFTEZfVEVTVCAqLworCisjZW5kaWYgLyogIU1CRURUTFNfQ0hBQ0hBMjBfQyAqLwpkaWZmIC0tZ2l0IGEvdGYtcHNhLWNyeXB0by9kcml2ZXJzL2J1aWx0aW4vc3JjL2NoYWNoYXBvbHkuYyBiL3RmLXBzYS1jcnlwdG8vZHJpdmVycy9idWlsdGluL3NyYy9jaGFjaGFwb2x5LmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNWJmZWUwOQotLS0gL2Rldi9udWxsCisrKyBiL3RmLXBzYS1jcnlwdG8vZHJpdmVycy9idWlsdGluL3NyYy9jaGFjaGFwb2x5LmMKQEAgLTAsMCArMSw0NzQgQEAKKy8qKgorICogXGZpbGUgY2hhY2hhcG9seS5jCisgKgorICogXGJyaWVmIENoYUNoYTIwLVBvbHkxMzA1IEFFQUQgY29uc3RydWN0aW9uIGJhc2VkIG9uIFJGQyA3NTM5LgorICoKKyAqICBDb3B5cmlnaHQgVGhlIE1iZWQgVExTIENvbnRyaWJ1dG9ycworICogIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wIE9SIEdQTC0yLjAtb3ItbGF0ZXIKKyAqLworI2luY2x1ZGUgImNvbW1vbi5oIgorCisjaWYgZGVmaW5lZChNQkVEVExTX0NIQUNIQVBPTFlfQykKKworI2luY2x1ZGUgIm1iZWR0bHMvY2hhY2hhcG9seS5oIgorI2luY2x1ZGUgIm1iZWR0bHMvcGxhdGZvcm1fdXRpbC5oIgorI2luY2x1ZGUgIm1iZWR0bHMvZXJyb3IuaCIKKyNpbmNsdWRlICJtYmVkdGxzL2NvbnN0YW50X3RpbWUuaCIKKworI2luY2x1ZGUgPHN0cmluZy5oPgorCisjaW5jbHVkZSAibWJlZHRscy9wbGF0Zm9ybS5oIgorCisjZGVmaW5lIENIQUNIQVBPTFlfU1RBVEVfSU5JVCAgICAgICAoMCkKKyNkZWZpbmUgQ0hBQ0hBUE9MWV9TVEFURV9BQUQgICAgICAgICgxKQorI2RlZmluZSBDSEFDSEFQT0xZX1NUQVRFX0NJUEhFUlRFWFQgKDIpICAgLyogRW5jcnlwdGluZyBvciBkZWNyeXB0aW5nICovCisjZGVmaW5lIENIQUNIQVBPTFlfU1RBVEVfRklOSVNIRUQgICAoMykKKworLyoqCisgKiBcYnJpZWYgICAgICAgICAgIEFkZHMgbnVsIGJ5dGVzIHRvIHBhZCB0aGUgQUFEIGZvciBQb2x5MTMwNS4KKyAqCisgKiBccGFyYW0gY3R4ICAgICAgIFRoZSBDaGFDaGEyMC1Qb2x5MTMwNSBjb250ZXh0LgorICovCitzdGF0aWMgaW50IGNoYWNoYXBvbHlfcGFkX2FhZChtYmVkdGxzX2NoYWNoYXBvbHlfY29udGV4dCAqY3R4KQoreworICAgIHVpbnQzMl90IHBhcnRpYWxfYmxvY2tfbGVuID0gKHVpbnQzMl90KSAoY3R4LT5hYWRfbGVuICUgMTZVKTsKKyAgICB1bnNpZ25lZCBjaGFyIHplcm9lc1sxNV07CisKKyAgICBpZiAocGFydGlhbF9ibG9ja19sZW4gPT0gMFUpIHsKKyAgICAgICAgcmV0dXJuIDA7CisgICAgfQorCisgICAgbWVtc2V0KHplcm9lcywgMCwgc2l6ZW9mKHplcm9lcykpOworCisgICAgcmV0dXJuIG1iZWR0bHNfcG9seTEzMDVfdXBkYXRlKCZjdHgtPnBvbHkxMzA1X2N0eCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgemVyb2VzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxNlUgLSBwYXJ0aWFsX2Jsb2NrX2xlbik7Cit9CisKKy8qKgorICogXGJyaWVmICAgICAgICAgICBBZGRzIG51bCBieXRlcyB0byBwYWQgdGhlIGNpcGhlcnRleHQgZm9yIFBvbHkxMzA1LgorICoKKyAqIFxwYXJhbSBjdHggICAgICAgVGhlIENoYUNoYTIwLVBvbHkxMzA1IGNvbnRleHQuCisgKi8KK3N0YXRpYyBpbnQgY2hhY2hhcG9seV9wYWRfY2lwaGVydGV4dChtYmVkdGxzX2NoYWNoYXBvbHlfY29udGV4dCAqY3R4KQoreworICAgIHVpbnQzMl90IHBhcnRpYWxfYmxvY2tfbGVuID0gKHVpbnQzMl90KSAoY3R4LT5jaXBoZXJ0ZXh0X2xlbiAlIDE2VSk7CisgICAgdW5zaWduZWQgY2hhciB6ZXJvZXNbMTVdOworCisgICAgaWYgKHBhcnRpYWxfYmxvY2tfbGVuID09IDBVKSB7CisgICAgICAgIHJldHVybiAwOworICAgIH0KKworICAgIG1lbXNldCh6ZXJvZXMsIDAsIHNpemVvZih6ZXJvZXMpKTsKKyAgICByZXR1cm4gbWJlZHRsc19wb2x5MTMwNV91cGRhdGUoJmN0eC0+cG9seTEzMDVfY3R4LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB6ZXJvZXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDE2VSAtIHBhcnRpYWxfYmxvY2tfbGVuKTsKK30KKwordm9pZCBtYmVkdGxzX2NoYWNoYXBvbHlfaW5pdChtYmVkdGxzX2NoYWNoYXBvbHlfY29udGV4dCAqY3R4KQoreworICAgIG1iZWR0bHNfY2hhY2hhMjBfaW5pdCgmY3R4LT5jaGFjaGEyMF9jdHgpOworICAgIG1iZWR0bHNfcG9seTEzMDVfaW5pdCgmY3R4LT5wb2x5MTMwNV9jdHgpOworICAgIGN0eC0+YWFkX2xlbiAgICAgICAgPSAwVTsKKyAgICBjdHgtPmNpcGhlcnRleHRfbGVuID0gMFU7CisgICAgY3R4LT5zdGF0ZSAgICAgICAgICA9IENIQUNIQVBPTFlfU1RBVEVfSU5JVDsKKyAgICBjdHgtPm1vZGUgICAgICAgICAgID0gTUJFRFRMU19DSEFDSEFQT0xZX0VOQ1JZUFQ7Cit9CisKK3ZvaWQgbWJlZHRsc19jaGFjaGFwb2x5X2ZyZWUobWJlZHRsc19jaGFjaGFwb2x5X2NvbnRleHQgKmN0eCkKK3sKKyAgICBpZiAoY3R4ID09IE5VTEwpIHsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIG1iZWR0bHNfY2hhY2hhMjBfZnJlZSgmY3R4LT5jaGFjaGEyMF9jdHgpOworICAgIG1iZWR0bHNfcG9seTEzMDVfZnJlZSgmY3R4LT5wb2x5MTMwNV9jdHgpOworICAgIGN0eC0+YWFkX2xlbiAgICAgICAgPSAwVTsKKyAgICBjdHgtPmNpcGhlcnRleHRfbGVuID0gMFU7CisgICAgY3R4LT5zdGF0ZSAgICAgICAgICA9IENIQUNIQVBPTFlfU1RBVEVfSU5JVDsKKyAgICBjdHgtPm1vZGUgICAgICAgICAgID0gTUJFRFRMU19DSEFDSEFQT0xZX0VOQ1JZUFQ7Cit9CisKK2ludCBtYmVkdGxzX2NoYWNoYXBvbHlfc2V0a2V5KG1iZWR0bHNfY2hhY2hhcG9seV9jb250ZXh0ICpjdHgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1bnNpZ25lZCBjaGFyIGtleVszMl0pCit7CisgICAgaW50IHJldCA9IE1CRURUTFNfRVJSX0VSUk9SX0NPUlJVUFRJT05fREVURUNURUQ7CisKKyAgICByZXQgPSBtYmVkdGxzX2NoYWNoYTIwX3NldGtleSgmY3R4LT5jaGFjaGEyMF9jdHgsIGtleSk7CisKKyAgICByZXR1cm4gcmV0OworfQorCitpbnQgbWJlZHRsc19jaGFjaGFwb2x5X3N0YXJ0cyhtYmVkdGxzX2NoYWNoYXBvbHlfY29udGV4dCAqY3R4LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdW5zaWduZWQgY2hhciBub25jZVsxMl0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYmVkdGxzX2NoYWNoYXBvbHlfbW9kZV90IG1vZGUpCit7CisgICAgaW50IHJldCA9IE1CRURUTFNfRVJSX0VSUk9SX0NPUlJVUFRJT05fREVURUNURUQ7CisgICAgdW5zaWduZWQgY2hhciBwb2x5MTMwNV9rZXlbNjRdOworCisgICAgLyogU2V0IGNvdW50ZXIgPSAwLCB3aWxsIGJlIHVwZGF0ZSB0byAxIHdoZW4gZ2VuZXJhdGluZyBQb2x5MTMwNSBrZXkgKi8KKyAgICByZXQgPSBtYmVkdGxzX2NoYWNoYTIwX3N0YXJ0cygmY3R4LT5jaGFjaGEyMF9jdHgsIG5vbmNlLCAwVSk7CisgICAgaWYgKHJldCAhPSAwKSB7CisgICAgICAgIGdvdG8gY2xlYW51cDsKKyAgICB9CisKKyAgICAvKiBHZW5lcmF0ZSB0aGUgUG9seTEzMDUga2V5IGJ5IGdldHRpbmcgdGhlIENoYUNoYTIwIGtleXN0cmVhbSBvdXRwdXQgd2l0aAorICAgICAqIGNvdW50ZXIgPSAwLiAgVGhpcyBpcyB0aGUgc2FtZSBhcyBlbmNyeXB0aW5nIGEgYnVmZmVyIG9mIHplcm9lcy4KKyAgICAgKiBPbmx5IHRoZSBmaXJzdCAyNTYtYml0cyAoMzIgYnl0ZXMpIG9mIHRoZSBrZXkgaXMgdXNlZCBmb3IgUG9seTEzMDUuCisgICAgICogVGhlIG90aGVyIDI1NiBiaXRzIGFyZSBkaXNjYXJkZWQuCisgICAgICovCisgICAgbWVtc2V0KHBvbHkxMzA1X2tleSwgMCwgc2l6ZW9mKHBvbHkxMzA1X2tleSkpOworICAgIHJldCA9IG1iZWR0bHNfY2hhY2hhMjBfdXBkYXRlKCZjdHgtPmNoYWNoYTIwX2N0eCwgc2l6ZW9mKHBvbHkxMzA1X2tleSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9seTEzMDVfa2V5LCBwb2x5MTMwNV9rZXkpOworICAgIGlmIChyZXQgIT0gMCkgeworICAgICAgICBnb3RvIGNsZWFudXA7CisgICAgfQorCisgICAgcmV0ID0gbWJlZHRsc19wb2x5MTMwNV9zdGFydHMoJmN0eC0+cG9seTEzMDVfY3R4LCBwb2x5MTMwNV9rZXkpOworCisgICAgaWYgKHJldCA9PSAwKSB7CisgICAgICAgIGN0eC0+YWFkX2xlbiAgICAgICAgPSAwVTsKKyAgICAgICAgY3R4LT5jaXBoZXJ0ZXh0X2xlbiA9IDBVOworICAgICAgICBjdHgtPnN0YXRlICAgICAgICAgID0gQ0hBQ0hBUE9MWV9TVEFURV9BQUQ7CisgICAgICAgIGN0eC0+bW9kZSAgICAgICAgICAgPSBtb2RlOworICAgIH0KKworY2xlYW51cDoKKyAgICBtYmVkdGxzX3BsYXRmb3JtX3plcm9pemUocG9seTEzMDVfa2V5LCA2NFUpOworICAgIHJldHVybiByZXQ7Cit9CisKK2ludCBtYmVkdGxzX2NoYWNoYXBvbHlfdXBkYXRlX2FhZChtYmVkdGxzX2NoYWNoYXBvbHlfY29udGV4dCAqY3R4LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgKmFhZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgYWFkX2xlbikKK3sKKyAgICBpZiAoY3R4LT5zdGF0ZSAhPSBDSEFDSEFQT0xZX1NUQVRFX0FBRCkgeworICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfQ0hBQ0hBUE9MWV9CQURfU1RBVEU7CisgICAgfQorCisgICAgY3R4LT5hYWRfbGVuICs9IGFhZF9sZW47CisKKyAgICByZXR1cm4gbWJlZHRsc19wb2x5MTMwNV91cGRhdGUoJmN0eC0+cG9seTEzMDVfY3R4LCBhYWQsIGFhZF9sZW4pOworfQorCitpbnQgbWJlZHRsc19jaGFjaGFwb2x5X3VwZGF0ZShtYmVkdGxzX2NoYWNoYXBvbHlfY29udGV4dCAqY3R4LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IGxlbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgKmlucHV0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgY2hhciAqb3V0cHV0KQoreworICAgIGludCByZXQgPSBNQkVEVExTX0VSUl9FUlJPUl9DT1JSVVBUSU9OX0RFVEVDVEVEOworCisgICAgaWYgKChjdHgtPnN0YXRlICE9IENIQUNIQVBPTFlfU1RBVEVfQUFEKSAmJgorICAgICAgICAoY3R4LT5zdGF0ZSAhPSBDSEFDSEFQT0xZX1NUQVRFX0NJUEhFUlRFWFQpKSB7CisgICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9DSEFDSEFQT0xZX0JBRF9TVEFURTsKKyAgICB9CisKKyAgICBpZiAoY3R4LT5zdGF0ZSA9PSBDSEFDSEFQT0xZX1NUQVRFX0FBRCkgeworICAgICAgICBjdHgtPnN0YXRlID0gQ0hBQ0hBUE9MWV9TVEFURV9DSVBIRVJURVhUOworCisgICAgICAgIHJldCA9IGNoYWNoYXBvbHlfcGFkX2FhZChjdHgpOworICAgICAgICBpZiAocmV0ICE9IDApIHsKKyAgICAgICAgICAgIHJldHVybiByZXQ7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBjdHgtPmNpcGhlcnRleHRfbGVuICs9IGxlbjsKKworICAgIGlmIChjdHgtPm1vZGUgPT0gTUJFRFRMU19DSEFDSEFQT0xZX0VOQ1JZUFQpIHsKKyAgICAgICAgcmV0ID0gbWJlZHRsc19jaGFjaGEyMF91cGRhdGUoJmN0eC0+Y2hhY2hhMjBfY3R4LCBsZW4sIGlucHV0LCBvdXRwdXQpOworICAgICAgICBpZiAocmV0ICE9IDApIHsKKyAgICAgICAgICAgIHJldHVybiByZXQ7CisgICAgICAgIH0KKworICAgICAgICByZXQgPSBtYmVkdGxzX3BvbHkxMzA1X3VwZGF0ZSgmY3R4LT5wb2x5MTMwNV9jdHgsIG91dHB1dCwgbGVuKTsKKyAgICAgICAgaWYgKHJldCAhPSAwKSB7CisgICAgICAgICAgICByZXR1cm4gcmV0OworICAgICAgICB9CisgICAgfSBlbHNlIHsgLyogREVDUllQVCAqLworICAgICAgICByZXQgPSBtYmVkdGxzX3BvbHkxMzA1X3VwZGF0ZSgmY3R4LT5wb2x5MTMwNV9jdHgsIGlucHV0LCBsZW4pOworICAgICAgICBpZiAocmV0ICE9IDApIHsKKyAgICAgICAgICAgIHJldHVybiByZXQ7CisgICAgICAgIH0KKworICAgICAgICByZXQgPSBtYmVkdGxzX2NoYWNoYTIwX3VwZGF0ZSgmY3R4LT5jaGFjaGEyMF9jdHgsIGxlbiwgaW5wdXQsIG91dHB1dCk7CisgICAgICAgIGlmIChyZXQgIT0gMCkgeworICAgICAgICAgICAgcmV0dXJuIHJldDsKKyAgICAgICAgfQorICAgIH0KKworICAgIHJldHVybiAwOworfQorCitpbnQgbWJlZHRsc19jaGFjaGFwb2x5X2ZpbmlzaChtYmVkdGxzX2NoYWNoYXBvbHlfY29udGV4dCAqY3R4LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgY2hhciBtYWNbMTZdKQoreworICAgIGludCByZXQgPSBNQkVEVExTX0VSUl9FUlJPUl9DT1JSVVBUSU9OX0RFVEVDVEVEOworICAgIHVuc2lnbmVkIGNoYXIgbGVuX2Jsb2NrWzE2XTsKKworICAgIGlmIChjdHgtPnN0YXRlID09IENIQUNIQVBPTFlfU1RBVEVfSU5JVCkgeworICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfQ0hBQ0hBUE9MWV9CQURfU1RBVEU7CisgICAgfQorCisgICAgaWYgKGN0eC0+c3RhdGUgPT0gQ0hBQ0hBUE9MWV9TVEFURV9BQUQpIHsKKyAgICAgICAgcmV0ID0gY2hhY2hhcG9seV9wYWRfYWFkKGN0eCk7CisgICAgICAgIGlmIChyZXQgIT0gMCkgeworICAgICAgICAgICAgcmV0dXJuIHJldDsKKyAgICAgICAgfQorICAgIH0gZWxzZSBpZiAoY3R4LT5zdGF0ZSA9PSBDSEFDSEFQT0xZX1NUQVRFX0NJUEhFUlRFWFQpIHsKKyAgICAgICAgcmV0ID0gY2hhY2hhcG9seV9wYWRfY2lwaGVydGV4dChjdHgpOworICAgICAgICBpZiAocmV0ICE9IDApIHsKKyAgICAgICAgICAgIHJldHVybiByZXQ7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBjdHgtPnN0YXRlID0gQ0hBQ0hBUE9MWV9TVEFURV9GSU5JU0hFRDsKKworICAgIC8qIFRoZSBsZW5ndGhzIG9mIHRoZSBBQUQgYW5kIGNpcGhlcnRleHQgYXJlIHByb2Nlc3NlZCBieQorICAgICAqIFBvbHkxMzA1IGFzIHRoZSBmaW5hbCAxMjgtYml0IGJsb2NrLCBlbmNvZGVkIGFzIGxpdHRsZS1lbmRpYW4gaW50ZWdlcnMuCisgICAgICovCisgICAgTUJFRFRMU19QVVRfVUlOVDY0X0xFKGN0eC0+YWFkX2xlbiwgbGVuX2Jsb2NrLCAwKTsKKyAgICBNQkVEVExTX1BVVF9VSU5UNjRfTEUoY3R4LT5jaXBoZXJ0ZXh0X2xlbiwgbGVuX2Jsb2NrLCA4KTsKKworICAgIHJldCA9IG1iZWR0bHNfcG9seTEzMDVfdXBkYXRlKCZjdHgtPnBvbHkxMzA1X2N0eCwgbGVuX2Jsb2NrLCAxNlUpOworICAgIGlmIChyZXQgIT0gMCkgeworICAgICAgICByZXR1cm4gcmV0OworICAgIH0KKworICAgIHJldCA9IG1iZWR0bHNfcG9seTEzMDVfZmluaXNoKCZjdHgtPnBvbHkxMzA1X2N0eCwgbWFjKTsKKworICAgIHJldHVybiByZXQ7Cit9CisKK3N0YXRpYyBpbnQgY2hhY2hhcG9seV9jcnlwdF9hbmRfdGFnKG1iZWR0bHNfY2hhY2hhcG9seV9jb250ZXh0ICpjdHgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYmVkdGxzX2NoYWNoYXBvbHlfbW9kZV90IG1vZGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgbGVuZ3RoLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdW5zaWduZWQgY2hhciBub25jZVsxMl0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1bnNpZ25lZCBjaGFyICphYWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgYWFkX2xlbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgKmlucHV0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgY2hhciAqb3V0cHV0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgY2hhciB0YWdbMTZdKQoreworICAgIGludCByZXQgPSBNQkVEVExTX0VSUl9FUlJPUl9DT1JSVVBUSU9OX0RFVEVDVEVEOworCisgICAgcmV0ID0gbWJlZHRsc19jaGFjaGFwb2x5X3N0YXJ0cyhjdHgsIG5vbmNlLCBtb2RlKTsKKyAgICBpZiAocmV0ICE9IDApIHsKKyAgICAgICAgZ290byBjbGVhbnVwOworICAgIH0KKworICAgIHJldCA9IG1iZWR0bHNfY2hhY2hhcG9seV91cGRhdGVfYWFkKGN0eCwgYWFkLCBhYWRfbGVuKTsKKyAgICBpZiAocmV0ICE9IDApIHsKKyAgICAgICAgZ290byBjbGVhbnVwOworICAgIH0KKworICAgIHJldCA9IG1iZWR0bHNfY2hhY2hhcG9seV91cGRhdGUoY3R4LCBsZW5ndGgsIGlucHV0LCBvdXRwdXQpOworICAgIGlmIChyZXQgIT0gMCkgeworICAgICAgICBnb3RvIGNsZWFudXA7CisgICAgfQorCisgICAgcmV0ID0gbWJlZHRsc19jaGFjaGFwb2x5X2ZpbmlzaChjdHgsIHRhZyk7CisKK2NsZWFudXA6CisgICAgcmV0dXJuIHJldDsKK30KKworaW50IG1iZWR0bHNfY2hhY2hhcG9seV9lbmNyeXB0X2FuZF90YWcobWJlZHRsc19jaGFjaGFwb2x5X2NvbnRleHQgKmN0eCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBsZW5ndGgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1bnNpZ25lZCBjaGFyIG5vbmNlWzEyXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgKmFhZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBhYWRfbGVuLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdW5zaWduZWQgY2hhciAqaW5wdXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBjaGFyICpvdXRwdXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBjaGFyIHRhZ1sxNl0pCit7CisgICAgcmV0dXJuIGNoYWNoYXBvbHlfY3J5cHRfYW5kX3RhZyhjdHgsIE1CRURUTFNfQ0hBQ0hBUE9MWV9FTkNSWVBULAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGVuZ3RoLCBub25jZSwgYWFkLCBhYWRfbGVuLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5wdXQsIG91dHB1dCwgdGFnKTsKK30KKworaW50IG1iZWR0bHNfY2hhY2hhcG9seV9hdXRoX2RlY3J5cHQobWJlZHRsc19jaGFjaGFwb2x5X2NvbnRleHQgKmN0eCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBsZW5ndGgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1bnNpZ25lZCBjaGFyIG5vbmNlWzEyXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgKmFhZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBhYWRfbGVuLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdW5zaWduZWQgY2hhciB0YWdbMTZdLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdW5zaWduZWQgY2hhciAqaW5wdXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBjaGFyICpvdXRwdXQpCit7CisgICAgaW50IHJldCA9IE1CRURUTFNfRVJSX0VSUk9SX0NPUlJVUFRJT05fREVURUNURUQ7CisgICAgdW5zaWduZWQgY2hhciBjaGVja190YWdbMTZdOworICAgIGludCBkaWZmOworCisgICAgaWYgKChyZXQgPSBjaGFjaGFwb2x5X2NyeXB0X2FuZF90YWcoY3R4LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1CRURUTFNfQ0hBQ0hBUE9MWV9ERUNSWVBULCBsZW5ndGgsIG5vbmNlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFhZCwgYWFkX2xlbiwgaW5wdXQsIG91dHB1dCwgY2hlY2tfdGFnKSkgIT0gMCkgeworICAgICAgICByZXR1cm4gcmV0OworICAgIH0KKworICAgIC8qIENoZWNrIHRhZyBpbiAiY29uc3RhbnQtdGltZSIgKi8KKyAgICBkaWZmID0gbWJlZHRsc19jdF9tZW1jbXAodGFnLCBjaGVja190YWcsIHNpemVvZihjaGVja190YWcpKTsKKworICAgIGlmIChkaWZmICE9IDApIHsKKyAgICAgICAgbWJlZHRsc19wbGF0Zm9ybV96ZXJvaXplKG91dHB1dCwgbGVuZ3RoKTsKKyAgICAgICAgcmV0dXJuIE1CRURUTFNfRVJSX0NIQUNIQVBPTFlfQVVUSF9GQUlMRUQ7CisgICAgfQorCisgICAgcmV0dXJuIDA7Cit9CisKKyNpZiBkZWZpbmVkKE1CRURUTFNfU0VMRl9URVNUKQorCitzdGF0aWMgY29uc3QgdW5zaWduZWQgY2hhciB0ZXN0X2tleVsxXVszMl0gPQoreworICAgIHsKKyAgICAgICAgMHg4MCwgMHg4MSwgMHg4MiwgMHg4MywgMHg4NCwgMHg4NSwgMHg4NiwgMHg4NywKKyAgICAgICAgMHg4OCwgMHg4OSwgMHg4YSwgMHg4YiwgMHg4YywgMHg4ZCwgMHg4ZSwgMHg4ZiwKKyAgICAgICAgMHg5MCwgMHg5MSwgMHg5MiwgMHg5MywgMHg5NCwgMHg5NSwgMHg5NiwgMHg5NywKKyAgICAgICAgMHg5OCwgMHg5OSwgMHg5YSwgMHg5YiwgMHg5YywgMHg5ZCwgMHg5ZSwgMHg5ZgorICAgIH0KK307CisKK3N0YXRpYyBjb25zdCB1bnNpZ25lZCBjaGFyIHRlc3Rfbm9uY2VbMV1bMTJdID0KK3sKKyAgICB7CisgICAgICAgIDB4MDcsIDB4MDAsIDB4MDAsIDB4MDAsICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDMyLWJpdCBjb21tb24gcGFydCAqLworICAgICAgICAweDQwLCAweDQxLCAweDQyLCAweDQzLCAweDQ0LCAweDQ1LCAweDQ2LCAweDQ3ICAvKiA2NC1iaXQgSVYgKi8KKyAgICB9Cit9OworCitzdGF0aWMgY29uc3QgdW5zaWduZWQgY2hhciB0ZXN0X2FhZFsxXVsxMl0gPQoreworICAgIHsKKyAgICAgICAgMHg1MCwgMHg1MSwgMHg1MiwgMHg1MywgMHhjMCwgMHhjMSwgMHhjMiwgMHhjMywKKyAgICAgICAgMHhjNCwgMHhjNSwgMHhjNiwgMHhjNworICAgIH0KK307CisKK3N0YXRpYyBjb25zdCBzaXplX3QgdGVzdF9hYWRfbGVuWzFdID0KK3sKKyAgICAxMlUKK307CisKK3N0YXRpYyBjb25zdCB1bnNpZ25lZCBjaGFyIHRlc3RfaW5wdXRbMV1bMTE0XSA9Cit7CisgICAgeworICAgICAgICAweDRjLCAweDYxLCAweDY0LCAweDY5LCAweDY1LCAweDczLCAweDIwLCAweDYxLAorICAgICAgICAweDZlLCAweDY0LCAweDIwLCAweDQ3LCAweDY1LCAweDZlLCAweDc0LCAweDZjLAorICAgICAgICAweDY1LCAweDZkLCAweDY1LCAweDZlLCAweDIwLCAweDZmLCAweDY2LCAweDIwLAorICAgICAgICAweDc0LCAweDY4LCAweDY1LCAweDIwLCAweDYzLCAweDZjLCAweDYxLCAweDczLAorICAgICAgICAweDczLCAweDIwLCAweDZmLCAweDY2LCAweDIwLCAweDI3LCAweDM5LCAweDM5LAorICAgICAgICAweDNhLCAweDIwLCAweDQ5LCAweDY2LCAweDIwLCAweDQ5LCAweDIwLCAweDYzLAorICAgICAgICAweDZmLCAweDc1LCAweDZjLCAweDY0LCAweDIwLCAweDZmLCAweDY2LCAweDY2LAorICAgICAgICAweDY1LCAweDcyLCAweDIwLCAweDc5LCAweDZmLCAweDc1LCAweDIwLCAweDZmLAorICAgICAgICAweDZlLCAweDZjLCAweDc5LCAweDIwLCAweDZmLCAweDZlLCAweDY1LCAweDIwLAorICAgICAgICAweDc0LCAweDY5LCAweDcwLCAweDIwLCAweDY2LCAweDZmLCAweDcyLCAweDIwLAorICAgICAgICAweDc0LCAweDY4LCAweDY1LCAweDIwLCAweDY2LCAweDc1LCAweDc0LCAweDc1LAorICAgICAgICAweDcyLCAweDY1LCAweDJjLCAweDIwLCAweDczLCAweDc1LCAweDZlLCAweDczLAorICAgICAgICAweDYzLCAweDcyLCAweDY1LCAweDY1LCAweDZlLCAweDIwLCAweDc3LCAweDZmLAorICAgICAgICAweDc1LCAweDZjLCAweDY0LCAweDIwLCAweDYyLCAweDY1LCAweDIwLCAweDY5LAorICAgICAgICAweDc0LCAweDJlCisgICAgfQorfTsKKworc3RhdGljIGNvbnN0IHVuc2lnbmVkIGNoYXIgdGVzdF9vdXRwdXRbMV1bMTE0XSA9Cit7CisgICAgeworICAgICAgICAweGQzLCAweDFhLCAweDhkLCAweDM0LCAweDY0LCAweDhlLCAweDYwLCAweGRiLAorICAgICAgICAweDdiLCAweDg2LCAweGFmLCAweGJjLCAweDUzLCAweGVmLCAweDdlLCAweGMyLAorICAgICAgICAweGE0LCAweGFkLCAweGVkLCAweDUxLCAweDI5LCAweDZlLCAweDA4LCAweGZlLAorICAgICAgICAweGE5LCAweGUyLCAweGI1LCAweGE3LCAweDM2LCAweGVlLCAweDYyLCAweGQ2LAorICAgICAgICAweDNkLCAweGJlLCAweGE0LCAweDVlLCAweDhjLCAweGE5LCAweDY3LCAweDEyLAorICAgICAgICAweDgyLCAweGZhLCAweGZiLCAweDY5LCAweGRhLCAweDkyLCAweDcyLCAweDhiLAorICAgICAgICAweDFhLCAweDcxLCAweGRlLCAweDBhLCAweDllLCAweDA2LCAweDBiLCAweDI5LAorICAgICAgICAweDA1LCAweGQ2LCAweGE1LCAweGI2LCAweDdlLCAweGNkLCAweDNiLCAweDM2LAorICAgICAgICAweDkyLCAweGRkLCAweGJkLCAweDdmLCAweDJkLCAweDc3LCAweDhiLCAweDhjLAorICAgICAgICAweDk4LCAweDAzLCAweGFlLCAweGUzLCAweDI4LCAweDA5LCAweDFiLCAweDU4LAorICAgICAgICAweGZhLCAweGIzLCAweDI0LCAweGU0LCAweGZhLCAweGQ2LCAweDc1LCAweDk0LAorICAgICAgICAweDU1LCAweDg1LCAweDgwLCAweDhiLCAweDQ4LCAweDMxLCAweGQ3LCAweGJjLAorICAgICAgICAweDNmLCAweGY0LCAweGRlLCAweGYwLCAweDhlLCAweDRiLCAweDdhLCAweDlkLAorICAgICAgICAweGU1LCAweDc2LCAweGQyLCAweDY1LCAweDg2LCAweGNlLCAweGM2LCAweDRiLAorICAgICAgICAweDYxLCAweDE2CisgICAgfQorfTsKKworc3RhdGljIGNvbnN0IHNpemVfdCB0ZXN0X2lucHV0X2xlblsxXSA9Cit7CisgICAgMTE0VQorfTsKKworc3RhdGljIGNvbnN0IHVuc2lnbmVkIGNoYXIgdGVzdF9tYWNbMV1bMTZdID0KK3sKKyAgICB7CisgICAgICAgIDB4MWEsIDB4ZTEsIDB4MGIsIDB4NTksIDB4NGYsIDB4MDksIDB4ZTIsIDB4NmEsCisgICAgICAgIDB4N2UsIDB4OTAsIDB4MmUsIDB4Y2IsIDB4ZDAsIDB4NjAsIDB4MDYsIDB4OTEKKyAgICB9Cit9OworCisvKiBNYWtlIHN1cmUgbm8gb3RoZXIgZGVmaW5pdGlvbiBpcyBhbHJlYWR5IHByZXNlbnQuICovCisjdW5kZWYgQVNTRVJUCisKKyNkZWZpbmUgQVNTRVJUKGNvbmQsIGFyZ3MpICAgICAgICAgICAgXAorICAgIGRvICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgIGlmICghKGNvbmQpKSAgICAgICAgICAgICAgICBcCisgICAgICAgIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICAgICAgaWYgKHZlcmJvc2UgIT0gMCkgICAgICAgICAgXAorICAgICAgICAgICAgbWJlZHRsc19wcmludGYgYXJnczsgICAgXAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgICAgIHJldHVybiAtMTsgICAgICAgICAgICAgICBcCisgICAgICAgIH0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIH0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICB3aGlsZSAoMCkKKworaW50IG1iZWR0bHNfY2hhY2hhcG9seV9zZWxmX3Rlc3QoaW50IHZlcmJvc2UpCit7CisgICAgbWJlZHRsc19jaGFjaGFwb2x5X2NvbnRleHQgY3R4OworICAgIHVuc2lnbmVkIGk7CisgICAgaW50IHJldCA9IE1CRURUTFNfRVJSX0VSUk9SX0NPUlJVUFRJT05fREVURUNURUQ7CisgICAgdW5zaWduZWQgY2hhciBvdXRwdXRbMjAwXTsKKyAgICB1bnNpZ25lZCBjaGFyIG1hY1sxNl07CisKKyAgICBmb3IgKGkgPSAwVTsgaSA8IDFVOyBpKyspIHsKKyAgICAgICAgaWYgKHZlcmJvc2UgIT0gMCkgeworICAgICAgICAgICAgbWJlZHRsc19wcmludGYoIiAgQ2hhQ2hhMjAtUG9seTEzMDUgdGVzdCAldSAiLCBpKTsKKyAgICAgICAgfQorCisgICAgICAgIG1iZWR0bHNfY2hhY2hhcG9seV9pbml0KCZjdHgpOworCisgICAgICAgIHJldCA9IG1iZWR0bHNfY2hhY2hhcG9seV9zZXRrZXkoJmN0eCwgdGVzdF9rZXlbaV0pOworICAgICAgICBBU1NFUlQoMCA9PSByZXQsICgic2V0a2V5KCkgZXJyb3IgY29kZTogJWlcbiIsIHJldCkpOworCisgICAgICAgIHJldCA9IG1iZWR0bHNfY2hhY2hhcG9seV9lbmNyeXB0X2FuZF90YWcoJmN0eCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0X2lucHV0X2xlbltpXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0X25vbmNlW2ldLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RfYWFkW2ldLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RfYWFkX2xlbltpXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0X2lucHV0W2ldLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG91dHB1dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYWMpOworCisgICAgICAgIEFTU0VSVCgwID09IHJldCwgKCJjcnlwdF9hbmRfdGFnKCkgZXJyb3IgY29kZTogJWlcbiIsIHJldCkpOworCisgICAgICAgIEFTU0VSVCgwID09IG1lbWNtcChvdXRwdXQsIHRlc3Rfb3V0cHV0W2ldLCB0ZXN0X2lucHV0X2xlbltpXSksCisgICAgICAgICAgICAgICAoImZhaWx1cmUgKHdyb25nIG91dHB1dClcbiIpKTsKKworICAgICAgICBBU1NFUlQoMCA9PSBtZW1jbXAobWFjLCB0ZXN0X21hY1tpXSwgMTZVKSwKKyAgICAgICAgICAgICAgICgiZmFpbHVyZSAod3JvbmcgTUFDKVxuIikpOworCisgICAgICAgIG1iZWR0bHNfY2hhY2hhcG9seV9mcmVlKCZjdHgpOworCisgICAgICAgIGlmICh2ZXJib3NlICE9IDApIHsKKyAgICAgICAgICAgIG1iZWR0bHNfcHJpbnRmKCJwYXNzZWRcbiIpOworICAgICAgICB9CisgICAgfQorCisgICAgaWYgKHZlcmJvc2UgIT0gMCkgeworICAgICAgICBtYmVkdGxzX3ByaW50ZigiXG4iKTsKKyAgICB9CisKKyAgICByZXR1cm4gMDsKK30KKworI2VuZGlmIC8qIE1CRURUTFNfU0VMRl9URVNUICovCisKKyNlbmRpZiAvKiBNQkVEVExTX0NIQUNIQVBPTFlfQyAqLwpkaWZmIC0tZ2l0IGEvbGlicmFyeS9jaGVja19jcnlwdG9fY29uZmlnLmggYi90Zi1wc2EtY3J5cHRvL2RyaXZlcnMvYnVpbHRpbi9zcmMvY2hlY2tfY3J5cHRvX2NvbmZpZy5oCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBsaWJyYXJ5L2NoZWNrX2NyeXB0b19jb25maWcuaApyZW5hbWUgdG8gdGYtcHNhLWNyeXB0by9kcml2ZXJzL2J1aWx0aW4vc3JjL2NoZWNrX2NyeXB0b19jb25maWcuaApkaWZmIC0tZ2l0IGEvdGYtcHNhLWNyeXB0by9kcml2ZXJzL2J1aWx0aW4vc3JjL2NpcGhlci5jIGIvdGYtcHNhLWNyeXB0by9kcml2ZXJzL2J1aWx0aW4vc3JjL2NpcGhlci5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjdmNGMxMjEKLS0tIC9kZXYvbnVsbAorKysgYi90Zi1wc2EtY3J5cHRvL2RyaXZlcnMvYnVpbHRpbi9zcmMvY2lwaGVyLmMKQEAgLTAsMCArMSwxNjgzIEBACisvKioKKyAqIFxmaWxlIGNpcGhlci5jCisgKgorICogXGJyaWVmIEdlbmVyaWMgY2lwaGVyIHdyYXBwZXIgZm9yIE1iZWQgVExTCisgKgorICogXGF1dGhvciBBZHJpYWFuIGRlIEpvbmcgPGRlam9uZ0Bmb3gtaXQuY29tPgorICoKKyAqICBDb3B5cmlnaHQgVGhlIE1iZWQgVExTIENvbnRyaWJ1dG9ycworICogIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wIE9SIEdQTC0yLjAtb3ItbGF0ZXIKKyAqLworCisjaW5jbHVkZSAiY29tbW9uLmgiCisKKyNpZiBkZWZpbmVkKE1CRURUTFNfQ0lQSEVSX0MpCisKKyNpbmNsdWRlICJtYmVkdGxzL2NpcGhlci5oIgorI2luY2x1ZGUgImNpcGhlcl93cmFwLmgiCisjaW5jbHVkZSAibWJlZHRscy9wbGF0Zm9ybV91dGlsLmgiCisjaW5jbHVkZSAibWJlZHRscy9lcnJvci5oIgorI2luY2x1ZGUgIm1iZWR0bHMvY29uc3RhbnRfdGltZS5oIgorI2luY2x1ZGUgImNvbnN0YW50X3RpbWVfaW50ZXJuYWwuaCIKKworI2luY2x1ZGUgPHN0ZGxpYi5oPgorI2luY2x1ZGUgPHN0cmluZy5oPgorCisjaWYgZGVmaW5lZChNQkVEVExTX0NIQUNIQVBPTFlfQykKKyNpbmNsdWRlICJtYmVkdGxzL2NoYWNoYXBvbHkuaCIKKyNlbmRpZgorCisjaWYgZGVmaW5lZChNQkVEVExTX0dDTV9DKQorI2luY2x1ZGUgIm1iZWR0bHMvZ2NtLmgiCisjZW5kaWYKKworI2lmIGRlZmluZWQoTUJFRFRMU19DQ01fQykKKyNpbmNsdWRlICJtYmVkdGxzL2NjbS5oIgorI2VuZGlmCisKKyNpZiBkZWZpbmVkKE1CRURUTFNfQ0hBQ0hBMjBfQykKKyNpbmNsdWRlICJtYmVkdGxzL2NoYWNoYTIwLmgiCisjZW5kaWYKKworI2lmIGRlZmluZWQoTUJFRFRMU19DTUFDX0MpCisjaW5jbHVkZSAibWJlZHRscy9jbWFjLmgiCisjZW5kaWYKKworI2lmIGRlZmluZWQoTUJFRFRMU19VU0VfUFNBX0NSWVBUTykgJiYgIWRlZmluZWQoTUJFRFRMU19ERVBSRUNBVEVEX1JFTU9WRUQpCisjaW5jbHVkZSAicHNhL2NyeXB0by5oIgorI2VuZGlmIC8qIE1CRURUTFNfVVNFX1BTQV9DUllQVE8gJiYgIU1CRURUTFNfREVQUkVDQVRFRF9SRU1PVkVEICovCisKKyNpZiBkZWZpbmVkKE1CRURUTFNfTklTVF9LV19DKQorI2luY2x1ZGUgIm1iZWR0bHMvbmlzdF9rdy5oIgorI2VuZGlmCisKKyNpbmNsdWRlICJtYmVkdGxzL3BsYXRmb3JtLmgiCisKK3N0YXRpYyBpbnQgc3VwcG9ydGVkX2luaXQgPSAwOworCitzdGF0aWMgaW5saW5lIGNvbnN0IG1iZWR0bHNfY2lwaGVyX2Jhc2VfdCAqbWJlZHRsc19jaXBoZXJfZ2V0X2Jhc2UoCisgICAgY29uc3QgbWJlZHRsc19jaXBoZXJfaW5mb190ICppbmZvKQoreworICAgIHJldHVybiBtYmVkdGxzX2NpcGhlcl9iYXNlX2xvb2t1cF90YWJsZVtpbmZvLT5iYXNlX2lkeF07Cit9CisKK2NvbnN0IGludCAqbWJlZHRsc19jaXBoZXJfbGlzdCh2b2lkKQoreworICAgIGNvbnN0IG1iZWR0bHNfY2lwaGVyX2RlZmluaXRpb25fdCAqZGVmOworICAgIGludCAqdHlwZTsKKworICAgIGlmICghc3VwcG9ydGVkX2luaXQpIHsKKyAgICAgICAgZGVmID0gbWJlZHRsc19jaXBoZXJfZGVmaW5pdGlvbnM7CisgICAgICAgIHR5cGUgPSBtYmVkdGxzX2NpcGhlcl9zdXBwb3J0ZWQ7CisKKyAgICAgICAgd2hpbGUgKGRlZi0+dHlwZSAhPSAwKSB7CisgICAgICAgICAgICAqdHlwZSsrID0gKCpkZWYrKykudHlwZTsKKyAgICAgICAgfQorCisgICAgICAgICp0eXBlID0gMDsKKworICAgICAgICBzdXBwb3J0ZWRfaW5pdCA9IDE7CisgICAgfQorCisgICAgcmV0dXJuIG1iZWR0bHNfY2lwaGVyX3N1cHBvcnRlZDsKK30KKworY29uc3QgbWJlZHRsc19jaXBoZXJfaW5mb190ICptYmVkdGxzX2NpcGhlcl9pbmZvX2Zyb21fdHlwZSgKKyAgICBjb25zdCBtYmVkdGxzX2NpcGhlcl90eXBlX3QgY2lwaGVyX3R5cGUpCit7CisgICAgY29uc3QgbWJlZHRsc19jaXBoZXJfZGVmaW5pdGlvbl90ICpkZWY7CisKKyAgICBmb3IgKGRlZiA9IG1iZWR0bHNfY2lwaGVyX2RlZmluaXRpb25zOyBkZWYtPmluZm8gIT0gTlVMTDsgZGVmKyspIHsKKyAgICAgICAgaWYgKGRlZi0+dHlwZSA9PSBjaXBoZXJfdHlwZSkgeworICAgICAgICAgICAgcmV0dXJuIGRlZi0+aW5mbzsKKyAgICAgICAgfQorICAgIH0KKworICAgIHJldHVybiBOVUxMOworfQorCitjb25zdCBtYmVkdGxzX2NpcGhlcl9pbmZvX3QgKm1iZWR0bHNfY2lwaGVyX2luZm9fZnJvbV9zdHJpbmcoCisgICAgY29uc3QgY2hhciAqY2lwaGVyX25hbWUpCit7CisgICAgY29uc3QgbWJlZHRsc19jaXBoZXJfZGVmaW5pdGlvbl90ICpkZWY7CisKKyAgICBpZiAoTlVMTCA9PSBjaXBoZXJfbmFtZSkgeworICAgICAgICByZXR1cm4gTlVMTDsKKyAgICB9CisKKyAgICBmb3IgKGRlZiA9IG1iZWR0bHNfY2lwaGVyX2RlZmluaXRpb25zOyBkZWYtPmluZm8gIT0gTlVMTDsgZGVmKyspIHsKKyAgICAgICAgaWYgKCFzdHJjbXAoZGVmLT5pbmZvLT5uYW1lLCBjaXBoZXJfbmFtZSkpIHsKKyAgICAgICAgICAgIHJldHVybiBkZWYtPmluZm87CisgICAgICAgIH0KKyAgICB9CisKKyAgICByZXR1cm4gTlVMTDsKK30KKworY29uc3QgbWJlZHRsc19jaXBoZXJfaW5mb190ICptYmVkdGxzX2NpcGhlcl9pbmZvX2Zyb21fdmFsdWVzKAorICAgIGNvbnN0IG1iZWR0bHNfY2lwaGVyX2lkX3QgY2lwaGVyX2lkLAorICAgIGludCBrZXlfYml0bGVuLAorICAgIGNvbnN0IG1iZWR0bHNfY2lwaGVyX21vZGVfdCBtb2RlKQoreworICAgIGNvbnN0IG1iZWR0bHNfY2lwaGVyX2RlZmluaXRpb25fdCAqZGVmOworCisgICAgZm9yIChkZWYgPSBtYmVkdGxzX2NpcGhlcl9kZWZpbml0aW9uczsgZGVmLT5pbmZvICE9IE5VTEw7IGRlZisrKSB7CisgICAgICAgIGlmIChtYmVkdGxzX2NpcGhlcl9nZXRfYmFzZShkZWYtPmluZm8pLT5jaXBoZXIgPT0gY2lwaGVyX2lkICYmCisgICAgICAgICAgICBtYmVkdGxzX2NpcGhlcl9pbmZvX2dldF9rZXlfYml0bGVuKGRlZi0+aW5mbykgPT0gKHVuc2lnbmVkKSBrZXlfYml0bGVuICYmCisgICAgICAgICAgICBkZWYtPmluZm8tPm1vZGUgPT0gbW9kZSkgeworICAgICAgICAgICAgcmV0dXJuIGRlZi0+aW5mbzsKKyAgICAgICAgfQorICAgIH0KKworICAgIHJldHVybiBOVUxMOworfQorCisjaWYgZGVmaW5lZChNQkVEVExTX1VTRV9QU0FfQ1JZUFRPKSAmJiAhZGVmaW5lZChNQkVEVExTX0RFUFJFQ0FURURfUkVNT1ZFRCkKK3N0YXRpYyBpbmxpbmUgcHNhX2tleV90eXBlX3QgbWJlZHRsc19wc2FfdHJhbnNsYXRlX2NpcGhlcl90eXBlKAorICAgIG1iZWR0bHNfY2lwaGVyX3R5cGVfdCBjaXBoZXIpCit7CisgICAgc3dpdGNoIChjaXBoZXIpIHsKKyAgICAgICAgY2FzZSBNQkVEVExTX0NJUEhFUl9BRVNfMTI4X0NDTToKKyAgICAgICAgY2FzZSBNQkVEVExTX0NJUEhFUl9BRVNfMTkyX0NDTToKKyAgICAgICAgY2FzZSBNQkVEVExTX0NJUEhFUl9BRVNfMjU2X0NDTToKKyAgICAgICAgY2FzZSBNQkVEVExTX0NJUEhFUl9BRVNfMTI4X0NDTV9TVEFSX05PX1RBRzoKKyAgICAgICAgY2FzZSBNQkVEVExTX0NJUEhFUl9BRVNfMTkyX0NDTV9TVEFSX05PX1RBRzoKKyAgICAgICAgY2FzZSBNQkVEVExTX0NJUEhFUl9BRVNfMjU2X0NDTV9TVEFSX05PX1RBRzoKKyAgICAgICAgY2FzZSBNQkVEVExTX0NJUEhFUl9BRVNfMTI4X0dDTToKKyAgICAgICAgY2FzZSBNQkVEVExTX0NJUEhFUl9BRVNfMTkyX0dDTToKKyAgICAgICAgY2FzZSBNQkVEVExTX0NJUEhFUl9BRVNfMjU2X0dDTToKKyAgICAgICAgY2FzZSBNQkVEVExTX0NJUEhFUl9BRVNfMTI4X0NCQzoKKyAgICAgICAgY2FzZSBNQkVEVExTX0NJUEhFUl9BRVNfMTkyX0NCQzoKKyAgICAgICAgY2FzZSBNQkVEVExTX0NJUEhFUl9BRVNfMjU2X0NCQzoKKyAgICAgICAgY2FzZSBNQkVEVExTX0NJUEhFUl9BRVNfMTI4X0VDQjoKKyAgICAgICAgY2FzZSBNQkVEVExTX0NJUEhFUl9BRVNfMTkyX0VDQjoKKyAgICAgICAgY2FzZSBNQkVEVExTX0NJUEhFUl9BRVNfMjU2X0VDQjoKKyAgICAgICAgICAgIHJldHVybiBQU0FfS0VZX1RZUEVfQUVTOworCisgICAgICAgIC8qIEFSSUEgbm90IHlldCBzdXBwb3J0ZWQgaW4gUFNBLiAqLworICAgICAgICAvKiBjYXNlIE1CRURUTFNfQ0lQSEVSX0FSSUFfMTI4X0NDTToKKyAgICAgICAgICAgY2FzZSBNQkVEVExTX0NJUEhFUl9BUklBXzE5Ml9DQ006CisgICAgICAgICAgIGNhc2UgTUJFRFRMU19DSVBIRVJfQVJJQV8yNTZfQ0NNOgorICAgICAgICAgICBjYXNlIE1CRURUTFNfQ0lQSEVSX0FSSUFfMTI4X0NDTV9TVEFSX05PX1RBRzoKKyAgICAgICAgICAgY2FzZSBNQkVEVExTX0NJUEhFUl9BUklBXzE5Ml9DQ01fU1RBUl9OT19UQUc6CisgICAgICAgICAgIGNhc2UgTUJFRFRMU19DSVBIRVJfQVJJQV8yNTZfQ0NNX1NUQVJfTk9fVEFHOgorICAgICAgICAgICBjYXNlIE1CRURUTFNfQ0lQSEVSX0FSSUFfMTI4X0dDTToKKyAgICAgICAgICAgY2FzZSBNQkVEVExTX0NJUEhFUl9BUklBXzE5Ml9HQ006CisgICAgICAgICAgIGNhc2UgTUJFRFRMU19DSVBIRVJfQVJJQV8yNTZfR0NNOgorICAgICAgICAgICBjYXNlIE1CRURUTFNfQ0lQSEVSX0FSSUFfMTI4X0NCQzoKKyAgICAgICAgICAgY2FzZSBNQkVEVExTX0NJUEhFUl9BUklBXzE5Ml9DQkM6CisgICAgICAgICAgIGNhc2UgTUJFRFRMU19DSVBIRVJfQVJJQV8yNTZfQ0JDOgorICAgICAgICAgICAgICAgcmV0dXJuKCBQU0FfS0VZX1RZUEVfQVJJQSApOyAqLworCisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICByZXR1cm4gMDsKKyAgICB9Cit9CisKK3N0YXRpYyBpbmxpbmUgcHNhX2FsZ29yaXRobV90IG1iZWR0bHNfcHNhX3RyYW5zbGF0ZV9jaXBoZXJfbW9kZSgKKyAgICBtYmVkdGxzX2NpcGhlcl9tb2RlX3QgbW9kZSwgc2l6ZV90IHRhZ2xlbikKK3sKKyAgICBzd2l0Y2ggKG1vZGUpIHsKKyAgICAgICAgY2FzZSBNQkVEVExTX01PREVfRUNCOgorICAgICAgICAgICAgcmV0dXJuIFBTQV9BTEdfRUNCX05PX1BBRERJTkc7CisgICAgICAgIGNhc2UgTUJFRFRMU19NT0RFX0dDTToKKyAgICAgICAgICAgIHJldHVybiBQU0FfQUxHX0FFQURfV0lUSF9TSE9SVEVORURfVEFHKFBTQV9BTEdfR0NNLCB0YWdsZW4pOworICAgICAgICBjYXNlIE1CRURUTFNfTU9ERV9DQ006CisgICAgICAgICAgICByZXR1cm4gUFNBX0FMR19BRUFEX1dJVEhfU0hPUlRFTkVEX1RBRyhQU0FfQUxHX0NDTSwgdGFnbGVuKTsKKyAgICAgICAgY2FzZSBNQkVEVExTX01PREVfQ0NNX1NUQVJfTk9fVEFHOgorICAgICAgICAgICAgcmV0dXJuIFBTQV9BTEdfQ0NNX1NUQVJfTk9fVEFHOworICAgICAgICBjYXNlIE1CRURUTFNfTU9ERV9DQkM6CisgICAgICAgICAgICBpZiAodGFnbGVuID09IDApIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gUFNBX0FMR19DQkNfTk9fUEFERElORzsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgICAgICB9CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICByZXR1cm4gMDsKKyAgICB9Cit9CisjZW5kaWYgLyogTUJFRFRMU19VU0VfUFNBX0NSWVBUTyAmJiAhTUJFRFRMU19ERVBSRUNBVEVEX1JFTU9WRUQgKi8KKwordm9pZCBtYmVkdGxzX2NpcGhlcl9pbml0KG1iZWR0bHNfY2lwaGVyX2NvbnRleHRfdCAqY3R4KQoreworICAgIG1lbXNldChjdHgsIDAsIHNpemVvZihtYmVkdGxzX2NpcGhlcl9jb250ZXh0X3QpKTsKK30KKwordm9pZCBtYmVkdGxzX2NpcGhlcl9mcmVlKG1iZWR0bHNfY2lwaGVyX2NvbnRleHRfdCAqY3R4KQoreworICAgIGlmIChjdHggPT0gTlVMTCkgeworICAgICAgICByZXR1cm47CisgICAgfQorCisjaWYgZGVmaW5lZChNQkVEVExTX1VTRV9QU0FfQ1JZUFRPKSAmJiAhZGVmaW5lZChNQkVEVExTX0RFUFJFQ0FURURfUkVNT1ZFRCkKKyAgICBpZiAoY3R4LT5wc2FfZW5hYmxlZCA9PSAxKSB7CisgICAgICAgIGlmIChjdHgtPmNpcGhlcl9jdHggIT0gTlVMTCkgeworICAgICAgICAgICAgbWJlZHRsc19jaXBoZXJfY29udGV4dF9wc2EgKiBjb25zdCBjaXBoZXJfcHNhID0KKyAgICAgICAgICAgICAgICAobWJlZHRsc19jaXBoZXJfY29udGV4dF9wc2EgKikgY3R4LT5jaXBoZXJfY3R4OworCisgICAgICAgICAgICBpZiAoY2lwaGVyX3BzYS0+c2xvdF9zdGF0ZSA9PSBNQkVEVExTX0NJUEhFUl9QU0FfS0VZX09XTkVEKSB7CisgICAgICAgICAgICAgICAgLyogeHh4X2ZyZWUoKSBkb2Vzbid0IGFsbG93IHRvIHJldHVybiBmYWlsdXJlcy4gKi8KKyAgICAgICAgICAgICAgICAodm9pZCkgcHNhX2Rlc3Ryb3lfa2V5KGNpcGhlcl9wc2EtPnNsb3QpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBtYmVkdGxzX3plcm9pemVfYW5kX2ZyZWUoY2lwaGVyX3BzYSwgc2l6ZW9mKCpjaXBoZXJfcHNhKSk7CisgICAgICAgIH0KKworICAgICAgICBtYmVkdGxzX3BsYXRmb3JtX3plcm9pemUoY3R4LCBzaXplb2YobWJlZHRsc19jaXBoZXJfY29udGV4dF90KSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisjZW5kaWYgLyogTUJFRFRMU19VU0VfUFNBX0NSWVBUTyAmJiAhTUJFRFRMU19ERVBSRUNBVEVEX1JFTU9WRUQgKi8KKworI2lmIGRlZmluZWQoTUJFRFRMU19DTUFDX0MpCisgICAgaWYgKGN0eC0+Y21hY19jdHgpIHsKKyAgICAgICAgbWJlZHRsc196ZXJvaXplX2FuZF9mcmVlKGN0eC0+Y21hY19jdHgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplb2YobWJlZHRsc19jbWFjX2NvbnRleHRfdCkpOworICAgIH0KKyNlbmRpZgorCisgICAgaWYgKGN0eC0+Y2lwaGVyX2N0eCkgeworICAgICAgICBtYmVkdGxzX2NpcGhlcl9nZXRfYmFzZShjdHgtPmNpcGhlcl9pbmZvKS0+Y3R4X2ZyZWVfZnVuYyhjdHgtPmNpcGhlcl9jdHgpOworICAgIH0KKworICAgIG1iZWR0bHNfcGxhdGZvcm1femVyb2l6ZShjdHgsIHNpemVvZihtYmVkdGxzX2NpcGhlcl9jb250ZXh0X3QpKTsKK30KKworaW50IG1iZWR0bHNfY2lwaGVyX3NldHVwKG1iZWR0bHNfY2lwaGVyX2NvbnRleHRfdCAqY3R4LAorICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IG1iZWR0bHNfY2lwaGVyX2luZm9fdCAqY2lwaGVyX2luZm8pCit7CisgICAgaWYgKGNpcGhlcl9pbmZvID09IE5VTEwpIHsKKyAgICAgICAgcmV0dXJuIE1CRURUTFNfRVJSX0NJUEhFUl9CQURfSU5QVVRfREFUQTsKKyAgICB9CisKKyAgICBtZW1zZXQoY3R4LCAwLCBzaXplb2YobWJlZHRsc19jaXBoZXJfY29udGV4dF90KSk7CisKKyAgICBpZiAobWJlZHRsc19jaXBoZXJfZ2V0X2Jhc2UoY2lwaGVyX2luZm8pLT5jdHhfYWxsb2NfZnVuYyAhPSBOVUxMKSB7CisgICAgICAgIGN0eC0+Y2lwaGVyX2N0eCA9IG1iZWR0bHNfY2lwaGVyX2dldF9iYXNlKGNpcGhlcl9pbmZvKS0+Y3R4X2FsbG9jX2Z1bmMoKTsKKyAgICAgICAgaWYgKGN0eC0+Y2lwaGVyX2N0eCA9PSBOVUxMKSB7CisgICAgICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfQ0lQSEVSX0FMTE9DX0ZBSUxFRDsKKyAgICAgICAgfQorICAgIH0KKworICAgIGN0eC0+Y2lwaGVyX2luZm8gPSBjaXBoZXJfaW5mbzsKKworICAgIHJldHVybiAwOworfQorCisjaWYgZGVmaW5lZChNQkVEVExTX1VTRV9QU0FfQ1JZUFRPKSAmJiAhZGVmaW5lZChNQkVEVExTX0RFUFJFQ0FURURfUkVNT1ZFRCkKK2ludCBtYmVkdGxzX2NpcGhlcl9zZXR1cF9wc2EobWJlZHRsc19jaXBoZXJfY29udGV4dF90ICpjdHgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IG1iZWR0bHNfY2lwaGVyX2luZm9fdCAqY2lwaGVyX2luZm8sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCB0YWdsZW4pCit7CisgICAgcHNhX2FsZ29yaXRobV90IGFsZzsKKyAgICBtYmVkdGxzX2NpcGhlcl9jb250ZXh0X3BzYSAqY2lwaGVyX3BzYTsKKworICAgIGlmIChOVUxMID09IGNpcGhlcl9pbmZvIHx8IE5VTEwgPT0gY3R4KSB7CisgICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9DSVBIRVJfQkFEX0lOUFVUX0RBVEE7CisgICAgfQorCisgICAgLyogQ2hlY2sgdGhhdCB0aGUgdW5kZXJseWluZyBjaXBoZXIgbW9kZSBhbmQgY2lwaGVyIHR5cGUgYXJlCisgICAgICogc3VwcG9ydGVkIGJ5IHRoZSB1bmRlcmx5aW5nIFBTQSBDcnlwdG8gaW1wbGVtZW50YXRpb24uICovCisgICAgYWxnID0gbWJlZHRsc19wc2FfdHJhbnNsYXRlX2NpcGhlcl9tb2RlKCgobWJlZHRsc19jaXBoZXJfbW9kZV90KSBjaXBoZXJfaW5mby0+bW9kZSksIHRhZ2xlbik7CisgICAgaWYgKGFsZyA9PSAwKSB7CisgICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9DSVBIRVJfRkVBVFVSRV9VTkFWQUlMQUJMRTsKKyAgICB9CisgICAgaWYgKG1iZWR0bHNfcHNhX3RyYW5zbGF0ZV9jaXBoZXJfdHlwZSgoKG1iZWR0bHNfY2lwaGVyX3R5cGVfdCkgY2lwaGVyX2luZm8tPnR5cGUpKSA9PSAwKSB7CisgICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9DSVBIRVJfRkVBVFVSRV9VTkFWQUlMQUJMRTsKKyAgICB9CisKKyAgICBtZW1zZXQoY3R4LCAwLCBzaXplb2YobWJlZHRsc19jaXBoZXJfY29udGV4dF90KSk7CisKKyAgICBjaXBoZXJfcHNhID0gbWJlZHRsc19jYWxsb2MoMSwgc2l6ZW9mKG1iZWR0bHNfY2lwaGVyX2NvbnRleHRfcHNhKSk7CisgICAgaWYgKGNpcGhlcl9wc2EgPT0gTlVMTCkgeworICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfQ0lQSEVSX0FMTE9DX0ZBSUxFRDsKKyAgICB9CisgICAgY2lwaGVyX3BzYS0+YWxnICA9IGFsZzsKKyAgICBjdHgtPmNpcGhlcl9jdHggID0gY2lwaGVyX3BzYTsKKyAgICBjdHgtPmNpcGhlcl9pbmZvID0gY2lwaGVyX2luZm87CisgICAgY3R4LT5wc2FfZW5hYmxlZCA9IDE7CisgICAgcmV0dXJuIDA7Cit9CisjZW5kaWYgLyogTUJFRFRMU19VU0VfUFNBX0NSWVBUTyAmJiAhTUJFRFRMU19ERVBSRUNBVEVEX1JFTU9WRUQgKi8KKworaW50IG1iZWR0bHNfY2lwaGVyX3NldGtleShtYmVkdGxzX2NpcGhlcl9jb250ZXh0X3QgKmN0eCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdW5zaWduZWQgY2hhciAqa2V5LAorICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQga2V5X2JpdGxlbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbWJlZHRsc19vcGVyYXRpb25fdCBvcGVyYXRpb24pCit7CisgICAgaWYgKG9wZXJhdGlvbiAhPSBNQkVEVExTX0VOQ1JZUFQgJiYgb3BlcmF0aW9uICE9IE1CRURUTFNfREVDUllQVCkgeworICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfQ0lQSEVSX0JBRF9JTlBVVF9EQVRBOworICAgIH0KKyAgICBpZiAoY3R4LT5jaXBoZXJfaW5mbyA9PSBOVUxMKSB7CisgICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9DSVBIRVJfQkFEX0lOUFVUX0RBVEE7CisgICAgfQorI2lmIGRlZmluZWQoTUJFRFRMU19CTE9DS19DSVBIRVJfTk9fREVDUllQVCkKKyAgICBpZiAoTUJFRFRMU19NT0RFX0VDQiA9PSAoKG1iZWR0bHNfY2lwaGVyX21vZGVfdCkgY3R4LT5jaXBoZXJfaW5mby0+bW9kZSkgJiYKKyAgICAgICAgTUJFRFRMU19ERUNSWVBUID09IG9wZXJhdGlvbikgeworICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfQ0lQSEVSX0ZFQVRVUkVfVU5BVkFJTEFCTEU7CisgICAgfQorI2VuZGlmCisKKyNpZiBkZWZpbmVkKE1CRURUTFNfVVNFX1BTQV9DUllQVE8pICYmICFkZWZpbmVkKE1CRURUTFNfREVQUkVDQVRFRF9SRU1PVkVEKQorICAgIGlmIChjdHgtPnBzYV9lbmFibGVkID09IDEpIHsKKyAgICAgICAgbWJlZHRsc19jaXBoZXJfY29udGV4dF9wc2EgKiBjb25zdCBjaXBoZXJfcHNhID0KKyAgICAgICAgICAgIChtYmVkdGxzX2NpcGhlcl9jb250ZXh0X3BzYSAqKSBjdHgtPmNpcGhlcl9jdHg7CisKKyAgICAgICAgc2l6ZV90IGNvbnN0IGtleV9ieXRlbGVuID0gKChzaXplX3QpIGtleV9iaXRsZW4gKyA3KSAvIDg7CisKKyAgICAgICAgcHNhX3N0YXR1c190IHN0YXR1czsKKyAgICAgICAgcHNhX2tleV90eXBlX3Qga2V5X3R5cGU7CisgICAgICAgIHBzYV9rZXlfYXR0cmlidXRlc190IGF0dHJpYnV0ZXMgPSBQU0FfS0VZX0FUVFJJQlVURVNfSU5JVDsKKworICAgICAgICAvKiBQU0EgQ3J5cHRvIEFQSSBvbmx5IGFjY2VwdHMgYnl0ZS1hbGlnbmVkIGtleXMuICovCisgICAgICAgIGlmIChrZXlfYml0bGVuICUgOCAhPSAwKSB7CisgICAgICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfQ0lQSEVSX0JBRF9JTlBVVF9EQVRBOworICAgICAgICB9CisKKyAgICAgICAgLyogRG9uJ3QgYWxsb3cga2V5cyB0byBiZSBzZXQgbXVsdGlwbGUgdGltZXMuICovCisgICAgICAgIGlmIChjaXBoZXJfcHNhLT5zbG90X3N0YXRlICE9IE1CRURUTFNfQ0lQSEVSX1BTQV9LRVlfVU5TRVQpIHsKKyAgICAgICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9DSVBIRVJfQkFEX0lOUFVUX0RBVEE7CisgICAgICAgIH0KKworICAgICAgICBrZXlfdHlwZSA9IG1iZWR0bHNfcHNhX3RyYW5zbGF0ZV9jaXBoZXJfdHlwZSgKKyAgICAgICAgICAgICgobWJlZHRsc19jaXBoZXJfdHlwZV90KSBjdHgtPmNpcGhlcl9pbmZvLT50eXBlKSk7CisgICAgICAgIGlmIChrZXlfdHlwZSA9PSAwKSB7CisgICAgICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfQ0lQSEVSX0ZFQVRVUkVfVU5BVkFJTEFCTEU7CisgICAgICAgIH0KKyAgICAgICAgcHNhX3NldF9rZXlfdHlwZSgmYXR0cmlidXRlcywga2V5X3R5cGUpOworCisgICAgICAgIC8qIE1iZWQgVExTJyBjaXBoZXIgbGF5ZXIgZG9lc24ndCBlbmZvcmNlIHRoZSBtb2RlIG9mIG9wZXJhdGlvbgorICAgICAgICAgKiAoZW5jcnlwdCB2cy4gZGVjcnlwdCk6IGl0IGlzIHBvc3NpYmxlIHRvIHNldHVwIGEga2V5IGZvciBlbmNyeXB0aW9uCisgICAgICAgICAqIGFuZCB1c2UgaXQgZm9yIEFFQUQgZGVjcnlwdGlvbi4gVW50aWwgdGVzdHMgcmVseWluZyBvbiB0aGlzCisgICAgICAgICAqIGFyZSBjaGFuZ2VkLCBhbGxvdyBhbnkgdXNhZ2UgaW4gUFNBLiAqLworICAgICAgICBwc2Ffc2V0X2tleV91c2FnZV9mbGFncygmYXR0cmlidXRlcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUFNBX0tFWV9VU0FHRV9FTkNSWVBUIHwgUFNBX0tFWV9VU0FHRV9ERUNSWVBUKTsKKyAgICAgICAgcHNhX3NldF9rZXlfYWxnb3JpdGhtKCZhdHRyaWJ1dGVzLCBjaXBoZXJfcHNhLT5hbGcpOworCisgICAgICAgIHN0YXR1cyA9IHBzYV9pbXBvcnRfa2V5KCZhdHRyaWJ1dGVzLCBrZXksIGtleV9ieXRlbGVuLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmY2lwaGVyX3BzYS0+c2xvdCk7CisgICAgICAgIHN3aXRjaCAoc3RhdHVzKSB7CisgICAgICAgICAgICBjYXNlIFBTQV9TVUNDRVNTOgorICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBQU0FfRVJST1JfSU5TVUZGSUNJRU5UX01FTU9SWToKKyAgICAgICAgICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfQ0lQSEVSX0FMTE9DX0ZBSUxFRDsKKyAgICAgICAgICAgIGNhc2UgUFNBX0VSUk9SX05PVF9TVVBQT1JURUQ6CisgICAgICAgICAgICAgICAgcmV0dXJuIE1CRURUTFNfRVJSX0NJUEhFUl9GRUFUVVJFX1VOQVZBSUxBQkxFOworICAgICAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfUExBVEZPUk1fSFdfQUNDRUxfRkFJTEVEOworICAgICAgICB9CisgICAgICAgIC8qIEluZGljYXRlIHRoYXQgd2Ugb3duIHRoZSBrZXkgc2xvdCBhbmQgbmVlZCB0bworICAgICAgICAgKiBkZXN0cm95IGl0IGluIG1iZWR0bHNfY2lwaGVyX2ZyZWUoKS4gKi8KKyAgICAgICAgY2lwaGVyX3BzYS0+c2xvdF9zdGF0ZSA9IE1CRURUTFNfQ0lQSEVSX1BTQV9LRVlfT1dORUQ7CisKKyAgICAgICAgY3R4LT5rZXlfYml0bGVuID0ga2V5X2JpdGxlbjsKKyAgICAgICAgY3R4LT5vcGVyYXRpb24gPSBvcGVyYXRpb247CisgICAgICAgIHJldHVybiAwOworICAgIH0KKyNlbmRpZiAvKiBNQkVEVExTX1VTRV9QU0FfQ1JZUFRPICYmICFNQkVEVExTX0RFUFJFQ0FURURfUkVNT1ZFRCAqLworCisgICAgaWYgKChjdHgtPmNpcGhlcl9pbmZvLT5mbGFncyAmIE1CRURUTFNfQ0lQSEVSX1ZBUklBQkxFX0tFWV9MRU4pID09IDAgJiYKKyAgICAgICAgKGludCkgbWJlZHRsc19jaXBoZXJfaW5mb19nZXRfa2V5X2JpdGxlbihjdHgtPmNpcGhlcl9pbmZvKSAhPSBrZXlfYml0bGVuKSB7CisgICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9DSVBIRVJfQkFEX0lOUFVUX0RBVEE7CisgICAgfQorCisgICAgY3R4LT5rZXlfYml0bGVuID0ga2V5X2JpdGxlbjsKKyAgICBjdHgtPm9wZXJhdGlvbiA9IG9wZXJhdGlvbjsKKworI2lmICFkZWZpbmVkKE1CRURUTFNfQkxPQ0tfQ0lQSEVSX05PX0RFQ1JZUFQpCisgICAgLyoKKyAgICAgKiBGb3IgT0ZCLCBDRkIgYW5kIENUUiBtb2RlIGFsd2F5cyB1c2UgdGhlIGVuY3J5cHRpb24ga2V5IHNjaGVkdWxlCisgICAgICovCisgICAgaWYgKE1CRURUTFNfRU5DUllQVCA9PSBvcGVyYXRpb24gfHwKKyAgICAgICAgTUJFRFRMU19NT0RFX0NGQiA9PSAoKG1iZWR0bHNfY2lwaGVyX21vZGVfdCkgY3R4LT5jaXBoZXJfaW5mby0+bW9kZSkgfHwKKyAgICAgICAgTUJFRFRMU19NT0RFX09GQiA9PSAoKG1iZWR0bHNfY2lwaGVyX21vZGVfdCkgY3R4LT5jaXBoZXJfaW5mby0+bW9kZSkgfHwKKyAgICAgICAgTUJFRFRMU19NT0RFX0NUUiA9PSAoKG1iZWR0bHNfY2lwaGVyX21vZGVfdCkgY3R4LT5jaXBoZXJfaW5mby0+bW9kZSkpIHsKKyAgICAgICAgcmV0dXJuIG1iZWR0bHNfY2lwaGVyX2dldF9iYXNlKGN0eC0+Y2lwaGVyX2luZm8pLT5zZXRrZXlfZW5jX2Z1bmMoY3R4LT5jaXBoZXJfY3R4LCBrZXksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGN0eC0+a2V5X2JpdGxlbik7CisgICAgfQorCisgICAgaWYgKE1CRURUTFNfREVDUllQVCA9PSBvcGVyYXRpb24pIHsKKyAgICAgICAgcmV0dXJuIG1iZWR0bHNfY2lwaGVyX2dldF9iYXNlKGN0eC0+Y2lwaGVyX2luZm8pLT5zZXRrZXlfZGVjX2Z1bmMoY3R4LT5jaXBoZXJfY3R4LCBrZXksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGN0eC0+a2V5X2JpdGxlbik7CisgICAgfQorI2Vsc2UKKyAgICBpZiAob3BlcmF0aW9uID09IE1CRURUTFNfRU5DUllQVCB8fCBvcGVyYXRpb24gPT0gTUJFRFRMU19ERUNSWVBUKSB7CisgICAgICAgIHJldHVybiBtYmVkdGxzX2NpcGhlcl9nZXRfYmFzZShjdHgtPmNpcGhlcl9pbmZvKS0+c2V0a2V5X2VuY19mdW5jKGN0eC0+Y2lwaGVyX2N0eCwga2V5LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdHgtPmtleV9iaXRsZW4pOworICAgIH0KKyNlbmRpZgorCisgICAgcmV0dXJuIE1CRURUTFNfRVJSX0NJUEhFUl9CQURfSU5QVVRfREFUQTsKK30KKworaW50IG1iZWR0bHNfY2lwaGVyX3NldF9pdihtYmVkdGxzX2NpcGhlcl9jb250ZXh0X3QgKmN0eCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdW5zaWduZWQgY2hhciAqaXYsCisgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBpdl9sZW4pCit7CisgICAgc2l6ZV90IGFjdHVhbF9pdl9zaXplOworCisgICAgaWYgKGN0eC0+Y2lwaGVyX2luZm8gPT0gTlVMTCkgeworICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfQ0lQSEVSX0JBRF9JTlBVVF9EQVRBOworICAgIH0KKyNpZiBkZWZpbmVkKE1CRURUTFNfVVNFX1BTQV9DUllQVE8pICYmICFkZWZpbmVkKE1CRURUTFNfREVQUkVDQVRFRF9SRU1PVkVEKQorICAgIGlmIChjdHgtPnBzYV9lbmFibGVkID09IDEpIHsKKyAgICAgICAgLyogV2hpbGUgUFNBIENyeXB0byBoYXMgYW4gQVBJIGZvciBtdWx0aXBhcnQKKyAgICAgICAgICogb3BlcmF0aW9ucywgd2UgY3VycmVudGx5IGRvbid0IG1ha2UgaXQKKyAgICAgICAgICogYWNjZXNzaWJsZSB0aHJvdWdoIHRoZSBjaXBoZXIgbGF5ZXIuICovCisgICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9DSVBIRVJfRkVBVFVSRV9VTkFWQUlMQUJMRTsKKyAgICB9CisjZW5kaWYgLyogTUJFRFRMU19VU0VfUFNBX0NSWVBUTyAmJiAhTUJFRFRMU19ERVBSRUNBVEVEX1JFTU9WRUQgKi8KKworICAgIC8qIGF2b2lkIGJ1ZmZlciBvdmVyZmxvdyBpbiBjdHgtPml2ICovCisgICAgaWYgKGl2X2xlbiA+IE1CRURUTFNfTUFYX0lWX0xFTkdUSCkgeworICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfQ0lQSEVSX0ZFQVRVUkVfVU5BVkFJTEFCTEU7CisgICAgfQorCisgICAgaWYgKChjdHgtPmNpcGhlcl9pbmZvLT5mbGFncyAmIE1CRURUTFNfQ0lQSEVSX1ZBUklBQkxFX0lWX0xFTikgIT0gMCkgeworICAgICAgICBhY3R1YWxfaXZfc2l6ZSA9IGl2X2xlbjsKKyAgICB9IGVsc2UgeworICAgICAgICBhY3R1YWxfaXZfc2l6ZSA9IG1iZWR0bHNfY2lwaGVyX2luZm9fZ2V0X2l2X3NpemUoY3R4LT5jaXBoZXJfaW5mbyk7CisKKyAgICAgICAgLyogYXZvaWQgcmVhZGluZyBwYXN0IHRoZSBlbmQgb2YgaW5wdXQgYnVmZmVyICovCisgICAgICAgIGlmIChhY3R1YWxfaXZfc2l6ZSA+IGl2X2xlbikgeworICAgICAgICAgICAgcmV0dXJuIE1CRURUTFNfRVJSX0NJUEhFUl9CQURfSU5QVVRfREFUQTsKKyAgICAgICAgfQorICAgIH0KKworI2lmIGRlZmluZWQoTUJFRFRMU19DSEFDSEEyMF9DKQorICAgIGlmICgoKG1iZWR0bHNfY2lwaGVyX3R5cGVfdCkgY3R4LT5jaXBoZXJfaW5mby0+dHlwZSkgPT0gTUJFRFRMU19DSVBIRVJfQ0hBQ0hBMjApIHsKKyAgICAgICAgLyogRXZlbiB0aG91Z2ggdGhlIGFjdHVhbF9pdl9zaXplIGlzIG92ZXJ3cml0dGVuIHdpdGggYSBjb3JyZWN0IHZhbHVlCisgICAgICAgICAqIG9mIDEyIGZyb20gdGhlIGNpcGhlciBpbmZvLCByZXR1cm4gYW4gZXJyb3IgdG8gaW5kaWNhdGUgdGhhdAorICAgICAgICAgKiB0aGUgaW5wdXQgaXZfbGVuIGlzIHdyb25nLiAqLworICAgICAgICBpZiAoaXZfbGVuICE9IDEyKSB7CisgICAgICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfQ0lQSEVSX0JBRF9JTlBVVF9EQVRBOworICAgICAgICB9CisKKyAgICAgICAgaWYgKDAgIT0gbWJlZHRsc19jaGFjaGEyMF9zdGFydHMoKG1iZWR0bHNfY2hhY2hhMjBfY29udGV4dCAqKSBjdHgtPmNpcGhlcl9jdHgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGl2LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwVSkpIHsgICAvKiBJbml0aWFsIGNvdW50ZXIgdmFsdWUgKi8KKyAgICAgICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9DSVBIRVJfQkFEX0lOUFVUX0RBVEE7CisgICAgICAgIH0KKyAgICB9CisjaWYgZGVmaW5lZChNQkVEVExTX0NIQUNIQVBPTFlfQykKKyAgICBpZiAoKChtYmVkdGxzX2NpcGhlcl90eXBlX3QpIGN0eC0+Y2lwaGVyX2luZm8tPnR5cGUpID09IE1CRURUTFNfQ0lQSEVSX0NIQUNIQTIwX1BPTFkxMzA1ICYmCisgICAgICAgIGl2X2xlbiAhPSAxMikgeworICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfQ0lQSEVSX0JBRF9JTlBVVF9EQVRBOworICAgIH0KKyNlbmRpZgorI2VuZGlmCisKKyNpZiBkZWZpbmVkKE1CRURUTFNfR0NNX0MpCisgICAgaWYgKE1CRURUTFNfTU9ERV9HQ00gPT0gKChtYmVkdGxzX2NpcGhlcl9tb2RlX3QpIGN0eC0+Y2lwaGVyX2luZm8tPm1vZGUpKSB7CisgICAgICAgIHJldHVybiBtYmVkdGxzX2djbV9zdGFydHMoKG1iZWR0bHNfZ2NtX2NvbnRleHQgKikgY3R4LT5jaXBoZXJfY3R4LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGN0eC0+b3BlcmF0aW9uLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGl2LCBpdl9sZW4pOworICAgIH0KKyNlbmRpZgorCisjaWYgZGVmaW5lZChNQkVEVExTX0NDTV9DKQorICAgIGlmIChNQkVEVExTX01PREVfQ0NNX1NUQVJfTk9fVEFHID09ICgobWJlZHRsc19jaXBoZXJfbW9kZV90KSBjdHgtPmNpcGhlcl9pbmZvLT5tb2RlKSkgeworICAgICAgICBpbnQgc2V0X2xlbmd0aHNfcmVzdWx0OworICAgICAgICBpbnQgY2NtX3N0YXJfbW9kZTsKKworICAgICAgICBzZXRfbGVuZ3Roc19yZXN1bHQgPSBtYmVkdGxzX2NjbV9zZXRfbGVuZ3RocygKKyAgICAgICAgICAgIChtYmVkdGxzX2NjbV9jb250ZXh0ICopIGN0eC0+Y2lwaGVyX2N0eCwKKyAgICAgICAgICAgIDAsIDAsIDApOworICAgICAgICBpZiAoc2V0X2xlbmd0aHNfcmVzdWx0ICE9IDApIHsKKyAgICAgICAgICAgIHJldHVybiBzZXRfbGVuZ3Roc19yZXN1bHQ7CisgICAgICAgIH0KKworICAgICAgICBpZiAoY3R4LT5vcGVyYXRpb24gPT0gTUJFRFRMU19ERUNSWVBUKSB7CisgICAgICAgICAgICBjY21fc3Rhcl9tb2RlID0gTUJFRFRMU19DQ01fU1RBUl9ERUNSWVBUOworICAgICAgICB9IGVsc2UgaWYgKGN0eC0+b3BlcmF0aW9uID09IE1CRURUTFNfRU5DUllQVCkgeworICAgICAgICAgICAgY2NtX3N0YXJfbW9kZSA9IE1CRURUTFNfQ0NNX1NUQVJfRU5DUllQVDsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9DSVBIRVJfQkFEX0lOUFVUX0RBVEE7CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gbWJlZHRsc19jY21fc3RhcnRzKChtYmVkdGxzX2NjbV9jb250ZXh0ICopIGN0eC0+Y2lwaGVyX2N0eCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjY21fc3Rhcl9tb2RlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGl2LCBpdl9sZW4pOworICAgIH0KKyNlbmRpZgorCisgICAgaWYgKGFjdHVhbF9pdl9zaXplICE9IDApIHsKKyAgICAgICAgbWVtY3B5KGN0eC0+aXYsIGl2LCBhY3R1YWxfaXZfc2l6ZSk7CisgICAgICAgIGN0eC0+aXZfc2l6ZSA9IGFjdHVhbF9pdl9zaXplOworICAgIH0KKworICAgIHJldHVybiAwOworfQorCitpbnQgbWJlZHRsc19jaXBoZXJfcmVzZXQobWJlZHRsc19jaXBoZXJfY29udGV4dF90ICpjdHgpCit7CisgICAgaWYgKGN0eC0+Y2lwaGVyX2luZm8gPT0gTlVMTCkgeworICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfQ0lQSEVSX0JBRF9JTlBVVF9EQVRBOworICAgIH0KKworI2lmIGRlZmluZWQoTUJFRFRMU19VU0VfUFNBX0NSWVBUTykgJiYgIWRlZmluZWQoTUJFRFRMU19ERVBSRUNBVEVEX1JFTU9WRUQpCisgICAgaWYgKGN0eC0+cHNhX2VuYWJsZWQgPT0gMSkgeworICAgICAgICAvKiBXZSBkb24ndCBzdXBwb3J0IHJlc2V0dGluZyBQU0EtYmFzZWQKKyAgICAgICAgICogY2lwaGVyIGNvbnRleHRzLCB5ZXQuICovCisgICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9DSVBIRVJfRkVBVFVSRV9VTkFWQUlMQUJMRTsKKyAgICB9CisjZW5kaWYgLyogTUJFRFRMU19VU0VfUFNBX0NSWVBUTyAmJiAhTUJFRFRMU19ERVBSRUNBVEVEX1JFTU9WRUQgKi8KKworICAgIGN0eC0+dW5wcm9jZXNzZWRfbGVuID0gMDsKKworICAgIHJldHVybiAwOworfQorCisjaWYgZGVmaW5lZChNQkVEVExTX0dDTV9DKSB8fCBkZWZpbmVkKE1CRURUTFNfQ0hBQ0hBUE9MWV9DKQoraW50IG1iZWR0bHNfY2lwaGVyX3VwZGF0ZV9hZChtYmVkdGxzX2NpcGhlcl9jb250ZXh0X3QgKmN0eCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdW5zaWduZWQgY2hhciAqYWQsIHNpemVfdCBhZF9sZW4pCit7CisgICAgaWYgKGN0eC0+Y2lwaGVyX2luZm8gPT0gTlVMTCkgeworICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfQ0lQSEVSX0JBRF9JTlBVVF9EQVRBOworICAgIH0KKworI2lmIGRlZmluZWQoTUJFRFRMU19VU0VfUFNBX0NSWVBUTykgJiYgIWRlZmluZWQoTUJFRFRMU19ERVBSRUNBVEVEX1JFTU9WRUQpCisgICAgaWYgKGN0eC0+cHNhX2VuYWJsZWQgPT0gMSkgeworICAgICAgICAvKiBXaGlsZSBQU0EgQ3J5cHRvIGhhcyBhbiBBUEkgZm9yIG11bHRpcGFydAorICAgICAgICAgKiBvcGVyYXRpb25zLCB3ZSBjdXJyZW50bHkgZG9uJ3QgbWFrZSBpdAorICAgICAgICAgKiBhY2Nlc3NpYmxlIHRocm91Z2ggdGhlIGNpcGhlciBsYXllci4gKi8KKyAgICAgICAgcmV0dXJuIE1CRURUTFNfRVJSX0NJUEhFUl9GRUFUVVJFX1VOQVZBSUxBQkxFOworICAgIH0KKyNlbmRpZiAvKiBNQkVEVExTX1VTRV9QU0FfQ1JZUFRPICYmICFNQkVEVExTX0RFUFJFQ0FURURfUkVNT1ZFRCAqLworCisjaWYgZGVmaW5lZChNQkVEVExTX0dDTV9DKQorICAgIGlmIChNQkVEVExTX01PREVfR0NNID09ICgobWJlZHRsc19jaXBoZXJfbW9kZV90KSBjdHgtPmNpcGhlcl9pbmZvLT5tb2RlKSkgeworICAgICAgICByZXR1cm4gbWJlZHRsc19nY21fdXBkYXRlX2FkKChtYmVkdGxzX2djbV9jb250ZXh0ICopIGN0eC0+Y2lwaGVyX2N0eCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhZCwgYWRfbGVuKTsKKyAgICB9CisjZW5kaWYKKworI2lmIGRlZmluZWQoTUJFRFRMU19DSEFDSEFQT0xZX0MpCisgICAgaWYgKE1CRURUTFNfQ0lQSEVSX0NIQUNIQTIwX1BPTFkxMzA1ID09ICgobWJlZHRsc19jaXBoZXJfdHlwZV90KSBjdHgtPmNpcGhlcl9pbmZvLT50eXBlKSkgeworICAgICAgICBpbnQgcmVzdWx0OworICAgICAgICBtYmVkdGxzX2NoYWNoYXBvbHlfbW9kZV90IG1vZGU7CisKKyAgICAgICAgbW9kZSA9IChjdHgtPm9wZXJhdGlvbiA9PSBNQkVEVExTX0VOQ1JZUFQpCisgICAgICAgICAgICAgICAgPyBNQkVEVExTX0NIQUNIQVBPTFlfRU5DUllQVAorICAgICAgICAgICAgICAgIDogTUJFRFRMU19DSEFDSEFQT0xZX0RFQ1JZUFQ7CisKKyAgICAgICAgcmVzdWx0ID0gbWJlZHRsc19jaGFjaGFwb2x5X3N0YXJ0cygobWJlZHRsc19jaGFjaGFwb2x5X2NvbnRleHQgKikgY3R4LT5jaXBoZXJfY3R4LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGN0eC0+aXYsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbW9kZSk7CisgICAgICAgIGlmIChyZXN1bHQgIT0gMCkgeworICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiBtYmVkdGxzX2NoYWNoYXBvbHlfdXBkYXRlX2FhZCgobWJlZHRsc19jaGFjaGFwb2x5X2NvbnRleHQgKikgY3R4LT5jaXBoZXJfY3R4LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWQsIGFkX2xlbik7CisgICAgfQorI2VuZGlmCisKKyAgICByZXR1cm4gTUJFRFRMU19FUlJfQ0lQSEVSX0ZFQVRVUkVfVU5BVkFJTEFCTEU7Cit9CisjZW5kaWYgLyogTUJFRFRMU19HQ01fQyB8fCBNQkVEVExTX0NIQUNIQVBPTFlfQyAqLworCitpbnQgbWJlZHRsc19jaXBoZXJfdXBkYXRlKG1iZWR0bHNfY2lwaGVyX2NvbnRleHRfdCAqY3R4LCBjb25zdCB1bnNpZ25lZCBjaGFyICppbnB1dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IGlsZW4sIHVuc2lnbmVkIGNoYXIgKm91dHB1dCwgc2l6ZV90ICpvbGVuKQoreworICAgIGludCByZXQgPSBNQkVEVExTX0VSUl9FUlJPUl9DT1JSVVBUSU9OX0RFVEVDVEVEOworICAgIHNpemVfdCBibG9ja19zaXplOworCisgICAgaWYgKGN0eC0+Y2lwaGVyX2luZm8gPT0gTlVMTCkgeworICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfQ0lQSEVSX0JBRF9JTlBVVF9EQVRBOworICAgIH0KKworI2lmIGRlZmluZWQoTUJFRFRMU19VU0VfUFNBX0NSWVBUTykgJiYgIWRlZmluZWQoTUJFRFRMU19ERVBSRUNBVEVEX1JFTU9WRUQpCisgICAgaWYgKGN0eC0+cHNhX2VuYWJsZWQgPT0gMSkgeworICAgICAgICAvKiBXaGlsZSBQU0EgQ3J5cHRvIGhhcyBhbiBBUEkgZm9yIG11bHRpcGFydAorICAgICAgICAgKiBvcGVyYXRpb25zLCB3ZSBjdXJyZW50bHkgZG9uJ3QgbWFrZSBpdAorICAgICAgICAgKiBhY2Nlc3NpYmxlIHRocm91Z2ggdGhlIGNpcGhlciBsYXllci4gKi8KKyAgICAgICAgcmV0dXJuIE1CRURUTFNfRVJSX0NJUEhFUl9GRUFUVVJFX1VOQVZBSUxBQkxFOworICAgIH0KKyNlbmRpZiAvKiBNQkVEVExTX1VTRV9QU0FfQ1JZUFRPICYmICFNQkVEVExTX0RFUFJFQ0FURURfUkVNT1ZFRCAqLworCisgICAgKm9sZW4gPSAwOworICAgIGJsb2NrX3NpemUgPSBtYmVkdGxzX2NpcGhlcl9nZXRfYmxvY2tfc2l6ZShjdHgpOworICAgIGlmICgwID09IGJsb2NrX3NpemUpIHsKKyAgICAgICAgcmV0dXJuIE1CRURUTFNfRVJSX0NJUEhFUl9JTlZBTElEX0NPTlRFWFQ7CisgICAgfQorCisgICAgaWYgKCgobWJlZHRsc19jaXBoZXJfbW9kZV90KSBjdHgtPmNpcGhlcl9pbmZvLT5tb2RlKSA9PSBNQkVEVExTX01PREVfRUNCKSB7CisgICAgICAgIGlmIChpbGVuICE9IGJsb2NrX3NpemUpIHsKKyAgICAgICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9DSVBIRVJfRlVMTF9CTE9DS19FWFBFQ1RFRDsKKyAgICAgICAgfQorCisgICAgICAgICpvbGVuID0gaWxlbjsKKworICAgICAgICBpZiAoMCAhPSAocmV0ID0gbWJlZHRsc19jaXBoZXJfZ2V0X2Jhc2UoY3R4LT5jaXBoZXJfaW5mbyktPmVjYl9mdW5jKGN0eC0+Y2lwaGVyX2N0eCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdHgtPm9wZXJhdGlvbiwgaW5wdXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3V0cHV0KSkpIHsKKyAgICAgICAgICAgIHJldHVybiByZXQ7CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gMDsKKyAgICB9CisKKyNpZiBkZWZpbmVkKE1CRURUTFNfR0NNX0MpCisgICAgaWYgKCgobWJlZHRsc19jaXBoZXJfbW9kZV90KSBjdHgtPmNpcGhlcl9pbmZvLT5tb2RlKSA9PSBNQkVEVExTX01PREVfR0NNKSB7CisgICAgICAgIHJldHVybiBtYmVkdGxzX2djbV91cGRhdGUoKG1iZWR0bHNfZ2NtX2NvbnRleHQgKikgY3R4LT5jaXBoZXJfY3R4LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlucHV0LCBpbGVuLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG91dHB1dCwgaWxlbiwgb2xlbik7CisgICAgfQorI2VuZGlmCisKKyNpZiBkZWZpbmVkKE1CRURUTFNfQ0NNX0MpCisgICAgaWYgKCgobWJlZHRsc19jaXBoZXJfbW9kZV90KSBjdHgtPmNpcGhlcl9pbmZvLT5tb2RlKSA9PSBNQkVEVExTX01PREVfQ0NNX1NUQVJfTk9fVEFHKSB7CisgICAgICAgIHJldHVybiBtYmVkdGxzX2NjbV91cGRhdGUoKG1iZWR0bHNfY2NtX2NvbnRleHQgKikgY3R4LT5jaXBoZXJfY3R4LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlucHV0LCBpbGVuLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG91dHB1dCwgaWxlbiwgb2xlbik7CisgICAgfQorI2VuZGlmCisKKyNpZiBkZWZpbmVkKE1CRURUTFNfQ0hBQ0hBUE9MWV9DKQorICAgIGlmICgoKG1iZWR0bHNfY2lwaGVyX3R5cGVfdCkgY3R4LT5jaXBoZXJfaW5mby0+dHlwZSkgPT0gTUJFRFRMU19DSVBIRVJfQ0hBQ0hBMjBfUE9MWTEzMDUpIHsKKyAgICAgICAgKm9sZW4gPSBpbGVuOworICAgICAgICByZXR1cm4gbWJlZHRsc19jaGFjaGFwb2x5X3VwZGF0ZSgobWJlZHRsc19jaGFjaGFwb2x5X2NvbnRleHQgKikgY3R4LT5jaXBoZXJfY3R4LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbGVuLCBpbnB1dCwgb3V0cHV0KTsKKyAgICB9CisjZW5kaWYKKworICAgIGlmIChpbnB1dCA9PSBvdXRwdXQgJiYKKyAgICAgICAgKGN0eC0+dW5wcm9jZXNzZWRfbGVuICE9IDAgfHwgaWxlbiAlIGJsb2NrX3NpemUpKSB7CisgICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9DSVBIRVJfQkFEX0lOUFVUX0RBVEE7CisgICAgfQorCisjaWYgZGVmaW5lZChNQkVEVExTX0NJUEhFUl9NT0RFX0NCQykKKyAgICBpZiAoKChtYmVkdGxzX2NpcGhlcl9tb2RlX3QpIGN0eC0+Y2lwaGVyX2luZm8tPm1vZGUpID09IE1CRURUTFNfTU9ERV9DQkMpIHsKKyAgICAgICAgc2l6ZV90IGNvcHlfbGVuID0gMDsKKworICAgICAgICAvKgorICAgICAgICAgKiBJZiB0aGVyZSBpcyBub3QgZW5vdWdoIGRhdGEgZm9yIGEgZnVsbCBibG9jaywgY2FjaGUgaXQuCisgICAgICAgICAqLworICAgICAgICBpZiAoKGN0eC0+b3BlcmF0aW9uID09IE1CRURUTFNfREVDUllQVCAmJiBOVUxMICE9IGN0eC0+YWRkX3BhZGRpbmcgJiYKKyAgICAgICAgICAgICBpbGVuIDw9IGJsb2NrX3NpemUgLSBjdHgtPnVucHJvY2Vzc2VkX2xlbikgfHwKKyAgICAgICAgICAgIChjdHgtPm9wZXJhdGlvbiA9PSBNQkVEVExTX0RFQ1JZUFQgJiYgTlVMTCA9PSBjdHgtPmFkZF9wYWRkaW5nICYmCisgICAgICAgICAgICAgaWxlbiA8IGJsb2NrX3NpemUgLSBjdHgtPnVucHJvY2Vzc2VkX2xlbikgfHwKKyAgICAgICAgICAgIChjdHgtPm9wZXJhdGlvbiA9PSBNQkVEVExTX0VOQ1JZUFQgJiYKKyAgICAgICAgICAgICBpbGVuIDwgYmxvY2tfc2l6ZSAtIGN0eC0+dW5wcm9jZXNzZWRfbGVuKSkgeworICAgICAgICAgICAgbWVtY3B5KCYoY3R4LT51bnByb2Nlc3NlZF9kYXRhW2N0eC0+dW5wcm9jZXNzZWRfbGVuXSksIGlucHV0LAorICAgICAgICAgICAgICAgICAgIGlsZW4pOworCisgICAgICAgICAgICBjdHgtPnVucHJvY2Vzc2VkX2xlbiArPSBpbGVuOworICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIH0KKworICAgICAgICAvKgorICAgICAgICAgKiBQcm9jZXNzIGNhY2hlZCBkYXRhIGZpcnN0CisgICAgICAgICAqLworICAgICAgICBpZiAoMCAhPSBjdHgtPnVucHJvY2Vzc2VkX2xlbikgeworICAgICAgICAgICAgY29weV9sZW4gPSBibG9ja19zaXplIC0gY3R4LT51bnByb2Nlc3NlZF9sZW47CisKKyAgICAgICAgICAgIG1lbWNweSgmKGN0eC0+dW5wcm9jZXNzZWRfZGF0YVtjdHgtPnVucHJvY2Vzc2VkX2xlbl0pLCBpbnB1dCwKKyAgICAgICAgICAgICAgICAgICBjb3B5X2xlbik7CisKKyAgICAgICAgICAgIGlmICgwICE9IChyZXQgPSBtYmVkdGxzX2NpcGhlcl9nZXRfYmFzZShjdHgtPmNpcGhlcl9pbmZvKS0+Y2JjX2Z1bmMoY3R4LT5jaXBoZXJfY3R4LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdHgtPm9wZXJhdGlvbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmxvY2tfc2l6ZSwgY3R4LT5pdiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3R4LT4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5wcm9jZXNzZWRfZGF0YSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3V0cHV0KSkpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gcmV0OworICAgICAgICAgICAgfQorCisgICAgICAgICAgICAqb2xlbiArPSBibG9ja19zaXplOworICAgICAgICAgICAgb3V0cHV0ICs9IGJsb2NrX3NpemU7CisgICAgICAgICAgICBjdHgtPnVucHJvY2Vzc2VkX2xlbiA9IDA7CisKKyAgICAgICAgICAgIGlucHV0ICs9IGNvcHlfbGVuOworICAgICAgICAgICAgaWxlbiAtPSBjb3B5X2xlbjsKKyAgICAgICAgfQorCisgICAgICAgIC8qCisgICAgICAgICAqIENhY2hlIGZpbmFsLCBpbmNvbXBsZXRlIGJsb2NrCisgICAgICAgICAqLworICAgICAgICBpZiAoMCAhPSBpbGVuKSB7CisgICAgICAgICAgICAvKiBFbmNyeXB0aW9uOiBvbmx5IGNhY2hlIHBhcnRpYWwgYmxvY2tzCisgICAgICAgICAgICAgKiBEZWNyeXB0aW9uIHcvIHBhZGRpbmc6IGFsd2F5cyBrZWVwIGF0IGxlYXN0IG9uZSB3aG9sZSBibG9jaworICAgICAgICAgICAgICogRGVjcnlwdGlvbiB3L28gcGFkZGluZzogb25seSBjYWNoZSBwYXJ0aWFsIGJsb2NrcworICAgICAgICAgICAgICovCisgICAgICAgICAgICBjb3B5X2xlbiA9IGlsZW4gJSBibG9ja19zaXplOworICAgICAgICAgICAgaWYgKGNvcHlfbGVuID09IDAgJiYKKyAgICAgICAgICAgICAgICBjdHgtPm9wZXJhdGlvbiA9PSBNQkVEVExTX0RFQ1JZUFQgJiYKKyAgICAgICAgICAgICAgICBOVUxMICE9IGN0eC0+YWRkX3BhZGRpbmcpIHsKKyAgICAgICAgICAgICAgICBjb3B5X2xlbiA9IGJsb2NrX3NpemU7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIG1lbWNweShjdHgtPnVucHJvY2Vzc2VkX2RhdGEsICYoaW5wdXRbaWxlbiAtIGNvcHlfbGVuXSksCisgICAgICAgICAgICAgICAgICAgY29weV9sZW4pOworCisgICAgICAgICAgICBjdHgtPnVucHJvY2Vzc2VkX2xlbiArPSBjb3B5X2xlbjsKKyAgICAgICAgICAgIGlsZW4gLT0gY29weV9sZW47CisgICAgICAgIH0KKworICAgICAgICAvKgorICAgICAgICAgKiBQcm9jZXNzIHJlbWFpbmluZyBmdWxsIGJsb2NrcworICAgICAgICAgKi8KKyAgICAgICAgaWYgKGlsZW4pIHsKKyAgICAgICAgICAgIGlmICgwICE9IChyZXQgPSBtYmVkdGxzX2NpcGhlcl9nZXRfYmFzZShjdHgtPmNpcGhlcl9pbmZvKS0+Y2JjX2Z1bmMoY3R4LT5jaXBoZXJfY3R4LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdHgtPm9wZXJhdGlvbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWxlbiwgY3R4LT5pdiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5wdXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG91dHB1dCkpKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIHJldDsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgKm9sZW4gKz0gaWxlbjsKKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiAwOworICAgIH0KKyNlbmRpZiAvKiBNQkVEVExTX0NJUEhFUl9NT0RFX0NCQyAqLworCisjaWYgZGVmaW5lZChNQkVEVExTX0NJUEhFUl9NT0RFX0NGQikKKyAgICBpZiAoKChtYmVkdGxzX2NpcGhlcl9tb2RlX3QpIGN0eC0+Y2lwaGVyX2luZm8tPm1vZGUpID09IE1CRURUTFNfTU9ERV9DRkIpIHsKKyAgICAgICAgaWYgKDAgIT0gKHJldCA9IG1iZWR0bHNfY2lwaGVyX2dldF9iYXNlKGN0eC0+Y2lwaGVyX2luZm8pLT5jZmJfZnVuYyhjdHgtPmNpcGhlcl9jdHgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3R4LT5vcGVyYXRpb24sIGlsZW4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJmN0eC0+dW5wcm9jZXNzZWRfbGVuLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGN0eC0+aXYsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5wdXQsIG91dHB1dCkpKSB7CisgICAgICAgICAgICByZXR1cm4gcmV0OworICAgICAgICB9CisKKyAgICAgICAgKm9sZW4gPSBpbGVuOworCisgICAgICAgIHJldHVybiAwOworICAgIH0KKyNlbmRpZiAvKiBNQkVEVExTX0NJUEhFUl9NT0RFX0NGQiAqLworCisjaWYgZGVmaW5lZChNQkVEVExTX0NJUEhFUl9NT0RFX09GQikKKyAgICBpZiAoKChtYmVkdGxzX2NpcGhlcl9tb2RlX3QpIGN0eC0+Y2lwaGVyX2luZm8tPm1vZGUpID09IE1CRURUTFNfTU9ERV9PRkIpIHsKKyAgICAgICAgaWYgKDAgIT0gKHJldCA9IG1iZWR0bHNfY2lwaGVyX2dldF9iYXNlKGN0eC0+Y2lwaGVyX2luZm8pLT5vZmJfZnVuYyhjdHgtPmNpcGhlcl9jdHgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWxlbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmY3R4LT51bnByb2Nlc3NlZF9sZW4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3R4LT5pdiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnB1dCwgb3V0cHV0KSkpIHsKKyAgICAgICAgICAgIHJldHVybiByZXQ7CisgICAgICAgIH0KKworICAgICAgICAqb2xlbiA9IGlsZW47CisKKyAgICAgICAgcmV0dXJuIDA7CisgICAgfQorI2VuZGlmIC8qIE1CRURUTFNfQ0lQSEVSX01PREVfT0ZCICovCisKKyNpZiBkZWZpbmVkKE1CRURUTFNfQ0lQSEVSX01PREVfQ1RSKQorICAgIGlmICgoKG1iZWR0bHNfY2lwaGVyX21vZGVfdCkgY3R4LT5jaXBoZXJfaW5mby0+bW9kZSkgPT0gTUJFRFRMU19NT0RFX0NUUikgeworICAgICAgICBpZiAoMCAhPSAocmV0ID0gbWJlZHRsc19jaXBoZXJfZ2V0X2Jhc2UoY3R4LT5jaXBoZXJfaW5mbyktPmN0cl9mdW5jKGN0eC0+Y2lwaGVyX2N0eCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbGVuLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZjdHgtPnVucHJvY2Vzc2VkX2xlbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdHgtPml2LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGN0eC0+dW5wcm9jZXNzZWRfZGF0YSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnB1dCwgb3V0cHV0KSkpIHsKKyAgICAgICAgICAgIHJldHVybiByZXQ7CisgICAgICAgIH0KKworICAgICAgICAqb2xlbiA9IGlsZW47CisKKyAgICAgICAgcmV0dXJuIDA7CisgICAgfQorI2VuZGlmIC8qIE1CRURUTFNfQ0lQSEVSX01PREVfQ1RSICovCisKKyNpZiBkZWZpbmVkKE1CRURUTFNfQ0lQSEVSX01PREVfWFRTKQorICAgIGlmICgoKG1iZWR0bHNfY2lwaGVyX21vZGVfdCkgY3R4LT5jaXBoZXJfaW5mby0+bW9kZSkgPT0gTUJFRFRMU19NT0RFX1hUUykgeworICAgICAgICBpZiAoY3R4LT51bnByb2Nlc3NlZF9sZW4gPiAwKSB7CisgICAgICAgICAgICAvKiBXZSBjYW4gb25seSBwcm9jZXNzIGFuIGVudGlyZSBkYXRhIHVuaXQgYXQgYSB0aW1lLiAqLworICAgICAgICAgICAgcmV0dXJuIE1CRURUTFNfRVJSX0NJUEhFUl9GRUFUVVJFX1VOQVZBSUxBQkxFOworICAgICAgICB9CisKKyAgICAgICAgcmV0ID0gbWJlZHRsc19jaXBoZXJfZ2V0X2Jhc2UoY3R4LT5jaXBoZXJfaW5mbyktPnh0c19mdW5jKGN0eC0+Y2lwaGVyX2N0eCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGN0eC0+b3BlcmF0aW9uLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWxlbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGN0eC0+aXYsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnB1dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG91dHB1dCk7CisgICAgICAgIGlmIChyZXQgIT0gMCkgeworICAgICAgICAgICAgcmV0dXJuIHJldDsKKyAgICAgICAgfQorCisgICAgICAgICpvbGVuID0gaWxlbjsKKworICAgICAgICByZXR1cm4gMDsKKyAgICB9CisjZW5kaWYgLyogTUJFRFRMU19DSVBIRVJfTU9ERV9YVFMgKi8KKworI2lmIGRlZmluZWQoTUJFRFRMU19DSVBIRVJfTU9ERV9TVFJFQU0pCisgICAgaWYgKCgobWJlZHRsc19jaXBoZXJfbW9kZV90KSBjdHgtPmNpcGhlcl9pbmZvLT5tb2RlKSA9PSBNQkVEVExTX01PREVfU1RSRUFNKSB7CisgICAgICAgIGlmICgwICE9IChyZXQgPSBtYmVkdGxzX2NpcGhlcl9nZXRfYmFzZShjdHgtPmNpcGhlcl9pbmZvKS0+c3RyZWFtX2Z1bmMoY3R4LT5jaXBoZXJfY3R4LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlsZW4sIGlucHV0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG91dHB1dCkpKSB7CisgICAgICAgICAgICByZXR1cm4gcmV0OworICAgICAgICB9CisKKyAgICAgICAgKm9sZW4gPSBpbGVuOworCisgICAgICAgIHJldHVybiAwOworICAgIH0KKyNlbmRpZiAvKiBNQkVEVExTX0NJUEhFUl9NT0RFX1NUUkVBTSAqLworCisgICAgcmV0dXJuIE1CRURUTFNfRVJSX0NJUEhFUl9GRUFUVVJFX1VOQVZBSUxBQkxFOworfQorCisjaWYgZGVmaW5lZChNQkVEVExTX0NJUEhFUl9NT0RFX1dJVEhfUEFERElORykKKyNpZiBkZWZpbmVkKE1CRURUTFNfQ0lQSEVSX1BBRERJTkdfUEtDUzcpCisvKgorICogUEtDUzcgKGFuZCBQS0NTNSkgcGFkZGluZzogZmlsbCB3aXRoIGxsIGJ5dGVzLCB3aXRoIGxsID0gcGFkZGluZ19sZW4KKyAqLworc3RhdGljIHZvaWQgYWRkX3BrY3NfcGFkZGluZyh1bnNpZ25lZCBjaGFyICpvdXRwdXQsIHNpemVfdCBvdXRwdXRfbGVuLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgZGF0YV9sZW4pCit7CisgICAgc2l6ZV90IHBhZGRpbmdfbGVuID0gb3V0cHV0X2xlbiAtIGRhdGFfbGVuOworICAgIHVuc2lnbmVkIGNoYXIgaTsKKworICAgIGZvciAoaSA9IDA7IGkgPCBwYWRkaW5nX2xlbjsgaSsrKSB7CisgICAgICAgIG91dHB1dFtkYXRhX2xlbiArIGldID0gKHVuc2lnbmVkIGNoYXIpIHBhZGRpbmdfbGVuOworICAgIH0KK30KKworc3RhdGljIGludCBnZXRfcGtjc19wYWRkaW5nKHVuc2lnbmVkIGNoYXIgKmlucHV0LCBzaXplX3QgaW5wdXRfbGVuLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCAqZGF0YV9sZW4pCit7CisgICAgc2l6ZV90IGksIHBhZF9pZHg7CisgICAgdW5zaWduZWQgY2hhciBwYWRkaW5nX2xlbjsKKworICAgIGlmIChOVUxMID09IGlucHV0IHx8IE5VTEwgPT0gZGF0YV9sZW4pIHsKKyAgICAgICAgcmV0dXJuIE1CRURUTFNfRVJSX0NJUEhFUl9CQURfSU5QVVRfREFUQTsKKyAgICB9CisKKyAgICBwYWRkaW5nX2xlbiA9IGlucHV0W2lucHV0X2xlbiAtIDFdOworICAgIGlmIChwYWRkaW5nX2xlbiA9PSAwIHx8IHBhZGRpbmdfbGVuID4gaW5wdXRfbGVuKSB7CisgICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9DSVBIRVJfSU5WQUxJRF9QQURESU5HOworICAgIH0KKyAgICAqZGF0YV9sZW4gPSBpbnB1dF9sZW4gLSBwYWRkaW5nX2xlbjsKKworICAgIG1iZWR0bHNfY3RfY29uZGl0aW9uX3QgYmFkID0gbWJlZHRsc19jdF91aW50X2d0KHBhZGRpbmdfbGVuLCBpbnB1dF9sZW4pOworICAgIGJhZCA9IG1iZWR0bHNfY3RfYm9vbF9vcihiYWQsIG1iZWR0bHNfY3RfdWludF9lcShwYWRkaW5nX2xlbiwgMCkpOworCisgICAgLyogVGhlIG51bWJlciBvZiBieXRlcyBjaGVja2VkIG11c3QgYmUgaW5kZXBlbmRlbnQgb2YgcGFkZGluZ19sZW4sCisgICAgICogc28gcGljayBpbnB1dF9sZW4sIHdoaWNoIGlzIHVzdWFsbHkgOCBvciAxNiAob25lIGJsb2NrKSAqLworICAgIHBhZF9pZHggPSBpbnB1dF9sZW4gLSBwYWRkaW5nX2xlbjsKKyAgICBmb3IgKGkgPSAwOyBpIDwgaW5wdXRfbGVuOyBpKyspIHsKKyAgICAgICAgbWJlZHRsc19jdF9jb25kaXRpb25fdCBpbl9wYWRkaW5nID0gbWJlZHRsc19jdF91aW50X2dlKGksIHBhZF9pZHgpOworICAgICAgICBtYmVkdGxzX2N0X2NvbmRpdGlvbl90IGRpZmZlcmVudCAgPSBtYmVkdGxzX2N0X3VpbnRfbmUoaW5wdXRbaV0sIHBhZGRpbmdfbGVuKTsKKyAgICAgICAgYmFkID0gbWJlZHRsc19jdF9ib29sX29yKGJhZCwgbWJlZHRsc19jdF9ib29sX2FuZChpbl9wYWRkaW5nLCBkaWZmZXJlbnQpKTsKKyAgICB9CisKKyAgICByZXR1cm4gbWJlZHRsc19jdF9lcnJvcl9pZl9lbHNlXzAoYmFkLCBNQkVEVExTX0VSUl9DSVBIRVJfSU5WQUxJRF9QQURESU5HKTsKK30KKyNlbmRpZiAvKiBNQkVEVExTX0NJUEhFUl9QQURESU5HX1BLQ1M3ICovCisKKyNpZiBkZWZpbmVkKE1CRURUTFNfQ0lQSEVSX1BBRERJTkdfT05FX0FORF9aRVJPUykKKy8qCisgKiBPbmUgYW5kIHplcm9zIHBhZGRpbmc6IGZpbGwgd2l0aCA4MCAwMCAuLi4gMDAKKyAqLworc3RhdGljIHZvaWQgYWRkX29uZV9hbmRfemVyb3NfcGFkZGluZyh1bnNpZ25lZCBjaGFyICpvdXRwdXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBvdXRwdXRfbGVuLCBzaXplX3QgZGF0YV9sZW4pCit7CisgICAgc2l6ZV90IHBhZGRpbmdfbGVuID0gb3V0cHV0X2xlbiAtIGRhdGFfbGVuOworICAgIHVuc2lnbmVkIGNoYXIgaSA9IDA7CisKKyAgICBvdXRwdXRbZGF0YV9sZW5dID0gMHg4MDsKKyAgICBmb3IgKGkgPSAxOyBpIDwgcGFkZGluZ19sZW47IGkrKykgeworICAgICAgICBvdXRwdXRbZGF0YV9sZW4gKyBpXSA9IDB4MDA7CisgICAgfQorfQorCitzdGF0aWMgaW50IGdldF9vbmVfYW5kX3plcm9zX3BhZGRpbmcodW5zaWduZWQgY2hhciAqaW5wdXQsIHNpemVfdCBpbnB1dF9sZW4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90ICpkYXRhX2xlbikKK3sKKyAgICBpZiAoTlVMTCA9PSBpbnB1dCB8fCBOVUxMID09IGRhdGFfbGVuKSB7CisgICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9DSVBIRVJfQkFEX0lOUFVUX0RBVEE7CisgICAgfQorCisgICAgbWJlZHRsc19jdF9jb25kaXRpb25fdCBpbl9wYWRkaW5nID0gTUJFRFRMU19DVF9UUlVFOworICAgIG1iZWR0bHNfY3RfY29uZGl0aW9uX3QgYmFkID0gTUJFRFRMU19DVF9UUlVFOworCisgICAgKmRhdGFfbGVuID0gMDsKKworICAgIGZvciAocHRyZGlmZl90IGkgPSAocHRyZGlmZl90KSAoaW5wdXRfbGVuKSAtIDE7IGkgPj0gMDsgaS0tKSB7CisgICAgICAgIG1iZWR0bHNfY3RfY29uZGl0aW9uX3QgaXNfbm9uemVybyA9IG1iZWR0bHNfY3RfYm9vbChpbnB1dFtpXSk7CisKKyAgICAgICAgbWJlZHRsc19jdF9jb25kaXRpb25fdCBoaXRfZmlyc3Rfbm9uemVybyA9IG1iZWR0bHNfY3RfYm9vbF9hbmQoaXNfbm9uemVybywgaW5fcGFkZGluZyk7CisKKyAgICAgICAgKmRhdGFfbGVuID0gbWJlZHRsc19jdF9zaXplX2lmKGhpdF9maXJzdF9ub256ZXJvLCBpLCAqZGF0YV9sZW4pOworCisgICAgICAgIGJhZCA9IG1iZWR0bHNfY3RfYm9vbF9pZihoaXRfZmlyc3Rfbm9uemVybywgbWJlZHRsc19jdF91aW50X25lKGlucHV0W2ldLCAweDgwKSwgYmFkKTsKKworICAgICAgICBpbl9wYWRkaW5nID0gbWJlZHRsc19jdF9ib29sX2FuZChpbl9wYWRkaW5nLCBtYmVkdGxzX2N0X2Jvb2xfbm90KGlzX25vbnplcm8pKTsKKyAgICB9CisKKyAgICByZXR1cm4gbWJlZHRsc19jdF9lcnJvcl9pZl9lbHNlXzAoYmFkLCBNQkVEVExTX0VSUl9DSVBIRVJfSU5WQUxJRF9QQURESU5HKTsKK30KKyNlbmRpZiAvKiBNQkVEVExTX0NJUEhFUl9QQURESU5HX09ORV9BTkRfWkVST1MgKi8KKworI2lmIGRlZmluZWQoTUJFRFRMU19DSVBIRVJfUEFERElOR19aRVJPU19BTkRfTEVOKQorLyoKKyAqIFplcm9zIGFuZCBsZW4gcGFkZGluZzogZmlsbCB3aXRoIDAwIC4uLiAwMCBsbCwgd2hlcmUgbGwgaXMgcGFkZGluZyBsZW5ndGgKKyAqLworc3RhdGljIHZvaWQgYWRkX3plcm9zX2FuZF9sZW5fcGFkZGluZyh1bnNpZ25lZCBjaGFyICpvdXRwdXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBvdXRwdXRfbGVuLCBzaXplX3QgZGF0YV9sZW4pCit7CisgICAgc2l6ZV90IHBhZGRpbmdfbGVuID0gb3V0cHV0X2xlbiAtIGRhdGFfbGVuOworICAgIHVuc2lnbmVkIGNoYXIgaSA9IDA7CisKKyAgICBmb3IgKGkgPSAxOyBpIDwgcGFkZGluZ19sZW47IGkrKykgeworICAgICAgICBvdXRwdXRbZGF0YV9sZW4gKyBpIC0gMV0gPSAweDAwOworICAgIH0KKyAgICBvdXRwdXRbb3V0cHV0X2xlbiAtIDFdID0gKHVuc2lnbmVkIGNoYXIpIHBhZGRpbmdfbGVuOworfQorCitzdGF0aWMgaW50IGdldF96ZXJvc19hbmRfbGVuX3BhZGRpbmcodW5zaWduZWQgY2hhciAqaW5wdXQsIHNpemVfdCBpbnB1dF9sZW4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90ICpkYXRhX2xlbikKK3sKKyAgICBzaXplX3QgaSwgcGFkX2lkeDsKKyAgICB1bnNpZ25lZCBjaGFyIHBhZGRpbmdfbGVuOworICAgIG1iZWR0bHNfY3RfY29uZGl0aW9uX3QgYmFkOworCisgICAgaWYgKE5VTEwgPT0gaW5wdXQgfHwgTlVMTCA9PSBkYXRhX2xlbikgeworICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfQ0lQSEVSX0JBRF9JTlBVVF9EQVRBOworICAgIH0KKworICAgIHBhZGRpbmdfbGVuID0gaW5wdXRbaW5wdXRfbGVuIC0gMV07CisgICAgKmRhdGFfbGVuID0gaW5wdXRfbGVuIC0gcGFkZGluZ19sZW47CisKKyAgICAvKiBBdm9pZCBsb2dpY2FsIHx8IHNpbmNlIGl0IHJlc3VsdHMgaW4gYSBicmFuY2ggKi8KKyAgICBiYWQgPSBtYmVkdGxzX2N0X3VpbnRfZ3QocGFkZGluZ19sZW4sIGlucHV0X2xlbik7CisgICAgYmFkID0gbWJlZHRsc19jdF9ib29sX29yKGJhZCwgbWJlZHRsc19jdF91aW50X2VxKHBhZGRpbmdfbGVuLCAwKSk7CisKKyAgICAvKiBUaGUgbnVtYmVyIG9mIGJ5dGVzIGNoZWNrZWQgbXVzdCBiZSBpbmRlcGVuZGVudCBvZiBwYWRkaW5nX2xlbiAqLworICAgIHBhZF9pZHggPSBpbnB1dF9sZW4gLSBwYWRkaW5nX2xlbjsKKyAgICBmb3IgKGkgPSAwOyBpIDwgaW5wdXRfbGVuIC0gMTsgaSsrKSB7CisgICAgICAgIG1iZWR0bHNfY3RfY29uZGl0aW9uX3QgaXNfcGFkZGluZyA9IG1iZWR0bHNfY3RfdWludF9nZShpLCBwYWRfaWR4KTsKKyAgICAgICAgbWJlZHRsc19jdF9jb25kaXRpb25fdCBub256ZXJvX3BhZF9ieXRlOworICAgICAgICBub256ZXJvX3BhZF9ieXRlID0gbWJlZHRsc19jdF9ib29sX2lmX2Vsc2VfMChpc19wYWRkaW5nLCBtYmVkdGxzX2N0X2Jvb2woaW5wdXRbaV0pKTsKKyAgICAgICAgYmFkID0gbWJlZHRsc19jdF9ib29sX29yKGJhZCwgbm9uemVyb19wYWRfYnl0ZSk7CisgICAgfQorCisgICAgcmV0dXJuIG1iZWR0bHNfY3RfZXJyb3JfaWZfZWxzZV8wKGJhZCwgTUJFRFRMU19FUlJfQ0lQSEVSX0lOVkFMSURfUEFERElORyk7Cit9CisjZW5kaWYgLyogTUJFRFRMU19DSVBIRVJfUEFERElOR19aRVJPU19BTkRfTEVOICovCisKKyNpZiBkZWZpbmVkKE1CRURUTFNfQ0lQSEVSX1BBRERJTkdfWkVST1MpCisvKgorICogWmVybyBwYWRkaW5nOiBmaWxsIHdpdGggMDAgLi4uIDAwCisgKi8KK3N0YXRpYyB2b2lkIGFkZF96ZXJvc19wYWRkaW5nKHVuc2lnbmVkIGNoYXIgKm91dHB1dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBvdXRwdXRfbGVuLCBzaXplX3QgZGF0YV9sZW4pCit7CisgICAgbWVtc2V0KG91dHB1dCArIGRhdGFfbGVuLCAwLCBvdXRwdXRfbGVuIC0gZGF0YV9sZW4pOworfQorCitzdGF0aWMgaW50IGdldF96ZXJvc19wYWRkaW5nKHVuc2lnbmVkIGNoYXIgKmlucHV0LCBzaXplX3QgaW5wdXRfbGVuLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgKmRhdGFfbGVuKQoreworICAgIHNpemVfdCBpOworICAgIG1iZWR0bHNfY3RfY29uZGl0aW9uX3QgZG9uZSA9IE1CRURUTFNfQ1RfRkFMU0UsIHByZXZfZG9uZTsKKworICAgIGlmIChOVUxMID09IGlucHV0IHx8IE5VTEwgPT0gZGF0YV9sZW4pIHsKKyAgICAgICAgcmV0dXJuIE1CRURUTFNfRVJSX0NJUEhFUl9CQURfSU5QVVRfREFUQTsKKyAgICB9CisKKyAgICAqZGF0YV9sZW4gPSAwOworICAgIGZvciAoaSA9IGlucHV0X2xlbjsgaSA+IDA7IGktLSkgeworICAgICAgICBwcmV2X2RvbmUgPSBkb25lOworICAgICAgICBkb25lID0gbWJlZHRsc19jdF9ib29sX29yKGRvbmUsIG1iZWR0bHNfY3RfdWludF9uZShpbnB1dFtpLTFdLCAwKSk7CisgICAgICAgICpkYXRhX2xlbiA9IG1iZWR0bHNfY3Rfc2l6ZV9pZihtYmVkdGxzX2N0X2Jvb2xfbmUoZG9uZSwgcHJldl9kb25lKSwgaSwgKmRhdGFfbGVuKTsKKyAgICB9CisKKyAgICByZXR1cm4gMDsKK30KKyNlbmRpZiAvKiBNQkVEVExTX0NJUEhFUl9QQURESU5HX1pFUk9TICovCisKKy8qCisgKiBObyBwYWRkaW5nOiBkb24ndCBwYWQgOikKKyAqCisgKiBUaGVyZSBpcyBubyBhZGRfcGFkZGluZyBmdW5jdGlvbiAoY2hlY2sgZm9yIE5VTEwgaW4gbWJlZHRsc19jaXBoZXJfZmluaXNoKQorICogYnV0IGEgdHJpdmlhbCBnZXRfcGFkZGluZyBmdW5jdGlvbgorICovCitzdGF0aWMgaW50IGdldF9ub19wYWRkaW5nKHVuc2lnbmVkIGNoYXIgKmlucHV0LCBzaXplX3QgaW5wdXRfbGVuLAorICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgKmRhdGFfbGVuKQoreworICAgIGlmIChOVUxMID09IGlucHV0IHx8IE5VTEwgPT0gZGF0YV9sZW4pIHsKKyAgICAgICAgcmV0dXJuIE1CRURUTFNfRVJSX0NJUEhFUl9CQURfSU5QVVRfREFUQTsKKyAgICB9CisKKyAgICAqZGF0YV9sZW4gPSBpbnB1dF9sZW47CisKKyAgICByZXR1cm4gMDsKK30KKyNlbmRpZiAvKiBNQkVEVExTX0NJUEhFUl9NT0RFX1dJVEhfUEFERElORyAqLworCitpbnQgbWJlZHRsc19jaXBoZXJfZmluaXNoKG1iZWR0bHNfY2lwaGVyX2NvbnRleHRfdCAqY3R4LAorICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBjaGFyICpvdXRwdXQsIHNpemVfdCAqb2xlbikKK3sKKyAgICBpZiAoY3R4LT5jaXBoZXJfaW5mbyA9PSBOVUxMKSB7CisgICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9DSVBIRVJfQkFEX0lOUFVUX0RBVEE7CisgICAgfQorCisjaWYgZGVmaW5lZChNQkVEVExTX1VTRV9QU0FfQ1JZUFRPKSAmJiAhZGVmaW5lZChNQkVEVExTX0RFUFJFQ0FURURfUkVNT1ZFRCkKKyAgICBpZiAoY3R4LT5wc2FfZW5hYmxlZCA9PSAxKSB7CisgICAgICAgIC8qIFdoaWxlIFBTQSBDcnlwdG8gaGFzIGFuIEFQSSBmb3IgbXVsdGlwYXJ0CisgICAgICAgICAqIG9wZXJhdGlvbnMsIHdlIGN1cnJlbnRseSBkb24ndCBtYWtlIGl0CisgICAgICAgICAqIGFjY2Vzc2libGUgdGhyb3VnaCB0aGUgY2lwaGVyIGxheWVyLiAqLworICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfQ0lQSEVSX0ZFQVRVUkVfVU5BVkFJTEFCTEU7CisgICAgfQorI2VuZGlmIC8qIE1CRURUTFNfVVNFX1BTQV9DUllQVE8gJiYgIU1CRURUTFNfREVQUkVDQVRFRF9SRU1PVkVEICovCisKKyAgICAqb2xlbiA9IDA7CisKKyNpZiBkZWZpbmVkKE1CRURUTFNfQ0lQSEVSX01PREVfV0lUSF9QQURESU5HKQorICAgIC8qIENCQyBtb2RlIHJlcXVpcmVzIHBhZGRpbmcgc28gd2UgbWFrZSBzdXJlIGEgY2FsbCB0bworICAgICAqIG1iZWR0bHNfY2lwaGVyX3NldF9wYWRkaW5nX21vZGUgaGFzIGJlZW4gZG9uZSBzdWNjZXNzZnVsbHkuICovCisgICAgaWYgKE1CRURUTFNfTU9ERV9DQkMgPT0gKChtYmVkdGxzX2NpcGhlcl9tb2RlX3QpIGN0eC0+Y2lwaGVyX2luZm8tPm1vZGUpKSB7CisgICAgICAgIGlmIChjdHgtPmdldF9wYWRkaW5nID09IE5VTEwpIHsKKyAgICAgICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9DSVBIRVJfQkFEX0lOUFVUX0RBVEE7CisgICAgICAgIH0KKyAgICB9CisjZW5kaWYKKworICAgIGlmIChNQkVEVExTX01PREVfQ0ZCID09ICgobWJlZHRsc19jaXBoZXJfbW9kZV90KSBjdHgtPmNpcGhlcl9pbmZvLT5tb2RlKSB8fAorICAgICAgICBNQkVEVExTX01PREVfT0ZCID09ICgobWJlZHRsc19jaXBoZXJfbW9kZV90KSBjdHgtPmNpcGhlcl9pbmZvLT5tb2RlKSB8fAorICAgICAgICBNQkVEVExTX01PREVfQ1RSID09ICgobWJlZHRsc19jaXBoZXJfbW9kZV90KSBjdHgtPmNpcGhlcl9pbmZvLT5tb2RlKSB8fAorICAgICAgICBNQkVEVExTX01PREVfR0NNID09ICgobWJlZHRsc19jaXBoZXJfbW9kZV90KSBjdHgtPmNpcGhlcl9pbmZvLT5tb2RlKSB8fAorICAgICAgICBNQkVEVExTX01PREVfQ0NNX1NUQVJfTk9fVEFHID09ICgobWJlZHRsc19jaXBoZXJfbW9kZV90KSBjdHgtPmNpcGhlcl9pbmZvLT5tb2RlKSB8fAorICAgICAgICBNQkVEVExTX01PREVfWFRTID09ICgobWJlZHRsc19jaXBoZXJfbW9kZV90KSBjdHgtPmNpcGhlcl9pbmZvLT5tb2RlKSB8fAorICAgICAgICBNQkVEVExTX01PREVfU1RSRUFNID09ICgobWJlZHRsc19jaXBoZXJfbW9kZV90KSBjdHgtPmNpcGhlcl9pbmZvLT5tb2RlKSkgeworICAgICAgICByZXR1cm4gMDsKKyAgICB9CisKKyAgICBpZiAoKE1CRURUTFNfQ0lQSEVSX0NIQUNIQTIwICAgICAgICAgID09ICgobWJlZHRsc19jaXBoZXJfdHlwZV90KSBjdHgtPmNpcGhlcl9pbmZvLT50eXBlKSkgfHwKKyAgICAgICAgKE1CRURUTFNfQ0lQSEVSX0NIQUNIQTIwX1BPTFkxMzA1ID09ICgobWJlZHRsc19jaXBoZXJfdHlwZV90KSBjdHgtPmNpcGhlcl9pbmZvLT50eXBlKSkpIHsKKyAgICAgICAgcmV0dXJuIDA7CisgICAgfQorCisgICAgaWYgKE1CRURUTFNfTU9ERV9FQ0IgPT0gKChtYmVkdGxzX2NpcGhlcl9tb2RlX3QpIGN0eC0+Y2lwaGVyX2luZm8tPm1vZGUpKSB7CisgICAgICAgIGlmIChjdHgtPnVucHJvY2Vzc2VkX2xlbiAhPSAwKSB7CisgICAgICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfQ0lQSEVSX0ZVTExfQkxPQ0tfRVhQRUNURUQ7CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gMDsKKyAgICB9CisKKyNpZiBkZWZpbmVkKE1CRURUTFNfQ0lQSEVSX01PREVfQ0JDKQorICAgIGlmIChNQkVEVExTX01PREVfQ0JDID09ICgobWJlZHRsc19jaXBoZXJfbW9kZV90KSBjdHgtPmNpcGhlcl9pbmZvLT5tb2RlKSkgeworICAgICAgICBpbnQgcmV0ID0gMDsKKworICAgICAgICBpZiAoTUJFRFRMU19FTkNSWVBUID09IGN0eC0+b3BlcmF0aW9uKSB7CisgICAgICAgICAgICAvKiBjaGVjayBmb3IgJ25vIHBhZGRpbmcnIG1vZGUgKi8KKyAgICAgICAgICAgIGlmIChOVUxMID09IGN0eC0+YWRkX3BhZGRpbmcpIHsKKyAgICAgICAgICAgICAgICBpZiAoMCAhPSBjdHgtPnVucHJvY2Vzc2VkX2xlbikgeworICAgICAgICAgICAgICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfQ0lQSEVSX0ZVTExfQkxPQ0tfRVhQRUNURUQ7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGN0eC0+YWRkX3BhZGRpbmcoY3R4LT51bnByb2Nlc3NlZF9kYXRhLCBtYmVkdGxzX2NpcGhlcl9nZXRfaXZfc2l6ZShjdHgpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdHgtPnVucHJvY2Vzc2VkX2xlbik7CisgICAgICAgIH0gZWxzZSBpZiAobWJlZHRsc19jaXBoZXJfZ2V0X2Jsb2NrX3NpemUoY3R4KSAhPSBjdHgtPnVucHJvY2Vzc2VkX2xlbikgeworICAgICAgICAgICAgLyoKKyAgICAgICAgICAgICAqIEZvciBkZWNyeXB0IG9wZXJhdGlvbnMsIGV4cGVjdCBhIGZ1bGwgYmxvY2ssCisgICAgICAgICAgICAgKiBvciBhbiBlbXB0eSBibG9jayBpZiBubyBwYWRkaW5nCisgICAgICAgICAgICAgKi8KKyAgICAgICAgICAgIGlmIChOVUxMID09IGN0eC0+YWRkX3BhZGRpbmcgJiYgMCA9PSBjdHgtPnVucHJvY2Vzc2VkX2xlbikgeworICAgICAgICAgICAgICAgIHJldHVybiAwOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfQ0lQSEVSX0ZVTExfQkxPQ0tfRVhQRUNURUQ7CisgICAgICAgIH0KKworICAgICAgICAvKiBjaXBoZXIgYmxvY2sgKi8KKyAgICAgICAgaWYgKDAgIT0gKHJldCA9IG1iZWR0bHNfY2lwaGVyX2dldF9iYXNlKGN0eC0+Y2lwaGVyX2luZm8pLT5jYmNfZnVuYyhjdHgtPmNpcGhlcl9jdHgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3R4LT5vcGVyYXRpb24sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWJlZHRsc19jaXBoZXJfZ2V0X2Jsb2NrX3NpemUoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGN0eCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3R4LT5pdiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdHgtPnVucHJvY2Vzc2VkX2RhdGEsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3V0cHV0KSkpIHsKKyAgICAgICAgICAgIHJldHVybiByZXQ7CisgICAgICAgIH0KKworICAgICAgICAvKiBTZXQgb3V0cHV0IHNpemUgZm9yIGRlY3J5cHRpb24gKi8KKyAgICAgICAgaWYgKE1CRURUTFNfREVDUllQVCA9PSBjdHgtPm9wZXJhdGlvbikgeworICAgICAgICAgICAgcmV0dXJuIGN0eC0+Z2V0X3BhZGRpbmcob3V0cHV0LCBtYmVkdGxzX2NpcGhlcl9nZXRfYmxvY2tfc2l6ZShjdHgpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb2xlbik7CisgICAgICAgIH0KKworICAgICAgICAvKiBTZXQgb3V0cHV0IHNpemUgZm9yIGVuY3J5cHRpb24gKi8KKyAgICAgICAgKm9sZW4gPSBtYmVkdGxzX2NpcGhlcl9nZXRfYmxvY2tfc2l6ZShjdHgpOworICAgICAgICByZXR1cm4gMDsKKyAgICB9CisjZWxzZQorICAgICgodm9pZCkgb3V0cHV0KTsKKyNlbmRpZiAvKiBNQkVEVExTX0NJUEhFUl9NT0RFX0NCQyAqLworCisgICAgcmV0dXJuIE1CRURUTFNfRVJSX0NJUEhFUl9GRUFUVVJFX1VOQVZBSUxBQkxFOworfQorCisjaWYgZGVmaW5lZChNQkVEVExTX0NJUEhFUl9NT0RFX1dJVEhfUEFERElORykKK2ludCBtYmVkdGxzX2NpcGhlcl9zZXRfcGFkZGluZ19tb2RlKG1iZWR0bHNfY2lwaGVyX2NvbnRleHRfdCAqY3R4LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWJlZHRsc19jaXBoZXJfcGFkZGluZ190IG1vZGUpCit7CisgICAgaWYgKE5VTEwgPT0gY3R4LT5jaXBoZXJfaW5mbyB8fAorICAgICAgICBNQkVEVExTX01PREVfQ0JDICE9ICgobWJlZHRsc19jaXBoZXJfbW9kZV90KSBjdHgtPmNpcGhlcl9pbmZvLT5tb2RlKSkgeworICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfQ0lQSEVSX0JBRF9JTlBVVF9EQVRBOworICAgIH0KKworI2lmIGRlZmluZWQoTUJFRFRMU19VU0VfUFNBX0NSWVBUTykgJiYgIWRlZmluZWQoTUJFRFRMU19ERVBSRUNBVEVEX1JFTU9WRUQpCisgICAgaWYgKGN0eC0+cHNhX2VuYWJsZWQgPT0gMSkgeworICAgICAgICAvKiBXaGlsZSBQU0EgQ3J5cHRvIGtub3dzIGFib3V0IENCQyBwYWRkaW5nCisgICAgICAgICAqIHNjaGVtZXMsIHdlIGN1cnJlbnRseSBkb24ndCBtYWtlIHRoZW0KKyAgICAgICAgICogYWNjZXNzaWJsZSB0aHJvdWdoIHRoZSBjaXBoZXIgbGF5ZXIuICovCisgICAgICAgIGlmIChtb2RlICE9IE1CRURUTFNfUEFERElOR19OT05FKSB7CisgICAgICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfQ0lQSEVSX0ZFQVRVUkVfVU5BVkFJTEFCTEU7CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gMDsKKyAgICB9CisjZW5kaWYgLyogTUJFRFRMU19VU0VfUFNBX0NSWVBUTyAmJiAhTUJFRFRMU19ERVBSRUNBVEVEX1JFTU9WRUQgKi8KKworICAgIHN3aXRjaCAobW9kZSkgeworI2lmIGRlZmluZWQoTUJFRFRMU19DSVBIRVJfUEFERElOR19QS0NTNykKKyAgICAgICAgY2FzZSBNQkVEVExTX1BBRERJTkdfUEtDUzc6CisgICAgICAgICAgICBjdHgtPmFkZF9wYWRkaW5nID0gYWRkX3BrY3NfcGFkZGluZzsKKyAgICAgICAgICAgIGN0eC0+Z2V0X3BhZGRpbmcgPSBnZXRfcGtjc19wYWRkaW5nOworICAgICAgICAgICAgYnJlYWs7CisjZW5kaWYKKyNpZiBkZWZpbmVkKE1CRURUTFNfQ0lQSEVSX1BBRERJTkdfT05FX0FORF9aRVJPUykKKyAgICAgICAgY2FzZSBNQkVEVExTX1BBRERJTkdfT05FX0FORF9aRVJPUzoKKyAgICAgICAgICAgIGN0eC0+YWRkX3BhZGRpbmcgPSBhZGRfb25lX2FuZF96ZXJvc19wYWRkaW5nOworICAgICAgICAgICAgY3R4LT5nZXRfcGFkZGluZyA9IGdldF9vbmVfYW5kX3plcm9zX3BhZGRpbmc7CisgICAgICAgICAgICBicmVhazsKKyNlbmRpZgorI2lmIGRlZmluZWQoTUJFRFRMU19DSVBIRVJfUEFERElOR19aRVJPU19BTkRfTEVOKQorICAgICAgICBjYXNlIE1CRURUTFNfUEFERElOR19aRVJPU19BTkRfTEVOOgorICAgICAgICAgICAgY3R4LT5hZGRfcGFkZGluZyA9IGFkZF96ZXJvc19hbmRfbGVuX3BhZGRpbmc7CisgICAgICAgICAgICBjdHgtPmdldF9wYWRkaW5nID0gZ2V0X3plcm9zX2FuZF9sZW5fcGFkZGluZzsKKyAgICAgICAgICAgIGJyZWFrOworI2VuZGlmCisjaWYgZGVmaW5lZChNQkVEVExTX0NJUEhFUl9QQURESU5HX1pFUk9TKQorICAgICAgICBjYXNlIE1CRURUTFNfUEFERElOR19aRVJPUzoKKyAgICAgICAgICAgIGN0eC0+YWRkX3BhZGRpbmcgPSBhZGRfemVyb3NfcGFkZGluZzsKKyAgICAgICAgICAgIGN0eC0+Z2V0X3BhZGRpbmcgPSBnZXRfemVyb3NfcGFkZGluZzsKKyAgICAgICAgICAgIGJyZWFrOworI2VuZGlmCisgICAgICAgIGNhc2UgTUJFRFRMU19QQURESU5HX05PTkU6CisgICAgICAgICAgICBjdHgtPmFkZF9wYWRkaW5nID0gTlVMTDsKKyAgICAgICAgICAgIGN0eC0+Z2V0X3BhZGRpbmcgPSBnZXRfbm9fcGFkZGluZzsKKyAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfQ0lQSEVSX0ZFQVRVUkVfVU5BVkFJTEFCTEU7CisgICAgfQorCisgICAgcmV0dXJuIDA7Cit9CisjZW5kaWYgLyogTUJFRFRMU19DSVBIRVJfTU9ERV9XSVRIX1BBRERJTkcgKi8KKworI2lmIGRlZmluZWQoTUJFRFRMU19HQ01fQykgfHwgZGVmaW5lZChNQkVEVExTX0NIQUNIQVBPTFlfQykKK2ludCBtYmVkdGxzX2NpcGhlcl93cml0ZV90YWcobWJlZHRsc19jaXBoZXJfY29udGV4dF90ICpjdHgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGNoYXIgKnRhZywgc2l6ZV90IHRhZ19sZW4pCit7CisgICAgaWYgKGN0eC0+Y2lwaGVyX2luZm8gPT0gTlVMTCkgeworICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfQ0lQSEVSX0JBRF9JTlBVVF9EQVRBOworICAgIH0KKworICAgIGlmIChNQkVEVExTX0VOQ1JZUFQgIT0gY3R4LT5vcGVyYXRpb24pIHsKKyAgICAgICAgcmV0dXJuIE1CRURUTFNfRVJSX0NJUEhFUl9CQURfSU5QVVRfREFUQTsKKyAgICB9CisKKyNpZiBkZWZpbmVkKE1CRURUTFNfVVNFX1BTQV9DUllQVE8pICYmICFkZWZpbmVkKE1CRURUTFNfREVQUkVDQVRFRF9SRU1PVkVEKQorICAgIGlmIChjdHgtPnBzYV9lbmFibGVkID09IDEpIHsKKyAgICAgICAgLyogV2hpbGUgUFNBIENyeXB0byBoYXMgYW4gQVBJIGZvciBtdWx0aXBhcnQKKyAgICAgICAgICogb3BlcmF0aW9ucywgd2UgY3VycmVudGx5IGRvbid0IG1ha2UgaXQKKyAgICAgICAgICogYWNjZXNzaWJsZSB0aHJvdWdoIHRoZSBjaXBoZXIgbGF5ZXIuICovCisgICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9DSVBIRVJfRkVBVFVSRV9VTkFWQUlMQUJMRTsKKyAgICB9CisjZW5kaWYgLyogTUJFRFRMU19VU0VfUFNBX0NSWVBUTyAmJiAhTUJFRFRMU19ERVBSRUNBVEVEX1JFTU9WRUQgKi8KKworI2lmIGRlZmluZWQoTUJFRFRMU19HQ01fQykKKyAgICBpZiAoTUJFRFRMU19NT0RFX0dDTSA9PSAoKG1iZWR0bHNfY2lwaGVyX21vZGVfdCkgY3R4LT5jaXBoZXJfaW5mby0+bW9kZSkpIHsKKyAgICAgICAgc2l6ZV90IG91dHB1dF9sZW5ndGg7CisgICAgICAgIC8qIFRoZSBjb2RlIGhlcmUgZG9lc24ndCB5ZXQgc3VwcG9ydCBhbHRlcm5hdGl2ZSBpbXBsZW1lbnRhdGlvbnMKKyAgICAgICAgICogdGhhdCBjYW4gZGVsYXkgdXAgdG8gYSBibG9jayBvZiBvdXRwdXQuICovCisgICAgICAgIHJldHVybiBtYmVkdGxzX2djbV9maW5pc2goKG1iZWR0bHNfZ2NtX2NvbnRleHQgKikgY3R4LT5jaXBoZXJfY3R4LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5VTEwsIDAsICZvdXRwdXRfbGVuZ3RoLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhZywgdGFnX2xlbik7CisgICAgfQorI2VuZGlmCisKKyNpZiBkZWZpbmVkKE1CRURUTFNfQ0hBQ0hBUE9MWV9DKQorICAgIGlmIChNQkVEVExTX0NJUEhFUl9DSEFDSEEyMF9QT0xZMTMwNSA9PSAoKG1iZWR0bHNfY2lwaGVyX3R5cGVfdCkgY3R4LT5jaXBoZXJfaW5mby0+dHlwZSkpIHsKKyAgICAgICAgLyogRG9uJ3QgYWxsb3cgdHJ1bmNhdGVkIE1BQyBmb3IgUG9seTEzMDUgKi8KKyAgICAgICAgaWYgKHRhZ19sZW4gIT0gMTZVKSB7CisgICAgICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfQ0lQSEVSX0JBRF9JTlBVVF9EQVRBOworICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIG1iZWR0bHNfY2hhY2hhcG9seV9maW5pc2goCisgICAgICAgICAgICAobWJlZHRsc19jaGFjaGFwb2x5X2NvbnRleHQgKikgY3R4LT5jaXBoZXJfY3R4LCB0YWcpOworICAgIH0KKyNlbmRpZgorCisgICAgcmV0dXJuIE1CRURUTFNfRVJSX0NJUEhFUl9GRUFUVVJFX1VOQVZBSUxBQkxFOworfQorCitpbnQgbWJlZHRsc19jaXBoZXJfY2hlY2tfdGFnKG1iZWR0bHNfY2lwaGVyX2NvbnRleHRfdCAqY3R4LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1bnNpZ25lZCBjaGFyICp0YWcsIHNpemVfdCB0YWdfbGVuKQoreworICAgIHVuc2lnbmVkIGNoYXIgY2hlY2tfdGFnWzE2XTsKKyAgICBpbnQgcmV0ID0gTUJFRFRMU19FUlJfRVJST1JfQ09SUlVQVElPTl9ERVRFQ1RFRDsKKworICAgIGlmIChjdHgtPmNpcGhlcl9pbmZvID09IE5VTEwpIHsKKyAgICAgICAgcmV0dXJuIE1CRURUTFNfRVJSX0NJUEhFUl9CQURfSU5QVVRfREFUQTsKKyAgICB9CisKKyAgICBpZiAoTUJFRFRMU19ERUNSWVBUICE9IGN0eC0+b3BlcmF0aW9uKSB7CisgICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9DSVBIRVJfQkFEX0lOUFVUX0RBVEE7CisgICAgfQorCisjaWYgZGVmaW5lZChNQkVEVExTX1VTRV9QU0FfQ1JZUFRPKSAmJiAhZGVmaW5lZChNQkVEVExTX0RFUFJFQ0FURURfUkVNT1ZFRCkKKyAgICBpZiAoY3R4LT5wc2FfZW5hYmxlZCA9PSAxKSB7CisgICAgICAgIC8qIFdoaWxlIFBTQSBDcnlwdG8gaGFzIGFuIEFQSSBmb3IgbXVsdGlwYXJ0CisgICAgICAgICAqIG9wZXJhdGlvbnMsIHdlIGN1cnJlbnRseSBkb24ndCBtYWtlIGl0CisgICAgICAgICAqIGFjY2Vzc2libGUgdGhyb3VnaCB0aGUgY2lwaGVyIGxheWVyLiAqLworICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfQ0lQSEVSX0ZFQVRVUkVfVU5BVkFJTEFCTEU7CisgICAgfQorI2VuZGlmIC8qIE1CRURUTFNfVVNFX1BTQV9DUllQVE8gJiYgIU1CRURUTFNfREVQUkVDQVRFRF9SRU1PVkVEICovCisKKyAgICAvKiBTdGF0dXMgdG8gcmV0dXJuIG9uIGEgbm9uLWF1dGhlbnRpY2F0ZWQgYWxnb3JpdGhtLiAqLworICAgIHJldCA9IE1CRURUTFNfRVJSX0NJUEhFUl9GRUFUVVJFX1VOQVZBSUxBQkxFOworCisjaWYgZGVmaW5lZChNQkVEVExTX0dDTV9DKQorICAgIGlmIChNQkVEVExTX01PREVfR0NNID09ICgobWJlZHRsc19jaXBoZXJfbW9kZV90KSBjdHgtPmNpcGhlcl9pbmZvLT5tb2RlKSkgeworICAgICAgICBzaXplX3Qgb3V0cHV0X2xlbmd0aDsKKyAgICAgICAgLyogVGhlIGNvZGUgaGVyZSBkb2Vzbid0IHlldCBzdXBwb3J0IGFsdGVybmF0aXZlIGltcGxlbWVudGF0aW9ucworICAgICAgICAgKiB0aGF0IGNhbiBkZWxheSB1cCB0byBhIGJsb2NrIG9mIG91dHB1dC4gKi8KKworICAgICAgICBpZiAodGFnX2xlbiA+IHNpemVvZihjaGVja190YWcpKSB7CisgICAgICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfQ0lQSEVSX0JBRF9JTlBVVF9EQVRBOworICAgICAgICB9CisKKyAgICAgICAgaWYgKDAgIT0gKHJldCA9IG1iZWR0bHNfZ2NtX2ZpbmlzaCgKKyAgICAgICAgICAgICAgICAgICAgICAobWJlZHRsc19nY21fY29udGV4dCAqKSBjdHgtPmNpcGhlcl9jdHgsCisgICAgICAgICAgICAgICAgICAgICAgTlVMTCwgMCwgJm91dHB1dF9sZW5ndGgsCisgICAgICAgICAgICAgICAgICAgICAgY2hlY2tfdGFnLCB0YWdfbGVuKSkpIHsKKyAgICAgICAgICAgIHJldHVybiByZXQ7CisgICAgICAgIH0KKworICAgICAgICAvKiBDaGVjayB0aGUgdGFnIGluICJjb25zdGFudC10aW1lIiAqLworICAgICAgICBpZiAobWJlZHRsc19jdF9tZW1jbXAodGFnLCBjaGVja190YWcsIHRhZ19sZW4pICE9IDApIHsKKyAgICAgICAgICAgIHJldCA9IE1CRURUTFNfRVJSX0NJUEhFUl9BVVRIX0ZBSUxFRDsKKyAgICAgICAgICAgIGdvdG8gZXhpdDsKKyAgICAgICAgfQorICAgIH0KKyNlbmRpZiAvKiBNQkVEVExTX0dDTV9DICovCisKKyNpZiBkZWZpbmVkKE1CRURUTFNfQ0hBQ0hBUE9MWV9DKQorICAgIGlmIChNQkVEVExTX0NJUEhFUl9DSEFDSEEyMF9QT0xZMTMwNSA9PSAoKG1iZWR0bHNfY2lwaGVyX3R5cGVfdCkgY3R4LT5jaXBoZXJfaW5mby0+dHlwZSkpIHsKKyAgICAgICAgLyogRG9uJ3QgYWxsb3cgdHJ1bmNhdGVkIE1BQyBmb3IgUG9seTEzMDUgKi8KKyAgICAgICAgaWYgKHRhZ19sZW4gIT0gc2l6ZW9mKGNoZWNrX3RhZykpIHsKKyAgICAgICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9DSVBIRVJfQkFEX0lOUFVUX0RBVEE7CisgICAgICAgIH0KKworICAgICAgICByZXQgPSBtYmVkdGxzX2NoYWNoYXBvbHlfZmluaXNoKAorICAgICAgICAgICAgKG1iZWR0bHNfY2hhY2hhcG9seV9jb250ZXh0ICopIGN0eC0+Y2lwaGVyX2N0eCwgY2hlY2tfdGFnKTsKKyAgICAgICAgaWYgKHJldCAhPSAwKSB7CisgICAgICAgICAgICByZXR1cm4gcmV0OworICAgICAgICB9CisKKyAgICAgICAgLyogQ2hlY2sgdGhlIHRhZyBpbiAiY29uc3RhbnQtdGltZSIgKi8KKyAgICAgICAgaWYgKG1iZWR0bHNfY3RfbWVtY21wKHRhZywgY2hlY2tfdGFnLCB0YWdfbGVuKSAhPSAwKSB7CisgICAgICAgICAgICByZXQgPSBNQkVEVExTX0VSUl9DSVBIRVJfQVVUSF9GQUlMRUQ7CisgICAgICAgICAgICBnb3RvIGV4aXQ7CisgICAgICAgIH0KKyAgICB9CisjZW5kaWYgLyogTUJFRFRMU19DSEFDSEFQT0xZX0MgKi8KKworZXhpdDoKKyAgICBtYmVkdGxzX3BsYXRmb3JtX3plcm9pemUoY2hlY2tfdGFnLCB0YWdfbGVuKTsKKyAgICByZXR1cm4gcmV0OworfQorI2VuZGlmIC8qIE1CRURUTFNfR0NNX0MgfHwgTUJFRFRMU19DSEFDSEFQT0xZX0MgKi8KKworLyoKKyAqIFBhY2tldC1vcmllbnRlZCB3cmFwcGVyIGZvciBub24tQUVBRCBtb2RlcworICovCitpbnQgbWJlZHRsc19jaXBoZXJfY3J5cHQobWJlZHRsc19jaXBoZXJfY29udGV4dF90ICpjdHgsCisgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdW5zaWduZWQgY2hhciAqaXYsIHNpemVfdCBpdl9sZW4sCisgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdW5zaWduZWQgY2hhciAqaW5wdXQsIHNpemVfdCBpbGVuLAorICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGNoYXIgKm91dHB1dCwgc2l6ZV90ICpvbGVuKQoreworICAgIGludCByZXQgPSBNQkVEVExTX0VSUl9FUlJPUl9DT1JSVVBUSU9OX0RFVEVDVEVEOworICAgIHNpemVfdCBmaW5pc2hfb2xlbjsKKworI2lmIGRlZmluZWQoTUJFRFRMU19VU0VfUFNBX0NSWVBUTykgJiYgIWRlZmluZWQoTUJFRFRMU19ERVBSRUNBVEVEX1JFTU9WRUQpCisgICAgaWYgKGN0eC0+cHNhX2VuYWJsZWQgPT0gMSkgeworICAgICAgICAvKiBBcyBpbiB0aGUgbm9uLVBTQSBjYXNlLCB3ZSBkb24ndCBjaGVjayB0aGF0CisgICAgICAgICAqIGEga2V5IGhhcyBiZWVuIHNldC4gSWYgbm90LCB0aGUga2V5IHNsb3Qgd2lsbAorICAgICAgICAgKiBzdGlsbCBiZSBpbiBpdHMgZGVmYXVsdCBzdGF0ZSBvZiAwLCB3aGljaCBpcworICAgICAgICAgKiBndWFyYW50ZWVkIHRvIGJlIGludmFsaWQsIGhlbmNlIHRoZSBQU0EtY2FsbAorICAgICAgICAgKiBiZWxvdyB3aWxsIGdyYWNlZnVsbHkgZmFpbC4gKi8KKyAgICAgICAgbWJlZHRsc19jaXBoZXJfY29udGV4dF9wc2EgKiBjb25zdCBjaXBoZXJfcHNhID0KKyAgICAgICAgICAgIChtYmVkdGxzX2NpcGhlcl9jb250ZXh0X3BzYSAqKSBjdHgtPmNpcGhlcl9jdHg7CisKKyAgICAgICAgcHNhX3N0YXR1c190IHN0YXR1czsKKyAgICAgICAgcHNhX2NpcGhlcl9vcGVyYXRpb25fdCBjaXBoZXJfb3AgPSBQU0FfQ0lQSEVSX09QRVJBVElPTl9JTklUOworICAgICAgICBzaXplX3QgcGFydF9sZW47CisKKyAgICAgICAgaWYgKGN0eC0+b3BlcmF0aW9uID09IE1CRURUTFNfREVDUllQVCkgeworICAgICAgICAgICAgc3RhdHVzID0gcHNhX2NpcGhlcl9kZWNyeXB0X3NldHVwKCZjaXBoZXJfb3AsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2lwaGVyX3BzYS0+c2xvdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaXBoZXJfcHNhLT5hbGcpOworICAgICAgICB9IGVsc2UgaWYgKGN0eC0+b3BlcmF0aW9uID09IE1CRURUTFNfRU5DUllQVCkgeworICAgICAgICAgICAgc3RhdHVzID0gcHNhX2NpcGhlcl9lbmNyeXB0X3NldHVwKCZjaXBoZXJfb3AsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2lwaGVyX3BzYS0+c2xvdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaXBoZXJfcHNhLT5hbGcpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgcmV0dXJuIE1CRURUTFNfRVJSX0NJUEhFUl9CQURfSU5QVVRfREFUQTsKKyAgICAgICAgfQorCisgICAgICAgIC8qIEluIHRoZSBmb2xsb3dpbmcsIHdlIGNhbiBpbW1lZGlhdGVseSByZXR1cm4gb24gYW4gZXJyb3IsCisgICAgICAgICAqIGJlY2F1c2UgdGhlIFBTQSBDcnlwdG8gQVBJIGd1YXJhbnRlZXMgdGhhdCBjaXBoZXIgb3BlcmF0aW9ucworICAgICAgICAgKiBhcmUgdGVybWluYXRlZCBieSB1bnN1Y2Nlc3NmdWwgY2FsbHMgdG8gcHNhX2NpcGhlcl91cGRhdGUoKSwKKyAgICAgICAgICogYW5kIGJ5IGFueSBjYWxsIHRvIHBzYV9jaXBoZXJfZmluaXNoKCkuICovCisgICAgICAgIGlmIChzdGF0dXMgIT0gUFNBX1NVQ0NFU1MpIHsKKyAgICAgICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9QTEFURk9STV9IV19BQ0NFTF9GQUlMRUQ7CisgICAgICAgIH0KKworICAgICAgICBpZiAoKChtYmVkdGxzX2NpcGhlcl9tb2RlX3QpIGN0eC0+Y2lwaGVyX2luZm8tPm1vZGUpICE9IE1CRURUTFNfTU9ERV9FQ0IpIHsKKyAgICAgICAgICAgIHN0YXR1cyA9IHBzYV9jaXBoZXJfc2V0X2l2KCZjaXBoZXJfb3AsIGl2LCBpdl9sZW4pOworICAgICAgICAgICAgaWYgKHN0YXR1cyAhPSBQU0FfU1VDQ0VTUykgeworICAgICAgICAgICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9QTEFURk9STV9IV19BQ0NFTF9GQUlMRUQ7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBzdGF0dXMgPSBwc2FfY2lwaGVyX3VwZGF0ZSgmY2lwaGVyX29wLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnB1dCwgaWxlbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3V0cHV0LCBpbGVuLCBvbGVuKTsKKyAgICAgICAgaWYgKHN0YXR1cyAhPSBQU0FfU1VDQ0VTUykgeworICAgICAgICAgICAgcmV0dXJuIE1CRURUTFNfRVJSX1BMQVRGT1JNX0hXX0FDQ0VMX0ZBSUxFRDsKKyAgICAgICAgfQorCisgICAgICAgIHN0YXR1cyA9IHBzYV9jaXBoZXJfZmluaXNoKCZjaXBoZXJfb3AsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG91dHB1dCArICpvbGVuLCBpbGVuIC0gKm9sZW4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZwYXJ0X2xlbik7CisgICAgICAgIGlmIChzdGF0dXMgIT0gUFNBX1NVQ0NFU1MpIHsKKyAgICAgICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9QTEFURk9STV9IV19BQ0NFTF9GQUlMRUQ7CisgICAgICAgIH0KKworICAgICAgICAqb2xlbiArPSBwYXJ0X2xlbjsKKyAgICAgICAgcmV0dXJuIDA7CisgICAgfQorI2VuZGlmIC8qIE1CRURUTFNfVVNFX1BTQV9DUllQVE8gJiYgIU1CRURUTFNfREVQUkVDQVRFRF9SRU1PVkVEICovCisKKyAgICBpZiAoKHJldCA9IG1iZWR0bHNfY2lwaGVyX3NldF9pdihjdHgsIGl2LCBpdl9sZW4pKSAhPSAwKSB7CisgICAgICAgIHJldHVybiByZXQ7CisgICAgfQorCisgICAgaWYgKChyZXQgPSBtYmVkdGxzX2NpcGhlcl9yZXNldChjdHgpKSAhPSAwKSB7CisgICAgICAgIHJldHVybiByZXQ7CisgICAgfQorCisgICAgaWYgKChyZXQgPSBtYmVkdGxzX2NpcGhlcl91cGRhdGUoY3R4LCBpbnB1dCwgaWxlbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvdXRwdXQsIG9sZW4pKSAhPSAwKSB7CisgICAgICAgIHJldHVybiByZXQ7CisgICAgfQorCisgICAgaWYgKChyZXQgPSBtYmVkdGxzX2NpcGhlcl9maW5pc2goY3R4LCBvdXRwdXQgKyAqb2xlbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmZmluaXNoX29sZW4pKSAhPSAwKSB7CisgICAgICAgIHJldHVybiByZXQ7CisgICAgfQorCisgICAgKm9sZW4gKz0gZmluaXNoX29sZW47CisKKyAgICByZXR1cm4gMDsKK30KKworI2lmIGRlZmluZWQoTUJFRFRMU19DSVBIRVJfTU9ERV9BRUFEKQorLyoKKyAqIFBhY2tldC1vcmllbnRlZCBlbmNyeXB0aW9uIGZvciBBRUFEIG1vZGVzOiBpbnRlcm5hbCBmdW5jdGlvbiB1c2VkIGJ5CisgKiBtYmVkdGxzX2NpcGhlcl9hdXRoX2VuY3J5cHRfZXh0KCkuCisgKi8KK3N0YXRpYyBpbnQgbWJlZHRsc19jaXBoZXJfYWVhZF9lbmNyeXB0KG1iZWR0bHNfY2lwaGVyX2NvbnRleHRfdCAqY3R4LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdW5zaWduZWQgY2hhciAqaXYsIHNpemVfdCBpdl9sZW4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1bnNpZ25lZCBjaGFyICphZCwgc2l6ZV90IGFkX2xlbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgKmlucHV0LCBzaXplX3QgaWxlbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGNoYXIgKm91dHB1dCwgc2l6ZV90ICpvbGVuLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgY2hhciAqdGFnLCBzaXplX3QgdGFnX2xlbikKK3sKKyNpZiBkZWZpbmVkKE1CRURUTFNfVVNFX1BTQV9DUllQVE8pICYmICFkZWZpbmVkKE1CRURUTFNfREVQUkVDQVRFRF9SRU1PVkVEKQorICAgIGlmIChjdHgtPnBzYV9lbmFibGVkID09IDEpIHsKKyAgICAgICAgLyogQXMgaW4gdGhlIG5vbi1QU0EgY2FzZSwgd2UgZG9uJ3QgY2hlY2sgdGhhdAorICAgICAgICAgKiBhIGtleSBoYXMgYmVlbiBzZXQuIElmIG5vdCwgdGhlIGtleSBzbG90IHdpbGwKKyAgICAgICAgICogc3RpbGwgYmUgaW4gaXRzIGRlZmF1bHQgc3RhdGUgb2YgMCwgd2hpY2ggaXMKKyAgICAgICAgICogZ3VhcmFudGVlZCB0byBiZSBpbnZhbGlkLCBoZW5jZSB0aGUgUFNBLWNhbGwKKyAgICAgICAgICogYmVsb3cgd2lsbCBncmFjZWZ1bGx5IGZhaWwuICovCisgICAgICAgIG1iZWR0bHNfY2lwaGVyX2NvbnRleHRfcHNhICogY29uc3QgY2lwaGVyX3BzYSA9CisgICAgICAgICAgICAobWJlZHRsc19jaXBoZXJfY29udGV4dF9wc2EgKikgY3R4LT5jaXBoZXJfY3R4OworCisgICAgICAgIHBzYV9zdGF0dXNfdCBzdGF0dXM7CisKKyAgICAgICAgLyogUFNBIENyeXB0byBBUEkgYWx3YXlzIHdyaXRlcyB0aGUgYXV0aGVudGljYXRpb24gdGFnCisgICAgICAgICAqIGF0IHRoZSBlbmQgb2YgdGhlIGVuY3J5cHRlZCBtZXNzYWdlLiAqLworICAgICAgICBpZiAob3V0cHV0ID09IE5VTEwgfHwgdGFnICE9IG91dHB1dCArIGlsZW4pIHsKKyAgICAgICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9DSVBIRVJfRkVBVFVSRV9VTkFWQUlMQUJMRTsKKyAgICAgICAgfQorCisgICAgICAgIHN0YXR1cyA9IHBzYV9hZWFkX2VuY3J5cHQoY2lwaGVyX3BzYS0+c2xvdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaXBoZXJfcHNhLT5hbGcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXYsIGl2X2xlbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhZCwgYWRfbGVuLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlucHV0LCBpbGVuLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG91dHB1dCwgaWxlbiArIHRhZ19sZW4sIG9sZW4pOworICAgICAgICBpZiAoc3RhdHVzICE9IFBTQV9TVUNDRVNTKSB7CisgICAgICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfUExBVEZPUk1fSFdfQUNDRUxfRkFJTEVEOworICAgICAgICB9CisKKyAgICAgICAgKm9sZW4gLT0gdGFnX2xlbjsKKyAgICAgICAgcmV0dXJuIDA7CisgICAgfQorI2VuZGlmIC8qIE1CRURUTFNfVVNFX1BTQV9DUllQVE8gJiYgIU1CRURUTFNfREVQUkVDQVRFRF9SRU1PVkVEICovCisKKyNpZiBkZWZpbmVkKE1CRURUTFNfR0NNX0MpCisgICAgaWYgKE1CRURUTFNfTU9ERV9HQ00gPT0gKChtYmVkdGxzX2NpcGhlcl9tb2RlX3QpIGN0eC0+Y2lwaGVyX2luZm8tPm1vZGUpKSB7CisgICAgICAgICpvbGVuID0gaWxlbjsKKyAgICAgICAgcmV0dXJuIG1iZWR0bHNfZ2NtX2NyeXB0X2FuZF90YWcoY3R4LT5jaXBoZXJfY3R4LCBNQkVEVExTX0dDTV9FTkNSWVBULAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbGVuLCBpdiwgaXZfbGVuLCBhZCwgYWRfbGVuLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnB1dCwgb3V0cHV0LCB0YWdfbGVuLCB0YWcpOworICAgIH0KKyNlbmRpZiAvKiBNQkVEVExTX0dDTV9DICovCisjaWYgZGVmaW5lZChNQkVEVExTX0NDTV9DKQorICAgIGlmIChNQkVEVExTX01PREVfQ0NNID09ICgobWJlZHRsc19jaXBoZXJfbW9kZV90KSBjdHgtPmNpcGhlcl9pbmZvLT5tb2RlKSkgeworICAgICAgICAqb2xlbiA9IGlsZW47CisgICAgICAgIHJldHVybiBtYmVkdGxzX2NjbV9lbmNyeXB0X2FuZF90YWcoY3R4LT5jaXBoZXJfY3R4LCBpbGVuLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGl2LCBpdl9sZW4sIGFkLCBhZF9sZW4sIGlucHV0LCBvdXRwdXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFnLCB0YWdfbGVuKTsKKyAgICB9CisjZW5kaWYgLyogTUJFRFRMU19DQ01fQyAqLworI2lmIGRlZmluZWQoTUJFRFRMU19DSEFDSEFQT0xZX0MpCisgICAgaWYgKE1CRURUTFNfQ0lQSEVSX0NIQUNIQTIwX1BPTFkxMzA1ID09ICgobWJlZHRsc19jaXBoZXJfdHlwZV90KSBjdHgtPmNpcGhlcl9pbmZvLT50eXBlKSkgeworICAgICAgICAvKiBDaGFjaGFQb2x5IGhhcyBmaXhlZCBsZW5ndGggbm9uY2UgYW5kIE1BQyAodGFnKSAqLworICAgICAgICBpZiAoKGl2X2xlbiAhPSBtYmVkdGxzX2NpcGhlcl9pbmZvX2dldF9pdl9zaXplKGN0eC0+Y2lwaGVyX2luZm8pKSB8fAorICAgICAgICAgICAgKHRhZ19sZW4gIT0gMTZVKSkgeworICAgICAgICAgICAgcmV0dXJuIE1CRURUTFNfRVJSX0NJUEhFUl9CQURfSU5QVVRfREFUQTsKKyAgICAgICAgfQorCisgICAgICAgICpvbGVuID0gaWxlbjsKKyAgICAgICAgcmV0dXJuIG1iZWR0bHNfY2hhY2hhcG9seV9lbmNyeXB0X2FuZF90YWcoY3R4LT5jaXBoZXJfY3R4LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbGVuLCBpdiwgYWQsIGFkX2xlbiwgaW5wdXQsIG91dHB1dCwgdGFnKTsKKyAgICB9CisjZW5kaWYgLyogTUJFRFRMU19DSEFDSEFQT0xZX0MgKi8KKworICAgIHJldHVybiBNQkVEVExTX0VSUl9DSVBIRVJfRkVBVFVSRV9VTkFWQUlMQUJMRTsKK30KKworLyoKKyAqIFBhY2tldC1vcmllbnRlZCBlbmNyeXB0aW9uIGZvciBBRUFEIG1vZGVzOiBpbnRlcm5hbCBmdW5jdGlvbiB1c2VkIGJ5CisgKiBtYmVkdGxzX2NpcGhlcl9hdXRoX2VuY3J5cHRfZXh0KCkuCisgKi8KK3N0YXRpYyBpbnQgbWJlZHRsc19jaXBoZXJfYWVhZF9kZWNyeXB0KG1iZWR0bHNfY2lwaGVyX2NvbnRleHRfdCAqY3R4LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdW5zaWduZWQgY2hhciAqaXYsIHNpemVfdCBpdl9sZW4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1bnNpZ25lZCBjaGFyICphZCwgc2l6ZV90IGFkX2xlbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgKmlucHV0LCBzaXplX3QgaWxlbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGNoYXIgKm91dHB1dCwgc2l6ZV90ICpvbGVuLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdW5zaWduZWQgY2hhciAqdGFnLCBzaXplX3QgdGFnX2xlbikKK3sKKyNpZiBkZWZpbmVkKE1CRURUTFNfVVNFX1BTQV9DUllQVE8pICYmICFkZWZpbmVkKE1CRURUTFNfREVQUkVDQVRFRF9SRU1PVkVEKQorICAgIGlmIChjdHgtPnBzYV9lbmFibGVkID09IDEpIHsKKyAgICAgICAgLyogQXMgaW4gdGhlIG5vbi1QU0EgY2FzZSwgd2UgZG9uJ3QgY2hlY2sgdGhhdAorICAgICAgICAgKiBhIGtleSBoYXMgYmVlbiBzZXQuIElmIG5vdCwgdGhlIGtleSBzbG90IHdpbGwKKyAgICAgICAgICogc3RpbGwgYmUgaW4gaXRzIGRlZmF1bHQgc3RhdGUgb2YgMCwgd2hpY2ggaXMKKyAgICAgICAgICogZ3VhcmFudGVlZCB0byBiZSBpbnZhbGlkLCBoZW5jZSB0aGUgUFNBLWNhbGwKKyAgICAgICAgICogYmVsb3cgd2lsbCBncmFjZWZ1bGx5IGZhaWwuICovCisgICAgICAgIG1iZWR0bHNfY2lwaGVyX2NvbnRleHRfcHNhICogY29uc3QgY2lwaGVyX3BzYSA9CisgICAgICAgICAgICAobWJlZHRsc19jaXBoZXJfY29udGV4dF9wc2EgKikgY3R4LT5jaXBoZXJfY3R4OworCisgICAgICAgIHBzYV9zdGF0dXNfdCBzdGF0dXM7CisKKyAgICAgICAgLyogUFNBIENyeXB0byBBUEkgYWx3YXlzIHdyaXRlcyB0aGUgYXV0aGVudGljYXRpb24gdGFnCisgICAgICAgICAqIGF0IHRoZSBlbmQgb2YgdGhlIGVuY3J5cHRlZCBtZXNzYWdlLiAqLworICAgICAgICBpZiAoaW5wdXQgPT0gTlVMTCB8fCB0YWcgIT0gaW5wdXQgKyBpbGVuKSB7CisgICAgICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfQ0lQSEVSX0ZFQVRVUkVfVU5BVkFJTEFCTEU7CisgICAgICAgIH0KKworICAgICAgICBzdGF0dXMgPSBwc2FfYWVhZF9kZWNyeXB0KGNpcGhlcl9wc2EtPnNsb3QsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2lwaGVyX3BzYS0+YWxnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGl2LCBpdl9sZW4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWQsIGFkX2xlbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnB1dCwgaWxlbiArIHRhZ19sZW4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3V0cHV0LCBpbGVuLCBvbGVuKTsKKyAgICAgICAgaWYgKHN0YXR1cyA9PSBQU0FfRVJST1JfSU5WQUxJRF9TSUdOQVRVUkUpIHsKKyAgICAgICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9DSVBIRVJfQVVUSF9GQUlMRUQ7CisgICAgICAgIH0gZWxzZSBpZiAoc3RhdHVzICE9IFBTQV9TVUNDRVNTKSB7CisgICAgICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfUExBVEZPUk1fSFdfQUNDRUxfRkFJTEVEOworICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIDA7CisgICAgfQorI2VuZGlmIC8qIE1CRURUTFNfVVNFX1BTQV9DUllQVE8gJiYgIU1CRURUTFNfREVQUkVDQVRFRF9SRU1PVkVEICovCisKKyNpZiBkZWZpbmVkKE1CRURUTFNfR0NNX0MpCisgICAgaWYgKE1CRURUTFNfTU9ERV9HQ00gPT0gKChtYmVkdGxzX2NpcGhlcl9tb2RlX3QpIGN0eC0+Y2lwaGVyX2luZm8tPm1vZGUpKSB7CisgICAgICAgIGludCByZXQgPSBNQkVEVExTX0VSUl9FUlJPUl9DT1JSVVBUSU9OX0RFVEVDVEVEOworCisgICAgICAgICpvbGVuID0gaWxlbjsKKyAgICAgICAgcmV0ID0gbWJlZHRsc19nY21fYXV0aF9kZWNyeXB0KGN0eC0+Y2lwaGVyX2N0eCwgaWxlbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGl2LCBpdl9sZW4sIGFkLCBhZF9sZW4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YWcsIHRhZ19sZW4sIGlucHV0LCBvdXRwdXQpOworCisgICAgICAgIGlmIChyZXQgPT0gTUJFRFRMU19FUlJfR0NNX0FVVEhfRkFJTEVEKSB7CisgICAgICAgICAgICByZXQgPSBNQkVEVExTX0VSUl9DSVBIRVJfQVVUSF9GQUlMRUQ7CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gcmV0OworICAgIH0KKyNlbmRpZiAvKiBNQkVEVExTX0dDTV9DICovCisjaWYgZGVmaW5lZChNQkVEVExTX0NDTV9DKQorICAgIGlmIChNQkVEVExTX01PREVfQ0NNID09ICgobWJlZHRsc19jaXBoZXJfbW9kZV90KSBjdHgtPmNpcGhlcl9pbmZvLT5tb2RlKSkgeworICAgICAgICBpbnQgcmV0ID0gTUJFRFRMU19FUlJfRVJST1JfQ09SUlVQVElPTl9ERVRFQ1RFRDsKKworICAgICAgICAqb2xlbiA9IGlsZW47CisgICAgICAgIHJldCA9IG1iZWR0bHNfY2NtX2F1dGhfZGVjcnlwdChjdHgtPmNpcGhlcl9jdHgsIGlsZW4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpdiwgaXZfbGVuLCBhZCwgYWRfbGVuLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5wdXQsIG91dHB1dCwgdGFnLCB0YWdfbGVuKTsKKworICAgICAgICBpZiAocmV0ID09IE1CRURUTFNfRVJSX0NDTV9BVVRIX0ZBSUxFRCkgeworICAgICAgICAgICAgcmV0ID0gTUJFRFRMU19FUlJfQ0lQSEVSX0FVVEhfRkFJTEVEOworICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIHJldDsKKyAgICB9CisjZW5kaWYgLyogTUJFRFRMU19DQ01fQyAqLworI2lmIGRlZmluZWQoTUJFRFRMU19DSEFDSEFQT0xZX0MpCisgICAgaWYgKE1CRURUTFNfQ0lQSEVSX0NIQUNIQTIwX1BPTFkxMzA1ID09ICgobWJlZHRsc19jaXBoZXJfdHlwZV90KSBjdHgtPmNpcGhlcl9pbmZvLT50eXBlKSkgeworICAgICAgICBpbnQgcmV0ID0gTUJFRFRMU19FUlJfRVJST1JfQ09SUlVQVElPTl9ERVRFQ1RFRDsKKworICAgICAgICAvKiBDaGFjaGFQb2x5IGhhcyBmaXhlZCBsZW5ndGggbm9uY2UgYW5kIE1BQyAodGFnKSAqLworICAgICAgICBpZiAoKGl2X2xlbiAhPSBtYmVkdGxzX2NpcGhlcl9pbmZvX2dldF9pdl9zaXplKGN0eC0+Y2lwaGVyX2luZm8pKSB8fAorICAgICAgICAgICAgKHRhZ19sZW4gIT0gMTZVKSkgeworICAgICAgICAgICAgcmV0dXJuIE1CRURUTFNfRVJSX0NJUEhFUl9CQURfSU5QVVRfREFUQTsKKyAgICAgICAgfQorCisgICAgICAgICpvbGVuID0gaWxlbjsKKyAgICAgICAgcmV0ID0gbWJlZHRsc19jaGFjaGFwb2x5X2F1dGhfZGVjcnlwdChjdHgtPmNpcGhlcl9jdHgsIGlsZW4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXYsIGFkLCBhZF9sZW4sIHRhZywgaW5wdXQsIG91dHB1dCk7CisKKyAgICAgICAgaWYgKHJldCA9PSBNQkVEVExTX0VSUl9DSEFDSEFQT0xZX0FVVEhfRkFJTEVEKSB7CisgICAgICAgICAgICByZXQgPSBNQkVEVExTX0VSUl9DSVBIRVJfQVVUSF9GQUlMRUQ7CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gcmV0OworICAgIH0KKyNlbmRpZiAvKiBNQkVEVExTX0NIQUNIQVBPTFlfQyAqLworCisgICAgcmV0dXJuIE1CRURUTFNfRVJSX0NJUEhFUl9GRUFUVVJFX1VOQVZBSUxBQkxFOworfQorI2VuZGlmIC8qIE1CRURUTFNfQ0lQSEVSX01PREVfQUVBRCAqLworCisjaWYgZGVmaW5lZChNQkVEVExTX0NJUEhFUl9NT0RFX0FFQUQpIHx8IGRlZmluZWQoTUJFRFRMU19OSVNUX0tXX0MpCisvKgorICogUGFja2V0LW9yaWVudGVkIGVuY3J5cHRpb24gZm9yIEFFQUQvTklTVF9LVzogcHVibGljIGZ1bmN0aW9uLgorICovCitpbnQgbWJlZHRsc19jaXBoZXJfYXV0aF9lbmNyeXB0X2V4dChtYmVkdGxzX2NpcGhlcl9jb250ZXh0X3QgKmN0eCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgKml2LCBzaXplX3QgaXZfbGVuLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdW5zaWduZWQgY2hhciAqYWQsIHNpemVfdCBhZF9sZW4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1bnNpZ25lZCBjaGFyICppbnB1dCwgc2l6ZV90IGlsZW4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBjaGFyICpvdXRwdXQsIHNpemVfdCBvdXRwdXRfbGVuLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90ICpvbGVuLCBzaXplX3QgdGFnX2xlbikKK3sKKyNpZiBkZWZpbmVkKE1CRURUTFNfTklTVF9LV19DKQorICAgIGlmICgKKyNpZiBkZWZpbmVkKE1CRURUTFNfVVNFX1BTQV9DUllQVE8pICYmICFkZWZpbmVkKE1CRURUTFNfREVQUkVDQVRFRF9SRU1PVkVEKQorICAgICAgICBjdHgtPnBzYV9lbmFibGVkID09IDAgJiYKKyNlbmRpZgorICAgICAgICAoTUJFRFRMU19NT0RFX0tXID09ICgobWJlZHRsc19jaXBoZXJfbW9kZV90KSBjdHgtPmNpcGhlcl9pbmZvLT5tb2RlKSB8fAorICAgICAgICAgTUJFRFRMU19NT0RFX0tXUCA9PSAoKG1iZWR0bHNfY2lwaGVyX21vZGVfdCkgY3R4LT5jaXBoZXJfaW5mby0+bW9kZSkpKSB7CisgICAgICAgIG1iZWR0bHNfbmlzdF9rd19tb2RlX3QgbW9kZSA9CisgICAgICAgICAgICAoTUJFRFRMU19NT0RFX0tXID09ICgobWJlZHRsc19jaXBoZXJfbW9kZV90KSBjdHgtPmNpcGhlcl9pbmZvLT5tb2RlKSkgPworICAgICAgICAgICAgTUJFRFRMU19LV19NT0RFX0tXIDogTUJFRFRMU19LV19NT0RFX0tXUDsKKworICAgICAgICAvKiBUaGVyZSBpcyBubyBpdiwgdGFnIG9yIGFkIGFzc29jaWF0ZWQgd2l0aCBLVyBhbmQgS1dQLAorICAgICAgICAgKiBzbyB0aGVzZSBsZW5ndGggc2hvdWxkIGJlIDAgYXMgZG9jdW1lbnRlZC4gKi8KKyAgICAgICAgaWYgKGl2X2xlbiAhPSAwIHx8IHRhZ19sZW4gIT0gMCB8fCBhZF9sZW4gIT0gMCkgeworICAgICAgICAgICAgcmV0dXJuIE1CRURUTFNfRVJSX0NJUEhFUl9CQURfSU5QVVRfREFUQTsKKyAgICAgICAgfQorCisgICAgICAgICh2b2lkKSBpdjsKKyAgICAgICAgKHZvaWQpIGFkOworCisgICAgICAgIHJldHVybiBtYmVkdGxzX25pc3Rfa3dfd3JhcChjdHgtPmNpcGhlcl9jdHgsIG1vZGUsIGlucHV0LCBpbGVuLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3V0cHV0LCBvbGVuLCBvdXRwdXRfbGVuKTsKKyAgICB9CisjZW5kaWYgLyogTUJFRFRMU19OSVNUX0tXX0MgKi8KKworI2lmIGRlZmluZWQoTUJFRFRMU19DSVBIRVJfTU9ERV9BRUFEKQorICAgIC8qIEFFQUQgY2FzZTogY2hlY2sgbGVuZ3RoIGJlZm9yZSBwYXNzaW5nIG9uIHRvIHNoYXJlZCBmdW5jdGlvbiAqLworICAgIGlmIChvdXRwdXRfbGVuIDwgaWxlbiArIHRhZ19sZW4pIHsKKyAgICAgICAgcmV0dXJuIE1CRURUTFNfRVJSX0NJUEhFUl9CQURfSU5QVVRfREFUQTsKKyAgICB9CisKKyAgICBpbnQgcmV0ID0gbWJlZHRsc19jaXBoZXJfYWVhZF9lbmNyeXB0KGN0eCwgaXYsIGl2X2xlbiwgYWQsIGFkX2xlbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlucHV0LCBpbGVuLCBvdXRwdXQsIG9sZW4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvdXRwdXQgKyBpbGVuLCB0YWdfbGVuKTsKKyAgICAqb2xlbiArPSB0YWdfbGVuOworICAgIHJldHVybiByZXQ7CisjZWxzZQorICAgIHJldHVybiBNQkVEVExTX0VSUl9DSVBIRVJfRkVBVFVSRV9VTkFWQUlMQUJMRTsKKyNlbmRpZiAvKiBNQkVEVExTX0NJUEhFUl9NT0RFX0FFQUQgKi8KK30KKworLyoKKyAqIFBhY2tldC1vcmllbnRlZCBkZWNyeXB0aW9uIGZvciBBRUFEL05JU1RfS1c6IHB1YmxpYyBmdW5jdGlvbi4KKyAqLworaW50IG1iZWR0bHNfY2lwaGVyX2F1dGhfZGVjcnlwdF9leHQobWJlZHRsc19jaXBoZXJfY29udGV4dF90ICpjdHgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1bnNpZ25lZCBjaGFyICppdiwgc2l6ZV90IGl2X2xlbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgKmFkLCBzaXplX3QgYWRfbGVuLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdW5zaWduZWQgY2hhciAqaW5wdXQsIHNpemVfdCBpbGVuLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgY2hhciAqb3V0cHV0LCBzaXplX3Qgb3V0cHV0X2xlbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCAqb2xlbiwgc2l6ZV90IHRhZ19sZW4pCit7CisjaWYgZGVmaW5lZChNQkVEVExTX05JU1RfS1dfQykKKyAgICBpZiAoCisjaWYgZGVmaW5lZChNQkVEVExTX1VTRV9QU0FfQ1JZUFRPKSAmJiAhZGVmaW5lZChNQkVEVExTX0RFUFJFQ0FURURfUkVNT1ZFRCkKKyAgICAgICAgY3R4LT5wc2FfZW5hYmxlZCA9PSAwICYmCisjZW5kaWYKKyAgICAgICAgKE1CRURUTFNfTU9ERV9LVyA9PSAoKG1iZWR0bHNfY2lwaGVyX21vZGVfdCkgY3R4LT5jaXBoZXJfaW5mby0+bW9kZSkgfHwKKyAgICAgICAgIE1CRURUTFNfTU9ERV9LV1AgPT0gKChtYmVkdGxzX2NpcGhlcl9tb2RlX3QpIGN0eC0+Y2lwaGVyX2luZm8tPm1vZGUpKSkgeworICAgICAgICBtYmVkdGxzX25pc3Rfa3dfbW9kZV90IG1vZGUgPQorICAgICAgICAgICAgKE1CRURUTFNfTU9ERV9LVyA9PSAoKG1iZWR0bHNfY2lwaGVyX21vZGVfdCkgY3R4LT5jaXBoZXJfaW5mby0+bW9kZSkpID8KKyAgICAgICAgICAgIE1CRURUTFNfS1dfTU9ERV9LVyA6IE1CRURUTFNfS1dfTU9ERV9LV1A7CisKKyAgICAgICAgLyogVGhlcmUgaXMgbm8gaXYsIHRhZyBvciBhZCBhc3NvY2lhdGVkIHdpdGggS1cgYW5kIEtXUCwKKyAgICAgICAgICogc28gdGhlc2UgbGVuZ3RoIHNob3VsZCBiZSAwIGFzIGRvY3VtZW50ZWQuICovCisgICAgICAgIGlmIChpdl9sZW4gIT0gMCB8fCB0YWdfbGVuICE9IDAgfHwgYWRfbGVuICE9IDApIHsKKyAgICAgICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9DSVBIRVJfQkFEX0lOUFVUX0RBVEE7CisgICAgICAgIH0KKworICAgICAgICAodm9pZCkgaXY7CisgICAgICAgICh2b2lkKSBhZDsKKworICAgICAgICByZXR1cm4gbWJlZHRsc19uaXN0X2t3X3Vud3JhcChjdHgtPmNpcGhlcl9jdHgsIG1vZGUsIGlucHV0LCBpbGVuLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvdXRwdXQsIG9sZW4sIG91dHB1dF9sZW4pOworICAgIH0KKyNlbmRpZiAvKiBNQkVEVExTX05JU1RfS1dfQyAqLworCisjaWYgZGVmaW5lZChNQkVEVExTX0NJUEhFUl9NT0RFX0FFQUQpCisgICAgLyogQUVBRCBjYXNlOiBjaGVjayBsZW5ndGggYmVmb3JlIHBhc3Npbmcgb24gdG8gc2hhcmVkIGZ1bmN0aW9uICovCisgICAgaWYgKGlsZW4gPCB0YWdfbGVuIHx8IG91dHB1dF9sZW4gPCBpbGVuIC0gdGFnX2xlbikgeworICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfQ0lQSEVSX0JBRF9JTlBVVF9EQVRBOworICAgIH0KKworICAgIHJldHVybiBtYmVkdGxzX2NpcGhlcl9hZWFkX2RlY3J5cHQoY3R4LCBpdiwgaXZfbGVuLCBhZCwgYWRfbGVuLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5wdXQsIGlsZW4gLSB0YWdfbGVuLCBvdXRwdXQsIG9sZW4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnB1dCArIGlsZW4gLSB0YWdfbGVuLCB0YWdfbGVuKTsKKyNlbHNlCisgICAgcmV0dXJuIE1CRURUTFNfRVJSX0NJUEhFUl9GRUFUVVJFX1VOQVZBSUxBQkxFOworI2VuZGlmIC8qIE1CRURUTFNfQ0lQSEVSX01PREVfQUVBRCAqLworfQorI2VuZGlmIC8qIE1CRURUTFNfQ0lQSEVSX01PREVfQUVBRCB8fCBNQkVEVExTX05JU1RfS1dfQyAqLworCisjZW5kaWYgLyogTUJFRFRMU19DSVBIRVJfQyAqLwpkaWZmIC0tZ2l0IGEvbGlicmFyeS9jaXBoZXJfd3JhcC5jIGIvdGYtcHNhLWNyeXB0by9kcml2ZXJzL2J1aWx0aW4vc3JjL2NpcGhlcl93cmFwLmMKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIGxpYnJhcnkvY2lwaGVyX3dyYXAuYwpyZW5hbWUgdG8gdGYtcHNhLWNyeXB0by9kcml2ZXJzL2J1aWx0aW4vc3JjL2NpcGhlcl93cmFwLmMKZGlmZiAtLWdpdCBhL2xpYnJhcnkvY2lwaGVyX3dyYXAuaCBiL3RmLXBzYS1jcnlwdG8vZHJpdmVycy9idWlsdGluL3NyYy9jaXBoZXJfd3JhcC5oCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBsaWJyYXJ5L2NpcGhlcl93cmFwLmgKcmVuYW1lIHRvIHRmLXBzYS1jcnlwdG8vZHJpdmVycy9idWlsdGluL3NyYy9jaXBoZXJfd3JhcC5oCmRpZmYgLS1naXQgYS90Zi1wc2EtY3J5cHRvL2RyaXZlcnMvYnVpbHRpbi9zcmMvY21hYy5jIGIvdGYtcHNhLWNyeXB0by9kcml2ZXJzL2J1aWx0aW4vc3JjL2NtYWMuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41ZTUxN2M0Ci0tLSAvZGV2L251bGwKKysrIGIvdGYtcHNhLWNyeXB0by9kcml2ZXJzL2J1aWx0aW4vc3JjL2NtYWMuYwpAQCAtMCwwICsxLDEwNjAgQEAKKy8qKgorICogXGZpbGUgY21hYy5jCisgKgorICogXGJyaWVmIE5JU1QgU1A4MDAtMzhCIGNvbXBsaWFudCBDTUFDIGltcGxlbWVudGF0aW9uIGZvciBBRVMgYW5kIDNERVMKKyAqCisgKiAgQ29weXJpZ2h0IFRoZSBNYmVkIFRMUyBDb250cmlidXRvcnMKKyAqICBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMCBPUiBHUEwtMi4wLW9yLWxhdGVyCisgKi8KKworLyoKKyAqIFJlZmVyZW5jZXM6CisgKgorICogLSBOSVNUIFNQIDgwMC0zOEIgUmVjb21tZW5kYXRpb24gZm9yIEJsb2NrIENpcGhlciBNb2RlcyBvZiBPcGVyYXRpb246IFRoZQorICogICAgICBDTUFDIE1vZGUgZm9yIEF1dGhlbnRpY2F0aW9uCisgKiAgIGh0dHA6Ly9udmxwdWJzLm5pc3QuZ292L25pc3RwdWJzL1NwZWNpYWxQdWJsaWNhdGlvbnMvTklTVC5TUC44MDAtMzhiLnBkZgorICoKKyAqIC0gUkZDIDQ0OTMgLSBUaGUgQUVTLUNNQUMgQWxnb3JpdGhtCisgKiAgIGh0dHBzOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9yZmM0NDkzCisgKgorICogLSBSRkMgNDYxNSAtIFRoZSBBZHZhbmNlZCBFbmNyeXB0aW9uIFN0YW5kYXJkLUNpcGhlci1iYXNlZCBNZXNzYWdlCisgKiAgICAgIEF1dGhlbnRpY2F0aW9uIENvZGUtUHNldWRvLVJhbmRvbSBGdW5jdGlvbi0xMjggKEFFUy1DTUFDLVBSRi0xMjgpCisgKiAgICAgIEFsZ29yaXRobSBmb3IgdGhlIEludGVybmV0IEtleSBFeGNoYW5nZSBQcm90b2NvbCAoSUtFKQorICogICBodHRwczovL3Rvb2xzLmlldGYub3JnL2h0bWwvcmZjNDYxNQorICoKKyAqICAgQWRkaXRpb25hbCB0ZXN0IHZlY3RvcnM6IElTTy9JRUMgOTc5Ny0xCisgKgorICovCisKKyNpbmNsdWRlICJjb21tb24uaCIKKworI2lmIGRlZmluZWQoTUJFRFRMU19DTUFDX0MpCisKKyNpbmNsdWRlICJtYmVkdGxzL2NtYWMuaCIKKyNpbmNsdWRlICJtYmVkdGxzL3BsYXRmb3JtX3V0aWwuaCIKKyNpbmNsdWRlICJtYmVkdGxzL2Vycm9yLmgiCisjaW5jbHVkZSAibWJlZHRscy9wbGF0Zm9ybS5oIgorI2luY2x1ZGUgImNvbnN0YW50X3RpbWVfaW50ZXJuYWwuaCIKKworI2luY2x1ZGUgPHN0cmluZy5oPgorCisvKgorICogTXVsdGlwbGljYXRpb24gYnkgdSBpbiB0aGUgR2Fsb2lzIGZpZWxkIG9mIEdGKDJebikKKyAqCisgKiBBcyBleHBsYWluZWQgaW4gTklTVCBTUCA4MDAtMzhCLCB0aGlzIGNhbiBiZSBjb21wdXRlZDoKKyAqCisgKiAgIElmIE1TQihwKSA9IDAsIHRoZW4gcCA9IChwIDw8IDEpCisgKiAgIElmIE1TQihwKSA9IDEsIHRoZW4gcCA9IChwIDw8IDEpIF4gUl9uCisgKiAgIHdpdGggUl82NCA9IDB4MUIgYW5kICBSXzEyOCA9IDB4ODcKKyAqCisgKiBJbnB1dCBhbmQgb3V0cHV0IE1VU1QgTk9UIHBvaW50IHRvIHRoZSBzYW1lIGJ1ZmZlcgorICogQmxvY2sgc2l6ZSBtdXN0IGJlIDggYnl0ZXMgb3IgMTYgYnl0ZXMgLSB0aGUgYmxvY2sgc2l6ZXMgZm9yIERFUyBhbmQgQUVTLgorICovCitzdGF0aWMgaW50IGNtYWNfbXVsdGlwbHlfYnlfdSh1bnNpZ25lZCBjaGFyICpvdXRwdXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1bnNpZ25lZCBjaGFyICppbnB1dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBibG9ja3NpemUpCit7CisgICAgY29uc3QgdW5zaWduZWQgY2hhciBSXzEyOCA9IDB4ODc7CisgICAgdW5zaWduZWQgY2hhciBSX247CisgICAgdWludDMyX3Qgb3ZlcmZsb3cgPSAweDAwOworICAgIGludCBpOworCisgICAgaWYgKGJsb2Nrc2l6ZSA9PSBNQkVEVExTX0FFU19CTE9DS19TSVpFKSB7CisgICAgICAgIFJfbiA9IFJfMTI4OworICAgIH0KKyNpZiBkZWZpbmVkKE1CRURUTFNfREVTX0MpCisgICAgZWxzZSBpZiAoYmxvY2tzaXplID09IE1CRURUTFNfREVTM19CTE9DS19TSVpFKSB7CisgICAgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgUl82NCA9IDB4MUI7CisgICAgICAgIFJfbiA9IFJfNjQ7CisgICAgfQorI2VuZGlmCisgICAgZWxzZSB7CisgICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9DSVBIRVJfQkFEX0lOUFVUX0RBVEE7CisgICAgfQorCisgICAgZm9yIChpID0gKGludCkgYmxvY2tzaXplIC0gNDsgaSA+PSAwOyBpIC09IDQpIHsKKyAgICAgICAgdWludDMyX3QgaTMyID0gTUJFRFRMU19HRVRfVUlOVDMyX0JFKCZpbnB1dFtpXSwgMCk7CisgICAgICAgIHVpbnQzMl90IG5ld19vdmVyZmxvdyA9IGkzMiA+PiAzMTsKKyAgICAgICAgaTMyID0gKGkzMiA8PCAxKSB8IG92ZXJmbG93OworICAgICAgICBNQkVEVExTX1BVVF9VSU5UMzJfQkUoaTMyLCAmb3V0cHV0W2ldLCAwKTsKKyAgICAgICAgb3ZlcmZsb3cgPSBuZXdfb3ZlcmZsb3c7CisgICAgfQorCisgICAgUl9uID0gKHVuc2lnbmVkIGNoYXIpIG1iZWR0bHNfY3RfdWludF9pZl9lbHNlXzAobWJlZHRsc19jdF9ib29sKGlucHV0WzBdID4+IDcpLCBSX24pOworICAgIG91dHB1dFtibG9ja3NpemUgLSAxXSBePSBSX247CisKKyAgICByZXR1cm4gMDsKK30KKworLyoKKyAqIEdlbmVyYXRlIHN1YmtleXMKKyAqCisgKiAtIGFzIHNwZWNpZmllZCBieSBSRkMgNDQ5Mywgc2VjdGlvbiAyLjMgU3Via2V5IEdlbmVyYXRpb24gQWxnb3JpdGhtCisgKi8KK3N0YXRpYyBpbnQgY21hY19nZW5lcmF0ZV9zdWJrZXlzKG1iZWR0bHNfY2lwaGVyX2NvbnRleHRfdCAqY3R4LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgY2hhciAqSzEsIHVuc2lnbmVkIGNoYXIgKksyKQoreworICAgIGludCByZXQgPSBNQkVEVExTX0VSUl9FUlJPUl9DT1JSVVBUSU9OX0RFVEVDVEVEOworICAgIHVuc2lnbmVkIGNoYXIgTFtNQkVEVExTX0NNQUNfTUFYX0JMT0NLX1NJWkVdOworICAgIHNpemVfdCBvbGVuLCBibG9ja19zaXplOworCisgICAgbWJlZHRsc19wbGF0Zm9ybV96ZXJvaXplKEwsIHNpemVvZihMKSk7CisKKyAgICBibG9ja19zaXplID0gbWJlZHRsc19jaXBoZXJfaW5mb19nZXRfYmxvY2tfc2l6ZShjdHgtPmNpcGhlcl9pbmZvKTsKKworICAgIC8qIENhbGN1bGF0ZSBFaygwKSAqLworICAgIGlmICgocmV0ID0gbWJlZHRsc19jaXBoZXJfdXBkYXRlKGN0eCwgTCwgYmxvY2tfc2l6ZSwgTCwgJm9sZW4pKSAhPSAwKSB7CisgICAgICAgIGdvdG8gZXhpdDsKKyAgICB9CisKKyAgICAvKgorICAgICAqIEdlbmVyYXRlIEsxIGFuZCBLMgorICAgICAqLworICAgIGlmICgocmV0ID0gY21hY19tdWx0aXBseV9ieV91KEsxLCBMLCBibG9ja19zaXplKSkgIT0gMCkgeworICAgICAgICBnb3RvIGV4aXQ7CisgICAgfQorCisgICAgaWYgKChyZXQgPSBjbWFjX211bHRpcGx5X2J5X3UoSzIsIEsxLCBibG9ja19zaXplKSkgIT0gMCkgeworICAgICAgICBnb3RvIGV4aXQ7CisgICAgfQorCitleGl0OgorICAgIG1iZWR0bHNfcGxhdGZvcm1femVyb2l6ZShMLCBzaXplb2YoTCkpOworCisgICAgcmV0dXJuIHJldDsKK30KKworLyoKKyAqIENyZWF0ZSBwYWRkZWQgbGFzdCBibG9jayBmcm9tIChwYXJ0aWFsKSBsYXN0IGJsb2NrLgorICoKKyAqIFdlIGNhbid0IHVzZSB0aGUgcGFkZGluZyBvcHRpb24gZnJvbSB0aGUgY2lwaGVyIGxheWVyLCBhcyBpdCBvbmx5IHdvcmtzIGZvcgorICogQ0JDIGFuZCB3ZSB1c2UgRUNCIG1vZGUsIGFuZCBhbnl3YXkgd2UgbmVlZCB0byBYT1IgSzEgb3IgSzIgaW4gYWRkaXRpb24uCisgKi8KK3N0YXRpYyB2b2lkIGNtYWNfcGFkKHVuc2lnbmVkIGNoYXIgcGFkZGVkX2Jsb2NrW01CRURUTFNfQ01BQ19NQVhfQkxPQ0tfU0laRV0sCisgICAgICAgICAgICAgICAgICAgICBzaXplX3QgcGFkZGVkX2Jsb2NrX2xlbiwKKyAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgKmxhc3RfYmxvY2ssCisgICAgICAgICAgICAgICAgICAgICBzaXplX3QgbGFzdF9ibG9ja19sZW4pCit7CisgICAgc2l6ZV90IGo7CisKKyAgICBmb3IgKGogPSAwOyBqIDwgcGFkZGVkX2Jsb2NrX2xlbjsgaisrKSB7CisgICAgICAgIGlmIChqIDwgbGFzdF9ibG9ja19sZW4pIHsKKyAgICAgICAgICAgIHBhZGRlZF9ibG9ja1tqXSA9IGxhc3RfYmxvY2tbal07CisgICAgICAgIH0gZWxzZSBpZiAoaiA9PSBsYXN0X2Jsb2NrX2xlbikgeworICAgICAgICAgICAgcGFkZGVkX2Jsb2NrW2pdID0gMHg4MDsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHBhZGRlZF9ibG9ja1tqXSA9IDB4MDA7CisgICAgICAgIH0KKyAgICB9Cit9CisKK2ludCBtYmVkdGxzX2NpcGhlcl9jbWFjX3N0YXJ0cyhtYmVkdGxzX2NpcGhlcl9jb250ZXh0X3QgKmN0eCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1bnNpZ25lZCBjaGFyICprZXksIHNpemVfdCBrZXliaXRzKQoreworICAgIG1iZWR0bHNfY2lwaGVyX3R5cGVfdCB0eXBlOworICAgIG1iZWR0bHNfY21hY19jb250ZXh0X3QgKmNtYWNfY3R4OworICAgIGludCByZXR2YWw7CisKKyAgICBpZiAoY3R4ID09IE5VTEwgfHwgY3R4LT5jaXBoZXJfaW5mbyA9PSBOVUxMIHx8IGtleSA9PSBOVUxMKSB7CisgICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9DSVBIRVJfQkFEX0lOUFVUX0RBVEE7CisgICAgfQorCisgICAgaWYgKChyZXR2YWwgPSBtYmVkdGxzX2NpcGhlcl9zZXRrZXkoY3R4LCBrZXksIChpbnQpIGtleWJpdHMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTUJFRFRMU19FTkNSWVBUKSkgIT0gMCkgeworICAgICAgICByZXR1cm4gcmV0dmFsOworICAgIH0KKworICAgIHR5cGUgPSBtYmVkdGxzX2NpcGhlcl9pbmZvX2dldF90eXBlKGN0eC0+Y2lwaGVyX2luZm8pOworCisgICAgc3dpdGNoICh0eXBlKSB7CisgICAgICAgIGNhc2UgTUJFRFRMU19DSVBIRVJfQUVTXzEyOF9FQ0I6CisgICAgICAgIGNhc2UgTUJFRFRMU19DSVBIRVJfQUVTXzE5Ml9FQ0I6CisgICAgICAgIGNhc2UgTUJFRFRMU19DSVBIRVJfQUVTXzI1Nl9FQ0I6CisgICAgICAgIGNhc2UgTUJFRFRMU19DSVBIRVJfREVTX0VERTNfRUNCOgorICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfQ0lQSEVSX0JBRF9JTlBVVF9EQVRBOworICAgIH0KKworICAgIC8qIEFsbG9jYXRlZCBhbmQgaW5pdGlhbGlzZSBpbiB0aGUgY2lwaGVyIGNvbnRleHQgbWVtb3J5IGZvciB0aGUgQ01BQworICAgICAqIGNvbnRleHQgKi8KKyAgICBjbWFjX2N0eCA9IG1iZWR0bHNfY2FsbG9jKDEsIHNpemVvZihtYmVkdGxzX2NtYWNfY29udGV4dF90KSk7CisgICAgaWYgKGNtYWNfY3R4ID09IE5VTEwpIHsKKyAgICAgICAgcmV0dXJuIE1CRURUTFNfRVJSX0NJUEhFUl9BTExPQ19GQUlMRUQ7CisgICAgfQorCisgICAgY3R4LT5jbWFjX2N0eCA9IGNtYWNfY3R4OworCisgICAgbWJlZHRsc19wbGF0Zm9ybV96ZXJvaXplKGNtYWNfY3R4LT5zdGF0ZSwgc2l6ZW9mKGNtYWNfY3R4LT5zdGF0ZSkpOworCisgICAgcmV0dXJuIDA7Cit9CisKK2ludCBtYmVkdGxzX2NpcGhlcl9jbWFjX3VwZGF0ZShtYmVkdGxzX2NpcGhlcl9jb250ZXh0X3QgKmN0eCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1bnNpZ25lZCBjaGFyICppbnB1dCwgc2l6ZV90IGlsZW4pCit7CisgICAgbWJlZHRsc19jbWFjX2NvbnRleHRfdCAqY21hY19jdHg7CisgICAgdW5zaWduZWQgY2hhciAqc3RhdGU7CisgICAgaW50IHJldCA9IDA7CisgICAgc2l6ZV90IG4sIGosIG9sZW4sIGJsb2NrX3NpemU7CisKKyAgICBpZiAoY3R4ID09IE5VTEwgfHwgY3R4LT5jaXBoZXJfaW5mbyA9PSBOVUxMIHx8IGlucHV0ID09IE5VTEwgfHwKKyAgICAgICAgY3R4LT5jbWFjX2N0eCA9PSBOVUxMKSB7CisgICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9DSVBIRVJfQkFEX0lOUFVUX0RBVEE7CisgICAgfQorCisgICAgY21hY19jdHggPSBjdHgtPmNtYWNfY3R4OworICAgIGJsb2NrX3NpemUgPSBtYmVkdGxzX2NpcGhlcl9pbmZvX2dldF9ibG9ja19zaXplKGN0eC0+Y2lwaGVyX2luZm8pOworICAgIHN0YXRlID0gY3R4LT5jbWFjX2N0eC0+c3RhdGU7CisKKyAgICAvKiBXaXRob3V0IHRoZSBNQkVEVExTX0FTU1VNRSBiZWxvdywgZ2NjIC1PMyB3aWxsIGdlbmVyYXRlIGEgd2FybmluZyBvZiB0aGUgZm9ybQorICAgICAqIGVycm9yOiB3cml0aW5nIDE2IGJ5dGVzIGludG8gYSByZWdpb24gb2Ygc2l6ZSAwIFstV2Vycm9yPXN0cmluZ29wLW92ZXJmbG93PV0gKi8KKyAgICBNQkVEVExTX0FTU1VNRShibG9ja19zaXplIDw9IE1CRURUTFNfQ01BQ19NQVhfQkxPQ0tfU0laRSk7CisKKyAgICAvKiBJcyB0aGVyZSBkYXRhIHN0aWxsIHRvIHByb2Nlc3MgZnJvbSB0aGUgbGFzdCBjYWxsLCB0aGF0J3MgZ3JlYXRlciBpbgorICAgICAqIHNpemUgdGhhbiBhIGJsb2NrPyAqLworICAgIGlmIChjbWFjX2N0eC0+dW5wcm9jZXNzZWRfbGVuID4gMCAmJgorICAgICAgICBpbGVuID4gYmxvY2tfc2l6ZSAtIGNtYWNfY3R4LT51bnByb2Nlc3NlZF9sZW4pIHsKKyAgICAgICAgbWVtY3B5KCZjbWFjX2N0eC0+dW5wcm9jZXNzZWRfYmxvY2tbY21hY19jdHgtPnVucHJvY2Vzc2VkX2xlbl0sCisgICAgICAgICAgICAgICBpbnB1dCwKKyAgICAgICAgICAgICAgIGJsb2NrX3NpemUgLSBjbWFjX2N0eC0+dW5wcm9jZXNzZWRfbGVuKTsKKworICAgICAgICBtYmVkdGxzX3hvcl9ub19zaW1kKHN0YXRlLCBjbWFjX2N0eC0+dW5wcm9jZXNzZWRfYmxvY2ssIHN0YXRlLCBibG9ja19zaXplKTsKKworICAgICAgICBpZiAoKHJldCA9IG1iZWR0bHNfY2lwaGVyX3VwZGF0ZShjdHgsIHN0YXRlLCBibG9ja19zaXplLCBzdGF0ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJm9sZW4pKSAhPSAwKSB7CisgICAgICAgICAgICBnb3RvIGV4aXQ7CisgICAgICAgIH0KKworICAgICAgICBpbnB1dCArPSBibG9ja19zaXplIC0gY21hY19jdHgtPnVucHJvY2Vzc2VkX2xlbjsKKyAgICAgICAgaWxlbiAtPSBibG9ja19zaXplIC0gY21hY19jdHgtPnVucHJvY2Vzc2VkX2xlbjsKKyAgICAgICAgY21hY19jdHgtPnVucHJvY2Vzc2VkX2xlbiA9IDA7CisgICAgfQorCisgICAgLyogbiBpcyB0aGUgbnVtYmVyIG9mIGJsb2NrcyBpbmNsdWRpbmcgYW55IGZpbmFsIHBhcnRpYWwgYmxvY2sgKi8KKyAgICBuID0gKGlsZW4gKyBibG9ja19zaXplIC0gMSkgLyBibG9ja19zaXplOworCisgICAgLyogSXRlcmF0ZSBhY3Jvc3MgdGhlIGlucHV0IGRhdGEgaW4gYmxvY2sgc2l6ZWQgY2h1bmtzLCBleGNsdWRpbmcgYW55CisgICAgICogZmluYWwgcGFydGlhbCBvciBjb21wbGV0ZSBibG9jayAqLworICAgIGZvciAoaiA9IDE7IGogPCBuOyBqKyspIHsKKyAgICAgICAgbWJlZHRsc194b3Jfbm9fc2ltZChzdGF0ZSwgaW5wdXQsIHN0YXRlLCBibG9ja19zaXplKTsKKworICAgICAgICBpZiAoKHJldCA9IG1iZWR0bHNfY2lwaGVyX3VwZGF0ZShjdHgsIHN0YXRlLCBibG9ja19zaXplLCBzdGF0ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJm9sZW4pKSAhPSAwKSB7CisgICAgICAgICAgICBnb3RvIGV4aXQ7CisgICAgICAgIH0KKworICAgICAgICBpbGVuIC09IGJsb2NrX3NpemU7CisgICAgICAgIGlucHV0ICs9IGJsb2NrX3NpemU7CisgICAgfQorCisgICAgLyogSWYgdGhlcmUgaXMgZGF0YSBsZWZ0IG92ZXIgdGhhdCB3YXNuJ3QgYWxpZ25lZCB0byBhIGJsb2NrICovCisgICAgaWYgKGlsZW4gPiAwKSB7CisgICAgICAgIG1lbWNweSgmY21hY19jdHgtPnVucHJvY2Vzc2VkX2Jsb2NrW2NtYWNfY3R4LT51bnByb2Nlc3NlZF9sZW5dLAorICAgICAgICAgICAgICAgaW5wdXQsCisgICAgICAgICAgICAgICBpbGVuKTsKKyAgICAgICAgY21hY19jdHgtPnVucHJvY2Vzc2VkX2xlbiArPSBpbGVuOworICAgIH0KKworZXhpdDoKKyAgICByZXR1cm4gcmV0OworfQorCitpbnQgbWJlZHRsc19jaXBoZXJfY21hY19maW5pc2gobWJlZHRsc19jaXBoZXJfY29udGV4dF90ICpjdHgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgY2hhciAqb3V0cHV0KQoreworICAgIG1iZWR0bHNfY21hY19jb250ZXh0X3QgKmNtYWNfY3R4OworICAgIHVuc2lnbmVkIGNoYXIgKnN0YXRlLCAqbGFzdF9ibG9jazsKKyAgICB1bnNpZ25lZCBjaGFyIEsxW01CRURUTFNfQ01BQ19NQVhfQkxPQ0tfU0laRV07CisgICAgdW5zaWduZWQgY2hhciBLMltNQkVEVExTX0NNQUNfTUFYX0JMT0NLX1NJWkVdOworICAgIHVuc2lnbmVkIGNoYXIgTV9sYXN0W01CRURUTFNfQ01BQ19NQVhfQkxPQ0tfU0laRV07CisgICAgaW50IHJldCA9IE1CRURUTFNfRVJSX0VSUk9SX0NPUlJVUFRJT05fREVURUNURUQ7CisgICAgc2l6ZV90IG9sZW4sIGJsb2NrX3NpemU7CisKKyAgICBpZiAoY3R4ID09IE5VTEwgfHwgY3R4LT5jaXBoZXJfaW5mbyA9PSBOVUxMIHx8IGN0eC0+Y21hY19jdHggPT0gTlVMTCB8fAorICAgICAgICBvdXRwdXQgPT0gTlVMTCkgeworICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfQ0lQSEVSX0JBRF9JTlBVVF9EQVRBOworICAgIH0KKworICAgIGNtYWNfY3R4ID0gY3R4LT5jbWFjX2N0eDsKKyAgICBibG9ja19zaXplID0gbWJlZHRsc19jaXBoZXJfaW5mb19nZXRfYmxvY2tfc2l6ZShjdHgtPmNpcGhlcl9pbmZvKTsKKyAgICBNQkVEVExTX0FTU1VNRShibG9ja19zaXplIDw9IE1CRURUTFNfQ01BQ19NQVhfQkxPQ0tfU0laRSk7IC8vIHNpbGVuY2UgR0NDIHdhcm5pbmcKKyAgICBzdGF0ZSA9IGNtYWNfY3R4LT5zdGF0ZTsKKworICAgIG1iZWR0bHNfcGxhdGZvcm1femVyb2l6ZShLMSwgc2l6ZW9mKEsxKSk7CisgICAgbWJlZHRsc19wbGF0Zm9ybV96ZXJvaXplKEsyLCBzaXplb2YoSzIpKTsKKyAgICBjbWFjX2dlbmVyYXRlX3N1YmtleXMoY3R4LCBLMSwgSzIpOworCisgICAgbGFzdF9ibG9jayA9IGNtYWNfY3R4LT51bnByb2Nlc3NlZF9ibG9jazsKKworICAgIC8qIENhbGN1bGF0ZSBsYXN0IGJsb2NrICovCisgICAgaWYgKGNtYWNfY3R4LT51bnByb2Nlc3NlZF9sZW4gPCBibG9ja19zaXplKSB7CisgICAgICAgIGNtYWNfcGFkKE1fbGFzdCwgYmxvY2tfc2l6ZSwgbGFzdF9ibG9jaywgY21hY19jdHgtPnVucHJvY2Vzc2VkX2xlbik7CisgICAgICAgIG1iZWR0bHNfeG9yKE1fbGFzdCwgTV9sYXN0LCBLMiwgYmxvY2tfc2l6ZSk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgLyogTGFzdCBibG9jayBpcyBjb21wbGV0ZSBibG9jayAqLworICAgICAgICBtYmVkdGxzX3hvcihNX2xhc3QsIGxhc3RfYmxvY2ssIEsxLCBibG9ja19zaXplKTsKKyAgICB9CisKKworICAgIG1iZWR0bHNfeG9yKHN0YXRlLCBNX2xhc3QsIHN0YXRlLCBibG9ja19zaXplKTsKKyAgICBpZiAoKHJldCA9IG1iZWR0bHNfY2lwaGVyX3VwZGF0ZShjdHgsIHN0YXRlLCBibG9ja19zaXplLCBzdGF0ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmb2xlbikpICE9IDApIHsKKyAgICAgICAgZ290byBleGl0OworICAgIH0KKworICAgIG1lbWNweShvdXRwdXQsIHN0YXRlLCBibG9ja19zaXplKTsKKworZXhpdDoKKyAgICAvKiBXaXBlIHRoZSBnZW5lcmF0ZWQga2V5cyBvbiB0aGUgc3RhY2ssIGFuZCBhbnkgb3RoZXIgdHJhbnNpZW50cyB0byBhdm9pZAorICAgICAqIHNpZGUgY2hhbm5lbCBsZWFrYWdlICovCisgICAgbWJlZHRsc19wbGF0Zm9ybV96ZXJvaXplKEsxLCBzaXplb2YoSzEpKTsKKyAgICBtYmVkdGxzX3BsYXRmb3JtX3plcm9pemUoSzIsIHNpemVvZihLMikpOworCisgICAgY21hY19jdHgtPnVucHJvY2Vzc2VkX2xlbiA9IDA7CisgICAgbWJlZHRsc19wbGF0Zm9ybV96ZXJvaXplKGNtYWNfY3R4LT51bnByb2Nlc3NlZF9ibG9jaywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZW9mKGNtYWNfY3R4LT51bnByb2Nlc3NlZF9ibG9jaykpOworCisgICAgbWJlZHRsc19wbGF0Zm9ybV96ZXJvaXplKHN0YXRlLCBNQkVEVExTX0NNQUNfTUFYX0JMT0NLX1NJWkUpOworICAgIHJldHVybiByZXQ7Cit9CisKK2ludCBtYmVkdGxzX2NpcGhlcl9jbWFjX3Jlc2V0KG1iZWR0bHNfY2lwaGVyX2NvbnRleHRfdCAqY3R4KQoreworICAgIG1iZWR0bHNfY21hY19jb250ZXh0X3QgKmNtYWNfY3R4OworCisgICAgaWYgKGN0eCA9PSBOVUxMIHx8IGN0eC0+Y2lwaGVyX2luZm8gPT0gTlVMTCB8fCBjdHgtPmNtYWNfY3R4ID09IE5VTEwpIHsKKyAgICAgICAgcmV0dXJuIE1CRURUTFNfRVJSX0NJUEhFUl9CQURfSU5QVVRfREFUQTsKKyAgICB9CisKKyAgICBjbWFjX2N0eCA9IGN0eC0+Y21hY19jdHg7CisKKyAgICAvKiBSZXNldCB0aGUgaW50ZXJuYWwgc3RhdGUgKi8KKyAgICBjbWFjX2N0eC0+dW5wcm9jZXNzZWRfbGVuID0gMDsKKyAgICBtYmVkdGxzX3BsYXRmb3JtX3plcm9pemUoY21hY19jdHgtPnVucHJvY2Vzc2VkX2Jsb2NrLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplb2YoY21hY19jdHgtPnVucHJvY2Vzc2VkX2Jsb2NrKSk7CisgICAgbWJlZHRsc19wbGF0Zm9ybV96ZXJvaXplKGNtYWNfY3R4LT5zdGF0ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZW9mKGNtYWNfY3R4LT5zdGF0ZSkpOworCisgICAgcmV0dXJuIDA7Cit9CisKK2ludCBtYmVkdGxzX2NpcGhlcl9jbWFjKGNvbnN0IG1iZWR0bHNfY2lwaGVyX2luZm9fdCAqY2lwaGVyX2luZm8sCisgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1bnNpZ25lZCBjaGFyICprZXksIHNpemVfdCBrZXlsZW4sCisgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1bnNpZ25lZCBjaGFyICppbnB1dCwgc2l6ZV90IGlsZW4sCisgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBjaGFyICpvdXRwdXQpCit7CisgICAgbWJlZHRsc19jaXBoZXJfY29udGV4dF90IGN0eDsKKyAgICBpbnQgcmV0ID0gTUJFRFRMU19FUlJfRVJST1JfQ09SUlVQVElPTl9ERVRFQ1RFRDsKKworICAgIGlmIChjaXBoZXJfaW5mbyA9PSBOVUxMIHx8IGtleSA9PSBOVUxMIHx8IGlucHV0ID09IE5VTEwgfHwgb3V0cHV0ID09IE5VTEwpIHsKKyAgICAgICAgcmV0dXJuIE1CRURUTFNfRVJSX0NJUEhFUl9CQURfSU5QVVRfREFUQTsKKyAgICB9CisKKyAgICBtYmVkdGxzX2NpcGhlcl9pbml0KCZjdHgpOworCisgICAgaWYgKChyZXQgPSBtYmVkdGxzX2NpcGhlcl9zZXR1cCgmY3R4LCBjaXBoZXJfaW5mbykpICE9IDApIHsKKyAgICAgICAgZ290byBleGl0OworICAgIH0KKworICAgIHJldCA9IG1iZWR0bHNfY2lwaGVyX2NtYWNfc3RhcnRzKCZjdHgsIGtleSwga2V5bGVuKTsKKyAgICBpZiAocmV0ICE9IDApIHsKKyAgICAgICAgZ290byBleGl0OworICAgIH0KKworICAgIHJldCA9IG1iZWR0bHNfY2lwaGVyX2NtYWNfdXBkYXRlKCZjdHgsIGlucHV0LCBpbGVuKTsKKyAgICBpZiAocmV0ICE9IDApIHsKKyAgICAgICAgZ290byBleGl0OworICAgIH0KKworICAgIHJldCA9IG1iZWR0bHNfY2lwaGVyX2NtYWNfZmluaXNoKCZjdHgsIG91dHB1dCk7CisKK2V4aXQ6CisgICAgbWJlZHRsc19jaXBoZXJfZnJlZSgmY3R4KTsKKworICAgIHJldHVybiByZXQ7Cit9CisKKyNpZiBkZWZpbmVkKE1CRURUTFNfQUVTX0MpCisvKgorICogSW1wbGVtZW50YXRpb24gb2YgQUVTLUNNQUMtUFJGLTEyOCBkZWZpbmVkIGluIFJGQyA0NjE1CisgKi8KK2ludCBtYmVkdGxzX2Flc19jbWFjX3ByZl8xMjgoY29uc3QgdW5zaWduZWQgY2hhciAqa2V5LCBzaXplX3Qga2V5X2xlbmd0aCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdW5zaWduZWQgY2hhciAqaW5wdXQsIHNpemVfdCBpbl9sZW4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGNoYXIgb3V0cHV0WzE2XSkKK3sKKyAgICBpbnQgcmV0ID0gTUJFRFRMU19FUlJfRVJST1JfQ09SUlVQVElPTl9ERVRFQ1RFRDsKKyAgICBjb25zdCBtYmVkdGxzX2NpcGhlcl9pbmZvX3QgKmNpcGhlcl9pbmZvOworICAgIHVuc2lnbmVkIGNoYXIgemVyb19rZXlbTUJFRFRMU19BRVNfQkxPQ0tfU0laRV07CisgICAgdW5zaWduZWQgY2hhciBpbnRfa2V5W01CRURUTFNfQUVTX0JMT0NLX1NJWkVdOworCisgICAgaWYgKGtleSA9PSBOVUxMIHx8IGlucHV0ID09IE5VTEwgfHwgb3V0cHV0ID09IE5VTEwpIHsKKyAgICAgICAgcmV0dXJuIE1CRURUTFNfRVJSX0NJUEhFUl9CQURfSU5QVVRfREFUQTsKKyAgICB9CisKKyAgICBjaXBoZXJfaW5mbyA9IG1iZWR0bHNfY2lwaGVyX2luZm9fZnJvbV90eXBlKE1CRURUTFNfQ0lQSEVSX0FFU18xMjhfRUNCKTsKKyAgICBpZiAoY2lwaGVyX2luZm8gPT0gTlVMTCkgeworICAgICAgICAvKiBGYWlsaW5nIGF0IHRoaXMgcG9pbnQgbXVzdCBiZSBkdWUgdG8gYSBidWlsZCBpc3N1ZSAqLworICAgICAgICByZXQgPSBNQkVEVExTX0VSUl9DSVBIRVJfRkVBVFVSRV9VTkFWQUlMQUJMRTsKKyAgICAgICAgZ290byBleGl0OworICAgIH0KKworICAgIGlmIChrZXlfbGVuZ3RoID09IE1CRURUTFNfQUVTX0JMT0NLX1NJWkUpIHsKKyAgICAgICAgLyogVXNlIGtleSBhcyBpcyAqLworICAgICAgICBtZW1jcHkoaW50X2tleSwga2V5LCBNQkVEVExTX0FFU19CTE9DS19TSVpFKTsKKyAgICB9IGVsc2UgeworICAgICAgICBtZW1zZXQoemVyb19rZXksIDAsIE1CRURUTFNfQUVTX0JMT0NLX1NJWkUpOworCisgICAgICAgIHJldCA9IG1iZWR0bHNfY2lwaGVyX2NtYWMoY2lwaGVyX2luZm8sIHplcm9fa2V5LCAxMjgsIGtleSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXlfbGVuZ3RoLCBpbnRfa2V5KTsKKyAgICAgICAgaWYgKHJldCAhPSAwKSB7CisgICAgICAgICAgICBnb3RvIGV4aXQ7CisgICAgICAgIH0KKyAgICB9CisKKyAgICByZXQgPSBtYmVkdGxzX2NpcGhlcl9jbWFjKGNpcGhlcl9pbmZvLCBpbnRfa2V5LCAxMjgsIGlucHV0LCBpbl9sZW4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvdXRwdXQpOworCitleGl0OgorICAgIG1iZWR0bHNfcGxhdGZvcm1femVyb2l6ZShpbnRfa2V5LCBzaXplb2YoaW50X2tleSkpOworCisgICAgcmV0dXJuIHJldDsKK30KKyNlbmRpZiAvKiBNQkVEVExTX0FFU19DICovCisKKyNpZiBkZWZpbmVkKE1CRURUTFNfU0VMRl9URVNUKQorLyoKKyAqIENNQUMgdGVzdCBkYXRhIGZvciBTUDgwMC0zOEIKKyAqIGh0dHA6Ly9jc3JjLm5pc3QuZ292L2dyb3Vwcy9TVC90b29sa2l0L2RvY3VtZW50cy9FeGFtcGxlcy9BRVNfQ01BQy5wZGYKKyAqIGh0dHA6Ly9jc3JjLm5pc3QuZ292L2dyb3Vwcy9TVC90b29sa2l0L2RvY3VtZW50cy9FeGFtcGxlcy9UREVTX0NNQUMucGRmCisgKgorICogQUVTLUNNQUMtUFJGLTEyOCB0ZXN0IGRhdGEgZnJvbSBSRkMgNDYxNQorICogaHR0cHM6Ly90b29scy5pZXRmLm9yZy9odG1sL3JmYzQ2MTUjcGFnZS00CisgKi8KKworI2RlZmluZSBOQl9DTUFDX1RFU1RTX1BFUl9LRVkgNAorI2RlZmluZSBOQl9QUkZfVEVTVFMgMworCisjaWYgZGVmaW5lZChNQkVEVExTX0FFU19DKSB8fCBkZWZpbmVkKE1CRURUTFNfREVTX0MpCisvKiBBbGwgQ01BQyB0ZXN0IGlucHV0cyBhcmUgdHJ1bmNhdGVkIGZyb20gdGhlIHNhbWUgNjQgYnl0ZSBidWZmZXIuICovCitzdGF0aWMgY29uc3QgdW5zaWduZWQgY2hhciB0ZXN0X21lc3NhZ2VbXSA9IHsKKyAgICAvKiBQVCAqLworICAgIDB4NmIsIDB4YzEsIDB4YmUsIDB4ZTIsICAgICAweDJlLCAweDQwLCAweDlmLCAweDk2LAorICAgIDB4ZTksIDB4M2QsIDB4N2UsIDB4MTEsICAgICAweDczLCAweDkzLCAweDE3LCAweDJhLAorICAgIDB4YWUsIDB4MmQsIDB4OGEsIDB4NTcsICAgICAweDFlLCAweDAzLCAweGFjLCAweDljLAorICAgIDB4OWUsIDB4YjcsIDB4NmYsIDB4YWMsICAgICAweDQ1LCAweGFmLCAweDhlLCAweDUxLAorICAgIDB4MzAsIDB4YzgsIDB4MWMsIDB4NDYsICAgICAweGEzLCAweDVjLCAweGU0LCAweDExLAorICAgIDB4ZTUsIDB4ZmIsIDB4YzEsIDB4MTksICAgICAweDFhLCAweDBhLCAweDUyLCAweGVmLAorICAgIDB4ZjYsIDB4OWYsIDB4MjQsIDB4NDUsICAgICAweGRmLCAweDRmLCAweDliLCAweDE3LAorICAgIDB4YWQsIDB4MmIsIDB4NDEsIDB4N2IsICAgICAweGU2LCAweDZjLCAweDM3LCAweDEwCit9OworI2VuZGlmIC8qIE1CRURUTFNfQUVTX0MgfHwgTUJFRFRMU19ERVNfQyAqLworCisjaWYgZGVmaW5lZChNQkVEVExTX0FFU19DKQorLyogVHJ1bmNhdGlvbiBwb2ludCBvZiBtZXNzYWdlIGZvciBBRVMgQ01BQyB0ZXN0cyAgKi8KK3N0YXRpYyBjb25zdCAgdW5zaWduZWQgaW50ICBhZXNfbWVzc2FnZV9sZW5ndGhzW05CX0NNQUNfVEVTVFNfUEVSX0tFWV0gPSB7CisgICAgLyogTWxlbiAqLworICAgIDAsCisgICAgMTYsCisgICAgMjAsCisgICAgNjQKK307CisKKy8qIENNQUMtQUVTMTI4IFRlc3QgRGF0YSAqLworc3RhdGljIGNvbnN0IHVuc2lnbmVkIGNoYXIgYWVzXzEyOF9rZXlbMTZdID0geworICAgIDB4MmIsIDB4N2UsIDB4MTUsIDB4MTYsICAgICAweDI4LCAweGFlLCAweGQyLCAweGE2LAorICAgIDB4YWIsIDB4ZjcsIDB4MTUsIDB4ODgsICAgICAweDA5LCAweGNmLCAweDRmLCAweDNjCit9Oworc3RhdGljIGNvbnN0IHVuc2lnbmVkIGNoYXIgYWVzXzEyOF9zdWJrZXlzWzJdW01CRURUTFNfQUVTX0JMT0NLX1NJWkVdID0geworICAgIHsKKyAgICAgICAgLyogSzEgKi8KKyAgICAgICAgMHhmYiwgMHhlZSwgMHhkNiwgMHgxOCwgICAgIDB4MzUsIDB4NzEsIDB4MzMsIDB4NjYsCisgICAgICAgIDB4N2MsIDB4ODUsIDB4ZTAsIDB4OGYsICAgICAweDcyLCAweDM2LCAweGE4LCAweGRlCisgICAgfSwKKyAgICB7CisgICAgICAgIC8qIEsyICovCisgICAgICAgIDB4ZjcsIDB4ZGQsIDB4YWMsIDB4MzAsICAgICAweDZhLCAweGUyLCAweDY2LCAweGNjLAorICAgICAgICAweGY5LCAweDBiLCAweGMxLCAweDFlLCAgICAgMHhlNCwgMHg2ZCwgMHg1MSwgMHgzYgorICAgIH0KK307CitzdGF0aWMgY29uc3QgdW5zaWduZWQgY2hhciBhZXNfMTI4X2V4cGVjdGVkX3Jlc3VsdFtOQl9DTUFDX1RFU1RTX1BFUl9LRVldW01CRURUTFNfQUVTX0JMT0NLX1NJWkVdID0KK3sKKyAgICB7CisgICAgICAgIC8qIEV4YW1wbGUgIzEgKi8KKyAgICAgICAgMHhiYiwgMHgxZCwgMHg2OSwgMHgyOSwgICAgIDB4ZTksIDB4NTksIDB4MzcsIDB4MjgsCisgICAgICAgIDB4N2YsIDB4YTMsIDB4N2QsIDB4MTIsICAgICAweDliLCAweDc1LCAweDY3LCAweDQ2CisgICAgfSwKKyAgICB7CisgICAgICAgIC8qIEV4YW1wbGUgIzIgKi8KKyAgICAgICAgMHgwNywgMHgwYSwgMHgxNiwgMHhiNCwgICAgIDB4NmIsIDB4NGQsIDB4NDEsIDB4NDQsCisgICAgICAgIDB4ZjcsIDB4OWIsIDB4ZGQsIDB4OWQsICAgICAweGQwLCAweDRhLCAweDI4LCAweDdjCisgICAgfSwKKyAgICB7CisgICAgICAgIC8qIEV4YW1wbGUgIzMgKi8KKyAgICAgICAgMHg3ZCwgMHg4NSwgMHg0NCwgMHg5ZSwgICAgIDB4YTYsIDB4ZWEsIDB4MTksIDB4YzgsCisgICAgICAgIDB4MjMsIDB4YTcsIDB4YmYsIDB4NzgsICAgICAweDgzLCAweDdkLCAweGZhLCAweGRlCisgICAgfSwKKyAgICB7CisgICAgICAgIC8qIEV4YW1wbGUgIzQgKi8KKyAgICAgICAgMHg1MSwgMHhmMCwgMHhiZSwgMHhiZiwgICAgIDB4N2UsIDB4M2IsIDB4OWQsIDB4OTIsCisgICAgICAgIDB4ZmMsIDB4NDksIDB4NzQsIDB4MTcsICAgICAweDc5LCAweDM2LCAweDNjLCAweGZlCisgICAgfQorfTsKKworLyogQ01BQy1BRVMxOTIgVGVzdCBEYXRhICovCisjaWYgIWRlZmluZWQoTUJFRFRMU19BRVNfT05MWV8xMjhfQklUX0tFWV9MRU5HVEgpCitzdGF0aWMgY29uc3QgdW5zaWduZWQgY2hhciBhZXNfMTkyX2tleVsyNF0gPSB7CisgICAgMHg4ZSwgMHg3MywgMHhiMCwgMHhmNywgICAgIDB4ZGEsIDB4MGUsIDB4NjQsIDB4NTIsCisgICAgMHhjOCwgMHgxMCwgMHhmMywgMHgyYiwgICAgIDB4ODAsIDB4OTAsIDB4NzksIDB4ZTUsCisgICAgMHg2MiwgMHhmOCwgMHhlYSwgMHhkMiwgICAgIDB4NTIsIDB4MmMsIDB4NmIsIDB4N2IKK307CitzdGF0aWMgY29uc3QgdW5zaWduZWQgY2hhciBhZXNfMTkyX3N1YmtleXNbMl1bTUJFRFRMU19BRVNfQkxPQ0tfU0laRV0gPSB7CisgICAgeworICAgICAgICAvKiBLMSAqLworICAgICAgICAweDQ0LCAweDhhLCAweDViLCAweDFjLCAgICAgMHg5MywgMHg1MSwgMHg0YiwgMHgyNywKKyAgICAgICAgMHgzZSwgMHhlNiwgMHg0MywgMHg5ZCwgICAgIDB4ZDQsIDB4ZGEsIDB4YTIsIDB4OTYKKyAgICB9LAorICAgIHsKKyAgICAgICAgLyogSzIgKi8KKyAgICAgICAgMHg4OSwgMHgxNCwgMHhiNiwgMHgzOSwgICAgIDB4MjYsIDB4YTIsIDB4OTYsIDB4NGUsCisgICAgICAgIDB4N2QsIDB4Y2MsIDB4ODcsIDB4M2IsICAgICAweGE5LCAweGI1LCAweDQ1LCAweDJjCisgICAgfQorfTsKK3N0YXRpYyBjb25zdCB1bnNpZ25lZCBjaGFyIGFlc18xOTJfZXhwZWN0ZWRfcmVzdWx0W05CX0NNQUNfVEVTVFNfUEVSX0tFWV1bTUJFRFRMU19BRVNfQkxPQ0tfU0laRV0gPQoreworICAgIHsKKyAgICAgICAgLyogRXhhbXBsZSAjMSAqLworICAgICAgICAweGQxLCAweDdkLCAweGRmLCAweDQ2LCAgICAgMHhhZCwgMHhhYSwgMHhjZCwgMHhlNSwKKyAgICAgICAgMHgzMSwgMHhjYSwgMHhjNCwgMHg4MywgICAgIDB4ZGUsIDB4N2EsIDB4OTMsIDB4NjcKKyAgICB9LAorICAgIHsKKyAgICAgICAgLyogRXhhbXBsZSAjMiAqLworICAgICAgICAweDllLCAweDk5LCAweGE3LCAweGJmLCAgICAgMHgzMSwgMHhlNywgMHgxMCwgMHg5MCwKKyAgICAgICAgMHgwNiwgMHg2MiwgMHhmNiwgMHg1ZSwgICAgIDB4NjEsIDB4N2MsIDB4NTEsIDB4ODQKKyAgICB9LAorICAgIHsKKyAgICAgICAgLyogRXhhbXBsZSAjMyAqLworICAgICAgICAweDNkLCAweDc1LCAweGMxLCAweDk0LCAgICAgMHhlZCwgMHg5NiwgMHgwNywgMHgwNCwKKyAgICAgICAgMHg0NCwgMHhhOSwgMHhmYSwgMHg3ZSwgICAgIDB4YzcsIDB4NDAsIDB4ZWMsIDB4ZjgKKyAgICB9LAorICAgIHsKKyAgICAgICAgLyogRXhhbXBsZSAjNCAqLworICAgICAgICAweGExLCAweGQ1LCAweGRmLCAweDBlLCAgICAgMHhlZCwgMHg3OSwgMHgwZiwgMHg3OSwKKyAgICAgICAgMHg0ZCwgMHg3NywgMHg1OCwgMHg5NiwgICAgIDB4NTksIDB4ZjMsIDB4OWEsIDB4MTEKKyAgICB9Cit9OworI2VuZGlmIC8qICFNQkVEVExTX0FFU19PTkxZXzEyOF9CSVRfS0VZX0xFTkdUSCAqLworCisvKiBDTUFDLUFFUzI1NiBUZXN0IERhdGEgKi8KKyNpZiAhZGVmaW5lZChNQkVEVExTX0FFU19PTkxZXzEyOF9CSVRfS0VZX0xFTkdUSCkKK3N0YXRpYyBjb25zdCB1bnNpZ25lZCBjaGFyIGFlc18yNTZfa2V5WzMyXSA9IHsKKyAgICAweDYwLCAweDNkLCAweGViLCAweDEwLCAgICAgMHgxNSwgMHhjYSwgMHg3MSwgMHhiZSwKKyAgICAweDJiLCAweDczLCAweGFlLCAweGYwLCAgICAgMHg4NSwgMHg3ZCwgMHg3NywgMHg4MSwKKyAgICAweDFmLCAweDM1LCAweDJjLCAweDA3LCAgICAgMHgzYiwgMHg2MSwgMHgwOCwgMHhkNywKKyAgICAweDJkLCAweDk4LCAweDEwLCAweGEzLCAgICAgMHgwOSwgMHgxNCwgMHhkZiwgMHhmNAorfTsKK3N0YXRpYyBjb25zdCB1bnNpZ25lZCBjaGFyIGFlc18yNTZfc3Via2V5c1syXVtNQkVEVExTX0FFU19CTE9DS19TSVpFXSA9IHsKKyAgICB7CisgICAgICAgIC8qIEsxICovCisgICAgICAgIDB4Y2EsIDB4ZDEsIDB4ZWQsIDB4MDMsICAgICAweDI5LCAweDllLCAweGVkLCAweGFjLAorICAgICAgICAweDJlLCAweDlhLCAweDk5LCAweDgwLCAgICAgMHg4NiwgMHgyMSwgMHg1MCwgMHgyZgorICAgIH0sCisgICAgeworICAgICAgICAvKiBLMiAqLworICAgICAgICAweDk1LCAweGEzLCAweGRhLCAweDA2LCAgICAgMHg1MywgMHgzZCwgMHhkYiwgMHg1OCwKKyAgICAgICAgMHg1ZCwgMHgzNSwgMHgzMywgMHgwMSwgICAgIDB4MGMsIDB4NDIsIDB4YTAsIDB4ZDkKKyAgICB9Cit9Oworc3RhdGljIGNvbnN0IHVuc2lnbmVkIGNoYXIgYWVzXzI1Nl9leHBlY3RlZF9yZXN1bHRbTkJfQ01BQ19URVNUU19QRVJfS0VZXVtNQkVEVExTX0FFU19CTE9DS19TSVpFXSA9Cit7CisgICAgeworICAgICAgICAvKiBFeGFtcGxlICMxICovCisgICAgICAgIDB4MDIsIDB4ODksIDB4NjIsIDB4ZjYsICAgICAweDFiLCAweDdiLCAweGY4LCAweDllLAorICAgICAgICAweGZjLCAweDZiLCAweDU1LCAweDFmLCAgICAgMHg0NiwgMHg2NywgMHhkOSwgMHg4MworICAgIH0sCisgICAgeworICAgICAgICAvKiBFeGFtcGxlICMyICovCisgICAgICAgIDB4MjgsIDB4YTcsIDB4MDIsIDB4M2YsICAgICAweDQ1LCAweDJlLCAweDhmLCAweDgyLAorICAgICAgICAweGJkLCAweDRiLCAweGYyLCAweDhkLCAgICAgMHg4YywgMHgzNywgMHhjMywgMHg1YworICAgIH0sCisgICAgeworICAgICAgICAvKiBFeGFtcGxlICMzICovCisgICAgICAgIDB4MTUsIDB4NjcsIDB4MjcsIDB4ZGMsICAgICAweDA4LCAweDc4LCAweDk0LCAweDRhLAorICAgICAgICAweDAyLCAweDNjLCAweDFmLCAweGUwLCAgICAgMHgzYiwgMHhhZCwgMHg2ZCwgMHg5MworICAgIH0sCisgICAgeworICAgICAgICAvKiBFeGFtcGxlICM0ICovCisgICAgICAgIDB4ZTEsIDB4OTksIDB4MjEsIDB4OTAsICAgICAweDU0LCAweDlmLCAweDZlLCAweGQ1LAorICAgICAgICAweDY5LCAweDZhLCAweDJjLCAweDA1LCAgICAgMHg2YywgMHgzMSwgMHg1NCwgMHgxMAorICAgIH0KK307CisjZW5kaWYgLyogIU1CRURUTFNfQUVTX09OTFlfMTI4X0JJVF9LRVlfTEVOR1RIICovCisjZW5kaWYgLyogTUJFRFRMU19BRVNfQyAqLworCisjaWYgZGVmaW5lZChNQkVEVExTX0RFU19DKQorLyogVHJ1bmNhdGlvbiBwb2ludCBvZiBtZXNzYWdlIGZvciAzREVTIENNQUMgdGVzdHMgICovCitzdGF0aWMgY29uc3QgdW5zaWduZWQgaW50IGRlczNfbWVzc2FnZV9sZW5ndGhzW05CX0NNQUNfVEVTVFNfUEVSX0tFWV0gPSB7CisgICAgMCwKKyAgICAxNiwKKyAgICAyMCwKKyAgICAzMgorfTsKKworLyogQ01BQy1UREVTIChHZW5lcmF0aW9uKSAtIDIgS2V5IFRlc3QgRGF0YSAqLworc3RhdGljIGNvbnN0IHVuc2lnbmVkIGNoYXIgZGVzM18ya2V5X2tleVsyNF0gPSB7CisgICAgLyogS2V5MSAqLworICAgIDB4MDEsIDB4MjMsIDB4NDUsIDB4NjcsICAgICAweDg5LCAweGFiLCAweGNkLCAweGVmLAorICAgIC8qIEtleTIgKi8KKyAgICAweDIzLCAweDQ1LCAweDY3LCAweDg5LCAgICAgMHhhYiwgMHhjZCwgMHhFRiwgMHgwMSwKKyAgICAvKiBLZXkzICovCisgICAgMHgwMSwgMHgyMywgMHg0NSwgMHg2NywgICAgIDB4ODksIDB4YWIsIDB4Y2QsIDB4ZWYKK307CitzdGF0aWMgY29uc3QgdW5zaWduZWQgY2hhciBkZXMzXzJrZXlfc3Via2V5c1syXVs4XSA9IHsKKyAgICB7CisgICAgICAgIC8qIEsxICovCisgICAgICAgIDB4MGQsIDB4ZDIsIDB4Y2IsIDB4N2EsICAgICAweDNkLCAweDg4LCAweDg4LCAweGQ5CisgICAgfSwKKyAgICB7CisgICAgICAgIC8qIEsyICovCisgICAgICAgIDB4MWIsIDB4YTUsIDB4OTYsIDB4ZjQsICAgICAweDdiLCAweDExLCAweDExLCAweGIyCisgICAgfQorfTsKK3N0YXRpYyBjb25zdCB1bnNpZ25lZCBjaGFyIGRlczNfMmtleV9leHBlY3RlZF9yZXN1bHRbTkJfQ01BQ19URVNUU19QRVJfS0VZXVtNQkVEVExTX0RFUzNfQkxPQ0tfU0laRV0KKyAgICA9IHsKKyAgICB7CisgICAgICAgIC8qIFNhbXBsZSAjMSAqLworICAgICAgICAweDc5LCAweGNlLCAweDUyLCAweGE3LCAgICAgMHhmNywgMHg4NiwgMHhhOSwgMHg2MAorICAgIH0sCisgICAgeworICAgICAgICAvKiBTYW1wbGUgIzIgKi8KKyAgICAgICAgMHhjYywgMHgxOCwgMHhhMCwgMHhiNywgICAgIDB4OWEsIDB4ZjIsIDB4NDEsIDB4M2IKKyAgICB9LAorICAgIHsKKyAgICAgICAgLyogU2FtcGxlICMzICovCisgICAgICAgIDB4YzAsIDB4NmQsIDB4MzcsIDB4N2UsICAgICAweGNkLCAweDEwLCAweDE5LCAweDY5CisgICAgfSwKKyAgICB7CisgICAgICAgIC8qIFNhbXBsZSAjNCAqLworICAgICAgICAweDljLCAweGQzLCAweDM1LCAweDgwLCAgICAgMHhmOSwgMHhiNiwgMHg0ZCwgMHhmYgorICAgIH0KKyAgICB9OworCisvKiBDTUFDLVRERVMgKEdlbmVyYXRpb24pIC0gMyBLZXkgVGVzdCBEYXRhICovCitzdGF0aWMgY29uc3QgdW5zaWduZWQgY2hhciBkZXMzXzNrZXlfa2V5WzI0XSA9IHsKKyAgICAvKiBLZXkxICovCisgICAgMHgwMSwgMHgyMywgMHg0NSwgMHg2NywgICAgIDB4ODksIDB4YWEsIDB4Y2QsIDB4ZWYsCisgICAgLyogS2V5MiAqLworICAgIDB4MjMsIDB4NDUsIDB4NjcsIDB4ODksICAgICAweGFiLCAweGNkLCAweGVmLCAweDAxLAorICAgIC8qIEtleTMgKi8KKyAgICAweDQ1LCAweDY3LCAweDg5LCAweGFiLCAgICAgMHhjZCwgMHhlZiwgMHgwMSwgMHgyMworfTsKK3N0YXRpYyBjb25zdCB1bnNpZ25lZCBjaGFyIGRlczNfM2tleV9zdWJrZXlzWzJdWzhdID0geworICAgIHsKKyAgICAgICAgLyogSzEgKi8KKyAgICAgICAgMHg5ZCwgMHg3NCwgMHhlNywgMHgzOSwgICAgIDB4MzMsIDB4MTcsIDB4OTYsIDB4YzAKKyAgICB9LAorICAgIHsKKyAgICAgICAgLyogSzIgKi8KKyAgICAgICAgMHgzYSwgMHhlOSwgMHhjZSwgMHg3MiwgICAgIDB4NjYsIDB4MmYsIDB4MmQsIDB4OWIKKyAgICB9Cit9Oworc3RhdGljIGNvbnN0IHVuc2lnbmVkIGNoYXIgZGVzM18za2V5X2V4cGVjdGVkX3Jlc3VsdFtOQl9DTUFDX1RFU1RTX1BFUl9LRVldW01CRURUTFNfREVTM19CTE9DS19TSVpFXQorICAgID0geworICAgIHsKKyAgICAgICAgLyogU2FtcGxlICMxICovCisgICAgICAgIDB4N2QsIDB4YjAsIDB4ZDMsIDB4N2QsICAgICAweGY5LCAweDM2LCAweGM1LCAweDUwCisgICAgfSwKKyAgICB7CisgICAgICAgIC8qIFNhbXBsZSAjMiAqLworICAgICAgICAweDMwLCAweDIzLCAweDljLCAweGYxLCAgICAgMHhmNSwgMHgyZSwgMHg2NiwgMHgwOQorICAgIH0sCisgICAgeworICAgICAgICAvKiBTYW1wbGUgIzMgKi8KKyAgICAgICAgMHg2YywgMHg5ZiwgMHgzZSwgMHhlNCwgICAgIDB4OTIsIDB4M2YsIDB4NmIsIDB4ZTIKKyAgICB9LAorICAgIHsKKyAgICAgICAgLyogU2FtcGxlICM0ICovCisgICAgICAgIDB4OTksIDB4NDIsIDB4OWIsIDB4ZDAsICAgICAweGJGLCAweDc5LCAweDA0LCAweGU1CisgICAgfQorICAgIH07CisKKyNlbmRpZiAvKiBNQkVEVExTX0RFU19DICovCisKKyNpZiBkZWZpbmVkKE1CRURUTFNfQUVTX0MpCisvKiBBRVMgQUVTLUNNQUMtUFJGLTEyOCBUZXN0IERhdGEgKi8KK3N0YXRpYyBjb25zdCB1bnNpZ25lZCBjaGFyIFBSRktbXSA9IHsKKyAgICAvKiBLZXkgKi8KKyAgICAweDAwLCAweDAxLCAweDAyLCAweDAzLCAgICAgMHgwNCwgMHgwNSwgMHgwNiwgMHgwNywKKyAgICAweDA4LCAweDA5LCAweDBhLCAweDBiLCAgICAgMHgwYywgMHgwZCwgMHgwZSwgMHgwZiwKKyAgICAweGVkLCAweGNiCit9OworCisvKiBTaXplcyBpbiBieXRlcyAqLworc3RhdGljIGNvbnN0IHNpemVfdCBQUkZLbGVuW05CX1BSRl9URVNUU10gPSB7CisgICAgMTgsCisgICAgMTYsCisgICAgMTAKK307CisKKy8qIE1lc3NhZ2UgKi8KK3N0YXRpYyBjb25zdCB1bnNpZ25lZCBjaGFyIFBSRk1bXSA9IHsKKyAgICAweDAwLCAweDAxLCAweDAyLCAweDAzLCAgICAgMHgwNCwgMHgwNSwgMHgwNiwgMHgwNywKKyAgICAweDA4LCAweDA5LCAweDBhLCAweDBiLCAgICAgMHgwYywgMHgwZCwgMHgwZSwgMHgwZiwKKyAgICAweDEwLCAweDExLCAweDEyLCAweDEzCit9OworCitzdGF0aWMgY29uc3QgdW5zaWduZWQgY2hhciBQUkZUW05CX1BSRl9URVNUU11bMTZdID0geworICAgIHsKKyAgICAgICAgMHg4NCwgMHhhMywgMHg0OCwgMHhhNCwgICAgIDB4YTQsIDB4NWQsIDB4MjMsIDB4NWIsCisgICAgICAgIDB4YWIsIDB4ZmYsIDB4ZmMsIDB4MGQsICAgICAweDJiLCAweDRkLCAweGEwLCAweDlhCisgICAgfSwKKyAgICB7CisgICAgICAgIDB4OTgsIDB4MGEsIDB4ZTgsIDB4N2IsICAgICAweDVmLCAweDRjLCAweDljLCAweDUyLAorICAgICAgICAweDE0LCAweGY1LCAweGI2LCAweGE4LCAgICAgMHg0NSwgMHg1ZSwgMHg0YywgMHgyZAorICAgIH0sCisgICAgeworICAgICAgICAweDI5LCAweDBkLCAweDllLCAweDExLCAgICAgMHgyZSwgMHhkYiwgMHgwOSwgMHhlZSwKKyAgICAgICAgMHgxNCwgMHgxZiwgMHhjZiwgMHg2NCwgICAgIDB4YzAsIDB4YjcsIDB4MmYsIDB4M2QKKyAgICB9Cit9OworI2VuZGlmIC8qIE1CRURUTFNfQUVTX0MgKi8KKworc3RhdGljIGludCBjbWFjX3Rlc3Rfc3Via2V5cyhpbnQgdmVyYm9zZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqdGVzdG5hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgKmtleSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGtleWJpdHMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgKnN1YmtleXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1iZWR0bHNfY2lwaGVyX3R5cGVfdCBjaXBoZXJfdHlwZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGJsb2NrX3NpemUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBudW1fdGVzdHMpCit7CisgICAgaW50IGksIHJldCA9IDA7CisgICAgbWJlZHRsc19jaXBoZXJfY29udGV4dF90IGN0eDsKKyAgICBjb25zdCBtYmVkdGxzX2NpcGhlcl9pbmZvX3QgKmNpcGhlcl9pbmZvOworICAgIHVuc2lnbmVkIGNoYXIgSzFbTUJFRFRMU19DTUFDX01BWF9CTE9DS19TSVpFXTsKKyAgICB1bnNpZ25lZCBjaGFyIEsyW01CRURUTFNfQ01BQ19NQVhfQkxPQ0tfU0laRV07CisKKyAgICBjaXBoZXJfaW5mbyA9IG1iZWR0bHNfY2lwaGVyX2luZm9fZnJvbV90eXBlKGNpcGhlcl90eXBlKTsKKyAgICBpZiAoY2lwaGVyX2luZm8gPT0gTlVMTCkgeworICAgICAgICAvKiBGYWlsaW5nIGF0IHRoaXMgcG9pbnQgbXVzdCBiZSBkdWUgdG8gYSBidWlsZCBpc3N1ZSAqLworICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfQ0lQSEVSX0ZFQVRVUkVfVU5BVkFJTEFCTEU7CisgICAgfQorCisgICAgZm9yIChpID0gMDsgaSA8IG51bV90ZXN0czsgaSsrKSB7CisgICAgICAgIGlmICh2ZXJib3NlICE9IDApIHsKKyAgICAgICAgICAgIG1iZWR0bHNfcHJpbnRmKCIgICVzIENNQUMgc3Via2V5ICMlZDogIiwgdGVzdG5hbWUsIGkgKyAxKTsKKyAgICAgICAgfQorCisgICAgICAgIG1iZWR0bHNfY2lwaGVyX2luaXQoJmN0eCk7CisKKyAgICAgICAgaWYgKChyZXQgPSBtYmVkdGxzX2NpcGhlcl9zZXR1cCgmY3R4LCBjaXBoZXJfaW5mbykpICE9IDApIHsKKyAgICAgICAgICAgIGlmICh2ZXJib3NlICE9IDApIHsKKyAgICAgICAgICAgICAgICBtYmVkdGxzX3ByaW50ZigidGVzdCBleGVjdXRpb24gZmFpbGVkXG4iKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgZ290byBjbGVhbnVwOworICAgICAgICB9CisKKyAgICAgICAgaWYgKChyZXQgPSBtYmVkdGxzX2NpcGhlcl9zZXRrZXkoJmN0eCwga2V5LCBrZXliaXRzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNQkVEVExTX0VOQ1JZUFQpKSAhPSAwKSB7CisgICAgICAgICAgICAvKiBXaGVuIENNQUMgaXMgaW1wbGVtZW50ZWQgYnkgYW4gYWx0ZXJuYXRpdmUgaW1wbGVtZW50YXRpb24sIG9yCisgICAgICAgICAgICAgKiB0aGUgdW5kZXJseWluZyBwcmltaXRpdmUgaXRzZWxmIGlzIGltcGxlbWVudGVkIGFsdGVybmF0aXZlbHksCisgICAgICAgICAgICAgKiBBRVMtMTkyIG1heSBiZSB1bmF2YWlsYWJsZS4gVGhpcyBzaG91bGQgbm90IGNhdXNlIHRoZSBzZWxmdGVzdAorICAgICAgICAgICAgICogZnVuY3Rpb24gdG8gZmFpbC4gKi8KKyAgICAgICAgICAgIGlmICgocmV0ID09IE1CRURUTFNfRVJSX1BMQVRGT1JNX0ZFQVRVUkVfVU5TVVBQT1JURUQgfHwKKyAgICAgICAgICAgICAgICAgcmV0ID09IE1CRURUTFNfRVJSX0NJUEhFUl9GRUFUVVJFX1VOQVZBSUxBQkxFKSAmJgorICAgICAgICAgICAgICAgIGNpcGhlcl90eXBlID09IE1CRURUTFNfQ0lQSEVSX0FFU18xOTJfRUNCKSB7CisgICAgICAgICAgICAgICAgaWYgKHZlcmJvc2UgIT0gMCkgeworICAgICAgICAgICAgICAgICAgICBtYmVkdGxzX3ByaW50Zigic2tpcHBlZFxuIik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGdvdG8gbmV4dF90ZXN0OworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpZiAodmVyYm9zZSAhPSAwKSB7CisgICAgICAgICAgICAgICAgbWJlZHRsc19wcmludGYoInRlc3QgZXhlY3V0aW9uIGZhaWxlZFxuIik7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGdvdG8gY2xlYW51cDsKKyAgICAgICAgfQorCisgICAgICAgIHJldCA9IGNtYWNfZ2VuZXJhdGVfc3Via2V5cygmY3R4LCBLMSwgSzIpOworICAgICAgICBpZiAocmV0ICE9IDApIHsKKyAgICAgICAgICAgIGlmICh2ZXJib3NlICE9IDApIHsKKyAgICAgICAgICAgICAgICBtYmVkdGxzX3ByaW50ZigiZmFpbGVkXG4iKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgZ290byBjbGVhbnVwOworICAgICAgICB9CisKKyAgICAgICAgaWYgKChyZXQgPSBtZW1jbXAoSzEsIHN1YmtleXMsIGJsb2NrX3NpemUpKSAhPSAwICB8fAorICAgICAgICAgICAgKHJldCA9IG1lbWNtcChLMiwgJnN1YmtleXNbYmxvY2tfc2l6ZV0sIGJsb2NrX3NpemUpKSAhPSAwKSB7CisgICAgICAgICAgICBpZiAodmVyYm9zZSAhPSAwKSB7CisgICAgICAgICAgICAgICAgbWJlZHRsc19wcmludGYoImZhaWxlZFxuIik7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGdvdG8gY2xlYW51cDsKKyAgICAgICAgfQorCisgICAgICAgIGlmICh2ZXJib3NlICE9IDApIHsKKyAgICAgICAgICAgIG1iZWR0bHNfcHJpbnRmKCJwYXNzZWRcbiIpOworICAgICAgICB9CisKK25leHRfdGVzdDoKKyAgICAgICAgbWJlZHRsc19jaXBoZXJfZnJlZSgmY3R4KTsKKyAgICB9CisKKyAgICByZXQgPSAwOworICAgIGdvdG8gZXhpdDsKKworY2xlYW51cDoKKyAgICBtYmVkdGxzX2NpcGhlcl9mcmVlKCZjdHgpOworCitleGl0OgorICAgIHJldHVybiByZXQ7Cit9CisKK3N0YXRpYyBpbnQgY21hY190ZXN0X3d0aF9jaXBoZXIoaW50IHZlcmJvc2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKnRlc3RuYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1bnNpZ25lZCBjaGFyICprZXksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBrZXliaXRzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1bnNpZ25lZCBjaGFyICptZXNzYWdlcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdW5zaWduZWQgaW50IG1lc3NhZ2VfbGVuZ3Roc1s0XSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdW5zaWduZWQgY2hhciAqZXhwZWN0ZWRfcmVzdWx0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYmVkdGxzX2NpcGhlcl90eXBlX3QgY2lwaGVyX3R5cGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBibG9ja19zaXplLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgbnVtX3Rlc3RzKQoreworICAgIGNvbnN0IG1iZWR0bHNfY2lwaGVyX2luZm9fdCAqY2lwaGVyX2luZm87CisgICAgaW50IGksIHJldCA9IDA7CisgICAgdW5zaWduZWQgY2hhciBvdXRwdXRbTUJFRFRMU19DTUFDX01BWF9CTE9DS19TSVpFXTsKKworICAgIGNpcGhlcl9pbmZvID0gbWJlZHRsc19jaXBoZXJfaW5mb19mcm9tX3R5cGUoY2lwaGVyX3R5cGUpOworICAgIGlmIChjaXBoZXJfaW5mbyA9PSBOVUxMKSB7CisgICAgICAgIC8qIEZhaWxpbmcgYXQgdGhpcyBwb2ludCBtdXN0IGJlIGR1ZSB0byBhIGJ1aWxkIGlzc3VlICovCisgICAgICAgIHJldCA9IE1CRURUTFNfRVJSX0NJUEhFUl9GRUFUVVJFX1VOQVZBSUxBQkxFOworICAgICAgICBnb3RvIGV4aXQ7CisgICAgfQorCisgICAgZm9yIChpID0gMDsgaSA8IG51bV90ZXN0czsgaSsrKSB7CisgICAgICAgIGlmICh2ZXJib3NlICE9IDApIHsKKyAgICAgICAgICAgIG1iZWR0bHNfcHJpbnRmKCIgICVzIENNQUMgIyVkOiAiLCB0ZXN0bmFtZSwgaSArIDEpOworICAgICAgICB9CisKKyAgICAgICAgaWYgKChyZXQgPSBtYmVkdGxzX2NpcGhlcl9jbWFjKGNpcGhlcl9pbmZvLCBrZXksIGtleWJpdHMsIG1lc3NhZ2VzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWVzc2FnZV9sZW5ndGhzW2ldLCBvdXRwdXQpKSAhPSAwKSB7CisgICAgICAgICAgICAvKiBXaGVuIENNQUMgaXMgaW1wbGVtZW50ZWQgYnkgYW4gYWx0ZXJuYXRpdmUgaW1wbGVtZW50YXRpb24sIG9yCisgICAgICAgICAgICAgKiB0aGUgdW5kZXJseWluZyBwcmltaXRpdmUgaXRzZWxmIGlzIGltcGxlbWVudGVkIGFsdGVybmF0aXZlbHksCisgICAgICAgICAgICAgKiBBRVMtMTkyIGFuZC9vciAzREVTIG1heSBiZSB1bmF2YWlsYWJsZS4gVGhpcyBzaG91bGQgbm90IGNhdXNlCisgICAgICAgICAgICAgKiB0aGUgc2VsZnRlc3QgZnVuY3Rpb24gdG8gZmFpbC4gKi8KKyAgICAgICAgICAgIGlmICgocmV0ID09IE1CRURUTFNfRVJSX1BMQVRGT1JNX0ZFQVRVUkVfVU5TVVBQT1JURUQgfHwKKyAgICAgICAgICAgICAgICAgcmV0ID09IE1CRURUTFNfRVJSX0NJUEhFUl9GRUFUVVJFX1VOQVZBSUxBQkxFKSAmJgorICAgICAgICAgICAgICAgIChjaXBoZXJfdHlwZSA9PSBNQkVEVExTX0NJUEhFUl9BRVNfMTkyX0VDQiB8fAorICAgICAgICAgICAgICAgICBjaXBoZXJfdHlwZSA9PSBNQkVEVExTX0NJUEhFUl9ERVNfRURFM19FQ0IpKSB7CisgICAgICAgICAgICAgICAgaWYgKHZlcmJvc2UgIT0gMCkgeworICAgICAgICAgICAgICAgICAgICBtYmVkdGxzX3ByaW50Zigic2tpcHBlZFxuIik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpZiAodmVyYm9zZSAhPSAwKSB7CisgICAgICAgICAgICAgICAgbWJlZHRsc19wcmludGYoImZhaWxlZFxuIik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBnb3RvIGV4aXQ7CisgICAgICAgIH0KKworICAgICAgICBpZiAoKHJldCA9IG1lbWNtcChvdXRwdXQsICZleHBlY3RlZF9yZXN1bHRbaSAqIGJsb2NrX3NpemVdLCBibG9ja19zaXplKSkgIT0gMCkgeworICAgICAgICAgICAgaWYgKHZlcmJvc2UgIT0gMCkgeworICAgICAgICAgICAgICAgIG1iZWR0bHNfcHJpbnRmKCJmYWlsZWRcbiIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZ290byBleGl0OworICAgICAgICB9CisKKyAgICAgICAgaWYgKHZlcmJvc2UgIT0gMCkgeworICAgICAgICAgICAgbWJlZHRsc19wcmludGYoInBhc3NlZFxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgcmV0ID0gMDsKKworZXhpdDoKKyAgICByZXR1cm4gcmV0OworfQorCisjaWYgZGVmaW5lZChNQkVEVExTX0FFU19DKQorc3RhdGljIGludCB0ZXN0X2FlczEyOF9jbWFjX3ByZihpbnQgdmVyYm9zZSkKK3sKKyAgICBpbnQgaTsKKyAgICBpbnQgcmV0ID0gTUJFRFRMU19FUlJfRVJST1JfQ09SUlVQVElPTl9ERVRFQ1RFRDsKKyAgICB1bnNpZ25lZCBjaGFyIG91dHB1dFtNQkVEVExTX0FFU19CTE9DS19TSVpFXTsKKworICAgIGZvciAoaSA9IDA7IGkgPCBOQl9QUkZfVEVTVFM7IGkrKykgeworICAgICAgICBtYmVkdGxzX3ByaW50ZigiICBBRVMgQ01BQyAxMjggUFJGICMlZDogIiwgaSk7CisgICAgICAgIHJldCA9IG1iZWR0bHNfYWVzX2NtYWNfcHJmXzEyOChQUkZLLCBQUkZLbGVuW2ldLCBQUkZNLCAyMCwgb3V0cHV0KTsKKyAgICAgICAgaWYgKHJldCAhPSAwIHx8CisgICAgICAgICAgICBtZW1jbXAob3V0cHV0LCBQUkZUW2ldLCBNQkVEVExTX0FFU19CTE9DS19TSVpFKSAhPSAwKSB7CisKKyAgICAgICAgICAgIGlmICh2ZXJib3NlICE9IDApIHsKKyAgICAgICAgICAgICAgICBtYmVkdGxzX3ByaW50ZigiZmFpbGVkXG4iKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgcmV0dXJuIHJldDsKKyAgICAgICAgfSBlbHNlIGlmICh2ZXJib3NlICE9IDApIHsKKyAgICAgICAgICAgIG1iZWR0bHNfcHJpbnRmKCJwYXNzZWRcbiIpOworICAgICAgICB9CisgICAgfQorICAgIHJldHVybiByZXQ7Cit9CisjZW5kaWYgLyogTUJFRFRMU19BRVNfQyAqLworCitpbnQgbWJlZHRsc19jbWFjX3NlbGZfdGVzdChpbnQgdmVyYm9zZSkKK3sKKyAgICBpbnQgcmV0ID0gTUJFRFRMU19FUlJfRVJST1JfQ09SUlVQVElPTl9ERVRFQ1RFRDsKKworI2lmIGRlZmluZWQoTUJFRFRMU19BRVNfQykKKyAgICAvKiBBRVMtMTI4ICovCisgICAgaWYgKChyZXQgPSBjbWFjX3Rlc3Rfc3Via2V5cyh2ZXJib3NlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkFFUyAxMjgiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWVzXzEyOF9rZXksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxMjgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY29uc3QgdW5zaWduZWQgY2hhciAqKSBhZXNfMTI4X3N1YmtleXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNQkVEVExTX0NJUEhFUl9BRVNfMTI4X0VDQiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1CRURUTFNfQUVTX0JMT0NLX1NJWkUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOQl9DTUFDX1RFU1RTX1BFUl9LRVkpKSAhPSAwKSB7CisgICAgICAgIHJldHVybiByZXQ7CisgICAgfQorCisgICAgaWYgKChyZXQgPSBjbWFjX3Rlc3Rfd3RoX2NpcGhlcih2ZXJib3NlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkFFUyAxMjgiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWVzXzEyOF9rZXksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxMjgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0X21lc3NhZ2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhZXNfbWVzc2FnZV9sZW5ndGhzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNvbnN0IHVuc2lnbmVkIGNoYXIgKikgYWVzXzEyOF9leHBlY3RlZF9yZXN1bHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNQkVEVExTX0NJUEhFUl9BRVNfMTI4X0VDQiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1CRURUTFNfQUVTX0JMT0NLX1NJWkUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOQl9DTUFDX1RFU1RTX1BFUl9LRVkpKSAhPSAwKSB7CisgICAgICAgIHJldHVybiByZXQ7CisgICAgfQorCisgICAgLyogQUVTLTE5MiAqLworI2lmICFkZWZpbmVkKE1CRURUTFNfQUVTX09OTFlfMTI4X0JJVF9LRVlfTEVOR1RIKQorICAgIGlmICgocmV0ID0gY21hY190ZXN0X3N1YmtleXModmVyYm9zZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJBRVMgMTkyIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFlc18xOTJfa2V5LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMTkyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNvbnN0IHVuc2lnbmVkIGNoYXIgKikgYWVzXzE5Ml9zdWJrZXlzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTUJFRFRMU19DSVBIRVJfQUVTXzE5Ml9FQ0IsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNQkVEVExTX0FFU19CTE9DS19TSVpFLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTkJfQ01BQ19URVNUU19QRVJfS0VZKSkgIT0gMCkgeworICAgICAgICByZXR1cm4gcmV0OworICAgIH0KKworICAgIGlmICgocmV0ID0gY21hY190ZXN0X3d0aF9jaXBoZXIodmVyYm9zZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJBRVMgMTkyIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFlc18xOTJfa2V5LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMTkyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGVzdF9tZXNzYWdlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWVzX21lc3NhZ2VfbGVuZ3RocywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjb25zdCB1bnNpZ25lZCBjaGFyICopIGFlc18xOTJfZXhwZWN0ZWRfcmVzdWx0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTUJFRFRMU19DSVBIRVJfQUVTXzE5Ml9FQ0IsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNQkVEVExTX0FFU19CTE9DS19TSVpFLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTkJfQ01BQ19URVNUU19QRVJfS0VZKSkgIT0gMCkgeworICAgICAgICByZXR1cm4gcmV0OworICAgIH0KKyNlbmRpZiAvKiAhTUJFRFRMU19BRVNfT05MWV8xMjhfQklUX0tFWV9MRU5HVEggKi8KKworICAgIC8qIEFFUy0yNTYgKi8KKyNpZiAhZGVmaW5lZChNQkVEVExTX0FFU19PTkxZXzEyOF9CSVRfS0VZX0xFTkdUSCkKKyAgICBpZiAoKHJldCA9IGNtYWNfdGVzdF9zdWJrZXlzKHZlcmJvc2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiQUVTIDI1NiIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhZXNfMjU2X2tleSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDI1NiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjb25zdCB1bnNpZ25lZCBjaGFyICopIGFlc18yNTZfc3Via2V5cywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1CRURUTFNfQ0lQSEVSX0FFU18yNTZfRUNCLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTUJFRFRMU19BRVNfQkxPQ0tfU0laRSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5CX0NNQUNfVEVTVFNfUEVSX0tFWSkpICE9IDApIHsKKyAgICAgICAgcmV0dXJuIHJldDsKKyAgICB9CisKKyAgICBpZiAoKHJldCA9IGNtYWNfdGVzdF93dGhfY2lwaGVyKHZlcmJvc2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiQUVTIDI1NiIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhZXNfMjU2X2tleSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDI1NiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RfbWVzc2FnZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFlc19tZXNzYWdlX2xlbmd0aHMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY29uc3QgdW5zaWduZWQgY2hhciAqKSBhZXNfMjU2X2V4cGVjdGVkX3Jlc3VsdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1CRURUTFNfQ0lQSEVSX0FFU18yNTZfRUNCLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTUJFRFRMU19BRVNfQkxPQ0tfU0laRSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5CX0NNQUNfVEVTVFNfUEVSX0tFWSkpICE9IDApIHsKKyAgICAgICAgcmV0dXJuIHJldDsKKyAgICB9CisjZW5kaWYgLyogIU1CRURUTFNfQUVTX09OTFlfMTI4X0JJVF9LRVlfTEVOR1RIICovCisjZW5kaWYgLyogTUJFRFRMU19BRVNfQyAqLworCisjaWYgZGVmaW5lZChNQkVEVExTX0RFU19DKQorICAgIC8qIDNERVMgMiBrZXkgKi8KKyAgICBpZiAoKHJldCA9IGNtYWNfdGVzdF9zdWJrZXlzKHZlcmJvc2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiM0RFUyAyIGtleSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXMzXzJrZXlfa2V5LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMTkyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNvbnN0IHVuc2lnbmVkIGNoYXIgKikgZGVzM18ya2V5X3N1YmtleXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNQkVEVExTX0NJUEhFUl9ERVNfRURFM19FQ0IsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNQkVEVExTX0RFUzNfQkxPQ0tfU0laRSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5CX0NNQUNfVEVTVFNfUEVSX0tFWSkpICE9IDApIHsKKyAgICAgICAgcmV0dXJuIHJldDsKKyAgICB9CisKKyAgICBpZiAoKHJldCA9IGNtYWNfdGVzdF93dGhfY2lwaGVyKHZlcmJvc2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiM0RFUyAyIGtleSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXMzXzJrZXlfa2V5LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMTkyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGVzdF9tZXNzYWdlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVzM19tZXNzYWdlX2xlbmd0aHMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY29uc3QgdW5zaWduZWQgY2hhciAqKSBkZXMzXzJrZXlfZXhwZWN0ZWRfcmVzdWx0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTUJFRFRMU19DSVBIRVJfREVTX0VERTNfRUNCLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTUJFRFRMU19ERVMzX0JMT0NLX1NJWkUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOQl9DTUFDX1RFU1RTX1BFUl9LRVkpKSAhPSAwKSB7CisgICAgICAgIHJldHVybiByZXQ7CisgICAgfQorCisgICAgLyogM0RFUyAzIGtleSAqLworICAgIGlmICgocmV0ID0gY21hY190ZXN0X3N1YmtleXModmVyYm9zZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIzREVTIDMga2V5IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlczNfM2tleV9rZXksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxOTIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY29uc3QgdW5zaWduZWQgY2hhciAqKSBkZXMzXzNrZXlfc3Via2V5cywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1CRURUTFNfQ0lQSEVSX0RFU19FREUzX0VDQiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1CRURUTFNfREVTM19CTE9DS19TSVpFLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTkJfQ01BQ19URVNUU19QRVJfS0VZKSkgIT0gMCkgeworICAgICAgICByZXR1cm4gcmV0OworICAgIH0KKworICAgIGlmICgocmV0ID0gY21hY190ZXN0X3d0aF9jaXBoZXIodmVyYm9zZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIzREVTIDMga2V5IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlczNfM2tleV9rZXksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxOTIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0X21lc3NhZ2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXMzX21lc3NhZ2VfbGVuZ3RocywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjb25zdCB1bnNpZ25lZCBjaGFyICopIGRlczNfM2tleV9leHBlY3RlZF9yZXN1bHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNQkVEVExTX0NJUEhFUl9ERVNfRURFM19FQ0IsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNQkVEVExTX0RFUzNfQkxPQ0tfU0laRSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5CX0NNQUNfVEVTVFNfUEVSX0tFWSkpICE9IDApIHsKKyAgICAgICAgcmV0dXJuIHJldDsKKyAgICB9CisjZW5kaWYgLyogTUJFRFRMU19ERVNfQyAqLworCisjaWYgZGVmaW5lZChNQkVEVExTX0FFU19DKQorICAgIGlmICgocmV0ID0gdGVzdF9hZXMxMjhfY21hY19wcmYodmVyYm9zZSkpICE9IDApIHsKKyAgICAgICAgcmV0dXJuIHJldDsKKyAgICB9CisjZW5kaWYgLyogTUJFRFRMU19BRVNfQyAqLworCisgICAgaWYgKHZlcmJvc2UgIT0gMCkgeworICAgICAgICBtYmVkdGxzX3ByaW50ZigiXG4iKTsKKyAgICB9CisKKyAgICByZXR1cm4gMDsKK30KKworI2VuZGlmIC8qIE1CRURUTFNfU0VMRl9URVNUICovCisKKyNlbmRpZiAvKiBNQkVEVExTX0NNQUNfQyAqLwpkaWZmIC0tZ2l0IGEvdGYtcHNhLWNyeXB0by9kcml2ZXJzL2J1aWx0aW4vc3JjL2NvbnN0YW50X3RpbWUuYyBiL3RmLXBzYS1jcnlwdG8vZHJpdmVycy9idWlsdGluL3NyYy9jb25zdGFudF90aW1lLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTViODEyMgotLS0gL2Rldi9udWxsCisrKyBiL3RmLXBzYS1jcnlwdG8vZHJpdmVycy9idWlsdGluL3NyYy9jb25zdGFudF90aW1lLmMKQEAgLTAsMCArMSwyNDggQEAKKy8qKgorICogIENvbnN0YW50LXRpbWUgZnVuY3Rpb25zCisgKgorICogIENvcHlyaWdodCBUaGUgTWJlZCBUTFMgQ29udHJpYnV0b3JzCisgKiAgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjAgT1IgR1BMLTIuMC1vci1sYXRlcgorICovCisKKy8qCisgKiBUaGUgZm9sbG93aW5nIGZ1bmN0aW9ucyBhcmUgaW1wbGVtZW50ZWQgd2l0aG91dCB1c2luZyBjb21wYXJpc29uIG9wZXJhdG9ycywgYXMgdGhvc2UKKyAqIG1pZ2h0IGJlIHRyYW5zbGF0ZWQgdG8gYnJhbmNoZXMgYnkgc29tZSBjb21waWxlcnMgb24gc29tZSBwbGF0Zm9ybXMuCisgKi8KKworI2luY2x1ZGUgPHN0ZGludC5oPgorI2luY2x1ZGUgPGxpbWl0cy5oPgorCisjaW5jbHVkZSAiY29tbW9uLmgiCisjaW5jbHVkZSAiY29uc3RhbnRfdGltZV9pbnRlcm5hbC5oIgorI2luY2x1ZGUgIm1iZWR0bHMvY29uc3RhbnRfdGltZS5oIgorI2luY2x1ZGUgIm1iZWR0bHMvZXJyb3IuaCIKKyNpbmNsdWRlICJtYmVkdGxzL3BsYXRmb3JtX3V0aWwuaCIKKworI2luY2x1ZGUgPHN0cmluZy5oPgorCisjaWYgIWRlZmluZWQoTUJFRFRMU19DVF9BU00pCisvKgorICogRGVmaW5lIGFuIG9iamVjdCB3aXRoIHRoZSB2YWx1ZSB6ZXJvLCBzdWNoIHRoYXQgdGhlIGNvbXBpbGVyIGNhbm5vdCBwcm92ZSB0aGF0IGl0CisgKiBoYXMgdGhlIHZhbHVlIHplcm8gKGJlY2F1c2UgaXQgaXMgdm9sYXRpbGUsIGl0ICJtYXkgYmUgbW9kaWZpZWQgaW4gd2F5cyB1bmtub3duIHRvCisgKiB0aGUgaW1wbGVtZW50YXRpb24iKS4KKyAqLwordm9sYXRpbGUgbWJlZHRsc19jdF91aW50X3QgbWJlZHRsc19jdF96ZXJvID0gMDsKKyNlbmRpZgorCisvKgorICogRGVmaW5lIE1CRURUTFNfRUZGSUNJRU5UX1VOQUxJR05FRF9WT0xBVElMRV9BQ0NFU1Mgd2hlcmUgYXNzZW1ibHkgaXMgcHJlc2VudCB0bworICogcGVyZm9ybSBmYXN0IHVuYWxpZ25lZCBhY2Nlc3MgdG8gdm9sYXRpbGUgZGF0YS4KKyAqCisgKiBUaGlzIGlzIG5lZWRlZCBiZWNhdXNlIG1iZWR0bHNfZ2V0X3VuYWxpZ25lZF91aW50WFggZXRjIGRvbid0IHN1cHBvcnQgdm9sYXRpbGUKKyAqIG1lbW9yeSBhY2Nlc3Nlcy4KKyAqCisgKiBTb21lIG9mIHRoZXNlIGRlZmluaXRpb25zIGNvdWxkIGJlIG1vdmVkIGludG8gYWxpZ25tZW50LmggYnV0IGZvciBub3cgdGhleSBhcmUKKyAqIG9ubHkgdXNlZCBoZXJlLgorICovCisjaWYgZGVmaW5lZChNQkVEVExTX0VGRklDSUVOVF9VTkFMSUdORURfQUNDRVNTKSAmJiBcCisgICAgKChkZWZpbmVkKE1CRURUTFNfQ1RfQVJNX0FTTSkgJiYgKFVJTlRQVFJfTUFYID09IDB4ZmZmZmZmZmZ1bCkpIHx8IFwKKyAgICBkZWZpbmVkKE1CRURUTFNfQ1RfQUFSQ0g2NF9BU00pKQorLyogV2UgY2hlY2sgcG9pbnRlciBzaXplcyB0byBhdm9pZCBpc3N1ZXMgd2l0aCB0aGVtIG5vdCBtYXRjaGluZyByZWdpc3RlciBzaXplIHJlcXVpcmVtZW50cyAqLworI2RlZmluZSBNQkVEVExTX0VGRklDSUVOVF9VTkFMSUdORURfVk9MQVRJTEVfQUNDRVNTCisKK3N0YXRpYyBpbmxpbmUgdWludDMyX3QgbWJlZHRsc19nZXRfdW5hbGlnbmVkX3ZvbGF0aWxlX3VpbnQzMih2b2xhdGlsZSBjb25zdCB1bnNpZ25lZCBjaGFyICpwKQoreworICAgIC8qIFRoaXMgaXMgVUIsIGV2ZW4gd2hlcmUgaXQncyBzYWZlOgorICAgICAqICAgIHJldHVybiAqKCh2b2xhdGlsZSB1aW50MzJfdCopcCk7CisgICAgICogc28gaW5zdGVhZCB0aGUgc2FtZSB0aGluZyBpcyBleHByZXNzZWQgaW4gYXNzZW1ibHkgYmVsb3cuCisgICAgICovCisgICAgdWludDMyX3QgcjsKKyNpZiBkZWZpbmVkKE1CRURUTFNfQ1RfQVJNX0FTTSkKKyAgICBhc20gdm9sYXRpbGUgKCJsZHIgJTAsIFslMV0iIDogIj1yIiAocikgOiAiciIgKHApIDopOworI2VsaWYgZGVmaW5lZChNQkVEVExTX0NUX0FBUkNINjRfQVNNKQorICAgIGFzbSB2b2xhdGlsZSAoImxkciAldzAsIFslMV0iIDogIj1yIiAocikgOiBNQkVEVExTX0FTTV9BQVJDSDY0X1BUUl9DT05TVFJBSU5UKHApIDopOworI2Vsc2UKKyNlcnJvciAiTm8gYXNzZW1ibHkgZGVmaW5lZCBmb3IgbWJlZHRsc19nZXRfdW5hbGlnbmVkX3ZvbGF0aWxlX3VpbnQzMiIKKyNlbmRpZgorICAgIHJldHVybiByOworfQorI2VuZGlmIC8qIGRlZmluZWQoTUJFRFRMU19FRkZJQ0lFTlRfVU5BTElHTkVEX0FDQ0VTUykgJiYKKyAgICAgICAgICAoZGVmaW5lZChNQkVEVExTX0NUX0FSTV9BU00pIHx8IGRlZmluZWQoTUJFRFRMU19DVF9BQVJDSDY0X0FTTSkpICovCisKK2ludCBtYmVkdGxzX2N0X21lbWNtcChjb25zdCB2b2lkICphLAorICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHZvaWQgKmIsCisgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IG4pCit7CisgICAgc2l6ZV90IGkgPSAwOworICAgIC8qCisgICAgICogYEFgIGFuZCBgQmAgYXJlIGNhc3QgdG8gdm9sYXRpbGUgdG8gZW5zdXJlIHRoYXQgdGhlIGNvbXBpbGVyCisgICAgICogZ2VuZXJhdGVzIGNvZGUgdGhhdCBhbHdheXMgZnVsbHkgcmVhZHMgYm90aCBidWZmZXJzLgorICAgICAqIE90aGVyd2lzZSBpdCBjb3VsZCBnZW5lcmF0ZSBhIHRlc3QgdG8gZXhpdCBlYXJseSBpZiBgZGlmZmAgaGFzIGFsbAorICAgICAqIGJpdHMgc2V0IGVhcmx5IGluIHRoZSBsb29wLgorICAgICAqLworICAgIHZvbGF0aWxlIGNvbnN0IHVuc2lnbmVkIGNoYXIgKkEgPSAodm9sYXRpbGUgY29uc3QgdW5zaWduZWQgY2hhciAqKSBhOworICAgIHZvbGF0aWxlIGNvbnN0IHVuc2lnbmVkIGNoYXIgKkIgPSAodm9sYXRpbGUgY29uc3QgdW5zaWduZWQgY2hhciAqKSBiOworICAgIHVpbnQzMl90IGRpZmYgPSAwOworCisjaWYgZGVmaW5lZChNQkVEVExTX0VGRklDSUVOVF9VTkFMSUdORURfVk9MQVRJTEVfQUNDRVNTKQorICAgIGZvciAoOyAoaSArIDQpIDw9IG47IGkgKz0gNCkgeworICAgICAgICB1aW50MzJfdCB4ID0gbWJlZHRsc19nZXRfdW5hbGlnbmVkX3ZvbGF0aWxlX3VpbnQzMihBICsgaSk7CisgICAgICAgIHVpbnQzMl90IHkgPSBtYmVkdGxzX2dldF91bmFsaWduZWRfdm9sYXRpbGVfdWludDMyKEIgKyBpKTsKKyAgICAgICAgZGlmZiB8PSB4IF4geTsKKyAgICB9CisjZW5kaWYKKworICAgIGZvciAoOyBpIDwgbjsgaSsrKSB7CisgICAgICAgIC8qIFJlYWQgdm9sYXRpbGUgZGF0YSBpbiBvcmRlciBiZWZvcmUgY29tcHV0aW5nIGRpZmYuCisgICAgICAgICAqIFRoaXMgYXZvaWRzIElBUiBjb21waWxlciB3YXJuaW5nOgorICAgICAgICAgKiAndGhlIG9yZGVyIG9mIHZvbGF0aWxlIGFjY2Vzc2VzIGlzIHVuZGVmaW5lZCAuLicgKi8KKyAgICAgICAgdW5zaWduZWQgY2hhciB4ID0gQVtpXSwgeSA9IEJbaV07CisgICAgICAgIGRpZmYgfD0geCBeIHk7CisgICAgfQorCisKKyNpZiAoSU5UX01BWCA8IElOVDMyX01BWCkKKyAgICAvKiBXZSBkb24ndCBzdXBwb3J0IGludCBzbWFsbGVyIHRoYW4gMzItYml0cywgYnV0IGlmIHNvbWVvbmUgdHJpZWQgdG8gYnVpbGQKKyAgICAgKiB3aXRoIHRoaXMgY29uZmlndXJhdGlvbiwgdGhlcmUgaXMgYSByaXNrIHRoYXQsIGZvciBkaWZmZXJpbmcgZGF0YSwgdGhlCisgICAgICogb25seSBiaXRzIHNldCBpbiBkaWZmIGFyZSBpbiB0aGUgdG9wIDE2LWJpdHMsIGFuZCB3b3VsZCBiZSBsb3N0IGJ5IGEKKyAgICAgKiBzaW1wbGUgY2FzdCBmcm9tIHVpbnQzMiB0byBpbnQuCisgICAgICogVGhpcyB3b3VsZCBoYXZlIHNpZ25pZmljYW50IHNlY3VyaXR5IGltcGxpY2F0aW9ucywgc28gcHJvdGVjdCBhZ2FpbnN0IGl0LiAqLworI2Vycm9yICJtYmVkdGxzX2N0X21lbWNtcCgpIHJlcXVpcmVzIG1pbmltdW0gMzItYml0IGludHMiCisjZWxzZQorICAgIC8qIFRoZSBiaXQtdHdpZGRsaW5nIGVuc3VyZXMgdGhhdCB3aGVuIHdlIGNhc3QgdWludDMyX3QgdG8gaW50LCB3ZSBhcmUgY2FzdGluZworICAgICAqIGEgdmFsdWUgdGhhdCBpcyBpbiB0aGUgcmFuZ2UgMC4uSU5UX01BWCAtIGEgdmFsdWUgbGFyZ2VyIHRoYW4gdGhpcyB3b3VsZAorICAgICAqIHJlc3VsdCBpbiBpbXBsZW1lbnRhdGlvbiBkZWZpbmVkIGJlaGF2aW91ci4KKyAgICAgKgorICAgICAqIFRoaXMgZW5zdXJlcyB0aGF0IHRoZSB2YWx1ZSByZXR1cm5lZCBieSB0aGUgZnVuY3Rpb24gaXMgbm9uLXplcm8gaWZmCisgICAgICogZGlmZiBpcyBub24temVyby4KKyAgICAgKi8KKyAgICByZXR1cm4gKGludCkgKChkaWZmICYgMHhmZmZmKSB8IChkaWZmID4+IDE2KSk7CisjZW5kaWYKK30KKworI2lmIGRlZmluZWQoTUJFRFRMU19OSVNUX0tXX0MpCisKK2ludCBtYmVkdGxzX2N0X21lbWNtcF9wYXJ0aWFsKGNvbnN0IHZvaWQgKmEsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB2b2lkICpiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IG4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3Qgc2tpcF9oZWFkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IHNraXBfdGFpbCkKK3sKKyAgICB1bnNpZ25lZCBpbnQgZGlmZiA9IDA7CisKKyAgICB2b2xhdGlsZSBjb25zdCB1bnNpZ25lZCBjaGFyICpBID0gKHZvbGF0aWxlIGNvbnN0IHVuc2lnbmVkIGNoYXIgKikgYTsKKyAgICB2b2xhdGlsZSBjb25zdCB1bnNpZ25lZCBjaGFyICpCID0gKHZvbGF0aWxlIGNvbnN0IHVuc2lnbmVkIGNoYXIgKikgYjsKKworICAgIHNpemVfdCB2YWxpZF9lbmQgPSBuIC0gc2tpcF90YWlsOworCisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBuOyBpKyspIHsKKyAgICAgICAgdW5zaWduZWQgY2hhciB4ID0gQVtpXSwgeSA9IEJbaV07CisgICAgICAgIHVuc2lnbmVkIGludCBkID0geCBeIHk7CisgICAgICAgIG1iZWR0bHNfY3RfY29uZGl0aW9uX3QgdmFsaWQgPSBtYmVkdGxzX2N0X2Jvb2xfYW5kKG1iZWR0bHNfY3RfdWludF9nZShpLCBza2lwX2hlYWQpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYmVkdGxzX2N0X3VpbnRfbHQoaSwgdmFsaWRfZW5kKSk7CisgICAgICAgIGRpZmYgfD0gbWJlZHRsc19jdF91aW50X2lmX2Vsc2VfMCh2YWxpZCwgZCk7CisgICAgfQorCisgICAgLyogU2luY2Ugd2UgZ28gYnl0ZS1ieS1ieXRlLCB0aGUgb25seSBiaXRzIHNldCB3aWxsIGJlIGluIHRoZSBib3R0b20gOCBiaXRzLCBzbyB0aGUKKyAgICAgKiBjYXN0IGZyb20gdWludCB0byBpbnQgaXMgc2FmZS4gKi8KKyAgICByZXR1cm4gKGludCkgZGlmZjsKK30KKworI2VuZGlmCisKKyNpZiBkZWZpbmVkKE1CRURUTFNfUEtDUzFfVjE1KSAmJiBkZWZpbmVkKE1CRURUTFNfUlNBX0MpCisKK3ZvaWQgbWJlZHRsc19jdF9tZW1tb3ZlX2xlZnQodm9pZCAqc3RhcnQsIHNpemVfdCB0b3RhbCwgc2l6ZV90IG9mZnNldCkKK3sKKyAgICB2b2xhdGlsZSB1bnNpZ25lZCBjaGFyICpidWYgPSBzdGFydDsKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHRvdGFsOyBpKyspIHsKKyAgICAgICAgbWJlZHRsc19jdF9jb25kaXRpb25fdCBub19vcCA9IG1iZWR0bHNfY3RfdWludF9ndCh0b3RhbCAtIG9mZnNldCwgaSk7CisgICAgICAgIC8qIFRoZSBmaXJzdCBgdG90YWwgLSBvZmZzZXRgIHBhc3NlcyBhcmUgYSBuby1vcC4gVGhlIGxhc3QKKyAgICAgICAgICogYG9mZnNldGAgcGFzc2VzIHNoaWZ0IHRoZSBkYXRhIG9uZSBieXRlIHRvIHRoZSBsZWZ0IGFuZAorICAgICAgICAgKiB6ZXJvIG91dCB0aGUgbGFzdCBieXRlLiAqLworICAgICAgICBmb3IgKHNpemVfdCBuID0gMDsgbiA8IHRvdGFsIC0gMTsgbisrKSB7CisgICAgICAgICAgICB1bnNpZ25lZCBjaGFyIGN1cnJlbnQgPSBidWZbbl07CisgICAgICAgICAgICB1bnNpZ25lZCBjaGFyIG5leHQgICAgPSBidWZbbisxXTsKKyAgICAgICAgICAgIGJ1ZltuXSA9IG1iZWR0bHNfY3RfdWludF9pZihub19vcCwgY3VycmVudCwgbmV4dCk7CisgICAgICAgIH0KKyAgICAgICAgYnVmW3RvdGFsLTFdID0gbWJlZHRsc19jdF91aW50X2lmX2Vsc2VfMChub19vcCwgYnVmW3RvdGFsLTFdKTsKKyAgICB9Cit9CisKKyNlbmRpZiAvKiBNQkVEVExTX1BLQ1MxX1YxNSAmJiBNQkVEVExTX1JTQV9DICovCisKK3ZvaWQgbWJlZHRsc19jdF9tZW1jcHlfaWYobWJlZHRsc19jdF9jb25kaXRpb25fdCBjb25kaXRpb24sCisgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGNoYXIgKmRlc3QsCisgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgKnNyYzEsCisgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgKnNyYzIsCisgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBsZW4pCit7CisjaWYgZGVmaW5lZChNQkVEVExTX0NUX1NJWkVfNjQpCisgICAgY29uc3QgdWludDY0X3QgbWFzayAgICAgPSAodWludDY0X3QpIGNvbmRpdGlvbjsKKyAgICBjb25zdCB1aW50NjRfdCBub3RfbWFzayA9ICh1aW50NjRfdCkgfm1iZWR0bHNfY3RfY29tcGlsZXJfb3BhcXVlKGNvbmRpdGlvbik7CisjZWxzZQorICAgIGNvbnN0IHVpbnQzMl90IG1hc2sgICAgID0gKHVpbnQzMl90KSBjb25kaXRpb247CisgICAgY29uc3QgdWludDMyX3Qgbm90X21hc2sgPSAodWludDMyX3QpIH5tYmVkdGxzX2N0X2NvbXBpbGVyX29wYXF1ZShjb25kaXRpb24pOworI2VuZGlmCisKKyAgICAvKiBJZiBzcmMyIGlzIE5VTEwsIHNldHVwIHNyYzIgc28gdGhhdCB3ZSByZWFkIGZyb20gdGhlIGRlc3RpbmF0aW9uIGFkZHJlc3MuCisgICAgICoKKyAgICAgKiBUaGlzIG1lYW5zIHRoYXQgaWYgc3JjMiA9PSBOVUxMICYmIGNvbmRpdGlvbiBpcyBmYWxzZSwgdGhlIHJlc3VsdCB3aWxsIGJlIGEKKyAgICAgKiBuby1vcCBiZWNhdXNlIHdlIHJlYWQgZnJvbSBkZXN0IGFuZCB3cml0ZSB0aGUgc2FtZSBkYXRhIGJhY2sgaW50byBkZXN0LgorICAgICAqLworICAgIGlmIChzcmMyID09IE5VTEwpIHsKKyAgICAgICAgc3JjMiA9IGRlc3Q7CisgICAgfQorCisgICAgLyogZGVzdFtpXSA9IGMxID09IGMyID8gc3JjW2ldIDogZGVzdFtpXSAqLworICAgIHNpemVfdCBpID0gMDsKKyNpZiBkZWZpbmVkKE1CRURUTFNfRUZGSUNJRU5UX1VOQUxJR05FRF9BQ0NFU1MpCisjaWYgZGVmaW5lZChNQkVEVExTX0NUX1NJWkVfNjQpCisgICAgZm9yICg7IChpICsgOCkgPD0gbGVuOyBpICs9IDgpIHsKKyAgICAgICAgdWludDY0X3QgYSA9IG1iZWR0bHNfZ2V0X3VuYWxpZ25lZF91aW50NjQoc3JjMSArIGkpICYgbWFzazsKKyAgICAgICAgdWludDY0X3QgYiA9IG1iZWR0bHNfZ2V0X3VuYWxpZ25lZF91aW50NjQoc3JjMiArIGkpICYgbm90X21hc2s7CisgICAgICAgIG1iZWR0bHNfcHV0X3VuYWxpZ25lZF91aW50NjQoZGVzdCArIGksIGEgfCBiKTsKKyAgICB9CisjZWxzZQorICAgIGZvciAoOyAoaSArIDQpIDw9IGxlbjsgaSArPSA0KSB7CisgICAgICAgIHVpbnQzMl90IGEgPSBtYmVkdGxzX2dldF91bmFsaWduZWRfdWludDMyKHNyYzEgKyBpKSAmIG1hc2s7CisgICAgICAgIHVpbnQzMl90IGIgPSBtYmVkdGxzX2dldF91bmFsaWduZWRfdWludDMyKHNyYzIgKyBpKSAmIG5vdF9tYXNrOworICAgICAgICBtYmVkdGxzX3B1dF91bmFsaWduZWRfdWludDMyKGRlc3QgKyBpLCBhIHwgYik7CisgICAgfQorI2VuZGlmIC8qIGRlZmluZWQoTUJFRFRMU19DVF9TSVpFXzY0KSAqLworI2VuZGlmIC8qIE1CRURUTFNfRUZGSUNJRU5UX1VOQUxJR05FRF9BQ0NFU1MgKi8KKyAgICBmb3IgKDsgaSA8IGxlbjsgaSsrKSB7CisgICAgICAgIGRlc3RbaV0gPSAoc3JjMVtpXSAmIG1hc2spIHwgKHNyYzJbaV0gJiBub3RfbWFzayk7CisgICAgfQorfQorCit2b2lkIG1iZWR0bHNfY3RfbWVtY3B5X29mZnNldCh1bnNpZ25lZCBjaGFyICpkZXN0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdW5zaWduZWQgY2hhciAqc3JjLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IG9mZnNldCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBvZmZzZXRfbWluLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IG9mZnNldF9tYXgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgbGVuKQoreworICAgIHNpemVfdCBvZmZzZXR2YWw7CisKKyAgICBmb3IgKG9mZnNldHZhbCA9IG9mZnNldF9taW47IG9mZnNldHZhbCA8PSBvZmZzZXRfbWF4OyBvZmZzZXR2YWwrKykgeworICAgICAgICBtYmVkdGxzX2N0X21lbWNweV9pZihtYmVkdGxzX2N0X3VpbnRfZXEob2Zmc2V0dmFsLCBvZmZzZXQpLCBkZXN0LCBzcmMgKyBvZmZzZXR2YWwsIE5VTEwsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxlbik7CisgICAgfQorfQorCisjaWYgZGVmaW5lZChNQkVEVExTX1BLQ1MxX1YxNSkgJiYgZGVmaW5lZChNQkVEVExTX1JTQV9DKQorCit2b2lkIG1iZWR0bHNfY3RfemVyb2l6ZV9pZihtYmVkdGxzX2N0X2NvbmRpdGlvbl90IGNvbmRpdGlvbiwgdm9pZCAqYnVmLCBzaXplX3QgbGVuKQoreworICAgIHVpbnQzMl90IG1hc2sgPSAodWludDMyX3QpIH5jb25kaXRpb247CisgICAgdWludDhfdCAqcCA9ICh1aW50OF90ICopIGJ1ZjsKKyAgICBzaXplX3QgaSA9IDA7CisjaWYgZGVmaW5lZChNQkVEVExTX0VGRklDSUVOVF9VTkFMSUdORURfQUNDRVNTKQorICAgIGZvciAoOyAoaSArIDQpIDw9IGxlbjsgaSArPSA0KSB7CisgICAgICAgIG1iZWR0bHNfcHV0X3VuYWxpZ25lZF91aW50MzIoKHZvaWQgKikgKHAgKyBpKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYmVkdGxzX2dldF91bmFsaWduZWRfdWludDMyKCh2b2lkICopIChwICsgaSkpICYgbWFzayk7CisgICAgfQorI2VuZGlmCisgICAgZm9yICg7IGkgPCBsZW47IGkrKykgeworICAgICAgICBwW2ldID0gcFtpXSAmIG1hc2s7CisgICAgfQorfQorCisjZW5kaWYgLyogZGVmaW5lZChNQkVEVExTX1BLQ1MxX1YxNSkgJiYgZGVmaW5lZChNQkVEVExTX1JTQV9DKSAqLwpkaWZmIC0tZ2l0IGEvbGlicmFyeS9jb25zdGFudF90aW1lX2ltcGwuaCBiL3RmLXBzYS1jcnlwdG8vZHJpdmVycy9idWlsdGluL3NyYy9jb25zdGFudF90aW1lX2ltcGwuaApzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gbGlicmFyeS9jb25zdGFudF90aW1lX2ltcGwuaApyZW5hbWUgdG8gdGYtcHNhLWNyeXB0by9kcml2ZXJzL2J1aWx0aW4vc3JjL2NvbnN0YW50X3RpbWVfaW1wbC5oCmRpZmYgLS1naXQgYS90Zi1wc2EtY3J5cHRvL2RyaXZlcnMvYnVpbHRpbi9zcmMvY29uc3RhbnRfdGltZV9pbnRlcm5hbC5oIGIvdGYtcHNhLWNyeXB0by9kcml2ZXJzL2J1aWx0aW4vc3JjL2NvbnN0YW50X3RpbWVfaW50ZXJuYWwuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yNmY2NjA2Ci0tLSAvZGV2L251bGwKKysrIGIvdGYtcHNhLWNyeXB0by9kcml2ZXJzL2J1aWx0aW4vc3JjL2NvbnN0YW50X3RpbWVfaW50ZXJuYWwuaApAQCAtMCwwICsxLDU3OSBAQAorLyoqCisgKiAgQ29uc3RhbnQtdGltZSBmdW5jdGlvbnMKKyAqCisgKiAgQ29weXJpZ2h0IFRoZSBNYmVkIFRMUyBDb250cmlidXRvcnMKKyAqICBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMCBPUiBHUEwtMi4wLW9yLWxhdGVyCisgKi8KKworI2lmbmRlZiBNQkVEVExTX0NPTlNUQU5UX1RJTUVfSU5URVJOQUxfSAorI2RlZmluZSBNQkVEVExTX0NPTlNUQU5UX1RJTUVfSU5URVJOQUxfSAorCisjaW5jbHVkZSA8c3RkaW50Lmg+CisjaW5jbHVkZSA8c3RkZGVmLmg+CisKKyNpbmNsdWRlICJjb21tb24uaCIKKworI2lmIGRlZmluZWQoTUJFRFRMU19CSUdOVU1fQykKKyNpbmNsdWRlICJtYmVkdGxzL2JpZ251bS5oIgorI2VuZGlmCisKKy8qIFRoZSBjb25zdGFudC10aW1lIGludGVyZmFjZSBwcm92aWRlcyB2YXJpb3VzIG9wZXJhdGlvbnMgdGhhdCBhcmUgbGlrZWx5CisgKiB0byByZXN1bHQgaW4gY29uc3RhbnQtdGltZSBjb2RlIHRoYXQgZG9lcyBub3QgYnJhbmNoIG9yIHVzZSBjb25kaXRpb25hbAorICogaW5zdHJ1Y3Rpb25zIGZvciBzZWNyZXQgZGF0YSAoZm9yIHNlY3JldCBwb2ludGVycywgdGhpcyBhbHNvIGFwcGxpZXMgdG8KKyAqIHRoZSBkYXRhIHBvaW50ZWQgdG8pLgorICoKKyAqIEl0IGhhcyB0aHJlZSBtYWluIHBhcnRzOgorICoKKyAqIC0gYm9vbGVhbiBvcGVyYXRpb25zCisgKiAgIFRoZXNlIGFyZSBhbGwgbmFtZWQgbWJlZHRsc19jdF88dHlwZT5fPG9wZXJhdGlvbj4uCisgKiAgIFRoZXkgb3BlcmF0ZSBvdmVyIDx0eXBlPiBhbmQgcmV0dXJuIG1iZWR0bHNfY3RfY29uZGl0aW9uX3QuCisgKiAgIEFsbCBhcmd1bWVudHMgYXJlIGNvbnNpZGVyZWQgc2VjcmV0LgorICogICBleGFtcGxlOiBib29sIHggPSB5IHwgeiAgICAgICAgICA9PiAgICB4ID0gbWJlZHRsc19jdF9ib29sX29yKHksIHopCisgKiAgIGV4YW1wbGU6IGJvb2wgeCA9IHkgPT0geiAgICAgICAgID0+ICAgIHggPSBtYmVkdGxzX2N0X3VpbnRfZXEoeSwgeikKKyAqCisgKiAtIGNvbmRpdGlvbmFsIGRhdGEgc2VsZWN0aW9uCisgKiAgIFRoZXNlIGFyZSBhbGwgbmFtZWQgbWJlZHRsc19jdF88dHlwZT5faWYgYW5kIG1iZWR0bHNfY3RfPHR5cGU+X2lmX2Vsc2VfMAorICogICBBbGwgYXJndW1lbnRzIGFyZSBjb25zaWRlcmVkIHNlY3JldC4KKyAqICAgZXhhbXBsZTogc2l6ZV90IGEgPSB4ID8gYiA6IGMgICAgPT4gICAgYSA9IG1iZWR0bHNfY3Rfc2l6ZV9pZih4LCBiLCBjKQorICogICBleGFtcGxlOiB1bnNpZ25lZCBhID0geCA/IGIgOiAwICA9PiAgICBhID0gbWJlZHRsc19jdF91aW50X2lmX2Vsc2VfMCh4LCBiKQorICoKKyAqIC0gYmxvY2sgbWVtb3J5IG9wZXJhdGlvbnMKKyAqICAgT25seSBzb21lIGFyZ3VtZW50cyBhcmUgY29uc2lkZXJlZCBzZWNyZXQsIGFzIGRvY3VtZW50ZWQgZm9yIGVhY2gKKyAqICAgZnVuY3Rpb24uCisgKiAgIGV4YW1wbGU6IGlmICh4KSBtZW1jcHkoLi4uKSAgICAgID0+ICAgIG1iZWR0bHNfY3RfbWVtY3B5X2lmKHgsIC4uLikKKyAqCisgKiBtYmVkdGxzX2N0X2NvbmRpdGlvbl90IG11c3QgYmUgdHJlYXRlZCBhcyBvcGFxdWUgYW5kIG9ubHkgY3JlYXRlZCBhbmQKKyAqIG1hbmlwdWxhdGVkIHZpYSB0aGUgZnVuY3Rpb25zIGluIHRoaXMgaGVhZGVyLiBUaGUgY29tcGlsZXIgc2hvdWxkIG5ldmVyCisgKiBiZSBhYmxlIHRvIHByb3ZlIGFueXRoaW5nIGFib3V0IGl0cyB2YWx1ZSBhdCBjb21waWxlLXRpbWUuCisgKgorICogbWJlZHRsc19jdF91aW50X3QgaXMgYW4gdW5zaWduZWQgaW50ZWdlciB0eXBlIG92ZXIgd2hpY2ggY29uc3RhbnQgdGltZQorICogb3BlcmF0aW9ucyBtYXkgYmUgcGVyZm9ybWVkIHZpYSB0aGUgZnVuY3Rpb25zIGluIHRoaXMgaGVhZGVyLiBJdCBpcyBhcyBiaWcKKyAqIGFzIHRoZSBsYXJnZXIgb2Ygc2l6ZV90IGFuZCBtYmVkdGxzX21waV91aW50LCBpLmUuIGl0IGlzIHNhZmUgdG8gY2FzdAorICogdG8vZnJvbSAidW5zaWduZWQgaW50IiwgInNpemVfdCIsIGFuZCAibWJlZHRsc19tcGlfdWludCIgKGFuZCBhbnkgb3RoZXIKKyAqIG5vdC1sYXJnZXIgaW50ZWdlciB0eXBlcykuCisgKgorICogRm9yIEFybSAoMzItYml0LCA2NC1iaXQgYW5kIFRodW1iKSwgeDg2IGFuZCB4ODYtNjQsIGFzc2VtYmx5IGltcGxlbWVudGF0aW9ucworICogYXJlIHVzZWQgdG8gZW5zdXJlIHRoYXQgdGhlIGdlbmVyYXRlZCBjb2RlIGlzIGNvbnN0YW50IHRpbWUuIEZvciBvdGhlcgorICogYXJjaGl0ZWN0dXJlcywgaXQgdXNlcyBhIHBsYWluIEMgZmFsbGJhY2sgZGVzaWduZWQgdG8geWllbGQgY29uc3RhbnQtdGltZSBjb2RlCisgKiAodGhpcyBoYXMgYmVlbiBvYnNlcnZlZCB0byBiZSBjb25zdGFudC10aW1lIG9uIGxhdGVzdCBnY2MsIGNsYW5nIGFuZCBNU1ZDCisgKiBhcyBvZiBNYXkgMjAyMykuCisgKgorICogRm9yIHJlYWRhYmlsaXR5LCB0aGUgc3RhdGljIGlubGluZSBkZWZpbml0aW9ucyBhcmUgc2VwYXJhdGVkIG91dCBpbnRvCisgKiBjb25zdGFudF90aW1lX2ltcGwuaC4KKyAqLworCisjaWYgKFNJWkVfTUFYID4gMHhmZmZmZmZmZmZmZmZmZmZmVUxMKQorLyogUG9pbnRlciBzaXplID4gNjQtYml0ICovCit0eXBlZGVmIHNpemVfdCAgICBtYmVkdGxzX2N0X2NvbmRpdGlvbl90OwordHlwZWRlZiBzaXplX3QgICAgbWJlZHRsc19jdF91aW50X3Q7Cit0eXBlZGVmIHB0cmRpZmZfdCBtYmVkdGxzX2N0X2ludF90OworI2RlZmluZSBNQkVEVExTX0NUX1RSVUUgICgobWJlZHRsc19jdF9jb25kaXRpb25fdCkgbWJlZHRsc19jdF9jb21waWxlcl9vcGFxdWUoU0laRV9NQVgpKQorI2VsaWYgKFNJWkVfTUFYID4gMHhmZmZmZmZmZikgfHwgZGVmaW5lZChNQkVEVExTX0hBVkVfSU5UNjQpCisvKiAzMi1iaXQgPCBwb2ludGVyIHNpemUgPD0gNjQtYml0LCBvciA2NC1iaXQgTVBJICovCit0eXBlZGVmIHVpbnQ2NF90ICBtYmVkdGxzX2N0X2NvbmRpdGlvbl90OwordHlwZWRlZiB1aW50NjRfdCAgbWJlZHRsc19jdF91aW50X3Q7Cit0eXBlZGVmIGludDY0X3QgICBtYmVkdGxzX2N0X2ludF90OworI2RlZmluZSBNQkVEVExTX0NUX1NJWkVfNjQKKyNkZWZpbmUgTUJFRFRMU19DVF9UUlVFICAoKG1iZWR0bHNfY3RfY29uZGl0aW9uX3QpIG1iZWR0bHNfY3RfY29tcGlsZXJfb3BhcXVlKFVJTlQ2NF9NQVgpKQorI2Vsc2UKKy8qIFBvaW50ZXIgc2l6ZSA8PSAzMi1iaXQsIGFuZCBubyA2NC1iaXQgTVBJcyAqLwordHlwZWRlZiB1aW50MzJfdCAgbWJlZHRsc19jdF9jb25kaXRpb25fdDsKK3R5cGVkZWYgdWludDMyX3QgIG1iZWR0bHNfY3RfdWludF90OwordHlwZWRlZiBpbnQzMl90ICAgbWJlZHRsc19jdF9pbnRfdDsKKyNkZWZpbmUgTUJFRFRMU19DVF9TSVpFXzMyCisjZGVmaW5lIE1CRURUTFNfQ1RfVFJVRSAgKChtYmVkdGxzX2N0X2NvbmRpdGlvbl90KSBtYmVkdGxzX2N0X2NvbXBpbGVyX29wYXF1ZShVSU5UMzJfTUFYKSkKKyNlbmRpZgorI2RlZmluZSBNQkVEVExTX0NUX0ZBTFNFICgobWJlZHRsc19jdF9jb25kaXRpb25fdCkgbWJlZHRsc19jdF9jb21waWxlcl9vcGFxdWUoMCkpCisKKy8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKyAqIEJvb2xlYW4gb3BlcmF0aW9ucworICovCisKKy8qKiBDb252ZXJ0IGEgbnVtYmVyIGludG8gYSBtYmVkdGxzX2N0X2NvbmRpdGlvbl90LgorICoKKyAqIFxwYXJhbSB4IE51bWJlciB0byBjb252ZXJ0LgorICoKKyAqIFxyZXR1cm4gTUJFRFRMU19DVF9UUlVFIGlmIFxwIHggIT0gMCwgb3IgTUJFRFRMU19DVF9GQUxTRSBpZiBccCB4ID09IDAKKyAqCisgKi8KK3N0YXRpYyBpbmxpbmUgbWJlZHRsc19jdF9jb25kaXRpb25fdCBtYmVkdGxzX2N0X2Jvb2wobWJlZHRsc19jdF91aW50X3QgeCk7CisKKy8qKiBCb29sZWFuICJub3QgZXF1YWwiIG9wZXJhdGlvbi4KKyAqCisgKiBGdW5jdGlvbmFsbHkgZXF1aXZhbGVudCB0bzoKKyAqCisgKiBccCB4ICE9IFxwIHkKKyAqCisgKiBccGFyYW0geCAgICAgVGhlIGZpcnN0IHZhbHVlIHRvIGFuYWx5emUuCisgKiBccGFyYW0geSAgICAgVGhlIHNlY29uZCB2YWx1ZSB0byBhbmFseXplLgorICoKKyAqIFxyZXR1cm4gICAgICBNQkVEVExTX0NUX1RSVUUgaWYgXHAgeCAhPSBccCB5LCBvdGhlcndpc2UgTUJFRFRMU19DVF9GQUxTRS4KKyAqLworc3RhdGljIGlubGluZSBtYmVkdGxzX2N0X2NvbmRpdGlvbl90IG1iZWR0bHNfY3RfdWludF9uZShtYmVkdGxzX2N0X3VpbnRfdCB4LCBtYmVkdGxzX2N0X3VpbnRfdCB5KTsKKworLyoqIEJvb2xlYW4gImVxdWFscyIgb3BlcmF0aW9uLgorICoKKyAqIEZ1bmN0aW9uYWxseSBlcXVpdmFsZW50IHRvOgorICoKKyAqIFxwIHggPT0gXHAgeQorICoKKyAqIFxwYXJhbSB4ICAgICBUaGUgZmlyc3QgdmFsdWUgdG8gYW5hbHl6ZS4KKyAqIFxwYXJhbSB5ICAgICBUaGUgc2Vjb25kIHZhbHVlIHRvIGFuYWx5emUuCisgKgorICogXHJldHVybiAgICAgIE1CRURUTFNfQ1RfVFJVRSBpZiBccCB4ID09IFxwIHksIG90aGVyd2lzZSBNQkVEVExTX0NUX0ZBTFNFLgorICovCitzdGF0aWMgaW5saW5lIG1iZWR0bHNfY3RfY29uZGl0aW9uX3QgbWJlZHRsc19jdF91aW50X2VxKG1iZWR0bHNfY3RfdWludF90IHgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1iZWR0bHNfY3RfdWludF90IHkpOworCisvKiogQm9vbGVhbiAibGVzcyB0aGFuIiBvcGVyYXRpb24uCisgKgorICogRnVuY3Rpb25hbGx5IGVxdWl2YWxlbnQgdG86CisgKgorICogXHAgeCA8IFxwIHkKKyAqCisgKiBccGFyYW0geCAgICAgVGhlIGZpcnN0IHZhbHVlIHRvIGFuYWx5emUuCisgKiBccGFyYW0geSAgICAgVGhlIHNlY29uZCB2YWx1ZSB0byBhbmFseXplLgorICoKKyAqIFxyZXR1cm4gICAgICBNQkVEVExTX0NUX1RSVUUgaWYgXHAgeCA8IFxwIHksIG90aGVyd2lzZSBNQkVEVExTX0NUX0ZBTFNFLgorICovCitzdGF0aWMgaW5saW5lIG1iZWR0bHNfY3RfY29uZGl0aW9uX3QgbWJlZHRsc19jdF91aW50X2x0KG1iZWR0bHNfY3RfdWludF90IHgsIG1iZWR0bHNfY3RfdWludF90IHkpOworCisvKiogQm9vbGVhbiAiZ3JlYXRlciB0aGFuIiBvcGVyYXRpb24uCisgKgorICogRnVuY3Rpb25hbGx5IGVxdWl2YWxlbnQgdG86CisgKgorICogXHAgeCA+IFxwIHkKKyAqCisgKiBccGFyYW0geCAgICAgVGhlIGZpcnN0IHZhbHVlIHRvIGFuYWx5emUuCisgKiBccGFyYW0geSAgICAgVGhlIHNlY29uZCB2YWx1ZSB0byBhbmFseXplLgorICoKKyAqIFxyZXR1cm4gICAgICBNQkVEVExTX0NUX1RSVUUgaWYgXHAgeCA+IFxwIHksIG90aGVyd2lzZSBNQkVEVExTX0NUX0ZBTFNFLgorICovCitzdGF0aWMgaW5saW5lIG1iZWR0bHNfY3RfY29uZGl0aW9uX3QgbWJlZHRsc19jdF91aW50X2d0KG1iZWR0bHNfY3RfdWludF90IHgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1iZWR0bHNfY3RfdWludF90IHkpOworCisvKiogQm9vbGVhbiAiZ3JlYXRlciBvciBlcXVhbCIgb3BlcmF0aW9uLgorICoKKyAqIEZ1bmN0aW9uYWxseSBlcXVpdmFsZW50IHRvOgorICoKKyAqIFxwIHggPj0gXHAgeQorICoKKyAqIFxwYXJhbSB4ICAgICBUaGUgZmlyc3QgdmFsdWUgdG8gYW5hbHl6ZS4KKyAqIFxwYXJhbSB5ICAgICBUaGUgc2Vjb25kIHZhbHVlIHRvIGFuYWx5emUuCisgKgorICogXHJldHVybiAgICAgIE1CRURUTFNfQ1RfVFJVRSBpZiBccCB4ID49IFxwIHksCisgKiAgICAgICAgICAgICAgb3RoZXJ3aXNlIE1CRURUTFNfQ1RfRkFMU0UuCisgKi8KK3N0YXRpYyBpbmxpbmUgbWJlZHRsc19jdF9jb25kaXRpb25fdCBtYmVkdGxzX2N0X3VpbnRfZ2UobWJlZHRsc19jdF91aW50X3QgeCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWJlZHRsc19jdF91aW50X3QgeSk7CisKKy8qKiBCb29sZWFuICJsZXNzIHRoYW4gb3IgZXF1YWwiIG9wZXJhdGlvbi4KKyAqCisgKiBGdW5jdGlvbmFsbHkgZXF1aXZhbGVudCB0bzoKKyAqCisgKiBccCB4IDw9IFxwIHkKKyAqCisgKiBccGFyYW0geCAgICAgVGhlIGZpcnN0IHZhbHVlIHRvIGFuYWx5emUuCisgKiBccGFyYW0geSAgICAgVGhlIHNlY29uZCB2YWx1ZSB0byBhbmFseXplLgorICoKKyAqIFxyZXR1cm4gICAgICBNQkVEVExTX0NUX1RSVUUgaWYgXHAgeCA8PSBccCB5LAorICogICAgICAgICAgICAgIG90aGVyd2lzZSBNQkVEVExTX0NUX0ZBTFNFLgorICovCitzdGF0aWMgaW5saW5lIG1iZWR0bHNfY3RfY29uZGl0aW9uX3QgbWJlZHRsc19jdF91aW50X2xlKG1iZWR0bHNfY3RfdWludF90IHgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1iZWR0bHNfY3RfdWludF90IHkpOworCisvKiogQm9vbGVhbiBub3QtZXF1YWxzIG9wZXJhdGlvbi4KKyAqCisgKiBGdW5jdGlvbmFsbHkgZXF1aXZhbGVudCB0bzoKKyAqCisgKiBccCB4ICE9IFxwIHkKKyAqCisgKiBccGFyYW0geCAgICAgVGhlIGZpcnN0IHZhbHVlIHRvIGFuYWx5emUuCisgKiBccGFyYW0geSAgICAgVGhlIHNlY29uZCB2YWx1ZSB0byBhbmFseXplLgorICoKKyAqIFxub3RlICAgICAgICBUaGlzIGlzIG1vcmUgZWZmaWNpZW50IHRoYW4gbWJlZHRsc19jdF91aW50X25lIGlmIGJvdGggYXJndW1lbnRzIGFyZQorICogICAgICAgICAgICAgIG1iZWR0bHNfY3RfY29uZGl0aW9uX3QuCisgKgorICogXHJldHVybiAgICAgIE1CRURUTFNfQ1RfVFJVRSBpZiBccCB4ICE9IFxwIHksCisgKiAgICAgICAgICAgICAgb3RoZXJ3aXNlIE1CRURUTFNfQ1RfRkFMU0UuCisgKi8KK3N0YXRpYyBpbmxpbmUgbWJlZHRsc19jdF9jb25kaXRpb25fdCBtYmVkdGxzX2N0X2Jvb2xfbmUobWJlZHRsc19jdF9jb25kaXRpb25fdCB4LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYmVkdGxzX2N0X2NvbmRpdGlvbl90IHkpOworCisvKiogQm9vbGVhbiAiYW5kIiBvcGVyYXRpb24uCisgKgorICogRnVuY3Rpb25hbGx5IGVxdWl2YWxlbnQgdG86CisgKgorICogXHAgeCAmJiBccCB5CisgKgorICogXHBhcmFtIHggICAgIFRoZSBmaXJzdCB2YWx1ZSB0byBhbmFseXplLgorICogXHBhcmFtIHkgICAgIFRoZSBzZWNvbmQgdmFsdWUgdG8gYW5hbHl6ZS4KKyAqCisgKiBccmV0dXJuICAgICAgTUJFRFRMU19DVF9UUlVFIGlmIFxwIHggJiYgXHAgeSwKKyAqICAgICAgICAgICAgICBvdGhlcndpc2UgTUJFRFRMU19DVF9GQUxTRS4KKyAqLworc3RhdGljIGlubGluZSBtYmVkdGxzX2N0X2NvbmRpdGlvbl90IG1iZWR0bHNfY3RfYm9vbF9hbmQobWJlZHRsc19jdF9jb25kaXRpb25fdCB4LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWJlZHRsc19jdF9jb25kaXRpb25fdCB5KTsKKworLyoqIEJvb2xlYW4gIm9yIiBvcGVyYXRpb24uCisgKgorICogRnVuY3Rpb25hbGx5IGVxdWl2YWxlbnQgdG86CisgKgorICogXHAgeCB8fCBccCB5CisgKgorICogXHBhcmFtIHggICAgIFRoZSBmaXJzdCB2YWx1ZSB0byBhbmFseXplLgorICogXHBhcmFtIHkgICAgIFRoZSBzZWNvbmQgdmFsdWUgdG8gYW5hbHl6ZS4KKyAqCisgKiBccmV0dXJuICAgICAgTUJFRFRMU19DVF9UUlVFIGlmIFxwIHggfHwgXHAgeSwKKyAqICAgICAgICAgICAgICBvdGhlcndpc2UgTUJFRFRMU19DVF9GQUxTRS4KKyAqLworc3RhdGljIGlubGluZSBtYmVkdGxzX2N0X2NvbmRpdGlvbl90IG1iZWR0bHNfY3RfYm9vbF9vcihtYmVkdGxzX2N0X2NvbmRpdGlvbl90IHgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1iZWR0bHNfY3RfY29uZGl0aW9uX3QgeSk7CisKKy8qKiBCb29sZWFuICJub3QiIG9wZXJhdGlvbi4KKyAqCisgKiBGdW5jdGlvbmFsbHkgZXF1aXZhbGVudCB0bzoKKyAqCisgKiAhIFxwIHgKKyAqCisgKiBccGFyYW0geCAgICAgVGhlIHZhbHVlIHRvIGludmVydAorICoKKyAqIFxyZXR1cm4gICAgICBNQkVEVExTX0NUX0ZBTFNFIGlmIFxwIHgsIG90aGVyd2lzZSBNQkVEVExTX0NUX1RSVUUuCisgKi8KK3N0YXRpYyBpbmxpbmUgbWJlZHRsc19jdF9jb25kaXRpb25fdCBtYmVkdGxzX2N0X2Jvb2xfbm90KG1iZWR0bHNfY3RfY29uZGl0aW9uX3QgeCk7CisKKworLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorICogRGF0YSBzZWxlY3Rpb24gb3BlcmF0aW9ucworICovCisKKy8qKiBDaG9vc2UgYmV0d2VlbiB0d28gc2l6ZV90IHZhbHVlcy4KKyAqCisgKiBGdW5jdGlvbmFsbHkgZXF1aXZhbGVudCB0bzoKKyAqCisgKiBjb25kaXRpb24gPyBpZjEgOiBpZjAuCisgKgorICogXHBhcmFtIGNvbmRpdGlvbiAgICAgQ29uZGl0aW9uIHRvIHRlc3QuCisgKiBccGFyYW0gaWYxICAgICAgICAgICBWYWx1ZSB0byB1c2UgaWYgXHAgY29uZGl0aW9uID09IE1CRURUTFNfQ1RfVFJVRS4KKyAqIFxwYXJhbSBpZjAgICAgICAgICAgIFZhbHVlIHRvIHVzZSBpZiBccCBjb25kaXRpb24gPT0gTUJFRFRMU19DVF9GQUxTRS4KKyAqCisgKiBccmV0dXJuICBcYyBpZjEgaWYgXHAgY29uZGl0aW9uID09IE1CRURUTFNfQ1RfVFJVRSwgb3RoZXJ3aXNlIFxjIGlmMC4KKyAqLworc3RhdGljIGlubGluZSBzaXplX3QgbWJlZHRsc19jdF9zaXplX2lmKG1iZWR0bHNfY3RfY29uZGl0aW9uX3QgY29uZGl0aW9uLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBpZjEsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IGlmMCk7CisKKy8qKiBDaG9vc2UgYmV0d2VlbiB0d28gdW5zaWduZWQgdmFsdWVzLgorICoKKyAqIEZ1bmN0aW9uYWxseSBlcXVpdmFsZW50IHRvOgorICoKKyAqIGNvbmRpdGlvbiA/IGlmMSA6IGlmMC4KKyAqCisgKiBccGFyYW0gY29uZGl0aW9uICAgICBDb25kaXRpb24gdG8gdGVzdC4KKyAqIFxwYXJhbSBpZjEgICAgICAgICAgIFZhbHVlIHRvIHVzZSBpZiBccCBjb25kaXRpb24gPT0gTUJFRFRMU19DVF9UUlVFLgorICogXHBhcmFtIGlmMCAgICAgICAgICAgVmFsdWUgdG8gdXNlIGlmIFxwIGNvbmRpdGlvbiA9PSBNQkVEVExTX0NUX0ZBTFNFLgorICoKKyAqIFxyZXR1cm4gIFxjIGlmMSBpZiBccCBjb25kaXRpb24gPT0gTUJFRFRMU19DVF9UUlVFLCBvdGhlcndpc2UgXGMgaWYwLgorICovCitzdGF0aWMgaW5saW5lIHVuc2lnbmVkIG1iZWR0bHNfY3RfdWludF9pZihtYmVkdGxzX2N0X2NvbmRpdGlvbl90IGNvbmRpdGlvbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGlmMSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGlmMCk7CisKKy8qKiBDaG9vc2UgYmV0d2VlbiB0d28gbWJlZHRsc19jdF9jb25kaXRpb25fdCB2YWx1ZXMuCisgKgorICogRnVuY3Rpb25hbGx5IGVxdWl2YWxlbnQgdG86CisgKgorICogY29uZGl0aW9uID8gaWYxIDogaWYwLgorICoKKyAqIFxwYXJhbSBjb25kaXRpb24gICAgIENvbmRpdGlvbiB0byB0ZXN0LgorICogXHBhcmFtIGlmMSAgICAgICAgICAgVmFsdWUgdG8gdXNlIGlmIFxwIGNvbmRpdGlvbiA9PSBNQkVEVExTX0NUX1RSVUUuCisgKiBccGFyYW0gaWYwICAgICAgICAgICBWYWx1ZSB0byB1c2UgaWYgXHAgY29uZGl0aW9uID09IE1CRURUTFNfQ1RfRkFMU0UuCisgKgorICogXHJldHVybiAgXGMgaWYxIGlmIFxwIGNvbmRpdGlvbiA9PSBNQkVEVExTX0NUX1RSVUUsIG90aGVyd2lzZSBcYyBpZjAuCisgKi8KK3N0YXRpYyBpbmxpbmUgbWJlZHRsc19jdF9jb25kaXRpb25fdCBtYmVkdGxzX2N0X2Jvb2xfaWYobWJlZHRsc19jdF9jb25kaXRpb25fdCBjb25kaXRpb24sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1iZWR0bHNfY3RfY29uZGl0aW9uX3QgaWYxLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYmVkdGxzX2N0X2NvbmRpdGlvbl90IGlmMCk7CisKKyNpZiBkZWZpbmVkKE1CRURUTFNfQklHTlVNX0MpCisKKy8qKiBDaG9vc2UgYmV0d2VlbiB0d28gbWJlZHRsc19tcGlfdWludCB2YWx1ZXMuCisgKgorICogRnVuY3Rpb25hbGx5IGVxdWl2YWxlbnQgdG86CisgKgorICogY29uZGl0aW9uID8gaWYxIDogaWYwLgorICoKKyAqIFxwYXJhbSBjb25kaXRpb24gICAgIENvbmRpdGlvbiB0byB0ZXN0LgorICogXHBhcmFtIGlmMSAgICAgICAgICAgVmFsdWUgdG8gdXNlIGlmIFxwIGNvbmRpdGlvbiA9PSBNQkVEVExTX0NUX1RSVUUuCisgKiBccGFyYW0gaWYwICAgICAgICAgICBWYWx1ZSB0byB1c2UgaWYgXHAgY29uZGl0aW9uID09IE1CRURUTFNfQ1RfRkFMU0UuCisgKgorICogXHJldHVybiAgXGMgaWYxIGlmIFxwIGNvbmRpdGlvbiA9PSBNQkVEVExTX0NUX1RSVUUsIG90aGVyd2lzZSBcYyBpZjAuCisgKi8KK3N0YXRpYyBpbmxpbmUgbWJlZHRsc19tcGlfdWludCBtYmVkdGxzX2N0X21waV91aW50X2lmKG1iZWR0bHNfY3RfY29uZGl0aW9uX3QgY29uZGl0aW9uLCBcCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYmVkdGxzX21waV91aW50IGlmMSwgXAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWJlZHRsc19tcGlfdWludCBpZjApOworCisjZW5kaWYKKworLyoqIENob29zZSBiZXR3ZWVuIGFuIHVuc2lnbmVkIHZhbHVlIGFuZCAwLgorICoKKyAqIEZ1bmN0aW9uYWxseSBlcXVpdmFsZW50IHRvOgorICoKKyAqIGNvbmRpdGlvbiA/IGlmMSA6IDAuCisgKgorICogRnVuY3Rpb25hbGx5IGVxdWl2YWxlbnQgdG8gbWJlZHRsc19jdF91aW50X2lmKGNvbmRpdGlvbiwgaWYxLCAwKSBidXQKKyAqIHJlc3VsdHMgaW4gc21hbGxlciBjb2RlIHNpemUuCisgKgorICogXHBhcmFtIGNvbmRpdGlvbiAgICAgQ29uZGl0aW9uIHRvIHRlc3QuCisgKiBccGFyYW0gaWYxICAgICAgICAgICBWYWx1ZSB0byB1c2UgaWYgXHAgY29uZGl0aW9uID09IE1CRURUTFNfQ1RfVFJVRS4KKyAqCisgKiBccmV0dXJuICBcYyBpZjEgaWYgXHAgY29uZGl0aW9uID09IE1CRURUTFNfQ1RfVFJVRSwgb3RoZXJ3aXNlIDAuCisgKi8KK3N0YXRpYyBpbmxpbmUgdW5zaWduZWQgbWJlZHRsc19jdF91aW50X2lmX2Vsc2VfMChtYmVkdGxzX2N0X2NvbmRpdGlvbl90IGNvbmRpdGlvbiwgdW5zaWduZWQgaWYxKTsKKworLyoqIENob29zZSBiZXR3ZWVuIGFuIG1iZWR0bHNfY3RfY29uZGl0aW9uX3QgYW5kIDAuCisgKgorICogRnVuY3Rpb25hbGx5IGVxdWl2YWxlbnQgdG86CisgKgorICogY29uZGl0aW9uID8gaWYxIDogMC4KKyAqCisgKiBGdW5jdGlvbmFsbHkgZXF1aXZhbGVudCB0byBtYmVkdGxzX2N0X2Jvb2xfaWYoY29uZGl0aW9uLCBpZjEsIDApIGJ1dAorICogcmVzdWx0cyBpbiBzbWFsbGVyIGNvZGUgc2l6ZS4KKyAqCisgKiBccGFyYW0gY29uZGl0aW9uICAgICBDb25kaXRpb24gdG8gdGVzdC4KKyAqIFxwYXJhbSBpZjEgICAgICAgICAgIFZhbHVlIHRvIHVzZSBpZiBccCBjb25kaXRpb24gPT0gTUJFRFRMU19DVF9UUlVFLgorICoKKyAqIFxyZXR1cm4gIFxjIGlmMSBpZiBccCBjb25kaXRpb24gPT0gTUJFRFRMU19DVF9UUlVFLCBvdGhlcndpc2UgMC4KKyAqLworc3RhdGljIGlubGluZSBtYmVkdGxzX2N0X2NvbmRpdGlvbl90IG1iZWR0bHNfY3RfYm9vbF9pZl9lbHNlXzAobWJlZHRsc19jdF9jb25kaXRpb25fdCBjb25kaXRpb24sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYmVkdGxzX2N0X2NvbmRpdGlvbl90IGlmMSk7CisKKy8qKiBDaG9vc2UgYmV0d2VlbiBhIHNpemVfdCB2YWx1ZSBhbmQgMC4KKyAqCisgKiBGdW5jdGlvbmFsbHkgZXF1aXZhbGVudCB0bzoKKyAqCisgKiBjb25kaXRpb24gPyBpZjEgOiAwLgorICoKKyAqIEZ1bmN0aW9uYWxseSBlcXVpdmFsZW50IHRvIG1iZWR0bHNfY3Rfc2l6ZV9pZihjb25kaXRpb24sIGlmMSwgMCkgYnV0CisgKiByZXN1bHRzIGluIHNtYWxsZXIgY29kZSBzaXplLgorICoKKyAqIFxwYXJhbSBjb25kaXRpb24gICAgIENvbmRpdGlvbiB0byB0ZXN0LgorICogXHBhcmFtIGlmMSAgICAgICAgICAgVmFsdWUgdG8gdXNlIGlmIFxwIGNvbmRpdGlvbiA9PSBNQkVEVExTX0NUX1RSVUUuCisgKgorICogXHJldHVybiAgXGMgaWYxIGlmIFxwIGNvbmRpdGlvbiA9PSBNQkVEVExTX0NUX1RSVUUsIG90aGVyd2lzZSAwLgorICovCitzdGF0aWMgaW5saW5lIHNpemVfdCBtYmVkdGxzX2N0X3NpemVfaWZfZWxzZV8wKG1iZWR0bHNfY3RfY29uZGl0aW9uX3QgY29uZGl0aW9uLCBzaXplX3QgaWYxKTsKKworI2lmIGRlZmluZWQoTUJFRFRMU19CSUdOVU1fQykKKworLyoqIENob29zZSBiZXR3ZWVuIGFuIG1iZWR0bHNfbXBpX3VpbnQgdmFsdWUgYW5kIDAuCisgKgorICogRnVuY3Rpb25hbGx5IGVxdWl2YWxlbnQgdG86CisgKgorICogY29uZGl0aW9uID8gaWYxIDogMC4KKyAqCisgKiBGdW5jdGlvbmFsbHkgZXF1aXZhbGVudCB0byBtYmVkdGxzX2N0X21waV91aW50X2lmKGNvbmRpdGlvbiwgaWYxLCAwKSBidXQKKyAqIHJlc3VsdHMgaW4gc21hbGxlciBjb2RlIHNpemUuCisgKgorICogXHBhcmFtIGNvbmRpdGlvbiAgICAgQ29uZGl0aW9uIHRvIHRlc3QuCisgKiBccGFyYW0gaWYxICAgICAgICAgICBWYWx1ZSB0byB1c2UgaWYgXHAgY29uZGl0aW9uID09IE1CRURUTFNfQ1RfVFJVRS4KKyAqCisgKiBccmV0dXJuICBcYyBpZjEgaWYgXHAgY29uZGl0aW9uID09IE1CRURUTFNfQ1RfVFJVRSwgb3RoZXJ3aXNlIDAuCisgKi8KK3N0YXRpYyBpbmxpbmUgbWJlZHRsc19tcGlfdWludCBtYmVkdGxzX2N0X21waV91aW50X2lmX2Vsc2VfMChtYmVkdGxzX2N0X2NvbmRpdGlvbl90IGNvbmRpdGlvbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYmVkdGxzX21waV91aW50IGlmMSk7CisKKyNlbmRpZgorCisvKiogQ29uc3RhbnQtZmxvdyBjaGFyIHNlbGVjdGlvbgorICoKKyAqIFxwYXJhbSBsb3cgICBTZWNyZXQuIEJvdHRvbSBvZiByYW5nZQorICogXHBhcmFtIGhpZ2ggIFNlY3JldC4gVG9wIG9mIHJhbmdlCisgKiBccGFyYW0gYyAgICAgU2VjcmV0LiBWYWx1ZSB0byBjb21wYXJlIHRvIHJhbmdlCisgKiBccGFyYW0gdCAgICAgU2VjcmV0LiBWYWx1ZSB0byByZXR1cm4sIGlmIGluIHJhbmdlCisgKgorICogXHJldHVybiAgICAgIFxwIHQgaWYgXHAgbG93IDw9IFxwIGMgPD0gXHAgaGlnaCwgMCBvdGhlcndpc2UuCisgKi8KK3N0YXRpYyBpbmxpbmUgdW5zaWduZWQgY2hhciBtYmVkdGxzX2N0X3VjaGFyX2luX3JhbmdlX2lmKHVuc2lnbmVkIGNoYXIgbG93LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgY2hhciBoaWdoLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgY2hhciBjLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgY2hhciB0KTsKKworLyoqIENob29zZSBiZXR3ZWVuIHR3byBlcnJvciB2YWx1ZXMuIFRoZSB2YWx1ZXMgbXVzdCBiZSBpbiB0aGUgcmFuZ2UgWy0zMjc2Ny4uMF0uCisgKgorICogRnVuY3Rpb25hbGx5IGVxdWl2YWxlbnQgdG86CisgKgorICogY29uZGl0aW9uID8gaWYxIDogaWYwLgorICoKKyAqIFxwYXJhbSBjb25kaXRpb24gICAgIENvbmRpdGlvbiB0byB0ZXN0LgorICogXHBhcmFtIGlmMSAgICAgICAgICAgVmFsdWUgdG8gdXNlIGlmIFxwIGNvbmRpdGlvbiA9PSBNQkVEVExTX0NUX1RSVUUuCisgKiBccGFyYW0gaWYwICAgICAgICAgICBWYWx1ZSB0byB1c2UgaWYgXHAgY29uZGl0aW9uID09IE1CRURUTFNfQ1RfRkFMU0UuCisgKgorICogXHJldHVybiAgXGMgaWYxIGlmIFxwIGNvbmRpdGlvbiA9PSBNQkVEVExTX0NUX1RSVUUsIG90aGVyd2lzZSBcYyBpZjAuCisgKi8KK3N0YXRpYyBpbmxpbmUgaW50IG1iZWR0bHNfY3RfZXJyb3JfaWYobWJlZHRsc19jdF9jb25kaXRpb25fdCBjb25kaXRpb24sIGludCBpZjEsIGludCBpZjApOworCisvKiogQ2hvb3NlIGJldHdlZW4gYW4gZXJyb3IgdmFsdWUgYW5kIDAuIFRoZSBlcnJvciB2YWx1ZSBtdXN0IGJlIGluIHRoZSByYW5nZSBbLTMyNzY3Li4wXS4KKyAqCisgKiBGdW5jdGlvbmFsbHkgZXF1aXZhbGVudCB0bzoKKyAqCisgKiBjb25kaXRpb24gPyBpZjEgOiAwLgorICoKKyAqIEZ1bmN0aW9uYWxseSBlcXVpdmFsZW50IHRvIG1iZWR0bHNfY3RfZXJyb3JfaWYoY29uZGl0aW9uLCBpZjEsIDApIGJ1dAorICogcmVzdWx0cyBpbiBzbWFsbGVyIGNvZGUgc2l6ZS4KKyAqCisgKiBccGFyYW0gY29uZGl0aW9uICAgICBDb25kaXRpb24gdG8gdGVzdC4KKyAqIFxwYXJhbSBpZjEgICAgICAgICAgIFZhbHVlIHRvIHVzZSBpZiBccCBjb25kaXRpb24gPT0gTUJFRFRMU19DVF9UUlVFLgorICoKKyAqIFxyZXR1cm4gIFxjIGlmMSBpZiBccCBjb25kaXRpb24gPT0gTUJFRFRMU19DVF9UUlVFLCBvdGhlcndpc2UgMC4KKyAqLworc3RhdGljIGlubGluZSBpbnQgbWJlZHRsc19jdF9lcnJvcl9pZl9lbHNlXzAobWJlZHRsc19jdF9jb25kaXRpb25fdCBjb25kaXRpb24sIGludCBpZjEpOworCisvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisgKiBCbG9jayBtZW1vcnkgb3BlcmF0aW9ucworICovCisKKyNpZiBkZWZpbmVkKE1CRURUTFNfUEtDUzFfVjE1KSAmJiBkZWZpbmVkKE1CRURUTFNfUlNBX0MpCisKKy8qKiBDb25kaXRpb25hbGx5IHNldCBhIGJsb2NrIG9mIG1lbW9yeSB0byB6ZXJvLgorICoKKyAqIFJlZ2FyZGxlc3Mgb2YgdGhlIGNvbmRpdGlvbiwgZXZlcnkgYnl0ZSB3aWxsIGJlIHJlYWQgb25jZSBhbmQgd3JpdHRlbiB0bworICogb25jZS4KKyAqCisgKiBccGFyYW0gY29uZGl0aW9uICAgICBTZWNyZXQuIENvbmRpdGlvbiB0byB0ZXN0LgorICogXHBhcmFtIGJ1ZiAgICAgICAgICAgU2VjcmV0LiBQb2ludGVyIHRvIHRoZSBzdGFydCBvZiB0aGUgYnVmZmVyLgorICogXHBhcmFtIGxlbiAgICAgICAgICAgTnVtYmVyIG9mIGJ5dGVzIHRvIHNldCB0byB6ZXJvLgorICoKKyAqIFx3YXJuaW5nIFVubGlrZSBtYmVkdGxzX3BsYXRmb3JtX3plcm9pemUsIHRoaXMgZG9lcyBub3QgaGF2ZSB0aGUgc2FtZSBndWFyYW50ZWVzCisgKiBhYm91dCBub3QgYmVpbmcgb3B0aW1pc2VkIGF3YXkgaWYgdGhlIG1lbW9yeSBpcyBuZXZlciByZWFkIGFnYWluLgorICovCit2b2lkIG1iZWR0bHNfY3RfemVyb2l6ZV9pZihtYmVkdGxzX2N0X2NvbmRpdGlvbl90IGNvbmRpdGlvbiwgdm9pZCAqYnVmLCBzaXplX3QgbGVuKTsKKworLyoqIFNoaWZ0IHNvbWUgZGF0YSB0b3dhcmRzIHRoZSBsZWZ0IGluc2lkZSBhIGJ1ZmZlci4KKyAqCisgKiBGdW5jdGlvbmFsbHkgZXF1aXZhbGVudCB0bzoKKyAqCisgKiBtZW1tb3ZlKHN0YXJ0LCBzdGFydCArIG9mZnNldCwgdG90YWwgLSBvZmZzZXQpOworICogbWVtc2V0KHN0YXJ0ICsgKHRvdGFsIC0gb2Zmc2V0KSwgMCwgb2Zmc2V0KTsKKyAqCisgKiBUaW1pbmcgaW5kZXBlbmRlbmNlIGNvbWVzIGF0IHRoZSBleHBlbnNlIG9mIHBlcmZvcm1hbmNlLgorICoKKyAqIFxwYXJhbSBzdGFydCAgICAgU2VjcmV0LiBQb2ludGVyIHRvIHRoZSBzdGFydCBvZiB0aGUgYnVmZmVyLgorICogXHBhcmFtIHRvdGFsICAgICBUb3RhbCBzaXplIG9mIHRoZSBidWZmZXIuCisgKiBccGFyYW0gb2Zmc2V0ICAgIFNlY3JldC4gT2Zmc2V0IGZyb20gd2hpY2ggdG8gY29weSBccCB0b3RhbCAtIFxwIG9mZnNldCBieXRlcy4KKyAqLwordm9pZCBtYmVkdGxzX2N0X21lbW1vdmVfbGVmdCh2b2lkICpzdGFydCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IHRvdGFsLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3Qgb2Zmc2V0KTsKKworI2VuZGlmIC8qIGRlZmluZWQoTUJFRFRMU19QS0NTMV9WMTUpICYmIGRlZmluZWQoTUJFRFRMU19SU0FfQykgKi8KKworLyoqIENvbmRpdGlvbmFsIG1lbWNweS4KKyAqCisgKiBGdW5jdGlvbmFsbHkgZXF1aXZhbGVudCB0bzoKKyAqCisgKiBpZiAoY29uZGl0aW9uKSB7CisgKiAgICAgIG1lbWNweShkZXN0LCBzcmMxLCBsZW4pOworICogfSBlbHNlIHsKKyAqICAgICAgaWYgKHNyYzIgIT0gTlVMTCkKKyAqICAgICAgICAgIG1lbWNweShkZXN0LCBzcmMyLCBsZW4pOworICogfQorICoKKyAqIEl0IHdpbGwgYWx3YXlzIHJlYWQgbGVuIGJ5dGVzIGZyb20gc3JjMS4KKyAqIElmIHNyYzIgIT0gTlVMTCwgaXQgd2lsbCBhbHdheXMgcmVhZCBsZW4gYnl0ZXMgZnJvbSBzcmMyLgorICogSWYgc3JjMiA9PSBOVUxMLCBpdCB3aWxsIGluc3RlYWQgcmVhZCBsZW4gYnl0ZXMgZnJvbSBkZXN0IChhcyBpZiBzcmMyID09IGRlc3QpLgorICoKKyAqIFxwYXJhbSBjb25kaXRpb24gVGhlIGNvbmRpdGlvbgorICogXHBhcmFtIGRlc3QgICAgICBTZWNyZXQuIERlc3RpbmF0aW9uIHBvaW50ZXIuCisgKiBccGFyYW0gc3JjMSAgICAgIFNlY3JldC4gUG9pbnRlciB0byBjb3B5IGZyb20gKGlmIFxwIGNvbmRpdGlvbiA9PSBNQkVEVExTX0NUX1RSVUUpLgorICogICAgICAgICAgICAgICAgICBUaGlzIG1heSBiZSBlcXVhbCB0byBccCBkZXN0LCBidXQgbWF5IG5vdCBvdmVybGFwIGluIG90aGVyIHdheXMuCisgKiBccGFyYW0gc3JjMiAgICAgIFNlY3JldCAoY29udGVudHMgb25seSAtIG1heSBicmFuY2ggdG8gZGV0ZXJtaW5lIGlmIHRoaXMgcGFyYW1ldGVyIGlzIE5VTEwpLgorICogICAgICAgICAgICAgICAgICBQb2ludGVyIHRvIGNvcHkgZnJvbSAoaWYgXHAgY29uZGl0aW9uID09IE1CRURUTFNfQ1RfRkFMU0UgYW5kIFxwIHNyYzIgaXMgbm90IE5VTEwpLiBNYXkgYmUgTlVMTC4KKyAqICAgICAgICAgICAgICAgICAgVGhpcyBtYXkgYmUgZXF1YWwgdG8gXHAgZGVzdCwgYnV0IG1heSBub3Qgb3ZlcmxhcCBpdCBpbiBvdGhlciB3YXlzLiBJdCBtYXkgb3ZlcmxhcCB3aXRoIFxwIHNyYzEuCisgKiBccGFyYW0gbGVuICAgICAgIE51bWJlciBvZiBieXRlcyB0byBjb3B5LgorICovCit2b2lkIG1iZWR0bHNfY3RfbWVtY3B5X2lmKG1iZWR0bHNfY3RfY29uZGl0aW9uX3QgY29uZGl0aW9uLAorICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBjaGFyICpkZXN0LAorICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1bnNpZ25lZCBjaGFyICpzcmMxLAorICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1bnNpZ25lZCBjaGFyICpzcmMyLAorICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgbGVuCisgICAgICAgICAgICAgICAgICAgICAgICAgICk7CisKKy8qKiBDb3B5IGRhdGEgZnJvbSBhIHNlY3JldCBwb3NpdGlvbi4KKyAqCisgKiBGdW5jdGlvbmFsbHkgZXF1aXZhbGVudCB0bzoKKyAqCisgKiBtZW1jcHkoZHN0LCBzcmMgKyBvZmZzZXQsIGxlbikKKyAqCisgKiBUaGlzIGZ1bmN0aW9uIGNvcGllcyBccCBsZW4gYnl0ZXMgZnJvbSBccCBzcmMgKyBccCBvZmZzZXQgdG8KKyAqIFxwIGRzdCwgd2l0aCBhIGNvZGUgZmxvdyBhbmQgbWVtb3J5IGFjY2VzcyBwYXR0ZXJuIHRoYXQgZG9lcyBub3QgZGVwZW5kIG9uCisgKiBccCBvZmZzZXQsIGJ1dCBvbmx5IG9uIFxwIG9mZnNldF9taW4sIFxwIG9mZnNldF9tYXggYW5kIFxwIGxlbi4KKyAqCisgKiBcbm90ZSAgICAgICAgICAgICAgICBUaGlzIGZ1bmN0aW9uIHJlYWRzIGZyb20gXHAgZGVzdCwgYnV0IHRoZSB2YWx1ZSB0aGF0CisgKiAgICAgICAgICAgICAgICAgICAgICBpcyByZWFkIGRvZXMgbm90IGluZmx1ZW5jZSB0aGUgcmVzdWx0IGFuZCB0aGlzCisgKiAgICAgICAgICAgICAgICAgICAgICBmdW5jdGlvbidzIGJlaGF2aW9yIGlzIHdlbGwtZGVmaW5lZCByZWdhcmRsZXNzIG9mIHRoZQorICogICAgICAgICAgICAgICAgICAgICAgY29udGVudHMgb2YgdGhlIGJ1ZmZlcnMuIFRoaXMgbWF5IHJlc3VsdCBpbiBmYWxzZQorICogICAgICAgICAgICAgICAgICAgICAgcG9zaXRpdmVzIGZyb20gc3RhdGljIG9yIGR5bmFtaWMgYW5hbHl6ZXJzLCBlc3BlY2lhbGx5CisgKiAgICAgICAgICAgICAgICAgICAgICBpZiBccCBkZXN0IGlzIG5vdCBpbml0aWFsaXplZC4KKyAqCisgKiBccGFyYW0gZGVzdCAgICAgICAgICBTZWNyZXQuIFRoZSBkZXN0aW5hdGlvbiBidWZmZXIuIFRoaXMgbXVzdCBwb2ludCB0byBhIHdyaXRhYmxlCisgKiAgICAgICAgICAgICAgICAgICAgICBidWZmZXIgb2YgYXQgbGVhc3QgXHAgbGVuIGJ5dGVzLgorICogXHBhcmFtIHNyYyAgICAgICAgICAgU2VjcmV0LiBUaGUgYmFzZSBvZiB0aGUgc291cmNlIGJ1ZmZlci4gVGhpcyBtdXN0IHBvaW50IHRvIGEKKyAqICAgICAgICAgICAgICAgICAgICAgIHJlYWRhYmxlIGJ1ZmZlciBvZiBhdCBsZWFzdCBccCBvZmZzZXRfbWF4ICsgXHAgbGVuCisgKiAgICAgICAgICAgICAgICAgICAgICBieXRlcy4gU2hvdWxkbid0IG92ZXJsYXAgd2l0aCBccCBkZXN0CisgKiBccGFyYW0gb2Zmc2V0ICAgICAgICBTZWNyZXQuIFRoZSBvZmZzZXQgaW4gdGhlIHNvdXJjZSBidWZmZXIgZnJvbSB3aGljaCB0byBjb3B5LgorICogICAgICAgICAgICAgICAgICAgICAgVGhpcyBtdXN0IGJlIG5vIGxlc3MgdGhhbiBccCBvZmZzZXRfbWluIGFuZCBubyBncmVhdGVyCisgKiAgICAgICAgICAgICAgICAgICAgICB0aGFuIFxwIG9mZnNldF9tYXguCisgKiBccGFyYW0gb2Zmc2V0X21pbiAgICBUaGUgbWluaW1hbCB2YWx1ZSBvZiBccCBvZmZzZXQuCisgKiBccGFyYW0gb2Zmc2V0X21heCAgICBUaGUgbWF4aW1hbCB2YWx1ZSBvZiBccCBvZmZzZXQuCisgKiBccGFyYW0gbGVuICAgICAgICAgICBUaGUgbnVtYmVyIG9mIGJ5dGVzIHRvIGNvcHkuCisgKi8KK3ZvaWQgbWJlZHRsc19jdF9tZW1jcHlfb2Zmc2V0KHVuc2lnbmVkIGNoYXIgKmRlc3QsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1bnNpZ25lZCBjaGFyICpzcmMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3Qgb2Zmc2V0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IG9mZnNldF9taW4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3Qgb2Zmc2V0X21heCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBsZW4pOworCisvKiBEb2N1bWVudGVkIGluIGluY2x1ZGUvbWJlZHRscy9jb25zdGFudF90aW1lLmguIGEgYW5kIGIgYXJlIHNlY3JldC4KKworICAgaW50IG1iZWR0bHNfY3RfbWVtY21wKGNvbnN0IHZvaWQgKmEsCisgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgdm9pZCAqYiwKKyAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3Qgbik7CisgKi8KKworI2lmIGRlZmluZWQoTUJFRFRMU19OSVNUX0tXX0MpCisKKy8qKiBDb25zdGFudC10aW1lIGJ1ZmZlciBjb21wYXJpc29uIHdpdGhvdXQgYnJhbmNoZXMuCisgKgorICogU2ltaWxhciB0byBtYmVkdGxzX2N0X21lbWNtcCwgZXhjZXB0IHRoYXQgdGhlIHJlc3VsdCBvbmx5IGRlcGVuZHMgb24gcGFydCBvZgorICogdGhlIGlucHV0IGRhdGEgLSBkaWZmZXJlbmNlcyBpbiB0aGUgaGVhZCBvciB0YWlsIGFyZSBpZ25vcmVkLiBGdW5jdGlvbmFsbHkgZXF1aXZhbGVudCB0bzoKKyAqCisgKiBtZW1jbXAoYSArIHNraXBfaGVhZCwgYiArIHNraXBfaGVhZCwgc2l6ZSAtIHNraXBfaGVhZCAtIHNraXBfdGFpbCkKKyAqCisgKiBUaW1lIHRha2VuIGRlcGVuZHMgb24gXHAgbiwgYnV0IG5vdCBvbiBccCBza2lwX2hlYWQgb3IgXHAgc2tpcF90YWlsIC4KKyAqCisgKiBCZWhhdmlvdXIgaXMgdW5kZWZpbmVkIGlmICggXHAgc2tpcF9oZWFkICsgXHAgc2tpcF90YWlsKSA+IFxwIG4uCisgKgorICogXHBhcmFtIGEgICAgICAgICBTZWNyZXQuIFBvaW50ZXIgdG8gdGhlIGZpcnN0IGJ1ZmZlciwgY29udGFpbmluZyBhdCBsZWFzdCBccCBuIGJ5dGVzLiBNYXkgbm90IGJlIE5VTEwuCisgKiBccGFyYW0gYiAgICAgICAgIFNlY3JldC4gUG9pbnRlciB0byB0aGUgc2Vjb25kIGJ1ZmZlciwgY29udGFpbmluZyBhdCBsZWFzdCBccCBuIGJ5dGVzLiBNYXkgbm90IGJlIE5VTEwuCisgKiBccGFyYW0gbiAgICAgICAgIFRoZSBudW1iZXIgb2YgYnl0ZXMgdG8gZXhhbWluZSAodG90YWwgc2l6ZSBvZiB0aGUgYnVmZmVycykuCisgKiBccGFyYW0gc2tpcF9oZWFkIFNlY3JldC4gVGhlIG51bWJlciBvZiBieXRlcyB0byB0cmVhdCBhcyBub24tc2lnbmlmaWNhbnQgYXQgdGhlIHN0YXJ0IG9mIHRoZSBidWZmZXIuCisgKiAgICAgICAgICAgICAgICAgIFRoZXNlIGJ5dGVzIHdpbGwgc3RpbGwgYmUgcmVhZC4KKyAqIFxwYXJhbSBza2lwX3RhaWwgU2VjcmV0LiBUaGUgbnVtYmVyIG9mIGJ5dGVzIHRvIHRyZWF0IGFzIG5vbi1zaWduaWZpY2FudCBhdCB0aGUgZW5kIG9mIHRoZSBidWZmZXIuCisgKiAgICAgICAgICAgICAgICAgIFRoZXNlIGJ5dGVzIHdpbGwgc3RpbGwgYmUgcmVhZC4KKyAqCisgKiBccmV0dXJuICAgICAgICAgIFplcm8gaWYgdGhlIGNvbnRlbnRzIG9mIHRoZSB0d28gYnVmZmVycyBhcmUgdGhlIHNhbWUsIG90aGVyd2lzZSBub24temVyby4KKyAqLworaW50IG1iZWR0bHNfY3RfbWVtY21wX3BhcnRpYWwoY29uc3Qgdm9pZCAqYSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHZvaWQgKmIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBza2lwX2hlYWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3Qgc2tpcF90YWlsKTsKKworI2VuZGlmCisKKy8qIEluY2x1ZGUgdGhlIGltcGxlbWVudGF0aW9uIG9mIHN0YXRpYyBpbmxpbmUgZnVuY3Rpb25zIGFib3ZlLiAqLworI2luY2x1ZGUgImNvbnN0YW50X3RpbWVfaW1wbC5oIgorCisjZW5kaWYgLyogTUJFRFRMU19DT05TVEFOVF9USU1FX0lOVEVSTkFMX0ggKi8KZGlmZiAtLWdpdCBhL2xpYnJhcnkvY3RyLmggYi90Zi1wc2EtY3J5cHRvL2RyaXZlcnMvYnVpbHRpbi9zcmMvY3RyLmgKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIGxpYnJhcnkvY3RyLmgKcmVuYW1lIHRvIHRmLXBzYS1jcnlwdG8vZHJpdmVycy9idWlsdGluL3NyYy9jdHIuaApkaWZmIC0tZ2l0IGEvbGlicmFyeS9jdHJfZHJiZy5jIGIvdGYtcHNhLWNyeXB0by9kcml2ZXJzL2J1aWx0aW4vc3JjL2N0cl9kcmJnLmMKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIGxpYnJhcnkvY3RyX2RyYmcuYwpyZW5hbWUgdG8gdGYtcHNhLWNyeXB0by9kcml2ZXJzL2J1aWx0aW4vc3JjL2N0cl9kcmJnLmMKZGlmZiAtLWdpdCBhL3RmLXBzYS1jcnlwdG8vZHJpdmVycy9idWlsdGluL3NyYy9kZXMuYyBiL3RmLXBzYS1jcnlwdG8vZHJpdmVycy9idWlsdGluL3NyYy9kZXMuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41NDEwYmQzCi0tLSAvZGV2L251bGwKKysrIGIvdGYtcHNhLWNyeXB0by9kcml2ZXJzL2J1aWx0aW4vc3JjL2Rlcy5jCkBAIC0wLDAgKzEsMTAzOCBAQAorLyoKKyAqICBGSVBTLTQ2LTMgY29tcGxpYW50IFRyaXBsZS1ERVMgaW1wbGVtZW50YXRpb24KKyAqCisgKiAgQ29weXJpZ2h0IFRoZSBNYmVkIFRMUyBDb250cmlidXRvcnMKKyAqICBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMCBPUiBHUEwtMi4wLW9yLWxhdGVyCisgKi8KKy8qCisgKiAgREVTLCBvbiB3aGljaCBUREVTIGlzIGJhc2VkLCB3YXMgb3JpZ2luYWxseSBkZXNpZ25lZCBieSBIb3JzdCBGZWlzdGVsCisgKiAgYXQgSUJNIGluIDE5NzQsIGFuZCB3YXMgYWRvcHRlZCBhcyBhIHN0YW5kYXJkIGJ5IE5JU1QgKGZvcm1lcmx5IE5CUykuCisgKgorICogIGh0dHA6Ly9jc3JjLm5pc3QuZ292L3B1YmxpY2F0aW9ucy9maXBzL2ZpcHM0Ni0zL2ZpcHM0Ni0zLnBkZgorICovCisKKyNpbmNsdWRlICJjb21tb24uaCIKKworI2lmIGRlZmluZWQoTUJFRFRMU19ERVNfQykKKworI2luY2x1ZGUgIm1iZWR0bHMvZGVzLmgiCisjaW5jbHVkZSAibWJlZHRscy9lcnJvci5oIgorI2luY2x1ZGUgIm1iZWR0bHMvcGxhdGZvcm1fdXRpbC5oIgorCisjaW5jbHVkZSA8c3RyaW5nLmg+CisKKyNpbmNsdWRlICJtYmVkdGxzL3BsYXRmb3JtLmgiCisKKy8qCisgKiBFeHBhbmRlZCBERVMgUy1ib3hlcworICovCitzdGF0aWMgY29uc3QgdWludDMyX3QgU0IxWzY0XSA9Cit7CisgICAgMHgwMTAxMDQwMCwgMHgwMDAwMDAwMCwgMHgwMDAxMDAwMCwgMHgwMTAxMDQwNCwKKyAgICAweDAxMDEwMDA0LCAweDAwMDEwNDA0LCAweDAwMDAwMDA0LCAweDAwMDEwMDAwLAorICAgIDB4MDAwMDA0MDAsIDB4MDEwMTA0MDAsIDB4MDEwMTA0MDQsIDB4MDAwMDA0MDAsCisgICAgMHgwMTAwMDQwNCwgMHgwMTAxMDAwNCwgMHgwMTAwMDAwMCwgMHgwMDAwMDAwNCwKKyAgICAweDAwMDAwNDA0LCAweDAxMDAwNDAwLCAweDAxMDAwNDAwLCAweDAwMDEwNDAwLAorICAgIDB4MDAwMTA0MDAsIDB4MDEwMTAwMDAsIDB4MDEwMTAwMDAsIDB4MDEwMDA0MDQsCisgICAgMHgwMDAxMDAwNCwgMHgwMTAwMDAwNCwgMHgwMTAwMDAwNCwgMHgwMDAxMDAwNCwKKyAgICAweDAwMDAwMDAwLCAweDAwMDAwNDA0LCAweDAwMDEwNDA0LCAweDAxMDAwMDAwLAorICAgIDB4MDAwMTAwMDAsIDB4MDEwMTA0MDQsIDB4MDAwMDAwMDQsIDB4MDEwMTAwMDAsCisgICAgMHgwMTAxMDQwMCwgMHgwMTAwMDAwMCwgMHgwMTAwMDAwMCwgMHgwMDAwMDQwMCwKKyAgICAweDAxMDEwMDA0LCAweDAwMDEwMDAwLCAweDAwMDEwNDAwLCAweDAxMDAwMDA0LAorICAgIDB4MDAwMDA0MDAsIDB4MDAwMDAwMDQsIDB4MDEwMDA0MDQsIDB4MDAwMTA0MDQsCisgICAgMHgwMTAxMDQwNCwgMHgwMDAxMDAwNCwgMHgwMTAxMDAwMCwgMHgwMTAwMDQwNCwKKyAgICAweDAxMDAwMDA0LCAweDAwMDAwNDA0LCAweDAwMDEwNDA0LCAweDAxMDEwNDAwLAorICAgIDB4MDAwMDA0MDQsIDB4MDEwMDA0MDAsIDB4MDEwMDA0MDAsIDB4MDAwMDAwMDAsCisgICAgMHgwMDAxMDAwNCwgMHgwMDAxMDQwMCwgMHgwMDAwMDAwMCwgMHgwMTAxMDAwNAorfTsKKworc3RhdGljIGNvbnN0IHVpbnQzMl90IFNCMls2NF0gPQoreworICAgIDB4ODAxMDgwMjAsIDB4ODAwMDgwMDAsIDB4MDAwMDgwMDAsIDB4MDAxMDgwMjAsCisgICAgMHgwMDEwMDAwMCwgMHgwMDAwMDAyMCwgMHg4MDEwMDAyMCwgMHg4MDAwODAyMCwKKyAgICAweDgwMDAwMDIwLCAweDgwMTA4MDIwLCAweDgwMTA4MDAwLCAweDgwMDAwMDAwLAorICAgIDB4ODAwMDgwMDAsIDB4MDAxMDAwMDAsIDB4MDAwMDAwMjAsIDB4ODAxMDAwMjAsCisgICAgMHgwMDEwODAwMCwgMHgwMDEwMDAyMCwgMHg4MDAwODAyMCwgMHgwMDAwMDAwMCwKKyAgICAweDgwMDAwMDAwLCAweDAwMDA4MDAwLCAweDAwMTA4MDIwLCAweDgwMTAwMDAwLAorICAgIDB4MDAxMDAwMjAsIDB4ODAwMDAwMjAsIDB4MDAwMDAwMDAsIDB4MDAxMDgwMDAsCisgICAgMHgwMDAwODAyMCwgMHg4MDEwODAwMCwgMHg4MDEwMDAwMCwgMHgwMDAwODAyMCwKKyAgICAweDAwMDAwMDAwLCAweDAwMTA4MDIwLCAweDgwMTAwMDIwLCAweDAwMTAwMDAwLAorICAgIDB4ODAwMDgwMjAsIDB4ODAxMDAwMDAsIDB4ODAxMDgwMDAsIDB4MDAwMDgwMDAsCisgICAgMHg4MDEwMDAwMCwgMHg4MDAwODAwMCwgMHgwMDAwMDAyMCwgMHg4MDEwODAyMCwKKyAgICAweDAwMTA4MDIwLCAweDAwMDAwMDIwLCAweDAwMDA4MDAwLCAweDgwMDAwMDAwLAorICAgIDB4MDAwMDgwMjAsIDB4ODAxMDgwMDAsIDB4MDAxMDAwMDAsIDB4ODAwMDAwMjAsCisgICAgMHgwMDEwMDAyMCwgMHg4MDAwODAyMCwgMHg4MDAwMDAyMCwgMHgwMDEwMDAyMCwKKyAgICAweDAwMTA4MDAwLCAweDAwMDAwMDAwLCAweDgwMDA4MDAwLCAweDAwMDA4MDIwLAorICAgIDB4ODAwMDAwMDAsIDB4ODAxMDAwMjAsIDB4ODAxMDgwMjAsIDB4MDAxMDgwMDAKK307CisKK3N0YXRpYyBjb25zdCB1aW50MzJfdCBTQjNbNjRdID0KK3sKKyAgICAweDAwMDAwMjA4LCAweDA4MDIwMjAwLCAweDAwMDAwMDAwLCAweDA4MDIwMDA4LAorICAgIDB4MDgwMDAyMDAsIDB4MDAwMDAwMDAsIDB4MDAwMjAyMDgsIDB4MDgwMDAyMDAsCisgICAgMHgwMDAyMDAwOCwgMHgwODAwMDAwOCwgMHgwODAwMDAwOCwgMHgwMDAyMDAwMCwKKyAgICAweDA4MDIwMjA4LCAweDAwMDIwMDA4LCAweDA4MDIwMDAwLCAweDAwMDAwMjA4LAorICAgIDB4MDgwMDAwMDAsIDB4MDAwMDAwMDgsIDB4MDgwMjAyMDAsIDB4MDAwMDAyMDAsCisgICAgMHgwMDAyMDIwMCwgMHgwODAyMDAwMCwgMHgwODAyMDAwOCwgMHgwMDAyMDIwOCwKKyAgICAweDA4MDAwMjA4LCAweDAwMDIwMjAwLCAweDAwMDIwMDAwLCAweDA4MDAwMjA4LAorICAgIDB4MDAwMDAwMDgsIDB4MDgwMjAyMDgsIDB4MDAwMDAyMDAsIDB4MDgwMDAwMDAsCisgICAgMHgwODAyMDIwMCwgMHgwODAwMDAwMCwgMHgwMDAyMDAwOCwgMHgwMDAwMDIwOCwKKyAgICAweDAwMDIwMDAwLCAweDA4MDIwMjAwLCAweDA4MDAwMjAwLCAweDAwMDAwMDAwLAorICAgIDB4MDAwMDAyMDAsIDB4MDAwMjAwMDgsIDB4MDgwMjAyMDgsIDB4MDgwMDAyMDAsCisgICAgMHgwODAwMDAwOCwgMHgwMDAwMDIwMCwgMHgwMDAwMDAwMCwgMHgwODAyMDAwOCwKKyAgICAweDA4MDAwMjA4LCAweDAwMDIwMDAwLCAweDA4MDAwMDAwLCAweDA4MDIwMjA4LAorICAgIDB4MDAwMDAwMDgsIDB4MDAwMjAyMDgsIDB4MDAwMjAyMDAsIDB4MDgwMDAwMDgsCisgICAgMHgwODAyMDAwMCwgMHgwODAwMDIwOCwgMHgwMDAwMDIwOCwgMHgwODAyMDAwMCwKKyAgICAweDAwMDIwMjA4LCAweDAwMDAwMDA4LCAweDA4MDIwMDA4LCAweDAwMDIwMjAwCit9OworCitzdGF0aWMgY29uc3QgdWludDMyX3QgU0I0WzY0XSA9Cit7CisgICAgMHgwMDgwMjAwMSwgMHgwMDAwMjA4MSwgMHgwMDAwMjA4MSwgMHgwMDAwMDA4MCwKKyAgICAweDAwODAyMDgwLCAweDAwODAwMDgxLCAweDAwODAwMDAxLCAweDAwMDAyMDAxLAorICAgIDB4MDAwMDAwMDAsIDB4MDA4MDIwMDAsIDB4MDA4MDIwMDAsIDB4MDA4MDIwODEsCisgICAgMHgwMDAwMDA4MSwgMHgwMDAwMDAwMCwgMHgwMDgwMDA4MCwgMHgwMDgwMDAwMSwKKyAgICAweDAwMDAwMDAxLCAweDAwMDAyMDAwLCAweDAwODAwMDAwLCAweDAwODAyMDAxLAorICAgIDB4MDAwMDAwODAsIDB4MDA4MDAwMDAsIDB4MDAwMDIwMDEsIDB4MDAwMDIwODAsCisgICAgMHgwMDgwMDA4MSwgMHgwMDAwMDAwMSwgMHgwMDAwMjA4MCwgMHgwMDgwMDA4MCwKKyAgICAweDAwMDAyMDAwLCAweDAwODAyMDgwLCAweDAwODAyMDgxLCAweDAwMDAwMDgxLAorICAgIDB4MDA4MDAwODAsIDB4MDA4MDAwMDEsIDB4MDA4MDIwMDAsIDB4MDA4MDIwODEsCisgICAgMHgwMDAwMDA4MSwgMHgwMDAwMDAwMCwgMHgwMDAwMDAwMCwgMHgwMDgwMjAwMCwKKyAgICAweDAwMDAyMDgwLCAweDAwODAwMDgwLCAweDAwODAwMDgxLCAweDAwMDAwMDAxLAorICAgIDB4MDA4MDIwMDEsIDB4MDAwMDIwODEsIDB4MDAwMDIwODEsIDB4MDAwMDAwODAsCisgICAgMHgwMDgwMjA4MSwgMHgwMDAwMDA4MSwgMHgwMDAwMDAwMSwgMHgwMDAwMjAwMCwKKyAgICAweDAwODAwMDAxLCAweDAwMDAyMDAxLCAweDAwODAyMDgwLCAweDAwODAwMDgxLAorICAgIDB4MDAwMDIwMDEsIDB4MDAwMDIwODAsIDB4MDA4MDAwMDAsIDB4MDA4MDIwMDEsCisgICAgMHgwMDAwMDA4MCwgMHgwMDgwMDAwMCwgMHgwMDAwMjAwMCwgMHgwMDgwMjA4MAorfTsKKworc3RhdGljIGNvbnN0IHVpbnQzMl90IFNCNVs2NF0gPQoreworICAgIDB4MDAwMDAxMDAsIDB4MDIwODAxMDAsIDB4MDIwODAwMDAsIDB4NDIwMDAxMDAsCisgICAgMHgwMDA4MDAwMCwgMHgwMDAwMDEwMCwgMHg0MDAwMDAwMCwgMHgwMjA4MDAwMCwKKyAgICAweDQwMDgwMTAwLCAweDAwMDgwMDAwLCAweDAyMDAwMTAwLCAweDQwMDgwMTAwLAorICAgIDB4NDIwMDAxMDAsIDB4NDIwODAwMDAsIDB4MDAwODAxMDAsIDB4NDAwMDAwMDAsCisgICAgMHgwMjAwMDAwMCwgMHg0MDA4MDAwMCwgMHg0MDA4MDAwMCwgMHgwMDAwMDAwMCwKKyAgICAweDQwMDAwMTAwLCAweDQyMDgwMTAwLCAweDQyMDgwMTAwLCAweDAyMDAwMTAwLAorICAgIDB4NDIwODAwMDAsIDB4NDAwMDAxMDAsIDB4MDAwMDAwMDAsIDB4NDIwMDAwMDAsCisgICAgMHgwMjA4MDEwMCwgMHgwMjAwMDAwMCwgMHg0MjAwMDAwMCwgMHgwMDA4MDEwMCwKKyAgICAweDAwMDgwMDAwLCAweDQyMDAwMTAwLCAweDAwMDAwMTAwLCAweDAyMDAwMDAwLAorICAgIDB4NDAwMDAwMDAsIDB4MDIwODAwMDAsIDB4NDIwMDAxMDAsIDB4NDAwODAxMDAsCisgICAgMHgwMjAwMDEwMCwgMHg0MDAwMDAwMCwgMHg0MjA4MDAwMCwgMHgwMjA4MDEwMCwKKyAgICAweDQwMDgwMTAwLCAweDAwMDAwMTAwLCAweDAyMDAwMDAwLCAweDQyMDgwMDAwLAorICAgIDB4NDIwODAxMDAsIDB4MDAwODAxMDAsIDB4NDIwMDAwMDAsIDB4NDIwODAxMDAsCisgICAgMHgwMjA4MDAwMCwgMHgwMDAwMDAwMCwgMHg0MDA4MDAwMCwgMHg0MjAwMDAwMCwKKyAgICAweDAwMDgwMTAwLCAweDAyMDAwMTAwLCAweDQwMDAwMTAwLCAweDAwMDgwMDAwLAorICAgIDB4MDAwMDAwMDAsIDB4NDAwODAwMDAsIDB4MDIwODAxMDAsIDB4NDAwMDAxMDAKK307CisKK3N0YXRpYyBjb25zdCB1aW50MzJfdCBTQjZbNjRdID0KK3sKKyAgICAweDIwMDAwMDEwLCAweDIwNDAwMDAwLCAweDAwMDA0MDAwLCAweDIwNDA0MDEwLAorICAgIDB4MjA0MDAwMDAsIDB4MDAwMDAwMTAsIDB4MjA0MDQwMTAsIDB4MDA0MDAwMDAsCisgICAgMHgyMDAwNDAwMCwgMHgwMDQwNDAxMCwgMHgwMDQwMDAwMCwgMHgyMDAwMDAxMCwKKyAgICAweDAwNDAwMDEwLCAweDIwMDA0MDAwLCAweDIwMDAwMDAwLCAweDAwMDA0MDEwLAorICAgIDB4MDAwMDAwMDAsIDB4MDA0MDAwMTAsIDB4MjAwMDQwMTAsIDB4MDAwMDQwMDAsCisgICAgMHgwMDQwNDAwMCwgMHgyMDAwNDAxMCwgMHgwMDAwMDAxMCwgMHgyMDQwMDAxMCwKKyAgICAweDIwNDAwMDEwLCAweDAwMDAwMDAwLCAweDAwNDA0MDEwLCAweDIwNDA0MDAwLAorICAgIDB4MDAwMDQwMTAsIDB4MDA0MDQwMDAsIDB4MjA0MDQwMDAsIDB4MjAwMDAwMDAsCisgICAgMHgyMDAwNDAwMCwgMHgwMDAwMDAxMCwgMHgyMDQwMDAxMCwgMHgwMDQwNDAwMCwKKyAgICAweDIwNDA0MDEwLCAweDAwNDAwMDAwLCAweDAwMDA0MDEwLCAweDIwMDAwMDEwLAorICAgIDB4MDA0MDAwMDAsIDB4MjAwMDQwMDAsIDB4MjAwMDAwMDAsIDB4MDAwMDQwMTAsCisgICAgMHgyMDAwMDAxMCwgMHgyMDQwNDAxMCwgMHgwMDQwNDAwMCwgMHgyMDQwMDAwMCwKKyAgICAweDAwNDA0MDEwLCAweDIwNDA0MDAwLCAweDAwMDAwMDAwLCAweDIwNDAwMDEwLAorICAgIDB4MDAwMDAwMTAsIDB4MDAwMDQwMDAsIDB4MjA0MDAwMDAsIDB4MDA0MDQwMTAsCisgICAgMHgwMDAwNDAwMCwgMHgwMDQwMDAxMCwgMHgyMDAwNDAxMCwgMHgwMDAwMDAwMCwKKyAgICAweDIwNDA0MDAwLCAweDIwMDAwMDAwLCAweDAwNDAwMDEwLCAweDIwMDA0MDEwCit9OworCitzdGF0aWMgY29uc3QgdWludDMyX3QgU0I3WzY0XSA9Cit7CisgICAgMHgwMDIwMDAwMCwgMHgwNDIwMDAwMiwgMHgwNDAwMDgwMiwgMHgwMDAwMDAwMCwKKyAgICAweDAwMDAwODAwLCAweDA0MDAwODAyLCAweDAwMjAwODAyLCAweDA0MjAwODAwLAorICAgIDB4MDQyMDA4MDIsIDB4MDAyMDAwMDAsIDB4MDAwMDAwMDAsIDB4MDQwMDAwMDIsCisgICAgMHgwMDAwMDAwMiwgMHgwNDAwMDAwMCwgMHgwNDIwMDAwMiwgMHgwMDAwMDgwMiwKKyAgICAweDA0MDAwODAwLCAweDAwMjAwODAyLCAweDAwMjAwMDAyLCAweDA0MDAwODAwLAorICAgIDB4MDQwMDAwMDIsIDB4MDQyMDAwMDAsIDB4MDQyMDA4MDAsIDB4MDAyMDAwMDIsCisgICAgMHgwNDIwMDAwMCwgMHgwMDAwMDgwMCwgMHgwMDAwMDgwMiwgMHgwNDIwMDgwMiwKKyAgICAweDAwMjAwODAwLCAweDAwMDAwMDAyLCAweDA0MDAwMDAwLCAweDAwMjAwODAwLAorICAgIDB4MDQwMDAwMDAsIDB4MDAyMDA4MDAsIDB4MDAyMDAwMDAsIDB4MDQwMDA4MDIsCisgICAgMHgwNDAwMDgwMiwgMHgwNDIwMDAwMiwgMHgwNDIwMDAwMiwgMHgwMDAwMDAwMiwKKyAgICAweDAwMjAwMDAyLCAweDA0MDAwMDAwLCAweDA0MDAwODAwLCAweDAwMjAwMDAwLAorICAgIDB4MDQyMDA4MDAsIDB4MDAwMDA4MDIsIDB4MDAyMDA4MDIsIDB4MDQyMDA4MDAsCisgICAgMHgwMDAwMDgwMiwgMHgwNDAwMDAwMiwgMHgwNDIwMDgwMiwgMHgwNDIwMDAwMCwKKyAgICAweDAwMjAwODAwLCAweDAwMDAwMDAwLCAweDAwMDAwMDAyLCAweDA0MjAwODAyLAorICAgIDB4MDAwMDAwMDAsIDB4MDAyMDA4MDIsIDB4MDQyMDAwMDAsIDB4MDAwMDA4MDAsCisgICAgMHgwNDAwMDAwMiwgMHgwNDAwMDgwMCwgMHgwMDAwMDgwMCwgMHgwMDIwMDAwMgorfTsKKworc3RhdGljIGNvbnN0IHVpbnQzMl90IFNCOFs2NF0gPQoreworICAgIDB4MTAwMDEwNDAsIDB4MDAwMDEwMDAsIDB4MDAwNDAwMDAsIDB4MTAwNDEwNDAsCisgICAgMHgxMDAwMDAwMCwgMHgxMDAwMTA0MCwgMHgwMDAwMDA0MCwgMHgxMDAwMDAwMCwKKyAgICAweDAwMDQwMDQwLCAweDEwMDQwMDAwLCAweDEwMDQxMDQwLCAweDAwMDQxMDAwLAorICAgIDB4MTAwNDEwMDAsIDB4MDAwNDEwNDAsIDB4MDAwMDEwMDAsIDB4MDAwMDAwNDAsCisgICAgMHgxMDA0MDAwMCwgMHgxMDAwMDA0MCwgMHgxMDAwMTAwMCwgMHgwMDAwMTA0MCwKKyAgICAweDAwMDQxMDAwLCAweDAwMDQwMDQwLCAweDEwMDQwMDQwLCAweDEwMDQxMDAwLAorICAgIDB4MDAwMDEwNDAsIDB4MDAwMDAwMDAsIDB4MDAwMDAwMDAsIDB4MTAwNDAwNDAsCisgICAgMHgxMDAwMDA0MCwgMHgxMDAwMTAwMCwgMHgwMDA0MTA0MCwgMHgwMDA0MDAwMCwKKyAgICAweDAwMDQxMDQwLCAweDAwMDQwMDAwLCAweDEwMDQxMDAwLCAweDAwMDAxMDAwLAorICAgIDB4MDAwMDAwNDAsIDB4MTAwNDAwNDAsIDB4MDAwMDEwMDAsIDB4MDAwNDEwNDAsCisgICAgMHgxMDAwMTAwMCwgMHgwMDAwMDA0MCwgMHgxMDAwMDA0MCwgMHgxMDA0MDAwMCwKKyAgICAweDEwMDQwMDQwLCAweDEwMDAwMDAwLCAweDAwMDQwMDAwLCAweDEwMDAxMDQwLAorICAgIDB4MDAwMDAwMDAsIDB4MTAwNDEwNDAsIDB4MDAwNDAwNDAsIDB4MTAwMDAwNDAsCisgICAgMHgxMDA0MDAwMCwgMHgxMDAwMTAwMCwgMHgxMDAwMTA0MCwgMHgwMDAwMDAwMCwKKyAgICAweDEwMDQxMDQwLCAweDAwMDQxMDAwLCAweDAwMDQxMDAwLCAweDAwMDAxMDQwLAorICAgIDB4MDAwMDEwNDAsIDB4MDAwNDAwNDAsIDB4MTAwMDAwMDAsIDB4MTAwNDEwMDAKK307CisKKy8qCisgKiBQQzE6IGxlZnQgYW5kIHJpZ2h0IGhhbHZlcyBiaXQtc3dhcAorICovCitzdGF0aWMgY29uc3QgdWludDMyX3QgTEhzWzE2XSA9Cit7CisgICAgMHgwMDAwMDAwMCwgMHgwMDAwMDAwMSwgMHgwMDAwMDEwMCwgMHgwMDAwMDEwMSwKKyAgICAweDAwMDEwMDAwLCAweDAwMDEwMDAxLCAweDAwMDEwMTAwLCAweDAwMDEwMTAxLAorICAgIDB4MDEwMDAwMDAsIDB4MDEwMDAwMDEsIDB4MDEwMDAxMDAsIDB4MDEwMDAxMDEsCisgICAgMHgwMTAxMDAwMCwgMHgwMTAxMDAwMSwgMHgwMTAxMDEwMCwgMHgwMTAxMDEwMQorfTsKKworc3RhdGljIGNvbnN0IHVpbnQzMl90IFJIc1sxNl0gPQoreworICAgIDB4MDAwMDAwMDAsIDB4MDEwMDAwMDAsIDB4MDAwMTAwMDAsIDB4MDEwMTAwMDAsCisgICAgMHgwMDAwMDEwMCwgMHgwMTAwMDEwMCwgMHgwMDAxMDEwMCwgMHgwMTAxMDEwMCwKKyAgICAweDAwMDAwMDAxLCAweDAxMDAwMDAxLCAweDAwMDEwMDAxLCAweDAxMDEwMDAxLAorICAgIDB4MDAwMDAxMDEsIDB4MDEwMDAxMDEsIDB4MDAwMTAxMDEsIDB4MDEwMTAxMDEsCit9OworCisvKgorICogSW5pdGlhbCBQZXJtdXRhdGlvbiBtYWNybworICovCisjZGVmaW5lIERFU19JUChYLCBZKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgZG8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICBUID0gKCgoWCkgPj4gIDQpIF4gKFkpKSAmIDB4MEYwRjBGMEY7IChZKSBePSBUOyAoWCkgXj0gKFQgPDwgIDQpOyBcCisgICAgICAgIFQgPSAoKChYKSA+PiAxNikgXiAoWSkpICYgMHgwMDAwRkZGRjsgKFkpIF49IFQ7IChYKSBePSAoVCA8PCAxNik7IFwKKyAgICAgICAgVCA9ICgoKFkpID4+ICAyKSBeIChYKSkgJiAweDMzMzMzMzMzOyAoWCkgXj0gVDsgKFkpIF49IChUIDw8ICAyKTsgXAorICAgICAgICBUID0gKCgoWSkgPj4gIDgpIF4gKFgpKSAmIDB4MDBGRjAwRkY7IChYKSBePSBUOyAoWSkgXj0gKFQgPDwgIDgpOyBcCisgICAgICAgIChZKSA9ICgoKFkpIDw8IDEpIHwgKChZKSA+PiAzMSkpICYgMHhGRkZGRkZGRjsgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgVCA9ICgoWCkgXiAoWSkpICYgMHhBQUFBQUFBQTsgKFkpIF49IFQ7IChYKSBePSBUOyAgICAgICAgICAgICAgICAgXAorICAgICAgICAoWCkgPSAoKChYKSA8PCAxKSB8ICgoWCkgPj4gMzEpKSAmIDB4RkZGRkZGRkY7ICAgICAgICAgICAgICAgICAgICBcCisgICAgfSB3aGlsZSAoMCkKKworLyoKKyAqIEZpbmFsIFBlcm11dGF0aW9uIG1hY3JvCisgKi8KKyNkZWZpbmUgREVTX0ZQKFgsIFkpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICBkbyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgIChYKSA9ICgoKFgpIDw8IDMxKSB8ICgoWCkgPj4gMSkpICYgMHhGRkZGRkZGRjsgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgVCA9ICgoWCkgXiAoWSkpICYgMHhBQUFBQUFBQTsgKFgpIF49IFQ7IChZKSBePSBUOyAgICAgICAgICAgICAgICAgXAorICAgICAgICAoWSkgPSAoKChZKSA8PCAzMSkgfCAoKFkpID4+IDEpKSAmIDB4RkZGRkZGRkY7ICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgIFQgPSAoKChZKSA+PiAgOCkgXiAoWCkpICYgMHgwMEZGMDBGRjsgKFgpIF49IFQ7IChZKSBePSAoVCA8PCAgOCk7IFwKKyAgICAgICAgVCA9ICgoKFkpID4+ICAyKSBeIChYKSkgJiAweDMzMzMzMzMzOyAoWCkgXj0gVDsgKFkpIF49IChUIDw8ICAyKTsgXAorICAgICAgICBUID0gKCgoWCkgPj4gMTYpIF4gKFkpKSAmIDB4MDAwMEZGRkY7IChZKSBePSBUOyAoWCkgXj0gKFQgPDwgMTYpOyBcCisgICAgICAgIFQgPSAoKChYKSA+PiAgNCkgXiAoWSkpICYgMHgwRjBGMEYwRjsgKFkpIF49IFQ7IChYKSBePSAoVCA8PCAgNCk7IFwKKyAgICB9IHdoaWxlICgwKQorCisvKgorICogREVTIHJvdW5kIG1hY3JvCisgKi8KKyNkZWZpbmUgREVTX1JPVU5EKFgsIFkpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIGRvICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgIFQgPSAqU0srKyBeIChYKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICAoWSkgXj0gU0I4WyhUKSAmIDB4M0ZdIF4gICAgICAgICAgICBcCisgICAgICAgICAgICAgICBTQjZbKFQgPj4gIDgpICYgMHgzRl0gXiAgICAgICAgICAgIFwKKyAgICAgICAgICAgICAgIFNCNFsoVCA+PiAxNikgJiAweDNGXSBeICAgICAgICAgICAgXAorICAgICAgICAgICAgICAgU0IyWyhUID4+IDI0KSAmIDB4M0ZdOyAgICAgICAgICAgICBcCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICBUID0gKlNLKysgXiAoKChYKSA8PCAyOCkgfCAoKFgpID4+IDQpKTsgICAgIFwKKyAgICAgICAgKFkpIF49IFNCN1soVCkgJiAweDNGXSBeICAgICAgICAgICAgXAorICAgICAgICAgICAgICAgU0I1WyhUID4+ICA4KSAmIDB4M0ZdIF4gICAgICAgICAgICBcCisgICAgICAgICAgICAgICBTQjNbKFQgPj4gMTYpICYgMHgzRl0gXiAgICAgICAgICAgIFwKKyAgICAgICAgICAgICAgIFNCMVsoVCA+PiAyNCkgJiAweDNGXTsgICAgICAgICAgICAgXAorICAgIH0gd2hpbGUgKDApCisKKyNkZWZpbmUgU1dBUChhLCBiKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICBkbyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgIHVpbnQzMl90IHQgPSAoYSk7IChhKSA9IChiKTsgKGIpID0gdDsgdCA9IDA7ICAgIFwKKyAgICB9IHdoaWxlICgwKQorCit2b2lkIG1iZWR0bHNfZGVzX2luaXQobWJlZHRsc19kZXNfY29udGV4dCAqY3R4KQoreworICAgIG1lbXNldChjdHgsIDAsIHNpemVvZihtYmVkdGxzX2Rlc19jb250ZXh0KSk7Cit9CisKK3ZvaWQgbWJlZHRsc19kZXNfZnJlZShtYmVkdGxzX2Rlc19jb250ZXh0ICpjdHgpCit7CisgICAgaWYgKGN0eCA9PSBOVUxMKSB7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBtYmVkdGxzX3BsYXRmb3JtX3plcm9pemUoY3R4LCBzaXplb2YobWJlZHRsc19kZXNfY29udGV4dCkpOworfQorCit2b2lkIG1iZWR0bHNfZGVzM19pbml0KG1iZWR0bHNfZGVzM19jb250ZXh0ICpjdHgpCit7CisgICAgbWVtc2V0KGN0eCwgMCwgc2l6ZW9mKG1iZWR0bHNfZGVzM19jb250ZXh0KSk7Cit9CisKK3ZvaWQgbWJlZHRsc19kZXMzX2ZyZWUobWJlZHRsc19kZXMzX2NvbnRleHQgKmN0eCkKK3sKKyAgICBpZiAoY3R4ID09IE5VTEwpIHsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIG1iZWR0bHNfcGxhdGZvcm1femVyb2l6ZShjdHgsIHNpemVvZihtYmVkdGxzX2RlczNfY29udGV4dCkpOworfQorCitzdGF0aWMgY29uc3QgdW5zaWduZWQgY2hhciBvZGRfcGFyaXR5X3RhYmxlWzEyOF0gPSB7IDEsICAyLCAgNCwgIDcsICA4LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxMSwgMTMsIDE0LCAxNiwgMTksIDIxLCAyMiwgMjUsIDI2LCAyOCwgMzEsIDMyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAzNSwgMzcsIDM4LCA0MSwgNDIsIDQ0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA0NywgNDksIDUwLCA1MiwgNTUsIDU2LCA1OSwgNjEsIDYyLCA2NCwgNjcsIDY5LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA3MCwgNzMsIDc0LCA3NiwgNzksIDgxLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA4MiwgODQsIDg3LCA4OCwgOTEsIDkzLCA5NCwgOTcsIDk4LCAxMDAsIDEwMywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMTA0LCAxMDcsIDEwOSwgMTEwLCAxMTIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDExNSwgMTE3LCAxMTgsIDEyMSwgMTIyLCAxMjQsIDEyNywgMTI4LCAxMzEsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEzMywgMTM0LCAxMzcsIDEzOCwgMTQwLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxNDMsIDE0NSwgMTQ2LCAxNDgsIDE1MSwgMTUyLCAxNTUsIDE1NywgMTU4LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxNjEsIDE2MiwgMTY0LCAxNjcsIDE2OCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMTcxLCAxNzMsIDE3NCwgMTc2LCAxNzksIDE4MSwgMTgyLCAxODUsIDE4NiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMTg4LCAxOTEsIDE5MywgMTk0LCAxOTYsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDE5OSwgMjAwLCAyMDMsIDIwNSwgMjA2LCAyMDgsIDIxMSwgMjEzLCAyMTQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIxNywgMjE4LCAyMjAsIDIyMywgMjI0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyMjcsIDIyOSwgMjMwLCAyMzMsIDIzNCwgMjM2LCAyMzksIDI0MSwgMjQyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyNDQsIDI0NywgMjQ4LCAyNTEsIDI1MywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMjU0IH07CisKK3ZvaWQgbWJlZHRsc19kZXNfa2V5X3NldF9wYXJpdHkodW5zaWduZWQgY2hhciBrZXlbTUJFRFRMU19ERVNfS0VZX1NJWkVdKQoreworICAgIGludCBpOworCisgICAgZm9yIChpID0gMDsgaSA8IE1CRURUTFNfREVTX0tFWV9TSVpFOyBpKyspIHsKKyAgICAgICAga2V5W2ldID0gb2RkX3Bhcml0eV90YWJsZVtrZXlbaV0gLyAyXTsKKyAgICB9Cit9CisKKy8qCisgKiBDaGVjayB0aGUgZ2l2ZW4ga2V5J3MgcGFyaXR5LCByZXR1cm5zIDEgb24gZmFpbHVyZSwgMCBvbiBTVUNDRVNTCisgKi8KK2ludCBtYmVkdGxzX2Rlc19rZXlfY2hlY2tfa2V5X3Bhcml0eShjb25zdCB1bnNpZ25lZCBjaGFyIGtleVtNQkVEVExTX0RFU19LRVlfU0laRV0pCit7CisgICAgaW50IGk7CisKKyAgICBmb3IgKGkgPSAwOyBpIDwgTUJFRFRMU19ERVNfS0VZX1NJWkU7IGkrKykgeworICAgICAgICBpZiAoa2V5W2ldICE9IG9kZF9wYXJpdHlfdGFibGVba2V5W2ldIC8gMl0pIHsKKyAgICAgICAgICAgIHJldHVybiAxOworICAgICAgICB9CisgICAgfQorCisgICAgcmV0dXJuIDA7Cit9CisKKy8qCisgKiBUYWJsZSBvZiB3ZWFrIGFuZCBzZW1pLXdlYWsga2V5cworICoKKyAqIFNvdXJjZTogaHR0cDovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9XZWFrX2tleQorICoKKyAqIFdlYWs6CisgKiBBbHRlcm5hdGluZyBvbmVzICsgemVyb3MgKDB4MDEwMTAxMDEwMTAxMDEwMSkKKyAqIEFsdGVybmF0aW5nICdGJyArICdFJyAoMHhGRUZFRkVGRUZFRkVGRUZFKQorICogJzB4RTBFMEUwRTBGMUYxRjFGMScKKyAqICcweDFGMUYxRjFGMEUwRTBFMEUnCisgKgorICogU2VtaS13ZWFrOgorICogMHgwMTFGMDExRjAxMEUwMTBFIGFuZCAweDFGMDExRjAxMEUwMTBFMDEKKyAqIDB4MDFFMDAxRTAwMUYxMDFGMSBhbmQgMHhFMDAxRTAwMUYxMDFGMTAxCisgKiAweDAxRkUwMUZFMDFGRTAxRkUgYW5kIDB4RkUwMUZFMDFGRTAxRkUwMQorICogMHgxRkUwMUZFMDBFRjEwRUYxIGFuZCAweEUwMUZFMDFGRjEwRUYxMEUKKyAqIDB4MUZGRTFGRkUwRUZFMEVGRSBhbmQgMHhGRTFGRkUxRkZFMEVGRTBFCisgKiAweEUwRkVFMEZFRjFGRUYxRkUgYW5kIDB4RkVFMEZFRTBGRUYxRkVGMQorICoKKyAqLworCisjZGVmaW5lIFdFQUtfS0VZX0NPVU5UIDE2CisKK3N0YXRpYyBjb25zdCB1bnNpZ25lZCBjaGFyIHdlYWtfa2V5X3RhYmxlW1dFQUtfS0VZX0NPVU5UXVtNQkVEVExTX0RFU19LRVlfU0laRV0gPQoreworICAgIHsgMHgwMSwgMHgwMSwgMHgwMSwgMHgwMSwgMHgwMSwgMHgwMSwgMHgwMSwgMHgwMSB9LAorICAgIHsgMHhGRSwgMHhGRSwgMHhGRSwgMHhGRSwgMHhGRSwgMHhGRSwgMHhGRSwgMHhGRSB9LAorICAgIHsgMHgxRiwgMHgxRiwgMHgxRiwgMHgxRiwgMHgwRSwgMHgwRSwgMHgwRSwgMHgwRSB9LAorICAgIHsgMHhFMCwgMHhFMCwgMHhFMCwgMHhFMCwgMHhGMSwgMHhGMSwgMHhGMSwgMHhGMSB9LAorCisgICAgeyAweDAxLCAweDFGLCAweDAxLCAweDFGLCAweDAxLCAweDBFLCAweDAxLCAweDBFIH0sCisgICAgeyAweDFGLCAweDAxLCAweDFGLCAweDAxLCAweDBFLCAweDAxLCAweDBFLCAweDAxIH0sCisgICAgeyAweDAxLCAweEUwLCAweDAxLCAweEUwLCAweDAxLCAweEYxLCAweDAxLCAweEYxIH0sCisgICAgeyAweEUwLCAweDAxLCAweEUwLCAweDAxLCAweEYxLCAweDAxLCAweEYxLCAweDAxIH0sCisgICAgeyAweDAxLCAweEZFLCAweDAxLCAweEZFLCAweDAxLCAweEZFLCAweDAxLCAweEZFIH0sCisgICAgeyAweEZFLCAweDAxLCAweEZFLCAweDAxLCAweEZFLCAweDAxLCAweEZFLCAweDAxIH0sCisgICAgeyAweDFGLCAweEUwLCAweDFGLCAweEUwLCAweDBFLCAweEYxLCAweDBFLCAweEYxIH0sCisgICAgeyAweEUwLCAweDFGLCAweEUwLCAweDFGLCAweEYxLCAweDBFLCAweEYxLCAweDBFIH0sCisgICAgeyAweDFGLCAweEZFLCAweDFGLCAweEZFLCAweDBFLCAweEZFLCAweDBFLCAweEZFIH0sCisgICAgeyAweEZFLCAweDFGLCAweEZFLCAweDFGLCAweEZFLCAweDBFLCAweEZFLCAweDBFIH0sCisgICAgeyAweEUwLCAweEZFLCAweEUwLCAweEZFLCAweEYxLCAweEZFLCAweEYxLCAweEZFIH0sCisgICAgeyAweEZFLCAweEUwLCAweEZFLCAweEUwLCAweEZFLCAweEYxLCAweEZFLCAweEYxIH0KK307CisKK2ludCBtYmVkdGxzX2Rlc19rZXlfY2hlY2tfd2Vhayhjb25zdCB1bnNpZ25lZCBjaGFyIGtleVtNQkVEVExTX0RFU19LRVlfU0laRV0pCit7CisgICAgaW50IGk7CisKKyAgICBmb3IgKGkgPSAwOyBpIDwgV0VBS19LRVlfQ09VTlQ7IGkrKykgeworICAgICAgICBpZiAobWVtY21wKHdlYWtfa2V5X3RhYmxlW2ldLCBrZXksIE1CRURUTFNfREVTX0tFWV9TSVpFKSA9PSAwKSB7CisgICAgICAgICAgICByZXR1cm4gMTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHJldHVybiAwOworfQorCisjaWYgIWRlZmluZWQoTUJFRFRMU19ERVNfU0VUS0VZX0FMVCkKK3ZvaWQgbWJlZHRsc19kZXNfc2V0a2V5KHVpbnQzMl90IFNLWzMyXSwgY29uc3QgdW5zaWduZWQgY2hhciBrZXlbTUJFRFRMU19ERVNfS0VZX1NJWkVdKQoreworICAgIGludCBpOworICAgIHVpbnQzMl90IFgsIFksIFQ7CisKKyAgICBYID0gTUJFRFRMU19HRVRfVUlOVDMyX0JFKGtleSwgMCk7CisgICAgWSA9IE1CRURUTFNfR0VUX1VJTlQzMl9CRShrZXksIDQpOworCisgICAgLyoKKyAgICAgKiBQZXJtdXRlZCBDaG9pY2UgMQorICAgICAqLworICAgIFQgPSAgKChZID4+ICA0KSBeIFgpICYgMHgwRjBGMEYwRjsgIFggXj0gVDsgWSBePSAoVCA8PCAgNCk7CisgICAgVCA9ICAoKFkpIF4gWCkgJiAweDEwMTAxMDEwOyAgWCBePSBUOyBZIF49IChUKTsKKworICAgIFggPSAgIChMSHNbKFgpICYgMHhGXSA8PCAzKSB8IChMSHNbKFggPj4gIDgpICYgMHhGXSA8PCAyKQorICAgICAgICB8IChMSHNbKFggPj4gMTYpICYgMHhGXSA8PCAxKSB8IChMSHNbKFggPj4gMjQpICYgMHhGXSkKKyAgICAgICAgfCAoTEhzWyhYID4+ICA1KSAmIDB4Rl0gPDwgNykgfCAoTEhzWyhYID4+IDEzKSAmIDB4Rl0gPDwgNikKKyAgICAgICAgfCAoTEhzWyhYID4+IDIxKSAmIDB4Rl0gPDwgNSkgfCAoTEhzWyhYID4+IDI5KSAmIDB4Rl0gPDwgNCk7CisKKyAgICBZID0gICAoUkhzWyhZID4+ICAxKSAmIDB4Rl0gPDwgMykgfCAoUkhzWyhZID4+ICA5KSAmIDB4Rl0gPDwgMikKKyAgICAgICAgfCAoUkhzWyhZID4+IDE3KSAmIDB4Rl0gPDwgMSkgfCAoUkhzWyhZID4+IDI1KSAmIDB4Rl0pCisgICAgICAgIHwgKFJIc1soWSA+PiAgNCkgJiAweEZdIDw8IDcpIHwgKFJIc1soWSA+PiAxMikgJiAweEZdIDw8IDYpCisgICAgICAgIHwgKFJIc1soWSA+PiAyMCkgJiAweEZdIDw8IDUpIHwgKFJIc1soWSA+PiAyOCkgJiAweEZdIDw8IDQpOworCisgICAgWCAmPSAweDBGRkZGRkZGOworICAgIFkgJj0gMHgwRkZGRkZGRjsKKworICAgIC8qCisgICAgICogY2FsY3VsYXRlIHN1YmtleXMKKyAgICAgKi8KKyAgICBmb3IgKGkgPSAwOyBpIDwgMTY7IGkrKykgeworICAgICAgICBpZiAoaSA8IDIgfHwgaSA9PSA4IHx8IGkgPT0gMTUpIHsKKyAgICAgICAgICAgIFggPSAoKFggPDwgIDEpIHwgKFggPj4gMjcpKSAmIDB4MEZGRkZGRkY7CisgICAgICAgICAgICBZID0gKChZIDw8ICAxKSB8IChZID4+IDI3KSkgJiAweDBGRkZGRkZGOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgWCA9ICgoWCA8PCAgMikgfCAoWCA+PiAyNikpICYgMHgwRkZGRkZGRjsKKyAgICAgICAgICAgIFkgPSAoKFkgPDwgIDIpIHwgKFkgPj4gMjYpKSAmIDB4MEZGRkZGRkY7CisgICAgICAgIH0KKworICAgICAgICAqU0srKyA9ICAgKChYIDw8ICA0KSAmIDB4MjQwMDAwMDApIHwgKChYIDw8IDI4KSAmIDB4MTAwMDAwMDApCisgICAgICAgICAgICAgICAgfCAoKFggPDwgMTQpICYgMHgwODAwMDAwMCkgfCAoKFggPDwgMTgpICYgMHgwMjA4MDAwMCkKKyAgICAgICAgICAgICAgICB8ICgoWCA8PCAgNikgJiAweDAxMDAwMDAwKSB8ICgoWCA8PCAgOSkgJiAweDAwMjAwMDAwKQorICAgICAgICAgICAgICAgIHwgKChYID4+ICAxKSAmIDB4MDAxMDAwMDApIHwgKChYIDw8IDEwKSAmIDB4MDAwNDAwMDApCisgICAgICAgICAgICAgICAgfCAoKFggPDwgIDIpICYgMHgwMDAyMDAwMCkgfCAoKFggPj4gMTApICYgMHgwMDAxMDAwMCkKKyAgICAgICAgICAgICAgICB8ICgoWSA+PiAxMykgJiAweDAwMDAyMDAwKSB8ICgoWSA+PiAgNCkgJiAweDAwMDAxMDAwKQorICAgICAgICAgICAgICAgIHwgKChZIDw8ICA2KSAmIDB4MDAwMDA4MDApIHwgKChZID4+ICAxKSAmIDB4MDAwMDA0MDApCisgICAgICAgICAgICAgICAgfCAoKFkgPj4gMTQpICYgMHgwMDAwMDIwMCkgfCAoKFkpICYgMHgwMDAwMDEwMCkKKyAgICAgICAgICAgICAgICB8ICgoWSA+PiAgNSkgJiAweDAwMDAwMDIwKSB8ICgoWSA+PiAxMCkgJiAweDAwMDAwMDEwKQorICAgICAgICAgICAgICAgIHwgKChZID4+ICAzKSAmIDB4MDAwMDAwMDgpIHwgKChZID4+IDE4KSAmIDB4MDAwMDAwMDQpCisgICAgICAgICAgICAgICAgfCAoKFkgPj4gMjYpICYgMHgwMDAwMDAwMikgfCAoKFkgPj4gMjQpICYgMHgwMDAwMDAwMSk7CisKKyAgICAgICAgKlNLKysgPSAgICgoWCA8PCAxNSkgJiAweDIwMDAwMDAwKSB8ICgoWCA8PCAxNykgJiAweDEwMDAwMDAwKQorICAgICAgICAgICAgICAgIHwgKChYIDw8IDEwKSAmIDB4MDgwMDAwMDApIHwgKChYIDw8IDIyKSAmIDB4MDQwMDAwMDApCisgICAgICAgICAgICAgICAgfCAoKFggPj4gIDIpICYgMHgwMjAwMDAwMCkgfCAoKFggPDwgIDEpICYgMHgwMTAwMDAwMCkKKyAgICAgICAgICAgICAgICB8ICgoWCA8PCAxNikgJiAweDAwMjAwMDAwKSB8ICgoWCA8PCAxMSkgJiAweDAwMTAwMDAwKQorICAgICAgICAgICAgICAgIHwgKChYIDw8ICAzKSAmIDB4MDAwODAwMDApIHwgKChYID4+ICA2KSAmIDB4MDAwNDAwMDApCisgICAgICAgICAgICAgICAgfCAoKFggPDwgMTUpICYgMHgwMDAyMDAwMCkgfCAoKFggPj4gIDQpICYgMHgwMDAxMDAwMCkKKyAgICAgICAgICAgICAgICB8ICgoWSA+PiAgMikgJiAweDAwMDAyMDAwKSB8ICgoWSA8PCAgOCkgJiAweDAwMDAxMDAwKQorICAgICAgICAgICAgICAgIHwgKChZID4+IDE0KSAmIDB4MDAwMDA4MDgpIHwgKChZID4+ICA5KSAmIDB4MDAwMDA0MDApCisgICAgICAgICAgICAgICAgfCAoKFkpICYgMHgwMDAwMDIwMCkgfCAoKFkgPDwgIDcpICYgMHgwMDAwMDEwMCkKKyAgICAgICAgICAgICAgICB8ICgoWSA+PiAgNykgJiAweDAwMDAwMDIwKSB8ICgoWSA+PiAgMykgJiAweDAwMDAwMDExKQorICAgICAgICAgICAgICAgIHwgKChZIDw8ICAyKSAmIDB4MDAwMDAwMDQpIHwgKChZID4+IDIxKSAmIDB4MDAwMDAwMDIpOworICAgIH0KK30KKyNlbmRpZiAvKiAhTUJFRFRMU19ERVNfU0VUS0VZX0FMVCAqLworCisvKgorICogREVTIGtleSBzY2hlZHVsZSAoNTYtYml0LCBlbmNyeXB0aW9uKQorICovCitpbnQgbWJlZHRsc19kZXNfc2V0a2V5X2VuYyhtYmVkdGxzX2Rlc19jb250ZXh0ICpjdHgsIGNvbnN0IHVuc2lnbmVkIGNoYXIga2V5W01CRURUTFNfREVTX0tFWV9TSVpFXSkKK3sKKyAgICBtYmVkdGxzX2Rlc19zZXRrZXkoY3R4LT5zaywga2V5KTsKKworICAgIHJldHVybiAwOworfQorCisvKgorICogREVTIGtleSBzY2hlZHVsZSAoNTYtYml0LCBkZWNyeXB0aW9uKQorICovCitpbnQgbWJlZHRsc19kZXNfc2V0a2V5X2RlYyhtYmVkdGxzX2Rlc19jb250ZXh0ICpjdHgsIGNvbnN0IHVuc2lnbmVkIGNoYXIga2V5W01CRURUTFNfREVTX0tFWV9TSVpFXSkKK3sKKyAgICBpbnQgaTsKKworICAgIG1iZWR0bHNfZGVzX3NldGtleShjdHgtPnNrLCBrZXkpOworCisgICAgZm9yIChpID0gMDsgaSA8IDE2OyBpICs9IDIpIHsKKyAgICAgICAgU1dBUChjdHgtPnNrW2ldLCBjdHgtPnNrWzMwIC0gaV0pOworICAgICAgICBTV0FQKGN0eC0+c2tbaSArIDFdLCBjdHgtPnNrWzMxIC0gaV0pOworICAgIH0KKworICAgIHJldHVybiAwOworfQorCitzdGF0aWMgdm9pZCBkZXMzX3NldDJrZXkodWludDMyX3QgZXNrWzk2XSwKKyAgICAgICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCBkc2tbOTZdLAorICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIga2V5W01CRURUTFNfREVTX0tFWV9TSVpFKjJdKQoreworICAgIGludCBpOworCisgICAgbWJlZHRsc19kZXNfc2V0a2V5KGVzaywga2V5KTsKKyAgICBtYmVkdGxzX2Rlc19zZXRrZXkoZHNrICsgMzIsIGtleSArIDgpOworCisgICAgZm9yIChpID0gMDsgaSA8IDMyOyBpICs9IDIpIHsKKyAgICAgICAgZHNrW2ldID0gZXNrWzMwIC0gaV07CisgICAgICAgIGRza1tpICsgIDFdID0gZXNrWzMxIC0gaV07CisKKyAgICAgICAgZXNrW2kgKyAzMl0gPSBkc2tbNjIgLSBpXTsKKyAgICAgICAgZXNrW2kgKyAzM10gPSBkc2tbNjMgLSBpXTsKKworICAgICAgICBlc2tbaSArIDY0XSA9IGVza1tpXTsKKyAgICAgICAgZXNrW2kgKyA2NV0gPSBlc2tbaSArIDFdOworCisgICAgICAgIGRza1tpICsgNjRdID0gZHNrW2ldOworICAgICAgICBkc2tbaSArIDY1XSA9IGRza1tpICsgMV07CisgICAgfQorfQorCisvKgorICogVHJpcGxlLURFUyBrZXkgc2NoZWR1bGUgKDExMi1iaXQsIGVuY3J5cHRpb24pCisgKi8KK2ludCBtYmVkdGxzX2RlczNfc2V0MmtleV9lbmMobWJlZHRsc19kZXMzX2NvbnRleHQgKmN0eCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdW5zaWduZWQgY2hhciBrZXlbTUJFRFRMU19ERVNfS0VZX1NJWkUgKiAyXSkKK3sKKyAgICB1aW50MzJfdCBza1s5Nl07CisKKyAgICBkZXMzX3NldDJrZXkoY3R4LT5zaywgc2ssIGtleSk7CisgICAgbWJlZHRsc19wbGF0Zm9ybV96ZXJvaXplKHNrLCAgc2l6ZW9mKHNrKSk7CisKKyAgICByZXR1cm4gMDsKK30KKworLyoKKyAqIFRyaXBsZS1ERVMga2V5IHNjaGVkdWxlICgxMTItYml0LCBkZWNyeXB0aW9uKQorICovCitpbnQgbWJlZHRsc19kZXMzX3NldDJrZXlfZGVjKG1iZWR0bHNfZGVzM19jb250ZXh0ICpjdHgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIga2V5W01CRURUTFNfREVTX0tFWV9TSVpFICogMl0pCit7CisgICAgdWludDMyX3Qgc2tbOTZdOworCisgICAgZGVzM19zZXQya2V5KHNrLCBjdHgtPnNrLCBrZXkpOworICAgIG1iZWR0bHNfcGxhdGZvcm1femVyb2l6ZShzaywgIHNpemVvZihzaykpOworCisgICAgcmV0dXJuIDA7Cit9CisKK3N0YXRpYyB2b2lkIGRlczNfc2V0M2tleSh1aW50MzJfdCBlc2tbOTZdLAorICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQzMl90IGRza1s5Nl0sCisgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdW5zaWduZWQgY2hhciBrZXlbMjRdKQoreworICAgIGludCBpOworCisgICAgbWJlZHRsc19kZXNfc2V0a2V5KGVzaywga2V5KTsKKyAgICBtYmVkdGxzX2Rlc19zZXRrZXkoZHNrICsgMzIsIGtleSArICA4KTsKKyAgICBtYmVkdGxzX2Rlc19zZXRrZXkoZXNrICsgNjQsIGtleSArIDE2KTsKKworICAgIGZvciAoaSA9IDA7IGkgPCAzMjsgaSArPSAyKSB7CisgICAgICAgIGRza1tpXSA9IGVza1s5NCAtIGldOworICAgICAgICBkc2tbaSArICAxXSA9IGVza1s5NSAtIGldOworCisgICAgICAgIGVza1tpICsgMzJdID0gZHNrWzYyIC0gaV07CisgICAgICAgIGVza1tpICsgMzNdID0gZHNrWzYzIC0gaV07CisKKyAgICAgICAgZHNrW2kgKyA2NF0gPSBlc2tbMzAgLSBpXTsKKyAgICAgICAgZHNrW2kgKyA2NV0gPSBlc2tbMzEgLSBpXTsKKyAgICB9Cit9CisKKy8qCisgKiBUcmlwbGUtREVTIGtleSBzY2hlZHVsZSAoMTY4LWJpdCwgZW5jcnlwdGlvbikKKyAqLworaW50IG1iZWR0bHNfZGVzM19zZXQza2V5X2VuYyhtYmVkdGxzX2RlczNfY29udGV4dCAqY3R4LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1bnNpZ25lZCBjaGFyIGtleVtNQkVEVExTX0RFU19LRVlfU0laRSAqIDNdKQoreworICAgIHVpbnQzMl90IHNrWzk2XTsKKworICAgIGRlczNfc2V0M2tleShjdHgtPnNrLCBzaywga2V5KTsKKyAgICBtYmVkdGxzX3BsYXRmb3JtX3plcm9pemUoc2ssICBzaXplb2Yoc2spKTsKKworICAgIHJldHVybiAwOworfQorCisvKgorICogVHJpcGxlLURFUyBrZXkgc2NoZWR1bGUgKDE2OC1iaXQsIGRlY3J5cHRpb24pCisgKi8KK2ludCBtYmVkdGxzX2RlczNfc2V0M2tleV9kZWMobWJlZHRsc19kZXMzX2NvbnRleHQgKmN0eCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdW5zaWduZWQgY2hhciBrZXlbTUJFRFRMU19ERVNfS0VZX1NJWkUgKiAzXSkKK3sKKyAgICB1aW50MzJfdCBza1s5Nl07CisKKyAgICBkZXMzX3NldDNrZXkoc2ssIGN0eC0+c2ssIGtleSk7CisgICAgbWJlZHRsc19wbGF0Zm9ybV96ZXJvaXplKHNrLCAgc2l6ZW9mKHNrKSk7CisKKyAgICByZXR1cm4gMDsKK30KKworLyoKKyAqIERFUy1FQ0IgYmxvY2sgZW5jcnlwdGlvbi9kZWNyeXB0aW9uCisgKi8KKyNpZiAhZGVmaW5lZChNQkVEVExTX0RFU19DUllQVF9FQ0JfQUxUKQoraW50IG1iZWR0bHNfZGVzX2NyeXB0X2VjYihtYmVkdGxzX2Rlc19jb250ZXh0ICpjdHgsCisgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgaW5wdXRbOF0sCisgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGNoYXIgb3V0cHV0WzhdKQoreworICAgIGludCBpOworICAgIHVpbnQzMl90IFgsIFksIFQsICpTSzsKKworICAgIFNLID0gY3R4LT5zazsKKworICAgIFggPSBNQkVEVExTX0dFVF9VSU5UMzJfQkUoaW5wdXQsIDApOworICAgIFkgPSBNQkVEVExTX0dFVF9VSU5UMzJfQkUoaW5wdXQsIDQpOworCisgICAgREVTX0lQKFgsIFkpOworCisgICAgZm9yIChpID0gMDsgaSA8IDg7IGkrKykgeworICAgICAgICBERVNfUk9VTkQoWSwgWCk7CisgICAgICAgIERFU19ST1VORChYLCBZKTsKKyAgICB9CisKKyAgICBERVNfRlAoWSwgWCk7CisKKyAgICBNQkVEVExTX1BVVF9VSU5UMzJfQkUoWSwgb3V0cHV0LCAwKTsKKyAgICBNQkVEVExTX1BVVF9VSU5UMzJfQkUoWCwgb3V0cHV0LCA0KTsKKworICAgIHJldHVybiAwOworfQorI2VuZGlmIC8qICFNQkVEVExTX0RFU19DUllQVF9FQ0JfQUxUICovCisKKyNpZiBkZWZpbmVkKE1CRURUTFNfQ0lQSEVSX01PREVfQ0JDKQorLyoKKyAqIERFUy1DQkMgYnVmZmVyIGVuY3J5cHRpb24vZGVjcnlwdGlvbgorICovCitpbnQgbWJlZHRsc19kZXNfY3J5cHRfY2JjKG1iZWR0bHNfZGVzX2NvbnRleHQgKmN0eCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IG1vZGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBsZW5ndGgsCisgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGNoYXIgaXZbOF0sCisgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgKmlucHV0LAorICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBjaGFyICpvdXRwdXQpCit7CisgICAgaW50IHJldCA9IE1CRURUTFNfRVJSX0VSUk9SX0NPUlJVUFRJT05fREVURUNURUQ7CisgICAgdW5zaWduZWQgY2hhciB0ZW1wWzhdOworCisgICAgaWYgKGxlbmd0aCAlIDgpIHsKKyAgICAgICAgcmV0dXJuIE1CRURUTFNfRVJSX0RFU19JTlZBTElEX0lOUFVUX0xFTkdUSDsKKyAgICB9CisKKyAgICBpZiAobW9kZSA9PSBNQkVEVExTX0RFU19FTkNSWVBUKSB7CisgICAgICAgIHdoaWxlIChsZW5ndGggPiAwKSB7CisgICAgICAgICAgICBtYmVkdGxzX3hvcihvdXRwdXQsIGlucHV0LCBpdiwgOCk7CisKKyAgICAgICAgICAgIHJldCA9IG1iZWR0bHNfZGVzX2NyeXB0X2VjYihjdHgsIG91dHB1dCwgb3V0cHV0KTsKKyAgICAgICAgICAgIGlmIChyZXQgIT0gMCkgeworICAgICAgICAgICAgICAgIGdvdG8gZXhpdDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIG1lbWNweShpdiwgb3V0cHV0LCA4KTsKKworICAgICAgICAgICAgaW5wdXQgICs9IDg7CisgICAgICAgICAgICBvdXRwdXQgKz0gODsKKyAgICAgICAgICAgIGxlbmd0aCAtPSA4OworICAgICAgICB9CisgICAgfSBlbHNlIHsgLyogTUJFRFRMU19ERVNfREVDUllQVCAqLworICAgICAgICB3aGlsZSAobGVuZ3RoID4gMCkgeworICAgICAgICAgICAgbWVtY3B5KHRlbXAsIGlucHV0LCA4KTsKKyAgICAgICAgICAgIHJldCA9IG1iZWR0bHNfZGVzX2NyeXB0X2VjYihjdHgsIGlucHV0LCBvdXRwdXQpOworICAgICAgICAgICAgaWYgKHJldCAhPSAwKSB7CisgICAgICAgICAgICAgICAgZ290byBleGl0OworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBtYmVkdGxzX3hvcihvdXRwdXQsIG91dHB1dCwgaXYsIDgpOworCisgICAgICAgICAgICBtZW1jcHkoaXYsIHRlbXAsIDgpOworCisgICAgICAgICAgICBpbnB1dCAgKz0gODsKKyAgICAgICAgICAgIG91dHB1dCArPSA4OworICAgICAgICAgICAgbGVuZ3RoIC09IDg7CisgICAgICAgIH0KKyAgICB9CisgICAgcmV0ID0gMDsKKworZXhpdDoKKyAgICByZXR1cm4gcmV0OworfQorI2VuZGlmIC8qIE1CRURUTFNfQ0lQSEVSX01PREVfQ0JDICovCisKKy8qCisgKiAzREVTLUVDQiBibG9jayBlbmNyeXB0aW9uL2RlY3J5cHRpb24KKyAqLworI2lmICFkZWZpbmVkKE1CRURUTFNfREVTM19DUllQVF9FQ0JfQUxUKQoraW50IG1iZWR0bHNfZGVzM19jcnlwdF9lY2IobWJlZHRsc19kZXMzX2NvbnRleHQgKmN0eCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgaW5wdXRbOF0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBjaGFyIG91dHB1dFs4XSkKK3sKKyAgICBpbnQgaTsKKyAgICB1aW50MzJfdCBYLCBZLCBULCAqU0s7CisKKyAgICBTSyA9IGN0eC0+c2s7CisKKyAgICBYID0gTUJFRFRMU19HRVRfVUlOVDMyX0JFKGlucHV0LCAwKTsKKyAgICBZID0gTUJFRFRMU19HRVRfVUlOVDMyX0JFKGlucHV0LCA0KTsKKworICAgIERFU19JUChYLCBZKTsKKworICAgIGZvciAoaSA9IDA7IGkgPCA4OyBpKyspIHsKKyAgICAgICAgREVTX1JPVU5EKFksIFgpOworICAgICAgICBERVNfUk9VTkQoWCwgWSk7CisgICAgfQorCisgICAgZm9yIChpID0gMDsgaSA8IDg7IGkrKykgeworICAgICAgICBERVNfUk9VTkQoWCwgWSk7CisgICAgICAgIERFU19ST1VORChZLCBYKTsKKyAgICB9CisKKyAgICBmb3IgKGkgPSAwOyBpIDwgODsgaSsrKSB7CisgICAgICAgIERFU19ST1VORChZLCBYKTsKKyAgICAgICAgREVTX1JPVU5EKFgsIFkpOworICAgIH0KKworICAgIERFU19GUChZLCBYKTsKKworICAgIE1CRURUTFNfUFVUX1VJTlQzMl9CRShZLCBvdXRwdXQsIDApOworICAgIE1CRURUTFNfUFVUX1VJTlQzMl9CRShYLCBvdXRwdXQsIDQpOworCisgICAgcmV0dXJuIDA7Cit9CisjZW5kaWYgLyogIU1CRURUTFNfREVTM19DUllQVF9FQ0JfQUxUICovCisKKyNpZiBkZWZpbmVkKE1CRURUTFNfQ0lQSEVSX01PREVfQ0JDKQorLyoKKyAqIDNERVMtQ0JDIGJ1ZmZlciBlbmNyeXB0aW9uL2RlY3J5cHRpb24KKyAqLworaW50IG1iZWR0bHNfZGVzM19jcnlwdF9jYmMobWJlZHRsc19kZXMzX2NvbnRleHQgKmN0eCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBtb2RlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IGxlbmd0aCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGNoYXIgaXZbOF0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1bnNpZ25lZCBjaGFyICppbnB1dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGNoYXIgKm91dHB1dCkKK3sKKyAgICBpbnQgcmV0ID0gTUJFRFRMU19FUlJfRVJST1JfQ09SUlVQVElPTl9ERVRFQ1RFRDsKKyAgICB1bnNpZ25lZCBjaGFyIHRlbXBbOF07CisKKyAgICBpZiAobGVuZ3RoICUgOCkgeworICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfREVTX0lOVkFMSURfSU5QVVRfTEVOR1RIOworICAgIH0KKworICAgIGlmIChtb2RlID09IE1CRURUTFNfREVTX0VOQ1JZUFQpIHsKKyAgICAgICAgd2hpbGUgKGxlbmd0aCA+IDApIHsKKyAgICAgICAgICAgIG1iZWR0bHNfeG9yKG91dHB1dCwgaW5wdXQsIGl2LCA4KTsKKworICAgICAgICAgICAgcmV0ID0gbWJlZHRsc19kZXMzX2NyeXB0X2VjYihjdHgsIG91dHB1dCwgb3V0cHV0KTsKKyAgICAgICAgICAgIGlmIChyZXQgIT0gMCkgeworICAgICAgICAgICAgICAgIGdvdG8gZXhpdDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIG1lbWNweShpdiwgb3V0cHV0LCA4KTsKKworICAgICAgICAgICAgaW5wdXQgICs9IDg7CisgICAgICAgICAgICBvdXRwdXQgKz0gODsKKyAgICAgICAgICAgIGxlbmd0aCAtPSA4OworICAgICAgICB9CisgICAgfSBlbHNlIHsgLyogTUJFRFRMU19ERVNfREVDUllQVCAqLworICAgICAgICB3aGlsZSAobGVuZ3RoID4gMCkgeworICAgICAgICAgICAgbWVtY3B5KHRlbXAsIGlucHV0LCA4KTsKKyAgICAgICAgICAgIHJldCA9IG1iZWR0bHNfZGVzM19jcnlwdF9lY2IoY3R4LCBpbnB1dCwgb3V0cHV0KTsKKyAgICAgICAgICAgIGlmIChyZXQgIT0gMCkgeworICAgICAgICAgICAgICAgIGdvdG8gZXhpdDsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgbWJlZHRsc194b3Iob3V0cHV0LCBvdXRwdXQsIGl2LCA4KTsKKworICAgICAgICAgICAgbWVtY3B5KGl2LCB0ZW1wLCA4KTsKKworICAgICAgICAgICAgaW5wdXQgICs9IDg7CisgICAgICAgICAgICBvdXRwdXQgKz0gODsKKyAgICAgICAgICAgIGxlbmd0aCAtPSA4OworICAgICAgICB9CisgICAgfQorICAgIHJldCA9IDA7CisKK2V4aXQ6CisgICAgcmV0dXJuIHJldDsKK30KKyNlbmRpZiAvKiBNQkVEVExTX0NJUEhFUl9NT0RFX0NCQyAqLworCisjaWYgZGVmaW5lZChNQkVEVExTX1NFTEZfVEVTVCkKKy8qCisgKiBERVMgYW5kIDNERVMgdGVzdCB2ZWN0b3JzIGZyb206CisgKgorICogaHR0cDovL2NzcmMubmlzdC5nb3YvZ3JvdXBzL1NUTS9jYXZwL2RvY3VtZW50cy9kZXMvdHJpcGxlZGVzLXZlY3RvcnMuemlwCisgKi8KK3N0YXRpYyBjb25zdCB1bnNpZ25lZCBjaGFyIGRlczNfdGVzdF9rZXlzWzI0XSA9Cit7CisgICAgMHgwMSwgMHgyMywgMHg0NSwgMHg2NywgMHg4OSwgMHhBQiwgMHhDRCwgMHhFRiwKKyAgICAweDIzLCAweDQ1LCAweDY3LCAweDg5LCAweEFCLCAweENELCAweEVGLCAweDAxLAorICAgIDB4NDUsIDB4NjcsIDB4ODksIDB4QUIsIDB4Q0QsIDB4RUYsIDB4MDEsIDB4MjMKK307CisKK3N0YXRpYyBjb25zdCB1bnNpZ25lZCBjaGFyIGRlczNfdGVzdF9idWZbOF0gPQoreworICAgIDB4NEUsIDB4NkYsIDB4NzcsIDB4MjAsIDB4NjksIDB4NzMsIDB4MjAsIDB4NzQKK307CisKK3N0YXRpYyBjb25zdCB1bnNpZ25lZCBjaGFyIGRlczNfdGVzdF9lY2JfZGVjWzNdWzhdID0KK3sKKyAgICB7IDB4MzcsIDB4MkIsIDB4OTgsIDB4QkYsIDB4NTIsIDB4NjUsIDB4QjAsIDB4NTkgfSwKKyAgICB7IDB4QzIsIDB4MTAsIDB4MTksIDB4OUMsIDB4MzgsIDB4NUEsIDB4NjUsIDB4QTEgfSwKKyAgICB7IDB4QTIsIDB4NzAsIDB4NTYsIDB4NjgsIDB4NjksIDB4RTUsIDB4MTUsIDB4MUQgfQorfTsKKworc3RhdGljIGNvbnN0IHVuc2lnbmVkIGNoYXIgZGVzM190ZXN0X2VjYl9lbmNbM11bOF0gPQoreworICAgIHsgMHgxQywgMHhENSwgMHg5NywgMHhFQSwgMHg4NCwgMHgyNiwgMHg3MywgMHhGQiB9LAorICAgIHsgMHhCMywgMHg5MiwgMHg0RCwgMHhGMywgMHhDNSwgMHhCNSwgMHg0MiwgMHg5MyB9LAorICAgIHsgMHhEQSwgMHgzNywgMHg2NCwgMHg0MSwgMHhCQSwgMHg2RiwgMHg2MiwgMHg2RiB9Cit9OworCisjaWYgZGVmaW5lZChNQkVEVExTX0NJUEhFUl9NT0RFX0NCQykKK3N0YXRpYyBjb25zdCB1bnNpZ25lZCBjaGFyIGRlczNfdGVzdF9pdls4XSA9Cit7CisgICAgMHgxMiwgMHgzNCwgMHg1NiwgMHg3OCwgMHg5MCwgMHhBQiwgMHhDRCwgMHhFRiwKK307CisKK3N0YXRpYyBjb25zdCB1bnNpZ25lZCBjaGFyIGRlczNfdGVzdF9jYmNfZGVjWzNdWzhdID0KK3sKKyAgICB7IDB4NTgsIDB4RDksIDB4NDgsIDB4RUYsIDB4ODUsIDB4MTQsIDB4NjUsIDB4OUEgfSwKKyAgICB7IDB4NUYsIDB4QzgsIDB4NzgsIDB4RDQsIDB4RDcsIDB4OTIsIDB4RDksIDB4NTQgfSwKKyAgICB7IDB4MjUsIDB4RjksIDB4NzUsIDB4ODUsIDB4QTgsIDB4MUUsIDB4NDgsIDB4QkYgfQorfTsKKworc3RhdGljIGNvbnN0IHVuc2lnbmVkIGNoYXIgZGVzM190ZXN0X2NiY19lbmNbM11bOF0gPQoreworICAgIHsgMHg5MSwgMHgxQywgMHg2RCwgMHhDRiwgMHg0OCwgMHhBNywgMHhDMywgMHg0RCB9LAorICAgIHsgMHg2MCwgMHgxQSwgMHg3NiwgMHg4RiwgMHhBMSwgMHhGOSwgMHg2NiwgMHhGMSB9LAorICAgIHsgMHhBMSwgMHg1MCwgMHgwRiwgMHg5OSwgMHhCMiwgMHhDRCwgMHg2NCwgMHg3NiB9Cit9OworI2VuZGlmIC8qIE1CRURUTFNfQ0lQSEVSX01PREVfQ0JDICovCisKKy8qCisgKiBDaGVja3VwIHJvdXRpbmUKKyAqLworaW50IG1iZWR0bHNfZGVzX3NlbGZfdGVzdChpbnQgdmVyYm9zZSkKK3sKKyAgICBpbnQgaSwgaiwgdSwgdiwgcmV0ID0gMDsKKyAgICBtYmVkdGxzX2Rlc19jb250ZXh0IGN0eDsKKyAgICBtYmVkdGxzX2RlczNfY29udGV4dCBjdHgzOworICAgIHVuc2lnbmVkIGNoYXIgYnVmWzhdOworI2lmIGRlZmluZWQoTUJFRFRMU19DSVBIRVJfTU9ERV9DQkMpCisgICAgdW5zaWduZWQgY2hhciBwcnZbOF07CisgICAgdW5zaWduZWQgY2hhciBpdls4XTsKKyNlbmRpZgorCisgICAgbWJlZHRsc19kZXNfaW5pdCgmY3R4KTsKKyAgICBtYmVkdGxzX2RlczNfaW5pdCgmY3R4Myk7CisgICAgLyoKKyAgICAgKiBFQ0IgbW9kZQorICAgICAqLworICAgIGZvciAoaSA9IDA7IGkgPCA2OyBpKyspIHsKKyAgICAgICAgdSA9IGkgPj4gMTsKKyAgICAgICAgdiA9IGkgICYgMTsKKworICAgICAgICBpZiAodmVyYm9zZSAhPSAwKSB7CisgICAgICAgICAgICBtYmVkdGxzX3ByaW50ZigiICBERVMlYy1FQ0ItJTNkICglcyk6ICIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAodSA9PSAwKSA/ICcgJyA6ICczJywgNTYgKyB1ICogNTYsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAodiA9PSBNQkVEVExTX0RFU19ERUNSWVBUKSA/ICJkZWMiIDogImVuYyIpOworICAgICAgICB9CisKKyAgICAgICAgbWVtY3B5KGJ1ZiwgZGVzM190ZXN0X2J1ZiwgOCk7CisKKyAgICAgICAgc3dpdGNoIChpKSB7CisgICAgICAgICAgICBjYXNlIDA6CisgICAgICAgICAgICAgICAgcmV0ID0gbWJlZHRsc19kZXNfc2V0a2V5X2RlYygmY3R4LCBkZXMzX3Rlc3Rfa2V5cyk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgICAgIGNhc2UgMToKKyAgICAgICAgICAgICAgICByZXQgPSBtYmVkdGxzX2Rlc19zZXRrZXlfZW5jKCZjdHgsIGRlczNfdGVzdF9rZXlzKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKworICAgICAgICAgICAgY2FzZSAyOgorICAgICAgICAgICAgICAgIHJldCA9IG1iZWR0bHNfZGVzM19zZXQya2V5X2RlYygmY3R4MywgZGVzM190ZXN0X2tleXMpOworICAgICAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgICAgICBjYXNlIDM6CisgICAgICAgICAgICAgICAgcmV0ID0gbWJlZHRsc19kZXMzX3NldDJrZXlfZW5jKCZjdHgzLCBkZXMzX3Rlc3Rfa2V5cyk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgICAgIGNhc2UgNDoKKyAgICAgICAgICAgICAgICByZXQgPSBtYmVkdGxzX2RlczNfc2V0M2tleV9kZWMoJmN0eDMsIGRlczNfdGVzdF9rZXlzKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKworICAgICAgICAgICAgY2FzZSA1OgorICAgICAgICAgICAgICAgIHJldCA9IG1iZWR0bHNfZGVzM19zZXQza2V5X2VuYygmY3R4MywgZGVzM190ZXN0X2tleXMpOworICAgICAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgICAgIHJldHVybiAxOworICAgICAgICB9CisgICAgICAgIGlmIChyZXQgIT0gMCkgeworICAgICAgICAgICAgZ290byBleGl0OworICAgICAgICB9CisKKyAgICAgICAgZm9yIChqID0gMDsgaiA8IDEwMDsgaisrKSB7CisgICAgICAgICAgICBpZiAodSA9PSAwKSB7CisgICAgICAgICAgICAgICAgcmV0ID0gbWJlZHRsc19kZXNfY3J5cHRfZWNiKCZjdHgsIGJ1ZiwgYnVmKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgcmV0ID0gbWJlZHRsc19kZXMzX2NyeXB0X2VjYigmY3R4MywgYnVmLCBidWYpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKHJldCAhPSAwKSB7CisgICAgICAgICAgICAgICAgZ290byBleGl0OworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgaWYgKCh2ID09IE1CRURUTFNfREVTX0RFQ1JZUFQgJiYKKyAgICAgICAgICAgICBtZW1jbXAoYnVmLCBkZXMzX3Rlc3RfZWNiX2RlY1t1XSwgOCkgIT0gMCkgfHwKKyAgICAgICAgICAgICh2ICE9IE1CRURUTFNfREVTX0RFQ1JZUFQgJiYKKyAgICAgICAgICAgICBtZW1jbXAoYnVmLCBkZXMzX3Rlc3RfZWNiX2VuY1t1XSwgOCkgIT0gMCkpIHsKKyAgICAgICAgICAgIGlmICh2ZXJib3NlICE9IDApIHsKKyAgICAgICAgICAgICAgICBtYmVkdGxzX3ByaW50ZigiZmFpbGVkXG4iKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgcmV0ID0gMTsKKyAgICAgICAgICAgIGdvdG8gZXhpdDsKKyAgICAgICAgfQorCisgICAgICAgIGlmICh2ZXJib3NlICE9IDApIHsKKyAgICAgICAgICAgIG1iZWR0bHNfcHJpbnRmKCJwYXNzZWRcbiIpOworICAgICAgICB9CisgICAgfQorCisgICAgaWYgKHZlcmJvc2UgIT0gMCkgeworICAgICAgICBtYmVkdGxzX3ByaW50ZigiXG4iKTsKKyAgICB9CisKKyNpZiBkZWZpbmVkKE1CRURUTFNfQ0lQSEVSX01PREVfQ0JDKQorICAgIC8qCisgICAgICogQ0JDIG1vZGUKKyAgICAgKi8KKyAgICBmb3IgKGkgPSAwOyBpIDwgNjsgaSsrKSB7CisgICAgICAgIHUgPSBpID4+IDE7CisgICAgICAgIHYgPSBpICAmIDE7CisKKyAgICAgICAgaWYgKHZlcmJvc2UgIT0gMCkgeworICAgICAgICAgICAgbWJlZHRsc19wcmludGYoIiAgREVTJWMtQ0JDLSUzZCAoJXMpOiAiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgKHUgPT0gMCkgPyAnICcgOiAnMycsIDU2ICsgdSAqIDU2LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgKHYgPT0gTUJFRFRMU19ERVNfREVDUllQVCkgPyAiZGVjIiA6ICJlbmMiKTsKKyAgICAgICAgfQorCisgICAgICAgIG1lbWNweShpdiwgIGRlczNfdGVzdF9pdiwgIDgpOworICAgICAgICBtZW1jcHkocHJ2LCBkZXMzX3Rlc3RfaXYsICA4KTsKKyAgICAgICAgbWVtY3B5KGJ1ZiwgZGVzM190ZXN0X2J1ZiwgOCk7CisKKyAgICAgICAgc3dpdGNoIChpKSB7CisgICAgICAgICAgICBjYXNlIDA6CisgICAgICAgICAgICAgICAgcmV0ID0gbWJlZHRsc19kZXNfc2V0a2V5X2RlYygmY3R4LCBkZXMzX3Rlc3Rfa2V5cyk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgICAgIGNhc2UgMToKKyAgICAgICAgICAgICAgICByZXQgPSBtYmVkdGxzX2Rlc19zZXRrZXlfZW5jKCZjdHgsIGRlczNfdGVzdF9rZXlzKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKworICAgICAgICAgICAgY2FzZSAyOgorICAgICAgICAgICAgICAgIHJldCA9IG1iZWR0bHNfZGVzM19zZXQya2V5X2RlYygmY3R4MywgZGVzM190ZXN0X2tleXMpOworICAgICAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgICAgICBjYXNlIDM6CisgICAgICAgICAgICAgICAgcmV0ID0gbWJlZHRsc19kZXMzX3NldDJrZXlfZW5jKCZjdHgzLCBkZXMzX3Rlc3Rfa2V5cyk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgICAgIGNhc2UgNDoKKyAgICAgICAgICAgICAgICByZXQgPSBtYmVkdGxzX2RlczNfc2V0M2tleV9kZWMoJmN0eDMsIGRlczNfdGVzdF9rZXlzKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKworICAgICAgICAgICAgY2FzZSA1OgorICAgICAgICAgICAgICAgIHJldCA9IG1iZWR0bHNfZGVzM19zZXQza2V5X2VuYygmY3R4MywgZGVzM190ZXN0X2tleXMpOworICAgICAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgICAgIHJldHVybiAxOworICAgICAgICB9CisgICAgICAgIGlmIChyZXQgIT0gMCkgeworICAgICAgICAgICAgZ290byBleGl0OworICAgICAgICB9CisKKyAgICAgICAgaWYgKHYgPT0gTUJFRFRMU19ERVNfREVDUllQVCkgeworICAgICAgICAgICAgZm9yIChqID0gMDsgaiA8IDEwMDsgaisrKSB7CisgICAgICAgICAgICAgICAgaWYgKHUgPT0gMCkgeworICAgICAgICAgICAgICAgICAgICByZXQgPSBtYmVkdGxzX2Rlc19jcnlwdF9jYmMoJmN0eCwgdiwgOCwgaXYsIGJ1ZiwgYnVmKTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICByZXQgPSBtYmVkdGxzX2RlczNfY3J5cHRfY2JjKCZjdHgzLCB2LCA4LCBpdiwgYnVmLCBidWYpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZiAocmV0ICE9IDApIHsKKyAgICAgICAgICAgICAgICAgICAgZ290byBleGl0OworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGZvciAoaiA9IDA7IGogPCAxMDA7IGorKykgeworICAgICAgICAgICAgICAgIHVuc2lnbmVkIGNoYXIgdG1wWzhdOworCisgICAgICAgICAgICAgICAgaWYgKHUgPT0gMCkgeworICAgICAgICAgICAgICAgICAgICByZXQgPSBtYmVkdGxzX2Rlc19jcnlwdF9jYmMoJmN0eCwgdiwgOCwgaXYsIGJ1ZiwgYnVmKTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICByZXQgPSBtYmVkdGxzX2RlczNfY3J5cHRfY2JjKCZjdHgzLCB2LCA4LCBpdiwgYnVmLCBidWYpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZiAocmV0ICE9IDApIHsKKyAgICAgICAgICAgICAgICAgICAgZ290byBleGl0OworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIG1lbWNweSh0bXAsIHBydiwgOCk7CisgICAgICAgICAgICAgICAgbWVtY3B5KHBydiwgYnVmLCA4KTsKKyAgICAgICAgICAgICAgICBtZW1jcHkoYnVmLCB0bXAsIDgpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBtZW1jcHkoYnVmLCBwcnYsIDgpOworICAgICAgICB9CisKKyAgICAgICAgaWYgKCh2ID09IE1CRURUTFNfREVTX0RFQ1JZUFQgJiYKKyAgICAgICAgICAgICBtZW1jbXAoYnVmLCBkZXMzX3Rlc3RfY2JjX2RlY1t1XSwgOCkgIT0gMCkgfHwKKyAgICAgICAgICAgICh2ICE9IE1CRURUTFNfREVTX0RFQ1JZUFQgJiYKKyAgICAgICAgICAgICBtZW1jbXAoYnVmLCBkZXMzX3Rlc3RfY2JjX2VuY1t1XSwgOCkgIT0gMCkpIHsKKyAgICAgICAgICAgIGlmICh2ZXJib3NlICE9IDApIHsKKyAgICAgICAgICAgICAgICBtYmVkdGxzX3ByaW50ZigiZmFpbGVkXG4iKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgcmV0ID0gMTsKKyAgICAgICAgICAgIGdvdG8gZXhpdDsKKyAgICAgICAgfQorCisgICAgICAgIGlmICh2ZXJib3NlICE9IDApIHsKKyAgICAgICAgICAgIG1iZWR0bHNfcHJpbnRmKCJwYXNzZWRcbiIpOworICAgICAgICB9CisgICAgfQorI2VuZGlmIC8qIE1CRURUTFNfQ0lQSEVSX01PREVfQ0JDICovCisKKyAgICBpZiAodmVyYm9zZSAhPSAwKSB7CisgICAgICAgIG1iZWR0bHNfcHJpbnRmKCJcbiIpOworICAgIH0KKworZXhpdDoKKyAgICBtYmVkdGxzX2Rlc19mcmVlKCZjdHgpOworICAgIG1iZWR0bHNfZGVzM19mcmVlKCZjdHgzKTsKKworICAgIGlmIChyZXQgIT0gMCkgeworICAgICAgICByZXQgPSAxOworICAgIH0KKyAgICByZXR1cm4gcmV0OworfQorCisjZW5kaWYgLyogTUJFRFRMU19TRUxGX1RFU1QgKi8KKworI2VuZGlmIC8qIE1CRURUTFNfREVTX0MgKi8KZGlmZiAtLWdpdCBhL3RmLXBzYS1jcnlwdG8vZHJpdmVycy9idWlsdGluL3NyYy9kaG0uYyBiL3RmLXBzYS1jcnlwdG8vZHJpdmVycy9idWlsdGluL3NyYy9kaG0uYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43NWFmOGI3Ci0tLSAvZGV2L251bGwKKysrIGIvdGYtcHNhLWNyeXB0by9kcml2ZXJzL2J1aWx0aW4vc3JjL2RobS5jCkBAIC0wLDAgKzEsNzA5IEBACisvKgorICogIERpZmZpZS1IZWxsbWFuLU1lcmtsZSBrZXkgZXhjaGFuZ2UKKyAqCisgKiAgQ29weXJpZ2h0IFRoZSBNYmVkIFRMUyBDb250cmlidXRvcnMKKyAqICBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMCBPUiBHUEwtMi4wLW9yLWxhdGVyCisgKi8KKy8qCisgKiAgVGhlIGZvbGxvd2luZyBzb3VyY2VzIHdlcmUgcmVmZXJlbmNlZCBpbiB0aGUgZGVzaWduIG9mIHRoaXMgaW1wbGVtZW50YXRpb24KKyAqICBvZiB0aGUgRGlmZmllLUhlbGxtYW4tTWVya2xlIGFsZ29yaXRobToKKyAqCisgKiAgWzFdIEhhbmRib29rIG9mIEFwcGxpZWQgQ3J5cHRvZ3JhcGh5IC0gMTk5NywgQ2hhcHRlciAxMgorICogICAgICBNZW5lemVzLCB2YW4gT29yc2Nob3QgYW5kIFZhbnN0b25lCisgKgorICovCisKKyNpbmNsdWRlICJjb21tb24uaCIKKworI2lmIGRlZmluZWQoTUJFRFRMU19ESE1fQykKKworI2luY2x1ZGUgIm1iZWR0bHMvZGhtLmgiCisjaW5jbHVkZSAibWJlZHRscy9wbGF0Zm9ybV91dGlsLmgiCisjaW5jbHVkZSAibWJlZHRscy9lcnJvci5oIgorCisjaW5jbHVkZSA8c3RyaW5nLmg+CisKKyNpZiBkZWZpbmVkKE1CRURUTFNfUEVNX1BBUlNFX0MpCisjaW5jbHVkZSAibWJlZHRscy9wZW0uaCIKKyNlbmRpZgorCisjaWYgZGVmaW5lZChNQkVEVExTX0FTTjFfUEFSU0VfQykKKyNpbmNsdWRlICJtYmVkdGxzL2FzbjEuaCIKKyNlbmRpZgorCisjaW5jbHVkZSAibWJlZHRscy9wbGF0Zm9ybS5oIgorCisvKgorICogaGVscGVyIHRvIHZhbGlkYXRlIHRoZSBtYmVkdGxzX21waSBzaXplIGFuZCBpbXBvcnQgaXQKKyAqLworc3RhdGljIGludCBkaG1fcmVhZF9iaWdudW0obWJlZHRsc19tcGkgKlgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBjaGFyICoqcCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgKmVuZCkKK3sKKyAgICBpbnQgcmV0LCBuOworCisgICAgaWYgKGVuZCAtICpwIDwgMikgeworICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfREhNX0JBRF9JTlBVVF9EQVRBOworICAgIH0KKworICAgIG4gPSBNQkVEVExTX0dFVF9VSU5UMTZfQkUoKnAsIDApOworICAgICgqcCkgKz0gMjsKKworICAgIGlmICgoc2l6ZV90KSAoZW5kIC0gKnApIDwgKHNpemVfdCkgbikgeworICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfREhNX0JBRF9JTlBVVF9EQVRBOworICAgIH0KKworICAgIGlmICgocmV0ID0gbWJlZHRsc19tcGlfcmVhZF9iaW5hcnkoWCwgKnAsIG4pKSAhPSAwKSB7CisgICAgICAgIHJldHVybiBNQkVEVExTX0VSUk9SX0FERChNQkVEVExTX0VSUl9ESE1fUkVBRF9QQVJBTVNfRkFJTEVELCByZXQpOworICAgIH0KKworICAgICgqcCkgKz0gbjsKKworICAgIHJldHVybiAwOworfQorCisvKgorICogVmVyaWZ5IHNhbml0eSBvZiBwYXJhbWV0ZXIgd2l0aCByZWdhcmRzIHRvIFAKKyAqCisgKiBQYXJhbWV0ZXIgc2hvdWxkIGJlOiAyIDw9IHB1YmxpY19wYXJhbSA8PSBQIC0gMgorICoKKyAqIFRoaXMgbWVhbnMgdGhhdCB3ZSBuZWVkIHRvIHJldHVybiBhbiBlcnJvciBpZgorICogICAgICAgICAgICAgIHB1YmxpY19wYXJhbSA8IDIgb3IgcHVibGljX3BhcmFtID4gUC0yCisgKgorICogRm9yIG1vcmUgaW5mb3JtYXRpb24gb24gdGhlIGF0dGFjaywgc2VlOgorICogIGh0dHA6Ly93d3cuY2wuY2FtLmFjLnVrL35yamExNC9QYXBlcnMvcHNhbmRxcy5wZGYKKyAqICBodHRwOi8vd2ViLm52ZC5uaXN0Lmdvdi92aWV3L3Z1bG4vZGV0YWlsP3Z1bG5JZD1DVkUtMjAwNS0yNjQzCisgKi8KK3N0YXRpYyBpbnQgZGhtX2NoZWNrX3JhbmdlKGNvbnN0IG1iZWR0bHNfbXBpICpwYXJhbSwgY29uc3QgbWJlZHRsc19tcGkgKlApCit7CisgICAgbWJlZHRsc19tcGkgVTsKKyAgICBpbnQgcmV0ID0gMDsKKworICAgIG1iZWR0bHNfbXBpX2luaXQoJlUpOworCisgICAgTUJFRFRMU19NUElfQ0hLKG1iZWR0bHNfbXBpX3N1Yl9pbnQoJlUsIFAsIDIpKTsKKworICAgIGlmIChtYmVkdGxzX21waV9jbXBfaW50KHBhcmFtLCAyKSA8IDAgfHwKKyAgICAgICAgbWJlZHRsc19tcGlfY21wX21waShwYXJhbSwgJlUpID4gMCkgeworICAgICAgICByZXQgPSBNQkVEVExTX0VSUl9ESE1fQkFEX0lOUFVUX0RBVEE7CisgICAgfQorCitjbGVhbnVwOgorICAgIG1iZWR0bHNfbXBpX2ZyZWUoJlUpOworICAgIHJldHVybiByZXQ7Cit9CisKK3ZvaWQgbWJlZHRsc19kaG1faW5pdChtYmVkdGxzX2RobV9jb250ZXh0ICpjdHgpCit7CisgICAgbWVtc2V0KGN0eCwgMCwgc2l6ZW9mKG1iZWR0bHNfZGhtX2NvbnRleHQpKTsKK30KKworc2l6ZV90IG1iZWR0bHNfZGhtX2dldF9iaXRsZW4oY29uc3QgbWJlZHRsc19kaG1fY29udGV4dCAqY3R4KQoreworICAgIHJldHVybiBtYmVkdGxzX21waV9iaXRsZW4oJmN0eC0+UCk7Cit9CisKK3NpemVfdCBtYmVkdGxzX2RobV9nZXRfbGVuKGNvbnN0IG1iZWR0bHNfZGhtX2NvbnRleHQgKmN0eCkKK3sKKyAgICByZXR1cm4gbWJlZHRsc19tcGlfc2l6ZSgmY3R4LT5QKTsKK30KKworaW50IG1iZWR0bHNfZGhtX2dldF92YWx1ZShjb25zdCBtYmVkdGxzX2RobV9jb250ZXh0ICpjdHgsCisgICAgICAgICAgICAgICAgICAgICAgICAgIG1iZWR0bHNfZGhtX3BhcmFtZXRlciBwYXJhbSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgbWJlZHRsc19tcGkgKmRlc3QpCit7CisgICAgY29uc3QgbWJlZHRsc19tcGkgKnNyYyA9IE5VTEw7CisgICAgc3dpdGNoIChwYXJhbSkgeworICAgICAgICBjYXNlIE1CRURUTFNfREhNX1BBUkFNX1A6CisgICAgICAgICAgICBzcmMgPSAmY3R4LT5QOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgTUJFRFRMU19ESE1fUEFSQU1fRzoKKyAgICAgICAgICAgIHNyYyA9ICZjdHgtPkc7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBNQkVEVExTX0RITV9QQVJBTV9YOgorICAgICAgICAgICAgc3JjID0gJmN0eC0+WDsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIE1CRURUTFNfREhNX1BBUkFNX0dYOgorICAgICAgICAgICAgc3JjID0gJmN0eC0+R1g7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBNQkVEVExTX0RITV9QQVJBTV9HWToKKyAgICAgICAgICAgIHNyYyA9ICZjdHgtPkdZOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgTUJFRFRMU19ESE1fUEFSQU1fSzoKKyAgICAgICAgICAgIHNyYyA9ICZjdHgtPks7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9ESE1fQkFEX0lOUFVUX0RBVEE7CisgICAgfQorICAgIHJldHVybiBtYmVkdGxzX21waV9jb3B5KGRlc3QsIHNyYyk7Cit9CisKKy8qCisgKiBQYXJzZSB0aGUgU2VydmVyS2V5RXhjaGFuZ2UgcGFyYW1ldGVycworICovCitpbnQgbWJlZHRsc19kaG1fcmVhZF9wYXJhbXMobWJlZHRsc19kaG1fY29udGV4dCAqY3R4LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGNoYXIgKipwLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgKmVuZCkKK3sKKyAgICBpbnQgcmV0ID0gTUJFRFRMU19FUlJfRVJST1JfQ09SUlVQVElPTl9ERVRFQ1RFRDsKKworICAgIGlmICgocmV0ID0gZGhtX3JlYWRfYmlnbnVtKCZjdHgtPlAsICBwLCBlbmQpKSAhPSAwIHx8CisgICAgICAgIChyZXQgPSBkaG1fcmVhZF9iaWdudW0oJmN0eC0+RywgIHAsIGVuZCkpICE9IDAgfHwKKyAgICAgICAgKHJldCA9IGRobV9yZWFkX2JpZ251bSgmY3R4LT5HWSwgcCwgZW5kKSkgIT0gMCkgeworICAgICAgICByZXR1cm4gcmV0OworICAgIH0KKworICAgIGlmICgocmV0ID0gZGhtX2NoZWNrX3JhbmdlKCZjdHgtPkdZLCAmY3R4LT5QKSkgIT0gMCkgeworICAgICAgICByZXR1cm4gcmV0OworICAgIH0KKworICAgIHJldHVybiAwOworfQorCisvKgorICogUGljayBhIHJhbmRvbSBSIGluIHRoZSByYW5nZSBbMiwgTS0yXSBmb3IgYmxpbmRpbmcgb3Iga2V5IGdlbmVyYXRpb24uCisgKi8KK3N0YXRpYyBpbnQgZGhtX3JhbmRvbV9iZWxvdyhtYmVkdGxzX21waSAqUiwgY29uc3QgbWJlZHRsc19tcGkgKk0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50ICgqZl9ybmcpKHZvaWQgKiwgdW5zaWduZWQgY2hhciAqLCBzaXplX3QpLCB2b2lkICpwX3JuZykKK3sKKyAgICBpbnQgcmV0OworCisgICAgTUJFRFRMU19NUElfQ0hLKG1iZWR0bHNfbXBpX3JhbmRvbShSLCAzLCBNLCBmX3JuZywgcF9ybmcpKTsKKyAgICBNQkVEVExTX01QSV9DSEsobWJlZHRsc19tcGlfc3ViX2ludChSLCBSLCAxKSk7CisKK2NsZWFudXA6CisgICAgcmV0dXJuIHJldDsKK30KKworc3RhdGljIGludCBkaG1fbWFrZV9jb21tb24obWJlZHRsc19kaG1fY29udGV4dCAqY3R4LCBpbnQgeF9zaXplLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50ICgqZl9ybmcpKHZvaWQgKiwgdW5zaWduZWQgY2hhciAqLCBzaXplX3QpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgdm9pZCAqcF9ybmcpCit7CisgICAgaW50IHJldCA9IDA7CisKKyAgICBpZiAobWJlZHRsc19tcGlfY21wX2ludCgmY3R4LT5QLCAwKSA9PSAwKSB7CisgICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9ESE1fQkFEX0lOUFVUX0RBVEE7CisgICAgfQorICAgIGlmICh4X3NpemUgPCAwKSB7CisgICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9ESE1fQkFEX0lOUFVUX0RBVEE7CisgICAgfQorCisgICAgaWYgKCh1bnNpZ25lZCkgeF9zaXplIDwgbWJlZHRsc19tcGlfc2l6ZSgmY3R4LT5QKSkgeworICAgICAgICBNQkVEVExTX01QSV9DSEsobWJlZHRsc19tcGlfZmlsbF9yYW5kb20oJmN0eC0+WCwgeF9zaXplLCBmX3JuZywgcF9ybmcpKTsKKyAgICB9IGVsc2UgeworICAgICAgICAvKiBHZW5lcmF0ZSBYIGFzIGxhcmdlIGFzIHBvc3NpYmxlICggPD0gUCAtIDIgKSAqLworICAgICAgICByZXQgPSBkaG1fcmFuZG9tX2JlbG93KCZjdHgtPlgsICZjdHgtPlAsIGZfcm5nLCBwX3JuZyk7CisgICAgICAgIGlmIChyZXQgPT0gTUJFRFRMU19FUlJfTVBJX05PVF9BQ0NFUFRBQkxFKSB7CisgICAgICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfREhNX01BS0VfUEFSQU1TX0ZBSUxFRDsKKyAgICAgICAgfQorICAgICAgICBpZiAocmV0ICE9IDApIHsKKyAgICAgICAgICAgIHJldHVybiByZXQ7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKgorICAgICAqIENhbGN1bGF0ZSBHWCA9IEdeWCBtb2QgUAorICAgICAqLworICAgIE1CRURUTFNfTVBJX0NISyhtYmVkdGxzX21waV9leHBfbW9kKCZjdHgtPkdYLCAmY3R4LT5HLCAmY3R4LT5YLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZjdHgtPlAsICZjdHgtPlJQKSk7CisKKyAgICBpZiAoKHJldCA9IGRobV9jaGVja19yYW5nZSgmY3R4LT5HWCwgJmN0eC0+UCkpICE9IDApIHsKKyAgICAgICAgcmV0dXJuIHJldDsKKyAgICB9CisKK2NsZWFudXA6CisgICAgcmV0dXJuIHJldDsKK30KKworLyoKKyAqIFNldHVwIGFuZCB3cml0ZSB0aGUgU2VydmVyS2V5RXhjaGFuZ2UgcGFyYW1ldGVycworICovCitpbnQgbWJlZHRsc19kaG1fbWFrZV9wYXJhbXMobWJlZHRsc19kaG1fY29udGV4dCAqY3R4LCBpbnQgeF9zaXplLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGNoYXIgKm91dHB1dCwgc2l6ZV90ICpvbGVuLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCAoKmZfcm5nKSh2b2lkICosIHVuc2lnbmVkIGNoYXIgKiwgc2l6ZV90KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB2b2lkICpwX3JuZykKK3sKKyAgICBpbnQgcmV0OworICAgIHNpemVfdCBuMSwgbjIsIG4zOworICAgIHVuc2lnbmVkIGNoYXIgKnA7CisKKyAgICByZXQgPSBkaG1fbWFrZV9jb21tb24oY3R4LCB4X3NpemUsIGZfcm5nLCBwX3JuZyk7CisgICAgaWYgKHJldCAhPSAwKSB7CisgICAgICAgIGdvdG8gY2xlYW51cDsKKyAgICB9CisKKyAgICAvKgorICAgICAqIEV4cG9ydCBQLCBHLCBHWC4gUkZDIDUyNDYgwqc0LjQgc3RhdGVzIHRoYXQgImxlYWRpbmcgemVybyBvY3RldHMgYXJlCisgICAgICogbm90IHJlcXVpcmVkIi4gV2Ugb21pdCBsZWFkaW5nIHplcm9zIGZvciBjb21wYWN0bmVzcy4KKyAgICAgKi8KKyNkZWZpbmUgREhNX01QSV9FWFBPUlQoWCwgbikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgZG8geyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgIE1CRURUTFNfTVBJX0NISyhtYmVkdGxzX21waV93cml0ZV9iaW5hcnkoKFgpLCAgICAgICAgICAgICAgIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwICsgMiwgICAgICAgICAgICAgICBcCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG4pKSk7ICAgICAgICAgICBcCisgICAgICAgICpwKysgPSBNQkVEVExTX0JZVEVfMShuKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICAqcCsrID0gTUJFRFRMU19CWVRFXzAobik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgcCArPSAobik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgfSB3aGlsZSAoMCkKKworICAgIG4xID0gbWJlZHRsc19tcGlfc2l6ZSgmY3R4LT5QKTsKKyAgICBuMiA9IG1iZWR0bHNfbXBpX3NpemUoJmN0eC0+Ryk7CisgICAgbjMgPSBtYmVkdGxzX21waV9zaXplKCZjdHgtPkdYKTsKKworICAgIHAgPSBvdXRwdXQ7CisgICAgREhNX01QSV9FWFBPUlQoJmN0eC0+UCwgbjEpOworICAgIERITV9NUElfRVhQT1JUKCZjdHgtPkcsIG4yKTsKKyAgICBESE1fTVBJX0VYUE9SVCgmY3R4LT5HWCwgbjMpOworCisgICAgKm9sZW4gPSAoc2l6ZV90KSAocCAtIG91dHB1dCk7CisKK2NsZWFudXA6CisgICAgaWYgKHJldCAhPSAwICYmIHJldCA+IC0xMjgpIHsKKyAgICAgICAgcmV0ID0gTUJFRFRMU19FUlJPUl9BREQoTUJFRFRMU19FUlJfREhNX01BS0VfUEFSQU1TX0ZBSUxFRCwgcmV0KTsKKyAgICB9CisgICAgcmV0dXJuIHJldDsKK30KKworLyoKKyAqIFNldCBwcmltZSBtb2R1bHVzIGFuZCBnZW5lcmF0b3IKKyAqLworaW50IG1iZWR0bHNfZGhtX3NldF9ncm91cChtYmVkdGxzX2RobV9jb250ZXh0ICpjdHgsCisgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IG1iZWR0bHNfbXBpICpQLAorICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBtYmVkdGxzX21waSAqRykKK3sKKyAgICBpbnQgcmV0ID0gTUJFRFRMU19FUlJfRVJST1JfQ09SUlVQVElPTl9ERVRFQ1RFRDsKKworICAgIGlmICgocmV0ID0gbWJlZHRsc19tcGlfY29weSgmY3R4LT5QLCBQKSkgIT0gMCB8fAorICAgICAgICAocmV0ID0gbWJlZHRsc19tcGlfY29weSgmY3R4LT5HLCBHKSkgIT0gMCkgeworICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJPUl9BREQoTUJFRFRMU19FUlJfREhNX1NFVF9HUk9VUF9GQUlMRUQsIHJldCk7CisgICAgfQorCisgICAgcmV0dXJuIDA7Cit9CisKKy8qCisgKiBJbXBvcnQgdGhlIHBlZXIncyBwdWJsaWMgdmFsdWUgR15ZCisgKi8KK2ludCBtYmVkdGxzX2RobV9yZWFkX3B1YmxpYyhtYmVkdGxzX2RobV9jb250ZXh0ICpjdHgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdW5zaWduZWQgY2hhciAqaW5wdXQsIHNpemVfdCBpbGVuKQoreworICAgIGludCByZXQgPSBNQkVEVExTX0VSUl9FUlJPUl9DT1JSVVBUSU9OX0RFVEVDVEVEOworCisgICAgaWYgKGlsZW4gPCAxIHx8IGlsZW4gPiBtYmVkdGxzX2RobV9nZXRfbGVuKGN0eCkpIHsKKyAgICAgICAgcmV0dXJuIE1CRURUTFNfRVJSX0RITV9CQURfSU5QVVRfREFUQTsKKyAgICB9CisKKyAgICBpZiAoKHJldCA9IG1iZWR0bHNfbXBpX3JlYWRfYmluYXJ5KCZjdHgtPkdZLCBpbnB1dCwgaWxlbikpICE9IDApIHsKKyAgICAgICAgcmV0dXJuIE1CRURUTFNfRVJST1JfQUREKE1CRURUTFNfRVJSX0RITV9SRUFEX1BVQkxJQ19GQUlMRUQsIHJldCk7CisgICAgfQorCisgICAgcmV0dXJuIDA7Cit9CisKKy8qCisgKiBDcmVhdGUgb3duIHByaXZhdGUgdmFsdWUgWCBhbmQgZXhwb3J0IEdeWAorICovCitpbnQgbWJlZHRsc19kaG1fbWFrZV9wdWJsaWMobWJlZHRsc19kaG1fY29udGV4dCAqY3R4LCBpbnQgeF9zaXplLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGNoYXIgKm91dHB1dCwgc2l6ZV90IG9sZW4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50ICgqZl9ybmcpKHZvaWQgKiwgdW5zaWduZWQgY2hhciAqLCBzaXplX3QpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZvaWQgKnBfcm5nKQoreworICAgIGludCByZXQ7CisKKyAgICBpZiAob2xlbiA8IDEgfHwgb2xlbiA+IG1iZWR0bHNfZGhtX2dldF9sZW4oY3R4KSkgeworICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfREhNX0JBRF9JTlBVVF9EQVRBOworICAgIH0KKworICAgIHJldCA9IGRobV9tYWtlX2NvbW1vbihjdHgsIHhfc2l6ZSwgZl9ybmcsIHBfcm5nKTsKKyAgICBpZiAocmV0ID09IE1CRURUTFNfRVJSX0RITV9NQUtFX1BBUkFNU19GQUlMRUQpIHsKKyAgICAgICAgcmV0dXJuIE1CRURUTFNfRVJSX0RITV9NQUtFX1BVQkxJQ19GQUlMRUQ7CisgICAgfQorICAgIGlmIChyZXQgIT0gMCkgeworICAgICAgICBnb3RvIGNsZWFudXA7CisgICAgfQorCisgICAgTUJFRFRMU19NUElfQ0hLKG1iZWR0bHNfbXBpX3dyaXRlX2JpbmFyeSgmY3R4LT5HWCwgb3V0cHV0LCBvbGVuKSk7CisKK2NsZWFudXA6CisgICAgaWYgKHJldCAhPSAwICYmIHJldCA+IC0xMjgpIHsKKyAgICAgICAgcmV0ID0gTUJFRFRMU19FUlJPUl9BREQoTUJFRFRMU19FUlJfREhNX01BS0VfUFVCTElDX0ZBSUxFRCwgcmV0KTsKKyAgICB9CisgICAgcmV0dXJuIHJldDsKK30KKworCisvKgorICogVXNlIHRoZSBibGluZGluZyBtZXRob2QgYW5kIG9wdGltaXNhdGlvbiBzdWdnZXN0ZWQgaW4gc2VjdGlvbiAxMCBvZjoKKyAqICBLT0NIRVIsIFBhdWwgQy4gVGltaW5nIGF0dGFja3Mgb24gaW1wbGVtZW50YXRpb25zIG9mIERpZmZpZS1IZWxsbWFuLCBSU0EsCisgKiAgRFNTLCBhbmQgb3RoZXIgc3lzdGVtcy4gSW4gOiBBZHZhbmNlcyBpbiBDcnlwdG9sb2d5LUNSWVBUTyc5Ni4gU3ByaW5nZXIKKyAqICBCZXJsaW4gSGVpZGVsYmVyZywgMTk5Ni4gcC4gMTA0LTExMy4KKyAqLworc3RhdGljIGludCBkaG1fdXBkYXRlX2JsaW5kaW5nKG1iZWR0bHNfZGhtX2NvbnRleHQgKmN0eCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgKCpmX3JuZykodm9pZCAqLCB1bnNpZ25lZCBjaGFyICosIHNpemVfdCksIHZvaWQgKnBfcm5nKQoreworICAgIGludCByZXQ7CisgICAgbWJlZHRsc19tcGkgUjsKKworICAgIG1iZWR0bHNfbXBpX2luaXQoJlIpOworCisgICAgLyoKKyAgICAgKiBEb24ndCB1c2UgYW55IGJsaW5kaW5nIHRoZSBmaXJzdCB0aW1lIGEgcGFydGljdWxhciBYIGlzIHVzZWQsCisgICAgICogYnV0IHJlbWVtYmVyIGl0IHRvIHVzZSBibGluZGluZyBuZXh0IHRpbWUuCisgICAgICovCisgICAgaWYgKG1iZWR0bHNfbXBpX2NtcF9tcGkoJmN0eC0+WCwgJmN0eC0+cFgpICE9IDApIHsKKyAgICAgICAgTUJFRFRMU19NUElfQ0hLKG1iZWR0bHNfbXBpX2NvcHkoJmN0eC0+cFgsICZjdHgtPlgpKTsKKyAgICAgICAgTUJFRFRMU19NUElfQ0hLKG1iZWR0bHNfbXBpX2xzZXQoJmN0eC0+VmksIDEpKTsKKyAgICAgICAgTUJFRFRMU19NUElfQ0hLKG1iZWR0bHNfbXBpX2xzZXQoJmN0eC0+VmYsIDEpKTsKKworICAgICAgICByZXR1cm4gMDsKKyAgICB9CisKKyAgICAvKgorICAgICAqIE9rLCB3ZSBuZWVkIGJsaW5kaW5nLiBDYW4gd2UgcmUtdXNlIGV4aXN0aW5nIHZhbHVlcz8KKyAgICAgKiBJZiB5ZXMsIGp1c3QgdXBkYXRlIHRoZW0gYnkgc3F1YXJpbmcgdGhlbS4KKyAgICAgKi8KKyAgICBpZiAobWJlZHRsc19tcGlfY21wX2ludCgmY3R4LT5WaSwgMSkgIT0gMCkgeworICAgICAgICBNQkVEVExTX01QSV9DSEsobWJlZHRsc19tcGlfbXVsX21waSgmY3R4LT5WaSwgJmN0eC0+VmksICZjdHgtPlZpKSk7CisgICAgICAgIE1CRURUTFNfTVBJX0NISyhtYmVkdGxzX21waV9tb2RfbXBpKCZjdHgtPlZpLCAmY3R4LT5WaSwgJmN0eC0+UCkpOworCisgICAgICAgIE1CRURUTFNfTVBJX0NISyhtYmVkdGxzX21waV9tdWxfbXBpKCZjdHgtPlZmLCAmY3R4LT5WZiwgJmN0eC0+VmYpKTsKKyAgICAgICAgTUJFRFRMU19NUElfQ0hLKG1iZWR0bHNfbXBpX21vZF9tcGkoJmN0eC0+VmYsICZjdHgtPlZmLCAmY3R4LT5QKSk7CisKKyAgICAgICAgcmV0dXJuIDA7CisgICAgfQorCisgICAgLyoKKyAgICAgKiBXZSBuZWVkIHRvIGdlbmVyYXRlIGJsaW5kaW5nIHZhbHVlcyBmcm9tIHNjcmF0Y2gKKyAgICAgKi8KKworICAgIC8qIFZpID0gcmFuZG9tKCAyLCBQLTIgKSAqLworICAgIE1CRURUTFNfTVBJX0NISyhkaG1fcmFuZG9tX2JlbG93KCZjdHgtPlZpLCAmY3R4LT5QLCBmX3JuZywgcF9ybmcpKTsKKworICAgIC8qIFZmID0gVmleLVggbW9kIFAKKyAgICAgKiBGaXJzdCBjb21wdXRlIFZpXi0xID0gUiAqIChSIFZpKV4tMSwgKGF2b2lkaW5nIGxlYWtzIGZyb20gaW52X21vZCksCisgICAgICogdGhlbiBlbGV2YXRlIHRvIHRoZSBYdGggcG93ZXIuICovCisgICAgTUJFRFRMU19NUElfQ0hLKGRobV9yYW5kb21fYmVsb3coJlIsICZjdHgtPlAsIGZfcm5nLCBwX3JuZykpOworICAgIE1CRURUTFNfTVBJX0NISyhtYmVkdGxzX21waV9tdWxfbXBpKCZjdHgtPlZmLCAmY3R4LT5WaSwgJlIpKTsKKyAgICBNQkVEVExTX01QSV9DSEsobWJlZHRsc19tcGlfbW9kX21waSgmY3R4LT5WZiwgJmN0eC0+VmYsICZjdHgtPlApKTsKKyAgICBNQkVEVExTX01QSV9DSEsobWJlZHRsc19tcGlfaW52X21vZCgmY3R4LT5WZiwgJmN0eC0+VmYsICZjdHgtPlApKTsKKyAgICBNQkVEVExTX01QSV9DSEsobWJlZHRsc19tcGlfbXVsX21waSgmY3R4LT5WZiwgJmN0eC0+VmYsICZSKSk7CisgICAgTUJFRFRMU19NUElfQ0hLKG1iZWR0bHNfbXBpX21vZF9tcGkoJmN0eC0+VmYsICZjdHgtPlZmLCAmY3R4LT5QKSk7CisKKyAgICBNQkVEVExTX01QSV9DSEsobWJlZHRsc19tcGlfZXhwX21vZCgmY3R4LT5WZiwgJmN0eC0+VmYsICZjdHgtPlgsICZjdHgtPlAsICZjdHgtPlJQKSk7CisKK2NsZWFudXA6CisgICAgbWJlZHRsc19tcGlfZnJlZSgmUik7CisKKyAgICByZXR1cm4gcmV0OworfQorCisvKgorICogRGVyaXZlIGFuZCBleHBvcnQgdGhlIHNoYXJlZCBzZWNyZXQgKEdeWSleWCBtb2QgUAorICovCitpbnQgbWJlZHRsc19kaG1fY2FsY19zZWNyZXQobWJlZHRsc19kaG1fY29udGV4dCAqY3R4LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGNoYXIgKm91dHB1dCwgc2l6ZV90IG91dHB1dF9zaXplLCBzaXplX3QgKm9sZW4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50ICgqZl9ybmcpKHZvaWQgKiwgdW5zaWduZWQgY2hhciAqLCBzaXplX3QpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZvaWQgKnBfcm5nKQoreworICAgIGludCByZXQgPSBNQkVEVExTX0VSUl9FUlJPUl9DT1JSVVBUSU9OX0RFVEVDVEVEOworICAgIG1iZWR0bHNfbXBpIEdZYjsKKworICAgIGlmIChmX3JuZyA9PSBOVUxMKSB7CisgICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9ESE1fQkFEX0lOUFVUX0RBVEE7CisgICAgfQorCisgICAgaWYgKG91dHB1dF9zaXplIDwgbWJlZHRsc19kaG1fZ2V0X2xlbihjdHgpKSB7CisgICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9ESE1fQkFEX0lOUFVUX0RBVEE7CisgICAgfQorCisgICAgaWYgKChyZXQgPSBkaG1fY2hlY2tfcmFuZ2UoJmN0eC0+R1ksICZjdHgtPlApKSAhPSAwKSB7CisgICAgICAgIHJldHVybiByZXQ7CisgICAgfQorCisgICAgbWJlZHRsc19tcGlfaW5pdCgmR1liKTsKKworICAgIC8qIEJsaW5kIHBlZXIncyB2YWx1ZSAqLworICAgIE1CRURUTFNfTVBJX0NISyhkaG1fdXBkYXRlX2JsaW5kaW5nKGN0eCwgZl9ybmcsIHBfcm5nKSk7CisgICAgTUJFRFRMU19NUElfQ0hLKG1iZWR0bHNfbXBpX211bF9tcGkoJkdZYiwgJmN0eC0+R1ksICZjdHgtPlZpKSk7CisgICAgTUJFRFRMU19NUElfQ0hLKG1iZWR0bHNfbXBpX21vZF9tcGkoJkdZYiwgJkdZYiwgJmN0eC0+UCkpOworCisgICAgLyogRG8gbW9kdWxhciBleHBvbmVudGlhdGlvbiAqLworICAgIE1CRURUTFNfTVBJX0NISyhtYmVkdGxzX21waV9leHBfbW9kKCZjdHgtPkssICZHWWIsICZjdHgtPlgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJmN0eC0+UCwgJmN0eC0+UlApKTsKKworICAgIC8qIFVuYmxpbmQgc2VjcmV0IHZhbHVlICovCisgICAgTUJFRFRMU19NUElfQ0hLKG1iZWR0bHNfbXBpX211bF9tcGkoJmN0eC0+SywgJmN0eC0+SywgJmN0eC0+VmYpKTsKKyAgICBNQkVEVExTX01QSV9DSEsobWJlZHRsc19tcGlfbW9kX21waSgmY3R4LT5LLCAmY3R4LT5LLCAmY3R4LT5QKSk7CisKKyAgICAvKiBPdXRwdXQgdGhlIHNlY3JldCB3aXRob3V0IGFueSBsZWFkaW5nIHplcm8gYnl0ZS4gVGhpcyBpcyBtYW5kYXRvcnkKKyAgICAgKiBmb3IgVExTIHBlciBSRkMgNTI0NiDCpzguMS4yLiAqLworICAgICpvbGVuID0gbWJlZHRsc19tcGlfc2l6ZSgmY3R4LT5LKTsKKyAgICBNQkVEVExTX01QSV9DSEsobWJlZHRsc19tcGlfd3JpdGVfYmluYXJ5KCZjdHgtPkssIG91dHB1dCwgKm9sZW4pKTsKKworY2xlYW51cDoKKyAgICBtYmVkdGxzX21waV9mcmVlKCZHWWIpOworCisgICAgaWYgKHJldCAhPSAwKSB7CisgICAgICAgIHJldHVybiBNQkVEVExTX0VSUk9SX0FERChNQkVEVExTX0VSUl9ESE1fQ0FMQ19TRUNSRVRfRkFJTEVELCByZXQpOworICAgIH0KKworICAgIHJldHVybiAwOworfQorCisvKgorICogRnJlZSB0aGUgY29tcG9uZW50cyBvZiBhIERITSBrZXkKKyAqLwordm9pZCBtYmVkdGxzX2RobV9mcmVlKG1iZWR0bHNfZGhtX2NvbnRleHQgKmN0eCkKK3sKKyAgICBpZiAoY3R4ID09IE5VTEwpIHsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIG1iZWR0bHNfbXBpX2ZyZWUoJmN0eC0+cFgpOworICAgIG1iZWR0bHNfbXBpX2ZyZWUoJmN0eC0+VmYpOworICAgIG1iZWR0bHNfbXBpX2ZyZWUoJmN0eC0+VmkpOworICAgIG1iZWR0bHNfbXBpX2ZyZWUoJmN0eC0+UlApOworICAgIG1iZWR0bHNfbXBpX2ZyZWUoJmN0eC0+Syk7CisgICAgbWJlZHRsc19tcGlfZnJlZSgmY3R4LT5HWSk7CisgICAgbWJlZHRsc19tcGlfZnJlZSgmY3R4LT5HWCk7CisgICAgbWJlZHRsc19tcGlfZnJlZSgmY3R4LT5YKTsKKyAgICBtYmVkdGxzX21waV9mcmVlKCZjdHgtPkcpOworICAgIG1iZWR0bHNfbXBpX2ZyZWUoJmN0eC0+UCk7CisKKyAgICBtYmVkdGxzX3BsYXRmb3JtX3plcm9pemUoY3R4LCBzaXplb2YobWJlZHRsc19kaG1fY29udGV4dCkpOworfQorCisjaWYgZGVmaW5lZChNQkVEVExTX0FTTjFfUEFSU0VfQykKKy8qCisgKiBQYXJzZSBESE0gcGFyYW1ldGVycworICovCitpbnQgbWJlZHRsc19kaG1fcGFyc2VfZGhtKG1iZWR0bHNfZGhtX2NvbnRleHQgKmRobSwgY29uc3QgdW5zaWduZWQgY2hhciAqZGhtaW4sCisgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBkaG1pbmxlbikKK3sKKyAgICBpbnQgcmV0ID0gTUJFRFRMU19FUlJfRVJST1JfQ09SUlVQVElPTl9ERVRFQ1RFRDsKKyAgICBzaXplX3QgbGVuOworICAgIHVuc2lnbmVkIGNoYXIgKnAsICplbmQ7CisjaWYgZGVmaW5lZChNQkVEVExTX1BFTV9QQVJTRV9DKQorICAgIG1iZWR0bHNfcGVtX2NvbnRleHQgcGVtOworI2VuZGlmIC8qIE1CRURUTFNfUEVNX1BBUlNFX0MgKi8KKworI2lmIGRlZmluZWQoTUJFRFRMU19QRU1fUEFSU0VfQykKKyAgICBtYmVkdGxzX3BlbV9pbml0KCZwZW0pOworCisgICAgLyogQXZvaWQgY2FsbGluZyBtYmVkdGxzX3BlbV9yZWFkX2J1ZmZlcigpIG9uIG5vbi1udWxsLXRlcm1pbmF0ZWQgc3RyaW5nICovCisgICAgaWYgKGRobWlubGVuID09IDAgfHwgZGhtaW5bZGhtaW5sZW4gLSAxXSAhPSAnXDAnKSB7CisgICAgICAgIHJldCA9IE1CRURUTFNfRVJSX1BFTV9OT19IRUFERVJfRk9PVEVSX1BSRVNFTlQ7CisgICAgfSBlbHNlIHsKKyAgICAgICAgcmV0ID0gbWJlZHRsc19wZW1fcmVhZF9idWZmZXIoJnBlbSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIi0tLS0tQkVHSU4gREggUEFSQU1FVEVSUy0tLS0tIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIi0tLS0tRU5EIERIIFBBUkFNRVRFUlMtLS0tLSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRobWluLCBOVUxMLCAwLCAmZGhtaW5sZW4pOworICAgIH0KKworICAgIGlmIChyZXQgPT0gMCkgeworICAgICAgICAvKgorICAgICAgICAgKiBXYXMgUEVNIGVuY29kZWQKKyAgICAgICAgICovCisgICAgICAgIGRobWlubGVuID0gcGVtLmJ1ZmxlbjsKKyAgICB9IGVsc2UgaWYgKHJldCAhPSBNQkVEVExTX0VSUl9QRU1fTk9fSEVBREVSX0ZPT1RFUl9QUkVTRU5UKSB7CisgICAgICAgIGdvdG8gZXhpdDsKKyAgICB9CisKKyAgICBwID0gKHJldCA9PSAwKSA/IHBlbS5idWYgOiAodW5zaWduZWQgY2hhciAqKSBkaG1pbjsKKyNlbHNlCisgICAgcCA9ICh1bnNpZ25lZCBjaGFyICopIGRobWluOworI2VuZGlmIC8qIE1CRURUTFNfUEVNX1BBUlNFX0MgKi8KKyAgICBlbmQgPSBwICsgZGhtaW5sZW47CisKKyAgICAvKgorICAgICAqICBESFBhcmFtcyA6Oj0gU0VRVUVOQ0UgeworICAgICAqICAgICAgcHJpbWUgICAgICAgICAgICAgIElOVEVHRVIsICAtLSBQCisgICAgICogICAgICBnZW5lcmF0b3IgICAgICAgICAgSU5URUdFUiwgIC0tIGcKKyAgICAgKiAgICAgIHByaXZhdGVWYWx1ZUxlbmd0aCBJTlRFR0VSIE9QVElPTkFMCisgICAgICogIH0KKyAgICAgKi8KKyAgICBpZiAoKHJldCA9IG1iZWR0bHNfYXNuMV9nZXRfdGFnKCZwLCBlbmQsICZsZW4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNQkVEVExTX0FTTjFfQ09OU1RSVUNURUQgfCBNQkVEVExTX0FTTjFfU0VRVUVOQ0UpKSAhPSAwKSB7CisgICAgICAgIHJldCA9IE1CRURUTFNfRVJST1JfQUREKE1CRURUTFNfRVJSX0RITV9JTlZBTElEX0ZPUk1BVCwgcmV0KTsKKyAgICAgICAgZ290byBleGl0OworICAgIH0KKworICAgIGVuZCA9IHAgKyBsZW47CisKKyAgICBpZiAoKHJldCA9IG1iZWR0bHNfYXNuMV9nZXRfbXBpKCZwLCBlbmQsICZkaG0tPlApKSAhPSAwIHx8CisgICAgICAgIChyZXQgPSBtYmVkdGxzX2FzbjFfZ2V0X21waSgmcCwgZW5kLCAmZGhtLT5HKSkgIT0gMCkgeworICAgICAgICByZXQgPSBNQkVEVExTX0VSUk9SX0FERChNQkVEVExTX0VSUl9ESE1fSU5WQUxJRF9GT1JNQVQsIHJldCk7CisgICAgICAgIGdvdG8gZXhpdDsKKyAgICB9CisKKyAgICBpZiAocCAhPSBlbmQpIHsKKyAgICAgICAgLyogVGhpcyBtaWdodCBiZSB0aGUgb3B0aW9uYWwgcHJpdmF0ZVZhbHVlTGVuZ3RoLgorICAgICAgICAgKiBJZiBzbywgd2UgY2FuIGNsZWFubHkgZGlzY2FyZCBpdCAqLworICAgICAgICBtYmVkdGxzX21waSByZWM7CisgICAgICAgIG1iZWR0bHNfbXBpX2luaXQoJnJlYyk7CisgICAgICAgIHJldCA9IG1iZWR0bHNfYXNuMV9nZXRfbXBpKCZwLCBlbmQsICZyZWMpOworICAgICAgICBtYmVkdGxzX21waV9mcmVlKCZyZWMpOworICAgICAgICBpZiAocmV0ICE9IDApIHsKKyAgICAgICAgICAgIHJldCA9IE1CRURUTFNfRVJST1JfQUREKE1CRURUTFNfRVJSX0RITV9JTlZBTElEX0ZPUk1BVCwgcmV0KTsKKyAgICAgICAgICAgIGdvdG8gZXhpdDsKKyAgICAgICAgfQorICAgICAgICBpZiAocCAhPSBlbmQpIHsKKyAgICAgICAgICAgIHJldCA9IE1CRURUTFNfRVJST1JfQUREKE1CRURUTFNfRVJSX0RITV9JTlZBTElEX0ZPUk1BVCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1CRURUTFNfRVJSX0FTTjFfTEVOR1RIX01JU01BVENIKTsKKyAgICAgICAgICAgIGdvdG8gZXhpdDsKKyAgICAgICAgfQorICAgIH0KKworICAgIHJldCA9IDA7CisKK2V4aXQ6CisjaWYgZGVmaW5lZChNQkVEVExTX1BFTV9QQVJTRV9DKQorICAgIG1iZWR0bHNfcGVtX2ZyZWUoJnBlbSk7CisjZW5kaWYKKyAgICBpZiAocmV0ICE9IDApIHsKKyAgICAgICAgbWJlZHRsc19kaG1fZnJlZShkaG0pOworICAgIH0KKworICAgIHJldHVybiByZXQ7Cit9CisKKyNpZiBkZWZpbmVkKE1CRURUTFNfRlNfSU8pCisvKgorICogTG9hZCBhbGwgZGF0YSBmcm9tIGEgZmlsZSBpbnRvIGEgZ2l2ZW4gYnVmZmVyLgorICoKKyAqIFRoZSBmaWxlIGlzIGV4cGVjdGVkIHRvIGNvbnRhaW4gZWl0aGVyIFBFTSBvciBERVIgZW5jb2RlZCBkYXRhLgorICogQSB0ZXJtaW5hdGluZyBudWxsIGJ5dGUgaXMgYWx3YXlzIGFwcGVuZGVkLiBJdCBpcyBpbmNsdWRlZCBpbiB0aGUgYW5ub3VuY2VkCisgKiBsZW5ndGggb25seSBpZiB0aGUgZGF0YSBsb29rcyBsaWtlIGl0IGlzIFBFTSBlbmNvZGVkLgorICovCitzdGF0aWMgaW50IGxvYWRfZmlsZShjb25zdCBjaGFyICpwYXRoLCB1bnNpZ25lZCBjaGFyICoqYnVmLCBzaXplX3QgKm4pCit7CisgICAgRklMRSAqZjsKKyAgICBsb25nIHNpemU7CisKKyAgICBpZiAoKGYgPSBmb3BlbihwYXRoLCAicmIiKSkgPT0gTlVMTCkgeworICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfREhNX0ZJTEVfSU9fRVJST1I7CisgICAgfQorICAgIC8qIFRoZSBkYXRhIGxvYWRlZCBoZXJlIGlzIHB1YmxpYywgc28gZG9uJ3QgYm90aGVyIGRpc2FibGluZyBidWZmZXJpbmcuICovCisKKyAgICBmc2VlayhmLCAwLCBTRUVLX0VORCk7CisgICAgaWYgKChzaXplID0gZnRlbGwoZikpID09IC0xKSB7CisgICAgICAgIGZjbG9zZShmKTsKKyAgICAgICAgcmV0dXJuIE1CRURUTFNfRVJSX0RITV9GSUxFX0lPX0VSUk9SOworICAgIH0KKyAgICBmc2VlayhmLCAwLCBTRUVLX1NFVCk7CisKKyAgICAqbiA9IChzaXplX3QpIHNpemU7CisKKyAgICBpZiAoKm4gKyAxID09IDAgfHwKKyAgICAgICAgKCpidWYgPSBtYmVkdGxzX2NhbGxvYygxLCAqbiArIDEpKSA9PSBOVUxMKSB7CisgICAgICAgIGZjbG9zZShmKTsKKyAgICAgICAgcmV0dXJuIE1CRURUTFNfRVJSX0RITV9BTExPQ19GQUlMRUQ7CisgICAgfQorCisgICAgaWYgKGZyZWFkKCpidWYsIDEsICpuLCBmKSAhPSAqbikgeworICAgICAgICBmY2xvc2UoZik7CisKKyAgICAgICAgbWJlZHRsc196ZXJvaXplX2FuZF9mcmVlKCpidWYsICpuICsgMSk7CisKKyAgICAgICAgcmV0dXJuIE1CRURUTFNfRVJSX0RITV9GSUxFX0lPX0VSUk9SOworICAgIH0KKworICAgIGZjbG9zZShmKTsKKworICAgICgqYnVmKVsqbl0gPSAnXDAnOworCisgICAgaWYgKHN0cnN0cigoY29uc3QgY2hhciAqKSAqYnVmLCAiLS0tLS1CRUdJTiAiKSAhPSBOVUxMKSB7CisgICAgICAgICsrKm47CisgICAgfQorCisgICAgcmV0dXJuIDA7Cit9CisKKy8qCisgKiBMb2FkIGFuZCBwYXJzZSBESE0gcGFyYW1ldGVycworICovCitpbnQgbWJlZHRsc19kaG1fcGFyc2VfZGhtZmlsZShtYmVkdGxzX2RobV9jb250ZXh0ICpkaG0sIGNvbnN0IGNoYXIgKnBhdGgpCit7CisgICAgaW50IHJldCA9IE1CRURUTFNfRVJSX0VSUk9SX0NPUlJVUFRJT05fREVURUNURUQ7CisgICAgc2l6ZV90IG47CisgICAgdW5zaWduZWQgY2hhciAqYnVmOworCisgICAgaWYgKChyZXQgPSBsb2FkX2ZpbGUocGF0aCwgJmJ1ZiwgJm4pKSAhPSAwKSB7CisgICAgICAgIHJldHVybiByZXQ7CisgICAgfQorCisgICAgcmV0ID0gbWJlZHRsc19kaG1fcGFyc2VfZGhtKGRobSwgYnVmLCBuKTsKKworICAgIG1iZWR0bHNfemVyb2l6ZV9hbmRfZnJlZShidWYsIG4pOworCisgICAgcmV0dXJuIHJldDsKK30KKyNlbmRpZiAvKiBNQkVEVExTX0ZTX0lPICovCisjZW5kaWYgLyogTUJFRFRMU19BU04xX1BBUlNFX0MgKi8KKworI2lmIGRlZmluZWQoTUJFRFRMU19TRUxGX1RFU1QpCisKKyNpZiBkZWZpbmVkKE1CRURUTFNfUEVNX1BBUlNFX0MpCitzdGF0aWMgY29uc3QgY2hhciBtYmVkdGxzX3Rlc3RfZGhtX3BhcmFtc1tdID0KKyAgICAiLS0tLS1CRUdJTiBESCBQQVJBTUVURVJTLS0tLS1cclxuIgorICAgICJNSUdIQW9HQkFKNDE5REJFT2dtUVR6bzVxWGw1ZlFjTjlUTjQ1NXdrT0w3MDUySHp4eFJWTXloWW13UWNnSnZoXHJcbiIKKyAgICAiMXNhMThmeWZSOU9pVkVNWWdsT3BrcVZvR0xON3FkNWFRTk5pNVc3L0MrVkJkSFRCSmNHWkp5eVA1QjNxY3ozMlxyXG4iCisgICAgIjltTEpLdWRsVnVkVjBReGs1cVVKYVBaL3h1cHowTnlvVnB2aXVpQk9JMWdOaThvdlNYV3pBZ0VDXHJcbiIKKyAgICAiLS0tLS1FTkQgREggUEFSQU1FVEVSUy0tLS0tXHJcbiI7CisjZWxzZSAvKiBNQkVEVExTX1BFTV9QQVJTRV9DICovCitzdGF0aWMgY29uc3QgY2hhciBtYmVkdGxzX3Rlc3RfZGhtX3BhcmFtc1tdID0geworICAgIDB4MzAsIDB4ODEsIDB4ODcsIDB4MDIsIDB4ODEsIDB4ODEsIDB4MDAsIDB4OWUsIDB4MzUsIDB4ZjQsIDB4MzAsIDB4NDQsCisgICAgMHgzYSwgMHgwOSwgMHg5MCwgMHg0ZiwgMHgzYSwgMHgzOSwgMHhhOSwgMHg3OSwgMHg3OSwgMHg3ZCwgMHgwNywgMHgwZCwKKyAgICAweGY1LCAweDMzLCAweDc4LCAweGU3LCAweDljLCAweDI0LCAweDM4LCAweGJlLCAweGY0LCAweGU3LCAweDYxLCAweGYzLAorICAgIDB4YzcsIDB4MTQsIDB4NTUsIDB4MzMsIDB4MjgsIDB4NTgsIDB4OWIsIDB4MDQsIDB4MWMsIDB4ODAsIDB4OWIsIDB4ZTEsCisgICAgMHhkNiwgMHhjNiwgMHhiNSwgMHhmMSwgMHhmYywgMHg5ZiwgMHg0NywgMHhkMywgMHhhMiwgMHg1NCwgMHg0MywgMHgxOCwKKyAgICAweDgyLCAweDUzLCAweGE5LCAweDkyLCAweGE1LCAweDY4LCAweDE4LCAweGIzLCAweDdiLCAweGE5LCAweGRlLCAweDVhLAorICAgIDB4NDAsIDB4ZDMsIDB4NjIsIDB4ZTUsIDB4NmUsIDB4ZmYsIDB4MGIsIDB4ZTUsIDB4NDEsIDB4NzQsIDB4NzQsIDB4YzEsCisgICAgMHgyNSwgMHhjMSwgMHg5OSwgMHgyNywgMHgyYywgMHg4ZiwgMHhlNCwgMHgxZCwgMHhlYSwgMHg3MywgMHgzZCwgMHhmNiwKKyAgICAweGY2LCAweDYyLCAweGM5LCAweDJhLCAweGU3LCAweDY1LCAweDU2LCAweGU3LCAweDU1LCAweGQxLCAweDBjLCAweDY0LAorICAgIDB4ZTYsIDB4YTUsIDB4MDksIDB4NjgsIDB4ZjYsIDB4N2YsIDB4YzYsIDB4ZWEsIDB4NzMsIDB4ZDAsIDB4ZGMsIDB4YTgsCisgICAgMHg1NiwgMHg5YiwgMHhlMiwgMHhiYSwgMHgyMCwgMHg0ZSwgMHgyMywgMHg1OCwgMHgwZCwgMHg4YiwgMHhjYSwgMHgyZiwKKyAgICAweDQ5LCAweDc1LCAweGIzLCAweDAyLCAweDAxLCAweDAyCit9OworI2VuZGlmIC8qIE1CRURUTFNfUEVNX1BBUlNFX0MgKi8KKworc3RhdGljIGNvbnN0IHNpemVfdCBtYmVkdGxzX3Rlc3RfZGhtX3BhcmFtc19sZW4gPSBzaXplb2YobWJlZHRsc190ZXN0X2RobV9wYXJhbXMpOworCisvKgorICogQ2hlY2t1cCByb3V0aW5lCisgKi8KK2ludCBtYmVkdGxzX2RobV9zZWxmX3Rlc3QoaW50IHZlcmJvc2UpCit7CisgICAgaW50IHJldCA9IE1CRURUTFNfRVJSX0VSUk9SX0NPUlJVUFRJT05fREVURUNURUQ7CisgICAgbWJlZHRsc19kaG1fY29udGV4dCBkaG07CisKKyAgICBtYmVkdGxzX2RobV9pbml0KCZkaG0pOworCisgICAgaWYgKHZlcmJvc2UgIT0gMCkgeworICAgICAgICBtYmVkdGxzX3ByaW50ZigiICBESE0gcGFyYW1ldGVyIGxvYWQ6ICIpOworICAgIH0KKworICAgIGlmICgocmV0ID0gbWJlZHRsc19kaG1fcGFyc2VfZGhtKCZkaG0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNvbnN0IHVuc2lnbmVkIGNoYXIgKikgbWJlZHRsc190ZXN0X2RobV9wYXJhbXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWJlZHRsc190ZXN0X2RobV9wYXJhbXNfbGVuKSkgIT0gMCkgeworICAgICAgICBpZiAodmVyYm9zZSAhPSAwKSB7CisgICAgICAgICAgICBtYmVkdGxzX3ByaW50ZigiZmFpbGVkXG4iKTsKKyAgICAgICAgfQorCisgICAgICAgIHJldCA9IDE7CisgICAgICAgIGdvdG8gZXhpdDsKKyAgICB9CisKKyAgICBpZiAodmVyYm9zZSAhPSAwKSB7CisgICAgICAgIG1iZWR0bHNfcHJpbnRmKCJwYXNzZWRcblxuIik7CisgICAgfQorCitleGl0OgorICAgIG1iZWR0bHNfZGhtX2ZyZWUoJmRobSk7CisKKyAgICByZXR1cm4gcmV0OworfQorCisjZW5kaWYgLyogTUJFRFRMU19TRUxGX1RFU1QgKi8KKworI2VuZGlmIC8qIE1CRURUTFNfREhNX0MgKi8KZGlmZiAtLWdpdCBhL2xpYnJhcnkvZWNkaC5jIGIvdGYtcHNhLWNyeXB0by9kcml2ZXJzL2J1aWx0aW4vc3JjL2VjZGguYwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gbGlicmFyeS9lY2RoLmMKcmVuYW1lIHRvIHRmLXBzYS1jcnlwdG8vZHJpdmVycy9idWlsdGluL3NyYy9lY2RoLmMKZGlmZiAtLWdpdCBhL2xpYnJhcnkvZWNkc2EuYyBiL3RmLXBzYS1jcnlwdG8vZHJpdmVycy9idWlsdGluL3NyYy9lY2RzYS5jCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBsaWJyYXJ5L2VjZHNhLmMKcmVuYW1lIHRvIHRmLXBzYS1jcnlwdG8vZHJpdmVycy9idWlsdGluL3NyYy9lY2RzYS5jCmRpZmYgLS1naXQgYS90Zi1wc2EtY3J5cHRvL2RyaXZlcnMvYnVpbHRpbi9zcmMvZWNqcGFrZS5jIGIvdGYtcHNhLWNyeXB0by9kcml2ZXJzL2J1aWx0aW4vc3JjL2VjanBha2UuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lYmRhZTkyCi0tLSAvZGV2L251bGwKKysrIGIvdGYtcHNhLWNyeXB0by9kcml2ZXJzL2J1aWx0aW4vc3JjL2VjanBha2UuYwpAQCAtMCwwICsxLDEyMDYgQEAKKy8qCisgKiAgRWxsaXB0aWMgY3VydmUgSi1QQUtFCisgKgorICogIENvcHlyaWdodCBUaGUgTWJlZCBUTFMgQ29udHJpYnV0b3JzCisgKiAgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjAgT1IgR1BMLTIuMC1vci1sYXRlcgorICovCisKKy8qCisgKiBSZWZlcmVuY2VzIGluIHRoZSBjb2RlIGFyZSB0byB0aGUgVGhyZWFkIHYxLjAgU3BlY2lmaWNhdGlvbiwKKyAqIGF2YWlsYWJsZSB0byBtZW1iZXJzIG9mIHRoZSBUaHJlYWQgR3JvdXAgaHR0cDovL3RocmVhZGdyb3VwLm9yZy8KKyAqLworCisjaW5jbHVkZSAiY29tbW9uLmgiCisKKyNpZiBkZWZpbmVkKE1CRURUTFNfRUNKUEFLRV9DKQorCisjaW5jbHVkZSAibWJlZHRscy9lY2pwYWtlLmgiCisjaW5jbHVkZSAibWJlZHRscy9wbGF0Zm9ybV91dGlsLmgiCisjaW5jbHVkZSAibWJlZHRscy9lcnJvci5oIgorCisjaW5jbHVkZSA8c3RyaW5nLmg+CisKKy8qCisgKiBDb252ZXJ0IGEgbWJlZHRsc19lY2pwYWtlX3JvbGUgdG8gaWRlbnRpZmllciBzdHJpbmcKKyAqLworc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBlY2pwYWtlX2lkW10gPSB7CisgICAgImNsaWVudCIsCisgICAgInNlcnZlciIKK307CisKKyNkZWZpbmUgSURfTUlORSAgICAgKGVjanBha2VfaWRbY3R4LT5yb2xlXSkKKyNkZWZpbmUgSURfUEVFUiAgICAgKGVjanBha2VfaWRbMSAtIGN0eC0+cm9sZV0pCisKKy8qKgorICogSGVscGVyIHRvIENvbXB1dGUgYSBoYXNoIGZyb20gbWRfdHlwZQorICovCitzdGF0aWMgaW50IG1iZWR0bHNfZWNqcGFrZV9jb21wdXRlX2hhc2gobWJlZHRsc19tZF90eXBlX3QgbWRfdHlwZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1bnNpZ25lZCBjaGFyICppbnB1dCwgc2l6ZV90IGlsZW4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgY2hhciAqb3V0cHV0KQoreworICAgIHJldHVybiBtYmVkdGxzX21kKG1iZWR0bHNfbWRfaW5mb19mcm9tX3R5cGUobWRfdHlwZSksCisgICAgICAgICAgICAgICAgICAgICAgaW5wdXQsIGlsZW4sIG91dHB1dCk7Cit9CisKKy8qCisgKiBJbml0aWFsaXplIGNvbnRleHQKKyAqLwordm9pZCBtYmVkdGxzX2VjanBha2VfaW5pdChtYmVkdGxzX2VjanBha2VfY29udGV4dCAqY3R4KQoreworICAgIGN0eC0+bWRfdHlwZSA9IE1CRURUTFNfTURfTk9ORTsKKyAgICBtYmVkdGxzX2VjcF9ncm91cF9pbml0KCZjdHgtPmdycCk7CisgICAgY3R4LT5wb2ludF9mb3JtYXQgPSBNQkVEVExTX0VDUF9QRl9VTkNPTVBSRVNTRUQ7CisKKyAgICBtYmVkdGxzX2VjcF9wb2ludF9pbml0KCZjdHgtPlhtMSk7CisgICAgbWJlZHRsc19lY3BfcG9pbnRfaW5pdCgmY3R4LT5YbTIpOworICAgIG1iZWR0bHNfZWNwX3BvaW50X2luaXQoJmN0eC0+WHAxKTsKKyAgICBtYmVkdGxzX2VjcF9wb2ludF9pbml0KCZjdHgtPlhwMik7CisgICAgbWJlZHRsc19lY3BfcG9pbnRfaW5pdCgmY3R4LT5YcCk7CisKKyAgICBtYmVkdGxzX21waV9pbml0KCZjdHgtPnhtMSk7CisgICAgbWJlZHRsc19tcGlfaW5pdCgmY3R4LT54bTIpOworICAgIG1iZWR0bHNfbXBpX2luaXQoJmN0eC0+cyk7Cit9CisKKy8qCisgKiBGcmVlIGNvbnRleHQKKyAqLwordm9pZCBtYmVkdGxzX2VjanBha2VfZnJlZShtYmVkdGxzX2VjanBha2VfY29udGV4dCAqY3R4KQoreworICAgIGlmIChjdHggPT0gTlVMTCkgeworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgY3R4LT5tZF90eXBlID0gTUJFRFRMU19NRF9OT05FOworICAgIG1iZWR0bHNfZWNwX2dyb3VwX2ZyZWUoJmN0eC0+Z3JwKTsKKworICAgIG1iZWR0bHNfZWNwX3BvaW50X2ZyZWUoJmN0eC0+WG0xKTsKKyAgICBtYmVkdGxzX2VjcF9wb2ludF9mcmVlKCZjdHgtPlhtMik7CisgICAgbWJlZHRsc19lY3BfcG9pbnRfZnJlZSgmY3R4LT5YcDEpOworICAgIG1iZWR0bHNfZWNwX3BvaW50X2ZyZWUoJmN0eC0+WHAyKTsKKyAgICBtYmVkdGxzX2VjcF9wb2ludF9mcmVlKCZjdHgtPlhwKTsKKworICAgIG1iZWR0bHNfbXBpX2ZyZWUoJmN0eC0+eG0xKTsKKyAgICBtYmVkdGxzX21waV9mcmVlKCZjdHgtPnhtMik7CisgICAgbWJlZHRsc19tcGlfZnJlZSgmY3R4LT5zKTsKK30KKworLyoKKyAqIFNldHVwIGNvbnRleHQKKyAqLworaW50IG1iZWR0bHNfZWNqcGFrZV9zZXR1cChtYmVkdGxzX2VjanBha2VfY29udGV4dCAqY3R4LAorICAgICAgICAgICAgICAgICAgICAgICAgICBtYmVkdGxzX2VjanBha2Vfcm9sZSByb2xlLAorICAgICAgICAgICAgICAgICAgICAgICAgICBtYmVkdGxzX21kX3R5cGVfdCBoYXNoLAorICAgICAgICAgICAgICAgICAgICAgICAgICBtYmVkdGxzX2VjcF9ncm91cF9pZCBjdXJ2ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdW5zaWduZWQgY2hhciAqc2VjcmV0LAorICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgbGVuKQoreworICAgIGludCByZXQgPSBNQkVEVExTX0VSUl9FUlJPUl9DT1JSVVBUSU9OX0RFVEVDVEVEOworCisgICAgaWYgKHJvbGUgIT0gTUJFRFRMU19FQ0pQQUtFX0NMSUVOVCAmJiByb2xlICE9IE1CRURUTFNfRUNKUEFLRV9TRVJWRVIpIHsKKyAgICAgICAgcmV0dXJuIE1CRURUTFNfRVJSX0VDUF9CQURfSU5QVVRfREFUQTsKKyAgICB9CisKKyAgICBjdHgtPnJvbGUgPSByb2xlOworCisgICAgaWYgKChtYmVkdGxzX21kX2luZm9fZnJvbV90eXBlKGhhc2gpKSA9PSBOVUxMKSB7CisgICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9NRF9GRUFUVVJFX1VOQVZBSUxBQkxFOworICAgIH0KKworICAgIGN0eC0+bWRfdHlwZSA9IGhhc2g7CisKKyAgICBNQkVEVExTX01QSV9DSEsobWJlZHRsc19lY3BfZ3JvdXBfbG9hZCgmY3R4LT5ncnAsIGN1cnZlKSk7CisKKyAgICBNQkVEVExTX01QSV9DSEsobWJlZHRsc19tcGlfcmVhZF9iaW5hcnkoJmN0eC0+cywgc2VjcmV0LCBsZW4pKTsKKworY2xlYW51cDoKKyAgICBpZiAocmV0ICE9IDApIHsKKyAgICAgICAgbWJlZHRsc19lY2pwYWtlX2ZyZWUoY3R4KTsKKyAgICB9CisKKyAgICByZXR1cm4gcmV0OworfQorCitpbnQgbWJlZHRsc19lY2pwYWtlX3NldF9wb2ludF9mb3JtYXQobWJlZHRsc19lY2pwYWtlX2NvbnRleHQgKmN0eCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgcG9pbnRfZm9ybWF0KQoreworICAgIHN3aXRjaCAocG9pbnRfZm9ybWF0KSB7CisgICAgICAgIGNhc2UgTUJFRFRMU19FQ1BfUEZfVU5DT01QUkVTU0VEOgorICAgICAgICBjYXNlIE1CRURUTFNfRUNQX1BGX0NPTVBSRVNTRUQ6CisgICAgICAgICAgICBjdHgtPnBvaW50X2Zvcm1hdCA9IHBvaW50X2Zvcm1hdDsKKyAgICAgICAgICAgIHJldHVybiAwOworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgcmV0dXJuIE1CRURUTFNfRVJSX0VDUF9CQURfSU5QVVRfREFUQTsKKyAgICB9Cit9CisKKy8qCisgKiBDaGVjayBpZiBjb250ZXh0IGlzIHJlYWR5IGZvciB1c2UKKyAqLworaW50IG1iZWR0bHNfZWNqcGFrZV9jaGVjayhjb25zdCBtYmVkdGxzX2VjanBha2VfY29udGV4dCAqY3R4KQoreworICAgIGlmIChjdHgtPm1kX3R5cGUgPT0gTUJFRFRMU19NRF9OT05FIHx8CisgICAgICAgIGN0eC0+Z3JwLmlkID09IE1CRURUTFNfRUNQX0RQX05PTkUgfHwKKyAgICAgICAgY3R4LT5zLnAgPT0gTlVMTCkgeworICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfRUNQX0JBRF9JTlBVVF9EQVRBOworICAgIH0KKworICAgIHJldHVybiAwOworfQorCisvKgorICogV3JpdGUgYSBwb2ludCBwbHVzIGl0cyBsZW5ndGggdG8gYSBidWZmZXIKKyAqLworc3RhdGljIGludCBlY2pwYWtlX3dyaXRlX2xlbl9wb2ludCh1bnNpZ25lZCBjaGFyICoqcCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdW5zaWduZWQgY2hhciAqZW5kLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBtYmVkdGxzX2VjcF9ncm91cCAqZ3JwLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBpbnQgcGYsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IG1iZWR0bHNfZWNwX3BvaW50ICpQKQoreworICAgIGludCByZXQgPSBNQkVEVExTX0VSUl9FUlJPUl9DT1JSVVBUSU9OX0RFVEVDVEVEOworICAgIHNpemVfdCBsZW47CisKKyAgICAvKiBOZWVkIGF0IGxlYXN0IDQgZm9yIGxlbmd0aCBwbHVzIDEgZm9yIHBvaW50ICovCisgICAgaWYgKGVuZCA8ICpwIHx8IGVuZCAtICpwIDwgNSkgeworICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfRUNQX0JVRkZFUl9UT09fU01BTEw7CisgICAgfQorCisgICAgcmV0ID0gbWJlZHRsc19lY3BfcG9pbnRfd3JpdGVfYmluYXJ5KGdycCwgUCwgcGYsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZsZW4sICpwICsgNCwgKHNpemVfdCkgKGVuZCAtICgqcCArIDQpKSk7CisgICAgaWYgKHJldCAhPSAwKSB7CisgICAgICAgIHJldHVybiByZXQ7CisgICAgfQorCisgICAgTUJFRFRMU19QVVRfVUlOVDMyX0JFKGxlbiwgKnAsIDApOworCisgICAgKnAgKz0gNCArIGxlbjsKKworICAgIHJldHVybiAwOworfQorCisvKgorICogU2l6ZSBvZiB0aGUgdGVtcG9yYXJ5IGJ1ZmZlciBmb3IgZWNqcGFrZV9oYXNoOgorICogMyBFQyBwb2ludHMgcGx1cyB0aGVpciBsZW5ndGgsIHBsdXMgSUQgYW5kIGl0cyBsZW5ndGggKDQgKyA2IGJ5dGVzKQorICovCisjZGVmaW5lIEVDSlBBS0VfSEFTSF9CVUZfTEVOICAgICgzICogKDQgKyBNQkVEVExTX0VDUF9NQVhfUFRfTEVOKSArIDQgKyA2KQorCisvKgorICogQ29tcHV0ZSBoYXNoIGZvciBaS1AgKDcuNC4yLjIuMi4xKQorICovCitzdGF0aWMgaW50IGVjanBha2VfaGFzaChjb25zdCBtYmVkdGxzX21kX3R5cGVfdCBtZF90eXBlLAorICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbWJlZHRsc19lY3BfZ3JvdXAgKmdycCwKKyAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGludCBwZiwKKyAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IG1iZWR0bHNfZWNwX3BvaW50ICpHLAorICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbWJlZHRsc19lY3BfcG9pbnQgKlYsCisgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBtYmVkdGxzX2VjcF9wb2ludCAqWCwKKyAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKmlkLAorICAgICAgICAgICAgICAgICAgICAgICAgbWJlZHRsc19tcGkgKmgpCit7CisgICAgaW50IHJldCA9IE1CRURUTFNfRVJSX0VSUk9SX0NPUlJVUFRJT05fREVURUNURUQ7CisgICAgdW5zaWduZWQgY2hhciBidWZbRUNKUEFLRV9IQVNIX0JVRl9MRU5dOworICAgIHVuc2lnbmVkIGNoYXIgKnAgPSBidWY7CisgICAgY29uc3QgdW5zaWduZWQgY2hhciAqZW5kID0gYnVmICsgc2l6ZW9mKGJ1Zik7CisgICAgY29uc3Qgc2l6ZV90IGlkX2xlbiA9IHN0cmxlbihpZCk7CisgICAgdW5zaWduZWQgY2hhciBoYXNoW01CRURUTFNfTURfTUFYX1NJWkVdOworCisgICAgLyogV3JpdGUgdGhpbmdzIHRvIHRlbXBvcmFyeSBidWZmZXIgKi8KKyAgICBNQkVEVExTX01QSV9DSEsoZWNqcGFrZV93cml0ZV9sZW5fcG9pbnQoJnAsIGVuZCwgZ3JwLCBwZiwgRykpOworICAgIE1CRURUTFNfTVBJX0NISyhlY2pwYWtlX3dyaXRlX2xlbl9wb2ludCgmcCwgZW5kLCBncnAsIHBmLCBWKSk7CisgICAgTUJFRFRMU19NUElfQ0hLKGVjanBha2Vfd3JpdGVfbGVuX3BvaW50KCZwLCBlbmQsIGdycCwgcGYsIFgpKTsKKworICAgIGlmIChlbmQgLSBwIDwgNCkgeworICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfRUNQX0JVRkZFUl9UT09fU01BTEw7CisgICAgfQorCisgICAgTUJFRFRMU19QVVRfVUlOVDMyX0JFKGlkX2xlbiwgcCwgMCk7CisgICAgcCArPSA0OworCisgICAgaWYgKGVuZCA8IHAgfHwgKHNpemVfdCkgKGVuZCAtIHApIDwgaWRfbGVuKSB7CisgICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9FQ1BfQlVGRkVSX1RPT19TTUFMTDsKKyAgICB9CisKKyAgICBtZW1jcHkocCwgaWQsIGlkX2xlbik7CisgICAgcCArPSBpZF9sZW47CisKKyAgICAvKiBDb21wdXRlIGhhc2ggKi8KKyAgICBNQkVEVExTX01QSV9DSEsobWJlZHRsc19lY2pwYWtlX2NvbXB1dGVfaGFzaChtZF90eXBlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ1ZiwgKHNpemVfdCkgKHAgLSBidWYpLCBoYXNoKSk7CisKKyAgICAvKiBUdXJuIGl0IGludG8gYW4gaW50ZWdlciBtb2QgbiAqLworICAgIE1CRURUTFNfTVBJX0NISyhtYmVkdGxzX21waV9yZWFkX2JpbmFyeShoLCBoYXNoLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYmVkdGxzX21kX2dldF9zaXplX2Zyb21fdHlwZShtZF90eXBlKSkpOworICAgIE1CRURUTFNfTVBJX0NISyhtYmVkdGxzX21waV9tb2RfbXBpKGgsIGgsICZncnAtPk4pKTsKKworY2xlYW51cDoKKyAgICByZXR1cm4gcmV0OworfQorCisvKgorICogUGFyc2UgYSBFQ1Nobm9yclpLUCAoNy40LjIuMi4yKSBhbmQgdmVyaWZ5IGl0ICg3LjQuMi4zLjMpCisgKi8KK3N0YXRpYyBpbnQgZWNqcGFrZV96a3BfcmVhZChjb25zdCBtYmVkdGxzX21kX3R5cGVfdCBtZF90eXBlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IG1iZWR0bHNfZWNwX2dyb3VwICpncnAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgaW50IHBmLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IG1iZWR0bHNfZWNwX3BvaW50ICpHLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IG1iZWR0bHNfZWNwX3BvaW50ICpYLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKmlkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgKipwLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgKmVuZCkKK3sKKyAgICBpbnQgcmV0ID0gTUJFRFRMU19FUlJfRVJST1JfQ09SUlVQVElPTl9ERVRFQ1RFRDsKKyAgICBtYmVkdGxzX2VjcF9wb2ludCBWLCBWVjsKKyAgICBtYmVkdGxzX21waSByLCBoOworICAgIHNpemVfdCByX2xlbjsKKworICAgIG1iZWR0bHNfZWNwX3BvaW50X2luaXQoJlYpOworICAgIG1iZWR0bHNfZWNwX3BvaW50X2luaXQoJlZWKTsKKyAgICBtYmVkdGxzX21waV9pbml0KCZyKTsKKyAgICBtYmVkdGxzX21waV9pbml0KCZoKTsKKworICAgIC8qCisgICAgICogc3RydWN0IHsKKyAgICAgKiAgICAgRUNQb2ludCBWOworICAgICAqICAgICBvcGFxdWUgcjwxLi4yXjgtMT47CisgICAgICogfSBFQ1NjaG5vcnJaS1A7CisgICAgICovCisgICAgaWYgKGVuZCA8ICpwKSB7CisgICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9FQ1BfQkFEX0lOUFVUX0RBVEE7CisgICAgfQorCisgICAgTUJFRFRMU19NUElfQ0hLKG1iZWR0bHNfZWNwX3Rsc19yZWFkX3BvaW50KGdycCwgJlYsIHAsIChzaXplX3QpIChlbmQgLSAqcCkpKTsKKworICAgIGlmIChlbmQgPCAqcCB8fCAoc2l6ZV90KSAoZW5kIC0gKnApIDwgMSkgeworICAgICAgICByZXQgPSBNQkVEVExTX0VSUl9FQ1BfQkFEX0lOUFVUX0RBVEE7CisgICAgICAgIGdvdG8gY2xlYW51cDsKKyAgICB9CisKKyAgICByX2xlbiA9ICooKnApKys7CisKKyAgICBpZiAoZW5kIDwgKnAgfHwgKHNpemVfdCkgKGVuZCAtICpwKSA8IHJfbGVuIHx8IHJfbGVuID09IDApIHsKKyAgICAgICAgcmV0ID0gTUJFRFRMU19FUlJfRUNQX0JBRF9JTlBVVF9EQVRBOworICAgICAgICBnb3RvIGNsZWFudXA7CisgICAgfQorCisgICAgTUJFRFRMU19NUElfQ0hLKG1iZWR0bHNfbXBpX3JlYWRfYmluYXJ5KCZyLCAqcCwgcl9sZW4pKTsKKyAgICAqcCArPSByX2xlbjsKKworICAgIC8qCisgICAgICogVmVyaWZpY2F0aW9uCisgICAgICovCisgICAgTUJFRFRMU19NUElfQ0hLKGVjanBha2VfaGFzaChtZF90eXBlLCBncnAsIHBmLCBHLCAmViwgWCwgaWQsICZoKSk7CisgICAgTUJFRFRMU19NUElfQ0hLKG1iZWR0bHNfZWNwX211bGFkZCgobWJlZHRsc19lY3BfZ3JvdXAgKikgZ3JwLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJlZWLCAmaCwgWCwgJnIsIEcpKTsKKworICAgIGlmIChtYmVkdGxzX2VjcF9wb2ludF9jbXAoJlZWLCAmVikgIT0gMCkgeworICAgICAgICByZXQgPSBNQkVEVExTX0VSUl9FQ1BfVkVSSUZZX0ZBSUxFRDsKKyAgICAgICAgZ290byBjbGVhbnVwOworICAgIH0KKworY2xlYW51cDoKKyAgICBtYmVkdGxzX2VjcF9wb2ludF9mcmVlKCZWKTsKKyAgICBtYmVkdGxzX2VjcF9wb2ludF9mcmVlKCZWVik7CisgICAgbWJlZHRsc19tcGlfZnJlZSgmcik7CisgICAgbWJlZHRsc19tcGlfZnJlZSgmaCk7CisKKyAgICByZXR1cm4gcmV0OworfQorCisvKgorICogR2VuZXJhdGUgWktQICg3LjQuMi4zLjIpIGFuZCB3cml0ZSBpdCBhcyBFQ1NjaG5vcnJaS1AgKDcuNC4yLjIuMikKKyAqLworc3RhdGljIGludCBlY2pwYWtlX3prcF93cml0ZShjb25zdCBtYmVkdGxzX21kX3R5cGVfdCBtZF90eXBlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBtYmVkdGxzX2VjcF9ncm91cCAqZ3JwLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBpbnQgcGYsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IG1iZWR0bHNfZWNwX3BvaW50ICpHLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBtYmVkdGxzX21waSAqeCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbWJlZHRsc19lY3BfcG9pbnQgKlgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKmlkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBjaGFyICoqcCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdW5zaWduZWQgY2hhciAqZW5kLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgKCpmX3JuZykodm9pZCAqLCB1bnNpZ25lZCBjaGFyICosIHNpemVfdCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZvaWQgKnBfcm5nKQoreworICAgIGludCByZXQgPSBNQkVEVExTX0VSUl9FUlJPUl9DT1JSVVBUSU9OX0RFVEVDVEVEOworICAgIG1iZWR0bHNfZWNwX3BvaW50IFY7CisgICAgbWJlZHRsc19tcGkgdjsKKyAgICBtYmVkdGxzX21waSBoOyAvKiBsYXRlciByZWN5Y2xlZCB0byBob2xkIHIgKi8KKyAgICBzaXplX3QgbGVuOworCisgICAgaWYgKGVuZCA8ICpwKSB7CisgICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9FQ1BfQlVGRkVSX1RPT19TTUFMTDsKKyAgICB9CisKKyAgICBtYmVkdGxzX2VjcF9wb2ludF9pbml0KCZWKTsKKyAgICBtYmVkdGxzX21waV9pbml0KCZ2KTsKKyAgICBtYmVkdGxzX21waV9pbml0KCZoKTsKKworICAgIC8qIENvbXB1dGUgc2lnbmF0dXJlICovCisgICAgTUJFRFRMU19NUElfQ0hLKG1iZWR0bHNfZWNwX2dlbl9rZXlwYWlyX2Jhc2UoKG1iZWR0bHNfZWNwX2dyb3VwICopIGdycCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHLCAmdiwgJlYsIGZfcm5nLCBwX3JuZykpOworICAgIE1CRURUTFNfTVBJX0NISyhlY2pwYWtlX2hhc2gobWRfdHlwZSwgZ3JwLCBwZiwgRywgJlYsIFgsIGlkLCAmaCkpOworICAgIE1CRURUTFNfTVBJX0NISyhtYmVkdGxzX21waV9tdWxfbXBpKCZoLCAmaCwgeCkpOyAgICAgLyogeCpoICovCisgICAgTUJFRFRMU19NUElfQ0hLKG1iZWR0bHNfbXBpX3N1Yl9tcGkoJmgsICZ2LCAmaCkpOyAgICAgLyogdiAtIHgqaCAqLworICAgIE1CRURUTFNfTVBJX0NISyhtYmVkdGxzX21waV9tb2RfbXBpKCZoLCAmaCwgJmdycC0+TikpOyAgICAgLyogciAqLworCisgICAgLyogV3JpdGUgaXQgb3V0ICovCisgICAgTUJFRFRMU19NUElfQ0hLKG1iZWR0bHNfZWNwX3Rsc193cml0ZV9wb2ludChncnAsICZWLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGYsICZsZW4sICpwLCAoc2l6ZV90KSAoZW5kIC0gKnApKSk7CisgICAgKnAgKz0gbGVuOworCisgICAgbGVuID0gbWJlZHRsc19tcGlfc2l6ZSgmaCk7ICAgLyogYWN0dWFsbHkgciAqLworICAgIGlmIChlbmQgPCAqcCB8fCAoc2l6ZV90KSAoZW5kIC0gKnApIDwgMSArIGxlbiB8fCBsZW4gPiAyNTUpIHsKKyAgICAgICAgcmV0ID0gTUJFRFRMU19FUlJfRUNQX0JVRkZFUl9UT09fU01BTEw7CisgICAgICAgIGdvdG8gY2xlYW51cDsKKyAgICB9CisKKyAgICAqKCpwKSsrID0gTUJFRFRMU19CWVRFXzAobGVuKTsKKyAgICBNQkVEVExTX01QSV9DSEsobWJlZHRsc19tcGlfd3JpdGVfYmluYXJ5KCZoLCAqcCwgbGVuKSk7ICAgICAvKiByICovCisgICAgKnAgKz0gbGVuOworCitjbGVhbnVwOgorICAgIG1iZWR0bHNfZWNwX3BvaW50X2ZyZWUoJlYpOworICAgIG1iZWR0bHNfbXBpX2ZyZWUoJnYpOworICAgIG1iZWR0bHNfbXBpX2ZyZWUoJmgpOworCisgICAgcmV0dXJuIHJldDsKK30KKworLyoKKyAqIFBhcnNlIGEgRUNKUEFLRUtleUtQICg3LjQuMi4yLjEpIGFuZCBjaGVjayBwcm9vZgorICogT3V0cHV0OiB2ZXJpZmllZCBwdWJsaWMga2V5IFgKKyAqLworc3RhdGljIGludCBlY2pwYWtlX2trcF9yZWFkKGNvbnN0IG1iZWR0bHNfbWRfdHlwZV90IG1kX3R5cGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbWJlZHRsc19lY3BfZ3JvdXAgKmdycCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBpbnQgcGYsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbWJlZHRsc19lY3BfcG9pbnQgKkcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWJlZHRsc19lY3BfcG9pbnQgKlgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqaWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdW5zaWduZWQgY2hhciAqKnAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdW5zaWduZWQgY2hhciAqZW5kKQoreworICAgIGludCByZXQgPSBNQkVEVExTX0VSUl9FUlJPUl9DT1JSVVBUSU9OX0RFVEVDVEVEOworCisgICAgaWYgKGVuZCA8ICpwKSB7CisgICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9FQ1BfQkFEX0lOUFVUX0RBVEE7CisgICAgfQorCisgICAgLyoKKyAgICAgKiBzdHJ1Y3QgeworICAgICAqICAgICBFQ1BvaW50IFg7CisgICAgICogICAgIEVDU2Nobm9yclpLUCB6a3A7CisgICAgICogfSBFQ0pQQUtFS2V5S1A7CisgICAgICovCisgICAgTUJFRFRMU19NUElfQ0hLKG1iZWR0bHNfZWNwX3Rsc19yZWFkX3BvaW50KGdycCwgWCwgcCwgKHNpemVfdCkgKGVuZCAtICpwKSkpOworICAgIGlmIChtYmVkdGxzX2VjcF9pc196ZXJvKFgpKSB7CisgICAgICAgIHJldCA9IE1CRURUTFNfRVJSX0VDUF9JTlZBTElEX0tFWTsKKyAgICAgICAgZ290byBjbGVhbnVwOworICAgIH0KKworICAgIE1CRURUTFNfTVBJX0NISyhlY2pwYWtlX3prcF9yZWFkKG1kX3R5cGUsIGdycCwgcGYsIEcsIFgsIGlkLCBwLCBlbmQpKTsKKworY2xlYW51cDoKKyAgICByZXR1cm4gcmV0OworfQorCisvKgorICogR2VuZXJhdGUgYW4gRUNKUEFLRUtleUtQCisgKiBPdXRwdXQ6IHRoZSBzZXJpYWxpemVkIHN0cnVjdHVyZSwgcGx1cyBwcml2YXRlL3B1YmxpYyBrZXkgcGFpcgorICovCitzdGF0aWMgaW50IGVjanBha2Vfa2twX3dyaXRlKGNvbnN0IG1iZWR0bHNfbWRfdHlwZV90IG1kX3R5cGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IG1iZWR0bHNfZWNwX2dyb3VwICpncnAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGludCBwZiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbWJlZHRsc19lY3BfcG9pbnQgKkcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1iZWR0bHNfbXBpICp4LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYmVkdGxzX2VjcF9wb2ludCAqWCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqaWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGNoYXIgKipwLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1bnNpZ25lZCBjaGFyICplbmQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCAoKmZfcm5nKSh2b2lkICosIHVuc2lnbmVkIGNoYXIgKiwgc2l6ZV90KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdm9pZCAqcF9ybmcpCit7CisgICAgaW50IHJldCA9IE1CRURUTFNfRVJSX0VSUk9SX0NPUlJVUFRJT05fREVURUNURUQ7CisgICAgc2l6ZV90IGxlbjsKKworICAgIGlmIChlbmQgPCAqcCkgeworICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfRUNQX0JVRkZFUl9UT09fU01BTEw7CisgICAgfQorCisgICAgLyogR2VuZXJhdGUga2V5ICg3LjQuMi4zLjEpIGFuZCB3cml0ZSBpdCBvdXQgKi8KKyAgICBNQkVEVExTX01QSV9DSEsobWJlZHRsc19lY3BfZ2VuX2tleXBhaXJfYmFzZSgobWJlZHRsc19lY3BfZ3JvdXAgKikgZ3JwLCBHLCB4LCBYLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZfcm5nLCBwX3JuZykpOworICAgIE1CRURUTFNfTVBJX0NISyhtYmVkdGxzX2VjcF90bHNfd3JpdGVfcG9pbnQoZ3JwLCBYLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGYsICZsZW4sICpwLCAoc2l6ZV90KSAoZW5kIC0gKnApKSk7CisgICAgKnAgKz0gbGVuOworCisgICAgLyogR2VuZXJhdGUgYW5kIHdyaXRlIHByb29mICovCisgICAgTUJFRFRMU19NUElfQ0hLKGVjanBha2VfemtwX3dyaXRlKG1kX3R5cGUsIGdycCwgcGYsIEcsIHgsIFgsIGlkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwLCBlbmQsIGZfcm5nLCBwX3JuZykpOworCitjbGVhbnVwOgorICAgIHJldHVybiByZXQ7Cit9CisKKy8qCisgKiBSZWFkIGEgRUNKUEFLRUtleUtQUGFpckxpc3QgKDcuNC4yLjMpIGFuZCBjaGVjayBwcm9vZnMKKyAqIE91dHB1dHM6IHZlcmlmaWVkIHBlZXIgcHVibGljIGtleXMgWGEsIFhiCisgKi8KK3N0YXRpYyBpbnQgZWNqcGFrZV9ra3BwX3JlYWQoY29uc3QgbWJlZHRsc19tZF90eXBlX3QgbWRfdHlwZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbWJlZHRsc19lY3BfZ3JvdXAgKmdycCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgaW50IHBmLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBtYmVkdGxzX2VjcF9wb2ludCAqRywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWJlZHRsc19lY3BfcG9pbnQgKlhhLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYmVkdGxzX2VjcF9wb2ludCAqWGIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKmlkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1bnNpZ25lZCBjaGFyICpidWYsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBsZW4pCit7CisgICAgaW50IHJldCA9IE1CRURUTFNfRVJSX0VSUk9SX0NPUlJVUFRJT05fREVURUNURUQ7CisgICAgY29uc3QgdW5zaWduZWQgY2hhciAqcCA9IGJ1ZjsKKyAgICBjb25zdCB1bnNpZ25lZCBjaGFyICplbmQgPSBidWYgKyBsZW47CisKKyAgICAvKgorICAgICAqIHN0cnVjdCB7CisgICAgICogICAgIEVDSlBBS0VLZXlLUCBlY2pwYWtlX2tleV9rcF9wYWlyX2xpc3RbMl07CisgICAgICogfSBFQ0pQQUtFS2V5S1BQYWlyTGlzdDsKKyAgICAgKi8KKyAgICBNQkVEVExTX01QSV9DSEsoZWNqcGFrZV9ra3BfcmVhZChtZF90eXBlLCBncnAsIHBmLCBHLCBYYSwgaWQsICZwLCBlbmQpKTsKKyAgICBNQkVEVExTX01QSV9DSEsoZWNqcGFrZV9ra3BfcmVhZChtZF90eXBlLCBncnAsIHBmLCBHLCBYYiwgaWQsICZwLCBlbmQpKTsKKworICAgIGlmIChwICE9IGVuZCkgeworICAgICAgICByZXQgPSBNQkVEVExTX0VSUl9FQ1BfQkFEX0lOUFVUX0RBVEE7CisgICAgfQorCitjbGVhbnVwOgorICAgIHJldHVybiByZXQ7Cit9CisKKy8qCisgKiBHZW5lcmF0ZSBhIEVDSlBBS0VLZXlLUFBhaXJMaXN0CisgKiBPdXRwdXRzOiB0aGUgc2VyaWFsaXplZCBzdHJ1Y3R1cmUsIHBsdXMgdHdvIHByaXZhdGUvcHVibGljIGtleSBwYWlycworICovCitzdGF0aWMgaW50IGVjanBha2Vfa2twcF93cml0ZShjb25zdCBtYmVkdGxzX21kX3R5cGVfdCBtZF90eXBlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbWJlZHRsc19lY3BfZ3JvdXAgKmdycCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGludCBwZiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IG1iZWR0bHNfZWNwX3BvaW50ICpHLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWJlZHRsc19tcGkgKnhtMSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1iZWR0bHNfZWNwX3BvaW50ICpYYSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1iZWR0bHNfbXBpICp4bTIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYmVkdGxzX2VjcF9wb2ludCAqWGIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICppZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGNoYXIgKmJ1ZiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBsZW4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgKm9sZW4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgKCpmX3JuZykodm9pZCAqLCB1bnNpZ25lZCBjaGFyICosIHNpemVfdCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2b2lkICpwX3JuZykKK3sKKyAgICBpbnQgcmV0ID0gTUJFRFRMU19FUlJfRVJST1JfQ09SUlVQVElPTl9ERVRFQ1RFRDsKKyAgICB1bnNpZ25lZCBjaGFyICpwID0gYnVmOworICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgKmVuZCA9IGJ1ZiArIGxlbjsKKworICAgIE1CRURUTFNfTVBJX0NISyhlY2pwYWtlX2trcF93cml0ZShtZF90eXBlLCBncnAsIHBmLCBHLCB4bTEsIFhhLCBpZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJnAsIGVuZCwgZl9ybmcsIHBfcm5nKSk7CisgICAgTUJFRFRMU19NUElfQ0hLKGVjanBha2Vfa2twX3dyaXRlKG1kX3R5cGUsIGdycCwgcGYsIEcsIHhtMiwgWGIsIGlkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmcCwgZW5kLCBmX3JuZywgcF9ybmcpKTsKKworICAgICpvbGVuID0gKHNpemVfdCkgKHAgLSBidWYpOworCitjbGVhbnVwOgorICAgIHJldHVybiByZXQ7Cit9CisKKy8qCisgKiBSZWFkIGFuZCBwcm9jZXNzIHRoZSBmaXJzdCByb3VuZCBtZXNzYWdlCisgKi8KK2ludCBtYmVkdGxzX2VjanBha2VfcmVhZF9yb3VuZF9vbmUobWJlZHRsc19lY2pwYWtlX2NvbnRleHQgKmN0eCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdW5zaWduZWQgY2hhciAqYnVmLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgbGVuKQoreworICAgIHJldHVybiBlY2pwYWtlX2trcHBfcmVhZChjdHgtPm1kX3R5cGUsICZjdHgtPmdycCwgY3R4LT5wb2ludF9mb3JtYXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZjdHgtPmdycC5HLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmY3R4LT5YcDEsICZjdHgtPlhwMiwgSURfUEVFUiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnVmLCBsZW4pOworfQorCisvKgorICogR2VuZXJhdGUgYW5kIHdyaXRlIHRoZSBmaXJzdCByb3VuZCBtZXNzYWdlCisgKi8KK2ludCBtYmVkdGxzX2VjanBha2Vfd3JpdGVfcm91bmRfb25lKG1iZWR0bHNfZWNqcGFrZV9jb250ZXh0ICpjdHgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBjaGFyICpidWYsIHNpemVfdCBsZW4sIHNpemVfdCAqb2xlbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCAoKmZfcm5nKSh2b2lkICosIHVuc2lnbmVkIGNoYXIgKiwgc2l6ZV90KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZvaWQgKnBfcm5nKQoreworICAgIHJldHVybiBlY2pwYWtlX2trcHBfd3JpdGUoY3R4LT5tZF90eXBlLCAmY3R4LT5ncnAsIGN0eC0+cG9pbnRfZm9ybWF0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJmN0eC0+Z3JwLkcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmY3R4LT54bTEsICZjdHgtPlhtMSwgJmN0eC0+eG0yLCAmY3R4LT5YbTIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJRF9NSU5FLCBidWYsIGxlbiwgb2xlbiwgZl9ybmcsIHBfcm5nKTsKK30KKworLyoKKyAqIENvbXB1dGUgdGhlIHN1bSBvZiB0aHJlZSBwb2ludHMgUiA9IEEgKyBCICsgQworICovCitzdGF0aWMgaW50IGVjanBha2VfZWNwX2FkZDMobWJlZHRsc19lY3BfZ3JvdXAgKmdycCwgbWJlZHRsc19lY3BfcG9pbnQgKlIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbWJlZHRsc19lY3BfcG9pbnQgKkEsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbWJlZHRsc19lY3BfcG9pbnQgKkIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbWJlZHRsc19lY3BfcG9pbnQgKkMpCit7CisgICAgaW50IHJldCA9IE1CRURUTFNfRVJSX0VSUk9SX0NPUlJVUFRJT05fREVURUNURUQ7CisgICAgbWJlZHRsc19tcGkgb25lOworCisgICAgbWJlZHRsc19tcGlfaW5pdCgmb25lKTsKKworICAgIE1CRURUTFNfTVBJX0NISyhtYmVkdGxzX21waV9sc2V0KCZvbmUsIDEpKTsKKyAgICBNQkVEVExTX01QSV9DSEsobWJlZHRsc19lY3BfbXVsYWRkKGdycCwgUiwgJm9uZSwgQSwgJm9uZSwgQikpOworICAgIE1CRURUTFNfTVBJX0NISyhtYmVkdGxzX2VjcF9tdWxhZGQoZ3JwLCBSLCAmb25lLCBSLCAmb25lLCBDKSk7CisKK2NsZWFudXA6CisgICAgbWJlZHRsc19tcGlfZnJlZSgmb25lKTsKKworICAgIHJldHVybiByZXQ7Cit9CisKKy8qCisgKiBSZWFkIGFuZCBwcm9jZXNzIHNlY29uZCByb3VuZCBtZXNzYWdlIChDOiA3LjQuMi41LCBTOiA3LjQuMi42KQorICovCitpbnQgbWJlZHRsc19lY2pwYWtlX3JlYWRfcm91bmRfdHdvKG1iZWR0bHNfZWNqcGFrZV9jb250ZXh0ICpjdHgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgKmJ1ZiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IGxlbikKK3sKKyAgICBpbnQgcmV0ID0gTUJFRFRMU19FUlJfRVJST1JfQ09SUlVQVElPTl9ERVRFQ1RFRDsKKyAgICBjb25zdCB1bnNpZ25lZCBjaGFyICpwID0gYnVmOworICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgKmVuZCA9IGJ1ZiArIGxlbjsKKyAgICBtYmVkdGxzX2VjcF9ncm91cCBncnA7CisgICAgbWJlZHRsc19lY3BfcG9pbnQgRzsgICAgLyogQzogR0IsIFM6IEdBICovCisKKyAgICBtYmVkdGxzX2VjcF9ncm91cF9pbml0KCZncnApOworICAgIG1iZWR0bHNfZWNwX3BvaW50X2luaXQoJkcpOworCisgICAgLyoKKyAgICAgKiBTZXJ2ZXI6IEdBID0gWDMgICsgWDQgICsgWDEgICAgICAoNy40LjIuNi4xKQorICAgICAqIENsaWVudDogR0IgPSBYMSAgKyBYMiAgKyBYMyAgICAgICg3LjQuMi41LjEpCisgICAgICogVW5pZmllZDogRyA9IFhtMSArIFhtMiArIFhwMQorICAgICAqIFdlIG5lZWQgdGhhdCBiZWZvcmUgcGFyc2luZyBpbiBvcmRlciB0byBjaGVjayBYcCBhcyB3ZSByZWFkIGl0CisgICAgICovCisgICAgTUJFRFRMU19NUElfQ0hLKGVjanBha2VfZWNwX2FkZDMoJmN0eC0+Z3JwLCAmRywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmY3R4LT5YbTEsICZjdHgtPlhtMiwgJmN0eC0+WHAxKSk7CisKKyAgICAvKgorICAgICAqIHN0cnVjdCB7CisgICAgICogICAgIEVDUGFyYW1ldGVycyBjdXJ2ZV9wYXJhbXM7ICAgLy8gb25seSBjbGllbnQgcmVhZGluZyBzZXJ2ZXIgbXNnCisgICAgICogICAgIEVDSlBBS0VLZXlLUCBlY2pwYWtlX2tleV9rcDsKKyAgICAgKiB9IENsaWVudC9TZXJ2ZXJFQ0pQQUtFUGFyYW1zOworICAgICAqLworICAgIGlmIChjdHgtPnJvbGUgPT0gTUJFRFRMU19FQ0pQQUtFX0NMSUVOVCkgeworICAgICAgICBNQkVEVExTX01QSV9DSEsobWJlZHRsc19lY3BfdGxzX3JlYWRfZ3JvdXAoJmdycCwgJnAsIGxlbikpOworICAgICAgICBpZiAoZ3JwLmlkICE9IGN0eC0+Z3JwLmlkKSB7CisgICAgICAgICAgICByZXQgPSBNQkVEVExTX0VSUl9FQ1BfRkVBVFVSRV9VTkFWQUlMQUJMRTsKKyAgICAgICAgICAgIGdvdG8gY2xlYW51cDsKKyAgICAgICAgfQorICAgIH0KKworICAgIE1CRURUTFNfTVBJX0NISyhlY2pwYWtlX2trcF9yZWFkKGN0eC0+bWRfdHlwZSwgJmN0eC0+Z3JwLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGN0eC0+cG9pbnRfZm9ybWF0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZHLCAmY3R4LT5YcCwgSURfUEVFUiwgJnAsIGVuZCkpOworCisgICAgaWYgKHAgIT0gZW5kKSB7CisgICAgICAgIHJldCA9IE1CRURUTFNfRVJSX0VDUF9CQURfSU5QVVRfREFUQTsKKyAgICAgICAgZ290byBjbGVhbnVwOworICAgIH0KKworY2xlYW51cDoKKyAgICBtYmVkdGxzX2VjcF9ncm91cF9mcmVlKCZncnApOworICAgIG1iZWR0bHNfZWNwX3BvaW50X2ZyZWUoJkcpOworCisgICAgcmV0dXJuIHJldDsKK30KKworLyoKKyAqIENvbXB1dGUgUiA9ICsvLSBYICogUyBtb2QgTiwgdGFraW5nIGNhcmUgbm90IHRvIGxlYWsgUworICovCitzdGF0aWMgaW50IGVjanBha2VfbXVsX3NlY3JldChtYmVkdGxzX21waSAqUiwgaW50IHNpZ24sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBtYmVkdGxzX21waSAqWCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IG1iZWR0bHNfbXBpICpTLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbWJlZHRsc19tcGkgKk4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgKCpmX3JuZykodm9pZCAqLCB1bnNpZ25lZCBjaGFyICosIHNpemVfdCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2b2lkICpwX3JuZykKK3sKKyAgICBpbnQgcmV0ID0gTUJFRFRMU19FUlJfRVJST1JfQ09SUlVQVElPTl9ERVRFQ1RFRDsKKyAgICBtYmVkdGxzX21waSBiOyAvKiBCbGluZGluZyB2YWx1ZSwgdGhlbiBzICsgTiAqIGJsaW5kaW5nICovCisKKyAgICBtYmVkdGxzX21waV9pbml0KCZiKTsKKworICAgIC8qIGIgPSBzICsgcm5kLTEyOC1iaXQgKiBOICovCisgICAgTUJFRFRMU19NUElfQ0hLKG1iZWR0bHNfbXBpX2ZpbGxfcmFuZG9tKCZiLCAxNiwgZl9ybmcsIHBfcm5nKSk7CisgICAgTUJFRFRMU19NUElfQ0hLKG1iZWR0bHNfbXBpX211bF9tcGkoJmIsICZiLCBOKSk7CisgICAgTUJFRFRMU19NUElfQ0hLKG1iZWR0bHNfbXBpX2FkZF9tcGkoJmIsICZiLCBTKSk7CisKKyAgICAvKiBSID0gc2lnbiAqIFggKiBiIG1vZCBOICovCisgICAgTUJFRFRMU19NUElfQ0hLKG1iZWR0bHNfbXBpX211bF9tcGkoUiwgWCwgJmIpKTsKKyAgICBSLT5zICo9IHNpZ247CisgICAgTUJFRFRMU19NUElfQ0hLKG1iZWR0bHNfbXBpX21vZF9tcGkoUiwgUiwgTikpOworCitjbGVhbnVwOgorICAgIG1iZWR0bHNfbXBpX2ZyZWUoJmIpOworCisgICAgcmV0dXJuIHJldDsKK30KKworLyoKKyAqIEdlbmVyYXRlIGFuZCB3cml0ZSB0aGUgc2Vjb25kIHJvdW5kIG1lc3NhZ2UgKFM6IDcuNC4yLjUsIEM6IDcuNC4yLjYpCisgKi8KK2ludCBtYmVkdGxzX2VjanBha2Vfd3JpdGVfcm91bmRfdHdvKG1iZWR0bHNfZWNqcGFrZV9jb250ZXh0ICpjdHgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBjaGFyICpidWYsIHNpemVfdCBsZW4sIHNpemVfdCAqb2xlbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCAoKmZfcm5nKSh2b2lkICosIHVuc2lnbmVkIGNoYXIgKiwgc2l6ZV90KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZvaWQgKnBfcm5nKQoreworICAgIGludCByZXQgPSBNQkVEVExTX0VSUl9FUlJPUl9DT1JSVVBUSU9OX0RFVEVDVEVEOworICAgIG1iZWR0bHNfZWNwX3BvaW50IEc7ICAgIC8qIEM6IEdBLCBTOiBHQiAqLworICAgIG1iZWR0bHNfZWNwX3BvaW50IFhtOyAgIC8qIEM6IFhjLCBTOiBYcyAqLworICAgIG1iZWR0bHNfbXBpIHhtOyAgICAgICAgIC8qIEM6IHhjLCBTOiB4cyAqLworICAgIHVuc2lnbmVkIGNoYXIgKnAgPSBidWY7CisgICAgY29uc3QgdW5zaWduZWQgY2hhciAqZW5kID0gYnVmICsgbGVuOworICAgIHNpemVfdCBlY19sZW47CisKKyAgICBtYmVkdGxzX2VjcF9wb2ludF9pbml0KCZHKTsKKyAgICBtYmVkdGxzX2VjcF9wb2ludF9pbml0KCZYbSk7CisgICAgbWJlZHRsc19tcGlfaW5pdCgmeG0pOworCisgICAgLyoKKyAgICAgKiBGaXJzdCBnZW5lcmF0ZSBwcml2YXRlL3B1YmxpYyBrZXkgcGFpciAoUzogNy40LjIuNS4xLCBDOiA3LjQuMi42LjEpCisgICAgICoKKyAgICAgKiBDbGllbnQ6ICBHQSA9IFgxICArIFgzICArIFg0ICB8IHhzID0geDIgICogcyB8IFhjID0geGMgKiBHQQorICAgICAqIFNlcnZlcjogIEdCID0gWDMgICsgWDEgICsgWDIgIHwgeHMgPSB4NCAgKiBzIHwgWHMgPSB4cyAqIEdCCisgICAgICogVW5pZmllZDogRyAgPSBYbTEgKyBYcDEgKyBYcDIgfCB4bSA9IHhtMiAqIHMgfCBYbSA9IHhtICogRworICAgICAqLworICAgIE1CRURUTFNfTVBJX0NISyhlY2pwYWtlX2VjcF9hZGQzKCZjdHgtPmdycCwgJkcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJmN0eC0+WHAxLCAmY3R4LT5YcDIsICZjdHgtPlhtMSkpOworICAgIE1CRURUTFNfTVBJX0NISyhlY2pwYWtlX211bF9zZWNyZXQoJnhtLCAxLCAmY3R4LT54bTIsICZjdHgtPnMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmY3R4LT5ncnAuTiwgZl9ybmcsIHBfcm5nKSk7CisgICAgTUJFRFRMU19NUElfQ0hLKG1iZWR0bHNfZWNwX211bCgmY3R4LT5ncnAsICZYbSwgJnhtLCAmRywgZl9ybmcsIHBfcm5nKSk7CisKKyAgICAvKgorICAgICAqIE5vdyB3cml0ZSB0aGluZ3Mgb3V0CisgICAgICoKKyAgICAgKiBzdHJ1Y3QgeworICAgICAqICAgICBFQ1BhcmFtZXRlcnMgY3VydmVfcGFyYW1zOyAgIC8vIG9ubHkgc2VydmVyIHdyaXRpbmcgaXRzIG1lc3NhZ2UKKyAgICAgKiAgICAgRUNKUEFLRUtleUtQIGVjanBha2Vfa2V5X2twOworICAgICAqIH0gQ2xpZW50L1NlcnZlckVDSlBBS0VQYXJhbXM7CisgICAgICovCisgICAgaWYgKGN0eC0+cm9sZSA9PSBNQkVEVExTX0VDSlBBS0VfU0VSVkVSKSB7CisgICAgICAgIGlmIChlbmQgPCBwKSB7CisgICAgICAgICAgICByZXQgPSBNQkVEVExTX0VSUl9FQ1BfQlVGRkVSX1RPT19TTUFMTDsKKyAgICAgICAgICAgIGdvdG8gY2xlYW51cDsKKyAgICAgICAgfQorICAgICAgICBNQkVEVExTX01QSV9DSEsobWJlZHRsc19lY3BfdGxzX3dyaXRlX2dyb3VwKCZjdHgtPmdycCwgJmVjX2xlbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwLCAoc2l6ZV90KSAoZW5kIC0gcCkpKTsKKyAgICAgICAgcCArPSBlY19sZW47CisgICAgfQorCisgICAgaWYgKGVuZCA8IHApIHsKKyAgICAgICAgcmV0ID0gTUJFRFRMU19FUlJfRUNQX0JVRkZFUl9UT09fU01BTEw7CisgICAgICAgIGdvdG8gY2xlYW51cDsKKyAgICB9CisgICAgTUJFRFRMU19NUElfQ0hLKG1iZWR0bHNfZWNwX3Rsc193cml0ZV9wb2ludCgmY3R4LT5ncnAsICZYbSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGN0eC0+cG9pbnRfZm9ybWF0LCAmZWNfbGVuLCBwLCAoc2l6ZV90KSAoZW5kIC0gcCkpKTsKKyAgICBwICs9IGVjX2xlbjsKKworICAgIE1CRURUTFNfTVBJX0NISyhlY2pwYWtlX3prcF93cml0ZShjdHgtPm1kX3R5cGUsICZjdHgtPmdycCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3R4LT5wb2ludF9mb3JtYXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZHLCAmeG0sICZYbSwgSURfTUlORSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJnAsIGVuZCwgZl9ybmcsIHBfcm5nKSk7CisKKyAgICAqb2xlbiA9IChzaXplX3QpIChwIC0gYnVmKTsKKworY2xlYW51cDoKKyAgICBtYmVkdGxzX2VjcF9wb2ludF9mcmVlKCZHKTsKKyAgICBtYmVkdGxzX2VjcF9wb2ludF9mcmVlKCZYbSk7CisgICAgbWJlZHRsc19tcGlfZnJlZSgmeG0pOworCisgICAgcmV0dXJuIHJldDsKK30KKworLyoKKyAqIERlcml2ZSBQTVMgKDcuNC4yLjcgLyA3LjQuMi44KQorICovCitzdGF0aWMgaW50IG1iZWR0bHNfZWNqcGFrZV9kZXJpdmVfayhtYmVkdGxzX2VjanBha2VfY29udGV4dCAqY3R4LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWJlZHRsc19lY3BfcG9pbnQgKkssCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgKCpmX3JuZykodm9pZCAqLCB1bnNpZ25lZCBjaGFyICosIHNpemVfdCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2b2lkICpwX3JuZykKK3sKKyAgICBpbnQgcmV0ID0gTUJFRFRMU19FUlJfRVJST1JfQ09SUlVQVElPTl9ERVRFQ1RFRDsKKyAgICBtYmVkdGxzX21waSBtX3htMl9zLCBvbmU7CisKKyAgICBtYmVkdGxzX21waV9pbml0KCZtX3htMl9zKTsKKyAgICBtYmVkdGxzX21waV9pbml0KCZvbmUpOworCisgICAgTUJFRFRMU19NUElfQ0hLKG1iZWR0bHNfbXBpX2xzZXQoJm9uZSwgMSkpOworCisgICAgLyoKKyAgICAgKiBDbGllbnQ6ICBLID0gKCBYcyAtIFg0ICAqIHgyICAqIHMgKSAqIHgyCisgICAgICogU2VydmVyOiAgSyA9ICggWGMgLSBYMiAgKiB4NCAgKiBzICkgKiB4NAorICAgICAqIFVuaWZpZWQ6IEsgPSAoIFhwIC0gWHAyICogeG0yICogcyApICogeG0yCisgICAgICovCisgICAgTUJFRFRMU19NUElfQ0hLKGVjanBha2VfbXVsX3NlY3JldCgmbV94bTJfcywgLTEsICZjdHgtPnhtMiwgJmN0eC0+cywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZjdHgtPmdycC5OLCBmX3JuZywgcF9ybmcpKTsKKyAgICBNQkVEVExTX01QSV9DSEsobWJlZHRsc19lY3BfbXVsYWRkKCZjdHgtPmdycCwgSywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZvbmUsICZjdHgtPlhwLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJm1feG0yX3MsICZjdHgtPlhwMikpOworICAgIE1CRURUTFNfTVBJX0NISyhtYmVkdGxzX2VjcF9tdWwoJmN0eC0+Z3JwLCBLLCAmY3R4LT54bTIsIEssCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmX3JuZywgcF9ybmcpKTsKKworY2xlYW51cDoKKyAgICBtYmVkdGxzX21waV9mcmVlKCZtX3htMl9zKTsKKyAgICBtYmVkdGxzX21waV9mcmVlKCZvbmUpOworCisgICAgcmV0dXJuIHJldDsKK30KKworaW50IG1iZWR0bHNfZWNqcGFrZV9kZXJpdmVfc2VjcmV0KG1iZWR0bHNfZWNqcGFrZV9jb250ZXh0ICpjdHgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgY2hhciAqYnVmLCBzaXplX3QgbGVuLCBzaXplX3QgKm9sZW4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50ICgqZl9ybmcpKHZvaWQgKiwgdW5zaWduZWQgY2hhciAqLCBzaXplX3QpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZvaWQgKnBfcm5nKQoreworICAgIGludCByZXQgPSBNQkVEVExTX0VSUl9FUlJPUl9DT1JSVVBUSU9OX0RFVEVDVEVEOworICAgIG1iZWR0bHNfZWNwX3BvaW50IEs7CisgICAgdW5zaWduZWQgY2hhciBreFtNQkVEVExTX0VDUF9NQVhfQllURVNdOworICAgIHNpemVfdCB4X2J5dGVzOworCisgICAgKm9sZW4gPSBtYmVkdGxzX21kX2dldF9zaXplX2Zyb21fdHlwZShjdHgtPm1kX3R5cGUpOworICAgIGlmIChsZW4gPCAqb2xlbikgeworICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfRUNQX0JVRkZFUl9UT09fU01BTEw7CisgICAgfQorCisgICAgbWJlZHRsc19lY3BfcG9pbnRfaW5pdCgmSyk7CisKKyAgICByZXQgPSBtYmVkdGxzX2VjanBha2VfZGVyaXZlX2soY3R4LCAmSywgZl9ybmcsIHBfcm5nKTsKKyAgICBpZiAocmV0KSB7CisgICAgICAgIGdvdG8gY2xlYW51cDsKKyAgICB9CisKKyAgICAvKiBQTVMgPSBTSEEtMjU2KCBLLlggKSAqLworICAgIHhfYnl0ZXMgPSAoY3R4LT5ncnAucGJpdHMgKyA3KSAvIDg7CisgICAgTUJFRFRMU19NUElfQ0hLKG1iZWR0bHNfbXBpX3dyaXRlX2JpbmFyeSgmSy5YLCBreCwgeF9ieXRlcykpOworICAgIE1CRURUTFNfTVBJX0NISyhtYmVkdGxzX2VjanBha2VfY29tcHV0ZV9oYXNoKGN0eC0+bWRfdHlwZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBreCwgeF9ieXRlcywgYnVmKSk7CisKK2NsZWFudXA6CisgICAgbWJlZHRsc19lY3BfcG9pbnRfZnJlZSgmSyk7CisKKyAgICByZXR1cm4gcmV0OworfQorCitpbnQgbWJlZHRsc19lY2pwYWtlX3dyaXRlX3NoYXJlZF9rZXkobWJlZHRsc19lY2pwYWtlX2NvbnRleHQgKmN0eCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBjaGFyICpidWYsIHNpemVfdCBsZW4sIHNpemVfdCAqb2xlbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgKCpmX3JuZykodm9pZCAqLCB1bnNpZ25lZCBjaGFyICosIHNpemVfdCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdm9pZCAqcF9ybmcpCit7CisgICAgaW50IHJldCA9IE1CRURUTFNfRVJSX0VSUk9SX0NPUlJVUFRJT05fREVURUNURUQ7CisgICAgbWJlZHRsc19lY3BfcG9pbnQgSzsKKworICAgIG1iZWR0bHNfZWNwX3BvaW50X2luaXQoJkspOworCisgICAgcmV0ID0gbWJlZHRsc19lY2pwYWtlX2Rlcml2ZV9rKGN0eCwgJkssIGZfcm5nLCBwX3JuZyk7CisgICAgaWYgKHJldCkgeworICAgICAgICBnb3RvIGNsZWFudXA7CisgICAgfQorCisgICAgcmV0ID0gbWJlZHRsc19lY3BfcG9pbnRfd3JpdGVfYmluYXJ5KCZjdHgtPmdycCwgJkssIGN0eC0+cG9pbnRfZm9ybWF0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbGVuLCBidWYsIGxlbik7CisgICAgaWYgKHJldCAhPSAwKSB7CisgICAgICAgIGdvdG8gY2xlYW51cDsKKyAgICB9CisKK2NsZWFudXA6CisgICAgbWJlZHRsc19lY3BfcG9pbnRfZnJlZSgmSyk7CisKKyAgICByZXR1cm4gcmV0OworfQorCisjdW5kZWYgSURfTUlORQorI3VuZGVmIElEX1BFRVIKKworI2lmIGRlZmluZWQoTUJFRFRMU19TRUxGX1RFU1QpCisKKyNpbmNsdWRlICJtYmVkdGxzL3BsYXRmb3JtLmgiCisKKyNpZiAhZGVmaW5lZChNQkVEVExTX0VDUF9EUF9TRUNQMjU2UjFfRU5BQkxFRCkgfHwgXAorICAgICFkZWZpbmVkKFBTQV9XQU5UX0FMR19TSEFfMjU2KQoraW50IG1iZWR0bHNfZWNqcGFrZV9zZWxmX3Rlc3QoaW50IHZlcmJvc2UpCit7CisgICAgKHZvaWQpIHZlcmJvc2U7CisgICAgcmV0dXJuIDA7Cit9CisjZWxzZQorCitzdGF0aWMgY29uc3QgdW5zaWduZWQgY2hhciBlY2pwYWtlX3Rlc3RfcGFzc3dvcmRbXSA9IHsKKyAgICAweDc0LCAweDY4LCAweDcyLCAweDY1LCAweDYxLCAweDY0LCAweDZhLCAweDcwLCAweDYxLCAweDZiLCAweDY1LCAweDc0LAorICAgIDB4NjUsIDB4NzMsIDB4NzQKK307CisKK3N0YXRpYyBjb25zdCB1bnNpZ25lZCBjaGFyIGVjanBha2VfdGVzdF94MVtdID0geworICAgIDB4MDEsIDB4MDIsIDB4MDMsIDB4MDQsIDB4MDUsIDB4MDYsIDB4MDcsIDB4MDgsIDB4MDksIDB4MGEsIDB4MGIsIDB4MGMsCisgICAgMHgwZCwgMHgwZSwgMHgwZiwgMHgxMCwgMHgxMSwgMHgxMiwgMHgxMywgMHgxNCwgMHgxNSwgMHgxNiwgMHgxNywgMHgxOCwKKyAgICAweDE5LCAweDFhLCAweDFiLCAweDFjLCAweDFkLCAweDFlLCAweDFmLCAweDIxCit9OworCitzdGF0aWMgY29uc3QgdW5zaWduZWQgY2hhciBlY2pwYWtlX3Rlc3RfeDJbXSA9IHsKKyAgICAweDYxLCAweDYyLCAweDYzLCAweDY0LCAweDY1LCAweDY2LCAweDY3LCAweDY4LCAweDY5LCAweDZhLCAweDZiLCAweDZjLAorICAgIDB4NmQsIDB4NmUsIDB4NmYsIDB4NzAsIDB4NzEsIDB4NzIsIDB4NzMsIDB4NzQsIDB4NzUsIDB4NzYsIDB4NzcsIDB4NzgsCisgICAgMHg3OSwgMHg3YSwgMHg3YiwgMHg3YywgMHg3ZCwgMHg3ZSwgMHg3ZiwgMHg4MQorfTsKKworc3RhdGljIGNvbnN0IHVuc2lnbmVkIGNoYXIgZWNqcGFrZV90ZXN0X3gzW10gPSB7CisgICAgMHg2MSwgMHg2MiwgMHg2MywgMHg2NCwgMHg2NSwgMHg2NiwgMHg2NywgMHg2OCwgMHg2OSwgMHg2YSwgMHg2YiwgMHg2YywKKyAgICAweDZkLCAweDZlLCAweDZmLCAweDcwLCAweDcxLCAweDcyLCAweDczLCAweDc0LCAweDc1LCAweDc2LCAweDc3LCAweDc4LAorICAgIDB4NzksIDB4N2EsIDB4N2IsIDB4N2MsIDB4N2QsIDB4N2UsIDB4N2YsIDB4ODEKK307CisKK3N0YXRpYyBjb25zdCB1bnNpZ25lZCBjaGFyIGVjanBha2VfdGVzdF94NFtdID0geworICAgIDB4YzEsIDB4YzIsIDB4YzMsIDB4YzQsIDB4YzUsIDB4YzYsIDB4YzcsIDB4YzgsIDB4YzksIDB4Y2EsIDB4Y2IsIDB4Y2MsCisgICAgMHhjZCwgMHhjZSwgMHhjZiwgMHhkMCwgMHhkMSwgMHhkMiwgMHhkMywgMHhkNCwgMHhkNSwgMHhkNiwgMHhkNywgMHhkOCwKKyAgICAweGQ5LCAweGRhLCAweGRiLCAweGRjLCAweGRkLCAweGRlLCAweGRmLCAweGUxCit9OworCitzdGF0aWMgY29uc3QgdW5zaWduZWQgY2hhciBlY2pwYWtlX3Rlc3RfY2xpX29uZVtdID0geworICAgIDB4NDEsIDB4MDQsIDB4YWMsIDB4Y2YsIDB4MDEsIDB4MDYsIDB4ZWYsIDB4ODUsIDB4OGYsIDB4YTIsIDB4ZDksIDB4MTksCisgICAgMHgzMywgMHgxMywgMHg0NiwgMHg4MCwgMHg1YSwgMHg3OCwgMHhiNSwgMHg4YiwgMHhiYSwgMHhkMCwgMHhiOCwgMHg0NCwKKyAgICAweGU1LCAweGM3LCAweDg5LCAweDI4LCAweDc5LCAweDE0LCAweDYxLCAweDg3LCAweGRkLCAweDI2LCAweDY2LCAweGFkLAorICAgIDB4YTcsIDB4ODEsIDB4YmIsIDB4N2YsIDB4MTEsIDB4MTMsIDB4NzIsIDB4MjUsIDB4MWEsIDB4ODksIDB4MTAsIDB4NjIsCisgICAgMHgxZiwgMHg2MywgMHg0ZCwgMHhmMSwgMHgyOCwgMHhhYywgMHg0OCwgMHhlMywgMHg4MSwgMHhmZCwgMHg2ZSwgMHhmOSwKKyAgICAweDA2LCAweDA3LCAweDMxLCAweGY2LCAweDk0LCAweGE0LCAweDQxLCAweDA0LCAweDFkLCAweGQwLCAweGJkLCAweDVkLAorICAgIDB4NDUsIDB4NjYsIDB4YzksIDB4YmUsIDB4ZDksIDB4Y2UsIDB4N2QsIDB4ZTcsIDB4MDEsIDB4YjUsIDB4ZTgsIDB4MmUsCisgICAgMHgwOCwgMHhlOCwgMHg0YiwgMHg3MywgMHgwNCwgMHg2NiwgMHgwMSwgMHg4YSwgMHhiOSwgMHgwMywgMHhjNywgMHg5ZSwKKyAgICAweGI5LCAweDgyLCAweDE3LCAweDIyLCAweDM2LCAweGMwLCAweGMxLCAweDcyLCAweDhhLCAweGU0LCAweGJmLCAweDczLAorICAgIDB4NjEsIDB4MGQsIDB4MzQsIDB4ZGUsIDB4NDQsIDB4MjQsIDB4NmUsIDB4ZjMsIDB4ZDksIDB4YzAsIDB4NWEsIDB4MjIsCisgICAgMHgzNiwgMHhmYiwgMHg2NiwgMHhhNiwgMHg1OCwgMHgzZCwgMHg3NCwgMHg0OSwgMHgzMCwgMHg4YiwgMHhhYiwgMHhjZSwKKyAgICAweDIwLCAweDcyLCAweGZlLCAweDE2LCAweDY2LCAweDI5LCAweDkyLCAweGU5LCAweDIzLCAweDVjLCAweDI1LCAweDAwLAorICAgIDB4MmYsIDB4MTEsIDB4YjEsIDB4NTAsIDB4ODcsIDB4YjgsIDB4MjcsIDB4MzgsIDB4ZTAsIDB4M2MsIDB4OTQsIDB4NWIsCisgICAgMHhmNywgMHhhMiwgMHg5OSwgMHg1ZCwgMHhkYSwgMHgxZSwgMHg5OCwgMHgzNCwgMHg1OCwgMHg0MSwgMHgwNCwgMHg3ZSwKKyAgICAweGE2LCAweGUzLCAweGE0LCAweDQ4LCAweDcwLCAweDM3LCAweGE5LCAweGUwLCAweGRiLCAweGQ3LCAweDkyLCAweDYyLAorICAgIDB4YjIsIDB4Y2MsIDB4MjcsIDB4M2UsIDB4NzcsIDB4OTksIDB4MzAsIDB4ZmMsIDB4MTgsIDB4NDAsIDB4OWEsIDB4YzUsCisgICAgMHgzNiwgMHgxYywgMHg1ZiwgMHhlNiwgMHg2OSwgMHhkNywgMHgwMiwgMHhlMSwgMHg0NywgMHg3OSwgMHgwYSwgMHhlYiwKKyAgICAweDRjLCAweGU3LCAweGZkLCAweDY1LCAweDc1LCAweGFiLCAweDBmLCAweDZjLCAweDdmLCAweGQxLCAweGMzLCAweDM1LAorICAgIDB4OTMsIDB4OWEsIDB4YTgsIDB4NjMsIDB4YmEsIDB4MzcsIDB4ZWMsIDB4OTEsIDB4YjcsIDB4ZTMsIDB4MmIsIDB4YjAsCisgICAgMHgxMywgMHhiYiwgMHgyYiwgMHg0MSwgMHgwNCwgMHhhNCwgMHg5NSwgMHg1OCwgMHhkMywgMHgyZSwgMHhkMSwgMHhlYiwKKyAgICAweGZjLCAweDE4LCAweDE2LCAweGFmLCAweDRmLCAweGYwLCAweDliLCAweDU1LCAweGZjLCAweGI0LCAweGNhLCAweDQ3LAorICAgIDB4YjIsIDB4YTAsIDB4MmQsIDB4MWUsIDB4N2MsIDB4YWYsIDB4MTEsIDB4NzksIDB4ZWEsIDB4M2YsIDB4ZTEsIDB4MzksCisgICAgMHg1YiwgMHgyMiwgMHhiOCwgMHg2MSwgMHg5NiwgMHg0MCwgMHgxNiwgMHhmYSwgMHhiYSwgMHhmNywgMHgyYywgMHg5NywKKyAgICAweDU2LCAweDk1LCAweGQ5LCAweDNkLCAweDRkLCAweGYwLCAweGU1LCAweDE5LCAweDdmLCAweGU5LCAweGYwLCAweDQwLAorICAgIDB4NjMsIDB4NGUsIDB4ZDUsIDB4OTcsIDB4NjQsIDB4OTMsIDB4NzcsIDB4ODcsIDB4YmUsIDB4MjAsIDB4YmMsIDB4NGQsCisgICAgMHhlZSwgMHhiYiwgMHhmOSwgMHhiOCwgMHhkNiwgMHgwYSwgMHgzMywgMHg1ZiwgMHgwNCwgMHg2YywgMHhhMywgMHhhYSwKKyAgICAweDk0LCAweDFlLCAweDQ1LCAweDg2LCAweDRjLCAweDdjLCAweGFkLCAweGVmLCAweDljLCAweGY3LCAweDViLCAweDNkLAorICAgIDB4OGIsIDB4MDEsIDB4MGUsIDB4NDQsIDB4M2UsIDB4ZjAKK307CisKK3N0YXRpYyBjb25zdCB1bnNpZ25lZCBjaGFyIGVjanBha2VfdGVzdF9zcnZfb25lW10gPSB7CisgICAgMHg0MSwgMHgwNCwgMHg3ZSwgMHhhNiwgMHhlMywgMHhhNCwgMHg0OCwgMHg3MCwgMHgzNywgMHhhOSwgMHhlMCwgMHhkYiwKKyAgICAweGQ3LCAweDkyLCAweDYyLCAweGIyLCAweGNjLCAweDI3LCAweDNlLCAweDc3LCAweDk5LCAweDMwLCAweGZjLCAweDE4LAorICAgIDB4NDAsIDB4OWEsIDB4YzUsIDB4MzYsIDB4MWMsIDB4NWYsIDB4ZTYsIDB4NjksIDB4ZDcsIDB4MDIsIDB4ZTEsIDB4NDcsCisgICAgMHg3OSwgMHgwYSwgMHhlYiwgMHg0YywgMHhlNywgMHhmZCwgMHg2NSwgMHg3NSwgMHhhYiwgMHgwZiwgMHg2YywgMHg3ZiwKKyAgICAweGQxLCAweGMzLCAweDM1LCAweDkzLCAweDlhLCAweGE4LCAweDYzLCAweGJhLCAweDM3LCAweGVjLCAweDkxLCAweGI3LAorICAgIDB4ZTMsIDB4MmIsIDB4YjAsIDB4MTMsIDB4YmIsIDB4MmIsIDB4NDEsIDB4MDQsIDB4MDksIDB4ZjgsIDB4NWIsIDB4M2QsCisgICAgMHgyMCwgMHhlYiwgMHhkNywgMHg4OCwgMHg1YywgMHhlNCwgMHg2NCwgMHhjMCwgMHg4ZCwgMHgwNSwgMHg2ZCwgMHg2NCwKKyAgICAweDI4LCAweGZlLCAweDRkLCAweGQ5LCAweDI4LCAweDdhLCAweGEzLCAweDY1LCAweGYxLCAweDMxLCAweGY0LCAweDM2LAorICAgIDB4MGYsIDB4ZjMsIDB4ODYsIDB4ZDgsIDB4NDYsIDB4ODksIDB4OGIsIDB4YzQsIDB4YjQsIDB4MTUsIDB4ODMsIDB4YzIsCisgICAgMHhhNSwgMHgxOSwgMHg3ZiwgMHg2NSwgMHhkNywgMHg4NywgMHg0MiwgMHg3NCwgMHg2YywgMHgxMiwgMHhhNSwgMHhlYywKKyAgICAweDBhLCAweDRmLCAweGZlLCAweDJmLCAweDI3LCAweDBhLCAweDc1LCAweDBhLCAweDFkLCAweDhmLCAweGI1LCAweDE2LAorICAgIDB4MjAsIDB4OTMsIDB4NGQsIDB4NzQsIDB4ZWIsIDB4NDMsIDB4ZTUsIDB4NGQsIDB4ZjQsIDB4MjQsIDB4ZmQsIDB4OTYsCisgICAgMHgzMCwgMHg2YywgMHgwMSwgMHgxNywgMHhiZiwgMHgxMywgMHgxYSwgMHhmYSwgMHhiZiwgMHg5MCwgMHhhOSwgMHhkMywKKyAgICAweDNkLCAweDExLCAweDk4LCAweGQ5LCAweDA1LCAweDE5LCAweDM3LCAweDM1LCAweDE0LCAweDQxLCAweDA0LCAweDE5LAorICAgIDB4MGEsIDB4MDcsIDB4NzAsIDB4MGYsIDB4ZmEsIDB4NGIsIDB4ZTYsIDB4YWUsIDB4MWQsIDB4NzksIDB4ZWUsIDB4MGYsCisgICAgMHgwNiwgMHhhZSwgMHhiNSwgMHg0NCwgMHhjZCwgMHg1YSwgMHhkZCwgMHhhYSwgMHhiZSwgMHhkZiwgMHg3MCwgMHhmOCwKKyAgICAweDYyLCAweDMzLCAweDIxLCAweDMzLCAweDJjLCAweDU0LCAweGYzLCAweDU1LCAweGYwLCAweGZiLCAweGZlLCAweGM3LAorICAgIDB4ODMsIDB4ZWQsIDB4MzUsIDB4OWUsIDB4NWQsIDB4MGIsIDB4ZjcsIDB4MzcsIDB4N2EsIDB4MGYsIDB4YzQsIDB4ZWEsCisgICAgMHg3YSwgMHhjZSwgMHg0NywgMHgzYywgMHg5YywgMHgxMSwgMHgyYiwgMHg0MSwgMHhjYywgMHhkNCwgMHgxYSwgMHhjNSwKKyAgICAweDZhLCAweDU2LCAweDEyLCAweDQxLCAweDA0LCAweDM2LCAweDBhLCAweDFjLCAweGVhLCAweDMzLCAweGZjLCAweGU2LAorICAgIDB4NDEsIDB4MTUsIDB4NjQsIDB4NTgsIDB4ZTAsIDB4YTQsIDB4ZWEsIDB4YzIsIDB4MTksIDB4ZTksIDB4NjgsIDB4MzEsCisgICAgMHhlNiwgMHhhZSwgMHhiYywgMHg4OCwgMHhiMywgMHhmMywgMHg3NSwgMHgyZiwgMHg5MywgMHhhMCwgMHgyOCwgMHgxZCwKKyAgICAweDFiLCAweGYxLCAweGZiLCAweDEwLCAweDYwLCAweDUxLCAweGRiLCAweDk2LCAweDk0LCAweGE4LCAweGQ2LCAweGU4LAorICAgIDB4NjIsIDB4YTUsIDB4ZWYsIDB4MTMsIDB4MjQsIDB4YTMsIDB4ZDksIDB4ZTIsIDB4NzgsIDB4OTQsIDB4ZjEsIDB4ZWUsCisgICAgMHg0ZiwgMHg3YywgMHg1OSwgMHgxOSwgMHg5OSwgMHg2NSwgMHhhOCwgMHhkZCwgMHg0YSwgMHgyMCwgMHg5MSwgMHg4NCwKKyAgICAweDdkLCAweDJkLCAweDIyLCAweGRmLCAweDNlLCAweGU1LCAweDVmLCAweGFhLCAweDJhLCAweDNmLCAweGIzLCAweDNmLAorICAgIDB4ZDIsIDB4ZDEsIDB4ZTAsIDB4NTUsIDB4YTAsIDB4N2EsIDB4N2MsIDB4NjEsIDB4ZWMsIDB4ZmIsIDB4OGQsIDB4ODAsCisgICAgMHhlYywgMHgwMCwgMHhjMiwgMHhjOSwgMHhlYiwgMHgxMgorfTsKKworc3RhdGljIGNvbnN0IHVuc2lnbmVkIGNoYXIgZWNqcGFrZV90ZXN0X3Nydl90d29bXSA9IHsKKyAgICAweDAzLCAweDAwLCAweDE3LCAweDQxLCAweDA0LCAweDBmLCAweGIyLCAweDJiLCAweDFkLCAweDVkLCAweDExLCAweDIzLAorICAgIDB4ZTAsIDB4ZWYsIDB4OWYsIDB4ZWIsIDB4OWQsIDB4OGEsIDB4MmUsIDB4NTksIDB4MGEsIDB4MWYsIDB4NGQsIDB4N2MsCisgICAgMHhlZCwgMHgyYywgMHgyYiwgMHgwNiwgMHg1OCwgMHg2ZSwgMHg4ZiwgMHgyYSwgMHgxNiwgMHhkNCwgMHhlYiwgMHgyZiwKKyAgICAweGRhLCAweDQzLCAweDI4LCAweGEyLCAweDBiLCAweDA3LCAweGQ4LCAweGZkLCAweDY2LCAweDc2LCAweDU0LCAweGNhLAorICAgIDB4MTgsIDB4YzUsIDB4NGUsIDB4MzIsIDB4YTMsIDB4MzMsIDB4YTAsIDB4ODQsIDB4NTQsIDB4NTEsIDB4ZTksIDB4MjYsCisgICAgMHhlZSwgMHg4OCwgMHgwNCwgMHhmZCwgMHg3YSwgMHhmMCwgMHhhYSwgMHhhNywgMHhhNiwgMHg0MSwgMHgwNCwgMHg1NSwKKyAgICAweDE2LCAweGVhLCAweDNlLCAweDU0LCAweGEwLCAweGQ1LCAweGQ4LCAweGIyLCAweGNlLCAweDc4LCAweDZiLCAweDM4LAorICAgIDB4ZDMsIDB4ODMsIDB4MzcsIDB4MDAsIDB4MjksIDB4YTUsIDB4ZGIsIDB4ZTQsIDB4NDUsIDB4OWMsIDB4OWQsIDB4ZDYsCisgICAgMHgwMSwgMHhiNCwgMHgwOCwgMHhhMiwgMHg0YSwgMHhlNiwgMHg0NiwgMHg1YywgMHg4YSwgMHhjOSwgMHgwNSwgMHhiOSwKKyAgICAweGViLCAweDAzLCAweGI1LCAweGQzLCAweDY5LCAweDFjLCAweDEzLCAweDllLCAweGY4LCAweDNmLCAweDFjLCAweGQ0LAorICAgIDB4MjAsIDB4MGYsIDB4NmMsIDB4OWMsIDB4ZDQsIDB4ZWMsIDB4MzksIDB4MjIsIDB4MTgsIDB4YTUsIDB4OWUsIDB4ZDIsCisgICAgMHg0MywgMHhkMywgMHhjOCwgMHgyMCwgMHhmZiwgMHg3MiwgMHg0YSwgMHg5YSwgMHg3MCwgMHhiOCwgMHg4YywgMHhiOCwKKyAgICAweDZmLCAweDIwLCAweGI0LCAweDM0LCAweGM2LCAweDg2LCAweDVhLCAweGExLCAweGNkLCAweDc5LCAweDA2LCAweGRkLAorICAgIDB4N2MsIDB4OWIsIDB4Y2UsIDB4MzUsIDB4MjUsIDB4ZjUsIDB4MDgsIDB4MjcsIDB4NmYsIDB4MjYsIDB4ODMsIDB4NmMKK307CisKK3N0YXRpYyBjb25zdCB1bnNpZ25lZCBjaGFyIGVjanBha2VfdGVzdF9jbGlfdHdvW10gPSB7CisgICAgMHg0MSwgMHgwNCwgMHg2OSwgMHhkNSwgMHg0ZSwgMHhlOCwgMHg1ZSwgMHg5MCwgMHhjZSwgMHgzZiwgMHgxMiwgMHg0NiwKKyAgICAweDc0LCAweDJkLCAweGU1LCAweDA3LCAweGU5LCAweDM5LCAweGU4LCAweDFkLCAweDFkLCAweGMxLCAweGM1LCAweGNiLAorICAgIDB4OTgsIDB4OGIsIDB4NTgsIDB4YzMsIDB4MTAsIDB4YzksIDB4ZmQsIDB4ZDksIDB4NTIsIDB4NGQsIDB4OTMsIDB4NzIsCisgICAgMHgwYiwgMHg0NSwgMHg1NCwgMHgxYywgMHg4MywgMHhlZSwgMHg4OCwgMHg0MSwgMHgxOSwgMHgxZCwgMHhhNywgMHhjZSwKKyAgICAweGQ4LCAweDZlLCAweDMzLCAweDEyLCAweGQ0LCAweDM2LCAweDIzLCAweGMxLCAweGQ2LCAweDNlLCAweDc0LCAweDk4LAorICAgIDB4OWEsIDB4YmEsIDB4NGEsIDB4ZmYsIDB4ZDEsIDB4ZWUsIDB4NDEsIDB4MDQsIDB4MDcsIDB4N2UsIDB4OGMsIDB4MzEsCisgICAgMHhlMiwgMHgwZSwgMHg2YiwgMHhlZCwgMHhiNywgMHg2MCwgMHhjMSwgMHgzNSwgMHg5MywgMHhlNiwgMHg5ZiwgMHgxNSwKKyAgICAweGJlLCAweDg1LCAweGMyLCAweDdkLCAweDY4LCAweGNkLCAweDA5LCAweGNjLCAweGI4LCAweGM0LCAweDE4LCAweDM2LAorICAgIDB4MDgsIDB4OTEsIDB4N2MsIDB4NWMsIDB4M2QsIDB4NDAsIDB4OWYsIDB4YWMsIDB4MzksIDB4ZmUsIDB4ZmUsIDB4ZTgsCisgICAgMHgyZiwgMHg3MiwgMHg5MiwgMHhkMywgMHg2ZiwgMHgwZCwgMHgyMywgMHhlMCwgMHg1NSwgMHg5MSwgMHgzZiwgMHg0NSwKKyAgICAweGE1LCAweDJiLCAweDg1LCAweGRkLCAweDhhLCAweDIwLCAweDUyLCAweGU5LCAweGUxLCAweDI5LCAweGJiLCAweDRkLAorICAgIDB4MjAsIDB4MGYsIDB4MDEsIDB4MWYsIDB4MTksIDB4NDgsIDB4MzUsIDB4MzUsIDB4YTYsIDB4ZTgsIDB4OWEsIDB4NTgsCisgICAgMHgwYywgMHg5YiwgMHgwMCwgMHgwMywgMHhiYSwgMHhmMiwgMHgxNCwgMHg2MiwgMHhlYywgMHhlOSwgMHgxYSwgMHg4MiwKKyAgICAweGNjLCAweDM4LCAweGRiLCAweGRjLCAweGFlLCAweDYwLCAweGQ5LCAweGM1LCAweDRjCit9OworCitzdGF0aWMgY29uc3QgdW5zaWduZWQgY2hhciBlY2pwYWtlX3Rlc3Rfc2hhcmVkX2tleVtdID0geworICAgIDB4MDQsIDB4MDEsIDB4YWIsIDB4ZTksIDB4ZjIsIDB4YzcsIDB4M2EsIDB4OTksIDB4MTQsIDB4Y2IsIDB4MWYsIDB4ODAsCisgICAgMHhmYiwgMHg5ZCwgMHhkYiwgMHg3ZSwgMHgwMCwgMHgxMiwgMHhhOCwgMHg5YywgMHgyZiwgMHgzOSwgMHgyNywgMHg3OSwKKyAgICAweGY5LCAweDY0LCAweDQwLCAweDE0LCAweDc1LCAweGVhLCAweGMxLCAweDMxLCAweDI4LCAweDQzLCAweDhmLCAweGUxLAorICAgIDB4MTIsIDB4NDEsIDB4ZDYsIDB4YzEsIDB4ZTUsIDB4NWYsIDB4N2IsIDB4ODAsIDB4ODgsIDB4OTQsIDB4YzksIDB4YzAsCisgICAgMHgyNywgMHhhMywgMHgzNCwgMHg0MSwgMHhmNSwgMHhjYiwgMHhhMSwgMHhmZSwgMHg2YywgMHhjNywgMHhlNiwgMHgxMiwKKyAgICAweDE3LCAweGMzLCAweGRlLCAweDI3LCAweGI0LAorfTsKKworc3RhdGljIGNvbnN0IHVuc2lnbmVkIGNoYXIgZWNqcGFrZV90ZXN0X3Btc1tdID0geworICAgIDB4ZjMsIDB4ZDQsIDB4N2YsIDB4NTksIDB4OTgsIDB4NDQsIDB4ZGIsIDB4OTIsIDB4YTUsIDB4NjksIDB4YmIsIDB4ZTcsCisgICAgMHg5OCwgMHgxZSwgMHgzOSwgMHhkOSwgMHgzMSwgMHhmZCwgMHg3NCwgMHgzYiwgMHhmMiwgMHgyZSwgMHg5OCwgMHhmOSwKKyAgICAweGI0LCAweDM4LCAweGY3LCAweDE5LCAweGQzLCAweGM0LCAweGYzLCAweDUxCit9OworCisvKgorICogUFJORyBmb3IgdGVzdCAtICEhIUlOU0VDVVJFIE5FVkVSIFVTRSBJTiBQUk9EVUNUSU9OISEhCisgKgorICogVGhpcyBpcyB0aGUgbGluZWFyIGNvbmdydWVudGlhbCBnZW5lcmF0b3IgZnJvbSBudW1lcmljYWwgcmVjaXBlcywKKyAqIGV4Y2VwdCB3ZSBvbmx5IHVzZSB0aGUgbG93IGJ5dGUgYXMgdGhlIG91dHB1dC4gU2VlCisgKiBodHRwczovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9MaW5lYXJfY29uZ3J1ZW50aWFsX2dlbmVyYXRvciNQYXJhbWV0ZXJzX2luX2NvbW1vbl91c2UKKyAqLworc3RhdGljIGludCBzZWxmX3Rlc3Rfcm5nKHZvaWQgKmN0eCwgdW5zaWduZWQgY2hhciAqb3V0LCBzaXplX3QgbGVuKQoreworICAgIHN0YXRpYyB1aW50MzJfdCBzdGF0ZSA9IDQyOworCisgICAgKHZvaWQpIGN0eDsKKworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbGVuOyBpKyspIHsKKyAgICAgICAgc3RhdGUgPSBzdGF0ZSAqIDE2NjQ1MjV1ICsgMTAxMzkwNDIyM3U7CisgICAgICAgIG91dFtpXSA9ICh1bnNpZ25lZCBjaGFyKSBzdGF0ZTsKKyAgICB9CisKKyAgICByZXR1cm4gMDsKK30KKworLyogTG9hZCBteSBwcml2YXRlIGtleXMgYW5kIGdlbmVyYXRlIHRoZSBjb3JyZXNwb25kaW5nIHB1YmxpYyBrZXlzICovCitzdGF0aWMgaW50IGVjanBha2VfdGVzdF9sb2FkKG1iZWR0bHNfZWNqcGFrZV9jb250ZXh0ICpjdHgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgKnhtMSwgc2l6ZV90IGxlbjEsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgKnhtMiwgc2l6ZV90IGxlbjIpCit7CisgICAgaW50IHJldCA9IE1CRURUTFNfRVJSX0VSUk9SX0NPUlJVUFRJT05fREVURUNURUQ7CisKKyAgICBNQkVEVExTX01QSV9DSEsobWJlZHRsc19tcGlfcmVhZF9iaW5hcnkoJmN0eC0+eG0xLCB4bTEsIGxlbjEpKTsKKyAgICBNQkVEVExTX01QSV9DSEsobWJlZHRsc19tcGlfcmVhZF9iaW5hcnkoJmN0eC0+eG0yLCB4bTIsIGxlbjIpKTsKKyAgICBNQkVEVExTX01QSV9DSEsobWJlZHRsc19lY3BfbXVsKCZjdHgtPmdycCwgJmN0eC0+WG0xLCAmY3R4LT54bTEsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmY3R4LT5ncnAuRywgc2VsZl90ZXN0X3JuZywgTlVMTCkpOworICAgIE1CRURUTFNfTVBJX0NISyhtYmVkdGxzX2VjcF9tdWwoJmN0eC0+Z3JwLCAmY3R4LT5YbTIsICZjdHgtPnhtMiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZjdHgtPmdycC5HLCBzZWxmX3Rlc3Rfcm5nLCBOVUxMKSk7CisKK2NsZWFudXA6CisgICAgcmV0dXJuIHJldDsKK30KKworLyogRm9yIHRlc3RzIHdlIGRvbid0IG5lZWQgYSBzZWN1cmUgUk5HOworICogdXNlIHRoZSBMR0MgZnJvbSBOdW1lcmljYWwgUmVjaXBlcyBmb3Igc2ltcGxpY2l0eSAqLworc3RhdGljIGludCBlY2pwYWtlX2xnYyh2b2lkICpwLCB1bnNpZ25lZCBjaGFyICpvdXQsIHNpemVfdCBsZW4pCit7CisgICAgc3RhdGljIHVpbnQzMl90IHggPSA0MjsKKyAgICAodm9pZCkgcDsKKworICAgIHdoaWxlIChsZW4gPiAwKSB7CisgICAgICAgIHNpemVfdCB1c2VfbGVuID0gbGVuID4gNCA/IDQgOiBsZW47CisgICAgICAgIHggPSAxNjY0NTI1ICogeCArIDEwMTM5MDQyMjM7CisgICAgICAgIG1lbWNweShvdXQsICZ4LCB1c2VfbGVuKTsKKyAgICAgICAgb3V0ICs9IHVzZV9sZW47CisgICAgICAgIGxlbiAtPSB1c2VfbGVuOworICAgIH0KKworICAgIHJldHVybiAwOworfQorCisjZGVmaW5lIFRFU1RfQVNTRVJUKHgpICAgIFwKKyAgICBkbyB7ICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgIGlmICh4KSAgICAgICAgICAgICBcCisgICAgICAgIHJldCA9IDA7ICAgICAgICBcCisgICAgICAgIGVsc2UgICAgICAgICAgICAgICAgXAorICAgICAgICB7ICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgICAgIHJldCA9IDE7ICAgICAgICBcCisgICAgICAgICAgICBnb3RvIGNsZWFudXA7ICAgXAorICAgICAgICB9ICAgICAgICAgICAgICAgICAgIFwKKyAgICB9IHdoaWxlICgwKQorCisvKgorICogQ2hlY2t1cCByb3V0aW5lCisgKi8KK2ludCBtYmVkdGxzX2VjanBha2Vfc2VsZl90ZXN0KGludCB2ZXJib3NlKQoreworICAgIGludCByZXQgPSBNQkVEVExTX0VSUl9FUlJPUl9DT1JSVVBUSU9OX0RFVEVDVEVEOworICAgIG1iZWR0bHNfZWNqcGFrZV9jb250ZXh0IGNsaTsKKyAgICBtYmVkdGxzX2VjanBha2VfY29udGV4dCBzcnY7CisgICAgdW5zaWduZWQgY2hhciBidWZbNTEyXSwgcG1zWzMyXTsKKyAgICBzaXplX3QgbGVuLCBwbXNsZW47CisKKyAgICBtYmVkdGxzX2VjanBha2VfaW5pdCgmY2xpKTsKKyAgICBtYmVkdGxzX2VjanBha2VfaW5pdCgmc3J2KTsKKworICAgIGlmICh2ZXJib3NlICE9IDApIHsKKyAgICAgICAgbWJlZHRsc19wcmludGYoIiAgRUNKUEFLRSB0ZXN0ICMwIChzZXR1cCk6ICIpOworICAgIH0KKworICAgIFRFU1RfQVNTRVJUKG1iZWR0bHNfZWNqcGFrZV9zZXR1cCgmY2xpLCBNQkVEVExTX0VDSlBBS0VfQ0xJRU5ULAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNQkVEVExTX01EX1NIQTI1NiwgTUJFRFRMU19FQ1BfRFBfU0VDUDI1NlIxLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlY2pwYWtlX3Rlc3RfcGFzc3dvcmQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVvZihlY2pwYWtlX3Rlc3RfcGFzc3dvcmQpKSA9PSAwKTsKKworICAgIFRFU1RfQVNTRVJUKG1iZWR0bHNfZWNqcGFrZV9zZXR1cCgmc3J2LCBNQkVEVExTX0VDSlBBS0VfU0VSVkVSLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNQkVEVExTX01EX1NIQTI1NiwgTUJFRFRMU19FQ1BfRFBfU0VDUDI1NlIxLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlY2pwYWtlX3Rlc3RfcGFzc3dvcmQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVvZihlY2pwYWtlX3Rlc3RfcGFzc3dvcmQpKSA9PSAwKTsKKworICAgIGlmICh2ZXJib3NlICE9IDApIHsKKyAgICAgICAgbWJlZHRsc19wcmludGYoInBhc3NlZFxuIik7CisgICAgfQorCisgICAgaWYgKHZlcmJvc2UgIT0gMCkgeworICAgICAgICBtYmVkdGxzX3ByaW50ZigiICBFQ0pQQUtFIHRlc3QgIzEgKHJhbmRvbSBoYW5kc2hha2UpOiAiKTsKKyAgICB9CisKKyAgICBURVNUX0FTU0VSVChtYmVkdGxzX2VjanBha2Vfd3JpdGVfcm91bmRfb25lKCZjbGksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBidWYsIHNpemVvZihidWYpLCAmbGVuLCBlY2pwYWtlX2xnYywgTlVMTCkgPT0gMCk7CisKKyAgICBURVNUX0FTU0VSVChtYmVkdGxzX2VjanBha2VfcmVhZF9yb3VuZF9vbmUoJnNydiwgYnVmLCBsZW4pID09IDApOworCisgICAgVEVTVF9BU1NFUlQobWJlZHRsc19lY2pwYWtlX3dyaXRlX3JvdW5kX29uZSgmc3J2LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnVmLCBzaXplb2YoYnVmKSwgJmxlbiwgZWNqcGFrZV9sZ2MsIE5VTEwpID09IDApOworCisgICAgVEVTVF9BU1NFUlQobWJlZHRsc19lY2pwYWtlX3JlYWRfcm91bmRfb25lKCZjbGksIGJ1ZiwgbGVuKSA9PSAwKTsKKworICAgIFRFU1RfQVNTRVJUKG1iZWR0bHNfZWNqcGFrZV93cml0ZV9yb3VuZF90d28oJnNydiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ1Ziwgc2l6ZW9mKGJ1ZiksICZsZW4sIGVjanBha2VfbGdjLCBOVUxMKSA9PSAwKTsKKworICAgIFRFU1RfQVNTRVJUKG1iZWR0bHNfZWNqcGFrZV9yZWFkX3JvdW5kX3R3bygmY2xpLCBidWYsIGxlbikgPT0gMCk7CisKKyAgICBURVNUX0FTU0VSVChtYmVkdGxzX2VjanBha2VfZGVyaXZlX3NlY3JldCgmY2xpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBtcywgc2l6ZW9mKHBtcyksICZwbXNsZW4sIGVjanBha2VfbGdjLCBOVUxMKSA9PSAwKTsKKworICAgIFRFU1RfQVNTRVJUKG1iZWR0bHNfZWNqcGFrZV93cml0ZV9yb3VuZF90d28oJmNsaSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ1Ziwgc2l6ZW9mKGJ1ZiksICZsZW4sIGVjanBha2VfbGdjLCBOVUxMKSA9PSAwKTsKKworICAgIFRFU1RfQVNTRVJUKG1iZWR0bHNfZWNqcGFrZV9yZWFkX3JvdW5kX3R3bygmc3J2LCBidWYsIGxlbikgPT0gMCk7CisKKyAgICBURVNUX0FTU0VSVChtYmVkdGxzX2VjanBha2VfZGVyaXZlX3NlY3JldCgmc3J2LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ1Ziwgc2l6ZW9mKGJ1ZiksICZsZW4sIGVjanBha2VfbGdjLCBOVUxMKSA9PSAwKTsKKworICAgIFRFU1RfQVNTRVJUKGxlbiA9PSBwbXNsZW4pOworICAgIFRFU1RfQVNTRVJUKG1lbWNtcChidWYsIHBtcywgbGVuKSA9PSAwKTsKKworICAgIGlmICh2ZXJib3NlICE9IDApIHsKKyAgICAgICAgbWJlZHRsc19wcmludGYoInBhc3NlZFxuIik7CisgICAgfQorCisgICAgLyogJ3JlZmVyZW5jZSBoYW5kc2hha2UnIHRlc3RzIGNhbiBvbmx5IGJlIHJ1biBhZ2FpbnN0IGltcGxlbWVudGF0aW9ucworICAgICAqIGZvciB3aGljaCB3ZSBoYXZlIDEwMCUgY29udHJvbCBvdmVyIGhvdyB0aGUgcmFuZG9tIGVwaGVtZXJhbCBrZXlzCisgICAgICogYXJlIGdlbmVyYXRlZC4gVGhpcyBpcyBvbmx5IHRoZSBjYXNlIGZvciB0aGUgaW50ZXJuYWwgTWJlZCBUTFMKKyAgICAgKiBpbXBsZW1lbnRhdGlvbiwgc28gdGhlc2UgdGVzdHMgYXJlIHNraXBwZWQgaW4gY2FzZSB0aGUgaW50ZXJuYWwKKyAgICAgKiBpbXBsZW1lbnRhdGlvbiBpcyBzd2FwcGVkIG91dCBmb3IgYW4gYWx0ZXJuYXRpdmUgb25lLiAqLworICAgIGlmICh2ZXJib3NlICE9IDApIHsKKyAgICAgICAgbWJlZHRsc19wcmludGYoIiAgRUNKUEFLRSB0ZXN0ICMyIChyZWZlcmVuY2UgaGFuZHNoYWtlKTogIik7CisgICAgfQorCisgICAgLyogU2ltdWxhdGUgZ2VuZXJhdGlvbiBvZiByb3VuZCBvbmUgKi8KKyAgICBNQkVEVExTX01QSV9DSEsoZWNqcGFrZV90ZXN0X2xvYWQoJmNsaSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWNqcGFrZV90ZXN0X3gxLCBzaXplb2YoZWNqcGFrZV90ZXN0X3gxKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWNqcGFrZV90ZXN0X3gyLCBzaXplb2YoZWNqcGFrZV90ZXN0X3gyKSkpOworCisgICAgTUJFRFRMU19NUElfQ0hLKGVjanBha2VfdGVzdF9sb2FkKCZzcnYsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVjanBha2VfdGVzdF94Mywgc2l6ZW9mKGVjanBha2VfdGVzdF94MyksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVjanBha2VfdGVzdF94NCwgc2l6ZW9mKGVjanBha2VfdGVzdF94NCkpKTsKKworICAgIC8qIFJlYWQgcm91bmQgb25lICovCisgICAgVEVTVF9BU1NFUlQobWJlZHRsc19lY2pwYWtlX3JlYWRfcm91bmRfb25lKCZzcnYsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVjanBha2VfdGVzdF9jbGlfb25lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplb2YoZWNqcGFrZV90ZXN0X2NsaV9vbmUpKSA9PSAwKTsKKworICAgIFRFU1RfQVNTRVJUKG1iZWR0bHNfZWNqcGFrZV9yZWFkX3JvdW5kX29uZSgmY2xpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlY2pwYWtlX3Rlc3Rfc3J2X29uZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZW9mKGVjanBha2VfdGVzdF9zcnZfb25lKSkgPT0gMCk7CisKKyAgICAvKiBTa2lwIGdlbmVyYXRpb24gb2Ygcm91bmQgdHdvLCByZWFkIHJvdW5kIHR3byAqLworICAgIFRFU1RfQVNTRVJUKG1iZWR0bHNfZWNqcGFrZV9yZWFkX3JvdW5kX3R3bygmY2xpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlY2pwYWtlX3Rlc3Rfc3J2X3R3bywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZW9mKGVjanBha2VfdGVzdF9zcnZfdHdvKSkgPT0gMCk7CisKKyAgICBURVNUX0FTU0VSVChtYmVkdGxzX2VjanBha2VfcmVhZF9yb3VuZF90d28oJnNydiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWNqcGFrZV90ZXN0X2NsaV90d28sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVvZihlY2pwYWtlX3Rlc3RfY2xpX3R3bykpID09IDApOworCisgICAgLyogU2VydmVyIGRlcml2ZXMgUE1TICovCisgICAgVEVTVF9BU1NFUlQobWJlZHRsc19lY2pwYWtlX2Rlcml2ZV9zZWNyZXQoJnNydiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBidWYsIHNpemVvZihidWYpLCAmbGVuLCBlY2pwYWtlX2xnYywgTlVMTCkgPT0gMCk7CisKKyAgICBURVNUX0FTU0VSVChsZW4gPT0gc2l6ZW9mKGVjanBha2VfdGVzdF9wbXMpKTsKKyAgICBURVNUX0FTU0VSVChtZW1jbXAoYnVmLCBlY2pwYWtlX3Rlc3RfcG1zLCBsZW4pID09IDApOworCisgICAgLyogU2VydmVyIGRlcml2ZXMgSyBhcyB1bnNpZ25lZCBiaW5hcnkgZGF0YSAqLworICAgIFRFU1RfQVNTRVJUKG1iZWR0bHNfZWNqcGFrZV93cml0ZV9zaGFyZWRfa2V5KCZzcnYsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnVmLCBzaXplb2YoYnVmKSwgJmxlbiwgZWNqcGFrZV9sZ2MsIE5VTEwpID09IDApOworCisgICAgVEVTVF9BU1NFUlQobGVuID09IHNpemVvZihlY2pwYWtlX3Rlc3Rfc2hhcmVkX2tleSkpOworICAgIFRFU1RfQVNTRVJUKG1lbWNtcChidWYsIGVjanBha2VfdGVzdF9zaGFyZWRfa2V5LCBsZW4pID09IDApOworCisgICAgbWVtc2V0KGJ1ZiwgMCwgbGVuKTsgICAvKiBBdm9pZCBpbnRlcmZlcmVuY2VzIHdpdGggbmV4dCBzdGVwICovCisKKyAgICAvKiBDbGllbnQgZGVyaXZlcyBQTVMgKi8KKyAgICBURVNUX0FTU0VSVChtYmVkdGxzX2VjanBha2VfZGVyaXZlX3NlY3JldCgmY2xpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ1Ziwgc2l6ZW9mKGJ1ZiksICZsZW4sIGVjanBha2VfbGdjLCBOVUxMKSA9PSAwKTsKKworICAgIFRFU1RfQVNTRVJUKGxlbiA9PSBzaXplb2YoZWNqcGFrZV90ZXN0X3BtcykpOworICAgIFRFU1RfQVNTRVJUKG1lbWNtcChidWYsIGVjanBha2VfdGVzdF9wbXMsIGxlbikgPT0gMCk7CisKKyAgICAvKiBDbGllbnQgZGVyaXZlcyBLIGFzIHVuc2lnbmVkIGJpbmFyeSBkYXRhICovCisgICAgVEVTVF9BU1NFUlQobWJlZHRsc19lY2pwYWtlX3dyaXRlX3NoYXJlZF9rZXkoJmNsaSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBidWYsIHNpemVvZihidWYpLCAmbGVuLCBlY2pwYWtlX2xnYywgTlVMTCkgPT0gMCk7CisKKyAgICBURVNUX0FTU0VSVChsZW4gPT0gc2l6ZW9mKGVjanBha2VfdGVzdF9zaGFyZWRfa2V5KSk7CisgICAgVEVTVF9BU1NFUlQobWVtY21wKGJ1ZiwgZWNqcGFrZV90ZXN0X3NoYXJlZF9rZXksIGxlbikgPT0gMCk7CisKKyAgICBpZiAodmVyYm9zZSAhPSAwKSB7CisgICAgICAgIG1iZWR0bHNfcHJpbnRmKCJwYXNzZWRcbiIpOworICAgIH0KKworY2xlYW51cDoKKyAgICBtYmVkdGxzX2VjanBha2VfZnJlZSgmY2xpKTsKKyAgICBtYmVkdGxzX2VjanBha2VfZnJlZSgmc3J2KTsKKworICAgIGlmIChyZXQgIT0gMCkgeworICAgICAgICBpZiAodmVyYm9zZSAhPSAwKSB7CisgICAgICAgICAgICBtYmVkdGxzX3ByaW50ZigiZmFpbGVkXG4iKTsKKyAgICAgICAgfQorCisgICAgICAgIHJldCA9IDE7CisgICAgfQorCisgICAgaWYgKHZlcmJvc2UgIT0gMCkgeworICAgICAgICBtYmVkdGxzX3ByaW50ZigiXG4iKTsKKyAgICB9CisKKyAgICByZXR1cm4gcmV0OworfQorCisjdW5kZWYgVEVTVF9BU1NFUlQKKworI2VuZGlmIC8qIE1CRURUTFNfRUNQX0RQX1NFQ1AyNTZSMV9FTkFCTEVEICYmIFBTQV9XQU5UX0FMR19TSEFfMjU2ICovCisKKyNlbmRpZiAvKiBNQkVEVExTX1NFTEZfVEVTVCAqLworCisjZW5kaWYgLyogTUJFRFRMU19FQ0pQQUtFX0MgKi8KZGlmZiAtLWdpdCBhL3RmLXBzYS1jcnlwdG8vZHJpdmVycy9idWlsdGluL3NyYy9lY3AuYyBiL3RmLXBzYS1jcnlwdG8vZHJpdmVycy9idWlsdGluL3NyYy9lY3AuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xZTZiNjliCi0tLSAvZGV2L251bGwKKysrIGIvdGYtcHNhLWNyeXB0by9kcml2ZXJzL2J1aWx0aW4vc3JjL2VjcC5jCkBAIC0wLDAgKzEsMzU1OCBAQAorLyoKKyAqICBFbGxpcHRpYyBjdXJ2ZXMgb3ZlciBHRihwKTogZ2VuZXJpYyBmdW5jdGlvbnMKKyAqCisgKiAgQ29weXJpZ2h0IFRoZSBNYmVkIFRMUyBDb250cmlidXRvcnMKKyAqICBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMCBPUiBHUEwtMi4wLW9yLWxhdGVyCisgKi8KKworLyoKKyAqIFJlZmVyZW5jZXM6CisgKgorICogU0VDMSBodHRwczovL3d3dy5zZWNnLm9yZy9zZWMxLXYyLnBkZgorICogR0VDQyA9IEd1aWRlIHRvIEVsbGlwdGljIEN1cnZlIENyeXB0b2dyYXBoeSAtIEhhbmtlcnNvbiwgTWVuZXplcywgVmFuc3RvbmUKKyAqIEZJUFMgMTg2LTMgaHR0cDovL2NzcmMubmlzdC5nb3YvcHVibGljYXRpb25zL2ZpcHMvZmlwczE4Ni0zL2ZpcHNfMTg2LTMucGRmCisgKiBSRkMgNDQ5MiBmb3IgdGhlIHJlbGF0ZWQgVExTIHN0cnVjdHVyZXMgYW5kIGNvbnN0YW50cworICogLSBodHRwczovL3d3dy5yZmMtZWRpdG9yLm9yZy9yZmMvcmZjNDQ5MgorICogUkZDIDc3NDggZm9yIHRoZSBDdXJ2ZTQ0OCBhbmQgQ3VydmUyNTUxOSBjdXJ2ZSBkZWZpbml0aW9ucworICogLSBodHRwczovL3d3dy5yZmMtZWRpdG9yLm9yZy9yZmMvcmZjNzc0OAorICoKKyAqIFtDdXJ2ZTI1NTE5XSBodHRwczovL2NyLnlwLnRvL2VjZGgvY3VydmUyNTUxOS0yMDA2MDIwOS5wZGYKKyAqCisgKiBbMl0gQ09ST04sIEplYW4tUydlYmFzdGllbi4gUmVzaXN0YW5jZSBhZ2FpbnN0IGRpZmZlcmVudGlhbCBwb3dlciBhbmFseXNpcworICogICAgIGZvciBlbGxpcHRpYyBjdXJ2ZSBjcnlwdG9zeXN0ZW1zLiBJbiA6IENyeXB0b2dyYXBoaWMgSGFyZHdhcmUgYW5kCisgKiAgICAgRW1iZWRkZWQgU3lzdGVtcy4gU3ByaW5nZXIgQmVybGluIEhlaWRlbGJlcmcsIDE5OTkuIHAuIDI5Mi0zMDIuCisgKiAgICAgPGh0dHA6Ly9saW5rLnNwcmluZ2VyLmNvbS9jaGFwdGVyLzEwLjEwMDcvMy01NDAtNDgwNTktNV8yNT4KKyAqCisgKiBbM10gSEVEQUJPVSwgTXVzdGFwaGEsIFBJTkVMLCBQaWVycmUsIGV0IEInRU4nRVRFQVUsIEx1Y2llbi4gQSBjb21iIG1ldGhvZCB0bworICogICAgIHJlbmRlciBFQ0MgcmVzaXN0YW50IGFnYWluc3QgU2lkZSBDaGFubmVsIEF0dGFja3MuIElBQ1IgQ3J5cHRvbG9neQorICogICAgIGVQcmludCBBcmNoaXZlLCAyMDA0LCB2b2wuIDIwMDQsIHAuIDM0Mi4KKyAqICAgICA8aHR0cDovL2VwcmludC5pYWNyLm9yZy8yMDA0LzM0Mi5wZGY+CisgKi8KKworI2luY2x1ZGUgImNvbW1vbi5oIgorCisjaWYgZGVmaW5lZChNQkVEVExTX0VDUF9MSUdIVCkKKworI2luY2x1ZGUgIm1iZWR0bHMvZWNwLmgiCisjaW5jbHVkZSAibWJlZHRscy90aHJlYWRpbmcuaCIKKyNpbmNsdWRlICJtYmVkdGxzL3BsYXRmb3JtX3V0aWwuaCIKKyNpbmNsdWRlICJtYmVkdGxzL2Vycm9yLmgiCisKKyNpbmNsdWRlICJibl9tdWwuaCIKKyNpbmNsdWRlICJlY3BfaW52YXNpdmUuaCIKKworI2luY2x1ZGUgPHN0cmluZy5oPgorCisjaW5jbHVkZSAibWJlZHRscy9wbGF0Zm9ybS5oIgorCisjaWYgZGVmaW5lZChNQkVEVExTX1NFTEZfVEVTVCkKKy8qCisgKiBDb3VudHMgb2YgcG9pbnQgYWRkaXRpb24gYW5kIGRvdWJsaW5nLCBhbmQgZmllbGQgbXVsdGlwbGljYXRpb25zLgorICogVXNlZCB0byB0ZXN0IHJlc2lzdGFuY2Ugb2YgcG9pbnQgbXVsdGlwbGljYXRpb24gdG8gc2ltcGxlIHRpbWluZyBhdHRhY2tzLgorICovCisjaWYgZGVmaW5lZChNQkVEVExTX0VDUF9DKQorc3RhdGljIHVuc2lnbmVkIGxvbmcgYWRkX2NvdW50LCBkYmxfY291bnQ7CisjZW5kaWYgLyogTUJFRFRMU19FQ1BfQyAqLworc3RhdGljIHVuc2lnbmVkIGxvbmcgbXVsX2NvdW50OworI2VuZGlmCisKKyNpZiBkZWZpbmVkKE1CRURUTFNfRUNQX1JFU1RBUlRBQkxFKQorLyoKKyAqIE1heGltdW0gbnVtYmVyIG9mICJiYXNpYyBvcGVyYXRpb25zIiB0byBiZSBkb25lIGluIGEgcm93LgorICoKKyAqIERlZmF1bHQgdmFsdWUgMCBtZWFucyB0aGF0IEVDQyBvcGVyYXRpb25zIHdpbGwgbm90IHlpZWxkLgorICogTm90ZSB0aGF0IHJlZ2FyZGxlc3Mgb2YgdGhlIHZhbHVlIG9mIGVjcF9tYXhfb3BzLCBhbHdheXMgYXQKKyAqIGxlYXN0IG9uZSBzdGVwIGlzIHBlcmZvcm1lZCBiZWZvcmUgeWllbGRpbmcuCisgKgorICogU2V0dGluZyBlY3BfbWF4X29wcz0xIGNhbiBiZSBzdWl0YWJsZSBmb3IgdGVzdGluZyBwdXJwb3NlcworICogYXMgaXQgd2lsbCBpbnRlcnJ1cHQgY29tcHV0YXRpb24gYXQgYWxsIHBvc3NpYmxlIHBvaW50cy4KKyAqLworc3RhdGljIHVuc2lnbmVkIGVjcF9tYXhfb3BzID0gMDsKKworLyoKKyAqIFNldCBlY3BfbWF4X29wcworICovCit2b2lkIG1iZWR0bHNfZWNwX3NldF9tYXhfb3BzKHVuc2lnbmVkIG1heF9vcHMpCit7CisgICAgZWNwX21heF9vcHMgPSBtYXhfb3BzOworfQorCisvKgorICogQ2hlY2sgaWYgcmVzdGFydCBpcyBlbmFibGVkCisgKi8KK2ludCBtYmVkdGxzX2VjcF9yZXN0YXJ0X2lzX2VuYWJsZWQodm9pZCkKK3sKKyAgICByZXR1cm4gZWNwX21heF9vcHMgIT0gMDsKK30KKworLyoKKyAqIFJlc3RhcnQgc3ViLWNvbnRleHQgZm9yIGVjcF9tdWxfY29tYigpCisgKi8KK3N0cnVjdCBtYmVkdGxzX2VjcF9yZXN0YXJ0X211bCB7CisgICAgbWJlZHRsc19lY3BfcG9pbnQgUjsgICAgLyogY3VycmVudCBpbnRlcm1lZGlhdGUgcmVzdWx0ICAgICAgICAgICAgICAgICAgKi8KKyAgICBzaXplX3QgaTsgICAgICAgICAgICAgICAvKiBjdXJyZW50IGluZGV4IGluIHZhcmlvdXMgbG9vcHMsIDAgb3V0c2lkZSAgICAqLworICAgIG1iZWR0bHNfZWNwX3BvaW50ICpUOyAgIC8qIHRhYmxlIGZvciBwcmVjb21wdXRlZCBwb2ludHMgICAgICAgICAgICAgICAgICovCisgICAgdW5zaWduZWQgY2hhciBUX3NpemU7ICAgLyogbnVtYmVyIG9mIHBvaW50cyBpbiB0YWJsZSBUICAgICAgICAgICAgICAgICAgKi8KKyAgICBlbnVtIHsgICAgICAgICAgICAgICAgICAvKiB3aGF0IHdlcmUgd2UgZG9pbmcgbGFzdCB0aW1lIHdlIHJldHVybmVkPyAgICAqLworICAgICAgICBlY3BfcnNtX2luaXQgPSAwLCAgICAgICAvKiBub3RoaW5nIHNvIGZhciwgZHVtbXkgaW5pdGlhbCBzdGF0ZSAgICAgICovCisgICAgICAgIGVjcF9yc21fcHJlX2RibCwgICAgICAgIC8qIHByZWNvbXB1dGUgMl5uIG11bHRpcGxlcyAgICAgICAgICAgICAgICAgKi8KKyAgICAgICAgZWNwX3JzbV9wcmVfbm9ybV9kYmwsICAgLyogbm9ybWFsaXplIHByZWNvbXB1dGVkIDJebiBtdWx0aXBsZXMgICAgICAqLworICAgICAgICBlY3BfcnNtX3ByZV9hZGQsICAgICAgICAvKiBwcmVjb21wdXRlIHJlbWFpbmluZyBwb2ludHMgYnkgYWRkaW5nICAgICovCisgICAgICAgIGVjcF9yc21fcHJlX25vcm1fYWRkLCAgIC8qIG5vcm1hbGl6ZSBhbGwgcHJlY29tcHV0ZWQgcG9pbnRzICAgICAgICAgKi8KKyAgICAgICAgZWNwX3JzbV9jb21iX2NvcmUsICAgICAgLyogZWNwX211bF9jb21iX2NvcmUoKSAgICAgICAgICAgICAgICAgICAgICAqLworICAgICAgICBlY3BfcnNtX2ZpbmFsX25vcm0sICAgICAvKiBkbyB0aGUgZmluYWwgbm9ybWFsaXphdGlvbiAgICAgICAgICAgICAgICovCisgICAgfSBzdGF0ZTsKK307CisKKy8qCisgKiBJbml0IHJlc3RhcnRfbXVsIHN1Yi1jb250ZXh0CisgKi8KK3N0YXRpYyB2b2lkIGVjcF9yZXN0YXJ0X3JzbV9pbml0KG1iZWR0bHNfZWNwX3Jlc3RhcnRfbXVsX2N0eCAqY3R4KQoreworICAgIG1iZWR0bHNfZWNwX3BvaW50X2luaXQoJmN0eC0+Uik7CisgICAgY3R4LT5pID0gMDsKKyAgICBjdHgtPlQgPSBOVUxMOworICAgIGN0eC0+VF9zaXplID0gMDsKKyAgICBjdHgtPnN0YXRlID0gZWNwX3JzbV9pbml0OworfQorCisvKgorICogRnJlZSB0aGUgY29tcG9uZW50cyBvZiBhIHJlc3RhcnRfbXVsIHN1Yi1jb250ZXh0CisgKi8KK3N0YXRpYyB2b2lkIGVjcF9yZXN0YXJ0X3JzbV9mcmVlKG1iZWR0bHNfZWNwX3Jlc3RhcnRfbXVsX2N0eCAqY3R4KQoreworICAgIHVuc2lnbmVkIGNoYXIgaTsKKworICAgIGlmIChjdHggPT0gTlVMTCkgeworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgbWJlZHRsc19lY3BfcG9pbnRfZnJlZSgmY3R4LT5SKTsKKworICAgIGlmIChjdHgtPlQgIT0gTlVMTCkgeworICAgICAgICBmb3IgKGkgPSAwOyBpIDwgY3R4LT5UX3NpemU7IGkrKykgeworICAgICAgICAgICAgbWJlZHRsc19lY3BfcG9pbnRfZnJlZShjdHgtPlQgKyBpKTsKKyAgICAgICAgfQorICAgICAgICBtYmVkdGxzX2ZyZWUoY3R4LT5UKTsKKyAgICB9CisKKyAgICBlY3BfcmVzdGFydF9yc21faW5pdChjdHgpOworfQorCisvKgorICogUmVzdGFydCBjb250ZXh0IGZvciBlY3BfbXVsYWRkKCkKKyAqLworc3RydWN0IG1iZWR0bHNfZWNwX3Jlc3RhcnRfbXVsYWRkIHsKKyAgICBtYmVkdGxzX2VjcF9wb2ludCBtUDsgICAgICAgLyogbVAgdmFsdWUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCisgICAgbWJlZHRsc19lY3BfcG9pbnQgUjsgICAgICAgIC8qIFIgaW50ZXJtZWRpYXRlIHJlc3VsdCAgICAgICAgICAgICAgICAqLworICAgIGVudW0geyAgICAgICAgICAgICAgICAgICAgICAvKiB3aGF0IHNob3VsZCB3ZSBkbyBuZXh0PyAgICAgICAgICAgICAgKi8KKyAgICAgICAgZWNwX3JzbWFfbXVsMSA9IDAsICAgICAgLyogZmlyc3QgbXVsdGlwbGljYXRpb24gICAgICAgICAgICAgICAgICovCisgICAgICAgIGVjcF9yc21hX211bDIsICAgICAgICAgIC8qIHNlY29uZCBtdWx0aXBsaWNhdGlvbiAgICAgICAgICAgICAgICAqLworICAgICAgICBlY3BfcnNtYV9hZGQsICAgICAgICAgICAvKiBhZGRpdGlvbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KKyAgICAgICAgZWNwX3JzbWFfbm9ybSwgICAgICAgICAgLyogbm9ybWFsaXphdGlvbiAgICAgICAgICAgICAgICAgICAgICAgICovCisgICAgfSBzdGF0ZTsKK307CisKKy8qCisgKiBJbml0IHJlc3RhcnRfbXVsYWRkIHN1Yi1jb250ZXh0CisgKi8KK3N0YXRpYyB2b2lkIGVjcF9yZXN0YXJ0X21hX2luaXQobWJlZHRsc19lY3BfcmVzdGFydF9tdWxhZGRfY3R4ICpjdHgpCit7CisgICAgbWJlZHRsc19lY3BfcG9pbnRfaW5pdCgmY3R4LT5tUCk7CisgICAgbWJlZHRsc19lY3BfcG9pbnRfaW5pdCgmY3R4LT5SKTsKKyAgICBjdHgtPnN0YXRlID0gZWNwX3JzbWFfbXVsMTsKK30KKworLyoKKyAqIEZyZWUgdGhlIGNvbXBvbmVudHMgb2YgYSByZXN0YXJ0X211bGFkZCBzdWItY29udGV4dAorICovCitzdGF0aWMgdm9pZCBlY3BfcmVzdGFydF9tYV9mcmVlKG1iZWR0bHNfZWNwX3Jlc3RhcnRfbXVsYWRkX2N0eCAqY3R4KQoreworICAgIGlmIChjdHggPT0gTlVMTCkgeworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgbWJlZHRsc19lY3BfcG9pbnRfZnJlZSgmY3R4LT5tUCk7CisgICAgbWJlZHRsc19lY3BfcG9pbnRfZnJlZSgmY3R4LT5SKTsKKworICAgIGVjcF9yZXN0YXJ0X21hX2luaXQoY3R4KTsKK30KKworLyoKKyAqIEluaXRpYWxpemUgYSByZXN0YXJ0IGNvbnRleHQKKyAqLwordm9pZCBtYmVkdGxzX2VjcF9yZXN0YXJ0X2luaXQobWJlZHRsc19lY3BfcmVzdGFydF9jdHggKmN0eCkKK3sKKyAgICBjdHgtPm9wc19kb25lID0gMDsKKyAgICBjdHgtPmRlcHRoID0gMDsKKyAgICBjdHgtPnJzbSA9IE5VTEw7CisgICAgY3R4LT5tYSA9IE5VTEw7Cit9CisKKy8qCisgKiBGcmVlIHRoZSBjb21wb25lbnRzIG9mIGEgcmVzdGFydCBjb250ZXh0CisgKi8KK3ZvaWQgbWJlZHRsc19lY3BfcmVzdGFydF9mcmVlKG1iZWR0bHNfZWNwX3Jlc3RhcnRfY3R4ICpjdHgpCit7CisgICAgaWYgKGN0eCA9PSBOVUxMKSB7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBlY3BfcmVzdGFydF9yc21fZnJlZShjdHgtPnJzbSk7CisgICAgbWJlZHRsc19mcmVlKGN0eC0+cnNtKTsKKworICAgIGVjcF9yZXN0YXJ0X21hX2ZyZWUoY3R4LT5tYSk7CisgICAgbWJlZHRsc19mcmVlKGN0eC0+bWEpOworCisgICAgbWJlZHRsc19lY3BfcmVzdGFydF9pbml0KGN0eCk7Cit9CisKKy8qCisgKiBDaGVjayBpZiB3ZSBjYW4gZG8gdGhlIG5leHQgc3RlcAorICovCitpbnQgbWJlZHRsc19lY3BfY2hlY2tfYnVkZ2V0KGNvbnN0IG1iZWR0bHNfZWNwX2dyb3VwICpncnAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1iZWR0bHNfZWNwX3Jlc3RhcnRfY3R4ICpyc19jdHgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIG9wcykKK3sKKyAgICBpZiAocnNfY3R4ICE9IE5VTEwgJiYgZWNwX21heF9vcHMgIT0gMCkgeworICAgICAgICAvKiBzY2FsZSBkZXBlbmRpbmcgb24gY3VydmUgc2l6ZTogdGhlIGNob3NlbiByZWZlcmVuY2UgaXMgMjU2LWJpdCwKKyAgICAgICAgICogYW5kIG11bHRpcGxpY2F0aW9uIGlzIHF1YWRyYXRpYy4gUm91bmQgdG8gdGhlIGNsb3Nlc3QgaW50ZWdlci4gKi8KKyAgICAgICAgaWYgKGdycC0+cGJpdHMgPj0gNTEyKSB7CisgICAgICAgICAgICBvcHMgKj0gNDsKKyAgICAgICAgfSBlbHNlIGlmIChncnAtPnBiaXRzID49IDM4NCkgeworICAgICAgICAgICAgb3BzICo9IDI7CisgICAgICAgIH0KKworICAgICAgICAvKiBBdm9pZCBpbmZpbml0ZSBsb29wczogYWx3YXlzIGFsbG93IGZpcnN0IHN0ZXAuCisgICAgICAgICAqIEJlY2F1c2Ugb2YgdGhhdCwgaG93ZXZlciwgaXQncyBub3QgZ2VuZXJhbGx5IHRydWUKKyAgICAgICAgICogdGhhdCBvcHNfZG9uZSA8PSBlY3BfbWF4X29wcywgc28gdGhlIGNoZWNrCisgICAgICAgICAqIG9wc19kb25lID4gZWNwX21heF9vcHMgYmVsb3cgaXMgbWFuZGF0b3J5LiAqLworICAgICAgICBpZiAoKHJzX2N0eC0+b3BzX2RvbmUgIT0gMCkgJiYKKyAgICAgICAgICAgIChyc19jdHgtPm9wc19kb25lID4gZWNwX21heF9vcHMgfHwKKyAgICAgICAgICAgICBvcHMgPiBlY3BfbWF4X29wcyAtIHJzX2N0eC0+b3BzX2RvbmUpKSB7CisgICAgICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfRUNQX0lOX1BST0dSRVNTOworICAgICAgICB9CisKKyAgICAgICAgLyogdXBkYXRlIHJ1bm5pbmcgY291bnQgKi8KKyAgICAgICAgcnNfY3R4LT5vcHNfZG9uZSArPSBvcHM7CisgICAgfQorCisgICAgcmV0dXJuIDA7Cit9CisKKy8qIENhbGwgdGhpcyB3aGVuIGVudGVyaW5nIGEgZnVuY3Rpb24gdGhhdCBuZWVkcyBpdHMgb3duIHN1Yi1jb250ZXh0ICovCisjZGVmaW5lIEVDUF9SU19FTlRFUihTVUIpICAgZG8geyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICAvKiByZXNldCBvcHMgY291bnQgZm9yIHRoaXMgY2FsbCBpZiB0b3AtbGV2ZWwgKi8gICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgaWYgKHJzX2N0eCAhPSBOVUxMICYmIHJzX2N0eC0+ZGVwdGgrKyA9PSAwKSAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgcnNfY3R4LT5vcHNfZG9uZSA9IDA7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgLyogc2V0IHVwIG91ciBvd24gc3ViLWNvbnRleHQgaWYgbmVlZGVkICovICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgIGlmIChtYmVkdGxzX2VjcF9yZXN0YXJ0X2lzX2VuYWJsZWQoKSAmJiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICAgICAgcnNfY3R4ICE9IE5VTEwgJiYgcnNfY3R4LT5TVUIgPT0gTlVMTCkgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgICAgIHJzX2N0eC0+U1VCID0gbWJlZHRsc19jYWxsb2MoMSwgc2l6ZW9mKCpyc19jdHgtPlNVQikpOyAgICAgIFwKKyAgICAgICAgICAgIGlmIChyc19jdHgtPlNVQiA9PSBOVUxMKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9FQ1BfQUxMT0NfRkFJTEVEOyAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgICAgICBlY3BfcmVzdGFydF8jIyBTVUIgIyNfaW5pdChyc19jdHgtPlNVQik7ICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgfSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCit9IHdoaWxlICgwKQorCisvKiBDYWxsIHRoaXMgd2hlbiBsZWF2aW5nIGEgZnVuY3Rpb24gdGhhdCBuZWVkcyBpdHMgb3duIHN1Yi1jb250ZXh0ICovCisjZGVmaW5lIEVDUF9SU19MRUFWRShTVUIpICAgZG8geyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICAvKiBjbGVhciBvdXIgc3ViLWNvbnRleHQgd2hlbiBub3QgaW4gcHJvZ3Jlc3MgKGRvbmUgb3IgZXJyb3IpICovICAgIFwKKyAgICAgICAgaWYgKHJzX2N0eCAhPSBOVUxMICYmIHJzX2N0eC0+U1VCICE9IE5VTEwgJiYgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgICAgICByZXQgIT0gTUJFRFRMU19FUlJfRUNQX0lOX1BST0dSRVNTKSAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICAgICAgZWNwX3Jlc3RhcnRfIyMgU1VCICMjX2ZyZWUocnNfY3R4LT5TVUIpOyAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgICAgICBtYmVkdGxzX2ZyZWUocnNfY3R4LT5TVUIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgICAgIHJzX2N0eC0+U1VCID0gTlVMTDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgIH0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICBpZiAocnNfY3R4ICE9IE5VTEwpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICByc19jdHgtPmRlcHRoLS07ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorfSB3aGlsZSAoMCkKKworI2Vsc2UgLyogTUJFRFRMU19FQ1BfUkVTVEFSVEFCTEUgKi8KKworI2RlZmluZSBFQ1BfUlNfRU5URVIoc3ViKSAgICAgKHZvaWQpIHJzX2N0eDsKKyNkZWZpbmUgRUNQX1JTX0xFQVZFKHN1YikgICAgICh2b2lkKSByc19jdHg7CisKKyNlbmRpZiAvKiBNQkVEVExTX0VDUF9SRVNUQVJUQUJMRSAqLworCisjaWYgZGVmaW5lZChNQkVEVExTX0VDUF9DKQorc3RhdGljIHZvaWQgbXBpX2luaXRfbWFueShtYmVkdGxzX21waSAqYXJyLCBzaXplX3Qgc2l6ZSkKK3sKKyAgICB3aGlsZSAoc2l6ZS0tKSB7CisgICAgICAgIG1iZWR0bHNfbXBpX2luaXQoYXJyKyspOworICAgIH0KK30KKworc3RhdGljIHZvaWQgbXBpX2ZyZWVfbWFueShtYmVkdGxzX21waSAqYXJyLCBzaXplX3Qgc2l6ZSkKK3sKKyAgICB3aGlsZSAoc2l6ZS0tKSB7CisgICAgICAgIG1iZWR0bHNfbXBpX2ZyZWUoYXJyKyspOworICAgIH0KK30KKyNlbmRpZiAvKiBNQkVEVExTX0VDUF9DICovCisKKy8qCisgKiBMaXN0IG9mIHN1cHBvcnRlZCBjdXJ2ZXM6CisgKiAgLSBpbnRlcm5hbCBJRAorICogIC0gVExTIE5hbWVkQ3VydmUgSUQgKFJGQyA0NDkyIHNlYy4gNS4xLjEsIFJGQyA3MDcxIHNlYy4gMiwgUkZDIDg0NDYgc2VjLiA0LjIuNykKKyAqICAtIHNpemUgaW4gYml0cworICogIC0gcmVhZGFibGUgbmFtZQorICoKKyAqIEN1cnZlcyBhcmUgbGlzdGVkIGluIG9yZGVyOiBsYXJnZXN0IGN1cnZlcyBmaXJzdCwgYW5kIGZvciBhIGdpdmVuIHNpemUsCisgKiBmYXN0ZXN0IGN1cnZlcyBmaXJzdC4KKyAqCisgKiBSZW1pbmRlcjogdXBkYXRlIHByb2ZpbGVzIGluIHg1MDlfY3J0LmMgYW5kIHNzbF90bHMuYyB3aGVuIGFkZGluZyBhIG5ldyBjdXJ2ZSEKKyAqLworc3RhdGljIGNvbnN0IG1iZWR0bHNfZWNwX2N1cnZlX2luZm8gZWNwX3N1cHBvcnRlZF9jdXJ2ZXNbXSA9Cit7CisjaWYgZGVmaW5lZChNQkVEVExTX0VDUF9EUF9TRUNQNTIxUjFfRU5BQkxFRCkKKyAgICB7IE1CRURUTFNfRUNQX0RQX1NFQ1A1MjFSMSwgICAgMjUsICAgICA1MjEsICAgICJzZWNwNTIxcjEiICAgICAgICAgfSwKKyNlbmRpZgorI2lmIGRlZmluZWQoTUJFRFRMU19FQ1BfRFBfQlA1MTJSMV9FTkFCTEVEKQorICAgIHsgTUJFRFRMU19FQ1BfRFBfQlA1MTJSMSwgICAgICAyOCwgICAgIDUxMiwgICAgImJyYWlucG9vbFA1MTJyMSIgICB9LAorI2VuZGlmCisjaWYgZGVmaW5lZChNQkVEVExTX0VDUF9EUF9TRUNQMzg0UjFfRU5BQkxFRCkKKyAgICB7IE1CRURUTFNfRUNQX0RQX1NFQ1AzODRSMSwgICAgMjQsICAgICAzODQsICAgICJzZWNwMzg0cjEiICAgICAgICAgfSwKKyNlbmRpZgorI2lmIGRlZmluZWQoTUJFRFRMU19FQ1BfRFBfQlAzODRSMV9FTkFCTEVEKQorICAgIHsgTUJFRFRMU19FQ1BfRFBfQlAzODRSMSwgICAgICAyNywgICAgIDM4NCwgICAgImJyYWlucG9vbFAzODRyMSIgICB9LAorI2VuZGlmCisjaWYgZGVmaW5lZChNQkVEVExTX0VDUF9EUF9TRUNQMjU2UjFfRU5BQkxFRCkKKyAgICB7IE1CRURUTFNfRUNQX0RQX1NFQ1AyNTZSMSwgICAgMjMsICAgICAyNTYsICAgICJzZWNwMjU2cjEiICAgICAgICAgfSwKKyNlbmRpZgorI2lmIGRlZmluZWQoTUJFRFRMU19FQ1BfRFBfU0VDUDI1NksxX0VOQUJMRUQpCisgICAgeyBNQkVEVExTX0VDUF9EUF9TRUNQMjU2SzEsICAgIDIyLCAgICAgMjU2LCAgICAic2VjcDI1NmsxIiAgICAgICAgIH0sCisjZW5kaWYKKyNpZiBkZWZpbmVkKE1CRURUTFNfRUNQX0RQX0JQMjU2UjFfRU5BQkxFRCkKKyAgICB7IE1CRURUTFNfRUNQX0RQX0JQMjU2UjEsICAgICAgMjYsICAgICAyNTYsICAgICJicmFpbnBvb2xQMjU2cjEiICAgfSwKKyNlbmRpZgorI2lmIGRlZmluZWQoTUJFRFRMU19FQ1BfRFBfU0VDUDIyNFIxX0VOQUJMRUQpCisgICAgeyBNQkVEVExTX0VDUF9EUF9TRUNQMjI0UjEsICAgIDIxLCAgICAgMjI0LCAgICAic2VjcDIyNHIxIiAgICAgICAgIH0sCisjZW5kaWYKKyNpZiBkZWZpbmVkKE1CRURUTFNfRUNQX0RQX1NFQ1AyMjRLMV9FTkFCTEVEKQorICAgIHsgTUJFRFRMU19FQ1BfRFBfU0VDUDIyNEsxLCAgICAyMCwgICAgIDIyNCwgICAgInNlY3AyMjRrMSIgICAgICAgICB9LAorI2VuZGlmCisjaWYgZGVmaW5lZChNQkVEVExTX0VDUF9EUF9TRUNQMTkyUjFfRU5BQkxFRCkKKyAgICB7IE1CRURUTFNfRUNQX0RQX1NFQ1AxOTJSMSwgICAgMTksICAgICAxOTIsICAgICJzZWNwMTkycjEiICAgICAgICAgfSwKKyNlbmRpZgorI2lmIGRlZmluZWQoTUJFRFRMU19FQ1BfRFBfU0VDUDE5MksxX0VOQUJMRUQpCisgICAgeyBNQkVEVExTX0VDUF9EUF9TRUNQMTkySzEsICAgIDE4LCAgICAgMTkyLCAgICAic2VjcDE5MmsxIiAgICAgICAgIH0sCisjZW5kaWYKKyNpZiBkZWZpbmVkKE1CRURUTFNfRUNQX0RQX0NVUlZFMjU1MTlfRU5BQkxFRCkKKyAgICB7IE1CRURUTFNfRUNQX0RQX0NVUlZFMjU1MTksICAgMjksICAgICAyNTYsICAgICJ4MjU1MTkiICAgICAgICAgICAgfSwKKyNlbmRpZgorI2lmIGRlZmluZWQoTUJFRFRMU19FQ1BfRFBfQ1VSVkU0NDhfRU5BQkxFRCkKKyAgICB7IE1CRURUTFNfRUNQX0RQX0NVUlZFNDQ4LCAgICAgMzAsICAgICA0NDgsICAgICJ4NDQ4IiAgICAgICAgICAgICAgfSwKKyNlbmRpZgorICAgIHsgTUJFRFRMU19FQ1BfRFBfTk9ORSwgICAgICAgICAgMCwgICAgIDAsICAgICAgTlVMTCAgICAgICAgICAgICAgICB9LAorfTsKKworI2RlZmluZSBFQ1BfTkJfQ1VSVkVTICAgc2l6ZW9mKGVjcF9zdXBwb3J0ZWRfY3VydmVzKSAvICAgIFwKKyAgICBzaXplb2YoZWNwX3N1cHBvcnRlZF9jdXJ2ZXNbMF0pCisKK3N0YXRpYyBtYmVkdGxzX2VjcF9ncm91cF9pZCBlY3Bfc3VwcG9ydGVkX2dycF9pZFtFQ1BfTkJfQ1VSVkVTXTsKKworLyoKKyAqIExpc3Qgb2Ygc3VwcG9ydGVkIGN1cnZlcyBhbmQgYXNzb2NpYXRlZCBpbmZvCisgKi8KK2NvbnN0IG1iZWR0bHNfZWNwX2N1cnZlX2luZm8gKm1iZWR0bHNfZWNwX2N1cnZlX2xpc3Qodm9pZCkKK3sKKyAgICByZXR1cm4gZWNwX3N1cHBvcnRlZF9jdXJ2ZXM7Cit9CisKKy8qCisgKiBMaXN0IG9mIHN1cHBvcnRlZCBjdXJ2ZXMsIGdyb3VwIElEIG9ubHkKKyAqLworY29uc3QgbWJlZHRsc19lY3BfZ3JvdXBfaWQgKm1iZWR0bHNfZWNwX2dycF9pZF9saXN0KHZvaWQpCit7CisgICAgc3RhdGljIGludCBpbml0X2RvbmUgPSAwOworCisgICAgaWYgKCFpbml0X2RvbmUpIHsKKyAgICAgICAgc2l6ZV90IGkgPSAwOworICAgICAgICBjb25zdCBtYmVkdGxzX2VjcF9jdXJ2ZV9pbmZvICpjdXJ2ZV9pbmZvOworCisgICAgICAgIGZvciAoY3VydmVfaW5mbyA9IG1iZWR0bHNfZWNwX2N1cnZlX2xpc3QoKTsKKyAgICAgICAgICAgICBjdXJ2ZV9pbmZvLT5ncnBfaWQgIT0gTUJFRFRMU19FQ1BfRFBfTk9ORTsKKyAgICAgICAgICAgICBjdXJ2ZV9pbmZvKyspIHsKKyAgICAgICAgICAgIGVjcF9zdXBwb3J0ZWRfZ3JwX2lkW2krK10gPSBjdXJ2ZV9pbmZvLT5ncnBfaWQ7CisgICAgICAgIH0KKyAgICAgICAgZWNwX3N1cHBvcnRlZF9ncnBfaWRbaV0gPSBNQkVEVExTX0VDUF9EUF9OT05FOworCisgICAgICAgIGluaXRfZG9uZSA9IDE7CisgICAgfQorCisgICAgcmV0dXJuIGVjcF9zdXBwb3J0ZWRfZ3JwX2lkOworfQorCisvKgorICogR2V0IHRoZSBjdXJ2ZSBpbmZvIGZvciB0aGUgaW50ZXJuYWwgaWRlbnRpZmllcgorICovCitjb25zdCBtYmVkdGxzX2VjcF9jdXJ2ZV9pbmZvICptYmVkdGxzX2VjcF9jdXJ2ZV9pbmZvX2Zyb21fZ3JwX2lkKG1iZWR0bHNfZWNwX2dyb3VwX2lkIGdycF9pZCkKK3sKKyAgICBjb25zdCBtYmVkdGxzX2VjcF9jdXJ2ZV9pbmZvICpjdXJ2ZV9pbmZvOworCisgICAgZm9yIChjdXJ2ZV9pbmZvID0gbWJlZHRsc19lY3BfY3VydmVfbGlzdCgpOworICAgICAgICAgY3VydmVfaW5mby0+Z3JwX2lkICE9IE1CRURUTFNfRUNQX0RQX05PTkU7CisgICAgICAgICBjdXJ2ZV9pbmZvKyspIHsKKyAgICAgICAgaWYgKGN1cnZlX2luZm8tPmdycF9pZCA9PSBncnBfaWQpIHsKKyAgICAgICAgICAgIHJldHVybiBjdXJ2ZV9pbmZvOworICAgICAgICB9CisgICAgfQorCisgICAgcmV0dXJuIE5VTEw7Cit9CisKKy8qCisgKiBHZXQgdGhlIGN1cnZlIGluZm8gZnJvbSB0aGUgVExTIGlkZW50aWZpZXIKKyAqLworY29uc3QgbWJlZHRsc19lY3BfY3VydmVfaW5mbyAqbWJlZHRsc19lY3BfY3VydmVfaW5mb19mcm9tX3Rsc19pZCh1aW50MTZfdCB0bHNfaWQpCit7CisgICAgY29uc3QgbWJlZHRsc19lY3BfY3VydmVfaW5mbyAqY3VydmVfaW5mbzsKKworICAgIGZvciAoY3VydmVfaW5mbyA9IG1iZWR0bHNfZWNwX2N1cnZlX2xpc3QoKTsKKyAgICAgICAgIGN1cnZlX2luZm8tPmdycF9pZCAhPSBNQkVEVExTX0VDUF9EUF9OT05FOworICAgICAgICAgY3VydmVfaW5mbysrKSB7CisgICAgICAgIGlmIChjdXJ2ZV9pbmZvLT50bHNfaWQgPT0gdGxzX2lkKSB7CisgICAgICAgICAgICByZXR1cm4gY3VydmVfaW5mbzsKKyAgICAgICAgfQorICAgIH0KKworICAgIHJldHVybiBOVUxMOworfQorCisvKgorICogR2V0IHRoZSBjdXJ2ZSBpbmZvIGZyb20gdGhlIG5hbWUKKyAqLworY29uc3QgbWJlZHRsc19lY3BfY3VydmVfaW5mbyAqbWJlZHRsc19lY3BfY3VydmVfaW5mb19mcm9tX25hbWUoY29uc3QgY2hhciAqbmFtZSkKK3sKKyAgICBjb25zdCBtYmVkdGxzX2VjcF9jdXJ2ZV9pbmZvICpjdXJ2ZV9pbmZvOworCisgICAgaWYgKG5hbWUgPT0gTlVMTCkgeworICAgICAgICByZXR1cm4gTlVMTDsKKyAgICB9CisKKyAgICBmb3IgKGN1cnZlX2luZm8gPSBtYmVkdGxzX2VjcF9jdXJ2ZV9saXN0KCk7CisgICAgICAgICBjdXJ2ZV9pbmZvLT5ncnBfaWQgIT0gTUJFRFRMU19FQ1BfRFBfTk9ORTsKKyAgICAgICAgIGN1cnZlX2luZm8rKykgeworICAgICAgICBpZiAoc3RyY21wKGN1cnZlX2luZm8tPm5hbWUsIG5hbWUpID09IDApIHsKKyAgICAgICAgICAgIHJldHVybiBjdXJ2ZV9pbmZvOworICAgICAgICB9CisgICAgfQorCisgICAgcmV0dXJuIE5VTEw7Cit9CisKKy8qCisgKiBHZXQgdGhlIHR5cGUgb2YgYSBjdXJ2ZQorICovCittYmVkdGxzX2VjcF9jdXJ2ZV90eXBlIG1iZWR0bHNfZWNwX2dldF90eXBlKGNvbnN0IG1iZWR0bHNfZWNwX2dyb3VwICpncnApCit7CisgICAgaWYgKGdycC0+Ry5YLnAgPT0gTlVMTCkgeworICAgICAgICByZXR1cm4gTUJFRFRMU19FQ1BfVFlQRV9OT05FOworICAgIH0KKworICAgIGlmIChncnAtPkcuWS5wID09IE5VTEwpIHsKKyAgICAgICAgcmV0dXJuIE1CRURUTFNfRUNQX1RZUEVfTU9OVEdPTUVSWTsKKyAgICB9IGVsc2UgeworICAgICAgICByZXR1cm4gTUJFRFRMU19FQ1BfVFlQRV9TSE9SVF9XRUlFUlNUUkFTUzsKKyAgICB9Cit9CisKKy8qCisgKiBJbml0aWFsaXplICh0aGUgY29tcG9uZW50cyBvZikgYSBwb2ludAorICovCit2b2lkIG1iZWR0bHNfZWNwX3BvaW50X2luaXQobWJlZHRsc19lY3BfcG9pbnQgKnB0KQoreworICAgIG1iZWR0bHNfbXBpX2luaXQoJnB0LT5YKTsKKyAgICBtYmVkdGxzX21waV9pbml0KCZwdC0+WSk7CisgICAgbWJlZHRsc19tcGlfaW5pdCgmcHQtPlopOworfQorCisvKgorICogSW5pdGlhbGl6ZSAodGhlIGNvbXBvbmVudHMgb2YpIGEgZ3JvdXAKKyAqLwordm9pZCBtYmVkdGxzX2VjcF9ncm91cF9pbml0KG1iZWR0bHNfZWNwX2dyb3VwICpncnApCit7CisgICAgZ3JwLT5pZCA9IE1CRURUTFNfRUNQX0RQX05PTkU7CisgICAgbWJlZHRsc19tcGlfaW5pdCgmZ3JwLT5QKTsKKyAgICBtYmVkdGxzX21waV9pbml0KCZncnAtPkEpOworICAgIG1iZWR0bHNfbXBpX2luaXQoJmdycC0+Qik7CisgICAgbWJlZHRsc19lY3BfcG9pbnRfaW5pdCgmZ3JwLT5HKTsKKyAgICBtYmVkdGxzX21waV9pbml0KCZncnAtPk4pOworICAgIGdycC0+cGJpdHMgPSAwOworICAgIGdycC0+bmJpdHMgPSAwOworICAgIGdycC0+aCA9IDA7CisgICAgZ3JwLT5tb2RwID0gTlVMTDsKKyAgICBncnAtPnRfcHJlID0gTlVMTDsKKyAgICBncnAtPnRfcG9zdCA9IE5VTEw7CisgICAgZ3JwLT50X2RhdGEgPSBOVUxMOworICAgIGdycC0+VCA9IE5VTEw7CisgICAgZ3JwLT5UX3NpemUgPSAwOworfQorCisvKgorICogSW5pdGlhbGl6ZSAodGhlIGNvbXBvbmVudHMgb2YpIGEga2V5IHBhaXIKKyAqLwordm9pZCBtYmVkdGxzX2VjcF9rZXlwYWlyX2luaXQobWJlZHRsc19lY3Bfa2V5cGFpciAqa2V5KQoreworICAgIG1iZWR0bHNfZWNwX2dyb3VwX2luaXQoJmtleS0+Z3JwKTsKKyAgICBtYmVkdGxzX21waV9pbml0KCZrZXktPmQpOworICAgIG1iZWR0bHNfZWNwX3BvaW50X2luaXQoJmtleS0+USk7Cit9CisKKy8qCisgKiBVbmFsbG9jYXRlICh0aGUgY29tcG9uZW50cyBvZikgYSBwb2ludAorICovCit2b2lkIG1iZWR0bHNfZWNwX3BvaW50X2ZyZWUobWJlZHRsc19lY3BfcG9pbnQgKnB0KQoreworICAgIGlmIChwdCA9PSBOVUxMKSB7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBtYmVkdGxzX21waV9mcmVlKCYocHQtPlgpKTsKKyAgICBtYmVkdGxzX21waV9mcmVlKCYocHQtPlkpKTsKKyAgICBtYmVkdGxzX21waV9mcmVlKCYocHQtPlopKTsKK30KKworLyoKKyAqIENoZWNrIHRoYXQgdGhlIGNvbWIgdGFibGUgKGdycC0+VCkgaXMgc3RhdGljIGluaXRpYWxpemVkLgorICovCitzdGF0aWMgaW50IGVjcF9ncm91cF9pc19zdGF0aWNfY29tYl90YWJsZShjb25zdCBtYmVkdGxzX2VjcF9ncm91cCAqZ3JwKQoreworI2lmIE1CRURUTFNfRUNQX0ZJWEVEX1BPSU5UX09QVElNID09IDEKKyAgICByZXR1cm4gZ3JwLT5UICE9IE5VTEwgJiYgZ3JwLT5UX3NpemUgPT0gMDsKKyNlbHNlCisgICAgKHZvaWQpIGdycDsKKyAgICByZXR1cm4gMDsKKyNlbmRpZgorfQorCisvKgorICogVW5hbGxvY2F0ZSAodGhlIGNvbXBvbmVudHMgb2YpIGEgZ3JvdXAKKyAqLwordm9pZCBtYmVkdGxzX2VjcF9ncm91cF9mcmVlKG1iZWR0bHNfZWNwX2dyb3VwICpncnApCit7CisgICAgc2l6ZV90IGk7CisKKyAgICBpZiAoZ3JwID09IE5VTEwpIHsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGlmIChncnAtPmggIT0gMSkgeworICAgICAgICBtYmVkdGxzX21waV9mcmVlKCZncnAtPkEpOworICAgICAgICBtYmVkdGxzX21waV9mcmVlKCZncnAtPkIpOworICAgICAgICBtYmVkdGxzX2VjcF9wb2ludF9mcmVlKCZncnAtPkcpOworCisjaWYgIWRlZmluZWQoTUJFRFRMU19FQ1BfV0lUSF9NUElfVUlOVCkKKyAgICAgICAgbWJlZHRsc19tcGlfZnJlZSgmZ3JwLT5OKTsKKyAgICAgICAgbWJlZHRsc19tcGlfZnJlZSgmZ3JwLT5QKTsKKyNlbmRpZgorICAgIH0KKworICAgIGlmICghZWNwX2dyb3VwX2lzX3N0YXRpY19jb21iX3RhYmxlKGdycCkgJiYgZ3JwLT5UICE9IE5VTEwpIHsKKyAgICAgICAgZm9yIChpID0gMDsgaSA8IGdycC0+VF9zaXplOyBpKyspIHsKKyAgICAgICAgICAgIG1iZWR0bHNfZWNwX3BvaW50X2ZyZWUoJmdycC0+VFtpXSk7CisgICAgICAgIH0KKyAgICAgICAgbWJlZHRsc19mcmVlKGdycC0+VCk7CisgICAgfQorCisgICAgbWJlZHRsc19wbGF0Zm9ybV96ZXJvaXplKGdycCwgc2l6ZW9mKG1iZWR0bHNfZWNwX2dyb3VwKSk7Cit9CisKKy8qCisgKiBVbmFsbG9jYXRlICh0aGUgY29tcG9uZW50cyBvZikgYSBrZXkgcGFpcgorICovCit2b2lkIG1iZWR0bHNfZWNwX2tleXBhaXJfZnJlZShtYmVkdGxzX2VjcF9rZXlwYWlyICprZXkpCit7CisgICAgaWYgKGtleSA9PSBOVUxMKSB7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBtYmVkdGxzX2VjcF9ncm91cF9mcmVlKCZrZXktPmdycCk7CisgICAgbWJlZHRsc19tcGlfZnJlZSgma2V5LT5kKTsKKyAgICBtYmVkdGxzX2VjcF9wb2ludF9mcmVlKCZrZXktPlEpOworfQorCisvKgorICogQ29weSB0aGUgY29udGVudHMgb2YgYSBwb2ludAorICovCitpbnQgbWJlZHRsc19lY3BfY29weShtYmVkdGxzX2VjcF9wb2ludCAqUCwgY29uc3QgbWJlZHRsc19lY3BfcG9pbnQgKlEpCit7CisgICAgaW50IHJldCA9IE1CRURUTFNfRVJSX0VSUk9SX0NPUlJVUFRJT05fREVURUNURUQ7CisgICAgTUJFRFRMU19NUElfQ0hLKG1iZWR0bHNfbXBpX2NvcHkoJlAtPlgsICZRLT5YKSk7CisgICAgTUJFRFRMU19NUElfQ0hLKG1iZWR0bHNfbXBpX2NvcHkoJlAtPlksICZRLT5ZKSk7CisgICAgTUJFRFRMU19NUElfQ0hLKG1iZWR0bHNfbXBpX2NvcHkoJlAtPlosICZRLT5aKSk7CisKK2NsZWFudXA6CisgICAgcmV0dXJuIHJldDsKK30KKworLyoKKyAqIENvcHkgdGhlIGNvbnRlbnRzIG9mIGEgZ3JvdXAgb2JqZWN0CisgKi8KK2ludCBtYmVkdGxzX2VjcF9ncm91cF9jb3B5KG1iZWR0bHNfZWNwX2dyb3VwICpkc3QsIGNvbnN0IG1iZWR0bHNfZWNwX2dyb3VwICpzcmMpCit7CisgICAgcmV0dXJuIG1iZWR0bHNfZWNwX2dyb3VwX2xvYWQoZHN0LCBzcmMtPmlkKTsKK30KKworLyoKKyAqIFNldCBwb2ludCB0byB6ZXJvCisgKi8KK2ludCBtYmVkdGxzX2VjcF9zZXRfemVybyhtYmVkdGxzX2VjcF9wb2ludCAqcHQpCit7CisgICAgaW50IHJldCA9IE1CRURUTFNfRVJSX0VSUk9SX0NPUlJVUFRJT05fREVURUNURUQ7CisgICAgTUJFRFRMU19NUElfQ0hLKG1iZWR0bHNfbXBpX2xzZXQoJnB0LT5YLCAxKSk7CisgICAgTUJFRFRMU19NUElfQ0hLKG1iZWR0bHNfbXBpX2xzZXQoJnB0LT5ZLCAxKSk7CisgICAgTUJFRFRMU19NUElfQ0hLKG1iZWR0bHNfbXBpX2xzZXQoJnB0LT5aLCAwKSk7CisKK2NsZWFudXA6CisgICAgcmV0dXJuIHJldDsKK30KKworLyoKKyAqIFRlbGwgaWYgYSBwb2ludCBpcyB6ZXJvCisgKi8KK2ludCBtYmVkdGxzX2VjcF9pc196ZXJvKG1iZWR0bHNfZWNwX3BvaW50ICpwdCkKK3sKKyAgICByZXR1cm4gbWJlZHRsc19tcGlfY21wX2ludCgmcHQtPlosIDApID09IDA7Cit9CisKKy8qCisgKiBDb21wYXJlIHR3byBwb2ludHMgbGF6aWx5CisgKi8KK2ludCBtYmVkdGxzX2VjcF9wb2ludF9jbXAoY29uc3QgbWJlZHRsc19lY3BfcG9pbnQgKlAsCisgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IG1iZWR0bHNfZWNwX3BvaW50ICpRKQoreworICAgIGlmIChtYmVkdGxzX21waV9jbXBfbXBpKCZQLT5YLCAmUS0+WCkgPT0gMCAmJgorICAgICAgICBtYmVkdGxzX21waV9jbXBfbXBpKCZQLT5ZLCAmUS0+WSkgPT0gMCAmJgorICAgICAgICBtYmVkdGxzX21waV9jbXBfbXBpKCZQLT5aLCAmUS0+WikgPT0gMCkgeworICAgICAgICByZXR1cm4gMDsKKyAgICB9CisKKyAgICByZXR1cm4gTUJFRFRMU19FUlJfRUNQX0JBRF9JTlBVVF9EQVRBOworfQorCisvKgorICogSW1wb3J0IGEgbm9uLXplcm8gcG9pbnQgZnJvbSBBU0NJSSBzdHJpbmdzCisgKi8KK2ludCBtYmVkdGxzX2VjcF9wb2ludF9yZWFkX3N0cmluZyhtYmVkdGxzX2VjcF9wb2ludCAqUCwgaW50IHJhZGl4LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKngsIGNvbnN0IGNoYXIgKnkpCit7CisgICAgaW50IHJldCA9IE1CRURUTFNfRVJSX0VSUk9SX0NPUlJVUFRJT05fREVURUNURUQ7CisgICAgTUJFRFRMU19NUElfQ0hLKG1iZWR0bHNfbXBpX3JlYWRfc3RyaW5nKCZQLT5YLCByYWRpeCwgeCkpOworICAgIE1CRURUTFNfTVBJX0NISyhtYmVkdGxzX21waV9yZWFkX3N0cmluZygmUC0+WSwgcmFkaXgsIHkpKTsKKyAgICBNQkVEVExTX01QSV9DSEsobWJlZHRsc19tcGlfbHNldCgmUC0+WiwgMSkpOworCitjbGVhbnVwOgorICAgIHJldHVybiByZXQ7Cit9CisKKy8qCisgKiBFeHBvcnQgYSBwb2ludCBpbnRvIHVuc2lnbmVkIGJpbmFyeSBkYXRhIChTRUMxIDIuMy4zIGFuZCBSRkM3NzQ4KQorICovCitpbnQgbWJlZHRsc19lY3BfcG9pbnRfd3JpdGVfYmluYXJ5KGNvbnN0IG1iZWR0bHNfZWNwX2dyb3VwICpncnAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IG1iZWR0bHNfZWNwX3BvaW50ICpQLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgZm9ybWF0LCBzaXplX3QgKm9sZW4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGNoYXIgKmJ1Ziwgc2l6ZV90IGJ1ZmxlbikKK3sKKyAgICBpbnQgcmV0ID0gTUJFRFRMU19FUlJfRUNQX0ZFQVRVUkVfVU5BVkFJTEFCTEU7CisgICAgc2l6ZV90IHBsZW47CisgICAgaWYgKGZvcm1hdCAhPSBNQkVEVExTX0VDUF9QRl9VTkNPTVBSRVNTRUQgJiYKKyAgICAgICAgZm9ybWF0ICE9IE1CRURUTFNfRUNQX1BGX0NPTVBSRVNTRUQpIHsKKyAgICAgICAgcmV0dXJuIE1CRURUTFNfRVJSX0VDUF9CQURfSU5QVVRfREFUQTsKKyAgICB9CisKKyAgICBwbGVuID0gbWJlZHRsc19tcGlfc2l6ZSgmZ3JwLT5QKTsKKworI2lmIGRlZmluZWQoTUJFRFRMU19FQ1BfTU9OVEdPTUVSWV9FTkFCTEVEKQorICAgICh2b2lkKSBmb3JtYXQ7IC8qIE1vbnRnb21lcnkgY3VydmVzIGFsd2F5cyB1c2UgdGhlIHNhbWUgcG9pbnQgZm9ybWF0ICovCisgICAgaWYgKG1iZWR0bHNfZWNwX2dldF90eXBlKGdycCkgPT0gTUJFRFRMU19FQ1BfVFlQRV9NT05UR09NRVJZKSB7CisgICAgICAgICpvbGVuID0gcGxlbjsKKyAgICAgICAgaWYgKGJ1ZmxlbiA8ICpvbGVuKSB7CisgICAgICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfRUNQX0JVRkZFUl9UT09fU01BTEw7CisgICAgICAgIH0KKworICAgICAgICBNQkVEVExTX01QSV9DSEsobWJlZHRsc19tcGlfd3JpdGVfYmluYXJ5X2xlKCZQLT5YLCBidWYsIHBsZW4pKTsKKyAgICB9CisjZW5kaWYKKyNpZiBkZWZpbmVkKE1CRURUTFNfRUNQX1NIT1JUX1dFSUVSU1RSQVNTX0VOQUJMRUQpCisgICAgaWYgKG1iZWR0bHNfZWNwX2dldF90eXBlKGdycCkgPT0gTUJFRFRMU19FQ1BfVFlQRV9TSE9SVF9XRUlFUlNUUkFTUykgeworICAgICAgICAvKgorICAgICAgICAgKiBDb21tb24gY2FzZTogUCA9PSAwCisgICAgICAgICAqLworICAgICAgICBpZiAobWJlZHRsc19tcGlfY21wX2ludCgmUC0+WiwgMCkgPT0gMCkgeworICAgICAgICAgICAgaWYgKGJ1ZmxlbiA8IDEpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfRUNQX0JVRkZFUl9UT09fU01BTEw7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGJ1ZlswXSA9IDB4MDA7CisgICAgICAgICAgICAqb2xlbiA9IDE7CisKKyAgICAgICAgICAgIHJldHVybiAwOworICAgICAgICB9CisKKyAgICAgICAgaWYgKGZvcm1hdCA9PSBNQkVEVExTX0VDUF9QRl9VTkNPTVBSRVNTRUQpIHsKKyAgICAgICAgICAgICpvbGVuID0gMiAqIHBsZW4gKyAxOworCisgICAgICAgICAgICBpZiAoYnVmbGVuIDwgKm9sZW4pIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfRUNQX0JVRkZFUl9UT09fU01BTEw7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGJ1ZlswXSA9IDB4MDQ7CisgICAgICAgICAgICBNQkVEVExTX01QSV9DSEsobWJlZHRsc19tcGlfd3JpdGVfYmluYXJ5KCZQLT5YLCBidWYgKyAxLCBwbGVuKSk7CisgICAgICAgICAgICBNQkVEVExTX01QSV9DSEsobWJlZHRsc19tcGlfd3JpdGVfYmluYXJ5KCZQLT5ZLCBidWYgKyAxICsgcGxlbiwgcGxlbikpOworICAgICAgICB9IGVsc2UgaWYgKGZvcm1hdCA9PSBNQkVEVExTX0VDUF9QRl9DT01QUkVTU0VEKSB7CisgICAgICAgICAgICAqb2xlbiA9IHBsZW4gKyAxOworCisgICAgICAgICAgICBpZiAoYnVmbGVuIDwgKm9sZW4pIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfRUNQX0JVRkZFUl9UT09fU01BTEw7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGJ1ZlswXSA9IDB4MDIgKyBtYmVkdGxzX21waV9nZXRfYml0KCZQLT5ZLCAwKTsKKyAgICAgICAgICAgIE1CRURUTFNfTVBJX0NISyhtYmVkdGxzX21waV93cml0ZV9iaW5hcnkoJlAtPlgsIGJ1ZiArIDEsIHBsZW4pKTsKKyAgICAgICAgfQorICAgIH0KKyNlbmRpZgorCitjbGVhbnVwOgorICAgIHJldHVybiByZXQ7Cit9CisKKyNpZiBkZWZpbmVkKE1CRURUTFNfRUNQX1NIT1JUX1dFSUVSU1RSQVNTX0VOQUJMRUQpCitzdGF0aWMgaW50IG1iZWR0bHNfZWNwX3N3X2Rlcml2ZV95KGNvbnN0IG1iZWR0bHNfZWNwX2dyb3VwICpncnAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IG1iZWR0bHNfbXBpICpYLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYmVkdGxzX21waSAqWSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IHBhcml0eV9iaXQpOworI2VuZGlmIC8qIE1CRURUTFNfRUNQX1NIT1JUX1dFSUVSU1RSQVNTX0VOQUJMRUQgKi8KKworLyoKKyAqIEltcG9ydCBhIHBvaW50IGZyb20gdW5zaWduZWQgYmluYXJ5IGRhdGEgKFNFQzEgMi4zLjQgYW5kIFJGQzc3NDgpCisgKi8KK2ludCBtYmVkdGxzX2VjcF9wb2ludF9yZWFkX2JpbmFyeShjb25zdCBtYmVkdGxzX2VjcF9ncm91cCAqZ3JwLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1iZWR0bHNfZWNwX3BvaW50ICpwdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1bnNpZ25lZCBjaGFyICpidWYsIHNpemVfdCBpbGVuKQoreworICAgIGludCByZXQgPSBNQkVEVExTX0VSUl9FQ1BfRkVBVFVSRV9VTkFWQUlMQUJMRTsKKyAgICBzaXplX3QgcGxlbjsKKyAgICBpZiAoaWxlbiA8IDEpIHsKKyAgICAgICAgcmV0dXJuIE1CRURUTFNfRVJSX0VDUF9CQURfSU5QVVRfREFUQTsKKyAgICB9CisKKyAgICBwbGVuID0gbWJlZHRsc19tcGlfc2l6ZSgmZ3JwLT5QKTsKKworI2lmIGRlZmluZWQoTUJFRFRMU19FQ1BfTU9OVEdPTUVSWV9FTkFCTEVEKQorICAgIGlmIChtYmVkdGxzX2VjcF9nZXRfdHlwZShncnApID09IE1CRURUTFNfRUNQX1RZUEVfTU9OVEdPTUVSWSkgeworICAgICAgICBpZiAocGxlbiAhPSBpbGVuKSB7CisgICAgICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfRUNQX0JBRF9JTlBVVF9EQVRBOworICAgICAgICB9CisKKyAgICAgICAgTUJFRFRMU19NUElfQ0hLKG1iZWR0bHNfbXBpX3JlYWRfYmluYXJ5X2xlKCZwdC0+WCwgYnVmLCBwbGVuKSk7CisgICAgICAgIG1iZWR0bHNfbXBpX2ZyZWUoJnB0LT5ZKTsKKworICAgICAgICBpZiAoZ3JwLT5pZCA9PSBNQkVEVExTX0VDUF9EUF9DVVJWRTI1NTE5KSB7CisgICAgICAgICAgICAvKiBTZXQgbW9zdCBzaWduaWZpY2FudCBiaXQgdG8gMCBhcyBwcmVzY3JpYmVkIGluIFJGQzc3NDggwqc1ICovCisgICAgICAgICAgICBNQkVEVExTX01QSV9DSEsobWJlZHRsc19tcGlfc2V0X2JpdCgmcHQtPlgsIHBsZW4gKiA4IC0gMSwgMCkpOworICAgICAgICB9CisKKyAgICAgICAgTUJFRFRMU19NUElfQ0hLKG1iZWR0bHNfbXBpX2xzZXQoJnB0LT5aLCAxKSk7CisgICAgfQorI2VuZGlmCisjaWYgZGVmaW5lZChNQkVEVExTX0VDUF9TSE9SVF9XRUlFUlNUUkFTU19FTkFCTEVEKQorICAgIGlmIChtYmVkdGxzX2VjcF9nZXRfdHlwZShncnApID09IE1CRURUTFNfRUNQX1RZUEVfU0hPUlRfV0VJRVJTVFJBU1MpIHsKKyAgICAgICAgaWYgKGJ1ZlswXSA9PSAweDAwKSB7CisgICAgICAgICAgICBpZiAoaWxlbiA9PSAxKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIG1iZWR0bHNfZWNwX3NldF96ZXJvKHB0KTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIE1CRURUTFNfRVJSX0VDUF9CQURfSU5QVVRfREFUQTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIGlmIChpbGVuIDwgMSArIHBsZW4pIHsKKyAgICAgICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9FQ1BfQkFEX0lOUFVUX0RBVEE7CisgICAgICAgIH0KKworICAgICAgICBNQkVEVExTX01QSV9DSEsobWJlZHRsc19tcGlfcmVhZF9iaW5hcnkoJnB0LT5YLCBidWYgKyAxLCBwbGVuKSk7CisgICAgICAgIE1CRURUTFNfTVBJX0NISyhtYmVkdGxzX21waV9sc2V0KCZwdC0+WiwgMSkpOworCisgICAgICAgIGlmIChidWZbMF0gPT0gMHgwNCkgeworICAgICAgICAgICAgLyogZm9ybWF0ID09IE1CRURUTFNfRUNQX1BGX1VOQ09NUFJFU1NFRCAqLworICAgICAgICAgICAgaWYgKGlsZW4gIT0gMSArIHBsZW4gKiAyKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIE1CRURUTFNfRVJSX0VDUF9CQURfSU5QVVRfREFUQTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybiBtYmVkdGxzX21waV9yZWFkX2JpbmFyeSgmcHQtPlksIGJ1ZiArIDEgKyBwbGVuLCBwbGVuKTsKKyAgICAgICAgfSBlbHNlIGlmIChidWZbMF0gPT0gMHgwMiB8fCBidWZbMF0gPT0gMHgwMykgeworICAgICAgICAgICAgLyogZm9ybWF0ID09IE1CRURUTFNfRUNQX1BGX0NPTVBSRVNTRUQgKi8KKyAgICAgICAgICAgIGlmIChpbGVuICE9IDEgKyBwbGVuKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIE1CRURUTFNfRVJSX0VDUF9CQURfSU5QVVRfREFUQTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybiBtYmVkdGxzX2VjcF9zd19kZXJpdmVfeShncnAsICZwdC0+WCwgJnB0LT5ZLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChidWZbMF0gJiAxKSk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfRUNQX0JBRF9JTlBVVF9EQVRBOworICAgICAgICB9CisgICAgfQorI2VuZGlmCisKK2NsZWFudXA6CisgICAgcmV0dXJuIHJldDsKK30KKworLyoKKyAqIEltcG9ydCBhIHBvaW50IGZyb20gYSBUTFMgRUNQb2ludCByZWNvcmQgKFJGQyA0NDkyKQorICogICAgICBzdHJ1Y3QgeworICogICAgICAgICAgb3BhcXVlIHBvaW50IDwxLi4yXjgtMT47CisgKiAgICAgIH0gRUNQb2ludDsKKyAqLworaW50IG1iZWR0bHNfZWNwX3Rsc19yZWFkX3BvaW50KGNvbnN0IG1iZWR0bHNfZWNwX2dyb3VwICpncnAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWJlZHRsc19lY3BfcG9pbnQgKnB0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgKipidWYsIHNpemVfdCBidWZfbGVuKQoreworICAgIHVuc2lnbmVkIGNoYXIgZGF0YV9sZW47CisgICAgY29uc3QgdW5zaWduZWQgY2hhciAqYnVmX3N0YXJ0OworICAgIC8qCisgICAgICogV2UgbXVzdCBoYXZlIGF0IGxlYXN0IHR3byBieXRlcyAoMSBmb3IgbGVuZ3RoLCBhdCBsZWFzdCBvbmUgZm9yIGRhdGEpCisgICAgICovCisgICAgaWYgKGJ1Zl9sZW4gPCAyKSB7CisgICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9FQ1BfQkFEX0lOUFVUX0RBVEE7CisgICAgfQorCisgICAgZGF0YV9sZW4gPSAqKCpidWYpKys7CisgICAgaWYgKGRhdGFfbGVuIDwgMSB8fCBkYXRhX2xlbiA+IGJ1Zl9sZW4gLSAxKSB7CisgICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9FQ1BfQkFEX0lOUFVUX0RBVEE7CisgICAgfQorCisgICAgLyoKKyAgICAgKiBTYXZlIGJ1ZmZlciBzdGFydCBmb3IgcmVhZF9iaW5hcnkgYW5kIHVwZGF0ZSBidWYKKyAgICAgKi8KKyAgICBidWZfc3RhcnQgPSAqYnVmOworICAgICpidWYgKz0gZGF0YV9sZW47CisKKyAgICByZXR1cm4gbWJlZHRsc19lY3BfcG9pbnRfcmVhZF9iaW5hcnkoZ3JwLCBwdCwgYnVmX3N0YXJ0LCBkYXRhX2xlbik7Cit9CisKKy8qCisgKiBFeHBvcnQgYSBwb2ludCBhcyBhIFRMUyBFQ1BvaW50IHJlY29yZCAoUkZDIDQ0OTIpCisgKiAgICAgIHN0cnVjdCB7CisgKiAgICAgICAgICBvcGFxdWUgcG9pbnQgPDEuLjJeOC0xPjsKKyAqICAgICAgfSBFQ1BvaW50OworICovCitpbnQgbWJlZHRsc19lY3BfdGxzX3dyaXRlX3BvaW50KGNvbnN0IG1iZWR0bHNfZWNwX2dyb3VwICpncnAsIGNvbnN0IG1iZWR0bHNfZWNwX3BvaW50ICpwdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGZvcm1hdCwgc2l6ZV90ICpvbGVuLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBjaGFyICpidWYsIHNpemVfdCBibGVuKQoreworICAgIGludCByZXQgPSBNQkVEVExTX0VSUl9FUlJPUl9DT1JSVVBUSU9OX0RFVEVDVEVEOworICAgIGlmIChmb3JtYXQgIT0gTUJFRFRMU19FQ1BfUEZfVU5DT01QUkVTU0VEICYmCisgICAgICAgIGZvcm1hdCAhPSBNQkVEVExTX0VDUF9QRl9DT01QUkVTU0VEKSB7CisgICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9FQ1BfQkFEX0lOUFVUX0RBVEE7CisgICAgfQorCisgICAgLyoKKyAgICAgKiBidWZmZXIgbGVuZ3RoIG11c3QgYmUgYXQgbGVhc3Qgb25lLCBmb3Igb3VyIGxlbmd0aCBieXRlCisgICAgICovCisgICAgaWYgKGJsZW4gPCAxKSB7CisgICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9FQ1BfQkFEX0lOUFVUX0RBVEE7CisgICAgfQorCisgICAgaWYgKChyZXQgPSBtYmVkdGxzX2VjcF9wb2ludF93cml0ZV9iaW5hcnkoZ3JwLCBwdCwgZm9ybWF0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9sZW4sIGJ1ZiArIDEsIGJsZW4gLSAxKSkgIT0gMCkgeworICAgICAgICByZXR1cm4gcmV0OworICAgIH0KKworICAgIC8qCisgICAgICogd3JpdGUgbGVuZ3RoIHRvIHRoZSBmaXJzdCBieXRlIGFuZCB1cGRhdGUgdG90YWwgbGVuZ3RoCisgICAgICovCisgICAgYnVmWzBdID0gKHVuc2lnbmVkIGNoYXIpICpvbGVuOworICAgICsrKm9sZW47CisKKyAgICByZXR1cm4gMDsKK30KKworLyoKKyAqIFNldCBhIGdyb3VwIGZyb20gYW4gRUNQYXJhbWV0ZXJzIHJlY29yZCAoUkZDIDQ0OTIpCisgKi8KK2ludCBtYmVkdGxzX2VjcF90bHNfcmVhZF9ncm91cChtYmVkdGxzX2VjcF9ncm91cCAqZ3JwLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgKipidWYsIHNpemVfdCBsZW4pCit7CisgICAgaW50IHJldCA9IE1CRURUTFNfRVJSX0VSUk9SX0NPUlJVUFRJT05fREVURUNURUQ7CisgICAgbWJlZHRsc19lY3BfZ3JvdXBfaWQgZ3JwX2lkOworICAgIGlmICgocmV0ID0gbWJlZHRsc19lY3BfdGxzX3JlYWRfZ3JvdXBfaWQoJmdycF9pZCwgYnVmLCBsZW4pKSAhPSAwKSB7CisgICAgICAgIHJldHVybiByZXQ7CisgICAgfQorCisgICAgcmV0dXJuIG1iZWR0bHNfZWNwX2dyb3VwX2xvYWQoZ3JwLCBncnBfaWQpOworfQorCisvKgorICogUmVhZCBhIGdyb3VwIGlkIGZyb20gYW4gRUNQYXJhbWV0ZXJzIHJlY29yZCAoUkZDIDQ0OTIpIGFuZCBjb252ZXJ0IGl0IHRvCisgKiBtYmVkdGxzX2VjcF9ncm91cF9pZC4KKyAqLworaW50IG1iZWR0bHNfZWNwX3Rsc19yZWFkX2dyb3VwX2lkKG1iZWR0bHNfZWNwX2dyb3VwX2lkICpncnAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdW5zaWduZWQgY2hhciAqKmJ1Ziwgc2l6ZV90IGxlbikKK3sKKyAgICB1aW50MTZfdCB0bHNfaWQ7CisgICAgY29uc3QgbWJlZHRsc19lY3BfY3VydmVfaW5mbyAqY3VydmVfaW5mbzsKKyAgICAvKgorICAgICAqIFdlIGV4cGVjdCBhdCBsZWFzdCB0aHJlZSBieXRlcyAoc2VlIGJlbG93KQorICAgICAqLworICAgIGlmIChsZW4gPCAzKSB7CisgICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9FQ1BfQkFEX0lOUFVUX0RBVEE7CisgICAgfQorCisgICAgLyoKKyAgICAgKiBGaXJzdCBieXRlIGlzIGN1cnZlX3R5cGU7IG9ubHkgbmFtZWRfY3VydmUgaXMgaGFuZGxlZAorICAgICAqLworICAgIGlmICgqKCpidWYpKysgIT0gTUJFRFRMU19FQ1BfVExTX05BTUVEX0NVUlZFKSB7CisgICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9FQ1BfQkFEX0lOUFVUX0RBVEE7CisgICAgfQorCisgICAgLyoKKyAgICAgKiBOZXh0IHR3byBieXRlcyBhcmUgdGhlIG5hbWVkY3VydmUgdmFsdWUKKyAgICAgKi8KKyAgICB0bHNfaWQgPSBNQkVEVExTX0dFVF9VSU5UMTZfQkUoKmJ1ZiwgMCk7CisgICAgKmJ1ZiArPSAyOworCisgICAgaWYgKChjdXJ2ZV9pbmZvID0gbWJlZHRsc19lY3BfY3VydmVfaW5mb19mcm9tX3Rsc19pZCh0bHNfaWQpKSA9PSBOVUxMKSB7CisgICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9FQ1BfRkVBVFVSRV9VTkFWQUlMQUJMRTsKKyAgICB9CisKKyAgICAqZ3JwID0gY3VydmVfaW5mby0+Z3JwX2lkOworCisgICAgcmV0dXJuIDA7Cit9CisKKy8qCisgKiBXcml0ZSB0aGUgRUNQYXJhbWV0ZXJzIHJlY29yZCBjb3JyZXNwb25kaW5nIHRvIGEgZ3JvdXAgKFJGQyA0NDkyKQorICovCitpbnQgbWJlZHRsc19lY3BfdGxzX3dyaXRlX2dyb3VwKGNvbnN0IG1iZWR0bHNfZWNwX2dyb3VwICpncnAsIHNpemVfdCAqb2xlbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgY2hhciAqYnVmLCBzaXplX3QgYmxlbikKK3sKKyAgICBjb25zdCBtYmVkdGxzX2VjcF9jdXJ2ZV9pbmZvICpjdXJ2ZV9pbmZvOworICAgIGlmICgoY3VydmVfaW5mbyA9IG1iZWR0bHNfZWNwX2N1cnZlX2luZm9fZnJvbV9ncnBfaWQoZ3JwLT5pZCkpID09IE5VTEwpIHsKKyAgICAgICAgcmV0dXJuIE1CRURUTFNfRVJSX0VDUF9CQURfSU5QVVRfREFUQTsKKyAgICB9CisKKyAgICAvKgorICAgICAqIFdlIGFyZSBnb2luZyB0byB3cml0ZSAzIGJ5dGVzIChzZWUgYmVsb3cpCisgICAgICovCisgICAgKm9sZW4gPSAzOworICAgIGlmIChibGVuIDwgKm9sZW4pIHsKKyAgICAgICAgcmV0dXJuIE1CRURUTFNfRVJSX0VDUF9CVUZGRVJfVE9PX1NNQUxMOworICAgIH0KKworICAgIC8qCisgICAgICogRmlyc3QgYnl0ZSBpcyBjdXJ2ZV90eXBlLCBhbHdheXMgbmFtZWRfY3VydmUKKyAgICAgKi8KKyAgICAqYnVmKysgPSBNQkVEVExTX0VDUF9UTFNfTkFNRURfQ1VSVkU7CisKKyAgICAvKgorICAgICAqIE5leHQgdHdvIGJ5dGVzIGFyZSB0aGUgbmFtZWRjdXJ2ZSB2YWx1ZQorICAgICAqLworICAgIE1CRURUTFNfUFVUX1VJTlQxNl9CRShjdXJ2ZV9pbmZvLT50bHNfaWQsIGJ1ZiwgMCk7CisKKyAgICByZXR1cm4gMDsKK30KKworLyoKKyAqIFdyYXBwZXIgYXJvdW5kIGZhc3QgcXVhc2ktbW9kcCBmdW5jdGlvbnMsIHdpdGggZmFsbC1iYWNrIHRvIG1iZWR0bHNfbXBpX21vZF9tcGkuCisgKiBTZWUgdGhlIGRvY3VtZW50YXRpb24gb2Ygc3RydWN0IG1iZWR0bHNfZWNwX2dyb3VwLgorICoKKyAqIFRoaXMgZnVuY3Rpb24gaXMgaW4gdGhlIGNyaXRpYWwgbG9vcCBmb3IgbWJlZHRsc19lY3BfbXVsLCBzbyBwYXkgYXR0ZW50aW9uIHRvIHBlcmYuCisgKi8KK3N0YXRpYyBpbnQgZWNwX21vZHAobWJlZHRsc19tcGkgKk4sIGNvbnN0IG1iZWR0bHNfZWNwX2dyb3VwICpncnApCit7CisgICAgaW50IHJldCA9IE1CRURUTFNfRVJSX0VSUk9SX0NPUlJVUFRJT05fREVURUNURUQ7CisKKyAgICBpZiAoZ3JwLT5tb2RwID09IE5VTEwpIHsKKyAgICAgICAgcmV0dXJuIG1iZWR0bHNfbXBpX21vZF9tcGkoTiwgTiwgJmdycC0+UCk7CisgICAgfQorCisgICAgLyogTi0+cyA8IDAgaXMgYSBtdWNoIGZhc3RlciB0ZXN0LCB3aGljaCBmYWlscyBvbmx5IGlmIE4gaXMgMCAqLworICAgIGlmICgoTi0+cyA8IDAgJiYgbWJlZHRsc19tcGlfY21wX2ludChOLCAwKSAhPSAwKSB8fAorICAgICAgICBtYmVkdGxzX21waV9iaXRsZW4oTikgPiAyICogZ3JwLT5wYml0cykgeworICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfRUNQX0JBRF9JTlBVVF9EQVRBOworICAgIH0KKworICAgIE1CRURUTFNfTVBJX0NISyhncnAtPm1vZHAoTikpOworCisgICAgLyogTi0+cyA8IDAgaXMgYSBtdWNoIGZhc3RlciB0ZXN0LCB3aGljaCBmYWlscyBvbmx5IGlmIE4gaXMgMCAqLworICAgIHdoaWxlIChOLT5zIDwgMCAmJiBtYmVkdGxzX21waV9jbXBfaW50KE4sIDApICE9IDApIHsKKyAgICAgICAgTUJFRFRMU19NUElfQ0hLKG1iZWR0bHNfbXBpX2FkZF9tcGkoTiwgTiwgJmdycC0+UCkpOworICAgIH0KKworICAgIHdoaWxlIChtYmVkdGxzX21waV9jbXBfbXBpKE4sICZncnAtPlApID49IDApIHsKKyAgICAgICAgLyogd2Uga25vd24gUCwgTiBhbmQgdGhlIHJlc3VsdCBhcmUgcG9zaXRpdmUgKi8KKyAgICAgICAgTUJFRFRMU19NUElfQ0hLKG1iZWR0bHNfbXBpX3N1Yl9hYnMoTiwgTiwgJmdycC0+UCkpOworICAgIH0KKworY2xlYW51cDoKKyAgICByZXR1cm4gcmV0OworfQorCisvKgorICogRmFzdCBtb2QtcCBmdW5jdGlvbnMgZXhwZWN0IHRoZWlyIGFyZ3VtZW50IHRvIGJlIGluIHRoZSAwLi5wXjIgcmFuZ2UuCisgKgorICogSW4gb3JkZXIgdG8gZ3VhcmFudGVlIHRoYXQsIHdlIG5lZWQgdG8gZW5zdXJlIHRoYXQgb3BlcmFuZHMgb2YKKyAqIG1iZWR0bHNfbXBpX211bF9tcGkgYXJlIGluIHRoZSAwLi5wIHJhbmdlLiBTbywgYWZ0ZXIgZWFjaCBvcGVyYXRpb24gd2Ugd2lsbAorICogYnJpbmcgdGhlIHJlc3VsdCBiYWNrIHRvIHRoaXMgcmFuZ2UuCisgKgorICogVGhlIGZvbGxvd2luZyBtYWNyb3MgYXJlIHNob3J0Y3V0cyBmb3IgZG9pbmcgdGhhdC4KKyAqLworCisvKgorICogUmVkdWNlIGEgbWJlZHRsc19tcGkgbW9kIHAgaW4tcGxhY2UsIGdlbmVyYWwgY2FzZSwgdG8gdXNlIGFmdGVyIG1iZWR0bHNfbXBpX211bF9tcGkKKyAqLworI2lmIGRlZmluZWQoTUJFRFRMU19TRUxGX1RFU1QpCisjZGVmaW5lIElOQ19NVUxfQ09VTlQgICBtdWxfY291bnQrKzsKKyNlbHNlCisjZGVmaW5lIElOQ19NVUxfQ09VTlQKKyNlbmRpZgorCisjZGVmaW5lIE1PRF9NVUwoTikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIGRvICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICBNQkVEVExTX01QSV9DSEsoZWNwX21vZHAoJihOKSwgZ3JwKSk7ICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgIElOQ19NVUxfQ09VTlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgfSB3aGlsZSAoMCkKKworc3RhdGljIGlubGluZSBpbnQgbWJlZHRsc19tcGlfbXVsX21vZChjb25zdCBtYmVkdGxzX2VjcF9ncm91cCAqZ3JwLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYmVkdGxzX21waSAqWCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbWJlZHRsc19tcGkgKkEsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IG1iZWR0bHNfbXBpICpCKQoreworICAgIGludCByZXQgPSBNQkVEVExTX0VSUl9FUlJPUl9DT1JSVVBUSU9OX0RFVEVDVEVEOworICAgIE1CRURUTFNfTVBJX0NISyhtYmVkdGxzX21waV9tdWxfbXBpKFgsIEEsIEIpKTsKKyAgICBNT0RfTVVMKCpYKTsKK2NsZWFudXA6CisgICAgcmV0dXJuIHJldDsKK30KKworLyoKKyAqIFJlZHVjZSBhIG1iZWR0bHNfbXBpIG1vZCBwIGluLXBsYWNlLCB0byB1c2UgYWZ0ZXIgbWJlZHRsc19tcGlfc3ViX21waQorICogTi0+cyA8IDAgaXMgYSB2ZXJ5IGZhc3QgdGVzdCwgd2hpY2ggZmFpbHMgb25seSBpZiBOIGlzIDAKKyAqLworI2RlZmluZSBNT0RfU1VCKE4pICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICBkbyB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgd2hpbGUgKChOKS0+cyA8IDAgJiYgbWJlZHRsc19tcGlfY21wX2ludCgoTiksIDApICE9IDApICAgICAgICAgICAgIFwKKyAgICAgICAgTUJFRFRMU19NUElfQ0hLKG1iZWR0bHNfbXBpX2FkZF9tcGkoKE4pLCAoTiksICZncnAtPlApKTsgICAgICBcCisgICAgfSB3aGlsZSAoMCkKKworTUJFRFRMU19NQVlCRV9VTlVTRUQKK3N0YXRpYyBpbmxpbmUgaW50IG1iZWR0bHNfbXBpX3N1Yl9tb2QoY29uc3QgbWJlZHRsc19lY3BfZ3JvdXAgKmdycCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWJlZHRsc19tcGkgKlgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IG1iZWR0bHNfbXBpICpBLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBtYmVkdGxzX21waSAqQikKK3sKKyAgICBpbnQgcmV0ID0gTUJFRFRMU19FUlJfRVJST1JfQ09SUlVQVElPTl9ERVRFQ1RFRDsKKyAgICBNQkVEVExTX01QSV9DSEsobWJlZHRsc19tcGlfc3ViX21waShYLCBBLCBCKSk7CisgICAgTU9EX1NVQihYKTsKK2NsZWFudXA6CisgICAgcmV0dXJuIHJldDsKK30KKworLyoKKyAqIFJlZHVjZSBhIG1iZWR0bHNfbXBpIG1vZCBwIGluLXBsYWNlLCB0byB1c2UgYWZ0ZXIgbWJlZHRsc19tcGlfYWRkX21waSBhbmQgbWJlZHRsc19tcGlfbXVsX2ludC4KKyAqIFdlIGtub3duIFAsIE4gYW5kIHRoZSByZXN1bHQgYXJlIHBvc2l0aXZlLCBzbyBzdWJfYWJzIGlzIGNvcnJlY3QsIGFuZAorICogYSBiaXQgZmFzdGVyLgorICovCisjZGVmaW5lIE1PRF9BREQoTikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgd2hpbGUgKG1iZWR0bHNfbXBpX2NtcF9tcGkoKE4pLCAmZ3JwLT5QKSA+PSAwKSAgICAgICAgICAgICAgICAgIFwKKyAgICBNQkVEVExTX01QSV9DSEsobWJlZHRsc19tcGlfc3ViX2FicygoTiksIChOKSwgJmdycC0+UCkpCisKK3N0YXRpYyBpbmxpbmUgaW50IG1iZWR0bHNfbXBpX2FkZF9tb2QoY29uc3QgbWJlZHRsc19lY3BfZ3JvdXAgKmdycCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWJlZHRsc19tcGkgKlgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IG1iZWR0bHNfbXBpICpBLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBtYmVkdGxzX21waSAqQikKK3sKKyAgICBpbnQgcmV0ID0gTUJFRFRMU19FUlJfRVJST1JfQ09SUlVQVElPTl9ERVRFQ1RFRDsKKyAgICBNQkVEVExTX01QSV9DSEsobWJlZHRsc19tcGlfYWRkX21waShYLCBBLCBCKSk7CisgICAgTU9EX0FERChYKTsKK2NsZWFudXA6CisgICAgcmV0dXJuIHJldDsKK30KKworTUJFRFRMU19NQVlCRV9VTlVTRUQKK3N0YXRpYyBpbmxpbmUgaW50IG1iZWR0bHNfbXBpX211bF9pbnRfbW9kKGNvbnN0IG1iZWR0bHNfZWNwX2dyb3VwICpncnAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYmVkdGxzX21waSAqWCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IG1iZWR0bHNfbXBpICpBLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWJlZHRsc19tcGlfdWludCBjKQoreworICAgIGludCByZXQgPSBNQkVEVExTX0VSUl9FUlJPUl9DT1JSVVBUSU9OX0RFVEVDVEVEOworCisgICAgTUJFRFRMU19NUElfQ0hLKG1iZWR0bHNfbXBpX211bF9pbnQoWCwgQSwgYykpOworICAgIE1PRF9BREQoWCk7CitjbGVhbnVwOgorICAgIHJldHVybiByZXQ7Cit9CisKK01CRURUTFNfTUFZQkVfVU5VU0VECitzdGF0aWMgaW5saW5lIGludCBtYmVkdGxzX21waV9zdWJfaW50X21vZChjb25zdCBtYmVkdGxzX2VjcF9ncm91cCAqZ3JwLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWJlZHRsc19tcGkgKlgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBtYmVkdGxzX21waSAqQSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1iZWR0bHNfbXBpX3VpbnQgYykKK3sKKyAgICBpbnQgcmV0ID0gTUJFRFRMU19FUlJfRVJST1JfQ09SUlVQVElPTl9ERVRFQ1RFRDsKKworICAgIE1CRURUTFNfTVBJX0NISyhtYmVkdGxzX21waV9zdWJfaW50KFgsIEEsIGMpKTsKKyAgICBNT0RfU1VCKFgpOworY2xlYW51cDoKKyAgICByZXR1cm4gcmV0OworfQorCisjZGVmaW5lIE1QSV9FQ1BfU1VCX0lOVChYLCBBLCBjKSAgICAgICAgICAgICBcCisgICAgTUJFRFRMU19NUElfQ0hLKG1iZWR0bHNfbXBpX3N1Yl9pbnRfbW9kKGdycCwgWCwgQSwgYykpCisKK01CRURUTFNfTUFZQkVfVU5VU0VECitzdGF0aWMgaW5saW5lIGludCBtYmVkdGxzX21waV9zaGlmdF9sX21vZChjb25zdCBtYmVkdGxzX2VjcF9ncm91cCAqZ3JwLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWJlZHRsc19tcGkgKlgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgY291bnQpCit7CisgICAgaW50IHJldCA9IE1CRURUTFNfRVJSX0VSUk9SX0NPUlJVUFRJT05fREVURUNURUQ7CisgICAgTUJFRFRMU19NUElfQ0hLKG1iZWR0bHNfbXBpX3NoaWZ0X2woWCwgY291bnQpKTsKKyAgICBNT0RfQUREKFgpOworY2xlYW51cDoKKyAgICByZXR1cm4gcmV0OworfQorCisvKgorICogTWFjcm8gd3JhcHBlcnMgYXJvdW5kIEVDUCBtb2R1bGFyIGFyaXRobWV0aWMKKyAqCisgKiBDdXJyZW50bHksIHRoZXNlIHdyYXBwZXJzIGFyZSBkZWZpbmVkIHZpYSB0aGUgYmlnbnVtIG1vZHVsZS4KKyAqLworCisjZGVmaW5lIE1QSV9FQ1BfQUREKFgsIEEsIEIpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgTUJFRFRMU19NUElfQ0hLKG1iZWR0bHNfbXBpX2FkZF9tb2QoZ3JwLCBYLCBBLCBCKSkKKworI2RlZmluZSBNUElfRUNQX1NVQihYLCBBLCBCKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIE1CRURUTFNfTVBJX0NISyhtYmVkdGxzX21waV9zdWJfbW9kKGdycCwgWCwgQSwgQikpCisKKyNkZWZpbmUgTVBJX0VDUF9NVUwoWCwgQSwgQikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICBNQkVEVExTX01QSV9DSEsobWJlZHRsc19tcGlfbXVsX21vZChncnAsIFgsIEEsIEIpKQorCisjZGVmaW5lIE1QSV9FQ1BfU1FSKFgsIEEpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgTUJFRFRMU19NUElfQ0hLKG1iZWR0bHNfbXBpX211bF9tb2QoZ3JwLCBYLCBBLCBBKSkKKworI2RlZmluZSBNUElfRUNQX01VTF9JTlQoWCwgQSwgYykgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIE1CRURUTFNfTVBJX0NISyhtYmVkdGxzX21waV9tdWxfaW50X21vZChncnAsIFgsIEEsIGMpKQorCisjZGVmaW5lIE1QSV9FQ1BfSU5WKGRzdCwgc3JjKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgTUJFRFRMU19NUElfQ0hLKG1iZWR0bHNfbXBpX2ludl9tb2QoKGRzdCksIChzcmMpLCAmZ3JwLT5QKSkKKworI2RlZmluZSBNUElfRUNQX01PVihYLCBBKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIE1CRURUTFNfTVBJX0NISyhtYmVkdGxzX21waV9jb3B5KFgsIEEpKQorCisjZGVmaW5lIE1QSV9FQ1BfU0hJRlRfTChYLCBjb3VudCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgTUJFRFRMU19NUElfQ0hLKG1iZWR0bHNfbXBpX3NoaWZ0X2xfbW9kKGdycCwgWCwgY291bnQpKQorCisjZGVmaW5lIE1QSV9FQ1BfTFNFVChYLCBjKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgTUJFRFRMU19NUElfQ0hLKG1iZWR0bHNfbXBpX2xzZXQoWCwgYykpCisKKyNkZWZpbmUgTVBJX0VDUF9DTVBfSU5UKFgsIGMpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICBtYmVkdGxzX21waV9jbXBfaW50KFgsIGMpCisKKyNkZWZpbmUgTVBJX0VDUF9DTVAoWCwgWSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICBtYmVkdGxzX21waV9jbXBfbXBpKFgsIFkpCisKKy8qIE5lZWRzIGZfcm5nLCBwX3JuZyB0byBiZSBkZWZpbmVkLiAqLworI2RlZmluZSBNUElfRUNQX1JBTkQoWCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIE1CRURUTFNfTVBJX0NISyhtYmVkdGxzX21waV9yYW5kb20oKFgpLCAyLCAmZ3JwLT5QLCBmX3JuZywgcF9ybmcpKQorCisvKiBDb25kaXRpb25hbCBuZWdhdGlvbgorICogTmVlZHMgZ3JwIGFuZCBhIHRlbXBvcmFyeSBNUEkgdG1wIHRvIGJlIGRlZmluZWQuICovCisjZGVmaW5lIE1QSV9FQ1BfQ09ORF9ORUcoWCwgY29uZCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIGRvICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICB1bnNpZ25lZCBjaGFyIG5vbnplcm8gPSBtYmVkdGxzX21waV9jbXBfaW50KChYKSwgMCkgIT0gMDsgICAgICAgIFwKKyAgICAgICAgTUJFRFRMU19NUElfQ0hLKG1iZWR0bHNfbXBpX3N1Yl9tcGkoJnRtcCwgJmdycC0+UCwgKFgpKSk7ICAgICAgXAorICAgICAgICBNQkVEVExTX01QSV9DSEsobWJlZHRsc19tcGlfc2FmZV9jb25kX2Fzc2lnbigoWCksICZ0bXAsICAgICAgICAgIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9uemVybyAmIGNvbmQpKTsgXAorICAgIH0gd2hpbGUgKDApCisKKyNkZWZpbmUgTVBJX0VDUF9ORUcoWCkgTVBJX0VDUF9DT05EX05FRygoWCksIDEpCisKKyNkZWZpbmUgTVBJX0VDUF9WQUxJRChYKSAgICAgICAgICAgICAgICAgICAgICBcCisgICAgKChYKS0+cCAhPSBOVUxMKQorCisjZGVmaW5lIE1QSV9FQ1BfQ09ORF9BU1NJR04oWCwgWSwgY29uZCkgICAgICAgXAorICAgIE1CRURUTFNfTVBJX0NISyhtYmVkdGxzX21waV9zYWZlX2NvbmRfYXNzaWduKChYKSwgKFkpLCAoY29uZCkpKQorCisjZGVmaW5lIE1QSV9FQ1BfQ09ORF9TV0FQKFgsIFksIGNvbmQpICAgICAgIFwKKyAgICBNQkVEVExTX01QSV9DSEsobWJlZHRsc19tcGlfc2FmZV9jb25kX3N3YXAoKFgpLCAoWSksIChjb25kKSkpCisKKyNpZiBkZWZpbmVkKE1CRURUTFNfRUNQX1NIT1JUX1dFSUVSU1RSQVNTX0VOQUJMRUQpCisKKy8qCisgKiBDb21wdXRlcyB0aGUgcmlnaHQtaGFuZCBzaWRlIG9mIHRoZSBTaG9ydCBXZWllcnN0cmFzcyBlcXVhdGlvbgorICogUkhTID0gWF4zICsgQSBYICsgQgorICovCitzdGF0aWMgaW50IGVjcF9zd19yaHMoY29uc3QgbWJlZHRsc19lY3BfZ3JvdXAgKmdycCwKKyAgICAgICAgICAgICAgICAgICAgICBtYmVkdGxzX21waSAqcmhzLAorICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IG1iZWR0bHNfbXBpICpYKQoreworICAgIGludCByZXQ7CisKKyAgICAvKiBDb21wdXRlIFheMyArIEEgWCArIEIgYXMgWCAoWF4yICsgQSkgKyBCICovCisgICAgTVBJX0VDUF9TUVIocmhzLCBYKTsKKworICAgIC8qIFNwZWNpYWwgY2FzZSBmb3IgQSA9IC0zICovCisgICAgaWYgKG1iZWR0bHNfZWNwX2dyb3VwX2FfaXNfbWludXNfMyhncnApKSB7CisgICAgICAgIE1QSV9FQ1BfU1VCX0lOVChyaHMsIHJocywgMyk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgTVBJX0VDUF9BREQocmhzLCByaHMsICZncnAtPkEpOworICAgIH0KKworICAgIE1QSV9FQ1BfTVVMKHJocywgcmhzLCBYKTsKKyAgICBNUElfRUNQX0FERChyaHMsIHJocywgJmdycC0+Qik7CisKK2NsZWFudXA6CisgICAgcmV0dXJuIHJldDsKK30KKworLyoKKyAqIERlcml2ZSBZIGZyb20gWCBhbmQgYSBwYXJpdHkgYml0CisgKi8KK3N0YXRpYyBpbnQgbWJlZHRsc19lY3Bfc3dfZGVyaXZlX3koY29uc3QgbWJlZHRsc19lY3BfZ3JvdXAgKmdycCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbWJlZHRsc19tcGkgKlgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1iZWR0bHNfbXBpICpZLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgcGFyaXR5X2JpdCkKK3sKKyAgICAvKiB3ID0geV4yID0geF4zICsgYXggKyBiCisgICAgICogeSA9IHNxcnQodykgPSB3XigocCsxKS80KSBtb2QgcCAgIChmb3IgcHJpbWUgcCB3aGVyZSBwID0gMyBtb2QgNCkKKyAgICAgKgorICAgICAqIE5vdGU6IHRoaXMgbWV0aG9kIGZvciBleHRyYWN0aW5nIHNxdWFyZSByb290IGRvZXMgbm90IHZhbGlkYXRlIHRoYXQgdworICAgICAqIHdhcyBpbmRlZWQgYSBzcXVhcmUgc28gdGhpcyBmdW5jdGlvbiB3aWxsIHJldHVybiBnYXJiYWdlIGluIFkgaWYgWAorICAgICAqIGRvZXMgbm90IGNvcnJlc3BvbmQgdG8gYSBwb2ludCBvbiB0aGUgY3VydmUuCisgICAgICovCisKKyAgICAvKiBDaGVjayBwcmVyZXF1aXNpdGUgcCA9IDMgbW9kIDQgKi8KKyAgICBpZiAobWJlZHRsc19tcGlfZ2V0X2JpdCgmZ3JwLT5QLCAwKSAhPSAxIHx8CisgICAgICAgIG1iZWR0bHNfbXBpX2dldF9iaXQoJmdycC0+UCwgMSkgIT0gMSkgeworICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfRUNQX0ZFQVRVUkVfVU5BVkFJTEFCTEU7CisgICAgfQorCisgICAgaW50IHJldDsKKyAgICBtYmVkdGxzX21waSBleHA7CisgICAgbWJlZHRsc19tcGlfaW5pdCgmZXhwKTsKKworICAgIC8qIHVzZSBZIHRvIHN0b3JlIGludGVybWVkaWF0ZSByZXN1bHQsIGFjdHVhbGx5IHcgYWJvdmUgKi8KKyAgICBNQkVEVExTX01QSV9DSEsoZWNwX3N3X3JocyhncnAsIFksIFgpKTsKKworICAgIC8qIHcgPSB5XjIgKi8gLyogWSBjb250YWlucyB5XjIgaW50ZXJtZWRpYXRlIHJlc3VsdCAqLworICAgIC8qIGV4cCA9ICgocCsxKS80KSAqLworICAgIE1CRURUTFNfTVBJX0NISyhtYmVkdGxzX21waV9hZGRfaW50KCZleHAsICZncnAtPlAsIDEpKTsKKyAgICBNQkVEVExTX01QSV9DSEsobWJlZHRsc19tcGlfc2hpZnRfcigmZXhwLCAyKSk7CisgICAgLyogc3FydCh3KSA9IHdeKChwKzEpLzQpIG1vZCBwICAgKGZvciBwcmltZSBwIHdoZXJlIHAgPSAzIG1vZCA0KSAqLworICAgIE1CRURUTFNfTVBJX0NISyhtYmVkdGxzX21waV9leHBfbW9kKFksIFkgLyp5XjIqLywgJmV4cCwgJmdycC0+UCwgTlVMTCkpOworCisgICAgLyogY2hlY2sgcGFyaXR5IGJpdCBtYXRjaCBvciBlbHNlIGludmVydCBZICovCisgICAgLyogVGhpcyBxdWljayBpbnZlcnNpb24gaW1wbGVtZW50YXRpb24gaXMgdmFsaWQgYmVjYXVzZSBZICE9IDAgZm9yIGFsbAorICAgICAqIFNob3J0IFdlaWVyc3RyYXNzIGN1cnZlcyBzdXBwb3J0ZWQgYnkgbWJlZHRscywgYXMgZWFjaCBzdXBwb3J0ZWQgY3VydmUKKyAgICAgKiBoYXMgYW4gb3JkZXIgdGhhdCBpcyBhIGxhcmdlIHByaW1lLCBzbyBlYWNoIHN1cHBvcnRlZCBjdXJ2ZSBkb2VzIG5vdAorICAgICAqIGhhdmUgYW55IHBvaW50IG9mIG9yZGVyIDIsIGFuZCBhIHBvaW50IHdpdGggWSA9PSAwIHdvdWxkIGJlIG9mIG9yZGVyIDIgKi8KKyAgICBpZiAobWJlZHRsc19tcGlfZ2V0X2JpdChZLCAwKSAhPSBwYXJpdHlfYml0KSB7CisgICAgICAgIE1CRURUTFNfTVBJX0NISyhtYmVkdGxzX21waV9zdWJfbXBpKFksICZncnAtPlAsIFkpKTsKKyAgICB9CisKK2NsZWFudXA6CisKKyAgICBtYmVkdGxzX21waV9mcmVlKCZleHApOworICAgIHJldHVybiByZXQ7Cit9CisjZW5kaWYgLyogTUJFRFRMU19FQ1BfU0hPUlRfV0VJRVJTVFJBU1NfRU5BQkxFRCAqLworCisjaWYgZGVmaW5lZChNQkVEVExTX0VDUF9DKQorI2lmIGRlZmluZWQoTUJFRFRMU19FQ1BfU0hPUlRfV0VJRVJTVFJBU1NfRU5BQkxFRCkKKy8qCisgKiBGb3IgY3VydmVzIGluIHNob3J0IFdlaWVyc3RyYXNzIGZvcm0sIHdlIGRvIGFsbCB0aGUgaW50ZXJuYWwgb3BlcmF0aW9ucyBpbgorICogSmFjb2JpYW4gY29vcmRpbmF0ZXMuCisgKgorICogRm9yIG11bHRpcGxpY2F0aW9uLCB3ZSdsbCB1c2UgYSBjb21iIG1ldGhvZCB3aXRoIGNvdW50ZXJtZWFzdXJlcyBhZ2FpbnN0CisgKiBTUEEsIGhlbmNlIHRpbWluZyBhdHRhY2tzLgorICovCisKKy8qCisgKiBOb3JtYWxpemUgamFjb2JpYW4gY29vcmRpbmF0ZXMgc28gdGhhdCBaID09IDAgfHwgWiA9PSAxICAoR0VDQyAzLjIuMSkKKyAqIENvc3Q6IDFOIDo9IDFJICsgM00gKyAxUworICovCitzdGF0aWMgaW50IGVjcF9ub3JtYWxpemVfamFjKGNvbnN0IG1iZWR0bHNfZWNwX2dyb3VwICpncnAsIG1iZWR0bHNfZWNwX3BvaW50ICpwdCkKK3sKKyAgICBpZiAoTVBJX0VDUF9DTVBfSU5UKCZwdC0+WiwgMCkgPT0gMCkgeworICAgICAgICByZXR1cm4gMDsKKyAgICB9CisKKyAgICBpbnQgcmV0ID0gTUJFRFRMU19FUlJfRVJST1JfQ09SUlVQVElPTl9ERVRFQ1RFRDsKKyAgICBtYmVkdGxzX21waSBUOworICAgIG1iZWR0bHNfbXBpX2luaXQoJlQpOworCisgICAgTVBJX0VDUF9JTlYoJlQsICAgICAgICZwdC0+Wik7ICAgICAgICAgICAgLyogVCAgIDwtICAgICAgICAgIDEgLyBaICAgKi8KKyAgICBNUElfRUNQX01VTCgmcHQtPlksICAgJnB0LT5ZLCAgICAgJlQpOyAgICAvKiBZJyAgPC0gWSpUICAgID0gWSAvIFogICAqLworICAgIE1QSV9FQ1BfU1FSKCZULCAgICAgICAmVCk7ICAgICAgICAgICAgICAgIC8qIFQgICA8LSBUXjIgICAgPSAxIC8gWl4yICovCisgICAgTVBJX0VDUF9NVUwoJnB0LT5YLCAgICZwdC0+WCwgICAgICZUKTsgICAgLyogWCAgIDwtIFggICogVCA9IFggLyBaXjIgKi8KKyAgICBNUElfRUNQX01VTCgmcHQtPlksICAgJnB0LT5ZLCAgICAgJlQpOyAgICAvKiBZJycgPC0gWScgKiBUID0gWSAvIFpeMyAqLworCisgICAgTVBJX0VDUF9MU0VUKCZwdC0+WiwgMSk7CisKK2NsZWFudXA6CisKKyAgICBtYmVkdGxzX21waV9mcmVlKCZUKTsKKworICAgIHJldHVybiByZXQ7Cit9CisKKy8qCisgKiBOb3JtYWxpemUgamFjb2JpYW4gY29vcmRpbmF0ZXMgb2YgYW4gYXJyYXkgb2YgKHBvaW50ZXJzIHRvKSBwb2ludHMsCisgKiB1c2luZyBNb250Z29tZXJ5J3MgdHJpY2sgdG8gcGVyZm9ybSBvbmx5IG9uZSBpbnZlcnNpb24gbW9kIFAuCisgKiAoU2VlIGZvciBleGFtcGxlIENvaGVuJ3MgIkEgQ291cnNlIGluIENvbXB1dGF0aW9uYWwgQWxnZWJyYWljIE51bWJlcgorICogVGhlb3J5IiwgQWxnb3JpdGhtIDEwLjMuNC4pCisgKgorICogV2FybmluZzogZmFpbHMgKHJldHVybmluZyBhbiBlcnJvcikgaWYgb25lIG9mIHRoZSBwb2ludHMgaXMgemVybyEKKyAqIFRoaXMgc2hvdWxkIG5ldmVyIGhhcHBlbiwgc2VlIGNob2ljZSBvZiB3IGluIGVjcF9tdWxfY29tYigpLgorICoKKyAqIENvc3Q6IDFOKHQpIDo9IDFJICsgKDZ0IC0gMylNICsgMVMKKyAqLworc3RhdGljIGludCBlY3Bfbm9ybWFsaXplX2phY19tYW55KGNvbnN0IG1iZWR0bHNfZWNwX2dyb3VwICpncnAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWJlZHRsc19lY3BfcG9pbnQgKlRbXSwgc2l6ZV90IFRfc2l6ZSkKK3sKKyAgICBpZiAoVF9zaXplIDwgMikgeworICAgICAgICByZXR1cm4gZWNwX25vcm1hbGl6ZV9qYWMoZ3JwLCAqVCk7CisgICAgfQorCisgICAgaW50IHJldCA9IE1CRURUTFNfRVJSX0VSUk9SX0NPUlJVUFRJT05fREVURUNURUQ7CisgICAgc2l6ZV90IGk7CisgICAgbWJlZHRsc19tcGkgKmMsIHQ7CisKKyAgICBpZiAoKGMgPSBtYmVkdGxzX2NhbGxvYyhUX3NpemUsIHNpemVvZihtYmVkdGxzX21waSkpKSA9PSBOVUxMKSB7CisgICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9FQ1BfQUxMT0NfRkFJTEVEOworICAgIH0KKworICAgIG1iZWR0bHNfbXBpX2luaXQoJnQpOworCisgICAgbXBpX2luaXRfbWFueShjLCBUX3NpemUpOworICAgIC8qCisgICAgICogY1tpXSA9IFpfMCAqIC4uLiAqIFpfaSwgICBpID0gMCwuLixuIDo9IFRfc2l6ZS0xCisgICAgICovCisgICAgTVBJX0VDUF9NT1YoJmNbMF0sICZUWzBdLT5aKTsKKyAgICBmb3IgKGkgPSAxOyBpIDwgVF9zaXplOyBpKyspIHsKKyAgICAgICAgTVBJX0VDUF9NVUwoJmNbaV0sICZjW2ktMV0sICZUW2ldLT5aKTsKKyAgICB9CisKKyAgICAvKgorICAgICAqIGNbbl0gPSAxIC8gKFpfMCAqIC4uLiAqIFpfbikgbW9kIFAKKyAgICAgKi8KKyAgICBNUElfRUNQX0lOVigmY1tUX3NpemUtMV0sICZjW1Rfc2l6ZS0xXSk7CisKKyAgICBmb3IgKGkgPSBUX3NpemUgLSAxOzsgaS0tKSB7CisgICAgICAgIC8qIEF0IHRoZSBzdGFydCBvZiBpdGVyYXRpb24gaSAobm90ZSB0aGF0IGkgZGVjcmVtZW50cyksIHdlIGhhdmUKKyAgICAgICAgICogLSBjW2pdID0gWl8wICogLi4uLiAqIFpfaiAgICAgICAgZm9yIGogIDwgaSwKKyAgICAgICAgICogLSBjW2pdID0gMSAvIChaXzAgKiAuLi4uICogWl9qKSAgZm9yIGogPT0gaSwKKyAgICAgICAgICoKKyAgICAgICAgICogVGhpcyBpcyBtYWludGFpbmVkIHZpYQorICAgICAgICAgKiAtIGNbaS0xXSA8LSBjW2ldICogWl9pCisgICAgICAgICAqCisgICAgICAgICAqIFdlIGFsc28gZGVyaXZlIDEvWl9pID0gY1tpXSAqIGNbaS0xXSBmb3IgaT4wIGFuZCB1c2UgdGhhdAorICAgICAgICAgKiB0byBkbyB0aGUgYWN0dWFsIG5vcm1hbGl6YXRpb24uIEZvciBpPT0wLCB3ZSBhbHJlYWR5IGhhdmUKKyAgICAgICAgICogY1swXSA9IDEgLyBaXzAuCisgICAgICAgICAqLworCisgICAgICAgIGlmIChpID4gMCkgeworICAgICAgICAgICAgLyogQ29tcHV0ZSAxL1pfaSBhbmQgZXN0YWJsaXNoIGludmFyaWFudCBmb3IgdGhlIG5leHQgaXRlcmF0aW9uLiAqLworICAgICAgICAgICAgTVBJX0VDUF9NVUwoJnQsICAgICAgJmNbaV0sICZjW2ktMV0pOworICAgICAgICAgICAgTVBJX0VDUF9NVUwoJmNbaS0xXSwgJmNbaV0sICZUW2ldLT5aKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIE1QSV9FQ1BfTU9WKCZ0LCAmY1swXSk7CisgICAgICAgIH0KKworICAgICAgICAvKiBOb3cgdCBob2xkcyAxIC8gWl9pOyBub3JtYWxpemUgYXMgaW4gZWNwX25vcm1hbGl6ZV9qYWMoKSAqLworICAgICAgICBNUElfRUNQX01VTCgmVFtpXS0+WSwgJlRbaV0tPlksICZ0KTsKKyAgICAgICAgTVBJX0VDUF9TUVIoJnQsICAgICAgICZ0KTsKKyAgICAgICAgTVBJX0VDUF9NVUwoJlRbaV0tPlgsICZUW2ldLT5YLCAmdCk7CisgICAgICAgIE1QSV9FQ1BfTVVMKCZUW2ldLT5ZLCAmVFtpXS0+WSwgJnQpOworCisgICAgICAgIC8qCisgICAgICAgICAqIFBvc3QtcHJlY2Vzc2luZzogcmVjbGFpbSBzb21lIG1lbW9yeSBieSBzaHJpbmtpbmcgY29vcmRpbmF0ZXMKKyAgICAgICAgICogLSBub3Qgc3RvcmluZyBaIChhbHdheXMgMSkKKyAgICAgICAgICogLSBzaHJpbmtpbmcgb3RoZXIgY29vcmRpbmF0ZXMsIGJ1dCBzdGlsbCBrZWVwaW5nIHRoZSBzYW1lIG51bWJlciBvZgorICAgICAgICAgKiAgIGxpbWJzIGFzIFAsIGFzIG90aGVyd2lzZSBpdCB3aWxsIHRvbyBsaWtlbHkgYmUgcmVncm93biB0b28gZmFzdC4KKyAgICAgICAgICovCisgICAgICAgIE1CRURUTFNfTVBJX0NISyhtYmVkdGxzX21waV9zaHJpbmsoJlRbaV0tPlgsIGdycC0+UC5uKSk7CisgICAgICAgIE1CRURUTFNfTVBJX0NISyhtYmVkdGxzX21waV9zaHJpbmsoJlRbaV0tPlksIGdycC0+UC5uKSk7CisKKyAgICAgICAgTVBJX0VDUF9MU0VUKCZUW2ldLT5aLCAxKTsKKworICAgICAgICBpZiAoaSA9PSAwKSB7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgIH0KKworY2xlYW51cDoKKworICAgIG1iZWR0bHNfbXBpX2ZyZWUoJnQpOworICAgIG1waV9mcmVlX21hbnkoYywgVF9zaXplKTsKKyAgICBtYmVkdGxzX2ZyZWUoYyk7CisKKyAgICByZXR1cm4gcmV0OworfQorCisvKgorICogQ29uZGl0aW9uYWwgcG9pbnQgaW52ZXJzaW9uOiBRIC0+IC1RID0gKFEuWCwgLVEuWSwgUS5aKSB3aXRob3V0IGxlYWsuCisgKiAiaW52IiBtdXN0IGJlIDAgKGRvbid0IGludmVydCkgb3IgMSAoaW52ZXJ0KSBvciB0aGUgcmVzdWx0IHdpbGwgYmUgaW52YWxpZAorICovCitzdGF0aWMgaW50IGVjcF9zYWZlX2ludmVydF9qYWMoY29uc3QgbWJlZHRsc19lY3BfZ3JvdXAgKmdycCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYmVkdGxzX2VjcF9wb2ludCAqUSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBjaGFyIGludikKK3sKKyAgICBpbnQgcmV0ID0gTUJFRFRMU19FUlJfRVJST1JfQ09SUlVQVElPTl9ERVRFQ1RFRDsKKyAgICBtYmVkdGxzX21waSB0bXA7CisgICAgbWJlZHRsc19tcGlfaW5pdCgmdG1wKTsKKworICAgIE1QSV9FQ1BfQ09ORF9ORUcoJlEtPlksIGludik7CisKK2NsZWFudXA6CisgICAgbWJlZHRsc19tcGlfZnJlZSgmdG1wKTsKKyAgICByZXR1cm4gcmV0OworfQorCisvKgorICogUG9pbnQgZG91YmxpbmcgUiA9IDIgUCwgSmFjb2JpYW4gY29vcmRpbmF0ZXMKKyAqCisgKiBCYXNlZCBvbiBodHRwOi8vd3d3Lmh5cGVyZWxsaXB0aWMub3JnL0VGRC9nMXAvYXV0by1zaG9ydHctamFjb2JpYW4uaHRtbCNkb3VibGluZy1kYmwtMTk5OC1jbW8tMiAuCisgKgorICogV2UgZm9sbG93IHRoZSB2YXJpYWJsZSBuYW1pbmcgZmFpcmx5IGNsb3NlbHkuIFRoZSBmb3JtdWxhIHZhcmlhdGlvbnMgdGhhdCB0cmFkZSBhIE1VTCBmb3IgYSBTUVIKKyAqIChwbHVzIGEgZmV3IEFERHMpIGFyZW4ndCB1c2VmdWwgYXMgb3VyIGJpZ251bSBpbXBsZW1lbnRhdGlvbiBkb2Vzbid0IGRpc3Rpbmd1aXNoIHNxdWFyaW5nLgorICoKKyAqIFN0YW5kYXJkIG9wdGltaXphdGlvbnMgYXJlIGFwcGxpZWQgd2hlbiBjdXJ2ZSBwYXJhbWV0ZXIgQSBpcyBvbmUgb2YgeyAwLCAtMyB9LgorICoKKyAqIENvc3Q6IDFEIDo9IDNNICsgNFMgICAgICAgICAgKEEgPT0gIDApCisgKiAgICAgICAgICAgICA0TSArIDRTICAgICAgICAgIChBID09IC0zKQorICogICAgICAgICAgICAgM00gKyA2UyArIDFhICAgICBvdGhlcndpc2UKKyAqLworc3RhdGljIGludCBlY3BfZG91YmxlX2phYyhjb25zdCBtYmVkdGxzX2VjcF9ncm91cCAqZ3JwLCBtYmVkdGxzX2VjcF9wb2ludCAqUiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbWJlZHRsc19lY3BfcG9pbnQgKlAsCisgICAgICAgICAgICAgICAgICAgICAgICAgIG1iZWR0bHNfbXBpIHRtcFs0XSkKK3sKKyNpZiBkZWZpbmVkKE1CRURUTFNfU0VMRl9URVNUKQorICAgIGRibF9jb3VudCsrOworI2VuZGlmCisKKyAgICBpbnQgcmV0ID0gTUJFRFRMU19FUlJfRVJST1JfQ09SUlVQVElPTl9ERVRFQ1RFRDsKKworICAgIC8qIFNwZWNpYWwgY2FzZSBmb3IgQSA9IC0zICovCisgICAgaWYgKG1iZWR0bHNfZWNwX2dyb3VwX2FfaXNfbWludXNfMyhncnApKSB7CisgICAgICAgIC8qIHRtcFswXSA8LSBNID0gMyhYICsgWl4yKShYIC0gWl4yKSAqLworICAgICAgICBNUElfRUNQX1NRUigmdG1wWzFdLCAgJlAtPlopOworICAgICAgICBNUElfRUNQX0FERCgmdG1wWzJdLCAgJlAtPlgsICAmdG1wWzFdKTsKKyAgICAgICAgTVBJX0VDUF9TVUIoJnRtcFszXSwgICZQLT5YLCAgJnRtcFsxXSk7CisgICAgICAgIE1QSV9FQ1BfTVVMKCZ0bXBbMV0sICAmdG1wWzJdLCAgICAgJnRtcFszXSk7CisgICAgICAgIE1QSV9FQ1BfTVVMX0lOVCgmdG1wWzBdLCAgJnRtcFsxXSwgICAgIDMpOworICAgIH0gZWxzZSB7CisgICAgICAgIC8qIHRtcFswXSA8LSBNID0gMy5YXjIgKyBBLlpeNCAqLworICAgICAgICBNUElfRUNQX1NRUigmdG1wWzFdLCAgJlAtPlgpOworICAgICAgICBNUElfRUNQX01VTF9JTlQoJnRtcFswXSwgICZ0bXBbMV0sICAzKTsKKworICAgICAgICAvKiBPcHRpbWl6ZSBhd2F5IGZvciAia29ibGl0eiIgY3VydmVzIHdpdGggQSA9IDAgKi8KKyAgICAgICAgaWYgKE1QSV9FQ1BfQ01QX0lOVCgmZ3JwLT5BLCAwKSAhPSAwKSB7CisgICAgICAgICAgICAvKiBNICs9IEEuWl40ICovCisgICAgICAgICAgICBNUElfRUNQX1NRUigmdG1wWzFdLCAgJlAtPlopOworICAgICAgICAgICAgTVBJX0VDUF9TUVIoJnRtcFsyXSwgICZ0bXBbMV0pOworICAgICAgICAgICAgTVBJX0VDUF9NVUwoJnRtcFsxXSwgICZ0bXBbMl0sICAgICAmZ3JwLT5BKTsKKyAgICAgICAgICAgIE1QSV9FQ1BfQUREKCZ0bXBbMF0sICAmdG1wWzBdLCAgICAgJnRtcFsxXSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKiB0bXBbMV0gPC0gUyA9IDQuWC5ZXjIgKi8KKyAgICBNUElfRUNQX1NRUigmdG1wWzJdLCAgJlAtPlkpOworICAgIE1QSV9FQ1BfU0hJRlRfTCgmdG1wWzJdLCAgMSk7CisgICAgTVBJX0VDUF9NVUwoJnRtcFsxXSwgICZQLT5YLCAmdG1wWzJdKTsKKyAgICBNUElfRUNQX1NISUZUX0woJnRtcFsxXSwgIDEpOworCisgICAgLyogdG1wWzNdIDwtIFUgPSA4LlleNCAqLworICAgIE1QSV9FQ1BfU1FSKCZ0bXBbM10sICAmdG1wWzJdKTsKKyAgICBNUElfRUNQX1NISUZUX0woJnRtcFszXSwgIDEpOworCisgICAgLyogdG1wWzJdIDwtIFQgPSBNXjIgLSAyLlMgKi8KKyAgICBNUElfRUNQX1NRUigmdG1wWzJdLCAgJnRtcFswXSk7CisgICAgTVBJX0VDUF9TVUIoJnRtcFsyXSwgICZ0bXBbMl0sICZ0bXBbMV0pOworICAgIE1QSV9FQ1BfU1VCKCZ0bXBbMl0sICAmdG1wWzJdLCAmdG1wWzFdKTsKKworICAgIC8qIHRtcFsxXSA8LSBTID0gTShTIC0gVCkgLSBVICovCisgICAgTVBJX0VDUF9TVUIoJnRtcFsxXSwgICZ0bXBbMV0sICAgICAmdG1wWzJdKTsKKyAgICBNUElfRUNQX01VTCgmdG1wWzFdLCAgJnRtcFsxXSwgICAgICZ0bXBbMF0pOworICAgIE1QSV9FQ1BfU1VCKCZ0bXBbMV0sICAmdG1wWzFdLCAgICAgJnRtcFszXSk7CisKKyAgICAvKiB0bXBbM10gPC0gVSA9IDIuWS5aICovCisgICAgTVBJX0VDUF9NVUwoJnRtcFszXSwgICZQLT5ZLCAgJlAtPlopOworICAgIE1QSV9FQ1BfU0hJRlRfTCgmdG1wWzNdLCAgMSk7CisKKyAgICAvKiBTdG9yZSByZXN1bHRzICovCisgICAgTVBJX0VDUF9NT1YoJlItPlgsICZ0bXBbMl0pOworICAgIE1QSV9FQ1BfTU9WKCZSLT5ZLCAmdG1wWzFdKTsKKyAgICBNUElfRUNQX01PVigmUi0+WiwgJnRtcFszXSk7CisKK2NsZWFudXA6CisKKyAgICByZXR1cm4gcmV0OworfQorCisvKgorICogQWRkaXRpb246IFIgPSBQICsgUSwgbWl4ZWQgYWZmaW5lLUphY29iaWFuIGNvb3JkaW5hdGVzIChHRUNDIDMuMjIpCisgKgorICogVGhlIGNvb3JkaW5hdGVzIG9mIFEgbXVzdCBiZSBub3JtYWxpemVkICg9IGFmZmluZSksCisgKiBidXQgdGhvc2Ugb2YgUCBkb24ndCBuZWVkIHRvLiBSIGlzIG5vdCBub3JtYWxpemVkLgorICoKKyAqIFAsUSxSIG1heSBhbGlhcywgYnV0IG9ubHkgYXQgdGhlIGxldmVsIG9mIEVDIHBvaW50czogdGhleSBtdXN0IGJlIGVpdGhlcgorICogZXF1YWwgYXMgcG9pbnRlcnMsIG9yIGRpc2pvaW50IChpbmNsdWRpbmcgdGhlIGNvb3JkaW5hdGUgZGF0YSBidWZmZXJzKS4KKyAqIEZpbmUtZ3JhaW5lZCBhbGlhc2luZyBhdCB0aGUgbGV2ZWwgb2YgY29vcmRpbmF0ZXMgaXMgbm90IHN1cHBvcnRlZC4KKyAqCisgKiBTcGVjaWFsIGNhc2VzOiAoMSkgUCBvciBRIGlzIHplcm8sICgyKSBSIGlzIHplcm8sICgzKSBQID09IFEuCisgKiBOb25lIG9mIHRoZXNlIGNhc2VzIGNhbiBoYXBwZW4gYXMgaW50ZXJtZWRpYXRlIHN0ZXAgaW4gZWNwX211bF9jb21iKCk6CisgKiAtIGF0IGVhY2ggc3RlcCwgUCwgUSBhbmQgUiBhcmUgbXVsdGlwbGVzIG9mIHRoZSBiYXNlIHBvaW50LCB0aGUgZmFjdG9yCisgKiAgIGJlaW5nIGxlc3MgdGhhbiBpdHMgb3JkZXIsIHNvIG5vbmUgb2YgdGhlbSBpcyB6ZXJvOworICogLSBRIGlzIGFuIG9kZCBtdWx0aXBsZSBvZiB0aGUgYmFzZSBwb2ludCwgUCBhbiBldmVuIG11bHRpcGxlLAorICogICBkdWUgdG8gdGhlIGNob2ljZSBvZiBwcmVjb21wdXRlZCBwb2ludHMgaW4gdGhlIG1vZGlmaWVkIGNvbWIgbWV0aG9kLgorICogU28gYnJhbmNoZXMgZm9yIHRoZXNlIGNhc2VzIGRvIG5vdCBsZWFrIHNlY3JldCBpbmZvcm1hdGlvbi4KKyAqCisgKiBDb3N0OiAxQSA6PSA4TSArIDNTCisgKi8KK3N0YXRpYyBpbnQgZWNwX2FkZF9taXhlZChjb25zdCBtYmVkdGxzX2VjcF9ncm91cCAqZ3JwLCBtYmVkdGxzX2VjcF9wb2ludCAqUiwKKyAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBtYmVkdGxzX2VjcF9wb2ludCAqUCwgY29uc3QgbWJlZHRsc19lY3BfcG9pbnQgKlEsCisgICAgICAgICAgICAgICAgICAgICAgICAgbWJlZHRsc19tcGkgdG1wWzRdKQoreworI2lmIGRlZmluZWQoTUJFRFRMU19TRUxGX1RFU1QpCisgICAgYWRkX2NvdW50Kys7CisjZW5kaWYKKworICAgIGludCByZXQgPSBNQkVEVExTX0VSUl9FUlJPUl9DT1JSVVBUSU9OX0RFVEVDVEVEOworCisgICAgLyogTk9URTogQWxpYXNpbmcgYmV0d2VlbiBpbnB1dCBhbmQgb3V0cHV0IGlzIGFsbG93ZWQsIHNvIG9uZSBoYXMgdG8gbWFrZQorICAgICAqICAgICAgIHN1cmUgdGhhdCBhdCB0aGUgcG9pbnQgWCxZLFogYXJlIHdyaXR0ZW4sIHtQLFF9LT57WCxZLFp9IGFyZSBubworICAgICAqICAgICAgIGxvbmdlciByZWFkIGZyb20uICovCisgICAgbWJlZHRsc19tcGkgKiBjb25zdCBYID0gJlItPlg7CisgICAgbWJlZHRsc19tcGkgKiBjb25zdCBZID0gJlItPlk7CisgICAgbWJlZHRsc19tcGkgKiBjb25zdCBaID0gJlItPlo7CisKKyAgICBpZiAoIU1QSV9FQ1BfVkFMSUQoJlEtPlopKSB7CisgICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9FQ1BfQkFEX0lOUFVUX0RBVEE7CisgICAgfQorCisgICAgLyoKKyAgICAgKiBUcml2aWFsIGNhc2VzOiBQID09IDAgb3IgUSA9PSAwIChjYXNlIDEpCisgICAgICovCisgICAgaWYgKE1QSV9FQ1BfQ01QX0lOVCgmUC0+WiwgMCkgPT0gMCkgeworICAgICAgICByZXR1cm4gbWJlZHRsc19lY3BfY29weShSLCBRKTsKKyAgICB9CisKKyAgICBpZiAoTVBJX0VDUF9DTVBfSU5UKCZRLT5aLCAwKSA9PSAwKSB7CisgICAgICAgIHJldHVybiBtYmVkdGxzX2VjcF9jb3B5KFIsIFApOworICAgIH0KKworICAgIC8qCisgICAgICogTWFrZSBzdXJlIFEgY29vcmRpbmF0ZXMgYXJlIG5vcm1hbGl6ZWQKKyAgICAgKi8KKyAgICBpZiAoTVBJX0VDUF9DTVBfSU5UKCZRLT5aLCAxKSAhPSAwKSB7CisgICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9FQ1BfQkFEX0lOUFVUX0RBVEE7CisgICAgfQorCisgICAgTVBJX0VDUF9TUVIoJnRtcFswXSwgJlAtPlopOworICAgIE1QSV9FQ1BfTVVMKCZ0bXBbMV0sICZ0bXBbMF0sICZQLT5aKTsKKyAgICBNUElfRUNQX01VTCgmdG1wWzBdLCAmdG1wWzBdLCAmUS0+WCk7CisgICAgTVBJX0VDUF9NVUwoJnRtcFsxXSwgJnRtcFsxXSwgJlEtPlkpOworICAgIE1QSV9FQ1BfU1VCKCZ0bXBbMF0sICZ0bXBbMF0sICZQLT5YKTsKKyAgICBNUElfRUNQX1NVQigmdG1wWzFdLCAmdG1wWzFdLCAmUC0+WSk7CisKKyAgICAvKiBTcGVjaWFsIGNhc2VzICgyKSBhbmQgKDMpICovCisgICAgaWYgKE1QSV9FQ1BfQ01QX0lOVCgmdG1wWzBdLCAwKSA9PSAwKSB7CisgICAgICAgIGlmIChNUElfRUNQX0NNUF9JTlQoJnRtcFsxXSwgMCkgPT0gMCkgeworICAgICAgICAgICAgcmV0ID0gZWNwX2RvdWJsZV9qYWMoZ3JwLCBSLCBQLCB0bXApOworICAgICAgICAgICAgZ290byBjbGVhbnVwOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgcmV0ID0gbWJlZHRsc19lY3Bfc2V0X3plcm8oUik7CisgICAgICAgICAgICBnb3RvIGNsZWFudXA7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKiB7UCxRfS0+WiBubyBsb25nZXIgdXNlZCwgc28gT0sgdG8gd3JpdGUgdG8gWiBldmVuIGlmIHRoZXJlJ3MgYWxpYXNpbmcuICovCisgICAgTVBJX0VDUF9NVUwoWiwgICAgICAgICZQLT5aLCAgICAmdG1wWzBdKTsKKyAgICBNUElfRUNQX1NRUigmdG1wWzJdLCAgJnRtcFswXSk7CisgICAgTVBJX0VDUF9NVUwoJnRtcFszXSwgICZ0bXBbMl0sICAmdG1wWzBdKTsKKyAgICBNUElfRUNQX01VTCgmdG1wWzJdLCAgJnRtcFsyXSwgICZQLT5YKTsKKworICAgIE1QSV9FQ1BfTU9WKCZ0bXBbMF0sICZ0bXBbMl0pOworICAgIE1QSV9FQ1BfU0hJRlRfTCgmdG1wWzBdLCAxKTsKKworICAgIC8qIHtQLFF9LT5YIG5vIGxvbmdlciB1c2VkLCBzbyBPSyB0byB3cml0ZSB0byBYIGV2ZW4gaWYgdGhlcmUncyBhbGlhc2luZy4gKi8KKyAgICBNUElfRUNQX1NRUihYLCAgICAgICAgJnRtcFsxXSk7CisgICAgTVBJX0VDUF9TVUIoWCwgICAgICAgIFgsICAgICAgICAmdG1wWzBdKTsKKyAgICBNUElfRUNQX1NVQihYLCAgICAgICAgWCwgICAgICAgICZ0bXBbM10pOworICAgIE1QSV9FQ1BfU1VCKCZ0bXBbMl0sICAmdG1wWzJdLCAgWCk7CisgICAgTVBJX0VDUF9NVUwoJnRtcFsyXSwgICZ0bXBbMl0sICAmdG1wWzFdKTsKKyAgICBNUElfRUNQX01VTCgmdG1wWzNdLCAgJnRtcFszXSwgICZQLT5ZKTsKKyAgICAvKiB7UCxRfS0+WSBubyBsb25nZXIgdXNlZCwgc28gT0sgdG8gd3JpdGUgdG8gWSBldmVuIGlmIHRoZXJlJ3MgYWxpYXNpbmcuICovCisgICAgTVBJX0VDUF9TVUIoWSwgICAgICZ0bXBbMl0sICAgICAmdG1wWzNdKTsKKworY2xlYW51cDoKKworICAgIHJldHVybiByZXQ7Cit9CisKKy8qCisgKiBSYW5kb21pemUgamFjb2JpYW4gY29vcmRpbmF0ZXM6CisgKiAoWCwgWSwgWikgLT4gKGxeMiBYLCBsXjMgWSwgbCBaKSBmb3IgcmFuZG9tIGwKKyAqIFRoaXMgaXMgc29ydCBvZiB0aGUgcmV2ZXJzZSBvcGVyYXRpb24gb2YgZWNwX25vcm1hbGl6ZV9qYWMoKS4KKyAqCisgKiBUaGlzIGNvdW50ZXJtZWFzdXJlIHdhcyBmaXJzdCBzdWdnZXN0ZWQgaW4gWzJdLgorICovCitzdGF0aWMgaW50IGVjcF9yYW5kb21pemVfamFjKGNvbnN0IG1iZWR0bHNfZWNwX2dyb3VwICpncnAsIG1iZWR0bHNfZWNwX3BvaW50ICpwdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50ICgqZl9ybmcpKHZvaWQgKiwgdW5zaWduZWQgY2hhciAqLCBzaXplX3QpLCB2b2lkICpwX3JuZykKK3sKKyAgICBpbnQgcmV0ID0gTUJFRFRMU19FUlJfRVJST1JfQ09SUlVQVElPTl9ERVRFQ1RFRDsKKyAgICBtYmVkdGxzX21waSBsOworCisgICAgbWJlZHRsc19tcGlfaW5pdCgmbCk7CisKKyAgICAvKiBHZW5lcmF0ZSBsIHN1Y2ggdGhhdCAxIDwgbCA8IHAgKi8KKyAgICBNUElfRUNQX1JBTkQoJmwpOworCisgICAgLyogWicgPSBsICogWiAqLworICAgIE1QSV9FQ1BfTVVMKCZwdC0+WiwgICAmcHQtPlosICAgICAmbCk7CisKKyAgICAvKiBZJyA9IGwgKiBZICovCisgICAgTVBJX0VDUF9NVUwoJnB0LT5ZLCAgICZwdC0+WSwgICAgICZsKTsKKworICAgIC8qIFgnID0gbF4yICogWCAqLworICAgIE1QSV9FQ1BfU1FSKCZsLCAgICAgICAmbCk7CisgICAgTVBJX0VDUF9NVUwoJnB0LT5YLCAgICZwdC0+WCwgICAgICZsKTsKKworICAgIC8qIFknJyA9IGxeMiAqIFknID0gbF4zICogWSAqLworICAgIE1QSV9FQ1BfTVVMKCZwdC0+WSwgICAmcHQtPlksICAgICAmbCk7CisKK2NsZWFudXA6CisgICAgbWJlZHRsc19tcGlfZnJlZSgmbCk7CisKKyAgICBpZiAocmV0ID09IE1CRURUTFNfRVJSX01QSV9OT1RfQUNDRVBUQUJMRSkgeworICAgICAgICByZXQgPSBNQkVEVExTX0VSUl9FQ1BfUkFORE9NX0ZBSUxFRDsKKyAgICB9CisgICAgcmV0dXJuIHJldDsKK30KKworLyoKKyAqIENoZWNrIGFuZCBkZWZpbmUgcGFyYW1ldGVycyB1c2VkIGJ5IHRoZSBjb21iIG1ldGhvZCAoc2VlIGJlbG93IGZvciBkZXRhaWxzKQorICovCisjaWYgTUJFRFRMU19FQ1BfV0lORE9XX1NJWkUgPCAyIHx8IE1CRURUTFNfRUNQX1dJTkRPV19TSVpFID4gNworI2Vycm9yICJNQkVEVExTX0VDUF9XSU5ET1dfU0laRSBvdXQgb2YgYm91bmRzIgorI2VuZGlmCisKKy8qIGQgPSBjZWlsKCBuIC8gdyApICovCisjZGVmaW5lIENPTUJfTUFYX0QgICAgICAoTUJFRFRMU19FQ1BfTUFYX0JJVFMgKyAxKSAvIDIKKworLyogbnVtYmVyIG9mIHByZWNvbXB1dGVkIHBvaW50cyAqLworI2RlZmluZSBDT01CX01BWF9QUkUgICAgKDEgPDwgKE1CRURUTFNfRUNQX1dJTkRPV19TSVpFIC0gMSkpCisKKy8qCisgKiBDb21wdXRlIHRoZSByZXByZXNlbnRhdGlvbiBvZiBtIHRoYXQgd2lsbCBiZSB1c2VkIHdpdGggb3VyIGNvbWIgbWV0aG9kLgorICoKKyAqIFRoZSBiYXNpYyBjb21iIG1ldGhvZCBpcyBkZXNjcmliZWQgaW4gR0VDQyAzLjQ0IGZvciBleGFtcGxlLiBXZSB1c2UgYQorICogbW9kaWZpZWQgdmVyc2lvbiB0aGF0IHByb3ZpZGVzIHJlc2lzdGFuY2UgdG8gU1BBIGJ5IGF2b2lkaW5nIHplcm8KKyAqIGRpZ2l0cyBpbiB0aGUgcmVwcmVzZW50YXRpb24gYXMgaW4gWzNdLiBXZSBtb2RpZnkgdGhlIG1ldGhvZCBmdXJ0aGVyIGJ5CisgKiByZXF1aXJpbmcgdGhhdCBhbGwgS19pIGJlIG9kZCwgd2hpY2ggaGFzIHRoZSBzbWFsbCBjb3N0IHRoYXQgb3VyCisgKiByZXByZXNlbnRhdGlvbiB1c2VzIG9uZSBtb3JlIEtfaSwgZHVlIHRvIGNhcnJpZXMsIGJ1dCBzYXZlcyBvbiB0aGUgc2l6ZSBvZgorICogdGhlIHByZWNvbXB1dGVkIHRhYmxlLgorICoKKyAqIFN1bW1hcnkgb2YgdGhlIGNvbWIgbWV0aG9kIGFuZCBpdHMgbW9kaWZpY2F0aW9uczoKKyAqCisgKiAtIFRoZSBnb2FsIGlzIHRvIGNvbXB1dGUgbSpQIGZvciBzb21lIHcqZC1iaXQgaW50ZWdlciBtLgorICoKKyAqIC0gVGhlIGJhc2ljIGNvbWIgbWV0aG9kIHNwbGl0cyBtIGludG8gdGhlIHctYml0IGludGVnZXJzCisgKiAgIHhbMF0gLi4geFtkLTFdIHdoZXJlIHhbaV0gY29uc2lzdHMgb2YgdGhlIGJpdHMgaW4gbSB3aG9zZQorICogICBpbmRleCBoYXMgcmVzaWR1ZSBpIG1vZHVsbyBkLCBhbmQgY29tcHV0ZXMgbSAqIFAgYXMKKyAqICAgU1t4WzBdXSArIDIgKiBTW3hbMV1dICsgLi4gKyAyXihkLTEpIFNbeFtkLTFdXSwgd2hlcmUKKyAqICAgU1tpX3t3LTF9IC4uIGlfMF0gOj0gaV97dy0xfSAyXnsody0xKWR9IFAgKyAuLi4gKyBpXzEgMl5kIFAgKyBpXzAgUC4KKyAqCisgKiAtIElmIGl0IGhhcHBlbnMgdGhhdCwgc2F5LCB4W2krMV09MCAoPT4gU1t4W2krMV1dPTApLCBvbmUgY2FuIHJlcGxhY2UgdGhlIHN1bSBieQorICogICAgLi4gKyAyXntpLTF9IFNbeFtpLTFdXSAtIDJeaSBTW3hbaV1dICsgMl57aSsxfSBTW3hbaV1dICsgMl57aSsyfSBTW3hbaSsyXV0gLi4sCisgKiAgIHRoZXJlYnkgc3VjY2Vzc2l2ZWx5IGNvbnZlcnRpbmcgaXQgaW50byBhIGZvcm0gd2hlcmUgYWxsIHN1bW1hbmRzCisgKiAgIGFyZSBub256ZXJvLCBhdCB0aGUgY29zdCBvZiBuZWdhdGl2ZSBzdW1tYW5kcy4gVGhpcyBpcyB0aGUgYmFzaWMgaWRlYSBvZiBbM10uCisgKgorICogLSBNb3JlIGdlbmVyYWxseSwgZXZlbiBpZiB4W2krMV0gIT0gMCwgd2UgY2FuIGZpcnN0IHRyYW5zZm9ybSB0aGUgc3VtIGFzCisgKiAgIC4uIC0gMl5pIFNbeFtpXV0gKyAyXntpKzF9ICggU1t4W2ldXSArIFNbeFtpKzFdXSApICsgMl57aSsyfSBTW3hbaSsyXV0gLi4sCisgKiAgIGFuZCB0aGVuIHJlcGxhY2UgU1t4W2ldXSArIFNbeFtpKzFdXSA9IFNbeFtpXSBeIHhbaSsxXV0gKyAyIFNbeFtpXSAmIHhbaSsxXV0uCisgKiAgIFBlcmZvcm1pbmcgYW5kIGl0ZXJhdGluZyB0aGlzIHByb2NlZHVyZSBmb3IgdGhvc2UgeFtpXSB0aGF0IGFyZSBldmVuCisgKiAgIChrZWVwaW5nIHRyYWNrIG9mIGNhcnJ5KSwgd2UgY2FuIHRyYW5zZm9ybSB0aGUgb3JpZ2luYWwgc3VtIGludG8gb25lIG9mIHRoZSBmb3JtCisgKiAgIFNbeCdbMF1dICstIDIgU1t4J1sxXV0gKy0gLi4gKy0gMl57ZC0xfSBTW3gnW2QtMV1dICsgMl5kIFNbeCdbZF1dCisgKiAgIHdpdGggYWxsIHgnW2ldIG9kZC4gSXQgaXMgdGhlcmVmb3JlIG9ubHkgbmVjZXNzYXJ5IHRvIGtub3cgUyBhdCBvZGQgaW5kaWNlcywKKyAqICAgd2hpY2ggaXMgd2h5IHdlIGFyZSBvbmx5IGNvbXB1dGluZyBoYWxmIG9mIGl0IGluIHRoZSBmaXJzdCBwbGFjZSBpbgorICogICBlY3BfcHJlY29tcHV0ZV9jb21iIGFuZCBhY2Nlc3NpbmcgaXQgd2l0aCBpbmRleCBhYnMoaSkgLyAyIGluIGVjcF9zZWxlY3RfY29tYi4KKyAqCisgKiAtIEZvciB0aGUgc2FrZSBvZiBjb21wYWN0bmVzcywgb25seSB0aGUgc2V2ZW4gbG93LW9yZGVyIGJpdHMgb2YgeFtpXQorICogICBhcmUgdXNlZCB0byByZXByZXNlbnQgaXRzIGFic29sdXRlIHZhbHVlIChLX2kgaW4gdGhlIHBhcGVyKSwgYW5kIHRoZSBtc2IKKyAqICAgb2YgeFtpXSBlbmNvZGVzIHRoZSBzaWduIChzX2kgaW4gdGhlIHBhcGVyKTogaXQgaXMgc2V0IGlmIGFuZCBvbmx5IGlmCisgKiAgIGlmIHNfaSA9PSAtMTsKKyAqCisgKiBDYWxsaW5nIGNvbnZlbnRpb25zOgorICogLSB4IGlzIGFuIGFycmF5IG9mIHNpemUgZCArIDEKKyAqIC0gdyBpcyB0aGUgc2l6ZSwgaWUgbnVtYmVyIG9mIHRlZXRoLCBvZiB0aGUgY29tYiwgYW5kIG11c3QgYmUgYmV0d2VlbgorICogICAyIGFuZCA3IChpbiBwcmFjdGljZSwgYmV0d2VlbiAyIGFuZCBNQkVEVExTX0VDUF9XSU5ET1dfU0laRSkKKyAqIC0gbSBpcyB0aGUgTVBJLCBleHBlY3RlZCB0byBiZSBvZGQgYW5kIHN1Y2ggdGhhdCBiaXRsZW5ndGgobSkgPD0gdyAqIGQKKyAqICAgKHRoZSByZXN1bHQgd2lsbCBiZSBpbmNvcnJlY3QgaWYgdGhlc2UgYXNzdW1wdGlvbnMgYXJlIG5vdCBzYXRpc2ZpZWQpCisgKi8KK3N0YXRpYyB2b2lkIGVjcF9jb21iX3JlY29kZV9jb3JlKHVuc2lnbmVkIGNoYXIgeFtdLCBzaXplX3QgZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGNoYXIgdywgY29uc3QgbWJlZHRsc19tcGkgKm0pCit7CisgICAgc2l6ZV90IGksIGo7CisgICAgdW5zaWduZWQgY2hhciBjLCBjYywgYWRqdXN0OworCisgICAgbWVtc2V0KHgsIDAsIGQrMSk7CisKKyAgICAvKiBGaXJzdCBnZXQgdGhlIGNsYXNzaWNhbCBjb21iIHZhbHVlcyAoZXhjZXB0IGZvciB4X2QgPSAwKSAqLworICAgIGZvciAoaSA9IDA7IGkgPCBkOyBpKyspIHsKKyAgICAgICAgZm9yIChqID0gMDsgaiA8IHc7IGorKykgeworICAgICAgICAgICAgeFtpXSB8PSBtYmVkdGxzX21waV9nZXRfYml0KG0sIGkgKyBkICogaikgPDwgajsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qIE5vdyBtYWtlIHN1cmUgeF8xIC4uIHhfZCBhcmUgb2RkICovCisgICAgYyA9IDA7CisgICAgZm9yIChpID0gMTsgaSA8PSBkOyBpKyspIHsKKyAgICAgICAgLyogQWRkIGNhcnJ5IGFuZCB1cGRhdGUgaXQgKi8KKyAgICAgICAgY2MgICA9IHhbaV0gJiBjOworICAgICAgICB4W2ldID0geFtpXSBeIGM7CisgICAgICAgIGMgPSBjYzsKKworICAgICAgICAvKiBBZGp1c3QgaWYgbmVlZGVkLCBhdm9pZGluZyBicmFuY2hlcyAqLworICAgICAgICBhZGp1c3QgPSAxIC0gKHhbaV0gJiAweDAxKTsKKyAgICAgICAgYyAgIHw9IHhbaV0gJiAoeFtpLTFdICogYWRqdXN0KTsKKyAgICAgICAgeFtpXSA9IHhbaV0gXiAoeFtpLTFdICogYWRqdXN0KTsKKyAgICAgICAgeFtpLTFdIHw9IGFkanVzdCA8PCA3OworICAgIH0KK30KKworLyoKKyAqIFByZWNvbXB1dGUgcG9pbnRzIGZvciB0aGUgYWRhcHRlZCBjb21iIG1ldGhvZAorICoKKyAqIEFzc3VtcHRpb246IFQgbXVzdCBiZSBhYmxlIHRvIGhvbGQgMl57dyAtIDF9IGVsZW1lbnRzLgorICoKKyAqIE9wZXJhdGlvbjogSWYgaSA9IGlfe3ctMX0gLi4uIGlfMSBpcyB0aGUgYmluYXJ5IHJlcHJlc2VudGF0aW9uIG9mIGksCisgKiAgICAgICAgICAgIHNldHMgVFtpXSA9IGlfe3ctMX0gMl57KHctMSlkfSBQICsgLi4uICsgaV8xIDJeZCBQICsgUC4KKyAqCisgKiBDb3N0OiBkKHctMSkgRCArICgyXnt3LTF9IC0gMSkgQSArIDEgTih3LTEpICsgMSBOKDJee3ctMX0gLSAxKQorICoKKyAqIE5vdGU6IEV2ZW4gY29tYiB2YWx1ZXMgKHRob3NlIHdoZXJlIFAgd291bGQgYmUgb21pdHRlZCBmcm9tIHRoZQorICogICAgICAgc3VtIGRlZmluaW5nIFRbaV0gYWJvdmUpIGFyZSBub3QgbmVlZGVkIGluIG91ciBhZGFwdGlvbgorICogICAgICAgdGhlIGNvbWIgbWV0aG9kLiBTZWUgZWNwX2NvbWJfcmVjb2RlX2NvcmUoKS4KKyAqCisgKiBUaGlzIGZ1bmN0aW9uIGN1cnJlbnRseSB3b3JrcyBpbiBmb3VyIHN0ZXBzOgorICogKDEpIFtkYmxdICAgICAgQ29tcHV0YXRpb24gb2YgaW50ZXJtZWRpYXRlIFRbaV0gZm9yIDItcG93ZXIgdmFsdWVzIG9mIGkKKyAqICgyKSBbbm9ybV9kYmxdIE5vcm1hbGl6YXRpb24gb2YgY29vcmRpbmF0ZXMgb2YgdGhlc2UgVFtpXQorICogKDMpIFthZGRdICAgICAgQ29tcHV0YXRpb24gb2YgYWxsIFRbaV0KKyAqICg0KSBbbm9ybV9hZGRdIE5vcm1hbGl6YXRpb24gb2YgYWxsIFRbaV0KKyAqCisgKiBTdGVwIDEgY2FuIGJlIGludGVycnVwdGVkIGJ1dCBub3QgdGhlIG90aGVyczsgdG9nZXRoZXIgd2l0aCB0aGUgZmluYWwKKyAqIGNvb3JkaW5hdGUgbm9ybWFsaXphdGlvbiB0aGV5IGFyZSB0aGUgbGFyZ2VzdCBzdGVwcyBkb25lIGF0IG9uY2UsIGRlcGVuZGluZworICogb24gdGhlIHdpbmRvdyBzaXplLiBIZXJlIGFyZSBvcGVyYXRpb24gY291bnRzIGZvciBQLTI1NjoKKyAqCisgKiBzdGVwICAgICAoMikgICAgICgzKSAgICAgKDQpCisgKiB3ID0gNSAgICAxNDIgICAgIDE2NSAgICAgMjA4CisgKiB3ID0gNCAgICAxMzYgICAgICA3NyAgICAgMTYwCisgKiB3ID0gMyAgICAxMzAgICAgICAzMyAgICAgMTM2CisgKiB3ID0gMiAgICAxMjQgICAgICAxMSAgICAgMTI0CisgKgorICogU28gaWYgRUNDIG9wZXJhdGlvbnMgYXJlIGJsb2NraW5nIGZvciB0b28gbG9uZyBldmVuIHdpdGggYSBsb3cgbWF4X29wcworICogdmFsdWUsIGl0J3MgdXNlZnVsIHRvIHNldCBNQkVEVExTX0VDUF9XSU5ET1dfU0laRSB0byBhIGxvd2VyIHZhbHVlIGluIG9yZGVyCisgKiB0byBtaW5pbWl6ZSBtYXhpbXVtIGJsb2NraW5nIHRpbWUuCisgKi8KK3N0YXRpYyBpbnQgZWNwX3ByZWNvbXB1dGVfY29tYihjb25zdCBtYmVkdGxzX2VjcF9ncm91cCAqZ3JwLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1iZWR0bHNfZWNwX3BvaW50IFRbXSwgY29uc3QgbWJlZHRsc19lY3BfcG9pbnQgKlAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgY2hhciB3LCBzaXplX3QgZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYmVkdGxzX2VjcF9yZXN0YXJ0X2N0eCAqcnNfY3R4KQoreworICAgIGludCByZXQgPSBNQkVEVExTX0VSUl9FUlJPUl9DT1JSVVBUSU9OX0RFVEVDVEVEOworICAgIHVuc2lnbmVkIGNoYXIgaTsKKyAgICBzaXplX3QgaiA9IDA7CisgICAgY29uc3QgdW5zaWduZWQgY2hhciBUX3NpemUgPSAxVSA8PCAodyAtIDEpOworICAgIG1iZWR0bHNfZWNwX3BvaW50ICpjdXIsICpUVFtDT01CX01BWF9QUkUgLSAxXSA9IHsgTlVMTCB9OworCisgICAgbWJlZHRsc19tcGkgdG1wWzRdOworCisgICAgbXBpX2luaXRfbWFueSh0bXAsIHNpemVvZih0bXApIC8gc2l6ZW9mKG1iZWR0bHNfbXBpKSk7CisKKyNpZiBkZWZpbmVkKE1CRURUTFNfRUNQX1JFU1RBUlRBQkxFKQorICAgIGlmIChyc19jdHggIT0gTlVMTCAmJiByc19jdHgtPnJzbSAhPSBOVUxMKSB7CisgICAgICAgIGlmIChyc19jdHgtPnJzbS0+c3RhdGUgPT0gZWNwX3JzbV9wcmVfZGJsKSB7CisgICAgICAgICAgICBnb3RvIGRibDsKKyAgICAgICAgfQorICAgICAgICBpZiAocnNfY3R4LT5yc20tPnN0YXRlID09IGVjcF9yc21fcHJlX25vcm1fZGJsKSB7CisgICAgICAgICAgICBnb3RvIG5vcm1fZGJsOworICAgICAgICB9CisgICAgICAgIGlmIChyc19jdHgtPnJzbS0+c3RhdGUgPT0gZWNwX3JzbV9wcmVfYWRkKSB7CisgICAgICAgICAgICBnb3RvIGFkZDsKKyAgICAgICAgfQorICAgICAgICBpZiAocnNfY3R4LT5yc20tPnN0YXRlID09IGVjcF9yc21fcHJlX25vcm1fYWRkKSB7CisgICAgICAgICAgICBnb3RvIG5vcm1fYWRkOworICAgICAgICB9CisgICAgfQorI2Vsc2UKKyAgICAodm9pZCkgcnNfY3R4OworI2VuZGlmCisKKyNpZiBkZWZpbmVkKE1CRURUTFNfRUNQX1JFU1RBUlRBQkxFKQorICAgIGlmIChyc19jdHggIT0gTlVMTCAmJiByc19jdHgtPnJzbSAhPSBOVUxMKSB7CisgICAgICAgIHJzX2N0eC0+cnNtLT5zdGF0ZSA9IGVjcF9yc21fcHJlX2RibDsKKworICAgICAgICAvKiBpbml0aWFsIHN0YXRlIGZvciB0aGUgbG9vcCAqLworICAgICAgICByc19jdHgtPnJzbS0+aSA9IDA7CisgICAgfQorCitkYmw6CisjZW5kaWYKKyAgICAvKgorICAgICAqIFNldCBUWzBdID0gUCBhbmQKKyAgICAgKiBUWzJee2wtMX1dID0gMl57ZGx9IFAgZm9yIGwgPSAxIC4uIHctMSAodGhpcyBpcyBub3QgdGhlIGZpbmFsIHZhbHVlKQorICAgICAqLworICAgIE1CRURUTFNfTVBJX0NISyhtYmVkdGxzX2VjcF9jb3B5KCZUWzBdLCBQKSk7CisKKyNpZiBkZWZpbmVkKE1CRURUTFNfRUNQX1JFU1RBUlRBQkxFKQorICAgIGlmIChyc19jdHggIT0gTlVMTCAmJiByc19jdHgtPnJzbSAhPSBOVUxMICYmIHJzX2N0eC0+cnNtLT5pICE9IDApIHsKKyAgICAgICAgaiA9IHJzX2N0eC0+cnNtLT5pOworICAgIH0gZWxzZQorI2VuZGlmCisgICAgaiA9IDA7CisKKyAgICBmb3IgKDsgaiA8IGQgKiAodyAtIDEpOyBqKyspIHsKKyAgICAgICAgTUJFRFRMU19FQ1BfQlVER0VUKE1CRURUTFNfRUNQX09QU19EQkwpOworCisgICAgICAgIGkgPSAxVSA8PCAoaiAvIGQpOworICAgICAgICBjdXIgPSBUICsgaTsKKworICAgICAgICBpZiAoaiAlIGQgPT0gMCkgeworICAgICAgICAgICAgTUJFRFRMU19NUElfQ0hLKG1iZWR0bHNfZWNwX2NvcHkoY3VyLCBUICsgKGkgPj4gMSkpKTsKKyAgICAgICAgfQorCisgICAgICAgIE1CRURUTFNfTVBJX0NISyhlY3BfZG91YmxlX2phYyhncnAsIGN1ciwgY3VyLCB0bXApKTsKKyAgICB9CisKKyNpZiBkZWZpbmVkKE1CRURUTFNfRUNQX1JFU1RBUlRBQkxFKQorICAgIGlmIChyc19jdHggIT0gTlVMTCAmJiByc19jdHgtPnJzbSAhPSBOVUxMKSB7CisgICAgICAgIHJzX2N0eC0+cnNtLT5zdGF0ZSA9IGVjcF9yc21fcHJlX25vcm1fZGJsOworICAgIH0KKworbm9ybV9kYmw6CisjZW5kaWYKKyAgICAvKgorICAgICAqIE5vcm1hbGl6ZSBjdXJyZW50IGVsZW1lbnRzIGluIFQgdG8gYWxsb3cgdGhlbSB0byBiZSB1c2VkIGluCisgICAgICogZWNwX2FkZF9taXhlZCgpIGJlbG93LCB3aGljaCByZXF1aXJlcyBvbmUgbm9ybWFsaXplZCBpbnB1dC4KKyAgICAgKgorICAgICAqIEFzIFQgaGFzIGhvbGVzLCB1c2UgYW4gYXV4aWxpYXJ5IGFycmF5IG9mIHBvaW50ZXJzIHRvIGVsZW1lbnRzIGluIFQuCisgICAgICoKKyAgICAgKi8KKyAgICBqID0gMDsKKyAgICBmb3IgKGkgPSAxOyBpIDwgVF9zaXplOyBpIDw8PSAxKSB7CisgICAgICAgIFRUW2orK10gPSBUICsgaTsKKyAgICB9CisKKyAgICBNQkVEVExTX0VDUF9CVURHRVQoTUJFRFRMU19FQ1BfT1BTX0lOViArIDYgKiBqIC0gMik7CisKKyAgICBNQkVEVExTX01QSV9DSEsoZWNwX25vcm1hbGl6ZV9qYWNfbWFueShncnAsIFRULCBqKSk7CisKKyNpZiBkZWZpbmVkKE1CRURUTFNfRUNQX1JFU1RBUlRBQkxFKQorICAgIGlmIChyc19jdHggIT0gTlVMTCAmJiByc19jdHgtPnJzbSAhPSBOVUxMKSB7CisgICAgICAgIHJzX2N0eC0+cnNtLT5zdGF0ZSA9IGVjcF9yc21fcHJlX2FkZDsKKyAgICB9CisKK2FkZDoKKyNlbmRpZgorICAgIC8qCisgICAgICogQ29tcHV0ZSB0aGUgcmVtYWluaW5nIG9uZXMgdXNpbmcgdGhlIG1pbmltYWwgbnVtYmVyIG9mIGFkZGl0aW9ucworICAgICAqIEJlIGNhcmVmdWwgdG8gdXBkYXRlIFRbMl5sXSBvbmx5IGFmdGVyIHVzaW5nIGl0IQorICAgICAqLworICAgIE1CRURUTFNfRUNQX0JVREdFVCgoVF9zaXplIC0gMSkgKiBNQkVEVExTX0VDUF9PUFNfQUREKTsKKworICAgIGZvciAoaSA9IDE7IGkgPCBUX3NpemU7IGkgPDw9IDEpIHsKKyAgICAgICAgaiA9IGk7CisgICAgICAgIHdoaWxlIChqLS0pIHsKKyAgICAgICAgICAgIE1CRURUTFNfTVBJX0NISyhlY3BfYWRkX21peGVkKGdycCwgJlRbaSArIGpdLCAmVFtqXSwgJlRbaV0sIHRtcCkpOworICAgICAgICB9CisgICAgfQorCisjaWYgZGVmaW5lZChNQkVEVExTX0VDUF9SRVNUQVJUQUJMRSkKKyAgICBpZiAocnNfY3R4ICE9IE5VTEwgJiYgcnNfY3R4LT5yc20gIT0gTlVMTCkgeworICAgICAgICByc19jdHgtPnJzbS0+c3RhdGUgPSBlY3BfcnNtX3ByZV9ub3JtX2FkZDsKKyAgICB9CisKK25vcm1fYWRkOgorI2VuZGlmCisgICAgLyoKKyAgICAgKiBOb3JtYWxpemUgZmluYWwgZWxlbWVudHMgaW4gVC4gRXZlbiB0aG91Z2ggdGhlcmUgYXJlIG5vIGhvbGVzIG5vdywgd2UKKyAgICAgKiBzdGlsbCBuZWVkIHRoZSBhdXhpbGlhcnkgYXJyYXkgZm9yIGhvbW9nZW5laXR5IHdpdGggdGhlIHByZXZpb3VzCisgICAgICogY2FsbC4gQWxzbywgc2tpcCBUWzBdIHdoaWNoIGlzIGFscmVhZHkgbm9ybWFsaXNlZCwgYmVpbmcgYSBjb3B5IG9mIFAuCisgICAgICovCisgICAgZm9yIChqID0gMDsgaiArIDEgPCBUX3NpemU7IGorKykgeworICAgICAgICBUVFtqXSA9IFQgKyBqICsgMTsKKyAgICB9CisKKyAgICBNQkVEVExTX0VDUF9CVURHRVQoTUJFRFRMU19FQ1BfT1BTX0lOViArIDYgKiBqIC0gMik7CisKKyAgICBNQkVEVExTX01QSV9DSEsoZWNwX25vcm1hbGl6ZV9qYWNfbWFueShncnAsIFRULCBqKSk7CisKKyAgICAvKiBGcmVlIFogY29vcmRpbmF0ZSAoPTEgYWZ0ZXIgbm9ybWFsaXphdGlvbikgdG8gc2F2ZSBSQU0uCisgICAgICogVGhpcyBtYWtlcyBUW2ldIGludmFsaWQgYXMgbWJlZHRsc19lY3BfcG9pbnRzLCBidXQgdGhpcyBpcyBPSworICAgICAqIHNpbmNlIGZyb20gdGhpcyBwb2ludCBvbndhcmRzLCB0aGV5IGFyZSBvbmx5IGFjY2Vzc2VkIGluZGlyZWN0bHkKKyAgICAgKiB2aWEgdGhlIGdldHRlciBmdW5jdGlvbiBlY3Bfc2VsZWN0X2NvbWIoKSB3aGljaCBkb2VzIHNldCB0aGUKKyAgICAgKiB0YXJnZXQncyBaIGNvb3JkaW5hdGUgdG8gMS4gKi8KKyAgICBmb3IgKGkgPSAwOyBpIDwgVF9zaXplOyBpKyspIHsKKyAgICAgICAgbWJlZHRsc19tcGlfZnJlZSgmVFtpXS5aKTsKKyAgICB9CisKK2NsZWFudXA6CisKKyAgICBtcGlfZnJlZV9tYW55KHRtcCwgc2l6ZW9mKHRtcCkgLyBzaXplb2YobWJlZHRsc19tcGkpKTsKKworI2lmIGRlZmluZWQoTUJFRFRMU19FQ1BfUkVTVEFSVEFCTEUpCisgICAgaWYgKHJzX2N0eCAhPSBOVUxMICYmIHJzX2N0eC0+cnNtICE9IE5VTEwgJiYKKyAgICAgICAgcmV0ID09IE1CRURUTFNfRVJSX0VDUF9JTl9QUk9HUkVTUykgeworICAgICAgICBpZiAocnNfY3R4LT5yc20tPnN0YXRlID09IGVjcF9yc21fcHJlX2RibCkgeworICAgICAgICAgICAgcnNfY3R4LT5yc20tPmkgPSBqOworICAgICAgICB9CisgICAgfQorI2VuZGlmCisKKyAgICByZXR1cm4gcmV0OworfQorCisvKgorICogU2VsZWN0IHByZWNvbXB1dGVkIHBvaW50OiBSID0gc2lnbihpKSAqIFRbIGFicyhpKSAvIDIgXQorICoKKyAqIFNlZSBlY3BfY29tYl9yZWNvZGVfY29yZSgpIGZvciBiYWNrZ3JvdW5kCisgKi8KK3N0YXRpYyBpbnQgZWNwX3NlbGVjdF9jb21iKGNvbnN0IG1iZWR0bHNfZWNwX2dyb3VwICpncnAsIG1iZWR0bHNfZWNwX3BvaW50ICpSLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbWJlZHRsc19lY3BfcG9pbnQgVFtdLCB1bnNpZ25lZCBjaGFyIFRfc2l6ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGNoYXIgaSkKK3sKKyAgICBpbnQgcmV0ID0gTUJFRFRMU19FUlJfRVJST1JfQ09SUlVQVElPTl9ERVRFQ1RFRDsKKyAgICB1bnNpZ25lZCBjaGFyIGlpLCBqOworCisgICAgLyogSWdub3JlIHRoZSAic2lnbiIgYml0IGFuZCBzY2FsZSBkb3duICovCisgICAgaWkgPSAgKGkgJiAweDdGdSkgPj4gMTsKKworICAgIC8qIFJlYWQgdGhlIHdob2xlIHRhYmxlIHRvIHRod2FydCBjYWNoZS1iYXNlZCB0aW1pbmcgYXR0YWNrcyAqLworICAgIGZvciAoaiA9IDA7IGogPCBUX3NpemU7IGorKykgeworICAgICAgICBNUElfRUNQX0NPTkRfQVNTSUdOKCZSLT5YLCAmVFtqXS5YLCBqID09IGlpKTsKKyAgICAgICAgTVBJX0VDUF9DT05EX0FTU0lHTigmUi0+WSwgJlRbal0uWSwgaiA9PSBpaSk7CisgICAgfQorCisgICAgLyogU2FmZWx5IGludmVydCByZXN1bHQgaWYgaSBpcyAibmVnYXRpdmUiICovCisgICAgTUJFRFRMU19NUElfQ0hLKGVjcF9zYWZlX2ludmVydF9qYWMoZ3JwLCBSLCBpID4+IDcpKTsKKworICAgIE1QSV9FQ1BfTFNFVCgmUi0+WiwgMSk7CisKK2NsZWFudXA6CisgICAgcmV0dXJuIHJldDsKK30KKworLyoKKyAqIENvcmUgbXVsdGlwbGljYXRpb24gYWxnb3JpdGhtIGZvciB0aGUgKG1vZGlmaWVkKSBjb21iIG1ldGhvZC4KKyAqIFRoaXMgcGFydCBpcyBhY3R1YWxseSBjb21tb24gd2l0aCB0aGUgYmFzaWMgY29tYiBtZXRob2QgKEdFQ0MgMy40NCkKKyAqCisgKiBDb3N0OiBkIEEgKyBkIEQgKyAxIFIKKyAqLworc3RhdGljIGludCBlY3BfbXVsX2NvbWJfY29yZShjb25zdCBtYmVkdGxzX2VjcF9ncm91cCAqZ3JwLCBtYmVkdGxzX2VjcF9wb2ludCAqUiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbWJlZHRsc19lY3BfcG9pbnQgVFtdLCB1bnNpZ25lZCBjaGFyIFRfc2l6ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdW5zaWduZWQgY2hhciB4W10sIHNpemVfdCBkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgKCpmX3JuZykodm9pZCAqLCB1bnNpZ25lZCBjaGFyICosIHNpemVfdCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZvaWQgKnBfcm5nLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYmVkdGxzX2VjcF9yZXN0YXJ0X2N0eCAqcnNfY3R4KQoreworICAgIGludCByZXQgPSBNQkVEVExTX0VSUl9FUlJPUl9DT1JSVVBUSU9OX0RFVEVDVEVEOworICAgIG1iZWR0bHNfZWNwX3BvaW50IFR4aTsKKyAgICBtYmVkdGxzX21waSB0bXBbNF07CisgICAgc2l6ZV90IGk7CisKKyAgICBtYmVkdGxzX2VjcF9wb2ludF9pbml0KCZUeGkpOworICAgIG1waV9pbml0X21hbnkodG1wLCBzaXplb2YodG1wKSAvIHNpemVvZihtYmVkdGxzX21waSkpOworCisjaWYgIWRlZmluZWQoTUJFRFRMU19FQ1BfUkVTVEFSVEFCTEUpCisgICAgKHZvaWQpIHJzX2N0eDsKKyNlbmRpZgorCisjaWYgZGVmaW5lZChNQkVEVExTX0VDUF9SRVNUQVJUQUJMRSkKKyAgICBpZiAocnNfY3R4ICE9IE5VTEwgJiYgcnNfY3R4LT5yc20gIT0gTlVMTCAmJgorICAgICAgICByc19jdHgtPnJzbS0+c3RhdGUgIT0gZWNwX3JzbV9jb21iX2NvcmUpIHsKKyAgICAgICAgcnNfY3R4LT5yc20tPmkgPSAwOworICAgICAgICByc19jdHgtPnJzbS0+c3RhdGUgPSBlY3BfcnNtX2NvbWJfY29yZTsKKyAgICB9CisKKyAgICAvKiBuZXcgJ2lmJyBpbnN0ZWFkIG9mIG5lc3RlZCBmb3IgdGhlIHNha2Ugb2YgdGhlICdlbHNlJyBicmFuY2ggKi8KKyAgICBpZiAocnNfY3R4ICE9IE5VTEwgJiYgcnNfY3R4LT5yc20gIT0gTlVMTCAmJiByc19jdHgtPnJzbS0+aSAhPSAwKSB7CisgICAgICAgIC8qIHJlc3RvcmUgY3VycmVudCBpbmRleCAoUiBhbHJlYWR5IHBvaW50aW5nIHRvIHJzX2N0eC0+cnNtLT5SKSAqLworICAgICAgICBpID0gcnNfY3R4LT5yc20tPmk7CisgICAgfSBlbHNlCisjZW5kaWYKKyAgICB7CisgICAgICAgIC8qIFN0YXJ0IHdpdGggYSBub24temVybyBwb2ludCBhbmQgcmFuZG9taXplIGl0cyBjb29yZGluYXRlcyAqLworICAgICAgICBpID0gZDsKKyAgICAgICAgTUJFRFRMU19NUElfQ0hLKGVjcF9zZWxlY3RfY29tYihncnAsIFIsIFQsIFRfc2l6ZSwgeFtpXSkpOworICAgICAgICBpZiAoZl9ybmcgIT0gMCkgeworICAgICAgICAgICAgTUJFRFRMU19NUElfQ0hLKGVjcF9yYW5kb21pemVfamFjKGdycCwgUiwgZl9ybmcsIHBfcm5nKSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICB3aGlsZSAoaSAhPSAwKSB7CisgICAgICAgIE1CRURUTFNfRUNQX0JVREdFVChNQkVEVExTX0VDUF9PUFNfREJMICsgTUJFRFRMU19FQ1BfT1BTX0FERCk7CisgICAgICAgIC0taTsKKworICAgICAgICBNQkVEVExTX01QSV9DSEsoZWNwX2RvdWJsZV9qYWMoZ3JwLCBSLCBSLCB0bXApKTsKKyAgICAgICAgTUJFRFRMU19NUElfQ0hLKGVjcF9zZWxlY3RfY29tYihncnAsICZUeGksIFQsIFRfc2l6ZSwgeFtpXSkpOworICAgICAgICBNQkVEVExTX01QSV9DSEsoZWNwX2FkZF9taXhlZChncnAsIFIsIFIsICZUeGksIHRtcCkpOworICAgIH0KKworY2xlYW51cDoKKworICAgIG1iZWR0bHNfZWNwX3BvaW50X2ZyZWUoJlR4aSk7CisgICAgbXBpX2ZyZWVfbWFueSh0bXAsIHNpemVvZih0bXApIC8gc2l6ZW9mKG1iZWR0bHNfbXBpKSk7CisKKyNpZiBkZWZpbmVkKE1CRURUTFNfRUNQX1JFU1RBUlRBQkxFKQorICAgIGlmIChyc19jdHggIT0gTlVMTCAmJiByc19jdHgtPnJzbSAhPSBOVUxMICYmCisgICAgICAgIHJldCA9PSBNQkVEVExTX0VSUl9FQ1BfSU5fUFJPR1JFU1MpIHsKKyAgICAgICAgcnNfY3R4LT5yc20tPmkgPSBpOworICAgICAgICAvKiBubyBuZWVkIHRvIHNhdmUgUiwgYWxyZWFkeSBwb2ludGluZyB0byByc19jdHgtPnJzbS0+UiAqLworICAgIH0KKyNlbmRpZgorCisgICAgcmV0dXJuIHJldDsKK30KKworLyoKKyAqIFJlY29kZSB0aGUgc2NhbGFyIHRvIGdldCBjb25zdGFudC10aW1lIGNvbWIgbXVsdGlwbGljYXRpb24KKyAqCisgKiBBcyB0aGUgYWN0dWFsIHNjYWxhciByZWNvZGluZyBuZWVkcyBhbiBvZGQgc2NhbGFyIGFzIGEgc3RhcnRpbmcgcG9pbnQsCisgKiB0aGlzIHdyYXBwZXIgZW5zdXJlcyB0aGF0IGJ5IHJlcGxhY2luZyBtIGJ5IE4gLSBtIGlmIG5lY2Vzc2FyeSwgYW5kCisgKiBpbmZvcm1zIHRoZSBjYWxsZXIgdGhhdCB0aGUgcmVzdWx0IG9mIG11bHRpcGxpY2F0aW9uIHdpbGwgYmUgbmVnYXRlZC4KKyAqCisgKiBUaGlzIHdvcmtzIGJlY2F1c2Ugd2Ugb25seSBzdXBwb3J0IGxhcmdlIHByaW1lIG9yZGVyIGZvciBTaG9ydCBXZWllcnN0cmFzcworICogY3VydmVzLCBzbyBOIGlzIGFsd2F5cyBvZGQgaGVuY2UgZWl0aGVyIG0gb3IgTiAtIG0gaXMuCisgKgorICogU2VlIGVjcF9jb21iX3JlY29kZV9jb3JlKCkgZm9yIGJhY2tncm91bmQuCisgKi8KK3N0YXRpYyBpbnQgZWNwX2NvbWJfcmVjb2RlX3NjYWxhcihjb25zdCBtYmVkdGxzX2VjcF9ncm91cCAqZ3JwLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IG1iZWR0bHNfbXBpICptLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGNoYXIga1tDT01CX01BWF9EICsgMV0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IGQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgY2hhciB3LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGNoYXIgKnBhcml0eV90cmljaykKK3sKKyAgICBpbnQgcmV0ID0gTUJFRFRMU19FUlJfRVJST1JfQ09SUlVQVElPTl9ERVRFQ1RFRDsKKyAgICBtYmVkdGxzX21waSBNLCBtbTsKKworICAgIG1iZWR0bHNfbXBpX2luaXQoJk0pOworICAgIG1iZWR0bHNfbXBpX2luaXQoJm1tKTsKKworICAgIC8qIE4gaXMgYWx3YXlzIG9kZCAoc2VlIGFib3ZlKSwganVzdCBtYWtlIGV4dHJhIHN1cmUgKi8KKyAgICBpZiAobWJlZHRsc19tcGlfZ2V0X2JpdCgmZ3JwLT5OLCAwKSAhPSAxKSB7CisgICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9FQ1BfQkFEX0lOUFVUX0RBVEE7CisgICAgfQorCisgICAgLyogZG8gd2UgbmVlZCB0aGUgcGFyaXR5IHRyaWNrPyAqLworICAgICpwYXJpdHlfdHJpY2sgPSAobWJlZHRsc19tcGlfZ2V0X2JpdChtLCAwKSA9PSAwKTsKKworICAgIC8qIGV4ZWN1dGUgcGFyaXR5IGZpeCBpbiBjb25zdGFudCB0aW1lICovCisgICAgTUJFRFRMU19NUElfQ0hLKG1iZWR0bHNfbXBpX2NvcHkoJk0sIG0pKTsKKyAgICBNQkVEVExTX01QSV9DSEsobWJlZHRsc19tcGlfc3ViX21waSgmbW0sICZncnAtPk4sIG0pKTsKKyAgICBNQkVEVExTX01QSV9DSEsobWJlZHRsc19tcGlfc2FmZV9jb25kX2Fzc2lnbigmTSwgJm1tLCAqcGFyaXR5X3RyaWNrKSk7CisKKyAgICAvKiBhY3R1YWwgc2NhbGFyIHJlY29kaW5nICovCisgICAgZWNwX2NvbWJfcmVjb2RlX2NvcmUoaywgZCwgdywgJk0pOworCitjbGVhbnVwOgorICAgIG1iZWR0bHNfbXBpX2ZyZWUoJm1tKTsKKyAgICBtYmVkdGxzX21waV9mcmVlKCZNKTsKKworICAgIHJldHVybiByZXQ7Cit9CisKKy8qCisgKiBQZXJmb3JtIGNvbWIgbXVsdGlwbGljYXRpb24gKGZvciBzaG9ydCBXZWllcnN0cmFzcyBjdXJ2ZXMpCisgKiBvbmNlIHRoZSBhdXhpbGlhcnkgdGFibGUgaGFzIGJlZW4gcHJlLWNvbXB1dGVkLgorICoKKyAqIFNjYWxhciByZWNvZGluZyBtYXkgdXNlIGEgcGFyaXR5IHRyaWNrIHRoYXQgbWFrZXMgdXMgY29tcHV0ZSAtbSAqIFAsCisgKiBpZiB0aGF0IGlzIHRoZSBjYXNlIHdlJ2xsIG5lZWQgdG8gcmVjb3ZlciBtICogUCBhdCB0aGUgZW5kLgorICovCitzdGF0aWMgaW50IGVjcF9tdWxfY29tYl9hZnRlcl9wcmVjb21wKGNvbnN0IG1iZWR0bHNfZWNwX2dyb3VwICpncnAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1iZWR0bHNfZWNwX3BvaW50ICpSLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBtYmVkdGxzX21waSAqbSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbWJlZHRsc19lY3BfcG9pbnQgKlQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGNoYXIgVF9zaXplLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBjaGFyIHcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgKCpmX3JuZykodm9pZCAqLCB1bnNpZ25lZCBjaGFyICosIHNpemVfdCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZvaWQgKnBfcm5nLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYmVkdGxzX2VjcF9yZXN0YXJ0X2N0eCAqcnNfY3R4KQoreworICAgIGludCByZXQgPSBNQkVEVExTX0VSUl9FUlJPUl9DT1JSVVBUSU9OX0RFVEVDVEVEOworICAgIHVuc2lnbmVkIGNoYXIgcGFyaXR5X3RyaWNrOworICAgIHVuc2lnbmVkIGNoYXIga1tDT01CX01BWF9EICsgMV07CisgICAgbWJlZHRsc19lY3BfcG9pbnQgKlJSID0gUjsKKworI2lmIGRlZmluZWQoTUJFRFRMU19FQ1BfUkVTVEFSVEFCTEUpCisgICAgaWYgKHJzX2N0eCAhPSBOVUxMICYmIHJzX2N0eC0+cnNtICE9IE5VTEwpIHsKKyAgICAgICAgUlIgPSAmcnNfY3R4LT5yc20tPlI7CisKKyAgICAgICAgaWYgKHJzX2N0eC0+cnNtLT5zdGF0ZSA9PSBlY3BfcnNtX2ZpbmFsX25vcm0pIHsKKyAgICAgICAgICAgIGdvdG8gZmluYWxfbm9ybTsKKyAgICAgICAgfQorICAgIH0KKyNlbmRpZgorCisgICAgTUJFRFRMU19NUElfQ0hLKGVjcF9jb21iX3JlY29kZV9zY2FsYXIoZ3JwLCBtLCBrLCBkLCB3LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZwYXJpdHlfdHJpY2spKTsKKyAgICBNQkVEVExTX01QSV9DSEsoZWNwX211bF9jb21iX2NvcmUoZ3JwLCBSUiwgVCwgVF9zaXplLCBrLCBkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmX3JuZywgcF9ybmcsIHJzX2N0eCkpOworICAgIE1CRURUTFNfTVBJX0NISyhlY3Bfc2FmZV9pbnZlcnRfamFjKGdycCwgUlIsIHBhcml0eV90cmljaykpOworCisjaWYgZGVmaW5lZChNQkVEVExTX0VDUF9SRVNUQVJUQUJMRSkKKyAgICBpZiAocnNfY3R4ICE9IE5VTEwgJiYgcnNfY3R4LT5yc20gIT0gTlVMTCkgeworICAgICAgICByc19jdHgtPnJzbS0+c3RhdGUgPSBlY3BfcnNtX2ZpbmFsX25vcm07CisgICAgfQorCitmaW5hbF9ub3JtOgorICAgIE1CRURUTFNfRUNQX0JVREdFVChNQkVEVExTX0VDUF9PUFNfSU5WKTsKKyNlbmRpZgorICAgIC8qCisgICAgICogS25vd2xlZGdlIG9mIHRoZSBqYWNvYmlhbiBjb29yZGluYXRlcyBtYXkgbGVhayB0aGUgbGFzdCBmZXcgYml0cyBvZiB0aGUKKyAgICAgKiBzY2FsYXIgWzFdLCBhbmQgc2luY2Ugb3VyIE1QSSBpbXBsZW1lbnRhdGlvbiBpc24ndCBjb25zdGFudC1mbG93LAorICAgICAqIGludmVyc2lvbiAodXNlZCBmb3IgY29vcmRpbmF0ZSBub3JtYWxpemF0aW9uKSBtYXkgbGVhayB0aGUgZnVsbCB2YWx1ZQorICAgICAqIG9mIGl0cyBpbnB1dCB2aWEgc2lkZS1jaGFubmVscyBbMl0uCisgICAgICoKKyAgICAgKiBbMV0gaHR0cHM6Ly9lcHJpbnQuaWFjci5vcmcvMjAwMy8xOTEKKyAgICAgKiBbMl0gaHR0cHM6Ly9lcHJpbnQuaWFjci5vcmcvMjAyMC8wNTUKKyAgICAgKgorICAgICAqIEF2b2lkIHRoZSBsZWFrIGJ5IHJhbmRvbWl6aW5nIGNvb3JkaW5hdGVzIGJlZm9yZSB3ZSBub3JtYWxpemUgdGhlbS4KKyAgICAgKi8KKyAgICBpZiAoZl9ybmcgIT0gMCkgeworICAgICAgICBNQkVEVExTX01QSV9DSEsoZWNwX3JhbmRvbWl6ZV9qYWMoZ3JwLCBSUiwgZl9ybmcsIHBfcm5nKSk7CisgICAgfQorCisgICAgTUJFRFRMU19NUElfQ0hLKGVjcF9ub3JtYWxpemVfamFjKGdycCwgUlIpKTsKKworI2lmIGRlZmluZWQoTUJFRFRMU19FQ1BfUkVTVEFSVEFCTEUpCisgICAgaWYgKHJzX2N0eCAhPSBOVUxMICYmIHJzX2N0eC0+cnNtICE9IE5VTEwpIHsKKyAgICAgICAgTUJFRFRMU19NUElfQ0hLKG1iZWR0bHNfZWNwX2NvcHkoUiwgUlIpKTsKKyAgICB9CisjZW5kaWYKKworY2xlYW51cDoKKyAgICByZXR1cm4gcmV0OworfQorCisvKgorICogUGljayB3aW5kb3cgc2l6ZSBiYXNlZCBvbiBjdXJ2ZSBzaXplIGFuZCB3aGV0aGVyIHdlIG9wdGltaXplIGZvciBiYXNlIHBvaW50CisgKi8KK3N0YXRpYyB1bnNpZ25lZCBjaGFyIGVjcF9waWNrX3dpbmRvd19zaXplKGNvbnN0IG1iZWR0bHNfZWNwX2dyb3VwICpncnAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBjaGFyIHBfZXFfZykKK3sKKyAgICB1bnNpZ25lZCBjaGFyIHc7CisKKyAgICAvKgorICAgICAqIE1pbmltaXplIHRoZSBudW1iZXIgb2YgbXVsdGlwbGljYXRpb25zLCB0aGF0IGlzIG1pbmltaXplCisgICAgICogMTAgKiBkICogdyArIDE4ICogMl4ody0xKSArIDExICogZCArIDcgKiB3LCB3aXRoIGQgPSBjZWlsKCBuYml0cyAvIHcgKQorICAgICAqIChzZWUgY29zdHMgb2YgdGhlIHZhcmlvdXMgcGFydHMsIHdpdGggMVMgPSAxTSkKKyAgICAgKi8KKyAgICB3ID0gZ3JwLT5uYml0cyA+PSAzODQgPyA1IDogNDsKKworICAgIC8qCisgICAgICogSWYgUCA9PSBHLCBwcmUtY29tcHV0ZSBhIGJpdCBtb3JlLCBzaW5jZSB0aGlzIG1heSBiZSByZS11c2VkIGxhdGVyLgorICAgICAqIEp1c3QgYWRkaW5nIG9uZSBhdm9pZHMgdXBwaW5nIHRoZSBjb3N0IG9mIHRoZSBmaXJzdCBtdWwgdG9vIG11Y2gsCisgICAgICogYW5kIHRoZSBtZW1vcnkgY29zdCB0b28uCisgICAgICovCisgICAgaWYgKHBfZXFfZykgeworICAgICAgICB3Kys7CisgICAgfQorCisgICAgLyoKKyAgICAgKiBJZiBzdGF0aWMgY29tYiB0YWJsZSBtYXkgbm90IGJlIHVzZWQgKCFwX2VxX2cpIG9yIHN0YXRpYyBjb21iIHRhYmxlIGRvZXMKKyAgICAgKiBub3QgZXhpc3RzLCBtYWtlIHN1cmUgdyBpcyB3aXRoaW4gYm91bmRzLgorICAgICAqIChUaGUgbGFzdCB0ZXN0IGlzIHVzZWZ1bCBvbmx5IGZvciB2ZXJ5IHNtYWxsIGN1cnZlcyBpbiB0aGUgdGVzdCBzdWl0ZS4pCisgICAgICoKKyAgICAgKiBUaGUgdXNlciByZWR1Y2VzIE1CRURUTFNfRUNQX1dJTkRPV19TSVpFIGRvZXMgbm90IGNoYW5nZXMgdGhlIHNpemUgb2YKKyAgICAgKiBzdGF0aWMgY29tYiB0YWJsZSwgYmVjYXVzZSB0aGUgc2l6ZSBvZiBzdGF0aWMgY29tYiB0YWJsZSBpcyBmaXhlZCB3aGVuCisgICAgICogaXQgaXMgZ2VuZXJhdGVkLgorICAgICAqLworI2lmIChNQkVEVExTX0VDUF9XSU5ET1dfU0laRSA8IDYpCisgICAgaWYgKCghcF9lcV9nIHx8ICFlY3BfZ3JvdXBfaXNfc3RhdGljX2NvbWJfdGFibGUoZ3JwKSkgJiYgdyA+IE1CRURUTFNfRUNQX1dJTkRPV19TSVpFKSB7CisgICAgICAgIHcgPSBNQkVEVExTX0VDUF9XSU5ET1dfU0laRTsKKyAgICB9CisjZW5kaWYKKyAgICBpZiAodyA+PSBncnAtPm5iaXRzKSB7CisgICAgICAgIHcgPSAyOworICAgIH0KKworICAgIHJldHVybiB3OworfQorCisvKgorICogTXVsdGlwbGljYXRpb24gdXNpbmcgdGhlIGNvbWIgbWV0aG9kIC0gZm9yIGN1cnZlcyBpbiBzaG9ydCBXZWllcnN0cmFzcyBmb3JtCisgKgorICogVGhpcyBmdW5jdGlvbiBpcyBtYWlubHkgcmVzcG9uc2libGUgZm9yIGFkbWluaXN0cmF0aXZlIHdvcms6CisgKiAtIG1hbmFnaW5nIHRoZSByZXN0YXJ0IGNvbnRleHQgaWYgZW5hYmxlZAorICogLSBtYW5hZ2luZyB0aGUgdGFibGUgb2YgcHJlY29tcHV0ZWQgcG9pbnRzIChwYXNzZWQgYmV0d2VlbiB0aGUgYmVsb3cgdHdvCisgKiAgIGZ1bmN0aW9ucyk6IGFsbG9jYXRpb24sIGNvbXB1dGF0aW9uLCBvd25lcnNoaXAgdHJhbnNmZXIsIGZyZWVpbmcuCisgKgorICogSXQgZGVsZWdhdGVzIHRoZSBhY3R1YWwgYXJpdGhtZXRpYyB3b3JrIHRvOgorICogICAgICBlY3BfcHJlY29tcHV0ZV9jb21iKCkgYW5kIGVjcF9tdWxfY29tYl93aXRoX3ByZWNvbXAoKQorICoKKyAqIFNlZSBjb21tZW50cyBvbiBlY3BfY29tYl9yZWNvZGVfY29yZSgpIHJlZ2FyZGluZyB0aGUgY29tcHV0YXRpb24gc3RyYXRlZ3kuCisgKi8KK3N0YXRpYyBpbnQgZWNwX211bF9jb21iKG1iZWR0bHNfZWNwX2dyb3VwICpncnAsIG1iZWR0bHNfZWNwX3BvaW50ICpSLAorICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbWJlZHRsc19tcGkgKm0sIGNvbnN0IG1iZWR0bHNfZWNwX3BvaW50ICpQLAorICAgICAgICAgICAgICAgICAgICAgICAgaW50ICgqZl9ybmcpKHZvaWQgKiwgdW5zaWduZWQgY2hhciAqLCBzaXplX3QpLAorICAgICAgICAgICAgICAgICAgICAgICAgdm9pZCAqcF9ybmcsCisgICAgICAgICAgICAgICAgICAgICAgICBtYmVkdGxzX2VjcF9yZXN0YXJ0X2N0eCAqcnNfY3R4KQoreworICAgIGludCByZXQgPSBNQkVEVExTX0VSUl9FUlJPUl9DT1JSVVBUSU9OX0RFVEVDVEVEOworICAgIHVuc2lnbmVkIGNoYXIgdywgcF9lcV9nLCBpOworICAgIHNpemVfdCBkOworICAgIHVuc2lnbmVkIGNoYXIgVF9zaXplID0gMCwgVF9vayA9IDA7CisgICAgbWJlZHRsc19lY3BfcG9pbnQgKlQgPSBOVUxMOworCisgICAgRUNQX1JTX0VOVEVSKHJzbSk7CisKKyAgICAvKiBJcyBQIHRoZSBiYXNlIHBvaW50ID8gKi8KKyNpZiBNQkVEVExTX0VDUF9GSVhFRF9QT0lOVF9PUFRJTSA9PSAxCisgICAgcF9lcV9nID0gKE1QSV9FQ1BfQ01QKCZQLT5ZLCAmZ3JwLT5HLlkpID09IDAgJiYKKyAgICAgICAgICAgICAgTVBJX0VDUF9DTVAoJlAtPlgsICZncnAtPkcuWCkgPT0gMCk7CisjZWxzZQorICAgIHBfZXFfZyA9IDA7CisjZW5kaWYKKworICAgIC8qIFBpY2sgd2luZG93IHNpemUgYW5kIGRlZHVjZSByZWxhdGVkIHNpemVzICovCisgICAgdyA9IGVjcF9waWNrX3dpbmRvd19zaXplKGdycCwgcF9lcV9nKTsKKyAgICBUX3NpemUgPSAxVSA8PCAodyAtIDEpOworICAgIGQgPSAoZ3JwLT5uYml0cyArIHcgLSAxKSAvIHc7CisKKyAgICAvKiBQcmUtY29tcHV0ZWQgdGFibGU6IGRvIHdlIGhhdmUgaXQgYWxyZWFkeSBmb3IgdGhlIGJhc2UgcG9pbnQ/ICovCisgICAgaWYgKHBfZXFfZyAmJiBncnAtPlQgIT0gTlVMTCkgeworICAgICAgICAvKiBzZWNvbmQgcG9pbnRlciB0byB0aGUgc2FtZSB0YWJsZSwgd2lsbCBiZSBkZWxldGVkIG9uIGV4aXQgKi8KKyAgICAgICAgVCA9IGdycC0+VDsKKyAgICAgICAgVF9vayA9IDE7CisgICAgfSBlbHNlCisjaWYgZGVmaW5lZChNQkVEVExTX0VDUF9SRVNUQVJUQUJMRSkKKyAgICAvKiBQcmUtY29tcHV0ZWQgdGFibGU6IGRvIHdlIGhhdmUgb25lIGluIHByb2dyZXNzPyBjb21wbGV0ZT8gKi8KKyAgICBpZiAocnNfY3R4ICE9IE5VTEwgJiYgcnNfY3R4LT5yc20gIT0gTlVMTCAmJiByc19jdHgtPnJzbS0+VCAhPSBOVUxMKSB7CisgICAgICAgIC8qIHRyYW5zZmVyIG93bmVyc2hpcCBvZiBUIGZyb20gcnNtIHRvIGxvY2FsIGZ1bmN0aW9uICovCisgICAgICAgIFQgPSByc19jdHgtPnJzbS0+VDsKKyAgICAgICAgcnNfY3R4LT5yc20tPlQgPSBOVUxMOworICAgICAgICByc19jdHgtPnJzbS0+VF9zaXplID0gMDsKKworICAgICAgICAvKiBUaGlzIGVmZmVjdGl2ZWx5IGp1bXBzIHRvIHRoZSBjYWxsIHRvIG11bF9jb21iX2FmdGVyX3ByZWNvbXAoKSAqLworICAgICAgICBUX29rID0gcnNfY3R4LT5yc20tPnN0YXRlID49IGVjcF9yc21fY29tYl9jb3JlOworICAgIH0gZWxzZQorI2VuZGlmCisgICAgLyogQWxsb2NhdGUgdGFibGUgaWYgd2UgZGlkbid0IGhhdmUgYW55ICovCisgICAgeworICAgICAgICBUID0gbWJlZHRsc19jYWxsb2MoVF9zaXplLCBzaXplb2YobWJlZHRsc19lY3BfcG9pbnQpKTsKKyAgICAgICAgaWYgKFQgPT0gTlVMTCkgeworICAgICAgICAgICAgcmV0ID0gTUJFRFRMU19FUlJfRUNQX0FMTE9DX0ZBSUxFRDsKKyAgICAgICAgICAgIGdvdG8gY2xlYW51cDsKKyAgICAgICAgfQorCisgICAgICAgIGZvciAoaSA9IDA7IGkgPCBUX3NpemU7IGkrKykgeworICAgICAgICAgICAgbWJlZHRsc19lY3BfcG9pbnRfaW5pdCgmVFtpXSk7CisgICAgICAgIH0KKworICAgICAgICBUX29rID0gMDsKKyAgICB9CisKKyAgICAvKiBDb21wdXRlIHRhYmxlIChvciBmaW5pc2ggY29tcHV0aW5nIGl0KSBpZiBub3QgZG9uZSBhbHJlYWR5ICovCisgICAgaWYgKCFUX29rKSB7CisgICAgICAgIE1CRURUTFNfTVBJX0NISyhlY3BfcHJlY29tcHV0ZV9jb21iKGdycCwgVCwgUCwgdywgZCwgcnNfY3R4KSk7CisKKyAgICAgICAgaWYgKHBfZXFfZykgeworICAgICAgICAgICAgLyogYWxtb3N0IHRyYW5zZmVyIG93bmVyc2hpcCBvZiBUIHRvIHRoZSBncm91cCwgYnV0IGtlZXAgYSBjb3B5IG9mCisgICAgICAgICAgICAgKiB0aGUgcG9pbnRlciB0byB1c2UgZm9yIGNhbGxpbmcgdGhlIG5leHQgZnVuY3Rpb24gbW9yZSBlYXNpbHkgKi8KKyAgICAgICAgICAgIGdycC0+VCA9IFQ7CisgICAgICAgICAgICBncnAtPlRfc2l6ZSA9IFRfc2l6ZTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qIEFjdHVhbCBjb21iIG11bHRpcGxpY2F0aW9uIHVzaW5nIHByZWNvbXB1dGVkIHBvaW50cyAqLworICAgIE1CRURUTFNfTVBJX0NISyhlY3BfbXVsX2NvbWJfYWZ0ZXJfcHJlY29tcChncnAsIFIsIG0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFQsIFRfc2l6ZSwgdywgZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZl9ybmcsIHBfcm5nLCByc19jdHgpKTsKKworY2xlYW51cDoKKworICAgIC8qIGRvZXMgVCBiZWxvbmcgdG8gdGhlIGdyb3VwPyAqLworICAgIGlmIChUID09IGdycC0+VCkgeworICAgICAgICBUID0gTlVMTDsKKyAgICB9CisKKyAgICAvKiBkb2VzIFQgYmVsb25nIHRvIHRoZSByZXN0YXJ0IGNvbnRleHQ/ICovCisjaWYgZGVmaW5lZChNQkVEVExTX0VDUF9SRVNUQVJUQUJMRSkKKyAgICBpZiAocnNfY3R4ICE9IE5VTEwgJiYgcnNfY3R4LT5yc20gIT0gTlVMTCAmJiByZXQgPT0gTUJFRFRMU19FUlJfRUNQX0lOX1BST0dSRVNTICYmIFQgIT0gTlVMTCkgeworICAgICAgICAvKiB0cmFuc2ZlciBvd25lcnNoaXAgb2YgVCBmcm9tIGxvY2FsIGZ1bmN0aW9uIHRvIHJzbSAqLworICAgICAgICByc19jdHgtPnJzbS0+VF9zaXplID0gVF9zaXplOworICAgICAgICByc19jdHgtPnJzbS0+VCA9IFQ7CisgICAgICAgIFQgPSBOVUxMOworICAgIH0KKyNlbmRpZgorCisgICAgLyogZGlkIFQgYmVsb25nIHRvIHVzPyB0aGVuIGxldCdzIGRlc3Ryb3kgaXQhICovCisgICAgaWYgKFQgIT0gTlVMTCkgeworICAgICAgICBmb3IgKGkgPSAwOyBpIDwgVF9zaXplOyBpKyspIHsKKyAgICAgICAgICAgIG1iZWR0bHNfZWNwX3BvaW50X2ZyZWUoJlRbaV0pOworICAgICAgICB9CisgICAgICAgIG1iZWR0bHNfZnJlZShUKTsKKyAgICB9CisKKyAgICAvKiBwcmV2ZW50IGNhbGxlciBmcm9tIHVzaW5nIGludmFsaWQgdmFsdWUgKi8KKyAgICBpbnQgc2hvdWxkX2ZyZWVfUiA9IChyZXQgIT0gMCk7CisjaWYgZGVmaW5lZChNQkVEVExTX0VDUF9SRVNUQVJUQUJMRSkKKyAgICAvKiBkb24ndCBmcmVlIFIgd2hpbGUgaW4gcHJvZ3Jlc3MgaW4gY2FzZSBSID09IFAgKi8KKyAgICBpZiAocmV0ID09IE1CRURUTFNfRVJSX0VDUF9JTl9QUk9HUkVTUykgeworICAgICAgICBzaG91bGRfZnJlZV9SID0gMDsKKyAgICB9CisjZW5kaWYKKyAgICBpZiAoc2hvdWxkX2ZyZWVfUikgeworICAgICAgICBtYmVkdGxzX2VjcF9wb2ludF9mcmVlKFIpOworICAgIH0KKworICAgIEVDUF9SU19MRUFWRShyc20pOworCisgICAgcmV0dXJuIHJldDsKK30KKworI2VuZGlmIC8qIE1CRURUTFNfRUNQX1NIT1JUX1dFSUVSU1RSQVNTX0VOQUJMRUQgKi8KKworI2lmIGRlZmluZWQoTUJFRFRMU19FQ1BfTU9OVEdPTUVSWV9FTkFCTEVEKQorLyoKKyAqIEZvciBNb250Z29tZXJ5IGN1cnZlcywgd2UgZG8gYWxsIHRoZSBpbnRlcm5hbCBhcml0aG1ldGljIGluIHByb2plY3RpdmUKKyAqIGNvb3JkaW5hdGVzLiBJbXBvcnQvZXhwb3J0IG9mIHBvaW50cyB1c2VzIG9ubHkgdGhlIHggY29vcmRpbmF0ZXMsIHdoaWNoIGlzCisgKiBpbnRlcm5hbGx5IHJlcHJlc2VudGVkIGFzIFggLyBaLgorICoKKyAqIEZvciBzY2FsYXIgbXVsdGlwbGljYXRpb24sIHdlJ2xsIHVzZSBhIE1vbnRnb21lcnkgbGFkZGVyLgorICovCisKKy8qCisgKiBOb3JtYWxpemUgTW9udGdvbWVyeSB4L3ogY29vcmRpbmF0ZXM6IFggPSBYL1osIFogPSAxCisgKiBDb3N0OiAxTSArIDFJCisgKi8KK3N0YXRpYyBpbnQgZWNwX25vcm1hbGl6ZV9teHooY29uc3QgbWJlZHRsc19lY3BfZ3JvdXAgKmdycCwgbWJlZHRsc19lY3BfcG9pbnQgKlApCit7CisgICAgaW50IHJldCA9IE1CRURUTFNfRVJSX0VSUk9SX0NPUlJVUFRJT05fREVURUNURUQ7CisgICAgTVBJX0VDUF9JTlYoJlAtPlosICZQLT5aKTsKKyAgICBNUElfRUNQX01VTCgmUC0+WCwgJlAtPlgsICZQLT5aKTsKKyAgICBNUElfRUNQX0xTRVQoJlAtPlosIDEpOworCitjbGVhbnVwOgorICAgIHJldHVybiByZXQ7Cit9CisKKy8qCisgKiBSYW5kb21pemUgcHJvamVjdGl2ZSB4L3ogY29vcmRpbmF0ZXM6CisgKiAoWCwgWikgLT4gKGwgWCwgbCBaKSBmb3IgcmFuZG9tIGwKKyAqIFRoaXMgaXMgc29ydCBvZiB0aGUgcmV2ZXJzZSBvcGVyYXRpb24gb2YgZWNwX25vcm1hbGl6ZV9teHooKS4KKyAqCisgKiBUaGlzIGNvdW50ZXJtZWFzdXJlIHdhcyBmaXJzdCBzdWdnZXN0ZWQgaW4gWzJdLgorICogQ29zdDogMk0KKyAqLworc3RhdGljIGludCBlY3BfcmFuZG9taXplX214eihjb25zdCBtYmVkdGxzX2VjcF9ncm91cCAqZ3JwLCBtYmVkdGxzX2VjcF9wb2ludCAqUCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50ICgqZl9ybmcpKHZvaWQgKiwgdW5zaWduZWQgY2hhciAqLCBzaXplX3QpLCB2b2lkICpwX3JuZykKK3sKKyAgICBpbnQgcmV0ID0gTUJFRFRMU19FUlJfRVJST1JfQ09SUlVQVElPTl9ERVRFQ1RFRDsKKyAgICBtYmVkdGxzX21waSBsOworICAgIG1iZWR0bHNfbXBpX2luaXQoJmwpOworCisgICAgLyogR2VuZXJhdGUgbCBzdWNoIHRoYXQgMSA8IGwgPCBwICovCisgICAgTVBJX0VDUF9SQU5EKCZsKTsKKworICAgIE1QSV9FQ1BfTVVMKCZQLT5YLCAmUC0+WCwgJmwpOworICAgIE1QSV9FQ1BfTVVMKCZQLT5aLCAmUC0+WiwgJmwpOworCitjbGVhbnVwOgorICAgIG1iZWR0bHNfbXBpX2ZyZWUoJmwpOworCisgICAgaWYgKHJldCA9PSBNQkVEVExTX0VSUl9NUElfTk9UX0FDQ0VQVEFCTEUpIHsKKyAgICAgICAgcmV0ID0gTUJFRFRMU19FUlJfRUNQX1JBTkRPTV9GQUlMRUQ7CisgICAgfQorICAgIHJldHVybiByZXQ7Cit9CisKKy8qCisgKiBEb3VibGUtYW5kLWFkZDogUiA9IDJQLCBTID0gUCArIFEsIHdpdGggZCA9IFgoUCAtIFEpLAorICogZm9yIE1vbnRnb21lcnkgY3VydmVzIGluIHgveiBjb29yZGluYXRlcy4KKyAqCisgKiBodHRwOi8vd3d3Lmh5cGVyZWxsaXB0aWMub3JnL0VGRC9nMXAvYXV0by1jb2RlL21vbnRnb20veHovbGFkZGVyL21sYWRkLTE5ODctbS5vcDMKKyAqIHdpdGgKKyAqIGQgPSAgWDEKKyAqIFAgPSAoWDIsIFoyKQorICogUSA9IChYMywgWjMpCisgKiBSID0gKFg0LCBaNCkKKyAqIFMgPSAoWDUsIFo1KQorICogYW5kIGVsaW1pbmF0aW5nIHRlbXBvcmFyeSB2YXJpYWJsZXMgdE8sIC4uLiwgdDQuCisgKgorICogQ29zdDogNU0gKyA0UworICovCitzdGF0aWMgaW50IGVjcF9kb3VibGVfYWRkX214eihjb25zdCBtYmVkdGxzX2VjcF9ncm91cCAqZ3JwLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWJlZHRsc19lY3BfcG9pbnQgKlIsIG1iZWR0bHNfZWNwX3BvaW50ICpTLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbWJlZHRsc19lY3BfcG9pbnQgKlAsIGNvbnN0IG1iZWR0bHNfZWNwX3BvaW50ICpRLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbWJlZHRsc19tcGkgKmQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYmVkdGxzX21waSBUWzRdKQoreworICAgIGludCByZXQgPSBNQkVEVExTX0VSUl9FUlJPUl9DT1JSVVBUSU9OX0RFVEVDVEVEOworCisgICAgTVBJX0VDUF9BREQoJlRbMF0sICZQLT5YLCAgICZQLT5aKTsgICAvKiBQcCA6PSBQWCArIFBaICAgICAgICAgICAgICAgICAgICAqLworICAgIE1QSV9FQ1BfU1VCKCZUWzFdLCAmUC0+WCwgICAmUC0+Wik7ICAgLyogUG0gOj0gUFggLSBQWiAgICAgICAgICAgICAgICAgICAgKi8KKyAgICBNUElfRUNQX0FERCgmVFsyXSwgJlEtPlgsICAgJlEtPlopOyAgIC8qIFFwIDo9IFFYICsgWFogICAgICAgICAgICAgICAgICAgICovCisgICAgTVBJX0VDUF9TVUIoJlRbM10sICZRLT5YLCAgICZRLT5aKTsgICAvKiBRbSA6PSBRWCAtIFFaICAgICAgICAgICAgICAgICAgICAqLworICAgIE1QSV9FQ1BfTVVMKCZUWzNdLCAmVFszXSwgICAmVFswXSk7ICAgLyogUW0gKiBQcCAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KKyAgICBNUElfRUNQX01VTCgmVFsyXSwgJlRbMl0sICAgJlRbMV0pOyAgIC8qIFFwICogUG0gICAgICAgICAgICAgICAgICAgICAgICAgICovCisgICAgTVBJX0VDUF9TUVIoJlRbMF0sICZUWzBdKTsgICAgICAgICAgICAvKiBQcF4yICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLworICAgIE1QSV9FQ1BfU1FSKCZUWzFdLCAmVFsxXSk7ICAgICAgICAgICAgLyogUG1eMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KKyAgICBNUElfRUNQX01VTCgmUi0+WCwgJlRbMF0sICAgJlRbMV0pOyAgIC8qIFBwXjIgKiBQbV4yICAgICAgICAgICAgICAgICAgICAgICovCisgICAgTVBJX0VDUF9TVUIoJlRbMF0sICZUWzBdLCAgICZUWzFdKTsgICAvKiBQcF4yIC0gUG1eMiAgICAgICAgICAgICAgICAgICAgICAqLworICAgIE1QSV9FQ1BfTVVMKCZSLT5aLCAmZ3JwLT5BLCAmVFswXSk7ICAgLyogQSAqIChQcF4yIC0gUG1eMikgICAgICAgICAgICAgICAgKi8KKyAgICBNUElfRUNQX0FERCgmUi0+WiwgJlRbMV0sICAgJlItPlopOyAgIC8qIFsgQSAqIChQcF4yLVBtXjIpIF0gKyBQbV4yICAgICAgICovCisgICAgTVBJX0VDUF9BREQoJlMtPlgsICZUWzNdLCAgICZUWzJdKTsgICAvKiBRbSpQcCArIFFwKlBtICAgICAgICAgICAgICAgICAgICAqLworICAgIE1QSV9FQ1BfU1FSKCZTLT5YLCAmUy0+WCk7ICAgICAgICAgICAgLyogKFFtKlBwICsgUXAqUG0pXjIgICAgICAgICAgICAgICAgKi8KKyAgICBNUElfRUNQX1NVQigmUy0+WiwgJlRbM10sICAgJlRbMl0pOyAgIC8qIFFtKlBwIC0gUXAqUG0gICAgICAgICAgICAgICAgICAgICovCisgICAgTVBJX0VDUF9TUVIoJlMtPlosICZTLT5aKTsgICAgICAgICAgICAvKiAoUW0qUHAgLSBRcCpQbSleMiAgICAgICAgICAgICAgICAqLworICAgIE1QSV9FQ1BfTVVMKCZTLT5aLCBkLCAgICAgICAmUy0+Wik7ICAgLyogZCAqICggUW0qUHAgLSBRcCpQbSApXjIgICAgICAgICAgKi8KKyAgICBNUElfRUNQX01VTCgmUi0+WiwgJlRbMF0sICAgJlItPlopOyAgIC8qIFtBKihQcF4yLVBtXjIpK1BtXjJdKihQcF4yLVBtXjIpICovCisKK2NsZWFudXA6CisKKyAgICByZXR1cm4gcmV0OworfQorCisvKgorICogTXVsdGlwbGljYXRpb24gd2l0aCBNb250Z29tZXJ5IGxhZGRlciBpbiB4L3ogY29vcmRpbmF0ZXMsCisgKiBmb3IgY3VydmVzIGluIE1vbnRnb21lcnkgZm9ybQorICovCitzdGF0aWMgaW50IGVjcF9tdWxfbXh6KG1iZWR0bHNfZWNwX2dyb3VwICpncnAsIG1iZWR0bHNfZWNwX3BvaW50ICpSLAorICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBtYmVkdGxzX21waSAqbSwgY29uc3QgbWJlZHRsc19lY3BfcG9pbnQgKlAsCisgICAgICAgICAgICAgICAgICAgICAgIGludCAoKmZfcm5nKSh2b2lkICosIHVuc2lnbmVkIGNoYXIgKiwgc2l6ZV90KSwKKyAgICAgICAgICAgICAgICAgICAgICAgdm9pZCAqcF9ybmcpCit7CisgICAgaW50IHJldCA9IE1CRURUTFNfRVJSX0VSUk9SX0NPUlJVUFRJT05fREVURUNURUQ7CisgICAgc2l6ZV90IGk7CisgICAgdW5zaWduZWQgY2hhciBiOworICAgIG1iZWR0bHNfZWNwX3BvaW50IFJQOworICAgIG1iZWR0bHNfbXBpIFBYOworICAgIG1iZWR0bHNfbXBpIHRtcFs0XTsKKyAgICBtYmVkdGxzX2VjcF9wb2ludF9pbml0KCZSUCk7IG1iZWR0bHNfbXBpX2luaXQoJlBYKTsKKworICAgIG1waV9pbml0X21hbnkodG1wLCBzaXplb2YodG1wKSAvIHNpemVvZihtYmVkdGxzX21waSkpOworCisgICAgaWYgKGZfcm5nID09IE5VTEwpIHsKKyAgICAgICAgcmV0dXJuIE1CRURUTFNfRVJSX0VDUF9CQURfSU5QVVRfREFUQTsKKyAgICB9CisKKyAgICAvKiBTYXZlIFBYIGFuZCByZWFkIGZyb20gUCBiZWZvcmUgd3JpdGluZyB0byBSLCBpbiBjYXNlIFAgPT0gUiAqLworICAgIE1QSV9FQ1BfTU9WKCZQWCwgJlAtPlgpOworICAgIE1CRURUTFNfTVBJX0NISyhtYmVkdGxzX2VjcF9jb3B5KCZSUCwgUCkpOworCisgICAgLyogU2V0IFIgdG8gemVybyBpbiBtb2RpZmllZCB4L3ogY29vcmRpbmF0ZXMgKi8KKyAgICBNUElfRUNQX0xTRVQoJlItPlgsIDEpOworICAgIE1QSV9FQ1BfTFNFVCgmUi0+WiwgMCk7CisgICAgbWJlZHRsc19tcGlfZnJlZSgmUi0+WSk7CisKKyAgICAvKiBSUC5YIG1pZ2h0IGJlIHNsaWdodGx5IGxhcmdlciB0aGFuIFAsIHNvIHJlZHVjZSBpdCAqLworICAgIE1PRF9BREQoJlJQLlgpOworCisgICAgLyogUmFuZG9taXplIGNvb3JkaW5hdGVzIG9mIHRoZSBzdGFydGluZyBwb2ludCAqLworICAgIE1CRURUTFNfTVBJX0NISyhlY3BfcmFuZG9taXplX214eihncnAsICZSUCwgZl9ybmcsIHBfcm5nKSk7CisKKyAgICAvKiBMb29wIGludmFyaWFudDogUiA9IHJlc3VsdCBzbyBmYXIsIFJQID0gUiArIFAgKi8KKyAgICBpID0gZ3JwLT5uYml0cyArIDE7IC8qIG9uZSBwYXN0IHRoZSAoemVyby1iYXNlZCkgcmVxdWlyZWQgbXNiIGZvciBwcml2YXRlIGtleXMgKi8KKyAgICB3aGlsZSAoaS0tID4gMCkgeworICAgICAgICBiID0gbWJlZHRsc19tcGlfZ2V0X2JpdChtLCBpKTsKKyAgICAgICAgLyoKKyAgICAgICAgICogIGlmIChiKSBSID0gMlIgKyBQIGVsc2UgUiA9IDJSLAorICAgICAgICAgKiB3aGljaCBpczoKKyAgICAgICAgICogIGlmIChiKSBkb3VibGVfYWRkKCBSUCwgUiwgUlAsIFIgKQorICAgICAgICAgKiAgZWxzZSAgIGRvdWJsZV9hZGQoIFIsIFJQLCBSLCBSUCApCisgICAgICAgICAqIGJ1dCB1c2luZyBzYWZlIGNvbmRpdGlvbmFsIHN3YXBzIHRvIGF2b2lkIGxlYWtzCisgICAgICAgICAqLworICAgICAgICBNUElfRUNQX0NPTkRfU1dBUCgmUi0+WCwgJlJQLlgsIGIpOworICAgICAgICBNUElfRUNQX0NPTkRfU1dBUCgmUi0+WiwgJlJQLlosIGIpOworICAgICAgICBNQkVEVExTX01QSV9DSEsoZWNwX2RvdWJsZV9hZGRfbXh6KGdycCwgUiwgJlJQLCBSLCAmUlAsICZQWCwgdG1wKSk7CisgICAgICAgIE1QSV9FQ1BfQ09ORF9TV0FQKCZSLT5YLCAmUlAuWCwgYik7CisgICAgICAgIE1QSV9FQ1BfQ09ORF9TV0FQKCZSLT5aLCAmUlAuWiwgYik7CisgICAgfQorCisgICAgLyoKKyAgICAgKiBLbm93bGVkZ2Ugb2YgdGhlIHByb2plY3RpdmUgY29vcmRpbmF0ZXMgbWF5IGxlYWsgdGhlIGxhc3QgZmV3IGJpdHMgb2YgdGhlCisgICAgICogc2NhbGFyIFsxXSwgYW5kIHNpbmNlIG91ciBNUEkgaW1wbGVtZW50YXRpb24gaXNuJ3QgY29uc3RhbnQtZmxvdywKKyAgICAgKiBpbnZlcnNpb24gKHVzZWQgZm9yIGNvb3JkaW5hdGUgbm9ybWFsaXphdGlvbikgbWF5IGxlYWsgdGhlIGZ1bGwgdmFsdWUKKyAgICAgKiBvZiBpdHMgaW5wdXQgdmlhIHNpZGUtY2hhbm5lbHMgWzJdLgorICAgICAqCisgICAgICogWzFdIGh0dHBzOi8vZXByaW50LmlhY3Iub3JnLzIwMDMvMTkxCisgICAgICogWzJdIGh0dHBzOi8vZXByaW50LmlhY3Iub3JnLzIwMjAvMDU1CisgICAgICoKKyAgICAgKiBBdm9pZCB0aGUgbGVhayBieSByYW5kb21pemluZyBjb29yZGluYXRlcyBiZWZvcmUgd2Ugbm9ybWFsaXplIHRoZW0uCisgICAgICovCisgICAgTUJFRFRMU19NUElfQ0hLKGVjcF9yYW5kb21pemVfbXh6KGdycCwgUiwgZl9ybmcsIHBfcm5nKSk7CisgICAgTUJFRFRMU19NUElfQ0hLKGVjcF9ub3JtYWxpemVfbXh6KGdycCwgUikpOworCitjbGVhbnVwOgorICAgIG1iZWR0bHNfZWNwX3BvaW50X2ZyZWUoJlJQKTsgbWJlZHRsc19tcGlfZnJlZSgmUFgpOworCisgICAgbXBpX2ZyZWVfbWFueSh0bXAsIHNpemVvZih0bXApIC8gc2l6ZW9mKG1iZWR0bHNfbXBpKSk7CisgICAgcmV0dXJuIHJldDsKK30KKworI2VuZGlmIC8qIE1CRURUTFNfRUNQX01PTlRHT01FUllfRU5BQkxFRCAqLworCisvKgorICogUmVzdGFydGFibGUgbXVsdGlwbGljYXRpb24gUiA9IG0gKiBQCisgKgorICogVGhpcyBpbnRlcm5hbCBmdW5jdGlvbiBjYW4gYmUgY2FsbGVkIHdpdGhvdXQgYW4gUk5HIGluIGNhc2Ugd2hlcmUgd2Uga25vdworICogdGhlIGlucHV0cyBhcmUgbm90IHNlbnNpdGl2ZS4KKyAqLworc3RhdGljIGludCBlY3BfbXVsX3Jlc3RhcnRhYmxlX2ludGVybmFsKG1iZWR0bHNfZWNwX2dyb3VwICpncnAsIG1iZWR0bHNfZWNwX3BvaW50ICpSLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IG1iZWR0bHNfbXBpICptLCBjb25zdCBtYmVkdGxzX2VjcF9wb2ludCAqUCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgKCpmX3JuZykodm9pZCAqLCB1bnNpZ25lZCBjaGFyICosIHNpemVfdCksIHZvaWQgKnBfcm5nLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1iZWR0bHNfZWNwX3Jlc3RhcnRfY3R4ICpyc19jdHgpCit7CisgICAgaW50IHJldCA9IE1CRURUTFNfRVJSX0VDUF9CQURfSU5QVVRfREFUQTsKKworI2lmIGRlZmluZWQoTUJFRFRMU19FQ1BfUkVTVEFSVEFCTEUpCisgICAgLyogcmVzZXQgb3BzIGNvdW50IGZvciB0aGlzIGNhbGwgaWYgdG9wLWxldmVsICovCisgICAgaWYgKHJzX2N0eCAhPSBOVUxMICYmIHJzX2N0eC0+ZGVwdGgrKyA9PSAwKSB7CisgICAgICAgIHJzX2N0eC0+b3BzX2RvbmUgPSAwOworICAgIH0KKyNlbHNlCisgICAgKHZvaWQpIHJzX2N0eDsKKyNlbmRpZgorCisgICAgaW50IHJlc3RhcnRpbmcgPSAwOworI2lmIGRlZmluZWQoTUJFRFRMU19FQ1BfUkVTVEFSVEFCTEUpCisgICAgcmVzdGFydGluZyA9IChyc19jdHggIT0gTlVMTCAmJiByc19jdHgtPnJzbSAhPSBOVUxMKTsKKyNlbmRpZgorICAgIC8qIHNraXAgYXJndW1lbnQgY2hlY2sgd2hlbiByZXN0YXJ0aW5nICovCisgICAgaWYgKCFyZXN0YXJ0aW5nKSB7CisgICAgICAgIC8qIGNoZWNrX3ByaXZrZXkgaXMgZnJlZSAqLworICAgICAgICBNQkVEVExTX0VDUF9CVURHRVQoTUJFRFRMU19FQ1BfT1BTX0NISyk7CisKKyAgICAgICAgLyogQ29tbW9uIHNhbml0eSBjaGVja3MgKi8KKyAgICAgICAgTUJFRFRMU19NUElfQ0hLKG1iZWR0bHNfZWNwX2NoZWNrX3ByaXZrZXkoZ3JwLCBtKSk7CisgICAgICAgIE1CRURUTFNfTVBJX0NISyhtYmVkdGxzX2VjcF9jaGVja19wdWJrZXkoZ3JwLCBQKSk7CisgICAgfQorCisgICAgcmV0ID0gTUJFRFRMU19FUlJfRUNQX0JBRF9JTlBVVF9EQVRBOworI2lmIGRlZmluZWQoTUJFRFRMU19FQ1BfTU9OVEdPTUVSWV9FTkFCTEVEKQorICAgIGlmIChtYmVkdGxzX2VjcF9nZXRfdHlwZShncnApID09IE1CRURUTFNfRUNQX1RZUEVfTU9OVEdPTUVSWSkgeworICAgICAgICBNQkVEVExTX01QSV9DSEsoZWNwX211bF9teHooZ3JwLCBSLCBtLCBQLCBmX3JuZywgcF9ybmcpKTsKKyAgICB9CisjZW5kaWYKKyNpZiBkZWZpbmVkKE1CRURUTFNfRUNQX1NIT1JUX1dFSUVSU1RSQVNTX0VOQUJMRUQpCisgICAgaWYgKG1iZWR0bHNfZWNwX2dldF90eXBlKGdycCkgPT0gTUJFRFRMU19FQ1BfVFlQRV9TSE9SVF9XRUlFUlNUUkFTUykgeworICAgICAgICBNQkVEVExTX01QSV9DSEsoZWNwX211bF9jb21iKGdycCwgUiwgbSwgUCwgZl9ybmcsIHBfcm5nLCByc19jdHgpKTsKKyAgICB9CisjZW5kaWYKKworY2xlYW51cDoKKworI2lmIGRlZmluZWQoTUJFRFRMU19FQ1BfUkVTVEFSVEFCTEUpCisgICAgaWYgKHJzX2N0eCAhPSBOVUxMKSB7CisgICAgICAgIHJzX2N0eC0+ZGVwdGgtLTsKKyAgICB9CisjZW5kaWYKKworICAgIHJldHVybiByZXQ7Cit9CisKKy8qCisgKiBSZXN0YXJ0YWJsZSBtdWx0aXBsaWNhdGlvbiBSID0gbSAqIFAKKyAqLworaW50IG1iZWR0bHNfZWNwX211bF9yZXN0YXJ0YWJsZShtYmVkdGxzX2VjcF9ncm91cCAqZ3JwLCBtYmVkdGxzX2VjcF9wb2ludCAqUiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbWJlZHRsc19tcGkgKm0sIGNvbnN0IG1iZWR0bHNfZWNwX3BvaW50ICpQLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgKCpmX3JuZykodm9pZCAqLCB1bnNpZ25lZCBjaGFyICosIHNpemVfdCksIHZvaWQgKnBfcm5nLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYmVkdGxzX2VjcF9yZXN0YXJ0X2N0eCAqcnNfY3R4KQoreworICAgIGlmIChmX3JuZyA9PSBOVUxMKSB7CisgICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9FQ1BfQkFEX0lOUFVUX0RBVEE7CisgICAgfQorCisgICAgcmV0dXJuIGVjcF9tdWxfcmVzdGFydGFibGVfaW50ZXJuYWwoZ3JwLCBSLCBtLCBQLCBmX3JuZywgcF9ybmcsIHJzX2N0eCk7Cit9CisKKy8qCisgKiBNdWx0aXBsaWNhdGlvbiBSID0gbSAqIFAKKyAqLworaW50IG1iZWR0bHNfZWNwX211bChtYmVkdGxzX2VjcF9ncm91cCAqZ3JwLCBtYmVkdGxzX2VjcF9wb2ludCAqUiwKKyAgICAgICAgICAgICAgICAgICAgY29uc3QgbWJlZHRsc19tcGkgKm0sIGNvbnN0IG1iZWR0bHNfZWNwX3BvaW50ICpQLAorICAgICAgICAgICAgICAgICAgICBpbnQgKCpmX3JuZykodm9pZCAqLCB1bnNpZ25lZCBjaGFyICosIHNpemVfdCksIHZvaWQgKnBfcm5nKQoreworICAgIHJldHVybiBtYmVkdGxzX2VjcF9tdWxfcmVzdGFydGFibGUoZ3JwLCBSLCBtLCBQLCBmX3JuZywgcF9ybmcsIE5VTEwpOworfQorI2VuZGlmIC8qIE1CRURUTFNfRUNQX0MgKi8KKworI2lmIGRlZmluZWQoTUJFRFRMU19FQ1BfU0hPUlRfV0VJRVJTVFJBU1NfRU5BQkxFRCkKKy8qCisgKiBDaGVjayB0aGF0IGFuIGFmZmluZSBwb2ludCBpcyB2YWxpZCBhcyBhIHB1YmxpYyBrZXksCisgKiBzaG9ydCB3ZWllcnN0cmFzcyBjdXJ2ZXMgKFNFQzEgMy4yLjMuMSkKKyAqLworc3RhdGljIGludCBlY3BfY2hlY2tfcHVia2V5X3N3KGNvbnN0IG1iZWR0bHNfZWNwX2dyb3VwICpncnAsIGNvbnN0IG1iZWR0bHNfZWNwX3BvaW50ICpwdCkKK3sKKyAgICBpbnQgcmV0ID0gTUJFRFRMU19FUlJfRVJST1JfQ09SUlVQVElPTl9ERVRFQ1RFRDsKKyAgICBtYmVkdGxzX21waSBZWSwgUkhTOworCisgICAgLyogcHQgY29vcmRpbmF0ZXMgbXVzdCBiZSBub3JtYWxpemVkIGZvciBvdXIgY2hlY2tzICovCisgICAgaWYgKG1iZWR0bHNfbXBpX2NtcF9pbnQoJnB0LT5YLCAwKSA8IDAgfHwKKyAgICAgICAgbWJlZHRsc19tcGlfY21wX2ludCgmcHQtPlksIDApIDwgMCB8fAorICAgICAgICBtYmVkdGxzX21waV9jbXBfbXBpKCZwdC0+WCwgJmdycC0+UCkgPj0gMCB8fAorICAgICAgICBtYmVkdGxzX21waV9jbXBfbXBpKCZwdC0+WSwgJmdycC0+UCkgPj0gMCkgeworICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfRUNQX0lOVkFMSURfS0VZOworICAgIH0KKworICAgIG1iZWR0bHNfbXBpX2luaXQoJllZKTsgbWJlZHRsc19tcGlfaW5pdCgmUkhTKTsKKworICAgIC8qCisgICAgICogWVkgPSBZXjIKKyAgICAgKiBSSFMgPSBYXjMgKyBBIFggKyBCCisgICAgICovCisgICAgTVBJX0VDUF9TUVIoJllZLCAgJnB0LT5ZKTsKKyAgICBNQkVEVExTX01QSV9DSEsoZWNwX3N3X3JocyhncnAsICZSSFMsICZwdC0+WCkpOworCisgICAgaWYgKE1QSV9FQ1BfQ01QKCZZWSwgJlJIUykgIT0gMCkgeworICAgICAgICByZXQgPSBNQkVEVExTX0VSUl9FQ1BfSU5WQUxJRF9LRVk7CisgICAgfQorCitjbGVhbnVwOgorCisgICAgbWJlZHRsc19tcGlfZnJlZSgmWVkpOyBtYmVkdGxzX21waV9mcmVlKCZSSFMpOworCisgICAgcmV0dXJuIHJldDsKK30KKyNlbmRpZiAvKiBNQkVEVExTX0VDUF9TSE9SVF9XRUlFUlNUUkFTU19FTkFCTEVEICovCisKKyNpZiBkZWZpbmVkKE1CRURUTFNfRUNQX0MpCisjaWYgZGVmaW5lZChNQkVEVExTX0VDUF9TSE9SVF9XRUlFUlNUUkFTU19FTkFCTEVEKQorLyoKKyAqIFIgPSBtICogUCB3aXRoIHNob3J0Y3V0cyBmb3IgbSA9PSAwLCBtID09IDEgYW5kIG0gPT0gLTEKKyAqIE5PVCBjb25zdGFudC10aW1lIC0gT05MWSBmb3Igc2hvcnQgV2VpZXJzdHJhc3MhCisgKi8KK3N0YXRpYyBpbnQgbWJlZHRsc19lY3BfbXVsX3Nob3J0Y3V0cyhtYmVkdGxzX2VjcF9ncm91cCAqZ3JwLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1iZWR0bHNfZWNwX3BvaW50ICpSLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IG1iZWR0bHNfbXBpICptLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IG1iZWR0bHNfZWNwX3BvaW50ICpQLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1iZWR0bHNfZWNwX3Jlc3RhcnRfY3R4ICpyc19jdHgpCit7CisgICAgaW50IHJldCA9IE1CRURUTFNfRVJSX0VSUk9SX0NPUlJVUFRJT05fREVURUNURUQ7CisgICAgbWJlZHRsc19tcGkgdG1wOworICAgIG1iZWR0bHNfbXBpX2luaXQoJnRtcCk7CisKKyAgICBpZiAobWJlZHRsc19tcGlfY21wX2ludChtLCAwKSA9PSAwKSB7CisgICAgICAgIE1CRURUTFNfTVBJX0NISyhtYmVkdGxzX2VjcF9jaGVja19wdWJrZXkoZ3JwLCBQKSk7CisgICAgICAgIE1CRURUTFNfTVBJX0NISyhtYmVkdGxzX2VjcF9zZXRfemVybyhSKSk7CisgICAgfSBlbHNlIGlmIChtYmVkdGxzX21waV9jbXBfaW50KG0sIDEpID09IDApIHsKKyAgICAgICAgTUJFRFRMU19NUElfQ0hLKG1iZWR0bHNfZWNwX2NoZWNrX3B1YmtleShncnAsIFApKTsKKyAgICAgICAgTUJFRFRMU19NUElfQ0hLKG1iZWR0bHNfZWNwX2NvcHkoUiwgUCkpOworICAgIH0gZWxzZSBpZiAobWJlZHRsc19tcGlfY21wX2ludChtLCAtMSkgPT0gMCkgeworICAgICAgICBNQkVEVExTX01QSV9DSEsobWJlZHRsc19lY3BfY2hlY2tfcHVia2V5KGdycCwgUCkpOworICAgICAgICBNQkVEVExTX01QSV9DSEsobWJlZHRsc19lY3BfY29weShSLCBQKSk7CisgICAgICAgIE1QSV9FQ1BfTkVHKCZSLT5ZKTsKKyAgICB9IGVsc2UgeworICAgICAgICBNQkVEVExTX01QSV9DSEsoZWNwX211bF9yZXN0YXJ0YWJsZV9pbnRlcm5hbChncnAsIFIsIG0sIFAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5VTEwsIE5VTEwsIHJzX2N0eCkpOworICAgIH0KKworY2xlYW51cDoKKyAgICBtYmVkdGxzX21waV9mcmVlKCZ0bXApOworCisgICAgcmV0dXJuIHJldDsKK30KKworLyoKKyAqIFJlc3RhcnRhYmxlIGxpbmVhciBjb21iaW5hdGlvbgorICogTk9UIGNvbnN0YW50LXRpbWUKKyAqLworaW50IG1iZWR0bHNfZWNwX211bGFkZF9yZXN0YXJ0YWJsZSgKKyAgICBtYmVkdGxzX2VjcF9ncm91cCAqZ3JwLCBtYmVkdGxzX2VjcF9wb2ludCAqUiwKKyAgICBjb25zdCBtYmVkdGxzX21waSAqbSwgY29uc3QgbWJlZHRsc19lY3BfcG9pbnQgKlAsCisgICAgY29uc3QgbWJlZHRsc19tcGkgKm4sIGNvbnN0IG1iZWR0bHNfZWNwX3BvaW50ICpRLAorICAgIG1iZWR0bHNfZWNwX3Jlc3RhcnRfY3R4ICpyc19jdHgpCit7CisgICAgaW50IHJldCA9IE1CRURUTFNfRVJSX0VSUk9SX0NPUlJVUFRJT05fREVURUNURUQ7CisgICAgbWJlZHRsc19lY3BfcG9pbnQgbVA7CisgICAgbWJlZHRsc19lY3BfcG9pbnQgKnBtUCA9ICZtUDsKKyAgICBtYmVkdGxzX2VjcF9wb2ludCAqcFIgPSBSOworICAgIG1iZWR0bHNfbXBpIHRtcFs0XTsKKyAgICBpZiAobWJlZHRsc19lY3BfZ2V0X3R5cGUoZ3JwKSAhPSBNQkVEVExTX0VDUF9UWVBFX1NIT1JUX1dFSUVSU1RSQVNTKSB7CisgICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9FQ1BfRkVBVFVSRV9VTkFWQUlMQUJMRTsKKyAgICB9CisKKyAgICBtYmVkdGxzX2VjcF9wb2ludF9pbml0KCZtUCk7CisgICAgbXBpX2luaXRfbWFueSh0bXAsIHNpemVvZih0bXApIC8gc2l6ZW9mKG1iZWR0bHNfbXBpKSk7CisKKyAgICBFQ1BfUlNfRU5URVIobWEpOworCisjaWYgZGVmaW5lZChNQkVEVExTX0VDUF9SRVNUQVJUQUJMRSkKKyAgICBpZiAocnNfY3R4ICE9IE5VTEwgJiYgcnNfY3R4LT5tYSAhPSBOVUxMKSB7CisgICAgICAgIC8qIHJlZGlyZWN0IGludGVybWVkaWF0ZSByZXN1bHRzIHRvIHJlc3RhcnQgY29udGV4dCAqLworICAgICAgICBwbVAgPSAmcnNfY3R4LT5tYS0+bVA7CisgICAgICAgIHBSICA9ICZyc19jdHgtPm1hLT5SOworCisgICAgICAgIC8qIGp1bXAgdG8gbmV4dCBvcGVyYXRpb24gKi8KKyAgICAgICAgaWYgKHJzX2N0eC0+bWEtPnN0YXRlID09IGVjcF9yc21hX211bDIpIHsKKyAgICAgICAgICAgIGdvdG8gbXVsMjsKKyAgICAgICAgfQorICAgICAgICBpZiAocnNfY3R4LT5tYS0+c3RhdGUgPT0gZWNwX3JzbWFfYWRkKSB7CisgICAgICAgICAgICBnb3RvIGFkZDsKKyAgICAgICAgfQorICAgICAgICBpZiAocnNfY3R4LT5tYS0+c3RhdGUgPT0gZWNwX3JzbWFfbm9ybSkgeworICAgICAgICAgICAgZ290byBub3JtOworICAgICAgICB9CisgICAgfQorI2VuZGlmIC8qIE1CRURUTFNfRUNQX1JFU1RBUlRBQkxFICovCisKKyAgICBNQkVEVExTX01QSV9DSEsobWJlZHRsc19lY3BfbXVsX3Nob3J0Y3V0cyhncnAsIHBtUCwgbSwgUCwgcnNfY3R4KSk7CisjaWYgZGVmaW5lZChNQkVEVExTX0VDUF9SRVNUQVJUQUJMRSkKKyAgICBpZiAocnNfY3R4ICE9IE5VTEwgJiYgcnNfY3R4LT5tYSAhPSBOVUxMKSB7CisgICAgICAgIHJzX2N0eC0+bWEtPnN0YXRlID0gZWNwX3JzbWFfbXVsMjsKKyAgICB9CisKK211bDI6CisjZW5kaWYKKyAgICBNQkVEVExTX01QSV9DSEsobWJlZHRsc19lY3BfbXVsX3Nob3J0Y3V0cyhncnAsIHBSLCAgbiwgUSwgcnNfY3R4KSk7CisKKyNpZiBkZWZpbmVkKE1CRURUTFNfRUNQX1JFU1RBUlRBQkxFKQorICAgIGlmIChyc19jdHggIT0gTlVMTCAmJiByc19jdHgtPm1hICE9IE5VTEwpIHsKKyAgICAgICAgcnNfY3R4LT5tYS0+c3RhdGUgPSBlY3BfcnNtYV9hZGQ7CisgICAgfQorCithZGQ6CisjZW5kaWYKKyAgICBNQkVEVExTX0VDUF9CVURHRVQoTUJFRFRMU19FQ1BfT1BTX0FERCk7CisgICAgTUJFRFRMU19NUElfQ0hLKGVjcF9hZGRfbWl4ZWQoZ3JwLCBwUiwgcG1QLCBwUiwgdG1wKSk7CisjaWYgZGVmaW5lZChNQkVEVExTX0VDUF9SRVNUQVJUQUJMRSkKKyAgICBpZiAocnNfY3R4ICE9IE5VTEwgJiYgcnNfY3R4LT5tYSAhPSBOVUxMKSB7CisgICAgICAgIHJzX2N0eC0+bWEtPnN0YXRlID0gZWNwX3JzbWFfbm9ybTsKKyAgICB9CisKK25vcm06CisjZW5kaWYKKyAgICBNQkVEVExTX0VDUF9CVURHRVQoTUJFRFRMU19FQ1BfT1BTX0lOVik7CisgICAgTUJFRFRMU19NUElfQ0hLKGVjcF9ub3JtYWxpemVfamFjKGdycCwgcFIpKTsKKworI2lmIGRlZmluZWQoTUJFRFRMU19FQ1BfUkVTVEFSVEFCTEUpCisgICAgaWYgKHJzX2N0eCAhPSBOVUxMICYmIHJzX2N0eC0+bWEgIT0gTlVMTCkgeworICAgICAgICBNQkVEVExTX01QSV9DSEsobWJlZHRsc19lY3BfY29weShSLCBwUikpOworICAgIH0KKyNlbmRpZgorCitjbGVhbnVwOgorCisgICAgbXBpX2ZyZWVfbWFueSh0bXAsIHNpemVvZih0bXApIC8gc2l6ZW9mKG1iZWR0bHNfbXBpKSk7CisKKyAgICBtYmVkdGxzX2VjcF9wb2ludF9mcmVlKCZtUCk7CisKKyAgICBFQ1BfUlNfTEVBVkUobWEpOworCisgICAgcmV0dXJuIHJldDsKK30KKworLyoKKyAqIExpbmVhciBjb21iaW5hdGlvbgorICogTk9UIGNvbnN0YW50LXRpbWUKKyAqLworaW50IG1iZWR0bHNfZWNwX211bGFkZChtYmVkdGxzX2VjcF9ncm91cCAqZ3JwLCBtYmVkdGxzX2VjcF9wb2ludCAqUiwKKyAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbWJlZHRsc19tcGkgKm0sIGNvbnN0IG1iZWR0bHNfZWNwX3BvaW50ICpQLAorICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBtYmVkdGxzX21waSAqbiwgY29uc3QgbWJlZHRsc19lY3BfcG9pbnQgKlEpCit7CisgICAgcmV0dXJuIG1iZWR0bHNfZWNwX211bGFkZF9yZXN0YXJ0YWJsZShncnAsIFIsIG0sIFAsIG4sIFEsIE5VTEwpOworfQorI2VuZGlmIC8qIE1CRURUTFNfRUNQX1NIT1JUX1dFSUVSU1RSQVNTX0VOQUJMRUQgKi8KKyNlbmRpZiAvKiBNQkVEVExTX0VDUF9DICovCisKKyNpZiBkZWZpbmVkKE1CRURUTFNfRUNQX01PTlRHT01FUllfRU5BQkxFRCkKKyNpZiBkZWZpbmVkKE1CRURUTFNfRUNQX0RQX0NVUlZFMjU1MTlfRU5BQkxFRCkKKyNkZWZpbmUgRUNQX01QSV9JTklUKF9wLCBfbikgeyAucCA9IChtYmVkdGxzX21waV91aW50ICopIChfcCksIC5zID0gMSwgLm4gPSAoX24pIH0KKyNkZWZpbmUgRUNQX01QSV9JTklUX0FSUkFZKHgpICAgXAorICAgIEVDUF9NUElfSU5JVCh4LCBzaXplb2YoeCkgLyBzaXplb2YobWJlZHRsc19tcGlfdWludCkpCisvKgorICogQ29uc3RhbnRzIGZvciB0aGUgdHdvIHBvaW50cyBvdGhlciB0aGFuIDAsIDEsIC0xIChtb2QgcCkgaW4KKyAqIGh0dHBzOi8vY3IueXAudG8vZWNkaC5odG1sI3ZhbGlkYXRlCisgKiBTZWUgZWNwX2NoZWNrX3B1YmtleV94MjU1MTkoKS4KKyAqLworc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgeDI1NTE5X2JhZF9wb2ludF8xW10gPSB7CisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweGUwLCAweGViLCAweDdhLCAweDdjLCAweDNiLCAweDQxLCAweGI4LCAweGFlKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MTYsIDB4NTYsIDB4ZTMsIDB4ZmEsIDB4ZjEsIDB4OWYsIDB4YzQsIDB4NmEpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhkYSwgMHgwOSwgMHg4ZCwgMHhlYiwgMHg5YywgMHgzMiwgMHhiMSwgMHhmZCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDg2LCAweDYyLCAweDA1LCAweDE2LCAweDVmLCAweDQ5LCAweGI4LCAweDAwKSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCB4MjU1MTlfYmFkX3BvaW50XzJbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NWYsIDB4OWMsIDB4OTUsIDB4YmMsIDB4YTMsIDB4NTAsIDB4OGMsIDB4MjQpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhiMSwgMHhkMCwgMHhiMSwgMHg1NSwgMHg5YywgMHg4MywgMHhlZiwgMHg1YiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDA0LCAweDQ0LCAweDVjLCAweGM0LCAweDU4LCAweDFjLCAweDhlLCAweDg2KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4ZDgsIDB4MjIsIDB4NGUsIDB4ZGQsIDB4ZDAsIDB4OWYsIDB4MTEsIDB4NTcpLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waSBlY3BfeDI1NTE5X2JhZF9wb2ludF8xID0gRUNQX01QSV9JTklUX0FSUkFZKAorICAgIHgyNTUxOV9iYWRfcG9pbnRfMSk7CitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGkgZWNwX3gyNTUxOV9iYWRfcG9pbnRfMiA9IEVDUF9NUElfSU5JVF9BUlJBWSgKKyAgICB4MjU1MTlfYmFkX3BvaW50XzIpOworI2VuZGlmIC8qIE1CRURUTFNfRUNQX0RQX0NVUlZFMjU1MTlfRU5BQkxFRCAqLworCisvKgorICogQ2hlY2sgdGhhdCB0aGUgaW5wdXQgcG9pbnQgaXMgbm90IG9uZSBvZiB0aGUgbG93LW9yZGVyIHBvaW50cy4KKyAqIFRoaXMgaXMgcmVjb21tZW5kZWQgYnkgdGhlICJNYXkgdGhlIEZvdXJ0aCIgcGFwZXI6CisgKiBodHRwczovL2VwcmludC5pYWNyLm9yZy8yMDE3LzgwNi5wZGYKKyAqIFRob3NlIHBvaW50cyBhcmUgbmV2ZXIgc2VudCBieSBhbiBob25lc3QgcGVlci4KKyAqLworc3RhdGljIGludCBlY3BfY2hlY2tfYmFkX3BvaW50c19teChjb25zdCBtYmVkdGxzX21waSAqWCwgY29uc3QgbWJlZHRsc19tcGkgKlAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IG1iZWR0bHNfZWNwX2dyb3VwX2lkIGdycF9pZCkKK3sKKyAgICBpbnQgcmV0OworICAgIG1iZWR0bHNfbXBpIFhtUDsKKworICAgIG1iZWR0bHNfbXBpX2luaXQoJlhtUCk7CisKKyAgICAvKiBSZWR1Y2UgWCBtb2QgUCBzbyB0aGF0IHdlIG9ubHkgbmVlZCB0byBjaGVjayB2YWx1ZXMgbGVzcyB0aGFuIFAuCisgICAgICogV2Uga25vdyBYIDwgMl4yNTYgc28gd2UgY2FuIHByb2NlZWQgYnkgc3VidHJhY3Rpb24uICovCisgICAgTUJFRFRMU19NUElfQ0hLKG1iZWR0bHNfbXBpX2NvcHkoJlhtUCwgWCkpOworICAgIHdoaWxlIChtYmVkdGxzX21waV9jbXBfbXBpKCZYbVAsIFApID49IDApIHsKKyAgICAgICAgTUJFRFRMU19NUElfQ0hLKG1iZWR0bHNfbXBpX3N1Yl9tcGkoJlhtUCwgJlhtUCwgUCkpOworICAgIH0KKworICAgIC8qIENoZWNrIGFnYWluc3QgdGhlIGtub3duIGJhZCB2YWx1ZXMgdGhhdCBhcmUgbGVzcyB0aGFuIFAuIEZvciBDdXJ2ZTQ0OAorICAgICAqIHRoZXNlIGFyZSAwLCAxIGFuZCAtMS4gRm9yIEN1cnZlMjU1MTkgd2UgY2hlY2sgdGhlIHZhbHVlcyBsZXNzIHRoYW4gUAorICAgICAqIGZyb20gdGhlIGZvbGxvd2luZyBsaXN0OiBodHRwczovL2NyLnlwLnRvL2VjZGguaHRtbCN2YWxpZGF0ZSAqLworICAgIGlmIChtYmVkdGxzX21waV9jbXBfaW50KCZYbVAsIDEpIDw9IDApIHsgIC8qIHRha2VzIGNhcmUgb2YgMCBhbmQgMSAqLworICAgICAgICByZXQgPSBNQkVEVExTX0VSUl9FQ1BfSU5WQUxJRF9LRVk7CisgICAgICAgIGdvdG8gY2xlYW51cDsKKyAgICB9CisKKyNpZiBkZWZpbmVkKE1CRURUTFNfRUNQX0RQX0NVUlZFMjU1MTlfRU5BQkxFRCkKKyAgICBpZiAoZ3JwX2lkID09IE1CRURUTFNfRUNQX0RQX0NVUlZFMjU1MTkpIHsKKyAgICAgICAgaWYgKG1iZWR0bHNfbXBpX2NtcF9tcGkoJlhtUCwgJmVjcF94MjU1MTlfYmFkX3BvaW50XzEpID09IDApIHsKKyAgICAgICAgICAgIHJldCA9IE1CRURUTFNfRVJSX0VDUF9JTlZBTElEX0tFWTsKKyAgICAgICAgICAgIGdvdG8gY2xlYW51cDsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChtYmVkdGxzX21waV9jbXBfbXBpKCZYbVAsICZlY3BfeDI1NTE5X2JhZF9wb2ludF8yKSA9PSAwKSB7CisgICAgICAgICAgICByZXQgPSBNQkVEVExTX0VSUl9FQ1BfSU5WQUxJRF9LRVk7CisgICAgICAgICAgICBnb3RvIGNsZWFudXA7CisgICAgICAgIH0KKyAgICB9CisjZWxzZQorICAgICh2b2lkKSBncnBfaWQ7CisjZW5kaWYKKworICAgIC8qIEZpbmFsIGNoZWNrOiBjaGVjayBpZiBYbVAgKyAxIGlzIFAgKGZpbmFsIGJlY2F1c2UgaXQgY2hhbmdlcyBYbVAhKSAqLworICAgIE1CRURUTFNfTVBJX0NISyhtYmVkdGxzX21waV9hZGRfaW50KCZYbVAsICZYbVAsIDEpKTsKKyAgICBpZiAobWJlZHRsc19tcGlfY21wX21waSgmWG1QLCBQKSA9PSAwKSB7CisgICAgICAgIHJldCA9IE1CRURUTFNfRVJSX0VDUF9JTlZBTElEX0tFWTsKKyAgICAgICAgZ290byBjbGVhbnVwOworICAgIH0KKworICAgIHJldCA9IDA7CisKK2NsZWFudXA6CisgICAgbWJlZHRsc19tcGlfZnJlZSgmWG1QKTsKKworICAgIHJldHVybiByZXQ7Cit9CisKKy8qCisgKiBDaGVjayB2YWxpZGl0eSBvZiBhIHB1YmxpYyBrZXkgZm9yIE1vbnRnb21lcnkgY3VydmVzIHdpdGggeC1vbmx5IHNjaGVtZXMKKyAqLworc3RhdGljIGludCBlY3BfY2hlY2tfcHVia2V5X214KGNvbnN0IG1iZWR0bHNfZWNwX2dyb3VwICpncnAsIGNvbnN0IG1iZWR0bHNfZWNwX3BvaW50ICpwdCkKK3sKKyAgICAvKiBbQ3VydmUyNTUxOSBwLiA1XSBKdXN0IGNoZWNrIFggaXMgdGhlIGNvcnJlY3QgbnVtYmVyIG9mIGJ5dGVzICovCisgICAgLyogQWxsb3cgYW55IHB1YmxpYyB2YWx1ZSwgaWYgaXQncyB0b28gYmlnIHRoZW4gd2UnbGwganVzdCByZWR1Y2UgaXQgbW9kIHAKKyAgICAgKiAoUkZDIDc3NDggc2VjLiA1IHBhcmEuIDMpLiAqLworICAgIGlmIChtYmVkdGxzX21waV9zaXplKCZwdC0+WCkgPiAoZ3JwLT5uYml0cyArIDcpIC8gOCkgeworICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfRUNQX0lOVkFMSURfS0VZOworICAgIH0KKworICAgIC8qIEltcGxpY2l0IGluIGFsbCBzdGFuZGFyZHMgKGFzIHRoZXkgZG9uJ3QgY29uc2lkZXIgbmVnYXRpdmUgbnVtYmVycyk6CisgICAgICogWCBtdXN0IGJlIG5vbi1uZWdhdGl2ZS4gVGhpcyBpcyBub3JtYWxseSBlbnN1cmVkIGJ5IHRoZSB3YXkgaXQncworICAgICAqIGVuY29kZWQgZm9yIHRyYW5zbWlzc2lvbiwgYnV0IGxldCdzIGJlIGV4dHJhIHN1cmUuICovCisgICAgaWYgKG1iZWR0bHNfbXBpX2NtcF9pbnQoJnB0LT5YLCAwKSA8IDApIHsKKyAgICAgICAgcmV0dXJuIE1CRURUTFNfRVJSX0VDUF9JTlZBTElEX0tFWTsKKyAgICB9CisKKyAgICByZXR1cm4gZWNwX2NoZWNrX2JhZF9wb2ludHNfbXgoJnB0LT5YLCAmZ3JwLT5QLCBncnAtPmlkKTsKK30KKyNlbmRpZiAvKiBNQkVEVExTX0VDUF9NT05UR09NRVJZX0VOQUJMRUQgKi8KKworLyoKKyAqIENoZWNrIHRoYXQgYSBwb2ludCBpcyB2YWxpZCBhcyBhIHB1YmxpYyBrZXkKKyAqLworaW50IG1iZWR0bHNfZWNwX2NoZWNrX3B1YmtleShjb25zdCBtYmVkdGxzX2VjcF9ncm91cCAqZ3JwLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBtYmVkdGxzX2VjcF9wb2ludCAqcHQpCit7CisgICAgLyogTXVzdCB1c2UgYWZmaW5lIGNvb3JkaW5hdGVzICovCisgICAgaWYgKG1iZWR0bHNfbXBpX2NtcF9pbnQoJnB0LT5aLCAxKSAhPSAwKSB7CisgICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9FQ1BfSU5WQUxJRF9LRVk7CisgICAgfQorCisjaWYgZGVmaW5lZChNQkVEVExTX0VDUF9NT05UR09NRVJZX0VOQUJMRUQpCisgICAgaWYgKG1iZWR0bHNfZWNwX2dldF90eXBlKGdycCkgPT0gTUJFRFRMU19FQ1BfVFlQRV9NT05UR09NRVJZKSB7CisgICAgICAgIHJldHVybiBlY3BfY2hlY2tfcHVia2V5X214KGdycCwgcHQpOworICAgIH0KKyNlbmRpZgorI2lmIGRlZmluZWQoTUJFRFRMU19FQ1BfU0hPUlRfV0VJRVJTVFJBU1NfRU5BQkxFRCkKKyAgICBpZiAobWJlZHRsc19lY3BfZ2V0X3R5cGUoZ3JwKSA9PSBNQkVEVExTX0VDUF9UWVBFX1NIT1JUX1dFSUVSU1RSQVNTKSB7CisgICAgICAgIHJldHVybiBlY3BfY2hlY2tfcHVia2V5X3N3KGdycCwgcHQpOworICAgIH0KKyNlbmRpZgorICAgIHJldHVybiBNQkVEVExTX0VSUl9FQ1BfQkFEX0lOUFVUX0RBVEE7Cit9CisKKy8qCisgKiBDaGVjayB0aGF0IGFuIG1iZWR0bHNfbXBpIGlzIHZhbGlkIGFzIGEgcHJpdmF0ZSBrZXkKKyAqLworaW50IG1iZWR0bHNfZWNwX2NoZWNrX3ByaXZrZXkoY29uc3QgbWJlZHRsc19lY3BfZ3JvdXAgKmdycCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IG1iZWR0bHNfbXBpICpkKQoreworI2lmIGRlZmluZWQoTUJFRFRMU19FQ1BfTU9OVEdPTUVSWV9FTkFCTEVEKQorICAgIGlmIChtYmVkdGxzX2VjcF9nZXRfdHlwZShncnApID09IE1CRURUTFNfRUNQX1RZUEVfTU9OVEdPTUVSWSkgeworICAgICAgICAvKiBzZWUgUkZDIDc3NDggc2VjLiA1IHBhcmEuIDUgKi8KKyAgICAgICAgaWYgKG1iZWR0bHNfbXBpX2dldF9iaXQoZCwgMCkgIT0gMCB8fAorICAgICAgICAgICAgbWJlZHRsc19tcGlfZ2V0X2JpdChkLCAxKSAhPSAwIHx8CisgICAgICAgICAgICBtYmVkdGxzX21waV9iaXRsZW4oZCkgLSAxICE9IGdycC0+bmJpdHMpIHsgIC8qIG1iZWR0bHNfbXBpX2JpdGxlbiBpcyBvbmUtYmFzZWQhICovCisgICAgICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfRUNQX0lOVkFMSURfS0VZOworICAgICAgICB9CisKKyAgICAgICAgLyogc2VlIFtDdXJ2ZTI1NTE5XSBwYWdlIDUgKi8KKyAgICAgICAgaWYgKGdycC0+bmJpdHMgPT0gMjU0ICYmIG1iZWR0bHNfbXBpX2dldF9iaXQoZCwgMikgIT0gMCkgeworICAgICAgICAgICAgcmV0dXJuIE1CRURUTFNfRVJSX0VDUF9JTlZBTElEX0tFWTsKKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiAwOworICAgIH0KKyNlbmRpZiAvKiBNQkVEVExTX0VDUF9NT05UR09NRVJZX0VOQUJMRUQgKi8KKyNpZiBkZWZpbmVkKE1CRURUTFNfRUNQX1NIT1JUX1dFSUVSU1RSQVNTX0VOQUJMRUQpCisgICAgaWYgKG1iZWR0bHNfZWNwX2dldF90eXBlKGdycCkgPT0gTUJFRFRMU19FQ1BfVFlQRV9TSE9SVF9XRUlFUlNUUkFTUykgeworICAgICAgICAvKiBzZWUgU0VDMSAzLjIgKi8KKyAgICAgICAgaWYgKG1iZWR0bHNfbXBpX2NtcF9pbnQoZCwgMSkgPCAwIHx8CisgICAgICAgICAgICBtYmVkdGxzX21waV9jbXBfbXBpKGQsICZncnAtPk4pID49IDApIHsKKyAgICAgICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9FQ1BfSU5WQUxJRF9LRVk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgfQorICAgIH0KKyNlbmRpZiAvKiBNQkVEVExTX0VDUF9TSE9SVF9XRUlFUlNUUkFTU19FTkFCTEVEICovCisKKyAgICByZXR1cm4gTUJFRFRMU19FUlJfRUNQX0JBRF9JTlBVVF9EQVRBOworfQorCisjaWYgZGVmaW5lZChNQkVEVExTX0VDUF9NT05UR09NRVJZX0VOQUJMRUQpCitNQkVEVExTX1NUQVRJQ19URVNUQUJMRQoraW50IG1iZWR0bHNfZWNwX2dlbl9wcml2a2V5X214KHNpemVfdCBoaWdoX2JpdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYmVkdGxzX21waSAqZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgKCpmX3JuZykodm9pZCAqLCB1bnNpZ25lZCBjaGFyICosIHNpemVfdCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdm9pZCAqcF9ybmcpCit7CisgICAgaW50IHJldCA9IE1CRURUTFNfRVJSX0VDUF9CQURfSU5QVVRfREFUQTsKKyAgICBzaXplX3Qgbl9yYW5kb21fYnl0ZXMgPSBoaWdoX2JpdCAvIDggKyAxOworCisgICAgLyogW0N1cnZlMjU1MTldIHBhZ2UgNSAqLworICAgIC8qIEdlbmVyYXRlIGEgKGhpZ2hfYml0KzEpLWJpdCByYW5kb20gbnVtYmVyIGJ5IGdlbmVyYXRpbmcganVzdCBlbm91Z2gKKyAgICAgKiByYW5kb20gYnl0ZXMsIHRoZW4gc2hpZnRpbmcgb3V0IGV4dHJhIGJpdHMgZnJvbSB0aGUgdG9wIChuZWNlc3NhcnkKKyAgICAgKiB3aGVuIChoaWdoX2JpdCsxKSBpcyBub3QgYSBtdWx0aXBsZSBvZiA4KS4gKi8KKyAgICBNQkVEVExTX01QSV9DSEsobWJlZHRsc19tcGlfZmlsbF9yYW5kb20oZCwgbl9yYW5kb21fYnl0ZXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZfcm5nLCBwX3JuZykpOworICAgIE1CRURUTFNfTVBJX0NISyhtYmVkdGxzX21waV9zaGlmdF9yKGQsIDggKiBuX3JhbmRvbV9ieXRlcyAtIGhpZ2hfYml0IC0gMSkpOworCisgICAgTUJFRFRMU19NUElfQ0hLKG1iZWR0bHNfbXBpX3NldF9iaXQoZCwgaGlnaF9iaXQsIDEpKTsKKworICAgIC8qIE1ha2Ugc3VyZSB0aGUgbGFzdCB0d28gYml0cyBhcmUgdW5zZXQgZm9yIEN1cnZlNDQ4LCB0aHJlZSBiaXRzIGZvcgorICAgICAgIEN1cnZlMjU1MTkgKi8KKyAgICBNQkVEVExTX01QSV9DSEsobWJlZHRsc19tcGlfc2V0X2JpdChkLCAwLCAwKSk7CisgICAgTUJFRFRMU19NUElfQ0hLKG1iZWR0bHNfbXBpX3NldF9iaXQoZCwgMSwgMCkpOworICAgIGlmIChoaWdoX2JpdCA9PSAyNTQpIHsKKyAgICAgICAgTUJFRFRMU19NUElfQ0hLKG1iZWR0bHNfbXBpX3NldF9iaXQoZCwgMiwgMCkpOworICAgIH0KKworY2xlYW51cDoKKyAgICByZXR1cm4gcmV0OworfQorI2VuZGlmIC8qIE1CRURUTFNfRUNQX01PTlRHT01FUllfRU5BQkxFRCAqLworCisjaWYgZGVmaW5lZChNQkVEVExTX0VDUF9TSE9SVF9XRUlFUlNUUkFTU19FTkFCTEVEKQorc3RhdGljIGludCBtYmVkdGxzX2VjcF9nZW5fcHJpdmtleV9zdygKKyAgICBjb25zdCBtYmVkdGxzX21waSAqTiwgbWJlZHRsc19tcGkgKmQsCisgICAgaW50ICgqZl9ybmcpKHZvaWQgKiwgdW5zaWduZWQgY2hhciAqLCBzaXplX3QpLCB2b2lkICpwX3JuZykKK3sKKyAgICBpbnQgcmV0ID0gbWJlZHRsc19tcGlfcmFuZG9tKGQsIDEsIE4sIGZfcm5nLCBwX3JuZyk7CisgICAgc3dpdGNoIChyZXQpIHsKKyAgICAgICAgY2FzZSBNQkVEVExTX0VSUl9NUElfTk9UX0FDQ0VQVEFCTEU6CisgICAgICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfRUNQX1JBTkRPTV9GQUlMRUQ7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICByZXR1cm4gcmV0OworICAgIH0KK30KKyNlbmRpZiAvKiBNQkVEVExTX0VDUF9TSE9SVF9XRUlFUlNUUkFTU19FTkFCTEVEICovCisKKy8qCisgKiBHZW5lcmF0ZSBhIHByaXZhdGUga2V5CisgKi8KK2ludCBtYmVkdGxzX2VjcF9nZW5fcHJpdmtleShjb25zdCBtYmVkdGxzX2VjcF9ncm91cCAqZ3JwLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1iZWR0bHNfbXBpICpkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCAoKmZfcm5nKSh2b2lkICosIHVuc2lnbmVkIGNoYXIgKiwgc2l6ZV90KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB2b2lkICpwX3JuZykKK3sKKyNpZiBkZWZpbmVkKE1CRURUTFNfRUNQX01PTlRHT01FUllfRU5BQkxFRCkKKyAgICBpZiAobWJlZHRsc19lY3BfZ2V0X3R5cGUoZ3JwKSA9PSBNQkVEVExTX0VDUF9UWVBFX01PTlRHT01FUlkpIHsKKyAgICAgICAgcmV0dXJuIG1iZWR0bHNfZWNwX2dlbl9wcml2a2V5X214KGdycC0+bmJpdHMsIGQsIGZfcm5nLCBwX3JuZyk7CisgICAgfQorI2VuZGlmIC8qIE1CRURUTFNfRUNQX01PTlRHT01FUllfRU5BQkxFRCAqLworCisjaWYgZGVmaW5lZChNQkVEVExTX0VDUF9TSE9SVF9XRUlFUlNUUkFTU19FTkFCTEVEKQorICAgIGlmIChtYmVkdGxzX2VjcF9nZXRfdHlwZShncnApID09IE1CRURUTFNfRUNQX1RZUEVfU0hPUlRfV0VJRVJTVFJBU1MpIHsKKyAgICAgICAgcmV0dXJuIG1iZWR0bHNfZWNwX2dlbl9wcml2a2V5X3N3KCZncnAtPk4sIGQsIGZfcm5nLCBwX3JuZyk7CisgICAgfQorI2VuZGlmIC8qIE1CRURUTFNfRUNQX1NIT1JUX1dFSUVSU1RSQVNTX0VOQUJMRUQgKi8KKworICAgIHJldHVybiBNQkVEVExTX0VSUl9FQ1BfQkFEX0lOUFVUX0RBVEE7Cit9CisKKyNpZiBkZWZpbmVkKE1CRURUTFNfRUNQX0MpCisvKgorICogR2VuZXJhdGUgYSBrZXlwYWlyIHdpdGggY29uZmlndXJhYmxlIGJhc2UgcG9pbnQKKyAqLworaW50IG1iZWR0bHNfZWNwX2dlbl9rZXlwYWlyX2Jhc2UobWJlZHRsc19lY3BfZ3JvdXAgKmdycCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IG1iZWR0bHNfZWNwX3BvaW50ICpHLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWJlZHRsc19tcGkgKmQsIG1iZWR0bHNfZWNwX3BvaW50ICpRLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50ICgqZl9ybmcpKHZvaWQgKiwgdW5zaWduZWQgY2hhciAqLCBzaXplX3QpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdm9pZCAqcF9ybmcpCit7CisgICAgaW50IHJldCA9IE1CRURUTFNfRVJSX0VSUk9SX0NPUlJVUFRJT05fREVURUNURUQ7CisgICAgTUJFRFRMU19NUElfQ0hLKG1iZWR0bHNfZWNwX2dlbl9wcml2a2V5KGdycCwgZCwgZl9ybmcsIHBfcm5nKSk7CisgICAgTUJFRFRMU19NUElfQ0hLKG1iZWR0bHNfZWNwX211bChncnAsIFEsIGQsIEcsIGZfcm5nLCBwX3JuZykpOworCitjbGVhbnVwOgorICAgIHJldHVybiByZXQ7Cit9CisKKy8qCisgKiBHZW5lcmF0ZSBrZXkgcGFpciwgd3JhcHBlciBmb3IgY29udmVudGlvbmFsIGJhc2UgcG9pbnQKKyAqLworaW50IG1iZWR0bHNfZWNwX2dlbl9rZXlwYWlyKG1iZWR0bHNfZWNwX2dyb3VwICpncnAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWJlZHRsc19tcGkgKmQsIG1iZWR0bHNfZWNwX3BvaW50ICpRLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCAoKmZfcm5nKSh2b2lkICosIHVuc2lnbmVkIGNoYXIgKiwgc2l6ZV90KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB2b2lkICpwX3JuZykKK3sKKyAgICByZXR1cm4gbWJlZHRsc19lY3BfZ2VuX2tleXBhaXJfYmFzZShncnAsICZncnAtPkcsIGQsIFEsIGZfcm5nLCBwX3JuZyk7Cit9CisKKy8qCisgKiBHZW5lcmF0ZSBhIGtleXBhaXIsIHByZXR0aWVyIHdyYXBwZXIKKyAqLworaW50IG1iZWR0bHNfZWNwX2dlbl9rZXkobWJlZHRsc19lY3BfZ3JvdXBfaWQgZ3JwX2lkLCBtYmVkdGxzX2VjcF9rZXlwYWlyICprZXksCisgICAgICAgICAgICAgICAgICAgICAgICBpbnQgKCpmX3JuZykodm9pZCAqLCB1bnNpZ25lZCBjaGFyICosIHNpemVfdCksIHZvaWQgKnBfcm5nKQoreworICAgIGludCByZXQgPSBNQkVEVExTX0VSUl9FUlJPUl9DT1JSVVBUSU9OX0RFVEVDVEVEOworICAgIGlmICgocmV0ID0gbWJlZHRsc19lY3BfZ3JvdXBfbG9hZCgma2V5LT5ncnAsIGdycF9pZCkpICE9IDApIHsKKyAgICAgICAgcmV0dXJuIHJldDsKKyAgICB9CisKKyAgICByZXR1cm4gbWJlZHRsc19lY3BfZ2VuX2tleXBhaXIoJmtleS0+Z3JwLCAma2V5LT5kLCAma2V5LT5RLCBmX3JuZywgcF9ybmcpOworfQorI2VuZGlmIC8qIE1CRURUTFNfRUNQX0MgKi8KKworaW50IG1iZWR0bHNfZWNwX3NldF9wdWJsaWNfa2V5KG1iZWR0bHNfZWNwX2dyb3VwX2lkIGdycF9pZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYmVkdGxzX2VjcF9rZXlwYWlyICprZXksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbWJlZHRsc19lY3BfcG9pbnQgKlEpCit7CisgICAgaW50IHJldCA9IE1CRURUTFNfRVJSX0VSUk9SX0NPUlJVUFRJT05fREVURUNURUQ7CisKKyAgICBpZiAoa2V5LT5ncnAuaWQgPT0gTUJFRFRMU19FQ1BfRFBfTk9ORSkgeworICAgICAgICAvKiBHcm91cCBub3Qgc2V0IHlldCAqLworICAgICAgICBpZiAoKHJldCA9IG1iZWR0bHNfZWNwX2dyb3VwX2xvYWQoJmtleS0+Z3JwLCBncnBfaWQpKSAhPSAwKSB7CisgICAgICAgICAgICByZXR1cm4gcmV0OworICAgICAgICB9CisgICAgfSBlbHNlIGlmIChrZXktPmdycC5pZCAhPSBncnBfaWQpIHsKKyAgICAgICAgLyogR3JvdXAgbWlzbWF0Y2ggKi8KKyAgICAgICAgcmV0dXJuIE1CRURUTFNfRVJSX0VDUF9CQURfSU5QVVRfREFUQTsKKyAgICB9CisgICAgcmV0dXJuIG1iZWR0bHNfZWNwX2NvcHkoJmtleS0+USwgUSk7Cit9CisKKworI2RlZmluZSBFQ1BfQ1VSVkUyNTUxOV9LRVlfU0laRSAzMgorI2RlZmluZSBFQ1BfQ1VSVkU0NDhfS0VZX1NJWkUgICA1NgorLyoKKyAqIFJlYWQgYSBwcml2YXRlIGtleS4KKyAqLworaW50IG1iZWR0bHNfZWNwX3JlYWRfa2V5KG1iZWR0bHNfZWNwX2dyb3VwX2lkIGdycF9pZCwgbWJlZHRsc19lY3Bfa2V5cGFpciAqa2V5LAorICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgKmJ1Ziwgc2l6ZV90IGJ1ZmxlbikKK3sKKyAgICBpbnQgcmV0ID0gMDsKKworICAgIGlmICgocmV0ID0gbWJlZHRsc19lY3BfZ3JvdXBfbG9hZCgma2V5LT5ncnAsIGdycF9pZCkpICE9IDApIHsKKyAgICAgICAgcmV0dXJuIHJldDsKKyAgICB9CisKKyAgICByZXQgPSBNQkVEVExTX0VSUl9FQ1BfRkVBVFVSRV9VTkFWQUlMQUJMRTsKKworI2lmIGRlZmluZWQoTUJFRFRMU19FQ1BfTU9OVEdPTUVSWV9FTkFCTEVEKQorICAgIGlmIChtYmVkdGxzX2VjcF9nZXRfdHlwZSgma2V5LT5ncnApID09IE1CRURUTFNfRUNQX1RZUEVfTU9OVEdPTUVSWSkgeworICAgICAgICAvKgorICAgICAgICAgKiBNYXNrIHRoZSBrZXkgYXMgbWFuZGF0ZWQgYnkgUkZDNzc0OCBmb3IgQ3VydmUyNTUxOSBhbmQgQ3VydmU0NDguCisgICAgICAgICAqLworICAgICAgICBpZiAoZ3JwX2lkID09IE1CRURUTFNfRUNQX0RQX0NVUlZFMjU1MTkpIHsKKyAgICAgICAgICAgIGlmIChidWZsZW4gIT0gRUNQX0NVUlZFMjU1MTlfS0VZX1NJWkUpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfRUNQX0lOVkFMSURfS0VZOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBNQkVEVExTX01QSV9DSEsobWJlZHRsc19tcGlfcmVhZF9iaW5hcnlfbGUoJmtleS0+ZCwgYnVmLCBidWZsZW4pKTsKKworICAgICAgICAgICAgLyogU2V0IHRoZSB0aHJlZSBsZWFzdCBzaWduaWZpY2FudCBiaXRzIHRvIDAgKi8KKyAgICAgICAgICAgIE1CRURUTFNfTVBJX0NISyhtYmVkdGxzX21waV9zZXRfYml0KCZrZXktPmQsIDAsIDApKTsKKyAgICAgICAgICAgIE1CRURUTFNfTVBJX0NISyhtYmVkdGxzX21waV9zZXRfYml0KCZrZXktPmQsIDEsIDApKTsKKyAgICAgICAgICAgIE1CRURUTFNfTVBJX0NISyhtYmVkdGxzX21waV9zZXRfYml0KCZrZXktPmQsIDIsIDApKTsKKworICAgICAgICAgICAgLyogU2V0IHRoZSBtb3N0IHNpZ25pZmljYW50IGJpdCB0byAwICovCisgICAgICAgICAgICBNQkVEVExTX01QSV9DSEsoCisgICAgICAgICAgICAgICAgbWJlZHRsc19tcGlfc2V0X2JpdCgma2V5LT5kLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRUNQX0NVUlZFMjU1MTlfS0VZX1NJWkUgKiA4IC0gMSwgMCkKKyAgICAgICAgICAgICAgICApOworCisgICAgICAgICAgICAvKiBTZXQgdGhlIHNlY29uZCBtb3N0IHNpZ25pZmljYW50IGJpdCB0byAxICovCisgICAgICAgICAgICBNQkVEVExTX01QSV9DSEsoCisgICAgICAgICAgICAgICAgbWJlZHRsc19tcGlfc2V0X2JpdCgma2V5LT5kLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRUNQX0NVUlZFMjU1MTlfS0VZX1NJWkUgKiA4IC0gMiwgMSkKKyAgICAgICAgICAgICAgICApOworICAgICAgICB9IGVsc2UgaWYgKGdycF9pZCA9PSBNQkVEVExTX0VDUF9EUF9DVVJWRTQ0OCkgeworICAgICAgICAgICAgaWYgKGJ1ZmxlbiAhPSBFQ1BfQ1VSVkU0NDhfS0VZX1NJWkUpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfRUNQX0lOVkFMSURfS0VZOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBNQkVEVExTX01QSV9DSEsobWJlZHRsc19tcGlfcmVhZF9iaW5hcnlfbGUoJmtleS0+ZCwgYnVmLCBidWZsZW4pKTsKKworICAgICAgICAgICAgLyogU2V0IHRoZSB0d28gbGVhc3Qgc2lnbmlmaWNhbnQgYml0cyB0byAwICovCisgICAgICAgICAgICBNQkVEVExTX01QSV9DSEsobWJlZHRsc19tcGlfc2V0X2JpdCgma2V5LT5kLCAwLCAwKSk7CisgICAgICAgICAgICBNQkVEVExTX01QSV9DSEsobWJlZHRsc19tcGlfc2V0X2JpdCgma2V5LT5kLCAxLCAwKSk7CisKKyAgICAgICAgICAgIC8qIFNldCB0aGUgbW9zdCBzaWduaWZpY2FudCBiaXQgdG8gMSAqLworICAgICAgICAgICAgTUJFRFRMU19NUElfQ0hLKAorICAgICAgICAgICAgICAgIG1iZWR0bHNfbXBpX3NldF9iaXQoJmtleS0+ZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVDUF9DVVJWRTQ0OF9LRVlfU0laRSAqIDggLSAxLCAxKQorICAgICAgICAgICAgICAgICk7CisgICAgICAgIH0KKyAgICB9CisjZW5kaWYKKyNpZiBkZWZpbmVkKE1CRURUTFNfRUNQX1NIT1JUX1dFSUVSU1RSQVNTX0VOQUJMRUQpCisgICAgaWYgKG1iZWR0bHNfZWNwX2dldF90eXBlKCZrZXktPmdycCkgPT0gTUJFRFRMU19FQ1BfVFlQRV9TSE9SVF9XRUlFUlNUUkFTUykgeworICAgICAgICBNQkVEVExTX01QSV9DSEsobWJlZHRsc19tcGlfcmVhZF9iaW5hcnkoJmtleS0+ZCwgYnVmLCBidWZsZW4pKTsKKyAgICB9CisjZW5kaWYKKworICAgIGlmIChyZXQgPT0gMCkgeworICAgICAgICBNQkVEVExTX01QSV9DSEsobWJlZHRsc19lY3BfY2hlY2tfcHJpdmtleSgma2V5LT5ncnAsICZrZXktPmQpKTsKKyAgICB9CisKK2NsZWFudXA6CisKKyAgICBpZiAocmV0ICE9IDApIHsKKyAgICAgICAgbWJlZHRsc19tcGlfZnJlZSgma2V5LT5kKTsKKyAgICB9CisKKyAgICByZXR1cm4gcmV0OworfQorCisvKgorICogV3JpdGUgYSBwcml2YXRlIGtleS4KKyAqLworI2lmICFkZWZpbmVkIE1CRURUTFNfREVQUkVDQVRFRF9SRU1PVkVECitpbnQgbWJlZHRsc19lY3Bfd3JpdGVfa2V5KG1iZWR0bHNfZWNwX2tleXBhaXIgKmtleSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgY2hhciAqYnVmLCBzaXplX3QgYnVmbGVuKQoreworICAgIGludCByZXQgPSBNQkVEVExTX0VSUl9FUlJPUl9DT1JSVVBUSU9OX0RFVEVDVEVEOworCisjaWYgZGVmaW5lZChNQkVEVExTX0VDUF9NT05UR09NRVJZX0VOQUJMRUQpCisgICAgaWYgKG1iZWR0bHNfZWNwX2dldF90eXBlKCZrZXktPmdycCkgPT0gTUJFRFRMU19FQ1BfVFlQRV9NT05UR09NRVJZKSB7CisgICAgICAgIGlmIChrZXktPmdycC5pZCA9PSBNQkVEVExTX0VDUF9EUF9DVVJWRTI1NTE5KSB7CisgICAgICAgICAgICBpZiAoYnVmbGVuIDwgRUNQX0NVUlZFMjU1MTlfS0VZX1NJWkUpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfRUNQX0JVRkZFUl9UT09fU01BTEw7CisgICAgICAgICAgICB9CisKKyAgICAgICAgfSBlbHNlIGlmIChrZXktPmdycC5pZCA9PSBNQkVEVExTX0VDUF9EUF9DVVJWRTQ0OCkgeworICAgICAgICAgICAgaWYgKGJ1ZmxlbiA8IEVDUF9DVVJWRTQ0OF9LRVlfU0laRSkgeworICAgICAgICAgICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9FQ1BfQlVGRkVSX1RPT19TTUFMTDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBNQkVEVExTX01QSV9DSEsobWJlZHRsc19tcGlfd3JpdGVfYmluYXJ5X2xlKCZrZXktPmQsIGJ1ZiwgYnVmbGVuKSk7CisgICAgfQorI2VuZGlmCisjaWYgZGVmaW5lZChNQkVEVExTX0VDUF9TSE9SVF9XRUlFUlNUUkFTU19FTkFCTEVEKQorICAgIGlmIChtYmVkdGxzX2VjcF9nZXRfdHlwZSgma2V5LT5ncnApID09IE1CRURUTFNfRUNQX1RZUEVfU0hPUlRfV0VJRVJTVFJBU1MpIHsKKyAgICAgICAgTUJFRFRMU19NUElfQ0hLKG1iZWR0bHNfbXBpX3dyaXRlX2JpbmFyeSgma2V5LT5kLCBidWYsIGJ1ZmxlbikpOworICAgIH0KKworI2VuZGlmCitjbGVhbnVwOgorCisgICAgcmV0dXJuIHJldDsKK30KKyNlbmRpZiAvKiBNQkVEVExTX0RFUFJFQ0FURURfUkVNT1ZFRCAqLworCitpbnQgbWJlZHRsc19lY3Bfd3JpdGVfa2V5X2V4dChjb25zdCBtYmVkdGxzX2VjcF9rZXlwYWlyICprZXksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgKm9sZW4sIHVuc2lnbmVkIGNoYXIgKmJ1Ziwgc2l6ZV90IGJ1ZmxlbikKK3sKKyAgICBzaXplX3QgbGVuID0gKGtleS0+Z3JwLm5iaXRzICsgNykgLyA4OworICAgIGlmIChsZW4gPiBidWZsZW4pIHsKKyAgICAgICAgLyogRm9yIHJvYnVzdG5lc3MsIGVuc3VyZSAqb2xlbiA8PSBidWZsZW4gZXZlbiBvbiBlcnJvci4gKi8KKyAgICAgICAgKm9sZW4gPSAwOworICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfRUNQX0JVRkZFUl9UT09fU01BTEw7CisgICAgfQorICAgICpvbGVuID0gbGVuOworCisgICAgLyogUHJpdmF0ZSBrZXkgbm90IHNldCAqLworICAgIGlmIChrZXktPmQubiA9PSAwKSB7CisgICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9FQ1BfQkFEX0lOUFVUX0RBVEE7CisgICAgfQorCisjaWYgZGVmaW5lZChNQkVEVExTX0VDUF9NT05UR09NRVJZX0VOQUJMRUQpCisgICAgaWYgKG1iZWR0bHNfZWNwX2dldF90eXBlKCZrZXktPmdycCkgPT0gTUJFRFRMU19FQ1BfVFlQRV9NT05UR09NRVJZKSB7CisgICAgICAgIHJldHVybiBtYmVkdGxzX21waV93cml0ZV9iaW5hcnlfbGUoJmtleS0+ZCwgYnVmLCBsZW4pOworICAgIH0KKyNlbmRpZgorCisjaWYgZGVmaW5lZChNQkVEVExTX0VDUF9TSE9SVF9XRUlFUlNUUkFTU19FTkFCTEVEKQorICAgIGlmIChtYmVkdGxzX2VjcF9nZXRfdHlwZSgma2V5LT5ncnApID09IE1CRURUTFNfRUNQX1RZUEVfU0hPUlRfV0VJRVJTVFJBU1MpIHsKKyAgICAgICAgcmV0dXJuIG1iZWR0bHNfbXBpX3dyaXRlX2JpbmFyeSgma2V5LT5kLCBidWYsIGxlbik7CisgICAgfQorI2VuZGlmCisKKyAgICAvKiBQcml2YXRlIGtleSBzZXQgYnV0IG5vIHJlY29nbml6ZWQgY3VydmUgdHlwZT8gVGhpcyBzaG91bGRuJ3QgaGFwcGVuLiAqLworICAgIHJldHVybiBNQkVEVExTX0VSUl9FUlJPUl9DT1JSVVBUSU9OX0RFVEVDVEVEOworfQorCisvKgorICogV3JpdGUgYSBwdWJsaWMga2V5LgorICovCitpbnQgbWJlZHRsc19lY3Bfd3JpdGVfcHVibGljX2tleShjb25zdCBtYmVkdGxzX2VjcF9rZXlwYWlyICprZXksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgZm9ybWF0LCBzaXplX3QgKm9sZW4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBjaGFyICpidWYsIHNpemVfdCBidWZsZW4pCit7CisgICAgcmV0dXJuIG1iZWR0bHNfZWNwX3BvaW50X3dyaXRlX2JpbmFyeSgma2V5LT5ncnAsICZrZXktPlEsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3JtYXQsIG9sZW4sIGJ1ZiwgYnVmbGVuKTsKK30KKworCisjaWYgZGVmaW5lZChNQkVEVExTX0VDUF9DKQorLyoKKyAqIENoZWNrIGEgcHVibGljLXByaXZhdGUga2V5IHBhaXIKKyAqLworaW50IG1iZWR0bHNfZWNwX2NoZWNrX3B1Yl9wcml2KAorICAgIGNvbnN0IG1iZWR0bHNfZWNwX2tleXBhaXIgKnB1YiwgY29uc3QgbWJlZHRsc19lY3Bfa2V5cGFpciAqcHJ2LAorICAgIGludCAoKmZfcm5nKSh2b2lkICosIHVuc2lnbmVkIGNoYXIgKiwgc2l6ZV90KSwgdm9pZCAqcF9ybmcpCit7CisgICAgaW50IHJldCA9IE1CRURUTFNfRVJSX0VSUk9SX0NPUlJVUFRJT05fREVURUNURUQ7CisgICAgbWJlZHRsc19lY3BfcG9pbnQgUTsKKyAgICBtYmVkdGxzX2VjcF9ncm91cCBncnA7CisgICAgaWYgKHB1Yi0+Z3JwLmlkID09IE1CRURUTFNfRUNQX0RQX05PTkUgfHwKKyAgICAgICAgcHViLT5ncnAuaWQgIT0gcHJ2LT5ncnAuaWQgfHwKKyAgICAgICAgbWJlZHRsc19tcGlfY21wX21waSgmcHViLT5RLlgsICZwcnYtPlEuWCkgfHwKKyAgICAgICAgbWJlZHRsc19tcGlfY21wX21waSgmcHViLT5RLlksICZwcnYtPlEuWSkgfHwKKyAgICAgICAgbWJlZHRsc19tcGlfY21wX21waSgmcHViLT5RLlosICZwcnYtPlEuWikpIHsKKyAgICAgICAgcmV0dXJuIE1CRURUTFNfRVJSX0VDUF9CQURfSU5QVVRfREFUQTsKKyAgICB9CisKKyAgICBtYmVkdGxzX2VjcF9wb2ludF9pbml0KCZRKTsKKyAgICBtYmVkdGxzX2VjcF9ncm91cF9pbml0KCZncnApOworCisgICAgLyogbWJlZHRsc19lY3BfbXVsKCkgbmVlZHMgYSBub24tY29uc3QgZ3JvdXAuLi4gKi8KKyAgICBtYmVkdGxzX2VjcF9ncm91cF9jb3B5KCZncnAsICZwcnYtPmdycCk7CisKKyAgICAvKiBBbHNvIGNoZWNrcyBkIGlzIHZhbGlkICovCisgICAgTUJFRFRMU19NUElfQ0hLKG1iZWR0bHNfZWNwX211bCgmZ3JwLCAmUSwgJnBydi0+ZCwgJnBydi0+Z3JwLkcsIGZfcm5nLCBwX3JuZykpOworCisgICAgaWYgKG1iZWR0bHNfbXBpX2NtcF9tcGkoJlEuWCwgJnBydi0+US5YKSB8fAorICAgICAgICBtYmVkdGxzX21waV9jbXBfbXBpKCZRLlksICZwcnYtPlEuWSkgfHwKKyAgICAgICAgbWJlZHRsc19tcGlfY21wX21waSgmUS5aLCAmcHJ2LT5RLlopKSB7CisgICAgICAgIHJldCA9IE1CRURUTFNfRVJSX0VDUF9CQURfSU5QVVRfREFUQTsKKyAgICAgICAgZ290byBjbGVhbnVwOworICAgIH0KKworY2xlYW51cDoKKyAgICBtYmVkdGxzX2VjcF9wb2ludF9mcmVlKCZRKTsKKyAgICBtYmVkdGxzX2VjcF9ncm91cF9mcmVlKCZncnApOworCisgICAgcmV0dXJuIHJldDsKK30KKworaW50IG1iZWR0bHNfZWNwX2tleXBhaXJfY2FsY19wdWJsaWMobWJlZHRsc19lY3Bfa2V5cGFpciAqa2V5LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50ICgqZl9ybmcpKHZvaWQgKiwgdW5zaWduZWQgY2hhciAqLCBzaXplX3QpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdm9pZCAqcF9ybmcpCit7CisgICAgcmV0dXJuIG1iZWR0bHNfZWNwX211bCgma2V5LT5ncnAsICZrZXktPlEsICZrZXktPmQsICZrZXktPmdycC5HLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgZl9ybmcsIHBfcm5nKTsKK30KKyNlbmRpZiAvKiBNQkVEVExTX0VDUF9DICovCisKK21iZWR0bHNfZWNwX2dyb3VwX2lkIG1iZWR0bHNfZWNwX2tleXBhaXJfZ2V0X2dyb3VwX2lkKAorICAgIGNvbnN0IG1iZWR0bHNfZWNwX2tleXBhaXIgKmtleSkKK3sKKyAgICByZXR1cm4ga2V5LT5ncnAuaWQ7Cit9CisKKy8qCisgKiBFeHBvcnQgZ2VuZXJpYyBrZXktcGFpciBwYXJhbWV0ZXJzLgorICovCitpbnQgbWJlZHRsc19lY3BfZXhwb3J0KGNvbnN0IG1iZWR0bHNfZWNwX2tleXBhaXIgKmtleSwgbWJlZHRsc19lY3BfZ3JvdXAgKmdycCwKKyAgICAgICAgICAgICAgICAgICAgICAgbWJlZHRsc19tcGkgKmQsIG1iZWR0bHNfZWNwX3BvaW50ICpRKQoreworICAgIGludCByZXQgPSBNQkVEVExTX0VSUl9FUlJPUl9DT1JSVVBUSU9OX0RFVEVDVEVEOworCisgICAgaWYgKGdycCAhPSBOVUxMICYmIChyZXQgPSBtYmVkdGxzX2VjcF9ncm91cF9jb3B5KGdycCwgJmtleS0+Z3JwKSkgIT0gMCkgeworICAgICAgICByZXR1cm4gcmV0OworICAgIH0KKworICAgIGlmIChkICE9IE5VTEwgJiYgKHJldCA9IG1iZWR0bHNfbXBpX2NvcHkoZCwgJmtleS0+ZCkpICE9IDApIHsKKyAgICAgICAgcmV0dXJuIHJldDsKKyAgICB9CisKKyAgICBpZiAoUSAhPSBOVUxMICYmIChyZXQgPSBtYmVkdGxzX2VjcF9jb3B5KFEsICZrZXktPlEpKSAhPSAwKSB7CisgICAgICAgIHJldHVybiByZXQ7CisgICAgfQorCisgICAgcmV0dXJuIDA7Cit9CisKKyNpZiBkZWZpbmVkKE1CRURUTFNfU0VMRl9URVNUKQorCisjaWYgZGVmaW5lZChNQkVEVExTX0VDUF9DKQorLyoKKyAqIFBSTkcgZm9yIHRlc3QgLSAhISFJTlNFQ1VSRSBORVZFUiBVU0UgSU4gUFJPRFVDVElPTiEhIQorICoKKyAqIFRoaXMgaXMgdGhlIGxpbmVhciBjb25ncnVlbnRpYWwgZ2VuZXJhdG9yIGZyb20gbnVtZXJpY2FsIHJlY2lwZXMsCisgKiBleGNlcHQgd2Ugb25seSB1c2UgdGhlIGxvdyBieXRlIGFzIHRoZSBvdXRwdXQuIFNlZQorICogaHR0cHM6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvTGluZWFyX2NvbmdydWVudGlhbF9nZW5lcmF0b3IjUGFyYW1ldGVyc19pbl9jb21tb25fdXNlCisgKi8KK3N0YXRpYyBpbnQgc2VsZl90ZXN0X3JuZyh2b2lkICpjdHgsIHVuc2lnbmVkIGNoYXIgKm91dCwgc2l6ZV90IGxlbikKK3sKKyAgICBzdGF0aWMgdWludDMyX3Qgc3RhdGUgPSA0MjsKKworICAgICh2b2lkKSBjdHg7CisKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGxlbjsgaSsrKSB7CisgICAgICAgIHN0YXRlID0gc3RhdGUgKiAxNjY0NTI1dSArIDEwMTM5MDQyMjN1OworICAgICAgICBvdXRbaV0gPSAodW5zaWduZWQgY2hhcikgc3RhdGU7CisgICAgfQorCisgICAgcmV0dXJuIDA7Cit9CisKKy8qIEFkanVzdCB0aGUgZXhwb25lbnQgdG8gYmUgYSB2YWxpZCBwcml2YXRlIHBvaW50IGZvciB0aGUgc3BlY2lmaWVkIGN1cnZlLgorICogVGhpcyBpcyBzb21ldGltZXMgbmVjZXNzYXJ5IGJlY2F1c2Ugd2UgdXNlIGEgc2luZ2xlIHNldCBvZiBleHBvbmVudHMKKyAqIGZvciBhbGwgY3VydmVzIGJ1dCB0aGUgdmFsaWRpdHkgb2YgdmFsdWVzIGRlcGVuZHMgb24gdGhlIGN1cnZlLiAqLworc3RhdGljIGludCBzZWxmX3Rlc3RfYWRqdXN0X2V4cG9uZW50KGNvbnN0IG1iZWR0bHNfZWNwX2dyb3VwICpncnAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWJlZHRsc19tcGkgKm0pCit7CisgICAgaW50IHJldCA9IDA7CisgICAgc3dpdGNoIChncnAtPmlkKSB7CisgICAgLyogSWYgQ3VydmUyNTUxOSBpcyBhdmFpbGFibGUsIHRoZW4gdGhhdCdzIHdoYXQgd2UgdXNlIGZvciB0aGUKKyAgICAgKiBNb250Z29tZXJ5IHRlc3QsIHNvIHdlIGRvbid0IG5lZWQgdGhlIGFkanVzdG1lbnQgY29kZS4gKi8KKyNpZiAhZGVmaW5lZChNQkVEVExTX0VDUF9EUF9DVVJWRTI1NTE5X0VOQUJMRUQpCisjaWYgZGVmaW5lZChNQkVEVExTX0VDUF9EUF9DVVJWRTQ0OF9FTkFCTEVEKQorICAgICAgICBjYXNlIE1CRURUTFNfRUNQX0RQX0NVUlZFNDQ4OgorICAgICAgICAgICAgLyogTW92ZSBoaWdoZXN0IGJpdCBmcm9tIDI1NCB0byBOLTEuIFNldHRpbmcgYml0IE4tMSBpcworICAgICAgICAgICAgICogbmVjZXNzYXJ5IHRvIGVuZm9yY2UgdGhlIGhpZ2hlc3QtYml0LXNldCBjb25zdHJhaW50LiAqLworICAgICAgICAgICAgTUJFRFRMU19NUElfQ0hLKG1iZWR0bHNfbXBpX3NldF9iaXQobSwgMjU0LCAwKSk7CisgICAgICAgICAgICBNQkVEVExTX01QSV9DSEsobWJlZHRsc19tcGlfc2V0X2JpdChtLCBncnAtPm5iaXRzLCAxKSk7CisgICAgICAgICAgICAvKiBDb3B5IHNlY29uZC1oaWdoZXN0IGJpdCBmcm9tIDI1MyB0byBOLTIuIFRoaXMgaXMgbm90CisgICAgICAgICAgICAgKiBuZWNlc3NhcnkgYnV0IGltcHJvdmVzIHRoZSB0ZXN0IHZhcmlldHkgYSBiaXQuICovCisgICAgICAgICAgICBNQkVEVExTX01QSV9DSEsoCisgICAgICAgICAgICAgICAgbWJlZHRsc19tcGlfc2V0X2JpdChtLCBncnAtPm5iaXRzIC0gMSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1iZWR0bHNfbXBpX2dldF9iaXQobSwgMjUzKSkpOworICAgICAgICAgICAgYnJlYWs7CisjZW5kaWYKKyNlbmRpZiAvKiAhIGRlZmluZWQoTUJFRFRMU19FQ1BfRFBfQ1VSVkUyNTUxOV9FTkFCTEVEKSAqLworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgLyogTm9uLU1vbnRnb21lcnkgY3VydmVzIGFuZCBDdXJ2ZTI1NTE5IG5lZWQgbm8gYWRqdXN0bWVudC4gKi8KKyAgICAgICAgICAgICh2b2lkKSBncnA7CisgICAgICAgICAgICAodm9pZCkgbTsKKyAgICAgICAgICAgIGdvdG8gY2xlYW51cDsKKyAgICB9CitjbGVhbnVwOgorICAgIHJldHVybiByZXQ7Cit9CisKKy8qIENhbGN1bGF0ZSBSID0gbS5QIGZvciBlYWNoIG0gaW4gZXhwb25lbnRzLiBDaGVjayB0aGF0IHRoZSBudW1iZXIgb2YKKyAqIGJhc2ljIG9wZXJhdGlvbnMgZG9lc24ndCBkZXBlbmQgb24gdGhlIHZhbHVlIG9mIG0uICovCitzdGF0aWMgaW50IHNlbGZfdGVzdF9wb2ludChpbnQgdmVyYm9zZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIG1iZWR0bHNfZWNwX2dyb3VwICpncnAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICBtYmVkdGxzX2VjcF9wb2ludCAqUiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIG1iZWR0bHNfbXBpICptLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbWJlZHRsc19lY3BfcG9pbnQgKlAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICpjb25zdCAqZXhwb25lbnRzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IG5fZXhwb25lbnRzKQoreworICAgIGludCByZXQgPSAwOworICAgIHNpemVfdCBpID0gMDsKKyAgICB1bnNpZ25lZCBsb25nIGFkZF9jX3ByZXYsIGRibF9jX3ByZXYsIG11bF9jX3ByZXY7CisgICAgYWRkX2NvdW50ID0gMDsKKyAgICBkYmxfY291bnQgPSAwOworICAgIG11bF9jb3VudCA9IDA7CisKKyAgICBNQkVEVExTX01QSV9DSEsobWJlZHRsc19tcGlfcmVhZF9zdHJpbmcobSwgMTYsIGV4cG9uZW50c1swXSkpOworICAgIE1CRURUTFNfTVBJX0NISyhzZWxmX3Rlc3RfYWRqdXN0X2V4cG9uZW50KGdycCwgbSkpOworICAgIE1CRURUTFNfTVBJX0NISyhtYmVkdGxzX2VjcF9tdWwoZ3JwLCBSLCBtLCBQLCBzZWxmX3Rlc3Rfcm5nLCBOVUxMKSk7CisKKyAgICBmb3IgKGkgPSAxOyBpIDwgbl9leHBvbmVudHM7IGkrKykgeworICAgICAgICBhZGRfY19wcmV2ID0gYWRkX2NvdW50OworICAgICAgICBkYmxfY19wcmV2ID0gZGJsX2NvdW50OworICAgICAgICBtdWxfY19wcmV2ID0gbXVsX2NvdW50OworICAgICAgICBhZGRfY291bnQgPSAwOworICAgICAgICBkYmxfY291bnQgPSAwOworICAgICAgICBtdWxfY291bnQgPSAwOworCisgICAgICAgIE1CRURUTFNfTVBJX0NISyhtYmVkdGxzX21waV9yZWFkX3N0cmluZyhtLCAxNiwgZXhwb25lbnRzW2ldKSk7CisgICAgICAgIE1CRURUTFNfTVBJX0NISyhzZWxmX3Rlc3RfYWRqdXN0X2V4cG9uZW50KGdycCwgbSkpOworICAgICAgICBNQkVEVExTX01QSV9DSEsobWJlZHRsc19lY3BfbXVsKGdycCwgUiwgbSwgUCwgc2VsZl90ZXN0X3JuZywgTlVMTCkpOworCisgICAgICAgIGlmIChhZGRfY291bnQgIT0gYWRkX2NfcHJldiB8fAorICAgICAgICAgICAgZGJsX2NvdW50ICE9IGRibF9jX3ByZXYgfHwKKyAgICAgICAgICAgIG11bF9jb3VudCAhPSBtdWxfY19wcmV2KSB7CisgICAgICAgICAgICByZXQgPSAxOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICB9CisKK2NsZWFudXA6CisgICAgaWYgKHZlcmJvc2UgIT0gMCkgeworICAgICAgICBpZiAocmV0ICE9IDApIHsKKyAgICAgICAgICAgIG1iZWR0bHNfcHJpbnRmKCJmYWlsZWQgKCV1KVxuIiwgKHVuc2lnbmVkIGludCkgaSk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBtYmVkdGxzX3ByaW50ZigicGFzc2VkXG4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICByZXR1cm4gcmV0OworfQorI2VuZGlmIC8qIE1CRURUTFNfRUNQX0MgKi8KKworLyoKKyAqIENoZWNrdXAgcm91dGluZQorICovCitpbnQgbWJlZHRsc19lY3Bfc2VsZl90ZXN0KGludCB2ZXJib3NlKQoreworI2lmIGRlZmluZWQoTUJFRFRMU19FQ1BfQykKKyAgICBpbnQgcmV0ID0gTUJFRFRMU19FUlJfRVJST1JfQ09SUlVQVElPTl9ERVRFQ1RFRDsKKyAgICBtYmVkdGxzX2VjcF9ncm91cCBncnA7CisgICAgbWJlZHRsc19lY3BfcG9pbnQgUiwgUDsKKyAgICBtYmVkdGxzX21waSBtOworCisjaWYgZGVmaW5lZChNQkVEVExTX0VDUF9TSE9SVF9XRUlFUlNUUkFTU19FTkFCTEVEKQorICAgIC8qIEV4cG9uZW50cyBlc3BlY2lhbGx5IGFkYXB0ZWQgZm9yIHNlY3AxOTJrMSwgd2hpY2ggaGFzIHRoZSBsb3dlc3QKKyAgICAgKiBvcmRlciBuIG9mIGFsbCBzdXBwb3J0ZWQgY3VydmVzIChzZWNwMTkycjEgaXMgaW4gYSBzbGlnaHRseSBsYXJnZXIKKyAgICAgKiBmaWVsZCBidXQgdGhlIG9yZGVyIG9mIGl0cyBiYXNlIHBvaW50IGlzIHNsaWdodGx5IHNtYWxsZXIpLiAqLworICAgIGNvbnN0IGNoYXIgKnN3X2V4cG9uZW50c1tdID0KKyAgICB7CisgICAgICAgICIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDEiLCAvKiBvbmUgKi8KKyAgICAgICAgIkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRTI2RjJGQzE3MEY2OTQ2NkE3NERFRkQ4QyIsIC8qIG4gLSAxICovCisgICAgICAgICI1RUE2RjM4OUEzOEI4QkM4MUU3Njc3NTNCMTVBQTU1NjlFMTc4MkUzMEFCRTdEMjUiLCAvKiByYW5kb20gKi8KKyAgICAgICAgIjQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMCIsIC8qIG9uZSBhbmQgemVyb3MgKi8KKyAgICAgICAgIjdGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRiIsIC8qIGFsbCBvbmVzICovCisgICAgICAgICI1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTUiLCAvKiAxMDEwMTAuLi4gKi8KKyAgICB9OworI2VuZGlmIC8qIE1CRURUTFNfRUNQX1NIT1JUX1dFSUVSU1RSQVNTX0VOQUJMRUQgKi8KKyNpZiBkZWZpbmVkKE1CRURUTFNfRUNQX01PTlRHT01FUllfRU5BQkxFRCkKKyAgICBjb25zdCBjaGFyICptX2V4cG9uZW50c1tdID0KKyAgICB7CisgICAgICAgIC8qIFZhbGlkIHByaXZhdGUgdmFsdWVzIGZvciBDdXJ2ZTI1NTE5LiBJbiBhIGJ1aWxkIHdpdGggQ3VydmU0NDgKKyAgICAgICAgICogYnV0IG5vdCBDdXJ2ZTI1NTE5LCB0aGV5IHdpbGwgYmUgYWRqdXN0ZWQgaW4KKyAgICAgICAgICogc2VsZl90ZXN0X2FkanVzdF9leHBvbmVudCgpLiAqLworICAgICAgICAiNDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMCIsCisgICAgICAgICI1QzNDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzMwIiwKKyAgICAgICAgIjU3MTVFQ0NFMjQ1ODNGN0E3MDIzQzI0MTY0MzkwNTg2ODQyRTgxNkQ3MjgwQTQ5RUY2REY0RUFFNkIyODBCRjgiLAorICAgICAgICAiNDFBMkIwMTc1MTZGNkQyNTRFMUYwMDJCQ0NCQURENTRCRTMwRjhDRUM3MzdBMEU5MTJCNDk2M0I2QkE3NDQ2MCIsCisgICAgICAgICI1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTUwIiwKKyAgICAgICAgIjdGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRjgiLAorICAgIH07CisjZW5kaWYgLyogTUJFRFRMU19FQ1BfTU9OVEdPTUVSWV9FTkFCTEVEICovCisKKyAgICBtYmVkdGxzX2VjcF9ncm91cF9pbml0KCZncnApOworICAgIG1iZWR0bHNfZWNwX3BvaW50X2luaXQoJlIpOworICAgIG1iZWR0bHNfZWNwX3BvaW50X2luaXQoJlApOworICAgIG1iZWR0bHNfbXBpX2luaXQoJm0pOworCisjaWYgZGVmaW5lZChNQkVEVExTX0VDUF9TSE9SVF9XRUlFUlNUUkFTU19FTkFCTEVEKQorICAgIC8qIFVzZSBzZWNwMTkycjEgaWYgYXZhaWxhYmxlLCBvciBhbnkgYXZhaWxhYmxlIGN1cnZlICovCisjaWYgZGVmaW5lZChNQkVEVExTX0VDUF9EUF9TRUNQMTkyUjFfRU5BQkxFRCkKKyAgICBNQkVEVExTX01QSV9DSEsobWJlZHRsc19lY3BfZ3JvdXBfbG9hZCgmZ3JwLCBNQkVEVExTX0VDUF9EUF9TRUNQMTkyUjEpKTsKKyNlbHNlCisgICAgTUJFRFRMU19NUElfQ0hLKG1iZWR0bHNfZWNwX2dyb3VwX2xvYWQoJmdycCwgbWJlZHRsc19lY3BfY3VydmVfbGlzdCgpLT5ncnBfaWQpKTsKKyNlbmRpZgorCisgICAgaWYgKHZlcmJvc2UgIT0gMCkgeworICAgICAgICBtYmVkdGxzX3ByaW50ZigiICBFQ1AgU1cgdGVzdCAjMSAoY29uc3RhbnQgb3BfY291bnQsIGJhc2UgcG9pbnQgRyk6ICIpOworICAgIH0KKyAgICAvKiBEbyBhIGR1bW15IG11bHRpcGxpY2F0aW9uIGZpcnN0IHRvIHRyaWdnZXIgcHJlY29tcHV0YXRpb24gKi8KKyAgICBNQkVEVExTX01QSV9DSEsobWJlZHRsc19tcGlfbHNldCgmbSwgMikpOworICAgIE1CRURUTFNfTVBJX0NISyhtYmVkdGxzX2VjcF9tdWwoJmdycCwgJlAsICZtLCAmZ3JwLkcsIHNlbGZfdGVzdF9ybmcsIE5VTEwpKTsKKyAgICByZXQgPSBzZWxmX3Rlc3RfcG9pbnQodmVyYm9zZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgJmdycCwgJlIsICZtLCAmZ3JwLkcsCisgICAgICAgICAgICAgICAgICAgICAgICAgIHN3X2V4cG9uZW50cywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZW9mKHN3X2V4cG9uZW50cykgLyBzaXplb2Yoc3dfZXhwb25lbnRzWzBdKSk7CisgICAgaWYgKHJldCAhPSAwKSB7CisgICAgICAgIGdvdG8gY2xlYW51cDsKKyAgICB9CisKKyAgICBpZiAodmVyYm9zZSAhPSAwKSB7CisgICAgICAgIG1iZWR0bHNfcHJpbnRmKCIgIEVDUCBTVyB0ZXN0ICMyIChjb25zdGFudCBvcF9jb3VudCwgb3RoZXIgcG9pbnQpOiAiKTsKKyAgICB9CisgICAgLyogV2UgY29tcHV0ZWQgUCA9IDJHIGxhc3QgdGltZSwgdXNlIGl0ICovCisgICAgcmV0ID0gc2VsZl90ZXN0X3BvaW50KHZlcmJvc2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICZncnAsICZSLCAmbSwgJlAsCisgICAgICAgICAgICAgICAgICAgICAgICAgIHN3X2V4cG9uZW50cywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZW9mKHN3X2V4cG9uZW50cykgLyBzaXplb2Yoc3dfZXhwb25lbnRzWzBdKSk7CisgICAgaWYgKHJldCAhPSAwKSB7CisgICAgICAgIGdvdG8gY2xlYW51cDsKKyAgICB9CisKKyAgICBtYmVkdGxzX2VjcF9ncm91cF9mcmVlKCZncnApOworICAgIG1iZWR0bHNfZWNwX3BvaW50X2ZyZWUoJlIpOworI2VuZGlmIC8qIE1CRURUTFNfRUNQX1NIT1JUX1dFSUVSU1RSQVNTX0VOQUJMRUQgKi8KKworI2lmIGRlZmluZWQoTUJFRFRMU19FQ1BfTU9OVEdPTUVSWV9FTkFCTEVEKQorICAgIGlmICh2ZXJib3NlICE9IDApIHsKKyAgICAgICAgbWJlZHRsc19wcmludGYoIiAgRUNQIE1vbnRnb21lcnkgdGVzdCAoY29uc3RhbnQgb3BfY291bnQpOiAiKTsKKyAgICB9CisjaWYgZGVmaW5lZChNQkVEVExTX0VDUF9EUF9DVVJWRTI1NTE5X0VOQUJMRUQpCisgICAgTUJFRFRMU19NUElfQ0hLKG1iZWR0bHNfZWNwX2dyb3VwX2xvYWQoJmdycCwgTUJFRFRMU19FQ1BfRFBfQ1VSVkUyNTUxOSkpOworI2VsaWYgZGVmaW5lZChNQkVEVExTX0VDUF9EUF9DVVJWRTQ0OF9FTkFCTEVEKQorICAgIE1CRURUTFNfTVBJX0NISyhtYmVkdGxzX2VjcF9ncm91cF9sb2FkKCZncnAsIE1CRURUTFNfRUNQX0RQX0NVUlZFNDQ4KSk7CisjZWxzZQorI2Vycm9yICJNQkVEVExTX0VDUF9NT05UR09NRVJZX0VOQUJMRUQgaXMgZGVmaW5lZCwgYnV0IG5vIGN1cnZlIGlzIHN1cHBvcnRlZCBmb3Igc2VsZi10ZXN0IgorI2VuZGlmCisgICAgcmV0ID0gc2VsZl90ZXN0X3BvaW50KHZlcmJvc2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICZncnAsICZSLCAmbSwgJmdycC5HLAorICAgICAgICAgICAgICAgICAgICAgICAgICBtX2V4cG9uZW50cywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZW9mKG1fZXhwb25lbnRzKSAvIHNpemVvZihtX2V4cG9uZW50c1swXSkpOworICAgIGlmIChyZXQgIT0gMCkgeworICAgICAgICBnb3RvIGNsZWFudXA7CisgICAgfQorI2VuZGlmIC8qIE1CRURUTFNfRUNQX01PTlRHT01FUllfRU5BQkxFRCAqLworCitjbGVhbnVwOgorCisgICAgaWYgKHJldCA8IDAgJiYgdmVyYm9zZSAhPSAwKSB7CisgICAgICAgIG1iZWR0bHNfcHJpbnRmKCJVbmV4cGVjdGVkIGVycm9yLCByZXR1cm4gY29kZSA9ICUwOFhcbiIsICh1bnNpZ25lZCBpbnQpIHJldCk7CisgICAgfQorCisgICAgbWJlZHRsc19lY3BfZ3JvdXBfZnJlZSgmZ3JwKTsKKyAgICBtYmVkdGxzX2VjcF9wb2ludF9mcmVlKCZSKTsKKyAgICBtYmVkdGxzX2VjcF9wb2ludF9mcmVlKCZQKTsKKyAgICBtYmVkdGxzX21waV9mcmVlKCZtKTsKKworICAgIGlmICh2ZXJib3NlICE9IDApIHsKKyAgICAgICAgbWJlZHRsc19wcmludGYoIlxuIik7CisgICAgfQorCisgICAgcmV0dXJuIHJldDsKKyNlbHNlIC8qIE1CRURUTFNfRUNQX0MgKi8KKyAgICAodm9pZCkgdmVyYm9zZTsKKyAgICByZXR1cm4gMDsKKyNlbmRpZiAvKiBNQkVEVExTX0VDUF9DICovCit9CisKKyNlbmRpZiAvKiBNQkVEVExTX1NFTEZfVEVTVCAqLworCisjZW5kaWYgLyogTUJFRFRMU19FQ1BfTElHSFQgKi8KZGlmZiAtLWdpdCBhL3RmLXBzYS1jcnlwdG8vZHJpdmVycy9idWlsdGluL3NyYy9lY3BfY3VydmVzLmMgYi90Zi1wc2EtY3J5cHRvL2RyaXZlcnMvYnVpbHRpbi9zcmMvZWNwX2N1cnZlcy5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjk3NjM2YTcKLS0tIC9kZXYvbnVsbAorKysgYi90Zi1wc2EtY3J5cHRvL2RyaXZlcnMvYnVpbHRpbi9zcmMvZWNwX2N1cnZlcy5jCkBAIC0wLDAgKzEsNTQ1NiBAQAorLyoKKyAqICBFbGxpcHRpYyBjdXJ2ZXMgb3ZlciBHRihwKTogY3VydmUtc3BlY2lmaWMgZGF0YSBhbmQgZnVuY3Rpb25zCisgKgorICogIENvcHlyaWdodCBUaGUgTWJlZCBUTFMgQ29udHJpYnV0b3JzCisgKiAgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjAgT1IgR1BMLTIuMC1vci1sYXRlcgorICovCisKKyNpbmNsdWRlICJjb21tb24uaCIKKworI2lmICFkZWZpbmVkKE1CRURUTFNfRUNQX1dJVEhfTVBJX1VJTlQpCisKKyNpZiBkZWZpbmVkKE1CRURUTFNfRUNQX0xJR0hUKQorCisjaW5jbHVkZSAibWJlZHRscy9lY3AuaCIKKyNpbmNsdWRlICJtYmVkdGxzL3BsYXRmb3JtX3V0aWwuaCIKKyNpbmNsdWRlICJtYmVkdGxzL2Vycm9yLmgiCisKKyNpbmNsdWRlICJibl9tdWwuaCIKKyNpbmNsdWRlICJiaWdudW1fY29yZS5oIgorI2luY2x1ZGUgImVjcF9pbnZhc2l2ZS5oIgorCisjaW5jbHVkZSA8c3RyaW5nLmg+CisKKyNkZWZpbmUgRUNQX01QSV9JTklUKF9wLCBfbikgeyAucCA9IChtYmVkdGxzX21waV91aW50ICopIChfcCksIC5zID0gMSwgLm4gPSAoX24pIH0KKworI2RlZmluZSBFQ1BfTVBJX0lOSVRfQVJSQVkoeCkgICBcCisgICAgRUNQX01QSV9JTklUKHgsIHNpemVvZih4KSAvIHNpemVvZihtYmVkdGxzX21waV91aW50KSkKKworI2RlZmluZSBFQ1BfUE9JTlRfSU5JVF9YWV9aMCh4LCB5KSB7IFwKKyAgICAgICAgRUNQX01QSV9JTklUX0FSUkFZKHgpLCBFQ1BfTVBJX0lOSVRfQVJSQVkoeSksIEVDUF9NUElfSU5JVChOVUxMLCAwKSB9CisjZGVmaW5lIEVDUF9QT0lOVF9JTklUX1hZX1oxKHgsIHkpIHsgXAorICAgICAgICBFQ1BfTVBJX0lOSVRfQVJSQVkoeCksIEVDUF9NUElfSU5JVF9BUlJBWSh5KSwgRUNQX01QSV9JTklUKG1waV9vbmUsIDEpIH0KKworI2lmIGRlZmluZWQoTUJFRFRMU19FQ1BfRFBfU0VDUDE5MlIxX0VOQUJMRUQpIHx8ICAgXAorICAgIGRlZmluZWQoTUJFRFRMU19FQ1BfRFBfU0VDUDIyNFIxX0VOQUJMRUQpIHx8ICAgXAorICAgIGRlZmluZWQoTUJFRFRMU19FQ1BfRFBfU0VDUDI1NlIxX0VOQUJMRUQpIHx8ICAgXAorICAgIGRlZmluZWQoTUJFRFRMU19FQ1BfRFBfU0VDUDM4NFIxX0VOQUJMRUQpIHx8ICAgXAorICAgIGRlZmluZWQoTUJFRFRMU19FQ1BfRFBfU0VDUDUyMVIxX0VOQUJMRUQpIHx8ICAgXAorICAgIGRlZmluZWQoTUJFRFRMU19FQ1BfRFBfQlAyNTZSMV9FTkFCTEVEKSAgIHx8ICAgXAorICAgIGRlZmluZWQoTUJFRFRMU19FQ1BfRFBfQlAzODRSMV9FTkFCTEVEKSAgIHx8ICAgXAorICAgIGRlZmluZWQoTUJFRFRMU19FQ1BfRFBfQlA1MTJSMV9FTkFCTEVEKSAgIHx8ICAgXAorICAgIGRlZmluZWQoTUJFRFRMU19FQ1BfRFBfU0VDUDE5MksxX0VOQUJMRUQpIHx8ICAgXAorICAgIGRlZmluZWQoTUJFRFRMU19FQ1BfRFBfU0VDUDIyNEsxX0VOQUJMRUQpIHx8ICAgXAorICAgIGRlZmluZWQoTUJFRFRMU19FQ1BfRFBfU0VDUDI1NksxX0VOQUJMRUQpCisvKiBGb3IgdGhlc2UgY3VydmVzLCB3ZSBidWlsZCB0aGUgZ3JvdXAgcGFyYW1ldGVycyBkeW5hbWljYWxseS4gKi8KKyNkZWZpbmUgRUNQX0xPQURfR1JPVVAKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IG1waV9vbmVbXSA9IHsgMSB9OworI2VuZGlmCisKKy8qCisgKiBOb3RlOiB0aGUgY29uc3RhbnRzIGFyZSBpbiBsaXR0bGUtZW5kaWFuIG9yZGVyCisgKiB0byBiZSBkaXJlY3RseSB1c2FibGUgaW4gTVBJcworICovCisKKy8qCisgKiBEb21haW4gcGFyYW1ldGVycyBmb3Igc2VjcDE5MnIxCisgKi8KKyNpZiBkZWZpbmVkKE1CRURUTFNfRUNQX0RQX1NFQ1AxOTJSMV9FTkFCTEVEKQorc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDE5MnIxX3BbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RkYsIDB4RkYsIDB4RkYsIDB4RkYsIDB4RkYsIDB4RkYsIDB4RkYsIDB4RkYpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhGRSwgMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEZGLCAweEZGLCAweEZGLCAweEZGLCAweEZGLCAweEZGLCAweEZGLCAweEZGKSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMTkycjFfYltdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhCMSwgMHhCOSwgMHg0NiwgMHhDMSwgMHhFQywgMHhERSwgMHhCOCwgMHhGRSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDQ5LCAweDMwLCAweDI0LCAweDcyLCAweEFCLCAweEU5LCAweEE3LCAweDBGKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RTcsIDB4ODAsIDB4OUMsIDB4RTUsIDB4MTksIDB4MDUsIDB4MjEsIDB4NjQpLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AxOTJyMV9neFtdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgxMiwgMHgxMCwgMHhGRiwgMHg4MiwgMHhGRCwgMHgwQSwgMHhGRiwgMHhGNCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDAwLCAweDg4LCAweEExLCAweDQzLCAweEVCLCAweDIwLCAweEJGLCAweDdDKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RjYsIDB4OTAsIDB4MzAsIDB4QjAsIDB4MEUsIDB4QTgsIDB4OEQsIDB4MTgpLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AxOTJyMV9neVtdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgxMSwgMHg0OCwgMHg3OSwgMHgxRSwgMHhBMSwgMHg3NywgMHhGOSwgMHg3MyksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEQ1LCAweENELCAweDI0LCAweDZCLCAweEVELCAweDExLCAweDEwLCAweDYzKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NzgsIDB4REEsIDB4QzgsIDB4RkYsIDB4OTUsIDB4MkIsIDB4MTksIDB4MDcpLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AxOTJyMV9uW10gPSB7CisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDMxLCAweDI4LCAweEQyLCAweEI0LCAweEIxLCAweEM5LCAweDZCLCAweDE0KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MzYsIDB4RjgsIDB4REUsIDB4OTksIDB4RkYsIDB4RkYsIDB4RkYsIDB4RkYpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiksCit9OworI2lmIE1CRURUTFNfRUNQX0ZJWEVEX1BPSU5UX09QVElNID09IDEKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AxOTJyMV9UXzBfWFtdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgxMiwgMHgxMCwgMHhGRiwgMHg4MiwgMHhGRCwgMHgwQSwgMHhGRiwgMHhGNCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDAwLCAweDg4LCAweEExLCAweDQzLCAweEVCLCAweDIwLCAweEJGLCAweDdDKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RjYsIDB4OTAsIDB4MzAsIDB4QjAsIDB4MEUsIDB4QTgsIDB4OEQsIDB4MTgpLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AxOTJyMV9UXzBfWVtdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgxMSwgMHg0OCwgMHg3OSwgMHgxRSwgMHhBMSwgMHg3NywgMHhGOSwgMHg3MyksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEQ1LCAweENELCAweDI0LCAweDZCLCAweEVELCAweDExLCAweDEwLCAweDYzKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NzgsIDB4REEsIDB4QzgsIDB4RkYsIDB4OTUsIDB4MkIsIDB4MTksIDB4MDcpLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AxOTJyMV9UXzFfWFtdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg5NywgMHg5RSwgMHhFMywgMHg2MCwgMHg1OSwgMHhEMSwgMHhDNCwgMHhDMiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDkxLCAweEJELCAweDIyLCAweEQ3LCAweDJELCAweDA3LCAweEJELCAweEI2KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NzQsIDB4MkEsIDB4Q0YsIDB4MzMsIDB4RjAsIDB4QkUsIDB4RDEsIDB4RUQpLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AxOTJyMV9UXzFfWVtdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg4OCwgMHg3MSwgMHg0QiwgMHhBOCwgMHhFRCwgMHg3RSwgMHhDOSwgMHgxQSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDhFLCAweDJBLCAweEY2LCAweERGLCAweDBFLCAweEU4LCAweDRDLCAweDBGKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QzUsIDB4MzUsIDB4RjcsIDB4OEEsIDB4QzMsIDB4RUMsIDB4REUsIDB4MUUpLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AxOTJyMV9UXzJfWFtdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgwMCwgMHg2NywgMHhDMiwgMHgxRCwgMHgzMiwgMHg4RiwgMHgxMCwgMHhGQiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEJCLCAweDJELCAweDE3LCAweEYzLCAweEU0LCAweEZFLCAweEQ4LCAweDEzKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NTUsIDB4NDUsIDB4MTAsIDB4NzAsIDB4MkMsIDB4M0UsIDB4NTIsIDB4M0UpLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AxOTJyMV9UXzJfWVtdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg2MSwgMHhGMSwgMHgwNCwgMHg1RCwgMHhFRSwgMHhENCwgMHg1NiwgMHhFNiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDc4LCAweEI3LCAweDM4LCAweDI3LCAweDYxLCAweEFBLCAweDgxLCAweDg3KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NzEsIDB4MzcsIDB4RDcsIDB4MEUsIDB4MjksIDB4MEUsIDB4MTEsIDB4MTQpLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AxOTJyMV9UXzNfWFtdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgxRSwgMHgzNSwgMHg1MiwgMHhDNiwgMHgzMSwgMHhCNywgMHgyNywgMHhGNSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDNELCAweEQ0LCAweDE1LCAweDk4LCAweDBGLCAweEU3LCAweEYzLCAweDZBKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RDMsIDB4MzEsIDB4NzAsIDB4MzUsIDB4MDksIDB4QTAsIDB4MkIsIDB4QzIpLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AxOTJyMV9UXzNfWVtdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgyMSwgMHg3NSwgMHhBNywgMHg0QywgMHg4OCwgMHhDRiwgMHg1QiwgMHhFNCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDE3LCAweDE3LCAweDQ4LCAweDhELCAweEYyLCAweEYwLCAweDg2LCAweEVEKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NDksIDB4Q0YsIDB4RkUsIDB4NkIsIDB4QjAsIDB4QTUsIDB4MDYsIDB4QUIpLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AxOTJyMV9UXzRfWFtdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgxOCwgMHg2QSwgMHhEQywgMHg5QSwgMHg2RCwgMHg3QiwgMHg0NywgMHgyRSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDEyLCAweEZDLCAweDUxLCAweDEyLCAweDYyLCAweDY2LCAweDBCLCAweDU5KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4Q0QsIDB4NDAsIDB4OTMsIDB4QTAsIDB4QjUsIDB4NUEsIDB4NTgsIDB4RDcpLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AxOTJyMV9UXzRfWVtdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhFRiwgMHhDQiwgMHhBRiwgMHhEQywgMHgwQiwgMHhBMSwgMHgyNiwgMHhGQiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweERBLCAweDM2LCAweDlELCAweEEzLCAweEQ3LCAweDNCLCAweEFELCAweDM5KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QjQsIDB4M0IsIDB4MDUsIDB4OUEsIDB4QTgsIDB4QUEsIDB4NjksIDB4QjIpLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AxOTJyMV9UXzVfWFtdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg2RCwgMHhEOSwgMHhEMSwgMHg0RCwgMHg0QSwgMHg2RSwgMHg5NiwgMHgxRSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDE3LCAweDY2LCAweDMyLCAweDM5LCAweEM2LCAweDU3LCAweDdELCAweEU2KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4OTIsIDB4QTAsIDB4MzYsIDB4QzIsIDB4NDUsIDB4RjksIDB4MDAsIDB4NjIpLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AxOTJyMV9UXzVfWVtdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhCNCwgMHhFRiwgMHg1OSwgMHg0NiwgMHhEQywgMHg2MCwgMHhEOSwgMHg4RiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDI0LCAweEIwLCAweEU5LCAweDQxLCAweEE0LCAweDg3LCAweDc2LCAweDg5KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MTMsIDB4RDQsIDB4MEUsIDB4QjIsIDB4RkEsIDB4MTYsIDB4NTYsIDB4REMpLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AxOTJyMV9UXzZfWFtdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgwQSwgMHg2MiwgMHhEMiwgMHhCMSwgMHgzNCwgMHhCMiwgMHhGMSwgMHgwNiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEIyLCAweEVELCAweDU1LCAweEM1LCAweDQ3LCAweEI1LCAweDA3LCAweDE1KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MTcsIDB4RjYsIDB4MkYsIDB4OTQsIDB4QzMsIDB4REQsIDB4NTQsIDB4MkYpLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AxOTJyMV9UXzZfWVtdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhGRCwgMHhBNiwgMHhENCwgMHg4QywgMHhBOSwgMHhDRSwgMHg0RCwgMHgyRSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEI5LCAweDRCLCAweDQ2LCAweENDLCAweEIyLCAweDU1LCAweEM4LCAweEIyKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4M0EsIDB4QUUsIDB4MzEsIDB4RUQsIDB4ODksIDB4NjUsIDB4NTksIDB4NTUpLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AxOTJyMV9UXzdfWFtdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhDQywgMHgwQSwgMHhEMSwgMHgxQSwgMHhDNSwgMHhGNiwgMHhFQSwgMHg0MyksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDBDLCAweEZDLCAweDBDLCAweDFBLCAweEZCLCAweEEwLCAweEM4LCAweDcwKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RUEsIDB4RkQsIDB4NTMsIDB4NkYsIDB4NkQsIDB4QkYsIDB4QkEsIDB4QUYpLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AxOTJyMV9UXzdfWVtdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgyRCwgMHhCMCwgMHg3RCwgMHg4MywgMHg5NiwgMHhFMywgMHhDQiwgMHg5RCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDZGLCAweDZFLCAweDU1LCAweDJDLCAweDIwLCAweDUzLCAweDJGLCAweDQ2KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QTYsIDB4NjYsIDB4MDAsIDB4MTcsIDB4MDgsIDB4RkUsIDB4QUMsIDB4MzEpLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AxOTJyMV9UXzhfWFtdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgwOSwgMHgxMiwgMHg5NywgMHgzQSwgMHhDNywgMHg1NywgMHg0NSwgMHhDRCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDM4LCAweDI1LCAweDk5LCAweDAwLCAweEY2LCAweDk3LCAweEI0LCAweDY0KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4OUIsIDB4NzQsIDB4RTYsIDB4RTYsIDB4QTMsIDB4REYsIDB4OUMsIDB4Q0MpLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AxOTJyMV9UXzhfWVtdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgzMiwgMHhGNCwgMHg3NiwgMHhENSwgMHg1RiwgMHgyQSwgMHhGRCwgMHg4NSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDYyLCAweDgwLCAweDdFLCAweDNFLCAweEU1LCAweEU4LCAweEQ2LCAweDYzKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RTIsIDB4QUQsIDB4MUUsIDB4NzAsIDB4NzksIDB4M0UsIDB4M0QsIDB4ODMpLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AxOTJyMV9UXzlfWFtdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg4RSwgMHgxNSwgMHhCQiwgMHhCMywgMHg0MiwgMHg2QSwgMHhBMSwgMHg3QyksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDlCLCAweDU4LCAweENCLCAweDQzLCAweDI1LCAweDAwLCAweDE0LCAweDY4KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MDYsIDB4NEUsIDB4OTMsIDB4MTEsIDB4RTAsIDB4MzIsIDB4NTQsIDB4OTgpLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AxOTJyMV9UXzlfWVtdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhBNywgMHg1MiwgMHhBMiwgMHhCNCwgMHg1NywgMHgzMiwgMHhCOSwgMHgxMSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDdELCAweDQzLCAweEExLCAweEIxLCAweEZCLCAweDAxLCAweEUxLCAweEU3KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QTYsIDB4RkIsIDB4NUEsIDB4MTEsIDB4QjgsIDB4QzIsIDB4MDMsIDB4RTUpLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AxOTJyMV9UXzEwX1hbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MUMsIDB4MkIsIDB4NzEsIDB4MjYsIDB4NEUsIDB4N0MsIDB4QzUsIDB4MzIpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgxRiwgMHhGNSwgMHhEMywgMHhBOCwgMHhFNCwgMHg5NSwgMHg0OCwgMHg2NSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDU1LCAweEFFLCAweEQ5LCAweDVELCAweDlGLCAweDZBLCAweDIyLCAweEFEKSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMTkycjFfVF8xMF9ZW10gPSB7CisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEQ5LCAweENDLCAweEEzLCAweDRELCAweEEwLCAweDFDLCAweDM0LCAweEVGKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QTMsIDB4M0MsIDB4NjIsIDB4RjgsIDB4NUUsIDB4QTYsIDB4NTgsIDB4N0QpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg2RCwgMHg2RSwgMHg2NiwgMHg4QSwgMHgzRCwgMHgxNywgMHhGRiwgMHgwRiksCit9Oworc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDE5MnIxX1RfMTFfWFtdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhGNywgMHhDRCwgMHhBOCwgMHhERCwgMHhEMSwgMHgyMCwgMHg1QywgMHhFQSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEJGLCAweEZFLCAweDE3LCAweEUyLCAweENGLCAweEVBLCAweDYzLCAweERFKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NzQsIDB4NTEsIDB4QzksIDB4MTYsIDB4REUsIDB4QjQsIDB4QjIsIDB4REQpLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AxOTJyMV9UXzExX1lbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NTksIDB4QkUsIDB4MTIsIDB4RDcsIDB4QTMsIDB4MEEsIDB4NTAsIDB4MzMpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg1MywgMHg4NywgMHhDNSwgMHg4QSwgMHg3NiwgMHg1NywgMHgwNywgMHg2MCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEU1LCAweDFGLCAweEM2LCAweDFCLCAweDY2LCAweEM0LCAweDNELCAweDhBKSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMTkycjFfVF8xMl9YW10gPSB7CisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDI4LCAweEE0LCAweDg1LCAweDEzLCAweDhGLCAweEE3LCAweDM1LCAweDE5KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NTgsIDB4MEQsIDB4RkQsIDB4RkYsIDB4MUIsIDB4RDEsIDB4RDYsIDB4RUYpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhCQSwgMHg3QSwgMHhEMCwgMHhDMywgMHhCNCwgMHhFRiwgMHgzOSwgMHg2NiksCit9Oworc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDE5MnIxX1RfMTJfWVtdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgzQSwgMHhGRSwgMHhBNSwgMHg5QywgMHgzNCwgMHgzMCwgMHg0OSwgMHg0MCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweERFLCAweEM1LCAweDM5LCAweDI2LCAweDA2LCAweEUzLCAweDAxLCAweDE3KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RTIsIDB4MkIsIDB4NjYsIDB4RkMsIDB4OTUsIDB4NUYsIDB4MzUsIDB4RjcpLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AxOTJyMV9UXzEzX1hbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NTgsIDB4Q0YsIDB4NTQsIDB4NjMsIDB4OTksIDB4NTcsIDB4MDUsIDB4NDUpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg3MSwgMHg2RiwgMHgwMCwgMHg1RiwgMHg2NSwgMHgwOCwgMHg0NywgMHg5OCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDYyLCAweDJBLCAweDkwLCAweDZELCAweDY3LCAweEM2LCAweEJDLCAweDQ1KSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMTkycjFfVF8xM19ZW10gPSB7CisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDhBLCAweDRELCAweDg4LCAweDBBLCAweDM1LCAweDlFLCAweDMzLCAweDlDKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4N0MsIDB4MTcsIDB4MEMsIDB4RjgsIDB4RTEsIDB4N0EsIDB4NDksIDB4MDIpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhBNCwgMHg0NCwgMHgwNiwgMHg4RiwgMHgwQiwgMHg3MCwgMHgyRiwgMHg3MSksCit9Oworc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDE5MnIxX1RfMTRfWFtdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg4NSwgMHg0QiwgMHhDQiwgMHhGOSwgMHg4RSwgMHg2QSwgMHhEQSwgMHgxQiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDI5LCAweDQzLCAweEExLCAweDNGLCAweENFLCAweDE3LCAweEQyLCAweDMyKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NUQsIDB4MEQsIDB4RDIsIDB4NkMsIDB4ODIsIDB4MzcsIDB4RTUsIDB4RkMpLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AxOTJyMV9UXzE0X1lbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NEEsIDB4M0MsIDB4RjQsIDB4OTIsIDB4QjQsIDB4OEEsIDB4OTUsIDB4ODUpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg4NSwgMHg5NiwgMHhGMSwgMHgwQSwgMHgzNCwgMHgyRiwgMHg3NCwgMHg3RSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDdCLCAweEExLCAweEFBLCAweEJBLCAweDg2LCAweDc3LCAweDRGLCAweEEyKSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMTkycjFfVF8xNV9YW10gPSB7CisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEU1LCAweDdGLCAweEVGLCAweDYwLCAweDUwLCAweDgwLCAweEQ3LCAweEQ0KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MzEsIDB4QUMsIDB4QzksIDB4RkUsIDB4RUMsIDB4MEEsIDB4MUEsIDB4OUYpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg2QiwgMHgyRiwgMHhCRSwgMHg5MSwgMHhENywgMHhCNywgMHgzOCwgMHg0OCksCit9Oworc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDE5MnIxX1RfMTVfWVtdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhCMSwgMHhBRSwgMHg4NSwgMHg5OCwgMHhGRSwgMHgwNSwgMHg3RiwgMHg5RiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDkxLCAweEJFLCAweEZELCAweDExLCAweDMxLCAweDNELCAweDE0LCAweDEzKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NTksIDB4NzUsIDB4RTgsIDB4MzAsIDB4MDEsIDB4Q0IsIDB4OUIsIDB4MUMpLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX2VjcF9wb2ludCBzZWNwMTkycjFfVFsxNl0gPSB7CisgICAgRUNQX1BPSU5UX0lOSVRfWFlfWjEoc2VjcDE5MnIxX1RfMF9YLCBzZWNwMTkycjFfVF8wX1kpLAorICAgIEVDUF9QT0lOVF9JTklUX1hZX1owKHNlY3AxOTJyMV9UXzFfWCwgc2VjcDE5MnIxX1RfMV9ZKSwKKyAgICBFQ1BfUE9JTlRfSU5JVF9YWV9aMChzZWNwMTkycjFfVF8yX1gsIHNlY3AxOTJyMV9UXzJfWSksCisgICAgRUNQX1BPSU5UX0lOSVRfWFlfWjAoc2VjcDE5MnIxX1RfM19YLCBzZWNwMTkycjFfVF8zX1kpLAorICAgIEVDUF9QT0lOVF9JTklUX1hZX1owKHNlY3AxOTJyMV9UXzRfWCwgc2VjcDE5MnIxX1RfNF9ZKSwKKyAgICBFQ1BfUE9JTlRfSU5JVF9YWV9aMChzZWNwMTkycjFfVF81X1gsIHNlY3AxOTJyMV9UXzVfWSksCisgICAgRUNQX1BPSU5UX0lOSVRfWFlfWjAoc2VjcDE5MnIxX1RfNl9YLCBzZWNwMTkycjFfVF82X1kpLAorICAgIEVDUF9QT0lOVF9JTklUX1hZX1owKHNlY3AxOTJyMV9UXzdfWCwgc2VjcDE5MnIxX1RfN19ZKSwKKyAgICBFQ1BfUE9JTlRfSU5JVF9YWV9aMChzZWNwMTkycjFfVF84X1gsIHNlY3AxOTJyMV9UXzhfWSksCisgICAgRUNQX1BPSU5UX0lOSVRfWFlfWjAoc2VjcDE5MnIxX1RfOV9YLCBzZWNwMTkycjFfVF85X1kpLAorICAgIEVDUF9QT0lOVF9JTklUX1hZX1owKHNlY3AxOTJyMV9UXzEwX1gsIHNlY3AxOTJyMV9UXzEwX1kpLAorICAgIEVDUF9QT0lOVF9JTklUX1hZX1owKHNlY3AxOTJyMV9UXzExX1gsIHNlY3AxOTJyMV9UXzExX1kpLAorICAgIEVDUF9QT0lOVF9JTklUX1hZX1owKHNlY3AxOTJyMV9UXzEyX1gsIHNlY3AxOTJyMV9UXzEyX1kpLAorICAgIEVDUF9QT0lOVF9JTklUX1hZX1owKHNlY3AxOTJyMV9UXzEzX1gsIHNlY3AxOTJyMV9UXzEzX1kpLAorICAgIEVDUF9QT0lOVF9JTklUX1hZX1owKHNlY3AxOTJyMV9UXzE0X1gsIHNlY3AxOTJyMV9UXzE0X1kpLAorICAgIEVDUF9QT0lOVF9JTklUX1hZX1owKHNlY3AxOTJyMV9UXzE1X1gsIHNlY3AxOTJyMV9UXzE1X1kpLAorfTsKKyNlbHNlCisjZGVmaW5lIHNlY3AxOTJyMV9UIE5VTEwKKyNlbmRpZgorI2VuZGlmIC8qIE1CRURUTFNfRUNQX0RQX1NFQ1AxOTJSMV9FTkFCTEVEICovCisKKy8qCisgKiBEb21haW4gcGFyYW1ldGVycyBmb3Igc2VjcDIyNHIxCisgKi8KKyNpZiBkZWZpbmVkKE1CRURUTFNfRUNQX0RQX1NFQ1AyMjRSMV9FTkFCTEVEKQorc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDIyNHIxX3BbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MDEsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDApLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEZGLCAweEZGLCAweEZGLCAweEZGLCAweEZGLCAweEZGLCAweEZGLCAweEZGKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RkYsIDB4RkYsIDB4RkYsIDB4RkYsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDApLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AyMjRyMV9iW10gPSB7CisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEI0LCAweEZGLCAweDU1LCAweDIzLCAweDQzLCAweDM5LCAweDBCLCAweDI3KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QkEsIDB4RDgsIDB4QkYsIDB4RDcsIDB4QjcsIDB4QjAsIDB4NDQsIDB4NTApLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg1NiwgMHgzMiwgMHg0MSwgMHhGNSwgMHhBQiwgMHhCMywgMHgwNCwgMHgwQyksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfNCgweDg1LCAweDBBLCAweDA1LCAweEI0KSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMjI0cjFfZ3hbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MjEsIDB4MUQsIDB4NUMsIDB4MTEsIDB4RDYsIDB4ODAsIDB4MzIsIDB4MzQpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgyMiwgMHgxMSwgMHhDMiwgMHg1NiwgMHhEMywgMHhDMSwgMHgwMywgMHg0QSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEI5LCAweDkwLCAweDEzLCAweDMyLCAweDdGLCAweEJGLCAweEI0LCAweDZCKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF80KDB4QkQsIDB4MEMsIDB4MEUsIDB4QjcpLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AyMjRyMV9neVtdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgzNCwgMHg3RSwgMHgwMCwgMHg4NSwgMHg5OSwgMHg4MSwgMHhENSwgMHg0NCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDY0LCAweDQ3LCAweDA3LCAweDVBLCAweEEwLCAweDc1LCAweDQzLCAweENEKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RTYsIDB4REYsIDB4MjIsIDB4NEMsIDB4RkIsIDB4MjMsIDB4RjcsIDB4QjUpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzQoMHg4OCwgMHg2MywgMHgzNywgMHhCRCksCit9Oworc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDIyNHIxX25bXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4M0QsIDB4MkEsIDB4NUMsIDB4NUMsIDB4NDUsIDB4MjksIDB4REQsIDB4MTMpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgzRSwgMHhGMCwgMHhCOCwgMHhFMCwgMHhBMiwgMHgxNiwgMHhGRiwgMHhGRiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEZGLCAweEZGLCAweEZGLCAweEZGLCAweEZGLCAweEZGLCAweEZGLCAweEZGKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF80KDB4RkYsIDB4RkYsIDB4RkYsIDB4RkYpLAorfTsKKyNpZiBNQkVEVExTX0VDUF9GSVhFRF9QT0lOVF9PUFRJTSA9PSAxCitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMjI0cjFfVF8wX1hbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MjEsIDB4MUQsIDB4NUMsIDB4MTEsIDB4RDYsIDB4ODAsIDB4MzIsIDB4MzQpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgyMiwgMHgxMSwgMHhDMiwgMHg1NiwgMHhEMywgMHhDMSwgMHgwMywgMHg0QSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEI5LCAweDkwLCAweDEzLCAweDMyLCAweDdGLCAweEJGLCAweEI0LCAweDZCKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QkQsIDB4MEMsIDB4MEUsIDB4QjcsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDApLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AyMjRyMV9UXzBfWVtdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgzNCwgMHg3RSwgMHgwMCwgMHg4NSwgMHg5OSwgMHg4MSwgMHhENSwgMHg0NCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDY0LCAweDQ3LCAweDA3LCAweDVBLCAweEEwLCAweDc1LCAweDQzLCAweENEKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RTYsIDB4REYsIDB4MjIsIDB4NEMsIDB4RkIsIDB4MjMsIDB4RjcsIDB4QjUpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg4OCwgMHg2MywgMHgzNywgMHhCRCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCksCit9Oworc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDIyNHIxX1RfMV9YW10gPSB7CisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEUwLCAweEY5LCAweEI4LCAweEQwLCAweDNELCAweEQyLCAweEQzLCAweEZBKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MUUsIDB4RkQsIDB4OTksIDB4MjYsIDB4MTksIDB4RkUsIDB4MTMsIDB4NkUpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgxQywgMHgwRSwgMHg0QywgMHg0OCwgMHg3QywgMHhBMiwgMHgxNywgMHgwMSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDNELCAweEEzLCAweDEzLCAweDU3LCAweDAwLCAweDAwLCAweDAwLCAweDAwKSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMjI0cjFfVF8xX1lbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4OUYsIDB4MTYsIDB4NUMsIDB4OEYsIDB4QUEsIDB4RUQsIDB4MEYsIDB4NTgpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhCRiwgMHhDNSwgMHg0MywgMHgzNCwgMHg5MywgMHgwNSwgMHgyQSwgMHg0QyksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEU0LCAweEUzLCAweDZDLCAweENBLCAweEM2LCAweDE0LCAweEMyLCAweDI1KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RDMsIDB4NDMsIDB4NkMsIDB4RDcsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDApLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AyMjRyMV9UXzJfWFtdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhDMywgMHg1QSwgMHg5OCwgMHgxRSwgMHhDOCwgMHhBNSwgMHg0MiwgMHhBMyksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDk4LCAweDQ5LCAweDU2LCAweDc4LCAweEY4LCAweEVGLCAweEVELCAweDY1KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MUIsIDB4QkIsIDB4NjQsIDB4QjYsIDB4NEMsIDB4NTQsIDB4NUYsIDB4RDEpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgyRiwgMHgwQywgMHgzMywgMHhDQywgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCksCit9Oworc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDIyNHIxX1RfMl9ZW10gPSB7CisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEZBLCAweDc5LCAweENCLCAweDJFLCAweDA4LCAweEZGLCAweEQ4LCAweEU2KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MkUsIDB4MUYsIDB4RDQsIDB4RDcsIDB4NTcsIDB4RTksIDB4MzksIDB4NDUpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhEOCwgMHhENiwgMHgzQiwgMHgwQSwgMHgxQywgMHg4NywgMHhCNywgMHg2QSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEVCLCAweDMwLCAweEQ4LCAweDA1LCAweDAwLCAweDAwLCAweDAwLCAweDAwKSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMjI0cjFfVF8zX1hbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QUQsIDB4NzksIDB4NzQsIDB4OUEsIDB4RTYsIDB4QkIsIDB4QzIsIDB4QzIpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhCNCwgMHg1QiwgMHhBNiwgMHg2NywgMHhDMSwgMHg5MSwgMHhFNywgMHg2NCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEYwLCAweERGLCAweDM4LCAweDgyLCAweDE5LCAweDJDLCAweDRDLCAweENBKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RDEsIDB4MkUsIDB4MzksIDB4QzUsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDApLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AyMjRyMV9UXzNfWVtdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg5OSwgMHgzNiwgMHg3OCwgMHg0RSwgMHhBRSwgMHg1QiwgMHgwMiwgMHg3NiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDE0LCAweEY2LCAweDhCLCAweEY4LCAweEY0LCAweDkyLCAweDZCLCAweDQyKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QkEsIDB4NEQsIDB4NzEsIDB4MzUsIDB4RTcsIDB4MEMsIDB4MkMsIDB4OTgpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg5QiwgMHhBNSwgMHgxRiwgMHhBRSwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCksCit9Oworc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDIyNHIxX1RfNF9YW10gPSB7CisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEFGLCAweDFDLCAweDRCLCAweERGLCAweDVCLCAweEYyLCAweDUxLCAweEI3KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MDUsIDB4NzQsIDB4QjEsIDB4NUEsIDB4QzYsIDB4MEYsIDB4MEUsIDB4NjEpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhFOCwgMHgyNCwgMHgwOSwgMHg2MiwgMHhBRiwgMHhGQywgMHhEQiwgMHg0NSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDQzLCAweEUxLCAweDgwLCAweDU1LCAweDAwLCAweDAwLCAweDAwLCAweDAwKSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMjI0cjFfVF80X1lbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4M0MsIDB4ODIsIDB4RkUsIDB4QUQsIDB4QzMsIDB4RTUsIDB4Q0YsIDB4RDgpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgyNCwgMHhBMiwgMHg2MiwgMHgxNywgMHg3NiwgMHhGMCwgMHg1QSwgMHhGQSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDNFLCAweEI4LCAweEU1LCAweEFDLCAweEI3LCAweDY2LCAweDM4LCAweEFBKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4OTcsIDB4RkQsIDB4ODYsIDB4MDUsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDApLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AyMjRyMV9UXzVfWFtdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg1OSwgMHhEMywgMHgwQywgMHgzQywgMHhEMSwgMHg2NiwgMHhCMCwgMHhGMSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEJDLCAweDU5LCAweEI0LCAweDhELCAweDkwLCAweDEwLCAweEI3LCAweEEyKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4OTYsIDB4NDcsIDB4OUIsIDB4RTYsIDB4NTUsIDB4OEEsIDB4RTQsIDB4RUUpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhCMSwgMHg0OSwgMHhEQiwgMHg3OCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCksCit9Oworc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDIyNHIxX1RfNV9ZW10gPSB7CisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDQxLCAweDk3LCAweEVELCAweERFLCAweEZGLCAweEIzLCAweERGLCAweDQ4KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MTAsIDB4QjksIDB4ODMsIDB4QjcsIDB4RUIsIDB4QkUsIDB4NDAsIDB4OEQpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhBRiwgMHhEMywgMHhEMywgMHhDRCwgMHgwRSwgMHg4MiwgMHg3OSwgMHgzRCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDlCLCAweDgzLCAweDFCLCAweEYwLCAweDAwLCAweDAwLCAweDAwLCAweDAwKSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMjI0cjFfVF82X1hbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4M0YsIDB4MjIsIDB4QkIsIDB4NTQsIDB4RDMsIDB4MzEsIDB4NTYsIDB4RkMpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg4MCwgMHgzNiwgMHhFNSwgMHhFMCwgMHg4OSwgMHg5NiwgMHg4RSwgMHg3MSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEUxLCAweEVGLCAweDBBLCAweEVELCAweEQwLCAweDExLCAweDRBLCAweEZGKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MTUsIDB4MDAsIDB4NTcsIDB4MjcsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDApLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AyMjRyMV9UXzZfWVtdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgxMywgMHhDQSwgMHgzRCwgMHhGNywgMHg2NCwgMHg5QiwgMHg2RSwgMHg4NSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDkwLCAweEUzLCAweDcwLCAweDZCLCAweDQxLCAweEQ3LCAweEVELCAweDhGKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MDIsIDB4NDQsIDB4NDQsIDB4ODAsIDB4Q0UsIDB4MTMsIDB4MzcsIDB4OTIpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg5NCwgMHg3MywgMHg4MCwgMHg3OSwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCksCit9Oworc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDIyNHIxX1RfN19YW10gPSB7CisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEI3LCAweDRELCAweDcwLCAweDdELCAweDMxLCAweDBGLCAweDFDLCAweDU4KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NkQsIDB4MzUsIDB4ODgsIDB4NDcsIDB4QzQsIDB4MjQsIDB4NzgsIDB4M0YpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhCQSwgMHhGMCwgMHhDRCwgMHg5MSwgMHg4MSwgMHhCMywgMHhERSwgMHhCNiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDA0LCAweENFLCAweEM2LCAweEY3LCAweDAwLCAweDAwLCAweDAwLCAweDAwKSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMjI0cjFfVF83X1lbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RTksIDB4OUMsIDB4MkQsIDB4RTgsIDB4RDIsIDB4MDAsIDB4OEYsIDB4MTApLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhENSwgMHg1RSwgMHg3QywgMHgwRSwgMHgwQywgMHg2RSwgMHg1OCwgMHgwMiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEFFLCAweDgxLCAweDIxLCAweENFLCAweDQzLCAweEY0LCAweDI0LCAweDNEKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4OUUsIDB4QkMsIDB4RjAsIDB4RjQsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDApLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AyMjRyMV9UXzhfWFtdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhENiwgMHgxMCwgMHhDMiwgMHg3NCwgMHg0QSwgMHg4RiwgMHg4QSwgMHhDRiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDg5LCAweDY3LCAweEY0LCAweDJCLCAweDM4LCAweDJCLCAweDM1LCAweDE3KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RjUsIDB4RTcsIDB4MEMsIDB4QTksIDB4RkEsIDB4NzcsIDB4NUMsIDB4QkQpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhFMCwgMHgzMywgMHgxOSwgMHgyQiwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCksCit9Oworc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDIyNHIxX1RfOF9ZW10gPSB7CisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEU3LCAweDNFLCAweDk2LCAweDIyLCAweDUzLCAweEUxLCAweEU5LCAweEJFKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RTAsIDB4MTMsIDB4QkMsIDB4QTEsIDB4MTYsIDB4RUMsIDB4MDEsIDB4MUEpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg5QSwgMHgwMCwgMHhDOSwgMHg3QSwgMHhDMywgMHg3MywgMHhBNSwgMHg0NSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEUxLCAweEY0LCAweDVFLCAweEMxLCAweDAwLCAweDAwLCAweDAwLCAweDAwKSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMjI0cjFfVF85X1hbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QTgsIDB4OTUsIDB4RDYsIDB4RDksIDB4MzIsIDB4MzAsIDB4MkIsIDB4RDApLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg3NywgMHg0MiwgMHgwOSwgMHgwNSwgMHg2MSwgMHgyQSwgMHg3RSwgMHg4MiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDczLCAweDg0LCAweEEyLCAweDA1LCAweDg4LCAweDY0LCAweDY1LCAweEY5KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MDMsIDB4MkQsIDB4OTAsIDB4QjMsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDApLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AyMjRyMV9UXzlfWVtdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgwQSwgMHhFNywgMHgyRSwgMHg4NSwgMHg1NSwgMHg4MCwgMHg3QywgMHg3OSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDBGLCAweEMxLCAweEFDLCAweDc4LCAweEI0LCAweEFGLCAweEZCLCAweDZFKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RDMsIDB4QzMsIDB4MjgsIDB4OEUsIDB4NzksIDB4MTgsIDB4MUYsIDB4NTgpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgzNCwgMHg0NiwgMHhDRiwgMHg0OSwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCksCit9Oworc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDIyNHIxX1RfMTBfWFtdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg2MywgMHg1RiwgMHhBOCwgMHg2QywgMHg0NiwgMHg4MywgMHg0MywgMHhGQSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEZBLCAweEE5LCAweDkzLCAweDExLCAweEI2LCAweDA3LCAweDU3LCAweDc0KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NzcsIDB4MkEsIDB4OUQsIDB4MDMsIDB4ODksIDB4N0UsIDB4RDcsIDB4M0MpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg3QiwgMHg4QywgMHg2MiwgMHhDRiwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCksCit9Oworc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDIyNHIxX1RfMTBfWVtdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg0NCwgMHgyQywgMHgxMywgMHg1OSwgMHhDQywgMHhGQSwgMHg4NCwgMHg5RSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDUxLCAweEI5LCAweDQ4LCAweEJDLCAweDU3LCAweEM3LCAweEIzLCAweDdDKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RkMsIDB4MEEsIDB4MzgsIDB4MjQsIDB4MkUsIDB4M0EsIDB4MjgsIDB4MjUpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhCQywgMHgwQSwgMHg0MywgMHhCOCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCksCit9Oworc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDIyNHIxX1RfMTFfWFtdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg1OSwgMHgyNSwgMHhBQiwgMHhDMSwgMHhFRSwgMHg3MCwgMHgzQywgMHhFMSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEYzLCAweERCLCAweDQ1LCAweDFELCAweDRBLCAweDgwLCAweDc1LCAweDM1KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RTgsIDB4MUYsIDB4NEQsIDB4MkQsIDB4OUEsIDB4MDUsIDB4RjQsIDB4Q0IpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg2QiwgMHgxMCwgMHhGMCwgMHg1QSwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCksCit9Oworc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDIyNHIxX1RfMTFfWVtdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgzNSwgMHg5NSwgMHhFMSwgMHhEQywgMHgxNSwgMHg4NiwgMHhDMywgMHg3QiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEVDLCAweERDLCAweDI3LCAweEQxLCAweDU2LCAweEExLCAweDE0LCAweDBEKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NTksIDB4MEIsIDB4RDYsIDB4NzcsIDB4NEUsIDB4NDQsIDB4QTIsIDB4RjgpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg5NCwgMHg0MiwgMHg3MSwgMHgxRiwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCksCit9Oworc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDIyNHIxX1RfMTJfWFtdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgzMCwgMHg4NiwgMHhCMiwgMHhCMCwgMHhDOCwgMHgyRiwgMHg3QiwgMHhGRSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDk2LCAweEVGLCAweENCLCAweERCLCAweEJDLCAweDlFLCAweDNCLCAweEM1KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MUIsIDB4MDMsIDB4ODYsIDB4REQsIDB4NUIsIDB4RjUsIDB4OEQsIDB4NDYpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg1OCwgMHg5NSwgMHg3OSwgMHhENiwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCksCit9Oworc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDIyNHIxX1RfMTJfWVtdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg4NCwgMHgzMiwgMHgxNCwgMHhEQSwgMHg5QiwgMHg0RiwgMHgwNywgMHgzOSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEI1LCAweDNFLCAweEZCLCAweDA2LCAweEVFLCAweEE3LCAweDQwLCAweDQwKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NzYsIDB4MUYsIDB4REYsIDB4NzEsIDB4NjEsIDB4RkQsIDB4OEIsIDB4QkUpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg4MCwgMHg4QiwgMHhBQiwgMHg4QiwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCksCit9Oworc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDIyNHIxX1RfMTNfWFtdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhDOSwgMHgzNCwgMHhCMywgMHhCNCwgMHhCQywgMHg5RiwgMHhCMCwgMHg1RSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEU2LCAweDU4LCAweDQ4LCAweEE4LCAweDc3LCAweEJCLCAweDEzLCAweDJGKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NDEsIDB4QzYsIDB4RjcsIDB4MzQsIDB4Q0MsIDB4ODksIDB4MjEsIDB4MEEpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhDQSwgMHgzMywgMHhERCwgMHgxRiwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCksCit9Oworc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDIyNHIxX1RfMTNfWVtdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhDQywgMHg4MSwgMHhFRiwgMHhBNCwgMHhGMiwgMHgxMCwgMHgwQiwgMHhDRCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDgzLCAweEY3LCAweDZFLCAweDcyLCAweDRBLCAweERGLCAweERELCAweEU4KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NjcsIDB4MjMsIDB4MEEsIDB4NTMsIDB4MDMsIDB4MTYsIDB4NjIsIDB4RDIpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgwQiwgMHg3NiwgMHhGRCwgMHgzQywgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCksCit9Oworc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDIyNHIxX1RfMTRfWFtdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhDQiwgMHgxNCwgMHhBMSwgMHhGQSwgMHhBMCwgMHgxOCwgMHhCRSwgMHgwNyksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDAzLCAweDJBLCAweEUxLCAweEQ3LCAweEIwLCAweDZDLCAweEEwLCAweERFKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RDEsIDB4QzAsIDB4QjAsIDB4QzYsIDB4NjMsIDB4MjQsIDB4Q0QsIDB4NEUpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgzMywgMHgzOCwgMHgyQywgMHhCMSwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCksCit9Oworc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDIyNHIxX1RfMTRfWVtdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhFRSwgMHhDRCwgMHg3RCwgMHgyMCwgMHgwQywgMHhGRSwgMHhBQywgMHhDMyksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDA5LCAweDk3LCAweDlGLCAweEEyLCAweEI2LCAweDQ1LCAweEY3LCAweDdCKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4Q0EsIDB4OTksIDB4RjMsIDB4RDIsIDB4MjAsIDB4MDIsIDB4RUIsIDB4MDQpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg0MywgMHgxOCwgMHg1QiwgMHg3QiwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCksCit9Oworc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDIyNHIxX1RfMTVfWFtdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgyQiwgMHhERCwgMHg3NywgMHg5MSwgMHg2MCwgMHhFQSwgMHhGRCwgMHhEMyksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDdELCAweEQzLCAweEI1LCAweEQ2LCAweDkwLCAweDE3LCAweDBFLCAweDFBKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MDAsIDB4RjQsIDB4MjgsIDB4QzEsIDB4RjIsIDB4NTMsIDB4RjYsIDB4NjMpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg0OSwgMHg1OCwgMHhEQywgMHg2MSwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCksCit9Oworc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDIyNHIxX1RfMTVfWVtdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhBOCwgMHgyMCwgMHgwMSwgMHhGQiwgMHhGMSwgMHhCRCwgMHg1RiwgMHg0NSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEQwLCAweDdGLCAweDA2LCAweERBLCAweDExLCAweENCLCAweEJBLCAweEE2KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QTcsIDB4NDEsIDB4MDAsIDB4QTQsIDB4MUIsIDB4MzAsIDB4MzMsIDB4NzkpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhGNCwgMHhGRiwgMHgyNywgMHhDQSwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCksCit9Oworc3RhdGljIGNvbnN0IG1iZWR0bHNfZWNwX3BvaW50IHNlY3AyMjRyMV9UWzE2XSA9IHsKKyAgICBFQ1BfUE9JTlRfSU5JVF9YWV9aMShzZWNwMjI0cjFfVF8wX1gsIHNlY3AyMjRyMV9UXzBfWSksCisgICAgRUNQX1BPSU5UX0lOSVRfWFlfWjAoc2VjcDIyNHIxX1RfMV9YLCBzZWNwMjI0cjFfVF8xX1kpLAorICAgIEVDUF9QT0lOVF9JTklUX1hZX1owKHNlY3AyMjRyMV9UXzJfWCwgc2VjcDIyNHIxX1RfMl9ZKSwKKyAgICBFQ1BfUE9JTlRfSU5JVF9YWV9aMChzZWNwMjI0cjFfVF8zX1gsIHNlY3AyMjRyMV9UXzNfWSksCisgICAgRUNQX1BPSU5UX0lOSVRfWFlfWjAoc2VjcDIyNHIxX1RfNF9YLCBzZWNwMjI0cjFfVF80X1kpLAorICAgIEVDUF9QT0lOVF9JTklUX1hZX1owKHNlY3AyMjRyMV9UXzVfWCwgc2VjcDIyNHIxX1RfNV9ZKSwKKyAgICBFQ1BfUE9JTlRfSU5JVF9YWV9aMChzZWNwMjI0cjFfVF82X1gsIHNlY3AyMjRyMV9UXzZfWSksCisgICAgRUNQX1BPSU5UX0lOSVRfWFlfWjAoc2VjcDIyNHIxX1RfN19YLCBzZWNwMjI0cjFfVF83X1kpLAorICAgIEVDUF9QT0lOVF9JTklUX1hZX1owKHNlY3AyMjRyMV9UXzhfWCwgc2VjcDIyNHIxX1RfOF9ZKSwKKyAgICBFQ1BfUE9JTlRfSU5JVF9YWV9aMChzZWNwMjI0cjFfVF85X1gsIHNlY3AyMjRyMV9UXzlfWSksCisgICAgRUNQX1BPSU5UX0lOSVRfWFlfWjAoc2VjcDIyNHIxX1RfMTBfWCwgc2VjcDIyNHIxX1RfMTBfWSksCisgICAgRUNQX1BPSU5UX0lOSVRfWFlfWjAoc2VjcDIyNHIxX1RfMTFfWCwgc2VjcDIyNHIxX1RfMTFfWSksCisgICAgRUNQX1BPSU5UX0lOSVRfWFlfWjAoc2VjcDIyNHIxX1RfMTJfWCwgc2VjcDIyNHIxX1RfMTJfWSksCisgICAgRUNQX1BPSU5UX0lOSVRfWFlfWjAoc2VjcDIyNHIxX1RfMTNfWCwgc2VjcDIyNHIxX1RfMTNfWSksCisgICAgRUNQX1BPSU5UX0lOSVRfWFlfWjAoc2VjcDIyNHIxX1RfMTRfWCwgc2VjcDIyNHIxX1RfMTRfWSksCisgICAgRUNQX1BPSU5UX0lOSVRfWFlfWjAoc2VjcDIyNHIxX1RfMTVfWCwgc2VjcDIyNHIxX1RfMTVfWSksCit9OworI2Vsc2UKKyNkZWZpbmUgc2VjcDIyNHIxX1QgTlVMTAorI2VuZGlmCisjZW5kaWYgLyogTUJFRFRMU19FQ1BfRFBfU0VDUDIyNFIxX0VOQUJMRUQgKi8KKworLyoKKyAqIERvbWFpbiBwYXJhbWV0ZXJzIGZvciBzZWNwMjU2cjEKKyAqLworI2lmIGRlZmluZWQoTUJFRFRMU19FQ1BfRFBfU0VDUDI1NlIxX0VOQUJMRUQpCitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMjU2cjFfcFtdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEZGLCAweEZGLCAweEZGLCAweEZGLCAweDAwLCAweDAwLCAweDAwLCAweDAwKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDApLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgwMSwgMHgwMCwgMHgwMCwgMHgwMCwgMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiksCit9Oworc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDI1NnIxX2JbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NEIsIDB4NjAsIDB4RDIsIDB4MjcsIDB4M0UsIDB4M0MsIDB4Q0UsIDB4M0IpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhGNiwgMHhCMCwgMHg1MywgMHhDQywgMHhCMCwgMHgwNiwgMHgxRCwgMHg2NSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEJDLCAweDg2LCAweDk4LCAweDc2LCAweDU1LCAweEJELCAweEVCLCAweEIzKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RTcsIDB4OTMsIDB4M0EsIDB4QUEsIDB4RDgsIDB4MzUsIDB4QzYsIDB4NUEpLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AyNTZyMV9neFtdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg5NiwgMHhDMiwgMHg5OCwgMHhEOCwgMHg0NSwgMHgzOSwgMHhBMSwgMHhGNCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEEwLCAweDMzLCAweEVCLCAweDJELCAweDgxLCAweDdELCAweDAzLCAweDc3KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RjIsIDB4NDAsIDB4QTQsIDB4NjMsIDB4RTUsIDB4RTYsIDB4QkMsIDB4RjgpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg0NywgMHg0MiwgMHgyQywgMHhFMSwgMHhGMiwgMHhEMSwgMHgxNywgMHg2QiksCit9Oworc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDI1NnIxX2d5W10gPSB7CisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEY1LCAweDUxLCAweEJGLCAweDM3LCAweDY4LCAweDQwLCAweEI2LCAweENCKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4Q0UsIDB4NUUsIDB4MzEsIDB4NkIsIDB4NTcsIDB4MzMsIDB4Q0UsIDB4MkIpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgxNiwgMHg5RSwgMHgwRiwgMHg3QywgMHg0QSwgMHhFQiwgMHhFNywgMHg4RSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDlCLCAweDdGLCAweDFBLCAweEZFLCAweEUyLCAweDQyLCAweEUzLCAweDRGKSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMjU2cjFfbltdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg1MSwgMHgyNSwgMHg2MywgMHhGQywgMHhDMiwgMHhDQSwgMHhCOSwgMHhGMyksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDg0LCAweDlFLCAweDE3LCAweEE3LCAweEFELCAweEZBLCAweEU2LCAweEJDKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RkYsIDB4RkYsIDB4RkYsIDB4RkYsIDB4RkYsIDB4RkYsIDB4RkYsIDB4RkYpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiksCit9OworI2lmIE1CRURUTFNfRUNQX0ZJWEVEX1BPSU5UX09QVElNID09IDEKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AyNTZyMV9UXzBfWFtdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg5NiwgMHhDMiwgMHg5OCwgMHhEOCwgMHg0NSwgMHgzOSwgMHhBMSwgMHhGNCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEEwLCAweDMzLCAweEVCLCAweDJELCAweDgxLCAweDdELCAweDAzLCAweDc3KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RjIsIDB4NDAsIDB4QTQsIDB4NjMsIDB4RTUsIDB4RTYsIDB4QkMsIDB4RjgpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg0NywgMHg0MiwgMHgyQywgMHhFMSwgMHhGMiwgMHhEMSwgMHgxNywgMHg2QiksCit9Oworc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDI1NnIxX1RfMF9ZW10gPSB7CisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEY1LCAweDUxLCAweEJGLCAweDM3LCAweDY4LCAweDQwLCAweEI2LCAweENCKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4Q0UsIDB4NUUsIDB4MzEsIDB4NkIsIDB4NTcsIDB4MzMsIDB4Q0UsIDB4MkIpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgxNiwgMHg5RSwgMHgwRiwgMHg3QywgMHg0QSwgMHhFQiwgMHhFNywgMHg4RSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDlCLCAweDdGLCAweDFBLCAweEZFLCAweEUyLCAweDQyLCAweEUzLCAweDRGKSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMjU2cjFfVF8xX1hbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NzAsIDB4QzgsIDB4QkEsIDB4MDQsIDB4QjcsIDB4NEIsIDB4RDIsIDB4RjcpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhBQiwgMHhDNiwgMHgyMywgMHgzQSwgMHhBMCwgMHgwOSwgMHgzQSwgMHg1OSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDFELCAweDlELCAweDRDLCAweEY5LCAweDU4LCAweDIzLCAweENDLCAweERGKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MDIsIDB4RUQsIDB4N0IsIDB4MjksIDB4ODcsIDB4MEYsIDB4RkEsIDB4M0MpLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AyNTZyMV9UXzFfWVtdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg0MCwgMHg2OSwgMHhGMiwgMHg0MCwgMHgwQiwgMHhBMywgMHg5OCwgMHhDRSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEFGLCAweEE4LCAweDQ4LCAweDAyLCAweDBELCAweDFDLCAweDEyLCAweDYyKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4OUIsIDB4QUYsIDB4MDksIDB4ODMsIDB4ODAsIDB4QUEsIDB4NTgsIDB4QTcpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhDNiwgMHgxMiwgMHhCRSwgMHg3MCwgMHg5NCwgMHg3NiwgMHhFMywgMHhFNCksCit9Oworc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDI1NnIxX1RfMl9YW10gPSB7CisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDdELCAweDdELCAweEVGLCAweDg2LCAweEZGLCAweEUzLCAweDM3LCAweEREKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4REIsIDB4ODYsIDB4OEIsIDB4MDgsIDB4MjcsIDB4N0MsIDB4RDcsIDB4RjYpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg5MSwgMHg1NCwgMHg0QywgMHgyNSwgMHg0RiwgMHg5QSwgMHhGRSwgMHgyOCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDVFLCAweEZELCAweEYwLCAweDZELCAweDM3LCAweDAzLCAweDY5LCAweEQ2KSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMjU2cjFfVF8yX1lbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4OTYsIDB4RDUsIDB4REEsIDB4QUQsIDB4OTIsIDB4NDksIDB4RjAsIDB4OUYpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhGOSwgMHg3MywgMHg0MywgMHg5RSwgMHhBRiwgMHhBNywgMHhEMSwgMHhGMyksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDY3LCAweDQxLCAweDA3LCAweERGLCAweDc4LCAweDk1LCAweDNFLCAweEExKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MjIsIDB4M0QsIDB4RDEsIDB4RTYsIDB4M0MsIDB4QTUsIDB4RTIsIDB4MjApLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AyNTZyMV9UXzNfWFtdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhCRiwgMHg2QSwgMHg1RCwgMHg1MiwgMHgzNSwgMHhENywgMHhCRiwgMHhBRSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDVBLCAweEEyLCAweEJFLCAweDk2LCAweEY0LCAweEY4LCAweDAyLCAweEMzKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QTQsIDB4MjAsIDB4NDksIDB4NTQsIDB4RUEsIDB4QjMsIDB4ODIsIDB4REIpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgyRSwgMHhEQiwgMHhFQSwgMHgwMiwgMHhEMSwgMHg3NSwgMHgxQywgMHg2MiksCit9Oworc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDI1NnIxX1RfM19ZW10gPSB7CisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEYwLCAweDg1LCAweEY0LCAweDlFLCAweDRDLCAweERDLCAweDM5LCAweDg5KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NjMsIDB4NkQsIDB4QzQsIDB4NTcsIDB4RDgsIDB4MDMsIDB4NUQsIDB4MjIpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg3MCwgMHg3RiwgMHgyRCwgMHg1MiwgMHg2RiwgMHhDOSwgMHhEQSwgMHg0RiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDlELCAweDY0LCAweEZBLCAweEI0LCAweEZFLCAweEE0LCAweEM0LCAweEQ3KSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMjU2cjFfVF80X1hbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MkEsIDB4MzcsIDB4QjksIDB4QzAsIDB4QUEsIDB4NTksIDB4QzYsIDB4OEIpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgzRiwgMHg1OCwgMHhEOSwgMHhFRCwgMHg1OCwgMHg5OSwgMHg2NSwgMHhGNyksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDg4LCAweDdELCAweDI2LCAweDhDLCAweDRBLCAweEY5LCAweDA1LCAweDlGKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4OUQsIDB4NzMsIDB4OUEsIDB4QzksIDB4RTcsIDB4NDYsIDB4REMsIDB4MDApLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AyNTZyMV9UXzRfWVtdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhGMiwgMHhEMCwgMHg1NSwgMHhERiwgMHgwMCwgMHgwQSwgMHhGNSwgMHg0QSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDZBLCAweEJGLCAweDU2LCAweDgxLCAweDJELCAweDIwLCAweEVCLCAweEI1KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MTEsIDB4QzEsIDB4MjgsIDB4NTIsIDB4QUIsIDB4RTMsIDB4RDEsIDB4NDApLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgyNCwgMHgzNCwgMHg3OSwgMHg0NSwgMHg1NywgMHhBNSwgMHgxMiwgMHgwMyksCit9Oworc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDI1NnIxX1RfNV9YW10gPSB7CisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEVFLCAweENGLCAweEI4LCAweDdFLCAweEY3LCAweDkyLCAweDk2LCAweDhEKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4M0QsIDB4MDEsIDB4OEMsIDB4MEQsIDB4MjMsIDB4RjIsIDB4RTMsIDB4MDUpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg1OSwgMHgyRSwgMHhFMywgMHg4NCwgMHg1MiwgMHg3QSwgMHgzNCwgMHg3NiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEU1LCAweEExLCAweEIwLCAweDE1LCAweDkwLCAweEUyLCAweDUzLCAweDNDKSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMjU2cjFfVF81X1lbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RDQsIDB4OTgsIDB4RTcsIDB4RkEsIDB4QTUsIDB4N0QsIDB4OEIsIDB4NTMpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg5MSwgMHgzNSwgMHhEMiwgMHgwMCwgMHhEMSwgMHgxQiwgMHg5RiwgMHgxQiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDNGLCAweDY5LCAweDA4LCAweDlBLCAweDcyLCAweEYwLCAweEE5LCAweDExKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QjMsIDB4RkUsIDB4MEUsIDB4MTQsIDB4REEsIDB4N0MsIDB4MEUsIDB4RDMpLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AyNTZyMV9UXzZfWFtdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg4MywgMHhGNiwgMHhFOCwgMHhGOCwgMHg4NywgMHhGNywgMHhGQywgMHg2RCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDkwLCAweEJFLCAweDdGLCAweDNGLCAweDdBLCAweDJCLCAweEQ3LCAweDEzKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4Q0YsIDB4MzIsIDB4RjIsIDB4MkQsIDB4OTQsIDB4NkQsIDB4NDIsIDB4RkQpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhBRCwgMHg5QSwgMHhFMywgMHg1RiwgMHg0MiwgMHhCQiwgMHg4NCwgMHhFRCksCit9Oworc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDI1NnIxX1RfNl9ZW10gPSB7CisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEZDLCAweDk1LCAweDI5LCAweDczLCAweEExLCAweDY3LCAweDNFLCAweDAyKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RTMsIDB4MzAsIDB4NTQsIDB4MzUsIDB4OEUsIDB4MEEsIDB4REQsIDB4NjcpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgwMywgMHhENywgMHhBMSwgMHg5NywgMHg2MSwgMHgzQiwgMHhGOCwgMHgwQyksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEYyLCAweDMzLCAweDNDLCAweDU4LCAweDU1LCAweDM0LCAweDIzLCAweEEzKSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMjU2cjFfVF83X1hbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4OTksIDB4NUQsIDB4MTYsIDB4NUYsIDB4N0IsIDB4QkMsIDB4QkIsIDB4Q0UpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg2MSwgMHhFRSwgMHg0RSwgMHg4QSwgMHhDMSwgMHg1MSwgMHhDQywgMHg1MCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDFGLCAweDBELCAweDRELCAweDFCLCAweDUzLCAweDIzLCAweDFELCAweEIzKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4REEsIDB4MkEsIDB4MzgsIDB4NjYsIDB4NTIsIDB4ODQsIDB4RTEsIDB4OTUpLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AyNTZyMV9UXzdfWVtdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg1QiwgMHg5QiwgMHg4MywgMHgwQSwgMHg4MSwgMHg0RiwgMHhBRCwgMHhBQyksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDBGLCAweEZGLCAweDQyLCAweDQxLCAweDZFLCAweEE5LCAweEEyLCAweEEwKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MkYsIDB4QTEsIDB4NEYsIDB4MUYsIDB4ODksIDB4ODIsIDB4QUEsIDB4M0UpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhGMywgMHhCOCwgMHgwRiwgMHg2QiwgMHg4RiwgMHg4QywgMHhENiwgMHg2OCksCit9Oworc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDI1NnIxX1RfOF9YW10gPSB7CisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEYxLCAweEIzLCAweEJCLCAweDUxLCAweDY5LCAweEEyLCAweDExLCAweDkzKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NjUsIDB4NEYsIDB4MEYsIDB4OEQsIDB4QkQsIDB4MjYsIDB4MEYsIDB4RTgpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhCOSwgMHhDQiwgMHhFQywgMHg2QiwgMHgzNCwgMHhDMywgMHgzRCwgMHg5RCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEU0LCAweDVELCAweDFFLCAweDEwLCAweEQ1LCAweDQ0LCAweEUyLCAweDU0KSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMjU2cjFfVF84X1lbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MjgsIDB4OUUsIDB4QjEsIDB4RjEsIDB4NkUsIDB4NEMsIDB4QUQsIDB4QjMpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhCNywgMHhFMywgMHhDMiwgMHg1OCwgMHhDMCwgMHhGQiwgMHgzNCwgMHg0MyksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDI1LCAweDlDLCAweERGLCAweDM1LCAweDA3LCAweDQxLCAweEJELCAweDE5KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QjYsIDB4NkUsIDB4MTAsIDB4RUMsIDB4MEUsIDB4RUMsIDB4QkIsIDB4RDYpLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AyNTZyMV9UXzlfWFtdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhDOCwgMHhDRiwgMHhFRiwgMHgzRiwgMHg4MywgMHgxQSwgMHg4OCwgMHhFOCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDBCLCAweDI5LCAweEI1LCAweEI5LCAweEUwLCAweEM5LCAweEEzLCAweEFFKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4ODgsIDB4NDYsIDB4MUUsIDB4NzcsIDB4Q0QsIDB4N0UsIDB4QjMsIDB4MTApLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhCNiwgMHgyMSwgMHhEMCwgMHhENCwgMHhBMywgMHgxNiwgMHgwOCwgMHhFRSksCit9Oworc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDI1NnIxX1RfOV9ZW10gPSB7CisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEExLCAweENBLCAweEE4LCAweEIzLCAweEJGLCAweDI5LCAweDk5LCAweDhFKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RDEsIDB4RjIsIDB4MDUsIDB4QzEsIDB4Q0YsIDB4NUQsIDB4OTEsIDB4NDgpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg5RiwgMHgwMSwgMHg0OSwgMHhEQiwgMHg4MiwgMHhERiwgMHg1RiwgMHgzQSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEUxLCAweDA2LCAweDkwLCAweEFELCAweEUzLCAweDM4LCAweEE0LCAweEM0KSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMjU2cjFfVF8xMF9YW10gPSB7CisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEM5LCAweEQyLCAweDNBLCAweEU4LCAweDAzLCAweEM1LCAweDZELCAweDVEKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QkUsIDB4MzUsIDB4RDAsIDB4QUUsIDB4MUQsIDB4N0EsIDB4OUYsIDB4Q0EpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgzMywgMHgxRSwgMHhEMiwgMHhDQiwgMHhBQywgMHg4OCwgMHgyNywgMHg1NSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEYwLCAweEI5LCAweDlDLCAweEUwLCAweDMxLCAweERELCAweDk5LCAweDg2KSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMjU2cjFfVF8xMF9ZW10gPSB7CisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDYxLCAweEY5LCAweDlCLCAweDMyLCAweDk2LCAweDQxLCAweDU4LCAweDM4KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RjksIDB4NUEsIDB4MkEsIDB4QjgsIDB4OTYsIDB4MEUsIDB4QjIsIDB4NEMpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhDMSwgMHg3OCwgMHgyQywgMHhDNywgMHgwOCwgMHg5OSwgMHgxOSwgMHgyNCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEI3LCAweDU5LCAweDI4LCAweEU5LCAweDg0LCAweDU0LCAweEU2LCAweDE2KSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMjU2cjFfVF8xMV9YW10gPSB7CisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweERELCAweDM4LCAweDMwLCAweERCLCAweDcwLCAweDJDLCAweDBBLCAweEEyKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4N0MsIDB4NUMsIDB4OUQsIDB4RTksIDB4RDUsIDB4NDYsIDB4MEIsIDB4NUYpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg4MywgMHgwQiwgMHg2MCwgMHg0QiwgMHgzNywgMHg3RCwgMHhCOSwgMHhDOSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDVFLCAweDI0LCAweEYzLCAweDNELCAweDc5LCAweDdGLCAweDZDLCAweDE4KSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMjU2cjFfVF8xMV9ZW10gPSB7CisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDdGLCAweEU1LCAweDFDLCAweDRGLCAweDYwLCAweDI0LCAweEY3LCAweDJBKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RUQsIDB4RDgsIDB4RTIsIDB4OTEsIDB4N0YsIDB4ODksIDB4NDksIDB4OTIpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg5NywgMHhBNywgMHgyRSwgMHg4RCwgMHg2QSwgMHhCMywgMHgzOSwgMHg4MSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDEzLCAweDg5LCAweEI1LCAweDlBLCAweEI4LCAweDhELCAweDQyLCAweDlDKSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMjU2cjFfVF8xMl9YW10gPSB7CisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDhELCAweDQ1LCAweEU2LCAweDRCLCAweDNGLCAweDRGLCAweDFFLCAweDFGKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NDcsIDB4NjUsIDB4NUUsIDB4NTksIDB4MjIsIDB4Q0MsIDB4NzIsIDB4NUYpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhGMSwgMHg5MywgMHgxQSwgMHgyNywgMHgxRSwgMHgzNCwgMHhDNSwgMHg1QiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDYzLCAweEYyLCAweEE1LCAweDU4LCAweDVDLCAweDE1LCAweDJFLCAweEM2KSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMjU2cjFfVF8xMl9ZW10gPSB7CisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEY0LCAweDdGLCAweEJBLCAweDU4LCAweDVBLCAweDg0LCAweDZGLCAweDVGKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QUQsIDB4QTYsIDB4MzYsIDB4N0UsIDB4REMsIDB4RjcsIDB4RTEsIDB4NjcpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgwNCwgMHg0RCwgMHhBQSwgMHhFRSwgMHg1NywgMHg3NiwgMHgzQSwgMHhEMyksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDRFLCAweDdFLCAweDI2LCAweDE4LCAweDIyLCAweDIzLCAweDlGLCAweEZGKSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMjU2cjFfVF8xM19YW10gPSB7CisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDFELCAweDRDLCAweDY0LCAweEM3LCAweDU1LCAweDAyLCAweDNGLCAweEUzKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RDgsIDB4MDIsIDB4OTAsIDB4QkIsIDB4QzMsIDB4RUMsIDB4MzAsIDB4NDApLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg5RiwgMHg2RiwgMHg2NCwgMHhGNCwgMHgxNiwgMHg2OSwgMHg0OCwgMHhBNCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEZBLCAweDQ0LCAweDlDLCAweDk1LCAweDBDLCAweDdELCAweDY3LCAweDVFKSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMjU2cjFfVF8xM19ZW10gPSB7CisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDQ0LCAweDkxLCAweDhCLCAweEQ4LCAweEQwLCAweEQ3LCAweEU3LCAweEUyKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MUYsIDB4RjksIDB4NDgsIDB4NjIsIDB4NkYsIDB4QTgsIDB4OTMsIDB4NUQpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhFQSwgMHgzQSwgMHg5OSwgMHgwMiwgMHhENSwgMHgwQiwgMHgzRCwgMHhFMyksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDFFLCAweEQzLCAweDAwLCAweDMxLCAweEU2LCAweDBDLCAweDlGLCAweDQ0KSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMjU2cjFfVF8xNF9YW10gPSB7CisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDU2LCAweEIyLCAweEFBLCAweEZELCAweDg4LCAweDE1LCAweERGLCAweDUyKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NEMsIDB4MzUsIDB4MjcsIDB4MzEsIDB4NDQsIDB4Q0QsIDB4QzAsIDB4NjgpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg1MywgMHhGOCwgMHg5MSwgMHhBNSwgMHg3MSwgMHg5NCwgMHg4NCwgMHgyQSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDkyLCAweENCLCAweEQwLCAweDkzLCAweEU5LCAweDg4LCAweERBLCAweEU0KSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMjU2cjFfVF8xNF9ZW10gPSB7CisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDI0LCAweEM2LCAweDM5LCAweDE2LCAweDVELCAweEEzLCAweDFFLCAweDZEKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QkEsIDB4MDcsIDB4MzcsIDB4MjYsIDB4MzYsIDB4MkEsIDB4RkUsIDB4NjApLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg1MSwgMHhCQywgMHhGMywgMHhEMCwgMHhERSwgMHg1MCwgMHhGQywgMHg5NyksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDgwLCAweDJFLCAweDA2LCAweDEwLCAweDE1LCAweDRELCAweEZBLCAweEY3KSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMjU2cjFfVF8xNV9YW10gPSB7CisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDI3LCAweDY1LCAweDY5LCAweDVCLCAweDY2LCAweEEyLCAweDc1LCAweDJFKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4OUMsIDB4MTYsIDB4MDAsIDB4NUEsIDB4QjAsIDB4MzAsIDB4MjUsIDB4MUEpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg0MiwgMHhGQiwgMHg4NiwgMHg0MiwgMHg4MCwgMHhDMSwgMHhDNCwgMHg3NiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDVCLCAweDFELCAweDgzLCAweDhFLCAweDk0LCAweDAxLCAweDVGLCAweDgyKSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMjU2cjFfVF8xNV9ZW10gPSB7CisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDM5LCAweDM3LCAweDcwLCAweEVGLCAweDFGLCAweEExLCAweEYwLCAweERCKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NkEsIDB4MTAsIDB4NUIsIDB4Q0UsIDB4QzQsIDB4OUIsIDB4NkYsIDB4MTApLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg1MCwgMHgxMSwgMHgxMSwgMHgyNCwgMHg0RiwgMHg0QywgMHg3OSwgMHg2MSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDE3LCAweDNBLCAweDcyLCAweEJDLCAweEZFLCAweDcyLCAweDU4LCAweDQzKSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19lY3BfcG9pbnQgc2VjcDI1NnIxX1RbMTZdID0geworICAgIEVDUF9QT0lOVF9JTklUX1hZX1oxKHNlY3AyNTZyMV9UXzBfWCwgc2VjcDI1NnIxX1RfMF9ZKSwKKyAgICBFQ1BfUE9JTlRfSU5JVF9YWV9aMChzZWNwMjU2cjFfVF8xX1gsIHNlY3AyNTZyMV9UXzFfWSksCisgICAgRUNQX1BPSU5UX0lOSVRfWFlfWjAoc2VjcDI1NnIxX1RfMl9YLCBzZWNwMjU2cjFfVF8yX1kpLAorICAgIEVDUF9QT0lOVF9JTklUX1hZX1owKHNlY3AyNTZyMV9UXzNfWCwgc2VjcDI1NnIxX1RfM19ZKSwKKyAgICBFQ1BfUE9JTlRfSU5JVF9YWV9aMChzZWNwMjU2cjFfVF80X1gsIHNlY3AyNTZyMV9UXzRfWSksCisgICAgRUNQX1BPSU5UX0lOSVRfWFlfWjAoc2VjcDI1NnIxX1RfNV9YLCBzZWNwMjU2cjFfVF81X1kpLAorICAgIEVDUF9QT0lOVF9JTklUX1hZX1owKHNlY3AyNTZyMV9UXzZfWCwgc2VjcDI1NnIxX1RfNl9ZKSwKKyAgICBFQ1BfUE9JTlRfSU5JVF9YWV9aMChzZWNwMjU2cjFfVF83X1gsIHNlY3AyNTZyMV9UXzdfWSksCisgICAgRUNQX1BPSU5UX0lOSVRfWFlfWjAoc2VjcDI1NnIxX1RfOF9YLCBzZWNwMjU2cjFfVF84X1kpLAorICAgIEVDUF9QT0lOVF9JTklUX1hZX1owKHNlY3AyNTZyMV9UXzlfWCwgc2VjcDI1NnIxX1RfOV9ZKSwKKyAgICBFQ1BfUE9JTlRfSU5JVF9YWV9aMChzZWNwMjU2cjFfVF8xMF9YLCBzZWNwMjU2cjFfVF8xMF9ZKSwKKyAgICBFQ1BfUE9JTlRfSU5JVF9YWV9aMChzZWNwMjU2cjFfVF8xMV9YLCBzZWNwMjU2cjFfVF8xMV9ZKSwKKyAgICBFQ1BfUE9JTlRfSU5JVF9YWV9aMChzZWNwMjU2cjFfVF8xMl9YLCBzZWNwMjU2cjFfVF8xMl9ZKSwKKyAgICBFQ1BfUE9JTlRfSU5JVF9YWV9aMChzZWNwMjU2cjFfVF8xM19YLCBzZWNwMjU2cjFfVF8xM19ZKSwKKyAgICBFQ1BfUE9JTlRfSU5JVF9YWV9aMChzZWNwMjU2cjFfVF8xNF9YLCBzZWNwMjU2cjFfVF8xNF9ZKSwKKyAgICBFQ1BfUE9JTlRfSU5JVF9YWV9aMChzZWNwMjU2cjFfVF8xNV9YLCBzZWNwMjU2cjFfVF8xNV9ZKSwKK307CisjZWxzZQorI2RlZmluZSBzZWNwMjU2cjFfVCBOVUxMCisjZW5kaWYKKworI2VuZGlmIC8qIE1CRURUTFNfRUNQX0RQX1NFQ1AyNTZSMV9FTkFCTEVEICovCisKKy8qCisgKiBEb21haW4gcGFyYW1ldGVycyBmb3Igc2VjcDM4NHIxCisgKi8KKyNpZiBkZWZpbmVkKE1CRURUTFNfRUNQX0RQX1NFQ1AzODRSMV9FTkFCTEVEKQorc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDM4NHIxX3BbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RkYsIDB4RkYsIDB4RkYsIDB4RkYsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDApLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEZFLCAweEZGLCAweEZGLCAweEZGLCAweEZGLCAweEZGLCAweEZGLCAweEZGKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RkYsIDB4RkYsIDB4RkYsIDB4RkYsIDB4RkYsIDB4RkYsIDB4RkYsIDB4RkYpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEZGLCAweEZGLCAweEZGLCAweEZGLCAweEZGLCAweEZGLCAweEZGLCAweEZGKSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMzg0cjFfYltdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhFRiwgMHgyQSwgMHhFQywgMHhEMywgMHhFRCwgMHhDOCwgMHg4NSwgMHgyQSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDlELCAweEQxLCAweDJFLCAweDhBLCAweDhELCAweDM5LCAweDU2LCAweEM2KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NUEsIDB4ODcsIDB4MTMsIDB4NTAsIDB4OEYsIDB4MDgsIDB4MTQsIDB4MDMpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgxMiwgMHg0MSwgMHg4MSwgMHhGRSwgMHg2RSwgMHg5QywgMHgxRCwgMHgxOCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDE5LCAweDJELCAweEY4LCAweEUzLCAweDZCLCAweDA1LCAweDhFLCAweDk4KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RTQsIDB4RTcsIDB4M0UsIDB4RTIsIDB4QTcsIDB4MkYsIDB4MzEsIDB4QjMpLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AzODRyMV9neFtdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhCNywgMHgwQSwgMHg3NiwgMHg3MiwgMHgzOCwgMHg1RSwgMHg1NCwgMHgzQSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDZDLCAweDI5LCAweDU1LCAweEJGLCAweDVELCAweEYyLCAweDAyLCAweDU1KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MzgsIDB4MkEsIDB4NTQsIDB4ODIsIDB4RTAsIDB4NDEsIDB4RjcsIDB4NTkpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg5OCwgMHg5QiwgMHhBNywgMHg4QiwgMHg2MiwgMHgzQiwgMHgxRCwgMHg2RSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDc0LCAweEFELCAweDIwLCAweEYzLCAweDFFLCAweEM3LCAweEIxLCAweDhFKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MzcsIDB4MDUsIDB4OEIsIDB4QkUsIDB4MjIsIDB4Q0EsIDB4ODcsIDB4QUEpLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AzODRyMV9neVtdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg1RiwgMHgwRSwgMHhFQSwgMHg5MCwgMHg3QywgMHgxRCwgMHg0MywgMHg3QSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDlELCAweDgxLCAweDdFLCAweDFELCAweENFLCAweEIxLCAweDYwLCAweDBBKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QzAsIDB4QjgsIDB4RjAsIDB4QjUsIDB4MTMsIDB4MzEsIDB4REEsIDB4RTkpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg3QywgMHgxNCwgMHg5QSwgMHgyOCwgMHhCRCwgMHgxRCwgMHhGNCwgMHhGOCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDI5LCAweERDLCAweDkyLCAweDkyLCAweEJGLCAweDk4LCAweDlFLCAweDVEKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NkYsIDB4MkMsIDB4MjYsIDB4OTYsIDB4NEEsIDB4REUsIDB4MTcsIDB4MzYpLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AzODRyMV9uW10gPSB7CisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDczLCAweDI5LCAweEM1LCAweENDLCAweDZBLCAweDE5LCAweEVDLCAweEVDKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4N0EsIDB4QTcsIDB4QjAsIDB4NDgsIDB4QjIsIDB4MEQsIDB4MUEsIDB4NTgpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhERiwgMHgyRCwgMHgzNywgMHhGNCwgMHg4MSwgMHg0RCwgMHg2MywgMHhDNyksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEZGLCAweEZGLCAweEZGLCAweEZGLCAweEZGLCAweEZGLCAweEZGLCAweEZGKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RkYsIDB4RkYsIDB4RkYsIDB4RkYsIDB4RkYsIDB4RkYsIDB4RkYsIDB4RkYpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiksCit9OworI2lmIE1CRURUTFNfRUNQX0ZJWEVEX1BPSU5UX09QVElNID09IDEKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AzODRyMV9UXzBfWFtdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhCNywgMHgwQSwgMHg3NiwgMHg3MiwgMHgzOCwgMHg1RSwgMHg1NCwgMHgzQSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDZDLCAweDI5LCAweDU1LCAweEJGLCAweDVELCAweEYyLCAweDAyLCAweDU1KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MzgsIDB4MkEsIDB4NTQsIDB4ODIsIDB4RTAsIDB4NDEsIDB4RjcsIDB4NTkpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg5OCwgMHg5QiwgMHhBNywgMHg4QiwgMHg2MiwgMHgzQiwgMHgxRCwgMHg2RSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDc0LCAweEFELCAweDIwLCAweEYzLCAweDFFLCAweEM3LCAweEIxLCAweDhFKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MzcsIDB4MDUsIDB4OEIsIDB4QkUsIDB4MjIsIDB4Q0EsIDB4ODcsIDB4QUEpLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AzODRyMV9UXzBfWVtdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg1RiwgMHgwRSwgMHhFQSwgMHg5MCwgMHg3QywgMHgxRCwgMHg0MywgMHg3QSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDlELCAweDgxLCAweDdFLCAweDFELCAweENFLCAweEIxLCAweDYwLCAweDBBKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QzAsIDB4QjgsIDB4RjAsIDB4QjUsIDB4MTMsIDB4MzEsIDB4REEsIDB4RTkpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg3QywgMHgxNCwgMHg5QSwgMHgyOCwgMHhCRCwgMHgxRCwgMHhGNCwgMHhGOCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDI5LCAweERDLCAweDkyLCAweDkyLCAweEJGLCAweDk4LCAweDlFLCAweDVEKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NkYsIDB4MkMsIDB4MjYsIDB4OTYsIDB4NEEsIDB4REUsIDB4MTcsIDB4MzYpLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AzODRyMV9UXzFfWFtdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg0NiwgMHg5MiwgMHgwMCwgMHgyQywgMHg3OCwgMHhEQiwgMHgxRiwgMHgzNyksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDE3LCAweEYzLCAweEVCLCAweEI3LCAweDA2LCAweEY3LCAweEI2LCAweEJDKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4M0QsIDB4QkMsIDB4MkMsIDB4Q0YsIDB4RDgsIDB4RUQsIDB4NTMsIDB4RTcpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg1MiwgMHg3NSwgMHg3QiwgMHhBMywgMHhBQiwgMHhDMywgMHgyQywgMHg4NSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEU1LCAweDlELCAweDc4LCAweDQxLCAweEY2LCAweDc2LCAweDg0LCAweEFDKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NTQsIDB4NTYsIDB4RTgsIDB4NTIsIDB4QjMsIDB4Q0IsIDB4QTgsIDB4QkQpLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AzODRyMV9UXzFfWVtdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg2RCwgMHhGMiwgMHhBRSwgMHhBNCwgMHhCNiwgMHg4OSwgMHgxQiwgMHhEQSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDAxLCAweDBGLCAweENFLCAweDFDLCAweDdDLCAweEY2LCAweDUwLCAweDRDKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NEMsIDB4RUIsIDB4OTAsIDB4RTYsIDB4NEQsIDB4QzcsIDB4RDQsIDB4N0EpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhEMSwgMHg0OSwgMHgyRCwgMHg4QSwgMHgwMSwgMHg5OSwgMHg2MCwgMHg5NCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDVGLCAweDgwLCAweDlCLCAweDlCLCAweDZBLCAweEIwLCAweDA3LCAweEQ5KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QzIsIDB4QTIsIDB4RUUsIDB4NTksIDB4QkUsIDB4OTUsIDB4QkMsIDB4MjMpLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AzODRyMV9UXzJfWFtdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhFNiwgMHg5RCwgMHg1NiwgMHhBRSwgMHg1OSwgMHhGQiwgMHgxRiwgMHg5OCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweENGLCAweEFDLCAweDkxLCAweDgwLCAweDg3LCAweEE4LCAweDZFLCAweDU4KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MzAsIDB4MDgsIDB4QTcsIDB4MDgsIDB4OTQsIDB4MzIsIDB4RkMsIDB4NjcpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg5RiwgMHgyOSwgMHg5RSwgMHg4NCwgMHhGNCwgMHhFNSwgMHg2RSwgMHg3RSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDU1LCAweDIxLCAweEI5LCAweDUwLCAweDI0LCAweEY4LCAweDlDLCAweEM3KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MzQsIDB4MDQsIDB4MDEsIDB4QzIsIDB4RkIsIDB4NzcsIDB4M0UsIDB4REUpLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AzODRyMV9UXzJfWVtdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgwMCwgMHgzOCwgMHhFRSwgMHhFMywgMHhDNywgMHg5RCwgMHhFQywgMHhBNiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEI2LCAweDg4LCAweENGLCAweDQzLCAweEZBLCAweDkyLCAweDVFLCAweDhFKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RTksIDB4Q0EsIDB4NDMsIDB4RjgsIDB4M0IsIDB4NDksIDB4N0UsIDB4NzUpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgxQywgMHhFNywgMHhFQiwgMHgxNywgMHg0NSwgMHg4NiwgMHhDMiwgMHhFMSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDkyLCAweDY5LCAweDU3LCAweDMyLCAweEUwLCAweDlDLCAweEQxLCAweDAwKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RDksIDB4MTAsIDB4QjgsIDB4NEQsIDB4QjgsIDB4RjQsIDB4MEQsIDB4RTMpLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AzODRyMV9UXzNfWFtdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg2MCwgMHhEQywgMHg5QSwgMHhCMiwgMHg3OSwgMHgzOSwgMHgyNywgMHgxNiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDRGLCAweDcxLCAweEU0LCAweDNCLCAweDRELCAweDYwLCAweDBDLCAweEEzKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NTUsIDB4QkQsIDB4MTksIDB4NDAsIDB4RkEsIDB4MTksIDB4MkEsIDB4NUEpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg0RCwgMHhGOCwgMHgxRSwgMHg0MywgMHhBMSwgMHg1MCwgMHg4RCwgMHhFRiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEEzLCAweDE4LCAweDdDLCAweDQxLCAweEZBLCAweDdDLCAweDFCLCAweDU4KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MDAsIDB4NTksIDB4MjQsIDB4QzQsIDB4RTksIDB4QjcsIDB4RDMsIDB4QUQpLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AzODRyMV9UXzNfWVtdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhCQiwgMHgwMSwgMHgzRCwgMHg2MywgMHg1NCwgMHg0NSwgMHg2RiwgMHhCNyksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDdCLCAweEIyLCAweDE5LCAweEEzLCAweDg2LCAweDFELCAweDQyLCAweDM0KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4ODQsIDB4MDIsIDB4ODcsIDB4MTgsIDB4OTIsIDB4NTIsIDB4MUEsIDB4NzEpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg2QywgMHgxOCwgMHhCMSwgMHg1RCwgMHgxOCwgMHgxQiwgMHgzNywgMHhGRSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEY0LCAweDc0LCAweDYxLCAweEJBLCAweDE4LCAweEFGLCAweDQwLCAweDMwKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4REEsIDB4N0QsIDB4M0MsIDB4NTIsIDB4MEYsIDB4MDcsIDB4QjAsIDB4NkYpLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AzODRyMV9UXzRfWFtdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgwOSwgMHgzOSwgMHgxMywgMHhBQSwgMHg2MCwgMHgxNSwgMHg5OSwgMHgzMCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDE3LCAweDAwLCAweENCLCAweEM2LCAweEIxLCAweERCLCAweDk3LCAweDkwKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RTYsIDB4RkEsIDB4NjAsIDB4QjgsIDB4MjQsIDB4RTQsIDB4N0QsIDB4RDMpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhERCwgMHg3NSwgMHhCMywgMHg3MCwgMHhCMiwgMHg4MywgMHhCMSwgMHg5QiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEEzLCAweEUzLCAweDZDLCAweENELCAweDMzLCAweDYyLCAweDdBLCAweDU2KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4ODgsIDB4MzAsIDB4REMsIDB4MEYsIDB4OUYsIDB4QkIsIDB4QjgsIDB4QUEpLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AzODRyMV9UXzRfWVtdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhBNiwgMHhENSwgMHgwQSwgMHg2MCwgMHg4MSwgMHhCOSwgMHhDNSwgMHgxNiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDQ0LCAweEFBLCAweDJGLCAweEQ2LCAweEYyLCAweDczLCAweERGLCAweEVCKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RjMsIDB4N0IsIDB4NzQsIDB4QzksIDB4QjMsIDB4NUIsIDB4OTUsIDB4NkQpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhBQywgMHgwNCwgMHhFQiwgMHgxNSwgMHhDOCwgMHg1RiwgMHgwMCwgMHhGNiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEI1LCAweDUwLCAweDIwLCAweDI4LCAweEQxLCAweDAxLCAweEFGLCAweEYwKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MjgsIDB4NkQsIDB4NEYsIDB4MzEsIDB4ODEsIDB4MkYsIDB4OTQsIDB4NDgpLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AzODRyMV9UXzVfWFtdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg0NiwgMHgyRiwgMHhEOCwgMHhCNiwgMHg2MywgMHg3QywgMHhFOSwgMHg1MCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEQ5LCAweDhDLCAweEI5LCAweDE0LCAweEQ5LCAweDM3LCAweDYzLCAweERFKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MTAsIDB4MDIsIDB4QjgsIDB4NDYsIDB4QUQsIDB4Q0UsIDB4N0IsIDB4MzgpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg4MiwgMHg0NywgMHgyRCwgMHg2NiwgMHhBNywgMHhFOSwgMHgzMywgMHgyMyksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDkyLCAweEY5LCAweDkzLCAweDk0LCAweEE4LCAweDQ4LCAweEIzLCAweDRGKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RTksIDB4NEEsIDB4QUMsIDB4NTEsIDB4MDgsIDB4NzIsIDB4MkYsIDB4MUEpLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AzODRyMV9UXzVfWVtdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhEQSwgMHhBRCwgMHhBMCwgMHhGOSwgMHg4MSwgMHhFMSwgMHg3OCwgMHg5NyksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDNBLCAweDlBLCAweDYzLCAweEQ4LCAweEJBLCAweDc5LCAweDFBLCAweDE3KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MzQsIDB4MzEsIDB4N0IsIDB4N0EsIDB4NUEsIDB4NUQsIDB4N0QsIDB4MkQpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg4MywgMHg5NiwgMHgxMiwgMHg0QiwgMHgxOSwgMHgwOSwgMHhFMCwgMHhCNyksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDU1LCAweDhBLCAweDU3LCAweEVFLCAweDRFLCAweDZFLCAweDdFLCAweEVDKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MTEsIDB4OUQsIDB4NjksIDB4REMsIDB4QjMsIDB4REEsIDB4RDgsIDB4MDgpLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AzODRyMV9UXzZfWFtdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg2OCwgMHg0OSwgMHgwMywgMHgwMywgMHgzMywgMHg2RiwgMHgyOCwgMHg0QSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDVELCAweERCLCAweEE3LCAweDA1LCAweDhDLCAweEYzLCAweDRELCAweEZCKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4OEUsIDB4OTIsIDB4QjEsIDB4QTgsIDB4RUMsIDB4MEQsIDB4NjQsIDB4M0IpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg0RSwgMHhGQywgMHhGRCwgMHhEMCwgMHg0QiwgMHg4OCwgMHgxQiwgMHg1RCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDgzLCAweDlDLCAweDUxLCAweDY5LCAweENFLCAweDcxLCAweDczLCAweEY1KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QjgsIDB4NUEsIDB4MTQsIDB4MjMsIDB4MUEsIDB4NDYsIDB4NjMsIDB4NUYpLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AzODRyMV9UXzZfWVtdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhCQywgMHg0QywgMHg3MCwgMHg0NCwgMHgxOCwgMHhDRCwgMHhFRiwgMHhFRCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEMyLCAweDQ5LCAweERELCAweDY0LCAweDdFLCAweDdFLCAweDRELCAweDkyKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QTIsIDB4MzIsIDB4N0MsIDB4MDksIDB4RDAsIDB4M0YsIDB4RDYsIDB4MkMpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg2RCwgMHhFMCwgMHg0RiwgMHg2NSwgMHgwQywgMHg3QSwgMHg1NCwgMHgzRSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDE2LCAweEZBLCAweEZCLCAweDRBLCAweEI0LCAweDc5LCAweDVBLCAweDhDKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MDQsIDB4NUQsIDB4MUIsIDB4MkIsIDB4REEsIDB4QkMsIDB4OUEsIDB4NzQpLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AzODRyMV9UXzdfWFtdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg1MSwgMHhBQywgMHg1NiwgMHhGNywgMHg1RiwgMHg1MSwgMHg2OCwgMHgwQiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEM2LCAweEUwLCAweDFELCAweEJDLCAweDEzLCAweDRFLCAweEFDLCAweDAzKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QjcsIDB4RjUsIDB4QzUsIDB4RTYsIDB4RDIsIDB4ODgsIDB4QkEsIDB4Q0IpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhGQSwgMHgwRSwgMHgyOCwgMHgyMywgMHg1OCwgMHg2NywgMHhGQSwgMHhFRSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDlFLCAweDgwLCAweDRCLCAweEQ4LCAweEM0LCAweERGLCAweDE1LCAweEU0KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RjEsIDB4MEUsIDB4NTgsIDB4RTYsIDB4MkMsIDB4NTksIDB4QzIsIDB4MDMpLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AzODRyMV9UXzdfWVtdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg5QiwgMHgyNiwgMHgyNywgMHg5OSwgMHgxNiwgMHgyQiwgMHgyMiwgMHgwQiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEJBLCAweEYzLCAweDhGLCAweEMzLCAweDJBLCAweDlCLCAweEZDLCAweDM4KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RkMsIDB4MkUsIDB4ODMsIDB4M0QsIDB4RkUsIDB4OUUsIDB4M0MsIDB4MUIpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgwOCwgMHg1NywgMHhDRCwgMHgyRCwgMHhDMSwgMHg0OSwgMHgzOCwgMHhCNSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDk1LCAweDQyLCAweDhCLCAweDMzLCAweDg5LCAweDFGLCAweEVBLCAweDAxKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QUEsIDB4MUQsIDB4MTMsIDB4RDcsIDB4NTAsIDB4QkIsIDB4M0UsIDB4RUIpLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AzODRyMV9UXzhfWFtdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhEMiwgMHg5QSwgMHg1MiwgMHhEMiwgMHg1NCwgMHg3QywgMHg5NywgMHhGMiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEUwLCAweDMzLCAweDZFLCAweEVELCAweEQ5LCAweDg3LCAweDUwLCAweEM1KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NUEsIDB4MzUsIDB4N0UsIDB4MTYsIDB4NDAsIDB4MTUsIDB4ODMsIDB4QjgpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgzMywgMHgyQiwgMHhBNCwgMHhBQiwgMHgwMywgMHg5MSwgMHhFQSwgMHhGRSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEMxLCAweDQ3LCAweDM5LCAweEVGLCAweDA1LCAweDU5LCAweEQwLCAweDkwKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QkYsIDB4MjQsIDB4MEQsIDB4NzYsIDB4MTEsIDB4NTMsIDB4MDgsIDB4QUYpLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AzODRyMV9UXzhfWVtdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgxRiwgMHgyRiwgMHhERCwgMHhCRCwgMHg1MCwgMHg0OCwgMHhCMSwgMHhFNSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDgwLCAweDFDLCAweDg0LCAweDU1LCAweDc4LCAweDE0LCAweEVCLCAweEY2KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RDksIDB4NUUsIDB4M0UsIDB4QTYsIDB4QUYsIDB4RjYsIDB4QzcsIDB4MDQpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhFNywgMHgxMSwgMHhFMiwgMHg2NSwgMHhDQSwgMHg0MSwgMHg5NSwgMHgzQiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEFFLCAweDgzLCAweEQ4LCAweEU2LCAweDRELCAweDIyLCAweDA2LCAweDJEKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RkEsIDB4N0YsIDB4MjUsIDB4MkEsIDB4QUEsIDB4MjgsIDB4NDYsIDB4OTcpLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AzODRyMV9UXzlfWFtdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg3OSwgMHhEQiwgMHgxNSwgMHg1NiwgMHg4NCwgMHhDQiwgMHhDMCwgMHg1NiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDU2LCAweERCLCAweDBFLCAweDA4LCAweEM5LCAweEY1LCAweEQ0LCAweDlFKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RTYsIDB4NjIsIDB4RDAsIDB4MUEsIDB4N0MsIDB4MTMsIDB4RDUsIDB4MDcpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg3RCwgMHhBRCwgMHg1MywgMHhFMCwgMHgzMiwgMHgyMSwgMHhBMCwgMHhDMCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEM1LCAweDM4LCAweDgxLCAweDIxLCAweDIzLCAweDBFLCAweEQyLCAweEJCKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MUMsIDB4NTEsIDB4MDUsIDB4RDAsIDB4MUUsIDB4ODIsIDB4QTksIDB4NzEpLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AzODRyMV9UXzlfWVtdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhBNywgMHhDMywgMHgyNywgMHhCRiwgMHhDNiwgMHhBQSwgMHhCNywgMHhCOSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweENCLCAweDY1LCAweDQ1LCAweERGLCAweEI5LCAweDQ2LCAweDE3LCAweDQ2KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RjUsIDB4MzgsIDB4M0YsIDB4QjIsIDB4QjEsIDB4NUQsIDB4Q0EsIDB4MUMpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg4OCwgMHgyOSwgMHg2QywgMHg2MywgMHhFOSwgMHhENywgMHg0OCwgMHhCOCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEJDLCAweEYxLCAweEQ3LCAweDk5LCAweDhDLCAweEMyLCAweDA1LCAweDk5KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NkQsIDB4RTYsIDB4NUUsIDB4ODIsIDB4NkQsIDB4RTUsIDB4N0UsIDB4RDUpLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AzODRyMV9UXzEwX1hbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4N0IsIDB4NjEsIDB4RkEsIDB4N0QsIDB4MDEsIDB4REIsIDB4QjYsIDB4NjMpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgxMSwgMHhDNiwgMHg1OCwgMHgzOSwgMHhGNCwgMHhDNiwgMHg4MiwgMHgyMyksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDQ3LCAweDVBLCAweDdBLCAweDgwLCAweDA4LCAweENELCAweEFBLCAweEQ4KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4REEsIDB4OEMsIDB4QzYsIDB4M0YsIDB4M0MsIDB4QTUsIDB4NjgsIDB4RjQpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhCQiwgMHhGNSwgMHhENSwgMHgxNywgMHhBRSwgMHgzNiwgMHhEOCwgMHg4QSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEM3LCAweEFELCAweDkyLCAweEM1LCAweDU3LCAweDZDLCAweERBLCAweDkxKSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMzg0cjFfVF8xMF9ZW10gPSB7CisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEU4LCAweDY3LCAweDE3LCAweEMwLCAweDQwLCAweDc4LCAweDhDLCAweDg0KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4N0UsIDB4OUYsIDB4RjQsIDB4QUEsIDB4REEsIDB4NUMsIDB4N0UsIDB4QjIpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg5NiwgMHhEQiwgMHg0MiwgMHgzRSwgMHg3MiwgMHg2NCwgMHhBMCwgMHg2NyksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDI3LCAweEY5LCAweDQxLCAweDE3LCAweDQzLCAweEUzLCAweEU4LCAweEE4KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NjYsIDB4REQsIDB4Q0MsIDB4NDMsIDB4N0UsIDB4MTYsIDB4MDUsIDB4MDMpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgzNiwgMHg0QiwgMHhDRiwgMHg0OCwgMHg4RiwgMHg0MSwgMHg5MCwgMHhFNSksCit9Oworc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDM4NHIxX1RfMTFfWFtdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg5OCwgMHgwQywgMHg2QiwgMHg5RCwgMHgyMiwgMHgwNCwgMHhCQywgMHg1QyksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDg2LCAweDYzLCAweDc5LCAweDJGLCAweDZBLCAweDBFLCAweDhBLCAweERFKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MjksIDB4NjcsIDB4M0YsIDB4MDIsIDB4QjgsIDB4OTEsIDB4N0YsIDB4NzQpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhGQywgMHgxNCwgMHg2NCwgMHhBMCwgMHgzMywgMHhGNCwgMHg2QiwgMHg1MCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDFDLCAweDQ0LCAweDcxLCAweDg3LCAweEI4LCAweDg4LCAweDNGLCAweDQ1KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MUIsIDB4MkIsIDB4ODUsIDB4MDUsIDB4QzUsIDB4NDQsIDB4NTMsIDB4MTUpLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AzODRyMV9UXzExX1lbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4M0UsIDB4MkIsIDB4RkUsIDB4RDEsIDB4MUMsIDB4NzMsIDB4RTMsIDB4MkUpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg2NiwgMHgzMywgMHhBMSwgMHhEMywgMHg2OSwgMHgxQywgMHg5RCwgMHhEMiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEUwLCAweDVBLCAweEJBLCAweEI2LCAweEFFLCAweDFCLCAweDk0LCAweDA0KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QUYsIDB4NzQsIDB4OTAsIDB4NUMsIDB4NTcsIDB4QjAsIDB4M0EsIDB4NDUpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhERCwgMHgyRiwgMHg5MywgMHgyMCwgMHgyNCwgMHg1NCwgMHgxRCwgMHg4RCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEZBLCAweDc4LCAweDlELCAweDcxLCAweDY3LCAweDVELCAweDQ5LCAweDk4KSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMzg0cjFfVF8xMl9YW10gPSB7CisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDEyLCAweEM4LCAweDBFLCAweDExLCAweDhELCAweEUwLCAweDhGLCAweDY5KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NTksIDB4N0YsIDB4NzksIDB4NkMsIDB4NUYsIDB4QjcsIDB4QkMsIDB4QjEpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg4OCwgMHhFMSwgMHg4MywgMHgzQywgMHgxMiwgMHhCQiwgMHhFRSwgMHg5NiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDJBLCAweEMyLCAweEM0LCAweDFCLCAweDQxLCAweDcxLCAweEI5LCAweDE3KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QjAsIDB4RUUsIDB4QkIsIDB4MUQsIDB4ODksIDB4NTAsIDB4ODgsIDB4RjIpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhGQywgMHgxQywgMHg1NSwgMHg3NCwgMHhFQiwgMHhERSwgMHg5MiwgMHgzRiksCit9Oworc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDM4NHIxX1RfMTJfWVtdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg5QywgMHgzOCwgMHg5MiwgMHgwNiwgMHgxOSwgMHhEMCwgMHhCMywgMHhCMiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDJBLCAweDk5LCAweDI2LCAweEEzLCAweDVGLCAweEUyLCAweEMxLCAweDgxKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NzUsIDB4RkMsIDB4RkQsIDB4QzMsIDB4QjYsIDB4MjYsIDB4MjQsIDB4OEYpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhBRiwgMHhBRCwgMHhFNywgMHg0OSwgMHhCNywgMHg2NCwgMHg0QiwgMHg5NiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDZDLCAweDRFLCAweDk1LCAweEFELCAweDA3LCAweEZFLCAweEI2LCAweDMwKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NEYsIDB4MTUsIDB4RTcsIDB4MkQsIDB4MTksIDB4QTksIDB4MDgsIDB4MTApLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AzODRyMV9UXzEzX1hbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QkUsIDB4QkQsIDB4QUMsIDB4MEEsIDB4M0YsIDB4NkIsIDB4RkYsIDB4RkEpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhFMCwgMHhFNCwgMHg3NCwgMHgxNCwgMHhEOSwgMHg3MCwgMHgxRCwgMHg3MSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEYyLCAweEIwLCAweDcxLCAweEJCLCAweEQ4LCAweDE4LCAweDk2LCAweDJCKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4REEsIDB4QjgsIDB4MTksIDB4OTAsIDB4ODAsIDB4QjUsIDB4RUUsIDB4MDEpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg5MSwgMHgyMSwgMHgyMCwgMHhBNiwgMHgxNywgMHg0OCwgMHgwMywgMHg2RiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEUzLCAweDFELCAweEJCLCAweDZELCAweDk0LCAweDIwLCAweDM0LCAweEYxKSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMzg0cjFfVF8xM19ZW10gPSB7CisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDU5LCAweDgyLCAweDY3LCAweDRCLCAweDhFLCAweDRFLCAweEJFLCAweEUyKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QkUsIDB4REEsIDB4NzcsIDB4RjgsIDB4MjMsIDB4NTUsIDB4MkIsIDB4MkQpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg1QywgMHgwMiwgMHhERSwgMHgyNSwgMHgzNSwgMHgyRCwgMHg3NCwgMHg1MSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEQwLCAweDBDLCAweEI4LCAweDBCLCAweDM5LCAweEJBLCAweEFELCAweDA0KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QTYsIDB4MEUsIDB4MjgsIDB4NEQsIDB4RTEsIDB4M0QsIDB4RTQsIDB4MUIpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg1RCwgMHhFQywgMHgwQSwgMHhENCwgMHhCOCwgMHhDNCwgMHg4RCwgMHhCMCksCit9Oworc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDM4NHIxX1RfMTRfWFtdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgzRSwgMHg2OCwgMHhDRSwgMHhDMiwgMHg1NSwgMHg0RCwgMHgwQywgMHg2RCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDlCLCAweDIwLCAweDkzLCAweDMyLCAweDkwLCAweEQ2LCAweEFFLCAweDQ3KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4REQsIDB4NzgsIDB4QUIsIDB4NDMsIDB4OUUsIDB4RUIsIDB4NzMsIDB4QUUpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhFRCwgMHg5NywgMHhDMywgMHg4MywgMHhBNiwgMHgzQywgMHhGMSwgMHhCRiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDBGLCAweDI1LCAweDI1LCAweDY2LCAweDA4LCAweDI2LCAweEZBLCAweDRCKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NDEsIDB4RkIsIDB4NDQsIDB4NUQsIDB4ODIsIDB4RUMsIDB4M0IsIDB4QUMpLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AzODRyMV9UXzE0X1lbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NTgsIDB4OTAsIDB4RUEsIDB4QjUsIDB4MDQsIDB4OTksIDB4RDAsIDB4NjkpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg0QSwgMHhGMiwgMHgyMiwgMHhBMCwgMHhFQiwgMHhGRCwgMHg0NSwgMHg4NyksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDVELCAweEE0LCAweDgxLCAweDMyLCAweEZDLCAweEZBLCAweEVFLCAweDVCKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MjcsIDB4QkIsIDB4QTQsIDB4NkEsIDB4NzcsIDB4NDEsIDB4NUMsIDB4MUQpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhBMSwgMHgxRSwgMHhBQSwgMHg0RiwgMHhGMCwgMHgxMCwgMHhCMywgMHg1MCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDA5LCAweDc0LCAweDEzLCAweDE0LCAweDlFLCAweDkwLCAweEQ3LCAweEU2KSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMzg0cjFfVF8xNV9YW10gPSB7CisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweERCLCAweEJELCAweDcwLCAweDRGLCAweEE4LCAweEQxLCAweDA2LCAweDJDKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MTksIDB4NEUsIDB4MkUsIDB4NjgsIDB4RkMsIDB4MzUsIDB4RkEsIDB4NTApLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg2MCwgMHg1MywgMHg3NSwgMHhFRCwgMHhGMiwgMHg1RiwgMHhDMiwgMHhFQiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDM5LCAweDg3LCAweDZCLCAweDlGLCAweDA1LCAweEUyLCAweDIyLCAweDkzKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NEYsIDB4MUEsIDB4QTgsIDB4QjcsIDB4MDMsIDB4OUUsIDB4NkQsIDB4N0MpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhDQiwgMHhEMCwgMHg2OSwgMHg4OCwgMHhBOCwgMHgzOSwgMHg5RSwgMHgzQSksCit9Oworc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDM4NHIxX1RfMTVfWVtdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhGOCwgMHhFRiwgMHg2OCwgMHhGRSwgMHhFQywgMHgyNCwgMHgwOCwgMHgxNSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEExLCAweDA2LCAweDRCLCAweDkyLCAweDBELCAweEI3LCAweDM0LCAweDc0KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4M0UsIDB4RjQsIDB4REQsIDB4MUEsIDB4QTAsIDB4NEEsIDB4RTQsIDB4NDUpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhDMywgMHg2MywgMHg0RiwgMHg0RiwgMHhDRSwgMHhCQiwgMHhENiwgMHhEMyksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweENELCAweEVFLCAweDhELCAweERGLCAweDNGLCAweDczLCAweEI3LCAweEFDKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4REYsIDB4MDYsIDB4QjYsIDB4ODAsIDB4NEQsIDB4ODEsIDB4RDksIDB4NTMpLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AzODRyMV9UXzE2X1hbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MTUsIDB4RjUsIDB4MTMsIDB4REYsIDB4MTMsIDB4MTksIDB4OTcsIDB4OTQpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgwOCwgMHhGOSwgMHhCMywgMHgzMywgMHg2NiwgMHg4MiwgMHgyMSwgMHhGRSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEY1LCAweEZDLCAweDM5LCAweDE2LCAweDIzLCAweDQzLCAweDc2LCAweDBFKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MDksIDB4NDgsIDB4MjUsIDB4QTEsIDB4NjQsIDB4OTUsIDB4MUMsIDB4MkYpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg0MywgMHhBQywgMHgxNSwgMHg1NywgMHhEOSwgMHhERSwgMHhBMCwgMHgyOCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDE2LCAweDVGLCAweEI4LCAweDNELCAweDQ4LCAweDkxLCAweDI0LCAweENDKSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMzg0cjFfVF8xNl9ZW10gPSB7CisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDJELCAweEYyLCAweEM4LCAweDU0LCAweEQxLCAweDMyLCAweEJELCAweEM0KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4OEEsIDB4M0IsIDB4RjAsIDB4QUEsIDB4OUQsIDB4RDgsIDB4RjQsIDB4MjApLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg0RiwgMHhDMywgMHhCQiwgMHg2QywgMHg2NiwgMHhBQywgMHgyNSwgMHgyRCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDZGLCAweDI1LCAweDEwLCAweEIyLCAweEUxLCAweDQxLCAweERFLCAweDFEKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4M0MsIDB4RTgsIDB4MzAsIDB4QjgsIDB4MzcsIDB4QkMsIDB4MkEsIDB4OTgpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhCQSwgMHg1NywgMHgwMSwgMHg0QSwgMHgxRSwgMHg3OCwgMHg5RiwgMHg4NSksCit9Oworc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDM4NHIxX1RfMTdfWFtdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhCRCwgMHgxOSwgMHhDRCwgMHgxMiwgMHgwQiwgMHg1MSwgMHg0RiwgMHg1NiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDMwLCAweDRCLCAweDNELCAweDI0LCAweEE0LCAweDE2LCAweDU5LCAweDA1KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QUMsIDB4RUIsIDB4RDMsIDB4NTksIDB4MkUsIDB4NzUsIDB4N0MsIDB4MDEpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg4QywgMHhCOSwgMHhCNCwgMHhBNSwgMHhEOSwgMHgyRSwgMHgyOSwgMHg0QyksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDg2LCAweDE2LCAweDA1LCAweDc1LCAweDAyLCAweEIzLCAweDA2LCAweEVFKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QUIsIDB4N0MsIDB4OUYsIDB4NzksIDB4OTEsIDB4RjEsIDB4NEYsIDB4MjMpLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AzODRyMV9UXzE3X1lbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NjUsIDB4OTgsIDB4N0MsIDB4ODQsIDB4RTEsIDB4RkYsIDB4MzAsIDB4NzcpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg3MSwgMHhFMiwgMHhDMiwgMHg1RiwgMHg1NSwgMHg0MCwgMHhCRCwgMHhDRCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDY5LCAweDY1LCAweDg3LCAweDNGLCAweEM0LCAweEMyLCAweDI0LCAweDU3KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MEUsIDB4MzAsIDB4MEEsIDB4NjAsIDB4MTUsIDB4RDEsIDB4MjQsIDB4NDgpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg1NywgMHg5OSwgMHhEOSwgMHhCNiwgMHhBRSwgMHhCMSwgMHhBRiwgMHgxRCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDlCLCAweDgwLCAweEVFLCAweEEyLCAweDBGLCAweDc0LCAweEI5LCAweEYzKSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMzg0cjFfVF8xOF9YW10gPSB7CisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDAzLCAweEU2LCAweDBGLCAweDM3LCAweEMxLCAweDEwLCAweDk5LCAweDFFKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NjEsIDB4QUQsIDB4OUQsIDB4NUQsIDB4ODAsIDB4MDEsIDB4QTYsIDB4RkUpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhCMCwgMHgwRiwgMHgxMCwgMHgyQSwgMHg5RCwgMHgyMCwgMHgzOCwgMHhFQiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDZDLCAweDYwLCAweENCLCAweENFLCAweDVBLCAweEEwLCAweEE3LCAweDMyKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QkEsIDB4Q0YsIDB4MTQsIDB4REYsIDB4QkYsIDB4RTUsIDB4NzQsIDB4MkQpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhCNSwgMHgxMiwgMHgxQSwgMHhERCwgMHg1OSwgMHgwMiwgMHg1RCwgMHhDNiksCit9Oworc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDM4NHIxX1RfMThfWVtdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhDOCwgMHhDOSwgMHhGOCwgMHhGNSwgMHhCNiwgMHgxMywgMHg0RCwgMHg3QiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEVELCAweDQ1LCAweEIxLCAweDkzLCAweEIzLCAweEEyLCAweDc5LCAweERDKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NzQsIDB4RjYsIDB4Q0YsIDB4RjcsIDB4RTYsIDB4MjksIDB4OUMsIDB4Q0MpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg4NywgMHg1MCwgMHg2NSwgMHg4MCwgMHhCQywgMHg1OSwgMHgwQSwgMHg1OSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDBFLCAweEYwLCAweDI0LCAweDM1LCAweEEyLCAweDQ2LCAweEYwLCAweDBDKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QkQsIDB4MjYsIDB4QzAsIDB4OUQsIDB4NjEsIDB4NTYsIDB4NjIsIDB4NjcpLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AzODRyMV9UXzE5X1hbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MTAsIDB4QkIsIDB4QzIsIDB4MjQsIDB4NDMsIDB4MkUsIDB4MzcsIDB4NTQpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg4QSwgMHhGNywgMHhDRSwgMHgzNSwgMHhGQywgMHg3NywgMHhGMywgMHgzRiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDc1LCAweDM0LCAweDk2LCAweEQ1LCAweDRBLCAweDc2LCAweDlELCAweDZCKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QjgsIDB4M0IsIDB4MEYsIDB4RUEsIDB4QTgsIDB4MTIsIDB4MEIsIDB4MjIpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg2NiwgMHgzRiwgMHg1RCwgMHgyRCwgMHgxQywgMHhENCwgMHg5RSwgMHhGQiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDdELCAweDJFLCAweERELCAweEM3LCAweDZFLCAweEFCLCAweEFGLCAweERDKSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMzg0cjFfVF8xOV9ZW10gPSB7CisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDhDLCAweEIyLCAweDdCLCAweDBDLCAweDlBLCAweDgzLCAweDhFLCAweDU5KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MzAsIDB4NTEsIDB4OTAsIDB4OTIsIDB4NzksIDB4MzIsIDB4MTksIDB4QzMpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhFRSwgMHg4OSwgMHhGOSwgMHhEMCwgMHhDRiwgMHgyQywgMHhBNSwgMHg4RiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDdCLCAweDUwLCAweDIxLCAweERFLCAweDUwLCAweDQxLCAweDlELCAweDgxKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RTAsIDB4N0QsIDB4MkIsIDB4OUUsIDB4OUQsIDB4OTUsIDB4QTgsIDB4RTMpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhEOCwgMHhBNSwgMHgyMCwgMHg4NywgMHg4OCwgMHg5NywgMHg1RiwgMHhBQSksCit9Oworc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDM4NHIxX1RfMjBfWFtdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg2NCwgMHg1OSwgMHhCNCwgMHg2NiwgMHg3RSwgMHhFOCwgMHg1QSwgMHg2MCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEE1LCAweDVDLCAweDdFLCAweEIyLCAweEFELCAweEQ5LCAweEM5LCAweERBKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4ODIsIDB4OTcsIDB4NDksIDB4QTMsIDB4MTMsIDB4ODMsIDB4MDcsIDB4MkUpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg1QSwgMHgyNiwgMHhDNywgMHgxMywgMHgzNSwgMHgwRCwgMHhCMCwgMHg2QiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDFFLCAweDYwLCAweEFCLCAweEZBLCAweDRCLCAweDkzLCAweDE4LCAweDJDKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NTQsIDB4MkQsIDB4MUMsIDB4MzEsIDB4NEMsIDB4RTQsIDB4NjEsIDB4QUUpLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AzODRyMV9UXzIwX1lbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4REUsIDB4NEQsIDB4MUUsIDB4NTEsIDB4NTksIDB4NkUsIDB4OTEsIDB4QzUpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgzOCwgMHg1NCwgMHg0RCwgMHg1MSwgMHhFRCwgMHgzNiwgMHhDQywgMHg2MCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDE4LCAweEE4LCAweDU2LCAweEM3LCAweDc4LCAweDI3LCAweDMzLCAweEM1KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NDIsIDB4QjcsIDB4OTUsIDB4QzksIDB4OEIsIDB4QzgsIDB4NkEsIDB4QkMpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg1RSwgMHhFOSwgMHgxMywgMHg5NiwgMHhCMywgMHhFMSwgMHhGOSwgMHhFRSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEY1LCAweDQ2LCAweEIwLCAweDVFLCAweEMzLCAweDk0LCAweDAzLCAweDA1KSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMzg0cjFfVF8yMV9YW10gPSB7CisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDZELCAweDVCLCAweDI5LCAweDMwLCAweDQxLCAweDFBLCAweDlFLCAweEI2KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NzYsIDB4Q0EsIDB4ODMsIDB4MzEsIDB4NUIsIDB4QTcsIDB4Q0IsIDB4NDIpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgyMSwgMHg0MSwgMHg1MCwgMHg0NCwgMHg0RCwgMHg2NCwgMHgzMSwgMHg4OSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweENGLCAweDg0LCAweEMyLCAweDVELCAweDk3LCAweEE1LCAweDNDLCAweDE4KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RjAsIDB4MEYsIDB4QTUsIDB4RkQsIDB4OEUsIDB4NUEsIDB4NDcsIDB4MkMpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg3QywgMHg1OCwgMHgwMiwgMHgyRCwgMHg0MCwgMHhCMSwgMHgwQiwgMHhCQSksCit9Oworc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDM4NHIxX1RfMjFfWVtdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhEQSwgMHgzMywgMHg4QywgMHg2NywgMHhDRSwgMHgyMywgMHg0MywgMHg5OSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDg0LCAweDUzLCAweDQ3LCAweDcyLCAweDQ0LCAweDFGLCAweDVCLCAweDJBKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QUUsIDB4QzEsIDB4RDksIDB4QTQsIDB4NTAsIDB4ODgsIDB4NjMsIDB4MTgpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg3QywgMHhGMiwgMHg3NSwgMHg2OSwgMHg3MywgMHgwMCwgMHhDNCwgMHgzMSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDRCLCAweDkwLCAweDFELCAweERGLCAweDFBLCAweDAwLCAweEQ4LCAweDY5KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MDUsIDB4QjEsIDB4ODksIDB4NDgsIDB4QTgsIDB4NzAsIDB4NjIsIDB4RUYpLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AzODRyMV9UXzIyX1hbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4N0UsIDB4OEEsIDB4NTUsIDB4NTAsIDB4N0IsIDB4RUYsIDB4OEEsIDB4M0MpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhGRSwgMHgxQiwgMHgyMywgMHg0OCwgMHgyMywgMHg2MywgMHg5MSwgMHhCNiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDBELCAweDA0LCAweDU0LCAweDNDLCAweDI0LCAweDlCLCAweEM3LCAweDlBKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MjUsIDB4MzgsIDB4QzMsIDB4ODQsIDB4RkIsIDB4RkYsIDB4OUYsIDB4NDkpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg2NiwgMHgyQSwgMHhFMCwgMHg2RCwgMHg2OCwgMHg4QSwgMHg1QywgMHhDQiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEM0LCAweDkzLCAweDUzLCAweDg1LCAweEExLCAweDBELCAweEFGLCAweDYzKSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMzg0cjFfVF8yMl9ZW10gPSB7CisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDFCLCAweDg4LCAweDk1LCAweDRDLCAweDBCLCAweEQwLCAweDA2LCAweDUxKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4OTIsIDB4QUYsIDB4OEQsIDB4NDksIDB4QTIsIDB4QzgsIDB4QjQsIDB4RTApLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg3NSwgMHg3NiwgMHg1MywgMHgwOSwgMHg4OCwgMHg0MywgMHg4NywgMHhDQSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDkwLCAweEE0LCAweDc3LCAweDNGLCAweDVFLCAweDIxLCAweEI0LCAweDBBKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MzUsIDB4OUUsIDB4ODYsIDB4NjQsIDB4Q0MsIDB4OTEsIDB4QzEsIDB4NzcpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhDMSwgMHgxNywgMHg1NiwgMHhDQiwgMHhDMywgMHg3RCwgMHg1QiwgMHhCMSksCit9Oworc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDM4NHIxX1RfMjNfWFtdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg2NCwgMHg3NCwgMHg5RiwgMHhCNSwgMHg5MSwgMHgyMSwgMHhCMSwgMHgxQyksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDFFLCAweEVELCAweEUxLCAweDExLCAweEVGLCAweDQ1LCAweEFGLCAweEMxKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RTAsIDB4MzEsIDB4QkUsIDB4QjIsIDB4QkMsIDB4NzIsIDB4NjUsIDB4MUYpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhCMSwgMHg0QiwgMHg4QywgMHg3NywgMHhDRSwgMHgxRSwgMHg0MiwgMHhCNSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEZGLCAweEM5LCAweEFBLCAweEI5LCAweEQ5LCAweDg2LCAweDk5LCAweDU1KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NjUsIDB4MjMsIDB4ODAsIDB4QzYsIDB4NEUsIDB4MzUsIDB4MEIsIDB4NkQpLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AzODRyMV9UXzIzX1lbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NDcsIDB4RDgsIDB4QTIsIDB4MEEsIDB4MzksIDB4MzIsIDB4MUQsIDB4MjMpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg2MSwgMHhDOCwgMHg4NiwgMHhGMSwgMHgxMiwgMHg5QSwgMHg0QSwgMHgwNSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDhELCAweEYxLCAweDdDLCAweEFBLCAweDcwLCAweDhFLCAweEJDLCAweDAxKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NjIsIDB4MDEsIDB4NDcsIDB4OEYsIDB4REQsIDB4OEIsIDB4QTUsIDB4QzgpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhEQiwgMHgwOCwgMHgyMSwgMHhGNCwgMHhBQiwgMHhDNywgMHhGNSwgMHg5NiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDBBLCAweDc2LCAweEE1LCAweDk1LCAweEM0LCAweDBGLCAweDg4LCAweDFEKSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMzg0cjFfVF8yNF9YW10gPSB7CisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDNGLCAweDQyLCAweDJBLCAweDUyLCAweENELCAweDc1LCAweDUxLCAweDQ5KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4OTAsIDB4MzYsIDB4RTUsIDB4MDQsIDB4MkIsIDB4NDQsIDB4QzYsIDB4RUYpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg1QywgMHhFRSwgMHgxNiwgMHgxMywgMHgwNywgMHg4MywgMHhCNSwgMHgzMCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDc2LCAweDU5LCAweEM2LCAweEEyLCAweDE5LCAweDA1LCAweEQzLCAweEM2KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QjYsIDB4OEIsIDB4QTgsIDB4MTYsIDB4MDksIDB4QjcsIDB4RUEsIDB4RDYpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg3MCwgMHhFRSwgMHgxNCwgMHhBRiwgMHhCNSwgMHhGRCwgMHhEMCwgMHhFRiksCit9Oworc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDM4NHIxX1RfMjRfWVtdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgxOCwgMHg3QywgMHhDQSwgMHg3MSwgMHgzRSwgMHg2RSwgMHg2NiwgMHg3NSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEJFLCAweDMxLCAweDBFLCAweDNGLCAweEU1LCAweDkxLCAweEM0LCAweDdGKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4OEUsIDB4M0QsIDB4QzIsIDB4M0UsIDB4OTUsIDB4MzcsIDB4NTgsIDB4MkIpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgwMSwgMHgxRiwgMHgwMiwgMHgwMywgMHhGMywgMHhFRiwgMHhFRSwgMHg2NiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDI4LCAweDVCLCAweDFBLCAweEZDLCAweDM4LCAweENELCAweEU4LCAweDI0KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MTIsIDB4NTcsIDB4NDIsIDB4ODUsIDB4QzYsIDB4MjEsIDB4NjgsIDB4NzEpLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AzODRyMV9UXzI1X1hbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4OEQsIDB4QTIsIDB4NEEsIDB4NjYsIDB4QjEsIDB4MEEsIDB4RTYsIDB4QzApLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg4NiwgMHgwQywgMHg5NCwgMHg5RCwgMHg1RSwgMHg5OSwgMHhCMiwgMHhDRSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEFELCAweDAzLCAweDQwLCAweENBLCAweEIyLCAweEIzLCAweDMwLCAweDU1KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NzQsIDB4NzgsIDB4NDgsIDB4MjcsIDB4MzQsIDB4MUUsIDB4RTIsIDB4NDIpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhBRSwgMHg3MiwgMHg1QiwgMHhBQywgMHhDMSwgMHg2RCwgMHhFMywgMHg4MiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDU3LCAweEFCLCAweDQ2LCAweENCLCAweEVBLCAweDVFLCAweDRCLCAweDBCKSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMzg0cjFfVF8yNV9ZW10gPSB7CisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEZDLCAweDA4LCAweEFELCAweDRFLCAweDUxLCAweDlGLCAweDJBLCAweDUyKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NjgsIDB4NUMsIDB4N0QsIDB4NEMsIDB4RDYsIDB4Q0YsIDB4REQsIDB4MDIpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhEOCwgMHg3NiwgMHgyNiwgMHhFMCwgMHg4QiwgMHgxMCwgMHhEOSwgMHg3QyksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDMwLCAweEE3LCAweDIzLCAweDRFLCAweDVGLCAweEQyLCAweDQyLCAweDE3KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RDEsIDB4RTUsIDB4QTQsIDB4RUMsIDB4NzcsIDB4MjEsIDB4MzQsIDB4MjgpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg1QywgMHgxNCwgMHg2NSwgMHhFQSwgMHg0QSwgMHg4NSwgMHhDMywgMHgyRiksCit9Oworc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDM4NHIxX1RfMjZfWFtdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgxOSwgMHhEOCwgMHg0MCwgMHgyNywgMHg3MywgMHgxNSwgMHg3RSwgMHg2NSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEY2LCAweEJCLCAweDUzLCAweDdFLCAweDBGLCAweDQwLCAweEM4LCAweEQ0KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RUEsIDB4MzcsIDB4MTksIDB4NzMsIDB4RUYsIDB4NUEsIDB4NUUsIDB4MDQpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg5QywgMHg3MywgMHgyQiwgMHg0OSwgMHg3RSwgMHhBQywgMHg5NywgMHg1QyksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDE1LCAweEIyLCAweEMzLCAweDFFLCAweDBFLCAweEU3LCAweEQyLCAweDIxKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4OEEsIDB4MDgsIDB4RDYsIDB4REQsIDB4QUMsIDB4MjEsIDB4RDYsIDB4M0UpLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AzODRyMV9UXzI2X1lbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QTksIDB4MjYsIDB4QkUsIDB4NkQsIDB4NkQsIDB4RjIsIDB4MzgsIDB4M0YpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgwOCwgMHg2QywgMHgzMSwgMHhBNywgMHg0OSwgMHg1MCwgMHgzQSwgMHg4OSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEMzLCAweDk5LCAweEM2LCAweEY1LCAweEQyLCAweEMyLCAweDMwLCAweDVBKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MkEsIDB4RTQsIDB4RjYsIDB4OEIsIDB4OEIsIDB4OTcsIDB4RTksIDB4QjIpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhERCwgMHgyMSwgMHhCNywgMHgwRCwgMHhGQywgMHgxNSwgMHg1NCwgMHgwQiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDY1LCAweDgzLCAweDFDLCAweEE0LCAweENELCAweDZCLCAweDlELCAweEYyKSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMzg0cjFfVF8yN19YW10gPSB7CisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEQ2LCAweEU4LCAweDRDLCAweDQ4LCAweEU0LCAweEFBLCAweDY5LCAweDkzKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MjcsIDB4N0EsIDB4MjcsIDB4RkMsIDB4MzcsIDB4OTYsIDB4MUEsIDB4N0IpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg2RiwgMHhFNywgMHgzMCwgMHhBNSwgMHhDRiwgMHgxMywgMHg0NiwgMHg1QyksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDhDLCAweEQ4LCAweEFGLCAweDc0LCAweDIzLCAweDRELCAweDU2LCAweDg0KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MzIsIDB4M0QsIDB4NDQsIDB4MTQsIDB4MUIsIDB4OTcsIDB4ODMsIDB4RjApLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhGQSwgMHg0NywgMHhENywgMHg1RiwgMHhGRCwgMHg5OCwgMHgzOCwgMHhGNyksCit9Oworc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDM4NHIxX1RfMjdfWVtdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhBMywgMHg3MywgMHg2NCwgMHgzNiwgMHhGRCwgMHg3QiwgMHhDMSwgMHgxNSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEVBLCAweDVELCAweDMyLCAweEQyLCAweDQ3LCAweDk0LCAweDg5LCAweDJEKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NTEsIDB4RTksIDB4MzAsIDB4QUMsIDB4MDYsIDB4QzgsIDB4NjUsIDB4MDQpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhGQSwgMHg2QywgMHhCOSwgMHgxQiwgMHhGNywgMHg2MSwgMHg0OSwgMHg1MyksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEQ3LCAweEZGLCAweDMyLCAweDQzLCAweDgwLCAweERBLCAweEE2LCAweEIxKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QUMsIDB4RjgsIDB4MDQsIDB4MDEsIDB4OTUsIDB4MzUsIDB4Q0UsIDB4MjEpLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AzODRyMV9UXzI4X1hbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NkQsIDB4MDYsIDB4NDYsIDB4MEQsIDB4NTEsIDB4RTIsIDB4RDgsIDB4QUMpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgxNCwgMHg1NywgMHgxRCwgMHg2RiwgMHg3OSwgMHhBMCwgMHhDRCwgMHhBNiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweERGLCAweEZCLCAweDM2LCAweENBLCAweEFELCAweEY1LCAweDlFLCAweDQxKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NkYsIDB4N0EsIDB4MUQsIDB4OUUsIDB4MUQsIDB4OTUsIDB4NDgsIDB4REMpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg4MSwgMHgyNiwgMHhBNSwgMHhCNywgMHgxNSwgMHgyQywgMHhDMiwgMHhDNiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDg2LCAweDQyLCAweDcyLCAweEFBLCAweDExLCAweERDLCAweEM5LCAweEI2KSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMzg0cjFfVF8yOF9ZW10gPSB7CisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDNGLCAweDZDLCAweDY0LCAweEE3LCAweDYyLCAweDNDLCAweEFCLCAweEQ0KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NDgsIDB4NkEsIDB4NDQsIDB4RDgsIDB4NjAsIDB4QzAsIDB4QTgsIDB4ODApLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg4MiwgMHg3NiwgMHg1OCwgMHgxMiwgMHg1NywgMHgzQywgMHg4OSwgMHg0NiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDgyLCAweDRGLCAweDgzLCAweENFLCAweENCLCAweEI4LCAweEQwLCAweDJDKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4OUEsIDB4ODQsIDB4MDQsIDB4QjAsIDB4QUQsIDB4RUIsIDB4RkEsIDB4REYpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgzNCwgMHhBNCwgMHhDMywgMHg0MSwgMHg0NCwgMHg0RSwgMHg2NSwgMHgzRSksCit9Oworc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDM4NHIxX1RfMjlfWFtdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhCNiwgMHgxNiwgMHhBOSwgMHgxQywgMHhFNywgMHg2NSwgMHgyMCwgMHhDMSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDU4LCAweDUzLCAweDMyLCAweEY4LCAweEMwLCAweEE2LCAweEJELCAweDJDKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QjcsIDB4RjAsIDB4RTYsIDB4NTcsIDB4MzEsIDB4Q0MsIDB4MjYsIDB4NkYpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgyNywgMHhFMywgMHg1NCwgMHgxQywgMHgzNCwgMHhEMywgMHgxNywgMHhCQyksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEY1LCAweEFFLCAweEVELCAweEZCLCAweENELCAweEU3LCAweDFFLCAweDlGKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NUEsIDB4MTYsIDB4MUMsIDB4MzQsIDB4NDAsIDB4MDAsIDB4MUYsIDB4QjYpLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AzODRyMV9UXzI5X1lbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NkEsIDB4MzIsIDB4MDAsIDB4QzIsIDB4RDQsIDB4M0IsIDB4MUEsIDB4MDkpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgzNCwgMHhFMCwgMHg5OSwgMHg4RiwgMHgwQywgMHg0QSwgMHgxNiwgMHg0NCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDgzLCAweDczLCAweDE4LCAweDFCLCAweEQ0LCAweDk0LCAweDI5LCAweDYyKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MjksIDB4QTQsIDB4MkQsIDB4QjEsIDB4OUQsIDB4NzQsIDB4MzIsIDB4NjcpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhCRiwgMHhGNCwgMHhCMSwgMHgwQywgMHgzNywgMHg2MiwgMHg4QiwgMHg2NiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEM5LCAweEZGLCAweERBLCAweEUyLCAweDM1LCAweEEzLCAweEI2LCAweDQyKSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMzg0cjFfVF8zMF9YW10gPSB7CisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDkxLCAweDQ5LCAweDk5LCAweDY1LCAweEM1LCAweEVELCAweDE2LCAweEVGKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NzksIDB4NDIsIDB4OUEsIDB4RjMsIDB4QTcsIDB4NEUsIDB4NkYsIDB4MkIpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg3QiwgMHgwQSwgMHg3RSwgMHhDMCwgMHhENywgMHg0RSwgMHgwNywgMHg1NSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEQ2LCAweDdBLCAweDMxLCAweDY5LCAweEE2LCAweEI5LCAweDE1LCAweDM0KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QTgsIDB4RTAsIDB4NzIsIDB4QTQsIDB4M0YsIDB4QjksIDB4RjgsIDB4MEMpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgyQiwgMHg3NSwgMHgzMiwgMHg4NSwgMHhBMiwgMHhERSwgMHgzNywgMHgxMiksCit9Oworc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDM4NHIxX1RfMzBfWVtdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhCQywgMHhDMCwgMHgwRCwgMHhDRiwgMHgyNSwgMHg0MSwgMHhBNCwgMHhGNCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDlCLCAweEZDLCAweEIyLCAweDQ4LCAweEMzLCAweDg1LCAweDgzLCAweDRCKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MkIsIDB4QkUsIDB4MEIsIDB4NTgsIDB4MkQsIDB4N0EsIDB4OUEsIDB4NjIpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhDNSwgMHhGMywgMHg4MSwgMHgxOCwgMHgxQiwgMHg3NCwgMHg0RiwgMHgyQyksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEUyLCAweDQzLCAweEEzLCAweDBBLCAweDE2LCAweDhCLCAweEEzLCAweDFFKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NEEsIDB4MTgsIDB4ODEsIDB4N0IsIDB4OEQsIDB4QTIsIDB4MzUsIDB4NzcpLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AzODRyMV9UXzMxX1hbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4ODYsIDB4QzQsIDB4M0YsIDB4MkMsIDB4RTcsIDB4NUYsIDB4OTksIDB4MDMpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhGMCwgMHgyQiwgMHhCNywgMHhCNiwgMHhBRCwgMHg1QSwgMHg1NiwgMHhGRiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDA0LCAweDAwLCAweEE0LCAweDQ4LCAweEM4LCAweEU4LCAweEJBLCAweEJGKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RTgsIDB4QTEsIDB4QjUsIDB4MTMsIDB4NUEsIDB4Q0QsIDB4OTksIDB4OUMpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhCMCwgMHg5NSwgMHhBRCwgMHhGQywgMHhFMiwgMHg3RSwgMHhFNywgMHhGRSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDk2LCAweDZCLCAweEQxLCAweDM0LCAweDk5LCAweDUzLCAweDYzLCAweDBCKSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMzg0cjFfVF8zMV9ZW10gPSB7CisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDE5LCAweDhBLCAweDc3LCAweDVELCAweDJCLCAweEFCLCAweDAxLCAweDI4KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NEUsIDB4ODUsIDB4RDAsIDB4RDUsIDB4NDksIDB4ODMsIDB4NEQsIDB4NjApLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg4MSwgMHhDNiwgMHg5MSwgMHgzMCwgMHgzQiwgMHgwMCwgMHhBRiwgMHg3QSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDNBLCAweEFFLCAweDYxLCAweDA3LCAweEUxLCAweEI2LCAweEUyLCAweEM5KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4OTUsIDB4NDMsIDB4NDEsIDB4RkUsIDB4OUIsIDB4QjYsIDB4RjAsIDB4QTUpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhCNCwgMHg5NywgMHhBRSwgMHhBRCwgMHg4OSwgMHg4OCwgMHg5RSwgMHg0MSksCit9Oworc3RhdGljIGNvbnN0IG1iZWR0bHNfZWNwX3BvaW50IHNlY3AzODRyMV9UWzMyXSA9IHsKKyAgICBFQ1BfUE9JTlRfSU5JVF9YWV9aMShzZWNwMzg0cjFfVF8wX1gsIHNlY3AzODRyMV9UXzBfWSksCisgICAgRUNQX1BPSU5UX0lOSVRfWFlfWjAoc2VjcDM4NHIxX1RfMV9YLCBzZWNwMzg0cjFfVF8xX1kpLAorICAgIEVDUF9QT0lOVF9JTklUX1hZX1owKHNlY3AzODRyMV9UXzJfWCwgc2VjcDM4NHIxX1RfMl9ZKSwKKyAgICBFQ1BfUE9JTlRfSU5JVF9YWV9aMChzZWNwMzg0cjFfVF8zX1gsIHNlY3AzODRyMV9UXzNfWSksCisgICAgRUNQX1BPSU5UX0lOSVRfWFlfWjAoc2VjcDM4NHIxX1RfNF9YLCBzZWNwMzg0cjFfVF80X1kpLAorICAgIEVDUF9QT0lOVF9JTklUX1hZX1owKHNlY3AzODRyMV9UXzVfWCwgc2VjcDM4NHIxX1RfNV9ZKSwKKyAgICBFQ1BfUE9JTlRfSU5JVF9YWV9aMChzZWNwMzg0cjFfVF82X1gsIHNlY3AzODRyMV9UXzZfWSksCisgICAgRUNQX1BPSU5UX0lOSVRfWFlfWjAoc2VjcDM4NHIxX1RfN19YLCBzZWNwMzg0cjFfVF83X1kpLAorICAgIEVDUF9QT0lOVF9JTklUX1hZX1owKHNlY3AzODRyMV9UXzhfWCwgc2VjcDM4NHIxX1RfOF9ZKSwKKyAgICBFQ1BfUE9JTlRfSU5JVF9YWV9aMChzZWNwMzg0cjFfVF85X1gsIHNlY3AzODRyMV9UXzlfWSksCisgICAgRUNQX1BPSU5UX0lOSVRfWFlfWjAoc2VjcDM4NHIxX1RfMTBfWCwgc2VjcDM4NHIxX1RfMTBfWSksCisgICAgRUNQX1BPSU5UX0lOSVRfWFlfWjAoc2VjcDM4NHIxX1RfMTFfWCwgc2VjcDM4NHIxX1RfMTFfWSksCisgICAgRUNQX1BPSU5UX0lOSVRfWFlfWjAoc2VjcDM4NHIxX1RfMTJfWCwgc2VjcDM4NHIxX1RfMTJfWSksCisgICAgRUNQX1BPSU5UX0lOSVRfWFlfWjAoc2VjcDM4NHIxX1RfMTNfWCwgc2VjcDM4NHIxX1RfMTNfWSksCisgICAgRUNQX1BPSU5UX0lOSVRfWFlfWjAoc2VjcDM4NHIxX1RfMTRfWCwgc2VjcDM4NHIxX1RfMTRfWSksCisgICAgRUNQX1BPSU5UX0lOSVRfWFlfWjAoc2VjcDM4NHIxX1RfMTVfWCwgc2VjcDM4NHIxX1RfMTVfWSksCisgICAgRUNQX1BPSU5UX0lOSVRfWFlfWjAoc2VjcDM4NHIxX1RfMTZfWCwgc2VjcDM4NHIxX1RfMTZfWSksCisgICAgRUNQX1BPSU5UX0lOSVRfWFlfWjAoc2VjcDM4NHIxX1RfMTdfWCwgc2VjcDM4NHIxX1RfMTdfWSksCisgICAgRUNQX1BPSU5UX0lOSVRfWFlfWjAoc2VjcDM4NHIxX1RfMThfWCwgc2VjcDM4NHIxX1RfMThfWSksCisgICAgRUNQX1BPSU5UX0lOSVRfWFlfWjAoc2VjcDM4NHIxX1RfMTlfWCwgc2VjcDM4NHIxX1RfMTlfWSksCisgICAgRUNQX1BPSU5UX0lOSVRfWFlfWjAoc2VjcDM4NHIxX1RfMjBfWCwgc2VjcDM4NHIxX1RfMjBfWSksCisgICAgRUNQX1BPSU5UX0lOSVRfWFlfWjAoc2VjcDM4NHIxX1RfMjFfWCwgc2VjcDM4NHIxX1RfMjFfWSksCisgICAgRUNQX1BPSU5UX0lOSVRfWFlfWjAoc2VjcDM4NHIxX1RfMjJfWCwgc2VjcDM4NHIxX1RfMjJfWSksCisgICAgRUNQX1BPSU5UX0lOSVRfWFlfWjAoc2VjcDM4NHIxX1RfMjNfWCwgc2VjcDM4NHIxX1RfMjNfWSksCisgICAgRUNQX1BPSU5UX0lOSVRfWFlfWjAoc2VjcDM4NHIxX1RfMjRfWCwgc2VjcDM4NHIxX1RfMjRfWSksCisgICAgRUNQX1BPSU5UX0lOSVRfWFlfWjAoc2VjcDM4NHIxX1RfMjVfWCwgc2VjcDM4NHIxX1RfMjVfWSksCisgICAgRUNQX1BPSU5UX0lOSVRfWFlfWjAoc2VjcDM4NHIxX1RfMjZfWCwgc2VjcDM4NHIxX1RfMjZfWSksCisgICAgRUNQX1BPSU5UX0lOSVRfWFlfWjAoc2VjcDM4NHIxX1RfMjdfWCwgc2VjcDM4NHIxX1RfMjdfWSksCisgICAgRUNQX1BPSU5UX0lOSVRfWFlfWjAoc2VjcDM4NHIxX1RfMjhfWCwgc2VjcDM4NHIxX1RfMjhfWSksCisgICAgRUNQX1BPSU5UX0lOSVRfWFlfWjAoc2VjcDM4NHIxX1RfMjlfWCwgc2VjcDM4NHIxX1RfMjlfWSksCisgICAgRUNQX1BPSU5UX0lOSVRfWFlfWjAoc2VjcDM4NHIxX1RfMzBfWCwgc2VjcDM4NHIxX1RfMzBfWSksCisgICAgRUNQX1BPSU5UX0lOSVRfWFlfWjAoc2VjcDM4NHIxX1RfMzFfWCwgc2VjcDM4NHIxX1RfMzFfWSksCit9OworI2Vsc2UKKyNkZWZpbmUgc2VjcDM4NHIxX1QgTlVMTAorI2VuZGlmCisKKyNlbmRpZiAvKiBNQkVEVExTX0VDUF9EUF9TRUNQMzg0UjFfRU5BQkxFRCAqLworCisvKgorICogRG9tYWluIHBhcmFtZXRlcnMgZm9yIHNlY3A1MjFyMQorICovCisjaWYgZGVmaW5lZChNQkVEVExTX0VDUF9EUF9TRUNQNTIxUjFfRU5BQkxFRCkKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3A1MjFyMV9wW10gPSB7CisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEZGLCAweEZGLCAweEZGLCAweEZGLCAweEZGLCAweEZGLCAweEZGLCAweEZGKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RkYsIDB4RkYsIDB4RkYsIDB4RkYsIDB4RkYsIDB4RkYsIDB4RkYsIDB4RkYpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEZGLCAweEZGLCAweEZGLCAweEZGLCAweEZGLCAweEZGLCAweEZGLCAweEZGKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RkYsIDB4RkYsIDB4RkYsIDB4RkYsIDB4RkYsIDB4RkYsIDB4RkYsIDB4RkYpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEZGLCAweEZGLCAweEZGLCAweEZGLCAweEZGLCAweEZGLCAweEZGLCAweEZGKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RkYsIDB4RkYsIDB4RkYsIDB4RkYsIDB4RkYsIDB4RkYsIDB4RkYsIDB4RkYpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzIoMHhGRiwgMHgwMSksCit9Oworc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDUyMXIxX2JbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MDAsIDB4M0YsIDB4NTAsIDB4NkIsIDB4RDQsIDB4MUYsIDB4NDUsIDB4RUYpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhGMSwgMHgzNCwgMHgyQywgMHgzRCwgMHg4OCwgMHhERiwgMHg3MywgMHgzNSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDA3LCAweEJGLCAweEIxLCAweDNCLCAweEJELCAweEMwLCAweDUyLCAweDE2KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4N0IsIDB4OTMsIDB4N0UsIDB4RUMsIDB4NTEsIDB4MzksIDB4MTksIDB4NTYpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhFMSwgMHgwOSwgMHhGMSwgMHg4RSwgMHg5MSwgMHg4OSwgMHhCNCwgMHhCOCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEYzLCAweDE1LCAweEIzLCAweDk5LCAweDVCLCAweDcyLCAweERBLCAweEEyKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RUUsIDB4NDAsIDB4ODUsIDB4QjYsIDB4QTAsIDB4MjEsIDB4OUEsIDB4OTIpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgxRiwgMHg5QSwgMHgxQywgMHg4RSwgMHg2MSwgMHhCOSwgMHgzRSwgMHg5NSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfMigweDUxLCAweDAwKSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwNTIxcjFfZ3hbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NjYsIDB4QkQsIDB4RTUsIDB4QzIsIDB4MzEsIDB4N0UsIDB4N0UsIDB4RjkpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg5QiwgMHg0MiwgMHg2QSwgMHg4NSwgMHhDMSwgMHhCMywgMHg0OCwgMHgzMyksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweERFLCAweEE4LCAweEZGLCAweEEyLCAweDI3LCAweEMxLCAweDFELCAweEZFKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MjgsIDB4NTksIDB4RTcsIDB4RUYsIDB4NzcsIDB4NUUsIDB4NEIsIDB4QTEpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhCQSwgMHgzRCwgMHg0RCwgMHg2QiwgMHg2MCwgMHhBRiwgMHgyOCwgMHhGOCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDIxLCAweEI1LCAweDNGLCAweDA1LCAweDM5LCAweDgxLCAweDY0LCAweDlDKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NDIsIDB4QjQsIDB4OTUsIDB4MjMsIDB4NjYsIDB4Q0IsIDB4M0UsIDB4OUUpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhDRCwgMHhFOSwgMHgwNCwgMHgwNCwgMHhCNywgMHgwNiwgMHg4RSwgMHg4NSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfMigweEM2LCAweDAwKSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwNTIxcjFfZ3lbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NTAsIDB4NjYsIDB4RDEsIDB4OUYsIDB4NzYsIDB4OTQsIDB4QkUsIDB4ODgpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg0MCwgMHhDMiwgMHg3MiwgMHhBMiwgMHg4NiwgMHg3MCwgMHgzQywgMHgzNSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDYxLCAweDA3LCAweEFELCAweDNGLCAweDAxLCAweEI5LCAweDUwLCAweEM1KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NDAsIDB4MjYsIDB4RjQsIDB4NUUsIDB4OTksIDB4NzIsIDB4RUUsIDB4OTcpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgyQywgMHg2NiwgMHgzRSwgMHgyNywgMHgxNywgMHhCRCwgMHhBRiwgMHgxNyksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDY4LCAweDQ0LCAweDlCLCAweDU3LCAweDQ5LCAweDQ0LCAweEY1LCAweDk4KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RDksIDB4MUIsIDB4N0QsIDB4MkMsIDB4QjQsIDB4NUYsIDB4OEEsIDB4NUMpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgwNCwgMHhDMCwgMHgzQiwgMHg5QSwgMHg3OCwgMHg2QSwgMHgyOSwgMHgzOSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfMigweDE4LCAweDAxKSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwNTIxcjFfbltdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgwOSwgMHg2NCwgMHgzOCwgMHg5MSwgMHgxRSwgMHhCNywgMHg2RiwgMHhCQiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEFFLCAweDQ3LCAweDlDLCAweDg5LCAweEI4LCAweEM5LCAweEI1LCAweDNCKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RDAsIDB4QTUsIDB4MDksIDB4RjcsIDB4NDgsIDB4MDEsIDB4Q0MsIDB4N0YpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg2QiwgMHg5NiwgMHgyRiwgMHhCRiwgMHg4MywgMHg4NywgMHg4NiwgMHg1MSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEZBLCAweEZGLCAweEZGLCAweEZGLCAweEZGLCAweEZGLCAweEZGLCAweEZGKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RkYsIDB4RkYsIDB4RkYsIDB4RkYsIDB4RkYsIDB4RkYsIDB4RkYsIDB4RkYpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEZGLCAweEZGLCAweEZGLCAweEZGLCAweEZGLCAweEZGLCAweEZGLCAweEZGKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF8yKDB4RkYsIDB4MDEpLAorfTsKKyNpZiBNQkVEVExTX0VDUF9GSVhFRF9QT0lOVF9PUFRJTSA9PSAxCitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwNTIxcjFfVF8wX1hbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NjYsIDB4QkQsIDB4RTUsIDB4QzIsIDB4MzEsIDB4N0UsIDB4N0UsIDB4RjkpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg5QiwgMHg0MiwgMHg2QSwgMHg4NSwgMHhDMSwgMHhCMywgMHg0OCwgMHgzMyksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweERFLCAweEE4LCAweEZGLCAweEEyLCAweDI3LCAweEMxLCAweDFELCAweEZFKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MjgsIDB4NTksIDB4RTcsIDB4RUYsIDB4NzcsIDB4NUUsIDB4NEIsIDB4QTEpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhCQSwgMHgzRCwgMHg0RCwgMHg2QiwgMHg2MCwgMHhBRiwgMHgyOCwgMHhGOCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDIxLCAweEI1LCAweDNGLCAweDA1LCAweDM5LCAweDgxLCAweDY0LCAweDlDKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NDIsIDB4QjQsIDB4OTUsIDB4MjMsIDB4NjYsIDB4Q0IsIDB4M0UsIDB4OUUpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhDRCwgMHhFOSwgMHgwNCwgMHgwNCwgMHhCNywgMHgwNiwgMHg4RSwgMHg4NSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEM2LCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwKSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwNTIxcjFfVF8wX1lbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NTAsIDB4NjYsIDB4RDEsIDB4OUYsIDB4NzYsIDB4OTQsIDB4QkUsIDB4ODgpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg0MCwgMHhDMiwgMHg3MiwgMHhBMiwgMHg4NiwgMHg3MCwgMHgzQywgMHgzNSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDYxLCAweDA3LCAweEFELCAweDNGLCAweDAxLCAweEI5LCAweDUwLCAweEM1KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NDAsIDB4MjYsIDB4RjQsIDB4NUUsIDB4OTksIDB4NzIsIDB4RUUsIDB4OTcpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgyQywgMHg2NiwgMHgzRSwgMHgyNywgMHgxNywgMHhCRCwgMHhBRiwgMHgxNyksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDY4LCAweDQ0LCAweDlCLCAweDU3LCAweDQ5LCAweDQ0LCAweEY1LCAweDk4KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RDksIDB4MUIsIDB4N0QsIDB4MkMsIDB4QjQsIDB4NUYsIDB4OEEsIDB4NUMpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgwNCwgMHhDMCwgMHgzQiwgMHg5QSwgMHg3OCwgMHg2QSwgMHgyOSwgMHgzOSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDE4LCAweDAxLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwKSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwNTIxcjFfVF8xX1hbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MkYsIDB4QjEsIDB4MkQsIDB4RUIsIDB4MjcsIDB4MkYsIDB4RTgsIDB4REEpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg5OCwgMHg0QiwgMHg0NCwgMHgyNSwgMHhEQiwgMHg1QywgMHg1RiwgMHg2NyksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDEzLCAweDg1LCAweDI4LCAweDc4LCAweDJFLCAweDc1LCAweDM0LCAweDMyKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NjksIDB4NTcsIDB4MEYsIDB4NzMsIDB4NzgsIDB4N0EsIDB4RTMsIDB4NTMpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg4RCwgMHhEOCwgMHhFQywgMHhEQywgMHhEQSwgMHgwNCwgMHhBRCwgMHhBQiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDM0LCAweDhBLCAweDA5LCAweEYzLCAweDU4LCAweDc5LCAweEQ4LCAweDI5KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NjMsIDB4MDMsIDB4Q0IsIDB4NTAsIDB4MUEsIDB4N0YsIDB4NTYsIDB4MDApLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhGNiwgMHhBNiwgMHg3OCwgMHgzOCwgMHg4NSwgMHg2NywgMHgwQiwgMHg0MCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDgzLCAweDAxLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwKSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwNTIxcjFfVF8xX1lbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4OEEsIDB4RDUsIDB4RDIsIDB4MjIsIDB4QzQsIDB4MDAsIDB4M0IsIDB4QkEpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhENSwgMHg5MywgMHgwRSwgMHg3QiwgMHg4NSwgMHg1MSwgMHhDMywgMHgwNiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDNELCAweEE2LCAweDVGLCAweDU0LCAweDQ5LCAweDAyLCAweDgxLCAweDc4KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MjIsIDB4RTksIDB4NkIsIDB4M0EsIDB4OTIsIDB4RTcsIDB4NzIsIDB4MUQpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg2RiwgMHg1RiwgMHgyOCwgMHg5RSwgMHg5MSwgMHgyNywgMHg4OCwgMHhFMyksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEVGLCAweDI4LCAweDMxLCAweEIzLCAweDg0LCAweENBLCAweDEyLCAweDMyKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4M0QsIDB4RjksIDB4QUMsIDB4MjIsIDB4MTAsIDB4MEEsIDB4NjQsIDB4NDEpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhFOSwgMHhDNiwgMHgzMywgMHgxRiwgMHg2OSwgMHgxOSwgMHgxOCwgMHhCRiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEJFLCAweDAxLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwKSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwNTIxcjFfVF8yX1hbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QTAsIDB4NDgsIDB4QjgsIDB4QzcsIDB4MzcsIDB4NUEsIDB4MDAsIDB4MzYpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgwNywgMHhDQywgMHgzMiwgMHhFMCwgMHhFRSwgMHgwMywgMHhDMiwgMHhCQSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEM0LCAweDI5LCAweEMyLCAweEU0LCAweDZFLCAweDI0LCAweDIwLCAweDhEKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MDYsIDB4NkIsIDB4N0YsIDB4N0IsIDB4RjksIDB4QjAsIDB4QjgsIDB4MTMpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgxRCwgMHg3QiwgMHgzQywgMHhFMSwgMHgxOSwgMHhBMSwgMHgyMywgMHgwMiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDJBLCAweEUzLCAweEMyLCAweDUzLCAweEMwLCAweDA3LCAweDEzLCAweEE5KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MDcsIDB4RkUsIDB4MzYsIDB4MzUsIDB4OUYsIDB4NUUsIDB4NTksIDB4Q0UpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgxRCwgMHg1NSwgMHg4OSwgMHg4NCwgMHhCQywgMHhFRiwgMHhBMiwgMHhDMiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDE5LCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwKSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwNTIxcjFfVF8yX1lbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RkQsIDB4MUEsIDB4MDgsIDB4NjcsIDB4QjQsIDB4RTcsIDB4MjIsIDB4RUQpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg3NiwgMHgyNiwgMHhERiwgMHg4MSwgMHgzQywgMHg1RiwgMHgxQywgMHhEQSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEUwLCAweDRELCAweEQwLCAweDBBLCAweDQ4LCAweDA2LCAweEY0LCAweDQ4KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NzMsIDB4MTgsIDB4MzksIDB4RjcsIDB4RDEsIDB4MjAsIDB4NzcsIDB4OEQpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg3OCwgMHg4RiwgMHg0NCwgMHgxMywgMHhDQiwgMHg3OCwgMHgxMSwgMHgxMSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDMzLCAweEUyLCAweDQ5LCAweEVBLCAweDQzLCAweDc5LCAweDA4LCAweDM5KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MDEsIDB4RDEsIDB4RDgsIDB4NzMsIDB4MkMsIDB4NzEsIDB4MkYsIDB4NjkpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgyMSwgMHhFNSwgMHhFNywgMHhGNCwgMHg0NiwgMHhBQiwgMHgyMCwgMHhDQSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDVBLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwKSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwNTIxcjFfVF8zX1hbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4OEMsIDB4MEIsIDB4QjksIDB4NzEsIDB4MUEsIDB4MjcsIDB4QjcsIDB4QTcpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgyQSwgMHhBMiwgMHgyQywgMHhEMSwgMHhEQSwgMHhCQywgMHhDMSwgMHhCRCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDEwLCAweEEzLCAweDEwLCAweDFGLCAweDkwLCAweEYyLCAweEE1LCAweDUyKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MjgsIDB4RkIsIDB4MjAsIDB4RjQsIDB4QzAsIDB4NzAsIDB4QzAsIDB4RjUpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg4RiwgMHhBNywgMHg5OSwgMHhGMCwgMHhBNSwgMHhEMywgMHgwOSwgMHhERCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDI2LCAweEU4LCAweDE0LCAweDM5LCAweEJFLCAweENCLCAweDYwLCAweEFGKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4OUYsIDB4RDYsIDB4MTQsIDB4QTksIDB4QzksIDB4MjAsIDB4QzMsIDB4RUEpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg1RCwgMHhBOCwgMHg1QiwgMHhGRCwgMHgyRCwgMHg5NiwgMHhCQywgMHg3OCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEMwLCAweDAxLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwKSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwNTIxcjFfVF8zX1lbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4OUQsIDB4MDQsIDB4NDUsIDB4QkUsIDB4Q0UsIDB4NzUsIDB4OTUsIDB4RjYpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhDQywgMHhEQSwgMHg1OCwgMHg0OSwgMHgzNSwgMHgwOSwgMHg4RCwgMHg0MSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDc2LCAweEYwLCAweEMwLCAweDM2LCAweEYyLCAweEE2LCAweDJELCAweDE0KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RTcsIDB4RkMsIDB4M0QsIDB4QTgsIDB4RkIsIDB4M0MsIDB4RDIsIDB4NTEpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgwMSwgMHg0RCwgMHg3MSwgMHgwOSwgMHgxOCwgMHg0MiwgMHhGMCwgMHgyRCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDhELCAweEMxLCAweENFLCAweDlFLCAweDZBLCAweDQ5LCAweDYwLCAweDEyKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QUQsIDB4QjEsIDB4MDAsIDB4RjcsIDB4QTEsIDB4N0EsIDB4MzEsIDB4QjQpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg0MSwgMHhDMywgMHg4NiwgMHhDRCwgMHgyMCwgMHg0QSwgMHgxNywgMHg4NiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDZDLCAweDAxLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwKSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwNTIxcjFfVF80X1hbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4OTgsIDB4QUIsIDB4OEIsIDB4NDcsIDB4OEQsIDB4QUEsIDB4QTYsIDB4NUIpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhDNCwgMHg5NywgMHhGMCwgMHhCQywgMHgyRCwgMHhEQywgMHg5RCwgMHg4NCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDAxLCAweDg2LCAweEIwLCAweDc0LCAweEIyLCAweEY0LCAweEY2LCAweDY3KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QUMsIDB4QkQsIDB4QUMsIDB4RTMsIDB4OEYsIDB4NDMsIDB4NUMsIDB4QjEpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgzNywgMHhDMywgMHhFMiwgMHg2RSwgMHgyNSwgMHg0OSwgMHhDRCwgMHgwQiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDY0LCAweDVFLCAweDA4LCAweEIzLCAweEI5LCAweEFDLCAweDVGLCAweEQxKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MDgsIDB4QjcsIDB4RDEsIDB4RjQsIDB4REMsIDB4MTksIDB4RTksIDB4QzgpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg0OSwgMHhFNCwgMHhGQSwgMHhFMSwgMHgzNiwgMHgzRSwgMHhFRCwgMHg2RSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDBBLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwKSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwNTIxcjFfVF80X1lbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MDAsIDB4NjcsIDB4OTIsIDB4ODQsIDB4NkUsIDB4NDgsIDB4MDMsIDB4NTEpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg5RSwgMHg5NSwgMHhFRiwgMHg4RiwgMHhCMiwgMHg4MiwgMHg2QiwgMHgxQyksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDhELCAweEZBLCAweEI5LCAweDU1LCAweDIzLCAweEZFLCAweDA5LCAweEIzKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RUYsIDB4NzksIDB4ODUsIDB4NEIsIDB4MEUsIDB4RDQsIDB4MzUsIDB4REIpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg5QSwgMHgyNywgMHg0NSwgMHg4MSwgMHhFMCwgMHg4OCwgMHg1MiwgMHhBRCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDE3LCAweDYzLCAweEEyLCAweDRCLCAweEJDLCAweDVELCAweEIxLCAweDkyKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MjgsIDB4OEMsIDB4ODMsIDB4RDksIDB4M0UsIDB4RDMsIDB4NDIsIDB4REEpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg5OSwgMHgwMywgMHgzQSwgMHgzMSwgMHhCQSwgMHhFOSwgMHgzQSwgMHhEMSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDQ3LCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwKSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwNTIxcjFfVF81X1hbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MzUsIDB4MTAsIDB4Q0QsIDB4MkQsIDB4MDAsIDB4RkUsIDB4MzIsIDB4QTcpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhFNCwgMHg2RSwgMHgxRiwgMHhEQSwgMHhGOCwgMHg2RiwgMHg0RCwgMHgwMyksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDA5LCAweDc5LCAweDdELCAweDA5LCAweEU1LCAweEQzLCAweDAzLCAweDIxKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NTgsIDB4QzMsIDB4QkUsIDB4REYsIDB4MDcsIDB4NjUsIDB4NDksIDB4Q0MpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgwOCwgMHg1NywgMHgzMywgMHhFRiwgMHhBRSwgMHg0RiwgMHgwNCwgMHgyNyksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDlBLCAweEU5LCAweDlCLCAweEZFLCAweEJGLCAweEU2LCAweDg1LCAweEY2KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QkQsIDB4QkEsIDB4QUEsIDB4MDYsIDB4QzQsIDB4QzYsIDB4QjgsIDB4NTcpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgwQywgMHg4MywgMHgwMSwgMHhBOSwgMHhGNiwgMHg1MSwgMHhFNywgMHhCOCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDFCLCAweDAxLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwKSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwNTIxcjFfVF81X1lbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QjksIDB4QTYsIDB4MTUsIDB4OEUsIDB4QUIsIDB4MUYsIDB4MTAsIDB4ODcpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg3NCwgMHgwOCwgMHgyNywgMHgxQSwgMHhBMSwgMHgyMSwgMHhBRCwgMHhGNSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDAyLCAweDA5LCAweDkwLCAweDZFLCAweDUwLCAweDkwLCAweDlBLCAweDVEKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4ODYsIDB4OUEsIDB4RkUsIDB4RDcsIDB4QTEsIDB4RjUsIDB4QTIsIDB4MTUpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhFOCwgMHg3RCwgMHhFMywgMHhEQywgMHgyMSwgMHhGQiwgMHhBNCwgMHg3QiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEI5LCAweEJGLCAweDA3LCAweEZGLCAweDQ1LCAweERGLCAweDUxLCAweDc3KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MEIsIDB4NUMsIDB4MzQsIDB4MDIsIDB4NjIsIDB4OUIsIDB4MDgsIDB4MTIpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg4NiwgMHhDRSwgMHg5QSwgMHg2QSwgMHhFQywgMHg3NSwgMHhGNiwgMHg0NiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDZELCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwKSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwNTIxcjFfVF82X1hbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RTYsIDB4NTksIDB4RjQsIDB4NzgsIDB4M0MsIDB4NjAsIDB4QjEsIDB4NEEpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgzRSwgMHgzNywgMHg4NCwgMHg2QSwgMHhEQywgMHhGMiwgMHg5QSwgMHg3RCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDQwLCAweDlBLCAweDlBLCAweDE1LCAweDM2LCAweEUwLCAweDJCLCAweDJEKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RUMsIDB4MzgsIDB4OUMsIDB4NTAsIDB4M0QsIDB4MUUsIDB4MzcsIDB4ODIpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhCNywgMHg3OSwgMHhGMCwgMHg5MiwgMHhGMiwgMHg4QiwgMHgxOCwgMHg4MiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDE3LCAweEUwLCAweDgyLCAweDFFLCAweDgwLCAweDgyLCAweDRCLCAweEQ3KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RkEsIDB4QkIsIDB4NTksIDB4NkIsIDB4OEEsIDB4NzcsIDB4NDEsIDB4NDApLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhBNywgMHhGOSwgMHhENCwgMHhCOCwgMHg0QSwgMHg4MiwgMHhDRiwgMHg0MCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDVELCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwKSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwNTIxcjFfVF82X1lbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MUUsIDB4OEMsIDB4QzgsIDB4OUIsIDB4NzIsIDB4OUUsIDB4RjcsIDB4RjkpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhCOCwgMHhDRSwgMHhFOSwgMHg3NywgMHgwQSwgMHgxOSwgMHg1OSwgMHg4NCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDlELCAweEExLCAweDQxLCAweDZBLCAweDcyLCAweDRCLCAweEI0LCAweERDKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MEIsIDB4MzUsIDB4NDMsIDB4RTIsIDB4OEMsIDB4QkUsIDB4MEQsIDB4RTMpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhDMSwgMHhFQiwgMHhBRCwgMHhGMywgMHhBOSwgMHhBNiwgMHg2OCwgMHhBMSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDgxLCAweDJGLCAweEUyLCAweDQ4LCAweDBDLCAweERCLCAweDFGLCAweDQyKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RDEsIDB4MUUsIDB4NjAsIDB4OUIsIDB4MkEsIDB4RDIsIDB4QzEsIDB4M0MpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhDMCwgMHg2NCwgMHhCNSwgMHhEMiwgMHhGNiwgMHhGNiwgMHg2RSwgMHgyMiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDcwLCAweDAxLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwKSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwNTIxcjFfVF83X1hbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QzYsIDB4M0QsIDB4MzAsIDB4NzgsIDB4MTAsIDB4MTgsIDB4NDEsIDB4NTEpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg5NiwgMHgxRCwgMHgxQywgMHhFMCwgMHg2RCwgMHg4MywgMHhEMSwgMHg5MyksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDdCLCAweDAzLCAweDBCLCAweEY1LCAweDJGLCAweDZDLCAweDA0LCAweDk4KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NkMsIDB4M0UsIDB4RDUsIDB4RkMsIDB4MzEsIDB4NUIsIDB4M0EsIDB4RUIpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg1MCwgMHg4MiwgMHgyRiwgMHhGQiwgMHhGRSwgMHhGOCwgMHg3NiwgMHgzOSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDg1LCAweDI2LCAweERBLCAweDlDLCAweDM2LCAweEY1LCAweDkzLCAweEQxKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NEMsIDB4RTcsIDB4NkUsIDB4RDIsIDB4N0QsIDB4ODEsIDB4MDksIDB4QzYpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhEMywgMHgwMywgMHhGOSwgMHg1OCwgMHg0OCwgMHgyNCwgMHhBMiwgMHhFRSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEU5LCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwKSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwNTIxcjFfVF83X1lbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MUIsIDB4NzksIDB4MEMsIDB4OEUsIDB4NkIsIDB4OTUsIDB4RjMsIDB4QzQpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhGNCwgMHgxMCwgMHg1QywgMHg4NywgMHgwMywgMHgzOSwgMHhDRiwgMHg2OCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEFELCAweEYwLCAweEY3LCAweEMxLCAweDA3LCAweEE0LCAweEY0LCAweDNGKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MzIsIDB4RTgsIDB4MDIsIDB4ODksIDB4NjUsIDB4QzQsIDB4NzIsIDB4MzYpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhCNCwgMHg4OCwgMHhFQSwgMHg5NiwgMHg2NywgMHgwQiwgMHg1RCwgMHhERiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEE4LCAweDc1LCAweDYwLCAweEE4LCAweEJELCAweDc0LCAweERGLCAweDY4KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NkUsIDB4RTUsIDB4NzEsIDB4NTAsIDB4NjcsIDB4RDAsIDB4RDIsIDB4RTYpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhENSwgMHhGQywgMHhFNSwgMHhDNywgMHg3NywgMHhCMCwgMHg3RiwgMHg4QyksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEYxLCAweDAxLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwKSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwNTIxcjFfVF84X1hbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4OTcsIDB4ODYsIDB4NjksIDB4Q0QsIDB4MEQsIDB4OUEsIDB4QkQsIDB4NjYpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg1OCwgMHgxNywgMHhCQywgMHhCQiwgMHg1OSwgMHg4NSwgMHg3RCwgMHgwRSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDhELCAweEE4LCAweDc2LCAweEFDLCAweDgwLCAweEE5LCAweDcyLCAweEUwKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NzQsIDB4NzgsIDB4QzEsIDB4RTIsIDB4NEQsIDB4QUYsIDB4RjksIDB4M0MpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhBRCwgMHg5NywgMHg4RSwgMHg3NCwgMHhDNCwgMHg0QiwgMHhCMiwgMHg4NSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEVBLCAweEQ4LCAweEY2LCAweEYzLCAweEFGLCAweDJGLCAweDUyLCAweEU1KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4OTUsIDB4NTcsIDB4RjQsIDB4Q0UsIDB4RUUsIDB4NDMsIDB4RUQsIDB4NjApLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg3RCwgMHg0NiwgMHgzOCwgMHhERSwgMHgyMCwgMHhGRCwgMHg1OSwgMHgxOCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEQ3LCAweDAxLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwKSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwNTIxcjFfVF84X1lbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MUMsIDB4MTgsIDB4RTgsIDB4NTgsIDB4QjksIDB4NzYsIDB4MkMsIDB4RTYpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhFRCwgMHg1NCwgMHhFNCwgMHhGRSwgMHhDNywgMHhCQywgMHgzMSwgMHgzNyksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEY1LCAweEY4LCAweDg5LCAweEVFLCAweDcwLCAweEI1LCAweEIwLCAweDJDKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4ODMsIDB4MjIsIDB4MjYsIDB4OUEsIDB4NTMsIDB4QjksIDB4MzgsIDB4MEEpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg3NCwgMHhBNywgMHgxOSwgMHg4QywgMHg3NCwgMHg3RSwgMHg4OCwgMHg0NiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEI0LCAweERBLCAweDBBLCAweEU4LCAweERBLCAweEE1LCAweEJFLCAweDFEKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4OTAsIDB4NUMsIDB4RjcsIDB4QjEsIDB4MEMsIDB4NzIsIDB4RkIsIDB4MDkpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg3OCwgMHhFMiwgMHgyMywgMHhFNywgMHg0NiwgMHhCNywgMHhFMCwgMHg5MSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEM1LCAweDAxLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwKSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwNTIxcjFfVF85X1hbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4M0EsIDB4MzYsIDB4QkMsIDB4QkQsIDB4NDgsIDB4MTEsIDB4OEUsIDB4NzIpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhBQiwgMHhCQiwgMHhBMSwgMHhGNywgMHgwQiwgMHg5RSwgMHhCRiwgMHhERiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDY4LCAweDI4LCAweEUxLCAweEEyLCAweDhGLCAweEZDLCAweEZDLCAweEQ2KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4ODEsIDB4RkUsIDB4MTksIDB4MEEsIDB4RTUsIDB4RTcsIDB4NjksIDB4MzkpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg1RSwgMHhDRCwgMHgxMiwgMHhGNSwgMHhCRSwgMHhEMywgMHgwNCwgMHhGMSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEY1LCAweEE4LCAweDBELCAweDgxLCAweDU5LCAweEM0LCAweDc5LCAweDk4KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QTMsIDB4RjMsIDB4NEIsIDB4OTIsIDB4NjUsIDB4QzMsIDB4MzEsIDB4QUQpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg3NSwgMHhCNSwgMHg0RiwgMHg0RCwgMHg5MSwgMHhENCwgMHhFMiwgMHhCMiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDUxLCAweDAxLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwKSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwNTIxcjFfVF85X1lbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NzIsIDB4MDksIDB4NDEsIDB4NzksIDB4MUQsIDB4NEQsIDB4MEQsIDB4MzMpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhCQiwgMHgzMSwgMHgxOCwgMHhCQSwgMHhBMCwgMHhGMiwgMHg2RSwgMHg3RSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDkzLCAweDVCLCAweDRELCAweDRGLCAweEFGLCAweEM5LCAweDhDLCAweEExKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NDgsIDB4OTksIDB4OUMsIDB4MDYsIDB4NjgsIDB4REUsIDB4RDgsIDB4MjkpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhBMCwgMHgwNCwgMHhFMSwgMHhCNSwgMHg5RCwgMHgwMCwgMHhCQywgMHhCOCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDYxLCAweDk1LCAweDkyLCAweDhELCAweDcyLCAweEQzLCAweDM3LCAweDQyKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QUIsIDB4NEIsIDB4MjcsIDB4QTIsIDB4RTgsIDB4QTQsIDB4MjYsIDB4QTEpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg0RiwgMHg0NSwgMHg5QywgMHhBOSwgMHhDQiwgMHg5RiwgMHhCQSwgMHg4NSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweENCLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwKSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwNTIxcjFfVF8xMF9YW10gPSB7CisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDA4LCAweDdFLCAweDFCLCAweDY0LCAweEY0LCAweEU4LCAweEE1LCAweDU1KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RjcsIDB4MjAsIDB4QTksIDB4Q0EsIDB4RjMsIDB4ODksIDB4RTUsIDB4RTEpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg4MywgMHhFRCwgMHhGQywgMHhBQiwgMHhEOSwgMHgwQSwgMHhCOSwgMHgwNyksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDA4LCAweDZGLCAweDQ2LCAweDdDLCAweENELCAweDc4LCAweEZGLCAweDA1KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NjksIDB4QUIsIDB4NzEsIDB4NUEsIDB4OTQsIDB4QUIsIDB4MjAsIDB4MjApLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhDMiwgMHgyRSwgMHhFRSwgMHg4NywgMHg1NywgMHgxRiwgMHhBRCwgMHhEMyksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDkxLCAweDRDLCAweDNELCAweEZCLCAweDdFLCAweEExLCAweDhCLCAweDA3KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NjksIDB4Q0YsIDB4MDcsIDB4ODYsIDB4QkEsIDB4NTMsIDB4MzcsIDB4Q0YpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgzOCwgMHgwMSwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCksCit9Oworc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDUyMXIxX1RfMTBfWVtdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgwMCwgMHgyNiwgMHhCMiwgMHhCOSwgMHhFMiwgMHg5MSwgMHhFMywgMHhCNSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDc5LCAweEM5LCAweDU0LCAweDg0LCAweDA4LCAweDNELCAweDBCLCAweEQyKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NUQsIDB4QTgsIDB4NzcsIDB4MkYsIDB4NjQsIDB4NDUsIDB4OTksIDB4NEMpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg4NywgMHg5NiwgMHgxNiwgMHgxRiwgMHhEQiwgMHg5NiwgMHgyOCwgMHg5NyksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDgzLCAweDJCLCAweDhELCAweEZGLCAweEEyLCAweDRGLCAweDU1LCAweEQzKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NzEsIDB4RTYsIDB4NDgsIDB4QkQsIDB4OTksIDB4M0QsIDB4MTIsIDB4NTcpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgzRiwgMHg4NCwgMHg1OSwgMHhEQSwgMHhCOSwgMHhCNiwgMHg2NiwgMHgxMiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDZELCAweDc4LCAweDQxLCAweDkyLCAweERGLCAweEY0LCAweDNGLCAweDYzKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MUYsIDB4MDEsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDApLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3A1MjFyMV9UXzExX1hbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4N0UsIDB4ODYsIDB4NkYsIDB4NEYsIDB4QkYsIDB4NjcsIDB4REYsIDB4MkYpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhGMiwgMHgyQiwgMHgxRSwgMHg1RiwgMHgwMCwgMHhFQSwgMHhGNiwgMHg1NiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDkwLCAweEI5LCAweDZBLCAweDg5LCAweEQ4LCAweEMwLCAweEQ3LCAweEE3KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4Q0IsIDB4OUEsIDB4MzIsIDB4MjMsIDB4QTAsIDB4MDIsIDB4OTEsIDB4NTgpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg0MiwgMHg3RiwgMHg2QSwgMHgxNSwgMHg2NCwgMHg2QSwgMHg4QiwgMHhCQiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDhBLCAweDU3LCAweDgyLCAweDU4LCAweEE5LCAweDU2LCAweEI1LCAweEZCKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4REQsIDB4NTAsIDB4OTIsIDB4NjAsIDB4Q0MsIDB4ODEsIDB4MjQsIDB4QTgpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgzNiwgMHgzRCwgMHhBRCwgMHhEQSwgMHhEOSwgMHg1MSwgMHgzRSwgMHg1NyksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDVELCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwKSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwNTIxcjFfVF8xMV9ZW10gPSB7CisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEVDLCAweEZFLCAweDhGLCAweEIwLCAweDBCLCAweERFLCAweDJFLCAweDdFKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NzksIDB4RDIsIDB4QkUsIDB4RUYsIDB4QUMsIDB4NzYsIDB4NzEsIDB4QTMpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg1NSwgMHhFOCwgMHg3MiwgMHgwQiwgMHhBQywgMHhGRSwgMHhDQSwgMHg1QSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEFELCAweDVCLCAweEM3LCAweEZDLCAweEUzLCAweDNDLCAweDdDLCAweDRDKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QTEsIDB4MDQsIDB4QTcsIDB4QjksIDB4OUIsIDB4OTMsIDB4QzAsIDB4MkYpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg0MSwgMHg0OCwgMHg0QiwgMHg4RSwgMHgzMiwgMHhDNSwgMHhGMCwgMHg2QiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEIwLCAweDQyLCAweDA3LCAweEMxLCAweEYyLCAweEYxLCAweDcyLCAweDVCKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MUUsIDB4MzcsIDB4NTQsIDB4OUMsIDB4ODgsIDB4RDIsIDB4NjIsIDB4QUEpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhDMSwgMHgwMSwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCksCit9Oworc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDUyMXIxX1RfMTJfWFtdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhDMiwgMHgxOSwgMHg4QSwgMHg4OSwgMHg1OCwgMHhBMiwgMHgwRiwgMHhEQiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDAxLCAweENDLCAweDRDLCAweDk3LCAweDMwLCAweDY2LCAweDM0LCAweDI2KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4ODMsIDB4NkEsIDB4MUUsIDB4MUYsIDB4REIsIDB4QzksIDB4NUUsIDB4MTMpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgxQiwgMHg0RCwgMHg0OSwgMHhGRiwgMHg5QiwgMHg5QywgMHhBQywgMHg5QiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEQ3LCAweEU0LCAweDRCLCAweEYyLCAweEQ0LCAweDFBLCAweEQyLCAweDc4KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4Q0QsIDB4REEsIDB4RTgsIDB4NjEsIDB4OUYsIDB4QzgsIDB4NDksIDB4MzIpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg1MSwgMHhDQiwgMHhGMiwgMHgyRCwgMHg4NSwgMHhGNiwgMHg4RCwgMHg1MiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEI3LCAweEM1LCAweENELCAweDJDLCAweDc5LCAweEM2LCAweDBFLCAweDRGKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4REIsIDB4MDEsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDApLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3A1MjFyMV9UXzEyX1lbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NzMsIDB4MUQsIDB4NTUsIDB4MEYsIDB4RjgsIDB4MjIsIDB4OUYsIDB4NzgpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg3NiwgMHg1NiwgMHhCQSwgMHhFNywgMHg1NywgMHgzMiwgMHhFQywgMHg0MiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDY1LCAweDlBLCAweEM2LCAweDRDLCAweDA5LCAweEM0LCAweDUyLCAweDNGKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QjYsIDB4MUUsIDB4NkYsIDB4RjQsIDB4N0QsIDB4MjcsIDB4REQsIDB4QUYpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg5NCwgMHgxMSwgMHgxNiwgMHhFQywgMHg3OSwgMHg4MywgMHhBRCwgMHhBRSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDQ2LCAweDRFLCAweDkyLCAweDFGLCAweDE5LCAweDdELCAweDY1LCAweERDKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MDksIDB4RkYsIDB4NzgsIDB4MTUsIDB4NDUsIDB4NjMsIDB4MzIsIDB4RTQpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhCRiwgMHg5MSwgMHhEMCwgMHg3OCwgMHg1OCwgMHhEQSwgMHg1MCwgMHg0NyksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDczLCAweDAxLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwKSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwNTIxcjFfVF8xM19YW10gPSB7CisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDIzLCAweERFLCAweDQwLCAweEY2LCAweDQxLCAweEI0LCAweDNCLCAweDk1KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QzYsIDB4OEQsIDB4RTAsIDB4RTEsIDB4QTksIDB4RjAsIDB4MzUsIDB4NUQpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhFNiwgMHhENCwgMHhCQSwgMHg3QiwgMHhDQywgMHgxQiwgMHgzQSwgMHgzMiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEQwLCAweDVBLCAweDJFLCAweDc0LCAweDQ3LCAweDE0LCAweEMzLCAweDREKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4N0QsIDB4RjAsIDB4OEIsIDB4MDYsIDB4MTUsIDB4OEUsIDB4MEUsIDB4Q0EpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhCNSwgMHhEMiwgMHhFQiwgMHg5NywgMHg1MCwgMHg3RCwgMHgzMSwgMHhGQyksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDQyLCAweDkzLCAweDRDLCAweERCLCAweDk3LCAweDc5LCAweDQ0LCAweEY1KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4OUMsIDB4QTIsIDB4QTAsIDB4MEIsIDB4QzgsIDB4M0EsIDB4OEEsIDB4RjkpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg2MSwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCksCit9Oworc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDUyMXIxX1RfMTNfWVtdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg3OSwgMHg1MCwgMHg5MiwgMHg5RSwgMHgyNCwgMHgxRiwgMHhDQiwgMHg0QyksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEQzLCAweDE2LCAweEM5LCAweEM1LCAweDNELCAweDVBLCAweEFGLCAweDk3KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MTgsIDB4RTMsIDB4OTcsIDB4RTQsIDB4QTgsIDB4NTAsIDB4RjYsIDB4N0UpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg0NSwgMHg1NywgMHg5NywgMHg0MiwgMHg3OCwgMHg5MiwgMHg0OSwgMHgwRCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEE1LCAweEVCLCAweDYyLCAweDI0LCAweEZCLCAweDhGLCAweDMyLCAweENGKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RjMsIDB4MEMsIDB4MzYsIDB4NkUsIDB4OEYsIDB4RTgsIDB4RTgsIDB4OEUpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhDMiwgMHhEMywgMHg3QywgMHhDNywgMHg4RCwgMHgzRiwgMHg1QywgMHhFMSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDZBLCAweDY0LCAweDZBLCAweDczLCAweDEwLCAweDc5LCAweEI4LCAweDVBKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4Q0IsIDB4MDEsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDApLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3A1MjFyMV9UXzE0X1hbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NTEsIDB4RjksIDB4RUYsIDB4QTUsIDB4MjAsIDB4NEEsIDB4NUMsIDB4QTEpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgyRiwgMHhGMywgMHhGNCwgMHg0OSwgMHg1QiwgMHg3MywgMHhBQSwgMHgxQiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEM2LCAweEYyLCAweEVBLCAweDBGLCAweDAwLCAweEFELCAweDUzLCAweEFCKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MDMsIDB4QjgsIDB4NjYsIDB4RUQsIDB4QzQsIDB4MkIsIDB4NEMsIDB4MzUpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgzQSwgMHgyRiwgMHhDMSwgMHg5QSwgMHgzNywgMHhEMiwgMHg3RiwgMHg1OCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDI5LCAweEE3LCAweDgxLCAweDM4LCAweDY0LCAweEM5LCAweDM3LCAweDM4KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QkUsIDB4M0IsIDB4NkMsIDB4OUYsIDB4NUIsIDB4RDksIDB4OEIsIDB4MUQpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhCNiwgMHgxNCwgMHhEOSwgMHgwOCwgMHhEOCwgMHhEMiwgMHg3RSwgMHgyMyksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDFDLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwKSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwNTIxcjFfVF8xNF9ZW10gPSB7CisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDE1LCAweDcxLCAweEU2LCAweDNELCAweEQxLCAweEIwLCAweEU3LCAweENEKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NUIsIDB4ODEsIDB4MjMsIDB4RUMsIDB4MkQsIDB4NDIsIDB4NDUsIDB4RTYpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg1MSwgMHg1QiwgMHg0NCwgMHg2QiwgMHg4OSwgMHgwMywgMHg2NywgMHgyOCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDg0LCAweDI3LCAweEFFLCAweDgwLCAweDVBLCAweDMzLCAweEJFLCAweDExKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RTMsIDB4QjYsIDB4NjQsIDB4MUEsIDB4REYsIDB4RDMsIDB4ODUsIDB4OTEpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg2NywgMHg4QywgMHgyMiwgMHhCQSwgMHhEMCwgMHhCRCwgMHhDQywgMHhBMCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEY3LCAweDNDLCAweDAxLCAweDNBLCAweEZGLCAweDlELCAweEM3LCAweDZCKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MEMsIDB4QzcsIDB4NjQsIDB4QjQsIDB4NTksIDB4NEUsIDB4OUYsIDB4MjIpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg4NSwgMHgwMSwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCksCit9Oworc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDUyMXIxX1RfMTVfWFtdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhBMSwgMHgzNCwgMHgwQSwgMHg0MSwgMHg5NCwgMHhBOCwgMHhGMiwgMHhCNyksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEY2LCAweEQ0LCAweEU0LCAweEYwLCAweDk3LCAweDQ1LCAweDZELCAweENBKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4OEYsIDB4MUYsIDB4NEQsIDB4NkQsIDB4RkUsIDB4QTAsIDB4QzQsIDB4ODQpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgxRCwgMHgyOCwgMHg1QywgMHg0MCwgMHhCQiwgMHg2NSwgMHhENCwgMHg0MiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDk4LCAweEE4LCAweDg3LCAweDM1LCAweDIwLCAweDNBLCAweDg5LCAweDQ0KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RDYsIDB4RkQsIDB4NEYsIDB4QUIsIDB4MkQsIDB4RDEsIDB4RDAsIDB4QzApLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg4NiwgMHhFOCwgMHgwMCwgMHhGQywgMHg2OSwgMHg1MiwgMHhGOCwgMHhENSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEUxLCAweDlBLCAweDk5LCAweEUxLCAweERDLCAweDlDLCAweDNGLCAweEQ5KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4OTksIDB4MDEsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDApLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3A1MjFyMV9UXzE1X1lbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MTIsIDB4MDgsIDB4OTgsIDB4RDksIDB4Q0EsIDB4NzMsIDB4RDUsIDB4QTkpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhCOSwgMHgyQywgMHhFMCwgMHhBNywgMHgzRSwgMHg5MSwgMHhENywgMHg4NyksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDY4LCAweDA0LCAweEIwLCAweDU0LCAweDA5LCAweEY0LCAweDcyLCAweEI3KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QzgsIDB4RUUsIDB4MjgsIDB4Q0MsIDB4RTgsIDB4NTAsIDB4NzgsIDB4MjApLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgwRCwgMHg5MSwgMHgwMywgMHg3NiwgMHhEQiwgMHg2OCwgMHgyNCwgMHg3NyksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDdBLCAweEUwLCAweDU2LCAweEIyLCAweDVELCAweDEyLCAweEQzLCAweEI1KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MEQsIDB4NDIsIDB4NTksIDB4OEIsIDB4REYsIDB4NjcsIDB4QjUsIDB4QkUpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhEMSwgMHhDQywgMHhFNSwgMHgzMSwgMHg1MywgMHg3QSwgMHg0NiwgMHhCMyksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweERBLCAweDAxLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwKSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwNTIxcjFfVF8xNl9YW10gPSB7CisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweENDLCAweDhELCAweDU5LCAweEI1LCAweDFCLCAweDBGLCAweEY0LCAweEFGKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RDksIDB4MkYsIDB4RDEsIDB4MkMsIDB4RTAsIDB4RDgsIDB4MDQsIDB4RUYpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhBQywgMHhGNCwgMHhENywgMHhCQSwgMHhCMCwgMHhBMywgMHg3RSwgMHhDOSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweENELCAweDA4LCAweDUxLCAweDU2LCAweEE2LCAweDc2LCAweDY3LCAweDMzKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4OEMsIDB4MTcsIDB4NjMsIDB4RkUsIDB4NTYsIDB4RDAsIDB4RDksIDB4NzEpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhBQSwgMHhGNiwgMHhDMywgMHgxNCwgMHg0NywgMHhDNSwgMHhBNywgMHgzMSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDcyLCAweDRDLCAweDgwLCAweEY2LCAweEEyLCAweDU3LCAweEE3LCAweDVEKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MTEsIDB4QjMsIDB4N0IsIDB4RjgsIDB4MkYsIDB4RTEsIDB4M0UsIDB4N0IpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhGQSwgMHgwMSwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCksCit9Oworc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDUyMXIxX1RfMTZfWVtdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgyNiwgMHhGNCwgMHhGOSwgMHg2QiwgMHg3QiwgMHg5MCwgMHhERiwgMHgzMCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDFGLCAweDgyLCAweEVGLCAweDYyLCAweEExLCAweDRDLCAweDUzLCAweENBKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RTYsIDB4OTksIDB4NzYsIDB4MDEsIDB4QkEsIDB4OEQsIDB4MEYsIDB4NTQpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhBRiwgMHhGNCwgMHg1OCwgMHg3MywgMHg1NiwgMHhGRSwgMHhERCwgMHg3QyksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEY2LCAweENFLCAweEY5LCAweEU4LCAweEExLCAweDM0LCAweEMzLCAweDVCKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MDksIDB4NUYsIDB4REMsIDB4NkEsIDB4M0QsIDB4RDgsIDB4N0YsIDB4NDIpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhDMiwgMHhGNCwgMHg1MSwgMHhCOCwgMHhCOCwgMHhDMSwgMHhENywgMHgyRiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEFFLCAweDdELCAweDU4LCAweEQxLCAweEQ0LCAweDFCLCAweDRELCAweDIzKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RDMsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDApLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3A1MjFyMV9UXzE3X1hbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QjksIDB4OTUsIDB4REYsIDB4MDAsIDB4RDgsIDB4MjEsIDB4REUsIDB4OTQpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhGNywgMHg0NywgMHgzQywgMHhDMywgMHhCMiwgMHgwMSwgMHg1MywgMHg1RCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDFFLCAweDE3LCAweDQzLCAweDIzLCAweEJELCAweENBLCAweDcxLCAweEYyKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NzAsIDB4QkEsIDB4MEYsIDB4NEYsIDB4REMsIDB4NDEsIDB4NTQsIDB4QkUpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhENiwgMHgzOSwgMHgyNiwgMHg3MCwgMHg1MywgMHgzMiwgMHgxOCwgMHgxMSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDMyLCAweDQ2LCAweDA3LCAweDk3LCAweDNBLCAweDU3LCAweEUwLCAweDAxKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RDYsIDB4OTIsIDB4NEYsIDB4Q0UsIDB4REYsIDB4MjUsIDB4ODAsIDB4MjYpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg1QiwgMHg2RiwgMHg5QSwgMHgwMywgMHgwNSwgMHg0QiwgMHhEMSwgMHg0NyksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDVELCAweDAxLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwKSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwNTIxcjFfVF8xN19ZW10gPSB7CisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDI1LCAweDAxLCAweDcyLCAweDMwLCAweDkwLCAweDE3LCAweDUxLCAweDIwKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NzQsIDB4RkIsIDB4NDEsIDB4NjUsIDB4NUMsIDB4QjQsIDB4MkQsIDB4RUUpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg2NiwgMHhDRCwgMHhDRCwgMHhBQSwgMHg0MSwgMHhDQywgMHhCQiwgMHgwNyksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEQ0LCAweENFLCAweDA4LCAweDBBLCAweDYzLCAweEU5LCAweEEyLCAweEZGKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4M0QsIDB4QTgsIDB4MjEsIDB4N0YsIDB4N0EsIDB4NUIsIDB4OUIsIDB4ODEpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgxMCwgMHg2QiwgMHg4OSwgMHg0NCwgMHgwQSwgMHg3RiwgMHg4NSwgMHg1RiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDdELCAweERFLCAweDdDLCAweDE5LCAweDVDLCAweDY1LCAweDI2LCAweDYxKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RDcsIDB4QUMsIDB4NjIsIDB4MjksIDB4NEEsIDB4RjEsIDB4RDAsIDB4ODEpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgzOCwgMHgwMSwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCksCit9Oworc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDUyMXIxX1RfMThfWFtdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgzMiwgMHgwMCwgMHg0MCwgMHg4NywgMHhFQiwgMHhBOSwgMHg1OCwgMHg1NiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEFGLCAweDUxLCAweDBCLCAweEZGLCAweDU2LCAweDM1LCAweDUxLCAweEIzKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4N0IsIDB4QUMsIDB4MDgsIDB4OTQsIDB4NzEsIDB4REEsIDB4RUMsIDB4OTkpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg1RiwgMHg0RCwgMHhDNSwgMHg3QiwgMHgzMSwgMHg4QiwgMHg4RCwgMHg1RSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDE1LCAweDA1LCAweEYxLCAweDNFLCAweDlFLCAweDhGLCAweDE3LCAweDhGKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RjAsIDB4OUMsIDB4NEIsIDB4NjIsIDB4OTQsIDB4QUQsIDB4NDksIDB4RkMpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgwRiwgMHhDOSwgMHhDNiwgMHg4RiwgMHhGRCwgMHgzMywgMHg0NCwgMHgzNCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDVGLCAweDk2LCAweDE3LCAweDdGLCAweDQyLCAweEJFLCAweEY3LCAweDBEKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RDQsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDApLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3A1MjFyMV9UXzE4X1lbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RkIsIDB4MjksIDB4MzksIDB4MTMsIDB4MDgsIDB4OEQsIDB4OTEsIDB4NDcpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhGNiwgMHg3OSwgMHhGOSwgMHgyRiwgMHhBOSwgMHgwQSwgMHhDRiwgMHhENiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEFCLCAweDg3LCAweDdBLCAweEEzLCAweDE5LCAweEFCLCAweDU1LCAweEFEKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RTgsIDB4MEIsIDB4MDEsIDB4QzUsIDB4NTYsIDB4MTksIDB4OUQsIDB4OUUpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgxOSwgMHhERSwgMHg4MiwgMHgzQiwgMHhFQSwgMHhEMywgMHgwQiwgMHg4QyksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDY1LCAweDZCLCAweEM3LCAweEYzLCAweDBGLCAweDgyLCAweDg3LCAweDZDKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RDgsIDB4MkUsIDB4MjMsIDB4RjIsIDB4MzksIDB4OUQsIDB4NDksIDB4NzApLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgzMSwgMHhERSwgMHhBRiwgMHg3QSwgMHhFRSwgMHhCMCwgMHhEQSwgMHg3MCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDYzLCAweDAxLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwKSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwNTIxcjFfVF8xOV9YW10gPSB7CisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDc2LCAweDRFLCAweDJBLCAweDUwLCAweEZELCAweDhFLCAweEMwLCAweEVCKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NTIsIDB4MEYsIDB4N0MsIDB4NzYsIDB4NjMsIDB4RDgsIDB4ODksIDB4NDUpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhFQywgMHgyRCwgMHhCOSwgMHg0RSwgMHhGNCwgMHhFRSwgMHg4NSwgMHhDRiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEMxLCAweDk1LCAweDVDLCAweDk2LCAweDVELCAweEFBLCAweDU5LCAweDBCKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4Q0EsIDB4REIsIDB4RDIsIDB4NjgsIDB4OEUsIDB4NUEsIDB4OTQsIDB4NjApLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhEOSwgMHgwMiwgMHhCRiwgMHg3NywgMHg5RiwgMHhCOSwgMHg0QywgMHhDOSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDJELCAweERDLCAweEMwLCAweENGLCAweDgxLCAweDFFLCAweEM0LCAweDZDKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MkIsIDB4Q0MsIDB4MzcsIDB4ODYsIDB4REMsIDB4RTIsIDB4NjQsIDB4NzIpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhENSwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCksCit9Oworc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDUyMXIxX1RfMTlfWVtdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgyQywgMHgzMCwgMHhCMSwgMHg1OSwgMHgyMCwgMHg5RCwgMHg5OCwgMHgyOCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDc3LCAweDBDLCAweDlELCAweEY4LCAweDIwLCAweERDLCAweDkwLCAweEJBKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QjEsIDB4QTAsIDB4RjQsIDB4RTcsIDB4M0UsIDB4OUMsIDB4OUUsIDB4QTIpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhCNSwgMHgyNSwgMHhBMiwgMHhCMCwgMHg1NCwgMHhDRCwgMHgyRSwgMHgzMyksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEVBLCAweEQ5LCAweDQyLCAweEIwLCAweDgwLCAweEIwLCAweEEzLCAweDM4KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4OUYsIDB4RkUsIDB4OUQsIDB4OEQsIDB4NDAsIDB4RkYsIDB4MjcsIDB4NkQpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgzQSwgMHg5RCwgMHhBNiwgMHg4OCwgMHgzQSwgMHg4QiwgMHg2RiwgMHgxNCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEI2LCAweDM5LCAweEVFLCAweDFGLCAweDNGLCAweEIxLCAweDRGLCAweDYzKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MzEsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDApLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3A1MjFyMV9UXzIwX1hbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NkQsIDB4RDcsIDB4OUUsIDB4RkYsIDB4RDIsIDB4MzUsIDB4NjcsIDB4MDMpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhDQSwgMHg0RiwgMHgxNSwgMHg1RCwgMHhFMywgMHhFOCwgMHg1MywgMHg4NiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDkyLCAweEY3LCAweDI0LCAweDk4LCAweEEyLCAweENCLCAweDExLCAweDY4KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MDYsIDB4MkUsIDB4MjUsIDB4RTEsIDB4OTQsIDB4QzUsIDB4QTMsIDB4OTYpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhFMCwgMHg4MiwgMHg2RSwgMHhCQSwgMHhFNywgMHg0MywgMHgyNSwgMHhCMCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDE4LCAweDY1LCAweEI0LCAweDQ5LCAweDczLCAweDE4LCAweDM1LCAweDU0KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NTksIDB4NUIsIDB4QkMsIDB4NjIsIDB4ODYsIDB4NEMsIDB4QzEsIDB4QjcpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg5QiwgMHhGMiwgMHg5NSwgMHhBMiwgMHhCQiwgMHhBMiwgMHgzNSwgMHg2NSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEJGLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwKSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwNTIxcjFfVF8yMF9ZW10gPSB7CisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDcyLCAweDU5LCAweDYyLCAweEIwLCAweDRCLCAweDFFLCAweEI0LCAweEQ4KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MEQsIDB4NTUsIDB4Q0UsIDB4QjAsIDB4NjksIDB4QkEsIDB4NjMsIDB4MTApLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg2RSwgMHg2OSwgMHg4NiwgMHhEQiwgMHgzNCwgMHg3RCwgMHg2OCwgMHg2NCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweERBLCAweDA2LCAweENBLCAweDU1LCAweDQ0LCAweDM2LCAweDJCLCAweEJBKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NkMsIDB4RDQsIDB4QzQsIDB4M0QsIDB4Q0QsIDB4OUUsIDB4NjksIDB4QTQpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgzRiwgMHg0NCwgMHhFNCwgMHhCRiwgMHgzMSwgMHhFNiwgMHg0MCwgMHg5RiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDdFLCAweDRGLCAweEZBLCAweDc1LCAweEUzLCAweEZCLCAweDk3LCAweDBFKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MDgsIDB4QzAsIDB4QkQsIDB4MUMsIDB4NDgsIDB4QjAsIDB4MjYsIDB4RDApLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhEMiwgMHgwMSwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCksCit9Oworc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDUyMXIxX1RfMjFfWFtdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgxQywgMHg3QiwgMHgzMiwgMHhGQSwgMHhGMiwgMHg2RCwgMHg4NCwgMHg4RSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEEwLCAweDIxLCAweDAzLCAweDFELCAweDBELCAweDIyLCAweDU1LCAweDY3KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MTgsIDB4RjksIDB4NDIsIDB4MDMsIDB4OUMsIDB4QzIsIDB4Q0IsIDB4QkEpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhGOCwgMHhBMSwgMHg5NiwgMHhEOSwgMHg5RCwgMHgxMSwgMHg2RiwgMHhCRSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEZGLCAweDQwLCAweDU3LCAweEVCLCAweDQwLCAweDJELCAweEMwLCAweDExKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MkYsIDB4OTYsIDB4QkIsIDB4NEYsIDB4MkYsIDB4MjMsIDB4QTgsIDB4MjgpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgzQSwgMHgyOSwgMHg4NSwgMHgyMSwgMHhBNSwgMHg1MCwgMHg2MiwgMHgwNiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEM5LCAweDdELCAweDkyLCAweENGLCAweDg3LCAweDBDLCAweDIyLCAweEY5KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QzksIDB4MDEsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDApLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3A1MjFyMV9UXzIxX1lbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NUEsIDB4MEUsIDB4QTUsIDB4MzIsIDB4NUIsIDB4REYsIDB4OUMsIDB4RDUpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgyNywgMHg5NiwgMHgzNywgMHgyQywgMHg4OCwgMHgzNSwgMHgzMCwgMHhBMSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDQwLCAweEI0LCAweDY5LCAweEZGLCAweEVCLCAweEM2LCAweDk0LCAweDA4KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QzksIDB4NTUsIDB4NjAsIDB4QUQsIDB4QUEsIDB4NTgsIDB4MTQsIDB4ODgpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgzQywgMHhGRiwgMHhGMiwgMHhCMiwgMHhENSwgMHhBNywgMHhEOSwgMHgyNyksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDJELCAweEFFLCAweDU0LCAweEQyLCAweDYwLCAweDMxLCAweEYzLCAweDE1KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QkIsIDB4OTIsIDB4ODMsIDB4RTMsIDB4RjEsIDB4NDIsIDB4ODMsIDB4NkUpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg0OSwgMHhEMiwgMHhDOCwgMHhCNywgMHg3NiwgMHg0NSwgMHg3RiwgMHg3RCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDA0LCAweDAxLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwKSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwNTIxcjFfVF8yMl9YW10gPSB7CisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDRBLCAweDExLCAweEE0LCAweEZCLCAweDdBLCAweDAxLCAweEJDLCAweEM4KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4Q0QsIDB4MjcsIDB4NzMsIDB4OEQsIDB4MDIsIDB4OTEsIDB4MjcsIDB4OEUpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhBNCwgMHg2MiwgMHhGNiwgMHhERCwgMHg2QiwgMHhGQSwgMHg1QiwgMHhCOSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEVGLCAweENBLCAweEEyLCAweDQ0LCAweDJDLCAweEYwLCAweDI4LCAweEQ4KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4M0MsIDB4RjEsIDB4N0EsIDB4QTIsIDB4NDIsIDB4NEMsIDB4NTAsIDB4QzYpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgyRCwgMHg4MywgMHgzRSwgMHg1MCwgMHhBQiwgMHg5QywgMHhGNywgMHg2NyksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDFELCAweEVELCAweDc4LCAweENCLCAweDc2LCAweDY5LCAweERBLCAweDQyKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4REIsIDB4MDEsIDB4MUUsIDB4NDMsIDB4MjcsIDB4NDcsIDB4NkUsIDB4REEpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg5NCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCksCit9Oworc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDUyMXIxX1RfMjJfWVtdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhEMywgMHg0RiwgMHg1NCwgMHhCOSwgMHgzRSwgMHhCRCwgMHhENSwgMHg0NCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEM5LCAweDM1LCAweDQwLCAweDY5LCAweDdGLCAweDc0LCAweDlELCAweDMyKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NUEsIDB4MDYsIDB4NkYsIDB4NjcsIDB4NjgsIDB4MkIsIDB4NEQsIDB4MTApLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhDNiwgMHg2NSwgMHg0MSwgMHhGQywgMHg3QywgMHgxRSwgMHhFOCwgMHhDOCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEYyLCAweDc5LCAweDM3LCAweEFGLCAweEZELCAweEQyLCAweERBLCAweDRDKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MzMsIDB4QTgsIDB4NjksIDB4NTYsIDB4NjIsIDB4QTQsIDB4RTQsIDB4QTMpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg0MiwgMHg3MSwgMHg3MywgMHgyMSwgMHg4QSwgMHgxNywgMHg4MSwgMHhBMiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDE0LCAweDU1LCAweDhGLCAweDdCLCAweEI4LCAweEFGLCAweEY3LCAweDg2KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QUEsIDB4MDEsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDApLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3A1MjFyMV9UXzIzX1hbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NEIsIDB4RDEsIDB4QkQsIDB4QkUsIDB4OEMsIDB4QkMsIDB4NjAsIDB4NkUpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg2MiwgMHhBNiwgMHg1NywgMHg4QywgMHhBRSwgMHg1QywgMHgxOSwgMHhGRSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDdBLCAweDQzLCAweEU0LCAweEQ5LCAweEQ4LCAweDdCLCAweEU3LCAweDQxKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RUQsIDB4QjksIDB4RTQsIDB4ODUsIDB4N0MsIDB4MkUsIDB4RkMsIDB4MjApLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgwMiwgMHgyRSwgMHgwMSwgMHgyQSwgMHg2RCwgMHg1NiwgMHhCRSwgMHg5NyksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDZBLCAweDBDLCAweDI1LCAweDlCLCAweEFFLCAweDg2LCAweDM3LCAweDQzKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NEEsIDB4MjIsIDB4QjMsIDB4Q0IsIDB4OTksIDB4NjYsIDB4QjcsIDB4OUUpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg1NiwgMHhGNywgMHg5MCwgMHhGMCwgMHgxQiwgMHgwOSwgMHgyNywgMHhGNyksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEM4LCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwKSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwNTIxcjFfVF8yM19ZW10gPSB7CisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDFDLCAweDE2LCAweDA4LCAweEVGLCAweDM5LCAweDY0LCAweDQ5LCAweDMxKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MDgsIDB4QTAsIDB4RTMsIDB4OTcsIDB4QTksIDB4MDcsIDB4NTQsIDB4MjYpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhDRCwgMHhGRiwgMHhFMiwgMHgwMCwgMHgwNywgMHgyMSwgMHg4OCwgMHgyMCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDE2LCAweEZELCAweDU5LCAweDUzLCAweDA1LCAweDZDLCAweDQyLCAweDI3KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4OEYsIDB4RjcsIDB4MzksIDB4NUMsIDB4ODIsIDB4MzYsIDB4RTgsIDB4MDMpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgyRSwgMHg4MywgMHhBOCwgMHhFMiwgMHhBOCwgMHg0MywgMHgwNywgMHgzOCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEU2LCAweEFGLCAweDJCLCAweDc5LCAweEVELCAweEQ4LCAweDM5LCAweDg3KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MTUsIDB4MjAsIDB4OTEsIDB4N0EsIDB4QzQsIDB4MDcsIDB4RUYsIDB4NkMpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgyOCwgMHgwMSwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCksCit9Oworc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDUyMXIxX1RfMjRfWFtdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg2QSwgMHgxMCwgMHgyRiwgMHhBQSwgMHgwQywgMHg5NCwgMHgwRSwgMHg1QSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEI3LCAweDgxLCAweDg3LCAweDQxLCAweDIzLCAweEVCLCAweDU1LCAweDdDKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QjgsIDB4NTMsIDB4Q0MsIDB4NzksIDB4QjYsIDB4RUIsIDB4NkMsIDB4Q0MpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhGNCwgMHg3NywgMHg3MywgMHg5RCwgMHhGQywgMHg2NCwgMHg2RiwgMHg3RiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDNDLCAweDQwLCAweEUzLCAweDZELCAweDFDLCAweDE2LCAweDcxLCAweDE1KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NUEsIDB4RjQsIDB4MUIsIDB4RkYsIDB4MUMsIDB4MkYsIDB4QTUsIDB4RDcpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgwNiwgMHgwRSwgMHgwQiwgMHgxMSwgMHhGNCwgMHg4RCwgMHg5MywgMHhBRiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDU4LCAweEM1LCAweDY0LCAweDZGLCAweDI0LCAweDE5LCAweEYyLCAweDlCKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MUMsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDApLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3A1MjFyMV9UXzI0X1lbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NTIsIDB4QjMsIDB4QUYsIDB4QTUsIDB4MEUsIDB4NEYsIDB4NUUsIDB4RTEpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgwRiwgMHg3NywgMHhDQSwgMHhGMiwgMHg2RCwgMHhDNSwgMHhGNiwgMHg5RiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDkwLCAweDE4LCAweDhFLCAweDMzLCAweDY4LCAweDZDLCAweEU4LCAweEUwKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RkMsIDB4OEIsIDB4ODAsIDB4OTAsIDB4MTksIDB4N0YsIDB4OTAsIDB4OTYpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg1QiwgMHg4MCwgMHg2QiwgMHg2OCwgMHhFMiwgMHg3RCwgMHhENCwgMHhEMCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDJBLCAweEMxLCAweDY3LCAweEIzLCAweDcyLCAweENCLCAweEJGLCAweDJGKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NEYsIDB4RDUsIDB4RDMsIDB4MUQsIDB4MTQsIDB4NTgsIDB4MEEsIDB4ODApLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg3OSwgMHg3QSwgMHg2NSwgMHg5OCwgMHhCMywgMHgwNywgMHg0QiwgMHgyRiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEYzLCAweDAxLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwKSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwNTIxcjFfVF8yNV9YW10gPSB7CisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDJBLCAweDg3LCAweDBGLCAweDVGLCAweENGLCAweEEyLCAweDAxLCAweDA4KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MEMsIDB4QzksIDB4QzgsIDB4NkUsIDB4MzUsIDB4ODcsIDB4QTUsIDB4NjcpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg5NCwgMHgzRSwgMHg5MSwgMHhBMCwgMHhBQiwgMHgyNCwgMHgxRSwgMHhGMiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEI5LCAweEJDLCAweDAyLCAweDM1LCAweDcwLCAweEMxLCAweDVGLCAweDk4KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MjYsIDB4NTksIDB4QTAsIDB4NTAsIDB4MDQsIDB4ODAsIDB4NTIsIDB4ODUpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhGOCwgMHg1NiwgMHg2RSwgMHg0MiwgMHg4RiwgMHg4QywgMHg5MSwgMHg2NSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEFDLCAweEEyLCAweENCLCAweEE1LCAweERFLCAweDE0LCAweDI0LCAweDM4KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MDAsIDB4Q0IsIDB4NzQsIDB4MjgsIDB4RTYsIDB4QTcsIDB4RTcsIDB4QzMpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg1RiwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCksCit9Oworc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDUyMXIxX1RfMjVfWVtdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgzNSwgMHg3MywgMHhBOCwgMHg4RiwgMHg5RSwgMHgwRSwgMHg2MywgMHg5NiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEM4LCAweDFCLCAweDc3LCAweEM3LCAweEMxLCAweDM4LCAweEY5LCAweERDKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RDgsIDB4M0MsIDB4Q0YsIDB4QTgsIDB4N0EsIDB4RDcsIDB4RjMsIDB4QzQpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhERCwgMHg1RiwgMHg5QSwgMHhDOSwgMHhBRCwgMHhFOSwgMHgxQSwgMHg5MyksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEZDLCAweENGLCAweDJCLCAweDVFLCAweEQ1LCAweDgxLCAweDk1LCAweEE4KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MTksIDB4ODgsIDB4NzUsIDB4MjksIDB4MUYsIDB4QzcsIDB4QzcsIDB4RDApLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhEOCwgMHhBOSwgMHg1QSwgMHg0RCwgMHg2MywgMHg5NSwgMHhGOSwgMHg0RSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEVCLCAweENELCAweDA0LCAweDhGLCAweENELCAweDkxLCAweERFLCAweEM2KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NzEsIDB4MDEsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDApLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3A1MjFyMV9UXzI2X1hbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4ODgsIDB4RDQsIDB4RkQsIDB4MjUsIDB4MTEsIDB4OTksIDB4NkUsIDB4RUEpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhCMCwgMHg4MywgMHgwMSwgMHgzRCwgMHhGQiwgMHg1NiwgMHhBNSwgMHg0RSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEMyLCAweDNBLCAweERDLCAweDc0LCAweEMyLCAweEQ3LCAweENGLCAweEU4KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4OEYsIDB4QkQsIDB4RjEsIDB4REQsIDB4QTMsIDB4MDcsIDB4MDMsIDB4RTIpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg3QiwgMHhCRSwgMHhFOSwgMHgyRSwgMHg1OCwgMHg4NCwgMHg2NiwgMHhGQyksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDcxLCAweDIwLCAweDc4LCAweDM3LCAweDc5LCAweDBCLCAweEE2LCAweDY0KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RTMsIDB4RjIsIDB4QUMsIDB4NjUsIDB4QzgsIDB4QzksIDB4MkYsIDB4NjEpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgyNiwgMHg5MywgMHhFNSwgMHgwRCwgMHgwQywgMHhDNiwgMHhCOCwgMHhDQiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDlDLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwKSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwNTIxcjFfVF8yNl9ZW10gPSB7CisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDY5LCAweEFELCAweDVDLCAweDE5LCAweDEyLCAweDYxLCAweDBFLCAweDI1KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MzksIDB4NEYsIDB4MEIsIDB4MUYsIDB4NDksIDB4N0UsIDB4Q0QsIDB4ODEpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg0NiwgMHgyRSwgMHgzMCwgMHg2MSwgMHhEQiwgMHgwOCwgMHg2OCwgMHg5QiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDQxLCAweDc4LCAweEFGLCAweEIzLCAweDA4LCAweEMxLCAweDY5LCAweEU1KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QzQsIDB4NUYsIDB4NUQsIDB4QzEsIDB4NTcsIDB4NkYsIDB4RDgsIDB4MzQpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgzOCwgMHhEMywgMHg2QSwgMHhGNywgMHhGRCwgMHg4NiwgMHhFNSwgMHhCMyksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEE4LCAweDYzLCAweEJELCAweDcwLCAweDdCLCAweDQ3LCAweEU4LCAweDZEKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MTgsIDB4NjIsIDB4QzgsIDB4N0UsIDB4OUQsIDB4MTEsIDB4MkIsIDB4QTUpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhCNiwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCksCit9Oworc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDUyMXIxX1RfMjdfWFtdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhFMiwgMHg4NCwgMHhGRCwgMHhENSwgMHg5QSwgMHg1NiwgMHg3RiwgMHg1QyksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDdDLCAweEJCLCAweEE0LCAweDZGLCAweDEyLCAweDZFLCAweDRELCAweEY4KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MUQsIDB4MDgsIDB4QTEsIDB4ODIsIDB4OUMsIDB4NjIsIDB4NzQsIDB4N0IpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg5RSwgMHg1OCwgMHgyMiwgMHgwNSwgMHgxRCwgMHgxNSwgMHgzNSwgMHg3OSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDlBLCAweDg4LCAweENGLCAweDVDLCAweDA1LCAweDc4LCAweEZCLCAweDk0KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QUMsIDB4NkIsIDB4MkYsIDB4NzksIDB4MDksIDB4NzMsIDB4NjcsIDB4RUMpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhEOCwgMHhBMCwgMHg4MCwgMHhEOCwgMHhFOCwgMHhFQywgMHhGQiwgMHg0MiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEY1LCAweEU3LCAweDBCLCAweEI3LCAweDgxLCAweDQ4LCAweDdCLCAweEQ5KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RTMsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDApLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3A1MjFyMV9UXzI3X1lbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RTgsIDB4NTMsIDB4QTksIDB4RUQsIDB4NjEsIDB4OTIsIDB4RDcsIDB4ODUpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgyNiwgMHg0OSwgMHhEOSwgMHg1RCwgMHg5QiwgMHg0RSwgMHg4OSwgMHgzNSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEI4LCAweDEyLCAweEVCLCAweDlBLCAweEM5LCAweENCLCAweEMxLCAweDk1KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MzUsIDB4REMsIDB4OTUsIDB4MTYsIDB4RkUsIDB4MjksIDB4NzAsIDB4MDEpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg2NCwgMHgzMywgMHhCMSwgMHhENiwgMHg3OCwgMHhCOSwgMHhFMiwgMHgzNiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDM0LCAweENFLCAweDg4LCAweEMzLCAweEZELCAweDdBLCAweDZCLCAweEI4KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NDAsIDB4MUUsIDB4NTAsIDB4MUUsIDB4QUYsIDB4QjEsIDB4MjUsIDB4MkQpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhDMSwgMHhFNywgMHhENywgMHhENSwgMHhCRCwgMHg3QSwgMHgxMiwgMHhGOSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDMxLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwKSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwNTIxcjFfVF8yOF9YW10gPSB7CisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDIyLCAweEFBLCAweEEyLCAweDgwLCAweDVELCAweDhGLCAweENELCAweEM4KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NDgsIDB4MzksIDB4NzksIDB4NjQsIDB4QTEsIDB4NjcsIDB4M0MsIDB4QjcpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgzRCwgMHhDNywgMHg0OSwgMHhGRiwgMHg3RiwgMHhBQywgMHhBQiwgMHg1NSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDgxLCAweDU0LCAweDNFLCAweDgzLCAweEYwLCAweDNELCAweEJDLCAweEI1KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4ODcsIDB4OTIsIDB4NEEsIDB4MzgsIDB4NDIsIDB4OEEsIDB4QUIsIDB4RjYpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhFNywgMHgwQiwgMHg0RiwgMHhFRSwgMHg5RSwgMHg5MiwgMHhBNSwgMHhCRSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEJBLCAweERELCAweDE5LCAweDk2LCAweEYyLCAweEYwLCAweDZCLCAweDJFKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QkUsIDB4RkMsIDB4REQsIDB4QjIsIDB4OEEsIDB4RTUsIDB4NEMsIDB4MjIpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhENCwgMHgwMSwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCksCit9Oworc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDUyMXIxX1RfMjhfWVtdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhCNywgMHgwNiwgMHg0OSwgMHhBQywgMHg5OSwgMHg3RSwgMHhGOCwgMHgxMiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDc2LCAweEM4LCAweDAxLCAweDUxLCAweEVBLCAweEY2LCAweDUyLCAweEU3KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NDMsIDB4ODksIDB4NjYsIDB4MkIsIDB4MUYsIDB4OUIsIDB4MkEsIDB4QTMpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhERiwgMHgwRiwgMHg5NSwgMHgwNywgMHgyQiwgMHg2QywgMHg2RSwgMHg5RSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDI0LCAweEMzLCAweEI0LCAweEJCLCAweDkxLCAweDFGLCAweEEzLCAweDcyKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NUYsIDB4NkUsIDB4NTQsIDB4MjgsIDB4N0IsIDB4OUMsIDB4NzksIDB4MkUpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgwMywgMHg0NSwgMHhGRiwgMHhBNiwgMHhEQSwgMHhBMiwgMHg4MywgMHg3MSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEVCLCAweERFLCAweDhGLCAweDE3LCAweDM3LCAweDgyLCAweENCLCAweEUyKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MzAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDApLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3A1MjFyMV9UXzI5X1hbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RDgsIDB4OTQsIDB4M0YsIDB4MjYsIDB4QzksIDB4MUQsIDB4RDksIDB4QUUpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgwOSwgMHg5NywgMHgyOCwgMHgyMCwgMHhDRCwgMHhDMSwgMHhGMywgMHg0MCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDk1LCAweEM5LCAweEI1LCAweDYwLCAweDlCLCAweDFFLCAweERDLCAweDc0KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NUIsIDB4QjksIDB4NUIsIDB4N0QsIDB4QTAsIDB4QjIsIDB4OEMsIDB4RjApLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgzMywgMHhEMSwgMHg0MiwgMHhFNiwgMHgzOSwgMHgzMywgMHg2RCwgMHhCQiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDVELCAweEMwLCAweEZDLCAweEQyLCAweDE0LCAweDVELCAweDNFLCAweDNDKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NzgsIDB4NEEsIDB4M0UsIDB4NDAsIDB4MTYsIDB4OTMsIDB4MTUsIDB4Q0YpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhGQSwgMHgyNCwgMHhDMSwgMHgyNywgMHgyNywgMHhFNSwgMHg0QiwgMHhEOCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEQ0LCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwKSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwNTIxcjFfVF8yOV9ZW10gPSB7CisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDFELCAweDUwLCAweEQ4LCAweEJDLCAweEMxLCAweDQ2LCAweDIyLCAweEJCKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QUQsIDB4MEUsIDB4NjAsIDB4QTEsIDB4QjMsIDB4NTAsIDB4RDQsIDB4ODYpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg4MCwgMHhCMSwgMHgyNiwgMHhCNiwgMHg2RCwgMHg0NywgMHg1QSwgMHg2RiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDQ1LCAweEFDLCAweDExLCAweDM1LCAweDNFLCAweEI5LCAweEY0LCAweDAxKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NTgsIDB4OTcsIDB4RkEsIDB4QkIsIDB4NkIsIDB4MzksIDB4MTMsIDB4RDgpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgxNSwgMHg3QiwgMHgzNCwgMHgxMiwgMHg3NSwgMHg4RSwgMHg5QiwgMHhDNiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDJDLCAweDlFLCAweENELCAweDI5LCAweEI2LCAweEVGLCAweDhELCAweDEwKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NDcsIDB4QUMsIDB4RTksIDB4MjUsIDB4MjcsIDB4QkIsIDB4NzgsIDB4NDcpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgyRiwgMHgwMSwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCksCit9Oworc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDUyMXIxX1RfMzBfWFtdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgzMCwgMHg3QSwgMHhBOCwgMHhEMywgMHhFMywgMHg2NiwgMHhFNSwgMHg2NiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDJGLCAweDRDLCAweEM0LCAweDJDLCAweDc2LCAweDgxLCAweDUwLCAweDMyKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RUUsIDB4NzEsIDB4MDgsIDB4QjgsIDB4NTIsIDB4N0MsIDB4QUYsIDB4REMpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg0NSwgMHg1OSwgMHgyNCwgMHhERCwgMHhGQiwgMHgyRiwgMHhEMCwgMHhEQSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEI3LCAweENELCAweDU2LCAweEU5LCAweEFDLCAweDkxLCAweEU2LCAweEI5KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RTUsIDB4NjQsIDB4MjAsIDB4QzYsIDB4OUYsIDB4RTQsIDB4RUYsIDB4REYpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg2RCwgMHgyQywgMHg4RiwgMHg4QywgMHg5NywgMHhGNiwgMHgyMiwgMHhDMyksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEFDLCAweEY0LCAweDg4LCAweEFBLCAweEE4LCAweEQ3LCAweEE1LCAweDY4KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4REUsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDApLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3A1MjFyMV9UXzMwX1lbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MjEsIDB4NkMsIDB4QUUsIDB4ODMsIDB4QjEsIDB4NTUsIDB4NTUsIDB4RUUpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhCMCwgMHg2NywgMHg4NCwgMHg0NywgMHg3QywgMHg4MywgMHg1QywgMHg4OSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDVCLCAweDEwLCAweDRELCAweERELCAweDMwLCAweDYwLCAweEIwLCAweEU2KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NTksIDB4QTcsIDB4MzYsIDB4NzYsIDB4MjQsIDB4MzIsIDB4OUYsIDB4OUQpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhERCwgMHg0MiwgMHg4MSwgMHhGQiwgMHhBNCwgMHgyRSwgMHgxMywgMHg2OCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDg3LCAweDk0LCAweDkxLCAweEZGLCAweDk5LCAweEEwLCAweDA5LCAweDYxKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NUQsIDB4ODMsIDB4QTEsIDB4NzYsIDB4QUYsIDB4MzcsIDB4NUMsIDB4NzcpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgxRSwgMHhBOCwgMHgwNCwgMHg4NiwgMHhDNCwgMHhBOSwgMHg3OSwgMHg0MiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDkzLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwKSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwNTIxcjFfVF8zMV9YW10gPSB7CisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEI2LCAweDhDLCAweEMyLCAweDM0LCAweEZCLCAweDgzLCAweDI4LCAweDI3KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QTQsIDB4MDMsIDB4N0QsIDB4NUUsIDB4OUUsIDB4MEUsIDB4QjAsIDB4MjIpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhBMiwgMHgwMiwgMHg0NiwgMHg3RiwgMHhCOSwgMHhBQywgMHhCQiwgMHgyMyksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDA2LCAweEVELCAweDQ4LCAweEMyLCAweDk2LCAweDRELCAweDU2LCAweDI3KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NDQsIDB4QjUsIDB4QzUsIDB4RDEsIDB4RTYsIDB4MUMsIDB4N0UsIDB4OUIpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg5MiwgMHgyRSwgMHgxOCwgMHg3MSwgMHgyRCwgMHg3QiwgMHhENywgMHhCMyksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEFCLCAweDQ2LCAweDlELCAweERFLCAweEFBLCAweDc4LCAweDhFLCAweEIxKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NEQsIDB4RDcsIDB4NjksIDB4MkUsIDB4RTEsIDB4RDksIDB4NDgsIDB4REUpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhGQiwgMHgwMSwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCksCit9Oworc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDUyMXIxX1RfMzFfWVtdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhBRiwgMHhGRiwgMHg5RSwgMHgwOSwgMHgyMiwgMHgyMiwgMHhFNiwgMHg4RCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDZDLCAweDE0LCAweDI4LCAweDEzLCAweDFCLCAweDYyLCAweDEyLCAweDIyKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4Q0MsIDB4N0YsIDB4NjcsIDB4MDMsIDB4QjAsIDB4QzAsIDB4RjMsIDB4MDUpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhDMCwgMHhDMywgMHgwRiwgMHhGQiwgMHgyNSwgMHg0OCwgMHgzRSwgMHhGNCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDBCLCAweDZFLCAweDUzLCAweDk4LCAweDM2LCAweEIzLCAweEQzLCAweDk0KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RUIsIDB4ODEsIDB4NTQsIDB4MjIsIDB4QTQsIDB4Q0MsIDB4QzEsIDB4MjIpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhGNSwgMHhCQSwgMHhGQywgMHhBOSwgMHhERiwgMHg2OCwgMHg4NiwgMHgyQiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDcxLCAweDkyLCAweDBFLCAweEMzLCAweEYyLCAweDU4LCAweEU4LCAweDUxKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RTksIDB4MDEsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDApLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX2VjcF9wb2ludCBzZWNwNTIxcjFfVFszMl0gPSB7CisgICAgRUNQX1BPSU5UX0lOSVRfWFlfWjEoc2VjcDUyMXIxX1RfMF9YLCBzZWNwNTIxcjFfVF8wX1kpLAorICAgIEVDUF9QT0lOVF9JTklUX1hZX1owKHNlY3A1MjFyMV9UXzFfWCwgc2VjcDUyMXIxX1RfMV9ZKSwKKyAgICBFQ1BfUE9JTlRfSU5JVF9YWV9aMChzZWNwNTIxcjFfVF8yX1gsIHNlY3A1MjFyMV9UXzJfWSksCisgICAgRUNQX1BPSU5UX0lOSVRfWFlfWjAoc2VjcDUyMXIxX1RfM19YLCBzZWNwNTIxcjFfVF8zX1kpLAorICAgIEVDUF9QT0lOVF9JTklUX1hZX1owKHNlY3A1MjFyMV9UXzRfWCwgc2VjcDUyMXIxX1RfNF9ZKSwKKyAgICBFQ1BfUE9JTlRfSU5JVF9YWV9aMChzZWNwNTIxcjFfVF81X1gsIHNlY3A1MjFyMV9UXzVfWSksCisgICAgRUNQX1BPSU5UX0lOSVRfWFlfWjAoc2VjcDUyMXIxX1RfNl9YLCBzZWNwNTIxcjFfVF82X1kpLAorICAgIEVDUF9QT0lOVF9JTklUX1hZX1owKHNlY3A1MjFyMV9UXzdfWCwgc2VjcDUyMXIxX1RfN19ZKSwKKyAgICBFQ1BfUE9JTlRfSU5JVF9YWV9aMChzZWNwNTIxcjFfVF84X1gsIHNlY3A1MjFyMV9UXzhfWSksCisgICAgRUNQX1BPSU5UX0lOSVRfWFlfWjAoc2VjcDUyMXIxX1RfOV9YLCBzZWNwNTIxcjFfVF85X1kpLAorICAgIEVDUF9QT0lOVF9JTklUX1hZX1owKHNlY3A1MjFyMV9UXzEwX1gsIHNlY3A1MjFyMV9UXzEwX1kpLAorICAgIEVDUF9QT0lOVF9JTklUX1hZX1owKHNlY3A1MjFyMV9UXzExX1gsIHNlY3A1MjFyMV9UXzExX1kpLAorICAgIEVDUF9QT0lOVF9JTklUX1hZX1owKHNlY3A1MjFyMV9UXzEyX1gsIHNlY3A1MjFyMV9UXzEyX1kpLAorICAgIEVDUF9QT0lOVF9JTklUX1hZX1owKHNlY3A1MjFyMV9UXzEzX1gsIHNlY3A1MjFyMV9UXzEzX1kpLAorICAgIEVDUF9QT0lOVF9JTklUX1hZX1owKHNlY3A1MjFyMV9UXzE0X1gsIHNlY3A1MjFyMV9UXzE0X1kpLAorICAgIEVDUF9QT0lOVF9JTklUX1hZX1owKHNlY3A1MjFyMV9UXzE1X1gsIHNlY3A1MjFyMV9UXzE1X1kpLAorICAgIEVDUF9QT0lOVF9JTklUX1hZX1owKHNlY3A1MjFyMV9UXzE2X1gsIHNlY3A1MjFyMV9UXzE2X1kpLAorICAgIEVDUF9QT0lOVF9JTklUX1hZX1owKHNlY3A1MjFyMV9UXzE3X1gsIHNlY3A1MjFyMV9UXzE3X1kpLAorICAgIEVDUF9QT0lOVF9JTklUX1hZX1owKHNlY3A1MjFyMV9UXzE4X1gsIHNlY3A1MjFyMV9UXzE4X1kpLAorICAgIEVDUF9QT0lOVF9JTklUX1hZX1owKHNlY3A1MjFyMV9UXzE5X1gsIHNlY3A1MjFyMV9UXzE5X1kpLAorICAgIEVDUF9QT0lOVF9JTklUX1hZX1owKHNlY3A1MjFyMV9UXzIwX1gsIHNlY3A1MjFyMV9UXzIwX1kpLAorICAgIEVDUF9QT0lOVF9JTklUX1hZX1owKHNlY3A1MjFyMV9UXzIxX1gsIHNlY3A1MjFyMV9UXzIxX1kpLAorICAgIEVDUF9QT0lOVF9JTklUX1hZX1owKHNlY3A1MjFyMV9UXzIyX1gsIHNlY3A1MjFyMV9UXzIyX1kpLAorICAgIEVDUF9QT0lOVF9JTklUX1hZX1owKHNlY3A1MjFyMV9UXzIzX1gsIHNlY3A1MjFyMV9UXzIzX1kpLAorICAgIEVDUF9QT0lOVF9JTklUX1hZX1owKHNlY3A1MjFyMV9UXzI0X1gsIHNlY3A1MjFyMV9UXzI0X1kpLAorICAgIEVDUF9QT0lOVF9JTklUX1hZX1owKHNlY3A1MjFyMV9UXzI1X1gsIHNlY3A1MjFyMV9UXzI1X1kpLAorICAgIEVDUF9QT0lOVF9JTklUX1hZX1owKHNlY3A1MjFyMV9UXzI2X1gsIHNlY3A1MjFyMV9UXzI2X1kpLAorICAgIEVDUF9QT0lOVF9JTklUX1hZX1owKHNlY3A1MjFyMV9UXzI3X1gsIHNlY3A1MjFyMV9UXzI3X1kpLAorICAgIEVDUF9QT0lOVF9JTklUX1hZX1owKHNlY3A1MjFyMV9UXzI4X1gsIHNlY3A1MjFyMV9UXzI4X1kpLAorICAgIEVDUF9QT0lOVF9JTklUX1hZX1owKHNlY3A1MjFyMV9UXzI5X1gsIHNlY3A1MjFyMV9UXzI5X1kpLAorICAgIEVDUF9QT0lOVF9JTklUX1hZX1owKHNlY3A1MjFyMV9UXzMwX1gsIHNlY3A1MjFyMV9UXzMwX1kpLAorICAgIEVDUF9QT0lOVF9JTklUX1hZX1owKHNlY3A1MjFyMV9UXzMxX1gsIHNlY3A1MjFyMV9UXzMxX1kpLAorfTsKKyNlbHNlCisjZGVmaW5lIHNlY3A1MjFyMV9UIE5VTEwKKyNlbmRpZgorI2VuZGlmIC8qIE1CRURUTFNfRUNQX0RQX1NFQ1A1MjFSMV9FTkFCTEVEICovCisKKyNpZiBkZWZpbmVkKE1CRURUTFNfRUNQX0RQX1NFQ1AxOTJLMV9FTkFCTEVEKQorc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDE5MmsxX3BbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MzcsIDB4RUUsIDB4RkYsIDB4RkYsIDB4RkUsIDB4RkYsIDB4RkYsIDB4RkYpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEZGLCAweEZGLCAweEZGLCAweEZGLCAweEZGLCAweEZGLCAweEZGLCAweEZGKSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMTkyazFfYVtdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzIoMHgwMCwgMHgwMCksCit9Oworc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDE5MmsxX2JbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF8yKDB4MDMsIDB4MDApLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AxOTJrMV9neFtdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg3RCwgMHg2QywgMHhFMCwgMHhFQSwgMHhCMSwgMHhEMSwgMHhBNSwgMHgxRCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDM0LCAweEY0LCAweEI3LCAweDgwLCAweDAyLCAweDdELCAweEIwLCAweDI2KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QUUsIDB4RTksIDB4NTcsIDB4QzAsIDB4MEUsIDB4RjEsIDB4NEYsIDB4REIpLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AxOTJrMV9neVtdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg5RCwgMHgyRiwgMHg1RSwgMHhEOSwgMHg4OCwgMHhBQSwgMHg4MiwgMHg0MCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDM0LCAweDg2LCAweEJFLCAweDE1LCAweEQwLCAweDYzLCAweDQxLCAweDg0KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QTcsIDB4MjgsIDB4NTYsIDB4OUMsIDB4NkQsIDB4MkYsIDB4MkYsIDB4OUIpLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AxOTJrMV9uW10gPSB7CisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDhELCAweEZELCAweERFLCAweDc0LCAweDZBLCAweDQ2LCAweDY5LCAweDBGKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MTcsIDB4RkMsIDB4RjIsIDB4MjYsIDB4RkUsIDB4RkYsIDB4RkYsIDB4RkYpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiksCit9OworCisjaWYgTUJFRFRMU19FQ1BfRklYRURfUE9JTlRfT1BUSU0gPT0gMQorc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDE5MmsxX1RfMF9YW10gPSB7CisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDdELCAweDZDLCAweEUwLCAweEVBLCAweEIxLCAweEQxLCAweEE1LCAweDFEKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MzQsIDB4RjQsIDB4QjcsIDB4ODAsIDB4MDIsIDB4N0QsIDB4QjAsIDB4MjYpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhBRSwgMHhFOSwgMHg1NywgMHhDMCwgMHgwRSwgMHhGMSwgMHg0RiwgMHhEQiksCit9Oworc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDE5MmsxX1RfMF9ZW10gPSB7CisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDlELCAweDJGLCAweDVFLCAweEQ5LCAweDg4LCAweEFBLCAweDgyLCAweDQwKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MzQsIDB4ODYsIDB4QkUsIDB4MTUsIDB4RDAsIDB4NjMsIDB4NDEsIDB4ODQpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhBNywgMHgyOCwgMHg1NiwgMHg5QywgMHg2RCwgMHgyRiwgMHgyRiwgMHg5QiksCit9Oworc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDE5MmsxX1RfMV9YW10gPSB7CisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDZGLCAweDc3LCAweDNELCAweDBELCAweDg1LCAweDQ4LCAweEE4LCAweEE5KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NjIsIDB4MDcsIDB4REYsIDB4MUQsIDB4QjMsIDB4QjMsIDB4MDEsIDB4NTQpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgwNSwgMHg4NiwgMHhGNiwgMHhBRiwgMHgxOSwgMHgyQSwgMHg4OCwgMHgyRSksCit9Oworc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDE5MmsxX1RfMV9ZW10gPSB7CisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDMzLCAweDkwLCAweEI2LCAweDJGLCAweDQ4LCAweDM2LCAweDRDLCAweDVCKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4REIsIDB4MTEsIDB4MTQsIDB4QTYsIDB4Q0IsIDB4QkEsIDB4MTUsIDB4RDkpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg3RSwgMHhCMCwgMHhGMiwgMHhENCwgMHhDOSwgMHhEQSwgMHhCQSwgMHhENyksCit9Oworc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDE5MmsxX1RfMl9YW10gPSB7CisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEU0LCAweEMxLCAweDlDLCAweEU2LCAweEJCLCAweEZCLCAweENGLCAweDIzKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4OTMsIDB4MTksIDB4QUMsIDB4NUEsIDB4QzksIDB4OEEsIDB4MUMsIDB4NzUpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhDMSwgMHhGNiwgMHg3NiwgMHg4NiwgMHg4OSwgMHgyNywgMHg4RCwgMHgyOCksCit9Oworc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDE5MmsxX1RfMl9ZW10gPSB7CisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDRCLCAweEUwLCAweDZGLCAweDM0LCAweEJBLCAweDVFLCAweEQzLCAweDk2KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NkEsIDB4REMsIDB4QTYsIDB4ODcsIDB4QzksIDB4OUQsIDB4QzAsIDB4ODIpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgwOSwgMHgxMSwgMHg3RSwgMHhENiwgMHhGNywgMHgzMywgMHhGQywgMHhFNCksCit9Oworc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDE5MmsxX1RfM19YW10gPSB7CisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEMyLCAweDM3LCAweDNFLCAweEMwLCAweDdGLCAweDYyLCAweEU3LCAweDU0KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QTUsIDB4M0IsIDB4NjksIDB4OUQsIDB4NDQsIDB4QkMsIDB4ODIsIDB4OTkpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhENCwgMHg4NCwgMHhCMywgMHg1RiwgMHgyQiwgMHhBNSwgMHg5RSwgMHgyQyksCit9Oworc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDE5MmsxX1RfM19ZW10gPSB7CisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDFELCAweDk1LCAweEVCLCAweDRDLCAweDA0LCAweEI0LCAweEY0LCAweDc1KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NTUsIDB4QUQsIDB4NEIsIDB4RDUsIDB4OUEsIDB4RUIsIDB4QzQsIDB4NEUpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhDOSwgMHhCMSwgMHhDNSwgMHg1OSwgMHhFMywgMHhENSwgMHgxNiwgMHgyQSksCit9Oworc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDE5MmsxX1RfNF9YW10gPSB7CisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDQ4LCAweDJBLCAweENDLCAweEFDLCAweEQwLCAweEVFLCAweDUwLCAweEVDKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4OTksIDB4ODMsIDB4RTAsIDB4NUIsIDB4MTQsIDB4NDQsIDB4NTIsIDB4MjApLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhENiwgMHgxNSwgMHgyRCwgMHg3OCwgMHhGNiwgMHg1MSwgMHgzMiwgMHhDRiksCit9Oworc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDE5MmsxX1RfNF9ZW10gPSB7CisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDg2LCAweDM2LCAweDlCLCAweERELCAweEY4LCAweERELCAweEVGLCAweEIyKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MEIsIDB4QjEsIDB4NkEsIDB4MkIsIDB4QUYsIDB4RUIsIDB4MkIsIDB4QjEpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhDOSwgMHg4NywgMHg3QSwgMHg2NiwgMHg1RCwgMHg1QiwgMHhERiwgMHg4RiksCit9Oworc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDE5MmsxX1RfNV9YW10gPSB7CisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDYyLCAweDQ1LCAweEU1LCAweDgxLCAweDlCLCAweEVCLCAweDM3LCAweDIzKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QjMsIDB4MjksIDB4RTIsIDB4MjAsIDB4NjQsIDB4MjMsIDB4NkIsIDB4NkUpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhGRSwgMHgxRCwgMHg0MSwgMHhFMSwgMHg5QiwgMHg2MSwgMHg3QiwgMHhEOSksCit9Oworc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDE5MmsxX1RfNV9ZW10gPSB7CisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDc1LCAweDU3LCAweEEzLCAweDBBLCAweDEzLCAweEU0LCAweDU5LCAweDE1KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NzksIDB4NkUsIDB4NEEsIDB4NDgsIDB4ODQsIDB4OTAsIDB4QUMsIDB4QzcpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg5QywgMHhCOCwgMHhGNSwgMHhGMywgMHhERSwgMHhBMCwgMHhBMSwgMHgxRCksCit9Oworc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDE5MmsxX1RfNl9YW10gPSB7CisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEEzLCAweDMyLCAweDgxLCAweEE5LCAweDkxLCAweDVBLCAweDRFLCAweDMzKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4Q0IsIDB4QTgsIDB4OTAsIDB4QkUsIDB4MEYsIDB4RUMsIDB4QzAsIDB4ODUpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg4MCwgMHgzMCwgMHhENywgMHgwOCwgMHhBRSwgMHhDNCwgMHgzQSwgMHhBNSksCit9Oworc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDE5MmsxX1RfNl9ZW10gPSB7CisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEJDLCAweDU1LCAweEUzLCAweDc2LCAweEIzLCAweDY0LCAweDc0LCAweDlGKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4M0YsIDB4NzUsIDB4RDQsIDB4REIsIDB4OTgsIDB4RDcsIDB4MzksIDB4QUUpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhENCwgMHhFQiwgMHg4QSwgMHhBQiwgMHgxNiwgMHhEOSwgMHhENCwgMHgwQiksCit9Oworc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDE5MmsxX1RfN19YW10gPSB7CisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDQxLCAweEJFLCAweEY5LCAweEM3LCAweEM3LCAweEJBLCAweEYzLCAweEExKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QzIsIDB4ODUsIDB4NTksIDB4RjMsIDB4NjAsIDB4NDEsIDB4MDIsIDB4RDIpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg0NiwgMHgxQywgMHg0QSwgMHhBNCwgMHhDNywgMHhFRCwgMHg2NiwgMHhCQyksCit9Oworc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDE5MmsxX1RfN19ZW10gPSB7CisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEMzLCAweDlDLCAweDJFLCAweDQ2LCAweDUyLCAweDE4LCAweDg3LCAweDE0KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RkYsIDB4MzUsIDB4NUEsIDB4NzUsIDB4QUMsIDB4NEQsIDB4NzUsIDB4OTEpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhDRSwgMHgyRiwgMHhBQywgMHhGQywgMHhCQywgMHhFNiwgMHg5MywgMHg1RSksCit9Oworc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDE5MmsxX1RfOF9YW10gPSB7CisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDg3LCAweDRELCAweEM5LCAweDE4LCAweEU5LCAweDAwLCAweEVCLCAweDMzKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MUEsIDB4NjksIDB4NzIsIDB4MDcsIDB4NUEsIDB4NTksIDB4QTgsIDB4MjYpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhCNiwgMHg2NSwgMHg4MywgMHgyMCwgMHgxMCwgMHhGOSwgMHg2OSwgMHg4MiksCit9Oworc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDE5MmsxX1RfOF9ZW10gPSB7CisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDhCLCAweDU2LCAweDdGLCAweDlGLCAweEJGLCAweDQ2LCAweDBDLCAweDdFKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RkMsIDB4Q0YsIDB4RjAsIDB4REMsIDB4REYsIDB4MkQsIDB4RTYsIDB4RTUpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgwOSwgMHhGMCwgMHg3MiwgMHgzQSwgMHg3QSwgMHgwMywgMHhFNSwgMHgyMiksCit9Oworc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDE5MmsxX1RfOV9YW10gPSB7CisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDNFLCAweEFBLCAweDU3LCAweDEzLCAweDM3LCAweEE3LCAweDJDLCAweEQ0KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QTMsIDB4QUMsIDB4QTIsIDB4MjMsIDB4RjksIDB4ODQsIDB4NjAsIDB4RDMpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgzMiwgMHhFQiwgMHg1MSwgMHg3MCwgMHg2NCwgMHg3OCwgMHhDQSwgMHgwNSksCit9Oworc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDE5MmsxX1RfOV9ZW10gPSB7CisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDkxLCAweENDLCAweDMwLCAweDYyLCAweDkzLCAweDQ2LCAweDEzLCAweEU5KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MjEsIDB4MjYsIDB4Q0MsIDB4NkMsIDB4M0QsIDB4NUMsIDB4REEsIDB4MkMpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhENSwgMHhBQSwgMHhCOCwgMHgwMywgMHhBNCwgMHgxQSwgMHgwMCwgMHg5NiksCit9Oworc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDE5MmsxX1RfMTBfWFtdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhGOSwgMHg5RCwgMHhFNiwgMHhDQywgMHg0RSwgMHgyRSwgMHhDMiwgMHhENSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEI0LCAweEMzLCAweDhBLCAweEFFLCAweDZGLCAweDQwLCAweDA1LCAweEVCKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4OUQsIDB4OEYsIDB4NEEsIDB4NEQsIDB4MzUsIDB4RDMsIDB4NTAsIDB4OUQpLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AxOTJrMV9UXzEwX1lbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MUYsIDB4RkQsIDB4OTgsIDB4QUIsIDB4QzcsIDB4MDMsIDB4QjQsIDB4NTUpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg0MCwgMHg0MCwgMHhEMiwgMHg5RiwgMHhDQSwgMHhEMCwgMHg1MywgMHgwMCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDFBLCAweDg0LCAweDAwLCAweDZGLCAweEM4LCAweEFELCAweEVELCAweDhEKSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMTkyazFfVF8xMV9YW10gPSB7CisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweENFLCAweEQzLCAweDU3LCAweEQ3LCAweEMzLCAweDA3LCAweEJELCAweEQ3KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NjcsIDB4QkEsIDB4NDcsIDB4MUQsIDB4M0QsIDB4RUYsIDB4OTgsIDB4NkMpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg2RCwgMHhDMCwgMHg2QywgMHg3RiwgMHgxMiwgMHhFRSwgMHg5RiwgMHg2NyksCit9Oworc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDE5MmsxX1RfMTFfWVtdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhDQSwgMHgwMiwgMHhEQSwgMHg3OSwgMHhBQSwgMHhDOSwgMHgyNywgMHhDNCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDIxLCAweDc5LCAweEM3LCAweDcxLCAweDg0LCAweENCLCAweEU1LCAweDVBKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MTUsIDB4MzcsIDB4MDYsIDB4QkEsIDB4QjUsIDB4RDUsIDB4MTgsIDB4NEMpLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AxOTJrMV9UXzEyX1hbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QTEsIDB4NjUsIDB4NzIsIDB4NkMsIDB4RjIsIDB4NjMsIDB4MjcsIDB4NkEpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg2OSwgMHhCQywgMHg3MSwgMHhERiwgMHg3NSwgMHhGOCwgMHg5OCwgMHg0RCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDcwLCAweDcwLCAweDlCLCAweERDLCAweEU3LCAweDE4LCAweDcxLCAweEZGKSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMTkyazFfVF8xMl9ZW10gPSB7CisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDE1LCAweDVCLCAweDlGLCAweDAwLCAweDVBLCAweEI2LCAweDgwLCAweDdBKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QjcsIDB4RTAsIDB4QkIsIDB4RkMsIDB4NUUsIDB4NzgsIDB4OUMsIDB4ODkpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg2MCwgMHgwMywgMHg2OCwgMHg4MywgMHgzRCwgMHgyRSwgMHg0QywgMHhERCksCit9Oworc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDE5MmsxX1RfMTNfWFtdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgzQiwgMHg0OSwgMHgyMywgMHhBOCwgMHhDQiwgMHgzQiwgMHgxQSwgMHhGNiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDhCLCAweDNELCAweEE3LCAweDQ2LCAweENGLCAweDc1LCAweEI2LCAweDJDKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4OTIsIDB4RkQsIDB4MzAsIDB4MDEsIDB4QjYsIDB4RUYsIDB4RjksIDB4RTgpLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AxOTJrMV9UXzEzX1lbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4REMsIDB4RkEsIDB4REEsIDB4QjgsIDB4MjksIDB4NDIsIDB4QzksIDB4QzcpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgwNiwgMHhENywgMHhBMCwgMHhFNiwgMHg2QiwgMHg4NiwgMHg2MSwgMHgzOSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweERCLCAweEU5LCAweEQzLCAweDM3LCAweEQ4LCAweEU3LCAweDM1LCAweEE5KSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMTkyazFfVF8xNF9YW10gPSB7CisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEZELCAweEM4LCAweDhFLCAweEIxLCAweENCLCAweEIxLCAweEI1LCAweDREKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MTYsIDB4RDcsIDB4NDYsIDB4N0QsIDB4QUYsIDB4RTIsIDB4REMsIDB4QkIpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhEMCwgMHg0NiwgMHhFNywgMHhEOCwgMHg3NiwgMHgzMSwgMHg5MCwgMHg3NiksCit9Oworc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDE5MmsxX1RfMTRfWVtdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhFQiwgMHhEMywgMHhGNCwgMHg3NCwgMHhFMSwgMHg2NywgMHhEOCwgMHg2NiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEU3LCAweDcwLCAweDNDLCAweEM4LCAweEFGLCAweDVGLCAweEY0LCAweDU4KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MjQsIDB4NEUsIDB4RUQsIDB4NUMsIDB4NDMsIDB4QjMsIDB4MTYsIDB4MzUpLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AxOTJrMV9UXzE1X1hbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NTcsIDB4QUUsIDB4RDEsIDB4REQsIDB4MzEsIDB4MTQsIDB4RDMsIDB4RjApLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhFOCwgMHgxNCwgMHgwNiwgMHgxMywgMHgxMiwgMHgxQywgMHg4MSwgMHhGNSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEE2LCAweEY5LCAweDBDLCAweDkxLCAweEY3LCAweDY3LCAweDU5LCAweDYzKSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMTkyazFfVF8xNV9ZW10gPSB7CisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEFCLCAweDkxLCAweEUyLCAweEY0LCAweDlELCAweEVCLCAweDg4LCAweDg3KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4REIsIDB4ODIsIDB4MzAsIDB4OUMsIDB4QUUsIDB4MTgsIDB4NEQsIDB4QjcpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgzQywgMHg3OSwgMHhDRiwgMHgxNywgMHhBNSwgMHgxRSwgMHhFOCwgMHhDOCksCit9Oworc3RhdGljIGNvbnN0IG1iZWR0bHNfZWNwX3BvaW50IHNlY3AxOTJrMV9UWzE2XSA9IHsKKyAgICBFQ1BfUE9JTlRfSU5JVF9YWV9aMShzZWNwMTkyazFfVF8wX1gsIHNlY3AxOTJrMV9UXzBfWSksCisgICAgRUNQX1BPSU5UX0lOSVRfWFlfWjAoc2VjcDE5MmsxX1RfMV9YLCBzZWNwMTkyazFfVF8xX1kpLAorICAgIEVDUF9QT0lOVF9JTklUX1hZX1owKHNlY3AxOTJrMV9UXzJfWCwgc2VjcDE5MmsxX1RfMl9ZKSwKKyAgICBFQ1BfUE9JTlRfSU5JVF9YWV9aMChzZWNwMTkyazFfVF8zX1gsIHNlY3AxOTJrMV9UXzNfWSksCisgICAgRUNQX1BPSU5UX0lOSVRfWFlfWjAoc2VjcDE5MmsxX1RfNF9YLCBzZWNwMTkyazFfVF80X1kpLAorICAgIEVDUF9QT0lOVF9JTklUX1hZX1owKHNlY3AxOTJrMV9UXzVfWCwgc2VjcDE5MmsxX1RfNV9ZKSwKKyAgICBFQ1BfUE9JTlRfSU5JVF9YWV9aMChzZWNwMTkyazFfVF82X1gsIHNlY3AxOTJrMV9UXzZfWSksCisgICAgRUNQX1BPSU5UX0lOSVRfWFlfWjAoc2VjcDE5MmsxX1RfN19YLCBzZWNwMTkyazFfVF83X1kpLAorICAgIEVDUF9QT0lOVF9JTklUX1hZX1owKHNlY3AxOTJrMV9UXzhfWCwgc2VjcDE5MmsxX1RfOF9ZKSwKKyAgICBFQ1BfUE9JTlRfSU5JVF9YWV9aMChzZWNwMTkyazFfVF85X1gsIHNlY3AxOTJrMV9UXzlfWSksCisgICAgRUNQX1BPSU5UX0lOSVRfWFlfWjAoc2VjcDE5MmsxX1RfMTBfWCwgc2VjcDE5MmsxX1RfMTBfWSksCisgICAgRUNQX1BPSU5UX0lOSVRfWFlfWjAoc2VjcDE5MmsxX1RfMTFfWCwgc2VjcDE5MmsxX1RfMTFfWSksCisgICAgRUNQX1BPSU5UX0lOSVRfWFlfWjAoc2VjcDE5MmsxX1RfMTJfWCwgc2VjcDE5MmsxX1RfMTJfWSksCisgICAgRUNQX1BPSU5UX0lOSVRfWFlfWjAoc2VjcDE5MmsxX1RfMTNfWCwgc2VjcDE5MmsxX1RfMTNfWSksCisgICAgRUNQX1BPSU5UX0lOSVRfWFlfWjAoc2VjcDE5MmsxX1RfMTRfWCwgc2VjcDE5MmsxX1RfMTRfWSksCisgICAgRUNQX1BPSU5UX0lOSVRfWFlfWjAoc2VjcDE5MmsxX1RfMTVfWCwgc2VjcDE5MmsxX1RfMTVfWSksCit9OworI2Vsc2UKKyNkZWZpbmUgc2VjcDE5MmsxX1QgTlVMTAorI2VuZGlmCisKKyNlbmRpZiAvKiBNQkVEVExTX0VDUF9EUF9TRUNQMTkySzFfRU5BQkxFRCAqLworCisjaWYgZGVmaW5lZChNQkVEVExTX0VDUF9EUF9TRUNQMjI0SzFfRU5BQkxFRCkKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AyMjRrMV9wW10gPSB7CisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDZELCAweEU1LCAweEZGLCAweEZGLCAweEZFLCAweEZGLCAweEZGLCAweEZGKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RkYsIDB4RkYsIDB4RkYsIDB4RkYsIDB4RkYsIDB4RkYsIDB4RkYsIDB4RkYpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfNCgweEZGLCAweEZGLCAweEZGLCAweEZGKSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMjI0azFfYVtdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzIoMHgwMCwgMHgwMCksCit9Oworc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDIyNGsxX2JbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF8yKDB4MDUsIDB4MDApLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AyMjRrMV9neFtdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg1QywgMHhBNCwgMHhCNywgMHhCNiwgMHgwRSwgMHg2NSwgMHg3RSwgMHgwRiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEE5LCAweDc1LCAweDcwLCAweEU0LCAweEU5LCAweDY3LCAweEE0LCAweDY5KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QTEsIDB4MjgsIDB4RkMsIDB4MzAsIDB4REYsIDB4OTksIDB4RjAsIDB4NEQpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzQoMHgzMywgMHg1QiwgMHg0NSwgMHhBMSksCit9Oworc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDIyNGsxX2d5W10gPSB7CisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEE1LCAweDYxLCAweDZELCAweDU1LCAweERCLCAweDRCLCAweENBLCAweEUyKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NTksIDB4QkQsIDB4QjAsIDB4QzAsIDB4RjcsIDB4MTksIDB4RTMsIDB4RjcpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhENiwgMHhGQiwgMHhDQSwgMHg4MiwgMHg0MiwgMHgzNCwgMHhCQSwgMHg3RiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfNCgweEVELCAweDlGLCAweDA4LCAweDdFKSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMjI0azFfbltdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhGNywgMHhCMSwgMHg5RiwgMHg3NiwgMHg3MSwgMHhBOSwgMHhGMCwgMHhDQSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDg0LCAweDYxLCAweEVDLCAweEQyLCAweEU4LCAweERDLCAweDAxLCAweDAwKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDApLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMSwgMHgwMCwgMHgwMCwgMHgwMCksCit9OworCisjaWYgTUJFRFRMU19FQ1BfRklYRURfUE9JTlRfT1BUSU0gPT0gMQorc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDIyNGsxX1RfMF9YW10gPSB7CisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDVDLCAweEE0LCAweEI3LCAweEI2LCAweDBFLCAweDY1LCAweDdFLCAweDBGKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QTksIDB4NzUsIDB4NzAsIDB4RTQsIDB4RTksIDB4NjcsIDB4QTQsIDB4NjkpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhBMSwgMHgyOCwgMHhGQywgMHgzMCwgMHhERiwgMHg5OSwgMHhGMCwgMHg0RCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDMzLCAweDVCLCAweDQ1LCAweEExLCAweDAwLCAweDAwLCAweDAwLCAweDAwKSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMjI0azFfVF8wX1lbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QTUsIDB4NjEsIDB4NkQsIDB4NTUsIDB4REIsIDB4NEIsIDB4Q0EsIDB4RTIpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg1OSwgMHhCRCwgMHhCMCwgMHhDMCwgMHhGNywgMHgxOSwgMHhFMywgMHhGNyksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEQ2LCAweEZCLCAweENBLCAweDgyLCAweDQyLCAweDM0LCAweEJBLCAweDdGKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RUQsIDB4OUYsIDB4MDgsIDB4N0UsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDApLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AyMjRrMV9UXzFfWFtdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg5OSwgMHg2QywgMHgyMiwgMHgyMiwgMHg0MCwgMHg4OSwgMHhBRSwgMHg3QSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDJGLCAweDkyLCAweEUxLCAweDg3LCAweDU2LCAweDM1LCAweEFGLCAweDlCKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4ODgsIDB4QUYsIDB4MDgsIDB4MzUsIDB4MjcsIDB4RUEsIDB4MDQsIDB4RUQpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhGMCwgMHg1MywgMHhGRCwgMHhDRiwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCksCit9Oworc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDIyNGsxX1RfMV9ZW10gPSB7CisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEMxLCAweEQwLCAweDlGLCAweDhELCAweEYzLCAweDYzLCAweDU0LCAweDMwKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MzksIDB4REIsIDB4MEYsIDB4NjEsIDB4NTQsIDB4MjYsIDB4RDEsIDB4OTgpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhGNSwgMHgyMSwgMHhGNywgMHgxQiwgMHhCNSwgMHgxRCwgMHhGNiwgMHg3RSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEZGLCAweDA1LCAweERBLCAweDhGLCAweDAwLCAweDAwLCAweDAwLCAweDAwKSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMjI0azFfVF8yX1hbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MTAsIDB4MjYsIDB4NzMsIDB4QkMsIDB4RTQsIDB4MjksIDB4NjIsIDB4NTYpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgzNywgMHg5NSwgMHgxNywgMHg4QiwgMHhDMywgMHg5QiwgMHhBQywgMHhDQyksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEIxLCAweERCLCAweDc3LCAweERGLCAweERELCAweDEzLCAweDA0LCAweDk4KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MDIsIDB4RkMsIDB4MjIsIDB4OTMsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDApLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AyMjRrMV9UXzJfWVtdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhBQywgMHg2NSwgMHhGMSwgMHg1QSwgMHgzNywgMHhFRiwgMHg3OSwgMHhBRCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDk5LCAweDAxLCAweDM3LCAweEFDLCAweDlBLCAweDVCLCAweDUxLCAweDY1KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RkEsIDB4NzUsIDB4MTMsIDB4QTksIDB4NEEsIDB4QUQsIDB4RkUsIDB4OUIpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgzMiwgMHg4MiwgMHg2RiwgMHg2NiwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCksCit9Oworc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDIyNGsxX1RfM19YW10gPSB7CisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDRELCAweDVFLCAweEYwLCAweDQwLCAweEMzLCAweEE2LCAweEUyLCAweDFFKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MzQsIDB4OUEsIDB4NkYsIDB4Q0YsIDB4MTEsIDB4MjYsIDB4NjYsIDB4ODUpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg3OSwgMHg3MywgMHhBOCwgMHhDRiwgMHgyQiwgMHgxMiwgMHgzNiwgMHgzNyksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEI5LCAweEIzLCAweDBBLCAweDU4LCAweDAwLCAweDAwLCAweDAwLCAweDAwKSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMjI0azFfVF8zX1lbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RDMsIDB4NzksIDB4MDAsIDB4NTUsIDB4MDQsIDB4MzQsIDB4OTAsIDB4MUEpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgwQSwgMHg1NCwgMHgxQywgMHhDMiwgMHg0NSwgMHgwQywgMHgxQiwgMHgyMyksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDg2LCAweDE5LCAweEFCLCAweEE4LCAweEZDLCAweDczLCAweERDLCAweEVFKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NzIsIDB4RkIsIDB4OTMsIDB4Q0UsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDApLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AyMjRrMV9UXzRfWFtdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhGOCwgMHg3NSwgMHhEMCwgMHg2NiwgMHg5NSwgMHg4NiwgMHhDQSwgMHg2NiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDE3LCAweEVBLCAweDI5LCAweDE2LCAweDZBLCAweDM4LCAweERGLCAweDQxKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RDgsIDB4QTIsIDB4MzYsIDB4MkYsIDB4REMsIDB4QkIsIDB4NUUsIDB4RjcpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhENCwgMHg4OSwgMHg1OSwgMHg0OSwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCksCit9Oworc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDIyNGsxX1RfNF9ZW10gPSB7CisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweENBLCAweEEzLCAweDk5LCAweDlELCAweEI4LCAweDc3LCAweDlELCAweDFEKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MEEsIDB4OTMsIDB4NDMsIDB4NDcsIDB4QzYsIDB4NUMsIDB4RjksIDB4RkQpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhBQSwgMHgwMCwgMHg3OSwgMHg0MiwgMHg2NCwgMHhCOCwgMHgyNSwgMHgzRSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDI5LCAweDU0LCAweEI0LCAweDMzLCAweDAwLCAweDAwLCAweDAwLCAweDAwKSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMjI0azFfVF81X1hbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RDksIDB4MEMsIDB4NDIsIDB4OTAsIDB4ODMsIDB4MEIsIDB4MzEsIDB4NUYpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg1NCwgMHgyRSwgMHhBRSwgMHhDOCwgMHhDNywgMHg1RiwgMHhEMiwgMHg3MCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEE5LCAweEJDLCAweEFELCAweDQxLCAweEU3LCAweDMyLCAweDNBLCAweDgxKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4OEEsIDB4OTcsIDB4NTIsIDB4ODMsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDApLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AyMjRrMV9UXzVfWVtdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgxQSwgMHgxMywgMHg3QSwgMHhCRCwgMHhBRSwgMHg5NCwgMHg2MCwgMHhGRCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDkyLCAweDlCLCAweDk1LCAweEI0LCAweDZFLCAweDY4LCAweEIyLCAweDFGKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MTUsIDB4NDksIDB4QkUsIDB4NTEsIDB4RkUsIDB4NjYsIDB4MTUsIDB4NzQpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhFNiwgMHgzNywgMHhFNCwgMHhGRSwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCksCit9Oworc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDIyNGsxX1RfNl9YW10gPSB7CisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEY2LCAweDlCLCAweEVFLCAweDY0LCAweEM5LCAweDFCLCAweEJELCAweDc3KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4REEsIDB4NUYsIDB4MzQsIDB4QTksIDB4MEIsIDB4QjcsIDB4MjUsIDB4NTIpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg5MCwgMHgxMywgMHhCMSwgMHgzOCwgMHhGQiwgMHg5RCwgMHg3OCwgMHhFRCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDM5LCAweEU3LCAweDFCLCAweEZBLCAweDAwLCAweDAwLCAweDAwLCAweDAwKSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMjI0azFfVF82X1lbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RkIsIDB4QjMsIDB4QjcsIDB4NDQsIDB4OTIsIDB4NkIsIDB4MDAsIDB4ODIpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg5NywgMHg4MiwgMHg0NCwgMHgzRSwgMHgxOCwgMHgxQSwgMHg1OCwgMHg2QSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDE1LCAweEY4LCAweEMwLCAweEU0LCAweEVFLCAweEMxLCAweEJGLCAweDQ0KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4N0UsIDB4MzIsIDB4MjcsIDB4QjIsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDApLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AyMjRrMV9UXzdfWFtdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhGNCwgMHg5QSwgMHg0MiwgMHg2MiwgMHg4QiwgMHgyNiwgMHg1NCwgMHgyMSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDI0LCAweDg1LCAweDc0LCAweEEwLCAweDc5LCAweEE4LCAweEVFLCAweEJFKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4ODAsIDB4MzYsIDB4NjAsIDB4QjMsIDB4MjgsIDB4NEQsIDB4NTUsIDB4QkUpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgzMiwgMHgyNywgMHg4MiwgMHgyOSwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCksCit9Oworc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDIyNGsxX1RfN19ZW10gPSB7CisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDBELCAweEZDLCAweDczLCAweDc3LCAweEFGLCAweDVDLCAweEFDLCAweDc4KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4Q0MsIDB4RUQsIDB4RTUsIDB4RjYsIDB4MUQsIDB4QTgsIDB4NjcsIDB4NDMpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhGOCwgMHhERSwgMHgzMywgMHgxQywgMHhGMSwgMHg4MCwgMHg3MywgMHhGOCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDJBLCAweEUyLCAweERFLCAweDNDLCAweDAwLCAweDAwLCAweDAwLCAweDAwKSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMjI0azFfVF84X1hbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NTcsIDB4M0UsIDB4NkIsIDB4RkUsIDB4RjAsIDB4MDQsIDB4MjgsIDB4MDEpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhCQiwgMHhCMiwgMHgxNCwgMHg5RCwgMHgxOCwgMHgxMSwgMHg3RCwgMHg5RCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDk2LCAweEM0LCAweEQ2LCAweDJFLCAweDZFLCAweDU3LCAweDRELCAweEUxKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RUEsIDB4NTUsIDB4MUIsIDB4REUsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDApLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AyMjRrMV9UXzhfWVtdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgwNywgMHhGNywgMHgxNywgMHhCQywgMHg0NSwgMHhBQiwgMHgxNiwgMHhBQiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweENELCAweEIwLCAweEVGLCAweDYxLCAweEUzLCAweDIwLCAweDdDLCAweEY4KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NkMsIDB4ODUsIDB4NDEsIDB4NEQsIDB4RjEsIDB4N0UsIDB4NEQsIDB4NDEpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg5OSwgMHhDMiwgMHg5QiwgMHg1RSwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCksCit9Oworc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDIyNGsxX1RfOV9YW10gPSB7CisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDcwLCAweDJFLCAweDQ5LCAweDNELCAweDNFLCAweDRCLCAweEQzLCAweDMyKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QzgsIDB4MkIsIDB4OUQsIDB4RDUsIDB4MjcsIDB4RkEsIDB4Q0EsIDB4RTApLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhCMywgMHhCMywgMHg2QSwgMHhFMCwgMHg3OSwgMHgxNCwgMHgyOCwgMHgwRiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDZDLCAweDFFLCAweERDLCAweEY1LCAweDAwLCAweDAwLCAweDAwLCAweDAwKSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMjI0azFfVF85X1lbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4Q0EsIDB4NDQsIDB4NTYsIDB4Q0QsIDB4RkMsIDB4OUYsIDB4MDksIDB4RkYpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg1QywgMHg4QywgMHg1OSwgMHhBNCwgMHg2NCwgMHgyQSwgMHgzQSwgMHhFRCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDQwLCAweEEwLCAweEI1LCAweDg2LCAweDRFLCAweDY5LCAweERBLCAweDA2KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MDgsIDB4OEIsIDB4MTEsIDB4MzgsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDApLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AyMjRrMV9UXzEwX1hbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QTAsIDB4MTcsIDB4MTYsIDB4MTIsIDB4MTcsIDB4REMsIDB4MDAsIDB4N0UpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhFNywgMHg3NiwgMHgyNCwgMHg2QywgMHg5NywgMHgyQywgMHhCNSwgMHhGOSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDgyLCAweDcxLCAweEUzLCAweEIwLCAweEJCLCAweDRFLCAweDUwLCAweDUyKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NkUsIDB4NDgsIDB4MjYsIDB4RDUsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDApLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AyMjRrMV9UXzEwX1lbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MDYsIDB4NUYsIDB4MjgsIDB4RjYsIDB4MDEsIDB4NUEsIDB4NjAsIDB4NDEpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhBRSwgMHg5NSwgMHhGRSwgMHhEMCwgMHhBRCwgMHgxNSwgMHhENCwgMHhEOSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEFELCAweDVCLCAweDdBLCAweEZELCAweDgwLCAweEY3LCAweDlGLCAweDY0KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MzIsIDB4QkMsIDB4MUIsIDB4REYsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDApLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AyMjRrMV9UXzExX1hbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QkIsIDB4RTYsIDB4REYsIDB4MTQsIDB4MjksIDB4RjQsIDB4RDQsIDB4MTQpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhFNSwgMHgxMiwgMHhERCwgMHhFQywgMHg1QiwgMHg4QSwgMHg1OSwgMHhFNSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDI2LCAweDkyLCAweDNFLCAweDM1LCAweDA4LCAweEU5LCAweENGLCAweDBFKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RTAsIDB4MzUsIDB4MjksIDB4OTcsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDApLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AyMjRrMV9UXzExX1lbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MTEsIDB4REIsIDB4RDYsIDB4NkEsIDB4QzUsIDB4NDMsIDB4QTQsIDB4QTEpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg2MSwgMHgzMywgMHg1MCwgMHg2MSwgMHg3MCwgMHhBMSwgMHhFOSwgMHhDRSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDE1LCAweDE1LCAweDZFLCAweDVGLCAweDAxLCAweDBDLCAweDhDLCAweEZBKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4ODUsIDB4QTEsIDB4OUEsIDB4OUQsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDApLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AyMjRrMV9UXzEyX1hbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NkUsIDB4QzYsIDB4RjcsIDB4RTIsIDB4NEEsIDB4Q0QsIDB4OUIsIDB4NjEpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgzNCwgMHg0RCwgMHg1QSwgMHhCOCwgMHhFMiwgMHg2RCwgMHhBNiwgMHg1MCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDMyLCAweDNGLCAweEI2LCAweDE3LCAweEUzLCAweDJDLCAweDZGLCAweDY1KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MUUsIDB4QTQsIDB4NTksIDB4NTEsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDApLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AyMjRrMV9UXzEyX1lbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NzcsIDB4NEYsIDB4N0MsIDB4NDksIDB4Q0QsIDB4NkUsIDB4RUIsIDB4M0MpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgwNSwgMHhDOSwgMHgxRiwgMHhCNywgMHg0RCwgMHg5OCwgMHhDNywgMHg2NyksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDRDLCAweEZELCAweDk4LCAweDIwLCAweDk1LCAweEJCLCAweDIwLCAweDNBKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RTAsIDB4RjIsIDB4NzMsIDB4OTIsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDApLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AyMjRrMV9UXzEzX1hbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RTIsIDB4RUYsIDB4RkIsIDB4MzAsIDB4RkEsIDB4MTIsIDB4MUEsIDB4QjApLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg3QSwgMHg0QywgMHgyNCwgMHhCNCwgMHg1QiwgMHhDOSwgMHg0QywgMHgwRiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDdBLCAweERELCAweDVFLCAweDg0LCAweDk1LCAweDRELCAweDI2LCAweEVEKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RTMsIDB4RkEsIDB4RjksIDB4M0EsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDApLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AyMjRrMV9UXzEzX1lbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NkEsIDB4QTMsIDB4MkUsIDB4N0EsIDB4REMsIDB4QTcsIDB4NTMsIDB4QTkpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg3QywgMHg5RiwgMHg4MSwgMHg4NCwgMHhCMiwgMHgwRCwgMHhGRSwgMHgzMSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDYxLCAweDg5LCAweDFCLCAweDc3LCAweDBDLCAweDg5LCAweDcxLCAweEVDKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RkEsIDB4RkYsIDB4N0YsIDB4QjIsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDApLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AyMjRrMV9UXzE0X1hbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MjgsIDB4RTksIDB4MkMsIDB4NzksIDB4QTYsIDB4M0MsIDB4QUQsIDB4OTMpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhENiwgMHhFMCwgMHgyMywgMHgwMiwgMHg4NiwgMHgwRiwgMHg3NywgMHgyQSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDEzLCAweDkzLCAweDZELCAweEU5LCAweEY5LCAweDNDLCAweEJFLCAweEI5KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MDQsIDB4RTcsIDB4MjQsIDB4OTIsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDApLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AyMjRrMV9UXzE0X1lbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QkIsIDB4M0MsIDB4NUIsIDB4NEIsIDB4MUIsIDB4MjUsIDB4MzcsIDB4RDYpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhDOSwgMHhFOCwgMHgzOCwgMHgxQiwgMHhBMSwgMHg1QSwgMHgyRSwgMHg2OCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDAzLCAweDE5LCAweEZELCAweEY0LCAweDc4LCAweDAxLCAweDZCLCAweDQ0KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MEYsIDB4NjksIDB4MzcsIDB4NEYsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDApLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AyMjRrMV9UXzE1X1hbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MUEsIDB4RTIsIDB4QkYsIDB4RDMsIDB4RUMsIDB4OTUsIDB4OUMsIDB4MDMpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhDMiwgMHg3QiwgMHhGQywgMHhENSwgMHhEMywgMHgyNSwgMHg1RSwgMHgwRiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDM5LCAweDU1LCAweDA5LCAweEEyLCAweDU4LCAweDZBLCAweEM5LCAweEZGKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4ODAsIDB4Q0MsIDB4M0IsIDB4RDksIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDApLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AyMjRrMV9UXzE1X1lbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4OEYsIDB4MDgsIDB4NjUsIDB4NUUsIDB4Q0IsIDB4QUIsIDB4NDgsIDB4QzgpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhFRSwgMHg3OSwgMHg4QiwgMHhDMCwgMHgxMSwgMHhDMCwgMHg2OSwgMHgzOCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEU2LCAweEU4LCAweDhDLCAweDRDLCAweEM1LCAweDI4LCAweEU0LCAweEFFKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QTUsIDB4MUYsIDB4MzQsIDB4NUMsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDApLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX2VjcF9wb2ludCBzZWNwMjI0azFfVFsxNl0gPSB7CisgICAgRUNQX1BPSU5UX0lOSVRfWFlfWjEoc2VjcDIyNGsxX1RfMF9YLCBzZWNwMjI0azFfVF8wX1kpLAorICAgIEVDUF9QT0lOVF9JTklUX1hZX1owKHNlY3AyMjRrMV9UXzFfWCwgc2VjcDIyNGsxX1RfMV9ZKSwKKyAgICBFQ1BfUE9JTlRfSU5JVF9YWV9aMChzZWNwMjI0azFfVF8yX1gsIHNlY3AyMjRrMV9UXzJfWSksCisgICAgRUNQX1BPSU5UX0lOSVRfWFlfWjAoc2VjcDIyNGsxX1RfM19YLCBzZWNwMjI0azFfVF8zX1kpLAorICAgIEVDUF9QT0lOVF9JTklUX1hZX1owKHNlY3AyMjRrMV9UXzRfWCwgc2VjcDIyNGsxX1RfNF9ZKSwKKyAgICBFQ1BfUE9JTlRfSU5JVF9YWV9aMChzZWNwMjI0azFfVF81X1gsIHNlY3AyMjRrMV9UXzVfWSksCisgICAgRUNQX1BPSU5UX0lOSVRfWFlfWjAoc2VjcDIyNGsxX1RfNl9YLCBzZWNwMjI0azFfVF82X1kpLAorICAgIEVDUF9QT0lOVF9JTklUX1hZX1owKHNlY3AyMjRrMV9UXzdfWCwgc2VjcDIyNGsxX1RfN19ZKSwKKyAgICBFQ1BfUE9JTlRfSU5JVF9YWV9aMChzZWNwMjI0azFfVF84X1gsIHNlY3AyMjRrMV9UXzhfWSksCisgICAgRUNQX1BPSU5UX0lOSVRfWFlfWjAoc2VjcDIyNGsxX1RfOV9YLCBzZWNwMjI0azFfVF85X1kpLAorICAgIEVDUF9QT0lOVF9JTklUX1hZX1owKHNlY3AyMjRrMV9UXzEwX1gsIHNlY3AyMjRrMV9UXzEwX1kpLAorICAgIEVDUF9QT0lOVF9JTklUX1hZX1owKHNlY3AyMjRrMV9UXzExX1gsIHNlY3AyMjRrMV9UXzExX1kpLAorICAgIEVDUF9QT0lOVF9JTklUX1hZX1owKHNlY3AyMjRrMV9UXzEyX1gsIHNlY3AyMjRrMV9UXzEyX1kpLAorICAgIEVDUF9QT0lOVF9JTklUX1hZX1owKHNlY3AyMjRrMV9UXzEzX1gsIHNlY3AyMjRrMV9UXzEzX1kpLAorICAgIEVDUF9QT0lOVF9JTklUX1hZX1owKHNlY3AyMjRrMV9UXzE0X1gsIHNlY3AyMjRrMV9UXzE0X1kpLAorICAgIEVDUF9QT0lOVF9JTklUX1hZX1owKHNlY3AyMjRrMV9UXzE1X1gsIHNlY3AyMjRrMV9UXzE1X1kpLAorfTsKKyNlbHNlCisjZGVmaW5lIHNlY3AyMjRrMV9UIE5VTEwKKyNlbmRpZgorI2VuZGlmIC8qIE1CRURUTFNfRUNQX0RQX1NFQ1AyMjRLMV9FTkFCTEVEICovCisKKyNpZiBkZWZpbmVkKE1CRURUTFNfRUNQX0RQX1NFQ1AyNTZLMV9FTkFCTEVEKQorc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDI1NmsxX3BbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MkYsIDB4RkMsIDB4RkYsIDB4RkYsIDB4RkUsIDB4RkYsIDB4RkYsIDB4RkYpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEZGLCAweEZGLCAweEZGLCAweEZGLCAweEZGLCAweEZGLCAweEZGLCAweEZGKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RkYsIDB4RkYsIDB4RkYsIDB4RkYsIDB4RkYsIDB4RkYsIDB4RkYsIDB4RkYpLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AyNTZrMV9hW10gPSB7CisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfMigweDAwLCAweDAwKSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMjU2azFfYltdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzIoMHgwNywgMHgwMCksCit9Oworc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDI1NmsxX2d4W10gPSB7CisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDk4LCAweDE3LCAweEY4LCAweDE2LCAweDVCLCAweDgxLCAweEYyLCAweDU5KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RDksIDB4MjgsIDB4Q0UsIDB4MkQsIDB4REIsIDB4RkMsIDB4OUIsIDB4MDIpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgwNywgMHgwQiwgMHg4NywgMHhDRSwgMHg5NSwgMHg2MiwgMHhBMCwgMHg1NSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEFDLCAweEJCLCAweERDLCAweEY5LCAweDdFLCAweDY2LCAweEJFLCAweDc5KSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMjU2azFfZ3lbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QjgsIDB4RDQsIDB4MTAsIDB4RkIsIDB4OEYsIDB4RDAsIDB4NDcsIDB4OUMpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgxOSwgMHg1NCwgMHg4NSwgMHhBNiwgMHg0OCwgMHhCNCwgMHgxNywgMHhGRCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEE4LCAweDA4LCAweDExLCAweDBFLCAweEZDLCAweEZCLCAweEE0LCAweDVEKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NjUsIDB4QzQsIDB4QTMsIDB4MjYsIDB4NzcsIDB4REEsIDB4M0EsIDB4NDgpLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AyNTZrMV9uW10gPSB7CisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDQxLCAweDQxLCAweDM2LCAweEQwLCAweDhDLCAweDVFLCAweEQyLCAweEJGKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4M0IsIDB4QTAsIDB4NDgsIDB4QUYsIDB4RTYsIDB4REMsIDB4QUUsIDB4QkEpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhGRSwgMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEZGLCAweEZGLCAweEZGLCAweEZGLCAweEZGLCAweEZGLCAweEZGLCAweEZGKSwKK307CisKKyNpZiBNQkVEVExTX0VDUF9GSVhFRF9QT0lOVF9PUFRJTSA9PSAxCitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMjU2azFfVF8wX1hbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4OTgsIDB4MTcsIDB4RjgsIDB4MTYsIDB4NUIsIDB4ODEsIDB4RjIsIDB4NTkpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhEOSwgMHgyOCwgMHhDRSwgMHgyRCwgMHhEQiwgMHhGQywgMHg5QiwgMHgwMiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDA3LCAweDBCLCAweDg3LCAweENFLCAweDk1LCAweDYyLCAweEEwLCAweDU1KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QUMsIDB4QkIsIDB4REMsIDB4RjksIDB4N0UsIDB4NjYsIDB4QkUsIDB4NzkpLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AyNTZrMV9UXzBfWVtdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhCOCwgMHhENCwgMHgxMCwgMHhGQiwgMHg4RiwgMHhEMCwgMHg0NywgMHg5QyksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDE5LCAweDU0LCAweDg1LCAweEE2LCAweDQ4LCAweEI0LCAweDE3LCAweEZEKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QTgsIDB4MDgsIDB4MTEsIDB4MEUsIDB4RkMsIDB4RkIsIDB4QTQsIDB4NUQpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg2NSwgMHhDNCwgMHhBMywgMHgyNiwgMHg3NywgMHhEQSwgMHgzQSwgMHg0OCksCit9Oworc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDI1NmsxX1RfMV9YW10gPSB7CisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEU3LCAweEVFLCAweEQ3LCAweDFFLCAweDY3LCAweDg2LCAweDMyLCAweDc0KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MjMsIDB4NzMsIDB4QjEsIDB4QTksIDB4RDUsIDB4Q0MsIDB4MjcsIDB4NzgpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgxRiwgMHgwRSwgMHgxMSwgMHgwMSwgMHg3MSwgMHhGRSwgMHg5MiwgMHg3MyksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEM2LCAweDI4LCAweDYzLCAweDZELCAweDcyLCAweDA5LCAweEE2LCAweEMwKSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMjU2azFfVF8xX1lbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4Q0UsIDB4RTEsIDB4NjksIDB4REMsIDB4M0UsIDB4MkMsIDB4NzUsIDB4QzMpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhFNSwgMHhCNywgMHgzRiwgMHgzMCwgMHgyNiwgMHgzQywgMHhERiwgMHg4RSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDNELCAweEJFLCAweEI5LCAweDVELCAweDBFLCAweEU4LCAweDVFLCAweDE0KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MDEsIDB4QzMsIDB4MDUsIDB4RDYsIDB4QjcsIDB4RDUsIDB4MjQsIDB4RkMpLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AyNTZrMV9UXzJfWFtdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgxMywgMHhDRiwgMHg3QiwgMHhEQywgMHhDRCwgMHhDMywgMHgzOSwgMHg5RCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDQyLCAweERBLCAweEI5LCAweEU1LCAweDY0LCAweEE3LCAweDQ3LCAweDkxKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NzYsIDB4NDYsIDB4QTgsIDB4NjEsIDB4RjYsIDB4MjMsIDB4RUIsIDB4NTgpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg1QywgMHhDMSwgMHhGRiwgMHhFNCwgMHg1NSwgMHhENSwgMHhDMiwgMHhCRiksCit9Oworc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDI1NmsxX1RfMl9ZW10gPSB7CisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEM5LCAweEJFLCAweEI5LCAweDU5LCAweDI0LCAweDEzLCAweDRBLCAweDJBKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NjQsIDB4NDUsIDB4MTIsIDB4REUsIDB4QkEsIDB4NEYsIDB4RUYsIDB4NTYpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhCRSwgMHgwOCwgMHhCRiwgMHhDMSwgMHg2NiwgMHhBQSwgMHgwQSwgMHhCQyksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDM2LCAweEZFLCAweDMwLCAweDU1LCAweDMxLCAweDg2LCAweEE3LCAweEI0KSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMjU2azFfVF8zX1hbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MUQsIDB4QkYsIDB4MTgsIDB4ODEsIDB4NjcsIDB4MjcsIDB4NDIsIDB4QkQpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgwOCwgMHgwNSwgMHg4MywgMHhBNCwgMHhERCwgMHg1NywgMHhEMywgMHg1MCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDIwLCAweDYzLCAweEFCLCAweEU0LCAweDkwLCAweDcwLCAweEQwLCAweDdDKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NzEsIDB4NUQsIDB4RkQsIDB4QTAsIDB4RUYsIDB4Q0YsIDB4MUMsIDB4NTQpLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AyNTZrMV9UXzNfWVtdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgxMywgMHg4MCwgMHhFNCwgMHhGNiwgMHgwOSwgMHhCQywgMHg1NywgMHg5MCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDIxLCAweDlGLCAweDZFLCAweDg4LCAweDU0LCAweDZFLCAweDUxLCAweEYyKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RjUsIDB4NUYsIDB4ODUsIDB4RkIsIDB4ODQsIDB4M0UsIDB4NEEsIDB4QUEpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhBOCwgMHgxOSwgMHhGNSwgMHg1NSwgMHhDOSwgMHgwNywgMHhEOCwgMHhDRSksCit9Oworc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDI1NmsxX1RfNF9YW10gPSB7CisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDFBLCAweEI0LCAweEMzLCAweEQ5LCAweDVDLCAweEEwLCAweEQ0LCAweDkwKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MEQsIDB4MzAsIDB4QUYsIDB4NTksIDB4OUIsIDB4RjgsIDB4MDQsIDB4ODUpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg0RCwgMHhBNiwgMHhGRCwgMHg2NiwgMHg3QiwgMHhDMywgMHgzOSwgMHg4NSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEUwLCAweEJGLCAweEYwLCAweEMyLCAweEU5LCAweDcxLCAweEE0LCAweDlFKSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMjU2azFfVF80X1lbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MTQsIDB4MkQsIDB4QjksIDB4ODgsIDB4MjgsIDB4RjEsIDB4QkUsIDB4NzgpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgxNCwgMHhGMywgMHgxQSwgMHgwRSwgMHhCOSwgMHgwMSwgMHg2NiwgMHgzNCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDc3LCAweEE3LCAweEE0LCAweEY0LCAweDA1LCAweEQwLCAweEFBLCAweDUzKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MDAsIDB4MzksIDB4MUUsIDB4NDcsIDB4RTUsIDB4NjgsIDB4QzgsIDB4QzApLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AyNTZrMV9UXzVfWFtdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhERCwgMHhCOSwgMHhGQywgMHhFMCwgMHgzMywgMHg4QSwgMHg3RCwgMHg5NiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDRGLCAweDkzLCAweEE1LCAweDUzLCAweDU1LCAweDE2LCAweEI0LCAweDZFKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RTksIDB4NUYsIDB4RUEsIDB4OUIsIDB4MjksIDB4NTIsIDB4NzEsIDB4REEpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhCMiwgMHhGMCwgMHgyNCwgMHhCOCwgMHg3RCwgMHhCNywgMHhBMCwgMHg5QiksCit9Oworc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDI1NmsxX1RfNV9ZW10gPSB7CisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEMyLCAweDAwLCAweDI3LCAweEIyLCAweERGLCAweDczLCAweEEyLCAweEUwKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MUQsIDB4MkUsIDB4NEQsIDB4N0MsIDB4REUsIDB4N0EsIDB4MjMsIDB4MzIpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhBQywgMHg2NSwgMHg2MCwgMHhDNywgMHg5NywgMHgxRSwgMHhBNCwgMHgyMiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweENELCAweDEzLCAweDVCLCAweDc3LCAweDU5LCAweENCLCAweDM2LCAweEUxKSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMjU2azFfVF82X1hbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4OTksIDB4QkMsIDB4OUYsIDB4OUUsIDB4MkQsIDB4NTMsIDB4MkEsIDB4QTgpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg4NywgMHg1RiwgMHg2NCwgMHg5RiwgMHgxQSwgMHgxOSwgMHhFNiwgMHg3NyksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDlFLCAweDdCLCAweDM5LCAweEQyLCAweERCLCAweDg1LCAweDg0LCAweEQ1KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4ODMsIDB4QzcsIDB4MEQsIDB4NTgsIDB4NkUsIDB4M0YsIDB4NTIsIDB4MTUpLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AyNTZrMV9UXzZfWVtdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgyMSwgMHg2OCwgMHgxOSwgMHgwQiwgMHg2OCwgMHhDOSwgMHgxRSwgMHhGQiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEQyLCAweDRFLCAweDIxLCAweDQ5LCAweDNELCAweDU1LCAweENDLCAweDI1KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RjUsIDB4RjksIDB4MjUsIDB4NDUsIDB4NTQsIDB4NDUsIDB4QjEsIDB4MEYpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhBOSwgMHhCMywgMHhGNywgMHhDRCwgMHg4MCwgMHhBNCwgMHgwNCwgMHgwNSksCit9Oworc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDI1NmsxX1RfN19YW10gPSB7CisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEQ0LCAweDFFLCAweDg4LCAweEM0LCAweEFBLCAweDE4LCAweDdFLCAweDQ1KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NEIsIDB4QUMsIDB4RDksIDB4QjIsIDB4QTEsIDB4QzAsIDB4NzEsIDB4NUQpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhBOSwgMHhBMiwgMHhGMSwgMHgxNSwgMHhBNiwgMHg1RiwgMHg2QywgMHg4NiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDRGLCAweDVCLCAweDA1LCAweEJDLCAweEI3LCAweEM2LCAweDRFLCAweDcyKSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMjU2azFfVF83X1lbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MUQsIDB4ODAsIDB4RjgsIDB4NUMsIDB4MjAsIDB4MkEsIDB4RTEsIDB4RTIpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg3QywgMHg0OCwgMHgyRSwgMHg2OCwgMHg4MiwgMHg3RiwgMHhFQiwgMHg1RiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEEyLCAweDNCLCAweDI1LCAweERCLCAweDMyLCAweDRELCAweDg4LCAweDQyKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RUUsIDB4NkUsIDB4QTYsIDB4QjYsIDB4NkQsIDB4NjIsIDB4NzgsIDB4MjIpLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AyNTZrMV9UXzhfWFtdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgxRiwgMHg0RCwgMHgzRSwgMHg4NiwgMHg1OCwgMHhDMywgMHhFQiwgMHhCQSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDFBLCAweDg5LCAweDMzLCAweDE4LCAweDIxLCAweDFELCAweDlCLCAweEU3KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MEIsIDB4OUQsIDB4RkYsIDB4QzMsIDB4NzksIDB4QzEsIDB4ODgsIDB4RjgpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgyOCwgMHhENCwgMHg0OCwgMHg1MywgMHhFOCwgMHhBRCwgMHgyMSwgMHgxNiksCit9Oworc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDI1NmsxX1RfOF9ZW10gPSB7CisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEY1LCAweDdCLCAweERFLCAweENCLCAweEQ4LCAweDM5LCAweDE3LCAweDdDKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RDMsIDB4RjMsIDB4MDMsIDB4RjIsIDB4NUMsIDB4QkMsIDB4QzgsIDB4OEEpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgyNywgMHhBRSwgMHg0QywgMHhCMCwgMHgxNiwgMHhBNCwgMHg5MywgMHg4NiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDcxLCAweDhCLCAweDZCLCAweERDLCAweEQ3LCAweDlBLCAweDNFLCAweDdFKSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMjU2azFfVF85X1hbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RDYsIDB4MkQsIDB4N0EsIDB4RDIsIDB4NTksIDB4MDUsIDB4QTIsIDB4ODIpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg1NywgMHg1NiwgMHgwOSwgMHgzMiwgMHhGMSwgMHhFOCwgMHhFMywgMHg3MiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDAzLCAweENBLCAweEU1LCAweDJFLCAweEYwLCAweEZCLCAweDE4LCAweDE5KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QkEsIDB4ODUsIDB4QTksIDB4MjMsIDB4MTUsIDB4MzEsIDB4MUYsIDB4MEUpLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AyNTZrMV9UXzlfWVtdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg3NiwgMHhFNSwgMHhCMSwgMHg4NiwgMHhCOSwgMHg2RSwgMHg4RCwgMHhEMyksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDZDLCAweDc3LCAweEZDLCAweEM5LCAweEEzLCAweDNGLCAweDg5LCAweEQyKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4REIsIDB4NkEsIDB4REMsIDB4MjUsIDB4QjAsIDB4QzcsIDB4NDEsIDB4NTQpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgwMiwgMHgxMSwgMHg2QiwgMHhBNiwgMHgxMSwgMHg2MiwgMHhENCwgMHgyRCksCit9Oworc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDI1NmsxX1RfMTBfWFtdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgxOSwgMHg3RCwgMHgzNCwgMHhCMywgMHgyMCwgMHg3RiwgMHgzNywgMHhBQSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEJELCAweEQ0LCAweDQ1LCAweEU4LCAweEMyLCAweEU5LCAweEM1LCAweEVBKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NUEsIDB4MzIsIDB4M0IsIDB4MjUsIDB4N0UsIDB4NzksIDB4QUYsIDB4RTcpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgzRiwgMHhFNCwgMHg1NCwgMHg3MSwgMHhCRSwgMHgzNSwgMHg0RSwgMHhEMCksCit9Oworc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDI1NmsxX1RfMTBfWVtdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhCMCwgMHg5NCwgMHhERCwgMHg4RiwgMHhCNSwgMHhDMiwgMHhERCwgMHg3NSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDA3LCAweDQ5LCAweEU5LCAweDFDLCAweDJGLCAweDA4LCAweDQ5LCAweEM2KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NzcsIDB4QjYsIDB4MDMsIDB4ODgsIDB4NkYsIDB4QjgsIDB4MTUsIDB4NjcpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhBNCwgMHhEMywgMHgxQywgMHhGMywgMHhBNSwgMHhFQiwgMHg3OSwgMHgwMSksCit9Oworc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDI1NmsxX1RfMTFfWFtdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgyNSwgMHhGOSwgMHg0MywgMHg4OCwgMHg4OSwgMHgwRCwgMHgwNiwgMHhFQSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDAyLCAweDJELCAweEY1LCAweDk4LCAweDMyLCAweEY2LCAweEIxLCAweDA1KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MjMsIDB4NzMsIDB4OEYsIDB4MkIsIDB4NTAsIDB4MjcsIDB4MEEsIDB4RTcpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhBNywgMHhFMywgMHhCRCwgMHgxNiwgMHgwNSwgMHhDOCwgMHg5MywgMHgxMiksCit9Oworc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDI1NmsxX1RfMTFfWVtdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgwQSwgMHg2QSwgMHhGNywgMHhFMywgMHgzRCwgMHhERSwgMHg1RiwgMHgyRiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDQ3LCAweEEzLCAweDlDLCAweDIyLCAweDNDLCAweDMzLCAweDM2LCAweDVEKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MjAsIDB4MjQsIDB4NEMsIDB4NjksIDB4NDUsIDB4NzgsIDB4MTQsIDB4QUUpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg1OSwgMHhGOCwgMHhENCwgMHhCRiwgMHhCOCwgMHhDMCwgMHhBMSwgMHgyNSksCit9Oworc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDI1NmsxX1RfMTJfWFtdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg3RSwgMHg4OCwgMHhFMSwgMHg5MSwgMHgwMywgMHhFQiwgMHhCMywgMHgyQiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDVDLCAweDExLCAweEExLCAweEVGLCAweDE0LCAweDBELCAweEM0LCAweDdEKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RkUsIDB4RDQsIDB4MEQsIDB4MUQsIDB4OTYsIDB4MzMsIDB4NUMsIDB4MTkpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg3MCwgMHg0NSwgMHgyQSwgMHgxQSwgMHhFNiwgMHg1NywgMHgwNCwgMHg5QiksCit9Oworc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDI1NmsxX1RfMTJfWVtdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg3MCwgMHhCNSwgMHhBNywgMHg4MCwgMHhFOSwgMHg5MywgMHg5NywgMHg4RCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDVELCAweEI5LCAweDdDLCAweEEwLCAweEM5LCAweDU3LCAweDI2LCAweDQzKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4OUUsIDB4RUYsIDB4NTYsIDB4REEsIDB4NjYsIDB4RjYsIDB4MUIsIDB4OUEpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgxRiwgMHg4OSwgMHg2QiwgMHg5MSwgMHhFMCwgMHhBOSwgMHg2NSwgMHgyQiksCit9Oworc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDI1NmsxX1RfMTNfWFtdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg5MSwgMHg5OCwgMHg5NiwgMHg5QiwgMHgwNiwgMHg3RCwgMHg1RSwgMHg1QSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDBBLCAweEZBLCAweEMxLCAweDVGLCAweDE5LCAweDM3LCAweDk0LCAweDlEKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4Q0YsIDB4QkUsIDB4NkIsIDB4MUEsIDB4MDUsIDB4RTQsIDB4QkYsIDB4OUYpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg4NCwgMHhDRCwgMHg1RCwgMHgzNSwgMHhCNCwgMHg1MSwgMHhGNywgMHg2NCksCit9Oworc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDI1NmsxX1RfMTNfWVtdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg2QywgMHhFRiwgMHg5NiwgMHhEQiwgMHhGMiwgMHg2MSwgMHg2MywgMHg1OSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweENCLCAweDA0LCAweDg4LCAweEM5LCAweDlGLCAweDFCLCAweDk0LCAweEI5KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4REIsIDB4MzAsIDB4NzksIDB4N0UsIDB4MjQsIDB4RTcsIDB4NUYsIDB4QjgpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgzRiwgMHhCOCwgMHg5MCwgMHhCNywgMHg5NCwgMHgyNSwgMHhCQiwgMHgwRiksCit9Oworc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDI1NmsxX1RfMTRfWFtdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg2MiwgMHg3OSwgMHhFQSwgMHhBRCwgMHhDMCwgMHg2RCwgMHgxOCwgMHg1NyksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEU5LCAweEE0LCAweDU4LCAweDJBLCAweDhELCAweDk1LCAweEIzLCAweEU2KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QzgsIDB4QzQsIDB4QzIsIDB4MTIsIDB4MEQsIDB4NzksIDB4RTIsIDB4MkIpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgwMiwgMHg2RiwgMHhCRSwgMHg5NywgMHg0RCwgMHhBNCwgMHgyMCwgMHgwNyksCit9Oworc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDI1NmsxX1RfMTRfWVtdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhDQSwgMHgzMSwgMHg3MSwgMHhDNiwgMHhBNiwgMHg5MSwgMHhFQiwgMHgxRiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEI0LCAweDlCLCAweEE4LCAweDRBLCAweEU3LCAweDc3LCAweEUxLCAweEFBKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QTksIDB4MDYsIDB4RDMsIDB4M0QsIDB4OTQsIDB4MzAsIDB4RUYsIDB4OEMpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhFNywgMHhERiwgMHhDQSwgMHhGQSwgMHhGNSwgMHgyOCwgMHhGOCwgMHhDOSksCit9Oworc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDI1NmsxX1RfMTVfWFtdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhDQywgMHhFMSwgMHgzMiwgMHhGRCwgMHgzRSwgMHg4MSwgMHhGOCwgMHgxMSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweENELCAweEYyLCAweDRCLCAweDFELCAweDE5LCAweEM5LCAweDBGLCAweENDKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NTksIDB4QjEsIDB4OEEsIDB4MjIsIDB4OEIsIDB4MDUsIDB4NkIsIDB4NTYpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgzNSwgMHgyMSwgMHhFRiwgMHgzMCwgMHhFQywgMHgwOSwgMHgyQSwgMHg4OSksCit9Oworc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDI1NmsxX1RfMTVfWVtdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgxNSwgMHg4NCwgMHg0QSwgMHg0NiwgMHgwNywgMHg2QywgMHgzQywgMHg0QyksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweERELCAweDE4LCAweDNBLCAweEY0LCAweENDLCAweEY1LCAweEIyLCAweEYyKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NEYsIDB4OEYsIDB4Q0QsIDB4MEEsIDB4OUMsIDB4RjQsIDB4QkQsIDB4OTUpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgzNywgMHg4OSwgMHg3RiwgMHg4QSwgMHhCMSwgMHg1MiwgMHgzQSwgMHhBQiksCit9Oworc3RhdGljIGNvbnN0IG1iZWR0bHNfZWNwX3BvaW50IHNlY3AyNTZrMV9UWzE2XSA9IHsKKyAgICBFQ1BfUE9JTlRfSU5JVF9YWV9aMShzZWNwMjU2azFfVF8wX1gsIHNlY3AyNTZrMV9UXzBfWSksCisgICAgRUNQX1BPSU5UX0lOSVRfWFlfWjAoc2VjcDI1NmsxX1RfMV9YLCBzZWNwMjU2azFfVF8xX1kpLAorICAgIEVDUF9QT0lOVF9JTklUX1hZX1owKHNlY3AyNTZrMV9UXzJfWCwgc2VjcDI1NmsxX1RfMl9ZKSwKKyAgICBFQ1BfUE9JTlRfSU5JVF9YWV9aMChzZWNwMjU2azFfVF8zX1gsIHNlY3AyNTZrMV9UXzNfWSksCisgICAgRUNQX1BPSU5UX0lOSVRfWFlfWjAoc2VjcDI1NmsxX1RfNF9YLCBzZWNwMjU2azFfVF80X1kpLAorICAgIEVDUF9QT0lOVF9JTklUX1hZX1owKHNlY3AyNTZrMV9UXzVfWCwgc2VjcDI1NmsxX1RfNV9ZKSwKKyAgICBFQ1BfUE9JTlRfSU5JVF9YWV9aMChzZWNwMjU2azFfVF82X1gsIHNlY3AyNTZrMV9UXzZfWSksCisgICAgRUNQX1BPSU5UX0lOSVRfWFlfWjAoc2VjcDI1NmsxX1RfN19YLCBzZWNwMjU2azFfVF83X1kpLAorICAgIEVDUF9QT0lOVF9JTklUX1hZX1owKHNlY3AyNTZrMV9UXzhfWCwgc2VjcDI1NmsxX1RfOF9ZKSwKKyAgICBFQ1BfUE9JTlRfSU5JVF9YWV9aMChzZWNwMjU2azFfVF85X1gsIHNlY3AyNTZrMV9UXzlfWSksCisgICAgRUNQX1BPSU5UX0lOSVRfWFlfWjAoc2VjcDI1NmsxX1RfMTBfWCwgc2VjcDI1NmsxX1RfMTBfWSksCisgICAgRUNQX1BPSU5UX0lOSVRfWFlfWjAoc2VjcDI1NmsxX1RfMTFfWCwgc2VjcDI1NmsxX1RfMTFfWSksCisgICAgRUNQX1BPSU5UX0lOSVRfWFlfWjAoc2VjcDI1NmsxX1RfMTJfWCwgc2VjcDI1NmsxX1RfMTJfWSksCisgICAgRUNQX1BPSU5UX0lOSVRfWFlfWjAoc2VjcDI1NmsxX1RfMTNfWCwgc2VjcDI1NmsxX1RfMTNfWSksCisgICAgRUNQX1BPSU5UX0lOSVRfWFlfWjAoc2VjcDI1NmsxX1RfMTRfWCwgc2VjcDI1NmsxX1RfMTRfWSksCisgICAgRUNQX1BPSU5UX0lOSVRfWFlfWjAoc2VjcDI1NmsxX1RfMTVfWCwgc2VjcDI1NmsxX1RfMTVfWSksCit9OworI2Vsc2UKKyNkZWZpbmUgc2VjcDI1NmsxX1QgTlVMTAorI2VuZGlmCisjZW5kaWYgLyogTUJFRFRMU19FQ1BfRFBfU0VDUDI1NksxX0VOQUJMRUQgKi8KKworLyoKKyAqIERvbWFpbiBwYXJhbWV0ZXJzIGZvciBicmFpbnBvb2xQMjU2cjEgKFJGQyA1NjM5IDMuNCkKKyAqLworI2lmIGRlZmluZWQoTUJFRFRMU19FQ1BfRFBfQlAyNTZSMV9FTkFCTEVEKQorc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgYnJhaW5wb29sUDI1NnIxX3BbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NzcsIDB4NTMsIDB4NkUsIDB4MUYsIDB4MUQsIDB4NDgsIDB4MTMsIDB4MjApLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgyOCwgMHgyMCwgMHgyNiwgMHhENSwgMHgyMywgMHhGNiwgMHgzQiwgMHg2RSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDcyLCAweDhELCAweDgzLCAweDlELCAweDkwLCAweDBBLCAweDY2LCAweDNFKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QkMsIDB4QTksIDB4RUUsIDB4QTEsIDB4REIsIDB4NTcsIDB4RkIsIDB4QTkpLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IGJyYWlucG9vbFAyNTZyMV9hW10gPSB7CisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEQ5LCAweEI1LCAweDMwLCAweEYzLCAweDQ0LCAweDRCLCAweDRBLCAweEU5KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NkMsIDB4NUMsIDB4REMsIDB4MjYsIDB4QzEsIDB4NTUsIDB4ODAsIDB4RkIpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhFNywgMHhGRiwgMHg3QSwgMHg0MSwgMHgzMCwgMHg3NSwgMHhGNiwgMHhFRSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDU3LCAweDMwLCAweDJDLCAweEZDLCAweDc1LCAweDA5LCAweDVBLCAweDdEKSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBicmFpbnBvb2xQMjU2cjFfYltdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhCNiwgMHgwNywgMHg4QywgMHhGRiwgMHgxOCwgMHhEQywgMHhDQywgMHg2QiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweENFLCAweEUxLCAweEY3LCAweDVDLCAweDI5LCAweDE2LCAweDg0LCAweDk1KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QkYsIDB4N0MsIDB4RDcsIDB4QkIsIDB4RDksIDB4QjUsIDB4MzAsIDB4RjMpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg0NCwgMHg0QiwgMHg0QSwgMHhFOSwgMHg2QywgMHg1QywgMHhEQywgMHgyNiksCit9Oworc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgYnJhaW5wb29sUDI1NnIxX2d4W10gPSB7CisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDYyLCAweDMyLCAweENFLCAweDlBLCAweEJELCAweDUzLCAweDQ0LCAweDNBKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QzIsIDB4MjMsIDB4QkQsIDB4RTMsIDB4RTEsIDB4MjcsIDB4REUsIDB4QjkpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhBRiwgMHhCNywgMHg4MSwgMHhGQywgMHgyRiwgMHg0OCwgMHg0QiwgMHgyQyksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweENCLCAweDU3LCAweDdFLCAweENCLCAweEI5LCAweEFFLCAweEQyLCAweDhCKSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBicmFpbnBvb2xQMjU2cjFfZ3lbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4OTcsIDB4NjksIDB4MDQsIDB4MkYsIDB4QzcsIDB4NTQsIDB4MUQsIDB4NUMpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg1NCwgMHg4RSwgMHhFRCwgMHgyRCwgMHgxMywgMHg0NSwgMHg3NywgMHhDMiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEM5LCAweDFELCAweDYxLCAweDE0LCAweDFBLCAweDQ2LCAweEY4LCAweDk3KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RkQsIDB4QzQsIDB4REEsIDB4QzMsIDB4MzUsIDB4RjgsIDB4N0UsIDB4NTQpLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IGJyYWlucG9vbFAyNTZyMV9uW10gPSB7CisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEE3LCAweDU2LCAweDQ4LCAweDk3LCAweDgyLCAweDBFLCAweDFFLCAweDkwKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RjcsIDB4QTYsIDB4NjEsIDB4QjUsIDB4QTMsIDB4N0EsIDB4MzksIDB4OEMpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg3MSwgMHg4RCwgMHg4MywgMHg5RCwgMHg5MCwgMHgwQSwgMHg2NiwgMHgzRSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEJDLCAweEE5LCAweEVFLCAweEExLCAweERCLCAweDU3LCAweEZCLCAweEE5KSwKK307CisKKyNpZiBNQkVEVExTX0VDUF9GSVhFRF9QT0lOVF9PUFRJTSA9PSAxCitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBicmFpbnBvb2xQMjU2cjFfVF8wX1hbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NjIsIDB4MzIsIDB4Q0UsIDB4OUEsIDB4QkQsIDB4NTMsIDB4NDQsIDB4M0EpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhDMiwgMHgyMywgMHhCRCwgMHhFMywgMHhFMSwgMHgyNywgMHhERSwgMHhCOSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEFGLCAweEI3LCAweDgxLCAweEZDLCAweDJGLCAweDQ4LCAweDRCLCAweDJDKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4Q0IsIDB4NTcsIDB4N0UsIDB4Q0IsIDB4QjksIDB4QUUsIDB4RDIsIDB4OEIpLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IGJyYWlucG9vbFAyNTZyMV9UXzBfWVtdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg5NywgMHg2OSwgMHgwNCwgMHgyRiwgMHhDNywgMHg1NCwgMHgxRCwgMHg1QyksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDU0LCAweDhFLCAweEVELCAweDJELCAweDEzLCAweDQ1LCAweDc3LCAweEMyKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QzksIDB4MUQsIDB4NjEsIDB4MTQsIDB4MUEsIDB4NDYsIDB4RjgsIDB4OTcpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhGRCwgMHhDNCwgMHhEQSwgMHhDMywgMHgzNSwgMHhGOCwgMHg3RSwgMHg1NCksCit9Oworc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgYnJhaW5wb29sUDI1NnIxX1RfMV9YW10gPSB7CisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDNDLCAweEEyLCAweEVELCAweDUyLCAweEM5LCAweDhDLCAweEUzLCAweEE1KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NzIsIDB4QzksIDB4QzQsIDB4ODcsIDB4M0YsIDB4OTMsIDB4N0EsIDB4RDEpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg5NiwgMHgxMiwgMHg1MywgMHg2MSwgMHgzRSwgMHg3NiwgMHgwOCwgMHhDQiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDA5LCAweDhDLCAweDc0LCAweEY0LCAweDA4LCAweEMzLCAweDc2LCAweDgwKSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBicmFpbnBvb2xQMjU2cjFfVF8xX1lbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MDUsIDB4REQsIDB4MDksIDB4QTYsIDB4RUQsIDB4RUUsIDB4QzQsIDB4MzgpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg3NCwgMHhEOSwgMHhCRSwgMHg0QiwgMHhBNSwgMHhCNywgMHgyQiwgMHg2RSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDQyLCAweDIwLCAweDEyLCAweENBLCAweDBBLCAweDM4LCAweDI0LCAweEFCKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MDAsIDB4NzIsIDB4NzEsIDB4OTAsIDB4N0EsIDB4MkUsIDB4QjcsIDB4MjMpLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IGJyYWlucG9vbFAyNTZyMV9UXzJfWFtdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgyQywgMHg2NiwgMHhBMSwgMHg5MywgMHgxMCwgMHgyQSwgMHg1MSwgMHgxNyksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDg4LCAweDEwLCAweDExLCAweDEyLCAweEJDLCAweEIwLCAweEI2LCAweDkzKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4M0MsIDB4NTgsIDB4RDcsIDB4MEEsIDB4ODQsIDB4MDUsIDB4QTMsIDB4OUMpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhGNywgMHg4RSwgMHg5NSwgMHg2MSwgMHhEMywgMHgwQiwgMHhERiwgMHgzNiksCit9Oworc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgYnJhaW5wb29sUDI1NnIxX1RfMl9ZW10gPSB7CisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEY5LCAweDkyLCAweDEyLCAweDBGLCAweDVFLCAweDg3LCAweDcwLCAweDFCKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MzgsIDB4RTksIDB4OUIsIDB4RUIsIDB4M0EsIDB4RkIsIDB4Q0YsIDB4QzQpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhEQywgMHg5MiwgMHhCOSwgMHhGNywgMHg0NSwgMHhEMywgMHgwNiwgMHhCNiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDgyLCAweDI4LCAweDY1LCAweEUxLCAweEM1LCAweDZDLCAweDU3LCAweDE4KSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBicmFpbnBvb2xQMjU2cjFfVF8zX1hbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MjgsIDB4MEUsIDB4NzcsIDB4MDEsIDB4ODEsIDB4OUUsIDB4MzgsIDB4NUMpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg3MSwgMHhGMCwgMHhENSwgMHhBNSwgMHg5MSwgMHgyQiwgMHhERiwgMHhDMCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEQ4LCAweEVFLCAweEI2LCAweDI1LCAweEQ2LCAweDk4LCAweERFLCAweDJEKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4N0IsIDB4QTEsIDB4NTUsIDB4NjMsIDB4MzksIDB4RUIsIDB4QjUsIDB4NDcpLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IGJyYWlucG9vbFAyNTZyMV9UXzNfWVtdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhCNiwgMHhENiwgMHhCOCwgMHhFMywgMHgxMywgMHhFRCwgMHg3RiwgMHhBMyksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDZDLCAweEU4LCAweEFFLCAweDM2LCAweEI4LCAweENELCAweDE5LCAweDAyKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RjksIDB4ODIsIDB4ODMsIDB4N0EsIDB4N0IsIDB4NDYsIDB4NTYsIDB4RTgpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg0RSwgMHg2MCwgMHg0NiwgMHgxNSwgMHg1QSwgMHhBQywgMHg5OSwgMHgzMCksCit9Oworc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgYnJhaW5wb29sUDI1NnIxX1RfNF9YW10gPSB7CisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEJGLCAweDYxLCAweDUwLCAweEM2LCAweEZGLCAweDEwLCAweDdELCAweDA0KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4OTIsIDB4NTEsIDB4REYsIDB4QTksIDB4N0QsIDB4NzgsIDB4MjYsIDB4NzQpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg1NiwgMHgxNSwgMHg5QSwgMHhGNywgMHgwMSwgMHhDMSwgMHhCQiwgMHg0MCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDI2LCAweDBGLCAweEU2LCAweDJBLCAweEJELCAweDRBLCAweDlFLCAweDg3KSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBicmFpbnBvb2xQMjU2cjFfVF80X1lbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NTcsIDB4RjgsIDB4RDEsIDB4NzcsIDB4RDIsIDB4NDksIDB4QjMsIDB4REQpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgzNiwgMHg4NiwgMHhGQiwgMHg5RSwgMHgxRiwgMHg1QSwgMHg2MCwgMHg0NyksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDk4LCAweEM0LCAweDhELCAweENELCAweDg2LCAweDYxLCAweDJGLCAweEY5KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NDEsIDB4RjYsIDB4QjksIDB4QUMsIDB4MzcsIDB4OUQsIDB4RTksIDB4MjgpLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IGJyYWlucG9vbFAyNTZyMV9UXzVfWFtdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhGQSwgMHg3NywgMHhBQSwgMHg5NywgMHg5QywgMHgwQiwgMHgwNCwgMHgyMCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDgwLCAweEE2LCAweDYwLCAweDgxLCAweENFLCAweDI1LCAweDEzLCAweDNFKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MjQsIDB4MDAsIDB4RjMsIDB4QkIsIDB4ODIsIDB4OTksIDB4OTUsIDB4QjcpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg0NywgMHg1QSwgMHhDRSwgMHg5MCwgMHg3MSwgMHgzOCwgMHgyRiwgMHgxMCksCit9Oworc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgYnJhaW5wb29sUDI1NnIxX1RfNV9ZW10gPSB7CisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEE3LCAweDFBLCAweEMwLCAweDg0LCAweDI3LCAweEQ2LCAweDlELCAweEI3KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MzQsIDB4MzcsIDB4NTIsIDB4MTYsIDB4MTMsIDB4MEUsIDB4Q0UsIDB4OTIpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgxRSwgMHhCRiwgMHg1QSwgMHhEQiwgMHhEQiwgMHg2RSwgMHgxRSwgMHg2OSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDNFLCAweEI3LCAweDVFLCAweEY5LCAweDg2LCAweERELCAweDhBLCAweDVDKSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBicmFpbnBvb2xQMjU2cjFfVF82X1hbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4M0QsIDB4QUIsIDB4NUMsIDB4OEQsIDB4MUQsIDB4RjIsIDB4MkQsIDB4MUUpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg2NSwgMHhDNSwgMHhGOCwgMHhGNywgMHgxRCwgMHg5NiwgMHgwQiwgMHg0RCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEFDLCAweDRDLCAweEE3LCAweDQ1LCAweDIwLCAweDZBLCAweDFFLCAweDVCKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MjEsIDB4NUQsIDB4RUYsIDB4REUsIDB4RUUsIDB4MzksIDB4NDQsIDB4MTkpLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IGJyYWlucG9vbFAyNTZyMV9UXzZfWVtdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg0QiwgMHgyRiwgMHg2RCwgMHg1MiwgMHhDOSwgMHg1OCwgMHg2MCwgMHhFOCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEMzLCAweEM5LCAweDYyLCAweENCLCAweDM4LCAweDNDLCAweDU1LCAweENBKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RkYsIDB4QTUsIDB4MDksIDB4MTAsIDB4ODgsIDB4REIsIDB4RTMsIDB4QkQpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg1MiwgMHhFMCwgMHgzQywgMHhDRSwgMHgwNiwgMHgwQiwgMHg0QiwgMHg1RCksCit9Oworc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgYnJhaW5wb29sUDI1NnIxX1RfN19YW10gPSB7CisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEIxLCAweDFELCAweEI0LCAweDEwLCAweDc2LCAweDhGLCAweEJBLCAweDA5KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NTcsIDB4NzAsIDB4NUEsIDB4MDcsIDB4RjUsIDB4MUEsIDB4NzQsIDB4QzcpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgwQiwgMHhFOSwgMHg5NCwgMHhBOCwgMHhDMCwgMHhENSwgMHg0QSwgMHg0QSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDNFLCAweDZELCAweEQ0LCAweEU4LCAweDlCLCAweEU5LCAweDZELCAweDBFKSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBicmFpbnBvb2xQMjU2cjFfVF83X1lbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NjUsIDB4MDAsIDB4MzIsIDB4NDEsIDB4NTcsIDB4ODQsIDB4ODksIDB4NTIpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhFRSwgMHhDNywgMHgxNCwgMHhFQywgMHhFOSwgMHgyNywgMHhGRiwgMHhGMyksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDlBLCAweDY3LCAweDlFLCAweEZCLCAweEI2LCAweEI4LCAweDk2LCAweEYzKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RTUsIDB4NEEsIDB4RTMsIDB4OTcsIDB4NEIsIDB4NTgsIDB4REUsIDB4MzApLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IGJyYWlucG9vbFAyNTZyMV9UXzhfWFtdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhBNiwgMHgxRSwgMHg1QywgMHhGNSwgMHg3RiwgMHhENSwgMHhENCwgMHhBQSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDVELCAweDA4LCAweDdBLCAweEYxLCAweEJELCAweDg5LCAweEM3LCAweDFFKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4M0EsIDB4RjksIDB4MTEsIDB4MUIsIDB4RjUsIDB4M0MsIDB4NkQsIDB4OEMpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgxOSwgMHg1MCwgMHhFNSwgMHg2OSwgMHgxRCwgMHg1OSwgMHhGQywgMHgwQyksCit9Oworc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgYnJhaW5wb29sUDI1NnIxX1RfOF9ZW10gPSB7CisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEYxLCAweDJGLCAweEY4LCAweDNGLCAweEVDLCAweDU1LCAweDk5LCAweDU3KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NDEsIDB4QTcsIDB4MjksIDB4OTAsIDB4NDMsIDB4ODEsIDB4MzEsIDB4NEMpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhDMywgMHgxOCwgMHg0NCwgMHg1MCwgMHg1RCwgMHg3NiwgMHhDQiwgMHhERCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEYwLCAweEM1LCAweDVCLCAweDlBLCAweDAzLCAweEU2LCAweDE3LCAweDM5KSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBicmFpbnBvb2xQMjU2cjFfVF85X1hbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MjEsIDB4ODksIDB4RkMsIDB4NTUsIDB4OTQsIDB4OTEsIDB4NkEsIDB4QTIpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg3NCwgMHg0NiwgMHgzNSwgMHhGMiwgMHgzQSwgMHg0MiwgMHgwOCwgMHgyRiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEQzLCAweEQyLCAweDc2LCAweDQ5LCAweDQyLCAweDg3LCAweEQzLCAweDdGKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4OTAsIDB4RUEsIDB4QTAsIDB4NTIsIDB4RjEsIDB4NkEsIDB4MzAsIDB4NTcpLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IGJyYWlucG9vbFAyNTZyMV9UXzlfWVtdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgwMCwgMHhCMiwgMHg1NywgMHhBMywgMHg4QSwgMHg0RCwgMHgxQiwgMHgzQyksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEZDLCAweEEzLCAweDk5LCAweDk0LCAweEI1LCAweDNELCAweDY0LCAweDA5KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MzUsIDB4QzMsIDB4RDcsIDB4NTMsIDB4RjYsIDB4NDksIDB4MUMsIDB4NjApLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgyNywgMHgyMywgMHg0MSwgMHg0RCwgMHhGQiwgMHg3QSwgMHg1QywgMHg1MyksCit9Oworc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgYnJhaW5wb29sUDI1NnIxX1RfMTBfWFtdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhDQSwgMHhCOCwgMHgxNSwgMHg2NSwgMHg1QywgMHg4NSwgMHg5NCwgMHhENyksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEFDLCAweDM3LCAweEM3LCAweEY4LCAweDdFLCAweEFFLCAweDZDLCAweDEwKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NTMsIDB4RDgsIDB4MTEsIDB4NTQsIDB4OTgsIDB4NDQsIDB4RTMsIDB4RjEpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhFNCwgMHg0RCwgMHhBNiwgMHg0QiwgMHgyOCwgMHhGMiwgMHg1NywgMHg5RSksCit9Oworc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgYnJhaW5wb29sUDI1NnIxX1RfMTBfWVtdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhGNiwgMHhEMCwgMHhFQiwgMHgxRSwgMHhBQSwgMHgzMCwgMHhEMywgMHg2QSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDU4LCAweDlCLCAweDRELCAweEE3LCAweDczLCAweDZFLCAweEI2LCAweDQ1KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NUQsIDB4NDcsIDB4RjYsIDB4RUQsIDB4MzcsIDB4RUYsIDB4NzEsIDB4NEQpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhBOCwgMHhCNSwgMHg0OSwgMHg2MSwgMHg1RSwgMHg0NSwgMHhGNiwgMHg0QSksCit9Oworc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgYnJhaW5wb29sUDI1NnIxX1RfMTFfWFtdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhFRiwgMHgwRSwgMHhCMywgMHg4NCwgMHgzQSwgMHg2MywgMHg3MiwgMHg4NCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDZELCAweDUzLCAweDVDLCAweEE3LCAweEM2LCAweDJFLCAweEFCLCAweDlFKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RUIsIDB4MEYsIDB4OEYsIDB4ODcsIDB4NTAsIDB4MjgsIDB4QjQsIDB4QUUpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg1QywgMHg5OCwgMHg0QSwgMHg5OCwgMHgzMSwgMHg4NiwgMHhDQSwgMHg1MSksCit9Oworc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgYnJhaW5wb29sUDI1NnIxX1RfMTFfWVtdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhCRSwgMHhDOSwgMHhFMiwgMHhGRCwgMHg1RCwgMHgxRiwgMHhFOCwgMHhDMiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEQ1LCAweDkwLCAweDkxLCAweEM0LCAweDg0LCAweEYwLCAweEJBLCAweEM1KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NkMsIDB4NUEsIDB4QjMsIDB4NEUsIDB4RkIsIDB4RTAsIDB4NTcsIDB4RTgpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg2QiwgMHgwQiwgMHg5MCwgMHhBNiwgMHhGRCwgMHg5RCwgMHg4RSwgMHgwMiksCit9Oworc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgYnJhaW5wb29sUDI1NnIxX1RfMTJfWFtdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhGOCwgMHg0MSwgMHg4RiwgMHgzMSwgMHhGQSwgMHg1QSwgMHhGNiwgMHgzMyksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEFDLCAweEU5LCAweEUzLCAweEY2LCAweEUwLCAweDRBLCAweEU3LCAweEQyKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4ODQsIDB4NEUsIDB4Q0QsIDB4QTIsIDB4MjIsIDB4MTQsIDB4RDQsIDB4MTIpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg3QywgMHhFRCwgMHgyMSwgMHhCNywgMHgwRiwgMHg1MywgMHgxMCwgMHgxNyksCit9Oworc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgYnJhaW5wb29sUDI1NnIxX1RfMTJfWVtdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgwNSwgMHgwNiwgMHgyNCwgMHgyQywgMHg0RSwgMHhEMSwgMHgxRSwgMHg5RiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEQ3LCAweDNGLCAweEMxLCAweDlGLCAweEFCLCAweEYwLCAweDM3LCAweDk1KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MDMsIDB4NUUsIDB4MTIsIDB4Q0UsIDB4ODMsIDB4MUIsIDB4MkEsIDB4MTgpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg2MSwgMHg2NSwgMHhDRiwgMHhFOCwgMHg1QywgMHhBNSwgMHhBMiwgMHg3MCksCit9Oworc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgYnJhaW5wb29sUDI1NnIxX1RfMTNfWFtdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhCOCwgMHg4NiwgMHg3NiwgMHgzQSwgMHg5NCwgMHhGNiwgMHgxRCwgMHhDMSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDFELCAweERBLCAweEM5LCAweEE2LCAweDI5LCAweDkzLCAweDE1LCAweDEwKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NkQsIDB4NjEsIDB4NkEsIDB4N0QsIDB4QzcsIDB4QTksIDB4RjMsIDB4NzYpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg0QSwgMHgwMywgMHg3MSwgMHhBMiwgMHgxNSwgMHhDRSwgMHg1MCwgMHg3MiksCit9Oworc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgYnJhaW5wb29sUDI1NnIxX1RfMTNfWVtdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhCNiwgMHhEMCwgMHhBOCwgMHgxRSwgMHg5MSwgMHhDNCwgMHg0RiwgMHgyNCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDJELCAweDRCLCAweDdFLCAweEQ3LCAweDcxLCAweDU4LCAweDdFLCAweDFFKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4OTMsIDB4NDUsIDB4QUYsIDB4MkEsIDB4MTgsIDB4OTMsIDB4OTUsIDB4M0IpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgxQiwgMHg4RiwgMHhDNywgMHhGQSwgMHg0QywgMHg3QSwgMHg4NiwgMHg1NCksCit9Oworc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgYnJhaW5wb29sUDI1NnIxX1RfMTRfWFtdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg5NywgMHhBRiwgMHg2OCwgMHgzQSwgMHgyMywgMHhDMSwgMHgyRSwgMHhCRiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDg5LCAweDUwLCAweDExLCAweDY3LCAweDM5LCAweEI5LCAweEFGLCAweDQ4KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MTksIDB4ODYsIDB4QUEsIDB4MUUsIDB4ODgsIDB4MjEsIDB4MjksIDB4OEIpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhDRCwgMHgyOCwgMHhBNCwgMHg5RCwgMHg4OSwgMHhBOSwgMHg5QSwgMHgxMCksCit9Oworc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgYnJhaW5wb29sUDI1NnIxX1RfMTRfWVtdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg5MSwgMHhCQSwgMHgwNCwgMHg2NywgMHhCNywgMHgwMSwgMHg0MCwgMHgzOCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDA4LCAweEU5LCAweDA5LCAweEEzLCAweENBLCAweEE2LCAweDM3LCAweEY2KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NkMsIDB4OTcsIDB4QTgsIDB4QjYsIDB4M0MsIDB4RUUsIDB4OTAsIDB4M0QpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhEQywgMHhFRCwgMHhDNCwgMHhGNywgMHhDMywgMHg5NSwgMHhFQywgMHg4NSksCit9Oworc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgYnJhaW5wb29sUDI1NnIxX1RfMTVfWFtdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhGNSwgMHg4NCwgMHhCRCwgMHhFQiwgMHhENSwgMHg2NCwgMHhCQiwgMHg5RCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweERCLCAweDlCLCAweEUyLCAweDI4LCAweDUwLCAweEMyLCAweDcyLCAweDQwKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MzksIDB4RjIsIDB4NzQsIDB4RDEsIDB4MjYsIDB4QkYsIDB4MzIsIDB4NjgpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgzNiwgMHhDQiwgMHhBRiwgMHg3MiwgMHhEQiwgMHg2RCwgMHgzMCwgMHg5OCksCit9Oworc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgYnJhaW5wb29sUDI1NnIxX1RfMTVfWVtdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhCMywgMHg1MCwgMHg4NSwgMHhGNCwgMHgyQiwgMHg0OCwgMHhDMSwgMHhBRCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEMwLCAweDI4LCAweEJCLCAweDExLCAweEJBLCAweDVCLCAweDIyLCAweDZDKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QUQsIDB4QTEsIDB4RTUsIDB4NUMsIDB4QzksIDB4MUQsIDB4NDQsIDB4NDUpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhENCwgMHhFOCwgMHhFNiwgMHg2RiwgMHhCQiwgMHhDMSwgMHg4MSwgMHg3RiksCit9Oworc3RhdGljIGNvbnN0IG1iZWR0bHNfZWNwX3BvaW50IGJyYWlucG9vbFAyNTZyMV9UWzE2XSA9IHsKKyAgICBFQ1BfUE9JTlRfSU5JVF9YWV9aMShicmFpbnBvb2xQMjU2cjFfVF8wX1gsIGJyYWlucG9vbFAyNTZyMV9UXzBfWSksCisgICAgRUNQX1BPSU5UX0lOSVRfWFlfWjAoYnJhaW5wb29sUDI1NnIxX1RfMV9YLCBicmFpbnBvb2xQMjU2cjFfVF8xX1kpLAorICAgIEVDUF9QT0lOVF9JTklUX1hZX1owKGJyYWlucG9vbFAyNTZyMV9UXzJfWCwgYnJhaW5wb29sUDI1NnIxX1RfMl9ZKSwKKyAgICBFQ1BfUE9JTlRfSU5JVF9YWV9aMChicmFpbnBvb2xQMjU2cjFfVF8zX1gsIGJyYWlucG9vbFAyNTZyMV9UXzNfWSksCisgICAgRUNQX1BPSU5UX0lOSVRfWFlfWjAoYnJhaW5wb29sUDI1NnIxX1RfNF9YLCBicmFpbnBvb2xQMjU2cjFfVF80X1kpLAorICAgIEVDUF9QT0lOVF9JTklUX1hZX1owKGJyYWlucG9vbFAyNTZyMV9UXzVfWCwgYnJhaW5wb29sUDI1NnIxX1RfNV9ZKSwKKyAgICBFQ1BfUE9JTlRfSU5JVF9YWV9aMChicmFpbnBvb2xQMjU2cjFfVF82X1gsIGJyYWlucG9vbFAyNTZyMV9UXzZfWSksCisgICAgRUNQX1BPSU5UX0lOSVRfWFlfWjAoYnJhaW5wb29sUDI1NnIxX1RfN19YLCBicmFpbnBvb2xQMjU2cjFfVF83X1kpLAorICAgIEVDUF9QT0lOVF9JTklUX1hZX1owKGJyYWlucG9vbFAyNTZyMV9UXzhfWCwgYnJhaW5wb29sUDI1NnIxX1RfOF9ZKSwKKyAgICBFQ1BfUE9JTlRfSU5JVF9YWV9aMChicmFpbnBvb2xQMjU2cjFfVF85X1gsIGJyYWlucG9vbFAyNTZyMV9UXzlfWSksCisgICAgRUNQX1BPSU5UX0lOSVRfWFlfWjAoYnJhaW5wb29sUDI1NnIxX1RfMTBfWCwgYnJhaW5wb29sUDI1NnIxX1RfMTBfWSksCisgICAgRUNQX1BPSU5UX0lOSVRfWFlfWjAoYnJhaW5wb29sUDI1NnIxX1RfMTFfWCwgYnJhaW5wb29sUDI1NnIxX1RfMTFfWSksCisgICAgRUNQX1BPSU5UX0lOSVRfWFlfWjAoYnJhaW5wb29sUDI1NnIxX1RfMTJfWCwgYnJhaW5wb29sUDI1NnIxX1RfMTJfWSksCisgICAgRUNQX1BPSU5UX0lOSVRfWFlfWjAoYnJhaW5wb29sUDI1NnIxX1RfMTNfWCwgYnJhaW5wb29sUDI1NnIxX1RfMTNfWSksCisgICAgRUNQX1BPSU5UX0lOSVRfWFlfWjAoYnJhaW5wb29sUDI1NnIxX1RfMTRfWCwgYnJhaW5wb29sUDI1NnIxX1RfMTRfWSksCisgICAgRUNQX1BPSU5UX0lOSVRfWFlfWjAoYnJhaW5wb29sUDI1NnIxX1RfMTVfWCwgYnJhaW5wb29sUDI1NnIxX1RfMTVfWSksCit9OworI2Vsc2UKKyNkZWZpbmUgYnJhaW5wb29sUDI1NnIxX1QgTlVMTAorI2VuZGlmCisKKyNlbmRpZiAvKiBNQkVEVExTX0VDUF9EUF9CUDI1NlIxX0VOQUJMRUQgKi8KKworLyoKKyAqIERvbWFpbiBwYXJhbWV0ZXJzIGZvciBicmFpbnBvb2xQMzg0cjEgKFJGQyA1NjM5IDMuNikKKyAqLworI2lmIGRlZmluZWQoTUJFRFRMU19FQ1BfRFBfQlAzODRSMV9FTkFCTEVEKQorc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgYnJhaW5wb29sUDM4NHIxX3BbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NTMsIDB4RUMsIDB4MDcsIDB4MzEsIDB4MTMsIDB4MDAsIDB4NDcsIDB4ODcpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg3MSwgMHgxQSwgMHgxRCwgMHg5MCwgMHgyOSwgMHhBNywgMHhEMywgMHhBQyksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDIzLCAweDExLCAweEI3LCAweDdGLCAweDE5LCAweERBLCAweEIxLCAweDEyKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QjQsIDB4NTYsIDB4NTQsIDB4RUQsIDB4MDksIDB4NzEsIDB4MkYsIDB4MTUpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhERiwgMHg0MSwgMHhFNiwgMHg1MCwgMHg3RSwgMHg2RiwgMHg1RCwgMHgwRiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDI4LCAweDZELCAweDM4LCAweEEzLCAweDgyLCAweDFFLCAweEI5LCAweDhDKSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBicmFpbnBvb2xQMzg0cjFfYVtdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgyNiwgMHgyOCwgMHhDRSwgMHgyMiwgMHhERCwgMHhDNywgMHhBOCwgMHgwNCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEVCLCAweEQ0LCAweDNBLCAweDUwLCAweDRBLCAweDgxLCAweEE1LCAweDhBKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MEYsIDB4RjksIDB4OTEsIDB4QkEsIDB4RUYsIDB4NjUsIDB4OTEsIDB4MTMpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg4NywgMHgyNywgMHhCMiwgMHg0RiwgMHg4RSwgMHhBMiwgMHhCRSwgMHhDMiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEEwLCAweEFGLCAweDA1LCAweENFLCAweDBBLCAweDA4LCAweDcyLCAweDNDKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MEMsIDB4MTUsIDB4OEMsIDB4M0QsIDB4QzYsIDB4ODIsIDB4QzMsIDB4N0IpLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IGJyYWlucG9vbFAzODRyMV9iW10gPSB7CisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDExLCAweDRDLCAweDUwLCAweEZBLCAweDk2LCAweDg2LCAweEI3LCAweDNBKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4OTQsIDB4QzksIDB4REIsIDB4OTUsIDB4MDIsIDB4MzksIDB4QjQsIDB4N0MpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhENSwgMHg2MiwgMHhFQiwgMHgzRSwgMHhBNSwgMHgwRSwgMHg4OCwgMHgyRSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEE2LCAweEQyLCAweERDLCAweDA3LCAweEUxLCAweDdELCAweEI3LCAweDJGKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4N0MsIDB4NDQsIDB4RjAsIDB4MTYsIDB4NTQsIDB4QjUsIDB4MzksIDB4OEIpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgyNiwgMHgyOCwgMHhDRSwgMHgyMiwgMHhERCwgMHhDNywgMHhBOCwgMHgwNCksCit9Oworc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgYnJhaW5wb29sUDM4NHIxX2d4W10gPSB7CisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDFFLCAweEFGLCAweEQ0LCAweDQ3LCAweEUyLCAweEIyLCAweDg3LCAweEVGKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QUEsIDB4NDYsIDB4RDYsIDB4MzYsIDB4MzQsIDB4RTAsIDB4MjYsIDB4RTgpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhFOCwgMHgxMCwgMHhCRCwgMHgwQywgMHhGRSwgMHhDQSwgMHg3RiwgMHhEQiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEUzLCAweDRGLCAweEYxLCAweDdFLCAweEU3LCAweEEzLCAweDQ3LCAweDg4KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NkIsIDB4M0YsIDB4QzEsIDB4QjcsIDB4ODEsIDB4M0EsIDB4QTYsIDB4QTIpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhGRiwgMHg0NSwgMHhDRiwgMHg2OCwgMHhGMCwgMHg2NCwgMHgxQywgMHgxRCksCit9Oworc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgYnJhaW5wb29sUDM4NHIxX2d5W10gPSB7CisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDE1LCAweDUzLCAweDNDLCAweDI2LCAweDQxLCAweDAzLCAweDgyLCAweDQyKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MTEsIDB4ODEsIDB4OTEsIDB4NzcsIDB4MjEsIDB4NDYsIDB4NDYsIDB4MEUpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgyOCwgMHgyOSwgMHg5MSwgMHhGOSwgMHg0RiwgMHgwNSwgMHg5QywgMHhFMSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDY0LCAweDU4LCAweEVDLCAweEZFLCAweDI5LCAweDBCLCAweEI3LCAweDYyKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NTIsIDB4RDUsIDB4Q0YsIDB4OTUsIDB4OEUsIDB4RUIsIDB4QjEsIDB4NUMpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhBNCwgMHhDMiwgMHhGOSwgMHgyMCwgMHg3NSwgMHgxRCwgMHhCRSwgMHg4QSksCit9Oworc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgYnJhaW5wb29sUDM4NHIxX25bXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NjUsIDB4NjUsIDB4MDQsIDB4RTksIDB4MDIsIDB4MzIsIDB4ODgsIDB4M0IpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgxMCwgMHhDMywgMHg3RiwgMHg2QiwgMHhBRiwgMHhCNiwgMHgzQSwgMHhDRiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEE3LCAweDI1LCAweDA0LCAweEFDLCAweDZDLCAweDZFLCAweDE2LCAweDFGKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QjMsIDB4NTYsIDB4NTQsIDB4RUQsIDB4MDksIDB4NzEsIDB4MkYsIDB4MTUpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhERiwgMHg0MSwgMHhFNiwgMHg1MCwgMHg3RSwgMHg2RiwgMHg1RCwgMHgwRiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDI4LCAweDZELCAweDM4LCAweEEzLCAweDgyLCAweDFFLCAweEI5LCAweDhDKSwKK307CisKKyNpZiBNQkVEVExTX0VDUF9GSVhFRF9QT0lOVF9PUFRJTSA9PSAxCitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBicmFpbnBvb2xQMzg0cjFfVF8wX1hbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MUUsIDB4QUYsIDB4RDQsIDB4NDcsIDB4RTIsIDB4QjIsIDB4ODcsIDB4RUYpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhBQSwgMHg0NiwgMHhENiwgMHgzNiwgMHgzNCwgMHhFMCwgMHgyNiwgMHhFOCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEU4LCAweDEwLCAweEJELCAweDBDLCAweEZFLCAweENBLCAweDdGLCAweERCKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RTMsIDB4NEYsIDB4RjEsIDB4N0UsIDB4RTcsIDB4QTMsIDB4NDcsIDB4ODgpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg2QiwgMHgzRiwgMHhDMSwgMHhCNywgMHg4MSwgMHgzQSwgMHhBNiwgMHhBMiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEZGLCAweDQ1LCAweENGLCAweDY4LCAweEYwLCAweDY0LCAweDFDLCAweDFEKSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBicmFpbnBvb2xQMzg0cjFfVF8wX1lbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MTUsIDB4NTMsIDB4M0MsIDB4MjYsIDB4NDEsIDB4MDMsIDB4ODIsIDB4NDIpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgxMSwgMHg4MSwgMHg5MSwgMHg3NywgMHgyMSwgMHg0NiwgMHg0NiwgMHgwRSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDI4LCAweDI5LCAweDkxLCAweEY5LCAweDRGLCAweDA1LCAweDlDLCAweEUxKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NjQsIDB4NTgsIDB4RUMsIDB4RkUsIDB4MjksIDB4MEIsIDB4QjcsIDB4NjIpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg1MiwgMHhENSwgMHhDRiwgMHg5NSwgMHg4RSwgMHhFQiwgMHhCMSwgMHg1QyksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEE0LCAweEMyLCAweEY5LCAweDIwLCAweDc1LCAweDFELCAweEJFLCAweDhBKSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBicmFpbnBvb2xQMzg0cjFfVF8xX1hbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4OTMsIDB4RDgsIDB4OEEsIDB4NTQsIDB4NDEsIDB4RDYsIDB4NkIsIDB4MUQpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhFMiwgMHgzQiwgMHhGMSwgMHgyMiwgMHhGRCwgMHgyRCwgMHg0QiwgMHgwMyksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDAxLCAweDU1LCAweEUzLCAweDMzLCAweEYwLCAweDczLCAweDUyLCAweDVBKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QzEsIDB4M0YsIDB4MzAsIDB4MjYsIDB4Q0EsIDB4N0YsIDB4NTIsIDB4QTMpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhEMywgMHg2RSwgMHgxNywgMHg5QiwgMHhENSwgMHgyQSwgMHg0QSwgMHgzMSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDg2LCAweERBLCAweDZCLCAweEU1LCAweDAzLCAweDA3LCAweDFELCAweDJFKSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBicmFpbnBvb2xQMzg0cjFfVF8xX1lbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NTEsIDB4N0EsIDB4QUYsIDB4OTgsIDB4RTMsIDB4QTQsIDB4RjYsIDB4MTkpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhFQywgMHg3RCwgMHhGRSwgMHg1MSwgMHg0MCwgMHgzQiwgMHg0NywgMHhEMiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEZDLCAweDg4LCAweEVDLCAweEM0LCAweEUyLCAweDhGLCAweENCLCAweEE0KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MzAsIDB4RTIsIDB4ODgsIDB4MkQsIDB4NEUsIDB4NTAsIDB4RUIsIDB4OUEpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgxMywgMHg1NCwgMHg5NCwgMHg1RSwgMHhGNCwgMHg3RiwgMHgzQSwgMHgwNCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweENELCAweDA3LCAweDFDLCAweEUxLCAweEJELCAweDBGLCAweEY4LCAweDYzKSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBicmFpbnBvb2xQMzg0cjFfVF8yX1hbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4OTQsIDB4OTIsIDB4MjgsIDB4MkUsIDB4MzIsIDB4MDQsIDB4QjEsIDB4NEQpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgyNSwgMHg4MiwgMHg0NCwgMHg0MywgMHg3NiwgMHgwRCwgMHg1NSwgMHhCRiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDVCLCAweEUzLCAweEZGLCAweDg5LCAweDQ2LCAweERFLCAweDRFLCAweEZFKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NUIsIDB4MjIsIDB4QkIsIDB4NjcsIDB4MUEsIDB4ODEsIDB4RUUsIDB4MjcpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhDOCwgMHg1NCwgMHhFMiwgMHg3QSwgMHhBRSwgMHhEQSwgMHgyQywgMHhEMCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDc0LCAweDlBLCAweDkwLCAweEFBLCAweDZFLCAweDhCLCAweENDLCAweDVGKSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBicmFpbnBvb2xQMzg0cjFfVF8yX1lbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MTYsIDB4NDAsIDB4QUMsIDB4RUQsIDB4N0QsIDB4MzcsIDB4ODcsIDB4QUMpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg5OCwgMHhGOCwgMHhCMSwgMHg4MCwgMHg0QywgMHg4QywgMHgwNCwgMHg0MiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEMyLCAweDk4LCAweDJDLCAweEFELCAweDMwLCAweDY5LCAweDM1LCAweEMwKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MzIsIDB4MkUsIDB4MDAsIDB4MkYsIDB4NDQsIDB4OEMsIDB4RjAsIDB4QzApLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgxNiwgMHg1OCwgMHgwNywgMHhENywgMHhDRCwgMHg2MCwgMHhBMSwgMHg1QiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEFGLCAweEZCLCAweDdCLCAweDAzLCAweDA1LCAweDVFLCAweDc5LCAweDczKSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBicmFpbnBvb2xQMzg0cjFfVF8zX1hbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QzgsIDB4MTcsIDB4Q0UsIDB4MzgsIDB4NEIsIDB4NUUsIDB4NUIsIDB4QzgpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg2MCwgMHgwRSwgMHgwQSwgMHg2MSwgMHg5RCwgMHg3QywgMHg2MiwgMHgwOCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDI1LCAweEYwLCAweDk4LCAweDcxLCAweDdGLCAweDE3LCAweDI2LCAweEQ3KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4ODMsIDB4RDMsIDB4RkEsIDB4M0MsIDB4RjAsIDB4NzAsIDB4MDcsIDB4ODIpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgyOSwgMHg0NywgMHg1QywgMHgwOSwgMHg0MywgMHhCNywgMHg2NSwgMHgxNSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDBFLCAweEE5LCAweEE3LCAweDNFLCAweEZBLCAweEYzLCAweEVDLCAweDIyKSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBicmFpbnBvb2xQMzg0cjFfVF8zX1lbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4REEsIDB4NzgsIDB4MjIsIDB4MkIsIDB4NTgsIDB4NzEsIDB4RkEsIDB4QUEpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgwMCwgMHgzMCwgMHhDRSwgMHg2QSwgMHhCMywgMHhCMCwgMHg0RiwgMHg4MyksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweENGLCAweDk1LCAweDIwLCAweEE5LCAweDIzLCAweEMyLCAweDY1LCAweEU3KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NTUsIDB4Q0YsIDB4MDMsIDB4NUIsIDB4OEEsIDB4ODAsIDB4NDQsIDB4QkIpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg1QywgMHhGOCwgMHg5MSwgMHhGNywgMHhENSwgMHhFRCwgMHhFQSwgMHg4MSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDQwLCAweDVCLCAweDE2LCAweDEwLCAweDI1LCAweEFDLCAweDJBLCAweDE3KSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBicmFpbnBvb2xQMzg0cjFfVF80X1hbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RjIsIDB4RUMsIDB4REMsIDB4QzQsIDB4N0IsIDB4OEMsIDB4NkIsIDB4RTkpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgyQiwgMHhCQiwgMHgxQywgMHhEMywgMHg1QSwgMHhFRSwgMHhEOSwgMHg5NyksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDY0LCAweDVELCAweDMwLCAweDVFLCAweEY3LCAweEIyLCAweDQxLCAweDlEKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RUQsIDB4Q0UsIDB4MEYsIDB4MUEsIDB4QzYsIDB4NDEsIDB4NjQsIDB4NjIpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhGMiwgMHgxOCwgMHhFMSwgMHhFMywgMHg4MiwgMHgxNSwgMHg2NiwgMHg0QiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDlCLCAweEUyLCAweDI0LCAweDA0LCAweDcyLCAweDM5LCAweEEwLCAweDdDKSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBicmFpbnBvb2xQMzg0cjFfVF80X1lbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MkIsIDB4NTEsIDB4QTIsIDB4NTgsIDB4ODgsIDB4NjIsIDB4RTEsIDB4MDIpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg1OCwgMHhEMiwgMHg2NSwgMHgxNCwgMHhFOSwgMHg0QywgMHg4MiwgMHgzMCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweERDLCAweEUxLCAweEFDLCAweDg3LCAweEFFLCAweDMxLCAweDFBLCAweDdBKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4ODUsIDB4NEYsIDB4OTYsIDB4MUUsIDB4ODUsIDB4N0EsIDB4QzMsIDB4MkIpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhGMCwgMHg4NiwgMHhCQiwgMHhGMCwgMHhDMCwgMHg5RCwgMHgwOCwgMHg3QiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEJELCAweDUzLCAweDAzLCAweDA5LCAweDgwLCAweDkxLCAweEVGLCAweDY4KSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBicmFpbnBvb2xQMzg0cjFfVF81X1hbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MkQsIDB4RDcsIDB4QUYsIDB4NkYsIDB4NjksIDB4N0IsIDB4ODgsIDB4QTEpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhBRiwgMHgxMywgMHhFNCwgMHgzMCwgMHhBMiwgMHg0NywgMHhCNSwgMHhDMSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDBGLCAweEQyLCAweEMwLCAweERELCAweDhBLCAweDFDLCAweDNDLCAweEYyKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RjksIDB4OEMsIDB4QjMsIDB4NEMsIDB4QkEsIDB4OEIsIDB4NkQsIDB4Q0YpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg2QiwgMHhDNywgMHhBMSwgMHhBOCwgMHg2RSwgMHgzQywgMHg0RiwgMHhGMSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDk0LCAweDRBLCAweDk3LCAweEM4LCAweDAzLCAweDZGLCAweDAxLCAweDgyKSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBicmFpbnBvb2xQMzg0cjFfVF81X1lbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NzQsIDB4MTgsIDB4MTIsIDB4QTksIDB4MzksIDB4RDUsIDB4MjIsIDB4MjYpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg0NywgMHhBNywgMHhDMCwgMHhCRCwgMHg5RCwgMHg4RCwgMHg3OCwgMHgzOCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEE5LCAweEIzLCAweEQwLCAweDdGLCAweERGLCAweEQwLCAweDMwLCAweERFKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MzcsIDB4MjUsIDB4NzMsIDB4OTYsIDB4RUMsIDB4QTgsIDB4MUQsIDB4N0MpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg5MSwgMHhEMSwgMHg2NSwgMHg2NiwgMHhEQywgMHhEOSwgMHhDRiwgMHhERiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDk1LCAweEVELCAweDdCLCAweDM3LCAweEFELCAweEUyLCAweEJFLCAweDJEKSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBicmFpbnBvb2xQMzg0cjFfVF82X1hbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NTAsIDB4NzksIDB4NDIsIDB4NkEsIDB4MDcsIDB4NjYsIDB4QjEsIDB4QkQpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg0NSwgMHg1MywgMHg2MiwgMHg2NSwgMHg5MiwgMHgwOSwgMHg0QywgMHhBMSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDA2LCAweEFGLCAweEMzLCAweDAzLCAweEY2LCAweEY0LCAweDJELCAweDlCKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RTgsIDB4Q0EsIDB4NDEsIDB4RDksIDB4QTIsIDB4NjksIDB4OUIsIDB4QzkpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg0QiwgMHhCMiwgMHhBNiwgMHg4RCwgMHhFMSwgMHhBQSwgMHg2MSwgMHg3NiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDExLCAweEJBLCAweDRELCAweDEyLCAweEI2LCAweEJFLCAweEYzLCAweDdFKSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBicmFpbnBvb2xQMzg0cjFfVF82X1lbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4Q0EsIDB4RDksIDB4OTIsIDB4MjIsIDB4MDcsIDB4Q0UsIDB4QzksIDB4MjYpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg2MiwgMHhBMSwgMHg3QywgMHg5MSwgMHhEQiwgMHgzMiwgMHhGNywgMHhFNSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDZELCAweDQ5LCAweDRCLCAweDZELCAweEZCLCAweEQ5LCAweDcwLCAweDNCKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MUMsIDB4RkIsIDB4NEUsIDB4NEMsIDB4NUUsIDB4NjYsIDB4ODEsIDB4MUQpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhBNSwgMHhCMywgMHhFMSwgMHgwMCwgMHhCNywgMHhEOSwgMHhDQywgMHg1OCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEYzLCAweDM2LCAweDhCLCAweEM0LCAweDM5LCAweDIwLCAweEZELCAweDMwKSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBicmFpbnBvb2xQMzg0cjFfVF83X1hbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4OTQsIDB4MUYsIDB4NjAsIDB4MDMsIDB4QkIsIDB4RDcsIDB4NjAsIDB4NTcpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg3MiwgMHgzQywgMHg2MiwgMHhERCwgMHg3MSwgMHg5NSwgMHhFOSwgMHg2MSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEIwLCAweDVCLCAweDdBLCAweDVGLCAweDY4LCAweDgxLCAweEM1LCAweDkwKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MUUsIDB4QUYsIDB4QjUsIDB4QjksIDB4OTgsIDB4NDIsIDB4MjgsIDB4QTUpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgwQywgMHgyOSwgMHg4RSwgMHgxMSwgMHg0OSwgMHhCNCwgMHhENywgMHgyMCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDlCLCAweDNFLCAweEQyLCAweDMwLCAweEExLCAweEJBLCAweENBLCAweDAzKSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBicmFpbnBvb2xQMzg0cjFfVF83X1lbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MjksIDB4MzcsIDB4NjQsIDB4NDQsIDB4MkYsIDB4MDMsIDB4RTUsIDB4NDEpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg0QSwgMHg0MiwgMHhCQywgMHhGRiwgMHhBMiwgMHgxQSwgMHg1RiwgMHgwNiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDFELCAweDA0LCAweEFCLCAweDA0LCAweEUwLCAweDI0LCAweEFELCAweDJBKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4M0QsIDB4NDUsIDB4MTcsIDB4NjcsIDB4MUYsIDB4M0UsIDB4NTMsIDB4RjgpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhFRCwgMHgwRiwgMHhCMywgMHgxQiwgMHg1NywgMHg1NCwgMHhDMiwgMHgwMyksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDU5LCAweEQzLCAweEY4LCAweEM0LCAweDFCLCAweDlCLCAweEZBLCAweDMwKSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBicmFpbnBvb2xQMzg0cjFfVF84X1hbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MzcsIDB4OTAsIDB4RkQsIDB4RkIsIDB4Q0EsIDB4NDksIDB4MzgsIDB4NEUpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhDMywgMHhDRiwgMHhDNiwgMHhERCwgMHhGMCwgMHhGRiwgMHg4QywgMHgxMSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEQ3LCAweDY5LCAweDlELCAweEJELCAweDVGLCAweDMzLCAweEU5LCAweEI0KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NDcsIDB4MTksIDB4ODIsIDB4M0QsIDB4QUMsIDB4MUMsIDB4NDAsIDB4MjMpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg0MCwgMHhDNywgMHgwMiwgMHg0NiwgMHgxNCwgMHg3NywgMHgwMCwgMHhCRSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEM5LCAweDA1LCAweEYyLCAweDc3LCAweDNBLCAweDY2LCAweDVDLCAweDM5KSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBicmFpbnBvb2xQMzg0cjFfVF84X1lbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MUUsIDB4RTYsIDB4MTcsIDB4REUsIDB4QjIsIDB4QTEsIDB4RTUsIDB4QjgpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhDNywgMHg3MSwgMHhFQywgMHg5RCwgMHhEOCwgMHhGNSwgMHhENCwgMHg2NiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEFBLCAweEM2LCAweDQyLCAweDVFLCAweEU3LCAweDE4LCAweEJBLCAweEQwKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QzUsIDB4MjEsIDB4NjgsIDB4NUEsIDB4MjYsIDB4RkIsIDB4RDcsIDB4MTcpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgyNiwgMHgwMCwgMHg1QywgMHhCQSwgMHg4QSwgMHgzNCwgMHhFQywgMHg3NSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEMzLCAweDlDLCAweDNDLCAweEFGLCAweDUzLCAweEU4LCAweDY1LCAweDM1KSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBicmFpbnBvb2xQMzg0cjFfVF85X1hbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QkUsIDB4RUYsIDB4MjgsIDB4REMsIDB4NjcsIDB4MDUsIDB4QzgsIDB4REYpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgwQiwgMHg3OCwgMHhDMywgMHg4NSwgMHg0OSwgMHhBMCwgMHhCQywgMHgwRiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDEwLCAweDNFLCAweDJELCAweEEwLCAweENGLCAweEQ0LCAweDdBLCAweEY1KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MzYsIDB4OTMsIDB4RkUsIDB4NjAsIDB4QjMsIDB4NkUsIDB4OTksIDB4RTIpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg2MiwgMHhBRCwgMHgwNCwgMHhFNywgMHg0OSwgMHhBRiwgMHg1RSwgMHhFMyksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDU0LCAweDdBLCAweEVELCAweEE2LCAweDlFLCAweDE4LCAweDA5LCAweDMxKSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBicmFpbnBvb2xQMzg0cjFfVF85X1lbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RTgsIDB4MDUsIDB4OTQsIDB4NDQsIDB4REMsIDB4QjgsIDB4ODUsIDB4OTQpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgxNCwgMHhCNywgMHgzNywgMHhDMiwgMHg1MCwgMHg3NSwgMHgxNSwgMHhEQSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEQ2LCAweEM2LCAweDBGLCAweEIyLCAweEE5LCAweDkxLCAweDNFLCAweEU4KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QjksIDB4ODEsIDB4QUQsIDB4MjUsIDB4QTEsIDB4MjYsIDB4NzMsIDB4MTUpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhGRCwgMHhGMSwgMHhEMSwgMHg2MSwgMHg3QywgMHg3NiwgMHg4RiwgMHgxMyksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDA2LCAweERCLCAweDRBLCAweEZGLCAweDE0LCAweEE3LCAweDQ4LCAweDBCKSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBicmFpbnBvb2xQMzg0cjFfVF8xMF9YW10gPSB7CisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDJBLCAweDczLCAweEM2LCAweEMyLCAweENDLCAweEYxLCAweDU3LCAweDA0KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QjYsIDB4RUQsIDB4NzMsIDB4MjcsIDB4NzAsIDB4ODIsIDB4QjYsIDB4NUUpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgwQiwgMHhCQSwgMHhBQywgMHgzQSwgMHhDRiwgMHhGNCwgMHhFQSwgMHhBNiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDk5LCAweEQ2LCAweEIxLCAweDhGLCAweDBFLCAweDA4LCAweDJDLCAweDVFKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MTcsIDB4RTMsIDB4OEYsIDB4MkYsIDB4MEUsIDB4QTEsIDB4RjMsIDB4MDcpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgxQSwgMHhGNSwgMHg3QywgMHg5QiwgMHgyOSwgMHgwQSwgMHhGNiwgMHgyOCksCit9Oworc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgYnJhaW5wb29sUDM4NHIxX1RfMTBfWVtdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhCRCwgMHhFRSwgMHgxNywgMHg0NywgMHgzNCwgMHgxNSwgMHhBMywgMHhBRiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEZCLCAweEJFLCAweDg4LCAweDQ4LCAweEU3LCAweEEyLCAweEJCLCAweERFKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QzUsIDB4QUQsIDB4REMsIDB4NjUsIDB4NjEsIDB4MzcsIDB4MEYsIDB4QzEpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhGQSwgMHg2NywgMHhBRCwgMHhBMiwgMHgzQSwgMHgxQywgMHg5MSwgMHg3OCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDU1LCAweDA3LCAweDBDLCAweDNBLCAweDQxLCAweDZFLCAweDEzLCAweDI4KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NzMsIDB4QkQsIDB4N0UsIDB4RUQsIDB4QUEsIDB4MTQsIDB4REQsIDB4NjEpLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IGJyYWlucG9vbFAzODRyMV9UXzExX1hbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QzMsIDB4REMsIDB4MjAsIDB4MDEsIDB4NzIsIDB4MTEsIDB4NDgsIDB4NTUpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgxRSwgMHhDNCwgMHg3QiwgMHhGOCwgMHg2MiwgMHgzRCwgMHhGMCwgMHg5RiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEU4LCAweEMyLCAweDNELCAweDJFLCAweDUyLCAweEEzLCAweDRBLCAweDg5KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4Q0UsIDB4RTIsIDB4NTMsIDB4NDYsIDB4NUUsIDB4MjEsIDB4RjgsIDB4Q0UpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhDMiwgMHhDNywgMHg4RiwgMHhBOSwgMHgyNiwgMHg0MiwgMHgzMiwgMHgzQSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEZCLCAweEE2LCAweEEwLCAweDhELCAweDRCLCAweDlBLCAweDE5LCAweDAzKSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBicmFpbnBvb2xQMzg0cjFfVF8xMV9ZW10gPSB7CisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEVBLCAweEFCLCAweDZELCAweDFFLCAweEZCLCAweEVFLCAweDYwLCAweDBDKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QjYsIDB4NTYsIDB4M0MsIDB4QzUsIDB4NUQsIDB4MTAsIDB4NzksIDB4MUMpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgyNSwgMHhCQywgMHg0MSwgMHg5RiwgMHg3MSwgMHhFRiwgMHgwMiwgMHhGOSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEEyLCAweDM2LCAweEM0LCAweEQwLCAweDg4LCAweDlCLCAweDMyLCAweEZDKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4OUMsIDB4RDQsIDB4NUQsIDB4MTcsIDB4MzksIDB4RTYsIDB4MjIsIDB4MkMpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg3QiwgMHgyNiwgMHgwMSwgMHhDRSwgMHhCRSwgMHg0QSwgMHg5QywgMHgyNyksCit9Oworc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgYnJhaW5wb29sUDM4NHIxX1RfMTJfWFtdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhFRiwgMHg2RCwgMHgxMSwgMHhDQSwgMHg2QywgMHg1QSwgMHg5MywgMHgwQyksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEVCLCAweDk2LCAweDI2LCAweEFGLCAweDJGLCAweEU0LCAweDMwLCAweDk4KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MzUsIDB4QzEsIDB4NEMsIDB4QzYsIDB4MzAsIDB4MUYsIDB4NUMsIDB4MDQpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg1OSwgMHhCMywgMHhFOCwgMHhGQywgMHgzNSwgMHhFQiwgMHg2MywgMHg2QyksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDlDLCAweDFELCAweENBLCAweEZDLCAweDUwLCAweDM2LCAweDRCLCAweDk2KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RTQsIDB4MEUsIDB4MjMsIDB4NUIsIDB4QUYsIDB4RUIsIDB4MkQsIDB4MzEpLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IGJyYWlucG9vbFAzODRyMV9UXzEyX1lbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QzYsIDB4ODgsIDB4QjYsIDB4RDcsIDB4NzQsIDB4NEEsIDB4MjMsIDB4QjYpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhFRiwgMHg2NiwgMHhFMiwgMHhCQiwgMHgyOSwgMHhBNiwgMHg0RiwgMHg1NSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEU5LCAweDZGLCAweDdFLCAweDY4LCAweDZFLCAweEEwLCAweDE0LCAweDk0KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4M0IsIDB4NzMsIDB4RDQsIDB4RTgsIDB4QUIsIDB4NUIsIDB4RjYsIDB4MEQpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg0NiwgMHhFMCwgMHgzQywgMHgyNCwgMHgwMCwgMHg5NSwgMHhFOSwgMHhBRCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDM3LCAweDBELCAweDRGLCAweDgxLCAweEQwLCAweEYyLCAweDNGLCAweDAwKSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBicmFpbnBvb2xQMzg0cjFfVF8xM19YW10gPSB7CisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDk5LCAweDFELCAweENELCAweDc4LCAweDM5LCAweEM0LCAweDZCLCAweEQ5KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4ODEsIDB4NDUsIDB4QzcsIDB4QjgsIDB4MkYsIDB4QUEsIDB4NUQsIDB4RTMpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgzMywgMHg4QywgMHg2RSwgMHhBMywgMHgyNCwgMHhCMiwgMHhEQiwgMHg0QiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDY5LCAweDJELCAweEQ5LCAweEYxLCAweEM3LCAweDlCLCAweDhBLCAweEFGKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NjcsIDB4RTEsIDB4MkMsIDB4QjksIDB4NDAsIDB4MzcsIDB4OTEsIDB4NzUpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg4MSwgMHgyQywgMHhCNSwgMHgyMywgMHgwMywgMHgyQiwgMHhBRiwgMHgyRiksCit9Oworc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgYnJhaW5wb29sUDM4NHIxX1RfMTNfWVtdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgyRiwgMHg5RCwgMHg1QSwgMHgyMCwgMHgxMCwgMHhBOSwgMHg4NCwgMHhEQSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDYxLCAweDMwLCAweDg5LCAweDIwLCAweDEzLCAweEU5LCAweEIyLCAweENBKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QjYsIDB4NkUsIDB4NTIsIDB4RUIsIDB4MDMsIDB4MTgsIDB4MUYsIDB4QTYpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg2QywgMHg5RSwgMHgxQywgMHgzNSwgMHg4NywgMHg5MiwgMHg2OSwgMHhDNyksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEExLCAweEM5LCAweDg4LCAweEFGLCAweEM2LCAweDZDLCAweDgzLCAweDcyKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4Q0IsIDB4RDUsIDB4N0EsIDB4NTQsIDB4MzQsIDB4OTksIDB4QjYsIDB4NkYpLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IGJyYWlucG9vbFAzODRyMV9UXzE0X1hbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4REYsIDB4QUQsIDB4NDUsIDB4OUIsIDB4NEIsIDB4NDEsIDB4NEQsIDB4NTApLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgxQiwgMHg1RCwgMHhBQiwgMHg3RiwgMHgzNSwgMHgzNCwgMHhFOSwgMHgyOSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDczLCAweEJFLCAweDc4LCAweDM0LCAweDQ0LCAweEYzLCAweDRBLCAweDg3KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RkIsIDB4REUsIDB4RTMsIDB4QzQsIDB4RUUsIDB4MEIsIDB4RjksIDB4RUIpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg1RSwgMHg4NiwgMHgxNiwgMHg0OCwgMHgzMiwgMHhCOCwgMHg3NCwgMHg0MSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEYyLCAweEVFLCAweDdDLCAweEJBLCAweEJELCAweDgxLCAweEUzLCAweDU1KSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBicmFpbnBvb2xQMzg0cjFfVF8xNF9ZW10gPSB7CisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEY4LCAweDZBLCAweEZBLCAweDg0LCAweERBLCAweEI4LCAweEQ1LCAweDE0KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QjIsIDB4OUYsIDB4OEEsIDB4RDUsIDB4MUIsIDB4MkUsIDB4MUEsIDB4MEIpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg1RiwgMHgwQywgMHg2MSwgMHhFMiwgMHhGRiwgMHg1QiwgMHhFNiwgMHhENSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDBFLCAweDYyLCAweEMxLCAweDg3LCAweDUzLCAweDFCLCAweDkyLCAweEEzKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NTQsIDB4OTAsIDB4MDAsIDB4RDEsIDB4NkEsIDB4MEMsIDB4MEUsIDB4MjgpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg4QiwgMHgyRSwgMHhCNSwgMHgzQiwgMHg0NCwgMHhCNSwgMHhBMCwgMHg3OCksCit9Oworc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgYnJhaW5wb29sUDM4NHIxX1RfMTVfWFtdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhCOCwgMHg1RCwgMHgwMiwgMHg1OCwgMHhCNSwgMHhCRSwgMHg0NSwgMHgxNCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEFELCAweEVGLCAweDhFLCAweDkwLCAweDRELCAweDJBLCAweDMyLCAweEFDKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NDgsIDB4OTksIDB4NzUsIDB4NUMsIDB4MEEsIDB4MzMsIDB4OEYsIDB4MzYpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhDOCwgMHg2QywgMHg5NSwgMHhENCwgMHgxRiwgMHhGMywgMHhFQiwgMHhEQSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEMyLCAweEU0LCAweDRDLCAweDkxLCAweDIwLCAweEYzLCAweDI1LCAweEVCKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RjEsIDB4OTUsIDB4RUIsIDB4MjksIDB4NkYsIDB4MjAsIDB4MzQsIDB4ODEpLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IGJyYWlucG9vbFAzODRyMV9UXzE1X1lbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MkQsIDB4MTUsIDB4RTUsIDB4MTMsIDB4N0UsIDB4NjQsIDB4OEIsIDB4QUQpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhBNywgMHhCQywgMHgwRCwgMHgxOCwgMHg3RSwgMHgzNywgMHg5RSwgMHhGQSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEU4LCAweDgyLCAweDIwLCAweEY3LCAweDJELCAweDdBLCAweDc3LCAweDUyKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4Q0IsIDB4MjksIDB4QTIsIDB4REIsIDB4N0EsIDB4RTYsIDB4NkYsIDB4QTUpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhBMCwgMHhDNiwgMHg1MCwgMHg1QywgMHhCQywgMHhFNiwgMHg0RiwgMHhCRCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDFFLCAweDlGLCAweEQ1LCAweEU4LCAweEM1LCAweDNELCAweEI3LCAweDMwKSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBicmFpbnBvb2xQMzg0cjFfVF8xNl9YW10gPSB7CisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDQ1LCAweDAzLCAweDU1LCAweDEwLCAweERCLCAweEE2LCAweDhCLCAweDIyKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NEUsIDB4MTcsIDB4QUUsIDB4NzgsIDB4QzksIDB4MUQsIDB4NDMsIDB4Q0EpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg0RSwgMHgzNSwgMHg0OSwgMHhENCwgMHg0NywgMHg4NCwgMHg4RCwgMHgyMCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEYzLCAweDk1LCAweDJGLCAweEVBLCAweEJDLCAweEI0LCAweDE4LCAweEIzKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RDQsIDB4NDgsIDB4QUUsIDB4ODksIDB4RjUsIDB4NjUsIDB4M0QsIDB4ODkpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg4NiwgMHhGMiwgMHgyQiwgMHgyMCwgMHhEMSwgMHg3NSwgMHg1MCwgMHg2MyksCit9Oworc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgYnJhaW5wb29sUDM4NHIxX1RfMTZfWVtdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhBRCwgMHhFNiwgMHg1QywgMHgyQywgMHhFMCwgMHg3RCwgMHhERiwgMHgyRCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDNFLCAweDA3LCAweDNFLCAweENFLCAweDlGLCAweDE4LCAweEI2LCAweDA1KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4OUEsIDB4RjgsIDB4RjAsIDB4RDUsIDB4RkEsIDB4NDIsIDB4MUQsIDB4NkQpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg0MSwgMHg2QywgMHgxRCwgMHgwMywgMHhDOSwgMHgwRSwgMHgyQiwgMHgyRiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDQzLCAweDE4LCAweDUyLCAweEE1LCAweEI0LCAweDYzLCAweEUxLCAweDA2KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QjcsIDB4MEEsIDB4RDksIDB4QzQsIDB4RkQsIDB4MTYsIDB4NjAsIDB4NTQpLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IGJyYWlucG9vbFAzODRyMV9UXzE3X1hbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NDMsIDB4N0QsIDB4REUsIDB4REYsIDB4NEIsIDB4NEEsIDB4QjAsIDB4Q0IpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhCMCwgMHg0RSwgMHg4QywgMHg5NCwgMHhDMSwgMHhFMiwgMHg4NSwgMHhERiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDRGLCAweEYwLCAweEVBLCAweEI1LCAweDlCLCAweDcwLCAweEVGLCAweDEwKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NTYsIDB4QzIsIDB4MzksIDB4NUQsIDB4RjMsIDB4MkMsIDB4RDksIDB4MkMpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgwRCwgMHgxQywgMHgyRSwgMHhDQywgMHgyRiwgMHg1NCwgMHg4NywgMHg4MCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEIwLCAweDcyLCAweEM3LCAweEI1LCAweDUwLCAweEEzLCAweDg0LCAweDc3KSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBicmFpbnBvb2xQMzg0cjFfVF8xN19ZW10gPSB7CisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEI3LCAweEQxLCAweEFGLCAweEE5LCAweEI0LCAweDhCLCAweDVELCAweEZBKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QzgsIDB4RjYsIDB4NTIsIDB4OEEsIDB4QzMsIDB4NTYsIDB4QTUsIDB4NUUpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgzQiwgMHg1MiwgMHhGRiwgMHhFQSwgMHgwNSwgMHg0MiwgMHg3NywgMHg4MyksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDI5LCAweDA4LCAweDkwLCAweDcyLCAweDg2LCAweEM0LCAweEMzLCAweEI4KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NEQsIDB4MTUsIDB4RjgsIDB4RjEsIDB4MTYsIDB4NjcsIDB4QzYsIDB4RDUpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg3NSwgMHg4NywgMHhBQywgMHg4RiwgMHg3MSwgMHhFQywgMHg4MywgMHg4MSksCit9Oworc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgYnJhaW5wb29sUDM4NHIxX1RfMThfWFtdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg5MSwgMHhFMSwgMHhFNiwgMHgyRCwgMHgwRSwgMHgxMSwgMHhBMSwgMHg2MiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDc0LCAweEUyLCAweEE4LCAweDMyLCAweEU2LCAweEUzLCAweDgzLCAweEQxKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NTAsIDB4NTYsIDB4RTUsIDB4Q0QsIDB4QjcsIDB4MkIsIDB4NjcsIDB4NkYpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhFNSwgMHhFRCwgMHhDOSwgMHg2NSwgMHg2RCwgMHg4NywgMHhFMSwgMHg4RSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDUwLCAweDhFLCAweEZELCAweDlBLCAweDUzLCAweDBFLCAweEZBLCAweEEzKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NDksIDB4NEMsIDB4NEEsIDB4RTIsIDB4MjMsIDB4ODQsIDB4RkEsIDB4MDEpLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IGJyYWlucG9vbFAzODRyMV9UXzE4X1lbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QjQsIDB4RkUsIDB4NDksIDB4ODEsIDB4RDEsIDB4M0UsIDB4RjQsIDB4N0MpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg0NSwgMHg3MiwgMHhFMCwgMHhFRiwgMHgwRCwgMHhCOCwgMHgzRSwgMHg2RiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDNDLCAweDAwLCAweDBGLCAweDVGLCAweENFLCAweDYwLCAweDcyLCAweDJDKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QjcsIDB4Q0MsIDB4RDgsIDB4MDMsIDB4MDcsIDB4NkUsIDB4NUEsIDB4Q0QpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgyNywgMHgzQSwgMHgzNSwgMHg1MCwgMHg0RSwgMHgxRiwgMHhDQSwgMHg1RiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDU4LCAweEVBLCAweDg4LCAweDU1LCAweEJELCAweDZFLCAweDA1LCAweDdGKSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBicmFpbnBvb2xQMzg0cjFfVF8xOV9YW10gPSB7CisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEIxLCAweDZELCAweEYxLCAweDk3LCAweEE2LCAweDY5LCAweDM5LCAweDI0KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MEIsIDB4NDEsIDB4OTksIDB4RkYsIDB4M0IsIDB4QTEsIDB4MjYsIDB4RUMpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg5NSwgMHgyRiwgMHg5NSwgMHg4MCwgMHgxMiwgMHg0QSwgMHgxQiwgMHhDQiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEVBLCAweEJGLCAweDUxLCAweEFBLCAweEFFLCAweDJELCAweERBLCAweENGKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MEMsIDB4MUMsIDB4QjMsIDB4NTIsIDB4MzYsIDB4NDksIDB4RDQsIDB4ODYpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg5OSwgMHhDMSwgMHgxRiwgMHgzQSwgMHhEMywgMHgzRSwgMHg1QywgMHgxQSksCit9Oworc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgYnJhaW5wb29sUDM4NHIxX1RfMTlfWVtdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg3MywgMHg1MSwgMHhGNywgMHgyQiwgMHhDOCwgMHhBOSwgMHhBNywgMHgxNSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDEyLCAweDRFLCAweDdGLCAweDk4LCAweDQxLCAweDY2LCAweEIwLCAweDAzKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4OTEsIDB4MUQsIDB4QzAsIDB4NDIsIDB4Q0QsIDB4RjgsIDB4QzMsIDB4MkIpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhDQywgMHg0MSwgMHg5MSwgMHg3RCwgMHhDQywgMHg4QiwgMHhDQywgMHg0MSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDJBLCAweEFFLCAweDc2LCAweEVELCAweDU2LCAweDE4LCAweEM1LCAweEFCKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QUIsIDB4NkEsIDB4MDYsIDB4QTMsIDB4N0YsIDB4NjUsIDB4MTAsIDB4MUYpLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IGJyYWlucG9vbFAzODRyMV9UXzIwX1hbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MEMsIDB4RUMsIDB4M0MsIDB4MDUsIDB4MDUsIDB4Q0EsIDB4RjYsIDB4RUQpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg0OCwgMHhDRCwgMHgwMiwgMHg1MSwgMHgxMiwgMHgxNiwgMHgzQywgMHg2MyksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEE4LCAweEVCLCAweEIzLCAweDQzLCAweDdCLCAweERELCAweEIyLCAweDdDKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MDAsIDB4NTksIDB4OTAsIDB4NDEsIDB4REIsIDB4RTQsIDB4RjUsIDB4OTEpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhEMCwgMHgwRSwgMHgxOCwgMHgyQSwgMHg1QSwgMHg4MywgMHg3QywgMHgyRiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEUxLCAweDM3LCAweEExLCAweDBELCAweEYxLCAweDJGLCAweDYzLCAweDc5KSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBicmFpbnBvb2xQMzg0cjFfVF8yMF9ZW10gPSB7CisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDIxLCAweEMwLCAweEZBLCAweDZGLCAweDFGLCAweDY3LCAweENGLCAweEVDKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4OTgsIDB4MzQsIDB4NDUsIDB4QkIsIDB4RjQsIDB4RjksIDB4OUIsIDB4ODkpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhGNSwgMHg2OSwgMHhGRSwgMHg2NywgMHgxRCwgMHg2NCwgMHg4RiwgMHhCOSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweERCLCAweDM5LCAweEJGLCAweEQ4LCAweEIzLCAweEM3LCAweEFELCAweDhBKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4OEMsIDB4OTMsIDB4RkYsIDB4RjMsIDB4MjgsIDB4RkEsIDB4MzksIDB4RjYpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhGQSwgMHhGOSwgMHhDMywgMHg4NSwgMHgyNiwgMHg3QSwgMHg4OCwgMHg4OSksCit9Oworc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgYnJhaW5wb29sUDM4NHIxX1RfMjFfWFtdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg0RCwgMHhENSwgMHg3OSwgMHhEOCwgMHgxMSwgMHhERSwgMHhFQiwgMHg0RSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDFDLCAweDQ2LCAweEE0LCAweDZBLCAweERBLCAweDc0LCAweDM0LCAweEE4KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MUUsIDB4QkQsIDB4RDMsIDB4RjUsIDB4MTQsIDB4RUUsIDB4RkUsIDB4QUUpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgxOSwgMHg0QywgMHhBMywgMHg3MSwgMHg0MywgMHg2NSwgMHhGOCwgMHg5NCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDcyLCAweDZDLCAweDM1LCAweEZBLCAweDkwLCAweDI1LCAweEQ4LCAweEUyKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QkIsIDB4MzQsIDB4ODQsIDB4OTYsIDB4QTEsIDB4NDMsIDB4MDMsIDB4NEQpLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IGJyYWlucG9vbFAzODRyMV9UXzIxX1lbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RjEsIDB4M0IsIDB4M0IsIDB4MkYsIDB4Q0EsIDB4NTksIDB4RjIsIDB4NDIpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhDRCwgMHg0OCwgMHgyNCwgMHg3NCwgMHhEOCwgMHg3MiwgMHg5MCwgMHhBMyksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDgzLCAweDQyLCAweDc0LCAweDhDLCAweDZGLCAweDUyLCAweDE5LCAweDNEKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NDAsIDB4OUUsIDB4NDEsIDB4NjMsIDB4NjgsIDB4NzgsIDB4NEMsIDB4MkYpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg1MywgMHg5NCwgMHhCNiwgMHg2QiwgMHgzOCwgMHg1MiwgMHhBOCwgMHg5RiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDgxLCAweDMwLCAweDI1LCAweDkzLCAweEExLCAweDZGLCAweDZFLCAweDY4KSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBicmFpbnBvb2xQMzg0cjFfVF8yMl9YW10gPSB7CisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEZDLCAweDJGLCAweDRCLCAweDY0LCAweDc5LCAweDUwLCAweEZGLCAweDAxKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RDQsIDB4MzYsIDB4RUQsIDB4NTcsIDB4MzksIDB4M0IsIDB4RTcsIDB4RjMpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhGMSwgMHg4NSwgMHhFQSwgMHgzNSwgMHhENiwgMHhDMCwgMHhBMCwgMHg1MiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEJBLCAweDg5LCAweDNBLCAweENDLCAweDIyLCAweDFDLCAweDQ2LCAweDAyKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NkMsIDB4N0EsIDB4QjAsIDB4QTEsIDB4MUIsIDB4NjksIDB4NjIsIDB4NTUpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg1NywgMHhCOCwgMHg4QSwgMHg2QywgMHgxOCwgMHg4NSwgMHgwRCwgMHg4OCksCit9Oworc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgYnJhaW5wb29sUDM4NHIxX1RfMjJfWVtdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhGRCwgMHhCNiwgMHg1MCwgMHhFOSwgMHg0RSwgMHg3RiwgMHhFOCwgMHgwNyksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDkyLCAweDVCLCAweDVDLCAweEQxLCAweDRCLCAweDExLCAweDlBLCAweEQ4KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4OTYsIDB4MjUsIDB4NTYsIDB4NzQsIDB4NTEsIDB4OUMsIDB4RUMsIDB4OUMpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg1NSwgMHg3RiwgMHhCNiwgMHg4QSwgMHhDQiwgMHgzQSwgMHgxMCwgMHg2QSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDYwLCAweDMzLCAweDA3LCAweDAxLCAweEU5LCAweDQ5LCAweDU5LCAweEU2KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QzYsIDB4QTUsIDB4MkUsIDB4RjIsIDB4QkEsIDB4MzIsIDB4NjMsIDB4NDQpLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IGJyYWlucG9vbFAzODRyMV9UXzIzX1hbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RjgsIDB4MDYsIDB4MEIsIDB4QTUsIDB4NDQsIDB4MjcsIDB4N0YsIDB4MjIpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgzMCwgMHg3NCwgMHhBQywgMHgwRiwgMHhDQywgMHg0RiwgMHgxMywgMHg2MSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEZELCAweEIxLCAweEJGLCAweDk3LCAweDQ5LCAweEE1LCAweDFDLCAweDFEKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4OEEsIDB4NjQsIDB4NjgsIDB4N0IsIDB4MEYsIDB4Q0MsIDB4NzcsIDB4RjgpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhCQiwgMHgzOSwgMHhGOSwgMHg0RSwgMHg4NCwgMHg5QywgMHhGNiwgMHg5NiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEJDLCAweENGLCAweDZELCAweEUyLCAweEExLCAweDJELCAweEY5LCAweDJCKSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBicmFpbnBvb2xQMzg0cjFfVF8yM19ZW10gPSB7CisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDk1LCAweEM0LCAweDkwLCAweDU3LCAweDMxLCAweDAxLCAweDA1LCAweDVFKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4Q0MsIDB4MUUsIDB4QkIsIDB4QkYsIDB4OTgsIDB4QTQsIDB4N0MsIDB4RTMpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg4OSwgMHhFMywgMHhBMCwgMHhCMiwgMHhDRCwgMHgzOSwgMHg5QSwgMHgzRiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDkyLCAweDM0LCAweDYwLCAweDdBLCAweDg5LCAweDk4LCAweEI1LCAweDUyKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4OEQsIDB4MjAsIDB4M0QsIDB4M0EsIDB4MDQsIDB4OEYsIDB4NUEsIDB4QUMpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhBMywgMHgyNiwgMHhCNiwgMHg0OSwgMHgwOSwgMHg5QywgMHgwRiwgMHg1OSksCit9Oworc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgYnJhaW5wb29sUDM4NHIxX1RfMjRfWFtdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg3MiwgMHg2NiwgMHhEMiwgMHgzOCwgMHgyQSwgMHg2MiwgMHg4MSwgMHhDQSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEM1LCAweEM4LCAweDIwLCAweDVFLCAweDI4LCAweEEzLCAweDgxLCAweEE3KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MjAsIDB4MzEsIDB4QTQsIDB4RjEsIDB4RUEsIDB4N0QsIDB4ODcsIDB4NDUpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg4RiwgMHgyQywgMHg5OSwgMHgwOSwgMHg2RiwgMHg2MywgMHhFQiwgMHgyRiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDczLCAweDc2LCAweERBLCAweDFBLCAweDA2LCAweEJFLCAweERFLCAweEEyKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MjksIDB4MDksIDB4MkUsIDB4NzUsIDB4MzksIDB4MzAsIDB4MkQsIDB4NDIpLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IGJyYWlucG9vbFAzODRyMV9UXzI0X1lbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NDEsIDB4OUIsIDB4QzEsIDB4NUEsIDB4MTcsIDB4QzMsIDB4OEMsIDB4MzEpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg1OCwgMHg4RCwgMHg5NCwgMHg0RCwgMHgzRCwgMHhBQiwgMHg2MCwgMHhENCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEZGLCAweEZELCAweDFFLCAweDBGLCAweDQzLCAweEFFLCAweDlELCAweDYyKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4OEUsIDB4RjIsIDB4RjMsIDB4MjAsIDB4MUIsIDB4QUEsIDB4QjcsIDB4NDEpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg5RCwgMHg1QiwgMHhBNCwgMHhGNCwgMHg5MCwgMHgzQiwgMHhFMywgMHg3MSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEY3LCAweDc4LCAweDcyLCAweEJELCAweDY1LCAweDA5LCAweDBCLCAweDAxKSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBicmFpbnBvb2xQMzg0cjFfVF8yNV9YW10gPSB7CisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweENBLCAweDM3LCAweDJBLCAweDZDLCAweDE2LCAweDRGLCAweDY0LCAweDU5KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NUEsIDB4Q0UsIDB4QTMsIDB4OTAsIDB4QjQsIDB4OUEsIDB4QkMsIDB4RjcpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgyNywgMHgzOCwgMHg1NSwgMHg2MywgMHgxRCwgMHgzQSwgMHg2RSwgMHgxOCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDM3LCAweEI0LCAweEFBLCAweDk5LCAweDIyLCAweDQ1LCAweDg5LCAweDJDKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QjcsIDB4N0MsIDB4OEMsIDB4QTYsIDB4M0QsIDB4QTcsIDB4M0UsIDB4RTgpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg3MCwgMHgwNiwgMHg0MiwgMHhEQywgMHhBNiwgMHhFMywgMHhDNiwgMHgxMiksCit9Oworc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgYnJhaW5wb29sUDM4NHIxX1RfMjVfWVtdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg1NSwgMHg4QywgMHgzRCwgMHg1RCwgMHg0NywgMHgzMSwgMHg3QywgMHhFQiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDQ2LCAweDg1LCAweEVFLCAweDQ2LCAweDdFLCAweDEzLCAweDA0LCAweDQxKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4OUUsIDB4M0MsIDB4OEIsIDB4NDMsIDB4MkUsIDB4NzQsIDB4RjUsIDB4RjYpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhCQSwgMHg4OCwgMHg4RSwgMHgwNywgMHgyOSwgMHgwOCwgMHgwMywgMHgyNiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEVBLCAweDlCLCAweDg5LCAweEVCLCAweDA4LCAweEU4LCAweDQzLCAweEI1KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MTcsIDB4MDcsIDB4NjcsIDB4RkQsIDB4RDksIDB4NzMsIDB4NkYsIDB4MTgpLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IGJyYWlucG9vbFAzODRyMV9UXzI2X1hbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MjksIDB4RUIsIDB4MjEsIDB4OEQsIDB4OTgsIDB4NDMsIDB4NzQsIDB4OTgpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg4OCwgMHhDQywgMHgxNCwgMHhEOCwgMHgwOCwgMHhCQiwgMHhBNiwgMHhFMyksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEM0LCAweDk4LCAweEYyLCAweDZBLCAweDE4LCAweEMzLCAweERELCAweDlFKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QzcsIDB4MzgsIDB4OTEsIDB4QTAsIDB4MDMsIDB4RjIsIDB4MDQsIDB4NjIpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg3QSwgMHhBRiwgMHhFOCwgMHhGRCwgMHhGQiwgMHgxMywgMHg3MCwgMHg3NCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEQwLCAweDkzLCAweDg3LCAweDk4LCAweDRBLCAweEUwLCAweDAwLCAweDEyKSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBicmFpbnBvb2xQMzg0cjFfVF8yNl9ZW10gPSB7CisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDk3LCAweDJFLCAweDY5LCAweDlDLCAweEEyLCAweDJELCAweDAzLCAweDNGKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NzksIDB4RkUsIDB4RjMsIDB4QjksIDB4QzEsIDB4ODUsIDB4MkEsIDB4RUUpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhDRSwgMHhGRCwgMHg4NiwgMHhCMSwgMHhDRCwgMHhCRiwgMHg0MSwgMHhCNyksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEEwLCAweEQ4LCAweDlBLCAweDIxLCAweEYzLCAweEZFLCAweENCLCAweEYxKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4OTUsIDB4NzgsIDB4MDQsIDB4NjAsIDB4QjcsIDB4QTksIDB4QTIsIDB4ODQpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhFOCwgMHgxRSwgMHg2NiwgMHgyQSwgMHg1NCwgMHg1MSwgMHhCRCwgMHg4QiksCit9Oworc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgYnJhaW5wb29sUDM4NHIxX1RfMjdfWFtdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg4RSwgMHgxNiwgMHgzNiwgMHhFRiwgMHg2MSwgMHgyRCwgMHhFRSwgMHgzQiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDQ1LCAweDVGLCAweDg4LCAweEEwLCAweDEzLCAweDEyLCAweEY3LCAweDIzKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QTksIDB4QzYsIDB4QUQsIDB4NEEsIDB4NEEsIDB4MDcsIDB4MDEsIDB4NUIpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhCOCwgMHg3NCwgMHhCMSwgMHg0RiwgMHhFQiwgMHhCRCwgMHhENSwgMHg2QiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDU3LCAweEY5LCAweDcxLCAweEEyLCAweDA2LCAweDRGLCAweEQ3LCAweEJDKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RkYsIDB4OEIsIDB4NEQsIDB4NDgsIDB4RTAsIDB4OTgsIDB4RkIsIDB4NkEpLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IGJyYWlucG9vbFAzODRyMV9UXzI3X1lbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QzQsIDB4QkEsIDB4MTAsIDB4QTMsIDB4MEQsIDB4NTIsIDB4QUMsIDB4M0EpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgxMSwgMHhEMCwgMHhFMCwgMHgzNiwgMHhFNiwgMHgwNywgMHgzQSwgMHgzMCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDdFLCAweDgwLCAweEYwLCAweEFBLCAweDQ5LCAweDIyLCAweDRCLCAweEREKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RkYsIDB4QzcsIDB4QUIsIDB4MUMsIDB4ODksIDB4Q0QsIDB4MjQsIDB4NDApLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg4MiwgMHgyQSwgMHhGQywgMHhCMywgMHg2RCwgMHg0NSwgMHg5NiwgMHg0OSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDYzLCAweEU0LCAweERCLCAweDUyLCAweDNGLCAweEM0LCAweEI0LCAweDE5KSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBicmFpbnBvb2xQMzg0cjFfVF8yOF9YW10gPSB7CisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDVCLCAweENDLCAweEM4LCAweDdGLCAweEJCLCAweDZCLCAweDg3LCAweDQ3KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QzAsIDB4MjEsIDB4M0MsIDB4NjksIDB4N0QsIDB4MzgsIDB4NTcsIDB4NTApLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg1MiwgMHg0QywgMHgxOCwgMHgzQywgMHg1MywgMHhBNSwgMHg0OCwgMHg2RCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDIxLCAweEMzLCAweDY0LCAweDQ1LCAweERCLCAweEM0LCAweDZELCAweDE1KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NDksIDB4Q0MsIDB4RDEsIDB4QkIsIDB4MTcsIDB4QjgsIDB4MzQsIDB4MkQpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg2QywgMHg2OSwgMHg3MSwgMHhGQSwgMHhBMCwgMHgyOCwgMHg0QSwgMHgzRCksCit9Oworc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgYnJhaW5wb29sUDM4NHIxX1RfMjhfWVtdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhFRCwgMHhFOCwgMHg5RSwgMHgzOSwgMHhFQSwgMHg4RCwgMHgzOCwgMHhEQiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweENDLCAweDlDLCAweEJCLCAweENELCAweDgwLCAweDFBLCAweEVFLCAweEI3KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QkMsIDB4QTAsIDB4NDUsIDB4QkYsIDB4RDksIDB4MjIsIDB4MTEsIDB4MzIpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhEQSwgMHg3QywgMHg1QywgMHhEOSwgMHhDMCwgMHg5RiwgMHg2OSwgMHhGNSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEJDLCAweDhBLCAweEE2LCAweDc5LCAweDRFLCAweDM1LCAweEI5LCAweEQ1KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4Q0MsIDB4OEIsIDB4OUEsIDB4M0UsIDB4QTEsIDB4QjgsIDB4MjgsIDB4MTApLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IGJyYWlucG9vbFAzODRyMV9UXzI5X1hbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NTUsIDB4MkYsIDB4RUYsIDB4QkIsIDB4QTksIDB4NzIsIDB4N0YsIDB4RUEpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhCNSwgMHgzNCwgMHhCNywgMHgxMiwgMHhCOSwgMHhFNywgMHhDMywgMHgyQSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEY4LCAweDFELCAweEQ5LCAweDQyLCAweDc3LCAweDBDLCAweDcxLCAweDZFKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RUMsIDB4MDEsIDB4NTksIDB4QTcsIDB4NTYsIDB4MDMsIDB4OTEsIDB4OEQpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg2QywgMHg5MSwgMHg5OSwgMHgzMywgMHgzMCwgMHgzRSwgMHhFRiwgMHgxMyksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDg3LCAweEM5LCAweDVBLCAweDlBLCAweDU0LCAweDY2LCAweEYxLCAweDcwKSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBicmFpbnBvb2xQMzg0cjFfVF8yOV9ZW10gPSB7CisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDY0LCAweDJDLCAweEI3LCAweDZFLCAweDcxLCAweDdELCAweDM1LCAweDMwKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MUEsIDB4MEQsIDB4RUYsIDB4RDEsIDB4MkQsIDB4OTksIDB4NjMsIDB4MkYpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhFNCwgMHgzMSwgMHhBRiwgMHgyRCwgMHhDOSwgMHhDNiwgMHhDMiwgMHhBRSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDE5LCAweEMwLCAweERGLCAweDgwLCAweDU0LCAweEM0LCAweEFDLCAweEYzKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RTMsIDB4NkIsIDB4QTAsIDB4ODQsIDB4OTYsIDB4RjcsIDB4MzEsIDB4QzgpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg5MywgMHhFMiwgMHg3QywgMHg3QSwgMHg0MSwgMHg0NSwgMHg3NSwgMHg2QSksCit9Oworc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgYnJhaW5wb29sUDM4NHIxX1RfMzBfWFtdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhBRSwgMHhFRSwgMHg1OCwgMHgzMSwgMHhFOCwgMHg2OCwgMHhENiwgMHg3NiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEQyLCAweDJFLCAweDQ4LCAweEI3LCAweDA5LCAweDlGLCAweEQ0LCAweENBKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MzQsIDB4QTksIDB4NUMsIDB4RTcsIDB4NjQsIDB4NDMsIDB4NUQsIDB4QzkpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg5RSwgMHg1OCwgMHg5RiwgMHg1MCwgMHhBQiwgMHg2OCwgMHhGRiwgMHg2RCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDg3LCAweDg4LCAweDJELCAweEJBLCAweDEyLCAweEJGLCAweDhELCAweDdEKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RDQsIDB4REYsIDB4NkYsIDB4QjMsIDB4NzUsIDB4QTQsIDB4NTUsIDB4NzMpLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IGJyYWlucG9vbFAzODRyMV9UXzMwX1lbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NkQsIDB4MTcsIDB4OTIsIDB4MzksIDB4QjcsIDB4MTMsIDB4MzcsIDB4NkYpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg1RSwgMHg0MywgMHg3MSwgMHhBNywgMHhDQSwgMHgxNywgMHgxQiwgMHgzMiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEU3LCAweEI5LCAweEIwLCAweDc4LCAweEVGLCAweEEwLCAweERBLCAweDgzKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4OUEsIDB4ODQsIDB4RjIsIDB4MEYsIDB4ODUsIDB4QTIsIDB4QjYsIDB4MUYpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg3MiwgMHg2NSwgMHgyRSwgMHg2RSwgMHg0NSwgMHhCOSwgMHg0QywgMHgzQyksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEZFLCAweDZBLCAweDhDLCAweDJCLCAweDc3LCAweDk2LCAweDM2LCAweDIyKSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBicmFpbnBvb2xQMzg0cjFfVF8zMV9YW10gPSB7CisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDY4LCAweDdBLCAweDEzLCAweDRBLCAweDk3LCAweDYzLCAweDAyLCAweDEwKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QkMsIDB4MUUsIDB4MDYsIDB4MDMsIDB4OEYsIDB4QjksIDB4RUUsIDB4NjQpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg2OCwgMHhFRSwgMHg4QiwgMHg4OSwgMHhBOSwgMHg3MCwgMHhEQiwgMHhDRSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDE1LCAweDdCLCAweDgxLCAweEM5LCAweDcwLCAweDhELCAweDYyLCAweDMyKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NzUsIDB4REEsIDB4NDYsIDB4RjgsIDB4RjksIDB4M0EsIDB4QkUsIDB4NTUpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg5RiwgMHg5QywgMHg3QSwgMHg5NywgMHg2MiwgMHhFQiwgMHhGQSwgMHgwRiksCit9Oworc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgYnJhaW5wb29sUDM4NHIxX1RfMzFfWVtdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhCMiwgMHgwMywgMHgzRCwgMHgzQywgMHg0NiwgMHgyNywgMHg5RSwgMHg2NSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEE0LCAweDA4LCAweDFDLCAweEQ1LCAweDI1LCAweEFGLCAweEU5LCAweDQwKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RkUsIDB4NjksIDB4REMsIDB4NTksIDB4RjQsIDB4OEEsIDB4N0MsIDB4MUYpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhGQywgMHg5QSwgMHg3QSwgMHg5OSwgMHgyMSwgMHgwQywgMHg0RSwgMHhFMyksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEY1LCAweENFLCAweDg1LCAweDVGLCAweEFDLCAweEFBLCAweDgyLCAweDEwKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4ODMsIDB4NTcsIDB4NjksIDB4OTAsIDB4NzYsIDB4RjMsIDB4NTMsIDB4M0YpLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX2VjcF9wb2ludCBicmFpbnBvb2xQMzg0cjFfVFszMl0gPSB7CisgICAgRUNQX1BPSU5UX0lOSVRfWFlfWjEoYnJhaW5wb29sUDM4NHIxX1RfMF9YLCBicmFpbnBvb2xQMzg0cjFfVF8wX1kpLAorICAgIEVDUF9QT0lOVF9JTklUX1hZX1owKGJyYWlucG9vbFAzODRyMV9UXzFfWCwgYnJhaW5wb29sUDM4NHIxX1RfMV9ZKSwKKyAgICBFQ1BfUE9JTlRfSU5JVF9YWV9aMChicmFpbnBvb2xQMzg0cjFfVF8yX1gsIGJyYWlucG9vbFAzODRyMV9UXzJfWSksCisgICAgRUNQX1BPSU5UX0lOSVRfWFlfWjAoYnJhaW5wb29sUDM4NHIxX1RfM19YLCBicmFpbnBvb2xQMzg0cjFfVF8zX1kpLAorICAgIEVDUF9QT0lOVF9JTklUX1hZX1owKGJyYWlucG9vbFAzODRyMV9UXzRfWCwgYnJhaW5wb29sUDM4NHIxX1RfNF9ZKSwKKyAgICBFQ1BfUE9JTlRfSU5JVF9YWV9aMChicmFpbnBvb2xQMzg0cjFfVF81X1gsIGJyYWlucG9vbFAzODRyMV9UXzVfWSksCisgICAgRUNQX1BPSU5UX0lOSVRfWFlfWjAoYnJhaW5wb29sUDM4NHIxX1RfNl9YLCBicmFpbnBvb2xQMzg0cjFfVF82X1kpLAorICAgIEVDUF9QT0lOVF9JTklUX1hZX1owKGJyYWlucG9vbFAzODRyMV9UXzdfWCwgYnJhaW5wb29sUDM4NHIxX1RfN19ZKSwKKyAgICBFQ1BfUE9JTlRfSU5JVF9YWV9aMChicmFpbnBvb2xQMzg0cjFfVF84X1gsIGJyYWlucG9vbFAzODRyMV9UXzhfWSksCisgICAgRUNQX1BPSU5UX0lOSVRfWFlfWjAoYnJhaW5wb29sUDM4NHIxX1RfOV9YLCBicmFpbnBvb2xQMzg0cjFfVF85X1kpLAorICAgIEVDUF9QT0lOVF9JTklUX1hZX1owKGJyYWlucG9vbFAzODRyMV9UXzEwX1gsIGJyYWlucG9vbFAzODRyMV9UXzEwX1kpLAorICAgIEVDUF9QT0lOVF9JTklUX1hZX1owKGJyYWlucG9vbFAzODRyMV9UXzExX1gsIGJyYWlucG9vbFAzODRyMV9UXzExX1kpLAorICAgIEVDUF9QT0lOVF9JTklUX1hZX1owKGJyYWlucG9vbFAzODRyMV9UXzEyX1gsIGJyYWlucG9vbFAzODRyMV9UXzEyX1kpLAorICAgIEVDUF9QT0lOVF9JTklUX1hZX1owKGJyYWlucG9vbFAzODRyMV9UXzEzX1gsIGJyYWlucG9vbFAzODRyMV9UXzEzX1kpLAorICAgIEVDUF9QT0lOVF9JTklUX1hZX1owKGJyYWlucG9vbFAzODRyMV9UXzE0X1gsIGJyYWlucG9vbFAzODRyMV9UXzE0X1kpLAorICAgIEVDUF9QT0lOVF9JTklUX1hZX1owKGJyYWlucG9vbFAzODRyMV9UXzE1X1gsIGJyYWlucG9vbFAzODRyMV9UXzE1X1kpLAorICAgIEVDUF9QT0lOVF9JTklUX1hZX1owKGJyYWlucG9vbFAzODRyMV9UXzE2X1gsIGJyYWlucG9vbFAzODRyMV9UXzE2X1kpLAorICAgIEVDUF9QT0lOVF9JTklUX1hZX1owKGJyYWlucG9vbFAzODRyMV9UXzE3X1gsIGJyYWlucG9vbFAzODRyMV9UXzE3X1kpLAorICAgIEVDUF9QT0lOVF9JTklUX1hZX1owKGJyYWlucG9vbFAzODRyMV9UXzE4X1gsIGJyYWlucG9vbFAzODRyMV9UXzE4X1kpLAorICAgIEVDUF9QT0lOVF9JTklUX1hZX1owKGJyYWlucG9vbFAzODRyMV9UXzE5X1gsIGJyYWlucG9vbFAzODRyMV9UXzE5X1kpLAorICAgIEVDUF9QT0lOVF9JTklUX1hZX1owKGJyYWlucG9vbFAzODRyMV9UXzIwX1gsIGJyYWlucG9vbFAzODRyMV9UXzIwX1kpLAorICAgIEVDUF9QT0lOVF9JTklUX1hZX1owKGJyYWlucG9vbFAzODRyMV9UXzIxX1gsIGJyYWlucG9vbFAzODRyMV9UXzIxX1kpLAorICAgIEVDUF9QT0lOVF9JTklUX1hZX1owKGJyYWlucG9vbFAzODRyMV9UXzIyX1gsIGJyYWlucG9vbFAzODRyMV9UXzIyX1kpLAorICAgIEVDUF9QT0lOVF9JTklUX1hZX1owKGJyYWlucG9vbFAzODRyMV9UXzIzX1gsIGJyYWlucG9vbFAzODRyMV9UXzIzX1kpLAorICAgIEVDUF9QT0lOVF9JTklUX1hZX1owKGJyYWlucG9vbFAzODRyMV9UXzI0X1gsIGJyYWlucG9vbFAzODRyMV9UXzI0X1kpLAorICAgIEVDUF9QT0lOVF9JTklUX1hZX1owKGJyYWlucG9vbFAzODRyMV9UXzI1X1gsIGJyYWlucG9vbFAzODRyMV9UXzI1X1kpLAorICAgIEVDUF9QT0lOVF9JTklUX1hZX1owKGJyYWlucG9vbFAzODRyMV9UXzI2X1gsIGJyYWlucG9vbFAzODRyMV9UXzI2X1kpLAorICAgIEVDUF9QT0lOVF9JTklUX1hZX1owKGJyYWlucG9vbFAzODRyMV9UXzI3X1gsIGJyYWlucG9vbFAzODRyMV9UXzI3X1kpLAorICAgIEVDUF9QT0lOVF9JTklUX1hZX1owKGJyYWlucG9vbFAzODRyMV9UXzI4X1gsIGJyYWlucG9vbFAzODRyMV9UXzI4X1kpLAorICAgIEVDUF9QT0lOVF9JTklUX1hZX1owKGJyYWlucG9vbFAzODRyMV9UXzI5X1gsIGJyYWlucG9vbFAzODRyMV9UXzI5X1kpLAorICAgIEVDUF9QT0lOVF9JTklUX1hZX1owKGJyYWlucG9vbFAzODRyMV9UXzMwX1gsIGJyYWlucG9vbFAzODRyMV9UXzMwX1kpLAorICAgIEVDUF9QT0lOVF9JTklUX1hZX1owKGJyYWlucG9vbFAzODRyMV9UXzMxX1gsIGJyYWlucG9vbFAzODRyMV9UXzMxX1kpLAorfTsKKyNlbHNlCisjZGVmaW5lIGJyYWlucG9vbFAzODRyMV9UIE5VTEwKKyNlbmRpZgorCisjZW5kaWYgLyogTUJFRFRMU19FQ1BfRFBfQlAzODRSMV9FTkFCTEVEICovCisKKy8qCisgKiBEb21haW4gcGFyYW1ldGVycyBmb3IgYnJhaW5wb29sUDUxMnIxIChSRkMgNTYzOSAzLjcpCisgKi8KKyNpZiBkZWZpbmVkKE1CRURUTFNfRUNQX0RQX0JQNTEyUjFfRU5BQkxFRCkKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IGJyYWlucG9vbFA1MTJyMV9wW10gPSB7CisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEYzLCAweDQ4LCAweDNBLCAweDU4LCAweDU2LCAweDYwLCAweEFBLCAweDI4KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4ODUsIDB4QzYsIDB4ODIsIDB4MkQsIDB4MkYsIDB4RkYsIDB4ODEsIDB4MjgpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhFNiwgMHg4MCwgMHhBMywgMHhFNiwgMHgyQSwgMHhBMSwgMHhDRCwgMHhBRSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDQyLCAweDY4LCAweEM2LCAweDlCLCAweDAwLCAweDlCLCAweDRELCAweDdEKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NzEsIDB4MDgsIDB4MzMsIDB4NzAsIDB4Q0EsIDB4OUMsIDB4NjMsIDB4RDYpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgwRSwgMHhEMiwgMHhDOSwgMHhCMywgMHhCMywgMHg4RCwgMHgzMCwgMHhDQiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDA3LCAweEZDLCAweEM5LCAweDMzLCAweEFFLCAweEU2LCAweEQ0LCAweDNGKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4OEIsIDB4QzQsIDB4RTksIDB4REIsIDB4QjgsIDB4OUQsIDB4REQsIDB4QUEpLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IGJyYWlucG9vbFA1MTJyMV9hW10gPSB7CisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweENBLCAweDk0LCAweEZDLCAweDc3LCAweDRELCAweEFDLCAweEMxLCAweEU3KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QjksIDB4QzcsIDB4RjIsIDB4MkIsIDB4QTcsIDB4MTcsIDB4MTEsIDB4N0YpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhCNSwgMHhDOCwgMHg5QSwgMHg4QiwgMHhDOSwgMHhGMSwgMHgyRSwgMHgwQSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEExLCAweDNBLCAweDI1LCAweEE4LCAweDVBLCAweDVELCAweEVELCAweDJEKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QkMsIDB4NjMsIDB4OTgsIDB4RUEsIDB4Q0EsIDB4NDEsIDB4MzQsIDB4QTgpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgxMCwgMHgxNiwgMHhGOSwgMHgzRCwgMHg4RCwgMHhERCwgMHhDQiwgMHg5NCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEM1LCAweDRDLCAweDIzLCAweEFDLCAweDQ1LCAweDcxLCAweDMyLCAweEUyKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4ODksIDB4M0IsIDB4NjAsIDB4OEIsIDB4MzEsIDB4QTMsIDB4MzAsIDB4NzgpLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IGJyYWlucG9vbFA1MTJyMV9iW10gPSB7CisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDIzLCAweEY3LCAweDE2LCAweDgwLCAweDYzLCAweEJELCAweDA5LCAweDI4KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4REQsIDB4RTUsIDB4QkEsIDB4NUUsIDB4QjcsIDB4NTAsIDB4NDAsIDB4OTgpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg2NywgMHgzRSwgMHgwOCwgMHhEQywgMHhDQSwgMHg5NCwgMHhGQywgMHg3NyksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDRELCAweEFDLCAweEMxLCAweEU3LCAweEI5LCAweEM3LCAweEYyLCAweDJCKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QTcsIDB4MTcsIDB4MTEsIDB4N0YsIDB4QjUsIDB4QzgsIDB4OUEsIDB4OEIpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhDOSwgMHhGMSwgMHgyRSwgMHgwQSwgMHhBMSwgMHgzQSwgMHgyNSwgMHhBOCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDVBLCAweDVELCAweEVELCAweDJELCAweEJDLCAweDYzLCAweDk4LCAweEVBKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4Q0EsIDB4NDEsIDB4MzQsIDB4QTgsIDB4MTAsIDB4MTYsIDB4RjksIDB4M0QpLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IGJyYWlucG9vbFA1MTJyMV9neFtdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgyMiwgMHhGOCwgMHhCOSwgMHhCQywgMHgwOSwgMHgyMiwgMHgzNSwgMHg4QiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDY4LCAweDVFLCAweDZBLCAweDQwLCAweDQ3LCAweDUwLCAweDZELCAweDdDKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NUYsIDB4N0QsIDB4QjksIDB4OTMsIDB4N0IsIDB4NjgsIDB4RDEsIDB4NTApLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg4RCwgMHhENCwgMHhEMCwgMHhFMiwgMHg3OCwgMHgxRiwgMHgzQiwgMHhGRiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDhFLCAweDA5LCAweEQwLCAweEY0LCAweEVFLCAweDYyLCAweDNCLCAweEI0KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QzEsIDB4MTYsIDB4RDksIDB4QjUsIDB4NzAsIDB4OUYsIDB4RUQsIDB4ODUpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg5MywgMHg2QSwgMHg0QywgMHg5QywgMHgyRSwgMHgzMiwgMHgyMSwgMHg1QSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDY0LCAweEQ5LCAweDJFLCAweEQ4LCAweEJELCAweEU0LCAweEFFLCAweDgxKSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBicmFpbnBvb2xQNTEycjFfZ3lbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4OTIsIDB4MDgsIDB4RDgsIDB4M0EsIDB4MEYsIDB4MUUsIDB4Q0QsIDB4NzgpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgwNiwgMHg1NCwgMHhGMCwgMHhBOCwgMHgyRiwgMHgyQiwgMHhDQSwgMHhEMSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEFFLCAweDYzLCAweDI3LCAweDhBLCAweEQ4LCAweDRCLCAweENBLCAweDVCKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NUUsIDB4NDgsIDB4NUYsIDB4NEEsIDB4NDksIDB4REUsIDB4REMsIDB4QjIpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgxMSwgMHg4MSwgMHgxRiwgMHg4OCwgMHg1QiwgMHhDNSwgMHgwMCwgMHhBMCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDFBLCAweDdCLCAweEE1LCAweDI0LCAweDAwLCAweEY3LCAweDA5LCAweEYyKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RkQsIDB4MjIsIDB4NzgsIDB4Q0YsIDB4QTksIDB4QkYsIDB4RUEsIDB4QzApLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhFQywgMHgzMiwgMHg2MywgMHg1NiwgMHg1RCwgMHgzOCwgMHhERSwgMHg3RCksCit9Oworc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgYnJhaW5wb29sUDUxMnIxX25bXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NjksIDB4MDAsIDB4QTksIDB4OUMsIDB4ODIsIDB4OTYsIDB4ODcsIDB4QjUpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhERCwgMHhEQSwgMHg1RCwgMHgwOCwgMHg4MSwgMHhEMywgMHhCMSwgMHgxRCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDQ3LCAweDEwLCAweEFDLCAweDdGLCAweDE5LCAweDYxLCAweDg2LCAweDQxKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MTksIDB4MjYsIDB4QTksIDB4NEMsIDB4NDEsIDB4NUMsIDB4M0UsIDB4NTUpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg3MCwgMHgwOCwgMHgzMywgMHg3MCwgMHhDQSwgMHg5QywgMHg2MywgMHhENiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDBFLCAweEQyLCAweEM5LCAweEIzLCAweEIzLCAweDhELCAweDMwLCAweENCKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MDcsIDB4RkMsIDB4QzksIDB4MzMsIDB4QUUsIDB4RTYsIDB4RDQsIDB4M0YpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg4QiwgMHhDNCwgMHhFOSwgMHhEQiwgMHhCOCwgMHg5RCwgMHhERCwgMHhBQSksCit9OworCisjaWYgTUJFRFRMU19FQ1BfRklYRURfUE9JTlRfT1BUSU0gPT0gMQorc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgYnJhaW5wb29sUDUxMnIxX1RfMF9YW10gPSB7CisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDIyLCAweEY4LCAweEI5LCAweEJDLCAweDA5LCAweDIyLCAweDM1LCAweDhCKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NjgsIDB4NUUsIDB4NkEsIDB4NDAsIDB4NDcsIDB4NTAsIDB4NkQsIDB4N0MpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg1RiwgMHg3RCwgMHhCOSwgMHg5MywgMHg3QiwgMHg2OCwgMHhEMSwgMHg1MCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDhELCAweEQ0LCAweEQwLCAweEUyLCAweDc4LCAweDFGLCAweDNCLCAweEZGKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4OEUsIDB4MDksIDB4RDAsIDB4RjQsIDB4RUUsIDB4NjIsIDB4M0IsIDB4QjQpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhDMSwgMHgxNiwgMHhEOSwgMHhCNSwgMHg3MCwgMHg5RiwgMHhFRCwgMHg4NSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDkzLCAweDZBLCAweDRDLCAweDlDLCAweDJFLCAweDMyLCAweDIxLCAweDVBKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NjQsIDB4RDksIDB4MkUsIDB4RDgsIDB4QkQsIDB4RTQsIDB4QUUsIDB4ODEpLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IGJyYWlucG9vbFA1MTJyMV9UXzBfWVtdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg5MiwgMHgwOCwgMHhEOCwgMHgzQSwgMHgwRiwgMHgxRSwgMHhDRCwgMHg3OCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDA2LCAweDU0LCAweEYwLCAweEE4LCAweDJGLCAweDJCLCAweENBLCAweEQxKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QUUsIDB4NjMsIDB4MjcsIDB4OEEsIDB4RDgsIDB4NEIsIDB4Q0EsIDB4NUIpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg1RSwgMHg0OCwgMHg1RiwgMHg0QSwgMHg0OSwgMHhERSwgMHhEQywgMHhCMiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDExLCAweDgxLCAweDFGLCAweDg4LCAweDVCLCAweEM1LCAweDAwLCAweEEwKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MUEsIDB4N0IsIDB4QTUsIDB4MjQsIDB4MDAsIDB4RjcsIDB4MDksIDB4RjIpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhGRCwgMHgyMiwgMHg3OCwgMHhDRiwgMHhBOSwgMHhCRiwgMHhFQSwgMHhDMCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEVDLCAweDMyLCAweDYzLCAweDU2LCAweDVELCAweDM4LCAweERFLCAweDdEKSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBicmFpbnBvb2xQNTEycjFfVF8xX1hbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RUEsIDB4RTksIDB4NkIsIDB4OEMsIDB4NkYsIDB4OUQsIDB4ODgsIDB4NDMpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhCQiwgMHg0RiwgMHg4NiwgMHg5NiwgMHhBNywgMHg1NiwgMHhEMSwgMHgzNyksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDlELCAweEFCLCAweEZBLCAweEVFLCAweEE3LCAweEY1LCAweDBFLCAweEE2KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RTMsIDB4NDAsIDB4RUYsIDB4OUUsIDB4NkQsIDB4RDYsIDB4MzIsIDB4MzMpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhFMywgMHhFRCwgMHg1NiwgMHgxNCwgMHg1NywgMHgxQSwgMHg4RCwgMHg2OSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEE0LCAweEVELCAweDRELCAweDNBLCAweEZBLCAweDcxLCAweDc1LCAweDZCKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NjYsIDB4QzUsIDB4NzYsIDB4MUMsIDB4MTQsIDB4QkUsIDB4QjUsIDB4Q0QpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhFMSwgMHg1QSwgMHhDQiwgMHhFNywgMHgzNiwgMHgxRCwgMHg1MiwgMHgxQyksCit9Oworc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgYnJhaW5wb29sUDUxMnIxX1RfMV9ZW10gPSB7CisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDZCLCAweDhELCAweDdBLCAweEVCLCAweEEzLCAweDhCLCAweEQ1LCAweEIwKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MUYsIDB4QTMsIDB4NDEsIDB4RjgsIDB4QUMsIDB4OUUsIDB4QUIsIDB4NzQpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgxMiwgMHhFMywgMHg2NSwgMHgwRCwgMHgxQywgMHhGRSwgMHgwOSwgMHgyQiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDNGLCAweENBLCAweDEzLCAweDNGLCAweEM1LCAweEY5LCAweDdFLCAweEVDKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MkMsIDB4NUQsIDB4NjMsIDB4MjgsIDB4QTYsIDB4ODksIDB4RDMsIDB4OTEpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhDOSwgMHg5NSwgMHgzRiwgMHg3QSwgMHg4MiwgMHhENCwgMHg3NywgMHhFMyksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDM0LCAweEJCLCAweDkyLCAweDMyLCAweDAwLCAweEY0LCAweDY2LCAweDQyKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QkEsIDB4NTgsIDB4MzEsIDB4RDEsIDB4MTcsIDB4OUYsIDB4MkEsIDB4MjIpLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IGJyYWlucG9vbFA1MTJyMV9UXzJfWFtdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg1MiwgMHgzNiwgMHhBOSwgMHhDRCwgMHg4MCwgMHhBNSwgMHgyRCwgMHg3OCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDkxLCAweDQ0LCAweEFCLCAweENFLCAweDcxLCAweEZGLCAweDBDLCAweDlCKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MTgsIDB4MjQsIDB4NTgsIDB4MzUsIDB4NUEsIDB4MjEsIDB4MzIsIDB4OTMpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgxQiwgMHhBNiwgMHgyOCwgMHhGOCwgMHg3QSwgMHg5NywgMHhBRSwgMHg4QiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDg0LCAweEU3LCAweDA4LCAweEZBLCAweDQ3LCAweEM5LCAweDU1LCAweDA5KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4OEQsIDB4QUMsIDB4MkUsIDB4ODQsIDB4QTQsIDB4RjUsIDB4NTIsIDB4QzQpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhEOSwgMHg1OCwgMHgwNSwgMHg5RCwgMHhBNywgMHhDOCwgMHg3MSwgMHhCRiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEIzLCAweDkyLCAweEI0LCAweDkyLCAweEMxLCAweDkyLCAweEVDLCAweDZCKSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBicmFpbnBvb2xQNTEycjFfVF8yX1lbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NEEsIDB4NDgsIDB4MkQsIDB4NzksIDB4NUUsIDB4NTgsIDB4RTUsIDB4NjkpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhCNCwgMHg4NSwgMHgyNiwgMHhFQywgMHhFOSwgMHg2RSwgMHhENCwgMHgwNiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDk4LCAweDY4LCAweDI2LCAweDg3LCAweDM4LCAweEEyLCAweEQyLCAweDBCKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RjcsIDB4MTcsIDB4NjAsIDB4Q0UsIDB4NzUsIDB4RjgsIDB4QTUsIDB4NkYpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgyMCwgMHg1MSwgMHhEQiwgMHhBOSwgMHhBRSwgMHg4NywgMHhGMSwgMHgxNSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweERELCAweDQ5LCAweDkyLCAweDNCLCAweDE5LCAweDk2LCAweEY1LCAweEIwKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QzQsIDB4RDUsIDB4NTIsIDB4NTIsIDB4OEMsIDB4Q0UsIDB4RkQsIDB4RkEpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgyNCwgMHgxOCwgMHgwQSwgMHhFNiwgMHhGNiwgMHhBRSwgMHgwOCwgMHg0MSksCit9Oworc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgYnJhaW5wb29sUDUxMnIxX1RfM19YW10gPSB7CisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDdFLCAweDJCLCAweEQ4LCAweDU0LCAweENFLCAweEIwLCAweDU3LCAweEZFKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4OEEsIDB4QjAsIDB4RjgsIDB4OUUsIDB4MDMsIDB4MDMsIDB4M0MsIDB4NUQpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg5MywgMHgwRSwgMHgyOSwgMHgyOSwgMHgwMCwgMHhGMywgMHg3MCwgMHhCRiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDU0LCAweDMzLCAweDk5LCAweDBFLCAweDAwLCAweDVELCAweEZFLCAweDRCKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NDYsIDB4MkQsIDB4RjIsIDB4NTksIDB4MzIsIDB4Q0YsIDB4MDMsIDB4RjQpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgzQiwgMHhDOSwgMHg3MiwgMHhBRSwgMHgwQywgMHhFRiwgMHhEMSwgMHg1QiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEI2LCAweDVBLCAweDI3LCAweEJGLCAweDJGLCAweDQ1LCAweEY5LCAweDUxKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RDQsIDB4QkUsIDB4RTUsIDB4MkMsIDB4RkYsIDB4NUIsIDB4MUUsIDB4ODgpLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IGJyYWlucG9vbFA1MTJyMV9UXzNfWVtdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhBQSwgMHhBQywgMHhCQiwgMHhEOCwgMHg4MywgMHhDMiwgMHg0NiwgMHhGNiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweENGLCAweERDLCAweENFLCAweDE1LCAweEI0LCAweEVGLCAweENGLCAweDQ2KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NDYsIDB4REIsIDB4NUUsIDB4OTQsIDB4MzEsIDB4MEIsIDB4QjIsIDB4N0EpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgzQywgMHhCOSwgMHhFMywgMHhFMywgMHgxMSwgMHg3MSwgMHg0MSwgMHgxRSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDM2LCAweEUzLCAweDAxLCAweEI3LCAweDdELCAweEJDLCAweDY1LCAweEJFKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RkMsIDB4MDcsIDB4NjUsIDB4ODcsIDB4QTcsIDB4RTgsIDB4NDgsIDB4RTMpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg2NiwgMHg0OCwgMHg4RiwgMHhENCwgMHgzMCwgMHg4RSwgMHhCNCwgMHg2QyksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDg2LCAweEUwLCAweDczLCAweEJFLCAweDFFLCAweEJGLCAweDU2LCAweDM2KSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBicmFpbnBvb2xQNTEycjFfVF80X1hbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RkUsIDB4MEUsIDB4NUUsIDB4ODcsIDB4QzUsIDB4QUIsIDB4MEUsIDB4M0MpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhCOSwgMHhGOSwgMHg1RiwgMHg4MCwgMHgyNCwgMHg0QywgMHgyQSwgMHhGMSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweERFLCAweDE1LCAweDIxLCAweDU0LCAweDkyLCAweDg0LCAweDhELCAweDZBKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QTgsIDB4OEEsIDB4NDcsIDB4NzQsIDB4REMsIDB4NDIsIDB4QjEsIDB4RjgpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg4MSwgMHhGNywgMHgzMCwgMHhGRCwgMHhDMSwgMHg5QiwgMHgwQywgMHg1QiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDRFLCAweDZDLCAweENDLCAweERGLCAweEM1LCAweEUzLCAweEE5LCAweEQ1KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RDYsIDB4NjcsIDB4NTksIDB4MTAsIDB4NUMsIDB4NTEsIDB4NTQsIDB4NDApLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhBMCwgMHgzNywgMHhGQiwgMHg2RSwgMHhCMCwgMHg3OCwgMHg2MywgMHg4RSksCit9Oworc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgYnJhaW5wb29sUDUxMnIxX1RfNF9ZW10gPSB7CisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEE1LCAweEVGLCAweEM0LCAweDM5LCAweDIwLCAweEYxLCAweDQ2LCAweDY2KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RTIsIDB4NjIsIDB4QUUsIDB4RkYsIDB4MTAsIDB4RTQsIDB4RTIsIDB4RTkpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhGRiwgMHg1QywgMHhGNSwgMHgyRSwgMHgyMiwgMHg4OSwgMHhFNSwgMHg4MiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDg5LCAweDBDLCAweDI5LCAweEE4LCAweDYyLCAweEFFLCAweERCLCAweDY1KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RDcsIDB4OUUsIDB4MEYsIDB4Q0EsIDB4ODcsIDB4MkEsIDB4NkYsIDB4N0IpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhDRSwgMHhEQywgMHg5QiwgMHg5RiwgMHg2NSwgMHhENCwgMHhBRCwgMHgyNyksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEVELCAweEMzLCAweDA4LCAweDBGLCAweENGLCAweDY3LCAweEU5LCAweEY0KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4OTIsIDB4NUMsIDB4RDcsIDB4RkYsIDB4NDEsIDB4OUMsIDB4Q0IsIDB4MjYpLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IGJyYWlucG9vbFA1MTJyMV9UXzVfWFtdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgzNywgMHgyNSwgMHgwNSwgMHgxMiwgMHhBRCwgMHg3MywgMHg2MywgMHg5MCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEM3LCAweDk5LCAweDA3LCAweDg2LCAweDU3LCAweEU3LCAweDk0LCAweEIxKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MDAsIDB4NEIsIDB4QTUsIDB4QkYsIDB4MTgsIDB4QTksIDB4RUYsIDB4NkEpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhGQSwgMHg0QywgMHhDNCwgMHgwOSwgMHhGMiwgMHgyRiwgMHgwQywgMHhBQSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDhDLCAweDNBLCAweDA0LCAweEVBLCAweDg5LCAweDZDLCAweDkxLCAweEI5KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4N0QsIDB4NkMsIDB4M0EsIDB4RTcsIDB4QTMsIDB4RUMsIDB4MjQsIDB4N0IpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgxNiwgMHhBMSwgMHgyNiwgMHgyMSwgMHgwNCwgMHhFMywgMHhCOSwgMHg0MCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDUzLCAweDcxLCAweDRCLCAweDdCLCAweEMyLCAweDg5LCAweENELCAweEEyKSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBicmFpbnBvb2xQNTEycjFfVF81X1lbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QjcsIDB4QjksIDB4QTgsIDB4OUQsIDB4RkQsIDB4MDAsIDB4M0EsIDB4MUYpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg2MywgMHg0MSwgMHg2QywgMHhCQiwgMHg1QSwgMHhDQSwgMHgxRiwgMHg3NCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDJBLCAweEQ3LCAweEUyLCAweDZDLCAweDZCLCAweEE3LCAweDQ4LCAweEM5KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MUUsIDB4MTksIDB4QUQsIDB4QTcsIDB4QzEsIDB4N0UsIDB4NEYsIDB4NkUpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhEMSwgMHhGNywgMHgxOSwgMHgzQywgMHgwNiwgMHg3NCwgMHgyQywgMHgzQSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEM1LCAweDIzLCAweDRGLCAweDBDLCAweDA5LCAweEIwLCAweDgwLCAweDRBKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NEUsIDB4NzQsIDB4MzQsIDB4MDgsIDB4NDQsIDB4N0UsIDB4QTMsIDB4REQpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhGQiwgMHhDQywgMHg4RCwgMHgxMiwgMHg2RSwgMHhFMSwgMHgzRCwgMHgwQiksCit9Oworc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgYnJhaW5wb29sUDUxMnIxX1RfNl9YW10gPSB7CisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDM4LCAweDE4LCAweEIxLCAweDcxLCAweDAyLCAweDkzLCAweEMyLCAweEE0KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QzksIDB4ODksIDB4NDAsIDB4RTIsIDB4MUYsIDB4RTcsIDB4NUUsIDB4NjgpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg1MCwgMHg4RSwgMHhBRSwgMHg4OSwgMHgwMSwgMHhENCwgMHgwQywgMHhFQiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEFFLCAweERBLCAweDU4LCAweDcwLCAweDI0LCAweEYyLCAweEU0LCAweDVGKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NkYsIDB4QzcsIDB4MUQsIDB4RDYsIDB4NEEsIDB4NkYsIDB4NjYsIDB4NEYpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg5MiwgMHgxRCwgMHg3RSwgMHg0QSwgMHgyQywgMHhDQSwgMHhFQywgMHgzQiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEExLCAweDA2LCAweDdGLCAweEE4LCAweDk5LCAweEU0LCAweEQzLCAweDRFKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MkEsIDB4MUQsIDB4NUEsIDB4REYsIDB4NUUsIDB4NTgsIDB4MzYsIDB4NDkpLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IGJyYWlucG9vbFA1MTJyMV9UXzZfWVtdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg5QywgMHhCOSwgMHgzMiwgMHg2OSwgMHgxRiwgMHg3MiwgMHgyQSwgMHhCMyksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDFDLCAweDczLCAweEUyLCAweDAzLCAweDM5LCAweDM1LCAweEFBLCAweEE4KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RUIsIDB4NUUsIDB4NUQsIDB4NDgsIDB4RUYsIDB4QUUsIDB4MzAsIDB4RjUpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg3NywgMHg3RiwgMHg2MCwgMHgxOSwgMHhBRiwgMHhFQywgMHg5RCwgMHhGQyksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweENBLCAweEQ5LCAweDE5LCAweEU0LCAweDFCLCAweDU2LCAweDE1LCAweDVGKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QkMsIDB4RDcsIDB4MzMsIDB4NTksIDB4MUYsIDB4NDMsIDB4NTksIDB4MkMpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhDNiwgMHhDRSwgMHhFRSwgMHhDQSwgMHhBNCwgMHg3RiwgMHg2MywgMHhENCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEJELCAweDQwLCAweEMwLCAweEY2LCAweDE5LCAweDg5LCAweDQzLCAweDIwKSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBicmFpbnBvb2xQNTEycjFfVF83X1hbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RUIsIDB4OTIsIDB4RUEsIDB4MDcsIDB4NjUsIDB4NzksIDB4ODYsIDB4RDMpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhGRiwgMHhCNywgMHgxMywgMHg3NSwgMHhEMywgMHhDNSwgMHgwQSwgMHhDOSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDI2LCAweDlFLCAweEZBLCAweEUxLCAweDFGLCAweDBDLCAweEY5LCAweDc0KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QjQsIDB4OEMsIDB4RUQsIDB4NUMsIDB4MjEsIDB4RTksIDB4MDksIDB4REQpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhGNCwgMHg0RCwgMHhEOCwgMHgxOCwgMHhDNCwgMHhGNiwgMHgzNiwgMHgzOSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEM3LCAweEM5LCAweEFDLCAweDVDLCAweEZBLCAweDY5LCAweEE0LCAweEEwKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NkIsIDB4OEMsIDB4OTQsIDB4MUMsIDB4N0IsIDB4NzEsIDB4MzYsIDB4NTgpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg3QywgMHhCRCwgMHg0NiwgMHhDRSwgMHhCNywgMHgxRCwgMHg5QywgMHg1RSksCit9Oworc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgYnJhaW5wb29sUDUxMnIxX1RfN19ZW10gPSB7CisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEVBLCAweEQ2LCAweDk2LCAweDRCLCAweEE2LCAweDQ3LCAweEVCLCAweEU1KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NUYsIDB4RjEsIDB4NUYsIDB4MTUsIDB4REUsIDB4OTksIDB4NkYsIDB4NjYpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgyMSwgMHhCRCwgMHhFNSwgMHgwNCwgMHhCOCwgMHhFNiwgMHhDMCwgMHgwQiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDQ5LCAweEQzLCAweEYwLCAweDA0LCAweDAwLCAweEU0LCAweDA1LCAweERCKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4OTYsIDB4RjMsIDB4MDYsIDB4QTMsIDB4MUEsIDB4RkYsIDB4RUEsIDB4NzMpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgwOCwgMHgzMiwgMHhBQSwgMHg5OSwgMHgzMywgMHgwOSwgMHhCNiwgMHgzNCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDZFLCAweEVGLCAweEZDLCAweDYxLCAweDEwLCAweDQyLCAweDMxLCAweDk0KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MzQsIDB4RjEsIDB4RjQsIDB4MzMsIDB4Q0YsIDB4MjgsIDB4OTAsIDB4OUMpLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IGJyYWlucG9vbFA1MTJyMV9UXzhfWFtdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgxMCwgMHhERSwgMHhGOSwgMHg4OCwgMHg4NywgMHg3QiwgMHhFQiwgMHhDOSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDY2LCAweEI4LCAweERBLCAweEZBLCAweERBLCAweDNELCAweEE2LCAweDE3KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QTAsIDB4RjAsIDB4NjIsIDB4ODIsIDB4NTMsIDB4MzIsIDB4NTUsIDB4MDMpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgyRiwgMHhBNSwgMHgzMiwgMHg0QSwgMHgxOSwgMHgxMSwgMHg5QywgMHgxMCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDE2LCAweEIzLCAweDI3LCAweEU5LCAweDc1LCAweDkwLCAweDA1LCAweDJEKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NjMsIDB4MUMsIDB4OTAsIDB4NDgsIDB4NzcsIDB4MDEsIDB4ODUsIDB4MUIpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhDNywgMHhENiwgMHg5QiwgMHg4NCwgMHhBOCwgMHhENywgMHhDNSwgMHgyOCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEUxLCAweDdBLCAweENCLCAweEIzLCAweDExLCAweDQ2LCAweEQ3LCAweDk5KSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBicmFpbnBvb2xQNTEycjFfVF84X1lbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4OEIsIDB4MjMsIDB4QkYsIDB4NzUsIDB4NzUsIDB4QTEsIDB4OTUsIDB4OTApLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg0QiwgMHg2NiwgMHg1RCwgMHgzNCwgMHgxMywgMHhBOSwgMHgwMywgMHhCRSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDI5LCAweDgwLCAweDlELCAweDVGLCAweEQyLCAweDQ0LCAweEUxLCAweDYyKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4OTYsIDB4NUQsIDB4QkQsIDB4QTgsIDB4QkYsIDB4QjQsIDB4MjUsIDB4MUYpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg2QSwgMHg5OSwgMHgxRiwgMHg1MywgMHhGMSwgMHg1NywgMHhEQiwgMHhFNyksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDIxLCAweDdDLCAweEU1LCAweEM1LCAweDUxLCAweDBCLCAweDRDLCAweDlCKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NkIsIDB4QjAsIDB4MUEsIDB4OUMsIDB4MTYsIDB4QjAsIDB4MzIsIDB4MUYpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhGNCwgMHhFMywgMHhDRiwgMHhERCwgMHg0OCwgMHhCNCwgMHg3QiwgMHgzMyksCit9Oworc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgYnJhaW5wb29sUDUxMnIxX1RfOV9YW10gPSB7CisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEMwLCAweERELCAweDlFLCAweDNDLCAweDk4LCAweDBFLCAweDc3LCAweDY1KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NkMsIDB4QUIsIDB4MDEsIDB4RDMsIDB4ODcsIDB4NzQsIDB4MjUsIDB4NEEpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg4NywgMHhBMywgMHhFMywgMHg3NiwgMHg0MywgMHg4NywgMHgxMiwgMHhCRCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDU0LCAweEIxLCAweDNCLCAweDYwLCAweDY2LCAweEVCLCAweDk4LCAweDU0KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RDIsIDB4NzgsIDB4QzgsIDB4RDcsIDB4NEUsIDB4NzUsIDB4Q0EsIDB4NjkpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgwNywgMHhERiwgMHg3MSwgMHgxOSwgMHhFNywgMHgwNywgMHgzNiwgMHhCNSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDZELCAweEM5LCAweEE4LCAweDVGLCAweDkxLCAweEJGLCAweDQ3LCAweEIyKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4ODAsIDB4OTYsIDB4NTgsIDB4OTYsIDB4MTgsIDB4QjYsIDB4RkEsIDB4MDEpLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IGJyYWlucG9vbFA1MTJyMV9UXzlfWVtdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhEMCwgMHgyRCwgMHhBOSwgMHg5QiwgMHg4NiwgMHhEQiwgMHgwQywgMHg0QyksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEU0LCAweDBCLCAweDJELCAweDU2LCAweDRBLCAweEQzLCAweDkzLCAweDhBKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QjUsIDB4MTUsIDB4RTIsIDB4NjUsIDB4MTIsIDB4ODYsIDB4MEUsIDB4QjIpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhCNCwgMHg0MSwgMHg0RCwgMHhDMSwgMHhDQiwgMHhFNCwgMHhDMywgMHhENyksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDZBLCAweDUzLCAweDEwLCAweENBLCAweEEzLCAweEFDLCAweDgzLCAweDI2KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4M0UsIDB4MDEsIDB4MjIsIDB4OTYsIDB4MTAsIDB4QUQsIDB4NjksIDB4REIpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg0MiwgMHg0NiwgMHg0RSwgMHhEOCwgMHhFQSwgMHhENiwgMHg5RCwgMHhGMyksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDQzLCAweDJGLCAweDdGLCAweDYyLCAweDYyLCAweDgwLCAweEQwLCAweDE0KSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBicmFpbnBvb2xQNTEycjFfVF8xMF9YW10gPSB7CisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEIyLCAweERBLCAweDAwLCAweDYzLCAweDA5LCAweEJELCAweDZBLCAweDgzKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MEYsIDB4RDQsIDB4NkUsIDB4NDgsIDB4MDUsIDB4QjcsIDB4RjcsIDB4MTcpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgxNCwgMHg0RCwgMHhENywgMHgwMCwgMHg0QSwgMHgxNSwgMHgyNywgMHg3QSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDNBLCAweDE1LCAweEFBLCAweDM3LCAweDI3LCAweDM0LCAweDE4LCAweDI0KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4M0EsIDB4MjAsIDB4MkMsIDB4ODQsIDB4MUIsIDB4ODgsIDB4QkEsIDB4MDUpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhBQywgMHgwOSwgMHhENiwgMHgwNCwgMHhBMiwgMHg2MCwgMHg4NCwgMHg3MiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEM4LCAweDA0LCAweDk0LCAweDA4LCAweEQ0LCAweEVELCAweDQ3LCAweERCKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4OEIsIDB4RjMsIDB4RTQsIDB4M0UsIDB4QjksIDB4NUIsIDB4MzUsIDB4NDIpLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IGJyYWlucG9vbFA1MTJyMV9UXzEwX1lbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NUYsIDB4RDgsIDB4QjYsIDB4ODAsIDB4RDYsIDB4RjEsIDB4MzAsIDB4REQpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhENiwgMHgxNCwgMHhBNiwgMHg4NSwgMHhFRSwgMHhBNywgMHhEOCwgMHg2MSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEU0LCAweDQ5LCAweDJBLCAweDFFLCAweDdDLCAweEU5LCAweDJELCAweEVDKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4M0EsIDB4ODcsIDB4NTYsIDB4OTEsIDB4MDMsIDB4NzcsIDB4NEQsIDB4NTUpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgwRSwgMHg1MiwgMHhENCwgMHhBQSwgMHhGNywgMHhGQSwgMHhCMCwgMHhDNSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDA0LCAweDVELCAweDExLCAweDM5LCAweEIxLCAweEU3LCAweDc2LCAweEFEKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RDYsIDB4MTMsIDB4QkMsIDB4MzcsIDB4NUQsIDB4NzQsIDB4Q0QsIDB4QzIpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhDOSwgMHg0OCwgMHgxNCwgMHgyMywgMHgzMCwgMHhGOCwgMHg0NiwgMHgzNyksCit9Oworc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgYnJhaW5wb29sUDUxMnIxX1RfMTFfWFtdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhBQywgMHgyNywgMHhCMCwgMHhEOSwgMHhCMiwgMHg3NCwgMHhCNCwgMHhDMCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEVBLCAweEE2LCAweEI5LCAweDZGLCAweDlGLCAweDY0LCAweDM2LCAweDkyKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MkUsIDB4MkIsIDB4NzgsIDB4NDAsIDB4MDUsIDB4MkIsIDB4N0IsIDB4QTkpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhCMywgMHg2OCwgMHgzQSwgMHhCNiwgMHg0QSwgMHhFMiwgMHhEQiwgMHhCOCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDFFLCAweDMzLCAweEQ3LCAweDM0LCAweDhCLCAweDI1LCAweDQ1LCAweEVGKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4ODksIDB4Q0UsIDB4QTgsIDB4QzksIDB4MDEsIDB4RkIsIDB4MEUsIDB4N0IpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhFMiwgMHhGOSwgMHg1MSwgMHg0QywgMHgxMiwgMHg5RiwgMHg2MCwgMHhFNCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDY3LCAweDg1LCAweEJELCAweDMwLCAweDM3LCAweDg0LCAweDM5LCAweDQ0KSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBicmFpbnBvb2xQNTEycjFfVF8xMV9ZW10gPSB7CisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDI2LCAweDMzLCAweEFGLCAweDJFLCAweEI4LCAweDJFLCAweENDLCAweDNDKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QTQsIDB4QjEsIDB4NzMsIDB4NTksIDB4NEUsIDB4MEMsIDB4MDksIDB4NEEpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg4QSwgMHgyNCwgMHg4OSwgMHg4MSwgMHgxMiwgMHhGRiwgMHhCQiwgMHg2RSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDcxLCAweDM3LCAweDFBLCAweDY2LCAweEVFLCAweEVELCAweEI2LCAweDlCKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MTYsIDB4QkQsIDB4MDQsIDB4MjAsIDB4NUQsIDB4RkIsIDB4QkYsIDB4OTUpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhBMCwgMHhGOCwgMHgzNCwgMHhBMywgMHhGRiwgMHg0NSwgMHhERSwgMHg5MiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDlCLCAweDE4LCAweDczLCAweEYxLCAweDMyLCAweDI1LCAweDU4LCAweEVCKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NjMsIDB4QzEsIDB4MTQsIDB4RTMsIDB4OUUsIDB4NDAsIDB4MEYsIDB4MTIpLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IGJyYWlucG9vbFA1MTJyMV9UXzEyX1hbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NjEsIDB4MDcsIDB4OUQsIDB4OUMsIDB4MDAsIDB4RjcsIDB4NTYsIDB4MTkpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhGQiwgMHhCQSwgMHg4NywgMHhGOSwgMHgxNSwgMHgwQywgMHg2NiwgMHg1RCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDdFLCAweDFGLCAweEMxLCAweDI4LCAweEIwLCAweDQ3LCAweDBELCAweEY1KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4OTYsIDB4Q0EsIDB4MjcsIDB4RUUsIDB4NEIsIDB4MjMsIDB4MkIsIDB4ODkpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg3RSwgMHhCNSwgMHg2OCwgMHhDOCwgMHgxNywgMHg1RCwgMHhDMywgMHhBQSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDE3LCAweDAyLCAweDA4LCAweEVFLCAweDIwLCAweDlELCAweEVBLCAweDY0KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QTcsIDB4MTQsIDB4NTAsIDB4RDQsIDB4N0QsIDB4NUYsIDB4Q0YsIDB4QTApLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhENSwgMHhGQSwgMHhGOCwgMHhBNywgMHhDNiwgMHhEQywgMHgxNCwgMHg4QyksCit9Oworc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgYnJhaW5wb29sUDUxMnIxX1RfMTJfWVtdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg3NiwgMHhCRCwgMHgwQSwgMHgxQSwgMHgxOCwgMHg5OCwgMHhEQywgMHhCMCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDYzLCAweDYzLCAweDAyLCAweEI3LCAweEQ1LCAweDVCLCAweDVBLCAweEM2KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NTEsIDB4QjEsIDB4RDcsIDB4NEIsIDB4MTUsIDB4MzksIDB4NjEsIDB4NUQpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg1QywgMHgzMiwgMHhFMSwgMHg5RSwgMHg3MCwgMHgxQiwgMHhDRSwgMHg1MSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDY0LCAweEQ4LCAweDE4LCAweDgzLCAweDUyLCAweDlCLCAweDZELCAweEEyKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QTQsIDB4NTUsIDB4NTYsIDB4MTksIDB4MzQsIDB4QTQsIDB4RUEsIDB4RkMpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgzMCwgMHhBOSwgMHg1NSwgMHg4MCwgMHhFMywgMHgxNSwgMHgzNiwgMHg4QiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEJCLCAweDA2LCAweEM4LCAweDFELCAweDE3LCAweDBELCAweEFELCAweDE2KSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBicmFpbnBvb2xQNTEycjFfVF8xM19YW10gPSB7CisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDIwLCAweEQ2LCAweEYwLCAweENDLCAweEYzLCAweDYzLCAweDUzLCAweEQyKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MjcsIDB4NUEsIDB4REMsIDB4NDYsIDB4QkQsIDB4MEQsIDB4QUQsIDB4OTYpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgyMSwgMHgyRiwgMHgxMSwgMHg2MCwgMHgxNSwgMHg1MSwgMHg0QSwgMHhFQSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDMzLCAweEUzLCAweDkzLCAweDM4LCAweEQ1LCAweDgzLCAweEFBLCAweDBEKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4OTAsIDB4QTYsIDB4Q0MsIDB4QjEsIDB4RkQsIDB4QkIsIDB4MUEsIDB4MEYpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgzQiwgMHg1NCwgMHhDOCwgMHg1NCwgMHg2RiwgMHg3OSwgMHgxQSwgMHg1OSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDNGLCAweDRBLCAweERBLCAweDI4LCAweDkyLCAweDk3LCAweDlELCAweDdGKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RDYsIDB4NEIsIDB4REIsIDB4QzcsIDB4NTIsIDB4QzUsIDB4NjYsIDB4MzQpLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IGJyYWlucG9vbFA1MTJyMV9UXzEzX1lbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MDUsIDB4N0UsIDB4OTIsIDB4NTMsIDB4MzAsIDB4OTMsIDB4RkQsIDB4RkYpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhBMCwgMHgxNiwgMHg2QSwgMHhCMSwgMHg5MSwgMHgwQSwgMHhCNCwgMHg1MiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDZELCAweDlELCAweDQwLCAweDNGLCAweEUzLCAweEYxLCAweDAxLCAweDQ2KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MTMsIDB4MEUsIDB4RDgsIDB4RUQsIDB4MTEsIDB4OEUsIDB4NEMsIDB4RUQpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg4NiwgMHg0QSwgMHgxQiwgMHg4OCwgMHhERiwgMHg4RCwgMHgyOSwgMHhFNyksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDk3LCAweDIzLCAweDIxLCAweDExLCAweEFCLCAweDc3LCAweDgxLCAweDYyKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MEIsIDB4QUYsIDB4MTEsIDB4RkEsIDB4QkEsIDB4NDAsIDB4NjMsIDB4RTcpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgyQiwgMHg2RiwgMHg4RCwgMHg4MCwgMHhERiwgMHg2NywgMHhGNSwgMHg0NCksCit9Oworc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgYnJhaW5wb29sUDUxMnIxX1RfMTRfWFtdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhCMiwgMHg4QiwgMHhCNywgMHgwOCwgMHhGNCwgMHhENywgMHgyRCwgMHhBOCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEM3LCAweDJCLCAweDMwLCAweDAyLCAweDQ1LCAweDcxLCAweDA4LCAweDQ5KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4OTcsIDB4M0EsIDB4Q0EsIDB4NTAsIDB4RjYsIDB4QzIsIDB4MTksIDB4OEMpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgxNywgMHhCOSwgMHg5QiwgMHgzRSwgMHg3MywgMHg5NSwgMHgxRCwgMHg0OSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEI2LCAweDYwLCAweDU5LCAweDQ4LCAweENCLCAweEQ4LCAweEQ2LCAweEFBKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RjAsIDB4QjksIDB4NkMsIDB4ODksIDB4QUIsIDB4OTksIDB4QTgsIDB4RjgpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhFRiwgMHhBMSwgMHg4QiwgMHg0RSwgMHgwNiwgMHgxOSwgMHhFQywgMHg5OSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDcwLCAweDk1LCAweDA0LCAweENGLCAweEQ1LCAweDk0LCAweEIzLCAweDAyKSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBicmFpbnBvb2xQNTEycjFfVF8xNF9ZW10gPSB7CisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDI5LCAweDM1LCAweDkzLCAweDdDLCAweEIzLCAweEI4LCAweDlFLCAweDFCKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QzQsIDB4NDUsIDB4NUMsIDB4N0UsIDB4QkYsIDB4NzUsIDB4ODEsIDB4MEYpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhEQywgMHhFOCwgMHgyNCwgMHhERiwgMHhFQywgMHgyRiwgMHg3RCwgMHhCOSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEYyLCAweDhCLCAweEQ1LCAweDZBLCAweDlCLCAweEEwLCAweEUwLCAweDRGKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MzIsIDB4RTMsIDB4MjcsIDB4ODIsIDB4REUsIDB4REQsIDB4Q0EsIDB4NEIpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhBNywgMHg1NywgMHg1NiwgMHg0NiwgMHgwNSwgMHgwNiwgMHgwMSwgMHgyRSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDc0LCAweDM1LCAweEE3LCAweDQ3LCAweEUyLCAweDZCLCAweDJDLCAweDRGKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MzgsIDB4OUQsIDB4NEMsIDB4RUMsIDB4MUYsIDB4MTEsIDB4NzUsIDB4MkIpLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IGJyYWlucG9vbFA1MTJyMV9UXzE1X1hbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QUMsIDB4QUEsIDB4NDEsIDB4QzEsIDB4RTksIDB4MEUsIDB4RTksIDB4QUEpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgwQSwgMHhDRiwgMHg5QywgMHg0QiwgMHhFOCwgMHhFRCwgMHgwQSwgMHg0OSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDNELCAweDczLCAweENBLCAweDBDLCAweDQ2LCAweDBBLCAweDlDLCAweEU0KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4OTksIDB4RTEsIDB4OUUsIDB4QkMsIDB4RkUsIDB4NDQsIDB4NjMsIDB4NkQpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgzMSwgMHg0MywgMHg3MSwgMHhFRSwgMHhGOCwgMHhDMSwgMHg4QywgMHg1QyksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDZBLCAweDRCLCAweEYwLCAweDY5LCAweDI1LCAweEJELCAweDcxLCAweDFBKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RkQsIDB4OUEsIDB4RkUsIDB4ODIsIDB4RTcsIDB4QzEsIDB4QzEsIDB4RUUpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhGQywgMHg1QSwgMHg2RSwgMHg1RSwgMHg5NywgMHg2QSwgMHgzNSwgMHg4RCksCit9Oworc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgYnJhaW5wb29sUDUxMnIxX1RfMTVfWVtdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhBMiwgMHgxOCwgMHg2QywgMHg3RSwgMHhCOCwgMHg5RSwgMHg1NywgMHgzMiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDM1LCAweEI5LCAweEMxLCAweEQwLCAweEZFLCAweDc4LCAweEZCLCAweDMyKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4N0MsIDB4MDgsIDB4QUUsIDB4NDYsIDB4MzQsIDB4RUEsIDB4N0EsIDB4N0YpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhFOCwgMHgxQywgMHg1NiwgMHhBOSwgMHgxOCwgMHgzNywgMHhENCwgMHg5RSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDI4LCAweDYzLCAweEU5LCAweDBBLCAweEI2LCAweDM4LCAweDNDLCAweEMxKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4M0UsIDB4NEYsIDB4QTQsIDB4NkUsIDB4ODUsIDB4MzEsIDB4MjMsIDB4NTIpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgwRCwgMHhBRCwgMHhDNCwgMHhDMywgMHhCMSwgMHg0QiwgMHgxQywgMHg4MiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDMwLCAweDU2LCAweDRBLCAweDM4LCAweEIzLCAweDZCLCAweDZGLCAweDJDKSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBicmFpbnBvb2xQNTEycjFfVF8xNl9YW10gPSB7CisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDY3LCAweEM3LCAweDE5LCAweERFLCAweDIxLCAweEVELCAweDg5LCAweEQwKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MkYsIDB4QkUsIDB4QTYsIDB4QUUsIDB4RUIsIDB4OUQsIDB4QTcsIDB4MkEpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgwNCwgMHgwRSwgMHgxMywgMHgxRSwgMHg4NiwgMHg1NywgMHhDMywgMHgzQiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDFGLCAweDRCLCAweDMwLCAweDQ2LCAweDUyLCAweEMxLCAweEVDLCAweDUyKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NkUsIDB4RDUsIDB4NDQsIDB4MzEsIDB4OTYsIDB4M0IsIDB4MjYsIDB4MjcpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg3NywgMHg2OCwgMHhBOCwgMHg2NywgMHg3OCwgMHgzOSwgMHhFOCwgMHg2OCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDhFLCAweDc4LCAweEI3LCAweERELCAweEYyLCAweDU4LCAweEI2LCAweDNEKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4ODEsIDB4M0MsIDB4QjMsIDB4MjYsIDB4QzQsIDB4MkMsIDB4OEMsIDB4QTUpLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IGJyYWlucG9vbFA1MTJyMV9UXzE2X1lbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QjksIDB4MjQsIDB4RTUsIDB4NzMsIDB4RUUsIDB4OUEsIDB4MDIsIDB4QTkpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhEOSwgMHg2QSwgMHg2NSwgMHg2MCwgMHhGMywgMHg2MiwgMHhFMywgMHhFOSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEZCLCAweDA3LCAweDg0LCAweEU2LCAweDNCLCAweDQ2LCAweDY1LCAweDlGKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RTEsIDB4OEYsIDB4MEMsIDB4QjAsIDB4RTEsIDB4MDQsIDB4ODIsIDB4OUQpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhFQiwgMHgxMywgMHhCRiwgMHgzRCwgMHhBMCwgMHg0OCwgMHhBMiwgMHg3NCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDA4LCAweDI2LCAweDc2LCAweDc0LCAweEFCLCAweDBCLCAweDI5LCAweEU4KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MzAsIDB4NkUsIDB4NUYsIDB4MDMsIDB4MzQsIDB4N0MsIDB4MzgsIDB4Q0UpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg0RCwgMHg3MiwgMHhGOSwgMHgzQiwgMHgzQywgMHhBNCwgMHhCQywgMHg3QyksCit9Oworc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgYnJhaW5wb29sUDUxMnIxX1RfMTdfWFtdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg1QywgMHhDRSwgMHgxOCwgMHg4MCwgMHhCOCwgMHgyNCwgMHg0NSwgMHg4MSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEYxLCAweDA5LCAweDAzLCAweEI4LCAweDA2LCAweDY0LCAweEY3LCAweEVDKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RjEsIDB4MjYsIDB4QjEsIDB4MTAsIDB4NkQsIDB4NzEsIDB4MTIsIDB4MkUpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhBRCwgMHgxMiwgMHhDNiwgMHg2RSwgMHgxRSwgMHg2QSwgMHhDMywgMHg4MCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEU1LCAweEQzLCAweDBBLCAweERFLCAweEQ4LCAweDZCLCAweDA0LCAweDVDKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4OTYsIDB4ODcsIDB4NUIsIDB4QUUsIDB4REIsIDB4M0MsIDB4QzAsIDB4QzUpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg4RSwgMHhGNSwgMHhGOSwgMHhDMSwgMHg5QSwgMHg4OSwgMHhCQiwgMHg3RSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEVELCAweDY5LCAweDcyLCAweDhCLCAweEFFLCAweDMyLCAweDEzLCAweDExKSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBicmFpbnBvb2xQNTEycjFfVF8xN19ZW10gPSB7CisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEY5LCAweDE2LCAweDA3LCAweDUwLCAweEZBLCAweDRDLCAweENGLCAweEU4KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RjgsIDB4NTAsIDB4MjEsIDB4RTksIDB4REUsIDB4RUMsIDB4N0UsIDB4REYpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg3QywgMHgyRiwgMHhFOCwgMHg4MywgMHgzMCwgMHgwQiwgMHg2NSwgMHgwRSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEE1LCAweDBCLCAweDk5LCAweEFDLCAweEM5LCAweEJBLCAweDZDLCAweDJBKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QTcsIDB4NTksIDB4NUEsIDB4MEQsIDB4N0IsIDB4OUUsIDB4MDgsIDB4QUQpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgzNCwgMHg5MSwgMHhCMiwgMHhEQywgMHg5MCwgMHhDRSwgMHg2NywgMHhFRCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEUzLCAweDkzLCAweDYwLCAweDBDLCAweEQ3LCAweDFGLCAweDJGLCAweDE3KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MTksIDB4N0YsIDB4OUQsIDB4NDAsIDB4RjgsIDB4NzgsIDB4N0EsIDB4NTQpLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IGJyYWlucG9vbFA1MTJyMV9UXzE4X1hbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MTMsIDB4MjIsIDB4OTUsIDB4RTgsIDB4RUYsIDB4MzEsIDB4NTcsIDB4MzUpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgyRCwgMHg4OCwgMHg1MywgMHhGRSwgMHhBRiwgMHg3QywgMHg0NywgMHgxNCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDBFLCAweENFLCAweENDLCAweDc5LCAweEU4LCAweDlGLCAweDhDLCAweEM0KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4REIsIDB4MTYsIDB4REQsIDB4NzcsIDB4NkUsIDB4OEEsIDB4NzMsIDB4OTcpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhDMCwgMHgwNywgMHg5NywgMHgyMSwgMHgzQiwgMHhGOCwgMHg1RiwgMHhBOCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEM2LCAweEI1LCAweEQyLCAweDgxLCAweDg0LCAweEYwLCAweEU3LCAweDlGKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4Q0IsIDB4OEYsIDB4NzUsIDB4MDksIDB4NkEsIDB4MEUsIDB4NTMsIDB4QUQpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhFNiwgMHg0RiwgMHg3MCwgMHg5NywgMHhDNywgMHhBQywgMHg3RCwgMHgzRiksCit9Oworc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgYnJhaW5wb29sUDUxMnIxX1RfMThfWVtdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhGOSwgMHgzQywgMHg2QSwgMHhCNCwgMHgxMCwgMHhBOSwgMHhDOCwgMHgxRCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEVFLCAweEM1LCAweEQ2LCAweDY5LCAweDE2LCAweEI4LCAweEFDLCAweDI1KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QUMsIDB4NDQsIDB4REMsIDB4RUIsIDB4NDgsIDB4NTQsIDB4NUQsIDB4NUYpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg2RiwgMHg0OCwgMHg5QiwgMHhENywgMHg3MiwgMHg2OSwgMHhBNCwgMHg4QSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEI0LCAweDBELCAweDM2LCAweDlBLCAweDY2LCAweDBCLCAweEVDLCAweDI0KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QkUsIDB4QzYsIDB4RDQsIDB4QjYsIDB4NjAsIDB4RTUsIDB4QzMsIDB4M0EpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhCQSwgMHgyOSwgMHg0MiwgMHhFMCwgMHg5RCwgMHhGRCwgMHg3QywgMHgzRSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDQzLCAweDEwLCAweEJBLCAweDU1LCAweEJDLCAweDNCLCAweDM4LCAweDVEKSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBicmFpbnBvb2xQNTEycjFfVF8xOV9YW10gPSB7CisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDI1LCAweDY2LCAweEZBLCAweDA1LCAweDczLCAweDAzLCAweDFCLCAweDY5KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MTEsIDB4QTQsIDB4NjYsIDB4MTIsIDB4OTYsIDB4N0IsIDB4MDIsIDB4NEMpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg0NCwgMHhCNSwgMHhERSwgMHg2RCwgMHg5OCwgMHhEMSwgMHhENSwgMHhBOCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEUyLCAweEY1LCAweDQ0LCAweEI4LCAweDhFLCAweEY2LCAweDhDLCAweDA1KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NjgsIDB4MTUsIDB4MkIsIDB4NzIsIDB4QkMsIDB4NDksIDB4RTUsIDB4REYpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg2QywgMHg0NCwgMHhENywgMHhERiwgMHg4RiwgMHhFQiwgMHg4RCwgMHg4MCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDA1LCAweDY0LCAweDg4LCAweEFBLCAweEI3LCAweEU0LCAweDcwLCAweDFEKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4OUMsIDB4MTQsIDB4QkIsIDB4RTksIDB4OUIsIDB4QjksIDB4NjUsIDB4NUQpLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IGJyYWlucG9vbFA1MTJyMV9UXzE5X1lbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NjYsIDB4OEUsIDB4ODgsIDB4RjUsIDB4RjEsIDB4QzEsIDB4ODksIDB4QTIpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgxNiwgMHgzMCwgMHg1MywgMHhFNiwgMHhGQiwgMHgyRCwgMHg4MiwgMHhCNCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEE3LCAweEU0LCAweEZGLCAweEJBLCAweDMxLCAweDc5LCAweEFCLCAweEMyKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NDUsIDB4MDksIDB4RjcsIDB4QjcsIDB4MDksIDB4NzgsIDB4NEMsIDB4OTApLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgxMCwgMHhBRSwgMHhDMiwgMHg0NCwgMHhEQywgMHgxNywgMHg3OCwgMHg0NyksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEM3LCAweEQ0LCAweDE3LCAweDQzLCAweDE5LCAweDc0LCAweDlFLCAweDIzKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MTUsIDB4NjQsIDB4M0IsIDB4NzMsIDB4QTIsIDB4OTksIDB4MjcsIDB4NzYpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgwNSwgMHg3NCwgMHgzNiwgMHg1RiwgMHhEMywgMHgxNCwgMHhCMSwgMHgzMSksCit9Oworc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgYnJhaW5wb29sUDUxMnIxX1RfMjBfWFtdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhBQywgMHgwNywgMHhBQiwgMHhGRCwgMHg5QiwgMHgwMywgMHhDNSwgMHhENSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEM3LCAweEJFLCAweEIwLCAweDFELCAweEYyLCAweDBDLCAweDczLCAweDczKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4OTksIDB4RTcsIDB4N0IsIDB4ODcsIDB4RDMsIDB4MzQsIDB4RkQsIDB4RTIpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg5QSwgMHgyNSwgMHgzRCwgMHhDNywgMHgzNiwgMHg4MywgMHg1MywgMHhEQyksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDIyLCAweDdDLCAweENGLCAweDYzLCAweDU1LCAweDEyLCAweDExLCAweEIwKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QzAsIDB4MzQsIDB4NEQsIDB4MjcsIDB4OTIsIDB4QUMsIDB4MTgsIDB4MTYpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg5OCwgMHg0MiwgMHg2MSwgMHg5RCwgMHgyRSwgMHhGRiwgMHgxMywgMHgxNiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEY0LCAweERFLCAweDkyLCAweDY1LCAweDU3LCAweDBELCAweEJDLCAweDBBKSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBicmFpbnBvb2xQNTEycjFfVF8yMF9ZW10gPSB7CisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEVGLCAweDdCLCAweDZFLCAweEM2LCAweDJBLCAweDIxLCAweDc0LCAweDBBKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MzcsIDB4QTcsIDB4NTMsIDB4NEQsIDB4MjksIDB4MzYsIDB4RUYsIDB4RTUpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhFMSwgMHhENiwgMHg0MSwgMHhDNywgMHg5OSwgMHhBRCwgMHg1MCwgMHg1MyksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDk5LCAweEFDLCAweDQxLCAweDlGLCAweEZCLCAweDRDLCAweDg2LCAweEYxKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4OEIsIDB4QkIsIDB4RTYsIDB4MjUsIDB4MjgsIDB4QUEsIDB4RUIsIDB4MUUpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg5MiwgMHgwNCwgMHhBMiwgMHhDMywgMHhBQSwgMHgwOCwgMHg4QSwgMHhDQyksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDVBLCAweDJCLCAweDVCLCAweEUyLCAweDhELCAweDc2LCAweEVBLCAweDM0KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QjMsIDB4MzMsIDB4RDIsIDB4MjEsIDB4NEQsIDB4NjIsIDB4RTMsIDB4OEUpLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IGJyYWlucG9vbFA1MTJyMV9UXzIxX1hbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RjYsIDB4MDYsIDB4OEIsIDB4MkIsIDB4QzIsIDB4QzQsIDB4QjEsIDB4RDIpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhGQSwgMHhGNSwgMHhBMSwgMHhDMCwgMHgwMywgMHg2QSwgMHgyOSwgMHgxMiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEY1LCAweEE5LCAweEVGLCAweDU1LCAweEI2LCAweDFBLCAweDlGLCAweDZCKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4OUIsIDB4NTQsIDB4MzIsIDB4QkUsIDB4MDYsIDB4NDMsIDB4QjUsIDB4RkQpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhGNywgMHhENiwgMHhEOSwgMHgyMCwgMHg4OSwgMHhCRSwgMHhENCwgMHgxQiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEU4LCAweDI2LCAweDk1LCAweDEwLCAweENFLCAweEI0LCAweDg4LCAweDc5KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RTYsIDB4QTYsIDB4MjcsIDB4QUMsIDB4MzIsIDB4QkEsIDB4QkQsIDB4QzcpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhBMywgMHhBNiwgMHhBRSwgMHg5QywgMHg3QiwgMHhCRSwgMHhBMSwgMHg2MyksCit9Oworc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgYnJhaW5wb29sUDUxMnIxX1RfMjFfWVtdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg4QiwgMHhDRCwgMHg0RCwgMHgzRCwgMHhERiwgMHg5NiwgMHhCQiwgMHg3RCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDc3LCAweEE3LCAweDExLCAweDA2LCAweENDLCAweDBFLCAweDMxLCAweDgxKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MjAsIDB4RTQsIDB4RjQsIDB4QUQsIDB4N0IsIDB4NUYsIDB4RjEsIDB4RUYpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhFNCwgMHg1NCwgMHhCRSwgMHhGNCwgMHg4QSwgMHgwMywgMHg0NywgMHhERiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEI0LCAweDUzLCAweDAwLCAweDdGLCAweEIwLCAweDhBLCAweDY4LCAweEE2KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QTAsIDB4MTYsIDB4QjEsIDB4NzMsIDB4NkYsIDB4NUIsIDB4MEUsIDB4QzMpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgyQSwgMHgzMiwgMHhFMywgMHg0MywgMHg2NCwgMHg3NSwgMHhGQiwgMHhGQiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEEwLCAweDE4LCAweDU1LCAweDhBLCAweDRFLCAweDZFLCAweDM1LCAweDU0KSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBicmFpbnBvb2xQNTEycjFfVF8yMl9YW10gPSB7CisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDgwLCAweDk3LCAweDE1LCAweDFFLCAweENCLCAweEYyLCAweDlDLCAweEE1KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MkIsIDB4RDEsIDB4QkIsIDB4RjMsIDB4NzAsIDB4QUQsIDB4MTMsIDB4QUQpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhEOCwgMHg5NiwgMHhBNCwgMHhDNSwgMHg1RSwgMHhEQSwgMHhENSwgMHg1NyksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDA3LCAweDgxLCAweEU5LCAweDY1LCAweDY2LCAweDc2LCAweDQ3LCAweDQ1KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QzksIDB4MzUsIDB4ODcsIDB4MDYsIDB4NzMsIDB4Q0YsIDB4MzQsIDB4RDIpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg1QSwgMHg4MSwgMHgxNSwgMHg0MiwgMHhBMiwgMHg3OSwgMHg1QiwgMHg0MiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDA4LCAweEEyLCAweDdELCAweDA5LCAweDE0LCAweDY0LCAweEM2LCAweEFFKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NUUsIDB4NkQsIDB4QzQsIDB4RUQsIDB4RjEsIDB4RDYsIDB4RTksIDB4MjQpLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IGJyYWlucG9vbFA1MTJyMV9UXzIyX1lbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QjQsIDB4RDUsIDB4QkIsIDB4MjUsIDB4QTMsIDB4REQsIDB4QTMsIDB4ODgpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg0NiwgMHhGMiwgMHg2OCwgMHg2NywgMHgzOSwgMHg4RiwgMHg3MywgMHg5MyksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEYwLCAweDc2LCAweDI4LCAweDg5LCAweEFELCAweDMyLCAweEUwLCAweERGKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RjgsIDB4OTAsIDB4Q0MsIDB4NTcsIDB4NTgsIDB4QUEsIDB4QzksIDB4NzUpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg1RSwgMHhENywgMHg0MywgMHhEMiwgMHhDRSwgMHg1RSwgMHhBMCwgMHgwOCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDMzLCAweEIwLCAweEI4LCAweEE0LCAweDlFLCAweDk2LCAweDI2LCAweDg2KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4OTQsIDB4NjEsIDB4MUQsIDB4RjMsIDB4NjUsIDB4NUUsIDB4NjAsIDB4Q0EpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhDNywgMHgxRSwgMHg2NSwgMHhFRCwgMHhDRiwgMHgwNywgMHg2MCwgMHgyMCksCit9Oworc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgYnJhaW5wb29sUDUxMnIxX1RfMjNfWFtdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhBNCwgMHgzMCwgMHgxNywgMHg4QSwgMHg5MSwgMHg4OCwgMHgwQSwgMHhBNCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDA1LCAweDdELCAweDE4LCAweEE0LCAweEFDLCAweDU5LCAweEZDLCAweDVGKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QTQsIDB4MzEsIDB4OEIsIDB4MjUsIDB4NjUsIDB4MzksIDB4OUEsIDB4REMpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgxNSwgMHgxNiwgMHg0QiwgMHg2OCwgMHhCQSwgMHg1OSwgMHgxMywgMHgyRiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDhELCAweEZELCAweEQzLCAweEM1LCAweDU2LCAweEM5LCAweDhDLCAweDVFKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QkMsIDB4QzYsIDB4OUYsIDB4RjQsIDB4RTYsIDB4RjcsIDB4QjQsIDB4MDEpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgyRCwgMHg3QywgMHgwMywgMHgwMCwgMHgyNiwgMHg5RiwgMHhEOCwgMHg3QiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDI0LCAweDFELCAweDZFLCAweDAwLCAweEI5LCAweDAwLCAweDZFLCAweDkzKSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBicmFpbnBvb2xQNTEycjFfVF8yM19ZW10gPSB7CisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDc1LCAweDYzLCAweERBLCAweDAzLCAweDJCLCAweEQ1LCAweDBCLCAweEZFKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NDYsIDB4RkMsIDB4RTIsIDB4QzgsIDB4NDcsIDB4RjAsIDB4QUUsIDB4RjIpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg1MSwgMHg0QywgMHhGNywgMHg1MCwgMHgwQywgMHg0OCwgMHgwNiwgMHgyQSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweERGLCAweDJCLCAweDMyLCAweDk4LCAweDBFLCAweDdFLCAweDYxLCAweDQxKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NUQsIDB4MDIsIDB4MjcsIDB4RkUsIDB4NzUsIDB4ODYsIDB4REYsIDB4MjQpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgyQiwgMHgzMCwgMHhCMSwgMHgyMiwgMHgzMiwgMHgxQiwgMHhGRSwgMHgyNCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEMyLCAweDI3LCAweEY3LCAweDc4LCAweDZGLCAweEQ3LCAweEZELCAweEU0KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QTAsIDB4NzgsIDB4Q0MsIDB4RUEsIDB4QzAsIDB4NTAsIDB4MjQsIDB4NDQpLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IGJyYWlucG9vbFA1MTJyMV9UXzI0X1hbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MzcsIDB4MkIsIDB4NEYsIDB4N0YsIDB4NTgsIDB4RTYsIDB4QzIsIDB4NzApLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgzNywgMHg0MywgMHhENSwgMHhBNywgMHgzNSwgMHgzQywgMHg4MCwgMHhCOCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDFBLCAweDZELCAweDRCLCAweDEyLCAweDAwLCAweDdCLCAweEU2LCAweEE2KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MzcsIDB4MTUsIDB4QkQsIDB4RDAsIDB4OUIsIDB4Q0EsIDB4QUEsIDB4ODEpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhDRiwgMHhDRSwgMHg5QywgMHhFMywgMHg4QiwgMHg2MCwgMHg3QSwgMHg1MyksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDBDLCAweERBLCAweDRCLCAweDAzLCAweEE3LCAweDhELCAweDQzLCAweDIyKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NTcsIDB4QUYsIDB4MDAsIDB4MkIsIDB4MzIsIDB4RjAsIDB4MjIsIDB4NjgpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhEQywgMHhEOSwgMHg5OSwgMHg5OSwgMHhCRSwgMHg0MywgMHg5OSwgMHgzRSksCit9Oworc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgYnJhaW5wb29sUDUxMnIxX1RfMjRfWVtdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgxRiwgMHg3MSwgMHg0MSwgMHhGNCwgMHhCNSwgMHhGRCwgMHhERCwgMHgzNiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDlELCAweEUyLCAweDIwLCAweDRDLCAweEQxLCAweDJFLCAweDFGLCAweDA2KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4OTYsIDB4NDMsIDB4NDgsIDB4NzYsIDB4OEEsIDB4NDksIDB4QUMsIDB4ODcpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgwQywgMHgxQSwgMHg1NSwgMHhBOCwgMHhBMywgMHhENCwgMHg1NywgMHg3NSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDdDLCAweEE2LCAweDg0LCAweDM5LCAweEM5LCAweDEzLCAweEJCLCAweDYwKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RDksIDB4RkEsIDB4QTksIDB4NzAsIDB4REUsIDB4ODMsIDB4REQsIDB4QzkpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhFQywgMHhDOSwgMHhEOSwgMHgzRSwgMHg0NCwgMHg5MSwgMHg2OCwgMHg3QiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEI2LCAweDlGLCAweDg1LCAweDZELCAweEY3LCAweDU0LCAweDM2LCAweDgyKSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBicmFpbnBvb2xQNTEycjFfVF8yNV9YW10gPSB7CisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDY4LCAweDZCLCAweEE2LCAweEEzLCAweEU1LCAweEQ0LCAweDQ2LCAweERCKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MjMsIDB4M0UsIDB4REMsIDB4ODQsIDB4N0MsIDB4N0IsIDB4MjQsIDB4MzQpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgxNCwgMHhFRCwgMHg3RiwgMHg4NiwgMHgwNywgMHg2QywgMHg1NywgMHhDQSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDk1LCAweDA2LCAweEZFLCAweDUyLCAweDEyLCAweDc5LCAweDY5LCAweDU2KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4ODQsIDB4RDEsIDB4NDQsIDB4NUYsIDB4MjEsIDB4M0EsIDB4QzMsIDB4ODQpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg1RSwgMHhEOSwgMHg0QSwgMHhDMCwgMHg3NSwgMHhBQiwgMHgxNywgMHhBQyksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEZGLCAweDgxLCAweDk0LCAweEI2LCAweDgwLCAweDZCLCAweDZGLCAweEMzKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MDcsIDB4QkUsIDB4OEUsIDB4QTUsIDB4QUEsIDB4QkMsIDB4MUUsIDB4M0UpLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IGJyYWlucG9vbFA1MTJyMV9UXzI1X1lbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4ODksIDB4QzcsIDB4ODUsIDB4QTYsIDB4NTksIDB4OUIsIDB4QjEsIDB4NTIpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgxQywgMHhDRSwgMHg0MCwgMHhEMSwgMHhGQiwgMHhERiwgMHg5NCwgMHhGNyksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDE4LCAweEI4LCAweDVFLCAweEJGLCAweDQ1LCAweEE4LCAweDJELCAweDJEKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4OTgsIDB4OUMsIDB4MDYsIDB4MUIsIDB4QTksIDB4NTcsIDB4QjksIDB4NzkpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg1MywgMHhFOSwgMHhDRSwgMHhBMiwgMHhEMywgMHg3NCwgMHhBMSwgMHgzQyksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEFBLCAweDVGLCAweDM0LCAweDc4LCAweERCLCAweEFFLCAweDNBLCAweDE0KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4N0QsIDB4MzIsIDB4ODQsIDB4M0UsIDB4NjgsIDB4NkEsIDB4NDMsIDB4MEYpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg4QywgMHhCQywgMHgzOSwgMHgzNiwgMHhBNCwgMHhDNSwgMHhCQiwgMHgxMSksCit9Oworc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgYnJhaW5wb29sUDUxMnIxX1RfMjZfWFtdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg4QywgMHgwNywgMHhBMiwgMHhCNSwgMHhDOSwgMHgwRiwgMHg0RCwgMHgwRiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEUzLCAweDFELCAweDY3LCAweEU2LCAweEYxLCAweDQ2LCAweEVCLCAweDcxKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RDcsIDB4NDEsIDB4MjMsIDB4OTUsIDB4RTcsIDB4RTAsIDB4MTAsIDB4REQpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhCRSwgMHg2OSwgMHhGRSwgMHg2OCwgMHg4QywgMHhDNiwgMHg1RiwgMHhCNiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEUzLCAweEI5LCAweDJCLCAweDNELCAweEQyLCAweDRGLCAweEQ4LCAweDFBKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QTMsIDB4MDksIDB4RjUsIDB4NUYsIDB4Q0YsIDB4RjYsIDB4OTEsIDB4NTcpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg2NSwgMHgxNSwgMHg0MiwgMHg2QiwgMHg2RCwgMHhCNSwgMHhGMywgMHhCNiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEJGLCAweDU2LCAweDlELCAweEM1LCAweEZGLCAweENBLCAweDEzLCAweDlCKSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBicmFpbnBvb2xQNTEycjFfVF8yNl9ZW10gPSB7CisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDRELCAweDM4LCAweEU2LCAweDIzLCAweDYzLCAweDQ4LCAweDNDLCAweENBKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RDIsIDB4NjgsIDB4M0MsIDB4RDEsIDB4M0IsIDB4RTksIDB4M0IsIDB4ODIpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhCNSwgMHgwOCwgMHg1NCwgMHg0OSwgMHhEMSwgMHg0NiwgMHg0NSwgMHgxMyksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDA3LCAweDcwLCAweDUyLCAweDZFLCAweDc5LCAweEM0LCAweDVFLCAweDk1KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MzYsIDB4REYsIDB4RTgsIDB4NUEsIDB4MzIsIDB4ODEsIDB4REEsIDB4RDMpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgzQywgMHgyRCwgMHg5NCwgMHg1QiwgMHhCNSwgMHgzNSwgMHg5RiwgMHgwQSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDJBLCAweDEyLCAweDhELCAweEMzLCAweDM2LCAweDM2LCAweEIyLCAweDJBKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MzksIDB4MkYsIDB4MjIsIDB4MzgsIDB4NUIsIDB4MTgsIDB4NEMsIDB4MzUpLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IGJyYWlucG9vbFA1MTJyMV9UXzI3X1hbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MTAsIDB4QzEsIDB4MjIsIDB4MEUsIDB4RjAsIDB4NzMsIDB4MTEsIDB4MDUpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhCMiwgMHhBRSwgMHhBNCwgMHg1NiwgMHgxOCwgMHg2MSwgMHg2NiwgMHgxMiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDc5LCAweEZCLCAweDcyLCAweDA4LCAweDg0LCAweDM4LCAweDUxLCAweEIwKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4REEsIDB4ODYsIDB4QTgsIDB4QjksIDB4MzEsIDB4OTksIDB4MjksIDB4QzMpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg4QSwgMHhGQiwgMHhDMywgMHg0MiwgMHhCMywgMHhDNywgMHg2RiwgMHgzQSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEQ4LCAweEY4LCAweEUxLCAweDA5LCAweEJFLCAweDc1LCAweEIwLCAweDIyKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NUEsIDB4N0QsIDB4RkYsIDB4RjQsIDB4OTksIDB4RkMsIDB4MTMsIDB4QUIpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhFNiwgMHgxQiwgMHg4NCwgMHg4MSwgMHg0MiwgMHgyMiwgMHhDNiwgMHgzRCksCit9Oworc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgYnJhaW5wb29sUDUxMnIxX1RfMjdfWVtdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgyMSwgMHhFMCwgMHgzNywgMHhBNCwgMHhBMCwgMHgyRiwgMHgzOCwgMHg3RiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEQwLCAweDNELCAweEI3LCAweDQwLCAweDJGLCAweDM5LCAweDNDLCAweDdBKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4N0EsIDB4M0IsIDB4OEEsIDB4NTEsIDB4QUUsIDB4NDAsIDB4NDksIDB4N0EpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgzNiwgMHgyMCwgMHg5RiwgMHhERCwgMHhBOSwgMHhEMCwgMHg3NywgMHhDNyksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDc4LCAweDFELCAweDY0LCAweERBLCAweEEwLCAweDUzLCAweEM3LCAweDdEKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MzcsIDB4N0IsIDB4NjYsIDB4NTUsIDB4OTQsIDB4RDEsIDB4NTEsIDB4NDQpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgwRSwgMHhBOSwgMHhCNSwgMHg1QiwgMHgzOCwgMHgzNSwgMHg0MCwgMHhDMCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEM4LCAweEM5LCAweDBGLCAweEYwLCAweDczLCAweDc5LCAweDQzLCAweDYxKSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBicmFpbnBvb2xQNTEycjFfVF8yOF9YW10gPSB7CisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDEwLCAweDQ3LCAweDQ1LCAweDY5LCAweDgwLCAweDcyLCAweDcyLCAweDQyKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NzAsIDB4MTEsIDB4OTksIDB4NTksIDB4REIsIDB4NDgsIDB4ODAsIDB4MzkpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg3NSwgMHg2RSwgMHgzRCwgMHhGQywgMHgzNywgMHgxNSwgMHhGNCwgMHhCRiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDE3LCAweEJCLCAweDVCLCAweEE2LCAweDM1LCAweDhELCAweDI4LCAweDIwKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QUIsIDB4MUEsIDB4M0IsIDB4MkMsIDB4OEYsIDB4RDMsIDB4QUEsIDB4MkQpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg1NSwgMHgxQywgMHgxQSwgMHhGOCwgMHgwMiwgMHhEOSwgMHg3QiwgMHg0MSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEFGLCAweDY5LCAweEFDLCAweEY4LCAweDU0LCAweDMxLCAweDE0LCAweEExKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NDEsIDB4OEEsIDB4RTYsIDB4REUsIDB4NTgsIDB4QjksIDB4QzQsIDB4N0EpLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IGJyYWlucG9vbFA1MTJyMV9UXzI4X1lbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NTcsIDB4ODMsIDB4NTIsIDB4RkUsIDB4RjksIDB4N0IsIDB4RTksIDB4MUYpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgwNywgMHhBMiwgMHg1NSwgMHg0NiwgMHgxNSwgMHg0OSwgMHhDMSwgMHgzQSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDFELCAweEJDLCAweDVDLCAweDkxLCAweEJELCAweEI5LCAweDlDLCAweEY0KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QkIsIDB4RkQsIDB4QjEsIDB4NEUsIDB4NUYsIDB4NzQsIDB4RUUsIDB4NTMpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhCMSwgMHg4QiwgMHhEOCwgMHg4QiwgMHgxNywgMHg3MywgMHgxQiwgMHg5NiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDIyLCAweDkyLCAweEQ3LCAweDY3LCAweDA2LCAweEFELCAweDI1LCAweENEKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MDEsIDB4MEYsIDB4ODAsIDB4MjQsIDB4RTIsIDB4MjcsIDB4NUYsIDB4OEIpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg2MSwgMHgxQywgMHhDRSwgMHhEMCwgMHg2NywgMHhDQSwgMHhENCwgMHgwQiksCit9Oworc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgYnJhaW5wb29sUDUxMnIxX1RfMjlfWFtdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg4NywgMHhGMSwgMHhERCwgMHgzMywgMHg2NiwgMHhGOSwgMHgwNSwgMHhENiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDFELCAweEU1LCAweDZCLCAweDc5LCAweEJELCAweDQ4LCAweDQyLCAweEFBKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RDEsIDB4MTQsIDB4NTIsIDB4RTMsIDB4NTMsIDB4QjQsIDB4NTAsIDB4RDQpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgzMiwgMHg4NCwgMHg2QywgMHhDRiwgMHhEQSwgMHhCMiwgMHgyMCwgMHgwQSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDcwLCAweEQ2LCAweDFBLCAweEU1LCAweEUyLCAweDI5LCAweDcwLCAweENFKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RDUsIDB4NjEsIDB4RkUsIDB4QkIsIDB4MjEsIDB4ODIsIDB4RDEsIDB4RkUpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgyQywgMHhGMCwgMHg5QywgMHg4QiwgMHgxQSwgMHg0MiwgMHgzMCwgMHgwNiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDQzLCAweEQ2LCAweDQ5LCAweDgxLCAweDkyLCAweEYxLCAweEQwLCAweDkwKSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBicmFpbnBvb2xQNTEycjFfVF8yOV9ZW10gPSB7CisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEM5LCAweDkxLCAweDkzLCAweDZBLCAweEE2LCAweDIyLCAweEU5LCAweEQ2KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MDksIDB4REMsIDB4QzMsIDB4NjksIDB4MTEsIDB4OTUsIDB4N0QsIDB4RUMpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgxQywgMHhBMywgMHg5RCwgMHg4NywgMHg1RSwgMHg2NCwgMHg0MSwgMHhBMiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEJFLCAweDg3LCAweDVBLCAweDE1LCAweEJELCAweDZFLCAweDNDLCAweDhEKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RDAsIDB4OEQsIDB4NTAsIDB4Q0MsIDB4Q0YsIDB4QjcsIDB4OEYsIDB4MEIpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgzOCwgMHg2NSwgMHhDRCwgMHgzMSwgMHgzMCwgMHhGMSwgMHg2OCwgMHgxMyksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDEwLCAweDVDLCAweDY2LCAweDY3LCAweDkyLCAweDMwLCAweDU3LCAweDk1KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MjMsIDB4OUIsIDB4MDEsIDB4M0QsIDB4MjAsIDB4OEIsIDB4RDEsIDB4MEQpLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IGJyYWlucG9vbFA1MTJyMV9UXzMwX1hbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QUIsIDB4QzAsIDB4RTYsIDB4NEYsIDB4REUsIDB4NjIsIDB4QUIsIDB4QjMpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhBNCwgMHg0OCwgMHhCMywgMHgxQywgMHgwRiwgMHgxNiwgMHg5MywgMHg0NSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDc3LCAweDYzLCAweEJELCAweDFGLCAweDE2LCAweDUwLCAweDU2LCAweDk4KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NUQsIDB4MDYsIDB4QkMsIDB4RTksIDB4MjcsIDB4MUMsIDB4OUEsIDB4N0IpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhGOCwgMHhGRSwgMHgyMSwgMHhDNSwgMHgzOSwgMHg1NSwgMHhFMSwgMHhGRCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEY2LCAweEE4LCAweEQwLCAweDk2LCAweDBFLCAweEI1LCAweEIyLCAweDg0KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4M0QsIDB4RTcsIDB4NEIsIDB4RjMsIDB4MTEsIDB4MEMsIDB4QzksIDB4NUIpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg0MywgMHgzQSwgMHhDNCwgMHg4NywgMHg3MSwgMHhFRSwgMHhGQSwgMHgxOCksCit9Oworc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgYnJhaW5wb29sUDUxMnIxX1RfMzBfWVtdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhBNywgMHg3NywgMHhFRSwgMHg4MSwgMHg1RSwgMHg5NiwgMHhFQSwgMHg0QiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEVFLCAweERGLCAweEE5LCAweEY0LCAweDRGLCAweDdDLCAweEIyLCAweDQzKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4OUYsIDB4RDQsIDB4REYsIDB4MzUsIDB4NjMsIDB4NDcsIDB4MjUsIDB4OEEpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhBNSwgMHgzRCwgMHhGRiwgMHhBNCwgMHgwMiwgMHhDMywgMHg5NSwgMHgxMSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEQ1LCAweDEwLCAweDc4LCAweEQxLCAweDJCLCAweEI3LCAweEJFLCAweDBFKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MEEsIDB4RTksIDB4NTcsIDB4RjksIDB4RTAsIDB4RDgsIDB4RkMsIDB4QkMpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhGMywgMHhDNCwgMHgwMSwgMHhENiwgMHhCNCwgMHhFNywgMHg3OCwgMHhFMiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDAyLCAweDZDLCAweEI5LCAweDEzLCAweEE0LCAweEU4LCAweDZELCAweDZGKSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBicmFpbnBvb2xQNTEycjFfVF8zMV9YW10gPSB7CisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEU4LCAweEIwLCAweEM5LCAweENELCAweEJGLCAweEEyLCAweDFFLCAweDYzKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4REQsIDB4NEYsIDB4ODYsIDB4MjIsIDB4OUIsIDB4RUEsIDB4RTgsIDB4QkIpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg1MCwgMHg0NiwgMHhERiwgMHg0MywgMHhCOSwgMHg4MiwgMHgyRCwgMHgwQSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDA3LCAweDMyLCAweEYxLCAweDRFLCAweDk1LCAweDQxLCAweEFFLCAweDhFKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NTIsIDB4OTMsIDB4MjYsIDB4RkMsIDB4RDMsIDB4OTAsIDB4REMsIDB4RUIpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgwNCwgMHgwNSwgMHg0NSwgMHhDQSwgMHhGOSwgMHg1QSwgMHg4OSwgMHg5MyksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEM1LCAweDgyLCAweDYzLCAweDRFLCAweDU1LCAweDFELCAweDNBLCAweDA4KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4N0MsIDB4NjksIDB4NTIsIDB4NDksIDB4RTksIDB4RUQsIDB4NTcsIDB4MzQpLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IGJyYWlucG9vbFA1MTJyMV9UXzMxX1lbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NzAsIDB4NjQsIDB4RTksIDB4QUMsIDB4NEMsIDB4NEEsIDB4RUEsIDB4MjUpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhFOSwgMHhFOSwgMHgwQiwgMHg5OSwgMHhFNywgMHhGOSwgMHhBOSwgMHgyQyksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDI0LCAweDBDLCAweEMxLCAweEY0LCAweDhELCAweDA3LCAweEI2LCAweEIxKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QUQsIDB4NjgsIDB4RkEsIDB4MzUsIDB4RTQsIDB4OUUsIDB4QUUsIDB4RDkpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhGMCwgMHgyRCwgMHgxQSwgMHgxMywgMHg4RSwgMHgwMiwgMHhFMiwgMHg2MyksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDI3LCAweDM4LCAweDI4LCAweDg2LCAweDQ2LCAweDdCLCAweDNBLCAweEUxKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4M0YsIDB4NEMsIDB4NjQsIDB4NTksIDB4MEEsIDB4RjksIDB4MDIsIDB4QzQpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg0MSwgMHg0RiwgMHgyMywgMHhBMiwgMHhDMywgMHhENSwgMHhFRiwgMHg0MiksCit9Oworc3RhdGljIGNvbnN0IG1iZWR0bHNfZWNwX3BvaW50IGJyYWlucG9vbFA1MTJyMV9UWzMyXSA9IHsKKyAgICBFQ1BfUE9JTlRfSU5JVF9YWV9aMShicmFpbnBvb2xQNTEycjFfVF8wX1gsIGJyYWlucG9vbFA1MTJyMV9UXzBfWSksCisgICAgRUNQX1BPSU5UX0lOSVRfWFlfWjAoYnJhaW5wb29sUDUxMnIxX1RfMV9YLCBicmFpbnBvb2xQNTEycjFfVF8xX1kpLAorICAgIEVDUF9QT0lOVF9JTklUX1hZX1owKGJyYWlucG9vbFA1MTJyMV9UXzJfWCwgYnJhaW5wb29sUDUxMnIxX1RfMl9ZKSwKKyAgICBFQ1BfUE9JTlRfSU5JVF9YWV9aMChicmFpbnBvb2xQNTEycjFfVF8zX1gsIGJyYWlucG9vbFA1MTJyMV9UXzNfWSksCisgICAgRUNQX1BPSU5UX0lOSVRfWFlfWjAoYnJhaW5wb29sUDUxMnIxX1RfNF9YLCBicmFpbnBvb2xQNTEycjFfVF80X1kpLAorICAgIEVDUF9QT0lOVF9JTklUX1hZX1owKGJyYWlucG9vbFA1MTJyMV9UXzVfWCwgYnJhaW5wb29sUDUxMnIxX1RfNV9ZKSwKKyAgICBFQ1BfUE9JTlRfSU5JVF9YWV9aMChicmFpbnBvb2xQNTEycjFfVF82X1gsIGJyYWlucG9vbFA1MTJyMV9UXzZfWSksCisgICAgRUNQX1BPSU5UX0lOSVRfWFlfWjAoYnJhaW5wb29sUDUxMnIxX1RfN19YLCBicmFpbnBvb2xQNTEycjFfVF83X1kpLAorICAgIEVDUF9QT0lOVF9JTklUX1hZX1owKGJyYWlucG9vbFA1MTJyMV9UXzhfWCwgYnJhaW5wb29sUDUxMnIxX1RfOF9ZKSwKKyAgICBFQ1BfUE9JTlRfSU5JVF9YWV9aMChicmFpbnBvb2xQNTEycjFfVF85X1gsIGJyYWlucG9vbFA1MTJyMV9UXzlfWSksCisgICAgRUNQX1BPSU5UX0lOSVRfWFlfWjAoYnJhaW5wb29sUDUxMnIxX1RfMTBfWCwgYnJhaW5wb29sUDUxMnIxX1RfMTBfWSksCisgICAgRUNQX1BPSU5UX0lOSVRfWFlfWjAoYnJhaW5wb29sUDUxMnIxX1RfMTFfWCwgYnJhaW5wb29sUDUxMnIxX1RfMTFfWSksCisgICAgRUNQX1BPSU5UX0lOSVRfWFlfWjAoYnJhaW5wb29sUDUxMnIxX1RfMTJfWCwgYnJhaW5wb29sUDUxMnIxX1RfMTJfWSksCisgICAgRUNQX1BPSU5UX0lOSVRfWFlfWjAoYnJhaW5wb29sUDUxMnIxX1RfMTNfWCwgYnJhaW5wb29sUDUxMnIxX1RfMTNfWSksCisgICAgRUNQX1BPSU5UX0lOSVRfWFlfWjAoYnJhaW5wb29sUDUxMnIxX1RfMTRfWCwgYnJhaW5wb29sUDUxMnIxX1RfMTRfWSksCisgICAgRUNQX1BPSU5UX0lOSVRfWFlfWjAoYnJhaW5wb29sUDUxMnIxX1RfMTVfWCwgYnJhaW5wb29sUDUxMnIxX1RfMTVfWSksCisgICAgRUNQX1BPSU5UX0lOSVRfWFlfWjAoYnJhaW5wb29sUDUxMnIxX1RfMTZfWCwgYnJhaW5wb29sUDUxMnIxX1RfMTZfWSksCisgICAgRUNQX1BPSU5UX0lOSVRfWFlfWjAoYnJhaW5wb29sUDUxMnIxX1RfMTdfWCwgYnJhaW5wb29sUDUxMnIxX1RfMTdfWSksCisgICAgRUNQX1BPSU5UX0lOSVRfWFlfWjAoYnJhaW5wb29sUDUxMnIxX1RfMThfWCwgYnJhaW5wb29sUDUxMnIxX1RfMThfWSksCisgICAgRUNQX1BPSU5UX0lOSVRfWFlfWjAoYnJhaW5wb29sUDUxMnIxX1RfMTlfWCwgYnJhaW5wb29sUDUxMnIxX1RfMTlfWSksCisgICAgRUNQX1BPSU5UX0lOSVRfWFlfWjAoYnJhaW5wb29sUDUxMnIxX1RfMjBfWCwgYnJhaW5wb29sUDUxMnIxX1RfMjBfWSksCisgICAgRUNQX1BPSU5UX0lOSVRfWFlfWjAoYnJhaW5wb29sUDUxMnIxX1RfMjFfWCwgYnJhaW5wb29sUDUxMnIxX1RfMjFfWSksCisgICAgRUNQX1BPSU5UX0lOSVRfWFlfWjAoYnJhaW5wb29sUDUxMnIxX1RfMjJfWCwgYnJhaW5wb29sUDUxMnIxX1RfMjJfWSksCisgICAgRUNQX1BPSU5UX0lOSVRfWFlfWjAoYnJhaW5wb29sUDUxMnIxX1RfMjNfWCwgYnJhaW5wb29sUDUxMnIxX1RfMjNfWSksCisgICAgRUNQX1BPSU5UX0lOSVRfWFlfWjAoYnJhaW5wb29sUDUxMnIxX1RfMjRfWCwgYnJhaW5wb29sUDUxMnIxX1RfMjRfWSksCisgICAgRUNQX1BPSU5UX0lOSVRfWFlfWjAoYnJhaW5wb29sUDUxMnIxX1RfMjVfWCwgYnJhaW5wb29sUDUxMnIxX1RfMjVfWSksCisgICAgRUNQX1BPSU5UX0lOSVRfWFlfWjAoYnJhaW5wb29sUDUxMnIxX1RfMjZfWCwgYnJhaW5wb29sUDUxMnIxX1RfMjZfWSksCisgICAgRUNQX1BPSU5UX0lOSVRfWFlfWjAoYnJhaW5wb29sUDUxMnIxX1RfMjdfWCwgYnJhaW5wb29sUDUxMnIxX1RfMjdfWSksCisgICAgRUNQX1BPSU5UX0lOSVRfWFlfWjAoYnJhaW5wb29sUDUxMnIxX1RfMjhfWCwgYnJhaW5wb29sUDUxMnIxX1RfMjhfWSksCisgICAgRUNQX1BPSU5UX0lOSVRfWFlfWjAoYnJhaW5wb29sUDUxMnIxX1RfMjlfWCwgYnJhaW5wb29sUDUxMnIxX1RfMjlfWSksCisgICAgRUNQX1BPSU5UX0lOSVRfWFlfWjAoYnJhaW5wb29sUDUxMnIxX1RfMzBfWCwgYnJhaW5wb29sUDUxMnIxX1RfMzBfWSksCisgICAgRUNQX1BPSU5UX0lOSVRfWFlfWjAoYnJhaW5wb29sUDUxMnIxX1RfMzFfWCwgYnJhaW5wb29sUDUxMnIxX1RfMzFfWSksCit9OworI2Vsc2UKKyNkZWZpbmUgYnJhaW5wb29sUDUxMnIxX1QgTlVMTAorI2VuZGlmCisjZW5kaWYgLyogTUJFRFRMU19FQ1BfRFBfQlA1MTJSMV9FTkFCTEVEICovCisKKyNpZiBkZWZpbmVkKEVDUF9MT0FEX0dST1VQKQorLyoKKyAqIENyZWF0ZSBhbiBNUEkgZnJvbSBlbWJlZGRlZCBjb25zdGFudHMKKyAqIChhc3N1bWVzIGxlbiBpcyBhbiBleGFjdCBtdWx0aXBsZSBvZiBzaXplb2YobWJlZHRsc19tcGlfdWludCkpCisgKi8KK3N0YXRpYyBpbmxpbmUgdm9pZCBlY3BfbXBpX2xvYWQobWJlZHRsc19tcGkgKlgsIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgKnAsIHNpemVfdCBsZW4pCit7CisgICAgWC0+cyA9IDE7CisgICAgWC0+biA9ICh1bnNpZ25lZCBzaG9ydCkgKGxlbiAvIHNpemVvZihtYmVkdGxzX21waV91aW50KSk7CisgICAgWC0+cCA9IChtYmVkdGxzX21waV91aW50ICopIHA7Cit9CisKKy8qCisgKiBTZXQgYW4gTVBJIHRvIHN0YXRpYyB2YWx1ZSAxCisgKi8KK3N0YXRpYyBpbmxpbmUgdm9pZCBlY3BfbXBpX3NldDEobWJlZHRsc19tcGkgKlgpCit7CisgICAgWC0+cyA9IDE7CisgICAgWC0+biA9IDE7CisgICAgWC0+cCA9IChtYmVkdGxzX21waV91aW50ICopIG1waV9vbmU7IC8qIFgtPnAgd2lsbCBub3QgYmUgbW9kaWZpZWQgc28gdGhlIGNhc3QgaXMgc2FmZSAqLworfQorCisvKgorICogTWFrZSBncm91cCBhdmFpbGFibGUgZnJvbSBlbWJlZGRlZCBjb25zdGFudHMKKyAqLworc3RhdGljIGludCBlY3BfZ3JvdXBfbG9hZChtYmVkdGxzX2VjcF9ncm91cCAqZ3JwLAorICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBtYmVkdGxzX21waV91aW50ICpwLCAgc2l6ZV90IHBsZW4sCisgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgKmEsICBzaXplX3QgYWxlbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbWJlZHRsc19tcGlfdWludCAqYiwgIHNpemVfdCBibGVuLAorICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBtYmVkdGxzX21waV91aW50ICpneCwgc2l6ZV90IGd4bGVuLAorICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBtYmVkdGxzX21waV91aW50ICpneSwgc2l6ZV90IGd5bGVuLAorICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBtYmVkdGxzX21waV91aW50ICpuLCAgc2l6ZV90IG5sZW4sCisgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IG1iZWR0bHNfZWNwX3BvaW50ICpUKQoreworICAgIGVjcF9tcGlfbG9hZCgmZ3JwLT5QLCBwLCBwbGVuKTsKKyAgICBpZiAoYSAhPSBOVUxMKSB7CisgICAgICAgIGVjcF9tcGlfbG9hZCgmZ3JwLT5BLCBhLCBhbGVuKTsKKyAgICB9CisgICAgZWNwX21waV9sb2FkKCZncnAtPkIsIGIsIGJsZW4pOworICAgIGVjcF9tcGlfbG9hZCgmZ3JwLT5OLCBuLCBubGVuKTsKKworICAgIGVjcF9tcGlfbG9hZCgmZ3JwLT5HLlgsIGd4LCBneGxlbik7CisgICAgZWNwX21waV9sb2FkKCZncnAtPkcuWSwgZ3ksIGd5bGVuKTsKKyAgICBlY3BfbXBpX3NldDEoJmdycC0+Ry5aKTsKKworICAgIGdycC0+cGJpdHMgPSBtYmVkdGxzX21waV9iaXRsZW4oJmdycC0+UCk7CisgICAgZ3JwLT5uYml0cyA9IG1iZWR0bHNfbXBpX2JpdGxlbigmZ3JwLT5OKTsKKworICAgIGdycC0+aCA9IDE7CisKKyAgICBncnAtPlQgPSAobWJlZHRsc19lY3BfcG9pbnQgKikgVDsKKyAgICAvKgorICAgICAqIFNldCBUX3NpemUgdG8gMCB0byBwcmV2ZW50IFQgZnJlZSBieSBtYmVkdGxzX2VjcF9ncm91cF9mcmVlLgorICAgICAqLworICAgIGdycC0+VF9zaXplID0gMDsKKworICAgIHJldHVybiAwOworfQorI2VuZGlmIC8qIEVDUF9MT0FEX0dST1VQICovCisKKyNpZiBkZWZpbmVkKE1CRURUTFNfRUNQX05JU1RfT1BUSU0pCisvKiBGb3J3YXJkIGRlY2xhcmF0aW9ucyAqLworI2lmIGRlZmluZWQoTUJFRFRMU19FQ1BfRFBfU0VDUDE5MlIxX0VOQUJMRUQpCitzdGF0aWMgaW50IGVjcF9tb2RfcDE5MihtYmVkdGxzX21waSAqKTsKKyNlbmRpZgorI2lmIGRlZmluZWQoTUJFRFRMU19FQ1BfRFBfU0VDUDIyNFIxX0VOQUJMRUQpCitzdGF0aWMgaW50IGVjcF9tb2RfcDIyNChtYmVkdGxzX21waSAqKTsKKyNlbmRpZgorI2lmIGRlZmluZWQoTUJFRFRMU19FQ1BfRFBfU0VDUDI1NlIxX0VOQUJMRUQpCitzdGF0aWMgaW50IGVjcF9tb2RfcDI1NihtYmVkdGxzX21waSAqKTsKKyNlbmRpZgorI2lmIGRlZmluZWQoTUJFRFRMU19FQ1BfRFBfU0VDUDM4NFIxX0VOQUJMRUQpCitzdGF0aWMgaW50IGVjcF9tb2RfcDM4NChtYmVkdGxzX21waSAqKTsKKyNlbmRpZgorI2lmIGRlZmluZWQoTUJFRFRMU19FQ1BfRFBfU0VDUDUyMVIxX0VOQUJMRUQpCitzdGF0aWMgaW50IGVjcF9tb2RfcDUyMShtYmVkdGxzX21waSAqKTsKKyNlbmRpZgorCisjZGVmaW5lIE5JU1RfTU9EUChQKSAgICAgIGdycC0+bW9kcCA9IGVjcF9tb2RfICMjIFA7CisjZWxzZQorI2RlZmluZSBOSVNUX01PRFAoUCkKKyNlbmRpZiAvKiBNQkVEVExTX0VDUF9OSVNUX09QVElNICovCisKKy8qIEFkZGl0aW9uYWwgZm9yd2FyZCBkZWNsYXJhdGlvbnMgKi8KKyNpZiBkZWZpbmVkKE1CRURUTFNfRUNQX0RQX0NVUlZFMjU1MTlfRU5BQkxFRCkKK3N0YXRpYyBpbnQgZWNwX21vZF9wMjU1KG1iZWR0bHNfbXBpICopOworI2VuZGlmCisjaWYgZGVmaW5lZChNQkVEVExTX0VDUF9EUF9DVVJWRTQ0OF9FTkFCTEVEKQorc3RhdGljIGludCBlY3BfbW9kX3A0NDgobWJlZHRsc19tcGkgKik7CisjZW5kaWYKKyNpZiBkZWZpbmVkKE1CRURUTFNfRUNQX0RQX1NFQ1AxOTJLMV9FTkFCTEVEKQorc3RhdGljIGludCBlY3BfbW9kX3AxOTJrMShtYmVkdGxzX21waSAqKTsKKyNlbmRpZgorI2lmIGRlZmluZWQoTUJFRFRMU19FQ1BfRFBfU0VDUDIyNEsxX0VOQUJMRUQpCitzdGF0aWMgaW50IGVjcF9tb2RfcDIyNGsxKG1iZWR0bHNfbXBpICopOworI2VuZGlmCisjaWYgZGVmaW5lZChNQkVEVExTX0VDUF9EUF9TRUNQMjU2SzFfRU5BQkxFRCkKK3N0YXRpYyBpbnQgZWNwX21vZF9wMjU2azEobWJlZHRsc19tcGkgKik7CisjZW5kaWYKKworI2lmIGRlZmluZWQoRUNQX0xPQURfR1JPVVApCisjZGVmaW5lIExPQURfR1JPVVBfQShHKSAgIGVjcF9ncm91cF9sb2FkKGdycCwgICAgICAgICAgICBcCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEcgIyMgX3AsICBzaXplb2YoRyAjIyBfcCksICAgXAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHICMjIF9hLCAgc2l6ZW9mKEcgIyMgX2EpLCAgIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRyAjIyBfYiwgIHNpemVvZihHICMjIF9iKSwgICBcCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEcgIyMgX2d4LCBzaXplb2YoRyAjIyBfZ3gpLCAgIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRyAjIyBfZ3ksIHNpemVvZihHICMjIF9neSksICAgXAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHICMjIF9uLCAgc2l6ZW9mKEcgIyMgX24pLCAgIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRyAjIyBfVCAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkKKworI2RlZmluZSBMT0FEX0dST1VQKEcpICAgICBlY3BfZ3JvdXBfbG9hZChncnAsICAgICAgICAgICAgXAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHICMjIF9wLCAgc2l6ZW9mKEcgIyMgX3ApLCAgIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCwgICAgIDAsICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEcgIyMgX2IsICBzaXplb2YoRyAjIyBfYiksICAgXAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHICMjIF9neCwgc2l6ZW9mKEcgIyMgX2d4KSwgICBcCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEcgIyMgX2d5LCBzaXplb2YoRyAjIyBfZ3kpLCAgIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRyAjIyBfbiwgIHNpemVvZihHICMjIF9uKSwgICBcCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEcgIyMgX1QgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApCisjZW5kaWYgLyogRUNQX0xPQURfR1JPVVAgKi8KKworI2lmIGRlZmluZWQoTUJFRFRMU19FQ1BfRFBfQ1VSVkUyNTUxOV9FTkFCTEVEKQorLyogQ29uc3RhbnRzIHVzZWQgYnkgZWNwX3VzZV9jdXJ2ZTI1NTE5KCkgKi8KK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV9zaW50IGN1cnZlMjU1MTlfYTI0ID0gMHgwMURCNDI7CitzdGF0aWMgY29uc3QgdW5zaWduZWQgY2hhciBjdXJ2ZTI1NTE5X3BhcnRfb2ZfbltdID0geworICAgIDB4MTQsIDB4REUsIDB4RjksIDB4REUsIDB4QTIsIDB4RjcsIDB4OUMsIDB4RDYsCisgICAgMHg1OCwgMHgxMiwgMHg2MywgMHgxQSwgMHg1QywgMHhGNSwgMHhEMywgMHhFRCwKK307CisKKy8qCisgKiBTcGVjaWFsaXplZCBmdW5jdGlvbiBmb3IgY3JlYXRpbmcgdGhlIEN1cnZlMjU1MTkgZ3JvdXAKKyAqLworc3RhdGljIGludCBlY3BfdXNlX2N1cnZlMjU1MTkobWJlZHRsc19lY3BfZ3JvdXAgKmdycCkKK3sKKyAgICBpbnQgcmV0ID0gTUJFRFRMU19FUlJfRVJST1JfQ09SUlVQVElPTl9ERVRFQ1RFRDsKKworICAgIC8qIEFjdHVhbGx5ICggQSArIDIgKSAvIDQgKi8KKyAgICBNQkVEVExTX01QSV9DSEsobWJlZHRsc19tcGlfbHNldCgmZ3JwLT5BLCBjdXJ2ZTI1NTE5X2EyNCkpOworCisgICAgLyogUCA9IDJeMjU1IC0gMTkgKi8KKyAgICBNQkVEVExTX01QSV9DSEsobWJlZHRsc19tcGlfbHNldCgmZ3JwLT5QLCAxKSk7CisgICAgTUJFRFRMU19NUElfQ0hLKG1iZWR0bHNfbXBpX3NoaWZ0X2woJmdycC0+UCwgMjU1KSk7CisgICAgTUJFRFRMU19NUElfQ0hLKG1iZWR0bHNfbXBpX3N1Yl9pbnQoJmdycC0+UCwgJmdycC0+UCwgMTkpKTsKKyAgICBncnAtPnBiaXRzID0gbWJlZHRsc19tcGlfYml0bGVuKCZncnAtPlApOworCisgICAgLyogTiA9IDJeMjUyICsgMjc3NDIzMTc3NzczNzIzNTM1MzU4NTE5Mzc3OTA4ODM2NDg0OTMgKi8KKyAgICBNQkVEVExTX01QSV9DSEsobWJlZHRsc19tcGlfcmVhZF9iaW5hcnkoJmdycC0+TiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3VydmUyNTUxOV9wYXJ0X29mX24sIHNpemVvZihjdXJ2ZTI1NTE5X3BhcnRfb2ZfbikpKTsKKyAgICBNQkVEVExTX01QSV9DSEsobWJlZHRsc19tcGlfc2V0X2JpdCgmZ3JwLT5OLCAyNTIsIDEpKTsKKworICAgIC8qIFkgaW50ZW50aW9uYWxseSBub3Qgc2V0LCBzaW5jZSB3ZSB1c2UgeC96IGNvb3JkaW5hdGVzLgorICAgICAqIFRoaXMgaXMgdXNlZCBhcyBhIG1hcmtlciB0byBpZGVudGlmeSBNb250Z29tZXJ5IGN1cnZlcyEgKi8KKyAgICBNQkVEVExTX01QSV9DSEsobWJlZHRsc19tcGlfbHNldCgmZ3JwLT5HLlgsIDkpKTsKKyAgICBNQkVEVExTX01QSV9DSEsobWJlZHRsc19tcGlfbHNldCgmZ3JwLT5HLlosIDEpKTsKKyAgICBtYmVkdGxzX21waV9mcmVlKCZncnAtPkcuWSk7CisKKyAgICAvKiBBY3R1YWxseSwgdGhlIHJlcXVpcmVkIG1zYiBmb3IgcHJpdmF0ZSBrZXlzICovCisgICAgZ3JwLT5uYml0cyA9IDI1NDsKKworY2xlYW51cDoKKyAgICBpZiAocmV0ICE9IDApIHsKKyAgICAgICAgbWJlZHRsc19lY3BfZ3JvdXBfZnJlZShncnApOworICAgIH0KKworICAgIHJldHVybiByZXQ7Cit9CisjZW5kaWYgLyogTUJFRFRMU19FQ1BfRFBfQ1VSVkUyNTUxOV9FTkFCTEVEICovCisKKyNpZiBkZWZpbmVkKE1CRURUTFNfRUNQX0RQX0NVUlZFNDQ4X0VOQUJMRUQpCisvKiBDb25zdGFudHMgdXNlZCBieSBlY3BfdXNlX2N1cnZlNDQ4KCkgKi8KK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV9zaW50IGN1cnZlNDQ4X2EyNCA9IDB4OThBQTsKK3N0YXRpYyBjb25zdCB1bnNpZ25lZCBjaGFyIGN1cnZlNDQ4X3BhcnRfb2ZfbltdID0geworICAgIDB4ODMsIDB4MzUsIDB4REMsIDB4MTYsIDB4M0IsIDB4QjEsIDB4MjQsCisgICAgMHhCNiwgMHg1MSwgMHgyOSwgMHhDOSwgMHg2RiwgMHhERSwgMHg5MywKKyAgICAweDNELCAweDhELCAweDcyLCAweDNBLCAweDcwLCAweEFBLCAweERDLAorICAgIDB4ODcsIDB4M0QsIDB4NkQsIDB4NTQsIDB4QTcsIDB4QkIsIDB4MEQsCit9OworCisvKgorICogU3BlY2lhbGl6ZWQgZnVuY3Rpb24gZm9yIGNyZWF0aW5nIHRoZSBDdXJ2ZTQ0OCBncm91cAorICovCitzdGF0aWMgaW50IGVjcF91c2VfY3VydmU0NDgobWJlZHRsc19lY3BfZ3JvdXAgKmdycCkKK3sKKyAgICBtYmVkdGxzX21waSBOczsKKyAgICBpbnQgcmV0ID0gTUJFRFRMU19FUlJfRVJST1JfQ09SUlVQVElPTl9ERVRFQ1RFRDsKKworICAgIG1iZWR0bHNfbXBpX2luaXQoJk5zKTsKKworICAgIC8qIEFjdHVhbGx5ICggQSArIDIgKSAvIDQgKi8KKyAgICBNQkVEVExTX01QSV9DSEsobWJlZHRsc19tcGlfbHNldCgmZ3JwLT5BLCBjdXJ2ZTQ0OF9hMjQpKTsKKworICAgIC8qIFAgPSAyXjQ0OCAtIDJeMjI0IC0gMSAqLworICAgIE1CRURUTFNfTVBJX0NISyhtYmVkdGxzX21waV9sc2V0KCZncnAtPlAsIDEpKTsKKyAgICBNQkVEVExTX01QSV9DSEsobWJlZHRsc19tcGlfc2hpZnRfbCgmZ3JwLT5QLCAyMjQpKTsKKyAgICBNQkVEVExTX01QSV9DSEsobWJlZHRsc19tcGlfc3ViX2ludCgmZ3JwLT5QLCAmZ3JwLT5QLCAxKSk7CisgICAgTUJFRFRMU19NUElfQ0hLKG1iZWR0bHNfbXBpX3NoaWZ0X2woJmdycC0+UCwgMjI0KSk7CisgICAgTUJFRFRMU19NUElfQ0hLKG1iZWR0bHNfbXBpX3N1Yl9pbnQoJmdycC0+UCwgJmdycC0+UCwgMSkpOworICAgIGdycC0+cGJpdHMgPSBtYmVkdGxzX21waV9iaXRsZW4oJmdycC0+UCk7CisKKyAgICAvKiBZIGludGVudGlvbmFsbHkgbm90IHNldCwgc2luY2Ugd2UgdXNlIHgveiBjb29yZGluYXRlcy4KKyAgICAgKiBUaGlzIGlzIHVzZWQgYXMgYSBtYXJrZXIgdG8gaWRlbnRpZnkgTW9udGdvbWVyeSBjdXJ2ZXMhICovCisgICAgTUJFRFRMU19NUElfQ0hLKG1iZWR0bHNfbXBpX2xzZXQoJmdycC0+Ry5YLCA1KSk7CisgICAgTUJFRFRMU19NUElfQ0hLKG1iZWR0bHNfbXBpX2xzZXQoJmdycC0+Ry5aLCAxKSk7CisgICAgbWJlZHRsc19tcGlfZnJlZSgmZ3JwLT5HLlkpOworCisgICAgLyogTiA9IDJeNDQ2IC0gMTM4MTgwNjY4MDk4OTUxMTUzNTIwMDczODY3NDg1MTU0MjY4ODAzMzY2OTI0NzQ4ODIxNzg2MDk4OTQ1NDc1MDM4ODUgKi8KKyAgICBNQkVEVExTX01QSV9DSEsobWJlZHRsc19tcGlfc2V0X2JpdCgmZ3JwLT5OLCA0NDYsIDEpKTsKKyAgICBNQkVEVExTX01QSV9DSEsobWJlZHRsc19tcGlfcmVhZF9iaW5hcnkoJk5zLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdXJ2ZTQ0OF9wYXJ0X29mX24sIHNpemVvZihjdXJ2ZTQ0OF9wYXJ0X29mX24pKSk7CisgICAgTUJFRFRMU19NUElfQ0hLKG1iZWR0bHNfbXBpX3N1Yl9tcGkoJmdycC0+TiwgJmdycC0+TiwgJk5zKSk7CisKKyAgICAvKiBBY3R1YWxseSwgdGhlIHJlcXVpcmVkIG1zYiBmb3IgcHJpdmF0ZSBrZXlzICovCisgICAgZ3JwLT5uYml0cyA9IDQ0NzsKKworY2xlYW51cDoKKyAgICBtYmVkdGxzX21waV9mcmVlKCZOcyk7CisgICAgaWYgKHJldCAhPSAwKSB7CisgICAgICAgIG1iZWR0bHNfZWNwX2dyb3VwX2ZyZWUoZ3JwKTsKKyAgICB9CisKKyAgICByZXR1cm4gcmV0OworfQorI2VuZGlmIC8qIE1CRURUTFNfRUNQX0RQX0NVUlZFNDQ4X0VOQUJMRUQgKi8KKworLyoKKyAqIFNldCBhIGdyb3VwIHVzaW5nIHdlbGwta25vd24gZG9tYWluIHBhcmFtZXRlcnMKKyAqLworaW50IG1iZWR0bHNfZWNwX2dyb3VwX2xvYWQobWJlZHRsc19lY3BfZ3JvdXAgKmdycCwgbWJlZHRsc19lY3BfZ3JvdXBfaWQgaWQpCit7CisgICAgbWJlZHRsc19lY3BfZ3JvdXBfZnJlZShncnApOworCisgICAgbWJlZHRsc19lY3BfZ3JvdXBfaW5pdChncnApOworCisgICAgZ3JwLT5pZCA9IGlkOworCisgICAgc3dpdGNoIChpZCkgeworI2lmIGRlZmluZWQoTUJFRFRMU19FQ1BfRFBfU0VDUDE5MlIxX0VOQUJMRUQpCisgICAgICAgIGNhc2UgTUJFRFRMU19FQ1BfRFBfU0VDUDE5MlIxOgorICAgICAgICAgICAgTklTVF9NT0RQKHAxOTIpOworICAgICAgICAgICAgcmV0dXJuIExPQURfR1JPVVAoc2VjcDE5MnIxKTsKKyNlbmRpZiAvKiBNQkVEVExTX0VDUF9EUF9TRUNQMTkyUjFfRU5BQkxFRCAqLworCisjaWYgZGVmaW5lZChNQkVEVExTX0VDUF9EUF9TRUNQMjI0UjFfRU5BQkxFRCkKKyAgICAgICAgY2FzZSBNQkVEVExTX0VDUF9EUF9TRUNQMjI0UjE6CisgICAgICAgICAgICBOSVNUX01PRFAocDIyNCk7CisgICAgICAgICAgICByZXR1cm4gTE9BRF9HUk9VUChzZWNwMjI0cjEpOworI2VuZGlmIC8qIE1CRURUTFNfRUNQX0RQX1NFQ1AyMjRSMV9FTkFCTEVEICovCisKKyNpZiBkZWZpbmVkKE1CRURUTFNfRUNQX0RQX1NFQ1AyNTZSMV9FTkFCTEVEKQorICAgICAgICBjYXNlIE1CRURUTFNfRUNQX0RQX1NFQ1AyNTZSMToKKyAgICAgICAgICAgIE5JU1RfTU9EUChwMjU2KTsKKyAgICAgICAgICAgIHJldHVybiBMT0FEX0dST1VQKHNlY3AyNTZyMSk7CisjZW5kaWYgLyogTUJFRFRMU19FQ1BfRFBfU0VDUDI1NlIxX0VOQUJMRUQgKi8KKworI2lmIGRlZmluZWQoTUJFRFRMU19FQ1BfRFBfU0VDUDM4NFIxX0VOQUJMRUQpCisgICAgICAgIGNhc2UgTUJFRFRMU19FQ1BfRFBfU0VDUDM4NFIxOgorICAgICAgICAgICAgTklTVF9NT0RQKHAzODQpOworICAgICAgICAgICAgcmV0dXJuIExPQURfR1JPVVAoc2VjcDM4NHIxKTsKKyNlbmRpZiAvKiBNQkVEVExTX0VDUF9EUF9TRUNQMzg0UjFfRU5BQkxFRCAqLworCisjaWYgZGVmaW5lZChNQkVEVExTX0VDUF9EUF9TRUNQNTIxUjFfRU5BQkxFRCkKKyAgICAgICAgY2FzZSBNQkVEVExTX0VDUF9EUF9TRUNQNTIxUjE6CisgICAgICAgICAgICBOSVNUX01PRFAocDUyMSk7CisgICAgICAgICAgICByZXR1cm4gTE9BRF9HUk9VUChzZWNwNTIxcjEpOworI2VuZGlmIC8qIE1CRURUTFNfRUNQX0RQX1NFQ1A1MjFSMV9FTkFCTEVEICovCisKKyNpZiBkZWZpbmVkKE1CRURUTFNfRUNQX0RQX1NFQ1AxOTJLMV9FTkFCTEVEKQorICAgICAgICBjYXNlIE1CRURUTFNfRUNQX0RQX1NFQ1AxOTJLMToKKyAgICAgICAgICAgIGdycC0+bW9kcCA9IGVjcF9tb2RfcDE5MmsxOworICAgICAgICAgICAgcmV0dXJuIExPQURfR1JPVVBfQShzZWNwMTkyazEpOworI2VuZGlmIC8qIE1CRURUTFNfRUNQX0RQX1NFQ1AxOTJLMV9FTkFCTEVEICovCisKKyNpZiBkZWZpbmVkKE1CRURUTFNfRUNQX0RQX1NFQ1AyMjRLMV9FTkFCTEVEKQorICAgICAgICBjYXNlIE1CRURUTFNfRUNQX0RQX1NFQ1AyMjRLMToKKyAgICAgICAgICAgIGdycC0+bW9kcCA9IGVjcF9tb2RfcDIyNGsxOworICAgICAgICAgICAgcmV0dXJuIExPQURfR1JPVVBfQShzZWNwMjI0azEpOworI2VuZGlmIC8qIE1CRURUTFNfRUNQX0RQX1NFQ1AyMjRLMV9FTkFCTEVEICovCisKKyNpZiBkZWZpbmVkKE1CRURUTFNfRUNQX0RQX1NFQ1AyNTZLMV9FTkFCTEVEKQorICAgICAgICBjYXNlIE1CRURUTFNfRUNQX0RQX1NFQ1AyNTZLMToKKyAgICAgICAgICAgIGdycC0+bW9kcCA9IGVjcF9tb2RfcDI1NmsxOworICAgICAgICAgICAgcmV0dXJuIExPQURfR1JPVVBfQShzZWNwMjU2azEpOworI2VuZGlmIC8qIE1CRURUTFNfRUNQX0RQX1NFQ1AyNTZLMV9FTkFCTEVEICovCisKKyNpZiBkZWZpbmVkKE1CRURUTFNfRUNQX0RQX0JQMjU2UjFfRU5BQkxFRCkKKyAgICAgICAgY2FzZSBNQkVEVExTX0VDUF9EUF9CUDI1NlIxOgorICAgICAgICAgICAgcmV0dXJuIExPQURfR1JPVVBfQShicmFpbnBvb2xQMjU2cjEpOworI2VuZGlmIC8qIE1CRURUTFNfRUNQX0RQX0JQMjU2UjFfRU5BQkxFRCAqLworCisjaWYgZGVmaW5lZChNQkVEVExTX0VDUF9EUF9CUDM4NFIxX0VOQUJMRUQpCisgICAgICAgIGNhc2UgTUJFRFRMU19FQ1BfRFBfQlAzODRSMToKKyAgICAgICAgICAgIHJldHVybiBMT0FEX0dST1VQX0EoYnJhaW5wb29sUDM4NHIxKTsKKyNlbmRpZiAvKiBNQkVEVExTX0VDUF9EUF9CUDM4NFIxX0VOQUJMRUQgKi8KKworI2lmIGRlZmluZWQoTUJFRFRMU19FQ1BfRFBfQlA1MTJSMV9FTkFCTEVEKQorICAgICAgICBjYXNlIE1CRURUTFNfRUNQX0RQX0JQNTEyUjE6CisgICAgICAgICAgICByZXR1cm4gTE9BRF9HUk9VUF9BKGJyYWlucG9vbFA1MTJyMSk7CisjZW5kaWYgLyogTUJFRFRMU19FQ1BfRFBfQlA1MTJSMV9FTkFCTEVEICovCisKKyNpZiBkZWZpbmVkKE1CRURUTFNfRUNQX0RQX0NVUlZFMjU1MTlfRU5BQkxFRCkKKyAgICAgICAgY2FzZSBNQkVEVExTX0VDUF9EUF9DVVJWRTI1NTE5OgorICAgICAgICAgICAgZ3JwLT5tb2RwID0gZWNwX21vZF9wMjU1OworICAgICAgICAgICAgcmV0dXJuIGVjcF91c2VfY3VydmUyNTUxOShncnApOworI2VuZGlmIC8qIE1CRURUTFNfRUNQX0RQX0NVUlZFMjU1MTlfRU5BQkxFRCAqLworCisjaWYgZGVmaW5lZChNQkVEVExTX0VDUF9EUF9DVVJWRTQ0OF9FTkFCTEVEKQorICAgICAgICBjYXNlIE1CRURUTFNfRUNQX0RQX0NVUlZFNDQ4OgorICAgICAgICAgICAgZ3JwLT5tb2RwID0gZWNwX21vZF9wNDQ4OworICAgICAgICAgICAgcmV0dXJuIGVjcF91c2VfY3VydmU0NDgoZ3JwKTsKKyNlbmRpZiAvKiBNQkVEVExTX0VDUF9EUF9DVVJWRTQ0OF9FTkFCTEVEICovCisKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIGdycC0+aWQgPSBNQkVEVExTX0VDUF9EUF9OT05FOworICAgICAgICAgICAgcmV0dXJuIE1CRURUTFNfRVJSX0VDUF9GRUFUVVJFX1VOQVZBSUxBQkxFOworICAgIH0KK30KKworI2lmIGRlZmluZWQoTUJFRFRMU19FQ1BfTklTVF9PUFRJTSkKKy8qCisgKiBGYXN0IHJlZHVjdGlvbiBtb2R1bG8gdGhlIHByaW1lcyB1c2VkIGJ5IHRoZSBOSVNUIGN1cnZlcy4KKyAqCisgKiBUaGVzZSBmdW5jdGlvbnMgYXJlIGNyaXRpY2FsIGZvciBzcGVlZCwgYnV0IG5vdCBuZWVkZWQgZm9yIGNvcnJlY3QKKyAqIG9wZXJhdGlvbnMuIFNvLCB3ZSBtYWtlIHRoZSBjaG9pY2UgdG8gaGVhdmlseSByZWx5IG9uIHRoZSBpbnRlcm5hbHMgb2Ygb3VyCisgKiBiaWdudW0gbGlicmFyeSwgd2hpY2ggY3JlYXRlcyBhIHRpZ2h0IGNvdXBsaW5nIGJldHdlZW4gdGhlc2UgZnVuY3Rpb25zIGFuZAorICogb3VyIE1QSSBpbXBsZW1lbnRhdGlvbi4gIEhvd2V2ZXIsIHRoZSBjb3VwbGluZyBiZXR3ZWVuIHRoZSBFQ1AgbW9kdWxlIGFuZAorICogTVBJIHJlbWFpbnMgbG9vc2UsIHNpbmNlIHRoZXNlIGZ1bmN0aW9ucyBjYW4gYmUgZGVhY3RpdmF0ZWQgYXQgd2lsbC4KKyAqLworCisjaWYgZGVmaW5lZChNQkVEVExTX0VDUF9EUF9TRUNQMTkyUjFfRU5BQkxFRCkKKy8qCisgKiBDb21wYXJlZCB0byB0aGUgd2F5IHRoaW5ncyBhcmUgcHJlc2VudGVkIGluIEZJUFMgMTg2LTMgRC4yLAorICogd2UgcHJvY2VlZCBpbiBjb2x1bW5zLCBmcm9tIHJpZ2h0IChsZWFzdCBzaWduaWZpY2FudCBjaHVuaykgdG8gbGVmdCwKKyAqIGFkZGluZyBjaHVua3MgdG8gTiBpbiBwbGFjZSwgYW5kIGtlZXBpbmcgYSBjYXJyeSBmb3IgdGhlIG5leHQgY2h1bmsuCisgKiBUaGlzIGF2b2lkcyBtb3ZpbmcgdGhpbmdzIGFyb3VuZCBpbiBtZW1vcnksIGFuZCB1c2VsZXNzbHkgYWRkaW5nIHplcm9zLAorICogY29tcGFyZWQgdG8gdGhlIG1vcmUgc3RyYWlnaHRmb3J3YXJkLCBsaW5lLW9yaWVudGVkIGFwcHJvYWNoLgorICoKKyAqIEZvciB0aGlzIHByaW1lIHdlIG5lZWQgdG8gaGFuZGxlIGRhdGEgaW4gY2h1bmtzIG9mIDY0IGJpdHMuCisgKiBTaW5jZSB0aGlzIGlzIGFsd2F5cyBhIG11bHRpcGxlIG9mIG91ciBiYXNpYyBtYmVkdGxzX21waV91aW50LCB3ZSBjYW4KKyAqIHVzZSBhIG1iZWR0bHNfbXBpX3VpbnQgKiB0byBkZXNpZ25hdGUgc3VjaCBhIGNodW5rLCBhbmQgc21hbGwgbG9vcHMgdG8gaGFuZGxlIGl0LgorICovCisKKy8qIEFkZCA2NC1iaXQgY2h1bmtzIChkc3QgKz0gc3JjKSBhbmQgdXBkYXRlIGNhcnJ5ICovCitzdGF0aWMgaW5saW5lIHZvaWQgYWRkNjQobWJlZHRsc19tcGlfdWludCAqZHN0LCBtYmVkdGxzX21waV91aW50ICpzcmMsIG1iZWR0bHNfbXBpX3VpbnQgKmNhcnJ5KQoreworICAgIHVuc2lnbmVkIGNoYXIgaTsKKyAgICBtYmVkdGxzX21waV91aW50IGMgPSAwOworICAgIGZvciAoaSA9IDA7IGkgPCA4IC8gc2l6ZW9mKG1iZWR0bHNfbXBpX3VpbnQpOyBpKyssIGRzdCsrLCBzcmMrKykgeworICAgICAgICAqZHN0ICs9IGM7ICAgICAgYyAgPSAoKmRzdCA8IGMpOworICAgICAgICAqZHN0ICs9ICpzcmM7ICAgYyArPSAoKmRzdCA8ICpzcmMpOworICAgIH0KKyAgICAqY2FycnkgKz0gYzsKK30KKworLyogQWRkIGNhcnJ5IHRvIGEgNjQtYml0IGNodW5rIGFuZCB1cGRhdGUgY2FycnkgKi8KK3N0YXRpYyBpbmxpbmUgdm9pZCBjYXJyeTY0KG1iZWR0bHNfbXBpX3VpbnQgKmRzdCwgbWJlZHRsc19tcGlfdWludCAqY2FycnkpCit7CisgICAgdW5zaWduZWQgY2hhciBpOworICAgIGZvciAoaSA9IDA7IGkgPCA4IC8gc2l6ZW9mKG1iZWR0bHNfbXBpX3VpbnQpOyBpKyssIGRzdCsrKSB7CisgICAgICAgICpkc3QgKz0gKmNhcnJ5OworICAgICAgICAqY2FycnkgID0gKCpkc3QgPCAqY2FycnkpOworICAgIH0KK30KKworI2RlZmluZSBXSURUSCAgICAgICA4IC8gc2l6ZW9mKG1iZWR0bHNfbXBpX3VpbnQpCisjZGVmaW5lIEEoaSkgICAgICBOLT5wICsgKGkpICogV0lEVEgKKyNkZWZpbmUgQUREKGkpICAgIGFkZDY0KHAsIEEoaSksICZjKQorI2RlZmluZSBORVhUICAgICAgICBwICs9IFdJRFRIOyBjYXJyeTY0KHAsICZjKQorI2RlZmluZSBMQVNUICAgICAgICBwICs9IFdJRFRIOyAqcCA9IGM7IHdoaWxlICgrK3AgPCBlbmQpICpwID0gMAorCisvKgorICogRmFzdCBxdWFzaS1yZWR1Y3Rpb24gbW9kdWxvIHAxOTIgKEZJUFMgMTg2LTMgRC4yLjEpCisgKi8KK3N0YXRpYyBpbnQgZWNwX21vZF9wMTkyKG1iZWR0bHNfbXBpICpOKQoreworICAgIGludCByZXQgPSBNQkVEVExTX0VSUl9FUlJPUl9DT1JSVVBUSU9OX0RFVEVDVEVEOworICAgIG1iZWR0bHNfbXBpX3VpbnQgYyA9IDA7CisgICAgbWJlZHRsc19tcGlfdWludCAqcCwgKmVuZDsKKworICAgIC8qIE1ha2Ugc3VyZSB3ZSBoYXZlIGVub3VnaCBibG9ja3Mgc28gdGhhdCBBKDUpIGlzIGxlZ2FsICovCisgICAgTUJFRFRMU19NUElfQ0hLKG1iZWR0bHNfbXBpX2dyb3coTiwgNiAqIFdJRFRIKSk7CisKKyAgICBwID0gTi0+cDsKKyAgICBlbmQgPSBwICsgTi0+bjsKKworICAgIEFERCgzKTsgQUREKDUpOyAgICAgICAgICAgICBORVhUOyAgICAgLy8gQTAgKz0gQTMgKyBBNQorICAgIEFERCgzKTsgQUREKDQpOyBBREQoNSk7ICAgTkVYVDsgICAgICAgLy8gQTEgKz0gQTMgKyBBNCArIEE1CisgICAgQUREKDQpOyBBREQoNSk7ICAgICAgICAgICAgIExBU1Q7ICAgICAvLyBBMiArPSBBNCArIEE1CisKK2NsZWFudXA6CisgICAgcmV0dXJuIHJldDsKK30KKworI3VuZGVmIFdJRFRICisjdW5kZWYgQQorI3VuZGVmIEFERAorI3VuZGVmIE5FWFQKKyN1bmRlZiBMQVNUCisjZW5kaWYgLyogTUJFRFRMU19FQ1BfRFBfU0VDUDE5MlIxX0VOQUJMRUQgKi8KKworI2lmIGRlZmluZWQoTUJFRFRMU19FQ1BfRFBfU0VDUDIyNFIxX0VOQUJMRUQpIHx8ICAgXAorICAgIGRlZmluZWQoTUJFRFRMU19FQ1BfRFBfU0VDUDI1NlIxX0VOQUJMRUQpIHx8ICAgXAorICAgIGRlZmluZWQoTUJFRFRMU19FQ1BfRFBfU0VDUDM4NFIxX0VOQUJMRUQpCisvKgorICogVGhlIHJlYWRlciBpcyBhZHZpc2VkIHRvIGZpcnN0IHVuZGVyc3RhbmQgZWNwX21vZF9wMTkyKCkgc2luY2UgdGhlIHNhbWUKKyAqIGdlbmVyYWwgc3RydWN0dXJlIGlzIHVzZWQgaGVyZSwgYnV0IHdpdGggYWRkaXRpb25hbCBjb21wbGljYXRpb25zOgorICogKDEpIGNodW5rcyBvZiAzMiBiaXRzLCBhbmQgKDIpIHN1YnRyYWN0aW9ucy4KKyAqLworCisvKgorICogRm9yIHRoZXNlIHByaW1lcywgd2UgbmVlZCB0byBoYW5kbGUgZGF0YSBpbiBjaHVua3Mgb2YgMzIgYml0cy4KKyAqIFRoaXMgbWFrZXMgaXQgbW9yZSBjb21wbGljYXRlZCBpZiB3ZSB1c2UgNjQgYml0cyBsaW1icyBpbiBNUEksCisgKiB3aGljaCBwcmV2ZW50cyB1cyBmcm9tIHVzaW5nIGEgdW5pZm9ybSBhY2Nlc3MgbWV0aG9kIGFzIGZvciBwMTkyLgorICoKKyAqIFNvLCB3ZSBkZWZpbmUgYSBtaW5pIGFic3RyYWN0aW9uIGxheWVyIHRvIGFjY2VzcyAzMiBiaXQgY2h1bmtzLAorICogbG9hZCB0aGVtIGluICdjdXInIGZvciB3b3JrLCBhbmQgc3RvcmUgdGhlbSBiYWNrIGZyb20gJ2N1cicgd2hlbiBkb25lLgorICoKKyAqIFdoaWxlIGF0IGl0LCBhbHNvIGRlZmluZSB0aGUgc2l6ZSBvZiBOIGluIHRlcm1zIG9mIDMyLWJpdCBjaHVua3MuCisgKi8KKyNkZWZpbmUgTE9BRDMyICAgICAgY3VyID0gQShpKTsKKworI2lmIGRlZmluZWQoTUJFRFRMU19IQVZFX0lOVDMyKSAgLyogMzIgYml0ICovCisKKyNkZWZpbmUgTUFYMzIgICAgICAgTi0+bgorI2RlZmluZSBBKGopICAgICAgTi0+cFtqXQorI2RlZmluZSBTVE9SRTMyICAgICBOLT5wW2ldID0gY3VyOworCisjZWxzZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiA2NC1iaXQgKi8KKworI2RlZmluZSBNQVgzMiAgICAgICBOLT5uICogMgorI2RlZmluZSBBKGopIChqKSAlIDIgPyAodWludDMyX3QpIChOLT5wWyhqKS8yXSA+PiAzMikgOiBcCisgICAgKHVpbnQzMl90KSAoTi0+cFsoaikvMl0pCisjZGVmaW5lIFNUT1JFMzIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICBpZiAoaSAlIDIpIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgIE4tPnBbaS8yXSAmPSAweDAwMDAwMDAwRkZGRkZGRkY7ICAgICAgICAgIFwKKyAgICAgICAgTi0+cFtpLzJdIHw9ICgobWJlZHRsc19tcGlfdWludCkgY3VyKSA8PCAzMjsgICAgICAgIFwKKyAgICB9IGVsc2UgeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICBOLT5wW2kvMl0gJj0gMHhGRkZGRkZGRjAwMDAwMDAwOyAgICAgICAgICBcCisgICAgICAgIE4tPnBbaS8yXSB8PSAobWJlZHRsc19tcGlfdWludCkgY3VyOyAgICAgICAgICAgICAgICBcCisgICAgfQorCisjZW5kaWYgLyogc2l6ZW9mKCBtYmVkdGxzX21waV91aW50ICkgKi8KKworLyoKKyAqIEhlbHBlcnMgZm9yIGFkZGl0aW9uIGFuZCBzdWJ0cmFjdGlvbiBvZiBjaHVua3MsIHdpdGggc2lnbmVkIGNhcnJ5LgorICovCitzdGF0aWMgaW5saW5lIHZvaWQgYWRkMzIodWludDMyX3QgKmRzdCwgdWludDMyX3Qgc3JjLCBzaWduZWQgY2hhciAqY2FycnkpCit7CisgICAgKmRzdCArPSBzcmM7CisgICAgKmNhcnJ5ICs9ICgqZHN0IDwgc3JjKTsKK30KKworc3RhdGljIGlubGluZSB2b2lkIHN1YjMyKHVpbnQzMl90ICpkc3QsIHVpbnQzMl90IHNyYywgc2lnbmVkIGNoYXIgKmNhcnJ5KQoreworICAgICpjYXJyeSAtPSAoKmRzdCA8IHNyYyk7CisgICAgKmRzdCAtPSBzcmM7Cit9CisKKyNkZWZpbmUgQUREKGopICAgIGFkZDMyKCZjdXIsIEEoaiksICZjKTsKKyNkZWZpbmUgU1VCKGopICAgIHN1YjMyKCZjdXIsIEEoaiksICZjKTsKKworLyoKKyAqIEhlbHBlcnMgZm9yIHRoZSBtYWluICdsb29wJworICovCisjZGVmaW5lIElOSVQoYikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIGludCByZXQgPSBNQkVEVExTX0VSUl9FUlJPUl9DT1JSVVBUSU9OX0RFVEVDVEVEOyAgICAgICAgICAgICAgICAgICAgXAorICAgIHNpZ25lZCBjaGFyIGMgPSAwLCBjYzsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIHVpbnQzMl90IGN1cjsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIHNpemVfdCBpID0gMCwgYml0cyA9IChiKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIC8qIE4gaXMgdGhlIHNpemUgb2YgdGhlIHByb2R1Y3Qgb2YgdHdvIGItYml0IG51bWJlcnMsIHBsdXMgb25lICovICAgXAorICAgIC8qIGxpbWIgZm9yIGZpeF9uZWdhdGl2ZSAqLyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIE1CRURUTFNfTVBJX0NISyhtYmVkdGxzX21waV9ncm93KE4sIChiKSAqIDIgLyBiaUwgKyAxKSk7ICAgICAgXAorICAgIExPQUQzMjsKKworI2RlZmluZSBORVhUICAgICAgICAgICAgICAgICAgICBcCisgICAgU1RPUkUzMjsgaSsrOyBMT0FEMzI7ICAgICAgIFwKKyAgICBjYyA9IGM7IGMgPSAwOyAgICAgICAgICAgICAgXAorICAgIGlmIChjYyA8IDApICAgICAgICAgICAgICAgIFwKKyAgICBzdWIzMigmY3VyLCAtY2MsICZjKTsgXAorICAgIGVsc2UgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgYWRkMzIoJmN1ciwgY2MsICZjKTsgIFwKKworI2RlZmluZSBMQVNUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIFNUT1JFMzI7IGkrKzsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIGN1ciA9IGMgPiAwID8gYyA6IDA7IFNUT1JFMzI7ICAgICAgICAgICAgICAgXAorICAgIGN1ciA9IDA7IHdoaWxlICgrK2kgPCBNQVgzMikgeyBTVE9SRTMyOyB9ICBcCisgICAgaWYgKGMgPCAwKSBtYmVkdGxzX2VjcF9maXhfbmVnYXRpdmUoTiwgYywgYml0cyk7CisKKy8qCisgKiBJZiB0aGUgcmVzdWx0IGlzIG5lZ2F0aXZlLCB3ZSBnZXQgaXQgaW4gdGhlIGZvcm0KKyAqIGMgKiAyXmJpdHMgKyBOLCB3aXRoIGMgbmVnYXRpdmUgYW5kIE4gcG9zaXRpdmUgc2hvcnRlciB0aGFuICdiaXRzJworICovCitzdGF0aWMgdm9pZCBtYmVkdGxzX2VjcF9maXhfbmVnYXRpdmUobWJlZHRsc19tcGkgKk4sIHNpZ25lZCBjaGFyIGMsIHNpemVfdCBiaXRzKQoreworICAgIHNpemVfdCBpOworCisgICAgLyogU2V0IE4gOj0gMl5iaXRzIC0gMSAtIE4uIFdlIGtub3cgdGhhdCAwIDw9IE4gPCAyXmJpdHMsIHNvCisgICAgICogc2V0IHRoZSBhYnNvbHV0ZSB2YWx1ZSB0byAweGZmZi4uLmZmZiAtIE4uIFRoZXJlIGlzIG5vIGNhcnJ5CisgICAgICogc2luY2Ugd2UncmUgc3VidHJhY3RpbmcgZnJvbSBhbGwtYml0cy1vbmUuICAqLworICAgIGZvciAoaSA9IDA7IGkgPD0gYml0cyAvIDggLyBzaXplb2YobWJlZHRsc19tcGlfdWludCk7IGkrKykgeworICAgICAgICBOLT5wW2ldID0gfihtYmVkdGxzX21waV91aW50KSAwIC0gTi0+cFtpXTsKKyAgICB9CisgICAgLyogQWRkIDEsIHRha2luZyBjYXJlIG9mIHRoZSBjYXJyeS4gKi8KKyAgICBpID0gMDsKKyAgICBkbyB7CisgICAgICAgICsrTi0+cFtpXTsKKyAgICB9IHdoaWxlIChOLT5wW2krK10gPT0gMCAmJiBpIDw9IGJpdHMgLyA4IC8gc2l6ZW9mKG1iZWR0bHNfbXBpX3VpbnQpKTsKKyAgICAvKiBJbnZlcnQgdGhlIHNpZ24uCisgICAgICogTm93IE4gPSBOMCAtIDJeYml0cyB3aGVyZSBOMCBpcyB0aGUgaW5pdGlhbCB2YWx1ZSBvZiBOLiAqLworICAgIE4tPnMgPSAtMTsKKworICAgIC8qIEFkZCB8Y3wgKiAyXmJpdHMgdG8gdGhlIGFic29sdXRlIHZhbHVlLiBTaW5jZSBjIGFuZCBOIGFyZQorICAgICAqIG5lZ2F0aXZlLCB0aGlzIGFkZHMgYyAqIDJeYml0cy4gKi8KKyAgICBtYmVkdGxzX21waV91aW50IG1zdyA9IChtYmVkdGxzX21waV91aW50KSAtYzsKKyNpZiBkZWZpbmVkKE1CRURUTFNfSEFWRV9JTlQ2NCkKKyAgICBpZiAoYml0cyA9PSAyMjQpIHsKKyAgICAgICAgbXN3IDw8PSAzMjsKKyAgICB9CisjZW5kaWYKKyAgICBOLT5wW2JpdHMgLyA4IC8gc2l6ZW9mKG1iZWR0bHNfbXBpX3VpbnQpXSArPSBtc3c7Cit9CisKKyNpZiBkZWZpbmVkKE1CRURUTFNfRUNQX0RQX1NFQ1AyMjRSMV9FTkFCTEVEKQorLyoKKyAqIEZhc3QgcXVhc2ktcmVkdWN0aW9uIG1vZHVsbyBwMjI0IChGSVBTIDE4Ni0zIEQuMi4yKQorICovCitzdGF0aWMgaW50IGVjcF9tb2RfcDIyNChtYmVkdGxzX21waSAqTikKK3sKKyAgICBJTklUKDIyNCk7CisKKyAgICBTVUIoNyk7IFNVQigxMSk7ICAgICAgICAgICAgICAgTkVYVDsgICAgICAvLyBBMCArPSAtQTcgLSBBMTEKKyAgICBTVUIoOCk7IFNVQigxMik7ICAgICAgICAgICAgICAgTkVYVDsgICAgICAvLyBBMSArPSAtQTggLSBBMTIKKyAgICBTVUIoOSk7IFNVQigxMyk7ICAgICAgICAgICAgICAgTkVYVDsgICAgICAvLyBBMiArPSAtQTkgLSBBMTMKKyAgICBTVUIoMTApOyBBREQoNyk7IEFERCgxMSk7ICAgIE5FWFQ7ICAgICAgICAvLyBBMyArPSAtQTEwICsgQTcgKyBBMTEKKyAgICBTVUIoMTEpOyBBREQoOCk7IEFERCgxMik7ICAgIE5FWFQ7ICAgICAgICAvLyBBNCArPSAtQTExICsgQTggKyBBMTIKKyAgICBTVUIoMTIpOyBBREQoOSk7IEFERCgxMyk7ICAgIE5FWFQ7ICAgICAgICAvLyBBNSArPSAtQTEyICsgQTkgKyBBMTMKKyAgICBTVUIoMTMpOyBBREQoMTApOyAgICAgICAgICAgICAgIExBU1Q7ICAgICAvLyBBNiArPSAtQTEzICsgQTEwCisKK2NsZWFudXA6CisgICAgcmV0dXJuIHJldDsKK30KKyNlbmRpZiAvKiBNQkVEVExTX0VDUF9EUF9TRUNQMjI0UjFfRU5BQkxFRCAqLworCisjaWYgZGVmaW5lZChNQkVEVExTX0VDUF9EUF9TRUNQMjU2UjFfRU5BQkxFRCkKKy8qCisgKiBGYXN0IHF1YXNpLXJlZHVjdGlvbiBtb2R1bG8gcDI1NiAoRklQUyAxODYtMyBELjIuMykKKyAqLworc3RhdGljIGludCBlY3BfbW9kX3AyNTYobWJlZHRsc19tcGkgKk4pCit7CisgICAgSU5JVCgyNTYpOworCisgICAgQUREKDgpOyBBREQoOSk7CisgICAgU1VCKDExKTsgU1VCKDEyKTsgU1VCKDEzKTsgU1VCKDE0KTsgICAgICAgICAgICAgTkVYVDsgICAgICAgICAvLyBBMAorCisgICAgQUREKDkpOyBBREQoMTApOworICAgIFNVQigxMik7IFNVQigxMyk7IFNVQigxNCk7IFNVQigxNSk7ICAgICAgICAgICAgIE5FWFQ7ICAgICAgICAgLy8gQTEKKworICAgIEFERCgxMCk7IEFERCgxMSk7CisgICAgU1VCKDEzKTsgU1VCKDE0KTsgU1VCKDE1KTsgICAgICAgICAgICAgICAgICAgICAgICBORVhUOyAgICAgICAvLyBBMgorCisgICAgQUREKDExKTsgQUREKDExKTsgQUREKDEyKTsgQUREKDEyKTsgQUREKDEzKTsKKyAgICBTVUIoMTUpOyBTVUIoOCk7IFNVQig5KTsgICAgICAgICAgICAgICAgICAgICAgICBORVhUOyAgICAgICAgIC8vIEEzCisKKyAgICBBREQoMTIpOyBBREQoMTIpOyBBREQoMTMpOyBBREQoMTMpOyBBREQoMTQpOworICAgIFNVQig5KTsgU1VCKDEwKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5FWFQ7ICAgICAgLy8gQTQKKworICAgIEFERCgxMyk7IEFERCgxMyk7IEFERCgxNCk7IEFERCgxNCk7IEFERCgxNSk7CisgICAgU1VCKDEwKTsgU1VCKDExKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5FWFQ7ICAgICAvLyBBNQorCisgICAgQUREKDE0KTsgQUREKDE0KTsgQUREKDE1KTsgQUREKDE1KTsgQUREKDE0KTsgQUREKDEzKTsKKyAgICBTVUIoOCk7IFNVQig5KTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5FWFQ7ICAgICAgIC8vIEE2CisKKyAgICBBREQoMTUpOyBBREQoMTUpOyBBREQoMTUpOyBBREQoOCk7CisgICAgU1VCKDEwKTsgU1VCKDExKTsgU1VCKDEyKTsgU1VCKDEzKTsgICAgICAgICAgICAgTEFTVDsgICAgICAgICAvLyBBNworCitjbGVhbnVwOgorICAgIHJldHVybiByZXQ7Cit9CisjZW5kaWYgLyogTUJFRFRMU19FQ1BfRFBfU0VDUDI1NlIxX0VOQUJMRUQgKi8KKworI2lmIGRlZmluZWQoTUJFRFRMU19FQ1BfRFBfU0VDUDM4NFIxX0VOQUJMRUQpCisvKgorICogRmFzdCBxdWFzaS1yZWR1Y3Rpb24gbW9kdWxvIHAzODQgKEZJUFMgMTg2LTMgRC4yLjQpCisgKi8KK3N0YXRpYyBpbnQgZWNwX21vZF9wMzg0KG1iZWR0bHNfbXBpICpOKQoreworICAgIElOSVQoMzg0KTsKKworICAgIEFERCgxMik7IEFERCgyMSk7IEFERCgyMCk7CisgICAgU1VCKDIzKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTkVYVDsgICAvLyBBMAorCisgICAgQUREKDEzKTsgQUREKDIyKTsgQUREKDIzKTsKKyAgICBTVUIoMTIpOyBTVUIoMjApOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTkVYVDsgICAgIC8vIEEyCisKKyAgICBBREQoMTQpOyBBREQoMjMpOworICAgIFNVQigxMyk7IFNVQigyMSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBORVhUOyAgICAgLy8gQTIKKworICAgIEFERCgxNSk7IEFERCgxMik7IEFERCgyMCk7IEFERCgyMSk7CisgICAgU1VCKDE0KTsgU1VCKDIyKTsgU1VCKDIzKTsgICAgICAgICAgICAgICAgICAgICAgICBORVhUOyAgICAgICAvLyBBMworCisgICAgQUREKDIxKTsgQUREKDIxKTsgQUREKDE2KTsgQUREKDEzKTsgQUREKDEyKTsgQUREKDIwKTsgQUREKDIyKTsKKyAgICBTVUIoMTUpOyBTVUIoMjMpOyBTVUIoMjMpOyAgICAgICAgICAgICAgICAgICAgICAgIE5FWFQ7ICAgICAgIC8vIEE0CisKKyAgICBBREQoMjIpOyBBREQoMjIpOyBBREQoMTcpOyBBREQoMTQpOyBBREQoMTMpOyBBREQoMjEpOyBBREQoMjMpOworICAgIFNVQigxNik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5FWFQ7ICAgLy8gQTUKKworICAgIEFERCgyMyk7IEFERCgyMyk7IEFERCgxOCk7IEFERCgxNSk7IEFERCgxNCk7IEFERCgyMik7CisgICAgU1VCKDE3KTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTkVYVDsgICAvLyBBNgorCisgICAgQUREKDE5KTsgQUREKDE2KTsgQUREKDE1KTsgQUREKDIzKTsKKyAgICBTVUIoMTgpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBORVhUOyAgIC8vIEE3CisKKyAgICBBREQoMjApOyBBREQoMTcpOyBBREQoMTYpOworICAgIFNVQigxOSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5FWFQ7ICAgLy8gQTgKKworICAgIEFERCgyMSk7IEFERCgxOCk7IEFERCgxNyk7CisgICAgU1VCKDIwKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTkVYVDsgICAvLyBBOQorCisgICAgQUREKDIyKTsgQUREKDE5KTsgQUREKDE4KTsKKyAgICBTVUIoMjEpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBORVhUOyAgIC8vIEExMAorCisgICAgQUREKDIzKTsgQUREKDIwKTsgQUREKDE5KTsKKyAgICBTVUIoMjIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMQVNUOyAgIC8vIEExMQorCitjbGVhbnVwOgorICAgIHJldHVybiByZXQ7Cit9CisjZW5kaWYgLyogTUJFRFRMU19FQ1BfRFBfU0VDUDM4NFIxX0VOQUJMRUQgKi8KKworI3VuZGVmIEEKKyN1bmRlZiBMT0FEMzIKKyN1bmRlZiBTVE9SRTMyCisjdW5kZWYgTUFYMzIKKyN1bmRlZiBJTklUCisjdW5kZWYgTkVYVAorI3VuZGVmIExBU1QKKworI2VuZGlmIC8qIE1CRURUTFNfRUNQX0RQX1NFQ1AyMjRSMV9FTkFCTEVEIHx8CisgICAgICAgICAgTUJFRFRMU19FQ1BfRFBfU0VDUDI1NlIxX0VOQUJMRUQgfHwKKyAgICAgICAgICBNQkVEVExTX0VDUF9EUF9TRUNQMzg0UjFfRU5BQkxFRCAqLworCisjaWYgZGVmaW5lZChNQkVEVExTX0VDUF9EUF9TRUNQNTIxUjFfRU5BQkxFRCkKKy8qCisgKiBIZXJlIHdlIGhhdmUgYW4gYWN0dWFsIE1lcnNlbm5lIHByaW1lLCBzbyB0aGluZ3MgYXJlIG1vcmUgc3RyYWlnaHRmb3J3YXJkLgorICogSG93ZXZlciwgY2h1bmtzIGFyZSBhbGlnbmVkIG9uIGEgJ3dlaXJkJyBib3VuZGFyeSAoNTIxIGJpdHMpLgorICovCisKKy8qIFNpemUgb2YgcDUyMSBpbiB0ZXJtcyBvZiBtYmVkdGxzX21waV91aW50ICovCisjZGVmaW5lIFA1MjFfV0lEVEggICAgICAoNTIxIC8gOCAvIHNpemVvZihtYmVkdGxzX21waV91aW50KSArIDEpCisKKy8qIEJpdHMgdG8ga2VlcCBpbiB0aGUgbW9zdCBzaWduaWZpY2FudCBtYmVkdGxzX21waV91aW50ICovCisjZGVmaW5lIFA1MjFfTUFTSyAgICAgICAweDAxRkYKKworLyoKKyAqIEZhc3QgcXVhc2ktcmVkdWN0aW9uIG1vZHVsbyBwNTIxIChGSVBTIDE4Ni0zIEQuMi41KQorICogV3JpdGUgTiBhcyBBMSArIDJeNTIxIEEwLCByZXR1cm4gQTAgKyBBMQorICovCitzdGF0aWMgaW50IGVjcF9tb2RfcDUyMShtYmVkdGxzX21waSAqTikKK3sKKyAgICBpbnQgcmV0ID0gTUJFRFRMU19FUlJfRVJST1JfQ09SUlVQVElPTl9ERVRFQ1RFRDsKKyAgICBzaXplX3QgaTsKKyAgICBtYmVkdGxzX21waSBNOworICAgIG1iZWR0bHNfbXBpX3VpbnQgTXBbUDUyMV9XSURUSCArIDFdOworICAgIC8qIFdvcnN0IGNhc2UgZm9yIHRoZSBzaXplIG9mIE0gaXMgd2hlbiBtYmVkdGxzX21waV91aW50IGlzIDE2IGJpdHM6CisgICAgICogd2UgbmVlZCB0byBob2xkIGJpdHMgNTEzIHRvIDEwNTYsIHdoaWNoIGlzIDM0IGxpbWJzLCB0aGF0IGlzCisgICAgICogUDUyMV9XSURUSCArIDEuIE90aGVyd2lzZSBQNTIxX1dJRFRIIGlzIGVub3VnaC4gKi8KKworICAgIGlmIChOLT5uIDwgUDUyMV9XSURUSCkgeworICAgICAgICByZXR1cm4gMDsKKyAgICB9CisKKyAgICAvKiBNID0gQTEgKi8KKyAgICBNLnMgPSAxOworICAgIE0ubiA9IE4tPm4gLSAoUDUyMV9XSURUSCAtIDEpOworICAgIGlmIChNLm4gPiBQNTIxX1dJRFRIICsgMSkgeworICAgICAgICBNLm4gPSBQNTIxX1dJRFRIICsgMTsKKyAgICB9CisgICAgTS5wID0gTXA7CisgICAgbWVtY3B5KE1wLCBOLT5wICsgUDUyMV9XSURUSCAtIDEsIE0ubiAqIHNpemVvZihtYmVkdGxzX21waV91aW50KSk7CisgICAgTUJFRFRMU19NUElfQ0hLKG1iZWR0bHNfbXBpX3NoaWZ0X3IoJk0sIDUyMSAlICg4ICogc2l6ZW9mKG1iZWR0bHNfbXBpX3VpbnQpKSkpOworCisgICAgLyogTiA9IEEwICovCisgICAgTi0+cFtQNTIxX1dJRFRIIC0gMV0gJj0gUDUyMV9NQVNLOworICAgIGZvciAoaSA9IFA1MjFfV0lEVEg7IGkgPCBOLT5uOyBpKyspIHsKKyAgICAgICAgTi0+cFtpXSA9IDA7CisgICAgfQorCisgICAgLyogTiA9IEEwICsgQTEgKi8KKyAgICBNQkVEVExTX01QSV9DSEsobWJlZHRsc19tcGlfYWRkX2FicyhOLCBOLCAmTSkpOworCitjbGVhbnVwOgorICAgIHJldHVybiByZXQ7Cit9CisKKyN1bmRlZiBQNTIxX1dJRFRICisjdW5kZWYgUDUyMV9NQVNLCisjZW5kaWYgLyogTUJFRFRMU19FQ1BfRFBfU0VDUDUyMVIxX0VOQUJMRUQgKi8KKworI2VuZGlmIC8qIE1CRURUTFNfRUNQX05JU1RfT1BUSU0gKi8KKworI2lmIGRlZmluZWQoTUJFRFRMU19FQ1BfRFBfQ1VSVkUyNTUxOV9FTkFCTEVEKQorCisvKiBTaXplIG9mIHAyNTUgaW4gdGVybXMgb2YgbWJlZHRsc19tcGlfdWludCAqLworI2RlZmluZSBQMjU1X1dJRFRIICAgICAgKDI1NSAvIDggLyBzaXplb2YobWJlZHRsc19tcGlfdWludCkgKyAxKQorCisvKgorICogRmFzdCBxdWFzaS1yZWR1Y3Rpb24gbW9kdWxvIHAyNTUgPSAyXjI1NSAtIDE5CisgKiBXcml0ZSBOIGFzIEEwICsgMl4yNTYgQTEsIHJldHVybiBBMCArIDM4ICogQTEKKyAqLworc3RhdGljIGludCBlY3BfbW9kX3AyNTUobWJlZHRsc19tcGkgKk4pCit7CisgICAgbWJlZHRsc19tcGlfdWludCBNcFtQMjU1X1dJRFRIXTsKKworICAgIC8qIEhlbHBlciByZWZlcmVuY2VzIGZvciB0b3AgcGFydCBvZiBOICovCisgICAgbWJlZHRsc19tcGlfdWludCAqIGNvbnN0IE5UX3AgPSBOLT5wICsgUDI1NV9XSURUSDsKKyAgICBjb25zdCBzaXplX3QgTlRfbiA9IE4tPm4gLSBQMjU1X1dJRFRIOworICAgIGlmIChOLT5uIDw9IFAyNTVfV0lEVEgpIHsKKyAgICAgICAgcmV0dXJuIDA7CisgICAgfQorICAgIGlmIChOVF9uID4gUDI1NV9XSURUSCkgeworICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfRUNQX0JBRF9JTlBVVF9EQVRBOworICAgIH0KKworICAgIC8qIFNwbGl0IE4gYXMgTiArIDJeMjU2IE0gKi8KKyAgICBtZW1jcHkoTXAsICAgTlRfcCwgc2l6ZW9mKG1iZWR0bHNfbXBpX3VpbnQpICogTlRfbik7CisgICAgbWVtc2V0KE5UX3AsIDAsICAgIHNpemVvZihtYmVkdGxzX21waV91aW50KSAqIE5UX24pOworCisgICAgLyogTiA9IEEwICsgMzggKiBBMSAqLworICAgIG1iZWR0bHNfbXBpX2NvcmVfbWxhKE4tPnAsIFAyNTVfV0lEVEggKyAxLAorICAgICAgICAgICAgICAgICAgICAgICAgIE1wLCBOVF9uLAorICAgICAgICAgICAgICAgICAgICAgICAgIDM4KTsKKworICAgIHJldHVybiAwOworfQorI2VuZGlmIC8qIE1CRURUTFNfRUNQX0RQX0NVUlZFMjU1MTlfRU5BQkxFRCAqLworCisjaWYgZGVmaW5lZChNQkVEVExTX0VDUF9EUF9DVVJWRTQ0OF9FTkFCTEVEKQorCisvKiBTaXplIG9mIHA0NDggaW4gdGVybXMgb2YgbWJlZHRsc19tcGlfdWludCAqLworI2RlZmluZSBQNDQ4X1dJRFRIICAgICAgKDQ0OCAvIDggLyBzaXplb2YobWJlZHRsc19tcGlfdWludCkpCisKKy8qIE51bWJlciBvZiBsaW1icyBmdWxseSBvY2N1cGllZCBieSAyXjIyNCAobWF4KSwgYW5kIGxpbWJzIHVzZWQgYnkgaXQgKG1pbikgKi8KKyNkZWZpbmUgRElWX1JPVU5EX1VQKFgsIFkpICgoKFgpICsgKFkpIC0xKSAvIChZKSkKKyNkZWZpbmUgUDIyNF9TSVpFICAgICAgICAoMjI0IC8gOCkKKyNkZWZpbmUgUDIyNF9XSURUSF9NSU4gICAoUDIyNF9TSVpFIC8gc2l6ZW9mKG1iZWR0bHNfbXBpX3VpbnQpKQorI2RlZmluZSBQMjI0X1dJRFRIX01BWCAgIERJVl9ST1VORF9VUChQMjI0X1NJWkUsIHNpemVvZihtYmVkdGxzX21waV91aW50KSkKKyNkZWZpbmUgUDIyNF9VTlVTRURfQklUUyAoKFAyMjRfV0lEVEhfTUFYICogc2l6ZW9mKG1iZWR0bHNfbXBpX3VpbnQpICogOCkgLSAyMjQpCisKKy8qCisgKiBGYXN0IHF1YXNpLXJlZHVjdGlvbiBtb2R1bG8gcDQ0OCA9IDJeNDQ4IC0gMl4yMjQgLSAxCisgKiBXcml0ZSBOIGFzIEEwICsgMl40NDggQTEgYW5kIEExIGFzIEIwICsgMl4yMjQgQjEsIGFuZCByZXR1cm4KKyAqIEEwICsgQTEgKyBCMSArIChCMCArIEIxKSAqIDJeMjI0LiAgVGhpcyBpcyBkaWZmZXJlbnQgdG8gdGhlIHJlZmVyZW5jZQorICogaW1wbGVtZW50YXRpb24gb2YgQ3VydmU0NDgsIHdoaWNoIHVzZXMgaXRzIG93biBzcGVjaWFsIDU2LWJpdCBsaW1icyByYXRoZXIKKyAqIHRoYW4gYSBnZW5lcmljIGJpZ251bSBsaWJyYXJ5LiAgV2UgY291bGQgc3F1ZWV6ZSBzb21lIGV4dHJhIHNwZWVkIG91dCBvbgorICogMzItYml0IG1hY2hpbmVzIGJ5IHNwbGl0dGluZyBOIHVwIGludG8gMzItYml0IGxpbWJzIGFuZCBkb2luZyB0aGUKKyAqIGFyaXRobWV0aWMgdXNpbmcgdGhlIGxpbWJzIGRpcmVjdGx5IGFzIHdlIGRvIGZvciB0aGUgTklTVCBwcmltZXMgYWJvdmUsCisgKiBidXQgZm9yIDY0LWJpdCB0YXJnZXRzIGl0IHNob3VsZCB1c2UgaGFsZiB0aGUgbnVtYmVyIG9mIG9wZXJhdGlvbnMgaWYgd2UgZG8KKyAqIHRoZSByZWR1Y3Rpb24gd2l0aCAyMjQtYml0IGxpbWJzLCBzaW5jZSBtcGlfYWRkX21waSB3aWxsIHRoZW4gdXNlIDY0LWJpdCBhZGRzLgorICovCitzdGF0aWMgaW50IGVjcF9tb2RfcDQ0OChtYmVkdGxzX21waSAqTikKK3sKKyAgICBpbnQgcmV0ID0gTUJFRFRMU19FUlJfRVJST1JfQ09SUlVQVElPTl9ERVRFQ1RFRDsKKyAgICBzaXplX3QgaTsKKyAgICBtYmVkdGxzX21waSBNLCBROworICAgIG1iZWR0bHNfbXBpX3VpbnQgTXBbUDQ0OF9XSURUSCArIDFdLCBRcFtQNDQ4X1dJRFRIXTsKKworICAgIGlmIChOLT5uIDw9IFA0NDhfV0lEVEgpIHsKKyAgICAgICAgcmV0dXJuIDA7CisgICAgfQorCisgICAgLyogTSA9IEExICovCisgICAgTS5zID0gMTsKKyAgICBNLm4gPSBOLT5uIC0gKFA0NDhfV0lEVEgpOworICAgIGlmIChNLm4gPiBQNDQ4X1dJRFRIKSB7CisgICAgICAgIC8qIFNob3VsZG4ndCBiZSBjYWxsZWQgd2l0aCBOIGxhcmdlciB0aGFuIDJeODk2ISAqLworICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfRUNQX0JBRF9JTlBVVF9EQVRBOworICAgIH0KKyAgICBNLnAgPSBNcDsKKyAgICBtZW1zZXQoTXAsIDAsIHNpemVvZihNcCkpOworICAgIG1lbWNweShNcCwgTi0+cCArIFA0NDhfV0lEVEgsIE0ubiAqIHNpemVvZihtYmVkdGxzX21waV91aW50KSk7CisKKyAgICAvKiBOID0gQTAgKi8KKyAgICBmb3IgKGkgPSBQNDQ4X1dJRFRIOyBpIDwgTi0+bjsgaSsrKSB7CisgICAgICAgIE4tPnBbaV0gPSAwOworICAgIH0KKworICAgIC8qIE4gKz0gQTEgKi8KKyAgICBNQkVEVExTX01QSV9DSEsobWJlZHRsc19tcGlfYWRkX21waShOLCBOLCAmTSkpOworCisgICAgLyogUSA9IEIxLCBOICs9IEIxICovCisgICAgUSA9IE07CisgICAgUS5wID0gUXA7CisgICAgbWVtY3B5KFFwLCBNcCwgc2l6ZW9mKFFwKSk7CisgICAgTUJFRFRMU19NUElfQ0hLKG1iZWR0bHNfbXBpX3NoaWZ0X3IoJlEsIDIyNCkpOworICAgIE1CRURUTFNfTVBJX0NISyhtYmVkdGxzX21waV9hZGRfbXBpKE4sIE4sICZRKSk7CisKKyAgICAvKiBNID0gKEIwICsgQjEpICogMl4yMjQsIE4gKz0gTSAqLworICAgIGlmIChzaXplb2YobWJlZHRsc19tcGlfdWludCkgPiA0KSB7CisgICAgICAgIE1wW1AyMjRfV0lEVEhfTUlOXSAmPSAoKG1iZWR0bHNfbXBpX3VpbnQpLTEpID4+IChQMjI0X1VOVVNFRF9CSVRTKTsKKyAgICB9CisgICAgZm9yIChpID0gUDIyNF9XSURUSF9NQVg7IGkgPCBNLm47ICsraSkgeworICAgICAgICBNcFtpXSA9IDA7CisgICAgfQorICAgIE1CRURUTFNfTVBJX0NISyhtYmVkdGxzX21waV9hZGRfbXBpKCZNLCAmTSwgJlEpKTsKKyAgICBNLm4gPSBQNDQ4X1dJRFRIICsgMTsgLyogTWFrZSByb29tIGZvciBzaGlmdGVkIGNhcnJ5IGJpdCBmcm9tIHRoZSBhZGRpdGlvbiAqLworICAgIE1CRURUTFNfTVBJX0NISyhtYmVkdGxzX21waV9zaGlmdF9sKCZNLCAyMjQpKTsKKyAgICBNQkVEVExTX01QSV9DSEsobWJlZHRsc19tcGlfYWRkX21waShOLCBOLCAmTSkpOworCitjbGVhbnVwOgorICAgIHJldHVybiByZXQ7Cit9CisjZW5kaWYgLyogTUJFRFRMU19FQ1BfRFBfQ1VSVkU0NDhfRU5BQkxFRCAqLworCisjaWYgZGVmaW5lZChNQkVEVExTX0VDUF9EUF9TRUNQMTkySzFfRU5BQkxFRCkgfHwgICBcCisgICAgZGVmaW5lZChNQkVEVExTX0VDUF9EUF9TRUNQMjI0SzFfRU5BQkxFRCkgfHwgICBcCisgICAgZGVmaW5lZChNQkVEVExTX0VDUF9EUF9TRUNQMjU2SzFfRU5BQkxFRCkKKy8qCisgKiBGYXN0IHF1YXNpLXJlZHVjdGlvbiBtb2R1bG8gUCA9IDJecyAtIFIsCisgKiB3aXRoIFIgYWJvdXQgMzMgYml0cywgdXNlZCBieSB0aGUgS29ibGl0eiBjdXJ2ZXMuCisgKgorICogV3JpdGUgTiBhcyBBMCArIDJeMjI0IEExLCByZXR1cm4gQTAgKyBSICogQTEuCisgKiBBY3R1YWxseSBkbyB0d28gcGFzc2VzLCBzaW5jZSBSIGlzIGJpZy4KKyAqLworI2RlZmluZSBQX0tPQkxJVFpfTUFYICAgKDI1NiAvIDggLyBzaXplb2YobWJlZHRsc19tcGlfdWludCkpICAgICAgLy8gTWF4IGxpbWJzIGluIFAKKyNkZWZpbmUgUF9LT0JMSVRaX1IgICAgICg4IC8gc2l6ZW9mKG1iZWR0bHNfbXBpX3VpbnQpKSAgICAgICAgICAgIC8vIExpbWJzIGluIFIKK3N0YXRpYyBpbmxpbmUgaW50IGVjcF9tb2Rfa29ibGl0eihtYmVkdGxzX21waSAqTiwgY29uc3QgbWJlZHRsc19tcGlfdWludCAqUnAsIHNpemVfdCBwX2xpbWJzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBhZGp1c3QsIHNpemVfdCBzaGlmdCwgbWJlZHRsc19tcGlfdWludCBtYXNrKQoreworICAgIGludCByZXQgPSBNQkVEVExTX0VSUl9FUlJPUl9DT1JSVVBUSU9OX0RFVEVDVEVEOworICAgIHNpemVfdCBpOworICAgIG1iZWR0bHNfbXBpIE0sIFI7CisgICAgbWJlZHRsc19tcGlfdWludCBNcFtQX0tPQkxJVFpfTUFYICsgUF9LT0JMSVRaX1IgKyAxXTsKKworICAgIGlmIChOLT5uIDwgcF9saW1icykgeworICAgICAgICByZXR1cm4gMDsKKyAgICB9CisKKyAgICAvKiBJbml0IFIgKi8KKyAgICBSLnMgPSAxOworICAgIFIucCA9IChtYmVkdGxzX21waV91aW50ICopIFJwOyAvKiBSLnAgd2lsbCBub3QgYmUgbW9kaWZpZWQgc28gdGhlIGNhc3QgaXMgc2FmZSAqLworICAgIFIubiA9IFBfS09CTElUWl9SOworCisgICAgLyogQ29tbW9uIHNldHVwIGZvciBNICovCisgICAgTS5zID0gMTsKKyAgICBNLnAgPSBNcDsKKworICAgIC8qIE0gPSBBMSAqLworICAgIE0ubiA9ICh1bnNpZ25lZCBzaG9ydCkgKE4tPm4gLSAocF9saW1icyAtIGFkanVzdCkpOworICAgIGlmIChNLm4gPiBwX2xpbWJzICsgYWRqdXN0KSB7CisgICAgICAgIE0ubiA9ICh1bnNpZ25lZCBzaG9ydCkgKHBfbGltYnMgKyBhZGp1c3QpOworICAgIH0KKyAgICBtZW1zZXQoTXAsIDAsIHNpemVvZihNcCkpOworICAgIG1lbWNweShNcCwgTi0+cCArIHBfbGltYnMgLSBhZGp1c3QsIE0ubiAqIHNpemVvZihtYmVkdGxzX21waV91aW50KSk7CisgICAgaWYgKHNoaWZ0ICE9IDApIHsKKyAgICAgICAgTUJFRFRMU19NUElfQ0hLKG1iZWR0bHNfbXBpX3NoaWZ0X3IoJk0sIHNoaWZ0KSk7CisgICAgfQorICAgIE0ubiArPSBSLm47IC8qIE1ha2Ugcm9vbSBmb3IgbXVsdGlwbGljYXRpb24gYnkgUiAqLworCisgICAgLyogTiA9IEEwICovCisgICAgaWYgKG1hc2sgIT0gMCkgeworICAgICAgICBOLT5wW3BfbGltYnMgLSAxXSAmPSBtYXNrOworICAgIH0KKyAgICBmb3IgKGkgPSBwX2xpbWJzOyBpIDwgTi0+bjsgaSsrKSB7CisgICAgICAgIE4tPnBbaV0gPSAwOworICAgIH0KKworICAgIC8qIE4gPSBBMCArIFIgKiBBMSAqLworICAgIE1CRURUTFNfTVBJX0NISyhtYmVkdGxzX21waV9tdWxfbXBpKCZNLCAmTSwgJlIpKTsKKyAgICBNQkVEVExTX01QSV9DSEsobWJlZHRsc19tcGlfYWRkX2FicyhOLCBOLCAmTSkpOworCisgICAgLyogU2Vjb25kIHBhc3MgKi8KKworICAgIC8qIE0gPSBBMSAqLworICAgIE0ubiA9ICh1bnNpZ25lZCBzaG9ydCkgKE4tPm4gLSAocF9saW1icyAtIGFkanVzdCkpOworICAgIGlmIChNLm4gPiBwX2xpbWJzICsgYWRqdXN0KSB7CisgICAgICAgIE0ubiA9ICh1bnNpZ25lZCBzaG9ydCkgKHBfbGltYnMgKyBhZGp1c3QpOworICAgIH0KKyAgICBtZW1zZXQoTXAsIDAsIHNpemVvZihNcCkpOworICAgIG1lbWNweShNcCwgTi0+cCArIHBfbGltYnMgLSBhZGp1c3QsIE0ubiAqIHNpemVvZihtYmVkdGxzX21waV91aW50KSk7CisgICAgaWYgKHNoaWZ0ICE9IDApIHsKKyAgICAgICAgTUJFRFRMU19NUElfQ0hLKG1iZWR0bHNfbXBpX3NoaWZ0X3IoJk0sIHNoaWZ0KSk7CisgICAgfQorICAgIE0ubiArPSBSLm47IC8qIE1ha2Ugcm9vbSBmb3IgbXVsdGlwbGljYXRpb24gYnkgUiAqLworCisgICAgLyogTiA9IEEwICovCisgICAgaWYgKG1hc2sgIT0gMCkgeworICAgICAgICBOLT5wW3BfbGltYnMgLSAxXSAmPSBtYXNrOworICAgIH0KKyAgICBmb3IgKGkgPSBwX2xpbWJzOyBpIDwgTi0+bjsgaSsrKSB7CisgICAgICAgIE4tPnBbaV0gPSAwOworICAgIH0KKworICAgIC8qIE4gPSBBMCArIFIgKiBBMSAqLworICAgIE1CRURUTFNfTVBJX0NISyhtYmVkdGxzX21waV9tdWxfbXBpKCZNLCAmTSwgJlIpKTsKKyAgICBNQkVEVExTX01QSV9DSEsobWJlZHRsc19tcGlfYWRkX2FicyhOLCBOLCAmTSkpOworCitjbGVhbnVwOgorICAgIHJldHVybiByZXQ7Cit9CisjZW5kaWYgLyogTUJFRFRMU19FQ1BfRFBfU0VDUDE5MksxX0VOQUJMRUQpIHx8CisgICAgICAgICAgTUJFRFRMU19FQ1BfRFBfU0VDUDIyNEsxX0VOQUJMRUQpIHx8CisgICAgICAgICAgTUJFRFRMU19FQ1BfRFBfU0VDUDI1NksxX0VOQUJMRUQpICovCisKKyNpZiBkZWZpbmVkKE1CRURUTFNfRUNQX0RQX1NFQ1AxOTJLMV9FTkFCTEVEKQorLyoKKyAqIEZhc3QgcXVhc2ktcmVkdWN0aW9uIG1vZHVsbyBwMTkyazEgPSAyXjE5MiAtIFIsCisgKiB3aXRoIFIgPSAyXjMyICsgMl4xMiArIDJeOCArIDJeNyArIDJeNiArIDJeMyArIDEgPSAweDAxMDAwMDExQzkKKyAqLworc3RhdGljIGludCBlY3BfbW9kX3AxOTJrMShtYmVkdGxzX21waSAqTikKK3sKKyAgICBzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBScFtdID0geworICAgICAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QzksIDB4MTEsIDB4MDAsIDB4MDAsIDB4MDEsIDB4MDAsIDB4MDAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMCkKKyAgICB9OworCisgICAgcmV0dXJuIGVjcF9tb2Rfa29ibGl0eihOLCBScCwgMTkyIC8gOCAvIHNpemVvZihtYmVkdGxzX21waV91aW50KSwgMCwgMCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIDApOworfQorI2VuZGlmIC8qIE1CRURUTFNfRUNQX0RQX1NFQ1AxOTJLMV9FTkFCTEVEICovCisKKyNpZiBkZWZpbmVkKE1CRURUTFNfRUNQX0RQX1NFQ1AyMjRLMV9FTkFCTEVEKQorLyoKKyAqIEZhc3QgcXVhc2ktcmVkdWN0aW9uIG1vZHVsbyBwMjI0azEgPSAyXjIyNCAtIFIsCisgKiB3aXRoIFIgPSAyXjMyICsgMl4xMiArIDJeMTEgKyAyXjkgKyAyXjcgKyAyXjQgKyAyICsgMSA9IDB4MDEwMDAwMUE5MworICovCitzdGF0aWMgaW50IGVjcF9tb2RfcDIyNGsxKG1iZWR0bHNfbXBpICpOKQoreworICAgIHN0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IFJwW10gPSB7CisgICAgICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg5MywgMHgxQSwgMHgwMCwgMHgwMCwgMHgwMSwgMHgwMCwgMHgwMCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwKQorICAgIH07CisKKyNpZiBkZWZpbmVkKE1CRURUTFNfSEFWRV9JTlQ2NCkKKyAgICByZXR1cm4gZWNwX21vZF9rb2JsaXR6KE4sIFJwLCA0LCAxLCAzMiwgMHhGRkZGRkZGRik7CisjZWxzZQorICAgIHJldHVybiBlY3BfbW9kX2tvYmxpdHooTiwgUnAsIDIyNCAvIDggLyBzaXplb2YobWJlZHRsc19tcGlfdWludCksIDAsIDAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAwKTsKKyNlbmRpZgorfQorCisjZW5kaWYgLyogTUJFRFRMU19FQ1BfRFBfU0VDUDIyNEsxX0VOQUJMRUQgKi8KKworI2lmIGRlZmluZWQoTUJFRFRMU19FQ1BfRFBfU0VDUDI1NksxX0VOQUJMRUQpCisvKgorICogRmFzdCBxdWFzaS1yZWR1Y3Rpb24gbW9kdWxvIHAyNTZrMSA9IDJeMjU2IC0gUiwKKyAqIHdpdGggUiA9IDJeMzIgKyAyXjkgKyAyXjggKyAyXjcgKyAyXjYgKyAyXjQgKyAxID0gMHgwMTAwMDAwM0QxCisgKi8KK3N0YXRpYyBpbnQgZWNwX21vZF9wMjU2azEobWJlZHRsc19tcGkgKk4pCit7CisgICAgc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgUnBbXSA9IHsKKyAgICAgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEQxLCAweDAzLCAweDAwLCAweDAwLCAweDAxLCAweDAwLCAweDAwLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDApCisgICAgfTsKKyAgICByZXR1cm4gZWNwX21vZF9rb2JsaXR6KE4sIFJwLCAyNTYgLyA4IC8gc2l6ZW9mKG1iZWR0bHNfbXBpX3VpbnQpLCAwLCAwLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgMCk7Cit9CisjZW5kaWYgLyogTUJFRFRMU19FQ1BfRFBfU0VDUDI1NksxX0VOQUJMRUQgKi8KKworI2lmIGRlZmluZWQoTUJFRFRMU19URVNUX0hPT0tTKQorCitNQkVEVExTX1NUQVRJQ19URVNUQUJMRQorbWJlZHRsc19lY3BfdmFyaWFudCBtYmVkdGxzX2VjcF9nZXRfdmFyaWFudCh2b2lkKQoreworICAgIHJldHVybiBNQkVEVExTX0VDUF9WQVJJQU5UX1dJVEhfTVBJX1NUUlVDVDsKK30KKworI2VuZGlmIC8qIE1CRURUTFNfVEVTVF9IT09LUyAqLworCisjZW5kaWYgLyogTUJFRFRMU19FQ1BfTElHSFQgKi8KKyNlbmRpZiAvKiBNQkVEVExTX0VDUF9XSVRIX01QSV9VSU5UICovCmRpZmYgLS1naXQgYS90Zi1wc2EtY3J5cHRvL2RyaXZlcnMvYnVpbHRpbi9zcmMvZWNwX2N1cnZlc19uZXcuYyBiL3RmLXBzYS1jcnlwdG8vZHJpdmVycy9idWlsdGluL3NyYy9lY3BfY3VydmVzX25ldy5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjE2OTI0N2YKLS0tIC9kZXYvbnVsbAorKysgYi90Zi1wc2EtY3J5cHRvL2RyaXZlcnMvYnVpbHRpbi9zcmMvZWNwX2N1cnZlc19uZXcuYwpAQCAtMCwwICsxLDYwMzMgQEAKKy8qCisgKiAgRWxsaXB0aWMgY3VydmVzIG92ZXIgR0YocCk6IGN1cnZlLXNwZWNpZmljIGRhdGEgYW5kIGZ1bmN0aW9ucworICoKKyAqICBDb3B5cmlnaHQgVGhlIE1iZWQgVExTIENvbnRyaWJ1dG9ycworICogIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wIE9SIEdQTC0yLjAtb3ItbGF0ZXIKKyAqLworCisjaW5jbHVkZSAiY29tbW9uLmgiCisKKyNpZiBkZWZpbmVkKE1CRURUTFNfRUNQX1dJVEhfTVBJX1VJTlQpCisKKyNpZiBkZWZpbmVkKE1CRURUTFNfRUNQX0xJR0hUKQorCisjaW5jbHVkZSAibWJlZHRscy9lY3AuaCIKKyNpbmNsdWRlICJtYmVkdGxzL3BsYXRmb3JtLmgiCisjaW5jbHVkZSAibWJlZHRscy9wbGF0Zm9ybV91dGlsLmgiCisjaW5jbHVkZSAibWJlZHRscy9lcnJvci5oIgorCisjaW5jbHVkZSAibWJlZHRscy9wbGF0Zm9ybS5oIgorCisjaW5jbHVkZSAiY29uc3RhbnRfdGltZV9pbnRlcm5hbC5oIgorCisjaW5jbHVkZSAiYm5fbXVsLmgiCisjaW5jbHVkZSAiYmlnbnVtX2NvcmUuaCIKKyNpbmNsdWRlICJlY3BfaW52YXNpdmUuaCIKKworI2luY2x1ZGUgPHN0cmluZy5oPgorCisjZGVmaW5lIEVDUF9NUElfSU5JVChfcCwgX24pIHsgLnAgPSAobWJlZHRsc19tcGlfdWludCAqKSAoX3ApLCAucyA9IDEsIC5uID0gKF9uKSB9CisKKyNkZWZpbmUgRUNQX01QSV9JTklUX0FSUkFZKHgpICAgXAorICAgIEVDUF9NUElfSU5JVCh4LCBzaXplb2YoeCkgLyBzaXplb2YobWJlZHRsc19tcGlfdWludCkpCisKKyNkZWZpbmUgRUNQX1BPSU5UX0lOSVRfWFlfWjAoeCwgeSkgeyBcCisgICAgICAgIEVDUF9NUElfSU5JVF9BUlJBWSh4KSwgRUNQX01QSV9JTklUX0FSUkFZKHkpLCBFQ1BfTVBJX0lOSVQoTlVMTCwgMCkgfQorI2RlZmluZSBFQ1BfUE9JTlRfSU5JVF9YWV9aMSh4LCB5KSB7IFwKKyAgICAgICAgRUNQX01QSV9JTklUX0FSUkFZKHgpLCBFQ1BfTVBJX0lOSVRfQVJSQVkoeSksIEVDUF9NUElfSU5JVChtcGlfb25lLCAxKSB9CisKKyNpZiBkZWZpbmVkKE1CRURUTFNfRUNQX0RQX1NFQ1AxOTJSMV9FTkFCTEVEKSB8fCAgIFwKKyAgICBkZWZpbmVkKE1CRURUTFNfRUNQX0RQX1NFQ1AyMjRSMV9FTkFCTEVEKSB8fCAgIFwKKyAgICBkZWZpbmVkKE1CRURUTFNfRUNQX0RQX1NFQ1AyNTZSMV9FTkFCTEVEKSB8fCAgIFwKKyAgICBkZWZpbmVkKE1CRURUTFNfRUNQX0RQX1NFQ1AzODRSMV9FTkFCTEVEKSB8fCAgIFwKKyAgICBkZWZpbmVkKE1CRURUTFNfRUNQX0RQX1NFQ1A1MjFSMV9FTkFCTEVEKSB8fCAgIFwKKyAgICBkZWZpbmVkKE1CRURUTFNfRUNQX0RQX0JQMjU2UjFfRU5BQkxFRCkgICB8fCAgIFwKKyAgICBkZWZpbmVkKE1CRURUTFNfRUNQX0RQX0JQMzg0UjFfRU5BQkxFRCkgICB8fCAgIFwKKyAgICBkZWZpbmVkKE1CRURUTFNfRUNQX0RQX0JQNTEyUjFfRU5BQkxFRCkgICB8fCAgIFwKKyAgICBkZWZpbmVkKE1CRURUTFNfRUNQX0RQX1NFQ1AxOTJLMV9FTkFCTEVEKSB8fCAgIFwKKyAgICBkZWZpbmVkKE1CRURUTFNfRUNQX0RQX1NFQ1AyMjRLMV9FTkFCTEVEKSB8fCAgIFwKKyAgICBkZWZpbmVkKE1CRURUTFNfRUNQX0RQX1NFQ1AyNTZLMV9FTkFCTEVEKQorLyogRm9yIHRoZXNlIGN1cnZlcywgd2UgYnVpbGQgdGhlIGdyb3VwIHBhcmFtZXRlcnMgZHluYW1pY2FsbHkuICovCisjZGVmaW5lIEVDUF9MT0FEX0dST1VQCitzdGF0aWMgbWJlZHRsc19tcGlfdWludCBtcGlfb25lW10gPSB7IDEgfTsKKyNlbmRpZgorCisvKgorICogTm90ZTogdGhlIGNvbnN0YW50cyBhcmUgaW4gbGl0dGxlLWVuZGlhbiBvcmRlcgorICogdG8gYmUgZGlyZWN0bHkgdXNhYmxlIGluIE1QSXMKKyAqLworCisvKgorICogRG9tYWluIHBhcmFtZXRlcnMgZm9yIHNlY3AxOTJyMQorICovCisjaWYgZGVmaW5lZChNQkVEVExTX0VDUF9EUF9TRUNQMTkyUjFfRU5BQkxFRCkKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AxOTJyMV9wW10gPSB7CisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEZGLCAweEZGLCAweEZGLCAweEZGLCAweEZGLCAweEZGLCAweEZGLCAweEZGKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RkUsIDB4RkYsIDB4RkYsIDB4RkYsIDB4RkYsIDB4RkYsIDB4RkYsIDB4RkYpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiksCit9Oworc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDE5MnIxX2JbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QjEsIDB4QjksIDB4NDYsIDB4QzEsIDB4RUMsIDB4REUsIDB4QjgsIDB4RkUpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg0OSwgMHgzMCwgMHgyNCwgMHg3MiwgMHhBQiwgMHhFOSwgMHhBNywgMHgwRiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEU3LCAweDgwLCAweDlDLCAweEU1LCAweDE5LCAweDA1LCAweDIxLCAweDY0KSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMTkycjFfZ3hbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MTIsIDB4MTAsIDB4RkYsIDB4ODIsIDB4RkQsIDB4MEEsIDB4RkYsIDB4RjQpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgwMCwgMHg4OCwgMHhBMSwgMHg0MywgMHhFQiwgMHgyMCwgMHhCRiwgMHg3QyksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEY2LCAweDkwLCAweDMwLCAweEIwLCAweDBFLCAweEE4LCAweDhELCAweDE4KSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMTkycjFfZ3lbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MTEsIDB4NDgsIDB4NzksIDB4MUUsIDB4QTEsIDB4NzcsIDB4RjksIDB4NzMpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhENSwgMHhDRCwgMHgyNCwgMHg2QiwgMHhFRCwgMHgxMSwgMHgxMCwgMHg2MyksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDc4LCAweERBLCAweEM4LCAweEZGLCAweDk1LCAweDJCLCAweDE5LCAweDA3KSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMTkycjFfbltdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgzMSwgMHgyOCwgMHhEMiwgMHhCNCwgMHhCMSwgMHhDOSwgMHg2QiwgMHgxNCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDM2LCAweEY4LCAweERFLCAweDk5LCAweEZGLCAweEZGLCAweEZGLCAweEZGKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RkYsIDB4RkYsIDB4RkYsIDB4RkYsIDB4RkYsIDB4RkYsIDB4RkYsIDB4RkYpLAorfTsKKyNpZiBNQkVEVExTX0VDUF9GSVhFRF9QT0lOVF9PUFRJTSA9PSAxCitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMTkycjFfVF8wX1hbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MTIsIDB4MTAsIDB4RkYsIDB4ODIsIDB4RkQsIDB4MEEsIDB4RkYsIDB4RjQpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgwMCwgMHg4OCwgMHhBMSwgMHg0MywgMHhFQiwgMHgyMCwgMHhCRiwgMHg3QyksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEY2LCAweDkwLCAweDMwLCAweEIwLCAweDBFLCAweEE4LCAweDhELCAweDE4KSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMTkycjFfVF8wX1lbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MTEsIDB4NDgsIDB4NzksIDB4MUUsIDB4QTEsIDB4NzcsIDB4RjksIDB4NzMpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhENSwgMHhDRCwgMHgyNCwgMHg2QiwgMHhFRCwgMHgxMSwgMHgxMCwgMHg2MyksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDc4LCAweERBLCAweEM4LCAweEZGLCAweDk1LCAweDJCLCAweDE5LCAweDA3KSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMTkycjFfVF8xX1hbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4OTcsIDB4OUUsIDB4RTMsIDB4NjAsIDB4NTksIDB4RDEsIDB4QzQsIDB4QzIpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg5MSwgMHhCRCwgMHgyMiwgMHhENywgMHgyRCwgMHgwNywgMHhCRCwgMHhCNiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDc0LCAweDJBLCAweENGLCAweDMzLCAweEYwLCAweEJFLCAweEQxLCAweEVEKSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMTkycjFfVF8xX1lbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4ODgsIDB4NzEsIDB4NEIsIDB4QTgsIDB4RUQsIDB4N0UsIDB4QzksIDB4MUEpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg4RSwgMHgyQSwgMHhGNiwgMHhERiwgMHgwRSwgMHhFOCwgMHg0QywgMHgwRiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEM1LCAweDM1LCAweEY3LCAweDhBLCAweEMzLCAweEVDLCAweERFLCAweDFFKSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMTkycjFfVF8yX1hbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MDAsIDB4NjcsIDB4QzIsIDB4MUQsIDB4MzIsIDB4OEYsIDB4MTAsIDB4RkIpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhCQiwgMHgyRCwgMHgxNywgMHhGMywgMHhFNCwgMHhGRSwgMHhEOCwgMHgxMyksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDU1LCAweDQ1LCAweDEwLCAweDcwLCAweDJDLCAweDNFLCAweDUyLCAweDNFKSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMTkycjFfVF8yX1lbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NjEsIDB4RjEsIDB4MDQsIDB4NUQsIDB4RUUsIDB4RDQsIDB4NTYsIDB4RTYpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg3OCwgMHhCNywgMHgzOCwgMHgyNywgMHg2MSwgMHhBQSwgMHg4MSwgMHg4NyksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDcxLCAweDM3LCAweEQ3LCAweDBFLCAweDI5LCAweDBFLCAweDExLCAweDE0KSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMTkycjFfVF8zX1hbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MUUsIDB4MzUsIDB4NTIsIDB4QzYsIDB4MzEsIDB4QjcsIDB4MjcsIDB4RjUpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgzRCwgMHhENCwgMHgxNSwgMHg5OCwgMHgwRiwgMHhFNywgMHhGMywgMHg2QSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEQzLCAweDMxLCAweDcwLCAweDM1LCAweDA5LCAweEEwLCAweDJCLCAweEMyKSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMTkycjFfVF8zX1lbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MjEsIDB4NzUsIDB4QTcsIDB4NEMsIDB4ODgsIDB4Q0YsIDB4NUIsIDB4RTQpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgxNywgMHgxNywgMHg0OCwgMHg4RCwgMHhGMiwgMHhGMCwgMHg4NiwgMHhFRCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDQ5LCAweENGLCAweEZFLCAweDZCLCAweEIwLCAweEE1LCAweDA2LCAweEFCKSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMTkycjFfVF80X1hbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MTgsIDB4NkEsIDB4REMsIDB4OUEsIDB4NkQsIDB4N0IsIDB4NDcsIDB4MkUpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgxMiwgMHhGQywgMHg1MSwgMHgxMiwgMHg2MiwgMHg2NiwgMHgwQiwgMHg1OSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweENELCAweDQwLCAweDkzLCAweEEwLCAweEI1LCAweDVBLCAweDU4LCAweEQ3KSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMTkycjFfVF80X1lbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RUYsIDB4Q0IsIDB4QUYsIDB4REMsIDB4MEIsIDB4QTEsIDB4MjYsIDB4RkIpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhEQSwgMHgzNiwgMHg5RCwgMHhBMywgMHhENywgMHgzQiwgMHhBRCwgMHgzOSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEI0LCAweDNCLCAweDA1LCAweDlBLCAweEE4LCAweEFBLCAweDY5LCAweEIyKSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMTkycjFfVF81X1hbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NkQsIDB4RDksIDB4RDEsIDB4NEQsIDB4NEEsIDB4NkUsIDB4OTYsIDB4MUUpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgxNywgMHg2NiwgMHgzMiwgMHgzOSwgMHhDNiwgMHg1NywgMHg3RCwgMHhFNiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDkyLCAweEEwLCAweDM2LCAweEMyLCAweDQ1LCAweEY5LCAweDAwLCAweDYyKSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMTkycjFfVF81X1lbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QjQsIDB4RUYsIDB4NTksIDB4NDYsIDB4REMsIDB4NjAsIDB4RDksIDB4OEYpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgyNCwgMHhCMCwgMHhFOSwgMHg0MSwgMHhBNCwgMHg4NywgMHg3NiwgMHg4OSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDEzLCAweEQ0LCAweDBFLCAweEIyLCAweEZBLCAweDE2LCAweDU2LCAweERDKSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMTkycjFfVF82X1hbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MEEsIDB4NjIsIDB4RDIsIDB4QjEsIDB4MzQsIDB4QjIsIDB4RjEsIDB4MDYpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhCMiwgMHhFRCwgMHg1NSwgMHhDNSwgMHg0NywgMHhCNSwgMHgwNywgMHgxNSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDE3LCAweEY2LCAweDJGLCAweDk0LCAweEMzLCAweERELCAweDU0LCAweDJGKSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMTkycjFfVF82X1lbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RkQsIDB4QTYsIDB4RDQsIDB4OEMsIDB4QTksIDB4Q0UsIDB4NEQsIDB4MkUpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhCOSwgMHg0QiwgMHg0NiwgMHhDQywgMHhCMiwgMHg1NSwgMHhDOCwgMHhCMiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDNBLCAweEFFLCAweDMxLCAweEVELCAweDg5LCAweDY1LCAweDU5LCAweDU1KSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMTkycjFfVF83X1hbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4Q0MsIDB4MEEsIDB4RDEsIDB4MUEsIDB4QzUsIDB4RjYsIDB4RUEsIDB4NDMpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgwQywgMHhGQywgMHgwQywgMHgxQSwgMHhGQiwgMHhBMCwgMHhDOCwgMHg3MCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEVBLCAweEZELCAweDUzLCAweDZGLCAweDZELCAweEJGLCAweEJBLCAweEFGKSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMTkycjFfVF83X1lbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MkQsIDB4QjAsIDB4N0QsIDB4ODMsIDB4OTYsIDB4RTMsIDB4Q0IsIDB4OUQpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg2RiwgMHg2RSwgMHg1NSwgMHgyQywgMHgyMCwgMHg1MywgMHgyRiwgMHg0NiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEE2LCAweDY2LCAweDAwLCAweDE3LCAweDA4LCAweEZFLCAweEFDLCAweDMxKSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMTkycjFfVF84X1hbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MDksIDB4MTIsIDB4OTcsIDB4M0EsIDB4QzcsIDB4NTcsIDB4NDUsIDB4Q0QpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgzOCwgMHgyNSwgMHg5OSwgMHgwMCwgMHhGNiwgMHg5NywgMHhCNCwgMHg2NCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDlCLCAweDc0LCAweEU2LCAweEU2LCAweEEzLCAweERGLCAweDlDLCAweENDKSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMTkycjFfVF84X1lbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MzIsIDB4RjQsIDB4NzYsIDB4RDUsIDB4NUYsIDB4MkEsIDB4RkQsIDB4ODUpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg2MiwgMHg4MCwgMHg3RSwgMHgzRSwgMHhFNSwgMHhFOCwgMHhENiwgMHg2MyksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEUyLCAweEFELCAweDFFLCAweDcwLCAweDc5LCAweDNFLCAweDNELCAweDgzKSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMTkycjFfVF85X1hbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4OEUsIDB4MTUsIDB4QkIsIDB4QjMsIDB4NDIsIDB4NkEsIDB4QTEsIDB4N0MpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg5QiwgMHg1OCwgMHhDQiwgMHg0MywgMHgyNSwgMHgwMCwgMHgxNCwgMHg2OCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDA2LCAweDRFLCAweDkzLCAweDExLCAweEUwLCAweDMyLCAweDU0LCAweDk4KSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMTkycjFfVF85X1lbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QTcsIDB4NTIsIDB4QTIsIDB4QjQsIDB4NTcsIDB4MzIsIDB4QjksIDB4MTEpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg3RCwgMHg0MywgMHhBMSwgMHhCMSwgMHhGQiwgMHgwMSwgMHhFMSwgMHhFNyksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEE2LCAweEZCLCAweDVBLCAweDExLCAweEI4LCAweEMyLCAweDAzLCAweEU1KSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMTkycjFfVF8xMF9YW10gPSB7CisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDFDLCAweDJCLCAweDcxLCAweDI2LCAweDRFLCAweDdDLCAweEM1LCAweDMyKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MUYsIDB4RjUsIDB4RDMsIDB4QTgsIDB4RTQsIDB4OTUsIDB4NDgsIDB4NjUpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg1NSwgMHhBRSwgMHhEOSwgMHg1RCwgMHg5RiwgMHg2QSwgMHgyMiwgMHhBRCksCit9Oworc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDE5MnIxX1RfMTBfWVtdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhEOSwgMHhDQywgMHhBMywgMHg0RCwgMHhBMCwgMHgxQywgMHgzNCwgMHhFRiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEEzLCAweDNDLCAweDYyLCAweEY4LCAweDVFLCAweEE2LCAweDU4LCAweDdEKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NkQsIDB4NkUsIDB4NjYsIDB4OEEsIDB4M0QsIDB4MTcsIDB4RkYsIDB4MEYpLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AxOTJyMV9UXzExX1hbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RjcsIDB4Q0QsIDB4QTgsIDB4REQsIDB4RDEsIDB4MjAsIDB4NUMsIDB4RUEpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhCRiwgMHhGRSwgMHgxNywgMHhFMiwgMHhDRiwgMHhFQSwgMHg2MywgMHhERSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDc0LCAweDUxLCAweEM5LCAweDE2LCAweERFLCAweEI0LCAweEIyLCAweEREKSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMTkycjFfVF8xMV9ZW10gPSB7CisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDU5LCAweEJFLCAweDEyLCAweEQ3LCAweEEzLCAweDBBLCAweDUwLCAweDMzKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NTMsIDB4ODcsIDB4QzUsIDB4OEEsIDB4NzYsIDB4NTcsIDB4MDcsIDB4NjApLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhFNSwgMHgxRiwgMHhDNiwgMHgxQiwgMHg2NiwgMHhDNCwgMHgzRCwgMHg4QSksCit9Oworc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDE5MnIxX1RfMTJfWFtdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgyOCwgMHhBNCwgMHg4NSwgMHgxMywgMHg4RiwgMHhBNywgMHgzNSwgMHgxOSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDU4LCAweDBELCAweEZELCAweEZGLCAweDFCLCAweEQxLCAweEQ2LCAweEVGKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QkEsIDB4N0EsIDB4RDAsIDB4QzMsIDB4QjQsIDB4RUYsIDB4MzksIDB4NjYpLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AxOTJyMV9UXzEyX1lbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4M0EsIDB4RkUsIDB4QTUsIDB4OUMsIDB4MzQsIDB4MzAsIDB4NDksIDB4NDApLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhERSwgMHhDNSwgMHgzOSwgMHgyNiwgMHgwNiwgMHhFMywgMHgwMSwgMHgxNyksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEUyLCAweDJCLCAweDY2LCAweEZDLCAweDk1LCAweDVGLCAweDM1LCAweEY3KSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMTkycjFfVF8xM19YW10gPSB7CisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDU4LCAweENGLCAweDU0LCAweDYzLCAweDk5LCAweDU3LCAweDA1LCAweDQ1KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NzEsIDB4NkYsIDB4MDAsIDB4NUYsIDB4NjUsIDB4MDgsIDB4NDcsIDB4OTgpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg2MiwgMHgyQSwgMHg5MCwgMHg2RCwgMHg2NywgMHhDNiwgMHhCQywgMHg0NSksCit9Oworc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDE5MnIxX1RfMTNfWVtdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg4QSwgMHg0RCwgMHg4OCwgMHgwQSwgMHgzNSwgMHg5RSwgMHgzMywgMHg5QyksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDdDLCAweDE3LCAweDBDLCAweEY4LCAweEUxLCAweDdBLCAweDQ5LCAweDAyKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QTQsIDB4NDQsIDB4MDYsIDB4OEYsIDB4MEIsIDB4NzAsIDB4MkYsIDB4NzEpLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AxOTJyMV9UXzE0X1hbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4ODUsIDB4NEIsIDB4Q0IsIDB4RjksIDB4OEUsIDB4NkEsIDB4REEsIDB4MUIpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgyOSwgMHg0MywgMHhBMSwgMHgzRiwgMHhDRSwgMHgxNywgMHhEMiwgMHgzMiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDVELCAweDBELCAweEQyLCAweDZDLCAweDgyLCAweDM3LCAweEU1LCAweEZDKSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMTkycjFfVF8xNF9ZW10gPSB7CisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDRBLCAweDNDLCAweEY0LCAweDkyLCAweEI0LCAweDhBLCAweDk1LCAweDg1KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4ODUsIDB4OTYsIDB4RjEsIDB4MEEsIDB4MzQsIDB4MkYsIDB4NzQsIDB4N0UpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg3QiwgMHhBMSwgMHhBQSwgMHhCQSwgMHg4NiwgMHg3NywgMHg0RiwgMHhBMiksCit9Oworc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDE5MnIxX1RfMTVfWFtdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhFNSwgMHg3RiwgMHhFRiwgMHg2MCwgMHg1MCwgMHg4MCwgMHhENywgMHhENCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDMxLCAweEFDLCAweEM5LCAweEZFLCAweEVDLCAweDBBLCAweDFBLCAweDlGKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NkIsIDB4MkYsIDB4QkUsIDB4OTEsIDB4RDcsIDB4QjcsIDB4MzgsIDB4NDgpLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AxOTJyMV9UXzE1X1lbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QjEsIDB4QUUsIDB4ODUsIDB4OTgsIDB4RkUsIDB4MDUsIDB4N0YsIDB4OUYpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg5MSwgMHhCRSwgMHhGRCwgMHgxMSwgMHgzMSwgMHgzRCwgMHgxNCwgMHgxMyksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDU5LCAweDc1LCAweEU4LCAweDMwLCAweDAxLCAweENCLCAweDlCLCAweDFDKSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19lY3BfcG9pbnQgc2VjcDE5MnIxX1RbMTZdID0geworICAgIEVDUF9QT0lOVF9JTklUX1hZX1oxKHNlY3AxOTJyMV9UXzBfWCwgc2VjcDE5MnIxX1RfMF9ZKSwKKyAgICBFQ1BfUE9JTlRfSU5JVF9YWV9aMChzZWNwMTkycjFfVF8xX1gsIHNlY3AxOTJyMV9UXzFfWSksCisgICAgRUNQX1BPSU5UX0lOSVRfWFlfWjAoc2VjcDE5MnIxX1RfMl9YLCBzZWNwMTkycjFfVF8yX1kpLAorICAgIEVDUF9QT0lOVF9JTklUX1hZX1owKHNlY3AxOTJyMV9UXzNfWCwgc2VjcDE5MnIxX1RfM19ZKSwKKyAgICBFQ1BfUE9JTlRfSU5JVF9YWV9aMChzZWNwMTkycjFfVF80X1gsIHNlY3AxOTJyMV9UXzRfWSksCisgICAgRUNQX1BPSU5UX0lOSVRfWFlfWjAoc2VjcDE5MnIxX1RfNV9YLCBzZWNwMTkycjFfVF81X1kpLAorICAgIEVDUF9QT0lOVF9JTklUX1hZX1owKHNlY3AxOTJyMV9UXzZfWCwgc2VjcDE5MnIxX1RfNl9ZKSwKKyAgICBFQ1BfUE9JTlRfSU5JVF9YWV9aMChzZWNwMTkycjFfVF83X1gsIHNlY3AxOTJyMV9UXzdfWSksCisgICAgRUNQX1BPSU5UX0lOSVRfWFlfWjAoc2VjcDE5MnIxX1RfOF9YLCBzZWNwMTkycjFfVF84X1kpLAorICAgIEVDUF9QT0lOVF9JTklUX1hZX1owKHNlY3AxOTJyMV9UXzlfWCwgc2VjcDE5MnIxX1RfOV9ZKSwKKyAgICBFQ1BfUE9JTlRfSU5JVF9YWV9aMChzZWNwMTkycjFfVF8xMF9YLCBzZWNwMTkycjFfVF8xMF9ZKSwKKyAgICBFQ1BfUE9JTlRfSU5JVF9YWV9aMChzZWNwMTkycjFfVF8xMV9YLCBzZWNwMTkycjFfVF8xMV9ZKSwKKyAgICBFQ1BfUE9JTlRfSU5JVF9YWV9aMChzZWNwMTkycjFfVF8xMl9YLCBzZWNwMTkycjFfVF8xMl9ZKSwKKyAgICBFQ1BfUE9JTlRfSU5JVF9YWV9aMChzZWNwMTkycjFfVF8xM19YLCBzZWNwMTkycjFfVF8xM19ZKSwKKyAgICBFQ1BfUE9JTlRfSU5JVF9YWV9aMChzZWNwMTkycjFfVF8xNF9YLCBzZWNwMTkycjFfVF8xNF9ZKSwKKyAgICBFQ1BfUE9JTlRfSU5JVF9YWV9aMChzZWNwMTkycjFfVF8xNV9YLCBzZWNwMTkycjFfVF8xNV9ZKSwKK307CisjZWxzZQorI2RlZmluZSBzZWNwMTkycjFfVCBOVUxMCisjZW5kaWYKKyNlbmRpZiAvKiBNQkVEVExTX0VDUF9EUF9TRUNQMTkyUjFfRU5BQkxFRCAqLworCisvKgorICogRG9tYWluIHBhcmFtZXRlcnMgZm9yIHNlY3AyMjRyMQorICovCisjaWYgZGVmaW5lZChNQkVEVExTX0VDUF9EUF9TRUNQMjI0UjFfRU5BQkxFRCkKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AyMjRyMV9wW10gPSB7CisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDAxLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4RkYsIDB4RkYsIDB4RkYsIDB4RkYpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEZGLCAweEZGLCAweEZGLCAweEZGLCAweDAwLCAweDAwLCAweDAwLCAweDAwKSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMjI0cjFfYltdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhCNCwgMHhGRiwgMHg1NSwgMHgyMywgMHg0MywgMHgzOSwgMHgwQiwgMHgyNyksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEJBLCAweEQ4LCAweEJGLCAweEQ3LCAweEI3LCAweEIwLCAweDQ0LCAweDUwKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NTYsIDB4MzIsIDB4NDEsIDB4RjUsIDB4QUIsIDB4QjMsIDB4MDQsIDB4MEMpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzQoMHg4NSwgMHgwQSwgMHgwNSwgMHhCNCksCit9Oworc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDIyNHIxX2d4W10gPSB7CisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDIxLCAweDFELCAweDVDLCAweDExLCAweEQ2LCAweDgwLCAweDMyLCAweDM0KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MjIsIDB4MTEsIDB4QzIsIDB4NTYsIDB4RDMsIDB4QzEsIDB4MDMsIDB4NEEpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhCOSwgMHg5MCwgMHgxMywgMHgzMiwgMHg3RiwgMHhCRiwgMHhCNCwgMHg2QiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfNCgweEJELCAweDBDLCAweDBFLCAweEI3KSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMjI0cjFfZ3lbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MzQsIDB4N0UsIDB4MDAsIDB4ODUsIDB4OTksIDB4ODEsIDB4RDUsIDB4NDQpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg2NCwgMHg0NywgMHgwNywgMHg1QSwgMHhBMCwgMHg3NSwgMHg0MywgMHhDRCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEU2LCAweERGLCAweDIyLCAweDRDLCAweEZCLCAweDIzLCAweEY3LCAweEI1KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF80KDB4ODgsIDB4NjMsIDB4MzcsIDB4QkQpLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AyMjRyMV9uW10gPSB7CisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDNELCAweDJBLCAweDVDLCAweDVDLCAweDQ1LCAweDI5LCAweERELCAweDEzKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4M0UsIDB4RjAsIDB4QjgsIDB4RTAsIDB4QTIsIDB4MTYsIDB4RkYsIDB4RkYpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfNCgweEZGLCAweEZGLCAweEZGLCAweEZGKSwKK307CisjaWYgTUJFRFRMU19FQ1BfRklYRURfUE9JTlRfT1BUSU0gPT0gMQorc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDIyNHIxX1RfMF9YW10gPSB7CisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDIxLCAweDFELCAweDVDLCAweDExLCAweEQ2LCAweDgwLCAweDMyLCAweDM0KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MjIsIDB4MTEsIDB4QzIsIDB4NTYsIDB4RDMsIDB4QzEsIDB4MDMsIDB4NEEpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhCOSwgMHg5MCwgMHgxMywgMHgzMiwgMHg3RiwgMHhCRiwgMHhCNCwgMHg2QiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEJELCAweDBDLCAweDBFLCAweEI3LCAweDAwLCAweDAwLCAweDAwLCAweDAwKSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMjI0cjFfVF8wX1lbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MzQsIDB4N0UsIDB4MDAsIDB4ODUsIDB4OTksIDB4ODEsIDB4RDUsIDB4NDQpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg2NCwgMHg0NywgMHgwNywgMHg1QSwgMHhBMCwgMHg3NSwgMHg0MywgMHhDRCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEU2LCAweERGLCAweDIyLCAweDRDLCAweEZCLCAweDIzLCAweEY3LCAweEI1KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4ODgsIDB4NjMsIDB4MzcsIDB4QkQsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDApLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AyMjRyMV9UXzFfWFtdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhFMCwgMHhGOSwgMHhCOCwgMHhEMCwgMHgzRCwgMHhEMiwgMHhEMywgMHhGQSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDFFLCAweEZELCAweDk5LCAweDI2LCAweDE5LCAweEZFLCAweDEzLCAweDZFKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MUMsIDB4MEUsIDB4NEMsIDB4NDgsIDB4N0MsIDB4QTIsIDB4MTcsIDB4MDEpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgzRCwgMHhBMywgMHgxMywgMHg1NywgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCksCit9Oworc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDIyNHIxX1RfMV9ZW10gPSB7CisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDlGLCAweDE2LCAweDVDLCAweDhGLCAweEFBLCAweEVELCAweDBGLCAweDU4KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QkYsIDB4QzUsIDB4NDMsIDB4MzQsIDB4OTMsIDB4MDUsIDB4MkEsIDB4NEMpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhFNCwgMHhFMywgMHg2QywgMHhDQSwgMHhDNiwgMHgxNCwgMHhDMiwgMHgyNSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEQzLCAweDQzLCAweDZDLCAweEQ3LCAweDAwLCAweDAwLCAweDAwLCAweDAwKSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMjI0cjFfVF8yX1hbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QzMsIDB4NUEsIDB4OTgsIDB4MUUsIDB4QzgsIDB4QTUsIDB4NDIsIDB4QTMpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg5OCwgMHg0OSwgMHg1NiwgMHg3OCwgMHhGOCwgMHhFRiwgMHhFRCwgMHg2NSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDFCLCAweEJCLCAweDY0LCAweEI2LCAweDRDLCAweDU0LCAweDVGLCAweEQxKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MkYsIDB4MEMsIDB4MzMsIDB4Q0MsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDApLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AyMjRyMV9UXzJfWVtdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhGQSwgMHg3OSwgMHhDQiwgMHgyRSwgMHgwOCwgMHhGRiwgMHhEOCwgMHhFNiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDJFLCAweDFGLCAweEQ0LCAweEQ3LCAweDU3LCAweEU5LCAweDM5LCAweDQ1KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RDgsIDB4RDYsIDB4M0IsIDB4MEEsIDB4MUMsIDB4ODcsIDB4QjcsIDB4NkEpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhFQiwgMHgzMCwgMHhEOCwgMHgwNSwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCksCit9Oworc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDIyNHIxX1RfM19YW10gPSB7CisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEFELCAweDc5LCAweDc0LCAweDlBLCAweEU2LCAweEJCLCAweEMyLCAweEMyKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QjQsIDB4NUIsIDB4QTYsIDB4NjcsIDB4QzEsIDB4OTEsIDB4RTcsIDB4NjQpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhGMCwgMHhERiwgMHgzOCwgMHg4MiwgMHgxOSwgMHgyQywgMHg0QywgMHhDQSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEQxLCAweDJFLCAweDM5LCAweEM1LCAweDAwLCAweDAwLCAweDAwLCAweDAwKSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMjI0cjFfVF8zX1lbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4OTksIDB4MzYsIDB4NzgsIDB4NEUsIDB4QUUsIDB4NUIsIDB4MDIsIDB4NzYpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgxNCwgMHhGNiwgMHg4QiwgMHhGOCwgMHhGNCwgMHg5MiwgMHg2QiwgMHg0MiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEJBLCAweDRELCAweDcxLCAweDM1LCAweEU3LCAweDBDLCAweDJDLCAweDk4KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4OUIsIDB4QTUsIDB4MUYsIDB4QUUsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDApLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AyMjRyMV9UXzRfWFtdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhBRiwgMHgxQywgMHg0QiwgMHhERiwgMHg1QiwgMHhGMiwgMHg1MSwgMHhCNyksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDA1LCAweDc0LCAweEIxLCAweDVBLCAweEM2LCAweDBGLCAweDBFLCAweDYxKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RTgsIDB4MjQsIDB4MDksIDB4NjIsIDB4QUYsIDB4RkMsIDB4REIsIDB4NDUpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg0MywgMHhFMSwgMHg4MCwgMHg1NSwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCksCit9Oworc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDIyNHIxX1RfNF9ZW10gPSB7CisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDNDLCAweDgyLCAweEZFLCAweEFELCAweEMzLCAweEU1LCAweENGLCAweEQ4KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MjQsIDB4QTIsIDB4NjIsIDB4MTcsIDB4NzYsIDB4RjAsIDB4NUEsIDB4RkEpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgzRSwgMHhCOCwgMHhFNSwgMHhBQywgMHhCNywgMHg2NiwgMHgzOCwgMHhBQSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDk3LCAweEZELCAweDg2LCAweDA1LCAweDAwLCAweDAwLCAweDAwLCAweDAwKSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMjI0cjFfVF81X1hbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NTksIDB4RDMsIDB4MEMsIDB4M0MsIDB4RDEsIDB4NjYsIDB4QjAsIDB4RjEpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhCQywgMHg1OSwgMHhCNCwgMHg4RCwgMHg5MCwgMHgxMCwgMHhCNywgMHhBMiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDk2LCAweDQ3LCAweDlCLCAweEU2LCAweDU1LCAweDhBLCAweEU0LCAweEVFKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QjEsIDB4NDksIDB4REIsIDB4NzgsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDApLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AyMjRyMV9UXzVfWVtdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg0MSwgMHg5NywgMHhFRCwgMHhERSwgMHhGRiwgMHhCMywgMHhERiwgMHg0OCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDEwLCAweEI5LCAweDgzLCAweEI3LCAweEVCLCAweEJFLCAweDQwLCAweDhEKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QUYsIDB4RDMsIDB4RDMsIDB4Q0QsIDB4MEUsIDB4ODIsIDB4NzksIDB4M0QpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg5QiwgMHg4MywgMHgxQiwgMHhGMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCksCit9Oworc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDIyNHIxX1RfNl9YW10gPSB7CisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDNGLCAweDIyLCAweEJCLCAweDU0LCAweEQzLCAweDMxLCAweDU2LCAweEZDKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4ODAsIDB4MzYsIDB4RTUsIDB4RTAsIDB4ODksIDB4OTYsIDB4OEUsIDB4NzEpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhFMSwgMHhFRiwgMHgwQSwgMHhFRCwgMHhEMCwgMHgxMSwgMHg0QSwgMHhGRiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDE1LCAweDAwLCAweDU3LCAweDI3LCAweDAwLCAweDAwLCAweDAwLCAweDAwKSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMjI0cjFfVF82X1lbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MTMsIDB4Q0EsIDB4M0QsIDB4RjcsIDB4NjQsIDB4OUIsIDB4NkUsIDB4ODUpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg5MCwgMHhFMywgMHg3MCwgMHg2QiwgMHg0MSwgMHhENywgMHhFRCwgMHg4RiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDAyLCAweDQ0LCAweDQ0LCAweDgwLCAweENFLCAweDEzLCAweDM3LCAweDkyKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4OTQsIDB4NzMsIDB4ODAsIDB4NzksIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDApLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AyMjRyMV9UXzdfWFtdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhCNywgMHg0RCwgMHg3MCwgMHg3RCwgMHgzMSwgMHgwRiwgMHgxQywgMHg1OCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDZELCAweDM1LCAweDg4LCAweDQ3LCAweEM0LCAweDI0LCAweDc4LCAweDNGKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QkEsIDB4RjAsIDB4Q0QsIDB4OTEsIDB4ODEsIDB4QjMsIDB4REUsIDB4QjYpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgwNCwgMHhDRSwgMHhDNiwgMHhGNywgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCksCit9Oworc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDIyNHIxX1RfN19ZW10gPSB7CisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEU5LCAweDlDLCAweDJELCAweEU4LCAweEQyLCAweDAwLCAweDhGLCAweDEwKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RDUsIDB4NUUsIDB4N0MsIDB4MEUsIDB4MEMsIDB4NkUsIDB4NTgsIDB4MDIpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhBRSwgMHg4MSwgMHgyMSwgMHhDRSwgMHg0MywgMHhGNCwgMHgyNCwgMHgzRCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDlFLCAweEJDLCAweEYwLCAweEY0LCAweDAwLCAweDAwLCAweDAwLCAweDAwKSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMjI0cjFfVF84X1hbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RDYsIDB4MTAsIDB4QzIsIDB4NzQsIDB4NEEsIDB4OEYsIDB4OEEsIDB4Q0YpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg4OSwgMHg2NywgMHhGNCwgMHgyQiwgMHgzOCwgMHgyQiwgMHgzNSwgMHgxNyksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEY1LCAweEU3LCAweDBDLCAweEE5LCAweEZBLCAweDc3LCAweDVDLCAweEJEKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RTAsIDB4MzMsIDB4MTksIDB4MkIsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDApLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AyMjRyMV9UXzhfWVtdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhFNywgMHgzRSwgMHg5NiwgMHgyMiwgMHg1MywgMHhFMSwgMHhFOSwgMHhCRSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEUwLCAweDEzLCAweEJDLCAweEExLCAweDE2LCAweEVDLCAweDAxLCAweDFBKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4OUEsIDB4MDAsIDB4QzksIDB4N0EsIDB4QzMsIDB4NzMsIDB4QTUsIDB4NDUpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhFMSwgMHhGNCwgMHg1RSwgMHhDMSwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCksCit9Oworc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDIyNHIxX1RfOV9YW10gPSB7CisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEE4LCAweDk1LCAweEQ2LCAweEQ5LCAweDMyLCAweDMwLCAweDJCLCAweEQwKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NzcsIDB4NDIsIDB4MDksIDB4MDUsIDB4NjEsIDB4MkEsIDB4N0UsIDB4ODIpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg3MywgMHg4NCwgMHhBMiwgMHgwNSwgMHg4OCwgMHg2NCwgMHg2NSwgMHhGOSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDAzLCAweDJELCAweDkwLCAweEIzLCAweDAwLCAweDAwLCAweDAwLCAweDAwKSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMjI0cjFfVF85X1lbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MEEsIDB4RTcsIDB4MkUsIDB4ODUsIDB4NTUsIDB4ODAsIDB4N0MsIDB4NzkpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgwRiwgMHhDMSwgMHhBQywgMHg3OCwgMHhCNCwgMHhBRiwgMHhGQiwgMHg2RSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEQzLCAweEMzLCAweDI4LCAweDhFLCAweDc5LCAweDE4LCAweDFGLCAweDU4KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MzQsIDB4NDYsIDB4Q0YsIDB4NDksIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDApLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AyMjRyMV9UXzEwX1hbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NjMsIDB4NUYsIDB4QTgsIDB4NkMsIDB4NDYsIDB4ODMsIDB4NDMsIDB4RkEpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhGQSwgMHhBOSwgMHg5MywgMHgxMSwgMHhCNiwgMHgwNywgMHg1NywgMHg3NCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDc3LCAweDJBLCAweDlELCAweDAzLCAweDg5LCAweDdFLCAweEQ3LCAweDNDKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4N0IsIDB4OEMsIDB4NjIsIDB4Q0YsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDApLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AyMjRyMV9UXzEwX1lbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NDQsIDB4MkMsIDB4MTMsIDB4NTksIDB4Q0MsIDB4RkEsIDB4ODQsIDB4OUUpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg1MSwgMHhCOSwgMHg0OCwgMHhCQywgMHg1NywgMHhDNywgMHhCMywgMHg3QyksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEZDLCAweDBBLCAweDM4LCAweDI0LCAweDJFLCAweDNBLCAweDI4LCAweDI1KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QkMsIDB4MEEsIDB4NDMsIDB4QjgsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDApLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AyMjRyMV9UXzExX1hbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NTksIDB4MjUsIDB4QUIsIDB4QzEsIDB4RUUsIDB4NzAsIDB4M0MsIDB4RTEpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhGMywgMHhEQiwgMHg0NSwgMHgxRCwgMHg0QSwgMHg4MCwgMHg3NSwgMHgzNSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEU4LCAweDFGLCAweDRELCAweDJELCAweDlBLCAweDA1LCAweEY0LCAweENCKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NkIsIDB4MTAsIDB4RjAsIDB4NUEsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDApLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AyMjRyMV9UXzExX1lbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MzUsIDB4OTUsIDB4RTEsIDB4REMsIDB4MTUsIDB4ODYsIDB4QzMsIDB4N0IpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhFQywgMHhEQywgMHgyNywgMHhEMSwgMHg1NiwgMHhBMSwgMHgxNCwgMHgwRCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDU5LCAweDBCLCAweEQ2LCAweDc3LCAweDRFLCAweDQ0LCAweEEyLCAweEY4KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4OTQsIDB4NDIsIDB4NzEsIDB4MUYsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDApLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AyMjRyMV9UXzEyX1hbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MzAsIDB4ODYsIDB4QjIsIDB4QjAsIDB4QzgsIDB4MkYsIDB4N0IsIDB4RkUpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg5NiwgMHhFRiwgMHhDQiwgMHhEQiwgMHhCQywgMHg5RSwgMHgzQiwgMHhDNSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDFCLCAweDAzLCAweDg2LCAweERELCAweDVCLCAweEY1LCAweDhELCAweDQ2KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NTgsIDB4OTUsIDB4NzksIDB4RDYsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDApLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AyMjRyMV9UXzEyX1lbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4ODQsIDB4MzIsIDB4MTQsIDB4REEsIDB4OUIsIDB4NEYsIDB4MDcsIDB4MzkpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhCNSwgMHgzRSwgMHhGQiwgMHgwNiwgMHhFRSwgMHhBNywgMHg0MCwgMHg0MCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDc2LCAweDFGLCAweERGLCAweDcxLCAweDYxLCAweEZELCAweDhCLCAweEJFKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4ODAsIDB4OEIsIDB4QUIsIDB4OEIsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDApLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AyMjRyMV9UXzEzX1hbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QzksIDB4MzQsIDB4QjMsIDB4QjQsIDB4QkMsIDB4OUYsIDB4QjAsIDB4NUUpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhFNiwgMHg1OCwgMHg0OCwgMHhBOCwgMHg3NywgMHhCQiwgMHgxMywgMHgyRiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDQxLCAweEM2LCAweEY3LCAweDM0LCAweENDLCAweDg5LCAweDIxLCAweDBBKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4Q0EsIDB4MzMsIDB4REQsIDB4MUYsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDApLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AyMjRyMV9UXzEzX1lbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4Q0MsIDB4ODEsIDB4RUYsIDB4QTQsIDB4RjIsIDB4MTAsIDB4MEIsIDB4Q0QpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg4MywgMHhGNywgMHg2RSwgMHg3MiwgMHg0QSwgMHhERiwgMHhERCwgMHhFOCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDY3LCAweDIzLCAweDBBLCAweDUzLCAweDAzLCAweDE2LCAweDYyLCAweEQyKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MEIsIDB4NzYsIDB4RkQsIDB4M0MsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDApLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AyMjRyMV9UXzE0X1hbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4Q0IsIDB4MTQsIDB4QTEsIDB4RkEsIDB4QTAsIDB4MTgsIDB4QkUsIDB4MDcpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgwMywgMHgyQSwgMHhFMSwgMHhENywgMHhCMCwgMHg2QywgMHhBMCwgMHhERSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEQxLCAweEMwLCAweEIwLCAweEM2LCAweDYzLCAweDI0LCAweENELCAweDRFKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MzMsIDB4MzgsIDB4MkMsIDB4QjEsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDApLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AyMjRyMV9UXzE0X1lbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RUUsIDB4Q0QsIDB4N0QsIDB4MjAsIDB4MEMsIDB4RkUsIDB4QUMsIDB4QzMpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgwOSwgMHg5NywgMHg5RiwgMHhBMiwgMHhCNiwgMHg0NSwgMHhGNywgMHg3QiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweENBLCAweDk5LCAweEYzLCAweEQyLCAweDIwLCAweDAyLCAweEVCLCAweDA0KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NDMsIDB4MTgsIDB4NUIsIDB4N0IsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDApLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AyMjRyMV9UXzE1X1hbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MkIsIDB4REQsIDB4NzcsIDB4OTEsIDB4NjAsIDB4RUEsIDB4RkQsIDB4RDMpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg3RCwgMHhEMywgMHhCNSwgMHhENiwgMHg5MCwgMHgxNywgMHgwRSwgMHgxQSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDAwLCAweEY0LCAweDI4LCAweEMxLCAweEYyLCAweDUzLCAweEY2LCAweDYzKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NDksIDB4NTgsIDB4REMsIDB4NjEsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDApLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AyMjRyMV9UXzE1X1lbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QTgsIDB4MjAsIDB4MDEsIDB4RkIsIDB4RjEsIDB4QkQsIDB4NUYsIDB4NDUpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhEMCwgMHg3RiwgMHgwNiwgMHhEQSwgMHgxMSwgMHhDQiwgMHhCQSwgMHhBNiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEE3LCAweDQxLCAweDAwLCAweEE0LCAweDFCLCAweDMwLCAweDMzLCAweDc5KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RjQsIDB4RkYsIDB4MjcsIDB4Q0EsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDApLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX2VjcF9wb2ludCBzZWNwMjI0cjFfVFsxNl0gPSB7CisgICAgRUNQX1BPSU5UX0lOSVRfWFlfWjEoc2VjcDIyNHIxX1RfMF9YLCBzZWNwMjI0cjFfVF8wX1kpLAorICAgIEVDUF9QT0lOVF9JTklUX1hZX1owKHNlY3AyMjRyMV9UXzFfWCwgc2VjcDIyNHIxX1RfMV9ZKSwKKyAgICBFQ1BfUE9JTlRfSU5JVF9YWV9aMChzZWNwMjI0cjFfVF8yX1gsIHNlY3AyMjRyMV9UXzJfWSksCisgICAgRUNQX1BPSU5UX0lOSVRfWFlfWjAoc2VjcDIyNHIxX1RfM19YLCBzZWNwMjI0cjFfVF8zX1kpLAorICAgIEVDUF9QT0lOVF9JTklUX1hZX1owKHNlY3AyMjRyMV9UXzRfWCwgc2VjcDIyNHIxX1RfNF9ZKSwKKyAgICBFQ1BfUE9JTlRfSU5JVF9YWV9aMChzZWNwMjI0cjFfVF81X1gsIHNlY3AyMjRyMV9UXzVfWSksCisgICAgRUNQX1BPSU5UX0lOSVRfWFlfWjAoc2VjcDIyNHIxX1RfNl9YLCBzZWNwMjI0cjFfVF82X1kpLAorICAgIEVDUF9QT0lOVF9JTklUX1hZX1owKHNlY3AyMjRyMV9UXzdfWCwgc2VjcDIyNHIxX1RfN19ZKSwKKyAgICBFQ1BfUE9JTlRfSU5JVF9YWV9aMChzZWNwMjI0cjFfVF84X1gsIHNlY3AyMjRyMV9UXzhfWSksCisgICAgRUNQX1BPSU5UX0lOSVRfWFlfWjAoc2VjcDIyNHIxX1RfOV9YLCBzZWNwMjI0cjFfVF85X1kpLAorICAgIEVDUF9QT0lOVF9JTklUX1hZX1owKHNlY3AyMjRyMV9UXzEwX1gsIHNlY3AyMjRyMV9UXzEwX1kpLAorICAgIEVDUF9QT0lOVF9JTklUX1hZX1owKHNlY3AyMjRyMV9UXzExX1gsIHNlY3AyMjRyMV9UXzExX1kpLAorICAgIEVDUF9QT0lOVF9JTklUX1hZX1owKHNlY3AyMjRyMV9UXzEyX1gsIHNlY3AyMjRyMV9UXzEyX1kpLAorICAgIEVDUF9QT0lOVF9JTklUX1hZX1owKHNlY3AyMjRyMV9UXzEzX1gsIHNlY3AyMjRyMV9UXzEzX1kpLAorICAgIEVDUF9QT0lOVF9JTklUX1hZX1owKHNlY3AyMjRyMV9UXzE0X1gsIHNlY3AyMjRyMV9UXzE0X1kpLAorICAgIEVDUF9QT0lOVF9JTklUX1hZX1owKHNlY3AyMjRyMV9UXzE1X1gsIHNlY3AyMjRyMV9UXzE1X1kpLAorfTsKKyNlbHNlCisjZGVmaW5lIHNlY3AyMjRyMV9UIE5VTEwKKyNlbmRpZgorI2VuZGlmIC8qIE1CRURUTFNfRUNQX0RQX1NFQ1AyMjRSMV9FTkFCTEVEICovCisKKy8qCisgKiBEb21haW4gcGFyYW1ldGVycyBmb3Igc2VjcDI1NnIxCisgKi8KKyNpZiBkZWZpbmVkKE1CRURUTFNfRUNQX0RQX1NFQ1AyNTZSMV9FTkFCTEVEKQorc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDI1NnIxX3BbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RkYsIDB4RkYsIDB4RkYsIDB4RkYsIDB4RkYsIDB4RkYsIDB4RkYsIDB4RkYpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MDEsIDB4MDAsIDB4MDAsIDB4MDAsIDB4RkYsIDB4RkYsIDB4RkYsIDB4RkYpLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AyNTZyMV9iW10gPSB7CisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDRCLCAweDYwLCAweEQyLCAweDI3LCAweDNFLCAweDNDLCAweENFLCAweDNCKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RjYsIDB4QjAsIDB4NTMsIDB4Q0MsIDB4QjAsIDB4MDYsIDB4MUQsIDB4NjUpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhCQywgMHg4NiwgMHg5OCwgMHg3NiwgMHg1NSwgMHhCRCwgMHhFQiwgMHhCMyksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEU3LCAweDkzLCAweDNBLCAweEFBLCAweEQ4LCAweDM1LCAweEM2LCAweDVBKSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMjU2cjFfZ3hbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4OTYsIDB4QzIsIDB4OTgsIDB4RDgsIDB4NDUsIDB4MzksIDB4QTEsIDB4RjQpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhBMCwgMHgzMywgMHhFQiwgMHgyRCwgMHg4MSwgMHg3RCwgMHgwMywgMHg3NyksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEYyLCAweDQwLCAweEE0LCAweDYzLCAweEU1LCAweEU2LCAweEJDLCAweEY4KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NDcsIDB4NDIsIDB4MkMsIDB4RTEsIDB4RjIsIDB4RDEsIDB4MTcsIDB4NkIpLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AyNTZyMV9neVtdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhGNSwgMHg1MSwgMHhCRiwgMHgzNywgMHg2OCwgMHg0MCwgMHhCNiwgMHhDQiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweENFLCAweDVFLCAweDMxLCAweDZCLCAweDU3LCAweDMzLCAweENFLCAweDJCKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MTYsIDB4OUUsIDB4MEYsIDB4N0MsIDB4NEEsIDB4RUIsIDB4RTcsIDB4OEUpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg5QiwgMHg3RiwgMHgxQSwgMHhGRSwgMHhFMiwgMHg0MiwgMHhFMywgMHg0RiksCit9Oworc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDI1NnIxX25bXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NTEsIDB4MjUsIDB4NjMsIDB4RkMsIDB4QzIsIDB4Q0EsIDB4QjksIDB4RjMpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg4NCwgMHg5RSwgMHgxNywgMHhBNywgMHhBRCwgMHhGQSwgMHhFNiwgMHhCQyksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEZGLCAweEZGLCAweEZGLCAweEZGLCAweEZGLCAweEZGLCAweEZGLCAweEZGKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4RkYsIDB4RkYsIDB4RkYsIDB4RkYpLAorfTsKKyNpZiBNQkVEVExTX0VDUF9GSVhFRF9QT0lOVF9PUFRJTSA9PSAxCitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMjU2cjFfVF8wX1hbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4OTYsIDB4QzIsIDB4OTgsIDB4RDgsIDB4NDUsIDB4MzksIDB4QTEsIDB4RjQpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhBMCwgMHgzMywgMHhFQiwgMHgyRCwgMHg4MSwgMHg3RCwgMHgwMywgMHg3NyksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEYyLCAweDQwLCAweEE0LCAweDYzLCAweEU1LCAweEU2LCAweEJDLCAweEY4KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NDcsIDB4NDIsIDB4MkMsIDB4RTEsIDB4RjIsIDB4RDEsIDB4MTcsIDB4NkIpLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AyNTZyMV9UXzBfWVtdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhGNSwgMHg1MSwgMHhCRiwgMHgzNywgMHg2OCwgMHg0MCwgMHhCNiwgMHhDQiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweENFLCAweDVFLCAweDMxLCAweDZCLCAweDU3LCAweDMzLCAweENFLCAweDJCKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MTYsIDB4OUUsIDB4MEYsIDB4N0MsIDB4NEEsIDB4RUIsIDB4RTcsIDB4OEUpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg5QiwgMHg3RiwgMHgxQSwgMHhGRSwgMHhFMiwgMHg0MiwgMHhFMywgMHg0RiksCit9Oworc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDI1NnIxX1RfMV9YW10gPSB7CisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDcwLCAweEM4LCAweEJBLCAweDA0LCAweEI3LCAweDRCLCAweEQyLCAweEY3KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QUIsIDB4QzYsIDB4MjMsIDB4M0EsIDB4QTAsIDB4MDksIDB4M0EsIDB4NTkpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgxRCwgMHg5RCwgMHg0QywgMHhGOSwgMHg1OCwgMHgyMywgMHhDQywgMHhERiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDAyLCAweEVELCAweDdCLCAweDI5LCAweDg3LCAweDBGLCAweEZBLCAweDNDKSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMjU2cjFfVF8xX1lbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NDAsIDB4NjksIDB4RjIsIDB4NDAsIDB4MEIsIDB4QTMsIDB4OTgsIDB4Q0UpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhBRiwgMHhBOCwgMHg0OCwgMHgwMiwgMHgwRCwgMHgxQywgMHgxMiwgMHg2MiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDlCLCAweEFGLCAweDA5LCAweDgzLCAweDgwLCAweEFBLCAweDU4LCAweEE3KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QzYsIDB4MTIsIDB4QkUsIDB4NzAsIDB4OTQsIDB4NzYsIDB4RTMsIDB4RTQpLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AyNTZyMV9UXzJfWFtdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg3RCwgMHg3RCwgMHhFRiwgMHg4NiwgMHhGRiwgMHhFMywgMHgzNywgMHhERCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweERCLCAweDg2LCAweDhCLCAweDA4LCAweDI3LCAweDdDLCAweEQ3LCAweEY2KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4OTEsIDB4NTQsIDB4NEMsIDB4MjUsIDB4NEYsIDB4OUEsIDB4RkUsIDB4MjgpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg1RSwgMHhGRCwgMHhGMCwgMHg2RCwgMHgzNywgMHgwMywgMHg2OSwgMHhENiksCit9Oworc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDI1NnIxX1RfMl9ZW10gPSB7CisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDk2LCAweEQ1LCAweERBLCAweEFELCAweDkyLCAweDQ5LCAweEYwLCAweDlGKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RjksIDB4NzMsIDB4NDMsIDB4OUUsIDB4QUYsIDB4QTcsIDB4RDEsIDB4RjMpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg2NywgMHg0MSwgMHgwNywgMHhERiwgMHg3OCwgMHg5NSwgMHgzRSwgMHhBMSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDIyLCAweDNELCAweEQxLCAweEU2LCAweDNDLCAweEE1LCAweEUyLCAweDIwKSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMjU2cjFfVF8zX1hbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QkYsIDB4NkEsIDB4NUQsIDB4NTIsIDB4MzUsIDB4RDcsIDB4QkYsIDB4QUUpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg1QSwgMHhBMiwgMHhCRSwgMHg5NiwgMHhGNCwgMHhGOCwgMHgwMiwgMHhDMyksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEE0LCAweDIwLCAweDQ5LCAweDU0LCAweEVBLCAweEIzLCAweDgyLCAweERCKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MkUsIDB4REIsIDB4RUEsIDB4MDIsIDB4RDEsIDB4NzUsIDB4MUMsIDB4NjIpLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AyNTZyMV9UXzNfWVtdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhGMCwgMHg4NSwgMHhGNCwgMHg5RSwgMHg0QywgMHhEQywgMHgzOSwgMHg4OSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDYzLCAweDZELCAweEM0LCAweDU3LCAweEQ4LCAweDAzLCAweDVELCAweDIyKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NzAsIDB4N0YsIDB4MkQsIDB4NTIsIDB4NkYsIDB4QzksIDB4REEsIDB4NEYpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg5RCwgMHg2NCwgMHhGQSwgMHhCNCwgMHhGRSwgMHhBNCwgMHhDNCwgMHhENyksCit9Oworc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDI1NnIxX1RfNF9YW10gPSB7CisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDJBLCAweDM3LCAweEI5LCAweEMwLCAweEFBLCAweDU5LCAweEM2LCAweDhCKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4M0YsIDB4NTgsIDB4RDksIDB4RUQsIDB4NTgsIDB4OTksIDB4NjUsIDB4RjcpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg4OCwgMHg3RCwgMHgyNiwgMHg4QywgMHg0QSwgMHhGOSwgMHgwNSwgMHg5RiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDlELCAweDczLCAweDlBLCAweEM5LCAweEU3LCAweDQ2LCAweERDLCAweDAwKSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMjU2cjFfVF80X1lbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RjIsIDB4RDAsIDB4NTUsIDB4REYsIDB4MDAsIDB4MEEsIDB4RjUsIDB4NEEpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg2QSwgMHhCRiwgMHg1NiwgMHg4MSwgMHgyRCwgMHgyMCwgMHhFQiwgMHhCNSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDExLCAweEMxLCAweDI4LCAweDUyLCAweEFCLCAweEUzLCAweEQxLCAweDQwKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MjQsIDB4MzQsIDB4NzksIDB4NDUsIDB4NTcsIDB4QTUsIDB4MTIsIDB4MDMpLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AyNTZyMV9UXzVfWFtdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhFRSwgMHhDRiwgMHhCOCwgMHg3RSwgMHhGNywgMHg5MiwgMHg5NiwgMHg4RCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDNELCAweDAxLCAweDhDLCAweDBELCAweDIzLCAweEYyLCAweEUzLCAweDA1KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NTksIDB4MkUsIDB4RTMsIDB4ODQsIDB4NTIsIDB4N0EsIDB4MzQsIDB4NzYpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhFNSwgMHhBMSwgMHhCMCwgMHgxNSwgMHg5MCwgMHhFMiwgMHg1MywgMHgzQyksCit9Oworc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDI1NnIxX1RfNV9ZW10gPSB7CisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEQ0LCAweDk4LCAweEU3LCAweEZBLCAweEE1LCAweDdELCAweDhCLCAweDUzKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4OTEsIDB4MzUsIDB4RDIsIDB4MDAsIDB4RDEsIDB4MUIsIDB4OUYsIDB4MUIpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgzRiwgMHg2OSwgMHgwOCwgMHg5QSwgMHg3MiwgMHhGMCwgMHhBOSwgMHgxMSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEIzLCAweEZFLCAweDBFLCAweDE0LCAweERBLCAweDdDLCAweDBFLCAweEQzKSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMjU2cjFfVF82X1hbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4ODMsIDB4RjYsIDB4RTgsIDB4RjgsIDB4ODcsIDB4RjcsIDB4RkMsIDB4NkQpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg5MCwgMHhCRSwgMHg3RiwgMHgzRiwgMHg3QSwgMHgyQiwgMHhENywgMHgxMyksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweENGLCAweDMyLCAweEYyLCAweDJELCAweDk0LCAweDZELCAweDQyLCAweEZEKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QUQsIDB4OUEsIDB4RTMsIDB4NUYsIDB4NDIsIDB4QkIsIDB4ODQsIDB4RUQpLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AyNTZyMV9UXzZfWVtdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhGQywgMHg5NSwgMHgyOSwgMHg3MywgMHhBMSwgMHg2NywgMHgzRSwgMHgwMiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEUzLCAweDMwLCAweDU0LCAweDM1LCAweDhFLCAweDBBLCAweERELCAweDY3KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MDMsIDB4RDcsIDB4QTEsIDB4OTcsIDB4NjEsIDB4M0IsIDB4RjgsIDB4MEMpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhGMiwgMHgzMywgMHgzQywgMHg1OCwgMHg1NSwgMHgzNCwgMHgyMywgMHhBMyksCit9Oworc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDI1NnIxX1RfN19YW10gPSB7CisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDk5LCAweDVELCAweDE2LCAweDVGLCAweDdCLCAweEJDLCAweEJCLCAweENFKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NjEsIDB4RUUsIDB4NEUsIDB4OEEsIDB4QzEsIDB4NTEsIDB4Q0MsIDB4NTApLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgxRiwgMHgwRCwgMHg0RCwgMHgxQiwgMHg1MywgMHgyMywgMHgxRCwgMHhCMyksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweERBLCAweDJBLCAweDM4LCAweDY2LCAweDUyLCAweDg0LCAweEUxLCAweDk1KSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMjU2cjFfVF83X1lbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NUIsIDB4OUIsIDB4ODMsIDB4MEEsIDB4ODEsIDB4NEYsIDB4QUQsIDB4QUMpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgwRiwgMHhGRiwgMHg0MiwgMHg0MSwgMHg2RSwgMHhBOSwgMHhBMiwgMHhBMCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDJGLCAweEExLCAweDRGLCAweDFGLCAweDg5LCAweDgyLCAweEFBLCAweDNFKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RjMsIDB4QjgsIDB4MEYsIDB4NkIsIDB4OEYsIDB4OEMsIDB4RDYsIDB4NjgpLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AyNTZyMV9UXzhfWFtdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhGMSwgMHhCMywgMHhCQiwgMHg1MSwgMHg2OSwgMHhBMiwgMHgxMSwgMHg5MyksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDY1LCAweDRGLCAweDBGLCAweDhELCAweEJELCAweDI2LCAweDBGLCAweEU4KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QjksIDB4Q0IsIDB4RUMsIDB4NkIsIDB4MzQsIDB4QzMsIDB4M0QsIDB4OUQpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhFNCwgMHg1RCwgMHgxRSwgMHgxMCwgMHhENSwgMHg0NCwgMHhFMiwgMHg1NCksCit9Oworc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDI1NnIxX1RfOF9ZW10gPSB7CisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDI4LCAweDlFLCAweEIxLCAweEYxLCAweDZFLCAweDRDLCAweEFELCAweEIzKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QjcsIDB4RTMsIDB4QzIsIDB4NTgsIDB4QzAsIDB4RkIsIDB4MzQsIDB4NDMpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgyNSwgMHg5QywgMHhERiwgMHgzNSwgMHgwNywgMHg0MSwgMHhCRCwgMHgxOSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEI2LCAweDZFLCAweDEwLCAweEVDLCAweDBFLCAweEVDLCAweEJCLCAweEQ2KSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMjU2cjFfVF85X1hbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QzgsIDB4Q0YsIDB4RUYsIDB4M0YsIDB4ODMsIDB4MUEsIDB4ODgsIDB4RTgpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgwQiwgMHgyOSwgMHhCNSwgMHhCOSwgMHhFMCwgMHhDOSwgMHhBMywgMHhBRSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDg4LCAweDQ2LCAweDFFLCAweDc3LCAweENELCAweDdFLCAweEIzLCAweDEwKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QjYsIDB4MjEsIDB4RDAsIDB4RDQsIDB4QTMsIDB4MTYsIDB4MDgsIDB4RUUpLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AyNTZyMV9UXzlfWVtdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhBMSwgMHhDQSwgMHhBOCwgMHhCMywgMHhCRiwgMHgyOSwgMHg5OSwgMHg4RSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEQxLCAweEYyLCAweDA1LCAweEMxLCAweENGLCAweDVELCAweDkxLCAweDQ4KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4OUYsIDB4MDEsIDB4NDksIDB4REIsIDB4ODIsIDB4REYsIDB4NUYsIDB4M0EpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhFMSwgMHgwNiwgMHg5MCwgMHhBRCwgMHhFMywgMHgzOCwgMHhBNCwgMHhDNCksCit9Oworc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDI1NnIxX1RfMTBfWFtdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhDOSwgMHhEMiwgMHgzQSwgMHhFOCwgMHgwMywgMHhDNSwgMHg2RCwgMHg1RCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEJFLCAweDM1LCAweEQwLCAweEFFLCAweDFELCAweDdBLCAweDlGLCAweENBKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MzMsIDB4MUUsIDB4RDIsIDB4Q0IsIDB4QUMsIDB4ODgsIDB4MjcsIDB4NTUpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhGMCwgMHhCOSwgMHg5QywgMHhFMCwgMHgzMSwgMHhERCwgMHg5OSwgMHg4NiksCit9Oworc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDI1NnIxX1RfMTBfWVtdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg2MSwgMHhGOSwgMHg5QiwgMHgzMiwgMHg5NiwgMHg0MSwgMHg1OCwgMHgzOCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEY5LCAweDVBLCAweDJBLCAweEI4LCAweDk2LCAweDBFLCAweEIyLCAweDRDKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QzEsIDB4NzgsIDB4MkMsIDB4QzcsIDB4MDgsIDB4OTksIDB4MTksIDB4MjQpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhCNywgMHg1OSwgMHgyOCwgMHhFOSwgMHg4NCwgMHg1NCwgMHhFNiwgMHgxNiksCit9Oworc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDI1NnIxX1RfMTFfWFtdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhERCwgMHgzOCwgMHgzMCwgMHhEQiwgMHg3MCwgMHgyQywgMHgwQSwgMHhBMiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDdDLCAweDVDLCAweDlELCAweEU5LCAweEQ1LCAweDQ2LCAweDBCLCAweDVGKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4ODMsIDB4MEIsIDB4NjAsIDB4NEIsIDB4MzcsIDB4N0QsIDB4QjksIDB4QzkpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg1RSwgMHgyNCwgMHhGMywgMHgzRCwgMHg3OSwgMHg3RiwgMHg2QywgMHgxOCksCit9Oworc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDI1NnIxX1RfMTFfWVtdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg3RiwgMHhFNSwgMHgxQywgMHg0RiwgMHg2MCwgMHgyNCwgMHhGNywgMHgyQSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEVELCAweEQ4LCAweEUyLCAweDkxLCAweDdGLCAweDg5LCAweDQ5LCAweDkyKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4OTcsIDB4QTcsIDB4MkUsIDB4OEQsIDB4NkEsIDB4QjMsIDB4MzksIDB4ODEpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgxMywgMHg4OSwgMHhCNSwgMHg5QSwgMHhCOCwgMHg4RCwgMHg0MiwgMHg5QyksCit9Oworc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDI1NnIxX1RfMTJfWFtdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg4RCwgMHg0NSwgMHhFNiwgMHg0QiwgMHgzRiwgMHg0RiwgMHgxRSwgMHgxRiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDQ3LCAweDY1LCAweDVFLCAweDU5LCAweDIyLCAweENDLCAweDcyLCAweDVGKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RjEsIDB4OTMsIDB4MUEsIDB4MjcsIDB4MUUsIDB4MzQsIDB4QzUsIDB4NUIpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg2MywgMHhGMiwgMHhBNSwgMHg1OCwgMHg1QywgMHgxNSwgMHgyRSwgMHhDNiksCit9Oworc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDI1NnIxX1RfMTJfWVtdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhGNCwgMHg3RiwgMHhCQSwgMHg1OCwgMHg1QSwgMHg4NCwgMHg2RiwgMHg1RiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEFELCAweEE2LCAweDM2LCAweDdFLCAweERDLCAweEY3LCAweEUxLCAweDY3KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MDQsIDB4NEQsIDB4QUEsIDB4RUUsIDB4NTcsIDB4NzYsIDB4M0EsIDB4RDMpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg0RSwgMHg3RSwgMHgyNiwgMHgxOCwgMHgyMiwgMHgyMywgMHg5RiwgMHhGRiksCit9Oworc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDI1NnIxX1RfMTNfWFtdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgxRCwgMHg0QywgMHg2NCwgMHhDNywgMHg1NSwgMHgwMiwgMHgzRiwgMHhFMyksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEQ4LCAweDAyLCAweDkwLCAweEJCLCAweEMzLCAweEVDLCAweDMwLCAweDQwKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4OUYsIDB4NkYsIDB4NjQsIDB4RjQsIDB4MTYsIDB4NjksIDB4NDgsIDB4QTQpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhGQSwgMHg0NCwgMHg5QywgMHg5NSwgMHgwQywgMHg3RCwgMHg2NywgMHg1RSksCit9Oworc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDI1NnIxX1RfMTNfWVtdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg0NCwgMHg5MSwgMHg4QiwgMHhEOCwgMHhEMCwgMHhENywgMHhFNywgMHhFMiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDFGLCAweEY5LCAweDQ4LCAweDYyLCAweDZGLCAweEE4LCAweDkzLCAweDVEKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RUEsIDB4M0EsIDB4OTksIDB4MDIsIDB4RDUsIDB4MEIsIDB4M0QsIDB4RTMpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgxRSwgMHhEMywgMHgwMCwgMHgzMSwgMHhFNiwgMHgwQywgMHg5RiwgMHg0NCksCit9Oworc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDI1NnIxX1RfMTRfWFtdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg1NiwgMHhCMiwgMHhBQSwgMHhGRCwgMHg4OCwgMHgxNSwgMHhERiwgMHg1MiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDRDLCAweDM1LCAweDI3LCAweDMxLCAweDQ0LCAweENELCAweEMwLCAweDY4KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NTMsIDB4RjgsIDB4OTEsIDB4QTUsIDB4NzEsIDB4OTQsIDB4ODQsIDB4MkEpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg5MiwgMHhDQiwgMHhEMCwgMHg5MywgMHhFOSwgMHg4OCwgMHhEQSwgMHhFNCksCit9Oworc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDI1NnIxX1RfMTRfWVtdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgyNCwgMHhDNiwgMHgzOSwgMHgxNiwgMHg1RCwgMHhBMywgMHgxRSwgMHg2RCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEJBLCAweDA3LCAweDM3LCAweDI2LCAweDM2LCAweDJBLCAweEZFLCAweDYwKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NTEsIDB4QkMsIDB4RjMsIDB4RDAsIDB4REUsIDB4NTAsIDB4RkMsIDB4OTcpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg4MCwgMHgyRSwgMHgwNiwgMHgxMCwgMHgxNSwgMHg0RCwgMHhGQSwgMHhGNyksCit9Oworc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDI1NnIxX1RfMTVfWFtdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgyNywgMHg2NSwgMHg2OSwgMHg1QiwgMHg2NiwgMHhBMiwgMHg3NSwgMHgyRSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDlDLCAweDE2LCAweDAwLCAweDVBLCAweEIwLCAweDMwLCAweDI1LCAweDFBKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NDIsIDB4RkIsIDB4ODYsIDB4NDIsIDB4ODAsIDB4QzEsIDB4QzQsIDB4NzYpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg1QiwgMHgxRCwgMHg4MywgMHg4RSwgMHg5NCwgMHgwMSwgMHg1RiwgMHg4MiksCit9Oworc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDI1NnIxX1RfMTVfWVtdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgzOSwgMHgzNywgMHg3MCwgMHhFRiwgMHgxRiwgMHhBMSwgMHhGMCwgMHhEQiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDZBLCAweDEwLCAweDVCLCAweENFLCAweEM0LCAweDlCLCAweDZGLCAweDEwKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NTAsIDB4MTEsIDB4MTEsIDB4MjQsIDB4NEYsIDB4NEMsIDB4NzksIDB4NjEpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgxNywgMHgzQSwgMHg3MiwgMHhCQywgMHhGRSwgMHg3MiwgMHg1OCwgMHg0MyksCit9Oworc3RhdGljIGNvbnN0IG1iZWR0bHNfZWNwX3BvaW50IHNlY3AyNTZyMV9UWzE2XSA9IHsKKyAgICBFQ1BfUE9JTlRfSU5JVF9YWV9aMShzZWNwMjU2cjFfVF8wX1gsIHNlY3AyNTZyMV9UXzBfWSksCisgICAgRUNQX1BPSU5UX0lOSVRfWFlfWjAoc2VjcDI1NnIxX1RfMV9YLCBzZWNwMjU2cjFfVF8xX1kpLAorICAgIEVDUF9QT0lOVF9JTklUX1hZX1owKHNlY3AyNTZyMV9UXzJfWCwgc2VjcDI1NnIxX1RfMl9ZKSwKKyAgICBFQ1BfUE9JTlRfSU5JVF9YWV9aMChzZWNwMjU2cjFfVF8zX1gsIHNlY3AyNTZyMV9UXzNfWSksCisgICAgRUNQX1BPSU5UX0lOSVRfWFlfWjAoc2VjcDI1NnIxX1RfNF9YLCBzZWNwMjU2cjFfVF80X1kpLAorICAgIEVDUF9QT0lOVF9JTklUX1hZX1owKHNlY3AyNTZyMV9UXzVfWCwgc2VjcDI1NnIxX1RfNV9ZKSwKKyAgICBFQ1BfUE9JTlRfSU5JVF9YWV9aMChzZWNwMjU2cjFfVF82X1gsIHNlY3AyNTZyMV9UXzZfWSksCisgICAgRUNQX1BPSU5UX0lOSVRfWFlfWjAoc2VjcDI1NnIxX1RfN19YLCBzZWNwMjU2cjFfVF83X1kpLAorICAgIEVDUF9QT0lOVF9JTklUX1hZX1owKHNlY3AyNTZyMV9UXzhfWCwgc2VjcDI1NnIxX1RfOF9ZKSwKKyAgICBFQ1BfUE9JTlRfSU5JVF9YWV9aMChzZWNwMjU2cjFfVF85X1gsIHNlY3AyNTZyMV9UXzlfWSksCisgICAgRUNQX1BPSU5UX0lOSVRfWFlfWjAoc2VjcDI1NnIxX1RfMTBfWCwgc2VjcDI1NnIxX1RfMTBfWSksCisgICAgRUNQX1BPSU5UX0lOSVRfWFlfWjAoc2VjcDI1NnIxX1RfMTFfWCwgc2VjcDI1NnIxX1RfMTFfWSksCisgICAgRUNQX1BPSU5UX0lOSVRfWFlfWjAoc2VjcDI1NnIxX1RfMTJfWCwgc2VjcDI1NnIxX1RfMTJfWSksCisgICAgRUNQX1BPSU5UX0lOSVRfWFlfWjAoc2VjcDI1NnIxX1RfMTNfWCwgc2VjcDI1NnIxX1RfMTNfWSksCisgICAgRUNQX1BPSU5UX0lOSVRfWFlfWjAoc2VjcDI1NnIxX1RfMTRfWCwgc2VjcDI1NnIxX1RfMTRfWSksCisgICAgRUNQX1BPSU5UX0lOSVRfWFlfWjAoc2VjcDI1NnIxX1RfMTVfWCwgc2VjcDI1NnIxX1RfMTVfWSksCit9OworI2Vsc2UKKyNkZWZpbmUgc2VjcDI1NnIxX1QgTlVMTAorI2VuZGlmCisKKyNlbmRpZiAvKiBNQkVEVExTX0VDUF9EUF9TRUNQMjU2UjFfRU5BQkxFRCAqLworCisvKgorICogRG9tYWluIHBhcmFtZXRlcnMgZm9yIHNlY3AzODRyMQorICovCisjaWYgZGVmaW5lZChNQkVEVExTX0VDUF9EUF9TRUNQMzg0UjFfRU5BQkxFRCkKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AzODRyMV9wW10gPSB7CisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEZGLCAweEZGLCAweEZGLCAweEZGLCAweDAwLCAweDAwLCAweDAwLCAweDAwKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4RkYsIDB4RkYsIDB4RkYsIDB4RkYpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhGRSwgMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEZGLCAweEZGLCAweEZGLCAweEZGLCAweEZGLCAweEZGLCAweEZGLCAweEZGKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RkYsIDB4RkYsIDB4RkYsIDB4RkYsIDB4RkYsIDB4RkYsIDB4RkYsIDB4RkYpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiksCit9Oworc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDM4NHIxX2JbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RUYsIDB4MkEsIDB4RUMsIDB4RDMsIDB4RUQsIDB4QzgsIDB4ODUsIDB4MkEpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg5RCwgMHhEMSwgMHgyRSwgMHg4QSwgMHg4RCwgMHgzOSwgMHg1NiwgMHhDNiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDVBLCAweDg3LCAweDEzLCAweDUwLCAweDhGLCAweDA4LCAweDE0LCAweDAzKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MTIsIDB4NDEsIDB4ODEsIDB4RkUsIDB4NkUsIDB4OUMsIDB4MUQsIDB4MTgpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgxOSwgMHgyRCwgMHhGOCwgMHhFMywgMHg2QiwgMHgwNSwgMHg4RSwgMHg5OCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEU0LCAweEU3LCAweDNFLCAweEUyLCAweEE3LCAweDJGLCAweDMxLCAweEIzKSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMzg0cjFfZ3hbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QjcsIDB4MEEsIDB4NzYsIDB4NzIsIDB4MzgsIDB4NUUsIDB4NTQsIDB4M0EpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg2QywgMHgyOSwgMHg1NSwgMHhCRiwgMHg1RCwgMHhGMiwgMHgwMiwgMHg1NSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDM4LCAweDJBLCAweDU0LCAweDgyLCAweEUwLCAweDQxLCAweEY3LCAweDU5KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4OTgsIDB4OUIsIDB4QTcsIDB4OEIsIDB4NjIsIDB4M0IsIDB4MUQsIDB4NkUpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg3NCwgMHhBRCwgMHgyMCwgMHhGMywgMHgxRSwgMHhDNywgMHhCMSwgMHg4RSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDM3LCAweDA1LCAweDhCLCAweEJFLCAweDIyLCAweENBLCAweDg3LCAweEFBKSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMzg0cjFfZ3lbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NUYsIDB4MEUsIDB4RUEsIDB4OTAsIDB4N0MsIDB4MUQsIDB4NDMsIDB4N0EpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg5RCwgMHg4MSwgMHg3RSwgMHgxRCwgMHhDRSwgMHhCMSwgMHg2MCwgMHgwQSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEMwLCAweEI4LCAweEYwLCAweEI1LCAweDEzLCAweDMxLCAweERBLCAweEU5KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4N0MsIDB4MTQsIDB4OUEsIDB4MjgsIDB4QkQsIDB4MUQsIDB4RjQsIDB4RjgpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgyOSwgMHhEQywgMHg5MiwgMHg5MiwgMHhCRiwgMHg5OCwgMHg5RSwgMHg1RCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDZGLCAweDJDLCAweDI2LCAweDk2LCAweDRBLCAweERFLCAweDE3LCAweDM2KSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMzg0cjFfbltdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg3MywgMHgyOSwgMHhDNSwgMHhDQywgMHg2QSwgMHgxOSwgMHhFQywgMHhFQyksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDdBLCAweEE3LCAweEIwLCAweDQ4LCAweEIyLCAweDBELCAweDFBLCAweDU4KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4REYsIDB4MkQsIDB4MzcsIDB4RjQsIDB4ODEsIDB4NEQsIDB4NjMsIDB4QzcpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEZGLCAweEZGLCAweEZGLCAweEZGLCAweEZGLCAweEZGLCAweEZGLCAweEZGKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RkYsIDB4RkYsIDB4RkYsIDB4RkYsIDB4RkYsIDB4RkYsIDB4RkYsIDB4RkYpLAorfTsKKyNpZiBNQkVEVExTX0VDUF9GSVhFRF9QT0lOVF9PUFRJTSA9PSAxCitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMzg0cjFfVF8wX1hbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QjcsIDB4MEEsIDB4NzYsIDB4NzIsIDB4MzgsIDB4NUUsIDB4NTQsIDB4M0EpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg2QywgMHgyOSwgMHg1NSwgMHhCRiwgMHg1RCwgMHhGMiwgMHgwMiwgMHg1NSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDM4LCAweDJBLCAweDU0LCAweDgyLCAweEUwLCAweDQxLCAweEY3LCAweDU5KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4OTgsIDB4OUIsIDB4QTcsIDB4OEIsIDB4NjIsIDB4M0IsIDB4MUQsIDB4NkUpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg3NCwgMHhBRCwgMHgyMCwgMHhGMywgMHgxRSwgMHhDNywgMHhCMSwgMHg4RSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDM3LCAweDA1LCAweDhCLCAweEJFLCAweDIyLCAweENBLCAweDg3LCAweEFBKSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMzg0cjFfVF8wX1lbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NUYsIDB4MEUsIDB4RUEsIDB4OTAsIDB4N0MsIDB4MUQsIDB4NDMsIDB4N0EpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg5RCwgMHg4MSwgMHg3RSwgMHgxRCwgMHhDRSwgMHhCMSwgMHg2MCwgMHgwQSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEMwLCAweEI4LCAweEYwLCAweEI1LCAweDEzLCAweDMxLCAweERBLCAweEU5KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4N0MsIDB4MTQsIDB4OUEsIDB4MjgsIDB4QkQsIDB4MUQsIDB4RjQsIDB4RjgpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgyOSwgMHhEQywgMHg5MiwgMHg5MiwgMHhCRiwgMHg5OCwgMHg5RSwgMHg1RCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDZGLCAweDJDLCAweDI2LCAweDk2LCAweDRBLCAweERFLCAweDE3LCAweDM2KSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMzg0cjFfVF8xX1hbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NDYsIDB4OTIsIDB4MDAsIDB4MkMsIDB4NzgsIDB4REIsIDB4MUYsIDB4MzcpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgxNywgMHhGMywgMHhFQiwgMHhCNywgMHgwNiwgMHhGNywgMHhCNiwgMHhCQyksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDNELCAweEJDLCAweDJDLCAweENGLCAweEQ4LCAweEVELCAweDUzLCAweEU3KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NTIsIDB4NzUsIDB4N0IsIDB4QTMsIDB4QUIsIDB4QzMsIDB4MkMsIDB4ODUpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhFNSwgMHg5RCwgMHg3OCwgMHg0MSwgMHhGNiwgMHg3NiwgMHg4NCwgMHhBQyksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDU0LCAweDU2LCAweEU4LCAweDUyLCAweEIzLCAweENCLCAweEE4LCAweEJEKSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMzg0cjFfVF8xX1lbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NkQsIDB4RjIsIDB4QUUsIDB4QTQsIDB4QjYsIDB4ODksIDB4MUIsIDB4REEpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgwMSwgMHgwRiwgMHhDRSwgMHgxQywgMHg3QywgMHhGNiwgMHg1MCwgMHg0QyksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDRDLCAweEVCLCAweDkwLCAweEU2LCAweDRELCAweEM3LCAweEQ0LCAweDdBKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RDEsIDB4NDksIDB4MkQsIDB4OEEsIDB4MDEsIDB4OTksIDB4NjAsIDB4OTQpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg1RiwgMHg4MCwgMHg5QiwgMHg5QiwgMHg2QSwgMHhCMCwgMHgwNywgMHhEOSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEMyLCAweEEyLCAweEVFLCAweDU5LCAweEJFLCAweDk1LCAweEJDLCAweDIzKSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMzg0cjFfVF8yX1hbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RTYsIDB4OUQsIDB4NTYsIDB4QUUsIDB4NTksIDB4RkIsIDB4MUYsIDB4OTgpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhDRiwgMHhBQywgMHg5MSwgMHg4MCwgMHg4NywgMHhBOCwgMHg2RSwgMHg1OCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDMwLCAweDA4LCAweEE3LCAweDA4LCAweDk0LCAweDMyLCAweEZDLCAweDY3KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4OUYsIDB4MjksIDB4OUUsIDB4ODQsIDB4RjQsIDB4RTUsIDB4NkUsIDB4N0UpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg1NSwgMHgyMSwgMHhCOSwgMHg1MCwgMHgyNCwgMHhGOCwgMHg5QywgMHhDNyksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDM0LCAweDA0LCAweDAxLCAweEMyLCAweEZCLCAweDc3LCAweDNFLCAweERFKSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMzg0cjFfVF8yX1lbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MDAsIDB4MzgsIDB4RUUsIDB4RTMsIDB4QzcsIDB4OUQsIDB4RUMsIDB4QTYpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhCNiwgMHg4OCwgMHhDRiwgMHg0MywgMHhGQSwgMHg5MiwgMHg1RSwgMHg4RSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEU5LCAweENBLCAweDQzLCAweEY4LCAweDNCLCAweDQ5LCAweDdFLCAweDc1KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MUMsIDB4RTcsIDB4RUIsIDB4MTcsIDB4NDUsIDB4ODYsIDB4QzIsIDB4RTEpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg5MiwgMHg2OSwgMHg1NywgMHgzMiwgMHhFMCwgMHg5QywgMHhEMSwgMHgwMCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEQ5LCAweDEwLCAweEI4LCAweDRELCAweEI4LCAweEY0LCAweDBELCAweEUzKSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMzg0cjFfVF8zX1hbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NjAsIDB4REMsIDB4OUEsIDB4QjIsIDB4NzksIDB4MzksIDB4MjcsIDB4MTYpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg0RiwgMHg3MSwgMHhFNCwgMHgzQiwgMHg0RCwgMHg2MCwgMHgwQywgMHhBMyksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDU1LCAweEJELCAweDE5LCAweDQwLCAweEZBLCAweDE5LCAweDJBLCAweDVBKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NEQsIDB4RjgsIDB4MUUsIDB4NDMsIDB4QTEsIDB4NTAsIDB4OEQsIDB4RUYpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhBMywgMHgxOCwgMHg3QywgMHg0MSwgMHhGQSwgMHg3QywgMHgxQiwgMHg1OCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDAwLCAweDU5LCAweDI0LCAweEM0LCAweEU5LCAweEI3LCAweEQzLCAweEFEKSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMzg0cjFfVF8zX1lbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QkIsIDB4MDEsIDB4M0QsIDB4NjMsIDB4NTQsIDB4NDUsIDB4NkYsIDB4QjcpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg3QiwgMHhCMiwgMHgxOSwgMHhBMywgMHg4NiwgMHgxRCwgMHg0MiwgMHgzNCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDg0LCAweDAyLCAweDg3LCAweDE4LCAweDkyLCAweDUyLCAweDFBLCAweDcxKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NkMsIDB4MTgsIDB4QjEsIDB4NUQsIDB4MTgsIDB4MUIsIDB4MzcsIDB4RkUpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhGNCwgMHg3NCwgMHg2MSwgMHhCQSwgMHgxOCwgMHhBRiwgMHg0MCwgMHgzMCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweERBLCAweDdELCAweDNDLCAweDUyLCAweDBGLCAweDA3LCAweEIwLCAweDZGKSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMzg0cjFfVF80X1hbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MDksIDB4MzksIDB4MTMsIDB4QUEsIDB4NjAsIDB4MTUsIDB4OTksIDB4MzApLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgxNywgMHgwMCwgMHhDQiwgMHhDNiwgMHhCMSwgMHhEQiwgMHg5NywgMHg5MCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEU2LCAweEZBLCAweDYwLCAweEI4LCAweDI0LCAweEU0LCAweDdELCAweEQzKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4REQsIDB4NzUsIDB4QjMsIDB4NzAsIDB4QjIsIDB4ODMsIDB4QjEsIDB4OUIpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhBMywgMHhFMywgMHg2QywgMHhDRCwgMHgzMywgMHg2MiwgMHg3QSwgMHg1NiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDg4LCAweDMwLCAweERDLCAweDBGLCAweDlGLCAweEJCLCAweEI4LCAweEFBKSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMzg0cjFfVF80X1lbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QTYsIDB4RDUsIDB4MEEsIDB4NjAsIDB4ODEsIDB4QjksIDB4QzUsIDB4MTYpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg0NCwgMHhBQSwgMHgyRiwgMHhENiwgMHhGMiwgMHg3MywgMHhERiwgMHhFQiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEYzLCAweDdCLCAweDc0LCAweEM5LCAweEIzLCAweDVCLCAweDk1LCAweDZEKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QUMsIDB4MDQsIDB4RUIsIDB4MTUsIDB4QzgsIDB4NUYsIDB4MDAsIDB4RjYpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhCNSwgMHg1MCwgMHgyMCwgMHgyOCwgMHhEMSwgMHgwMSwgMHhBRiwgMHhGMCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDI4LCAweDZELCAweDRGLCAweDMxLCAweDgxLCAweDJGLCAweDk0LCAweDQ4KSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMzg0cjFfVF81X1hbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NDYsIDB4MkYsIDB4RDgsIDB4QjYsIDB4NjMsIDB4N0MsIDB4RTksIDB4NTApLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhEOSwgMHg4QywgMHhCOSwgMHgxNCwgMHhEOSwgMHgzNywgMHg2MywgMHhERSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDEwLCAweDAyLCAweEI4LCAweDQ2LCAweEFELCAweENFLCAweDdCLCAweDM4KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4ODIsIDB4NDcsIDB4MkQsIDB4NjYsIDB4QTcsIDB4RTksIDB4MzMsIDB4MjMpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg5MiwgMHhGOSwgMHg5MywgMHg5NCwgMHhBOCwgMHg0OCwgMHhCMywgMHg0RiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEU5LCAweDRBLCAweEFDLCAweDUxLCAweDA4LCAweDcyLCAweDJGLCAweDFBKSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMzg0cjFfVF81X1lbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4REEsIDB4QUQsIDB4QTAsIDB4RjksIDB4ODEsIDB4RTEsIDB4NzgsIDB4OTcpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgzQSwgMHg5QSwgMHg2MywgMHhEOCwgMHhCQSwgMHg3OSwgMHgxQSwgMHgxNyksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDM0LCAweDMxLCAweDdCLCAweDdBLCAweDVBLCAweDVELCAweDdELCAweDJEKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4ODMsIDB4OTYsIDB4MTIsIDB4NEIsIDB4MTksIDB4MDksIDB4RTAsIDB4QjcpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg1NSwgMHg4QSwgMHg1NywgMHhFRSwgMHg0RSwgMHg2RSwgMHg3RSwgMHhFQyksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDExLCAweDlELCAweDY5LCAweERDLCAweEIzLCAweERBLCAweEQ4LCAweDA4KSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMzg0cjFfVF82X1hbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NjgsIDB4NDksIDB4MDMsIDB4MDMsIDB4MzMsIDB4NkYsIDB4MjgsIDB4NEEpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg1RCwgMHhEQiwgMHhBNywgMHgwNSwgMHg4QywgMHhGMywgMHg0RCwgMHhGQiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDhFLCAweDkyLCAweEIxLCAweEE4LCAweEVDLCAweDBELCAweDY0LCAweDNCKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NEUsIDB4RkMsIDB4RkQsIDB4RDAsIDB4NEIsIDB4ODgsIDB4MUIsIDB4NUQpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg4MywgMHg5QywgMHg1MSwgMHg2OSwgMHhDRSwgMHg3MSwgMHg3MywgMHhGNSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEI4LCAweDVBLCAweDE0LCAweDIzLCAweDFBLCAweDQ2LCAweDYzLCAweDVGKSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMzg0cjFfVF82X1lbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QkMsIDB4NEMsIDB4NzAsIDB4NDQsIDB4MTgsIDB4Q0QsIDB4RUYsIDB4RUQpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhDMiwgMHg0OSwgMHhERCwgMHg2NCwgMHg3RSwgMHg3RSwgMHg0RCwgMHg5MiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEEyLCAweDMyLCAweDdDLCAweDA5LCAweEQwLCAweDNGLCAweEQ2LCAweDJDKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NkQsIDB4RTAsIDB4NEYsIDB4NjUsIDB4MEMsIDB4N0EsIDB4NTQsIDB4M0UpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgxNiwgMHhGQSwgMHhGQiwgMHg0QSwgMHhCNCwgMHg3OSwgMHg1QSwgMHg4QyksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDA0LCAweDVELCAweDFCLCAweDJCLCAweERBLCAweEJDLCAweDlBLCAweDc0KSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMzg0cjFfVF83X1hbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NTEsIDB4QUMsIDB4NTYsIDB4RjcsIDB4NUYsIDB4NTEsIDB4NjgsIDB4MEIpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhDNiwgMHhFMCwgMHgxRCwgMHhCQywgMHgxMywgMHg0RSwgMHhBQywgMHgwMyksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEI3LCAweEY1LCAweEM1LCAweEU2LCAweEQyLCAweDg4LCAweEJBLCAweENCKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RkEsIDB4MEUsIDB4MjgsIDB4MjMsIDB4NTgsIDB4NjcsIDB4RkEsIDB4RUUpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg5RSwgMHg4MCwgMHg0QiwgMHhEOCwgMHhDNCwgMHhERiwgMHgxNSwgMHhFNCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEYxLCAweDBFLCAweDU4LCAweEU2LCAweDJDLCAweDU5LCAweEMyLCAweDAzKSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMzg0cjFfVF83X1lbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4OUIsIDB4MjYsIDB4MjcsIDB4OTksIDB4MTYsIDB4MkIsIDB4MjIsIDB4MEIpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhCQSwgMHhGMywgMHg4RiwgMHhDMywgMHgyQSwgMHg5QiwgMHhGQywgMHgzOCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEZDLCAweDJFLCAweDgzLCAweDNELCAweEZFLCAweDlFLCAweDNDLCAweDFCKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MDgsIDB4NTcsIDB4Q0QsIDB4MkQsIDB4QzEsIDB4NDksIDB4MzgsIDB4QjUpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg5NSwgMHg0MiwgMHg4QiwgMHgzMywgMHg4OSwgMHgxRiwgMHhFQSwgMHgwMSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEFBLCAweDFELCAweDEzLCAweEQ3LCAweDUwLCAweEJCLCAweDNFLCAweEVCKSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMzg0cjFfVF84X1hbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RDIsIDB4OUEsIDB4NTIsIDB4RDIsIDB4NTQsIDB4N0MsIDB4OTcsIDB4RjIpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhFMCwgMHgzMywgMHg2RSwgMHhFRCwgMHhEOSwgMHg4NywgMHg1MCwgMHhDNSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDVBLCAweDM1LCAweDdFLCAweDE2LCAweDQwLCAweDE1LCAweDgzLCAweEI4KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MzMsIDB4MkIsIDB4QTQsIDB4QUIsIDB4MDMsIDB4OTEsIDB4RUEsIDB4RkUpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhDMSwgMHg0NywgMHgzOSwgMHhFRiwgMHgwNSwgMHg1OSwgMHhEMCwgMHg5MCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEJGLCAweDI0LCAweDBELCAweDc2LCAweDExLCAweDUzLCAweDA4LCAweEFGKSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMzg0cjFfVF84X1lbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MUYsIDB4MkYsIDB4REQsIDB4QkQsIDB4NTAsIDB4NDgsIDB4QjEsIDB4RTUpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg4MCwgMHgxQywgMHg4NCwgMHg1NSwgMHg3OCwgMHgxNCwgMHhFQiwgMHhGNiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEQ5LCAweDVFLCAweDNFLCAweEE2LCAweEFGLCAweEY2LCAweEM3LCAweDA0KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RTcsIDB4MTEsIDB4RTIsIDB4NjUsIDB4Q0EsIDB4NDEsIDB4OTUsIDB4M0IpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhBRSwgMHg4MywgMHhEOCwgMHhFNiwgMHg0RCwgMHgyMiwgMHgwNiwgMHgyRCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEZBLCAweDdGLCAweDI1LCAweDJBLCAweEFBLCAweDI4LCAweDQ2LCAweDk3KSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMzg0cjFfVF85X1hbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NzksIDB4REIsIDB4MTUsIDB4NTYsIDB4ODQsIDB4Q0IsIDB4QzAsIDB4NTYpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg1NiwgMHhEQiwgMHgwRSwgMHgwOCwgMHhDOSwgMHhGNSwgMHhENCwgMHg5RSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEU2LCAweDYyLCAweEQwLCAweDFBLCAweDdDLCAweDEzLCAweEQ1LCAweDA3KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4N0QsIDB4QUQsIDB4NTMsIDB4RTAsIDB4MzIsIDB4MjEsIDB4QTAsIDB4QzApLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhDNSwgMHgzOCwgMHg4MSwgMHgyMSwgMHgyMywgMHgwRSwgMHhEMiwgMHhCQiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDFDLCAweDUxLCAweDA1LCAweEQwLCAweDFFLCAweDgyLCAweEE5LCAweDcxKSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMzg0cjFfVF85X1lbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QTcsIDB4QzMsIDB4MjcsIDB4QkYsIDB4QzYsIDB4QUEsIDB4QjcsIDB4QjkpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhDQiwgMHg2NSwgMHg0NSwgMHhERiwgMHhCOSwgMHg0NiwgMHgxNywgMHg0NiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEY1LCAweDM4LCAweDNGLCAweEIyLCAweEIxLCAweDVELCAweENBLCAweDFDKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4ODgsIDB4MjksIDB4NkMsIDB4NjMsIDB4RTksIDB4RDcsIDB4NDgsIDB4QjgpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhCQywgMHhGMSwgMHhENywgMHg5OSwgMHg4QywgMHhDMiwgMHgwNSwgMHg5OSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDZELCAweEU2LCAweDVFLCAweDgyLCAweDZELCAweEU1LCAweDdFLCAweEQ1KSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMzg0cjFfVF8xMF9YW10gPSB7CisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDdCLCAweDYxLCAweEZBLCAweDdELCAweDAxLCAweERCLCAweEI2LCAweDYzKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MTEsIDB4QzYsIDB4NTgsIDB4MzksIDB4RjQsIDB4QzYsIDB4ODIsIDB4MjMpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg0NywgMHg1QSwgMHg3QSwgMHg4MCwgMHgwOCwgMHhDRCwgMHhBQSwgMHhEOCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweERBLCAweDhDLCAweEM2LCAweDNGLCAweDNDLCAweEE1LCAweDY4LCAweEY0KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QkIsIDB4RjUsIDB4RDUsIDB4MTcsIDB4QUUsIDB4MzYsIDB4RDgsIDB4OEEpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhDNywgMHhBRCwgMHg5MiwgMHhDNSwgMHg1NywgMHg2QywgMHhEQSwgMHg5MSksCit9Oworc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDM4NHIxX1RfMTBfWVtdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhFOCwgMHg2NywgMHgxNywgMHhDMCwgMHg0MCwgMHg3OCwgMHg4QywgMHg4NCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDdFLCAweDlGLCAweEY0LCAweEFBLCAweERBLCAweDVDLCAweDdFLCAweEIyKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4OTYsIDB4REIsIDB4NDIsIDB4M0UsIDB4NzIsIDB4NjQsIDB4QTAsIDB4NjcpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgyNywgMHhGOSwgMHg0MSwgMHgxNywgMHg0MywgMHhFMywgMHhFOCwgMHhBOCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDY2LCAweERELCAweENDLCAweDQzLCAweDdFLCAweDE2LCAweDA1LCAweDAzKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MzYsIDB4NEIsIDB4Q0YsIDB4NDgsIDB4OEYsIDB4NDEsIDB4OTAsIDB4RTUpLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AzODRyMV9UXzExX1hbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4OTgsIDB4MEMsIDB4NkIsIDB4OUQsIDB4MjIsIDB4MDQsIDB4QkMsIDB4NUMpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg4NiwgMHg2MywgMHg3OSwgMHgyRiwgMHg2QSwgMHgwRSwgMHg4QSwgMHhERSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDI5LCAweDY3LCAweDNGLCAweDAyLCAweEI4LCAweDkxLCAweDdGLCAweDc0KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RkMsIDB4MTQsIDB4NjQsIDB4QTAsIDB4MzMsIDB4RjQsIDB4NkIsIDB4NTApLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgxQywgMHg0NCwgMHg3MSwgMHg4NywgMHhCOCwgMHg4OCwgMHgzRiwgMHg0NSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDFCLCAweDJCLCAweDg1LCAweDA1LCAweEM1LCAweDQ0LCAweDUzLCAweDE1KSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMzg0cjFfVF8xMV9ZW10gPSB7CisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDNFLCAweDJCLCAweEZFLCAweEQxLCAweDFDLCAweDczLCAweEUzLCAweDJFKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NjYsIDB4MzMsIDB4QTEsIDB4RDMsIDB4NjksIDB4MUMsIDB4OUQsIDB4RDIpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhFMCwgMHg1QSwgMHhCQSwgMHhCNiwgMHhBRSwgMHgxQiwgMHg5NCwgMHgwNCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEFGLCAweDc0LCAweDkwLCAweDVDLCAweDU3LCAweEIwLCAweDNBLCAweDQ1KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4REQsIDB4MkYsIDB4OTMsIDB4MjAsIDB4MjQsIDB4NTQsIDB4MUQsIDB4OEQpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhGQSwgMHg3OCwgMHg5RCwgMHg3MSwgMHg2NywgMHg1RCwgMHg0OSwgMHg5OCksCit9Oworc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDM4NHIxX1RfMTJfWFtdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgxMiwgMHhDOCwgMHgwRSwgMHgxMSwgMHg4RCwgMHhFMCwgMHg4RiwgMHg2OSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDU5LCAweDdGLCAweDc5LCAweDZDLCAweDVGLCAweEI3LCAweEJDLCAweEIxKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4ODgsIDB4RTEsIDB4ODMsIDB4M0MsIDB4MTIsIDB4QkIsIDB4RUUsIDB4OTYpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgyQSwgMHhDMiwgMHhDNCwgMHgxQiwgMHg0MSwgMHg3MSwgMHhCOSwgMHgxNyksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEIwLCAweEVFLCAweEJCLCAweDFELCAweDg5LCAweDUwLCAweDg4LCAweEYyKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RkMsIDB4MUMsIDB4NTUsIDB4NzQsIDB4RUIsIDB4REUsIDB4OTIsIDB4M0YpLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AzODRyMV9UXzEyX1lbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4OUMsIDB4MzgsIDB4OTIsIDB4MDYsIDB4MTksIDB4RDAsIDB4QjMsIDB4QjIpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgyQSwgMHg5OSwgMHgyNiwgMHhBMywgMHg1RiwgMHhFMiwgMHhDMSwgMHg4MSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDc1LCAweEZDLCAweEZELCAweEMzLCAweEI2LCAweDI2LCAweDI0LCAweDhGKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QUYsIDB4QUQsIDB4RTcsIDB4NDksIDB4QjcsIDB4NjQsIDB4NEIsIDB4OTYpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg2QywgMHg0RSwgMHg5NSwgMHhBRCwgMHgwNywgMHhGRSwgMHhCNiwgMHgzMCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDRGLCAweDE1LCAweEU3LCAweDJELCAweDE5LCAweEE5LCAweDA4LCAweDEwKSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMzg0cjFfVF8xM19YW10gPSB7CisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEJFLCAweEJELCAweEFDLCAweDBBLCAweDNGLCAweDZCLCAweEZGLCAweEZBKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RTAsIDB4RTQsIDB4NzQsIDB4MTQsIDB4RDksIDB4NzAsIDB4MUQsIDB4NzEpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhGMiwgMHhCMCwgMHg3MSwgMHhCQiwgMHhEOCwgMHgxOCwgMHg5NiwgMHgyQiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweERBLCAweEI4LCAweDE5LCAweDkwLCAweDgwLCAweEI1LCAweEVFLCAweDAxKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4OTEsIDB4MjEsIDB4MjAsIDB4QTYsIDB4MTcsIDB4NDgsIDB4MDMsIDB4NkYpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhFMywgMHgxRCwgMHhCQiwgMHg2RCwgMHg5NCwgMHgyMCwgMHgzNCwgMHhGMSksCit9Oworc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDM4NHIxX1RfMTNfWVtdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg1OSwgMHg4MiwgMHg2NywgMHg0QiwgMHg4RSwgMHg0RSwgMHhCRSwgMHhFMiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEJFLCAweERBLCAweDc3LCAweEY4LCAweDIzLCAweDU1LCAweDJCLCAweDJEKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NUMsIDB4MDIsIDB4REUsIDB4MjUsIDB4MzUsIDB4MkQsIDB4NzQsIDB4NTEpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhEMCwgMHgwQywgMHhCOCwgMHgwQiwgMHgzOSwgMHhCQSwgMHhBRCwgMHgwNCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEE2LCAweDBFLCAweDI4LCAweDRELCAweEUxLCAweDNELCAweEU0LCAweDFCKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NUQsIDB4RUMsIDB4MEEsIDB4RDQsIDB4QjgsIDB4QzQsIDB4OEQsIDB4QjApLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AzODRyMV9UXzE0X1hbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4M0UsIDB4NjgsIDB4Q0UsIDB4QzIsIDB4NTUsIDB4NEQsIDB4MEMsIDB4NkQpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg5QiwgMHgyMCwgMHg5MywgMHgzMiwgMHg5MCwgMHhENiwgMHhBRSwgMHg0NyksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweERELCAweDc4LCAweEFCLCAweDQzLCAweDlFLCAweEVCLCAweDczLCAweEFFKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RUQsIDB4OTcsIDB4QzMsIDB4ODMsIDB4QTYsIDB4M0MsIDB4RjEsIDB4QkYpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgwRiwgMHgyNSwgMHgyNSwgMHg2NiwgMHgwOCwgMHgyNiwgMHhGQSwgMHg0QiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDQxLCAweEZCLCAweDQ0LCAweDVELCAweDgyLCAweEVDLCAweDNCLCAweEFDKSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMzg0cjFfVF8xNF9ZW10gPSB7CisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDU4LCAweDkwLCAweEVBLCAweEI1LCAweDA0LCAweDk5LCAweEQwLCAweDY5KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NEEsIDB4RjIsIDB4MjIsIDB4QTAsIDB4RUIsIDB4RkQsIDB4NDUsIDB4ODcpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg1RCwgMHhBNCwgMHg4MSwgMHgzMiwgMHhGQywgMHhGQSwgMHhFRSwgMHg1QiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDI3LCAweEJCLCAweEE0LCAweDZBLCAweDc3LCAweDQxLCAweDVDLCAweDFEKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QTEsIDB4MUUsIDB4QUEsIDB4NEYsIDB4RjAsIDB4MTAsIDB4QjMsIDB4NTApLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgwOSwgMHg3NCwgMHgxMywgMHgxNCwgMHg5RSwgMHg5MCwgMHhENywgMHhFNiksCit9Oworc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDM4NHIxX1RfMTVfWFtdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhEQiwgMHhCRCwgMHg3MCwgMHg0RiwgMHhBOCwgMHhEMSwgMHgwNiwgMHgyQyksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDE5LCAweDRFLCAweDJFLCAweDY4LCAweEZDLCAweDM1LCAweEZBLCAweDUwKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NjAsIDB4NTMsIDB4NzUsIDB4RUQsIDB4RjIsIDB4NUYsIDB4QzIsIDB4RUIpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgzOSwgMHg4NywgMHg2QiwgMHg5RiwgMHgwNSwgMHhFMiwgMHgyMiwgMHg5MyksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDRGLCAweDFBLCAweEE4LCAweEI3LCAweDAzLCAweDlFLCAweDZELCAweDdDKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4Q0IsIDB4RDAsIDB4NjksIDB4ODgsIDB4QTgsIDB4MzksIDB4OUUsIDB4M0EpLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AzODRyMV9UXzE1X1lbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RjgsIDB4RUYsIDB4NjgsIDB4RkUsIDB4RUMsIDB4MjQsIDB4MDgsIDB4MTUpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhBMSwgMHgwNiwgMHg0QiwgMHg5MiwgMHgwRCwgMHhCNywgMHgzNCwgMHg3NCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDNFLCAweEY0LCAweERELCAweDFBLCAweEEwLCAweDRBLCAweEU0LCAweDQ1KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QzMsIDB4NjMsIDB4NEYsIDB4NEYsIDB4Q0UsIDB4QkIsIDB4RDYsIDB4RDMpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhDRCwgMHhFRSwgMHg4RCwgMHhERiwgMHgzRiwgMHg3MywgMHhCNywgMHhBQyksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweERGLCAweDA2LCAweEI2LCAweDgwLCAweDRELCAweDgxLCAweEQ5LCAweDUzKSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMzg0cjFfVF8xNl9YW10gPSB7CisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDE1LCAweEY1LCAweDEzLCAweERGLCAweDEzLCAweDE5LCAweDk3LCAweDk0KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MDgsIDB4RjksIDB4QjMsIDB4MzMsIDB4NjYsIDB4ODIsIDB4MjEsIDB4RkUpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhGNSwgMHhGQywgMHgzOSwgMHgxNiwgMHgyMywgMHg0MywgMHg3NiwgMHgwRSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDA5LCAweDQ4LCAweDI1LCAweEExLCAweDY0LCAweDk1LCAweDFDLCAweDJGKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NDMsIDB4QUMsIDB4MTUsIDB4NTcsIDB4RDksIDB4REUsIDB4QTAsIDB4MjgpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgxNiwgMHg1RiwgMHhCOCwgMHgzRCwgMHg0OCwgMHg5MSwgMHgyNCwgMHhDQyksCit9Oworc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDM4NHIxX1RfMTZfWVtdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgyRCwgMHhGMiwgMHhDOCwgMHg1NCwgMHhEMSwgMHgzMiwgMHhCRCwgMHhDNCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDhBLCAweDNCLCAweEYwLCAweEFBLCAweDlELCAweEQ4LCAweEY0LCAweDIwKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NEYsIDB4QzMsIDB4QkIsIDB4NkMsIDB4NjYsIDB4QUMsIDB4MjUsIDB4MkQpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg2RiwgMHgyNSwgMHgxMCwgMHhCMiwgMHhFMSwgMHg0MSwgMHhERSwgMHgxRCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDNDLCAweEU4LCAweDMwLCAweEI4LCAweDM3LCAweEJDLCAweDJBLCAweDk4KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QkEsIDB4NTcsIDB4MDEsIDB4NEEsIDB4MUUsIDB4NzgsIDB4OUYsIDB4ODUpLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AzODRyMV9UXzE3X1hbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QkQsIDB4MTksIDB4Q0QsIDB4MTIsIDB4MEIsIDB4NTEsIDB4NEYsIDB4NTYpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgzMCwgMHg0QiwgMHgzRCwgMHgyNCwgMHhBNCwgMHgxNiwgMHg1OSwgMHgwNSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEFDLCAweEVCLCAweEQzLCAweDU5LCAweDJFLCAweDc1LCAweDdDLCAweDAxKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4OEMsIDB4QjksIDB4QjQsIDB4QTUsIDB4RDksIDB4MkUsIDB4MjksIDB4NEMpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg4NiwgMHgxNiwgMHgwNSwgMHg3NSwgMHgwMiwgMHhCMywgMHgwNiwgMHhFRSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEFCLCAweDdDLCAweDlGLCAweDc5LCAweDkxLCAweEYxLCAweDRGLCAweDIzKSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMzg0cjFfVF8xN19ZW10gPSB7CisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDY1LCAweDk4LCAweDdDLCAweDg0LCAweEUxLCAweEZGLCAweDMwLCAweDc3KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NzEsIDB4RTIsIDB4QzIsIDB4NUYsIDB4NTUsIDB4NDAsIDB4QkQsIDB4Q0QpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg2OSwgMHg2NSwgMHg4NywgMHgzRiwgMHhDNCwgMHhDMiwgMHgyNCwgMHg1NyksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDBFLCAweDMwLCAweDBBLCAweDYwLCAweDE1LCAweEQxLCAweDI0LCAweDQ4KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NTcsIDB4OTksIDB4RDksIDB4QjYsIDB4QUUsIDB4QjEsIDB4QUYsIDB4MUQpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg5QiwgMHg4MCwgMHhFRSwgMHhBMiwgMHgwRiwgMHg3NCwgMHhCOSwgMHhGMyksCit9Oworc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDM4NHIxX1RfMThfWFtdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgwMywgMHhFNiwgMHgwRiwgMHgzNywgMHhDMSwgMHgxMCwgMHg5OSwgMHgxRSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDYxLCAweEFELCAweDlELCAweDVELCAweDgwLCAweDAxLCAweEE2LCAweEZFKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QjAsIDB4MEYsIDB4MTAsIDB4MkEsIDB4OUQsIDB4MjAsIDB4MzgsIDB4RUIpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg2QywgMHg2MCwgMHhDQiwgMHhDRSwgMHg1QSwgMHhBMCwgMHhBNywgMHgzMiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEJBLCAweENGLCAweDE0LCAweERGLCAweEJGLCAweEU1LCAweDc0LCAweDJEKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QjUsIDB4MTIsIDB4MUEsIDB4REQsIDB4NTksIDB4MDIsIDB4NUQsIDB4QzYpLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AzODRyMV9UXzE4X1lbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QzgsIDB4QzksIDB4RjgsIDB4RjUsIDB4QjYsIDB4MTMsIDB4NEQsIDB4N0IpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhFRCwgMHg0NSwgMHhCMSwgMHg5MywgMHhCMywgMHhBMiwgMHg3OSwgMHhEQyksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDc0LCAweEY2LCAweENGLCAweEY3LCAweEU2LCAweDI5LCAweDlDLCAweENDKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4ODcsIDB4NTAsIDB4NjUsIDB4ODAsIDB4QkMsIDB4NTksIDB4MEEsIDB4NTkpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgwRSwgMHhGMCwgMHgyNCwgMHgzNSwgMHhBMiwgMHg0NiwgMHhGMCwgMHgwQyksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEJELCAweDI2LCAweEMwLCAweDlELCAweDYxLCAweDU2LCAweDYyLCAweDY3KSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMzg0cjFfVF8xOV9YW10gPSB7CisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDEwLCAweEJCLCAweEMyLCAweDI0LCAweDQzLCAweDJFLCAweDM3LCAweDU0KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4OEEsIDB4RjcsIDB4Q0UsIDB4MzUsIDB4RkMsIDB4NzcsIDB4RjMsIDB4M0YpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg3NSwgMHgzNCwgMHg5NiwgMHhENSwgMHg0QSwgMHg3NiwgMHg5RCwgMHg2QiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEI4LCAweDNCLCAweDBGLCAweEVBLCAweEE4LCAweDEyLCAweDBCLCAweDIyKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NjYsIDB4M0YsIDB4NUQsIDB4MkQsIDB4MUMsIDB4RDQsIDB4OUUsIDB4RkIpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg3RCwgMHgyRSwgMHhERCwgMHhDNywgMHg2RSwgMHhBQiwgMHhBRiwgMHhEQyksCit9Oworc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDM4NHIxX1RfMTlfWVtdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg4QywgMHhCMiwgMHg3QiwgMHgwQywgMHg5QSwgMHg4MywgMHg4RSwgMHg1OSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDMwLCAweDUxLCAweDkwLCAweDkyLCAweDc5LCAweDMyLCAweDE5LCAweEMzKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RUUsIDB4ODksIDB4RjksIDB4RDAsIDB4Q0YsIDB4MkMsIDB4QTUsIDB4OEYpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg3QiwgMHg1MCwgMHgyMSwgMHhERSwgMHg1MCwgMHg0MSwgMHg5RCwgMHg4MSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEUwLCAweDdELCAweDJCLCAweDlFLCAweDlELCAweDk1LCAweEE4LCAweEUzKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RDgsIDB4QTUsIDB4MjAsIDB4ODcsIDB4ODgsIDB4OTcsIDB4NUYsIDB4QUEpLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AzODRyMV9UXzIwX1hbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NjQsIDB4NTksIDB4QjQsIDB4NjYsIDB4N0UsIDB4RTgsIDB4NUEsIDB4NjApLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhBNSwgMHg1QywgMHg3RSwgMHhCMiwgMHhBRCwgMHhEOSwgMHhDOSwgMHhEQSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDgyLCAweDk3LCAweDQ5LCAweEEzLCAweDEzLCAweDgzLCAweDA3LCAweDJFKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NUEsIDB4MjYsIDB4QzcsIDB4MTMsIDB4MzUsIDB4MEQsIDB4QjAsIDB4NkIpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgxRSwgMHg2MCwgMHhBQiwgMHhGQSwgMHg0QiwgMHg5MywgMHgxOCwgMHgyQyksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDU0LCAweDJELCAweDFDLCAweDMxLCAweDRDLCAweEU0LCAweDYxLCAweEFFKSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMzg0cjFfVF8yMF9ZW10gPSB7CisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweERFLCAweDRELCAweDFFLCAweDUxLCAweDU5LCAweDZFLCAweDkxLCAweEM1KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MzgsIDB4NTQsIDB4NEQsIDB4NTEsIDB4RUQsIDB4MzYsIDB4Q0MsIDB4NjApLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgxOCwgMHhBOCwgMHg1NiwgMHhDNywgMHg3OCwgMHgyNywgMHgzMywgMHhDNSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDQyLCAweEI3LCAweDk1LCAweEM5LCAweDhCLCAweEM4LCAweDZBLCAweEJDKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NUUsIDB4RTksIDB4MTMsIDB4OTYsIDB4QjMsIDB4RTEsIDB4RjksIDB4RUUpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhGNSwgMHg0NiwgMHhCMCwgMHg1RSwgMHhDMywgMHg5NCwgMHgwMywgMHgwNSksCit9Oworc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDM4NHIxX1RfMjFfWFtdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg2RCwgMHg1QiwgMHgyOSwgMHgzMCwgMHg0MSwgMHgxQSwgMHg5RSwgMHhCNiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDc2LCAweENBLCAweDgzLCAweDMxLCAweDVCLCAweEE3LCAweENCLCAweDQyKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MjEsIDB4NDEsIDB4NTAsIDB4NDQsIDB4NEQsIDB4NjQsIDB4MzEsIDB4ODkpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhDRiwgMHg4NCwgMHhDMiwgMHg1RCwgMHg5NywgMHhBNSwgMHgzQywgMHgxOCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEYwLCAweDBGLCAweEE1LCAweEZELCAweDhFLCAweDVBLCAweDQ3LCAweDJDKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4N0MsIDB4NTgsIDB4MDIsIDB4MkQsIDB4NDAsIDB4QjEsIDB4MEIsIDB4QkEpLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AzODRyMV9UXzIxX1lbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4REEsIDB4MzMsIDB4OEMsIDB4NjcsIDB4Q0UsIDB4MjMsIDB4NDMsIDB4OTkpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg4NCwgMHg1MywgMHg0NywgMHg3MiwgMHg0NCwgMHgxRiwgMHg1QiwgMHgyQSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEFFLCAweEMxLCAweEQ5LCAweEE0LCAweDUwLCAweDg4LCAweDYzLCAweDE4KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4N0MsIDB4RjIsIDB4NzUsIDB4NjksIDB4NzMsIDB4MDAsIDB4QzQsIDB4MzEpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg0QiwgMHg5MCwgMHgxRCwgMHhERiwgMHgxQSwgMHgwMCwgMHhEOCwgMHg2OSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDA1LCAweEIxLCAweDg5LCAweDQ4LCAweEE4LCAweDcwLCAweDYyLCAweEVGKSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMzg0cjFfVF8yMl9YW10gPSB7CisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDdFLCAweDhBLCAweDU1LCAweDUwLCAweDdCLCAweEVGLCAweDhBLCAweDNDKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RkUsIDB4MUIsIDB4MjMsIDB4NDgsIDB4MjMsIDB4NjMsIDB4OTEsIDB4QjYpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgwRCwgMHgwNCwgMHg1NCwgMHgzQywgMHgyNCwgMHg5QiwgMHhDNywgMHg5QSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDI1LCAweDM4LCAweEMzLCAweDg0LCAweEZCLCAweEZGLCAweDlGLCAweDQ5KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NjYsIDB4MkEsIDB4RTAsIDB4NkQsIDB4NjgsIDB4OEEsIDB4NUMsIDB4Q0IpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhDNCwgMHg5MywgMHg1MywgMHg4NSwgMHhBMSwgMHgwRCwgMHhBRiwgMHg2MyksCit9Oworc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDM4NHIxX1RfMjJfWVtdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgxQiwgMHg4OCwgMHg5NSwgMHg0QywgMHgwQiwgMHhEMCwgMHgwNiwgMHg1MSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDkyLCAweEFGLCAweDhELCAweDQ5LCAweEEyLCAweEM4LCAweEI0LCAweEUwKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NzUsIDB4NzYsIDB4NTMsIDB4MDksIDB4ODgsIDB4NDMsIDB4ODcsIDB4Q0EpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg5MCwgMHhBNCwgMHg3NywgMHgzRiwgMHg1RSwgMHgyMSwgMHhCNCwgMHgwQSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDM1LCAweDlFLCAweDg2LCAweDY0LCAweENDLCAweDkxLCAweEMxLCAweDc3KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QzEsIDB4MTcsIDB4NTYsIDB4Q0IsIDB4QzMsIDB4N0QsIDB4NUIsIDB4QjEpLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AzODRyMV9UXzIzX1hbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NjQsIDB4NzQsIDB4OUYsIDB4QjUsIDB4OTEsIDB4MjEsIDB4QjEsIDB4MUMpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgxRSwgMHhFRCwgMHhFMSwgMHgxMSwgMHhFRiwgMHg0NSwgMHhBRiwgMHhDMSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEUwLCAweDMxLCAweEJFLCAweEIyLCAweEJDLCAweDcyLCAweDY1LCAweDFGKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QjEsIDB4NEIsIDB4OEMsIDB4NzcsIDB4Q0UsIDB4MUUsIDB4NDIsIDB4QjUpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhGRiwgMHhDOSwgMHhBQSwgMHhCOSwgMHhEOSwgMHg4NiwgMHg5OSwgMHg1NSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDY1LCAweDIzLCAweDgwLCAweEM2LCAweDRFLCAweDM1LCAweDBCLCAweDZEKSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMzg0cjFfVF8yM19ZW10gPSB7CisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDQ3LCAweEQ4LCAweEEyLCAweDBBLCAweDM5LCAweDMyLCAweDFELCAweDIzKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NjEsIDB4QzgsIDB4ODYsIDB4RjEsIDB4MTIsIDB4OUEsIDB4NEEsIDB4MDUpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg4RCwgMHhGMSwgMHg3QywgMHhBQSwgMHg3MCwgMHg4RSwgMHhCQywgMHgwMSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDYyLCAweDAxLCAweDQ3LCAweDhGLCAweERELCAweDhCLCAweEE1LCAweEM4KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4REIsIDB4MDgsIDB4MjEsIDB4RjQsIDB4QUIsIDB4QzcsIDB4RjUsIDB4OTYpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgwQSwgMHg3NiwgMHhBNSwgMHg5NSwgMHhDNCwgMHgwRiwgMHg4OCwgMHgxRCksCit9Oworc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDM4NHIxX1RfMjRfWFtdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgzRiwgMHg0MiwgMHgyQSwgMHg1MiwgMHhDRCwgMHg3NSwgMHg1MSwgMHg0OSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDkwLCAweDM2LCAweEU1LCAweDA0LCAweDJCLCAweDQ0LCAweEM2LCAweEVGKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NUMsIDB4RUUsIDB4MTYsIDB4MTMsIDB4MDcsIDB4ODMsIDB4QjUsIDB4MzApLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg3NiwgMHg1OSwgMHhDNiwgMHhBMiwgMHgxOSwgMHgwNSwgMHhEMywgMHhDNiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEI2LCAweDhCLCAweEE4LCAweDE2LCAweDA5LCAweEI3LCAweEVBLCAweEQ2KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NzAsIDB4RUUsIDB4MTQsIDB4QUYsIDB4QjUsIDB4RkQsIDB4RDAsIDB4RUYpLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AzODRyMV9UXzI0X1lbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MTgsIDB4N0MsIDB4Q0EsIDB4NzEsIDB4M0UsIDB4NkUsIDB4NjYsIDB4NzUpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhCRSwgMHgzMSwgMHgwRSwgMHgzRiwgMHhFNSwgMHg5MSwgMHhDNCwgMHg3RiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDhFLCAweDNELCAweEMyLCAweDNFLCAweDk1LCAweDM3LCAweDU4LCAweDJCKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MDEsIDB4MUYsIDB4MDIsIDB4MDMsIDB4RjMsIDB4RUYsIDB4RUUsIDB4NjYpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgyOCwgMHg1QiwgMHgxQSwgMHhGQywgMHgzOCwgMHhDRCwgMHhFOCwgMHgyNCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDEyLCAweDU3LCAweDQyLCAweDg1LCAweEM2LCAweDIxLCAweDY4LCAweDcxKSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMzg0cjFfVF8yNV9YW10gPSB7CisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDhELCAweEEyLCAweDRBLCAweDY2LCAweEIxLCAweDBBLCAweEU2LCAweEMwKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4ODYsIDB4MEMsIDB4OTQsIDB4OUQsIDB4NUUsIDB4OTksIDB4QjIsIDB4Q0UpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhBRCwgMHgwMywgMHg0MCwgMHhDQSwgMHhCMiwgMHhCMywgMHgzMCwgMHg1NSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDc0LCAweDc4LCAweDQ4LCAweDI3LCAweDM0LCAweDFFLCAweEUyLCAweDQyKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QUUsIDB4NzIsIDB4NUIsIDB4QUMsIDB4QzEsIDB4NkQsIDB4RTMsIDB4ODIpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg1NywgMHhBQiwgMHg0NiwgMHhDQiwgMHhFQSwgMHg1RSwgMHg0QiwgMHgwQiksCit9Oworc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDM4NHIxX1RfMjVfWVtdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhGQywgMHgwOCwgMHhBRCwgMHg0RSwgMHg1MSwgMHg5RiwgMHgyQSwgMHg1MiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDY4LCAweDVDLCAweDdELCAweDRDLCAweEQ2LCAweENGLCAweERELCAweDAyKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RDgsIDB4NzYsIDB4MjYsIDB4RTAsIDB4OEIsIDB4MTAsIDB4RDksIDB4N0MpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgzMCwgMHhBNywgMHgyMywgMHg0RSwgMHg1RiwgMHhEMiwgMHg0MiwgMHgxNyksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEQxLCAweEU1LCAweEE0LCAweEVDLCAweDc3LCAweDIxLCAweDM0LCAweDI4KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NUMsIDB4MTQsIDB4NjUsIDB4RUEsIDB4NEEsIDB4ODUsIDB4QzMsIDB4MkYpLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AzODRyMV9UXzI2X1hbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MTksIDB4RDgsIDB4NDAsIDB4MjcsIDB4NzMsIDB4MTUsIDB4N0UsIDB4NjUpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhGNiwgMHhCQiwgMHg1MywgMHg3RSwgMHgwRiwgMHg0MCwgMHhDOCwgMHhENCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEVBLCAweDM3LCAweDE5LCAweDczLCAweEVGLCAweDVBLCAweDVFLCAweDA0KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4OUMsIDB4NzMsIDB4MkIsIDB4NDksIDB4N0UsIDB4QUMsIDB4OTcsIDB4NUMpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgxNSwgMHhCMiwgMHhDMywgMHgxRSwgMHgwRSwgMHhFNywgMHhEMiwgMHgyMSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDhBLCAweDA4LCAweEQ2LCAweERELCAweEFDLCAweDIxLCAweEQ2LCAweDNFKSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMzg0cjFfVF8yNl9ZW10gPSB7CisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEE5LCAweDI2LCAweEJFLCAweDZELCAweDZELCAweEYyLCAweDM4LCAweDNGKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MDgsIDB4NkMsIDB4MzEsIDB4QTcsIDB4NDksIDB4NTAsIDB4M0EsIDB4ODkpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhDMywgMHg5OSwgMHhDNiwgMHhGNSwgMHhEMiwgMHhDMiwgMHgzMCwgMHg1QSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDJBLCAweEU0LCAweEY2LCAweDhCLCAweDhCLCAweDk3LCAweEU5LCAweEIyKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4REQsIDB4MjEsIDB4QjcsIDB4MEQsIDB4RkMsIDB4MTUsIDB4NTQsIDB4MEIpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg2NSwgMHg4MywgMHgxQywgMHhBNCwgMHhDRCwgMHg2QiwgMHg5RCwgMHhGMiksCit9Oworc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDM4NHIxX1RfMjdfWFtdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhENiwgMHhFOCwgMHg0QywgMHg0OCwgMHhFNCwgMHhBQSwgMHg2OSwgMHg5MyksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDI3LCAweDdBLCAweDI3LCAweEZDLCAweDM3LCAweDk2LCAweDFBLCAweDdCKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NkYsIDB4RTcsIDB4MzAsIDB4QTUsIDB4Q0YsIDB4MTMsIDB4NDYsIDB4NUMpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg4QywgMHhEOCwgMHhBRiwgMHg3NCwgMHgyMywgMHg0RCwgMHg1NiwgMHg4NCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDMyLCAweDNELCAweDQ0LCAweDE0LCAweDFCLCAweDk3LCAweDgzLCAweEYwKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RkEsIDB4NDcsIDB4RDcsIDB4NUYsIDB4RkQsIDB4OTgsIDB4MzgsIDB4RjcpLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AzODRyMV9UXzI3X1lbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QTMsIDB4NzMsIDB4NjQsIDB4MzYsIDB4RkQsIDB4N0IsIDB4QzEsIDB4MTUpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhFQSwgMHg1RCwgMHgzMiwgMHhEMiwgMHg0NywgMHg5NCwgMHg4OSwgMHgyRCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDUxLCAweEU5LCAweDMwLCAweEFDLCAweDA2LCAweEM4LCAweDY1LCAweDA0KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RkEsIDB4NkMsIDB4QjksIDB4MUIsIDB4RjcsIDB4NjEsIDB4NDksIDB4NTMpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhENywgMHhGRiwgMHgzMiwgMHg0MywgMHg4MCwgMHhEQSwgMHhBNiwgMHhCMSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEFDLCAweEY4LCAweDA0LCAweDAxLCAweDk1LCAweDM1LCAweENFLCAweDIxKSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMzg0cjFfVF8yOF9YW10gPSB7CisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDZELCAweDA2LCAweDQ2LCAweDBELCAweDUxLCAweEUyLCAweEQ4LCAweEFDKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MTQsIDB4NTcsIDB4MUQsIDB4NkYsIDB4NzksIDB4QTAsIDB4Q0QsIDB4QTYpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhERiwgMHhGQiwgMHgzNiwgMHhDQSwgMHhBRCwgMHhGNSwgMHg5RSwgMHg0MSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDZGLCAweDdBLCAweDFELCAweDlFLCAweDFELCAweDk1LCAweDQ4LCAweERDKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4ODEsIDB4MjYsIDB4QTUsIDB4QjcsIDB4MTUsIDB4MkMsIDB4QzIsIDB4QzYpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg4NiwgMHg0MiwgMHg3MiwgMHhBQSwgMHgxMSwgMHhEQywgMHhDOSwgMHhCNiksCit9Oworc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDM4NHIxX1RfMjhfWVtdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgzRiwgMHg2QywgMHg2NCwgMHhBNywgMHg2MiwgMHgzQywgMHhBQiwgMHhENCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDQ4LCAweDZBLCAweDQ0LCAweEQ4LCAweDYwLCAweEMwLCAweEE4LCAweDgwKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4ODIsIDB4NzYsIDB4NTgsIDB4MTIsIDB4NTcsIDB4M0MsIDB4ODksIDB4NDYpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg4MiwgMHg0RiwgMHg4MywgMHhDRSwgMHhDQiwgMHhCOCwgMHhEMCwgMHgyQyksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDlBLCAweDg0LCAweDA0LCAweEIwLCAweEFELCAweEVCLCAweEZBLCAweERGKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MzQsIDB4QTQsIDB4QzMsIDB4NDEsIDB4NDQsIDB4NEUsIDB4NjUsIDB4M0UpLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AzODRyMV9UXzI5X1hbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QjYsIDB4MTYsIDB4QTksIDB4MUMsIDB4RTcsIDB4NjUsIDB4MjAsIDB4QzEpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg1OCwgMHg1MywgMHgzMiwgMHhGOCwgMHhDMCwgMHhBNiwgMHhCRCwgMHgyQyksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEI3LCAweEYwLCAweEU2LCAweDU3LCAweDMxLCAweENDLCAweDI2LCAweDZGKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MjcsIDB4RTMsIDB4NTQsIDB4MUMsIDB4MzQsIDB4RDMsIDB4MTcsIDB4QkMpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhGNSwgMHhBRSwgMHhFRCwgMHhGQiwgMHhDRCwgMHhFNywgMHgxRSwgMHg5RiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDVBLCAweDE2LCAweDFDLCAweDM0LCAweDQwLCAweDAwLCAweDFGLCAweEI2KSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMzg0cjFfVF8yOV9ZW10gPSB7CisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDZBLCAweDMyLCAweDAwLCAweEMyLCAweEQ0LCAweDNCLCAweDFBLCAweDA5KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MzQsIDB4RTAsIDB4OTksIDB4OEYsIDB4MEMsIDB4NEEsIDB4MTYsIDB4NDQpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg4MywgMHg3MywgMHgxOCwgMHgxQiwgMHhENCwgMHg5NCwgMHgyOSwgMHg2MiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDI5LCAweEE0LCAweDJELCAweEIxLCAweDlELCAweDc0LCAweDMyLCAweDY3KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QkYsIDB4RjQsIDB4QjEsIDB4MEMsIDB4MzcsIDB4NjIsIDB4OEIsIDB4NjYpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhDOSwgMHhGRiwgMHhEQSwgMHhFMiwgMHgzNSwgMHhBMywgMHhCNiwgMHg0MiksCit9Oworc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDM4NHIxX1RfMzBfWFtdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg5MSwgMHg0OSwgMHg5OSwgMHg2NSwgMHhDNSwgMHhFRCwgMHgxNiwgMHhFRiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDc5LCAweDQyLCAweDlBLCAweEYzLCAweEE3LCAweDRFLCAweDZGLCAweDJCKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4N0IsIDB4MEEsIDB4N0UsIDB4QzAsIDB4RDcsIDB4NEUsIDB4MDcsIDB4NTUpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhENiwgMHg3QSwgMHgzMSwgMHg2OSwgMHhBNiwgMHhCOSwgMHgxNSwgMHgzNCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEE4LCAweEUwLCAweDcyLCAweEE0LCAweDNGLCAweEI5LCAweEY4LCAweDBDKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MkIsIDB4NzUsIDB4MzIsIDB4ODUsIDB4QTIsIDB4REUsIDB4MzcsIDB4MTIpLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AzODRyMV9UXzMwX1lbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QkMsIDB4QzAsIDB4MEQsIDB4Q0YsIDB4MjUsIDB4NDEsIDB4QTQsIDB4RjQpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg5QiwgMHhGQywgMHhCMiwgMHg0OCwgMHhDMywgMHg4NSwgMHg4MywgMHg0QiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDJCLCAweEJFLCAweDBCLCAweDU4LCAweDJELCAweDdBLCAweDlBLCAweDYyKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QzUsIDB4RjMsIDB4ODEsIDB4MTgsIDB4MUIsIDB4NzQsIDB4NEYsIDB4MkMpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhFMiwgMHg0MywgMHhBMywgMHgwQSwgMHgxNiwgMHg4QiwgMHhBMywgMHgxRSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDRBLCAweDE4LCAweDgxLCAweDdCLCAweDhELCAweEEyLCAweDM1LCAweDc3KSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMzg0cjFfVF8zMV9YW10gPSB7CisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDg2LCAweEM0LCAweDNGLCAweDJDLCAweEU3LCAweDVGLCAweDk5LCAweDAzKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RjAsIDB4MkIsIDB4QjcsIDB4QjYsIDB4QUQsIDB4NUEsIDB4NTYsIDB4RkYpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgwNCwgMHgwMCwgMHhBNCwgMHg0OCwgMHhDOCwgMHhFOCwgMHhCQSwgMHhCRiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEU4LCAweEExLCAweEI1LCAweDEzLCAweDVBLCAweENELCAweDk5LCAweDlDKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QjAsIDB4OTUsIDB4QUQsIDB4RkMsIDB4RTIsIDB4N0UsIDB4RTcsIDB4RkUpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg5NiwgMHg2QiwgMHhEMSwgMHgzNCwgMHg5OSwgMHg1MywgMHg2MywgMHgwQiksCit9Oworc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDM4NHIxX1RfMzFfWVtdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgxOSwgMHg4QSwgMHg3NywgMHg1RCwgMHgyQiwgMHhBQiwgMHgwMSwgMHgyOCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDRFLCAweDg1LCAweEQwLCAweEQ1LCAweDQ5LCAweDgzLCAweDRELCAweDYwKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4ODEsIDB4QzYsIDB4OTEsIDB4MzAsIDB4M0IsIDB4MDAsIDB4QUYsIDB4N0EpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgzQSwgMHhBRSwgMHg2MSwgMHgwNywgMHhFMSwgMHhCNiwgMHhFMiwgMHhDOSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDk1LCAweDQzLCAweDQxLCAweEZFLCAweDlCLCAweEI2LCAweEYwLCAweEE1KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QjQsIDB4OTcsIDB4QUUsIDB4QUQsIDB4ODksIDB4ODgsIDB4OUUsIDB4NDEpLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX2VjcF9wb2ludCBzZWNwMzg0cjFfVFszMl0gPSB7CisgICAgRUNQX1BPSU5UX0lOSVRfWFlfWjEoc2VjcDM4NHIxX1RfMF9YLCBzZWNwMzg0cjFfVF8wX1kpLAorICAgIEVDUF9QT0lOVF9JTklUX1hZX1owKHNlY3AzODRyMV9UXzFfWCwgc2VjcDM4NHIxX1RfMV9ZKSwKKyAgICBFQ1BfUE9JTlRfSU5JVF9YWV9aMChzZWNwMzg0cjFfVF8yX1gsIHNlY3AzODRyMV9UXzJfWSksCisgICAgRUNQX1BPSU5UX0lOSVRfWFlfWjAoc2VjcDM4NHIxX1RfM19YLCBzZWNwMzg0cjFfVF8zX1kpLAorICAgIEVDUF9QT0lOVF9JTklUX1hZX1owKHNlY3AzODRyMV9UXzRfWCwgc2VjcDM4NHIxX1RfNF9ZKSwKKyAgICBFQ1BfUE9JTlRfSU5JVF9YWV9aMChzZWNwMzg0cjFfVF81X1gsIHNlY3AzODRyMV9UXzVfWSksCisgICAgRUNQX1BPSU5UX0lOSVRfWFlfWjAoc2VjcDM4NHIxX1RfNl9YLCBzZWNwMzg0cjFfVF82X1kpLAorICAgIEVDUF9QT0lOVF9JTklUX1hZX1owKHNlY3AzODRyMV9UXzdfWCwgc2VjcDM4NHIxX1RfN19ZKSwKKyAgICBFQ1BfUE9JTlRfSU5JVF9YWV9aMChzZWNwMzg0cjFfVF84X1gsIHNlY3AzODRyMV9UXzhfWSksCisgICAgRUNQX1BPSU5UX0lOSVRfWFlfWjAoc2VjcDM4NHIxX1RfOV9YLCBzZWNwMzg0cjFfVF85X1kpLAorICAgIEVDUF9QT0lOVF9JTklUX1hZX1owKHNlY3AzODRyMV9UXzEwX1gsIHNlY3AzODRyMV9UXzEwX1kpLAorICAgIEVDUF9QT0lOVF9JTklUX1hZX1owKHNlY3AzODRyMV9UXzExX1gsIHNlY3AzODRyMV9UXzExX1kpLAorICAgIEVDUF9QT0lOVF9JTklUX1hZX1owKHNlY3AzODRyMV9UXzEyX1gsIHNlY3AzODRyMV9UXzEyX1kpLAorICAgIEVDUF9QT0lOVF9JTklUX1hZX1owKHNlY3AzODRyMV9UXzEzX1gsIHNlY3AzODRyMV9UXzEzX1kpLAorICAgIEVDUF9QT0lOVF9JTklUX1hZX1owKHNlY3AzODRyMV9UXzE0X1gsIHNlY3AzODRyMV9UXzE0X1kpLAorICAgIEVDUF9QT0lOVF9JTklUX1hZX1owKHNlY3AzODRyMV9UXzE1X1gsIHNlY3AzODRyMV9UXzE1X1kpLAorICAgIEVDUF9QT0lOVF9JTklUX1hZX1owKHNlY3AzODRyMV9UXzE2X1gsIHNlY3AzODRyMV9UXzE2X1kpLAorICAgIEVDUF9QT0lOVF9JTklUX1hZX1owKHNlY3AzODRyMV9UXzE3X1gsIHNlY3AzODRyMV9UXzE3X1kpLAorICAgIEVDUF9QT0lOVF9JTklUX1hZX1owKHNlY3AzODRyMV9UXzE4X1gsIHNlY3AzODRyMV9UXzE4X1kpLAorICAgIEVDUF9QT0lOVF9JTklUX1hZX1owKHNlY3AzODRyMV9UXzE5X1gsIHNlY3AzODRyMV9UXzE5X1kpLAorICAgIEVDUF9QT0lOVF9JTklUX1hZX1owKHNlY3AzODRyMV9UXzIwX1gsIHNlY3AzODRyMV9UXzIwX1kpLAorICAgIEVDUF9QT0lOVF9JTklUX1hZX1owKHNlY3AzODRyMV9UXzIxX1gsIHNlY3AzODRyMV9UXzIxX1kpLAorICAgIEVDUF9QT0lOVF9JTklUX1hZX1owKHNlY3AzODRyMV9UXzIyX1gsIHNlY3AzODRyMV9UXzIyX1kpLAorICAgIEVDUF9QT0lOVF9JTklUX1hZX1owKHNlY3AzODRyMV9UXzIzX1gsIHNlY3AzODRyMV9UXzIzX1kpLAorICAgIEVDUF9QT0lOVF9JTklUX1hZX1owKHNlY3AzODRyMV9UXzI0X1gsIHNlY3AzODRyMV9UXzI0X1kpLAorICAgIEVDUF9QT0lOVF9JTklUX1hZX1owKHNlY3AzODRyMV9UXzI1X1gsIHNlY3AzODRyMV9UXzI1X1kpLAorICAgIEVDUF9QT0lOVF9JTklUX1hZX1owKHNlY3AzODRyMV9UXzI2X1gsIHNlY3AzODRyMV9UXzI2X1kpLAorICAgIEVDUF9QT0lOVF9JTklUX1hZX1owKHNlY3AzODRyMV9UXzI3X1gsIHNlY3AzODRyMV9UXzI3X1kpLAorICAgIEVDUF9QT0lOVF9JTklUX1hZX1owKHNlY3AzODRyMV9UXzI4X1gsIHNlY3AzODRyMV9UXzI4X1kpLAorICAgIEVDUF9QT0lOVF9JTklUX1hZX1owKHNlY3AzODRyMV9UXzI5X1gsIHNlY3AzODRyMV9UXzI5X1kpLAorICAgIEVDUF9QT0lOVF9JTklUX1hZX1owKHNlY3AzODRyMV9UXzMwX1gsIHNlY3AzODRyMV9UXzMwX1kpLAorICAgIEVDUF9QT0lOVF9JTklUX1hZX1owKHNlY3AzODRyMV9UXzMxX1gsIHNlY3AzODRyMV9UXzMxX1kpLAorfTsKKyNlbHNlCisjZGVmaW5lIHNlY3AzODRyMV9UIE5VTEwKKyNlbmRpZgorCisjZW5kaWYgLyogTUJFRFRMU19FQ1BfRFBfU0VDUDM4NFIxX0VOQUJMRUQgKi8KKworLyoKKyAqIERvbWFpbiBwYXJhbWV0ZXJzIGZvciBzZWNwNTIxcjEKKyAqLworI2lmIGRlZmluZWQoTUJFRFRMU19FQ1BfRFBfU0VDUDUyMVIxX0VOQUJMRUQpCitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwNTIxcjFfcFtdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEZGLCAweEZGLCAweEZGLCAweEZGLCAweEZGLCAweEZGLCAweEZGLCAweEZGKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RkYsIDB4RkYsIDB4RkYsIDB4RkYsIDB4RkYsIDB4RkYsIDB4RkYsIDB4RkYpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEZGLCAweEZGLCAweEZGLCAweEZGLCAweEZGLCAweEZGLCAweEZGLCAweEZGKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RkYsIDB4RkYsIDB4RkYsIDB4RkYsIDB4RkYsIDB4RkYsIDB4RkYsIDB4RkYpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEZGLCAweEZGLCAweEZGLCAweEZGLCAweEZGLCAweEZGLCAweEZGLCAweEZGKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF8yKDB4RkYsIDB4MDEpLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3A1MjFyMV9iW10gPSB7CisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDAwLCAweDNGLCAweDUwLCAweDZCLCAweEQ0LCAweDFGLCAweDQ1LCAweEVGKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RjEsIDB4MzQsIDB4MkMsIDB4M0QsIDB4ODgsIDB4REYsIDB4NzMsIDB4MzUpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgwNywgMHhCRiwgMHhCMSwgMHgzQiwgMHhCRCwgMHhDMCwgMHg1MiwgMHgxNiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDdCLCAweDkzLCAweDdFLCAweEVDLCAweDUxLCAweDM5LCAweDE5LCAweDU2KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RTEsIDB4MDksIDB4RjEsIDB4OEUsIDB4OTEsIDB4ODksIDB4QjQsIDB4QjgpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhGMywgMHgxNSwgMHhCMywgMHg5OSwgMHg1QiwgMHg3MiwgMHhEQSwgMHhBMiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEVFLCAweDQwLCAweDg1LCAweEI2LCAweEEwLCAweDIxLCAweDlBLCAweDkyKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MUYsIDB4OUEsIDB4MUMsIDB4OEUsIDB4NjEsIDB4QjksIDB4M0UsIDB4OTUpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzIoMHg1MSwgMHgwMCksCit9Oworc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDUyMXIxX2d4W10gPSB7CisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDY2LCAweEJELCAweEU1LCAweEMyLCAweDMxLCAweDdFLCAweDdFLCAweEY5KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4OUIsIDB4NDIsIDB4NkEsIDB4ODUsIDB4QzEsIDB4QjMsIDB4NDgsIDB4MzMpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhERSwgMHhBOCwgMHhGRiwgMHhBMiwgMHgyNywgMHhDMSwgMHgxRCwgMHhGRSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDI4LCAweDU5LCAweEU3LCAweEVGLCAweDc3LCAweDVFLCAweDRCLCAweEExKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QkEsIDB4M0QsIDB4NEQsIDB4NkIsIDB4NjAsIDB4QUYsIDB4MjgsIDB4RjgpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgyMSwgMHhCNSwgMHgzRiwgMHgwNSwgMHgzOSwgMHg4MSwgMHg2NCwgMHg5QyksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDQyLCAweEI0LCAweDk1LCAweDIzLCAweDY2LCAweENCLCAweDNFLCAweDlFKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4Q0QsIDB4RTksIDB4MDQsIDB4MDQsIDB4QjcsIDB4MDYsIDB4OEUsIDB4ODUpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzIoMHhDNiwgMHgwMCksCit9Oworc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDUyMXIxX2d5W10gPSB7CisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDUwLCAweDY2LCAweEQxLCAweDlGLCAweDc2LCAweDk0LCAweEJFLCAweDg4KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NDAsIDB4QzIsIDB4NzIsIDB4QTIsIDB4ODYsIDB4NzAsIDB4M0MsIDB4MzUpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg2MSwgMHgwNywgMHhBRCwgMHgzRiwgMHgwMSwgMHhCOSwgMHg1MCwgMHhDNSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDQwLCAweDI2LCAweEY0LCAweDVFLCAweDk5LCAweDcyLCAweEVFLCAweDk3KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MkMsIDB4NjYsIDB4M0UsIDB4MjcsIDB4MTcsIDB4QkQsIDB4QUYsIDB4MTcpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg2OCwgMHg0NCwgMHg5QiwgMHg1NywgMHg0OSwgMHg0NCwgMHhGNSwgMHg5OCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEQ5LCAweDFCLCAweDdELCAweDJDLCAweEI0LCAweDVGLCAweDhBLCAweDVDKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MDQsIDB4QzAsIDB4M0IsIDB4OUEsIDB4NzgsIDB4NkEsIDB4MjksIDB4MzkpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzIoMHgxOCwgMHgwMSksCit9Oworc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDUyMXIxX25bXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MDksIDB4NjQsIDB4MzgsIDB4OTEsIDB4MUUsIDB4QjcsIDB4NkYsIDB4QkIpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhBRSwgMHg0NywgMHg5QywgMHg4OSwgMHhCOCwgMHhDOSwgMHhCNSwgMHgzQiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEQwLCAweEE1LCAweDA5LCAweEY3LCAweDQ4LCAweDAxLCAweENDLCAweDdGKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NkIsIDB4OTYsIDB4MkYsIDB4QkYsIDB4ODMsIDB4ODcsIDB4ODYsIDB4NTEpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhGQSwgMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEZGLCAweEZGLCAweEZGLCAweEZGLCAweEZGLCAweEZGLCAweEZGLCAweEZGKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RkYsIDB4RkYsIDB4RkYsIDB4RkYsIDB4RkYsIDB4RkYsIDB4RkYsIDB4RkYpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfMigweEZGLCAweDAxKSwKK307CisjaWYgTUJFRFRMU19FQ1BfRklYRURfUE9JTlRfT1BUSU0gPT0gMQorc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDUyMXIxX1RfMF9YW10gPSB7CisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDY2LCAweEJELCAweEU1LCAweEMyLCAweDMxLCAweDdFLCAweDdFLCAweEY5KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4OUIsIDB4NDIsIDB4NkEsIDB4ODUsIDB4QzEsIDB4QjMsIDB4NDgsIDB4MzMpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhERSwgMHhBOCwgMHhGRiwgMHhBMiwgMHgyNywgMHhDMSwgMHgxRCwgMHhGRSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDI4LCAweDU5LCAweEU3LCAweEVGLCAweDc3LCAweDVFLCAweDRCLCAweEExKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QkEsIDB4M0QsIDB4NEQsIDB4NkIsIDB4NjAsIDB4QUYsIDB4MjgsIDB4RjgpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgyMSwgMHhCNSwgMHgzRiwgMHgwNSwgMHgzOSwgMHg4MSwgMHg2NCwgMHg5QyksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDQyLCAweEI0LCAweDk1LCAweDIzLCAweDY2LCAweENCLCAweDNFLCAweDlFKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4Q0QsIDB4RTksIDB4MDQsIDB4MDQsIDB4QjcsIDB4MDYsIDB4OEUsIDB4ODUpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhDNiwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCksCit9Oworc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDUyMXIxX1RfMF9ZW10gPSB7CisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDUwLCAweDY2LCAweEQxLCAweDlGLCAweDc2LCAweDk0LCAweEJFLCAweDg4KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NDAsIDB4QzIsIDB4NzIsIDB4QTIsIDB4ODYsIDB4NzAsIDB4M0MsIDB4MzUpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg2MSwgMHgwNywgMHhBRCwgMHgzRiwgMHgwMSwgMHhCOSwgMHg1MCwgMHhDNSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDQwLCAweDI2LCAweEY0LCAweDVFLCAweDk5LCAweDcyLCAweEVFLCAweDk3KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MkMsIDB4NjYsIDB4M0UsIDB4MjcsIDB4MTcsIDB4QkQsIDB4QUYsIDB4MTcpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg2OCwgMHg0NCwgMHg5QiwgMHg1NywgMHg0OSwgMHg0NCwgMHhGNSwgMHg5OCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEQ5LCAweDFCLCAweDdELCAweDJDLCAweEI0LCAweDVGLCAweDhBLCAweDVDKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MDQsIDB4QzAsIDB4M0IsIDB4OUEsIDB4NzgsIDB4NkEsIDB4MjksIDB4MzkpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgxOCwgMHgwMSwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCksCit9Oworc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDUyMXIxX1RfMV9YW10gPSB7CisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDJGLCAweEIxLCAweDJELCAweEVCLCAweDI3LCAweDJGLCAweEU4LCAweERBKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4OTgsIDB4NEIsIDB4NDQsIDB4MjUsIDB4REIsIDB4NUMsIDB4NUYsIDB4NjcpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgxMywgMHg4NSwgMHgyOCwgMHg3OCwgMHgyRSwgMHg3NSwgMHgzNCwgMHgzMiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDY5LCAweDU3LCAweDBGLCAweDczLCAweDc4LCAweDdBLCAweEUzLCAweDUzKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4OEQsIDB4RDgsIDB4RUMsIDB4REMsIDB4REEsIDB4MDQsIDB4QUQsIDB4QUIpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgzNCwgMHg4QSwgMHgwOSwgMHhGMywgMHg1OCwgMHg3OSwgMHhEOCwgMHgyOSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDYzLCAweDAzLCAweENCLCAweDUwLCAweDFBLCAweDdGLCAweDU2LCAweDAwKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RjYsIDB4QTYsIDB4NzgsIDB4MzgsIDB4ODUsIDB4NjcsIDB4MEIsIDB4NDApLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg4MywgMHgwMSwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCksCit9Oworc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDUyMXIxX1RfMV9ZW10gPSB7CisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDhBLCAweEQ1LCAweEQyLCAweDIyLCAweEM0LCAweDAwLCAweDNCLCAweEJBKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RDUsIDB4OTMsIDB4MEUsIDB4N0IsIDB4ODUsIDB4NTEsIDB4QzMsIDB4MDYpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgzRCwgMHhBNiwgMHg1RiwgMHg1NCwgMHg0OSwgMHgwMiwgMHg4MSwgMHg3OCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDIyLCAweEU5LCAweDZCLCAweDNBLCAweDkyLCAweEU3LCAweDcyLCAweDFEKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NkYsIDB4NUYsIDB4MjgsIDB4OUUsIDB4OTEsIDB4MjcsIDB4ODgsIDB4RTMpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhFRiwgMHgyOCwgMHgzMSwgMHhCMywgMHg4NCwgMHhDQSwgMHgxMiwgMHgzMiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDNELCAweEY5LCAweEFDLCAweDIyLCAweDEwLCAweDBBLCAweDY0LCAweDQxKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RTksIDB4QzYsIDB4MzMsIDB4MUYsIDB4NjksIDB4MTksIDB4MTgsIDB4QkYpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhCRSwgMHgwMSwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCksCit9Oworc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDUyMXIxX1RfMl9YW10gPSB7CisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEEwLCAweDQ4LCAweEI4LCAweEM3LCAweDM3LCAweDVBLCAweDAwLCAweDM2KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MDcsIDB4Q0MsIDB4MzIsIDB4RTAsIDB4RUUsIDB4MDMsIDB4QzIsIDB4QkEpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhDNCwgMHgyOSwgMHhDMiwgMHhFNCwgMHg2RSwgMHgyNCwgMHgyMCwgMHg4RCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDA2LCAweDZCLCAweDdGLCAweDdCLCAweEY5LCAweEIwLCAweEI4LCAweDEzKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MUQsIDB4N0IsIDB4M0MsIDB4RTEsIDB4MTksIDB4QTEsIDB4MjMsIDB4MDIpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgyQSwgMHhFMywgMHhDMiwgMHg1MywgMHhDMCwgMHgwNywgMHgxMywgMHhBOSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDA3LCAweEZFLCAweDM2LCAweDM1LCAweDlGLCAweDVFLCAweDU5LCAweENFKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MUQsIDB4NTUsIDB4ODksIDB4ODQsIDB4QkMsIDB4RUYsIDB4QTIsIDB4QzIpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgxOSwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCksCit9Oworc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDUyMXIxX1RfMl9ZW10gPSB7CisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEZELCAweDFBLCAweDA4LCAweDY3LCAweEI0LCAweEU3LCAweDIyLCAweEVEKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NzYsIDB4MjYsIDB4REYsIDB4ODEsIDB4M0MsIDB4NUYsIDB4MUMsIDB4REEpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhFMCwgMHg0RCwgMHhEMCwgMHgwQSwgMHg0OCwgMHgwNiwgMHhGNCwgMHg0OCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDczLCAweDE4LCAweDM5LCAweEY3LCAweEQxLCAweDIwLCAweDc3LCAweDhEKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NzgsIDB4OEYsIDB4NDQsIDB4MTMsIDB4Q0IsIDB4NzgsIDB4MTEsIDB4MTEpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgzMywgMHhFMiwgMHg0OSwgMHhFQSwgMHg0MywgMHg3OSwgMHgwOCwgMHgzOSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDAxLCAweEQxLCAweEQ4LCAweDczLCAweDJDLCAweDcxLCAweDJGLCAweDY5KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MjEsIDB4RTUsIDB4RTcsIDB4RjQsIDB4NDYsIDB4QUIsIDB4MjAsIDB4Q0EpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg1QSwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCksCit9Oworc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDUyMXIxX1RfM19YW10gPSB7CisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDhDLCAweDBCLCAweEI5LCAweDcxLCAweDFBLCAweDI3LCAweEI3LCAweEE3KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MkEsIDB4QTIsIDB4MkMsIDB4RDEsIDB4REEsIDB4QkMsIDB4QzEsIDB4QkQpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgxMCwgMHhBMywgMHgxMCwgMHgxRiwgMHg5MCwgMHhGMiwgMHhBNSwgMHg1MiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDI4LCAweEZCLCAweDIwLCAweEY0LCAweEMwLCAweDcwLCAweEMwLCAweEY1KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4OEYsIDB4QTcsIDB4OTksIDB4RjAsIDB4QTUsIDB4RDMsIDB4MDksIDB4REQpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgyNiwgMHhFOCwgMHgxNCwgMHgzOSwgMHhCRSwgMHhDQiwgMHg2MCwgMHhBRiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDlGLCAweEQ2LCAweDE0LCAweEE5LCAweEM5LCAweDIwLCAweEMzLCAweEVBKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NUQsIDB4QTgsIDB4NUIsIDB4RkQsIDB4MkQsIDB4OTYsIDB4QkMsIDB4NzgpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhDMCwgMHgwMSwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCksCit9Oworc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDUyMXIxX1RfM19ZW10gPSB7CisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDlELCAweDA0LCAweDQ1LCAweEJFLCAweENFLCAweDc1LCAweDk1LCAweEY2KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4Q0MsIDB4REEsIDB4NTgsIDB4NDksIDB4MzUsIDB4MDksIDB4OEQsIDB4NDEpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg3NiwgMHhGMCwgMHhDMCwgMHgzNiwgMHhGMiwgMHhBNiwgMHgyRCwgMHgxNCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEU3LCAweEZDLCAweDNELCAweEE4LCAweEZCLCAweDNDLCAweEQyLCAweDUxKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MDEsIDB4NEQsIDB4NzEsIDB4MDksIDB4MTgsIDB4NDIsIDB4RjAsIDB4MkQpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg4RCwgMHhDMSwgMHhDRSwgMHg5RSwgMHg2QSwgMHg0OSwgMHg2MCwgMHgxMiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEFELCAweEIxLCAweDAwLCAweEY3LCAweEExLCAweDdBLCAweDMxLCAweEI0KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NDEsIDB4QzMsIDB4ODYsIDB4Q0QsIDB4MjAsIDB4NEEsIDB4MTcsIDB4ODYpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg2QywgMHgwMSwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCksCit9Oworc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDUyMXIxX1RfNF9YW10gPSB7CisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDk4LCAweEFCLCAweDhCLCAweDQ3LCAweDhELCAweEFBLCAweEE2LCAweDVCKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QzQsIDB4OTcsIDB4RjAsIDB4QkMsIDB4MkQsIDB4REMsIDB4OUQsIDB4ODQpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgwMSwgMHg4NiwgMHhCMCwgMHg3NCwgMHhCMiwgMHhGNCwgMHhGNiwgMHg2NyksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEFDLCAweEJELCAweEFDLCAweEUzLCAweDhGLCAweDQzLCAweDVDLCAweEIxKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MzcsIDB4QzMsIDB4RTIsIDB4NkUsIDB4MjUsIDB4NDksIDB4Q0QsIDB4MEIpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg2NCwgMHg1RSwgMHgwOCwgMHhCMywgMHhCOSwgMHhBQywgMHg1RiwgMHhEMSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDA4LCAweEI3LCAweEQxLCAweEY0LCAweERDLCAweDE5LCAweEU5LCAweEM4KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NDksIDB4RTQsIDB4RkEsIDB4RTEsIDB4MzYsIDB4M0UsIDB4RUQsIDB4NkUpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgwQSwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCksCit9Oworc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDUyMXIxX1RfNF9ZW10gPSB7CisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDAwLCAweDY3LCAweDkyLCAweDg0LCAweDZFLCAweDQ4LCAweDAzLCAweDUxKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4OUUsIDB4OTUsIDB4RUYsIDB4OEYsIDB4QjIsIDB4ODIsIDB4NkIsIDB4MUMpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg4RCwgMHhGQSwgMHhCOSwgMHg1NSwgMHgyMywgMHhGRSwgMHgwOSwgMHhCMyksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEVGLCAweDc5LCAweDg1LCAweDRCLCAweDBFLCAweEQ0LCAweDM1LCAweERCKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4OUEsIDB4MjcsIDB4NDUsIDB4ODEsIDB4RTAsIDB4ODgsIDB4NTIsIDB4QUQpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgxNywgMHg2MywgMHhBMiwgMHg0QiwgMHhCQywgMHg1RCwgMHhCMSwgMHg5MiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDI4LCAweDhDLCAweDgzLCAweEQ5LCAweDNFLCAweEQzLCAweDQyLCAweERBKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4OTksIDB4MDMsIDB4M0EsIDB4MzEsIDB4QkEsIDB4RTksIDB4M0EsIDB4RDEpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg0NywgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCksCit9Oworc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDUyMXIxX1RfNV9YW10gPSB7CisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDM1LCAweDEwLCAweENELCAweDJELCAweDAwLCAweEZFLCAweDMyLCAweEE3KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RTQsIDB4NkUsIDB4MUYsIDB4REEsIDB4RjgsIDB4NkYsIDB4NEQsIDB4MDMpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgwOSwgMHg3OSwgMHg3RCwgMHgwOSwgMHhFNSwgMHhEMywgMHgwMywgMHgyMSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDU4LCAweEMzLCAweEJFLCAweERGLCAweDA3LCAweDY1LCAweDQ5LCAweENDKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MDgsIDB4NTcsIDB4MzMsIDB4RUYsIDB4QUUsIDB4NEYsIDB4MDQsIDB4MjcpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg5QSwgMHhFOSwgMHg5QiwgMHhGRSwgMHhCRiwgMHhFNiwgMHg4NSwgMHhGNiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEJELCAweEJBLCAweEFBLCAweDA2LCAweEM0LCAweEM2LCAweEI4LCAweDU3KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MEMsIDB4ODMsIDB4MDEsIDB4QTksIDB4RjYsIDB4NTEsIDB4RTcsIDB4QjgpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgxQiwgMHgwMSwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCksCit9Oworc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDUyMXIxX1RfNV9ZW10gPSB7CisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEI5LCAweEE2LCAweDE1LCAweDhFLCAweEFCLCAweDFGLCAweDEwLCAweDg3KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NzQsIDB4MDgsIDB4MjcsIDB4MUEsIDB4QTEsIDB4MjEsIDB4QUQsIDB4RjUpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgwMiwgMHgwOSwgMHg5MCwgMHg2RSwgMHg1MCwgMHg5MCwgMHg5QSwgMHg1RCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDg2LCAweDlBLCAweEZFLCAweEQ3LCAweEExLCAweEY1LCAweEEyLCAweDE1KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RTgsIDB4N0QsIDB4RTMsIDB4REMsIDB4MjEsIDB4RkIsIDB4QTQsIDB4N0IpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhCOSwgMHhCRiwgMHgwNywgMHhGRiwgMHg0NSwgMHhERiwgMHg1MSwgMHg3NyksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDBCLCAweDVDLCAweDM0LCAweDAyLCAweDYyLCAweDlCLCAweDA4LCAweDEyKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4ODYsIDB4Q0UsIDB4OUEsIDB4NkEsIDB4RUMsIDB4NzUsIDB4RjYsIDB4NDYpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg2RCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCksCit9Oworc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDUyMXIxX1RfNl9YW10gPSB7CisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEU2LCAweDU5LCAweEY0LCAweDc4LCAweDNDLCAweDYwLCAweEIxLCAweDRBKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4M0UsIDB4MzcsIDB4ODQsIDB4NkEsIDB4REMsIDB4RjIsIDB4OUEsIDB4N0QpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg0MCwgMHg5QSwgMHg5QSwgMHgxNSwgMHgzNiwgMHhFMCwgMHgyQiwgMHgyRCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEVDLCAweDM4LCAweDlDLCAweDUwLCAweDNELCAweDFFLCAweDM3LCAweDgyKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QjcsIDB4NzksIDB4RjAsIDB4OTIsIDB4RjIsIDB4OEIsIDB4MTgsIDB4ODIpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgxNywgMHhFMCwgMHg4MiwgMHgxRSwgMHg4MCwgMHg4MiwgMHg0QiwgMHhENyksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEZBLCAweEJCLCAweDU5LCAweDZCLCAweDhBLCAweDc3LCAweDQxLCAweDQwKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QTcsIDB4RjksIDB4RDQsIDB4QjgsIDB4NEEsIDB4ODIsIDB4Q0YsIDB4NDApLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg1RCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCksCit9Oworc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDUyMXIxX1RfNl9ZW10gPSB7CisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDFFLCAweDhDLCAweEM4LCAweDlCLCAweDcyLCAweDlFLCAweEY3LCAweEY5KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QjgsIDB4Q0UsIDB4RTksIDB4NzcsIDB4MEEsIDB4MTksIDB4NTksIDB4ODQpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg5RCwgMHhBMSwgMHg0MSwgMHg2QSwgMHg3MiwgMHg0QiwgMHhCNCwgMHhEQyksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDBCLCAweDM1LCAweDQzLCAweEUyLCAweDhDLCAweEJFLCAweDBELCAweEUzKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QzEsIDB4RUIsIDB4QUQsIDB4RjMsIDB4QTksIDB4QTYsIDB4NjgsIDB4QTEpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg4MSwgMHgyRiwgMHhFMiwgMHg0OCwgMHgwQywgMHhEQiwgMHgxRiwgMHg0MiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEQxLCAweDFFLCAweDYwLCAweDlCLCAweDJBLCAweEQyLCAweEMxLCAweDNDKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QzAsIDB4NjQsIDB4QjUsIDB4RDIsIDB4RjYsIDB4RjYsIDB4NkUsIDB4MjIpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg3MCwgMHgwMSwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCksCit9Oworc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDUyMXIxX1RfN19YW10gPSB7CisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEM2LCAweDNELCAweDMwLCAweDc4LCAweDEwLCAweDE4LCAweDQxLCAweDUxKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4OTYsIDB4MUQsIDB4MUMsIDB4RTAsIDB4NkQsIDB4ODMsIDB4RDEsIDB4OTMpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg3QiwgMHgwMywgMHgwQiwgMHhGNSwgMHgyRiwgMHg2QywgMHgwNCwgMHg5OCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDZDLCAweDNFLCAweEQ1LCAweEZDLCAweDMxLCAweDVCLCAweDNBLCAweEVCKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NTAsIDB4ODIsIDB4MkYsIDB4RkIsIDB4RkUsIDB4RjgsIDB4NzYsIDB4MzkpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg4NSwgMHgyNiwgMHhEQSwgMHg5QywgMHgzNiwgMHhGNSwgMHg5MywgMHhEMSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDRDLCAweEU3LCAweDZFLCAweEQyLCAweDdELCAweDgxLCAweDA5LCAweEM2KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RDMsIDB4MDMsIDB4RjksIDB4NTgsIDB4NDgsIDB4MjQsIDB4QTIsIDB4RUUpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhFOSwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCksCit9Oworc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDUyMXIxX1RfN19ZW10gPSB7CisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDFCLCAweDc5LCAweDBDLCAweDhFLCAweDZCLCAweDk1LCAweEYzLCAweEM0KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RjQsIDB4MTAsIDB4NUMsIDB4ODcsIDB4MDMsIDB4MzksIDB4Q0YsIDB4NjgpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhBRCwgMHhGMCwgMHhGNywgMHhDMSwgMHgwNywgMHhBNCwgMHhGNCwgMHgzRiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDMyLCAweEU4LCAweDAyLCAweDg5LCAweDY1LCAweEM0LCAweDcyLCAweDM2KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QjQsIDB4ODgsIDB4RUEsIDB4OTYsIDB4NjcsIDB4MEIsIDB4NUQsIDB4REYpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhBOCwgMHg3NSwgMHg2MCwgMHhBOCwgMHhCRCwgMHg3NCwgMHhERiwgMHg2OCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDZFLCAweEU1LCAweDcxLCAweDUwLCAweDY3LCAweEQwLCAweEQyLCAweEU2KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RDUsIDB4RkMsIDB4RTUsIDB4QzcsIDB4NzcsIDB4QjAsIDB4N0YsIDB4OEMpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhGMSwgMHgwMSwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCksCit9Oworc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDUyMXIxX1RfOF9YW10gPSB7CisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDk3LCAweDg2LCAweDY5LCAweENELCAweDBELCAweDlBLCAweEJELCAweDY2KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NTgsIDB4MTcsIDB4QkMsIDB4QkIsIDB4NTksIDB4ODUsIDB4N0QsIDB4MEUpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg4RCwgMHhBOCwgMHg3NiwgMHhBQywgMHg4MCwgMHhBOSwgMHg3MiwgMHhFMCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDc0LCAweDc4LCAweEMxLCAweEUyLCAweDRELCAweEFGLCAweEY5LCAweDNDKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QUQsIDB4OTcsIDB4OEUsIDB4NzQsIDB4QzQsIDB4NEIsIDB4QjIsIDB4ODUpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhFQSwgMHhEOCwgMHhGNiwgMHhGMywgMHhBRiwgMHgyRiwgMHg1MiwgMHhFNSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDk1LCAweDU3LCAweEY0LCAweENFLCAweEVFLCAweDQzLCAweEVELCAweDYwKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4N0QsIDB4NDYsIDB4MzgsIDB4REUsIDB4MjAsIDB4RkQsIDB4NTksIDB4MTgpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhENywgMHgwMSwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCksCit9Oworc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDUyMXIxX1RfOF9ZW10gPSB7CisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDFDLCAweDE4LCAweEU4LCAweDU4LCAweEI5LCAweDc2LCAweDJDLCAweEU2KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RUQsIDB4NTQsIDB4RTQsIDB4RkUsIDB4QzcsIDB4QkMsIDB4MzEsIDB4MzcpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhGNSwgMHhGOCwgMHg4OSwgMHhFRSwgMHg3MCwgMHhCNSwgMHhCMCwgMHgyQyksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDgzLCAweDIyLCAweDI2LCAweDlBLCAweDUzLCAweEI5LCAweDM4LCAweDBBKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NzQsIDB4QTcsIDB4MTksIDB4OEMsIDB4NzQsIDB4N0UsIDB4ODgsIDB4NDYpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhCNCwgMHhEQSwgMHgwQSwgMHhFOCwgMHhEQSwgMHhBNSwgMHhCRSwgMHgxRCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDkwLCAweDVDLCAweEY3LCAweEIxLCAweDBDLCAweDcyLCAweEZCLCAweDA5KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NzgsIDB4RTIsIDB4MjMsIDB4RTcsIDB4NDYsIDB4QjcsIDB4RTAsIDB4OTEpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhDNSwgMHgwMSwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCksCit9Oworc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDUyMXIxX1RfOV9YW10gPSB7CisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDNBLCAweDM2LCAweEJDLCAweEJELCAweDQ4LCAweDExLCAweDhFLCAweDcyKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QUIsIDB4QkIsIDB4QTEsIDB4RjcsIDB4MEIsIDB4OUUsIDB4QkYsIDB4REYpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg2OCwgMHgyOCwgMHhFMSwgMHhBMiwgMHg4RiwgMHhGQywgMHhGQywgMHhENiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDgxLCAweEZFLCAweDE5LCAweDBBLCAweEU1LCAweEU3LCAweDY5LCAweDM5KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NUUsIDB4Q0QsIDB4MTIsIDB4RjUsIDB4QkUsIDB4RDMsIDB4MDQsIDB4RjEpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhGNSwgMHhBOCwgMHgwRCwgMHg4MSwgMHg1OSwgMHhDNCwgMHg3OSwgMHg5OCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEEzLCAweEYzLCAweDRCLCAweDkyLCAweDY1LCAweEMzLCAweDMxLCAweEFEKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NzUsIDB4QjUsIDB4NEYsIDB4NEQsIDB4OTEsIDB4RDQsIDB4RTIsIDB4QjIpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg1MSwgMHgwMSwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCksCit9Oworc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDUyMXIxX1RfOV9ZW10gPSB7CisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDcyLCAweDA5LCAweDQxLCAweDc5LCAweDFELCAweDRELCAweDBELCAweDMzKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QkIsIDB4MzEsIDB4MTgsIDB4QkEsIDB4QTAsIDB4RjIsIDB4NkUsIDB4N0UpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg5MywgMHg1QiwgMHg0RCwgMHg0RiwgMHhBRiwgMHhDOSwgMHg4QywgMHhBMSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDQ4LCAweDk5LCAweDlDLCAweDA2LCAweDY4LCAweERFLCAweEQ4LCAweDI5KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QTAsIDB4MDQsIDB4RTEsIDB4QjUsIDB4OUQsIDB4MDAsIDB4QkMsIDB4QjgpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg2MSwgMHg5NSwgMHg5MiwgMHg4RCwgMHg3MiwgMHhEMywgMHgzNywgMHg0MiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEFCLCAweDRCLCAweDI3LCAweEEyLCAweEU4LCAweEE0LCAweDI2LCAweEExKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NEYsIDB4NDUsIDB4OUMsIDB4QTksIDB4Q0IsIDB4OUYsIDB4QkEsIDB4ODUpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhDQiwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCksCit9Oworc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDUyMXIxX1RfMTBfWFtdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgwOCwgMHg3RSwgMHgxQiwgMHg2NCwgMHhGNCwgMHhFOCwgMHhBNSwgMHg1NSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEY3LCAweDIwLCAweEE5LCAweENBLCAweEYzLCAweDg5LCAweEU1LCAweEUxKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4ODMsIDB4RUQsIDB4RkMsIDB4QUIsIDB4RDksIDB4MEEsIDB4QjksIDB4MDcpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgwOCwgMHg2RiwgMHg0NiwgMHg3QywgMHhDRCwgMHg3OCwgMHhGRiwgMHgwNSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDY5LCAweEFCLCAweDcxLCAweDVBLCAweDk0LCAweEFCLCAweDIwLCAweDIwKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QzIsIDB4MkUsIDB4RUUsIDB4ODcsIDB4NTcsIDB4MUYsIDB4QUQsIDB4RDMpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg5MSwgMHg0QywgMHgzRCwgMHhGQiwgMHg3RSwgMHhBMSwgMHg4QiwgMHgwNyksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDY5LCAweENGLCAweDA3LCAweDg2LCAweEJBLCAweDUzLCAweDM3LCAweENGKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MzgsIDB4MDEsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDApLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3A1MjFyMV9UXzEwX1lbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MDAsIDB4MjYsIDB4QjIsIDB4QjksIDB4RTIsIDB4OTEsIDB4RTMsIDB4QjUpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg3OSwgMHhDOSwgMHg1NCwgMHg4NCwgMHgwOCwgMHgzRCwgMHgwQiwgMHhEMiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDVELCAweEE4LCAweDc3LCAweDJGLCAweDY0LCAweDQ1LCAweDk5LCAweDRDKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4ODcsIDB4OTYsIDB4MTYsIDB4MUYsIDB4REIsIDB4OTYsIDB4MjgsIDB4OTcpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg4MywgMHgyQiwgMHg4RCwgMHhGRiwgMHhBMiwgMHg0RiwgMHg1NSwgMHhEMyksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDcxLCAweEU2LCAweDQ4LCAweEJELCAweDk5LCAweDNELCAweDEyLCAweDU3KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4M0YsIDB4ODQsIDB4NTksIDB4REEsIDB4QjksIDB4QjYsIDB4NjYsIDB4MTIpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg2RCwgMHg3OCwgMHg0MSwgMHg5MiwgMHhERiwgMHhGNCwgMHgzRiwgMHg2MyksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDFGLCAweDAxLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwKSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwNTIxcjFfVF8xMV9YW10gPSB7CisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDdFLCAweDg2LCAweDZGLCAweDRGLCAweEJGLCAweDY3LCAweERGLCAweDJGKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RjIsIDB4MkIsIDB4MUUsIDB4NUYsIDB4MDAsIDB4RUEsIDB4RjYsIDB4NTYpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg5MCwgMHhCOSwgMHg2QSwgMHg4OSwgMHhEOCwgMHhDMCwgMHhENywgMHhBNyksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweENCLCAweDlBLCAweDMyLCAweDIzLCAweEEwLCAweDAyLCAweDkxLCAweDU4KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NDIsIDB4N0YsIDB4NkEsIDB4MTUsIDB4NjQsIDB4NkEsIDB4OEIsIDB4QkIpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg4QSwgMHg1NywgMHg4MiwgMHg1OCwgMHhBOSwgMHg1NiwgMHhCNSwgMHhGQiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweERELCAweDUwLCAweDkyLCAweDYwLCAweENDLCAweDgxLCAweDI0LCAweEE4KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MzYsIDB4M0QsIDB4QUQsIDB4REEsIDB4RDksIDB4NTEsIDB4M0UsIDB4NTcpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg1RCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCksCit9Oworc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDUyMXIxX1RfMTFfWVtdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhFQywgMHhGRSwgMHg4RiwgMHhCMCwgMHgwQiwgMHhERSwgMHgyRSwgMHg3RSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDc5LCAweEQyLCAweEJFLCAweEVGLCAweEFDLCAweDc2LCAweDcxLCAweEEzKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NTUsIDB4RTgsIDB4NzIsIDB4MEIsIDB4QUMsIDB4RkUsIDB4Q0EsIDB4NUEpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhBRCwgMHg1QiwgMHhDNywgMHhGQywgMHhFMywgMHgzQywgMHg3QywgMHg0QyksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEExLCAweDA0LCAweEE3LCAweEI5LCAweDlCLCAweDkzLCAweEMwLCAweDJGKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NDEsIDB4NDgsIDB4NEIsIDB4OEUsIDB4MzIsIDB4QzUsIDB4RjAsIDB4NkIpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhCMCwgMHg0MiwgMHgwNywgMHhDMSwgMHhGMiwgMHhGMSwgMHg3MiwgMHg1QiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDFFLCAweDM3LCAweDU0LCAweDlDLCAweDg4LCAweEQyLCAweDYyLCAweEFBKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QzEsIDB4MDEsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDApLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3A1MjFyMV9UXzEyX1hbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QzIsIDB4MTksIDB4OEEsIDB4ODksIDB4NTgsIDB4QTIsIDB4MEYsIDB4REIpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgwMSwgMHhDQywgMHg0QywgMHg5NywgMHgzMCwgMHg2NiwgMHgzNCwgMHgyNiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDgzLCAweDZBLCAweDFFLCAweDFGLCAweERCLCAweEM5LCAweDVFLCAweDEzKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MUIsIDB4NEQsIDB4NDksIDB4RkYsIDB4OUIsIDB4OUMsIDB4QUMsIDB4OUIpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhENywgMHhFNCwgMHg0QiwgMHhGMiwgMHhENCwgMHgxQSwgMHhEMiwgMHg3OCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweENELCAweERBLCAweEU4LCAweDYxLCAweDlGLCAweEM4LCAweDQ5LCAweDMyKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NTEsIDB4Q0IsIDB4RjIsIDB4MkQsIDB4ODUsIDB4RjYsIDB4OEQsIDB4NTIpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhCNywgMHhDNSwgMHhDRCwgMHgyQywgMHg3OSwgMHhDNiwgMHgwRSwgMHg0RiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweERCLCAweDAxLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwKSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwNTIxcjFfVF8xMl9ZW10gPSB7CisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDczLCAweDFELCAweDU1LCAweDBGLCAweEY4LCAweDIyLCAweDlGLCAweDc4KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NzYsIDB4NTYsIDB4QkEsIDB4RTcsIDB4NTcsIDB4MzIsIDB4RUMsIDB4NDIpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg2NSwgMHg5QSwgMHhDNiwgMHg0QywgMHgwOSwgMHhDNCwgMHg1MiwgMHgzRiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEI2LCAweDFFLCAweDZGLCAweEY0LCAweDdELCAweDI3LCAweERELCAweEFGKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4OTQsIDB4MTEsIDB4MTYsIDB4RUMsIDB4NzksIDB4ODMsIDB4QUQsIDB4QUUpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg0NiwgMHg0RSwgMHg5MiwgMHgxRiwgMHgxOSwgMHg3RCwgMHg2NSwgMHhEQyksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDA5LCAweEZGLCAweDc4LCAweDE1LCAweDQ1LCAweDYzLCAweDMyLCAweEU0KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QkYsIDB4OTEsIDB4RDAsIDB4NzgsIDB4NTgsIDB4REEsIDB4NTAsIDB4NDcpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg3MywgMHgwMSwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCksCit9Oworc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDUyMXIxX1RfMTNfWFtdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgyMywgMHhERSwgMHg0MCwgMHhGNiwgMHg0MSwgMHhCNCwgMHgzQiwgMHg5NSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEM2LCAweDhELCAweEUwLCAweEUxLCAweEE5LCAweEYwLCAweDM1LCAweDVEKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RTYsIDB4RDQsIDB4QkEsIDB4N0IsIDB4Q0MsIDB4MUIsIDB4M0EsIDB4MzIpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhEMCwgMHg1QSwgMHgyRSwgMHg3NCwgMHg0NywgMHgxNCwgMHhDMywgMHg0RCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDdELCAweEYwLCAweDhCLCAweDA2LCAweDE1LCAweDhFLCAweDBFLCAweENBKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QjUsIDB4RDIsIDB4RUIsIDB4OTcsIDB4NTAsIDB4N0QsIDB4MzEsIDB4RkMpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg0MiwgMHg5MywgMHg0QywgMHhEQiwgMHg5NywgMHg3OSwgMHg0NCwgMHhGNSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDlDLCAweEEyLCAweEEwLCAweDBCLCAweEM4LCAweDNBLCAweDhBLCAweEY5KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NjEsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDApLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3A1MjFyMV9UXzEzX1lbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NzksIDB4NTAsIDB4OTIsIDB4OUUsIDB4MjQsIDB4MUYsIDB4Q0IsIDB4NEMpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhEMywgMHgxNiwgMHhDOSwgMHhDNSwgMHgzRCwgMHg1QSwgMHhBRiwgMHg5NyksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDE4LCAweEUzLCAweDk3LCAweEU0LCAweEE4LCAweDUwLCAweEY2LCAweDdFKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NDUsIDB4NTcsIDB4OTcsIDB4NDIsIDB4NzgsIDB4OTIsIDB4NDksIDB4MEQpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhBNSwgMHhFQiwgMHg2MiwgMHgyNCwgMHhGQiwgMHg4RiwgMHgzMiwgMHhDRiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEYzLCAweDBDLCAweDM2LCAweDZFLCAweDhGLCAweEU4LCAweEU4LCAweDhFKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QzIsIDB4RDMsIDB4N0MsIDB4QzcsIDB4OEQsIDB4M0YsIDB4NUMsIDB4RTEpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg2QSwgMHg2NCwgMHg2QSwgMHg3MywgMHgxMCwgMHg3OSwgMHhCOCwgMHg1QSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweENCLCAweDAxLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwKSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwNTIxcjFfVF8xNF9YW10gPSB7CisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDUxLCAweEY5LCAweEVGLCAweEE1LCAweDIwLCAweDRBLCAweDVDLCAweEExKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MkYsIDB4RjMsIDB4RjQsIDB4NDksIDB4NUIsIDB4NzMsIDB4QUEsIDB4MUIpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhDNiwgMHhGMiwgMHhFQSwgMHgwRiwgMHgwMCwgMHhBRCwgMHg1MywgMHhBQiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDAzLCAweEI4LCAweDY2LCAweEVELCAweEM0LCAweDJCLCAweDRDLCAweDM1KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4M0EsIDB4MkYsIDB4QzEsIDB4OUEsIDB4MzcsIDB4RDIsIDB4N0YsIDB4NTgpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgyOSwgMHhBNywgMHg4MSwgMHgzOCwgMHg2NCwgMHhDOSwgMHgzNywgMHgzOCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEJFLCAweDNCLCAweDZDLCAweDlGLCAweDVCLCAweEQ5LCAweDhCLCAweDFEKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QjYsIDB4MTQsIDB4RDksIDB4MDgsIDB4RDgsIDB4RDIsIDB4N0UsIDB4MjMpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgxQywgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCksCit9Oworc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDUyMXIxX1RfMTRfWVtdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgxNSwgMHg3MSwgMHhFNiwgMHgzRCwgMHhEMSwgMHhCMCwgMHhFNywgMHhDRCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDVCLCAweDgxLCAweDIzLCAweEVDLCAweDJELCAweDQyLCAweDQ1LCAweEU2KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NTEsIDB4NUIsIDB4NDQsIDB4NkIsIDB4ODksIDB4MDMsIDB4NjcsIDB4MjgpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg4NCwgMHgyNywgMHhBRSwgMHg4MCwgMHg1QSwgMHgzMywgMHhCRSwgMHgxMSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEUzLCAweEI2LCAweDY0LCAweDFBLCAweERGLCAweEQzLCAweDg1LCAweDkxKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NjcsIDB4OEMsIDB4MjIsIDB4QkEsIDB4RDAsIDB4QkQsIDB4Q0MsIDB4QTApLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhGNywgMHgzQywgMHgwMSwgMHgzQSwgMHhGRiwgMHg5RCwgMHhDNywgMHg2QiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDBDLCAweEM3LCAweDY0LCAweEI0LCAweDU5LCAweDRFLCAweDlGLCAweDIyKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4ODUsIDB4MDEsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDApLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3A1MjFyMV9UXzE1X1hbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QTEsIDB4MzQsIDB4MEEsIDB4NDEsIDB4OTQsIDB4QTgsIDB4RjIsIDB4QjcpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhGNiwgMHhENCwgMHhFNCwgMHhGMCwgMHg5NywgMHg0NSwgMHg2RCwgMHhDQSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDhGLCAweDFGLCAweDRELCAweDZELCAweEZFLCAweEEwLCAweEM0LCAweDg0KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MUQsIDB4MjgsIDB4NUMsIDB4NDAsIDB4QkIsIDB4NjUsIDB4RDQsIDB4NDIpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg5OCwgMHhBOCwgMHg4NywgMHgzNSwgMHgyMCwgMHgzQSwgMHg4OSwgMHg0NCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEQ2LCAweEZELCAweDRGLCAweEFCLCAweDJELCAweEQxLCAweEQwLCAweEMwKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4ODYsIDB4RTgsIDB4MDAsIDB4RkMsIDB4NjksIDB4NTIsIDB4RjgsIDB4RDUpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhFMSwgMHg5QSwgMHg5OSwgMHhFMSwgMHhEQywgMHg5QywgMHgzRiwgMHhEOSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDk5LCAweDAxLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwKSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwNTIxcjFfVF8xNV9ZW10gPSB7CisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDEyLCAweDA4LCAweDk4LCAweEQ5LCAweENBLCAweDczLCAweEQ1LCAweEE5KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QjksIDB4MkMsIDB4RTAsIDB4QTcsIDB4M0UsIDB4OTEsIDB4RDcsIDB4ODcpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg2OCwgMHgwNCwgMHhCMCwgMHg1NCwgMHgwOSwgMHhGNCwgMHg3MiwgMHhCNyksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEM4LCAweEVFLCAweDI4LCAweENDLCAweEU4LCAweDUwLCAweDc4LCAweDIwKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MEQsIDB4OTEsIDB4MDMsIDB4NzYsIDB4REIsIDB4NjgsIDB4MjQsIDB4NzcpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg3QSwgMHhFMCwgMHg1NiwgMHhCMiwgMHg1RCwgMHgxMiwgMHhEMywgMHhCNSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDBELCAweDQyLCAweDU5LCAweDhCLCAweERGLCAweDY3LCAweEI1LCAweEJFKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RDEsIDB4Q0MsIDB4RTUsIDB4MzEsIDB4NTMsIDB4N0EsIDB4NDYsIDB4QjMpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhEQSwgMHgwMSwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCksCit9Oworc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDUyMXIxX1RfMTZfWFtdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhDQywgMHg4RCwgMHg1OSwgMHhCNSwgMHgxQiwgMHgwRiwgMHhGNCwgMHhBRiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEQ5LCAweDJGLCAweEQxLCAweDJDLCAweEUwLCAweEQ4LCAweDA0LCAweEVGKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QUMsIDB4RjQsIDB4RDcsIDB4QkEsIDB4QjAsIDB4QTMsIDB4N0UsIDB4QzkpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhDRCwgMHgwOCwgMHg1MSwgMHg1NiwgMHhBNiwgMHg3NiwgMHg2NywgMHgzMyksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDhDLCAweDE3LCAweDYzLCAweEZFLCAweDU2LCAweEQwLCAweEQ5LCAweDcxKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QUEsIDB4RjYsIDB4QzMsIDB4MTQsIDB4NDcsIDB4QzUsIDB4QTcsIDB4MzEpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg3MiwgMHg0QywgMHg4MCwgMHhGNiwgMHhBMiwgMHg1NywgMHhBNywgMHg1RCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDExLCAweEIzLCAweDdCLCAweEY4LCAweDJGLCAweEUxLCAweDNFLCAweDdCKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RkEsIDB4MDEsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDApLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3A1MjFyMV9UXzE2X1lbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MjYsIDB4RjQsIDB4RjksIDB4NkIsIDB4N0IsIDB4OTAsIDB4REYsIDB4MzApLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgxRiwgMHg4MiwgMHhFRiwgMHg2MiwgMHhBMSwgMHg0QywgMHg1MywgMHhDQSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEU2LCAweDk5LCAweDc2LCAweDAxLCAweEJBLCAweDhELCAweDBGLCAweDU0KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QUYsIDB4RjQsIDB4NTgsIDB4NzMsIDB4NTYsIDB4RkUsIDB4REQsIDB4N0MpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhGNiwgMHhDRSwgMHhGOSwgMHhFOCwgMHhBMSwgMHgzNCwgMHhDMywgMHg1QiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDA5LCAweDVGLCAweERDLCAweDZBLCAweDNELCAweEQ4LCAweDdGLCAweDQyKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QzIsIDB4RjQsIDB4NTEsIDB4QjgsIDB4QjgsIDB4QzEsIDB4RDcsIDB4MkYpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhBRSwgMHg3RCwgMHg1OCwgMHhEMSwgMHhENCwgMHgxQiwgMHg0RCwgMHgyMyksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEQzLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwKSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwNTIxcjFfVF8xN19YW10gPSB7CisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEI5LCAweDk1LCAweERGLCAweDAwLCAweEQ4LCAweDIxLCAweERFLCAweDk0KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RjcsIDB4NDcsIDB4M0MsIDB4QzMsIDB4QjIsIDB4MDEsIDB4NTMsIDB4NUQpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgxRSwgMHgxNywgMHg0MywgMHgyMywgMHhCRCwgMHhDQSwgMHg3MSwgMHhGMiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDcwLCAweEJBLCAweDBGLCAweDRGLCAweERDLCAweDQxLCAweDU0LCAweEJFKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RDYsIDB4MzksIDB4MjYsIDB4NzAsIDB4NTMsIDB4MzIsIDB4MTgsIDB4MTEpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgzMiwgMHg0NiwgMHgwNywgMHg5NywgMHgzQSwgMHg1NywgMHhFMCwgMHgwMSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEQ2LCAweDkyLCAweDRGLCAweENFLCAweERGLCAweDI1LCAweDgwLCAweDI2KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NUIsIDB4NkYsIDB4OUEsIDB4MDMsIDB4MDUsIDB4NEIsIDB4RDEsIDB4NDcpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg1RCwgMHgwMSwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCksCit9Oworc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDUyMXIxX1RfMTdfWVtdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgyNSwgMHgwMSwgMHg3MiwgMHgzMCwgMHg5MCwgMHgxNywgMHg1MSwgMHgyMCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDc0LCAweEZCLCAweDQxLCAweDY1LCAweDVDLCAweEI0LCAweDJELCAweEVFKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NjYsIDB4Q0QsIDB4Q0QsIDB4QUEsIDB4NDEsIDB4Q0MsIDB4QkIsIDB4MDcpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhENCwgMHhDRSwgMHgwOCwgMHgwQSwgMHg2MywgMHhFOSwgMHhBMiwgMHhGRiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDNELCAweEE4LCAweDIxLCAweDdGLCAweDdBLCAweDVCLCAweDlCLCAweDgxKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MTAsIDB4NkIsIDB4ODksIDB4NDQsIDB4MEEsIDB4N0YsIDB4ODUsIDB4NUYpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg3RCwgMHhERSwgMHg3QywgMHgxOSwgMHg1QywgMHg2NSwgMHgyNiwgMHg2MSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEQ3LCAweEFDLCAweDYyLCAweDI5LCAweDRBLCAweEYxLCAweEQwLCAweDgxKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MzgsIDB4MDEsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDApLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3A1MjFyMV9UXzE4X1hbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MzIsIDB4MDAsIDB4NDAsIDB4ODcsIDB4RUIsIDB4QTksIDB4NTgsIDB4NTYpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhBRiwgMHg1MSwgMHgwQiwgMHhGRiwgMHg1NiwgMHgzNSwgMHg1MSwgMHhCMyksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDdCLCAweEFDLCAweDA4LCAweDk0LCAweDcxLCAweERBLCAweEVDLCAweDk5KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NUYsIDB4NEQsIDB4QzUsIDB4N0IsIDB4MzEsIDB4OEIsIDB4OEQsIDB4NUUpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgxNSwgMHgwNSwgMHhGMSwgMHgzRSwgMHg5RSwgMHg4RiwgMHgxNywgMHg4RiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEYwLCAweDlDLCAweDRCLCAweDYyLCAweDk0LCAweEFELCAweDQ5LCAweEZDKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MEYsIDB4QzksIDB4QzYsIDB4OEYsIDB4RkQsIDB4MzMsIDB4NDQsIDB4MzQpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg1RiwgMHg5NiwgMHgxNywgMHg3RiwgMHg0MiwgMHhCRSwgMHhGNywgMHgwRCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEQ0LCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwKSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwNTIxcjFfVF8xOF9ZW10gPSB7CisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEZCLCAweDI5LCAweDM5LCAweDEzLCAweDA4LCAweDhELCAweDkxLCAweDQ3KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RjYsIDB4NzksIDB4RjksIDB4MkYsIDB4QTksIDB4MEEsIDB4Q0YsIDB4RDYpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhBQiwgMHg4NywgMHg3QSwgMHhBMywgMHgxOSwgMHhBQiwgMHg1NSwgMHhBRCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEU4LCAweDBCLCAweDAxLCAweEM1LCAweDU2LCAweDE5LCAweDlELCAweDlFKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MTksIDB4REUsIDB4ODIsIDB4M0IsIDB4RUEsIDB4RDMsIDB4MEIsIDB4OEMpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg2NSwgMHg2QiwgMHhDNywgMHhGMywgMHgwRiwgMHg4MiwgMHg4NywgMHg2QyksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEQ4LCAweDJFLCAweDIzLCAweEYyLCAweDM5LCAweDlELCAweDQ5LCAweDcwKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MzEsIDB4REUsIDB4QUYsIDB4N0EsIDB4RUUsIDB4QjAsIDB4REEsIDB4NzApLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg2MywgMHgwMSwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCksCit9Oworc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDUyMXIxX1RfMTlfWFtdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg3NiwgMHg0RSwgMHgyQSwgMHg1MCwgMHhGRCwgMHg4RSwgMHhDMCwgMHhFQiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDUyLCAweDBGLCAweDdDLCAweDc2LCAweDYzLCAweEQ4LCAweDg5LCAweDQ1KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RUMsIDB4MkQsIDB4QjksIDB4NEUsIDB4RjQsIDB4RUUsIDB4ODUsIDB4Q0YpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhDMSwgMHg5NSwgMHg1QywgMHg5NiwgMHg1RCwgMHhBQSwgMHg1OSwgMHgwQiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweENBLCAweERCLCAweEQyLCAweDY4LCAweDhFLCAweDVBLCAweDk0LCAweDYwKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RDksIDB4MDIsIDB4QkYsIDB4NzcsIDB4OUYsIDB4QjksIDB4NEMsIDB4QzkpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgyRCwgMHhEQywgMHhDMCwgMHhDRiwgMHg4MSwgMHgxRSwgMHhDNCwgMHg2QyksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDJCLCAweENDLCAweDM3LCAweDg2LCAweERDLCAweEUyLCAweDY0LCAweDcyKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RDUsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDApLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3A1MjFyMV9UXzE5X1lbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MkMsIDB4MzAsIDB4QjEsIDB4NTksIDB4MjAsIDB4OUQsIDB4OTgsIDB4MjgpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg3NywgMHgwQywgMHg5RCwgMHhGOCwgMHgyMCwgMHhEQywgMHg5MCwgMHhCQSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEIxLCAweEEwLCAweEY0LCAweEU3LCAweDNFLCAweDlDLCAweDlFLCAweEEyKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QjUsIDB4MjUsIDB4QTIsIDB4QjAsIDB4NTQsIDB4Q0QsIDB4MkUsIDB4MzMpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhFQSwgMHhEOSwgMHg0MiwgMHhCMCwgMHg4MCwgMHhCMCwgMHhBMywgMHgzOCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDlGLCAweEZFLCAweDlELCAweDhELCAweDQwLCAweEZGLCAweDI3LCAweDZEKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4M0EsIDB4OUQsIDB4QTYsIDB4ODgsIDB4M0EsIDB4OEIsIDB4NkYsIDB4MTQpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhCNiwgMHgzOSwgMHhFRSwgMHgxRiwgMHgzRiwgMHhCMSwgMHg0RiwgMHg2MyksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDMxLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwKSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwNTIxcjFfVF8yMF9YW10gPSB7CisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDZELCAweEQ3LCAweDlFLCAweEZGLCAweEQyLCAweDM1LCAweDY3LCAweDAzKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4Q0EsIDB4NEYsIDB4MTUsIDB4NUQsIDB4RTMsIDB4RTgsIDB4NTMsIDB4ODYpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg5MiwgMHhGNywgMHgyNCwgMHg5OCwgMHhBMiwgMHhDQiwgMHgxMSwgMHg2OCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDA2LCAweDJFLCAweDI1LCAweEUxLCAweDk0LCAweEM1LCAweEEzLCAweDk2KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RTAsIDB4ODIsIDB4NkUsIDB4QkEsIDB4RTcsIDB4NDMsIDB4MjUsIDB4QjApLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgxOCwgMHg2NSwgMHhCNCwgMHg0OSwgMHg3MywgMHgxOCwgMHgzNSwgMHg1NCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDU5LCAweDVCLCAweEJDLCAweDYyLCAweDg2LCAweDRDLCAweEMxLCAweEI3KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4OUIsIDB4RjIsIDB4OTUsIDB4QTIsIDB4QkIsIDB4QTIsIDB4MzUsIDB4NjUpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhCRiwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCksCit9Oworc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDUyMXIxX1RfMjBfWVtdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg3MiwgMHg1OSwgMHg2MiwgMHhCMCwgMHg0QiwgMHgxRSwgMHhCNCwgMHhEOCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDBELCAweDU1LCAweENFLCAweEIwLCAweDY5LCAweEJBLCAweDYzLCAweDEwKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NkUsIDB4NjksIDB4ODYsIDB4REIsIDB4MzQsIDB4N0QsIDB4NjgsIDB4NjQpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhEQSwgMHgwNiwgMHhDQSwgMHg1NSwgMHg0NCwgMHgzNiwgMHgyQiwgMHhCQSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDZDLCAweEQ0LCAweEM0LCAweDNELCAweENELCAweDlFLCAweDY5LCAweEE0KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4M0YsIDB4NDQsIDB4RTQsIDB4QkYsIDB4MzEsIDB4RTYsIDB4NDAsIDB4OUYpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg3RSwgMHg0RiwgMHhGQSwgMHg3NSwgMHhFMywgMHhGQiwgMHg5NywgMHgwRSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDA4LCAweEMwLCAweEJELCAweDFDLCAweDQ4LCAweEIwLCAweDI2LCAweEQwKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RDIsIDB4MDEsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDApLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3A1MjFyMV9UXzIxX1hbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MUMsIDB4N0IsIDB4MzIsIDB4RkEsIDB4RjIsIDB4NkQsIDB4ODQsIDB4OEUpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhBMCwgMHgyMSwgMHgwMywgMHgxRCwgMHgwRCwgMHgyMiwgMHg1NSwgMHg2NyksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDE4LCAweEY5LCAweDQyLCAweDAzLCAweDlDLCAweEMyLCAweENCLCAweEJBKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RjgsIDB4QTEsIDB4OTYsIDB4RDksIDB4OUQsIDB4MTEsIDB4NkYsIDB4QkUpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhGRiwgMHg0MCwgMHg1NywgMHhFQiwgMHg0MCwgMHgyRCwgMHhDMCwgMHgxMSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDJGLCAweDk2LCAweEJCLCAweDRGLCAweDJGLCAweDIzLCAweEE4LCAweDI4KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4M0EsIDB4MjksIDB4ODUsIDB4MjEsIDB4QTUsIDB4NTAsIDB4NjIsIDB4MDYpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhDOSwgMHg3RCwgMHg5MiwgMHhDRiwgMHg4NywgMHgwQywgMHgyMiwgMHhGOSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEM5LCAweDAxLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwKSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwNTIxcjFfVF8yMV9ZW10gPSB7CisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDVBLCAweDBFLCAweEE1LCAweDMyLCAweDVCLCAweERGLCAweDlDLCAweEQ1KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MjcsIDB4OTYsIDB4MzcsIDB4MkMsIDB4ODgsIDB4MzUsIDB4MzAsIDB4QTEpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg0MCwgMHhCNCwgMHg2OSwgMHhGRiwgMHhFQiwgMHhDNiwgMHg5NCwgMHgwOCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEM5LCAweDU1LCAweDYwLCAweEFELCAweEFBLCAweDU4LCAweDE0LCAweDg4KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4M0MsIDB4RkYsIDB4RjIsIDB4QjIsIDB4RDUsIDB4QTcsIDB4RDksIDB4MjcpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgyRCwgMHhBRSwgMHg1NCwgMHhEMiwgMHg2MCwgMHgzMSwgMHhGMywgMHgxNSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEJCLCAweDkyLCAweDgzLCAweEUzLCAweEYxLCAweDQyLCAweDgzLCAweDZFKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NDksIDB4RDIsIDB4QzgsIDB4QjcsIDB4NzYsIDB4NDUsIDB4N0YsIDB4N0QpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgwNCwgMHgwMSwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCksCit9Oworc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDUyMXIxX1RfMjJfWFtdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg0QSwgMHgxMSwgMHhBNCwgMHhGQiwgMHg3QSwgMHgwMSwgMHhCQywgMHhDOCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweENELCAweDI3LCAweDczLCAweDhELCAweDAyLCAweDkxLCAweDI3LCAweDhFKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QTQsIDB4NjIsIDB4RjYsIDB4REQsIDB4NkIsIDB4RkEsIDB4NUIsIDB4QjkpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhFRiwgMHhDQSwgMHhBMiwgMHg0NCwgMHgyQywgMHhGMCwgMHgyOCwgMHhEOCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDNDLCAweEYxLCAweDdBLCAweEEyLCAweDQyLCAweDRDLCAweDUwLCAweEM2KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MkQsIDB4ODMsIDB4M0UsIDB4NTAsIDB4QUIsIDB4OUMsIDB4RjcsIDB4NjcpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgxRCwgMHhFRCwgMHg3OCwgMHhDQiwgMHg3NiwgMHg2OSwgMHhEQSwgMHg0MiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweERCLCAweDAxLCAweDFFLCAweDQzLCAweDI3LCAweDQ3LCAweDZFLCAweERBKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4OTQsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDApLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3A1MjFyMV9UXzIyX1lbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RDMsIDB4NEYsIDB4NTQsIDB4QjksIDB4M0UsIDB4QkQsIDB4RDUsIDB4NDQpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhDOSwgMHgzNSwgMHg0MCwgMHg2OSwgMHg3RiwgMHg3NCwgMHg5RCwgMHgzMiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDVBLCAweDA2LCAweDZGLCAweDY3LCAweDY4LCAweDJCLCAweDRELCAweDEwKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QzYsIDB4NjUsIDB4NDEsIDB4RkMsIDB4N0MsIDB4MUUsIDB4RTgsIDB4QzgpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhGMiwgMHg3OSwgMHgzNywgMHhBRiwgMHhGRCwgMHhEMiwgMHhEQSwgMHg0QyksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDMzLCAweEE4LCAweDY5LCAweDU2LCAweDYyLCAweEE0LCAweEU0LCAweEEzKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NDIsIDB4NzEsIDB4NzMsIDB4MjEsIDB4OEEsIDB4MTcsIDB4ODEsIDB4QTIpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgxNCwgMHg1NSwgMHg4RiwgMHg3QiwgMHhCOCwgMHhBRiwgMHhGNywgMHg4NiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEFBLCAweDAxLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwKSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwNTIxcjFfVF8yM19YW10gPSB7CisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDRCLCAweEQxLCAweEJELCAweEJFLCAweDhDLCAweEJDLCAweDYwLCAweDZFKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NjIsIDB4QTYsIDB4NTcsIDB4OEMsIDB4QUUsIDB4NUMsIDB4MTksIDB4RkUpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg3QSwgMHg0MywgMHhFNCwgMHhEOSwgMHhEOCwgMHg3QiwgMHhFNywgMHg0MSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEVELCAweEI5LCAweEU0LCAweDg1LCAweDdDLCAweDJFLCAweEZDLCAweDIwKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MDIsIDB4MkUsIDB4MDEsIDB4MkEsIDB4NkQsIDB4NTYsIDB4QkUsIDB4OTcpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg2QSwgMHgwQywgMHgyNSwgMHg5QiwgMHhBRSwgMHg4NiwgMHgzNywgMHg0MyksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDRBLCAweDIyLCAweEIzLCAweENCLCAweDk5LCAweDY2LCAweEI3LCAweDlFKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NTYsIDB4RjcsIDB4OTAsIDB4RjAsIDB4MUIsIDB4MDksIDB4MjcsIDB4RjcpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhDOCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCksCit9Oworc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDUyMXIxX1RfMjNfWVtdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgxQywgMHgxNiwgMHgwOCwgMHhFRiwgMHgzOSwgMHg2NCwgMHg0OSwgMHgzMSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDA4LCAweEEwLCAweEUzLCAweDk3LCAweEE5LCAweDA3LCAweDU0LCAweDI2KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4Q0QsIDB4RkYsIDB4RTIsIDB4MDAsIDB4MDcsIDB4MjEsIDB4ODgsIDB4MjApLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgxNiwgMHhGRCwgMHg1OSwgMHg1MywgMHgwNSwgMHg2QywgMHg0MiwgMHgyNyksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDhGLCAweEY3LCAweDM5LCAweDVDLCAweDgyLCAweDM2LCAweEU4LCAweDAzKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MkUsIDB4ODMsIDB4QTgsIDB4RTIsIDB4QTgsIDB4NDMsIDB4MDcsIDB4MzgpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhFNiwgMHhBRiwgMHgyQiwgMHg3OSwgMHhFRCwgMHhEOCwgMHgzOSwgMHg4NyksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDE1LCAweDIwLCAweDkxLCAweDdBLCAweEM0LCAweDA3LCAweEVGLCAweDZDKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MjgsIDB4MDEsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDApLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3A1MjFyMV9UXzI0X1hbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NkEsIDB4MTAsIDB4MkYsIDB4QUEsIDB4MEMsIDB4OTQsIDB4MEUsIDB4NUEpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhCNywgMHg4MSwgMHg4NywgMHg0MSwgMHgyMywgMHhFQiwgMHg1NSwgMHg3QyksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEI4LCAweDUzLCAweENDLCAweDc5LCAweEI2LCAweEVCLCAweDZDLCAweENDKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RjQsIDB4NzcsIDB4NzMsIDB4OUQsIDB4RkMsIDB4NjQsIDB4NkYsIDB4N0YpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgzQywgMHg0MCwgMHhFMywgMHg2RCwgMHgxQywgMHgxNiwgMHg3MSwgMHgxNSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDVBLCAweEY0LCAweDFCLCAweEZGLCAweDFDLCAweDJGLCAweEE1LCAweEQ3KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MDYsIDB4MEUsIDB4MEIsIDB4MTEsIDB4RjQsIDB4OEQsIDB4OTMsIDB4QUYpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg1OCwgMHhDNSwgMHg2NCwgMHg2RiwgMHgyNCwgMHgxOSwgMHhGMiwgMHg5QiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDFDLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwKSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwNTIxcjFfVF8yNF9ZW10gPSB7CisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDUyLCAweEIzLCAweEFGLCAweEE1LCAweDBFLCAweDRGLCAweDVFLCAweEUxKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MEYsIDB4NzcsIDB4Q0EsIDB4RjIsIDB4NkQsIDB4QzUsIDB4RjYsIDB4OUYpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg5MCwgMHgxOCwgMHg4RSwgMHgzMywgMHg2OCwgMHg2QywgMHhFOCwgMHhFMCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEZDLCAweDhCLCAweDgwLCAweDkwLCAweDE5LCAweDdGLCAweDkwLCAweDk2KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NUIsIDB4ODAsIDB4NkIsIDB4NjgsIDB4RTIsIDB4N0QsIDB4RDQsIDB4RDApLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgyQSwgMHhDMSwgMHg2NywgMHhCMywgMHg3MiwgMHhDQiwgMHhCRiwgMHgyRiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDRGLCAweEQ1LCAweEQzLCAweDFELCAweDE0LCAweDU4LCAweDBBLCAweDgwKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NzksIDB4N0EsIDB4NjUsIDB4OTgsIDB4QjMsIDB4MDcsIDB4NEIsIDB4MkYpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhGMywgMHgwMSwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCksCit9Oworc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDUyMXIxX1RfMjVfWFtdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgyQSwgMHg4NywgMHgwRiwgMHg1RiwgMHhDRiwgMHhBMiwgMHgwMSwgMHgwOCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDBDLCAweEM5LCAweEM4LCAweDZFLCAweDM1LCAweDg3LCAweEE1LCAweDY3KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4OTQsIDB4M0UsIDB4OTEsIDB4QTAsIDB4QUIsIDB4MjQsIDB4MUUsIDB4RjIpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhCOSwgMHhCQywgMHgwMiwgMHgzNSwgMHg3MCwgMHhDMSwgMHg1RiwgMHg5OCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDI2LCAweDU5LCAweEEwLCAweDUwLCAweDA0LCAweDgwLCAweDUyLCAweDg1KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RjgsIDB4NTYsIDB4NkUsIDB4NDIsIDB4OEYsIDB4OEMsIDB4OTEsIDB4NjUpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhBQywgMHhBMiwgMHhDQiwgMHhBNSwgMHhERSwgMHgxNCwgMHgyNCwgMHgzOCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDAwLCAweENCLCAweDc0LCAweDI4LCAweEU2LCAweEE3LCAweEU3LCAweEMzKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NUYsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDApLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3A1MjFyMV9UXzI1X1lbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MzUsIDB4NzMsIDB4QTgsIDB4OEYsIDB4OUUsIDB4MEUsIDB4NjMsIDB4OTYpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhDOCwgMHgxQiwgMHg3NywgMHhDNywgMHhDMSwgMHgzOCwgMHhGOSwgMHhEQyksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEQ4LCAweDNDLCAweENGLCAweEE4LCAweDdBLCAweEQ3LCAweEYzLCAweEM0KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4REQsIDB4NUYsIDB4OUEsIDB4QzksIDB4QUQsIDB4RTksIDB4MUEsIDB4OTMpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhGQywgMHhDRiwgMHgyQiwgMHg1RSwgMHhENSwgMHg4MSwgMHg5NSwgMHhBOCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDE5LCAweDg4LCAweDc1LCAweDI5LCAweDFGLCAweEM3LCAweEM3LCAweEQwKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RDgsIDB4QTksIDB4NUEsIDB4NEQsIDB4NjMsIDB4OTUsIDB4RjksIDB4NEUpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhFQiwgMHhDRCwgMHgwNCwgMHg4RiwgMHhDRCwgMHg5MSwgMHhERSwgMHhDNiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDcxLCAweDAxLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwKSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwNTIxcjFfVF8yNl9YW10gPSB7CisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDg4LCAweEQ0LCAweEZELCAweDI1LCAweDExLCAweDk5LCAweDZFLCAweEVBKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QjAsIDB4ODMsIDB4MDEsIDB4M0QsIDB4RkIsIDB4NTYsIDB4QTUsIDB4NEUpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhDMiwgMHgzQSwgMHhEQywgMHg3NCwgMHhDMiwgMHhENywgMHhDRiwgMHhFOCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDhGLCAweEJELCAweEYxLCAweERELCAweEEzLCAweDA3LCAweDAzLCAweEUyKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4N0IsIDB4QkUsIDB4RTksIDB4MkUsIDB4NTgsIDB4ODQsIDB4NjYsIDB4RkMpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg3MSwgMHgyMCwgMHg3OCwgMHgzNywgMHg3OSwgMHgwQiwgMHhBNiwgMHg2NCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEUzLCAweEYyLCAweEFDLCAweDY1LCAweEM4LCAweEM5LCAweDJGLCAweDYxKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MjYsIDB4OTMsIDB4RTUsIDB4MEQsIDB4MEMsIDB4QzYsIDB4QjgsIDB4Q0IpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg5QywgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCksCit9Oworc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDUyMXIxX1RfMjZfWVtdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg2OSwgMHhBRCwgMHg1QywgMHgxOSwgMHgxMiwgMHg2MSwgMHgwRSwgMHgyNSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDM5LCAweDRGLCAweDBCLCAweDFGLCAweDQ5LCAweDdFLCAweENELCAweDgxKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NDYsIDB4MkUsIDB4MzAsIDB4NjEsIDB4REIsIDB4MDgsIDB4NjgsIDB4OUIpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg0MSwgMHg3OCwgMHhBRiwgMHhCMywgMHgwOCwgMHhDMSwgMHg2OSwgMHhFNSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEM0LCAweDVGLCAweDVELCAweEMxLCAweDU3LCAweDZGLCAweEQ4LCAweDM0KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MzgsIDB4RDMsIDB4NkEsIDB4RjcsIDB4RkQsIDB4ODYsIDB4RTUsIDB4QjMpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhBOCwgMHg2MywgMHhCRCwgMHg3MCwgMHg3QiwgMHg0NywgMHhFOCwgMHg2RCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDE4LCAweDYyLCAweEM4LCAweDdFLCAweDlELCAweDExLCAweDJCLCAweEE1KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QjYsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDApLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3A1MjFyMV9UXzI3X1hbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RTIsIDB4ODQsIDB4RkQsIDB4RDUsIDB4OUEsIDB4NTYsIDB4N0YsIDB4NUMpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg3QywgMHhCQiwgMHhBNCwgMHg2RiwgMHgxMiwgMHg2RSwgMHg0RCwgMHhGOCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDFELCAweDA4LCAweEExLCAweDgyLCAweDlDLCAweDYyLCAweDc0LCAweDdCKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4OUUsIDB4NTgsIDB4MjIsIDB4MDUsIDB4MUQsIDB4MTUsIDB4MzUsIDB4NzkpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg5QSwgMHg4OCwgMHhDRiwgMHg1QywgMHgwNSwgMHg3OCwgMHhGQiwgMHg5NCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEFDLCAweDZCLCAweDJGLCAweDc5LCAweDA5LCAweDczLCAweDY3LCAweEVDKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RDgsIDB4QTAsIDB4ODAsIDB4RDgsIDB4RTgsIDB4RUMsIDB4RkIsIDB4NDIpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhGNSwgMHhFNywgMHgwQiwgMHhCNywgMHg4MSwgMHg0OCwgMHg3QiwgMHhEOSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEUzLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwKSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwNTIxcjFfVF8yN19ZW10gPSB7CisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEU4LCAweDUzLCAweEE5LCAweEVELCAweDYxLCAweDkyLCAweEQ3LCAweDg1KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MjYsIDB4NDksIDB4RDksIDB4NUQsIDB4OUIsIDB4NEUsIDB4ODksIDB4MzUpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhCOCwgMHgxMiwgMHhFQiwgMHg5QSwgMHhDOSwgMHhDQiwgMHhDMSwgMHg5NSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDM1LCAweERDLCAweDk1LCAweDE2LCAweEZFLCAweDI5LCAweDcwLCAweDAxKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NjQsIDB4MzMsIDB4QjEsIDB4RDYsIDB4NzgsIDB4QjksIDB4RTIsIDB4MzYpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgzNCwgMHhDRSwgMHg4OCwgMHhDMywgMHhGRCwgMHg3QSwgMHg2QiwgMHhCOCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDQwLCAweDFFLCAweDUwLCAweDFFLCAweEFGLCAweEIxLCAweDI1LCAweDJEKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QzEsIDB4RTcsIDB4RDcsIDB4RDUsIDB4QkQsIDB4N0EsIDB4MTIsIDB4RjkpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgzMSwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCksCit9Oworc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDUyMXIxX1RfMjhfWFtdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgyMiwgMHhBQSwgMHhBMiwgMHg4MCwgMHg1RCwgMHg4RiwgMHhDRCwgMHhDOCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDQ4LCAweDM5LCAweDc5LCAweDY0LCAweEExLCAweDY3LCAweDNDLCAweEI3KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4M0QsIDB4QzcsIDB4NDksIDB4RkYsIDB4N0YsIDB4QUMsIDB4QUIsIDB4NTUpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg4MSwgMHg1NCwgMHgzRSwgMHg4MywgMHhGMCwgMHgzRCwgMHhCQywgMHhCNSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDg3LCAweDkyLCAweDRBLCAweDM4LCAweDQyLCAweDhBLCAweEFCLCAweEY2KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RTcsIDB4MEIsIDB4NEYsIDB4RUUsIDB4OUUsIDB4OTIsIDB4QTUsIDB4QkUpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhCQSwgMHhERCwgMHgxOSwgMHg5NiwgMHhGMiwgMHhGMCwgMHg2QiwgMHgyRSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEJFLCAweEZDLCAweERELCAweEIyLCAweDhBLCAweEU1LCAweDRDLCAweDIyKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RDQsIDB4MDEsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDApLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3A1MjFyMV9UXzI4X1lbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QjcsIDB4MDYsIDB4NDksIDB4QUMsIDB4OTksIDB4N0UsIDB4RjgsIDB4MTIpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg3NiwgMHhDOCwgMHgwMSwgMHg1MSwgMHhFQSwgMHhGNiwgMHg1MiwgMHhFNyksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDQzLCAweDg5LCAweDY2LCAweDJCLCAweDFGLCAweDlCLCAweDJBLCAweEEzKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4REYsIDB4MEYsIDB4OTUsIDB4MDcsIDB4MkIsIDB4NkMsIDB4NkUsIDB4OUUpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgyNCwgMHhDMywgMHhCNCwgMHhCQiwgMHg5MSwgMHgxRiwgMHhBMywgMHg3MiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDVGLCAweDZFLCAweDU0LCAweDI4LCAweDdCLCAweDlDLCAweDc5LCAweDJFKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MDMsIDB4NDUsIDB4RkYsIDB4QTYsIDB4REEsIDB4QTIsIDB4ODMsIDB4NzEpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhFQiwgMHhERSwgMHg4RiwgMHgxNywgMHgzNywgMHg4MiwgMHhDQiwgMHhFMiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDMwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwKSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwNTIxcjFfVF8yOV9YW10gPSB7CisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEQ4LCAweDk0LCAweDNGLCAweDI2LCAweEM5LCAweDFELCAweEQ5LCAweEFFKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MDksIDB4OTcsIDB4MjgsIDB4MjAsIDB4Q0QsIDB4QzEsIDB4RjMsIDB4NDApLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg5NSwgMHhDOSwgMHhCNSwgMHg2MCwgMHg5QiwgMHgxRSwgMHhEQywgMHg3NCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDVCLCAweEI5LCAweDVCLCAweDdELCAweEEwLCAweEIyLCAweDhDLCAweEYwKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MzMsIDB4RDEsIDB4NDIsIDB4RTYsIDB4MzksIDB4MzMsIDB4NkQsIDB4QkIpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg1RCwgMHhDMCwgMHhGQywgMHhEMiwgMHgxNCwgMHg1RCwgMHgzRSwgMHgzQyksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDc4LCAweDRBLCAweDNFLCAweDQwLCAweDE2LCAweDkzLCAweDE1LCAweENGKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RkEsIDB4MjQsIDB4QzEsIDB4MjcsIDB4MjcsIDB4RTUsIDB4NEIsIDB4RDgpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhENCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCksCit9Oworc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDUyMXIxX1RfMjlfWVtdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgxRCwgMHg1MCwgMHhEOCwgMHhCQywgMHhDMSwgMHg0NiwgMHgyMiwgMHhCQiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEFELCAweDBFLCAweDYwLCAweEExLCAweEIzLCAweDUwLCAweEQ0LCAweDg2KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4ODAsIDB4QjEsIDB4MjYsIDB4QjYsIDB4NkQsIDB4NDcsIDB4NUEsIDB4NkYpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg0NSwgMHhBQywgMHgxMSwgMHgzNSwgMHgzRSwgMHhCOSwgMHhGNCwgMHgwMSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDU4LCAweDk3LCAweEZBLCAweEJCLCAweDZCLCAweDM5LCAweDEzLCAweEQ4KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MTUsIDB4N0IsIDB4MzQsIDB4MTIsIDB4NzUsIDB4OEUsIDB4OUIsIDB4QzYpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgyQywgMHg5RSwgMHhDRCwgMHgyOSwgMHhCNiwgMHhFRiwgMHg4RCwgMHgxMCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDQ3LCAweEFDLCAweEU5LCAweDI1LCAweDI3LCAweEJCLCAweDc4LCAweDQ3KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MkYsIDB4MDEsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDApLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3A1MjFyMV9UXzMwX1hbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MzAsIDB4N0EsIDB4QTgsIDB4RDMsIDB4RTMsIDB4NjYsIDB4RTUsIDB4NjYpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgyRiwgMHg0QywgMHhDNCwgMHgyQywgMHg3NiwgMHg4MSwgMHg1MCwgMHgzMiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEVFLCAweDcxLCAweDA4LCAweEI4LCAweDUyLCAweDdDLCAweEFGLCAweERDKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NDUsIDB4NTksIDB4MjQsIDB4REQsIDB4RkIsIDB4MkYsIDB4RDAsIDB4REEpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhCNywgMHhDRCwgMHg1NiwgMHhFOSwgMHhBQywgMHg5MSwgMHhFNiwgMHhCOSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEU1LCAweDY0LCAweDIwLCAweEM2LCAweDlGLCAweEU0LCAweEVGLCAweERGKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NkQsIDB4MkMsIDB4OEYsIDB4OEMsIDB4OTcsIDB4RjYsIDB4MjIsIDB4QzMpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhBQywgMHhGNCwgMHg4OCwgMHhBQSwgMHhBOCwgMHhENywgMHhBNSwgMHg2OCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweERFLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwKSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwNTIxcjFfVF8zMF9ZW10gPSB7CisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDIxLCAweDZDLCAweEFFLCAweDgzLCAweEIxLCAweDU1LCAweDU1LCAweEVFKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QjAsIDB4NjcsIDB4ODQsIDB4NDcsIDB4N0MsIDB4ODMsIDB4NUMsIDB4ODkpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg1QiwgMHgxMCwgMHg0RCwgMHhERCwgMHgzMCwgMHg2MCwgMHhCMCwgMHhFNiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDU5LCAweEE3LCAweDM2LCAweDc2LCAweDI0LCAweDMyLCAweDlGLCAweDlEKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4REQsIDB4NDIsIDB4ODEsIDB4RkIsIDB4QTQsIDB4MkUsIDB4MTMsIDB4NjgpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg4NywgMHg5NCwgMHg5MSwgMHhGRiwgMHg5OSwgMHhBMCwgMHgwOSwgMHg2MSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDVELCAweDgzLCAweEExLCAweDc2LCAweEFGLCAweDM3LCAweDVDLCAweDc3KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MUUsIDB4QTgsIDB4MDQsIDB4ODYsIDB4QzQsIDB4QTksIDB4NzksIDB4NDIpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg5MywgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCksCit9Oworc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDUyMXIxX1RfMzFfWFtdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhCNiwgMHg4QywgMHhDMiwgMHgzNCwgMHhGQiwgMHg4MywgMHgyOCwgMHgyNyksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEE0LCAweDAzLCAweDdELCAweDVFLCAweDlFLCAweDBFLCAweEIwLCAweDIyKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QTIsIDB4MDIsIDB4NDYsIDB4N0YsIDB4QjksIDB4QUMsIDB4QkIsIDB4MjMpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgwNiwgMHhFRCwgMHg0OCwgMHhDMiwgMHg5NiwgMHg0RCwgMHg1NiwgMHgyNyksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDQ0LCAweEI1LCAweEM1LCAweEQxLCAweEU2LCAweDFDLCAweDdFLCAweDlCKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4OTIsIDB4MkUsIDB4MTgsIDB4NzEsIDB4MkQsIDB4N0IsIDB4RDcsIDB4QjMpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhBQiwgMHg0NiwgMHg5RCwgMHhERSwgMHhBQSwgMHg3OCwgMHg4RSwgMHhCMSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDRELCAweEQ3LCAweDY5LCAweDJFLCAweEUxLCAweEQ5LCAweDQ4LCAweERFKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RkIsIDB4MDEsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDApLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3A1MjFyMV9UXzMxX1lbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QUYsIDB4RkYsIDB4OUUsIDB4MDksIDB4MjIsIDB4MjIsIDB4RTYsIDB4OEQpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg2QywgMHgxNCwgMHgyOCwgMHgxMywgMHgxQiwgMHg2MiwgMHgxMiwgMHgyMiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweENDLCAweDdGLCAweDY3LCAweDAzLCAweEIwLCAweEMwLCAweEYzLCAweDA1KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QzAsIDB4QzMsIDB4MEYsIDB4RkIsIDB4MjUsIDB4NDgsIDB4M0UsIDB4RjQpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgwQiwgMHg2RSwgMHg1MywgMHg5OCwgMHgzNiwgMHhCMywgMHhEMywgMHg5NCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEVCLCAweDgxLCAweDU0LCAweDIyLCAweEE0LCAweENDLCAweEMxLCAweDIyKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RjUsIDB4QkEsIDB4RkMsIDB4QTksIDB4REYsIDB4NjgsIDB4ODYsIDB4MkIpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg3MSwgMHg5MiwgMHgwRSwgMHhDMywgMHhGMiwgMHg1OCwgMHhFOCwgMHg1MSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEU5LCAweDAxLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwKSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19lY3BfcG9pbnQgc2VjcDUyMXIxX1RbMzJdID0geworICAgIEVDUF9QT0lOVF9JTklUX1hZX1oxKHNlY3A1MjFyMV9UXzBfWCwgc2VjcDUyMXIxX1RfMF9ZKSwKKyAgICBFQ1BfUE9JTlRfSU5JVF9YWV9aMChzZWNwNTIxcjFfVF8xX1gsIHNlY3A1MjFyMV9UXzFfWSksCisgICAgRUNQX1BPSU5UX0lOSVRfWFlfWjAoc2VjcDUyMXIxX1RfMl9YLCBzZWNwNTIxcjFfVF8yX1kpLAorICAgIEVDUF9QT0lOVF9JTklUX1hZX1owKHNlY3A1MjFyMV9UXzNfWCwgc2VjcDUyMXIxX1RfM19ZKSwKKyAgICBFQ1BfUE9JTlRfSU5JVF9YWV9aMChzZWNwNTIxcjFfVF80X1gsIHNlY3A1MjFyMV9UXzRfWSksCisgICAgRUNQX1BPSU5UX0lOSVRfWFlfWjAoc2VjcDUyMXIxX1RfNV9YLCBzZWNwNTIxcjFfVF81X1kpLAorICAgIEVDUF9QT0lOVF9JTklUX1hZX1owKHNlY3A1MjFyMV9UXzZfWCwgc2VjcDUyMXIxX1RfNl9ZKSwKKyAgICBFQ1BfUE9JTlRfSU5JVF9YWV9aMChzZWNwNTIxcjFfVF83X1gsIHNlY3A1MjFyMV9UXzdfWSksCisgICAgRUNQX1BPSU5UX0lOSVRfWFlfWjAoc2VjcDUyMXIxX1RfOF9YLCBzZWNwNTIxcjFfVF84X1kpLAorICAgIEVDUF9QT0lOVF9JTklUX1hZX1owKHNlY3A1MjFyMV9UXzlfWCwgc2VjcDUyMXIxX1RfOV9ZKSwKKyAgICBFQ1BfUE9JTlRfSU5JVF9YWV9aMChzZWNwNTIxcjFfVF8xMF9YLCBzZWNwNTIxcjFfVF8xMF9ZKSwKKyAgICBFQ1BfUE9JTlRfSU5JVF9YWV9aMChzZWNwNTIxcjFfVF8xMV9YLCBzZWNwNTIxcjFfVF8xMV9ZKSwKKyAgICBFQ1BfUE9JTlRfSU5JVF9YWV9aMChzZWNwNTIxcjFfVF8xMl9YLCBzZWNwNTIxcjFfVF8xMl9ZKSwKKyAgICBFQ1BfUE9JTlRfSU5JVF9YWV9aMChzZWNwNTIxcjFfVF8xM19YLCBzZWNwNTIxcjFfVF8xM19ZKSwKKyAgICBFQ1BfUE9JTlRfSU5JVF9YWV9aMChzZWNwNTIxcjFfVF8xNF9YLCBzZWNwNTIxcjFfVF8xNF9ZKSwKKyAgICBFQ1BfUE9JTlRfSU5JVF9YWV9aMChzZWNwNTIxcjFfVF8xNV9YLCBzZWNwNTIxcjFfVF8xNV9ZKSwKKyAgICBFQ1BfUE9JTlRfSU5JVF9YWV9aMChzZWNwNTIxcjFfVF8xNl9YLCBzZWNwNTIxcjFfVF8xNl9ZKSwKKyAgICBFQ1BfUE9JTlRfSU5JVF9YWV9aMChzZWNwNTIxcjFfVF8xN19YLCBzZWNwNTIxcjFfVF8xN19ZKSwKKyAgICBFQ1BfUE9JTlRfSU5JVF9YWV9aMChzZWNwNTIxcjFfVF8xOF9YLCBzZWNwNTIxcjFfVF8xOF9ZKSwKKyAgICBFQ1BfUE9JTlRfSU5JVF9YWV9aMChzZWNwNTIxcjFfVF8xOV9YLCBzZWNwNTIxcjFfVF8xOV9ZKSwKKyAgICBFQ1BfUE9JTlRfSU5JVF9YWV9aMChzZWNwNTIxcjFfVF8yMF9YLCBzZWNwNTIxcjFfVF8yMF9ZKSwKKyAgICBFQ1BfUE9JTlRfSU5JVF9YWV9aMChzZWNwNTIxcjFfVF8yMV9YLCBzZWNwNTIxcjFfVF8yMV9ZKSwKKyAgICBFQ1BfUE9JTlRfSU5JVF9YWV9aMChzZWNwNTIxcjFfVF8yMl9YLCBzZWNwNTIxcjFfVF8yMl9ZKSwKKyAgICBFQ1BfUE9JTlRfSU5JVF9YWV9aMChzZWNwNTIxcjFfVF8yM19YLCBzZWNwNTIxcjFfVF8yM19ZKSwKKyAgICBFQ1BfUE9JTlRfSU5JVF9YWV9aMChzZWNwNTIxcjFfVF8yNF9YLCBzZWNwNTIxcjFfVF8yNF9ZKSwKKyAgICBFQ1BfUE9JTlRfSU5JVF9YWV9aMChzZWNwNTIxcjFfVF8yNV9YLCBzZWNwNTIxcjFfVF8yNV9ZKSwKKyAgICBFQ1BfUE9JTlRfSU5JVF9YWV9aMChzZWNwNTIxcjFfVF8yNl9YLCBzZWNwNTIxcjFfVF8yNl9ZKSwKKyAgICBFQ1BfUE9JTlRfSU5JVF9YWV9aMChzZWNwNTIxcjFfVF8yN19YLCBzZWNwNTIxcjFfVF8yN19ZKSwKKyAgICBFQ1BfUE9JTlRfSU5JVF9YWV9aMChzZWNwNTIxcjFfVF8yOF9YLCBzZWNwNTIxcjFfVF8yOF9ZKSwKKyAgICBFQ1BfUE9JTlRfSU5JVF9YWV9aMChzZWNwNTIxcjFfVF8yOV9YLCBzZWNwNTIxcjFfVF8yOV9ZKSwKKyAgICBFQ1BfUE9JTlRfSU5JVF9YWV9aMChzZWNwNTIxcjFfVF8zMF9YLCBzZWNwNTIxcjFfVF8zMF9ZKSwKKyAgICBFQ1BfUE9JTlRfSU5JVF9YWV9aMChzZWNwNTIxcjFfVF8zMV9YLCBzZWNwNTIxcjFfVF8zMV9ZKSwKK307CisjZWxzZQorI2RlZmluZSBzZWNwNTIxcjFfVCBOVUxMCisjZW5kaWYKKyNlbmRpZiAvKiBNQkVEVExTX0VDUF9EUF9TRUNQNTIxUjFfRU5BQkxFRCAqLworCisjaWYgZGVmaW5lZChNQkVEVExTX0VDUF9EUF9TRUNQMTkySzFfRU5BQkxFRCkKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AxOTJrMV9wW10gPSB7CisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDM3LCAweEVFLCAweEZGLCAweEZGLCAweEZFLCAweEZGLCAweEZGLCAweEZGKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RkYsIDB4RkYsIDB4RkYsIDB4RkYsIDB4RkYsIDB4RkYsIDB4RkYsIDB4RkYpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiksCit9Oworc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDE5MmsxX2FbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF8yKDB4MDAsIDB4MDApLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AxOTJrMV9iW10gPSB7CisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfMigweDAzLCAweDAwKSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMTkyazFfZ3hbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4N0QsIDB4NkMsIDB4RTAsIDB4RUEsIDB4QjEsIDB4RDEsIDB4QTUsIDB4MUQpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgzNCwgMHhGNCwgMHhCNywgMHg4MCwgMHgwMiwgMHg3RCwgMHhCMCwgMHgyNiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEFFLCAweEU5LCAweDU3LCAweEMwLCAweDBFLCAweEYxLCAweDRGLCAweERCKSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMTkyazFfZ3lbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4OUQsIDB4MkYsIDB4NUUsIDB4RDksIDB4ODgsIDB4QUEsIDB4ODIsIDB4NDApLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgzNCwgMHg4NiwgMHhCRSwgMHgxNSwgMHhEMCwgMHg2MywgMHg0MSwgMHg4NCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEE3LCAweDI4LCAweDU2LCAweDlDLCAweDZELCAweDJGLCAweDJGLCAweDlCKSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMTkyazFfbltdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg4RCwgMHhGRCwgMHhERSwgMHg3NCwgMHg2QSwgMHg0NiwgMHg2OSwgMHgwRiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDE3LCAweEZDLCAweEYyLCAweDI2LCAweEZFLCAweEZGLCAweEZGLCAweEZGKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RkYsIDB4RkYsIDB4RkYsIDB4RkYsIDB4RkYsIDB4RkYsIDB4RkYsIDB4RkYpLAorfTsKKworI2lmIE1CRURUTFNfRUNQX0ZJWEVEX1BPSU5UX09QVElNID09IDEKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AxOTJrMV9UXzBfWFtdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg3RCwgMHg2QywgMHhFMCwgMHhFQSwgMHhCMSwgMHhEMSwgMHhBNSwgMHgxRCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDM0LCAweEY0LCAweEI3LCAweDgwLCAweDAyLCAweDdELCAweEIwLCAweDI2KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QUUsIDB4RTksIDB4NTcsIDB4QzAsIDB4MEUsIDB4RjEsIDB4NEYsIDB4REIpLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AxOTJrMV9UXzBfWVtdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg5RCwgMHgyRiwgMHg1RSwgMHhEOSwgMHg4OCwgMHhBQSwgMHg4MiwgMHg0MCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDM0LCAweDg2LCAweEJFLCAweDE1LCAweEQwLCAweDYzLCAweDQxLCAweDg0KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QTcsIDB4MjgsIDB4NTYsIDB4OUMsIDB4NkQsIDB4MkYsIDB4MkYsIDB4OUIpLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AxOTJrMV9UXzFfWFtdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg2RiwgMHg3NywgMHgzRCwgMHgwRCwgMHg4NSwgMHg0OCwgMHhBOCwgMHhBOSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDYyLCAweDA3LCAweERGLCAweDFELCAweEIzLCAweEIzLCAweDAxLCAweDU0KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MDUsIDB4ODYsIDB4RjYsIDB4QUYsIDB4MTksIDB4MkEsIDB4ODgsIDB4MkUpLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AxOTJrMV9UXzFfWVtdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgzMywgMHg5MCwgMHhCNiwgMHgyRiwgMHg0OCwgMHgzNiwgMHg0QywgMHg1QiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweERCLCAweDExLCAweDE0LCAweEE2LCAweENCLCAweEJBLCAweDE1LCAweEQ5KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4N0UsIDB4QjAsIDB4RjIsIDB4RDQsIDB4QzksIDB4REEsIDB4QkEsIDB4RDcpLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AxOTJrMV9UXzJfWFtdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhFNCwgMHhDMSwgMHg5QywgMHhFNiwgMHhCQiwgMHhGQiwgMHhDRiwgMHgyMyksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDkzLCAweDE5LCAweEFDLCAweDVBLCAweEM5LCAweDhBLCAweDFDLCAweDc1KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QzEsIDB4RjYsIDB4NzYsIDB4ODYsIDB4ODksIDB4MjcsIDB4OEQsIDB4MjgpLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AxOTJrMV9UXzJfWVtdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg0QiwgMHhFMCwgMHg2RiwgMHgzNCwgMHhCQSwgMHg1RSwgMHhEMywgMHg5NiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDZBLCAweERDLCAweEE2LCAweDg3LCAweEM5LCAweDlELCAweEMwLCAweDgyKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MDksIDB4MTEsIDB4N0UsIDB4RDYsIDB4RjcsIDB4MzMsIDB4RkMsIDB4RTQpLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AxOTJrMV9UXzNfWFtdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhDMiwgMHgzNywgMHgzRSwgMHhDMCwgMHg3RiwgMHg2MiwgMHhFNywgMHg1NCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEE1LCAweDNCLCAweDY5LCAweDlELCAweDQ0LCAweEJDLCAweDgyLCAweDk5KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RDQsIDB4ODQsIDB4QjMsIDB4NUYsIDB4MkIsIDB4QTUsIDB4OUUsIDB4MkMpLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AxOTJrMV9UXzNfWVtdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgxRCwgMHg5NSwgMHhFQiwgMHg0QywgMHgwNCwgMHhCNCwgMHhGNCwgMHg3NSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDU1LCAweEFELCAweDRCLCAweEQ1LCAweDlBLCAweEVCLCAweEM0LCAweDRFKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QzksIDB4QjEsIDB4QzUsIDB4NTksIDB4RTMsIDB4RDUsIDB4MTYsIDB4MkEpLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AxOTJrMV9UXzRfWFtdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg0OCwgMHgyQSwgMHhDQywgMHhBQywgMHhEMCwgMHhFRSwgMHg1MCwgMHhFQyksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDk5LCAweDgzLCAweEUwLCAweDVCLCAweDE0LCAweDQ0LCAweDUyLCAweDIwKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RDYsIDB4MTUsIDB4MkQsIDB4NzgsIDB4RjYsIDB4NTEsIDB4MzIsIDB4Q0YpLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AxOTJrMV9UXzRfWVtdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg4NiwgMHgzNiwgMHg5QiwgMHhERCwgMHhGOCwgMHhERCwgMHhFRiwgMHhCMiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDBCLCAweEIxLCAweDZBLCAweDJCLCAweEFGLCAweEVCLCAweDJCLCAweEIxKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QzksIDB4ODcsIDB4N0EsIDB4NjYsIDB4NUQsIDB4NUIsIDB4REYsIDB4OEYpLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AxOTJrMV9UXzVfWFtdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg2MiwgMHg0NSwgMHhFNSwgMHg4MSwgMHg5QiwgMHhFQiwgMHgzNywgMHgyMyksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEIzLCAweDI5LCAweEUyLCAweDIwLCAweDY0LCAweDIzLCAweDZCLCAweDZFKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RkUsIDB4MUQsIDB4NDEsIDB4RTEsIDB4OUIsIDB4NjEsIDB4N0IsIDB4RDkpLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AxOTJrMV9UXzVfWVtdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg3NSwgMHg1NywgMHhBMywgMHgwQSwgMHgxMywgMHhFNCwgMHg1OSwgMHgxNSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDc5LCAweDZFLCAweDRBLCAweDQ4LCAweDg0LCAweDkwLCAweEFDLCAweEM3KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4OUMsIDB4QjgsIDB4RjUsIDB4RjMsIDB4REUsIDB4QTAsIDB4QTEsIDB4MUQpLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AxOTJrMV9UXzZfWFtdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhBMywgMHgzMiwgMHg4MSwgMHhBOSwgMHg5MSwgMHg1QSwgMHg0RSwgMHgzMyksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweENCLCAweEE4LCAweDkwLCAweEJFLCAweDBGLCAweEVDLCAweEMwLCAweDg1KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4ODAsIDB4MzAsIDB4RDcsIDB4MDgsIDB4QUUsIDB4QzQsIDB4M0EsIDB4QTUpLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AxOTJrMV9UXzZfWVtdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhCQywgMHg1NSwgMHhFMywgMHg3NiwgMHhCMywgMHg2NCwgMHg3NCwgMHg5RiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDNGLCAweDc1LCAweEQ0LCAweERCLCAweDk4LCAweEQ3LCAweDM5LCAweEFFKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RDQsIDB4RUIsIDB4OEEsIDB4QUIsIDB4MTYsIDB4RDksIDB4RDQsIDB4MEIpLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AxOTJrMV9UXzdfWFtdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg0MSwgMHhCRSwgMHhGOSwgMHhDNywgMHhDNywgMHhCQSwgMHhGMywgMHhBMSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEMyLCAweDg1LCAweDU5LCAweEYzLCAweDYwLCAweDQxLCAweDAyLCAweEQyKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NDYsIDB4MUMsIDB4NEEsIDB4QTQsIDB4QzcsIDB4RUQsIDB4NjYsIDB4QkMpLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AxOTJrMV9UXzdfWVtdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhDMywgMHg5QywgMHgyRSwgMHg0NiwgMHg1MiwgMHgxOCwgMHg4NywgMHgxNCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEZGLCAweDM1LCAweDVBLCAweDc1LCAweEFDLCAweDRELCAweDc1LCAweDkxKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4Q0UsIDB4MkYsIDB4QUMsIDB4RkMsIDB4QkMsIDB4RTYsIDB4OTMsIDB4NUUpLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AxOTJrMV9UXzhfWFtdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg4NywgMHg0RCwgMHhDOSwgMHgxOCwgMHhFOSwgMHgwMCwgMHhFQiwgMHgzMyksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDFBLCAweDY5LCAweDcyLCAweDA3LCAweDVBLCAweDU5LCAweEE4LCAweDI2KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QjYsIDB4NjUsIDB4ODMsIDB4MjAsIDB4MTAsIDB4RjksIDB4NjksIDB4ODIpLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AxOTJrMV9UXzhfWVtdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg4QiwgMHg1NiwgMHg3RiwgMHg5RiwgMHhCRiwgMHg0NiwgMHgwQywgMHg3RSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEZDLCAweENGLCAweEYwLCAweERDLCAweERGLCAweDJELCAweEU2LCAweEU1KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MDksIDB4RjAsIDB4NzIsIDB4M0EsIDB4N0EsIDB4MDMsIDB4RTUsIDB4MjIpLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AxOTJrMV9UXzlfWFtdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgzRSwgMHhBQSwgMHg1NywgMHgxMywgMHgzNywgMHhBNywgMHgyQywgMHhENCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEEzLCAweEFDLCAweEEyLCAweDIzLCAweEY5LCAweDg0LCAweDYwLCAweEQzKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MzIsIDB4RUIsIDB4NTEsIDB4NzAsIDB4NjQsIDB4NzgsIDB4Q0EsIDB4MDUpLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AxOTJrMV9UXzlfWVtdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg5MSwgMHhDQywgMHgzMCwgMHg2MiwgMHg5MywgMHg0NiwgMHgxMywgMHhFOSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDIxLCAweDI2LCAweENDLCAweDZDLCAweDNELCAweDVDLCAweERBLCAweDJDKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RDUsIDB4QUEsIDB4QjgsIDB4MDMsIDB4QTQsIDB4MUEsIDB4MDAsIDB4OTYpLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AxOTJrMV9UXzEwX1hbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RjksIDB4OUQsIDB4RTYsIDB4Q0MsIDB4NEUsIDB4MkUsIDB4QzIsIDB4RDUpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhCNCwgMHhDMywgMHg4QSwgMHhBRSwgMHg2RiwgMHg0MCwgMHgwNSwgMHhFQiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDlELCAweDhGLCAweDRBLCAweDRELCAweDM1LCAweEQzLCAweDUwLCAweDlEKSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMTkyazFfVF8xMF9ZW10gPSB7CisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDFGLCAweEZELCAweDk4LCAweEFCLCAweEM3LCAweDAzLCAweEI0LCAweDU1KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NDAsIDB4NDAsIDB4RDIsIDB4OUYsIDB4Q0EsIDB4RDAsIDB4NTMsIDB4MDApLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgxQSwgMHg4NCwgMHgwMCwgMHg2RiwgMHhDOCwgMHhBRCwgMHhFRCwgMHg4RCksCit9Oworc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDE5MmsxX1RfMTFfWFtdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhDRSwgMHhEMywgMHg1NywgMHhENywgMHhDMywgMHgwNywgMHhCRCwgMHhENyksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDY3LCAweEJBLCAweDQ3LCAweDFELCAweDNELCAweEVGLCAweDk4LCAweDZDKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NkQsIDB4QzAsIDB4NkMsIDB4N0YsIDB4MTIsIDB4RUUsIDB4OUYsIDB4NjcpLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AxOTJrMV9UXzExX1lbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4Q0EsIDB4MDIsIDB4REEsIDB4NzksIDB4QUEsIDB4QzksIDB4MjcsIDB4QzQpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgyMSwgMHg3OSwgMHhDNywgMHg3MSwgMHg4NCwgMHhDQiwgMHhFNSwgMHg1QSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDE1LCAweDM3LCAweDA2LCAweEJBLCAweEI1LCAweEQ1LCAweDE4LCAweDRDKSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMTkyazFfVF8xMl9YW10gPSB7CisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEExLCAweDY1LCAweDcyLCAweDZDLCAweEYyLCAweDYzLCAweDI3LCAweDZBKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NjksIDB4QkMsIDB4NzEsIDB4REYsIDB4NzUsIDB4RjgsIDB4OTgsIDB4NEQpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg3MCwgMHg3MCwgMHg5QiwgMHhEQywgMHhFNywgMHgxOCwgMHg3MSwgMHhGRiksCit9Oworc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDE5MmsxX1RfMTJfWVtdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgxNSwgMHg1QiwgMHg5RiwgMHgwMCwgMHg1QSwgMHhCNiwgMHg4MCwgMHg3QSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEI3LCAweEUwLCAweEJCLCAweEZDLCAweDVFLCAweDc4LCAweDlDLCAweDg5KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NjAsIDB4MDMsIDB4NjgsIDB4ODMsIDB4M0QsIDB4MkUsIDB4NEMsIDB4REQpLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AxOTJrMV9UXzEzX1hbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4M0IsIDB4NDksIDB4MjMsIDB4QTgsIDB4Q0IsIDB4M0IsIDB4MUEsIDB4RjYpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg4QiwgMHgzRCwgMHhBNywgMHg0NiwgMHhDRiwgMHg3NSwgMHhCNiwgMHgyQyksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDkyLCAweEZELCAweDMwLCAweDAxLCAweEI2LCAweEVGLCAweEY5LCAweEU4KSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMTkyazFfVF8xM19ZW10gPSB7CisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweERDLCAweEZBLCAweERBLCAweEI4LCAweDI5LCAweDQyLCAweEM5LCAweEM3KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MDYsIDB4RDcsIDB4QTAsIDB4RTYsIDB4NkIsIDB4ODYsIDB4NjEsIDB4MzkpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhEQiwgMHhFOSwgMHhEMywgMHgzNywgMHhEOCwgMHhFNywgMHgzNSwgMHhBOSksCit9Oworc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDE5MmsxX1RfMTRfWFtdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhGRCwgMHhDOCwgMHg4RSwgMHhCMSwgMHhDQiwgMHhCMSwgMHhCNSwgMHg0RCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDE2LCAweEQ3LCAweDQ2LCAweDdELCAweEFGLCAweEUyLCAweERDLCAweEJCKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RDAsIDB4NDYsIDB4RTcsIDB4RDgsIDB4NzYsIDB4MzEsIDB4OTAsIDB4NzYpLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AxOTJrMV9UXzE0X1lbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RUIsIDB4RDMsIDB4RjQsIDB4NzQsIDB4RTEsIDB4NjcsIDB4RDgsIDB4NjYpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhFNywgMHg3MCwgMHgzQywgMHhDOCwgMHhBRiwgMHg1RiwgMHhGNCwgMHg1OCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDI0LCAweDRFLCAweEVELCAweDVDLCAweDQzLCAweEIzLCAweDE2LCAweDM1KSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMTkyazFfVF8xNV9YW10gPSB7CisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDU3LCAweEFFLCAweEQxLCAweERELCAweDMxLCAweDE0LCAweEQzLCAweEYwKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RTgsIDB4MTQsIDB4MDYsIDB4MTMsIDB4MTIsIDB4MUMsIDB4ODEsIDB4RjUpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhBNiwgMHhGOSwgMHgwQywgMHg5MSwgMHhGNywgMHg2NywgMHg1OSwgMHg2MyksCit9Oworc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDE5MmsxX1RfMTVfWVtdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhBQiwgMHg5MSwgMHhFMiwgMHhGNCwgMHg5RCwgMHhFQiwgMHg4OCwgMHg4NyksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweERCLCAweDgyLCAweDMwLCAweDlDLCAweEFFLCAweDE4LCAweDRELCAweEI3KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4M0MsIDB4NzksIDB4Q0YsIDB4MTcsIDB4QTUsIDB4MUUsIDB4RTgsIDB4QzgpLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX2VjcF9wb2ludCBzZWNwMTkyazFfVFsxNl0gPSB7CisgICAgRUNQX1BPSU5UX0lOSVRfWFlfWjEoc2VjcDE5MmsxX1RfMF9YLCBzZWNwMTkyazFfVF8wX1kpLAorICAgIEVDUF9QT0lOVF9JTklUX1hZX1owKHNlY3AxOTJrMV9UXzFfWCwgc2VjcDE5MmsxX1RfMV9ZKSwKKyAgICBFQ1BfUE9JTlRfSU5JVF9YWV9aMChzZWNwMTkyazFfVF8yX1gsIHNlY3AxOTJrMV9UXzJfWSksCisgICAgRUNQX1BPSU5UX0lOSVRfWFlfWjAoc2VjcDE5MmsxX1RfM19YLCBzZWNwMTkyazFfVF8zX1kpLAorICAgIEVDUF9QT0lOVF9JTklUX1hZX1owKHNlY3AxOTJrMV9UXzRfWCwgc2VjcDE5MmsxX1RfNF9ZKSwKKyAgICBFQ1BfUE9JTlRfSU5JVF9YWV9aMChzZWNwMTkyazFfVF81X1gsIHNlY3AxOTJrMV9UXzVfWSksCisgICAgRUNQX1BPSU5UX0lOSVRfWFlfWjAoc2VjcDE5MmsxX1RfNl9YLCBzZWNwMTkyazFfVF82X1kpLAorICAgIEVDUF9QT0lOVF9JTklUX1hZX1owKHNlY3AxOTJrMV9UXzdfWCwgc2VjcDE5MmsxX1RfN19ZKSwKKyAgICBFQ1BfUE9JTlRfSU5JVF9YWV9aMChzZWNwMTkyazFfVF84X1gsIHNlY3AxOTJrMV9UXzhfWSksCisgICAgRUNQX1BPSU5UX0lOSVRfWFlfWjAoc2VjcDE5MmsxX1RfOV9YLCBzZWNwMTkyazFfVF85X1kpLAorICAgIEVDUF9QT0lOVF9JTklUX1hZX1owKHNlY3AxOTJrMV9UXzEwX1gsIHNlY3AxOTJrMV9UXzEwX1kpLAorICAgIEVDUF9QT0lOVF9JTklUX1hZX1owKHNlY3AxOTJrMV9UXzExX1gsIHNlY3AxOTJrMV9UXzExX1kpLAorICAgIEVDUF9QT0lOVF9JTklUX1hZX1owKHNlY3AxOTJrMV9UXzEyX1gsIHNlY3AxOTJrMV9UXzEyX1kpLAorICAgIEVDUF9QT0lOVF9JTklUX1hZX1owKHNlY3AxOTJrMV9UXzEzX1gsIHNlY3AxOTJrMV9UXzEzX1kpLAorICAgIEVDUF9QT0lOVF9JTklUX1hZX1owKHNlY3AxOTJrMV9UXzE0X1gsIHNlY3AxOTJrMV9UXzE0X1kpLAorICAgIEVDUF9QT0lOVF9JTklUX1hZX1owKHNlY3AxOTJrMV9UXzE1X1gsIHNlY3AxOTJrMV9UXzE1X1kpLAorfTsKKyNlbHNlCisjZGVmaW5lIHNlY3AxOTJrMV9UIE5VTEwKKyNlbmRpZgorCisjZW5kaWYgLyogTUJFRFRMU19FQ1BfRFBfU0VDUDE5MksxX0VOQUJMRUQgKi8KKworI2lmIGRlZmluZWQoTUJFRFRMU19FQ1BfRFBfU0VDUDIyNEsxX0VOQUJMRUQpCitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMjI0azFfcFtdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg2RCwgMHhFNSwgMHhGRiwgMHhGRiwgMHhGRSwgMHhGRiwgMHhGRiwgMHhGRiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEZGLCAweEZGLCAweEZGLCAweEZGLCAweEZGLCAweEZGLCAweEZGLCAweEZGKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RkYsIDB4RkYsIDB4RkYsIDB4RkYsIDB4RkYsIDB4RkYsIDB4RkYsIDB4RkYpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzQoMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiksCit9Oworc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDIyNGsxX2FbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF8yKDB4MDAsIDB4MDApLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AyMjRrMV9iW10gPSB7CisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfMigweDA1LCAweDAwKSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMjI0azFfZ3hbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NUMsIDB4QTQsIDB4QjcsIDB4QjYsIDB4MEUsIDB4NjUsIDB4N0UsIDB4MEYpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhBOSwgMHg3NSwgMHg3MCwgMHhFNCwgMHhFOSwgMHg2NywgMHhBNCwgMHg2OSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEExLCAweDI4LCAweEZDLCAweDMwLCAweERGLCAweDk5LCAweEYwLCAweDREKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF80KDB4MzMsIDB4NUIsIDB4NDUsIDB4QTEpLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AyMjRrMV9neVtdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhBNSwgMHg2MSwgMHg2RCwgMHg1NSwgMHhEQiwgMHg0QiwgMHhDQSwgMHhFMiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDU5LCAweEJELCAweEIwLCAweEMwLCAweEY3LCAweDE5LCAweEUzLCAweEY3KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RDYsIDB4RkIsIDB4Q0EsIDB4ODIsIDB4NDIsIDB4MzQsIDB4QkEsIDB4N0YpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzQoMHhFRCwgMHg5RiwgMHgwOCwgMHg3RSksCit9Oworc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDIyNGsxX25bXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RjcsIDB4QjEsIDB4OUYsIDB4NzYsIDB4NzEsIDB4QTksIDB4RjAsIDB4Q0EpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg4NCwgMHg2MSwgMHhFQywgMHhEMiwgMHhFOCwgMHhEQywgMHgwMSwgMHgwMCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDEsIDB4MDAsIDB4MDAsIDB4MDApLAorfTsKKworI2lmIE1CRURUTFNfRUNQX0ZJWEVEX1BPSU5UX09QVElNID09IDEKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AyMjRrMV9UXzBfWFtdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg1QywgMHhBNCwgMHhCNywgMHhCNiwgMHgwRSwgMHg2NSwgMHg3RSwgMHgwRiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEE5LCAweDc1LCAweDcwLCAweEU0LCAweEU5LCAweDY3LCAweEE0LCAweDY5KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QTEsIDB4MjgsIDB4RkMsIDB4MzAsIDB4REYsIDB4OTksIDB4RjAsIDB4NEQpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgzMywgMHg1QiwgMHg0NSwgMHhBMSwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCksCit9Oworc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDIyNGsxX1RfMF9ZW10gPSB7CisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEE1LCAweDYxLCAweDZELCAweDU1LCAweERCLCAweDRCLCAweENBLCAweEUyKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NTksIDB4QkQsIDB4QjAsIDB4QzAsIDB4RjcsIDB4MTksIDB4RTMsIDB4RjcpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhENiwgMHhGQiwgMHhDQSwgMHg4MiwgMHg0MiwgMHgzNCwgMHhCQSwgMHg3RiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEVELCAweDlGLCAweDA4LCAweDdFLCAweDAwLCAweDAwLCAweDAwLCAweDAwKSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMjI0azFfVF8xX1hbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4OTksIDB4NkMsIDB4MjIsIDB4MjIsIDB4NDAsIDB4ODksIDB4QUUsIDB4N0EpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgyRiwgMHg5MiwgMHhFMSwgMHg4NywgMHg1NiwgMHgzNSwgMHhBRiwgMHg5QiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDg4LCAweEFGLCAweDA4LCAweDM1LCAweDI3LCAweEVBLCAweDA0LCAweEVEKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RjAsIDB4NTMsIDB4RkQsIDB4Q0YsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDApLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AyMjRrMV9UXzFfWVtdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhDMSwgMHhEMCwgMHg5RiwgMHg4RCwgMHhGMywgMHg2MywgMHg1NCwgMHgzMCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDM5LCAweERCLCAweDBGLCAweDYxLCAweDU0LCAweDI2LCAweEQxLCAweDk4KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RjUsIDB4MjEsIDB4RjcsIDB4MUIsIDB4QjUsIDB4MUQsIDB4RjYsIDB4N0UpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhGRiwgMHgwNSwgMHhEQSwgMHg4RiwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCksCit9Oworc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDIyNGsxX1RfMl9YW10gPSB7CisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDEwLCAweDI2LCAweDczLCAweEJDLCAweEU0LCAweDI5LCAweDYyLCAweDU2KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MzcsIDB4OTUsIDB4MTcsIDB4OEIsIDB4QzMsIDB4OUIsIDB4QUMsIDB4Q0MpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhCMSwgMHhEQiwgMHg3NywgMHhERiwgMHhERCwgMHgxMywgMHgwNCwgMHg5OCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDAyLCAweEZDLCAweDIyLCAweDkzLCAweDAwLCAweDAwLCAweDAwLCAweDAwKSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMjI0azFfVF8yX1lbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QUMsIDB4NjUsIDB4RjEsIDB4NUEsIDB4MzcsIDB4RUYsIDB4NzksIDB4QUQpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg5OSwgMHgwMSwgMHgzNywgMHhBQywgMHg5QSwgMHg1QiwgMHg1MSwgMHg2NSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEZBLCAweDc1LCAweDEzLCAweEE5LCAweDRBLCAweEFELCAweEZFLCAweDlCKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MzIsIDB4ODIsIDB4NkYsIDB4NjYsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDApLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AyMjRrMV9UXzNfWFtdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg0RCwgMHg1RSwgMHhGMCwgMHg0MCwgMHhDMywgMHhBNiwgMHhFMiwgMHgxRSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDM0LCAweDlBLCAweDZGLCAweENGLCAweDExLCAweDI2LCAweDY2LCAweDg1KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NzksIDB4NzMsIDB4QTgsIDB4Q0YsIDB4MkIsIDB4MTIsIDB4MzYsIDB4MzcpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhCOSwgMHhCMywgMHgwQSwgMHg1OCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCksCit9Oworc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDIyNGsxX1RfM19ZW10gPSB7CisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEQzLCAweDc5LCAweDAwLCAweDU1LCAweDA0LCAweDM0LCAweDkwLCAweDFBKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MEEsIDB4NTQsIDB4MUMsIDB4QzIsIDB4NDUsIDB4MEMsIDB4MUIsIDB4MjMpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg4NiwgMHgxOSwgMHhBQiwgMHhBOCwgMHhGQywgMHg3MywgMHhEQywgMHhFRSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDcyLCAweEZCLCAweDkzLCAweENFLCAweDAwLCAweDAwLCAweDAwLCAweDAwKSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMjI0azFfVF80X1hbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RjgsIDB4NzUsIDB4RDAsIDB4NjYsIDB4OTUsIDB4ODYsIDB4Q0EsIDB4NjYpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgxNywgMHhFQSwgMHgyOSwgMHgxNiwgMHg2QSwgMHgzOCwgMHhERiwgMHg0MSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEQ4LCAweEEyLCAweDM2LCAweDJGLCAweERDLCAweEJCLCAweDVFLCAweEY3KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RDQsIDB4ODksIDB4NTksIDB4NDksIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDApLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AyMjRrMV9UXzRfWVtdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhDQSwgMHhBMywgMHg5OSwgMHg5RCwgMHhCOCwgMHg3NywgMHg5RCwgMHgxRCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDBBLCAweDkzLCAweDQzLCAweDQ3LCAweEM2LCAweDVDLCAweEY5LCAweEZEKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QUEsIDB4MDAsIDB4NzksIDB4NDIsIDB4NjQsIDB4QjgsIDB4MjUsIDB4M0UpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgyOSwgMHg1NCwgMHhCNCwgMHgzMywgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCksCit9Oworc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDIyNGsxX1RfNV9YW10gPSB7CisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEQ5LCAweDBDLCAweDQyLCAweDkwLCAweDgzLCAweDBCLCAweDMxLCAweDVGKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NTQsIDB4MkUsIDB4QUUsIDB4QzgsIDB4QzcsIDB4NUYsIDB4RDIsIDB4NzApLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhBOSwgMHhCQywgMHhBRCwgMHg0MSwgMHhFNywgMHgzMiwgMHgzQSwgMHg4MSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDhBLCAweDk3LCAweDUyLCAweDgzLCAweDAwLCAweDAwLCAweDAwLCAweDAwKSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMjI0azFfVF81X1lbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MUEsIDB4MTMsIDB4N0EsIDB4QkQsIDB4QUUsIDB4OTQsIDB4NjAsIDB4RkQpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg5MiwgMHg5QiwgMHg5NSwgMHhCNCwgMHg2RSwgMHg2OCwgMHhCMiwgMHgxRiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDE1LCAweDQ5LCAweEJFLCAweDUxLCAweEZFLCAweDY2LCAweDE1LCAweDc0KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RTYsIDB4MzcsIDB4RTQsIDB4RkUsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDApLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AyMjRrMV9UXzZfWFtdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhGNiwgMHg5QiwgMHhFRSwgMHg2NCwgMHhDOSwgMHgxQiwgMHhCRCwgMHg3NyksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweERBLCAweDVGLCAweDM0LCAweEE5LCAweDBCLCAweEI3LCAweDI1LCAweDUyKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4OTAsIDB4MTMsIDB4QjEsIDB4MzgsIDB4RkIsIDB4OUQsIDB4NzgsIDB4RUQpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgzOSwgMHhFNywgMHgxQiwgMHhGQSwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCksCit9Oworc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDIyNGsxX1RfNl9ZW10gPSB7CisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEZCLCAweEIzLCAweEI3LCAweDQ0LCAweDkyLCAweDZCLCAweDAwLCAweDgyKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4OTcsIDB4ODIsIDB4NDQsIDB4M0UsIDB4MTgsIDB4MUEsIDB4NTgsIDB4NkEpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgxNSwgMHhGOCwgMHhDMCwgMHhFNCwgMHhFRSwgMHhDMSwgMHhCRiwgMHg0NCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDdFLCAweDMyLCAweDI3LCAweEIyLCAweDAwLCAweDAwLCAweDAwLCAweDAwKSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMjI0azFfVF83X1hbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RjQsIDB4OUEsIDB4NDIsIDB4NjIsIDB4OEIsIDB4MjYsIDB4NTQsIDB4MjEpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgyNCwgMHg4NSwgMHg3NCwgMHhBMCwgMHg3OSwgMHhBOCwgMHhFRSwgMHhCRSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDgwLCAweDM2LCAweDYwLCAweEIzLCAweDI4LCAweDRELCAweDU1LCAweEJFKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MzIsIDB4MjcsIDB4ODIsIDB4MjksIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDApLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AyMjRrMV9UXzdfWVtdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgwRCwgMHhGQywgMHg3MywgMHg3NywgMHhBRiwgMHg1QywgMHhBQywgMHg3OCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweENDLCAweEVELCAweEU1LCAweEY2LCAweDFELCAweEE4LCAweDY3LCAweDQzKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RjgsIDB4REUsIDB4MzMsIDB4MUMsIDB4RjEsIDB4ODAsIDB4NzMsIDB4RjgpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgyQSwgMHhFMiwgMHhERSwgMHgzQywgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCksCit9Oworc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDIyNGsxX1RfOF9YW10gPSB7CisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDU3LCAweDNFLCAweDZCLCAweEZFLCAweEYwLCAweDA0LCAweDI4LCAweDAxKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QkIsIDB4QjIsIDB4MTQsIDB4OUQsIDB4MTgsIDB4MTEsIDB4N0QsIDB4OUQpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg5NiwgMHhDNCwgMHhENiwgMHgyRSwgMHg2RSwgMHg1NywgMHg0RCwgMHhFMSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEVBLCAweDU1LCAweDFCLCAweERFLCAweDAwLCAweDAwLCAweDAwLCAweDAwKSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMjI0azFfVF84X1lbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MDcsIDB4RjcsIDB4MTcsIDB4QkMsIDB4NDUsIDB4QUIsIDB4MTYsIDB4QUIpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhDRCwgMHhCMCwgMHhFRiwgMHg2MSwgMHhFMywgMHgyMCwgMHg3QywgMHhGOCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDZDLCAweDg1LCAweDQxLCAweDRELCAweEYxLCAweDdFLCAweDRELCAweDQxKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4OTksIDB4QzIsIDB4OUIsIDB4NUUsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDApLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AyMjRrMV9UXzlfWFtdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg3MCwgMHgyRSwgMHg0OSwgMHgzRCwgMHgzRSwgMHg0QiwgMHhEMywgMHgzMiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEM4LCAweDJCLCAweDlELCAweEQ1LCAweDI3LCAweEZBLCAweENBLCAweEUwKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QjMsIDB4QjMsIDB4NkEsIDB4RTAsIDB4NzksIDB4MTQsIDB4MjgsIDB4MEYpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg2QywgMHgxRSwgMHhEQywgMHhGNSwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCksCit9Oworc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDIyNGsxX1RfOV9ZW10gPSB7CisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweENBLCAweDQ0LCAweDU2LCAweENELCAweEZDLCAweDlGLCAweDA5LCAweEZGKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NUMsIDB4OEMsIDB4NTksIDB4QTQsIDB4NjQsIDB4MkEsIDB4M0EsIDB4RUQpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg0MCwgMHhBMCwgMHhCNSwgMHg4NiwgMHg0RSwgMHg2OSwgMHhEQSwgMHgwNiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDA4LCAweDhCLCAweDExLCAweDM4LCAweDAwLCAweDAwLCAweDAwLCAweDAwKSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMjI0azFfVF8xMF9YW10gPSB7CisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEEwLCAweDE3LCAweDE2LCAweDEyLCAweDE3LCAweERDLCAweDAwLCAweDdFKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RTcsIDB4NzYsIDB4MjQsIDB4NkMsIDB4OTcsIDB4MkMsIDB4QjUsIDB4RjkpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg4MiwgMHg3MSwgMHhFMywgMHhCMCwgMHhCQiwgMHg0RSwgMHg1MCwgMHg1MiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDZFLCAweDQ4LCAweDI2LCAweEQ1LCAweDAwLCAweDAwLCAweDAwLCAweDAwKSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMjI0azFfVF8xMF9ZW10gPSB7CisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDA2LCAweDVGLCAweDI4LCAweEY2LCAweDAxLCAweDVBLCAweDYwLCAweDQxKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QUUsIDB4OTUsIDB4RkUsIDB4RDAsIDB4QUQsIDB4MTUsIDB4RDQsIDB4RDkpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhBRCwgMHg1QiwgMHg3QSwgMHhGRCwgMHg4MCwgMHhGNywgMHg5RiwgMHg2NCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDMyLCAweEJDLCAweDFCLCAweERGLCAweDAwLCAweDAwLCAweDAwLCAweDAwKSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMjI0azFfVF8xMV9YW10gPSB7CisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEJCLCAweEU2LCAweERGLCAweDE0LCAweDI5LCAweEY0LCAweEQ0LCAweDE0KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RTUsIDB4MTIsIDB4REQsIDB4RUMsIDB4NUIsIDB4OEEsIDB4NTksIDB4RTUpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgyNiwgMHg5MiwgMHgzRSwgMHgzNSwgMHgwOCwgMHhFOSwgMHhDRiwgMHgwRSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEUwLCAweDM1LCAweDI5LCAweDk3LCAweDAwLCAweDAwLCAweDAwLCAweDAwKSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMjI0azFfVF8xMV9ZW10gPSB7CisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDExLCAweERCLCAweEQ2LCAweDZBLCAweEM1LCAweDQzLCAweEE0LCAweEExKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NjEsIDB4MzMsIDB4NTAsIDB4NjEsIDB4NzAsIDB4QTEsIDB4RTksIDB4Q0UpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgxNSwgMHgxNSwgMHg2RSwgMHg1RiwgMHgwMSwgMHgwQywgMHg4QywgMHhGQSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDg1LCAweEExLCAweDlBLCAweDlELCAweDAwLCAweDAwLCAweDAwLCAweDAwKSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMjI0azFfVF8xMl9YW10gPSB7CisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDZFLCAweEM2LCAweEY3LCAweEUyLCAweDRBLCAweENELCAweDlCLCAweDYxKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MzQsIDB4NEQsIDB4NUEsIDB4QjgsIDB4RTIsIDB4NkQsIDB4QTYsIDB4NTApLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgzMiwgMHgzRiwgMHhCNiwgMHgxNywgMHhFMywgMHgyQywgMHg2RiwgMHg2NSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDFFLCAweEE0LCAweDU5LCAweDUxLCAweDAwLCAweDAwLCAweDAwLCAweDAwKSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMjI0azFfVF8xMl9ZW10gPSB7CisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDc3LCAweDRGLCAweDdDLCAweDQ5LCAweENELCAweDZFLCAweEVCLCAweDNDKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MDUsIDB4QzksIDB4MUYsIDB4QjcsIDB4NEQsIDB4OTgsIDB4QzcsIDB4NjcpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg0QywgMHhGRCwgMHg5OCwgMHgyMCwgMHg5NSwgMHhCQiwgMHgyMCwgMHgzQSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEUwLCAweEYyLCAweDczLCAweDkyLCAweDAwLCAweDAwLCAweDAwLCAweDAwKSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMjI0azFfVF8xM19YW10gPSB7CisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEUyLCAweEVGLCAweEZCLCAweDMwLCAweEZBLCAweDEyLCAweDFBLCAweEIwKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4N0EsIDB4NEMsIDB4MjQsIDB4QjQsIDB4NUIsIDB4QzksIDB4NEMsIDB4MEYpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg3QSwgMHhERCwgMHg1RSwgMHg4NCwgMHg5NSwgMHg0RCwgMHgyNiwgMHhFRCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEUzLCAweEZBLCAweEY5LCAweDNBLCAweDAwLCAweDAwLCAweDAwLCAweDAwKSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMjI0azFfVF8xM19ZW10gPSB7CisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDZBLCAweEEzLCAweDJFLCAweDdBLCAweERDLCAweEE3LCAweDUzLCAweEE5KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4N0MsIDB4OUYsIDB4ODEsIDB4ODQsIDB4QjIsIDB4MEQsIDB4RkUsIDB4MzEpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg2MSwgMHg4OSwgMHgxQiwgMHg3NywgMHgwQywgMHg4OSwgMHg3MSwgMHhFQyksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEZBLCAweEZGLCAweDdGLCAweEIyLCAweDAwLCAweDAwLCAweDAwLCAweDAwKSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMjI0azFfVF8xNF9YW10gPSB7CisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDI4LCAweEU5LCAweDJDLCAweDc5LCAweEE2LCAweDNDLCAweEFELCAweDkzKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RDYsIDB4RTAsIDB4MjMsIDB4MDIsIDB4ODYsIDB4MEYsIDB4NzcsIDB4MkEpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgxMywgMHg5MywgMHg2RCwgMHhFOSwgMHhGOSwgMHgzQywgMHhCRSwgMHhCOSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDA0LCAweEU3LCAweDI0LCAweDkyLCAweDAwLCAweDAwLCAweDAwLCAweDAwKSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMjI0azFfVF8xNF9ZW10gPSB7CisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEJCLCAweDNDLCAweDVCLCAweDRCLCAweDFCLCAweDI1LCAweDM3LCAweEQ2KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QzksIDB4RTgsIDB4MzgsIDB4MUIsIDB4QTEsIDB4NUEsIDB4MkUsIDB4NjgpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgwMywgMHgxOSwgMHhGRCwgMHhGNCwgMHg3OCwgMHgwMSwgMHg2QiwgMHg0NCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDBGLCAweDY5LCAweDM3LCAweDRGLCAweDAwLCAweDAwLCAweDAwLCAweDAwKSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMjI0azFfVF8xNV9YW10gPSB7CisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDFBLCAweEUyLCAweEJGLCAweEQzLCAweEVDLCAweDk1LCAweDlDLCAweDAzKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QzIsIDB4N0IsIDB4RkMsIDB4RDUsIDB4RDMsIDB4MjUsIDB4NUUsIDB4MEYpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgzOSwgMHg1NSwgMHgwOSwgMHhBMiwgMHg1OCwgMHg2QSwgMHhDOSwgMHhGRiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDgwLCAweENDLCAweDNCLCAweEQ5LCAweDAwLCAweDAwLCAweDAwLCAweDAwKSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMjI0azFfVF8xNV9ZW10gPSB7CisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDhGLCAweDA4LCAweDY1LCAweDVFLCAweENCLCAweEFCLCAweDQ4LCAweEM4KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RUUsIDB4NzksIDB4OEIsIDB4QzAsIDB4MTEsIDB4QzAsIDB4NjksIDB4MzgpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhFNiwgMHhFOCwgMHg4QywgMHg0QywgMHhDNSwgMHgyOCwgMHhFNCwgMHhBRSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEE1LCAweDFGLCAweDM0LCAweDVDLCAweDAwLCAweDAwLCAweDAwLCAweDAwKSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19lY3BfcG9pbnQgc2VjcDIyNGsxX1RbMTZdID0geworICAgIEVDUF9QT0lOVF9JTklUX1hZX1oxKHNlY3AyMjRrMV9UXzBfWCwgc2VjcDIyNGsxX1RfMF9ZKSwKKyAgICBFQ1BfUE9JTlRfSU5JVF9YWV9aMChzZWNwMjI0azFfVF8xX1gsIHNlY3AyMjRrMV9UXzFfWSksCisgICAgRUNQX1BPSU5UX0lOSVRfWFlfWjAoc2VjcDIyNGsxX1RfMl9YLCBzZWNwMjI0azFfVF8yX1kpLAorICAgIEVDUF9QT0lOVF9JTklUX1hZX1owKHNlY3AyMjRrMV9UXzNfWCwgc2VjcDIyNGsxX1RfM19ZKSwKKyAgICBFQ1BfUE9JTlRfSU5JVF9YWV9aMChzZWNwMjI0azFfVF80X1gsIHNlY3AyMjRrMV9UXzRfWSksCisgICAgRUNQX1BPSU5UX0lOSVRfWFlfWjAoc2VjcDIyNGsxX1RfNV9YLCBzZWNwMjI0azFfVF81X1kpLAorICAgIEVDUF9QT0lOVF9JTklUX1hZX1owKHNlY3AyMjRrMV9UXzZfWCwgc2VjcDIyNGsxX1RfNl9ZKSwKKyAgICBFQ1BfUE9JTlRfSU5JVF9YWV9aMChzZWNwMjI0azFfVF83X1gsIHNlY3AyMjRrMV9UXzdfWSksCisgICAgRUNQX1BPSU5UX0lOSVRfWFlfWjAoc2VjcDIyNGsxX1RfOF9YLCBzZWNwMjI0azFfVF84X1kpLAorICAgIEVDUF9QT0lOVF9JTklUX1hZX1owKHNlY3AyMjRrMV9UXzlfWCwgc2VjcDIyNGsxX1RfOV9ZKSwKKyAgICBFQ1BfUE9JTlRfSU5JVF9YWV9aMChzZWNwMjI0azFfVF8xMF9YLCBzZWNwMjI0azFfVF8xMF9ZKSwKKyAgICBFQ1BfUE9JTlRfSU5JVF9YWV9aMChzZWNwMjI0azFfVF8xMV9YLCBzZWNwMjI0azFfVF8xMV9ZKSwKKyAgICBFQ1BfUE9JTlRfSU5JVF9YWV9aMChzZWNwMjI0azFfVF8xMl9YLCBzZWNwMjI0azFfVF8xMl9ZKSwKKyAgICBFQ1BfUE9JTlRfSU5JVF9YWV9aMChzZWNwMjI0azFfVF8xM19YLCBzZWNwMjI0azFfVF8xM19ZKSwKKyAgICBFQ1BfUE9JTlRfSU5JVF9YWV9aMChzZWNwMjI0azFfVF8xNF9YLCBzZWNwMjI0azFfVF8xNF9ZKSwKKyAgICBFQ1BfUE9JTlRfSU5JVF9YWV9aMChzZWNwMjI0azFfVF8xNV9YLCBzZWNwMjI0azFfVF8xNV9ZKSwKK307CisjZWxzZQorI2RlZmluZSBzZWNwMjI0azFfVCBOVUxMCisjZW5kaWYKKyNlbmRpZiAvKiBNQkVEVExTX0VDUF9EUF9TRUNQMjI0SzFfRU5BQkxFRCAqLworCisjaWYgZGVmaW5lZChNQkVEVExTX0VDUF9EUF9TRUNQMjU2SzFfRU5BQkxFRCkKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AyNTZrMV9wW10gPSB7CisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDJGLCAweEZDLCAweEZGLCAweEZGLCAweEZFLCAweEZGLCAweEZGLCAweEZGKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RkYsIDB4RkYsIDB4RkYsIDB4RkYsIDB4RkYsIDB4RkYsIDB4RkYsIDB4RkYpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEZGLCAweEZGLCAweEZGLCAweEZGLCAweEZGLCAweEZGLCAweEZGLCAweEZGKSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMjU2azFfYVtdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzIoMHgwMCwgMHgwMCksCit9Oworc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDI1NmsxX2JbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF8yKDB4MDcsIDB4MDApLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AyNTZrMV9neFtdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg5OCwgMHgxNywgMHhGOCwgMHgxNiwgMHg1QiwgMHg4MSwgMHhGMiwgMHg1OSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEQ5LCAweDI4LCAweENFLCAweDJELCAweERCLCAweEZDLCAweDlCLCAweDAyKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MDcsIDB4MEIsIDB4ODcsIDB4Q0UsIDB4OTUsIDB4NjIsIDB4QTAsIDB4NTUpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhBQywgMHhCQiwgMHhEQywgMHhGOSwgMHg3RSwgMHg2NiwgMHhCRSwgMHg3OSksCit9Oworc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDI1NmsxX2d5W10gPSB7CisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEI4LCAweEQ0LCAweDEwLCAweEZCLCAweDhGLCAweEQwLCAweDQ3LCAweDlDKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MTksIDB4NTQsIDB4ODUsIDB4QTYsIDB4NDgsIDB4QjQsIDB4MTcsIDB4RkQpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhBOCwgMHgwOCwgMHgxMSwgMHgwRSwgMHhGQywgMHhGQiwgMHhBNCwgMHg1RCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDY1LCAweEM0LCAweEEzLCAweDI2LCAweDc3LCAweERBLCAweDNBLCAweDQ4KSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMjU2azFfbltdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg0MSwgMHg0MSwgMHgzNiwgMHhEMCwgMHg4QywgMHg1RSwgMHhEMiwgMHhCRiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDNCLCAweEEwLCAweDQ4LCAweEFGLCAweEU2LCAweERDLCAweEFFLCAweEJBKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RkUsIDB4RkYsIDB4RkYsIDB4RkYsIDB4RkYsIDB4RkYsIDB4RkYsIDB4RkYpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiksCit9OworCisjaWYgTUJFRFRMU19FQ1BfRklYRURfUE9JTlRfT1BUSU0gPT0gMQorc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDI1NmsxX1RfMF9YW10gPSB7CisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDk4LCAweDE3LCAweEY4LCAweDE2LCAweDVCLCAweDgxLCAweEYyLCAweDU5KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RDksIDB4MjgsIDB4Q0UsIDB4MkQsIDB4REIsIDB4RkMsIDB4OUIsIDB4MDIpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgwNywgMHgwQiwgMHg4NywgMHhDRSwgMHg5NSwgMHg2MiwgMHhBMCwgMHg1NSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEFDLCAweEJCLCAweERDLCAweEY5LCAweDdFLCAweDY2LCAweEJFLCAweDc5KSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMjU2azFfVF8wX1lbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QjgsIDB4RDQsIDB4MTAsIDB4RkIsIDB4OEYsIDB4RDAsIDB4NDcsIDB4OUMpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgxOSwgMHg1NCwgMHg4NSwgMHhBNiwgMHg0OCwgMHhCNCwgMHgxNywgMHhGRCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEE4LCAweDA4LCAweDExLCAweDBFLCAweEZDLCAweEZCLCAweEE0LCAweDVEKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NjUsIDB4QzQsIDB4QTMsIDB4MjYsIDB4NzcsIDB4REEsIDB4M0EsIDB4NDgpLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AyNTZrMV9UXzFfWFtdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhFNywgMHhFRSwgMHhENywgMHgxRSwgMHg2NywgMHg4NiwgMHgzMiwgMHg3NCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDIzLCAweDczLCAweEIxLCAweEE5LCAweEQ1LCAweENDLCAweDI3LCAweDc4KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MUYsIDB4MEUsIDB4MTEsIDB4MDEsIDB4NzEsIDB4RkUsIDB4OTIsIDB4NzMpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhDNiwgMHgyOCwgMHg2MywgMHg2RCwgMHg3MiwgMHgwOSwgMHhBNiwgMHhDMCksCit9Oworc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDI1NmsxX1RfMV9ZW10gPSB7CisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweENFLCAweEUxLCAweDY5LCAweERDLCAweDNFLCAweDJDLCAweDc1LCAweEMzKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RTUsIDB4QjcsIDB4M0YsIDB4MzAsIDB4MjYsIDB4M0MsIDB4REYsIDB4OEUpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgzRCwgMHhCRSwgMHhCOSwgMHg1RCwgMHgwRSwgMHhFOCwgMHg1RSwgMHgxNCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDAxLCAweEMzLCAweDA1LCAweEQ2LCAweEI3LCAweEQ1LCAweDI0LCAweEZDKSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMjU2azFfVF8yX1hbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MTMsIDB4Q0YsIDB4N0IsIDB4REMsIDB4Q0QsIDB4QzMsIDB4MzksIDB4OUQpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg0MiwgMHhEQSwgMHhCOSwgMHhFNSwgMHg2NCwgMHhBNywgMHg0NywgMHg5MSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDc2LCAweDQ2LCAweEE4LCAweDYxLCAweEY2LCAweDIzLCAweEVCLCAweDU4KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NUMsIDB4QzEsIDB4RkYsIDB4RTQsIDB4NTUsIDB4RDUsIDB4QzIsIDB4QkYpLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AyNTZrMV9UXzJfWVtdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhDOSwgMHhCRSwgMHhCOSwgMHg1OSwgMHgyNCwgMHgxMywgMHg0QSwgMHgyQSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDY0LCAweDQ1LCAweDEyLCAweERFLCAweEJBLCAweDRGLCAweEVGLCAweDU2KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QkUsIDB4MDgsIDB4QkYsIDB4QzEsIDB4NjYsIDB4QUEsIDB4MEEsIDB4QkMpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgzNiwgMHhGRSwgMHgzMCwgMHg1NSwgMHgzMSwgMHg4NiwgMHhBNywgMHhCNCksCit9Oworc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDI1NmsxX1RfM19YW10gPSB7CisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDFELCAweEJGLCAweDE4LCAweDgxLCAweDY3LCAweDI3LCAweDQyLCAweEJEKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MDgsIDB4MDUsIDB4ODMsIDB4QTQsIDB4REQsIDB4NTcsIDB4RDMsIDB4NTApLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgyMCwgMHg2MywgMHhBQiwgMHhFNCwgMHg5MCwgMHg3MCwgMHhEMCwgMHg3QyksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDcxLCAweDVELCAweEZELCAweEEwLCAweEVGLCAweENGLCAweDFDLCAweDU0KSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMjU2azFfVF8zX1lbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MTMsIDB4ODAsIDB4RTQsIDB4RjYsIDB4MDksIDB4QkMsIDB4NTcsIDB4OTApLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgyMSwgMHg5RiwgMHg2RSwgMHg4OCwgMHg1NCwgMHg2RSwgMHg1MSwgMHhGMiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEY1LCAweDVGLCAweDg1LCAweEZCLCAweDg0LCAweDNFLCAweDRBLCAweEFBKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QTgsIDB4MTksIDB4RjUsIDB4NTUsIDB4QzksIDB4MDcsIDB4RDgsIDB4Q0UpLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AyNTZrMV9UXzRfWFtdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgxQSwgMHhCNCwgMHhDMywgMHhEOSwgMHg1QywgMHhBMCwgMHhENCwgMHg5MCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDBELCAweDMwLCAweEFGLCAweDU5LCAweDlCLCAweEY4LCAweDA0LCAweDg1KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NEQsIDB4QTYsIDB4RkQsIDB4NjYsIDB4N0IsIDB4QzMsIDB4MzksIDB4ODUpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhFMCwgMHhCRiwgMHhGMCwgMHhDMiwgMHhFOSwgMHg3MSwgMHhBNCwgMHg5RSksCit9Oworc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDI1NmsxX1RfNF9ZW10gPSB7CisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDE0LCAweDJELCAweEI5LCAweDg4LCAweDI4LCAweEYxLCAweEJFLCAweDc4KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MTQsIDB4RjMsIDB4MUEsIDB4MEUsIDB4QjksIDB4MDEsIDB4NjYsIDB4MzQpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg3NywgMHhBNywgMHhBNCwgMHhGNCwgMHgwNSwgMHhEMCwgMHhBQSwgMHg1MyksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDAwLCAweDM5LCAweDFFLCAweDQ3LCAweEU1LCAweDY4LCAweEM4LCAweEMwKSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMjU2azFfVF81X1hbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4REQsIDB4QjksIDB4RkMsIDB4RTAsIDB4MzMsIDB4OEEsIDB4N0QsIDB4OTYpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg0RiwgMHg5MywgMHhBNSwgMHg1MywgMHg1NSwgMHgxNiwgMHhCNCwgMHg2RSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEU5LCAweDVGLCAweEVBLCAweDlCLCAweDI5LCAweDUyLCAweDcxLCAweERBKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QjIsIDB4RjAsIDB4MjQsIDB4QjgsIDB4N0QsIDB4QjcsIDB4QTAsIDB4OUIpLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AyNTZrMV9UXzVfWVtdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhDMiwgMHgwMCwgMHgyNywgMHhCMiwgMHhERiwgMHg3MywgMHhBMiwgMHhFMCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDFELCAweDJFLCAweDRELCAweDdDLCAweERFLCAweDdBLCAweDIzLCAweDMyKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QUMsIDB4NjUsIDB4NjAsIDB4QzcsIDB4OTcsIDB4MUUsIDB4QTQsIDB4MjIpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhDRCwgMHgxMywgMHg1QiwgMHg3NywgMHg1OSwgMHhDQiwgMHgzNiwgMHhFMSksCit9Oworc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDI1NmsxX1RfNl9YW10gPSB7CisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDk5LCAweEJDLCAweDlGLCAweDlFLCAweDJELCAweDUzLCAweDJBLCAweEE4KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4ODcsIDB4NUYsIDB4NjQsIDB4OUYsIDB4MUEsIDB4MTksIDB4RTYsIDB4NzcpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg5RSwgMHg3QiwgMHgzOSwgMHhEMiwgMHhEQiwgMHg4NSwgMHg4NCwgMHhENSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDgzLCAweEM3LCAweDBELCAweDU4LCAweDZFLCAweDNGLCAweDUyLCAweDE1KSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMjU2azFfVF82X1lbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MjEsIDB4NjgsIDB4MTksIDB4MEIsIDB4NjgsIDB4QzksIDB4MUUsIDB4RkIpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhEMiwgMHg0RSwgMHgyMSwgMHg0OSwgMHgzRCwgMHg1NSwgMHhDQywgMHgyNSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEY1LCAweEY5LCAweDI1LCAweDQ1LCAweDU0LCAweDQ1LCAweEIxLCAweDBGKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QTksIDB4QjMsIDB4RjcsIDB4Q0QsIDB4ODAsIDB4QTQsIDB4MDQsIDB4MDUpLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AyNTZrMV9UXzdfWFtdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhENCwgMHgxRSwgMHg4OCwgMHhDNCwgMHhBQSwgMHgxOCwgMHg3RSwgMHg0NSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDRCLCAweEFDLCAweEQ5LCAweEIyLCAweEExLCAweEMwLCAweDcxLCAweDVEKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QTksIDB4QTIsIDB4RjEsIDB4MTUsIDB4QTYsIDB4NUYsIDB4NkMsIDB4ODYpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg0RiwgMHg1QiwgMHgwNSwgMHhCQywgMHhCNywgMHhDNiwgMHg0RSwgMHg3MiksCit9Oworc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDI1NmsxX1RfN19ZW10gPSB7CisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDFELCAweDgwLCAweEY4LCAweDVDLCAweDIwLCAweDJBLCAweEUxLCAweEUyKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4N0MsIDB4NDgsIDB4MkUsIDB4NjgsIDB4ODIsIDB4N0YsIDB4RUIsIDB4NUYpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhBMiwgMHgzQiwgMHgyNSwgMHhEQiwgMHgzMiwgMHg0RCwgMHg4OCwgMHg0MiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEVFLCAweDZFLCAweEE2LCAweEI2LCAweDZELCAweDYyLCAweDc4LCAweDIyKSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMjU2azFfVF84X1hbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MUYsIDB4NEQsIDB4M0UsIDB4ODYsIDB4NTgsIDB4QzMsIDB4RUIsIDB4QkEpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgxQSwgMHg4OSwgMHgzMywgMHgxOCwgMHgyMSwgMHgxRCwgMHg5QiwgMHhFNyksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDBCLCAweDlELCAweEZGLCAweEMzLCAweDc5LCAweEMxLCAweDg4LCAweEY4KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MjgsIDB4RDQsIDB4NDgsIDB4NTMsIDB4RTgsIDB4QUQsIDB4MjEsIDB4MTYpLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AyNTZrMV9UXzhfWVtdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhGNSwgMHg3QiwgMHhERSwgMHhDQiwgMHhEOCwgMHgzOSwgMHgxNywgMHg3QyksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEQzLCAweEYzLCAweDAzLCAweEYyLCAweDVDLCAweEJDLCAweEM4LCAweDhBKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MjcsIDB4QUUsIDB4NEMsIDB4QjAsIDB4MTYsIDB4QTQsIDB4OTMsIDB4ODYpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg3MSwgMHg4QiwgMHg2QiwgMHhEQywgMHhENywgMHg5QSwgMHgzRSwgMHg3RSksCit9Oworc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgc2VjcDI1NmsxX1RfOV9YW10gPSB7CisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEQ2LCAweDJELCAweDdBLCAweEQyLCAweDU5LCAweDA1LCAweEEyLCAweDgyKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NTcsIDB4NTYsIDB4MDksIDB4MzIsIDB4RjEsIDB4RTgsIDB4RTMsIDB4NzIpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgwMywgMHhDQSwgMHhFNSwgMHgyRSwgMHhGMCwgMHhGQiwgMHgxOCwgMHgxOSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEJBLCAweDg1LCAweEE5LCAweDIzLCAweDE1LCAweDMxLCAweDFGLCAweDBFKSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBzZWNwMjU2azFfVF85X1lbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NzYsIDB4RTUsIDB4QjEsIDB4ODYsIDB4QjksIDB4NkUsIDB4OEQsIDB4RDMpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg2QywgMHg3NywgMHhGQywgMHhDOSwgMHhBMywgMHgzRiwgMHg4OSwgMHhEMiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweERCLCAweDZBLCAweERDLCAweDI1LCAweEIwLCAweEM3LCAweDQxLCAweDU0KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MDIsIDB4MTEsIDB4NkIsIDB4QTYsIDB4MTEsIDB4NjIsIDB4RDQsIDB4MkQpLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AyNTZrMV9UXzEwX1hbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MTksIDB4N0QsIDB4MzQsIDB4QjMsIDB4MjAsIDB4N0YsIDB4MzcsIDB4QUEpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhCRCwgMHhENCwgMHg0NSwgMHhFOCwgMHhDMiwgMHhFOSwgMHhDNSwgMHhFQSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDVBLCAweDMyLCAweDNCLCAweDI1LCAweDdFLCAweDc5LCAweEFGLCAweEU3KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4M0YsIDB4RTQsIDB4NTQsIDB4NzEsIDB4QkUsIDB4MzUsIDB4NEUsIDB4RDApLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AyNTZrMV9UXzEwX1lbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QjAsIDB4OTQsIDB4REQsIDB4OEYsIDB4QjUsIDB4QzIsIDB4REQsIDB4NzUpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgwNywgMHg0OSwgMHhFOSwgMHgxQywgMHgyRiwgMHgwOCwgMHg0OSwgMHhDNiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDc3LCAweEI2LCAweDAzLCAweDg4LCAweDZGLCAweEI4LCAweDE1LCAweDY3KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QTQsIDB4RDMsIDB4MUMsIDB4RjMsIDB4QTUsIDB4RUIsIDB4NzksIDB4MDEpLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AyNTZrMV9UXzExX1hbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MjUsIDB4RjksIDB4NDMsIDB4ODgsIDB4ODksIDB4MEQsIDB4MDYsIDB4RUEpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgwMiwgMHgyRCwgMHhGNSwgMHg5OCwgMHgzMiwgMHhGNiwgMHhCMSwgMHgwNSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDIzLCAweDczLCAweDhGLCAweDJCLCAweDUwLCAweDI3LCAweDBBLCAweEU3KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QTcsIDB4RTMsIDB4QkQsIDB4MTYsIDB4MDUsIDB4QzgsIDB4OTMsIDB4MTIpLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AyNTZrMV9UXzExX1lbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MEEsIDB4NkEsIDB4RjcsIDB4RTMsIDB4M0QsIDB4REUsIDB4NUYsIDB4MkYpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg0NywgMHhBMywgMHg5QywgMHgyMiwgMHgzQywgMHgzMywgMHgzNiwgMHg1RCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDIwLCAweDI0LCAweDRDLCAweDY5LCAweDQ1LCAweDc4LCAweDE0LCAweEFFKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NTksIDB4RjgsIDB4RDQsIDB4QkYsIDB4QjgsIDB4QzAsIDB4QTEsIDB4MjUpLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AyNTZrMV9UXzEyX1hbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4N0UsIDB4ODgsIDB4RTEsIDB4OTEsIDB4MDMsIDB4RUIsIDB4QjMsIDB4MkIpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg1QywgMHgxMSwgMHhBMSwgMHhFRiwgMHgxNCwgMHgwRCwgMHhDNCwgMHg3RCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEZFLCAweEQ0LCAweDBELCAweDFELCAweDk2LCAweDMzLCAweDVDLCAweDE5KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NzAsIDB4NDUsIDB4MkEsIDB4MUEsIDB4RTYsIDB4NTcsIDB4MDQsIDB4OUIpLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AyNTZrMV9UXzEyX1lbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NzAsIDB4QjUsIDB4QTcsIDB4ODAsIDB4RTksIDB4OTMsIDB4OTcsIDB4OEQpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg1RCwgMHhCOSwgMHg3QywgMHhBMCwgMHhDOSwgMHg1NywgMHgyNiwgMHg0MyksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDlFLCAweEVGLCAweDU2LCAweERBLCAweDY2LCAweEY2LCAweDFCLCAweDlBKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MUYsIDB4ODksIDB4NkIsIDB4OTEsIDB4RTAsIDB4QTksIDB4NjUsIDB4MkIpLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AyNTZrMV9UXzEzX1hbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4OTEsIDB4OTgsIDB4OTYsIDB4OUIsIDB4MDYsIDB4N0QsIDB4NUUsIDB4NUEpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgwQSwgMHhGQSwgMHhDMSwgMHg1RiwgMHgxOSwgMHgzNywgMHg5NCwgMHg5RCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweENGLCAweEJFLCAweDZCLCAweDFBLCAweDA1LCAweEU0LCAweEJGLCAweDlGKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4ODQsIDB4Q0QsIDB4NUQsIDB4MzUsIDB4QjQsIDB4NTEsIDB4RjcsIDB4NjQpLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AyNTZrMV9UXzEzX1lbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NkMsIDB4RUYsIDB4OTYsIDB4REIsIDB4RjIsIDB4NjEsIDB4NjMsIDB4NTkpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhDQiwgMHgwNCwgMHg4OCwgMHhDOSwgMHg5RiwgMHgxQiwgMHg5NCwgMHhCOSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweERCLCAweDMwLCAweDc5LCAweDdFLCAweDI0LCAweEU3LCAweDVGLCAweEI4KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4M0YsIDB4QjgsIDB4OTAsIDB4QjcsIDB4OTQsIDB4MjUsIDB4QkIsIDB4MEYpLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AyNTZrMV9UXzE0X1hbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NjIsIDB4NzksIDB4RUEsIDB4QUQsIDB4QzAsIDB4NkQsIDB4MTgsIDB4NTcpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhFOSwgMHhBNCwgMHg1OCwgMHgyQSwgMHg4RCwgMHg5NSwgMHhCMywgMHhFNiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEM4LCAweEM0LCAweEMyLCAweDEyLCAweDBELCAweDc5LCAweEUyLCAweDJCKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MDIsIDB4NkYsIDB4QkUsIDB4OTcsIDB4NEQsIDB4QTQsIDB4MjAsIDB4MDcpLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AyNTZrMV9UXzE0X1lbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4Q0EsIDB4MzEsIDB4NzEsIDB4QzYsIDB4QTYsIDB4OTEsIDB4RUIsIDB4MUYpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhCNCwgMHg5QiwgMHhBOCwgMHg0QSwgMHhFNywgMHg3NywgMHhFMSwgMHhBQSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEE5LCAweDA2LCAweEQzLCAweDNELCAweDk0LCAweDMwLCAweEVGLCAweDhDKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RTcsIDB4REYsIDB4Q0EsIDB4RkEsIDB4RjUsIDB4MjgsIDB4RjgsIDB4QzkpLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AyNTZrMV9UXzE1X1hbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4Q0MsIDB4RTEsIDB4MzIsIDB4RkQsIDB4M0UsIDB4ODEsIDB4RjgsIDB4MTEpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhDRCwgMHhGMiwgMHg0QiwgMHgxRCwgMHgxOSwgMHhDOSwgMHgwRiwgMHhDQyksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDU5LCAweEIxLCAweDhBLCAweDIyLCAweDhCLCAweDA1LCAweDZCLCAweDU2KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MzUsIDB4MjEsIDB4RUYsIDB4MzAsIDB4RUMsIDB4MDksIDB4MkEsIDB4ODkpLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IHNlY3AyNTZrMV9UXzE1X1lbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MTUsIDB4ODQsIDB4NEEsIDB4NDYsIDB4MDcsIDB4NkMsIDB4M0MsIDB4NEMpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhERCwgMHgxOCwgMHgzQSwgMHhGNCwgMHhDQywgMHhGNSwgMHhCMiwgMHhGMiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDRGLCAweDhGLCAweENELCAweDBBLCAweDlDLCAweEY0LCAweEJELCAweDk1KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MzcsIDB4ODksIDB4N0YsIDB4OEEsIDB4QjEsIDB4NTIsIDB4M0EsIDB4QUIpLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX2VjcF9wb2ludCBzZWNwMjU2azFfVFsxNl0gPSB7CisgICAgRUNQX1BPSU5UX0lOSVRfWFlfWjEoc2VjcDI1NmsxX1RfMF9YLCBzZWNwMjU2azFfVF8wX1kpLAorICAgIEVDUF9QT0lOVF9JTklUX1hZX1owKHNlY3AyNTZrMV9UXzFfWCwgc2VjcDI1NmsxX1RfMV9ZKSwKKyAgICBFQ1BfUE9JTlRfSU5JVF9YWV9aMChzZWNwMjU2azFfVF8yX1gsIHNlY3AyNTZrMV9UXzJfWSksCisgICAgRUNQX1BPSU5UX0lOSVRfWFlfWjAoc2VjcDI1NmsxX1RfM19YLCBzZWNwMjU2azFfVF8zX1kpLAorICAgIEVDUF9QT0lOVF9JTklUX1hZX1owKHNlY3AyNTZrMV9UXzRfWCwgc2VjcDI1NmsxX1RfNF9ZKSwKKyAgICBFQ1BfUE9JTlRfSU5JVF9YWV9aMChzZWNwMjU2azFfVF81X1gsIHNlY3AyNTZrMV9UXzVfWSksCisgICAgRUNQX1BPSU5UX0lOSVRfWFlfWjAoc2VjcDI1NmsxX1RfNl9YLCBzZWNwMjU2azFfVF82X1kpLAorICAgIEVDUF9QT0lOVF9JTklUX1hZX1owKHNlY3AyNTZrMV9UXzdfWCwgc2VjcDI1NmsxX1RfN19ZKSwKKyAgICBFQ1BfUE9JTlRfSU5JVF9YWV9aMChzZWNwMjU2azFfVF84X1gsIHNlY3AyNTZrMV9UXzhfWSksCisgICAgRUNQX1BPSU5UX0lOSVRfWFlfWjAoc2VjcDI1NmsxX1RfOV9YLCBzZWNwMjU2azFfVF85X1kpLAorICAgIEVDUF9QT0lOVF9JTklUX1hZX1owKHNlY3AyNTZrMV9UXzEwX1gsIHNlY3AyNTZrMV9UXzEwX1kpLAorICAgIEVDUF9QT0lOVF9JTklUX1hZX1owKHNlY3AyNTZrMV9UXzExX1gsIHNlY3AyNTZrMV9UXzExX1kpLAorICAgIEVDUF9QT0lOVF9JTklUX1hZX1owKHNlY3AyNTZrMV9UXzEyX1gsIHNlY3AyNTZrMV9UXzEyX1kpLAorICAgIEVDUF9QT0lOVF9JTklUX1hZX1owKHNlY3AyNTZrMV9UXzEzX1gsIHNlY3AyNTZrMV9UXzEzX1kpLAorICAgIEVDUF9QT0lOVF9JTklUX1hZX1owKHNlY3AyNTZrMV9UXzE0X1gsIHNlY3AyNTZrMV9UXzE0X1kpLAorICAgIEVDUF9QT0lOVF9JTklUX1hZX1owKHNlY3AyNTZrMV9UXzE1X1gsIHNlY3AyNTZrMV9UXzE1X1kpLAorfTsKKyNlbHNlCisjZGVmaW5lIHNlY3AyNTZrMV9UIE5VTEwKKyNlbmRpZgorI2VuZGlmIC8qIE1CRURUTFNfRUNQX0RQX1NFQ1AyNTZLMV9FTkFCTEVEICovCisKKy8qCisgKiBEb21haW4gcGFyYW1ldGVycyBmb3IgYnJhaW5wb29sUDI1NnIxIChSRkMgNTYzOSAzLjQpCisgKi8KKyNpZiBkZWZpbmVkKE1CRURUTFNfRUNQX0RQX0JQMjU2UjFfRU5BQkxFRCkKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IGJyYWlucG9vbFAyNTZyMV9wW10gPSB7CisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDc3LCAweDUzLCAweDZFLCAweDFGLCAweDFELCAweDQ4LCAweDEzLCAweDIwKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MjgsIDB4MjAsIDB4MjYsIDB4RDUsIDB4MjMsIDB4RjYsIDB4M0IsIDB4NkUpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg3MiwgMHg4RCwgMHg4MywgMHg5RCwgMHg5MCwgMHgwQSwgMHg2NiwgMHgzRSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEJDLCAweEE5LCAweEVFLCAweEExLCAweERCLCAweDU3LCAweEZCLCAweEE5KSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBicmFpbnBvb2xQMjU2cjFfYVtdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhEOSwgMHhCNSwgMHgzMCwgMHhGMywgMHg0NCwgMHg0QiwgMHg0QSwgMHhFOSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDZDLCAweDVDLCAweERDLCAweDI2LCAweEMxLCAweDU1LCAweDgwLCAweEZCKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RTcsIDB4RkYsIDB4N0EsIDB4NDEsIDB4MzAsIDB4NzUsIDB4RjYsIDB4RUUpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg1NywgMHgzMCwgMHgyQywgMHhGQywgMHg3NSwgMHgwOSwgMHg1QSwgMHg3RCksCit9Oworc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgYnJhaW5wb29sUDI1NnIxX2JbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QjYsIDB4MDcsIDB4OEMsIDB4RkYsIDB4MTgsIDB4REMsIDB4Q0MsIDB4NkIpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhDRSwgMHhFMSwgMHhGNywgMHg1QywgMHgyOSwgMHgxNiwgMHg4NCwgMHg5NSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEJGLCAweDdDLCAweEQ3LCAweEJCLCAweEQ5LCAweEI1LCAweDMwLCAweEYzKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NDQsIDB4NEIsIDB4NEEsIDB4RTksIDB4NkMsIDB4NUMsIDB4REMsIDB4MjYpLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IGJyYWlucG9vbFAyNTZyMV9neFtdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg2MiwgMHgzMiwgMHhDRSwgMHg5QSwgMHhCRCwgMHg1MywgMHg0NCwgMHgzQSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEMyLCAweDIzLCAweEJELCAweEUzLCAweEUxLCAweDI3LCAweERFLCAweEI5KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QUYsIDB4QjcsIDB4ODEsIDB4RkMsIDB4MkYsIDB4NDgsIDB4NEIsIDB4MkMpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhDQiwgMHg1NywgMHg3RSwgMHhDQiwgMHhCOSwgMHhBRSwgMHhEMiwgMHg4QiksCit9Oworc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgYnJhaW5wb29sUDI1NnIxX2d5W10gPSB7CisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDk3LCAweDY5LCAweDA0LCAweDJGLCAweEM3LCAweDU0LCAweDFELCAweDVDKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NTQsIDB4OEUsIDB4RUQsIDB4MkQsIDB4MTMsIDB4NDUsIDB4NzcsIDB4QzIpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhDOSwgMHgxRCwgMHg2MSwgMHgxNCwgMHgxQSwgMHg0NiwgMHhGOCwgMHg5NyksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEZELCAweEM0LCAweERBLCAweEMzLCAweDM1LCAweEY4LCAweDdFLCAweDU0KSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBicmFpbnBvb2xQMjU2cjFfbltdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhBNywgMHg1NiwgMHg0OCwgMHg5NywgMHg4MiwgMHgwRSwgMHgxRSwgMHg5MCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEY3LCAweEE2LCAweDYxLCAweEI1LCAweEEzLCAweDdBLCAweDM5LCAweDhDKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NzEsIDB4OEQsIDB4ODMsIDB4OUQsIDB4OTAsIDB4MEEsIDB4NjYsIDB4M0UpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhCQywgMHhBOSwgMHhFRSwgMHhBMSwgMHhEQiwgMHg1NywgMHhGQiwgMHhBOSksCit9OworCisjaWYgTUJFRFRMU19FQ1BfRklYRURfUE9JTlRfT1BUSU0gPT0gMQorc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgYnJhaW5wb29sUDI1NnIxX1RfMF9YW10gPSB7CisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDYyLCAweDMyLCAweENFLCAweDlBLCAweEJELCAweDUzLCAweDQ0LCAweDNBKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QzIsIDB4MjMsIDB4QkQsIDB4RTMsIDB4RTEsIDB4MjcsIDB4REUsIDB4QjkpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhBRiwgMHhCNywgMHg4MSwgMHhGQywgMHgyRiwgMHg0OCwgMHg0QiwgMHgyQyksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweENCLCAweDU3LCAweDdFLCAweENCLCAweEI5LCAweEFFLCAweEQyLCAweDhCKSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBicmFpbnBvb2xQMjU2cjFfVF8wX1lbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4OTcsIDB4NjksIDB4MDQsIDB4MkYsIDB4QzcsIDB4NTQsIDB4MUQsIDB4NUMpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg1NCwgMHg4RSwgMHhFRCwgMHgyRCwgMHgxMywgMHg0NSwgMHg3NywgMHhDMiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEM5LCAweDFELCAweDYxLCAweDE0LCAweDFBLCAweDQ2LCAweEY4LCAweDk3KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RkQsIDB4QzQsIDB4REEsIDB4QzMsIDB4MzUsIDB4RjgsIDB4N0UsIDB4NTQpLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IGJyYWlucG9vbFAyNTZyMV9UXzFfWFtdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgzQywgMHhBMiwgMHhFRCwgMHg1MiwgMHhDOSwgMHg4QywgMHhFMywgMHhBNSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDcyLCAweEM5LCAweEM0LCAweDg3LCAweDNGLCAweDkzLCAweDdBLCAweEQxKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4OTYsIDB4MTIsIDB4NTMsIDB4NjEsIDB4M0UsIDB4NzYsIDB4MDgsIDB4Q0IpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgwOSwgMHg4QywgMHg3NCwgMHhGNCwgMHgwOCwgMHhDMywgMHg3NiwgMHg4MCksCit9Oworc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgYnJhaW5wb29sUDI1NnIxX1RfMV9ZW10gPSB7CisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDA1LCAweERELCAweDA5LCAweEE2LCAweEVELCAweEVFLCAweEM0LCAweDM4KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NzQsIDB4RDksIDB4QkUsIDB4NEIsIDB4QTUsIDB4QjcsIDB4MkIsIDB4NkUpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg0MiwgMHgyMCwgMHgxMiwgMHhDQSwgMHgwQSwgMHgzOCwgMHgyNCwgMHhBQiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDAwLCAweDcyLCAweDcxLCAweDkwLCAweDdBLCAweDJFLCAweEI3LCAweDIzKSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBicmFpbnBvb2xQMjU2cjFfVF8yX1hbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MkMsIDB4NjYsIDB4QTEsIDB4OTMsIDB4MTAsIDB4MkEsIDB4NTEsIDB4MTcpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg4OCwgMHgxMCwgMHgxMSwgMHgxMiwgMHhCQywgMHhCMCwgMHhCNiwgMHg5MyksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDNDLCAweDU4LCAweEQ3LCAweDBBLCAweDg0LCAweDA1LCAweEEzLCAweDlDKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RjcsIDB4OEUsIDB4OTUsIDB4NjEsIDB4RDMsIDB4MEIsIDB4REYsIDB4MzYpLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IGJyYWlucG9vbFAyNTZyMV9UXzJfWVtdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhGOSwgMHg5MiwgMHgxMiwgMHgwRiwgMHg1RSwgMHg4NywgMHg3MCwgMHgxQiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDM4LCAweEU5LCAweDlCLCAweEVCLCAweDNBLCAweEZCLCAweENGLCAweEM0KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4REMsIDB4OTIsIDB4QjksIDB4RjcsIDB4NDUsIDB4RDMsIDB4MDYsIDB4QjYpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg4MiwgMHgyOCwgMHg2NSwgMHhFMSwgMHhDNSwgMHg2QywgMHg1NywgMHgxOCksCit9Oworc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgYnJhaW5wb29sUDI1NnIxX1RfM19YW10gPSB7CisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDI4LCAweDBFLCAweDc3LCAweDAxLCAweDgxLCAweDlFLCAweDM4LCAweDVDKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NzEsIDB4RjAsIDB4RDUsIDB4QTUsIDB4OTEsIDB4MkIsIDB4REYsIDB4QzApLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhEOCwgMHhFRSwgMHhCNiwgMHgyNSwgMHhENiwgMHg5OCwgMHhERSwgMHgyRCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDdCLCAweEExLCAweDU1LCAweDYzLCAweDM5LCAweEVCLCAweEI1LCAweDQ3KSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBicmFpbnBvb2xQMjU2cjFfVF8zX1lbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QjYsIDB4RDYsIDB4QjgsIDB4RTMsIDB4MTMsIDB4RUQsIDB4N0YsIDB4QTMpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg2QywgMHhFOCwgMHhBRSwgMHgzNiwgMHhCOCwgMHhDRCwgMHgxOSwgMHgwMiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEY5LCAweDgyLCAweDgzLCAweDdBLCAweDdCLCAweDQ2LCAweDU2LCAweEU4KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NEUsIDB4NjAsIDB4NDYsIDB4MTUsIDB4NUEsIDB4QUMsIDB4OTksIDB4MzApLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IGJyYWlucG9vbFAyNTZyMV9UXzRfWFtdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhCRiwgMHg2MSwgMHg1MCwgMHhDNiwgMHhGRiwgMHgxMCwgMHg3RCwgMHgwNCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDkyLCAweDUxLCAweERGLCAweEE5LCAweDdELCAweDc4LCAweDI2LCAweDc0KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NTYsIDB4MTUsIDB4OUEsIDB4RjcsIDB4MDEsIDB4QzEsIDB4QkIsIDB4NDApLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgyNiwgMHgwRiwgMHhFNiwgMHgyQSwgMHhCRCwgMHg0QSwgMHg5RSwgMHg4NyksCit9Oworc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgYnJhaW5wb29sUDI1NnIxX1RfNF9ZW10gPSB7CisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDU3LCAweEY4LCAweEQxLCAweDc3LCAweEQyLCAweDQ5LCAweEIzLCAweEREKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MzYsIDB4ODYsIDB4RkIsIDB4OUUsIDB4MUYsIDB4NUEsIDB4NjAsIDB4NDcpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg5OCwgMHhDNCwgMHg4RCwgMHhDRCwgMHg4NiwgMHg2MSwgMHgyRiwgMHhGOSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDQxLCAweEY2LCAweEI5LCAweEFDLCAweDM3LCAweDlELCAweEU5LCAweDI4KSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBicmFpbnBvb2xQMjU2cjFfVF81X1hbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RkEsIDB4NzcsIDB4QUEsIDB4OTcsIDB4OUMsIDB4MEIsIDB4MDQsIDB4MjApLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg4MCwgMHhBNiwgMHg2MCwgMHg4MSwgMHhDRSwgMHgyNSwgMHgxMywgMHgzRSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDI0LCAweDAwLCAweEYzLCAweEJCLCAweDgyLCAweDk5LCAweDk1LCAweEI3KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NDcsIDB4NUEsIDB4Q0UsIDB4OTAsIDB4NzEsIDB4MzgsIDB4MkYsIDB4MTApLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IGJyYWlucG9vbFAyNTZyMV9UXzVfWVtdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhBNywgMHgxQSwgMHhDMCwgMHg4NCwgMHgyNywgMHhENiwgMHg5RCwgMHhCNyksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDM0LCAweDM3LCAweDUyLCAweDE2LCAweDEzLCAweDBFLCAweENFLCAweDkyKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MUUsIDB4QkYsIDB4NUEsIDB4REIsIDB4REIsIDB4NkUsIDB4MUUsIDB4NjkpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgzRSwgMHhCNywgMHg1RSwgMHhGOSwgMHg4NiwgMHhERCwgMHg4QSwgMHg1QyksCit9Oworc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgYnJhaW5wb29sUDI1NnIxX1RfNl9YW10gPSB7CisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDNELCAweEFCLCAweDVDLCAweDhELCAweDFELCAweEYyLCAweDJELCAweDFFKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NjUsIDB4QzUsIDB4RjgsIDB4RjcsIDB4MUQsIDB4OTYsIDB4MEIsIDB4NEQpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhBQywgMHg0QywgMHhBNywgMHg0NSwgMHgyMCwgMHg2QSwgMHgxRSwgMHg1QiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDIxLCAweDVELCAweEVGLCAweERFLCAweEVFLCAweDM5LCAweDQ0LCAweDE5KSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBicmFpbnBvb2xQMjU2cjFfVF82X1lbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NEIsIDB4MkYsIDB4NkQsIDB4NTIsIDB4QzksIDB4NTgsIDB4NjAsIDB4RTgpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhDMywgMHhDOSwgMHg2MiwgMHhDQiwgMHgzOCwgMHgzQywgMHg1NSwgMHhDQSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEZGLCAweEE1LCAweDA5LCAweDEwLCAweDg4LCAweERCLCAweEUzLCAweEJEKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NTIsIDB4RTAsIDB4M0MsIDB4Q0UsIDB4MDYsIDB4MEIsIDB4NEIsIDB4NUQpLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IGJyYWlucG9vbFAyNTZyMV9UXzdfWFtdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhCMSwgMHgxRCwgMHhCNCwgMHgxMCwgMHg3NiwgMHg4RiwgMHhCQSwgMHgwOSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDU3LCAweDcwLCAweDVBLCAweDA3LCAweEY1LCAweDFBLCAweDc0LCAweEM3KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MEIsIDB4RTksIDB4OTQsIDB4QTgsIDB4QzAsIDB4RDUsIDB4NEEsIDB4NEEpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgzRSwgMHg2RCwgMHhENCwgMHhFOCwgMHg5QiwgMHhFOSwgMHg2RCwgMHgwRSksCit9Oworc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgYnJhaW5wb29sUDI1NnIxX1RfN19ZW10gPSB7CisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDY1LCAweDAwLCAweDMyLCAweDQxLCAweDU3LCAweDg0LCAweDg5LCAweDUyKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RUUsIDB4QzcsIDB4MTQsIDB4RUMsIDB4RTksIDB4MjcsIDB4RkYsIDB4RjMpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg5QSwgMHg2NywgMHg5RSwgMHhGQiwgMHhCNiwgMHhCOCwgMHg5NiwgMHhGMyksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEU1LCAweDRBLCAweEUzLCAweDk3LCAweDRCLCAweDU4LCAweERFLCAweDMwKSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBicmFpbnBvb2xQMjU2cjFfVF84X1hbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QTYsIDB4MUUsIDB4NUMsIDB4RjUsIDB4N0YsIDB4RDUsIDB4RDQsIDB4QUEpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg1RCwgMHgwOCwgMHg3QSwgMHhGMSwgMHhCRCwgMHg4OSwgMHhDNywgMHgxRSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDNBLCAweEY5LCAweDExLCAweDFCLCAweEY1LCAweDNDLCAweDZELCAweDhDKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MTksIDB4NTAsIDB4RTUsIDB4NjksIDB4MUQsIDB4NTksIDB4RkMsIDB4MEMpLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IGJyYWlucG9vbFAyNTZyMV9UXzhfWVtdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhGMSwgMHgyRiwgMHhGOCwgMHgzRiwgMHhFQywgMHg1NSwgMHg5OSwgMHg1NyksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDQxLCAweEE3LCAweDI5LCAweDkwLCAweDQzLCAweDgxLCAweDMxLCAweDRDKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QzMsIDB4MTgsIDB4NDQsIDB4NTAsIDB4NUQsIDB4NzYsIDB4Q0IsIDB4REQpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhGMCwgMHhDNSwgMHg1QiwgMHg5QSwgMHgwMywgMHhFNiwgMHgxNywgMHgzOSksCit9Oworc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgYnJhaW5wb29sUDI1NnIxX1RfOV9YW10gPSB7CisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDIxLCAweDg5LCAweEZDLCAweDU1LCAweDk0LCAweDkxLCAweDZBLCAweEEyKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NzQsIDB4NDYsIDB4MzUsIDB4RjIsIDB4M0EsIDB4NDIsIDB4MDgsIDB4MkYpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhEMywgMHhEMiwgMHg3NiwgMHg0OSwgMHg0MiwgMHg4NywgMHhEMywgMHg3RiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDkwLCAweEVBLCAweEEwLCAweDUyLCAweEYxLCAweDZBLCAweDMwLCAweDU3KSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBicmFpbnBvb2xQMjU2cjFfVF85X1lbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MDAsIDB4QjIsIDB4NTcsIDB4QTMsIDB4OEEsIDB4NEQsIDB4MUIsIDB4M0MpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhGQywgMHhBMywgMHg5OSwgMHg5NCwgMHhCNSwgMHgzRCwgMHg2NCwgMHgwOSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDM1LCAweEMzLCAweEQ3LCAweDUzLCAweEY2LCAweDQ5LCAweDFDLCAweDYwKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MjcsIDB4MjMsIDB4NDEsIDB4NEQsIDB4RkIsIDB4N0EsIDB4NUMsIDB4NTMpLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IGJyYWlucG9vbFAyNTZyMV9UXzEwX1hbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4Q0EsIDB4QjgsIDB4MTUsIDB4NjUsIDB4NUMsIDB4ODUsIDB4OTQsIDB4RDcpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhBQywgMHgzNywgMHhDNywgMHhGOCwgMHg3RSwgMHhBRSwgMHg2QywgMHgxMCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDUzLCAweEQ4LCAweDExLCAweDU0LCAweDk4LCAweDQ0LCAweEUzLCAweEYxKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RTQsIDB4NEQsIDB4QTYsIDB4NEIsIDB4MjgsIDB4RjIsIDB4NTcsIDB4OUUpLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IGJyYWlucG9vbFAyNTZyMV9UXzEwX1lbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RjYsIDB4RDAsIDB4RUIsIDB4MUUsIDB4QUEsIDB4MzAsIDB4RDMsIDB4NkEpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg1OCwgMHg5QiwgMHg0RCwgMHhBNywgMHg3MywgMHg2RSwgMHhCNiwgMHg0NSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDVELCAweDQ3LCAweEY2LCAweEVELCAweDM3LCAweEVGLCAweDcxLCAweDREKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QTgsIDB4QjUsIDB4NDksIDB4NjEsIDB4NUUsIDB4NDUsIDB4RjYsIDB4NEEpLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IGJyYWlucG9vbFAyNTZyMV9UXzExX1hbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RUYsIDB4MEUsIDB4QjMsIDB4ODQsIDB4M0EsIDB4NjMsIDB4NzIsIDB4ODQpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg2RCwgMHg1MywgMHg1QywgMHhBNywgMHhDNiwgMHgyRSwgMHhBQiwgMHg5RSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEVCLCAweDBGLCAweDhGLCAweDg3LCAweDUwLCAweDI4LCAweEI0LCAweEFFKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NUMsIDB4OTgsIDB4NEEsIDB4OTgsIDB4MzEsIDB4ODYsIDB4Q0EsIDB4NTEpLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IGJyYWlucG9vbFAyNTZyMV9UXzExX1lbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QkUsIDB4QzksIDB4RTIsIDB4RkQsIDB4NUQsIDB4MUYsIDB4RTgsIDB4QzIpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhENSwgMHg5MCwgMHg5MSwgMHhDNCwgMHg4NCwgMHhGMCwgMHhCQSwgMHhDNSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDZDLCAweDVBLCAweEIzLCAweDRFLCAweEZCLCAweEUwLCAweDU3LCAweEU4KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NkIsIDB4MEIsIDB4OTAsIDB4QTYsIDB4RkQsIDB4OUQsIDB4OEUsIDB4MDIpLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IGJyYWlucG9vbFAyNTZyMV9UXzEyX1hbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RjgsIDB4NDEsIDB4OEYsIDB4MzEsIDB4RkEsIDB4NUEsIDB4RjYsIDB4MzMpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhBQywgMHhFOSwgMHhFMywgMHhGNiwgMHhFMCwgMHg0QSwgMHhFNywgMHhEMiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDg0LCAweDRFLCAweENELCAweEEyLCAweDIyLCAweDE0LCAweEQ0LCAweDEyKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4N0MsIDB4RUQsIDB4MjEsIDB4QjcsIDB4MEYsIDB4NTMsIDB4MTAsIDB4MTcpLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IGJyYWlucG9vbFAyNTZyMV9UXzEyX1lbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MDUsIDB4MDYsIDB4MjQsIDB4MkMsIDB4NEUsIDB4RDEsIDB4MUUsIDB4OUYpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhENywgMHgzRiwgMHhDMSwgMHg5RiwgMHhBQiwgMHhGMCwgMHgzNywgMHg5NSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDAzLCAweDVFLCAweDEyLCAweENFLCAweDgzLCAweDFCLCAweDJBLCAweDE4KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NjEsIDB4NjUsIDB4Q0YsIDB4RTgsIDB4NUMsIDB4QTUsIDB4QTIsIDB4NzApLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IGJyYWlucG9vbFAyNTZyMV9UXzEzX1hbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QjgsIDB4ODYsIDB4NzYsIDB4M0EsIDB4OTQsIDB4RjYsIDB4MUQsIDB4QzEpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgxRCwgMHhEQSwgMHhDOSwgMHhBNiwgMHgyOSwgMHg5MywgMHgxNSwgMHgxMCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDZELCAweDYxLCAweDZBLCAweDdELCAweEM3LCAweEE5LCAweEYzLCAweDc2KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NEEsIDB4MDMsIDB4NzEsIDB4QTIsIDB4MTUsIDB4Q0UsIDB4NTAsIDB4NzIpLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IGJyYWlucG9vbFAyNTZyMV9UXzEzX1lbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QjYsIDB4RDAsIDB4QTgsIDB4MUUsIDB4OTEsIDB4QzQsIDB4NEYsIDB4MjQpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgyRCwgMHg0QiwgMHg3RSwgMHhENywgMHg3MSwgMHg1OCwgMHg3RSwgMHgxRSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDkzLCAweDQ1LCAweEFGLCAweDJBLCAweDE4LCAweDkzLCAweDk1LCAweDNCKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MUIsIDB4OEYsIDB4QzcsIDB4RkEsIDB4NEMsIDB4N0EsIDB4ODYsIDB4NTQpLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IGJyYWlucG9vbFAyNTZyMV9UXzE0X1hbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4OTcsIDB4QUYsIDB4NjgsIDB4M0EsIDB4MjMsIDB4QzEsIDB4MkUsIDB4QkYpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg4OSwgMHg1MCwgMHgxMSwgMHg2NywgMHgzOSwgMHhCOSwgMHhBRiwgMHg0OCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDE5LCAweDg2LCAweEFBLCAweDFFLCAweDg4LCAweDIxLCAweDI5LCAweDhCKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4Q0QsIDB4MjgsIDB4QTQsIDB4OUQsIDB4ODksIDB4QTksIDB4OUEsIDB4MTApLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IGJyYWlucG9vbFAyNTZyMV9UXzE0X1lbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4OTEsIDB4QkEsIDB4MDQsIDB4NjcsIDB4QjcsIDB4MDEsIDB4NDAsIDB4MzgpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgwOCwgMHhFOSwgMHgwOSwgMHhBMywgMHhDQSwgMHhBNiwgMHgzNywgMHhGNiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDZDLCAweDk3LCAweEE4LCAweEI2LCAweDNDLCAweEVFLCAweDkwLCAweDNEKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4REMsIDB4RUQsIDB4QzQsIDB4RjcsIDB4QzMsIDB4OTUsIDB4RUMsIDB4ODUpLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IGJyYWlucG9vbFAyNTZyMV9UXzE1X1hbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RjUsIDB4ODQsIDB4QkQsIDB4RUIsIDB4RDUsIDB4NjQsIDB4QkIsIDB4OUQpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhEQiwgMHg5QiwgMHhFMiwgMHgyOCwgMHg1MCwgMHhDMiwgMHg3MiwgMHg0MCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDM5LCAweEYyLCAweDc0LCAweEQxLCAweDI2LCAweEJGLCAweDMyLCAweDY4KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MzYsIDB4Q0IsIDB4QUYsIDB4NzIsIDB4REIsIDB4NkQsIDB4MzAsIDB4OTgpLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IGJyYWlucG9vbFAyNTZyMV9UXzE1X1lbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QjMsIDB4NTAsIDB4ODUsIDB4RjQsIDB4MkIsIDB4NDgsIDB4QzEsIDB4QUQpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhDMCwgMHgyOCwgMHhCQiwgMHgxMSwgMHhCQSwgMHg1QiwgMHgyMiwgMHg2QyksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEFELCAweEExLCAweEU1LCAweDVDLCAweEM5LCAweDFELCAweDQ0LCAweDQ1KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RDQsIDB4RTgsIDB4RTYsIDB4NkYsIDB4QkIsIDB4QzEsIDB4ODEsIDB4N0YpLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX2VjcF9wb2ludCBicmFpbnBvb2xQMjU2cjFfVFsxNl0gPSB7CisgICAgRUNQX1BPSU5UX0lOSVRfWFlfWjEoYnJhaW5wb29sUDI1NnIxX1RfMF9YLCBicmFpbnBvb2xQMjU2cjFfVF8wX1kpLAorICAgIEVDUF9QT0lOVF9JTklUX1hZX1owKGJyYWlucG9vbFAyNTZyMV9UXzFfWCwgYnJhaW5wb29sUDI1NnIxX1RfMV9ZKSwKKyAgICBFQ1BfUE9JTlRfSU5JVF9YWV9aMChicmFpbnBvb2xQMjU2cjFfVF8yX1gsIGJyYWlucG9vbFAyNTZyMV9UXzJfWSksCisgICAgRUNQX1BPSU5UX0lOSVRfWFlfWjAoYnJhaW5wb29sUDI1NnIxX1RfM19YLCBicmFpbnBvb2xQMjU2cjFfVF8zX1kpLAorICAgIEVDUF9QT0lOVF9JTklUX1hZX1owKGJyYWlucG9vbFAyNTZyMV9UXzRfWCwgYnJhaW5wb29sUDI1NnIxX1RfNF9ZKSwKKyAgICBFQ1BfUE9JTlRfSU5JVF9YWV9aMChicmFpbnBvb2xQMjU2cjFfVF81X1gsIGJyYWlucG9vbFAyNTZyMV9UXzVfWSksCisgICAgRUNQX1BPSU5UX0lOSVRfWFlfWjAoYnJhaW5wb29sUDI1NnIxX1RfNl9YLCBicmFpbnBvb2xQMjU2cjFfVF82X1kpLAorICAgIEVDUF9QT0lOVF9JTklUX1hZX1owKGJyYWlucG9vbFAyNTZyMV9UXzdfWCwgYnJhaW5wb29sUDI1NnIxX1RfN19ZKSwKKyAgICBFQ1BfUE9JTlRfSU5JVF9YWV9aMChicmFpbnBvb2xQMjU2cjFfVF84X1gsIGJyYWlucG9vbFAyNTZyMV9UXzhfWSksCisgICAgRUNQX1BPSU5UX0lOSVRfWFlfWjAoYnJhaW5wb29sUDI1NnIxX1RfOV9YLCBicmFpbnBvb2xQMjU2cjFfVF85X1kpLAorICAgIEVDUF9QT0lOVF9JTklUX1hZX1owKGJyYWlucG9vbFAyNTZyMV9UXzEwX1gsIGJyYWlucG9vbFAyNTZyMV9UXzEwX1kpLAorICAgIEVDUF9QT0lOVF9JTklUX1hZX1owKGJyYWlucG9vbFAyNTZyMV9UXzExX1gsIGJyYWlucG9vbFAyNTZyMV9UXzExX1kpLAorICAgIEVDUF9QT0lOVF9JTklUX1hZX1owKGJyYWlucG9vbFAyNTZyMV9UXzEyX1gsIGJyYWlucG9vbFAyNTZyMV9UXzEyX1kpLAorICAgIEVDUF9QT0lOVF9JTklUX1hZX1owKGJyYWlucG9vbFAyNTZyMV9UXzEzX1gsIGJyYWlucG9vbFAyNTZyMV9UXzEzX1kpLAorICAgIEVDUF9QT0lOVF9JTklUX1hZX1owKGJyYWlucG9vbFAyNTZyMV9UXzE0X1gsIGJyYWlucG9vbFAyNTZyMV9UXzE0X1kpLAorICAgIEVDUF9QT0lOVF9JTklUX1hZX1owKGJyYWlucG9vbFAyNTZyMV9UXzE1X1gsIGJyYWlucG9vbFAyNTZyMV9UXzE1X1kpLAorfTsKKyNlbHNlCisjZGVmaW5lIGJyYWlucG9vbFAyNTZyMV9UIE5VTEwKKyNlbmRpZgorCisjZW5kaWYgLyogTUJFRFRMU19FQ1BfRFBfQlAyNTZSMV9FTkFCTEVEICovCisKKy8qCisgKiBEb21haW4gcGFyYW1ldGVycyBmb3IgYnJhaW5wb29sUDM4NHIxIChSRkMgNTYzOSAzLjYpCisgKi8KKyNpZiBkZWZpbmVkKE1CRURUTFNfRUNQX0RQX0JQMzg0UjFfRU5BQkxFRCkKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IGJyYWlucG9vbFAzODRyMV9wW10gPSB7CisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDUzLCAweEVDLCAweDA3LCAweDMxLCAweDEzLCAweDAwLCAweDQ3LCAweDg3KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NzEsIDB4MUEsIDB4MUQsIDB4OTAsIDB4MjksIDB4QTcsIDB4RDMsIDB4QUMpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgyMywgMHgxMSwgMHhCNywgMHg3RiwgMHgxOSwgMHhEQSwgMHhCMSwgMHgxMiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEI0LCAweDU2LCAweDU0LCAweEVELCAweDA5LCAweDcxLCAweDJGLCAweDE1KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4REYsIDB4NDEsIDB4RTYsIDB4NTAsIDB4N0UsIDB4NkYsIDB4NUQsIDB4MEYpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgyOCwgMHg2RCwgMHgzOCwgMHhBMywgMHg4MiwgMHgxRSwgMHhCOSwgMHg4QyksCit9Oworc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgYnJhaW5wb29sUDM4NHIxX2FbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MjYsIDB4MjgsIDB4Q0UsIDB4MjIsIDB4REQsIDB4QzcsIDB4QTgsIDB4MDQpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhFQiwgMHhENCwgMHgzQSwgMHg1MCwgMHg0QSwgMHg4MSwgMHhBNSwgMHg4QSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDBGLCAweEY5LCAweDkxLCAweEJBLCAweEVGLCAweDY1LCAweDkxLCAweDEzKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4ODcsIDB4MjcsIDB4QjIsIDB4NEYsIDB4OEUsIDB4QTIsIDB4QkUsIDB4QzIpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhBMCwgMHhBRiwgMHgwNSwgMHhDRSwgMHgwQSwgMHgwOCwgMHg3MiwgMHgzQyksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDBDLCAweDE1LCAweDhDLCAweDNELCAweEM2LCAweDgyLCAweEMzLCAweDdCKSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBicmFpbnBvb2xQMzg0cjFfYltdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgxMSwgMHg0QywgMHg1MCwgMHhGQSwgMHg5NiwgMHg4NiwgMHhCNywgMHgzQSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDk0LCAweEM5LCAweERCLCAweDk1LCAweDAyLCAweDM5LCAweEI0LCAweDdDKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RDUsIDB4NjIsIDB4RUIsIDB4M0UsIDB4QTUsIDB4MEUsIDB4ODgsIDB4MkUpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhBNiwgMHhEMiwgMHhEQywgMHgwNywgMHhFMSwgMHg3RCwgMHhCNywgMHgyRiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDdDLCAweDQ0LCAweEYwLCAweDE2LCAweDU0LCAweEI1LCAweDM5LCAweDhCKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MjYsIDB4MjgsIDB4Q0UsIDB4MjIsIDB4REQsIDB4QzcsIDB4QTgsIDB4MDQpLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IGJyYWlucG9vbFAzODRyMV9neFtdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgxRSwgMHhBRiwgMHhENCwgMHg0NywgMHhFMiwgMHhCMiwgMHg4NywgMHhFRiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEFBLCAweDQ2LCAweEQ2LCAweDM2LCAweDM0LCAweEUwLCAweDI2LCAweEU4KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RTgsIDB4MTAsIDB4QkQsIDB4MEMsIDB4RkUsIDB4Q0EsIDB4N0YsIDB4REIpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhFMywgMHg0RiwgMHhGMSwgMHg3RSwgMHhFNywgMHhBMywgMHg0NywgMHg4OCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDZCLCAweDNGLCAweEMxLCAweEI3LCAweDgxLCAweDNBLCAweEE2LCAweEEyKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RkYsIDB4NDUsIDB4Q0YsIDB4NjgsIDB4RjAsIDB4NjQsIDB4MUMsIDB4MUQpLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IGJyYWlucG9vbFAzODRyMV9neVtdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgxNSwgMHg1MywgMHgzQywgMHgyNiwgMHg0MSwgMHgwMywgMHg4MiwgMHg0MiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDExLCAweDgxLCAweDkxLCAweDc3LCAweDIxLCAweDQ2LCAweDQ2LCAweDBFKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MjgsIDB4MjksIDB4OTEsIDB4RjksIDB4NEYsIDB4MDUsIDB4OUMsIDB4RTEpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg2NCwgMHg1OCwgMHhFQywgMHhGRSwgMHgyOSwgMHgwQiwgMHhCNywgMHg2MiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDUyLCAweEQ1LCAweENGLCAweDk1LCAweDhFLCAweEVCLCAweEIxLCAweDVDKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QTQsIDB4QzIsIDB4RjksIDB4MjAsIDB4NzUsIDB4MUQsIDB4QkUsIDB4OEEpLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IGJyYWlucG9vbFAzODRyMV9uW10gPSB7CisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDY1LCAweDY1LCAweDA0LCAweEU5LCAweDAyLCAweDMyLCAweDg4LCAweDNCKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MTAsIDB4QzMsIDB4N0YsIDB4NkIsIDB4QUYsIDB4QjYsIDB4M0EsIDB4Q0YpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhBNywgMHgyNSwgMHgwNCwgMHhBQywgMHg2QywgMHg2RSwgMHgxNiwgMHgxRiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEIzLCAweDU2LCAweDU0LCAweEVELCAweDA5LCAweDcxLCAweDJGLCAweDE1KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4REYsIDB4NDEsIDB4RTYsIDB4NTAsIDB4N0UsIDB4NkYsIDB4NUQsIDB4MEYpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgyOCwgMHg2RCwgMHgzOCwgMHhBMywgMHg4MiwgMHgxRSwgMHhCOSwgMHg4QyksCit9OworCisjaWYgTUJFRFRMU19FQ1BfRklYRURfUE9JTlRfT1BUSU0gPT0gMQorc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgYnJhaW5wb29sUDM4NHIxX1RfMF9YW10gPSB7CisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDFFLCAweEFGLCAweEQ0LCAweDQ3LCAweEUyLCAweEIyLCAweDg3LCAweEVGKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QUEsIDB4NDYsIDB4RDYsIDB4MzYsIDB4MzQsIDB4RTAsIDB4MjYsIDB4RTgpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhFOCwgMHgxMCwgMHhCRCwgMHgwQywgMHhGRSwgMHhDQSwgMHg3RiwgMHhEQiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEUzLCAweDRGLCAweEYxLCAweDdFLCAweEU3LCAweEEzLCAweDQ3LCAweDg4KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NkIsIDB4M0YsIDB4QzEsIDB4QjcsIDB4ODEsIDB4M0EsIDB4QTYsIDB4QTIpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhGRiwgMHg0NSwgMHhDRiwgMHg2OCwgMHhGMCwgMHg2NCwgMHgxQywgMHgxRCksCit9Oworc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgYnJhaW5wb29sUDM4NHIxX1RfMF9ZW10gPSB7CisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDE1LCAweDUzLCAweDNDLCAweDI2LCAweDQxLCAweDAzLCAweDgyLCAweDQyKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MTEsIDB4ODEsIDB4OTEsIDB4NzcsIDB4MjEsIDB4NDYsIDB4NDYsIDB4MEUpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgyOCwgMHgyOSwgMHg5MSwgMHhGOSwgMHg0RiwgMHgwNSwgMHg5QywgMHhFMSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDY0LCAweDU4LCAweEVDLCAweEZFLCAweDI5LCAweDBCLCAweEI3LCAweDYyKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NTIsIDB4RDUsIDB4Q0YsIDB4OTUsIDB4OEUsIDB4RUIsIDB4QjEsIDB4NUMpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhBNCwgMHhDMiwgMHhGOSwgMHgyMCwgMHg3NSwgMHgxRCwgMHhCRSwgMHg4QSksCit9Oworc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgYnJhaW5wb29sUDM4NHIxX1RfMV9YW10gPSB7CisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDkzLCAweEQ4LCAweDhBLCAweDU0LCAweDQxLCAweEQ2LCAweDZCLCAweDFEKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RTIsIDB4M0IsIDB4RjEsIDB4MjIsIDB4RkQsIDB4MkQsIDB4NEIsIDB4MDMpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgwMSwgMHg1NSwgMHhFMywgMHgzMywgMHhGMCwgMHg3MywgMHg1MiwgMHg1QSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEMxLCAweDNGLCAweDMwLCAweDI2LCAweENBLCAweDdGLCAweDUyLCAweEEzKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RDMsIDB4NkUsIDB4MTcsIDB4OUIsIDB4RDUsIDB4MkEsIDB4NEEsIDB4MzEpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg4NiwgMHhEQSwgMHg2QiwgMHhFNSwgMHgwMywgMHgwNywgMHgxRCwgMHgyRSksCit9Oworc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgYnJhaW5wb29sUDM4NHIxX1RfMV9ZW10gPSB7CisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDUxLCAweDdBLCAweEFGLCAweDk4LCAweEUzLCAweEE0LCAweEY2LCAweDE5KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RUMsIDB4N0QsIDB4RkUsIDB4NTEsIDB4NDAsIDB4M0IsIDB4NDcsIDB4RDIpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhGQywgMHg4OCwgMHhFQywgMHhDNCwgMHhFMiwgMHg4RiwgMHhDQiwgMHhBNCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDMwLCAweEUyLCAweDg4LCAweDJELCAweDRFLCAweDUwLCAweEVCLCAweDlBKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MTMsIDB4NTQsIDB4OTQsIDB4NUUsIDB4RjQsIDB4N0YsIDB4M0EsIDB4MDQpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhDRCwgMHgwNywgMHgxQywgMHhFMSwgMHhCRCwgMHgwRiwgMHhGOCwgMHg2MyksCit9Oworc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgYnJhaW5wb29sUDM4NHIxX1RfMl9YW10gPSB7CisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDk0LCAweDkyLCAweDI4LCAweDJFLCAweDMyLCAweDA0LCAweEIxLCAweDREKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MjUsIDB4ODIsIDB4NDQsIDB4NDMsIDB4NzYsIDB4MEQsIDB4NTUsIDB4QkYpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg1QiwgMHhFMywgMHhGRiwgMHg4OSwgMHg0NiwgMHhERSwgMHg0RSwgMHhGRSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDVCLCAweDIyLCAweEJCLCAweDY3LCAweDFBLCAweDgxLCAweEVFLCAweDI3KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QzgsIDB4NTQsIDB4RTIsIDB4N0EsIDB4QUUsIDB4REEsIDB4MkMsIDB4RDApLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg3NCwgMHg5QSwgMHg5MCwgMHhBQSwgMHg2RSwgMHg4QiwgMHhDQywgMHg1RiksCit9Oworc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgYnJhaW5wb29sUDM4NHIxX1RfMl9ZW10gPSB7CisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDE2LCAweDQwLCAweEFDLCAweEVELCAweDdELCAweDM3LCAweDg3LCAweEFDKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4OTgsIDB4RjgsIDB4QjEsIDB4ODAsIDB4NEMsIDB4OEMsIDB4MDQsIDB4NDIpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhDMiwgMHg5OCwgMHgyQywgMHhBRCwgMHgzMCwgMHg2OSwgMHgzNSwgMHhDMCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDMyLCAweDJFLCAweDAwLCAweDJGLCAweDQ0LCAweDhDLCAweEYwLCAweEMwKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MTYsIDB4NTgsIDB4MDcsIDB4RDcsIDB4Q0QsIDB4NjAsIDB4QTEsIDB4NUIpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhBRiwgMHhGQiwgMHg3QiwgMHgwMywgMHgwNSwgMHg1RSwgMHg3OSwgMHg3MyksCit9Oworc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgYnJhaW5wb29sUDM4NHIxX1RfM19YW10gPSB7CisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEM4LCAweDE3LCAweENFLCAweDM4LCAweDRCLCAweDVFLCAweDVCLCAweEM4KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NjAsIDB4MEUsIDB4MEEsIDB4NjEsIDB4OUQsIDB4N0MsIDB4NjIsIDB4MDgpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgyNSwgMHhGMCwgMHg5OCwgMHg3MSwgMHg3RiwgMHgxNywgMHgyNiwgMHhENyksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDgzLCAweEQzLCAweEZBLCAweDNDLCAweEYwLCAweDcwLCAweDA3LCAweDgyKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MjksIDB4NDcsIDB4NUMsIDB4MDksIDB4NDMsIDB4QjcsIDB4NjUsIDB4MTUpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgwRSwgMHhBOSwgMHhBNywgMHgzRSwgMHhGQSwgMHhGMywgMHhFQywgMHgyMiksCit9Oworc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgYnJhaW5wb29sUDM4NHIxX1RfM19ZW10gPSB7CisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweERBLCAweDc4LCAweDIyLCAweDJCLCAweDU4LCAweDcxLCAweEZBLCAweEFBKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MDAsIDB4MzAsIDB4Q0UsIDB4NkEsIDB4QjMsIDB4QjAsIDB4NEYsIDB4ODMpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhDRiwgMHg5NSwgMHgyMCwgMHhBOSwgMHgyMywgMHhDMiwgMHg2NSwgMHhFNyksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDU1LCAweENGLCAweDAzLCAweDVCLCAweDhBLCAweDgwLCAweDQ0LCAweEJCKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NUMsIDB4RjgsIDB4OTEsIDB4RjcsIDB4RDUsIDB4RUQsIDB4RUEsIDB4ODEpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg0MCwgMHg1QiwgMHgxNiwgMHgxMCwgMHgyNSwgMHhBQywgMHgyQSwgMHgxNyksCit9Oworc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgYnJhaW5wb29sUDM4NHIxX1RfNF9YW10gPSB7CisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEYyLCAweEVDLCAweERDLCAweEM0LCAweDdCLCAweDhDLCAweDZCLCAweEU5KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MkIsIDB4QkIsIDB4MUMsIDB4RDMsIDB4NUEsIDB4RUUsIDB4RDksIDB4OTcpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg2NCwgMHg1RCwgMHgzMCwgMHg1RSwgMHhGNywgMHhCMiwgMHg0MSwgMHg5RCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEVELCAweENFLCAweDBGLCAweDFBLCAweEM2LCAweDQxLCAweDY0LCAweDYyKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RjIsIDB4MTgsIDB4RTEsIDB4RTMsIDB4ODIsIDB4MTUsIDB4NjYsIDB4NEIpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg5QiwgMHhFMiwgMHgyNCwgMHgwNCwgMHg3MiwgMHgzOSwgMHhBMCwgMHg3QyksCit9Oworc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgYnJhaW5wb29sUDM4NHIxX1RfNF9ZW10gPSB7CisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDJCLCAweDUxLCAweEEyLCAweDU4LCAweDg4LCAweDYyLCAweEUxLCAweDAyKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NTgsIDB4RDIsIDB4NjUsIDB4MTQsIDB4RTksIDB4NEMsIDB4ODIsIDB4MzApLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhEQywgMHhFMSwgMHhBQywgMHg4NywgMHhBRSwgMHgzMSwgMHgxQSwgMHg3QSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDg1LCAweDRGLCAweDk2LCAweDFFLCAweDg1LCAweDdBLCAweEMzLCAweDJCKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RjAsIDB4ODYsIDB4QkIsIDB4RjAsIDB4QzAsIDB4OUQsIDB4MDgsIDB4N0IpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhCRCwgMHg1MywgMHgwMywgMHgwOSwgMHg4MCwgMHg5MSwgMHhFRiwgMHg2OCksCit9Oworc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgYnJhaW5wb29sUDM4NHIxX1RfNV9YW10gPSB7CisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDJELCAweEQ3LCAweEFGLCAweDZGLCAweDY5LCAweDdCLCAweDg4LCAweEExKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QUYsIDB4MTMsIDB4RTQsIDB4MzAsIDB4QTIsIDB4NDcsIDB4QjUsIDB4QzEpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgwRiwgMHhEMiwgMHhDMCwgMHhERCwgMHg4QSwgMHgxQywgMHgzQywgMHhGMiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEY5LCAweDhDLCAweEIzLCAweDRDLCAweEJBLCAweDhCLCAweDZELCAweENGKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NkIsIDB4QzcsIDB4QTEsIDB4QTgsIDB4NkUsIDB4M0MsIDB4NEYsIDB4RjEpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg5NCwgMHg0QSwgMHg5NywgMHhDOCwgMHgwMywgMHg2RiwgMHgwMSwgMHg4MiksCit9Oworc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgYnJhaW5wb29sUDM4NHIxX1RfNV9ZW10gPSB7CisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDc0LCAweDE4LCAweDEyLCAweEE5LCAweDM5LCAweEQ1LCAweDIyLCAweDI2KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NDcsIDB4QTcsIDB4QzAsIDB4QkQsIDB4OUQsIDB4OEQsIDB4NzgsIDB4MzgpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhBOSwgMHhCMywgMHhEMCwgMHg3RiwgMHhERiwgMHhEMCwgMHgzMCwgMHhERSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDM3LCAweDI1LCAweDczLCAweDk2LCAweEVDLCAweEE4LCAweDFELCAweDdDKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4OTEsIDB4RDEsIDB4NjUsIDB4NjYsIDB4REMsIDB4RDksIDB4Q0YsIDB4REYpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg5NSwgMHhFRCwgMHg3QiwgMHgzNywgMHhBRCwgMHhFMiwgMHhCRSwgMHgyRCksCit9Oworc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgYnJhaW5wb29sUDM4NHIxX1RfNl9YW10gPSB7CisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDUwLCAweDc5LCAweDQyLCAweDZBLCAweDA3LCAweDY2LCAweEIxLCAweEJEKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NDUsIDB4NTMsIDB4NjIsIDB4NjUsIDB4OTIsIDB4MDksIDB4NEMsIDB4QTEpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgwNiwgMHhBRiwgMHhDMywgMHgwMywgMHhGNiwgMHhGNCwgMHgyRCwgMHg5QiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEU4LCAweENBLCAweDQxLCAweEQ5LCAweEEyLCAweDY5LCAweDlCLCAweEM5KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NEIsIDB4QjIsIDB4QTYsIDB4OEQsIDB4RTEsIDB4QUEsIDB4NjEsIDB4NzYpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgxMSwgMHhCQSwgMHg0RCwgMHgxMiwgMHhCNiwgMHhCRSwgMHhGMywgMHg3RSksCit9Oworc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgYnJhaW5wb29sUDM4NHIxX1RfNl9ZW10gPSB7CisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweENBLCAweEQ5LCAweDkyLCAweDIyLCAweDA3LCAweENFLCAweEM5LCAweDI2KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NjIsIDB4QTEsIDB4N0MsIDB4OTEsIDB4REIsIDB4MzIsIDB4RjcsIDB4RTUpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg2RCwgMHg0OSwgMHg0QiwgMHg2RCwgMHhGQiwgMHhEOSwgMHg3MCwgMHgzQiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDFDLCAweEZCLCAweDRFLCAweDRDLCAweDVFLCAweDY2LCAweDgxLCAweDFEKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QTUsIDB4QjMsIDB4RTEsIDB4MDAsIDB4QjcsIDB4RDksIDB4Q0MsIDB4NTgpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhGMywgMHgzNiwgMHg4QiwgMHhDNCwgMHgzOSwgMHgyMCwgMHhGRCwgMHgzMCksCit9Oworc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgYnJhaW5wb29sUDM4NHIxX1RfN19YW10gPSB7CisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDk0LCAweDFGLCAweDYwLCAweDAzLCAweEJCLCAweEQ3LCAweDYwLCAweDU3KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NzIsIDB4M0MsIDB4NjIsIDB4REQsIDB4NzEsIDB4OTUsIDB4RTksIDB4NjEpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhCMCwgMHg1QiwgMHg3QSwgMHg1RiwgMHg2OCwgMHg4MSwgMHhDNSwgMHg5MCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDFFLCAweEFGLCAweEI1LCAweEI5LCAweDk4LCAweDQyLCAweDI4LCAweEE1KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MEMsIDB4MjksIDB4OEUsIDB4MTEsIDB4NDksIDB4QjQsIDB4RDcsIDB4MjApLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg5QiwgMHgzRSwgMHhEMiwgMHgzMCwgMHhBMSwgMHhCQSwgMHhDQSwgMHgwMyksCit9Oworc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgYnJhaW5wb29sUDM4NHIxX1RfN19ZW10gPSB7CisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDI5LCAweDM3LCAweDY0LCAweDQ0LCAweDJGLCAweDAzLCAweEU1LCAweDQxKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NEEsIDB4NDIsIDB4QkMsIDB4RkYsIDB4QTIsIDB4MUEsIDB4NUYsIDB4MDYpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgxRCwgMHgwNCwgMHhBQiwgMHgwNCwgMHhFMCwgMHgyNCwgMHhBRCwgMHgyQSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDNELCAweDQ1LCAweDE3LCAweDY3LCAweDFGLCAweDNFLCAweDUzLCAweEY4KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RUQsIDB4MEYsIDB4QjMsIDB4MUIsIDB4NTcsIDB4NTQsIDB4QzIsIDB4MDMpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg1OSwgMHhEMywgMHhGOCwgMHhDNCwgMHgxQiwgMHg5QiwgMHhGQSwgMHgzMCksCit9Oworc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgYnJhaW5wb29sUDM4NHIxX1RfOF9YW10gPSB7CisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDM3LCAweDkwLCAweEZELCAweEZCLCAweENBLCAweDQ5LCAweDM4LCAweDRFKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QzMsIDB4Q0YsIDB4QzYsIDB4REQsIDB4RjAsIDB4RkYsIDB4OEMsIDB4MTEpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhENywgMHg2OSwgMHg5RCwgMHhCRCwgMHg1RiwgMHgzMywgMHhFOSwgMHhCNCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDQ3LCAweDE5LCAweDgyLCAweDNELCAweEFDLCAweDFDLCAweDQwLCAweDIzKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NDAsIDB4QzcsIDB4MDIsIDB4NDYsIDB4MTQsIDB4NzcsIDB4MDAsIDB4QkUpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhDOSwgMHgwNSwgMHhGMiwgMHg3NywgMHgzQSwgMHg2NiwgMHg1QywgMHgzOSksCit9Oworc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgYnJhaW5wb29sUDM4NHIxX1RfOF9ZW10gPSB7CisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDFFLCAweEU2LCAweDE3LCAweERFLCAweEIyLCAweEExLCAweEU1LCAweEI4KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QzcsIDB4NzEsIDB4RUMsIDB4OUQsIDB4RDgsIDB4RjUsIDB4RDQsIDB4NjYpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhBQSwgMHhDNiwgMHg0MiwgMHg1RSwgMHhFNywgMHgxOCwgMHhCQSwgMHhEMCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEM1LCAweDIxLCAweDY4LCAweDVBLCAweDI2LCAweEZCLCAweEQ3LCAweDE3KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MjYsIDB4MDAsIDB4NUMsIDB4QkEsIDB4OEEsIDB4MzQsIDB4RUMsIDB4NzUpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhDMywgMHg5QywgMHgzQywgMHhBRiwgMHg1MywgMHhFOCwgMHg2NSwgMHgzNSksCit9Oworc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgYnJhaW5wb29sUDM4NHIxX1RfOV9YW10gPSB7CisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEJFLCAweEVGLCAweDI4LCAweERDLCAweDY3LCAweDA1LCAweEM4LCAweERGKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MEIsIDB4NzgsIDB4QzMsIDB4ODUsIDB4NDksIDB4QTAsIDB4QkMsIDB4MEYpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgxMCwgMHgzRSwgMHgyRCwgMHhBMCwgMHhDRiwgMHhENCwgMHg3QSwgMHhGNSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDM2LCAweDkzLCAweEZFLCAweDYwLCAweEIzLCAweDZFLCAweDk5LCAweEUyKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NjIsIDB4QUQsIDB4MDQsIDB4RTcsIDB4NDksIDB4QUYsIDB4NUUsIDB4RTMpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg1NCwgMHg3QSwgMHhFRCwgMHhBNiwgMHg5RSwgMHgxOCwgMHgwOSwgMHgzMSksCit9Oworc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgYnJhaW5wb29sUDM4NHIxX1RfOV9ZW10gPSB7CisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEU4LCAweDA1LCAweDk0LCAweDQ0LCAweERDLCAweEI4LCAweDg1LCAweDk0KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MTQsIDB4QjcsIDB4MzcsIDB4QzIsIDB4NTAsIDB4NzUsIDB4MTUsIDB4REEpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhENiwgMHhDNiwgMHgwRiwgMHhCMiwgMHhBOSwgMHg5MSwgMHgzRSwgMHhFOCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEI5LCAweDgxLCAweEFELCAweDI1LCAweEExLCAweDI2LCAweDczLCAweDE1KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RkQsIDB4RjEsIDB4RDEsIDB4NjEsIDB4N0MsIDB4NzYsIDB4OEYsIDB4MTMpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgwNiwgMHhEQiwgMHg0QSwgMHhGRiwgMHgxNCwgMHhBNywgMHg0OCwgMHgwQiksCit9Oworc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgYnJhaW5wb29sUDM4NHIxX1RfMTBfWFtdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgyQSwgMHg3MywgMHhDNiwgMHhDMiwgMHhDQywgMHhGMSwgMHg1NywgMHgwNCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEI2LCAweEVELCAweDczLCAweDI3LCAweDcwLCAweDgyLCAweEI2LCAweDVFKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MEIsIDB4QkEsIDB4QUMsIDB4M0EsIDB4Q0YsIDB4RjQsIDB4RUEsIDB4QTYpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg5OSwgMHhENiwgMHhCMSwgMHg4RiwgMHgwRSwgMHgwOCwgMHgyQywgMHg1RSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDE3LCAweEUzLCAweDhGLCAweDJGLCAweDBFLCAweEExLCAweEYzLCAweDA3KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MUEsIDB4RjUsIDB4N0MsIDB4OUIsIDB4MjksIDB4MEEsIDB4RjYsIDB4MjgpLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IGJyYWlucG9vbFAzODRyMV9UXzEwX1lbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QkQsIDB4RUUsIDB4MTcsIDB4NDcsIDB4MzQsIDB4MTUsIDB4QTMsIDB4QUYpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhGQiwgMHhCRSwgMHg4OCwgMHg0OCwgMHhFNywgMHhBMiwgMHhCQiwgMHhERSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEM1LCAweEFELCAweERDLCAweDY1LCAweDYxLCAweDM3LCAweDBGLCAweEMxKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RkEsIDB4NjcsIDB4QUQsIDB4QTIsIDB4M0EsIDB4MUMsIDB4OTEsIDB4NzgpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg1NSwgMHgwNywgMHgwQywgMHgzQSwgMHg0MSwgMHg2RSwgMHgxMywgMHgyOCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDczLCAweEJELCAweDdFLCAweEVELCAweEFBLCAweDE0LCAweERELCAweDYxKSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBicmFpbnBvb2xQMzg0cjFfVF8xMV9YW10gPSB7CisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEMzLCAweERDLCAweDIwLCAweDAxLCAweDcyLCAweDExLCAweDQ4LCAweDU1KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MUUsIDB4QzQsIDB4N0IsIDB4RjgsIDB4NjIsIDB4M0QsIDB4RjAsIDB4OUYpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhFOCwgMHhDMiwgMHgzRCwgMHgyRSwgMHg1MiwgMHhBMywgMHg0QSwgMHg4OSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweENFLCAweEUyLCAweDUzLCAweDQ2LCAweDVFLCAweDIxLCAweEY4LCAweENFKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QzIsIDB4QzcsIDB4OEYsIDB4QTksIDB4MjYsIDB4NDIsIDB4MzIsIDB4M0EpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhGQiwgMHhBNiwgMHhBMCwgMHg4RCwgMHg0QiwgMHg5QSwgMHgxOSwgMHgwMyksCit9Oworc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgYnJhaW5wb29sUDM4NHIxX1RfMTFfWVtdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhFQSwgMHhBQiwgMHg2RCwgMHgxRSwgMHhGQiwgMHhFRSwgMHg2MCwgMHgwQyksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEI2LCAweDU2LCAweDNDLCAweEM1LCAweDVELCAweDEwLCAweDc5LCAweDFDKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MjUsIDB4QkMsIDB4NDEsIDB4OUYsIDB4NzEsIDB4RUYsIDB4MDIsIDB4RjkpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhBMiwgMHgzNiwgMHhDNCwgMHhEMCwgMHg4OCwgMHg5QiwgMHgzMiwgMHhGQyksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDlDLCAweEQ0LCAweDVELCAweDE3LCAweDM5LCAweEU2LCAweDIyLCAweDJDKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4N0IsIDB4MjYsIDB4MDEsIDB4Q0UsIDB4QkUsIDB4NEEsIDB4OUMsIDB4MjcpLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IGJyYWlucG9vbFAzODRyMV9UXzEyX1hbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RUYsIDB4NkQsIDB4MTEsIDB4Q0EsIDB4NkMsIDB4NUEsIDB4OTMsIDB4MEMpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhFQiwgMHg5NiwgMHgyNiwgMHhBRiwgMHgyRiwgMHhFNCwgMHgzMCwgMHg5OCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDM1LCAweEMxLCAweDRDLCAweEM2LCAweDMwLCAweDFGLCAweDVDLCAweDA0KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NTksIDB4QjMsIDB4RTgsIDB4RkMsIDB4MzUsIDB4RUIsIDB4NjMsIDB4NkMpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg5QywgMHgxRCwgMHhDQSwgMHhGQywgMHg1MCwgMHgzNiwgMHg0QiwgMHg5NiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEU0LCAweDBFLCAweDIzLCAweDVCLCAweEFGLCAweEVCLCAweDJELCAweDMxKSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBicmFpbnBvb2xQMzg0cjFfVF8xMl9ZW10gPSB7CisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEM2LCAweDg4LCAweEI2LCAweEQ3LCAweDc0LCAweDRBLCAweDIzLCAweEI2KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RUYsIDB4NjYsIDB4RTIsIDB4QkIsIDB4MjksIDB4QTYsIDB4NEYsIDB4NTUpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhFOSwgMHg2RiwgMHg3RSwgMHg2OCwgMHg2RSwgMHhBMCwgMHgxNCwgMHg5NCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDNCLCAweDczLCAweEQ0LCAweEU4LCAweEFCLCAweDVCLCAweEY2LCAweDBEKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NDYsIDB4RTAsIDB4M0MsIDB4MjQsIDB4MDAsIDB4OTUsIDB4RTksIDB4QUQpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgzNywgMHgwRCwgMHg0RiwgMHg4MSwgMHhEMCwgMHhGMiwgMHgzRiwgMHgwMCksCit9Oworc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgYnJhaW5wb29sUDM4NHIxX1RfMTNfWFtdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg5OSwgMHgxRCwgMHhDRCwgMHg3OCwgMHgzOSwgMHhDNCwgMHg2QiwgMHhEOSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDgxLCAweDQ1LCAweEM3LCAweEI4LCAweDJGLCAweEFBLCAweDVELCAweEUzKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MzMsIDB4OEMsIDB4NkUsIDB4QTMsIDB4MjQsIDB4QjIsIDB4REIsIDB4NEIpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg2OSwgMHgyRCwgMHhEOSwgMHhGMSwgMHhDNywgMHg5QiwgMHg4QSwgMHhBRiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDY3LCAweEUxLCAweDJDLCAweEI5LCAweDQwLCAweDM3LCAweDkxLCAweDc1KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4ODEsIDB4MkMsIDB4QjUsIDB4MjMsIDB4MDMsIDB4MkIsIDB4QUYsIDB4MkYpLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IGJyYWlucG9vbFAzODRyMV9UXzEzX1lbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MkYsIDB4OUQsIDB4NUEsIDB4MjAsIDB4MTAsIDB4QTksIDB4ODQsIDB4REEpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg2MSwgMHgzMCwgMHg4OSwgMHgyMCwgMHgxMywgMHhFOSwgMHhCMiwgMHhDQSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEI2LCAweDZFLCAweDUyLCAweEVCLCAweDAzLCAweDE4LCAweDFGLCAweEE2KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NkMsIDB4OUUsIDB4MUMsIDB4MzUsIDB4ODcsIDB4OTIsIDB4NjksIDB4QzcpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhBMSwgMHhDOSwgMHg4OCwgMHhBRiwgMHhDNiwgMHg2QywgMHg4MywgMHg3MiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweENCLCAweEQ1LCAweDdBLCAweDU0LCAweDM0LCAweDk5LCAweEI2LCAweDZGKSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBicmFpbnBvb2xQMzg0cjFfVF8xNF9YW10gPSB7CisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweERGLCAweEFELCAweDQ1LCAweDlCLCAweDRCLCAweDQxLCAweDRELCAweDUwKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MUIsIDB4NUQsIDB4QUIsIDB4N0YsIDB4MzUsIDB4MzQsIDB4RTksIDB4MjkpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg3MywgMHhCRSwgMHg3OCwgMHgzNCwgMHg0NCwgMHhGMywgMHg0QSwgMHg4NyksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEZCLCAweERFLCAweEUzLCAweEM0LCAweEVFLCAweDBCLCAweEY5LCAweEVCKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NUUsIDB4ODYsIDB4MTYsIDB4NDgsIDB4MzIsIDB4QjgsIDB4NzQsIDB4NDEpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhGMiwgMHhFRSwgMHg3QywgMHhCQSwgMHhCRCwgMHg4MSwgMHhFMywgMHg1NSksCit9Oworc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgYnJhaW5wb29sUDM4NHIxX1RfMTRfWVtdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhGOCwgMHg2QSwgMHhGQSwgMHg4NCwgMHhEQSwgMHhCOCwgMHhENSwgMHgxNCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEIyLCAweDlGLCAweDhBLCAweEQ1LCAweDFCLCAweDJFLCAweDFBLCAweDBCKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NUYsIDB4MEMsIDB4NjEsIDB4RTIsIDB4RkYsIDB4NUIsIDB4RTYsIDB4RDUpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgwRSwgMHg2MiwgMHhDMSwgMHg4NywgMHg1MywgMHgxQiwgMHg5MiwgMHhBMyksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDU0LCAweDkwLCAweDAwLCAweEQxLCAweDZBLCAweDBDLCAweDBFLCAweDI4KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4OEIsIDB4MkUsIDB4QjUsIDB4M0IsIDB4NDQsIDB4QjUsIDB4QTAsIDB4NzgpLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IGJyYWlucG9vbFAzODRyMV9UXzE1X1hbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QjgsIDB4NUQsIDB4MDIsIDB4NTgsIDB4QjUsIDB4QkUsIDB4NDUsIDB4MTQpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhBRCwgMHhFRiwgMHg4RSwgMHg5MCwgMHg0RCwgMHgyQSwgMHgzMiwgMHhBQyksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDQ4LCAweDk5LCAweDc1LCAweDVDLCAweDBBLCAweDMzLCAweDhGLCAweDM2KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QzgsIDB4NkMsIDB4OTUsIDB4RDQsIDB4MUYsIDB4RjMsIDB4RUIsIDB4REEpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhDMiwgMHhFNCwgMHg0QywgMHg5MSwgMHgyMCwgMHhGMywgMHgyNSwgMHhFQiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEYxLCAweDk1LCAweEVCLCAweDI5LCAweDZGLCAweDIwLCAweDM0LCAweDgxKSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBicmFpbnBvb2xQMzg0cjFfVF8xNV9ZW10gPSB7CisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDJELCAweDE1LCAweEU1LCAweDEzLCAweDdFLCAweDY0LCAweDhCLCAweEFEKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QTcsIDB4QkMsIDB4MEQsIDB4MTgsIDB4N0UsIDB4MzcsIDB4OUUsIDB4RkEpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhFOCwgMHg4MiwgMHgyMCwgMHhGNywgMHgyRCwgMHg3QSwgMHg3NywgMHg1MiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweENCLCAweDI5LCAweEEyLCAweERCLCAweDdBLCAweEU2LCAweDZGLCAweEE1KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QTAsIDB4QzYsIDB4NTAsIDB4NUMsIDB4QkMsIDB4RTYsIDB4NEYsIDB4QkQpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgxRSwgMHg5RiwgMHhENSwgMHhFOCwgMHhDNSwgMHgzRCwgMHhCNywgMHgzMCksCit9Oworc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgYnJhaW5wb29sUDM4NHIxX1RfMTZfWFtdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg0NSwgMHgwMywgMHg1NSwgMHgxMCwgMHhEQiwgMHhBNiwgMHg4QiwgMHgyMiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDRFLCAweDE3LCAweEFFLCAweDc4LCAweEM5LCAweDFELCAweDQzLCAweENBKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NEUsIDB4MzUsIDB4NDksIDB4RDQsIDB4NDcsIDB4ODQsIDB4OEQsIDB4MjApLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhGMywgMHg5NSwgMHgyRiwgMHhFQSwgMHhCQywgMHhCNCwgMHgxOCwgMHhCMyksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEQ0LCAweDQ4LCAweEFFLCAweDg5LCAweEY1LCAweDY1LCAweDNELCAweDg5KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4ODYsIDB4RjIsIDB4MkIsIDB4MjAsIDB4RDEsIDB4NzUsIDB4NTAsIDB4NjMpLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IGJyYWlucG9vbFAzODRyMV9UXzE2X1lbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QUQsIDB4RTYsIDB4NUMsIDB4MkMsIDB4RTAsIDB4N0QsIDB4REYsIDB4MkQpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgzRSwgMHgwNywgMHgzRSwgMHhDRSwgMHg5RiwgMHgxOCwgMHhCNiwgMHgwNSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDlBLCAweEY4LCAweEYwLCAweEQ1LCAweEZBLCAweDQyLCAweDFELCAweDZEKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NDEsIDB4NkMsIDB4MUQsIDB4MDMsIDB4QzksIDB4MEUsIDB4MkIsIDB4MkYpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg0MywgMHgxOCwgMHg1MiwgMHhBNSwgMHhCNCwgMHg2MywgMHhFMSwgMHgwNiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEI3LCAweDBBLCAweEQ5LCAweEM0LCAweEZELCAweDE2LCAweDYwLCAweDU0KSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBicmFpbnBvb2xQMzg0cjFfVF8xN19YW10gPSB7CisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDQzLCAweDdELCAweERFLCAweERGLCAweDRCLCAweDRBLCAweEIwLCAweENCKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QjAsIDB4NEUsIDB4OEMsIDB4OTQsIDB4QzEsIDB4RTIsIDB4ODUsIDB4REYpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg0RiwgMHhGMCwgMHhFQSwgMHhCNSwgMHg5QiwgMHg3MCwgMHhFRiwgMHgxMCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDU2LCAweEMyLCAweDM5LCAweDVELCAweEYzLCAweDJDLCAweEQ5LCAweDJDKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MEQsIDB4MUMsIDB4MkUsIDB4Q0MsIDB4MkYsIDB4NTQsIDB4ODcsIDB4ODApLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhCMCwgMHg3MiwgMHhDNywgMHhCNSwgMHg1MCwgMHhBMywgMHg4NCwgMHg3NyksCit9Oworc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgYnJhaW5wb29sUDM4NHIxX1RfMTdfWVtdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhCNywgMHhEMSwgMHhBRiwgMHhBOSwgMHhCNCwgMHg4QiwgMHg1RCwgMHhGQSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEM4LCAweEY2LCAweDUyLCAweDhBLCAweEMzLCAweDU2LCAweEE1LCAweDVFKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4M0IsIDB4NTIsIDB4RkYsIDB4RUEsIDB4MDUsIDB4NDIsIDB4NzcsIDB4ODMpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgyOSwgMHgwOCwgMHg5MCwgMHg3MiwgMHg4NiwgMHhDNCwgMHhDMywgMHhCOCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDRELCAweDE1LCAweEY4LCAweEYxLCAweDE2LCAweDY3LCAweEM2LCAweEQ1KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NzUsIDB4ODcsIDB4QUMsIDB4OEYsIDB4NzEsIDB4RUMsIDB4ODMsIDB4ODEpLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IGJyYWlucG9vbFAzODRyMV9UXzE4X1hbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4OTEsIDB4RTEsIDB4RTYsIDB4MkQsIDB4MEUsIDB4MTEsIDB4QTEsIDB4NjIpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg3NCwgMHhFMiwgMHhBOCwgMHgzMiwgMHhFNiwgMHhFMywgMHg4MywgMHhEMSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDUwLCAweDU2LCAweEU1LCAweENELCAweEI3LCAweDJCLCAweDY3LCAweDZGKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RTUsIDB4RUQsIDB4QzksIDB4NjUsIDB4NkQsIDB4ODcsIDB4RTEsIDB4OEUpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg1MCwgMHg4RSwgMHhGRCwgMHg5QSwgMHg1MywgMHgwRSwgMHhGQSwgMHhBMyksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDQ5LCAweDRDLCAweDRBLCAweEUyLCAweDIzLCAweDg0LCAweEZBLCAweDAxKSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBicmFpbnBvb2xQMzg0cjFfVF8xOF9ZW10gPSB7CisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEI0LCAweEZFLCAweDQ5LCAweDgxLCAweEQxLCAweDNFLCAweEY0LCAweDdDKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NDUsIDB4NzIsIDB4RTAsIDB4RUYsIDB4MEQsIDB4QjgsIDB4M0UsIDB4NkYpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgzQywgMHgwMCwgMHgwRiwgMHg1RiwgMHhDRSwgMHg2MCwgMHg3MiwgMHgyQyksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEI3LCAweENDLCAweEQ4LCAweDAzLCAweDA3LCAweDZFLCAweDVBLCAweENEKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MjcsIDB4M0EsIDB4MzUsIDB4NTAsIDB4NEUsIDB4MUYsIDB4Q0EsIDB4NUYpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg1OCwgMHhFQSwgMHg4OCwgMHg1NSwgMHhCRCwgMHg2RSwgMHgwNSwgMHg3RiksCit9Oworc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgYnJhaW5wb29sUDM4NHIxX1RfMTlfWFtdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhCMSwgMHg2RCwgMHhGMSwgMHg5NywgMHhBNiwgMHg2OSwgMHgzOSwgMHgyNCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDBCLCAweDQxLCAweDk5LCAweEZGLCAweDNCLCAweEExLCAweDI2LCAweEVDKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4OTUsIDB4MkYsIDB4OTUsIDB4ODAsIDB4MTIsIDB4NEEsIDB4MUIsIDB4Q0IpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhFQSwgMHhCRiwgMHg1MSwgMHhBQSwgMHhBRSwgMHgyRCwgMHhEQSwgMHhDRiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDBDLCAweDFDLCAweEIzLCAweDUyLCAweDM2LCAweDQ5LCAweEQ0LCAweDg2KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4OTksIDB4QzEsIDB4MUYsIDB4M0EsIDB4RDMsIDB4M0UsIDB4NUMsIDB4MUEpLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IGJyYWlucG9vbFAzODRyMV9UXzE5X1lbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NzMsIDB4NTEsIDB4RjcsIDB4MkIsIDB4QzgsIDB4QTksIDB4QTcsIDB4MTUpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgxMiwgMHg0RSwgMHg3RiwgMHg5OCwgMHg0MSwgMHg2NiwgMHhCMCwgMHgwMyksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDkxLCAweDFELCAweEMwLCAweDQyLCAweENELCAweEY4LCAweEMzLCAweDJCKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4Q0MsIDB4NDEsIDB4OTEsIDB4N0QsIDB4Q0MsIDB4OEIsIDB4Q0MsIDB4NDEpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgyQSwgMHhBRSwgMHg3NiwgMHhFRCwgMHg1NiwgMHgxOCwgMHhDNSwgMHhBQiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEFCLCAweDZBLCAweDA2LCAweEEzLCAweDdGLCAweDY1LCAweDEwLCAweDFGKSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBicmFpbnBvb2xQMzg0cjFfVF8yMF9YW10gPSB7CisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDBDLCAweEVDLCAweDNDLCAweDA1LCAweDA1LCAweENBLCAweEY2LCAweEVEKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NDgsIDB4Q0QsIDB4MDIsIDB4NTEsIDB4MTIsIDB4MTYsIDB4M0MsIDB4NjMpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhBOCwgMHhFQiwgMHhCMywgMHg0MywgMHg3QiwgMHhERCwgMHhCMiwgMHg3QyksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDAwLCAweDU5LCAweDkwLCAweDQxLCAweERCLCAweEU0LCAweEY1LCAweDkxKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RDAsIDB4MEUsIDB4MTgsIDB4MkEsIDB4NUEsIDB4ODMsIDB4N0MsIDB4MkYpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhFMSwgMHgzNywgMHhBMSwgMHgwRCwgMHhGMSwgMHgyRiwgMHg2MywgMHg3OSksCit9Oworc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgYnJhaW5wb29sUDM4NHIxX1RfMjBfWVtdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgyMSwgMHhDMCwgMHhGQSwgMHg2RiwgMHgxRiwgMHg2NywgMHhDRiwgMHhFQyksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDk4LCAweDM0LCAweDQ1LCAweEJCLCAweEY0LCAweEY5LCAweDlCLCAweDg5KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RjUsIDB4NjksIDB4RkUsIDB4NjcsIDB4MUQsIDB4NjQsIDB4OEYsIDB4QjkpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhEQiwgMHgzOSwgMHhCRiwgMHhEOCwgMHhCMywgMHhDNywgMHhBRCwgMHg4QSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDhDLCAweDkzLCAweEZGLCAweEYzLCAweDI4LCAweEZBLCAweDM5LCAweEY2KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RkEsIDB4RjksIDB4QzMsIDB4ODUsIDB4MjYsIDB4N0EsIDB4ODgsIDB4ODkpLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IGJyYWlucG9vbFAzODRyMV9UXzIxX1hbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NEQsIDB4RDUsIDB4NzksIDB4RDgsIDB4MTEsIDB4REUsIDB4RUIsIDB4NEUpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgxQywgMHg0NiwgMHhBNCwgMHg2QSwgMHhEQSwgMHg3NCwgMHgzNCwgMHhBOCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDFFLCAweEJELCAweEQzLCAweEY1LCAweDE0LCAweEVFLCAweEZFLCAweEFFKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MTksIDB4NEMsIDB4QTMsIDB4NzEsIDB4NDMsIDB4NjUsIDB4RjgsIDB4OTQpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg3MiwgMHg2QywgMHgzNSwgMHhGQSwgMHg5MCwgMHgyNSwgMHhEOCwgMHhFMiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEJCLCAweDM0LCAweDg0LCAweDk2LCAweEExLCAweDQzLCAweDAzLCAweDREKSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBicmFpbnBvb2xQMzg0cjFfVF8yMV9ZW10gPSB7CisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEYxLCAweDNCLCAweDNCLCAweDJGLCAweENBLCAweDU5LCAweEYyLCAweDQyKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4Q0QsIDB4NDgsIDB4MjQsIDB4NzQsIDB4RDgsIDB4NzIsIDB4OTAsIDB4QTMpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg4MywgMHg0MiwgMHg3NCwgMHg4QywgMHg2RiwgMHg1MiwgMHgxOSwgMHgzRCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDQwLCAweDlFLCAweDQxLCAweDYzLCAweDY4LCAweDc4LCAweDRDLCAweDJGKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NTMsIDB4OTQsIDB4QjYsIDB4NkIsIDB4MzgsIDB4NTIsIDB4QTgsIDB4OUYpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg4MSwgMHgzMCwgMHgyNSwgMHg5MywgMHhBMSwgMHg2RiwgMHg2RSwgMHg2OCksCit9Oworc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgYnJhaW5wb29sUDM4NHIxX1RfMjJfWFtdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhGQywgMHgyRiwgMHg0QiwgMHg2NCwgMHg3OSwgMHg1MCwgMHhGRiwgMHgwMSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEQ0LCAweDM2LCAweEVELCAweDU3LCAweDM5LCAweDNCLCAweEU3LCAweEYzKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RjEsIDB4ODUsIDB4RUEsIDB4MzUsIDB4RDYsIDB4QzAsIDB4QTAsIDB4NTIpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhCQSwgMHg4OSwgMHgzQSwgMHhDQywgMHgyMiwgMHgxQywgMHg0NiwgMHgwMiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDZDLCAweDdBLCAweEIwLCAweEExLCAweDFCLCAweDY5LCAweDYyLCAweDU1KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NTcsIDB4QjgsIDB4OEEsIDB4NkMsIDB4MTgsIDB4ODUsIDB4MEQsIDB4ODgpLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IGJyYWlucG9vbFAzODRyMV9UXzIyX1lbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RkQsIDB4QjYsIDB4NTAsIDB4RTksIDB4NEUsIDB4N0YsIDB4RTgsIDB4MDcpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg5MiwgMHg1QiwgMHg1QywgMHhEMSwgMHg0QiwgMHgxMSwgMHg5QSwgMHhEOCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDk2LCAweDI1LCAweDU2LCAweDc0LCAweDUxLCAweDlDLCAweEVDLCAweDlDKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NTUsIDB4N0YsIDB4QjYsIDB4OEEsIDB4Q0IsIDB4M0EsIDB4MTAsIDB4NkEpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg2MCwgMHgzMywgMHgwNywgMHgwMSwgMHhFOSwgMHg0OSwgMHg1OSwgMHhFNiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEM2LCAweEE1LCAweDJFLCAweEYyLCAweEJBLCAweDMyLCAweDYzLCAweDQ0KSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBicmFpbnBvb2xQMzg0cjFfVF8yM19YW10gPSB7CisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEY4LCAweDA2LCAweDBCLCAweEE1LCAweDQ0LCAweDI3LCAweDdGLCAweDIyKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MzAsIDB4NzQsIDB4QUMsIDB4MEYsIDB4Q0MsIDB4NEYsIDB4MTMsIDB4NjEpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhGRCwgMHhCMSwgMHhCRiwgMHg5NywgMHg0OSwgMHhBNSwgMHgxQywgMHgxRCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDhBLCAweDY0LCAweDY4LCAweDdCLCAweDBGLCAweENDLCAweDc3LCAweEY4KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QkIsIDB4MzksIDB4RjksIDB4NEUsIDB4ODQsIDB4OUMsIDB4RjYsIDB4OTYpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhCQywgMHhDRiwgMHg2RCwgMHhFMiwgMHhBMSwgMHgyRCwgMHhGOSwgMHgyQiksCit9Oworc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgYnJhaW5wb29sUDM4NHIxX1RfMjNfWVtdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg5NSwgMHhDNCwgMHg5MCwgMHg1NywgMHgzMSwgMHgwMSwgMHgwNSwgMHg1RSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweENDLCAweDFFLCAweEJCLCAweEJGLCAweDk4LCAweEE0LCAweDdDLCAweEUzKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4ODksIDB4RTMsIDB4QTAsIDB4QjIsIDB4Q0QsIDB4MzksIDB4OUEsIDB4M0YpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg5MiwgMHgzNCwgMHg2MCwgMHg3QSwgMHg4OSwgMHg5OCwgMHhCNSwgMHg1MiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDhELCAweDIwLCAweDNELCAweDNBLCAweDA0LCAweDhGLCAweDVBLCAweEFDKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QTMsIDB4MjYsIDB4QjYsIDB4NDksIDB4MDksIDB4OUMsIDB4MEYsIDB4NTkpLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IGJyYWlucG9vbFAzODRyMV9UXzI0X1hbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NzIsIDB4NjYsIDB4RDIsIDB4MzgsIDB4MkEsIDB4NjIsIDB4ODEsIDB4Q0EpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhDNSwgMHhDOCwgMHgyMCwgMHg1RSwgMHgyOCwgMHhBMywgMHg4MSwgMHhBNyksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDIwLCAweDMxLCAweEE0LCAweEYxLCAweEVBLCAweDdELCAweDg3LCAweDQ1KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4OEYsIDB4MkMsIDB4OTksIDB4MDksIDB4NkYsIDB4NjMsIDB4RUIsIDB4MkYpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg3MywgMHg3NiwgMHhEQSwgMHgxQSwgMHgwNiwgMHhCRSwgMHhERSwgMHhBMiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDI5LCAweDA5LCAweDJFLCAweDc1LCAweDM5LCAweDMwLCAweDJELCAweDQyKSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBicmFpbnBvb2xQMzg0cjFfVF8yNF9ZW10gPSB7CisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDQxLCAweDlCLCAweEMxLCAweDVBLCAweDE3LCAweEMzLCAweDhDLCAweDMxKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NTgsIDB4OEQsIDB4OTQsIDB4NEQsIDB4M0QsIDB4QUIsIDB4NjAsIDB4RDQpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhGRiwgMHhGRCwgMHgxRSwgMHgwRiwgMHg0MywgMHhBRSwgMHg5RCwgMHg2MiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDhFLCAweEYyLCAweEYzLCAweDIwLCAweDFCLCAweEFBLCAweEI3LCAweDQxKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4OUQsIDB4NUIsIDB4QTQsIDB4RjQsIDB4OTAsIDB4M0IsIDB4RTMsIDB4NzEpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhGNywgMHg3OCwgMHg3MiwgMHhCRCwgMHg2NSwgMHgwOSwgMHgwQiwgMHgwMSksCit9Oworc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgYnJhaW5wb29sUDM4NHIxX1RfMjVfWFtdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhDQSwgMHgzNywgMHgyQSwgMHg2QywgMHgxNiwgMHg0RiwgMHg2NCwgMHg1OSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDVBLCAweENFLCAweEEzLCAweDkwLCAweEI0LCAweDlBLCAweEJDLCAweEY3KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MjcsIDB4MzgsIDB4NTUsIDB4NjMsIDB4MUQsIDB4M0EsIDB4NkUsIDB4MTgpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgzNywgMHhCNCwgMHhBQSwgMHg5OSwgMHgyMiwgMHg0NSwgMHg4OSwgMHgyQyksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEI3LCAweDdDLCAweDhDLCAweEE2LCAweDNELCAweEE3LCAweDNFLCAweEU4KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NzAsIDB4MDYsIDB4NDIsIDB4REMsIDB4QTYsIDB4RTMsIDB4QzYsIDB4MTIpLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IGJyYWlucG9vbFAzODRyMV9UXzI1X1lbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NTUsIDB4OEMsIDB4M0QsIDB4NUQsIDB4NDcsIDB4MzEsIDB4N0MsIDB4RUIpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg0NiwgMHg4NSwgMHhFRSwgMHg0NiwgMHg3RSwgMHgxMywgMHgwNCwgMHg0MSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDlFLCAweDNDLCAweDhCLCAweDQzLCAweDJFLCAweDc0LCAweEY1LCAweEY2KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QkEsIDB4ODgsIDB4OEUsIDB4MDcsIDB4MjksIDB4MDgsIDB4MDMsIDB4MjYpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhFQSwgMHg5QiwgMHg4OSwgMHhFQiwgMHgwOCwgMHhFOCwgMHg0MywgMHhCNSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDE3LCAweDA3LCAweDY3LCAweEZELCAweEQ5LCAweDczLCAweDZGLCAweDE4KSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBicmFpbnBvb2xQMzg0cjFfVF8yNl9YW10gPSB7CisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDI5LCAweEVCLCAweDIxLCAweDhELCAweDk4LCAweDQzLCAweDc0LCAweDk4KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4ODgsIDB4Q0MsIDB4MTQsIDB4RDgsIDB4MDgsIDB4QkIsIDB4QTYsIDB4RTMpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhDNCwgMHg5OCwgMHhGMiwgMHg2QSwgMHgxOCwgMHhDMywgMHhERCwgMHg5RSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEM3LCAweDM4LCAweDkxLCAweEEwLCAweDAzLCAweEYyLCAweDA0LCAweDYyKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4N0EsIDB4QUYsIDB4RTgsIDB4RkQsIDB4RkIsIDB4MTMsIDB4NzAsIDB4NzQpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhEMCwgMHg5MywgMHg4NywgMHg5OCwgMHg0QSwgMHhFMCwgMHgwMCwgMHgxMiksCit9Oworc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgYnJhaW5wb29sUDM4NHIxX1RfMjZfWVtdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg5NywgMHgyRSwgMHg2OSwgMHg5QywgMHhBMiwgMHgyRCwgMHgwMywgMHgzRiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDc5LCAweEZFLCAweEYzLCAweEI5LCAweEMxLCAweDg1LCAweDJBLCAweEVFKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4Q0UsIDB4RkQsIDB4ODYsIDB4QjEsIDB4Q0QsIDB4QkYsIDB4NDEsIDB4QjcpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhBMCwgMHhEOCwgMHg5QSwgMHgyMSwgMHhGMywgMHhGRSwgMHhDQiwgMHhGMSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDk1LCAweDc4LCAweDA0LCAweDYwLCAweEI3LCAweEE5LCAweEEyLCAweDg0KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RTgsIDB4MUUsIDB4NjYsIDB4MkEsIDB4NTQsIDB4NTEsIDB4QkQsIDB4OEIpLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IGJyYWlucG9vbFAzODRyMV9UXzI3X1hbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4OEUsIDB4MTYsIDB4MzYsIDB4RUYsIDB4NjEsIDB4MkQsIDB4RUUsIDB4M0IpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg0NSwgMHg1RiwgMHg4OCwgMHhBMCwgMHgxMywgMHgxMiwgMHhGNywgMHgyMyksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEE5LCAweEM2LCAweEFELCAweDRBLCAweDRBLCAweDA3LCAweDAxLCAweDVCKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QjgsIDB4NzQsIDB4QjEsIDB4NEYsIDB4RUIsIDB4QkQsIDB4RDUsIDB4NkIpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg1NywgMHhGOSwgMHg3MSwgMHhBMiwgMHgwNiwgMHg0RiwgMHhENywgMHhCQyksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEZGLCAweDhCLCAweDRELCAweDQ4LCAweEUwLCAweDk4LCAweEZCLCAweDZBKSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBicmFpbnBvb2xQMzg0cjFfVF8yN19ZW10gPSB7CisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEM0LCAweEJBLCAweDEwLCAweEEzLCAweDBELCAweDUyLCAweEFDLCAweDNBKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MTEsIDB4RDAsIDB4RTAsIDB4MzYsIDB4RTYsIDB4MDcsIDB4M0EsIDB4MzApLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg3RSwgMHg4MCwgMHhGMCwgMHhBQSwgMHg0OSwgMHgyMiwgMHg0QiwgMHhERCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEZGLCAweEM3LCAweEFCLCAweDFDLCAweDg5LCAweENELCAweDI0LCAweDQwKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4ODIsIDB4MkEsIDB4RkMsIDB4QjMsIDB4NkQsIDB4NDUsIDB4OTYsIDB4NDkpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg2MywgMHhFNCwgMHhEQiwgMHg1MiwgMHgzRiwgMHhDNCwgMHhCNCwgMHgxOSksCit9Oworc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgYnJhaW5wb29sUDM4NHIxX1RfMjhfWFtdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg1QiwgMHhDQywgMHhDOCwgMHg3RiwgMHhCQiwgMHg2QiwgMHg4NywgMHg0NyksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEMwLCAweDIxLCAweDNDLCAweDY5LCAweDdELCAweDM4LCAweDU3LCAweDUwKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NTIsIDB4NEMsIDB4MTgsIDB4M0MsIDB4NTMsIDB4QTUsIDB4NDgsIDB4NkQpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgyMSwgMHhDMywgMHg2NCwgMHg0NSwgMHhEQiwgMHhDNCwgMHg2RCwgMHgxNSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDQ5LCAweENDLCAweEQxLCAweEJCLCAweDE3LCAweEI4LCAweDM0LCAweDJEKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NkMsIDB4NjksIDB4NzEsIDB4RkEsIDB4QTAsIDB4MjgsIDB4NEEsIDB4M0QpLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IGJyYWlucG9vbFAzODRyMV9UXzI4X1lbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RUQsIDB4RTgsIDB4OUUsIDB4MzksIDB4RUEsIDB4OEQsIDB4MzgsIDB4REIpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhDQywgMHg5QywgMHhCQiwgMHhDRCwgMHg4MCwgMHgxQSwgMHhFRSwgMHhCNyksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEJDLCAweEEwLCAweDQ1LCAweEJGLCAweEQ5LCAweDIyLCAweDExLCAweDMyKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4REEsIDB4N0MsIDB4NUMsIDB4RDksIDB4QzAsIDB4OUYsIDB4NjksIDB4RjUpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhCQywgMHg4QSwgMHhBNiwgMHg3OSwgMHg0RSwgMHgzNSwgMHhCOSwgMHhENSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweENDLCAweDhCLCAweDlBLCAweDNFLCAweEExLCAweEI4LCAweDI4LCAweDEwKSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBicmFpbnBvb2xQMzg0cjFfVF8yOV9YW10gPSB7CisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDU1LCAweDJGLCAweEVGLCAweEJCLCAweEE5LCAweDcyLCAweDdGLCAweEVBKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QjUsIDB4MzQsIDB4QjcsIDB4MTIsIDB4QjksIDB4RTcsIDB4QzMsIDB4MkEpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhGOCwgMHgxRCwgMHhEOSwgMHg0MiwgMHg3NywgMHgwQywgMHg3MSwgMHg2RSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEVDLCAweDAxLCAweDU5LCAweEE3LCAweDU2LCAweDAzLCAweDkxLCAweDhEKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NkMsIDB4OTEsIDB4OTksIDB4MzMsIDB4MzAsIDB4M0UsIDB4RUYsIDB4MTMpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg4NywgMHhDOSwgMHg1QSwgMHg5QSwgMHg1NCwgMHg2NiwgMHhGMSwgMHg3MCksCit9Oworc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgYnJhaW5wb29sUDM4NHIxX1RfMjlfWVtdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg2NCwgMHgyQywgMHhCNywgMHg2RSwgMHg3MSwgMHg3RCwgMHgzNSwgMHgzMCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDFBLCAweDBELCAweEVGLCAweEQxLCAweDJELCAweDk5LCAweDYzLCAweDJGKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RTQsIDB4MzEsIDB4QUYsIDB4MkQsIDB4QzksIDB4QzYsIDB4QzIsIDB4QUUpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgxOSwgMHhDMCwgMHhERiwgMHg4MCwgMHg1NCwgMHhDNCwgMHhBQywgMHhGMyksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEUzLCAweDZCLCAweEEwLCAweDg0LCAweDk2LCAweEY3LCAweDMxLCAweEM4KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4OTMsIDB4RTIsIDB4N0MsIDB4N0EsIDB4NDEsIDB4NDUsIDB4NzUsIDB4NkEpLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IGJyYWlucG9vbFAzODRyMV9UXzMwX1hbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QUUsIDB4RUUsIDB4NTgsIDB4MzEsIDB4RTgsIDB4NjgsIDB4RDYsIDB4NzYpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhEMiwgMHgyRSwgMHg0OCwgMHhCNywgMHgwOSwgMHg5RiwgMHhENCwgMHhDQSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDM0LCAweEE5LCAweDVDLCAweEU3LCAweDY0LCAweDQzLCAweDVELCAweEM5KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4OUUsIDB4NTgsIDB4OUYsIDB4NTAsIDB4QUIsIDB4NjgsIDB4RkYsIDB4NkQpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg4NywgMHg4OCwgMHgyRCwgMHhCQSwgMHgxMiwgMHhCRiwgMHg4RCwgMHg3RCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEQ0LCAweERGLCAweDZGLCAweEIzLCAweDc1LCAweEE0LCAweDU1LCAweDczKSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBicmFpbnBvb2xQMzg0cjFfVF8zMF9ZW10gPSB7CisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDZELCAweDE3LCAweDkyLCAweDM5LCAweEI3LCAweDEzLCAweDM3LCAweDZGKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NUUsIDB4NDMsIDB4NzEsIDB4QTcsIDB4Q0EsIDB4MTcsIDB4MUIsIDB4MzIpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhFNywgMHhCOSwgMHhCMCwgMHg3OCwgMHhFRiwgMHhBMCwgMHhEQSwgMHg4MyksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDlBLCAweDg0LCAweEYyLCAweDBGLCAweDg1LCAweEEyLCAweEI2LCAweDFGKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NzIsIDB4NjUsIDB4MkUsIDB4NkUsIDB4NDUsIDB4QjksIDB4NEMsIDB4M0MpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhGRSwgMHg2QSwgMHg4QywgMHgyQiwgMHg3NywgMHg5NiwgMHgzNiwgMHgyMiksCit9Oworc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgYnJhaW5wb29sUDM4NHIxX1RfMzFfWFtdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg2OCwgMHg3QSwgMHgxMywgMHg0QSwgMHg5NywgMHg2MywgMHgwMiwgMHgxMCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEJDLCAweDFFLCAweDA2LCAweDAzLCAweDhGLCAweEI5LCAweEVFLCAweDY0KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NjgsIDB4RUUsIDB4OEIsIDB4ODksIDB4QTksIDB4NzAsIDB4REIsIDB4Q0UpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgxNSwgMHg3QiwgMHg4MSwgMHhDOSwgMHg3MCwgMHg4RCwgMHg2MiwgMHgzMiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDc1LCAweERBLCAweDQ2LCAweEY4LCAweEY5LCAweDNBLCAweEJFLCAweDU1KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4OUYsIDB4OUMsIDB4N0EsIDB4OTcsIDB4NjIsIDB4RUIsIDB4RkEsIDB4MEYpLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IGJyYWlucG9vbFAzODRyMV9UXzMxX1lbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QjIsIDB4MDMsIDB4M0QsIDB4M0MsIDB4NDYsIDB4MjcsIDB4OUUsIDB4NjUpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhBNCwgMHgwOCwgMHgxQywgMHhENSwgMHgyNSwgMHhBRiwgMHhFOSwgMHg0MCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEZFLCAweDY5LCAweERDLCAweDU5LCAweEY0LCAweDhBLCAweDdDLCAweDFGKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RkMsIDB4OUEsIDB4N0EsIDB4OTksIDB4MjEsIDB4MEMsIDB4NEUsIDB4RTMpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhGNSwgMHhDRSwgMHg4NSwgMHg1RiwgMHhBQywgMHhBQSwgMHg4MiwgMHgxMCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDgzLCAweDU3LCAweDY5LCAweDkwLCAweDc2LCAweEYzLCAweDUzLCAweDNGKSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19lY3BfcG9pbnQgYnJhaW5wb29sUDM4NHIxX1RbMzJdID0geworICAgIEVDUF9QT0lOVF9JTklUX1hZX1oxKGJyYWlucG9vbFAzODRyMV9UXzBfWCwgYnJhaW5wb29sUDM4NHIxX1RfMF9ZKSwKKyAgICBFQ1BfUE9JTlRfSU5JVF9YWV9aMChicmFpbnBvb2xQMzg0cjFfVF8xX1gsIGJyYWlucG9vbFAzODRyMV9UXzFfWSksCisgICAgRUNQX1BPSU5UX0lOSVRfWFlfWjAoYnJhaW5wb29sUDM4NHIxX1RfMl9YLCBicmFpbnBvb2xQMzg0cjFfVF8yX1kpLAorICAgIEVDUF9QT0lOVF9JTklUX1hZX1owKGJyYWlucG9vbFAzODRyMV9UXzNfWCwgYnJhaW5wb29sUDM4NHIxX1RfM19ZKSwKKyAgICBFQ1BfUE9JTlRfSU5JVF9YWV9aMChicmFpbnBvb2xQMzg0cjFfVF80X1gsIGJyYWlucG9vbFAzODRyMV9UXzRfWSksCisgICAgRUNQX1BPSU5UX0lOSVRfWFlfWjAoYnJhaW5wb29sUDM4NHIxX1RfNV9YLCBicmFpbnBvb2xQMzg0cjFfVF81X1kpLAorICAgIEVDUF9QT0lOVF9JTklUX1hZX1owKGJyYWlucG9vbFAzODRyMV9UXzZfWCwgYnJhaW5wb29sUDM4NHIxX1RfNl9ZKSwKKyAgICBFQ1BfUE9JTlRfSU5JVF9YWV9aMChicmFpbnBvb2xQMzg0cjFfVF83X1gsIGJyYWlucG9vbFAzODRyMV9UXzdfWSksCisgICAgRUNQX1BPSU5UX0lOSVRfWFlfWjAoYnJhaW5wb29sUDM4NHIxX1RfOF9YLCBicmFpbnBvb2xQMzg0cjFfVF84X1kpLAorICAgIEVDUF9QT0lOVF9JTklUX1hZX1owKGJyYWlucG9vbFAzODRyMV9UXzlfWCwgYnJhaW5wb29sUDM4NHIxX1RfOV9ZKSwKKyAgICBFQ1BfUE9JTlRfSU5JVF9YWV9aMChicmFpbnBvb2xQMzg0cjFfVF8xMF9YLCBicmFpbnBvb2xQMzg0cjFfVF8xMF9ZKSwKKyAgICBFQ1BfUE9JTlRfSU5JVF9YWV9aMChicmFpbnBvb2xQMzg0cjFfVF8xMV9YLCBicmFpbnBvb2xQMzg0cjFfVF8xMV9ZKSwKKyAgICBFQ1BfUE9JTlRfSU5JVF9YWV9aMChicmFpbnBvb2xQMzg0cjFfVF8xMl9YLCBicmFpbnBvb2xQMzg0cjFfVF8xMl9ZKSwKKyAgICBFQ1BfUE9JTlRfSU5JVF9YWV9aMChicmFpbnBvb2xQMzg0cjFfVF8xM19YLCBicmFpbnBvb2xQMzg0cjFfVF8xM19ZKSwKKyAgICBFQ1BfUE9JTlRfSU5JVF9YWV9aMChicmFpbnBvb2xQMzg0cjFfVF8xNF9YLCBicmFpbnBvb2xQMzg0cjFfVF8xNF9ZKSwKKyAgICBFQ1BfUE9JTlRfSU5JVF9YWV9aMChicmFpbnBvb2xQMzg0cjFfVF8xNV9YLCBicmFpbnBvb2xQMzg0cjFfVF8xNV9ZKSwKKyAgICBFQ1BfUE9JTlRfSU5JVF9YWV9aMChicmFpbnBvb2xQMzg0cjFfVF8xNl9YLCBicmFpbnBvb2xQMzg0cjFfVF8xNl9ZKSwKKyAgICBFQ1BfUE9JTlRfSU5JVF9YWV9aMChicmFpbnBvb2xQMzg0cjFfVF8xN19YLCBicmFpbnBvb2xQMzg0cjFfVF8xN19ZKSwKKyAgICBFQ1BfUE9JTlRfSU5JVF9YWV9aMChicmFpbnBvb2xQMzg0cjFfVF8xOF9YLCBicmFpbnBvb2xQMzg0cjFfVF8xOF9ZKSwKKyAgICBFQ1BfUE9JTlRfSU5JVF9YWV9aMChicmFpbnBvb2xQMzg0cjFfVF8xOV9YLCBicmFpbnBvb2xQMzg0cjFfVF8xOV9ZKSwKKyAgICBFQ1BfUE9JTlRfSU5JVF9YWV9aMChicmFpbnBvb2xQMzg0cjFfVF8yMF9YLCBicmFpbnBvb2xQMzg0cjFfVF8yMF9ZKSwKKyAgICBFQ1BfUE9JTlRfSU5JVF9YWV9aMChicmFpbnBvb2xQMzg0cjFfVF8yMV9YLCBicmFpbnBvb2xQMzg0cjFfVF8yMV9ZKSwKKyAgICBFQ1BfUE9JTlRfSU5JVF9YWV9aMChicmFpbnBvb2xQMzg0cjFfVF8yMl9YLCBicmFpbnBvb2xQMzg0cjFfVF8yMl9ZKSwKKyAgICBFQ1BfUE9JTlRfSU5JVF9YWV9aMChicmFpbnBvb2xQMzg0cjFfVF8yM19YLCBicmFpbnBvb2xQMzg0cjFfVF8yM19ZKSwKKyAgICBFQ1BfUE9JTlRfSU5JVF9YWV9aMChicmFpbnBvb2xQMzg0cjFfVF8yNF9YLCBicmFpbnBvb2xQMzg0cjFfVF8yNF9ZKSwKKyAgICBFQ1BfUE9JTlRfSU5JVF9YWV9aMChicmFpbnBvb2xQMzg0cjFfVF8yNV9YLCBicmFpbnBvb2xQMzg0cjFfVF8yNV9ZKSwKKyAgICBFQ1BfUE9JTlRfSU5JVF9YWV9aMChicmFpbnBvb2xQMzg0cjFfVF8yNl9YLCBicmFpbnBvb2xQMzg0cjFfVF8yNl9ZKSwKKyAgICBFQ1BfUE9JTlRfSU5JVF9YWV9aMChicmFpbnBvb2xQMzg0cjFfVF8yN19YLCBicmFpbnBvb2xQMzg0cjFfVF8yN19ZKSwKKyAgICBFQ1BfUE9JTlRfSU5JVF9YWV9aMChicmFpbnBvb2xQMzg0cjFfVF8yOF9YLCBicmFpbnBvb2xQMzg0cjFfVF8yOF9ZKSwKKyAgICBFQ1BfUE9JTlRfSU5JVF9YWV9aMChicmFpbnBvb2xQMzg0cjFfVF8yOV9YLCBicmFpbnBvb2xQMzg0cjFfVF8yOV9ZKSwKKyAgICBFQ1BfUE9JTlRfSU5JVF9YWV9aMChicmFpbnBvb2xQMzg0cjFfVF8zMF9YLCBicmFpbnBvb2xQMzg0cjFfVF8zMF9ZKSwKKyAgICBFQ1BfUE9JTlRfSU5JVF9YWV9aMChicmFpbnBvb2xQMzg0cjFfVF8zMV9YLCBicmFpbnBvb2xQMzg0cjFfVF8zMV9ZKSwKK307CisjZWxzZQorI2RlZmluZSBicmFpbnBvb2xQMzg0cjFfVCBOVUxMCisjZW5kaWYKKworI2VuZGlmIC8qIE1CRURUTFNfRUNQX0RQX0JQMzg0UjFfRU5BQkxFRCAqLworCisvKgorICogRG9tYWluIHBhcmFtZXRlcnMgZm9yIGJyYWlucG9vbFA1MTJyMSAoUkZDIDU2MzkgMy43KQorICovCisjaWYgZGVmaW5lZChNQkVEVExTX0VDUF9EUF9CUDUxMlIxX0VOQUJMRUQpCitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBicmFpbnBvb2xQNTEycjFfcFtdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhGMywgMHg0OCwgMHgzQSwgMHg1OCwgMHg1NiwgMHg2MCwgMHhBQSwgMHgyOCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDg1LCAweEM2LCAweDgyLCAweDJELCAweDJGLCAweEZGLCAweDgxLCAweDI4KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RTYsIDB4ODAsIDB4QTMsIDB4RTYsIDB4MkEsIDB4QTEsIDB4Q0QsIDB4QUUpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg0MiwgMHg2OCwgMHhDNiwgMHg5QiwgMHgwMCwgMHg5QiwgMHg0RCwgMHg3RCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDcxLCAweDA4LCAweDMzLCAweDcwLCAweENBLCAweDlDLCAweDYzLCAweEQ2KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MEUsIDB4RDIsIDB4QzksIDB4QjMsIDB4QjMsIDB4OEQsIDB4MzAsIDB4Q0IpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgwNywgMHhGQywgMHhDOSwgMHgzMywgMHhBRSwgMHhFNiwgMHhENCwgMHgzRiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDhCLCAweEM0LCAweEU5LCAweERCLCAweEI4LCAweDlELCAweERELCAweEFBKSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBicmFpbnBvb2xQNTEycjFfYVtdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhDQSwgMHg5NCwgMHhGQywgMHg3NywgMHg0RCwgMHhBQywgMHhDMSwgMHhFNyksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEI5LCAweEM3LCAweEYyLCAweDJCLCAweEE3LCAweDE3LCAweDExLCAweDdGKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QjUsIDB4QzgsIDB4OUEsIDB4OEIsIDB4QzksIDB4RjEsIDB4MkUsIDB4MEEpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhBMSwgMHgzQSwgMHgyNSwgMHhBOCwgMHg1QSwgMHg1RCwgMHhFRCwgMHgyRCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEJDLCAweDYzLCAweDk4LCAweEVBLCAweENBLCAweDQxLCAweDM0LCAweEE4KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MTAsIDB4MTYsIDB4RjksIDB4M0QsIDB4OEQsIDB4REQsIDB4Q0IsIDB4OTQpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhDNSwgMHg0QywgMHgyMywgMHhBQywgMHg0NSwgMHg3MSwgMHgzMiwgMHhFMiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDg5LCAweDNCLCAweDYwLCAweDhCLCAweDMxLCAweEEzLCAweDMwLCAweDc4KSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBicmFpbnBvb2xQNTEycjFfYltdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgyMywgMHhGNywgMHgxNiwgMHg4MCwgMHg2MywgMHhCRCwgMHgwOSwgMHgyOCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweERELCAweEU1LCAweEJBLCAweDVFLCAweEI3LCAweDUwLCAweDQwLCAweDk4KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NjcsIDB4M0UsIDB4MDgsIDB4REMsIDB4Q0EsIDB4OTQsIDB4RkMsIDB4NzcpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg0RCwgMHhBQywgMHhDMSwgMHhFNywgMHhCOSwgMHhDNywgMHhGMiwgMHgyQiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEE3LCAweDE3LCAweDExLCAweDdGLCAweEI1LCAweEM4LCAweDlBLCAweDhCKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QzksIDB4RjEsIDB4MkUsIDB4MEEsIDB4QTEsIDB4M0EsIDB4MjUsIDB4QTgpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg1QSwgMHg1RCwgMHhFRCwgMHgyRCwgMHhCQywgMHg2MywgMHg5OCwgMHhFQSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweENBLCAweDQxLCAweDM0LCAweEE4LCAweDEwLCAweDE2LCAweEY5LCAweDNEKSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBicmFpbnBvb2xQNTEycjFfZ3hbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MjIsIDB4RjgsIDB4QjksIDB4QkMsIDB4MDksIDB4MjIsIDB4MzUsIDB4OEIpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg2OCwgMHg1RSwgMHg2QSwgMHg0MCwgMHg0NywgMHg1MCwgMHg2RCwgMHg3QyksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDVGLCAweDdELCAweEI5LCAweDkzLCAweDdCLCAweDY4LCAweEQxLCAweDUwKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4OEQsIDB4RDQsIDB4RDAsIDB4RTIsIDB4NzgsIDB4MUYsIDB4M0IsIDB4RkYpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg4RSwgMHgwOSwgMHhEMCwgMHhGNCwgMHhFRSwgMHg2MiwgMHgzQiwgMHhCNCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEMxLCAweDE2LCAweEQ5LCAweEI1LCAweDcwLCAweDlGLCAweEVELCAweDg1KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4OTMsIDB4NkEsIDB4NEMsIDB4OUMsIDB4MkUsIDB4MzIsIDB4MjEsIDB4NUEpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg2NCwgMHhEOSwgMHgyRSwgMHhEOCwgMHhCRCwgMHhFNCwgMHhBRSwgMHg4MSksCit9Oworc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgYnJhaW5wb29sUDUxMnIxX2d5W10gPSB7CisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDkyLCAweDA4LCAweEQ4LCAweDNBLCAweDBGLCAweDFFLCAweENELCAweDc4KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MDYsIDB4NTQsIDB4RjAsIDB4QTgsIDB4MkYsIDB4MkIsIDB4Q0EsIDB4RDEpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhBRSwgMHg2MywgMHgyNywgMHg4QSwgMHhEOCwgMHg0QiwgMHhDQSwgMHg1QiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDVFLCAweDQ4LCAweDVGLCAweDRBLCAweDQ5LCAweERFLCAweERDLCAweEIyKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MTEsIDB4ODEsIDB4MUYsIDB4ODgsIDB4NUIsIDB4QzUsIDB4MDAsIDB4QTApLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgxQSwgMHg3QiwgMHhBNSwgMHgyNCwgMHgwMCwgMHhGNywgMHgwOSwgMHhGMiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEZELCAweDIyLCAweDc4LCAweENGLCAweEE5LCAweEJGLCAweEVBLCAweEMwKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RUMsIDB4MzIsIDB4NjMsIDB4NTYsIDB4NUQsIDB4MzgsIDB4REUsIDB4N0QpLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IGJyYWlucG9vbFA1MTJyMV9uW10gPSB7CisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDY5LCAweDAwLCAweEE5LCAweDlDLCAweDgyLCAweDk2LCAweDg3LCAweEI1KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4REQsIDB4REEsIDB4NUQsIDB4MDgsIDB4ODEsIDB4RDMsIDB4QjEsIDB4MUQpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg0NywgMHgxMCwgMHhBQywgMHg3RiwgMHgxOSwgMHg2MSwgMHg4NiwgMHg0MSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDE5LCAweDI2LCAweEE5LCAweDRDLCAweDQxLCAweDVDLCAweDNFLCAweDU1KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NzAsIDB4MDgsIDB4MzMsIDB4NzAsIDB4Q0EsIDB4OUMsIDB4NjMsIDB4RDYpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgwRSwgMHhEMiwgMHhDOSwgMHhCMywgMHhCMywgMHg4RCwgMHgzMCwgMHhDQiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDA3LCAweEZDLCAweEM5LCAweDMzLCAweEFFLCAweEU2LCAweEQ0LCAweDNGKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4OEIsIDB4QzQsIDB4RTksIDB4REIsIDB4QjgsIDB4OUQsIDB4REQsIDB4QUEpLAorfTsKKworI2lmIE1CRURUTFNfRUNQX0ZJWEVEX1BPSU5UX09QVElNID09IDEKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IGJyYWlucG9vbFA1MTJyMV9UXzBfWFtdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgyMiwgMHhGOCwgMHhCOSwgMHhCQywgMHgwOSwgMHgyMiwgMHgzNSwgMHg4QiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDY4LCAweDVFLCAweDZBLCAweDQwLCAweDQ3LCAweDUwLCAweDZELCAweDdDKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NUYsIDB4N0QsIDB4QjksIDB4OTMsIDB4N0IsIDB4NjgsIDB4RDEsIDB4NTApLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg4RCwgMHhENCwgMHhEMCwgMHhFMiwgMHg3OCwgMHgxRiwgMHgzQiwgMHhGRiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDhFLCAweDA5LCAweEQwLCAweEY0LCAweEVFLCAweDYyLCAweDNCLCAweEI0KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QzEsIDB4MTYsIDB4RDksIDB4QjUsIDB4NzAsIDB4OUYsIDB4RUQsIDB4ODUpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg5MywgMHg2QSwgMHg0QywgMHg5QywgMHgyRSwgMHgzMiwgMHgyMSwgMHg1QSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDY0LCAweEQ5LCAweDJFLCAweEQ4LCAweEJELCAweEU0LCAweEFFLCAweDgxKSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBicmFpbnBvb2xQNTEycjFfVF8wX1lbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4OTIsIDB4MDgsIDB4RDgsIDB4M0EsIDB4MEYsIDB4MUUsIDB4Q0QsIDB4NzgpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgwNiwgMHg1NCwgMHhGMCwgMHhBOCwgMHgyRiwgMHgyQiwgMHhDQSwgMHhEMSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEFFLCAweDYzLCAweDI3LCAweDhBLCAweEQ4LCAweDRCLCAweENBLCAweDVCKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NUUsIDB4NDgsIDB4NUYsIDB4NEEsIDB4NDksIDB4REUsIDB4REMsIDB4QjIpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgxMSwgMHg4MSwgMHgxRiwgMHg4OCwgMHg1QiwgMHhDNSwgMHgwMCwgMHhBMCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDFBLCAweDdCLCAweEE1LCAweDI0LCAweDAwLCAweEY3LCAweDA5LCAweEYyKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RkQsIDB4MjIsIDB4NzgsIDB4Q0YsIDB4QTksIDB4QkYsIDB4RUEsIDB4QzApLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhFQywgMHgzMiwgMHg2MywgMHg1NiwgMHg1RCwgMHgzOCwgMHhERSwgMHg3RCksCit9Oworc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgYnJhaW5wb29sUDUxMnIxX1RfMV9YW10gPSB7CisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEVBLCAweEU5LCAweDZCLCAweDhDLCAweDZGLCAweDlELCAweDg4LCAweDQzKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QkIsIDB4NEYsIDB4ODYsIDB4OTYsIDB4QTcsIDB4NTYsIDB4RDEsIDB4MzcpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg5RCwgMHhBQiwgMHhGQSwgMHhFRSwgMHhBNywgMHhGNSwgMHgwRSwgMHhBNiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEUzLCAweDQwLCAweEVGLCAweDlFLCAweDZELCAweEQ2LCAweDMyLCAweDMzKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RTMsIDB4RUQsIDB4NTYsIDB4MTQsIDB4NTcsIDB4MUEsIDB4OEQsIDB4NjkpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhBNCwgMHhFRCwgMHg0RCwgMHgzQSwgMHhGQSwgMHg3MSwgMHg3NSwgMHg2QiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDY2LCAweEM1LCAweDc2LCAweDFDLCAweDE0LCAweEJFLCAweEI1LCAweENEKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RTEsIDB4NUEsIDB4Q0IsIDB4RTcsIDB4MzYsIDB4MUQsIDB4NTIsIDB4MUMpLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IGJyYWlucG9vbFA1MTJyMV9UXzFfWVtdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg2QiwgMHg4RCwgMHg3QSwgMHhFQiwgMHhBMywgMHg4QiwgMHhENSwgMHhCMCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDFGLCAweEEzLCAweDQxLCAweEY4LCAweEFDLCAweDlFLCAweEFCLCAweDc0KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MTIsIDB4RTMsIDB4NjUsIDB4MEQsIDB4MUMsIDB4RkUsIDB4MDksIDB4MkIpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgzRiwgMHhDQSwgMHgxMywgMHgzRiwgMHhDNSwgMHhGOSwgMHg3RSwgMHhFQyksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDJDLCAweDVELCAweDYzLCAweDI4LCAweEE2LCAweDg5LCAweEQzLCAweDkxKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QzksIDB4OTUsIDB4M0YsIDB4N0EsIDB4ODIsIDB4RDQsIDB4NzcsIDB4RTMpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgzNCwgMHhCQiwgMHg5MiwgMHgzMiwgMHgwMCwgMHhGNCwgMHg2NiwgMHg0MiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEJBLCAweDU4LCAweDMxLCAweEQxLCAweDE3LCAweDlGLCAweDJBLCAweDIyKSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBicmFpbnBvb2xQNTEycjFfVF8yX1hbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NTIsIDB4MzYsIDB4QTksIDB4Q0QsIDB4ODAsIDB4QTUsIDB4MkQsIDB4NzgpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg5MSwgMHg0NCwgMHhBQiwgMHhDRSwgMHg3MSwgMHhGRiwgMHgwQywgMHg5QiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDE4LCAweDI0LCAweDU4LCAweDM1LCAweDVBLCAweDIxLCAweDMyLCAweDkzKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MUIsIDB4QTYsIDB4MjgsIDB4RjgsIDB4N0EsIDB4OTcsIDB4QUUsIDB4OEIpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg4NCwgMHhFNywgMHgwOCwgMHhGQSwgMHg0NywgMHhDOSwgMHg1NSwgMHgwOSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDhELCAweEFDLCAweDJFLCAweDg0LCAweEE0LCAweEY1LCAweDUyLCAweEM0KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RDksIDB4NTgsIDB4MDUsIDB4OUQsIDB4QTcsIDB4QzgsIDB4NzEsIDB4QkYpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhCMywgMHg5MiwgMHhCNCwgMHg5MiwgMHhDMSwgMHg5MiwgMHhFQywgMHg2QiksCit9Oworc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgYnJhaW5wb29sUDUxMnIxX1RfMl9ZW10gPSB7CisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDRBLCAweDQ4LCAweDJELCAweDc5LCAweDVFLCAweDU4LCAweEU1LCAweDY5KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QjQsIDB4ODUsIDB4MjYsIDB4RUMsIDB4RTksIDB4NkUsIDB4RDQsIDB4MDYpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg5OCwgMHg2OCwgMHgyNiwgMHg4NywgMHgzOCwgMHhBMiwgMHhEMiwgMHgwQiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEY3LCAweDE3LCAweDYwLCAweENFLCAweDc1LCAweEY4LCAweEE1LCAweDZGKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MjAsIDB4NTEsIDB4REIsIDB4QTksIDB4QUUsIDB4ODcsIDB4RjEsIDB4MTUpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhERCwgMHg0OSwgMHg5MiwgMHgzQiwgMHgxOSwgMHg5NiwgMHhGNSwgMHhCMCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEM0LCAweEQ1LCAweDUyLCAweDUyLCAweDhDLCAweENFLCAweEZELCAweEZBKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MjQsIDB4MTgsIDB4MEEsIDB4RTYsIDB4RjYsIDB4QUUsIDB4MDgsIDB4NDEpLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IGJyYWlucG9vbFA1MTJyMV9UXzNfWFtdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg3RSwgMHgyQiwgMHhEOCwgMHg1NCwgMHhDRSwgMHhCMCwgMHg1NywgMHhGRSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDhBLCAweEIwLCAweEY4LCAweDlFLCAweDAzLCAweDAzLCAweDNDLCAweDVEKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4OTMsIDB4MEUsIDB4MjksIDB4MjksIDB4MDAsIDB4RjMsIDB4NzAsIDB4QkYpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg1NCwgMHgzMywgMHg5OSwgMHgwRSwgMHgwMCwgMHg1RCwgMHhGRSwgMHg0QiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDQ2LCAweDJELCAweEYyLCAweDU5LCAweDMyLCAweENGLCAweDAzLCAweEY0KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4M0IsIDB4QzksIDB4NzIsIDB4QUUsIDB4MEMsIDB4RUYsIDB4RDEsIDB4NUIpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhCNiwgMHg1QSwgMHgyNywgMHhCRiwgMHgyRiwgMHg0NSwgMHhGOSwgMHg1MSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEQ0LCAweEJFLCAweEU1LCAweDJDLCAweEZGLCAweDVCLCAweDFFLCAweDg4KSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBicmFpbnBvb2xQNTEycjFfVF8zX1lbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QUEsIDB4QUMsIDB4QkIsIDB4RDgsIDB4ODMsIDB4QzIsIDB4NDYsIDB4RjYpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhDRiwgMHhEQywgMHhDRSwgMHgxNSwgMHhCNCwgMHhFRiwgMHhDRiwgMHg0NiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDQ2LCAweERCLCAweDVFLCAweDk0LCAweDMxLCAweDBCLCAweEIyLCAweDdBKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4M0MsIDB4QjksIDB4RTMsIDB4RTMsIDB4MTEsIDB4NzEsIDB4NDEsIDB4MUUpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgzNiwgMHhFMywgMHgwMSwgMHhCNywgMHg3RCwgMHhCQywgMHg2NSwgMHhCRSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEZDLCAweDA3LCAweDY1LCAweDg3LCAweEE3LCAweEU4LCAweDQ4LCAweEUzKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NjYsIDB4NDgsIDB4OEYsIDB4RDQsIDB4MzAsIDB4OEUsIDB4QjQsIDB4NkMpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg4NiwgMHhFMCwgMHg3MywgMHhCRSwgMHgxRSwgMHhCRiwgMHg1NiwgMHgzNiksCit9Oworc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgYnJhaW5wb29sUDUxMnIxX1RfNF9YW10gPSB7CisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEZFLCAweDBFLCAweDVFLCAweDg3LCAweEM1LCAweEFCLCAweDBFLCAweDNDKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QjksIDB4RjksIDB4NUYsIDB4ODAsIDB4MjQsIDB4NEMsIDB4MkEsIDB4RjEpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhERSwgMHgxNSwgMHgyMSwgMHg1NCwgMHg5MiwgMHg4NCwgMHg4RCwgMHg2QSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEE4LCAweDhBLCAweDQ3LCAweDc0LCAweERDLCAweDQyLCAweEIxLCAweEY4KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4ODEsIDB4RjcsIDB4MzAsIDB4RkQsIDB4QzEsIDB4OUIsIDB4MEMsIDB4NUIpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg0RSwgMHg2QywgMHhDQywgMHhERiwgMHhDNSwgMHhFMywgMHhBOSwgMHhENSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEQ2LCAweDY3LCAweDU5LCAweDEwLCAweDVDLCAweDUxLCAweDU0LCAweDQwKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QTAsIDB4MzcsIDB4RkIsIDB4NkUsIDB4QjAsIDB4NzgsIDB4NjMsIDB4OEUpLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IGJyYWlucG9vbFA1MTJyMV9UXzRfWVtdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhBNSwgMHhFRiwgMHhDNCwgMHgzOSwgMHgyMCwgMHhGMSwgMHg0NiwgMHg2NiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEUyLCAweDYyLCAweEFFLCAweEZGLCAweDEwLCAweEU0LCAweEUyLCAweEU5KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RkYsIDB4NUMsIDB4RjUsIDB4MkUsIDB4MjIsIDB4ODksIDB4RTUsIDB4ODIpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg4OSwgMHgwQywgMHgyOSwgMHhBOCwgMHg2MiwgMHhBRSwgMHhEQiwgMHg2NSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEQ3LCAweDlFLCAweDBGLCAweENBLCAweDg3LCAweDJBLCAweDZGLCAweDdCKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4Q0UsIDB4REMsIDB4OUIsIDB4OUYsIDB4NjUsIDB4RDQsIDB4QUQsIDB4MjcpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhFRCwgMHhDMywgMHgwOCwgMHgwRiwgMHhDRiwgMHg2NywgMHhFOSwgMHhGNCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDkyLCAweDVDLCAweEQ3LCAweEZGLCAweDQxLCAweDlDLCAweENCLCAweDI2KSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBicmFpbnBvb2xQNTEycjFfVF81X1hbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MzcsIDB4MjUsIDB4MDUsIDB4MTIsIDB4QUQsIDB4NzMsIDB4NjMsIDB4OTApLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhDNywgMHg5OSwgMHgwNywgMHg4NiwgMHg1NywgMHhFNywgMHg5NCwgMHhCMSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDAwLCAweDRCLCAweEE1LCAweEJGLCAweDE4LCAweEE5LCAweEVGLCAweDZBKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RkEsIDB4NEMsIDB4QzQsIDB4MDksIDB4RjIsIDB4MkYsIDB4MEMsIDB4QUEpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg4QywgMHgzQSwgMHgwNCwgMHhFQSwgMHg4OSwgMHg2QywgMHg5MSwgMHhCOSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDdELCAweDZDLCAweDNBLCAweEU3LCAweEEzLCAweEVDLCAweDI0LCAweDdCKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MTYsIDB4QTEsIDB4MjYsIDB4MjEsIDB4MDQsIDB4RTMsIDB4QjksIDB4NDApLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg1MywgMHg3MSwgMHg0QiwgMHg3QiwgMHhDMiwgMHg4OSwgMHhDRCwgMHhBMiksCit9Oworc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgYnJhaW5wb29sUDUxMnIxX1RfNV9ZW10gPSB7CisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEI3LCAweEI5LCAweEE4LCAweDlELCAweEZELCAweDAwLCAweDNBLCAweDFGKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NjMsIDB4NDEsIDB4NkMsIDB4QkIsIDB4NUEsIDB4Q0EsIDB4MUYsIDB4NzQpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgyQSwgMHhENywgMHhFMiwgMHg2QywgMHg2QiwgMHhBNywgMHg0OCwgMHhDOSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDFFLCAweDE5LCAweEFELCAweEE3LCAweEMxLCAweDdFLCAweDRGLCAweDZFKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RDEsIDB4RjcsIDB4MTksIDB4M0MsIDB4MDYsIDB4NzQsIDB4MkMsIDB4M0EpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhDNSwgMHgyMywgMHg0RiwgMHgwQywgMHgwOSwgMHhCMCwgMHg4MCwgMHg0QSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDRFLCAweDc0LCAweDM0LCAweDA4LCAweDQ0LCAweDdFLCAweEEzLCAweEREKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RkIsIDB4Q0MsIDB4OEQsIDB4MTIsIDB4NkUsIDB4RTEsIDB4M0QsIDB4MEIpLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IGJyYWlucG9vbFA1MTJyMV9UXzZfWFtdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgzOCwgMHgxOCwgMHhCMSwgMHg3MSwgMHgwMiwgMHg5MywgMHhDMiwgMHhBNCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEM5LCAweDg5LCAweDQwLCAweEUyLCAweDFGLCAweEU3LCAweDVFLCAweDY4KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NTAsIDB4OEUsIDB4QUUsIDB4ODksIDB4MDEsIDB4RDQsIDB4MEMsIDB4RUIpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhBRSwgMHhEQSwgMHg1OCwgMHg3MCwgMHgyNCwgMHhGMiwgMHhFNCwgMHg1RiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDZGLCAweEM3LCAweDFELCAweEQ2LCAweDRBLCAweDZGLCAweDY2LCAweDRGKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4OTIsIDB4MUQsIDB4N0UsIDB4NEEsIDB4MkMsIDB4Q0EsIDB4RUMsIDB4M0IpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhBMSwgMHgwNiwgMHg3RiwgMHhBOCwgMHg5OSwgMHhFNCwgMHhEMywgMHg0RSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDJBLCAweDFELCAweDVBLCAweERGLCAweDVFLCAweDU4LCAweDM2LCAweDQ5KSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBicmFpbnBvb2xQNTEycjFfVF82X1lbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4OUMsIDB4QjksIDB4MzIsIDB4NjksIDB4MUYsIDB4NzIsIDB4MkEsIDB4QjMpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgxQywgMHg3MywgMHhFMiwgMHgwMywgMHgzOSwgMHgzNSwgMHhBQSwgMHhBOCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEVCLCAweDVFLCAweDVELCAweDQ4LCAweEVGLCAweEFFLCAweDMwLCAweEY1KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NzcsIDB4N0YsIDB4NjAsIDB4MTksIDB4QUYsIDB4RUMsIDB4OUQsIDB4RkMpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhDQSwgMHhEOSwgMHgxOSwgMHhFNCwgMHgxQiwgMHg1NiwgMHgxNSwgMHg1RiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEJDLCAweEQ3LCAweDMzLCAweDU5LCAweDFGLCAweDQzLCAweDU5LCAweDJDKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QzYsIDB4Q0UsIDB4RUUsIDB4Q0EsIDB4QTQsIDB4N0YsIDB4NjMsIDB4RDQpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhCRCwgMHg0MCwgMHhDMCwgMHhGNiwgMHgxOSwgMHg4OSwgMHg0MywgMHgyMCksCit9Oworc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgYnJhaW5wb29sUDUxMnIxX1RfN19YW10gPSB7CisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEVCLCAweDkyLCAweEVBLCAweDA3LCAweDY1LCAweDc5LCAweDg2LCAweEQzKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RkYsIDB4QjcsIDB4MTMsIDB4NzUsIDB4RDMsIDB4QzUsIDB4MEEsIDB4QzkpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgyNiwgMHg5RSwgMHhGQSwgMHhFMSwgMHgxRiwgMHgwQywgMHhGOSwgMHg3NCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEI0LCAweDhDLCAweEVELCAweDVDLCAweDIxLCAweEU5LCAweDA5LCAweEREKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RjQsIDB4NEQsIDB4RDgsIDB4MTgsIDB4QzQsIDB4RjYsIDB4MzYsIDB4MzkpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhDNywgMHhDOSwgMHhBQywgMHg1QywgMHhGQSwgMHg2OSwgMHhBNCwgMHhBMCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDZCLCAweDhDLCAweDk0LCAweDFDLCAweDdCLCAweDcxLCAweDM2LCAweDU4KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4N0MsIDB4QkQsIDB4NDYsIDB4Q0UsIDB4QjcsIDB4MUQsIDB4OUMsIDB4NUUpLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IGJyYWlucG9vbFA1MTJyMV9UXzdfWVtdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhFQSwgMHhENiwgMHg5NiwgMHg0QiwgMHhBNiwgMHg0NywgMHhFQiwgMHhFNSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDVGLCAweEYxLCAweDVGLCAweDE1LCAweERFLCAweDk5LCAweDZGLCAweDY2KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MjEsIDB4QkQsIDB4RTUsIDB4MDQsIDB4QjgsIDB4RTYsIDB4QzAsIDB4MEIpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg0OSwgMHhEMywgMHhGMCwgMHgwNCwgMHgwMCwgMHhFNCwgMHgwNSwgMHhEQiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDk2LCAweEYzLCAweDA2LCAweEEzLCAweDFBLCAweEZGLCAweEVBLCAweDczKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MDgsIDB4MzIsIDB4QUEsIDB4OTksIDB4MzMsIDB4MDksIDB4QjYsIDB4MzQpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg2RSwgMHhFRiwgMHhGQywgMHg2MSwgMHgxMCwgMHg0MiwgMHgzMSwgMHg5NCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDM0LCAweEYxLCAweEY0LCAweDMzLCAweENGLCAweDI4LCAweDkwLCAweDlDKSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBicmFpbnBvb2xQNTEycjFfVF84X1hbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MTAsIDB4REUsIDB4RjksIDB4ODgsIDB4ODcsIDB4N0IsIDB4RUIsIDB4QzkpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg2NiwgMHhCOCwgMHhEQSwgMHhGQSwgMHhEQSwgMHgzRCwgMHhBNiwgMHgxNyksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEEwLCAweEYwLCAweDYyLCAweDgyLCAweDUzLCAweDMyLCAweDU1LCAweDAzKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MkYsIDB4QTUsIDB4MzIsIDB4NEEsIDB4MTksIDB4MTEsIDB4OUMsIDB4MTApLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgxNiwgMHhCMywgMHgyNywgMHhFOSwgMHg3NSwgMHg5MCwgMHgwNSwgMHgyRCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDYzLCAweDFDLCAweDkwLCAweDQ4LCAweDc3LCAweDAxLCAweDg1LCAweDFCKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QzcsIDB4RDYsIDB4OUIsIDB4ODQsIDB4QTgsIDB4RDcsIDB4QzUsIDB4MjgpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhFMSwgMHg3QSwgMHhDQiwgMHhCMywgMHgxMSwgMHg0NiwgMHhENywgMHg5OSksCit9Oworc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgYnJhaW5wb29sUDUxMnIxX1RfOF9ZW10gPSB7CisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDhCLCAweDIzLCAweEJGLCAweDc1LCAweDc1LCAweEExLCAweDk1LCAweDkwKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NEIsIDB4NjYsIDB4NUQsIDB4MzQsIDB4MTMsIDB4QTksIDB4MDMsIDB4QkUpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgyOSwgMHg4MCwgMHg5RCwgMHg1RiwgMHhEMiwgMHg0NCwgMHhFMSwgMHg2MiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDk2LCAweDVELCAweEJELCAweEE4LCAweEJGLCAweEI0LCAweDI1LCAweDFGKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NkEsIDB4OTksIDB4MUYsIDB4NTMsIDB4RjEsIDB4NTcsIDB4REIsIDB4RTcpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgyMSwgMHg3QywgMHhFNSwgMHhDNSwgMHg1MSwgMHgwQiwgMHg0QywgMHg5QiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDZCLCAweEIwLCAweDFBLCAweDlDLCAweDE2LCAweEIwLCAweDMyLCAweDFGKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RjQsIDB4RTMsIDB4Q0YsIDB4REQsIDB4NDgsIDB4QjQsIDB4N0IsIDB4MzMpLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IGJyYWlucG9vbFA1MTJyMV9UXzlfWFtdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhDMCwgMHhERCwgMHg5RSwgMHgzQywgMHg5OCwgMHgwRSwgMHg3NywgMHg2NSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDZDLCAweEFCLCAweDAxLCAweEQzLCAweDg3LCAweDc0LCAweDI1LCAweDRBKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4ODcsIDB4QTMsIDB4RTMsIDB4NzYsIDB4NDMsIDB4ODcsIDB4MTIsIDB4QkQpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg1NCwgMHhCMSwgMHgzQiwgMHg2MCwgMHg2NiwgMHhFQiwgMHg5OCwgMHg1NCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEQyLCAweDc4LCAweEM4LCAweEQ3LCAweDRFLCAweDc1LCAweENBLCAweDY5KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MDcsIDB4REYsIDB4NzEsIDB4MTksIDB4RTcsIDB4MDcsIDB4MzYsIDB4QjUpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg2RCwgMHhDOSwgMHhBOCwgMHg1RiwgMHg5MSwgMHhCRiwgMHg0NywgMHhCMiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDgwLCAweDk2LCAweDU4LCAweDk2LCAweDE4LCAweEI2LCAweEZBLCAweDAxKSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBicmFpbnBvb2xQNTEycjFfVF85X1lbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RDAsIDB4MkQsIDB4QTksIDB4OUIsIDB4ODYsIDB4REIsIDB4MEMsIDB4NEMpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhFNCwgMHgwQiwgMHgyRCwgMHg1NiwgMHg0QSwgMHhEMywgMHg5MywgMHg4QSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEI1LCAweDE1LCAweEUyLCAweDY1LCAweDEyLCAweDg2LCAweDBFLCAweEIyKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QjQsIDB4NDEsIDB4NEQsIDB4QzEsIDB4Q0IsIDB4RTQsIDB4QzMsIDB4RDcpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg2QSwgMHg1MywgMHgxMCwgMHhDQSwgMHhBMywgMHhBQywgMHg4MywgMHgyNiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDNFLCAweDAxLCAweDIyLCAweDk2LCAweDEwLCAweEFELCAweDY5LCAweERCKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NDIsIDB4NDYsIDB4NEUsIDB4RDgsIDB4RUEsIDB4RDYsIDB4OUQsIDB4RjMpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg0MywgMHgyRiwgMHg3RiwgMHg2MiwgMHg2MiwgMHg4MCwgMHhEMCwgMHgxNCksCit9Oworc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgYnJhaW5wb29sUDUxMnIxX1RfMTBfWFtdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhCMiwgMHhEQSwgMHgwMCwgMHg2MywgMHgwOSwgMHhCRCwgMHg2QSwgMHg4MyksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDBGLCAweEQ0LCAweDZFLCAweDQ4LCAweDA1LCAweEI3LCAweEY3LCAweDE3KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MTQsIDB4NEQsIDB4RDcsIDB4MDAsIDB4NEEsIDB4MTUsIDB4MjcsIDB4N0EpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgzQSwgMHgxNSwgMHhBQSwgMHgzNywgMHgyNywgMHgzNCwgMHgxOCwgMHgyNCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDNBLCAweDIwLCAweDJDLCAweDg0LCAweDFCLCAweDg4LCAweEJBLCAweDA1KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QUMsIDB4MDksIDB4RDYsIDB4MDQsIDB4QTIsIDB4NjAsIDB4ODQsIDB4NzIpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhDOCwgMHgwNCwgMHg5NCwgMHgwOCwgMHhENCwgMHhFRCwgMHg0NywgMHhEQiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDhCLCAweEYzLCAweEU0LCAweDNFLCAweEI5LCAweDVCLCAweDM1LCAweDQyKSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBicmFpbnBvb2xQNTEycjFfVF8xMF9ZW10gPSB7CisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDVGLCAweEQ4LCAweEI2LCAweDgwLCAweEQ2LCAweEYxLCAweDMwLCAweEREKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RDYsIDB4MTQsIDB4QTYsIDB4ODUsIDB4RUUsIDB4QTcsIDB4RDgsIDB4NjEpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhFNCwgMHg0OSwgMHgyQSwgMHgxRSwgMHg3QywgMHhFOSwgMHgyRCwgMHhFQyksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDNBLCAweDg3LCAweDU2LCAweDkxLCAweDAzLCAweDc3LCAweDRELCAweDU1KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MEUsIDB4NTIsIDB4RDQsIDB4QUEsIDB4RjcsIDB4RkEsIDB4QjAsIDB4QzUpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgwNCwgMHg1RCwgMHgxMSwgMHgzOSwgMHhCMSwgMHhFNywgMHg3NiwgMHhBRCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEQ2LCAweDEzLCAweEJDLCAweDM3LCAweDVELCAweDc0LCAweENELCAweEMyKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QzksIDB4NDgsIDB4MTQsIDB4MjMsIDB4MzAsIDB4RjgsIDB4NDYsIDB4MzcpLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IGJyYWlucG9vbFA1MTJyMV9UXzExX1hbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QUMsIDB4MjcsIDB4QjAsIDB4RDksIDB4QjIsIDB4NzQsIDB4QjQsIDB4QzApLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhFQSwgMHhBNiwgMHhCOSwgMHg2RiwgMHg5RiwgMHg2NCwgMHgzNiwgMHg5MiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDJFLCAweDJCLCAweDc4LCAweDQwLCAweDA1LCAweDJCLCAweDdCLCAweEE5KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QjMsIDB4NjgsIDB4M0EsIDB4QjYsIDB4NEEsIDB4RTIsIDB4REIsIDB4QjgpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgxRSwgMHgzMywgMHhENywgMHgzNCwgMHg4QiwgMHgyNSwgMHg0NSwgMHhFRiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDg5LCAweENFLCAweEE4LCAweEM5LCAweDAxLCAweEZCLCAweDBFLCAweDdCKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RTIsIDB4RjksIDB4NTEsIDB4NEMsIDB4MTIsIDB4OUYsIDB4NjAsIDB4RTQpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg2NywgMHg4NSwgMHhCRCwgMHgzMCwgMHgzNywgMHg4NCwgMHgzOSwgMHg0NCksCit9Oworc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgYnJhaW5wb29sUDUxMnIxX1RfMTFfWVtdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgyNiwgMHgzMywgMHhBRiwgMHgyRSwgMHhCOCwgMHgyRSwgMHhDQywgMHgzQyksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEE0LCAweEIxLCAweDczLCAweDU5LCAweDRFLCAweDBDLCAweDA5LCAweDRBKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4OEEsIDB4MjQsIDB4ODksIDB4ODEsIDB4MTIsIDB4RkYsIDB4QkIsIDB4NkUpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg3MSwgMHgzNywgMHgxQSwgMHg2NiwgMHhFRSwgMHhFRCwgMHhCNiwgMHg5QiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDE2LCAweEJELCAweDA0LCAweDIwLCAweDVELCAweEZCLCAweEJGLCAweDk1KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QTAsIDB4RjgsIDB4MzQsIDB4QTMsIDB4RkYsIDB4NDUsIDB4REUsIDB4OTIpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg5QiwgMHgxOCwgMHg3MywgMHhGMSwgMHgzMiwgMHgyNSwgMHg1OCwgMHhFQiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDYzLCAweEMxLCAweDE0LCAweEUzLCAweDlFLCAweDQwLCAweDBGLCAweDEyKSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBicmFpbnBvb2xQNTEycjFfVF8xMl9YW10gPSB7CisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDYxLCAweDA3LCAweDlELCAweDlDLCAweDAwLCAweEY3LCAweDU2LCAweDE5KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RkIsIDB4QkEsIDB4ODcsIDB4RjksIDB4MTUsIDB4MEMsIDB4NjYsIDB4NUQpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg3RSwgMHgxRiwgMHhDMSwgMHgyOCwgMHhCMCwgMHg0NywgMHgwRCwgMHhGNSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDk2LCAweENBLCAweDI3LCAweEVFLCAweDRCLCAweDIzLCAweDJCLCAweDg5KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4N0UsIDB4QjUsIDB4NjgsIDB4QzgsIDB4MTcsIDB4NUQsIDB4QzMsIDB4QUEpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgxNywgMHgwMiwgMHgwOCwgMHhFRSwgMHgyMCwgMHg5RCwgMHhFQSwgMHg2NCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEE3LCAweDE0LCAweDUwLCAweEQ0LCAweDdELCAweDVGLCAweENGLCAweEEwKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RDUsIDB4RkEsIDB4RjgsIDB4QTcsIDB4QzYsIDB4REMsIDB4MTQsIDB4OEMpLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IGJyYWlucG9vbFA1MTJyMV9UXzEyX1lbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NzYsIDB4QkQsIDB4MEEsIDB4MUEsIDB4MTgsIDB4OTgsIDB4REMsIDB4QjApLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg2MywgMHg2MywgMHgwMiwgMHhCNywgMHhENSwgMHg1QiwgMHg1QSwgMHhDNiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDUxLCAweEIxLCAweEQ3LCAweDRCLCAweDE1LCAweDM5LCAweDYxLCAweDVEKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NUMsIDB4MzIsIDB4RTEsIDB4OUUsIDB4NzAsIDB4MUIsIDB4Q0UsIDB4NTEpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg2NCwgMHhEOCwgMHgxOCwgMHg4MywgMHg1MiwgMHg5QiwgMHg2RCwgMHhBMiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEE0LCAweDU1LCAweDU2LCAweDE5LCAweDM0LCAweEE0LCAweEVBLCAweEZDKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MzAsIDB4QTksIDB4NTUsIDB4ODAsIDB4RTMsIDB4MTUsIDB4MzYsIDB4OEIpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhCQiwgMHgwNiwgMHhDOCwgMHgxRCwgMHgxNywgMHgwRCwgMHhBRCwgMHgxNiksCit9Oworc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgYnJhaW5wb29sUDUxMnIxX1RfMTNfWFtdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgyMCwgMHhENiwgMHhGMCwgMHhDQywgMHhGMywgMHg2MywgMHg1MywgMHhEMiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDI3LCAweDVBLCAweERDLCAweDQ2LCAweEJELCAweDBELCAweEFELCAweDk2KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MjEsIDB4MkYsIDB4MTEsIDB4NjAsIDB4MTUsIDB4NTEsIDB4NEEsIDB4RUEpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgzMywgMHhFMywgMHg5MywgMHgzOCwgMHhENSwgMHg4MywgMHhBQSwgMHgwRCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDkwLCAweEE2LCAweENDLCAweEIxLCAweEZELCAweEJCLCAweDFBLCAweDBGKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4M0IsIDB4NTQsIDB4QzgsIDB4NTQsIDB4NkYsIDB4NzksIDB4MUEsIDB4NTkpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgzRiwgMHg0QSwgMHhEQSwgMHgyOCwgMHg5MiwgMHg5NywgMHg5RCwgMHg3RiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEQ2LCAweDRCLCAweERCLCAweEM3LCAweDUyLCAweEM1LCAweDY2LCAweDM0KSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBicmFpbnBvb2xQNTEycjFfVF8xM19ZW10gPSB7CisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDA1LCAweDdFLCAweDkyLCAweDUzLCAweDMwLCAweDkzLCAweEZELCAweEZGKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QTAsIDB4MTYsIDB4NkEsIDB4QjEsIDB4OTEsIDB4MEEsIDB4QjQsIDB4NTIpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg2RCwgMHg5RCwgMHg0MCwgMHgzRiwgMHhFMywgMHhGMSwgMHgwMSwgMHg0NiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDEzLCAweDBFLCAweEQ4LCAweEVELCAweDExLCAweDhFLCAweDRDLCAweEVEKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4ODYsIDB4NEEsIDB4MUIsIDB4ODgsIDB4REYsIDB4OEQsIDB4MjksIDB4RTcpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg5NywgMHgyMywgMHgyMSwgMHgxMSwgMHhBQiwgMHg3NywgMHg4MSwgMHg2MiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDBCLCAweEFGLCAweDExLCAweEZBLCAweEJBLCAweDQwLCAweDYzLCAweEU3KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MkIsIDB4NkYsIDB4OEQsIDB4ODAsIDB4REYsIDB4NjcsIDB4RjUsIDB4NDQpLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IGJyYWlucG9vbFA1MTJyMV9UXzE0X1hbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QjIsIDB4OEIsIDB4QjcsIDB4MDgsIDB4RjQsIDB4RDcsIDB4MkQsIDB4QTgpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhDNywgMHgyQiwgMHgzMCwgMHgwMiwgMHg0NSwgMHg3MSwgMHgwOCwgMHg0OSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDk3LCAweDNBLCAweENBLCAweDUwLCAweEY2LCAweEMyLCAweDE5LCAweDhDKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MTcsIDB4QjksIDB4OUIsIDB4M0UsIDB4NzMsIDB4OTUsIDB4MUQsIDB4NDkpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhCNiwgMHg2MCwgMHg1OSwgMHg0OCwgMHhDQiwgMHhEOCwgMHhENiwgMHhBQSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEYwLCAweEI5LCAweDZDLCAweDg5LCAweEFCLCAweDk5LCAweEE4LCAweEY4KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RUYsIDB4QTEsIDB4OEIsIDB4NEUsIDB4MDYsIDB4MTksIDB4RUMsIDB4OTkpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg3MCwgMHg5NSwgMHgwNCwgMHhDRiwgMHhENSwgMHg5NCwgMHhCMywgMHgwMiksCit9Oworc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgYnJhaW5wb29sUDUxMnIxX1RfMTRfWVtdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgyOSwgMHgzNSwgMHg5MywgMHg3QywgMHhCMywgMHhCOCwgMHg5RSwgMHgxQiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEM0LCAweDQ1LCAweDVDLCAweDdFLCAweEJGLCAweDc1LCAweDgxLCAweDBGKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4REMsIDB4RTgsIDB4MjQsIDB4REYsIDB4RUMsIDB4MkYsIDB4N0QsIDB4QjkpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhGMiwgMHg4QiwgMHhENSwgMHg2QSwgMHg5QiwgMHhBMCwgMHhFMCwgMHg0RiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDMyLCAweEUzLCAweDI3LCAweDgyLCAweERFLCAweERELCAweENBLCAweDRCKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QTcsIDB4NTcsIDB4NTYsIDB4NDYsIDB4MDUsIDB4MDYsIDB4MDEsIDB4MkUpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg3NCwgMHgzNSwgMHhBNywgMHg0NywgMHhFMiwgMHg2QiwgMHgyQywgMHg0RiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDM4LCAweDlELCAweDRDLCAweEVDLCAweDFGLCAweDExLCAweDc1LCAweDJCKSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBicmFpbnBvb2xQNTEycjFfVF8xNV9YW10gPSB7CisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEFDLCAweEFBLCAweDQxLCAweEMxLCAweEU5LCAweDBFLCAweEU5LCAweEFBKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MEEsIDB4Q0YsIDB4OUMsIDB4NEIsIDB4RTgsIDB4RUQsIDB4MEEsIDB4NDkpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgzRCwgMHg3MywgMHhDQSwgMHgwQywgMHg0NiwgMHgwQSwgMHg5QywgMHhFNCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDk5LCAweEUxLCAweDlFLCAweEJDLCAweEZFLCAweDQ0LCAweDYzLCAweDZEKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MzEsIDB4NDMsIDB4NzEsIDB4RUUsIDB4RjgsIDB4QzEsIDB4OEMsIDB4NUMpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg2QSwgMHg0QiwgMHhGMCwgMHg2OSwgMHgyNSwgMHhCRCwgMHg3MSwgMHgxQSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEZELCAweDlBLCAweEZFLCAweDgyLCAweEU3LCAweEMxLCAweEMxLCAweEVFKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RkMsIDB4NUEsIDB4NkUsIDB4NUUsIDB4OTcsIDB4NkEsIDB4MzUsIDB4OEQpLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IGJyYWlucG9vbFA1MTJyMV9UXzE1X1lbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QTIsIDB4MTgsIDB4NkMsIDB4N0UsIDB4QjgsIDB4OUUsIDB4NTcsIDB4MzIpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgzNSwgMHhCOSwgMHhDMSwgMHhEMCwgMHhGRSwgMHg3OCwgMHhGQiwgMHgzMiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDdDLCAweDA4LCAweEFFLCAweDQ2LCAweDM0LCAweEVBLCAweDdBLCAweDdGKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RTgsIDB4MUMsIDB4NTYsIDB4QTksIDB4MTgsIDB4MzcsIDB4RDQsIDB4OUUpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgyOCwgMHg2MywgMHhFOSwgMHgwQSwgMHhCNiwgMHgzOCwgMHgzQywgMHhDMSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDNFLCAweDRGLCAweEE0LCAweDZFLCAweDg1LCAweDMxLCAweDIzLCAweDUyKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MEQsIDB4QUQsIDB4QzQsIDB4QzMsIDB4QjEsIDB4NEIsIDB4MUMsIDB4ODIpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgzMCwgMHg1NiwgMHg0QSwgMHgzOCwgMHhCMywgMHg2QiwgMHg2RiwgMHgyQyksCit9Oworc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgYnJhaW5wb29sUDUxMnIxX1RfMTZfWFtdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg2NywgMHhDNywgMHgxOSwgMHhERSwgMHgyMSwgMHhFRCwgMHg4OSwgMHhEMCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDJGLCAweEJFLCAweEE2LCAweEFFLCAweEVCLCAweDlELCAweEE3LCAweDJBKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MDQsIDB4MEUsIDB4MTMsIDB4MUUsIDB4ODYsIDB4NTcsIDB4QzMsIDB4M0IpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgxRiwgMHg0QiwgMHgzMCwgMHg0NiwgMHg1MiwgMHhDMSwgMHhFQywgMHg1MiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDZFLCAweEQ1LCAweDQ0LCAweDMxLCAweDk2LCAweDNCLCAweDI2LCAweDI3KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NzcsIDB4NjgsIDB4QTgsIDB4NjcsIDB4NzgsIDB4MzksIDB4RTgsIDB4NjgpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg4RSwgMHg3OCwgMHhCNywgMHhERCwgMHhGMiwgMHg1OCwgMHhCNiwgMHgzRCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDgxLCAweDNDLCAweEIzLCAweDI2LCAweEM0LCAweDJDLCAweDhDLCAweEE1KSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBicmFpbnBvb2xQNTEycjFfVF8xNl9ZW10gPSB7CisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEI5LCAweDI0LCAweEU1LCAweDczLCAweEVFLCAweDlBLCAweDAyLCAweEE5KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RDksIDB4NkEsIDB4NjUsIDB4NjAsIDB4RjMsIDB4NjIsIDB4RTMsIDB4RTkpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhGQiwgMHgwNywgMHg4NCwgMHhFNiwgMHgzQiwgMHg0NiwgMHg2NSwgMHg5RiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEUxLCAweDhGLCAweDBDLCAweEIwLCAweEUxLCAweDA0LCAweDgyLCAweDlEKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RUIsIDB4MTMsIDB4QkYsIDB4M0QsIDB4QTAsIDB4NDgsIDB4QTIsIDB4NzQpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgwOCwgMHgyNiwgMHg3NiwgMHg3NCwgMHhBQiwgMHgwQiwgMHgyOSwgMHhFOCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDMwLCAweDZFLCAweDVGLCAweDAzLCAweDM0LCAweDdDLCAweDM4LCAweENFKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NEQsIDB4NzIsIDB4RjksIDB4M0IsIDB4M0MsIDB4QTQsIDB4QkMsIDB4N0MpLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IGJyYWlucG9vbFA1MTJyMV9UXzE3X1hbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NUMsIDB4Q0UsIDB4MTgsIDB4ODAsIDB4QjgsIDB4MjQsIDB4NDUsIDB4ODEpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhGMSwgMHgwOSwgMHgwMywgMHhCOCwgMHgwNiwgMHg2NCwgMHhGNywgMHhFQyksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEYxLCAweDI2LCAweEIxLCAweDEwLCAweDZELCAweDcxLCAweDEyLCAweDJFKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QUQsIDB4MTIsIDB4QzYsIDB4NkUsIDB4MUUsIDB4NkEsIDB4QzMsIDB4ODApLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhFNSwgMHhEMywgMHgwQSwgMHhERSwgMHhEOCwgMHg2QiwgMHgwNCwgMHg1QyksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDk2LCAweDg3LCAweDVCLCAweEFFLCAweERCLCAweDNDLCAweEMwLCAweEM1KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4OEUsIDB4RjUsIDB4RjksIDB4QzEsIDB4OUEsIDB4ODksIDB4QkIsIDB4N0UpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhFRCwgMHg2OSwgMHg3MiwgMHg4QiwgMHhBRSwgMHgzMiwgMHgxMywgMHgxMSksCit9Oworc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgYnJhaW5wb29sUDUxMnIxX1RfMTdfWVtdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhGOSwgMHgxNiwgMHgwNywgMHg1MCwgMHhGQSwgMHg0QywgMHhDRiwgMHhFOCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEY4LCAweDUwLCAweDIxLCAweEU5LCAweERFLCAweEVDLCAweDdFLCAweERGKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4N0MsIDB4MkYsIDB4RTgsIDB4ODMsIDB4MzAsIDB4MEIsIDB4NjUsIDB4MEUpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhBNSwgMHgwQiwgMHg5OSwgMHhBQywgMHhDOSwgMHhCQSwgMHg2QywgMHgyQSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEE3LCAweDU5LCAweDVBLCAweDBELCAweDdCLCAweDlFLCAweDA4LCAweEFEKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MzQsIDB4OTEsIDB4QjIsIDB4REMsIDB4OTAsIDB4Q0UsIDB4NjcsIDB4RUQpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhFMywgMHg5MywgMHg2MCwgMHgwQywgMHhENywgMHgxRiwgMHgyRiwgMHgxNyksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDE5LCAweDdGLCAweDlELCAweDQwLCAweEY4LCAweDc4LCAweDdBLCAweDU0KSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBicmFpbnBvb2xQNTEycjFfVF8xOF9YW10gPSB7CisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDEzLCAweDIyLCAweDk1LCAweEU4LCAweEVGLCAweDMxLCAweDU3LCAweDM1KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MkQsIDB4ODgsIDB4NTMsIDB4RkUsIDB4QUYsIDB4N0MsIDB4NDcsIDB4MTQpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgwRSwgMHhDRSwgMHhDQywgMHg3OSwgMHhFOCwgMHg5RiwgMHg4QywgMHhDNCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweERCLCAweDE2LCAweERELCAweDc3LCAweDZFLCAweDhBLCAweDczLCAweDk3KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QzAsIDB4MDcsIDB4OTcsIDB4MjEsIDB4M0IsIDB4RjgsIDB4NUYsIDB4QTgpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhDNiwgMHhCNSwgMHhEMiwgMHg4MSwgMHg4NCwgMHhGMCwgMHhFNywgMHg5RiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweENCLCAweDhGLCAweDc1LCAweDA5LCAweDZBLCAweDBFLCAweDUzLCAweEFEKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RTYsIDB4NEYsIDB4NzAsIDB4OTcsIDB4QzcsIDB4QUMsIDB4N0QsIDB4M0YpLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IGJyYWlucG9vbFA1MTJyMV9UXzE4X1lbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RjksIDB4M0MsIDB4NkEsIDB4QjQsIDB4MTAsIDB4QTksIDB4QzgsIDB4MUQpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhFRSwgMHhDNSwgMHhENiwgMHg2OSwgMHgxNiwgMHhCOCwgMHhBQywgMHgyNSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEFDLCAweDQ0LCAweERDLCAweEVCLCAweDQ4LCAweDU0LCAweDVELCAweDVGKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NkYsIDB4NDgsIDB4OUIsIDB4RDcsIDB4NzIsIDB4NjksIDB4QTQsIDB4OEEpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhCNCwgMHgwRCwgMHgzNiwgMHg5QSwgMHg2NiwgMHgwQiwgMHhFQywgMHgyNCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEJFLCAweEM2LCAweEQ0LCAweEI2LCAweDYwLCAweEU1LCAweEMzLCAweDNBKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QkEsIDB4MjksIDB4NDIsIDB4RTAsIDB4OUQsIDB4RkQsIDB4N0MsIDB4M0UpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg0MywgMHgxMCwgMHhCQSwgMHg1NSwgMHhCQywgMHgzQiwgMHgzOCwgMHg1RCksCit9Oworc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgYnJhaW5wb29sUDUxMnIxX1RfMTlfWFtdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgyNSwgMHg2NiwgMHhGQSwgMHgwNSwgMHg3MywgMHgwMywgMHgxQiwgMHg2OSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDExLCAweEE0LCAweDY2LCAweDEyLCAweDk2LCAweDdCLCAweDAyLCAweDRDKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NDQsIDB4QjUsIDB4REUsIDB4NkQsIDB4OTgsIDB4RDEsIDB4RDUsIDB4QTgpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhFMiwgMHhGNSwgMHg0NCwgMHhCOCwgMHg4RSwgMHhGNiwgMHg4QywgMHgwNSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDY4LCAweDE1LCAweDJCLCAweDcyLCAweEJDLCAweDQ5LCAweEU1LCAweERGKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NkMsIDB4NDQsIDB4RDcsIDB4REYsIDB4OEYsIDB4RUIsIDB4OEQsIDB4ODApLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgwNSwgMHg2NCwgMHg4OCwgMHhBQSwgMHhCNywgMHhFNCwgMHg3MCwgMHgxRCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDlDLCAweDE0LCAweEJCLCAweEU5LCAweDlCLCAweEI5LCAweDY1LCAweDVEKSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBicmFpbnBvb2xQNTEycjFfVF8xOV9ZW10gPSB7CisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDY2LCAweDhFLCAweDg4LCAweEY1LCAweEYxLCAweEMxLCAweDg5LCAweEEyKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MTYsIDB4MzAsIDB4NTMsIDB4RTYsIDB4RkIsIDB4MkQsIDB4ODIsIDB4QjQpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhBNywgMHhFNCwgMHhGRiwgMHhCQSwgMHgzMSwgMHg3OSwgMHhBQiwgMHhDMiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDQ1LCAweDA5LCAweEY3LCAweEI3LCAweDA5LCAweDc4LCAweDRDLCAweDkwKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MTAsIDB4QUUsIDB4QzIsIDB4NDQsIDB4REMsIDB4MTcsIDB4NzgsIDB4NDcpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhDNywgMHhENCwgMHgxNywgMHg0MywgMHgxOSwgMHg3NCwgMHg5RSwgMHgyMyksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDE1LCAweDY0LCAweDNCLCAweDczLCAweEEyLCAweDk5LCAweDI3LCAweDc2KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MDUsIDB4NzQsIDB4MzYsIDB4NUYsIDB4RDMsIDB4MTQsIDB4QjEsIDB4MzEpLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IGJyYWlucG9vbFA1MTJyMV9UXzIwX1hbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QUMsIDB4MDcsIDB4QUIsIDB4RkQsIDB4OUIsIDB4MDMsIDB4QzUsIDB4RDUpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhDNywgMHhCRSwgMHhCMCwgMHgxRCwgMHhGMiwgMHgwQywgMHg3MywgMHg3MyksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDk5LCAweEU3LCAweDdCLCAweDg3LCAweEQzLCAweDM0LCAweEZELCAweEUyKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4OUEsIDB4MjUsIDB4M0QsIDB4QzcsIDB4MzYsIDB4ODMsIDB4NTMsIDB4REMpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgyMiwgMHg3QywgMHhDRiwgMHg2MywgMHg1NSwgMHgxMiwgMHgxMSwgMHhCMCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEMwLCAweDM0LCAweDRELCAweDI3LCAweDkyLCAweEFDLCAweDE4LCAweDE2KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4OTgsIDB4NDIsIDB4NjEsIDB4OUQsIDB4MkUsIDB4RkYsIDB4MTMsIDB4MTYpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhGNCwgMHhERSwgMHg5MiwgMHg2NSwgMHg1NywgMHgwRCwgMHhCQywgMHgwQSksCit9Oworc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgYnJhaW5wb29sUDUxMnIxX1RfMjBfWVtdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhFRiwgMHg3QiwgMHg2RSwgMHhDNiwgMHgyQSwgMHgyMSwgMHg3NCwgMHgwQSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDM3LCAweEE3LCAweDUzLCAweDRELCAweDI5LCAweDM2LCAweEVGLCAweEU1KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RTEsIDB4RDYsIDB4NDEsIDB4QzcsIDB4OTksIDB4QUQsIDB4NTAsIDB4NTMpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg5OSwgMHhBQywgMHg0MSwgMHg5RiwgMHhGQiwgMHg0QywgMHg4NiwgMHhGMSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDhCLCAweEJCLCAweEU2LCAweDI1LCAweDI4LCAweEFBLCAweEVCLCAweDFFKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4OTIsIDB4MDQsIDB4QTIsIDB4QzMsIDB4QUEsIDB4MDgsIDB4OEEsIDB4Q0MpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg1QSwgMHgyQiwgMHg1QiwgMHhFMiwgMHg4RCwgMHg3NiwgMHhFQSwgMHgzNCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEIzLCAweDMzLCAweEQyLCAweDIxLCAweDRELCAweDYyLCAweEUzLCAweDhFKSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBicmFpbnBvb2xQNTEycjFfVF8yMV9YW10gPSB7CisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEY2LCAweDA2LCAweDhCLCAweDJCLCAweEMyLCAweEM0LCAweEIxLCAweEQyKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RkEsIDB4RjUsIDB4QTEsIDB4QzAsIDB4MDMsIDB4NkEsIDB4MjksIDB4MTIpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhGNSwgMHhBOSwgMHhFRiwgMHg1NSwgMHhCNiwgMHgxQSwgMHg5RiwgMHg2QiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDlCLCAweDU0LCAweDMyLCAweEJFLCAweDA2LCAweDQzLCAweEI1LCAweEZEKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RjcsIDB4RDYsIDB4RDksIDB4MjAsIDB4ODksIDB4QkUsIDB4RDQsIDB4MUIpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhFOCwgMHgyNiwgMHg5NSwgMHgxMCwgMHhDRSwgMHhCNCwgMHg4OCwgMHg3OSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEU2LCAweEE2LCAweDI3LCAweEFDLCAweDMyLCAweEJBLCAweEJELCAweEM3KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QTMsIDB4QTYsIDB4QUUsIDB4OUMsIDB4N0IsIDB4QkUsIDB4QTEsIDB4NjMpLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IGJyYWlucG9vbFA1MTJyMV9UXzIxX1lbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4OEIsIDB4Q0QsIDB4NEQsIDB4M0QsIDB4REYsIDB4OTYsIDB4QkIsIDB4N0QpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg3NywgMHhBNywgMHgxMSwgMHgwNiwgMHhDQywgMHgwRSwgMHgzMSwgMHg4MSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDIwLCAweEU0LCAweEY0LCAweEFELCAweDdCLCAweDVGLCAweEYxLCAweEVGKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RTQsIDB4NTQsIDB4QkUsIDB4RjQsIDB4OEEsIDB4MDMsIDB4NDcsIDB4REYpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhCNCwgMHg1MywgMHgwMCwgMHg3RiwgMHhCMCwgMHg4QSwgMHg2OCwgMHhBNiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEEwLCAweDE2LCAweEIxLCAweDczLCAweDZGLCAweDVCLCAweDBFLCAweEMzKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MkEsIDB4MzIsIDB4RTMsIDB4NDMsIDB4NjQsIDB4NzUsIDB4RkIsIDB4RkIpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhBMCwgMHgxOCwgMHg1NSwgMHg4QSwgMHg0RSwgMHg2RSwgMHgzNSwgMHg1NCksCit9Oworc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgYnJhaW5wb29sUDUxMnIxX1RfMjJfWFtdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg4MCwgMHg5NywgMHgxNSwgMHgxRSwgMHhDQiwgMHhGMiwgMHg5QywgMHhBNSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDJCLCAweEQxLCAweEJCLCAweEYzLCAweDcwLCAweEFELCAweDEzLCAweEFEKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RDgsIDB4OTYsIDB4QTQsIDB4QzUsIDB4NUUsIDB4REEsIDB4RDUsIDB4NTcpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgwNywgMHg4MSwgMHhFOSwgMHg2NSwgMHg2NiwgMHg3NiwgMHg0NywgMHg0NSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEM5LCAweDM1LCAweDg3LCAweDA2LCAweDczLCAweENGLCAweDM0LCAweEQyKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NUEsIDB4ODEsIDB4MTUsIDB4NDIsIDB4QTIsIDB4NzksIDB4NUIsIDB4NDIpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgwOCwgMHhBMiwgMHg3RCwgMHgwOSwgMHgxNCwgMHg2NCwgMHhDNiwgMHhBRSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDVFLCAweDZELCAweEM0LCAweEVELCAweEYxLCAweEQ2LCAweEU5LCAweDI0KSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBicmFpbnBvb2xQNTEycjFfVF8yMl9ZW10gPSB7CisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEI0LCAweEQ1LCAweEJCLCAweDI1LCAweEEzLCAweERELCAweEEzLCAweDg4KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NDYsIDB4RjIsIDB4NjgsIDB4NjcsIDB4MzksIDB4OEYsIDB4NzMsIDB4OTMpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhGMCwgMHg3NiwgMHgyOCwgMHg4OSwgMHhBRCwgMHgzMiwgMHhFMCwgMHhERiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEY4LCAweDkwLCAweENDLCAweDU3LCAweDU4LCAweEFBLCAweEM5LCAweDc1KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NUUsIDB4RDcsIDB4NDMsIDB4RDIsIDB4Q0UsIDB4NUUsIDB4QTAsIDB4MDgpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgzMywgMHhCMCwgMHhCOCwgMHhBNCwgMHg5RSwgMHg5NiwgMHgyNiwgMHg4NiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDk0LCAweDYxLCAweDFELCAweEYzLCAweDY1LCAweDVFLCAweDYwLCAweENBKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QzcsIDB4MUUsIDB4NjUsIDB4RUQsIDB4Q0YsIDB4MDcsIDB4NjAsIDB4MjApLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IGJyYWlucG9vbFA1MTJyMV9UXzIzX1hbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QTQsIDB4MzAsIDB4MTcsIDB4OEEsIDB4OTEsIDB4ODgsIDB4MEEsIDB4QTQpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgwNSwgMHg3RCwgMHgxOCwgMHhBNCwgMHhBQywgMHg1OSwgMHhGQywgMHg1RiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEE0LCAweDMxLCAweDhCLCAweDI1LCAweDY1LCAweDM5LCAweDlBLCAweERDKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MTUsIDB4MTYsIDB4NEIsIDB4NjgsIDB4QkEsIDB4NTksIDB4MTMsIDB4MkYpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg4RCwgMHhGRCwgMHhEMywgMHhDNSwgMHg1NiwgMHhDOSwgMHg4QywgMHg1RSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEJDLCAweEM2LCAweDlGLCAweEY0LCAweEU2LCAweEY3LCAweEI0LCAweDAxKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MkQsIDB4N0MsIDB4MDMsIDB4MDAsIDB4MjYsIDB4OUYsIDB4RDgsIDB4N0IpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgyNCwgMHgxRCwgMHg2RSwgMHgwMCwgMHhCOSwgMHgwMCwgMHg2RSwgMHg5MyksCit9Oworc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgYnJhaW5wb29sUDUxMnIxX1RfMjNfWVtdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg3NSwgMHg2MywgMHhEQSwgMHgwMywgMHgyQiwgMHhENSwgMHgwQiwgMHhGRSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDQ2LCAweEZDLCAweEUyLCAweEM4LCAweDQ3LCAweEYwLCAweEFFLCAweEYyKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NTEsIDB4NEMsIDB4RjcsIDB4NTAsIDB4MEMsIDB4NDgsIDB4MDYsIDB4MkEpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhERiwgMHgyQiwgMHgzMiwgMHg5OCwgMHgwRSwgMHg3RSwgMHg2MSwgMHg0MSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDVELCAweDAyLCAweDI3LCAweEZFLCAweDc1LCAweDg2LCAweERGLCAweDI0KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MkIsIDB4MzAsIDB4QjEsIDB4MjIsIDB4MzIsIDB4MUIsIDB4RkUsIDB4MjQpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhDMiwgMHgyNywgMHhGNywgMHg3OCwgMHg2RiwgMHhENywgMHhGRCwgMHhFNCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEEwLCAweDc4LCAweENDLCAweEVBLCAweEMwLCAweDUwLCAweDI0LCAweDQ0KSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBicmFpbnBvb2xQNTEycjFfVF8yNF9YW10gPSB7CisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDM3LCAweDJCLCAweDRGLCAweDdGLCAweDU4LCAweEU2LCAweEMyLCAweDcwKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MzcsIDB4NDMsIDB4RDUsIDB4QTcsIDB4MzUsIDB4M0MsIDB4ODAsIDB4QjgpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgxQSwgMHg2RCwgMHg0QiwgMHgxMiwgMHgwMCwgMHg3QiwgMHhFNiwgMHhBNiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDM3LCAweDE1LCAweEJELCAweEQwLCAweDlCLCAweENBLCAweEFBLCAweDgxKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4Q0YsIDB4Q0UsIDB4OUMsIDB4RTMsIDB4OEIsIDB4NjAsIDB4N0EsIDB4NTMpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgwQywgMHhEQSwgMHg0QiwgMHgwMywgMHhBNywgMHg4RCwgMHg0MywgMHgyMiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDU3LCAweEFGLCAweDAwLCAweDJCLCAweDMyLCAweEYwLCAweDIyLCAweDY4KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4REMsIDB4RDksIDB4OTksIDB4OTksIDB4QkUsIDB4NDMsIDB4OTksIDB4M0UpLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IGJyYWlucG9vbFA1MTJyMV9UXzI0X1lbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MUYsIDB4NzEsIDB4NDEsIDB4RjQsIDB4QjUsIDB4RkQsIDB4REQsIDB4MzYpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg5RCwgMHhFMiwgMHgyMCwgMHg0QywgMHhEMSwgMHgyRSwgMHgxRiwgMHgwNiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDk2LCAweDQzLCAweDQ4LCAweDc2LCAweDhBLCAweDQ5LCAweEFDLCAweDg3KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MEMsIDB4MUEsIDB4NTUsIDB4QTgsIDB4QTMsIDB4RDQsIDB4NTcsIDB4NzUpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg3QywgMHhBNiwgMHg4NCwgMHgzOSwgMHhDOSwgMHgxMywgMHhCQiwgMHg2MCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEQ5LCAweEZBLCAweEE5LCAweDcwLCAweERFLCAweDgzLCAweERELCAweEM5KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RUMsIDB4QzksIDB4RDksIDB4M0UsIDB4NDQsIDB4OTEsIDB4NjgsIDB4N0IpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhCNiwgMHg5RiwgMHg4NSwgMHg2RCwgMHhGNywgMHg1NCwgMHgzNiwgMHg4MiksCit9Oworc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgYnJhaW5wb29sUDUxMnIxX1RfMjVfWFtdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg2OCwgMHg2QiwgMHhBNiwgMHhBMywgMHhFNSwgMHhENCwgMHg0NiwgMHhEQiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDIzLCAweDNFLCAweERDLCAweDg0LCAweDdDLCAweDdCLCAweDI0LCAweDM0KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MTQsIDB4RUQsIDB4N0YsIDB4ODYsIDB4MDcsIDB4NkMsIDB4NTcsIDB4Q0EpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg5NSwgMHgwNiwgMHhGRSwgMHg1MiwgMHgxMiwgMHg3OSwgMHg2OSwgMHg1NiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDg0LCAweEQxLCAweDQ0LCAweDVGLCAweDIxLCAweDNBLCAweEMzLCAweDg0KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NUUsIDB4RDksIDB4NEEsIDB4QzAsIDB4NzUsIDB4QUIsIDB4MTcsIDB4QUMpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhGRiwgMHg4MSwgMHg5NCwgMHhCNiwgMHg4MCwgMHg2QiwgMHg2RiwgMHhDMyksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDA3LCAweEJFLCAweDhFLCAweEE1LCAweEFBLCAweEJDLCAweDFFLCAweDNFKSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBicmFpbnBvb2xQNTEycjFfVF8yNV9ZW10gPSB7CisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDg5LCAweEM3LCAweDg1LCAweEE2LCAweDU5LCAweDlCLCAweEIxLCAweDUyKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MUMsIDB4Q0UsIDB4NDAsIDB4RDEsIDB4RkIsIDB4REYsIDB4OTQsIDB4RjcpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgxOCwgMHhCOCwgMHg1RSwgMHhCRiwgMHg0NSwgMHhBOCwgMHgyRCwgMHgyRCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDk4LCAweDlDLCAweDA2LCAweDFCLCAweEE5LCAweDU3LCAweEI5LCAweDc5KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NTMsIDB4RTksIDB4Q0UsIDB4QTIsIDB4RDMsIDB4NzQsIDB4QTEsIDB4M0MpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhBQSwgMHg1RiwgMHgzNCwgMHg3OCwgMHhEQiwgMHhBRSwgMHgzQSwgMHgxNCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDdELCAweDMyLCAweDg0LCAweDNFLCAweDY4LCAweDZBLCAweDQzLCAweDBGKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4OEMsIDB4QkMsIDB4MzksIDB4MzYsIDB4QTQsIDB4QzUsIDB4QkIsIDB4MTEpLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IGJyYWlucG9vbFA1MTJyMV9UXzI2X1hbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4OEMsIDB4MDcsIDB4QTIsIDB4QjUsIDB4QzksIDB4MEYsIDB4NEQsIDB4MEYpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhFMywgMHgxRCwgMHg2NywgMHhFNiwgMHhGMSwgMHg0NiwgMHhFQiwgMHg3MSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEQ3LCAweDQxLCAweDIzLCAweDk1LCAweEU3LCAweEUwLCAweDEwLCAweEREKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QkUsIDB4NjksIDB4RkUsIDB4NjgsIDB4OEMsIDB4QzYsIDB4NUYsIDB4QjYpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhFMywgMHhCOSwgMHgyQiwgMHgzRCwgMHhEMiwgMHg0RiwgMHhEOCwgMHgxQSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEEzLCAweDA5LCAweEY1LCAweDVGLCAweENGLCAweEY2LCAweDkxLCAweDU3KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NjUsIDB4MTUsIDB4NDIsIDB4NkIsIDB4NkQsIDB4QjUsIDB4RjMsIDB4QjYpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhCRiwgMHg1NiwgMHg5RCwgMHhDNSwgMHhGRiwgMHhDQSwgMHgxMywgMHg5QiksCit9Oworc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgYnJhaW5wb29sUDUxMnIxX1RfMjZfWVtdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg0RCwgMHgzOCwgMHhFNiwgMHgyMywgMHg2MywgMHg0OCwgMHgzQywgMHhDQSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEQyLCAweDY4LCAweDNDLCAweEQxLCAweDNCLCAweEU5LCAweDNCLCAweDgyKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QjUsIDB4MDgsIDB4NTQsIDB4NDksIDB4RDEsIDB4NDYsIDB4NDUsIDB4MTMpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgwNywgMHg3MCwgMHg1MiwgMHg2RSwgMHg3OSwgMHhDNCwgMHg1RSwgMHg5NSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDM2LCAweERGLCAweEU4LCAweDVBLCAweDMyLCAweDgxLCAweERBLCAweEQzKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4M0MsIDB4MkQsIDB4OTQsIDB4NUIsIDB4QjUsIDB4MzUsIDB4OUYsIDB4MEEpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgyQSwgMHgxMiwgMHg4RCwgMHhDMywgMHgzNiwgMHgzNiwgMHhCMiwgMHgyQSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDM5LCAweDJGLCAweDIyLCAweDM4LCAweDVCLCAweDE4LCAweDRDLCAweDM1KSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBicmFpbnBvb2xQNTEycjFfVF8yN19YW10gPSB7CisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDEwLCAweEMxLCAweDIyLCAweDBFLCAweEYwLCAweDczLCAweDExLCAweDA1KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QjIsIDB4QUUsIDB4QTQsIDB4NTYsIDB4MTgsIDB4NjEsIDB4NjYsIDB4MTIpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg3OSwgMHhGQiwgMHg3MiwgMHgwOCwgMHg4NCwgMHgzOCwgMHg1MSwgMHhCMCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweERBLCAweDg2LCAweEE4LCAweEI5LCAweDMxLCAweDk5LCAweDI5LCAweEMzKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4OEEsIDB4RkIsIDB4QzMsIDB4NDIsIDB4QjMsIDB4QzcsIDB4NkYsIDB4M0EpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhEOCwgMHhGOCwgMHhFMSwgMHgwOSwgMHhCRSwgMHg3NSwgMHhCMCwgMHgyMiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDVBLCAweDdELCAweEZGLCAweEY0LCAweDk5LCAweEZDLCAweDEzLCAweEFCKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RTYsIDB4MUIsIDB4ODQsIDB4ODEsIDB4NDIsIDB4MjIsIDB4QzYsIDB4M0QpLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IGJyYWlucG9vbFA1MTJyMV9UXzI3X1lbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MjEsIDB4RTAsIDB4MzcsIDB4QTQsIDB4QTAsIDB4MkYsIDB4MzgsIDB4N0YpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhEMCwgMHgzRCwgMHhCNywgMHg0MCwgMHgyRiwgMHgzOSwgMHgzQywgMHg3QSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDdBLCAweDNCLCAweDhBLCAweDUxLCAweEFFLCAweDQwLCAweDQ5LCAweDdBKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MzYsIDB4MjAsIDB4OUYsIDB4REQsIDB4QTksIDB4RDAsIDB4NzcsIDB4QzcpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg3OCwgMHgxRCwgMHg2NCwgMHhEQSwgMHhBMCwgMHg1MywgMHhDNywgMHg3RCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDM3LCAweDdCLCAweDY2LCAweDU1LCAweDk0LCAweEQxLCAweDUxLCAweDQ0KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MEUsIDB4QTksIDB4QjUsIDB4NUIsIDB4MzgsIDB4MzUsIDB4NDAsIDB4QzApLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhDOCwgMHhDOSwgMHgwRiwgMHhGMCwgMHg3MywgMHg3OSwgMHg0MywgMHg2MSksCit9Oworc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgYnJhaW5wb29sUDUxMnIxX1RfMjhfWFtdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgxMCwgMHg0NywgMHg0NSwgMHg2OSwgMHg4MCwgMHg3MiwgMHg3MiwgMHg0MiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDcwLCAweDExLCAweDk5LCAweDU5LCAweERCLCAweDQ4LCAweDgwLCAweDM5KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NzUsIDB4NkUsIDB4M0QsIDB4RkMsIDB4MzcsIDB4MTUsIDB4RjQsIDB4QkYpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgxNywgMHhCQiwgMHg1QiwgMHhBNiwgMHgzNSwgMHg4RCwgMHgyOCwgMHgyMCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEFCLCAweDFBLCAweDNCLCAweDJDLCAweDhGLCAweEQzLCAweEFBLCAweDJEKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NTUsIDB4MUMsIDB4MUEsIDB4RjgsIDB4MDIsIDB4RDksIDB4N0IsIDB4NDEpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhBRiwgMHg2OSwgMHhBQywgMHhGOCwgMHg1NCwgMHgzMSwgMHgxNCwgMHhBMSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDQxLCAweDhBLCAweEU2LCAweERFLCAweDU4LCAweEI5LCAweEM0LCAweDdBKSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBicmFpbnBvb2xQNTEycjFfVF8yOF9ZW10gPSB7CisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDU3LCAweDgzLCAweDUyLCAweEZFLCAweEY5LCAweDdCLCAweEU5LCAweDFGKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MDcsIDB4QTIsIDB4NTUsIDB4NDYsIDB4MTUsIDB4NDksIDB4QzEsIDB4M0EpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgxRCwgMHhCQywgMHg1QywgMHg5MSwgMHhCRCwgMHhCOSwgMHg5QywgMHhGNCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEJCLCAweEZELCAweEIxLCAweDRFLCAweDVGLCAweDc0LCAweEVFLCAweDUzKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QjEsIDB4OEIsIDB4RDgsIDB4OEIsIDB4MTcsIDB4NzMsIDB4MUIsIDB4OTYpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgyMiwgMHg5MiwgMHhENywgMHg2NywgMHgwNiwgMHhBRCwgMHgyNSwgMHhDRCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDAxLCAweDBGLCAweDgwLCAweDI0LCAweEUyLCAweDI3LCAweDVGLCAweDhCKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NjEsIDB4MUMsIDB4Q0UsIDB4RDAsIDB4NjcsIDB4Q0EsIDB4RDQsIDB4MEIpLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IGJyYWlucG9vbFA1MTJyMV9UXzI5X1hbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4ODcsIDB4RjEsIDB4REQsIDB4MzMsIDB4NjYsIDB4RjksIDB4MDUsIDB4RDYpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgxRCwgMHhFNSwgMHg2QiwgMHg3OSwgMHhCRCwgMHg0OCwgMHg0MiwgMHhBQSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEQxLCAweDE0LCAweDUyLCAweEUzLCAweDUzLCAweEI0LCAweDUwLCAweEQ0KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MzIsIDB4ODQsIDB4NkMsIDB4Q0YsIDB4REEsIDB4QjIsIDB4MjAsIDB4MEEpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg3MCwgMHhENiwgMHgxQSwgMHhFNSwgMHhFMiwgMHgyOSwgMHg3MCwgMHhDRSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEQ1LCAweDYxLCAweEZFLCAweEJCLCAweDIxLCAweDgyLCAweEQxLCAweEZFKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MkMsIDB4RjAsIDB4OUMsIDB4OEIsIDB4MUEsIDB4NDIsIDB4MzAsIDB4MDYpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg0MywgMHhENiwgMHg0OSwgMHg4MSwgMHg5MiwgMHhGMSwgMHhEMCwgMHg5MCksCit9Oworc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgYnJhaW5wb29sUDUxMnIxX1RfMjlfWVtdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhDOSwgMHg5MSwgMHg5MywgMHg2QSwgMHhBNiwgMHgyMiwgMHhFOSwgMHhENiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDA5LCAweERDLCAweEMzLCAweDY5LCAweDExLCAweDk1LCAweDdELCAweEVDKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MUMsIDB4QTMsIDB4OUQsIDB4ODcsIDB4NUUsIDB4NjQsIDB4NDEsIDB4QTIpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhCRSwgMHg4NywgMHg1QSwgMHgxNSwgMHhCRCwgMHg2RSwgMHgzQywgMHg4RCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEQwLCAweDhELCAweDUwLCAweENDLCAweENGLCAweEI3LCAweDhGLCAweDBCKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MzgsIDB4NjUsIDB4Q0QsIDB4MzEsIDB4MzAsIDB4RjEsIDB4NjgsIDB4MTMpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgxMCwgMHg1QywgMHg2NiwgMHg2NywgMHg5MiwgMHgzMCwgMHg1NywgMHg5NSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDIzLCAweDlCLCAweDAxLCAweDNELCAweDIwLCAweDhCLCAweEQxLCAweDBEKSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBicmFpbnBvb2xQNTEycjFfVF8zMF9YW10gPSB7CisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEFCLCAweEMwLCAweEU2LCAweDRGLCAweERFLCAweDYyLCAweEFCLCAweEIzKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QTQsIDB4NDgsIDB4QjMsIDB4MUMsIDB4MEYsIDB4MTYsIDB4OTMsIDB4NDUpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHg3NywgMHg2MywgMHhCRCwgMHgxRiwgMHgxNiwgMHg1MCwgMHg1NiwgMHg5OCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDVELCAweDA2LCAweEJDLCAweEU5LCAweDI3LCAweDFDLCAweDlBLCAweDdCKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RjgsIDB4RkUsIDB4MjEsIDB4QzUsIDB4MzksIDB4NTUsIDB4RTEsIDB4RkQpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhGNiwgMHhBOCwgMHhEMCwgMHg5NiwgMHgwRSwgMHhCNSwgMHhCMiwgMHg4NCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDNELCAweEU3LCAweDRCLCAweEYzLCAweDExLCAweDBDLCAweEM5LCAweDVCKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NDMsIDB4M0EsIDB4QzQsIDB4ODcsIDB4NzEsIDB4RUUsIDB4RkEsIDB4MTgpLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IGJyYWlucG9vbFA1MTJyMV9UXzMwX1lbXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QTcsIDB4NzcsIDB4RUUsIDB4ODEsIDB4NUUsIDB4OTYsIDB4RUEsIDB4NEIpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhFRSwgMHhERiwgMHhBOSwgMHhGNCwgMHg0RiwgMHg3QywgMHhCMiwgMHg0MyksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDlGLCAweEQ0LCAweERGLCAweDM1LCAweDYzLCAweDQ3LCAweDI1LCAweDhBKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4QTUsIDB4M0QsIDB4RkYsIDB4QTQsIDB4MDIsIDB4QzMsIDB4OTUsIDB4MTEpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhENSwgMHgxMCwgMHg3OCwgMHhEMSwgMHgyQiwgMHhCNywgMHhCRSwgMHgwRSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDBBLCAweEU5LCAweDU3LCAweEY5LCAweEUwLCAweEQ4LCAweEZDLCAweEJDKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RjMsIDB4QzQsIDB4MDEsIDB4RDYsIDB4QjQsIDB4RTcsIDB4NzgsIDB4RTIpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgwMiwgMHg2QywgMHhCOSwgMHgxMywgMHhBNCwgMHhFOCwgMHg2RCwgMHg2RiksCit9Oworc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgYnJhaW5wb29sUDUxMnIxX1RfMzFfWFtdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhFOCwgMHhCMCwgMHhDOSwgMHhDRCwgMHhCRiwgMHhBMiwgMHgxRSwgMHg2MyksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweERELCAweDRGLCAweDg2LCAweDIyLCAweDlCLCAweEVBLCAweEU4LCAweEJCKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NTAsIDB4NDYsIDB4REYsIDB4NDMsIDB4QjksIDB4ODIsIDB4MkQsIDB4MEEpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgwNywgMHgzMiwgMHhGMSwgMHg0RSwgMHg5NSwgMHg0MSwgMHhBRSwgMHg4RSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDUyLCAweDkzLCAweDI2LCAweEZDLCAweEQzLCAweDkwLCAweERDLCAweEVCKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MDQsIDB4MDUsIDB4NDUsIDB4Q0EsIDB4RjksIDB4NUEsIDB4ODksIDB4OTMpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhDNSwgMHg4MiwgMHg2MywgMHg0RSwgMHg1NSwgMHgxRCwgMHgzQSwgMHgwOCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDdDLCAweDY5LCAweDUyLCAweDQ5LCAweEU5LCAweEVELCAweDU3LCAweDM0KSwKK307CitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBicmFpbnBvb2xQNTEycjFfVF8zMV9ZW10gPSB7CisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDcwLCAweDY0LCAweEU5LCAweEFDLCAweDRDLCAweDRBLCAweEVBLCAweDI1KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RTksIDB4RTksIDB4MEIsIDB4OTksIDB4RTcsIDB4RjksIDB4QTksIDB4MkMpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgyNCwgMHgwQywgMHhDMSwgMHhGNCwgMHg4RCwgMHgwNywgMHhCNiwgMHhCMSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEFELCAweDY4LCAweEZBLCAweDM1LCAweEU0LCAweDlFLCAweEFFLCAweEQ5KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4RjAsIDB4MkQsIDB4MUEsIDB4MTMsIDB4OEUsIDB4MDIsIDB4RTIsIDB4NjMpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHgyNywgMHgzOCwgMHgyOCwgMHg4NiwgMHg0NiwgMHg3QiwgMHgzQSwgMHhFMSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDNGLCAweDRDLCAweDY0LCAweDU5LCAweDBBLCAweEY5LCAweDAyLCAweEM0KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4NDEsIDB4NEYsIDB4MjMsIDB4QTIsIDB4QzMsIDB4RDUsIDB4RUYsIDB4NDIpLAorfTsKK3N0YXRpYyBjb25zdCBtYmVkdGxzX2VjcF9wb2ludCBicmFpbnBvb2xQNTEycjFfVFszMl0gPSB7CisgICAgRUNQX1BPSU5UX0lOSVRfWFlfWjEoYnJhaW5wb29sUDUxMnIxX1RfMF9YLCBicmFpbnBvb2xQNTEycjFfVF8wX1kpLAorICAgIEVDUF9QT0lOVF9JTklUX1hZX1owKGJyYWlucG9vbFA1MTJyMV9UXzFfWCwgYnJhaW5wb29sUDUxMnIxX1RfMV9ZKSwKKyAgICBFQ1BfUE9JTlRfSU5JVF9YWV9aMChicmFpbnBvb2xQNTEycjFfVF8yX1gsIGJyYWlucG9vbFA1MTJyMV9UXzJfWSksCisgICAgRUNQX1BPSU5UX0lOSVRfWFlfWjAoYnJhaW5wb29sUDUxMnIxX1RfM19YLCBicmFpbnBvb2xQNTEycjFfVF8zX1kpLAorICAgIEVDUF9QT0lOVF9JTklUX1hZX1owKGJyYWlucG9vbFA1MTJyMV9UXzRfWCwgYnJhaW5wb29sUDUxMnIxX1RfNF9ZKSwKKyAgICBFQ1BfUE9JTlRfSU5JVF9YWV9aMChicmFpbnBvb2xQNTEycjFfVF81X1gsIGJyYWlucG9vbFA1MTJyMV9UXzVfWSksCisgICAgRUNQX1BPSU5UX0lOSVRfWFlfWjAoYnJhaW5wb29sUDUxMnIxX1RfNl9YLCBicmFpbnBvb2xQNTEycjFfVF82X1kpLAorICAgIEVDUF9QT0lOVF9JTklUX1hZX1owKGJyYWlucG9vbFA1MTJyMV9UXzdfWCwgYnJhaW5wb29sUDUxMnIxX1RfN19ZKSwKKyAgICBFQ1BfUE9JTlRfSU5JVF9YWV9aMChicmFpbnBvb2xQNTEycjFfVF84X1gsIGJyYWlucG9vbFA1MTJyMV9UXzhfWSksCisgICAgRUNQX1BPSU5UX0lOSVRfWFlfWjAoYnJhaW5wb29sUDUxMnIxX1RfOV9YLCBicmFpbnBvb2xQNTEycjFfVF85X1kpLAorICAgIEVDUF9QT0lOVF9JTklUX1hZX1owKGJyYWlucG9vbFA1MTJyMV9UXzEwX1gsIGJyYWlucG9vbFA1MTJyMV9UXzEwX1kpLAorICAgIEVDUF9QT0lOVF9JTklUX1hZX1owKGJyYWlucG9vbFA1MTJyMV9UXzExX1gsIGJyYWlucG9vbFA1MTJyMV9UXzExX1kpLAorICAgIEVDUF9QT0lOVF9JTklUX1hZX1owKGJyYWlucG9vbFA1MTJyMV9UXzEyX1gsIGJyYWlucG9vbFA1MTJyMV9UXzEyX1kpLAorICAgIEVDUF9QT0lOVF9JTklUX1hZX1owKGJyYWlucG9vbFA1MTJyMV9UXzEzX1gsIGJyYWlucG9vbFA1MTJyMV9UXzEzX1kpLAorICAgIEVDUF9QT0lOVF9JTklUX1hZX1owKGJyYWlucG9vbFA1MTJyMV9UXzE0X1gsIGJyYWlucG9vbFA1MTJyMV9UXzE0X1kpLAorICAgIEVDUF9QT0lOVF9JTklUX1hZX1owKGJyYWlucG9vbFA1MTJyMV9UXzE1X1gsIGJyYWlucG9vbFA1MTJyMV9UXzE1X1kpLAorICAgIEVDUF9QT0lOVF9JTklUX1hZX1owKGJyYWlucG9vbFA1MTJyMV9UXzE2X1gsIGJyYWlucG9vbFA1MTJyMV9UXzE2X1kpLAorICAgIEVDUF9QT0lOVF9JTklUX1hZX1owKGJyYWlucG9vbFA1MTJyMV9UXzE3X1gsIGJyYWlucG9vbFA1MTJyMV9UXzE3X1kpLAorICAgIEVDUF9QT0lOVF9JTklUX1hZX1owKGJyYWlucG9vbFA1MTJyMV9UXzE4X1gsIGJyYWlucG9vbFA1MTJyMV9UXzE4X1kpLAorICAgIEVDUF9QT0lOVF9JTklUX1hZX1owKGJyYWlucG9vbFA1MTJyMV9UXzE5X1gsIGJyYWlucG9vbFA1MTJyMV9UXzE5X1kpLAorICAgIEVDUF9QT0lOVF9JTklUX1hZX1owKGJyYWlucG9vbFA1MTJyMV9UXzIwX1gsIGJyYWlucG9vbFA1MTJyMV9UXzIwX1kpLAorICAgIEVDUF9QT0lOVF9JTklUX1hZX1owKGJyYWlucG9vbFA1MTJyMV9UXzIxX1gsIGJyYWlucG9vbFA1MTJyMV9UXzIxX1kpLAorICAgIEVDUF9QT0lOVF9JTklUX1hZX1owKGJyYWlucG9vbFA1MTJyMV9UXzIyX1gsIGJyYWlucG9vbFA1MTJyMV9UXzIyX1kpLAorICAgIEVDUF9QT0lOVF9JTklUX1hZX1owKGJyYWlucG9vbFA1MTJyMV9UXzIzX1gsIGJyYWlucG9vbFA1MTJyMV9UXzIzX1kpLAorICAgIEVDUF9QT0lOVF9JTklUX1hZX1owKGJyYWlucG9vbFA1MTJyMV9UXzI0X1gsIGJyYWlucG9vbFA1MTJyMV9UXzI0X1kpLAorICAgIEVDUF9QT0lOVF9JTklUX1hZX1owKGJyYWlucG9vbFA1MTJyMV9UXzI1X1gsIGJyYWlucG9vbFA1MTJyMV9UXzI1X1kpLAorICAgIEVDUF9QT0lOVF9JTklUX1hZX1owKGJyYWlucG9vbFA1MTJyMV9UXzI2X1gsIGJyYWlucG9vbFA1MTJyMV9UXzI2X1kpLAorICAgIEVDUF9QT0lOVF9JTklUX1hZX1owKGJyYWlucG9vbFA1MTJyMV9UXzI3X1gsIGJyYWlucG9vbFA1MTJyMV9UXzI3X1kpLAorICAgIEVDUF9QT0lOVF9JTklUX1hZX1owKGJyYWlucG9vbFA1MTJyMV9UXzI4X1gsIGJyYWlucG9vbFA1MTJyMV9UXzI4X1kpLAorICAgIEVDUF9QT0lOVF9JTklUX1hZX1owKGJyYWlucG9vbFA1MTJyMV9UXzI5X1gsIGJyYWlucG9vbFA1MTJyMV9UXzI5X1kpLAorICAgIEVDUF9QT0lOVF9JTklUX1hZX1owKGJyYWlucG9vbFA1MTJyMV9UXzMwX1gsIGJyYWlucG9vbFA1MTJyMV9UXzMwX1kpLAorICAgIEVDUF9QT0lOVF9JTklUX1hZX1owKGJyYWlucG9vbFA1MTJyMV9UXzMxX1gsIGJyYWlucG9vbFA1MTJyMV9UXzMxX1kpLAorfTsKKyNlbHNlCisjZGVmaW5lIGJyYWlucG9vbFA1MTJyMV9UIE5VTEwKKyNlbmRpZgorI2VuZGlmIC8qIE1CRURUTFNfRUNQX0RQX0JQNTEyUjFfRU5BQkxFRCAqLworCisKKyNpZiBkZWZpbmVkKEVDUF9MT0FEX0dST1VQKSB8fCBkZWZpbmVkKE1CRURUTFNfRUNQX0RQX0NVUlZFMjU1MTlfRU5BQkxFRCkgfHwgXAorICAgIGRlZmluZWQoTUJFRFRMU19FQ1BfRFBfQ1VSVkU0NDhfRU5BQkxFRCkKKy8qCisgKiBDcmVhdGUgYW4gTVBJIGZyb20gZW1iZWRkZWQgY29uc3RhbnRzCisgKiAoYXNzdW1lcyBsZW4gaXMgYW4gZXhhY3QgbXVsdGlwbGUgb2Ygc2l6ZW9mKG1iZWR0bHNfbXBpX3VpbnQpIGFuZAorICogbGVuIDwgMTA0ODU3NikKKyAqLworc3RhdGljIGlubGluZSB2b2lkIGVjcF9tcGlfbG9hZChtYmVkdGxzX21waSAqWCwgY29uc3QgbWJlZHRsc19tcGlfdWludCAqcCwgc2l6ZV90IGxlbikKK3sKKyAgICBYLT5zID0gMTsKKyAgICBYLT5uID0gKHVuc2lnbmVkIHNob3J0KSAobGVuIC8gc2l6ZW9mKG1iZWR0bHNfbXBpX3VpbnQpKTsKKyAgICBYLT5wID0gKG1iZWR0bHNfbXBpX3VpbnQgKikgcDsKK30KKyNlbmRpZgorCisjaWYgZGVmaW5lZChFQ1BfTE9BRF9HUk9VUCkKKy8qCisgKiBTZXQgYW4gTVBJIHRvIHN0YXRpYyB2YWx1ZSAxCisgKi8KK3N0YXRpYyBpbmxpbmUgdm9pZCBlY3BfbXBpX3NldDEobWJlZHRsc19tcGkgKlgpCit7CisgICAgWC0+cyA9IDE7CisgICAgWC0+biA9IDE7CisgICAgWC0+cCA9IG1waV9vbmU7Cit9CisKKy8qCisgKiBNYWtlIGdyb3VwIGF2YWlsYWJsZSBmcm9tIGVtYmVkZGVkIGNvbnN0YW50cworICovCitzdGF0aWMgaW50IGVjcF9ncm91cF9sb2FkKG1iZWR0bHNfZWNwX2dyb3VwICpncnAsCisgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgKnAsICBzaXplX3QgcGxlbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbWJlZHRsc19tcGlfdWludCAqYSwgIHNpemVfdCBhbGVuLAorICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBtYmVkdGxzX21waV91aW50ICpiLCAgc2l6ZV90IGJsZW4sCisgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgKmd4LCBzaXplX3QgZ3hsZW4sCisgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgKmd5LCBzaXplX3QgZ3lsZW4sCisgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgKm4sICBzaXplX3QgbmxlbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbWJlZHRsc19lY3BfcG9pbnQgKlQpCit7CisgICAgZWNwX21waV9sb2FkKCZncnAtPlAsIHAsIHBsZW4pOworICAgIGlmIChhICE9IE5VTEwpIHsKKyAgICAgICAgZWNwX21waV9sb2FkKCZncnAtPkEsIGEsIGFsZW4pOworICAgIH0KKyAgICBlY3BfbXBpX2xvYWQoJmdycC0+QiwgYiwgYmxlbik7CisgICAgZWNwX21waV9sb2FkKCZncnAtPk4sIG4sIG5sZW4pOworCisgICAgZWNwX21waV9sb2FkKCZncnAtPkcuWCwgZ3gsIGd4bGVuKTsKKyAgICBlY3BfbXBpX2xvYWQoJmdycC0+Ry5ZLCBneSwgZ3lsZW4pOworICAgIGVjcF9tcGlfc2V0MSgmZ3JwLT5HLlopOworCisgICAgZ3JwLT5wYml0cyA9IG1iZWR0bHNfbXBpX2JpdGxlbigmZ3JwLT5QKTsKKyAgICBncnAtPm5iaXRzID0gbWJlZHRsc19tcGlfYml0bGVuKCZncnAtPk4pOworCisgICAgZ3JwLT5oID0gMTsKKworICAgIGdycC0+VCA9IChtYmVkdGxzX2VjcF9wb2ludCAqKSBUOworICAgIC8qCisgICAgICogU2V0IFRfc2l6ZSB0byAwIHRvIHByZXZlbnQgVCBmcmVlIGJ5IG1iZWR0bHNfZWNwX2dyb3VwX2ZyZWUuCisgICAgICovCisgICAgZ3JwLT5UX3NpemUgPSAwOworCisgICAgcmV0dXJuIDA7Cit9CisjZW5kaWYgLyogRUNQX0xPQURfR1JPVVAgKi8KKworI2lmIGRlZmluZWQoTUJFRFRMU19FQ1BfTklTVF9PUFRJTSkKKy8qIEZvcndhcmQgZGVjbGFyYXRpb25zICovCisjaWYgZGVmaW5lZChNQkVEVExTX0VDUF9EUF9TRUNQMTkyUjFfRU5BQkxFRCkKK3N0YXRpYyBpbnQgZWNwX21vZF9wMTkyKG1iZWR0bHNfbXBpICopOworTUJFRFRMU19TVEFUSUNfVEVTVEFCTEUKK2ludCBtYmVkdGxzX2VjcF9tb2RfcDE5Ml9yYXcobWJlZHRsc19tcGlfdWludCAqTnAsIHNpemVfdCBObik7CisjZW5kaWYKKyNpZiBkZWZpbmVkKE1CRURUTFNfRUNQX0RQX1NFQ1AyMjRSMV9FTkFCTEVEKQorc3RhdGljIGludCBlY3BfbW9kX3AyMjQobWJlZHRsc19tcGkgKik7CitNQkVEVExTX1NUQVRJQ19URVNUQUJMRQoraW50IG1iZWR0bHNfZWNwX21vZF9wMjI0X3JhdyhtYmVkdGxzX21waV91aW50ICpYLCBzaXplX3QgWF9saW1icyk7CisjZW5kaWYKKyNpZiBkZWZpbmVkKE1CRURUTFNfRUNQX0RQX1NFQ1AyNTZSMV9FTkFCTEVEKQorc3RhdGljIGludCBlY3BfbW9kX3AyNTYobWJlZHRsc19tcGkgKik7CitNQkVEVExTX1NUQVRJQ19URVNUQUJMRQoraW50IG1iZWR0bHNfZWNwX21vZF9wMjU2X3JhdyhtYmVkdGxzX21waV91aW50ICpYLCBzaXplX3QgWF9saW1icyk7CisjZW5kaWYKKyNpZiBkZWZpbmVkKE1CRURUTFNfRUNQX0RQX1NFQ1AzODRSMV9FTkFCTEVEKQorc3RhdGljIGludCBlY3BfbW9kX3AzODQobWJlZHRsc19tcGkgKik7CitNQkVEVExTX1NUQVRJQ19URVNUQUJMRQoraW50IG1iZWR0bHNfZWNwX21vZF9wMzg0X3JhdyhtYmVkdGxzX21waV91aW50ICpYLCBzaXplX3QgWF9saW1icyk7CisjZW5kaWYKKyNpZiBkZWZpbmVkKE1CRURUTFNfRUNQX0RQX1NFQ1A1MjFSMV9FTkFCTEVEKQorc3RhdGljIGludCBlY3BfbW9kX3A1MjEobWJlZHRsc19tcGkgKik7CitNQkVEVExTX1NUQVRJQ19URVNUQUJMRQoraW50IG1iZWR0bHNfZWNwX21vZF9wNTIxX3JhdyhtYmVkdGxzX21waV91aW50ICpOX3AsIHNpemVfdCBOX24pOworI2VuZGlmCisKKyNkZWZpbmUgTklTVF9NT0RQKFApICAgICAgZ3JwLT5tb2RwID0gZWNwX21vZF8gIyMgUDsKKyNlbHNlCisjZGVmaW5lIE5JU1RfTU9EUChQKQorI2VuZGlmIC8qIE1CRURUTFNfRUNQX05JU1RfT1BUSU0gKi8KKworLyogQWRkaXRpb25hbCBmb3J3YXJkIGRlY2xhcmF0aW9ucyAqLworI2lmIGRlZmluZWQoTUJFRFRMU19FQ1BfRFBfQ1VSVkUyNTUxOV9FTkFCTEVEKQorc3RhdGljIGludCBlY3BfbW9kX3AyNTUobWJlZHRsc19tcGkgKik7CitNQkVEVExTX1NUQVRJQ19URVNUQUJMRQoraW50IG1iZWR0bHNfZWNwX21vZF9wMjU1X3JhdyhtYmVkdGxzX21waV91aW50ICpYLCBzaXplX3QgWF9saW1icyk7CisjZW5kaWYKKyNpZiBkZWZpbmVkKE1CRURUTFNfRUNQX0RQX0NVUlZFNDQ4X0VOQUJMRUQpCitzdGF0aWMgaW50IGVjcF9tb2RfcDQ0OChtYmVkdGxzX21waSAqKTsKK01CRURUTFNfU1RBVElDX1RFU1RBQkxFCitpbnQgbWJlZHRsc19lY3BfbW9kX3A0NDhfcmF3KG1iZWR0bHNfbXBpX3VpbnQgKiwgc2l6ZV90KTsKKyNlbmRpZgorI2lmIGRlZmluZWQoTUJFRFRMU19FQ1BfRFBfU0VDUDE5MksxX0VOQUJMRUQpCitzdGF0aWMgaW50IGVjcF9tb2RfcDE5MmsxKG1iZWR0bHNfbXBpICopOworTUJFRFRMU19TVEFUSUNfVEVTVEFCTEUKK2ludCBtYmVkdGxzX2VjcF9tb2RfcDE5MmsxX3JhdyhtYmVkdGxzX21waV91aW50ICpYLCBzaXplX3QgWF9saW1icyk7CisjZW5kaWYKKyNpZiBkZWZpbmVkKE1CRURUTFNfRUNQX0RQX1NFQ1AyMjRLMV9FTkFCTEVEKQorc3RhdGljIGludCBlY3BfbW9kX3AyMjRrMShtYmVkdGxzX21waSAqKTsKK01CRURUTFNfU1RBVElDX1RFU1RBQkxFCitpbnQgbWJlZHRsc19lY3BfbW9kX3AyMjRrMV9yYXcobWJlZHRsc19tcGlfdWludCAqWCwgc2l6ZV90IFhfbGltYnMpOworI2VuZGlmCisjaWYgZGVmaW5lZChNQkVEVExTX0VDUF9EUF9TRUNQMjU2SzFfRU5BQkxFRCkKK3N0YXRpYyBpbnQgZWNwX21vZF9wMjU2azEobWJlZHRsc19tcGkgKik7CitNQkVEVExTX1NUQVRJQ19URVNUQUJMRQoraW50IG1iZWR0bHNfZWNwX21vZF9wMjU2azFfcmF3KG1iZWR0bHNfbXBpX3VpbnQgKlgsIHNpemVfdCBYX2xpbWJzKTsKKyNlbmRpZgorCisjaWYgZGVmaW5lZChFQ1BfTE9BRF9HUk9VUCkKKyNkZWZpbmUgTE9BRF9HUk9VUF9BKEcpICAgZWNwX2dyb3VwX2xvYWQoZ3JwLCAgICAgICAgICAgIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRyAjIyBfcCwgIHNpemVvZihHICMjIF9wKSwgICBcCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEcgIyMgX2EsICBzaXplb2YoRyAjIyBfYSksICAgXAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHICMjIF9iLCAgc2l6ZW9mKEcgIyMgX2IpLCAgIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRyAjIyBfZ3gsIHNpemVvZihHICMjIF9neCksICAgXAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHICMjIF9neSwgc2l6ZW9mKEcgIyMgX2d5KSwgICBcCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEcgIyMgX24sICBzaXplb2YoRyAjIyBfbiksICAgXAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHICMjIF9UICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKQorCisjZGVmaW5lIExPQURfR1JPVVAoRykgICAgIGVjcF9ncm91cF9sb2FkKGdycCwgICAgICAgICAgICBcCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEcgIyMgX3AsICBzaXplb2YoRyAjIyBfcCksICAgXAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOVUxMLCAgICAgMCwgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRyAjIyBfYiwgIHNpemVvZihHICMjIF9iKSwgICBcCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEcgIyMgX2d4LCBzaXplb2YoRyAjIyBfZ3gpLCAgIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRyAjIyBfZ3ksIHNpemVvZihHICMjIF9neSksICAgXAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHICMjIF9uLCAgc2l6ZW9mKEcgIyMgX24pLCAgIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRyAjIyBfVCAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkKKyNlbmRpZiAvKiBFQ1BfTE9BRF9HUk9VUCAqLworCisjaWYgZGVmaW5lZChNQkVEVExTX0VDUF9EUF9DVVJWRTI1NTE5X0VOQUJMRUQpCisvKiBDb25zdGFudHMgdXNlZCBieSBlY3BfdXNlX2N1cnZlMjU1MTkoKSAqLworc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3NpbnQgY3VydmUyNTUxOV9hMjQgPSAweDAxREI0MjsKKworLyogUCA9IDJeMjU1IC0gMTkgKi8KK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IGN1cnZlMjU1MTlfcFtdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhFRCwgMFhGRiwgMFhGRiwgMFhGRiwgMFhGRiwgMFhGRiwgMFhGRiwgMFhGRiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgwWEZGLCAwWEZGLCAwWEZGLCAwWEZGLCAwWEZGLCAwWEZGLCAwWEZGLCAwWEZGKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDBYRkYsIDBYRkYsIDBYRkYsIDBYRkYsIDBYRkYsIDBYRkYsIDBYRkYsIDBYRkYpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMFhGRiwgMFhGRiwgMFhGRiwgMFhGRiwgMFhGRiwgMFhGRiwgMFhGRiwgMFg3RikKK307CisKKy8qIE4gPSAyXjI1MiArIDI3NzQyMzE3Nzc3MzcyMzUzNTM1ODUxOTM3NzkwODgzNjQ4NDkzICovCitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfdWludCBjdXJ2ZTI1NTE5X25bXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDBYRUQsIDBYRDMsIDBYRjUsIDBYNUMsIDBYMUEsIDBYNjMsIDBYMTIsIDBYNTgpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMFhENiwgMFg5QywgMFhGNywgMFhBMiwgMFhERSwgMFhGOSwgMFhERSwgMFgxNCksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgwWDAwLCAwWDAwLCAwWDAwLCAwWDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MTApCit9OworCisvKgorICogU3BlY2lhbGl6ZWQgZnVuY3Rpb24gZm9yIGNyZWF0aW5nIHRoZSBDdXJ2ZTI1NTE5IGdyb3VwCisgKi8KK3N0YXRpYyBpbnQgZWNwX3VzZV9jdXJ2ZTI1NTE5KG1iZWR0bHNfZWNwX2dyb3VwICpncnApCit7CisgICAgaW50IHJldCA9IE1CRURUTFNfRVJSX0VSUk9SX0NPUlJVUFRJT05fREVURUNURUQ7CisKKyAgICAvKiBBY3R1YWxseSAoIEEgKyAyICkgLyA0ICovCisgICAgTUJFRFRMU19NUElfQ0hLKG1iZWR0bHNfbXBpX2xzZXQoJmdycC0+QSwgY3VydmUyNTUxOV9hMjQpKTsKKworICAgIGVjcF9tcGlfbG9hZCgmZ3JwLT5QLCBjdXJ2ZTI1NTE5X3AsIHNpemVvZihjdXJ2ZTI1NTE5X3ApKTsKKworICAgIGdycC0+cGJpdHMgPSBtYmVkdGxzX21waV9iaXRsZW4oJmdycC0+UCk7CisKKyAgICBlY3BfbXBpX2xvYWQoJmdycC0+TiwgY3VydmUyNTUxOV9uLCBzaXplb2YoY3VydmUyNTUxOV9uKSk7CisKKyAgICAvKiBZIGludGVudGlvbmFsbHkgbm90IHNldCwgc2luY2Ugd2UgdXNlIHgveiBjb29yZGluYXRlcy4KKyAgICAgKiBUaGlzIGlzIHVzZWQgYXMgYSBtYXJrZXIgdG8gaWRlbnRpZnkgTW9udGdvbWVyeSBjdXJ2ZXMhICovCisgICAgTUJFRFRMU19NUElfQ0hLKG1iZWR0bHNfbXBpX2xzZXQoJmdycC0+Ry5YLCA5KSk7CisgICAgTUJFRFRMU19NUElfQ0hLKG1iZWR0bHNfbXBpX2xzZXQoJmdycC0+Ry5aLCAxKSk7CisgICAgbWJlZHRsc19tcGlfZnJlZSgmZ3JwLT5HLlkpOworCisgICAgLyogQWN0dWFsbHksIHRoZSByZXF1aXJlZCBtc2IgZm9yIHByaXZhdGUga2V5cyAqLworICAgIGdycC0+bmJpdHMgPSAyNTQ7CisKK2NsZWFudXA6CisgICAgaWYgKHJldCAhPSAwKSB7CisgICAgICAgIG1iZWR0bHNfZWNwX2dyb3VwX2ZyZWUoZ3JwKTsKKyAgICB9CisKKyAgICByZXR1cm4gcmV0OworfQorI2VuZGlmIC8qIE1CRURUTFNfRUNQX0RQX0NVUlZFMjU1MTlfRU5BQkxFRCAqLworCisjaWYgZGVmaW5lZChNQkVEVExTX0VDUF9EUF9DVVJWRTQ0OF9FTkFCTEVEKQorLyogQ29uc3RhbnRzIHVzZWQgYnkgZWNwX3VzZV9jdXJ2ZTQ0OCgpICovCitzdGF0aWMgY29uc3QgbWJlZHRsc19tcGlfc2ludCBjdXJ2ZTQ0OF9hMjQgPSAweDk4QUE7CisKKy8qIFAgPSAyXjQ0OCAtIDJeMjI0IC0gMSAqLworc3RhdGljIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgY3VydmU0NDhfcFtdID0geworICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMFhGRiwgMFhGRiwgMFhGRiwgMFhGRiwgMFhGRiwgMFhGRiwgMFhGRiwgMFhGRiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgwWEZGLCAwWEZGLCAwWEZGLCAwWEZGLCAwWEZGLCAwWEZGLCAwWEZGLCAwWEZGKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDBYRkYsIDBYRkYsIDBYRkYsIDBYRkYsIDBYRkYsIDBYRkYsIDBYRkYsIDBYRkYpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMFhGRiwgMFhGRiwgMFhGRiwgMFhGRiwgMFhGRSwgMFhGRiwgMFhGRiwgMFhGRiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgwWEZGLCAwWEZGLCAwWEZGLCAwWEZGLCAwWEZGLCAwWEZGLCAwWEZGLCAwWEZGKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDBYRkYsIDBYRkYsIDBYRkYsIDBYRkYsIDBYRkYsIDBYRkYsIDBYRkYsIDBYRkYpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMFhGRiwgMFhGRiwgMFhGRiwgMFhGRiwgMFhGRiwgMFhGRiwgMFhGRiwgMFhGRiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgwWDAwLCAwWDAwLCAwWDAwLCAwWDAwLCAwWDAwLCAwWDAwLCAwWDAwLCAwWDAwKQorfTsKKworLyogTiA9IDJeNDQ2IC0gMTM4MTgwNjY4MDk4OTUxMTUzNTIwMDczODY3NDg1MTU0MjY4ODAzMzY2OTI0NzQ4ODIxNzg2MDk4OTQ1NDc1MDM4ODUgKi8KK3N0YXRpYyBjb25zdCBtYmVkdGxzX21waV91aW50IGN1cnZlNDQ4X25bXSA9IHsKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDBYRjMsIDBYNDQsIDBYNTgsIDBYQUIsIDBYOTIsIDBYQzIsIDBYNzgsIDBYMjMpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMFg1NSwgMFg4RiwgMFhDNSwgMFg4RCwgMFg3MiwgMFhDMiwgMFg2QywgMFgyMSksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgwWDkwLCAwWDM2LCAwWEQ2LCAwWEFFLCAwWDQ5LCAwWERCLCAwWDRFLCAwWEM0KSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDBYRTksIDBYMjMsIDBYQ0EsIDBYN0MsIDBYRkYsIDBYRkYsIDBYRkYsIDBYRkYpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMFhGRiwgMFhGRiwgMFhGRiwgMFhGRiwgMFhGRiwgMFhGRiwgMFhGRiwgMFhGRiksCisgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgwWEZGLCAwWEZGLCAwWEZGLCAwWEZGLCAwWEZGLCAwWEZGLCAwWEZGLCAwWEZGKSwKKyAgICBNQkVEVExTX0JZVEVTX1RPX1RfVUlOVF84KDBYRkYsIDBYRkYsIDBYRkYsIDBYRkYsIDBYRkYsIDBYRkYsIDBYRkYsIDBYM0YpLAorICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMFgwMCwgMFgwMCwgMFgwMCwgMFgwMCwgMFgwMCwgMFgwMCwgMFgwMCwgMFgwMCkKK307CisKKy8qCisgKiBTcGVjaWFsaXplZCBmdW5jdGlvbiBmb3IgY3JlYXRpbmcgdGhlIEN1cnZlNDQ4IGdyb3VwCisgKi8KK3N0YXRpYyBpbnQgZWNwX3VzZV9jdXJ2ZTQ0OChtYmVkdGxzX2VjcF9ncm91cCAqZ3JwKQoreworICAgIGludCByZXQgPSBNQkVEVExTX0VSUl9FUlJPUl9DT1JSVVBUSU9OX0RFVEVDVEVEOworCisgICAgLyogQWN0dWFsbHkgKCBBICsgMiApIC8gNCAqLworICAgIE1CRURUTFNfTVBJX0NISyhtYmVkdGxzX21waV9sc2V0KCZncnAtPkEsIGN1cnZlNDQ4X2EyNCkpOworCisgICAgZWNwX21waV9sb2FkKCZncnAtPlAsIGN1cnZlNDQ4X3AsIHNpemVvZihjdXJ2ZTQ0OF9wKSk7CisgICAgZ3JwLT5wYml0cyA9IG1iZWR0bHNfbXBpX2JpdGxlbigmZ3JwLT5QKTsKKworICAgIC8qIFkgaW50ZW50aW9uYWxseSBub3Qgc2V0LCBzaW5jZSB3ZSB1c2UgeC96IGNvb3JkaW5hdGVzLgorICAgICAqIFRoaXMgaXMgdXNlZCBhcyBhIG1hcmtlciB0byBpZGVudGlmeSBNb250Z29tZXJ5IGN1cnZlcyEgKi8KKyAgICBNQkVEVExTX01QSV9DSEsobWJlZHRsc19tcGlfbHNldCgmZ3JwLT5HLlgsIDUpKTsKKyAgICBNQkVEVExTX01QSV9DSEsobWJlZHRsc19tcGlfbHNldCgmZ3JwLT5HLlosIDEpKTsKKyAgICBtYmVkdGxzX21waV9mcmVlKCZncnAtPkcuWSk7CisKKyAgICBlY3BfbXBpX2xvYWQoJmdycC0+TiwgY3VydmU0NDhfbiwgc2l6ZW9mKGN1cnZlNDQ4X24pKTsKKworICAgIC8qIEFjdHVhbGx5LCB0aGUgcmVxdWlyZWQgbXNiIGZvciBwcml2YXRlIGtleXMgKi8KKyAgICBncnAtPm5iaXRzID0gNDQ3OworCitjbGVhbnVwOgorICAgIGlmIChyZXQgIT0gMCkgeworICAgICAgICBtYmVkdGxzX2VjcF9ncm91cF9mcmVlKGdycCk7CisgICAgfQorCisgICAgcmV0dXJuIHJldDsKK30KKyNlbmRpZiAvKiBNQkVEVExTX0VDUF9EUF9DVVJWRTQ0OF9FTkFCTEVEICovCisKKy8qCisgKiBTZXQgYSBncm91cCB1c2luZyB3ZWxsLWtub3duIGRvbWFpbiBwYXJhbWV0ZXJzCisgKi8KK2ludCBtYmVkdGxzX2VjcF9ncm91cF9sb2FkKG1iZWR0bHNfZWNwX2dyb3VwICpncnAsIG1iZWR0bHNfZWNwX2dyb3VwX2lkIGlkKQoreworICAgIG1iZWR0bHNfZWNwX2dyb3VwX2ZyZWUoZ3JwKTsKKworICAgIG1iZWR0bHNfZWNwX2dyb3VwX2luaXQoZ3JwKTsKKworICAgIGdycC0+aWQgPSBpZDsKKworICAgIHN3aXRjaCAoaWQpIHsKKyNpZiBkZWZpbmVkKE1CRURUTFNfRUNQX0RQX1NFQ1AxOTJSMV9FTkFCTEVEKQorICAgICAgICBjYXNlIE1CRURUTFNfRUNQX0RQX1NFQ1AxOTJSMToKKyAgICAgICAgICAgIE5JU1RfTU9EUChwMTkyKTsKKyAgICAgICAgICAgIHJldHVybiBMT0FEX0dST1VQKHNlY3AxOTJyMSk7CisjZW5kaWYgLyogTUJFRFRMU19FQ1BfRFBfU0VDUDE5MlIxX0VOQUJMRUQgKi8KKworI2lmIGRlZmluZWQoTUJFRFRMU19FQ1BfRFBfU0VDUDIyNFIxX0VOQUJMRUQpCisgICAgICAgIGNhc2UgTUJFRFRMU19FQ1BfRFBfU0VDUDIyNFIxOgorICAgICAgICAgICAgTklTVF9NT0RQKHAyMjQpOworICAgICAgICAgICAgcmV0dXJuIExPQURfR1JPVVAoc2VjcDIyNHIxKTsKKyNlbmRpZiAvKiBNQkVEVExTX0VDUF9EUF9TRUNQMjI0UjFfRU5BQkxFRCAqLworCisjaWYgZGVmaW5lZChNQkVEVExTX0VDUF9EUF9TRUNQMjU2UjFfRU5BQkxFRCkKKyAgICAgICAgY2FzZSBNQkVEVExTX0VDUF9EUF9TRUNQMjU2UjE6CisgICAgICAgICAgICBOSVNUX01PRFAocDI1Nik7CisgICAgICAgICAgICByZXR1cm4gTE9BRF9HUk9VUChzZWNwMjU2cjEpOworI2VuZGlmIC8qIE1CRURUTFNfRUNQX0RQX1NFQ1AyNTZSMV9FTkFCTEVEICovCisKKyNpZiBkZWZpbmVkKE1CRURUTFNfRUNQX0RQX1NFQ1AzODRSMV9FTkFCTEVEKQorICAgICAgICBjYXNlIE1CRURUTFNfRUNQX0RQX1NFQ1AzODRSMToKKyAgICAgICAgICAgIE5JU1RfTU9EUChwMzg0KTsKKyAgICAgICAgICAgIHJldHVybiBMT0FEX0dST1VQKHNlY3AzODRyMSk7CisjZW5kaWYgLyogTUJFRFRMU19FQ1BfRFBfU0VDUDM4NFIxX0VOQUJMRUQgKi8KKworI2lmIGRlZmluZWQoTUJFRFRMU19FQ1BfRFBfU0VDUDUyMVIxX0VOQUJMRUQpCisgICAgICAgIGNhc2UgTUJFRFRMU19FQ1BfRFBfU0VDUDUyMVIxOgorICAgICAgICAgICAgTklTVF9NT0RQKHA1MjEpOworICAgICAgICAgICAgcmV0dXJuIExPQURfR1JPVVAoc2VjcDUyMXIxKTsKKyNlbmRpZiAvKiBNQkVEVExTX0VDUF9EUF9TRUNQNTIxUjFfRU5BQkxFRCAqLworCisjaWYgZGVmaW5lZChNQkVEVExTX0VDUF9EUF9TRUNQMTkySzFfRU5BQkxFRCkKKyAgICAgICAgY2FzZSBNQkVEVExTX0VDUF9EUF9TRUNQMTkySzE6CisgICAgICAgICAgICBncnAtPm1vZHAgPSBlY3BfbW9kX3AxOTJrMTsKKyAgICAgICAgICAgIHJldHVybiBMT0FEX0dST1VQX0Eoc2VjcDE5MmsxKTsKKyNlbmRpZiAvKiBNQkVEVExTX0VDUF9EUF9TRUNQMTkySzFfRU5BQkxFRCAqLworCisjaWYgZGVmaW5lZChNQkVEVExTX0VDUF9EUF9TRUNQMjI0SzFfRU5BQkxFRCkKKyAgICAgICAgY2FzZSBNQkVEVExTX0VDUF9EUF9TRUNQMjI0SzE6CisgICAgICAgICAgICBncnAtPm1vZHAgPSBlY3BfbW9kX3AyMjRrMTsKKyAgICAgICAgICAgIHJldHVybiBMT0FEX0dST1VQX0Eoc2VjcDIyNGsxKTsKKyNlbmRpZiAvKiBNQkVEVExTX0VDUF9EUF9TRUNQMjI0SzFfRU5BQkxFRCAqLworCisjaWYgZGVmaW5lZChNQkVEVExTX0VDUF9EUF9TRUNQMjU2SzFfRU5BQkxFRCkKKyAgICAgICAgY2FzZSBNQkVEVExTX0VDUF9EUF9TRUNQMjU2SzE6CisgICAgICAgICAgICBncnAtPm1vZHAgPSBlY3BfbW9kX3AyNTZrMTsKKyAgICAgICAgICAgIHJldHVybiBMT0FEX0dST1VQX0Eoc2VjcDI1NmsxKTsKKyNlbmRpZiAvKiBNQkVEVExTX0VDUF9EUF9TRUNQMjU2SzFfRU5BQkxFRCAqLworCisjaWYgZGVmaW5lZChNQkVEVExTX0VDUF9EUF9CUDI1NlIxX0VOQUJMRUQpCisgICAgICAgIGNhc2UgTUJFRFRMU19FQ1BfRFBfQlAyNTZSMToKKyAgICAgICAgICAgIHJldHVybiBMT0FEX0dST1VQX0EoYnJhaW5wb29sUDI1NnIxKTsKKyNlbmRpZiAvKiBNQkVEVExTX0VDUF9EUF9CUDI1NlIxX0VOQUJMRUQgKi8KKworI2lmIGRlZmluZWQoTUJFRFRMU19FQ1BfRFBfQlAzODRSMV9FTkFCTEVEKQorICAgICAgICBjYXNlIE1CRURUTFNfRUNQX0RQX0JQMzg0UjE6CisgICAgICAgICAgICByZXR1cm4gTE9BRF9HUk9VUF9BKGJyYWlucG9vbFAzODRyMSk7CisjZW5kaWYgLyogTUJFRFRMU19FQ1BfRFBfQlAzODRSMV9FTkFCTEVEICovCisKKyNpZiBkZWZpbmVkKE1CRURUTFNfRUNQX0RQX0JQNTEyUjFfRU5BQkxFRCkKKyAgICAgICAgY2FzZSBNQkVEVExTX0VDUF9EUF9CUDUxMlIxOgorICAgICAgICAgICAgcmV0dXJuIExPQURfR1JPVVBfQShicmFpbnBvb2xQNTEycjEpOworI2VuZGlmIC8qIE1CRURUTFNfRUNQX0RQX0JQNTEyUjFfRU5BQkxFRCAqLworCisjaWYgZGVmaW5lZChNQkVEVExTX0VDUF9EUF9DVVJWRTI1NTE5X0VOQUJMRUQpCisgICAgICAgIGNhc2UgTUJFRFRMU19FQ1BfRFBfQ1VSVkUyNTUxOToKKyAgICAgICAgICAgIGdycC0+bW9kcCA9IGVjcF9tb2RfcDI1NTsKKyAgICAgICAgICAgIHJldHVybiBlY3BfdXNlX2N1cnZlMjU1MTkoZ3JwKTsKKyNlbmRpZiAvKiBNQkVEVExTX0VDUF9EUF9DVVJWRTI1NTE5X0VOQUJMRUQgKi8KKworI2lmIGRlZmluZWQoTUJFRFRMU19FQ1BfRFBfQ1VSVkU0NDhfRU5BQkxFRCkKKyAgICAgICAgY2FzZSBNQkVEVExTX0VDUF9EUF9DVVJWRTQ0ODoKKyAgICAgICAgICAgIGdycC0+bW9kcCA9IGVjcF9tb2RfcDQ0ODsKKyAgICAgICAgICAgIHJldHVybiBlY3BfdXNlX2N1cnZlNDQ4KGdycCk7CisjZW5kaWYgLyogTUJFRFRMU19FQ1BfRFBfQ1VSVkU0NDhfRU5BQkxFRCAqLworCisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICBncnAtPmlkID0gTUJFRFRMU19FQ1BfRFBfTk9ORTsKKyAgICAgICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9FQ1BfRkVBVFVSRV9VTkFWQUlMQUJMRTsKKyAgICB9Cit9CisKKyNpZiBkZWZpbmVkKE1CRURUTFNfRUNQX05JU1RfT1BUSU0pCisvKgorICogRmFzdCByZWR1Y3Rpb24gbW9kdWxvIHRoZSBwcmltZXMgdXNlZCBieSB0aGUgTklTVCBjdXJ2ZXMuCisgKgorICogVGhlc2UgZnVuY3Rpb25zIGFyZSBjcml0aWNhbCBmb3Igc3BlZWQsIGJ1dCBub3QgbmVlZGVkIGZvciBjb3JyZWN0CisgKiBvcGVyYXRpb25zLiBTbywgd2UgbWFrZSB0aGUgY2hvaWNlIHRvIGhlYXZpbHkgcmVseSBvbiB0aGUgaW50ZXJuYWxzIG9mIG91cgorICogYmlnbnVtIGxpYnJhcnksIHdoaWNoIGNyZWF0ZXMgYSB0aWdodCBjb3VwbGluZyBiZXR3ZWVuIHRoZXNlIGZ1bmN0aW9ucyBhbmQKKyAqIG91ciBNUEkgaW1wbGVtZW50YXRpb24uICBIb3dldmVyLCB0aGUgY291cGxpbmcgYmV0d2VlbiB0aGUgRUNQIG1vZHVsZSBhbmQKKyAqIE1QSSByZW1haW5zIGxvb3NlLCBzaW5jZSB0aGVzZSBmdW5jdGlvbnMgY2FuIGJlIGRlYWN0aXZhdGVkIGF0IHdpbGwuCisgKi8KKworI2lmIGRlZmluZWQoTUJFRFRMU19FQ1BfRFBfU0VDUDE5MlIxX0VOQUJMRUQpCisvKgorICogQ29tcGFyZWQgdG8gdGhlIHdheSB0aGluZ3MgYXJlIHByZXNlbnRlZCBpbiBGSVBTIDE4Ni0zIEQuMiwKKyAqIHdlIHByb2NlZWQgaW4gY29sdW1ucywgZnJvbSByaWdodCAobGVhc3Qgc2lnbmlmaWNhbnQgY2h1bmspIHRvIGxlZnQsCisgKiBhZGRpbmcgY2h1bmtzIHRvIE4gaW4gcGxhY2UsIGFuZCBrZWVwaW5nIGEgY2FycnkgZm9yIHRoZSBuZXh0IGNodW5rLgorICogVGhpcyBhdm9pZHMgbW92aW5nIHRoaW5ncyBhcm91bmQgaW4gbWVtb3J5LCBhbmQgdXNlbGVzc2x5IGFkZGluZyB6ZXJvcywKKyAqIGNvbXBhcmVkIHRvIHRoZSBtb3JlIHN0cmFpZ2h0Zm9yd2FyZCwgbGluZS1vcmllbnRlZCBhcHByb2FjaC4KKyAqCisgKiBGb3IgdGhpcyBwcmltZSB3ZSBuZWVkIHRvIGhhbmRsZSBkYXRhIGluIGNodW5rcyBvZiA2NCBiaXRzLgorICogU2luY2UgdGhpcyBpcyBhbHdheXMgYSBtdWx0aXBsZSBvZiBvdXIgYmFzaWMgbWJlZHRsc19tcGlfdWludCwgd2UgY2FuCisgKiB1c2UgYSBtYmVkdGxzX21waV91aW50ICogdG8gZGVzaWduYXRlIHN1Y2ggYSBjaHVuaywgYW5kIHNtYWxsIGxvb3BzIHRvIGhhbmRsZSBpdC4KKyAqLworCisvKiBBZGQgNjQtYml0IGNodW5rcyAoZHN0ICs9IHNyYykgYW5kIHVwZGF0ZSBjYXJyeSAqLworc3RhdGljIGlubGluZSB2b2lkIGFkZDY0KG1iZWR0bHNfbXBpX3VpbnQgKmRzdCwgbWJlZHRsc19tcGlfdWludCAqc3JjLCBtYmVkdGxzX21waV91aW50ICpjYXJyeSkKK3sKKyAgICB1bnNpZ25lZCBjaGFyIGk7CisgICAgbWJlZHRsc19tcGlfdWludCBjID0gMDsKKyAgICBmb3IgKGkgPSAwOyBpIDwgOCAvIHNpemVvZihtYmVkdGxzX21waV91aW50KTsgaSsrLCBkc3QrKywgc3JjKyspIHsKKyAgICAgICAgKmRzdCArPSBjOyAgICAgIGMgID0gKCpkc3QgPCBjKTsKKyAgICAgICAgKmRzdCArPSAqc3JjOyAgIGMgKz0gKCpkc3QgPCAqc3JjKTsKKyAgICB9CisgICAgKmNhcnJ5ICs9IGM7Cit9CisKKy8qIEFkZCBjYXJyeSB0byBhIDY0LWJpdCBjaHVuayBhbmQgdXBkYXRlIGNhcnJ5ICovCitzdGF0aWMgaW5saW5lIHZvaWQgY2Fycnk2NChtYmVkdGxzX21waV91aW50ICpkc3QsIG1iZWR0bHNfbXBpX3VpbnQgKmNhcnJ5KQoreworICAgIHVuc2lnbmVkIGNoYXIgaTsKKyAgICBmb3IgKGkgPSAwOyBpIDwgOCAvIHNpemVvZihtYmVkdGxzX21waV91aW50KTsgaSsrLCBkc3QrKykgeworICAgICAgICAqZHN0ICs9ICpjYXJyeTsKKyAgICAgICAgKmNhcnJ5ICA9ICgqZHN0IDwgKmNhcnJ5KTsKKyAgICB9Cit9CisKKyNkZWZpbmUgV0lEVEggICAgICAgOCAvIHNpemVvZihtYmVkdGxzX21waV91aW50KQorI2RlZmluZSBBKGkpICAgICAgICBOcCArIChpKSAqIFdJRFRICisjZGVmaW5lIEFERChpKSAgICAgIGFkZDY0KHAsIEEoaSksICZjKQorI2RlZmluZSBORVhUICAgICAgICBwICs9IFdJRFRIOyBjYXJyeTY0KHAsICZjKQorI2RlZmluZSBMQVNUICAgICAgICBwICs9IFdJRFRIOyBkbyAqcCA9IDA7IHdoaWxlICgrK3AgPCBlbmQpCisjZGVmaW5lIFJFU0VUICAgICAgIGxhc3RfY2FycnlbMF0gPSBjOyBjID0gMDsgcCA9IE5wCisjZGVmaW5lIEFERF9MQVNUICAgIGFkZDY0KHAsIGxhc3RfY2FycnksICZjKQorCisvKgorICogRmFzdCBxdWFzaS1yZWR1Y3Rpb24gbW9kdWxvIHAxOTIgKEZJUFMgMTg2LTMgRC4yLjEpCisgKi8KK3N0YXRpYyBpbnQgZWNwX21vZF9wMTkyKG1iZWR0bHNfbXBpICpOKQoreworICAgIGludCByZXQgPSBNQkVEVExTX0VSUl9FUlJPUl9DT1JSVVBUSU9OX0RFVEVDVEVEOworICAgIHNpemVfdCBleHBlY3RlZF93aWR0aCA9IEJJVFNfVE9fTElNQlMoMTkyKSAqIDI7CisgICAgTUJFRFRMU19NUElfQ0hLKG1iZWR0bHNfbXBpX2dyb3coTiwgZXhwZWN0ZWRfd2lkdGgpKTsKKyAgICByZXQgPSBtYmVkdGxzX2VjcF9tb2RfcDE5Ml9yYXcoTi0+cCwgZXhwZWN0ZWRfd2lkdGgpOworCitjbGVhbnVwOgorICAgIHJldHVybiByZXQ7Cit9CisKK01CRURUTFNfU1RBVElDX1RFU1RBQkxFCitpbnQgbWJlZHRsc19lY3BfbW9kX3AxOTJfcmF3KG1iZWR0bHNfbXBpX3VpbnQgKk5wLCBzaXplX3QgTm4pCit7CisgICAgbWJlZHRsc19tcGlfdWludCBjID0gMCwgbGFzdF9jYXJyeVtXSURUSF0gPSB7IDAgfTsKKyAgICBtYmVkdGxzX21waV91aW50ICpwLCAqZW5kOworCisgICAgaWYgKE5uICE9IEJJVFNfVE9fTElNQlMoMTkyKSAqIDIpIHsKKyAgICAgICAgcmV0dXJuIE1CRURUTFNfRVJSX0VDUF9CQURfSU5QVVRfREFUQTsKKyAgICB9CisKKyAgICBwID0gTnA7CisgICAgZW5kID0gcCArIE5uOworCisgICAgQUREKDMpOyBBREQoNSk7ICAgICAgICAgTkVYVDsgICAvLyBBMCArPSBBMyArIEE1CisgICAgQUREKDMpOyBBREQoNCk7IEFERCg1KTsgTkVYVDsgICAvLyBBMSArPSBBMyArIEE0ICsgQTUKKyAgICBBREQoNCk7IEFERCg1KTsgICAgICAgICAgICAgICAgIC8vIEEyICs9IEE0ICsgQTUKKworICAgIFJFU0VUOworCisgICAgLyogVXNlIHRoZSByZWR1Y3Rpb24gZm9yIHRoZSBjYXJyeSBhcyB3ZWxsOgorICAgICAqIDJeMTkyICogbGFzdF9jYXJyeSA9IDJeNjQgKiBsYXN0X2NhcnJ5ICsgbGFzdF9jYXJyeSBtb2QgUDE5MgorICAgICAqIEl0IGNhbiBnZW5lcmF0ZSBhIGNhcnJ5LiAqLworICAgIEFERF9MQVNUOyBORVhUOyAgICAgICAgICAgICAgICAgLy8gQTAgKz0gbGFzdF9jYXJyeQorICAgIEFERF9MQVNUOyBORVhUOyAgICAgICAgICAgICAgICAgLy8gQTEgKz0gbGFzdF9jYXJyeQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gQTIgKz0gY2FycnkKKworICAgIFJFU0VUOworCisgICAgLyogVXNlIHRoZSByZWR1Y3Rpb24gZm9yIHRoZSBjYXJyeSBhcyB3ZWxsOgorICAgICAqIDJeMTkyICogbGFzdF9jYXJyeSA9IDJeNjQgKiBsYXN0X2NhcnJ5ICsgbGFzdF9jYXJyeSBtb2QgUDE5MgorICAgICAqLworICAgIEFERF9MQVNUOyBORVhUOyAgICAgICAgICAgICAgICAgLy8gQTAgKz0gbGFzdF9jYXJyeQorICAgIEFERF9MQVNUOyBORVhUOyAgICAgICAgICAgICAgICAgLy8gQTEgKz0gbGFzdF9jYXJyeQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gQTIgKz0gY2FycnkKKworICAgIExBU1Q7CisKKyAgICByZXR1cm4gMDsKK30KKworI3VuZGVmIFdJRFRICisjdW5kZWYgQQorI3VuZGVmIEFERAorI3VuZGVmIE5FWFQKKyN1bmRlZiBMQVNUCisjdW5kZWYgUkVTRVQKKyN1bmRlZiBBRERfTEFTVAorI2VuZGlmIC8qIE1CRURUTFNfRUNQX0RQX1NFQ1AxOTJSMV9FTkFCTEVEICovCisKKyNpZiBkZWZpbmVkKE1CRURUTFNfRUNQX0RQX1NFQ1AyMjRSMV9FTkFCTEVEKSB8fCAgIFwKKyAgICBkZWZpbmVkKE1CRURUTFNfRUNQX0RQX1NFQ1AyNTZSMV9FTkFCTEVEKSB8fCAgIFwKKyAgICBkZWZpbmVkKE1CRURUTFNfRUNQX0RQX1NFQ1AzODRSMV9FTkFCTEVEKQorCisvKgorICogVGhlIHJlYWRlciBpcyBhZHZpc2VkIHRvIGZpcnN0IHVuZGVyc3RhbmQgZWNwX21vZF9wMTkyKCkgc2luY2UgdGhlIHNhbWUKKyAqIGdlbmVyYWwgc3RydWN0dXJlIGlzIHVzZWQgaGVyZSwgYnV0IHdpdGggYWRkaXRpb25hbCBjb21wbGljYXRpb25zOgorICogKDEpIGNodW5rcyBvZiAzMiBiaXRzLCBhbmQgKDIpIHN1YnRyYWN0aW9ucy4KKyAqLworCisvKgorICogRm9yIHRoZXNlIHByaW1lcywgd2UgbmVlZCB0byBoYW5kbGUgZGF0YSBpbiBjaHVua3Mgb2YgMzIgYml0cy4KKyAqIFRoaXMgbWFrZXMgaXQgbW9yZSBjb21wbGljYXRlZCBpZiB3ZSB1c2UgNjQgYml0cyBsaW1icyBpbiBNUEksCisgKiB3aGljaCBwcmV2ZW50cyB1cyBmcm9tIHVzaW5nIGEgdW5pZm9ybSBhY2Nlc3MgbWV0aG9kIGFzIGZvciBwMTkyLgorICoKKyAqIFNvLCB3ZSBkZWZpbmUgYSBtaW5pIGFic3RyYWN0aW9uIGxheWVyIHRvIGFjY2VzcyAzMiBiaXQgY2h1bmtzLAorICogbG9hZCB0aGVtIGluICdjdXInIGZvciB3b3JrLCBhbmQgc3RvcmUgdGhlbSBiYWNrIGZyb20gJ2N1cicgd2hlbiBkb25lLgorICoKKyAqIFdoaWxlIGF0IGl0LCBhbHNvIGRlZmluZSB0aGUgc2l6ZSBvZiBOIGluIHRlcm1zIG9mIDMyLWJpdCBjaHVua3MuCisgKi8KKyNkZWZpbmUgTE9BRDMyICAgICAgY3VyID0gQShpKTsKKworI2lmIGRlZmluZWQoTUJFRFRMU19IQVZFX0lOVDMyKSAgLyogMzIgYml0ICovCisKKyNkZWZpbmUgTUFYMzIgICAgICAgWF9saW1icworI2RlZmluZSBBKGopICAgICAgICBYW2pdCisjZGVmaW5lIFNUT1JFMzIgICAgIFhbaV0gPSAobWJlZHRsc19tcGlfdWludCkgY3VyOworI2RlZmluZSBTVE9SRTAgICAgICBYW2ldID0gMDsKKworI2Vsc2UgLyogNjQgYml0ICovCisKKyNkZWZpbmUgTUFYMzIgICBYX2xpbWJzICogMgorI2RlZmluZSBBKGopICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIChqKSAlIDIgPyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICh1aW50MzJfdCkgKFhbKGopIC8gMl0gPj4gMzIpIDogICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICh1aW50MzJfdCkgKFhbKGopIC8gMl0pCisjZGVmaW5lIFNUT1JFMzIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgaWYgKGkgJSAyKSB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgIFhbaS8yXSAmPSAweDAwMDAwMDAwRkZGRkZGRkY7ICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgIFhbaS8yXSB8PSAodWludDY0X3QpIChjdXIpIDw8IDMyOyAgICAgICAgICAgICAgICAgICBcCisgICAgfSBlbHNlIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgIFhbaS8yXSAmPSAweEZGRkZGRkZGMDAwMDAwMDA7ICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgIFhbaS8yXSB8PSAodWludDMyX3QpIGN1cjsgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgfQorCisjZGVmaW5lIFNUT1JFMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgaWYgKGkgJSAyKSB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgIFhbaS8yXSAmPSAweDAwMDAwMDAwRkZGRkZGRkY7ICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgfSBlbHNlIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgIFhbaS8yXSAmPSAweEZGRkZGRkZGMDAwMDAwMDA7ICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgfQorCisjZW5kaWYKKworc3RhdGljIGlubGluZSBpbnQ4X3QgZXh0cmFjdF9jYXJyeShpbnQ2NF90IGN1cikKK3sKKyAgICByZXR1cm4gKGludDhfdCkgKGN1ciA+PiAzMik7Cit9CisKKyNkZWZpbmUgQUREKGopICAgIGN1ciArPSBBKGopCisjZGVmaW5lIFNVQihqKSAgICBjdXIgLT0gQShqKQorCisjZGVmaW5lIEFERF9DQVJSWShjYykgY3VyICs9IChjYykKKyNkZWZpbmUgU1VCX0NBUlJZKGNjKSBjdXIgLT0gKGNjKQorCisjZGVmaW5lIEFERF9MQVNUIEFERF9DQVJSWShsYXN0X2MpCisjZGVmaW5lIFNVQl9MQVNUIFNVQl9DQVJSWShsYXN0X2MpCisKKy8qCisgKiBIZWxwZXJzIGZvciB0aGUgbWFpbiAnbG9vcCcKKyAqLworI2RlZmluZSBJTklUKGIpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgaW50OF90IGMgPSAwLCBsYXN0X2M7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICBpbnQ2NF90IGN1cjsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIHNpemVfdCBpID0gMDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgTE9BRDMyOworCisjZGVmaW5lIE5FWFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICBjID0gZXh0cmFjdF9jYXJyeShjdXIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIFNUT1JFMzI7IGkrKzsgTE9BRDMyOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgQUREX0NBUlJZKGMpOworCisjZGVmaW5lIFJFU0VUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICBjID0gZXh0cmFjdF9jYXJyeShjdXIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIGxhc3RfYyA9IGM7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgU1RPUkUzMjsgaSA9IDA7IExPQUQzMjsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICBjID0gMDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorCisjZGVmaW5lIExBU1QgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICBjID0gZXh0cmFjdF9jYXJyeShjdXIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIFNUT1JFMzI7IGkrKzsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgaWYgKGMgIT0gMCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICByZXR1cm4gTUJFRFRMU19FUlJfRUNQX0JBRF9JTlBVVF9EQVRBOyAgICAgICAgICAgICAgXAorICAgIHdoaWxlIChpIDwgTUFYMzIpIHsgU1RPUkUwOyBpKys7IH0KKworI2lmIGRlZmluZWQoTUJFRFRMU19FQ1BfRFBfU0VDUDIyNFIxX0VOQUJMRUQpCisKKy8qCisgKiBGYXN0IHF1YXNpLXJlZHVjdGlvbiBtb2R1bG8gcDIyNCAoRklQUyAxODYtMyBELjIuMikKKyAqLworc3RhdGljIGludCBlY3BfbW9kX3AyMjQobWJlZHRsc19tcGkgKk4pCit7CisgICAgaW50IHJldCA9IE1CRURUTFNfRVJSX0VSUk9SX0NPUlJVUFRJT05fREVURUNURUQ7CisgICAgc2l6ZV90IGV4cGVjdGVkX3dpZHRoID0gQklUU19UT19MSU1CUygyMjQpICogMjsKKyAgICBNQkVEVExTX01QSV9DSEsobWJlZHRsc19tcGlfZ3JvdyhOLCBleHBlY3RlZF93aWR0aCkpOworICAgIHJldCA9IG1iZWR0bHNfZWNwX21vZF9wMjI0X3JhdyhOLT5wLCBleHBlY3RlZF93aWR0aCk7CitjbGVhbnVwOgorICAgIHJldHVybiByZXQ7Cit9CisKK01CRURUTFNfU1RBVElDX1RFU1RBQkxFCitpbnQgbWJlZHRsc19lY3BfbW9kX3AyMjRfcmF3KG1iZWR0bHNfbXBpX3VpbnQgKlgsIHNpemVfdCBYX2xpbWJzKQoreworICAgIGlmIChYX2xpbWJzICE9IEJJVFNfVE9fTElNQlMoMjI0KSAqIDIpIHsKKyAgICAgICAgcmV0dXJuIE1CRURUTFNfRVJSX0VDUF9CQURfSU5QVVRfREFUQTsKKyAgICB9CisKKyAgICBJTklUKDIyNCk7CisKKyAgICBTVUIoNyk7ICBTVUIoMTEpOyAgICAgICAgICAgTkVYVDsgICAvLyBBMCArPSAtQTcgIC0gQTExCisgICAgU1VCKDgpOyAgU1VCKDEyKTsgICAgICAgICAgIE5FWFQ7ICAgLy8gQTEgKz0gLUE4ICAtIEExMgorICAgIFNVQig5KTsgIFNVQigxMyk7ICAgICAgICAgICBORVhUOyAgIC8vIEEyICs9IC1BOSAgLSBBMTMKKyAgICBTVUIoMTApOyBBREQoNyk7ICBBREQoMTEpOyAgTkVYVDsgICAvLyBBMyArPSAtQTEwICsgQTcgKyBBMTEKKyAgICBTVUIoMTEpOyBBREQoOCk7ICBBREQoMTIpOyAgTkVYVDsgICAvLyBBNCArPSAtQTExICsgQTggKyBBMTIKKyAgICBTVUIoMTIpOyBBREQoOSk7ICBBREQoMTMpOyAgTkVYVDsgICAvLyBBNSArPSAtQTEyICsgQTkgKyBBMTMKKyAgICBTVUIoMTMpOyBBREQoMTApOyAgICAgICAgICAgICAgICAgICAvLyBBNiArPSAtQTEzICsgQTEwCisKKyAgICBSRVNFVDsKKworICAgIC8qIFVzZSAyXjIyNCA9IFAgKyAyXjk2IC0gMSB0byBtb2R1bG8gcmVkdWNlIHRoZSBmaW5hbCBjYXJyeSAqLworICAgIFNVQl9MQVNUOyBORVhUOyAgICAgICAgICAgICAgICAgICAgIC8vIEEwIC09IGxhc3RfYworICAgIDsgICAgICAgICBORVhUOyAgICAgICAgICAgICAgICAgICAgIC8vIEExCisgICAgOyAgICAgICAgIE5FWFQ7ICAgICAgICAgICAgICAgICAgICAgLy8gQTIKKyAgICBBRERfTEFTVDsgTkVYVDsgICAgICAgICAgICAgICAgICAgICAvLyBBMyArPSBsYXN0X2MKKyAgICA7ICAgICAgICAgTkVYVDsgICAgICAgICAgICAgICAgICAgICAvLyBBNAorICAgIDsgICAgICAgICBORVhUOyAgICAgICAgICAgICAgICAgICAgIC8vIEE1CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gQTYKKworICAgIC8qIFRoZSBjYXJyeSByZWR1Y3Rpb24gY2Fubm90IGdlbmVyYXRlIGEgY2FycnkKKyAgICAgKiAoc2VlIGNvbW1pdCA3M2U4NTUzIGZvciBkZXRhaWxzKSovCisKKyAgICBMQVNUOworCisgICAgcmV0dXJuIDA7Cit9CisKKyNlbmRpZiAvKiBNQkVEVExTX0VDUF9EUF9TRUNQMjI0UjFfRU5BQkxFRCAqLworCisjaWYgZGVmaW5lZChNQkVEVExTX0VDUF9EUF9TRUNQMjU2UjFfRU5BQkxFRCkKKworLyoKKyAqIEZhc3QgcXVhc2ktcmVkdWN0aW9uIG1vZHVsbyBwMjU2IChGSVBTIDE4Ni0zIEQuMi4zKQorICovCitzdGF0aWMgaW50IGVjcF9tb2RfcDI1NihtYmVkdGxzX21waSAqTikKK3sKKyAgICBpbnQgcmV0ID0gTUJFRFRMU19FUlJfRVJST1JfQ09SUlVQVElPTl9ERVRFQ1RFRDsKKyAgICBzaXplX3QgZXhwZWN0ZWRfd2lkdGggPSBCSVRTX1RPX0xJTUJTKDI1NikgKiAyOworICAgIE1CRURUTFNfTVBJX0NISyhtYmVkdGxzX21waV9ncm93KE4sIGV4cGVjdGVkX3dpZHRoKSk7CisgICAgcmV0ID0gbWJlZHRsc19lY3BfbW9kX3AyNTZfcmF3KE4tPnAsIGV4cGVjdGVkX3dpZHRoKTsKK2NsZWFudXA6CisgICAgcmV0dXJuIHJldDsKK30KKworTUJFRFRMU19TVEFUSUNfVEVTVEFCTEUKK2ludCBtYmVkdGxzX2VjcF9tb2RfcDI1Nl9yYXcobWJlZHRsc19tcGlfdWludCAqWCwgc2l6ZV90IFhfbGltYnMpCit7CisgICAgaWYgKFhfbGltYnMgIT0gQklUU19UT19MSU1CUygyNTYpICogMikgeworICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfRUNQX0JBRF9JTlBVVF9EQVRBOworICAgIH0KKworICAgIElOSVQoMjU2KTsKKworICAgIEFERCg4KTsgIEFERCg5KTsKKyAgICBTVUIoMTEpOyBTVUIoMTIpOyBTVUIoMTMpOyBTVUIoMTQpOyAgICAgICAgICAgICAgICAgICBORVhUOyAvLyBBMAorCisgICAgQUREKDkpOyAgQUREKDEwKTsKKyAgICBTVUIoMTIpOyBTVUIoMTMpOyBTVUIoMTQpOyBTVUIoMTUpOyAgICAgICAgICAgICAgICAgICBORVhUOyAvLyBBMQorCisgICAgQUREKDEwKTsgQUREKDExKTsKKyAgICBTVUIoMTMpOyBTVUIoMTQpOyBTVUIoMTUpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICBORVhUOyAvLyBBMgorCisgICAgQUREKDExKTsgQUREKDExKTsgQUREKDEyKTsgQUREKDEyKTsgQUREKDEzKTsKKyAgICBTVUIoMTUpOyBTVUIoOCk7ICBTVUIoOSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBORVhUOyAvLyBBMworCisgICAgQUREKDEyKTsgQUREKDEyKTsgQUREKDEzKTsgQUREKDEzKTsgQUREKDE0KTsKKyAgICBTVUIoOSk7ICBTVUIoMTApOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBORVhUOyAvLyBBNAorCisgICAgQUREKDEzKTsgQUREKDEzKTsgQUREKDE0KTsgQUREKDE0KTsgQUREKDE1KTsKKyAgICBTVUIoMTApOyBTVUIoMTEpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBORVhUOyAvLyBBNQorCisgICAgQUREKDE0KTsgQUREKDE0KTsgQUREKDE1KTsgQUREKDE1KTsgQUREKDE0KTsgQUREKDEzKTsKKyAgICBTVUIoOCk7ICBTVUIoOSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBORVhUOyAvLyBBNgorCisgICAgQUREKDE1KTsgQUREKDE1KTsgQUREKDE1KTsgQUREKDgpOworICAgIFNVQigxMCk7IFNVQigxMSk7IFNVQigxMik7IFNVQigxMyk7ICAgICAgICAgICAgICAgICAgICAgICAgIC8vIEE3CisKKyAgICBSRVNFVDsKKworICAgIC8qIFVzZSAyXjIyNCAqICgyXjMyIC0gMSkgKyAyXjE5MiArIDJeOTYgLSAxCisgICAgICogdG8gbW9kdWxvIHJlZHVjZSB0aGUgZmluYWwgY2FycnkuICovCisgICAgQUREX0xBU1Q7IE5FWFQ7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gQTAKKyAgICA7ICAgICAgICAgTkVYVDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBBMQorICAgIDsgICAgICAgICBORVhUOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIEEyCisgICAgU1VCX0xBU1Q7IE5FWFQ7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gQTMKKyAgICA7ICAgICAgICAgTkVYVDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBBNAorICAgIDsgICAgICAgICBORVhUOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIEE1CisgICAgU1VCX0xBU1Q7IE5FWFQ7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gQTYKKyAgICBBRERfTEFTVDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBBNworCisgICAgUkVTRVQ7CisKKyAgICAvKiBVc2UgMl4yMjQgKiAoMl4zMiAtIDEpICsgMl4xOTIgKyAyXjk2IC0gMQorICAgICAqIHRvIG1vZHVsbyByZWR1Y2UgdGhlIGNhcnJ5IGdlbmVyYXRlZCBieSB0aGUgcHJldmlvdXMgcmVkdWN0aW9uLiAqLworICAgIEFERF9MQVNUOyBORVhUOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIEEwCisgICAgOyAgICAgICAgIE5FWFQ7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gQTEKKyAgICA7ICAgICAgICAgTkVYVDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBBMgorICAgIFNVQl9MQVNUOyBORVhUOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIEEzCisgICAgOyAgICAgICAgIE5FWFQ7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gQTQKKyAgICA7ICAgICAgICAgTkVYVDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBBNQorICAgIFNVQl9MQVNUOyBORVhUOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIEE2CisgICAgQUREX0xBU1Q7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gQTcKKworICAgIExBU1Q7CisKKyAgICByZXR1cm4gMDsKK30KKworI2VuZGlmIC8qIE1CRURUTFNfRUNQX0RQX1NFQ1AyNTZSMV9FTkFCTEVEICovCisKKyNpZiBkZWZpbmVkKE1CRURUTFNfRUNQX0RQX1NFQ1AzODRSMV9FTkFCTEVEKQorLyoKKyAqIEZhc3QgcXVhc2ktcmVkdWN0aW9uIG1vZHVsbyBwMzg0IChGSVBTIDE4Ni0zIEQuMi40KQorICovCitzdGF0aWMgaW50IGVjcF9tb2RfcDM4NChtYmVkdGxzX21waSAqTikKK3sKKyAgICBpbnQgcmV0ID0gTUJFRFRMU19FUlJfRVJST1JfQ09SUlVQVElPTl9ERVRFQ1RFRDsKKyAgICBzaXplX3QgZXhwZWN0ZWRfd2lkdGggPSBCSVRTX1RPX0xJTUJTKDM4NCkgKiAyOworICAgIE1CRURUTFNfTVBJX0NISyhtYmVkdGxzX21waV9ncm93KE4sIGV4cGVjdGVkX3dpZHRoKSk7CisgICAgcmV0ID0gbWJlZHRsc19lY3BfbW9kX3AzODRfcmF3KE4tPnAsIGV4cGVjdGVkX3dpZHRoKTsKK2NsZWFudXA6CisgICAgcmV0dXJuIHJldDsKK30KKworTUJFRFRMU19TVEFUSUNfVEVTVEFCTEUKK2ludCBtYmVkdGxzX2VjcF9tb2RfcDM4NF9yYXcobWJlZHRsc19tcGlfdWludCAqWCwgc2l6ZV90IFhfbGltYnMpCit7CisgICAgaWYgKFhfbGltYnMgIT0gQklUU19UT19MSU1CUygzODQpICogMikgeworICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfRUNQX0JBRF9JTlBVVF9EQVRBOworICAgIH0KKworICAgIElOSVQoMzg0KTsKKworICAgIEFERCgxMik7IEFERCgyMSk7IEFERCgyMCk7CisgICAgU1VCKDIzKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBORVhUOyAvLyBBMAorCisgICAgQUREKDEzKTsgQUREKDIyKTsgQUREKDIzKTsKKyAgICBTVUIoMTIpOyBTVUIoMjApOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5FWFQ7IC8vIEExCisKKyAgICBBREQoMTQpOyBBREQoMjMpOworICAgIFNVQigxMyk7IFNVQigyMSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTkVYVDsgLy8gQTIKKworICAgIEFERCgxNSk7IEFERCgxMik7IEFERCgyMCk7IEFERCgyMSk7CisgICAgU1VCKDE0KTsgU1VCKDIyKTsgU1VCKDIzKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBORVhUOyAvLyBBMworCisgICAgQUREKDIxKTsgQUREKDIxKTsgQUREKDE2KTsgQUREKDEzKTsgQUREKDEyKTsgQUREKDIwKTsgQUREKDIyKTsKKyAgICBTVUIoMTUpOyBTVUIoMjMpOyBTVUIoMjMpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5FWFQ7IC8vIEE0CisKKyAgICBBREQoMjIpOyBBREQoMjIpOyBBREQoMTcpOyBBREQoMTQpOyBBREQoMTMpOyBBREQoMjEpOyBBREQoMjMpOworICAgIFNVQigxNik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTkVYVDsgLy8gQTUKKworICAgIEFERCgyMyk7IEFERCgyMyk7IEFERCgxOCk7IEFERCgxNSk7IEFERCgxNCk7IEFERCgyMik7CisgICAgU1VCKDE3KTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBORVhUOyAvLyBBNgorCisgICAgQUREKDE5KTsgQUREKDE2KTsgQUREKDE1KTsgQUREKDIzKTsKKyAgICBTVUIoMTgpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5FWFQ7IC8vIEE3CisKKyAgICBBREQoMjApOyBBREQoMTcpOyBBREQoMTYpOworICAgIFNVQigxOSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTkVYVDsgLy8gQTgKKworICAgIEFERCgyMSk7IEFERCgxOCk7IEFERCgxNyk7CisgICAgU1VCKDIwKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBORVhUOyAvLyBBOQorCisgICAgQUREKDIyKTsgQUREKDE5KTsgQUREKDE4KTsKKyAgICBTVUIoMjEpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5FWFQ7IC8vIEExMAorCisgICAgQUREKDIzKTsgQUREKDIwKTsgQUREKDE5KTsKKyAgICBTVUIoMjIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIEExMQorCisgICAgUkVTRVQ7CisKKyAgICAvKiBVc2UgMl4zODQgPSBQICsgMl4xMjggKyAyXjk2IC0gMl4zMiArIDEgdG8gbW9kdWxvIHJlZHVjZSB0aGUgZmluYWwgY2FycnkgKi8KKyAgICBBRERfTEFTVDsgTkVYVDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIEEwCisgICAgU1VCX0xBU1Q7IE5FWFQ7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBBMQorICAgIDsgICAgICAgICBORVhUOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gQTIKKyAgICBBRERfTEFTVDsgTkVYVDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIEEzCisgICAgQUREX0xBU1Q7IE5FWFQ7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBBNAorICAgIDsgICAgICAgICBORVhUOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gQTUKKyAgICA7ICAgICAgICAgTkVYVDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIEE2CisgICAgOyAgICAgICAgIE5FWFQ7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBBNworICAgIDsgICAgICAgICBORVhUOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gQTgKKyAgICA7ICAgICAgICAgTkVYVDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIEE5CisgICAgOyAgICAgICAgIE5FWFQ7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBBMTAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIEExMQorCisgICAgUkVTRVQ7CisKKyAgICBBRERfTEFTVDsgTkVYVDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIEEwCisgICAgU1VCX0xBU1Q7IE5FWFQ7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBBMQorICAgIDsgICAgICAgICBORVhUOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gQTIKKyAgICBBRERfTEFTVDsgTkVYVDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIEEzCisgICAgQUREX0xBU1Q7IE5FWFQ7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBBNAorICAgIDsgICAgICAgICBORVhUOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gQTUKKyAgICA7ICAgICAgICAgTkVYVDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIEE2CisgICAgOyAgICAgICAgIE5FWFQ7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBBNworICAgIDsgICAgICAgICBORVhUOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gQTgKKyAgICA7ICAgICAgICAgTkVYVDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIEE5CisgICAgOyAgICAgICAgIE5FWFQ7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBBMTAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIEExMQorCisgICAgTEFTVDsKKworICAgIHJldHVybiAwOworfQorI2VuZGlmIC8qIE1CRURUTFNfRUNQX0RQX1NFQ1AzODRSMV9FTkFCTEVEICovCisKKyN1bmRlZiBMT0FEMzIKKyN1bmRlZiBNQVgzMgorI3VuZGVmIEEKKyN1bmRlZiBTVE9SRTMyCisjdW5kZWYgU1RPUkUwCisjdW5kZWYgQURECisjdW5kZWYgU1VCCisjdW5kZWYgQUREX0NBUlJZCisjdW5kZWYgU1VCX0NBUlJZCisjdW5kZWYgQUREX0xBU1QKKyN1bmRlZiBTVUJfTEFTVAorI3VuZGVmIElOSVQKKyN1bmRlZiBORVhUCisjdW5kZWYgUkVTRVQKKyN1bmRlZiBMQVNUCisKKyNlbmRpZiAvKiBNQkVEVExTX0VDUF9EUF9TRUNQMjI0UjFfRU5BQkxFRCB8fAorICAgICAgICAgIE1CRURUTFNfRUNQX0RQX1NFQ1AyNTZSMV9FTkFCTEVEIHx8CisgICAgICAgICAgTUJFRFRMU19FQ1BfRFBfU0VDUDM4NFIxX0VOQUJMRUQgKi8KKworI2lmIGRlZmluZWQoTUJFRFRMU19FQ1BfRFBfU0VDUDUyMVIxX0VOQUJMRUQpCisvKiBTaXplIG9mIHA1MjEgaW4gdGVybXMgb2YgbWJlZHRsc19tcGlfdWludCAqLworI2RlZmluZSBQNTIxX1dJRFRIICAgICAgKDUyMSAvIDggLyBzaXplb2YobWJlZHRsc19tcGlfdWludCkgKyAxKQorCisvKiBCaXRzIHRvIGtlZXAgaW4gdGhlIG1vc3Qgc2lnbmlmaWNhbnQgbWJlZHRsc19tcGlfdWludCAqLworI2RlZmluZSBQNTIxX01BU0sgICAgICAgMHgwMUZGCisKKy8qCisgKiBGYXN0IHF1YXNpLXJlZHVjdGlvbiBtb2R1bG8gcDUyMSA9IDJeNTIxIC0gMSAoRklQUyAxODYtMyBELjIuNSkKKyAqLworc3RhdGljIGludCBlY3BfbW9kX3A1MjEobWJlZHRsc19tcGkgKk4pCit7CisgICAgaW50IHJldCA9IE1CRURUTFNfRVJSX0VSUk9SX0NPUlJVUFRJT05fREVURUNURUQ7CisgICAgc2l6ZV90IGV4cGVjdGVkX3dpZHRoID0gQklUU19UT19MSU1CUyg1MjEpICogMjsKKyAgICBNQkVEVExTX01QSV9DSEsobWJlZHRsc19tcGlfZ3JvdyhOLCBleHBlY3RlZF93aWR0aCkpOworICAgIHJldCA9IG1iZWR0bHNfZWNwX21vZF9wNTIxX3JhdyhOLT5wLCBleHBlY3RlZF93aWR0aCk7CitjbGVhbnVwOgorICAgIHJldHVybiByZXQ7Cit9CisKK01CRURUTFNfU1RBVElDX1RFU1RBQkxFCitpbnQgbWJlZHRsc19lY3BfbW9kX3A1MjFfcmF3KG1iZWR0bHNfbXBpX3VpbnQgKlgsIHNpemVfdCBYX2xpbWJzKQoreworICAgIG1iZWR0bHNfbXBpX3VpbnQgY2FycnkgPSAwOworCisgICAgaWYgKFhfbGltYnMgIT0gQklUU19UT19MSU1CUyg1MjEpICogMikgeworICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfRUNQX0JBRF9JTlBVVF9EQVRBOworICAgIH0KKworICAgIC8qIFN0ZXAgMTogUmVkdWN0aW9uIHRvIFA1MjFfV0lEVEggbGltYnMgKi8KKyAgICAvKiBIZWxwZXIgcmVmZXJlbmNlcyBmb3IgYm90dG9tIHBhcnQgb2YgWCAqLworICAgIG1iZWR0bHNfbXBpX3VpbnQgKlgwID0gWDsKKyAgICBzaXplX3QgWDBfbGltYnMgPSBQNTIxX1dJRFRIOworICAgIC8qIEhlbHBlciByZWZlcmVuY2VzIGZvciB0b3AgcGFydCBvZiBYICovCisgICAgbWJlZHRsc19tcGlfdWludCAqWDEgPSBYICsgWDBfbGltYnM7CisgICAgc2l6ZV90IFgxX2xpbWJzID0gWF9saW1icyAtIFgwX2xpbWJzOworICAgIC8qIFNwbGl0IFggYXMgWDAgKyAyXlA1MjFfV0lEVEggWDEgYW5kIGNvbXB1dGUgWDAgKyAyXihiaUwgLSA5KSBYMS4KKyAgICAgKiAoV2UgYXJlIHVzaW5nIHRoYXQgMl5QNTIxX1dJRFRIID0gMl4oNTEyICsgYmlMKSBhbmQgdGhhdAorICAgICAqIDJeKDUxMiArIGJpTCkgWDEgPSAyXihiaUwgLSA5KSBYMSBtb2QgUDUyMS4pCisgICAgICogVGhlIGhpZ2ggb3JkZXIgbGltYiBvZiB0aGUgcmVzdWx0IHdpbGwgYmUgaGVsZCBpbiBjYXJyeSBhbmQgdGhlIHJlc3QKKyAgICAgKiBpbiBYMCAodGhhdCBpcyB0aGUgcmVzdWx0IHdpbGwgYmUgcmVwcmVzZW50ZWQgYXMKKyAgICAgKiAyXlA1MjFfV0lEVEggY2FycnkgKyBYMCkuCisgICAgICoKKyAgICAgKiBBbHNvLCBub3RlIHRoYXQgdGhlIHJlc3VsdGluZyBjYXJyeSBpcyBlaXRoZXIgMCBvciAxOgorICAgICAqIFgwIDwgMl5QNTIxX1dJRFRIID0gMl4oNTEyICsgYmlMKSBhbmQgWDEgPCAyXihQNTIxX1dJRFRILWJpTCkgPSAyXjUxMgorICAgICAqIHRoZXJlZm9yZQorICAgICAqIFgwICsgMl4oYmlMIC0gOSkgWDEgPCAyXig1MTIgKyBiaUwpICsgMl4oNTEyICsgYmlMIC0gOSkKKyAgICAgKiB3aGljaCBpbiB0dXJuIGlzIGxlc3MgdGhhbiAyICogMl4oNTEyICsgYmlMKS4KKyAgICAgKi8KKyAgICBtYmVkdGxzX21waV91aW50IHNoaWZ0ID0gKChtYmVkdGxzX21waV91aW50KSAxdSkgPDwgKGJpTCAtIDkpOworICAgIGNhcnJ5ID0gbWJlZHRsc19tcGlfY29yZV9tbGEoWDAsIFgwX2xpbWJzLCBYMSwgWDFfbGltYnMsIHNoaWZ0KTsKKyAgICAvKiBTZXQgWCB0byBYMCAoYnkgY2xlYXJpbmcgdGhlIHRvcCBwYXJ0KS4gKi8KKyAgICBtZW1zZXQoWDEsIDAsIFgxX2xpbWJzICogc2l6ZW9mKG1iZWR0bHNfbXBpX3VpbnQpKTsKKworICAgIC8qIFN0ZXAgMjogUmVkdWN0aW9uIG1vZHVsbyBQNTIxCisgICAgICoKKyAgICAgKiBBdCB0aGlzIHBvaW50IFggaXMgcmVkdWNlZCB0byBQNTIxX1dJRFRIIGxpbWJzLiBXaGF0IHJlbWFpbnMgaXMgdG8gYWRkCisgICAgICogdGhlIGNhcnJ5ICh0aGF0IGlzIDJeUDUyMV9XSURUSCBjYXJyeSkgYW5kIHRvIHJlZHVjZSBtb2QgUDUyMS4gKi8KKworICAgIC8qIDJeUDUyMV9XSURUSCBjYXJyeSA9IDJeKDUxMiArIGJpTCkgY2FycnkgPSAyXihiaUwgLSA5KSBjYXJyeSBtb2QgUDUyMS4KKyAgICAgKiBBbHNvLCByZWNhbGwgdGhhdCBjYXJyeSBpcyBlaXRoZXIgMCBvciAxLiAqLworICAgIG1iZWR0bHNfbXBpX3VpbnQgYWRkZW5kID0gY2FycnkgPDwgKGJpTCAtIDkpOworICAgIC8qIEtlZXAgdGhlIHRvcCA5IGJpdHMgYW5kIHJlZHVjZSB0aGUgcmVzdCwgdXNpbmcgMl41MjEgPSAxIG1vZCBQNTIxLiAqLworICAgIGFkZGVuZCArPSAoWFtQNTIxX1dJRFRIIC0gMV0gPj4gOSk7CisgICAgWFtQNTIxX1dJRFRIIC0gMV0gJj0gUDUyMV9NQVNLOworCisgICAgLyogUmV1c2UgdGhlIHRvcCBwYXJ0IG9mIFggKGFscmVhZHkgemVyb2VkKSBhcyBhIGhlbHBlciBhcnJheSBmb3IKKyAgICAgKiBjYXJyeWluZyBvdXQgdGhlIGFkZGl0aW9uLiAqLworICAgIG1iZWR0bHNfbXBpX3VpbnQgKmFkZGVuZF9hcnIgPSBYICsgUDUyMV9XSURUSDsKKyAgICBhZGRlbmRfYXJyWzBdID0gYWRkZW5kOworICAgICh2b2lkKSBtYmVkdGxzX21waV9jb3JlX2FkZChYLCBYLCBhZGRlbmRfYXJyLCBQNTIxX1dJRFRIKTsKKyAgICAvKiBCb3RoIGFkZGVuZHMgd2VyZSBsZXNzIHRoYW4gUDUyMSB0aGVyZWZvcmUgWCA8IDIgKiBQNTIxLiAoVGhpcyBhbHNvIG1lYW5zCisgICAgICogdGhhdCB0aGUgcmVzdWx0IGZpdCBpbiBQNTIxX1dJRFRIIGxpbWJzIGFuZCB0aGVyZSB3b24ndCBiZSBhbnkgY2FycnkuKSAqLworCisgICAgLyogQ2xlYXIgdGhlIHJldXNlZCBwYXJ0IG9mIFguICovCisgICAgYWRkZW5kX2FyclswXSA9IDA7CisKKyAgICByZXR1cm4gMDsKK30KKworI3VuZGVmIFA1MjFfV0lEVEgKKyN1bmRlZiBQNTIxX01BU0sKKworI2VuZGlmIC8qIE1CRURUTFNfRUNQX0RQX1NFQ1A1MjFSMV9FTkFCTEVEICovCisKKyNlbmRpZiAvKiBNQkVEVExTX0VDUF9OSVNUX09QVElNICovCisKKyNpZiBkZWZpbmVkKE1CRURUTFNfRUNQX0RQX0NVUlZFMjU1MTlfRU5BQkxFRCkKKworLyogU2l6ZSBvZiBwMjU1IGluIHRlcm1zIG9mIG1iZWR0bHNfbXBpX3VpbnQgKi8KKyNkZWZpbmUgUDI1NV9XSURUSCAgICAgICgyNTUgLyA4IC8gc2l6ZW9mKG1iZWR0bHNfbXBpX3VpbnQpICsgMSkKKworLyoKKyAqIEZhc3QgcXVhc2ktcmVkdWN0aW9uIG1vZHVsbyBwMjU1ID0gMl4yNTUgLSAxOQorICogV3JpdGUgTiBhcyBBMCArIDJeMjU2IEExLCByZXR1cm4gQTAgKyAzOCAqIEExCisgKi8KK3N0YXRpYyBpbnQgZWNwX21vZF9wMjU1KG1iZWR0bHNfbXBpICpOKQoreworICAgIGludCByZXQgPSBNQkVEVExTX0VSUl9FUlJPUl9DT1JSVVBUSU9OX0RFVEVDVEVEOworICAgIHNpemVfdCBleHBlY3RlZF93aWR0aCA9IEJJVFNfVE9fTElNQlMoMjU1KSAqIDI7CisgICAgTUJFRFRMU19NUElfQ0hLKG1iZWR0bHNfbXBpX2dyb3coTiwgZXhwZWN0ZWRfd2lkdGgpKTsKKyAgICByZXQgPSBtYmVkdGxzX2VjcF9tb2RfcDI1NV9yYXcoTi0+cCwgZXhwZWN0ZWRfd2lkdGgpOworY2xlYW51cDoKKyAgICByZXR1cm4gcmV0OworfQorCitNQkVEVExTX1NUQVRJQ19URVNUQUJMRQoraW50IG1iZWR0bHNfZWNwX21vZF9wMjU1X3JhdyhtYmVkdGxzX21waV91aW50ICpYLCBzaXplX3QgWF9MaW1icykKK3sKKworICAgIGlmIChYX0xpbWJzICE9IEJJVFNfVE9fTElNQlMoMjU1KSAqIDIpIHsKKyAgICAgICAgcmV0dXJuIE1CRURUTFNfRVJSX0VDUF9CQURfSU5QVVRfREFUQTsKKyAgICB9CisKKyAgICBtYmVkdGxzX21waV91aW50ICpjYXJyeSA9IG1iZWR0bHNfY2FsbG9jKFAyNTVfV0lEVEgsIGNpTCk7CisgICAgaWYgKGNhcnJ5ID09IE5VTEwpIHsKKyAgICAgICAgcmV0dXJuIE1CRURUTFNfRVJSX0VDUF9BTExPQ19GQUlMRUQ7CisgICAgfQorCisgICAgLyogU3RlcCAxOiBSZWR1Y3Rpb24gdG8gUDI1NV9XSURUSCBsaW1icyAqLworICAgIGlmIChYX0xpbWJzID4gUDI1NV9XSURUSCkgeworICAgICAgICAvKiBIZWxwZXIgcmVmZXJlbmNlcyBmb3IgdG9wIHBhcnQgb2YgWCAqLworICAgICAgICBtYmVkdGxzX21waV91aW50ICogY29uc3QgQTEgPSBYICsgUDI1NV9XSURUSDsKKyAgICAgICAgY29uc3Qgc2l6ZV90IEExX2xpbWJzID0gWF9MaW1icyAtIFAyNTVfV0lEVEg7CisKKyAgICAgICAgLyogWCA9IEEwICsgMzggKiBBMSwgY2FwdHVyZSBjYXJyeSBvdXQgKi8KKyAgICAgICAgKmNhcnJ5ID0gbWJlZHRsc19tcGlfY29yZV9tbGEoWCwgUDI1NV9XSURUSCwgQTEsIEExX2xpbWJzLCAzOCk7CisgICAgICAgIC8qIENsZWFyIHRvcCBwYXJ0ICovCisgICAgICAgIG1lbXNldChBMSwgMCwgc2l6ZW9mKG1iZWR0bHNfbXBpX3VpbnQpICogQTFfbGltYnMpOworICAgIH0KKworICAgIC8qIFN0ZXAgMjogUmVkdWNlIHRvIDwycAorICAgICAqIFNwbGl0IGFzIEEwICsgMl4yNTUqYywgd2l0aCBjIGEgc2NhbGFyLCBhbmQgY29tcHV0ZSBBMCArIDE5KmMgKi8KKyAgICAqY2FycnkgPDw9IDE7CisgICAgKmNhcnJ5ICs9IChYW1AyNTVfV0lEVEggLSAxXSA+PiAoYmlMIC0gMSkpOworICAgICpjYXJyeSAqPSAxOTsKKworICAgIC8qIENsZWFyIHRvcCBiaXQgKi8KKyAgICBYW1AyNTVfV0lEVEggLSAxXSA8PD0gMTsgWFtQMjU1X1dJRFRIIC0gMV0gPj49IDE7CisgICAgLyogU2luY2UgdGhlIHRvcCBiaXQgZm9yIFggaGFzIGJlZW4gY2xlYXJlZCAwICsgMCArIENhcnJ5CisgICAgICogd2lsbCBub3Qgb3ZlcmZsb3cuCisgICAgICoKKyAgICAgKiBGdXJ0aGVybW9yZSBmb3IgMnAgPSAyXjI1Ni0zOC4gV2hlbiBhIGNhcnJ5IHByb3BhZ2F0aW9uIG9uIHRoZSBoaWdoZXN0CisgICAgICogbGltYiBvY2N1cnMsIFggPiAyXjI1NSBhbmQgYWxsIHRoZSByZW1haW5pbmcgYml0cyBvbiB0aGUgbGltYiBhcmUgemVyby4KKyAgICAgKiAgIC0gSWYgWCA8IDJeMjU1ID09PiBYIDwgMnAKKyAgICAgKiAgIC0gSWYgWCA+IDJeMjU1ID09PiBYIDwgMl4yNTYgLSAyXjI1NSA8IDJwICAqLworICAgICh2b2lkKSBtYmVkdGxzX21waV9jb3JlX2FkZChYLCBYLCBjYXJyeSwgUDI1NV9XSURUSCk7CisKKyAgICBtYmVkdGxzX2ZyZWUoY2FycnkpOworICAgIHJldHVybiAwOworfQorI2VuZGlmIC8qIE1CRURUTFNfRUNQX0RQX0NVUlZFMjU1MTlfRU5BQkxFRCAqLworCisjaWYgZGVmaW5lZChNQkVEVExTX0VDUF9EUF9DVVJWRTQ0OF9FTkFCTEVEKQorCisvKiBTaXplIG9mIHA0NDggaW4gdGVybXMgb2YgbWJlZHRsc19tcGlfdWludCAqLworI2RlZmluZSBQNDQ4X1dJRFRIICAgICAgKDQ0OCAvIDggLyBzaXplb2YobWJlZHRsc19tcGlfdWludCkpCisKKy8qIE51bWJlciBvZiBsaW1icyBmdWxseSBvY2N1cGllZCBieSAyXjIyNCAobWF4KSwgYW5kIGxpbWJzIHVzZWQgYnkgaXQgKG1pbikgKi8KKyNkZWZpbmUgRElWX1JPVU5EX1VQKFgsIFkpICgoKFgpICsgKFkpIC0xKSAvIChZKSkKKyNkZWZpbmUgUDIyNF9TSVpFICAgICAgICAoMjI0IC8gOCkKKyNkZWZpbmUgUDIyNF9XSURUSF9NSU4gICAoUDIyNF9TSVpFIC8gc2l6ZW9mKG1iZWR0bHNfbXBpX3VpbnQpKQorI2RlZmluZSBQMjI0X1dJRFRIX01BWCAgIERJVl9ST1VORF9VUChQMjI0X1NJWkUsIHNpemVvZihtYmVkdGxzX21waV91aW50KSkKKyNkZWZpbmUgUDIyNF9VTlVTRURfQklUUyAoKFAyMjRfV0lEVEhfTUFYICogc2l6ZW9mKG1iZWR0bHNfbXBpX3VpbnQpICogOCkgLSAyMjQpCisKK3N0YXRpYyBpbnQgZWNwX21vZF9wNDQ4KG1iZWR0bHNfbXBpICpOKQoreworICAgIGludCByZXQgPSBNQkVEVExTX0VSUl9FUlJPUl9DT1JSVVBUSU9OX0RFVEVDVEVEOworICAgIHNpemVfdCBleHBlY3RlZF93aWR0aCA9IEJJVFNfVE9fTElNQlMoNDQ4KSAqIDI7CisKKyAgICAvKiBUaGlzIGlzIHJlcXVpcmVkIGFzIHNvbWUgdGVzdHMgYW5kIHVzZSBjYXNlcyBkbyBub3QgcGFzcyBpbiBhIEJpZ251bSBvZgorICAgICAqIHRoZSBjb3JyZWN0IHNpemUsIGFuZCBleHBlY3QgdGhlIGdyb3d0aCB0byBiZSBkb25lIGF1dG9tYXRpY2FsbHksIHdoaWNoCisgICAgICogd2lsbCBubyBsb25nZXIgaGFwcGVuLiAqLworICAgIE1CRURUTFNfTVBJX0NISyhtYmVkdGxzX21waV9ncm93KE4sIGV4cGVjdGVkX3dpZHRoKSk7CisKKyAgICByZXQgPSBtYmVkdGxzX2VjcF9tb2RfcDQ0OF9yYXcoTi0+cCwgTi0+bik7CisKK2NsZWFudXA6CisgICAgcmV0dXJuIHJldDsKK30KKworLyoKKyAqIEZhc3QgcXVhc2ktcmVkdWN0aW9uIG1vZHVsbyBwNDQ4ID0gMl40NDggLSAyXjIyNCAtIDEKKyAqIFdyaXRlIFggYXMgQTAgKyAyXjQ0OCBBMSBhbmQgQTEgYXMgQjAgKyAyXjIyNCBCMSwgYW5kIHJldHVybiBBMCArIEExICsgQjEgKworICogKEIwICsgQjEpICogMl4yMjQuICBUaGlzIGlzIGRpZmZlcmVudCB0byB0aGUgcmVmZXJlbmNlIGltcGxlbWVudGF0aW9uIG9mCisgKiBDdXJ2ZTQ0OCwgd2hpY2ggdXNlcyBpdHMgb3duIHNwZWNpYWwgNTYtYml0IGxpbWJzIHJhdGhlciB0aGFuIGEgZ2VuZXJpYworICogYmlnbnVtIGxpYnJhcnkuICBXZSBjb3VsZCBzcXVlZXplIHNvbWUgZXh0cmEgc3BlZWQgb3V0IG9uIDMyLWJpdCBtYWNoaW5lcyBieQorICogc3BsaXR0aW5nIE4gdXAgaW50byAzMi1iaXQgbGltYnMgYW5kIGRvaW5nIHRoZSBhcml0aG1ldGljIHVzaW5nIHRoZSBsaW1icworICogZGlyZWN0bHkgYXMgd2UgZG8gZm9yIHRoZSBOSVNUIHByaW1lcyBhYm92ZSwgYnV0IGZvciA2NC1iaXQgdGFyZ2V0cyBpdCBzaG91bGQKKyAqIHVzZSBoYWxmIHRoZSBudW1iZXIgb2Ygb3BlcmF0aW9ucyBpZiB3ZSBkbyB0aGUgcmVkdWN0aW9uIHdpdGggMjI0LWJpdCBsaW1icywKKyAqIHNpbmNlIG1waV9jb3JlX2FkZCB3aWxsIHRoZW4gdXNlIDY0LWJpdCBhZGRzLgorICovCitNQkVEVExTX1NUQVRJQ19URVNUQUJMRQoraW50IG1iZWR0bHNfZWNwX21vZF9wNDQ4X3JhdyhtYmVkdGxzX21waV91aW50ICpYLCBzaXplX3QgWF9saW1icykKK3sKKyAgICBzaXplX3Qgcm91bmQ7CisgICAgaW50IHJldCA9IE1CRURUTFNfRVJSX0VSUk9SX0NPUlJVUFRJT05fREVURUNURUQ7CisKKyAgICBpZiAoWF9saW1icyAhPSBCSVRTX1RPX0xJTUJTKDQ0OCkgKiAyKSB7CisgICAgICAgIHJldHVybiAwOworICAgIH0KKworICAgIHNpemVfdCBNX2xpbWJzID0gWF9saW1icyAtIChQNDQ4X1dJRFRIKTsKKworICAgIGlmIChNX2xpbWJzID4gUDQ0OF9XSURUSCkgeworICAgICAgICAvKiBTaG91bGRuJ3QgYmUgY2FsbGVkIHdpdGggWCBsYXJnZXIgdGhhbiAyXjg5NiEgKi8KKyAgICAgICAgcmV0dXJuIE1CRURUTFNfRVJSX0VDUF9CQURfSU5QVVRfREFUQTsKKyAgICB9CisKKyAgICAvKiBCb3RoIE0gYW5kIFEgcmVxdWlyZSBhbiBleHRyYSBsaW1iIHRvIGNhdGNoIGNhcnJpZXMuICovCisgICAgTV9saW1icysrOworCisgICAgY29uc3Qgc2l6ZV90IFFfbGltYnMgPSBNX2xpbWJzOworICAgIG1iZWR0bHNfbXBpX3VpbnQgKk0gPSBOVUxMOworICAgIG1iZWR0bHNfbXBpX3VpbnQgKlEgPSBOVUxMOworCisgICAgTSA9IG1iZWR0bHNfY2FsbG9jKE1fbGltYnMsIGNpTCk7CisKKyAgICBpZiAoTSA9PSBOVUxMKSB7CisgICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9FQ1BfQUxMT0NfRkFJTEVEOworICAgIH0KKworICAgIFEgPSBtYmVkdGxzX2NhbGxvYyhRX2xpbWJzLCBjaUwpOworCisgICAgaWYgKFEgPT0gTlVMTCkgeworICAgICAgICByZXQgPSAgTUJFRFRMU19FUlJfRUNQX0FMTE9DX0ZBSUxFRDsKKyAgICAgICAgZ290byBjbGVhbnVwOworICAgIH0KKworICAgIC8qIE0gPSBBMSAqLworICAgIG1lbXNldChNLCAwLCAoTV9saW1icyAqIGNpTCkpOworICAgIC8qIERvIG5vdCBjb3B5IGludG8gdGhlIG92ZXJmbG93IGxpbWIsIGFzIHRoaXMgd291bGQgcmVhZCBwYXN0IHRoZSBlbmQgb2YKKyAgICAgKiBYLiAqLworICAgIG1lbWNweShNLCBYICsgUDQ0OF9XSURUSCwgKChNX2xpbWJzIC0gMSkgKiBjaUwpKTsKKworICAgIC8qIFggPSBBMCAqLworICAgIG1lbXNldChYICsgUDQ0OF9XSURUSCwgMCwgKChNX2xpbWJzIC0gMSkgKiBjaUwpKTsKKworICAgIC8qIFggPSBYICsgTSA9IEEwICsgQTEgKi8KKyAgICAvKiBDYXJyeSBoZXJlIGZpdHMgaW4gb3ZlcnNpemUgWC4gT3ZlcnNpemUgTSBtZWFucyBpdCB3aWxsIGdldAorICAgICAqIGFkZGVkIGluLCBub3QgcmV0dXJuZWQgYXMgY2FycnkuICovCisgICAgKHZvaWQpIG1iZWR0bHNfbXBpX2NvcmVfYWRkKFgsIFgsIE0sIE1fbGltYnMpOworCisgICAgLyogUSA9IEIxID0gTSA+PiAyMjQgKi8KKyAgICBtZW1jcHkoUSwgKGNoYXIgKikgTSArIFAyMjRfU0laRSwgUDIyNF9TSVpFKTsKKyAgICBtZW1zZXQoKGNoYXIgKikgUSArIFAyMjRfU0laRSwgMCwgUDIyNF9TSVpFKTsKKworICAgIC8qIFggPSBYICsgUSA9IChBMCArIEExKSArIEIxCisgICAgICogT3ZlcnNpemUgUSBjYXRjaGVzIHBvdGVudGlhbCBjYXJyeSBoZXJlIHdoZW4gWCBpcyBhbHJlYWR5IG1heCA0NDggYml0cy4KKyAgICAgKi8KKyAgICAodm9pZCkgbWJlZHRsc19tcGlfY29yZV9hZGQoWCwgWCwgUSwgUV9saW1icyk7CisKKyAgICAvKiBNID0gQjAgKi8KKyNpZmRlZiBNQkVEVExTX0hBVkVfSU5UNjQKKyAgICBNW1AyMjRfV0lEVEhfTUlOXSAmPSAoKG1iZWR0bHNfbXBpX3VpbnQpLTEpID4+IChQMjI0X1VOVVNFRF9CSVRTKTsKKyAjZW5kaWYKKyAgICBtZW1zZXQoTSArIFAyMjRfV0lEVEhfTUFYLCAwLCAoKE1fbGltYnMgLSBQMjI0X1dJRFRIX01BWCkgKiBjaUwpKTsKKworICAgIC8qIE0gPSBNICsgUSA9IEIwICsgQjEgKi8KKyAgICAodm9pZCkgbWJlZHRsc19tcGlfY29yZV9hZGQoTSwgTSwgUSwgUV9saW1icyk7CisKKyAgICAvKiBNID0gKEIwICsgQjEpICogMl4yMjQgKi8KKyAgICAvKiBTaGlmdGVkIGNhcnJ5IGJpdCBmcm9tIHRoZSBhZGRpdGlvbiBmaXRzIGluIG92ZXJzaXplIE0uICovCisgICAgbWVtbW92ZSgoY2hhciAqKSBNICsgUDIyNF9TSVpFLCBNLCBQMjI0X1NJWkUgKyBjaUwpOworICAgIG1lbXNldChNLCAwLCBQMjI0X1NJWkUpOworCisgICAgLyogWCA9IFggKyBNID0gKEEwICsgQTEgKyBCMSkgKyAoQjAgKyBCMSkgKiAyXjIyNCAqLworICAgICh2b2lkKSBtYmVkdGxzX21waV9jb3JlX2FkZChYLCBYLCBNLCBNX2xpbWJzKTsKKworICAgIC8qIEluIHRoZSBzZWNvbmQgYW5kIHRoaXJkIHJvdW5kcyBBMSBhbmQgQjAgaGF2ZSBhdCBtb3N0IDEgbm9uLXplcm8gbGltYiBhbmQKKyAgICAgKiBCMT0wLgorICAgICAqIFVzaW5nIHRoaXMgd2UgbmVlZCB0byBjYWxjdWxhdGU6CisgICAgICogQTAgKyBBMSArIEIxICsgKEIwICsgQjEpICogMl4yMjQgPSBBMCArIEExICsgQjAgKiAyXjIyNC4gKi8KKyAgICBmb3IgKHJvdW5kID0gMDsgcm91bmQgPCAyOyArK3JvdW5kKSB7CisKKyAgICAgICAgLyogTSA9IEExICovCisgICAgICAgIG1lbXNldChNLCAwLCAoTV9saW1icyAqIGNpTCkpOworICAgICAgICBtZW1jcHkoTSwgWCArIFA0NDhfV0lEVEgsICgoTV9saW1icyAtIDEpICogY2lMKSk7CisKKyAgICAgICAgLyogWCA9IEEwICovCisgICAgICAgIG1lbXNldChYICsgUDQ0OF9XSURUSCwgMCwgKChNX2xpbWJzIC0gMSkgKiBjaUwpKTsKKworICAgICAgICAvKiBNID0gQTEgKyBCMCAqIDJeMjI0CisgICAgICAgICAqIFdlIGtub3cgdGhhdCBvbmx5IG9uZSBsaW1iIG9mIEExIHdpbGwgYmUgbm9uLXplcm8gYW5kIHRoYXQgaXQgd2lsbCBiZQorICAgICAgICAgKiBsaW1iIDAuIFdlIGFsc28ga25vdyB0aGF0IEIwIGlzIHRoZSBib3R0b20gMjI0IGJpdHMgb2YgQTEgKHdoaWNoIGlzCisgICAgICAgICAqIHRoZW4gc2hpZnRlZCB1cCAyMjQgYml0cyksIHNvLCBnaXZlbiBNIGlzIGN1cnJlbnRseSBBMSB0aGlzIHR1cm5zCisgICAgICAgICAqIGludG86CisgICAgICAgICAqIE0gPSBNICsgKE0gPDwgMjI0KQorICAgICAgICAgKiBBcyB0aGUgc2luZ2xlIG5vbi16ZXJvIGxpbWIgaW4gQjAgd2lsbCBiZSBBMSBsaW1iIDAgc2hpZnRlZCB1cCBieSAyMjQKKyAgICAgICAgICogYml0cywgd2UgY2FuIGp1c3QgbW92ZSB0aGF0IGludG8gdGhlIHJpZ2h0IHBsYWNlLCBzaGlmdGVkIHVwCisgICAgICAgICAqIGFjY29yZGluZ2x5LiovCisgICAgICAgIE1bUDIyNF9XSURUSF9NSU5dID0gTVswXSA8PCAoMjI0ICYgKGJpTCAtIDEpKTsKKworICAgICAgICAvKiBYID0gQTAgKyAoQTEgKyBCMCAqIDJeMjI0KSAqLworICAgICAgICAodm9pZCkgbWJlZHRsc19tcGlfY29yZV9hZGQoWCwgWCwgTSwgTV9saW1icyk7CisgICAgfQorCisgICAgcmV0ID0gMDsKKworY2xlYW51cDoKKyAgICBtYmVkdGxzX2ZyZWUoTSk7CisgICAgbWJlZHRsc19mcmVlKFEpOworCisgICAgcmV0dXJuIHJldDsKK30KKyNlbmRpZiAvKiBNQkVEVExTX0VDUF9EUF9DVVJWRTQ0OF9FTkFCTEVEICovCisKKyNpZiBkZWZpbmVkKE1CRURUTFNfRUNQX0RQX1NFQ1AxOTJLMV9FTkFCTEVEKSB8fCAgIFwKKyAgICBkZWZpbmVkKE1CRURUTFNfRUNQX0RQX1NFQ1AyMjRLMV9FTkFCTEVEKSB8fCAgIFwKKyAgICBkZWZpbmVkKE1CRURUTFNfRUNQX0RQX1NFQ1AyNTZLMV9FTkFCTEVEKQorCisvKgorICogRmFzdCBxdWFzaS1yZWR1Y3Rpb24gbW9kdWxvIFAgPSAyXnMgLSBSLAorICogd2l0aCBSIGFib3V0IDMzIGJpdHMsIHVzZWQgYnkgdGhlIEtvYmxpdHogY3VydmVzLgorICoKKyAqIFdyaXRlIFggYXMgQTAgKyAyXjIyNCBBMSwgcmV0dXJuIEEwICsgUiAqIEExLgorICovCisjZGVmaW5lIFBfS09CTElUWl9SICAgICAoOCAvIHNpemVvZihtYmVkdGxzX21waV91aW50KSkgICAgICAgICAgICAvLyBMaW1icyBpbiBSCisKK3N0YXRpYyBpbmxpbmUgaW50IGVjcF9tb2Rfa29ibGl0eihtYmVkdGxzX21waV91aW50ICpYLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBYX2xpbWJzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1iZWR0bHNfbXBpX3VpbnQgKlIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IGJpdHMpCit7CisgICAgaW50IHJldCA9IDA7CisKKyAgICAvKiBEZXRlcm1pbmUgaWYgQTEgaXMgYWxpZ25lZCB0byBsaW1iIGJpdHNpemUuIElmIG5vdCB0aGVuIHRoZSB1c2VkIGxpbWJzCisgICAgICogb2YgUCwgQTAgYW5kIEExIG11c3QgYmUgc2V0IGFjY29yZGluZ2x5IGFuZCB0aGVyZSBpcyBhIG1pZGRsZSBsaW1iCisgICAgICogd2hpY2ggaXMgc2hhcmVkIGJ5IEEwIGFuZCBBMSBhbmQgbmVlZCB0byBoYW5kbGUgYWNjb3JkaW5nbHkuCisgICAgICovCisgICAgc2l6ZV90IHNoaWZ0ICAgPSBiaXRzICUgYmlMOworICAgIHNpemVfdCBhZGp1c3QgID0gKHNoaWZ0ICsgYmlMIC0gMSkgLyBiaUw7CisgICAgc2l6ZV90IFBfbGltYnMgPSBiaXRzIC8gYmlMICsgYWRqdXN0OworCisgICAgbWJlZHRsc19tcGlfdWludCAqQTEgPSBtYmVkdGxzX2NhbGxvYyhQX2xpbWJzLCBjaUwpOworICAgIGlmIChBMSA9PSBOVUxMKSB7CisgICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9FQ1BfQUxMT0NfRkFJTEVEOworICAgIH0KKworICAgIC8qIENyZWF0ZSBhIGJ1ZmZlciB0byBzdG9yZSB0aGUgdmFsdWUgb2YgYFIgKiBBMWAgKi8KKyAgICBzaXplX3QgUl9saW1icyA9IFBfS09CTElUWl9SOworICAgIHNpemVfdCBNX2xpbWJzID0gUF9saW1icyArIFJfbGltYnM7CisgICAgbWJlZHRsc19tcGlfdWludCAqTSA9IG1iZWR0bHNfY2FsbG9jKE1fbGltYnMsIGNpTCk7CisgICAgaWYgKE0gPT0gTlVMTCkgeworICAgICAgICByZXQgPSBNQkVEVExTX0VSUl9FQ1BfQUxMT0NfRkFJTEVEOworICAgICAgICBnb3RvIGNsZWFudXA7CisgICAgfQorCisgICAgbWJlZHRsc19tcGlfdWludCBtYXNrID0gMDsKKyAgICBpZiAoYWRqdXN0ICE9IDApIHsKKyAgICAgICAgbWFzayAgPSAoKG1iZWR0bHNfbXBpX3VpbnQpIDEgPDwgc2hpZnQpIC0gMTsKKyAgICB9CisKKyAgICAvKiBUd28gcGFzc2VzIGFyZSBuZWVkZWQgdG8gcmVkdWNlIHRoZSB2YWx1ZSBvZiBgQTAgKyBSICogQTFgIGFuZCB0aGVuCisgICAgICogd2UgbmVlZCBhbiBhZGRpdGlvbmFsIG9uZSB0byByZWR1Y2UgdGhlIHBvc3NpYmxlIG92ZXJmbG93IGR1cmluZworICAgICAqIHRoZSBhZGRpdGlvbi4KKyAgICAgKi8KKyAgICBmb3IgKHNpemVfdCBwYXNzID0gMDsgcGFzcyA8IDM7IHBhc3MrKykgeworICAgICAgICAvKiBDb3B5IEExICovCisgICAgICAgIG1lbWNweShBMSwgWCArIFBfbGltYnMgLSBhZGp1c3QsIFBfbGltYnMgKiBjaUwpOworCisgICAgICAgIC8qIFNoaWZ0IEExIHRvIGJlIGFsaWduZWQgKi8KKyAgICAgICAgaWYgKHNoaWZ0ICE9IDApIHsKKyAgICAgICAgICAgIG1iZWR0bHNfbXBpX2NvcmVfc2hpZnRfcihBMSwgUF9saW1icywgc2hpZnQpOworICAgICAgICB9CisKKyAgICAgICAgLyogWmVyb2l6ZSB0aGUgQTEgcGFydCBvZiB0aGUgc2hhcmVkIGxpbWIgKi8KKyAgICAgICAgaWYgKG1hc2sgIT0gMCkgeworICAgICAgICAgICAgWFtQX2xpbWJzIC0gMV0gJj0gbWFzazsKKyAgICAgICAgfQorCisgICAgICAgIC8qIFggPSBBMAorICAgICAgICAgKiBaZXJvaXplIHRoZSBBMSBwYXJ0IG9mIFggdG8ga2VlcCBvbmx5IHRoZSBBMCBwYXJ0LgorICAgICAgICAgKi8KKyAgICAgICAgZm9yIChzaXplX3QgaSA9IFBfbGltYnM7IGkgPCBYX2xpbWJzOyBpKyspIHsKKyAgICAgICAgICAgIFhbaV0gPSAwOworICAgICAgICB9CisKKyAgICAgICAgLyogWCA9IEEwICsgUiAqIEExICovCisgICAgICAgIG1iZWR0bHNfbXBpX2NvcmVfbXVsKE0sIEExLCBQX2xpbWJzLCBSLCBSX2xpbWJzKTsKKyAgICAgICAgKHZvaWQpIG1iZWR0bHNfbXBpX2NvcmVfYWRkKFgsIFgsIE0sIFBfbGltYnMgKyBSX2xpbWJzKTsKKworICAgICAgICAvKiBDYXJyeSBjYW4gbm90IGJlIGdlbmVyYXRlZCBzaW5jZSBSIGlzIGEgMzMtYml0IHZhbHVlIGFuZCBzdG9yZWQgaW4KKyAgICAgICAgICogNjQgYml0cy4gVGhlIHJlc3VsdCB2YWx1ZSBvZiB0aGUgbXVsdGlwbGljYXRpb24gaXMgYXQgbW9zdAorICAgICAgICAgKiBQIGxlbmd0aCArIDMzIGJpdHMgaW4gbGVuZ3RoIGFuZCB0aGUgcmVzdWx0IHZhbHVlIG9mIHRoZSBhZGRpdGlvbgorICAgICAgICAgKiBpcyBhdCBtb3N0IFAgbGVuZ3RoICsgMzQgYml0cyBpbiBsZW5ndGguIFNvIHRoZSByZXN1bHQgb2YgdGhlCisgICAgICAgICAqIGFkZGl0aW9uIGFsd2F5cyBmaXRzIGluIFAgbGVuZ3RoICsgNjQgYml0cy4KKyAgICAgICAgICovCisgICAgfQorCitjbGVhbnVwOgorICAgIG1iZWR0bHNfZnJlZShNKTsKKyAgICBtYmVkdGxzX2ZyZWUoQTEpOworCisgICAgcmV0dXJuIHJldDsKK30KKworI2VuZGlmIC8qIE1CRURUTFNfRUNQX0RQX1NFQ1AxOTJLMV9FTkFCTEVEKSB8fAorICAgICAgICAgIE1CRURUTFNfRUNQX0RQX1NFQ1AyMjRLMV9FTkFCTEVEKSB8fAorICAgICAgICAgIE1CRURUTFNfRUNQX0RQX1NFQ1AyNTZLMV9FTkFCTEVEKSAqLworCisjaWYgZGVmaW5lZChNQkVEVExTX0VDUF9EUF9TRUNQMTkySzFfRU5BQkxFRCkKKworLyoKKyAqIEZhc3QgcXVhc2ktcmVkdWN0aW9uIG1vZHVsbyBwMTkyazEgPSAyXjE5MiAtIFIsCisgKiB3aXRoIFIgPSAyXjMyICsgMl4xMiArIDJeOCArIDJeNyArIDJeNiArIDJeMyArIDEgPSAweDAxMDAwMDExQzkKKyAqLworc3RhdGljIGludCBlY3BfbW9kX3AxOTJrMShtYmVkdGxzX21waSAqTikKK3sKKyAgICBpbnQgcmV0ID0gTUJFRFRMU19FUlJfRVJST1JfQ09SUlVQVElPTl9ERVRFQ1RFRDsKKyAgICBzaXplX3QgZXhwZWN0ZWRfd2lkdGggPSBCSVRTX1RPX0xJTUJTKDE5MikgKiAyOworICAgIE1CRURUTFNfTVBJX0NISyhtYmVkdGxzX21waV9ncm93KE4sIGV4cGVjdGVkX3dpZHRoKSk7CisgICAgcmV0ID0gbWJlZHRsc19lY3BfbW9kX3AxOTJrMV9yYXcoTi0+cCwgZXhwZWN0ZWRfd2lkdGgpOworCitjbGVhbnVwOgorICAgIHJldHVybiByZXQ7Cit9CisKK01CRURUTFNfU1RBVElDX1RFU1RBQkxFCitpbnQgbWJlZHRsc19lY3BfbW9kX3AxOTJrMV9yYXcobWJlZHRsc19tcGlfdWludCAqWCwgc2l6ZV90IFhfbGltYnMpCit7CisgICAgc3RhdGljIG1iZWR0bHNfbXBpX3VpbnQgUnBbXSA9IHsKKyAgICAgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweEM5LCAweDExLCAweDAwLCAweDAwLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEsIDB4MDAsIDB4MDAsIDB4MDApCisgICAgfTsKKworICAgIGlmIChYX2xpbWJzICE9IEJJVFNfVE9fTElNQlMoMTkyKSAqIDIpIHsKKyAgICAgICAgcmV0dXJuIE1CRURUTFNfRVJSX0VDUF9CQURfSU5QVVRfREFUQTsKKyAgICB9CisKKyAgICByZXR1cm4gZWNwX21vZF9rb2JsaXR6KFgsIFhfbGltYnMsIFJwLCAxOTIpOworfQorCisjZW5kaWYgLyogTUJFRFRMU19FQ1BfRFBfU0VDUDE5MksxX0VOQUJMRUQgKi8KKworI2lmIGRlZmluZWQoTUJFRFRMU19FQ1BfRFBfU0VDUDIyNEsxX0VOQUJMRUQpCisKKy8qCisgKiBGYXN0IHF1YXNpLXJlZHVjdGlvbiBtb2R1bG8gcDIyNGsxID0gMl4yMjQgLSBSLAorICogd2l0aCBSID0gMl4zMiArIDJeMTIgKyAyXjExICsgMl45ICsgMl43ICsgMl40ICsgMiArIDEgPSAweDAxMDAwMDFBOTMKKyAqLworc3RhdGljIGludCBlY3BfbW9kX3AyMjRrMShtYmVkdGxzX21waSAqTikKK3sKKyAgICBpbnQgcmV0ID0gTUJFRFRMU19FUlJfRVJST1JfQ09SUlVQVElPTl9ERVRFQ1RFRDsKKyAgICBzaXplX3QgZXhwZWN0ZWRfd2lkdGggPSBCSVRTX1RPX0xJTUJTKDIyNCkgKiAyOworICAgIE1CRURUTFNfTVBJX0NISyhtYmVkdGxzX21waV9ncm93KE4sIGV4cGVjdGVkX3dpZHRoKSk7CisgICAgcmV0ID0gbWJlZHRsc19lY3BfbW9kX3AyMjRrMV9yYXcoTi0+cCwgZXhwZWN0ZWRfd2lkdGgpOworCitjbGVhbnVwOgorICAgIHJldHVybiByZXQ7Cit9CisKK01CRURUTFNfU1RBVElDX1RFU1RBQkxFCitpbnQgbWJlZHRsc19lY3BfbW9kX3AyMjRrMV9yYXcobWJlZHRsc19tcGlfdWludCAqWCwgc2l6ZV90IFhfbGltYnMpCit7CisgICAgc3RhdGljIG1iZWR0bHNfbXBpX3VpbnQgUnBbXSA9IHsKKyAgICAgICAgTUJFRFRMU19CWVRFU19UT19UX1VJTlRfOCgweDkzLCAweDFBLCAweDAwLCAweDAwLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEsIDB4MDAsIDB4MDAsIDB4MDApCisgICAgfTsKKworICAgIGlmIChYX2xpbWJzICE9ICBCSVRTX1RPX0xJTUJTKDIyNCkgKiAyKSB7CisgICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9FQ1BfQkFEX0lOUFVUX0RBVEE7CisgICAgfQorCisgICAgcmV0dXJuIGVjcF9tb2Rfa29ibGl0eihYLCBYX2xpbWJzLCBScCwgMjI0KTsKK30KKworI2VuZGlmIC8qIE1CRURUTFNfRUNQX0RQX1NFQ1AyMjRLMV9FTkFCTEVEICovCisKKyNpZiBkZWZpbmVkKE1CRURUTFNfRUNQX0RQX1NFQ1AyNTZLMV9FTkFCTEVEKQorCisvKgorICogRmFzdCBxdWFzaS1yZWR1Y3Rpb24gbW9kdWxvIHAyNTZrMSA9IDJeMjU2IC0gUiwKKyAqIHdpdGggUiA9IDJeMzIgKyAyXjkgKyAyXjggKyAyXjcgKyAyXjYgKyAyXjQgKyAxID0gMHgwMTAwMDAwM0QxCisgKi8KK3N0YXRpYyBpbnQgZWNwX21vZF9wMjU2azEobWJlZHRsc19tcGkgKk4pCit7CisgICAgaW50IHJldCA9IE1CRURUTFNfRVJSX0VSUk9SX0NPUlJVUFRJT05fREVURUNURUQ7CisgICAgc2l6ZV90IGV4cGVjdGVkX3dpZHRoID0gQklUU19UT19MSU1CUygyNTYpICogMjsKKyAgICBNQkVEVExTX01QSV9DSEsobWJlZHRsc19tcGlfZ3JvdyhOLCBleHBlY3RlZF93aWR0aCkpOworICAgIHJldCA9IG1iZWR0bHNfZWNwX21vZF9wMjU2azFfcmF3KE4tPnAsIGV4cGVjdGVkX3dpZHRoKTsKKworY2xlYW51cDoKKyAgICByZXR1cm4gcmV0OworfQorCitNQkVEVExTX1NUQVRJQ19URVNUQUJMRQoraW50IG1iZWR0bHNfZWNwX21vZF9wMjU2azFfcmF3KG1iZWR0bHNfbXBpX3VpbnQgKlgsIHNpemVfdCBYX2xpbWJzKQoreworICAgIHN0YXRpYyBtYmVkdGxzX21waV91aW50IFJwW10gPSB7CisgICAgICAgIE1CRURUTFNfQllURVNfVE9fVF9VSU5UXzgoMHhEMSwgMHgwMywgMHgwMCwgMHgwMCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxLCAweDAwLCAweDAwLCAweDAwKQorICAgIH07CisKKyAgICBpZiAoWF9saW1icyAhPSBCSVRTX1RPX0xJTUJTKDI1NikgKiAyKSB7CisgICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9FQ1BfQkFEX0lOUFVUX0RBVEE7CisgICAgfQorCisgICAgcmV0dXJuIGVjcF9tb2Rfa29ibGl0eihYLCBYX2xpbWJzLCBScCwgMjU2KTsKK30KKworI2VuZGlmIC8qIE1CRURUTFNfRUNQX0RQX1NFQ1AyNTZLMV9FTkFCTEVEICovCisKKyNpZiBkZWZpbmVkKE1CRURUTFNfVEVTVF9IT09LUykKK01CRURUTFNfU1RBVElDX1RFU1RBQkxFCitpbnQgbWJlZHRsc19lY3BfbW9kdWx1c19zZXR1cChtYmVkdGxzX21waV9tb2RfbW9kdWx1cyAqTiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IG1iZWR0bHNfZWNwX2dyb3VwX2lkIGlkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbWJlZHRsc19lY3BfbW9kdWx1c190eXBlIGN0eXBlKQoreworICAgIG1iZWR0bHNfbXBpX21vZHBfZm4gbW9kcCA9IE5VTEw7CisgICAgbWJlZHRsc19tcGlfdWludCAqcCA9IE5VTEw7CisgICAgc2l6ZV90IHBfbGltYnM7CisKKyAgICBpZiAoIShjdHlwZSA9PSAobWJlZHRsc19lY3BfbW9kdWx1c190eXBlKSBNQkVEVExTX0VDUF9NT0RfQ09PUkRJTkFURSB8fCBcCisgICAgICAgICAgY3R5cGUgPT0gKG1iZWR0bHNfZWNwX21vZHVsdXNfdHlwZSkgTUJFRFRMU19FQ1BfTU9EX1NDQUxBUikpIHsKKyAgICAgICAgcmV0dXJuIE1CRURUTFNfRVJSX0VDUF9CQURfSU5QVVRfREFUQTsKKyAgICB9CisKKyAgICBzd2l0Y2ggKGlkKSB7CisjaWYgZGVmaW5lZChNQkVEVExTX0VDUF9EUF9TRUNQMTkyUjFfRU5BQkxFRCkKKyAgICAgICAgY2FzZSBNQkVEVExTX0VDUF9EUF9TRUNQMTkyUjE6CisgICAgICAgICAgICBpZiAoY3R5cGUgPT0gKG1iZWR0bHNfZWNwX21vZHVsdXNfdHlwZSkgTUJFRFRMU19FQ1BfTU9EX0NPT1JESU5BVEUpIHsKKyNpZiBkZWZpbmVkKE1CRURUTFNfRUNQX05JU1RfT1BUSU0pCisgICAgICAgICAgICAgICAgbW9kcCA9ICZtYmVkdGxzX2VjcF9tb2RfcDE5Ml9yYXc7CisjZW5kaWYKKyAgICAgICAgICAgICAgICBwID0gKG1iZWR0bHNfbXBpX3VpbnQgKikgc2VjcDE5MnIxX3A7CisgICAgICAgICAgICAgICAgcF9saW1icyA9IENIQVJTX1RPX0xJTUJTKHNpemVvZihzZWNwMTkycjFfcCkpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBwID0gKG1iZWR0bHNfbXBpX3VpbnQgKikgc2VjcDE5MnIxX247CisgICAgICAgICAgICAgICAgcF9saW1icyA9IENIQVJTX1RPX0xJTUJTKHNpemVvZihzZWNwMTkycjFfbikpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgYnJlYWs7CisjZW5kaWYKKworI2lmIGRlZmluZWQoTUJFRFRMU19FQ1BfRFBfU0VDUDIyNFIxX0VOQUJMRUQpCisgICAgICAgIGNhc2UgTUJFRFRMU19FQ1BfRFBfU0VDUDIyNFIxOgorICAgICAgICAgICAgaWYgKGN0eXBlID09IChtYmVkdGxzX2VjcF9tb2R1bHVzX3R5cGUpIE1CRURUTFNfRUNQX01PRF9DT09SRElOQVRFKSB7CisjaWYgZGVmaW5lZChNQkVEVExTX0VDUF9OSVNUX09QVElNKQorICAgICAgICAgICAgICAgIG1vZHAgPSAmbWJlZHRsc19lY3BfbW9kX3AyMjRfcmF3OworI2VuZGlmCisgICAgICAgICAgICAgICAgcCA9IChtYmVkdGxzX21waV91aW50ICopIHNlY3AyMjRyMV9wOworICAgICAgICAgICAgICAgIHBfbGltYnMgPSBDSEFSU19UT19MSU1CUyhzaXplb2Yoc2VjcDIyNHIxX3ApKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgcCA9IChtYmVkdGxzX21waV91aW50ICopIHNlY3AyMjRyMV9uOworICAgICAgICAgICAgICAgIHBfbGltYnMgPSBDSEFSU19UT19MSU1CUyhzaXplb2Yoc2VjcDIyNHIxX24pKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGJyZWFrOworI2VuZGlmCisKKyNpZiBkZWZpbmVkKE1CRURUTFNfRUNQX0RQX1NFQ1AyNTZSMV9FTkFCTEVEKQorICAgICAgICBjYXNlIE1CRURUTFNfRUNQX0RQX1NFQ1AyNTZSMToKKyAgICAgICAgICAgIGlmIChjdHlwZSA9PSAobWJlZHRsc19lY3BfbW9kdWx1c190eXBlKSBNQkVEVExTX0VDUF9NT0RfQ09PUkRJTkFURSkgeworI2lmIGRlZmluZWQoTUJFRFRMU19FQ1BfTklTVF9PUFRJTSkKKyAgICAgICAgICAgICAgICBtb2RwID0gJm1iZWR0bHNfZWNwX21vZF9wMjU2X3JhdzsKKyNlbmRpZgorICAgICAgICAgICAgICAgIHAgPSAobWJlZHRsc19tcGlfdWludCAqKSBzZWNwMjU2cjFfcDsKKyAgICAgICAgICAgICAgICBwX2xpbWJzID0gQ0hBUlNfVE9fTElNQlMoc2l6ZW9mKHNlY3AyNTZyMV9wKSk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIHAgPSAobWJlZHRsc19tcGlfdWludCAqKSBzZWNwMjU2cjFfbjsKKyAgICAgICAgICAgICAgICBwX2xpbWJzID0gQ0hBUlNfVE9fTElNQlMoc2l6ZW9mKHNlY3AyNTZyMV9uKSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBicmVhazsKKyNlbmRpZgorCisjaWYgZGVmaW5lZChNQkVEVExTX0VDUF9EUF9TRUNQMzg0UjFfRU5BQkxFRCkKKyAgICAgICAgY2FzZSBNQkVEVExTX0VDUF9EUF9TRUNQMzg0UjE6CisgICAgICAgICAgICBpZiAoY3R5cGUgPT0gKG1iZWR0bHNfZWNwX21vZHVsdXNfdHlwZSkgTUJFRFRMU19FQ1BfTU9EX0NPT1JESU5BVEUpIHsKKyNpZiBkZWZpbmVkKE1CRURUTFNfRUNQX05JU1RfT1BUSU0pCisgICAgICAgICAgICAgICAgbW9kcCA9ICZtYmVkdGxzX2VjcF9tb2RfcDM4NF9yYXc7CisjZW5kaWYKKyAgICAgICAgICAgICAgICBwID0gKG1iZWR0bHNfbXBpX3VpbnQgKikgc2VjcDM4NHIxX3A7CisgICAgICAgICAgICAgICAgcF9saW1icyA9IENIQVJTX1RPX0xJTUJTKHNpemVvZihzZWNwMzg0cjFfcCkpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBwID0gKG1iZWR0bHNfbXBpX3VpbnQgKikgc2VjcDM4NHIxX247CisgICAgICAgICAgICAgICAgcF9saW1icyA9IENIQVJTX1RPX0xJTUJTKHNpemVvZihzZWNwMzg0cjFfbikpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgYnJlYWs7CisjZW5kaWYKKworI2lmIGRlZmluZWQoTUJFRFRMU19FQ1BfRFBfU0VDUDUyMVIxX0VOQUJMRUQpCisgICAgICAgIGNhc2UgTUJFRFRMU19FQ1BfRFBfU0VDUDUyMVIxOgorICAgICAgICAgICAgaWYgKGN0eXBlID09IChtYmVkdGxzX2VjcF9tb2R1bHVzX3R5cGUpIE1CRURUTFNfRUNQX01PRF9DT09SRElOQVRFKSB7CisjaWYgZGVmaW5lZChNQkVEVExTX0VDUF9OSVNUX09QVElNKQorICAgICAgICAgICAgICAgIG1vZHAgPSAmbWJlZHRsc19lY3BfbW9kX3A1MjFfcmF3OworI2VuZGlmCisgICAgICAgICAgICAgICAgcCA9IChtYmVkdGxzX21waV91aW50ICopIHNlY3A1MjFyMV9wOworICAgICAgICAgICAgICAgIHBfbGltYnMgPSBDSEFSU19UT19MSU1CUyhzaXplb2Yoc2VjcDUyMXIxX3ApKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgcCA9IChtYmVkdGxzX21waV91aW50ICopIHNlY3A1MjFyMV9uOworICAgICAgICAgICAgICAgIHBfbGltYnMgPSBDSEFSU19UT19MSU1CUyhzaXplb2Yoc2VjcDUyMXIxX24pKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGJyZWFrOworI2VuZGlmCisKKyNpZiBkZWZpbmVkKE1CRURUTFNfRUNQX0RQX0JQMjU2UjFfRU5BQkxFRCkKKyAgICAgICAgY2FzZSBNQkVEVExTX0VDUF9EUF9CUDI1NlIxOgorICAgICAgICAgICAgaWYgKGN0eXBlID09IChtYmVkdGxzX2VjcF9tb2R1bHVzX3R5cGUpIE1CRURUTFNfRUNQX01PRF9DT09SRElOQVRFKSB7CisgICAgICAgICAgICAgICAgcCA9IChtYmVkdGxzX21waV91aW50ICopIGJyYWlucG9vbFAyNTZyMV9wOworICAgICAgICAgICAgICAgIHBfbGltYnMgPSBDSEFSU19UT19MSU1CUyhzaXplb2YoYnJhaW5wb29sUDI1NnIxX3ApKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgcCA9IChtYmVkdGxzX21waV91aW50ICopIGJyYWlucG9vbFAyNTZyMV9uOworICAgICAgICAgICAgICAgIHBfbGltYnMgPSBDSEFSU19UT19MSU1CUyhzaXplb2YoYnJhaW5wb29sUDI1NnIxX24pKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGJyZWFrOworI2VuZGlmCisKKyNpZiBkZWZpbmVkKE1CRURUTFNfRUNQX0RQX0JQMzg0UjFfRU5BQkxFRCkKKyAgICAgICAgY2FzZSBNQkVEVExTX0VDUF9EUF9CUDM4NFIxOgorICAgICAgICAgICAgaWYgKGN0eXBlID09IChtYmVkdGxzX2VjcF9tb2R1bHVzX3R5cGUpIE1CRURUTFNfRUNQX01PRF9DT09SRElOQVRFKSB7CisgICAgICAgICAgICAgICAgcCA9IChtYmVkdGxzX21waV91aW50ICopIGJyYWlucG9vbFAzODRyMV9wOworICAgICAgICAgICAgICAgIHBfbGltYnMgPSBDSEFSU19UT19MSU1CUyhzaXplb2YoYnJhaW5wb29sUDM4NHIxX3ApKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgcCA9IChtYmVkdGxzX21waV91aW50ICopIGJyYWlucG9vbFAzODRyMV9uOworICAgICAgICAgICAgICAgIHBfbGltYnMgPSBDSEFSU19UT19MSU1CUyhzaXplb2YoYnJhaW5wb29sUDM4NHIxX24pKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGJyZWFrOworI2VuZGlmCisKKyNpZiBkZWZpbmVkKE1CRURUTFNfRUNQX0RQX0JQNTEyUjFfRU5BQkxFRCkKKyAgICAgICAgY2FzZSBNQkVEVExTX0VDUF9EUF9CUDUxMlIxOgorICAgICAgICAgICAgaWYgKGN0eXBlID09IChtYmVkdGxzX2VjcF9tb2R1bHVzX3R5cGUpIE1CRURUTFNfRUNQX01PRF9DT09SRElOQVRFKSB7CisgICAgICAgICAgICAgICAgcCA9IChtYmVkdGxzX21waV91aW50ICopIGJyYWlucG9vbFA1MTJyMV9wOworICAgICAgICAgICAgICAgIHBfbGltYnMgPSBDSEFSU19UT19MSU1CUyhzaXplb2YoYnJhaW5wb29sUDUxMnIxX3ApKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgcCA9IChtYmVkdGxzX21waV91aW50ICopIGJyYWlucG9vbFA1MTJyMV9uOworICAgICAgICAgICAgICAgIHBfbGltYnMgPSBDSEFSU19UT19MSU1CUyhzaXplb2YoYnJhaW5wb29sUDUxMnIxX24pKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGJyZWFrOworI2VuZGlmCisKKyNpZiBkZWZpbmVkKE1CRURUTFNfRUNQX0RQX0NVUlZFMjU1MTlfRU5BQkxFRCkKKyAgICAgICAgY2FzZSBNQkVEVExTX0VDUF9EUF9DVVJWRTI1NTE5OgorICAgICAgICAgICAgaWYgKGN0eXBlID09IChtYmVkdGxzX2VjcF9tb2R1bHVzX3R5cGUpIE1CRURUTFNfRUNQX01PRF9DT09SRElOQVRFKSB7CisgICAgICAgICAgICAgICAgbW9kcCA9ICZtYmVkdGxzX2VjcF9tb2RfcDI1NV9yYXc7CisgICAgICAgICAgICAgICAgcCA9IChtYmVkdGxzX21waV91aW50ICopIGN1cnZlMjU1MTlfcDsKKyAgICAgICAgICAgICAgICBwX2xpbWJzID0gQ0hBUlNfVE9fTElNQlMoc2l6ZW9mKGN1cnZlMjU1MTlfcCkpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBwID0gKG1iZWR0bHNfbXBpX3VpbnQgKikgY3VydmUyNTUxOV9uOworICAgICAgICAgICAgICAgIHBfbGltYnMgPSBDSEFSU19UT19MSU1CUyhzaXplb2YoY3VydmUyNTUxOV9uKSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBicmVhazsKKyNlbmRpZgorCisjaWYgZGVmaW5lZChNQkVEVExTX0VDUF9EUF9TRUNQMTkySzFfRU5BQkxFRCkKKyAgICAgICAgY2FzZSBNQkVEVExTX0VDUF9EUF9TRUNQMTkySzE6CisgICAgICAgICAgICBpZiAoY3R5cGUgPT0gKG1iZWR0bHNfZWNwX21vZHVsdXNfdHlwZSkgTUJFRFRMU19FQ1BfTU9EX0NPT1JESU5BVEUpIHsKKyAgICAgICAgICAgICAgICBtb2RwID0gJm1iZWR0bHNfZWNwX21vZF9wMTkyazFfcmF3OworICAgICAgICAgICAgICAgIHAgPSAobWJlZHRsc19tcGlfdWludCAqKSBzZWNwMTkyazFfcDsKKyAgICAgICAgICAgICAgICBwX2xpbWJzID0gQ0hBUlNfVE9fTElNQlMoc2l6ZW9mKHNlY3AxOTJrMV9wKSk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIHAgPSAobWJlZHRsc19tcGlfdWludCAqKSBzZWNwMTkyazFfbjsKKyAgICAgICAgICAgICAgICBwX2xpbWJzID0gQ0hBUlNfVE9fTElNQlMoc2l6ZW9mKHNlY3AxOTJrMV9uKSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBicmVhazsKKyNlbmRpZgorCisjaWYgZGVmaW5lZChNQkVEVExTX0VDUF9EUF9TRUNQMjI0SzFfRU5BQkxFRCkKKyAgICAgICAgY2FzZSBNQkVEVExTX0VDUF9EUF9TRUNQMjI0SzE6CisgICAgICAgICAgICBpZiAoY3R5cGUgPT0gKG1iZWR0bHNfZWNwX21vZHVsdXNfdHlwZSkgTUJFRFRMU19FQ1BfTU9EX0NPT1JESU5BVEUpIHsKKyAgICAgICAgICAgICAgICBtb2RwID0gJm1iZWR0bHNfZWNwX21vZF9wMjI0azFfcmF3OworICAgICAgICAgICAgICAgIHAgPSAobWJlZHRsc19tcGlfdWludCAqKSBzZWNwMjI0azFfcDsKKyAgICAgICAgICAgICAgICBwX2xpbWJzID0gQ0hBUlNfVE9fTElNQlMoc2l6ZW9mKHNlY3AyMjRrMV9wKSk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIHAgPSAobWJlZHRsc19tcGlfdWludCAqKSBzZWNwMjI0azFfbjsKKyAgICAgICAgICAgICAgICBwX2xpbWJzID0gQ0hBUlNfVE9fTElNQlMoc2l6ZW9mKHNlY3AyMjRrMV9uKSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBicmVhazsKKyNlbmRpZgorCisjaWYgZGVmaW5lZChNQkVEVExTX0VDUF9EUF9TRUNQMjU2SzFfRU5BQkxFRCkKKyAgICAgICAgY2FzZSBNQkVEVExTX0VDUF9EUF9TRUNQMjU2SzE6CisgICAgICAgICAgICBpZiAoY3R5cGUgPT0gKG1iZWR0bHNfZWNwX21vZHVsdXNfdHlwZSkgTUJFRFRMU19FQ1BfTU9EX0NPT1JESU5BVEUpIHsKKyAgICAgICAgICAgICAgICBtb2RwID0gJm1iZWR0bHNfZWNwX21vZF9wMjU2azFfcmF3OworICAgICAgICAgICAgICAgIHAgPSAobWJlZHRsc19tcGlfdWludCAqKSBzZWNwMjU2azFfcDsKKyAgICAgICAgICAgICAgICBwX2xpbWJzID0gQ0hBUlNfVE9fTElNQlMoc2l6ZW9mKHNlY3AyNTZrMV9wKSk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIHAgPSAobWJlZHRsc19tcGlfdWludCAqKSBzZWNwMjU2azFfbjsKKyAgICAgICAgICAgICAgICBwX2xpbWJzID0gQ0hBUlNfVE9fTElNQlMoc2l6ZW9mKHNlY3AyNTZrMV9uKSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBicmVhazsKKyNlbmRpZgorCisjaWYgZGVmaW5lZChNQkVEVExTX0VDUF9EUF9DVVJWRTQ0OF9FTkFCTEVEKQorICAgICAgICBjYXNlIE1CRURUTFNfRUNQX0RQX0NVUlZFNDQ4OgorICAgICAgICAgICAgaWYgKGN0eXBlID09IChtYmVkdGxzX2VjcF9tb2R1bHVzX3R5cGUpIE1CRURUTFNfRUNQX01PRF9DT09SRElOQVRFKSB7CisgICAgICAgICAgICAgICAgbW9kcCA9ICZtYmVkdGxzX2VjcF9tb2RfcDQ0OF9yYXc7CisgICAgICAgICAgICAgICAgcCA9IChtYmVkdGxzX21waV91aW50ICopIGN1cnZlNDQ4X3A7CisgICAgICAgICAgICAgICAgcF9saW1icyA9IENIQVJTX1RPX0xJTUJTKHNpemVvZihjdXJ2ZTQ0OF9wKSk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIHAgPSAobWJlZHRsc19tcGlfdWludCAqKSBjdXJ2ZTQ0OF9uOworICAgICAgICAgICAgICAgIHBfbGltYnMgPSBDSEFSU19UT19MSU1CUyhzaXplb2YoY3VydmU0NDhfbikpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgYnJlYWs7CisjZW5kaWYKKworICAgICAgICBkZWZhdWx0OgorICAgICAgICBjYXNlIE1CRURUTFNfRUNQX0RQX05PTkU6CisgICAgICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfRUNQX0JBRF9JTlBVVF9EQVRBOworICAgIH0KKworICAgIGlmIChtb2RwICE9IE5VTEwpIHsKKyAgICAgICAgaWYgKG1iZWR0bHNfbXBpX21vZF9vcHRyZWRfbW9kdWx1c19zZXR1cChOLCBwLCBwX2xpbWJzLCBtb2RwKSkgeworICAgICAgICAgICAgcmV0dXJuIE1CRURUTFNfRVJSX0VSUk9SX0NPUlJVUFRJT05fREVURUNURUQ7CisgICAgICAgIH0KKyAgICB9IGVsc2UgeworICAgICAgICBpZiAobWJlZHRsc19tcGlfbW9kX21vZHVsdXNfc2V0dXAoTiwgcCwgcF9saW1icykpIHsKKyAgICAgICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9FUlJPUl9DT1JSVVBUSU9OX0RFVEVDVEVEOworICAgICAgICB9CisgICAgfQorICAgIHJldHVybiAwOworfQorI2VuZGlmIC8qIE1CRURUTFNfVEVTVF9IT09LUyAqLworCisjaWYgZGVmaW5lZChNQkVEVExTX1RFU1RfSE9PS1MpCisKK01CRURUTFNfU1RBVElDX1RFU1RBQkxFCittYmVkdGxzX2VjcF92YXJpYW50IG1iZWR0bHNfZWNwX2dldF92YXJpYW50KHZvaWQpCit7CisgICAgcmV0dXJuIE1CRURUTFNfRUNQX1ZBUklBTlRfV0lUSF9NUElfVUlOVDsKK30KKworI2VuZGlmIC8qIE1CRURUTFNfVEVTVF9IT09LUyAqLworCisjZW5kaWYgLyogTUJFRFRMU19FQ1BfTElHSFQgKi8KKyNlbmRpZiAvKiBNQkVEVExTX0VDUF9XSVRIX01QSV9VSU5UICovCmRpZmYgLS1naXQgYS9saWJyYXJ5L2VjcF9pbnZhc2l2ZS5oIGIvdGYtcHNhLWNyeXB0by9kcml2ZXJzL2J1aWx0aW4vc3JjL2VjcF9pbnZhc2l2ZS5oCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBsaWJyYXJ5L2VjcF9pbnZhc2l2ZS5oCnJlbmFtZSB0byB0Zi1wc2EtY3J5cHRvL2RyaXZlcnMvYnVpbHRpbi9zcmMvZWNwX2ludmFzaXZlLmgKZGlmZiAtLWdpdCBhL3RmLXBzYS1jcnlwdG8vZHJpdmVycy9idWlsdGluL3NyYy9lbnRyb3B5LmMgYi90Zi1wc2EtY3J5cHRvL2RyaXZlcnMvYnVpbHRpbi9zcmMvZW50cm9weS5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjdkY2YwNjcKLS0tIC9kZXYvbnVsbAorKysgYi90Zi1wc2EtY3J5cHRvL2RyaXZlcnMvYnVpbHRpbi9zcmMvZW50cm9weS5jCkBAIC0wLDAgKzEsNjgwIEBACisvKgorICogIEVudHJvcHkgYWNjdW11bGF0b3IgaW1wbGVtZW50YXRpb24KKyAqCisgKiAgQ29weXJpZ2h0IFRoZSBNYmVkIFRMUyBDb250cmlidXRvcnMKKyAqICBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMCBPUiBHUEwtMi4wLW9yLWxhdGVyCisgKi8KKworI2luY2x1ZGUgImNvbW1vbi5oIgorCisjaWYgZGVmaW5lZChNQkVEVExTX0VOVFJPUFlfQykKKworI2luY2x1ZGUgIm1iZWR0bHMvZW50cm9weS5oIgorI2luY2x1ZGUgImVudHJvcHlfcG9sbC5oIgorI2luY2x1ZGUgIm1iZWR0bHMvcGxhdGZvcm1fdXRpbC5oIgorI2luY2x1ZGUgIm1iZWR0bHMvZXJyb3IuaCIKKworI2luY2x1ZGUgPHN0cmluZy5oPgorCisjaWYgZGVmaW5lZChNQkVEVExTX0ZTX0lPKQorI2luY2x1ZGUgPHN0ZGlvLmg+CisjZW5kaWYKKworI2luY2x1ZGUgIm1iZWR0bHMvcGxhdGZvcm0uaCIKKworI2RlZmluZSBFTlRST1BZX01BWF9MT09QICAgIDI1NiAgICAgLyoqPCBNYXhpbXVtIGFtb3VudCB0byBsb29wIGJlZm9yZSBlcnJvciAqLworCit2b2lkIG1iZWR0bHNfZW50cm9weV9pbml0KG1iZWR0bHNfZW50cm9weV9jb250ZXh0ICpjdHgpCit7CisgICAgY3R4LT5zb3VyY2VfY291bnQgPSAwOworICAgIG1lbXNldChjdHgtPnNvdXJjZSwgMCwgc2l6ZW9mKGN0eC0+c291cmNlKSk7CisKKyNpZiBkZWZpbmVkKE1CRURUTFNfVEhSRUFESU5HX0MpCisgICAgbWJlZHRsc19tdXRleF9pbml0KCZjdHgtPm11dGV4KTsKKyNlbmRpZgorCisgICAgY3R4LT5hY2N1bXVsYXRvcl9zdGFydGVkID0gMDsKKyAgICBtYmVkdGxzX21kX2luaXQoJmN0eC0+YWNjdW11bGF0b3IpOworCisgICAgLyogUmVtaW5kZXI6IFVwZGF0ZSBFTlRST1BZX0hBVkVfU1RST05HIGluIHRoZSB0ZXN0IGZpbGVzCisgICAgICogICAgICAgICAgIHdoZW4gYWRkaW5nIG1vcmUgc3Ryb25nIGVudHJvcHkgc291cmNlcyBoZXJlLiAqLworCisjaWYgIWRlZmluZWQoTUJFRFRMU19OT19ERUZBVUxUX0VOVFJPUFlfU09VUkNFUykKKyNpZiAhZGVmaW5lZChNQkVEVExTX05PX1BMQVRGT1JNX0VOVFJPUFkpCisgICAgbWJlZHRsc19lbnRyb3B5X2FkZF9zb3VyY2UoY3R4LCBtYmVkdGxzX3BsYXRmb3JtX2VudHJvcHlfcG9sbCwgTlVMTCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNQkVEVExTX0VOVFJPUFlfTUlOX1BMQVRGT1JNLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1CRURUTFNfRU5UUk9QWV9TT1VSQ0VfU1RST05HKTsKKyNlbmRpZgorI2lmIGRlZmluZWQoTUJFRFRMU19FTlRST1BZX0hBUkRXQVJFX0FMVCkKKyAgICBtYmVkdGxzX2VudHJvcHlfYWRkX3NvdXJjZShjdHgsIG1iZWR0bHNfaGFyZHdhcmVfcG9sbCwgTlVMTCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNQkVEVExTX0VOVFJPUFlfTUlOX0hBUkRXQVJFLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1CRURUTFNfRU5UUk9QWV9TT1VSQ0VfU1RST05HKTsKKyNlbmRpZgorI2lmIGRlZmluZWQoTUJFRFRMU19FTlRST1BZX05WX1NFRUQpCisgICAgbWJlZHRsc19lbnRyb3B5X2FkZF9zb3VyY2UoY3R4LCBtYmVkdGxzX252X3NlZWRfcG9sbCwgTlVMTCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNQkVEVExTX0VOVFJPUFlfQkxPQ0tfU0laRSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNQkVEVExTX0VOVFJPUFlfU09VUkNFX1NUUk9ORyk7CisgICAgY3R4LT5pbml0aWFsX2VudHJvcHlfcnVuID0gMDsKKyNlbmRpZgorI2VuZGlmIC8qIE1CRURUTFNfTk9fREVGQVVMVF9FTlRST1BZX1NPVVJDRVMgKi8KK30KKwordm9pZCBtYmVkdGxzX2VudHJvcHlfZnJlZShtYmVkdGxzX2VudHJvcHlfY29udGV4dCAqY3R4KQoreworICAgIGlmIChjdHggPT0gTlVMTCkgeworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgLyogSWYgdGhlIGNvbnRleHQgd2FzIGFscmVhZHkgZnJlZSwgZG9uJ3QgY2FsbCBmcmVlKCkgYWdhaW4uCisgICAgICogVGhpcyBpcyBpbXBvcnRhbnQgZm9yIG11dGV4ZXMgd2hpY2ggZG9uJ3QgYWxsb3cgZG91YmxlLWZyZWUuICovCisgICAgaWYgKGN0eC0+YWNjdW11bGF0b3Jfc3RhcnRlZCA9PSAtMSkgeworICAgICAgICByZXR1cm47CisgICAgfQorCisjaWYgZGVmaW5lZChNQkVEVExTX1RIUkVBRElOR19DKQorICAgIG1iZWR0bHNfbXV0ZXhfZnJlZSgmY3R4LT5tdXRleCk7CisjZW5kaWYKKyAgICBtYmVkdGxzX21kX2ZyZWUoJmN0eC0+YWNjdW11bGF0b3IpOworI2lmIGRlZmluZWQoTUJFRFRMU19FTlRST1BZX05WX1NFRUQpCisgICAgY3R4LT5pbml0aWFsX2VudHJvcHlfcnVuID0gMDsKKyNlbmRpZgorICAgIGN0eC0+c291cmNlX2NvdW50ID0gMDsKKyAgICBtYmVkdGxzX3BsYXRmb3JtX3plcm9pemUoY3R4LT5zb3VyY2UsIHNpemVvZihjdHgtPnNvdXJjZSkpOworICAgIGN0eC0+YWNjdW11bGF0b3Jfc3RhcnRlZCA9IC0xOworfQorCitpbnQgbWJlZHRsc19lbnRyb3B5X2FkZF9zb3VyY2UobWJlZHRsc19lbnRyb3B5X2NvbnRleHQgKmN0eCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYmVkdGxzX2VudHJvcHlfZl9zb3VyY2VfcHRyIGZfc291cmNlLCB2b2lkICpwX3NvdXJjZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgdGhyZXNob2xkLCBpbnQgc3Ryb25nKQoreworICAgIGludCBpZHgsIHJldCA9IDA7CisKKyNpZiBkZWZpbmVkKE1CRURUTFNfVEhSRUFESU5HX0MpCisgICAgaWYgKChyZXQgPSBtYmVkdGxzX211dGV4X2xvY2soJmN0eC0+bXV0ZXgpKSAhPSAwKSB7CisgICAgICAgIHJldHVybiByZXQ7CisgICAgfQorI2VuZGlmCisKKyAgICBpZHggPSBjdHgtPnNvdXJjZV9jb3VudDsKKyAgICBpZiAoaWR4ID49IE1CRURUTFNfRU5UUk9QWV9NQVhfU09VUkNFUykgeworICAgICAgICByZXQgPSBNQkVEVExTX0VSUl9FTlRST1BZX01BWF9TT1VSQ0VTOworICAgICAgICBnb3RvIGV4aXQ7CisgICAgfQorCisgICAgY3R4LT5zb3VyY2VbaWR4XS5mX3NvdXJjZSAgPSBmX3NvdXJjZTsKKyAgICBjdHgtPnNvdXJjZVtpZHhdLnBfc291cmNlICA9IHBfc291cmNlOworICAgIGN0eC0+c291cmNlW2lkeF0udGhyZXNob2xkID0gdGhyZXNob2xkOworICAgIGN0eC0+c291cmNlW2lkeF0uc3Ryb25nICAgID0gc3Ryb25nOworCisgICAgY3R4LT5zb3VyY2VfY291bnQrKzsKKworZXhpdDoKKyNpZiBkZWZpbmVkKE1CRURUTFNfVEhSRUFESU5HX0MpCisgICAgaWYgKG1iZWR0bHNfbXV0ZXhfdW5sb2NrKCZjdHgtPm11dGV4KSAhPSAwKSB7CisgICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9USFJFQURJTkdfTVVURVhfRVJST1I7CisgICAgfQorI2VuZGlmCisKKyAgICByZXR1cm4gcmV0OworfQorCisvKgorICogRW50cm9weSBhY2N1bXVsYXRvciB1cGRhdGUKKyAqLworc3RhdGljIGludCBlbnRyb3B5X3VwZGF0ZShtYmVkdGxzX2VudHJvcHlfY29udGV4dCAqY3R4LCB1bnNpZ25lZCBjaGFyIHNvdXJjZV9pZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdW5zaWduZWQgY2hhciAqZGF0YSwgc2l6ZV90IGxlbikKK3sKKyAgICB1bnNpZ25lZCBjaGFyIGhlYWRlclsyXTsKKyAgICB1bnNpZ25lZCBjaGFyIHRtcFtNQkVEVExTX0VOVFJPUFlfQkxPQ0tfU0laRV07CisgICAgc2l6ZV90IHVzZV9sZW4gPSBsZW47CisgICAgY29uc3QgdW5zaWduZWQgY2hhciAqcCA9IGRhdGE7CisgICAgaW50IHJldCA9IDA7CisKKyAgICBpZiAodXNlX2xlbiA+IE1CRURUTFNfRU5UUk9QWV9CTE9DS19TSVpFKSB7CisgICAgICAgIGlmICgocmV0ID0gbWJlZHRsc19tZChtYmVkdGxzX21kX2luZm9fZnJvbV90eXBlKE1CRURUTFNfRU5UUk9QWV9NRCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhLCBsZW4sIHRtcCkpICE9IDApIHsKKyAgICAgICAgICAgIGdvdG8gY2xlYW51cDsKKyAgICAgICAgfQorICAgICAgICBwID0gdG1wOworICAgICAgICB1c2VfbGVuID0gTUJFRFRMU19FTlRST1BZX0JMT0NLX1NJWkU7CisgICAgfQorCisgICAgaGVhZGVyWzBdID0gc291cmNlX2lkOworICAgIGhlYWRlclsxXSA9IHVzZV9sZW4gJiAweEZGOworCisgICAgLyoKKyAgICAgKiBTdGFydCB0aGUgYWNjdW11bGF0b3IgaWYgdGhpcyBoYXMgbm90IGFscmVhZHkgaGFwcGVuZWQuIE5vdGUgdGhhdAorICAgICAqIGl0IGlzIHN1ZmZpY2llbnQgdG8gc3RhcnQgdGhlIGFjY3VtdWxhdG9yIGhlcmUgb25seSBiZWNhdXNlIGFsbCBjYWxscyB0bworICAgICAqIGdhdGhlciBlbnRyb3B5IGV2ZW50dWFsbHkgZXhlY3V0ZSB0aGlzIGNvZGUuCisgICAgICovCisgICAgaWYgKGN0eC0+YWNjdW11bGF0b3Jfc3RhcnRlZCA9PSAwKSB7CisgICAgICAgIHJldCA9IG1iZWR0bHNfbWRfc2V0dXAoJmN0eC0+YWNjdW11bGF0b3IsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWJlZHRsc19tZF9pbmZvX2Zyb21fdHlwZShNQkVEVExTX0VOVFJPUFlfTUQpLCAwKTsKKyAgICAgICAgaWYgKHJldCAhPSAwKSB7CisgICAgICAgICAgICBnb3RvIGNsZWFudXA7CisgICAgICAgIH0KKyAgICAgICAgcmV0ID0gbWJlZHRsc19tZF9zdGFydHMoJmN0eC0+YWNjdW11bGF0b3IpOworICAgICAgICBpZiAocmV0ICE9IDApIHsKKyAgICAgICAgICAgIGdvdG8gY2xlYW51cDsKKyAgICAgICAgfQorICAgICAgICBjdHgtPmFjY3VtdWxhdG9yX3N0YXJ0ZWQgPSAxOworICAgIH0KKyAgICBpZiAoKHJldCA9IG1iZWR0bHNfbWRfdXBkYXRlKCZjdHgtPmFjY3VtdWxhdG9yLCBoZWFkZXIsIDIpKSAhPSAwKSB7CisgICAgICAgIGdvdG8gY2xlYW51cDsKKyAgICB9CisgICAgcmV0ID0gbWJlZHRsc19tZF91cGRhdGUoJmN0eC0+YWNjdW11bGF0b3IsIHAsIHVzZV9sZW4pOworCitjbGVhbnVwOgorICAgIG1iZWR0bHNfcGxhdGZvcm1femVyb2l6ZSh0bXAsIHNpemVvZih0bXApKTsKKworICAgIHJldHVybiByZXQ7Cit9CisKK2ludCBtYmVkdGxzX2VudHJvcHlfdXBkYXRlX21hbnVhbChtYmVkdGxzX2VudHJvcHlfY29udGV4dCAqY3R4LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgKmRhdGEsIHNpemVfdCBsZW4pCit7CisgICAgaW50IHJldCA9IE1CRURUTFNfRVJSX0VSUk9SX0NPUlJVUFRJT05fREVURUNURUQ7CisKKyNpZiBkZWZpbmVkKE1CRURUTFNfVEhSRUFESU5HX0MpCisgICAgaWYgKChyZXQgPSBtYmVkdGxzX211dGV4X2xvY2soJmN0eC0+bXV0ZXgpKSAhPSAwKSB7CisgICAgICAgIHJldHVybiByZXQ7CisgICAgfQorI2VuZGlmCisKKyAgICByZXQgPSBlbnRyb3B5X3VwZGF0ZShjdHgsIE1CRURUTFNfRU5UUk9QWV9TT1VSQ0VfTUFOVUFMLCBkYXRhLCBsZW4pOworCisjaWYgZGVmaW5lZChNQkVEVExTX1RIUkVBRElOR19DKQorICAgIGlmIChtYmVkdGxzX211dGV4X3VubG9jaygmY3R4LT5tdXRleCkgIT0gMCkgeworICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfVEhSRUFESU5HX01VVEVYX0VSUk9SOworICAgIH0KKyNlbmRpZgorCisgICAgcmV0dXJuIHJldDsKK30KKworLyoKKyAqIFJ1biB0aHJvdWdoIHRoZSBkaWZmZXJlbnQgc291cmNlcyB0byBhZGQgZW50cm9weSB0byBvdXIgYWNjdW11bGF0b3IKKyAqLworc3RhdGljIGludCBlbnRyb3B5X2dhdGhlcl9pbnRlcm5hbChtYmVkdGxzX2VudHJvcHlfY29udGV4dCAqY3R4KQoreworICAgIGludCByZXQgPSBNQkVEVExTX0VSUl9FTlRST1BZX1NPVVJDRV9GQUlMRUQ7CisgICAgaW50IGk7CisgICAgaW50IGhhdmVfb25lX3N0cm9uZyA9IDA7CisgICAgdW5zaWduZWQgY2hhciBidWZbTUJFRFRMU19FTlRST1BZX01BWF9HQVRIRVJdOworICAgIHNpemVfdCBvbGVuOworCisgICAgaWYgKGN0eC0+c291cmNlX2NvdW50ID09IDApIHsKKyAgICAgICAgcmV0dXJuIE1CRURUTFNfRVJSX0VOVFJPUFlfTk9fU09VUkNFU19ERUZJTkVEOworICAgIH0KKworICAgIC8qCisgICAgICogUnVuIHRocm91Z2ggb3VyIGVudHJvcHkgc291cmNlcworICAgICAqLworICAgIGZvciAoaSA9IDA7IGkgPCBjdHgtPnNvdXJjZV9jb3VudDsgaSsrKSB7CisgICAgICAgIGlmIChjdHgtPnNvdXJjZVtpXS5zdHJvbmcgPT0gTUJFRFRMU19FTlRST1BZX1NPVVJDRV9TVFJPTkcpIHsKKyAgICAgICAgICAgIGhhdmVfb25lX3N0cm9uZyA9IDE7CisgICAgICAgIH0KKworICAgICAgICBvbGVuID0gMDsKKyAgICAgICAgaWYgKChyZXQgPSBjdHgtPnNvdXJjZVtpXS5mX3NvdXJjZShjdHgtPnNvdXJjZVtpXS5wX3NvdXJjZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBidWYsIE1CRURUTFNfRU5UUk9QWV9NQVhfR0FUSEVSLCAmb2xlbikpICE9IDApIHsKKyAgICAgICAgICAgIGdvdG8gY2xlYW51cDsKKyAgICAgICAgfQorCisgICAgICAgIC8qCisgICAgICAgICAqIEFkZCBpZiB3ZSBhY3R1YWxseSBnYXRoZXJlZCBzb21ldGhpbmcKKyAgICAgICAgICovCisgICAgICAgIGlmIChvbGVuID4gMCkgeworICAgICAgICAgICAgaWYgKChyZXQgPSBlbnRyb3B5X3VwZGF0ZShjdHgsICh1bnNpZ25lZCBjaGFyKSBpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBidWYsIG9sZW4pKSAhPSAwKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIHJldDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGN0eC0+c291cmNlW2ldLnNpemUgKz0gb2xlbjsKKyAgICAgICAgfQorICAgIH0KKworICAgIGlmIChoYXZlX29uZV9zdHJvbmcgPT0gMCkgeworICAgICAgICByZXQgPSBNQkVEVExTX0VSUl9FTlRST1BZX05PX1NUUk9OR19TT1VSQ0U7CisgICAgfQorCitjbGVhbnVwOgorICAgIG1iZWR0bHNfcGxhdGZvcm1femVyb2l6ZShidWYsIHNpemVvZihidWYpKTsKKworICAgIHJldHVybiByZXQ7Cit9CisKKy8qCisgKiBUaHJlYWQtc2FmZSB3cmFwcGVyIGZvciBlbnRyb3B5X2dhdGhlcl9pbnRlcm5hbCgpCisgKi8KK2ludCBtYmVkdGxzX2VudHJvcHlfZ2F0aGVyKG1iZWR0bHNfZW50cm9weV9jb250ZXh0ICpjdHgpCit7CisgICAgaW50IHJldCA9IE1CRURUTFNfRVJSX0VSUk9SX0NPUlJVUFRJT05fREVURUNURUQ7CisKKyNpZiBkZWZpbmVkKE1CRURUTFNfVEhSRUFESU5HX0MpCisgICAgaWYgKChyZXQgPSBtYmVkdGxzX211dGV4X2xvY2soJmN0eC0+bXV0ZXgpKSAhPSAwKSB7CisgICAgICAgIHJldHVybiByZXQ7CisgICAgfQorI2VuZGlmCisKKyAgICByZXQgPSBlbnRyb3B5X2dhdGhlcl9pbnRlcm5hbChjdHgpOworCisjaWYgZGVmaW5lZChNQkVEVExTX1RIUkVBRElOR19DKQorICAgIGlmIChtYmVkdGxzX211dGV4X3VubG9jaygmY3R4LT5tdXRleCkgIT0gMCkgeworICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfVEhSRUFESU5HX01VVEVYX0VSUk9SOworICAgIH0KKyNlbmRpZgorCisgICAgcmV0dXJuIHJldDsKK30KKworaW50IG1iZWR0bHNfZW50cm9weV9mdW5jKHZvaWQgKmRhdGEsIHVuc2lnbmVkIGNoYXIgKm91dHB1dCwgc2l6ZV90IGxlbikKK3sKKyAgICBpbnQgcmV0LCBjb3VudCA9IDAsIGksIHRocmVzaG9sZHNfcmVhY2hlZDsKKyAgICBzaXplX3Qgc3Ryb25nX3NpemU7CisgICAgbWJlZHRsc19lbnRyb3B5X2NvbnRleHQgKmN0eCA9IChtYmVkdGxzX2VudHJvcHlfY29udGV4dCAqKSBkYXRhOworICAgIHVuc2lnbmVkIGNoYXIgYnVmW01CRURUTFNfRU5UUk9QWV9CTE9DS19TSVpFXTsKKworICAgIGlmIChsZW4gPiBNQkVEVExTX0VOVFJPUFlfQkxPQ0tfU0laRSkgeworICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfRU5UUk9QWV9TT1VSQ0VfRkFJTEVEOworICAgIH0KKworI2lmIGRlZmluZWQoTUJFRFRMU19FTlRST1BZX05WX1NFRUQpCisgICAgLyogVXBkYXRlIHRoZSBOViBlbnRyb3B5IHNlZWQgYmVmb3JlIGdlbmVyYXRpbmcgYW55IGVudHJvcHkgZm9yIG91dHNpZGUKKyAgICAgKiB1c2UuCisgICAgICovCisgICAgaWYgKGN0eC0+aW5pdGlhbF9lbnRyb3B5X3J1biA9PSAwKSB7CisgICAgICAgIGN0eC0+aW5pdGlhbF9lbnRyb3B5X3J1biA9IDE7CisgICAgICAgIGlmICgocmV0ID0gbWJlZHRsc19lbnRyb3B5X3VwZGF0ZV9udl9zZWVkKGN0eCkpICE9IDApIHsKKyAgICAgICAgICAgIHJldHVybiByZXQ7CisgICAgICAgIH0KKyAgICB9CisjZW5kaWYKKworI2lmIGRlZmluZWQoTUJFRFRMU19USFJFQURJTkdfQykKKyAgICBpZiAoKHJldCA9IG1iZWR0bHNfbXV0ZXhfbG9jaygmY3R4LT5tdXRleCkpICE9IDApIHsKKyAgICAgICAgcmV0dXJuIHJldDsKKyAgICB9CisjZW5kaWYKKworICAgIC8qCisgICAgICogQWx3YXlzIGdhdGhlciBleHRyYSBlbnRyb3B5IGJlZm9yZSBhIGNhbGwKKyAgICAgKi8KKyAgICBkbyB7CisgICAgICAgIGlmIChjb3VudCsrID4gRU5UUk9QWV9NQVhfTE9PUCkgeworICAgICAgICAgICAgcmV0ID0gTUJFRFRMU19FUlJfRU5UUk9QWV9TT1VSQ0VfRkFJTEVEOworICAgICAgICAgICAgZ290byBleGl0OworICAgICAgICB9CisKKyAgICAgICAgaWYgKChyZXQgPSBlbnRyb3B5X2dhdGhlcl9pbnRlcm5hbChjdHgpKSAhPSAwKSB7CisgICAgICAgICAgICBnb3RvIGV4aXQ7CisgICAgICAgIH0KKworICAgICAgICB0aHJlc2hvbGRzX3JlYWNoZWQgPSAxOworICAgICAgICBzdHJvbmdfc2l6ZSA9IDA7CisgICAgICAgIGZvciAoaSA9IDA7IGkgPCBjdHgtPnNvdXJjZV9jb3VudDsgaSsrKSB7CisgICAgICAgICAgICBpZiAoY3R4LT5zb3VyY2VbaV0uc2l6ZSA8IGN0eC0+c291cmNlW2ldLnRocmVzaG9sZCkgeworICAgICAgICAgICAgICAgIHRocmVzaG9sZHNfcmVhY2hlZCA9IDA7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoY3R4LT5zb3VyY2VbaV0uc3Ryb25nID09IE1CRURUTFNfRU5UUk9QWV9TT1VSQ0VfU1RST05HKSB7CisgICAgICAgICAgICAgICAgc3Ryb25nX3NpemUgKz0gY3R4LT5zb3VyY2VbaV0uc2l6ZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0gd2hpbGUgKCF0aHJlc2hvbGRzX3JlYWNoZWQgfHwgc3Ryb25nX3NpemUgPCBNQkVEVExTX0VOVFJPUFlfQkxPQ0tfU0laRSk7CisKKyAgICBtZW1zZXQoYnVmLCAwLCBNQkVEVExTX0VOVFJPUFlfQkxPQ0tfU0laRSk7CisKKyAgICAvKgorICAgICAqIE5vdGUgdGhhdCBhdCB0aGlzIHN0YWdlIGl0IGlzIGFzc3VtZWQgdGhhdCB0aGUgYWNjdW11bGF0b3Igd2FzIHN0YXJ0ZWQKKyAgICAgKiBpbiBhIHByZXZpb3VzIGNhbGwgdG8gZW50cm9weV91cGRhdGUoKS4gSWYgdGhpcyBpcyBub3QgZ3VhcmFudGVlZCwgdGhlCisgICAgICogY29kZSBiZWxvdyB3aWxsIGZhaWwuCisgICAgICovCisgICAgaWYgKChyZXQgPSBtYmVkdGxzX21kX2ZpbmlzaCgmY3R4LT5hY2N1bXVsYXRvciwgYnVmKSkgIT0gMCkgeworICAgICAgICBnb3RvIGV4aXQ7CisgICAgfQorCisgICAgLyoKKyAgICAgKiBSZXNldCBhY2N1bXVsYXRvciBhbmQgY291bnRlcnMgYW5kIHJlY3ljbGUgZXhpc3RpbmcgZW50cm9weQorICAgICAqLworICAgIG1iZWR0bHNfbWRfZnJlZSgmY3R4LT5hY2N1bXVsYXRvcik7CisgICAgbWJlZHRsc19tZF9pbml0KCZjdHgtPmFjY3VtdWxhdG9yKTsKKyAgICByZXQgPSBtYmVkdGxzX21kX3NldHVwKCZjdHgtPmFjY3VtdWxhdG9yLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgbWJlZHRsc19tZF9pbmZvX2Zyb21fdHlwZShNQkVEVExTX0VOVFJPUFlfTUQpLCAwKTsKKyAgICBpZiAocmV0ICE9IDApIHsKKyAgICAgICAgZ290byBleGl0OworICAgIH0KKyAgICByZXQgPSBtYmVkdGxzX21kX3N0YXJ0cygmY3R4LT5hY2N1bXVsYXRvcik7CisgICAgaWYgKHJldCAhPSAwKSB7CisgICAgICAgIGdvdG8gZXhpdDsKKyAgICB9CisgICAgaWYgKChyZXQgPSBtYmVkdGxzX21kX3VwZGF0ZSgmY3R4LT5hY2N1bXVsYXRvciwgYnVmLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTUJFRFRMU19FTlRST1BZX0JMT0NLX1NJWkUpKSAhPSAwKSB7CisgICAgICAgIGdvdG8gZXhpdDsKKyAgICB9CisKKyAgICAvKgorICAgICAqIFBlcmZvcm0gc2Vjb25kIGhhc2hpbmcgb24gZW50cm9weQorICAgICAqLworICAgIGlmICgocmV0ID0gbWJlZHRsc19tZChtYmVkdGxzX21kX2luZm9fZnJvbV90eXBlKE1CRURUTFNfRU5UUk9QWV9NRCksCisgICAgICAgICAgICAgICAgICAgICAgICAgIGJ1ZiwgTUJFRFRMU19FTlRST1BZX0JMT0NLX1NJWkUsIGJ1ZikpICE9IDApIHsKKyAgICAgICAgZ290byBleGl0OworICAgIH0KKworICAgIGZvciAoaSA9IDA7IGkgPCBjdHgtPnNvdXJjZV9jb3VudDsgaSsrKSB7CisgICAgICAgIGN0eC0+c291cmNlW2ldLnNpemUgPSAwOworICAgIH0KKworICAgIG1lbWNweShvdXRwdXQsIGJ1ZiwgbGVuKTsKKworICAgIHJldCA9IDA7CisKK2V4aXQ6CisgICAgbWJlZHRsc19wbGF0Zm9ybV96ZXJvaXplKGJ1Ziwgc2l6ZW9mKGJ1ZikpOworCisjaWYgZGVmaW5lZChNQkVEVExTX1RIUkVBRElOR19DKQorICAgIGlmIChtYmVkdGxzX211dGV4X3VubG9jaygmY3R4LT5tdXRleCkgIT0gMCkgeworICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfVEhSRUFESU5HX01VVEVYX0VSUk9SOworICAgIH0KKyNlbmRpZgorCisgICAgcmV0dXJuIHJldDsKK30KKworI2lmIGRlZmluZWQoTUJFRFRMU19FTlRST1BZX05WX1NFRUQpCitpbnQgbWJlZHRsc19lbnRyb3B5X3VwZGF0ZV9udl9zZWVkKG1iZWR0bHNfZW50cm9weV9jb250ZXh0ICpjdHgpCit7CisgICAgaW50IHJldCA9IE1CRURUTFNfRVJSX0VOVFJPUFlfRklMRV9JT19FUlJPUjsKKyAgICB1bnNpZ25lZCBjaGFyIGJ1ZltNQkVEVExTX0VOVFJPUFlfQkxPQ0tfU0laRV07CisKKyAgICAvKiBSZWFkIG5ldyBzZWVkICBhbmQgd3JpdGUgaXQgdG8gTlYgKi8KKyAgICBpZiAoKHJldCA9IG1iZWR0bHNfZW50cm9weV9mdW5jKGN0eCwgYnVmLCBNQkVEVExTX0VOVFJPUFlfQkxPQ0tfU0laRSkpICE9IDApIHsKKyAgICAgICAgcmV0dXJuIHJldDsKKyAgICB9CisKKyAgICBpZiAobWJlZHRsc19udl9zZWVkX3dyaXRlKGJ1ZiwgTUJFRFRMU19FTlRST1BZX0JMT0NLX1NJWkUpIDwgMCkgeworICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfRU5UUk9QWV9GSUxFX0lPX0VSUk9SOworICAgIH0KKworICAgIC8qIE1hbnVhbGx5IHVwZGF0ZSB0aGUgcmVtYWluaW5nIHN0cmVhbSB3aXRoIGEgc2VwYXJhdG9yIHZhbHVlIHRvIGRpdmVyZ2UgKi8KKyAgICBtZW1zZXQoYnVmLCAwLCBNQkVEVExTX0VOVFJPUFlfQkxPQ0tfU0laRSk7CisgICAgcmV0ID0gbWJlZHRsc19lbnRyb3B5X3VwZGF0ZV9tYW51YWwoY3R4LCBidWYsIE1CRURUTFNfRU5UUk9QWV9CTE9DS19TSVpFKTsKKworICAgIHJldHVybiByZXQ7Cit9CisjZW5kaWYgLyogTUJFRFRMU19FTlRST1BZX05WX1NFRUQgKi8KKworI2lmIGRlZmluZWQoTUJFRFRMU19GU19JTykKK2ludCBtYmVkdGxzX2VudHJvcHlfd3JpdGVfc2VlZF9maWxlKG1iZWR0bHNfZW50cm9weV9jb250ZXh0ICpjdHgsIGNvbnN0IGNoYXIgKnBhdGgpCit7CisgICAgaW50IHJldCA9IE1CRURUTFNfRVJSX0VSUk9SX0NPUlJVUFRJT05fREVURUNURUQ7CisgICAgRklMRSAqZiA9IE5VTEw7CisgICAgdW5zaWduZWQgY2hhciBidWZbTUJFRFRMU19FTlRST1BZX0JMT0NLX1NJWkVdOworCisgICAgaWYgKChyZXQgPSBtYmVkdGxzX2VudHJvcHlfZnVuYyhjdHgsIGJ1ZiwgTUJFRFRMU19FTlRST1BZX0JMT0NLX1NJWkUpKSAhPSAwKSB7CisgICAgICAgIHJldCA9IE1CRURUTFNfRVJSX0VOVFJPUFlfU09VUkNFX0ZBSUxFRDsKKyAgICAgICAgZ290byBleGl0OworICAgIH0KKworICAgIGlmICgoZiA9IGZvcGVuKHBhdGgsICJ3YiIpKSA9PSBOVUxMKSB7CisgICAgICAgIHJldCA9IE1CRURUTFNfRVJSX0VOVFJPUFlfRklMRV9JT19FUlJPUjsKKyAgICAgICAgZ290byBleGl0OworICAgIH0KKworICAgIC8qIEVuc3VyZSBubyBzdGRpbyBidWZmZXJpbmcgb2Ygc2VjcmV0cywgYXMgc3VjaCBidWZmZXJzIGNhbm5vdCBiZSB3aXBlZC4gKi8KKyAgICBtYmVkdGxzX3NldGJ1ZihmLCBOVUxMKTsKKworICAgIGlmIChmd3JpdGUoYnVmLCAxLCBNQkVEVExTX0VOVFJPUFlfQkxPQ0tfU0laRSwgZikgIT0gTUJFRFRMU19FTlRST1BZX0JMT0NLX1NJWkUpIHsKKyAgICAgICAgcmV0ID0gTUJFRFRMU19FUlJfRU5UUk9QWV9GSUxFX0lPX0VSUk9SOworICAgICAgICBnb3RvIGV4aXQ7CisgICAgfQorCisgICAgcmV0ID0gMDsKKworZXhpdDoKKyAgICBtYmVkdGxzX3BsYXRmb3JtX3plcm9pemUoYnVmLCBzaXplb2YoYnVmKSk7CisKKyAgICBpZiAoZiAhPSBOVUxMKSB7CisgICAgICAgIGZjbG9zZShmKTsKKyAgICB9CisKKyAgICByZXR1cm4gcmV0OworfQorCitpbnQgbWJlZHRsc19lbnRyb3B5X3VwZGF0ZV9zZWVkX2ZpbGUobWJlZHRsc19lbnRyb3B5X2NvbnRleHQgKmN0eCwgY29uc3QgY2hhciAqcGF0aCkKK3sKKyAgICBpbnQgcmV0ID0gMDsKKyAgICBGSUxFICpmOworICAgIHNpemVfdCBuOworICAgIHVuc2lnbmVkIGNoYXIgYnVmW01CRURUTFNfRU5UUk9QWV9NQVhfU0VFRF9TSVpFXTsKKworICAgIGlmICgoZiA9IGZvcGVuKHBhdGgsICJyYiIpKSA9PSBOVUxMKSB7CisgICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9FTlRST1BZX0ZJTEVfSU9fRVJST1I7CisgICAgfQorCisgICAgLyogRW5zdXJlIG5vIHN0ZGlvIGJ1ZmZlcmluZyBvZiBzZWNyZXRzLCBhcyBzdWNoIGJ1ZmZlcnMgY2Fubm90IGJlIHdpcGVkLiAqLworICAgIG1iZWR0bHNfc2V0YnVmKGYsIE5VTEwpOworCisgICAgZnNlZWsoZiwgMCwgU0VFS19FTkQpOworICAgIG4gPSAoc2l6ZV90KSBmdGVsbChmKTsKKyAgICBmc2VlayhmLCAwLCBTRUVLX1NFVCk7CisKKyAgICBpZiAobiA+IE1CRURUTFNfRU5UUk9QWV9NQVhfU0VFRF9TSVpFKSB7CisgICAgICAgIG4gPSBNQkVEVExTX0VOVFJPUFlfTUFYX1NFRURfU0laRTsKKyAgICB9CisKKyAgICBpZiAoZnJlYWQoYnVmLCAxLCBuLCBmKSAhPSBuKSB7CisgICAgICAgIHJldCA9IE1CRURUTFNfRVJSX0VOVFJPUFlfRklMRV9JT19FUlJPUjsKKyAgICB9IGVsc2UgeworICAgICAgICByZXQgPSBtYmVkdGxzX2VudHJvcHlfdXBkYXRlX21hbnVhbChjdHgsIGJ1Ziwgbik7CisgICAgfQorCisgICAgZmNsb3NlKGYpOworCisgICAgbWJlZHRsc19wbGF0Zm9ybV96ZXJvaXplKGJ1Ziwgc2l6ZW9mKGJ1ZikpOworCisgICAgaWYgKHJldCAhPSAwKSB7CisgICAgICAgIHJldHVybiByZXQ7CisgICAgfQorCisgICAgcmV0dXJuIG1iZWR0bHNfZW50cm9weV93cml0ZV9zZWVkX2ZpbGUoY3R4LCBwYXRoKTsKK30KKyNlbmRpZiAvKiBNQkVEVExTX0ZTX0lPICovCisKKyNpZiBkZWZpbmVkKE1CRURUTFNfU0VMRl9URVNUKQorLyoKKyAqIER1bW15IHNvdXJjZSBmdW5jdGlvbgorICovCitzdGF0aWMgaW50IGVudHJvcHlfZHVtbXlfc291cmNlKHZvaWQgKmRhdGEsIHVuc2lnbmVkIGNoYXIgKm91dHB1dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IGxlbiwgc2l6ZV90ICpvbGVuKQoreworICAgICgodm9pZCkgZGF0YSk7CisKKyAgICBtZW1zZXQob3V0cHV0LCAweDJhLCBsZW4pOworICAgICpvbGVuID0gbGVuOworCisgICAgcmV0dXJuIDA7Cit9CisKKyNpZiBkZWZpbmVkKE1CRURUTFNfRU5UUk9QWV9IQVJEV0FSRV9BTFQpCisKK3N0YXRpYyBpbnQgbWJlZHRsc19lbnRyb3B5X3NvdXJjZV9zZWxmX3Rlc3RfZ2F0aGVyKHVuc2lnbmVkIGNoYXIgKmJ1Ziwgc2l6ZV90IGJ1Zl9sZW4pCit7CisgICAgaW50IHJldCA9IDA7CisgICAgc2l6ZV90IGVudHJvcHlfbGVuID0gMDsKKyAgICBzaXplX3Qgb2xlbiA9IDA7CisgICAgc2l6ZV90IGF0dGVtcHRzID0gYnVmX2xlbjsKKworICAgIHdoaWxlIChhdHRlbXB0cyA+IDAgJiYgZW50cm9weV9sZW4gPCBidWZfbGVuKSB7CisgICAgICAgIGlmICgocmV0ID0gbWJlZHRsc19oYXJkd2FyZV9wb2xsKE5VTEwsIGJ1ZiArIGVudHJvcHlfbGVuLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBidWZfbGVuIC0gZW50cm9weV9sZW4sICZvbGVuKSkgIT0gMCkgeworICAgICAgICAgICAgcmV0dXJuIHJldDsKKyAgICAgICAgfQorCisgICAgICAgIGVudHJvcHlfbGVuICs9IG9sZW47CisgICAgICAgIGF0dGVtcHRzLS07CisgICAgfQorCisgICAgaWYgKGVudHJvcHlfbGVuIDwgYnVmX2xlbikgeworICAgICAgICByZXQgPSAxOworICAgIH0KKworICAgIHJldHVybiByZXQ7Cit9CisKKworc3RhdGljIGludCBtYmVkdGxzX2VudHJvcHlfc291cmNlX3NlbGZfdGVzdF9jaGVja19iaXRzKGNvbnN0IHVuc2lnbmVkIGNoYXIgKmJ1ZiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgYnVmX2xlbikKK3sKKyAgICB1bnNpZ25lZCBjaGFyIHNldCA9IDB4RkY7CisgICAgdW5zaWduZWQgY2hhciB1bnNldCA9IDB4MDA7CisgICAgc2l6ZV90IGk7CisKKyAgICBmb3IgKGkgPSAwOyBpIDwgYnVmX2xlbjsgaSsrKSB7CisgICAgICAgIHNldCAmPSBidWZbaV07CisgICAgICAgIHVuc2V0IHw9IGJ1ZltpXTsKKyAgICB9CisKKyAgICByZXR1cm4gc2V0ID09IDB4RkYgfHwgdW5zZXQgPT0gMHgwMDsKK30KKworLyoKKyAqIEEgdGVzdCB0byBlbnN1cmUgdGhhdCB0aGUgZW50cm9weSBzb3VyY2VzIGFyZSBmdW5jdGlvbmluZyBjb3JyZWN0bHkKKyAqIGFuZCB0aGVyZSBpcyBubyBvYnZpb3VzIGZhaWx1cmUuIFRoZSB0ZXN0IHBlcmZvcm1zIHRoZSBmb2xsb3dpbmcgY2hlY2tzOgorICogIC0gVGhlIGVudHJvcHkgc291cmNlIGlzIG5vdCBwcm92aWRpbmcgb25seSAwcyAoYWxsIGJpdHMgdW5zZXQpIG9yIDFzIChhbGwKKyAqICAgIGJpdHMgc2V0KS4KKyAqICAtIFRoZSBlbnRyb3B5IHNvdXJjZSBpcyBub3QgcHJvdmlkaW5nIHZhbHVlcyBpbiBhIHBhdHRlcm4uIEJlY2F1c2UgdGhlCisgKiAgICBoYXJkd2FyZSBjb3VsZCBiZSBwcm92aWRpbmcgZGF0YSBpbiBhbiBhcmJpdHJhcnkgbGVuZ3RoLCB0aGlzIGNoZWNrIHBvbGxzCisgKiAgICB0aGUgaGFyZHdhcmUgZW50cm9weSBzb3VyY2UgdHdpY2UgYW5kIGNvbXBhcmVzIHRoZSByZXN1bHQgdG8gZW5zdXJlIHRoZXkKKyAqICAgIGFyZSBub3QgZXF1YWwuCisgKiAgLSBUaGUgZXJyb3IgY29kZSByZXR1cm5lZCBieSB0aGUgZW50cm9weSBzb3VyY2UgaXMgbm90IGFuIGVycm9yLgorICovCitpbnQgbWJlZHRsc19lbnRyb3B5X3NvdXJjZV9zZWxmX3Rlc3QoaW50IHZlcmJvc2UpCit7CisgICAgaW50IHJldCA9IDA7CisgICAgdW5zaWduZWQgY2hhciBidWYwWzIgKiBzaXplb2YodW5zaWduZWQgbG9uZyBsb25nIGludCldOworICAgIHVuc2lnbmVkIGNoYXIgYnVmMVsyICogc2l6ZW9mKHVuc2lnbmVkIGxvbmcgbG9uZyBpbnQpXTsKKworICAgIGlmICh2ZXJib3NlICE9IDApIHsKKyAgICAgICAgbWJlZHRsc19wcmludGYoIiAgRU5UUk9QWV9CSUFTIHRlc3Q6ICIpOworICAgIH0KKworICAgIG1lbXNldChidWYwLCAweDAwLCBzaXplb2YoYnVmMCkpOworICAgIG1lbXNldChidWYxLCAweDAwLCBzaXplb2YoYnVmMSkpOworCisgICAgaWYgKChyZXQgPSBtYmVkdGxzX2VudHJvcHlfc291cmNlX3NlbGZfdGVzdF9nYXRoZXIoYnVmMCwgc2l6ZW9mKGJ1ZjApKSkgIT0gMCkgeworICAgICAgICBnb3RvIGNsZWFudXA7CisgICAgfQorICAgIGlmICgocmV0ID0gbWJlZHRsc19lbnRyb3B5X3NvdXJjZV9zZWxmX3Rlc3RfZ2F0aGVyKGJ1ZjEsIHNpemVvZihidWYxKSkpICE9IDApIHsKKyAgICAgICAgZ290byBjbGVhbnVwOworICAgIH0KKworICAgIC8qIE1ha2Ugc3VyZSB0aGF0IHRoZSByZXR1cm5lZCB2YWx1ZXMgYXJlIG5vdCBhbGwgMCBvciAxICovCisgICAgaWYgKChyZXQgPSBtYmVkdGxzX2VudHJvcHlfc291cmNlX3NlbGZfdGVzdF9jaGVja19iaXRzKGJ1ZjAsIHNpemVvZihidWYwKSkpICE9IDApIHsKKyAgICAgICAgZ290byBjbGVhbnVwOworICAgIH0KKyAgICBpZiAoKHJldCA9IG1iZWR0bHNfZW50cm9weV9zb3VyY2Vfc2VsZl90ZXN0X2NoZWNrX2JpdHMoYnVmMSwgc2l6ZW9mKGJ1ZjEpKSkgIT0gMCkgeworICAgICAgICBnb3RvIGNsZWFudXA7CisgICAgfQorCisgICAgLyogTWFrZSBzdXJlIHRoYXQgdGhlIGVudHJvcHkgc291cmNlIGlzIG5vdCByZXR1cm5pbmcgdmFsdWVzIGluIGEKKyAgICAgKiBwYXR0ZXJuICovCisgICAgcmV0ID0gbWVtY21wKGJ1ZjAsIGJ1ZjEsIHNpemVvZihidWYwKSkgPT0gMDsKKworY2xlYW51cDoKKyAgICBpZiAodmVyYm9zZSAhPSAwKSB7CisgICAgICAgIGlmIChyZXQgIT0gMCkgeworICAgICAgICAgICAgbWJlZHRsc19wcmludGYoImZhaWxlZFxuIik7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBtYmVkdGxzX3ByaW50ZigicGFzc2VkXG4iKTsKKyAgICAgICAgfQorCisgICAgICAgIG1iZWR0bHNfcHJpbnRmKCJcbiIpOworICAgIH0KKworICAgIHJldHVybiByZXQgIT0gMDsKK30KKworI2VuZGlmIC8qIE1CRURUTFNfRU5UUk9QWV9IQVJEV0FSRV9BTFQgKi8KKworLyoKKyAqIFRoZSBhY3R1YWwgZW50cm9weSBxdWFsaXR5IGlzIGhhcmQgdG8gdGVzdCwgYnV0IHdlIGNhbiBhdCBsZWFzdAorICogdGVzdCB0aGF0IHRoZSBmdW5jdGlvbnMgZG9uJ3QgY2F1c2UgZXJyb3JzIGFuZCB3cml0ZSB0aGUgY29ycmVjdAorICogYW1vdW50IG9mIGRhdGEgdG8gYnVmZmVycy4KKyAqLworaW50IG1iZWR0bHNfZW50cm9weV9zZWxmX3Rlc3QoaW50IHZlcmJvc2UpCit7CisgICAgaW50IHJldCA9IDE7CisgICAgbWJlZHRsc19lbnRyb3B5X2NvbnRleHQgY3R4OworICAgIHVuc2lnbmVkIGNoYXIgYnVmW01CRURUTFNfRU5UUk9QWV9CTE9DS19TSVpFXSA9IHsgMCB9OworICAgIHVuc2lnbmVkIGNoYXIgYWNjW01CRURUTFNfRU5UUk9QWV9CTE9DS19TSVpFXSA9IHsgMCB9OworICAgIHNpemVfdCBpLCBqOworCisgICAgaWYgKHZlcmJvc2UgIT0gMCkgeworICAgICAgICBtYmVkdGxzX3ByaW50ZigiICBFTlRST1BZIHRlc3Q6ICIpOworICAgIH0KKworICAgIG1iZWR0bHNfZW50cm9weV9pbml0KCZjdHgpOworCisgICAgLyogRmlyc3QgZG8gYSBnYXRoZXIgdG8gbWFrZSBzdXJlIHdlIGhhdmUgZGVmYXVsdCBzb3VyY2VzICovCisgICAgaWYgKChyZXQgPSBtYmVkdGxzX2VudHJvcHlfZ2F0aGVyKCZjdHgpKSAhPSAwKSB7CisgICAgICAgIGdvdG8gY2xlYW51cDsKKyAgICB9CisKKyAgICByZXQgPSBtYmVkdGxzX2VudHJvcHlfYWRkX3NvdXJjZSgmY3R4LCBlbnRyb3B5X2R1bW15X3NvdXJjZSwgTlVMTCwgMTYsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTUJFRFRMU19FTlRST1BZX1NPVVJDRV9XRUFLKTsKKyAgICBpZiAocmV0ICE9IDApIHsKKyAgICAgICAgZ290byBjbGVhbnVwOworICAgIH0KKworICAgIGlmICgocmV0ID0gbWJlZHRsc19lbnRyb3B5X3VwZGF0ZV9tYW51YWwoJmN0eCwgYnVmLCBzaXplb2YoYnVmKSkpICE9IDApIHsKKyAgICAgICAgZ290byBjbGVhbnVwOworICAgIH0KKworICAgIC8qCisgICAgICogVG8gdGVzdCB0aGF0IG1iZWR0bHNfZW50cm9weV9mdW5jIHdyaXRlcyBjb3JyZWN0IG51bWJlciBvZiBieXRlczoKKyAgICAgKiAtIHVzZSB0aGUgd2hvbGUgYnVmZmVyIGFuZCByZWx5IG9uIEFTYW4gdG8gZGV0ZWN0IG92ZXJydW5zCisgICAgICogLSBjb2xsZWN0IGVudHJvcHkgOCB0aW1lcyBhbmQgT1IgdGhlIHJlc3VsdCBpbiBhbiBhY2N1bXVsYXRvcjoKKyAgICAgKiAgIGFueSBieXRlIHNob3VsZCB0aGVuIGJlIDAgd2l0aCBwcm9iYWJseSAyXigtNjQpLCBzbyByZXF1aXJpbmcKKyAgICAgKiAgIGVhY2ggb2YgdGhlIDMyIG9yIDY0IGJ5dGVzIHRvIGJlIG5vbi16ZXJvIGhhcyBhIGZhbHNlIGZhaWx1cmUgcmF0ZQorICAgICAqICAgb2YgYXQgbW9zdCAyXigtNTgpIHdoaWNoIGlzIGFjY2VwdGFibGUuCisgICAgICovCisgICAgZm9yIChpID0gMDsgaSA8IDg7IGkrKykgeworICAgICAgICBpZiAoKHJldCA9IG1iZWR0bHNfZW50cm9weV9mdW5jKCZjdHgsIGJ1Ziwgc2l6ZW9mKGJ1ZikpKSAhPSAwKSB7CisgICAgICAgICAgICBnb3RvIGNsZWFudXA7CisgICAgICAgIH0KKworICAgICAgICBmb3IgKGogPSAwOyBqIDwgc2l6ZW9mKGJ1Zik7IGorKykgeworICAgICAgICAgICAgYWNjW2pdIHw9IGJ1ZltqXTsKKyAgICAgICAgfQorICAgIH0KKworICAgIGZvciAoaiA9IDA7IGogPCBzaXplb2YoYnVmKTsgaisrKSB7CisgICAgICAgIGlmIChhY2Nbal0gPT0gMCkgeworICAgICAgICAgICAgcmV0ID0gMTsKKyAgICAgICAgICAgIGdvdG8gY2xlYW51cDsKKyAgICAgICAgfQorICAgIH0KKworI2lmIGRlZmluZWQoTUJFRFRMU19FTlRST1BZX0hBUkRXQVJFX0FMVCkKKyAgICBpZiAoKHJldCA9IG1iZWR0bHNfZW50cm9weV9zb3VyY2Vfc2VsZl90ZXN0KDApKSAhPSAwKSB7CisgICAgICAgIGdvdG8gY2xlYW51cDsKKyAgICB9CisjZW5kaWYKKworY2xlYW51cDoKKyAgICBtYmVkdGxzX2VudHJvcHlfZnJlZSgmY3R4KTsKKworICAgIGlmICh2ZXJib3NlICE9IDApIHsKKyAgICAgICAgaWYgKHJldCAhPSAwKSB7CisgICAgICAgICAgICBtYmVkdGxzX3ByaW50ZigiZmFpbGVkXG4iKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIG1iZWR0bHNfcHJpbnRmKCJwYXNzZWRcbiIpOworICAgICAgICB9CisKKyAgICAgICAgbWJlZHRsc19wcmludGYoIlxuIik7CisgICAgfQorCisgICAgcmV0dXJuIHJldCAhPSAwOworfQorI2VuZGlmIC8qIE1CRURUTFNfU0VMRl9URVNUICovCisKKyNlbmRpZiAvKiBNQkVEVExTX0VOVFJPUFlfQyAqLwpkaWZmIC0tZ2l0IGEvbGlicmFyeS9lbnRyb3B5X3BvbGwuYyBiL3RmLXBzYS1jcnlwdG8vZHJpdmVycy9idWlsdGluL3NyYy9lbnRyb3B5X3BvbGwuYwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gbGlicmFyeS9lbnRyb3B5X3BvbGwuYwpyZW5hbWUgdG8gdGYtcHNhLWNyeXB0by9kcml2ZXJzL2J1aWx0aW4vc3JjL2VudHJvcHlfcG9sbC5jCmRpZmYgLS1naXQgYS9saWJyYXJ5L2VudHJvcHlfcG9sbC5oIGIvdGYtcHNhLWNyeXB0by9kcml2ZXJzL2J1aWx0aW4vc3JjL2VudHJvcHlfcG9sbC5oCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBsaWJyYXJ5L2VudHJvcHlfcG9sbC5oCnJlbmFtZSB0byB0Zi1wc2EtY3J5cHRvL2RyaXZlcnMvYnVpbHRpbi9zcmMvZW50cm9weV9wb2xsLmgKZGlmZiAtLWdpdCBhL3RmLXBzYS1jcnlwdG8vZHJpdmVycy9idWlsdGluL3NyYy9nY20uYyBiL3RmLXBzYS1jcnlwdG8vZHJpdmVycy9idWlsdGluL3NyYy9nY20uYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kZGExZmYyCi0tLSAvZGV2L251bGwKKysrIGIvdGYtcHNhLWNyeXB0by9kcml2ZXJzL2J1aWx0aW4vc3JjL2djbS5jCkBAIC0wLDAgKzEsMTMxNCBAQAorLyoKKyAqICBOSVNUIFNQODAwLTM4RCBjb21wbGlhbnQgR0NNIGltcGxlbWVudGF0aW9uCisgKgorICogIENvcHlyaWdodCBUaGUgTWJlZCBUTFMgQ29udHJpYnV0b3JzCisgKiAgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjAgT1IgR1BMLTIuMC1vci1sYXRlcgorICovCisKKy8qCisgKiBodHRwOi8vY3NyYy5uaXN0Lmdvdi9wdWJsaWNhdGlvbnMvbmlzdHB1YnMvODAwLTM4RC9TUC04MDAtMzhELnBkZgorICoKKyAqIFNlZSBhbHNvOgorICogW01HVl0gaHR0cDovL2NzcmMubmlzdC5nb3YvZ3JvdXBzL1NUL3Rvb2xraXQvQkNNL2RvY3VtZW50cy9wcm9wb3NlZG1vZGVzL2djbS9nY20tcmV2aXNlZC1zcGVjLnBkZgorICoKKyAqIFdlIHVzZSB0aGUgYWxnb3JpdGhtIGRlc2NyaWJlZCBhcyBTaG91cCdzIG1ldGhvZCB3aXRoIDQtYml0IHRhYmxlcyBpbgorICogW01HVl0gNC4xLCBwcC4gMTItMTMsIHRvIGVuaGFuY2Ugc3BlZWQgd2l0aG91dCB1c2luZyB0b28gbXVjaCBtZW1vcnkuCisgKi8KKworI2luY2x1ZGUgImNvbW1vbi5oIgorCisjaWYgZGVmaW5lZChNQkVEVExTX0dDTV9DKQorCisjaW5jbHVkZSAibWJlZHRscy9nY20uaCIKKyNpbmNsdWRlICJtYmVkdGxzL3BsYXRmb3JtLmgiCisjaW5jbHVkZSAibWJlZHRscy9wbGF0Zm9ybV91dGlsLmgiCisjaW5jbHVkZSAibWJlZHRscy9lcnJvci5oIgorI2luY2x1ZGUgIm1iZWR0bHMvY29uc3RhbnRfdGltZS5oIgorCisjaWYgZGVmaW5lZChNQkVEVExTX0JMT0NLX0NJUEhFUl9DKQorI2luY2x1ZGUgImJsb2NrX2NpcGhlcl9pbnRlcm5hbC5oIgorI2VuZGlmCisKKyNpbmNsdWRlIDxzdHJpbmcuaD4KKworI2lmIGRlZmluZWQoTUJFRFRMU19BRVNOSV9DKQorI2luY2x1ZGUgImFlc25pLmgiCisjZW5kaWYKKworI2lmIGRlZmluZWQoTUJFRFRMU19BRVNDRV9DKQorI2luY2x1ZGUgImFlc2NlLmgiCisjZW5kaWYKKworLyogVXNlZCB0byBzZWxlY3QgdGhlIGFjY2VsZXJhdGlvbiBtZWNoYW5pc20gKi8KKyNkZWZpbmUgTUJFRFRMU19HQ01fQUNDX1NNQUxMVEFCTEUgIDAKKyNkZWZpbmUgTUJFRFRMU19HQ01fQUNDX0xBUkdFVEFCTEUgIDEKKyNkZWZpbmUgTUJFRFRMU19HQ01fQUNDX0FFU05JICAgICAgIDIKKyNkZWZpbmUgTUJFRFRMU19HQ01fQUNDX0FFU0NFICAgICAgIDMKKworLyoKKyAqIEluaXRpYWxpemUgYSBjb250ZXh0CisgKi8KK3ZvaWQgbWJlZHRsc19nY21faW5pdChtYmVkdGxzX2djbV9jb250ZXh0ICpjdHgpCit7CisgICAgbWVtc2V0KGN0eCwgMCwgc2l6ZW9mKG1iZWR0bHNfZ2NtX2NvbnRleHQpKTsKK30KKworc3RhdGljIGlubGluZSB2b2lkIGdjbV9zZXRfYWNjZWxlcmF0aW9uKG1iZWR0bHNfZ2NtX2NvbnRleHQgKmN0eCkKK3sKKyNpZiBkZWZpbmVkKE1CRURUTFNfR0NNX0xBUkdFX1RBQkxFKQorICAgIGN0eC0+YWNjZWxlcmF0aW9uID0gTUJFRFRMU19HQ01fQUNDX0xBUkdFVEFCTEU7CisjZWxzZQorICAgIGN0eC0+YWNjZWxlcmF0aW9uID0gTUJFRFRMU19HQ01fQUNDX1NNQUxMVEFCTEU7CisjZW5kaWYKKworI2lmIGRlZmluZWQoTUJFRFRMU19BRVNOSV9IQVZFX0NPREUpCisgICAgLyogV2l0aCBDTE1VTCBzdXBwb3J0LCB3ZSBuZWVkIG9ubHkgaCwgbm90IHRoZSByZXN0IG9mIHRoZSB0YWJsZSAqLworICAgIGlmIChtYmVkdGxzX2Flc25pX2hhc19zdXBwb3J0KE1CRURUTFNfQUVTTklfQ0xNVUwpKSB7CisgICAgICAgIGN0eC0+YWNjZWxlcmF0aW9uID0gTUJFRFRMU19HQ01fQUNDX0FFU05JOworICAgIH0KKyNlbmRpZgorCisjaWYgZGVmaW5lZChNQkVEVExTX0FFU0NFX0hBVkVfQ09ERSkKKyAgICBpZiAoTUJFRFRMU19BRVNDRV9IQVNfU1VQUE9SVCgpKSB7CisgICAgICAgIGN0eC0+YWNjZWxlcmF0aW9uID0gTUJFRFRMU19HQ01fQUNDX0FFU0NFOworICAgIH0KKyNlbmRpZgorfQorCitzdGF0aWMgaW5saW5lIHZvaWQgZ2NtX2dlbl90YWJsZV9yaWdodHNoaWZ0KHVpbnQ2NF90IGRzdFsyXSwgY29uc3QgdWludDY0X3Qgc3JjWzJdKQoreworICAgIHVpbnQ4X3QgKnU4RHN0ID0gKHVpbnQ4X3QgKikgZHN0OworICAgIHVpbnQ4X3QgKnU4U3JjID0gKHVpbnQ4X3QgKikgc3JjOworCisgICAgTUJFRFRMU19QVVRfVUlOVDY0X0JFKE1CRURUTFNfR0VUX1VJTlQ2NF9CRSgmc3JjWzFdLCAwKSA+PiAxLCAmZHN0WzFdLCAwKTsKKyAgICB1OERzdFs4XSB8PSAodThTcmNbN10gJiAweDAxKSA8PCA3OworICAgIE1CRURUTFNfUFVUX1VJTlQ2NF9CRShNQkVEVExTX0dFVF9VSU5UNjRfQkUoJnNyY1swXSwgMCkgPj4gMSwgJmRzdFswXSwgMCk7CisgICAgdThEc3RbMF0gXj0gKHU4U3JjWzE1XSAmIDB4MDEpID8gMHhFMSA6IDA7Cit9CisKKy8qCisgKiBQcmVjb21wdXRlIHNtYWxsIG11bHRpcGxlcyBvZiBILCB0aGF0IGlzIHNldAorICogICAgICBISFtpXSB8fCBITFtpXSA9IEggdGltZXMgaSwKKyAqIHdoZXJlIGkgaXMgc2VlbiBhcyBhIGZpZWxkIGVsZW1lbnQgYXMgaW4gW01HVl0sIGllIGhpZ2gtb3JkZXIgYml0cworICogY29ycmVzcG9uZCB0byBsb3cgcG93ZXJzIG9mIFAuIFRoZSByZXN1bHQgaXMgc3RvcmVkIGluIHRoZSBzYW1lIHdheSwgdGhhdAorICogaXMgdGhlIGhpZ2gtb3JkZXIgYml0IG9mIEhIIGNvcnJlc3BvbmRzIHRvIFBeMCBhbmQgdGhlIGxvdy1vcmRlciBiaXQgb2YgSEwKKyAqIGNvcnJlc3BvbmRzIHRvIFBeMTI3LgorICovCitzdGF0aWMgaW50IGdjbV9nZW5fdGFibGUobWJlZHRsc19nY21fY29udGV4dCAqY3R4KQoreworICAgIGludCByZXQsIGksIGo7CisgICAgdWludDY0X3QgdTY0aFsyXSA9IHsgMCB9OworICAgIHVpbnQ4X3QgKmggPSAodWludDhfdCAqKSB1NjRoOworCisjaWYgZGVmaW5lZChNQkVEVExTX0JMT0NLX0NJUEhFUl9DKQorICAgIHJldCA9IG1iZWR0bHNfYmxvY2tfY2lwaGVyX2VuY3J5cHQoJmN0eC0+YmxvY2tfY2lwaGVyX2N0eCwgaCwgaCk7CisjZWxzZQorICAgIHNpemVfdCBvbGVuID0gMDsKKyAgICByZXQgPSBtYmVkdGxzX2NpcGhlcl91cGRhdGUoJmN0eC0+Y2lwaGVyX2N0eCwgaCwgMTYsIGgsICZvbGVuKTsKKyNlbmRpZgorICAgIGlmIChyZXQgIT0gMCkgeworICAgICAgICByZXR1cm4gcmV0OworICAgIH0KKworICAgIGdjbV9zZXRfYWNjZWxlcmF0aW9uKGN0eCk7CisKKyAgICAvKiBNQkVEVExTX0dDTV9IVEFCTEVfU0laRS8yID0gMTAwMCBjb3JyZXNwb25kcyB0byAxIGluIEdGKDJeMTI4KSAqLworICAgIGN0eC0+SFtNQkVEVExTX0dDTV9IVEFCTEVfU0laRS8yXVswXSA9IHU2NGhbMF07CisgICAgY3R4LT5IW01CRURUTFNfR0NNX0hUQUJMRV9TSVpFLzJdWzFdID0gdTY0aFsxXTsKKworICAgIHN3aXRjaCAoY3R4LT5hY2NlbGVyYXRpb24pIHsKKyNpZiBkZWZpbmVkKE1CRURUTFNfQUVTTklfSEFWRV9DT0RFKQorICAgICAgICBjYXNlIE1CRURUTFNfR0NNX0FDQ19BRVNOSToKKyAgICAgICAgICAgIHJldHVybiAwOworI2VuZGlmCisKKyNpZiBkZWZpbmVkKE1CRURUTFNfQUVTQ0VfSEFWRV9DT0RFKQorICAgICAgICBjYXNlIE1CRURUTFNfR0NNX0FDQ19BRVNDRToKKyAgICAgICAgICAgIHJldHVybiAwOworI2VuZGlmCisKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIC8qIDAgY29ycmVzcG9uZHMgdG8gMCBpbiBHRigyXjEyOCkgKi8KKyAgICAgICAgICAgIGN0eC0+SFswXVswXSA9IDA7CisgICAgICAgICAgICBjdHgtPkhbMF1bMV0gPSAwOworCisgICAgICAgICAgICBmb3IgKGkgPSBNQkVEVExTX0dDTV9IVEFCTEVfU0laRS80OyBpID4gMDsgaSA+Pj0gMSkgeworICAgICAgICAgICAgICAgIGdjbV9nZW5fdGFibGVfcmlnaHRzaGlmdChjdHgtPkhbaV0sIGN0eC0+SFtpKjJdKTsKKyAgICAgICAgICAgIH0KKworI2lmICFkZWZpbmVkKE1CRURUTFNfR0NNX0xBUkdFX1RBQkxFKQorICAgICAgICAgICAgLyogcGFjayBlbGVtZW50cyBvZiBIIGFzIDY0LWJpdHMgaW50cywgYmlnLWVuZGlhbiAqLworICAgICAgICAgICAgZm9yIChpID0gTUJFRFRMU19HQ01fSFRBQkxFX1NJWkUvMjsgaSA+IDA7IGkgPj49IDEpIHsKKyAgICAgICAgICAgICAgICBNQkVEVExTX1BVVF9VSU5UNjRfQkUoY3R4LT5IW2ldWzBdLCAmY3R4LT5IW2ldWzBdLCAwKTsKKyAgICAgICAgICAgICAgICBNQkVEVExTX1BVVF9VSU5UNjRfQkUoY3R4LT5IW2ldWzFdLCAmY3R4LT5IW2ldWzFdLCAwKTsKKyAgICAgICAgICAgIH0KKyNlbmRpZgorCisgICAgICAgICAgICBmb3IgKGkgPSAyOyBpIDwgTUJFRFRMU19HQ01fSFRBQkxFX1NJWkU7IGkgPDw9IDEpIHsKKyAgICAgICAgICAgICAgICBmb3IgKGogPSAxOyBqIDwgaTsgaisrKSB7CisgICAgICAgICAgICAgICAgICAgIG1iZWR0bHNfeG9yX25vX3NpbWQoKHVuc2lnbmVkIGNoYXIgKikgY3R4LT5IW2kral0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHVuc2lnbmVkIGNoYXIgKikgY3R4LT5IW2ldLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh1bnNpZ25lZCBjaGFyICopIGN0eC0+SFtqXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxNik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgIH0KKworICAgIHJldHVybiAwOworfQorCitpbnQgbWJlZHRsc19nY21fc2V0a2V5KG1iZWR0bHNfZ2NtX2NvbnRleHQgKmN0eCwKKyAgICAgICAgICAgICAgICAgICAgICAgbWJlZHRsc19jaXBoZXJfaWRfdCBjaXBoZXIsCisgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgKmtleSwKKyAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50IGtleWJpdHMpCit7CisgICAgaW50IHJldCA9IE1CRURUTFNfRVJSX0VSUk9SX0NPUlJVUFRJT05fREVURUNURUQ7CisKKyAgICBpZiAoa2V5Yml0cyAhPSAxMjggJiYga2V5Yml0cyAhPSAxOTIgJiYga2V5Yml0cyAhPSAyNTYpIHsKKyAgICAgICAgcmV0dXJuIE1CRURUTFNfRVJSX0dDTV9CQURfSU5QVVQ7CisgICAgfQorCisjaWYgZGVmaW5lZChNQkVEVExTX0JMT0NLX0NJUEhFUl9DKQorICAgIG1iZWR0bHNfYmxvY2tfY2lwaGVyX2ZyZWUoJmN0eC0+YmxvY2tfY2lwaGVyX2N0eCk7CisKKyAgICBpZiAoKHJldCA9IG1iZWR0bHNfYmxvY2tfY2lwaGVyX3NldHVwKCZjdHgtPmJsb2NrX2NpcGhlcl9jdHgsIGNpcGhlcikpICE9IDApIHsKKyAgICAgICAgcmV0dXJuIHJldDsKKyAgICB9CisKKyAgICBpZiAoKHJldCA9IG1iZWR0bHNfYmxvY2tfY2lwaGVyX3NldGtleSgmY3R4LT5ibG9ja19jaXBoZXJfY3R4LCBrZXksIGtleWJpdHMpKSAhPSAwKSB7CisgICAgICAgIHJldHVybiByZXQ7CisgICAgfQorI2Vsc2UKKyAgICBjb25zdCBtYmVkdGxzX2NpcGhlcl9pbmZvX3QgKmNpcGhlcl9pbmZvOworCisgICAgY2lwaGVyX2luZm8gPSBtYmVkdGxzX2NpcGhlcl9pbmZvX2Zyb21fdmFsdWVzKGNpcGhlciwga2V5Yml0cywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTUJFRFRMU19NT0RFX0VDQik7CisgICAgaWYgKGNpcGhlcl9pbmZvID09IE5VTEwpIHsKKyAgICAgICAgcmV0dXJuIE1CRURUTFNfRVJSX0dDTV9CQURfSU5QVVQ7CisgICAgfQorCisgICAgaWYgKG1iZWR0bHNfY2lwaGVyX2luZm9fZ2V0X2Jsb2NrX3NpemUoY2lwaGVyX2luZm8pICE9IDE2KSB7CisgICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9HQ01fQkFEX0lOUFVUOworICAgIH0KKworICAgIG1iZWR0bHNfY2lwaGVyX2ZyZWUoJmN0eC0+Y2lwaGVyX2N0eCk7CisKKyAgICBpZiAoKHJldCA9IG1iZWR0bHNfY2lwaGVyX3NldHVwKCZjdHgtPmNpcGhlcl9jdHgsIGNpcGhlcl9pbmZvKSkgIT0gMCkgeworICAgICAgICByZXR1cm4gcmV0OworICAgIH0KKworICAgIGlmICgocmV0ID0gbWJlZHRsc19jaXBoZXJfc2V0a2V5KCZjdHgtPmNpcGhlcl9jdHgsIGtleSwga2V5Yml0cywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNQkVEVExTX0VOQ1JZUFQpKSAhPSAwKSB7CisgICAgICAgIHJldHVybiByZXQ7CisgICAgfQorI2VuZGlmCisKKyAgICBpZiAoKHJldCA9IGdjbV9nZW5fdGFibGUoY3R4KSkgIT0gMCkgeworICAgICAgICByZXR1cm4gcmV0OworICAgIH0KKworICAgIHJldHVybiAwOworfQorCisjaWYgZGVmaW5lZChNQkVEVExTX0dDTV9MQVJHRV9UQUJMRSkKK3N0YXRpYyBjb25zdCB1aW50MTZfdCBsYXN0OFsyNTZdID0geworICAgIDB4MDAwMCwgMHhjMjAxLCAweDg0MDMsIDB4NDYwMiwgMHgwODA3LCAweGNhMDYsIDB4OGMwNCwgMHg0ZTA1LAorICAgIDB4MTAwZSwgMHhkMjBmLCAweDk0MGQsIDB4NTYwYywgMHgxODA5LCAweGRhMDgsIDB4OWMwYSwgMHg1ZTBiLAorICAgIDB4MjAxYywgMHhlMjFkLCAweGE0MWYsIDB4NjYxZSwgMHgyODFiLCAweGVhMWEsIDB4YWMxOCwgMHg2ZTE5LAorICAgIDB4MzAxMiwgMHhmMjEzLCAweGI0MTEsIDB4NzYxMCwgMHgzODE1LCAweGZhMTQsIDB4YmMxNiwgMHg3ZTE3LAorICAgIDB4NDAzOCwgMHg4MjM5LCAweGM0M2IsIDB4MDYzYSwgMHg0ODNmLCAweDhhM2UsIDB4Y2MzYywgMHgwZTNkLAorICAgIDB4NTAzNiwgMHg5MjM3LCAweGQ0MzUsIDB4MTYzNCwgMHg1ODMxLCAweDlhMzAsIDB4ZGMzMiwgMHgxZTMzLAorICAgIDB4NjAyNCwgMHhhMjI1LCAweGU0MjcsIDB4MjYyNiwgMHg2ODIzLCAweGFhMjIsIDB4ZWMyMCwgMHgyZTIxLAorICAgIDB4NzAyYSwgMHhiMjJiLCAweGY0MjksIDB4MzYyOCwgMHg3ODJkLCAweGJhMmMsIDB4ZmMyZSwgMHgzZTJmLAorICAgIDB4ODA3MCwgMHg0MjcxLCAweDA0NzMsIDB4YzY3MiwgMHg4ODc3LCAweDRhNzYsIDB4MGM3NCwgMHhjZTc1LAorICAgIDB4OTA3ZSwgMHg1MjdmLCAweDE0N2QsIDB4ZDY3YywgMHg5ODc5LCAweDVhNzgsIDB4MWM3YSwgMHhkZTdiLAorICAgIDB4YTA2YywgMHg2MjZkLCAweDI0NmYsIDB4ZTY2ZSwgMHhhODZiLCAweDZhNmEsIDB4MmM2OCwgMHhlZTY5LAorICAgIDB4YjA2MiwgMHg3MjYzLCAweDM0NjEsIDB4ZjY2MCwgMHhiODY1LCAweDdhNjQsIDB4M2M2NiwgMHhmZTY3LAorICAgIDB4YzA0OCwgMHgwMjQ5LCAweDQ0NGIsIDB4ODY0YSwgMHhjODRmLCAweDBhNGUsIDB4NGM0YywgMHg4ZTRkLAorICAgIDB4ZDA0NiwgMHgxMjQ3LCAweDU0NDUsIDB4OTY0NCwgMHhkODQxLCAweDFhNDAsIDB4NWM0MiwgMHg5ZTQzLAorICAgIDB4ZTA1NCwgMHgyMjU1LCAweDY0NTcsIDB4YTY1NiwgMHhlODUzLCAweDJhNTIsIDB4NmM1MCwgMHhhZTUxLAorICAgIDB4ZjA1YSwgMHgzMjViLCAweDc0NTksIDB4YjY1OCwgMHhmODVkLCAweDNhNWMsIDB4N2M1ZSwgMHhiZTVmLAorICAgIDB4MDBlMSwgMHhjMmUwLCAweDg0ZTIsIDB4NDZlMywgMHgwOGU2LCAweGNhZTcsIDB4OGNlNSwgMHg0ZWU0LAorICAgIDB4MTBlZiwgMHhkMmVlLCAweDk0ZWMsIDB4NTZlZCwgMHgxOGU4LCAweGRhZTksIDB4OWNlYiwgMHg1ZWVhLAorICAgIDB4MjBmZCwgMHhlMmZjLCAweGE0ZmUsIDB4NjZmZiwgMHgyOGZhLCAweGVhZmIsIDB4YWNmOSwgMHg2ZWY4LAorICAgIDB4MzBmMywgMHhmMmYyLCAweGI0ZjAsIDB4NzZmMSwgMHgzOGY0LCAweGZhZjUsIDB4YmNmNywgMHg3ZWY2LAorICAgIDB4NDBkOSwgMHg4MmQ4LCAweGM0ZGEsIDB4MDZkYiwgMHg0OGRlLCAweDhhZGYsIDB4Y2NkZCwgMHgwZWRjLAorICAgIDB4NTBkNywgMHg5MmQ2LCAweGQ0ZDQsIDB4MTZkNSwgMHg1OGQwLCAweDlhZDEsIDB4ZGNkMywgMHgxZWQyLAorICAgIDB4NjBjNSwgMHhhMmM0LCAweGU0YzYsIDB4MjZjNywgMHg2OGMyLCAweGFhYzMsIDB4ZWNjMSwgMHgyZWMwLAorICAgIDB4NzBjYiwgMHhiMmNhLCAweGY0YzgsIDB4MzZjOSwgMHg3OGNjLCAweGJhY2QsIDB4ZmNjZiwgMHgzZWNlLAorICAgIDB4ODA5MSwgMHg0MjkwLCAweDA0OTIsIDB4YzY5MywgMHg4ODk2LCAweDRhOTcsIDB4MGM5NSwgMHhjZTk0LAorICAgIDB4OTA5ZiwgMHg1MjllLCAweDE0OWMsIDB4ZDY5ZCwgMHg5ODk4LCAweDVhOTksIDB4MWM5YiwgMHhkZTlhLAorICAgIDB4YTA4ZCwgMHg2MjhjLCAweDI0OGUsIDB4ZTY4ZiwgMHhhODhhLCAweDZhOGIsIDB4MmM4OSwgMHhlZTg4LAorICAgIDB4YjA4MywgMHg3MjgyLCAweDM0ODAsIDB4ZjY4MSwgMHhiODg0LCAweDdhODUsIDB4M2M4NywgMHhmZTg2LAorICAgIDB4YzBhOSwgMHgwMmE4LCAweDQ0YWEsIDB4ODZhYiwgMHhjOGFlLCAweDBhYWYsIDB4NGNhZCwgMHg4ZWFjLAorICAgIDB4ZDBhNywgMHgxMmE2LCAweDU0YTQsIDB4OTZhNSwgMHhkOGEwLCAweDFhYTEsIDB4NWNhMywgMHg5ZWEyLAorICAgIDB4ZTBiNSwgMHgyMmI0LCAweDY0YjYsIDB4YTZiNywgMHhlOGIyLCAweDJhYjMsIDB4NmNiMSwgMHhhZWIwLAorICAgIDB4ZjBiYiwgMHgzMmJhLCAweDc0YjgsIDB4YjZiOSwgMHhmOGJjLCAweDNhYmQsIDB4N2NiZiwgMHhiZWJlCit9OworCitzdGF0aWMgdm9pZCBnY21fbXVsdF9sYXJnZXRhYmxlKHVpbnQ4X3QgKm91dHB1dCwgY29uc3QgdWludDhfdCAqeCwgdWludDY0X3QgSFsyNTZdWzJdKQoreworICAgIGludCBpOworICAgIHVpbnQ2NF90IHU2NHpbMl07CisgICAgdWludDE2X3QgKnUxNnogPSAodWludDE2X3QgKikgdTY0ejsKKyAgICB1aW50OF90ICp1OHogPSAodWludDhfdCAqKSB1NjR6OworICAgIHVpbnQ4X3QgcmVtOworCisgICAgdTY0elswXSA9IDA7CisgICAgdTY0elsxXSA9IDA7CisKKyAgICBpZiAoTUJFRFRMU19JU19CSUdfRU5ESUFOKSB7CisgICAgICAgIGZvciAoaSA9IDE1OyBpID4gMDsgaS0tKSB7CisgICAgICAgICAgICBtYmVkdGxzX3hvcl9ub19zaW1kKHU4eiwgdTh6LCAodWludDhfdCAqKSBIW3hbaV1dLCAxNik7CisgICAgICAgICAgICByZW0gPSB1OHpbMTVdOworCisgICAgICAgICAgICB1NjR6WzFdID4+PSA4OworICAgICAgICAgICAgdTh6WzhdID0gdTh6WzddOworICAgICAgICAgICAgdTY0elswXSA+Pj0gODsKKworICAgICAgICAgICAgdTE2elswXSBePSBNQkVEVExTX0dFVF9VSU5UMTZfTEUoJmxhc3Q4W3JlbV0sIDApOworICAgICAgICB9CisgICAgfSBlbHNlIHsKKyAgICAgICAgZm9yIChpID0gMTU7IGkgPiAwOyBpLS0pIHsKKyAgICAgICAgICAgIG1iZWR0bHNfeG9yX25vX3NpbWQodTh6LCB1OHosICh1aW50OF90ICopIEhbeFtpXV0sIDE2KTsKKyAgICAgICAgICAgIHJlbSA9IHU4elsxNV07CisKKyAgICAgICAgICAgIHU2NHpbMV0gPDw9IDg7CisgICAgICAgICAgICB1OHpbOF0gPSB1OHpbN107CisgICAgICAgICAgICB1NjR6WzBdIDw8PSA4OworCisgICAgICAgICAgICB1MTZ6WzBdIF49IGxhc3Q4W3JlbV07CisgICAgICAgIH0KKyAgICB9CisKKyAgICBtYmVkdGxzX3hvcl9ub19zaW1kKG91dHB1dCwgdTh6LCAodWludDhfdCAqKSBIW3hbMF1dLCAxNik7Cit9CisjZWxzZQorLyoKKyAqIFNob3VwJ3MgbWV0aG9kIGZvciBtdWx0aXBsaWNhdGlvbiB1c2UgdGhpcyB0YWJsZSB3aXRoCisgKiAgICAgIGxhc3Q0W3hdID0geCB0aW1lcyBQXjEyOAorICogd2hlcmUgeCBhbmQgbGFzdDRbeF0gYXJlIHNlZW4gYXMgZWxlbWVudHMgb2YgR0YoMl4xMjgpIGFzIGluIFtNR1ZdCisgKi8KK3N0YXRpYyBjb25zdCB1aW50MTZfdCBsYXN0NFsxNl0gPQoreworICAgIDB4MDAwMCwgMHgxYzIwLCAweDM4NDAsIDB4MjQ2MCwKKyAgICAweDcwODAsIDB4NmNhMCwgMHg0OGMwLCAweDU0ZTAsCisgICAgMHhlMTAwLCAweGZkMjAsIDB4ZDk0MCwgMHhjNTYwLAorICAgIDB4OTE4MCwgMHg4ZGEwLCAweGE5YzAsIDB4YjVlMAorfTsKKworc3RhdGljIHZvaWQgZ2NtX211bHRfc21hbGx0YWJsZSh1aW50OF90ICpvdXRwdXQsIGNvbnN0IHVpbnQ4X3QgKngsIHVpbnQ2NF90IEhbMTZdWzJdKQoreworICAgIGludCBpID0gMDsKKyAgICB1bnNpZ25lZCBjaGFyIGxvLCBoaSwgcmVtOworICAgIHVpbnQ2NF90IHU2NHpbMl07CisgICAgY29uc3QgdWludDY0X3QgKnB1NjR6ID0gTlVMTDsKKyAgICB1aW50OF90ICp1OHogPSAodWludDhfdCAqKSB1NjR6OworCisgICAgbG8gPSB4WzE1XSAmIDB4ZjsKKyAgICBoaSA9ICh4WzE1XSA+PiA0KSAmIDB4ZjsKKworICAgIHB1NjR6ID0gSFtsb107CisKKyAgICByZW0gPSAodW5zaWduZWQgY2hhcikgcHU2NHpbMV0gJiAweGY7CisgICAgdTY0elsxXSA9IChwdTY0elswXSA8PCA2MCkgfCAocHU2NHpbMV0gPj4gNCk7CisgICAgdTY0elswXSA9IChwdTY0elswXSA+PiA0KTsKKyAgICB1NjR6WzBdIF49ICh1aW50NjRfdCkgbGFzdDRbcmVtXSA8PCA0ODsKKyAgICBtYmVkdGxzX3hvcl9ub19zaW1kKHU4eiwgdTh6LCAodWludDhfdCAqKSBIW2hpXSwgMTYpOworCisgICAgZm9yIChpID0gMTQ7IGkgPj0gMDsgaS0tKSB7CisgICAgICAgIGxvID0geFtpXSAmIDB4ZjsKKyAgICAgICAgaGkgPSAoeFtpXSA+PiA0KSAmIDB4ZjsKKworICAgICAgICByZW0gPSAodW5zaWduZWQgY2hhcikgdTY0elsxXSAmIDB4ZjsKKyAgICAgICAgdTY0elsxXSA9ICh1NjR6WzBdIDw8IDYwKSB8ICh1NjR6WzFdID4+IDQpOworICAgICAgICB1NjR6WzBdID0gKHU2NHpbMF0gPj4gNCk7CisgICAgICAgIHU2NHpbMF0gXj0gKHVpbnQ2NF90KSBsYXN0NFtyZW1dIDw8IDQ4OworICAgICAgICBtYmVkdGxzX3hvcl9ub19zaW1kKHU4eiwgdTh6LCAodWludDhfdCAqKSBIW2xvXSwgMTYpOworCisgICAgICAgIHJlbSA9ICh1bnNpZ25lZCBjaGFyKSB1NjR6WzFdICYgMHhmOworICAgICAgICB1NjR6WzFdID0gKHU2NHpbMF0gPDwgNjApIHwgKHU2NHpbMV0gPj4gNCk7CisgICAgICAgIHU2NHpbMF0gPSAodTY0elswXSA+PiA0KTsKKyAgICAgICAgdTY0elswXSBePSAodWludDY0X3QpIGxhc3Q0W3JlbV0gPDwgNDg7CisgICAgICAgIG1iZWR0bHNfeG9yX25vX3NpbWQodTh6LCB1OHosICh1aW50OF90ICopIEhbaGldLCAxNik7CisgICAgfQorCisgICAgTUJFRFRMU19QVVRfVUlOVDY0X0JFKHU2NHpbMF0sIG91dHB1dCwgMCk7CisgICAgTUJFRFRMU19QVVRfVUlOVDY0X0JFKHU2NHpbMV0sIG91dHB1dCwgOCk7Cit9CisjZW5kaWYKKworLyoKKyAqIFNldHMgb3V0cHV0IHRvIHggdGltZXMgSCB1c2luZyB0aGUgcHJlY29tcHV0ZWQgdGFibGVzLgorICogeCBhbmQgb3V0cHV0IGFyZSBzZWVuIGFzIGVsZW1lbnRzIG9mIEdGKDJeMTI4KSBhcyBpbiBbTUdWXS4KKyAqLworc3RhdGljIHZvaWQgZ2NtX211bHQobWJlZHRsc19nY21fY29udGV4dCAqY3R4LCBjb25zdCB1bnNpZ25lZCBjaGFyIHhbMTZdLAorICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgY2hhciBvdXRwdXRbMTZdKQoreworICAgIHN3aXRjaCAoY3R4LT5hY2NlbGVyYXRpb24pIHsKKyNpZiBkZWZpbmVkKE1CRURUTFNfQUVTTklfSEFWRV9DT0RFKQorICAgICAgICBjYXNlIE1CRURUTFNfR0NNX0FDQ19BRVNOSToKKyAgICAgICAgICAgIG1iZWR0bHNfYWVzbmlfZ2NtX211bHQob3V0cHV0LCB4LCAodWludDhfdCAqKSBjdHgtPkhbTUJFRFRMU19HQ01fSFRBQkxFX1NJWkUvMl0pOworICAgICAgICAgICAgYnJlYWs7CisjZW5kaWYKKworI2lmIGRlZmluZWQoTUJFRFRMU19BRVNDRV9IQVZFX0NPREUpCisgICAgICAgIGNhc2UgTUJFRFRMU19HQ01fQUNDX0FFU0NFOgorICAgICAgICAgICAgbWJlZHRsc19hZXNjZV9nY21fbXVsdChvdXRwdXQsIHgsICh1aW50OF90ICopIGN0eC0+SFtNQkVEVExTX0dDTV9IVEFCTEVfU0laRS8yXSk7CisgICAgICAgICAgICBicmVhazsKKyNlbmRpZgorCisjaWYgZGVmaW5lZChNQkVEVExTX0dDTV9MQVJHRV9UQUJMRSkKKyAgICAgICAgY2FzZSBNQkVEVExTX0dDTV9BQ0NfTEFSR0VUQUJMRToKKyAgICAgICAgICAgIGdjbV9tdWx0X2xhcmdldGFibGUob3V0cHV0LCB4LCBjdHgtPkgpOworICAgICAgICAgICAgYnJlYWs7CisjZWxzZQorICAgICAgICBjYXNlIE1CRURUTFNfR0NNX0FDQ19TTUFMTFRBQkxFOgorICAgICAgICAgICAgZ2NtX211bHRfc21hbGx0YWJsZShvdXRwdXQsIHgsIGN0eC0+SCk7CisgICAgICAgICAgICBicmVhazsKKyNlbmRpZgorICAgIH0KKworICAgIHJldHVybjsKK30KKworaW50IG1iZWR0bHNfZ2NtX3N0YXJ0cyhtYmVkdGxzX2djbV9jb250ZXh0ICpjdHgsCisgICAgICAgICAgICAgICAgICAgICAgIGludCBtb2RlLAorICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1bnNpZ25lZCBjaGFyICppdiwgc2l6ZV90IGl2X2xlbikKK3sKKyAgICBpbnQgcmV0ID0gTUJFRFRMU19FUlJfRVJST1JfQ09SUlVQVElPTl9ERVRFQ1RFRDsKKyAgICB1bnNpZ25lZCBjaGFyIHdvcmtfYnVmWzE2XTsKKyAgICBjb25zdCB1bnNpZ25lZCBjaGFyICpwOworICAgIHNpemVfdCB1c2VfbGVuOworICAgIHVpbnQ2NF90IGl2X2JpdHM7CisjaWYgIWRlZmluZWQoTUJFRFRMU19CTE9DS19DSVBIRVJfQykKKyAgICBzaXplX3Qgb2xlbiA9IDA7CisjZW5kaWYKKworICAgIC8qIElWIGlzIGxpbWl0ZWQgdG8gMl42NCBiaXRzLCBzbyAyXjYxIGJ5dGVzICovCisgICAgLyogSVYgaXMgbm90IGFsbG93ZWQgdG8gYmUgemVybyBsZW5ndGggKi8KKyAgICBpZiAoaXZfbGVuID09IDAgfHwgKHVpbnQ2NF90KSBpdl9sZW4gPj4gNjEgIT0gMCkgeworICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfR0NNX0JBRF9JTlBVVDsKKyAgICB9CisKKyAgICBtZW1zZXQoY3R4LT55LCAweDAwLCBzaXplb2YoY3R4LT55KSk7CisgICAgbWVtc2V0KGN0eC0+YnVmLCAweDAwLCBzaXplb2YoY3R4LT5idWYpKTsKKworICAgIGN0eC0+bW9kZSA9IG1vZGU7CisgICAgY3R4LT5sZW4gPSAwOworICAgIGN0eC0+YWRkX2xlbiA9IDA7CisKKyAgICBpZiAoaXZfbGVuID09IDEyKSB7CisgICAgICAgIG1lbWNweShjdHgtPnksIGl2LCBpdl9sZW4pOworICAgICAgICBjdHgtPnlbMTVdID0gMTsKKyAgICB9IGVsc2UgeworICAgICAgICBtZW1zZXQod29ya19idWYsIDB4MDAsIDE2KTsKKyAgICAgICAgaXZfYml0cyA9ICh1aW50NjRfdCkgaXZfbGVuICogODsKKyAgICAgICAgTUJFRFRMU19QVVRfVUlOVDY0X0JFKGl2X2JpdHMsIHdvcmtfYnVmLCA4KTsKKworICAgICAgICBwID0gaXY7CisgICAgICAgIHdoaWxlIChpdl9sZW4gPiAwKSB7CisgICAgICAgICAgICB1c2VfbGVuID0gKGl2X2xlbiA8IDE2KSA/IGl2X2xlbiA6IDE2OworCisjaWYgZGVmaW5lZChNQkVEVExTX0NPTVBJTEVSX0lTX0dDQykgJiYgKE1CRURUTFNfR0NDX1ZFUlNJT04gPj0gNzAxMTApCisjcHJhZ21hIEdDQyBkaWFnbm9zdGljIHB1c2gKKyNwcmFnbWEgR0NDIGRpYWdub3N0aWMgd2FybmluZyAiLVdzdHJpbmdvcC1vdmVyZmxvdz0wIgorI2VuZGlmCisKKyAgICAgICAgICAgIG1iZWR0bHNfeG9yKGN0eC0+eSwgY3R4LT55LCBwLCB1c2VfbGVuKTsKKworI2lmIGRlZmluZWQoTUJFRFRMU19DT01QSUxFUl9JU19HQ0MpICYmIChNQkVEVExTX0dDQ19WRVJTSU9OID49IDcwMTEwKQorI3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBwb3AKKyNlbmRpZgorCisgICAgICAgICAgICBnY21fbXVsdChjdHgsIGN0eC0+eSwgY3R4LT55KTsKKworICAgICAgICAgICAgaXZfbGVuIC09IHVzZV9sZW47CisgICAgICAgICAgICBwICs9IHVzZV9sZW47CisgICAgICAgIH0KKworICAgICAgICBtYmVkdGxzX3hvcihjdHgtPnksIGN0eC0+eSwgd29ya19idWYsIDE2KTsKKworICAgICAgICBnY21fbXVsdChjdHgsIGN0eC0+eSwgY3R4LT55KTsKKyAgICB9CisKKworI2lmIGRlZmluZWQoTUJFRFRMU19CTE9DS19DSVBIRVJfQykKKyAgICByZXQgPSBtYmVkdGxzX2Jsb2NrX2NpcGhlcl9lbmNyeXB0KCZjdHgtPmJsb2NrX2NpcGhlcl9jdHgsIGN0eC0+eSwgY3R4LT5iYXNlX2VjdHIpOworI2Vsc2UKKyAgICByZXQgPSBtYmVkdGxzX2NpcGhlcl91cGRhdGUoJmN0eC0+Y2lwaGVyX2N0eCwgY3R4LT55LCAxNiwgY3R4LT5iYXNlX2VjdHIsICZvbGVuKTsKKyNlbmRpZgorICAgIGlmIChyZXQgIT0gMCkgeworICAgICAgICByZXR1cm4gcmV0OworICAgIH0KKworICAgIHJldHVybiAwOworfQorCisvKioKKyAqIG1iZWR0bHNfZ2NtX2NvbnRleHQ6OmJ1ZiBjb250YWlucyB0aGUgcGFydGlhbCBzdGF0ZSBvZiB0aGUgY29tcHV0YXRpb24gb2YKKyAqIHRoZSBhdXRoZW50aWNhdGlvbiB0YWcuCisgKiBtYmVkdGxzX2djbV9jb250ZXh0OjphZGRfbGVuIGFuZCBtYmVkdGxzX2djbV9jb250ZXh0OjpsZW4gaW5kaWNhdGUKKyAqIGRpZmZlcmVudCBzdGFnZXMgb2YgdGhlIGNvbXB1dGF0aW9uOgorICogICAgICogbGVuID09IDAgJiYgYWRkX2xlbiA9PSAwOiAgICAgIGluaXRpYWwgc3RhdGUKKyAqICAgICAqIGxlbiA9PSAwICYmIGFkZF9sZW4gJSAxNiAhPSAwOiB0aGUgZmlyc3QgYGFkZF9sZW4gJSAxNmAgYnl0ZXMgaGF2ZQorICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGEgcGFydGlhbCBibG9jayBvZiBBRCB0aGF0IGhhcyBiZWVuCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeG9yZWQgaW4gYnV0IG5vdCB5ZXQgbXVsdGlwbGllZCBpbi4KKyAqICAgICAqIGxlbiA9PSAwICYmIGFkZF9sZW4gJSAxNiA9PSAwOiB0aGUgYXV0aGVudGljYXRpb24gdGFnIGlzIGNvcnJlY3QgaWYKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGUgZGF0YSBlbmRzIG5vdy4KKyAqICAgICAqIGxlbiAlIDE2ICE9IDA6ICAgICAgICAgICAgICAgICB0aGUgZmlyc3QgYGxlbiAlIDE2YCBieXRlcyBoYXZlCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYSBwYXJ0aWFsIGJsb2NrIG9mIGNpcGhlcnRleHQgdGhhdCBoYXMKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiZWVuIHhvcmVkIGluIGJ1dCBub3QgeWV0IG11bHRpcGxpZWQgaW4uCisgKiAgICAgKiBsZW4gPiAwICYmIGxlbiAlIDE2ID09IDA6ICAgICAgdGhlIGF1dGhlbnRpY2F0aW9uIHRhZyBpcyBjb3JyZWN0IGlmCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlIGRhdGEgZW5kcyBub3cuCisgKi8KK2ludCBtYmVkdGxzX2djbV91cGRhdGVfYWQobWJlZHRsc19nY21fY29udGV4dCAqY3R4LAorICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1bnNpZ25lZCBjaGFyICphZGQsIHNpemVfdCBhZGRfbGVuKQoreworICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgKnA7CisgICAgc2l6ZV90IHVzZV9sZW4sIG9mZnNldDsKKyAgICB1aW50NjRfdCBuZXdfYWRkX2xlbjsKKworICAgIC8qIEFEIGlzIGxpbWl0ZWQgdG8gMl42NCBiaXRzLCBpZSAyXjYxIGJ5dGVzCisgICAgICogQWxzbyBjaGVjayBmb3IgcG9zc2libGUgb3ZlcmZsb3cgKi8KKyNpZiBTSVpFX01BWCA+IDB4RkZGRkZGRkZGRkZGRkZGRlVMTAorICAgIGlmIChhZGRfbGVuID4gMHhGRkZGRkZGRkZGRkZGRkZGVUxMKSB7CisgICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9HQ01fQkFEX0lOUFVUOworICAgIH0KKyNlbmRpZgorICAgIG5ld19hZGRfbGVuID0gY3R4LT5hZGRfbGVuICsgKHVpbnQ2NF90KSBhZGRfbGVuOworICAgIGlmIChuZXdfYWRkX2xlbiA8IGN0eC0+YWRkX2xlbiB8fCBuZXdfYWRkX2xlbiA+PiA2MSAhPSAwKSB7CisgICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9HQ01fQkFEX0lOUFVUOworICAgIH0KKworICAgIG9mZnNldCA9IGN0eC0+YWRkX2xlbiAlIDE2OworICAgIHAgPSBhZGQ7CisKKyAgICBpZiAob2Zmc2V0ICE9IDApIHsKKyAgICAgICAgdXNlX2xlbiA9IDE2IC0gb2Zmc2V0OworICAgICAgICBpZiAodXNlX2xlbiA+IGFkZF9sZW4pIHsKKyAgICAgICAgICAgIHVzZV9sZW4gPSBhZGRfbGVuOworICAgICAgICB9CisKKyAgICAgICAgbWJlZHRsc194b3IoY3R4LT5idWYgKyBvZmZzZXQsIGN0eC0+YnVmICsgb2Zmc2V0LCBwLCB1c2VfbGVuKTsKKworICAgICAgICBpZiAob2Zmc2V0ICsgdXNlX2xlbiA9PSAxNikgeworICAgICAgICAgICAgZ2NtX211bHQoY3R4LCBjdHgtPmJ1ZiwgY3R4LT5idWYpOworICAgICAgICB9CisKKyAgICAgICAgY3R4LT5hZGRfbGVuICs9IHVzZV9sZW47CisgICAgICAgIGFkZF9sZW4gLT0gdXNlX2xlbjsKKyAgICAgICAgcCArPSB1c2VfbGVuOworICAgIH0KKworICAgIGN0eC0+YWRkX2xlbiArPSBhZGRfbGVuOworCisgICAgd2hpbGUgKGFkZF9sZW4gPj0gMTYpIHsKKyAgICAgICAgbWJlZHRsc194b3IoY3R4LT5idWYsIGN0eC0+YnVmLCBwLCAxNik7CisKKyAgICAgICAgZ2NtX211bHQoY3R4LCBjdHgtPmJ1ZiwgY3R4LT5idWYpOworCisgICAgICAgIGFkZF9sZW4gLT0gMTY7CisgICAgICAgIHAgKz0gMTY7CisgICAgfQorCisgICAgaWYgKGFkZF9sZW4gPiAwKSB7CisgICAgICAgIG1iZWR0bHNfeG9yKGN0eC0+YnVmLCBjdHgtPmJ1ZiwgcCwgYWRkX2xlbik7CisgICAgfQorCisgICAgcmV0dXJuIDA7Cit9CisKKy8qIEluY3JlbWVudCB0aGUgY291bnRlci4gKi8KK3N0YXRpYyB2b2lkIGdjbV9pbmNyKHVuc2lnbmVkIGNoYXIgeVsxNl0pCit7CisgICAgdWludDMyX3QgeCA9IE1CRURUTFNfR0VUX1VJTlQzMl9CRSh5LCAxMik7CisgICAgeCsrOworICAgIE1CRURUTFNfUFVUX1VJTlQzMl9CRSh4LCB5LCAxMik7Cit9CisKKy8qIENhbGN1bGF0ZSBhbmQgYXBwbHkgdGhlIGVuY3J5cHRpb24gbWFzay4gUHJvY2VzcyB1c2VfbGVuIGJ5dGVzIG9mIGRhdGEsCisgKiBzdGFydGluZyBhdCBwb3NpdGlvbiBvZmZzZXQgaW4gdGhlIG1hc2sgYmxvY2suICovCitzdGF0aWMgaW50IGdjbV9tYXNrKG1iZWR0bHNfZ2NtX2NvbnRleHQgKmN0eCwKKyAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgY2hhciBlY3RyWzE2XSwKKyAgICAgICAgICAgICAgICAgICAgc2l6ZV90IG9mZnNldCwgc2l6ZV90IHVzZV9sZW4sCisgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgKmlucHV0LAorICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBjaGFyICpvdXRwdXQpCit7CisgICAgaW50IHJldCA9IE1CRURUTFNfRVJSX0VSUk9SX0NPUlJVUFRJT05fREVURUNURUQ7CisKKyNpZiBkZWZpbmVkKE1CRURUTFNfQkxPQ0tfQ0lQSEVSX0MpCisgICAgcmV0ID0gbWJlZHRsc19ibG9ja19jaXBoZXJfZW5jcnlwdCgmY3R4LT5ibG9ja19jaXBoZXJfY3R4LCBjdHgtPnksIGVjdHIpOworI2Vsc2UKKyAgICBzaXplX3Qgb2xlbiA9IDA7CisgICAgcmV0ID0gbWJlZHRsc19jaXBoZXJfdXBkYXRlKCZjdHgtPmNpcGhlcl9jdHgsIGN0eC0+eSwgMTYsIGVjdHIsICZvbGVuKTsKKyNlbmRpZgorICAgIGlmIChyZXQgIT0gMCkgeworICAgICAgICBtYmVkdGxzX3BsYXRmb3JtX3plcm9pemUoZWN0ciwgMTYpOworICAgICAgICByZXR1cm4gcmV0OworICAgIH0KKworICAgIGlmIChjdHgtPm1vZGUgPT0gTUJFRFRMU19HQ01fREVDUllQVCkgeworICAgICAgICBtYmVkdGxzX3hvcihjdHgtPmJ1ZiArIG9mZnNldCwgY3R4LT5idWYgKyBvZmZzZXQsIGlucHV0LCB1c2VfbGVuKTsKKyAgICB9CisgICAgbWJlZHRsc194b3Iob3V0cHV0LCBlY3RyICsgb2Zmc2V0LCBpbnB1dCwgdXNlX2xlbik7CisgICAgaWYgKGN0eC0+bW9kZSA9PSBNQkVEVExTX0dDTV9FTkNSWVBUKSB7CisgICAgICAgIG1iZWR0bHNfeG9yKGN0eC0+YnVmICsgb2Zmc2V0LCBjdHgtPmJ1ZiArIG9mZnNldCwgb3V0cHV0LCB1c2VfbGVuKTsKKyAgICB9CisKKyAgICByZXR1cm4gMDsKK30KKworaW50IG1iZWR0bHNfZ2NtX3VwZGF0ZShtYmVkdGxzX2djbV9jb250ZXh0ICpjdHgsCisgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgKmlucHV0LCBzaXplX3QgaW5wdXRfbGVuZ3RoLAorICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBjaGFyICpvdXRwdXQsIHNpemVfdCBvdXRwdXRfc2l6ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90ICpvdXRwdXRfbGVuZ3RoKQoreworICAgIGludCByZXQgPSBNQkVEVExTX0VSUl9FUlJPUl9DT1JSVVBUSU9OX0RFVEVDVEVEOworICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgKnAgPSBpbnB1dDsKKyAgICB1bnNpZ25lZCBjaGFyICpvdXRfcCA9IG91dHB1dDsKKyAgICBzaXplX3Qgb2Zmc2V0OworICAgIHVuc2lnbmVkIGNoYXIgZWN0clsxNl0gPSB7IDAgfTsKKworICAgIGlmIChvdXRwdXRfc2l6ZSA8IGlucHV0X2xlbmd0aCkgeworICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfR0NNX0JVRkZFUl9UT09fU01BTEw7CisgICAgfQorICAgICpvdXRwdXRfbGVuZ3RoID0gaW5wdXRfbGVuZ3RoOworCisgICAgLyogRXhpdCBlYXJseSBpZiBpbnB1dF9sZW5ndGg9PTAgc28gdGhhdCB3ZSBkb24ndCBkbyBhbnkgcG9pbnRlciBhcml0aG1ldGljCisgICAgICogb24gYSBwb3RlbnRpYWxseSBudWxsIHBvaW50ZXIuCisgICAgICogUmV0dXJuaW5nIGVhcmx5IGFsc28gbWVhbnMgdGhhdCB0aGUgbGFzdCBwYXJ0aWFsIGJsb2NrIG9mIEFEIHJlbWFpbnMKKyAgICAgKiB1bnRvdWNoZWQgZm9yIG1iZWR0bHNfZ2NtX2ZpbmlzaCAqLworICAgIGlmIChpbnB1dF9sZW5ndGggPT0gMCkgeworICAgICAgICByZXR1cm4gMDsKKyAgICB9CisKKyAgICBpZiAob3V0cHV0ID4gaW5wdXQgJiYgKHNpemVfdCkgKG91dHB1dCAtIGlucHV0KSA8IGlucHV0X2xlbmd0aCkgeworICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfR0NNX0JBRF9JTlBVVDsKKyAgICB9CisKKyAgICAvKiBUb3RhbCBsZW5ndGggaXMgcmVzdHJpY3RlZCB0byAyXjM5IC0gMjU2IGJpdHMsIGllIDJeMzYgLSAyXjUgYnl0ZXMKKyAgICAgKiBBbHNvIGNoZWNrIGZvciBwb3NzaWJsZSBvdmVyZmxvdyAqLworICAgIGlmIChjdHgtPmxlbiArIGlucHV0X2xlbmd0aCA8IGN0eC0+bGVuIHx8CisgICAgICAgICh1aW50NjRfdCkgY3R4LT5sZW4gKyBpbnB1dF9sZW5ndGggPiAweEZGRkZGRkZFMHVsbCkgeworICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfR0NNX0JBRF9JTlBVVDsKKyAgICB9CisKKyAgICBpZiAoY3R4LT5sZW4gPT0gMCAmJiBjdHgtPmFkZF9sZW4gJSAxNiAhPSAwKSB7CisgICAgICAgIGdjbV9tdWx0KGN0eCwgY3R4LT5idWYsIGN0eC0+YnVmKTsKKyAgICB9CisKKyAgICBvZmZzZXQgPSBjdHgtPmxlbiAlIDE2OworICAgIGlmIChvZmZzZXQgIT0gMCkgeworICAgICAgICBzaXplX3QgdXNlX2xlbiA9IDE2IC0gb2Zmc2V0OworICAgICAgICBpZiAodXNlX2xlbiA+IGlucHV0X2xlbmd0aCkgeworICAgICAgICAgICAgdXNlX2xlbiA9IGlucHV0X2xlbmd0aDsKKyAgICAgICAgfQorCisgICAgICAgIGlmICgocmV0ID0gZ2NtX21hc2soY3R4LCBlY3RyLCBvZmZzZXQsIHVzZV9sZW4sIHAsIG91dF9wKSkgIT0gMCkgeworICAgICAgICAgICAgcmV0dXJuIHJldDsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChvZmZzZXQgKyB1c2VfbGVuID09IDE2KSB7CisgICAgICAgICAgICBnY21fbXVsdChjdHgsIGN0eC0+YnVmLCBjdHgtPmJ1Zik7CisgICAgICAgIH0KKworICAgICAgICBjdHgtPmxlbiArPSB1c2VfbGVuOworICAgICAgICBpbnB1dF9sZW5ndGggLT0gdXNlX2xlbjsKKyAgICAgICAgcCArPSB1c2VfbGVuOworICAgICAgICBvdXRfcCArPSB1c2VfbGVuOworICAgIH0KKworICAgIGN0eC0+bGVuICs9IGlucHV0X2xlbmd0aDsKKworICAgIHdoaWxlIChpbnB1dF9sZW5ndGggPj0gMTYpIHsKKyAgICAgICAgZ2NtX2luY3IoY3R4LT55KTsKKyAgICAgICAgaWYgKChyZXQgPSBnY21fbWFzayhjdHgsIGVjdHIsIDAsIDE2LCBwLCBvdXRfcCkpICE9IDApIHsKKyAgICAgICAgICAgIHJldHVybiByZXQ7CisgICAgICAgIH0KKworICAgICAgICBnY21fbXVsdChjdHgsIGN0eC0+YnVmLCBjdHgtPmJ1Zik7CisKKyAgICAgICAgaW5wdXRfbGVuZ3RoIC09IDE2OworICAgICAgICBwICs9IDE2OworICAgICAgICBvdXRfcCArPSAxNjsKKyAgICB9CisKKyAgICBpZiAoaW5wdXRfbGVuZ3RoID4gMCkgeworICAgICAgICBnY21faW5jcihjdHgtPnkpOworICAgICAgICBpZiAoKHJldCA9IGdjbV9tYXNrKGN0eCwgZWN0ciwgMCwgaW5wdXRfbGVuZ3RoLCBwLCBvdXRfcCkpICE9IDApIHsKKyAgICAgICAgICAgIHJldHVybiByZXQ7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBtYmVkdGxzX3BsYXRmb3JtX3plcm9pemUoZWN0ciwgc2l6ZW9mKGVjdHIpKTsKKyAgICByZXR1cm4gMDsKK30KKworaW50IG1iZWR0bHNfZ2NtX2ZpbmlzaChtYmVkdGxzX2djbV9jb250ZXh0ICpjdHgsCisgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGNoYXIgKm91dHB1dCwgc2l6ZV90IG91dHB1dF9zaXplLAorICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgKm91dHB1dF9sZW5ndGgsCisgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGNoYXIgKnRhZywgc2l6ZV90IHRhZ19sZW4pCit7CisgICAgdW5zaWduZWQgY2hhciB3b3JrX2J1ZlsxNl07CisgICAgdWludDY0X3Qgb3JpZ19sZW47CisgICAgdWludDY0X3Qgb3JpZ19hZGRfbGVuOworCisgICAgLyogV2UgbmV2ZXIgcGFzcyBhbnkgb3V0cHV0IGluIGZpbmlzaCgpLiBUaGUgb3V0cHV0IHBhcmFtZXRlciBleGlzdHMgb25seQorICAgICAqIGZvciB0aGUgc2FrZSBvZiBhbHRlcm5hdGl2ZSBpbXBsZW1lbnRhdGlvbnMuICovCisgICAgKHZvaWQpIG91dHB1dDsKKyAgICAodm9pZCkgb3V0cHV0X3NpemU7CisgICAgKm91dHB1dF9sZW5ndGggPSAwOworCisgICAgLyogVG90YWwgbGVuZ3RoIGlzIHJlc3RyaWN0ZWQgdG8gMl4zOSAtIDI1NiBiaXRzLCBpZSAyXjM2IC0gMl41IGJ5dGVzCisgICAgICogYW5kIEFEIGxlbmd0aCBpcyByZXN0cmljdGVkIHRvIDJeNjQgYml0cywgaWUgMl42MSBieXRlcyBzbyBuZWl0aGVyIG9mCisgICAgICogdGhlIHR3byBtdWx0aXBsaWNhdGlvbnMgd291bGQgb3ZlcmZsb3cuICovCisgICAgb3JpZ19sZW4gPSBjdHgtPmxlbiAqIDg7CisgICAgb3JpZ19hZGRfbGVuID0gY3R4LT5hZGRfbGVuICogODsKKworICAgIGlmIChjdHgtPmxlbiA9PSAwICYmIGN0eC0+YWRkX2xlbiAlIDE2ICE9IDApIHsKKyAgICAgICAgZ2NtX211bHQoY3R4LCBjdHgtPmJ1ZiwgY3R4LT5idWYpOworICAgIH0KKworICAgIGlmICh0YWdfbGVuID4gMTYgfHwgdGFnX2xlbiA8IDQpIHsKKyAgICAgICAgcmV0dXJuIE1CRURUTFNfRVJSX0dDTV9CQURfSU5QVVQ7CisgICAgfQorCisgICAgaWYgKGN0eC0+bGVuICUgMTYgIT0gMCkgeworICAgICAgICBnY21fbXVsdChjdHgsIGN0eC0+YnVmLCBjdHgtPmJ1Zik7CisgICAgfQorCisgICAgbWVtY3B5KHRhZywgY3R4LT5iYXNlX2VjdHIsIHRhZ19sZW4pOworCisgICAgaWYgKG9yaWdfbGVuIHx8IG9yaWdfYWRkX2xlbikgeworICAgICAgICBtZW1zZXQod29ya19idWYsIDB4MDAsIDE2KTsKKworICAgICAgICBNQkVEVExTX1BVVF9VSU5UMzJfQkUoKG9yaWdfYWRkX2xlbiA+PiAzMiksIHdvcmtfYnVmLCAwKTsKKyAgICAgICAgTUJFRFRMU19QVVRfVUlOVDMyX0JFKChvcmlnX2FkZF9sZW4pLCB3b3JrX2J1ZiwgNCk7CisgICAgICAgIE1CRURUTFNfUFVUX1VJTlQzMl9CRSgob3JpZ19sZW4gICAgID4+IDMyKSwgd29ya19idWYsIDgpOworICAgICAgICBNQkVEVExTX1BVVF9VSU5UMzJfQkUoKG9yaWdfbGVuKSwgd29ya19idWYsIDEyKTsKKworICAgICAgICBtYmVkdGxzX3hvcihjdHgtPmJ1ZiwgY3R4LT5idWYsIHdvcmtfYnVmLCAxNik7CisKKyAgICAgICAgZ2NtX211bHQoY3R4LCBjdHgtPmJ1ZiwgY3R4LT5idWYpOworCisgICAgICAgIG1iZWR0bHNfeG9yKHRhZywgdGFnLCBjdHgtPmJ1ZiwgdGFnX2xlbik7CisgICAgfQorCisgICAgcmV0dXJuIDA7Cit9CisKK2ludCBtYmVkdGxzX2djbV9jcnlwdF9hbmRfdGFnKG1iZWR0bHNfZ2NtX2NvbnRleHQgKmN0eCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBtb2RlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IGxlbmd0aCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgKml2LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IGl2X2xlbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgKmFkZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBhZGRfbGVuLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdW5zaWduZWQgY2hhciAqaW5wdXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBjaGFyICpvdXRwdXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgdGFnX2xlbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGNoYXIgKnRhZykKK3sKKyAgICBpbnQgcmV0ID0gTUJFRFRMU19FUlJfRVJST1JfQ09SUlVQVElPTl9ERVRFQ1RFRDsKKyAgICBzaXplX3Qgb2xlbjsKKworICAgIGlmICgocmV0ID0gbWJlZHRsc19nY21fc3RhcnRzKGN0eCwgbW9kZSwgaXYsIGl2X2xlbikpICE9IDApIHsKKyAgICAgICAgcmV0dXJuIHJldDsKKyAgICB9CisKKyAgICBpZiAoKHJldCA9IG1iZWR0bHNfZ2NtX3VwZGF0ZV9hZChjdHgsIGFkZCwgYWRkX2xlbikpICE9IDApIHsKKyAgICAgICAgcmV0dXJuIHJldDsKKyAgICB9CisKKyAgICBpZiAoKHJldCA9IG1iZWR0bHNfZ2NtX3VwZGF0ZShjdHgsIGlucHV0LCBsZW5ndGgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3V0cHV0LCBsZW5ndGgsICZvbGVuKSkgIT0gMCkgeworICAgICAgICByZXR1cm4gcmV0OworICAgIH0KKworICAgIGlmICgocmV0ID0gbWJlZHRsc19nY21fZmluaXNoKGN0eCwgTlVMTCwgMCwgJm9sZW4sIHRhZywgdGFnX2xlbikpICE9IDApIHsKKyAgICAgICAgcmV0dXJuIHJldDsKKyAgICB9CisKKyAgICByZXR1cm4gMDsKK30KKworaW50IG1iZWR0bHNfZ2NtX2F1dGhfZGVjcnlwdChtYmVkdGxzX2djbV9jb250ZXh0ICpjdHgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBsZW5ndGgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgKml2LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgaXZfbGVuLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1bnNpZ25lZCBjaGFyICphZGQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBhZGRfbGVuLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1bnNpZ25lZCBjaGFyICp0YWcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCB0YWdfbGVuLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1bnNpZ25lZCBjaGFyICppbnB1dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgY2hhciAqb3V0cHV0KQoreworICAgIGludCByZXQgPSBNQkVEVExTX0VSUl9FUlJPUl9DT1JSVVBUSU9OX0RFVEVDVEVEOworICAgIHVuc2lnbmVkIGNoYXIgY2hlY2tfdGFnWzE2XTsKKyAgICBpbnQgZGlmZjsKKworICAgIGlmICgocmV0ID0gbWJlZHRsc19nY21fY3J5cHRfYW5kX3RhZyhjdHgsIE1CRURUTFNfR0NNX0RFQ1JZUFQsIGxlbmd0aCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXYsIGl2X2xlbiwgYWRkLCBhZGRfbGVuLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnB1dCwgb3V0cHV0LCB0YWdfbGVuLCBjaGVja190YWcpKSAhPSAwKSB7CisgICAgICAgIHJldHVybiByZXQ7CisgICAgfQorCisgICAgLyogQ2hlY2sgdGFnIGluICJjb25zdGFudC10aW1lIiAqLworICAgIGRpZmYgPSBtYmVkdGxzX2N0X21lbWNtcCh0YWcsIGNoZWNrX3RhZywgdGFnX2xlbik7CisKKyAgICBpZiAoZGlmZiAhPSAwKSB7CisgICAgICAgIG1iZWR0bHNfcGxhdGZvcm1femVyb2l6ZShvdXRwdXQsIGxlbmd0aCk7CisgICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9HQ01fQVVUSF9GQUlMRUQ7CisgICAgfQorCisgICAgcmV0dXJuIDA7Cit9CisKK3ZvaWQgbWJlZHRsc19nY21fZnJlZShtYmVkdGxzX2djbV9jb250ZXh0ICpjdHgpCit7CisgICAgaWYgKGN0eCA9PSBOVUxMKSB7CisgICAgICAgIHJldHVybjsKKyAgICB9CisjaWYgZGVmaW5lZChNQkVEVExTX0JMT0NLX0NJUEhFUl9DKQorICAgIG1iZWR0bHNfYmxvY2tfY2lwaGVyX2ZyZWUoJmN0eC0+YmxvY2tfY2lwaGVyX2N0eCk7CisjZWxzZQorICAgIG1iZWR0bHNfY2lwaGVyX2ZyZWUoJmN0eC0+Y2lwaGVyX2N0eCk7CisjZW5kaWYKKyAgICBtYmVkdGxzX3BsYXRmb3JtX3plcm9pemUoY3R4LCBzaXplb2YobWJlZHRsc19nY21fY29udGV4dCkpOworfQorCisjaWYgZGVmaW5lZChNQkVEVExTX1NFTEZfVEVTVCkgJiYgZGVmaW5lZChNQkVEVExTX0NDTV9HQ01fQ0FOX0FFUykKKy8qCisgKiBBRVMtR0NNIHRlc3QgdmVjdG9ycyBmcm9tOgorICoKKyAqIGh0dHA6Ly9jc3JjLm5pc3QuZ292L2dyb3Vwcy9TVE0vY2F2cC9kb2N1bWVudHMvbWFjL2djbXRlc3R2ZWN0b3JzLnppcAorICovCisjZGVmaW5lIE1BWF9URVNUUyAgIDYKKworc3RhdGljIGNvbnN0IGludCBrZXlfaW5kZXhfdGVzdF9kYXRhW01BWF9URVNUU10gPQoreyAwLCAwLCAxLCAxLCAxLCAxIH07CisKK3N0YXRpYyBjb25zdCB1bnNpZ25lZCBjaGFyIGtleV90ZXN0X2RhdGFbXVszMl0gPQoreworICAgIHsgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKKyAgICAgIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCisgICAgICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAorICAgICAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCB9LAorICAgIHsgMHhmZSwgMHhmZiwgMHhlOSwgMHg5MiwgMHg4NiwgMHg2NSwgMHg3MywgMHgxYywKKyAgICAgIDB4NmQsIDB4NmEsIDB4OGYsIDB4OTQsIDB4NjcsIDB4MzAsIDB4ODMsIDB4MDgsCisgICAgICAweGZlLCAweGZmLCAweGU5LCAweDkyLCAweDg2LCAweDY1LCAweDczLCAweDFjLAorICAgICAgMHg2ZCwgMHg2YSwgMHg4ZiwgMHg5NCwgMHg2NywgMHgzMCwgMHg4MywgMHgwOCB9LAorfTsKKworc3RhdGljIGNvbnN0IHNpemVfdCBpdl9sZW5fdGVzdF9kYXRhW01BWF9URVNUU10gPQoreyAxMiwgMTIsIDEyLCAxMiwgOCwgNjAgfTsKKworc3RhdGljIGNvbnN0IGludCBpdl9pbmRleF90ZXN0X2RhdGFbTUFYX1RFU1RTXSA9Cit7IDAsIDAsIDEsIDEsIDEsIDIgfTsKKworc3RhdGljIGNvbnN0IHVuc2lnbmVkIGNoYXIgaXZfdGVzdF9kYXRhW11bNjRdID0KK3sKKyAgICB7IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCisgICAgICAweDAwLCAweDAwLCAweDAwLCAweDAwIH0sCisgICAgeyAweGNhLCAweGZlLCAweGJhLCAweGJlLCAweGZhLCAweGNlLCAweGRiLCAweGFkLAorICAgICAgMHhkZSwgMHhjYSwgMHhmOCwgMHg4OCB9LAorICAgIHsgMHg5MywgMHgxMywgMHgyMiwgMHg1ZCwgMHhmOCwgMHg4NCwgMHgwNiwgMHhlNSwKKyAgICAgIDB4NTUsIDB4OTAsIDB4OWMsIDB4NWEsIDB4ZmYsIDB4NTIsIDB4NjksIDB4YWEsCisgICAgICAweDZhLCAweDdhLCAweDk1LCAweDM4LCAweDUzLCAweDRmLCAweDdkLCAweGExLAorICAgICAgMHhlNCwgMHhjMywgMHgwMywgMHhkMiwgMHhhMywgMHgxOCwgMHhhNywgMHgyOCwKKyAgICAgIDB4YzMsIDB4YzAsIDB4YzksIDB4NTEsIDB4NTYsIDB4ODAsIDB4OTUsIDB4MzksCisgICAgICAweGZjLCAweGYwLCAweGUyLCAweDQyLCAweDlhLCAweDZiLCAweDUyLCAweDU0LAorICAgICAgMHgxNiwgMHhhZSwgMHhkYiwgMHhmNSwgMHhhMCwgMHhkZSwgMHg2YSwgMHg1NywKKyAgICAgIDB4YTYsIDB4MzcsIDB4YjMsIDB4OWIgfSwKK307CisKK3N0YXRpYyBjb25zdCBzaXplX3QgYWRkX2xlbl90ZXN0X2RhdGFbTUFYX1RFU1RTXSA9Cit7IDAsIDAsIDAsIDIwLCAyMCwgMjAgfTsKKworc3RhdGljIGNvbnN0IGludCBhZGRfaW5kZXhfdGVzdF9kYXRhW01BWF9URVNUU10gPQoreyAwLCAwLCAwLCAxLCAxLCAxIH07CisKK3N0YXRpYyBjb25zdCB1bnNpZ25lZCBjaGFyIGFkZGl0aW9uYWxfdGVzdF9kYXRhW11bNjRdID0KK3sKKyAgICB7IDB4MDAgfSwKKyAgICB7IDB4ZmUsIDB4ZWQsIDB4ZmEsIDB4Y2UsIDB4ZGUsIDB4YWQsIDB4YmUsIDB4ZWYsCisgICAgICAweGZlLCAweGVkLCAweGZhLCAweGNlLCAweGRlLCAweGFkLCAweGJlLCAweGVmLAorICAgICAgMHhhYiwgMHhhZCwgMHhkYSwgMHhkMiB9LAorfTsKKworc3RhdGljIGNvbnN0IHNpemVfdCBwdF9sZW5fdGVzdF9kYXRhW01BWF9URVNUU10gPQoreyAwLCAxNiwgNjQsIDYwLCA2MCwgNjAgfTsKKworc3RhdGljIGNvbnN0IGludCBwdF9pbmRleF90ZXN0X2RhdGFbTUFYX1RFU1RTXSA9Cit7IDAsIDAsIDEsIDEsIDEsIDEgfTsKKworc3RhdGljIGNvbnN0IHVuc2lnbmVkIGNoYXIgcHRfdGVzdF9kYXRhW11bNjRdID0KK3sKKyAgICB7IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCisgICAgICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwIH0sCisgICAgeyAweGQ5LCAweDMxLCAweDMyLCAweDI1LCAweGY4LCAweDg0LCAweDA2LCAweGU1LAorICAgICAgMHhhNSwgMHg1OSwgMHgwOSwgMHhjNSwgMHhhZiwgMHhmNSwgMHgyNiwgMHg5YSwKKyAgICAgIDB4ODYsIDB4YTcsIDB4YTksIDB4NTMsIDB4MTUsIDB4MzQsIDB4ZjcsIDB4ZGEsCisgICAgICAweDJlLCAweDRjLCAweDMwLCAweDNkLCAweDhhLCAweDMxLCAweDhhLCAweDcyLAorICAgICAgMHgxYywgMHgzYywgMHgwYywgMHg5NSwgMHg5NSwgMHg2OCwgMHgwOSwgMHg1MywKKyAgICAgIDB4MmYsIDB4Y2YsIDB4MGUsIDB4MjQsIDB4NDksIDB4YTYsIDB4YjUsIDB4MjUsCisgICAgICAweGIxLCAweDZhLCAweGVkLCAweGY1LCAweGFhLCAweDBkLCAweGU2LCAweDU3LAorICAgICAgMHhiYSwgMHg2MywgMHg3YiwgMHgzOSwgMHgxYSwgMHhhZiwgMHhkMiwgMHg1NSB9LAorfTsKKworc3RhdGljIGNvbnN0IHVuc2lnbmVkIGNoYXIgY3RfdGVzdF9kYXRhW11bNjRdID0KK3sKKyAgICB7IDB4MDAgfSwKKyAgICB7IDB4MDMsIDB4ODgsIDB4ZGEsIDB4Y2UsIDB4NjAsIDB4YjYsIDB4YTMsIDB4OTIsCisgICAgICAweGYzLCAweDI4LCAweGMyLCAweGI5LCAweDcxLCAweGIyLCAweGZlLCAweDc4IH0sCisgICAgeyAweDQyLCAweDgzLCAweDFlLCAweGMyLCAweDIxLCAweDc3LCAweDc0LCAweDI0LAorICAgICAgMHg0YiwgMHg3MiwgMHgyMSwgMHhiNywgMHg4NCwgMHhkMCwgMHhkNCwgMHg5YywKKyAgICAgIDB4ZTMsIDB4YWEsIDB4MjEsIDB4MmYsIDB4MmMsIDB4MDIsIDB4YTQsIDB4ZTAsCisgICAgICAweDM1LCAweGMxLCAweDdlLCAweDIzLCAweDI5LCAweGFjLCAweGExLCAweDJlLAorICAgICAgMHgyMSwgMHhkNSwgMHgxNCwgMHhiMiwgMHg1NCwgMHg2NiwgMHg5MywgMHgxYywKKyAgICAgIDB4N2QsIDB4OGYsIDB4NmEsIDB4NWEsIDB4YWMsIDB4ODQsIDB4YWEsIDB4MDUsCisgICAgICAweDFiLCAweGEzLCAweDBiLCAweDM5LCAweDZhLCAweDBhLCAweGFjLCAweDk3LAorICAgICAgMHgzZCwgMHg1OCwgMHhlMCwgMHg5MSwgMHg0NywgMHgzZiwgMHg1OSwgMHg4NSB9LAorICAgIHsgMHg0MiwgMHg4MywgMHgxZSwgMHhjMiwgMHgyMSwgMHg3NywgMHg3NCwgMHgyNCwKKyAgICAgIDB4NGIsIDB4NzIsIDB4MjEsIDB4YjcsIDB4ODQsIDB4ZDAsIDB4ZDQsIDB4OWMsCisgICAgICAweGUzLCAweGFhLCAweDIxLCAweDJmLCAweDJjLCAweDAyLCAweGE0LCAweGUwLAorICAgICAgMHgzNSwgMHhjMSwgMHg3ZSwgMHgyMywgMHgyOSwgMHhhYywgMHhhMSwgMHgyZSwKKyAgICAgIDB4MjEsIDB4ZDUsIDB4MTQsIDB4YjIsIDB4NTQsIDB4NjYsIDB4OTMsIDB4MWMsCisgICAgICAweDdkLCAweDhmLCAweDZhLCAweDVhLCAweGFjLCAweDg0LCAweGFhLCAweDA1LAorICAgICAgMHgxYiwgMHhhMywgMHgwYiwgMHgzOSwgMHg2YSwgMHgwYSwgMHhhYywgMHg5NywKKyAgICAgIDB4M2QsIDB4NTgsIDB4ZTAsIDB4OTEgfSwKKyAgICB7IDB4NjEsIDB4MzUsIDB4M2IsIDB4NGMsIDB4MjgsIDB4MDYsIDB4OTMsIDB4NGEsCisgICAgICAweDc3LCAweDdmLCAweGY1LCAweDFmLCAweGEyLCAweDJhLCAweDQ3LCAweDU1LAorICAgICAgMHg2OSwgMHg5YiwgMHgyYSwgMHg3MSwgMHg0ZiwgMHhjZCwgMHhjNiwgMHhmOCwKKyAgICAgIDB4MzcsIDB4NjYsIDB4ZTUsIDB4ZjksIDB4N2IsIDB4NmMsIDB4NzQsIDB4MjMsCisgICAgICAweDczLCAweDgwLCAweDY5LCAweDAwLCAweGU0LCAweDlmLCAweDI0LCAweGIyLAorICAgICAgMHgyYiwgMHgwOSwgMHg3NSwgMHg0NCwgMHhkNCwgMHg4OSwgMHg2YiwgMHg0MiwKKyAgICAgIDB4NDksIDB4ODksIDB4YjUsIDB4ZTEsIDB4ZWIsIDB4YWMsIDB4MGYsIDB4MDcsCisgICAgICAweGMyLCAweDNmLCAweDQ1LCAweDk4IH0sCisgICAgeyAweDhjLCAweGUyLCAweDQ5LCAweDk4LCAweDYyLCAweDU2LCAweDE1LCAweGI2LAorICAgICAgMHgwMywgMHhhMCwgMHgzMywgMHhhYywgMHhhMSwgMHgzZiwgMHhiOCwgMHg5NCwKKyAgICAgIDB4YmUsIDB4OTEsIDB4MTIsIDB4YTUsIDB4YzMsIDB4YTIsIDB4MTEsIDB4YTgsCisgICAgICAweGJhLCAweDI2LCAweDJhLCAweDNjLCAweGNhLCAweDdlLCAweDJjLCAweGE3LAorICAgICAgMHgwMSwgMHhlNCwgMHhhOSwgMHhhNCwgMHhmYiwgMHhhNCwgMHgzYywgMHg5MCwKKyAgICAgIDB4Y2MsIDB4ZGMsIDB4YjIsIDB4ODEsIDB4ZDQsIDB4OGMsIDB4N2MsIDB4NmYsCisgICAgICAweGQ2LCAweDI4LCAweDc1LCAweGQyLCAweGFjLCAweGE0LCAweDE3LCAweDAzLAorICAgICAgMHg0YywgMHgzNCwgMHhhZSwgMHhlNSB9LAorI2lmICFkZWZpbmVkKE1CRURUTFNfQUVTX09OTFlfMTI4X0JJVF9LRVlfTEVOR1RIKQorICAgIHsgMHgwMCB9LAorICAgIHsgMHg5OCwgMHhlNywgMHgyNCwgMHg3YywgMHgwNywgMHhmMCwgMHhmZSwgMHg0MSwKKyAgICAgIDB4MWMsIDB4MjYsIDB4N2UsIDB4NDMsIDB4ODQsIDB4YjAsIDB4ZjYsIDB4MDAgfSwKKyAgICB7IDB4MzksIDB4ODAsIDB4Y2EsIDB4MGIsIDB4M2MsIDB4MDAsIDB4ZTgsIDB4NDEsCisgICAgICAweGViLCAweDA2LCAweGZhLCAweGM0LCAweDg3LCAweDJhLCAweDI3LCAweDU3LAorICAgICAgMHg4NSwgMHg5ZSwgMHgxYywgMHhlYSwgMHhhNiwgMHhlZiwgMHhkOSwgMHg4NCwKKyAgICAgIDB4NjIsIDB4ODUsIDB4OTMsIDB4YjQsIDB4MGMsIDB4YTEsIDB4ZTEsIDB4OWMsCisgICAgICAweDdkLCAweDc3LCAweDNkLCAweDAwLCAweGMxLCAweDQ0LCAweGM1LCAweDI1LAorICAgICAgMHhhYywgMHg2MSwgMHg5ZCwgMHgxOCwgMHhjOCwgMHg0YSwgMHgzZiwgMHg0NywKKyAgICAgIDB4MTgsIDB4ZTIsIDB4NDQsIDB4OGIsIDB4MmYsIDB4ZTMsIDB4MjQsIDB4ZDksCisgICAgICAweGNjLCAweGRhLCAweDI3LCAweDEwLCAweGFjLCAweGFkLCAweGUyLCAweDU2IH0sCisgICAgeyAweDM5LCAweDgwLCAweGNhLCAweDBiLCAweDNjLCAweDAwLCAweGU4LCAweDQxLAorICAgICAgMHhlYiwgMHgwNiwgMHhmYSwgMHhjNCwgMHg4NywgMHgyYSwgMHgyNywgMHg1NywKKyAgICAgIDB4ODUsIDB4OWUsIDB4MWMsIDB4ZWEsIDB4YTYsIDB4ZWYsIDB4ZDksIDB4ODQsCisgICAgICAweDYyLCAweDg1LCAweDkzLCAweGI0LCAweDBjLCAweGExLCAweGUxLCAweDljLAorICAgICAgMHg3ZCwgMHg3NywgMHgzZCwgMHgwMCwgMHhjMSwgMHg0NCwgMHhjNSwgMHgyNSwKKyAgICAgIDB4YWMsIDB4NjEsIDB4OWQsIDB4MTgsIDB4YzgsIDB4NGEsIDB4M2YsIDB4NDcsCisgICAgICAweDE4LCAweGUyLCAweDQ0LCAweDhiLCAweDJmLCAweGUzLCAweDI0LCAweGQ5LAorICAgICAgMHhjYywgMHhkYSwgMHgyNywgMHgxMCB9LAorICAgIHsgMHgwZiwgMHgxMCwgMHhmNSwgMHg5OSwgMHhhZSwgMHgxNCwgMHhhMSwgMHg1NCwKKyAgICAgIDB4ZWQsIDB4MjQsIDB4YjMsIDB4NmUsIDB4MjUsIDB4MzIsIDB4NGQsIDB4YjgsCisgICAgICAweGM1LCAweDY2LCAweDYzLCAweDJlLCAweGYyLCAweGJiLCAweGIzLCAweDRmLAorICAgICAgMHg4MywgMHg0NywgMHgyOCwgMHgwZiwgMHhjNCwgMHg1MCwgMHg3MCwgMHg1NywKKyAgICAgIDB4ZmQsIDB4ZGMsIDB4MjksIDB4ZGYsIDB4OWEsIDB4NDcsIDB4MWYsIDB4NzUsCisgICAgICAweGM2LCAweDY1LCAweDQxLCAweGQ0LCAweGQ0LCAweGRhLCAweGQxLCAweGM5LAorICAgICAgMHhlOSwgMHgzYSwgMHgxOSwgMHhhNSwgMHg4ZSwgMHg4YiwgMHg0NywgMHgzZiwKKyAgICAgIDB4YTAsIDB4ZjAsIDB4NjIsIDB4ZjcgfSwKKyAgICB7IDB4ZDIsIDB4N2UsIDB4ODgsIDB4NjgsIDB4MWMsIDB4ZTMsIDB4MjQsIDB4M2MsCisgICAgICAweDQ4LCAweDMwLCAweDE2LCAweDVhLCAweDhmLCAweGRjLCAweGY5LCAweGZmLAorICAgICAgMHgxZCwgMHhlOSwgMHhhMSwgMHhkOCwgMHhlNiwgMHhiNCwgMHg0NywgMHhlZiwKKyAgICAgIDB4NmUsIDB4ZjcsIDB4YjcsIDB4OTgsIDB4MjgsIDB4NjYsIDB4NmUsIDB4NDUsCisgICAgICAweDgxLCAweGU3LCAweDkwLCAweDEyLCAweGFmLCAweDM0LCAweGRkLCAweGQ5LAorICAgICAgMHhlMiwgMHhmMCwgMHgzNywgMHg1OCwgMHg5YiwgMHgyOSwgMHgyZCwgMHhiMywKKyAgICAgIDB4ZTYsIDB4N2MsIDB4MDMsIDB4NjcsIDB4NDUsIDB4ZmEsIDB4MjIsIDB4ZTcsCisgICAgICAweGU5LCAweGI3LCAweDM3LCAweDNiIH0sCisgICAgeyAweDAwIH0sCisgICAgeyAweGNlLCAweGE3LCAweDQwLCAweDNkLCAweDRkLCAweDYwLCAweDZiLCAweDZlLAorICAgICAgMHgwNywgMHg0ZSwgMHhjNSwgMHhkMywgMHhiYSwgMHhmMywgMHg5ZCwgMHgxOCB9LAorICAgIHsgMHg1MiwgMHgyZCwgMHhjMSwgMHhmMCwgMHg5OSwgMHg1NiwgMHg3ZCwgMHgwNywKKyAgICAgIDB4ZjQsIDB4N2YsIDB4MzcsIDB4YTMsIDB4MmEsIDB4ODQsIDB4NDIsIDB4N2QsCisgICAgICAweDY0LCAweDNhLCAweDhjLCAweGRjLCAweGJmLCAweGU1LCAweGMwLCAweGM5LAorICAgICAgMHg3NSwgMHg5OCwgMHhhMiwgMHhiZCwgMHgyNSwgMHg1NSwgMHhkMSwgMHhhYSwKKyAgICAgIDB4OGMsIDB4YjAsIDB4OGUsIDB4NDgsIDB4NTksIDB4MGQsIDB4YmIsIDB4M2QsCisgICAgICAweGE3LCAweGIwLCAweDhiLCAweDEwLCAweDU2LCAweDgyLCAweDg4LCAweDM4LAorICAgICAgMHhjNSwgMHhmNiwgMHgxZSwgMHg2MywgMHg5MywgMHhiYSwgMHg3YSwgMHgwYSwKKyAgICAgIDB4YmMsIDB4YzksIDB4ZjYsIDB4NjIsIDB4ODksIDB4ODAsIDB4MTUsIDB4YWQgfSwKKyAgICB7IDB4NTIsIDB4MmQsIDB4YzEsIDB4ZjAsIDB4OTksIDB4NTYsIDB4N2QsIDB4MDcsCisgICAgICAweGY0LCAweDdmLCAweDM3LCAweGEzLCAweDJhLCAweDg0LCAweDQyLCAweDdkLAorICAgICAgMHg2NCwgMHgzYSwgMHg4YywgMHhkYywgMHhiZiwgMHhlNSwgMHhjMCwgMHhjOSwKKyAgICAgIDB4NzUsIDB4OTgsIDB4YTIsIDB4YmQsIDB4MjUsIDB4NTUsIDB4ZDEsIDB4YWEsCisgICAgICAweDhjLCAweGIwLCAweDhlLCAweDQ4LCAweDU5LCAweDBkLCAweGJiLCAweDNkLAorICAgICAgMHhhNywgMHhiMCwgMHg4YiwgMHgxMCwgMHg1NiwgMHg4MiwgMHg4OCwgMHgzOCwKKyAgICAgIDB4YzUsIDB4ZjYsIDB4MWUsIDB4NjMsIDB4OTMsIDB4YmEsIDB4N2EsIDB4MGEsCisgICAgICAweGJjLCAweGM5LCAweGY2LCAweDYyIH0sCisgICAgeyAweGMzLCAweDc2LCAweDJkLCAweGYxLCAweGNhLCAweDc4LCAweDdkLCAweDMyLAorICAgICAgMHhhZSwgMHg0NywgMHhjMSwgMHgzYiwgMHhmMSwgMHg5OCwgMHg0NCwgMHhjYiwKKyAgICAgIDB4YWYsIDB4MWEsIDB4ZTEsIDB4NGQsIDB4MGIsIDB4OTcsIDB4NmEsIDB4ZmEsCisgICAgICAweGM1LCAweDJmLCAweGY3LCAweGQ3LCAweDliLCAweGJhLCAweDlkLCAweGUwLAorICAgICAgMHhmZSwgMHhiNSwgMHg4MiwgMHhkMywgMHgzOSwgMHgzNCwgMHhhNCwgMHhmMCwKKyAgICAgIDB4OTUsIDB4NGMsIDB4YzIsIDB4MzYsIDB4M2IsIDB4YzcsIDB4M2YsIDB4NzgsCisgICAgICAweDYyLCAweGFjLCAweDQzLCAweDBlLCAweDY0LCAweGFiLCAweGU0LCAweDk5LAorICAgICAgMHhmNCwgMHg3YywgMHg5YiwgMHgxZiB9LAorICAgIHsgMHg1YSwgMHg4ZCwgMHhlZiwgMHgyZiwgMHgwYywgMHg5ZSwgMHg1MywgMHhmMSwKKyAgICAgIDB4ZjcsIDB4NWQsIDB4NzgsIDB4NTMsIDB4NjUsIDB4OWUsIDB4MmEsIDB4MjAsCisgICAgICAweGVlLCAweGIyLCAweGIyLCAweDJhLCAweGFmLCAweGRlLCAweDY0LCAweDE5LAorICAgICAgMHhhMCwgMHg1OCwgMHhhYiwgMHg0ZiwgMHg2ZiwgMHg3NCwgMHg2YiwgMHhmNCwKKyAgICAgIDB4MGYsIDB4YzAsIDB4YzMsIDB4YjcsIDB4ODAsIDB4ZjIsIDB4NDQsIDB4NDUsCisgICAgICAweDJkLCAweGEzLCAweGViLCAweGYxLCAweGM1LCAweGQ4LCAweDJjLCAweGRlLAorICAgICAgMHhhMiwgMHg0MSwgMHg4OSwgMHg5NywgMHgyMCwgMHgwZSwgMHhmOCwgMHgyZSwKKyAgICAgIDB4NDQsIDB4YWUsIDB4N2UsIDB4M2YgfSwKKyNlbmRpZiAvKiAhTUJFRFRMU19BRVNfT05MWV8xMjhfQklUX0tFWV9MRU5HVEggKi8KK307CisKK3N0YXRpYyBjb25zdCB1bnNpZ25lZCBjaGFyIHRhZ190ZXN0X2RhdGFbXVsxNl0gPQoreworICAgIHsgMHg1OCwgMHhlMiwgMHhmYywgMHhjZSwgMHhmYSwgMHg3ZSwgMHgzMCwgMHg2MSwKKyAgICAgIDB4MzYsIDB4N2YsIDB4MWQsIDB4NTcsIDB4YTQsIDB4ZTcsIDB4NDUsIDB4NWEgfSwKKyAgICB7IDB4YWIsIDB4NmUsIDB4NDcsIDB4ZDQsIDB4MmMsIDB4ZWMsIDB4MTMsIDB4YmQsCisgICAgICAweGY1LCAweDNhLCAweDY3LCAweGIyLCAweDEyLCAweDU3LCAweGJkLCAweGRmIH0sCisgICAgeyAweDRkLCAweDVjLCAweDJhLCAweGYzLCAweDI3LCAweGNkLCAweDY0LCAweGE2LAorICAgICAgMHgyYywgMHhmMywgMHg1YSwgMHhiZCwgMHgyYiwgMHhhNiwgMHhmYSwgMHhiNCB9LAorICAgIHsgMHg1YiwgMHhjOSwgMHg0ZiwgMHhiYywgMHgzMiwgMHgyMSwgMHhhNSwgMHhkYiwKKyAgICAgIDB4OTQsIDB4ZmEsIDB4ZTksIDB4NWEsIDB4ZTcsIDB4MTIsIDB4MWEsIDB4NDcgfSwKKyAgICB7IDB4MzYsIDB4MTIsIDB4ZDIsIDB4ZTcsIDB4OWUsIDB4M2IsIDB4MDcsIDB4ODUsCisgICAgICAweDU2LCAweDFiLCAweGUxLCAweDRhLCAweGFjLCAweGEyLCAweGZjLCAweGNiIH0sCisgICAgeyAweDYxLCAweDljLCAweGM1LCAweGFlLCAweGZmLCAweGZlLCAweDBiLCAweGZhLAorICAgICAgMHg0NiwgMHgyYSwgMHhmNCwgMHgzYywgMHgxNiwgMHg5OSwgMHhkMCwgMHg1MCB9LAorI2lmICFkZWZpbmVkKE1CRURUTFNfQUVTX09OTFlfMTI4X0JJVF9LRVlfTEVOR1RIKQorICAgIHsgMHhjZCwgMHgzMywgMHhiMiwgMHg4YSwgMHhjNywgMHg3MywgMHhmNywgMHg0YiwKKyAgICAgIDB4YTAsIDB4MGUsIDB4ZDEsIDB4ZjMsIDB4MTIsIDB4NTcsIDB4MjQsIDB4MzUgfSwKKyAgICB7IDB4MmYsIDB4ZjUsIDB4OGQsIDB4ODAsIDB4MDMsIDB4MzksIDB4MjcsIDB4YWIsCisgICAgICAweDhlLCAweGY0LCAweGQ0LCAweDU4LCAweDc1LCAweDE0LCAweGYwLCAweGZiIH0sCisgICAgeyAweDk5LCAweDI0LCAweGE3LCAweGM4LCAweDU4LCAweDczLCAweDM2LCAweGJmLAorICAgICAgMHhiMSwgMHgxOCwgMHgwMiwgMHg0ZCwgMHhiOCwgMHg2NywgMHg0YSwgMHgxNCB9LAorICAgIHsgMHgyNSwgMHgxOSwgMHg0OSwgMHg4ZSwgMHg4MCwgMHhmMSwgMHg0NywgMHg4ZiwKKyAgICAgIDB4MzcsIDB4YmEsIDB4NTUsIDB4YmQsIDB4NmQsIDB4MjcsIDB4NjEsIDB4OGMgfSwKKyAgICB7IDB4NjUsIDB4ZGMsIDB4YzUsIDB4N2YsIDB4Y2YsIDB4NjIsIDB4M2EsIDB4MjQsCisgICAgICAweDA5LCAweDRmLCAweGNjLCAweGE0LCAweDBkLCAweDM1LCAweDMzLCAweGY4IH0sCisgICAgeyAweGRjLCAweGY1LCAweDY2LCAweGZmLCAweDI5LCAweDFjLCAweDI1LCAweGJiLAorICAgICAgMHhiOCwgMHg1NiwgMHg4ZiwgMHhjMywgMHhkMywgMHg3NiwgMHhhNiwgMHhkOSB9LAorICAgIHsgMHg1MywgMHgwZiwgMHg4YSwgMHhmYiwgMHhjNywgMHg0NSwgMHgzNiwgMHhiOSwKKyAgICAgIDB4YTksIDB4NjMsIDB4YjQsIDB4ZjEsIDB4YzQsIDB4Y2IsIDB4NzMsIDB4OGIgfSwKKyAgICB7IDB4ZDAsIDB4ZDEsIDB4YzgsIDB4YTcsIDB4OTksIDB4OTksIDB4NmIsIDB4ZjAsCisgICAgICAweDI2LCAweDViLCAweDk4LCAweGI1LCAweGQ0LCAweDhhLCAweGI5LCAweDE5IH0sCisgICAgeyAweGIwLCAweDk0LCAweGRhLCAweGM1LCAweGQ5LCAweDM0LCAweDcxLCAweGJkLAorICAgICAgMHhlYywgMHgxYSwgMHg1MCwgMHgyMiwgMHg3MCwgMHhlMywgMHhjYywgMHg2YyB9LAorICAgIHsgMHg3NiwgMHhmYywgMHg2ZSwgMHhjZSwgMHgwZiwgMHg0ZSwgMHgxNywgMHg2OCwKKyAgICAgIDB4Y2QsIDB4ZGYsIDB4ODgsIDB4NTMsIDB4YmIsIDB4MmQsIDB4NTUsIDB4MWIgfSwKKyAgICB7IDB4M2EsIDB4MzMsIDB4N2QsIDB4YmYsIDB4NDYsIDB4YTcsIDB4OTIsIDB4YzQsCisgICAgICAweDVlLCAweDQ1LCAweDQ5LCAweDEzLCAweGZlLCAweDJlLCAweGE4LCAweGYyIH0sCisgICAgeyAweGE0LCAweDRhLCAweDgyLCAweDY2LCAweGVlLCAweDFjLCAweDhlLCAweGIwLAorICAgICAgMHhjOCwgMHhiNSwgMHhkNCwgMHhjZiwgMHg1YSwgMHhlOSwgMHhmMSwgMHg5YSB9LAorI2VuZGlmIC8qICFNQkVEVExTX0FFU19PTkxZXzEyOF9CSVRfS0VZX0xFTkdUSCAqLworfTsKKworaW50IG1iZWR0bHNfZ2NtX3NlbGZfdGVzdChpbnQgdmVyYm9zZSkKK3sKKyAgICBtYmVkdGxzX2djbV9jb250ZXh0IGN0eDsKKyAgICB1bnNpZ25lZCBjaGFyIGJ1Zls2NF07CisgICAgdW5zaWduZWQgY2hhciB0YWdfYnVmWzE2XTsKKyAgICBpbnQgaSwgaiwgcmV0OworICAgIG1iZWR0bHNfY2lwaGVyX2lkX3QgY2lwaGVyID0gTUJFRFRMU19DSVBIRVJfSURfQUVTOworICAgIHNpemVfdCBvbGVuOworCisgICAgaWYgKHZlcmJvc2UgIT0gMCkgeworI2lmIGRlZmluZWQoTUJFRFRMU19BRVNOSV9IQVZFX0NPREUpCisgICAgICAgIGlmIChtYmVkdGxzX2Flc25pX2hhc19zdXBwb3J0KE1CRURUTFNfQUVTTklfQ0xNVUwpKSB7CisgICAgICAgICAgICBtYmVkdGxzX3ByaW50ZigiICBHQ00gbm90ZTogdXNpbmcgQUVTTkkuXG4iKTsKKyAgICAgICAgfSBlbHNlCisjZW5kaWYKKworI2lmIGRlZmluZWQoTUJFRFRMU19BRVNDRV9IQVZFX0NPREUpCisgICAgICAgIGlmIChNQkVEVExTX0FFU0NFX0hBU19TVVBQT1JUKCkpIHsKKyAgICAgICAgICAgIG1iZWR0bHNfcHJpbnRmKCIgIEdDTSBub3RlOiB1c2luZyBBRVNDRS5cbiIpOworICAgICAgICB9IGVsc2UKKyNlbmRpZgorCisgICAgICAgIG1iZWR0bHNfcHJpbnRmKCIgIEdDTSBub3RlOiBidWlsdC1pbiBpbXBsZW1lbnRhdGlvbi5cbiIpOworICAgIH0KKworICAgIHN0YXRpYyBjb25zdCBpbnQgbG9vcF9saW1pdCA9CisgICAgICAgIChzaXplb2YoY3RfdGVzdF9kYXRhKSAvIHNpemVvZigqY3RfdGVzdF9kYXRhKSkgLyBNQVhfVEVTVFM7CisKKyAgICBmb3IgKGogPSAwOyBqIDwgbG9vcF9saW1pdDsgaisrKSB7CisgICAgICAgIGludCBrZXlfbGVuID0gMTI4ICsgNjQgKiBqOworCisgICAgICAgIGZvciAoaSA9IDA7IGkgPCBNQVhfVEVTVFM7IGkrKykgeworICAgICAgICAgICAgaWYgKHZlcmJvc2UgIT0gMCkgeworICAgICAgICAgICAgICAgIG1iZWR0bHNfcHJpbnRmKCIgIEFFUy1HQ00tJTNkICMlZCAoJXMpOiAiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtleV9sZW4sIGksICJlbmMiKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgbWJlZHRsc19nY21faW5pdCgmY3R4KTsKKworICAgICAgICAgICAgcmV0ID0gbWJlZHRsc19nY21fc2V0a2V5KCZjdHgsIGNpcGhlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXlfdGVzdF9kYXRhW2tleV9pbmRleF90ZXN0X2RhdGFbaV1dLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtleV9sZW4pOworICAgICAgICAgICAgLyoKKyAgICAgICAgICAgICAqIEFFUy0xOTIgaXMgYW4gb3B0aW9uYWwgZmVhdHVyZSB0aGF0IG1heSBiZSB1bmF2YWlsYWJsZSB3aGVuCisgICAgICAgICAgICAgKiB0aGVyZSBpcyBhbiBhbHRlcm5hdGl2ZSB1bmRlcmx5aW5nIGltcGxlbWVudGF0aW9uIHN1Y2ggYXMgYQorICAgICAgICAgICAgICogUFNBIGRyaXZlci4KKyAgICAgICAgICAgICAqLworICAgICAgICAgICAgaWYgKHJldCA9PSBNQkVEVExTX0VSUl9QTEFURk9STV9GRUFUVVJFX1VOU1VQUE9SVEVEICYmIGtleV9sZW4gPT0gMTkyKSB7CisgICAgICAgICAgICAgICAgbWJlZHRsc19wcmludGYoInNraXBwZWRcbiIpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfSBlbHNlIGlmIChyZXQgIT0gMCkgeworICAgICAgICAgICAgICAgIGdvdG8gZXhpdDsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgcmV0ID0gbWJlZHRsc19nY21fY3J5cHRfYW5kX3RhZygmY3R4LCBNQkVEVExTX0dDTV9FTkNSWVBULAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwdF9sZW5fdGVzdF9kYXRhW2ldLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpdl90ZXN0X2RhdGFbaXZfaW5kZXhfdGVzdF9kYXRhW2ldXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXZfbGVuX3Rlc3RfZGF0YVtpXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWRkaXRpb25hbF90ZXN0X2RhdGFbYWRkX2luZGV4X3Rlc3RfZGF0YVtpXV0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFkZF9sZW5fdGVzdF9kYXRhW2ldLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwdF90ZXN0X2RhdGFbcHRfaW5kZXhfdGVzdF9kYXRhW2ldXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnVmLCAxNiwgdGFnX2J1Zik7CisgICAgICAgICAgICBpZiAocmV0ICE9IDApIHsKKyAgICAgICAgICAgICAgICBnb3RvIGV4aXQ7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGlmIChtZW1jbXAoYnVmLCBjdF90ZXN0X2RhdGFbaiAqIDYgKyBpXSwKKyAgICAgICAgICAgICAgICAgICAgICAgcHRfbGVuX3Rlc3RfZGF0YVtpXSkgIT0gMCB8fAorICAgICAgICAgICAgICAgIG1lbWNtcCh0YWdfYnVmLCB0YWdfdGVzdF9kYXRhW2ogKiA2ICsgaV0sIDE2KSAhPSAwKSB7CisgICAgICAgICAgICAgICAgcmV0ID0gMTsKKyAgICAgICAgICAgICAgICBnb3RvIGV4aXQ7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIG1iZWR0bHNfZ2NtX2ZyZWUoJmN0eCk7CisKKyAgICAgICAgICAgIGlmICh2ZXJib3NlICE9IDApIHsKKyAgICAgICAgICAgICAgICBtYmVkdGxzX3ByaW50ZigicGFzc2VkXG4iKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgbWJlZHRsc19nY21faW5pdCgmY3R4KTsKKworICAgICAgICAgICAgaWYgKHZlcmJvc2UgIT0gMCkgeworICAgICAgICAgICAgICAgIG1iZWR0bHNfcHJpbnRmKCIgIEFFUy1HQ00tJTNkICMlZCAoJXMpOiAiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtleV9sZW4sIGksICJkZWMiKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgcmV0ID0gbWJlZHRsc19nY21fc2V0a2V5KCZjdHgsIGNpcGhlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXlfdGVzdF9kYXRhW2tleV9pbmRleF90ZXN0X2RhdGFbaV1dLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtleV9sZW4pOworICAgICAgICAgICAgaWYgKHJldCAhPSAwKSB7CisgICAgICAgICAgICAgICAgZ290byBleGl0OworICAgICAgICAgICAgfQorCisgICAgICAgICAgICByZXQgPSBtYmVkdGxzX2djbV9jcnlwdF9hbmRfdGFnKCZjdHgsIE1CRURUTFNfR0NNX0RFQ1JZUFQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB0X2xlbl90ZXN0X2RhdGFbaV0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGl2X3Rlc3RfZGF0YVtpdl9pbmRleF90ZXN0X2RhdGFbaV1dLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpdl9sZW5fdGVzdF9kYXRhW2ldLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhZGRpdGlvbmFsX3Rlc3RfZGF0YVthZGRfaW5kZXhfdGVzdF9kYXRhW2ldXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWRkX2xlbl90ZXN0X2RhdGFbaV0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGN0X3Rlc3RfZGF0YVtqICogNiArIGldLCBidWYsIDE2LCB0YWdfYnVmKTsKKworICAgICAgICAgICAgaWYgKHJldCAhPSAwKSB7CisgICAgICAgICAgICAgICAgZ290byBleGl0OworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpZiAobWVtY21wKGJ1ZiwgcHRfdGVzdF9kYXRhW3B0X2luZGV4X3Rlc3RfZGF0YVtpXV0sCisgICAgICAgICAgICAgICAgICAgICAgIHB0X2xlbl90ZXN0X2RhdGFbaV0pICE9IDAgfHwKKyAgICAgICAgICAgICAgICBtZW1jbXAodGFnX2J1ZiwgdGFnX3Rlc3RfZGF0YVtqICogNiArIGldLCAxNikgIT0gMCkgeworICAgICAgICAgICAgICAgIHJldCA9IDE7CisgICAgICAgICAgICAgICAgZ290byBleGl0OworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBtYmVkdGxzX2djbV9mcmVlKCZjdHgpOworCisgICAgICAgICAgICBpZiAodmVyYm9zZSAhPSAwKSB7CisgICAgICAgICAgICAgICAgbWJlZHRsc19wcmludGYoInBhc3NlZFxuIik7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIG1iZWR0bHNfZ2NtX2luaXQoJmN0eCk7CisKKyAgICAgICAgICAgIGlmICh2ZXJib3NlICE9IDApIHsKKyAgICAgICAgICAgICAgICBtYmVkdGxzX3ByaW50ZigiICBBRVMtR0NNLSUzZCAjJWQgc3BsaXQgKCVzKTogIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXlfbGVuLCBpLCAiZW5jIik7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHJldCA9IG1iZWR0bHNfZ2NtX3NldGtleSgmY3R4LCBjaXBoZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga2V5X3Rlc3RfZGF0YVtrZXlfaW5kZXhfdGVzdF9kYXRhW2ldXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXlfbGVuKTsKKyAgICAgICAgICAgIGlmIChyZXQgIT0gMCkgeworICAgICAgICAgICAgICAgIGdvdG8gZXhpdDsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgcmV0ID0gbWJlZHRsc19nY21fc3RhcnRzKCZjdHgsIE1CRURUTFNfR0NNX0VOQ1JZUFQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXZfdGVzdF9kYXRhW2l2X2luZGV4X3Rlc3RfZGF0YVtpXV0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXZfbGVuX3Rlc3RfZGF0YVtpXSk7CisgICAgICAgICAgICBpZiAocmV0ICE9IDApIHsKKyAgICAgICAgICAgICAgICBnb3RvIGV4aXQ7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHJldCA9IG1iZWR0bHNfZ2NtX3VwZGF0ZV9hZCgmY3R4LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFkZGl0aW9uYWxfdGVzdF9kYXRhW2FkZF9pbmRleF90ZXN0X2RhdGFbaV1dLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFkZF9sZW5fdGVzdF9kYXRhW2ldKTsKKyAgICAgICAgICAgIGlmIChyZXQgIT0gMCkgeworICAgICAgICAgICAgICAgIGdvdG8gZXhpdDsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaWYgKHB0X2xlbl90ZXN0X2RhdGFbaV0gPiAzMikgeworICAgICAgICAgICAgICAgIHNpemVfdCByZXN0X2xlbiA9IHB0X2xlbl90ZXN0X2RhdGFbaV0gLSAzMjsKKyAgICAgICAgICAgICAgICByZXQgPSBtYmVkdGxzX2djbV91cGRhdGUoJmN0eCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHRfdGVzdF9kYXRhW3B0X2luZGV4X3Rlc3RfZGF0YVtpXV0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDMyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBidWYsIHNpemVvZihidWYpLCAmb2xlbik7CisgICAgICAgICAgICAgICAgaWYgKHJldCAhPSAwKSB7CisgICAgICAgICAgICAgICAgICAgIGdvdG8gZXhpdDsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaWYgKG9sZW4gIT0gMzIpIHsKKyAgICAgICAgICAgICAgICAgICAgZ290byBleGl0OworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIHJldCA9IG1iZWR0bHNfZ2NtX3VwZGF0ZSgmY3R4LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwdF90ZXN0X2RhdGFbcHRfaW5kZXhfdGVzdF9kYXRhW2ldXSArIDMyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXN0X2xlbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnVmICsgMzIsIHNpemVvZihidWYpIC0gMzIsICZvbGVuKTsKKyAgICAgICAgICAgICAgICBpZiAocmV0ICE9IDApIHsKKyAgICAgICAgICAgICAgICAgICAgZ290byBleGl0OworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZiAob2xlbiAhPSByZXN0X2xlbikgeworICAgICAgICAgICAgICAgICAgICBnb3RvIGV4aXQ7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICByZXQgPSBtYmVkdGxzX2djbV91cGRhdGUoJmN0eCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHRfdGVzdF9kYXRhW3B0X2luZGV4X3Rlc3RfZGF0YVtpXV0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB0X2xlbl90ZXN0X2RhdGFbaV0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ1Ziwgc2l6ZW9mKGJ1ZiksICZvbGVuKTsKKyAgICAgICAgICAgICAgICBpZiAocmV0ICE9IDApIHsKKyAgICAgICAgICAgICAgICAgICAgZ290byBleGl0OworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZiAob2xlbiAhPSBwdF9sZW5fdGVzdF9kYXRhW2ldKSB7CisgICAgICAgICAgICAgICAgICAgIGdvdG8gZXhpdDsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHJldCA9IG1iZWR0bHNfZ2NtX2ZpbmlzaCgmY3R4LCBOVUxMLCAwLCAmb2xlbiwgdGFnX2J1ZiwgMTYpOworICAgICAgICAgICAgaWYgKHJldCAhPSAwKSB7CisgICAgICAgICAgICAgICAgZ290byBleGl0OworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpZiAobWVtY21wKGJ1ZiwgY3RfdGVzdF9kYXRhW2ogKiA2ICsgaV0sCisgICAgICAgICAgICAgICAgICAgICAgIHB0X2xlbl90ZXN0X2RhdGFbaV0pICE9IDAgfHwKKyAgICAgICAgICAgICAgICBtZW1jbXAodGFnX2J1ZiwgdGFnX3Rlc3RfZGF0YVtqICogNiArIGldLCAxNikgIT0gMCkgeworICAgICAgICAgICAgICAgIHJldCA9IDE7CisgICAgICAgICAgICAgICAgZ290byBleGl0OworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBtYmVkdGxzX2djbV9mcmVlKCZjdHgpOworCisgICAgICAgICAgICBpZiAodmVyYm9zZSAhPSAwKSB7CisgICAgICAgICAgICAgICAgbWJlZHRsc19wcmludGYoInBhc3NlZFxuIik7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIG1iZWR0bHNfZ2NtX2luaXQoJmN0eCk7CisKKyAgICAgICAgICAgIGlmICh2ZXJib3NlICE9IDApIHsKKyAgICAgICAgICAgICAgICBtYmVkdGxzX3ByaW50ZigiICBBRVMtR0NNLSUzZCAjJWQgc3BsaXQgKCVzKTogIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXlfbGVuLCBpLCAiZGVjIik7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHJldCA9IG1iZWR0bHNfZ2NtX3NldGtleSgmY3R4LCBjaXBoZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga2V5X3Rlc3RfZGF0YVtrZXlfaW5kZXhfdGVzdF9kYXRhW2ldXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXlfbGVuKTsKKyAgICAgICAgICAgIGlmIChyZXQgIT0gMCkgeworICAgICAgICAgICAgICAgIGdvdG8gZXhpdDsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgcmV0ID0gbWJlZHRsc19nY21fc3RhcnRzKCZjdHgsIE1CRURUTFNfR0NNX0RFQ1JZUFQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXZfdGVzdF9kYXRhW2l2X2luZGV4X3Rlc3RfZGF0YVtpXV0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXZfbGVuX3Rlc3RfZGF0YVtpXSk7CisgICAgICAgICAgICBpZiAocmV0ICE9IDApIHsKKyAgICAgICAgICAgICAgICBnb3RvIGV4aXQ7CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXQgPSBtYmVkdGxzX2djbV91cGRhdGVfYWQoJmN0eCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhZGRpdGlvbmFsX3Rlc3RfZGF0YVthZGRfaW5kZXhfdGVzdF9kYXRhW2ldXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhZGRfbGVuX3Rlc3RfZGF0YVtpXSk7CisgICAgICAgICAgICBpZiAocmV0ICE9IDApIHsKKyAgICAgICAgICAgICAgICBnb3RvIGV4aXQ7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGlmIChwdF9sZW5fdGVzdF9kYXRhW2ldID4gMzIpIHsKKyAgICAgICAgICAgICAgICBzaXplX3QgcmVzdF9sZW4gPSBwdF9sZW5fdGVzdF9kYXRhW2ldIC0gMzI7CisgICAgICAgICAgICAgICAgcmV0ID0gbWJlZHRsc19nY21fdXBkYXRlKCZjdHgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGN0X3Rlc3RfZGF0YVtqICogNiArIGldLCAzMiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnVmLCBzaXplb2YoYnVmKSwgJm9sZW4pOworICAgICAgICAgICAgICAgIGlmIChyZXQgIT0gMCkgeworICAgICAgICAgICAgICAgICAgICBnb3RvIGV4aXQ7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmIChvbGVuICE9IDMyKSB7CisgICAgICAgICAgICAgICAgICAgIGdvdG8gZXhpdDsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICByZXQgPSBtYmVkdGxzX2djbV91cGRhdGUoJmN0eCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3RfdGVzdF9kYXRhW2ogKiA2ICsgaV0gKyAzMiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzdF9sZW4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ1ZiArIDMyLCBzaXplb2YoYnVmKSAtIDMyLCAmb2xlbik7CisgICAgICAgICAgICAgICAgaWYgKHJldCAhPSAwKSB7CisgICAgICAgICAgICAgICAgICAgIGdvdG8gZXhpdDsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaWYgKG9sZW4gIT0gcmVzdF9sZW4pIHsKKyAgICAgICAgICAgICAgICAgICAgZ290byBleGl0OworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgcmV0ID0gbWJlZHRsc19nY21fdXBkYXRlKCZjdHgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGN0X3Rlc3RfZGF0YVtqICogNiArIGldLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwdF9sZW5fdGVzdF9kYXRhW2ldLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBidWYsIHNpemVvZihidWYpLCAmb2xlbik7CisgICAgICAgICAgICAgICAgaWYgKHJldCAhPSAwKSB7CisgICAgICAgICAgICAgICAgICAgIGdvdG8gZXhpdDsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaWYgKG9sZW4gIT0gcHRfbGVuX3Rlc3RfZGF0YVtpXSkgeworICAgICAgICAgICAgICAgICAgICBnb3RvIGV4aXQ7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorCisgICAgICAgICAgICByZXQgPSBtYmVkdGxzX2djbV9maW5pc2goJmN0eCwgTlVMTCwgMCwgJm9sZW4sIHRhZ19idWYsIDE2KTsKKyAgICAgICAgICAgIGlmIChyZXQgIT0gMCkgeworICAgICAgICAgICAgICAgIGdvdG8gZXhpdDsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaWYgKG1lbWNtcChidWYsIHB0X3Rlc3RfZGF0YVtwdF9pbmRleF90ZXN0X2RhdGFbaV1dLAorICAgICAgICAgICAgICAgICAgICAgICBwdF9sZW5fdGVzdF9kYXRhW2ldKSAhPSAwIHx8CisgICAgICAgICAgICAgICAgbWVtY21wKHRhZ19idWYsIHRhZ190ZXN0X2RhdGFbaiAqIDYgKyBpXSwgMTYpICE9IDApIHsKKyAgICAgICAgICAgICAgICByZXQgPSAxOworICAgICAgICAgICAgICAgIGdvdG8gZXhpdDsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgbWJlZHRsc19nY21fZnJlZSgmY3R4KTsKKworICAgICAgICAgICAgaWYgKHZlcmJvc2UgIT0gMCkgeworICAgICAgICAgICAgICAgIG1iZWR0bHNfcHJpbnRmKCJwYXNzZWRcbiIpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgaWYgKHZlcmJvc2UgIT0gMCkgeworICAgICAgICBtYmVkdGxzX3ByaW50ZigiXG4iKTsKKyAgICB9CisKKyAgICByZXQgPSAwOworCitleGl0OgorICAgIGlmIChyZXQgIT0gMCkgeworICAgICAgICBpZiAodmVyYm9zZSAhPSAwKSB7CisgICAgICAgICAgICBtYmVkdGxzX3ByaW50ZigiZmFpbGVkXG4iKTsKKyAgICAgICAgfQorICAgICAgICBtYmVkdGxzX2djbV9mcmVlKCZjdHgpOworICAgIH0KKworICAgIHJldHVybiByZXQ7Cit9CisKKyNlbmRpZiAvKiBNQkVEVExTX1NFTEZfVEVTVCAmJiBNQkVEVExTX0FFU19DICovCisKKyNlbmRpZiAvKiBNQkVEVExTX0dDTV9DICovCmRpZmYgLS1naXQgYS9saWJyYXJ5L2hrZGYuYyBiL3RmLXBzYS1jcnlwdG8vZHJpdmVycy9idWlsdGluL3NyYy9oa2RmLmMKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIGxpYnJhcnkvaGtkZi5jCnJlbmFtZSB0byB0Zi1wc2EtY3J5cHRvL2RyaXZlcnMvYnVpbHRpbi9zcmMvaGtkZi5jCmRpZmYgLS1naXQgYS9saWJyYXJ5L2htYWNfZHJiZy5jIGIvdGYtcHNhLWNyeXB0by9kcml2ZXJzL2J1aWx0aW4vc3JjL2htYWNfZHJiZy5jCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBsaWJyYXJ5L2htYWNfZHJiZy5jCnJlbmFtZSB0byB0Zi1wc2EtY3J5cHRvL2RyaXZlcnMvYnVpbHRpbi9zcmMvaG1hY19kcmJnLmMKZGlmZiAtLWdpdCBhL3RmLXBzYS1jcnlwdG8vZHJpdmVycy9idWlsdGluL3NyYy9sbW90cy5jIGIvdGYtcHNhLWNyeXB0by9kcml2ZXJzL2J1aWx0aW4vc3JjL2xtb3RzLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzUxY2I0MQotLS0gL2Rldi9udWxsCisrKyBiL3RmLXBzYS1jcnlwdG8vZHJpdmVycy9idWlsdGluL3NyYy9sbW90cy5jCkBAIC0wLDAgKzEsNzg2IEBACisvKgorICogVGhlIExNLU9UUyBvbmUtdGltZSBwdWJsaWMta2V5IHNpZ25hdHVyZSBzY2hlbWUKKyAqCisgKiBDb3B5cmlnaHQgVGhlIE1iZWQgVExTIENvbnRyaWJ1dG9ycworICogIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wIE9SIEdQTC0yLjAtb3ItbGF0ZXIKKyAqLworCisvKgorICogIFRoZSBmb2xsb3dpbmcgc291cmNlcyB3ZXJlIHJlZmVyZW5jZWQgaW4gdGhlIGRlc2lnbiBvZiB0aGlzIGltcGxlbWVudGF0aW9uCisgKiAgb2YgdGhlIExNLU9UUyBhbGdvcml0aG06CisgKgorICogIFsxXSBJRVRGIFJGQzg1NTQKKyAqICAgICAgRC4gTWNHcmV3LCBNLiBDdXJjaW8sIFMuRmx1aHJlcgorICogICAgICBodHRwczovL2RhdGF0cmFja2VyLmlldGYub3JnL2RvYy9odG1sL3JmYzg1NTQKKyAqCisgKiAgWzJdIE5JU1QgU3BlY2lhbCBQdWJsaWNhdGlvbiA4MDAtMjA4CisgKiAgICAgIERhdmlkIEEuIENvb3BlciBldC4gYWwuCisgKiAgICAgIGh0dHBzOi8vbnZscHVicy5uaXN0Lmdvdi9uaXN0cHVicy9TcGVjaWFsUHVibGljYXRpb25zL05JU1QuU1AuODAwLTIwOC5wZGYKKyAqLworCisjaW5jbHVkZSAiY29tbW9uLmgiCisKKyNpZiBkZWZpbmVkKE1CRURUTFNfTE1TX0MpCisKKyNpbmNsdWRlIDxzdHJpbmcuaD4KKworI2luY2x1ZGUgImxtb3RzLmgiCisKKyNpbmNsdWRlICJtYmVkdGxzL2xtcy5oIgorI2luY2x1ZGUgIm1iZWR0bHMvcGxhdGZvcm1fdXRpbC5oIgorI2luY2x1ZGUgIm1iZWR0bHMvZXJyb3IuaCIKKyNpbmNsdWRlICJwc2FfdXRpbF9pbnRlcm5hbC5oIgorCisjaW5jbHVkZSAicHNhL2NyeXB0by5oIgorCisvKiBEZWZpbmUgYSBsb2NhbCB0cmFuc2xhdGluZyBmdW5jdGlvbiB0byBzYXZlIGNvZGUgc2l6ZSBieSBub3QgdXNpbmcgdG9vIG1hbnkKKyAqIGFyZ3VtZW50cyBpbiBlYWNoIHRyYW5zbGF0aW5nIHBsYWNlLiAqLworc3RhdGljIGludCBsb2NhbF9lcnJfdHJhbnNsYXRpb24ocHNhX3N0YXR1c190IHN0YXR1cykKK3sKKyAgICByZXR1cm4gcHNhX3N0YXR1c190b19tYmVkdGxzKHN0YXR1cywgcHNhX3RvX2xtc19lcnJvcnMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBUlJBWV9MRU5HVEgocHNhX3RvX2xtc19lcnJvcnMpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHNhX2dlbmVyaWNfc3RhdHVzX3RvX21iZWR0bHMpOworfQorI2RlZmluZSBQU0FfVE9fTUJFRFRMU19FUlIoc3RhdHVzKSBsb2NhbF9lcnJfdHJhbnNsYXRpb24oc3RhdHVzKQorCisjZGVmaW5lIFBVQkxJQ19LRVlfVFlQRV9PRkZTRVQgICAgICgwKQorI2RlZmluZSBQVUJMSUNfS0VZX0lfS0VZX0lEX09GRlNFVCAoUFVCTElDX0tFWV9UWVBFX09GRlNFVCArIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1CRURUTFNfTE1PVFNfVFlQRV9MRU4pCisjZGVmaW5lIFBVQkxJQ19LRVlfUV9MRUFGX0lEX09GRlNFVCAoUFVCTElDX0tFWV9JX0tFWV9JRF9PRkZTRVQgKyBcCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTUJFRFRMU19MTU9UU19JX0tFWV9JRF9MRU4pCisjZGVmaW5lIFBVQkxJQ19LRVlfS0VZX0hBU0hfT0ZGU0VUIChQVUJMSUNfS0VZX1FfTEVBRl9JRF9PRkZTRVQgKyBcCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNQkVEVExTX0xNT1RTX1FfTEVBRl9JRF9MRU4pCisKKy8qIFdlIG9ubHkgc3VwcG9ydCBwYXJhbWV0ZXIgc2V0cyB0aGF0IHVzZSA4LWJpdCBkaWdpdHMsIGFzIGl0IGRvZXMgbm90IHJlcXVpcmUKKyAqIHRyYW5zbGF0aW9uIGxvZ2ljIGJldHdlZW4gZGlnaXRzIGFuZCBieXRlcyAqLworI2RlZmluZSBXX1dJTlRFUk5JVFpfUEFSQU1FVEVSICg4dSkKKyNkZWZpbmUgQ0hFQ0tTVU1fTEVOICAgICAgICAgICAoMikKKyNkZWZpbmUgSV9ESUdJVF9JRFhfTEVOICAgICAgICAoMikKKyNkZWZpbmUgSl9IQVNIX0lEWF9MRU4gICAgICAgICAoMSkKKyNkZWZpbmUgRF9DT05TVF9MRU4gICAgICAgICAgICAoMikKKworI2RlZmluZSBESUdJVF9NQVhfVkFMVUUgICAgICAgICgoMXUgPDwgV19XSU5URVJOSVRaX1BBUkFNRVRFUikgLSAxdSkKKworI2RlZmluZSBEX0NPTlNUX0xFTiAgICAgICAgICAgICgyKQorc3RhdGljIGNvbnN0IHVuc2lnbmVkIGNoYXIgRF9QVUJMSUNfQ09OU1RBTlRfQllURVNbRF9DT05TVF9MRU5dID0geyAweDgwLCAweDgwIH07CitzdGF0aWMgY29uc3QgdW5zaWduZWQgY2hhciBEX01FU1NBR0VfQ09OU1RBTlRfQllURVNbRF9DT05TVF9MRU5dID0geyAweDgxLCAweDgxIH07CisKKyNpZiBkZWZpbmVkKE1CRURUTFNfVEVTVF9IT09LUykKK2ludCAoKm1iZWR0bHNfbG1vdHNfc2lnbl9wcml2YXRlX2tleV9pbnZhbGlkYXRlZF9ob29rKSh1bnNpZ25lZCBjaGFyICopID0gTlVMTDsKKyNlbmRpZiAvKiBkZWZpbmVkKE1CRURUTFNfVEVTVF9IT09LUykgKi8KKworLyogQ2FsY3VsYXRlIHRoZSBjaGVja3N1bSBkaWdpdHMgdGhhdCBhcmUgYXBwZW5kZWQgdG8gdGhlIGVuZCBvZiB0aGUgTE1PVFMgZGlnaXQKKyAqIHN0cmluZy4gU2VlIE5JU1QgU1A4MDAtMjA4IHNlY3Rpb24gMy4xIG9yIFJGQzg1NTQgQWxnb3JpdGhtIDIgZm9yIGRldGFpbHMgb2YKKyAqIHRoZSBjaGVja3N1bSBhbGdvcml0aG0uCisgKgorICogIHBhcmFtcyAgICAgICAgICAgICAgVGhlIExNT1RTIHBhcmFtZXRlciBzZXQsIEkgYW5kIHEgdmFsdWVzIHdoaWNoCisgKiAgICAgICAgICAgICAgICAgICAgICBkZXNjcmliZSB0aGUga2V5IGJlaW5nIHVzZWQuCisgKgorICogIGRpZ2VzdCAgICAgICAgICAgICAgVGhlIGRpZ2l0IHN0cmluZyB0byBjcmVhdGUgdGhlIGRpZ2VzdCBmcm9tLiBBcworICogICAgICAgICAgICAgICAgICAgICAgdGhpcyBkb2VzIG5vdCBjb250YWluIGEgY2hlY2tzdW0sIGl0IGlzIHRoZSBzYW1lCisgKiAgICAgICAgICAgICAgICAgICAgICBzaXplIGFzIGEgaGFzaCBvdXRwdXQuCisgKi8KK3N0YXRpYyB1bnNpZ25lZCBzaG9ydCBsbW90c19jaGVja3N1bV9jYWxjdWxhdGUoY29uc3QgbWJlZHRsc19sbW90c19wYXJhbWV0ZXJzX3QgKnBhcmFtcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdW5zaWduZWQgY2hhciAqZGlnZXN0KQoreworICAgIHNpemVfdCBpZHg7CisgICAgdW5zaWduZWQgc3VtID0gMDsKKworICAgIGZvciAoaWR4ID0gMDsgaWR4IDwgTUJFRFRMU19MTU9UU19OX0hBU0hfTEVOKHBhcmFtcy0+dHlwZSk7IGlkeCsrKSB7CisgICAgICAgIHN1bSArPSBESUdJVF9NQVhfVkFMVUUgLSBkaWdlc3RbaWR4XTsKKyAgICB9CisKKyAgICByZXR1cm4gc3VtOworfQorCisvKiBDcmVhdGUgdGhlIHN0cmluZyBvZiBkaWdlc3QgZGlnaXRzIChpbiB0aGUgYmFzZSBkZXRlcm1pbmVkIGJ5IHRoZSBXaW50ZXJuaXR6CisgKiBwYXJhbWV0ZXIgd2l0aCB0aGUgY2hlY2tzdW0gYXBwZW5kZWQgdG8gdGhlIGVuZCAoUSB8fCBja3NtKFEpKS4gU2VlIE5JU1QKKyAqIFNQODAwLTIwOCBzZWN0aW9uIDMuMSBvciBSRkM4NTU0IEFsZ29yaXRobSAzIHN0ZXAgNSAoYWxzbyB1c2VkIGluIEFsZ29yaXRobQorICogNGIgc3RlcCAzKSBmb3IgZGV0YWlscy4KKyAqCisgKiAgcGFyYW1zICAgICAgICAgICAgICBUaGUgTE1PVFMgcGFyYW1ldGVyIHNldCwgSSBhbmQgcSB2YWx1ZXMgd2hpY2gKKyAqICAgICAgICAgICAgICAgICAgICAgIGRlc2NyaWJlIHRoZSBrZXkgYmVpbmcgdXNlZC4KKyAqCisgKiAgbXNnICAgICAgICAgICAgICAgICBUaGUgbWVzc2FnZSB0aGF0IHdpbGwgYmUgaGFzaGVkIHRvIGNyZWF0ZSB0aGUKKyAqICAgICAgICAgICAgICAgICAgICAgIGRpZ2VzdC4KKyAqCisgKiAgbXNnX3NpemUgICAgICAgICAgICBUaGUgc2l6ZSBvZiB0aGUgbWVzc2FnZS4KKyAqCisgKiAgQ19yYW5kb21fdmFsdWUgICAgICBUaGUgcmFuZG9tIHZhbHVlIHRoYXQgd2lsbCBiZSBjb21iaW5lZCB3aXRoIHRoZQorICogICAgICAgICAgICAgICAgICAgICAgbWVzc2FnZSBkaWdlc3QuIFRoaXMgaXMgYWx3YXlzIHRoZSBzYW1lIHNpemUgYXMgYQorICogICAgICAgICAgICAgICAgICAgICAgaGFzaCBvdXRwdXQgZm9yIHdoaWNoZXZlciBoYXNoIGFsZ29yaXRobSBpcworICogICAgICAgICAgICAgICAgICAgICAgZGV0ZXJtaW5lZCBieSB0aGUgcGFyYW1ldGVyIHNldC4KKyAqCisgKiAgb3V0cHV0ICAgICAgICAgICAgICBBbiBvdXRwdXQgY29udGFpbmluZyB0aGUgZGlnaXQgc3RyaW5nICgrCisgKiAgICAgICAgICAgICAgICAgICAgICBjaGVja3N1bSkgb2YgbGVuZ3RoIFAgZGlnaXRzIChpbiB0aGUgY2FzZSBvZgorICogICAgICAgICAgICAgICAgICAgICAgTUJFRFRMU19MTU9UU19TSEEyNTZfTjMyX1c4LCB0aGlzIG1lYW5zIGl0IGlzIG9mCisgKiAgICAgICAgICAgICAgICAgICAgICBzaXplIFAgYnl0ZXMpLgorICovCitzdGF0aWMgaW50IGNyZWF0ZV9kaWdpdF9hcnJheV93aXRoX2NoZWNrc3VtKGNvbnN0IG1iZWR0bHNfbG1vdHNfcGFyYW1ldGVyc190ICpwYXJhbXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgKm1zZywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IG1zZ19sZW4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgKkNfcmFuZG9tX3ZhbHVlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBjaGFyICpvdXQpCit7CisgICAgcHNhX2hhc2hfb3BlcmF0aW9uX3Qgb3AgPSBQU0FfSEFTSF9PUEVSQVRJT05fSU5JVDsKKyAgICBwc2Ffc3RhdHVzX3Qgc3RhdHVzID0gUFNBX0VSUk9SX0NPUlJVUFRJT05fREVURUNURUQ7CisgICAgc2l6ZV90IG91dHB1dF9oYXNoX2xlbjsKKyAgICB1bnNpZ25lZCBzaG9ydCBjaGVja3N1bTsKKworICAgIHN0YXR1cyA9IHBzYV9oYXNoX3NldHVwKCZvcCwgUFNBX0FMR19TSEFfMjU2KTsKKyAgICBpZiAoc3RhdHVzICE9IFBTQV9TVUNDRVNTKSB7CisgICAgICAgIGdvdG8gZXhpdDsKKyAgICB9CisKKyAgICBzdGF0dXMgPSBwc2FfaGFzaF91cGRhdGUoJm9wLCBwYXJhbXMtPklfa2V5X2lkZW50aWZpZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1CRURUTFNfTE1PVFNfSV9LRVlfSURfTEVOKTsKKyAgICBpZiAoc3RhdHVzICE9IFBTQV9TVUNDRVNTKSB7CisgICAgICAgIGdvdG8gZXhpdDsKKyAgICB9CisKKyAgICBzdGF0dXMgPSBwc2FfaGFzaF91cGRhdGUoJm9wLCBwYXJhbXMtPnFfbGVhZl9pZGVudGlmaWVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNQkVEVExTX0xNT1RTX1FfTEVBRl9JRF9MRU4pOworICAgIGlmIChzdGF0dXMgIT0gUFNBX1NVQ0NFU1MpIHsKKyAgICAgICAgZ290byBleGl0OworICAgIH0KKworICAgIHN0YXR1cyA9IHBzYV9oYXNoX3VwZGF0ZSgmb3AsIERfTUVTU0FHRV9DT05TVEFOVF9CWVRFUywgRF9DT05TVF9MRU4pOworICAgIGlmIChzdGF0dXMgIT0gUFNBX1NVQ0NFU1MpIHsKKyAgICAgICAgZ290byBleGl0OworICAgIH0KKworICAgIHN0YXR1cyA9IHBzYV9oYXNoX3VwZGF0ZSgmb3AsIENfcmFuZG9tX3ZhbHVlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNQkVEVExTX0xNT1RTX0NfUkFORE9NX1ZBTFVFX0xFTihwYXJhbXMtPnR5cGUpKTsKKyAgICBpZiAoc3RhdHVzICE9IFBTQV9TVUNDRVNTKSB7CisgICAgICAgIGdvdG8gZXhpdDsKKyAgICB9CisKKyAgICBzdGF0dXMgPSBwc2FfaGFzaF91cGRhdGUoJm9wLCBtc2csIG1zZ19sZW4pOworICAgIGlmIChzdGF0dXMgIT0gUFNBX1NVQ0NFU1MpIHsKKyAgICAgICAgZ290byBleGl0OworICAgIH0KKworICAgIHN0YXR1cyA9IHBzYV9oYXNoX2ZpbmlzaCgmb3AsIG91dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTUJFRFRMU19MTU9UU19OX0hBU0hfTEVOKHBhcmFtcy0+dHlwZSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZvdXRwdXRfaGFzaF9sZW4pOworICAgIGlmIChzdGF0dXMgIT0gUFNBX1NVQ0NFU1MpIHsKKyAgICAgICAgZ290byBleGl0OworICAgIH0KKworICAgIGNoZWNrc3VtID0gbG1vdHNfY2hlY2tzdW1fY2FsY3VsYXRlKHBhcmFtcywgb3V0KTsKKyAgICBNQkVEVExTX1BVVF9VSU5UMTZfQkUoY2hlY2tzdW0sIG91dCwgTUJFRFRMU19MTU9UU19OX0hBU0hfTEVOKHBhcmFtcy0+dHlwZSkpOworCitleGl0OgorICAgIHBzYV9oYXNoX2Fib3J0KCZvcCk7CisKKyAgICByZXR1cm4gUFNBX1RPX01CRURUTFNfRVJSKHN0YXR1cyk7Cit9CisKKy8qIEhhc2ggZWFjaCBlbGVtZW50IG9mIHRoZSBzdHJpbmcgb2YgZGlnaXRzICgrIGNoZWNrc3VtKSwgcHJvZHVjaW5nIGEgaGFzaAorICogb3V0cHV0IGZvciBlYWNoIGVsZW1lbnQuIFRoaXMgaXMgdXNlZCBpbiBzZXZlcmFsIHBsYWNlcyAoYnkgdmFyeWluZyB0aGUKKyAqIGhhc2hfaWR4X21pbi9tYXhfdmFsdWVzKSBpbiBvcmRlciB0byBjYWxjdWxhdGUgYSBwdWJsaWMga2V5IGZyb20gYSBwcml2YXRlCisgKiBrZXkgKFJGQzg1NTQgQWxnb3JpdGhtIDEgc3RlcCA0KSwgaW4gb3JkZXIgdG8gc2lnbiBhIG1lc3NhZ2UgKFJGQzg1NTQKKyAqIEFsZ29yaXRobSAzIHN0ZXAgNSksIGFuZCB0byBjYWxjdWxhdGUgYSBwdWJsaWMga2V5IGNhbmRpZGF0ZSBmcm9tIGEKKyAqIHNpZ25hdHVyZSBhbmQgbWVzc2FnZSAoUkZDODU1NCBBbGdvcml0aG0gNGIgc3RlcCAzKS4KKyAqCisgKiAgcGFyYW1zICAgICAgICAgICAgICBUaGUgTE1PVFMgcGFyYW1ldGVyIHNldCwgSSBhbmQgcSB2YWx1ZXMgd2hpY2gKKyAqICAgICAgICAgICAgICAgICAgICAgIGRlc2NyaWJlIHRoZSBrZXkgYmVpbmcgdXNlZC4KKyAqCisgKiAgeF9kaWdpdF9hcnJheSAgICAgICBUaGUgYXJyYXkgb2YgZGlnaXRzIChvZiBzaXplIFAsIDM0IGluIHRoZSBjYXNlIG9mCisgKiAgICAgICAgICAgICAgICAgICAgICBNQkVEVExTX0xNT1RTX1NIQTI1Nl9OMzJfVzgpLgorICoKKyAqICBoYXNoX2lkeF9taW5fdmFsdWVzIEFuIGFycmF5IG9mIHRoZSBzdGFydGluZyB2YWx1ZXMgb2YgdGhlIGogaXRlcmF0b3IKKyAqICAgICAgICAgICAgICAgICAgICAgIGZvciBlYWNoIG9mIHRoZSBtZW1iZXJzIG9mIHRoZSBkaWdpdCBhcnJheS4gSWYKKyAqICAgICAgICAgICAgICAgICAgICAgIHRoaXMgdmFsdWUgaW4gTlVMTCwgdGhlbiBhbGwgaXRlcmF0b3JzIHdpbGwgc3RhcnQKKyAqICAgICAgICAgICAgICAgICAgICAgIGF0IDAuCisgKgorICogIGhhc2hfaWR4X21heF92YWx1ZXMgQW4gYXJyYXkgb2YgdGhlIHVwcGVyIGJvdW5kIHZhbHVlcyBvZiB0aGUgagorICogICAgICAgICAgICAgICAgICAgICAgaXRlcmF0b3IgZm9yIGVhY2ggb2YgdGhlIG1lbWJlcnMgb2YgdGhlIGRpZ2l0CisgKiAgICAgICAgICAgICAgICAgICAgICBhcnJheS4gSWYgdGhpcyB2YWx1ZSBpbiBOVUxMLCB0aGVuIGl0ZXJhdG9yIGlzCisgKiAgICAgICAgICAgICAgICAgICAgICBib3VuZGVkIHRvIGJlIGxlc3MgdGhhbiAyXncgLSAxICgyNTUgaW4gdGhlIGNhc2UKKyAqICAgICAgICAgICAgICAgICAgICAgIG9mIE1CRURUTFNfTE1PVFNfU0hBMjU2X04zMl9XOCkKKyAqCisgKiAgb3V0cHV0ICAgICAgICAgICAgICBBbiBhcnJheSBjb250YWluaW5nIGEgaGFzaCBvdXRwdXQgZm9yIGVhY2ggbWVtYmVyCisgKiAgICAgICAgICAgICAgICAgICAgICBvZiB0aGUgZGlnaXQgc3RyaW5nIFAuIEluIHRoZSBjYXNlIG9mCisgKiAgICAgICAgICAgICAgICAgICAgICBNQkVEVExTX0xNT1RTX1NIQTI1Nl9OMzJfVzgsIHRoaXMgaXMgb2Ygc2l6ZSAzMiAqCisgKiAgICAgICAgICAgICAgICAgICAgICAzNC4KKyAqLworc3RhdGljIGludCBoYXNoX2RpZ2l0X2FycmF5KGNvbnN0IG1iZWR0bHNfbG1vdHNfcGFyYW1ldGVyc190ICpwYXJhbXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdW5zaWduZWQgY2hhciAqeF9kaWdpdF9hcnJheSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1bnNpZ25lZCBjaGFyICpoYXNoX2lkeF9taW5fdmFsdWVzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgKmhhc2hfaWR4X21heF92YWx1ZXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgY2hhciAqb3V0cHV0KQoreworICAgIHVuc2lnbmVkIGludCBpX2RpZ2l0X2lkeDsKKyAgICB1bnNpZ25lZCBjaGFyIGlfZGlnaXRfaWR4X2J5dGVzW0lfRElHSVRfSURYX0xFTl07CisgICAgdW5zaWduZWQgaW50IGpfaGFzaF9pZHg7CisgICAgdW5zaWduZWQgY2hhciBqX2hhc2hfaWR4X2J5dGVzW0pfSEFTSF9JRFhfTEVOXTsKKyAgICB1bnNpZ25lZCBpbnQgal9oYXNoX2lkeF9taW47CisgICAgdW5zaWduZWQgaW50IGpfaGFzaF9pZHhfbWF4OworICAgIHBzYV9oYXNoX29wZXJhdGlvbl90IG9wID0gUFNBX0hBU0hfT1BFUkFUSU9OX0lOSVQ7CisgICAgcHNhX3N0YXR1c190IHN0YXR1cyA9IFBTQV9FUlJPUl9DT1JSVVBUSU9OX0RFVEVDVEVEOworICAgIHNpemVfdCBvdXRwdXRfaGFzaF9sZW47CisgICAgdW5zaWduZWQgY2hhciB0bXBfaGFzaFtNQkVEVExTX0xNT1RTX05fSEFTSF9MRU5fTUFYXTsKKworICAgIGZvciAoaV9kaWdpdF9pZHggPSAwOworICAgICAgICAgaV9kaWdpdF9pZHggPCBNQkVEVExTX0xNT1RTX1BfU0lHX0RJR0lUX0NPVU5UKHBhcmFtcy0+dHlwZSk7CisgICAgICAgICBpX2RpZ2l0X2lkeCsrKSB7CisKKyAgICAgICAgbWVtY3B5KHRtcF9oYXNoLAorICAgICAgICAgICAgICAgJnhfZGlnaXRfYXJyYXlbaV9kaWdpdF9pZHggKiBNQkVEVExTX0xNT1RTX05fSEFTSF9MRU4ocGFyYW1zLT50eXBlKV0sCisgICAgICAgICAgICAgICBNQkVEVExTX0xNT1RTX05fSEFTSF9MRU4ocGFyYW1zLT50eXBlKSk7CisKKyAgICAgICAgal9oYXNoX2lkeF9taW4gPSBoYXNoX2lkeF9taW5fdmFsdWVzICE9IE5VTEwgPworICAgICAgICAgICAgICAgICAgICAgICAgIGhhc2hfaWR4X21pbl92YWx1ZXNbaV9kaWdpdF9pZHhdIDogMDsKKyAgICAgICAgal9oYXNoX2lkeF9tYXggPSBoYXNoX2lkeF9tYXhfdmFsdWVzICE9IE5VTEwgPworICAgICAgICAgICAgICAgICAgICAgICAgIGhhc2hfaWR4X21heF92YWx1ZXNbaV9kaWdpdF9pZHhdIDogRElHSVRfTUFYX1ZBTFVFOworCisgICAgICAgIGZvciAoal9oYXNoX2lkeCA9IGpfaGFzaF9pZHhfbWluOworICAgICAgICAgICAgIGpfaGFzaF9pZHggPCBqX2hhc2hfaWR4X21heDsKKyAgICAgICAgICAgICBqX2hhc2hfaWR4KyspIHsKKyAgICAgICAgICAgIHN0YXR1cyA9IHBzYV9oYXNoX3NldHVwKCZvcCwgUFNBX0FMR19TSEFfMjU2KTsKKyAgICAgICAgICAgIGlmIChzdGF0dXMgIT0gUFNBX1NVQ0NFU1MpIHsKKyAgICAgICAgICAgICAgICBnb3RvIGV4aXQ7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHN0YXR1cyA9IHBzYV9oYXNoX3VwZGF0ZSgmb3AsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFyYW1zLT5JX2tleV9pZGVudGlmaWVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1CRURUTFNfTE1PVFNfSV9LRVlfSURfTEVOKTsKKyAgICAgICAgICAgIGlmIChzdGF0dXMgIT0gUFNBX1NVQ0NFU1MpIHsKKyAgICAgICAgICAgICAgICBnb3RvIGV4aXQ7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHN0YXR1cyA9IHBzYV9oYXNoX3VwZGF0ZSgmb3AsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFyYW1zLT5xX2xlYWZfaWRlbnRpZmllciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNQkVEVExTX0xNT1RTX1FfTEVBRl9JRF9MRU4pOworICAgICAgICAgICAgaWYgKHN0YXR1cyAhPSBQU0FfU1VDQ0VTUykgeworICAgICAgICAgICAgICAgIGdvdG8gZXhpdDsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgTUJFRFRMU19QVVRfVUlOVDE2X0JFKGlfZGlnaXRfaWR4LCBpX2RpZ2l0X2lkeF9ieXRlcywgMCk7CisgICAgICAgICAgICBzdGF0dXMgPSBwc2FfaGFzaF91cGRhdGUoJm9wLCBpX2RpZ2l0X2lkeF9ieXRlcywgSV9ESUdJVF9JRFhfTEVOKTsKKyAgICAgICAgICAgIGlmIChzdGF0dXMgIT0gUFNBX1NVQ0NFU1MpIHsKKyAgICAgICAgICAgICAgICBnb3RvIGV4aXQ7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGpfaGFzaF9pZHhfYnl0ZXNbMF0gPSAodWludDhfdCkgal9oYXNoX2lkeDsKKyAgICAgICAgICAgIHN0YXR1cyA9IHBzYV9oYXNoX3VwZGF0ZSgmb3AsIGpfaGFzaF9pZHhfYnl0ZXMsIEpfSEFTSF9JRFhfTEVOKTsKKyAgICAgICAgICAgIGlmIChzdGF0dXMgIT0gUFNBX1NVQ0NFU1MpIHsKKyAgICAgICAgICAgICAgICBnb3RvIGV4aXQ7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHN0YXR1cyA9IHBzYV9oYXNoX3VwZGF0ZSgmb3AsIHRtcF9oYXNoLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1CRURUTFNfTE1PVFNfTl9IQVNIX0xFTihwYXJhbXMtPnR5cGUpKTsKKyAgICAgICAgICAgIGlmIChzdGF0dXMgIT0gUFNBX1NVQ0NFU1MpIHsKKyAgICAgICAgICAgICAgICBnb3RvIGV4aXQ7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHN0YXR1cyA9IHBzYV9oYXNoX2ZpbmlzaCgmb3AsIHRtcF9oYXNoLCBzaXplb2YodG1wX2hhc2gpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZvdXRwdXRfaGFzaF9sZW4pOworICAgICAgICAgICAgaWYgKHN0YXR1cyAhPSBQU0FfU1VDQ0VTUykgeworICAgICAgICAgICAgICAgIGdvdG8gZXhpdDsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgcHNhX2hhc2hfYWJvcnQoJm9wKTsKKyAgICAgICAgfQorCisgICAgICAgIG1lbWNweSgmb3V0cHV0W2lfZGlnaXRfaWR4ICogTUJFRFRMU19MTU9UU19OX0hBU0hfTEVOKHBhcmFtcy0+dHlwZSldLAorICAgICAgICAgICAgICAgdG1wX2hhc2gsIE1CRURUTFNfTE1PVFNfTl9IQVNIX0xFTihwYXJhbXMtPnR5cGUpKTsKKyAgICB9CisKK2V4aXQ6CisgICAgcHNhX2hhc2hfYWJvcnQoJm9wKTsKKyAgICBtYmVkdGxzX3BsYXRmb3JtX3plcm9pemUodG1wX2hhc2gsIHNpemVvZih0bXBfaGFzaCkpOworCisgICAgcmV0dXJuIFBTQV9UT19NQkVEVExTX0VSUihzdGF0dXMpOworfQorCisvKiBDb21iaW5lIHRoZSBoYXNoZXMgb2YgdGhlIGRpZ2l0IGFycmF5IGludG8gYSBwdWJsaWMga2V5LiBUaGlzIGlzIHVzZWQgaW4KKyAqIGluIG9yZGVyIHRvIGNhbGN1bGF0ZSBhIHB1YmxpYyBrZXkgZnJvbSBhIHByaXZhdGUga2V5IChSRkM4NTU0IEFsZ29yaXRobSAxCisgKiBzdGVwIDQpLCBhbmQgdG8gY2FsY3VsYXRlIGEgcHVibGljIGtleSBjYW5kaWRhdGUgZnJvbSBhIHNpZ25hdHVyZSBhbmQgbWVzc2FnZQorICogKFJGQzg1NTQgQWxnb3JpdGhtIDRiIHN0ZXAgMykuCisgKgorICogIHBhcmFtcyAgICAgICAgICAgVGhlIExNT1RTIHBhcmFtZXRlciBzZXQsIEkgYW5kIHEgdmFsdWVzIHdoaWNoIGRlc2NyaWJlCisgKiAgICAgICAgICAgICAgICAgICB0aGUga2V5IGJlaW5nIHVzZWQuCisgKiAgeV9oYXNoZWRfZGlnaXRzICBUaGUgYXJyYXkgb2YgaGFzaGVzLCBvbmUgaGFzaCBmb3IgZWFjaCBkaWdpdCBvZiB0aGUKKyAqICAgICAgICAgICAgICAgICAgIHN5bWJvbCBhcnJheSAod2hpY2ggaXMgb2Ygc2l6ZSBQLCAzNCBpbiB0aGUgY2FzZSBvZgorICogICAgICAgICAgICAgICAgICAgTUJFRFRMU19MTU9UU19TSEEyNTZfTjMyX1c4KQorICoKKyAqICBwdWJfa2V5ICAgICAgICAgIFRoZSBvdXRwdXQgcHVibGljIGtleSAob3IgY2FuZGlkYXRlIHB1YmxpYyBrZXkgaW4KKyAqICAgICAgICAgICAgICAgICAgIGNhc2UgdGhpcyBpcyBiZWluZyBydW4gYXMgcGFydCBvZiBzaWduYXR1cmUKKyAqICAgICAgICAgICAgICAgICAgIHZlcmlmaWNhdGlvbiksIGluIHRoZSBmb3JtIG9mIGEgaGFzaCBvdXRwdXQuCisgKi8KK3N0YXRpYyBpbnQgcHVibGljX2tleV9mcm9tX2hhc2hlZF9kaWdpdF9hcnJheShjb25zdCBtYmVkdGxzX2xtb3RzX3BhcmFtZXRlcnNfdCAqcGFyYW1zLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgKnlfaGFzaGVkX2RpZ2l0cywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBjaGFyICpwdWJfa2V5KQoreworICAgIHBzYV9oYXNoX29wZXJhdGlvbl90IG9wID0gUFNBX0hBU0hfT1BFUkFUSU9OX0lOSVQ7CisgICAgcHNhX3N0YXR1c190IHN0YXR1cyA9IFBTQV9FUlJPUl9DT1JSVVBUSU9OX0RFVEVDVEVEOworICAgIHNpemVfdCBvdXRwdXRfaGFzaF9sZW47CisKKyAgICBzdGF0dXMgPSBwc2FfaGFzaF9zZXR1cCgmb3AsIFBTQV9BTEdfU0hBXzI1Nik7CisgICAgaWYgKHN0YXR1cyAhPSBQU0FfU1VDQ0VTUykgeworICAgICAgICBnb3RvIGV4aXQ7CisgICAgfQorCisgICAgc3RhdHVzID0gcHNhX2hhc2hfdXBkYXRlKCZvcCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFyYW1zLT5JX2tleV9pZGVudGlmaWVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNQkVEVExTX0xNT1RTX0lfS0VZX0lEX0xFTik7CisgICAgaWYgKHN0YXR1cyAhPSBQU0FfU1VDQ0VTUykgeworICAgICAgICBnb3RvIGV4aXQ7CisgICAgfQorCisgICAgc3RhdHVzID0gcHNhX2hhc2hfdXBkYXRlKCZvcCwgcGFyYW1zLT5xX2xlYWZfaWRlbnRpZmllciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTUJFRFRMU19MTU9UU19RX0xFQUZfSURfTEVOKTsKKyAgICBpZiAoc3RhdHVzICE9IFBTQV9TVUNDRVNTKSB7CisgICAgICAgIGdvdG8gZXhpdDsKKyAgICB9CisKKyAgICBzdGF0dXMgPSBwc2FfaGFzaF91cGRhdGUoJm9wLCBEX1BVQkxJQ19DT05TVEFOVF9CWVRFUywgRF9DT05TVF9MRU4pOworICAgIGlmIChzdGF0dXMgIT0gUFNBX1NVQ0NFU1MpIHsKKyAgICAgICAgZ290byBleGl0OworICAgIH0KKworICAgIHN0YXR1cyA9IHBzYV9oYXNoX3VwZGF0ZSgmb3AsIHlfaGFzaGVkX2RpZ2l0cywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTUJFRFRMU19MTU9UU19QX1NJR19ESUdJVF9DT1VOVChwYXJhbXMtPnR5cGUpICoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTUJFRFRMU19MTU9UU19OX0hBU0hfTEVOKHBhcmFtcy0+dHlwZSkpOworICAgIGlmIChzdGF0dXMgIT0gUFNBX1NVQ0NFU1MpIHsKKyAgICAgICAgZ290byBleGl0OworICAgIH0KKworICAgIHN0YXR1cyA9IHBzYV9oYXNoX2ZpbmlzaCgmb3AsIHB1Yl9rZXksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1CRURUTFNfTE1PVFNfTl9IQVNIX0xFTihwYXJhbXMtPnR5cGUpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmb3V0cHV0X2hhc2hfbGVuKTsKKyAgICBpZiAoc3RhdHVzICE9IFBTQV9TVUNDRVNTKSB7CisKK2V4aXQ6CisgICAgICAgIHBzYV9oYXNoX2Fib3J0KCZvcCk7CisgICAgfQorCisgICAgcmV0dXJuIFBTQV9UT19NQkVEVExTX0VSUihzdGF0dXMpOworfQorCisjaWYgIWRlZmluZWQoTUJFRFRMU19ERVBSRUNBVEVEX1JFTU9WRUQpCitpbnQgbWJlZHRsc19sbXNfZXJyb3JfZnJvbV9wc2EocHNhX3N0YXR1c190IHN0YXR1cykKK3sKKyAgICBzd2l0Y2ggKHN0YXR1cykgeworICAgICAgICBjYXNlIFBTQV9TVUNDRVNTOgorICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIGNhc2UgUFNBX0VSUk9SX0hBUkRXQVJFX0ZBSUxVUkU6CisgICAgICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfUExBVEZPUk1fSFdfQUNDRUxfRkFJTEVEOworICAgICAgICBjYXNlIFBTQV9FUlJPUl9OT1RfU1VQUE9SVEVEOgorICAgICAgICAgICAgcmV0dXJuIE1CRURUTFNfRVJSX1BMQVRGT1JNX0ZFQVRVUkVfVU5TVVBQT1JURUQ7CisgICAgICAgIGNhc2UgUFNBX0VSUk9SX0JVRkZFUl9UT09fU01BTEw6CisgICAgICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfTE1TX0JVRkZFUl9UT09fU01BTEw7CisgICAgICAgIGNhc2UgUFNBX0VSUk9SX0lOVkFMSURfQVJHVU1FTlQ6CisgICAgICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfTE1TX0JBRF9JTlBVVF9EQVRBOworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgcmV0dXJuIE1CRURUTFNfRVJSX0VSUk9SX0dFTkVSSUNfRVJST1I7CisgICAgfQorfQorI2VuZGlmIC8qICFNQkVEVExTX0RFUFJFQ0FURURfUkVNT1ZFRCAqLworCit2b2lkIG1iZWR0bHNfbG1vdHNfcHVibGljX2luaXQobWJlZHRsc19sbW90c19wdWJsaWNfdCAqY3R4KQoreworICAgIG1lbXNldChjdHgsIDAsIHNpemVvZigqY3R4KSk7Cit9CisKK3ZvaWQgbWJlZHRsc19sbW90c19wdWJsaWNfZnJlZShtYmVkdGxzX2xtb3RzX3B1YmxpY190ICpjdHgpCit7CisgICAgaWYgKGN0eCA9PSBOVUxMKSB7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBtYmVkdGxzX3BsYXRmb3JtX3plcm9pemUoY3R4LCBzaXplb2YoKmN0eCkpOworfQorCitpbnQgbWJlZHRsc19sbW90c19pbXBvcnRfcHVibGljX2tleShtYmVkdGxzX2xtb3RzX3B1YmxpY190ICpjdHgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1bnNpZ25lZCBjaGFyICprZXksIHNpemVfdCBrZXlfbGVuKQoreworICAgIGlmIChrZXlfbGVuIDwgTUJFRFRMU19MTU9UU19TSUdfVFlQRV9PRkZTRVQgKyBNQkVEVExTX0xNT1RTX1RZUEVfTEVOKSB7CisgICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9MTVNfQkFEX0lOUFVUX0RBVEE7CisgICAgfQorCisgICAgY3R4LT5wYXJhbXMudHlwZSA9IChtYmVkdGxzX2xtb3RzX2FsZ29yaXRobV90eXBlX3QpCisgICAgICAgICAgICAgICAgICAgICAgIE1CRURUTFNfR0VUX1VJTlQzMl9CRShrZXksIE1CRURUTFNfTE1PVFNfU0lHX1RZUEVfT0ZGU0VUKTsKKworICAgIGlmIChrZXlfbGVuICE9IE1CRURUTFNfTE1PVFNfUFVCTElDX0tFWV9MRU4oY3R4LT5wYXJhbXMudHlwZSkpIHsKKyAgICAgICAgcmV0dXJuIE1CRURUTFNfRVJSX0xNU19CQURfSU5QVVRfREFUQTsKKyAgICB9CisKKyAgICBtZW1jcHkoY3R4LT5wYXJhbXMuSV9rZXlfaWRlbnRpZmllciwKKyAgICAgICAgICAga2V5ICsgUFVCTElDX0tFWV9JX0tFWV9JRF9PRkZTRVQsCisgICAgICAgICAgIE1CRURUTFNfTE1PVFNfSV9LRVlfSURfTEVOKTsKKworICAgIG1lbWNweShjdHgtPnBhcmFtcy5xX2xlYWZfaWRlbnRpZmllciwKKyAgICAgICAgICAga2V5ICsgUFVCTElDX0tFWV9RX0xFQUZfSURfT0ZGU0VULAorICAgICAgICAgICBNQkVEVExTX0xNT1RTX1FfTEVBRl9JRF9MRU4pOworCisgICAgbWVtY3B5KGN0eC0+cHVibGljX2tleSwKKyAgICAgICAgICAga2V5ICsgUFVCTElDX0tFWV9LRVlfSEFTSF9PRkZTRVQsCisgICAgICAgICAgIE1CRURUTFNfTE1PVFNfTl9IQVNIX0xFTihjdHgtPnBhcmFtcy50eXBlKSk7CisKKyAgICBjdHgtPmhhdmVfcHVibGljX2tleSA9IDE7CisKKyAgICByZXR1cm4gMDsKK30KKworaW50IG1iZWR0bHNfbG1vdHNfZXhwb3J0X3B1YmxpY19rZXkoY29uc3QgbWJlZHRsc19sbW90c19wdWJsaWNfdCAqY3R4LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgY2hhciAqa2V5LCBzaXplX3Qga2V5X3NpemUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgKmtleV9sZW4pCit7CisgICAgaWYgKGtleV9zaXplIDwgTUJFRFRMU19MTU9UU19QVUJMSUNfS0VZX0xFTihjdHgtPnBhcmFtcy50eXBlKSkgeworICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfTE1TX0JVRkZFUl9UT09fU01BTEw7CisgICAgfQorCisgICAgaWYgKCFjdHgtPmhhdmVfcHVibGljX2tleSkgeworICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfTE1TX0JBRF9JTlBVVF9EQVRBOworICAgIH0KKworICAgIE1CRURUTFNfUFVUX1VJTlQzMl9CRShjdHgtPnBhcmFtcy50eXBlLCBrZXksIE1CRURUTFNfTE1PVFNfU0lHX1RZUEVfT0ZGU0VUKTsKKworICAgIG1lbWNweShrZXkgKyBQVUJMSUNfS0VZX0lfS0VZX0lEX09GRlNFVCwKKyAgICAgICAgICAgY3R4LT5wYXJhbXMuSV9rZXlfaWRlbnRpZmllciwKKyAgICAgICAgICAgTUJFRFRMU19MTU9UU19JX0tFWV9JRF9MRU4pOworCisgICAgbWVtY3B5KGtleSArIFBVQkxJQ19LRVlfUV9MRUFGX0lEX09GRlNFVCwKKyAgICAgICAgICAgY3R4LT5wYXJhbXMucV9sZWFmX2lkZW50aWZpZXIsCisgICAgICAgICAgIE1CRURUTFNfTE1PVFNfUV9MRUFGX0lEX0xFTik7CisKKyAgICBtZW1jcHkoa2V5ICsgUFVCTElDX0tFWV9LRVlfSEFTSF9PRkZTRVQsIGN0eC0+cHVibGljX2tleSwKKyAgICAgICAgICAgTUJFRFRMU19MTU9UU19OX0hBU0hfTEVOKGN0eC0+cGFyYW1zLnR5cGUpKTsKKworICAgIGlmIChrZXlfbGVuICE9IE5VTEwpIHsKKyAgICAgICAgKmtleV9sZW4gPSBNQkVEVExTX0xNT1RTX1BVQkxJQ19LRVlfTEVOKGN0eC0+cGFyYW1zLnR5cGUpOworICAgIH0KKworICAgIHJldHVybiAwOworfQorCitpbnQgbWJlZHRsc19sbW90c19jYWxjdWxhdGVfcHVibGljX2tleV9jYW5kaWRhdGUoY29uc3QgbWJlZHRsc19sbW90c19wYXJhbWV0ZXJzX3QgKnBhcmFtcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1bnNpZ25lZCBjaGFyICAqbXNnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBtc2dfc2l6ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1bnNpZ25lZCBjaGFyICpzaWcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IHNpZ19zaXplLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGNoYXIgKm91dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3Qgb3V0X3NpemUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90ICpvdXRfbGVuKQoreworICAgIHVuc2lnbmVkIGNoYXIgdG1wX2RpZ2l0X2FycmF5W01CRURUTFNfTE1PVFNfUF9TSUdfRElHSVRfQ09VTlRfTUFYXTsKKyAgICB1bnNpZ25lZCBjaGFyIHlfaGFzaGVkX2RpZ2l0c1tNQkVEVExTX0xNT1RTX1BfU0lHX0RJR0lUX0NPVU5UX01BWF1bTUJFRFRMU19MTU9UU19OX0hBU0hfTEVOX01BWF07CisgICAgaW50IHJldCA9IE1CRURUTFNfRVJSX0VSUk9SX0NPUlJVUFRJT05fREVURUNURUQ7CisKKyAgICBpZiAobXNnID09IE5VTEwgJiYgbXNnX3NpemUgIT0gMCkgeworICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfTE1TX0JBRF9JTlBVVF9EQVRBOworICAgIH0KKworICAgIGlmIChzaWdfc2l6ZSAhPSBNQkVEVExTX0xNT1RTX1NJR19MRU4ocGFyYW1zLT50eXBlKSB8fAorICAgICAgICBvdXRfc2l6ZSA8IE1CRURUTFNfTE1PVFNfTl9IQVNIX0xFTihwYXJhbXMtPnR5cGUpKSB7CisgICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9MTVNfQkFEX0lOUFVUX0RBVEE7CisgICAgfQorCisgICAgcmV0ID0gY3JlYXRlX2RpZ2l0X2FycmF5X3dpdGhfY2hlY2tzdW0ocGFyYW1zLCBtc2csIG1zZ19zaXplLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpZyArIE1CRURUTFNfTE1PVFNfU0lHX0NfUkFORE9NX09GRlNFVCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0bXBfZGlnaXRfYXJyYXkpOworICAgIGlmIChyZXQpIHsKKyAgICAgICAgcmV0dXJuIHJldDsKKyAgICB9CisKKyAgICByZXQgPSBoYXNoX2RpZ2l0X2FycmF5KHBhcmFtcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpZyArIE1CRURUTFNfTE1PVFNfU0lHX1NJR05BVFVSRV9PRkZTRVQocGFyYW1zLT50eXBlKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIHRtcF9kaWdpdF9hcnJheSwgTlVMTCwgKHVuc2lnbmVkIGNoYXIgKikgeV9oYXNoZWRfZGlnaXRzKTsKKyAgICBpZiAocmV0KSB7CisgICAgICAgIHJldHVybiByZXQ7CisgICAgfQorCisgICAgcmV0ID0gcHVibGljX2tleV9mcm9tX2hhc2hlZF9kaWdpdF9hcnJheShwYXJhbXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodW5zaWduZWQgY2hhciAqKSB5X2hhc2hlZF9kaWdpdHMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvdXQpOworICAgIGlmIChyZXQpIHsKKyAgICAgICAgcmV0dXJuIHJldDsKKyAgICB9CisKKyAgICBpZiAob3V0X2xlbiAhPSBOVUxMKSB7CisgICAgICAgICpvdXRfbGVuID0gTUJFRFRMU19MTU9UU19OX0hBU0hfTEVOKHBhcmFtcy0+dHlwZSk7CisgICAgfQorCisgICAgcmV0dXJuIDA7Cit9CisKK2ludCBtYmVkdGxzX2xtb3RzX3ZlcmlmeShjb25zdCBtYmVkdGxzX2xtb3RzX3B1YmxpY190ICpjdHgsCisgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdW5zaWduZWQgY2hhciAqbXNnLCBzaXplX3QgbXNnX3NpemUsCisgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdW5zaWduZWQgY2hhciAqc2lnLCBzaXplX3Qgc2lnX3NpemUpCit7CisgICAgdW5zaWduZWQgY2hhciBLY19wdWJsaWNfa2V5X2NhbmRpZGF0ZVtNQkVEVExTX0xNT1RTX05fSEFTSF9MRU5fTUFYXTsKKyAgICBpbnQgcmV0ID0gTUJFRFRMU19FUlJfRVJST1JfQ09SUlVQVElPTl9ERVRFQ1RFRDsKKworICAgIGlmIChtc2cgPT0gTlVMTCAmJiBtc2dfc2l6ZSAhPSAwKSB7CisgICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9MTVNfQkFEX0lOUFVUX0RBVEE7CisgICAgfQorCisgICAgaWYgKCFjdHgtPmhhdmVfcHVibGljX2tleSkgeworICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfTE1TX0JBRF9JTlBVVF9EQVRBOworICAgIH0KKworICAgIGlmIChjdHgtPnBhcmFtcy50eXBlICE9IE1CRURUTFNfTE1PVFNfU0hBMjU2X04zMl9XOCkgeworICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfTE1TX0JBRF9JTlBVVF9EQVRBOworICAgIH0KKworICAgIGlmIChzaWdfc2l6ZSA8IE1CRURUTFNfTE1PVFNfU0lHX1RZUEVfT0ZGU0VUICsgTUJFRFRMU19MTU9UU19UWVBFX0xFTikgeworICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfTE1TX1ZFUklGWV9GQUlMRUQ7CisgICAgfQorCisgICAgaWYgKE1CRURUTFNfR0VUX1VJTlQzMl9CRShzaWcsIE1CRURUTFNfTE1PVFNfU0lHX1RZUEVfT0ZGU0VUKSAhPSBNQkVEVExTX0xNT1RTX1NIQTI1Nl9OMzJfVzgpIHsKKyAgICAgICAgcmV0dXJuIE1CRURUTFNfRVJSX0xNU19WRVJJRllfRkFJTEVEOworICAgIH0KKworICAgIHJldCA9IG1iZWR0bHNfbG1vdHNfY2FsY3VsYXRlX3B1YmxpY19rZXlfY2FuZGlkYXRlKCZjdHgtPnBhcmFtcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtc2csIG1zZ19zaXplLCBzaWcsIHNpZ19zaXplLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEtjX3B1YmxpY19rZXlfY2FuZGlkYXRlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1CRURUTFNfTE1PVFNfTl9IQVNIX0xFTihjdHgtPnBhcmFtcy50eXBlKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOVUxMKTsKKyAgICBpZiAocmV0KSB7CisgICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9MTVNfVkVSSUZZX0ZBSUxFRDsKKyAgICB9CisKKyAgICBpZiAobWVtY21wKCZLY19wdWJsaWNfa2V5X2NhbmRpZGF0ZSwgY3R4LT5wdWJsaWNfa2V5LAorICAgICAgICAgICAgICAgc2l6ZW9mKGN0eC0+cHVibGljX2tleSkpKSB7CisgICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9MTVNfVkVSSUZZX0ZBSUxFRDsKKyAgICB9CisKKyAgICByZXR1cm4gMDsKK30KKworI2lmIGRlZmluZWQoTUJFRFRMU19MTVNfUFJJVkFURSkKKwordm9pZCBtYmVkdGxzX2xtb3RzX3ByaXZhdGVfaW5pdChtYmVkdGxzX2xtb3RzX3ByaXZhdGVfdCAqY3R4KQoreworICAgIG1lbXNldChjdHgsIDAsIHNpemVvZigqY3R4KSk7Cit9CisKK3ZvaWQgbWJlZHRsc19sbW90c19wcml2YXRlX2ZyZWUobWJlZHRsc19sbW90c19wcml2YXRlX3QgKmN0eCkKK3sKKyAgICBpZiAoY3R4ID09IE5VTEwpIHsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIG1iZWR0bHNfcGxhdGZvcm1femVyb2l6ZShjdHgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVvZigqY3R4KSk7Cit9CisKK2ludCBtYmVkdGxzX2xtb3RzX2dlbmVyYXRlX3ByaXZhdGVfa2V5KG1iZWR0bHNfbG1vdHNfcHJpdmF0ZV90ICpjdHgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYmVkdGxzX2xtb3RzX2FsZ29yaXRobV90eXBlX3QgdHlwZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgSV9rZXlfaWRlbnRpZmllcltNQkVEVExTX0xNT1RTX0lfS0VZX0lEX0xFTl0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCBxX2xlYWZfaWRlbnRpZmllciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgKnNlZWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3Qgc2VlZF9zaXplKQoreworICAgIHBzYV9oYXNoX29wZXJhdGlvbl90IG9wID0gUFNBX0hBU0hfT1BFUkFUSU9OX0lOSVQ7CisgICAgcHNhX3N0YXR1c190IHN0YXR1cyA9IFBTQV9FUlJPUl9DT1JSVVBUSU9OX0RFVEVDVEVEOworICAgIHNpemVfdCBvdXRwdXRfaGFzaF9sZW47CisgICAgdW5zaWduZWQgaW50IGlfZGlnaXRfaWR4OworICAgIHVuc2lnbmVkIGNoYXIgaV9kaWdpdF9pZHhfYnl0ZXNbMl07CisgICAgdW5zaWduZWQgY2hhciBjb25zdF9ieXRlc1sxXSA9IHsgMHhGRiB9OworCisgICAgaWYgKGN0eC0+aGF2ZV9wcml2YXRlX2tleSkgeworICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfTE1TX0JBRF9JTlBVVF9EQVRBOworICAgIH0KKworICAgIGlmICh0eXBlICE9IE1CRURUTFNfTE1PVFNfU0hBMjU2X04zMl9XOCkgeworICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfTE1TX0JBRF9JTlBVVF9EQVRBOworICAgIH0KKworICAgIGN0eC0+cGFyYW1zLnR5cGUgPSB0eXBlOworCisgICAgbWVtY3B5KGN0eC0+cGFyYW1zLklfa2V5X2lkZW50aWZpZXIsCisgICAgICAgICAgIElfa2V5X2lkZW50aWZpZXIsCisgICAgICAgICAgIHNpemVvZihjdHgtPnBhcmFtcy5JX2tleV9pZGVudGlmaWVyKSk7CisKKyAgICBNQkVEVExTX1BVVF9VSU5UMzJfQkUocV9sZWFmX2lkZW50aWZpZXIsIGN0eC0+cGFyYW1zLnFfbGVhZl9pZGVudGlmaWVyLCAwKTsKKworICAgIGZvciAoaV9kaWdpdF9pZHggPSAwOworICAgICAgICAgaV9kaWdpdF9pZHggPCBNQkVEVExTX0xNT1RTX1BfU0lHX0RJR0lUX0NPVU5UKGN0eC0+cGFyYW1zLnR5cGUpOworICAgICAgICAgaV9kaWdpdF9pZHgrKykgeworICAgICAgICBzdGF0dXMgPSBwc2FfaGFzaF9zZXR1cCgmb3AsIFBTQV9BTEdfU0hBXzI1Nik7CisgICAgICAgIGlmIChzdGF0dXMgIT0gUFNBX1NVQ0NFU1MpIHsKKyAgICAgICAgICAgIGdvdG8gZXhpdDsKKyAgICAgICAgfQorCisgICAgICAgIHN0YXR1cyA9IHBzYV9oYXNoX3VwZGF0ZSgmb3AsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdHgtPnBhcmFtcy5JX2tleV9pZGVudGlmaWVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZW9mKGN0eC0+cGFyYW1zLklfa2V5X2lkZW50aWZpZXIpKTsKKyAgICAgICAgaWYgKHN0YXR1cyAhPSBQU0FfU1VDQ0VTUykgeworICAgICAgICAgICAgZ290byBleGl0OworICAgICAgICB9CisKKyAgICAgICAgc3RhdHVzID0gcHNhX2hhc2hfdXBkYXRlKCZvcCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGN0eC0+cGFyYW1zLnFfbGVhZl9pZGVudGlmaWVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTUJFRFRMU19MTU9UU19RX0xFQUZfSURfTEVOKTsKKyAgICAgICAgaWYgKHN0YXR1cyAhPSBQU0FfU1VDQ0VTUykgeworICAgICAgICAgICAgZ290byBleGl0OworICAgICAgICB9CisKKyAgICAgICAgTUJFRFRMU19QVVRfVUlOVDE2X0JFKGlfZGlnaXRfaWR4LCBpX2RpZ2l0X2lkeF9ieXRlcywgMCk7CisgICAgICAgIHN0YXR1cyA9IHBzYV9oYXNoX3VwZGF0ZSgmb3AsIGlfZGlnaXRfaWR4X2J5dGVzLCBJX0RJR0lUX0lEWF9MRU4pOworICAgICAgICBpZiAoc3RhdHVzICE9IFBTQV9TVUNDRVNTKSB7CisgICAgICAgICAgICBnb3RvIGV4aXQ7CisgICAgICAgIH0KKworICAgICAgICBzdGF0dXMgPSBwc2FfaGFzaF91cGRhdGUoJm9wLCBjb25zdF9ieXRlcywgc2l6ZW9mKGNvbnN0X2J5dGVzKSk7CisgICAgICAgIGlmIChzdGF0dXMgIT0gUFNBX1NVQ0NFU1MpIHsKKyAgICAgICAgICAgIGdvdG8gZXhpdDsKKyAgICAgICAgfQorCisgICAgICAgIHN0YXR1cyA9IHBzYV9oYXNoX3VwZGF0ZSgmb3AsIHNlZWQsIHNlZWRfc2l6ZSk7CisgICAgICAgIGlmIChzdGF0dXMgIT0gUFNBX1NVQ0NFU1MpIHsKKyAgICAgICAgICAgIGdvdG8gZXhpdDsKKyAgICAgICAgfQorCisgICAgICAgIHN0YXR1cyA9IHBzYV9oYXNoX2ZpbmlzaCgmb3AsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdHgtPnByaXZhdGVfa2V5W2lfZGlnaXRfaWR4XSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1CRURUTFNfTE1PVFNfTl9IQVNIX0xFTihjdHgtPnBhcmFtcy50eXBlKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZvdXRwdXRfaGFzaF9sZW4pOworICAgICAgICBpZiAoc3RhdHVzICE9IFBTQV9TVUNDRVNTKSB7CisgICAgICAgICAgICBnb3RvIGV4aXQ7CisgICAgICAgIH0KKworICAgICAgICBwc2FfaGFzaF9hYm9ydCgmb3ApOworICAgIH0KKworICAgIGN0eC0+aGF2ZV9wcml2YXRlX2tleSA9IDE7CisKK2V4aXQ6CisgICAgcHNhX2hhc2hfYWJvcnQoJm9wKTsKKworICAgIHJldHVybiBQU0FfVE9fTUJFRFRMU19FUlIoc3RhdHVzKTsKK30KKworaW50IG1iZWR0bHNfbG1vdHNfY2FsY3VsYXRlX3B1YmxpY19rZXkobWJlZHRsc19sbW90c19wdWJsaWNfdCAqY3R4LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbWJlZHRsc19sbW90c19wcml2YXRlX3QgKnByaXZfY3R4KQoreworICAgIHVuc2lnbmVkIGNoYXIgeV9oYXNoZWRfZGlnaXRzW01CRURUTFNfTE1PVFNfUF9TSUdfRElHSVRfQ09VTlRfTUFYXVtNQkVEVExTX0xNT1RTX05fSEFTSF9MRU5fTUFYXTsKKyAgICBpbnQgcmV0ID0gTUJFRFRMU19FUlJfRVJST1JfQ09SUlVQVElPTl9ERVRFQ1RFRDsKKworICAgIC8qIENoZWNrIHRoYXQgYSBwcml2YXRlIGtleSBpcyBsb2FkZWQgKi8KKyAgICBpZiAoIXByaXZfY3R4LT5oYXZlX3ByaXZhdGVfa2V5KSB7CisgICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9MTVNfQkFEX0lOUFVUX0RBVEE7CisgICAgfQorCisgICAgcmV0ID0gaGFzaF9kaWdpdF9hcnJheSgmcHJpdl9jdHgtPnBhcmFtcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICh1bnNpZ25lZCBjaGFyICopIHByaXZfY3R4LT5wcml2YXRlX2tleSwgTlVMTCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIE5VTEwsICh1bnNpZ25lZCBjaGFyICopIHlfaGFzaGVkX2RpZ2l0cyk7CisgICAgaWYgKHJldCkgeworICAgICAgICBnb3RvIGV4aXQ7CisgICAgfQorCisgICAgcmV0ID0gcHVibGljX2tleV9mcm9tX2hhc2hlZF9kaWdpdF9hcnJheSgmcHJpdl9jdHgtPnBhcmFtcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh1bnNpZ25lZCBjaGFyICopIHlfaGFzaGVkX2RpZ2l0cywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGN0eC0+cHVibGljX2tleSk7CisgICAgaWYgKHJldCkgeworICAgICAgICBnb3RvIGV4aXQ7CisgICAgfQorCisgICAgbWVtY3B5KCZjdHgtPnBhcmFtcywgJnByaXZfY3R4LT5wYXJhbXMsCisgICAgICAgICAgIHNpemVvZihjdHgtPnBhcmFtcykpOworCisgICAgY3R4LT5oYXZlX3B1YmxpY19rZXkgPSAxOworCitleGl0OgorICAgIG1iZWR0bHNfcGxhdGZvcm1femVyb2l6ZSh5X2hhc2hlZF9kaWdpdHMsIHNpemVvZih5X2hhc2hlZF9kaWdpdHMpKTsKKworICAgIHJldHVybiByZXQ7Cit9CisKK2ludCBtYmVkdGxzX2xtb3RzX3NpZ24obWJlZHRsc19sbW90c19wcml2YXRlX3QgKmN0eCwKKyAgICAgICAgICAgICAgICAgICAgICAgaW50ICgqZl9ybmcpKHZvaWQgKiwgdW5zaWduZWQgY2hhciAqLCBzaXplX3QpLAorICAgICAgICAgICAgICAgICAgICAgICB2b2lkICpwX3JuZywgY29uc3QgdW5zaWduZWQgY2hhciAqbXNnLCBzaXplX3QgbXNnX3NpemUsCisgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGNoYXIgKnNpZywgc2l6ZV90IHNpZ19zaXplLCBzaXplX3QgKnNpZ19sZW4pCit7CisgICAgdW5zaWduZWQgY2hhciB0bXBfZGlnaXRfYXJyYXlbTUJFRFRMU19MTU9UU19QX1NJR19ESUdJVF9DT1VOVF9NQVhdOworICAgIC8qIENyZWF0ZSBhIHRlbXBvcmFyeSBidWZmZXIgdG8gcHJlcGFyZSB0aGUgc2lnbmF0dXJlIGluLiBUaGlzIGFsbG93cyB1cyB0bworICAgICAqIGZpbmlzaCBjcmVhdGluZyBhIHNpZ25hdHVyZSAoZW5zdXJpbmcgdGhlIHByb2Nlc3MgZG9lc24ndCBmYWlsKSwgYW5kIHRoZW4KKyAgICAgKiBlcmFzZSB0aGUgcHJpdmF0ZSBrZXkgKipiZWZvcmUqKiB3cml0aW5nIGFueSBkYXRhIGludG8gdGhlIHNpZyBwYXJhbWV0ZXIKKyAgICAgKiBidWZmZXIuIElmIGRhdGEgd2VyZSBkaXJlY3RseSB3cml0dGVuIGludG8gdGhlIHNpZyBidWZmZXIsIGl0IG1pZ2h0IGxlYWsKKyAgICAgKiBhIHBhcnRpYWwgc2lnbmF0dXJlIG9uIGZhaWx1cmUsIHdoaWNoIGVmZmVjdGl2ZWx5IGNvbXByb21pc2VzIHRoZSBwcml2YXRlCisgICAgICoga2V5LgorICAgICAqLworICAgIHVuc2lnbmVkIGNoYXIgdG1wX3NpZ1tNQkVEVExTX0xNT1RTX1BfU0lHX0RJR0lUX0NPVU5UX01BWF1bTUJFRFRMU19MTU9UU19OX0hBU0hfTEVOX01BWF07CisgICAgdW5zaWduZWQgY2hhciB0bXBfY19yYW5kb21bTUJFRFRMU19MTU9UU19OX0hBU0hfTEVOX01BWF07CisgICAgaW50IHJldCA9IE1CRURUTFNfRVJSX0VSUk9SX0NPUlJVUFRJT05fREVURUNURUQ7CisKKyAgICBpZiAobXNnID09IE5VTEwgJiYgbXNnX3NpemUgIT0gMCkgeworICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfTE1TX0JBRF9JTlBVVF9EQVRBOworICAgIH0KKworICAgIGlmIChzaWdfc2l6ZSA8IE1CRURUTFNfTE1PVFNfU0lHX0xFTihjdHgtPnBhcmFtcy50eXBlKSkgeworICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfTE1TX0JVRkZFUl9UT09fU01BTEw7CisgICAgfQorCisgICAgLyogQ2hlY2sgdGhhdCBhIHByaXZhdGUga2V5IGlzIGxvYWRlZCAqLworICAgIGlmICghY3R4LT5oYXZlX3ByaXZhdGVfa2V5KSB7CisgICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9MTVNfQkFEX0lOUFVUX0RBVEE7CisgICAgfQorCisgICAgcmV0ID0gZl9ybmcocF9ybmcsIHRtcF9jX3JhbmRvbSwKKyAgICAgICAgICAgICAgICBNQkVEVExTX0xNT1RTX05fSEFTSF9MRU4oY3R4LT5wYXJhbXMudHlwZSkpOworICAgIGlmIChyZXQpIHsKKyAgICAgICAgcmV0dXJuIHJldDsKKyAgICB9CisKKyAgICByZXQgPSBjcmVhdGVfZGlnaXRfYXJyYXlfd2l0aF9jaGVja3N1bSgmY3R4LT5wYXJhbXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbXNnLCBtc2dfc2l6ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0bXBfY19yYW5kb20sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG1wX2RpZ2l0X2FycmF5KTsKKyAgICBpZiAocmV0KSB7CisgICAgICAgIGdvdG8gZXhpdDsKKyAgICB9CisKKyAgICByZXQgPSBoYXNoX2RpZ2l0X2FycmF5KCZjdHgtPnBhcmFtcywgKHVuc2lnbmVkIGNoYXIgKikgY3R4LT5wcml2YXRlX2tleSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIE5VTEwsIHRtcF9kaWdpdF9hcnJheSwgKHVuc2lnbmVkIGNoYXIgKikgdG1wX3NpZyk7CisgICAgaWYgKHJldCkgeworICAgICAgICBnb3RvIGV4aXQ7CisgICAgfQorCisgICAgTUJFRFRMU19QVVRfVUlOVDMyX0JFKGN0eC0+cGFyYW1zLnR5cGUsIHNpZywgTUJFRFRMU19MTU9UU19TSUdfVFlQRV9PRkZTRVQpOworCisgICAgLyogVGVzdCBob29rIHRvIGNoZWNrIGlmIHNpZyBpcyBiZWluZyB3cml0dGVuIHRvIGJlZm9yZSB3ZSBpbnZhbGlkYXRlIHRoZQorICAgICAqIHByaXZhdGUga2V5LgorICAgICAqLworI2lmIGRlZmluZWQoTUJFRFRMU19URVNUX0hPT0tTKQorICAgIGlmIChtYmVkdGxzX2xtb3RzX3NpZ25fcHJpdmF0ZV9rZXlfaW52YWxpZGF0ZWRfaG9vayAhPSBOVUxMKSB7CisgICAgICAgIHJldCA9ICgqbWJlZHRsc19sbW90c19zaWduX3ByaXZhdGVfa2V5X2ludmFsaWRhdGVkX2hvb2spKHNpZyk7CisgICAgICAgIGlmIChyZXQgIT0gMCkgeworICAgICAgICAgICAgcmV0dXJuIHJldDsKKyAgICAgICAgfQorICAgIH0KKyNlbmRpZiAvKiBkZWZpbmVkKE1CRURUTFNfVEVTVF9IT09LUykgKi8KKworICAgIC8qIFdlJ3ZlIGdvdCBhIHZhbGlkIHNpZ25hdHVyZSBub3csIHNvIGl0J3MgdGltZSB0byBtYWtlIHN1cmUgdGhlIHByaXZhdGUKKyAgICAgKiBrZXkgY2FuJ3QgYmUgcmV1c2VkLgorICAgICAqLworICAgIGN0eC0+aGF2ZV9wcml2YXRlX2tleSA9IDA7CisgICAgbWJlZHRsc19wbGF0Zm9ybV96ZXJvaXplKGN0eC0+cHJpdmF0ZV9rZXksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVvZihjdHgtPnByaXZhdGVfa2V5KSk7CisKKyAgICBtZW1jcHkoc2lnICsgTUJFRFRMU19MTU9UU19TSUdfQ19SQU5ET01fT0ZGU0VULCB0bXBfY19yYW5kb20sCisgICAgICAgICAgIE1CRURUTFNfTE1PVFNfQ19SQU5ET01fVkFMVUVfTEVOKGN0eC0+cGFyYW1zLnR5cGUpKTsKKworICAgIG1lbWNweShzaWcgKyBNQkVEVExTX0xNT1RTX1NJR19TSUdOQVRVUkVfT0ZGU0VUKGN0eC0+cGFyYW1zLnR5cGUpLCB0bXBfc2lnLAorICAgICAgICAgICBNQkVEVExTX0xNT1RTX1BfU0lHX0RJR0lUX0NPVU5UKGN0eC0+cGFyYW1zLnR5cGUpCisgICAgICAgICAgICogTUJFRFRMU19MTU9UU19OX0hBU0hfTEVOKGN0eC0+cGFyYW1zLnR5cGUpKTsKKworICAgIGlmIChzaWdfbGVuICE9IE5VTEwpIHsKKyAgICAgICAgKnNpZ19sZW4gPSBNQkVEVExTX0xNT1RTX1NJR19MRU4oY3R4LT5wYXJhbXMudHlwZSk7CisgICAgfQorCisgICAgcmV0ID0gMDsKKworZXhpdDoKKyAgICBtYmVkdGxzX3BsYXRmb3JtX3plcm9pemUodG1wX2RpZ2l0X2FycmF5LCBzaXplb2YodG1wX2RpZ2l0X2FycmF5KSk7CisgICAgbWJlZHRsc19wbGF0Zm9ybV96ZXJvaXplKHRtcF9zaWcsIHNpemVvZih0bXBfc2lnKSk7CisKKyAgICByZXR1cm4gcmV0OworfQorCisjZW5kaWYgLyogZGVmaW5lZChNQkVEVExTX0xNU19QUklWQVRFKSAqLworI2VuZGlmIC8qIGRlZmluZWQoTUJFRFRMU19MTVNfQykgKi8KZGlmZiAtLWdpdCBhL2xpYnJhcnkvbG1vdHMuaCBiL3RmLXBzYS1jcnlwdG8vZHJpdmVycy9idWlsdGluL3NyYy9sbW90cy5oCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBsaWJyYXJ5L2xtb3RzLmgKcmVuYW1lIHRvIHRmLXBzYS1jcnlwdG8vZHJpdmVycy9idWlsdGluL3NyYy9sbW90cy5oCmRpZmYgLS1naXQgYS90Zi1wc2EtY3J5cHRvL2RyaXZlcnMvYnVpbHRpbi9zcmMvbG1zLmMgYi90Zi1wc2EtY3J5cHRvL2RyaXZlcnMvYnVpbHRpbi9zcmMvbG1zLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uN2Y3YmVjMAotLS0gL2Rldi9udWxsCisrKyBiL3RmLXBzYS1jcnlwdG8vZHJpdmVycy9idWlsdGluL3NyYy9sbXMuYwpAQCAtMCwwICsxLDc2OSBAQAorLyoKKyAqICBUaGUgTE1TIHN0YXRlZnVsLWhhc2ggcHVibGljLWtleSBzaWduYXR1cmUgc2NoZW1lCisgKgorICogIENvcHlyaWdodCBUaGUgTWJlZCBUTFMgQ29udHJpYnV0b3JzCisgKiAgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjAgT1IgR1BMLTIuMC1vci1sYXRlcgorICovCisKKy8qCisgKiAgVGhlIGZvbGxvd2luZyBzb3VyY2VzIHdlcmUgcmVmZXJlbmNlZCBpbiB0aGUgZGVzaWduIG9mIHRoaXMgaW1wbGVtZW50YXRpb24KKyAqICBvZiB0aGUgTE1TIGFsZ29yaXRobToKKyAqCisgKiAgWzFdIElFVEYgUkZDODU1NAorICogICAgICBELiBNY0dyZXcsIE0uIEN1cmNpbywgUy5GbHVocmVyCisgKiAgICAgIGh0dHBzOi8vZGF0YXRyYWNrZXIuaWV0Zi5vcmcvZG9jL2h0bWwvcmZjODU1NAorICoKKyAqICBbMl0gTklTVCBTcGVjaWFsIFB1YmxpY2F0aW9uIDgwMC0yMDgKKyAqICAgICAgRGF2aWQgQS4gQ29vcGVyIGV0LiBhbC4KKyAqICAgICAgaHR0cHM6Ly9udmxwdWJzLm5pc3QuZ292L25pc3RwdWJzL1NwZWNpYWxQdWJsaWNhdGlvbnMvTklTVC5TUC44MDAtMjA4LnBkZgorICovCisKKyNpbmNsdWRlICJjb21tb24uaCIKKworI2lmIGRlZmluZWQoTUJFRFRMU19MTVNfQykKKworI2luY2x1ZGUgPHN0cmluZy5oPgorCisjaW5jbHVkZSAibG1vdHMuaCIKKworI2luY2x1ZGUgInBzYS9jcnlwdG8uaCIKKyNpbmNsdWRlICJwc2FfdXRpbF9pbnRlcm5hbC5oIgorI2luY2x1ZGUgIm1iZWR0bHMvbG1zLmgiCisjaW5jbHVkZSAibWJlZHRscy9lcnJvci5oIgorI2luY2x1ZGUgIm1iZWR0bHMvcGxhdGZvcm1fdXRpbC5oIgorCisjaW5jbHVkZSAibWJlZHRscy9wbGF0Zm9ybS5oIgorCisvKiBEZWZpbmUgYSBsb2NhbCB0cmFuc2xhdGluZyBmdW5jdGlvbiB0byBzYXZlIGNvZGUgc2l6ZSBieSBub3QgdXNpbmcgdG9vIG1hbnkKKyAqIGFyZ3VtZW50cyBpbiBlYWNoIHRyYW5zbGF0aW5nIHBsYWNlLiAqLworc3RhdGljIGludCBsb2NhbF9lcnJfdHJhbnNsYXRpb24ocHNhX3N0YXR1c190IHN0YXR1cykKK3sKKyAgICByZXR1cm4gcHNhX3N0YXR1c190b19tYmVkdGxzKHN0YXR1cywgcHNhX3RvX2xtc19lcnJvcnMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBUlJBWV9MRU5HVEgocHNhX3RvX2xtc19lcnJvcnMpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHNhX2dlbmVyaWNfc3RhdHVzX3RvX21iZWR0bHMpOworfQorI2RlZmluZSBQU0FfVE9fTUJFRFRMU19FUlIoc3RhdHVzKSBsb2NhbF9lcnJfdHJhbnNsYXRpb24oc3RhdHVzKQorCisjZGVmaW5lIFNJR19RX0xFQUZfSURfT0ZGU0VUICAgICAoMCkKKyNkZWZpbmUgU0lHX09UU19TSUdfT0ZGU0VUICAgICAgIChTSUdfUV9MRUFGX0lEX09GRlNFVCArIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNQkVEVExTX0xNT1RTX1FfTEVBRl9JRF9MRU4pCisjZGVmaW5lIFNJR19UWVBFX09GRlNFVChvdHN0eXBlKSAoU0lHX09UU19TSUdfT0ZGU0VUICAgKyBcCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTUJFRFRMU19MTU9UU19TSUdfTEVOKG90c3R5cGUpKQorI2RlZmluZSBTSUdfUEFUSF9PRkZTRVQob3RzdHlwZSkgKFNJR19UWVBFX09GRlNFVChvdHN0eXBlKSArIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNQkVEVExTX0xNU19UWVBFX0xFTikKKworI2RlZmluZSBQVUJMSUNfS0VZX1RZUEVfT0ZGU0VUICAgICAgKDApCisjZGVmaW5lIFBVQkxJQ19LRVlfT1RTVFlQRV9PRkZTRVQgICAoUFVCTElDX0tFWV9UWVBFX09GRlNFVCArIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNQkVEVExTX0xNU19UWVBFX0xFTikKKyNkZWZpbmUgUFVCTElDX0tFWV9JX0tFWV9JRF9PRkZTRVQgIChQVUJMSUNfS0VZX09UU1RZUEVfT0ZGU0VUICArIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNQkVEVExTX0xNT1RTX1RZUEVfTEVOKQorI2RlZmluZSBQVUJMSUNfS0VZX1JPT1RfTk9ERV9PRkZTRVQgKFBVQkxJQ19LRVlfSV9LRVlfSURfT0ZGU0VUICsgXAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1CRURUTFNfTE1PVFNfSV9LRVlfSURfTEVOKQorCisKKy8qIEN1cnJlbnRseSBvbmx5IHN1cHBvcnQgSD0xMCAqLworI2RlZmluZSBIX1RSRUVfSEVJR0hUX01BWCAgICAgICAgICAgICAgICAgIDEwCisjZGVmaW5lIE1FUktMRV9UUkVFX05PREVfQU0odHlwZSkgICAgICAgICAgKChzaXplX3QpIDEgPDwgKE1CRURUTFNfTE1TX0hfVFJFRV9IRUlHSFQodHlwZSkgKyAxdSkpCisjZGVmaW5lIE1FUktMRV9UUkVFX0xFQUZfTk9ERV9BTSh0eXBlKSAgICAgKChzaXplX3QpIDEgPDwgTUJFRFRMU19MTVNfSF9UUkVFX0hFSUdIVCh0eXBlKSkKKyNkZWZpbmUgTUVSS0xFX1RSRUVfSU5URVJOQUxfTk9ERV9BTSh0eXBlKSAoKHVuc2lnbmVkIGludCkgXAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMXUgPDwgTUJFRFRMU19MTVNfSF9UUkVFX0hFSUdIVCh0eXBlKSkpCisKKyNkZWZpbmUgRF9DT05TVF9MRU4gICAgICAgICAgICgyKQorc3RhdGljIGNvbnN0IHVuc2lnbmVkIGNoYXIgRF9MRUFGX0NPTlNUQU5UX0JZVEVTW0RfQ09OU1RfTEVOXSA9IHsgMHg4MiwgMHg4MiB9Oworc3RhdGljIGNvbnN0IHVuc2lnbmVkIGNoYXIgRF9JTlRSX0NPTlNUQU5UX0JZVEVTW0RfQ09OU1RfTEVOXSA9IHsgMHg4MywgMHg4MyB9OworCisKKy8qIENhbGN1bGF0ZSB0aGUgdmFsdWUgb2YgYSBsZWFmIG5vZGUgb2YgdGhlIE1lcmtsZSB0cmVlICh3aGljaCBpcyBhIGhhc2ggb2YgYQorICogcHVibGljIGtleSBhbmQgc29tZSBvdGhlciBwYXJhbWV0ZXJzIGxpa2UgdGhlIGxlYWYgaW5kZXgpLiBUaGlzIGZ1bmN0aW9uCisgKiBpbXBsZW1lbnRzIFJGQzg1NTQgc2VjdGlvbiA1LjMsIGluIHRoZSBjYXNlIHdoZXJlIHIgPj0gMl5oLgorICoKKyAqICBwYXJhbXMgICAgICAgICAgICAgIFRoZSBMTVMgcGFyYW1ldGVyIHNldCwgdGhlIHVuZGVybHlpbmcgTE1PVFMKKyAqICAgICAgICAgICAgICAgICAgICAgIHBhcmFtZXRlciBzZXQsIGFuZCBJIHZhbHVlIHdoaWNoIGRlc2NyaWJlIHRoZSBrZXkKKyAqICAgICAgICAgICAgICAgICAgICAgIGJlaW5nIHVzZWQuCisgKgorICogIHB1Yl9rZXkgICAgICAgICAgICAgVGhlIHB1YmxpYyBrZXkgb2YgdGhlIHByaXZhdGUgd2hvc2UgaW5kZXgKKyAqICAgICAgICAgICAgICAgICAgICAgIGNvcnJlc3BvbmRzIHRvIHRoZSBpbmRleCBvZiB0aGlzIGxlYWYgbm9kZS4gVGhpcworICogICAgICAgICAgICAgICAgICAgICAgaXMgYSBoYXNoIG91dHB1dC4KKyAqCisgKiAgcl9ub2RlX2lkeCAgICAgICAgICBUaGUgaW5kZXggb2YgdGhpcyBub2RlIGluIHRoZSBNZXJrbGUgdHJlZS4gTm90ZQorICogICAgICAgICAgICAgICAgICAgICAgdGhhdCB0aGUgcm9vdCBub2RlIG9mIHRoZSBNZXJrbGUgdHJlZSBpcworICogICAgICAgICAgICAgICAgICAgICAgMS1pbmRleGVkLgorICoKKyAqICBvdXQgICAgICAgICAgICAgICAgIFRoZSBvdXRwdXQgbm9kZSB2YWx1ZSwgd2hpY2ggaXMgYSBoYXNoIG91dHB1dC4KKyAqLworc3RhdGljIGludCBjcmVhdGVfbWVya2xlX2xlYWZfdmFsdWUoY29uc3QgbWJlZHRsc19sbXNfcGFyYW1ldGVyc190ICpwYXJhbXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBjaGFyICpwdWJfa2V5LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50IHJfbm9kZV9pZHgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBjaGFyICpvdXQpCit7CisgICAgcHNhX2hhc2hfb3BlcmF0aW9uX3Qgb3A7CisgICAgcHNhX3N0YXR1c190IHN0YXR1cyA9IFBTQV9FUlJPUl9DT1JSVVBUSU9OX0RFVEVDVEVEOworICAgIHNpemVfdCBvdXRwdXRfaGFzaF9sZW47CisgICAgdW5zaWduZWQgY2hhciByX25vZGVfaWR4X2J5dGVzWzRdOworCisgICAgb3AgPSBwc2FfaGFzaF9vcGVyYXRpb25faW5pdCgpOworICAgIHN0YXR1cyA9IHBzYV9oYXNoX3NldHVwKCZvcCwgUFNBX0FMR19TSEFfMjU2KTsKKyAgICBpZiAoc3RhdHVzICE9IFBTQV9TVUNDRVNTKSB7CisgICAgICAgIGdvdG8gZXhpdDsKKyAgICB9CisKKyAgICBzdGF0dXMgPSBwc2FfaGFzaF91cGRhdGUoJm9wLCBwYXJhbXMtPklfa2V5X2lkZW50aWZpZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1CRURUTFNfTE1PVFNfSV9LRVlfSURfTEVOKTsKKyAgICBpZiAoc3RhdHVzICE9IFBTQV9TVUNDRVNTKSB7CisgICAgICAgIGdvdG8gZXhpdDsKKyAgICB9CisKKyAgICBNQkVEVExTX1BVVF9VSU5UMzJfQkUocl9ub2RlX2lkeCwgcl9ub2RlX2lkeF9ieXRlcywgMCk7CisgICAgc3RhdHVzID0gcHNhX2hhc2hfdXBkYXRlKCZvcCwgcl9ub2RlX2lkeF9ieXRlcywgNCk7CisgICAgaWYgKHN0YXR1cyAhPSBQU0FfU1VDQ0VTUykgeworICAgICAgICBnb3RvIGV4aXQ7CisgICAgfQorCisgICAgc3RhdHVzID0gcHNhX2hhc2hfdXBkYXRlKCZvcCwgRF9MRUFGX0NPTlNUQU5UX0JZVEVTLCBEX0NPTlNUX0xFTik7CisgICAgaWYgKHN0YXR1cyAhPSBQU0FfU1VDQ0VTUykgeworICAgICAgICBnb3RvIGV4aXQ7CisgICAgfQorCisgICAgc3RhdHVzID0gcHNhX2hhc2hfdXBkYXRlKCZvcCwgcHViX2tleSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTUJFRFRMU19MTU9UU19OX0hBU0hfTEVOKHBhcmFtcy0+b3RzdHlwZSkpOworICAgIGlmIChzdGF0dXMgIT0gUFNBX1NVQ0NFU1MpIHsKKyAgICAgICAgZ290byBleGl0OworICAgIH0KKworICAgIHN0YXR1cyA9IHBzYV9oYXNoX2ZpbmlzaCgmb3AsIG91dCwgTUJFRFRMU19MTVNfTV9OT0RFX0JZVEVTKHBhcmFtcy0+dHlwZSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZvdXRwdXRfaGFzaF9sZW4pOworICAgIGlmIChzdGF0dXMgIT0gUFNBX1NVQ0NFU1MpIHsKKyAgICAgICAgZ290byBleGl0OworICAgIH0KKworZXhpdDoKKyAgICBwc2FfaGFzaF9hYm9ydCgmb3ApOworCisgICAgcmV0dXJuIFBTQV9UT19NQkVEVExTX0VSUihzdGF0dXMpOworfQorCisvKiBDYWxjdWxhdGUgdGhlIHZhbHVlIG9mIGFuIGludGVybmFsIG5vZGUgb2YgdGhlIE1lcmtsZSB0cmVlICh3aGljaCBpcyBhIGhhc2gKKyAqIG9mIGEgcHVibGljIGtleSBhbmQgc29tZSBvdGhlciBwYXJhbWV0ZXJzIGxpa2UgdGhlIG5vZGUgaW5kZXgpLiBUaGlzIGZ1bmN0aW9uCisgKiBpbXBsZW1lbnRzIFJGQzg1NTQgc2VjdGlvbiA1LjMsIGluIHRoZSBjYXNlIHdoZXJlIHIgPCAyXmguCisgKgorICogIHBhcmFtcyAgICAgICAgICAgICAgVGhlIExNUyBwYXJhbWV0ZXIgc2V0LCB0aGUgdW5kZXJseWluZyBMTU9UUworICogICAgICAgICAgICAgICAgICAgICAgcGFyYW1ldGVyIHNldCwgYW5kIEkgdmFsdWUgd2hpY2ggZGVzY3JpYmUgdGhlIGtleQorICogICAgICAgICAgICAgICAgICAgICAgYmVpbmcgdXNlZC4KKyAqCisgKiAgbGVmdF9ub2RlICAgICAgICAgICBUaGUgdmFsdWUgb2YgdGhlIGNoaWxkIG9mIHRoaXMgbm9kZSB3aGljaCBpcyBvbgorICogICAgICAgICAgICAgICAgICAgICAgdGhlIGxlZnQtaGFuZCBzaWRlLiBBcyB3aXRoIGFsbCBub2RlcyBvbiB0aGUKKyAqICAgICAgICAgICAgICAgICAgICAgIE1lcmtsZSB0cmVlLCB0aGlzIGlzIGEgaGFzaCBvdXRwdXQuCisgKgorICogIHJpZ2h0X25vZGUgICAgICAgICAgVGhlIHZhbHVlIG9mIHRoZSBjaGlsZCBvZiB0aGlzIG5vZGUgd2hpY2ggaXMgb24KKyAqICAgICAgICAgICAgICAgICAgICAgIHRoZSByaWdodC1oYW5kIHNpZGUuIEFzIHdpdGggYWxsIG5vZGVzIG9uIHRoZQorICogICAgICAgICAgICAgICAgICAgICAgTWVya2xlIHRyZWUsIHRoaXMgaXMgYSBoYXNoIG91dHB1dC4KKyAqCisgKiAgcl9ub2RlX2lkeCAgICAgICAgICBUaGUgaW5kZXggb2YgdGhpcyBub2RlIGluIHRoZSBNZXJrbGUgdHJlZS4gTm90ZQorICogICAgICAgICAgICAgICAgICAgICAgdGhhdCB0aGUgcm9vdCBub2RlIG9mIHRoZSBNZXJrbGUgdHJlZSBpcworICogICAgICAgICAgICAgICAgICAgICAgMS1pbmRleGVkLgorICoKKyAqICBvdXQgICAgICAgICAgICAgICAgIFRoZSBvdXRwdXQgbm9kZSB2YWx1ZSwgd2hpY2ggaXMgYSBoYXNoIG91dHB1dC4KKyAqLworc3RhdGljIGludCBjcmVhdGVfbWVya2xlX2ludGVybmFsX3ZhbHVlKGNvbnN0IG1iZWR0bHNfbG1zX3BhcmFtZXRlcnNfdCAqcGFyYW1zLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgKmxlZnRfbm9kZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1bnNpZ25lZCBjaGFyICpyaWdodF9ub2RlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCByX25vZGVfaWR4LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGNoYXIgKm91dCkKK3sKKyAgICBwc2FfaGFzaF9vcGVyYXRpb25fdCBvcDsKKyAgICBwc2Ffc3RhdHVzX3Qgc3RhdHVzID0gUFNBX0VSUk9SX0NPUlJVUFRJT05fREVURUNURUQ7CisgICAgc2l6ZV90IG91dHB1dF9oYXNoX2xlbjsKKyAgICB1bnNpZ25lZCBjaGFyIHJfbm9kZV9pZHhfYnl0ZXNbNF07CisKKyAgICBvcCA9IHBzYV9oYXNoX29wZXJhdGlvbl9pbml0KCk7CisgICAgc3RhdHVzID0gcHNhX2hhc2hfc2V0dXAoJm9wLCBQU0FfQUxHX1NIQV8yNTYpOworICAgIGlmIChzdGF0dXMgIT0gUFNBX1NVQ0NFU1MpIHsKKyAgICAgICAgZ290byBleGl0OworICAgIH0KKworICAgIHN0YXR1cyA9IHBzYV9oYXNoX3VwZGF0ZSgmb3AsIHBhcmFtcy0+SV9rZXlfaWRlbnRpZmllciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTUJFRFRMU19MTU9UU19JX0tFWV9JRF9MRU4pOworICAgIGlmIChzdGF0dXMgIT0gUFNBX1NVQ0NFU1MpIHsKKyAgICAgICAgZ290byBleGl0OworICAgIH0KKworICAgIE1CRURUTFNfUFVUX1VJTlQzMl9CRShyX25vZGVfaWR4LCByX25vZGVfaWR4X2J5dGVzLCAwKTsKKyAgICBzdGF0dXMgPSBwc2FfaGFzaF91cGRhdGUoJm9wLCByX25vZGVfaWR4X2J5dGVzLCA0KTsKKyAgICBpZiAoc3RhdHVzICE9IFBTQV9TVUNDRVNTKSB7CisgICAgICAgIGdvdG8gZXhpdDsKKyAgICB9CisKKyAgICBzdGF0dXMgPSBwc2FfaGFzaF91cGRhdGUoJm9wLCBEX0lOVFJfQ09OU1RBTlRfQllURVMsIERfQ09OU1RfTEVOKTsKKyAgICBpZiAoc3RhdHVzICE9IFBTQV9TVUNDRVNTKSB7CisgICAgICAgIGdvdG8gZXhpdDsKKyAgICB9CisKKyAgICBzdGF0dXMgPSBwc2FfaGFzaF91cGRhdGUoJm9wLCBsZWZ0X25vZGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1CRURUTFNfTE1TX01fTk9ERV9CWVRFUyhwYXJhbXMtPnR5cGUpKTsKKyAgICBpZiAoc3RhdHVzICE9IFBTQV9TVUNDRVNTKSB7CisgICAgICAgIGdvdG8gZXhpdDsKKyAgICB9CisKKyAgICBzdGF0dXMgPSBwc2FfaGFzaF91cGRhdGUoJm9wLCByaWdodF9ub2RlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNQkVEVExTX0xNU19NX05PREVfQllURVMocGFyYW1zLT50eXBlKSk7CisgICAgaWYgKHN0YXR1cyAhPSBQU0FfU1VDQ0VTUykgeworICAgICAgICBnb3RvIGV4aXQ7CisgICAgfQorCisgICAgc3RhdHVzID0gcHNhX2hhc2hfZmluaXNoKCZvcCwgb3V0LCBNQkVEVExTX0xNU19NX05PREVfQllURVMocGFyYW1zLT50eXBlKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJm91dHB1dF9oYXNoX2xlbik7CisgICAgaWYgKHN0YXR1cyAhPSBQU0FfU1VDQ0VTUykgeworICAgICAgICBnb3RvIGV4aXQ7CisgICAgfQorCitleGl0OgorICAgIHBzYV9oYXNoX2Fib3J0KCZvcCk7CisKKyAgICByZXR1cm4gUFNBX1RPX01CRURUTFNfRVJSKHN0YXR1cyk7Cit9CisKK3ZvaWQgbWJlZHRsc19sbXNfcHVibGljX2luaXQobWJlZHRsc19sbXNfcHVibGljX3QgKmN0eCkKK3sKKyAgICBtZW1zZXQoY3R4LCAwLCBzaXplb2YoKmN0eCkpOworfQorCit2b2lkIG1iZWR0bHNfbG1zX3B1YmxpY19mcmVlKG1iZWR0bHNfbG1zX3B1YmxpY190ICpjdHgpCit7CisgICAgaWYgKGN0eCA9PSBOVUxMKSB7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBtYmVkdGxzX3BsYXRmb3JtX3plcm9pemUoY3R4LCBzaXplb2YoKmN0eCkpOworfQorCitpbnQgbWJlZHRsc19sbXNfaW1wb3J0X3B1YmxpY19rZXkobWJlZHRsc19sbXNfcHVibGljX3QgKmN0eCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1bnNpZ25lZCBjaGFyICprZXksIHNpemVfdCBrZXlfc2l6ZSkKK3sKKyAgICBtYmVkdGxzX2xtc19hbGdvcml0aG1fdHlwZV90IHR5cGU7CisgICAgbWJlZHRsc19sbW90c19hbGdvcml0aG1fdHlwZV90IG90c3R5cGU7CisKKyAgICB0eXBlID0gKG1iZWR0bHNfbG1zX2FsZ29yaXRobV90eXBlX3QpIE1CRURUTFNfR0VUX1VJTlQzMl9CRShrZXksIFBVQkxJQ19LRVlfVFlQRV9PRkZTRVQpOworICAgIGlmICh0eXBlICE9IE1CRURUTFNfTE1TX1NIQTI1Nl9NMzJfSDEwKSB7CisgICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9MTVNfQkFEX0lOUFVUX0RBVEE7CisgICAgfQorICAgIGN0eC0+cGFyYW1zLnR5cGUgPSB0eXBlOworCisgICAgaWYgKGtleV9zaXplICE9IE1CRURUTFNfTE1TX1BVQkxJQ19LRVlfTEVOKGN0eC0+cGFyYW1zLnR5cGUpKSB7CisgICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9MTVNfQkFEX0lOUFVUX0RBVEE7CisgICAgfQorCisgICAgb3RzdHlwZSA9IChtYmVkdGxzX2xtb3RzX2FsZ29yaXRobV90eXBlX3QpCisgICAgICAgICAgICAgIE1CRURUTFNfR0VUX1VJTlQzMl9CRShrZXksIFBVQkxJQ19LRVlfT1RTVFlQRV9PRkZTRVQpOworICAgIGlmIChvdHN0eXBlICE9IE1CRURUTFNfTE1PVFNfU0hBMjU2X04zMl9XOCkgeworICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfTE1TX0JBRF9JTlBVVF9EQVRBOworICAgIH0KKyAgICBjdHgtPnBhcmFtcy5vdHN0eXBlID0gb3RzdHlwZTsKKworICAgIG1lbWNweShjdHgtPnBhcmFtcy5JX2tleV9pZGVudGlmaWVyLAorICAgICAgICAgICBrZXkgKyBQVUJMSUNfS0VZX0lfS0VZX0lEX09GRlNFVCwKKyAgICAgICAgICAgTUJFRFRMU19MTU9UU19JX0tFWV9JRF9MRU4pOworICAgIG1lbWNweShjdHgtPlRfMV9wdWJfa2V5LCBrZXkgKyBQVUJMSUNfS0VZX1JPT1RfTk9ERV9PRkZTRVQsCisgICAgICAgICAgIE1CRURUTFNfTE1TX01fTk9ERV9CWVRFUyhjdHgtPnBhcmFtcy50eXBlKSk7CisKKyAgICBjdHgtPmhhdmVfcHVibGljX2tleSA9IDE7CisKKyAgICByZXR1cm4gMDsKK30KKworaW50IG1iZWR0bHNfbG1zX2V4cG9ydF9wdWJsaWNfa2V5KGNvbnN0IG1iZWR0bHNfbG1zX3B1YmxpY190ICpjdHgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgY2hhciAqa2V5LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBrZXlfc2l6ZSwgc2l6ZV90ICprZXlfbGVuKQoreworICAgIGlmIChrZXlfc2l6ZSA8IE1CRURUTFNfTE1TX1BVQkxJQ19LRVlfTEVOKGN0eC0+cGFyYW1zLnR5cGUpKSB7CisgICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9MTVNfQlVGRkVSX1RPT19TTUFMTDsKKyAgICB9CisKKyAgICBpZiAoIWN0eC0+aGF2ZV9wdWJsaWNfa2V5KSB7CisgICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9MTVNfQkFEX0lOUFVUX0RBVEE7CisgICAgfQorCisgICAgTUJFRFRMU19QVVRfVUlOVDMyX0JFKGN0eC0+cGFyYW1zLnR5cGUsIGtleSwgUFVCTElDX0tFWV9UWVBFX09GRlNFVCk7CisgICAgTUJFRFRMU19QVVRfVUlOVDMyX0JFKGN0eC0+cGFyYW1zLm90c3R5cGUsIGtleSwgUFVCTElDX0tFWV9PVFNUWVBFX09GRlNFVCk7CisgICAgbWVtY3B5KGtleSArIFBVQkxJQ19LRVlfSV9LRVlfSURfT0ZGU0VULAorICAgICAgICAgICBjdHgtPnBhcmFtcy5JX2tleV9pZGVudGlmaWVyLAorICAgICAgICAgICBNQkVEVExTX0xNT1RTX0lfS0VZX0lEX0xFTik7CisgICAgbWVtY3B5KGtleSArUFVCTElDX0tFWV9ST09UX05PREVfT0ZGU0VULAorICAgICAgICAgICBjdHgtPlRfMV9wdWJfa2V5LAorICAgICAgICAgICBNQkVEVExTX0xNU19NX05PREVfQllURVMoY3R4LT5wYXJhbXMudHlwZSkpOworCisgICAgaWYgKGtleV9sZW4gIT0gTlVMTCkgeworICAgICAgICAqa2V5X2xlbiA9IE1CRURUTFNfTE1TX1BVQkxJQ19LRVlfTEVOKGN0eC0+cGFyYW1zLnR5cGUpOworICAgIH0KKworICAgIHJldHVybiAwOworfQorCitpbnQgbWJlZHRsc19sbXNfdmVyaWZ5KGNvbnN0IG1iZWR0bHNfbG1zX3B1YmxpY190ICpjdHgsCisgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgKm1zZywgc2l6ZV90IG1zZ19zaXplLAorICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1bnNpZ25lZCBjaGFyICpzaWcsIHNpemVfdCBzaWdfc2l6ZSkKK3sKKyAgICB1bnNpZ25lZCBpbnQgcV9sZWFmX2lkZW50aWZpZXI7CisgICAgdW5zaWduZWQgY2hhciBLY19jYW5kaWRhdGVfb3RzX3B1Yl9rZXlbTUJFRFRMU19MTU9UU19OX0hBU0hfTEVOX01BWF07CisgICAgdW5zaWduZWQgY2hhciBUY19jYW5kaWRhdGVfcm9vdF9ub2RlW01CRURUTFNfTE1TX01fTk9ERV9CWVRFU19NQVhdOworICAgIHVuc2lnbmVkIGludCBoZWlnaHQ7CisgICAgdW5zaWduZWQgaW50IGN1cnJfbm9kZV9pZDsKKyAgICB1bnNpZ25lZCBpbnQgcGFyZW50X25vZGVfaWQ7CisgICAgY29uc3QgdW5zaWduZWQgY2hhciAqbGVmdF9ub2RlOworICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgKnJpZ2h0X25vZGU7CisgICAgbWJlZHRsc19sbW90c19wYXJhbWV0ZXJzX3Qgb3RzX3BhcmFtczsKKyAgICBpbnQgcmV0ID0gTUJFRFRMU19FUlJfRVJST1JfQ09SUlVQVElPTl9ERVRFQ1RFRDsKKworICAgIGlmICghY3R4LT5oYXZlX3B1YmxpY19rZXkpIHsKKyAgICAgICAgcmV0dXJuIE1CRURUTFNfRVJSX0xNU19CQURfSU5QVVRfREFUQTsKKyAgICB9CisKKyAgICBpZiAoY3R4LT5wYXJhbXMudHlwZQorICAgICAgICAhPSBNQkVEVExTX0xNU19TSEEyNTZfTTMyX0gxMCkgeworICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfTE1TX0JBRF9JTlBVVF9EQVRBOworICAgIH0KKworICAgIGlmIChjdHgtPnBhcmFtcy5vdHN0eXBlCisgICAgICAgICE9IE1CRURUTFNfTE1PVFNfU0hBMjU2X04zMl9XOCkgeworICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfTE1TX0JBRF9JTlBVVF9EQVRBOworICAgIH0KKworICAgIGlmIChzaWdfc2l6ZSAhPSBNQkVEVExTX0xNU19TSUdfTEVOKGN0eC0+cGFyYW1zLnR5cGUsIGN0eC0+cGFyYW1zLm90c3R5cGUpKSB7CisgICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9MTVNfVkVSSUZZX0ZBSUxFRDsKKyAgICB9CisKKyAgICBpZiAoc2lnX3NpemUgPCBTSUdfT1RTX1NJR19PRkZTRVQgKyBNQkVEVExTX0xNT1RTX1RZUEVfTEVOKSB7CisgICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9MTVNfVkVSSUZZX0ZBSUxFRDsKKyAgICB9CisKKyAgICBpZiAoTUJFRFRMU19HRVRfVUlOVDMyX0JFKHNpZywgU0lHX09UU19TSUdfT0ZGU0VUICsgTUJFRFRMU19MTU9UU19TSUdfVFlQRV9PRkZTRVQpCisgICAgICAgICE9IE1CRURUTFNfTE1PVFNfU0hBMjU2X04zMl9XOCkgeworICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfTE1TX1ZFUklGWV9GQUlMRUQ7CisgICAgfQorCisgICAgaWYgKHNpZ19zaXplIDwgU0lHX1RZUEVfT0ZGU0VUKGN0eC0+cGFyYW1zLm90c3R5cGUpICsgTUJFRFRMU19MTVNfVFlQRV9MRU4pIHsKKyAgICAgICAgcmV0dXJuIE1CRURUTFNfRVJSX0xNU19WRVJJRllfRkFJTEVEOworICAgIH0KKworICAgIGlmIChNQkVEVExTX0dFVF9VSU5UMzJfQkUoc2lnLCBTSUdfVFlQRV9PRkZTRVQoY3R4LT5wYXJhbXMub3RzdHlwZSkpCisgICAgICAgICE9IE1CRURUTFNfTE1TX1NIQTI1Nl9NMzJfSDEwKSB7CisgICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9MTVNfVkVSSUZZX0ZBSUxFRDsKKyAgICB9CisKKworICAgIHFfbGVhZl9pZGVudGlmaWVyID0gTUJFRFRMU19HRVRfVUlOVDMyX0JFKHNpZywgU0lHX1FfTEVBRl9JRF9PRkZTRVQpOworCisgICAgaWYgKHFfbGVhZl9pZGVudGlmaWVyID49IE1FUktMRV9UUkVFX0xFQUZfTk9ERV9BTShjdHgtPnBhcmFtcy50eXBlKSkgeworICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfTE1TX1ZFUklGWV9GQUlMRUQ7CisgICAgfQorCisgICAgbWVtY3B5KG90c19wYXJhbXMuSV9rZXlfaWRlbnRpZmllciwKKyAgICAgICAgICAgY3R4LT5wYXJhbXMuSV9rZXlfaWRlbnRpZmllciwKKyAgICAgICAgICAgTUJFRFRMU19MTU9UU19JX0tFWV9JRF9MRU4pOworICAgIE1CRURUTFNfUFVUX1VJTlQzMl9CRShxX2xlYWZfaWRlbnRpZmllciwgb3RzX3BhcmFtcy5xX2xlYWZfaWRlbnRpZmllciwgMCk7CisgICAgb3RzX3BhcmFtcy50eXBlID0gY3R4LT5wYXJhbXMub3RzdHlwZTsKKworICAgIHJldCA9IG1iZWR0bHNfbG1vdHNfY2FsY3VsYXRlX3B1YmxpY19rZXlfY2FuZGlkYXRlKCZvdHNfcGFyYW1zLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1zZywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtc2dfc2l6ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaWcgKyBTSUdfT1RTX1NJR19PRkZTRVQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTUJFRFRMU19MTU9UU19TSUdfTEVOKGN0eC0+cGFyYW1zLm90c3R5cGUpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEtjX2NhbmRpZGF0ZV9vdHNfcHViX2tleSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplb2YoS2NfY2FuZGlkYXRlX290c19wdWJfa2V5KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOVUxMKTsKKyAgICBpZiAocmV0ICE9IDApIHsKKyAgICAgICAgcmV0dXJuIE1CRURUTFNfRVJSX0xNU19WRVJJRllfRkFJTEVEOworICAgIH0KKworICAgIGNyZWF0ZV9tZXJrbGVfbGVhZl92YWx1ZSgKKyAgICAgICAgJmN0eC0+cGFyYW1zLAorICAgICAgICBLY19jYW5kaWRhdGVfb3RzX3B1Yl9rZXksCisgICAgICAgIE1FUktMRV9UUkVFX0lOVEVSTkFMX05PREVfQU0oY3R4LT5wYXJhbXMudHlwZSkgKyBxX2xlYWZfaWRlbnRpZmllciwKKyAgICAgICAgVGNfY2FuZGlkYXRlX3Jvb3Rfbm9kZSk7CisKKyAgICBjdXJyX25vZGVfaWQgPSBNRVJLTEVfVFJFRV9JTlRFUk5BTF9OT0RFX0FNKGN0eC0+cGFyYW1zLnR5cGUpICsKKyAgICAgICAgICAgICAgICAgICBxX2xlYWZfaWRlbnRpZmllcjsKKworICAgIGZvciAoaGVpZ2h0ID0gMDsgaGVpZ2h0IDwgTUJFRFRMU19MTVNfSF9UUkVFX0hFSUdIVChjdHgtPnBhcmFtcy50eXBlKTsKKyAgICAgICAgIGhlaWdodCsrKSB7CisgICAgICAgIHBhcmVudF9ub2RlX2lkID0gY3Vycl9ub2RlX2lkIC8gMjsKKworICAgICAgICAvKiBMZWZ0L3JpZ2h0IG5vZGUgb3JkZXJpbmcgbWF0dGVycyBmb3IgdGhlIGhhc2ggKi8KKyAgICAgICAgaWYgKGN1cnJfbm9kZV9pZCAmIDEpIHsKKyAgICAgICAgICAgIGxlZnRfbm9kZSA9IHNpZyArIFNJR19QQVRIX09GRlNFVChjdHgtPnBhcmFtcy5vdHN0eXBlKSArCisgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQgKiBNQkVEVExTX0xNU19NX05PREVfQllURVMoY3R4LT5wYXJhbXMudHlwZSk7CisgICAgICAgICAgICByaWdodF9ub2RlID0gVGNfY2FuZGlkYXRlX3Jvb3Rfbm9kZTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGxlZnRfbm9kZSA9IFRjX2NhbmRpZGF0ZV9yb290X25vZGU7CisgICAgICAgICAgICByaWdodF9ub2RlID0gc2lnICsgU0lHX1BBVEhfT0ZGU0VUKGN0eC0+cGFyYW1zLm90c3R5cGUpICsKKyAgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQgKiBNQkVEVExTX0xNU19NX05PREVfQllURVMoY3R4LT5wYXJhbXMudHlwZSk7CisgICAgICAgIH0KKworICAgICAgICBjcmVhdGVfbWVya2xlX2ludGVybmFsX3ZhbHVlKCZjdHgtPnBhcmFtcywgbGVmdF9ub2RlLCByaWdodF9ub2RlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhcmVudF9ub2RlX2lkLCBUY19jYW5kaWRhdGVfcm9vdF9ub2RlKTsKKworICAgICAgICBjdXJyX25vZGVfaWQgLz0gMjsKKyAgICB9CisKKyAgICBpZiAobWVtY21wKFRjX2NhbmRpZGF0ZV9yb290X25vZGUsIGN0eC0+VF8xX3B1Yl9rZXksCisgICAgICAgICAgICAgICBNQkVEVExTX0xNU19NX05PREVfQllURVMoY3R4LT5wYXJhbXMudHlwZSkpKSB7CisgICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9MTVNfVkVSSUZZX0ZBSUxFRDsKKyAgICB9CisKKyAgICByZXR1cm4gMDsKK30KKworI2lmIGRlZmluZWQoTUJFRFRMU19MTVNfUFJJVkFURSkKKworLyogQ2FsY3VsYXRlIGEgZnVsbCBNZXJrbGUgdHJlZSBiYXNlZCBvbiBhIHByaXZhdGUga2V5LiBUaGlzIGZ1bmN0aW9uCisgKiBpbXBsZW1lbnRzIFJGQzg1NTQgc2VjdGlvbiA1LjMsIGFuZCBpcyB1c2VkIHRvIGdlbmVyYXRlIGEgcHVibGljIGtleSAoYXMgdGhlCisgKiBwdWJsaWMga2V5IGlzIHRoZSByb290IG5vZGUgb2YgdGhlIE1lcmtsZSB0cmVlKS4KKyAqCisgKiAgY3R4ICAgICAgICAgICAgICAgICBUaGUgTE1TIHByaXZhdGUgY29udGV4dCwgY29udGFpbmluZyBhIHBhcmFtZXRlcgorICogICAgICAgICAgICAgICAgICAgICAgc2V0IGFuZCBwcml2YXRlIGtleSBtYXRlcmlhbCBjb25zaXN0aW5nIG9mIGJvdGgKKyAqICAgICAgICAgICAgICAgICAgICAgIHB1YmxpYyBhbmQgcHJpdmF0ZSBPVFMuCisgKgorICogIHRyZWUgICAgICAgICAgICAgICAgVGhlIG91dHB1dCB0cmVlLCB3aGljaCBpcyAyXihIICsgMSkgaGFzaCBvdXRwdXRzLgorICogICAgICAgICAgICAgICAgICAgICAgSW4gdGhlIGNhc2Ugb2YgSD0xMCB3ZSBoYXZlIDIwNDggdHJlZSBub2RlcyAob2YKKyAqICAgICAgICAgICAgICAgICAgICAgIHdoaWNoIDEwMjQgb2YgdGhlbSBhcmUgbGVhZiBub2RlcykuIE5vdGUgdGhhdAorICogICAgICAgICAgICAgICAgICAgICAgYmVjYXVzZSB0aGUgTWVya2xlIHRyZWUgcm9vdCBpcyAxLWluZGV4ZWQsIHRoZSAwCisgKiAgICAgICAgICAgICAgICAgICAgICBpbmRleCB0cmVlIG5vZGUgaXMgbmV2ZXIgdXNlZC4KKyAqLworc3RhdGljIGludCBjYWxjdWxhdGVfbWVya2xlX3RyZWUoY29uc3QgbWJlZHRsc19sbXNfcHJpdmF0ZV90ICpjdHgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBjaGFyICp0cmVlKQoreworICAgIHVuc2lnbmVkIGludCBwcml2X2tleV9pZHg7CisgICAgdW5zaWduZWQgaW50IHJfbm9kZV9pZHg7CisgICAgaW50IHJldCA9IE1CRURUTFNfRVJSX0VSUk9SX0NPUlJVUFRJT05fREVURUNURUQ7CisKKyAgICAvKiBGaXJzdCBjcmVhdGUgdGhlIGxlYWYgbm9kZXMsIGluIGFzY2VuZGluZyBvcmRlciAqLworICAgIGZvciAocHJpdl9rZXlfaWR4ID0gMDsKKyAgICAgICAgIHByaXZfa2V5X2lkeCA8IE1FUktMRV9UUkVFX0lOVEVSTkFMX05PREVfQU0oY3R4LT5wYXJhbXMudHlwZSk7CisgICAgICAgICBwcml2X2tleV9pZHgrKykgeworICAgICAgICByX25vZGVfaWR4ID0gTUVSS0xFX1RSRUVfSU5URVJOQUxfTk9ERV9BTShjdHgtPnBhcmFtcy50eXBlKSArIHByaXZfa2V5X2lkeDsKKworICAgICAgICByZXQgPSBjcmVhdGVfbWVya2xlX2xlYWZfdmFsdWUoJmN0eC0+cGFyYW1zLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3R4LT5vdHNfcHVibGljX2tleXNbcHJpdl9rZXlfaWR4XS5wdWJsaWNfa2V5LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcl9ub2RlX2lkeCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZ0cmVlW3Jfbm9kZV9pZHggKiBNQkVEVExTX0xNU19NX05PREVfQllURVMoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3R4LT5wYXJhbXMudHlwZSldKTsKKyAgICAgICAgaWYgKHJldCAhPSAwKSB7CisgICAgICAgICAgICByZXR1cm4gcmV0OworICAgICAgICB9CisgICAgfQorCisgICAgLyogVGhlbiB0aGUgaW50ZXJuYWwgbm9kZXMsIGluIHJldmVyc2Ugb3JkZXIgc28gdGhhdCB3ZSBjYW4gZ3VhcmFudGVlIHRoZQorICAgICAqIHBhcmVudCBoYXMgYmVlbiBjcmVhdGVkICovCisgICAgZm9yIChyX25vZGVfaWR4ID0gTUVSS0xFX1RSRUVfSU5URVJOQUxfTk9ERV9BTShjdHgtPnBhcmFtcy50eXBlKSAtIDE7CisgICAgICAgICByX25vZGVfaWR4ID4gMDsKKyAgICAgICAgIHJfbm9kZV9pZHgtLSkgeworICAgICAgICByZXQgPSBjcmVhdGVfbWVya2xlX2ludGVybmFsX3ZhbHVlKCZjdHgtPnBhcmFtcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmdHJlZVsocl9ub2RlX2lkeCAqIDIpICoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNQkVEVExTX0xNU19NX05PREVfQllURVMoY3R4LT5wYXJhbXMudHlwZSldLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZ0cmVlWyhyX25vZGVfaWR4ICogMiArIDEpICoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNQkVEVExTX0xNU19NX05PREVfQllURVMoY3R4LT5wYXJhbXMudHlwZSldLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJfbm9kZV9pZHgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJnRyZWVbcl9ub2RlX2lkeCAqCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTUJFRFRMU19MTVNfTV9OT0RFX0JZVEVTKGN0eC0+cGFyYW1zLnR5cGUpXSk7CisgICAgICAgIGlmIChyZXQgIT0gMCkgeworICAgICAgICAgICAgcmV0dXJuIHJldDsKKyAgICAgICAgfQorICAgIH0KKworICAgIHJldHVybiAwOworfQorCisvKiBDYWxjdWxhdGUgYSBwYXRoIGZyb20gYSBsZWFmIG5vZGUgb2YgdGhlIE1lcmtsZSB0cmVlIHRvIHRoZSByb290IG9mIHRoZSB0cmVlLAorICogYW5kIHJldHVybiB0aGUgZnVsbCBwYXRoLiBUaGlzIGZ1bmN0aW9uIGltcGxlbWVudHMgUkZDODU1NCBzZWN0aW9uIDUuNC4xLCBhcworICogdGhlIE1lcmtsZSBwYXRoIGlzIHRoZSBtYWluIGNvbXBvbmVudCBvZiBhbiBMTVMgc2lnbmF0dXJlLgorICoKKyAqICBjdHggICAgICAgICAgICAgICAgIFRoZSBMTVMgcHJpdmF0ZSBjb250ZXh0LCBjb250YWluaW5nIGEgcGFyYW1ldGVyCisgKiAgICAgICAgICAgICAgICAgICAgICBzZXQgYW5kIHByaXZhdGUga2V5IG1hdGVyaWFsIGNvbnNpc3Rpbmcgb2YgYm90aAorICogICAgICAgICAgICAgICAgICAgICAgcHVibGljIGFuZCBwcml2YXRlIE9UUy4KKyAqCisgKiAgbGVhZl9ub2RlX2lkICAgICAgICBXaGljaCBsZWFmIG5vZGUgdG8gY2FsY3VsYXRlIHRoZSBwYXRoIGZyb20uCisgKgorICogIHBhdGggICAgICAgICAgICAgICAgVGhlIG91dHB1dCBwYXRoLCB3aGljaCBpcyBIIGhhc2ggb3V0cHV0cy4KKyAqLworc3RhdGljIGludCBnZXRfbWVya2xlX3BhdGgobWJlZHRsc19sbXNfcHJpdmF0ZV90ICpjdHgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgbGVhZl9ub2RlX2lkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgY2hhciAqcGF0aCkKK3sKKyAgICBjb25zdCBzaXplX3Qgbm9kZV9ieXRlcyA9IE1CRURUTFNfTE1TX01fTk9ERV9CWVRFUyhjdHgtPnBhcmFtcy50eXBlKTsKKyAgICB1bnNpZ25lZCBpbnQgY3Vycl9ub2RlX2lkID0gbGVhZl9ub2RlX2lkOworICAgIHVuc2lnbmVkIGludCBhZGphY2VudF9ub2RlX2lkOworICAgIHVuc2lnbmVkIGNoYXIgKnRyZWUgPSBOVUxMOworICAgIHVuc2lnbmVkIGludCBoZWlnaHQ7CisgICAgaW50IHJldCA9IE1CRURUTFNfRVJSX0VSUk9SX0NPUlJVUFRJT05fREVURUNURUQ7CisKKyAgICB0cmVlID0gbWJlZHRsc19jYWxsb2MoKHNpemVfdCkgTUVSS0xFX1RSRUVfTk9ERV9BTShjdHgtPnBhcmFtcy50eXBlKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgbm9kZV9ieXRlcyk7CisgICAgaWYgKHRyZWUgPT0gTlVMTCkgeworICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfTE1TX0FMTE9DX0ZBSUxFRDsKKyAgICB9CisKKyAgICByZXQgPSBjYWxjdWxhdGVfbWVya2xlX3RyZWUoY3R4LCB0cmVlKTsKKyAgICBpZiAocmV0ICE9IDApIHsKKyAgICAgICAgZ290byBleGl0OworICAgIH0KKworICAgIGZvciAoaGVpZ2h0ID0gMDsgaGVpZ2h0IDwgTUJFRFRMU19MTVNfSF9UUkVFX0hFSUdIVChjdHgtPnBhcmFtcy50eXBlKTsKKyAgICAgICAgIGhlaWdodCsrKSB7CisgICAgICAgIGFkamFjZW50X25vZGVfaWQgPSBjdXJyX25vZGVfaWQgXiAxOworCisgICAgICAgIG1lbWNweSgmcGF0aFtoZWlnaHQgKiBub2RlX2J5dGVzXSwKKyAgICAgICAgICAgICAgICZ0cmVlW2FkamFjZW50X25vZGVfaWQgKiBub2RlX2J5dGVzXSwgbm9kZV9ieXRlcyk7CisKKyAgICAgICAgY3Vycl9ub2RlX2lkID4+PSAxOworICAgIH0KKworICAgIHJldCA9IDA7CisKK2V4aXQ6CisgICAgbWJlZHRsc196ZXJvaXplX2FuZF9mcmVlKHRyZWUsIG5vZGVfYnl0ZXMgKgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoc2l6ZV90KSBNRVJLTEVfVFJFRV9OT0RFX0FNKGN0eC0+cGFyYW1zLnR5cGUpKTsKKworICAgIHJldHVybiByZXQ7Cit9CisKK3ZvaWQgbWJlZHRsc19sbXNfcHJpdmF0ZV9pbml0KG1iZWR0bHNfbG1zX3ByaXZhdGVfdCAqY3R4KQoreworICAgIG1lbXNldChjdHgsIDAsIHNpemVvZigqY3R4KSk7Cit9CisKK3ZvaWQgbWJlZHRsc19sbXNfcHJpdmF0ZV9mcmVlKG1iZWR0bHNfbG1zX3ByaXZhdGVfdCAqY3R4KQoreworICAgIGlmIChjdHggPT0gTlVMTCkgeworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgdW5zaWduZWQgaW50IGlkeDsKKworICAgIGlmIChjdHgtPmhhdmVfcHJpdmF0ZV9rZXkpIHsKKyAgICAgICAgaWYgKGN0eC0+b3RzX3ByaXZhdGVfa2V5cyAhPSBOVUxMKSB7CisgICAgICAgICAgICBmb3IgKGlkeCA9IDA7IGlkeCA8IE1FUktMRV9UUkVFX0xFQUZfTk9ERV9BTShjdHgtPnBhcmFtcy50eXBlKTsgaWR4KyspIHsKKyAgICAgICAgICAgICAgICBtYmVkdGxzX2xtb3RzX3ByaXZhdGVfZnJlZSgmY3R4LT5vdHNfcHJpdmF0ZV9rZXlzW2lkeF0pOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgaWYgKGN0eC0+b3RzX3B1YmxpY19rZXlzICE9IE5VTEwpIHsKKyAgICAgICAgICAgIGZvciAoaWR4ID0gMDsgaWR4IDwgTUVSS0xFX1RSRUVfTEVBRl9OT0RFX0FNKGN0eC0+cGFyYW1zLnR5cGUpOyBpZHgrKykgeworICAgICAgICAgICAgICAgIG1iZWR0bHNfbG1vdHNfcHVibGljX2ZyZWUoJmN0eC0+b3RzX3B1YmxpY19rZXlzW2lkeF0pOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgbWJlZHRsc19mcmVlKGN0eC0+b3RzX3ByaXZhdGVfa2V5cyk7CisgICAgICAgIG1iZWR0bHNfZnJlZShjdHgtPm90c19wdWJsaWNfa2V5cyk7CisgICAgfQorCisgICAgbWJlZHRsc19wbGF0Zm9ybV96ZXJvaXplKGN0eCwgc2l6ZW9mKCpjdHgpKTsKK30KKworCitpbnQgbWJlZHRsc19sbXNfZ2VuZXJhdGVfcHJpdmF0ZV9rZXkobWJlZHRsc19sbXNfcHJpdmF0ZV90ICpjdHgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWJlZHRsc19sbXNfYWxnb3JpdGhtX3R5cGVfdCB0eXBlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1iZWR0bHNfbG1vdHNfYWxnb3JpdGhtX3R5cGVfdCBvdHN0eXBlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCAoKmZfcm5nKSh2b2lkICosIHVuc2lnbmVkIGNoYXIgKiwgc2l6ZV90KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2b2lkICpwX3JuZywgY29uc3QgdW5zaWduZWQgY2hhciAqc2VlZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3Qgc2VlZF9zaXplKQoreworICAgIHVuc2lnbmVkIGludCBpZHggPSAwOworICAgIGludCByZXQgPSBNQkVEVExTX0VSUl9FUlJPUl9DT1JSVVBUSU9OX0RFVEVDVEVEOworCisgICAgaWYgKHR5cGUgIT0gTUJFRFRMU19MTVNfU0hBMjU2X00zMl9IMTApIHsKKyAgICAgICAgcmV0dXJuIE1CRURUTFNfRVJSX0xNU19CQURfSU5QVVRfREFUQTsKKyAgICB9CisKKyAgICBpZiAob3RzdHlwZSAhPSBNQkVEVExTX0xNT1RTX1NIQTI1Nl9OMzJfVzgpIHsKKyAgICAgICAgcmV0dXJuIE1CRURUTFNfRVJSX0xNU19CQURfSU5QVVRfREFUQTsKKyAgICB9CisKKyAgICBpZiAoY3R4LT5oYXZlX3ByaXZhdGVfa2V5KSB7CisgICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9MTVNfQkFEX0lOUFVUX0RBVEE7CisgICAgfQorCisgICAgY3R4LT5wYXJhbXMudHlwZSA9IHR5cGU7CisgICAgY3R4LT5wYXJhbXMub3RzdHlwZSA9IG90c3R5cGU7CisgICAgY3R4LT5oYXZlX3ByaXZhdGVfa2V5ID0gMTsKKworICAgIHJldCA9IGZfcm5nKHBfcm5nLAorICAgICAgICAgICAgICAgIGN0eC0+cGFyYW1zLklfa2V5X2lkZW50aWZpZXIsCisgICAgICAgICAgICAgICAgTUJFRFRMU19MTU9UU19JX0tFWV9JRF9MRU4pOworICAgIGlmIChyZXQgIT0gMCkgeworICAgICAgICBnb3RvIGV4aXQ7CisgICAgfQorCisgICAgLyogUmVxdWlyZXMgYSBjYXN0IHRvIHNpemVfdCB0byBhdm9pZCBhbiBpbXBsaWNpdCBjYXN0IHdhcm5pbmcgb24gY2VydGFpbgorICAgICAqIHBsYXRmb3JtcyAocGFydGljdWxhcmx5IFdpbmRvd3MpICovCisgICAgY3R4LT5vdHNfcHJpdmF0ZV9rZXlzID0gbWJlZHRsc19jYWxsb2MoKHNpemVfdCkgTUVSS0xFX1RSRUVfTEVBRl9OT0RFX0FNKGN0eC0+cGFyYW1zLnR5cGUpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVvZigqY3R4LT5vdHNfcHJpdmF0ZV9rZXlzKSk7CisgICAgaWYgKGN0eC0+b3RzX3ByaXZhdGVfa2V5cyA9PSBOVUxMKSB7CisgICAgICAgIHJldCA9IE1CRURUTFNfRVJSX0xNU19BTExPQ19GQUlMRUQ7CisgICAgICAgIGdvdG8gZXhpdDsKKyAgICB9CisKKyAgICAvKiBSZXF1aXJlcyBhIGNhc3QgdG8gc2l6ZV90IHRvIGF2b2lkIGFuIGltcGxpY2l0IGNhc3Qgd2FybmluZyBvbiBjZXJ0YWluCisgICAgICogcGxhdGZvcm1zIChwYXJ0aWN1bGFybHkgV2luZG93cykgKi8KKyAgICBjdHgtPm90c19wdWJsaWNfa2V5cyA9IG1iZWR0bHNfY2FsbG9jKChzaXplX3QpIE1FUktMRV9UUkVFX0xFQUZfTk9ERV9BTShjdHgtPnBhcmFtcy50eXBlKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVvZigqY3R4LT5vdHNfcHVibGljX2tleXMpKTsKKyAgICBpZiAoY3R4LT5vdHNfcHVibGljX2tleXMgPT0gTlVMTCkgeworICAgICAgICByZXQgPSBNQkVEVExTX0VSUl9MTVNfQUxMT0NfRkFJTEVEOworICAgICAgICBnb3RvIGV4aXQ7CisgICAgfQorCisgICAgZm9yIChpZHggPSAwOyBpZHggPCBNRVJLTEVfVFJFRV9MRUFGX05PREVfQU0oY3R4LT5wYXJhbXMudHlwZSk7IGlkeCsrKSB7CisgICAgICAgIG1iZWR0bHNfbG1vdHNfcHJpdmF0ZV9pbml0KCZjdHgtPm90c19wcml2YXRlX2tleXNbaWR4XSk7CisgICAgICAgIG1iZWR0bHNfbG1vdHNfcHVibGljX2luaXQoJmN0eC0+b3RzX3B1YmxpY19rZXlzW2lkeF0pOworICAgIH0KKworCisgICAgZm9yIChpZHggPSAwOyBpZHggPCBNRVJLTEVfVFJFRV9MRUFGX05PREVfQU0oY3R4LT5wYXJhbXMudHlwZSk7IGlkeCsrKSB7CisgICAgICAgIHJldCA9IG1iZWR0bHNfbG1vdHNfZ2VuZXJhdGVfcHJpdmF0ZV9rZXkoJmN0eC0+b3RzX3ByaXZhdGVfa2V5c1tpZHhdLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG90c3R5cGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3R4LT5wYXJhbXMuSV9rZXlfaWRlbnRpZmllciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZHgsIHNlZWQsIHNlZWRfc2l6ZSk7CisgICAgICAgIGlmIChyZXQgIT0gMCkgeworICAgICAgICAgICAgZ290byBleGl0OworICAgICAgICB9CisKKyAgICAgICAgcmV0ID0gbWJlZHRsc19sbW90c19jYWxjdWxhdGVfcHVibGljX2tleSgmY3R4LT5vdHNfcHVibGljX2tleXNbaWR4XSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmY3R4LT5vdHNfcHJpdmF0ZV9rZXlzW2lkeF0pOworICAgICAgICBpZiAocmV0ICE9IDApIHsKKyAgICAgICAgICAgIGdvdG8gZXhpdDsKKyAgICAgICAgfQorICAgIH0KKworICAgIGN0eC0+cV9uZXh0X3VzYWJsZV9rZXkgPSAwOworCitleGl0OgorICAgIGlmIChyZXQgIT0gMCkgeworICAgICAgICBtYmVkdGxzX2xtc19wcml2YXRlX2ZyZWUoY3R4KTsKKyAgICB9CisKKyAgICByZXR1cm4gcmV0OworfQorCitpbnQgbWJlZHRsc19sbXNfY2FsY3VsYXRlX3B1YmxpY19rZXkobWJlZHRsc19sbXNfcHVibGljX3QgKmN0eCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBtYmVkdGxzX2xtc19wcml2YXRlX3QgKnByaXZfY3R4KQoreworICAgIGNvbnN0IHNpemVfdCBub2RlX2J5dGVzID0gTUJFRFRMU19MTVNfTV9OT0RFX0JZVEVTKHByaXZfY3R4LT5wYXJhbXMudHlwZSk7CisgICAgaW50IHJldCA9IE1CRURUTFNfRVJSX0VSUk9SX0NPUlJVUFRJT05fREVURUNURUQ7CisgICAgdW5zaWduZWQgY2hhciAqdHJlZSA9IE5VTEw7CisKKyAgICBpZiAoIXByaXZfY3R4LT5oYXZlX3ByaXZhdGVfa2V5KSB7CisgICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9MTVNfQkFEX0lOUFVUX0RBVEE7CisgICAgfQorCisgICAgaWYgKHByaXZfY3R4LT5wYXJhbXMudHlwZQorICAgICAgICAhPSBNQkVEVExTX0xNU19TSEEyNTZfTTMyX0gxMCkgeworICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfTE1TX0JBRF9JTlBVVF9EQVRBOworICAgIH0KKworICAgIGlmIChwcml2X2N0eC0+cGFyYW1zLm90c3R5cGUKKyAgICAgICAgIT0gTUJFRFRMU19MTU9UU19TSEEyNTZfTjMyX1c4KSB7CisgICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9MTVNfQkFEX0lOUFVUX0RBVEE7CisgICAgfQorCisgICAgdHJlZSA9IG1iZWR0bHNfY2FsbG9jKChzaXplX3QpIE1FUktMRV9UUkVFX05PREVfQU0ocHJpdl9jdHgtPnBhcmFtcy50eXBlKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgbm9kZV9ieXRlcyk7CisgICAgaWYgKHRyZWUgPT0gTlVMTCkgeworICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfTE1TX0FMTE9DX0ZBSUxFRDsKKyAgICB9CisKKyAgICBtZW1jcHkoJmN0eC0+cGFyYW1zLCAmcHJpdl9jdHgtPnBhcmFtcywKKyAgICAgICAgICAgc2l6ZW9mKG1iZWR0bHNfbG1vdHNfcGFyYW1ldGVyc190KSk7CisKKyAgICByZXQgPSBjYWxjdWxhdGVfbWVya2xlX3RyZWUocHJpdl9jdHgsIHRyZWUpOworICAgIGlmIChyZXQgIT0gMCkgeworICAgICAgICBnb3RvIGV4aXQ7CisgICAgfQorCisgICAgLyogUm9vdCBub2RlIGlzIGFsd2F5cyBhdCBwb3NpdGlvbiAxLCBkdWUgdG8gMS1iYXNlZCBpbmRleGluZyAqLworICAgIG1lbWNweShjdHgtPlRfMV9wdWJfa2V5LCAmdHJlZVtub2RlX2J5dGVzXSwgbm9kZV9ieXRlcyk7CisKKyAgICBjdHgtPmhhdmVfcHVibGljX2tleSA9IDE7CisKKyAgICByZXQgPSAwOworCitleGl0OgorICAgIG1iZWR0bHNfemVyb2l6ZV9hbmRfZnJlZSh0cmVlLCBub2RlX2J5dGVzICoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHNpemVfdCkgTUVSS0xFX1RSRUVfTk9ERV9BTShwcml2X2N0eC0+cGFyYW1zLnR5cGUpKTsKKworICAgIHJldHVybiByZXQ7Cit9CisKKworaW50IG1iZWR0bHNfbG1zX3NpZ24obWJlZHRsc19sbXNfcHJpdmF0ZV90ICpjdHgsCisgICAgICAgICAgICAgICAgICAgICBpbnQgKCpmX3JuZykodm9pZCAqLCB1bnNpZ25lZCBjaGFyICosIHNpemVfdCksCisgICAgICAgICAgICAgICAgICAgICB2b2lkICpwX3JuZywgY29uc3QgdW5zaWduZWQgY2hhciAqbXNnLAorICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50IG1zZ19zaXplLCB1bnNpZ25lZCBjaGFyICpzaWcsIHNpemVfdCBzaWdfc2l6ZSwKKyAgICAgICAgICAgICAgICAgICAgIHNpemVfdCAqc2lnX2xlbikKK3sKKyAgICB1aW50MzJfdCBxX2xlYWZfaWRlbnRpZmllcjsKKyAgICBpbnQgcmV0ID0gTUJFRFRMU19FUlJfRVJST1JfQ09SUlVQVElPTl9ERVRFQ1RFRDsKKworICAgIGlmICghY3R4LT5oYXZlX3ByaXZhdGVfa2V5KSB7CisgICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9MTVNfQkFEX0lOUFVUX0RBVEE7CisgICAgfQorCisgICAgaWYgKHNpZ19zaXplIDwgTUJFRFRMU19MTVNfU0lHX0xFTihjdHgtPnBhcmFtcy50eXBlLCBjdHgtPnBhcmFtcy5vdHN0eXBlKSkgeworICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfTE1TX0JVRkZFUl9UT09fU01BTEw7CisgICAgfQorCisgICAgaWYgKGN0eC0+cGFyYW1zLnR5cGUgIT0gTUJFRFRMU19MTVNfU0hBMjU2X00zMl9IMTApIHsKKyAgICAgICAgcmV0dXJuIE1CRURUTFNfRVJSX0xNU19CQURfSU5QVVRfREFUQTsKKyAgICB9CisKKyAgICBpZiAoY3R4LT5wYXJhbXMub3RzdHlwZQorICAgICAgICAhPSBNQkVEVExTX0xNT1RTX1NIQTI1Nl9OMzJfVzgpIHsKKyAgICAgICAgcmV0dXJuIE1CRURUTFNfRVJSX0xNU19CQURfSU5QVVRfREFUQTsKKyAgICB9CisKKyAgICBpZiAoY3R4LT5xX25leHRfdXNhYmxlX2tleSA+PSBNRVJLTEVfVFJFRV9MRUFGX05PREVfQU0oY3R4LT5wYXJhbXMudHlwZSkpIHsKKyAgICAgICAgcmV0dXJuIE1CRURUTFNfRVJSX0xNU19PVVRfT0ZfUFJJVkFURV9LRVlTOworICAgIH0KKworCisgICAgcV9sZWFmX2lkZW50aWZpZXIgPSBjdHgtPnFfbmV4dF91c2FibGVfa2V5OworICAgIC8qIFRoaXMgbmV3IHZhbHVlIG11c3QgX2Fsd2F5c18gYmUgd3JpdHRlbiBiYWNrIHRvIHRoZSBkaXNrIGJlZm9yZSB0aGUKKyAgICAgKiBzaWduYXR1cmUgaXMgcmV0dXJuZWQuCisgICAgICovCisgICAgY3R4LT5xX25leHRfdXNhYmxlX2tleSArPSAxOworCisgICAgaWYgKE1CRURUTFNfTE1TX1NJR19MRU4oY3R4LT5wYXJhbXMudHlwZSwgY3R4LT5wYXJhbXMub3RzdHlwZSkKKyAgICAgICAgPCBTSUdfT1RTX1NJR19PRkZTRVQpIHsKKyAgICAgICAgcmV0dXJuIE1CRURUTFNfRVJSX0xNU19CQURfSU5QVVRfREFUQTsKKyAgICB9CisKKyAgICByZXQgPSBtYmVkdGxzX2xtb3RzX3NpZ24oJmN0eC0+b3RzX3ByaXZhdGVfa2V5c1txX2xlYWZfaWRlbnRpZmllcl0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZfcm5nLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwX3JuZywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbXNnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtc2dfc2l6ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2lnICsgU0lHX09UU19TSUdfT0ZGU0VULAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNQkVEVExTX0xNU19TSUdfTEVOKGN0eC0+cGFyYW1zLnR5cGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3R4LT5wYXJhbXMub3RzdHlwZSkgLSBTSUdfT1RTX1NJR19PRkZTRVQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5VTEwpOworICAgIGlmIChyZXQgIT0gMCkgeworICAgICAgICByZXR1cm4gcmV0OworICAgIH0KKworICAgIE1CRURUTFNfUFVUX1VJTlQzMl9CRShjdHgtPnBhcmFtcy50eXBlLCBzaWcsIFNJR19UWVBFX09GRlNFVChjdHgtPnBhcmFtcy5vdHN0eXBlKSk7CisgICAgTUJFRFRMU19QVVRfVUlOVDMyX0JFKHFfbGVhZl9pZGVudGlmaWVyLCBzaWcsIFNJR19RX0xFQUZfSURfT0ZGU0VUKTsKKworICAgIHJldCA9IGdldF9tZXJrbGVfcGF0aChjdHgsCisgICAgICAgICAgICAgICAgICAgICAgICAgIE1FUktMRV9UUkVFX0lOVEVSTkFMX05PREVfQU0oY3R4LT5wYXJhbXMudHlwZSkgKyBxX2xlYWZfaWRlbnRpZmllciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgc2lnICsgU0lHX1BBVEhfT0ZGU0VUKGN0eC0+cGFyYW1zLm90c3R5cGUpKTsKKyAgICBpZiAocmV0ICE9IDApIHsKKyAgICAgICAgcmV0dXJuIHJldDsKKyAgICB9CisKKyAgICBpZiAoc2lnX2xlbiAhPSBOVUxMKSB7CisgICAgICAgICpzaWdfbGVuID0gTUJFRFRMU19MTVNfU0lHX0xFTihjdHgtPnBhcmFtcy50eXBlLCBjdHgtPnBhcmFtcy5vdHN0eXBlKTsKKyAgICB9CisKKworICAgIHJldHVybiAwOworfQorCisjZW5kaWYgLyogZGVmaW5lZChNQkVEVExTX0xNU19QUklWQVRFKSAqLworI2VuZGlmIC8qIGRlZmluZWQoTUJFRFRMU19MTVNfQykgKi8KZGlmZiAtLWdpdCBhL3RmLXBzYS1jcnlwdG8vZHJpdmVycy9idWlsdGluL3NyYy9tZC5jIGIvdGYtcHNhLWNyeXB0by9kcml2ZXJzL2J1aWx0aW4vc3JjL21kLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTdlMTFjNAotLS0gL2Rldi9udWxsCisrKyBiL3RmLXBzYS1jcnlwdG8vZHJpdmVycy9idWlsdGluL3NyYy9tZC5jCkBAIC0wLDAgKzEsMTEwOCBAQAorLyoqCisgKiBcZmlsZSBtZC5jCisgKgorICogXGJyaWVmIEdlbmVyaWMgbWVzc2FnZSBkaWdlc3Qgd3JhcHBlciBmb3IgTWJlZCBUTFMKKyAqCisgKiBcYXV0aG9yIEFkcmlhYW4gZGUgSm9uZyA8ZGVqb25nQGZveC1pdC5jb20+CisgKgorICogIENvcHlyaWdodCBUaGUgTWJlZCBUTFMgQ29udHJpYnV0b3JzCisgKiAgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjAgT1IgR1BMLTIuMC1vci1sYXRlcgorICovCisKKyNpbmNsdWRlICJjb21tb24uaCIKKworLyoKKyAqIEF2YWlsYWJpbGl0eSBvZiBmdW5jdGlvbnMgaW4gdGhpcyBtb2R1bGUgaXMgY29udHJvbGxlZCBieSB0d28KKyAqIGZlYXR1cmUgbWFjcm9zOgorICogLSBNQkVEVExTX01EX0MgZW5hYmxlcyB0aGUgd2hvbGUgbW9kdWxlOworICogLSBNQkVEVExTX01EX0xJR0hUIGVuYWJsZXMgb25seSBmdW5jdGlvbnMgZm9yIGhhc2hpbmcgYW5kIGFjY2Vzc2luZworICogbW9zdCBoYXNoIG1ldGFkYXRhIChldmVyeXRoaW5nIGV4Y2VwdCBzdHJpbmcgbmFtZXMpOyBpcyBpdAorICogYXV0b21hdGljYWxseSBzZXQgd2hlbmV2ZXIgTUJFRFRMU19NRF9DIGlzIGRlZmluZWQuCisgKgorICogSW4gdGhpcyBmaWxlLCBmdW5jdGlvbnMgZnJvbSBNRF9MSUdIVCBhcmUgYXQgdGhlIHRvcCwgTURfQyBhdCB0aGUgZW5kLgorICoKKyAqIEluIHRoZSBmdXR1cmUgd2UgbWF5IHdhbnQgdG8gY2hhbmdlIHRoZSBjb250cmFjdCBvZiBzb21lIGZ1bmN0aW9ucworICogKGJlaGF2aW91ciB3aXRoIE5VTEwgYXJndW1lbnRzKSBkZXBlbmRpbmcgb24gd2hldGhlciBNRF9DIGlzIGRlZmluZWQgb3IKKyAqIG9ubHkgTURfTElHSFQuIEFsc28sIHRoZSBleGFjdCBzY29wZSBvZiBNRF9MSUdIVCBtaWdodCB2YXJ5LgorICoKKyAqIEZvciB0aGVzZSByZWFzb25zLCB3ZSdyZSBrZWVwaW5nIE1EX0xJR0hUIGludGVybmFsIGZvciBub3cuCisgKi8KKyNpZiBkZWZpbmVkKE1CRURUTFNfTURfTElHSFQpCisKKyNpbmNsdWRlICJtYmVkdGxzL21kLmgiCisjaW5jbHVkZSAibWRfd3JhcC5oIgorI2luY2x1ZGUgIm1iZWR0bHMvcGxhdGZvcm1fdXRpbC5oIgorI2luY2x1ZGUgIm1iZWR0bHMvZXJyb3IuaCIKKworI2luY2x1ZGUgIm1iZWR0bHMvbWQ1LmgiCisjaW5jbHVkZSAibWJlZHRscy9yaXBlbWQxNjAuaCIKKyNpbmNsdWRlICJtYmVkdGxzL3NoYTEuaCIKKyNpbmNsdWRlICJtYmVkdGxzL3NoYTI1Ni5oIgorI2luY2x1ZGUgIm1iZWR0bHMvc2hhNTEyLmgiCisjaW5jbHVkZSAibWJlZHRscy9zaGEzLmgiCisKKyNpZiBkZWZpbmVkKE1CRURUTFNfUFNBX0NSWVBUT19DTElFTlQpCisjaW5jbHVkZSA8cHNhL2NyeXB0by5oPgorI2luY2x1ZGUgIm1kX3BzYS5oIgorI2luY2x1ZGUgInBzYV91dGlsX2ludGVybmFsLmgiCisjZW5kaWYKKworI2lmIGRlZmluZWQoTUJFRFRMU19NRF9TT01FX1BTQSkKKyNpbmNsdWRlICJwc2FfY3J5cHRvX2NvcmUuaCIKKyNlbmRpZgorCisjaW5jbHVkZSAibWJlZHRscy9wbGF0Zm9ybS5oIgorCisjaW5jbHVkZSA8c3RyaW5nLmg+CisKKyNpZiBkZWZpbmVkKE1CRURUTFNfRlNfSU8pCisjaW5jbHVkZSA8c3RkaW8uaD4KKyNlbmRpZgorCisvKiBTZWUgY29tbWVudCBhYm92ZSBNQkVEVExTX01EX01BWF9TSVpFIGluIG1kLmggKi8KKyNpZiBkZWZpbmVkKE1CRURUTFNfUFNBX0NSWVBUT19DKSAmJiBNQkVEVExTX01EX01BWF9TSVpFIDwgUFNBX0hBU0hfTUFYX1NJWkUKKyNlcnJvciAiSW50ZXJuYWwgZXJyb3I6IE1CRURUTFNfTURfTUFYX1NJWkUgPCBQU0FfSEFTSF9NQVhfU0laRSIKKyNlbmRpZgorCisjaWYgZGVmaW5lZChNQkVEVExTX01EX0MpCisjZGVmaW5lIE1EX0lORk8odHlwZSwgb3V0X3NpemUsIGJsb2NrX3NpemUpIHR5cGUsIG91dF9zaXplLCBibG9ja19zaXplLAorI2Vsc2UKKyNkZWZpbmUgTURfSU5GTyh0eXBlLCBvdXRfc2l6ZSwgYmxvY2tfc2l6ZSkgdHlwZSwgb3V0X3NpemUsCisjZW5kaWYKKworI2lmIGRlZmluZWQoTUJFRFRMU19NRF9DQU5fTUQ1KQorc3RhdGljIGNvbnN0IG1iZWR0bHNfbWRfaW5mb190IG1iZWR0bHNfbWQ1X2luZm8gPSB7CisgICAgTURfSU5GTyhNQkVEVExTX01EX01ENSwgMTYsIDY0KQorfTsKKyNlbmRpZgorCisjaWYgZGVmaW5lZChQU0FfV0FOVF9BTEdfUklQRU1EMTYwKQorc3RhdGljIGNvbnN0IG1iZWR0bHNfbWRfaW5mb190IG1iZWR0bHNfcmlwZW1kMTYwX2luZm8gPSB7CisgICAgTURfSU5GTyhNQkVEVExTX01EX1JJUEVNRDE2MCwgMjAsIDY0KQorfTsKKyNlbmRpZgorCisjaWYgZGVmaW5lZChNQkVEVExTX01EX0NBTl9TSEExKQorc3RhdGljIGNvbnN0IG1iZWR0bHNfbWRfaW5mb190IG1iZWR0bHNfc2hhMV9pbmZvID0geworICAgIE1EX0lORk8oTUJFRFRMU19NRF9TSEExLCAyMCwgNjQpCit9OworI2VuZGlmCisKKyNpZiBkZWZpbmVkKFBTQV9XQU5UX0FMR19TSEFfMjI0KQorc3RhdGljIGNvbnN0IG1iZWR0bHNfbWRfaW5mb190IG1iZWR0bHNfc2hhMjI0X2luZm8gPSB7CisgICAgTURfSU5GTyhNQkVEVExTX01EX1NIQTIyNCwgMjgsIDY0KQorfTsKKyNlbmRpZgorCisjaWYgZGVmaW5lZChQU0FfV0FOVF9BTEdfU0hBXzI1NikKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21kX2luZm9fdCBtYmVkdGxzX3NoYTI1Nl9pbmZvID0geworICAgIE1EX0lORk8oTUJFRFRMU19NRF9TSEEyNTYsIDMyLCA2NCkKK307CisjZW5kaWYKKworI2lmIGRlZmluZWQoUFNBX1dBTlRfQUxHX1NIQV8zODQpCitzdGF0aWMgY29uc3QgbWJlZHRsc19tZF9pbmZvX3QgbWJlZHRsc19zaGEzODRfaW5mbyA9IHsKKyAgICBNRF9JTkZPKE1CRURUTFNfTURfU0hBMzg0LCA0OCwgMTI4KQorfTsKKyNlbmRpZgorCisjaWYgZGVmaW5lZChNQkVEVExTX01EX0NBTl9TSEE1MTIpCitzdGF0aWMgY29uc3QgbWJlZHRsc19tZF9pbmZvX3QgbWJlZHRsc19zaGE1MTJfaW5mbyA9IHsKKyAgICBNRF9JTkZPKE1CRURUTFNfTURfU0hBNTEyLCA2NCwgMTI4KQorfTsKKyNlbmRpZgorCisjaWYgZGVmaW5lZChQU0FfV0FOVF9BTEdfU0hBM18yMjQpCitzdGF0aWMgY29uc3QgbWJlZHRsc19tZF9pbmZvX3QgbWJlZHRsc19zaGEzXzIyNF9pbmZvID0geworICAgIE1EX0lORk8oTUJFRFRMU19NRF9TSEEzXzIyNCwgMjgsIDE0NCkKK307CisjZW5kaWYKKworI2lmIGRlZmluZWQoUFNBX1dBTlRfQUxHX1NIQTNfMjU2KQorc3RhdGljIGNvbnN0IG1iZWR0bHNfbWRfaW5mb190IG1iZWR0bHNfc2hhM18yNTZfaW5mbyA9IHsKKyAgICBNRF9JTkZPKE1CRURUTFNfTURfU0hBM18yNTYsIDMyLCAxMzYpCit9OworI2VuZGlmCisKKyNpZiBkZWZpbmVkKFBTQV9XQU5UX0FMR19TSEEzXzM4NCkKK3N0YXRpYyBjb25zdCBtYmVkdGxzX21kX2luZm9fdCBtYmVkdGxzX3NoYTNfMzg0X2luZm8gPSB7CisgICAgTURfSU5GTyhNQkVEVExTX01EX1NIQTNfMzg0LCA0OCwgMTA0KQorfTsKKyNlbmRpZgorCisjaWYgZGVmaW5lZChQU0FfV0FOVF9BTEdfU0hBM181MTIpCitzdGF0aWMgY29uc3QgbWJlZHRsc19tZF9pbmZvX3QgbWJlZHRsc19zaGEzXzUxMl9pbmZvID0geworICAgIE1EX0lORk8oTUJFRFRMU19NRF9TSEEzXzUxMiwgNjQsIDcyKQorfTsKKyNlbmRpZgorCitjb25zdCBtYmVkdGxzX21kX2luZm9fdCAqbWJlZHRsc19tZF9pbmZvX2Zyb21fdHlwZShtYmVkdGxzX21kX3R5cGVfdCBtZF90eXBlKQoreworICAgIHN3aXRjaCAobWRfdHlwZSkgeworI2lmIGRlZmluZWQoTUJFRFRMU19NRF9DQU5fTUQ1KQorICAgICAgICBjYXNlIE1CRURUTFNfTURfTUQ1OgorICAgICAgICAgICAgcmV0dXJuICZtYmVkdGxzX21kNV9pbmZvOworI2VuZGlmCisjaWYgZGVmaW5lZChQU0FfV0FOVF9BTEdfUklQRU1EMTYwKQorICAgICAgICBjYXNlIE1CRURUTFNfTURfUklQRU1EMTYwOgorICAgICAgICAgICAgcmV0dXJuICZtYmVkdGxzX3JpcGVtZDE2MF9pbmZvOworI2VuZGlmCisjaWYgZGVmaW5lZChNQkVEVExTX01EX0NBTl9TSEExKQorICAgICAgICBjYXNlIE1CRURUTFNfTURfU0hBMToKKyAgICAgICAgICAgIHJldHVybiAmbWJlZHRsc19zaGExX2luZm87CisjZW5kaWYKKyNpZiBkZWZpbmVkKFBTQV9XQU5UX0FMR19TSEFfMjI0KQorICAgICAgICBjYXNlIE1CRURUTFNfTURfU0hBMjI0OgorICAgICAgICAgICAgcmV0dXJuICZtYmVkdGxzX3NoYTIyNF9pbmZvOworI2VuZGlmCisjaWYgZGVmaW5lZChQU0FfV0FOVF9BTEdfU0hBXzI1NikKKyAgICAgICAgY2FzZSBNQkVEVExTX01EX1NIQTI1NjoKKyAgICAgICAgICAgIHJldHVybiAmbWJlZHRsc19zaGEyNTZfaW5mbzsKKyNlbmRpZgorI2lmIGRlZmluZWQoUFNBX1dBTlRfQUxHX1NIQV8zODQpCisgICAgICAgIGNhc2UgTUJFRFRMU19NRF9TSEEzODQ6CisgICAgICAgICAgICByZXR1cm4gJm1iZWR0bHNfc2hhMzg0X2luZm87CisjZW5kaWYKKyNpZiBkZWZpbmVkKE1CRURUTFNfTURfQ0FOX1NIQTUxMikKKyAgICAgICAgY2FzZSBNQkVEVExTX01EX1NIQTUxMjoKKyAgICAgICAgICAgIHJldHVybiAmbWJlZHRsc19zaGE1MTJfaW5mbzsKKyNlbmRpZgorI2lmIGRlZmluZWQoUFNBX1dBTlRfQUxHX1NIQTNfMjI0KQorICAgICAgICBjYXNlIE1CRURUTFNfTURfU0hBM18yMjQ6CisgICAgICAgICAgICByZXR1cm4gJm1iZWR0bHNfc2hhM18yMjRfaW5mbzsKKyNlbmRpZgorI2lmIGRlZmluZWQoUFNBX1dBTlRfQUxHX1NIQTNfMjU2KQorICAgICAgICBjYXNlIE1CRURUTFNfTURfU0hBM18yNTY6CisgICAgICAgICAgICByZXR1cm4gJm1iZWR0bHNfc2hhM18yNTZfaW5mbzsKKyNlbmRpZgorI2lmIGRlZmluZWQoUFNBX1dBTlRfQUxHX1NIQTNfMzg0KQorICAgICAgICBjYXNlIE1CRURUTFNfTURfU0hBM18zODQ6CisgICAgICAgICAgICByZXR1cm4gJm1iZWR0bHNfc2hhM18zODRfaW5mbzsKKyNlbmRpZgorI2lmIGRlZmluZWQoUFNBX1dBTlRfQUxHX1NIQTNfNTEyKQorICAgICAgICBjYXNlIE1CRURUTFNfTURfU0hBM181MTI6CisgICAgICAgICAgICByZXR1cm4gJm1iZWR0bHNfc2hhM181MTJfaW5mbzsKKyNlbmRpZgorICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgfQorfQorCisjaWYgZGVmaW5lZChNQkVEVExTX01EX1NPTUVfUFNBKQorc3RhdGljIHBzYV9hbGdvcml0aG1fdCBwc2FfYWxnX29mX21kKGNvbnN0IG1iZWR0bHNfbWRfaW5mb190ICppbmZvKQoreworICAgIHN3aXRjaCAoaW5mby0+dHlwZSkgeworI2lmIGRlZmluZWQoTUJFRFRMU19NRF9NRDVfVklBX1BTQSkKKyAgICAgICAgY2FzZSBNQkVEVExTX01EX01ENToKKyAgICAgICAgICAgIHJldHVybiBQU0FfQUxHX01ENTsKKyNlbmRpZgorI2lmIGRlZmluZWQoTUJFRFRMU19NRF9SSVBFTUQxNjBfVklBX1BTQSkKKyAgICAgICAgY2FzZSBNQkVEVExTX01EX1JJUEVNRDE2MDoKKyAgICAgICAgICAgIHJldHVybiBQU0FfQUxHX1JJUEVNRDE2MDsKKyNlbmRpZgorI2lmIGRlZmluZWQoTUJFRFRMU19NRF9TSEExX1ZJQV9QU0EpCisgICAgICAgIGNhc2UgTUJFRFRMU19NRF9TSEExOgorICAgICAgICAgICAgcmV0dXJuIFBTQV9BTEdfU0hBXzE7CisjZW5kaWYKKyNpZiBkZWZpbmVkKE1CRURUTFNfTURfU0hBMjI0X1ZJQV9QU0EpCisgICAgICAgIGNhc2UgTUJFRFRMU19NRF9TSEEyMjQ6CisgICAgICAgICAgICByZXR1cm4gUFNBX0FMR19TSEFfMjI0OworI2VuZGlmCisjaWYgZGVmaW5lZChNQkVEVExTX01EX1NIQTI1Nl9WSUFfUFNBKQorICAgICAgICBjYXNlIE1CRURUTFNfTURfU0hBMjU2OgorICAgICAgICAgICAgcmV0dXJuIFBTQV9BTEdfU0hBXzI1NjsKKyNlbmRpZgorI2lmIGRlZmluZWQoTUJFRFRMU19NRF9TSEEzODRfVklBX1BTQSkKKyAgICAgICAgY2FzZSBNQkVEVExTX01EX1NIQTM4NDoKKyAgICAgICAgICAgIHJldHVybiBQU0FfQUxHX1NIQV8zODQ7CisjZW5kaWYKKyNpZiBkZWZpbmVkKE1CRURUTFNfTURfU0hBNTEyX1ZJQV9QU0EpCisgICAgICAgIGNhc2UgTUJFRFRMU19NRF9TSEE1MTI6CisgICAgICAgICAgICByZXR1cm4gUFNBX0FMR19TSEFfNTEyOworI2VuZGlmCisjaWYgZGVmaW5lZChNQkVEVExTX01EX1NIQTNfMjI0X1ZJQV9QU0EpCisgICAgICAgIGNhc2UgTUJFRFRMU19NRF9TSEEzXzIyNDoKKyAgICAgICAgICAgIHJldHVybiBQU0FfQUxHX1NIQTNfMjI0OworI2VuZGlmCisjaWYgZGVmaW5lZChNQkVEVExTX01EX1NIQTNfMjU2X1ZJQV9QU0EpCisgICAgICAgIGNhc2UgTUJFRFRMU19NRF9TSEEzXzI1NjoKKyAgICAgICAgICAgIHJldHVybiBQU0FfQUxHX1NIQTNfMjU2OworI2VuZGlmCisjaWYgZGVmaW5lZChNQkVEVExTX01EX1NIQTNfMzg0X1ZJQV9QU0EpCisgICAgICAgIGNhc2UgTUJFRFRMU19NRF9TSEEzXzM4NDoKKyAgICAgICAgICAgIHJldHVybiBQU0FfQUxHX1NIQTNfMzg0OworI2VuZGlmCisjaWYgZGVmaW5lZChNQkVEVExTX01EX1NIQTNfNTEyX1ZJQV9QU0EpCisgICAgICAgIGNhc2UgTUJFRFRMU19NRF9TSEEzXzUxMjoKKyAgICAgICAgICAgIHJldHVybiBQU0FfQUxHX1NIQTNfNTEyOworI2VuZGlmCisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICByZXR1cm4gUFNBX0FMR19OT05FOworICAgIH0KK30KKworc3RhdGljIGludCBtZF9jYW5fdXNlX3BzYShjb25zdCBtYmVkdGxzX21kX2luZm9fdCAqaW5mbykKK3sKKyAgICBwc2FfYWxnb3JpdGhtX3QgYWxnID0gcHNhX2FsZ19vZl9tZChpbmZvKTsKKyAgICBpZiAoYWxnID09IFBTQV9BTEdfTk9ORSkgeworICAgICAgICByZXR1cm4gMDsKKyAgICB9CisKKyAgICByZXR1cm4gcHNhX2Nhbl9kb19oYXNoKGFsZyk7Cit9CisjZW5kaWYgLyogTUJFRFRMU19NRF9TT01FX1BTQSAqLworCit2b2lkIG1iZWR0bHNfbWRfaW5pdChtYmVkdGxzX21kX2NvbnRleHRfdCAqY3R4KQoreworICAgIC8qIE5vdGU6IHRoaXMgc2V0cyBlbmdpbmUgKGlmIHByZXNlbnQpIHRvIE1CRURUTFNfTURfRU5HSU5FX0xFR0FDWSAqLworICAgIG1lbXNldChjdHgsIDAsIHNpemVvZihtYmVkdGxzX21kX2NvbnRleHRfdCkpOworfQorCit2b2lkIG1iZWR0bHNfbWRfZnJlZShtYmVkdGxzX21kX2NvbnRleHRfdCAqY3R4KQoreworICAgIGlmIChjdHggPT0gTlVMTCB8fCBjdHgtPm1kX2luZm8gPT0gTlVMTCkgeworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgaWYgKGN0eC0+bWRfY3R4ICE9IE5VTEwpIHsKKyNpZiBkZWZpbmVkKE1CRURUTFNfTURfU09NRV9QU0EpCisgICAgICAgIGlmIChjdHgtPmVuZ2luZSA9PSBNQkVEVExTX01EX0VOR0lORV9QU0EpIHsKKyAgICAgICAgICAgIHBzYV9oYXNoX2Fib3J0KGN0eC0+bWRfY3R4KTsKKyAgICAgICAgfSBlbHNlCisjZW5kaWYKKyAgICAgICAgc3dpdGNoIChjdHgtPm1kX2luZm8tPnR5cGUpIHsKKyNpZiBkZWZpbmVkKE1CRURUTFNfTUQ1X0MpCisgICAgICAgICAgICBjYXNlIE1CRURUTFNfTURfTUQ1OgorICAgICAgICAgICAgICAgIG1iZWR0bHNfbWQ1X2ZyZWUoY3R4LT5tZF9jdHgpOworICAgICAgICAgICAgICAgIGJyZWFrOworI2VuZGlmCisjaWYgZGVmaW5lZChNQkVEVExTX1JJUEVNRDE2MF9DKQorICAgICAgICAgICAgY2FzZSBNQkVEVExTX01EX1JJUEVNRDE2MDoKKyAgICAgICAgICAgICAgICBtYmVkdGxzX3JpcGVtZDE2MF9mcmVlKGN0eC0+bWRfY3R4KTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyNlbmRpZgorI2lmIGRlZmluZWQoTUJFRFRMU19TSEExX0MpCisgICAgICAgICAgICBjYXNlIE1CRURUTFNfTURfU0hBMToKKyAgICAgICAgICAgICAgICBtYmVkdGxzX3NoYTFfZnJlZShjdHgtPm1kX2N0eCk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisjZW5kaWYKKyNpZiBkZWZpbmVkKE1CRURUTFNfU0hBMjI0X0MpCisgICAgICAgICAgICBjYXNlIE1CRURUTFNfTURfU0hBMjI0OgorICAgICAgICAgICAgICAgIG1iZWR0bHNfc2hhMjU2X2ZyZWUoY3R4LT5tZF9jdHgpOworICAgICAgICAgICAgICAgIGJyZWFrOworI2VuZGlmCisjaWYgZGVmaW5lZChNQkVEVExTX1NIQTI1Nl9DKQorICAgICAgICAgICAgY2FzZSBNQkVEVExTX01EX1NIQTI1NjoKKyAgICAgICAgICAgICAgICBtYmVkdGxzX3NoYTI1Nl9mcmVlKGN0eC0+bWRfY3R4KTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyNlbmRpZgorI2lmIGRlZmluZWQoTUJFRFRMU19TSEEzODRfQykKKyAgICAgICAgICAgIGNhc2UgTUJFRFRMU19NRF9TSEEzODQ6CisgICAgICAgICAgICAgICAgbWJlZHRsc19zaGE1MTJfZnJlZShjdHgtPm1kX2N0eCk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisjZW5kaWYKKyNpZiBkZWZpbmVkKE1CRURUTFNfU0hBNTEyX0MpCisgICAgICAgICAgICBjYXNlIE1CRURUTFNfTURfU0hBNTEyOgorICAgICAgICAgICAgICAgIG1iZWR0bHNfc2hhNTEyX2ZyZWUoY3R4LT5tZF9jdHgpOworICAgICAgICAgICAgICAgIGJyZWFrOworI2VuZGlmCisjaWYgZGVmaW5lZChNQkVEVExTX1NIQTNfQykKKyAgICAgICAgICAgIGNhc2UgTUJFRFRMU19NRF9TSEEzXzIyNDoKKyAgICAgICAgICAgIGNhc2UgTUJFRFRMU19NRF9TSEEzXzI1NjoKKyAgICAgICAgICAgIGNhc2UgTUJFRFRMU19NRF9TSEEzXzM4NDoKKyAgICAgICAgICAgIGNhc2UgTUJFRFRMU19NRF9TSEEzXzUxMjoKKyAgICAgICAgICAgICAgICBtYmVkdGxzX3NoYTNfZnJlZShjdHgtPm1kX2N0eCk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisjZW5kaWYKKyAgICAgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICAgICAgLyogU2hvdWxkbid0IGhhcHBlbiAqLworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgICAgIG1iZWR0bHNfZnJlZShjdHgtPm1kX2N0eCk7CisgICAgfQorCisjaWYgZGVmaW5lZChNQkVEVExTX01EX0MpCisgICAgaWYgKGN0eC0+aG1hY19jdHggIT0gTlVMTCkgeworICAgICAgICBtYmVkdGxzX3plcm9pemVfYW5kX2ZyZWUoY3R4LT5obWFjX2N0eCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIgKiBjdHgtPm1kX2luZm8tPmJsb2NrX3NpemUpOworICAgIH0KKyNlbmRpZgorCisgICAgbWJlZHRsc19wbGF0Zm9ybV96ZXJvaXplKGN0eCwgc2l6ZW9mKG1iZWR0bHNfbWRfY29udGV4dF90KSk7Cit9CisKK2ludCBtYmVkdGxzX21kX2Nsb25lKG1iZWR0bHNfbWRfY29udGV4dF90ICpkc3QsCisgICAgICAgICAgICAgICAgICAgICBjb25zdCBtYmVkdGxzX21kX2NvbnRleHRfdCAqc3JjKQoreworICAgIGlmIChkc3QgPT0gTlVMTCB8fCBkc3QtPm1kX2luZm8gPT0gTlVMTCB8fAorICAgICAgICBzcmMgPT0gTlVMTCB8fCBzcmMtPm1kX2luZm8gPT0gTlVMTCB8fAorICAgICAgICBkc3QtPm1kX2luZm8gIT0gc3JjLT5tZF9pbmZvKSB7CisgICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9NRF9CQURfSU5QVVRfREFUQTsKKyAgICB9CisKKyNpZiBkZWZpbmVkKE1CRURUTFNfTURfU09NRV9QU0EpCisgICAgaWYgKHNyYy0+ZW5naW5lICE9IGRzdC0+ZW5naW5lKSB7CisgICAgICAgIC8qIFRoaXMgY2FuIGhhcHBlbiB3aXRoIHNyYyBzZXQgdG8gbGVnYWN5IGJlY2F1c2UgUFNBIHdhc24ndCByZWFkeQorICAgICAgICAgKiB5ZXQsIGFuZCBkc3QgdG8gUFNBIGJlY2F1c2UgaXQgYmVjYW1lIHJlYWR5IGluIHRoZSBtZWFudGltZS4KKyAgICAgICAgICogV2UgY3VycmVudGx5IGRvbid0IHN1cHBvcnQgdGhhdCBjYXNlICh3ZSdkIG5lZWQgdG8gcmUtYWxsb2NhdGUKKyAgICAgICAgICogbWRfY3R4IHRvIHRoZSBzaXplIG9mIHRoZSBhcHByb3ByaWF0ZSBNRCBjb250ZXh0KS4gKi8KKyAgICAgICAgcmV0dXJuIE1CRURUTFNfRVJSX01EX0ZFQVRVUkVfVU5BVkFJTEFCTEU7CisgICAgfQorCisgICAgaWYgKHNyYy0+ZW5naW5lID09IE1CRURUTFNfTURfRU5HSU5FX1BTQSkgeworICAgICAgICBwc2Ffc3RhdHVzX3Qgc3RhdHVzID0gcHNhX2hhc2hfY2xvbmUoc3JjLT5tZF9jdHgsIGRzdC0+bWRfY3R4KTsKKyAgICAgICAgcmV0dXJuIG1iZWR0bHNfbWRfZXJyb3JfZnJvbV9wc2Eoc3RhdHVzKTsKKyAgICB9CisjZW5kaWYKKworICAgIHN3aXRjaCAoc3JjLT5tZF9pbmZvLT50eXBlKSB7CisjaWYgZGVmaW5lZChNQkVEVExTX01ENV9DKQorICAgICAgICBjYXNlIE1CRURUTFNfTURfTUQ1OgorICAgICAgICAgICAgbWJlZHRsc19tZDVfY2xvbmUoZHN0LT5tZF9jdHgsIHNyYy0+bWRfY3R4KTsKKyAgICAgICAgICAgIGJyZWFrOworI2VuZGlmCisjaWYgZGVmaW5lZChNQkVEVExTX1JJUEVNRDE2MF9DKQorICAgICAgICBjYXNlIE1CRURUTFNfTURfUklQRU1EMTYwOgorICAgICAgICAgICAgbWJlZHRsc19yaXBlbWQxNjBfY2xvbmUoZHN0LT5tZF9jdHgsIHNyYy0+bWRfY3R4KTsKKyAgICAgICAgICAgIGJyZWFrOworI2VuZGlmCisjaWYgZGVmaW5lZChNQkVEVExTX1NIQTFfQykKKyAgICAgICAgY2FzZSBNQkVEVExTX01EX1NIQTE6CisgICAgICAgICAgICBtYmVkdGxzX3NoYTFfY2xvbmUoZHN0LT5tZF9jdHgsIHNyYy0+bWRfY3R4KTsKKyAgICAgICAgICAgIGJyZWFrOworI2VuZGlmCisjaWYgZGVmaW5lZChNQkVEVExTX1NIQTIyNF9DKQorICAgICAgICBjYXNlIE1CRURUTFNfTURfU0hBMjI0OgorICAgICAgICAgICAgbWJlZHRsc19zaGEyNTZfY2xvbmUoZHN0LT5tZF9jdHgsIHNyYy0+bWRfY3R4KTsKKyAgICAgICAgICAgIGJyZWFrOworI2VuZGlmCisjaWYgZGVmaW5lZChNQkVEVExTX1NIQTI1Nl9DKQorICAgICAgICBjYXNlIE1CRURUTFNfTURfU0hBMjU2OgorICAgICAgICAgICAgbWJlZHRsc19zaGEyNTZfY2xvbmUoZHN0LT5tZF9jdHgsIHNyYy0+bWRfY3R4KTsKKyAgICAgICAgICAgIGJyZWFrOworI2VuZGlmCisjaWYgZGVmaW5lZChNQkVEVExTX1NIQTM4NF9DKQorICAgICAgICBjYXNlIE1CRURUTFNfTURfU0hBMzg0OgorICAgICAgICAgICAgbWJlZHRsc19zaGE1MTJfY2xvbmUoZHN0LT5tZF9jdHgsIHNyYy0+bWRfY3R4KTsKKyAgICAgICAgICAgIGJyZWFrOworI2VuZGlmCisjaWYgZGVmaW5lZChNQkVEVExTX1NIQTUxMl9DKQorICAgICAgICBjYXNlIE1CRURUTFNfTURfU0hBNTEyOgorICAgICAgICAgICAgbWJlZHRsc19zaGE1MTJfY2xvbmUoZHN0LT5tZF9jdHgsIHNyYy0+bWRfY3R4KTsKKyAgICAgICAgICAgIGJyZWFrOworI2VuZGlmCisjaWYgZGVmaW5lZChNQkVEVExTX1NIQTNfQykKKyAgICAgICAgY2FzZSBNQkVEVExTX01EX1NIQTNfMjI0OgorICAgICAgICBjYXNlIE1CRURUTFNfTURfU0hBM18yNTY6CisgICAgICAgIGNhc2UgTUJFRFRMU19NRF9TSEEzXzM4NDoKKyAgICAgICAgY2FzZSBNQkVEVExTX01EX1NIQTNfNTEyOgorICAgICAgICAgICAgbWJlZHRsc19zaGEzX2Nsb25lKGRzdC0+bWRfY3R4LCBzcmMtPm1kX2N0eCk7CisgICAgICAgICAgICBicmVhazsKKyNlbmRpZgorICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgcmV0dXJuIE1CRURUTFNfRVJSX01EX0JBRF9JTlBVVF9EQVRBOworICAgIH0KKworICAgIHJldHVybiAwOworfQorCisjZGVmaW5lIEFMTE9DKHR5cGUpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIGRvIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICBjdHgtPm1kX2N0eCA9IG1iZWR0bHNfY2FsbG9jKDEsIHNpemVvZihtYmVkdGxzXyMjdHlwZSMjX2NvbnRleHQpKTsgXAorICAgICAgICBpZiAoY3R4LT5tZF9jdHggPT0gTlVMTCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9NRF9BTExPQ19GQUlMRUQ7ICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgbWJlZHRsc18jI3R5cGUjI19pbml0KGN0eC0+bWRfY3R4KTsgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgfSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgd2hpbGUgKDApCisKK2ludCBtYmVkdGxzX21kX3NldHVwKG1iZWR0bHNfbWRfY29udGV4dF90ICpjdHgsIGNvbnN0IG1iZWR0bHNfbWRfaW5mb190ICptZF9pbmZvLCBpbnQgaG1hYykKK3sKKyNpZiBkZWZpbmVkKE1CRURUTFNfTURfQykKKyAgICBpZiAoY3R4ID09IE5VTEwpIHsKKyAgICAgICAgcmV0dXJuIE1CRURUTFNfRVJSX01EX0JBRF9JTlBVVF9EQVRBOworICAgIH0KKyNlbmRpZgorICAgIGlmIChtZF9pbmZvID09IE5VTEwpIHsKKyAgICAgICAgcmV0dXJuIE1CRURUTFNfRVJSX01EX0JBRF9JTlBVVF9EQVRBOworICAgIH0KKworICAgIGN0eC0+bWRfaW5mbyA9IG1kX2luZm87CisgICAgY3R4LT5tZF9jdHggPSBOVUxMOworI2lmIGRlZmluZWQoTUJFRFRMU19NRF9DKQorICAgIGN0eC0+aG1hY19jdHggPSBOVUxMOworI2Vsc2UKKyAgICBpZiAoaG1hYyAhPSAwKSB7CisgICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9NRF9CQURfSU5QVVRfREFUQTsKKyAgICB9CisjZW5kaWYKKworI2lmIGRlZmluZWQoTUJFRFRMU19NRF9TT01FX1BTQSkKKyAgICBpZiAobWRfY2FuX3VzZV9wc2EoY3R4LT5tZF9pbmZvKSkgeworICAgICAgICBjdHgtPm1kX2N0eCA9IG1iZWR0bHNfY2FsbG9jKDEsIHNpemVvZihwc2FfaGFzaF9vcGVyYXRpb25fdCkpOworICAgICAgICBpZiAoY3R4LT5tZF9jdHggPT0gTlVMTCkgeworICAgICAgICAgICAgcmV0dXJuIE1CRURUTFNfRVJSX01EX0FMTE9DX0ZBSUxFRDsKKyAgICAgICAgfQorICAgICAgICBjdHgtPmVuZ2luZSA9IE1CRURUTFNfTURfRU5HSU5FX1BTQTsKKyAgICB9IGVsc2UKKyNlbmRpZgorICAgIHN3aXRjaCAobWRfaW5mby0+dHlwZSkgeworI2lmIGRlZmluZWQoTUJFRFRMU19NRDVfQykKKyAgICAgICAgY2FzZSBNQkVEVExTX01EX01ENToKKyAgICAgICAgICAgIEFMTE9DKG1kNSk7CisgICAgICAgICAgICBicmVhazsKKyNlbmRpZgorI2lmIGRlZmluZWQoTUJFRFRMU19SSVBFTUQxNjBfQykKKyAgICAgICAgY2FzZSBNQkVEVExTX01EX1JJUEVNRDE2MDoKKyAgICAgICAgICAgIEFMTE9DKHJpcGVtZDE2MCk7CisgICAgICAgICAgICBicmVhazsKKyNlbmRpZgorI2lmIGRlZmluZWQoTUJFRFRMU19TSEExX0MpCisgICAgICAgIGNhc2UgTUJFRFRMU19NRF9TSEExOgorICAgICAgICAgICAgQUxMT0Moc2hhMSk7CisgICAgICAgICAgICBicmVhazsKKyNlbmRpZgorI2lmIGRlZmluZWQoTUJFRFRMU19TSEEyMjRfQykKKyAgICAgICAgY2FzZSBNQkVEVExTX01EX1NIQTIyNDoKKyAgICAgICAgICAgIEFMTE9DKHNoYTI1Nik7CisgICAgICAgICAgICBicmVhazsKKyNlbmRpZgorI2lmIGRlZmluZWQoTUJFRFRMU19TSEEyNTZfQykKKyAgICAgICAgY2FzZSBNQkVEVExTX01EX1NIQTI1NjoKKyAgICAgICAgICAgIEFMTE9DKHNoYTI1Nik7CisgICAgICAgICAgICBicmVhazsKKyNlbmRpZgorI2lmIGRlZmluZWQoTUJFRFRMU19TSEEzODRfQykKKyAgICAgICAgY2FzZSBNQkVEVExTX01EX1NIQTM4NDoKKyAgICAgICAgICAgIEFMTE9DKHNoYTUxMik7CisgICAgICAgICAgICBicmVhazsKKyNlbmRpZgorI2lmIGRlZmluZWQoTUJFRFRMU19TSEE1MTJfQykKKyAgICAgICAgY2FzZSBNQkVEVExTX01EX1NIQTUxMjoKKyAgICAgICAgICAgIEFMTE9DKHNoYTUxMik7CisgICAgICAgICAgICBicmVhazsKKyNlbmRpZgorI2lmIGRlZmluZWQoTUJFRFRMU19TSEEzX0MpCisgICAgICAgIGNhc2UgTUJFRFRMU19NRF9TSEEzXzIyNDoKKyAgICAgICAgY2FzZSBNQkVEVExTX01EX1NIQTNfMjU2OgorICAgICAgICBjYXNlIE1CRURUTFNfTURfU0hBM18zODQ6CisgICAgICAgIGNhc2UgTUJFRFRMU19NRF9TSEEzXzUxMjoKKyAgICAgICAgICAgIEFMTE9DKHNoYTMpOworICAgICAgICAgICAgYnJlYWs7CisjZW5kaWYKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9NRF9CQURfSU5QVVRfREFUQTsKKyAgICB9CisKKyNpZiBkZWZpbmVkKE1CRURUTFNfTURfQykKKyAgICBpZiAoaG1hYyAhPSAwKSB7CisgICAgICAgIGN0eC0+aG1hY19jdHggPSBtYmVkdGxzX2NhbGxvYygyLCBtZF9pbmZvLT5ibG9ja19zaXplKTsKKyAgICAgICAgaWYgKGN0eC0+aG1hY19jdHggPT0gTlVMTCkgeworICAgICAgICAgICAgbWJlZHRsc19tZF9mcmVlKGN0eCk7CisgICAgICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfTURfQUxMT0NfRkFJTEVEOworICAgICAgICB9CisgICAgfQorI2VuZGlmCisKKyAgICByZXR1cm4gMDsKK30KKyN1bmRlZiBBTExPQworCitpbnQgbWJlZHRsc19tZF9zdGFydHMobWJlZHRsc19tZF9jb250ZXh0X3QgKmN0eCkKK3sKKyNpZiBkZWZpbmVkKE1CRURUTFNfTURfQykKKyAgICBpZiAoY3R4ID09IE5VTEwgfHwgY3R4LT5tZF9pbmZvID09IE5VTEwpIHsKKyAgICAgICAgcmV0dXJuIE1CRURUTFNfRVJSX01EX0JBRF9JTlBVVF9EQVRBOworICAgIH0KKyNlbmRpZgorCisjaWYgZGVmaW5lZChNQkVEVExTX01EX1NPTUVfUFNBKQorICAgIGlmIChjdHgtPmVuZ2luZSA9PSBNQkVEVExTX01EX0VOR0lORV9QU0EpIHsKKyAgICAgICAgcHNhX2FsZ29yaXRobV90IGFsZyA9IHBzYV9hbGdfb2ZfbWQoY3R4LT5tZF9pbmZvKTsKKyAgICAgICAgcHNhX2hhc2hfYWJvcnQoY3R4LT5tZF9jdHgpOworICAgICAgICBwc2Ffc3RhdHVzX3Qgc3RhdHVzID0gcHNhX2hhc2hfc2V0dXAoY3R4LT5tZF9jdHgsIGFsZyk7CisgICAgICAgIHJldHVybiBtYmVkdGxzX21kX2Vycm9yX2Zyb21fcHNhKHN0YXR1cyk7CisgICAgfQorI2VuZGlmCisKKyAgICBzd2l0Y2ggKGN0eC0+bWRfaW5mby0+dHlwZSkgeworI2lmIGRlZmluZWQoTUJFRFRMU19NRDVfQykKKyAgICAgICAgY2FzZSBNQkVEVExTX01EX01ENToKKyAgICAgICAgICAgIHJldHVybiBtYmVkdGxzX21kNV9zdGFydHMoY3R4LT5tZF9jdHgpOworI2VuZGlmCisjaWYgZGVmaW5lZChNQkVEVExTX1JJUEVNRDE2MF9DKQorICAgICAgICBjYXNlIE1CRURUTFNfTURfUklQRU1EMTYwOgorICAgICAgICAgICAgcmV0dXJuIG1iZWR0bHNfcmlwZW1kMTYwX3N0YXJ0cyhjdHgtPm1kX2N0eCk7CisjZW5kaWYKKyNpZiBkZWZpbmVkKE1CRURUTFNfU0hBMV9DKQorICAgICAgICBjYXNlIE1CRURUTFNfTURfU0hBMToKKyAgICAgICAgICAgIHJldHVybiBtYmVkdGxzX3NoYTFfc3RhcnRzKGN0eC0+bWRfY3R4KTsKKyNlbmRpZgorI2lmIGRlZmluZWQoTUJFRFRMU19TSEEyMjRfQykKKyAgICAgICAgY2FzZSBNQkVEVExTX01EX1NIQTIyNDoKKyAgICAgICAgICAgIHJldHVybiBtYmVkdGxzX3NoYTI1Nl9zdGFydHMoY3R4LT5tZF9jdHgsIDEpOworI2VuZGlmCisjaWYgZGVmaW5lZChNQkVEVExTX1NIQTI1Nl9DKQorICAgICAgICBjYXNlIE1CRURUTFNfTURfU0hBMjU2OgorICAgICAgICAgICAgcmV0dXJuIG1iZWR0bHNfc2hhMjU2X3N0YXJ0cyhjdHgtPm1kX2N0eCwgMCk7CisjZW5kaWYKKyNpZiBkZWZpbmVkKE1CRURUTFNfU0hBMzg0X0MpCisgICAgICAgIGNhc2UgTUJFRFRMU19NRF9TSEEzODQ6CisgICAgICAgICAgICByZXR1cm4gbWJlZHRsc19zaGE1MTJfc3RhcnRzKGN0eC0+bWRfY3R4LCAxKTsKKyNlbmRpZgorI2lmIGRlZmluZWQoTUJFRFRMU19TSEE1MTJfQykKKyAgICAgICAgY2FzZSBNQkVEVExTX01EX1NIQTUxMjoKKyAgICAgICAgICAgIHJldHVybiBtYmVkdGxzX3NoYTUxMl9zdGFydHMoY3R4LT5tZF9jdHgsIDApOworI2VuZGlmCisjaWYgZGVmaW5lZChNQkVEVExTX1NIQTNfQykKKyAgICAgICAgY2FzZSBNQkVEVExTX01EX1NIQTNfMjI0OgorICAgICAgICAgICAgcmV0dXJuIG1iZWR0bHNfc2hhM19zdGFydHMoY3R4LT5tZF9jdHgsIE1CRURUTFNfU0hBM18yMjQpOworICAgICAgICBjYXNlIE1CRURUTFNfTURfU0hBM18yNTY6CisgICAgICAgICAgICByZXR1cm4gbWJlZHRsc19zaGEzX3N0YXJ0cyhjdHgtPm1kX2N0eCwgTUJFRFRMU19TSEEzXzI1Nik7CisgICAgICAgIGNhc2UgTUJFRFRMU19NRF9TSEEzXzM4NDoKKyAgICAgICAgICAgIHJldHVybiBtYmVkdGxzX3NoYTNfc3RhcnRzKGN0eC0+bWRfY3R4LCBNQkVEVExTX1NIQTNfMzg0KTsKKyAgICAgICAgY2FzZSBNQkVEVExTX01EX1NIQTNfNTEyOgorICAgICAgICAgICAgcmV0dXJuIG1iZWR0bHNfc2hhM19zdGFydHMoY3R4LT5tZF9jdHgsIE1CRURUTFNfU0hBM181MTIpOworI2VuZGlmCisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfTURfQkFEX0lOUFVUX0RBVEE7CisgICAgfQorfQorCitpbnQgbWJlZHRsc19tZF91cGRhdGUobWJlZHRsc19tZF9jb250ZXh0X3QgKmN0eCwgY29uc3QgdW5zaWduZWQgY2hhciAqaW5wdXQsIHNpemVfdCBpbGVuKQoreworI2lmIGRlZmluZWQoTUJFRFRMU19NRF9DKQorICAgIGlmIChjdHggPT0gTlVMTCB8fCBjdHgtPm1kX2luZm8gPT0gTlVMTCkgeworICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfTURfQkFEX0lOUFVUX0RBVEE7CisgICAgfQorI2VuZGlmCisKKyNpZiBkZWZpbmVkKE1CRURUTFNfTURfU09NRV9QU0EpCisgICAgaWYgKGN0eC0+ZW5naW5lID09IE1CRURUTFNfTURfRU5HSU5FX1BTQSkgeworICAgICAgICBwc2Ffc3RhdHVzX3Qgc3RhdHVzID0gcHNhX2hhc2hfdXBkYXRlKGN0eC0+bWRfY3R4LCBpbnB1dCwgaWxlbik7CisgICAgICAgIHJldHVybiBtYmVkdGxzX21kX2Vycm9yX2Zyb21fcHNhKHN0YXR1cyk7CisgICAgfQorI2VuZGlmCisKKyAgICBzd2l0Y2ggKGN0eC0+bWRfaW5mby0+dHlwZSkgeworI2lmIGRlZmluZWQoTUJFRFRMU19NRDVfQykKKyAgICAgICAgY2FzZSBNQkVEVExTX01EX01ENToKKyAgICAgICAgICAgIHJldHVybiBtYmVkdGxzX21kNV91cGRhdGUoY3R4LT5tZF9jdHgsIGlucHV0LCBpbGVuKTsKKyNlbmRpZgorI2lmIGRlZmluZWQoTUJFRFRMU19SSVBFTUQxNjBfQykKKyAgICAgICAgY2FzZSBNQkVEVExTX01EX1JJUEVNRDE2MDoKKyAgICAgICAgICAgIHJldHVybiBtYmVkdGxzX3JpcGVtZDE2MF91cGRhdGUoY3R4LT5tZF9jdHgsIGlucHV0LCBpbGVuKTsKKyNlbmRpZgorI2lmIGRlZmluZWQoTUJFRFRMU19TSEExX0MpCisgICAgICAgIGNhc2UgTUJFRFRMU19NRF9TSEExOgorICAgICAgICAgICAgcmV0dXJuIG1iZWR0bHNfc2hhMV91cGRhdGUoY3R4LT5tZF9jdHgsIGlucHV0LCBpbGVuKTsKKyNlbmRpZgorI2lmIGRlZmluZWQoTUJFRFRMU19TSEEyMjRfQykKKyAgICAgICAgY2FzZSBNQkVEVExTX01EX1NIQTIyNDoKKyAgICAgICAgICAgIHJldHVybiBtYmVkdGxzX3NoYTI1Nl91cGRhdGUoY3R4LT5tZF9jdHgsIGlucHV0LCBpbGVuKTsKKyNlbmRpZgorI2lmIGRlZmluZWQoTUJFRFRMU19TSEEyNTZfQykKKyAgICAgICAgY2FzZSBNQkVEVExTX01EX1NIQTI1NjoKKyAgICAgICAgICAgIHJldHVybiBtYmVkdGxzX3NoYTI1Nl91cGRhdGUoY3R4LT5tZF9jdHgsIGlucHV0LCBpbGVuKTsKKyNlbmRpZgorI2lmIGRlZmluZWQoTUJFRFRMU19TSEEzODRfQykKKyAgICAgICAgY2FzZSBNQkVEVExTX01EX1NIQTM4NDoKKyAgICAgICAgICAgIHJldHVybiBtYmVkdGxzX3NoYTUxMl91cGRhdGUoY3R4LT5tZF9jdHgsIGlucHV0LCBpbGVuKTsKKyNlbmRpZgorI2lmIGRlZmluZWQoTUJFRFRMU19TSEE1MTJfQykKKyAgICAgICAgY2FzZSBNQkVEVExTX01EX1NIQTUxMjoKKyAgICAgICAgICAgIHJldHVybiBtYmVkdGxzX3NoYTUxMl91cGRhdGUoY3R4LT5tZF9jdHgsIGlucHV0LCBpbGVuKTsKKyNlbmRpZgorI2lmIGRlZmluZWQoTUJFRFRMU19TSEEzX0MpCisgICAgICAgIGNhc2UgTUJFRFRMU19NRF9TSEEzXzIyNDoKKyAgICAgICAgY2FzZSBNQkVEVExTX01EX1NIQTNfMjU2OgorICAgICAgICBjYXNlIE1CRURUTFNfTURfU0hBM18zODQ6CisgICAgICAgIGNhc2UgTUJFRFRMU19NRF9TSEEzXzUxMjoKKyAgICAgICAgICAgIHJldHVybiBtYmVkdGxzX3NoYTNfdXBkYXRlKGN0eC0+bWRfY3R4LCBpbnB1dCwgaWxlbik7CisjZW5kaWYKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9NRF9CQURfSU5QVVRfREFUQTsKKyAgICB9Cit9CisKK2ludCBtYmVkdGxzX21kX2ZpbmlzaChtYmVkdGxzX21kX2NvbnRleHRfdCAqY3R4LCB1bnNpZ25lZCBjaGFyICpvdXRwdXQpCit7CisjaWYgZGVmaW5lZChNQkVEVExTX01EX0MpCisgICAgaWYgKGN0eCA9PSBOVUxMIHx8IGN0eC0+bWRfaW5mbyA9PSBOVUxMKSB7CisgICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9NRF9CQURfSU5QVVRfREFUQTsKKyAgICB9CisjZW5kaWYKKworI2lmIGRlZmluZWQoTUJFRFRMU19NRF9TT01FX1BTQSkKKyAgICBpZiAoY3R4LT5lbmdpbmUgPT0gTUJFRFRMU19NRF9FTkdJTkVfUFNBKSB7CisgICAgICAgIHNpemVfdCBzaXplID0gY3R4LT5tZF9pbmZvLT5zaXplOworICAgICAgICBwc2Ffc3RhdHVzX3Qgc3RhdHVzID0gcHNhX2hhc2hfZmluaXNoKGN0eC0+bWRfY3R4LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG91dHB1dCwgc2l6ZSwgJnNpemUpOworICAgICAgICByZXR1cm4gbWJlZHRsc19tZF9lcnJvcl9mcm9tX3BzYShzdGF0dXMpOworICAgIH0KKyNlbmRpZgorCisgICAgc3dpdGNoIChjdHgtPm1kX2luZm8tPnR5cGUpIHsKKyNpZiBkZWZpbmVkKE1CRURUTFNfTUQ1X0MpCisgICAgICAgIGNhc2UgTUJFRFRMU19NRF9NRDU6CisgICAgICAgICAgICByZXR1cm4gbWJlZHRsc19tZDVfZmluaXNoKGN0eC0+bWRfY3R4LCBvdXRwdXQpOworI2VuZGlmCisjaWYgZGVmaW5lZChNQkVEVExTX1JJUEVNRDE2MF9DKQorICAgICAgICBjYXNlIE1CRURUTFNfTURfUklQRU1EMTYwOgorICAgICAgICAgICAgcmV0dXJuIG1iZWR0bHNfcmlwZW1kMTYwX2ZpbmlzaChjdHgtPm1kX2N0eCwgb3V0cHV0KTsKKyNlbmRpZgorI2lmIGRlZmluZWQoTUJFRFRMU19TSEExX0MpCisgICAgICAgIGNhc2UgTUJFRFRMU19NRF9TSEExOgorICAgICAgICAgICAgcmV0dXJuIG1iZWR0bHNfc2hhMV9maW5pc2goY3R4LT5tZF9jdHgsIG91dHB1dCk7CisjZW5kaWYKKyNpZiBkZWZpbmVkKE1CRURUTFNfU0hBMjI0X0MpCisgICAgICAgIGNhc2UgTUJFRFRMU19NRF9TSEEyMjQ6CisgICAgICAgICAgICByZXR1cm4gbWJlZHRsc19zaGEyNTZfZmluaXNoKGN0eC0+bWRfY3R4LCBvdXRwdXQpOworI2VuZGlmCisjaWYgZGVmaW5lZChNQkVEVExTX1NIQTI1Nl9DKQorICAgICAgICBjYXNlIE1CRURUTFNfTURfU0hBMjU2OgorICAgICAgICAgICAgcmV0dXJuIG1iZWR0bHNfc2hhMjU2X2ZpbmlzaChjdHgtPm1kX2N0eCwgb3V0cHV0KTsKKyNlbmRpZgorI2lmIGRlZmluZWQoTUJFRFRMU19TSEEzODRfQykKKyAgICAgICAgY2FzZSBNQkVEVExTX01EX1NIQTM4NDoKKyAgICAgICAgICAgIHJldHVybiBtYmVkdGxzX3NoYTUxMl9maW5pc2goY3R4LT5tZF9jdHgsIG91dHB1dCk7CisjZW5kaWYKKyNpZiBkZWZpbmVkKE1CRURUTFNfU0hBNTEyX0MpCisgICAgICAgIGNhc2UgTUJFRFRMU19NRF9TSEE1MTI6CisgICAgICAgICAgICByZXR1cm4gbWJlZHRsc19zaGE1MTJfZmluaXNoKGN0eC0+bWRfY3R4LCBvdXRwdXQpOworI2VuZGlmCisjaWYgZGVmaW5lZChNQkVEVExTX1NIQTNfQykKKyAgICAgICAgY2FzZSBNQkVEVExTX01EX1NIQTNfMjI0OgorICAgICAgICBjYXNlIE1CRURUTFNfTURfU0hBM18yNTY6CisgICAgICAgIGNhc2UgTUJFRFRMU19NRF9TSEEzXzM4NDoKKyAgICAgICAgY2FzZSBNQkVEVExTX01EX1NIQTNfNTEyOgorICAgICAgICAgICAgcmV0dXJuIG1iZWR0bHNfc2hhM19maW5pc2goY3R4LT5tZF9jdHgsIG91dHB1dCwgY3R4LT5tZF9pbmZvLT5zaXplKTsKKyNlbmRpZgorICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgcmV0dXJuIE1CRURUTFNfRVJSX01EX0JBRF9JTlBVVF9EQVRBOworICAgIH0KK30KKworaW50IG1iZWR0bHNfbWQoY29uc3QgbWJlZHRsc19tZF9pbmZvX3QgKm1kX2luZm8sIGNvbnN0IHVuc2lnbmVkIGNoYXIgKmlucHV0LCBzaXplX3QgaWxlbiwKKyAgICAgICAgICAgICAgIHVuc2lnbmVkIGNoYXIgKm91dHB1dCkKK3sKKyAgICBpZiAobWRfaW5mbyA9PSBOVUxMKSB7CisgICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9NRF9CQURfSU5QVVRfREFUQTsKKyAgICB9CisKKyNpZiBkZWZpbmVkKE1CRURUTFNfTURfU09NRV9QU0EpCisgICAgaWYgKG1kX2Nhbl91c2VfcHNhKG1kX2luZm8pKSB7CisgICAgICAgIHNpemVfdCBzaXplID0gbWRfaW5mby0+c2l6ZTsKKyAgICAgICAgcHNhX3N0YXR1c190IHN0YXR1cyA9IHBzYV9oYXNoX2NvbXB1dGUocHNhX2FsZ19vZl9tZChtZF9pbmZvKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5wdXQsIGlsZW4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG91dHB1dCwgc2l6ZSwgJnNpemUpOworICAgICAgICByZXR1cm4gbWJlZHRsc19tZF9lcnJvcl9mcm9tX3BzYShzdGF0dXMpOworICAgIH0KKyNlbmRpZgorCisgICAgc3dpdGNoIChtZF9pbmZvLT50eXBlKSB7CisjaWYgZGVmaW5lZChNQkVEVExTX01ENV9DKQorICAgICAgICBjYXNlIE1CRURUTFNfTURfTUQ1OgorICAgICAgICAgICAgcmV0dXJuIG1iZWR0bHNfbWQ1KGlucHV0LCBpbGVuLCBvdXRwdXQpOworI2VuZGlmCisjaWYgZGVmaW5lZChNQkVEVExTX1JJUEVNRDE2MF9DKQorICAgICAgICBjYXNlIE1CRURUTFNfTURfUklQRU1EMTYwOgorICAgICAgICAgICAgcmV0dXJuIG1iZWR0bHNfcmlwZW1kMTYwKGlucHV0LCBpbGVuLCBvdXRwdXQpOworI2VuZGlmCisjaWYgZGVmaW5lZChNQkVEVExTX1NIQTFfQykKKyAgICAgICAgY2FzZSBNQkVEVExTX01EX1NIQTE6CisgICAgICAgICAgICByZXR1cm4gbWJlZHRsc19zaGExKGlucHV0LCBpbGVuLCBvdXRwdXQpOworI2VuZGlmCisjaWYgZGVmaW5lZChNQkVEVExTX1NIQTIyNF9DKQorICAgICAgICBjYXNlIE1CRURUTFNfTURfU0hBMjI0OgorICAgICAgICAgICAgcmV0dXJuIG1iZWR0bHNfc2hhMjU2KGlucHV0LCBpbGVuLCBvdXRwdXQsIDEpOworI2VuZGlmCisjaWYgZGVmaW5lZChNQkVEVExTX1NIQTI1Nl9DKQorICAgICAgICBjYXNlIE1CRURUTFNfTURfU0hBMjU2OgorICAgICAgICAgICAgcmV0dXJuIG1iZWR0bHNfc2hhMjU2KGlucHV0LCBpbGVuLCBvdXRwdXQsIDApOworI2VuZGlmCisjaWYgZGVmaW5lZChNQkVEVExTX1NIQTM4NF9DKQorICAgICAgICBjYXNlIE1CRURUTFNfTURfU0hBMzg0OgorICAgICAgICAgICAgcmV0dXJuIG1iZWR0bHNfc2hhNTEyKGlucHV0LCBpbGVuLCBvdXRwdXQsIDEpOworI2VuZGlmCisjaWYgZGVmaW5lZChNQkVEVExTX1NIQTUxMl9DKQorICAgICAgICBjYXNlIE1CRURUTFNfTURfU0hBNTEyOgorICAgICAgICAgICAgcmV0dXJuIG1iZWR0bHNfc2hhNTEyKGlucHV0LCBpbGVuLCBvdXRwdXQsIDApOworI2VuZGlmCisjaWYgZGVmaW5lZChNQkVEVExTX1NIQTNfQykKKyAgICAgICAgY2FzZSBNQkVEVExTX01EX1NIQTNfMjI0OgorICAgICAgICAgICAgcmV0dXJuIG1iZWR0bHNfc2hhMyhNQkVEVExTX1NIQTNfMjI0LCBpbnB1dCwgaWxlbiwgb3V0cHV0LCBtZF9pbmZvLT5zaXplKTsKKyAgICAgICAgY2FzZSBNQkVEVExTX01EX1NIQTNfMjU2OgorICAgICAgICAgICAgcmV0dXJuIG1iZWR0bHNfc2hhMyhNQkVEVExTX1NIQTNfMjU2LCBpbnB1dCwgaWxlbiwgb3V0cHV0LCBtZF9pbmZvLT5zaXplKTsKKyAgICAgICAgY2FzZSBNQkVEVExTX01EX1NIQTNfMzg0OgorICAgICAgICAgICAgcmV0dXJuIG1iZWR0bHNfc2hhMyhNQkVEVExTX1NIQTNfMzg0LCBpbnB1dCwgaWxlbiwgb3V0cHV0LCBtZF9pbmZvLT5zaXplKTsKKyAgICAgICAgY2FzZSBNQkVEVExTX01EX1NIQTNfNTEyOgorICAgICAgICAgICAgcmV0dXJuIG1iZWR0bHNfc2hhMyhNQkVEVExTX1NIQTNfNTEyLCBpbnB1dCwgaWxlbiwgb3V0cHV0LCBtZF9pbmZvLT5zaXplKTsKKyNlbmRpZgorICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgcmV0dXJuIE1CRURUTFNfRVJSX01EX0JBRF9JTlBVVF9EQVRBOworICAgIH0KK30KKwordW5zaWduZWQgY2hhciBtYmVkdGxzX21kX2dldF9zaXplKGNvbnN0IG1iZWR0bHNfbWRfaW5mb190ICptZF9pbmZvKQoreworICAgIGlmIChtZF9pbmZvID09IE5VTEwpIHsKKyAgICAgICAgcmV0dXJuIDA7CisgICAgfQorCisgICAgcmV0dXJuIG1kX2luZm8tPnNpemU7Cit9CisKK21iZWR0bHNfbWRfdHlwZV90IG1iZWR0bHNfbWRfZ2V0X3R5cGUoY29uc3QgbWJlZHRsc19tZF9pbmZvX3QgKm1kX2luZm8pCit7CisgICAgaWYgKG1kX2luZm8gPT0gTlVMTCkgeworICAgICAgICByZXR1cm4gTUJFRFRMU19NRF9OT05FOworICAgIH0KKworICAgIHJldHVybiBtZF9pbmZvLT50eXBlOworfQorCisjaWYgZGVmaW5lZChNQkVEVExTX1BTQV9DUllQVE9fQ0xJRU5UKQoraW50IG1iZWR0bHNfbWRfZXJyb3JfZnJvbV9wc2EocHNhX3N0YXR1c190IHN0YXR1cykKK3sKKyAgICByZXR1cm4gUFNBX1RPX01CRURUTFNfRVJSX0xJU1Qoc3RhdHVzLCBwc2FfdG9fbWRfZXJyb3JzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwc2FfZ2VuZXJpY19zdGF0dXNfdG9fbWJlZHRscyk7Cit9CisjZW5kaWYgLyogTUJFRFRMU19QU0FfQ1JZUFRPX0NMSUVOVCAqLworCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIEZ1bmN0aW9ucyBhYm92ZSB0aGlzIHNlcGFyYXRvciBhcmUgcGFydCBvZiBNQkVEVExTX01EX0xJR0hULCAgICAgICAgICoKKyAqIGZ1bmN0aW9ucyBiZWxvdyBhcmUgb25seSBhdmFpbGFibGUgd2hlbiBNQkVEVExTX01EX0MgaXMgc2V0LiAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisjaWYgZGVmaW5lZChNQkVEVExTX01EX0MpCisKKy8qCisgKiBSZW1pbmRlcjogdXBkYXRlIHByb2ZpbGVzIGluIHg1MDlfY3J0LmMgd2hlbiBhZGRpbmcgYSBuZXcgaGFzaCEKKyAqLworc3RhdGljIGNvbnN0IGludCBzdXBwb3J0ZWRfZGlnZXN0c1tdID0geworCisjaWYgZGVmaW5lZChNQkVEVExTX01EX0NBTl9TSEE1MTIpCisgICAgTUJFRFRMU19NRF9TSEE1MTIsCisjZW5kaWYKKworI2lmIGRlZmluZWQoUFNBX1dBTlRfQUxHX1NIQV8zODQpCisgICAgTUJFRFRMU19NRF9TSEEzODQsCisjZW5kaWYKKworI2lmIGRlZmluZWQoUFNBX1dBTlRfQUxHX1NIQV8yNTYpCisgICAgTUJFRFRMU19NRF9TSEEyNTYsCisjZW5kaWYKKyNpZiBkZWZpbmVkKFBTQV9XQU5UX0FMR19TSEFfMjI0KQorICAgIE1CRURUTFNfTURfU0hBMjI0LAorI2VuZGlmCisKKyNpZiBkZWZpbmVkKE1CRURUTFNfTURfQ0FOX1NIQTEpCisgICAgTUJFRFRMU19NRF9TSEExLAorI2VuZGlmCisKKyNpZiBkZWZpbmVkKFBTQV9XQU5UX0FMR19SSVBFTUQxNjApCisgICAgTUJFRFRMU19NRF9SSVBFTUQxNjAsCisjZW5kaWYKKworI2lmIGRlZmluZWQoTUJFRFRMU19NRF9DQU5fTUQ1KQorICAgIE1CRURUTFNfTURfTUQ1LAorI2VuZGlmCisKKyNpZiBkZWZpbmVkKFBTQV9XQU5UX0FMR19TSEEzXzIyNCkKKyAgICBNQkVEVExTX01EX1NIQTNfMjI0LAorI2VuZGlmCisKKyNpZiBkZWZpbmVkKFBTQV9XQU5UX0FMR19TSEEzXzI1NikKKyAgICBNQkVEVExTX01EX1NIQTNfMjU2LAorI2VuZGlmCisKKyNpZiBkZWZpbmVkKFBTQV9XQU5UX0FMR19TSEEzXzM4NCkKKyAgICBNQkVEVExTX01EX1NIQTNfMzg0LAorI2VuZGlmCisKKyNpZiBkZWZpbmVkKFBTQV9XQU5UX0FMR19TSEEzXzUxMikKKyAgICBNQkVEVExTX01EX1NIQTNfNTEyLAorI2VuZGlmCisKKyAgICBNQkVEVExTX01EX05PTkUKK307CisKK2NvbnN0IGludCAqbWJlZHRsc19tZF9saXN0KHZvaWQpCit7CisgICAgcmV0dXJuIHN1cHBvcnRlZF9kaWdlc3RzOworfQorCit0eXBlZGVmIHN0cnVjdCB7CisgICAgY29uc3QgY2hhciAqbWRfbmFtZTsKKyAgICBtYmVkdGxzX21kX3R5cGVfdCBtZF90eXBlOworfSBtZF9uYW1lX2VudHJ5OworCitzdGF0aWMgY29uc3QgbWRfbmFtZV9lbnRyeSBtZF9uYW1lc1tdID0geworI2lmIGRlZmluZWQoTUJFRFRMU19NRF9DQU5fTUQ1KQorICAgIHsgIk1ENSIsIE1CRURUTFNfTURfTUQ1IH0sCisjZW5kaWYKKyNpZiBkZWZpbmVkKFBTQV9XQU5UX0FMR19SSVBFTUQxNjApCisgICAgeyAiUklQRU1EMTYwIiwgTUJFRFRMU19NRF9SSVBFTUQxNjAgfSwKKyNlbmRpZgorI2lmIGRlZmluZWQoTUJFRFRMU19NRF9DQU5fU0hBMSkKKyAgICB7ICJTSEExIiwgTUJFRFRMU19NRF9TSEExIH0sCisgICAgeyAiU0hBIiwgTUJFRFRMU19NRF9TSEExIH0sIC8vIGNvbXBhdGliaWxpdHkgZmFsbGJhY2sKKyNlbmRpZgorI2lmIGRlZmluZWQoUFNBX1dBTlRfQUxHX1NIQV8yMjQpCisgICAgeyAiU0hBMjI0IiwgTUJFRFRMU19NRF9TSEEyMjQgfSwKKyNlbmRpZgorI2lmIGRlZmluZWQoUFNBX1dBTlRfQUxHX1NIQV8yNTYpCisgICAgeyAiU0hBMjU2IiwgTUJFRFRMU19NRF9TSEEyNTYgfSwKKyNlbmRpZgorI2lmIGRlZmluZWQoUFNBX1dBTlRfQUxHX1NIQV8zODQpCisgICAgeyAiU0hBMzg0IiwgTUJFRFRMU19NRF9TSEEzODQgfSwKKyNlbmRpZgorI2lmIGRlZmluZWQoTUJFRFRMU19NRF9DQU5fU0hBNTEyKQorICAgIHsgIlNIQTUxMiIsIE1CRURUTFNfTURfU0hBNTEyIH0sCisjZW5kaWYKKyNpZiBkZWZpbmVkKFBTQV9XQU5UX0FMR19TSEEzXzIyNCkKKyAgICB7ICJTSEEzLTIyNCIsIE1CRURUTFNfTURfU0hBM18yMjQgfSwKKyNlbmRpZgorI2lmIGRlZmluZWQoUFNBX1dBTlRfQUxHX1NIQTNfMjU2KQorICAgIHsgIlNIQTMtMjU2IiwgTUJFRFRMU19NRF9TSEEzXzI1NiB9LAorI2VuZGlmCisjaWYgZGVmaW5lZChQU0FfV0FOVF9BTEdfU0hBM18zODQpCisgICAgeyAiU0hBMy0zODQiLCBNQkVEVExTX01EX1NIQTNfMzg0IH0sCisjZW5kaWYKKyNpZiBkZWZpbmVkKFBTQV9XQU5UX0FMR19TSEEzXzUxMikKKyAgICB7ICJTSEEzLTUxMiIsIE1CRURUTFNfTURfU0hBM181MTIgfSwKKyNlbmRpZgorICAgIHsgTlVMTCwgTUJFRFRMU19NRF9OT05FIH0sCit9OworCitjb25zdCBtYmVkdGxzX21kX2luZm9fdCAqbWJlZHRsc19tZF9pbmZvX2Zyb21fc3RyaW5nKGNvbnN0IGNoYXIgKm1kX25hbWUpCit7CisgICAgaWYgKE5VTEwgPT0gbWRfbmFtZSkgeworICAgICAgICByZXR1cm4gTlVMTDsKKyAgICB9CisKKyAgICBjb25zdCBtZF9uYW1lX2VudHJ5ICplbnRyeSA9IG1kX25hbWVzOworICAgIHdoaWxlIChlbnRyeS0+bWRfbmFtZSAhPSBOVUxMICYmCisgICAgICAgICAgIHN0cmNtcChlbnRyeS0+bWRfbmFtZSwgbWRfbmFtZSkgIT0gMCkgeworICAgICAgICArK2VudHJ5OworICAgIH0KKworICAgIHJldHVybiBtYmVkdGxzX21kX2luZm9fZnJvbV90eXBlKGVudHJ5LT5tZF90eXBlKTsKK30KKworY29uc3QgY2hhciAqbWJlZHRsc19tZF9nZXRfbmFtZShjb25zdCBtYmVkdGxzX21kX2luZm9fdCAqbWRfaW5mbykKK3sKKyAgICBpZiAobWRfaW5mbyA9PSBOVUxMKSB7CisgICAgICAgIHJldHVybiBOVUxMOworICAgIH0KKworICAgIGNvbnN0IG1kX25hbWVfZW50cnkgKmVudHJ5ID0gbWRfbmFtZXM7CisgICAgd2hpbGUgKGVudHJ5LT5tZF90eXBlICE9IE1CRURUTFNfTURfTk9ORSAmJgorICAgICAgICAgICBlbnRyeS0+bWRfdHlwZSAhPSBtZF9pbmZvLT50eXBlKSB7CisgICAgICAgICsrZW50cnk7CisgICAgfQorCisgICAgcmV0dXJuIGVudHJ5LT5tZF9uYW1lOworfQorCitjb25zdCBtYmVkdGxzX21kX2luZm9fdCAqbWJlZHRsc19tZF9pbmZvX2Zyb21fY3R4KAorICAgIGNvbnN0IG1iZWR0bHNfbWRfY29udGV4dF90ICpjdHgpCit7CisgICAgaWYgKGN0eCA9PSBOVUxMKSB7CisgICAgICAgIHJldHVybiBOVUxMOworICAgIH0KKworICAgIHJldHVybiBjdHgtPk1CRURUTFNfUFJJVkFURShtZF9pbmZvKTsKK30KKworI2lmIGRlZmluZWQoTUJFRFRMU19GU19JTykKK2ludCBtYmVkdGxzX21kX2ZpbGUoY29uc3QgbWJlZHRsc19tZF9pbmZvX3QgKm1kX2luZm8sIGNvbnN0IGNoYXIgKnBhdGgsIHVuc2lnbmVkIGNoYXIgKm91dHB1dCkKK3sKKyAgICBpbnQgcmV0ID0gTUJFRFRMU19FUlJfRVJST1JfQ09SUlVQVElPTl9ERVRFQ1RFRDsKKyAgICBGSUxFICpmOworICAgIHNpemVfdCBuOworICAgIG1iZWR0bHNfbWRfY29udGV4dF90IGN0eDsKKyAgICB1bnNpZ25lZCBjaGFyIGJ1ZlsxMDI0XTsKKworICAgIGlmIChtZF9pbmZvID09IE5VTEwpIHsKKyAgICAgICAgcmV0dXJuIE1CRURUTFNfRVJSX01EX0JBRF9JTlBVVF9EQVRBOworICAgIH0KKworICAgIGlmICgoZiA9IGZvcGVuKHBhdGgsICJyYiIpKSA9PSBOVUxMKSB7CisgICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9NRF9GSUxFX0lPX0VSUk9SOworICAgIH0KKworICAgIC8qIEVuc3VyZSBubyBzdGRpbyBidWZmZXJpbmcgb2Ygc2VjcmV0cywgYXMgc3VjaCBidWZmZXJzIGNhbm5vdCBiZSB3aXBlZC4gKi8KKyAgICBtYmVkdGxzX3NldGJ1ZihmLCBOVUxMKTsKKworICAgIG1iZWR0bHNfbWRfaW5pdCgmY3R4KTsKKworICAgIGlmICgocmV0ID0gbWJlZHRsc19tZF9zZXR1cCgmY3R4LCBtZF9pbmZvLCAwKSkgIT0gMCkgeworICAgICAgICBnb3RvIGNsZWFudXA7CisgICAgfQorCisgICAgaWYgKChyZXQgPSBtYmVkdGxzX21kX3N0YXJ0cygmY3R4KSkgIT0gMCkgeworICAgICAgICBnb3RvIGNsZWFudXA7CisgICAgfQorCisgICAgd2hpbGUgKChuID0gZnJlYWQoYnVmLCAxLCBzaXplb2YoYnVmKSwgZikpID4gMCkgeworICAgICAgICBpZiAoKHJldCA9IG1iZWR0bHNfbWRfdXBkYXRlKCZjdHgsIGJ1ZiwgbikpICE9IDApIHsKKyAgICAgICAgICAgIGdvdG8gY2xlYW51cDsKKyAgICAgICAgfQorICAgIH0KKworICAgIGlmIChmZXJyb3IoZikgIT0gMCkgeworICAgICAgICByZXQgPSBNQkVEVExTX0VSUl9NRF9GSUxFX0lPX0VSUk9SOworICAgIH0gZWxzZSB7CisgICAgICAgIHJldCA9IG1iZWR0bHNfbWRfZmluaXNoKCZjdHgsIG91dHB1dCk7CisgICAgfQorCitjbGVhbnVwOgorICAgIG1iZWR0bHNfcGxhdGZvcm1femVyb2l6ZShidWYsIHNpemVvZihidWYpKTsKKyAgICBmY2xvc2UoZik7CisgICAgbWJlZHRsc19tZF9mcmVlKCZjdHgpOworCisgICAgcmV0dXJuIHJldDsKK30KKyNlbmRpZiAvKiBNQkVEVExTX0ZTX0lPICovCisKK2ludCBtYmVkdGxzX21kX2htYWNfc3RhcnRzKG1iZWR0bHNfbWRfY29udGV4dF90ICpjdHgsIGNvbnN0IHVuc2lnbmVkIGNoYXIgKmtleSwgc2l6ZV90IGtleWxlbikKK3sKKyAgICBpbnQgcmV0ID0gTUJFRFRMU19FUlJfRVJST1JfQ09SUlVQVElPTl9ERVRFQ1RFRDsKKyAgICB1bnNpZ25lZCBjaGFyIHN1bVtNQkVEVExTX01EX01BWF9TSVpFXTsKKyAgICB1bnNpZ25lZCBjaGFyICppcGFkLCAqb3BhZDsKKworICAgIGlmIChjdHggPT0gTlVMTCB8fCBjdHgtPm1kX2luZm8gPT0gTlVMTCB8fCBjdHgtPmhtYWNfY3R4ID09IE5VTEwpIHsKKyAgICAgICAgcmV0dXJuIE1CRURUTFNfRVJSX01EX0JBRF9JTlBVVF9EQVRBOworICAgIH0KKworICAgIGlmIChrZXlsZW4gPiAoc2l6ZV90KSBjdHgtPm1kX2luZm8tPmJsb2NrX3NpemUpIHsKKyAgICAgICAgaWYgKChyZXQgPSBtYmVkdGxzX21kX3N0YXJ0cyhjdHgpKSAhPSAwKSB7CisgICAgICAgICAgICBnb3RvIGNsZWFudXA7CisgICAgICAgIH0KKyAgICAgICAgaWYgKChyZXQgPSBtYmVkdGxzX21kX3VwZGF0ZShjdHgsIGtleSwga2V5bGVuKSkgIT0gMCkgeworICAgICAgICAgICAgZ290byBjbGVhbnVwOworICAgICAgICB9CisgICAgICAgIGlmICgocmV0ID0gbWJlZHRsc19tZF9maW5pc2goY3R4LCBzdW0pKSAhPSAwKSB7CisgICAgICAgICAgICBnb3RvIGNsZWFudXA7CisgICAgICAgIH0KKworICAgICAgICBrZXlsZW4gPSBjdHgtPm1kX2luZm8tPnNpemU7CisgICAgICAgIGtleSA9IHN1bTsKKyAgICB9CisKKyAgICBpcGFkID0gKHVuc2lnbmVkIGNoYXIgKikgY3R4LT5obWFjX2N0eDsKKyAgICBvcGFkID0gKHVuc2lnbmVkIGNoYXIgKikgY3R4LT5obWFjX2N0eCArIGN0eC0+bWRfaW5mby0+YmxvY2tfc2l6ZTsKKworICAgIG1lbXNldChpcGFkLCAweDM2LCBjdHgtPm1kX2luZm8tPmJsb2NrX3NpemUpOworICAgIG1lbXNldChvcGFkLCAweDVDLCBjdHgtPm1kX2luZm8tPmJsb2NrX3NpemUpOworCisgICAgbWJlZHRsc194b3IoaXBhZCwgaXBhZCwga2V5LCBrZXlsZW4pOworICAgIG1iZWR0bHNfeG9yKG9wYWQsIG9wYWQsIGtleSwga2V5bGVuKTsKKworICAgIGlmICgocmV0ID0gbWJlZHRsc19tZF9zdGFydHMoY3R4KSkgIT0gMCkgeworICAgICAgICBnb3RvIGNsZWFudXA7CisgICAgfQorICAgIGlmICgocmV0ID0gbWJlZHRsc19tZF91cGRhdGUoY3R4LCBpcGFkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3R4LT5tZF9pbmZvLT5ibG9ja19zaXplKSkgIT0gMCkgeworICAgICAgICBnb3RvIGNsZWFudXA7CisgICAgfQorCitjbGVhbnVwOgorICAgIG1iZWR0bHNfcGxhdGZvcm1femVyb2l6ZShzdW0sIHNpemVvZihzdW0pKTsKKworICAgIHJldHVybiByZXQ7Cit9CisKK2ludCBtYmVkdGxzX21kX2htYWNfdXBkYXRlKG1iZWR0bHNfbWRfY29udGV4dF90ICpjdHgsIGNvbnN0IHVuc2lnbmVkIGNoYXIgKmlucHV0LCBzaXplX3QgaWxlbikKK3sKKyAgICBpZiAoY3R4ID09IE5VTEwgfHwgY3R4LT5tZF9pbmZvID09IE5VTEwgfHwgY3R4LT5obWFjX2N0eCA9PSBOVUxMKSB7CisgICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9NRF9CQURfSU5QVVRfREFUQTsKKyAgICB9CisKKyAgICByZXR1cm4gbWJlZHRsc19tZF91cGRhdGUoY3R4LCBpbnB1dCwgaWxlbik7Cit9CisKK2ludCBtYmVkdGxzX21kX2htYWNfZmluaXNoKG1iZWR0bHNfbWRfY29udGV4dF90ICpjdHgsIHVuc2lnbmVkIGNoYXIgKm91dHB1dCkKK3sKKyAgICBpbnQgcmV0ID0gTUJFRFRMU19FUlJfRVJST1JfQ09SUlVQVElPTl9ERVRFQ1RFRDsKKyAgICB1bnNpZ25lZCBjaGFyIHRtcFtNQkVEVExTX01EX01BWF9TSVpFXTsKKyAgICB1bnNpZ25lZCBjaGFyICpvcGFkOworCisgICAgaWYgKGN0eCA9PSBOVUxMIHx8IGN0eC0+bWRfaW5mbyA9PSBOVUxMIHx8IGN0eC0+aG1hY19jdHggPT0gTlVMTCkgeworICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfTURfQkFEX0lOUFVUX0RBVEE7CisgICAgfQorCisgICAgb3BhZCA9ICh1bnNpZ25lZCBjaGFyICopIGN0eC0+aG1hY19jdHggKyBjdHgtPm1kX2luZm8tPmJsb2NrX3NpemU7CisKKyAgICBpZiAoKHJldCA9IG1iZWR0bHNfbWRfZmluaXNoKGN0eCwgdG1wKSkgIT0gMCkgeworICAgICAgICByZXR1cm4gcmV0OworICAgIH0KKyAgICBpZiAoKHJldCA9IG1iZWR0bHNfbWRfc3RhcnRzKGN0eCkpICE9IDApIHsKKyAgICAgICAgcmV0dXJuIHJldDsKKyAgICB9CisgICAgaWYgKChyZXQgPSBtYmVkdGxzX21kX3VwZGF0ZShjdHgsIG9wYWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdHgtPm1kX2luZm8tPmJsb2NrX3NpemUpKSAhPSAwKSB7CisgICAgICAgIHJldHVybiByZXQ7CisgICAgfQorICAgIGlmICgocmV0ID0gbWJlZHRsc19tZF91cGRhdGUoY3R4LCB0bXAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdHgtPm1kX2luZm8tPnNpemUpKSAhPSAwKSB7CisgICAgICAgIHJldHVybiByZXQ7CisgICAgfQorICAgIHJldHVybiBtYmVkdGxzX21kX2ZpbmlzaChjdHgsIG91dHB1dCk7Cit9CisKK2ludCBtYmVkdGxzX21kX2htYWNfcmVzZXQobWJlZHRsc19tZF9jb250ZXh0X3QgKmN0eCkKK3sKKyAgICBpbnQgcmV0ID0gTUJFRFRMU19FUlJfRVJST1JfQ09SUlVQVElPTl9ERVRFQ1RFRDsKKyAgICB1bnNpZ25lZCBjaGFyICppcGFkOworCisgICAgaWYgKGN0eCA9PSBOVUxMIHx8IGN0eC0+bWRfaW5mbyA9PSBOVUxMIHx8IGN0eC0+aG1hY19jdHggPT0gTlVMTCkgeworICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfTURfQkFEX0lOUFVUX0RBVEE7CisgICAgfQorCisgICAgaXBhZCA9ICh1bnNpZ25lZCBjaGFyICopIGN0eC0+aG1hY19jdHg7CisKKyAgICBpZiAoKHJldCA9IG1iZWR0bHNfbWRfc3RhcnRzKGN0eCkpICE9IDApIHsKKyAgICAgICAgcmV0dXJuIHJldDsKKyAgICB9CisgICAgcmV0dXJuIG1iZWR0bHNfbWRfdXBkYXRlKGN0eCwgaXBhZCwgY3R4LT5tZF9pbmZvLT5ibG9ja19zaXplKTsKK30KKworaW50IG1iZWR0bHNfbWRfaG1hYyhjb25zdCBtYmVkdGxzX21kX2luZm9fdCAqbWRfaW5mbywKKyAgICAgICAgICAgICAgICAgICAgY29uc3QgdW5zaWduZWQgY2hhciAqa2V5LCBzaXplX3Qga2V5bGVuLAorICAgICAgICAgICAgICAgICAgICBjb25zdCB1bnNpZ25lZCBjaGFyICppbnB1dCwgc2l6ZV90IGlsZW4sCisgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGNoYXIgKm91dHB1dCkKK3sKKyAgICBtYmVkdGxzX21kX2NvbnRleHRfdCBjdHg7CisgICAgaW50IHJldCA9IE1CRURUTFNfRVJSX0VSUk9SX0NPUlJVUFRJT05fREVURUNURUQ7CisKKyAgICBpZiAobWRfaW5mbyA9PSBOVUxMKSB7CisgICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9NRF9CQURfSU5QVVRfREFUQTsKKyAgICB9CisKKyAgICBtYmVkdGxzX21kX2luaXQoJmN0eCk7CisKKyAgICBpZiAoKHJldCA9IG1iZWR0bHNfbWRfc2V0dXAoJmN0eCwgbWRfaW5mbywgMSkpICE9IDApIHsKKyAgICAgICAgZ290byBjbGVhbnVwOworICAgIH0KKworICAgIGlmICgocmV0ID0gbWJlZHRsc19tZF9obWFjX3N0YXJ0cygmY3R4LCBrZXksIGtleWxlbikpICE9IDApIHsKKyAgICAgICAgZ290byBjbGVhbnVwOworICAgIH0KKyAgICBpZiAoKHJldCA9IG1iZWR0bHNfbWRfaG1hY191cGRhdGUoJmN0eCwgaW5wdXQsIGlsZW4pKSAhPSAwKSB7CisgICAgICAgIGdvdG8gY2xlYW51cDsKKyAgICB9CisgICAgaWYgKChyZXQgPSBtYmVkdGxzX21kX2htYWNfZmluaXNoKCZjdHgsIG91dHB1dCkpICE9IDApIHsKKyAgICAgICAgZ290byBjbGVhbnVwOworICAgIH0KKworY2xlYW51cDoKKyAgICBtYmVkdGxzX21kX2ZyZWUoJmN0eCk7CisKKyAgICByZXR1cm4gcmV0OworfQorCisjZW5kaWYgLyogTUJFRFRMU19NRF9DICovCisKKyNlbmRpZiAvKiBNQkVEVExTX01EX0xJR0hUICovCmRpZmYgLS1naXQgYS90Zi1wc2EtY3J5cHRvL2RyaXZlcnMvYnVpbHRpbi9zcmMvbWQ1LmMgYi90Zi1wc2EtY3J5cHRvL2RyaXZlcnMvYnVpbHRpbi9zcmMvbWQ1LmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTExZTA3OAotLS0gL2Rldi9udWxsCisrKyBiL3RmLXBzYS1jcnlwdG8vZHJpdmVycy9idWlsdGluL3NyYy9tZDUuYwpAQCAtMCwwICsxLDQyMiBAQAorLyoKKyAqICBSRkMgMTMyMSBjb21wbGlhbnQgTUQ1IGltcGxlbWVudGF0aW9uCisgKgorICogIENvcHlyaWdodCBUaGUgTWJlZCBUTFMgQ29udHJpYnV0b3JzCisgKiAgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjAgT1IgR1BMLTIuMC1vci1sYXRlcgorICovCisvKgorICogIFRoZSBNRDUgYWxnb3JpdGhtIHdhcyBkZXNpZ25lZCBieSBSb24gUml2ZXN0IGluIDE5OTEuCisgKgorICogIGh0dHA6Ly93d3cuaWV0Zi5vcmcvcmZjL3JmYzEzMjEudHh0CisgKi8KKworI2luY2x1ZGUgImNvbW1vbi5oIgorCisjaWYgZGVmaW5lZChNQkVEVExTX01ENV9DKQorCisjaW5jbHVkZSAibWJlZHRscy9tZDUuaCIKKyNpbmNsdWRlICJtYmVkdGxzL3BsYXRmb3JtX3V0aWwuaCIKKyNpbmNsdWRlICJtYmVkdGxzL2Vycm9yLmgiCisKKyNpbmNsdWRlIDxzdHJpbmcuaD4KKworI2luY2x1ZGUgIm1iZWR0bHMvcGxhdGZvcm0uaCIKKwordm9pZCBtYmVkdGxzX21kNV9pbml0KG1iZWR0bHNfbWQ1X2NvbnRleHQgKmN0eCkKK3sKKyAgICBtZW1zZXQoY3R4LCAwLCBzaXplb2YobWJlZHRsc19tZDVfY29udGV4dCkpOworfQorCit2b2lkIG1iZWR0bHNfbWQ1X2ZyZWUobWJlZHRsc19tZDVfY29udGV4dCAqY3R4KQoreworICAgIGlmIChjdHggPT0gTlVMTCkgeworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgbWJlZHRsc19wbGF0Zm9ybV96ZXJvaXplKGN0eCwgc2l6ZW9mKG1iZWR0bHNfbWQ1X2NvbnRleHQpKTsKK30KKwordm9pZCBtYmVkdGxzX21kNV9jbG9uZShtYmVkdGxzX21kNV9jb250ZXh0ICpkc3QsCisgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IG1iZWR0bHNfbWQ1X2NvbnRleHQgKnNyYykKK3sKKyAgICAqZHN0ID0gKnNyYzsKK30KKworLyoKKyAqIE1ENSBjb250ZXh0IHNldHVwCisgKi8KK2ludCBtYmVkdGxzX21kNV9zdGFydHMobWJlZHRsc19tZDVfY29udGV4dCAqY3R4KQoreworICAgIGN0eC0+dG90YWxbMF0gPSAwOworICAgIGN0eC0+dG90YWxbMV0gPSAwOworCisgICAgY3R4LT5zdGF0ZVswXSA9IDB4Njc0NTIzMDE7CisgICAgY3R4LT5zdGF0ZVsxXSA9IDB4RUZDREFCODk7CisgICAgY3R4LT5zdGF0ZVsyXSA9IDB4OThCQURDRkU7CisgICAgY3R4LT5zdGF0ZVszXSA9IDB4MTAzMjU0NzY7CisKKyAgICByZXR1cm4gMDsKK30KKworI2lmICFkZWZpbmVkKE1CRURUTFNfTUQ1X1BST0NFU1NfQUxUKQoraW50IG1iZWR0bHNfaW50ZXJuYWxfbWQ1X3Byb2Nlc3MobWJlZHRsc19tZDVfY29udGV4dCAqY3R4LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdW5zaWduZWQgY2hhciBkYXRhWzY0XSkKK3sKKyAgICBzdHJ1Y3QgeworICAgICAgICB1aW50MzJfdCBYWzE2XSwgQSwgQiwgQywgRDsKKyAgICB9IGxvY2FsOworCisgICAgbG9jYWwuWFswXSA9IE1CRURUTFNfR0VUX1VJTlQzMl9MRShkYXRhLCAgMCk7CisgICAgbG9jYWwuWFsxXSA9IE1CRURUTFNfR0VUX1VJTlQzMl9MRShkYXRhLCAgNCk7CisgICAgbG9jYWwuWFsyXSA9IE1CRURUTFNfR0VUX1VJTlQzMl9MRShkYXRhLCAgOCk7CisgICAgbG9jYWwuWFszXSA9IE1CRURUTFNfR0VUX1VJTlQzMl9MRShkYXRhLCAxMik7CisgICAgbG9jYWwuWFs0XSA9IE1CRURUTFNfR0VUX1VJTlQzMl9MRShkYXRhLCAxNik7CisgICAgbG9jYWwuWFs1XSA9IE1CRURUTFNfR0VUX1VJTlQzMl9MRShkYXRhLCAyMCk7CisgICAgbG9jYWwuWFs2XSA9IE1CRURUTFNfR0VUX1VJTlQzMl9MRShkYXRhLCAyNCk7CisgICAgbG9jYWwuWFs3XSA9IE1CRURUTFNfR0VUX1VJTlQzMl9MRShkYXRhLCAyOCk7CisgICAgbG9jYWwuWFs4XSA9IE1CRURUTFNfR0VUX1VJTlQzMl9MRShkYXRhLCAzMik7CisgICAgbG9jYWwuWFs5XSA9IE1CRURUTFNfR0VUX1VJTlQzMl9MRShkYXRhLCAzNik7CisgICAgbG9jYWwuWFsxMF0gPSBNQkVEVExTX0dFVF9VSU5UMzJfTEUoZGF0YSwgNDApOworICAgIGxvY2FsLlhbMTFdID0gTUJFRFRMU19HRVRfVUlOVDMyX0xFKGRhdGEsIDQ0KTsKKyAgICBsb2NhbC5YWzEyXSA9IE1CRURUTFNfR0VUX1VJTlQzMl9MRShkYXRhLCA0OCk7CisgICAgbG9jYWwuWFsxM10gPSBNQkVEVExTX0dFVF9VSU5UMzJfTEUoZGF0YSwgNTIpOworICAgIGxvY2FsLlhbMTRdID0gTUJFRFRMU19HRVRfVUlOVDMyX0xFKGRhdGEsIDU2KTsKKyAgICBsb2NhbC5YWzE1XSA9IE1CRURUTFNfR0VUX1VJTlQzMl9MRShkYXRhLCA2MCk7CisKKyNkZWZpbmUgUyh4LCBuKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgKCgoeCkgPDwgKG4pKSB8ICgoKHgpICYgMHhGRkZGRkZGRikgPj4gKDMyIC0gKG4pKSkpCisKKyNkZWZpbmUgUChhLCBiLCBjLCBkLCBrLCBzLCB0KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICBkbyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgKGEpICs9IEYoKGIpLCAoYyksIChkKSkgKyBsb2NhbC5YWyhrKV0gKyAodCk7ICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICAoYSkgPSBTKChhKSwgKHMpKSArIChiKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICB9IHdoaWxlICgwKQorCisgICAgbG9jYWwuQSA9IGN0eC0+c3RhdGVbMF07CisgICAgbG9jYWwuQiA9IGN0eC0+c3RhdGVbMV07CisgICAgbG9jYWwuQyA9IGN0eC0+c3RhdGVbMl07CisgICAgbG9jYWwuRCA9IGN0eC0+c3RhdGVbM107CisKKyNkZWZpbmUgRih4LCB5LCB6KSAoKHopIF4gKCh4KSAmICgoeSkgXiAoeikpKSkKKworICAgIFAobG9jYWwuQSwgbG9jYWwuQiwgbG9jYWwuQywgbG9jYWwuRCwgIDAsICA3LCAweEQ3NkFBNDc4KTsKKyAgICBQKGxvY2FsLkQsIGxvY2FsLkEsIGxvY2FsLkIsIGxvY2FsLkMsICAxLCAxMiwgMHhFOEM3Qjc1Nik7CisgICAgUChsb2NhbC5DLCBsb2NhbC5ELCBsb2NhbC5BLCBsb2NhbC5CLCAgMiwgMTcsIDB4MjQyMDcwREIpOworICAgIFAobG9jYWwuQiwgbG9jYWwuQywgbG9jYWwuRCwgbG9jYWwuQSwgIDMsIDIyLCAweEMxQkRDRUVFKTsKKyAgICBQKGxvY2FsLkEsIGxvY2FsLkIsIGxvY2FsLkMsIGxvY2FsLkQsICA0LCAgNywgMHhGNTdDMEZBRik7CisgICAgUChsb2NhbC5ELCBsb2NhbC5BLCBsb2NhbC5CLCBsb2NhbC5DLCAgNSwgMTIsIDB4NDc4N0M2MkEpOworICAgIFAobG9jYWwuQywgbG9jYWwuRCwgbG9jYWwuQSwgbG9jYWwuQiwgIDYsIDE3LCAweEE4MzA0NjEzKTsKKyAgICBQKGxvY2FsLkIsIGxvY2FsLkMsIGxvY2FsLkQsIGxvY2FsLkEsICA3LCAyMiwgMHhGRDQ2OTUwMSk7CisgICAgUChsb2NhbC5BLCBsb2NhbC5CLCBsb2NhbC5DLCBsb2NhbC5ELCAgOCwgIDcsIDB4Njk4MDk4RDgpOworICAgIFAobG9jYWwuRCwgbG9jYWwuQSwgbG9jYWwuQiwgbG9jYWwuQywgIDksIDEyLCAweDhCNDRGN0FGKTsKKyAgICBQKGxvY2FsLkMsIGxvY2FsLkQsIGxvY2FsLkEsIGxvY2FsLkIsIDEwLCAxNywgMHhGRkZGNUJCMSk7CisgICAgUChsb2NhbC5CLCBsb2NhbC5DLCBsb2NhbC5ELCBsb2NhbC5BLCAxMSwgMjIsIDB4ODk1Q0Q3QkUpOworICAgIFAobG9jYWwuQSwgbG9jYWwuQiwgbG9jYWwuQywgbG9jYWwuRCwgMTIsICA3LCAweDZCOTAxMTIyKTsKKyAgICBQKGxvY2FsLkQsIGxvY2FsLkEsIGxvY2FsLkIsIGxvY2FsLkMsIDEzLCAxMiwgMHhGRDk4NzE5Myk7CisgICAgUChsb2NhbC5DLCBsb2NhbC5ELCBsb2NhbC5BLCBsb2NhbC5CLCAxNCwgMTcsIDB4QTY3OTQzOEUpOworICAgIFAobG9jYWwuQiwgbG9jYWwuQywgbG9jYWwuRCwgbG9jYWwuQSwgMTUsIDIyLCAweDQ5QjQwODIxKTsKKworI3VuZGVmIEYKKworI2RlZmluZSBGKHgsIHksIHopICgoeSkgXiAoKHopICYgKCh4KSBeICh5KSkpKQorCisgICAgUChsb2NhbC5BLCBsb2NhbC5CLCBsb2NhbC5DLCBsb2NhbC5ELCAgMSwgIDUsIDB4RjYxRTI1NjIpOworICAgIFAobG9jYWwuRCwgbG9jYWwuQSwgbG9jYWwuQiwgbG9jYWwuQywgIDYsICA5LCAweEMwNDBCMzQwKTsKKyAgICBQKGxvY2FsLkMsIGxvY2FsLkQsIGxvY2FsLkEsIGxvY2FsLkIsIDExLCAxNCwgMHgyNjVFNUE1MSk7CisgICAgUChsb2NhbC5CLCBsb2NhbC5DLCBsb2NhbC5ELCBsb2NhbC5BLCAgMCwgMjAsIDB4RTlCNkM3QUEpOworICAgIFAobG9jYWwuQSwgbG9jYWwuQiwgbG9jYWwuQywgbG9jYWwuRCwgIDUsICA1LCAweEQ2MkYxMDVEKTsKKyAgICBQKGxvY2FsLkQsIGxvY2FsLkEsIGxvY2FsLkIsIGxvY2FsLkMsIDEwLCAgOSwgMHgwMjQ0MTQ1Myk7CisgICAgUChsb2NhbC5DLCBsb2NhbC5ELCBsb2NhbC5BLCBsb2NhbC5CLCAxNSwgMTQsIDB4RDhBMUU2ODEpOworICAgIFAobG9jYWwuQiwgbG9jYWwuQywgbG9jYWwuRCwgbG9jYWwuQSwgIDQsIDIwLCAweEU3RDNGQkM4KTsKKyAgICBQKGxvY2FsLkEsIGxvY2FsLkIsIGxvY2FsLkMsIGxvY2FsLkQsICA5LCAgNSwgMHgyMUUxQ0RFNik7CisgICAgUChsb2NhbC5ELCBsb2NhbC5BLCBsb2NhbC5CLCBsb2NhbC5DLCAxNCwgIDksIDB4QzMzNzA3RDYpOworICAgIFAobG9jYWwuQywgbG9jYWwuRCwgbG9jYWwuQSwgbG9jYWwuQiwgIDMsIDE0LCAweEY0RDUwRDg3KTsKKyAgICBQKGxvY2FsLkIsIGxvY2FsLkMsIGxvY2FsLkQsIGxvY2FsLkEsICA4LCAyMCwgMHg0NTVBMTRFRCk7CisgICAgUChsb2NhbC5BLCBsb2NhbC5CLCBsb2NhbC5DLCBsb2NhbC5ELCAxMywgIDUsIDB4QTlFM0U5MDUpOworICAgIFAobG9jYWwuRCwgbG9jYWwuQSwgbG9jYWwuQiwgbG9jYWwuQywgIDIsICA5LCAweEZDRUZBM0Y4KTsKKyAgICBQKGxvY2FsLkMsIGxvY2FsLkQsIGxvY2FsLkEsIGxvY2FsLkIsICA3LCAxNCwgMHg2NzZGMDJEOSk7CisgICAgUChsb2NhbC5CLCBsb2NhbC5DLCBsb2NhbC5ELCBsb2NhbC5BLCAxMiwgMjAsIDB4OEQyQTRDOEEpOworCisjdW5kZWYgRgorCisjZGVmaW5lIEYoeCwgeSwgeikgKCh4KSBeICh5KSBeICh6KSkKKworICAgIFAobG9jYWwuQSwgbG9jYWwuQiwgbG9jYWwuQywgbG9jYWwuRCwgIDUsICA0LCAweEZGRkEzOTQyKTsKKyAgICBQKGxvY2FsLkQsIGxvY2FsLkEsIGxvY2FsLkIsIGxvY2FsLkMsICA4LCAxMSwgMHg4NzcxRjY4MSk7CisgICAgUChsb2NhbC5DLCBsb2NhbC5ELCBsb2NhbC5BLCBsb2NhbC5CLCAxMSwgMTYsIDB4NkQ5RDYxMjIpOworICAgIFAobG9jYWwuQiwgbG9jYWwuQywgbG9jYWwuRCwgbG9jYWwuQSwgMTQsIDIzLCAweEZERTUzODBDKTsKKyAgICBQKGxvY2FsLkEsIGxvY2FsLkIsIGxvY2FsLkMsIGxvY2FsLkQsICAxLCAgNCwgMHhBNEJFRUE0NCk7CisgICAgUChsb2NhbC5ELCBsb2NhbC5BLCBsb2NhbC5CLCBsb2NhbC5DLCAgNCwgMTEsIDB4NEJERUNGQTkpOworICAgIFAobG9jYWwuQywgbG9jYWwuRCwgbG9jYWwuQSwgbG9jYWwuQiwgIDcsIDE2LCAweEY2QkI0QjYwKTsKKyAgICBQKGxvY2FsLkIsIGxvY2FsLkMsIGxvY2FsLkQsIGxvY2FsLkEsIDEwLCAyMywgMHhCRUJGQkM3MCk7CisgICAgUChsb2NhbC5BLCBsb2NhbC5CLCBsb2NhbC5DLCBsb2NhbC5ELCAxMywgIDQsIDB4Mjg5QjdFQzYpOworICAgIFAobG9jYWwuRCwgbG9jYWwuQSwgbG9jYWwuQiwgbG9jYWwuQywgIDAsIDExLCAweEVBQTEyN0ZBKTsKKyAgICBQKGxvY2FsLkMsIGxvY2FsLkQsIGxvY2FsLkEsIGxvY2FsLkIsICAzLCAxNiwgMHhENEVGMzA4NSk7CisgICAgUChsb2NhbC5CLCBsb2NhbC5DLCBsb2NhbC5ELCBsb2NhbC5BLCAgNiwgMjMsIDB4MDQ4ODFEMDUpOworICAgIFAobG9jYWwuQSwgbG9jYWwuQiwgbG9jYWwuQywgbG9jYWwuRCwgIDksICA0LCAweEQ5RDREMDM5KTsKKyAgICBQKGxvY2FsLkQsIGxvY2FsLkEsIGxvY2FsLkIsIGxvY2FsLkMsIDEyLCAxMSwgMHhFNkRCOTlFNSk7CisgICAgUChsb2NhbC5DLCBsb2NhbC5ELCBsb2NhbC5BLCBsb2NhbC5CLCAxNSwgMTYsIDB4MUZBMjdDRjgpOworICAgIFAobG9jYWwuQiwgbG9jYWwuQywgbG9jYWwuRCwgbG9jYWwuQSwgIDIsIDIzLCAweEM0QUM1NjY1KTsKKworI3VuZGVmIEYKKworI2RlZmluZSBGKHgsIHksIHopICgoeSkgXiAoKHgpIHwgfih6KSkpCisKKyAgICBQKGxvY2FsLkEsIGxvY2FsLkIsIGxvY2FsLkMsIGxvY2FsLkQsICAwLCAgNiwgMHhGNDI5MjI0NCk7CisgICAgUChsb2NhbC5ELCBsb2NhbC5BLCBsb2NhbC5CLCBsb2NhbC5DLCAgNywgMTAsIDB4NDMyQUZGOTcpOworICAgIFAobG9jYWwuQywgbG9jYWwuRCwgbG9jYWwuQSwgbG9jYWwuQiwgMTQsIDE1LCAweEFCOTQyM0E3KTsKKyAgICBQKGxvY2FsLkIsIGxvY2FsLkMsIGxvY2FsLkQsIGxvY2FsLkEsICA1LCAyMSwgMHhGQzkzQTAzOSk7CisgICAgUChsb2NhbC5BLCBsb2NhbC5CLCBsb2NhbC5DLCBsb2NhbC5ELCAxMiwgIDYsIDB4NjU1QjU5QzMpOworICAgIFAobG9jYWwuRCwgbG9jYWwuQSwgbG9jYWwuQiwgbG9jYWwuQywgIDMsIDEwLCAweDhGMENDQzkyKTsKKyAgICBQKGxvY2FsLkMsIGxvY2FsLkQsIGxvY2FsLkEsIGxvY2FsLkIsIDEwLCAxNSwgMHhGRkVGRjQ3RCk7CisgICAgUChsb2NhbC5CLCBsb2NhbC5DLCBsb2NhbC5ELCBsb2NhbC5BLCAgMSwgMjEsIDB4ODU4NDVERDEpOworICAgIFAobG9jYWwuQSwgbG9jYWwuQiwgbG9jYWwuQywgbG9jYWwuRCwgIDgsICA2LCAweDZGQTg3RTRGKTsKKyAgICBQKGxvY2FsLkQsIGxvY2FsLkEsIGxvY2FsLkIsIGxvY2FsLkMsIDE1LCAxMCwgMHhGRTJDRTZFMCk7CisgICAgUChsb2NhbC5DLCBsb2NhbC5ELCBsb2NhbC5BLCBsb2NhbC5CLCAgNiwgMTUsIDB4QTMwMTQzMTQpOworICAgIFAobG9jYWwuQiwgbG9jYWwuQywgbG9jYWwuRCwgbG9jYWwuQSwgMTMsIDIxLCAweDRFMDgxMUExKTsKKyAgICBQKGxvY2FsLkEsIGxvY2FsLkIsIGxvY2FsLkMsIGxvY2FsLkQsICA0LCAgNiwgMHhGNzUzN0U4Mik7CisgICAgUChsb2NhbC5ELCBsb2NhbC5BLCBsb2NhbC5CLCBsb2NhbC5DLCAxMSwgMTAsIDB4QkQzQUYyMzUpOworICAgIFAobG9jYWwuQywgbG9jYWwuRCwgbG9jYWwuQSwgbG9jYWwuQiwgIDIsIDE1LCAweDJBRDdEMkJCKTsKKyAgICBQKGxvY2FsLkIsIGxvY2FsLkMsIGxvY2FsLkQsIGxvY2FsLkEsICA5LCAyMSwgMHhFQjg2RDM5MSk7CisKKyN1bmRlZiBGCisKKyAgICBjdHgtPnN0YXRlWzBdICs9IGxvY2FsLkE7CisgICAgY3R4LT5zdGF0ZVsxXSArPSBsb2NhbC5COworICAgIGN0eC0+c3RhdGVbMl0gKz0gbG9jYWwuQzsKKyAgICBjdHgtPnN0YXRlWzNdICs9IGxvY2FsLkQ7CisKKyAgICAvKiBaZXJvaXNlIHZhcmlhYmxlcyB0byBjbGVhciBzZW5zaXRpdmUgZGF0YSBmcm9tIG1lbW9yeS4gKi8KKyAgICBtYmVkdGxzX3BsYXRmb3JtX3plcm9pemUoJmxvY2FsLCBzaXplb2YobG9jYWwpKTsKKworICAgIHJldHVybiAwOworfQorCisjZW5kaWYgLyogIU1CRURUTFNfTUQ1X1BST0NFU1NfQUxUICovCisKKy8qCisgKiBNRDUgcHJvY2VzcyBidWZmZXIKKyAqLworaW50IG1iZWR0bHNfbWQ1X3VwZGF0ZShtYmVkdGxzX21kNV9jb250ZXh0ICpjdHgsCisgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgKmlucHV0LAorICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgaWxlbikKK3sKKyAgICBpbnQgcmV0ID0gTUJFRFRMU19FUlJfRVJST1JfQ09SUlVQVElPTl9ERVRFQ1RFRDsKKyAgICBzaXplX3QgZmlsbDsKKyAgICB1aW50MzJfdCBsZWZ0OworCisgICAgaWYgKGlsZW4gPT0gMCkgeworICAgICAgICByZXR1cm4gMDsKKyAgICB9CisKKyAgICBsZWZ0ID0gY3R4LT50b3RhbFswXSAmIDB4M0Y7CisgICAgZmlsbCA9IDY0IC0gbGVmdDsKKworICAgIGN0eC0+dG90YWxbMF0gKz0gKHVpbnQzMl90KSBpbGVuOworICAgIGN0eC0+dG90YWxbMF0gJj0gMHhGRkZGRkZGRjsKKworICAgIGlmIChjdHgtPnRvdGFsWzBdIDwgKHVpbnQzMl90KSBpbGVuKSB7CisgICAgICAgIGN0eC0+dG90YWxbMV0rKzsKKyAgICB9CisKKyAgICBpZiAobGVmdCAmJiBpbGVuID49IGZpbGwpIHsKKyAgICAgICAgbWVtY3B5KCh2b2lkICopIChjdHgtPmJ1ZmZlciArIGxlZnQpLCBpbnB1dCwgZmlsbCk7CisgICAgICAgIGlmICgocmV0ID0gbWJlZHRsc19pbnRlcm5hbF9tZDVfcHJvY2VzcyhjdHgsIGN0eC0+YnVmZmVyKSkgIT0gMCkgeworICAgICAgICAgICAgcmV0dXJuIHJldDsKKyAgICAgICAgfQorCisgICAgICAgIGlucHV0ICs9IGZpbGw7CisgICAgICAgIGlsZW4gIC09IGZpbGw7CisgICAgICAgIGxlZnQgPSAwOworICAgIH0KKworICAgIHdoaWxlIChpbGVuID49IDY0KSB7CisgICAgICAgIGlmICgocmV0ID0gbWJlZHRsc19pbnRlcm5hbF9tZDVfcHJvY2VzcyhjdHgsIGlucHV0KSkgIT0gMCkgeworICAgICAgICAgICAgcmV0dXJuIHJldDsKKyAgICAgICAgfQorCisgICAgICAgIGlucHV0ICs9IDY0OworICAgICAgICBpbGVuICAtPSA2NDsKKyAgICB9CisKKyAgICBpZiAoaWxlbiA+IDApIHsKKyAgICAgICAgbWVtY3B5KCh2b2lkICopIChjdHgtPmJ1ZmZlciArIGxlZnQpLCBpbnB1dCwgaWxlbik7CisgICAgfQorCisgICAgcmV0dXJuIDA7Cit9CisKKy8qCisgKiBNRDUgZmluYWwgZGlnZXN0CisgKi8KK2ludCBtYmVkdGxzX21kNV9maW5pc2gobWJlZHRsc19tZDVfY29udGV4dCAqY3R4LAorICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBjaGFyIG91dHB1dFsxNl0pCit7CisgICAgaW50IHJldCA9IE1CRURUTFNfRVJSX0VSUk9SX0NPUlJVUFRJT05fREVURUNURUQ7CisgICAgdWludDMyX3QgdXNlZDsKKyAgICB1aW50MzJfdCBoaWdoLCBsb3c7CisKKyAgICAvKgorICAgICAqIEFkZCBwYWRkaW5nOiAweDgwIHRoZW4gMHgwMCB1bnRpbCA4IGJ5dGVzIHJlbWFpbiBmb3IgdGhlIGxlbmd0aAorICAgICAqLworICAgIHVzZWQgPSBjdHgtPnRvdGFsWzBdICYgMHgzRjsKKworICAgIGN0eC0+YnVmZmVyW3VzZWQrK10gPSAweDgwOworCisgICAgaWYgKHVzZWQgPD0gNTYpIHsKKyAgICAgICAgLyogRW5vdWdoIHJvb20gZm9yIHBhZGRpbmcgKyBsZW5ndGggaW4gY3VycmVudCBibG9jayAqLworICAgICAgICBtZW1zZXQoY3R4LT5idWZmZXIgKyB1c2VkLCAwLCA1NiAtIHVzZWQpOworICAgIH0gZWxzZSB7CisgICAgICAgIC8qIFdlJ2xsIG5lZWQgYW4gZXh0cmEgYmxvY2sgKi8KKyAgICAgICAgbWVtc2V0KGN0eC0+YnVmZmVyICsgdXNlZCwgMCwgNjQgLSB1c2VkKTsKKworICAgICAgICBpZiAoKHJldCA9IG1iZWR0bHNfaW50ZXJuYWxfbWQ1X3Byb2Nlc3MoY3R4LCBjdHgtPmJ1ZmZlcikpICE9IDApIHsKKyAgICAgICAgICAgIGdvdG8gZXhpdDsKKyAgICAgICAgfQorCisgICAgICAgIG1lbXNldChjdHgtPmJ1ZmZlciwgMCwgNTYpOworICAgIH0KKworICAgIC8qCisgICAgICogQWRkIG1lc3NhZ2UgbGVuZ3RoCisgICAgICovCisgICAgaGlnaCA9IChjdHgtPnRvdGFsWzBdID4+IDI5KQorICAgICAgICAgICB8IChjdHgtPnRvdGFsWzFdIDw8ICAzKTsKKyAgICBsb3cgID0gKGN0eC0+dG90YWxbMF0gPDwgIDMpOworCisgICAgTUJFRFRMU19QVVRfVUlOVDMyX0xFKGxvdywgIGN0eC0+YnVmZmVyLCA1Nik7CisgICAgTUJFRFRMU19QVVRfVUlOVDMyX0xFKGhpZ2gsIGN0eC0+YnVmZmVyLCA2MCk7CisKKyAgICBpZiAoKHJldCA9IG1iZWR0bHNfaW50ZXJuYWxfbWQ1X3Byb2Nlc3MoY3R4LCBjdHgtPmJ1ZmZlcikpICE9IDApIHsKKyAgICAgICAgZ290byBleGl0OworICAgIH0KKworICAgIC8qCisgICAgICogT3V0cHV0IGZpbmFsIHN0YXRlCisgICAgICovCisgICAgTUJFRFRMU19QVVRfVUlOVDMyX0xFKGN0eC0+c3RhdGVbMF0sIG91dHB1dCwgIDApOworICAgIE1CRURUTFNfUFVUX1VJTlQzMl9MRShjdHgtPnN0YXRlWzFdLCBvdXRwdXQsICA0KTsKKyAgICBNQkVEVExTX1BVVF9VSU5UMzJfTEUoY3R4LT5zdGF0ZVsyXSwgb3V0cHV0LCAgOCk7CisgICAgTUJFRFRMU19QVVRfVUlOVDMyX0xFKGN0eC0+c3RhdGVbM10sIG91dHB1dCwgMTIpOworCisgICAgcmV0ID0gMDsKKworZXhpdDoKKyAgICBtYmVkdGxzX21kNV9mcmVlKGN0eCk7CisgICAgcmV0dXJuIHJldDsKK30KKworLyoKKyAqIG91dHB1dCA9IE1ENSggaW5wdXQgYnVmZmVyICkKKyAqLworaW50IG1iZWR0bHNfbWQ1KGNvbnN0IHVuc2lnbmVkIGNoYXIgKmlucHV0LAorICAgICAgICAgICAgICAgIHNpemVfdCBpbGVuLAorICAgICAgICAgICAgICAgIHVuc2lnbmVkIGNoYXIgb3V0cHV0WzE2XSkKK3sKKyAgICBpbnQgcmV0ID0gTUJFRFRMU19FUlJfRVJST1JfQ09SUlVQVElPTl9ERVRFQ1RFRDsKKyAgICBtYmVkdGxzX21kNV9jb250ZXh0IGN0eDsKKworICAgIG1iZWR0bHNfbWQ1X2luaXQoJmN0eCk7CisKKyAgICBpZiAoKHJldCA9IG1iZWR0bHNfbWQ1X3N0YXJ0cygmY3R4KSkgIT0gMCkgeworICAgICAgICBnb3RvIGV4aXQ7CisgICAgfQorCisgICAgaWYgKChyZXQgPSBtYmVkdGxzX21kNV91cGRhdGUoJmN0eCwgaW5wdXQsIGlsZW4pKSAhPSAwKSB7CisgICAgICAgIGdvdG8gZXhpdDsKKyAgICB9CisKKyAgICBpZiAoKHJldCA9IG1iZWR0bHNfbWQ1X2ZpbmlzaCgmY3R4LCBvdXRwdXQpKSAhPSAwKSB7CisgICAgICAgIGdvdG8gZXhpdDsKKyAgICB9CisKK2V4aXQ6CisgICAgbWJlZHRsc19tZDVfZnJlZSgmY3R4KTsKKworICAgIHJldHVybiByZXQ7Cit9CisKKyNpZiBkZWZpbmVkKE1CRURUTFNfU0VMRl9URVNUKQorLyoKKyAqIFJGQyAxMzIxIHRlc3QgdmVjdG9ycworICovCitzdGF0aWMgY29uc3QgdW5zaWduZWQgY2hhciBtZDVfdGVzdF9idWZbN11bODFdID0KK3sKKyAgICB7ICIiIH0sCisgICAgeyAiYSIgfSwKKyAgICB7ICJhYmMiIH0sCisgICAgeyAibWVzc2FnZSBkaWdlc3QiIH0sCisgICAgeyAiYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiIH0sCisgICAgeyAiQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVphYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ejAxMjM0NTY3ODkiIH0sCisgICAgeyAiMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAiIH0KK307CisKK3N0YXRpYyBjb25zdCBzaXplX3QgbWQ1X3Rlc3RfYnVmbGVuWzddID0KK3sKKyAgICAwLCAxLCAzLCAxNCwgMjYsIDYyLCA4MAorfTsKKworc3RhdGljIGNvbnN0IHVuc2lnbmVkIGNoYXIgbWQ1X3Rlc3Rfc3VtWzddWzE2XSA9Cit7CisgICAgeyAweEQ0LCAweDFELCAweDhDLCAweEQ5LCAweDhGLCAweDAwLCAweEIyLCAweDA0LAorICAgICAgMHhFOSwgMHg4MCwgMHgwOSwgMHg5OCwgMHhFQywgMHhGOCwgMHg0MiwgMHg3RSB9LAorICAgIHsgMHgwQywgMHhDMSwgMHg3NSwgMHhCOSwgMHhDMCwgMHhGMSwgMHhCNiwgMHhBOCwKKyAgICAgIDB4MzEsIDB4QzMsIDB4OTksIDB4RTIsIDB4NjksIDB4NzcsIDB4MjYsIDB4NjEgfSwKKyAgICB7IDB4OTAsIDB4MDEsIDB4NTAsIDB4OTgsIDB4M0MsIDB4RDIsIDB4NEYsIDB4QjAsCisgICAgICAweEQ2LCAweDk2LCAweDNGLCAweDdELCAweDI4LCAweEUxLCAweDdGLCAweDcyIH0sCisgICAgeyAweEY5LCAweDZCLCAweDY5LCAweDdELCAweDdDLCAweEI3LCAweDkzLCAweDhELAorICAgICAgMHg1MiwgMHg1QSwgMHgyRiwgMHgzMSwgMHhBQSwgMHhGMSwgMHg2MSwgMHhEMCB9LAorICAgIHsgMHhDMywgMHhGQywgMHhEMywgMHhENywgMHg2MSwgMHg5MiwgMHhFNCwgMHgwMCwKKyAgICAgIDB4N0QsIDB4RkIsIDB4NDksIDB4NkMsIDB4Q0EsIDB4NjcsIDB4RTEsIDB4M0IgfSwKKyAgICB7IDB4RDEsIDB4NzQsIDB4QUIsIDB4OTgsIDB4RDIsIDB4NzcsIDB4RDksIDB4RjUsCisgICAgICAweEE1LCAweDYxLCAweDFDLCAweDJDLCAweDlGLCAweDQxLCAweDlELCAweDlGIH0sCisgICAgeyAweDU3LCAweEVELCAweEY0LCAweEEyLCAweDJCLCAweEUzLCAweEM5LCAweDU1LAorICAgICAgMHhBQywgMHg0OSwgMHhEQSwgMHgyRSwgMHgyMSwgMHgwNywgMHhCNiwgMHg3QSB9Cit9OworCisvKgorICogQ2hlY2t1cCByb3V0aW5lCisgKi8KK2ludCBtYmVkdGxzX21kNV9zZWxmX3Rlc3QoaW50IHZlcmJvc2UpCit7CisgICAgaW50IGksIHJldCA9IDA7CisgICAgdW5zaWduZWQgY2hhciBtZDVzdW1bMTZdOworCisgICAgZm9yIChpID0gMDsgaSA8IDc7IGkrKykgeworICAgICAgICBpZiAodmVyYm9zZSAhPSAwKSB7CisgICAgICAgICAgICBtYmVkdGxzX3ByaW50ZigiICBNRDUgdGVzdCAjJWQ6ICIsIGkgKyAxKTsKKyAgICAgICAgfQorCisgICAgICAgIHJldCA9IG1iZWR0bHNfbWQ1KG1kNV90ZXN0X2J1ZltpXSwgbWQ1X3Rlc3RfYnVmbGVuW2ldLCBtZDVzdW0pOworICAgICAgICBpZiAocmV0ICE9IDApIHsKKyAgICAgICAgICAgIGdvdG8gZmFpbDsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChtZW1jbXAobWQ1c3VtLCBtZDVfdGVzdF9zdW1baV0sIDE2KSAhPSAwKSB7CisgICAgICAgICAgICByZXQgPSAxOworICAgICAgICAgICAgZ290byBmYWlsOworICAgICAgICB9CisKKyAgICAgICAgaWYgKHZlcmJvc2UgIT0gMCkgeworICAgICAgICAgICAgbWJlZHRsc19wcmludGYoInBhc3NlZFxuIik7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBpZiAodmVyYm9zZSAhPSAwKSB7CisgICAgICAgIG1iZWR0bHNfcHJpbnRmKCJcbiIpOworICAgIH0KKworICAgIHJldHVybiAwOworCitmYWlsOgorICAgIGlmICh2ZXJib3NlICE9IDApIHsKKyAgICAgICAgbWJlZHRsc19wcmludGYoImZhaWxlZFxuIik7CisgICAgfQorCisgICAgcmV0dXJuIHJldDsKK30KKworI2VuZGlmIC8qIE1CRURUTFNfU0VMRl9URVNUICovCisKKyNlbmRpZiAvKiBNQkVEVExTX01ENV9DICovCmRpZmYgLS1naXQgYS9saWJyYXJ5L21kX3BzYS5oIGIvdGYtcHNhLWNyeXB0by9kcml2ZXJzL2J1aWx0aW4vc3JjL21kX3BzYS5oCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBsaWJyYXJ5L21kX3BzYS5oCnJlbmFtZSB0byB0Zi1wc2EtY3J5cHRvL2RyaXZlcnMvYnVpbHRpbi9zcmMvbWRfcHNhLmgKZGlmZiAtLWdpdCBhL2xpYnJhcnkvbWRfd3JhcC5oIGIvdGYtcHNhLWNyeXB0by9kcml2ZXJzL2J1aWx0aW4vc3JjL21kX3dyYXAuaApzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gbGlicmFyeS9tZF93cmFwLmgKcmVuYW1lIHRvIHRmLXBzYS1jcnlwdG8vZHJpdmVycy9idWlsdGluL3NyYy9tZF93cmFwLmgKZGlmZiAtLWdpdCBhL2xpYnJhcnkvbWVtb3J5X2J1ZmZlcl9hbGxvYy5jIGIvdGYtcHNhLWNyeXB0by9kcml2ZXJzL2J1aWx0aW4vc3JjL21lbW9yeV9idWZmZXJfYWxsb2MuYwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gbGlicmFyeS9tZW1vcnlfYnVmZmVyX2FsbG9jLmMKcmVuYW1lIHRvIHRmLXBzYS1jcnlwdG8vZHJpdmVycy9idWlsdGluL3NyYy9tZW1vcnlfYnVmZmVyX2FsbG9jLmMKZGlmZiAtLWdpdCBhL3RmLXBzYS1jcnlwdG8vZHJpdmVycy9idWlsdGluL3NyYy9uaXN0X2t3LmMgYi90Zi1wc2EtY3J5cHRvL2RyaXZlcnMvYnVpbHRpbi9zcmMvbmlzdF9rdy5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmE0YjRiZTcKLS0tIC9kZXYvbnVsbAorKysgYi90Zi1wc2EtY3J5cHRvL2RyaXZlcnMvYnVpbHRpbi9zcmMvbmlzdF9rdy5jCkBAIC0wLDAgKzEsNzI1IEBACisvKgorICogIEltcGxlbWVudGF0aW9uIG9mIE5JU1QgU1AgODAwLTM4RiBrZXkgd3JhcHBpbmcsIHN1cHBvcnRpbmcgS1cgYW5kIEtXUCBtb2RlcworICogIG9ubHkKKyAqCisgKiAgQ29weXJpZ2h0IFRoZSBNYmVkIFRMUyBDb250cmlidXRvcnMKKyAqICBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMCBPUiBHUEwtMi4wLW9yLWxhdGVyCisgKi8KKy8qCisgKiBEZWZpbml0aW9uIG9mIEtleSBXcmFwcGluZzoKKyAqIGh0dHBzOi8vbnZscHVicy5uaXN0Lmdvdi9uaXN0cHVicy9TcGVjaWFsUHVibGljYXRpb25zL05JU1QuU1AuODAwLTM4Ri5wZGYKKyAqIFJGQyAzMzk0ICJBZHZhbmNlZCBFbmNyeXB0aW9uIFN0YW5kYXJkIChBRVMpIEtleSBXcmFwIEFsZ29yaXRobSIKKyAqIFJGQyA1NjQ5ICJBZHZhbmNlZCBFbmNyeXB0aW9uIFN0YW5kYXJkIChBRVMpIEtleSBXcmFwIHdpdGggUGFkZGluZyBBbGdvcml0aG0iCisgKgorICogTm90ZTogUkZDIDMzOTQgZGVmaW5lcyBkaWZmZXJlbnQgbWV0aG9kb2xvZ3kgZm9yIGludGVybWVkaWF0ZSBvcGVyYXRpb25zIGZvcgorICogdGhlIHdyYXBwaW5nIGFuZCB1bndyYXBwaW5nIG9wZXJhdGlvbiB0aGFuIHRoZSBkZWZpbml0aW9uIGluIE5JU1QgU1AgODAwLTM4Ri4KKyAqLworCisjaW5jbHVkZSAiY29tbW9uLmgiCisKKyNpZiBkZWZpbmVkKE1CRURUTFNfTklTVF9LV19DKQorCisjaW5jbHVkZSAibWJlZHRscy9uaXN0X2t3LmgiCisjaW5jbHVkZSAibWJlZHRscy9wbGF0Zm9ybV91dGlsLmgiCisjaW5jbHVkZSAibWJlZHRscy9lcnJvci5oIgorI2luY2x1ZGUgIm1iZWR0bHMvY29uc3RhbnRfdGltZS5oIgorI2luY2x1ZGUgImNvbnN0YW50X3RpbWVfaW50ZXJuYWwuaCIKKworI2luY2x1ZGUgPHN0ZGludC5oPgorI2luY2x1ZGUgPHN0cmluZy5oPgorCisjaW5jbHVkZSAibWJlZHRscy9wbGF0Zm9ybS5oIgorCisjZGVmaW5lIEtXX1NFTUlCTE9DS19MRU5HVEggICAgOAorI2RlZmluZSBNSU5fU0VNSUJMT0NLU19DT1VOVCAgIDMKKworLyohIFRoZSA2NC1iaXQgZGVmYXVsdCBpbnRlZ3JpdHkgY2hlY2sgdmFsdWUgKElDVikgZm9yIEtXIG1vZGUuICovCitzdGF0aWMgY29uc3QgdW5zaWduZWQgY2hhciBOSVNUX0tXX0lDVjFbXSA9IHsgMHhBNiwgMHhBNiwgMHhBNiwgMHhBNiwgMHhBNiwgMHhBNiwgMHhBNiwgMHhBNiB9OworLyohIFRoZSAzMi1iaXQgZGVmYXVsdCBpbnRlZ3JpdHkgY2hlY2sgdmFsdWUgKElDVikgZm9yIEtXUCBtb2RlLiAqLworc3RhdGljIGNvbnN0ICB1bnNpZ25lZCBjaGFyIE5JU1RfS1dfSUNWMltdID0geyAweEE2LCAweDU5LCAweDU5LCAweEE2IH07CisKKy8qCisgKiBJbml0aWFsaXplIGNvbnRleHQKKyAqLwordm9pZCBtYmVkdGxzX25pc3Rfa3dfaW5pdChtYmVkdGxzX25pc3Rfa3dfY29udGV4dCAqY3R4KQoreworICAgIG1lbXNldChjdHgsIDAsIHNpemVvZihtYmVkdGxzX25pc3Rfa3dfY29udGV4dCkpOworfQorCitpbnQgbWJlZHRsc19uaXN0X2t3X3NldGtleShtYmVkdGxzX25pc3Rfa3dfY29udGV4dCAqY3R4LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgbWJlZHRsc19jaXBoZXJfaWRfdCBjaXBoZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1bnNpZ25lZCBjaGFyICprZXksCisgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQga2V5Yml0cywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGludCBpc193cmFwKQoreworICAgIGludCByZXQgPSBNQkVEVExTX0VSUl9FUlJPUl9DT1JSVVBUSU9OX0RFVEVDVEVEOworICAgIGNvbnN0IG1iZWR0bHNfY2lwaGVyX2luZm9fdCAqY2lwaGVyX2luZm87CisKKyAgICBjaXBoZXJfaW5mbyA9IG1iZWR0bHNfY2lwaGVyX2luZm9fZnJvbV92YWx1ZXMoY2lwaGVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXliaXRzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNQkVEVExTX01PREVfRUNCKTsKKyAgICBpZiAoY2lwaGVyX2luZm8gPT0gTlVMTCkgeworICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfQ0lQSEVSX0JBRF9JTlBVVF9EQVRBOworICAgIH0KKworICAgIGlmIChtYmVkdGxzX2NpcGhlcl9pbmZvX2dldF9ibG9ja19zaXplKGNpcGhlcl9pbmZvKSAhPSAxNikgeworICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfQ0lQSEVSX0JBRF9JTlBVVF9EQVRBOworICAgIH0KKworICAgIC8qCisgICAgICogU1AgODAwLTM4RiBjdXJyZW50bHkgZGVmaW5lcyBBRVMgY2lwaGVyIGFzIHRoZSBvbmx5IGJsb2NrIGNpcGhlciBhbGxvd2VkOgorICAgICAqICJGb3IgS1cgYW5kIEtXUCwgdGhlIHVuZGVybHlpbmcgYmxvY2sgY2lwaGVyIHNoYWxsIGJlIGFwcHJvdmVkLCBhbmQgdGhlCisgICAgICogIGJsb2NrIHNpemUgc2hhbGwgYmUgMTI4IGJpdHMuIEN1cnJlbnRseSwgdGhlIEFFUyBibG9jayBjaXBoZXIsIHdpdGgga2V5CisgICAgICogIGxlbmd0aHMgb2YgMTI4LCAxOTIsIG9yIDI1NiBiaXRzLCBpcyB0aGUgb25seSBibG9jayBjaXBoZXIgdGhhdCBmaXRzCisgICAgICogIHRoaXMgcHJvZmlsZS4iCisgICAgICogIEN1cnJlbnRseSB3ZSBkb24ndCBzdXBwb3J0IG90aGVyIDEyOCBiaXQgYmxvY2sgY2lwaGVycyBmb3Iga2V5IHdyYXBwaW5nLAorICAgICAqICBzdWNoIGFzIENhbWVsbGlhIGFuZCBBcmlhLgorICAgICAqLworICAgIGlmIChjaXBoZXIgIT0gTUJFRFRMU19DSVBIRVJfSURfQUVTKSB7CisgICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9DSVBIRVJfRkVBVFVSRV9VTkFWQUlMQUJMRTsKKyAgICB9CisKKyAgICBtYmVkdGxzX2NpcGhlcl9mcmVlKCZjdHgtPmNpcGhlcl9jdHgpOworCisgICAgaWYgKChyZXQgPSBtYmVkdGxzX2NpcGhlcl9zZXR1cCgmY3R4LT5jaXBoZXJfY3R4LCBjaXBoZXJfaW5mbykpICE9IDApIHsKKyAgICAgICAgcmV0dXJuIHJldDsKKyAgICB9CisKKyAgICBpZiAoKHJldCA9IG1iZWR0bHNfY2lwaGVyX3NldGtleSgmY3R4LT5jaXBoZXJfY3R4LCBrZXksIGtleWJpdHMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXNfd3JhcCA/IE1CRURUTFNfRU5DUllQVCA6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTUJFRFRMU19ERUNSWVBUKQorICAgICAgICAgKSAhPSAwKSB7CisgICAgICAgIHJldHVybiByZXQ7CisgICAgfQorCisgICAgcmV0dXJuIDA7Cit9CisKKy8qCisgKiBGcmVlIGNvbnRleHQKKyAqLwordm9pZCBtYmVkdGxzX25pc3Rfa3dfZnJlZShtYmVkdGxzX25pc3Rfa3dfY29udGV4dCAqY3R4KQoreworICAgIGlmIChjdHggPT0gTlVMTCkgeworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgbWJlZHRsc19jaXBoZXJfZnJlZSgmY3R4LT5jaXBoZXJfY3R4KTsKKyAgICBtYmVkdGxzX3BsYXRmb3JtX3plcm9pemUoY3R4LCBzaXplb2YobWJlZHRsc19uaXN0X2t3X2NvbnRleHQpKTsKK30KKworLyoKKyAqIEhlbHBlciBmdW5jdGlvbiBmb3IgWG9yaW5nIHRoZSB1aW50NjRfdCAidCIgd2l0aCB0aGUgZW5jcnlwdGVkIEEuCisgKiBEZWZpbmVkIGluIE5JU1QgU1AgODAwLTM4RiBzZWN0aW9uIDYuMQorICovCitzdGF0aWMgdm9pZCBjYWxjX2FfeG9yX3QodW5zaWduZWQgY2hhciBBW0tXX1NFTUlCTE9DS19MRU5HVEhdLCB1aW50NjRfdCB0KQoreworICAgIHNpemVfdCBpID0gMDsKKyAgICBmb3IgKGkgPSAwOyBpIDwgc2l6ZW9mKHQpOyBpKyspIHsKKyAgICAgICAgQVtpXSBePSAodCA+PiAoKHNpemVvZih0KSAtIDEgLSBpKSAqIDgpKSAmIDB4ZmY7CisgICAgfQorfQorCisvKgorICogS1ctQUUgYXMgZGVmaW5lZCBpbiBTUCA4MDAtMzhGIHNlY3Rpb24gNi4yCisgKiBLV1AtQUUgYXMgZGVmaW5lZCBpbiBTUCA4MDAtMzhGIHNlY3Rpb24gNi4zCisgKi8KK2ludCBtYmVkdGxzX25pc3Rfa3dfd3JhcChtYmVkdGxzX25pc3Rfa3dfY29udGV4dCAqY3R4LAorICAgICAgICAgICAgICAgICAgICAgICAgIG1iZWR0bHNfbmlzdF9rd19tb2RlX3QgbW9kZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1bnNpZ25lZCBjaGFyICppbnB1dCwgc2l6ZV90IGluX2xlbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBjaGFyICpvdXRwdXQsIHNpemVfdCAqb3V0X2xlbiwgc2l6ZV90IG91dF9zaXplKQoreworICAgIGludCByZXQgPSAwOworICAgIHNpemVfdCBzZW1pYmxvY2tzID0gMDsKKyAgICBzaXplX3QgczsKKyAgICBzaXplX3Qgb2xlbiwgcGFkbGVuID0gMDsKKyAgICB1aW50NjRfdCB0ID0gMDsKKyAgICB1bnNpZ25lZCBjaGFyIG91dGJ1ZmZbS1dfU0VNSUJMT0NLX0xFTkdUSCAqIDJdOworICAgIHVuc2lnbmVkIGNoYXIgaW5idWZmW0tXX1NFTUlCTE9DS19MRU5HVEggKiAyXTsKKworICAgICpvdXRfbGVuID0gMDsKKyAgICAvKgorICAgICAqIEdlbmVyYXRlIHRoZSBTdHJpbmcgdG8gd29yayBvbgorICAgICAqLworICAgIGlmIChtb2RlID09IE1CRURUTFNfS1dfTU9ERV9LVykgeworICAgICAgICBpZiAob3V0X3NpemUgPCBpbl9sZW4gKyBLV19TRU1JQkxPQ0tfTEVOR1RIKSB7CisgICAgICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfQ0lQSEVSX0JBRF9JTlBVVF9EQVRBOworICAgICAgICB9CisKKyAgICAgICAgLyoKKyAgICAgICAgICogQWNjb3JkaW5nIHRvIFNQIDgwMC0zOEYgVGFibGUgMSwgdGhlIHBsYWludGV4dCBsZW5ndGggZm9yIEtXCisgICAgICAgICAqIG11c3QgYmUgYmV0d2VlbiAyIHRvIDJeNTQtMSBzZW1pYmxvY2tzIGluY2x1c2l2ZS4KKyAgICAgICAgICovCisgICAgICAgIGlmIChpbl9sZW4gPCAxNiB8fAorI2lmIFNJWkVfTUFYID4gMHgxRkZGRkZGRkZGRkZGRjgKKyAgICAgICAgICAgIGluX2xlbiA+IDB4MUZGRkZGRkZGRkZGRkY4IHx8CisjZW5kaWYKKyAgICAgICAgICAgIGluX2xlbiAlIEtXX1NFTUlCTE9DS19MRU5HVEggIT0gMCkgeworICAgICAgICAgICAgcmV0dXJuIE1CRURUTFNfRVJSX0NJUEhFUl9CQURfSU5QVVRfREFUQTsKKyAgICAgICAgfQorCisgICAgICAgIG1lbWNweShvdXRwdXQsIE5JU1RfS1dfSUNWMSwgS1dfU0VNSUJMT0NLX0xFTkdUSCk7CisgICAgICAgIG1lbW1vdmUob3V0cHV0ICsgS1dfU0VNSUJMT0NLX0xFTkdUSCwgaW5wdXQsIGluX2xlbik7CisgICAgfSBlbHNlIHsKKyAgICAgICAgaWYgKGluX2xlbiAlIDggIT0gMCkgeworICAgICAgICAgICAgcGFkbGVuID0gKDggLSAoaW5fbGVuICUgOCkpOworICAgICAgICB9CisKKyAgICAgICAgaWYgKG91dF9zaXplIDwgaW5fbGVuICsgS1dfU0VNSUJMT0NLX0xFTkdUSCArIHBhZGxlbikgeworICAgICAgICAgICAgcmV0dXJuIE1CRURUTFNfRVJSX0NJUEhFUl9CQURfSU5QVVRfREFUQTsKKyAgICAgICAgfQorCisgICAgICAgIC8qCisgICAgICAgICAqIEFjY29yZGluZyB0byBTUCA4MDAtMzhGIFRhYmxlIDEsIHRoZSBwbGFpbnRleHQgbGVuZ3RoIGZvciBLV1AKKyAgICAgICAgICogbXVzdCBiZSBiZXR3ZWVuIDEgYW5kIDJeMzItMSBvY3RldHMgaW5jbHVzaXZlLgorICAgICAgICAgKi8KKyAgICAgICAgaWYgKGluX2xlbiA8IDEKKyNpZiBTSVpFX01BWCA+IDB4RkZGRkZGRkYKKyAgICAgICAgICAgIHx8IGluX2xlbiA+IDB4RkZGRkZGRkYKKyNlbmRpZgorICAgICAgICAgICAgKSB7CisgICAgICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfQ0lQSEVSX0JBRF9JTlBVVF9EQVRBOworICAgICAgICB9CisKKyAgICAgICAgbWVtY3B5KG91dHB1dCwgTklTVF9LV19JQ1YyLCBLV19TRU1JQkxPQ0tfTEVOR1RIIC8gMik7CisgICAgICAgIE1CRURUTFNfUFVUX1VJTlQzMl9CRSgoaW5fbGVuICYgMHhmZmZmZmZmZiksIG91dHB1dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEtXX1NFTUlCTE9DS19MRU5HVEggLyAyKTsKKworICAgICAgICBtZW1jcHkob3V0cHV0ICsgS1dfU0VNSUJMT0NLX0xFTkdUSCwgaW5wdXQsIGluX2xlbik7CisgICAgICAgIG1lbXNldChvdXRwdXQgKyBLV19TRU1JQkxPQ0tfTEVOR1RIICsgaW5fbGVuLCAwLCBwYWRsZW4pOworICAgIH0KKyAgICBzZW1pYmxvY2tzID0gKChpbl9sZW4gKyBwYWRsZW4pIC8gS1dfU0VNSUJMT0NLX0xFTkdUSCkgKyAxOworCisgICAgcyA9IDYgKiAoc2VtaWJsb2NrcyAtIDEpOworCisgICAgaWYgKG1vZGUgPT0gTUJFRFRMU19LV19NT0RFX0tXUAorICAgICAgICAmJiBpbl9sZW4gPD0gS1dfU0VNSUJMT0NLX0xFTkdUSCkgeworICAgICAgICBtZW1jcHkoaW5idWZmLCBvdXRwdXQsIDE2KTsKKyAgICAgICAgcmV0ID0gbWJlZHRsc19jaXBoZXJfdXBkYXRlKCZjdHgtPmNpcGhlcl9jdHgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbmJ1ZmYsIDE2LCBvdXRwdXQsICZvbGVuKTsKKyAgICAgICAgaWYgKHJldCAhPSAwKSB7CisgICAgICAgICAgICBnb3RvIGNsZWFudXA7CisgICAgICAgIH0KKyAgICB9IGVsc2UgeworICAgICAgICB1bnNpZ25lZCBjaGFyICpSMiA9IG91dHB1dCArIEtXX1NFTUlCTE9DS19MRU5HVEg7CisgICAgICAgIHVuc2lnbmVkIGNoYXIgKkEgPSBvdXRwdXQ7CisKKyAgICAgICAgLyoKKyAgICAgICAgICogRG8gdGhlIHdyYXBwaW5nIGZ1bmN0aW9uIFcsIGFzIGRlZmluZWQgaW4gUkZDIDMzOTQgc2VjdGlvbiAyLjIuMQorICAgICAgICAgKi8KKyAgICAgICAgaWYgKHNlbWlibG9ja3MgPCBNSU5fU0VNSUJMT0NLU19DT1VOVCkgeworICAgICAgICAgICAgcmV0ID0gTUJFRFRMU19FUlJfQ0lQSEVSX0JBRF9JTlBVVF9EQVRBOworICAgICAgICAgICAgZ290byBjbGVhbnVwOworICAgICAgICB9CisKKyAgICAgICAgLyogQ2FsY3VsYXRlIGludGVybWVkaWF0ZSB2YWx1ZXMgKi8KKyAgICAgICAgZm9yICh0ID0gMTsgdCA8PSBzOyB0KyspIHsKKyAgICAgICAgICAgIG1lbWNweShpbmJ1ZmYsIEEsIEtXX1NFTUlCTE9DS19MRU5HVEgpOworICAgICAgICAgICAgbWVtY3B5KGluYnVmZiArIEtXX1NFTUlCTE9DS19MRU5HVEgsIFIyLCBLV19TRU1JQkxPQ0tfTEVOR1RIKTsKKworICAgICAgICAgICAgcmV0ID0gbWJlZHRsc19jaXBoZXJfdXBkYXRlKCZjdHgtPmNpcGhlcl9jdHgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5idWZmLCAxNiwgb3V0YnVmZiwgJm9sZW4pOworICAgICAgICAgICAgaWYgKHJldCAhPSAwKSB7CisgICAgICAgICAgICAgICAgZ290byBjbGVhbnVwOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBtZW1jcHkoQSwgb3V0YnVmZiwgS1dfU0VNSUJMT0NLX0xFTkdUSCk7CisgICAgICAgICAgICBjYWxjX2FfeG9yX3QoQSwgdCk7CisKKyAgICAgICAgICAgIG1lbWNweShSMiwgb3V0YnVmZiArIEtXX1NFTUlCTE9DS19MRU5HVEgsIEtXX1NFTUlCTE9DS19MRU5HVEgpOworICAgICAgICAgICAgUjIgKz0gS1dfU0VNSUJMT0NLX0xFTkdUSDsKKyAgICAgICAgICAgIGlmIChSMiA+PSBvdXRwdXQgKyAoc2VtaWJsb2NrcyAqIEtXX1NFTUlCTE9DS19MRU5HVEgpKSB7CisgICAgICAgICAgICAgICAgUjIgPSBvdXRwdXQgKyBLV19TRU1JQkxPQ0tfTEVOR1RIOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgKm91dF9sZW4gPSBzZW1pYmxvY2tzICogS1dfU0VNSUJMT0NLX0xFTkdUSDsKKworY2xlYW51cDoKKworICAgIGlmIChyZXQgIT0gMCkgeworICAgICAgICBtZW1zZXQob3V0cHV0LCAwLCBzZW1pYmxvY2tzICogS1dfU0VNSUJMT0NLX0xFTkdUSCk7CisgICAgfQorICAgIG1iZWR0bHNfcGxhdGZvcm1femVyb2l6ZShpbmJ1ZmYsIEtXX1NFTUlCTE9DS19MRU5HVEggKiAyKTsKKyAgICBtYmVkdGxzX3BsYXRmb3JtX3plcm9pemUob3V0YnVmZiwgS1dfU0VNSUJMT0NLX0xFTkdUSCAqIDIpOworCisgICAgcmV0dXJuIHJldDsKK30KKworLyoKKyAqIFctMSBmdW5jdGlvbiBhcyBkZWZpbmVkIGluIFJGQyAzMzk0IHNlY3Rpb24gMi4yLjIKKyAqIFRoaXMgZnVuY3Rpb24gYXNzdW1lcyB0aGUgZm9sbG93aW5nOgorICogMS4gT3V0cHV0IGJ1ZmZlciBpcyBhdCBsZWFzdCBvZiBzaXplICggc2VtaWJsb2NrcyAtIDEgKSAqIEtXX1NFTUlCTE9DS19MRU5HVEguCisgKiAyLiBUaGUgaW5wdXQgYnVmZmVyIGlzIG9mIHNpemUgc2VtaWJsb2NrcyAqIEtXX1NFTUlCTE9DS19MRU5HVEguCisgKiAzLiBNaW5pbWFsIG51bWJlciBvZiBzZW1pYmxvY2tzIGlzIDMuCisgKiA0LiBBIGlzIGEgYnVmZmVyIHRvIGhvbGQgdGhlIGZpcnN0IHNlbWlibG9jayBvZiB0aGUgaW5wdXQgYnVmZmVyLgorICovCitzdGF0aWMgaW50IHVud3JhcChtYmVkdGxzX25pc3Rfa3dfY29udGV4dCAqY3R4LAorICAgICAgICAgICAgICAgICAgY29uc3QgdW5zaWduZWQgY2hhciAqaW5wdXQsIHNpemVfdCBzZW1pYmxvY2tzLAorICAgICAgICAgICAgICAgICAgdW5zaWduZWQgY2hhciBBW0tXX1NFTUlCTE9DS19MRU5HVEhdLAorICAgICAgICAgICAgICAgICAgdW5zaWduZWQgY2hhciAqb3V0cHV0LCBzaXplX3QgKm91dF9sZW4pCit7CisgICAgaW50IHJldCA9IDA7CisgICAgY29uc3Qgc2l6ZV90IHMgPSA2ICogKHNlbWlibG9ja3MgLSAxKTsKKyAgICBzaXplX3Qgb2xlbjsKKyAgICB1aW50NjRfdCB0ID0gMDsKKyAgICB1bnNpZ25lZCBjaGFyIG91dGJ1ZmZbS1dfU0VNSUJMT0NLX0xFTkdUSCAqIDJdOworICAgIHVuc2lnbmVkIGNoYXIgaW5idWZmW0tXX1NFTUlCTE9DS19MRU5HVEggKiAyXTsKKyAgICB1bnNpZ25lZCBjaGFyICpSID0gTlVMTDsKKyAgICAqb3V0X2xlbiA9IDA7CisKKyAgICBpZiAoc2VtaWJsb2NrcyA8IE1JTl9TRU1JQkxPQ0tTX0NPVU5UKSB7CisgICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9DSVBIRVJfQkFEX0lOUFVUX0RBVEE7CisgICAgfQorCisgICAgbWVtY3B5KEEsIGlucHV0LCBLV19TRU1JQkxPQ0tfTEVOR1RIKTsKKyAgICBtZW1tb3ZlKG91dHB1dCwgaW5wdXQgKyBLV19TRU1JQkxPQ0tfTEVOR1RILCAoc2VtaWJsb2NrcyAtIDEpICogS1dfU0VNSUJMT0NLX0xFTkdUSCk7CisgICAgUiA9IG91dHB1dCArIChzZW1pYmxvY2tzIC0gMikgKiBLV19TRU1JQkxPQ0tfTEVOR1RIOworCisgICAgLyogQ2FsY3VsYXRlIGludGVybWVkaWF0ZSB2YWx1ZXMgKi8KKyAgICBmb3IgKHQgPSBzOyB0ID49IDE7IHQtLSkgeworICAgICAgICBjYWxjX2FfeG9yX3QoQSwgdCk7CisKKyAgICAgICAgbWVtY3B5KGluYnVmZiwgQSwgS1dfU0VNSUJMT0NLX0xFTkdUSCk7CisgICAgICAgIG1lbWNweShpbmJ1ZmYgKyBLV19TRU1JQkxPQ0tfTEVOR1RILCBSLCBLV19TRU1JQkxPQ0tfTEVOR1RIKTsKKworICAgICAgICByZXQgPSBtYmVkdGxzX2NpcGhlcl91cGRhdGUoJmN0eC0+Y2lwaGVyX2N0eCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluYnVmZiwgMTYsIG91dGJ1ZmYsICZvbGVuKTsKKyAgICAgICAgaWYgKHJldCAhPSAwKSB7CisgICAgICAgICAgICBnb3RvIGNsZWFudXA7CisgICAgICAgIH0KKworICAgICAgICBtZW1jcHkoQSwgb3V0YnVmZiwgS1dfU0VNSUJMT0NLX0xFTkdUSCk7CisKKyAgICAgICAgLyogU2V0IFIgYXMgTFNCNjQgb2Ygb3V0YnVmZiAqLworICAgICAgICBtZW1jcHkoUiwgb3V0YnVmZiArIEtXX1NFTUlCTE9DS19MRU5HVEgsIEtXX1NFTUlCTE9DS19MRU5HVEgpOworCisgICAgICAgIGlmIChSID09IG91dHB1dCkgeworICAgICAgICAgICAgUiA9IG91dHB1dCArIChzZW1pYmxvY2tzIC0gMikgKiBLV19TRU1JQkxPQ0tfTEVOR1RIOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgUiAtPSBLV19TRU1JQkxPQ0tfTEVOR1RIOworICAgICAgICB9CisgICAgfQorCisgICAgKm91dF9sZW4gPSAoc2VtaWJsb2NrcyAtIDEpICogS1dfU0VNSUJMT0NLX0xFTkdUSDsKKworY2xlYW51cDoKKyAgICBpZiAocmV0ICE9IDApIHsKKyAgICAgICAgbWVtc2V0KG91dHB1dCwgMCwgKHNlbWlibG9ja3MgLSAxKSAqIEtXX1NFTUlCTE9DS19MRU5HVEgpOworICAgIH0KKyAgICBtYmVkdGxzX3BsYXRmb3JtX3plcm9pemUoaW5idWZmLCBzaXplb2YoaW5idWZmKSk7CisgICAgbWJlZHRsc19wbGF0Zm9ybV96ZXJvaXplKG91dGJ1ZmYsIHNpemVvZihvdXRidWZmKSk7CisKKyAgICByZXR1cm4gcmV0OworfQorCisvKgorICogS1ctQUQgYXMgZGVmaW5lZCBpbiBTUCA4MDAtMzhGIHNlY3Rpb24gNi4yCisgKiBLV1AtQUQgYXMgZGVmaW5lZCBpbiBTUCA4MDAtMzhGIHNlY3Rpb24gNi4zCisgKi8KK2ludCBtYmVkdGxzX25pc3Rfa3dfdW53cmFwKG1iZWR0bHNfbmlzdF9rd19jb250ZXh0ICpjdHgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICBtYmVkdGxzX25pc3Rfa3dfbW9kZV90IG1vZGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1bnNpZ25lZCBjaGFyICppbnB1dCwgc2l6ZV90IGluX2xlbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGNoYXIgKm91dHB1dCwgc2l6ZV90ICpvdXRfbGVuLCBzaXplX3Qgb3V0X3NpemUpCit7CisgICAgaW50IHJldCA9IDA7CisgICAgc2l6ZV90IG9sZW47CisgICAgdW5zaWduZWQgY2hhciBBW0tXX1NFTUlCTE9DS19MRU5HVEhdOworICAgIGludCBkaWZmOworCisgICAgKm91dF9sZW4gPSAwOworICAgIGlmIChvdXRfc2l6ZSA8IGluX2xlbiAtIEtXX1NFTUlCTE9DS19MRU5HVEgpIHsKKyAgICAgICAgcmV0dXJuIE1CRURUTFNfRVJSX0NJUEhFUl9CQURfSU5QVVRfREFUQTsKKyAgICB9CisKKyAgICBpZiAobW9kZSA9PSBNQkVEVExTX0tXX01PREVfS1cpIHsKKyAgICAgICAgLyoKKyAgICAgICAgICogQWNjb3JkaW5nIHRvIFNQIDgwMC0zOEYgVGFibGUgMSwgdGhlIGNpcGhlcnRleHQgbGVuZ3RoIGZvciBLVworICAgICAgICAgKiBtdXN0IGJlIGJldHdlZW4gMyB0byAyXjU0IHNlbWlibG9ja3MgaW5jbHVzaXZlLgorICAgICAgICAgKi8KKyAgICAgICAgaWYgKGluX2xlbiA8IDI0IHx8CisjaWYgU0laRV9NQVggPiAweDIwMDAwMDAwMDAwMDAwMAorICAgICAgICAgICAgaW5fbGVuID4gMHgyMDAwMDAwMDAwMDAwMDAgfHwKKyNlbmRpZgorICAgICAgICAgICAgaW5fbGVuICUgS1dfU0VNSUJMT0NLX0xFTkdUSCAhPSAwKSB7CisgICAgICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfQ0lQSEVSX0JBRF9JTlBVVF9EQVRBOworICAgICAgICB9CisKKyAgICAgICAgcmV0ID0gdW53cmFwKGN0eCwgaW5wdXQsIGluX2xlbiAvIEtXX1NFTUlCTE9DS19MRU5HVEgsCisgICAgICAgICAgICAgICAgICAgICBBLCBvdXRwdXQsIG91dF9sZW4pOworICAgICAgICBpZiAocmV0ICE9IDApIHsKKyAgICAgICAgICAgIGdvdG8gY2xlYW51cDsKKyAgICAgICAgfQorCisgICAgICAgIC8qIENoZWNrIElDViBpbiAiY29uc3RhbnQtdGltZSIgKi8KKyAgICAgICAgZGlmZiA9IG1iZWR0bHNfY3RfbWVtY21wKE5JU1RfS1dfSUNWMSwgQSwgS1dfU0VNSUJMT0NLX0xFTkdUSCk7CisKKyAgICAgICAgaWYgKGRpZmYgIT0gMCkgeworICAgICAgICAgICAgcmV0ID0gTUJFRFRMU19FUlJfQ0lQSEVSX0FVVEhfRkFJTEVEOworICAgICAgICAgICAgZ290byBjbGVhbnVwOworICAgICAgICB9CisKKyAgICB9IGVsc2UgaWYgKG1vZGUgPT0gTUJFRFRMU19LV19NT0RFX0tXUCkgeworICAgICAgICBzaXplX3QgcGFkbGVuID0gMDsKKyAgICAgICAgdWludDMyX3QgUGxlbjsKKyAgICAgICAgLyoKKyAgICAgICAgICogQWNjb3JkaW5nIHRvIFNQIDgwMC0zOEYgVGFibGUgMSwgdGhlIGNpcGhlcnRleHQgbGVuZ3RoIGZvciBLV1AKKyAgICAgICAgICogbXVzdCBiZSBiZXR3ZWVuIDIgdG8gMl4yOSBzZW1pYmxvY2tzIGluY2x1c2l2ZS4KKyAgICAgICAgICovCisgICAgICAgIGlmIChpbl9sZW4gPCBLV19TRU1JQkxPQ0tfTEVOR1RIICogMiB8fAorI2lmIFNJWkVfTUFYID4gMHgxMDAwMDAwMDAKKyAgICAgICAgICAgIGluX2xlbiA+IDB4MTAwMDAwMDAwIHx8CisjZW5kaWYKKyAgICAgICAgICAgIGluX2xlbiAlIEtXX1NFTUlCTE9DS19MRU5HVEggIT0gMCkgeworICAgICAgICAgICAgcmV0dXJuIE1CRURUTFNfRVJSX0NJUEhFUl9CQURfSU5QVVRfREFUQTsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChpbl9sZW4gPT0gS1dfU0VNSUJMT0NLX0xFTkdUSCAqIDIpIHsKKyAgICAgICAgICAgIHVuc2lnbmVkIGNoYXIgb3V0YnVmZltLV19TRU1JQkxPQ0tfTEVOR1RIICogMl07CisgICAgICAgICAgICByZXQgPSBtYmVkdGxzX2NpcGhlcl91cGRhdGUoJmN0eC0+Y2lwaGVyX2N0eCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnB1dCwgMTYsIG91dGJ1ZmYsICZvbGVuKTsKKyAgICAgICAgICAgIGlmIChyZXQgIT0gMCkgeworICAgICAgICAgICAgICAgIGdvdG8gY2xlYW51cDsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgbWVtY3B5KEEsIG91dGJ1ZmYsIEtXX1NFTUlCTE9DS19MRU5HVEgpOworICAgICAgICAgICAgbWVtY3B5KG91dHB1dCwgb3V0YnVmZiArIEtXX1NFTUlCTE9DS19MRU5HVEgsIEtXX1NFTUlCTE9DS19MRU5HVEgpOworICAgICAgICAgICAgbWJlZHRsc19wbGF0Zm9ybV96ZXJvaXplKG91dGJ1ZmYsIHNpemVvZihvdXRidWZmKSk7CisgICAgICAgICAgICAqb3V0X2xlbiA9IEtXX1NFTUlCTE9DS19MRU5HVEg7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAvKiBpbl9sZW4gPj0gIEtXX1NFTUlCTE9DS19MRU5HVEggKiAzICovCisgICAgICAgICAgICByZXQgPSB1bndyYXAoY3R4LCBpbnB1dCwgaW5fbGVuIC8gS1dfU0VNSUJMT0NLX0xFTkdUSCwKKyAgICAgICAgICAgICAgICAgICAgICAgICBBLCBvdXRwdXQsIG91dF9sZW4pOworICAgICAgICAgICAgaWYgKHJldCAhPSAwKSB7CisgICAgICAgICAgICAgICAgZ290byBjbGVhbnVwOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgLyogQ2hlY2sgSUNWIGluICJjb25zdGFudC10aW1lIiAqLworICAgICAgICBkaWZmID0gbWJlZHRsc19jdF9tZW1jbXAoTklTVF9LV19JQ1YyLCBBLCBLV19TRU1JQkxPQ0tfTEVOR1RIIC8gMik7CisKKyAgICAgICAgaWYgKGRpZmYgIT0gMCkgeworICAgICAgICAgICAgcmV0ID0gTUJFRFRMU19FUlJfQ0lQSEVSX0FVVEhfRkFJTEVEOworICAgICAgICB9CisKKyAgICAgICAgUGxlbiA9IE1CRURUTFNfR0VUX1VJTlQzMl9CRShBLCBLV19TRU1JQkxPQ0tfTEVOR1RIIC8gMik7CisKKyAgICAgICAgLyoKKyAgICAgICAgICogUGxlbiBpcyB0aGUgbGVuZ3RoIG9mIHRoZSBwbGFpbnRleHQsIHdoZW4gdGhlIGlucHV0IGlzIHZhbGlkLgorICAgICAgICAgKiBJZiBQbGVuIGlzIGxhcmdlciB0aGFuIHRoZSBwbGFpbnRleHQgYW5kIHBhZGRpbmcsIHBhZGxlbiB3aWxsIGJlCisgICAgICAgICAqIGxhcmdlciB0aGFuIDgsIGJlY2F1c2Ugb2YgdGhlIHR5cGUgd3JhcCBhcm91bmQuCisgICAgICAgICAqLworICAgICAgICBwYWRsZW4gPSBpbl9sZW4gLSBLV19TRU1JQkxPQ0tfTEVOR1RIIC0gUGxlbjsKKyAgICAgICAgcmV0ID0gbWJlZHRsc19jdF9lcnJvcl9pZihtYmVkdGxzX2N0X3VpbnRfZ3QocGFkbGVuLCA3KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNQkVEVExTX0VSUl9DSVBIRVJfQVVUSF9GQUlMRUQsIHJldCk7CisgICAgICAgIHBhZGxlbiAmPSA3OworCisgICAgICAgIC8qIENoZWNrIHBhZGRpbmcgaW4gImNvbnN0YW50LXRpbWUiICovCisgICAgICAgIGNvbnN0IHVpbnQ4X3QgemVyb1tLV19TRU1JQkxPQ0tfTEVOR1RIXSA9IHsgMCB9OworICAgICAgICBkaWZmID0gbWJlZHRsc19jdF9tZW1jbXBfcGFydGlhbCgKKyAgICAgICAgICAgICZvdXRwdXRbKm91dF9sZW4gLSBLV19TRU1JQkxPQ0tfTEVOR1RIXSwgemVybywKKyAgICAgICAgICAgIEtXX1NFTUlCTE9DS19MRU5HVEgsIEtXX1NFTUlCTE9DS19MRU5HVEggLSBwYWRsZW4sIDApOworCisgICAgICAgIGlmIChkaWZmICE9IDApIHsKKyAgICAgICAgICAgIHJldCA9IE1CRURUTFNfRVJSX0NJUEhFUl9BVVRIX0ZBSUxFRDsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChyZXQgIT0gMCkgeworICAgICAgICAgICAgZ290byBjbGVhbnVwOworICAgICAgICB9CisgICAgICAgIG1lbXNldChvdXRwdXQgKyBQbGVuLCAwLCBwYWRsZW4pOworICAgICAgICAqb3V0X2xlbiA9IFBsZW47CisgICAgfSBlbHNlIHsKKyAgICAgICAgcmV0ID0gTUJFRFRMU19FUlJfQ0lQSEVSX0ZFQVRVUkVfVU5BVkFJTEFCTEU7CisgICAgICAgIGdvdG8gY2xlYW51cDsKKyAgICB9CisKK2NsZWFudXA6CisgICAgaWYgKHJldCAhPSAwKSB7CisgICAgICAgIG1lbXNldChvdXRwdXQsIDAsICpvdXRfbGVuKTsKKyAgICAgICAgKm91dF9sZW4gPSAwOworICAgIH0KKworICAgIG1iZWR0bHNfcGxhdGZvcm1femVyb2l6ZSgmZGlmZiwgc2l6ZW9mKGRpZmYpKTsKKyAgICBtYmVkdGxzX3BsYXRmb3JtX3plcm9pemUoQSwgc2l6ZW9mKEEpKTsKKworICAgIHJldHVybiByZXQ7Cit9CisKKyNpZiBkZWZpbmVkKE1CRURUTFNfU0VMRl9URVNUKSAmJiBkZWZpbmVkKE1CRURUTFNfQUVTX0MpCisKKy8qCisgKiBUZXN0IHZlY3RvcnMgdGFrZW4gZnJvbSBOSVNUCisgKiBodHRwczovL2NzcmMubmlzdC5nb3YvUHJvamVjdHMvQ3J5cHRvZ3JhcGhpYy1BbGdvcml0aG0tVmFsaWRhdGlvbi1Qcm9ncmFtL0NBVlAtVEVTVElORy1CTE9DSy1DSVBIRVItTU9ERVMjS1cKKyAqLworc3RhdGljIGNvbnN0IHVuc2lnbmVkIGludCBrZXlfbGVuW10gPSB7CisgICAgMTYsCisjaWYgIWRlZmluZWQoTUJFRFRMU19BRVNfT05MWV8xMjhfQklUX0tFWV9MRU5HVEgpCisgICAgMjQsCisgICAgMzIKKyNlbmRpZgorfTsKKworc3RhdGljIGNvbnN0IHVuc2lnbmVkIGNoYXIga3dfa2V5W11bMzJdID0geworICAgIHsgMHg3NSwgMHg3NSwgMHhkYSwgMHgzYSwgMHg5MywgMHg2MCwgMHg3YywgMHhjMiwKKyAgICAgIDB4YmYsIDB4ZDgsIDB4Y2UsIDB4YzcsIDB4YWEsIDB4ZGYsIDB4ZDksIDB4YTYgfSwKKyNpZiAhZGVmaW5lZChNQkVEVExTX0FFU19PTkxZXzEyOF9CSVRfS0VZX0xFTkdUSCkKKyAgICB7IDB4MmQsIDB4ODUsIDB4MjYsIDB4MDgsIDB4MWQsIDB4MDIsIDB4ZmIsIDB4NWIsCisgICAgICAweDg1LCAweGY2LCAweDlhLCAweGMyLCAweDg2LCAweGVjLCAweGQ1LCAweDdkLAorICAgICAgMHg0MCwgMHhkZiwgMHg1ZCwgMHhmMywgMHg0OSwgMHg0NywgMHg0NCwgMHhkMyB9LAorICAgIHsgMHgxMSwgMHgyYSwgMHhkNCwgMHgxYiwgMHg0OCwgMHg1NiwgMHhjNywgMHgyNSwKKyAgICAgIDB4NGEsIDB4OTgsIDB4NDgsIDB4ZDMsIDB4MGYsIDB4ZGQsIDB4NzgsIDB4MzMsCisgICAgICAweDViLCAweDAzLCAweDlhLCAweDQ4LCAweGE4LCAweDk2LCAweDJjLCAweDRkLAorICAgICAgMHgxYywgMHhiNywgMHg4ZSwgMHhhYiwgMHhkNSwgMHhkYSwgMHhkNywgMHg4OCB9CisjZW5kaWYKK307CisKK3N0YXRpYyBjb25zdCB1bnNpZ25lZCBjaGFyIGt3X21zZ1tdWzQwXSA9IHsKKyAgICB7IDB4NDIsIDB4MTMsIDB4NmQsIDB4M2MsIDB4MzgsIDB4NGEsIDB4M2UsIDB4ZWEsCisgICAgICAweGM5LCAweDVhLCAweDA2LCAweDZmLCAweGQyLCAweDhmLCAweGVkLCAweDNmIH0sCisjaWYgIWRlZmluZWQoTUJFRFRMU19BRVNfT05MWV8xMjhfQklUX0tFWV9MRU5HVEgpCisgICAgeyAweDk1LCAweGMxLCAweDFiLCAweGY1LCAweDM1LCAweDNhLCAweGZlLCAweGRiLAorICAgICAgMHg5OCwgMHhmZCwgMHhkNiwgMHhjOCwgMHhjYSwgMHg2ZiwgMHhkYiwgMHg2ZCwKKyAgICAgIDB4YTUsIDB4NGIsIDB4NzQsIDB4YjQsIDB4OTksIDB4MGYsIDB4ZGMsIDB4NDUsCisgICAgICAweGMwLCAweDlkLCAweDE1LCAweDhmLCAweDUxLCAweGNlLCAweDYyLCAweDlkLAorICAgICAgMHhlMiwgMHhhZiwgMHgyNiwgMHhlMywgMHgyNSwgMHgwZSwgMHg2YiwgMHg0YyB9LAorICAgIHsgMHgxYiwgMHgyMCwgMHhiZiwgMHgxOSwgMHg5MCwgMHhiMCwgMHg2NSwgMHhkNywKKyAgICAgIDB4OTgsIDB4ZTEsIDB4YjMsIDB4MjIsIDB4NjQsIDB4YWQsIDB4NTAsIDB4YTgsCisgICAgICAweDc0LCAweDc0LCAweDkyLCAweGJhLCAweDA5LCAweGEwLCAweDRkLCAweGQxIH0KKyNlbmRpZgorfTsKKworc3RhdGljIGNvbnN0IHNpemVfdCBrd19tc2dfbGVuW10gPSB7CisgICAgMTYsCisjaWYgIWRlZmluZWQoTUJFRFRMU19BRVNfT05MWV8xMjhfQklUX0tFWV9MRU5HVEgpCisgICAgNDAsCisgICAgMjQKKyNlbmRpZgorfTsKK3N0YXRpYyBjb25zdCBzaXplX3Qga3dfb3V0X2xlbltdID0geworICAgIDI0LAorI2lmICFkZWZpbmVkKE1CRURUTFNfQUVTX09OTFlfMTI4X0JJVF9LRVlfTEVOR1RIKQorICAgIDQ4LAorICAgIDMyCisjZW5kaWYKK307CitzdGF0aWMgY29uc3QgdW5zaWduZWQgY2hhciBrd19yZXNbXVs0OF0gPSB7CisgICAgeyAweDAzLCAweDFmLCAweDZiLCAweGQ3LCAweGU2LCAweDFlLCAweDY0LCAweDNkLAorICAgICAgMHhmNiwgMHg4NSwgMHg5NCwgMHg4MSwgMHg2ZiwgMHg2NCwgMHhjYSwgMHhhMywKKyAgICAgIDB4ZjUsIDB4NmYsIDB4YWIsIDB4ZWEsIDB4MjUsIDB4NDgsIDB4ZjUsIDB4ZmIgfSwKKyNpZiAhZGVmaW5lZChNQkVEVExTX0FFU19PTkxZXzEyOF9CSVRfS0VZX0xFTkdUSCkKKyAgICB7IDB4NDQsIDB4M2MsIDB4NmYsIDB4MTUsIDB4MDksIDB4ODMsIDB4NzEsIDB4OTEsCisgICAgICAweDNlLCAweDVjLCAweDgxLCAweDRjLCAweGExLCAweGEwLCAweDQyLCAweGVjLAorICAgICAgMHg2OCwgMHgyZiwgMHg3YiwgMHgxMywgMHg2ZCwgMHgyNCwgMHgzYSwgMHg0ZCwKKyAgICAgIDB4NmMsIDB4NDIsIDB4NmYsIDB4YzYsIDB4OTcsIDB4MTUsIDB4NjMsIDB4ZTgsCisgICAgICAweGExLCAweDRhLCAweDU1LCAweDhlLCAweDA5LCAweDY0LCAweDE2LCAweDE5LAorICAgICAgMHhiZiwgMHgwMywgMHhmYywgMHhhZiwgMHg5MCwgMHhiMSwgMHhmYywgMHgyZCB9LAorICAgIHsgMHhiYSwgMHg4YSwgMHgyNSwgMHg5YSwgMHg0NywgMHgxYiwgMHg3OCwgMHg3ZCwKKyAgICAgIDB4ZDUsIDB4ZDUsIDB4NDAsIDB4ZWMsIDB4MjUsIDB4ZDQsIDB4M2QsIDB4ODcsCisgICAgICAweDIwLCAweDBmLCAweGRhLCAweGRjLCAweDZkLCAweDFmLCAweDA1LCAweGQ5LAorICAgICAgMHgxNiwgMHg1OCwgMHg0ZiwgMHhhOSwgMHhmNiwgMHhjYiwgMHhmNSwgMHgxMiB9CisjZW5kaWYKK307CisKK3N0YXRpYyBjb25zdCB1bnNpZ25lZCBjaGFyIGt3cF9rZXlbXVszMl0gPSB7CisgICAgeyAweDc4LCAweDY1LCAweGUyLCAweDBmLCAweDNjLCAweDIxLCAweDY1LCAweDlhLAorICAgICAgMHhiNCwgMHg2OSwgMHgwYiwgMHg2MiwgMHg5YywgMHhkZiwgMHgzYywgMHhjNCB9LAorI2lmICFkZWZpbmVkKE1CRURUTFNfQUVTX09OTFlfMTI4X0JJVF9LRVlfTEVOR1RIKQorICAgIHsgMHhmNSwgMHhmOCwgMHg5NiwgMHhhMywgMHhiZCwgMHgyZiwgMHg0YSwgMHg5OCwKKyAgICAgIDB4MjMsIDB4ZWYsIDB4MTYsIDB4MmIsIDB4MDAsIDB4YjgsIDB4MDUsIDB4ZDcsCisgICAgICAweGRlLCAweDFlLCAweGE0LCAweDY2LCAweDI2LCAweDk2LCAweGEyLCAweDU4IH0sCisgICAgeyAweDk1LCAweGRhLCAweDI3LCAweDAwLCAweGNhLCAweDZmLCAweGQ5LCAweGE1LAorICAgICAgMHgyNSwgMHg1NCwgMHhlZSwgMHgyYSwgMHg4ZCwgMHhmMSwgMHgzOCwgMHg2ZiwKKyAgICAgIDB4NWIsIDB4OTQsIDB4YTEsIDB4YTYsIDB4MGUsIDB4ZDgsIDB4YTQsIDB4YWUsCisgICAgICAweGY2LCAweDBhLCAweDhkLCAweDYxLCAweGFiLCAweDVmLCAweDIyLCAweDVhIH0KKyNlbmRpZgorfTsKKworc3RhdGljIGNvbnN0IHVuc2lnbmVkIGNoYXIga3dwX21zZ1tdWzMxXSA9IHsKKyAgICB7IDB4YmQsIDB4NjgsIDB4NDMsIDB4ZDQsIDB4MjAsIDB4MzcsIDB4OGQsIDB4YzgsCisgICAgICAweDk2IH0sCisjaWYgIWRlZmluZWQoTUJFRFRMU19BRVNfT05MWV8xMjhfQklUX0tFWV9MRU5HVEgpCisgICAgeyAweDZjLCAweGNkLCAweGQ1LCAweDg1LCAweDE4LCAweDQwLCAweDk3LCAweGViLAorICAgICAgMHhkNSwgMHhjMywgMHhhZiwgMHgzZSwgMHg0NywgMHhkMCwgMHgyYywgMHgxOSwKKyAgICAgIDB4MTQsIDB4N2IsIDB4NGQsIDB4OTksIDB4NWYsIDB4OTYsIDB4NDMsIDB4NjYsCisgICAgICAweDkxLCAweDU2LCAweDc1LCAweDhjLCAweDEzLCAweDE2LCAweDhmIH0sCisgICAgeyAweGQxIH0KKyNlbmRpZgorfTsKK3N0YXRpYyBjb25zdCBzaXplX3Qga3dwX21zZ19sZW5bXSA9IHsKKyAgICA5LAorI2lmICFkZWZpbmVkKE1CRURUTFNfQUVTX09OTFlfMTI4X0JJVF9LRVlfTEVOR1RIKQorICAgIDMxLAorICAgIDEKKyNlbmRpZgorfTsKKworc3RhdGljIGNvbnN0IHVuc2lnbmVkIGNoYXIga3dwX3Jlc1tdWzQ4XSA9IHsKKyAgICB7IDB4NDEsIDB4ZWMsIDB4YTksIDB4NTYsIDB4ZDQsIDB4YWEsIDB4MDQsIDB4N2UsCisgICAgICAweGI1LCAweGNmLCAweDRlLCAweGZlLCAweDY1LCAweDk2LCAweDYxLCAweGU3LAorICAgICAgMHg0ZCwgMHhiNiwgMHhmOCwgMHhjNSwgMHg2NCwgMHhlMiwgMHgzNSwgMHgwMCB9LAorI2lmICFkZWZpbmVkKE1CRURUTFNfQUVTX09OTFlfMTI4X0JJVF9LRVlfTEVOR1RIKQorICAgIHsgMHg0ZSwgMHg5YiwgMHhjMiwgMHhiYywgMHhiYywgMHg2YywgMHgxZSwgMHgxMywKKyAgICAgIDB4ZDMsIDB4MzUsIDB4YmMsIDB4YzAsIDB4ZjcsIDB4NzMsIDB4NmEsIDB4ODgsCisgICAgICAweGZhLCAweDg3LCAweDUzLCAweDY2LCAweDE1LCAweGJiLCAweDhlLCAweDYzLAorICAgICAgMHg4YiwgMHhjYywgMHg4MSwgMHg2NiwgMHg4NCwgMHg2OCwgMHgxNywgMHg5MCwKKyAgICAgIDB4NjcsIDB4Y2YsIDB4YTksIDB4OGEsIDB4OWQsIDB4MGUsIDB4MzMsIDB4MjYgfSwKKyAgICB7IDB4MDYsIDB4YmEsIDB4N2EsIDB4ZTYsIDB4ZjMsIDB4MjQsIDB4OGMsIDB4ZmQsCisgICAgICAweGNmLCAweDI2LCAweDc1LCAweDA3LCAweGZhLCAweDAwLCAweDFiLCAweGM0ICB9CisjZW5kaWYKK307CitzdGF0aWMgY29uc3Qgc2l6ZV90IGt3cF9vdXRfbGVuW10gPSB7CisgICAgMjQsCisjaWYgIWRlZmluZWQoTUJFRFRMU19BRVNfT05MWV8xMjhfQklUX0tFWV9MRU5HVEgpCisgICAgNDAsCisgICAgMTYKKyNlbmRpZgorfTsKKworaW50IG1iZWR0bHNfbmlzdF9rd19zZWxmX3Rlc3QoaW50IHZlcmJvc2UpCit7CisgICAgbWJlZHRsc19uaXN0X2t3X2NvbnRleHQgY3R4OworICAgIHVuc2lnbmVkIGNoYXIgb3V0WzQ4XTsKKyAgICBzaXplX3Qgb2xlbjsKKyAgICBpbnQgaTsKKyAgICBpbnQgcmV0ID0gMDsKKyAgICBtYmVkdGxzX25pc3Rfa3dfaW5pdCgmY3R4KTsKKworICAgIC8qCisgICAgICogS1cgbW9kZQorICAgICAqLworICAgIHsKKyAgICAgICAgc3RhdGljIGNvbnN0IGludCBudW1fdGVzdHMgPSBzaXplb2Yoa3dfa2V5KSAvIHNpemVvZigqa3dfa2V5KTsKKworICAgICAgICBmb3IgKGkgPSAwOyBpIDwgbnVtX3Rlc3RzOyBpKyspIHsKKyAgICAgICAgICAgIGlmICh2ZXJib3NlICE9IDApIHsKKyAgICAgICAgICAgICAgICBtYmVkdGxzX3ByaW50ZigiICBLVy1BRVMtJXUgIiwgKHVuc2lnbmVkIGludCkga2V5X2xlbltpXSAqIDgpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICByZXQgPSBtYmVkdGxzX25pc3Rfa3dfc2V0a2V5KCZjdHgsIE1CRURUTFNfQ0lQSEVSX0lEX0FFUywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga3dfa2V5W2ldLCBrZXlfbGVuW2ldICogOCwgMSk7CisgICAgICAgICAgICBpZiAocmV0ICE9IDApIHsKKyAgICAgICAgICAgICAgICBpZiAodmVyYm9zZSAhPSAwKSB7CisgICAgICAgICAgICAgICAgICAgIG1iZWR0bHNfcHJpbnRmKCIgIEtXOiBzZXR1cCBmYWlsZWQgIik7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgZ290byBlbmQ7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHJldCA9IG1iZWR0bHNfbmlzdF9rd193cmFwKCZjdHgsIE1CRURUTFNfS1dfTU9ERV9LVywga3dfbXNnW2ldLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga3dfbXNnX2xlbltpXSwgb3V0LCAmb2xlbiwgc2l6ZW9mKG91dCkpOworICAgICAgICAgICAgaWYgKHJldCAhPSAwIHx8IGt3X291dF9sZW5baV0gIT0gb2xlbiB8fAorICAgICAgICAgICAgICAgIG1lbWNtcChvdXQsIGt3X3Jlc1tpXSwga3dfb3V0X2xlbltpXSkgIT0gMCkgeworICAgICAgICAgICAgICAgIGlmICh2ZXJib3NlICE9IDApIHsKKyAgICAgICAgICAgICAgICAgICAgbWJlZHRsc19wcmludGYoImZhaWxlZC4gIik7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgcmV0ID0gMTsKKyAgICAgICAgICAgICAgICBnb3RvIGVuZDsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaWYgKChyZXQgPSBtYmVkdGxzX25pc3Rfa3dfc2V0a2V5KCZjdHgsIE1CRURUTFNfQ0lQSEVSX0lEX0FFUywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrd19rZXlbaV0sIGtleV9sZW5baV0gKiA4LCAwKSkKKyAgICAgICAgICAgICAgICAhPSAwKSB7CisgICAgICAgICAgICAgICAgaWYgKHZlcmJvc2UgIT0gMCkgeworICAgICAgICAgICAgICAgICAgICBtYmVkdGxzX3ByaW50ZigiICBLVzogc2V0dXAgZmFpbGVkICIpOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIGdvdG8gZW5kOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICByZXQgPSBtYmVkdGxzX25pc3Rfa3dfdW53cmFwKCZjdHgsIE1CRURUTFNfS1dfTU9ERV9LVywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3V0LCBvbGVuLCBvdXQsICZvbGVuLCBzaXplb2Yob3V0KSk7CisKKyAgICAgICAgICAgIGlmIChyZXQgIT0gMCB8fCBvbGVuICE9IGt3X21zZ19sZW5baV0gfHwKKyAgICAgICAgICAgICAgICBtZW1jbXAob3V0LCBrd19tc2dbaV0sIGt3X21zZ19sZW5baV0pICE9IDApIHsKKyAgICAgICAgICAgICAgICBpZiAodmVyYm9zZSAhPSAwKSB7CisgICAgICAgICAgICAgICAgICAgIG1iZWR0bHNfcHJpbnRmKCJmYWlsZWRcbiIpOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIHJldCA9IDE7CisgICAgICAgICAgICAgICAgZ290byBlbmQ7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGlmICh2ZXJib3NlICE9IDApIHsKKyAgICAgICAgICAgICAgICBtYmVkdGxzX3ByaW50ZigiIHBhc3NlZFxuIik7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKgorICAgICAqIEtXUCBtb2RlCisgICAgICovCisgICAgeworICAgICAgICBzdGF0aWMgY29uc3QgaW50IG51bV90ZXN0cyA9IHNpemVvZihrd3Bfa2V5KSAvIHNpemVvZigqa3dwX2tleSk7CisKKyAgICAgICAgZm9yIChpID0gMDsgaSA8IG51bV90ZXN0czsgaSsrKSB7CisgICAgICAgICAgICBvbGVuID0gc2l6ZW9mKG91dCk7CisgICAgICAgICAgICBpZiAodmVyYm9zZSAhPSAwKSB7CisgICAgICAgICAgICAgICAgbWJlZHRsc19wcmludGYoIiAgS1dQLUFFUy0ldSAiLCAodW5zaWduZWQgaW50KSBrZXlfbGVuW2ldICogOCk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHJldCA9IG1iZWR0bHNfbmlzdF9rd19zZXRrZXkoJmN0eCwgTUJFRFRMU19DSVBIRVJfSURfQUVTLCBrd3Bfa2V5W2ldLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXlfbGVuW2ldICogOCwgMSk7CisgICAgICAgICAgICBpZiAocmV0ICAhPSAwKSB7CisgICAgICAgICAgICAgICAgaWYgKHZlcmJvc2UgIT0gMCkgeworICAgICAgICAgICAgICAgICAgICBtYmVkdGxzX3ByaW50ZigiICBLV1A6IHNldHVwIGZhaWxlZCAiKTsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICBnb3RvIGVuZDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldCA9IG1iZWR0bHNfbmlzdF9rd193cmFwKCZjdHgsIE1CRURUTFNfS1dfTU9ERV9LV1AsIGt3cF9tc2dbaV0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrd3BfbXNnX2xlbltpXSwgb3V0LCAmb2xlbiwgc2l6ZW9mKG91dCkpOworCisgICAgICAgICAgICBpZiAocmV0ICE9IDAgfHwga3dwX291dF9sZW5baV0gIT0gb2xlbiB8fAorICAgICAgICAgICAgICAgIG1lbWNtcChvdXQsIGt3cF9yZXNbaV0sIGt3cF9vdXRfbGVuW2ldKSAhPSAwKSB7CisgICAgICAgICAgICAgICAgaWYgKHZlcmJvc2UgIT0gMCkgeworICAgICAgICAgICAgICAgICAgICBtYmVkdGxzX3ByaW50ZigiZmFpbGVkLiAiKTsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICByZXQgPSAxOworICAgICAgICAgICAgICAgIGdvdG8gZW5kOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpZiAoKHJldCA9IG1iZWR0bHNfbmlzdF9rd19zZXRrZXkoJmN0eCwgTUJFRFRMU19DSVBIRVJfSURfQUVTLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGt3cF9rZXlbaV0sIGtleV9sZW5baV0gKiA4LCAwKSkKKyAgICAgICAgICAgICAgICAhPSAwKSB7CisgICAgICAgICAgICAgICAgaWYgKHZlcmJvc2UgIT0gMCkgeworICAgICAgICAgICAgICAgICAgICBtYmVkdGxzX3ByaW50ZigiICBLV1A6IHNldHVwIGZhaWxlZCAiKTsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICBnb3RvIGVuZDsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgcmV0ID0gbWJlZHRsc19uaXN0X2t3X3Vud3JhcCgmY3R4LCBNQkVEVExTX0tXX01PREVfS1dQLCBvdXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9sZW4sIG91dCwgJm9sZW4sIHNpemVvZihvdXQpKTsKKworICAgICAgICAgICAgaWYgKHJldCAhPSAwIHx8IG9sZW4gIT0ga3dwX21zZ19sZW5baV0gfHwKKyAgICAgICAgICAgICAgICBtZW1jbXAob3V0LCBrd3BfbXNnW2ldLCBrd3BfbXNnX2xlbltpXSkgIT0gMCkgeworICAgICAgICAgICAgICAgIGlmICh2ZXJib3NlICE9IDApIHsKKyAgICAgICAgICAgICAgICAgICAgbWJlZHRsc19wcmludGYoImZhaWxlZC4gIik7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgcmV0ID0gMTsKKyAgICAgICAgICAgICAgICBnb3RvIGVuZDsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaWYgKHZlcmJvc2UgIT0gMCkgeworICAgICAgICAgICAgICAgIG1iZWR0bHNfcHJpbnRmKCIgcGFzc2VkXG4iKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KK2VuZDoKKyAgICBtYmVkdGxzX25pc3Rfa3dfZnJlZSgmY3R4KTsKKworICAgIGlmICh2ZXJib3NlICE9IDApIHsKKyAgICAgICAgbWJlZHRsc19wcmludGYoIlxuIik7CisgICAgfQorCisgICAgcmV0dXJuIHJldDsKK30KKworI2VuZGlmIC8qIE1CRURUTFNfU0VMRl9URVNUICYmIE1CRURUTFNfQUVTX0MgKi8KKworI2VuZGlmIC8qIE1CRURUTFNfTklTVF9LV19DICovCmRpZmYgLS1naXQgYS90Zi1wc2EtY3J5cHRvL2RyaXZlcnMvYnVpbHRpbi9zcmMvb2lkLmMgYi90Zi1wc2EtY3J5cHRvL2RyaXZlcnMvYnVpbHRpbi9zcmMvb2lkLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMGNkNTRkZgotLS0gL2Rldi9udWxsCisrKyBiL3RmLXBzYS1jcnlwdG8vZHJpdmVycy9idWlsdGluL3NyYy9vaWQuYwpAQCAtMCwwICsxLDExNjYgQEAKKy8qKgorICogXGZpbGUgb2lkLmMKKyAqCisgKiBcYnJpZWYgT2JqZWN0IElkZW50aWZpZXIgKE9JRCkgZGF0YWJhc2UKKyAqCisgKiAgQ29weXJpZ2h0IFRoZSBNYmVkIFRMUyBDb250cmlidXRvcnMKKyAqICBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMCBPUiBHUEwtMi4wLW9yLWxhdGVyCisgKi8KKworI2luY2x1ZGUgImNvbW1vbi5oIgorCisjaWYgZGVmaW5lZChNQkVEVExTX09JRF9DKQorCisjaW5jbHVkZSAibWJlZHRscy9vaWQuaCIKKyNpbmNsdWRlICJtYmVkdGxzL3JzYS5oIgorI2luY2x1ZGUgIm1iZWR0bHMvZXJyb3IuaCIKKyNpbmNsdWRlICJtYmVkdGxzL3BrLmgiCisKKyNpbmNsdWRlIDxzdGRpby5oPgorI2luY2x1ZGUgPHN0cmluZy5oPgorCisjaW5jbHVkZSAibWJlZHRscy9wbGF0Zm9ybS5oIgorCisvKgorICogTWFjcm8gdG8gYXV0b21hdGljYWxseSBhZGQgdGhlIHNpemUgb2YgI2RlZmluZSdkIE9JRHMKKyAqLworI2RlZmluZSBBRERfTEVOKHMpICAgICAgcywgTUJFRFRMU19PSURfU0laRShzKQorCisvKgorICogTWFjcm8gdG8gZ2VuZXJhdGUgbWJlZHRsc19vaWRfZGVzY3JpcHRvcl90CisgKi8KKyNpZiAhZGVmaW5lZChNQkVEVExTX1g1MDlfUkVNT1ZFX0lORk8pCisjZGVmaW5lIE9JRF9ERVNDUklQVE9SKHMsIG5hbWUsIGRlc2NyaXB0aW9uKSAgeyBBRERfTEVOKHMpLCBuYW1lLCBkZXNjcmlwdGlvbiB9CisjZGVmaW5lIE5VTExfT0lEX0RFU0NSSVBUT1IgICAgICAgICAgICAgICAgICAgeyBOVUxMLCAwLCBOVUxMLCBOVUxMIH0KKyNlbHNlCisjZGVmaW5lIE9JRF9ERVNDUklQVE9SKHMsIG5hbWUsIGRlc2NyaXB0aW9uKSAgeyBBRERfTEVOKHMpIH0KKyNkZWZpbmUgTlVMTF9PSURfREVTQ1JJUFRPUiAgICAgICAgICAgICAgICAgICB7IE5VTEwsIDAgfQorI2VuZGlmCisKKy8qCisgKiBNYWNybyB0byBnZW5lcmF0ZSBhbiBpbnRlcm5hbCBmdW5jdGlvbiBmb3Igb2lkX1hYWF9mcm9tX2FzbjEoKSAodXNlZCBieQorICogdGhlIG90aGVyIGZ1bmN0aW9ucykKKyAqLworI2RlZmluZSBGTl9PSURfVFlQRURfRlJPTV9BU04xKFRZUEVfVCwgTkFNRSwgTElTVCkgICAgICAgICAgICAgICAgICAgIFwKKyAgICBzdGF0aWMgY29uc3QgVFlQRV9UICpvaWRfICMjIE5BTUUgIyMgX2Zyb21fYXNuMSggICAgICAgICAgICAgICAgICAgXAorICAgICAgICBjb25zdCBtYmVkdGxzX2FzbjFfYnVmICpvaWQpICAgICBcCisgICAgeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgIGNvbnN0IFRZUEVfVCAqcCA9IChMSVNUKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgIGNvbnN0IG1iZWR0bHNfb2lkX2Rlc2NyaXB0b3JfdCAqY3VyID0gICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgICAgICAoY29uc3QgbWJlZHRsc19vaWRfZGVzY3JpcHRvcl90ICopIHA7ICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgIGlmIChwID09IE5VTEwgfHwgb2lkID09IE5VTEwpIHJldHVybiBOVUxMOyAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgd2hpbGUgKGN1ci0+YXNuMSAhPSBOVUxMKSB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICAgICAgaWYgKGN1ci0+YXNuMV9sZW4gPT0gb2lkLT5sZW4gJiYgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICAgICAgICAgIG1lbWNtcChjdXItPmFzbjEsIG9pZC0+cCwgb2lkLT5sZW4pID09IDApIHsgICAgICAgICAgXAorICAgICAgICAgICAgICAgIHJldHVybiBwOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICAgICAgfSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICAgICAgcCsrOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICAgICAgY3VyID0gKGNvbnN0IG1iZWR0bHNfb2lkX2Rlc2NyaXB0b3JfdCAqKSBwOyAgICAgICAgICAgICAgICAgXAorICAgICAgICB9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICByZXR1cm4gTlVMTDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIH0KKworI2lmICFkZWZpbmVkKE1CRURUTFNfWDUwOV9SRU1PVkVfSU5GTykKKy8qCisgKiBNYWNybyB0byBnZW5lcmF0ZSBhIGZ1bmN0aW9uIGZvciByZXRyaWV2aW5nIGEgc2luZ2xlIGF0dHJpYnV0ZSBmcm9tIHRoZQorICogZGVzY3JpcHRvciBvZiBhbiBtYmVkdGxzX29pZF9kZXNjcmlwdG9yX3Qgd3JhcHBlci4KKyAqLworI2RlZmluZSBGTl9PSURfR0VUX0RFU0NSSVBUT1JfQVRUUjEoRk5fTkFNRSwgVFlQRV9ULCBUWVBFX05BTUUsIEFUVFIxX1RZUEUsIEFUVFIxKSBcCisgICAgaW50IEZOX05BTUUoY29uc3QgbWJlZHRsc19hc24xX2J1ZiAqb2lkLCBBVFRSMV9UWVBFICogQVRUUjEpICAgICAgICAgICAgICAgICAgXAorICAgIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgY29uc3QgVFlQRV9UICpkYXRhID0gb2lkXyAjIyBUWVBFX05BTUUgIyMgX2Zyb21fYXNuMShvaWQpOyAgICAgICAgXAorICAgICAgICBpZiAoZGF0YSA9PSBOVUxMKSByZXR1cm4gTUJFRFRMU19FUlJfT0lEX05PVF9GT1VORDsgICAgICAgICAgICBcCisgICAgICAgICpBVFRSMSA9IGRhdGEtPmRlc2NyaXB0b3IuQVRUUjE7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICByZXR1cm4gMDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICB9CisjZW5kaWYgLyogTUJFRFRMU19YNTA5X1JFTU9WRV9JTkZPICovCisKKy8qCisgKiBNYWNybyB0byBnZW5lcmF0ZSBhIGZ1bmN0aW9uIGZvciByZXRyaWV2aW5nIGEgc2luZ2xlIGF0dHJpYnV0ZSBmcm9tIGFuCisgKiBtYmVkdGxzX29pZF9kZXNjcmlwdG9yX3Qgd3JhcHBlci4KKyAqLworI2RlZmluZSBGTl9PSURfR0VUX0FUVFIxKEZOX05BTUUsIFRZUEVfVCwgVFlQRV9OQU1FLCBBVFRSMV9UWVBFLCBBVFRSMSkgXAorICAgIGludCBGTl9OQU1FKGNvbnN0IG1iZWR0bHNfYXNuMV9idWYgKm9pZCwgQVRUUjFfVFlQRSAqIEFUVFIxKSAgICAgICAgICAgICAgICAgIFwKKyAgICB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgIGNvbnN0IFRZUEVfVCAqZGF0YSA9IG9pZF8gIyMgVFlQRV9OQU1FICMjIF9mcm9tX2FzbjEob2lkKTsgICAgICAgIFwKKyAgICAgICAgaWYgKGRhdGEgPT0gTlVMTCkgcmV0dXJuIE1CRURUTFNfRVJSX09JRF9OT1RfRk9VTkQ7ICAgICAgICAgICAgXAorICAgICAgICAqQVRUUjEgPSBkYXRhLT5BVFRSMTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgcmV0dXJuIDA7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgfQorCisvKgorICogTWFjcm8gdG8gZ2VuZXJhdGUgYSBmdW5jdGlvbiBmb3IgcmV0cmlldmluZyB0d28gYXR0cmlidXRlcyBmcm9tIGFuCisgKiBtYmVkdGxzX29pZF9kZXNjcmlwdG9yX3Qgd3JhcHBlci4KKyAqLworI2RlZmluZSBGTl9PSURfR0VUX0FUVFIyKEZOX05BTUUsIFRZUEVfVCwgVFlQRV9OQU1FLCBBVFRSMV9UWVBFLCBBVFRSMSwgICAgIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICBBVFRSMl9UWVBFLCBBVFRSMikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgaW50IEZOX05BTUUoY29uc3QgbWJlZHRsc19hc24xX2J1ZiAqb2lkLCBBVFRSMV9UWVBFICogQVRUUjEsICAgICAgICAgICAgICAgXAorICAgICAgICAgICAgICAgIEFUVFIyX1RZUEUgKiBBVFRSMikgICAgICAgICAgICAgIFwKKyAgICB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICBjb25zdCBUWVBFX1QgKmRhdGEgPSBvaWRfICMjIFRZUEVfTkFNRSAjIyBfZnJvbV9hc24xKG9pZCk7ICAgICAgICAgICAgXAorICAgICAgICBpZiAoZGF0YSA9PSBOVUxMKSByZXR1cm4gTUJFRFRMU19FUlJfT0lEX05PVF9GT1VORDsgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgKihBVFRSMSkgPSBkYXRhLT5BVFRSMTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICAqKEFUVFIyKSA9IGRhdGEtPkFUVFIyOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgIHJldHVybiAwOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICB9CisKKy8qCisgKiBNYWNybyB0byBnZW5lcmF0ZSBhIGZ1bmN0aW9uIGZvciByZXRyaWV2aW5nIHRoZSBPSUQgYmFzZWQgb24gYSBzaW5nbGUKKyAqIGF0dHJpYnV0ZSBmcm9tIGEgbWJlZHRsc19vaWRfZGVzY3JpcHRvcl90IHdyYXBwZXIuCisgKi8KKyNkZWZpbmUgRk5fT0lEX0dFVF9PSURfQllfQVRUUjEoRk5fTkFNRSwgVFlQRV9ULCBMSVNULCBBVFRSMV9UWVBFLCBBVFRSMSkgICBcCisgICAgaW50IEZOX05BTUUoQVRUUjFfVFlQRSBBVFRSMSwgY29uc3QgY2hhciAqKm9pZCwgc2l6ZV90ICpvbGVuKSAgICAgICAgICAgICBcCisgICAgeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgY29uc3QgVFlQRV9UICpjdXIgPSAoTElTVCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICB3aGlsZSAoY3VyLT5kZXNjcmlwdG9yLmFzbjEgIT0gTlVMTCkgeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgICAgIGlmIChjdXItPkFUVFIxID09IChBVFRSMSkpIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgICAgICAgICAgKm9pZCA9IGN1ci0+ZGVzY3JpcHRvci5hc24xOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgICAgICAgICAqb2xlbiA9IGN1ci0+ZGVzY3JpcHRvci5hc24xX2xlbjsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICAgICAgICAgIHJldHVybiAwOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgICAgICB9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgICAgIGN1cisrOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICB9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9PSURfTk9UX0ZPVU5EOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICB9CisKKy8qCisgKiBNYWNybyB0byBnZW5lcmF0ZSBhIGZ1bmN0aW9uIGZvciByZXRyaWV2aW5nIHRoZSBPSUQgYmFzZWQgb24gdHdvCisgKiBhdHRyaWJ1dGVzIGZyb20gYSBtYmVkdGxzX29pZF9kZXNjcmlwdG9yX3Qgd3JhcHBlci4KKyAqLworI2RlZmluZSBGTl9PSURfR0VUX09JRF9CWV9BVFRSMihGTl9OQU1FLCBUWVBFX1QsIExJU1QsIEFUVFIxX1RZUEUsIEFUVFIxLCAgIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQVRUUjJfVFlQRSwgQVRUUjIpICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgaW50IEZOX05BTUUoQVRUUjFfVFlQRSBBVFRSMSwgQVRUUjJfVFlQRSBBVFRSMiwgY29uc3QgY2hhciAqKm9pZCwgICAgICAgICBcCisgICAgICAgICAgICAgICAgc2l6ZV90ICpvbGVuKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgY29uc3QgVFlQRV9UICpjdXIgPSAoTElTVCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICB3aGlsZSAoY3VyLT5kZXNjcmlwdG9yLmFzbjEgIT0gTlVMTCkgeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgICAgIGlmIChjdXItPkFUVFIxID09IChBVFRSMSkgJiYgY3VyLT5BVFRSMiA9PSAoQVRUUjIpKSB7ICAgICAgICAgICAgICBcCisgICAgICAgICAgICAgICAgKm9pZCA9IGN1ci0+ZGVzY3JpcHRvci5hc24xOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgICAgICAgICAqb2xlbiA9IGN1ci0+ZGVzY3JpcHRvci5hc24xX2xlbjsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICAgICAgICAgIHJldHVybiAwOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgICAgICB9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgICAgIGN1cisrOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICB9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9PSURfTk9UX0ZPVU5EOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIH0KKworLyoKKyAqIEZvciBYNTIwIGF0dHJpYnV0ZSB0eXBlcworICovCit0eXBlZGVmIHN0cnVjdCB7CisgICAgbWJlZHRsc19vaWRfZGVzY3JpcHRvcl90ICAgIGRlc2NyaXB0b3I7CisgICAgY29uc3QgY2hhciAgICAgICAgICAqc2hvcnRfbmFtZTsKK30gb2lkX3g1MjBfYXR0cl90OworCitzdGF0aWMgY29uc3Qgb2lkX3g1MjBfYXR0cl90IG9pZF94NTIwX2F0dHJfdHlwZVtdID0KK3sKKyAgICB7CisgICAgICAgIE9JRF9ERVNDUklQVE9SKE1CRURUTFNfT0lEX0FUX0NOLCAgICAgICAgICAiaWQtYXQtY29tbW9uTmFtZSIsICAgICAgICAgICAgICAgIkNvbW1vbiBOYW1lIiksCisgICAgICAgICJDTiIsCisgICAgfSwKKyAgICB7CisgICAgICAgIE9JRF9ERVNDUklQVE9SKE1CRURUTFNfT0lEX0FUX0NPVU5UUlksICAgICAiaWQtYXQtY291bnRyeU5hbWUiLCAgICAgICAgICAgICAgIkNvdW50cnkiKSwKKyAgICAgICAgIkMiLAorICAgIH0sCisgICAgeworICAgICAgICBPSURfREVTQ1JJUFRPUihNQkVEVExTX09JRF9BVF9MT0NBTElUWSwgICAgImlkLWF0LWxvY2FsaXR5IiwgICAgICAgICAgICAgICAgICJMb2NhbGl0eSIpLAorICAgICAgICAiTCIsCisgICAgfSwKKyAgICB7CisgICAgICAgIE9JRF9ERVNDUklQVE9SKE1CRURUTFNfT0lEX0FUX1NUQVRFLCAgICAgICAiaWQtYXQtc3RhdGUiLCAgICAgICAgICAgICAgICAgICAgIlN0YXRlIiksCisgICAgICAgICJTVCIsCisgICAgfSwKKyAgICB7CisgICAgICAgIE9JRF9ERVNDUklQVE9SKE1CRURUTFNfT0lEX0FUX09SR0FOSVpBVElPTiwgImlkLWF0LW9yZ2FuaXphdGlvbk5hbWUiLAorICAgICAgICAgICAgICAgICAgICAgICAiT3JnYW5pemF0aW9uIiksCisgICAgICAgICJPIiwKKyAgICB9LAorICAgIHsKKyAgICAgICAgT0lEX0RFU0NSSVBUT1IoTUJFRFRMU19PSURfQVRfT1JHX1VOSVQsICAgICJpZC1hdC1vcmdhbml6YXRpb25hbFVuaXROYW1lIiwgICAiT3JnIFVuaXQiKSwKKyAgICAgICAgIk9VIiwKKyAgICB9LAorICAgIHsKKyAgICAgICAgT0lEX0RFU0NSSVBUT1IoTUJFRFRMU19PSURfUEtDUzlfRU1BSUwsCisgICAgICAgICAgICAgICAgICAgICAgICJlbWFpbEFkZHJlc3MiLAorICAgICAgICAgICAgICAgICAgICAgICAiRS1tYWlsIGFkZHJlc3MiKSwKKyAgICAgICAgImVtYWlsQWRkcmVzcyIsCisgICAgfSwKKyAgICB7CisgICAgICAgIE9JRF9ERVNDUklQVE9SKE1CRURUTFNfT0lEX0FUX1NFUklBTF9OVU1CRVIsCisgICAgICAgICAgICAgICAgICAgICAgICJpZC1hdC1zZXJpYWxOdW1iZXIiLAorICAgICAgICAgICAgICAgICAgICAgICAiU2VyaWFsIG51bWJlciIpLAorICAgICAgICAic2VyaWFsTnVtYmVyIiwKKyAgICB9LAorICAgIHsKKyAgICAgICAgT0lEX0RFU0NSSVBUT1IoTUJFRFRMU19PSURfQVRfUE9TVEFMX0FERFJFU1MsCisgICAgICAgICAgICAgICAgICAgICAgICJpZC1hdC1wb3N0YWxBZGRyZXNzIiwKKyAgICAgICAgICAgICAgICAgICAgICAgIlBvc3RhbCBhZGRyZXNzIiksCisgICAgICAgICJwb3N0YWxBZGRyZXNzIiwKKyAgICB9LAorICAgIHsKKyAgICAgICAgT0lEX0RFU0NSSVBUT1IoTUJFRFRMU19PSURfQVRfUE9TVEFMX0NPREUsICJpZC1hdC1wb3N0YWxDb2RlIiwgICAgICAgICAgICAgICAiUG9zdGFsIGNvZGUiKSwKKyAgICAgICAgInBvc3RhbENvZGUiLAorICAgIH0sCisgICAgeworICAgICAgICBPSURfREVTQ1JJUFRPUihNQkVEVExTX09JRF9BVF9TVVJfTkFNRSwgICAgImlkLWF0LXN1ck5hbWUiLCAgICAgICAgICAgICAgICAgICJTdXJuYW1lIiksCisgICAgICAgICJTTiIsCisgICAgfSwKKyAgICB7CisgICAgICAgIE9JRF9ERVNDUklQVE9SKE1CRURUTFNfT0lEX0FUX0dJVkVOX05BTUUsICAiaWQtYXQtZ2l2ZW5OYW1lIiwgICAgICAgICAgICAgICAgIkdpdmVuIG5hbWUiKSwKKyAgICAgICAgIkdOIiwKKyAgICB9LAorICAgIHsKKyAgICAgICAgT0lEX0RFU0NSSVBUT1IoTUJFRFRMU19PSURfQVRfSU5JVElBTFMsICAgICJpZC1hdC1pbml0aWFscyIsICAgICAgICAgICAgICAgICAiSW5pdGlhbHMiKSwKKyAgICAgICAgImluaXRpYWxzIiwKKyAgICB9LAorICAgIHsKKyAgICAgICAgT0lEX0RFU0NSSVBUT1IoTUJFRFRMU19PSURfQVRfR0VORVJBVElPTl9RVUFMSUZJRVIsCisgICAgICAgICAgICAgICAgICAgICAgICJpZC1hdC1nZW5lcmF0aW9uUXVhbGlmaWVyIiwKKyAgICAgICAgICAgICAgICAgICAgICAgIkdlbmVyYXRpb24gcXVhbGlmaWVyIiksCisgICAgICAgICJnZW5lcmF0aW9uUXVhbGlmaWVyIiwKKyAgICB9LAorICAgIHsKKyAgICAgICAgT0lEX0RFU0NSSVBUT1IoTUJFRFRMU19PSURfQVRfVElUTEUsICAgICAgICJpZC1hdC10aXRsZSIsICAgICAgICAgICAgICAgICAgICAiVGl0bGUiKSwKKyAgICAgICAgInRpdGxlIiwKKyAgICB9LAorICAgIHsKKyAgICAgICAgT0lEX0RFU0NSSVBUT1IoTUJFRFRMU19PSURfQVRfRE5fUVVBTElGSUVSLAorICAgICAgICAgICAgICAgICAgICAgICAiaWQtYXQtZG5RdWFsaWZpZXIiLAorICAgICAgICAgICAgICAgICAgICAgICAiRGlzdGluZ3Vpc2hlZCBOYW1lIHF1YWxpZmllciIpLAorICAgICAgICAiZG5RdWFsaWZpZXIiLAorICAgIH0sCisgICAgeworICAgICAgICBPSURfREVTQ1JJUFRPUihNQkVEVExTX09JRF9BVF9QU0VVRE9OWU0sICAgImlkLWF0LXBzZXVkb255bSIsICAgICAgICAgICAgICAgICJQc2V1ZG9ueW0iKSwKKyAgICAgICAgInBzZXVkb255bSIsCisgICAgfSwKKyAgICB7CisgICAgICAgIE9JRF9ERVNDUklQVE9SKE1CRURUTFNfT0lEX1VJRCwgICAgICAgICAgICAiaWQtdWlkIiwgICAgICAgICAgICAgICAgICAgICAgICAgIlVzZXIgSWQiKSwKKyAgICAgICAgInVpZCIsCisgICAgfSwKKyAgICB7CisgICAgICAgIE9JRF9ERVNDUklQVE9SKE1CRURUTFNfT0lEX0RPTUFJTl9DT01QT05FTlQsCisgICAgICAgICAgICAgICAgICAgICAgICJpZC1kb21haW5Db21wb25lbnQiLAorICAgICAgICAgICAgICAgICAgICAgICAiRG9tYWluIGNvbXBvbmVudCIpLAorICAgICAgICAiREMiLAorICAgIH0sCisgICAgeworICAgICAgICBPSURfREVTQ1JJUFRPUihNQkVEVExTX09JRF9BVF9VTklRVUVfSURFTlRJRklFUiwKKyAgICAgICAgICAgICAgICAgICAgICAgImlkLWF0LXVuaXF1ZUlkZW50aWZpZXIiLAorICAgICAgICAgICAgICAgICAgICAgICAiVW5pcXVlIElkZW50aWZpZXIiKSwKKyAgICAgICAgInVuaXF1ZUlkZW50aWZpZXIiLAorICAgIH0sCisgICAgeworICAgICAgICBOVUxMX09JRF9ERVNDUklQVE9SLAorICAgICAgICBOVUxMLAorICAgIH0KK307CisKK0ZOX09JRF9UWVBFRF9GUk9NX0FTTjEob2lkX3g1MjBfYXR0cl90LCB4NTIwX2F0dHIsIG9pZF94NTIwX2F0dHJfdHlwZSkKK0ZOX09JRF9HRVRfQVRUUjEobWJlZHRsc19vaWRfZ2V0X2F0dHJfc2hvcnRfbmFtZSwKKyAgICAgICAgICAgICAgICAgb2lkX3g1MjBfYXR0cl90LAorICAgICAgICAgICAgICAgICB4NTIwX2F0dHIsCisgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKiwKKyAgICAgICAgICAgICAgICAgc2hvcnRfbmFtZSkKKworLyoKKyAqIEZvciBYNTA5IGV4dGVuc2lvbnMKKyAqLwordHlwZWRlZiBzdHJ1Y3QgeworICAgIG1iZWR0bHNfb2lkX2Rlc2NyaXB0b3JfdCAgICBkZXNjcmlwdG9yOworICAgIGludCAgICAgICAgICAgICAgICAgZXh0X3R5cGU7Cit9IG9pZF94NTA5X2V4dF90OworCitzdGF0aWMgY29uc3Qgb2lkX3g1MDlfZXh0X3Qgb2lkX3g1MDlfZXh0W10gPQoreworICAgIHsKKyAgICAgICAgT0lEX0RFU0NSSVBUT1IoTUJFRFRMU19PSURfQkFTSUNfQ09OU1RSQUlOVFMsCisgICAgICAgICAgICAgICAgICAgICAgICJpZC1jZS1iYXNpY0NvbnN0cmFpbnRzIiwKKyAgICAgICAgICAgICAgICAgICAgICAgIkJhc2ljIENvbnN0cmFpbnRzIiksCisgICAgICAgIE1CRURUTFNfT0lEX1g1MDlfRVhUX0JBU0lDX0NPTlNUUkFJTlRTLAorICAgIH0sCisgICAgeworICAgICAgICBPSURfREVTQ1JJUFRPUihNQkVEVExTX09JRF9LRVlfVVNBR0UsICAgICAgICAgICAgImlkLWNlLWtleVVzYWdlIiwgICAgICAgICAgICAiS2V5IFVzYWdlIiksCisgICAgICAgIE1CRURUTFNfT0lEX1g1MDlfRVhUX0tFWV9VU0FHRSwKKyAgICB9LAorICAgIHsKKyAgICAgICAgT0lEX0RFU0NSSVBUT1IoTUJFRFRMU19PSURfRVhURU5ERURfS0VZX1VTQUdFLAorICAgICAgICAgICAgICAgICAgICAgICAiaWQtY2UtZXh0S2V5VXNhZ2UiLAorICAgICAgICAgICAgICAgICAgICAgICAiRXh0ZW5kZWQgS2V5IFVzYWdlIiksCisgICAgICAgIE1CRURUTFNfT0lEX1g1MDlfRVhUX0VYVEVOREVEX0tFWV9VU0FHRSwKKyAgICB9LAorICAgIHsKKyAgICAgICAgT0lEX0RFU0NSSVBUT1IoTUJFRFRMU19PSURfU1VCSkVDVF9BTFRfTkFNRSwKKyAgICAgICAgICAgICAgICAgICAgICAgImlkLWNlLXN1YmplY3RBbHROYW1lIiwKKyAgICAgICAgICAgICAgICAgICAgICAgIlN1YmplY3QgQWx0IE5hbWUiKSwKKyAgICAgICAgTUJFRFRMU19PSURfWDUwOV9FWFRfU1VCSkVDVF9BTFRfTkFNRSwKKyAgICB9LAorICAgIHsKKyAgICAgICAgT0lEX0RFU0NSSVBUT1IoTUJFRFRMU19PSURfTlNfQ0VSVF9UWVBFLAorICAgICAgICAgICAgICAgICAgICAgICAiaWQtbmV0c2NhcGUtY2VydHR5cGUiLAorICAgICAgICAgICAgICAgICAgICAgICAiTmV0c2NhcGUgQ2VydGlmaWNhdGUgVHlwZSIpLAorICAgICAgICBNQkVEVExTX09JRF9YNTA5X0VYVF9OU19DRVJUX1RZUEUsCisgICAgfSwKKyAgICB7CisgICAgICAgIE9JRF9ERVNDUklQVE9SKE1CRURUTFNfT0lEX0NFUlRJRklDQVRFX1BPTElDSUVTLAorICAgICAgICAgICAgICAgICAgICAgICAiaWQtY2UtY2VydGlmaWNhdGVQb2xpY2llcyIsCisgICAgICAgICAgICAgICAgICAgICAgICJDZXJ0aWZpY2F0ZSBQb2xpY2llcyIpLAorICAgICAgICBNQkVEVExTX09JRF9YNTA5X0VYVF9DRVJUSUZJQ0FURV9QT0xJQ0lFUywKKyAgICB9LAorICAgIHsKKyAgICAgICAgT0lEX0RFU0NSSVBUT1IoTUJFRFRMU19PSURfU1VCSkVDVF9LRVlfSURFTlRJRklFUiwKKyAgICAgICAgICAgICAgICAgICAgICAgImlkLWNlLXN1YmplY3RLZXlJZGVudGlmaWVyIiwKKyAgICAgICAgICAgICAgICAgICAgICAgIlN1YmplY3QgS2V5IElkZW50aWZpZXIiKSwKKyAgICAgICAgTUJFRFRMU19PSURfWDUwOV9FWFRfU1VCSkVDVF9LRVlfSURFTlRJRklFUiwKKyAgICB9LAorICAgIHsKKyAgICAgICAgT0lEX0RFU0NSSVBUT1IoTUJFRFRMU19PSURfQVVUSE9SSVRZX0tFWV9JREVOVElGSUVSLAorICAgICAgICAgICAgICAgICAgICAgICAiaWQtY2UtYXV0aG9yaXR5S2V5SWRlbnRpZmllciIsCisgICAgICAgICAgICAgICAgICAgICAgICJBdXRob3JpdHkgS2V5IElkZW50aWZpZXIiKSwKKyAgICAgICAgTUJFRFRMU19PSURfWDUwOV9FWFRfQVVUSE9SSVRZX0tFWV9JREVOVElGSUVSLAorICAgIH0sCisgICAgeworICAgICAgICBOVUxMX09JRF9ERVNDUklQVE9SLAorICAgICAgICAwLAorICAgIH0sCit9OworCitGTl9PSURfVFlQRURfRlJPTV9BU04xKG9pZF94NTA5X2V4dF90LCB4NTA5X2V4dCwgb2lkX3g1MDlfZXh0KQorRk5fT0lEX0dFVF9BVFRSMShtYmVkdGxzX29pZF9nZXRfeDUwOV9leHRfdHlwZSwgb2lkX3g1MDlfZXh0X3QsIHg1MDlfZXh0LCBpbnQsIGV4dF90eXBlKQorCisjaWYgIWRlZmluZWQoTUJFRFRMU19YNTA5X1JFTU9WRV9JTkZPKQorc3RhdGljIGNvbnN0IG1iZWR0bHNfb2lkX2Rlc2NyaXB0b3JfdCBvaWRfZXh0X2tleV91c2FnZVtdID0KK3sKKyAgICBPSURfREVTQ1JJUFRPUihNQkVEVExTX09JRF9TRVJWRVJfQVVUSCwKKyAgICAgICAgICAgICAgICAgICAiaWQta3Atc2VydmVyQXV0aCIsCisgICAgICAgICAgICAgICAgICAgIlRMUyBXZWIgU2VydmVyIEF1dGhlbnRpY2F0aW9uIiksCisgICAgT0lEX0RFU0NSSVBUT1IoTUJFRFRMU19PSURfQ0xJRU5UX0FVVEgsCisgICAgICAgICAgICAgICAgICAgImlkLWtwLWNsaWVudEF1dGgiLAorICAgICAgICAgICAgICAgICAgICJUTFMgV2ViIENsaWVudCBBdXRoZW50aWNhdGlvbiIpLAorICAgIE9JRF9ERVNDUklQVE9SKE1CRURUTFNfT0lEX0NPREVfU0lHTklORywgICAgICJpZC1rcC1jb2RlU2lnbmluZyIsICAgICAiQ29kZSBTaWduaW5nIiksCisgICAgT0lEX0RFU0NSSVBUT1IoTUJFRFRMU19PSURfRU1BSUxfUFJPVEVDVElPTiwgImlkLWtwLWVtYWlsUHJvdGVjdGlvbiIsICJFLW1haWwgUHJvdGVjdGlvbiIpLAorICAgIE9JRF9ERVNDUklQVE9SKE1CRURUTFNfT0lEX1RJTUVfU1RBTVBJTkcsICAgICJpZC1rcC10aW1lU3RhbXBpbmciLCAgICAiVGltZSBTdGFtcGluZyIpLAorICAgIE9JRF9ERVNDUklQVE9SKE1CRURUTFNfT0lEX09DU1BfU0lHTklORywgICAgICJpZC1rcC1PQ1NQU2lnbmluZyIsICAgICAiT0NTUCBTaWduaW5nIiksCisgICAgT0lEX0RFU0NSSVBUT1IoTUJFRFRMU19PSURfV0lTVU5fRkFOLAorICAgICAgICAgICAgICAgICAgICJpZC1rcC13aXN1bi1mYW4tZGV2aWNlIiwKKyAgICAgICAgICAgICAgICAgICAiV2ktU1VOIEFsbGlhbmNlIEZpZWxkIEFyZWEgTmV0d29yayAoRkFOKSIpLAorICAgIE5VTExfT0lEX0RFU0NSSVBUT1IsCit9OworCitGTl9PSURfVFlQRURfRlJPTV9BU04xKG1iZWR0bHNfb2lkX2Rlc2NyaXB0b3JfdCwgZXh0X2tleV91c2FnZSwgb2lkX2V4dF9rZXlfdXNhZ2UpCitGTl9PSURfR0VUX0FUVFIxKG1iZWR0bHNfb2lkX2dldF9leHRlbmRlZF9rZXlfdXNhZ2UsCisgICAgICAgICAgICAgICAgIG1iZWR0bHNfb2lkX2Rlc2NyaXB0b3JfdCwKKyAgICAgICAgICAgICAgICAgZXh0X2tleV91c2FnZSwKKyAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqLAorICAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbikKKworc3RhdGljIGNvbnN0IG1iZWR0bHNfb2lkX2Rlc2NyaXB0b3JfdCBvaWRfY2VydGlmaWNhdGVfcG9saWNpZXNbXSA9Cit7CisgICAgT0lEX0RFU0NSSVBUT1IoTUJFRFRMU19PSURfQU5ZX1BPTElDWSwgICAgICAiYW55UG9saWN5IiwgICAgICAgIkFueSBQb2xpY3kiKSwKKyAgICBOVUxMX09JRF9ERVNDUklQVE9SLAorfTsKKworRk5fT0lEX1RZUEVEX0ZST01fQVNOMShtYmVkdGxzX29pZF9kZXNjcmlwdG9yX3QsIGNlcnRpZmljYXRlX3BvbGljaWVzLCBvaWRfY2VydGlmaWNhdGVfcG9saWNpZXMpCitGTl9PSURfR0VUX0FUVFIxKG1iZWR0bHNfb2lkX2dldF9jZXJ0aWZpY2F0ZV9wb2xpY2llcywKKyAgICAgICAgICAgICAgICAgbWJlZHRsc19vaWRfZGVzY3JpcHRvcl90LAorICAgICAgICAgICAgICAgICBjZXJ0aWZpY2F0ZV9wb2xpY2llcywKKyAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqLAorICAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbikKKyNlbmRpZiAvKiBNQkVEVExTX1g1MDlfUkVNT1ZFX0lORk8gKi8KKworLyoKKyAqIEZvciBTaWduYXR1cmVBbGdvcml0aG1JZGVudGlmaWVyCisgKi8KK3R5cGVkZWYgc3RydWN0IHsKKyAgICBtYmVkdGxzX29pZF9kZXNjcmlwdG9yX3QgICAgZGVzY3JpcHRvcjsKKyAgICBtYmVkdGxzX21kX3R5cGVfdCAgICAgICAgICAgbWRfYWxnOworICAgIG1iZWR0bHNfcGtfdHlwZV90ICAgICAgICAgICBwa19hbGc7Cit9IG9pZF9zaWdfYWxnX3Q7CisKK3N0YXRpYyBjb25zdCBvaWRfc2lnX2FsZ190IG9pZF9zaWdfYWxnW10gPQoreworI2lmIGRlZmluZWQoTUJFRFRMU19SU0FfQykKKyNpZiBkZWZpbmVkKE1CRURUTFNfTURfQ0FOX01ENSkKKyAgICB7CisgICAgICAgIE9JRF9ERVNDUklQVE9SKE1CRURUTFNfT0lEX1BLQ1MxX01ENSwgICAgICAgICJtZDVXaXRoUlNBRW5jcnlwdGlvbiIsICAgICAiUlNBIHdpdGggTUQ1IiksCisgICAgICAgIE1CRURUTFNfTURfTUQ1LCAgICAgIE1CRURUTFNfUEtfUlNBLAorICAgIH0sCisjZW5kaWYgLyogTUJFRFRMU19NRF9DQU5fTUQ1ICovCisjaWYgZGVmaW5lZChNQkVEVExTX01EX0NBTl9TSEExKQorICAgIHsKKyAgICAgICAgT0lEX0RFU0NSSVBUT1IoTUJFRFRMU19PSURfUEtDUzFfU0hBMSwgICAgICAgInNoYS0xV2l0aFJTQUVuY3J5cHRpb24iLCAgICJSU0Egd2l0aCBTSEExIiksCisgICAgICAgIE1CRURUTFNfTURfU0hBMSwgICAgIE1CRURUTFNfUEtfUlNBLAorICAgIH0sCisjZW5kaWYgLyogTUJFRFRMU19NRF9DQU5fU0hBMSAqLworI2lmIGRlZmluZWQoUFNBX1dBTlRfQUxHX1NIQV8yMjQpCisgICAgeworICAgICAgICBPSURfREVTQ1JJUFRPUihNQkVEVExTX09JRF9QS0NTMV9TSEEyMjQsICAgICAic2hhMjI0V2l0aFJTQUVuY3J5cHRpb24iLAorICAgICAgICAgICAgICAgICAgICAgICAiUlNBIHdpdGggU0hBLTIyNCIpLAorICAgICAgICBNQkVEVExTX01EX1NIQTIyNCwgICBNQkVEVExTX1BLX1JTQSwKKyAgICB9LAorI2VuZGlmIC8qIFBTQV9XQU5UX0FMR19TSEFfMjI0ICovCisjaWYgZGVmaW5lZChQU0FfV0FOVF9BTEdfU0hBXzI1NikKKyAgICB7CisgICAgICAgIE9JRF9ERVNDUklQVE9SKE1CRURUTFNfT0lEX1BLQ1MxX1NIQTI1NiwgICAgICJzaGEyNTZXaXRoUlNBRW5jcnlwdGlvbiIsCisgICAgICAgICAgICAgICAgICAgICAgICJSU0Egd2l0aCBTSEEtMjU2IiksCisgICAgICAgIE1CRURUTFNfTURfU0hBMjU2LCAgIE1CRURUTFNfUEtfUlNBLAorICAgIH0sCisjZW5kaWYgLyogUFNBX1dBTlRfQUxHX1NIQV8yNTYgKi8KKyNpZiBkZWZpbmVkKFBTQV9XQU5UX0FMR19TSEFfMzg0KQorICAgIHsKKyAgICAgICAgT0lEX0RFU0NSSVBUT1IoTUJFRFRMU19PSURfUEtDUzFfU0hBMzg0LCAgICAgInNoYTM4NFdpdGhSU0FFbmNyeXB0aW9uIiwKKyAgICAgICAgICAgICAgICAgICAgICAgIlJTQSB3aXRoIFNIQS0zODQiKSwKKyAgICAgICAgTUJFRFRMU19NRF9TSEEzODQsICAgTUJFRFRMU19QS19SU0EsCisgICAgfSwKKyNlbmRpZiAvKiBQU0FfV0FOVF9BTEdfU0hBXzM4NCAqLworI2lmIGRlZmluZWQoTUJFRFRMU19NRF9DQU5fU0hBNTEyKQorICAgIHsKKyAgICAgICAgT0lEX0RFU0NSSVBUT1IoTUJFRFRMU19PSURfUEtDUzFfU0hBNTEyLCAgICAgInNoYTUxMldpdGhSU0FFbmNyeXB0aW9uIiwKKyAgICAgICAgICAgICAgICAgICAgICAgIlJTQSB3aXRoIFNIQS01MTIiKSwKKyAgICAgICAgTUJFRFRMU19NRF9TSEE1MTIsICAgTUJFRFRMU19QS19SU0EsCisgICAgfSwKKyNlbmRpZiAvKiBNQkVEVExTX01EX0NBTl9TSEE1MTIgKi8KKyNpZiBkZWZpbmVkKE1CRURUTFNfTURfQ0FOX1NIQTEpCisgICAgeworICAgICAgICBPSURfREVTQ1JJUFRPUihNQkVEVExTX09JRF9SU0FfU0hBX09CUywgICAgICAic2hhLTFXaXRoUlNBRW5jcnlwdGlvbiIsICAgIlJTQSB3aXRoIFNIQTEiKSwKKyAgICAgICAgTUJFRFRMU19NRF9TSEExLCAgICAgTUJFRFRMU19QS19SU0EsCisgICAgfSwKKyNlbmRpZiAvKiBNQkVEVExTX01EX0NBTl9TSEExICovCisjZW5kaWYgLyogTUJFRFRMU19SU0FfQyAqLworI2lmIGRlZmluZWQoTUJFRFRMU19QS19DQU5fRUNEU0FfU09NRSkKKyNpZiBkZWZpbmVkKE1CRURUTFNfTURfQ0FOX1NIQTEpCisgICAgeworICAgICAgICBPSURfREVTQ1JJUFRPUihNQkVEVExTX09JRF9FQ0RTQV9TSEExLCAgICAgICAiZWNkc2Etd2l0aC1TSEExIiwgICAgICAiRUNEU0Egd2l0aCBTSEExIiksCisgICAgICAgIE1CRURUTFNfTURfU0hBMSwgICAgIE1CRURUTFNfUEtfRUNEU0EsCisgICAgfSwKKyNlbmRpZiAvKiBNQkVEVExTX01EX0NBTl9TSEExICovCisjaWYgZGVmaW5lZChQU0FfV0FOVF9BTEdfU0hBXzIyNCkKKyAgICB7CisgICAgICAgIE9JRF9ERVNDUklQVE9SKE1CRURUTFNfT0lEX0VDRFNBX1NIQTIyNCwgICAgICJlY2RzYS13aXRoLVNIQTIyNCIsICAgICJFQ0RTQSB3aXRoIFNIQTIyNCIpLAorICAgICAgICBNQkVEVExTX01EX1NIQTIyNCwgICBNQkVEVExTX1BLX0VDRFNBLAorICAgIH0sCisjZW5kaWYKKyNpZiBkZWZpbmVkKFBTQV9XQU5UX0FMR19TSEFfMjU2KQorICAgIHsKKyAgICAgICAgT0lEX0RFU0NSSVBUT1IoTUJFRFRMU19PSURfRUNEU0FfU0hBMjU2LCAgICAgImVjZHNhLXdpdGgtU0hBMjU2IiwgICAgIkVDRFNBIHdpdGggU0hBMjU2IiksCisgICAgICAgIE1CRURUTFNfTURfU0hBMjU2LCAgIE1CRURUTFNfUEtfRUNEU0EsCisgICAgfSwKKyNlbmRpZiAvKiBQU0FfV0FOVF9BTEdfU0hBXzI1NiAqLworI2lmIGRlZmluZWQoUFNBX1dBTlRfQUxHX1NIQV8zODQpCisgICAgeworICAgICAgICBPSURfREVTQ1JJUFRPUihNQkVEVExTX09JRF9FQ0RTQV9TSEEzODQsICAgICAiZWNkc2Etd2l0aC1TSEEzODQiLCAgICAiRUNEU0Egd2l0aCBTSEEzODQiKSwKKyAgICAgICAgTUJFRFRMU19NRF9TSEEzODQsICAgTUJFRFRMU19QS19FQ0RTQSwKKyAgICB9LAorI2VuZGlmIC8qIFBTQV9XQU5UX0FMR19TSEFfMzg0ICovCisjaWYgZGVmaW5lZChNQkVEVExTX01EX0NBTl9TSEE1MTIpCisgICAgeworICAgICAgICBPSURfREVTQ1JJUFRPUihNQkVEVExTX09JRF9FQ0RTQV9TSEE1MTIsICAgICAiZWNkc2Etd2l0aC1TSEE1MTIiLCAgICAiRUNEU0Egd2l0aCBTSEE1MTIiKSwKKyAgICAgICAgTUJFRFRMU19NRF9TSEE1MTIsICAgTUJFRFRMU19QS19FQ0RTQSwKKyAgICB9LAorI2VuZGlmIC8qIE1CRURUTFNfTURfQ0FOX1NIQTUxMiAqLworI2VuZGlmIC8qIE1CRURUTFNfUEtfQ0FOX0VDRFNBX1NPTUUgKi8KKyNpZiBkZWZpbmVkKE1CRURUTFNfUlNBX0MpCisgICAgeworICAgICAgICBPSURfREVTQ1JJUFRPUihNQkVEVExTX09JRF9SU0FTU0FfUFNTLCAgICAgICAgIlJTQVNTQS1QU1MiLCAgICAgICAgICAgIlJTQVNTQS1QU1MiKSwKKyAgICAgICAgTUJFRFRMU19NRF9OT05FLCAgICAgTUJFRFRMU19QS19SU0FTU0FfUFNTLAorICAgIH0sCisjZW5kaWYgLyogTUJFRFRMU19SU0FfQyAqLworICAgIHsKKyAgICAgICAgTlVMTF9PSURfREVTQ1JJUFRPUiwKKyAgICAgICAgTUJFRFRMU19NRF9OT05FLCBNQkVEVExTX1BLX05PTkUsCisgICAgfSwKK307CisKK0ZOX09JRF9UWVBFRF9GUk9NX0FTTjEob2lkX3NpZ19hbGdfdCwgc2lnX2FsZywgb2lkX3NpZ19hbGcpCisKKyNpZiAhZGVmaW5lZChNQkVEVExTX1g1MDlfUkVNT1ZFX0lORk8pCitGTl9PSURfR0VUX0RFU0NSSVBUT1JfQVRUUjEobWJlZHRsc19vaWRfZ2V0X3NpZ19hbGdfZGVzYywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBvaWRfc2lnX2FsZ190LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpZ19hbGcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uKQorI2VuZGlmCisKK0ZOX09JRF9HRVRfQVRUUjIobWJlZHRsc19vaWRfZ2V0X3NpZ19hbGcsCisgICAgICAgICAgICAgICAgIG9pZF9zaWdfYWxnX3QsCisgICAgICAgICAgICAgICAgIHNpZ19hbGcsCisgICAgICAgICAgICAgICAgIG1iZWR0bHNfbWRfdHlwZV90LAorICAgICAgICAgICAgICAgICBtZF9hbGcsCisgICAgICAgICAgICAgICAgIG1iZWR0bHNfcGtfdHlwZV90LAorICAgICAgICAgICAgICAgICBwa19hbGcpCitGTl9PSURfR0VUX09JRF9CWV9BVFRSMihtYmVkdGxzX29pZF9nZXRfb2lkX2J5X3NpZ19hbGcsCisgICAgICAgICAgICAgICAgICAgICAgICBvaWRfc2lnX2FsZ190LAorICAgICAgICAgICAgICAgICAgICAgICAgb2lkX3NpZ19hbGcsCisgICAgICAgICAgICAgICAgICAgICAgICBtYmVkdGxzX3BrX3R5cGVfdCwKKyAgICAgICAgICAgICAgICAgICAgICAgIHBrX2FsZywKKyAgICAgICAgICAgICAgICAgICAgICAgIG1iZWR0bHNfbWRfdHlwZV90LAorICAgICAgICAgICAgICAgICAgICAgICAgbWRfYWxnKQorCisvKgorICogRm9yIFB1YmxpY0tleUluZm8gKFBLQ1MxLCBSRkMgNTQ4MCkKKyAqLwordHlwZWRlZiBzdHJ1Y3QgeworICAgIG1iZWR0bHNfb2lkX2Rlc2NyaXB0b3JfdCAgICBkZXNjcmlwdG9yOworICAgIG1iZWR0bHNfcGtfdHlwZV90ICAgICAgICAgICBwa19hbGc7Cit9IG9pZF9wa19hbGdfdDsKKworc3RhdGljIGNvbnN0IG9pZF9wa19hbGdfdCBvaWRfcGtfYWxnW10gPQoreworICAgIHsKKyAgICAgICAgT0lEX0RFU0NSSVBUT1IoTUJFRFRMU19PSURfUEtDUzFfUlNBLCAgICAgICAgICAgInJzYUVuY3J5cHRpb24iLCAgICAiUlNBIiksCisgICAgICAgIE1CRURUTFNfUEtfUlNBLAorICAgIH0sCisgICAgeworICAgICAgICBPSURfREVTQ1JJUFRPUihNQkVEVExTX09JRF9FQ19BTEdfVU5SRVNUUklDVEVELCAiaWQtZWNQdWJsaWNLZXkiLCAgICJHZW5lcmljIEVDIGtleSIpLAorICAgICAgICBNQkVEVExTX1BLX0VDS0VZLAorICAgIH0sCisgICAgeworICAgICAgICBPSURfREVTQ1JJUFRPUihNQkVEVExTX09JRF9FQ19BTEdfRUNESCwgICAgICAgICAiaWQtZWNESCIsICAgICAgICAgICJFQyBrZXkgZm9yIEVDREgiKSwKKyAgICAgICAgTUJFRFRMU19QS19FQ0tFWV9ESCwKKyAgICB9LAorICAgIHsKKyAgICAgICAgTlVMTF9PSURfREVTQ1JJUFRPUiwKKyAgICAgICAgTUJFRFRMU19QS19OT05FLAorICAgIH0sCit9OworCitGTl9PSURfVFlQRURfRlJPTV9BU04xKG9pZF9wa19hbGdfdCwgcGtfYWxnLCBvaWRfcGtfYWxnKQorRk5fT0lEX0dFVF9BVFRSMShtYmVkdGxzX29pZF9nZXRfcGtfYWxnLCBvaWRfcGtfYWxnX3QsIHBrX2FsZywgbWJlZHRsc19wa190eXBlX3QsIHBrX2FsZykKK0ZOX09JRF9HRVRfT0lEX0JZX0FUVFIxKG1iZWR0bHNfb2lkX2dldF9vaWRfYnlfcGtfYWxnLAorICAgICAgICAgICAgICAgICAgICAgICAgb2lkX3BrX2FsZ190LAorICAgICAgICAgICAgICAgICAgICAgICAgb2lkX3BrX2FsZywKKyAgICAgICAgICAgICAgICAgICAgICAgIG1iZWR0bHNfcGtfdHlwZV90LAorICAgICAgICAgICAgICAgICAgICAgICAgcGtfYWxnKQorCisjaWYgZGVmaW5lZChNQkVEVExTX1BLX0hBVkVfRUNDX0tFWVMpCisvKgorICogRm9yIGVsbGlwdGljIGN1cnZlcyB0aGF0IHVzZSBuYW1lZEN1cnZlIGluc2lkZSBFQ1BhcmFtcyAoUkZDIDU0ODApCisgKi8KK3R5cGVkZWYgc3RydWN0IHsKKyAgICBtYmVkdGxzX29pZF9kZXNjcmlwdG9yX3QgICAgZGVzY3JpcHRvcjsKKyAgICBtYmVkdGxzX2VjcF9ncm91cF9pZCAgICAgICAgZ3JwX2lkOworfSBvaWRfZWNwX2dycF90OworCitzdGF0aWMgY29uc3Qgb2lkX2VjcF9ncnBfdCBvaWRfZWNwX2dycFtdID0KK3sKKyNpZiBkZWZpbmVkKFBTQV9XQU5UX0VDQ19TRUNQX1IxXzE5MikKKyAgICB7CisgICAgICAgIE9JRF9ERVNDUklQVE9SKE1CRURUTFNfT0lEX0VDX0dSUF9TRUNQMTkyUjEsICJzZWNwMTkycjEiLCAgICAic2VjcDE5MnIxIiksCisgICAgICAgIE1CRURUTFNfRUNQX0RQX1NFQ1AxOTJSMSwKKyAgICB9LAorI2VuZGlmIC8qIFBTQV9XQU5UX0VDQ19TRUNQX1IxXzE5MiAqLworI2lmIGRlZmluZWQoUFNBX1dBTlRfRUNDX1NFQ1BfUjFfMjI0KQorICAgIHsKKyAgICAgICAgT0lEX0RFU0NSSVBUT1IoTUJFRFRMU19PSURfRUNfR1JQX1NFQ1AyMjRSMSwgInNlY3AyMjRyMSIsICAgICJzZWNwMjI0cjEiKSwKKyAgICAgICAgTUJFRFRMU19FQ1BfRFBfU0VDUDIyNFIxLAorICAgIH0sCisjZW5kaWYgLyogUFNBX1dBTlRfRUNDX1NFQ1BfUjFfMjI0ICovCisjaWYgZGVmaW5lZChNQkVEVExTX0VDUF9IQVZFX1NFQ1AyNTZSMSkKKyAgICB7CisgICAgICAgIE9JRF9ERVNDUklQVE9SKE1CRURUTFNfT0lEX0VDX0dSUF9TRUNQMjU2UjEsICJzZWNwMjU2cjEiLCAgICAic2VjcDI1NnIxIiksCisgICAgICAgIE1CRURUTFNfRUNQX0RQX1NFQ1AyNTZSMSwKKyAgICB9LAorI2VuZGlmIC8qIE1CRURUTFNfRUNQX0hBVkVfU0VDUDI1NlIxICovCisjaWYgZGVmaW5lZChNQkVEVExTX0VDUF9IQVZFX1NFQ1AzODRSMSkKKyAgICB7CisgICAgICAgIE9JRF9ERVNDUklQVE9SKE1CRURUTFNfT0lEX0VDX0dSUF9TRUNQMzg0UjEsICJzZWNwMzg0cjEiLCAgICAic2VjcDM4NHIxIiksCisgICAgICAgIE1CRURUTFNfRUNQX0RQX1NFQ1AzODRSMSwKKyAgICB9LAorI2VuZGlmIC8qIE1CRURUTFNfRUNQX0hBVkVfU0VDUDM4NFIxICovCisjaWYgZGVmaW5lZChNQkVEVExTX0VDUF9IQVZFX1NFQ1A1MjFSMSkKKyAgICB7CisgICAgICAgIE9JRF9ERVNDUklQVE9SKE1CRURUTFNfT0lEX0VDX0dSUF9TRUNQNTIxUjEsICJzZWNwNTIxcjEiLCAgICAic2VjcDUyMXIxIiksCisgICAgICAgIE1CRURUTFNfRUNQX0RQX1NFQ1A1MjFSMSwKKyAgICB9LAorI2VuZGlmIC8qIE1CRURUTFNfRUNQX0hBVkVfU0VDUDUyMVIxICovCisjaWYgZGVmaW5lZChQU0FfV0FOVF9FQ0NfU0VDUF9LMV8xOTIpCisgICAgeworICAgICAgICBPSURfREVTQ1JJUFRPUihNQkVEVExTX09JRF9FQ19HUlBfU0VDUDE5MksxLCAic2VjcDE5MmsxIiwgICAgInNlY3AxOTJrMSIpLAorICAgICAgICBNQkVEVExTX0VDUF9EUF9TRUNQMTkySzEsCisgICAgfSwKKyNlbmRpZiAvKiBQU0FfV0FOVF9FQ0NfU0VDUF9LMV8xOTIgKi8KKyNpZiBkZWZpbmVkKE1CRURUTFNfRUNQX0hBVkVfU0VDUDIyNEsxKQorICAgIHsKKyAgICAgICAgT0lEX0RFU0NSSVBUT1IoTUJFRFRMU19PSURfRUNfR1JQX1NFQ1AyMjRLMSwgInNlY3AyMjRrMSIsICAgICJzZWNwMjI0azEiKSwKKyAgICAgICAgTUJFRFRMU19FQ1BfRFBfU0VDUDIyNEsxLAorICAgIH0sCisjZW5kaWYgLyogTUJFRFRMU19FQ1BfSEFWRV9TRUNQMjI0SzEgKi8KKyNpZiBkZWZpbmVkKFBTQV9XQU5UX0VDQ19TRUNQX0sxXzI1NikKKyAgICB7CisgICAgICAgIE9JRF9ERVNDUklQVE9SKE1CRURUTFNfT0lEX0VDX0dSUF9TRUNQMjU2SzEsICJzZWNwMjU2azEiLCAgICAic2VjcDI1NmsxIiksCisgICAgICAgIE1CRURUTFNfRUNQX0RQX1NFQ1AyNTZLMSwKKyAgICB9LAorI2VuZGlmIC8qIFBTQV9XQU5UX0VDQ19TRUNQX0sxXzI1NiAqLworI2lmIGRlZmluZWQoUFNBX1dBTlRfRUNDX0JSQUlOUE9PTF9QX1IxXzI1NikKKyAgICB7CisgICAgICAgIE9JRF9ERVNDUklQVE9SKE1CRURUTFNfT0lEX0VDX0dSUF9CUDI1NlIxLCAgICJicmFpbnBvb2xQMjU2cjEiLCAiYnJhaW5wb29sMjU2cjEiKSwKKyAgICAgICAgTUJFRFRMU19FQ1BfRFBfQlAyNTZSMSwKKyAgICB9LAorI2VuZGlmIC8qIFBTQV9XQU5UX0VDQ19CUkFJTlBPT0xfUF9SMV8yNTYgKi8KKyNpZiBkZWZpbmVkKFBTQV9XQU5UX0VDQ19CUkFJTlBPT0xfUF9SMV8zODQpCisgICAgeworICAgICAgICBPSURfREVTQ1JJUFRPUihNQkVEVExTX09JRF9FQ19HUlBfQlAzODRSMSwgICAiYnJhaW5wb29sUDM4NHIxIiwgImJyYWlucG9vbDM4NHIxIiksCisgICAgICAgIE1CRURUTFNfRUNQX0RQX0JQMzg0UjEsCisgICAgfSwKKyNlbmRpZiAvKiBQU0FfV0FOVF9FQ0NfQlJBSU5QT09MX1BfUjFfMzg0ICovCisjaWYgZGVmaW5lZChQU0FfV0FOVF9FQ0NfQlJBSU5QT09MX1BfUjFfNTEyKQorICAgIHsKKyAgICAgICAgT0lEX0RFU0NSSVBUT1IoTUJFRFRMU19PSURfRUNfR1JQX0JQNTEyUjEsICAgImJyYWlucG9vbFA1MTJyMSIsICJicmFpbnBvb2w1MTJyMSIpLAorICAgICAgICBNQkVEVExTX0VDUF9EUF9CUDUxMlIxLAorICAgIH0sCisjZW5kaWYgLyogUFNBX1dBTlRfRUNDX0JSQUlOUE9PTF9QX1IxXzUxMiAqLworICAgIHsKKyAgICAgICAgTlVMTF9PSURfREVTQ1JJUFRPUiwKKyAgICAgICAgTUJFRFRMU19FQ1BfRFBfTk9ORSwKKyAgICB9LAorfTsKKworRk5fT0lEX1RZUEVEX0ZST01fQVNOMShvaWRfZWNwX2dycF90LCBncnBfaWQsIG9pZF9lY3BfZ3JwKQorRk5fT0lEX0dFVF9BVFRSMShtYmVkdGxzX29pZF9nZXRfZWNfZ3JwLCBvaWRfZWNwX2dycF90LCBncnBfaWQsIG1iZWR0bHNfZWNwX2dyb3VwX2lkLCBncnBfaWQpCitGTl9PSURfR0VUX09JRF9CWV9BVFRSMShtYmVkdGxzX29pZF9nZXRfb2lkX2J5X2VjX2dycCwKKyAgICAgICAgICAgICAgICAgICAgICAgIG9pZF9lY3BfZ3JwX3QsCisgICAgICAgICAgICAgICAgICAgICAgICBvaWRfZWNwX2dycCwKKyAgICAgICAgICAgICAgICAgICAgICAgIG1iZWR0bHNfZWNwX2dyb3VwX2lkLAorICAgICAgICAgICAgICAgICAgICAgICAgZ3JwX2lkKQorCisvKgorICogRm9yIEVsbGlwdGljIEN1cnZlIGFsZ29yaXRobXMgdGhhdCBhcmUgZGlyZWN0bHkKKyAqIGVuY29kZWQgaW4gdGhlIEFsZ29yaXRobUlkZW50aWZpZXIgKFJGQyA4NDEwKQorICovCit0eXBlZGVmIHN0cnVjdCB7CisgICAgbWJlZHRsc19vaWRfZGVzY3JpcHRvcl90ICAgIGRlc2NyaXB0b3I7CisgICAgbWJlZHRsc19lY3BfZ3JvdXBfaWQgICAgICAgIGdycF9pZDsKK30gb2lkX2VjcF9ncnBfYWxnaWRfdDsKKworc3RhdGljIGNvbnN0IG9pZF9lY3BfZ3JwX2FsZ2lkX3Qgb2lkX2VjcF9ncnBfYWxnaWRbXSA9Cit7CisjaWYgZGVmaW5lZChNQkVEVExTX0VDUF9IQVZFX0NVUlZFMjU1MTkpCisgICAgeworICAgICAgICBPSURfREVTQ1JJUFRPUihNQkVEVExTX09JRF9YMjU1MTksICAgICAgICAgICAgICAgIlgyNTUxOSIsICAgICAgICJYMjU1MTkiKSwKKyAgICAgICAgTUJFRFRMU19FQ1BfRFBfQ1VSVkUyNTUxOSwKKyAgICB9LAorI2VuZGlmIC8qIE1CRURUTFNfRUNQX0hBVkVfQ1VSVkUyNTUxOSAqLworI2lmIGRlZmluZWQoTUJFRFRMU19FQ1BfSEFWRV9DVVJWRTQ0OCkKKyAgICB7CisgICAgICAgIE9JRF9ERVNDUklQVE9SKE1CRURUTFNfT0lEX1g0NDgsICAgICAgICAgICAgICAgICAiWDQ0OCIsICAgICAgICAgIlg0NDgiKSwKKyAgICAgICAgTUJFRFRMU19FQ1BfRFBfQ1VSVkU0NDgsCisgICAgfSwKKyNlbmRpZiAvKiBNQkVEVExTX0VDUF9IQVZFX0NVUlZFNDQ4ICovCisgICAgeworICAgICAgICBOVUxMX09JRF9ERVNDUklQVE9SLAorICAgICAgICBNQkVEVExTX0VDUF9EUF9OT05FLAorICAgIH0sCit9OworCitGTl9PSURfVFlQRURfRlJPTV9BU04xKG9pZF9lY3BfZ3JwX2FsZ2lkX3QsIGdycF9pZF9hbGdpZCwgb2lkX2VjcF9ncnBfYWxnaWQpCitGTl9PSURfR0VUX0FUVFIxKG1iZWR0bHNfb2lkX2dldF9lY19ncnBfYWxnaWQsCisgICAgICAgICAgICAgICAgIG9pZF9lY3BfZ3JwX2FsZ2lkX3QsCisgICAgICAgICAgICAgICAgIGdycF9pZF9hbGdpZCwKKyAgICAgICAgICAgICAgICAgbWJlZHRsc19lY3BfZ3JvdXBfaWQsCisgICAgICAgICAgICAgICAgIGdycF9pZCkKK0ZOX09JRF9HRVRfT0lEX0JZX0FUVFIxKG1iZWR0bHNfb2lkX2dldF9vaWRfYnlfZWNfZ3JwX2FsZ2lkLAorICAgICAgICAgICAgICAgICAgICAgICAgb2lkX2VjcF9ncnBfYWxnaWRfdCwKKyAgICAgICAgICAgICAgICAgICAgICAgIG9pZF9lY3BfZ3JwX2FsZ2lkLAorICAgICAgICAgICAgICAgICAgICAgICAgbWJlZHRsc19lY3BfZ3JvdXBfaWQsCisgICAgICAgICAgICAgICAgICAgICAgICBncnBfaWQpCisjZW5kaWYgLyogTUJFRFRMU19QS19IQVZFX0VDQ19LRVlTICovCisKKyNpZiBkZWZpbmVkKE1CRURUTFNfQ0lQSEVSX0MpCisvKgorICogRm9yIFBLQ1MjNSBQQkVTMiBlbmNyeXB0aW9uIGFsZ29yaXRobQorICovCit0eXBlZGVmIHN0cnVjdCB7CisgICAgbWJlZHRsc19vaWRfZGVzY3JpcHRvcl90ICAgIGRlc2NyaXB0b3I7CisgICAgbWJlZHRsc19jaXBoZXJfdHlwZV90ICAgICAgIGNpcGhlcl9hbGc7Cit9IG9pZF9jaXBoZXJfYWxnX3Q7CisKK3N0YXRpYyBjb25zdCBvaWRfY2lwaGVyX2FsZ190IG9pZF9jaXBoZXJfYWxnW10gPQoreworICAgIHsKKyAgICAgICAgT0lEX0RFU0NSSVBUT1IoTUJFRFRMU19PSURfREVTX0NCQywgICAgICAgICAgICAgICJkZXNDQkMiLCAgICAgICAiREVTLUNCQyIpLAorICAgICAgICBNQkVEVExTX0NJUEhFUl9ERVNfQ0JDLAorICAgIH0sCisgICAgeworICAgICAgICBPSURfREVTQ1JJUFRPUihNQkVEVExTX09JRF9ERVNfRURFM19DQkMsICAgICAgICAgImRlcy1lZGUzLWNiYyIsICJERVMtRURFMy1DQkMiKSwKKyAgICAgICAgTUJFRFRMU19DSVBIRVJfREVTX0VERTNfQ0JDLAorICAgIH0sCisgICAgeworICAgICAgICBPSURfREVTQ1JJUFRPUihNQkVEVExTX09JRF9BRVNfMTI4X0NCQywgICAgICAgICAgImFlczEyOC1jYmMiLCAiQUVTMTI4LUNCQyIpLAorICAgICAgICBNQkVEVExTX0NJUEhFUl9BRVNfMTI4X0NCQywKKyAgICB9LAorICAgIHsKKyAgICAgICAgT0lEX0RFU0NSSVBUT1IoTUJFRFRMU19PSURfQUVTXzE5Ml9DQkMsICAgICAgICAgICJhZXMxOTItY2JjIiwgIkFFUzE5Mi1DQkMiKSwKKyAgICAgICAgTUJFRFRMU19DSVBIRVJfQUVTXzE5Ml9DQkMsCisgICAgfSwKKyAgICB7CisgICAgICAgIE9JRF9ERVNDUklQVE9SKE1CRURUTFNfT0lEX0FFU18yNTZfQ0JDLCAgICAgICAgICAiYWVzMjU2LWNiYyIsICJBRVMyNTYtQ0JDIiksCisgICAgICAgIE1CRURUTFNfQ0lQSEVSX0FFU18yNTZfQ0JDLAorICAgIH0sCisgICAgeworICAgICAgICBOVUxMX09JRF9ERVNDUklQVE9SLAorICAgICAgICBNQkVEVExTX0NJUEhFUl9OT05FLAorICAgIH0sCit9OworCitGTl9PSURfVFlQRURfRlJPTV9BU04xKG9pZF9jaXBoZXJfYWxnX3QsIGNpcGhlcl9hbGcsIG9pZF9jaXBoZXJfYWxnKQorRk5fT0lEX0dFVF9BVFRSMShtYmVkdGxzX29pZF9nZXRfY2lwaGVyX2FsZywKKyAgICAgICAgICAgICAgICAgb2lkX2NpcGhlcl9hbGdfdCwKKyAgICAgICAgICAgICAgICAgY2lwaGVyX2FsZywKKyAgICAgICAgICAgICAgICAgbWJlZHRsc19jaXBoZXJfdHlwZV90LAorICAgICAgICAgICAgICAgICBjaXBoZXJfYWxnKQorI2VuZGlmIC8qIE1CRURUTFNfQ0lQSEVSX0MgKi8KKworLyoKKyAqIEZvciBkaWdlc3RBbGdvcml0aG0KKyAqLwordHlwZWRlZiBzdHJ1Y3QgeworICAgIG1iZWR0bHNfb2lkX2Rlc2NyaXB0b3JfdCAgICBkZXNjcmlwdG9yOworICAgIG1iZWR0bHNfbWRfdHlwZV90ICAgICAgICAgICBtZF9hbGc7Cit9IG9pZF9tZF9hbGdfdDsKKworc3RhdGljIGNvbnN0IG9pZF9tZF9hbGdfdCBvaWRfbWRfYWxnW10gPQoreworI2lmIGRlZmluZWQoTUJFRFRMU19NRF9DQU5fTUQ1KQorICAgIHsKKyAgICAgICAgT0lEX0RFU0NSSVBUT1IoTUJFRFRMU19PSURfRElHRVNUX0FMR19NRDUsICAgICAgICJpZC1tZDUiLCAgICAgICAiTUQ1IiksCisgICAgICAgIE1CRURUTFNfTURfTUQ1LAorICAgIH0sCisjZW5kaWYKKyNpZiBkZWZpbmVkKE1CRURUTFNfTURfQ0FOX1NIQTEpCisgICAgeworICAgICAgICBPSURfREVTQ1JJUFRPUihNQkVEVExTX09JRF9ESUdFU1RfQUxHX1NIQTEsICAgICAgImlkLXNoYTEiLCAgICAgICJTSEEtMSIpLAorICAgICAgICBNQkVEVExTX01EX1NIQTEsCisgICAgfSwKKyNlbmRpZgorI2lmIGRlZmluZWQoUFNBX1dBTlRfQUxHX1NIQV8yMjQpCisgICAgeworICAgICAgICBPSURfREVTQ1JJUFRPUihNQkVEVExTX09JRF9ESUdFU1RfQUxHX1NIQTIyNCwgICAgImlkLXNoYTIyNCIsICAgICJTSEEtMjI0IiksCisgICAgICAgIE1CRURUTFNfTURfU0hBMjI0LAorICAgIH0sCisjZW5kaWYKKyNpZiBkZWZpbmVkKFBTQV9XQU5UX0FMR19TSEFfMjU2KQorICAgIHsKKyAgICAgICAgT0lEX0RFU0NSSVBUT1IoTUJFRFRMU19PSURfRElHRVNUX0FMR19TSEEyNTYsICAgICJpZC1zaGEyNTYiLCAgICAiU0hBLTI1NiIpLAorICAgICAgICBNQkVEVExTX01EX1NIQTI1NiwKKyAgICB9LAorI2VuZGlmCisjaWYgZGVmaW5lZChQU0FfV0FOVF9BTEdfU0hBXzM4NCkKKyAgICB7CisgICAgICAgIE9JRF9ERVNDUklQVE9SKE1CRURUTFNfT0lEX0RJR0VTVF9BTEdfU0hBMzg0LCAgICAiaWQtc2hhMzg0IiwgICAgIlNIQS0zODQiKSwKKyAgICAgICAgTUJFRFRMU19NRF9TSEEzODQsCisgICAgfSwKKyNlbmRpZgorI2lmIGRlZmluZWQoTUJFRFRMU19NRF9DQU5fU0hBNTEyKQorICAgIHsKKyAgICAgICAgT0lEX0RFU0NSSVBUT1IoTUJFRFRMU19PSURfRElHRVNUX0FMR19TSEE1MTIsICAgICJpZC1zaGE1MTIiLCAgICAiU0hBLTUxMiIpLAorICAgICAgICBNQkVEVExTX01EX1NIQTUxMiwKKyAgICB9LAorI2VuZGlmCisjaWYgZGVmaW5lZChQU0FfV0FOVF9BTEdfUklQRU1EMTYwKQorICAgIHsKKyAgICAgICAgT0lEX0RFU0NSSVBUT1IoTUJFRFRMU19PSURfRElHRVNUX0FMR19SSVBFTUQxNjAsICJpZC1yaXBlbWQxNjAiLCAiUklQRU1ELTE2MCIpLAorICAgICAgICBNQkVEVExTX01EX1JJUEVNRDE2MCwKKyAgICB9LAorI2VuZGlmCisjaWYgZGVmaW5lZChQU0FfV0FOVF9BTEdfU0hBM18yMjQpCisgICAgeworICAgICAgICBPSURfREVTQ1JJUFRPUihNQkVEVExTX09JRF9ESUdFU1RfQUxHX1NIQTNfMjI0LCAgICAiaWQtc2hhMy0yMjQiLCAgICAiU0hBLTMtMjI0IiksCisgICAgICAgIE1CRURUTFNfTURfU0hBM18yMjQsCisgICAgfSwKKyNlbmRpZgorI2lmIGRlZmluZWQoUFNBX1dBTlRfQUxHX1NIQTNfMjU2KQorICAgIHsKKyAgICAgICAgT0lEX0RFU0NSSVBUT1IoTUJFRFRMU19PSURfRElHRVNUX0FMR19TSEEzXzI1NiwgICAgImlkLXNoYTMtMjU2IiwgICAgIlNIQS0zLTI1NiIpLAorICAgICAgICBNQkVEVExTX01EX1NIQTNfMjU2LAorICAgIH0sCisjZW5kaWYKKyNpZiBkZWZpbmVkKFBTQV9XQU5UX0FMR19TSEEzXzM4NCkKKyAgICB7CisgICAgICAgIE9JRF9ERVNDUklQVE9SKE1CRURUTFNfT0lEX0RJR0VTVF9BTEdfU0hBM18zODQsICAgICJpZC1zaGEzLTM4NCIsICAgICJTSEEtMy0zODQiKSwKKyAgICAgICAgTUJFRFRMU19NRF9TSEEzXzM4NCwKKyAgICB9LAorI2VuZGlmCisjaWYgZGVmaW5lZChQU0FfV0FOVF9BTEdfU0hBM181MTIpCisgICAgeworICAgICAgICBPSURfREVTQ1JJUFRPUihNQkVEVExTX09JRF9ESUdFU1RfQUxHX1NIQTNfNTEyLCAgICAiaWQtc2hhMy01MTIiLCAgICAiU0hBLTMtNTEyIiksCisgICAgICAgIE1CRURUTFNfTURfU0hBM181MTIsCisgICAgfSwKKyNlbmRpZgorICAgIHsKKyAgICAgICAgTlVMTF9PSURfREVTQ1JJUFRPUiwKKyAgICAgICAgTUJFRFRMU19NRF9OT05FLAorICAgIH0sCit9OworCitGTl9PSURfVFlQRURfRlJPTV9BU04xKG9pZF9tZF9hbGdfdCwgbWRfYWxnLCBvaWRfbWRfYWxnKQorRk5fT0lEX0dFVF9BVFRSMShtYmVkdGxzX29pZF9nZXRfbWRfYWxnLCBvaWRfbWRfYWxnX3QsIG1kX2FsZywgbWJlZHRsc19tZF90eXBlX3QsIG1kX2FsZykKK0ZOX09JRF9HRVRfT0lEX0JZX0FUVFIxKG1iZWR0bHNfb2lkX2dldF9vaWRfYnlfbWQsCisgICAgICAgICAgICAgICAgICAgICAgICBvaWRfbWRfYWxnX3QsCisgICAgICAgICAgICAgICAgICAgICAgICBvaWRfbWRfYWxnLAorICAgICAgICAgICAgICAgICAgICAgICAgbWJlZHRsc19tZF90eXBlX3QsCisgICAgICAgICAgICAgICAgICAgICAgICBtZF9hbGcpCisKKy8qCisgKiBGb3IgSE1BQyBkaWdlc3RBbGdvcml0aG0KKyAqLwordHlwZWRlZiBzdHJ1Y3QgeworICAgIG1iZWR0bHNfb2lkX2Rlc2NyaXB0b3JfdCAgICBkZXNjcmlwdG9yOworICAgIG1iZWR0bHNfbWRfdHlwZV90ICAgICAgICAgICBtZF9obWFjOworfSBvaWRfbWRfaG1hY190OworCitzdGF0aWMgY29uc3Qgb2lkX21kX2htYWNfdCBvaWRfbWRfaG1hY1tdID0KK3sKKyNpZiBkZWZpbmVkKE1CRURUTFNfTURfQ0FOX1NIQTEpCisgICAgeworICAgICAgICBPSURfREVTQ1JJUFRPUihNQkVEVExTX09JRF9ITUFDX1NIQTEsICAgICAgImhtYWNTSEExIiwgICAgICAiSE1BQy1TSEEtMSIpLAorICAgICAgICBNQkVEVExTX01EX1NIQTEsCisgICAgfSwKKyNlbmRpZiAvKiBNQkVEVExTX01EX0NBTl9TSEExICovCisjaWYgZGVmaW5lZChQU0FfV0FOVF9BTEdfU0hBXzIyNCkKKyAgICB7CisgICAgICAgIE9JRF9ERVNDUklQVE9SKE1CRURUTFNfT0lEX0hNQUNfU0hBMjI0LCAgICAiaG1hY1NIQTIyNCIsICAgICJITUFDLVNIQS0yMjQiKSwKKyAgICAgICAgTUJFRFRMU19NRF9TSEEyMjQsCisgICAgfSwKKyNlbmRpZiAvKiBQU0FfV0FOVF9BTEdfU0hBXzIyNCAqLworI2lmIGRlZmluZWQoUFNBX1dBTlRfQUxHX1NIQV8yNTYpCisgICAgeworICAgICAgICBPSURfREVTQ1JJUFRPUihNQkVEVExTX09JRF9ITUFDX1NIQTI1NiwgICAgImhtYWNTSEEyNTYiLCAgICAiSE1BQy1TSEEtMjU2IiksCisgICAgICAgIE1CRURUTFNfTURfU0hBMjU2LAorICAgIH0sCisjZW5kaWYgLyogUFNBX1dBTlRfQUxHX1NIQV8yNTYgKi8KKyNpZiBkZWZpbmVkKFBTQV9XQU5UX0FMR19TSEFfMzg0KQorICAgIHsKKyAgICAgICAgT0lEX0RFU0NSSVBUT1IoTUJFRFRMU19PSURfSE1BQ19TSEEzODQsICAgICJobWFjU0hBMzg0IiwgICAgIkhNQUMtU0hBLTM4NCIpLAorICAgICAgICBNQkVEVExTX01EX1NIQTM4NCwKKyAgICB9LAorI2VuZGlmIC8qIFBTQV9XQU5UX0FMR19TSEFfMzg0ICovCisjaWYgZGVmaW5lZChNQkVEVExTX01EX0NBTl9TSEE1MTIpCisgICAgeworICAgICAgICBPSURfREVTQ1JJUFRPUihNQkVEVExTX09JRF9ITUFDX1NIQTUxMiwgICAgImhtYWNTSEE1MTIiLCAgICAiSE1BQy1TSEEtNTEyIiksCisgICAgICAgIE1CRURUTFNfTURfU0hBNTEyLAorICAgIH0sCisjZW5kaWYgLyogTUJFRFRMU19NRF9DQU5fU0hBNTEyICovCisjaWYgZGVmaW5lZChQU0FfV0FOVF9BTEdfU0hBM18yMjQpCisgICAgeworICAgICAgICBPSURfREVTQ1JJUFRPUihNQkVEVExTX09JRF9ITUFDX1NIQTNfMjI0LCAgICAiaG1hY1NIQTMtMjI0IiwgICAgIkhNQUMtU0hBMy0yMjQiKSwKKyAgICAgICAgTUJFRFRMU19NRF9TSEEzXzIyNCwKKyAgICB9LAorI2VuZGlmIC8qIFBTQV9XQU5UX0FMR19TSEEzXzIyNCAqLworI2lmIGRlZmluZWQoUFNBX1dBTlRfQUxHX1NIQTNfMjU2KQorICAgIHsKKyAgICAgICAgT0lEX0RFU0NSSVBUT1IoTUJFRFRMU19PSURfSE1BQ19TSEEzXzI1NiwgICAgImhtYWNTSEEzLTI1NiIsICAgICJITUFDLVNIQTMtMjU2IiksCisgICAgICAgIE1CRURUTFNfTURfU0hBM18yNTYsCisgICAgfSwKKyNlbmRpZiAvKiBQU0FfV0FOVF9BTEdfU0hBM18yNTYgKi8KKyNpZiBkZWZpbmVkKFBTQV9XQU5UX0FMR19TSEEzXzM4NCkKKyAgICB7CisgICAgICAgIE9JRF9ERVNDUklQVE9SKE1CRURUTFNfT0lEX0hNQUNfU0hBM18zODQsICAgICJobWFjU0hBMy0zODQiLCAgICAiSE1BQy1TSEEzLTM4NCIpLAorICAgICAgICBNQkVEVExTX01EX1NIQTNfMzg0LAorICAgIH0sCisjZW5kaWYgLyogUFNBX1dBTlRfQUxHX1NIQTNfMzg0ICovCisjaWYgZGVmaW5lZChQU0FfV0FOVF9BTEdfU0hBM181MTIpCisgICAgeworICAgICAgICBPSURfREVTQ1JJUFRPUihNQkVEVExTX09JRF9ITUFDX1NIQTNfNTEyLCAgICAiaG1hY1NIQTMtNTEyIiwgICAgIkhNQUMtU0hBMy01MTIiKSwKKyAgICAgICAgTUJFRFRMU19NRF9TSEEzXzUxMiwKKyAgICB9LAorI2VuZGlmIC8qIFBTQV9XQU5UX0FMR19TSEEzXzUxMiAqLworI2lmIGRlZmluZWQoUFNBX1dBTlRfQUxHX1JJUEVNRDE2MCkKKyAgICB7CisgICAgICAgIE9JRF9ERVNDUklQVE9SKE1CRURUTFNfT0lEX0hNQUNfUklQRU1EMTYwLCAgICAiaG1hY1JJUEVNRDE2MCIsICAgICJITUFDLVJJUEVNRDE2MCIpLAorICAgICAgICBNQkVEVExTX01EX1JJUEVNRDE2MCwKKyAgICB9LAorI2VuZGlmIC8qIFBTQV9XQU5UX0FMR19SSVBFTUQxNjAgKi8KKyAgICB7CisgICAgICAgIE5VTExfT0lEX0RFU0NSSVBUT1IsCisgICAgICAgIE1CRURUTFNfTURfTk9ORSwKKyAgICB9LAorfTsKKworRk5fT0lEX1RZUEVEX0ZST01fQVNOMShvaWRfbWRfaG1hY190LCBtZF9obWFjLCBvaWRfbWRfaG1hYykKK0ZOX09JRF9HRVRfQVRUUjEobWJlZHRsc19vaWRfZ2V0X21kX2htYWMsIG9pZF9tZF9obWFjX3QsIG1kX2htYWMsIG1iZWR0bHNfbWRfdHlwZV90LCBtZF9obWFjKQorCisjaWYgZGVmaW5lZChNQkVEVExTX1BLQ1MxMl9DKSAmJiBkZWZpbmVkKE1CRURUTFNfQ0lQSEVSX0MpCisvKgorICogRm9yIFBLQ1MjMTIgUEJFcworICovCit0eXBlZGVmIHN0cnVjdCB7CisgICAgbWJlZHRsc19vaWRfZGVzY3JpcHRvcl90ICAgIGRlc2NyaXB0b3I7CisgICAgbWJlZHRsc19tZF90eXBlX3QgICAgICAgICAgIG1kX2FsZzsKKyAgICBtYmVkdGxzX2NpcGhlcl90eXBlX3QgICAgICAgY2lwaGVyX2FsZzsKK30gb2lkX3BrY3MxMl9wYmVfYWxnX3Q7CisKK3N0YXRpYyBjb25zdCBvaWRfcGtjczEyX3BiZV9hbGdfdCBvaWRfcGtjczEyX3BiZV9hbGdbXSA9Cit7CisgICAgeworICAgICAgICBPSURfREVTQ1JJUFRPUihNQkVEVExTX09JRF9QS0NTMTJfUEJFX1NIQTFfREVTM19FREVfQ0JDLAorICAgICAgICAgICAgICAgICAgICAgICAicGJlV2l0aFNIQUFuZDMtS2V5VHJpcGxlREVTLUNCQyIsCisgICAgICAgICAgICAgICAgICAgICAgICJQQkUgd2l0aCBTSEExIGFuZCAzLUtleSAzREVTIiksCisgICAgICAgIE1CRURUTFNfTURfU0hBMSwgICAgICBNQkVEVExTX0NJUEhFUl9ERVNfRURFM19DQkMsCisgICAgfSwKKyAgICB7CisgICAgICAgIE9JRF9ERVNDUklQVE9SKE1CRURUTFNfT0lEX1BLQ1MxMl9QQkVfU0hBMV9ERVMyX0VERV9DQkMsCisgICAgICAgICAgICAgICAgICAgICAgICJwYmVXaXRoU0hBQW5kMi1LZXlUcmlwbGVERVMtQ0JDIiwKKyAgICAgICAgICAgICAgICAgICAgICAgIlBCRSB3aXRoIFNIQTEgYW5kIDItS2V5IDNERVMiKSwKKyAgICAgICAgTUJFRFRMU19NRF9TSEExLCAgICAgIE1CRURUTFNfQ0lQSEVSX0RFU19FREVfQ0JDLAorICAgIH0sCisgICAgeworICAgICAgICBOVUxMX09JRF9ERVNDUklQVE9SLAorICAgICAgICBNQkVEVExTX01EX05PTkUsIE1CRURUTFNfQ0lQSEVSX05PTkUsCisgICAgfSwKK307CisKK0ZOX09JRF9UWVBFRF9GUk9NX0FTTjEob2lkX3BrY3MxMl9wYmVfYWxnX3QsIHBrY3MxMl9wYmVfYWxnLCBvaWRfcGtjczEyX3BiZV9hbGcpCitGTl9PSURfR0VUX0FUVFIyKG1iZWR0bHNfb2lkX2dldF9wa2NzMTJfcGJlX2FsZywKKyAgICAgICAgICAgICAgICAgb2lkX3BrY3MxMl9wYmVfYWxnX3QsCisgICAgICAgICAgICAgICAgIHBrY3MxMl9wYmVfYWxnLAorICAgICAgICAgICAgICAgICBtYmVkdGxzX21kX3R5cGVfdCwKKyAgICAgICAgICAgICAgICAgbWRfYWxnLAorICAgICAgICAgICAgICAgICBtYmVkdGxzX2NpcGhlcl90eXBlX3QsCisgICAgICAgICAgICAgICAgIGNpcGhlcl9hbGcpCisjZW5kaWYgLyogTUJFRFRMU19QS0NTMTJfQyAmJiBNQkVEVExTX0NJUEhFUl9DICovCisKKy8qIFJldHVybiB0aGUgeC55LnouLi4uIHN0eWxlIG51bWVyaWMgc3RyaW5nIGZvciB0aGUgZ2l2ZW4gT0lEICovCitpbnQgbWJlZHRsc19vaWRfZ2V0X251bWVyaWNfc3RyaW5nKGNoYXIgKmJ1Ziwgc2l6ZV90IHNpemUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IG1iZWR0bHNfYXNuMV9idWYgKm9pZCkKK3sKKyAgICBpbnQgcmV0ID0gTUJFRFRMU19FUlJfRVJST1JfQ09SUlVQVElPTl9ERVRFQ1RFRDsKKyAgICBjaGFyICpwID0gYnVmOworICAgIHNpemVfdCBuID0gc2l6ZTsKKyAgICB1bnNpZ25lZCBpbnQgdmFsdWUgPSAwOworCisgICAgaWYgKHNpemUgPiBJTlRfTUFYKSB7CisgICAgICAgIC8qIEF2b2lkIG92ZXJmbG93IGNvbXB1dGluZyByZXR1cm4gdmFsdWUgKi8KKyAgICAgICAgcmV0dXJuIE1CRURUTFNfRVJSX0FTTjFfSU5WQUxJRF9MRU5HVEg7CisgICAgfQorCisgICAgaWYgKG9pZC0+bGVuIDw9IDApIHsKKyAgICAgICAgLyogT0lEIG11c3Qgbm90IGJlIGVtcHR5ICovCisgICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9BU04xX09VVF9PRl9EQVRBOworICAgIH0KKworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgb2lkLT5sZW47IGkrKykgeworICAgICAgICAvKiBQcmV2ZW50IG92ZXJmbG93IGluIHZhbHVlLiAqLworICAgICAgICBpZiAodmFsdWUgPiAoVUlOVF9NQVggPj4gNykpIHsKKyAgICAgICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9BU04xX0lOVkFMSURfREFUQTsKKyAgICAgICAgfQorICAgICAgICBpZiAoKHZhbHVlID09IDApICYmICgob2lkLT5wW2ldKSA9PSAweDgwKSkgeworICAgICAgICAgICAgLyogT3ZlcmxvbmcgZW5jb2RpbmcgaXMgbm90IGFsbG93ZWQgKi8KKyAgICAgICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9BU04xX0lOVkFMSURfREFUQTsKKyAgICAgICAgfQorCisgICAgICAgIHZhbHVlIDw8PSA3OworICAgICAgICB2YWx1ZSB8PSBvaWQtPnBbaV0gJiAweDdGOworCisgICAgICAgIGlmICghKG9pZC0+cFtpXSAmIDB4ODApKSB7CisgICAgICAgICAgICAvKiBMYXN0IGJ5dGUgKi8KKyAgICAgICAgICAgIGlmIChuID09IHNpemUpIHsKKyAgICAgICAgICAgICAgICBpbnQgY29tcG9uZW50MTsKKyAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgY29tcG9uZW50MjsKKyAgICAgICAgICAgICAgICAvKiBGaXJzdCBzdWJpZGVudGlmaWVyIGNvbnRhaW5zIGZpcnN0IHR3byBPSUQgY29tcG9uZW50cyAqLworICAgICAgICAgICAgICAgIGlmICh2YWx1ZSA+PSA4MCkgeworICAgICAgICAgICAgICAgICAgICBjb21wb25lbnQxID0gJzInOworICAgICAgICAgICAgICAgICAgICBjb21wb25lbnQyID0gdmFsdWUgLSA4MDsKKyAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHZhbHVlID49IDQwKSB7CisgICAgICAgICAgICAgICAgICAgIGNvbXBvbmVudDEgPSAnMSc7CisgICAgICAgICAgICAgICAgICAgIGNvbXBvbmVudDIgPSB2YWx1ZSAtIDQwOworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIGNvbXBvbmVudDEgPSAnMCc7CisgICAgICAgICAgICAgICAgICAgIGNvbXBvbmVudDIgPSB2YWx1ZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgcmV0ID0gbWJlZHRsc19zbnByaW50ZihwLCBuLCAiJWMuJXUiLCBjb21wb25lbnQxLCBjb21wb25lbnQyKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgcmV0ID0gbWJlZHRsc19zbnByaW50ZihwLCBuLCAiLiV1IiwgdmFsdWUpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKHJldCA8IDIgfHwgKHNpemVfdCkgcmV0ID49IG4pIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfT0lEX0JVRl9UT09fU01BTEw7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBuIC09IChzaXplX3QpIHJldDsKKyAgICAgICAgICAgIHAgKz0gcmV0OworICAgICAgICAgICAgdmFsdWUgPSAwOworICAgICAgICB9CisgICAgfQorCisgICAgaWYgKHZhbHVlICE9IDApIHsKKyAgICAgICAgLyogVW50ZXJtaW5hdGVkIHN1YmlkZW50aWZpZXIgKi8KKyAgICAgICAgcmV0dXJuIE1CRURUTFNfRVJSX0FTTjFfT1VUX09GX0RBVEE7CisgICAgfQorCisgICAgcmV0dXJuIChpbnQpIChzaXplIC0gbik7Cit9CisKK3N0YXRpYyBpbnQgb2lkX3BhcnNlX251bWJlcih1bnNpZ25lZCBpbnQgKm51bSwgY29uc3QgY2hhciAqKnAsIGNvbnN0IGNoYXIgKmJvdW5kKQoreworICAgIGludCByZXQgPSBNQkVEVExTX0VSUl9BU04xX0lOVkFMSURfREFUQTsKKworICAgICpudW0gPSAwOworCisgICAgd2hpbGUgKCpwIDwgYm91bmQgJiYgKipwID49ICcwJyAmJiAqKnAgPD0gJzknKSB7CisgICAgICAgIHJldCA9IDA7CisgICAgICAgIGlmICgqbnVtID4gKFVJTlRfTUFYIC8gMTApKSB7CisgICAgICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfQVNOMV9JTlZBTElEX0RBVEE7CisgICAgICAgIH0KKyAgICAgICAgKm51bSAqPSAxMDsKKyAgICAgICAgKm51bSArPSAqKnAgLSAnMCc7CisgICAgICAgICgqcCkrKzsKKyAgICB9CisgICAgcmV0dXJuIHJldDsKK30KKworc3RhdGljIHNpemVfdCBvaWRfc3ViaWRlbnRpZmllcl9udW1fYnl0ZXModW5zaWduZWQgaW50IHZhbHVlKQoreworICAgIHNpemVfdCBudW1fYnl0ZXMgPSAwOworCisgICAgZG8geworICAgICAgICB2YWx1ZSA+Pj0gNzsKKyAgICAgICAgbnVtX2J5dGVzKys7CisgICAgfSB3aGlsZSAodmFsdWUgIT0gMCk7CisKKyAgICByZXR1cm4gbnVtX2J5dGVzOworfQorCitzdGF0aWMgaW50IG9pZF9zdWJpZGVudGlmaWVyX2VuY29kZV9pbnRvKHVuc2lnbmVkIGNoYXIgKipwLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBjaGFyICpib3VuZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50IHZhbHVlKQoreworICAgIHNpemVfdCBudW1fYnl0ZXMgPSBvaWRfc3ViaWRlbnRpZmllcl9udW1fYnl0ZXModmFsdWUpOworCisgICAgaWYgKChzaXplX3QpIChib3VuZCAtICpwKSA8IG51bV9ieXRlcykgeworICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfT0lEX0JVRl9UT09fU01BTEw7CisgICAgfQorICAgICgqcClbbnVtX2J5dGVzIC0gMV0gPSAodW5zaWduZWQgY2hhcikgKHZhbHVlICYgMHg3Zik7CisgICAgdmFsdWUgPj49IDc7CisKKyAgICBmb3IgKHNpemVfdCBpID0gMjsgaSA8PSBudW1fYnl0ZXM7IGkrKykgeworICAgICAgICAoKnApW251bV9ieXRlcyAtIGldID0gMHg4MCB8ICh1bnNpZ25lZCBjaGFyKSAodmFsdWUgJiAweDdmKTsKKyAgICAgICAgdmFsdWUgPj49IDc7CisgICAgfQorICAgICpwICs9IG51bV9ieXRlczsKKworICAgIHJldHVybiAwOworfQorCisvKiBSZXR1cm4gdGhlIE9JRCBmb3IgdGhlIGdpdmVuIHgueS56Li4uLiBzdHlsZSBudW1lcmljIHN0cmluZyAgKi8KK2ludCBtYmVkdGxzX29pZF9mcm9tX251bWVyaWNfc3RyaW5nKG1iZWR0bHNfYXNuMV9idWYgKm9pZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKm9pZF9zdHIsIHNpemVfdCBzaXplKQoreworICAgIGludCByZXQgPSBNQkVEVExTX0VSUl9BU04xX0lOVkFMSURfREFUQTsKKyAgICBjb25zdCBjaGFyICpzdHJfcHRyID0gb2lkX3N0cjsKKyAgICBjb25zdCBjaGFyICpzdHJfYm91bmQgPSBvaWRfc3RyICsgc2l6ZTsKKyAgICB1bnNpZ25lZCBpbnQgdmFsID0gMDsKKyAgICB1bnNpZ25lZCBpbnQgY29tcG9uZW50MSwgY29tcG9uZW50MjsKKyAgICBzaXplX3QgZW5jb2RlZF9sZW47CisgICAgdW5zaWduZWQgY2hhciAqcmVzaXplZF9tZW07CisKKyAgICAvKiBDb3VudCB0aGUgbnVtYmVyIG9mIGRvdHMgdG8gZ2V0IGEgd29yc3QtY2FzZSBhbGxvY2F0aW9uIHNpemUuICovCisgICAgc2l6ZV90IG51bV9kb3RzID0gMDsKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHNpemU7IGkrKykgeworICAgICAgICBpZiAob2lkX3N0cltpXSA9PSAnLicpIHsKKyAgICAgICAgICAgIG51bV9kb3RzKys7CisgICAgICAgIH0KKyAgICB9CisgICAgLyogQWxsb2NhdGUgbWF4aW11bSBwb3NzaWJsZSByZXF1aXJlZCBtZW1vcnk6CisgICAgICogVGhlcmUgYXJlIChudW1fZG90cyArIDEpIGludGVnZXIgY29tcG9uZW50cywgYnV0IHRoZSBmaXJzdCAyIHNoYXJlIHRoZQorICAgICAqIHNhbWUgc3ViaWRlbnRpZmllciwgc28gd2Ugb25seSBuZWVkIG51bV9kb3RzIHN1YmlkZW50aWZpZXJzIG1heGltdW0uICovCisgICAgaWYgKG51bV9kb3RzID09IDAgfHwgKG51bV9kb3RzID4gTUJFRFRMU19PSURfTUFYX0NPTVBPTkVOVFMgLSAxKSkgeworICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfQVNOMV9JTlZBTElEX0RBVEE7CisgICAgfQorICAgIC8qIEVhY2ggYnl0ZSBjYW4gc3RvcmUgNyBiaXRzLCBjYWxjdWxhdGUgbnVtYmVyIG9mIGJ5dGVzIGZvciBhCisgICAgICogc3ViaWRlbnRpZmllcjoKKyAgICAgKgorICAgICAqIGJ5dGVzID0gY2VpbChzdWJpZGVudGlmZXJfc2l6ZSAqIDggLyA3KQorICAgICAqLworICAgIHNpemVfdCBieXRlc19wZXJfc3ViaWRlbnRpZmllciA9ICgoKHNpemVvZih1bnNpZ25lZCBpbnQpICogOCkgLSAxKSAvIDcpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyAxOworICAgIHNpemVfdCBtYXhfcG9zc2libGVfYnl0ZXMgPSBudW1fZG90cyAqIGJ5dGVzX3Blcl9zdWJpZGVudGlmaWVyOworICAgIG9pZC0+cCA9IG1iZWR0bHNfY2FsbG9jKG1heF9wb3NzaWJsZV9ieXRlcywgMSk7CisgICAgaWYgKG9pZC0+cCA9PSBOVUxMKSB7CisgICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9BU04xX0FMTE9DX0ZBSUxFRDsKKyAgICB9CisgICAgdW5zaWduZWQgY2hhciAqb3V0X3B0ciA9IG9pZC0+cDsKKyAgICB1bnNpZ25lZCBjaGFyICpvdXRfYm91bmQgPSBvaWQtPnAgKyBtYXhfcG9zc2libGVfYnl0ZXM7CisKKyAgICByZXQgPSBvaWRfcGFyc2VfbnVtYmVyKCZjb21wb25lbnQxLCAmc3RyX3B0ciwgc3RyX2JvdW5kKTsKKyAgICBpZiAocmV0ICE9IDApIHsKKyAgICAgICAgZ290byBlcnJvcjsKKyAgICB9CisgICAgaWYgKGNvbXBvbmVudDEgPiAyKSB7CisgICAgICAgIC8qIEZpcnN0IGNvbXBvbmVudCBjYW4ndCBiZSA+IDIgKi8KKyAgICAgICAgcmV0ID0gTUJFRFRMU19FUlJfQVNOMV9JTlZBTElEX0RBVEE7CisgICAgICAgIGdvdG8gZXJyb3I7CisgICAgfQorICAgIGlmIChzdHJfcHRyID49IHN0cl9ib3VuZCB8fCAqc3RyX3B0ciAhPSAnLicpIHsKKyAgICAgICAgcmV0ID0gTUJFRFRMU19FUlJfQVNOMV9JTlZBTElEX0RBVEE7CisgICAgICAgIGdvdG8gZXJyb3I7CisgICAgfQorICAgIHN0cl9wdHIrKzsKKworICAgIHJldCA9IG9pZF9wYXJzZV9udW1iZXIoJmNvbXBvbmVudDIsICZzdHJfcHRyLCBzdHJfYm91bmQpOworICAgIGlmIChyZXQgIT0gMCkgeworICAgICAgICBnb3RvIGVycm9yOworICAgIH0KKyAgICBpZiAoKGNvbXBvbmVudDEgPCAyKSAmJiAoY29tcG9uZW50MiA+IDM5KSkgeworICAgICAgICAvKiBSb290IG5vZGVzIDAgYW5kIDEgbWF5IGhhdmUgdXAgdG8gNDAgY2hpbGRyZW4sIG51bWJlcmVkIDAtMzkgKi8KKyAgICAgICAgcmV0ID0gTUJFRFRMU19FUlJfQVNOMV9JTlZBTElEX0RBVEE7CisgICAgICAgIGdvdG8gZXJyb3I7CisgICAgfQorICAgIGlmIChzdHJfcHRyIDwgc3RyX2JvdW5kKSB7CisgICAgICAgIGlmICgqc3RyX3B0ciA9PSAnLicpIHsKKyAgICAgICAgICAgIHN0cl9wdHIrKzsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHJldCA9IE1CRURUTFNfRVJSX0FTTjFfSU5WQUxJRF9EQVRBOworICAgICAgICAgICAgZ290byBlcnJvcjsKKyAgICAgICAgfQorICAgIH0KKworICAgIGlmIChjb21wb25lbnQyID4gKFVJTlRfTUFYIC0gKGNvbXBvbmVudDEgKiA0MCkpKSB7CisgICAgICAgIHJldCA9IE1CRURUTFNfRVJSX0FTTjFfSU5WQUxJRF9EQVRBOworICAgICAgICBnb3RvIGVycm9yOworICAgIH0KKyAgICByZXQgPSBvaWRfc3ViaWRlbnRpZmllcl9lbmNvZGVfaW50bygmb3V0X3B0ciwgb3V0X2JvdW5kLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjb21wb25lbnQxICogNDApICsgY29tcG9uZW50Mik7CisgICAgaWYgKHJldCAhPSAwKSB7CisgICAgICAgIGdvdG8gZXJyb3I7CisgICAgfQorCisgICAgd2hpbGUgKHN0cl9wdHIgPCBzdHJfYm91bmQpIHsKKyAgICAgICAgcmV0ID0gb2lkX3BhcnNlX251bWJlcigmdmFsLCAmc3RyX3B0ciwgc3RyX2JvdW5kKTsKKyAgICAgICAgaWYgKHJldCAhPSAwKSB7CisgICAgICAgICAgICBnb3RvIGVycm9yOworICAgICAgICB9CisgICAgICAgIGlmIChzdHJfcHRyIDwgc3RyX2JvdW5kKSB7CisgICAgICAgICAgICBpZiAoKnN0cl9wdHIgPT0gJy4nKSB7CisgICAgICAgICAgICAgICAgc3RyX3B0cisrOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICByZXQgPSBNQkVEVExTX0VSUl9BU04xX0lOVkFMSURfREFUQTsKKyAgICAgICAgICAgICAgICBnb3RvIGVycm9yOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgcmV0ID0gb2lkX3N1YmlkZW50aWZpZXJfZW5jb2RlX2ludG8oJm91dF9wdHIsIG91dF9ib3VuZCwgdmFsKTsKKyAgICAgICAgaWYgKHJldCAhPSAwKSB7CisgICAgICAgICAgICBnb3RvIGVycm9yOworICAgICAgICB9CisgICAgfQorCisgICAgZW5jb2RlZF9sZW4gPSAoc2l6ZV90KSAob3V0X3B0ciAtIG9pZC0+cCk7CisgICAgcmVzaXplZF9tZW0gPSBtYmVkdGxzX2NhbGxvYyhlbmNvZGVkX2xlbiwgMSk7CisgICAgaWYgKHJlc2l6ZWRfbWVtID09IE5VTEwpIHsKKyAgICAgICAgcmV0ID0gTUJFRFRMU19FUlJfQVNOMV9BTExPQ19GQUlMRUQ7CisgICAgICAgIGdvdG8gZXJyb3I7CisgICAgfQorICAgIG1lbWNweShyZXNpemVkX21lbSwgb2lkLT5wLCBlbmNvZGVkX2xlbik7CisgICAgbWJlZHRsc19mcmVlKG9pZC0+cCk7CisgICAgb2lkLT5wID0gcmVzaXplZF9tZW07CisgICAgb2lkLT5sZW4gPSBlbmNvZGVkX2xlbjsKKworICAgIG9pZC0+dGFnID0gTUJFRFRMU19BU04xX09JRDsKKworICAgIHJldHVybiAwOworCitlcnJvcjoKKyAgICBtYmVkdGxzX2ZyZWUob2lkLT5wKTsKKyAgICBvaWQtPnAgPSBOVUxMOworICAgIG9pZC0+bGVuID0gMDsKKyAgICByZXR1cm4gcmV0OworfQorCisjZW5kaWYgLyogTUJFRFRMU19PSURfQyAqLwpkaWZmIC0tZ2l0IGEvdGYtcHNhLWNyeXB0by9kcml2ZXJzL2J1aWx0aW4vc3JjL3BlbS5jIGIvdGYtcHNhLWNyeXB0by9kcml2ZXJzL2J1aWx0aW4vc3JjL3BlbS5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjAyMDc2MDEKLS0tIC9kZXYvbnVsbAorKysgYi90Zi1wc2EtY3J5cHRvL2RyaXZlcnMvYnVpbHRpbi9zcmMvcGVtLmMKQEAgLTAsMCArMSw1NTEgQEAKKy8qCisgKiAgUHJpdmFjeSBFbmhhbmNlZCBNYWlsIChQRU0pIGRlY29kaW5nCisgKgorICogIENvcHlyaWdodCBUaGUgTWJlZCBUTFMgQ29udHJpYnV0b3JzCisgKiAgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjAgT1IgR1BMLTIuMC1vci1sYXRlcgorICovCisKKyNpbmNsdWRlICJjb21tb24uaCIKKworI2lmIGRlZmluZWQoTUJFRFRMU19QRU1fUEFSU0VfQykgfHwgZGVmaW5lZChNQkVEVExTX1BFTV9XUklURV9DKQorCisjaW5jbHVkZSAibWJlZHRscy9wZW0uaCIKKyNpbmNsdWRlICJtYmVkdGxzL2Jhc2U2NC5oIgorI2luY2x1ZGUgIm1iZWR0bHMvZGVzLmgiCisjaW5jbHVkZSAibWJlZHRscy9hZXMuaCIKKyNpbmNsdWRlICJtYmVkdGxzL21kLmgiCisjaW5jbHVkZSAibWJlZHRscy9jaXBoZXIuaCIKKyNpbmNsdWRlICJtYmVkdGxzL3BsYXRmb3JtX3V0aWwuaCIKKyNpbmNsdWRlICJtYmVkdGxzL2Vycm9yLmgiCisKKyNpbmNsdWRlIDxzdHJpbmcuaD4KKworI2luY2x1ZGUgIm1iZWR0bHMvcGxhdGZvcm0uaCIKKworI2lmIGRlZmluZWQoTUJFRFRMU19VU0VfUFNBX0NSWVBUTykKKyNpbmNsdWRlICJwc2EvY3J5cHRvLmgiCisjZW5kaWYKKworI2lmIGRlZmluZWQoTUJFRFRMU19NRF9DQU5fTUQ1KSAmJiAgXAorICAgIGRlZmluZWQoTUJFRFRMU19DSVBIRVJfTU9ERV9DQkMpICYmICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgKGRlZmluZWQoTUJFRFRMU19ERVNfQykgfHwgZGVmaW5lZChNQkVEVExTX0FFU19DKSkKKyNkZWZpbmUgUEVNX1JGQzE0MjEKKyNlbmRpZiAvKiBNQkVEVExTX01EX0NBTl9NRDUgJiYKKyAgICAgICAgICBNQkVEVExTX0NJUEhFUl9NT0RFX0NCQyAmJgorICAgICAgICAgICggTUJFRFRMU19BRVNfQyB8fCBNQkVEVExTX0RFU19DICkgKi8KKworI2lmIGRlZmluZWQoTUJFRFRMU19QRU1fUEFSU0VfQykKK3ZvaWQgbWJlZHRsc19wZW1faW5pdChtYmVkdGxzX3BlbV9jb250ZXh0ICpjdHgpCit7CisgICAgbWVtc2V0KGN0eCwgMCwgc2l6ZW9mKG1iZWR0bHNfcGVtX2NvbnRleHQpKTsKK30KKworI2lmIGRlZmluZWQoUEVNX1JGQzE0MjEpCisvKgorICogUmVhZCBhIDE2LWJ5dGUgaGV4IHN0cmluZyBhbmQgY29udmVydCBpdCB0byBiaW5hcnkKKyAqLworc3RhdGljIGludCBwZW1fZ2V0X2l2KGNvbnN0IHVuc2lnbmVkIGNoYXIgKnMsIHVuc2lnbmVkIGNoYXIgKml2LAorICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBpdl9sZW4pCit7CisgICAgc2l6ZV90IGksIGosIGs7CisKKyAgICBtZW1zZXQoaXYsIDAsIGl2X2xlbik7CisKKyAgICBmb3IgKGkgPSAwOyBpIDwgaXZfbGVuICogMjsgaSsrLCBzKyspIHsKKyAgICAgICAgaWYgKCpzID49ICcwJyAmJiAqcyA8PSAnOScpIHsKKyAgICAgICAgICAgIGogPSAqcyAtICcwJzsKKyAgICAgICAgfSBlbHNlCisgICAgICAgIGlmICgqcyA+PSAnQScgJiYgKnMgPD0gJ0YnKSB7CisgICAgICAgICAgICBqID0gKnMgLSAnNyc7CisgICAgICAgIH0gZWxzZQorICAgICAgICBpZiAoKnMgPj0gJ2EnICYmICpzIDw9ICdmJykgeworICAgICAgICAgICAgaiA9ICpzIC0gJ1cnOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgcmV0dXJuIE1CRURUTFNfRVJSX1BFTV9JTlZBTElEX0VOQ19JVjsKKyAgICAgICAgfQorCisgICAgICAgIGsgPSAoKGkgJiAxKSAhPSAwKSA/IGogOiBqIDw8IDQ7CisKKyAgICAgICAgaXZbaSA+PiAxXSA9ICh1bnNpZ25lZCBjaGFyKSAoaXZbaSA+PiAxXSB8IGspOworICAgIH0KKworICAgIHJldHVybiAwOworfQorCitzdGF0aWMgaW50IHBlbV9wYmtkZjEodW5zaWduZWQgY2hhciAqa2V5LCBzaXplX3Qga2V5bGVuLAorICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGNoYXIgKml2LAorICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgKnB3ZCwgc2l6ZV90IHB3ZGxlbikKK3sKKyAgICBtYmVkdGxzX21kX2NvbnRleHRfdCBtZDVfY3R4OworICAgIGNvbnN0IG1iZWR0bHNfbWRfaW5mb190ICptZDVfaW5mbzsKKyAgICB1bnNpZ25lZCBjaGFyIG1kNXN1bVsxNl07CisgICAgc2l6ZV90IHVzZV9sZW47CisgICAgaW50IHJldCA9IE1CRURUTFNfRVJSX0VSUk9SX0NPUlJVUFRJT05fREVURUNURUQ7CisKKyAgICBtYmVkdGxzX21kX2luaXQoJm1kNV9jdHgpOworCisgICAgLyogUHJlcGFyZSB0aGUgY29udGV4dC4gKHNldHVwKCkgZXJyb3JzIGdyYWNlZnVsbHkgb24gTlVMTCBpbmZvLikgKi8KKyAgICBtZDVfaW5mbyA9IG1iZWR0bHNfbWRfaW5mb19mcm9tX3R5cGUoTUJFRFRMU19NRF9NRDUpOworICAgIGlmICgocmV0ID0gbWJlZHRsc19tZF9zZXR1cCgmbWQ1X2N0eCwgbWQ1X2luZm8sIDApKSAhPSAwKSB7CisgICAgICAgIGdvdG8gZXhpdDsKKyAgICB9CisKKyAgICAvKgorICAgICAqIGtleVsgMC4uMTVdID0gTUQ1KHB3ZCB8fCBJVikKKyAgICAgKi8KKyAgICBpZiAoKHJldCA9IG1iZWR0bHNfbWRfc3RhcnRzKCZtZDVfY3R4KSkgIT0gMCkgeworICAgICAgICBnb3RvIGV4aXQ7CisgICAgfQorICAgIGlmICgocmV0ID0gbWJlZHRsc19tZF91cGRhdGUoJm1kNV9jdHgsIHB3ZCwgcHdkbGVuKSkgIT0gMCkgeworICAgICAgICBnb3RvIGV4aXQ7CisgICAgfQorICAgIGlmICgocmV0ID0gbWJlZHRsc19tZF91cGRhdGUoJm1kNV9jdHgsIGl2LCAgOCkpICE9IDApIHsKKyAgICAgICAgZ290byBleGl0OworICAgIH0KKyAgICBpZiAoKHJldCA9IG1iZWR0bHNfbWRfZmluaXNoKCZtZDVfY3R4LCBtZDVzdW0pKSAhPSAwKSB7CisgICAgICAgIGdvdG8gZXhpdDsKKyAgICB9CisKKyAgICBpZiAoa2V5bGVuIDw9IDE2KSB7CisgICAgICAgIG1lbWNweShrZXksIG1kNXN1bSwga2V5bGVuKTsKKyAgICAgICAgZ290byBleGl0OworICAgIH0KKworICAgIG1lbWNweShrZXksIG1kNXN1bSwgMTYpOworCisgICAgLyoKKyAgICAgKiBrZXlbMTYuLjIzXSA9IE1ENShrZXlbIDAuLjE1XSB8fCBwd2QgfHwgSVZdKQorICAgICAqLworICAgIGlmICgocmV0ID0gbWJlZHRsc19tZF9zdGFydHMoJm1kNV9jdHgpKSAhPSAwKSB7CisgICAgICAgIGdvdG8gZXhpdDsKKyAgICB9CisgICAgaWYgKChyZXQgPSBtYmVkdGxzX21kX3VwZGF0ZSgmbWQ1X2N0eCwgbWQ1c3VtLCAxNikpICE9IDApIHsKKyAgICAgICAgZ290byBleGl0OworICAgIH0KKyAgICBpZiAoKHJldCA9IG1iZWR0bHNfbWRfdXBkYXRlKCZtZDVfY3R4LCBwd2QsIHB3ZGxlbikpICE9IDApIHsKKyAgICAgICAgZ290byBleGl0OworICAgIH0KKyAgICBpZiAoKHJldCA9IG1iZWR0bHNfbWRfdXBkYXRlKCZtZDVfY3R4LCBpdiwgOCkpICE9IDApIHsKKyAgICAgICAgZ290byBleGl0OworICAgIH0KKyAgICBpZiAoKHJldCA9IG1iZWR0bHNfbWRfZmluaXNoKCZtZDVfY3R4LCBtZDVzdW0pKSAhPSAwKSB7CisgICAgICAgIGdvdG8gZXhpdDsKKyAgICB9CisKKyAgICB1c2VfbGVuID0gMTY7CisgICAgaWYgKGtleWxlbiA8IDMyKSB7CisgICAgICAgIHVzZV9sZW4gPSBrZXlsZW4gLSAxNjsKKyAgICB9CisKKyAgICBtZW1jcHkoa2V5ICsgMTYsIG1kNXN1bSwgdXNlX2xlbik7CisKK2V4aXQ6CisgICAgbWJlZHRsc19tZF9mcmVlKCZtZDVfY3R4KTsKKyAgICBtYmVkdGxzX3BsYXRmb3JtX3plcm9pemUobWQ1c3VtLCAxNik7CisKKyAgICByZXR1cm4gcmV0OworfQorCisjaWYgZGVmaW5lZChNQkVEVExTX0RFU19DKQorLyoKKyAqIERlY3J5cHQgd2l0aCBERVMtQ0JDLCB1c2luZyBQQktERjEgZm9yIGtleSBkZXJpdmF0aW9uCisgKi8KK3N0YXRpYyBpbnQgcGVtX2Rlc19kZWNyeXB0KHVuc2lnbmVkIGNoYXIgZGVzX2l2WzhdLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgY2hhciAqYnVmLCBzaXplX3QgYnVmbGVuLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdW5zaWduZWQgY2hhciAqcHdkLCBzaXplX3QgcHdkbGVuKQoreworICAgIG1iZWR0bHNfZGVzX2NvbnRleHQgZGVzX2N0eDsKKyAgICB1bnNpZ25lZCBjaGFyIGRlc19rZXlbOF07CisgICAgaW50IHJldCA9IE1CRURUTFNfRVJSX0VSUk9SX0NPUlJVUFRJT05fREVURUNURUQ7CisKKyAgICBtYmVkdGxzX2Rlc19pbml0KCZkZXNfY3R4KTsKKworICAgIGlmICgocmV0ID0gcGVtX3Bia2RmMShkZXNfa2V5LCA4LCBkZXNfaXYsIHB3ZCwgcHdkbGVuKSkgIT0gMCkgeworICAgICAgICBnb3RvIGV4aXQ7CisgICAgfQorCisgICAgaWYgKChyZXQgPSBtYmVkdGxzX2Rlc19zZXRrZXlfZGVjKCZkZXNfY3R4LCBkZXNfa2V5KSkgIT0gMCkgeworICAgICAgICBnb3RvIGV4aXQ7CisgICAgfQorICAgIHJldCA9IG1iZWR0bHNfZGVzX2NyeXB0X2NiYygmZGVzX2N0eCwgTUJFRFRMU19ERVNfREVDUllQVCwgYnVmbGVuLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXNfaXYsIGJ1ZiwgYnVmKTsKKworZXhpdDoKKyAgICBtYmVkdGxzX2Rlc19mcmVlKCZkZXNfY3R4KTsKKyAgICBtYmVkdGxzX3BsYXRmb3JtX3plcm9pemUoZGVzX2tleSwgOCk7CisKKyAgICByZXR1cm4gcmV0OworfQorCisvKgorICogRGVjcnlwdCB3aXRoIDNERVMtQ0JDLCB1c2luZyBQQktERjEgZm9yIGtleSBkZXJpdmF0aW9uCisgKi8KK3N0YXRpYyBpbnQgcGVtX2RlczNfZGVjcnlwdCh1bnNpZ25lZCBjaGFyIGRlczNfaXZbOF0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgY2hhciAqYnVmLCBzaXplX3QgYnVmbGVuLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgKnB3ZCwgc2l6ZV90IHB3ZGxlbikKK3sKKyAgICBtYmVkdGxzX2RlczNfY29udGV4dCBkZXMzX2N0eDsKKyAgICB1bnNpZ25lZCBjaGFyIGRlczNfa2V5WzI0XTsKKyAgICBpbnQgcmV0ID0gTUJFRFRMU19FUlJfRVJST1JfQ09SUlVQVElPTl9ERVRFQ1RFRDsKKworICAgIG1iZWR0bHNfZGVzM19pbml0KCZkZXMzX2N0eCk7CisKKyAgICBpZiAoKHJldCA9IHBlbV9wYmtkZjEoZGVzM19rZXksIDI0LCBkZXMzX2l2LCBwd2QsIHB3ZGxlbikpICE9IDApIHsKKyAgICAgICAgZ290byBleGl0OworICAgIH0KKworICAgIGlmICgocmV0ID0gbWJlZHRsc19kZXMzX3NldDNrZXlfZGVjKCZkZXMzX2N0eCwgZGVzM19rZXkpKSAhPSAwKSB7CisgICAgICAgIGdvdG8gZXhpdDsKKyAgICB9CisgICAgcmV0ID0gbWJlZHRsc19kZXMzX2NyeXB0X2NiYygmZGVzM19jdHgsIE1CRURUTFNfREVTX0RFQ1JZUFQsIGJ1ZmxlbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlczNfaXYsIGJ1ZiwgYnVmKTsKKworZXhpdDoKKyAgICBtYmVkdGxzX2RlczNfZnJlZSgmZGVzM19jdHgpOworICAgIG1iZWR0bHNfcGxhdGZvcm1femVyb2l6ZShkZXMzX2tleSwgMjQpOworCisgICAgcmV0dXJuIHJldDsKK30KKyNlbmRpZiAvKiBNQkVEVExTX0RFU19DICovCisKKyNpZiBkZWZpbmVkKE1CRURUTFNfQUVTX0MpCisvKgorICogRGVjcnlwdCB3aXRoIEFFUy1YWFgtQ0JDLCB1c2luZyBQQktERjEgZm9yIGtleSBkZXJpdmF0aW9uCisgKi8KK3N0YXRpYyBpbnQgcGVtX2Flc19kZWNyeXB0KHVuc2lnbmVkIGNoYXIgYWVzX2l2WzE2XSwgdW5zaWduZWQgaW50IGtleWxlbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGNoYXIgKmJ1Ziwgc2l6ZV90IGJ1ZmxlbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgKnB3ZCwgc2l6ZV90IHB3ZGxlbikKK3sKKyAgICBtYmVkdGxzX2Flc19jb250ZXh0IGFlc19jdHg7CisgICAgdW5zaWduZWQgY2hhciBhZXNfa2V5WzMyXTsKKyAgICBpbnQgcmV0ID0gTUJFRFRMU19FUlJfRVJST1JfQ09SUlVQVElPTl9ERVRFQ1RFRDsKKworICAgIG1iZWR0bHNfYWVzX2luaXQoJmFlc19jdHgpOworCisgICAgaWYgKChyZXQgPSBwZW1fcGJrZGYxKGFlc19rZXksIGtleWxlbiwgYWVzX2l2LCBwd2QsIHB3ZGxlbikpICE9IDApIHsKKyAgICAgICAgZ290byBleGl0OworICAgIH0KKworICAgIGlmICgocmV0ID0gbWJlZHRsc19hZXNfc2V0a2V5X2RlYygmYWVzX2N0eCwgYWVzX2tleSwga2V5bGVuICogOCkpICE9IDApIHsKKyAgICAgICAgZ290byBleGl0OworICAgIH0KKyAgICByZXQgPSBtYmVkdGxzX2Flc19jcnlwdF9jYmMoJmFlc19jdHgsIE1CRURUTFNfQUVTX0RFQ1JZUFQsIGJ1ZmxlbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWVzX2l2LCBidWYsIGJ1Zik7CisKK2V4aXQ6CisgICAgbWJlZHRsc19hZXNfZnJlZSgmYWVzX2N0eCk7CisgICAgbWJlZHRsc19wbGF0Zm9ybV96ZXJvaXplKGFlc19rZXksIGtleWxlbik7CisKKyAgICByZXR1cm4gcmV0OworfQorI2VuZGlmIC8qIE1CRURUTFNfQUVTX0MgKi8KKworI2lmIGRlZmluZWQoTUJFRFRMU19ERVNfQykgfHwgZGVmaW5lZChNQkVEVExTX0FFU19DKQorc3RhdGljIGludCBwZW1fY2hlY2tfcGtjc19wYWRkaW5nKHVuc2lnbmVkIGNoYXIgKmlucHV0LCBzaXplX3QgaW5wdXRfbGVuLCBzaXplX3QgKmRhdGFfbGVuKQoreworICAgIC8qIGlucHV0X2xlbiA+IDAgaXMgZ3VhcmFudGVlZCBieSBtYmVkdGxzX3BlbV9yZWFkX2J1ZmZlcigpLiAqLworICAgIHNpemVfdCBwYWRfbGVuID0gaW5wdXRbaW5wdXRfbGVuIC0gMV07CisgICAgc2l6ZV90IGk7CisKKyAgICBpZiAocGFkX2xlbiA+IGlucHV0X2xlbikgeworICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfUEVNX1BBU1NXT1JEX01JU01BVENIOworICAgIH0KKworICAgICpkYXRhX2xlbiA9IGlucHV0X2xlbiAtIHBhZF9sZW47CisKKyAgICBmb3IgKGkgPSAqZGF0YV9sZW47IGkgPCBpbnB1dF9sZW47IGkrKykgeworICAgICAgICBpZiAoaW5wdXRbaV0gIT0gcGFkX2xlbikgeworICAgICAgICAgICAgcmV0dXJuIE1CRURUTFNfRVJSX1BFTV9QQVNTV09SRF9NSVNNQVRDSDsKKyAgICAgICAgfQorICAgIH0KKworICAgIHJldHVybiAwOworfQorI2VuZGlmIC8qIE1CRURUTFNfREVTX0MgfHwgTUJFRFRMU19BRVNfQyAqLworCisjZW5kaWYgLyogUEVNX1JGQzE0MjEgKi8KKworaW50IG1iZWR0bHNfcGVtX3JlYWRfYnVmZmVyKG1iZWR0bHNfcGVtX2NvbnRleHQgKmN0eCwgY29uc3QgY2hhciAqaGVhZGVyLCBjb25zdCBjaGFyICpmb290ZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdW5zaWduZWQgY2hhciAqZGF0YSwgY29uc3QgdW5zaWduZWQgY2hhciAqcHdkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBwd2RsZW4sIHNpemVfdCAqdXNlX2xlbikKK3sKKyAgICBpbnQgcmV0LCBlbmM7CisgICAgc2l6ZV90IGxlbjsKKyAgICB1bnNpZ25lZCBjaGFyICpidWY7CisgICAgY29uc3QgdW5zaWduZWQgY2hhciAqczEsICpzMiwgKmVuZDsKKyNpZiBkZWZpbmVkKFBFTV9SRkMxNDIxKQorICAgIHVuc2lnbmVkIGNoYXIgcGVtX2l2WzE2XTsKKyAgICBtYmVkdGxzX2NpcGhlcl90eXBlX3QgZW5jX2FsZyA9IE1CRURUTFNfQ0lQSEVSX05PTkU7CisjZWxzZQorICAgICgodm9pZCkgcHdkKTsKKyAgICAoKHZvaWQpIHB3ZGxlbik7CisjZW5kaWYgLyogUEVNX1JGQzE0MjEgKi8KKworICAgIGlmIChjdHggPT0gTlVMTCkgeworICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfUEVNX0JBRF9JTlBVVF9EQVRBOworICAgIH0KKworICAgIHMxID0gKHVuc2lnbmVkIGNoYXIgKikgc3Ryc3RyKChjb25zdCBjaGFyICopIGRhdGEsIGhlYWRlcik7CisKKyAgICBpZiAoczEgPT0gTlVMTCkgeworICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfUEVNX05PX0hFQURFUl9GT09URVJfUFJFU0VOVDsKKyAgICB9CisKKyAgICBzMiA9ICh1bnNpZ25lZCBjaGFyICopIHN0cnN0cigoY29uc3QgY2hhciAqKSBkYXRhLCBmb290ZXIpOworCisgICAgaWYgKHMyID09IE5VTEwgfHwgczIgPD0gczEpIHsKKyAgICAgICAgcmV0dXJuIE1CRURUTFNfRVJSX1BFTV9OT19IRUFERVJfRk9PVEVSX1BSRVNFTlQ7CisgICAgfQorCisgICAgczEgKz0gc3RybGVuKGhlYWRlcik7CisgICAgaWYgKCpzMSA9PSAnICcpIHsKKyAgICAgICAgczErKzsKKyAgICB9CisgICAgaWYgKCpzMSA9PSAnXHInKSB7CisgICAgICAgIHMxKys7CisgICAgfQorICAgIGlmICgqczEgPT0gJ1xuJykgeworICAgICAgICBzMSsrOworICAgIH0gZWxzZSB7CisgICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9QRU1fTk9fSEVBREVSX0ZPT1RFUl9QUkVTRU5UOworICAgIH0KKworICAgIGVuZCA9IHMyOworICAgIGVuZCArPSBzdHJsZW4oZm9vdGVyKTsKKyAgICBpZiAoKmVuZCA9PSAnICcpIHsKKyAgICAgICAgZW5kKys7CisgICAgfQorICAgIGlmICgqZW5kID09ICdccicpIHsKKyAgICAgICAgZW5kKys7CisgICAgfQorICAgIGlmICgqZW5kID09ICdcbicpIHsKKyAgICAgICAgZW5kKys7CisgICAgfQorICAgICp1c2VfbGVuID0gKHNpemVfdCkgKGVuZCAtIGRhdGEpOworCisgICAgZW5jID0gMDsKKworICAgIGlmIChzMiAtIHMxID49IDIyICYmIG1lbWNtcChzMSwgIlByb2MtVHlwZTogNCxFTkNSWVBURUQiLCAyMikgPT0gMCkgeworI2lmIGRlZmluZWQoUEVNX1JGQzE0MjEpCisgICAgICAgIGVuYysrOworCisgICAgICAgIHMxICs9IDIyOworICAgICAgICBpZiAoKnMxID09ICdccicpIHsKKyAgICAgICAgICAgIHMxKys7CisgICAgICAgIH0KKyAgICAgICAgaWYgKCpzMSA9PSAnXG4nKSB7CisgICAgICAgICAgICBzMSsrOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgcmV0dXJuIE1CRURUTFNfRVJSX1BFTV9JTlZBTElEX0RBVEE7CisgICAgICAgIH0KKworCisjaWYgZGVmaW5lZChNQkVEVExTX0RFU19DKQorICAgICAgICBpZiAoczIgLSBzMSA+PSAyMyAmJiBtZW1jbXAoczEsICJERUstSW5mbzogREVTLUVERTMtQ0JDLCIsIDIzKSA9PSAwKSB7CisgICAgICAgICAgICBlbmNfYWxnID0gTUJFRFRMU19DSVBIRVJfREVTX0VERTNfQ0JDOworCisgICAgICAgICAgICBzMSArPSAyMzsKKyAgICAgICAgICAgIGlmIChzMiAtIHMxIDwgMTYgfHwgcGVtX2dldF9pdihzMSwgcGVtX2l2LCA4KSAhPSAwKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIE1CRURUTFNfRVJSX1BFTV9JTlZBTElEX0VOQ19JVjsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgczEgKz0gMTY7CisgICAgICAgIH0gZWxzZSBpZiAoczIgLSBzMSA+PSAxOCAmJiBtZW1jbXAoczEsICJERUstSW5mbzogREVTLUNCQywiLCAxOCkgPT0gMCkgeworICAgICAgICAgICAgZW5jX2FsZyA9IE1CRURUTFNfQ0lQSEVSX0RFU19DQkM7CisKKyAgICAgICAgICAgIHMxICs9IDE4OworICAgICAgICAgICAgaWYgKHMyIC0gczEgPCAxNiB8fCBwZW1fZ2V0X2l2KHMxLCBwZW1faXYsIDgpICE9IDApIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfUEVNX0lOVkFMSURfRU5DX0lWOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBzMSArPSAxNjsKKyAgICAgICAgfQorI2VuZGlmIC8qIE1CRURUTFNfREVTX0MgKi8KKworI2lmIGRlZmluZWQoTUJFRFRMU19BRVNfQykKKyAgICAgICAgaWYgKHMyIC0gczEgPj0gMTQgJiYgbWVtY21wKHMxLCAiREVLLUluZm86IEFFUy0iLCAxNCkgPT0gMCkgeworICAgICAgICAgICAgaWYgKHMyIC0gczEgPCAyMikgeworICAgICAgICAgICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9QRU1fVU5LTk9XTl9FTkNfQUxHOworICAgICAgICAgICAgfSBlbHNlIGlmIChtZW1jbXAoczEsICJERUstSW5mbzogQUVTLTEyOC1DQkMsIiwgMjIpID09IDApIHsKKyAgICAgICAgICAgICAgICBlbmNfYWxnID0gTUJFRFRMU19DSVBIRVJfQUVTXzEyOF9DQkM7CisgICAgICAgICAgICB9IGVsc2UgaWYgKG1lbWNtcChzMSwgIkRFSy1JbmZvOiBBRVMtMTkyLUNCQywiLCAyMikgPT0gMCkgeworICAgICAgICAgICAgICAgIGVuY19hbGcgPSBNQkVEVExTX0NJUEhFUl9BRVNfMTkyX0NCQzsKKyAgICAgICAgICAgIH0gZWxzZSBpZiAobWVtY21wKHMxLCAiREVLLUluZm86IEFFUy0yNTYtQ0JDLCIsIDIyKSA9PSAwKSB7CisgICAgICAgICAgICAgICAgZW5jX2FsZyA9IE1CRURUTFNfQ0lQSEVSX0FFU18yNTZfQ0JDOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfUEVNX1VOS05PV05fRU5DX0FMRzsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgczEgKz0gMjI7CisgICAgICAgICAgICBpZiAoczIgLSBzMSA8IDMyIHx8IHBlbV9nZXRfaXYoczEsIHBlbV9pdiwgMTYpICE9IDApIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfUEVNX0lOVkFMSURfRU5DX0lWOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBzMSArPSAzMjsKKyAgICAgICAgfQorI2VuZGlmIC8qIE1CRURUTFNfQUVTX0MgKi8KKworICAgICAgICBpZiAoZW5jX2FsZyA9PSBNQkVEVExTX0NJUEhFUl9OT05FKSB7CisgICAgICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfUEVNX1VOS05PV05fRU5DX0FMRzsKKyAgICAgICAgfQorCisgICAgICAgIGlmICgqczEgPT0gJ1xyJykgeworICAgICAgICAgICAgczErKzsKKyAgICAgICAgfQorICAgICAgICBpZiAoKnMxID09ICdcbicpIHsKKyAgICAgICAgICAgIHMxKys7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfUEVNX0lOVkFMSURfREFUQTsKKyAgICAgICAgfQorI2Vsc2UKKyAgICAgICAgcmV0dXJuIE1CRURUTFNfRVJSX1BFTV9GRUFUVVJFX1VOQVZBSUxBQkxFOworI2VuZGlmIC8qIFBFTV9SRkMxNDIxICovCisgICAgfQorCisgICAgaWYgKHMxID49IHMyKSB7CisgICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9QRU1fSU5WQUxJRF9EQVRBOworICAgIH0KKworICAgIHJldCA9IG1iZWR0bHNfYmFzZTY0X2RlY29kZShOVUxMLCAwLCAmbGVuLCBzMSwgKHNpemVfdCkgKHMyIC0gczEpKTsKKworICAgIGlmIChyZXQgPT0gTUJFRFRMU19FUlJfQkFTRTY0X0lOVkFMSURfQ0hBUkFDVEVSKSB7CisgICAgICAgIHJldHVybiBNQkVEVExTX0VSUk9SX0FERChNQkVEVExTX0VSUl9QRU1fSU5WQUxJRF9EQVRBLCByZXQpOworICAgIH0KKworICAgIGlmIChsZW4gPT0gMCkgeworICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfUEVNX0JBRF9JTlBVVF9EQVRBOworICAgIH0KKworICAgIGlmICgoYnVmID0gbWJlZHRsc19jYWxsb2MoMSwgbGVuKSkgPT0gTlVMTCkgeworICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfUEVNX0FMTE9DX0ZBSUxFRDsKKyAgICB9CisKKyAgICBpZiAoKHJldCA9IG1iZWR0bHNfYmFzZTY0X2RlY29kZShidWYsIGxlbiwgJmxlbiwgczEsIChzaXplX3QpIChzMiAtIHMxKSkpICE9IDApIHsKKyAgICAgICAgbWJlZHRsc196ZXJvaXplX2FuZF9mcmVlKGJ1ZiwgbGVuKTsKKyAgICAgICAgcmV0dXJuIE1CRURUTFNfRVJST1JfQUREKE1CRURUTFNfRVJSX1BFTV9JTlZBTElEX0RBVEEsIHJldCk7CisgICAgfQorCisgICAgaWYgKGVuYyAhPSAwKSB7CisjaWYgZGVmaW5lZChQRU1fUkZDMTQyMSkKKyAgICAgICAgaWYgKHB3ZCA9PSBOVUxMKSB7CisgICAgICAgICAgICBtYmVkdGxzX3plcm9pemVfYW5kX2ZyZWUoYnVmLCBsZW4pOworICAgICAgICAgICAgcmV0dXJuIE1CRURUTFNfRVJSX1BFTV9QQVNTV09SRF9SRVFVSVJFRDsKKyAgICAgICAgfQorCisgICAgICAgIHJldCA9IDA7CisKKyNpZiBkZWZpbmVkKE1CRURUTFNfREVTX0MpCisgICAgICAgIGlmIChlbmNfYWxnID09IE1CRURUTFNfQ0lQSEVSX0RFU19FREUzX0NCQykgeworICAgICAgICAgICAgcmV0ID0gcGVtX2RlczNfZGVjcnlwdChwZW1faXYsIGJ1ZiwgbGVuLCBwd2QsIHB3ZGxlbik7CisgICAgICAgIH0gZWxzZSBpZiAoZW5jX2FsZyA9PSBNQkVEVExTX0NJUEhFUl9ERVNfQ0JDKSB7CisgICAgICAgICAgICByZXQgPSBwZW1fZGVzX2RlY3J5cHQocGVtX2l2LCBidWYsIGxlbiwgcHdkLCBwd2RsZW4pOworICAgICAgICB9CisjZW5kaWYgLyogTUJFRFRMU19ERVNfQyAqLworCisjaWYgZGVmaW5lZChNQkVEVExTX0FFU19DKQorICAgICAgICBpZiAoZW5jX2FsZyA9PSBNQkVEVExTX0NJUEhFUl9BRVNfMTI4X0NCQykgeworICAgICAgICAgICAgcmV0ID0gcGVtX2Flc19kZWNyeXB0KHBlbV9pdiwgMTYsIGJ1ZiwgbGVuLCBwd2QsIHB3ZGxlbik7CisgICAgICAgIH0gZWxzZSBpZiAoZW5jX2FsZyA9PSBNQkVEVExTX0NJUEhFUl9BRVNfMTkyX0NCQykgeworICAgICAgICAgICAgcmV0ID0gcGVtX2Flc19kZWNyeXB0KHBlbV9pdiwgMjQsIGJ1ZiwgbGVuLCBwd2QsIHB3ZGxlbik7CisgICAgICAgIH0gZWxzZSBpZiAoZW5jX2FsZyA9PSBNQkVEVExTX0NJUEhFUl9BRVNfMjU2X0NCQykgeworICAgICAgICAgICAgcmV0ID0gcGVtX2Flc19kZWNyeXB0KHBlbV9pdiwgMzIsIGJ1ZiwgbGVuLCBwd2QsIHB3ZGxlbik7CisgICAgICAgIH0KKyNlbmRpZiAvKiBNQkVEVExTX0FFU19DICovCisKKyAgICAgICAgaWYgKHJldCAhPSAwKSB7CisgICAgICAgICAgICBtYmVkdGxzX3plcm9pemVfYW5kX2ZyZWUoYnVmLCBsZW4pOworICAgICAgICAgICAgcmV0dXJuIHJldDsKKyAgICAgICAgfQorCisgICAgICAgIC8qIENoZWNrIFBLQ1MgcGFkZGluZyBhbmQgdXBkYXRlIGRhdGEgbGVuZ3RoIGJhc2VkIG9uIHBhZGRpbmcgaW5mby4KKyAgICAgICAgICogVGhpcyBjYW4gYmUgdXNlZCB0byBkZXRlY3QgaW52YWxpZCBwYWRkaW5nIGRhdGEgYW5kIHBhc3N3b3JkCisgICAgICAgICAqIG1pc21hdGNoZXMuICovCisgICAgICAgIHNpemVfdCB1bnBhZGRlZF9sZW47CisgICAgICAgIHJldCA9IHBlbV9jaGVja19wa2NzX3BhZGRpbmcoYnVmLCBsZW4sICZ1bnBhZGRlZF9sZW4pOworICAgICAgICBpZiAocmV0ICE9IDApIHsKKyAgICAgICAgICAgIG1iZWR0bHNfemVyb2l6ZV9hbmRfZnJlZShidWYsIGxlbik7CisgICAgICAgICAgICByZXR1cm4gcmV0OworICAgICAgICB9CisgICAgICAgIGxlbiA9IHVucGFkZGVkX2xlbjsKKyNlbHNlCisgICAgICAgIG1iZWR0bHNfemVyb2l6ZV9hbmRfZnJlZShidWYsIGxlbik7CisgICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9QRU1fRkVBVFVSRV9VTkFWQUlMQUJMRTsKKyNlbmRpZiAvKiBQRU1fUkZDMTQyMSAqLworICAgIH0KKworICAgIGN0eC0+YnVmID0gYnVmOworICAgIGN0eC0+YnVmbGVuID0gbGVuOworCisgICAgcmV0dXJuIDA7Cit9CisKK3ZvaWQgbWJlZHRsc19wZW1fZnJlZShtYmVkdGxzX3BlbV9jb250ZXh0ICpjdHgpCit7CisgICAgaWYgKGN0eCA9PSBOVUxMKSB7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBpZiAoY3R4LT5idWYgIT0gTlVMTCkgeworICAgICAgICBtYmVkdGxzX3plcm9pemVfYW5kX2ZyZWUoY3R4LT5idWYsIGN0eC0+YnVmbGVuKTsKKyAgICB9CisgICAgbWJlZHRsc19mcmVlKGN0eC0+aW5mbyk7CisKKyAgICBtYmVkdGxzX3BsYXRmb3JtX3plcm9pemUoY3R4LCBzaXplb2YobWJlZHRsc19wZW1fY29udGV4dCkpOworfQorI2VuZGlmIC8qIE1CRURUTFNfUEVNX1BBUlNFX0MgKi8KKworI2lmIGRlZmluZWQoTUJFRFRMU19QRU1fV1JJVEVfQykKK2ludCBtYmVkdGxzX3BlbV93cml0ZV9idWZmZXIoY29uc3QgY2hhciAqaGVhZGVyLCBjb25zdCBjaGFyICpmb290ZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgKmRlcl9kYXRhLCBzaXplX3QgZGVyX2xlbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgY2hhciAqYnVmLCBzaXplX3QgYnVmX2xlbiwgc2l6ZV90ICpvbGVuKQoreworICAgIGludCByZXQgPSBNQkVEVExTX0VSUl9FUlJPUl9DT1JSVVBUSU9OX0RFVEVDVEVEOworICAgIHVuc2lnbmVkIGNoYXIgKmVuY29kZV9idWYgPSBOVUxMLCAqYywgKnAgPSBidWY7CisgICAgc2l6ZV90IGxlbiA9IDAsIHVzZV9sZW4sIGFkZF9sZW4gPSAwOworCisgICAgbWJlZHRsc19iYXNlNjRfZW5jb2RlKE5VTEwsIDAsICZ1c2VfbGVuLCBkZXJfZGF0YSwgZGVyX2xlbik7CisgICAgYWRkX2xlbiA9IHN0cmxlbihoZWFkZXIpICsgc3RybGVuKGZvb3RlcikgKyAoKCh1c2VfbGVuID4gMikgPyAodXNlX2xlbiAtIDIpIDogMCkgLyA2NCkgKyAxOworCisgICAgaWYgKHVzZV9sZW4gKyBhZGRfbGVuID4gYnVmX2xlbikgeworICAgICAgICAqb2xlbiA9IHVzZV9sZW4gKyBhZGRfbGVuOworICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfQkFTRTY0X0JVRkZFUl9UT09fU01BTEw7CisgICAgfQorCisgICAgaWYgKHVzZV9sZW4gIT0gMCAmJgorICAgICAgICAoKGVuY29kZV9idWYgPSBtYmVkdGxzX2NhbGxvYygxLCB1c2VfbGVuKSkgPT0gTlVMTCkpIHsKKyAgICAgICAgcmV0dXJuIE1CRURUTFNfRVJSX1BFTV9BTExPQ19GQUlMRUQ7CisgICAgfQorCisgICAgaWYgKChyZXQgPSBtYmVkdGxzX2Jhc2U2NF9lbmNvZGUoZW5jb2RlX2J1ZiwgdXNlX2xlbiwgJnVzZV9sZW4sIGRlcl9kYXRhLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlcl9sZW4pKSAhPSAwKSB7CisgICAgICAgIG1iZWR0bHNfZnJlZShlbmNvZGVfYnVmKTsKKyAgICAgICAgcmV0dXJuIHJldDsKKyAgICB9CisKKyAgICBtZW1jcHkocCwgaGVhZGVyLCBzdHJsZW4oaGVhZGVyKSk7CisgICAgcCArPSBzdHJsZW4oaGVhZGVyKTsKKyAgICBjID0gZW5jb2RlX2J1ZjsKKworICAgIHdoaWxlICh1c2VfbGVuKSB7CisgICAgICAgIGxlbiA9ICh1c2VfbGVuID4gNjQpID8gNjQgOiB1c2VfbGVuOworICAgICAgICBtZW1jcHkocCwgYywgbGVuKTsKKyAgICAgICAgdXNlX2xlbiAtPSBsZW47CisgICAgICAgIHAgKz0gbGVuOworICAgICAgICBjICs9IGxlbjsKKyAgICAgICAgKnArKyA9ICdcbic7CisgICAgfQorCisgICAgbWVtY3B5KHAsIGZvb3Rlciwgc3RybGVuKGZvb3RlcikpOworICAgIHAgKz0gc3RybGVuKGZvb3Rlcik7CisKKyAgICAqcCsrID0gJ1wwJzsKKyAgICAqb2xlbiA9IChzaXplX3QpIChwIC0gYnVmKTsKKworICAgIC8qIENsZWFuIGFueSByZW1haW5pbmcgZGF0YSBwcmV2aW91c2x5IHdyaXR0ZW4gdG8gdGhlIGJ1ZmZlciAqLworICAgIG1lbXNldChidWYgKyAqb2xlbiwgMCwgYnVmX2xlbiAtICpvbGVuKTsKKworICAgIG1iZWR0bHNfZnJlZShlbmNvZGVfYnVmKTsKKyAgICByZXR1cm4gMDsKK30KKyNlbmRpZiAvKiBNQkVEVExTX1BFTV9XUklURV9DICovCisjZW5kaWYgLyogTUJFRFRMU19QRU1fUEFSU0VfQyB8fCBNQkVEVExTX1BFTV9XUklURV9DICovCmRpZmYgLS1naXQgYS9saWJyYXJ5L3BrLmMgYi90Zi1wc2EtY3J5cHRvL2RyaXZlcnMvYnVpbHRpbi9zcmMvcGsuYwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gbGlicmFyeS9way5jCnJlbmFtZSB0byB0Zi1wc2EtY3J5cHRvL2RyaXZlcnMvYnVpbHRpbi9zcmMvcGsuYwpkaWZmIC0tZ2l0IGEvbGlicmFyeS9wa19lY2MuYyBiL3RmLXBzYS1jcnlwdG8vZHJpdmVycy9idWlsdGluL3NyYy9wa19lY2MuYwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gbGlicmFyeS9wa19lY2MuYwpyZW5hbWUgdG8gdGYtcHNhLWNyeXB0by9kcml2ZXJzL2J1aWx0aW4vc3JjL3BrX2VjYy5jCmRpZmYgLS1naXQgYS9saWJyYXJ5L3BrX2ludGVybmFsLmggYi90Zi1wc2EtY3J5cHRvL2RyaXZlcnMvYnVpbHRpbi9zcmMvcGtfaW50ZXJuYWwuaApzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gbGlicmFyeS9wa19pbnRlcm5hbC5oCnJlbmFtZSB0byB0Zi1wc2EtY3J5cHRvL2RyaXZlcnMvYnVpbHRpbi9zcmMvcGtfaW50ZXJuYWwuaApkaWZmIC0tZ2l0IGEvdGYtcHNhLWNyeXB0by9kcml2ZXJzL2J1aWx0aW4vc3JjL3BrX3dyYXAuYyBiL3RmLXBzYS1jcnlwdG8vZHJpdmVycy9idWlsdGluL3NyYy9wa193cmFwLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODcxMDg4OQotLS0gL2Rldi9udWxsCisrKyBiL3RmLXBzYS1jcnlwdG8vZHJpdmVycy9idWlsdGluL3NyYy9wa193cmFwLmMKQEAgLTAsMCArMSwxNTc4IEBACisvKgorICogIFB1YmxpYyBLZXkgYWJzdHJhY3Rpb24gbGF5ZXI6IHdyYXBwZXIgZnVuY3Rpb25zCisgKgorICogIENvcHlyaWdodCBUaGUgTWJlZCBUTFMgQ29udHJpYnV0b3JzCisgKiAgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjAgT1IgR1BMLTIuMC1vci1sYXRlcgorICovCisKKyNpbmNsdWRlICJjb21tb24uaCIKKworI2luY2x1ZGUgIm1iZWR0bHMvcGxhdGZvcm1fdXRpbC5oIgorCisjaWYgZGVmaW5lZChNQkVEVExTX1BLX0MpCisjaW5jbHVkZSAicGtfd3JhcC5oIgorI2luY2x1ZGUgInBrX2ludGVybmFsLmgiCisjaW5jbHVkZSAibWJlZHRscy9lcnJvci5oIgorI2luY2x1ZGUgIm1iZWR0bHMvcHNhX3V0aWwuaCIKKworLyogRXZlbiBpZiBSU0Egbm90IGFjdGl2YXRlZCwgZm9yIHRoZSBzYWtlIG9mIFJTQS1hbHQgKi8KKyNpbmNsdWRlICJtYmVkdGxzL3JzYS5oIgorCisjaWYgZGVmaW5lZChNQkVEVExTX0VDUF9DKQorI2luY2x1ZGUgIm1iZWR0bHMvZWNwLmgiCisjZW5kaWYKKworI2lmIGRlZmluZWQoTUJFRFRMU19FQ0RTQV9DKQorI2luY2x1ZGUgIm1iZWR0bHMvZWNkc2EuaCIKKyNlbmRpZgorCisjaWYgZGVmaW5lZChNQkVEVExTX1VTRV9QU0FfQ1JZUFRPKQorI2luY2x1ZGUgInBzYV91dGlsX2ludGVybmFsLmgiCisjaW5jbHVkZSAicHNhL2NyeXB0by5oIgorI2luY2x1ZGUgIm1iZWR0bHMvcHNhX3V0aWwuaCIKKworI2lmIGRlZmluZWQoTUJFRFRMU19SU0FfQykKKyNpbmNsdWRlICJwa3dyaXRlLmgiCisjaW5jbHVkZSAicnNhX2ludGVybmFsLmgiCisjZW5kaWYKKworI2lmIGRlZmluZWQoTUJFRFRMU19QS19DQU5fRUNEU0FfU09NRSkKKyNpbmNsdWRlICJtYmVkdGxzL2FzbjF3cml0ZS5oIgorI2luY2x1ZGUgIm1iZWR0bHMvYXNuMS5oIgorI2VuZGlmCisjZW5kaWYgIC8qIE1CRURUTFNfVVNFX1BTQV9DUllQVE8gKi8KKworI2luY2x1ZGUgIm1iZWR0bHMvcGxhdGZvcm0uaCIKKworI2luY2x1ZGUgPGxpbWl0cy5oPgorI2luY2x1ZGUgPHN0ZGludC5oPgorI2luY2x1ZGUgPHN0cmluZy5oPgorCisjaWYgZGVmaW5lZChNQkVEVExTX1JTQV9DKQorc3RhdGljIGludCByc2FfY2FuX2RvKG1iZWR0bHNfcGtfdHlwZV90IHR5cGUpCit7CisgICAgcmV0dXJuIHR5cGUgPT0gTUJFRFRMU19QS19SU0EgfHwKKyAgICAgICAgICAgdHlwZSA9PSBNQkVEVExTX1BLX1JTQVNTQV9QU1M7Cit9CisKK3N0YXRpYyBzaXplX3QgcnNhX2dldF9iaXRsZW4obWJlZHRsc19wa19jb250ZXh0ICpwaykKK3sKKyAgICBjb25zdCBtYmVkdGxzX3JzYV9jb250ZXh0ICpyc2EgPSAoY29uc3QgbWJlZHRsc19yc2FfY29udGV4dCAqKSBway0+cGtfY3R4OworICAgIHJldHVybiBtYmVkdGxzX3JzYV9nZXRfYml0bGVuKHJzYSk7Cit9CisKKyNpZiBkZWZpbmVkKE1CRURUTFNfVVNFX1BTQV9DUllQVE8pCitzdGF0aWMgaW50IHJzYV92ZXJpZnlfd3JhcChtYmVkdGxzX3BrX2NvbnRleHQgKnBrLCBtYmVkdGxzX21kX3R5cGVfdCBtZF9hbGcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1bnNpZ25lZCBjaGFyICpoYXNoLCBzaXplX3QgaGFzaF9sZW4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1bnNpZ25lZCBjaGFyICpzaWcsIHNpemVfdCBzaWdfbGVuKQoreworICAgIG1iZWR0bHNfcnNhX2NvbnRleHQgKnJzYSA9IChtYmVkdGxzX3JzYV9jb250ZXh0ICopIHBrLT5wa19jdHg7CisgICAgaW50IHJldCA9IE1CRURUTFNfRVJSX0VSUk9SX0NPUlJVUFRJT05fREVURUNURUQ7CisgICAgcHNhX2tleV9hdHRyaWJ1dGVzX3QgYXR0cmlidXRlcyA9IFBTQV9LRVlfQVRUUklCVVRFU19JTklUOworICAgIG1iZWR0bHNfc3ZjX2tleV9pZF90IGtleV9pZCA9IE1CRURUTFNfU1ZDX0tFWV9JRF9JTklUOworICAgIHBzYV9zdGF0dXNfdCBzdGF0dXM7CisgICAgaW50IGtleV9sZW47CisgICAgdW5zaWduZWQgY2hhciBidWZbTUJFRFRMU19QS19SU0FfUFVCX0RFUl9NQVhfQllURVNdOworICAgIHVuc2lnbmVkIGNoYXIgKnAgPSBidWYgKyBzaXplb2YoYnVmKTsKKyAgICBwc2FfYWxnb3JpdGhtX3QgcHNhX2FsZ19tZDsKKyAgICBzaXplX3QgcnNhX2xlbiA9IG1iZWR0bHNfcnNhX2dldF9sZW4ocnNhKTsKKworI2lmIFNJWkVfTUFYID4gVUlOVF9NQVgKKyAgICBpZiAobWRfYWxnID09IE1CRURUTFNfTURfTk9ORSAmJiBVSU5UX01BWCA8IGhhc2hfbGVuKSB7CisgICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9QS19CQURfSU5QVVRfREFUQTsKKyAgICB9CisjZW5kaWYKKworICAgIGlmIChtYmVkdGxzX3JzYV9nZXRfcGFkZGluZ19tb2RlKHJzYSkgPT0gTUJFRFRMU19SU0FfUEtDU19WMjEpIHsKKyAgICAgICAgcHNhX2FsZ19tZCA9IFBTQV9BTEdfUlNBX1BTUyhtYmVkdGxzX21kX3BzYV9hbGdfZnJvbV90eXBlKG1kX2FsZykpOworICAgIH0gZWxzZSB7CisgICAgICAgIHBzYV9hbGdfbWQgPSBQU0FfQUxHX1JTQV9QS0NTMVYxNV9TSUdOKG1iZWR0bHNfbWRfcHNhX2FsZ19mcm9tX3R5cGUobWRfYWxnKSk7CisgICAgfQorCisgICAgaWYgKHNpZ19sZW4gPCByc2FfbGVuKSB7CisgICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9SU0FfVkVSSUZZX0ZBSUxFRDsKKyAgICB9CisKKyAgICBrZXlfbGVuID0gbWJlZHRsc19yc2Ffd3JpdGVfcHVia2V5KHJzYSwgYnVmLCAmcCk7CisgICAgaWYgKGtleV9sZW4gPD0gMCkgeworICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfUEtfQkFEX0lOUFVUX0RBVEE7CisgICAgfQorCisgICAgcHNhX3NldF9rZXlfdXNhZ2VfZmxhZ3MoJmF0dHJpYnV0ZXMsIFBTQV9LRVlfVVNBR0VfVkVSSUZZX0hBU0gpOworICAgIHBzYV9zZXRfa2V5X2FsZ29yaXRobSgmYXR0cmlidXRlcywgcHNhX2FsZ19tZCk7CisgICAgcHNhX3NldF9rZXlfdHlwZSgmYXR0cmlidXRlcywgUFNBX0tFWV9UWVBFX1JTQV9QVUJMSUNfS0VZKTsKKworICAgIHN0YXR1cyA9IHBzYV9pbXBvcnRfa2V5KCZhdHRyaWJ1dGVzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ1ZiArIHNpemVvZihidWYpIC0ga2V5X2xlbiwga2V5X2xlbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAma2V5X2lkKTsKKyAgICBpZiAoc3RhdHVzICE9IFBTQV9TVUNDRVNTKSB7CisgICAgICAgIHJldCA9IFBTQV9QS19UT19NQkVEVExTX0VSUihzdGF0dXMpOworICAgICAgICBnb3RvIGNsZWFudXA7CisgICAgfQorCisgICAgc3RhdHVzID0gcHNhX3ZlcmlmeV9oYXNoKGtleV9pZCwgcHNhX2FsZ19tZCwgaGFzaCwgaGFzaF9sZW4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpZywgc2lnX2xlbik7CisgICAgaWYgKHN0YXR1cyAhPSBQU0FfU1VDQ0VTUykgeworICAgICAgICByZXQgPSBQU0FfUEtfUlNBX1RPX01CRURUTFNfRVJSKHN0YXR1cyk7CisgICAgICAgIGdvdG8gY2xlYW51cDsKKyAgICB9CisgICAgcmV0ID0gMDsKKworY2xlYW51cDoKKyAgICBzdGF0dXMgPSBwc2FfZGVzdHJveV9rZXkoa2V5X2lkKTsKKyAgICBpZiAocmV0ID09IDAgJiYgc3RhdHVzICE9IFBTQV9TVUNDRVNTKSB7CisgICAgICAgIHJldCA9IFBTQV9QS19UT19NQkVEVExTX0VSUihzdGF0dXMpOworICAgIH0KKworICAgIHJldHVybiByZXQ7Cit9CisjZWxzZSAvKiBNQkVEVExTX1VTRV9QU0FfQ1JZUFRPICovCitzdGF0aWMgaW50IHJzYV92ZXJpZnlfd3JhcChtYmVkdGxzX3BrX2NvbnRleHQgKnBrLCBtYmVkdGxzX21kX3R5cGVfdCBtZF9hbGcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1bnNpZ25lZCBjaGFyICpoYXNoLCBzaXplX3QgaGFzaF9sZW4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1bnNpZ25lZCBjaGFyICpzaWcsIHNpemVfdCBzaWdfbGVuKQoreworICAgIGludCByZXQgPSBNQkVEVExTX0VSUl9FUlJPUl9DT1JSVVBUSU9OX0RFVEVDVEVEOworICAgIG1iZWR0bHNfcnNhX2NvbnRleHQgKnJzYSA9IChtYmVkdGxzX3JzYV9jb250ZXh0ICopIHBrLT5wa19jdHg7CisgICAgc2l6ZV90IHJzYV9sZW4gPSBtYmVkdGxzX3JzYV9nZXRfbGVuKHJzYSk7CisKKyNpZiBTSVpFX01BWCA+IFVJTlRfTUFYCisgICAgaWYgKG1kX2FsZyA9PSBNQkVEVExTX01EX05PTkUgJiYgVUlOVF9NQVggPCBoYXNoX2xlbikgeworICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfUEtfQkFEX0lOUFVUX0RBVEE7CisgICAgfQorI2VuZGlmCisKKyAgICBpZiAoc2lnX2xlbiA8IHJzYV9sZW4pIHsKKyAgICAgICAgcmV0dXJuIE1CRURUTFNfRVJSX1JTQV9WRVJJRllfRkFJTEVEOworICAgIH0KKworICAgIGlmICgocmV0ID0gbWJlZHRsc19yc2FfcGtjczFfdmVyaWZ5KHJzYSwgbWRfYWxnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh1bnNpZ25lZCBpbnQpIGhhc2hfbGVuLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhc2gsIHNpZykpICE9IDApIHsKKyAgICAgICAgcmV0dXJuIHJldDsKKyAgICB9CisKKyAgICAvKiBUaGUgYnVmZmVyIGNvbnRhaW5zIGEgdmFsaWQgc2lnbmF0dXJlIGZvbGxvd2VkIGJ5IGV4dHJhIGRhdGEuCisgICAgICogV2UgaGF2ZSBhIHNwZWNpYWwgZXJyb3IgY29kZSBmb3IgdGhhdCBzbyB0aGF0IHNvIHRoYXQgY2FsbGVycyBjYW4KKyAgICAgKiB1c2UgbWJlZHRsc19wa192ZXJpZnkoKSB0byBjaGVjayAiRG9lcyB0aGUgYnVmZmVyIHN0YXJ0IHdpdGggYQorICAgICAqIHZhbGlkIHNpZ25hdHVyZT8iIGFuZCBub3QganVzdCAiRG9lcyB0aGUgYnVmZmVyIGNvbnRhaW4gYSB2YWxpZAorICAgICAqIHNpZ25hdHVyZT8iLiAqLworICAgIGlmIChzaWdfbGVuID4gcnNhX2xlbikgeworICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfUEtfU0lHX0xFTl9NSVNNQVRDSDsKKyAgICB9CisKKyAgICByZXR1cm4gMDsKK30KKyNlbmRpZiAvKiBNQkVEVExTX1VTRV9QU0FfQ1JZUFRPICovCisKKyNpZiBkZWZpbmVkKE1CRURUTFNfVVNFX1BTQV9DUllQVE8pCitpbnQgIG1iZWR0bHNfcGtfcHNhX3JzYV9zaWduX2V4dChwc2FfYWxnb3JpdGhtX3QgYWxnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWJlZHRsc19yc2FfY29udGV4dCAqcnNhX2N0eCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgKmhhc2gsIHNpemVfdCBoYXNoX2xlbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGNoYXIgKnNpZywgc2l6ZV90IHNpZ19zaXplLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90ICpzaWdfbGVuKQoreworICAgIGludCByZXQgPSBNQkVEVExTX0VSUl9FUlJPUl9DT1JSVVBUSU9OX0RFVEVDVEVEOworICAgIHBzYV9rZXlfYXR0cmlidXRlc190IGF0dHJpYnV0ZXMgPSBQU0FfS0VZX0FUVFJJQlVURVNfSU5JVDsKKyAgICBtYmVkdGxzX3N2Y19rZXlfaWRfdCBrZXlfaWQgPSBNQkVEVExTX1NWQ19LRVlfSURfSU5JVDsKKyAgICBwc2Ffc3RhdHVzX3Qgc3RhdHVzOworICAgIGludCBrZXlfbGVuOworICAgIHVuc2lnbmVkIGNoYXIgKmJ1ZiA9IE5VTEw7CisgICAgdW5zaWduZWQgY2hhciAqcDsKKworICAgIGJ1ZiA9IG1iZWR0bHNfY2FsbG9jKDEsIE1CRURUTFNfUEtfUlNBX1BSVl9ERVJfTUFYX0JZVEVTKTsKKyAgICBpZiAoYnVmID09IE5VTEwpIHsKKyAgICAgICAgcmV0dXJuIE1CRURUTFNfRVJSX1BLX0FMTE9DX0ZBSUxFRDsKKyAgICB9CisgICAgcCA9IGJ1ZiArIE1CRURUTFNfUEtfUlNBX1BSVl9ERVJfTUFYX0JZVEVTOworCisgICAgKnNpZ19sZW4gPSBtYmVkdGxzX3JzYV9nZXRfbGVuKHJzYV9jdHgpOworICAgIGlmIChzaWdfc2l6ZSA8ICpzaWdfbGVuKSB7CisgICAgICAgIG1iZWR0bHNfZnJlZShidWYpOworICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfUEtfQlVGRkVSX1RPT19TTUFMTDsKKyAgICB9CisKKyAgICBrZXlfbGVuID0gbWJlZHRsc19yc2Ffd3JpdGVfa2V5KHJzYV9jdHgsIGJ1ZiwgJnApOworICAgIGlmIChrZXlfbGVuIDw9IDApIHsKKyAgICAgICAgbWJlZHRsc19mcmVlKGJ1Zik7CisgICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9QS19CQURfSU5QVVRfREFUQTsKKyAgICB9CisgICAgcHNhX3NldF9rZXlfdXNhZ2VfZmxhZ3MoJmF0dHJpYnV0ZXMsIFBTQV9LRVlfVVNBR0VfU0lHTl9IQVNIKTsKKyAgICBwc2Ffc2V0X2tleV9hbGdvcml0aG0oJmF0dHJpYnV0ZXMsIGFsZyk7CisgICAgcHNhX3NldF9rZXlfdHlwZSgmYXR0cmlidXRlcywgUFNBX0tFWV9UWVBFX1JTQV9LRVlfUEFJUik7CisKKyAgICBzdGF0dXMgPSBwc2FfaW1wb3J0X2tleSgmYXR0cmlidXRlcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBidWYgKyBNQkVEVExTX1BLX1JTQV9QUlZfREVSX01BWF9CWVRFUyAtIGtleV9sZW4sIGtleV9sZW4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgJmtleV9pZCk7CisgICAgaWYgKHN0YXR1cyAhPSBQU0FfU1VDQ0VTUykgeworICAgICAgICByZXQgPSBQU0FfUEtfVE9fTUJFRFRMU19FUlIoc3RhdHVzKTsKKyAgICAgICAgZ290byBjbGVhbnVwOworICAgIH0KKyAgICBzdGF0dXMgPSBwc2Ffc2lnbl9oYXNoKGtleV9pZCwgYWxnLCBoYXNoLCBoYXNoX2xlbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpZywgc2lnX3NpemUsIHNpZ19sZW4pOworICAgIGlmIChzdGF0dXMgIT0gUFNBX1NVQ0NFU1MpIHsKKyAgICAgICAgcmV0ID0gUFNBX1BLX1JTQV9UT19NQkVEVExTX0VSUihzdGF0dXMpOworICAgICAgICBnb3RvIGNsZWFudXA7CisgICAgfQorCisgICAgcmV0ID0gMDsKKworY2xlYW51cDoKKyAgICBtYmVkdGxzX2ZyZWUoYnVmKTsKKyAgICBzdGF0dXMgPSBwc2FfZGVzdHJveV9rZXkoa2V5X2lkKTsKKyAgICBpZiAocmV0ID09IDAgJiYgc3RhdHVzICE9IFBTQV9TVUNDRVNTKSB7CisgICAgICAgIHJldCA9IFBTQV9QS19UT19NQkVEVExTX0VSUihzdGF0dXMpOworICAgIH0KKyAgICByZXR1cm4gcmV0OworfQorI2VuZGlmIC8qIE1CRURUTFNfVVNFX1BTQV9DUllQVE8gKi8KKworI2lmIGRlZmluZWQoTUJFRFRMU19VU0VfUFNBX0NSWVBUTykKK3N0YXRpYyBpbnQgcnNhX3NpZ25fd3JhcChtYmVkdGxzX3BrX2NvbnRleHQgKnBrLCBtYmVkdGxzX21kX3R5cGVfdCBtZF9hbGcsCisgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdW5zaWduZWQgY2hhciAqaGFzaCwgc2l6ZV90IGhhc2hfbGVuLAorICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGNoYXIgKnNpZywgc2l6ZV90IHNpZ19zaXplLCBzaXplX3QgKnNpZ19sZW4sCisgICAgICAgICAgICAgICAgICAgICAgICAgaW50ICgqZl9ybmcpKHZvaWQgKiwgdW5zaWduZWQgY2hhciAqLCBzaXplX3QpLCB2b2lkICpwX3JuZykKK3sKKyAgICAoKHZvaWQpIGZfcm5nKTsKKyAgICAoKHZvaWQpIHBfcm5nKTsKKworICAgIHBzYV9hbGdvcml0aG1fdCBwc2FfbWRfYWxnOworICAgIHBzYV9tZF9hbGcgPSBtYmVkdGxzX21kX3BzYV9hbGdfZnJvbV90eXBlKG1kX2FsZyk7CisgICAgaWYgKHBzYV9tZF9hbGcgPT0gMCkgeworICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfUEtfQkFEX0lOUFVUX0RBVEE7CisgICAgfQorICAgIHBzYV9hbGdvcml0aG1fdCBwc2FfYWxnOworICAgIGlmIChtYmVkdGxzX3JzYV9nZXRfcGFkZGluZ19tb2RlKG1iZWR0bHNfcGtfcnNhKCpwaykpID09IE1CRURUTFNfUlNBX1BLQ1NfVjIxKSB7CisgICAgICAgIHBzYV9hbGcgPSBQU0FfQUxHX1JTQV9QU1MocHNhX21kX2FsZyk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgcHNhX2FsZyA9IFBTQV9BTEdfUlNBX1BLQ1MxVjE1X1NJR04ocHNhX21kX2FsZyk7CisgICAgfQorCisgICAgcmV0dXJuIG1iZWR0bHNfcGtfcHNhX3JzYV9zaWduX2V4dChwc2FfYWxnLCBway0+cGtfY3R4LCBoYXNoLCBoYXNoX2xlbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpZywgc2lnX3NpemUsIHNpZ19sZW4pOworfQorI2Vsc2UgLyogTUJFRFRMU19VU0VfUFNBX0NSWVBUTyAqLworc3RhdGljIGludCByc2Ffc2lnbl93cmFwKG1iZWR0bHNfcGtfY29udGV4dCAqcGssIG1iZWR0bHNfbWRfdHlwZV90IG1kX2FsZywKKyAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1bnNpZ25lZCBjaGFyICpoYXNoLCBzaXplX3QgaGFzaF9sZW4sCisgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgY2hhciAqc2lnLCBzaXplX3Qgc2lnX3NpemUsIHNpemVfdCAqc2lnX2xlbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgKCpmX3JuZykodm9pZCAqLCB1bnNpZ25lZCBjaGFyICosIHNpemVfdCksIHZvaWQgKnBfcm5nKQoreworICAgIG1iZWR0bHNfcnNhX2NvbnRleHQgKnJzYSA9IChtYmVkdGxzX3JzYV9jb250ZXh0ICopIHBrLT5wa19jdHg7CisKKyNpZiBTSVpFX01BWCA+IFVJTlRfTUFYCisgICAgaWYgKG1kX2FsZyA9PSBNQkVEVExTX01EX05PTkUgJiYgVUlOVF9NQVggPCBoYXNoX2xlbikgeworICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfUEtfQkFEX0lOUFVUX0RBVEE7CisgICAgfQorI2VuZGlmCisKKyAgICAqc2lnX2xlbiA9IG1iZWR0bHNfcnNhX2dldF9sZW4ocnNhKTsKKyAgICBpZiAoc2lnX3NpemUgPCAqc2lnX2xlbikgeworICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfUEtfQlVGRkVSX1RPT19TTUFMTDsKKyAgICB9CisKKyAgICByZXR1cm4gbWJlZHRsc19yc2FfcGtjczFfc2lnbihyc2EsIGZfcm5nLCBwX3JuZywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZF9hbGcsICh1bnNpZ25lZCBpbnQpIGhhc2hfbGVuLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhc2gsIHNpZyk7Cit9CisjZW5kaWYgLyogTUJFRFRMU19VU0VfUFNBX0NSWVBUTyAqLworCisjaWYgZGVmaW5lZChNQkVEVExTX1VTRV9QU0FfQ1JZUFRPKQorc3RhdGljIGludCByc2FfZGVjcnlwdF93cmFwKG1iZWR0bHNfcGtfY29udGV4dCAqcGssCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdW5zaWduZWQgY2hhciAqaW5wdXQsIHNpemVfdCBpbGVuLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGNoYXIgKm91dHB1dCwgc2l6ZV90ICpvbGVuLCBzaXplX3Qgb3NpemUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50ICgqZl9ybmcpKHZvaWQgKiwgdW5zaWduZWQgY2hhciAqLCBzaXplX3QpLCB2b2lkICpwX3JuZykKK3sKKyAgICBtYmVkdGxzX3JzYV9jb250ZXh0ICpyc2EgPSAobWJlZHRsc19yc2FfY29udGV4dCAqKSBway0+cGtfY3R4OworICAgIGludCByZXQgPSBNQkVEVExTX0VSUl9FUlJPUl9DT1JSVVBUSU9OX0RFVEVDVEVEOworICAgIHBzYV9rZXlfYXR0cmlidXRlc190IGF0dHJpYnV0ZXMgPSBQU0FfS0VZX0FUVFJJQlVURVNfSU5JVDsKKyAgICBtYmVkdGxzX3N2Y19rZXlfaWRfdCBrZXlfaWQgPSBNQkVEVExTX1NWQ19LRVlfSURfSU5JVDsKKyAgICBwc2FfYWxnb3JpdGhtX3QgcHNhX21kX2FsZywgZGVjcnlwdF9hbGc7CisgICAgcHNhX3N0YXR1c190IHN0YXR1czsKKyAgICBpbnQga2V5X2xlbjsKKyAgICB1bnNpZ25lZCBjaGFyIGJ1ZltNQkVEVExTX1BLX1JTQV9QUlZfREVSX01BWF9CWVRFU107CisgICAgdW5zaWduZWQgY2hhciAqcCA9IGJ1ZiArIHNpemVvZihidWYpOworCisgICAgKCh2b2lkKSBmX3JuZyk7CisgICAgKCh2b2lkKSBwX3JuZyk7CisKKyAgICBpZiAoaWxlbiAhPSBtYmVkdGxzX3JzYV9nZXRfbGVuKHJzYSkpIHsKKyAgICAgICAgcmV0dXJuIE1CRURUTFNfRVJSX1JTQV9CQURfSU5QVVRfREFUQTsKKyAgICB9CisKKyAgICBrZXlfbGVuID0gbWJlZHRsc19yc2Ffd3JpdGVfa2V5KHJzYSwgYnVmLCAmcCk7CisgICAgaWYgKGtleV9sZW4gPD0gMCkgeworICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfUEtfQkFEX0lOUFVUX0RBVEE7CisgICAgfQorCisgICAgcHNhX3NldF9rZXlfdHlwZSgmYXR0cmlidXRlcywgUFNBX0tFWV9UWVBFX1JTQV9LRVlfUEFJUik7CisgICAgcHNhX3NldF9rZXlfdXNhZ2VfZmxhZ3MoJmF0dHJpYnV0ZXMsIFBTQV9LRVlfVVNBR0VfREVDUllQVCk7CisgICAgaWYgKG1iZWR0bHNfcnNhX2dldF9wYWRkaW5nX21vZGUocnNhKSA9PSBNQkVEVExTX1JTQV9QS0NTX1YyMSkgeworICAgICAgICBwc2FfbWRfYWxnID0gbWJlZHRsc19tZF9wc2FfYWxnX2Zyb21fdHlwZSgobWJlZHRsc19tZF90eXBlX3QpIG1iZWR0bHNfcnNhX2dldF9tZF9hbGcocnNhKSk7CisgICAgICAgIGRlY3J5cHRfYWxnID0gUFNBX0FMR19SU0FfT0FFUChwc2FfbWRfYWxnKTsKKyAgICB9IGVsc2UgeworICAgICAgICBkZWNyeXB0X2FsZyA9IFBTQV9BTEdfUlNBX1BLQ1MxVjE1X0NSWVBUOworICAgIH0KKyAgICBwc2Ffc2V0X2tleV9hbGdvcml0aG0oJmF0dHJpYnV0ZXMsIGRlY3J5cHRfYWxnKTsKKworICAgIHN0YXR1cyA9IHBzYV9pbXBvcnRfa2V5KCZhdHRyaWJ1dGVzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ1ZiArIHNpemVvZihidWYpIC0ga2V5X2xlbiwga2V5X2xlbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAma2V5X2lkKTsKKyAgICBpZiAoc3RhdHVzICE9IFBTQV9TVUNDRVNTKSB7CisgICAgICAgIHJldCA9IFBTQV9QS19UT19NQkVEVExTX0VSUihzdGF0dXMpOworICAgICAgICBnb3RvIGNsZWFudXA7CisgICAgfQorCisgICAgc3RhdHVzID0gcHNhX2FzeW1tZXRyaWNfZGVjcnlwdChrZXlfaWQsIGRlY3J5cHRfYWxnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5wdXQsIGlsZW4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOVUxMLCAwLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3V0cHV0LCBvc2l6ZSwgb2xlbik7CisgICAgaWYgKHN0YXR1cyAhPSBQU0FfU1VDQ0VTUykgeworICAgICAgICByZXQgPSBQU0FfUEtfUlNBX1RPX01CRURUTFNfRVJSKHN0YXR1cyk7CisgICAgICAgIGdvdG8gY2xlYW51cDsKKyAgICB9CisKKyAgICByZXQgPSAwOworCitjbGVhbnVwOgorICAgIG1iZWR0bHNfcGxhdGZvcm1femVyb2l6ZShidWYsIHNpemVvZihidWYpKTsKKyAgICBzdGF0dXMgPSBwc2FfZGVzdHJveV9rZXkoa2V5X2lkKTsKKyAgICBpZiAocmV0ID09IDAgJiYgc3RhdHVzICE9IFBTQV9TVUNDRVNTKSB7CisgICAgICAgIHJldCA9IFBTQV9QS19UT19NQkVEVExTX0VSUihzdGF0dXMpOworICAgIH0KKworICAgIHJldHVybiByZXQ7Cit9CisjZWxzZSAvKiBNQkVEVExTX1VTRV9QU0FfQ1JZUFRPICovCitzdGF0aWMgaW50IHJzYV9kZWNyeXB0X3dyYXAobWJlZHRsc19wa19jb250ZXh0ICpwaywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1bnNpZ25lZCBjaGFyICppbnB1dCwgc2l6ZV90IGlsZW4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgY2hhciAqb3V0cHV0LCBzaXplX3QgKm9sZW4sIHNpemVfdCBvc2l6ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgKCpmX3JuZykodm9pZCAqLCB1bnNpZ25lZCBjaGFyICosIHNpemVfdCksIHZvaWQgKnBfcm5nKQoreworICAgIG1iZWR0bHNfcnNhX2NvbnRleHQgKnJzYSA9IChtYmVkdGxzX3JzYV9jb250ZXh0ICopIHBrLT5wa19jdHg7CisKKyAgICBpZiAoaWxlbiAhPSBtYmVkdGxzX3JzYV9nZXRfbGVuKHJzYSkpIHsKKyAgICAgICAgcmV0dXJuIE1CRURUTFNfRVJSX1JTQV9CQURfSU5QVVRfREFUQTsKKyAgICB9CisKKyAgICByZXR1cm4gbWJlZHRsc19yc2FfcGtjczFfZGVjcnlwdChyc2EsIGZfcm5nLCBwX3JuZywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbGVuLCBpbnB1dCwgb3V0cHV0LCBvc2l6ZSk7Cit9CisjZW5kaWYgLyogTUJFRFRMU19VU0VfUFNBX0NSWVBUTyAqLworCisjaWYgZGVmaW5lZChNQkVEVExTX1VTRV9QU0FfQ1JZUFRPKQorc3RhdGljIGludCByc2FfZW5jcnlwdF93cmFwKG1iZWR0bHNfcGtfY29udGV4dCAqcGssCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdW5zaWduZWQgY2hhciAqaW5wdXQsIHNpemVfdCBpbGVuLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGNoYXIgKm91dHB1dCwgc2l6ZV90ICpvbGVuLCBzaXplX3Qgb3NpemUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50ICgqZl9ybmcpKHZvaWQgKiwgdW5zaWduZWQgY2hhciAqLCBzaXplX3QpLCB2b2lkICpwX3JuZykKK3sKKyAgICBtYmVkdGxzX3JzYV9jb250ZXh0ICpyc2EgPSAobWJlZHRsc19yc2FfY29udGV4dCAqKSBway0+cGtfY3R4OworICAgIGludCByZXQgPSBNQkVEVExTX0VSUl9FUlJPUl9DT1JSVVBUSU9OX0RFVEVDVEVEOworICAgIHBzYV9rZXlfYXR0cmlidXRlc190IGF0dHJpYnV0ZXMgPSBQU0FfS0VZX0FUVFJJQlVURVNfSU5JVDsKKyAgICBtYmVkdGxzX3N2Y19rZXlfaWRfdCBrZXlfaWQgPSBNQkVEVExTX1NWQ19LRVlfSURfSU5JVDsKKyAgICBwc2FfYWxnb3JpdGhtX3QgcHNhX21kX2FsZywgcHNhX2VuY3J5cHRfYWxnOworICAgIHBzYV9zdGF0dXNfdCBzdGF0dXM7CisgICAgaW50IGtleV9sZW47CisgICAgdW5zaWduZWQgY2hhciBidWZbTUJFRFRMU19QS19SU0FfUFVCX0RFUl9NQVhfQllURVNdOworICAgIHVuc2lnbmVkIGNoYXIgKnAgPSBidWYgKyBzaXplb2YoYnVmKTsKKworICAgICgodm9pZCkgZl9ybmcpOworICAgICgodm9pZCkgcF9ybmcpOworCisgICAgaWYgKG1iZWR0bHNfcnNhX2dldF9sZW4ocnNhKSA+IG9zaXplKSB7CisgICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9SU0FfT1VUUFVUX1RPT19MQVJHRTsKKyAgICB9CisKKyAgICBrZXlfbGVuID0gbWJlZHRsc19yc2Ffd3JpdGVfcHVia2V5KHJzYSwgYnVmLCAmcCk7CisgICAgaWYgKGtleV9sZW4gPD0gMCkgeworICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfUEtfQkFEX0lOUFVUX0RBVEE7CisgICAgfQorCisgICAgcHNhX3NldF9rZXlfdXNhZ2VfZmxhZ3MoJmF0dHJpYnV0ZXMsIFBTQV9LRVlfVVNBR0VfRU5DUllQVCk7CisgICAgaWYgKG1iZWR0bHNfcnNhX2dldF9wYWRkaW5nX21vZGUocnNhKSA9PSBNQkVEVExTX1JTQV9QS0NTX1YyMSkgeworICAgICAgICBwc2FfbWRfYWxnID0gbWJlZHRsc19tZF9wc2FfYWxnX2Zyb21fdHlwZSgobWJlZHRsc19tZF90eXBlX3QpIG1iZWR0bHNfcnNhX2dldF9tZF9hbGcocnNhKSk7CisgICAgICAgIHBzYV9lbmNyeXB0X2FsZyA9IFBTQV9BTEdfUlNBX09BRVAocHNhX21kX2FsZyk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgcHNhX2VuY3J5cHRfYWxnID0gUFNBX0FMR19SU0FfUEtDUzFWMTVfQ1JZUFQ7CisgICAgfQorICAgIHBzYV9zZXRfa2V5X2FsZ29yaXRobSgmYXR0cmlidXRlcywgcHNhX2VuY3J5cHRfYWxnKTsKKyAgICBwc2Ffc2V0X2tleV90eXBlKCZhdHRyaWJ1dGVzLCBQU0FfS0VZX1RZUEVfUlNBX1BVQkxJQ19LRVkpOworCisgICAgc3RhdHVzID0gcHNhX2ltcG9ydF9rZXkoJmF0dHJpYnV0ZXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnVmICsgc2l6ZW9mKGJ1ZikgLSBrZXlfbGVuLCBrZXlfbGVuLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICZrZXlfaWQpOworICAgIGlmIChzdGF0dXMgIT0gUFNBX1NVQ0NFU1MpIHsKKyAgICAgICAgcmV0ID0gUFNBX1BLX1RPX01CRURUTFNfRVJSKHN0YXR1cyk7CisgICAgICAgIGdvdG8gY2xlYW51cDsKKyAgICB9CisKKyAgICBzdGF0dXMgPSBwc2FfYXN5bW1ldHJpY19lbmNyeXB0KGtleV9pZCwgcHNhX2VuY3J5cHRfYWxnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5wdXQsIGlsZW4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOVUxMLCAwLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3V0cHV0LCBvc2l6ZSwgb2xlbik7CisgICAgaWYgKHN0YXR1cyAhPSBQU0FfU1VDQ0VTUykgeworICAgICAgICByZXQgPSBQU0FfUEtfUlNBX1RPX01CRURUTFNfRVJSKHN0YXR1cyk7CisgICAgICAgIGdvdG8gY2xlYW51cDsKKyAgICB9CisKKyAgICByZXQgPSAwOworCitjbGVhbnVwOgorICAgIHN0YXR1cyA9IHBzYV9kZXN0cm95X2tleShrZXlfaWQpOworICAgIGlmIChyZXQgPT0gMCAmJiBzdGF0dXMgIT0gUFNBX1NVQ0NFU1MpIHsKKyAgICAgICAgcmV0ID0gUFNBX1BLX1RPX01CRURUTFNfRVJSKHN0YXR1cyk7CisgICAgfQorCisgICAgcmV0dXJuIHJldDsKK30KKyNlbHNlIC8qIE1CRURUTFNfVVNFX1BTQV9DUllQVE8gKi8KK3N0YXRpYyBpbnQgcnNhX2VuY3J5cHRfd3JhcChtYmVkdGxzX3BrX2NvbnRleHQgKnBrLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgKmlucHV0LCBzaXplX3QgaWxlbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBjaGFyICpvdXRwdXQsIHNpemVfdCAqb2xlbiwgc2l6ZV90IG9zaXplLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCAoKmZfcm5nKSh2b2lkICosIHVuc2lnbmVkIGNoYXIgKiwgc2l6ZV90KSwgdm9pZCAqcF9ybmcpCit7CisgICAgbWJlZHRsc19yc2FfY29udGV4dCAqcnNhID0gKG1iZWR0bHNfcnNhX2NvbnRleHQgKikgcGstPnBrX2N0eDsKKyAgICAqb2xlbiA9IG1iZWR0bHNfcnNhX2dldF9sZW4ocnNhKTsKKworICAgIGlmICgqb2xlbiA+IG9zaXplKSB7CisgICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9SU0FfT1VUUFVUX1RPT19MQVJHRTsKKyAgICB9CisKKyAgICByZXR1cm4gbWJlZHRsc19yc2FfcGtjczFfZW5jcnlwdChyc2EsIGZfcm5nLCBwX3JuZywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbGVuLCBpbnB1dCwgb3V0cHV0KTsKK30KKyNlbmRpZiAvKiBNQkVEVExTX1VTRV9QU0FfQ1JZUFRPICovCisKK3N0YXRpYyBpbnQgcnNhX2NoZWNrX3BhaXJfd3JhcChtYmVkdGxzX3BrX2NvbnRleHQgKnB1YiwgbWJlZHRsc19wa19jb250ZXh0ICpwcnYsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50ICgqZl9ybmcpKHZvaWQgKiwgdW5zaWduZWQgY2hhciAqLCBzaXplX3QpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZvaWQgKnBfcm5nKQoreworICAgICh2b2lkKSBmX3JuZzsKKyAgICAodm9pZCkgcF9ybmc7CisgICAgcmV0dXJuIG1iZWR0bHNfcnNhX2NoZWNrX3B1Yl9wcml2KChjb25zdCBtYmVkdGxzX3JzYV9jb250ZXh0ICopIHB1Yi0+cGtfY3R4LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY29uc3QgbWJlZHRsc19yc2FfY29udGV4dCAqKSBwcnYtPnBrX2N0eCk7Cit9CisKK3N0YXRpYyB2b2lkICpyc2FfYWxsb2Nfd3JhcCh2b2lkKQoreworICAgIHZvaWQgKmN0eCA9IG1iZWR0bHNfY2FsbG9jKDEsIHNpemVvZihtYmVkdGxzX3JzYV9jb250ZXh0KSk7CisKKyAgICBpZiAoY3R4ICE9IE5VTEwpIHsKKyAgICAgICAgbWJlZHRsc19yc2FfaW5pdCgobWJlZHRsc19yc2FfY29udGV4dCAqKSBjdHgpOworICAgIH0KKworICAgIHJldHVybiBjdHg7Cit9CisKK3N0YXRpYyB2b2lkIHJzYV9mcmVlX3dyYXAodm9pZCAqY3R4KQoreworICAgIG1iZWR0bHNfcnNhX2ZyZWUoKG1iZWR0bHNfcnNhX2NvbnRleHQgKikgY3R4KTsKKyAgICBtYmVkdGxzX2ZyZWUoY3R4KTsKK30KKworc3RhdGljIHZvaWQgcnNhX2RlYnVnKG1iZWR0bHNfcGtfY29udGV4dCAqcGssIG1iZWR0bHNfcGtfZGVidWdfaXRlbSAqaXRlbXMpCit7CisgICAgbWJlZHRsc19yc2FfY29udGV4dCAqcnNhID0gKG1iZWR0bHNfcnNhX2NvbnRleHQgKikgcGstPnBrX2N0eDsKKworICAgIGl0ZW1zLT50eXBlID0gTUJFRFRMU19QS19ERUJVR19NUEk7CisgICAgaXRlbXMtPm5hbWUgPSAicnNhLk4iOworICAgIGl0ZW1zLT52YWx1ZSA9ICYocnNhLT5OKTsKKworICAgIGl0ZW1zKys7CisKKyAgICBpdGVtcy0+dHlwZSA9IE1CRURUTFNfUEtfREVCVUdfTVBJOworICAgIGl0ZW1zLT5uYW1lID0gInJzYS5FIjsKKyAgICBpdGVtcy0+dmFsdWUgPSAmKHJzYS0+RSk7Cit9CisKK2NvbnN0IG1iZWR0bHNfcGtfaW5mb190IG1iZWR0bHNfcnNhX2luZm8gPSB7CisgICAgLnR5cGUgPSBNQkVEVExTX1BLX1JTQSwKKyAgICAubmFtZSA9ICJSU0EiLAorICAgIC5nZXRfYml0bGVuID0gcnNhX2dldF9iaXRsZW4sCisgICAgLmNhbl9kbyA9IHJzYV9jYW5fZG8sCisgICAgLnZlcmlmeV9mdW5jID0gcnNhX3ZlcmlmeV93cmFwLAorICAgIC5zaWduX2Z1bmMgPSByc2Ffc2lnbl93cmFwLAorI2lmIGRlZmluZWQoTUJFRFRMU19FQ0RTQV9DKSAmJiBkZWZpbmVkKE1CRURUTFNfRUNQX1JFU1RBUlRBQkxFKQorICAgIC52ZXJpZnlfcnNfZnVuYyA9IE5VTEwsCisgICAgLnNpZ25fcnNfZnVuYyA9IE5VTEwsCisgICAgLnJzX2FsbG9jX2Z1bmMgPSBOVUxMLAorICAgIC5yc19mcmVlX2Z1bmMgPSBOVUxMLAorI2VuZGlmIC8qIE1CRURUTFNfRUNEU0FfQyAmJiBNQkVEVExTX0VDUF9SRVNUQVJUQUJMRSAqLworICAgIC5kZWNyeXB0X2Z1bmMgPSByc2FfZGVjcnlwdF93cmFwLAorICAgIC5lbmNyeXB0X2Z1bmMgPSByc2FfZW5jcnlwdF93cmFwLAorICAgIC5jaGVja19wYWlyX2Z1bmMgPSByc2FfY2hlY2tfcGFpcl93cmFwLAorICAgIC5jdHhfYWxsb2NfZnVuYyA9IHJzYV9hbGxvY193cmFwLAorICAgIC5jdHhfZnJlZV9mdW5jID0gcnNhX2ZyZWVfd3JhcCwKKyAgICAuZGVidWdfZnVuYyA9IHJzYV9kZWJ1ZywKK307CisjZW5kaWYgLyogTUJFRFRMU19SU0FfQyAqLworCisjaWYgZGVmaW5lZChNQkVEVExTX1BLX0hBVkVfRUNDX0tFWVMpCisvKgorICogR2VuZXJpYyBFQyBrZXkKKyAqLworc3RhdGljIGludCBlY2tleV9jYW5fZG8obWJlZHRsc19wa190eXBlX3QgdHlwZSkKK3sKKyAgICByZXR1cm4gdHlwZSA9PSBNQkVEVExTX1BLX0VDS0VZIHx8CisgICAgICAgICAgIHR5cGUgPT0gTUJFRFRMU19QS19FQ0tFWV9ESCB8fAorICAgICAgICAgICB0eXBlID09IE1CRURUTFNfUEtfRUNEU0E7Cit9CisKK3N0YXRpYyBzaXplX3QgZWNrZXlfZ2V0X2JpdGxlbihtYmVkdGxzX3BrX2NvbnRleHQgKnBrKQoreworI2lmIGRlZmluZWQoTUJFRFRMU19QS19VU0VfUFNBX0VDX0RBVEEpCisgICAgcmV0dXJuIHBrLT5lY19iaXRzOworI2Vsc2UgLyogTUJFRFRMU19QS19VU0VfUFNBX0VDX0RBVEEgKi8KKyAgICBtYmVkdGxzX2VjcF9rZXlwYWlyICplY3AgPSAobWJlZHRsc19lY3Bfa2V5cGFpciAqKSBway0+cGtfY3R4OworICAgIHJldHVybiBlY3AtPmdycC5wYml0czsKKyNlbmRpZiAvKiBNQkVEVExTX1BLX1VTRV9QU0FfRUNfREFUQSAqLworfQorCisjaWYgZGVmaW5lZChNQkVEVExTX1BLX0NBTl9FQ0RTQV9WRVJJRlkpCisjaWYgZGVmaW5lZChNQkVEVExTX1VTRV9QU0FfQ1JZUFRPKQorLyogQ29tbW9uIGhlbHBlciBmb3IgRUNEU0EgdmVyaWZ5IHVzaW5nIFBTQSBmdW5jdGlvbnMuICovCitzdGF0aWMgaW50IGVjZHNhX3ZlcmlmeV9wc2EodW5zaWduZWQgY2hhciAqa2V5LCBzaXplX3Qga2V5X2xlbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBwc2FfZWNjX2ZhbWlseV90IGN1cnZlLCBzaXplX3QgY3VydmVfYml0cywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1bnNpZ25lZCBjaGFyICpoYXNoLCBzaXplX3QgaGFzaF9sZW4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdW5zaWduZWQgY2hhciAqc2lnLCBzaXplX3Qgc2lnX2xlbikKK3sKKyAgICBpbnQgcmV0ID0gTUJFRFRMU19FUlJfRVJST1JfQ09SUlVQVElPTl9ERVRFQ1RFRDsKKyAgICBwc2Ffa2V5X2F0dHJpYnV0ZXNfdCBhdHRyaWJ1dGVzID0gUFNBX0tFWV9BVFRSSUJVVEVTX0lOSVQ7CisgICAgbWJlZHRsc19zdmNfa2V5X2lkX3Qga2V5X2lkID0gTUJFRFRMU19TVkNfS0VZX0lEX0lOSVQ7CisgICAgcHNhX2FsZ29yaXRobV90IHBzYV9zaWdfbWQgPSBQU0FfQUxHX0VDRFNBX0FOWTsKKyAgICBzaXplX3Qgc2lnbmF0dXJlX2xlbiA9IFBTQV9FQ0RTQV9TSUdOQVRVUkVfU0laRShjdXJ2ZV9iaXRzKTsKKyAgICBzaXplX3QgY29udmVydGVkX3NpZ19sZW47CisgICAgdW5zaWduZWQgY2hhciBleHRyYWN0ZWRfc2lnW1BTQV9WRU5ET1JfRUNEU0FfU0lHTkFUVVJFX01BWF9TSVpFXTsKKyAgICB1bnNpZ25lZCBjaGFyICpwOworICAgIHBzYV9zdGF0dXNfdCBzdGF0dXM7CisKKyAgICBpZiAoY3VydmUgPT0gMCkgeworICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfUEtfQkFEX0lOUFVUX0RBVEE7CisgICAgfQorCisgICAgcHNhX3NldF9rZXlfdHlwZSgmYXR0cmlidXRlcywgUFNBX0tFWV9UWVBFX0VDQ19QVUJMSUNfS0VZKGN1cnZlKSk7CisgICAgcHNhX3NldF9rZXlfdXNhZ2VfZmxhZ3MoJmF0dHJpYnV0ZXMsIFBTQV9LRVlfVVNBR0VfVkVSSUZZX0hBU0gpOworICAgIHBzYV9zZXRfa2V5X2FsZ29yaXRobSgmYXR0cmlidXRlcywgcHNhX3NpZ19tZCk7CisKKyAgICBzdGF0dXMgPSBwc2FfaW1wb3J0X2tleSgmYXR0cmlidXRlcywga2V5LCBrZXlfbGVuLCAma2V5X2lkKTsKKyAgICBpZiAoc3RhdHVzICE9IFBTQV9TVUNDRVNTKSB7CisgICAgICAgIHJldCA9IFBTQV9QS19UT19NQkVEVExTX0VSUihzdGF0dXMpOworICAgICAgICBnb3RvIGNsZWFudXA7CisgICAgfQorCisgICAgaWYgKHNpZ25hdHVyZV9sZW4gPiBzaXplb2YoZXh0cmFjdGVkX3NpZykpIHsKKyAgICAgICAgcmV0ID0gTUJFRFRMU19FUlJfUEtfQkFEX0lOUFVUX0RBVEE7CisgICAgICAgIGdvdG8gY2xlYW51cDsKKyAgICB9CisKKyAgICBwID0gKHVuc2lnbmVkIGNoYXIgKikgc2lnOworICAgIHJldCA9IG1iZWR0bHNfZWNkc2FfZGVyX3RvX3JhdyhjdXJ2ZV9iaXRzLCBwLCBzaWdfbGVuLCBleHRyYWN0ZWRfc2lnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplb2YoZXh0cmFjdGVkX3NpZyksICZjb252ZXJ0ZWRfc2lnX2xlbik7CisgICAgaWYgKHJldCAhPSAwKSB7CisgICAgICAgIGdvdG8gY2xlYW51cDsKKyAgICB9CisKKyAgICBpZiAoY29udmVydGVkX3NpZ19sZW4gIT0gc2lnbmF0dXJlX2xlbikgeworICAgICAgICByZXQgPSBNQkVEVExTX0VSUl9QS19CQURfSU5QVVRfREFUQTsKKyAgICAgICAgZ290byBjbGVhbnVwOworICAgIH0KKworICAgIHN0YXR1cyA9IHBzYV92ZXJpZnlfaGFzaChrZXlfaWQsIHBzYV9zaWdfbWQsIGhhc2gsIGhhc2hfbGVuLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBleHRyYWN0ZWRfc2lnLCBzaWduYXR1cmVfbGVuKTsKKyAgICBpZiAoc3RhdHVzICE9IFBTQV9TVUNDRVNTKSB7CisgICAgICAgIHJldCA9IFBTQV9QS19FQ0RTQV9UT19NQkVEVExTX0VSUihzdGF0dXMpOworICAgICAgICBnb3RvIGNsZWFudXA7CisgICAgfQorCisgICAgcmV0ID0gMDsKKworY2xlYW51cDoKKyAgICBzdGF0dXMgPSBwc2FfZGVzdHJveV9rZXkoa2V5X2lkKTsKKyAgICBpZiAocmV0ID09IDAgJiYgc3RhdHVzICE9IFBTQV9TVUNDRVNTKSB7CisgICAgICAgIHJldCA9IFBTQV9QS19UT19NQkVEVExTX0VSUihzdGF0dXMpOworICAgIH0KKworICAgIHJldHVybiByZXQ7Cit9CisKK3N0YXRpYyBpbnQgZWNkc2Ffb3BhcXVlX3ZlcmlmeV93cmFwKG1iZWR0bHNfcGtfY29udGV4dCAqcGssCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYmVkdGxzX21kX3R5cGVfdCBtZF9hbGcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1bnNpZ25lZCBjaGFyICpoYXNoLCBzaXplX3QgaGFzaF9sZW4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1bnNpZ25lZCBjaGFyICpzaWcsIHNpemVfdCBzaWdfbGVuKQoreworICAgICh2b2lkKSBtZF9hbGc7CisgICAgdW5zaWduZWQgY2hhciBrZXlbTUJFRFRMU19QS19NQVhfRUNfUFVCS0VZX1JBV19MRU5dOworICAgIHNpemVfdCBrZXlfbGVuOworICAgIHBzYV9rZXlfYXR0cmlidXRlc190IGtleV9hdHRyID0gUFNBX0tFWV9BVFRSSUJVVEVTX0lOSVQ7CisgICAgcHNhX2VjY19mYW1pbHlfdCBjdXJ2ZTsKKyAgICBzaXplX3QgY3VydmVfYml0czsKKyAgICBwc2Ffc3RhdHVzX3Qgc3RhdHVzOworCisgICAgc3RhdHVzID0gcHNhX2dldF9rZXlfYXR0cmlidXRlcyhway0+cHJpdl9pZCwgJmtleV9hdHRyKTsKKyAgICBpZiAoc3RhdHVzICE9IFBTQV9TVUNDRVNTKSB7CisgICAgICAgIHJldHVybiBQU0FfUEtfRUNEU0FfVE9fTUJFRFRMU19FUlIoc3RhdHVzKTsKKyAgICB9CisgICAgY3VydmUgPSBQU0FfS0VZX1RZUEVfRUNDX0dFVF9GQU1JTFkocHNhX2dldF9rZXlfdHlwZSgma2V5X2F0dHIpKTsKKyAgICBjdXJ2ZV9iaXRzID0gcHNhX2dldF9rZXlfYml0cygma2V5X2F0dHIpOworICAgIHBzYV9yZXNldF9rZXlfYXR0cmlidXRlcygma2V5X2F0dHIpOworCisgICAgc3RhdHVzID0gcHNhX2V4cG9ydF9wdWJsaWNfa2V5KHBrLT5wcml2X2lkLCBrZXksIHNpemVvZihrZXkpLCAma2V5X2xlbik7CisgICAgaWYgKHN0YXR1cyAhPSBQU0FfU1VDQ0VTUykgeworICAgICAgICByZXR1cm4gUFNBX1BLX0VDRFNBX1RPX01CRURUTFNfRVJSKHN0YXR1cyk7CisgICAgfQorCisgICAgcmV0dXJuIGVjZHNhX3ZlcmlmeV9wc2Eoa2V5LCBrZXlfbGVuLCBjdXJ2ZSwgY3VydmVfYml0cywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYXNoLCBoYXNoX2xlbiwgc2lnLCBzaWdfbGVuKTsKK30KKworI2lmIGRlZmluZWQoTUJFRFRMU19QS19VU0VfUFNBX0VDX0RBVEEpCitzdGF0aWMgaW50IGVjZHNhX3ZlcmlmeV93cmFwKG1iZWR0bHNfcGtfY29udGV4dCAqcGssCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1iZWR0bHNfbWRfdHlwZV90IG1kX2FsZywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdW5zaWduZWQgY2hhciAqaGFzaCwgc2l6ZV90IGhhc2hfbGVuLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1bnNpZ25lZCBjaGFyICpzaWcsIHNpemVfdCBzaWdfbGVuKQoreworICAgICh2b2lkKSBtZF9hbGc7CisgICAgcHNhX2VjY19mYW1pbHlfdCBjdXJ2ZSA9IHBrLT5lY19mYW1pbHk7CisgICAgc2l6ZV90IGN1cnZlX2JpdHMgPSBway0+ZWNfYml0czsKKworICAgIHJldHVybiBlY2RzYV92ZXJpZnlfcHNhKHBrLT5wdWJfcmF3LCBway0+cHViX3Jhd19sZW4sIGN1cnZlLCBjdXJ2ZV9iaXRzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhc2gsIGhhc2hfbGVuLCBzaWcsIHNpZ19sZW4pOworfQorI2Vsc2UgLyogTUJFRFRMU19QS19VU0VfUFNBX0VDX0RBVEEgKi8KK3N0YXRpYyBpbnQgZWNkc2FfdmVyaWZ5X3dyYXAobWJlZHRsc19wa19jb250ZXh0ICpwaywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWJlZHRsc19tZF90eXBlX3QgbWRfYWxnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1bnNpZ25lZCBjaGFyICpoYXNoLCBzaXplX3QgaGFzaF9sZW4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgKnNpZywgc2l6ZV90IHNpZ19sZW4pCit7CisgICAgKHZvaWQpIG1kX2FsZzsKKyAgICBpbnQgcmV0ID0gTUJFRFRMU19FUlJfRVJST1JfQ09SUlVQVElPTl9ERVRFQ1RFRDsKKyAgICBtYmVkdGxzX2VjcF9rZXlwYWlyICpjdHggPSBway0+cGtfY3R4OworICAgIHVuc2lnbmVkIGNoYXIga2V5W01CRURUTFNfUFNBX01BWF9FQ19QVUJLRVlfTEVOR1RIXTsKKyAgICBzaXplX3Qga2V5X2xlbjsKKyAgICBzaXplX3QgY3VydmVfYml0czsKKyAgICBwc2FfZWNjX2ZhbWlseV90IGN1cnZlID0gbWJlZHRsc19lY2NfZ3JvdXBfdG9fcHNhKGN0eC0+Z3JwLmlkLCAmY3VydmVfYml0cyk7CisKKyAgICByZXQgPSBtYmVkdGxzX2VjcF9wb2ludF93cml0ZV9iaW5hcnkoJmN0eC0+Z3JwLCAmY3R4LT5RLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNQkVEVExTX0VDUF9QRl9VTkNPTVBSRVNTRUQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZrZXlfbGVuLCBrZXksIHNpemVvZihrZXkpKTsKKyAgICBpZiAocmV0ICE9IDApIHsKKyAgICAgICAgcmV0dXJuIHJldDsKKyAgICB9CisKKyAgICByZXR1cm4gZWNkc2FfdmVyaWZ5X3BzYShrZXksIGtleV9sZW4sIGN1cnZlLCBjdXJ2ZV9iaXRzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhc2gsIGhhc2hfbGVuLCBzaWcsIHNpZ19sZW4pOworfQorI2VuZGlmIC8qIE1CRURUTFNfUEtfVVNFX1BTQV9FQ19EQVRBICovCisjZWxzZSAvKiBNQkVEVExTX1VTRV9QU0FfQ1JZUFRPICovCitzdGF0aWMgaW50IGVjZHNhX3ZlcmlmeV93cmFwKG1iZWR0bHNfcGtfY29udGV4dCAqcGssIG1iZWR0bHNfbWRfdHlwZV90IG1kX2FsZywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdW5zaWduZWQgY2hhciAqaGFzaCwgc2l6ZV90IGhhc2hfbGVuLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1bnNpZ25lZCBjaGFyICpzaWcsIHNpemVfdCBzaWdfbGVuKQoreworICAgIGludCByZXQgPSBNQkVEVExTX0VSUl9FUlJPUl9DT1JSVVBUSU9OX0RFVEVDVEVEOworICAgICgodm9pZCkgbWRfYWxnKTsKKworICAgIHJldCA9IG1iZWR0bHNfZWNkc2FfcmVhZF9zaWduYXR1cmUoKG1iZWR0bHNfZWNkc2FfY29udGV4dCAqKSBway0+cGtfY3R4LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFzaCwgaGFzaF9sZW4sIHNpZywgc2lnX2xlbik7CisKKyAgICBpZiAocmV0ID09IE1CRURUTFNfRVJSX0VDUF9TSUdfTEVOX01JU01BVENIKSB7CisgICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9QS19TSUdfTEVOX01JU01BVENIOworICAgIH0KKworICAgIHJldHVybiByZXQ7Cit9CisjZW5kaWYgLyogTUJFRFRMU19VU0VfUFNBX0NSWVBUTyAqLworI2VuZGlmIC8qIE1CRURUTFNfUEtfQ0FOX0VDRFNBX1ZFUklGWSAqLworCisjaWYgZGVmaW5lZChNQkVEVExTX1BLX0NBTl9FQ0RTQV9TSUdOKQorI2lmIGRlZmluZWQoTUJFRFRMU19VU0VfUFNBX0NSWVBUTykKKy8qIENvbW1vbiBoZWxwZXIgZm9yIEVDRFNBIHNpZ24gdXNpbmcgUFNBIGZ1bmN0aW9ucy4KKyAqIEluc3RlYWQgb2YgZXh0cmFjdGluZyBrZXkncyBwcm9wZXJ0aWVzIGluIG9yZGVyIHRvIGNoZWNrIHdoaWNoIGtpbmQgb2YgRUNEU0EKKyAqIHNpZ25hdHVyZSBpdCBzdXBwb3J0cywgd2UgdHJ5IGJvdGggZGV0ZXJtaW5pc3RpYyBhbmQgbm9uLWRldGVybWluaXN0aWMuCisgKi8KK3N0YXRpYyBpbnQgZWNkc2Ffc2lnbl9wc2EobWJlZHRsc19zdmNfa2V5X2lkX3Qga2V5X2lkLCBtYmVkdGxzX21kX3R5cGVfdCBtZF9hbGcsCisgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgKmhhc2gsIHNpemVfdCBoYXNoX2xlbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgY2hhciAqc2lnLCBzaXplX3Qgc2lnX3NpemUsIHNpemVfdCAqc2lnX2xlbikKK3sKKyAgICBpbnQgcmV0ID0gTUJFRFRMU19FUlJfRVJST1JfQ09SUlVQVElPTl9ERVRFQ1RFRDsKKyAgICBwc2Ffc3RhdHVzX3Qgc3RhdHVzOworICAgIHBzYV9rZXlfYXR0cmlidXRlc190IGtleV9hdHRyID0gUFNBX0tFWV9BVFRSSUJVVEVTX0lOSVQ7CisgICAgc2l6ZV90IGtleV9iaXRzID0gMDsKKworICAgIHN0YXR1cyA9IHBzYV9nZXRfa2V5X2F0dHJpYnV0ZXMoa2V5X2lkLCAma2V5X2F0dHIpOworICAgIGlmIChzdGF0dXMgIT0gUFNBX1NVQ0NFU1MpIHsKKyAgICAgICAgcmV0dXJuIFBTQV9QS19FQ0RTQV9UT19NQkVEVExTX0VSUihzdGF0dXMpOworICAgIH0KKyAgICBrZXlfYml0cyA9IHBzYV9nZXRfa2V5X2JpdHMoJmtleV9hdHRyKTsKKyAgICBwc2FfcmVzZXRfa2V5X2F0dHJpYnV0ZXMoJmtleV9hdHRyKTsKKworICAgIHN0YXR1cyA9IHBzYV9zaWduX2hhc2goa2V5X2lkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgUFNBX0FMR19ERVRFUk1JTklTVElDX0VDRFNBKG1iZWR0bHNfbWRfcHNhX2FsZ19mcm9tX3R5cGUobWRfYWxnKSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICBoYXNoLCBoYXNoX2xlbiwgc2lnLCBzaWdfc2l6ZSwgc2lnX2xlbik7CisgICAgaWYgKHN0YXR1cyA9PSBQU0FfU1VDQ0VTUykgeworICAgICAgICBnb3RvIGRvbmU7CisgICAgfSBlbHNlIGlmIChzdGF0dXMgIT0gUFNBX0VSUk9SX05PVF9QRVJNSVRURUQpIHsKKyAgICAgICAgcmV0dXJuIFBTQV9QS19FQ0RTQV9UT19NQkVEVExTX0VSUihzdGF0dXMpOworICAgIH0KKworICAgIHN0YXR1cyA9IHBzYV9zaWduX2hhc2goa2V5X2lkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgUFNBX0FMR19FQ0RTQShtYmVkdGxzX21kX3BzYV9hbGdfZnJvbV90eXBlKG1kX2FsZykpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFzaCwgaGFzaF9sZW4sIHNpZywgc2lnX3NpemUsIHNpZ19sZW4pOworICAgIGlmIChzdGF0dXMgIT0gUFNBX1NVQ0NFU1MpIHsKKyAgICAgICAgcmV0dXJuIFBTQV9QS19FQ0RTQV9UT19NQkVEVExTX0VSUihzdGF0dXMpOworICAgIH0KKworZG9uZToKKyAgICByZXQgPSBtYmVkdGxzX2VjZHNhX3Jhd190b19kZXIoa2V5X2JpdHMsIHNpZywgKnNpZ19sZW4sIHNpZywgc2lnX3NpemUsIHNpZ19sZW4pOworCisgICAgcmV0dXJuIHJldDsKK30KKworc3RhdGljIGludCBlY2RzYV9vcGFxdWVfc2lnbl93cmFwKG1iZWR0bHNfcGtfY29udGV4dCAqcGssCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWJlZHRsc19tZF90eXBlX3QgbWRfYWxnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgKmhhc2gsIHNpemVfdCBoYXNoX2xlbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBjaGFyICpzaWcsIHNpemVfdCBzaWdfc2l6ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgKnNpZ19sZW4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50ICgqZl9ybmcpKHZvaWQgKiwgdW5zaWduZWQgY2hhciAqLCBzaXplX3QpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZvaWQgKnBfcm5nKQoreworICAgICgodm9pZCkgZl9ybmcpOworICAgICgodm9pZCkgcF9ybmcpOworCisgICAgcmV0dXJuIGVjZHNhX3NpZ25fcHNhKHBrLT5wcml2X2lkLCBtZF9hbGcsIGhhc2gsIGhhc2hfbGVuLCBzaWcsIHNpZ19zaXplLAorICAgICAgICAgICAgICAgICAgICAgICAgICBzaWdfbGVuKTsKK30KKworI2lmIGRlZmluZWQoTUJFRFRMU19QS19VU0VfUFNBX0VDX0RBVEEpCisvKiBXaGVuIFBLX1VTRV9QU0FfRUNfREFUQSBpcyBkZWZpbmVkIG9wYXF1ZSBhbmQgbm9uLW9wYXF1ZSBrZXlzIGVuZCB1cAorICogdXNpbmcgdGhlIHNhbWUgZnVuY3Rpb24uICovCisjZGVmaW5lIGVjZHNhX3NpZ25fd3JhcCAgICAgZWNkc2Ffb3BhcXVlX3NpZ25fd3JhcAorI2Vsc2UgLyogTUJFRFRMU19QS19VU0VfUFNBX0VDX0RBVEEgKi8KK3N0YXRpYyBpbnQgZWNkc2Ffc2lnbl93cmFwKG1iZWR0bHNfcGtfY29udGV4dCAqcGssIG1iZWR0bHNfbWRfdHlwZV90IG1kX2FsZywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgKmhhc2gsIHNpemVfdCBoYXNoX2xlbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGNoYXIgKnNpZywgc2l6ZV90IHNpZ19zaXplLCBzaXplX3QgKnNpZ19sZW4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgKCpmX3JuZykodm9pZCAqLCB1bnNpZ25lZCBjaGFyICosIHNpemVfdCksIHZvaWQgKnBfcm5nKQoreworICAgIGludCByZXQgPSBNQkVEVExTX0VSUl9FUlJPUl9DT1JSVVBUSU9OX0RFVEVDVEVEOworICAgIG1iZWR0bHNfc3ZjX2tleV9pZF90IGtleV9pZCA9IE1CRURUTFNfU1ZDX0tFWV9JRF9JTklUOworICAgIHBzYV9zdGF0dXNfdCBzdGF0dXM7CisgICAgbWJlZHRsc19lY3Bfa2V5cGFpciAqY3R4ID0gcGstPnBrX2N0eDsKKyAgICBwc2Ffa2V5X2F0dHJpYnV0ZXNfdCBhdHRyaWJ1dGVzID0gUFNBX0tFWV9BVFRSSUJVVEVTX0lOSVQ7CisgICAgdW5zaWduZWQgY2hhciBidWZbTUJFRFRMU19QU0FfTUFYX0VDX0tFWV9QQUlSX0xFTkdUSF07CisgICAgc2l6ZV90IGN1cnZlX2JpdHM7CisgICAgcHNhX2VjY19mYW1pbHlfdCBjdXJ2ZSA9CisgICAgICAgIG1iZWR0bHNfZWNjX2dyb3VwX3RvX3BzYShjdHgtPmdycC5pZCwgJmN1cnZlX2JpdHMpOworICAgIHNpemVfdCBrZXlfbGVuID0gUFNBX0JJVFNfVE9fQllURVMoY3VydmVfYml0cyk7CisgICAgcHNhX2FsZ29yaXRobV90IHBzYV9oYXNoID0gbWJlZHRsc19tZF9wc2FfYWxnX2Zyb21fdHlwZShtZF9hbGcpOworICAgIHBzYV9hbGdvcml0aG1fdCBwc2Ffc2lnX21kID0gTUJFRFRMU19QS19QU0FfQUxHX0VDRFNBX01BWUJFX0RFVChwc2FfaGFzaCk7CisgICAgKCh2b2lkKSBmX3JuZyk7CisgICAgKCh2b2lkKSBwX3JuZyk7CisKKyAgICBpZiAoY3VydmUgPT0gMCkgeworICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfUEtfQkFEX0lOUFVUX0RBVEE7CisgICAgfQorCisgICAgaWYgKGtleV9sZW4gPiBzaXplb2YoYnVmKSkgeworICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfRVJST1JfQ09SUlVQVElPTl9ERVRFQ1RFRDsKKyAgICB9CisgICAgcmV0ID0gbWJlZHRsc19tcGlfd3JpdGVfYmluYXJ5KCZjdHgtPmQsIGJ1Ziwga2V5X2xlbik7CisgICAgaWYgKHJldCAhPSAwKSB7CisgICAgICAgIGdvdG8gY2xlYW51cDsKKyAgICB9CisKKyAgICBwc2Ffc2V0X2tleV90eXBlKCZhdHRyaWJ1dGVzLCBQU0FfS0VZX1RZUEVfRUNDX0tFWV9QQUlSKGN1cnZlKSk7CisgICAgcHNhX3NldF9rZXlfdXNhZ2VfZmxhZ3MoJmF0dHJpYnV0ZXMsIFBTQV9LRVlfVVNBR0VfU0lHTl9IQVNIKTsKKyAgICBwc2Ffc2V0X2tleV9hbGdvcml0aG0oJmF0dHJpYnV0ZXMsIHBzYV9zaWdfbWQpOworCisgICAgc3RhdHVzID0gcHNhX2ltcG9ydF9rZXkoJmF0dHJpYnV0ZXMsIGJ1Ziwga2V5X2xlbiwgJmtleV9pZCk7CisgICAgaWYgKHN0YXR1cyAhPSBQU0FfU1VDQ0VTUykgeworICAgICAgICByZXQgPSBQU0FfUEtfVE9fTUJFRFRMU19FUlIoc3RhdHVzKTsKKyAgICAgICAgZ290byBjbGVhbnVwOworICAgIH0KKworICAgIHJldCA9IGVjZHNhX3NpZ25fcHNhKGtleV9pZCwgbWRfYWxnLCBoYXNoLCBoYXNoX2xlbiwgc2lnLCBzaWdfc2l6ZSwgc2lnX2xlbik7CisKK2NsZWFudXA6CisgICAgbWJlZHRsc19wbGF0Zm9ybV96ZXJvaXplKGJ1Ziwgc2l6ZW9mKGJ1ZikpOworICAgIHN0YXR1cyA9IHBzYV9kZXN0cm95X2tleShrZXlfaWQpOworICAgIGlmIChyZXQgPT0gMCAmJiBzdGF0dXMgIT0gUFNBX1NVQ0NFU1MpIHsKKyAgICAgICAgcmV0ID0gUFNBX1BLX1RPX01CRURUTFNfRVJSKHN0YXR1cyk7CisgICAgfQorCisgICAgcmV0dXJuIHJldDsKK30KKyNlbmRpZiAvKiBNQkVEVExTX1BLX1VTRV9QU0FfRUNfREFUQSAqLworI2Vsc2UgLyogTUJFRFRMU19VU0VfUFNBX0NSWVBUTyAqLworc3RhdGljIGludCBlY2RzYV9zaWduX3dyYXAobWJlZHRsc19wa19jb250ZXh0ICpwaywgbWJlZHRsc19tZF90eXBlX3QgbWRfYWxnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdW5zaWduZWQgY2hhciAqaGFzaCwgc2l6ZV90IGhhc2hfbGVuLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgY2hhciAqc2lnLCBzaXplX3Qgc2lnX3NpemUsIHNpemVfdCAqc2lnX2xlbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCAoKmZfcm5nKSh2b2lkICosIHVuc2lnbmVkIGNoYXIgKiwgc2l6ZV90KSwgdm9pZCAqcF9ybmcpCit7CisgICAgcmV0dXJuIG1iZWR0bHNfZWNkc2Ffd3JpdGVfc2lnbmF0dXJlKChtYmVkdGxzX2VjZHNhX2NvbnRleHQgKikgcGstPnBrX2N0eCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWRfYWxnLCBoYXNoLCBoYXNoX2xlbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2lnLCBzaWdfc2l6ZSwgc2lnX2xlbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZl9ybmcsIHBfcm5nKTsKK30KKyNlbmRpZiAvKiBNQkVEVExTX1VTRV9QU0FfQ1JZUFRPICovCisjZW5kaWYgLyogTUJFRFRMU19QS19DQU5fRUNEU0FfU0lHTiAqLworCisjaWYgZGVmaW5lZChNQkVEVExTX0VDRFNBX0MpICYmIGRlZmluZWQoTUJFRFRMU19FQ1BfUkVTVEFSVEFCTEUpCisvKiBGb3J3YXJkIGRlY2xhcmF0aW9ucyAqLworc3RhdGljIGludCBlY2RzYV92ZXJpZnlfcnNfd3JhcChtYmVkdGxzX3BrX2NvbnRleHQgKmN0eCwgbWJlZHRsc19tZF90eXBlX3QgbWRfYWxnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1bnNpZ25lZCBjaGFyICpoYXNoLCBzaXplX3QgaGFzaF9sZW4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgKnNpZywgc2l6ZV90IHNpZ19sZW4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZvaWQgKnJzX2N0eCk7CisKK3N0YXRpYyBpbnQgZWNkc2Ffc2lnbl9yc193cmFwKG1iZWR0bHNfcGtfY29udGV4dCAqY3R4LCBtYmVkdGxzX21kX3R5cGVfdCBtZF9hbGcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1bnNpZ25lZCBjaGFyICpoYXNoLCBzaXplX3QgaGFzaF9sZW4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBjaGFyICpzaWcsIHNpemVfdCBzaWdfc2l6ZSwgc2l6ZV90ICpzaWdfbGVuLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50ICgqZl9ybmcpKHZvaWQgKiwgdW5zaWduZWQgY2hhciAqLCBzaXplX3QpLCB2b2lkICpwX3JuZywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZvaWQgKnJzX2N0eCk7CisKKy8qCisgKiBSZXN0YXJ0IGNvbnRleHQgZm9yIEVDRFNBIG9wZXJhdGlvbnMgd2l0aCBFQ0tFWSBjb250ZXh0CisgKgorICogV2UgbmVlZCB0byBzdG9yZSBhbiBhY3R1YWwgRUNEU0EgY29udGV4dCwgYXMgd2UgbmVlZCB0byBwYXNzIHRoZSBzYW1lIHRvCisgKiB0aGUgdW5kZXJseWluZyBlY2RzYSBmdW5jdGlvbiwgc28gd2UgY2FuJ3QgY3JlYXRlIGl0IG9uIHRoZSBmbHkgZXZlcnkgdGltZS4KKyAqLwordHlwZWRlZiBzdHJ1Y3QgeworICAgIG1iZWR0bHNfZWNkc2FfcmVzdGFydF9jdHggZWNkc2FfcnM7CisgICAgbWJlZHRsc19lY2RzYV9jb250ZXh0IGVjZHNhX2N0eDsKK30gZWNrZXlfcmVzdGFydF9jdHg7CisKK3N0YXRpYyB2b2lkICplY2tleV9yc19hbGxvYyh2b2lkKQoreworICAgIGVja2V5X3Jlc3RhcnRfY3R4ICpyc19jdHg7CisKKyAgICB2b2lkICpjdHggPSBtYmVkdGxzX2NhbGxvYygxLCBzaXplb2YoZWNrZXlfcmVzdGFydF9jdHgpKTsKKworICAgIGlmIChjdHggIT0gTlVMTCkgeworICAgICAgICByc19jdHggPSBjdHg7CisgICAgICAgIG1iZWR0bHNfZWNkc2FfcmVzdGFydF9pbml0KCZyc19jdHgtPmVjZHNhX3JzKTsKKyAgICAgICAgbWJlZHRsc19lY2RzYV9pbml0KCZyc19jdHgtPmVjZHNhX2N0eCk7CisgICAgfQorCisgICAgcmV0dXJuIGN0eDsKK30KKworc3RhdGljIHZvaWQgZWNrZXlfcnNfZnJlZSh2b2lkICpjdHgpCit7CisgICAgZWNrZXlfcmVzdGFydF9jdHggKnJzX2N0eDsKKworICAgIGlmIChjdHggPT0gTlVMTCkgeworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgcnNfY3R4ID0gY3R4OworICAgIG1iZWR0bHNfZWNkc2FfcmVzdGFydF9mcmVlKCZyc19jdHgtPmVjZHNhX3JzKTsKKyAgICBtYmVkdGxzX2VjZHNhX2ZyZWUoJnJzX2N0eC0+ZWNkc2FfY3R4KTsKKworICAgIG1iZWR0bHNfZnJlZShjdHgpOworfQorCitzdGF0aWMgaW50IGVja2V5X3ZlcmlmeV9yc193cmFwKG1iZWR0bHNfcGtfY29udGV4dCAqcGssIG1iZWR0bHNfbWRfdHlwZV90IG1kX2FsZywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdW5zaWduZWQgY2hhciAqaGFzaCwgc2l6ZV90IGhhc2hfbGVuLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1bnNpZ25lZCBjaGFyICpzaWcsIHNpemVfdCBzaWdfbGVuLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2b2lkICpyc19jdHgpCit7CisgICAgaW50IHJldCA9IE1CRURUTFNfRVJSX0VSUk9SX0NPUlJVUFRJT05fREVURUNURUQ7CisgICAgZWNrZXlfcmVzdGFydF9jdHggKnJzID0gcnNfY3R4OworCisgICAgLyogU2hvdWxkIG5ldmVyIGhhcHBlbiAqLworICAgIGlmIChycyA9PSBOVUxMKSB7CisgICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9QS19CQURfSU5QVVRfREFUQTsKKyAgICB9CisKKyAgICAvKiBzZXQgdXAgb3VyIG93biBzdWItY29udGV4dCBpZiBuZWVkZWQgKHRoYXQgaXMsIG9uIGZpcnN0IHJ1bikgKi8KKyAgICBpZiAocnMtPmVjZHNhX2N0eC5ncnAucGJpdHMgPT0gMCkgeworICAgICAgICBNQkVEVExTX01QSV9DSEsobWJlZHRsc19lY2RzYV9mcm9tX2tleXBhaXIoJnJzLT5lY2RzYV9jdHgsIHBrLT5wa19jdHgpKTsKKyAgICB9CisKKyAgICBNQkVEVExTX01QSV9DSEsoZWNkc2FfdmVyaWZ5X3JzX3dyYXAocGssCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1kX2FsZywgaGFzaCwgaGFzaF9sZW4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpZywgc2lnX2xlbiwgJnJzLT5lY2RzYV9ycykpOworCitjbGVhbnVwOgorICAgIHJldHVybiByZXQ7Cit9CisKK3N0YXRpYyBpbnQgZWNrZXlfc2lnbl9yc193cmFwKG1iZWR0bHNfcGtfY29udGV4dCAqcGssIG1iZWR0bHNfbWRfdHlwZV90IG1kX2FsZywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgKmhhc2gsIHNpemVfdCBoYXNoX2xlbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGNoYXIgKnNpZywgc2l6ZV90IHNpZ19zaXplLCBzaXplX3QgKnNpZ19sZW4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgKCpmX3JuZykodm9pZCAqLCB1bnNpZ25lZCBjaGFyICosIHNpemVfdCksIHZvaWQgKnBfcm5nLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdm9pZCAqcnNfY3R4KQoreworICAgIGludCByZXQgPSBNQkVEVExTX0VSUl9FUlJPUl9DT1JSVVBUSU9OX0RFVEVDVEVEOworICAgIGVja2V5X3Jlc3RhcnRfY3R4ICpycyA9IHJzX2N0eDsKKworICAgIC8qIFNob3VsZCBuZXZlciBoYXBwZW4gKi8KKyAgICBpZiAocnMgPT0gTlVMTCkgeworICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfUEtfQkFEX0lOUFVUX0RBVEE7CisgICAgfQorCisgICAgLyogc2V0IHVwIG91ciBvd24gc3ViLWNvbnRleHQgaWYgbmVlZGVkICh0aGF0IGlzLCBvbiBmaXJzdCBydW4pICovCisgICAgaWYgKHJzLT5lY2RzYV9jdHguZ3JwLnBiaXRzID09IDApIHsKKyAgICAgICAgTUJFRFRMU19NUElfQ0hLKG1iZWR0bHNfZWNkc2FfZnJvbV9rZXlwYWlyKCZycy0+ZWNkc2FfY3R4LCBway0+cGtfY3R4KSk7CisgICAgfQorCisgICAgTUJFRFRMU19NUElfQ0hLKGVjZHNhX3NpZ25fcnNfd3JhcChwaywgbWRfYWxnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFzaCwgaGFzaF9sZW4sIHNpZywgc2lnX3NpemUsIHNpZ19sZW4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmX3JuZywgcF9ybmcsICZycy0+ZWNkc2FfcnMpKTsKKworY2xlYW51cDoKKyAgICByZXR1cm4gcmV0OworfQorI2VuZGlmIC8qIE1CRURUTFNfRUNEU0FfQyAmJiBNQkVEVExTX0VDUF9SRVNUQVJUQUJMRSAqLworCisjaWYgZGVmaW5lZChNQkVEVExTX1VTRV9QU0FfQ1JZUFRPKQorI2lmIGRlZmluZWQoTUJFRFRMU19QS19VU0VfUFNBX0VDX0RBVEEpCitzdGF0aWMgaW50IGVja2V5X2NoZWNrX3BhaXJfcHNhKG1iZWR0bHNfcGtfY29udGV4dCAqcHViLCBtYmVkdGxzX3BrX2NvbnRleHQgKnBydikKK3sKKyAgICBwc2Ffc3RhdHVzX3Qgc3RhdHVzOworICAgIGludCByZXQgPSBNQkVEVExTX0VSUl9FUlJPUl9DT1JSVVBUSU9OX0RFVEVDVEVEOworICAgIHVpbnQ4X3QgcHJ2X2tleV9idWZbTUJFRFRMU19QU0FfTUFYX0VDX1BVQktFWV9MRU5HVEhdOworICAgIHNpemVfdCBwcnZfa2V5X2xlbjsKKyAgICBtYmVkdGxzX3N2Y19rZXlfaWRfdCBrZXlfaWQgPSBwcnYtPnByaXZfaWQ7CisKKyAgICBzdGF0dXMgPSBwc2FfZXhwb3J0X3B1YmxpY19rZXkoa2V5X2lkLCBwcnZfa2V5X2J1Ziwgc2l6ZW9mKHBydl9rZXlfYnVmKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJnBydl9rZXlfbGVuKTsKKyAgICByZXQgPSBQU0FfUEtfVE9fTUJFRFRMU19FUlIoc3RhdHVzKTsKKyAgICBpZiAocmV0ICE9IDApIHsKKyAgICAgICAgcmV0dXJuIHJldDsKKyAgICB9CisKKyAgICBpZiAobWVtY21wKHBydl9rZXlfYnVmLCBwdWItPnB1Yl9yYXcsIHB1Yi0+cHViX3Jhd19sZW4pICE9IDApIHsKKyAgICAgICAgcmV0dXJuIE1CRURUTFNfRVJSX1BLX0JBRF9JTlBVVF9EQVRBOworICAgIH0KKworICAgIHJldHVybiAwOworfQorI2Vsc2UgLyogTUJFRFRMU19QS19VU0VfUFNBX0VDX0RBVEEgKi8KK3N0YXRpYyBpbnQgZWNrZXlfY2hlY2tfcGFpcl9wc2EobWJlZHRsc19wa19jb250ZXh0ICpwdWIsIG1iZWR0bHNfcGtfY29udGV4dCAqcHJ2KQoreworICAgIHBzYV9zdGF0dXNfdCBzdGF0dXM7CisgICAgaW50IHJldCA9IE1CRURUTFNfRVJSX0VSUk9SX0NPUlJVUFRJT05fREVURUNURUQ7CisgICAgdWludDhfdCBwcnZfa2V5X2J1ZltNQkVEVExTX1BTQV9NQVhfRUNfUFVCS0VZX0xFTkdUSF07CisgICAgc2l6ZV90IHBydl9rZXlfbGVuOworICAgIHBzYV9zdGF0dXNfdCBkZXN0cnVjdGlvbl9zdGF0dXM7CisgICAgbWJlZHRsc19zdmNfa2V5X2lkX3Qga2V5X2lkID0gTUJFRFRMU19TVkNfS0VZX0lEX0lOSVQ7CisgICAgcHNhX2tleV9hdHRyaWJ1dGVzX3Qga2V5X2F0dHIgPSBQU0FfS0VZX0FUVFJJQlVURVNfSU5JVDsKKyAgICB1aW50OF90IHB1Yl9rZXlfYnVmW01CRURUTFNfUFNBX01BWF9FQ19QVUJLRVlfTEVOR1RIXTsKKyAgICBzaXplX3QgcHViX2tleV9sZW47CisgICAgc2l6ZV90IGN1cnZlX2JpdHM7CisgICAgY29uc3QgcHNhX2VjY19mYW1pbHlfdCBjdXJ2ZSA9CisgICAgICAgIG1iZWR0bHNfZWNjX2dyb3VwX3RvX3BzYShtYmVkdGxzX3BrX2VjX3JvKCpwcnYpLT5ncnAuaWQsICZjdXJ2ZV9iaXRzKTsKKyAgICBjb25zdCBzaXplX3QgY3VydmVfYnl0ZXMgPSBQU0FfQklUU19UT19CWVRFUyhjdXJ2ZV9iaXRzKTsKKworICAgIGlmIChjdXJ2ZSA9PSAwKSB7CisgICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9QS19CQURfSU5QVVRfREFUQTsKKyAgICB9CisKKyAgICBwc2Ffc2V0X2tleV90eXBlKCZrZXlfYXR0ciwgUFNBX0tFWV9UWVBFX0VDQ19LRVlfUEFJUihjdXJ2ZSkpOworICAgIHBzYV9zZXRfa2V5X3VzYWdlX2ZsYWdzKCZrZXlfYXR0ciwgUFNBX0tFWV9VU0FHRV9FWFBPUlQpOworCisgICAgcmV0ID0gbWJlZHRsc19tcGlfd3JpdGVfYmluYXJ5KCZtYmVkdGxzX3BrX2VjX3JvKCpwcnYpLT5kLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcnZfa2V5X2J1ZiwgY3VydmVfYnl0ZXMpOworICAgIGlmIChyZXQgIT0gMCkgeworICAgICAgICBtYmVkdGxzX3BsYXRmb3JtX3plcm9pemUocHJ2X2tleV9idWYsIHNpemVvZihwcnZfa2V5X2J1ZikpOworICAgICAgICByZXR1cm4gcmV0OworICAgIH0KKworICAgIHN0YXR1cyA9IHBzYV9pbXBvcnRfa2V5KCZrZXlfYXR0ciwgcHJ2X2tleV9idWYsIGN1cnZlX2J5dGVzLCAma2V5X2lkKTsKKyAgICBtYmVkdGxzX3BsYXRmb3JtX3plcm9pemUocHJ2X2tleV9idWYsIHNpemVvZihwcnZfa2V5X2J1ZikpOworICAgIHJldCA9IFBTQV9QS19UT19NQkVEVExTX0VSUihzdGF0dXMpOworICAgIGlmIChyZXQgIT0gMCkgeworICAgICAgICByZXR1cm4gcmV0OworICAgIH0KKworICAgIC8vIEZyb20gbm93IG9uIHBydl9rZXlfYnVmIGlzIHVzZWQgdG8gc3RvcmUgdGhlIHB1YmxpYyBrZXkgb2YgcHJ2LgorICAgIHN0YXR1cyA9IHBzYV9leHBvcnRfcHVibGljX2tleShrZXlfaWQsIHBydl9rZXlfYnVmLCBzaXplb2YocHJ2X2tleV9idWYpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmcHJ2X2tleV9sZW4pOworICAgIHJldCA9IFBTQV9QS19UT19NQkVEVExTX0VSUihzdGF0dXMpOworICAgIGRlc3RydWN0aW9uX3N0YXR1cyA9IHBzYV9kZXN0cm95X2tleShrZXlfaWQpOworICAgIGlmIChyZXQgIT0gMCkgeworICAgICAgICByZXR1cm4gcmV0OworICAgIH0gZWxzZSBpZiAoZGVzdHJ1Y3Rpb25fc3RhdHVzICE9IFBTQV9TVUNDRVNTKSB7CisgICAgICAgIHJldHVybiBQU0FfUEtfVE9fTUJFRFRMU19FUlIoZGVzdHJ1Y3Rpb25fc3RhdHVzKTsKKyAgICB9CisKKyAgICByZXQgPSBtYmVkdGxzX2VjcF9wb2ludF93cml0ZV9iaW5hcnkoJm1iZWR0bHNfcGtfZWNfcncoKnB1YiktPmdycCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJm1iZWR0bHNfcGtfZWNfcncoKnB1YiktPlEsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1CRURUTFNfRUNQX1BGX1VOQ09NUFJFU1NFRCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJnB1Yl9rZXlfbGVuLCBwdWJfa2V5X2J1ZiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZW9mKHB1Yl9rZXlfYnVmKSk7CisgICAgaWYgKHJldCAhPSAwKSB7CisgICAgICAgIHJldHVybiByZXQ7CisgICAgfQorCisgICAgaWYgKG1lbWNtcChwcnZfa2V5X2J1ZiwgcHViX2tleV9idWYsIGN1cnZlX2J5dGVzKSAhPSAwKSB7CisgICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9QS19CQURfSU5QVVRfREFUQTsKKyAgICB9CisKKyAgICByZXR1cm4gMDsKK30KKyNlbmRpZiAvKiBNQkVEVExTX1BLX1VTRV9QU0FfRUNfREFUQSAqLworCitzdGF0aWMgaW50IGVja2V5X2NoZWNrX3BhaXJfd3JhcChtYmVkdGxzX3BrX2NvbnRleHQgKnB1YiwgbWJlZHRsc19wa19jb250ZXh0ICpwcnYsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgKCpmX3JuZykodm9pZCAqLCB1bnNpZ25lZCBjaGFyICosIHNpemVfdCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2b2lkICpwX3JuZykKK3sKKyAgICAodm9pZCkgZl9ybmc7CisgICAgKHZvaWQpIHBfcm5nOworICAgIHJldHVybiBlY2tleV9jaGVja19wYWlyX3BzYShwdWIsIHBydik7Cit9CisjZWxzZSAvKiBNQkVEVExTX1VTRV9QU0FfQ1JZUFRPICovCitzdGF0aWMgaW50IGVja2V5X2NoZWNrX3BhaXJfd3JhcChtYmVkdGxzX3BrX2NvbnRleHQgKnB1YiwgbWJlZHRsc19wa19jb250ZXh0ICpwcnYsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgKCpmX3JuZykodm9pZCAqLCB1bnNpZ25lZCBjaGFyICosIHNpemVfdCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2b2lkICpwX3JuZykKK3sKKyAgICByZXR1cm4gbWJlZHRsc19lY3BfY2hlY2tfcHViX3ByaXYoKGNvbnN0IG1iZWR0bHNfZWNwX2tleXBhaXIgKikgcHViLT5wa19jdHgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjb25zdCBtYmVkdGxzX2VjcF9rZXlwYWlyICopIHBydi0+cGtfY3R4LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmX3JuZywgcF9ybmcpOworfQorI2VuZGlmIC8qIE1CRURUTFNfVVNFX1BTQV9DUllQVE8gKi8KKworI2lmIGRlZmluZWQoTUJFRFRMU19VU0VfUFNBX0NSWVBUTykKKyNpZiBkZWZpbmVkKE1CRURUTFNfUEtfVVNFX1BTQV9FQ19EQVRBKQorLyogV2hlbiBQS19VU0VfUFNBX0VDX0RBVEEgaXMgZGVmaW5lZCBvcGFxdWUgYW5kIG5vbi1vcGFxdWUga2V5cyBlbmQgdXAKKyAqIHVzaW5nIHRoZSBzYW1lIGZ1bmN0aW9uLiAqLworI2RlZmluZSBlY2RzYV9vcGFxdWVfY2hlY2tfcGFpcl93cmFwICAgIGVja2V5X2NoZWNrX3BhaXJfd3JhcAorI2Vsc2UgLyogTUJFRFRMU19QS19VU0VfUFNBX0VDX0RBVEEgKi8KK3N0YXRpYyBpbnQgZWNkc2Ffb3BhcXVlX2NoZWNrX3BhaXJfd3JhcChtYmVkdGxzX3BrX2NvbnRleHQgKnB1YiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYmVkdGxzX3BrX2NvbnRleHQgKnBydiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgKCpmX3JuZykodm9pZCAqLCB1bnNpZ25lZCBjaGFyICosIHNpemVfdCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdm9pZCAqcF9ybmcpCit7CisgICAgcHNhX3N0YXR1c190IHN0YXR1czsKKyAgICB1aW50OF90IGV4cF9wdWJfa2V5W01CRURUTFNfUEtfTUFYX0VDX1BVQktFWV9SQVdfTEVOXTsKKyAgICBzaXplX3QgZXhwX3B1Yl9rZXlfbGVuID0gMDsKKyAgICB1aW50OF90IHB1Yl9rZXlbTUJFRFRMU19QS19NQVhfRUNfUFVCS0VZX1JBV19MRU5dOworICAgIHNpemVfdCBwdWJfa2V5X2xlbiA9IDA7CisgICAgaW50IHJldDsKKyAgICAodm9pZCkgZl9ybmc7CisgICAgKHZvaWQpIHBfcm5nOworCisgICAgc3RhdHVzID0gcHNhX2V4cG9ydF9wdWJsaWNfa2V5KHBydi0+cHJpdl9pZCwgZXhwX3B1Yl9rZXksIHNpemVvZihleHBfcHViX2tleSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZleHBfcHViX2tleV9sZW4pOworICAgIGlmIChzdGF0dXMgIT0gUFNBX1NVQ0NFU1MpIHsKKyAgICAgICAgcmV0ID0gcHNhX3BrX3N0YXR1c190b19tYmVkdGxzKHN0YXR1cyk7CisgICAgICAgIHJldHVybiByZXQ7CisgICAgfQorICAgIHJldCA9IG1iZWR0bHNfZWNwX3BvaW50X3dyaXRlX2JpbmFyeSgmKG1iZWR0bHNfcGtfZWNfcm8oKnB1YiktPmdycCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICYobWJlZHRsc19wa19lY19ybygqcHViKS0+USksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1CRURUTFNfRUNQX1BGX1VOQ09NUFJFU1NFRCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJnB1Yl9rZXlfbGVuLCBwdWJfa2V5LCBzaXplb2YocHViX2tleSkpOworICAgIGlmIChyZXQgIT0gMCkgeworICAgICAgICByZXR1cm4gcmV0OworICAgIH0KKyAgICBpZiAoKGV4cF9wdWJfa2V5X2xlbiAhPSBwdWJfa2V5X2xlbikgfHwKKyAgICAgICAgbWVtY21wKGV4cF9wdWJfa2V5LCBwdWJfa2V5LCBleHBfcHViX2tleV9sZW4pKSB7CisgICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9QS19CQURfSU5QVVRfREFUQTsKKyAgICB9CisgICAgcmV0dXJuIDA7Cit9CisjZW5kaWYgLyogTUJFRFRMU19QS19VU0VfUFNBX0VDX0RBVEEgKi8KKyNlbmRpZiAvKiBNQkVEVExTX1VTRV9QU0FfQ1JZUFRPICovCisKKyNpZiAhZGVmaW5lZChNQkVEVExTX1BLX1VTRV9QU0FfRUNfREFUQSkKK3N0YXRpYyB2b2lkICplY2tleV9hbGxvY193cmFwKHZvaWQpCit7CisgICAgdm9pZCAqY3R4ID0gbWJlZHRsc19jYWxsb2MoMSwgc2l6ZW9mKG1iZWR0bHNfZWNwX2tleXBhaXIpKTsKKworICAgIGlmIChjdHggIT0gTlVMTCkgeworICAgICAgICBtYmVkdGxzX2VjcF9rZXlwYWlyX2luaXQoY3R4KTsKKyAgICB9CisKKyAgICByZXR1cm4gY3R4OworfQorCitzdGF0aWMgdm9pZCBlY2tleV9mcmVlX3dyYXAodm9pZCAqY3R4KQoreworICAgIG1iZWR0bHNfZWNwX2tleXBhaXJfZnJlZSgobWJlZHRsc19lY3Bfa2V5cGFpciAqKSBjdHgpOworICAgIG1iZWR0bHNfZnJlZShjdHgpOworfQorI2VuZGlmIC8qIE1CRURUTFNfUEtfVVNFX1BTQV9FQ19EQVRBICovCisKK3N0YXRpYyB2b2lkIGVja2V5X2RlYnVnKG1iZWR0bHNfcGtfY29udGV4dCAqcGssIG1iZWR0bHNfcGtfZGVidWdfaXRlbSAqaXRlbXMpCit7CisjaWYgZGVmaW5lZChNQkVEVExTX1BLX1VTRV9QU0FfRUNfREFUQSkKKyAgICBpdGVtcy0+dHlwZSA9IE1CRURUTFNfUEtfREVCVUdfUFNBX0VDOworICAgIGl0ZW1zLT5uYW1lID0gImVja2V5LlEiOworICAgIGl0ZW1zLT52YWx1ZSA9IHBrOworI2Vsc2UgLyogTUJFRFRMU19QS19VU0VfUFNBX0VDX0RBVEEgKi8KKyAgICBtYmVkdGxzX2VjcF9rZXlwYWlyICplY3AgPSAobWJlZHRsc19lY3Bfa2V5cGFpciAqKSBway0+cGtfY3R4OworICAgIGl0ZW1zLT50eXBlID0gTUJFRFRMU19QS19ERUJVR19FQ1A7CisgICAgaXRlbXMtPm5hbWUgPSAiZWNrZXkuUSI7CisgICAgaXRlbXMtPnZhbHVlID0gJihlY3AtPlEpOworI2VuZGlmIC8qIE1CRURUTFNfUEtfVVNFX1BTQV9FQ19EQVRBICovCit9CisKK2NvbnN0IG1iZWR0bHNfcGtfaW5mb190IG1iZWR0bHNfZWNrZXlfaW5mbyA9IHsKKyAgICAudHlwZSA9IE1CRURUTFNfUEtfRUNLRVksCisgICAgLm5hbWUgPSAiRUMiLAorICAgIC5nZXRfYml0bGVuID0gZWNrZXlfZ2V0X2JpdGxlbiwKKyAgICAuY2FuX2RvID0gZWNrZXlfY2FuX2RvLAorI2lmIGRlZmluZWQoTUJFRFRMU19QS19DQU5fRUNEU0FfVkVSSUZZKQorICAgIC52ZXJpZnlfZnVuYyA9IGVjZHNhX3ZlcmlmeV93cmFwLCAgIC8qIENvbXBhdGlibGUga2V5IHN0cnVjdHVyZXMgKi8KKyNlbHNlIC8qIE1CRURUTFNfUEtfQ0FOX0VDRFNBX1ZFUklGWSAqLworICAgIC52ZXJpZnlfZnVuYyA9IE5VTEwsCisjZW5kaWYgLyogTUJFRFRMU19QS19DQU5fRUNEU0FfVkVSSUZZICovCisjaWYgZGVmaW5lZChNQkVEVExTX1BLX0NBTl9FQ0RTQV9TSUdOKQorICAgIC5zaWduX2Z1bmMgPSBlY2RzYV9zaWduX3dyYXAsICAgLyogQ29tcGF0aWJsZSBrZXkgc3RydWN0dXJlcyAqLworI2Vsc2UgLyogTUJFRFRMU19QS19DQU5fRUNEU0FfVkVSSUZZICovCisgICAgLnNpZ25fZnVuYyA9IE5VTEwsCisjZW5kaWYgLyogTUJFRFRMU19QS19DQU5fRUNEU0FfVkVSSUZZICovCisjaWYgZGVmaW5lZChNQkVEVExTX0VDRFNBX0MpICYmIGRlZmluZWQoTUJFRFRMU19FQ1BfUkVTVEFSVEFCTEUpCisgICAgLnZlcmlmeV9yc19mdW5jID0gZWNrZXlfdmVyaWZ5X3JzX3dyYXAsCisgICAgLnNpZ25fcnNfZnVuYyA9IGVja2V5X3NpZ25fcnNfd3JhcCwKKyAgICAucnNfYWxsb2NfZnVuYyA9IGVja2V5X3JzX2FsbG9jLAorICAgIC5yc19mcmVlX2Z1bmMgPSBlY2tleV9yc19mcmVlLAorI2VuZGlmIC8qIE1CRURUTFNfRUNEU0FfQyAmJiBNQkVEVExTX0VDUF9SRVNUQVJUQUJMRSAqLworICAgIC5kZWNyeXB0X2Z1bmMgPSBOVUxMLAorICAgIC5lbmNyeXB0X2Z1bmMgPSBOVUxMLAorICAgIC5jaGVja19wYWlyX2Z1bmMgPSBlY2tleV9jaGVja19wYWlyX3dyYXAsCisjaWYgZGVmaW5lZChNQkVEVExTX1BLX1VTRV9QU0FfRUNfREFUQSkKKyAgICAuY3R4X2FsbG9jX2Z1bmMgPSBOVUxMLAorICAgIC5jdHhfZnJlZV9mdW5jID0gTlVMTCwKKyNlbHNlIC8qIE1CRURUTFNfUEtfVVNFX1BTQV9FQ19EQVRBICovCisgICAgLmN0eF9hbGxvY19mdW5jID0gZWNrZXlfYWxsb2Nfd3JhcCwKKyAgICAuY3R4X2ZyZWVfZnVuYyA9IGVja2V5X2ZyZWVfd3JhcCwKKyNlbmRpZiAvKiBNQkVEVExTX1BLX1VTRV9QU0FfRUNfREFUQSAqLworICAgIC5kZWJ1Z19mdW5jID0gZWNrZXlfZGVidWcsCit9OworCisvKgorICogRUMga2V5IHJlc3RyaWN0ZWQgdG8gRUNESAorICovCitzdGF0aWMgaW50IGVja2V5ZGhfY2FuX2RvKG1iZWR0bHNfcGtfdHlwZV90IHR5cGUpCit7CisgICAgcmV0dXJuIHR5cGUgPT0gTUJFRFRMU19QS19FQ0tFWSB8fAorICAgICAgICAgICB0eXBlID09IE1CRURUTFNfUEtfRUNLRVlfREg7Cit9CisKK2NvbnN0IG1iZWR0bHNfcGtfaW5mb190IG1iZWR0bHNfZWNrZXlkaF9pbmZvID0geworICAgIC50eXBlID0gTUJFRFRMU19QS19FQ0tFWV9ESCwKKyAgICAubmFtZSA9ICJFQ19ESCIsCisgICAgLmdldF9iaXRsZW4gPSBlY2tleV9nZXRfYml0bGVuLCAgICAgICAgIC8qIFNhbWUgdW5kZXJseWluZyBrZXkgc3RydWN0dXJlICovCisgICAgLmNhbl9kbyA9IGVja2V5ZGhfY2FuX2RvLAorICAgIC52ZXJpZnlfZnVuYyA9IE5VTEwsCisgICAgLnNpZ25fZnVuYyA9IE5VTEwsCisjaWYgZGVmaW5lZChNQkVEVExTX0VDRFNBX0MpICYmIGRlZmluZWQoTUJFRFRMU19FQ1BfUkVTVEFSVEFCTEUpCisgICAgLnZlcmlmeV9yc19mdW5jID0gTlVMTCwKKyAgICAuc2lnbl9yc19mdW5jID0gTlVMTCwKKyNlbmRpZiAvKiBNQkVEVExTX0VDRFNBX0MgJiYgTUJFRFRMU19FQ1BfUkVTVEFSVEFCTEUgKi8KKyAgICAuZGVjcnlwdF9mdW5jID0gTlVMTCwKKyAgICAuZW5jcnlwdF9mdW5jID0gTlVMTCwKKyAgICAuY2hlY2tfcGFpcl9mdW5jID0gZWNrZXlfY2hlY2tfcGFpcl93cmFwLAorI2lmIGRlZmluZWQoTUJFRFRMU19QS19VU0VfUFNBX0VDX0RBVEEpCisgICAgLmN0eF9hbGxvY19mdW5jID0gTlVMTCwKKyAgICAuY3R4X2ZyZWVfZnVuYyA9IE5VTEwsCisjZWxzZSAvKiBNQkVEVExTX1BLX1VTRV9QU0FfRUNfREFUQSAqLworICAgIC5jdHhfYWxsb2NfZnVuYyA9IGVja2V5X2FsbG9jX3dyYXAsICAgLyogU2FtZSB1bmRlcmx5aW5nIGtleSBzdHJ1Y3R1cmUgKi8KKyAgICAuY3R4X2ZyZWVfZnVuYyA9IGVja2V5X2ZyZWVfd3JhcCwgICAgLyogU2FtZSB1bmRlcmx5aW5nIGtleSBzdHJ1Y3R1cmUgKi8KKyNlbmRpZiAvKiBNQkVEVExTX1BLX1VTRV9QU0FfRUNfREFUQSAqLworICAgIC5kZWJ1Z19mdW5jID0gZWNrZXlfZGVidWcsICAgICAgICAgICAgLyogU2FtZSB1bmRlcmx5aW5nIGtleSBzdHJ1Y3R1cmUgKi8KK307CisKKyNpZiBkZWZpbmVkKE1CRURUTFNfUEtfQ0FOX0VDRFNBX1NPTUUpCitzdGF0aWMgaW50IGVjZHNhX2Nhbl9kbyhtYmVkdGxzX3BrX3R5cGVfdCB0eXBlKQoreworICAgIHJldHVybiB0eXBlID09IE1CRURUTFNfUEtfRUNEU0E7Cit9CisKKyNpZiBkZWZpbmVkKE1CRURUTFNfRUNEU0FfQykgJiYgZGVmaW5lZChNQkVEVExTX0VDUF9SRVNUQVJUQUJMRSkKK3N0YXRpYyBpbnQgZWNkc2FfdmVyaWZ5X3JzX3dyYXAobWJlZHRsc19wa19jb250ZXh0ICpwaywgbWJlZHRsc19tZF90eXBlX3QgbWRfYWxnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1bnNpZ25lZCBjaGFyICpoYXNoLCBzaXplX3QgaGFzaF9sZW4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgKnNpZywgc2l6ZV90IHNpZ19sZW4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZvaWQgKnJzX2N0eCkKK3sKKyAgICBpbnQgcmV0ID0gTUJFRFRMU19FUlJfRVJST1JfQ09SUlVQVElPTl9ERVRFQ1RFRDsKKyAgICAoKHZvaWQpIG1kX2FsZyk7CisKKyAgICByZXQgPSBtYmVkdGxzX2VjZHNhX3JlYWRfc2lnbmF0dXJlX3Jlc3RhcnRhYmxlKAorICAgICAgICAobWJlZHRsc19lY2RzYV9jb250ZXh0ICopIHBrLT5wa19jdHgsCisgICAgICAgIGhhc2gsIGhhc2hfbGVuLCBzaWcsIHNpZ19sZW4sCisgICAgICAgIChtYmVkdGxzX2VjZHNhX3Jlc3RhcnRfY3R4ICopIHJzX2N0eCk7CisKKyAgICBpZiAocmV0ID09IE1CRURUTFNfRVJSX0VDUF9TSUdfTEVOX01JU01BVENIKSB7CisgICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9QS19TSUdfTEVOX01JU01BVENIOworICAgIH0KKworICAgIHJldHVybiByZXQ7Cit9CisKK3N0YXRpYyBpbnQgZWNkc2Ffc2lnbl9yc193cmFwKG1iZWR0bHNfcGtfY29udGV4dCAqcGssIG1iZWR0bHNfbWRfdHlwZV90IG1kX2FsZywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgKmhhc2gsIHNpemVfdCBoYXNoX2xlbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGNoYXIgKnNpZywgc2l6ZV90IHNpZ19zaXplLCBzaXplX3QgKnNpZ19sZW4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgKCpmX3JuZykodm9pZCAqLCB1bnNpZ25lZCBjaGFyICosIHNpemVfdCksIHZvaWQgKnBfcm5nLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdm9pZCAqcnNfY3R4KQoreworICAgIHJldHVybiBtYmVkdGxzX2VjZHNhX3dyaXRlX3NpZ25hdHVyZV9yZXN0YXJ0YWJsZSgKKyAgICAgICAgKG1iZWR0bHNfZWNkc2FfY29udGV4dCAqKSBway0+cGtfY3R4LAorICAgICAgICBtZF9hbGcsIGhhc2gsIGhhc2hfbGVuLCBzaWcsIHNpZ19zaXplLCBzaWdfbGVuLCBmX3JuZywgcF9ybmcsCisgICAgICAgIChtYmVkdGxzX2VjZHNhX3Jlc3RhcnRfY3R4ICopIHJzX2N0eCk7CisKK30KKworc3RhdGljIHZvaWQgKmVjZHNhX3JzX2FsbG9jKHZvaWQpCit7CisgICAgdm9pZCAqY3R4ID0gbWJlZHRsc19jYWxsb2MoMSwgc2l6ZW9mKG1iZWR0bHNfZWNkc2FfcmVzdGFydF9jdHgpKTsKKworICAgIGlmIChjdHggIT0gTlVMTCkgeworICAgICAgICBtYmVkdGxzX2VjZHNhX3Jlc3RhcnRfaW5pdChjdHgpOworICAgIH0KKworICAgIHJldHVybiBjdHg7Cit9CisKK3N0YXRpYyB2b2lkIGVjZHNhX3JzX2ZyZWUodm9pZCAqY3R4KQoreworICAgIG1iZWR0bHNfZWNkc2FfcmVzdGFydF9mcmVlKGN0eCk7CisgICAgbWJlZHRsc19mcmVlKGN0eCk7Cit9CisjZW5kaWYgLyogTUJFRFRMU19FQ0RTQV9DICYmIE1CRURUTFNfRUNQX1JFU1RBUlRBQkxFICovCisKK2NvbnN0IG1iZWR0bHNfcGtfaW5mb190IG1iZWR0bHNfZWNkc2FfaW5mbyA9IHsKKyAgICAudHlwZSA9IE1CRURUTFNfUEtfRUNEU0EsCisgICAgLm5hbWUgPSAiRUNEU0EiLAorICAgIC5nZXRfYml0bGVuID0gZWNrZXlfZ2V0X2JpdGxlbiwgICAgIC8qIENvbXBhdGlibGUga2V5IHN0cnVjdHVyZXMgKi8KKyAgICAuY2FuX2RvID0gZWNkc2FfY2FuX2RvLAorI2lmIGRlZmluZWQoTUJFRFRMU19QS19DQU5fRUNEU0FfVkVSSUZZKQorICAgIC52ZXJpZnlfZnVuYyA9IGVjZHNhX3ZlcmlmeV93cmFwLCAgIC8qIENvbXBhdGlibGUga2V5IHN0cnVjdHVyZXMgKi8KKyNlbHNlIC8qIE1CRURUTFNfUEtfQ0FOX0VDRFNBX1ZFUklGWSAqLworICAgIC52ZXJpZnlfZnVuYyA9IE5VTEwsCisjZW5kaWYgLyogTUJFRFRMU19QS19DQU5fRUNEU0FfVkVSSUZZICovCisjaWYgZGVmaW5lZChNQkVEVExTX1BLX0NBTl9FQ0RTQV9TSUdOKQorICAgIC5zaWduX2Z1bmMgPSBlY2RzYV9zaWduX3dyYXAsICAgLyogQ29tcGF0aWJsZSBrZXkgc3RydWN0dXJlcyAqLworI2Vsc2UgLyogTUJFRFRMU19QS19DQU5fRUNEU0FfU0lHTiAqLworICAgIC5zaWduX2Z1bmMgPSBOVUxMLAorI2VuZGlmIC8qIE1CRURUTFNfUEtfQ0FOX0VDRFNBX1NJR04gKi8KKyNpZiBkZWZpbmVkKE1CRURUTFNfRUNEU0FfQykgJiYgZGVmaW5lZChNQkVEVExTX0VDUF9SRVNUQVJUQUJMRSkKKyAgICAudmVyaWZ5X3JzX2Z1bmMgPSBlY2RzYV92ZXJpZnlfcnNfd3JhcCwKKyAgICAuc2lnbl9yc19mdW5jID0gZWNkc2Ffc2lnbl9yc193cmFwLAorICAgIC5yc19hbGxvY19mdW5jID0gZWNkc2FfcnNfYWxsb2MsCisgICAgLnJzX2ZyZWVfZnVuYyA9IGVjZHNhX3JzX2ZyZWUsCisjZW5kaWYgLyogTUJFRFRMU19FQ0RTQV9DICYmIE1CRURUTFNfRUNQX1JFU1RBUlRBQkxFICovCisgICAgLmRlY3J5cHRfZnVuYyA9IE5VTEwsCisgICAgLmVuY3J5cHRfZnVuYyA9IE5VTEwsCisgICAgLmNoZWNrX3BhaXJfZnVuYyA9IGVja2V5X2NoZWNrX3BhaXJfd3JhcCwgICAvKiBDb21wYXRpYmxlIGtleSBzdHJ1Y3R1cmVzICovCisjaWYgZGVmaW5lZChNQkVEVExTX1BLX1VTRV9QU0FfRUNfREFUQSkKKyAgICAuY3R4X2FsbG9jX2Z1bmMgPSBOVUxMLAorICAgIC5jdHhfZnJlZV9mdW5jID0gTlVMTCwKKyNlbHNlIC8qIE1CRURUTFNfUEtfVVNFX1BTQV9FQ19EQVRBICovCisgICAgLmN0eF9hbGxvY19mdW5jID0gZWNrZXlfYWxsb2Nfd3JhcCwgICAvKiBDb21wYXRpYmxlIGtleSBzdHJ1Y3R1cmVzICovCisgICAgLmN0eF9mcmVlX2Z1bmMgPSBlY2tleV9mcmVlX3dyYXAsICAgLyogQ29tcGF0aWJsZSBrZXkgc3RydWN0dXJlcyAqLworI2VuZGlmIC8qIE1CRURUTFNfUEtfVVNFX1BTQV9FQ19EQVRBICovCisgICAgLmRlYnVnX2Z1bmMgPSBlY2tleV9kZWJ1ZywgICAgICAgIC8qIENvbXBhdGlibGUga2V5IHN0cnVjdHVyZXMgKi8KK307CisjZW5kaWYgLyogTUJFRFRMU19QS19DQU5fRUNEU0FfU09NRSAqLworI2VuZGlmIC8qIE1CRURUTFNfUEtfSEFWRV9FQ0NfS0VZUyAqLworCisjaWYgZGVmaW5lZChNQkVEVExTX1BLX1JTQV9BTFRfU1VQUE9SVCkKKy8qCisgKiBTdXBwb3J0IGZvciBhbHRlcm5hdGl2ZSBSU0EtcHJpdmF0ZSBpbXBsZW1lbnRhdGlvbnMKKyAqLworCitzdGF0aWMgaW50IHJzYV9hbHRfY2FuX2RvKG1iZWR0bHNfcGtfdHlwZV90IHR5cGUpCit7CisgICAgcmV0dXJuIHR5cGUgPT0gTUJFRFRMU19QS19SU0E7Cit9CisKK3N0YXRpYyBzaXplX3QgcnNhX2FsdF9nZXRfYml0bGVuKG1iZWR0bHNfcGtfY29udGV4dCAqcGspCit7CisgICAgY29uc3QgbWJlZHRsc19yc2FfYWx0X2NvbnRleHQgKnJzYV9hbHQgPSBway0+cGtfY3R4OworCisgICAgcmV0dXJuIDggKiByc2FfYWx0LT5rZXlfbGVuX2Z1bmMocnNhX2FsdC0+a2V5KTsKK30KKworc3RhdGljIGludCByc2FfYWx0X3NpZ25fd3JhcChtYmVkdGxzX3BrX2NvbnRleHQgKnBrLCBtYmVkdGxzX21kX3R5cGVfdCBtZF9hbGcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgKmhhc2gsIHNpemVfdCBoYXNoX2xlbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgY2hhciAqc2lnLCBzaXplX3Qgc2lnX3NpemUsIHNpemVfdCAqc2lnX2xlbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50ICgqZl9ybmcpKHZvaWQgKiwgdW5zaWduZWQgY2hhciAqLCBzaXplX3QpLCB2b2lkICpwX3JuZykKK3sKKyAgICBtYmVkdGxzX3JzYV9hbHRfY29udGV4dCAqcnNhX2FsdCA9IHBrLT5wa19jdHg7CisKKyNpZiBTSVpFX01BWCA+IFVJTlRfTUFYCisgICAgaWYgKFVJTlRfTUFYIDwgaGFzaF9sZW4pIHsKKyAgICAgICAgcmV0dXJuIE1CRURUTFNfRVJSX1BLX0JBRF9JTlBVVF9EQVRBOworICAgIH0KKyNlbmRpZgorCisgICAgKnNpZ19sZW4gPSByc2FfYWx0LT5rZXlfbGVuX2Z1bmMocnNhX2FsdC0+a2V5KTsKKyAgICBpZiAoKnNpZ19sZW4gPiBNQkVEVExTX1BLX1NJR05BVFVSRV9NQVhfU0laRSkgeworICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfUEtfQkFEX0lOUFVUX0RBVEE7CisgICAgfQorICAgIGlmICgqc2lnX2xlbiA+IHNpZ19zaXplKSB7CisgICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9QS19CVUZGRVJfVE9PX1NNQUxMOworICAgIH0KKworICAgIHJldHVybiByc2FfYWx0LT5zaWduX2Z1bmMocnNhX2FsdC0+a2V5LCBmX3JuZywgcF9ybmcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZF9hbGcsICh1bnNpZ25lZCBpbnQpIGhhc2hfbGVuLCBoYXNoLCBzaWcpOworfQorCitzdGF0aWMgaW50IHJzYV9hbHRfZGVjcnlwdF93cmFwKG1iZWR0bHNfcGtfY29udGV4dCAqcGssCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgKmlucHV0LCBzaXplX3QgaWxlbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgY2hhciAqb3V0cHV0LCBzaXplX3QgKm9sZW4sIHNpemVfdCBvc2l6ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50ICgqZl9ybmcpKHZvaWQgKiwgdW5zaWduZWQgY2hhciAqLCBzaXplX3QpLCB2b2lkICpwX3JuZykKK3sKKyAgICBtYmVkdGxzX3JzYV9hbHRfY29udGV4dCAqcnNhX2FsdCA9IHBrLT5wa19jdHg7CisKKyAgICAoKHZvaWQpIGZfcm5nKTsKKyAgICAoKHZvaWQpIHBfcm5nKTsKKworICAgIGlmIChpbGVuICE9IHJzYV9hbHQtPmtleV9sZW5fZnVuYyhyc2FfYWx0LT5rZXkpKSB7CisgICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9SU0FfQkFEX0lOUFVUX0RBVEE7CisgICAgfQorCisgICAgcmV0dXJuIHJzYV9hbHQtPmRlY3J5cHRfZnVuYyhyc2FfYWx0LT5rZXksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbGVuLCBpbnB1dCwgb3V0cHV0LCBvc2l6ZSk7Cit9CisKKyNpZiBkZWZpbmVkKE1CRURUTFNfUlNBX0MpCitzdGF0aWMgaW50IHJzYV9hbHRfY2hlY2tfcGFpcihtYmVkdGxzX3BrX2NvbnRleHQgKnB1YiwgbWJlZHRsc19wa19jb250ZXh0ICpwcnYsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgKCpmX3JuZykodm9pZCAqLCB1bnNpZ25lZCBjaGFyICosIHNpemVfdCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2b2lkICpwX3JuZykKK3sKKyAgICB1bnNpZ25lZCBjaGFyIHNpZ1tNQkVEVExTX01QSV9NQVhfU0laRV07CisgICAgdW5zaWduZWQgY2hhciBoYXNoWzMyXTsKKyAgICBzaXplX3Qgc2lnX2xlbiA9IDA7CisgICAgaW50IHJldCA9IE1CRURUTFNfRVJSX0VSUk9SX0NPUlJVUFRJT05fREVURUNURUQ7CisKKyAgICBpZiAocnNhX2FsdF9nZXRfYml0bGVuKHBydikgIT0gcnNhX2dldF9iaXRsZW4ocHViKSkgeworICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfUlNBX0tFWV9DSEVDS19GQUlMRUQ7CisgICAgfQorCisgICAgbWVtc2V0KGhhc2gsIDB4MmEsIHNpemVvZihoYXNoKSk7CisKKyAgICBpZiAoKHJldCA9IHJzYV9hbHRfc2lnbl93cmFwKHBydiwgTUJFRFRMU19NRF9OT05FLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFzaCwgc2l6ZW9mKGhhc2gpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2lnLCBzaXplb2Yoc2lnKSwgJnNpZ19sZW4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmX3JuZywgcF9ybmcpKSAhPSAwKSB7CisgICAgICAgIHJldHVybiByZXQ7CisgICAgfQorCisgICAgaWYgKHJzYV92ZXJpZnlfd3JhcChwdWIsIE1CRURUTFNfTURfTk9ORSwKKyAgICAgICAgICAgICAgICAgICAgICAgIGhhc2gsIHNpemVvZihoYXNoKSwgc2lnLCBzaWdfbGVuKSAhPSAwKSB7CisgICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9SU0FfS0VZX0NIRUNLX0ZBSUxFRDsKKyAgICB9CisKKyAgICByZXR1cm4gMDsKK30KKyNlbmRpZiAvKiBNQkVEVExTX1JTQV9DICovCisKK3N0YXRpYyB2b2lkICpyc2FfYWx0X2FsbG9jX3dyYXAodm9pZCkKK3sKKyAgICB2b2lkICpjdHggPSBtYmVkdGxzX2NhbGxvYygxLCBzaXplb2YobWJlZHRsc19yc2FfYWx0X2NvbnRleHQpKTsKKworICAgIGlmIChjdHggIT0gTlVMTCkgeworICAgICAgICBtZW1zZXQoY3R4LCAwLCBzaXplb2YobWJlZHRsc19yc2FfYWx0X2NvbnRleHQpKTsKKyAgICB9CisKKyAgICByZXR1cm4gY3R4OworfQorCitzdGF0aWMgdm9pZCByc2FfYWx0X2ZyZWVfd3JhcCh2b2lkICpjdHgpCit7CisgICAgbWJlZHRsc196ZXJvaXplX2FuZF9mcmVlKGN0eCwgc2l6ZW9mKG1iZWR0bHNfcnNhX2FsdF9jb250ZXh0KSk7Cit9CisKK2NvbnN0IG1iZWR0bHNfcGtfaW5mb190IG1iZWR0bHNfcnNhX2FsdF9pbmZvID0geworICAgIC50eXBlID0gTUJFRFRMU19QS19SU0FfQUxULAorICAgIC5uYW1lID0gIlJTQS1hbHQiLAorICAgIC5nZXRfYml0bGVuID0gcnNhX2FsdF9nZXRfYml0bGVuLAorICAgIC5jYW5fZG8gPSByc2FfYWx0X2Nhbl9kbywKKyAgICAudmVyaWZ5X2Z1bmMgPSBOVUxMLAorICAgIC5zaWduX2Z1bmMgPSByc2FfYWx0X3NpZ25fd3JhcCwKKyNpZiBkZWZpbmVkKE1CRURUTFNfRUNEU0FfQykgJiYgZGVmaW5lZChNQkVEVExTX0VDUF9SRVNUQVJUQUJMRSkKKyAgICAudmVyaWZ5X3JzX2Z1bmMgPSBOVUxMLAorICAgIC5zaWduX3JzX2Z1bmMgPSBOVUxMLAorICAgIC5yc19hbGxvY19mdW5jID0gTlVMTCwKKyAgICAucnNfZnJlZV9mdW5jID0gTlVMTCwKKyNlbmRpZiAvKiBNQkVEVExTX0VDRFNBX0MgJiYgTUJFRFRMU19FQ1BfUkVTVEFSVEFCTEUgKi8KKyAgICAuZGVjcnlwdF9mdW5jID0gcnNhX2FsdF9kZWNyeXB0X3dyYXAsCisgICAgLmVuY3J5cHRfZnVuYyA9IE5VTEwsCisjaWYgZGVmaW5lZChNQkVEVExTX1JTQV9DKQorICAgIC5jaGVja19wYWlyX2Z1bmMgPSByc2FfYWx0X2NoZWNrX3BhaXIsCisjZWxzZQorICAgIC5jaGVja19wYWlyX2Z1bmMgPSBOVUxMLAorI2VuZGlmCisgICAgLmN0eF9hbGxvY19mdW5jID0gcnNhX2FsdF9hbGxvY193cmFwLAorICAgIC5jdHhfZnJlZV9mdW5jID0gcnNhX2FsdF9mcmVlX3dyYXAsCisgICAgLmRlYnVnX2Z1bmMgPSBOVUxMLAorfTsKKyNlbmRpZiAvKiBNQkVEVExTX1BLX1JTQV9BTFRfU1VQUE9SVCAqLworCisjaWYgZGVmaW5lZChNQkVEVExTX1VTRV9QU0FfQ1JZUFRPKQorc3RhdGljIHNpemVfdCBvcGFxdWVfZ2V0X2JpdGxlbihtYmVkdGxzX3BrX2NvbnRleHQgKnBrKQoreworICAgIHNpemVfdCBiaXRzOworICAgIHBzYV9rZXlfYXR0cmlidXRlc190IGF0dHJpYnV0ZXMgPSBQU0FfS0VZX0FUVFJJQlVURVNfSU5JVDsKKworICAgIGlmIChQU0FfU1VDQ0VTUyAhPSBwc2FfZ2V0X2tleV9hdHRyaWJ1dGVzKHBrLT5wcml2X2lkLCAmYXR0cmlidXRlcykpIHsKKyAgICAgICAgcmV0dXJuIDA7CisgICAgfQorCisgICAgYml0cyA9IHBzYV9nZXRfa2V5X2JpdHMoJmF0dHJpYnV0ZXMpOworICAgIHBzYV9yZXNldF9rZXlfYXR0cmlidXRlcygmYXR0cmlidXRlcyk7CisgICAgcmV0dXJuIGJpdHM7Cit9CisKKyNpZiBkZWZpbmVkKE1CRURUTFNfUEtfSEFWRV9FQ0NfS0VZUykKK3N0YXRpYyBpbnQgZWNkc2Ffb3BhcXVlX2Nhbl9kbyhtYmVkdGxzX3BrX3R5cGVfdCB0eXBlKQoreworICAgIHJldHVybiB0eXBlID09IE1CRURUTFNfUEtfRUNLRVkgfHwKKyAgICAgICAgICAgdHlwZSA9PSBNQkVEVExTX1BLX0VDRFNBOworfQorCitjb25zdCBtYmVkdGxzX3BrX2luZm9fdCBtYmVkdGxzX2VjZHNhX29wYXF1ZV9pbmZvID0geworICAgIC50eXBlID0gTUJFRFRMU19QS19PUEFRVUUsCisgICAgLm5hbWUgPSAiT3BhcXVlIiwKKyAgICAuZ2V0X2JpdGxlbiA9IG9wYXF1ZV9nZXRfYml0bGVuLAorICAgIC5jYW5fZG8gPSBlY2RzYV9vcGFxdWVfY2FuX2RvLAorI2lmIGRlZmluZWQoTUJFRFRMU19QS19DQU5fRUNEU0FfVkVSSUZZKQorICAgIC52ZXJpZnlfZnVuYyA9IGVjZHNhX29wYXF1ZV92ZXJpZnlfd3JhcCwKKyNlbHNlIC8qIE1CRURUTFNfUEtfQ0FOX0VDRFNBX1ZFUklGWSAqLworICAgIC52ZXJpZnlfZnVuYyA9IE5VTEwsCisjZW5kaWYgLyogTUJFRFRMU19QS19DQU5fRUNEU0FfVkVSSUZZICovCisjaWYgZGVmaW5lZChNQkVEVExTX1BLX0NBTl9FQ0RTQV9TSUdOKQorICAgIC5zaWduX2Z1bmMgPSBlY2RzYV9vcGFxdWVfc2lnbl93cmFwLAorI2Vsc2UgLyogTUJFRFRMU19QS19DQU5fRUNEU0FfU0lHTiAqLworICAgIC5zaWduX2Z1bmMgPSBOVUxMLAorI2VuZGlmIC8qIE1CRURUTFNfUEtfQ0FOX0VDRFNBX1NJR04gKi8KKyNpZiBkZWZpbmVkKE1CRURUTFNfRUNEU0FfQykgJiYgZGVmaW5lZChNQkVEVExTX0VDUF9SRVNUQVJUQUJMRSkKKyAgICAudmVyaWZ5X3JzX2Z1bmMgPSBOVUxMLAorICAgIC5zaWduX3JzX2Z1bmMgPSBOVUxMLAorICAgIC5yc19hbGxvY19mdW5jID0gTlVMTCwKKyAgICAucnNfZnJlZV9mdW5jID0gTlVMTCwKKyNlbmRpZiAvKiBNQkVEVExTX0VDRFNBX0MgJiYgTUJFRFRMU19FQ1BfUkVTVEFSVEFCTEUgKi8KKyAgICAuZGVjcnlwdF9mdW5jID0gTlVMTCwKKyAgICAuZW5jcnlwdF9mdW5jID0gTlVMTCwKKyAgICAuY2hlY2tfcGFpcl9mdW5jID0gZWNkc2Ffb3BhcXVlX2NoZWNrX3BhaXJfd3JhcCwKKyAgICAuY3R4X2FsbG9jX2Z1bmMgPSBOVUxMLAorICAgIC5jdHhfZnJlZV9mdW5jID0gTlVMTCwKKyAgICAuZGVidWdfZnVuYyA9IE5VTEwsCit9OworI2VuZGlmIC8qIE1CRURUTFNfUEtfSEFWRV9FQ0NfS0VZUyAqLworCitzdGF0aWMgaW50IHJzYV9vcGFxdWVfY2FuX2RvKG1iZWR0bHNfcGtfdHlwZV90IHR5cGUpCit7CisgICAgcmV0dXJuIHR5cGUgPT0gTUJFRFRMU19QS19SU0EgfHwKKyAgICAgICAgICAgdHlwZSA9PSBNQkVEVExTX1BLX1JTQVNTQV9QU1M7Cit9CisKKyNpZiBkZWZpbmVkKFBTQV9XQU5UX0tFWV9UWVBFX1JTQV9LRVlfUEFJUl9CQVNJQykKK3N0YXRpYyBpbnQgcnNhX29wYXF1ZV9kZWNyeXB0KG1iZWR0bHNfcGtfY29udGV4dCAqcGssCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1bnNpZ25lZCBjaGFyICppbnB1dCwgc2l6ZV90IGlsZW4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBjaGFyICpvdXRwdXQsIHNpemVfdCAqb2xlbiwgc2l6ZV90IG9zaXplLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50ICgqZl9ybmcpKHZvaWQgKiwgdW5zaWduZWQgY2hhciAqLCBzaXplX3QpLCB2b2lkICpwX3JuZykKK3sKKyAgICBwc2Ffa2V5X2F0dHJpYnV0ZXNfdCBhdHRyaWJ1dGVzID0gUFNBX0tFWV9BVFRSSUJVVEVTX0lOSVQ7CisgICAgcHNhX2FsZ29yaXRobV90IGFsZzsKKyAgICBwc2Ffa2V5X3R5cGVfdCB0eXBlOworICAgIHBzYV9zdGF0dXNfdCBzdGF0dXM7CisKKyAgICAvKiBQU0EgaGFzIGl0cyBvd24gUk5HICovCisgICAgKHZvaWQpIGZfcm5nOworICAgICh2b2lkKSBwX3JuZzsKKworICAgIHN0YXR1cyA9IHBzYV9nZXRfa2V5X2F0dHJpYnV0ZXMocGstPnByaXZfaWQsICZhdHRyaWJ1dGVzKTsKKyAgICBpZiAoc3RhdHVzICE9IFBTQV9TVUNDRVNTKSB7CisgICAgICAgIHJldHVybiBQU0FfUEtfVE9fTUJFRFRMU19FUlIoc3RhdHVzKTsKKyAgICB9CisKKyAgICB0eXBlID0gcHNhX2dldF9rZXlfdHlwZSgmYXR0cmlidXRlcyk7CisgICAgYWxnID0gcHNhX2dldF9rZXlfYWxnb3JpdGhtKCZhdHRyaWJ1dGVzKTsKKyAgICBwc2FfcmVzZXRfa2V5X2F0dHJpYnV0ZXMoJmF0dHJpYnV0ZXMpOworCisgICAgaWYgKCFQU0FfS0VZX1RZUEVfSVNfUlNBKHR5cGUpKSB7CisgICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9QS19GRUFUVVJFX1VOQVZBSUxBQkxFOworICAgIH0KKworICAgIHN0YXR1cyA9IHBzYV9hc3ltbWV0cmljX2RlY3J5cHQocGstPnByaXZfaWQsIGFsZywgaW5wdXQsIGlsZW4sIE5VTEwsIDAsIG91dHB1dCwgb3NpemUsIG9sZW4pOworICAgIGlmIChzdGF0dXMgIT0gUFNBX1NVQ0NFU1MpIHsKKyAgICAgICAgcmV0dXJuIFBTQV9QS19SU0FfVE9fTUJFRFRMU19FUlIoc3RhdHVzKTsKKyAgICB9CisKKyAgICByZXR1cm4gMDsKK30KKyNlbmRpZiAvKiBQU0FfV0FOVF9LRVlfVFlQRV9SU0FfS0VZX1BBSVJfQkFTSUMgKi8KKworc3RhdGljIGludCByc2Ffb3BhcXVlX3NpZ25fd3JhcChtYmVkdGxzX3BrX2NvbnRleHQgKnBrLCBtYmVkdGxzX21kX3R5cGVfdCBtZF9hbGcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgKmhhc2gsIHNpemVfdCBoYXNoX2xlbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgY2hhciAqc2lnLCBzaXplX3Qgc2lnX3NpemUsIHNpemVfdCAqc2lnX2xlbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50ICgqZl9ybmcpKHZvaWQgKiwgdW5zaWduZWQgY2hhciAqLCBzaXplX3QpLCB2b2lkICpwX3JuZykKK3sKKyNpZiBkZWZpbmVkKE1CRURUTFNfUlNBX0MpCisgICAgcHNhX2tleV9hdHRyaWJ1dGVzX3QgYXR0cmlidXRlcyA9IFBTQV9LRVlfQVRUUklCVVRFU19JTklUOworICAgIHBzYV9hbGdvcml0aG1fdCBhbGc7CisgICAgcHNhX2tleV90eXBlX3QgdHlwZTsKKyAgICBwc2Ffc3RhdHVzX3Qgc3RhdHVzOworCisgICAgLyogUFNBIGhhcyBpdHMgb3duIFJORyAqLworICAgICh2b2lkKSBmX3JuZzsKKyAgICAodm9pZCkgcF9ybmc7CisKKyAgICBzdGF0dXMgPSBwc2FfZ2V0X2tleV9hdHRyaWJ1dGVzKHBrLT5wcml2X2lkLCAmYXR0cmlidXRlcyk7CisgICAgaWYgKHN0YXR1cyAhPSBQU0FfU1VDQ0VTUykgeworICAgICAgICByZXR1cm4gUFNBX1BLX1RPX01CRURUTFNfRVJSKHN0YXR1cyk7CisgICAgfQorCisgICAgdHlwZSA9IHBzYV9nZXRfa2V5X3R5cGUoJmF0dHJpYnV0ZXMpOworICAgIGFsZyA9IHBzYV9nZXRfa2V5X2FsZ29yaXRobSgmYXR0cmlidXRlcyk7CisgICAgcHNhX3Jlc2V0X2tleV9hdHRyaWJ1dGVzKCZhdHRyaWJ1dGVzKTsKKworICAgIGlmIChQU0FfS0VZX1RZUEVfSVNfUlNBKHR5cGUpKSB7CisgICAgICAgIGFsZyA9IChhbGcgJiB+UFNBX0FMR19IQVNIX01BU0spIHwgbWJlZHRsc19tZF9wc2FfYWxnX2Zyb21fdHlwZShtZF9hbGcpOworICAgIH0gZWxzZSB7CisgICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9QS19GRUFUVVJFX1VOQVZBSUxBQkxFOworICAgIH0KKworICAgIHN0YXR1cyA9IHBzYV9zaWduX2hhc2gocGstPnByaXZfaWQsIGFsZywgaGFzaCwgaGFzaF9sZW4sIHNpZywgc2lnX3NpemUsIHNpZ19sZW4pOworICAgIGlmIChzdGF0dXMgIT0gUFNBX1NVQ0NFU1MpIHsKKyAgICAgICAgaWYgKFBTQV9LRVlfVFlQRV9JU19SU0EodHlwZSkpIHsKKyAgICAgICAgICAgIHJldHVybiBQU0FfUEtfUlNBX1RPX01CRURUTFNfRVJSKHN0YXR1cyk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICByZXR1cm4gUFNBX1BLX1RPX01CRURUTFNfRVJSKHN0YXR1cyk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICByZXR1cm4gMDsKKyNlbHNlIC8qICFNQkVEVExTX1JTQV9DICovCisgICAgKCh2b2lkKSBwayk7CisgICAgKCh2b2lkKSBtZF9hbGcpOworICAgICgodm9pZCkgaGFzaCk7CisgICAgKCh2b2lkKSBoYXNoX2xlbik7CisgICAgKCh2b2lkKSBzaWcpOworICAgICgodm9pZCkgc2lnX3NpemUpOworICAgICgodm9pZCkgc2lnX2xlbik7CisgICAgKCh2b2lkKSBmX3JuZyk7CisgICAgKCh2b2lkKSBwX3JuZyk7CisgICAgcmV0dXJuIE1CRURUTFNfRVJSX1BLX0ZFQVRVUkVfVU5BVkFJTEFCTEU7CisjZW5kaWYgLyogIU1CRURUTFNfUlNBX0MgKi8KK30KKworY29uc3QgbWJlZHRsc19wa19pbmZvX3QgbWJlZHRsc19yc2Ffb3BhcXVlX2luZm8gPSB7CisgICAgLnR5cGUgPSBNQkVEVExTX1BLX09QQVFVRSwKKyAgICAubmFtZSA9ICJPcGFxdWUiLAorICAgIC5nZXRfYml0bGVuID0gb3BhcXVlX2dldF9iaXRsZW4sCisgICAgLmNhbl9kbyA9IHJzYV9vcGFxdWVfY2FuX2RvLAorICAgIC52ZXJpZnlfZnVuYyA9IE5VTEwsCisgICAgLnNpZ25fZnVuYyA9IHJzYV9vcGFxdWVfc2lnbl93cmFwLAorI2lmIGRlZmluZWQoTUJFRFRMU19FQ0RTQV9DKSAmJiBkZWZpbmVkKE1CRURUTFNfRUNQX1JFU1RBUlRBQkxFKQorICAgIC52ZXJpZnlfcnNfZnVuYyA9IE5VTEwsCisgICAgLnNpZ25fcnNfZnVuYyA9IE5VTEwsCisgICAgLnJzX2FsbG9jX2Z1bmMgPSBOVUxMLAorICAgIC5yc19mcmVlX2Z1bmMgPSBOVUxMLAorI2VuZGlmIC8qIE1CRURUTFNfRUNEU0FfQyAmJiBNQkVEVExTX0VDUF9SRVNUQVJUQUJMRSAqLworI2lmIGRlZmluZWQoUFNBX1dBTlRfS0VZX1RZUEVfUlNBX0tFWV9QQUlSX0JBU0lDKQorICAgIC5kZWNyeXB0X2Z1bmMgPSByc2Ffb3BhcXVlX2RlY3J5cHQsCisjZWxzZSAvKiBQU0FfV0FOVF9LRVlfVFlQRV9SU0FfS0VZX1BBSVJfQkFTSUMgKi8KKyAgICAuZGVjcnlwdF9mdW5jID0gTlVMTCwKKyNlbmRpZiAvKiBQU0FfV0FOVF9LRVlfVFlQRV9SU0FfS0VZX1BBSVJfQkFTSUMgKi8KKyAgICAuZW5jcnlwdF9mdW5jID0gTlVMTCwKKyAgICAuY2hlY2tfcGFpcl9mdW5jID0gTlVMTCwKKyAgICAuY3R4X2FsbG9jX2Z1bmMgPSBOVUxMLAorICAgIC5jdHhfZnJlZV9mdW5jID0gTlVMTCwKKyAgICAuZGVidWdfZnVuYyA9IE5VTEwsCit9OworCisjZW5kaWYgLyogTUJFRFRMU19VU0VfUFNBX0NSWVBUTyAqLworCisjZW5kaWYgLyogTUJFRFRMU19QS19DICovCmRpZmYgLS1naXQgYS9saWJyYXJ5L3BrX3dyYXAuaCBiL3RmLXBzYS1jcnlwdG8vZHJpdmVycy9idWlsdGluL3NyYy9wa193cmFwLmgKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIGxpYnJhcnkvcGtfd3JhcC5oCnJlbmFtZSB0byB0Zi1wc2EtY3J5cHRvL2RyaXZlcnMvYnVpbHRpbi9zcmMvcGtfd3JhcC5oCmRpZmYgLS1naXQgYS9saWJyYXJ5L3BrY3MxMi5jIGIvdGYtcHNhLWNyeXB0by9kcml2ZXJzL2J1aWx0aW4vc3JjL3BrY3MxMi5jCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBsaWJyYXJ5L3BrY3MxMi5jCnJlbmFtZSB0byB0Zi1wc2EtY3J5cHRvL2RyaXZlcnMvYnVpbHRpbi9zcmMvcGtjczEyLmMKZGlmZiAtLWdpdCBhL2xpYnJhcnkvcGtjczUuYyBiL3RmLXBzYS1jcnlwdG8vZHJpdmVycy9idWlsdGluL3NyYy9wa2NzNS5jCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBsaWJyYXJ5L3BrY3M1LmMKcmVuYW1lIHRvIHRmLXBzYS1jcnlwdG8vZHJpdmVycy9idWlsdGluL3NyYy9wa2NzNS5jCmRpZmYgLS1naXQgYS9saWJyYXJ5L3BrcGFyc2UuYyBiL3RmLXBzYS1jcnlwdG8vZHJpdmVycy9idWlsdGluL3NyYy9wa3BhcnNlLmMKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIGxpYnJhcnkvcGtwYXJzZS5jCnJlbmFtZSB0byB0Zi1wc2EtY3J5cHRvL2RyaXZlcnMvYnVpbHRpbi9zcmMvcGtwYXJzZS5jCmRpZmYgLS1naXQgYS9saWJyYXJ5L3Brd3JpdGUuYyBiL3RmLXBzYS1jcnlwdG8vZHJpdmVycy9idWlsdGluL3NyYy9wa3dyaXRlLmMKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIGxpYnJhcnkvcGt3cml0ZS5jCnJlbmFtZSB0byB0Zi1wc2EtY3J5cHRvL2RyaXZlcnMvYnVpbHRpbi9zcmMvcGt3cml0ZS5jCmRpZmYgLS1naXQgYS9saWJyYXJ5L3Brd3JpdGUuaCBiL3RmLXBzYS1jcnlwdG8vZHJpdmVycy9idWlsdGluL3NyYy9wa3dyaXRlLmgKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIGxpYnJhcnkvcGt3cml0ZS5oCnJlbmFtZSB0byB0Zi1wc2EtY3J5cHRvL2RyaXZlcnMvYnVpbHRpbi9zcmMvcGt3cml0ZS5oCmRpZmYgLS1naXQgYS9saWJyYXJ5L3BsYXRmb3JtLmMgYi90Zi1wc2EtY3J5cHRvL2RyaXZlcnMvYnVpbHRpbi9zcmMvcGxhdGZvcm0uYwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gbGlicmFyeS9wbGF0Zm9ybS5jCnJlbmFtZSB0byB0Zi1wc2EtY3J5cHRvL2RyaXZlcnMvYnVpbHRpbi9zcmMvcGxhdGZvcm0uYwpkaWZmIC0tZ2l0IGEvdGYtcHNhLWNyeXB0by9kcml2ZXJzL2J1aWx0aW4vc3JjL3BsYXRmb3JtX3V0aWwuYyBiL3RmLXBzYS1jcnlwdG8vZHJpdmVycy9idWlsdGluL3NyYy9wbGF0Zm9ybV91dGlsLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTllZjA3YQotLS0gL2Rldi9udWxsCisrKyBiL3RmLXBzYS1jcnlwdG8vZHJpdmVycy9idWlsdGluL3NyYy9wbGF0Zm9ybV91dGlsLmMKQEAgLTAsMCArMSwyNjMgQEAKKy8qCisgKiBDb21tb24gYW5kIHNoYXJlZCBmdW5jdGlvbnMgdXNlZCBieSBtdWx0aXBsZSBtb2R1bGVzIGluIHRoZSBNYmVkIFRMUworICogbGlicmFyeS4KKyAqCisgKiAgQ29weXJpZ2h0IFRoZSBNYmVkIFRMUyBDb250cmlidXRvcnMKKyAqICBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMCBPUiBHUEwtMi4wLW9yLWxhdGVyCisgKi8KKworLyoKKyAqIEVuc3VyZSBnbXRpbWVfciBpcyBhdmFpbGFibGUgZXZlbiB3aXRoIC1zdGQ9Yzk5OyBtdXN0IGJlIGRlZmluZWQgYmVmb3JlCisgKiBtYmVkdGxzX2NvbmZpZy5oLCB3aGljaCBwdWxscyBpbiBnbGliYydzIGZlYXR1cmVzLmguIEhhcm1sZXNzIG9uIG90aGVyIHBsYXRmb3JtcworICogZXhjZXB0IE9wZW5CU0QsIHdoZXJlIGl0IHN0b3BzIHVzIGFjY2Vzc2luZyBleHBsaWNpdF9iemVyby4KKyAqLworI2lmICFkZWZpbmVkKF9QT1NJWF9DX1NPVVJDRSkgJiYgIWRlZmluZWQoX19PcGVuQlNEX18pCisjZGVmaW5lIF9QT1NJWF9DX1NPVVJDRSAyMDAxMTJMCisjZW5kaWYKKworI2lmICFkZWZpbmVkKF9HTlVfU09VUkNFKQorLyogQ2xhbmcgcmVxdWlyZXMgdGhpcyB0byBnZXQgc3VwcG9ydCBmb3IgZXhwbGljaXRfYnplcm8gKi8KKyNkZWZpbmUgX0dOVV9TT1VSQ0UKKyNlbmRpZgorCisjaW5jbHVkZSAiY29tbW9uLmgiCisKKyNpbmNsdWRlICJtYmVkdGxzL3BsYXRmb3JtX3V0aWwuaCIKKyNpbmNsdWRlICJtYmVkdGxzL3BsYXRmb3JtLmgiCisjaW5jbHVkZSAibWJlZHRscy90aHJlYWRpbmcuaCIKKworI2luY2x1ZGUgPHN0ZGRlZi5oPgorCisjaWZuZGVmIF9fU1REQ19XQU5UX0xJQl9FWFQxX18KKyNkZWZpbmUgX19TVERDX1dBTlRfTElCX0VYVDFfXyAxIC8qIEFzayBmb3IgdGhlIEMxMSBnbXRpbWVfcygpIGFuZCBtZW1zZXRfcygpIGlmIGF2YWlsYWJsZSAqLworI2VuZGlmCisjaW5jbHVkZSA8c3RyaW5nLmg+CisKKyNpZiBkZWZpbmVkKF9XSU4zMikKKyNpbmNsdWRlIDx3aW5kb3dzLmg+CisjZW5kaWYKKworLy8gRGV0ZWN0IHBsYXRmb3JtcyBrbm93biB0byBzdXBwb3J0IGV4cGxpY2l0X2J6ZXJvKCkKKyNpZiBkZWZpbmVkKF9fR0xJQkNfXykgJiYgKF9fR0xJQkNfXyA+PSAyKSAmJiAoX19HTElCQ19NSU5PUl9fID49IDI1KQorI2RlZmluZSBNQkVEVExTX1BMQVRGT1JNX0hBU19FWFBMSUNJVF9CWkVSTyAxCisjZWxpZiAoZGVmaW5lZChfX0ZyZWVCU0RfXykgJiYgKF9fRnJlZUJTRF92ZXJzaW9uID49IDExMDAwMzcpKSB8fCBkZWZpbmVkKF9fT3BlbkJTRF9fKQorI2RlZmluZSBNQkVEVExTX1BMQVRGT1JNX0hBU19FWFBMSUNJVF9CWkVSTyAxCisjZW5kaWYKKworI2lmICFkZWZpbmVkKE1CRURUTFNfUExBVEZPUk1fWkVST0laRV9BTFQpCisKKyN1bmRlZiBIQVZFX01FTU9SWV9TQU5JVElaRVIKKyNpZiBkZWZpbmVkKF9faGFzX2ZlYXR1cmUpCisjaWYgX19oYXNfZmVhdHVyZShtZW1vcnlfc2FuaXRpemVyKQorI2luY2x1ZGUgPHNhbml0aXplci9tc2FuX2ludGVyZmFjZS5oPgorI2RlZmluZSBIQVZFX01FTU9SWV9TQU5JVElaRVIKKyNlbmRpZgorI2VuZGlmCisKKy8qCisgKiBXaGVyZSBwb3NzaWJsZSwgd2UgdHJ5IHRvIGRldGVjdCB0aGUgcHJlc2VuY2Ugb2YgYSBwbGF0Zm9ybS1wcm92aWRlZAorICogc2VjdXJlIG1lbXNldCwgc3VjaCBhcyBleHBsaWNpdF9iemVybygpLCB0aGF0IGlzIHNhZmUgYWdhaW5zdCBiZWluZyBvcHRpbWl6ZWQKKyAqIG91dCwgYW5kIHVzZSB0aGF0LgorICoKKyAqIEZvciBvdGhlciBwbGF0Zm9ybXMsIHdlIHByb3ZpZGUgYW4gaW1wbGVtZW50YXRpb24gdGhhdCBhaW1zIG5vdCB0byBiZQorICogb3B0aW1pemVkIG91dCBieSB0aGUgY29tcGlsZXIuCisgKgorICogVGhpcyBpbXBsZW1lbnRhdGlvbiBmb3IgbWJlZHRsc19wbGF0Zm9ybV96ZXJvaXplKCkgd2FzIGluc3BpcmVkIGZyb20gQ29saW4KKyAqIFBlcmNpdmFsJ3MgYmxvZyBhcnRpY2xlIGF0OgorICoKKyAqIGh0dHA6Ly93d3cuZGFlbW9ub2xvZ3kubmV0L2Jsb2cvMjAxNC0wOS0wNC1ob3ctdG8temVyby1hLWJ1ZmZlci5odG1sCisgKgorICogSXQgdXNlcyBhIHZvbGF0aWxlIGZ1bmN0aW9uIHBvaW50ZXIgdG8gdGhlIHN0YW5kYXJkIG1lbXNldCgpLiBCZWNhdXNlIHRoZQorICogcG9pbnRlciBpcyB2b2xhdGlsZSB0aGUgY29tcGlsZXIgZXhwZWN0cyBpdCB0byBjaGFuZ2UgYXQKKyAqIGFueSB0aW1lIGFuZCB3aWxsIG5vdCBvcHRpbWl6ZSBvdXQgdGhlIGNhbGwgdGhhdCBjb3VsZCBwb3RlbnRpYWxseSBwZXJmb3JtCisgKiBvdGhlciBvcGVyYXRpb25zIG9uIHRoZSBpbnB1dCBidWZmZXIgaW5zdGVhZCBvZiBqdXN0IHNldHRpbmcgaXQgdG8gMC4KKyAqIE5ldmVydGhlbGVzcywgYXMgcG9pbnRlZCBvdXQgYnkgZGF2aWR0Z29sZGJsYXR0IG9uIEhhY2tlciBOZXdzCisgKiAocmVmZXIgdG8gaHR0cDovL3d3dy5kYWVtb25vbG9neS5uZXQvYmxvZy8yMDE0LTA5LTA1LWVycmF0dW0uaHRtbCBmb3IKKyAqIGRldGFpbHMpLCBvcHRpbWl6YXRpb25zIG9mIHRoZSBmb2xsb3dpbmcgZm9ybSBhcmUgc3RpbGwgcG9zc2libGU6CisgKgorICogaWYgKG1lbXNldF9mdW5jICE9IG1lbXNldCkKKyAqICAgICBtZW1zZXRfZnVuYyhidWYsIDAsIGxlbik7CisgKgorICogTm90ZSB0aGF0IGl0IGlzIGV4dHJlbWVseSBkaWZmaWN1bHQgdG8gZ3VhcmFudGVlIHRoYXQKKyAqIHRoZSBtZW1zZXQoKSBjYWxsIHdpbGwgbm90IGJlIG9wdGltaXplZCBvdXQgYnkgYWdncmVzc2l2ZSBjb21waWxlcnMKKyAqIGluIGEgcG9ydGFibGUgd2F5LiBGb3IgdGhpcyByZWFzb24sIE1iZWQgVExTIGFsc28gcHJvdmlkZXMgdGhlIGNvbmZpZ3VyYXRpb24KKyAqIG9wdGlvbiBNQkVEVExTX1BMQVRGT1JNX1pFUk9JWkVfQUxULCB3aGljaCBhbGxvd3MgdXNlcnMgdG8gY29uZmlndXJlCisgKiBtYmVkdGxzX3BsYXRmb3JtX3plcm9pemUoKSB0byB1c2UgYSBzdWl0YWJsZSBpbXBsZW1lbnRhdGlvbiBmb3IgdGhlaXIKKyAqIHBsYXRmb3JtIGFuZCBuZWVkcy4KKyAqLworI2lmICFkZWZpbmVkKE1CRURUTFNfUExBVEZPUk1fSEFTX0VYUExJQ0lUX0JaRVJPKSAmJiAhKGRlZmluZWQoX19TVERDX0xJQl9FWFQxX18pICYmIFwKKyAgICAhZGVmaW5lZChfX0lBUl9TWVNURU1TX0lDQ19fKSkgXAorICAgICYmICFkZWZpbmVkKF9XSU4zMikKK3N0YXRpYyB2b2lkICooKmNvbnN0IHZvbGF0aWxlIG1lbXNldF9mdW5jKSh2b2lkICosIGludCwgc2l6ZV90KSA9IG1lbXNldDsKKyNlbmRpZgorCit2b2lkIG1iZWR0bHNfcGxhdGZvcm1femVyb2l6ZSh2b2lkICpidWYsIHNpemVfdCBsZW4pCit7CisgICAgaWYgKGxlbiA+IDApIHsKKyNpZiBkZWZpbmVkKE1CRURUTFNfUExBVEZPUk1fSEFTX0VYUExJQ0lUX0JaRVJPKQorICAgICAgICBleHBsaWNpdF9iemVybyhidWYsIGxlbik7CisjaWYgZGVmaW5lZChIQVZFX01FTU9SWV9TQU5JVElaRVIpCisgICAgICAgIC8qIFlvdSdkIHRoaW5rIHRoYXQgTXNhbiB3b3VsZCByZWNvZ25pemUgZXhwbGljaXRfYnplcm8oKSBhcworICAgICAgICAgKiBlcXVpdmFsZW50IHRvIGJ6ZXJvKCksIGJ1dCBpdCBhY3R1YWxseSBkb2Vzbid0IG9uIHNldmVyYWwKKyAgICAgICAgICogcGxhdGZvcm1zLCBpbmNsdWRpbmcgTGludXggKFVidW50dSAyMC4wNCkuCisgICAgICAgICAqIGh0dHBzOi8vZ2l0aHViLmNvbS9nb29nbGUvc2FuaXRpemVycy9pc3N1ZXMvMTUwNworICAgICAgICAgKiBodHRwczovL2dpdGh1Yi5jb20vb3BlbnNzaC9vcGVuc3NoLXBvcnRhYmxlL2NvbW1pdC83NDQzM2ExOWJiNmY0Y2VmNjA3NjgwZmE0ZDFkN2Q4MWNhMzgyNmFhCisgICAgICAgICAqLworICAgICAgICBfX21zYW5fdW5wb2lzb24oYnVmLCBsZW4pOworI2VuZGlmCisjZWxpZiBkZWZpbmVkKF9fU1REQ19MSUJfRVhUMV9fKSAmJiAhZGVmaW5lZChfX0lBUl9TWVNURU1TX0lDQ19fKQorICAgICAgICBtZW1zZXRfcyhidWYsIGxlbiwgMCwgbGVuKTsKKyNlbGlmIGRlZmluZWQoX1dJTjMyKQorICAgICAgICBTZWN1cmVaZXJvTWVtb3J5KGJ1ZiwgbGVuKTsKKyNlbHNlCisgICAgICAgIG1lbXNldF9mdW5jKGJ1ZiwgMCwgbGVuKTsKKyNlbmRpZgorCisjaWYgZGVmaW5lZChfX0dOVUNfXykKKyAgICAgICAgLyogRm9yIGNsYW5nIGFuZCByZWNlbnQgZ2NjLCBwcmV0ZW5kIHRoYXQgd2UgaGF2ZSBzb21lIGFzc2VtYmx5IHRoYXQgcmVhZHMgdGhlCisgICAgICAgICAqIHplcm8nZCBtZW1vcnkgYXMgYW4gYWRkaXRpb25hbCBwcm90ZWN0aW9uIGFnYWluc3QgYmVpbmcgb3B0aW1pc2VkIGF3YXkuICovCisjaWYgZGVmaW5lZChfX2NsYW5nX18pIHx8IChfX0dOVUNfXyA+PSAxMCkKKyNpZiBkZWZpbmVkKF9fY2xhbmdfXykKKyNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCisjcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVd2bGEiCisjZWxpZiBkZWZpbmVkKE1CRURUTFNfQ09NUElMRVJfSVNfR0NDKQorI3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBwdXNoCisjcHJhZ21hIEdDQyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XdmxhIgorI2VuZGlmCisgICAgICAgIGFzbSB2b2xhdGlsZSAoIiIgOiA6ICJtIiAoKihjaGFyICgqKVtsZW5dKSBidWYpIDopOworI2lmIGRlZmluZWQoX19jbGFuZ19fKQorI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorI2VsaWYgZGVmaW5lZChNQkVEVExTX0NPTVBJTEVSX0lTX0dDQykKKyNwcmFnbWEgR0NDIGRpYWdub3N0aWMgcG9wCisjZW5kaWYKKyNlbmRpZgorI2VuZGlmCisgICAgfQorfQorI2VuZGlmIC8qIE1CRURUTFNfUExBVEZPUk1fWkVST0laRV9BTFQgKi8KKwordm9pZCBtYmVkdGxzX3plcm9pemVfYW5kX2ZyZWUodm9pZCAqYnVmLCBzaXplX3QgbGVuKQoreworICAgIGlmIChidWYgIT0gTlVMTCkgeworICAgICAgICBtYmVkdGxzX3BsYXRmb3JtX3plcm9pemUoYnVmLCBsZW4pOworICAgIH0KKworICAgIG1iZWR0bHNfZnJlZShidWYpOworfQorCisjaWYgZGVmaW5lZChNQkVEVExTX0hBVkVfVElNRV9EQVRFKSAmJiAhZGVmaW5lZChNQkVEVExTX1BMQVRGT1JNX0dNVElNRV9SX0FMVCkKKyNpbmNsdWRlIDx0aW1lLmg+CisjaWYgIWRlZmluZWQoX1dJTjMyKSAmJiAoZGVmaW5lZCh1bml4KSB8fCBcCisgICAgZGVmaW5lZChfX3VuaXgpIHx8IGRlZmluZWQoX191bml4X18pIHx8IChkZWZpbmVkKF9fQVBQTEVfXykgJiYgXAorICAgIGRlZmluZWQoX19NQUNIX18pKSB8fCBkZWZpbmVkKF9fbWlkaXBpeF9fKSkKKyNpbmNsdWRlIDx1bmlzdGQuaD4KKyNlbmRpZiAvKiAhX1dJTjMyICYmICh1bml4IHx8IF9fdW5peCB8fCBfX3VuaXhfXyB8fAorICAgICAgICAqIChfX0FQUExFX18gJiYgX19NQUNIX18pIHx8IF9fbWlkaXBpeF9fKSAqLworCisjaWYgISgoZGVmaW5lZChfUE9TSVhfVkVSU0lPTikgJiYgX1BPU0lYX1ZFUlNJT04gPj0gMjAwODA5TCkgfHwgICAgIFwKKyAgICAoZGVmaW5lZChfUE9TSVhfVEhSRUFEX1NBRkVfRlVOQ1RJT05TKSAmJiAgICAgICAgICAgICAgICAgICAgIFwKKyAgICBfUE9TSVhfVEhSRUFEX1NBRkVfRlVOQ1RJT05TID49IDIwMDExMkwpKQorLyoKKyAqIFRoaXMgaXMgYSBjb252ZW5pZW5jZSBzaG9ydGhhbmQgbWFjcm8gdG8gYXZvaWQgY2hlY2tpbmcgdGhlIGxvbmcKKyAqIHByZXByb2Nlc3NvciBjb25kaXRpb25zIGFib3ZlLiBJZGVhbGx5LCB3ZSBjb3VsZCBleHBvc2UgdGhpcyBtYWNybyBpbgorICogcGxhdGZvcm1fdXRpbC5oIGFuZCBzaW1wbHkgdXNlIGl0IGluIHBsYXRmb3JtX3V0aWwuYywgdGhyZWFkaW5nLmMgYW5kCisgKiB0aHJlYWRpbmcuaC4gSG93ZXZlciwgdGhpcyBtYWNybyBpcyBub3QgcGFydCBvZiB0aGUgTWJlZCBUTFMgcHVibGljIEFQSSwgc28KKyAqIHdlIGtlZXAgaXQgcHJpdmF0ZSBieSBvbmx5IGRlZmluaW5nIGl0IGluIHRoaXMgZmlsZQorICovCisjaWYgIShkZWZpbmVkKF9XSU4zMikgJiYgIWRlZmluZWQoRUZJWDY0KSAmJiAhZGVmaW5lZChFRkkzMikpIHx8IFwKKyAgICAoZGVmaW5lZChfX01JTkdXMzJfXykgJiYgIWRlZmluZWQoX19NSU5HVzY0X1ZFUlNJT05fTUFKT1IpKQorI2RlZmluZSBQTEFURk9STV9VVElMX1VTRV9HTVRJTUUKKyNlbmRpZgorCisjZW5kaWYgLyogISggKCBkZWZpbmVkKF9QT1NJWF9WRVJTSU9OKSAmJiBfUE9TSVhfVkVSU0lPTiA+PSAyMDA4MDlMICkgfHwgXAorICAgICAgICAgICAgICggZGVmaW5lZChfUE9TSVhfVEhSRUFEX1NBRkVfRlVOQ1RJT05TICkgJiYgXAorICAgICAgICAgICAgICAgIF9QT1NJWF9USFJFQURfU0FGRV9GVU5DVElPTlMgPj0gMjAwMTEyTCApICkgKi8KKworc3RydWN0IHRtICptYmVkdGxzX3BsYXRmb3JtX2dtdGltZV9yKGNvbnN0IG1iZWR0bHNfdGltZV90ICp0dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgdG0gKnRtX2J1ZikKK3sKKyNpZiBkZWZpbmVkKF9XSU4zMikgJiYgIWRlZmluZWQoUExBVEZPUk1fVVRJTF9VU0VfR01USU1FKQorI2lmIGRlZmluZWQoX19TVERDX0xJQl9FWFQxX18pCisgICAgcmV0dXJuIChnbXRpbWVfcyh0dCwgdG1fYnVmKSA9PSAwKSA/IE5VTEwgOiB0bV9idWY7CisjZWxzZQorICAgIC8qIE1TVkMgYW5kIG1pbmd3NjQgYXJndW1lbnQgb3JkZXIgYW5kIHJldHVybiB2YWx1ZSBhcmUgaW5jb25zaXN0ZW50IHdpdGggdGhlIEMxMSBzdGFuZGFyZCAqLworICAgIHJldHVybiAoZ210aW1lX3ModG1fYnVmLCB0dCkgPT0gMCkgPyB0bV9idWYgOiBOVUxMOworI2VuZGlmCisjZWxpZiAhZGVmaW5lZChQTEFURk9STV9VVElMX1VTRV9HTVRJTUUpCisgICAgcmV0dXJuIGdtdGltZV9yKHR0LCB0bV9idWYpOworI2Vsc2UKKyAgICBzdHJ1Y3QgdG0gKmx0OworCisjaWYgZGVmaW5lZChNQkVEVExTX1RIUkVBRElOR19DKQorICAgIGlmIChtYmVkdGxzX211dGV4X2xvY2soJm1iZWR0bHNfdGhyZWFkaW5nX2dtdGltZV9tdXRleCkgIT0gMCkgeworICAgICAgICByZXR1cm4gTlVMTDsKKyAgICB9CisjZW5kaWYgLyogTUJFRFRMU19USFJFQURJTkdfQyAqLworCisgICAgbHQgPSBnbXRpbWUodHQpOworCisgICAgaWYgKGx0ICE9IE5VTEwpIHsKKyAgICAgICAgbWVtY3B5KHRtX2J1ZiwgbHQsIHNpemVvZihzdHJ1Y3QgdG0pKTsKKyAgICB9CisKKyNpZiBkZWZpbmVkKE1CRURUTFNfVEhSRUFESU5HX0MpCisgICAgaWYgKG1iZWR0bHNfbXV0ZXhfdW5sb2NrKCZtYmVkdGxzX3RocmVhZGluZ19nbXRpbWVfbXV0ZXgpICE9IDApIHsKKyAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgfQorI2VuZGlmIC8qIE1CRURUTFNfVEhSRUFESU5HX0MgKi8KKworICAgIHJldHVybiAobHQgPT0gTlVMTCkgPyBOVUxMIDogdG1fYnVmOworI2VuZGlmIC8qIF9XSU4zMiAmJiAhRUZJWDY0ICYmICFFRkkzMiAqLworfQorI2VuZGlmIC8qIE1CRURUTFNfSEFWRV9USU1FX0RBVEUgJiYgTUJFRFRMU19QTEFURk9STV9HTVRJTUVfUl9BTFQgKi8KKworI2lmIGRlZmluZWQoTUJFRFRMU19URVNUX0hPT0tTKQordm9pZCAoKm1iZWR0bHNfdGVzdF9ob29rX3Rlc3RfZmFpbCkoY29uc3QgY2hhciAqLCBpbnQsIGNvbnN0IGNoYXIgKik7CisjZW5kaWYgLyogTUJFRFRMU19URVNUX0hPT0tTICovCisKKyNpZiBkZWZpbmVkKE1CRURUTFNfSEFWRV9USU1FKSAmJiAhZGVmaW5lZChNQkVEVExTX1BMQVRGT1JNX01TX1RJTUVfQUxUKQorCisjaW5jbHVkZSA8dGltZS5oPgorI2lmICFkZWZpbmVkKF9XSU4zMikgJiYgXAorICAgIChkZWZpbmVkKHVuaXgpIHx8IGRlZmluZWQoX191bml4KSB8fCBkZWZpbmVkKF9fdW5peF9fKSB8fCBcCisgICAgKGRlZmluZWQoX19BUFBMRV9fKSAmJiBkZWZpbmVkKF9fTUFDSF9fKSkgfHwgZGVmaW5lZChfX0hBSUtVX18pIHx8IGRlZmluZWQoX19taWRpcGl4X18pKQorI2luY2x1ZGUgPHVuaXN0ZC5oPgorI2VuZGlmIFwKKyAgICAvKiAhX1dJTjMyICYmICh1bml4IHx8IF9fdW5peCB8fCBfX3VuaXhfXyB8fCAoX19BUFBMRV9fICYmIF9fTUFDSF9fKSB8fCBfX0hBSUtVX18gfHwgX19taWRpcGl4X18pICovCisjaWYgKGRlZmluZWQoX1BPU0lYX1ZFUlNJT04pICYmIF9QT1NJWF9WRVJTSU9OID49IDE5OTMwOUwpIHx8IGRlZmluZWQoX19IQUlLVV9fKQorbWJlZHRsc19tc190aW1lX3QgbWJlZHRsc19tc190aW1lKHZvaWQpCit7CisgICAgaW50IHJldDsKKyAgICBzdHJ1Y3QgdGltZXNwZWMgdHY7CisgICAgbWJlZHRsc19tc190aW1lX3QgY3VycmVudF9tczsKKworI2lmIGRlZmluZWQoX19saW51eF9fKSAmJiBkZWZpbmVkKENMT0NLX0JPT1RUSU1FKSB8fCBkZWZpbmVkKF9fbWlkaXBpeF9fKQorICAgIHJldCA9IGNsb2NrX2dldHRpbWUoQ0xPQ0tfQk9PVFRJTUUsICZ0dik7CisjZWxzZQorICAgIHJldCA9IGNsb2NrX2dldHRpbWUoQ0xPQ0tfTU9OT1RPTklDLCAmdHYpOworI2VuZGlmCisgICAgaWYgKHJldCkgeworICAgICAgICByZXR1cm4gdGltZShOVUxMKSAqIDEwMDA7CisgICAgfQorCisgICAgY3VycmVudF9tcyA9IHR2LnR2X3NlYzsKKworICAgIHJldHVybiBjdXJyZW50X21zKjEwMDAgKyB0di50dl9uc2VjIC8gMTAwMDAwMDsKK30KKyNlbGlmIGRlZmluZWQoX1dJTjMyKSB8fCBkZWZpbmVkKFdJTjMyKSB8fCBkZWZpbmVkKF9fQ1lHV0lOX18pIHx8IFwKKyAgICBkZWZpbmVkKF9fTUlOR1czMl9fKSB8fCBkZWZpbmVkKF9XSU42NCkKKyNpbmNsdWRlIDx3aW5kb3dzLmg+CittYmVkdGxzX21zX3RpbWVfdCBtYmVkdGxzX21zX3RpbWUodm9pZCkKK3sKKyAgICBGSUxFVElNRSBjdDsKKyAgICBtYmVkdGxzX21zX3RpbWVfdCBjdXJyZW50X21zOworCisgICAgR2V0U3lzdGVtVGltZUFzRmlsZVRpbWUoJmN0KTsKKyAgICBjdXJyZW50X21zID0gKChtYmVkdGxzX21zX3RpbWVfdCkgY3QuZHdMb3dEYXRlVGltZSArCisgICAgICAgICAgICAgICAgICAoKG1iZWR0bHNfbXNfdGltZV90KSAoY3QuZHdIaWdoRGF0ZVRpbWUpIDw8IDMyTEwpKS8xMDAwMDsKKyAgICByZXR1cm4gY3VycmVudF9tczsKK30KKyNlbHNlCisjZXJyb3IgIk5vIG1iZWR0bHNfbXNfdGltZSBhdmFpbGFibGUiCisjZW5kaWYKKyNlbmRpZiAvKiBNQkVEVExTX0hBVkVfVElNRSAmJiAhTUJFRFRMU19QTEFURk9STV9NU19USU1FX0FMVCAqLwpkaWZmIC0tZ2l0IGEvdGYtcHNhLWNyeXB0by9kcml2ZXJzL2J1aWx0aW4vc3JjL3BvbHkxMzA1LmMgYi90Zi1wc2EtY3J5cHRvL2RyaXZlcnMvYnVpbHRpbi9zcmMvcG9seTEzMDUuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44MWE0ODQ2Ci0tLSAvZGV2L251bGwKKysrIGIvdGYtcHNhLWNyeXB0by9kcml2ZXJzL2J1aWx0aW4vc3JjL3BvbHkxMzA1LmMKQEAgLTAsMCArMSw0ODggQEAKKy8qKgorICogXGZpbGUgcG9seTEzMDUuYworICoKKyAqIFxicmllZiBQb2x5MTMwNSBhdXRoZW50aWNhdGlvbiBhbGdvcml0aG0uCisgKgorICogIENvcHlyaWdodCBUaGUgTWJlZCBUTFMgQ29udHJpYnV0b3JzCisgKiAgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjAgT1IgR1BMLTIuMC1vci1sYXRlcgorICovCisjaW5jbHVkZSAiY29tbW9uLmgiCisKKyNpZiBkZWZpbmVkKE1CRURUTFNfUE9MWTEzMDVfQykKKworI2luY2x1ZGUgIm1iZWR0bHMvcG9seTEzMDUuaCIKKyNpbmNsdWRlICJtYmVkdGxzL3BsYXRmb3JtX3V0aWwuaCIKKyNpbmNsdWRlICJtYmVkdGxzL2Vycm9yLmgiCisKKyNpbmNsdWRlIDxzdHJpbmcuaD4KKworI2luY2x1ZGUgIm1iZWR0bHMvcGxhdGZvcm0uaCIKKworI2RlZmluZSBQT0xZMTMwNV9CTE9DS19TSVpFX0JZVEVTICgxNlUpCisKKy8qCisgKiBPdXIgaW1wbGVtZW50YXRpb24gaXMgdHVuZWQgZm9yIDMyLWJpdCBwbGF0Zm9ybXMgd2l0aCBhIDY0LWJpdCBtdWx0aXBsaWVyLgorICogSG93ZXZlciB3ZSBwcm92aWRlZCBhbiBhbHRlcm5hdGl2ZSBmb3IgcGxhdGZvcm1zIHdpdGhvdXQgc3VjaCBhIG11bHRpcGxpZXIuCisgKi8KKyNpZiBkZWZpbmVkKE1CRURUTFNfTk9fNjRCSVRfTVVMVElQTElDQVRJT04pCitzdGF0aWMgdWludDY0X3QgbXVsNjQodWludDMyX3QgYSwgdWludDMyX3QgYikKK3sKKyAgICAvKiBhID0gYWwgKyAyKioxNiBhaCwgYiA9IGJsICsgMioqMTYgYmggKi8KKyAgICBjb25zdCB1aW50MTZfdCBhbCA9ICh1aW50MTZfdCkgYTsKKyAgICBjb25zdCB1aW50MTZfdCBibCA9ICh1aW50MTZfdCkgYjsKKyAgICBjb25zdCB1aW50MTZfdCBhaCA9IGEgPj4gMTY7CisgICAgY29uc3QgdWludDE2X3QgYmggPSBiID4+IDE2OworCisgICAgLyogYWIgPSBhbCpibCArIDIqKjE2IChhaCpibCArIGJsKmJoKSArIDIqKjMyIGFoKmJoICovCisgICAgY29uc3QgdWludDMyX3QgbG8gPSAodWludDMyX3QpIGFsICogYmw7CisgICAgY29uc3QgdWludDY0X3QgbWUgPSAodWludDY0X3QpICgodWludDMyX3QpIGFoICogYmwpICsgKHVpbnQzMl90KSBhbCAqIGJoOworICAgIGNvbnN0IHVpbnQzMl90IGhpID0gKHVpbnQzMl90KSBhaCAqIGJoOworCisgICAgcmV0dXJuIGxvICsgKG1lIDw8IDE2KSArICgodWludDY0X3QpIGhpIDw8IDMyKTsKK30KKyNlbHNlCitzdGF0aWMgaW5saW5lIHVpbnQ2NF90IG11bDY0KHVpbnQzMl90IGEsIHVpbnQzMl90IGIpCit7CisgICAgcmV0dXJuICh1aW50NjRfdCkgYSAqIGI7Cit9CisjZW5kaWYKKworCisvKioKKyAqIFxicmllZiAgICAgICAgICAgICAgICAgICBQcm9jZXNzIGJsb2NrcyB3aXRoIFBvbHkxMzA1LgorICoKKyAqIFxwYXJhbSBjdHggICAgICAgICAgICAgICBUaGUgUG9seTEzMDUgY29udGV4dC4KKyAqIFxwYXJhbSBuYmxvY2tzICAgICAgICAgICBOdW1iZXIgb2YgYmxvY2tzIHRvIHByb2Nlc3MuIE5vdGUgdGhhdCB0aGlzCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgZnVuY3Rpb24gb25seSBwcm9jZXNzZXMgZnVsbCBibG9ja3MuCisgKiBccGFyYW0gaW5wdXQgICAgICAgICAgICAgQnVmZmVyIGNvbnRhaW5pbmcgdGhlIGlucHV0IGJsb2NrKHMpLgorICogXHBhcmFtIG5lZWRzX3BhZGRpbmcgICAgIFNldCB0byAwIGlmIHRoZSBwYWRkaW5nIGJpdCBoYXMgYWxyZWFkeSBiZWVuCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgYXBwbGllZCB0byB0aGUgaW5wdXQgZGF0YSBiZWZvcmUgY2FsbGluZyB0aGlzCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgZnVuY3Rpb24uICBPdGhlcndpc2UsIHNldCB0aGlzIHBhcmFtZXRlciB0byAxLgorICovCitzdGF0aWMgdm9pZCBwb2x5MTMwNV9wcm9jZXNzKG1iZWR0bHNfcG9seTEzMDVfY29udGV4dCAqY3R4LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgbmJsb2NrcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdW5zaWduZWQgY2hhciAqaW5wdXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQzMl90IG5lZWRzX3BhZGRpbmcpCit7CisgICAgdWludDY0X3QgZDAsIGQxLCBkMiwgZDM7CisgICAgdWludDMyX3QgYWNjMCwgYWNjMSwgYWNjMiwgYWNjMywgYWNjNDsKKyAgICB1aW50MzJfdCByMCwgcjEsIHIyLCByMzsKKyAgICB1aW50MzJfdCByczEsIHJzMiwgcnMzOworICAgIHNpemVfdCBvZmZzZXQgID0gMFU7CisgICAgc2l6ZV90IGk7CisKKyAgICByMCA9IGN0eC0+clswXTsKKyAgICByMSA9IGN0eC0+clsxXTsKKyAgICByMiA9IGN0eC0+clsyXTsKKyAgICByMyA9IGN0eC0+clszXTsKKworICAgIHJzMSA9IHIxICsgKHIxID4+IDJVKTsKKyAgICByczIgPSByMiArIChyMiA+PiAyVSk7CisgICAgcnMzID0gcjMgKyAocjMgPj4gMlUpOworCisgICAgYWNjMCA9IGN0eC0+YWNjWzBdOworICAgIGFjYzEgPSBjdHgtPmFjY1sxXTsKKyAgICBhY2MyID0gY3R4LT5hY2NbMl07CisgICAgYWNjMyA9IGN0eC0+YWNjWzNdOworICAgIGFjYzQgPSBjdHgtPmFjY1s0XTsKKworICAgIC8qIFByb2Nlc3MgZnVsbCBibG9ja3MgKi8KKyAgICBmb3IgKGkgPSAwVTsgaSA8IG5ibG9ja3M7IGkrKykgeworICAgICAgICAvKiBUaGUgaW5wdXQgYmxvY2sgaXMgdHJlYXRlZCBhcyBhIDEyOC1iaXQgbGl0dGxlLWVuZGlhbiBpbnRlZ2VyICovCisgICAgICAgIGQwICAgPSBNQkVEVExTX0dFVF9VSU5UMzJfTEUoaW5wdXQsIG9mZnNldCArIDApOworICAgICAgICBkMSAgID0gTUJFRFRMU19HRVRfVUlOVDMyX0xFKGlucHV0LCBvZmZzZXQgKyA0KTsKKyAgICAgICAgZDIgICA9IE1CRURUTFNfR0VUX1VJTlQzMl9MRShpbnB1dCwgb2Zmc2V0ICsgOCk7CisgICAgICAgIGQzICAgPSBNQkVEVExTX0dFVF9VSU5UMzJfTEUoaW5wdXQsIG9mZnNldCArIDEyKTsKKworICAgICAgICAvKiBDb21wdXRlOiBhY2MgKz0gKHBhZGRlZCkgYmxvY2sgYXMgYSAxMzAtYml0IGludGVnZXIgKi8KKyAgICAgICAgZDAgICs9ICh1aW50NjRfdCkgYWNjMDsKKyAgICAgICAgZDEgICs9ICh1aW50NjRfdCkgYWNjMSArIChkMCA+PiAzMlUpOworICAgICAgICBkMiAgKz0gKHVpbnQ2NF90KSBhY2MyICsgKGQxID4+IDMyVSk7CisgICAgICAgIGQzICArPSAodWludDY0X3QpIGFjYzMgKyAoZDIgPj4gMzJVKTsKKyAgICAgICAgYWNjMCA9ICh1aW50MzJfdCkgZDA7CisgICAgICAgIGFjYzEgPSAodWludDMyX3QpIGQxOworICAgICAgICBhY2MyID0gKHVpbnQzMl90KSBkMjsKKyAgICAgICAgYWNjMyA9ICh1aW50MzJfdCkgZDM7CisgICAgICAgIGFjYzQgKz0gKHVpbnQzMl90KSAoZDMgPj4gMzJVKSArIG5lZWRzX3BhZGRpbmc7CisKKyAgICAgICAgLyogQ29tcHV0ZTogYWNjICo9IHIgKi8KKyAgICAgICAgZDAgPSBtdWw2NChhY2MwLCByMCkgKworICAgICAgICAgICAgIG11bDY0KGFjYzEsIHJzMykgKworICAgICAgICAgICAgIG11bDY0KGFjYzIsIHJzMikgKworICAgICAgICAgICAgIG11bDY0KGFjYzMsIHJzMSk7CisgICAgICAgIGQxID0gbXVsNjQoYWNjMCwgcjEpICsKKyAgICAgICAgICAgICBtdWw2NChhY2MxLCByMCkgKworICAgICAgICAgICAgIG11bDY0KGFjYzIsIHJzMykgKworICAgICAgICAgICAgIG11bDY0KGFjYzMsIHJzMikgKworICAgICAgICAgICAgIG11bDY0KGFjYzQsIHJzMSk7CisgICAgICAgIGQyID0gbXVsNjQoYWNjMCwgcjIpICsKKyAgICAgICAgICAgICBtdWw2NChhY2MxLCByMSkgKworICAgICAgICAgICAgIG11bDY0KGFjYzIsIHIwKSArCisgICAgICAgICAgICAgbXVsNjQoYWNjMywgcnMzKSArCisgICAgICAgICAgICAgbXVsNjQoYWNjNCwgcnMyKTsKKyAgICAgICAgZDMgPSBtdWw2NChhY2MwLCByMykgKworICAgICAgICAgICAgIG11bDY0KGFjYzEsIHIyKSArCisgICAgICAgICAgICAgbXVsNjQoYWNjMiwgcjEpICsKKyAgICAgICAgICAgICBtdWw2NChhY2MzLCByMCkgKworICAgICAgICAgICAgIG11bDY0KGFjYzQsIHJzMyk7CisgICAgICAgIGFjYzQgKj0gcjA7CisKKyAgICAgICAgLyogQ29tcHV0ZTogYWNjICU9ICgyXjEzMCAtIDUpIChwYXJ0aWFsIHJlbWFpbmRlcikgKi8KKyAgICAgICAgZDEgKz0gKGQwID4+IDMyKTsKKyAgICAgICAgZDIgKz0gKGQxID4+IDMyKTsKKyAgICAgICAgZDMgKz0gKGQyID4+IDMyKTsKKyAgICAgICAgYWNjMCA9ICh1aW50MzJfdCkgZDA7CisgICAgICAgIGFjYzEgPSAodWludDMyX3QpIGQxOworICAgICAgICBhY2MyID0gKHVpbnQzMl90KSBkMjsKKyAgICAgICAgYWNjMyA9ICh1aW50MzJfdCkgZDM7CisgICAgICAgIGFjYzQgPSAodWludDMyX3QpIChkMyA+PiAzMikgKyBhY2M0OworCisgICAgICAgIGQwID0gKHVpbnQ2NF90KSBhY2MwICsgKGFjYzQgPj4gMikgKyAoYWNjNCAmIDB4RkZGRkZGRkNVKTsKKyAgICAgICAgYWNjNCAmPSAzVTsKKyAgICAgICAgYWNjMCA9ICh1aW50MzJfdCkgZDA7CisgICAgICAgIGQwID0gKHVpbnQ2NF90KSBhY2MxICsgKGQwID4+IDMyVSk7CisgICAgICAgIGFjYzEgPSAodWludDMyX3QpIGQwOworICAgICAgICBkMCA9ICh1aW50NjRfdCkgYWNjMiArIChkMCA+PiAzMlUpOworICAgICAgICBhY2MyID0gKHVpbnQzMl90KSBkMDsKKyAgICAgICAgZDAgPSAodWludDY0X3QpIGFjYzMgKyAoZDAgPj4gMzJVKTsKKyAgICAgICAgYWNjMyA9ICh1aW50MzJfdCkgZDA7CisgICAgICAgIGQwID0gKHVpbnQ2NF90KSBhY2M0ICsgKGQwID4+IDMyVSk7CisgICAgICAgIGFjYzQgPSAodWludDMyX3QpIGQwOworCisgICAgICAgIG9mZnNldCAgICArPSBQT0xZMTMwNV9CTE9DS19TSVpFX0JZVEVTOworICAgIH0KKworICAgIGN0eC0+YWNjWzBdID0gYWNjMDsKKyAgICBjdHgtPmFjY1sxXSA9IGFjYzE7CisgICAgY3R4LT5hY2NbMl0gPSBhY2MyOworICAgIGN0eC0+YWNjWzNdID0gYWNjMzsKKyAgICBjdHgtPmFjY1s0XSA9IGFjYzQ7Cit9CisKKy8qKgorICogXGJyaWVmICAgICAgICAgICAgICAgICAgIENvbXB1dGUgdGhlIFBvbHkxMzA1IE1BQworICoKKyAqIFxwYXJhbSBjdHggICAgICAgICAgICAgICBUaGUgUG9seTEzMDUgY29udGV4dC4KKyAqIFxwYXJhbSBtYWMgICAgICAgICAgICAgICBUaGUgYnVmZmVyIHRvIHdoZXJlIHRoZSBNQUMgaXMgd3JpdHRlbi4gTXVzdCBiZQorICogICAgICAgICAgICAgICAgICAgICAgICAgIGJpZyBlbm91Z2ggdG8gY29udGFpbiB0aGUgMTYtYnl0ZSBNQUMuCisgKi8KK3N0YXRpYyB2b2lkIHBvbHkxMzA1X2NvbXB1dGVfbWFjKGNvbnN0IG1iZWR0bHNfcG9seTEzMDVfY29udGV4dCAqY3R4LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgY2hhciBtYWNbMTZdKQoreworICAgIHVpbnQ2NF90IGQ7CisgICAgdWludDMyX3QgZzAsIGcxLCBnMiwgZzMsIGc0OworICAgIHVpbnQzMl90IGFjYzAsIGFjYzEsIGFjYzIsIGFjYzMsIGFjYzQ7CisgICAgdWludDMyX3QgbWFzazsKKyAgICB1aW50MzJfdCBtYXNrX2ludjsKKworICAgIGFjYzAgPSBjdHgtPmFjY1swXTsKKyAgICBhY2MxID0gY3R4LT5hY2NbMV07CisgICAgYWNjMiA9IGN0eC0+YWNjWzJdOworICAgIGFjYzMgPSBjdHgtPmFjY1szXTsKKyAgICBhY2M0ID0gY3R4LT5hY2NbNF07CisKKyAgICAvKiBCZWZvcmUgYWRkaW5nICdzJyB3ZSBlbnN1cmUgdGhhdCB0aGUgYWNjdW11bGF0b3IgaXMgbW9kIDJeMTMwIC0gNS4KKyAgICAgKiBXZSBkbyB0aGlzIGJ5IGNhbGN1bGF0aW5nIGFjYyAtICgyXjEzMCAtIDUpLCB0aGVuIGNoZWNraW5nIGlmCisgICAgICogdGhlIDEzMXN0IGJpdCBpcyBzZXQuIElmIGl0IGlzLCB0aGVuIHJlZHVjZTogYWNjIC09ICgyXjEzMCAtIDUpCisgICAgICovCisKKyAgICAvKiBDYWxjdWxhdGUgYWNjICsgLSgyXjEzMCAtIDUpICovCisgICAgZCAgPSAoKHVpbnQ2NF90KSBhY2MwICsgNVUpOworICAgIGcwID0gKHVpbnQzMl90KSBkOworICAgIGQgID0gKCh1aW50NjRfdCkgYWNjMSArIChkID4+IDMyKSk7CisgICAgZzEgPSAodWludDMyX3QpIGQ7CisgICAgZCAgPSAoKHVpbnQ2NF90KSBhY2MyICsgKGQgPj4gMzIpKTsKKyAgICBnMiA9ICh1aW50MzJfdCkgZDsKKyAgICBkICA9ICgodWludDY0X3QpIGFjYzMgKyAoZCA+PiAzMikpOworICAgIGczID0gKHVpbnQzMl90KSBkOworICAgIGc0ID0gYWNjNCArICh1aW50MzJfdCkgKGQgPj4gMzJVKTsKKworICAgIC8qIG1hc2sgPT0gMHhGRkZGRkZGRiBpZiAxMzFzdCBiaXQgaXMgc2V0LCBvdGhlcndpc2UgbWFzayA9PSAwICovCisgICAgbWFzayA9ICh1aW50MzJfdCkgMFUgLSAoZzQgPj4gMlUpOworICAgIG1hc2tfaW52ID0gfm1hc2s7CisKKyAgICAvKiBJZiAxMzFzdCBiaXQgaXMgc2V0IHRoZW4gYWNjPWcsIG90aGVyd2lzZSwgYWNjIGlzIHVubW9kaWZpZWQgKi8KKyAgICBhY2MwID0gKGFjYzAgJiBtYXNrX2ludikgfCAoZzAgJiBtYXNrKTsKKyAgICBhY2MxID0gKGFjYzEgJiBtYXNrX2ludikgfCAoZzEgJiBtYXNrKTsKKyAgICBhY2MyID0gKGFjYzIgJiBtYXNrX2ludikgfCAoZzIgJiBtYXNrKTsKKyAgICBhY2MzID0gKGFjYzMgJiBtYXNrX2ludikgfCAoZzMgJiBtYXNrKTsKKworICAgIC8qIEFkZCAncycgKi8KKyAgICBkID0gKHVpbnQ2NF90KSBhY2MwICsgY3R4LT5zWzBdOworICAgIGFjYzAgPSAodWludDMyX3QpIGQ7CisgICAgZCA9ICh1aW50NjRfdCkgYWNjMSArIGN0eC0+c1sxXSArIChkID4+IDMyVSk7CisgICAgYWNjMSA9ICh1aW50MzJfdCkgZDsKKyAgICBkID0gKHVpbnQ2NF90KSBhY2MyICsgY3R4LT5zWzJdICsgKGQgPj4gMzJVKTsKKyAgICBhY2MyID0gKHVpbnQzMl90KSBkOworICAgIGFjYzMgKz0gY3R4LT5zWzNdICsgKHVpbnQzMl90KSAoZCA+PiAzMlUpOworCisgICAgLyogQ29tcHV0ZSBNQUMgKDEyOCBsZWFzdCBzaWduaWZpY2FudCBiaXRzIG9mIHRoZSBhY2N1bXVsYXRvcikgKi8KKyAgICBNQkVEVExTX1BVVF9VSU5UMzJfTEUoYWNjMCwgbWFjLCAgMCk7CisgICAgTUJFRFRMU19QVVRfVUlOVDMyX0xFKGFjYzEsIG1hYywgIDQpOworICAgIE1CRURUTFNfUFVUX1VJTlQzMl9MRShhY2MyLCBtYWMsICA4KTsKKyAgICBNQkVEVExTX1BVVF9VSU5UMzJfTEUoYWNjMywgbWFjLCAxMik7Cit9CisKK3ZvaWQgbWJlZHRsc19wb2x5MTMwNV9pbml0KG1iZWR0bHNfcG9seTEzMDVfY29udGV4dCAqY3R4KQoreworICAgIG1iZWR0bHNfcGxhdGZvcm1femVyb2l6ZShjdHgsIHNpemVvZihtYmVkdGxzX3BvbHkxMzA1X2NvbnRleHQpKTsKK30KKwordm9pZCBtYmVkdGxzX3BvbHkxMzA1X2ZyZWUobWJlZHRsc19wb2x5MTMwNV9jb250ZXh0ICpjdHgpCit7CisgICAgaWYgKGN0eCA9PSBOVUxMKSB7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBtYmVkdGxzX3BsYXRmb3JtX3plcm9pemUoY3R4LCBzaXplb2YobWJlZHRsc19wb2x5MTMwNV9jb250ZXh0KSk7Cit9CisKK2ludCBtYmVkdGxzX3BvbHkxMzA1X3N0YXJ0cyhtYmVkdGxzX3BvbHkxMzA1X2NvbnRleHQgKmN0eCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1bnNpZ25lZCBjaGFyIGtleVszMl0pCit7CisgICAgLyogciAmPSAweDBmZmZmZmZjMGZmZmZmZmMwZmZmZmZmYzBmZmZmZmZmICovCisgICAgY3R4LT5yWzBdID0gTUJFRFRMU19HRVRfVUlOVDMyX0xFKGtleSwgMCkgICYgMHgwRkZGRkZGRlU7CisgICAgY3R4LT5yWzFdID0gTUJFRFRMU19HRVRfVUlOVDMyX0xFKGtleSwgNCkgICYgMHgwRkZGRkZGQ1U7CisgICAgY3R4LT5yWzJdID0gTUJFRFRMU19HRVRfVUlOVDMyX0xFKGtleSwgOCkgICYgMHgwRkZGRkZGQ1U7CisgICAgY3R4LT5yWzNdID0gTUJFRFRMU19HRVRfVUlOVDMyX0xFKGtleSwgMTIpICYgMHgwRkZGRkZGQ1U7CisKKyAgICBjdHgtPnNbMF0gPSBNQkVEVExTX0dFVF9VSU5UMzJfTEUoa2V5LCAxNik7CisgICAgY3R4LT5zWzFdID0gTUJFRFRMU19HRVRfVUlOVDMyX0xFKGtleSwgMjApOworICAgIGN0eC0+c1syXSA9IE1CRURUTFNfR0VUX1VJTlQzMl9MRShrZXksIDI0KTsKKyAgICBjdHgtPnNbM10gPSBNQkVEVExTX0dFVF9VSU5UMzJfTEUoa2V5LCAyOCk7CisKKyAgICAvKiBJbml0aWFsIGFjY3VtdWxhdG9yIHN0YXRlICovCisgICAgY3R4LT5hY2NbMF0gPSAwVTsKKyAgICBjdHgtPmFjY1sxXSA9IDBVOworICAgIGN0eC0+YWNjWzJdID0gMFU7CisgICAgY3R4LT5hY2NbM10gPSAwVTsKKyAgICBjdHgtPmFjY1s0XSA9IDBVOworCisgICAgLyogUXVldWUgaW5pdGlhbGx5IGVtcHR5ICovCisgICAgbWJlZHRsc19wbGF0Zm9ybV96ZXJvaXplKGN0eC0+cXVldWUsIHNpemVvZihjdHgtPnF1ZXVlKSk7CisgICAgY3R4LT5xdWV1ZV9sZW4gPSAwVTsKKworICAgIHJldHVybiAwOworfQorCitpbnQgbWJlZHRsc19wb2x5MTMwNV91cGRhdGUobWJlZHRsc19wb2x5MTMwNV9jb250ZXh0ICpjdHgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdW5zaWduZWQgY2hhciAqaW5wdXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IGlsZW4pCit7CisgICAgc2l6ZV90IG9mZnNldCAgICA9IDBVOworICAgIHNpemVfdCByZW1haW5pbmcgPSBpbGVuOworICAgIHNpemVfdCBxdWV1ZV9mcmVlX2xlbjsKKyAgICBzaXplX3QgbmJsb2NrczsKKworICAgIGlmICgocmVtYWluaW5nID4gMFUpICYmIChjdHgtPnF1ZXVlX2xlbiA+IDBVKSkgeworICAgICAgICBxdWV1ZV9mcmVlX2xlbiA9IChQT0xZMTMwNV9CTE9DS19TSVpFX0JZVEVTIC0gY3R4LT5xdWV1ZV9sZW4pOworCisgICAgICAgIGlmIChpbGVuIDwgcXVldWVfZnJlZV9sZW4pIHsKKyAgICAgICAgICAgIC8qIE5vdCBlbm91Z2ggZGF0YSB0byBjb21wbGV0ZSB0aGUgYmxvY2suCisgICAgICAgICAgICAgKiBTdG9yZSB0aGlzIGRhdGEgd2l0aCB0aGUgb3RoZXIgbGVmdG92ZXJzLgorICAgICAgICAgICAgICovCisgICAgICAgICAgICBtZW1jcHkoJmN0eC0+cXVldWVbY3R4LT5xdWV1ZV9sZW5dLAorICAgICAgICAgICAgICAgICAgIGlucHV0LAorICAgICAgICAgICAgICAgICAgIGlsZW4pOworCisgICAgICAgICAgICBjdHgtPnF1ZXVlX2xlbiArPSBpbGVuOworCisgICAgICAgICAgICByZW1haW5pbmcgPSAwVTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIC8qIEVub3VnaCBkYXRhIHRvIHByb2R1Y2UgYSBjb21wbGV0ZSBibG9jayAqLworICAgICAgICAgICAgbWVtY3B5KCZjdHgtPnF1ZXVlW2N0eC0+cXVldWVfbGVuXSwKKyAgICAgICAgICAgICAgICAgICBpbnB1dCwKKyAgICAgICAgICAgICAgICAgICBxdWV1ZV9mcmVlX2xlbik7CisKKyAgICAgICAgICAgIGN0eC0+cXVldWVfbGVuID0gMFU7CisKKyAgICAgICAgICAgIHBvbHkxMzA1X3Byb2Nlc3MoY3R4LCAxVSwgY3R4LT5xdWV1ZSwgMVUpOyAgIC8qIGFkZCBwYWRkaW5nIGJpdCAqLworCisgICAgICAgICAgICBvZmZzZXQgICAgKz0gcXVldWVfZnJlZV9sZW47CisgICAgICAgICAgICByZW1haW5pbmcgLT0gcXVldWVfZnJlZV9sZW47CisgICAgICAgIH0KKyAgICB9CisKKyAgICBpZiAocmVtYWluaW5nID49IFBPTFkxMzA1X0JMT0NLX1NJWkVfQllURVMpIHsKKyAgICAgICAgbmJsb2NrcyA9IHJlbWFpbmluZyAvIFBPTFkxMzA1X0JMT0NLX1NJWkVfQllURVM7CisKKyAgICAgICAgcG9seTEzMDVfcHJvY2VzcyhjdHgsIG5ibG9ja3MsICZpbnB1dFtvZmZzZXRdLCAxVSk7CisKKyAgICAgICAgb2Zmc2V0ICs9IG5ibG9ja3MgKiBQT0xZMTMwNV9CTE9DS19TSVpFX0JZVEVTOworICAgICAgICByZW1haW5pbmcgJT0gUE9MWTEzMDVfQkxPQ0tfU0laRV9CWVRFUzsKKyAgICB9CisKKyAgICBpZiAocmVtYWluaW5nID4gMFUpIHsKKyAgICAgICAgLyogU3RvcmUgcGFydGlhbCBibG9jayAqLworICAgICAgICBjdHgtPnF1ZXVlX2xlbiA9IHJlbWFpbmluZzsKKyAgICAgICAgbWVtY3B5KGN0eC0+cXVldWUsICZpbnB1dFtvZmZzZXRdLCByZW1haW5pbmcpOworICAgIH0KKworICAgIHJldHVybiAwOworfQorCitpbnQgbWJlZHRsc19wb2x5MTMwNV9maW5pc2gobWJlZHRsc19wb2x5MTMwNV9jb250ZXh0ICpjdHgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgY2hhciBtYWNbMTZdKQoreworICAgIC8qIFByb2Nlc3MgYW55IGxlZnRvdmVyIGRhdGEgKi8KKyAgICBpZiAoY3R4LT5xdWV1ZV9sZW4gPiAwVSkgeworICAgICAgICAvKiBBZGQgcGFkZGluZyBiaXQgKi8KKyAgICAgICAgY3R4LT5xdWV1ZVtjdHgtPnF1ZXVlX2xlbl0gPSAxVTsKKyAgICAgICAgY3R4LT5xdWV1ZV9sZW4rKzsKKworICAgICAgICAvKiBQYWQgd2l0aCB6ZXJvZXMgKi8KKyAgICAgICAgbWVtc2V0KCZjdHgtPnF1ZXVlW2N0eC0+cXVldWVfbGVuXSwKKyAgICAgICAgICAgICAgIDAsCisgICAgICAgICAgICAgICBQT0xZMTMwNV9CTE9DS19TSVpFX0JZVEVTIC0gY3R4LT5xdWV1ZV9sZW4pOworCisgICAgICAgIHBvbHkxMzA1X3Byb2Nlc3MoY3R4LCAxVSwgICAgICAgICAgIC8qIFByb2Nlc3MgMSBibG9jayAqLworICAgICAgICAgICAgICAgICAgICAgICAgIGN0eC0+cXVldWUsIDBVKTsgICAvKiBBbHJlYWR5IHBhZGRlZCBhYm92ZSAqLworICAgIH0KKworICAgIHBvbHkxMzA1X2NvbXB1dGVfbWFjKGN0eCwgbWFjKTsKKworICAgIHJldHVybiAwOworfQorCitpbnQgbWJlZHRsc19wb2x5MTMwNV9tYWMoY29uc3QgdW5zaWduZWQgY2hhciBrZXlbMzJdLAorICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgKmlucHV0LAorICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBpbGVuLAorICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGNoYXIgbWFjWzE2XSkKK3sKKyAgICBtYmVkdGxzX3BvbHkxMzA1X2NvbnRleHQgY3R4OworICAgIGludCByZXQgPSBNQkVEVExTX0VSUl9FUlJPUl9DT1JSVVBUSU9OX0RFVEVDVEVEOworCisgICAgbWJlZHRsc19wb2x5MTMwNV9pbml0KCZjdHgpOworCisgICAgcmV0ID0gbWJlZHRsc19wb2x5MTMwNV9zdGFydHMoJmN0eCwga2V5KTsKKyAgICBpZiAocmV0ICE9IDApIHsKKyAgICAgICAgZ290byBjbGVhbnVwOworICAgIH0KKworICAgIHJldCA9IG1iZWR0bHNfcG9seTEzMDVfdXBkYXRlKCZjdHgsIGlucHV0LCBpbGVuKTsKKyAgICBpZiAocmV0ICE9IDApIHsKKyAgICAgICAgZ290byBjbGVhbnVwOworICAgIH0KKworICAgIHJldCA9IG1iZWR0bHNfcG9seTEzMDVfZmluaXNoKCZjdHgsIG1hYyk7CisKK2NsZWFudXA6CisgICAgbWJlZHRsc19wb2x5MTMwNV9mcmVlKCZjdHgpOworICAgIHJldHVybiByZXQ7Cit9CisKKyNpZiBkZWZpbmVkKE1CRURUTFNfU0VMRl9URVNUKQorCitzdGF0aWMgY29uc3QgdW5zaWduZWQgY2hhciB0ZXN0X2tleXNbMl1bMzJdID0KK3sKKyAgICB7CisgICAgICAgIDB4ODUsIDB4ZDYsIDB4YmUsIDB4NzgsIDB4NTcsIDB4NTUsIDB4NmQsIDB4MzMsCisgICAgICAgIDB4N2YsIDB4NDQsIDB4NTIsIDB4ZmUsIDB4NDIsIDB4ZDUsIDB4MDYsIDB4YTgsCisgICAgICAgIDB4MDEsIDB4MDMsIDB4ODAsIDB4OGEsIDB4ZmIsIDB4MGQsIDB4YjIsIDB4ZmQsCisgICAgICAgIDB4NGEsIDB4YmYsIDB4ZjYsIDB4YWYsIDB4NDEsIDB4NDksIDB4ZjUsIDB4MWIKKyAgICB9LAorICAgIHsKKyAgICAgICAgMHgxYywgMHg5MiwgMHg0MCwgMHhhNSwgMHhlYiwgMHg1NSwgMHhkMywgMHg4YSwKKyAgICAgICAgMHhmMywgMHgzMywgMHg4OCwgMHg4NiwgMHgwNCwgMHhmNiwgMHhiNSwgMHhmMCwKKyAgICAgICAgMHg0NywgMHgzOSwgMHgxNywgMHhjMSwgMHg0MCwgMHgyYiwgMHg4MCwgMHgwOSwKKyAgICAgICAgMHg5ZCwgMHhjYSwgMHg1YywgMHhiYywgMHgyMCwgMHg3MCwgMHg3NSwgMHhjMAorICAgIH0KK307CisKK3N0YXRpYyBjb25zdCB1bnNpZ25lZCBjaGFyIHRlc3RfZGF0YVsyXVsxMjddID0KK3sKKyAgICB7CisgICAgICAgIDB4NDMsIDB4NzIsIDB4NzksIDB4NzAsIDB4NzQsIDB4NmYsIDB4NjcsIDB4NzIsCisgICAgICAgIDB4NjEsIDB4NzAsIDB4NjgsIDB4NjksIDB4NjMsIDB4MjAsIDB4NDYsIDB4NmYsCisgICAgICAgIDB4NzIsIDB4NzUsIDB4NmQsIDB4MjAsIDB4NTIsIDB4NjUsIDB4NzMsIDB4NjUsCisgICAgICAgIDB4NjEsIDB4NzIsIDB4NjMsIDB4NjgsIDB4MjAsIDB4NDcsIDB4NzIsIDB4NmYsCisgICAgICAgIDB4NzUsIDB4NzAKKyAgICB9LAorICAgIHsKKyAgICAgICAgMHgyNywgMHg1NCwgMHg3NywgMHg2MSwgMHg3MywgMHgyMCwgMHg2MiwgMHg3MiwKKyAgICAgICAgMHg2OSwgMHg2YywgMHg2YywgMHg2OSwgMHg2NywgMHgyYywgMHgyMCwgMHg2MSwKKyAgICAgICAgMHg2ZSwgMHg2NCwgMHgyMCwgMHg3NCwgMHg2OCwgMHg2NSwgMHgyMCwgMHg3MywKKyAgICAgICAgMHg2YywgMHg2OSwgMHg3NCwgMHg2OCwgMHg3OSwgMHgyMCwgMHg3NCwgMHg2ZiwKKyAgICAgICAgMHg3NiwgMHg2NSwgMHg3MywgMHgwYSwgMHg0NCwgMHg2OSwgMHg2NCwgMHgyMCwKKyAgICAgICAgMHg2NywgMHg3OSwgMHg3MiwgMHg2NSwgMHgyMCwgMHg2MSwgMHg2ZSwgMHg2NCwKKyAgICAgICAgMHgyMCwgMHg2NywgMHg2OSwgMHg2ZCwgMHg2MiwgMHg2YywgMHg2NSwgMHgyMCwKKyAgICAgICAgMHg2OSwgMHg2ZSwgMHgyMCwgMHg3NCwgMHg2OCwgMHg2NSwgMHgyMCwgMHg3NywKKyAgICAgICAgMHg2MSwgMHg2MiwgMHg2NSwgMHgzYSwgMHgwYSwgMHg0MSwgMHg2YywgMHg2YywKKyAgICAgICAgMHgyMCwgMHg2ZCwgMHg2OSwgMHg2ZCwgMHg3MywgMHg3OSwgMHgyMCwgMHg3NywKKyAgICAgICAgMHg2NSwgMHg3MiwgMHg2NSwgMHgyMCwgMHg3NCwgMHg2OCwgMHg2NSwgMHgyMCwKKyAgICAgICAgMHg2MiwgMHg2ZiwgMHg3MiwgMHg2ZiwgMHg2NywgMHg2ZiwgMHg3NiwgMHg2NSwKKyAgICAgICAgMHg3MywgMHgyYywgMHgwYSwgMHg0MSwgMHg2ZSwgMHg2NCwgMHgyMCwgMHg3NCwKKyAgICAgICAgMHg2OCwgMHg2NSwgMHgyMCwgMHg2ZCwgMHg2ZiwgMHg2ZCwgMHg2NSwgMHgyMCwKKyAgICAgICAgMHg3MiwgMHg2MSwgMHg3NCwgMHg2OCwgMHg3MywgMHgyMCwgMHg2ZiwgMHg3NSwKKyAgICAgICAgMHg3NCwgMHg2NywgMHg3MiwgMHg2MSwgMHg2MiwgMHg2NSwgMHgyZQorICAgIH0KK307CisKK3N0YXRpYyBjb25zdCBzaXplX3QgdGVzdF9kYXRhX2xlblsyXSA9Cit7CisgICAgMzRVLAorICAgIDEyN1UKK307CisKK3N0YXRpYyBjb25zdCB1bnNpZ25lZCBjaGFyIHRlc3RfbWFjWzJdWzE2XSA9Cit7CisgICAgeworICAgICAgICAweGE4LCAweDA2LCAweDFkLCAweGMxLCAweDMwLCAweDUxLCAweDM2LCAweGM2LAorICAgICAgICAweGMyLCAweDJiLCAweDhiLCAweGFmLCAweDBjLCAweDAxLCAweDI3LCAweGE5CisgICAgfSwKKyAgICB7CisgICAgICAgIDB4NDUsIDB4NDEsIDB4NjYsIDB4OWEsIDB4N2UsIDB4YWEsIDB4ZWUsIDB4NjEsCisgICAgICAgIDB4ZTcsIDB4MDgsIDB4ZGMsIDB4N2MsIDB4YmMsIDB4YzUsIDB4ZWIsIDB4NjIKKyAgICB9Cit9OworCisvKiBNYWtlIHN1cmUgbm8gb3RoZXIgZGVmaW5pdGlvbiBpcyBhbHJlYWR5IHByZXNlbnQuICovCisjdW5kZWYgQVNTRVJUCisKKyNkZWZpbmUgQVNTRVJUKGNvbmQsIGFyZ3MpICAgICAgICAgICAgXAorICAgIGRvICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgIGlmICghKGNvbmQpKSAgICAgICAgICAgICAgICBcCisgICAgICAgIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICAgICAgaWYgKHZlcmJvc2UgIT0gMCkgICAgICAgICAgXAorICAgICAgICAgICAgbWJlZHRsc19wcmludGYgYXJnczsgICAgXAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgICAgIHJldHVybiAtMTsgICAgICAgICAgICAgICBcCisgICAgICAgIH0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIH0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICB3aGlsZSAoMCkKKworaW50IG1iZWR0bHNfcG9seTEzMDVfc2VsZl90ZXN0KGludCB2ZXJib3NlKQoreworICAgIHVuc2lnbmVkIGNoYXIgbWFjWzE2XTsKKyAgICB1bnNpZ25lZCBpOworICAgIGludCByZXQgPSBNQkVEVExTX0VSUl9FUlJPUl9DT1JSVVBUSU9OX0RFVEVDVEVEOworCisgICAgZm9yIChpID0gMFU7IGkgPCAyVTsgaSsrKSB7CisgICAgICAgIGlmICh2ZXJib3NlICE9IDApIHsKKyAgICAgICAgICAgIG1iZWR0bHNfcHJpbnRmKCIgIFBvbHkxMzA1IHRlc3QgJXUgIiwgaSk7CisgICAgICAgIH0KKworICAgICAgICByZXQgPSBtYmVkdGxzX3BvbHkxMzA1X21hYyh0ZXN0X2tleXNbaV0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RfZGF0YVtpXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGVzdF9kYXRhX2xlbltpXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFjKTsKKyAgICAgICAgQVNTRVJUKDAgPT0gcmV0LCAoImVycm9yIGNvZGU6ICVpXG4iLCByZXQpKTsKKworICAgICAgICBBU1NFUlQoMCA9PSBtZW1jbXAobWFjLCB0ZXN0X21hY1tpXSwgMTZVKSwgKCJmYWlsZWQgKG1hYylcbiIpKTsKKworICAgICAgICBpZiAodmVyYm9zZSAhPSAwKSB7CisgICAgICAgICAgICBtYmVkdGxzX3ByaW50ZigicGFzc2VkXG4iKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIGlmICh2ZXJib3NlICE9IDApIHsKKyAgICAgICAgbWJlZHRsc19wcmludGYoIlxuIik7CisgICAgfQorCisgICAgcmV0dXJuIDA7Cit9CisKKyNlbmRpZiAvKiBNQkVEVExTX1NFTEZfVEVTVCAqLworCisjZW5kaWYgLyogTUJFRFRMU19QT0xZMTMwNV9DICovCmRpZmYgLS1naXQgYS90Zi1wc2EtY3J5cHRvL2RyaXZlcnMvYnVpbHRpbi9zcmMvcmlwZW1kMTYwLmMgYi90Zi1wc2EtY3J5cHRvL2RyaXZlcnMvYnVpbHRpbi9zcmMvcmlwZW1kMTYwLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTZiNTQ2NgotLS0gL2Rldi9udWxsCisrKyBiL3RmLXBzYS1jcnlwdG8vZHJpdmVycy9idWlsdGluL3NyYy9yaXBlbWQxNjAuYwpAQCAtMCwwICsxLDQ4NiBAQAorLyoKKyAqICBSSVBFIE1ELTE2MCBpbXBsZW1lbnRhdGlvbgorICoKKyAqICBDb3B5cmlnaHQgVGhlIE1iZWQgVExTIENvbnRyaWJ1dG9ycworICogIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wIE9SIEdQTC0yLjAtb3ItbGF0ZXIKKyAqLworCisvKgorICogIFRoZSBSSVBFTUQtMTYwIGFsZ29yaXRobSB3YXMgZGVzaWduZWQgYnkgUklQRSBpbiAxOTk2CisgKiAgaHR0cDovL2hvbWVzLmVzYXQua3VsZXV2ZW4uYmUvfmJvc3NlbGFlL21iZWR0bHNfcmlwZW1kMTYwLmh0bWwKKyAqICBodHRwOi8vZWhhc2guaWFpay50dWdyYXouYXQvd2lraS9SSVBFTUQtMTYwCisgKi8KKworI2luY2x1ZGUgImNvbW1vbi5oIgorCisjaWYgZGVmaW5lZChNQkVEVExTX1JJUEVNRDE2MF9DKQorCisjaW5jbHVkZSAibWJlZHRscy9yaXBlbWQxNjAuaCIKKyNpbmNsdWRlICJtYmVkdGxzL3BsYXRmb3JtX3V0aWwuaCIKKyNpbmNsdWRlICJtYmVkdGxzL2Vycm9yLmgiCisKKyNpbmNsdWRlIDxzdHJpbmcuaD4KKworI2luY2x1ZGUgIm1iZWR0bHMvcGxhdGZvcm0uaCIKKwordm9pZCBtYmVkdGxzX3JpcGVtZDE2MF9pbml0KG1iZWR0bHNfcmlwZW1kMTYwX2NvbnRleHQgKmN0eCkKK3sKKyAgICBtZW1zZXQoY3R4LCAwLCBzaXplb2YobWJlZHRsc19yaXBlbWQxNjBfY29udGV4dCkpOworfQorCit2b2lkIG1iZWR0bHNfcmlwZW1kMTYwX2ZyZWUobWJlZHRsc19yaXBlbWQxNjBfY29udGV4dCAqY3R4KQoreworICAgIGlmIChjdHggPT0gTlVMTCkgeworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgbWJlZHRsc19wbGF0Zm9ybV96ZXJvaXplKGN0eCwgc2l6ZW9mKG1iZWR0bHNfcmlwZW1kMTYwX2NvbnRleHQpKTsKK30KKwordm9pZCBtYmVkdGxzX3JpcGVtZDE2MF9jbG9uZShtYmVkdGxzX3JpcGVtZDE2MF9jb250ZXh0ICpkc3QsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IG1iZWR0bHNfcmlwZW1kMTYwX2NvbnRleHQgKnNyYykKK3sKKyAgICAqZHN0ID0gKnNyYzsKK30KKworLyoKKyAqIFJJUEVNRC0xNjAgY29udGV4dCBzZXR1cAorICovCitpbnQgbWJlZHRsc19yaXBlbWQxNjBfc3RhcnRzKG1iZWR0bHNfcmlwZW1kMTYwX2NvbnRleHQgKmN0eCkKK3sKKyAgICBjdHgtPnRvdGFsWzBdID0gMDsKKyAgICBjdHgtPnRvdGFsWzFdID0gMDsKKworICAgIGN0eC0+c3RhdGVbMF0gPSAweDY3NDUyMzAxOworICAgIGN0eC0+c3RhdGVbMV0gPSAweEVGQ0RBQjg5OworICAgIGN0eC0+c3RhdGVbMl0gPSAweDk4QkFEQ0ZFOworICAgIGN0eC0+c3RhdGVbM10gPSAweDEwMzI1NDc2OworICAgIGN0eC0+c3RhdGVbNF0gPSAweEMzRDJFMUYwOworCisgICAgcmV0dXJuIDA7Cit9CisKKyNpZiAhZGVmaW5lZChNQkVEVExTX1JJUEVNRDE2MF9QUk9DRVNTX0FMVCkKKy8qCisgKiBQcm9jZXNzIG9uZSBibG9jaworICovCitpbnQgbWJlZHRsc19pbnRlcm5hbF9yaXBlbWQxNjBfcHJvY2VzcyhtYmVkdGxzX3JpcGVtZDE2MF9jb250ZXh0ICpjdHgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1bnNpZ25lZCBjaGFyIGRhdGFbNjRdKQoreworICAgIHN0cnVjdCB7CisgICAgICAgIHVpbnQzMl90IEEsIEIsIEMsIEQsIEUsIEFwLCBCcCwgQ3AsIERwLCBFcCwgWFsxNl07CisgICAgfSBsb2NhbDsKKworICAgIGxvY2FsLlhbMF0gPSBNQkVEVExTX0dFVF9VSU5UMzJfTEUoZGF0YSwgIDApOworICAgIGxvY2FsLlhbMV0gPSBNQkVEVExTX0dFVF9VSU5UMzJfTEUoZGF0YSwgIDQpOworICAgIGxvY2FsLlhbMl0gPSBNQkVEVExTX0dFVF9VSU5UMzJfTEUoZGF0YSwgIDgpOworICAgIGxvY2FsLlhbM10gPSBNQkVEVExTX0dFVF9VSU5UMzJfTEUoZGF0YSwgMTIpOworICAgIGxvY2FsLlhbNF0gPSBNQkVEVExTX0dFVF9VSU5UMzJfTEUoZGF0YSwgMTYpOworICAgIGxvY2FsLlhbNV0gPSBNQkVEVExTX0dFVF9VSU5UMzJfTEUoZGF0YSwgMjApOworICAgIGxvY2FsLlhbNl0gPSBNQkVEVExTX0dFVF9VSU5UMzJfTEUoZGF0YSwgMjQpOworICAgIGxvY2FsLlhbN10gPSBNQkVEVExTX0dFVF9VSU5UMzJfTEUoZGF0YSwgMjgpOworICAgIGxvY2FsLlhbOF0gPSBNQkVEVExTX0dFVF9VSU5UMzJfTEUoZGF0YSwgMzIpOworICAgIGxvY2FsLlhbOV0gPSBNQkVEVExTX0dFVF9VSU5UMzJfTEUoZGF0YSwgMzYpOworICAgIGxvY2FsLlhbMTBdID0gTUJFRFRMU19HRVRfVUlOVDMyX0xFKGRhdGEsIDQwKTsKKyAgICBsb2NhbC5YWzExXSA9IE1CRURUTFNfR0VUX1VJTlQzMl9MRShkYXRhLCA0NCk7CisgICAgbG9jYWwuWFsxMl0gPSBNQkVEVExTX0dFVF9VSU5UMzJfTEUoZGF0YSwgNDgpOworICAgIGxvY2FsLlhbMTNdID0gTUJFRFRMU19HRVRfVUlOVDMyX0xFKGRhdGEsIDUyKTsKKyAgICBsb2NhbC5YWzE0XSA9IE1CRURUTFNfR0VUX1VJTlQzMl9MRShkYXRhLCA1Nik7CisgICAgbG9jYWwuWFsxNV0gPSBNQkVEVExTX0dFVF9VSU5UMzJfTEUoZGF0YSwgNjApOworCisgICAgbG9jYWwuQSA9IGxvY2FsLkFwID0gY3R4LT5zdGF0ZVswXTsKKyAgICBsb2NhbC5CID0gbG9jYWwuQnAgPSBjdHgtPnN0YXRlWzFdOworICAgIGxvY2FsLkMgPSBsb2NhbC5DcCA9IGN0eC0+c3RhdGVbMl07CisgICAgbG9jYWwuRCA9IGxvY2FsLkRwID0gY3R4LT5zdGF0ZVszXTsKKyAgICBsb2NhbC5FID0gbG9jYWwuRXAgPSBjdHgtPnN0YXRlWzRdOworCisjZGVmaW5lIEYxKHgsIHksIHopICAgKCh4KSBeICh5KSBeICh6KSkKKyNkZWZpbmUgRjIoeCwgeSwgeikgICAoKCh4KSAmICh5KSkgfCAofih4KSAmICh6KSkpCisjZGVmaW5lIEYzKHgsIHksIHopICAgKCgoeCkgfCB+KHkpKSBeICh6KSkKKyNkZWZpbmUgRjQoeCwgeSwgeikgICAoKCh4KSAmICh6KSkgfCAoKHkpICYgfih6KSkpCisjZGVmaW5lIEY1KHgsIHksIHopICAgKCh4KSBeICgoeSkgfCB+KHopKSkKKworI2RlZmluZSBTKHgsIG4pICgoKHgpIDw8IChuKSkgfCAoKHgpID4+ICgzMiAtIChuKSkpKQorCisjZGVmaW5lIFAoYSwgYiwgYywgZCwgZSwgciwgcywgZiwgaykgICAgICAgICAgICAgICAgICAgICAgXAorICAgIGRvICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICAoYSkgKz0gZigoYiksIChjKSwgKGQpKSArIGxvY2FsLlhbcl0gKyAoayk7ICAgICAgIFwKKyAgICAgICAgKGEpID0gUygoYSksIChzKSkgKyAoZSk7ICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgIChjKSA9IFMoKGMpLCAxMCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIH0gd2hpbGUgKDApCisKKyNkZWZpbmUgUDIoYSwgYiwgYywgZCwgZSwgciwgcywgcnAsIHNwKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgZG8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgIFAoKGEpLCAoYiksIChjKSwgKGQpLCAoZSksIChyKSwgKHMpLCBGLCBLKTsgICAgICAgICAgICAgICAgICAgXAorICAgICAgICBQKGEgIyMgcCwgYiAjIyBwLCBjICMjIHAsIGQgIyMgcCwgZSAjIyBwLCAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgICAgKHJwKSwgKHNwKSwgRnAsIEtwKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIH0gd2hpbGUgKDApCisKKyNkZWZpbmUgRiAgIEYxCisjZGVmaW5lIEsgICAweDAwMDAwMDAwCisjZGVmaW5lIEZwICBGNQorI2RlZmluZSBLcCAgMHg1MEEyOEJFNgorICAgIFAyKGxvY2FsLkEsIGxvY2FsLkIsIGxvY2FsLkMsIGxvY2FsLkQsIGxvY2FsLkUsICAwLCAxMSwgIDUsICA4KTsKKyAgICBQMihsb2NhbC5FLCBsb2NhbC5BLCBsb2NhbC5CLCBsb2NhbC5DLCBsb2NhbC5ELCAgMSwgMTQsIDE0LCAgOSk7CisgICAgUDIobG9jYWwuRCwgbG9jYWwuRSwgbG9jYWwuQSwgbG9jYWwuQiwgbG9jYWwuQywgIDIsIDE1LCAgNywgIDkpOworICAgIFAyKGxvY2FsLkMsIGxvY2FsLkQsIGxvY2FsLkUsIGxvY2FsLkEsIGxvY2FsLkIsICAzLCAxMiwgIDAsIDExKTsKKyAgICBQMihsb2NhbC5CLCBsb2NhbC5DLCBsb2NhbC5ELCBsb2NhbC5FLCBsb2NhbC5BLCAgNCwgIDUsICA5LCAxMyk7CisgICAgUDIobG9jYWwuQSwgbG9jYWwuQiwgbG9jYWwuQywgbG9jYWwuRCwgbG9jYWwuRSwgIDUsICA4LCAgMiwgMTUpOworICAgIFAyKGxvY2FsLkUsIGxvY2FsLkEsIGxvY2FsLkIsIGxvY2FsLkMsIGxvY2FsLkQsICA2LCAgNywgMTEsIDE1KTsKKyAgICBQMihsb2NhbC5ELCBsb2NhbC5FLCBsb2NhbC5BLCBsb2NhbC5CLCBsb2NhbC5DLCAgNywgIDksICA0LCAgNSk7CisgICAgUDIobG9jYWwuQywgbG9jYWwuRCwgbG9jYWwuRSwgbG9jYWwuQSwgbG9jYWwuQiwgIDgsIDExLCAxMywgIDcpOworICAgIFAyKGxvY2FsLkIsIGxvY2FsLkMsIGxvY2FsLkQsIGxvY2FsLkUsIGxvY2FsLkEsICA5LCAxMywgIDYsICA3KTsKKyAgICBQMihsb2NhbC5BLCBsb2NhbC5CLCBsb2NhbC5DLCBsb2NhbC5ELCBsb2NhbC5FLCAxMCwgMTQsIDE1LCAgOCk7CisgICAgUDIobG9jYWwuRSwgbG9jYWwuQSwgbG9jYWwuQiwgbG9jYWwuQywgbG9jYWwuRCwgMTEsIDE1LCAgOCwgMTEpOworICAgIFAyKGxvY2FsLkQsIGxvY2FsLkUsIGxvY2FsLkEsIGxvY2FsLkIsIGxvY2FsLkMsIDEyLCAgNiwgIDEsIDE0KTsKKyAgICBQMihsb2NhbC5DLCBsb2NhbC5ELCBsb2NhbC5FLCBsb2NhbC5BLCBsb2NhbC5CLCAxMywgIDcsIDEwLCAxNCk7CisgICAgUDIobG9jYWwuQiwgbG9jYWwuQywgbG9jYWwuRCwgbG9jYWwuRSwgbG9jYWwuQSwgMTQsICA5LCAgMywgMTIpOworICAgIFAyKGxvY2FsLkEsIGxvY2FsLkIsIGxvY2FsLkMsIGxvY2FsLkQsIGxvY2FsLkUsIDE1LCAgOCwgMTIsICA2KTsKKyN1bmRlZiBGCisjdW5kZWYgSworI3VuZGVmIEZwCisjdW5kZWYgS3AKKworI2RlZmluZSBGICAgRjIKKyNkZWZpbmUgSyAgIDB4NUE4Mjc5OTkKKyNkZWZpbmUgRnAgIEY0CisjZGVmaW5lIEtwICAweDVDNEREMTI0CisgICAgUDIobG9jYWwuRSwgbG9jYWwuQSwgbG9jYWwuQiwgbG9jYWwuQywgbG9jYWwuRCwgIDcsICA3LCAgNiwgIDkpOworICAgIFAyKGxvY2FsLkQsIGxvY2FsLkUsIGxvY2FsLkEsIGxvY2FsLkIsIGxvY2FsLkMsICA0LCAgNiwgMTEsIDEzKTsKKyAgICBQMihsb2NhbC5DLCBsb2NhbC5ELCBsb2NhbC5FLCBsb2NhbC5BLCBsb2NhbC5CLCAxMywgIDgsICAzLCAxNSk7CisgICAgUDIobG9jYWwuQiwgbG9jYWwuQywgbG9jYWwuRCwgbG9jYWwuRSwgbG9jYWwuQSwgIDEsIDEzLCAgNywgIDcpOworICAgIFAyKGxvY2FsLkEsIGxvY2FsLkIsIGxvY2FsLkMsIGxvY2FsLkQsIGxvY2FsLkUsIDEwLCAxMSwgIDAsIDEyKTsKKyAgICBQMihsb2NhbC5FLCBsb2NhbC5BLCBsb2NhbC5CLCBsb2NhbC5DLCBsb2NhbC5ELCAgNiwgIDksIDEzLCAgOCk7CisgICAgUDIobG9jYWwuRCwgbG9jYWwuRSwgbG9jYWwuQSwgbG9jYWwuQiwgbG9jYWwuQywgMTUsICA3LCAgNSwgIDkpOworICAgIFAyKGxvY2FsLkMsIGxvY2FsLkQsIGxvY2FsLkUsIGxvY2FsLkEsIGxvY2FsLkIsICAzLCAxNSwgMTAsIDExKTsKKyAgICBQMihsb2NhbC5CLCBsb2NhbC5DLCBsb2NhbC5ELCBsb2NhbC5FLCBsb2NhbC5BLCAxMiwgIDcsIDE0LCAgNyk7CisgICAgUDIobG9jYWwuQSwgbG9jYWwuQiwgbG9jYWwuQywgbG9jYWwuRCwgbG9jYWwuRSwgIDAsIDEyLCAxNSwgIDcpOworICAgIFAyKGxvY2FsLkUsIGxvY2FsLkEsIGxvY2FsLkIsIGxvY2FsLkMsIGxvY2FsLkQsICA5LCAxNSwgIDgsIDEyKTsKKyAgICBQMihsb2NhbC5ELCBsb2NhbC5FLCBsb2NhbC5BLCBsb2NhbC5CLCBsb2NhbC5DLCAgNSwgIDksIDEyLCAgNyk7CisgICAgUDIobG9jYWwuQywgbG9jYWwuRCwgbG9jYWwuRSwgbG9jYWwuQSwgbG9jYWwuQiwgIDIsIDExLCAgNCwgIDYpOworICAgIFAyKGxvY2FsLkIsIGxvY2FsLkMsIGxvY2FsLkQsIGxvY2FsLkUsIGxvY2FsLkEsIDE0LCAgNywgIDksIDE1KTsKKyAgICBQMihsb2NhbC5BLCBsb2NhbC5CLCBsb2NhbC5DLCBsb2NhbC5ELCBsb2NhbC5FLCAxMSwgMTMsICAxLCAxMyk7CisgICAgUDIobG9jYWwuRSwgbG9jYWwuQSwgbG9jYWwuQiwgbG9jYWwuQywgbG9jYWwuRCwgIDgsIDEyLCAgMiwgMTEpOworI3VuZGVmIEYKKyN1bmRlZiBLCisjdW5kZWYgRnAKKyN1bmRlZiBLcAorCisjZGVmaW5lIEYgICBGMworI2RlZmluZSBLICAgMHg2RUQ5RUJBMQorI2RlZmluZSBGcCAgRjMKKyNkZWZpbmUgS3AgIDB4NkQ3MDNFRjMKKyAgICBQMihsb2NhbC5ELCBsb2NhbC5FLCBsb2NhbC5BLCBsb2NhbC5CLCBsb2NhbC5DLCAgMywgMTEsIDE1LCAgOSk7CisgICAgUDIobG9jYWwuQywgbG9jYWwuRCwgbG9jYWwuRSwgbG9jYWwuQSwgbG9jYWwuQiwgMTAsIDEzLCAgNSwgIDcpOworICAgIFAyKGxvY2FsLkIsIGxvY2FsLkMsIGxvY2FsLkQsIGxvY2FsLkUsIGxvY2FsLkEsIDE0LCAgNiwgIDEsIDE1KTsKKyAgICBQMihsb2NhbC5BLCBsb2NhbC5CLCBsb2NhbC5DLCBsb2NhbC5ELCBsb2NhbC5FLCAgNCwgIDcsICAzLCAxMSk7CisgICAgUDIobG9jYWwuRSwgbG9jYWwuQSwgbG9jYWwuQiwgbG9jYWwuQywgbG9jYWwuRCwgIDksIDE0LCAgNywgIDgpOworICAgIFAyKGxvY2FsLkQsIGxvY2FsLkUsIGxvY2FsLkEsIGxvY2FsLkIsIGxvY2FsLkMsIDE1LCAgOSwgMTQsICA2KTsKKyAgICBQMihsb2NhbC5DLCBsb2NhbC5ELCBsb2NhbC5FLCBsb2NhbC5BLCBsb2NhbC5CLCAgOCwgMTMsICA2LCAgNik7CisgICAgUDIobG9jYWwuQiwgbG9jYWwuQywgbG9jYWwuRCwgbG9jYWwuRSwgbG9jYWwuQSwgIDEsIDE1LCAgOSwgMTQpOworICAgIFAyKGxvY2FsLkEsIGxvY2FsLkIsIGxvY2FsLkMsIGxvY2FsLkQsIGxvY2FsLkUsICAyLCAxNCwgMTEsIDEyKTsKKyAgICBQMihsb2NhbC5FLCBsb2NhbC5BLCBsb2NhbC5CLCBsb2NhbC5DLCBsb2NhbC5ELCAgNywgIDgsICA4LCAxMyk7CisgICAgUDIobG9jYWwuRCwgbG9jYWwuRSwgbG9jYWwuQSwgbG9jYWwuQiwgbG9jYWwuQywgIDAsIDEzLCAxMiwgIDUpOworICAgIFAyKGxvY2FsLkMsIGxvY2FsLkQsIGxvY2FsLkUsIGxvY2FsLkEsIGxvY2FsLkIsICA2LCAgNiwgIDIsIDE0KTsKKyAgICBQMihsb2NhbC5CLCBsb2NhbC5DLCBsb2NhbC5ELCBsb2NhbC5FLCBsb2NhbC5BLCAxMywgIDUsIDEwLCAxMyk7CisgICAgUDIobG9jYWwuQSwgbG9jYWwuQiwgbG9jYWwuQywgbG9jYWwuRCwgbG9jYWwuRSwgMTEsIDEyLCAgMCwgMTMpOworICAgIFAyKGxvY2FsLkUsIGxvY2FsLkEsIGxvY2FsLkIsIGxvY2FsLkMsIGxvY2FsLkQsICA1LCAgNywgIDQsICA3KTsKKyAgICBQMihsb2NhbC5ELCBsb2NhbC5FLCBsb2NhbC5BLCBsb2NhbC5CLCBsb2NhbC5DLCAxMiwgIDUsIDEzLCAgNSk7CisjdW5kZWYgRgorI3VuZGVmIEsKKyN1bmRlZiBGcAorI3VuZGVmIEtwCisKKyNkZWZpbmUgRiAgIEY0CisjZGVmaW5lIEsgICAweDhGMUJCQ0RDCisjZGVmaW5lIEZwICBGMgorI2RlZmluZSBLcCAgMHg3QTZENzZFOQorICAgIFAyKGxvY2FsLkMsIGxvY2FsLkQsIGxvY2FsLkUsIGxvY2FsLkEsIGxvY2FsLkIsICAxLCAxMSwgIDgsIDE1KTsKKyAgICBQMihsb2NhbC5CLCBsb2NhbC5DLCBsb2NhbC5ELCBsb2NhbC5FLCBsb2NhbC5BLCAgOSwgMTIsICA2LCAgNSk7CisgICAgUDIobG9jYWwuQSwgbG9jYWwuQiwgbG9jYWwuQywgbG9jYWwuRCwgbG9jYWwuRSwgMTEsIDE0LCAgNCwgIDgpOworICAgIFAyKGxvY2FsLkUsIGxvY2FsLkEsIGxvY2FsLkIsIGxvY2FsLkMsIGxvY2FsLkQsIDEwLCAxNSwgIDEsIDExKTsKKyAgICBQMihsb2NhbC5ELCBsb2NhbC5FLCBsb2NhbC5BLCBsb2NhbC5CLCBsb2NhbC5DLCAgMCwgMTQsICAzLCAxNCk7CisgICAgUDIobG9jYWwuQywgbG9jYWwuRCwgbG9jYWwuRSwgbG9jYWwuQSwgbG9jYWwuQiwgIDgsIDE1LCAxMSwgMTQpOworICAgIFAyKGxvY2FsLkIsIGxvY2FsLkMsIGxvY2FsLkQsIGxvY2FsLkUsIGxvY2FsLkEsIDEyLCAgOSwgMTUsICA2KTsKKyAgICBQMihsb2NhbC5BLCBsb2NhbC5CLCBsb2NhbC5DLCBsb2NhbC5ELCBsb2NhbC5FLCAgNCwgIDgsICAwLCAxNCk7CisgICAgUDIobG9jYWwuRSwgbG9jYWwuQSwgbG9jYWwuQiwgbG9jYWwuQywgbG9jYWwuRCwgMTMsICA5LCAgNSwgIDYpOworICAgIFAyKGxvY2FsLkQsIGxvY2FsLkUsIGxvY2FsLkEsIGxvY2FsLkIsIGxvY2FsLkMsICAzLCAxNCwgMTIsICA5KTsKKyAgICBQMihsb2NhbC5DLCBsb2NhbC5ELCBsb2NhbC5FLCBsb2NhbC5BLCBsb2NhbC5CLCAgNywgIDUsICAyLCAxMik7CisgICAgUDIobG9jYWwuQiwgbG9jYWwuQywgbG9jYWwuRCwgbG9jYWwuRSwgbG9jYWwuQSwgMTUsICA2LCAxMywgIDkpOworICAgIFAyKGxvY2FsLkEsIGxvY2FsLkIsIGxvY2FsLkMsIGxvY2FsLkQsIGxvY2FsLkUsIDE0LCAgOCwgIDksIDEyKTsKKyAgICBQMihsb2NhbC5FLCBsb2NhbC5BLCBsb2NhbC5CLCBsb2NhbC5DLCBsb2NhbC5ELCAgNSwgIDYsICA3LCAgNSk7CisgICAgUDIobG9jYWwuRCwgbG9jYWwuRSwgbG9jYWwuQSwgbG9jYWwuQiwgbG9jYWwuQywgIDYsICA1LCAxMCwgMTUpOworICAgIFAyKGxvY2FsLkMsIGxvY2FsLkQsIGxvY2FsLkUsIGxvY2FsLkEsIGxvY2FsLkIsICAyLCAxMiwgMTQsICA4KTsKKyN1bmRlZiBGCisjdW5kZWYgSworI3VuZGVmIEZwCisjdW5kZWYgS3AKKworI2RlZmluZSBGICAgRjUKKyNkZWZpbmUgSyAgIDB4QTk1M0ZENEUKKyNkZWZpbmUgRnAgIEYxCisjZGVmaW5lIEtwICAweDAwMDAwMDAwCisgICAgUDIobG9jYWwuQiwgbG9jYWwuQywgbG9jYWwuRCwgbG9jYWwuRSwgbG9jYWwuQSwgIDQsICA5LCAxMiwgIDgpOworICAgIFAyKGxvY2FsLkEsIGxvY2FsLkIsIGxvY2FsLkMsIGxvY2FsLkQsIGxvY2FsLkUsICAwLCAxNSwgMTUsICA1KTsKKyAgICBQMihsb2NhbC5FLCBsb2NhbC5BLCBsb2NhbC5CLCBsb2NhbC5DLCBsb2NhbC5ELCAgNSwgIDUsIDEwLCAxMik7CisgICAgUDIobG9jYWwuRCwgbG9jYWwuRSwgbG9jYWwuQSwgbG9jYWwuQiwgbG9jYWwuQywgIDksIDExLCAgNCwgIDkpOworICAgIFAyKGxvY2FsLkMsIGxvY2FsLkQsIGxvY2FsLkUsIGxvY2FsLkEsIGxvY2FsLkIsICA3LCAgNiwgIDEsIDEyKTsKKyAgICBQMihsb2NhbC5CLCBsb2NhbC5DLCBsb2NhbC5ELCBsb2NhbC5FLCBsb2NhbC5BLCAxMiwgIDgsICA1LCAgNSk7CisgICAgUDIobG9jYWwuQSwgbG9jYWwuQiwgbG9jYWwuQywgbG9jYWwuRCwgbG9jYWwuRSwgIDIsIDEzLCAgOCwgMTQpOworICAgIFAyKGxvY2FsLkUsIGxvY2FsLkEsIGxvY2FsLkIsIGxvY2FsLkMsIGxvY2FsLkQsIDEwLCAxMiwgIDcsICA2KTsKKyAgICBQMihsb2NhbC5ELCBsb2NhbC5FLCBsb2NhbC5BLCBsb2NhbC5CLCBsb2NhbC5DLCAxNCwgIDUsICA2LCAgOCk7CisgICAgUDIobG9jYWwuQywgbG9jYWwuRCwgbG9jYWwuRSwgbG9jYWwuQSwgbG9jYWwuQiwgIDEsIDEyLCAgMiwgMTMpOworICAgIFAyKGxvY2FsLkIsIGxvY2FsLkMsIGxvY2FsLkQsIGxvY2FsLkUsIGxvY2FsLkEsICAzLCAxMywgMTMsICA2KTsKKyAgICBQMihsb2NhbC5BLCBsb2NhbC5CLCBsb2NhbC5DLCBsb2NhbC5ELCBsb2NhbC5FLCAgOCwgMTQsIDE0LCAgNSk7CisgICAgUDIobG9jYWwuRSwgbG9jYWwuQSwgbG9jYWwuQiwgbG9jYWwuQywgbG9jYWwuRCwgMTEsIDExLCAgMCwgMTUpOworICAgIFAyKGxvY2FsLkQsIGxvY2FsLkUsIGxvY2FsLkEsIGxvY2FsLkIsIGxvY2FsLkMsICA2LCAgOCwgIDMsIDEzKTsKKyAgICBQMihsb2NhbC5DLCBsb2NhbC5ELCBsb2NhbC5FLCBsb2NhbC5BLCBsb2NhbC5CLCAxNSwgIDUsICA5LCAxMSk7CisgICAgUDIobG9jYWwuQiwgbG9jYWwuQywgbG9jYWwuRCwgbG9jYWwuRSwgbG9jYWwuQSwgMTMsICA2LCAxMSwgMTEpOworI3VuZGVmIEYKKyN1bmRlZiBLCisjdW5kZWYgRnAKKyN1bmRlZiBLcAorCisgICAgbG9jYWwuQyAgICAgICA9IGN0eC0+c3RhdGVbMV0gKyBsb2NhbC5DICsgbG9jYWwuRHA7CisgICAgY3R4LT5zdGF0ZVsxXSA9IGN0eC0+c3RhdGVbMl0gKyBsb2NhbC5EICsgbG9jYWwuRXA7CisgICAgY3R4LT5zdGF0ZVsyXSA9IGN0eC0+c3RhdGVbM10gKyBsb2NhbC5FICsgbG9jYWwuQXA7CisgICAgY3R4LT5zdGF0ZVszXSA9IGN0eC0+c3RhdGVbNF0gKyBsb2NhbC5BICsgbG9jYWwuQnA7CisgICAgY3R4LT5zdGF0ZVs0XSA9IGN0eC0+c3RhdGVbMF0gKyBsb2NhbC5CICsgbG9jYWwuQ3A7CisgICAgY3R4LT5zdGF0ZVswXSA9IGxvY2FsLkM7CisKKyAgICAvKiBaZXJvaXNlIHZhcmlhYmxlcyB0byBjbGVhciBzZW5zaXRpdmUgZGF0YSBmcm9tIG1lbW9yeS4gKi8KKyAgICBtYmVkdGxzX3BsYXRmb3JtX3plcm9pemUoJmxvY2FsLCBzaXplb2YobG9jYWwpKTsKKworICAgIHJldHVybiAwOworfQorCisjZW5kaWYgLyogIU1CRURUTFNfUklQRU1EMTYwX1BST0NFU1NfQUxUICovCisKKy8qCisgKiBSSVBFTUQtMTYwIHByb2Nlc3MgYnVmZmVyCisgKi8KK2ludCBtYmVkdGxzX3JpcGVtZDE2MF91cGRhdGUobWJlZHRsc19yaXBlbWQxNjBfY29udGV4dCAqY3R4LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1bnNpZ25lZCBjaGFyICppbnB1dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IGlsZW4pCit7CisgICAgaW50IHJldCA9IE1CRURUTFNfRVJSX0VSUk9SX0NPUlJVUFRJT05fREVURUNURUQ7CisgICAgc2l6ZV90IGZpbGw7CisgICAgdWludDMyX3QgbGVmdDsKKworICAgIGlmIChpbGVuID09IDApIHsKKyAgICAgICAgcmV0dXJuIDA7CisgICAgfQorCisgICAgbGVmdCA9IGN0eC0+dG90YWxbMF0gJiAweDNGOworICAgIGZpbGwgPSA2NCAtIGxlZnQ7CisKKyAgICBjdHgtPnRvdGFsWzBdICs9ICh1aW50MzJfdCkgaWxlbjsKKyAgICBjdHgtPnRvdGFsWzBdICY9IDB4RkZGRkZGRkY7CisKKyAgICBpZiAoY3R4LT50b3RhbFswXSA8ICh1aW50MzJfdCkgaWxlbikgeworICAgICAgICBjdHgtPnRvdGFsWzFdKys7CisgICAgfQorCisgICAgaWYgKGxlZnQgJiYgaWxlbiA+PSBmaWxsKSB7CisgICAgICAgIG1lbWNweSgodm9pZCAqKSAoY3R4LT5idWZmZXIgKyBsZWZ0KSwgaW5wdXQsIGZpbGwpOworCisgICAgICAgIGlmICgocmV0ID0gbWJlZHRsc19pbnRlcm5hbF9yaXBlbWQxNjBfcHJvY2VzcyhjdHgsIGN0eC0+YnVmZmVyKSkgIT0gMCkgeworICAgICAgICAgICAgcmV0dXJuIHJldDsKKyAgICAgICAgfQorCisgICAgICAgIGlucHV0ICs9IGZpbGw7CisgICAgICAgIGlsZW4gIC09IGZpbGw7CisgICAgICAgIGxlZnQgPSAwOworICAgIH0KKworICAgIHdoaWxlIChpbGVuID49IDY0KSB7CisgICAgICAgIGlmICgocmV0ID0gbWJlZHRsc19pbnRlcm5hbF9yaXBlbWQxNjBfcHJvY2VzcyhjdHgsIGlucHV0KSkgIT0gMCkgeworICAgICAgICAgICAgcmV0dXJuIHJldDsKKyAgICAgICAgfQorCisgICAgICAgIGlucHV0ICs9IDY0OworICAgICAgICBpbGVuICAtPSA2NDsKKyAgICB9CisKKyAgICBpZiAoaWxlbiA+IDApIHsKKyAgICAgICAgbWVtY3B5KCh2b2lkICopIChjdHgtPmJ1ZmZlciArIGxlZnQpLCBpbnB1dCwgaWxlbik7CisgICAgfQorCisgICAgcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBjb25zdCB1bnNpZ25lZCBjaGFyIHJpcGVtZDE2MF9wYWRkaW5nWzY0XSA9Cit7CisgICAgMHg4MCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwKKyAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLAorICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsCisgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMAorfTsKKworLyoKKyAqIFJJUEVNRC0xNjAgZmluYWwgZGlnZXN0CisgKi8KK2ludCBtYmVkdGxzX3JpcGVtZDE2MF9maW5pc2gobWJlZHRsc19yaXBlbWQxNjBfY29udGV4dCAqY3R4LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBjaGFyIG91dHB1dFsyMF0pCit7CisgICAgaW50IHJldCA9IE1CRURUTFNfRVJSX0VSUk9SX0NPUlJVUFRJT05fREVURUNURUQ7CisgICAgdWludDMyX3QgbGFzdCwgcGFkbjsKKyAgICB1aW50MzJfdCBoaWdoLCBsb3c7CisgICAgdW5zaWduZWQgY2hhciBtc2dsZW5bOF07CisKKyAgICBoaWdoID0gKGN0eC0+dG90YWxbMF0gPj4gMjkpCisgICAgICAgICAgIHwgKGN0eC0+dG90YWxbMV0gPDwgIDMpOworICAgIGxvdyAgPSAoY3R4LT50b3RhbFswXSA8PCAgMyk7CisKKyAgICBNQkVEVExTX1BVVF9VSU5UMzJfTEUobG93LCAgbXNnbGVuLCAwKTsKKyAgICBNQkVEVExTX1BVVF9VSU5UMzJfTEUoaGlnaCwgbXNnbGVuLCA0KTsKKworICAgIGxhc3QgPSBjdHgtPnRvdGFsWzBdICYgMHgzRjsKKyAgICBwYWRuID0gKGxhc3QgPCA1NikgPyAoNTYgLSBsYXN0KSA6ICgxMjAgLSBsYXN0KTsKKworICAgIHJldCA9IG1iZWR0bHNfcmlwZW1kMTYwX3VwZGF0ZShjdHgsIHJpcGVtZDE2MF9wYWRkaW5nLCBwYWRuKTsKKyAgICBpZiAocmV0ICE9IDApIHsKKyAgICAgICAgZ290byBleGl0OworICAgIH0KKworICAgIHJldCA9IG1iZWR0bHNfcmlwZW1kMTYwX3VwZGF0ZShjdHgsIG1zZ2xlbiwgOCk7CisgICAgaWYgKHJldCAhPSAwKSB7CisgICAgICAgIGdvdG8gZXhpdDsKKyAgICB9CisKKyAgICBNQkVEVExTX1BVVF9VSU5UMzJfTEUoY3R4LT5zdGF0ZVswXSwgb3V0cHV0LCAgMCk7CisgICAgTUJFRFRMU19QVVRfVUlOVDMyX0xFKGN0eC0+c3RhdGVbMV0sIG91dHB1dCwgIDQpOworICAgIE1CRURUTFNfUFVUX1VJTlQzMl9MRShjdHgtPnN0YXRlWzJdLCBvdXRwdXQsICA4KTsKKyAgICBNQkVEVExTX1BVVF9VSU5UMzJfTEUoY3R4LT5zdGF0ZVszXSwgb3V0cHV0LCAxMik7CisgICAgTUJFRFRMU19QVVRfVUlOVDMyX0xFKGN0eC0+c3RhdGVbNF0sIG91dHB1dCwgMTYpOworCisgICAgcmV0ID0gMDsKKworZXhpdDoKKyAgICBtYmVkdGxzX3JpcGVtZDE2MF9mcmVlKGN0eCk7CisgICAgcmV0dXJuIHJldDsKK30KKworLyoKKyAqIG91dHB1dCA9IFJJUEVNRC0xNjAoIGlucHV0IGJ1ZmZlciApCisgKi8KK2ludCBtYmVkdGxzX3JpcGVtZDE2MChjb25zdCB1bnNpZ25lZCBjaGFyICppbnB1dCwKKyAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgaWxlbiwKKyAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBjaGFyIG91dHB1dFsyMF0pCit7CisgICAgaW50IHJldCA9IE1CRURUTFNfRVJSX0VSUk9SX0NPUlJVUFRJT05fREVURUNURUQ7CisgICAgbWJlZHRsc19yaXBlbWQxNjBfY29udGV4dCBjdHg7CisKKyAgICBtYmVkdGxzX3JpcGVtZDE2MF9pbml0KCZjdHgpOworCisgICAgaWYgKChyZXQgPSBtYmVkdGxzX3JpcGVtZDE2MF9zdGFydHMoJmN0eCkpICE9IDApIHsKKyAgICAgICAgZ290byBleGl0OworICAgIH0KKworICAgIGlmICgocmV0ID0gbWJlZHRsc19yaXBlbWQxNjBfdXBkYXRlKCZjdHgsIGlucHV0LCBpbGVuKSkgIT0gMCkgeworICAgICAgICBnb3RvIGV4aXQ7CisgICAgfQorCisgICAgaWYgKChyZXQgPSBtYmVkdGxzX3JpcGVtZDE2MF9maW5pc2goJmN0eCwgb3V0cHV0KSkgIT0gMCkgeworICAgICAgICBnb3RvIGV4aXQ7CisgICAgfQorCitleGl0OgorICAgIG1iZWR0bHNfcmlwZW1kMTYwX2ZyZWUoJmN0eCk7CisKKyAgICByZXR1cm4gcmV0OworfQorCisjaWYgZGVmaW5lZChNQkVEVExTX1NFTEZfVEVTVCkKKy8qCisgKiBUZXN0IHZlY3RvcnMgZnJvbSB0aGUgUklQRU1ELTE2MCBwYXBlciBhbmQKKyAqIGh0dHA6Ly9ob21lcy5lc2F0Lmt1bGV1dmVuLmJlL35ib3NzZWxhZS9tYmVkdGxzX3JpcGVtZDE2MC5odG1sI0hNQUMKKyAqLworI2RlZmluZSBURVNUUyAgIDgKK3N0YXRpYyBjb25zdCB1bnNpZ25lZCBjaGFyIHJpcGVtZDE2MF90ZXN0X3N0cltURVNUU11bODFdID0KK3sKKyAgICB7ICIiIH0sCisgICAgeyAiYSIgfSwKKyAgICB7ICJhYmMiIH0sCisgICAgeyAibWVzc2FnZSBkaWdlc3QiIH0sCisgICAgeyAiYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiIH0sCisgICAgeyAiYWJjZGJjZGVjZGVmZGVmZ2VmZ2hmZ2hpZ2hpamhpamtpamtsamtsbWtsbW5sbW5vbW5vcG5vcHEiIH0sCisgICAgeyAiQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVphYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ejAxMjM0NTY3ODkiIH0sCisgICAgeyAiMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAiIH0sCit9OworCitzdGF0aWMgY29uc3Qgc2l6ZV90IHJpcGVtZDE2MF90ZXN0X3N0cmxlbltURVNUU10gPQoreworICAgIDAsIDEsIDMsIDE0LCAyNiwgNTYsIDYyLCA4MAorfTsKKworc3RhdGljIGNvbnN0IHVuc2lnbmVkIGNoYXIgcmlwZW1kMTYwX3Rlc3RfbWRbVEVTVFNdWzIwXSA9Cit7CisgICAgeyAweDljLCAweDExLCAweDg1LCAweGE1LCAweGM1LCAweGU5LCAweGZjLCAweDU0LCAweDYxLCAweDI4LAorICAgICAgMHgwOCwgMHg5NywgMHg3ZSwgMHhlOCwgMHhmNSwgMHg0OCwgMHhiMiwgMHgyNSwgMHg4ZCwgMHgzMSB9LAorICAgIHsgMHgwYiwgMHhkYywgMHg5ZCwgMHgyZCwgMHgyNSwgMHg2YiwgMHgzZSwgMHhlOSwgMHhkYSwgMHhhZSwKKyAgICAgIDB4MzQsIDB4N2IsIDB4ZTYsIDB4ZjQsIDB4ZGMsIDB4ODMsIDB4NWEsIDB4NDYsIDB4N2YsIDB4ZmUgfSwKKyAgICB7IDB4OGUsIDB4YjIsIDB4MDgsIDB4ZjcsIDB4ZTAsIDB4NWQsIDB4OTgsIDB4N2EsIDB4OWIsIDB4MDQsCisgICAgICAweDRhLCAweDhlLCAweDk4LCAweGM2LCAweGIwLCAweDg3LCAweGYxLCAweDVhLCAweDBiLCAweGZjIH0sCisgICAgeyAweDVkLCAweDA2LCAweDg5LCAweGVmLCAweDQ5LCAweGQyLCAweGZhLCAweGU1LCAweDcyLCAweGI4LAorICAgICAgMHg4MSwgMHhiMSwgMHgyMywgMHhhOCwgMHg1ZiwgMHhmYSwgMHgyMSwgMHg1OSwgMHg1ZiwgMHgzNiB9LAorICAgIHsgMHhmNywgMHgxYywgMHgyNywgMHgxMCwgMHg5YywgMHg2OSwgMHgyYywgMHgxYiwgMHg1NiwgMHhiYiwKKyAgICAgIDB4ZGMsIDB4ZWIsIDB4NWIsIDB4OWQsIDB4MjgsIDB4NjUsIDB4YjMsIDB4NzAsIDB4OGQsIDB4YmMgfSwKKyAgICB7IDB4MTIsIDB4YTAsIDB4NTMsIDB4MzgsIDB4NGEsIDB4OWMsIDB4MGMsIDB4ODgsIDB4ZTQsIDB4MDUsCisgICAgICAweGEwLCAweDZjLCAweDI3LCAweGRjLCAweGY0LCAweDlhLCAweGRhLCAweDYyLCAweGViLCAweDJiIH0sCisgICAgeyAweGIwLCAweGUyLCAweDBiLCAweDZlLCAweDMxLCAweDE2LCAweDY0LCAweDAyLCAweDg2LCAweGVkLAorICAgICAgMHgzYSwgMHg4NywgMHhhNSwgMHg3MSwgMHgzMCwgMHg3OSwgMHhiMiwgMHgxZiwgMHg1MSwgMHg4OSB9LAorICAgIHsgMHg5YiwgMHg3NSwgMHgyZSwgMHg0NSwgMHg1NywgMHgzZCwgMHg0YiwgMHgzOSwgMHhmNCwgMHhkYiwKKyAgICAgIDB4ZDMsIDB4MzIsIDB4M2MsIDB4YWIsIDB4ODIsIDB4YmYsIDB4NjMsIDB4MzIsIDB4NmIsIDB4ZmIgfSwKK307CisKKy8qCisgKiBDaGVja3VwIHJvdXRpbmUKKyAqLworaW50IG1iZWR0bHNfcmlwZW1kMTYwX3NlbGZfdGVzdChpbnQgdmVyYm9zZSkKK3sKKyAgICBpbnQgaSwgcmV0ID0gMDsKKyAgICB1bnNpZ25lZCBjaGFyIG91dHB1dFsyMF07CisKKyAgICBtZW1zZXQob3V0cHV0LCAwLCBzaXplb2Yob3V0cHV0KSk7CisKKyAgICBmb3IgKGkgPSAwOyBpIDwgVEVTVFM7IGkrKykgeworICAgICAgICBpZiAodmVyYm9zZSAhPSAwKSB7CisgICAgICAgICAgICBtYmVkdGxzX3ByaW50ZigiICBSSVBFTUQtMTYwIHRlc3QgIyVkOiAiLCBpICsgMSk7CisgICAgICAgIH0KKworICAgICAgICByZXQgPSBtYmVkdGxzX3JpcGVtZDE2MChyaXBlbWQxNjBfdGVzdF9zdHJbaV0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJpcGVtZDE2MF90ZXN0X3N0cmxlbltpXSwgb3V0cHV0KTsKKyAgICAgICAgaWYgKHJldCAhPSAwKSB7CisgICAgICAgICAgICBnb3RvIGZhaWw7CisgICAgICAgIH0KKworICAgICAgICBpZiAobWVtY21wKG91dHB1dCwgcmlwZW1kMTYwX3Rlc3RfbWRbaV0sIDIwKSAhPSAwKSB7CisgICAgICAgICAgICByZXQgPSAxOworICAgICAgICAgICAgZ290byBmYWlsOworICAgICAgICB9CisKKyAgICAgICAgaWYgKHZlcmJvc2UgIT0gMCkgeworICAgICAgICAgICAgbWJlZHRsc19wcmludGYoInBhc3NlZFxuIik7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBpZiAodmVyYm9zZSAhPSAwKSB7CisgICAgICAgIG1iZWR0bHNfcHJpbnRmKCJcbiIpOworICAgIH0KKworICAgIHJldHVybiAwOworCitmYWlsOgorICAgIGlmICh2ZXJib3NlICE9IDApIHsKKyAgICAgICAgbWJlZHRsc19wcmludGYoImZhaWxlZFxuIik7CisgICAgfQorCisgICAgcmV0dXJuIHJldDsKK30KKworI2VuZGlmIC8qIE1CRURUTFNfU0VMRl9URVNUICovCisKKyNlbmRpZiAvKiBNQkVEVExTX1JJUEVNRDE2MF9DICovCmRpZmYgLS1naXQgYS90Zi1wc2EtY3J5cHRvL2RyaXZlcnMvYnVpbHRpbi9zcmMvcnNhLmMgYi90Zi1wc2EtY3J5cHRvL2RyaXZlcnMvYnVpbHRpbi9zcmMvcnNhLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOGE0YzNkMAotLS0gL2Rldi9udWxsCisrKyBiL3RmLXBzYS1jcnlwdG8vZHJpdmVycy9idWlsdGluL3NyYy9yc2EuYwpAQCAtMCwwICsxLDMwNjEgQEAKKy8qCisgKiAgVGhlIFJTQSBwdWJsaWMta2V5IGNyeXB0b3N5c3RlbQorICoKKyAqICBDb3B5cmlnaHQgVGhlIE1iZWQgVExTIENvbnRyaWJ1dG9ycworICogIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wIE9SIEdQTC0yLjAtb3ItbGF0ZXIKKyAqLworCisvKgorICogIFRoZSBmb2xsb3dpbmcgc291cmNlcyB3ZXJlIHJlZmVyZW5jZWQgaW4gdGhlIGRlc2lnbiBvZiB0aGlzIGltcGxlbWVudGF0aW9uCisgKiAgb2YgdGhlIFJTQSBhbGdvcml0aG06CisgKgorICogIFsxXSBBIG1ldGhvZCBmb3Igb2J0YWluaW5nIGRpZ2l0YWwgc2lnbmF0dXJlcyBhbmQgcHVibGljLWtleSBjcnlwdG9zeXN0ZW1zCisgKiAgICAgIFIgUml2ZXN0LCBBIFNoYW1pciwgYW5kIEwgQWRsZW1hbgorICogICAgICBodHRwOi8vcGVvcGxlLmNzYWlsLm1pdC5lZHUvcml2ZXN0L3B1YnMuaHRtbCNSU0E3OAorICoKKyAqICBbMl0gSGFuZGJvb2sgb2YgQXBwbGllZCBDcnlwdG9ncmFwaHkgLSAxOTk3LCBDaGFwdGVyIDgKKyAqICAgICAgTWVuZXplcywgdmFuIE9vcnNjaG90IGFuZCBWYW5zdG9uZQorICoKKyAqICBbM10gTWFsd2FyZSBHdWFyZCBFeHRlbnNpb246IFVzaW5nIFNHWCB0byBDb25jZWFsIENhY2hlIEF0dGFja3MKKyAqICAgICAgTWljaGFlbCBTY2h3YXJ6LCBTYW11ZWwgV2Vpc2VyLCBEYW5pZWwgR3J1c3MsIENsw6ltZW50aW5lIE1hdXJpY2UgYW5kCisgKiAgICAgIFN0ZWZhbiBNYW5nYXJkCisgKiAgICAgIGh0dHBzOi8vYXJ4aXYub3JnL2Ficy8xNzAyLjA4NzE5djIKKyAqCisgKi8KKworI2luY2x1ZGUgImNvbW1vbi5oIgorCisjaWYgZGVmaW5lZChNQkVEVExTX1JTQV9DKQorCisjaW5jbHVkZSAibWJlZHRscy9yc2EuaCIKKyNpbmNsdWRlICJiaWdudW1fY29yZS5oIgorI2luY2x1ZGUgInJzYV9hbHRfaGVscGVycy5oIgorI2luY2x1ZGUgInJzYV9pbnRlcm5hbC5oIgorI2luY2x1ZGUgIm1iZWR0bHMvb2lkLmgiCisjaW5jbHVkZSAibWJlZHRscy9hc24xd3JpdGUuaCIKKyNpbmNsdWRlICJtYmVkdGxzL3BsYXRmb3JtX3V0aWwuaCIKKyNpbmNsdWRlICJtYmVkdGxzL2Vycm9yLmgiCisjaW5jbHVkZSAiY29uc3RhbnRfdGltZV9pbnRlcm5hbC5oIgorI2luY2x1ZGUgIm1iZWR0bHMvY29uc3RhbnRfdGltZS5oIgorI2luY2x1ZGUgIm1kX3BzYS5oIgorCisjaW5jbHVkZSA8c3RyaW5nLmg+CisKKyNpZiBkZWZpbmVkKE1CRURUTFNfUEtDUzFfVjE1KSAmJiAhZGVmaW5lZChfX09wZW5CU0RfXykgJiYgIWRlZmluZWQoX19OZXRCU0RfXykKKyNpbmNsdWRlIDxzdGRsaWIuaD4KKyNlbmRpZgorCisjaW5jbHVkZSAibWJlZHRscy9wbGF0Zm9ybS5oIgorCisvKgorICogV3JhcHBlciBhcm91bmQgbWJlZHRsc19hc24xX2dldF9tcGkoKSB0aGF0IHJlamVjdHMgemVyby4KKyAqCisgKiBUaGUgdmFsdWUgemVybyBpczoKKyAqIC0gbmV2ZXIgYSB2YWxpZCB2YWx1ZSBmb3IgYW4gUlNBIHBhcmFtZXRlcgorICogLSBpbnRlcnByZXRlZCBhcyAib21pdHRlZCwgcGxlYXNlIHJlY29uc3RydWN0IiBieSBtYmVkdGxzX3JzYV9jb21wbGV0ZSgpLgorICoKKyAqIFNpbmNlIHZhbHVlcyBjYW4ndCBiZSBvbWl0dGVkIGluIFBLQ1MjMSwgcGFzc2luZyBhIHplcm8gdmFsdWUgdG8KKyAqIHJzYV9jb21wbGV0ZSgpIHdvdWxkIGJlIGluY29ycmVjdCwgc28gcmVqZWN0IHplcm8gdmFsdWVzIGVhcmx5LgorICovCitzdGF0aWMgaW50IGFzbjFfZ2V0X25vbnplcm9fbXBpKHVuc2lnbmVkIGNoYXIgKipwLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1bnNpZ25lZCBjaGFyICplbmQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1iZWR0bHNfbXBpICpYKQoreworICAgIGludCByZXQ7CisKKyAgICByZXQgPSBtYmVkdGxzX2FzbjFfZ2V0X21waShwLCBlbmQsIFgpOworICAgIGlmIChyZXQgIT0gMCkgeworICAgICAgICByZXR1cm4gcmV0OworICAgIH0KKworICAgIGlmIChtYmVkdGxzX21waV9jbXBfaW50KFgsIDApID09IDApIHsKKyAgICAgICAgcmV0dXJuIE1CRURUTFNfRVJSX1JTQV9CQURfSU5QVVRfREFUQTsKKyAgICB9CisKKyAgICByZXR1cm4gMDsKK30KKworaW50IG1iZWR0bHNfcnNhX3BhcnNlX2tleShtYmVkdGxzX3JzYV9jb250ZXh0ICpyc2EsIGNvbnN0IHVuc2lnbmVkIGNoYXIgKmtleSwgc2l6ZV90IGtleWxlbikKK3sKKyAgICBpbnQgcmV0LCB2ZXJzaW9uOworICAgIHNpemVfdCBsZW47CisgICAgdW5zaWduZWQgY2hhciAqcCwgKmVuZDsKKworICAgIG1iZWR0bHNfbXBpIFQ7CisgICAgbWJlZHRsc19tcGlfaW5pdCgmVCk7CisKKyAgICBwID0gKHVuc2lnbmVkIGNoYXIgKikga2V5OworICAgIGVuZCA9IHAgKyBrZXlsZW47CisKKyAgICAvKgorICAgICAqIFRoaXMgZnVuY3Rpb24gcGFyc2VzIHRoZSBSU0FQcml2YXRlS2V5IChQS0NTIzEpCisgICAgICoKKyAgICAgKiAgUlNBUHJpdmF0ZUtleSA6Oj0gU0VRVUVOQ0UgeworICAgICAqICAgICAgdmVyc2lvbiAgICAgICAgICAgVmVyc2lvbiwKKyAgICAgKiAgICAgIG1vZHVsdXMgICAgICAgICAgIElOVEVHRVIsICAtLSBuCisgICAgICogICAgICBwdWJsaWNFeHBvbmVudCAgICBJTlRFR0VSLCAgLS0gZQorICAgICAqICAgICAgcHJpdmF0ZUV4cG9uZW50ICAgSU5URUdFUiwgIC0tIGQKKyAgICAgKiAgICAgIHByaW1lMSAgICAgICAgICAgIElOVEVHRVIsICAtLSBwCisgICAgICogICAgICBwcmltZTIgICAgICAgICAgICBJTlRFR0VSLCAgLS0gcQorICAgICAqICAgICAgZXhwb25lbnQxICAgICAgICAgSU5URUdFUiwgIC0tIGQgbW9kIChwLTEpCisgICAgICogICAgICBleHBvbmVudDIgICAgICAgICBJTlRFR0VSLCAgLS0gZCBtb2QgKHEtMSkKKyAgICAgKiAgICAgIGNvZWZmaWNpZW50ICAgICAgIElOVEVHRVIsICAtLSAoaW52ZXJzZSBvZiBxKSBtb2QgcAorICAgICAqICAgICAgb3RoZXJQcmltZUluZm9zICAgT3RoZXJQcmltZUluZm9zIE9QVElPTkFMCisgICAgICogIH0KKyAgICAgKi8KKyAgICBpZiAoKHJldCA9IG1iZWR0bHNfYXNuMV9nZXRfdGFnKCZwLCBlbmQsICZsZW4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNQkVEVExTX0FTTjFfQ09OU1RSVUNURUQgfCBNQkVEVExTX0FTTjFfU0VRVUVOQ0UpKSAhPSAwKSB7CisgICAgICAgIHJldHVybiByZXQ7CisgICAgfQorCisgICAgaWYgKGVuZCAhPSBwICsgbGVuKSB7CisgICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9SU0FfQkFEX0lOUFVUX0RBVEE7CisgICAgfQorCisgICAgaWYgKChyZXQgPSBtYmVkdGxzX2FzbjFfZ2V0X2ludCgmcCwgZW5kLCAmdmVyc2lvbikpICE9IDApIHsKKyAgICAgICAgcmV0dXJuIHJldDsKKyAgICB9CisKKyAgICBpZiAodmVyc2lvbiAhPSAwKSB7CisgICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9SU0FfQkFEX0lOUFVUX0RBVEE7CisgICAgfQorCisgICAgLyogSW1wb3J0IE4gKi8KKyAgICBpZiAoKHJldCA9IGFzbjFfZ2V0X25vbnplcm9fbXBpKCZwLCBlbmQsICZUKSkgIT0gMCB8fAorICAgICAgICAocmV0ID0gbWJlZHRsc19yc2FfaW1wb3J0KHJzYSwgJlQsIE5VTEwsIE5VTEwsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCwgTlVMTCkpICE9IDApIHsKKyAgICAgICAgZ290byBjbGVhbnVwOworICAgIH0KKworICAgIC8qIEltcG9ydCBFICovCisgICAgaWYgKChyZXQgPSBhc24xX2dldF9ub256ZXJvX21waSgmcCwgZW5kLCAmVCkpICE9IDAgfHwKKyAgICAgICAgKHJldCA9IG1iZWR0bHNfcnNhX2ltcG9ydChyc2EsIE5VTEwsIE5VTEwsIE5VTEwsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCwgJlQpKSAhPSAwKSB7CisgICAgICAgIGdvdG8gY2xlYW51cDsKKyAgICB9CisKKyAgICAvKiBJbXBvcnQgRCAqLworICAgIGlmICgocmV0ID0gYXNuMV9nZXRfbm9uemVyb19tcGkoJnAsIGVuZCwgJlQpKSAhPSAwIHx8CisgICAgICAgIChyZXQgPSBtYmVkdGxzX3JzYV9pbXBvcnQocnNhLCBOVUxMLCBOVUxMLCBOVUxMLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZULCBOVUxMKSkgIT0gMCkgeworICAgICAgICBnb3RvIGNsZWFudXA7CisgICAgfQorCisgICAgLyogSW1wb3J0IFAgKi8KKyAgICBpZiAoKHJldCA9IGFzbjFfZ2V0X25vbnplcm9fbXBpKCZwLCBlbmQsICZUKSkgIT0gMCB8fAorICAgICAgICAocmV0ID0gbWJlZHRsc19yc2FfaW1wb3J0KHJzYSwgTlVMTCwgJlQsIE5VTEwsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCwgTlVMTCkpICE9IDApIHsKKyAgICAgICAgZ290byBjbGVhbnVwOworICAgIH0KKworICAgIC8qIEltcG9ydCBRICovCisgICAgaWYgKChyZXQgPSBhc24xX2dldF9ub256ZXJvX21waSgmcCwgZW5kLCAmVCkpICE9IDAgfHwKKyAgICAgICAgKHJldCA9IG1iZWR0bHNfcnNhX2ltcG9ydChyc2EsIE5VTEwsIE5VTEwsICZULAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5VTEwsIE5VTEwpKSAhPSAwKSB7CisgICAgICAgIGdvdG8gY2xlYW51cDsKKyAgICB9CisKKyNpZiAhZGVmaW5lZChNQkVEVExTX1JTQV9OT19DUlQpCisgICAgLyoKKyAgICAgKiBUaGUgUlNBIENSVCBwYXJhbWV0ZXJzIERQLCBEUSBhbmQgUVAgYXJlIG5vbWluYWxseSByZWR1bmRhbnQsIGluCisgICAgICogdGhhdCB0aGV5IGNhbiBiZSBlYXNpbHkgcmVjb21wdXRlZCBmcm9tIEQsIFAgYW5kIFEuIEhvd2V2ZXIgYnkKKyAgICAgKiBwYXJzaW5nIHRoZW0gZnJvbSB0aGUgUEtDUzEgc3RydWN0dXJlIGl0IGlzIHBvc3NpYmxlIHRvIGF2b2lkCisgICAgICogcmVjYWxjdWxhdGluZyB0aGVtIHdoaWNoIGJvdGggcmVkdWNlcyB0aGUgb3ZlcmhlYWQgb2YgbG9hZGluZworICAgICAqIFJTQSBwcml2YXRlIGtleXMgaW50byBtZW1vcnkgYW5kIGFsc28gYXZvaWRzIHNpZGUgY2hhbm5lbHMgd2hpY2gKKyAgICAgKiBjYW4gYXJpc2Ugd2hlbiBjb21wdXRpbmcgdGhvc2UgdmFsdWVzLCBzaW5jZSBhbGwgb2YgRCwgUCwgYW5kIFEKKyAgICAgKiBhcmUgc2VjcmV0LiBTZWUgaHR0cHM6Ly9lcHJpbnQuaWFjci5vcmcvMjAyMC8wNTUgZm9yIGEKKyAgICAgKiBkZXNjcmlwdGlvbiBvZiBvbmUgc3VjaCBhdHRhY2suCisgICAgICovCisKKyAgICAvKiBJbXBvcnQgRFAgKi8KKyAgICBpZiAoKHJldCA9IGFzbjFfZ2V0X25vbnplcm9fbXBpKCZwLCBlbmQsICZUKSkgIT0gMCB8fAorICAgICAgICAocmV0ID0gbWJlZHRsc19tcGlfY29weSgmcnNhLT5EUCwgJlQpKSAhPSAwKSB7CisgICAgICAgIGdvdG8gY2xlYW51cDsKKyAgICB9CisKKyAgICAvKiBJbXBvcnQgRFEgKi8KKyAgICBpZiAoKHJldCA9IGFzbjFfZ2V0X25vbnplcm9fbXBpKCZwLCBlbmQsICZUKSkgIT0gMCB8fAorICAgICAgICAocmV0ID0gbWJlZHRsc19tcGlfY29weSgmcnNhLT5EUSwgJlQpKSAhPSAwKSB7CisgICAgICAgIGdvdG8gY2xlYW51cDsKKyAgICB9CisKKyAgICAvKiBJbXBvcnQgUVAgKi8KKyAgICBpZiAoKHJldCA9IGFzbjFfZ2V0X25vbnplcm9fbXBpKCZwLCBlbmQsICZUKSkgIT0gMCB8fAorICAgICAgICAocmV0ID0gbWJlZHRsc19tcGlfY29weSgmcnNhLT5RUCwgJlQpKSAhPSAwKSB7CisgICAgICAgIGdvdG8gY2xlYW51cDsKKyAgICB9CisKKyNlbHNlCisgICAgLyogVmVyaWZ5IGV4aXN0ZW5jZSBvZiB0aGUgQ1JUIHBhcmFtcyAqLworICAgIGlmICgocmV0ID0gYXNuMV9nZXRfbm9uemVyb19tcGkoJnAsIGVuZCwgJlQpKSAhPSAwIHx8CisgICAgICAgIChyZXQgPSBhc24xX2dldF9ub256ZXJvX21waSgmcCwgZW5kLCAmVCkpICE9IDAgfHwKKyAgICAgICAgKHJldCA9IGFzbjFfZ2V0X25vbnplcm9fbXBpKCZwLCBlbmQsICZUKSkgIT0gMCkgeworICAgICAgICBnb3RvIGNsZWFudXA7CisgICAgfQorI2VuZGlmCisKKyAgICAvKiByc2FfY29tcGxldGUoKSBkb2Vzbid0IGNvbXBsZXRlIGFueXRoaW5nIHdpdGggdGhlIGRlZmF1bHQKKyAgICAgKiBpbXBsZW1lbnRhdGlvbiBidXQgaXMgc3RpbGwgY2FsbGVkOgorICAgICAqIC0gZm9yIHRoZSBiZW5lZml0IG9mIGFsdGVybmF0aXZlIGltcGxlbWVudGF0aW9uIHRoYXQgbWF5IHdhbnQgdG8KKyAgICAgKiAgIHByZS1jb21wdXRlIHN0dWZmIGJleW9uZCB3aGF0J3MgcHJvdmlkZWQgKGVnIE1vbnRnb21lcnkgZmFjdG9ycykKKyAgICAgKiAtIGFzIGlzIGFsc28gc2FuaXR5LWNoZWNrcyB0aGUga2V5CisgICAgICoKKyAgICAgKiBGdXJ0aGVybW9yZSwgd2UgYWxzbyBjaGVjayB0aGUgcHVibGljIHBhcnQgZm9yIGNvbnNpc3RlbmN5IHdpdGgKKyAgICAgKiBtYmVkdGxzX3BrX3BhcnNlX3B1YmtleSgpLCBhcyBpdCBpbmNsdWRlcyBzaXplIG1pbmltYSBmb3IgZXhhbXBsZS4KKyAgICAgKi8KKyAgICBpZiAoKHJldCA9IG1iZWR0bHNfcnNhX2NvbXBsZXRlKHJzYSkpICE9IDAgfHwKKyAgICAgICAgKHJldCA9IG1iZWR0bHNfcnNhX2NoZWNrX3B1YmtleShyc2EpKSAhPSAwKSB7CisgICAgICAgIGdvdG8gY2xlYW51cDsKKyAgICB9CisKKyAgICBpZiAocCAhPSBlbmQpIHsKKyAgICAgICAgcmV0ID0gTUJFRFRMU19FUlJfQVNOMV9MRU5HVEhfTUlTTUFUQ0g7CisgICAgfQorCitjbGVhbnVwOgorCisgICAgbWJlZHRsc19tcGlfZnJlZSgmVCk7CisKKyAgICBpZiAocmV0ICE9IDApIHsKKyAgICAgICAgbWJlZHRsc19yc2FfZnJlZShyc2EpOworICAgIH0KKworICAgIHJldHVybiByZXQ7Cit9CisKK2ludCBtYmVkdGxzX3JzYV9wYXJzZV9wdWJrZXkobWJlZHRsc19yc2FfY29udGV4dCAqcnNhLCBjb25zdCB1bnNpZ25lZCBjaGFyICprZXksIHNpemVfdCBrZXlsZW4pCit7CisgICAgdW5zaWduZWQgY2hhciAqcCA9ICh1bnNpZ25lZCBjaGFyICopIGtleTsKKyAgICB1bnNpZ25lZCBjaGFyICplbmQgPSAodW5zaWduZWQgY2hhciAqKSAoa2V5ICsga2V5bGVuKTsKKyAgICBpbnQgcmV0ID0gTUJFRFRMU19FUlJfRVJST1JfQ09SUlVQVElPTl9ERVRFQ1RFRDsKKyAgICBzaXplX3QgbGVuOworCisgICAgLyoKKyAgICAgKiAgUlNBUHVibGljS2V5IDo6PSBTRVFVRU5DRSB7CisgICAgICogICAgICBtb2R1bHVzICAgICAgICAgICBJTlRFR0VSLCAgLS0gbgorICAgICAqICAgICAgcHVibGljRXhwb25lbnQgICAgSU5URUdFUiAgIC0tIGUKKyAgICAgKiAgfQorICAgICAqLworCisgICAgaWYgKChyZXQgPSBtYmVkdGxzX2FzbjFfZ2V0X3RhZygmcCwgZW5kLCAmbGVuLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTUJFRFRMU19BU04xX0NPTlNUUlVDVEVEIHwgTUJFRFRMU19BU04xX1NFUVVFTkNFKSkgIT0gMCkgeworICAgICAgICByZXR1cm4gcmV0OworICAgIH0KKworICAgIGlmIChlbmQgIT0gcCArIGxlbikgeworICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfUlNBX0JBRF9JTlBVVF9EQVRBOworICAgIH0KKworICAgIC8qIEltcG9ydCBOICovCisgICAgaWYgKChyZXQgPSBtYmVkdGxzX2FzbjFfZ2V0X3RhZygmcCwgZW5kLCAmbGVuLCBNQkVEVExTX0FTTjFfSU5URUdFUikpICE9IDApIHsKKyAgICAgICAgcmV0dXJuIHJldDsKKyAgICB9CisKKyAgICBpZiAoKHJldCA9IG1iZWR0bHNfcnNhX2ltcG9ydF9yYXcocnNhLCBwLCBsZW4sIE5VTEwsIDAsIE5VTEwsIDAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5VTEwsIDAsIE5VTEwsIDApKSAhPSAwKSB7CisgICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9SU0FfQkFEX0lOUFVUX0RBVEE7CisgICAgfQorCisgICAgcCArPSBsZW47CisKKyAgICAvKiBJbXBvcnQgRSAqLworICAgIGlmICgocmV0ID0gbWJlZHRsc19hc24xX2dldF90YWcoJnAsIGVuZCwgJmxlbiwgTUJFRFRMU19BU04xX0lOVEVHRVIpKSAhPSAwKSB7CisgICAgICAgIHJldHVybiByZXQ7CisgICAgfQorCisgICAgaWYgKChyZXQgPSBtYmVkdGxzX3JzYV9pbXBvcnRfcmF3KHJzYSwgTlVMTCwgMCwgTlVMTCwgMCwgTlVMTCwgMCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCwgMCwgcCwgbGVuKSkgIT0gMCkgeworICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfUlNBX0JBRF9JTlBVVF9EQVRBOworICAgIH0KKworICAgIHAgKz0gbGVuOworCisgICAgaWYgKG1iZWR0bHNfcnNhX2NvbXBsZXRlKHJzYSkgIT0gMCB8fAorICAgICAgICBtYmVkdGxzX3JzYV9jaGVja19wdWJrZXkocnNhKSAhPSAwKSB7CisgICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9SU0FfQkFEX0lOUFVUX0RBVEE7CisgICAgfQorCisgICAgaWYgKHAgIT0gZW5kKSB7CisgICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9BU04xX0xFTkdUSF9NSVNNQVRDSDsKKyAgICB9CisKKyAgICByZXR1cm4gMDsKK30KKworaW50IG1iZWR0bHNfcnNhX3dyaXRlX2tleShjb25zdCBtYmVkdGxzX3JzYV9jb250ZXh0ICpyc2EsIHVuc2lnbmVkIGNoYXIgKnN0YXJ0LAorICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBjaGFyICoqcCkKK3sKKyAgICBzaXplX3QgbGVuID0gMDsKKyAgICBpbnQgcmV0OworCisgICAgbWJlZHRsc19tcGkgVDsgLyogVGVtcG9yYXJ5IGhvbGRpbmcgdGhlIGV4cG9ydGVkIHBhcmFtZXRlcnMgKi8KKworICAgIC8qCisgICAgICogRXhwb3J0IHRoZSBwYXJhbWV0ZXJzIG9uZSBhZnRlciBhbm90aGVyIHRvIGF2b2lkIHNpbXVsdGFuZW91cyBjb3BpZXMuCisgICAgICovCisKKyAgICBtYmVkdGxzX21waV9pbml0KCZUKTsKKworICAgIC8qIEV4cG9ydCBRUCAqLworICAgIGlmICgocmV0ID0gbWJlZHRsc19yc2FfZXhwb3J0X2NydChyc2EsIE5VTEwsIE5VTEwsICZUKSkgIT0gMCB8fAorICAgICAgICAocmV0ID0gbWJlZHRsc19hc24xX3dyaXRlX21waShwLCBzdGFydCwgJlQpKSA8IDApIHsKKyAgICAgICAgZ290byBlbmRfb2ZfZXhwb3J0OworICAgIH0KKyAgICBsZW4gKz0gcmV0OworCisgICAgLyogRXhwb3J0IERRICovCisgICAgaWYgKChyZXQgPSBtYmVkdGxzX3JzYV9leHBvcnRfY3J0KHJzYSwgTlVMTCwgJlQsIE5VTEwpKSAhPSAwIHx8CisgICAgICAgIChyZXQgPSBtYmVkdGxzX2FzbjFfd3JpdGVfbXBpKHAsIHN0YXJ0LCAmVCkpIDwgMCkgeworICAgICAgICBnb3RvIGVuZF9vZl9leHBvcnQ7CisgICAgfQorICAgIGxlbiArPSByZXQ7CisKKyAgICAvKiBFeHBvcnQgRFAgKi8KKyAgICBpZiAoKHJldCA9IG1iZWR0bHNfcnNhX2V4cG9ydF9jcnQocnNhLCAmVCwgTlVMTCwgTlVMTCkpICE9IDAgfHwKKyAgICAgICAgKHJldCA9IG1iZWR0bHNfYXNuMV93cml0ZV9tcGkocCwgc3RhcnQsICZUKSkgPCAwKSB7CisgICAgICAgIGdvdG8gZW5kX29mX2V4cG9ydDsKKyAgICB9CisgICAgbGVuICs9IHJldDsKKworICAgIC8qIEV4cG9ydCBRICovCisgICAgaWYgKChyZXQgPSBtYmVkdGxzX3JzYV9leHBvcnQocnNhLCBOVUxMLCBOVUxMLCAmVCwgTlVMTCwgTlVMTCkpICE9IDAgfHwKKyAgICAgICAgKHJldCA9IG1iZWR0bHNfYXNuMV93cml0ZV9tcGkocCwgc3RhcnQsICZUKSkgPCAwKSB7CisgICAgICAgIGdvdG8gZW5kX29mX2V4cG9ydDsKKyAgICB9CisgICAgbGVuICs9IHJldDsKKworICAgIC8qIEV4cG9ydCBQICovCisgICAgaWYgKChyZXQgPSBtYmVkdGxzX3JzYV9leHBvcnQocnNhLCBOVUxMLCAmVCwgTlVMTCwgTlVMTCwgTlVMTCkpICE9IDAgfHwKKyAgICAgICAgKHJldCA9IG1iZWR0bHNfYXNuMV93cml0ZV9tcGkocCwgc3RhcnQsICZUKSkgPCAwKSB7CisgICAgICAgIGdvdG8gZW5kX29mX2V4cG9ydDsKKyAgICB9CisgICAgbGVuICs9IHJldDsKKworICAgIC8qIEV4cG9ydCBEICovCisgICAgaWYgKChyZXQgPSBtYmVkdGxzX3JzYV9leHBvcnQocnNhLCBOVUxMLCBOVUxMLCBOVUxMLCAmVCwgTlVMTCkpICE9IDAgfHwKKyAgICAgICAgKHJldCA9IG1iZWR0bHNfYXNuMV93cml0ZV9tcGkocCwgc3RhcnQsICZUKSkgPCAwKSB7CisgICAgICAgIGdvdG8gZW5kX29mX2V4cG9ydDsKKyAgICB9CisgICAgbGVuICs9IHJldDsKKworICAgIC8qIEV4cG9ydCBFICovCisgICAgaWYgKChyZXQgPSBtYmVkdGxzX3JzYV9leHBvcnQocnNhLCBOVUxMLCBOVUxMLCBOVUxMLCBOVUxMLCAmVCkpICE9IDAgfHwKKyAgICAgICAgKHJldCA9IG1iZWR0bHNfYXNuMV93cml0ZV9tcGkocCwgc3RhcnQsICZUKSkgPCAwKSB7CisgICAgICAgIGdvdG8gZW5kX29mX2V4cG9ydDsKKyAgICB9CisgICAgbGVuICs9IHJldDsKKworICAgIC8qIEV4cG9ydCBOICovCisgICAgaWYgKChyZXQgPSBtYmVkdGxzX3JzYV9leHBvcnQocnNhLCAmVCwgTlVMTCwgTlVMTCwgTlVMTCwgTlVMTCkpICE9IDAgfHwKKyAgICAgICAgKHJldCA9IG1iZWR0bHNfYXNuMV93cml0ZV9tcGkocCwgc3RhcnQsICZUKSkgPCAwKSB7CisgICAgICAgIGdvdG8gZW5kX29mX2V4cG9ydDsKKyAgICB9CisgICAgbGVuICs9IHJldDsKKworZW5kX29mX2V4cG9ydDoKKworICAgIG1iZWR0bHNfbXBpX2ZyZWUoJlQpOworICAgIGlmIChyZXQgPCAwKSB7CisgICAgICAgIHJldHVybiByZXQ7CisgICAgfQorCisgICAgTUJFRFRMU19BU04xX0NIS19BREQobGVuLCBtYmVkdGxzX2FzbjFfd3JpdGVfaW50KHAsIHN0YXJ0LCAwKSk7CisgICAgTUJFRFRMU19BU04xX0NIS19BREQobGVuLCBtYmVkdGxzX2FzbjFfd3JpdGVfbGVuKHAsIHN0YXJ0LCBsZW4pKTsKKyAgICBNQkVEVExTX0FTTjFfQ0hLX0FERChsZW4sIG1iZWR0bHNfYXNuMV93cml0ZV90YWcocCwgc3RhcnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1CRURUTFNfQVNOMV9DT05TVFJVQ1RFRCB8CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1CRURUTFNfQVNOMV9TRVFVRU5DRSkpOworCisgICAgcmV0dXJuIChpbnQpIGxlbjsKK30KKworLyoKKyAqICBSU0FQdWJsaWNLZXkgOjo9IFNFUVVFTkNFIHsKKyAqICAgICAgbW9kdWx1cyAgICAgICAgICAgSU5URUdFUiwgIC0tIG4KKyAqICAgICAgcHVibGljRXhwb25lbnQgICAgSU5URUdFUiAgIC0tIGUKKyAqICB9CisgKi8KK2ludCBtYmVkdGxzX3JzYV93cml0ZV9wdWJrZXkoY29uc3QgbWJlZHRsc19yc2FfY29udGV4dCAqcnNhLCB1bnNpZ25lZCBjaGFyICpzdGFydCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgY2hhciAqKnApCit7CisgICAgaW50IHJldCA9IE1CRURUTFNfRVJSX0VSUk9SX0NPUlJVUFRJT05fREVURUNURUQ7CisgICAgc2l6ZV90IGxlbiA9IDA7CisgICAgbWJlZHRsc19tcGkgVDsKKworICAgIG1iZWR0bHNfbXBpX2luaXQoJlQpOworCisgICAgLyogRXhwb3J0IEUgKi8KKyAgICBpZiAoKHJldCA9IG1iZWR0bHNfcnNhX2V4cG9ydChyc2EsIE5VTEwsIE5VTEwsIE5VTEwsIE5VTEwsICZUKSkgIT0gMCB8fAorICAgICAgICAocmV0ID0gbWJlZHRsc19hc24xX3dyaXRlX21waShwLCBzdGFydCwgJlQpKSA8IDApIHsKKyAgICAgICAgZ290byBlbmRfb2ZfZXhwb3J0OworICAgIH0KKyAgICBsZW4gKz0gcmV0OworCisgICAgLyogRXhwb3J0IE4gKi8KKyAgICBpZiAoKHJldCA9IG1iZWR0bHNfcnNhX2V4cG9ydChyc2EsICZULCBOVUxMLCBOVUxMLCBOVUxMLCBOVUxMKSkgIT0gMCB8fAorICAgICAgICAocmV0ID0gbWJlZHRsc19hc24xX3dyaXRlX21waShwLCBzdGFydCwgJlQpKSA8IDApIHsKKyAgICAgICAgZ290byBlbmRfb2ZfZXhwb3J0OworICAgIH0KKyAgICBsZW4gKz0gcmV0OworCitlbmRfb2ZfZXhwb3J0OgorCisgICAgbWJlZHRsc19tcGlfZnJlZSgmVCk7CisgICAgaWYgKHJldCA8IDApIHsKKyAgICAgICAgcmV0dXJuIHJldDsKKyAgICB9CisKKyAgICBNQkVEVExTX0FTTjFfQ0hLX0FERChsZW4sIG1iZWR0bHNfYXNuMV93cml0ZV9sZW4ocCwgc3RhcnQsIGxlbikpOworICAgIE1CRURUTFNfQVNOMV9DSEtfQUREKGxlbiwgbWJlZHRsc19hc24xX3dyaXRlX3RhZyhwLCBzdGFydCwgTUJFRFRMU19BU04xX0NPTlNUUlVDVEVEIHwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTUJFRFRMU19BU04xX1NFUVVFTkNFKSk7CisKKyAgICByZXR1cm4gKGludCkgbGVuOworfQorCisjaWYgZGVmaW5lZChNQkVEVExTX1BLQ1MxX1YxNSkgJiYgZGVmaW5lZChNQkVEVExTX1JTQV9DKQorCisvKiogVGhpcyBmdW5jdGlvbiBwZXJmb3JtcyB0aGUgdW5wYWRkaW5nIHBhcnQgb2YgYSBQS0NTIzEgdjEuNSBkZWNyeXB0aW9uCisgKiAgb3BlcmF0aW9uIChFTUUtUEtDUzEtdjFfNSBkZWNvZGluZykuCisgKgorICogXG5vdGUgVGhlIHJldHVybiB2YWx1ZSBmcm9tIHRoaXMgZnVuY3Rpb24gaXMgYSBzZW5zaXRpdmUgdmFsdWUKKyAqICAgICAgICh0aGlzIGlzIHVudXN1YWwpLiAjTUJFRFRMU19FUlJfUlNBX09VVFBVVF9UT09fTEFSR0Ugc2hvdWxkbid0IGhhcHBlbgorICogICAgICAgaW4gYSB3ZWxsLXdyaXR0ZW4gYXBwbGljYXRpb24sIGJ1dCAwIHZzICNNQkVEVExTX0VSUl9SU0FfSU5WQUxJRF9QQURESU5HCisgKiAgICAgICBpcyBvZnRlbiBhIHNpdHVhdGlvbiB0aGF0IGFuIGF0dGFja2VyIGNhbiBwcm92b2tlIGFuZCBsZWFraW5nIHdoaWNoCisgKiAgICAgICBvbmUgaXMgdGhlIHJlc3VsdCBpcyBwcmVjaXNlbHkgdGhlIGluZm9ybWF0aW9uIHRoZSBhdHRhY2tlciB3YW50cy4KKyAqCisgKiBccGFyYW0gaW5wdXQgICAgICAgICAgVGhlIGlucHV0IGJ1ZmZlciB3aGljaCBpcyB0aGUgcGF5bG9hZCBpbnNpZGUgUEtDUyMxdjEuNQorICogICAgICAgICAgICAgICAgICAgICAgIGVuY3J5cHRpb24gcGFkZGluZywgY2FsbGVkIHRoZSAiZW5jb2RlZCBtZXNzYWdlIEVNIgorICogICAgICAgICAgICAgICAgICAgICAgIGJ5IHRoZSB0ZXJtaW5vbG9neS4KKyAqIFxwYXJhbSBpbGVuICAgICAgICAgICBUaGUgbGVuZ3RoIG9mIHRoZSBwYXlsb2FkIGluIHRoZSBccCBpbnB1dCBidWZmZXIuCisgKiBccGFyYW0gb3V0cHV0ICAgICAgICAgVGhlIGJ1ZmZlciBmb3IgdGhlIHBheWxvYWQsIGNhbGxlZCAibWVzc2FnZSBNIiBieSB0aGUKKyAqICAgICAgICAgICAgICAgICAgICAgICBQS0NTIzEgdGVybWlub2xvZ3kuIFRoaXMgbXVzdCBiZSBhIHdyaXRhYmxlIGJ1ZmZlciBvZgorICogICAgICAgICAgICAgICAgICAgICAgIGxlbmd0aCBccCBvdXRwdXRfbWF4X2xlbiBieXRlcy4KKyAqIFxwYXJhbSBvbGVuICAgICAgICAgICBUaGUgYWRkcmVzcyBhdCB3aGljaCB0byBzdG9yZSB0aGUgbGVuZ3RoIG9mCisgKiAgICAgICAgICAgICAgICAgICAgICAgdGhlIHBheWxvYWQuIFRoaXMgbXVzdCBub3QgYmUgXGMgTlVMTC4KKyAqIFxwYXJhbSBvdXRwdXRfbWF4X2xlbiBUaGUgbGVuZ3RoIGluIGJ5dGVzIG9mIHRoZSBvdXRwdXQgYnVmZmVyIFxwIG91dHB1dC4KKyAqCisgKiBccmV0dXJuICAgICAgXGMgMCBvbiBzdWNjZXNzLgorICogXHJldHVybiAgICAgICNNQkVEVExTX0VSUl9SU0FfT1VUUFVUX1RPT19MQVJHRQorICogICAgICAgICAgICAgIFRoZSBvdXRwdXQgYnVmZmVyIGlzIHRvbyBzbWFsbCBmb3IgdGhlIHVucGFkZGVkIHBheWxvYWQuCisgKiBccmV0dXJuICAgICAgI01CRURUTFNfRVJSX1JTQV9JTlZBTElEX1BBRERJTkcKKyAqICAgICAgICAgICAgICBUaGUgaW5wdXQgZG9lc24ndCBjb250YWluIHByb3Blcmx5IGZvcm1hdHRlZCBwYWRkaW5nLgorICovCitzdGF0aWMgaW50IG1iZWR0bHNfY3RfcnNhZXNfcGtjczFfdjE1X3VucGFkZGluZyh1bnNpZ25lZCBjaGFyICppbnB1dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBpbGVuLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgY2hhciAqb3V0cHV0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IG91dHB1dF9tYXhfbGVuLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90ICpvbGVuKQoreworICAgIGludCByZXQgPSBNQkVEVExTX0VSUl9FUlJPUl9DT1JSVVBUSU9OX0RFVEVDVEVEOworICAgIHNpemVfdCBpLCBwbGFpbnRleHRfbWF4X3NpemU7CisKKyAgICAvKiBUaGUgZm9sbG93aW5nIHZhcmlhYmxlcyB0YWtlIHNlbnNpdGl2ZSB2YWx1ZXM6IHRoZWlyIHZhbHVlIG11c3QKKyAgICAgKiBub3QgbGVhayBpbnRvIHRoZSBvYnNlcnZhYmxlIGJlaGF2aW9yIG9mIHRoZSBmdW5jdGlvbiBvdGhlciB0aGFuCisgICAgICogdGhlIGRlc2lnbmF0ZWQgb3V0cHV0cyAob3V0cHV0LCBvbGVuLCByZXR1cm4gdmFsdWUpLiBPdGhlcndpc2UKKyAgICAgKiB0aGlzIHdvdWxkIG9wZW4gdGhlIGV4ZWN1dGlvbiBvZiB0aGUgZnVuY3Rpb24gdG8KKyAgICAgKiBzaWRlLWNoYW5uZWwtYmFzZWQgdmFyaWFudHMgb2YgdGhlIEJsZWljaGVuYmFjaGVyIHBhZGRpbmcgb3JhY2xlCisgICAgICogYXR0YWNrLiBQb3RlbnRpYWwgc2lkZSBjaGFubmVscyBpbmNsdWRlIG92ZXJhbGwgdGltaW5nLCBtZW1vcnkKKyAgICAgKiBhY2Nlc3MgcGF0dGVybnMgKGVzcGVjaWFsbHkgdmlzaWJsZSB0byBhbiBhZHZlcnNhcnkgd2hvIGhhcyBhY2Nlc3MKKyAgICAgKiB0byBhIHNoYXJlZCBtZW1vcnkgY2FjaGUpLCBhbmQgYnJhbmNoZXMgKGVzcGVjaWFsbHkgdmlzaWJsZSB0bworICAgICAqIGFuIGFkdmVyc2FyeSB3aG8gaGFzIGFjY2VzcyB0byBhIHNoYXJlZCBjb2RlIGNhY2hlIG9yIHRvIGEgc2hhcmVkCisgICAgICogYnJhbmNoIHByZWRpY3RvcikuICovCisgICAgc2l6ZV90IHBhZF9jb3VudCA9IDA7CisgICAgbWJlZHRsc19jdF9jb25kaXRpb25fdCBiYWQ7CisgICAgbWJlZHRsc19jdF9jb25kaXRpb25fdCBwYWRfZG9uZTsKKyAgICBzaXplX3QgcGxhaW50ZXh0X3NpemUgPSAwOworICAgIG1iZWR0bHNfY3RfY29uZGl0aW9uX3Qgb3V0cHV0X3Rvb19sYXJnZTsKKworICAgIHBsYWludGV4dF9tYXhfc2l6ZSA9IChvdXRwdXRfbWF4X2xlbiA+IGlsZW4gLSAxMSkgPyBpbGVuIC0gMTEKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBvdXRwdXRfbWF4X2xlbjsKKworICAgIC8qIENoZWNrIGFuZCBnZXQgcGFkZGluZyBsZW5ndGggaW4gY29uc3RhbnQgdGltZSBhbmQgY29uc3RhbnQKKyAgICAgKiBtZW1vcnkgdHJhY2UuIFRoZSBmaXJzdCBieXRlIG11c3QgYmUgMC4gKi8KKyAgICBiYWQgPSBtYmVkdGxzX2N0X2Jvb2woaW5wdXRbMF0pOworCisKKyAgICAvKiBEZWNvZGUgRU1FLVBLQ1MxLXYxXzUgcGFkZGluZzogMHgwMCB8fCAweDAyIHx8IFBTIHx8IDB4MDAKKyAgICAgKiB3aGVyZSBQUyBtdXN0IGJlIGF0IGxlYXN0IDggbm9uemVybyBieXRlcy4gKi8KKyAgICBiYWQgPSBtYmVkdGxzX2N0X2Jvb2xfb3IoYmFkLCBtYmVkdGxzX2N0X3VpbnRfbmUoaW5wdXRbMV0sIE1CRURUTFNfUlNBX0NSWVBUKSk7CisKKyAgICAvKiBSZWFkIHRoZSB3aG9sZSBidWZmZXIuIFNldCBwYWRfZG9uZSB0byBub256ZXJvIGlmIHdlIGZpbmQKKyAgICAgKiB0aGUgMHgwMCBieXRlIGFuZCByZW1lbWJlciB0aGUgcGFkZGluZyBsZW5ndGggaW4gcGFkX2NvdW50LiAqLworICAgIHBhZF9kb25lID0gTUJFRFRMU19DVF9GQUxTRTsKKyAgICBmb3IgKGkgPSAyOyBpIDwgaWxlbjsgaSsrKSB7CisgICAgICAgIG1iZWR0bHNfY3RfY29uZGl0aW9uX3QgZm91bmQgPSBtYmVkdGxzX2N0X3VpbnRfZXEoaW5wdXRbaV0sIDApOworICAgICAgICBwYWRfZG9uZSAgID0gbWJlZHRsc19jdF9ib29sX29yKHBhZF9kb25lLCBmb3VuZCk7CisgICAgICAgIHBhZF9jb3VudCArPSBtYmVkdGxzX2N0X3VpbnRfaWZfZWxzZV8wKG1iZWR0bHNfY3RfYm9vbF9ub3QocGFkX2RvbmUpLCAxKTsKKyAgICB9CisKKyAgICAvKiBJZiBwYWRfZG9uZSBpcyBzdGlsbCB6ZXJvLCB0aGVyZSdzIG5vIGRhdGEsIG9ubHkgdW5maW5pc2hlZCBwYWRkaW5nLiAqLworICAgIGJhZCA9IG1iZWR0bHNfY3RfYm9vbF9vcihiYWQsIG1iZWR0bHNfY3RfYm9vbF9ub3QocGFkX2RvbmUpKTsKKworICAgIC8qIFRoZXJlIG11c3QgYmUgYXQgbGVhc3QgOCBieXRlcyBvZiBwYWRkaW5nLiAqLworICAgIGJhZCA9IG1iZWR0bHNfY3RfYm9vbF9vcihiYWQsIG1iZWR0bHNfY3RfdWludF9ndCg4LCBwYWRfY291bnQpKTsKKworICAgIC8qIElmIHRoZSBwYWRkaW5nIGlzIHZhbGlkLCBzZXQgcGxhaW50ZXh0X3NpemUgdG8gdGhlIG51bWJlciBvZgorICAgICAqIHJlbWFpbmluZyBieXRlcyBhZnRlciBzdHJpcHBpbmcgdGhlIHBhZGRpbmcuIElmIHRoZSBwYWRkaW5nCisgICAgICogaXMgaW52YWxpZCwgYXZvaWQgbGVha2luZyB0aGlzIGZhY3QgdGhyb3VnaCB0aGUgc2l6ZSBvZiB0aGUKKyAgICAgKiBvdXRwdXQ6IHVzZSB0aGUgbWF4aW11bSBtZXNzYWdlIHNpemUgdGhhdCBmaXRzIGluIHRoZSBvdXRwdXQKKyAgICAgKiBidWZmZXIuIERvIGl0IHdpdGhvdXQgYnJhbmNoZXMgdG8gYXZvaWQgbGVha2luZyB0aGUgcGFkZGluZworICAgICAqIHZhbGlkaXR5IHRocm91Z2ggdGltaW5nLiBSU0Ega2V5cyBhcmUgc21hbGwgZW5vdWdoIHRoYXQgYWxsIHRoZQorICAgICAqIHNpemVfdCB2YWx1ZXMgaW52b2x2ZWQgZml0IGluIHVuc2lnbmVkIGludC4gKi8KKyAgICBwbGFpbnRleHRfc2l6ZSA9IG1iZWR0bHNfY3RfdWludF9pZigKKyAgICAgICAgYmFkLCAodW5zaWduZWQpIHBsYWludGV4dF9tYXhfc2l6ZSwKKyAgICAgICAgKHVuc2lnbmVkKSAoaWxlbiAtIHBhZF9jb3VudCAtIDMpKTsKKworICAgIC8qIFNldCBvdXRwdXRfdG9vX2xhcmdlIHRvIDAgaWYgdGhlIHBsYWludGV4dCBmaXRzIGluIHRoZSBvdXRwdXQKKyAgICAgKiBidWZmZXIgYW5kIHRvIDEgb3RoZXJ3aXNlLiAqLworICAgIG91dHB1dF90b29fbGFyZ2UgPSBtYmVkdGxzX2N0X3VpbnRfZ3QocGxhaW50ZXh0X3NpemUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwbGFpbnRleHRfbWF4X3NpemUpOworCisgICAgLyogU2V0IHJldCB3aXRob3V0IGJyYW5jaGVzIHRvIGF2b2lkIHRpbWluZyBhdHRhY2tzLiBSZXR1cm46CisgICAgICogLSBJTlZBTElEX1BBRERJTkcgaWYgdGhlIHBhZGRpbmcgaXMgYmFkIChiYWQgIT0gMCkuCisgICAgICogLSBPVVRQVVRfVE9PX0xBUkdFIGlmIHRoZSBwYWRkaW5nIGlzIGdvb2QgYnV0IHRoZSBkZWNyeXB0ZWQKKyAgICAgKiAgIHBsYWludGV4dCBkb2VzIG5vdCBmaXQgaW4gdGhlIG91dHB1dCBidWZmZXIuCisgICAgICogLSAwIGlmIHRoZSBwYWRkaW5nIGlzIGNvcnJlY3QuICovCisgICAgcmV0ID0gbWJlZHRsc19jdF9lcnJvcl9pZigKKyAgICAgICAgYmFkLAorICAgICAgICBNQkVEVExTX0VSUl9SU0FfSU5WQUxJRF9QQURESU5HLAorICAgICAgICBtYmVkdGxzX2N0X2Vycm9yX2lmX2Vsc2VfMChvdXRwdXRfdG9vX2xhcmdlLCBNQkVEVExTX0VSUl9SU0FfT1VUUFVUX1RPT19MQVJHRSkKKyAgICAgICAgKTsKKworICAgIC8qIElmIHRoZSBwYWRkaW5nIGlzIGJhZCBvciB0aGUgcGxhaW50ZXh0IGlzIHRvbyBsYXJnZSwgemVybyB0aGUKKyAgICAgKiBkYXRhIHRoYXQgd2UncmUgYWJvdXQgdG8gY29weSB0byB0aGUgb3V0cHV0IGJ1ZmZlci4KKyAgICAgKiBXZSBuZWVkIHRvIGNvcHkgdGhlIHNhbWUgYW1vdW50IG9mIGRhdGEKKyAgICAgKiBmcm9tIHRoZSBzYW1lIGJ1ZmZlciB3aGV0aGVyIHRoZSBwYWRkaW5nIGlzIGdvb2Qgb3Igbm90IHRvCisgICAgICogYXZvaWQgbGVha2luZyB0aGUgcGFkZGluZyB2YWxpZGl0eSB0aHJvdWdoIG92ZXJhbGwgdGltaW5nIG9yCisgICAgICogdGhyb3VnaCBtZW1vcnkgb3IgY2FjaGUgYWNjZXNzIHBhdHRlcm5zLiAqLworICAgIG1iZWR0bHNfY3RfemVyb2l6ZV9pZihtYmVkdGxzX2N0X2Jvb2xfb3IoYmFkLCBvdXRwdXRfdG9vX2xhcmdlKSwgaW5wdXQgKyAxMSwgaWxlbiAtIDExKTsKKworICAgIC8qIElmIHRoZSBwbGFpbnRleHQgaXMgdG9vIGxhcmdlLCB0cnVuY2F0ZSBpdCB0byB0aGUgYnVmZmVyIHNpemUuCisgICAgICogQ29weSBhbnl3YXkgdG8gYXZvaWQgcmV2ZWFsaW5nIHRoZSBsZW5ndGggdGhyb3VnaCB0aW1pbmcsIGJlY2F1c2UKKyAgICAgKiByZXZlYWxpbmcgdGhlIGxlbmd0aCBpcyBhcyBiYWQgYXMgcmV2ZWFsaW5nIHRoZSBwYWRkaW5nIHZhbGlkaXR5CisgICAgICogZm9yIGEgQmxlaWNoZW5iYWNoZXIgYXR0YWNrLiAqLworICAgIHBsYWludGV4dF9zaXplID0gbWJlZHRsc19jdF91aW50X2lmKG91dHB1dF90b29fbGFyZ2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHVuc2lnbmVkKSBwbGFpbnRleHRfbWF4X3NpemUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHVuc2lnbmVkKSBwbGFpbnRleHRfc2l6ZSk7CisKKyAgICAvKiBNb3ZlIHRoZSBwbGFpbnRleHQgdG8gdGhlIGxlZnRtb3N0IHBvc2l0aW9uIHdoZXJlIGl0IGNhbiBzdGFydCBpbgorICAgICAqIHRoZSB3b3JraW5nIGJ1ZmZlciwgaS5lLiBtYWtlIGl0IHN0YXJ0IHBsYWludGV4dF9tYXhfc2l6ZSBmcm9tCisgICAgICogdGhlIGVuZCBvZiB0aGUgYnVmZmVyLiBEbyB0aGlzIHdpdGggYSBtZW1vcnkgYWNjZXNzIHRyYWNlIHRoYXQKKyAgICAgKiBkb2VzIG5vdCBkZXBlbmQgb24gdGhlIHBsYWludGV4dCBzaXplLiBBZnRlciB0aGlzIG1vdmUsIHRoZQorICAgICAqIHN0YXJ0aW5nIGxvY2F0aW9uIG9mIHRoZSBwbGFpbnRleHQgaXMgbm8gbG9uZ2VyIHNlbnNpdGl2ZQorICAgICAqIGluZm9ybWF0aW9uLiAqLworICAgIG1iZWR0bHNfY3RfbWVtbW92ZV9sZWZ0KGlucHV0ICsgaWxlbiAtIHBsYWludGV4dF9tYXhfc2l6ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBwbGFpbnRleHRfbWF4X3NpemUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGxhaW50ZXh0X21heF9zaXplIC0gcGxhaW50ZXh0X3NpemUpOworCisgICAgLyogRmluYWxseSBjb3B5IHRoZSBkZWNyeXB0ZWQgcGxhaW50ZXh0IHBsdXMgdHJhaWxpbmcgemVyb3MgaW50byB0aGUgb3V0cHV0CisgICAgICogYnVmZmVyLiBJZiBvdXRwdXRfbWF4X2xlbiBpcyAwLCB0aGVuIG91dHB1dCBtYXkgYmUgYW4gaW52YWxpZCBwb2ludGVyCisgICAgICogYW5kIHRoZSByZXN1bHQgb2YgbWVtY3B5KCkgd291bGQgYmUgdW5kZWZpbmVkOyBwcmV2ZW50IHVuZGVmaW5lZAorICAgICAqIGJlaGF2aW9yIG1ha2luZyBzdXJlIHRvIGRlcGVuZCBvbmx5IG9uIG91dHB1dF9tYXhfbGVuICh0aGUgc2l6ZSBvZiB0aGUKKyAgICAgKiB1c2VyLXByb3ZpZGVkIG91dHB1dCBidWZmZXIpLCB3aGljaCBpcyBpbmRlcGVuZGVudCBmcm9tIHBsYWludGV4dAorICAgICAqIGxlbmd0aCwgdmFsaWRpdHkgb2YgcGFkZGluZywgc3VjY2VzcyBvZiB0aGUgZGVjcnlwdGlvbiwgYW5kIG90aGVyCisgICAgICogc2VjcmV0cy4gKi8KKyAgICBpZiAob3V0cHV0X21heF9sZW4gIT0gMCkgeworICAgICAgICBtZW1jcHkob3V0cHV0LCBpbnB1dCArIGlsZW4gLSBwbGFpbnRleHRfbWF4X3NpemUsIHBsYWludGV4dF9tYXhfc2l6ZSk7CisgICAgfQorCisgICAgLyogUmVwb3J0IHRoZSBhbW91bnQgb2YgZGF0YSB3ZSBjb3BpZWQgdG8gdGhlIG91dHB1dCBidWZmZXIuIEluIGNhc2UKKyAgICAgKiBvZiBlcnJvcnMgKGJhZCBwYWRkaW5nIG9yIG91dHB1dCB0b28gbGFyZ2UpLCB0aGUgdmFsdWUgb2YgKm9sZW4KKyAgICAgKiB3aGVuIHRoaXMgZnVuY3Rpb24gcmV0dXJucyBpcyBub3Qgc3BlY2lmaWVkLiBNYWtpbmcgaXQgZXF1aXZhbGVudAorICAgICAqIHRvIHRoZSBnb29kIGNhc2UgbGltaXRzIHRoZSByaXNrcyBvZiBsZWFraW5nIHRoZSBwYWRkaW5nIHZhbGlkaXR5LiAqLworICAgICpvbGVuID0gcGxhaW50ZXh0X3NpemU7CisKKyAgICByZXR1cm4gcmV0OworfQorCisjZW5kaWYgLyogTUJFRFRMU19QS0NTMV9WMTUgJiYgTUJFRFRMU19SU0FfQyAqLworCitpbnQgbWJlZHRsc19yc2FfaW1wb3J0KG1iZWR0bHNfcnNhX2NvbnRleHQgKmN0eCwKKyAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbWJlZHRsc19tcGkgKk4sCisgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IG1iZWR0bHNfbXBpICpQLCBjb25zdCBtYmVkdGxzX21waSAqUSwKKyAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbWJlZHRsc19tcGkgKkQsIGNvbnN0IG1iZWR0bHNfbXBpICpFKQoreworICAgIGludCByZXQgPSBNQkVEVExTX0VSUl9FUlJPUl9DT1JSVVBUSU9OX0RFVEVDVEVEOworCisgICAgaWYgKChOICE9IE5VTEwgJiYgKHJldCA9IG1iZWR0bHNfbXBpX2NvcHkoJmN0eC0+TiwgTikpICE9IDApIHx8CisgICAgICAgIChQICE9IE5VTEwgJiYgKHJldCA9IG1iZWR0bHNfbXBpX2NvcHkoJmN0eC0+UCwgUCkpICE9IDApIHx8CisgICAgICAgIChRICE9IE5VTEwgJiYgKHJldCA9IG1iZWR0bHNfbXBpX2NvcHkoJmN0eC0+USwgUSkpICE9IDApIHx8CisgICAgICAgIChEICE9IE5VTEwgJiYgKHJldCA9IG1iZWR0bHNfbXBpX2NvcHkoJmN0eC0+RCwgRCkpICE9IDApIHx8CisgICAgICAgIChFICE9IE5VTEwgJiYgKHJldCA9IG1iZWR0bHNfbXBpX2NvcHkoJmN0eC0+RSwgRSkpICE9IDApKSB7CisgICAgICAgIHJldHVybiBNQkVEVExTX0VSUk9SX0FERChNQkVEVExTX0VSUl9SU0FfQkFEX0lOUFVUX0RBVEEsIHJldCk7CisgICAgfQorCisgICAgaWYgKE4gIT0gTlVMTCkgeworICAgICAgICBjdHgtPmxlbiA9IG1iZWR0bHNfbXBpX3NpemUoJmN0eC0+Tik7CisgICAgfQorCisgICAgcmV0dXJuIDA7Cit9CisKK2ludCBtYmVkdGxzX3JzYV9pbXBvcnRfcmF3KG1iZWR0bHNfcnNhX2NvbnRleHQgKmN0eCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGNoYXIgY29uc3QgKk4sIHNpemVfdCBOX2xlbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGNoYXIgY29uc3QgKlAsIHNpemVfdCBQX2xlbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGNoYXIgY29uc3QgKlEsIHNpemVfdCBRX2xlbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGNoYXIgY29uc3QgKkQsIHNpemVfdCBEX2xlbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGNoYXIgY29uc3QgKkUsIHNpemVfdCBFX2xlbikKK3sKKyAgICBpbnQgcmV0ID0gMDsKKworICAgIGlmIChOICE9IE5VTEwpIHsKKyAgICAgICAgTUJFRFRMU19NUElfQ0hLKG1iZWR0bHNfbXBpX3JlYWRfYmluYXJ5KCZjdHgtPk4sIE4sIE5fbGVuKSk7CisgICAgICAgIGN0eC0+bGVuID0gbWJlZHRsc19tcGlfc2l6ZSgmY3R4LT5OKTsKKyAgICB9CisKKyAgICBpZiAoUCAhPSBOVUxMKSB7CisgICAgICAgIE1CRURUTFNfTVBJX0NISyhtYmVkdGxzX21waV9yZWFkX2JpbmFyeSgmY3R4LT5QLCBQLCBQX2xlbikpOworICAgIH0KKworICAgIGlmIChRICE9IE5VTEwpIHsKKyAgICAgICAgTUJFRFRMU19NUElfQ0hLKG1iZWR0bHNfbXBpX3JlYWRfYmluYXJ5KCZjdHgtPlEsIFEsIFFfbGVuKSk7CisgICAgfQorCisgICAgaWYgKEQgIT0gTlVMTCkgeworICAgICAgICBNQkVEVExTX01QSV9DSEsobWJlZHRsc19tcGlfcmVhZF9iaW5hcnkoJmN0eC0+RCwgRCwgRF9sZW4pKTsKKyAgICB9CisKKyAgICBpZiAoRSAhPSBOVUxMKSB7CisgICAgICAgIE1CRURUTFNfTVBJX0NISyhtYmVkdGxzX21waV9yZWFkX2JpbmFyeSgmY3R4LT5FLCBFLCBFX2xlbikpOworICAgIH0KKworY2xlYW51cDoKKworICAgIGlmIChyZXQgIT0gMCkgeworICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJPUl9BREQoTUJFRFRMU19FUlJfUlNBX0JBRF9JTlBVVF9EQVRBLCByZXQpOworICAgIH0KKworICAgIHJldHVybiAwOworfQorCisvKgorICogQ2hlY2tzIHdoZXRoZXIgdGhlIGNvbnRleHQgZmllbGRzIGFyZSBzZXQgaW4gc3VjaCBhIHdheQorICogdGhhdCB0aGUgUlNBIHByaW1pdGl2ZXMgd2lsbCBiZSBhYmxlIHRvIGV4ZWN1dGUgd2l0aG91dCBlcnJvci4KKyAqIEl0IGRvZXMgKm5vdCogbWFrZSBndWFyYW50ZWVzIGZvciBjb25zaXN0ZW5jeSBvZiB0aGUgcGFyYW1ldGVycy4KKyAqLworc3RhdGljIGludCByc2FfY2hlY2tfY29udGV4dChtYmVkdGxzX3JzYV9jb250ZXh0IGNvbnN0ICpjdHgsIGludCBpc19wcml2LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgYmxpbmRpbmdfbmVlZGVkKQoreworI2lmICFkZWZpbmVkKE1CRURUTFNfUlNBX05PX0NSVCkKKyAgICAvKiBibGluZGluZ19uZWVkZWQgaXMgb25seSB1c2VkIGZvciBOT19DUlQgdG8gZGVjaWRlIHdoZXRoZXIKKyAgICAgKiBQLFEgbmVlZCB0byBiZSBwcmVzZW50IG9yIG5vdC4gKi8KKyAgICAoKHZvaWQpIGJsaW5kaW5nX25lZWRlZCk7CisjZW5kaWYKKworICAgIGlmIChjdHgtPmxlbiAhPSBtYmVkdGxzX21waV9zaXplKCZjdHgtPk4pIHx8CisgICAgICAgIGN0eC0+bGVuID4gTUJFRFRMU19NUElfTUFYX1NJWkUpIHsKKyAgICAgICAgcmV0dXJuIE1CRURUTFNfRVJSX1JTQV9CQURfSU5QVVRfREFUQTsKKyAgICB9CisKKyAgICAvKgorICAgICAqIDEuIE1vZHVsYXIgZXhwb25lbnRpYXRpb24gbmVlZHMgcG9zaXRpdmUsIG9kZCBtb2R1bGkuCisgICAgICovCisKKyAgICAvKiBNb2R1bGFyIGV4cG9uZW50aWF0aW9uIHdydC4gTiBpcyBhbHdheXMgdXNlZCBmb3IKKyAgICAgKiBSU0EgcHVibGljIGtleSBvcGVyYXRpb25zLiAqLworICAgIGlmIChtYmVkdGxzX21waV9jbXBfaW50KCZjdHgtPk4sIDApIDw9IDAgfHwKKyAgICAgICAgbWJlZHRsc19tcGlfZ2V0X2JpdCgmY3R4LT5OLCAwKSA9PSAwKSB7CisgICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9SU0FfQkFEX0lOUFVUX0RBVEE7CisgICAgfQorCisjaWYgIWRlZmluZWQoTUJFRFRMU19SU0FfTk9fQ1JUKQorICAgIC8qIE1vZHVsYXIgZXhwb25lbnRpYXRpb24gZm9yIFAgYW5kIFEgaXMgb25seQorICAgICAqIHVzZWQgZm9yIHByaXZhdGUga2V5IG9wZXJhdGlvbnMgYW5kIGlmIENSVAorICAgICAqIGlzIHVzZWQuICovCisgICAgaWYgKGlzX3ByaXYgJiYKKyAgICAgICAgKG1iZWR0bHNfbXBpX2NtcF9pbnQoJmN0eC0+UCwgMCkgPD0gMCB8fAorICAgICAgICAgbWJlZHRsc19tcGlfZ2V0X2JpdCgmY3R4LT5QLCAwKSA9PSAwIHx8CisgICAgICAgICBtYmVkdGxzX21waV9jbXBfaW50KCZjdHgtPlEsIDApIDw9IDAgfHwKKyAgICAgICAgIG1iZWR0bHNfbXBpX2dldF9iaXQoJmN0eC0+USwgMCkgPT0gMCkpIHsKKyAgICAgICAgcmV0dXJuIE1CRURUTFNfRVJSX1JTQV9CQURfSU5QVVRfREFUQTsKKyAgICB9CisjZW5kaWYgLyogIU1CRURUTFNfUlNBX05PX0NSVCAqLworCisgICAgLyoKKyAgICAgKiAyLiBFeHBvbmVudHMgbXVzdCBiZSBwb3NpdGl2ZQorICAgICAqLworCisgICAgLyogQWx3YXlzIG5lZWQgRSBmb3IgcHVibGljIGtleSBvcGVyYXRpb25zICovCisgICAgaWYgKG1iZWR0bHNfbXBpX2NtcF9pbnQoJmN0eC0+RSwgMCkgPD0gMCkgeworICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfUlNBX0JBRF9JTlBVVF9EQVRBOworICAgIH0KKworI2lmIGRlZmluZWQoTUJFRFRMU19SU0FfTk9fQ1JUKQorICAgIC8qIEZvciBwcml2YXRlIGtleSBvcGVyYXRpb25zLCB1c2UgRCBvciBEUCAmIERRCisgICAgICogYXMgKHVuYmxpbmRlZCkgZXhwb25lbnRzLiAqLworICAgIGlmIChpc19wcml2ICYmIG1iZWR0bHNfbXBpX2NtcF9pbnQoJmN0eC0+RCwgMCkgPD0gMCkgeworICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfUlNBX0JBRF9JTlBVVF9EQVRBOworICAgIH0KKyNlbHNlCisgICAgaWYgKGlzX3ByaXYgJiYKKyAgICAgICAgKG1iZWR0bHNfbXBpX2NtcF9pbnQoJmN0eC0+RFAsIDApIDw9IDAgfHwKKyAgICAgICAgIG1iZWR0bHNfbXBpX2NtcF9pbnQoJmN0eC0+RFEsIDApIDw9IDApKSB7CisgICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9SU0FfQkFEX0lOUFVUX0RBVEE7CisgICAgfQorI2VuZGlmIC8qIE1CRURUTFNfUlNBX05PX0NSVCAqLworCisgICAgLyogQmxpbmRpbmcgc2hvdWxkbid0IG1ha2UgZXhwb25lbnRzIG5lZ2F0aXZlIGVpdGhlciwKKyAgICAgKiBzbyBjaGVjayB0aGF0IFAsIFEgPj0gMSBpZiB0aGF0IGhhc24ndCB5ZXQgYmVlbgorICAgICAqIGRvbmUgYXMgcGFydCBvZiAxLiAqLworI2lmIGRlZmluZWQoTUJFRFRMU19SU0FfTk9fQ1JUKQorICAgIGlmIChpc19wcml2ICYmIGJsaW5kaW5nX25lZWRlZCAmJgorICAgICAgICAobWJlZHRsc19tcGlfY21wX2ludCgmY3R4LT5QLCAwKSA8PSAwIHx8CisgICAgICAgICBtYmVkdGxzX21waV9jbXBfaW50KCZjdHgtPlEsIDApIDw9IDApKSB7CisgICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9SU0FfQkFEX0lOUFVUX0RBVEE7CisgICAgfQorI2VuZGlmCisKKyAgICAvKiBJdCB3b3VsZG4ndCBsZWFkIHRvIGFuIGVycm9yIGlmIGl0IHdhc24ndCBzYXRpc2ZpZWQsCisgICAgICogYnV0IGNoZWNrIGZvciBRUCA+PSAxIG5vbmV0aGVsZXNzLiAqLworI2lmICFkZWZpbmVkKE1CRURUTFNfUlNBX05PX0NSVCkKKyAgICBpZiAoaXNfcHJpdiAmJgorICAgICAgICBtYmVkdGxzX21waV9jbXBfaW50KCZjdHgtPlFQLCAwKSA8PSAwKSB7CisgICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9SU0FfQkFEX0lOUFVUX0RBVEE7CisgICAgfQorI2VuZGlmCisKKyAgICByZXR1cm4gMDsKK30KKworaW50IG1iZWR0bHNfcnNhX2NvbXBsZXRlKG1iZWR0bHNfcnNhX2NvbnRleHQgKmN0eCkKK3sKKyAgICBpbnQgcmV0ID0gMDsKKyAgICBpbnQgaGF2ZV9OLCBoYXZlX1AsIGhhdmVfUSwgaGF2ZV9ELCBoYXZlX0U7CisjaWYgIWRlZmluZWQoTUJFRFRMU19SU0FfTk9fQ1JUKQorICAgIGludCBoYXZlX0RQLCBoYXZlX0RRLCBoYXZlX1FQOworI2VuZGlmCisgICAgaW50IG5fbWlzc2luZywgcHFfbWlzc2luZywgZF9taXNzaW5nLCBpc19wdWIsIGlzX3ByaXY7CisKKyAgICBoYXZlX04gPSAobWJlZHRsc19tcGlfY21wX2ludCgmY3R4LT5OLCAwKSAhPSAwKTsKKyAgICBoYXZlX1AgPSAobWJlZHRsc19tcGlfY21wX2ludCgmY3R4LT5QLCAwKSAhPSAwKTsKKyAgICBoYXZlX1EgPSAobWJlZHRsc19tcGlfY21wX2ludCgmY3R4LT5RLCAwKSAhPSAwKTsKKyAgICBoYXZlX0QgPSAobWJlZHRsc19tcGlfY21wX2ludCgmY3R4LT5ELCAwKSAhPSAwKTsKKyAgICBoYXZlX0UgPSAobWJlZHRsc19tcGlfY21wX2ludCgmY3R4LT5FLCAwKSAhPSAwKTsKKworI2lmICFkZWZpbmVkKE1CRURUTFNfUlNBX05PX0NSVCkKKyAgICBoYXZlX0RQID0gKG1iZWR0bHNfbXBpX2NtcF9pbnQoJmN0eC0+RFAsIDApICE9IDApOworICAgIGhhdmVfRFEgPSAobWJlZHRsc19tcGlfY21wX2ludCgmY3R4LT5EUSwgMCkgIT0gMCk7CisgICAgaGF2ZV9RUCA9IChtYmVkdGxzX21waV9jbXBfaW50KCZjdHgtPlFQLCAwKSAhPSAwKTsKKyNlbmRpZgorCisgICAgLyoKKyAgICAgKiBDaGVjayB3aGV0aGVyIHByb3ZpZGVkIHBhcmFtZXRlcnMgYXJlIGVub3VnaAorICAgICAqIHRvIGRlZHVjZSBhbGwgb3RoZXJzLiBUaGUgZm9sbG93aW5nIGluY29tcGxldGUKKyAgICAgKiBwYXJhbWV0ZXIgc2V0cyBmb3IgcHJpdmF0ZSBrZXlzIGFyZSBzdXBwb3J0ZWQ6CisgICAgICoKKyAgICAgKiAoMSkgUCwgUSBtaXNzaW5nLgorICAgICAqICgyKSBEIGFuZCBwb3RlbnRpYWxseSBOIG1pc3NpbmcuCisgICAgICoKKyAgICAgKi8KKworICAgIG5fbWlzc2luZyAgPSAgICAgICAgICAgICAgaGF2ZV9QICYmICBoYXZlX1EgJiYgIGhhdmVfRCAmJiBoYXZlX0U7CisgICAgcHFfbWlzc2luZyA9ICAgaGF2ZV9OICYmICFoYXZlX1AgJiYgIWhhdmVfUSAmJiAgaGF2ZV9EICYmIGhhdmVfRTsKKyAgICBkX21pc3NpbmcgID0gICAgICAgICAgICAgIGhhdmVfUCAmJiAgaGF2ZV9RICYmICFoYXZlX0QgJiYgaGF2ZV9FOworICAgIGlzX3B1YiAgICAgPSAgIGhhdmVfTiAmJiAhaGF2ZV9QICYmICFoYXZlX1EgJiYgIWhhdmVfRCAmJiBoYXZlX0U7CisKKyAgICAvKiBUaGVzZSB0aHJlZSBhbHRlcm5hdGl2ZXMgYXJlIG11dHVhbGx5IGV4Y2x1c2l2ZSAqLworICAgIGlzX3ByaXYgPSBuX21pc3NpbmcgfHwgcHFfbWlzc2luZyB8fCBkX21pc3Npbmc7CisKKyAgICBpZiAoIWlzX3ByaXYgJiYgIWlzX3B1YikgeworICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfUlNBX0JBRF9JTlBVVF9EQVRBOworICAgIH0KKworICAgIC8qCisgICAgICogU3RlcCAxOiBEZWR1Y2UgTiBpZiBQLCBRIGFyZSBwcm92aWRlZC4KKyAgICAgKi8KKworICAgIGlmICghaGF2ZV9OICYmIGhhdmVfUCAmJiBoYXZlX1EpIHsKKyAgICAgICAgaWYgKChyZXQgPSBtYmVkdGxzX21waV9tdWxfbXBpKCZjdHgtPk4sICZjdHgtPlAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmY3R4LT5RKSkgIT0gMCkgeworICAgICAgICAgICAgcmV0dXJuIE1CRURUTFNfRVJST1JfQUREKE1CRURUTFNfRVJSX1JTQV9CQURfSU5QVVRfREFUQSwgcmV0KTsKKyAgICAgICAgfQorCisgICAgICAgIGN0eC0+bGVuID0gbWJlZHRsc19tcGlfc2l6ZSgmY3R4LT5OKTsKKyAgICB9CisKKyAgICAvKgorICAgICAqIFN0ZXAgMjogRGVkdWNlIGFuZCB2ZXJpZnkgYWxsIHJlbWFpbmluZyBjb3JlIHBhcmFtZXRlcnMuCisgICAgICovCisKKyAgICBpZiAocHFfbWlzc2luZykgeworICAgICAgICByZXQgPSBtYmVkdGxzX3JzYV9kZWR1Y2VfcHJpbWVzKCZjdHgtPk4sICZjdHgtPkUsICZjdHgtPkQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJmN0eC0+UCwgJmN0eC0+USk7CisgICAgICAgIGlmIChyZXQgIT0gMCkgeworICAgICAgICAgICAgcmV0dXJuIE1CRURUTFNfRVJST1JfQUREKE1CRURUTFNfRVJSX1JTQV9CQURfSU5QVVRfREFUQSwgcmV0KTsKKyAgICAgICAgfQorCisgICAgfSBlbHNlIGlmIChkX21pc3NpbmcpIHsKKyAgICAgICAgaWYgKChyZXQgPSBtYmVkdGxzX3JzYV9kZWR1Y2VfcHJpdmF0ZV9leHBvbmVudCgmY3R4LT5QLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZjdHgtPlEsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJmN0eC0+RSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmY3R4LT5EKSkgIT0gMCkgeworICAgICAgICAgICAgcmV0dXJuIE1CRURUTFNfRVJST1JfQUREKE1CRURUTFNfRVJSX1JTQV9CQURfSU5QVVRfREFUQSwgcmV0KTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qCisgICAgICogU3RlcCAzOiBEZWR1Y2UgYWxsIGFkZGl0aW9uYWwgcGFyYW1ldGVycyBzcGVjaWZpYworICAgICAqICAgICAgICAgdG8gb3VyIGN1cnJlbnQgUlNBIGltcGxlbWVudGF0aW9uLgorICAgICAqLworCisjaWYgIWRlZmluZWQoTUJFRFRMU19SU0FfTk9fQ1JUKQorICAgIGlmIChpc19wcml2ICYmICEoaGF2ZV9EUCAmJiBoYXZlX0RRICYmIGhhdmVfUVApKSB7CisgICAgICAgIHJldCA9IG1iZWR0bHNfcnNhX2RlZHVjZV9jcnQoJmN0eC0+UCwgICZjdHgtPlEsICAmY3R4LT5ELAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZjdHgtPkRQLCAmY3R4LT5EUSwgJmN0eC0+UVApOworICAgICAgICBpZiAocmV0ICE9IDApIHsKKyAgICAgICAgICAgIHJldHVybiBNQkVEVExTX0VSUk9SX0FERChNQkVEVExTX0VSUl9SU0FfQkFEX0lOUFVUX0RBVEEsIHJldCk7CisgICAgICAgIH0KKyAgICB9CisjZW5kaWYgLyogTUJFRFRMU19SU0FfTk9fQ1JUICovCisKKyAgICAvKgorICAgICAqIFN0ZXAgMzogQmFzaWMgc2FuaXR5IGNoZWNrcworICAgICAqLworCisgICAgcmV0dXJuIHJzYV9jaGVja19jb250ZXh0KGN0eCwgaXNfcHJpdiwgMSk7Cit9CisKK2ludCBtYmVkdGxzX3JzYV9leHBvcnRfcmF3KGNvbnN0IG1iZWR0bHNfcnNhX2NvbnRleHQgKmN0eCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGNoYXIgKk4sIHNpemVfdCBOX2xlbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGNoYXIgKlAsIHNpemVfdCBQX2xlbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGNoYXIgKlEsIHNpemVfdCBRX2xlbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGNoYXIgKkQsIHNpemVfdCBEX2xlbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGNoYXIgKkUsIHNpemVfdCBFX2xlbikKK3sKKyAgICBpbnQgcmV0ID0gMDsKKyAgICBpbnQgaXNfcHJpdjsKKworICAgIC8qIENoZWNrIGlmIGtleSBpcyBwcml2YXRlIG9yIHB1YmxpYyAqLworICAgIGlzX3ByaXYgPQorICAgICAgICBtYmVkdGxzX21waV9jbXBfaW50KCZjdHgtPk4sIDApICE9IDAgJiYKKyAgICAgICAgbWJlZHRsc19tcGlfY21wX2ludCgmY3R4LT5QLCAwKSAhPSAwICYmCisgICAgICAgIG1iZWR0bHNfbXBpX2NtcF9pbnQoJmN0eC0+USwgMCkgIT0gMCAmJgorICAgICAgICBtYmVkdGxzX21waV9jbXBfaW50KCZjdHgtPkQsIDApICE9IDAgJiYKKyAgICAgICAgbWJlZHRsc19tcGlfY21wX2ludCgmY3R4LT5FLCAwKSAhPSAwOworCisgICAgaWYgKCFpc19wcml2KSB7CisgICAgICAgIC8qIElmIHdlJ3JlIHRyeWluZyB0byBleHBvcnQgcHJpdmF0ZSBwYXJhbWV0ZXJzIGZvciBhIHB1YmxpYyBrZXksCisgICAgICAgICAqIHNvbWV0aGluZyBtdXN0IGJlIHdyb25nLiAqLworICAgICAgICBpZiAoUCAhPSBOVUxMIHx8IFEgIT0gTlVMTCB8fCBEICE9IE5VTEwpIHsKKyAgICAgICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9SU0FfQkFEX0lOUFVUX0RBVEE7CisgICAgICAgIH0KKworICAgIH0KKworICAgIGlmIChOICE9IE5VTEwpIHsKKyAgICAgICAgTUJFRFRMU19NUElfQ0hLKG1iZWR0bHNfbXBpX3dyaXRlX2JpbmFyeSgmY3R4LT5OLCBOLCBOX2xlbikpOworICAgIH0KKworICAgIGlmIChQICE9IE5VTEwpIHsKKyAgICAgICAgTUJFRFRMU19NUElfQ0hLKG1iZWR0bHNfbXBpX3dyaXRlX2JpbmFyeSgmY3R4LT5QLCBQLCBQX2xlbikpOworICAgIH0KKworICAgIGlmIChRICE9IE5VTEwpIHsKKyAgICAgICAgTUJFRFRMU19NUElfQ0hLKG1iZWR0bHNfbXBpX3dyaXRlX2JpbmFyeSgmY3R4LT5RLCBRLCBRX2xlbikpOworICAgIH0KKworICAgIGlmIChEICE9IE5VTEwpIHsKKyAgICAgICAgTUJFRFRMU19NUElfQ0hLKG1iZWR0bHNfbXBpX3dyaXRlX2JpbmFyeSgmY3R4LT5ELCBELCBEX2xlbikpOworICAgIH0KKworICAgIGlmIChFICE9IE5VTEwpIHsKKyAgICAgICAgTUJFRFRMU19NUElfQ0hLKG1iZWR0bHNfbXBpX3dyaXRlX2JpbmFyeSgmY3R4LT5FLCBFLCBFX2xlbikpOworICAgIH0KKworY2xlYW51cDoKKworICAgIHJldHVybiByZXQ7Cit9CisKK2ludCBtYmVkdGxzX3JzYV9leHBvcnQoY29uc3QgbWJlZHRsc19yc2FfY29udGV4dCAqY3R4LAorICAgICAgICAgICAgICAgICAgICAgICBtYmVkdGxzX21waSAqTiwgbWJlZHRsc19tcGkgKlAsIG1iZWR0bHNfbXBpICpRLAorICAgICAgICAgICAgICAgICAgICAgICBtYmVkdGxzX21waSAqRCwgbWJlZHRsc19tcGkgKkUpCit7CisgICAgaW50IHJldCA9IE1CRURUTFNfRVJSX0VSUk9SX0NPUlJVUFRJT05fREVURUNURUQ7CisgICAgaW50IGlzX3ByaXY7CisKKyAgICAvKiBDaGVjayBpZiBrZXkgaXMgcHJpdmF0ZSBvciBwdWJsaWMgKi8KKyAgICBpc19wcml2ID0KKyAgICAgICAgbWJlZHRsc19tcGlfY21wX2ludCgmY3R4LT5OLCAwKSAhPSAwICYmCisgICAgICAgIG1iZWR0bHNfbXBpX2NtcF9pbnQoJmN0eC0+UCwgMCkgIT0gMCAmJgorICAgICAgICBtYmVkdGxzX21waV9jbXBfaW50KCZjdHgtPlEsIDApICE9IDAgJiYKKyAgICAgICAgbWJlZHRsc19tcGlfY21wX2ludCgmY3R4LT5ELCAwKSAhPSAwICYmCisgICAgICAgIG1iZWR0bHNfbXBpX2NtcF9pbnQoJmN0eC0+RSwgMCkgIT0gMDsKKworICAgIGlmICghaXNfcHJpdikgeworICAgICAgICAvKiBJZiB3ZSdyZSB0cnlpbmcgdG8gZXhwb3J0IHByaXZhdGUgcGFyYW1ldGVycyBmb3IgYSBwdWJsaWMga2V5LAorICAgICAgICAgKiBzb21ldGhpbmcgbXVzdCBiZSB3cm9uZy4gKi8KKyAgICAgICAgaWYgKFAgIT0gTlVMTCB8fCBRICE9IE5VTEwgfHwgRCAhPSBOVUxMKSB7CisgICAgICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfUlNBX0JBRF9JTlBVVF9EQVRBOworICAgICAgICB9CisKKyAgICB9CisKKyAgICAvKiBFeHBvcnQgYWxsIHJlcXVlc3RlZCBjb3JlIHBhcmFtZXRlcnMuICovCisKKyAgICBpZiAoKE4gIT0gTlVMTCAmJiAocmV0ID0gbWJlZHRsc19tcGlfY29weShOLCAmY3R4LT5OKSkgIT0gMCkgfHwKKyAgICAgICAgKFAgIT0gTlVMTCAmJiAocmV0ID0gbWJlZHRsc19tcGlfY29weShQLCAmY3R4LT5QKSkgIT0gMCkgfHwKKyAgICAgICAgKFEgIT0gTlVMTCAmJiAocmV0ID0gbWJlZHRsc19tcGlfY29weShRLCAmY3R4LT5RKSkgIT0gMCkgfHwKKyAgICAgICAgKEQgIT0gTlVMTCAmJiAocmV0ID0gbWJlZHRsc19tcGlfY29weShELCAmY3R4LT5EKSkgIT0gMCkgfHwKKyAgICAgICAgKEUgIT0gTlVMTCAmJiAocmV0ID0gbWJlZHRsc19tcGlfY29weShFLCAmY3R4LT5FKSkgIT0gMCkpIHsKKyAgICAgICAgcmV0dXJuIHJldDsKKyAgICB9CisKKyAgICByZXR1cm4gMDsKK30KKworLyoKKyAqIEV4cG9ydCBDUlQgcGFyYW1ldGVycworICogVGhpcyBtdXN0IGFsc28gYmUgaW1wbGVtZW50ZWQgaWYgQ1JUIGlzIG5vdCB1c2VkLCBmb3IgYmVpbmcgYWJsZSB0bworICogd3JpdGUgREVSIGVuY29kZWQgUlNBIGtleXMuIFRoZSBoZWxwZXIgZnVuY3Rpb24gbWJlZHRsc19yc2FfZGVkdWNlX2NydAorICogY2FuIGJlIHVzZWQgaW4gdGhpcyBjYXNlLgorICovCitpbnQgbWJlZHRsc19yc2FfZXhwb3J0X2NydChjb25zdCBtYmVkdGxzX3JzYV9jb250ZXh0ICpjdHgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICBtYmVkdGxzX21waSAqRFAsIG1iZWR0bHNfbXBpICpEUSwgbWJlZHRsc19tcGkgKlFQKQoreworICAgIGludCByZXQgPSBNQkVEVExTX0VSUl9FUlJPUl9DT1JSVVBUSU9OX0RFVEVDVEVEOworICAgIGludCBpc19wcml2OworCisgICAgLyogQ2hlY2sgaWYga2V5IGlzIHByaXZhdGUgb3IgcHVibGljICovCisgICAgaXNfcHJpdiA9CisgICAgICAgIG1iZWR0bHNfbXBpX2NtcF9pbnQoJmN0eC0+TiwgMCkgIT0gMCAmJgorICAgICAgICBtYmVkdGxzX21waV9jbXBfaW50KCZjdHgtPlAsIDApICE9IDAgJiYKKyAgICAgICAgbWJlZHRsc19tcGlfY21wX2ludCgmY3R4LT5RLCAwKSAhPSAwICYmCisgICAgICAgIG1iZWR0bHNfbXBpX2NtcF9pbnQoJmN0eC0+RCwgMCkgIT0gMCAmJgorICAgICAgICBtYmVkdGxzX21waV9jbXBfaW50KCZjdHgtPkUsIDApICE9IDA7CisKKyAgICBpZiAoIWlzX3ByaXYpIHsKKyAgICAgICAgcmV0dXJuIE1CRURUTFNfRVJSX1JTQV9CQURfSU5QVVRfREFUQTsKKyAgICB9CisKKyNpZiAhZGVmaW5lZChNQkVEVExTX1JTQV9OT19DUlQpCisgICAgLyogRXhwb3J0IGFsbCByZXF1ZXN0ZWQgYmxpbmRpbmcgcGFyYW1ldGVycy4gKi8KKyAgICBpZiAoKERQICE9IE5VTEwgJiYgKHJldCA9IG1iZWR0bHNfbXBpX2NvcHkoRFAsICZjdHgtPkRQKSkgIT0gMCkgfHwKKyAgICAgICAgKERRICE9IE5VTEwgJiYgKHJldCA9IG1iZWR0bHNfbXBpX2NvcHkoRFEsICZjdHgtPkRRKSkgIT0gMCkgfHwKKyAgICAgICAgKFFQICE9IE5VTEwgJiYgKHJldCA9IG1iZWR0bHNfbXBpX2NvcHkoUVAsICZjdHgtPlFQKSkgIT0gMCkpIHsKKyAgICAgICAgcmV0dXJuIE1CRURUTFNfRVJST1JfQUREKE1CRURUTFNfRVJSX1JTQV9CQURfSU5QVVRfREFUQSwgcmV0KTsKKyAgICB9CisjZWxzZQorICAgIGlmICgocmV0ID0gbWJlZHRsc19yc2FfZGVkdWNlX2NydCgmY3R4LT5QLCAmY3R4LT5RLCAmY3R4LT5ELAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBEUCwgRFEsIFFQKSkgIT0gMCkgeworICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJPUl9BREQoTUJFRFRMU19FUlJfUlNBX0JBRF9JTlBVVF9EQVRBLCByZXQpOworICAgIH0KKyNlbmRpZgorCisgICAgcmV0dXJuIDA7Cit9CisKKy8qCisgKiBJbml0aWFsaXplIGFuIFJTQSBjb250ZXh0CisgKi8KK3ZvaWQgbWJlZHRsc19yc2FfaW5pdChtYmVkdGxzX3JzYV9jb250ZXh0ICpjdHgpCit7CisgICAgbWVtc2V0KGN0eCwgMCwgc2l6ZW9mKG1iZWR0bHNfcnNhX2NvbnRleHQpKTsKKworICAgIGN0eC0+cGFkZGluZyA9IE1CRURUTFNfUlNBX1BLQ1NfVjE1OworICAgIGN0eC0+aGFzaF9pZCA9IE1CRURUTFNfTURfTk9ORTsKKworI2lmIGRlZmluZWQoTUJFRFRMU19USFJFQURJTkdfQykKKyAgICAvKiBTZXQgY3R4LT52ZXIgdG8gbm9uemVybyB0byBpbmRpY2F0ZSB0aGF0IHRoZSBtdXRleCBoYXMgYmVlbgorICAgICAqIGluaXRpYWxpemVkIGFuZCB3aWxsIG5lZWQgdG8gYmUgZnJlZWQuICovCisgICAgY3R4LT52ZXIgPSAxOworICAgIG1iZWR0bHNfbXV0ZXhfaW5pdCgmY3R4LT5tdXRleCk7CisjZW5kaWYKK30KKworLyoKKyAqIFNldCBwYWRkaW5nIGZvciBhbiBleGlzdGluZyBSU0EgY29udGV4dAorICovCitpbnQgbWJlZHRsc19yc2Ffc2V0X3BhZGRpbmcobWJlZHRsc19yc2FfY29udGV4dCAqY3R4LCBpbnQgcGFkZGluZywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYmVkdGxzX21kX3R5cGVfdCBoYXNoX2lkKQoreworICAgIHN3aXRjaCAocGFkZGluZykgeworI2lmIGRlZmluZWQoTUJFRFRMU19QS0NTMV9WMTUpCisgICAgICAgIGNhc2UgTUJFRFRMU19SU0FfUEtDU19WMTU6CisgICAgICAgICAgICBicmVhazsKKyNlbmRpZgorCisjaWYgZGVmaW5lZChNQkVEVExTX1BLQ1MxX1YyMSkKKyAgICAgICAgY2FzZSBNQkVEVExTX1JTQV9QS0NTX1YyMToKKyAgICAgICAgICAgIGJyZWFrOworI2VuZGlmCisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfUlNBX0lOVkFMSURfUEFERElORzsKKyAgICB9CisKKyNpZiBkZWZpbmVkKE1CRURUTFNfUEtDUzFfVjIxKQorICAgIGlmICgocGFkZGluZyA9PSBNQkVEVExTX1JTQV9QS0NTX1YyMSkgJiYKKyAgICAgICAgKGhhc2hfaWQgIT0gTUJFRFRMU19NRF9OT05FKSkgeworICAgICAgICAvKiBKdXN0IG1ha2Ugc3VyZSB0aGlzIGhhc2ggaXMgc3VwcG9ydGVkIGluIHRoaXMgYnVpbGQuICovCisgICAgICAgIGlmIChtYmVkdGxzX21kX2luZm9fZnJvbV90eXBlKGhhc2hfaWQpID09IE5VTEwpIHsKKyAgICAgICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9SU0FfSU5WQUxJRF9QQURESU5HOworICAgICAgICB9CisgICAgfQorI2VuZGlmIC8qIE1CRURUTFNfUEtDUzFfVjIxICovCisKKyAgICBjdHgtPnBhZGRpbmcgPSBwYWRkaW5nOworICAgIGN0eC0+aGFzaF9pZCA9IGhhc2hfaWQ7CisKKyAgICByZXR1cm4gMDsKK30KKworLyoKKyAqIEdldCBwYWRkaW5nIG1vZGUgb2YgaW5pdGlhbGl6ZWQgUlNBIGNvbnRleHQKKyAqLworaW50IG1iZWR0bHNfcnNhX2dldF9wYWRkaW5nX21vZGUoY29uc3QgbWJlZHRsc19yc2FfY29udGV4dCAqY3R4KQoreworICAgIHJldHVybiBjdHgtPnBhZGRpbmc7Cit9CisKKy8qCisgKiBHZXQgaGFzaCBpZGVudGlmaWVyIG9mIG1iZWR0bHNfbWRfdHlwZV90IHR5cGUKKyAqLworaW50IG1iZWR0bHNfcnNhX2dldF9tZF9hbGcoY29uc3QgbWJlZHRsc19yc2FfY29udGV4dCAqY3R4KQoreworICAgIHJldHVybiBjdHgtPmhhc2hfaWQ7Cit9CisKKy8qCisgKiBHZXQgbGVuZ3RoIGluIGJpdHMgb2YgUlNBIG1vZHVsdXMKKyAqLworc2l6ZV90IG1iZWR0bHNfcnNhX2dldF9iaXRsZW4oY29uc3QgbWJlZHRsc19yc2FfY29udGV4dCAqY3R4KQoreworICAgIHJldHVybiBtYmVkdGxzX21waV9iaXRsZW4oJmN0eC0+Tik7Cit9CisKKy8qCisgKiBHZXQgbGVuZ3RoIGluIGJ5dGVzIG9mIFJTQSBtb2R1bHVzCisgKi8KK3NpemVfdCBtYmVkdGxzX3JzYV9nZXRfbGVuKGNvbnN0IG1iZWR0bHNfcnNhX2NvbnRleHQgKmN0eCkKK3sKKyAgICByZXR1cm4gY3R4LT5sZW47Cit9CisKKyNpZiBkZWZpbmVkKE1CRURUTFNfR0VOUFJJTUUpCisKKy8qCisgKiBHZW5lcmF0ZSBhbiBSU0Ega2V5cGFpcgorICoKKyAqIFRoaXMgZ2VuZXJhdGlvbiBtZXRob2QgZm9sbG93cyB0aGUgUlNBIGtleSBwYWlyIGdlbmVyYXRpb24gcHJvY2VkdXJlIG9mCisgKiBGSVBTIDE4Ni00IGlmIDJeMTYgPCBleHBvbmVudCA8IDJeMjU2IGFuZCBuYml0cyA9IDIwNDggb3IgbmJpdHMgPSAzMDcyLgorICovCitpbnQgbWJlZHRsc19yc2FfZ2VuX2tleShtYmVkdGxzX3JzYV9jb250ZXh0ICpjdHgsCisgICAgICAgICAgICAgICAgICAgICAgICBpbnQgKCpmX3JuZykodm9pZCAqLCB1bnNpZ25lZCBjaGFyICosIHNpemVfdCksCisgICAgICAgICAgICAgICAgICAgICAgICB2b2lkICpwX3JuZywKKyAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCBuYml0cywgaW50IGV4cG9uZW50KQoreworICAgIGludCByZXQgPSBNQkVEVExTX0VSUl9FUlJPUl9DT1JSVVBUSU9OX0RFVEVDVEVEOworICAgIG1iZWR0bHNfbXBpIEgsIEcsIEw7CisgICAgaW50IHByaW1lX3F1YWxpdHkgPSAwOworCisgICAgLyoKKyAgICAgKiBJZiB0aGUgbW9kdWx1cyBpcyAxMDI0IGJpdCBsb25nIG9yIHNob3J0ZXIsIHRoZW4gdGhlIHNlY3VyaXR5IHN0cmVuZ3RoIG9mCisgICAgICogdGhlIFJTQSBhbGdvcml0aG0gaXMgbGVzcyB0aGFuIG9yIGVxdWFsIHRvIDgwIGJpdHMgYW5kIHRoZXJlZm9yZSBhbiBlcnJvcgorICAgICAqIHJhdGUgb2YgMl4tODAgaXMgc3VmZmljaWVudC4KKyAgICAgKi8KKyAgICBpZiAobmJpdHMgPiAxMDI0KSB7CisgICAgICAgIHByaW1lX3F1YWxpdHkgPSBNQkVEVExTX01QSV9HRU5fUFJJTUVfRkxBR19MT1dfRVJSOworICAgIH0KKworICAgIG1iZWR0bHNfbXBpX2luaXQoJkgpOworICAgIG1iZWR0bHNfbXBpX2luaXQoJkcpOworICAgIG1iZWR0bHNfbXBpX2luaXQoJkwpOworCisgICAgaWYgKGV4cG9uZW50IDwgMyB8fCBuYml0cyAlIDIgIT0gMCkgeworICAgICAgICByZXQgPSBNQkVEVExTX0VSUl9SU0FfQkFEX0lOUFVUX0RBVEE7CisgICAgICAgIGdvdG8gY2xlYW51cDsKKyAgICB9CisKKyAgICBpZiAobmJpdHMgPCBNQkVEVExTX1JTQV9HRU5fS0VZX01JTl9CSVRTKSB7CisgICAgICAgIHJldCA9IE1CRURUTFNfRVJSX1JTQV9CQURfSU5QVVRfREFUQTsKKyAgICAgICAgZ290byBjbGVhbnVwOworICAgIH0KKworICAgIC8qCisgICAgICogZmluZCBwcmltZXMgUCBhbmQgUSB3aXRoIFEgPCBQIHNvIHRoYXQ6CisgICAgICogMS4gIHxQLVF8ID4gMl4oIG5iaXRzIC8gMiAtIDEwMCApCisgICAgICogMi4gIEdDRCggRSwgKFAtMSkqKFEtMSkgKSA9PSAxCisgICAgICogMy4gIEVeLTEgbW9kIExDTShQLTEsIFEtMSkgPiAyXiggbmJpdHMgLyAyICkKKyAgICAgKi8KKyAgICBNQkVEVExTX01QSV9DSEsobWJlZHRsc19tcGlfbHNldCgmY3R4LT5FLCBleHBvbmVudCkpOworCisgICAgZG8geworICAgICAgICBNQkVEVExTX01QSV9DSEsobWJlZHRsc19tcGlfZ2VuX3ByaW1lKCZjdHgtPlAsIG5iaXRzID4+IDEsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJpbWVfcXVhbGl0eSwgZl9ybmcsIHBfcm5nKSk7CisKKyAgICAgICAgTUJFRFRMU19NUElfQ0hLKG1iZWR0bHNfbXBpX2dlbl9wcmltZSgmY3R4LT5RLCBuYml0cyA+PiAxLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByaW1lX3F1YWxpdHksIGZfcm5nLCBwX3JuZykpOworCisgICAgICAgIC8qIG1ha2Ugc3VyZSB0aGUgZGlmZmVyZW5jZSBiZXR3ZWVuIHAgYW5kIHEgaXMgbm90IHRvbyBzbWFsbCAoRklQUyAxODYtNCDCp0IuMy4zIHN0ZXAgNS40KSAqLworICAgICAgICBNQkVEVExTX01QSV9DSEsobWJlZHRsc19tcGlfc3ViX21waSgmSCwgJmN0eC0+UCwgJmN0eC0+USkpOworICAgICAgICBpZiAobWJlZHRsc19tcGlfYml0bGVuKCZIKSA8PSAoKG5iaXRzID49IDIwMCkgPyAoKG5iaXRzID4+IDEpIC0gOTkpIDogMCkpIHsKKyAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICB9CisKKyAgICAgICAgLyogbm90IHJlcXVpcmVkIGJ5IGFueSBzdGFuZGFyZHMsIGJ1dCBzb21lIHVzZXJzIHJlbHkgb24gdGhlIGZhY3QgdGhhdCBQID4gUSAqLworICAgICAgICBpZiAoSC5zIDwgMCkgeworICAgICAgICAgICAgbWJlZHRsc19tcGlfc3dhcCgmY3R4LT5QLCAmY3R4LT5RKTsKKyAgICAgICAgfQorCisgICAgICAgIC8qIFRlbXBvcmFyaWx5IHJlcGxhY2UgUCxRIGJ5IFAtMSwgUS0xICovCisgICAgICAgIE1CRURUTFNfTVBJX0NISyhtYmVkdGxzX21waV9zdWJfaW50KCZjdHgtPlAsICZjdHgtPlAsIDEpKTsKKyAgICAgICAgTUJFRFRMU19NUElfQ0hLKG1iZWR0bHNfbXBpX3N1Yl9pbnQoJmN0eC0+USwgJmN0eC0+USwgMSkpOworICAgICAgICBNQkVEVExTX01QSV9DSEsobWJlZHRsc19tcGlfbXVsX21waSgmSCwgJmN0eC0+UCwgJmN0eC0+USkpOworCisgICAgICAgIC8qIGNoZWNrIEdDRCggRSwgKFAtMSkqKFEtMSkgKSA9PSAxIChGSVBTIDE4Ni00IMKnQi4zLjEgY3JpdGVyaW9uIDIoYSkpICovCisgICAgICAgIE1CRURUTFNfTVBJX0NISyhtYmVkdGxzX21waV9nY2QoJkcsICZjdHgtPkUsICZIKSk7CisgICAgICAgIGlmIChtYmVkdGxzX21waV9jbXBfaW50KCZHLCAxKSAhPSAwKSB7CisgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgfQorCisgICAgICAgIC8qIGNvbXB1dGUgc21hbGxlc3QgcG9zc2libGUgRCA9IEVeLTEgbW9kIExDTShQLTEsIFEtMSkgKEZJUFMgMTg2LTQgwqdCLjMuMSBjcml0ZXJpb24gMyhiKSkgKi8KKyAgICAgICAgTUJFRFRMU19NUElfQ0hLKG1iZWR0bHNfbXBpX2djZCgmRywgJmN0eC0+UCwgJmN0eC0+USkpOworICAgICAgICBNQkVEVExTX01QSV9DSEsobWJlZHRsc19tcGlfZGl2X21waSgmTCwgTlVMTCwgJkgsICZHKSk7CisgICAgICAgIE1CRURUTFNfTVBJX0NISyhtYmVkdGxzX21waV9pbnZfbW9kKCZjdHgtPkQsICZjdHgtPkUsICZMKSk7CisKKyAgICAgICAgaWYgKG1iZWR0bHNfbXBpX2JpdGxlbigmY3R4LT5EKSA8PSAoKG5iaXRzICsgMSkgLyAyKSkgeyAgICAgIC8vIChGSVBTIDE4Ni00IMKnQi4zLjEgY3JpdGVyaW9uIDMoYSkpCisgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgfQorCisgICAgICAgIGJyZWFrOworICAgIH0gd2hpbGUgKDEpOworCisgICAgLyogUmVzdG9yZSBQLFEgKi8KKyAgICBNQkVEVExTX01QSV9DSEsobWJlZHRsc19tcGlfYWRkX2ludCgmY3R4LT5QLCAgJmN0eC0+UCwgMSkpOworICAgIE1CRURUTFNfTVBJX0NISyhtYmVkdGxzX21waV9hZGRfaW50KCZjdHgtPlEsICAmY3R4LT5RLCAxKSk7CisKKyAgICBNQkVEVExTX01QSV9DSEsobWJlZHRsc19tcGlfbXVsX21waSgmY3R4LT5OLCAmY3R4LT5QLCAmY3R4LT5RKSk7CisKKyAgICBjdHgtPmxlbiA9IG1iZWR0bHNfbXBpX3NpemUoJmN0eC0+Tik7CisKKyNpZiAhZGVmaW5lZChNQkVEVExTX1JTQV9OT19DUlQpCisgICAgLyoKKyAgICAgKiBEUCA9IEQgbW9kIChQIC0gMSkKKyAgICAgKiBEUSA9IEQgbW9kIChRIC0gMSkKKyAgICAgKiBRUCA9IFFeLTEgbW9kIFAKKyAgICAgKi8KKyAgICBNQkVEVExTX01QSV9DSEsobWJlZHRsc19yc2FfZGVkdWNlX2NydCgmY3R4LT5QLCAmY3R4LT5RLCAmY3R4LT5ELAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZjdHgtPkRQLCAmY3R4LT5EUSwgJmN0eC0+UVApKTsKKyNlbmRpZiAvKiBNQkVEVExTX1JTQV9OT19DUlQgKi8KKworICAgIC8qIERvdWJsZS1jaGVjayAqLworICAgIE1CRURUTFNfTVBJX0NISyhtYmVkdGxzX3JzYV9jaGVja19wcml2a2V5KGN0eCkpOworCitjbGVhbnVwOgorCisgICAgbWJlZHRsc19tcGlfZnJlZSgmSCk7CisgICAgbWJlZHRsc19tcGlfZnJlZSgmRyk7CisgICAgbWJlZHRsc19tcGlfZnJlZSgmTCk7CisKKyAgICBpZiAocmV0ICE9IDApIHsKKyAgICAgICAgbWJlZHRsc19yc2FfZnJlZShjdHgpOworCisgICAgICAgIGlmICgoLXJldCAmIH4weDdmKSA9PSAwKSB7CisgICAgICAgICAgICByZXQgPSBNQkVEVExTX0VSUk9SX0FERChNQkVEVExTX0VSUl9SU0FfS0VZX0dFTl9GQUlMRUQsIHJldCk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHJldDsKKyAgICB9CisKKyAgICByZXR1cm4gMDsKK30KKworI2VuZGlmIC8qIE1CRURUTFNfR0VOUFJJTUUgKi8KKworLyoKKyAqIENoZWNrIGEgcHVibGljIFJTQSBrZXkKKyAqLworaW50IG1iZWR0bHNfcnNhX2NoZWNrX3B1YmtleShjb25zdCBtYmVkdGxzX3JzYV9jb250ZXh0ICpjdHgpCit7CisgICAgaWYgKHJzYV9jaGVja19jb250ZXh0KGN0eCwgMCAvKiBwdWJsaWMgKi8sIDAgLyogbm8gYmxpbmRpbmcgKi8pICE9IDApIHsKKyAgICAgICAgcmV0dXJuIE1CRURUTFNfRVJSX1JTQV9LRVlfQ0hFQ0tfRkFJTEVEOworICAgIH0KKworICAgIGlmIChtYmVkdGxzX21waV9iaXRsZW4oJmN0eC0+TikgPCAxMjgpIHsKKyAgICAgICAgcmV0dXJuIE1CRURUTFNfRVJSX1JTQV9LRVlfQ0hFQ0tfRkFJTEVEOworICAgIH0KKworICAgIGlmIChtYmVkdGxzX21waV9nZXRfYml0KCZjdHgtPkUsIDApID09IDAgfHwKKyAgICAgICAgbWJlZHRsc19tcGlfYml0bGVuKCZjdHgtPkUpICAgICA8IDIgIHx8CisgICAgICAgIG1iZWR0bHNfbXBpX2NtcF9tcGkoJmN0eC0+RSwgJmN0eC0+TikgPj0gMCkgeworICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfUlNBX0tFWV9DSEVDS19GQUlMRUQ7CisgICAgfQorCisgICAgcmV0dXJuIDA7Cit9CisKKy8qCisgKiBDaGVjayBmb3IgdGhlIGNvbnNpc3RlbmN5IG9mIGFsbCBmaWVsZHMgaW4gYW4gUlNBIHByaXZhdGUga2V5IGNvbnRleHQKKyAqLworaW50IG1iZWR0bHNfcnNhX2NoZWNrX3ByaXZrZXkoY29uc3QgbWJlZHRsc19yc2FfY29udGV4dCAqY3R4KQoreworICAgIGlmIChtYmVkdGxzX3JzYV9jaGVja19wdWJrZXkoY3R4KSAhPSAwIHx8CisgICAgICAgIHJzYV9jaGVja19jb250ZXh0KGN0eCwgMSAvKiBwcml2YXRlICovLCAxIC8qIGJsaW5kaW5nICovKSAhPSAwKSB7CisgICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9SU0FfS0VZX0NIRUNLX0ZBSUxFRDsKKyAgICB9CisKKyAgICBpZiAobWJlZHRsc19yc2FfdmFsaWRhdGVfcGFyYW1zKCZjdHgtPk4sICZjdHgtPlAsICZjdHgtPlEsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmY3R4LT5ELCAmY3R4LT5FLCBOVUxMLCBOVUxMKSAhPSAwKSB7CisgICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9SU0FfS0VZX0NIRUNLX0ZBSUxFRDsKKyAgICB9CisKKyNpZiAhZGVmaW5lZChNQkVEVExTX1JTQV9OT19DUlQpCisgICAgZWxzZSBpZiAobWJlZHRsc19yc2FfdmFsaWRhdGVfY3J0KCZjdHgtPlAsICZjdHgtPlEsICZjdHgtPkQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZjdHgtPkRQLCAmY3R4LT5EUSwgJmN0eC0+UVApICE9IDApIHsKKyAgICAgICAgcmV0dXJuIE1CRURUTFNfRVJSX1JTQV9LRVlfQ0hFQ0tfRkFJTEVEOworICAgIH0KKyNlbmRpZgorCisgICAgcmV0dXJuIDA7Cit9CisKKy8qCisgKiBDaGVjayBpZiBjb250ZXh0cyBob2xkaW5nIGEgcHVibGljIGFuZCBwcml2YXRlIGtleSBtYXRjaAorICovCitpbnQgbWJlZHRsc19yc2FfY2hlY2tfcHViX3ByaXYoY29uc3QgbWJlZHRsc19yc2FfY29udGV4dCAqcHViLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IG1iZWR0bHNfcnNhX2NvbnRleHQgKnBydikKK3sKKyAgICBpZiAobWJlZHRsc19yc2FfY2hlY2tfcHVia2V5KHB1YikgICE9IDAgfHwKKyAgICAgICAgbWJlZHRsc19yc2FfY2hlY2tfcHJpdmtleShwcnYpICE9IDApIHsKKyAgICAgICAgcmV0dXJuIE1CRURUTFNfRVJSX1JTQV9LRVlfQ0hFQ0tfRkFJTEVEOworICAgIH0KKworICAgIGlmIChtYmVkdGxzX21waV9jbXBfbXBpKCZwdWItPk4sICZwcnYtPk4pICE9IDAgfHwKKyAgICAgICAgbWJlZHRsc19tcGlfY21wX21waSgmcHViLT5FLCAmcHJ2LT5FKSAhPSAwKSB7CisgICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9SU0FfS0VZX0NIRUNLX0ZBSUxFRDsKKyAgICB9CisKKyAgICByZXR1cm4gMDsKK30KKworLyoKKyAqIERvIGFuIFJTQSBwdWJsaWMga2V5IG9wZXJhdGlvbgorICovCitpbnQgbWJlZHRsc19yc2FfcHVibGljKG1iZWR0bHNfcnNhX2NvbnRleHQgKmN0eCwKKyAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdW5zaWduZWQgY2hhciAqaW5wdXQsCisgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGNoYXIgKm91dHB1dCkKK3sKKyAgICBpbnQgcmV0ID0gTUJFRFRMU19FUlJfRVJST1JfQ09SUlVQVElPTl9ERVRFQ1RFRDsKKyAgICBzaXplX3Qgb2xlbjsKKyAgICBtYmVkdGxzX21waSBUOworCisgICAgaWYgKHJzYV9jaGVja19jb250ZXh0KGN0eCwgMCAvKiBwdWJsaWMgKi8sIDAgLyogbm8gYmxpbmRpbmcgKi8pKSB7CisgICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9SU0FfQkFEX0lOUFVUX0RBVEE7CisgICAgfQorCisgICAgbWJlZHRsc19tcGlfaW5pdCgmVCk7CisKKyNpZiBkZWZpbmVkKE1CRURUTFNfVEhSRUFESU5HX0MpCisgICAgaWYgKChyZXQgPSBtYmVkdGxzX211dGV4X2xvY2soJmN0eC0+bXV0ZXgpKSAhPSAwKSB7CisgICAgICAgIHJldHVybiByZXQ7CisgICAgfQorI2VuZGlmCisKKyAgICBNQkVEVExTX01QSV9DSEsobWJlZHRsc19tcGlfcmVhZF9iaW5hcnkoJlQsIGlucHV0LCBjdHgtPmxlbikpOworCisgICAgaWYgKG1iZWR0bHNfbXBpX2NtcF9tcGkoJlQsICZjdHgtPk4pID49IDApIHsKKyAgICAgICAgcmV0ID0gTUJFRFRMU19FUlJfTVBJX0JBRF9JTlBVVF9EQVRBOworICAgICAgICBnb3RvIGNsZWFudXA7CisgICAgfQorCisgICAgb2xlbiA9IGN0eC0+bGVuOworICAgIE1CRURUTFNfTVBJX0NISyhtYmVkdGxzX21waV9leHBfbW9kKCZULCAmVCwgJmN0eC0+RSwgJmN0eC0+TiwgJmN0eC0+Uk4pKTsKKyAgICBNQkVEVExTX01QSV9DSEsobWJlZHRsc19tcGlfd3JpdGVfYmluYXJ5KCZULCBvdXRwdXQsIG9sZW4pKTsKKworY2xlYW51cDoKKyNpZiBkZWZpbmVkKE1CRURUTFNfVEhSRUFESU5HX0MpCisgICAgaWYgKG1iZWR0bHNfbXV0ZXhfdW5sb2NrKCZjdHgtPm11dGV4KSAhPSAwKSB7CisgICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9USFJFQURJTkdfTVVURVhfRVJST1I7CisgICAgfQorI2VuZGlmCisKKyAgICBtYmVkdGxzX21waV9mcmVlKCZUKTsKKworICAgIGlmIChyZXQgIT0gMCkgeworICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJPUl9BREQoTUJFRFRMU19FUlJfUlNBX1BVQkxJQ19GQUlMRUQsIHJldCk7CisgICAgfQorCisgICAgcmV0dXJuIDA7Cit9CisKKy8qCisgKiBHZW5lcmF0ZSBvciB1cGRhdGUgYmxpbmRpbmcgdmFsdWVzLCBzZWUgc2VjdGlvbiAxMCBvZjoKKyAqICBLT0NIRVIsIFBhdWwgQy4gVGltaW5nIGF0dGFja3Mgb24gaW1wbGVtZW50YXRpb25zIG9mIERpZmZpZS1IZWxsbWFuLCBSU0EsCisgKiAgRFNTLCBhbmQgb3RoZXIgc3lzdGVtcy4gSW4gOiBBZHZhbmNlcyBpbiBDcnlwdG9sb2d5LUNSWVBUTyc5Ni4gU3ByaW5nZXIKKyAqICBCZXJsaW4gSGVpZGVsYmVyZywgMTk5Ni4gcC4gMTA0LTExMy4KKyAqLworc3RhdGljIGludCByc2FfcHJlcGFyZV9ibGluZGluZyhtYmVkdGxzX3JzYV9jb250ZXh0ICpjdHgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCAoKmZfcm5nKSh2b2lkICosIHVuc2lnbmVkIGNoYXIgKiwgc2l6ZV90KSwgdm9pZCAqcF9ybmcpCit7CisgICAgaW50IHJldCwgY291bnQgPSAwOworICAgIG1iZWR0bHNfbXBpIFI7CisKKyAgICBtYmVkdGxzX21waV9pbml0KCZSKTsKKworICAgIGlmIChjdHgtPlZmLnAgIT0gTlVMTCkgeworICAgICAgICAvKiBXZSBhbHJlYWR5IGhhdmUgYmxpbmRpbmcgdmFsdWVzLCBqdXN0IHVwZGF0ZSB0aGVtIGJ5IHNxdWFyaW5nICovCisgICAgICAgIE1CRURUTFNfTVBJX0NISyhtYmVkdGxzX21waV9tdWxfbXBpKCZjdHgtPlZpLCAmY3R4LT5WaSwgJmN0eC0+VmkpKTsKKyAgICAgICAgTUJFRFRMU19NUElfQ0hLKG1iZWR0bHNfbXBpX21vZF9tcGkoJmN0eC0+VmksICZjdHgtPlZpLCAmY3R4LT5OKSk7CisgICAgICAgIE1CRURUTFNfTVBJX0NISyhtYmVkdGxzX21waV9tdWxfbXBpKCZjdHgtPlZmLCAmY3R4LT5WZiwgJmN0eC0+VmYpKTsKKyAgICAgICAgTUJFRFRMU19NUElfQ0hLKG1iZWR0bHNfbXBpX21vZF9tcGkoJmN0eC0+VmYsICZjdHgtPlZmLCAmY3R4LT5OKSk7CisKKyAgICAgICAgZ290byBjbGVhbnVwOworICAgIH0KKworICAgIC8qIFVuYmxpbmRpbmcgdmFsdWU6IFZmID0gcmFuZG9tIG51bWJlciwgaW52ZXJ0aWJsZSBtb2QgTiAqLworICAgIGRvIHsKKyAgICAgICAgaWYgKGNvdW50KysgPiAxMCkgeworICAgICAgICAgICAgcmV0ID0gTUJFRFRMU19FUlJfUlNBX1JOR19GQUlMRUQ7CisgICAgICAgICAgICBnb3RvIGNsZWFudXA7CisgICAgICAgIH0KKworICAgICAgICBNQkVEVExTX01QSV9DSEsobWJlZHRsc19tcGlfZmlsbF9yYW5kb20oJmN0eC0+VmYsIGN0eC0+bGVuIC0gMSwgZl9ybmcsIHBfcm5nKSk7CisKKyAgICAgICAgLyogQ29tcHV0ZSBWZl4tMSBhcyBSICogKFIgVmYpXi0xIHRvIGF2b2lkIGxlYWtzIGZyb20gaW52X21vZC4gKi8KKyAgICAgICAgTUJFRFRMU19NUElfQ0hLKG1iZWR0bHNfbXBpX2ZpbGxfcmFuZG9tKCZSLCBjdHgtPmxlbiAtIDEsIGZfcm5nLCBwX3JuZykpOworICAgICAgICBNQkVEVExTX01QSV9DSEsobWJlZHRsc19tcGlfbXVsX21waSgmY3R4LT5WaSwgJmN0eC0+VmYsICZSKSk7CisgICAgICAgIE1CRURUTFNfTVBJX0NISyhtYmVkdGxzX21waV9tb2RfbXBpKCZjdHgtPlZpLCAmY3R4LT5WaSwgJmN0eC0+TikpOworCisgICAgICAgIC8qIEF0IHRoaXMgcG9pbnQsIFZpIGlzIGludmVydGlibGUgbW9kIE4gaWYgYW5kIG9ubHkgaWYgYm90aCBWZiBhbmQgUgorICAgICAgICAgKiBhcmUgaW52ZXJ0aWJsZSBtb2QgTi4gSWYgb25lIG9mIHRoZW0gaXNuJ3QsIHdlIGRvbid0IG5lZWQgdG8ga25vdworICAgICAgICAgKiB3aGljaCBvbmUsIHdlIGp1c3QgbG9vcCBhbmQgY2hvb3NlIG5ldyB2YWx1ZXMgZm9yIGJvdGggb2YgdGhlbS4KKyAgICAgICAgICogKEVhY2ggaXRlcmF0aW9uIHN1Y2NlZWRzIHdpdGggb3ZlcndoZWxtaW5nIHByb2JhYmlsaXR5LikgKi8KKyAgICAgICAgcmV0ID0gbWJlZHRsc19tcGlfaW52X21vZCgmY3R4LT5WaSwgJmN0eC0+VmksICZjdHgtPk4pOworICAgICAgICBpZiAocmV0ICE9IDAgJiYgcmV0ICE9IE1CRURUTFNfRVJSX01QSV9OT1RfQUNDRVBUQUJMRSkgeworICAgICAgICAgICAgZ290byBjbGVhbnVwOworICAgICAgICB9CisKKyAgICB9IHdoaWxlIChyZXQgPT0gTUJFRFRMU19FUlJfTVBJX05PVF9BQ0NFUFRBQkxFKTsKKworICAgIC8qIEZpbmlzaCB0aGUgY29tcHV0YXRpb24gb2YgVmZeLTEgPSBSICogKFIgVmYpXi0xICovCisgICAgTUJFRFRMU19NUElfQ0hLKG1iZWR0bHNfbXBpX211bF9tcGkoJmN0eC0+VmksICZjdHgtPlZpLCAmUikpOworICAgIE1CRURUTFNfTVBJX0NISyhtYmVkdGxzX21waV9tb2RfbXBpKCZjdHgtPlZpLCAmY3R4LT5WaSwgJmN0eC0+TikpOworCisgICAgLyogQmxpbmRpbmcgdmFsdWU6IFZpID0gVmZeKC1lKSBtb2QgTgorICAgICAqIChWaSBhbHJlYWR5IGNvbnRhaW5zIFZmXi0xIGF0IHRoaXMgcG9pbnQpICovCisgICAgTUJFRFRMU19NUElfQ0hLKG1iZWR0bHNfbXBpX2V4cF9tb2QoJmN0eC0+VmksICZjdHgtPlZpLCAmY3R4LT5FLCAmY3R4LT5OLCAmY3R4LT5STikpOworCisKK2NsZWFudXA6CisgICAgbWJlZHRsc19tcGlfZnJlZSgmUik7CisKKyAgICByZXR1cm4gcmV0OworfQorCisvKgorICogVW5ibGluZAorICogVCA9IFQgKiBWZiBtb2QgTgorICovCitzdGF0aWMgaW50IHJzYV91bmJsaW5kKG1iZWR0bHNfbXBpICpULCBtYmVkdGxzX21waSAqVmYsIGNvbnN0IG1iZWR0bHNfbXBpICpOKQoreworICAgIGludCByZXQgPSBNQkVEVExTX0VSUl9FUlJPUl9DT1JSVVBUSU9OX0RFVEVDVEVEOworICAgIGNvbnN0IG1iZWR0bHNfbXBpX3VpbnQgbW0gPSBtYmVkdGxzX21waV9jb3JlX21vbnRtdWxfaW5pdChOLT5wKTsKKyAgICBjb25zdCBzaXplX3QgbmxpbWJzID0gTi0+bjsKKyAgICBjb25zdCBzaXplX3QgdGxpbWJzID0gbWJlZHRsc19tcGlfY29yZV9tb250bXVsX3dvcmtpbmdfbGltYnMobmxpbWJzKTsKKyAgICBtYmVkdGxzX21waSBSUiwgTV9UOworCisgICAgbWJlZHRsc19tcGlfaW5pdCgmUlIpOworICAgIG1iZWR0bHNfbXBpX2luaXQoJk1fVCk7CisKKyAgICBNQkVEVExTX01QSV9DSEsobWJlZHRsc19tcGlfY29yZV9nZXRfbW9udF9yMl91bnNhZmUoJlJSLCBOKSk7CisgICAgTUJFRFRMU19NUElfQ0hLKG1iZWR0bHNfbXBpX2dyb3coJk1fVCwgdGxpbWJzKSk7CisKKyAgICBNQkVEVExTX01QSV9DSEsobWJlZHRsc19tcGlfZ3JvdyhULCBubGltYnMpKTsKKyAgICBNQkVEVExTX01QSV9DSEsobWJlZHRsc19tcGlfZ3JvdyhWZiwgbmxpbWJzKSk7CisKKyAgICAvKiBUID0gVCAqIFZmIG1vZCBOCisgICAgICogUmVtaW5kZXI6IG1vbnRtdWwoQSwgQiwgTikgPSBBICogQiAqIFJeLTEgbW9kIE4KKyAgICAgKiBVc3VhbGx5IGJvdGggb3BlcmFuZHMgYXJlIG11bHRpcGxpZWQgYnkgUiBtb2QgTiBiZWZvcmVoYW5kIChieSBjYWxsaW5nCisgICAgICogYHRvX21vbnRfcmVwKClgIG9uIHRoZW0pLCB5aWVsZGluZyBhIHJlc3VsdCB0aGF0J3MgYWxzbyAqIFIgbW9kIE4gKGFrYQorICAgICAqICJpbiB0aGUgTW9udGdvbWVyeSBkb21haW4iKS4gSGVyZSB3ZSBvbmx5IG11bHRpcGx5IG9uZSBvcGVyYW5kIGJ5IFIgbW9kCisgICAgICogTiwgc28gdGhlIHJlc3VsdCBpcyBkaXJlY3RseSB3aGF0IHdlIHdhbnQgLSBubyBuZWVkIHRvIGNhbGwKKyAgICAgKiBgZnJvbV9tb250X3JlcCgpYCBvbiBpdC4gKi8KKyAgICBtYmVkdGxzX21waV9jb3JlX3RvX21vbnRfcmVwKFQtPnAsIFQtPnAsIE4tPnAsIG5saW1icywgbW0sIFJSLnAsIE1fVC5wKTsKKyAgICBtYmVkdGxzX21waV9jb3JlX21vbnRtdWwoVC0+cCwgVC0+cCwgVmYtPnAsIG5saW1icywgTi0+cCwgbmxpbWJzLCBtbSwgTV9ULnApOworCitjbGVhbnVwOgorCisgICAgbWJlZHRsc19tcGlfZnJlZSgmUlIpOworICAgIG1iZWR0bHNfbXBpX2ZyZWUoJk1fVCk7CisKKyAgICByZXR1cm4gcmV0OworfQorCisvKgorICogRXhwb25lbnQgYmxpbmRpbmcgc3VwcG9zZWQgdG8gcHJldmVudCBzaWRlLWNoYW5uZWwgYXR0YWNrcyB1c2luZyBtdWx0aXBsZQorICogdHJhY2VzIG9mIG1lYXN1cmVtZW50cyB0byByZWNvdmVyIHRoZSBSU0Ega2V5LiBUaGUgbW9yZSBjb2xsaXNpb25zIGFyZSB0aGVyZSwKKyAqIHRoZSBtb3JlIGJpdHMgb2YgdGhlIGtleSBjYW4gYmUgcmVjb3ZlcmVkLiBTZWUgWzNdLgorICoKKyAqIENvbGxlY3RpbmcgbiBjb2xsaXNpb25zIHdpdGggbSBiaXQgbG9uZyBibGluZGluZyB2YWx1ZSByZXF1aXJlcyAyXihtLW0vbikKKyAqIG9ic2VydmF0aW9ucyBvbiBhdmVyYWdlLgorICoKKyAqIEZvciBleGFtcGxlIHdpdGggMjggYnl0ZSBibGluZGluZyB0byBhY2hpZXZlIDIgY29sbGlzaW9ucyB0aGUgYWR2ZXJzYXJ5IGhhcworICogdG8gbWFrZSAyXjExMiBvYnNlcnZhdGlvbnMgb24gYXZlcmFnZS4KKyAqCisgKiAoV2l0aCB0aGUgY3VycmVudGx5IChhcyBvZiAyMDE3IEFwcmlsKSBrbm93biBiZXN0IGFsZ29yaXRobXMgYnJlYWtpbmcgMjA0OAorICogYml0IFJTQSByZXF1aXJlcyBhcHByb3hpbWF0ZWx5IGFzIG11Y2ggdGltZSBhcyB0cnlpbmcgb3V0IDJeMTEyIHJhbmRvbSBrZXlzLgorICogVGh1cyBpbiB0aGlzIHNlbnNlIHdpdGggMjggYnl0ZSBibGluZGluZyB0aGUgc2VjdXJpdHkgaXMgbm90IHJlZHVjZWQgYnkKKyAqIHNpZGUtY2hhbm5lbCBhdHRhY2tzIGxpa2UgdGhlIG9uZSBpbiBbM10pCisgKgorICogVGhpcyBjb3VudGVybWVhc3VyZSBkb2VzIG5vdCBoZWxwIGlmIHRoZSBrZXkgcmVjb3ZlcnkgaXMgcG9zc2libGUgd2l0aCBhCisgKiBzaW5nbGUgdHJhY2UuCisgKi8KKyNkZWZpbmUgUlNBX0VYUE9ORU5UX0JMSU5ESU5HIDI4CisKKy8qCisgKiBEbyBhbiBSU0EgcHJpdmF0ZSBrZXkgb3BlcmF0aW9uCisgKi8KK2ludCBtYmVkdGxzX3JzYV9wcml2YXRlKG1iZWR0bHNfcnNhX2NvbnRleHQgKmN0eCwKKyAgICAgICAgICAgICAgICAgICAgICAgIGludCAoKmZfcm5nKSh2b2lkICosIHVuc2lnbmVkIGNoYXIgKiwgc2l6ZV90KSwKKyAgICAgICAgICAgICAgICAgICAgICAgIHZvaWQgKnBfcm5nLAorICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdW5zaWduZWQgY2hhciAqaW5wdXQsCisgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBjaGFyICpvdXRwdXQpCit7CisgICAgaW50IHJldCA9IE1CRURUTFNfRVJSX0VSUk9SX0NPUlJVUFRJT05fREVURUNURUQ7CisgICAgc2l6ZV90IG9sZW47CisKKyAgICAvKiBUZW1wb3JhcnkgaG9sZGluZyB0aGUgcmVzdWx0ICovCisgICAgbWJlZHRsc19tcGkgVDsKKworICAgIC8qIFRlbXBvcmFyaWVzIGhvbGRpbmcgUC0xLCBRLTEgYW5kIHRoZQorICAgICAqIGV4cG9uZW50IGJsaW5kaW5nIGZhY3RvciwgcmVzcGVjdGl2ZWx5LiAqLworICAgIG1iZWR0bHNfbXBpIFAxLCBRMSwgUjsKKworI2lmICFkZWZpbmVkKE1CRURUTFNfUlNBX05PX0NSVCkKKyAgICAvKiBUZW1wb3JhcmllcyBob2xkaW5nIHRoZSByZXN1bHRzIG1vZCBwIHJlc3AuIG1vZCBxLiAqLworICAgIG1iZWR0bHNfbXBpIFRQLCBUUTsKKworICAgIC8qIFRlbXBvcmFyaWVzIGhvbGRpbmcgdGhlIGJsaW5kZWQgZXhwb25lbnRzIGZvcgorICAgICAqIHRoZSBtb2QgcCByZXNwLiBtb2QgcSBjb21wdXRhdGlvbiAoaWYgdXNlZCkuICovCisgICAgbWJlZHRsc19tcGkgRFBfYmxpbmQsIERRX2JsaW5kOworI2Vsc2UKKyAgICAvKiBUZW1wb3JhcnkgaG9sZGluZyB0aGUgYmxpbmRlZCBleHBvbmVudCAoaWYgdXNlZCkuICovCisgICAgbWJlZHRsc19tcGkgRF9ibGluZDsKKyNlbmRpZiAvKiBNQkVEVExTX1JTQV9OT19DUlQgKi8KKworICAgIC8qIFRlbXBvcmFyaWVzIGhvbGRpbmcgdGhlIGluaXRpYWwgaW5wdXQgYW5kIHRoZSBkb3VibGUKKyAgICAgKiBjaGVja2VkIHJlc3VsdDsgc2hvdWxkIGJlIHRoZSBzYW1lIGluIHRoZSBlbmQuICovCisgICAgbWJlZHRsc19tcGkgaW5wdXRfYmxpbmRlZCwgY2hlY2tfcmVzdWx0X2JsaW5kZWQ7CisKKyAgICBpZiAoZl9ybmcgPT0gTlVMTCkgeworICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfUlNBX0JBRF9JTlBVVF9EQVRBOworICAgIH0KKworICAgIGlmIChyc2FfY2hlY2tfY29udGV4dChjdHgsIDEgLyogcHJpdmF0ZSBrZXkgY2hlY2tzICovLAorICAgICAgICAgICAgICAgICAgICAgICAgICAxIC8qIGJsaW5kaW5nIG9uICAgICAgICAqLykgIT0gMCkgeworICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfUlNBX0JBRF9JTlBVVF9EQVRBOworICAgIH0KKworI2lmIGRlZmluZWQoTUJFRFRMU19USFJFQURJTkdfQykKKyAgICBpZiAoKHJldCA9IG1iZWR0bHNfbXV0ZXhfbG9jaygmY3R4LT5tdXRleCkpICE9IDApIHsKKyAgICAgICAgcmV0dXJuIHJldDsKKyAgICB9CisjZW5kaWYKKworICAgIC8qIE1QSSBJbml0aWFsaXphdGlvbiAqLworICAgIG1iZWR0bHNfbXBpX2luaXQoJlQpOworCisgICAgbWJlZHRsc19tcGlfaW5pdCgmUDEpOworICAgIG1iZWR0bHNfbXBpX2luaXQoJlExKTsKKyAgICBtYmVkdGxzX21waV9pbml0KCZSKTsKKworI2lmIGRlZmluZWQoTUJFRFRMU19SU0FfTk9fQ1JUKQorICAgIG1iZWR0bHNfbXBpX2luaXQoJkRfYmxpbmQpOworI2Vsc2UKKyAgICBtYmVkdGxzX21waV9pbml0KCZEUF9ibGluZCk7CisgICAgbWJlZHRsc19tcGlfaW5pdCgmRFFfYmxpbmQpOworI2VuZGlmCisKKyNpZiAhZGVmaW5lZChNQkVEVExTX1JTQV9OT19DUlQpCisgICAgbWJlZHRsc19tcGlfaW5pdCgmVFApOyBtYmVkdGxzX21waV9pbml0KCZUUSk7CisjZW5kaWYKKworICAgIG1iZWR0bHNfbXBpX2luaXQoJmlucHV0X2JsaW5kZWQpOworICAgIG1iZWR0bHNfbXBpX2luaXQoJmNoZWNrX3Jlc3VsdF9ibGluZGVkKTsKKworICAgIC8qIEVuZCBvZiBNUEkgaW5pdGlhbGl6YXRpb24gKi8KKworICAgIE1CRURUTFNfTVBJX0NISyhtYmVkdGxzX21waV9yZWFkX2JpbmFyeSgmVCwgaW5wdXQsIGN0eC0+bGVuKSk7CisgICAgaWYgKG1iZWR0bHNfbXBpX2NtcF9tcGkoJlQsICZjdHgtPk4pID49IDApIHsKKyAgICAgICAgcmV0ID0gTUJFRFRMU19FUlJfTVBJX0JBRF9JTlBVVF9EQVRBOworICAgICAgICBnb3RvIGNsZWFudXA7CisgICAgfQorCisgICAgLyoKKyAgICAgKiBCbGluZGluZworICAgICAqIFQgPSBUICogVmkgbW9kIE4KKyAgICAgKi8KKyAgICBNQkVEVExTX01QSV9DSEsocnNhX3ByZXBhcmVfYmxpbmRpbmcoY3R4LCBmX3JuZywgcF9ybmcpKTsKKyAgICBNQkVEVExTX01QSV9DSEsobWJlZHRsc19tcGlfbXVsX21waSgmVCwgJlQsICZjdHgtPlZpKSk7CisgICAgTUJFRFRMU19NUElfQ0hLKG1iZWR0bHNfbXBpX21vZF9tcGkoJlQsICZULCAmY3R4LT5OKSk7CisKKyAgICBNQkVEVExTX01QSV9DSEsobWJlZHRsc19tcGlfY29weSgmaW5wdXRfYmxpbmRlZCwgJlQpKTsKKworICAgIC8qCisgICAgICogRXhwb25lbnQgYmxpbmRpbmcKKyAgICAgKi8KKyAgICBNQkVEVExTX01QSV9DSEsobWJlZHRsc19tcGlfc3ViX2ludCgmUDEsICZjdHgtPlAsIDEpKTsKKyAgICBNQkVEVExTX01QSV9DSEsobWJlZHRsc19tcGlfc3ViX2ludCgmUTEsICZjdHgtPlEsIDEpKTsKKworI2lmIGRlZmluZWQoTUJFRFRMU19SU0FfTk9fQ1JUKQorICAgIC8qCisgICAgICogRF9ibGluZCA9ICggUCAtIDEgKSAqICggUSAtIDEgKSAqIFIgKyBECisgICAgICovCisgICAgTUJFRFRMU19NUElfQ0hLKG1iZWR0bHNfbXBpX2ZpbGxfcmFuZG9tKCZSLCBSU0FfRVhQT05FTlRfQkxJTkRJTkcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZfcm5nLCBwX3JuZykpOworICAgIE1CRURUTFNfTVBJX0NISyhtYmVkdGxzX21waV9tdWxfbXBpKCZEX2JsaW5kLCAmUDEsICZRMSkpOworICAgIE1CRURUTFNfTVBJX0NISyhtYmVkdGxzX21waV9tdWxfbXBpKCZEX2JsaW5kLCAmRF9ibGluZCwgJlIpKTsKKyAgICBNQkVEVExTX01QSV9DSEsobWJlZHRsc19tcGlfYWRkX21waSgmRF9ibGluZCwgJkRfYmxpbmQsICZjdHgtPkQpKTsKKyNlbHNlCisgICAgLyoKKyAgICAgKiBEUF9ibGluZCA9ICggUCAtIDEgKSAqIFIgKyBEUAorICAgICAqLworICAgIE1CRURUTFNfTVBJX0NISyhtYmVkdGxzX21waV9maWxsX3JhbmRvbSgmUiwgUlNBX0VYUE9ORU5UX0JMSU5ESU5HLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmX3JuZywgcF9ybmcpKTsKKyAgICBNQkVEVExTX01QSV9DSEsobWJlZHRsc19tcGlfbXVsX21waSgmRFBfYmxpbmQsICZQMSwgJlIpKTsKKyAgICBNQkVEVExTX01QSV9DSEsobWJlZHRsc19tcGlfYWRkX21waSgmRFBfYmxpbmQsICZEUF9ibGluZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmY3R4LT5EUCkpOworCisgICAgLyoKKyAgICAgKiBEUV9ibGluZCA9ICggUSAtIDEgKSAqIFIgKyBEUQorICAgICAqLworICAgIE1CRURUTFNfTVBJX0NISyhtYmVkdGxzX21waV9maWxsX3JhbmRvbSgmUiwgUlNBX0VYUE9ORU5UX0JMSU5ESU5HLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmX3JuZywgcF9ybmcpKTsKKyAgICBNQkVEVExTX01QSV9DSEsobWJlZHRsc19tcGlfbXVsX21waSgmRFFfYmxpbmQsICZRMSwgJlIpKTsKKyAgICBNQkVEVExTX01QSV9DSEsobWJlZHRsc19tcGlfYWRkX21waSgmRFFfYmxpbmQsICZEUV9ibGluZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmY3R4LT5EUSkpOworI2VuZGlmIC8qIE1CRURUTFNfUlNBX05PX0NSVCAqLworCisjaWYgZGVmaW5lZChNQkVEVExTX1JTQV9OT19DUlQpCisgICAgTUJFRFRMU19NUElfQ0hLKG1iZWR0bHNfbXBpX2V4cF9tb2QoJlQsICZULCAmRF9ibGluZCwgJmN0eC0+TiwgJmN0eC0+Uk4pKTsKKyNlbHNlCisgICAgLyoKKyAgICAgKiBGYXN0ZXIgZGVjcnlwdGlvbiB1c2luZyB0aGUgQ1JUCisgICAgICoKKyAgICAgKiBUUCA9IGlucHV0IF4gZFAgbW9kIFAKKyAgICAgKiBUUSA9IGlucHV0IF4gZFEgbW9kIFEKKyAgICAgKi8KKworICAgIE1CRURUTFNfTVBJX0NISyhtYmVkdGxzX21waV9leHBfbW9kKCZUUCwgJlQsICZEUF9ibGluZCwgJmN0eC0+UCwgJmN0eC0+UlApKTsKKyAgICBNQkVEVExTX01QSV9DSEsobWJlZHRsc19tcGlfZXhwX21vZCgmVFEsICZULCAmRFFfYmxpbmQsICZjdHgtPlEsICZjdHgtPlJRKSk7CisKKyAgICAvKgorICAgICAqIFQgPSAoVFAgLSBUUSkgKiAoUV4tMSBtb2QgUCkgbW9kIFAKKyAgICAgKi8KKyAgICBNQkVEVExTX01QSV9DSEsobWJlZHRsc19tcGlfc3ViX21waSgmVCwgJlRQLCAmVFEpKTsKKyAgICBNQkVEVExTX01QSV9DSEsobWJlZHRsc19tcGlfbXVsX21waSgmVFAsICZULCAmY3R4LT5RUCkpOworICAgIE1CRURUTFNfTVBJX0NISyhtYmVkdGxzX21waV9tb2RfbXBpKCZULCAmVFAsICZjdHgtPlApKTsKKworICAgIC8qCisgICAgICogVCA9IFRRICsgVCAqIFEKKyAgICAgKi8KKyAgICBNQkVEVExTX01QSV9DSEsobWJlZHRsc19tcGlfbXVsX21waSgmVFAsICZULCAmY3R4LT5RKSk7CisgICAgTUJFRFRMU19NUElfQ0hLKG1iZWR0bHNfbXBpX2FkZF9tcGkoJlQsICZUUSwgJlRQKSk7CisjZW5kaWYgLyogTUJFRFRMU19SU0FfTk9fQ1JUICovCisKKyAgICAvKiBWZXJpZnkgdGhlIHJlc3VsdCB0byBwcmV2ZW50IGdsaXRjaGluZyBhdHRhY2tzLiAqLworICAgIE1CRURUTFNfTVBJX0NISyhtYmVkdGxzX21waV9leHBfbW9kKCZjaGVja19yZXN1bHRfYmxpbmRlZCwgJlQsICZjdHgtPkUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJmN0eC0+TiwgJmN0eC0+Uk4pKTsKKyAgICBpZiAobWJlZHRsc19tcGlfY21wX21waSgmY2hlY2tfcmVzdWx0X2JsaW5kZWQsICZpbnB1dF9ibGluZGVkKSAhPSAwKSB7CisgICAgICAgIHJldCA9IE1CRURUTFNfRVJSX1JTQV9WRVJJRllfRkFJTEVEOworICAgICAgICBnb3RvIGNsZWFudXA7CisgICAgfQorCisgICAgLyoKKyAgICAgKiBVbmJsaW5kCisgICAgICogVCA9IFQgKiBWZiBtb2QgTgorICAgICAqLworICAgIE1CRURUTFNfTVBJX0NISyhyc2FfdW5ibGluZCgmVCwgJmN0eC0+VmYsICZjdHgtPk4pKTsKKworICAgIG9sZW4gPSBjdHgtPmxlbjsKKyAgICBNQkVEVExTX01QSV9DSEsobWJlZHRsc19tcGlfd3JpdGVfYmluYXJ5KCZULCBvdXRwdXQsIG9sZW4pKTsKKworY2xlYW51cDoKKyNpZiBkZWZpbmVkKE1CRURUTFNfVEhSRUFESU5HX0MpCisgICAgaWYgKG1iZWR0bHNfbXV0ZXhfdW5sb2NrKCZjdHgtPm11dGV4KSAhPSAwKSB7CisgICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9USFJFQURJTkdfTVVURVhfRVJST1I7CisgICAgfQorI2VuZGlmCisKKyAgICBtYmVkdGxzX21waV9mcmVlKCZQMSk7CisgICAgbWJlZHRsc19tcGlfZnJlZSgmUTEpOworICAgIG1iZWR0bHNfbXBpX2ZyZWUoJlIpOworCisjaWYgZGVmaW5lZChNQkVEVExTX1JTQV9OT19DUlQpCisgICAgbWJlZHRsc19tcGlfZnJlZSgmRF9ibGluZCk7CisjZWxzZQorICAgIG1iZWR0bHNfbXBpX2ZyZWUoJkRQX2JsaW5kKTsKKyAgICBtYmVkdGxzX21waV9mcmVlKCZEUV9ibGluZCk7CisjZW5kaWYKKworICAgIG1iZWR0bHNfbXBpX2ZyZWUoJlQpOworCisjaWYgIWRlZmluZWQoTUJFRFRMU19SU0FfTk9fQ1JUKQorICAgIG1iZWR0bHNfbXBpX2ZyZWUoJlRQKTsgbWJlZHRsc19tcGlfZnJlZSgmVFEpOworI2VuZGlmCisKKyAgICBtYmVkdGxzX21waV9mcmVlKCZjaGVja19yZXN1bHRfYmxpbmRlZCk7CisgICAgbWJlZHRsc19tcGlfZnJlZSgmaW5wdXRfYmxpbmRlZCk7CisKKyAgICBpZiAocmV0ICE9IDAgJiYgcmV0ID49IC0weDAwN2YpIHsKKyAgICAgICAgcmV0dXJuIE1CRURUTFNfRVJST1JfQUREKE1CRURUTFNfRVJSX1JTQV9QUklWQVRFX0ZBSUxFRCwgcmV0KTsKKyAgICB9CisKKyAgICByZXR1cm4gcmV0OworfQorCisjaWYgZGVmaW5lZChNQkVEVExTX1BLQ1MxX1YyMSkKKy8qKgorICogR2VuZXJhdGUgYW5kIGFwcGx5IHRoZSBNR0YxIG9wZXJhdGlvbiAoZnJvbSBQS0NTIzEgdjIuMSkgdG8gYSBidWZmZXIuCisgKgorICogXHBhcmFtIGRzdCAgICAgICBidWZmZXIgdG8gbWFzaworICogXHBhcmFtIGRsZW4gICAgICBsZW5ndGggb2YgZGVzdGluYXRpb24gYnVmZmVyCisgKiBccGFyYW0gc3JjICAgICAgIHNvdXJjZSBvZiB0aGUgbWFzayBnZW5lcmF0aW9uCisgKiBccGFyYW0gc2xlbiAgICAgIGxlbmd0aCBvZiB0aGUgc291cmNlIGJ1ZmZlcgorICogXHBhcmFtIG1kX2FsZyAgICBtZXNzYWdlIGRpZ2VzdCB0byB1c2UKKyAqLworc3RhdGljIGludCBtZ2ZfbWFzayh1bnNpZ25lZCBjaGFyICpkc3QsIHNpemVfdCBkbGVuLCB1bnNpZ25lZCBjaGFyICpzcmMsCisgICAgICAgICAgICAgICAgICAgIHNpemVfdCBzbGVuLCBtYmVkdGxzX21kX3R5cGVfdCBtZF9hbGcpCit7CisgICAgdW5zaWduZWQgY2hhciBjb3VudGVyWzRdOworICAgIHVuc2lnbmVkIGNoYXIgKnA7CisgICAgdW5zaWduZWQgaW50IGhsZW47CisgICAgc2l6ZV90IGksIHVzZV9sZW47CisgICAgdW5zaWduZWQgY2hhciBtYXNrW01CRURUTFNfTURfTUFYX1NJWkVdOworICAgIGludCByZXQgPSAwOworICAgIGNvbnN0IG1iZWR0bHNfbWRfaW5mb190ICptZF9pbmZvOworICAgIG1iZWR0bHNfbWRfY29udGV4dF90IG1kX2N0eDsKKworICAgIG1iZWR0bHNfbWRfaW5pdCgmbWRfY3R4KTsKKyAgICBtZF9pbmZvID0gbWJlZHRsc19tZF9pbmZvX2Zyb21fdHlwZShtZF9hbGcpOworICAgIGlmIChtZF9pbmZvID09IE5VTEwpIHsKKyAgICAgICAgcmV0dXJuIE1CRURUTFNfRVJSX1JTQV9CQURfSU5QVVRfREFUQTsKKyAgICB9CisKKyAgICBtYmVkdGxzX21kX2luaXQoJm1kX2N0eCk7CisgICAgaWYgKChyZXQgPSBtYmVkdGxzX21kX3NldHVwKCZtZF9jdHgsIG1kX2luZm8sIDApKSAhPSAwKSB7CisgICAgICAgIGdvdG8gZXhpdDsKKyAgICB9CisKKyAgICBobGVuID0gbWJlZHRsc19tZF9nZXRfc2l6ZShtZF9pbmZvKTsKKworICAgIG1lbXNldChtYXNrLCAwLCBzaXplb2YobWFzaykpOworICAgIG1lbXNldChjb3VudGVyLCAwLCA0KTsKKworICAgIC8qIEdlbmVyYXRlIGFuZCBhcHBseSBkYk1hc2sgKi8KKyAgICBwID0gZHN0OworCisgICAgd2hpbGUgKGRsZW4gPiAwKSB7CisgICAgICAgIHVzZV9sZW4gPSBobGVuOworICAgICAgICBpZiAoZGxlbiA8IGhsZW4pIHsKKyAgICAgICAgICAgIHVzZV9sZW4gPSBkbGVuOworICAgICAgICB9CisKKyAgICAgICAgaWYgKChyZXQgPSBtYmVkdGxzX21kX3N0YXJ0cygmbWRfY3R4KSkgIT0gMCkgeworICAgICAgICAgICAgZ290byBleGl0OworICAgICAgICB9CisgICAgICAgIGlmICgocmV0ID0gbWJlZHRsc19tZF91cGRhdGUoJm1kX2N0eCwgc3JjLCBzbGVuKSkgIT0gMCkgeworICAgICAgICAgICAgZ290byBleGl0OworICAgICAgICB9CisgICAgICAgIGlmICgocmV0ID0gbWJlZHRsc19tZF91cGRhdGUoJm1kX2N0eCwgY291bnRlciwgNCkpICE9IDApIHsKKyAgICAgICAgICAgIGdvdG8gZXhpdDsKKyAgICAgICAgfQorICAgICAgICBpZiAoKHJldCA9IG1iZWR0bHNfbWRfZmluaXNoKCZtZF9jdHgsIG1hc2spKSAhPSAwKSB7CisgICAgICAgICAgICBnb3RvIGV4aXQ7CisgICAgICAgIH0KKworICAgICAgICBmb3IgKGkgPSAwOyBpIDwgdXNlX2xlbjsgKytpKSB7CisgICAgICAgICAgICAqcCsrIF49IG1hc2tbaV07CisgICAgICAgIH0KKworICAgICAgICBjb3VudGVyWzNdKys7CisKKyAgICAgICAgZGxlbiAtPSB1c2VfbGVuOworICAgIH0KKworZXhpdDoKKyAgICBtYmVkdGxzX3BsYXRmb3JtX3plcm9pemUobWFzaywgc2l6ZW9mKG1hc2spKTsKKyAgICBtYmVkdGxzX21kX2ZyZWUoJm1kX2N0eCk7CisKKyAgICByZXR1cm4gcmV0OworfQorCisvKioKKyAqIEdlbmVyYXRlIEhhc2goTScpIGFzIGluIFJGQyA4MDE3IHBhZ2UgNDMgcG9pbnRzIDUgYW5kIDYuCisgKgorICogXHBhcmFtIGhhc2ggICAgICB0aGUgaW5wdXQgaGFzaAorICogXHBhcmFtIGhsZW4gICAgICBsZW5ndGggb2YgdGhlIGlucHV0IGhhc2gKKyAqIFxwYXJhbSBzYWx0ICAgICAgdGhlIGlucHV0IHNhbHQKKyAqIFxwYXJhbSBzbGVuICAgICAgbGVuZ3RoIG9mIHRoZSBpbnB1dCBzYWx0CisgKiBccGFyYW0gb3V0ICAgICAgIHRoZSBvdXRwdXQgYnVmZmVyIC0gbXVzdCBiZSBsYXJnZSBlbm91Z2ggZm9yIFxwIG1kX2FsZworICogXHBhcmFtIG1kX2FsZyAgICBtZXNzYWdlIGRpZ2VzdCB0byB1c2UKKyAqLworc3RhdGljIGludCBoYXNoX21wcmltZShjb25zdCB1bnNpZ25lZCBjaGFyICpoYXNoLCBzaXplX3QgaGxlbiwKKyAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdW5zaWduZWQgY2hhciAqc2FsdCwgc2l6ZV90IHNsZW4sCisgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGNoYXIgKm91dCwgbWJlZHRsc19tZF90eXBlX3QgbWRfYWxnKQoreworICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgemVyb3NbOF0gPSB7IDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAgfTsKKworICAgIG1iZWR0bHNfbWRfY29udGV4dF90IG1kX2N0eDsKKyAgICBpbnQgcmV0ID0gTUJFRFRMU19FUlJfRVJST1JfQ09SUlVQVElPTl9ERVRFQ1RFRDsKKworICAgIGNvbnN0IG1iZWR0bHNfbWRfaW5mb190ICptZF9pbmZvID0gbWJlZHRsc19tZF9pbmZvX2Zyb21fdHlwZShtZF9hbGcpOworICAgIGlmIChtZF9pbmZvID09IE5VTEwpIHsKKyAgICAgICAgcmV0dXJuIE1CRURUTFNfRVJSX1JTQV9CQURfSU5QVVRfREFUQTsKKyAgICB9CisKKyAgICBtYmVkdGxzX21kX2luaXQoJm1kX2N0eCk7CisgICAgaWYgKChyZXQgPSBtYmVkdGxzX21kX3NldHVwKCZtZF9jdHgsIG1kX2luZm8sIDApKSAhPSAwKSB7CisgICAgICAgIGdvdG8gZXhpdDsKKyAgICB9CisgICAgaWYgKChyZXQgPSBtYmVkdGxzX21kX3N0YXJ0cygmbWRfY3R4KSkgIT0gMCkgeworICAgICAgICBnb3RvIGV4aXQ7CisgICAgfQorICAgIGlmICgocmV0ID0gbWJlZHRsc19tZF91cGRhdGUoJm1kX2N0eCwgemVyb3MsIHNpemVvZih6ZXJvcykpKSAhPSAwKSB7CisgICAgICAgIGdvdG8gZXhpdDsKKyAgICB9CisgICAgaWYgKChyZXQgPSBtYmVkdGxzX21kX3VwZGF0ZSgmbWRfY3R4LCBoYXNoLCBobGVuKSkgIT0gMCkgeworICAgICAgICBnb3RvIGV4aXQ7CisgICAgfQorICAgIGlmICgocmV0ID0gbWJlZHRsc19tZF91cGRhdGUoJm1kX2N0eCwgc2FsdCwgc2xlbikpICE9IDApIHsKKyAgICAgICAgZ290byBleGl0OworICAgIH0KKyAgICBpZiAoKHJldCA9IG1iZWR0bHNfbWRfZmluaXNoKCZtZF9jdHgsIG91dCkpICE9IDApIHsKKyAgICAgICAgZ290byBleGl0OworICAgIH0KKworZXhpdDoKKyAgICBtYmVkdGxzX21kX2ZyZWUoJm1kX2N0eCk7CisKKyAgICByZXR1cm4gcmV0OworfQorCisvKioKKyAqIENvbXB1dGUgYSBoYXNoLgorICoKKyAqIFxwYXJhbSBtZF9hbGcgICAgYWxnb3JpdGhtIHRvIHVzZQorICogXHBhcmFtIGlucHV0ICAgICBpbnB1dCBtZXNzYWdlIHRvIGhhc2gKKyAqIFxwYXJhbSBpbGVuICAgICAgaW5wdXQgbGVuZ3RoCisgKiBccGFyYW0gb3V0cHV0ICAgIHRoZSBvdXRwdXQgYnVmZmVyIC0gbXVzdCBiZSBsYXJnZSBlbm91Z2ggZm9yIFxwIG1kX2FsZworICovCitzdGF0aWMgaW50IGNvbXB1dGVfaGFzaChtYmVkdGxzX21kX3R5cGVfdCBtZF9hbGcsCisgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1bnNpZ25lZCBjaGFyICppbnB1dCwgc2l6ZV90IGlsZW4sCisgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBjaGFyICpvdXRwdXQpCit7CisgICAgY29uc3QgbWJlZHRsc19tZF9pbmZvX3QgKm1kX2luZm87CisKKyAgICBtZF9pbmZvID0gbWJlZHRsc19tZF9pbmZvX2Zyb21fdHlwZShtZF9hbGcpOworICAgIGlmIChtZF9pbmZvID09IE5VTEwpIHsKKyAgICAgICAgcmV0dXJuIE1CRURUTFNfRVJSX1JTQV9CQURfSU5QVVRfREFUQTsKKyAgICB9CisKKyAgICByZXR1cm4gbWJlZHRsc19tZChtZF9pbmZvLCBpbnB1dCwgaWxlbiwgb3V0cHV0KTsKK30KKyNlbmRpZiAvKiBNQkVEVExTX1BLQ1MxX1YyMSAqLworCisjaWYgZGVmaW5lZChNQkVEVExTX1BLQ1MxX1YyMSkKKy8qCisgKiBJbXBsZW1lbnRhdGlvbiBvZiB0aGUgUEtDUyMxIHYyLjEgUlNBRVMtT0FFUC1FTkNSWVBUIGZ1bmN0aW9uCisgKi8KK2ludCBtYmVkdGxzX3JzYV9yc2Flc19vYWVwX2VuY3J5cHQobWJlZHRsc19yc2FfY29udGV4dCAqY3R4LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgKCpmX3JuZykodm9pZCAqLCB1bnNpZ25lZCBjaGFyICosIHNpemVfdCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZvaWQgKnBfcm5nLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1bnNpZ25lZCBjaGFyICpsYWJlbCwgc2l6ZV90IGxhYmVsX2xlbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IGlsZW4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgKmlucHV0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBjaGFyICpvdXRwdXQpCit7CisgICAgc2l6ZV90IG9sZW47CisgICAgaW50IHJldCA9IE1CRURUTFNfRVJSX0VSUk9SX0NPUlJVUFRJT05fREVURUNURUQ7CisgICAgdW5zaWduZWQgY2hhciAqcCA9IG91dHB1dDsKKyAgICB1bnNpZ25lZCBpbnQgaGxlbjsKKworICAgIGlmIChmX3JuZyA9PSBOVUxMKSB7CisgICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9SU0FfQkFEX0lOUFVUX0RBVEE7CisgICAgfQorCisgICAgaGxlbiA9IG1iZWR0bHNfbWRfZ2V0X3NpemVfZnJvbV90eXBlKChtYmVkdGxzX21kX3R5cGVfdCkgY3R4LT5oYXNoX2lkKTsKKyAgICBpZiAoaGxlbiA9PSAwKSB7CisgICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9SU0FfQkFEX0lOUFVUX0RBVEE7CisgICAgfQorCisgICAgb2xlbiA9IGN0eC0+bGVuOworCisgICAgLyogZmlyc3QgY29tcGFyaXNvbiBjaGVja3MgZm9yIG92ZXJmbG93ICovCisgICAgaWYgKGlsZW4gKyAyICogaGxlbiArIDIgPCBpbGVuIHx8IG9sZW4gPCBpbGVuICsgMiAqIGhsZW4gKyAyKSB7CisgICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9SU0FfQkFEX0lOUFVUX0RBVEE7CisgICAgfQorCisgICAgbWVtc2V0KG91dHB1dCwgMCwgb2xlbik7CisKKyAgICAqcCsrID0gMDsKKworICAgIC8qIEdlbmVyYXRlIGEgcmFuZG9tIG9jdGV0IHN0cmluZyBzZWVkICovCisgICAgaWYgKChyZXQgPSBmX3JuZyhwX3JuZywgcCwgaGxlbikpICE9IDApIHsKKyAgICAgICAgcmV0dXJuIE1CRURUTFNfRVJST1JfQUREKE1CRURUTFNfRVJSX1JTQV9STkdfRkFJTEVELCByZXQpOworICAgIH0KKworICAgIHAgKz0gaGxlbjsKKworICAgIC8qIENvbnN0cnVjdCBEQiAqLworICAgIHJldCA9IGNvbXB1dGVfaGFzaCgobWJlZHRsc19tZF90eXBlX3QpIGN0eC0+aGFzaF9pZCwgbGFiZWwsIGxhYmVsX2xlbiwgcCk7CisgICAgaWYgKHJldCAhPSAwKSB7CisgICAgICAgIHJldHVybiByZXQ7CisgICAgfQorICAgIHAgKz0gaGxlbjsKKyAgICBwICs9IG9sZW4gLSAyICogaGxlbiAtIDIgLSBpbGVuOworICAgICpwKysgPSAxOworICAgIGlmIChpbGVuICE9IDApIHsKKyAgICAgICAgbWVtY3B5KHAsIGlucHV0LCBpbGVuKTsKKyAgICB9CisKKyAgICAvKiBtYXNrZWREQjogQXBwbHkgZGJNYXNrIHRvIERCICovCisgICAgaWYgKChyZXQgPSBtZ2ZfbWFzayhvdXRwdXQgKyBobGVuICsgMSwgb2xlbiAtIGhsZW4gLSAxLCBvdXRwdXQgKyAxLCBobGVuLAorICAgICAgICAgICAgICAgICAgICAgICAgKG1iZWR0bHNfbWRfdHlwZV90KSBjdHgtPmhhc2hfaWQpKSAhPSAwKSB7CisgICAgICAgIHJldHVybiByZXQ7CisgICAgfQorCisgICAgLyogbWFza2VkU2VlZDogQXBwbHkgc2VlZE1hc2sgdG8gc2VlZCAqLworICAgIGlmICgocmV0ID0gbWdmX21hc2sob3V0cHV0ICsgMSwgaGxlbiwgb3V0cHV0ICsgaGxlbiArIDEsIG9sZW4gLSBobGVuIC0gMSwKKyAgICAgICAgICAgICAgICAgICAgICAgIChtYmVkdGxzX21kX3R5cGVfdCkgY3R4LT5oYXNoX2lkKSkgIT0gMCkgeworICAgICAgICByZXR1cm4gcmV0OworICAgIH0KKworICAgIHJldHVybiBtYmVkdGxzX3JzYV9wdWJsaWMoY3R4LCBvdXRwdXQsIG91dHB1dCk7Cit9CisjZW5kaWYgLyogTUJFRFRMU19QS0NTMV9WMjEgKi8KKworI2lmIGRlZmluZWQoTUJFRFRMU19QS0NTMV9WMTUpCisvKgorICogSW1wbGVtZW50YXRpb24gb2YgdGhlIFBLQ1MjMSB2Mi4xIFJTQUVTLVBLQ1MxLVYxXzUtRU5DUllQVCBmdW5jdGlvbgorICovCitpbnQgbWJlZHRsc19yc2FfcnNhZXNfcGtjczFfdjE1X2VuY3J5cHQobWJlZHRsc19yc2FfY29udGV4dCAqY3R4LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCAoKmZfcm5nKSh2b2lkICosIHVuc2lnbmVkIGNoYXIgKiwgc2l6ZV90KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2b2lkICpwX3JuZywgc2l6ZV90IGlsZW4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdW5zaWduZWQgY2hhciAqaW5wdXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgY2hhciAqb3V0cHV0KQoreworICAgIHNpemVfdCBuYl9wYWQsIG9sZW47CisgICAgaW50IHJldCA9IE1CRURUTFNfRVJSX0VSUk9SX0NPUlJVUFRJT05fREVURUNURUQ7CisgICAgdW5zaWduZWQgY2hhciAqcCA9IG91dHB1dDsKKworICAgIG9sZW4gPSBjdHgtPmxlbjsKKworICAgIC8qIGZpcnN0IGNvbXBhcmlzb24gY2hlY2tzIGZvciBvdmVyZmxvdyAqLworICAgIGlmIChpbGVuICsgMTEgPCBpbGVuIHx8IG9sZW4gPCBpbGVuICsgMTEpIHsKKyAgICAgICAgcmV0dXJuIE1CRURUTFNfRVJSX1JTQV9CQURfSU5QVVRfREFUQTsKKyAgICB9CisKKyAgICBuYl9wYWQgPSBvbGVuIC0gMyAtIGlsZW47CisKKyAgICAqcCsrID0gMDsKKworICAgIGlmIChmX3JuZyA9PSBOVUxMKSB7CisgICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9SU0FfQkFEX0lOUFVUX0RBVEE7CisgICAgfQorCisgICAgKnArKyA9IE1CRURUTFNfUlNBX0NSWVBUOworCisgICAgd2hpbGUgKG5iX3BhZC0tID4gMCkgeworICAgICAgICBpbnQgcm5nX2RsID0gMTAwOworCisgICAgICAgIGRvIHsKKyAgICAgICAgICAgIHJldCA9IGZfcm5nKHBfcm5nLCBwLCAxKTsKKyAgICAgICAgfSB3aGlsZSAoKnAgPT0gMCAmJiAtLXJuZ19kbCAmJiByZXQgPT0gMCk7CisKKyAgICAgICAgLyogQ2hlY2sgaWYgUk5HIGZhaWxlZCB0byBnZW5lcmF0ZSBkYXRhICovCisgICAgICAgIGlmIChybmdfZGwgPT0gMCB8fCByZXQgIT0gMCkgeworICAgICAgICAgICAgcmV0dXJuIE1CRURUTFNfRVJST1JfQUREKE1CRURUTFNfRVJSX1JTQV9STkdfRkFJTEVELCByZXQpOworICAgICAgICB9CisKKyAgICAgICAgcCsrOworICAgIH0KKworICAgICpwKysgPSAwOworICAgIGlmIChpbGVuICE9IDApIHsKKyAgICAgICAgbWVtY3B5KHAsIGlucHV0LCBpbGVuKTsKKyAgICB9CisKKyAgICByZXR1cm4gbWJlZHRsc19yc2FfcHVibGljKGN0eCwgb3V0cHV0LCBvdXRwdXQpOworfQorI2VuZGlmIC8qIE1CRURUTFNfUEtDUzFfVjE1ICovCisKKy8qCisgKiBBZGQgdGhlIG1lc3NhZ2UgcGFkZGluZywgdGhlbiBkbyBhbiBSU0Egb3BlcmF0aW9uCisgKi8KK2ludCBtYmVkdGxzX3JzYV9wa2NzMV9lbmNyeXB0KG1iZWR0bHNfcnNhX2NvbnRleHQgKmN0eCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCAoKmZfcm5nKSh2b2lkICosIHVuc2lnbmVkIGNoYXIgKiwgc2l6ZV90KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZvaWQgKnBfcm5nLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IGlsZW4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1bnNpZ25lZCBjaGFyICppbnB1dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGNoYXIgKm91dHB1dCkKK3sKKyAgICBzd2l0Y2ggKGN0eC0+cGFkZGluZykgeworI2lmIGRlZmluZWQoTUJFRFRMU19QS0NTMV9WMTUpCisgICAgICAgIGNhc2UgTUJFRFRMU19SU0FfUEtDU19WMTU6CisgICAgICAgICAgICByZXR1cm4gbWJlZHRsc19yc2FfcnNhZXNfcGtjczFfdjE1X2VuY3J5cHQoY3R4LCBmX3JuZywgcF9ybmcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWxlbiwgaW5wdXQsIG91dHB1dCk7CisjZW5kaWYKKworI2lmIGRlZmluZWQoTUJFRFRMU19QS0NTMV9WMjEpCisgICAgICAgIGNhc2UgTUJFRFRMU19SU0FfUEtDU19WMjE6CisgICAgICAgICAgICByZXR1cm4gbWJlZHRsc19yc2FfcnNhZXNfb2FlcF9lbmNyeXB0KGN0eCwgZl9ybmcsIHBfcm5nLCBOVUxMLCAwLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbGVuLCBpbnB1dCwgb3V0cHV0KTsKKyNlbmRpZgorCisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfUlNBX0lOVkFMSURfUEFERElORzsKKyAgICB9Cit9CisKKyNpZiBkZWZpbmVkKE1CRURUTFNfUEtDUzFfVjIxKQorLyoKKyAqIEltcGxlbWVudGF0aW9uIG9mIHRoZSBQS0NTIzEgdjIuMSBSU0FFUy1PQUVQLURFQ1JZUFQgZnVuY3Rpb24KKyAqLworaW50IG1iZWR0bHNfcnNhX3JzYWVzX29hZXBfZGVjcnlwdChtYmVkdGxzX3JzYV9jb250ZXh0ICpjdHgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCAoKmZfcm5nKSh2b2lkICosIHVuc2lnbmVkIGNoYXIgKiwgc2l6ZV90KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdm9pZCAqcF9ybmcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgKmxhYmVsLCBzaXplX3QgbGFiZWxfbGVuLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgKm9sZW4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgKmlucHV0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBjaGFyICpvdXRwdXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBvdXRwdXRfbWF4X2xlbikKK3sKKyAgICBpbnQgcmV0ID0gTUJFRFRMU19FUlJfRVJST1JfQ09SUlVQVElPTl9ERVRFQ1RFRDsKKyAgICBzaXplX3QgaWxlbiwgaSwgcGFkX2xlbjsKKyAgICB1bnNpZ25lZCBjaGFyICpwOworICAgIG1iZWR0bHNfY3RfY29uZGl0aW9uX3QgYmFkLCBpbl9wYWRkaW5nOworICAgIHVuc2lnbmVkIGNoYXIgYnVmW01CRURUTFNfTVBJX01BWF9TSVpFXTsKKyAgICB1bnNpZ25lZCBjaGFyIGxoYXNoW01CRURUTFNfTURfTUFYX1NJWkVdOworICAgIHVuc2lnbmVkIGludCBobGVuOworCisgICAgLyoKKyAgICAgKiBQYXJhbWV0ZXJzIHNhbml0eSBjaGVja3MKKyAgICAgKi8KKyAgICBpZiAoY3R4LT5wYWRkaW5nICE9IE1CRURUTFNfUlNBX1BLQ1NfVjIxKSB7CisgICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9SU0FfQkFEX0lOUFVUX0RBVEE7CisgICAgfQorCisgICAgaWxlbiA9IGN0eC0+bGVuOworCisgICAgaWYgKGlsZW4gPCAxNiB8fCBpbGVuID4gc2l6ZW9mKGJ1ZikpIHsKKyAgICAgICAgcmV0dXJuIE1CRURUTFNfRVJSX1JTQV9CQURfSU5QVVRfREFUQTsKKyAgICB9CisKKyAgICBobGVuID0gbWJlZHRsc19tZF9nZXRfc2l6ZV9mcm9tX3R5cGUoKG1iZWR0bHNfbWRfdHlwZV90KSBjdHgtPmhhc2hfaWQpOworICAgIGlmIChobGVuID09IDApIHsKKyAgICAgICAgcmV0dXJuIE1CRURUTFNfRVJSX1JTQV9CQURfSU5QVVRfREFUQTsKKyAgICB9CisKKyAgICAvLyBjaGVja2luZyBmb3IgaW50ZWdlciB1bmRlcmZsb3cKKyAgICBpZiAoMiAqIGhsZW4gKyAyID4gaWxlbikgeworICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfUlNBX0JBRF9JTlBVVF9EQVRBOworICAgIH0KKworICAgIC8qCisgICAgICogUlNBIG9wZXJhdGlvbgorICAgICAqLworICAgIHJldCA9IG1iZWR0bHNfcnNhX3ByaXZhdGUoY3R4LCBmX3JuZywgcF9ybmcsIGlucHV0LCBidWYpOworCisgICAgaWYgKHJldCAhPSAwKSB7CisgICAgICAgIGdvdG8gY2xlYW51cDsKKyAgICB9CisKKyAgICAvKgorICAgICAqIFVubWFzayBkYXRhIGFuZCBnZW5lcmF0ZSBsSGFzaAorICAgICAqLworICAgIC8qIHNlZWQ6IEFwcGx5IHNlZWRNYXNrIHRvIG1hc2tlZFNlZWQgKi8KKyAgICBpZiAoKHJldCA9IG1nZl9tYXNrKGJ1ZiArIDEsIGhsZW4sIGJ1ZiArIGhsZW4gKyAxLCBpbGVuIC0gaGxlbiAtIDEsCisgICAgICAgICAgICAgICAgICAgICAgICAobWJlZHRsc19tZF90eXBlX3QpIGN0eC0+aGFzaF9pZCkpICE9IDAgfHwKKyAgICAgICAgLyogREI6IEFwcGx5IGRiTWFzayB0byBtYXNrZWREQiAqLworICAgICAgICAocmV0ID0gbWdmX21hc2soYnVmICsgaGxlbiArIDEsIGlsZW4gLSBobGVuIC0gMSwgYnVmICsgMSwgaGxlbiwKKyAgICAgICAgICAgICAgICAgICAgICAgIChtYmVkdGxzX21kX3R5cGVfdCkgY3R4LT5oYXNoX2lkKSkgIT0gMCkgeworICAgICAgICBnb3RvIGNsZWFudXA7CisgICAgfQorCisgICAgLyogR2VuZXJhdGUgbEhhc2ggKi8KKyAgICByZXQgPSBjb21wdXRlX2hhc2goKG1iZWR0bHNfbWRfdHlwZV90KSBjdHgtPmhhc2hfaWQsCisgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsLCBsYWJlbF9sZW4sIGxoYXNoKTsKKyAgICBpZiAocmV0ICE9IDApIHsKKyAgICAgICAgZ290byBjbGVhbnVwOworICAgIH0KKworICAgIC8qCisgICAgICogQ2hlY2sgY29udGVudHMsIGluICJjb25zdGFudC10aW1lIgorICAgICAqLworICAgIHAgPSBidWY7CisKKyAgICBiYWQgPSBtYmVkdGxzX2N0X2Jvb2woKnArKyk7IC8qIEZpcnN0IGJ5dGUgbXVzdCBiZSAwICovCisKKyAgICBwICs9IGhsZW47IC8qIFNraXAgc2VlZCAqLworCisgICAgLyogQ2hlY2sgbEhhc2ggKi8KKyAgICBiYWQgPSBtYmVkdGxzX2N0X2Jvb2xfb3IoYmFkLCBtYmVkdGxzX2N0X2Jvb2wobWJlZHRsc19jdF9tZW1jbXAobGhhc2gsIHAsIGhsZW4pKSk7CisgICAgcCArPSBobGVuOworCisgICAgLyogR2V0IHplcm8tcGFkZGluZyBsZW4sIGJ1dCBhbHdheXMgcmVhZCB0aWxsIGVuZCBvZiBidWZmZXIKKyAgICAgKiAobWludXMgb25lLCBmb3IgdGhlIDAxIGJ5dGUpICovCisgICAgcGFkX2xlbiA9IDA7CisgICAgaW5fcGFkZGluZyA9IE1CRURUTFNfQ1RfVFJVRTsKKyAgICBmb3IgKGkgPSAwOyBpIDwgaWxlbiAtIDIgKiBobGVuIC0gMjsgaSsrKSB7CisgICAgICAgIGluX3BhZGRpbmcgPSBtYmVkdGxzX2N0X2Jvb2xfYW5kKGluX3BhZGRpbmcsIG1iZWR0bHNfY3RfdWludF9lcShwW2ldLCAwKSk7CisgICAgICAgIHBhZF9sZW4gKz0gbWJlZHRsc19jdF91aW50X2lmX2Vsc2VfMChpbl9wYWRkaW5nLCAxKTsKKyAgICB9CisKKyAgICBwICs9IHBhZF9sZW47CisgICAgYmFkID0gbWJlZHRsc19jdF9ib29sX29yKGJhZCwgbWJlZHRsc19jdF91aW50X25lKCpwKyssIDB4MDEpKTsKKworICAgIC8qCisgICAgICogVGhlIG9ubHkgaW5mb3JtYXRpb24gImxlYWtlZCIgaXMgd2hldGhlciB0aGUgcGFkZGluZyB3YXMgY29ycmVjdCBvciBub3QKKyAgICAgKiAoZWcsIG5vIGRhdGEgaXMgY29waWVkIGlmIGl0IHdhcyBub3QgY29ycmVjdCkuIFRoaXMgbWVldHMgdGhlCisgICAgICogcmVjb21tZW5kYXRpb25zIGluIFBLQ1MjMSB2Mi4yOiBhbiBvcHBvbmVudCBjYW5ub3QgZGlzdGluZ3Vpc2ggYmV0d2VlbgorICAgICAqIHRoZSBkaWZmZXJlbnQgZXJyb3IgY29uZGl0aW9ucy4KKyAgICAgKi8KKyAgICBpZiAoYmFkICE9IE1CRURUTFNfQ1RfRkFMU0UpIHsKKyAgICAgICAgcmV0ID0gTUJFRFRMU19FUlJfUlNBX0lOVkFMSURfUEFERElORzsKKyAgICAgICAgZ290byBjbGVhbnVwOworICAgIH0KKworICAgIGlmIChpbGVuIC0gKChzaXplX3QpIChwIC0gYnVmKSkgPiBvdXRwdXRfbWF4X2xlbikgeworICAgICAgICByZXQgPSBNQkVEVExTX0VSUl9SU0FfT1VUUFVUX1RPT19MQVJHRTsKKyAgICAgICAgZ290byBjbGVhbnVwOworICAgIH0KKworICAgICpvbGVuID0gaWxlbiAtICgoc2l6ZV90KSAocCAtIGJ1ZikpOworICAgIGlmICgqb2xlbiAhPSAwKSB7CisgICAgICAgIG1lbWNweShvdXRwdXQsIHAsICpvbGVuKTsKKyAgICB9CisgICAgcmV0ID0gMDsKKworY2xlYW51cDoKKyAgICBtYmVkdGxzX3BsYXRmb3JtX3plcm9pemUoYnVmLCBzaXplb2YoYnVmKSk7CisgICAgbWJlZHRsc19wbGF0Zm9ybV96ZXJvaXplKGxoYXNoLCBzaXplb2YobGhhc2gpKTsKKworICAgIHJldHVybiByZXQ7Cit9CisjZW5kaWYgLyogTUJFRFRMU19QS0NTMV9WMjEgKi8KKworI2lmIGRlZmluZWQoTUJFRFRMU19QS0NTMV9WMTUpCisvKgorICogSW1wbGVtZW50YXRpb24gb2YgdGhlIFBLQ1MjMSB2Mi4xIFJTQUVTLVBLQ1MxLVYxXzUtREVDUllQVCBmdW5jdGlvbgorICovCitpbnQgbWJlZHRsc19yc2FfcnNhZXNfcGtjczFfdjE1X2RlY3J5cHQobWJlZHRsc19yc2FfY29udGV4dCAqY3R4LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCAoKmZfcm5nKSh2b2lkICosIHVuc2lnbmVkIGNoYXIgKiwgc2l6ZV90KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2b2lkICpwX3JuZywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgKm9sZW4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdW5zaWduZWQgY2hhciAqaW5wdXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgY2hhciAqb3V0cHV0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBvdXRwdXRfbWF4X2xlbikKK3sKKyAgICBpbnQgcmV0ID0gTUJFRFRMU19FUlJfRVJST1JfQ09SUlVQVElPTl9ERVRFQ1RFRDsKKyAgICBzaXplX3QgaWxlbjsKKyAgICB1bnNpZ25lZCBjaGFyIGJ1ZltNQkVEVExTX01QSV9NQVhfU0laRV07CisKKyAgICBpbGVuID0gY3R4LT5sZW47CisKKyAgICBpZiAoY3R4LT5wYWRkaW5nICE9IE1CRURUTFNfUlNBX1BLQ1NfVjE1KSB7CisgICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9SU0FfQkFEX0lOUFVUX0RBVEE7CisgICAgfQorCisgICAgaWYgKGlsZW4gPCAxNiB8fCBpbGVuID4gc2l6ZW9mKGJ1ZikpIHsKKyAgICAgICAgcmV0dXJuIE1CRURUTFNfRVJSX1JTQV9CQURfSU5QVVRfREFUQTsKKyAgICB9CisKKyAgICByZXQgPSBtYmVkdGxzX3JzYV9wcml2YXRlKGN0eCwgZl9ybmcsIHBfcm5nLCBpbnB1dCwgYnVmKTsKKworICAgIGlmIChyZXQgIT0gMCkgeworICAgICAgICBnb3RvIGNsZWFudXA7CisgICAgfQorCisgICAgcmV0ID0gbWJlZHRsc19jdF9yc2Flc19wa2NzMV92MTVfdW5wYWRkaW5nKGJ1ZiwgaWxlbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3V0cHV0LCBvdXRwdXRfbWF4X2xlbiwgb2xlbik7CisKK2NsZWFudXA6CisgICAgbWJlZHRsc19wbGF0Zm9ybV96ZXJvaXplKGJ1Ziwgc2l6ZW9mKGJ1ZikpOworCisgICAgcmV0dXJuIHJldDsKK30KKyNlbmRpZiAvKiBNQkVEVExTX1BLQ1MxX1YxNSAqLworCisvKgorICogRG8gYW4gUlNBIG9wZXJhdGlvbiwgdGhlbiByZW1vdmUgdGhlIG1lc3NhZ2UgcGFkZGluZworICovCitpbnQgbWJlZHRsc19yc2FfcGtjczFfZGVjcnlwdChtYmVkdGxzX3JzYV9jb250ZXh0ICpjdHgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgKCpmX3JuZykodm9pZCAqLCB1bnNpZ25lZCBjaGFyICosIHNpemVfdCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2b2lkICpwX3JuZywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCAqb2xlbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgKmlucHV0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgY2hhciAqb3V0cHV0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IG91dHB1dF9tYXhfbGVuKQoreworICAgIHN3aXRjaCAoY3R4LT5wYWRkaW5nKSB7CisjaWYgZGVmaW5lZChNQkVEVExTX1BLQ1MxX1YxNSkKKyAgICAgICAgY2FzZSBNQkVEVExTX1JTQV9QS0NTX1YxNToKKyAgICAgICAgICAgIHJldHVybiBtYmVkdGxzX3JzYV9yc2Flc19wa2NzMV92MTVfZGVjcnlwdChjdHgsIGZfcm5nLCBwX3JuZywgb2xlbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnB1dCwgb3V0cHV0LCBvdXRwdXRfbWF4X2xlbik7CisjZW5kaWYKKworI2lmIGRlZmluZWQoTUJFRFRMU19QS0NTMV9WMjEpCisgICAgICAgIGNhc2UgTUJFRFRMU19SU0FfUEtDU19WMjE6CisgICAgICAgICAgICByZXR1cm4gbWJlZHRsc19yc2FfcnNhZXNfb2FlcF9kZWNyeXB0KGN0eCwgZl9ybmcsIHBfcm5nLCBOVUxMLCAwLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbGVuLCBpbnB1dCwgb3V0cHV0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvdXRwdXRfbWF4X2xlbik7CisjZW5kaWYKKworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgcmV0dXJuIE1CRURUTFNfRVJSX1JTQV9JTlZBTElEX1BBRERJTkc7CisgICAgfQorfQorCisjaWYgZGVmaW5lZChNQkVEVExTX1BLQ1MxX1YyMSkKK3N0YXRpYyBpbnQgcnNhX3JzYXNzYV9wc3Nfc2lnbl9ub19tb2RlX2NoZWNrKG1iZWR0bHNfcnNhX2NvbnRleHQgKmN0eCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCAoKmZfcm5nKSh2b2lkICosIHVuc2lnbmVkIGNoYXIgKiwgc2l6ZV90KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZvaWQgKnBfcm5nLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWJlZHRsc19tZF90eXBlX3QgbWRfYWxnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50IGhhc2hsZW4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1bnNpZ25lZCBjaGFyICpoYXNoLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IHNhbHRsZW4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBjaGFyICpzaWcpCit7CisgICAgc2l6ZV90IG9sZW47CisgICAgdW5zaWduZWQgY2hhciAqcCA9IHNpZzsKKyAgICB1bnNpZ25lZCBjaGFyICpzYWx0ID0gTlVMTDsKKyAgICBzaXplX3Qgc2xlbiwgbWluX3NsZW4sIGhsZW4sIG9mZnNldCA9IDA7CisgICAgaW50IHJldCA9IE1CRURUTFNfRVJSX0VSUk9SX0NPUlJVUFRJT05fREVURUNURUQ7CisgICAgc2l6ZV90IG1zYjsKKyAgICBtYmVkdGxzX21kX3R5cGVfdCBoYXNoX2lkOworCisgICAgaWYgKChtZF9hbGcgIT0gTUJFRFRMU19NRF9OT05FIHx8IGhhc2hsZW4gIT0gMCkgJiYgaGFzaCA9PSBOVUxMKSB7CisgICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9SU0FfQkFEX0lOUFVUX0RBVEE7CisgICAgfQorCisgICAgaWYgKGZfcm5nID09IE5VTEwpIHsKKyAgICAgICAgcmV0dXJuIE1CRURUTFNfRVJSX1JTQV9CQURfSU5QVVRfREFUQTsKKyAgICB9CisKKyAgICBvbGVuID0gY3R4LT5sZW47CisKKyAgICBpZiAobWRfYWxnICE9IE1CRURUTFNfTURfTk9ORSkgeworICAgICAgICAvKiBHYXRoZXIgbGVuZ3RoIG9mIGhhc2ggdG8gc2lnbiAqLworICAgICAgICBzaXplX3QgZXhwX2hhc2hsZW4gPSBtYmVkdGxzX21kX2dldF9zaXplX2Zyb21fdHlwZShtZF9hbGcpOworICAgICAgICBpZiAoZXhwX2hhc2hsZW4gPT0gMCkgeworICAgICAgICAgICAgcmV0dXJuIE1CRURUTFNfRVJSX1JTQV9CQURfSU5QVVRfREFUQTsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChoYXNobGVuICE9IGV4cF9oYXNobGVuKSB7CisgICAgICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfUlNBX0JBRF9JTlBVVF9EQVRBOworICAgICAgICB9CisgICAgfQorCisgICAgaGFzaF9pZCA9IChtYmVkdGxzX21kX3R5cGVfdCkgY3R4LT5oYXNoX2lkOworICAgIGlmIChoYXNoX2lkID09IE1CRURUTFNfTURfTk9ORSkgeworICAgICAgICBoYXNoX2lkID0gbWRfYWxnOworICAgIH0KKyAgICBobGVuID0gbWJlZHRsc19tZF9nZXRfc2l6ZV9mcm9tX3R5cGUoaGFzaF9pZCk7CisgICAgaWYgKGhsZW4gPT0gMCkgeworICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfUlNBX0JBRF9JTlBVVF9EQVRBOworICAgIH0KKworICAgIGlmIChzYWx0bGVuID09IE1CRURUTFNfUlNBX1NBTFRfTEVOX0FOWSkgeworICAgICAgICAvKiBDYWxjdWxhdGUgdGhlIGxhcmdlc3QgcG9zc2libGUgc2FsdCBsZW5ndGgsIHVwIHRvIHRoZSBoYXNoIHNpemUuCisgICAgICAgICAqIE5vcm1hbGx5IHRoaXMgaXMgdGhlIGhhc2ggbGVuZ3RoLCB3aGljaCBpcyB0aGUgbWF4aW11bSBzYWx0IGxlbmd0aAorICAgICAgICAgKiBhY2NvcmRpbmcgdG8gRklQUyAxODUtNCDCpzUuNSAoZSkgYW5kIGNvbW1vbiBwcmFjdGljZS4gSWYgdGhlcmUgaXMgbm90CisgICAgICAgICAqIGVub3VnaCByb29tLCB1c2UgdGhlIG1heGltdW0gc2FsdCBsZW5ndGggdGhhdCBmaXRzLiBUaGUgY29uc3RyYWludCBpcworICAgICAgICAgKiB0aGF0IHRoZSBoYXNoIGxlbmd0aCBwbHVzIHRoZSBzYWx0IGxlbmd0aCBwbHVzIDIgYnl0ZXMgbXVzdCBiZSBhdCBtb3N0CisgICAgICAgICAqIHRoZSBrZXkgbGVuZ3RoLiBUaGlzIGNvbXBsaWVzIHdpdGggRklQUyAxODYtNCDCpzUuNSAoZSkgYW5kIFJGQyA4MDE3CisgICAgICAgICAqIChQS0NTIzEgdjIuMikgwqc5LjEuMSBzdGVwIDMuICovCisgICAgICAgIG1pbl9zbGVuID0gaGxlbiAtIDI7CisgICAgICAgIGlmIChvbGVuIDwgaGxlbiArIG1pbl9zbGVuICsgMikgeworICAgICAgICAgICAgcmV0dXJuIE1CRURUTFNfRVJSX1JTQV9CQURfSU5QVVRfREFUQTsKKyAgICAgICAgfSBlbHNlIGlmIChvbGVuID49IGhsZW4gKyBobGVuICsgMikgeworICAgICAgICAgICAgc2xlbiA9IGhsZW47CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBzbGVuID0gb2xlbiAtIGhsZW4gLSAyOworICAgICAgICB9CisgICAgfSBlbHNlIGlmICgoc2FsdGxlbiA8IDApIHx8IChzYWx0bGVuICsgaGxlbiArIDIgPiBvbGVuKSkgeworICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfUlNBX0JBRF9JTlBVVF9EQVRBOworICAgIH0gZWxzZSB7CisgICAgICAgIHNsZW4gPSAoc2l6ZV90KSBzYWx0bGVuOworICAgIH0KKworICAgIG1lbXNldChzaWcsIDAsIG9sZW4pOworCisgICAgLyogTm90ZTogRU1TQS1QU1MgZW5jb2RpbmcgaXMgb3ZlciB0aGUgbGVuZ3RoIG9mIE4gLSAxIGJpdHMgKi8KKyAgICBtc2IgPSBtYmVkdGxzX21waV9iaXRsZW4oJmN0eC0+TikgLSAxOworICAgIHAgKz0gb2xlbiAtIGhsZW4gLSBzbGVuIC0gMjsKKyAgICAqcCsrID0gMHgwMTsKKworICAgIC8qIEdlbmVyYXRlIHNhbHQgb2YgbGVuZ3RoIHNsZW4gaW4gcGxhY2UgaW4gdGhlIGVuY29kZWQgbWVzc2FnZSAqLworICAgIHNhbHQgPSBwOworICAgIGlmICgocmV0ID0gZl9ybmcocF9ybmcsIHNhbHQsIHNsZW4pKSAhPSAwKSB7CisgICAgICAgIHJldHVybiBNQkVEVExTX0VSUk9SX0FERChNQkVEVExTX0VSUl9SU0FfUk5HX0ZBSUxFRCwgcmV0KTsKKyAgICB9CisKKyAgICBwICs9IHNsZW47CisKKyAgICAvKiBHZW5lcmF0ZSBIID0gSGFzaCggTScgKSAqLworICAgIHJldCA9IGhhc2hfbXByaW1lKGhhc2gsIGhhc2hsZW4sIHNhbHQsIHNsZW4sIHAsIGhhc2hfaWQpOworICAgIGlmIChyZXQgIT0gMCkgeworICAgICAgICByZXR1cm4gcmV0OworICAgIH0KKworICAgIC8qIENvbXBlbnNhdGUgZm9yIGJvdW5kYXJ5IGNvbmRpdGlvbiB3aGVuIGFwcGx5aW5nIG1hc2sgKi8KKyAgICBpZiAobXNiICUgOCA9PSAwKSB7CisgICAgICAgIG9mZnNldCA9IDE7CisgICAgfQorCisgICAgLyogbWFza2VkREI6IEFwcGx5IGRiTWFzayB0byBEQiAqLworICAgIHJldCA9IG1nZl9tYXNrKHNpZyArIG9mZnNldCwgb2xlbiAtIGhsZW4gLSAxIC0gb2Zmc2V0LCBwLCBobGVuLCBoYXNoX2lkKTsKKyAgICBpZiAocmV0ICE9IDApIHsKKyAgICAgICAgcmV0dXJuIHJldDsKKyAgICB9CisKKyAgICBtc2IgPSBtYmVkdGxzX21waV9iaXRsZW4oJmN0eC0+TikgLSAxOworICAgIHNpZ1swXSAmPSAweEZGID4+IChvbGVuICogOCAtIG1zYik7CisKKyAgICBwICs9IGhsZW47CisgICAgKnArKyA9IDB4QkM7CisKKyAgICByZXR1cm4gbWJlZHRsc19yc2FfcHJpdmF0ZShjdHgsIGZfcm5nLCBwX3JuZywgc2lnLCBzaWcpOworfQorCitzdGF0aWMgaW50IHJzYV9yc2Fzc2FfcHNzX3NpZ24obWJlZHRsc19yc2FfY29udGV4dCAqY3R4LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCAoKmZfcm5nKSh2b2lkICosIHVuc2lnbmVkIGNoYXIgKiwgc2l6ZV90KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2b2lkICpwX3JuZywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYmVkdGxzX21kX3R5cGVfdCBtZF9hbGcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50IGhhc2hsZW4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdW5zaWduZWQgY2hhciAqaGFzaCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgc2FsdGxlbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBjaGFyICpzaWcpCit7CisgICAgaWYgKGN0eC0+cGFkZGluZyAhPSBNQkVEVExTX1JTQV9QS0NTX1YyMSkgeworICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfUlNBX0JBRF9JTlBVVF9EQVRBOworICAgIH0KKyAgICBpZiAoKGN0eC0+aGFzaF9pZCA9PSBNQkVEVExTX01EX05PTkUpICYmIChtZF9hbGcgPT0gTUJFRFRMU19NRF9OT05FKSkgeworICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfUlNBX0JBRF9JTlBVVF9EQVRBOworICAgIH0KKyAgICByZXR1cm4gcnNhX3JzYXNzYV9wc3Nfc2lnbl9ub19tb2RlX2NoZWNrKGN0eCwgZl9ybmcsIHBfcm5nLCBtZF9hbGcsIGhhc2hsZW4sIGhhc2gsIHNhbHRsZW4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaWcpOworfQorCitpbnQgbWJlZHRsc19yc2FfcnNhc3NhX3Bzc19zaWduX25vX21vZGVfY2hlY2sobWJlZHRsc19yc2FfY29udGV4dCAqY3R4LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCAoKmZfcm5nKSh2b2lkICosIHVuc2lnbmVkIGNoYXIgKiwgc2l6ZV90KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2b2lkICpwX3JuZywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYmVkdGxzX21kX3R5cGVfdCBtZF9hbGcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50IGhhc2hsZW4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdW5zaWduZWQgY2hhciAqaGFzaCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBjaGFyICpzaWcpCit7CisgICAgcmV0dXJuIHJzYV9yc2Fzc2FfcHNzX3NpZ25fbm9fbW9kZV9jaGVjayhjdHgsIGZfcm5nLCBwX3JuZywgbWRfYWxnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFzaGxlbiwgaGFzaCwgTUJFRFRMU19SU0FfU0FMVF9MRU5fQU5ZLCBzaWcpOworfQorCisvKgorICogSW1wbGVtZW50YXRpb24gb2YgdGhlIFBLQ1MjMSB2Mi4xIFJTQVNTQS1QU1MtU0lHTiBmdW5jdGlvbiB3aXRoCisgKiB0aGUgb3B0aW9uIHRvIHBhc3MgaW4gdGhlIHNhbHQgbGVuZ3RoLgorICovCitpbnQgbWJlZHRsc19yc2FfcnNhc3NhX3Bzc19zaWduX2V4dChtYmVkdGxzX3JzYV9jb250ZXh0ICpjdHgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgKCpmX3JuZykodm9pZCAqLCB1bnNpZ25lZCBjaGFyICosIHNpemVfdCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2b2lkICpwX3JuZywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1iZWR0bHNfbWRfdHlwZV90IG1kX2FsZywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCBoYXNobGVuLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdW5zaWduZWQgY2hhciAqaGFzaCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBzYWx0bGVuLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgY2hhciAqc2lnKQoreworICAgIHJldHVybiByc2FfcnNhc3NhX3Bzc19zaWduKGN0eCwgZl9ybmcsIHBfcm5nLCBtZF9hbGcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFzaGxlbiwgaGFzaCwgc2FsdGxlbiwgc2lnKTsKK30KKworLyoKKyAqIEltcGxlbWVudGF0aW9uIG9mIHRoZSBQS0NTIzEgdjIuMSBSU0FTU0EtUFNTLVNJR04gZnVuY3Rpb24KKyAqLworaW50IG1iZWR0bHNfcnNhX3JzYXNzYV9wc3Nfc2lnbihtYmVkdGxzX3JzYV9jb250ZXh0ICpjdHgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCAoKmZfcm5nKSh2b2lkICosIHVuc2lnbmVkIGNoYXIgKiwgc2l6ZV90KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdm9pZCAqcF9ybmcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1iZWR0bHNfbWRfdHlwZV90IG1kX2FsZywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50IGhhc2hsZW4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgKmhhc2gsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGNoYXIgKnNpZykKK3sKKyAgICByZXR1cm4gcnNhX3JzYXNzYV9wc3Nfc2lnbihjdHgsIGZfcm5nLCBwX3JuZywgbWRfYWxnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhc2hsZW4sIGhhc2gsIE1CRURUTFNfUlNBX1NBTFRfTEVOX0FOWSwgc2lnKTsKK30KKyNlbmRpZiAvKiBNQkVEVExTX1BLQ1MxX1YyMSAqLworCisjaWYgZGVmaW5lZChNQkVEVExTX1BLQ1MxX1YxNSkKKy8qCisgKiBJbXBsZW1lbnRhdGlvbiBvZiB0aGUgUEtDUyMxIHYyLjEgUlNBU1NBLVBLQ1MxLVYxXzUtU0lHTiBmdW5jdGlvbgorICovCisKKy8qIENvbnN0cnVjdCBhIFBLQ1MgdjEuNSBlbmNvZGluZyBvZiBhIGhhc2hlZCBtZXNzYWdlCisgKgorICogVGhpcyBpcyB1c2VkIGJvdGggZm9yIHNpZ25hdHVyZSBnZW5lcmF0aW9uIGFuZCB2ZXJpZmljYXRpb24uCisgKgorICogUGFyYW1ldGVyczoKKyAqIC0gbWRfYWxnOiAgSWRlbnRpZmllcyB0aGUgaGFzaCBhbGdvcml0aG0gdXNlZCB0byBnZW5lcmF0ZSB0aGUgZ2l2ZW4gaGFzaDsKKyAqICAgICAgICAgICAgTUJFRFRMU19NRF9OT05FIGlmIHJhdyBkYXRhIGlzIHNpZ25lZC4KKyAqIC0gaGFzaGxlbjogTGVuZ3RoIG9mIGhhc2guIE11c3QgbWF0Y2ggbWRfYWxnIGlmIHRoYXQncyBub3QgTk9ORS4KKyAqIC0gaGFzaDogICAgQnVmZmVyIGNvbnRhaW5pbmcgdGhlIGhhc2hlZCBtZXNzYWdlIG9yIHRoZSByYXcgZGF0YS4KKyAqIC0gZHN0X2xlbjogTGVuZ3RoIG9mIHRoZSBlbmNvZGVkIG1lc3NhZ2UuCisgKiAtIGRzdDogICAgIEJ1ZmZlciB0byBob2xkIHRoZSBlbmNvZGVkIG1lc3NhZ2UuCisgKgorICogQXNzdW1wdGlvbnM6CisgKiAtIGhhc2ggaGFzIHNpemUgaGFzaGxlbi4KKyAqIC0gZHN0IHBvaW50cyB0byBhIGJ1ZmZlciBvZiBzaXplIGF0IGxlYXN0IGRzdF9sZW4uCisgKgorICovCitzdGF0aWMgaW50IHJzYV9yc2Fzc2FfcGtjczFfdjE1X2VuY29kZShtYmVkdGxzX21kX3R5cGVfdCBtZF9hbGcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgaGFzaGxlbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgKmhhc2gsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgZHN0X2xlbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGNoYXIgKmRzdCkKK3sKKyAgICBzaXplX3Qgb2lkX3NpemUgID0gMDsKKyAgICBzaXplX3QgbmJfcGFkICAgID0gZHN0X2xlbjsKKyAgICB1bnNpZ25lZCBjaGFyICpwID0gZHN0OworICAgIGNvbnN0IGNoYXIgKm9pZCAgPSBOVUxMOworCisgICAgLyogQXJlIHdlIHNpZ25pbmcgaGFzaGVkIG9yIHJhdyBkYXRhPyAqLworICAgIGlmIChtZF9hbGcgIT0gTUJFRFRMU19NRF9OT05FKSB7CisgICAgICAgIHVuc2lnbmVkIGNoYXIgbWRfc2l6ZSA9IG1iZWR0bHNfbWRfZ2V0X3NpemVfZnJvbV90eXBlKG1kX2FsZyk7CisgICAgICAgIGlmIChtZF9zaXplID09IDApIHsKKyAgICAgICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9SU0FfQkFEX0lOUFVUX0RBVEE7CisgICAgICAgIH0KKworICAgICAgICBpZiAobWJlZHRsc19vaWRfZ2V0X29pZF9ieV9tZChtZF9hbGcsICZvaWQsICZvaWRfc2l6ZSkgIT0gMCkgeworICAgICAgICAgICAgcmV0dXJuIE1CRURUTFNfRVJSX1JTQV9CQURfSU5QVVRfREFUQTsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChoYXNobGVuICE9IG1kX3NpemUpIHsKKyAgICAgICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9SU0FfQkFEX0lOUFVUX0RBVEE7CisgICAgICAgIH0KKworICAgICAgICAvKiBEb3VibGUtY2hlY2sgdGhhdCA4ICsgaGFzaGxlbiArIG9pZF9zaXplIGNhbiBiZSB1c2VkIGFzIGEKKyAgICAgICAgICogMS1ieXRlIEFTTi4xIGxlbmd0aCBlbmNvZGluZyBhbmQgdGhhdCB0aGVyZSdzIG5vIG92ZXJmbG93LiAqLworICAgICAgICBpZiAoOCArIGhhc2hsZW4gKyBvaWRfc2l6ZSAgPj0gMHg4MCAgICAgICAgIHx8CisgICAgICAgICAgICAxMCArIGhhc2hsZW4gICAgICAgICAgICA8ICBoYXNobGVuICAgICAgfHwKKyAgICAgICAgICAgIDEwICsgaGFzaGxlbiArIG9pZF9zaXplIDwgIDEwICsgaGFzaGxlbikgeworICAgICAgICAgICAgcmV0dXJuIE1CRURUTFNfRVJSX1JTQV9CQURfSU5QVVRfREFUQTsKKyAgICAgICAgfQorCisgICAgICAgIC8qCisgICAgICAgICAqIFN0YXRpYyBib3VuZHMgY2hlY2s6CisgICAgICAgICAqIC0gTmVlZCAxMCBieXRlcyBmb3IgZml2ZSB0YWctbGVuZ3RoIHBhaXJzLgorICAgICAgICAgKiAgIChJbnNpc3Qgb24gMS1ieXRlIGxlbmd0aCBlbmNvZGluZ3MgdG8gcHJvdGVjdCBhZ2FpbnN0IHZhcmlhbnRzIG9mCisgICAgICAgICAqICAgIEJsZWljaGVuYmFjaGVyJ3MgZm9yZ2VyeSBhdHRhY2sgYWdhaW5zdCBsYXggUEtDUyMxdjEuNSB2ZXJpZmljYXRpb24pCisgICAgICAgICAqIC0gTmVlZCBoYXNobGVuIGJ5dGVzIGZvciBoYXNoCisgICAgICAgICAqIC0gTmVlZCBvaWRfc2l6ZSBieXRlcyBmb3IgaGFzaCBhbGcgT0lELgorICAgICAgICAgKi8KKyAgICAgICAgaWYgKG5iX3BhZCA8IDEwICsgaGFzaGxlbiArIG9pZF9zaXplKSB7CisgICAgICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfUlNBX0JBRF9JTlBVVF9EQVRBOworICAgICAgICB9CisgICAgICAgIG5iX3BhZCAtPSAxMCArIGhhc2hsZW4gKyBvaWRfc2l6ZTsKKyAgICB9IGVsc2UgeworICAgICAgICBpZiAobmJfcGFkIDwgaGFzaGxlbikgeworICAgICAgICAgICAgcmV0dXJuIE1CRURUTFNfRVJSX1JTQV9CQURfSU5QVVRfREFUQTsKKyAgICAgICAgfQorCisgICAgICAgIG5iX3BhZCAtPSBoYXNobGVuOworICAgIH0KKworICAgIC8qIE5lZWQgc3BhY2UgZm9yIHNpZ25hdHVyZSBoZWFkZXIgYW5kIHBhZGRpbmcgZGVsaW1pdGVyICgzIGJ5dGVzKSwKKyAgICAgKiBhbmQgOCBieXRlcyBmb3IgdGhlIG1pbmltYWwgcGFkZGluZyAqLworICAgIGlmIChuYl9wYWQgPCAzICsgOCkgeworICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfUlNBX0JBRF9JTlBVVF9EQVRBOworICAgIH0KKyAgICBuYl9wYWQgLT0gMzsKKworICAgIC8qIE5vdyBuYl9wYWQgaXMgdGhlIGFtb3VudCBvZiBtZW1vcnkgdG8gYmUgZmlsbGVkCisgICAgICogd2l0aCBwYWRkaW5nLCBhbmQgYXQgbGVhc3QgOCBieXRlcyBsb25nLiAqLworCisgICAgLyogV3JpdGUgc2lnbmF0dXJlIGhlYWRlciBhbmQgcGFkZGluZyAqLworICAgICpwKysgPSAwOworICAgICpwKysgPSBNQkVEVExTX1JTQV9TSUdOOworICAgIG1lbXNldChwLCAweEZGLCBuYl9wYWQpOworICAgIHAgKz0gbmJfcGFkOworICAgICpwKysgPSAwOworCisgICAgLyogQXJlIHdlIHNpZ25pbmcgcmF3IGRhdGE/ICovCisgICAgaWYgKG1kX2FsZyA9PSBNQkVEVExTX01EX05PTkUpIHsKKyAgICAgICAgbWVtY3B5KHAsIGhhc2gsIGhhc2hsZW4pOworICAgICAgICByZXR1cm4gMDsKKyAgICB9CisKKyAgICAvKiBTaWduaW5nIGhhc2hlZCBkYXRhLCBhZGQgY29ycmVzcG9uZGluZyBBU04uMSBzdHJ1Y3R1cmUKKyAgICAgKgorICAgICAqIERpZ2VzdEluZm8gOjo9IFNFUVVFTkNFIHsKKyAgICAgKiAgIGRpZ2VzdEFsZ29yaXRobSBEaWdlc3RBbGdvcml0aG1JZGVudGlmaWVyLAorICAgICAqICAgZGlnZXN0IERpZ2VzdCB9CisgICAgICogRGlnZXN0QWxnb3JpdGhtSWRlbnRpZmllciA6Oj0gQWxnb3JpdGhtSWRlbnRpZmllcgorICAgICAqIERpZ2VzdCA6Oj0gT0NURVQgU1RSSU5HCisgICAgICoKKyAgICAgKiBTY2hlbWF0aWM6CisgICAgICogVEFHLVNFUSArIExFTiBbIFRBRy1TRVEgKyBMRU4gWyBUQUctT0lEICArIExFTiBbIE9JRCAgXQorICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVEFHLU5VTEwgKyBMRU4gWyBOVUxMIF0gXQorICAgICAqICAgICAgICAgICAgICAgICBUQUctT0NURVQgKyBMRU4gWyBIQVNIIF0gXQorICAgICAqLworICAgICpwKysgPSBNQkVEVExTX0FTTjFfU0VRVUVOQ0UgfCBNQkVEVExTX0FTTjFfQ09OU1RSVUNURUQ7CisgICAgKnArKyA9ICh1bnNpZ25lZCBjaGFyKSAoMHgwOCArIG9pZF9zaXplICsgaGFzaGxlbik7CisgICAgKnArKyA9IE1CRURUTFNfQVNOMV9TRVFVRU5DRSB8IE1CRURUTFNfQVNOMV9DT05TVFJVQ1RFRDsKKyAgICAqcCsrID0gKHVuc2lnbmVkIGNoYXIpICgweDA0ICsgb2lkX3NpemUpOworICAgICpwKysgPSBNQkVEVExTX0FTTjFfT0lEOworICAgICpwKysgPSAodW5zaWduZWQgY2hhcikgb2lkX3NpemU7CisgICAgbWVtY3B5KHAsIG9pZCwgb2lkX3NpemUpOworICAgIHAgKz0gb2lkX3NpemU7CisgICAgKnArKyA9IE1CRURUTFNfQVNOMV9OVUxMOworICAgICpwKysgPSAweDAwOworICAgICpwKysgPSBNQkVEVExTX0FTTjFfT0NURVRfU1RSSU5HOworICAgICpwKysgPSAodW5zaWduZWQgY2hhcikgaGFzaGxlbjsKKyAgICBtZW1jcHkocCwgaGFzaCwgaGFzaGxlbik7CisgICAgcCArPSBoYXNobGVuOworCisgICAgLyogSnVzdCBhIHNhbml0eS1jaGVjaywgc2hvdWxkIGJlIGF1dG9tYXRpYworICAgICAqIGFmdGVyIHRoZSBpbml0aWFsIGJvdW5kcyBjaGVjay4gKi8KKyAgICBpZiAocCAhPSBkc3QgKyBkc3RfbGVuKSB7CisgICAgICAgIG1iZWR0bHNfcGxhdGZvcm1femVyb2l6ZShkc3QsIGRzdF9sZW4pOworICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfUlNBX0JBRF9JTlBVVF9EQVRBOworICAgIH0KKworICAgIHJldHVybiAwOworfQorCisvKgorICogRG8gYW4gUlNBIG9wZXJhdGlvbiB0byBzaWduIHRoZSBtZXNzYWdlIGRpZ2VzdAorICovCitpbnQgbWJlZHRsc19yc2FfcnNhc3NhX3BrY3MxX3YxNV9zaWduKG1iZWR0bHNfcnNhX2NvbnRleHQgKmN0eCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50ICgqZl9ybmcpKHZvaWQgKiwgdW5zaWduZWQgY2hhciAqLCBzaXplX3QpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2b2lkICpwX3JuZywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWJlZHRsc19tZF90eXBlX3QgbWRfYWxnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgaGFzaGxlbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdW5zaWduZWQgY2hhciAqaGFzaCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgY2hhciAqc2lnKQoreworICAgIGludCByZXQgPSBNQkVEVExTX0VSUl9FUlJPUl9DT1JSVVBUSU9OX0RFVEVDVEVEOworICAgIHVuc2lnbmVkIGNoYXIgKnNpZ190cnkgPSBOVUxMLCAqdmVyaWYgPSBOVUxMOworCisgICAgaWYgKChtZF9hbGcgIT0gTUJFRFRMU19NRF9OT05FIHx8IGhhc2hsZW4gIT0gMCkgJiYgaGFzaCA9PSBOVUxMKSB7CisgICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9SU0FfQkFEX0lOUFVUX0RBVEE7CisgICAgfQorCisgICAgaWYgKGN0eC0+cGFkZGluZyAhPSBNQkVEVExTX1JTQV9QS0NTX1YxNSkgeworICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfUlNBX0JBRF9JTlBVVF9EQVRBOworICAgIH0KKworICAgIC8qCisgICAgICogUHJlcGFyZSBQS0NTMS12MS41IGVuY29kaW5nIChwYWRkaW5nIGFuZCBoYXNoIGlkZW50aWZpZXIpCisgICAgICovCisKKyAgICBpZiAoKHJldCA9IHJzYV9yc2Fzc2FfcGtjczFfdjE1X2VuY29kZShtZF9hbGcsIGhhc2hsZW4sIGhhc2gsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3R4LT5sZW4sIHNpZykpICE9IDApIHsKKyAgICAgICAgcmV0dXJuIHJldDsKKyAgICB9CisKKyAgICAvKiBQcml2YXRlIGtleSBvcGVyYXRpb24KKyAgICAgKgorICAgICAqIEluIG9yZGVyIHRvIHByZXZlbnQgTGVuc3RyYSdzIGF0dGFjaywgbWFrZSB0aGUgc2lnbmF0dXJlIGluIGEKKyAgICAgKiB0ZW1wb3JhcnkgYnVmZmVyIGFuZCBjaGVjayBpdCBiZWZvcmUgcmV0dXJuaW5nIGl0LgorICAgICAqLworCisgICAgc2lnX3RyeSA9IG1iZWR0bHNfY2FsbG9jKDEsIGN0eC0+bGVuKTsKKyAgICBpZiAoc2lnX3RyeSA9PSBOVUxMKSB7CisgICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9NUElfQUxMT0NfRkFJTEVEOworICAgIH0KKworICAgIHZlcmlmID0gbWJlZHRsc19jYWxsb2MoMSwgY3R4LT5sZW4pOworICAgIGlmICh2ZXJpZiA9PSBOVUxMKSB7CisgICAgICAgIG1iZWR0bHNfZnJlZShzaWdfdHJ5KTsKKyAgICAgICAgcmV0dXJuIE1CRURUTFNfRVJSX01QSV9BTExPQ19GQUlMRUQ7CisgICAgfQorCisgICAgTUJFRFRMU19NUElfQ0hLKG1iZWR0bHNfcnNhX3ByaXZhdGUoY3R4LCBmX3JuZywgcF9ybmcsIHNpZywgc2lnX3RyeSkpOworICAgIE1CRURUTFNfTVBJX0NISyhtYmVkdGxzX3JzYV9wdWJsaWMoY3R4LCBzaWdfdHJ5LCB2ZXJpZikpOworCisgICAgaWYgKG1iZWR0bHNfY3RfbWVtY21wKHZlcmlmLCBzaWcsIGN0eC0+bGVuKSAhPSAwKSB7CisgICAgICAgIHJldCA9IE1CRURUTFNfRVJSX1JTQV9QUklWQVRFX0ZBSUxFRDsKKyAgICAgICAgZ290byBjbGVhbnVwOworICAgIH0KKworICAgIG1lbWNweShzaWcsIHNpZ190cnksIGN0eC0+bGVuKTsKKworY2xlYW51cDoKKyAgICBtYmVkdGxzX3plcm9pemVfYW5kX2ZyZWUoc2lnX3RyeSwgY3R4LT5sZW4pOworICAgIG1iZWR0bHNfemVyb2l6ZV9hbmRfZnJlZSh2ZXJpZiwgY3R4LT5sZW4pOworCisgICAgaWYgKHJldCAhPSAwKSB7CisgICAgICAgIG1lbXNldChzaWcsICchJywgY3R4LT5sZW4pOworICAgIH0KKyAgICByZXR1cm4gcmV0OworfQorI2VuZGlmIC8qIE1CRURUTFNfUEtDUzFfVjE1ICovCisKKy8qCisgKiBEbyBhbiBSU0Egb3BlcmF0aW9uIHRvIHNpZ24gdGhlIG1lc3NhZ2UgZGlnZXN0CisgKi8KK2ludCBtYmVkdGxzX3JzYV9wa2NzMV9zaWduKG1iZWR0bHNfcnNhX2NvbnRleHQgKmN0eCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCAoKmZfcm5nKSh2b2lkICosIHVuc2lnbmVkIGNoYXIgKiwgc2l6ZV90KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIHZvaWQgKnBfcm5nLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgbWJlZHRsc19tZF90eXBlX3QgbWRfYWxnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50IGhhc2hsZW4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1bnNpZ25lZCBjaGFyICpoYXNoLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgY2hhciAqc2lnKQoreworICAgIGlmICgobWRfYWxnICE9IE1CRURUTFNfTURfTk9ORSB8fCBoYXNobGVuICE9IDApICYmIGhhc2ggPT0gTlVMTCkgeworICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfUlNBX0JBRF9JTlBVVF9EQVRBOworICAgIH0KKworICAgIHN3aXRjaCAoY3R4LT5wYWRkaW5nKSB7CisjaWYgZGVmaW5lZChNQkVEVExTX1BLQ1MxX1YxNSkKKyAgICAgICAgY2FzZSBNQkVEVExTX1JTQV9QS0NTX1YxNToKKyAgICAgICAgICAgIHJldHVybiBtYmVkdGxzX3JzYV9yc2Fzc2FfcGtjczFfdjE1X3NpZ24oY3R4LCBmX3JuZywgcF9ybmcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1kX2FsZywgaGFzaGxlbiwgaGFzaCwgc2lnKTsKKyNlbmRpZgorCisjaWYgZGVmaW5lZChNQkVEVExTX1BLQ1MxX1YyMSkKKyAgICAgICAgY2FzZSBNQkVEVExTX1JTQV9QS0NTX1YyMToKKyAgICAgICAgICAgIHJldHVybiBtYmVkdGxzX3JzYV9yc2Fzc2FfcHNzX3NpZ24oY3R4LCBmX3JuZywgcF9ybmcsIG1kX2FsZywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFzaGxlbiwgaGFzaCwgc2lnKTsKKyNlbmRpZgorCisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfUlNBX0lOVkFMSURfUEFERElORzsKKyAgICB9Cit9CisKKyNpZiBkZWZpbmVkKE1CRURUTFNfUEtDUzFfVjIxKQorLyoKKyAqIEltcGxlbWVudGF0aW9uIG9mIHRoZSBQS0NTIzEgdjIuMSBSU0FTU0EtUFNTLVZFUklGWSBmdW5jdGlvbgorICovCitpbnQgbWJlZHRsc19yc2FfcnNhc3NhX3Bzc192ZXJpZnlfZXh0KG1iZWR0bHNfcnNhX2NvbnRleHQgKmN0eCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWJlZHRsc19tZF90eXBlX3QgbWRfYWxnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgaGFzaGxlbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdW5zaWduZWQgY2hhciAqaGFzaCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWJlZHRsc19tZF90eXBlX3QgbWdmMV9oYXNoX2lkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgZXhwZWN0ZWRfc2FsdF9sZW4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgKnNpZykKK3sKKyAgICBpbnQgcmV0ID0gTUJFRFRMU19FUlJfRVJST1JfQ09SUlVQVElPTl9ERVRFQ1RFRDsKKyAgICBzaXplX3Qgc2lnbGVuOworICAgIHVuc2lnbmVkIGNoYXIgKnA7CisgICAgdW5zaWduZWQgY2hhciAqaGFzaF9zdGFydDsKKyAgICB1bnNpZ25lZCBjaGFyIHJlc3VsdFtNQkVEVExTX01EX01BWF9TSVpFXTsKKyAgICB1bnNpZ25lZCBpbnQgaGxlbjsKKyAgICBzaXplX3Qgb2JzZXJ2ZWRfc2FsdF9sZW4sIG1zYjsKKyAgICB1bnNpZ25lZCBjaGFyIGJ1ZltNQkVEVExTX01QSV9NQVhfU0laRV0gPSB7IDAgfTsKKworICAgIGlmICgobWRfYWxnICE9IE1CRURUTFNfTURfTk9ORSB8fCBoYXNobGVuICE9IDApICYmIGhhc2ggPT0gTlVMTCkgeworICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfUlNBX0JBRF9JTlBVVF9EQVRBOworICAgIH0KKworICAgIHNpZ2xlbiA9IGN0eC0+bGVuOworCisgICAgaWYgKHNpZ2xlbiA8IDE2IHx8IHNpZ2xlbiA+IHNpemVvZihidWYpKSB7CisgICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9SU0FfQkFEX0lOUFVUX0RBVEE7CisgICAgfQorCisgICAgcmV0ID0gbWJlZHRsc19yc2FfcHVibGljKGN0eCwgc2lnLCBidWYpOworCisgICAgaWYgKHJldCAhPSAwKSB7CisgICAgICAgIHJldHVybiByZXQ7CisgICAgfQorCisgICAgcCA9IGJ1ZjsKKworICAgIGlmIChidWZbc2lnbGVuIC0gMV0gIT0gMHhCQykgeworICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfUlNBX0lOVkFMSURfUEFERElORzsKKyAgICB9CisKKyAgICBpZiAobWRfYWxnICE9IE1CRURUTFNfTURfTk9ORSkgeworICAgICAgICAvKiBHYXRoZXIgbGVuZ3RoIG9mIGhhc2ggdG8gc2lnbiAqLworICAgICAgICBzaXplX3QgZXhwX2hhc2hsZW4gPSBtYmVkdGxzX21kX2dldF9zaXplX2Zyb21fdHlwZShtZF9hbGcpOworICAgICAgICBpZiAoZXhwX2hhc2hsZW4gPT0gMCkgeworICAgICAgICAgICAgcmV0dXJuIE1CRURUTFNfRVJSX1JTQV9CQURfSU5QVVRfREFUQTsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChoYXNobGVuICE9IGV4cF9oYXNobGVuKSB7CisgICAgICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfUlNBX0JBRF9JTlBVVF9EQVRBOworICAgICAgICB9CisgICAgfQorCisgICAgaGxlbiA9IG1iZWR0bHNfbWRfZ2V0X3NpemVfZnJvbV90eXBlKG1nZjFfaGFzaF9pZCk7CisgICAgaWYgKGhsZW4gPT0gMCkgeworICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfUlNBX0JBRF9JTlBVVF9EQVRBOworICAgIH0KKworICAgIC8qCisgICAgICogTm90ZTogRU1TQS1QU1MgdmVyaWZpY2F0aW9uIGlzIG92ZXIgdGhlIGxlbmd0aCBvZiBOIC0gMSBiaXRzCisgICAgICovCisgICAgbXNiID0gbWJlZHRsc19tcGlfYml0bGVuKCZjdHgtPk4pIC0gMTsKKworICAgIGlmIChidWZbMF0gPj4gKDggLSBzaWdsZW4gKiA4ICsgbXNiKSkgeworICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfUlNBX0JBRF9JTlBVVF9EQVRBOworICAgIH0KKworICAgIC8qIENvbXBlbnNhdGUgZm9yIGJvdW5kYXJ5IGNvbmRpdGlvbiB3aGVuIGFwcGx5aW5nIG1hc2sgKi8KKyAgICBpZiAobXNiICUgOCA9PSAwKSB7CisgICAgICAgIHArKzsKKyAgICAgICAgc2lnbGVuIC09IDE7CisgICAgfQorCisgICAgaWYgKHNpZ2xlbiA8IGhsZW4gKyAyKSB7CisgICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9SU0FfQkFEX0lOUFVUX0RBVEE7CisgICAgfQorICAgIGhhc2hfc3RhcnQgPSBwICsgc2lnbGVuIC0gaGxlbiAtIDE7CisKKyAgICByZXQgPSBtZ2ZfbWFzayhwLCBzaWdsZW4gLSBobGVuIC0gMSwgaGFzaF9zdGFydCwgaGxlbiwgbWdmMV9oYXNoX2lkKTsKKyAgICBpZiAocmV0ICE9IDApIHsKKyAgICAgICAgcmV0dXJuIHJldDsKKyAgICB9CisKKyAgICBidWZbMF0gJj0gMHhGRiA+PiAoc2lnbGVuICogOCAtIG1zYik7CisKKyAgICB3aGlsZSAocCA8IGhhc2hfc3RhcnQgLSAxICYmICpwID09IDApIHsKKyAgICAgICAgcCsrOworICAgIH0KKworICAgIGlmICgqcCsrICE9IDB4MDEpIHsKKyAgICAgICAgcmV0dXJuIE1CRURUTFNfRVJSX1JTQV9JTlZBTElEX1BBRERJTkc7CisgICAgfQorCisgICAgb2JzZXJ2ZWRfc2FsdF9sZW4gPSAoc2l6ZV90KSAoaGFzaF9zdGFydCAtIHApOworCisgICAgaWYgKGV4cGVjdGVkX3NhbHRfbGVuICE9IE1CRURUTFNfUlNBX1NBTFRfTEVOX0FOWSAmJgorICAgICAgICBvYnNlcnZlZF9zYWx0X2xlbiAhPSAoc2l6ZV90KSBleHBlY3RlZF9zYWx0X2xlbikgeworICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfUlNBX0lOVkFMSURfUEFERElORzsKKyAgICB9CisKKyAgICAvKgorICAgICAqIEdlbmVyYXRlIEggPSBIYXNoKCBNJyApCisgICAgICovCisgICAgcmV0ID0gaGFzaF9tcHJpbWUoaGFzaCwgaGFzaGxlbiwgcCwgb2JzZXJ2ZWRfc2FsdF9sZW4sCisgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0LCBtZ2YxX2hhc2hfaWQpOworICAgIGlmIChyZXQgIT0gMCkgeworICAgICAgICByZXR1cm4gcmV0OworICAgIH0KKworICAgIGlmIChtZW1jbXAoaGFzaF9zdGFydCwgcmVzdWx0LCBobGVuKSAhPSAwKSB7CisgICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9SU0FfVkVSSUZZX0ZBSUxFRDsKKyAgICB9CisKKyAgICByZXR1cm4gMDsKK30KKworLyoKKyAqIFNpbXBsaWZpZWQgUEtDUyMxIHYyLjEgUlNBU1NBLVBTUy1WRVJJRlkgZnVuY3Rpb24KKyAqLworaW50IG1iZWR0bHNfcnNhX3JzYXNzYV9wc3NfdmVyaWZ5KG1iZWR0bHNfcnNhX2NvbnRleHQgKmN0eCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYmVkdGxzX21kX3R5cGVfdCBtZF9hbGcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50IGhhc2hsZW4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdW5zaWduZWQgY2hhciAqaGFzaCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1bnNpZ25lZCBjaGFyICpzaWcpCit7CisgICAgbWJlZHRsc19tZF90eXBlX3QgbWdmMV9oYXNoX2lkOworICAgIGlmICgobWRfYWxnICE9IE1CRURUTFNfTURfTk9ORSB8fCBoYXNobGVuICE9IDApICYmIGhhc2ggPT0gTlVMTCkgeworICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfUlNBX0JBRF9JTlBVVF9EQVRBOworICAgIH0KKworICAgIG1nZjFfaGFzaF9pZCA9IChjdHgtPmhhc2hfaWQgIT0gTUJFRFRMU19NRF9OT05FKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IChtYmVkdGxzX21kX3R5cGVfdCkgY3R4LT5oYXNoX2lkCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogbWRfYWxnOworCisgICAgcmV0dXJuIG1iZWR0bHNfcnNhX3JzYXNzYV9wc3NfdmVyaWZ5X2V4dChjdHgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZF9hbGcsIGhhc2hsZW4sIGhhc2gsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZ2YxX2hhc2hfaWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNQkVEVExTX1JTQV9TQUxUX0xFTl9BTlksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaWcpOworCit9CisjZW5kaWYgLyogTUJFRFRMU19QS0NTMV9WMjEgKi8KKworI2lmIGRlZmluZWQoTUJFRFRMU19QS0NTMV9WMTUpCisvKgorICogSW1wbGVtZW50YXRpb24gb2YgdGhlIFBLQ1MjMSB2Mi4xIFJTQVNTQS1QS0NTMS12MV81LVZFUklGWSBmdW5jdGlvbgorICovCitpbnQgbWJlZHRsc19yc2FfcnNhc3NhX3BrY3MxX3YxNV92ZXJpZnkobWJlZHRsc19yc2FfY29udGV4dCAqY3R4LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1iZWR0bHNfbWRfdHlwZV90IG1kX2FsZywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgaGFzaGxlbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1bnNpZ25lZCBjaGFyICpoYXNoLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgKnNpZykKK3sKKyAgICBpbnQgcmV0ID0gMDsKKyAgICBzaXplX3Qgc2lnX2xlbjsKKyAgICB1bnNpZ25lZCBjaGFyICplbmNvZGVkID0gTlVMTCwgKmVuY29kZWRfZXhwZWN0ZWQgPSBOVUxMOworCisgICAgaWYgKChtZF9hbGcgIT0gTUJFRFRMU19NRF9OT05FIHx8IGhhc2hsZW4gIT0gMCkgJiYgaGFzaCA9PSBOVUxMKSB7CisgICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9SU0FfQkFEX0lOUFVUX0RBVEE7CisgICAgfQorCisgICAgc2lnX2xlbiA9IGN0eC0+bGVuOworCisgICAgLyoKKyAgICAgKiBQcmVwYXJlIGV4cGVjdGVkIFBLQ1MxIHYxLjUgZW5jb2Rpbmcgb2YgaGFzaC4KKyAgICAgKi8KKworICAgIGlmICgoZW5jb2RlZCAgICAgICAgICA9IG1iZWR0bHNfY2FsbG9jKDEsIHNpZ19sZW4pKSA9PSBOVUxMIHx8CisgICAgICAgIChlbmNvZGVkX2V4cGVjdGVkID0gbWJlZHRsc19jYWxsb2MoMSwgc2lnX2xlbikpID09IE5VTEwpIHsKKyAgICAgICAgcmV0ID0gTUJFRFRMU19FUlJfTVBJX0FMTE9DX0ZBSUxFRDsKKyAgICAgICAgZ290byBjbGVhbnVwOworICAgIH0KKworICAgIGlmICgocmV0ID0gcnNhX3JzYXNzYV9wa2NzMV92MTVfZW5jb2RlKG1kX2FsZywgaGFzaGxlbiwgaGFzaCwgc2lnX2xlbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmNvZGVkX2V4cGVjdGVkKSkgIT0gMCkgeworICAgICAgICBnb3RvIGNsZWFudXA7CisgICAgfQorCisgICAgLyoKKyAgICAgKiBBcHBseSBSU0EgcHJpbWl0aXZlIHRvIGdldCB3aGF0IHNob3VsZCBiZSBQS0NTMSBlbmNvZGVkIGhhc2guCisgICAgICovCisKKyAgICByZXQgPSBtYmVkdGxzX3JzYV9wdWJsaWMoY3R4LCBzaWcsIGVuY29kZWQpOworICAgIGlmIChyZXQgIT0gMCkgeworICAgICAgICBnb3RvIGNsZWFudXA7CisgICAgfQorCisgICAgLyoKKyAgICAgKiBDb21wYXJlCisgICAgICovCisKKyAgICBpZiAoKHJldCA9IG1iZWR0bHNfY3RfbWVtY21wKGVuY29kZWQsIGVuY29kZWRfZXhwZWN0ZWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaWdfbGVuKSkgIT0gMCkgeworICAgICAgICByZXQgPSBNQkVEVExTX0VSUl9SU0FfVkVSSUZZX0ZBSUxFRDsKKyAgICAgICAgZ290byBjbGVhbnVwOworICAgIH0KKworY2xlYW51cDoKKworICAgIGlmIChlbmNvZGVkICE9IE5VTEwpIHsKKyAgICAgICAgbWJlZHRsc196ZXJvaXplX2FuZF9mcmVlKGVuY29kZWQsIHNpZ19sZW4pOworICAgIH0KKworICAgIGlmIChlbmNvZGVkX2V4cGVjdGVkICE9IE5VTEwpIHsKKyAgICAgICAgbWJlZHRsc196ZXJvaXplX2FuZF9mcmVlKGVuY29kZWRfZXhwZWN0ZWQsIHNpZ19sZW4pOworICAgIH0KKworICAgIHJldHVybiByZXQ7Cit9CisjZW5kaWYgLyogTUJFRFRMU19QS0NTMV9WMTUgKi8KKworLyoKKyAqIERvIGFuIFJTQSBvcGVyYXRpb24gYW5kIGNoZWNrIHRoZSBtZXNzYWdlIGRpZ2VzdAorICovCitpbnQgbWJlZHRsc19yc2FfcGtjczFfdmVyaWZ5KG1iZWR0bHNfcnNhX2NvbnRleHQgKmN0eCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWJlZHRsc19tZF90eXBlX3QgbWRfYWxnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgaGFzaGxlbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdW5zaWduZWQgY2hhciAqaGFzaCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdW5zaWduZWQgY2hhciAqc2lnKQoreworICAgIGlmICgobWRfYWxnICE9IE1CRURUTFNfTURfTk9ORSB8fCBoYXNobGVuICE9IDApICYmIGhhc2ggPT0gTlVMTCkgeworICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfUlNBX0JBRF9JTlBVVF9EQVRBOworICAgIH0KKworICAgIHN3aXRjaCAoY3R4LT5wYWRkaW5nKSB7CisjaWYgZGVmaW5lZChNQkVEVExTX1BLQ1MxX1YxNSkKKyAgICAgICAgY2FzZSBNQkVEVExTX1JTQV9QS0NTX1YxNToKKyAgICAgICAgICAgIHJldHVybiBtYmVkdGxzX3JzYV9yc2Fzc2FfcGtjczFfdjE1X3ZlcmlmeShjdHgsIG1kX2FsZywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYXNobGVuLCBoYXNoLCBzaWcpOworI2VuZGlmCisKKyNpZiBkZWZpbmVkKE1CRURUTFNfUEtDUzFfVjIxKQorICAgICAgICBjYXNlIE1CRURUTFNfUlNBX1BLQ1NfVjIxOgorICAgICAgICAgICAgcmV0dXJuIG1iZWR0bHNfcnNhX3JzYXNzYV9wc3NfdmVyaWZ5KGN0eCwgbWRfYWxnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhc2hsZW4sIGhhc2gsIHNpZyk7CisjZW5kaWYKKworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgcmV0dXJuIE1CRURUTFNfRVJSX1JTQV9JTlZBTElEX1BBRERJTkc7CisgICAgfQorfQorCisvKgorICogQ29weSB0aGUgY29tcG9uZW50cyBvZiBhbiBSU0Ega2V5CisgKi8KK2ludCBtYmVkdGxzX3JzYV9jb3B5KG1iZWR0bHNfcnNhX2NvbnRleHQgKmRzdCwgY29uc3QgbWJlZHRsc19yc2FfY29udGV4dCAqc3JjKQoreworICAgIGludCByZXQgPSBNQkVEVExTX0VSUl9FUlJPUl9DT1JSVVBUSU9OX0RFVEVDVEVEOworCisgICAgZHN0LT5sZW4gPSBzcmMtPmxlbjsKKworICAgIE1CRURUTFNfTVBJX0NISyhtYmVkdGxzX21waV9jb3B5KCZkc3QtPk4sICZzcmMtPk4pKTsKKyAgICBNQkVEVExTX01QSV9DSEsobWJlZHRsc19tcGlfY29weSgmZHN0LT5FLCAmc3JjLT5FKSk7CisKKyAgICBNQkVEVExTX01QSV9DSEsobWJlZHRsc19tcGlfY29weSgmZHN0LT5ELCAmc3JjLT5EKSk7CisgICAgTUJFRFRMU19NUElfQ0hLKG1iZWR0bHNfbXBpX2NvcHkoJmRzdC0+UCwgJnNyYy0+UCkpOworICAgIE1CRURUTFNfTVBJX0NISyhtYmVkdGxzX21waV9jb3B5KCZkc3QtPlEsICZzcmMtPlEpKTsKKworI2lmICFkZWZpbmVkKE1CRURUTFNfUlNBX05PX0NSVCkKKyAgICBNQkVEVExTX01QSV9DSEsobWJlZHRsc19tcGlfY29weSgmZHN0LT5EUCwgJnNyYy0+RFApKTsKKyAgICBNQkVEVExTX01QSV9DSEsobWJlZHRsc19tcGlfY29weSgmZHN0LT5EUSwgJnNyYy0+RFEpKTsKKyAgICBNQkVEVExTX01QSV9DSEsobWJlZHRsc19tcGlfY29weSgmZHN0LT5RUCwgJnNyYy0+UVApKTsKKyAgICBNQkVEVExTX01QSV9DSEsobWJlZHRsc19tcGlfY29weSgmZHN0LT5SUCwgJnNyYy0+UlApKTsKKyAgICBNQkVEVExTX01QSV9DSEsobWJlZHRsc19tcGlfY29weSgmZHN0LT5SUSwgJnNyYy0+UlEpKTsKKyNlbmRpZgorCisgICAgTUJFRFRMU19NUElfQ0hLKG1iZWR0bHNfbXBpX2NvcHkoJmRzdC0+Uk4sICZzcmMtPlJOKSk7CisKKyAgICBNQkVEVExTX01QSV9DSEsobWJlZHRsc19tcGlfY29weSgmZHN0LT5WaSwgJnNyYy0+VmkpKTsKKyAgICBNQkVEVExTX01QSV9DSEsobWJlZHRsc19tcGlfY29weSgmZHN0LT5WZiwgJnNyYy0+VmYpKTsKKworICAgIGRzdC0+cGFkZGluZyA9IHNyYy0+cGFkZGluZzsKKyAgICBkc3QtPmhhc2hfaWQgPSBzcmMtPmhhc2hfaWQ7CisKK2NsZWFudXA6CisgICAgaWYgKHJldCAhPSAwKSB7CisgICAgICAgIG1iZWR0bHNfcnNhX2ZyZWUoZHN0KTsKKyAgICB9CisKKyAgICByZXR1cm4gcmV0OworfQorCisvKgorICogRnJlZSB0aGUgY29tcG9uZW50cyBvZiBhbiBSU0Ega2V5CisgKi8KK3ZvaWQgbWJlZHRsc19yc2FfZnJlZShtYmVkdGxzX3JzYV9jb250ZXh0ICpjdHgpCit7CisgICAgaWYgKGN0eCA9PSBOVUxMKSB7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBtYmVkdGxzX21waV9mcmVlKCZjdHgtPlZpKTsKKyAgICBtYmVkdGxzX21waV9mcmVlKCZjdHgtPlZmKTsKKyAgICBtYmVkdGxzX21waV9mcmVlKCZjdHgtPlJOKTsKKyAgICBtYmVkdGxzX21waV9mcmVlKCZjdHgtPkQpOworICAgIG1iZWR0bHNfbXBpX2ZyZWUoJmN0eC0+USk7CisgICAgbWJlZHRsc19tcGlfZnJlZSgmY3R4LT5QKTsKKyAgICBtYmVkdGxzX21waV9mcmVlKCZjdHgtPkUpOworICAgIG1iZWR0bHNfbXBpX2ZyZWUoJmN0eC0+Tik7CisKKyNpZiAhZGVmaW5lZChNQkVEVExTX1JTQV9OT19DUlQpCisgICAgbWJlZHRsc19tcGlfZnJlZSgmY3R4LT5SUSk7CisgICAgbWJlZHRsc19tcGlfZnJlZSgmY3R4LT5SUCk7CisgICAgbWJlZHRsc19tcGlfZnJlZSgmY3R4LT5RUCk7CisgICAgbWJlZHRsc19tcGlfZnJlZSgmY3R4LT5EUSk7CisgICAgbWJlZHRsc19tcGlfZnJlZSgmY3R4LT5EUCk7CisjZW5kaWYgLyogTUJFRFRMU19SU0FfTk9fQ1JUICovCisKKyNpZiBkZWZpbmVkKE1CRURUTFNfVEhSRUFESU5HX0MpCisgICAgLyogRnJlZSB0aGUgbXV0ZXgsIGJ1dCBvbmx5IGlmIGl0IGhhc24ndCBiZWVuIGZyZWVkIGFscmVhZHkuICovCisgICAgaWYgKGN0eC0+dmVyICE9IDApIHsKKyAgICAgICAgbWJlZHRsc19tdXRleF9mcmVlKCZjdHgtPm11dGV4KTsKKyAgICAgICAgY3R4LT52ZXIgPSAwOworICAgIH0KKyNlbmRpZgorfQorCisjaWYgZGVmaW5lZChNQkVEVExTX1NFTEZfVEVTVCkKKworCisvKgorICogRXhhbXBsZSBSU0EtMTAyNCBrZXlwYWlyLCBmb3IgdGVzdCBwdXJwb3NlcworICovCisjZGVmaW5lIEtFWV9MRU4gMTI4CisKKyNkZWZpbmUgUlNBX04gICAiOTI5Mjc1ODQ1MzA2M0Q4MDNERDYwM0Q1RTc3N0Q3ODgiIFwKKyAgICAgICAgICAgICAgICAiOEVEMUQ1QkYzNTc4NjE5MEZBMkYyM0VCQzA4NDhBRUEiIFwKKyAgICAgICAgICAgICAgICAiRERBOTJDQTZDM0Q4MEIzMkM0RDEwOUJFMEYzNkQ2QUUiIFwKKyAgICAgICAgICAgICAgICAiNzEzMEI5Q0VEN0FDREY1NENGQzc1NTVBQzE0RUVCQUIiIFwKKyAgICAgICAgICAgICAgICAiOTNBODk4MTNGQkYzQzRGODA2NkQyRDgwMEY3QzM4QTgiIFwKKyAgICAgICAgICAgICAgICAiMUFFMzE5NDI5MTc0MDNGRjQ5NDZCMEE4M0QzRDNFMDUiIFwKKyAgICAgICAgICAgICAgICAiRUU1N0M2RjVGNTYwNkZCNUQ0QkM2Q0QzNEVFMDgwMUEiIFwKKyAgICAgICAgICAgICAgICAiNUU5NEJCNzdCMDc1MDcyMzNBMEJDN0JBQzhGOTBGNzkiCisKKyNkZWZpbmUgUlNBX0UgICAiMTAwMDEiCisKKyNkZWZpbmUgUlNBX0QgICAiMjRCRjYxODU0Njg3ODZGREQzMDMwODNEMjVFNjRFRkMiIFwKKyAgICAgICAgICAgICAgICAiNjZDQTQ3MkJDNDREMjUzMTAyRjhCNEE5RDNCRkE3NTAiIFwKKyAgICAgICAgICAgICAgICAiOTEzODZDMDA3NzkzN0ZFMzNGQTMyNTJEMjg4NTU4MzciIFwKKyAgICAgICAgICAgICAgICAiQUUxQjQ4NEE4QTlBNDVGN0VFOEMwQzYzNEY5OUU4Q0QiIFwKKyAgICAgICAgICAgICAgICAiREY3OUM1Q0UwN0VFNzJDN0YxMjMxNDIxOTgxNjQyMzQiIFwKKyAgICAgICAgICAgICAgICAiQ0FCQjcyNENGNzhCODE3M0I5Rjg4MEZDODYzMjI0MDciIFwKKyAgICAgICAgICAgICAgICAiQUYxRkVERkRERTJCRUI2NzRDQTE1RjNFODFBMTUyMUUiIFwKKyAgICAgICAgICAgICAgICAiMDcxNTEzQTFFODVCNURGQTAzMUYyMUVDQUU5MUEzNEQiCisKKyNkZWZpbmUgUlNBX1AgICAiQzM2RDBFQjdGQ0QyODUyMjNDRkI1QUFCQTVCREEzRDgiIFwKKyAgICAgICAgICAgICAgICAiMkMwMUNBRDE5RUE0ODRBODdFQTQzNzc2MzdFNzU1MDAiIFwKKyAgICAgICAgICAgICAgICAiRkNCMjAwNUM1QzdERDZFQzRBQzAyM0NEQTI4NUQ3OTYiIFwKKyAgICAgICAgICAgICAgICAiQzNEOUU3NUUxRUZDNDI0ODhCQjRGMUQxM0FDMzBBNTciCisKKyNkZWZpbmUgUlNBX1EgICAiQzAwMERGNTFBN0M3N0FFOEQ3QzczNzBDMUZGNTVCNjkiIFwKKyAgICAgICAgICAgICAgICAiRTIxMUMyQjlFNURCMUVEMEJGNjFEMEQ5ODk5NjIwRjQiIFwKKyAgICAgICAgICAgICAgICAiOTEwRTQxNjgzODdFM0MzMEFBMUUwMEMzMzlBNzk1MDgiIFwKKyAgICAgICAgICAgICAgICAiODQ1MkREOTZBOUE1RUE1RDlEQ0E2OERBNjM2MDMyQUYiCisKKyNkZWZpbmUgUFRfTEVOICAyNAorI2RlZmluZSBSU0FfUFQgICJceEFBXHhCQlx4Q0NceDAzXHgwMlx4MDFceDAwXHhGRlx4RkZceEZGXHhGRlx4RkYiIFwKKyAgICAgICAgICAgICAgICAiXHgxMVx4MjJceDMzXHgwQVx4MEJceDBDXHhDQ1x4RERceEREXHhERFx4RERceEREIgorCisjaWYgZGVmaW5lZChNQkVEVExTX1BLQ1MxX1YxNSkKK3N0YXRpYyBpbnQgbXlyYW5kKHZvaWQgKnJuZ19zdGF0ZSwgdW5zaWduZWQgY2hhciAqb3V0cHV0LCBzaXplX3QgbGVuKQoreworI2lmICFkZWZpbmVkKF9fT3BlbkJTRF9fKSAmJiAhZGVmaW5lZChfX05ldEJTRF9fKQorICAgIHNpemVfdCBpOworCisgICAgaWYgKHJuZ19zdGF0ZSAhPSBOVUxMKSB7CisgICAgICAgIHJuZ19zdGF0ZSAgPSBOVUxMOworICAgIH0KKworICAgIGZvciAoaSA9IDA7IGkgPCBsZW47ICsraSkgeworICAgICAgICBvdXRwdXRbaV0gPSByYW5kKCk7CisgICAgfQorI2Vsc2UKKyAgICBpZiAocm5nX3N0YXRlICE9IE5VTEwpIHsKKyAgICAgICAgcm5nX3N0YXRlID0gTlVMTDsKKyAgICB9CisKKyAgICBhcmM0cmFuZG9tX2J1ZihvdXRwdXQsIGxlbik7CisjZW5kaWYgLyogIU9wZW5CU0QgJiYgIU5ldEJTRCAqLworCisgICAgcmV0dXJuIDA7Cit9CisjZW5kaWYgLyogTUJFRFRMU19QS0NTMV9WMTUgKi8KKworLyoKKyAqIENoZWNrdXAgcm91dGluZQorICovCitpbnQgbWJlZHRsc19yc2Ffc2VsZl90ZXN0KGludCB2ZXJib3NlKQoreworICAgIGludCByZXQgPSAwOworI2lmIGRlZmluZWQoTUJFRFRMU19QS0NTMV9WMTUpCisgICAgc2l6ZV90IGxlbjsKKyAgICBtYmVkdGxzX3JzYV9jb250ZXh0IHJzYTsKKyAgICB1bnNpZ25lZCBjaGFyIHJzYV9wbGFpbnRleHRbUFRfTEVOXTsKKyAgICB1bnNpZ25lZCBjaGFyIHJzYV9kZWNyeXB0ZWRbUFRfTEVOXTsKKyAgICB1bnNpZ25lZCBjaGFyIHJzYV9jaXBoZXJ0ZXh0W0tFWV9MRU5dOworI2lmIGRlZmluZWQoTUJFRFRMU19NRF9DQU5fU0hBMSkKKyAgICB1bnNpZ25lZCBjaGFyIHNoYTFzdW1bMjBdOworI2VuZGlmCisKKyAgICBtYmVkdGxzX21waSBLOworCisgICAgbWJlZHRsc19tcGlfaW5pdCgmSyk7CisgICAgbWJlZHRsc19yc2FfaW5pdCgmcnNhKTsKKworICAgIE1CRURUTFNfTVBJX0NISyhtYmVkdGxzX21waV9yZWFkX3N0cmluZygmSywgMTYsIFJTQV9OKSk7CisgICAgTUJFRFRMU19NUElfQ0hLKG1iZWR0bHNfcnNhX2ltcG9ydCgmcnNhLCAmSywgTlVMTCwgTlVMTCwgTlVMTCwgTlVMTCkpOworICAgIE1CRURUTFNfTVBJX0NISyhtYmVkdGxzX21waV9yZWFkX3N0cmluZygmSywgMTYsIFJTQV9QKSk7CisgICAgTUJFRFRMU19NUElfQ0hLKG1iZWR0bHNfcnNhX2ltcG9ydCgmcnNhLCBOVUxMLCAmSywgTlVMTCwgTlVMTCwgTlVMTCkpOworICAgIE1CRURUTFNfTVBJX0NISyhtYmVkdGxzX21waV9yZWFkX3N0cmluZygmSywgMTYsIFJTQV9RKSk7CisgICAgTUJFRFRMU19NUElfQ0hLKG1iZWR0bHNfcnNhX2ltcG9ydCgmcnNhLCBOVUxMLCBOVUxMLCAmSywgTlVMTCwgTlVMTCkpOworICAgIE1CRURUTFNfTVBJX0NISyhtYmVkdGxzX21waV9yZWFkX3N0cmluZygmSywgMTYsIFJTQV9EKSk7CisgICAgTUJFRFRMU19NUElfQ0hLKG1iZWR0bHNfcnNhX2ltcG9ydCgmcnNhLCBOVUxMLCBOVUxMLCBOVUxMLCAmSywgTlVMTCkpOworICAgIE1CRURUTFNfTVBJX0NISyhtYmVkdGxzX21waV9yZWFkX3N0cmluZygmSywgMTYsIFJTQV9FKSk7CisgICAgTUJFRFRMU19NUElfQ0hLKG1iZWR0bHNfcnNhX2ltcG9ydCgmcnNhLCBOVUxMLCBOVUxMLCBOVUxMLCBOVUxMLCAmSykpOworCisgICAgTUJFRFRMU19NUElfQ0hLKG1iZWR0bHNfcnNhX2NvbXBsZXRlKCZyc2EpKTsKKworICAgIGlmICh2ZXJib3NlICE9IDApIHsKKyAgICAgICAgbWJlZHRsc19wcmludGYoIiAgUlNBIGtleSB2YWxpZGF0aW9uOiAiKTsKKyAgICB9CisKKyAgICBpZiAobWJlZHRsc19yc2FfY2hlY2tfcHVia2V5KCZyc2EpICE9IDAgfHwKKyAgICAgICAgbWJlZHRsc19yc2FfY2hlY2tfcHJpdmtleSgmcnNhKSAhPSAwKSB7CisgICAgICAgIGlmICh2ZXJib3NlICE9IDApIHsKKyAgICAgICAgICAgIG1iZWR0bHNfcHJpbnRmKCJmYWlsZWRcbiIpOworICAgICAgICB9CisKKyAgICAgICAgcmV0ID0gMTsKKyAgICAgICAgZ290byBjbGVhbnVwOworICAgIH0KKworICAgIGlmICh2ZXJib3NlICE9IDApIHsKKyAgICAgICAgbWJlZHRsc19wcmludGYoInBhc3NlZFxuICBQS0NTIzEgZW5jcnlwdGlvbiA6ICIpOworICAgIH0KKworICAgIG1lbWNweShyc2FfcGxhaW50ZXh0LCBSU0FfUFQsIFBUX0xFTik7CisKKyAgICBpZiAobWJlZHRsc19yc2FfcGtjczFfZW5jcnlwdCgmcnNhLCBteXJhbmQsIE5VTEwsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUFRfTEVOLCByc2FfcGxhaW50ZXh0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJzYV9jaXBoZXJ0ZXh0KSAhPSAwKSB7CisgICAgICAgIGlmICh2ZXJib3NlICE9IDApIHsKKyAgICAgICAgICAgIG1iZWR0bHNfcHJpbnRmKCJmYWlsZWRcbiIpOworICAgICAgICB9CisKKyAgICAgICAgcmV0ID0gMTsKKyAgICAgICAgZ290byBjbGVhbnVwOworICAgIH0KKworICAgIGlmICh2ZXJib3NlICE9IDApIHsKKyAgICAgICAgbWJlZHRsc19wcmludGYoInBhc3NlZFxuICBQS0NTIzEgZGVjcnlwdGlvbiA6ICIpOworICAgIH0KKworICAgIGlmIChtYmVkdGxzX3JzYV9wa2NzMV9kZWNyeXB0KCZyc2EsIG15cmFuZCwgTlVMTCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmbGVuLCByc2FfY2lwaGVydGV4dCwgcnNhX2RlY3J5cHRlZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplb2YocnNhX2RlY3J5cHRlZCkpICE9IDApIHsKKyAgICAgICAgaWYgKHZlcmJvc2UgIT0gMCkgeworICAgICAgICAgICAgbWJlZHRsc19wcmludGYoImZhaWxlZFxuIik7CisgICAgICAgIH0KKworICAgICAgICByZXQgPSAxOworICAgICAgICBnb3RvIGNsZWFudXA7CisgICAgfQorCisgICAgaWYgKG1lbWNtcChyc2FfZGVjcnlwdGVkLCByc2FfcGxhaW50ZXh0LCBsZW4pICE9IDApIHsKKyAgICAgICAgaWYgKHZlcmJvc2UgIT0gMCkgeworICAgICAgICAgICAgbWJlZHRsc19wcmludGYoImZhaWxlZFxuIik7CisgICAgICAgIH0KKworICAgICAgICByZXQgPSAxOworICAgICAgICBnb3RvIGNsZWFudXA7CisgICAgfQorCisgICAgaWYgKHZlcmJvc2UgIT0gMCkgeworICAgICAgICBtYmVkdGxzX3ByaW50ZigicGFzc2VkXG4iKTsKKyAgICB9CisKKyNpZiBkZWZpbmVkKE1CRURUTFNfTURfQ0FOX1NIQTEpCisgICAgaWYgKHZlcmJvc2UgIT0gMCkgeworICAgICAgICBtYmVkdGxzX3ByaW50ZigiICBQS0NTIzEgZGF0YSBzaWduICA6ICIpOworICAgIH0KKworICAgIGlmIChtYmVkdGxzX21kKG1iZWR0bHNfbWRfaW5mb19mcm9tX3R5cGUoTUJFRFRMU19NRF9TSEExKSwKKyAgICAgICAgICAgICAgICAgICByc2FfcGxhaW50ZXh0LCBQVF9MRU4sIHNoYTFzdW0pICE9IDApIHsKKyAgICAgICAgaWYgKHZlcmJvc2UgIT0gMCkgeworICAgICAgICAgICAgbWJlZHRsc19wcmludGYoImZhaWxlZFxuIik7CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gMTsKKyAgICB9CisKKyAgICBpZiAobWJlZHRsc19yc2FfcGtjczFfc2lnbigmcnNhLCBteXJhbmQsIE5VTEwsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTUJFRFRMU19NRF9TSEExLCAyMCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaGExc3VtLCByc2FfY2lwaGVydGV4dCkgIT0gMCkgeworICAgICAgICBpZiAodmVyYm9zZSAhPSAwKSB7CisgICAgICAgICAgICBtYmVkdGxzX3ByaW50ZigiZmFpbGVkXG4iKTsKKyAgICAgICAgfQorCisgICAgICAgIHJldCA9IDE7CisgICAgICAgIGdvdG8gY2xlYW51cDsKKyAgICB9CisKKyAgICBpZiAodmVyYm9zZSAhPSAwKSB7CisgICAgICAgIG1iZWR0bHNfcHJpbnRmKCJwYXNzZWRcbiAgUEtDUyMxIHNpZy4gdmVyaWZ5OiAiKTsKKyAgICB9CisKKyAgICBpZiAobWJlZHRsc19yc2FfcGtjczFfdmVyaWZ5KCZyc2EsIE1CRURUTFNfTURfU0hBMSwgMjAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaGExc3VtLCByc2FfY2lwaGVydGV4dCkgIT0gMCkgeworICAgICAgICBpZiAodmVyYm9zZSAhPSAwKSB7CisgICAgICAgICAgICBtYmVkdGxzX3ByaW50ZigiZmFpbGVkXG4iKTsKKyAgICAgICAgfQorCisgICAgICAgIHJldCA9IDE7CisgICAgICAgIGdvdG8gY2xlYW51cDsKKyAgICB9CisKKyAgICBpZiAodmVyYm9zZSAhPSAwKSB7CisgICAgICAgIG1iZWR0bHNfcHJpbnRmKCJwYXNzZWRcbiIpOworICAgIH0KKyNlbmRpZiAvKiBNQkVEVExTX01EX0NBTl9TSEExICovCisKKyAgICBpZiAodmVyYm9zZSAhPSAwKSB7CisgICAgICAgIG1iZWR0bHNfcHJpbnRmKCJcbiIpOworICAgIH0KKworY2xlYW51cDoKKyAgICBtYmVkdGxzX21waV9mcmVlKCZLKTsKKyAgICBtYmVkdGxzX3JzYV9mcmVlKCZyc2EpOworI2Vsc2UgLyogTUJFRFRMU19QS0NTMV9WMTUgKi8KKyAgICAoKHZvaWQpIHZlcmJvc2UpOworI2VuZGlmIC8qIE1CRURUTFNfUEtDUzFfVjE1ICovCisgICAgcmV0dXJuIHJldDsKK30KKworI2VuZGlmIC8qIE1CRURUTFNfU0VMRl9URVNUICovCisKKyNlbmRpZiAvKiBNQkVEVExTX1JTQV9DICovCmRpZmYgLS1naXQgYS9saWJyYXJ5L3JzYV9hbHRfaGVscGVycy5jIGIvdGYtcHNhLWNyeXB0by9kcml2ZXJzL2J1aWx0aW4vc3JjL3JzYV9hbHRfaGVscGVycy5jCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBsaWJyYXJ5L3JzYV9hbHRfaGVscGVycy5jCnJlbmFtZSB0byB0Zi1wc2EtY3J5cHRvL2RyaXZlcnMvYnVpbHRpbi9zcmMvcnNhX2FsdF9oZWxwZXJzLmMKZGlmZiAtLWdpdCBhL3RmLXBzYS1jcnlwdG8vZHJpdmVycy9idWlsdGluL3NyYy9yc2FfYWx0X2hlbHBlcnMuaCBiL3RmLXBzYS1jcnlwdG8vZHJpdmVycy9idWlsdGluL3NyYy9yc2FfYWx0X2hlbHBlcnMuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mMjM0MDM2Ci0tLSAvZGV2L251bGwKKysrIGIvdGYtcHNhLWNyeXB0by9kcml2ZXJzL2J1aWx0aW4vc3JjL3JzYV9hbHRfaGVscGVycy5oCkBAIC0wLDAgKzEsMjEyIEBACisvKioKKyAqIFxmaWxlIHJzYV9hbHRfaGVscGVycy5oCisgKgorICogXGJyaWVmIENvbnRleHQtaW5kZXBlbmRlbnQgUlNBIGhlbHBlciBmdW5jdGlvbnMKKyAqCisgKiAgUGxlYXNlIG5vdGU6IFRoZSBiZWxvdyBleHBsYW5hdGlvbiBpcyBoaXN0b3JpY2FsIGFuZCBpcyBubyBsb25nZXIgcmVsZXZhbnQKKyAqICBkdWUgdG8gdGhlcmUgYmVpbmcgbm8gY29tcGVsbGluZyByZWFzb24gdG8ga2VlcCB0aGVzZSBmdW5jdGlvbnMgc2VwYXJhdGUKKyAqICBzaW5jZSB0aGUgUlNBIGFsdCBpbnRlcmZhY2Ugd2FzIHJlbW92ZWQuIEEgZnV0dXJlIHJlZmFjdG9yaW5nIHdpbGwgYWRkcmVzcworICogIHRoaXMgd2hpY2ggaXMgdHJhY2tlZCBieSB0aGUgZm9sbG93aW5nIGlzc3VlOgorICogIGh0dHBzOi8vZ2l0aHViLmNvbS9NYmVkLVRMUy9URi1QU0EtQ3J5cHRvL2lzc3Vlcy8xMDUuCisgKgorICogIFRoaXMgbW9kdWxlIGRlY2xhcmVzIHNvbWUgUlNBLXJlbGF0ZWQgaGVscGVyIGZ1bmN0aW9ucyB1c2VmdWwgd2hlbgorICogIGltcGxlbWVudGluZyB0aGUgUlNBIGludGVyZmFjZS4gVGhlc2UgZnVuY3Rpb25zIGFyZSBwcm92aWRlZCBpbiBhIHNlcGFyYXRlCisgKiAgY29tcGlsYXRpb24gdW5pdCBpbiBvcmRlciB0byBtYWtlIGl0IGVhc3kgZm9yIGRlc2lnbmVycyBvZiBhbHRlcm5hdGl2ZSBSU0EKKyAqICBpbXBsZW1lbnRhdGlvbnMgdG8gdXNlIHRoZW0gaW4gdGhlaXIgb3duIGNvZGUsIGFzIGl0IGlzIGNvbmNlaXZlZCB0aGF0IHRoZQorICogIGZ1bmN0aW9uYWxpdHkgdGhleSBwcm92aWRlIHdpbGwgYmUgbmVjZXNzYXJ5IGZvciBtb3N0IGNvbXBsZXRlCisgKiAgaW1wbGVtZW50YXRpb25zLgorICoKKyAqICBFbmQtdXNlcnMgb2YgTWJlZCBUTFMgd2hvIGFyZSBub3QgcHJvdmlkaW5nIHRoZWlyIG93biBhbHRlcm5hdGl2ZSBSU0EKKyAqICBpbXBsZW1lbnRhdGlvbnMgc2hvdWxkIG5vdCB1c2UgdGhlc2UgZnVuY3Rpb25zIGRpcmVjdGx5LCBhbmQgc2hvdWxkIGluc3RlYWQKKyAqICB1c2Ugb25seSB0aGUgZnVuY3Rpb25zIGRlY2xhcmVkIGluIHJzYS5oLgorICoKKyAqICBUaGUgaW50ZXJmYWNlIHByb3ZpZGVkIGJ5IHRoaXMgbW9kdWxlIHdpbGwgYmUgbWFpbnRhaW5lZCB0aHJvdWdoIExUUyAoTG9uZworICogIFRlcm0gU3VwcG9ydCkgYnJhbmNoZXMgb2YgTWJlZCBUTFMsIGJ1dCBtYXkgb3RoZXJ3aXNlIGJlIHN1YmplY3QgdG8gY2hhbmdlLAorICogIGFuZCBtdXN0IGJlIGNvbnNpZGVyZWQgYW4gaW50ZXJuYWwgaW50ZXJmYWNlIG9mIHRoZSBsaWJyYXJ5LgorICoKKyAqICBUaGVyZSBhcmUgdHdvIGNsYXNzZXMgb2YgaGVscGVyIGZ1bmN0aW9uczoKKyAqCisgKiAgKDEpIFBhcmFtZXRlci1nZW5lcmF0aW5nIGhlbHBlcnMuIFRoZXNlIGFyZToKKyAqICAgICAgLSBtYmVkdGxzX3JzYV9kZWR1Y2VfcHJpbWVzCisgKiAgICAgIC0gbWJlZHRsc19yc2FfZGVkdWNlX3ByaXZhdGVfZXhwb25lbnQKKyAqICAgICAgLSBtYmVkdGxzX3JzYV9kZWR1Y2VfY3J0CisgKiAgICAgICBFYWNoIG9mIHRoZXNlIGZ1bmN0aW9ucyB0YWtlcyBhIHNldCBvZiBjb3JlIFJTQSBwYXJhbWV0ZXJzIGFuZAorICogICAgICAgZ2VuZXJhdGVzIHNvbWUgb3RoZXIsIG9yIENSVCByZWxhdGVkIHBhcmFtZXRlcnMuCisgKgorICogICgyKSBQYXJhbWV0ZXItY2hlY2tpbmcgaGVscGVycy4gVGhlc2UgYXJlOgorICogICAgICAtIG1iZWR0bHNfcnNhX3ZhbGlkYXRlX3BhcmFtcworICogICAgICAtIG1iZWR0bHNfcnNhX3ZhbGlkYXRlX2NydAorICogICAgICBUaGV5IHRha2UgYSBzZXQgb2YgY29yZSBvciBDUlQgcmVsYXRlZCBSU0EgcGFyYW1ldGVycyBhbmQgY2hlY2sgdGhlaXIKKyAqICAgICAgdmFsaWRpdHkuCisgKgorICovCisvKgorICogIENvcHlyaWdodCBUaGUgTWJlZCBUTFMgQ29udHJpYnV0b3JzCisgKiAgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjAgT1IgR1BMLTIuMC1vci1sYXRlcgorICovCisjaWZuZGVmIE1CRURUTFNfUlNBX0FMVF9IRUxQRVJTX0gKKyNkZWZpbmUgTUJFRFRMU19SU0FfQUxUX0hFTFBFUlNfSAorCisjaW5jbHVkZSAibWJlZHRscy9idWlsZF9pbmZvLmgiCisKKyNpbmNsdWRlICJtYmVkdGxzL2JpZ251bS5oIgorCisjaWZkZWYgX19jcGx1c3BsdXMKK2V4dGVybiAiQyIgeworI2VuZGlmCisKKworLyoqCisgKiBcYnJpZWYgICAgICAgICAgQ29tcHV0ZSBSU0EgcHJpbWUgbW9kdWxpIFAsIFEgZnJvbSBwdWJsaWMgbW9kdWx1cyBOPVBRCisgKiAgICAgICAgICAgICAgICAgYW5kIGEgcGFpciBvZiBwcml2YXRlIGFuZCBwdWJsaWMga2V5LgorICoKKyAqIFxub3RlICAgICAgICAgICBUaGlzIGlzIGEgJ3N0YXRpYycgaGVscGVyIGZ1bmN0aW9uIG5vdCBvcGVyYXRpbmcgb24KKyAqICAgICAgICAgICAgICAgICBhbiBSU0EgY29udGV4dC4gQWx0ZXJuYXRpdmUgaW1wbGVtZW50YXRpb25zIG5lZWQgbm90CisgKiAgICAgICAgICAgICAgICAgb3ZlcndyaXRlIGl0LgorICoKKyAqIFxwYXJhbSBOICAgICAgICBSU0EgbW9kdWx1cyBOID0gUFEsIHdpdGggUCwgUSB0byBiZSBmb3VuZAorICogXHBhcmFtIEUgICAgICAgIFJTQSBwdWJsaWMgZXhwb25lbnQKKyAqIFxwYXJhbSBEICAgICAgICBSU0EgcHJpdmF0ZSBleHBvbmVudAorICogXHBhcmFtIFAgICAgICAgIFBvaW50ZXIgdG8gTVBJIGhvbGRpbmcgZmlyc3QgcHJpbWUgZmFjdG9yIG9mIE4gb24gc3VjY2VzcworICogXHBhcmFtIFEgICAgICAgIFBvaW50ZXIgdG8gTVBJIGhvbGRpbmcgc2Vjb25kIHByaW1lIGZhY3RvciBvZiBOIG9uIHN1Y2Nlc3MKKyAqCisgKiBccmV0dXJuCisgKiAgICAgICAgICAgICAgICAgLSAwIGlmIHN1Y2Nlc3NmdWwuIEluIHRoaXMgY2FzZSwgUCBhbmQgUSBjb25zdGl0dXRlIGEKKyAqICAgICAgICAgICAgICAgICAgIGZhY3Rvcml6YXRpb24gb2YgTi4KKyAqICAgICAgICAgICAgICAgICAtIEEgbm9uLXplcm8gZXJyb3IgY29kZSBvdGhlcndpc2UuCisgKgorICogXG5vdGUgICAgICAgICAgIEl0IGlzIG5laXRoZXIgY2hlY2tlZCB0aGF0IFAsIFEgYXJlIHByaW1lIG5vciB0aGF0CisgKiAgICAgICAgICAgICAgICAgRCwgRSBhcmUgbW9kdWxhciBpbnZlcnNlcyB3cnQuIFAtMSBhbmQgUS0xLiBGb3IgdGhhdCwKKyAqICAgICAgICAgICAgICAgICB1c2UgdGhlIGhlbHBlciBmdW5jdGlvbiBcYyBtYmVkdGxzX3JzYV92YWxpZGF0ZV9wYXJhbXMuCisgKgorICovCitpbnQgbWJlZHRsc19yc2FfZGVkdWNlX3ByaW1lcyhtYmVkdGxzX21waSBjb25zdCAqTiwgbWJlZHRsc19tcGkgY29uc3QgKkUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYmVkdGxzX21waSBjb25zdCAqRCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1iZWR0bHNfbXBpICpQLCBtYmVkdGxzX21waSAqUSk7CisKKy8qKgorICogXGJyaWVmICAgICAgICAgIENvbXB1dGUgUlNBIHByaXZhdGUgZXhwb25lbnQgZnJvbQorICogICAgICAgICAgICAgICAgIHByaW1lIG1vZHVsaSBhbmQgcHVibGljIGtleS4KKyAqCisgKiBcbm90ZSAgICAgICAgICAgVGhpcyBpcyBhICdzdGF0aWMnIGhlbHBlciBmdW5jdGlvbiBub3Qgb3BlcmF0aW5nIG9uCisgKiAgICAgICAgICAgICAgICAgYW4gUlNBIGNvbnRleHQuIEFsdGVybmF0aXZlIGltcGxlbWVudGF0aW9ucyBuZWVkIG5vdAorICogICAgICAgICAgICAgICAgIG92ZXJ3cml0ZSBpdC4KKyAqCisgKiBccGFyYW0gUCAgICAgICAgRmlyc3QgcHJpbWUgZmFjdG9yIG9mIFJTQSBtb2R1bHVzCisgKiBccGFyYW0gUSAgICAgICAgU2Vjb25kIHByaW1lIGZhY3RvciBvZiBSU0EgbW9kdWx1cworICogXHBhcmFtIEUgICAgICAgIFJTQSBwdWJsaWMgZXhwb25lbnQKKyAqIFxwYXJhbSBEICAgICAgICBQb2ludGVyIHRvIE1QSSBob2xkaW5nIHRoZSBwcml2YXRlIGV4cG9uZW50IG9uIHN1Y2Nlc3MuCisgKgorICogXHJldHVybgorICogICAgICAgICAgICAgICAgIC0gMCBpZiBzdWNjZXNzZnVsLiBJbiB0aGlzIGNhc2UsIEQgaXMgc2V0IHRvIGEgc2ltdWx0YW5lb3VzCisgKiAgICAgICAgICAgICAgICAgICBtb2R1bGFyIGludmVyc2Ugb2YgRSBtb2R1bG8gYm90aCBQLTEgYW5kIFEtMS4KKyAqICAgICAgICAgICAgICAgICAtIEEgbm9uLXplcm8gZXJyb3IgY29kZSBvdGhlcndpc2UuCisgKgorICogXG5vdGUgICAgICAgICAgIFRoaXMgZnVuY3Rpb24gZG9lcyBub3QgY2hlY2sgd2hldGhlciBQIGFuZCBRIGFyZSBwcmltZXMuCisgKgorICovCitpbnQgbWJlZHRsc19yc2FfZGVkdWNlX3ByaXZhdGVfZXhwb25lbnQobWJlZHRsc19tcGkgY29uc3QgKlAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWJlZHRsc19tcGkgY29uc3QgKlEsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWJlZHRsc19tcGkgY29uc3QgKkUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWJlZHRsc19tcGkgKkQpOworCisKKy8qKgorICogXGJyaWVmICAgICAgICAgIEdlbmVyYXRlIFJTQS1DUlQgcGFyYW1ldGVycworICoKKyAqIFxub3RlICAgICAgICAgICBUaGlzIGlzIGEgJ3N0YXRpYycgaGVscGVyIGZ1bmN0aW9uIG5vdCBvcGVyYXRpbmcgb24KKyAqICAgICAgICAgICAgICAgICBhbiBSU0EgY29udGV4dC4gQWx0ZXJuYXRpdmUgaW1wbGVtZW50YXRpb25zIG5lZWQgbm90CisgKiAgICAgICAgICAgICAgICAgb3ZlcndyaXRlIGl0LgorICoKKyAqIFxwYXJhbSBQICAgICAgICBGaXJzdCBwcmltZSBmYWN0b3Igb2YgTgorICogXHBhcmFtIFEgICAgICAgIFNlY29uZCBwcmltZSBmYWN0b3Igb2YgTgorICogXHBhcmFtIEQgICAgICAgIFJTQSBwcml2YXRlIGV4cG9uZW50CisgKiBccGFyYW0gRFAgICAgICAgT3V0cHV0IHZhcmlhYmxlIGZvciBEIG1vZHVsbyBQLTEKKyAqIFxwYXJhbSBEUSAgICAgICBPdXRwdXQgdmFyaWFibGUgZm9yIEQgbW9kdWxvIFEtMQorICogXHBhcmFtIFFQICAgICAgIE91dHB1dCB2YXJpYWJsZSBmb3IgdGhlIG1vZHVsYXIgaW52ZXJzZSBvZiBRIG1vZHVsbyBQLgorICoKKyAqIFxyZXR1cm4gICAgICAgICAwIG9uIHN1Y2Nlc3MsIG5vbi16ZXJvIGVycm9yIGNvZGUgb3RoZXJ3aXNlLgorICoKKyAqIFxub3RlICAgICAgICAgICBUaGlzIGZ1bmN0aW9uIGRvZXMgbm90IGNoZWNrIHdoZXRoZXIgUCwgUSBhcmUKKyAqICAgICAgICAgICAgICAgICBwcmltZSBhbmQgd2hldGhlciBEIGlzIGEgdmFsaWQgcHJpdmF0ZSBleHBvbmVudC4KKyAqCisgKi8KK2ludCBtYmVkdGxzX3JzYV9kZWR1Y2VfY3J0KGNvbnN0IG1iZWR0bHNfbXBpICpQLCBjb25zdCBtYmVkdGxzX21waSAqUSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IG1iZWR0bHNfbXBpICpELCBtYmVkdGxzX21waSAqRFAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICBtYmVkdGxzX21waSAqRFEsIG1iZWR0bHNfbXBpICpRUCk7CisKKworLyoqCisgKiBcYnJpZWYgICAgICAgICAgQ2hlY2sgdmFsaWRpdHkgb2YgY29yZSBSU0EgcGFyYW1ldGVycworICoKKyAqIFxub3RlICAgICAgICAgICBUaGlzIGlzIGEgJ3N0YXRpYycgaGVscGVyIGZ1bmN0aW9uIG5vdCBvcGVyYXRpbmcgb24KKyAqICAgICAgICAgICAgICAgICBhbiBSU0EgY29udGV4dC4gQWx0ZXJuYXRpdmUgaW1wbGVtZW50YXRpb25zIG5lZWQgbm90CisgKiAgICAgICAgICAgICAgICAgb3ZlcndyaXRlIGl0LgorICoKKyAqIFxwYXJhbSBOICAgICAgICBSU0EgbW9kdWx1cyBOID0gUFEKKyAqIFxwYXJhbSBQICAgICAgICBGaXJzdCBwcmltZSBmYWN0b3Igb2YgTgorICogXHBhcmFtIFEgICAgICAgIFNlY29uZCBwcmltZSBmYWN0b3Igb2YgTgorICogXHBhcmFtIEQgICAgICAgIFJTQSBwcml2YXRlIGV4cG9uZW50CisgKiBccGFyYW0gRSAgICAgICAgUlNBIHB1YmxpYyBleHBvbmVudAorICogXHBhcmFtIGZfcm5nICAgIFBSTkcgdG8gYmUgdXNlZCBmb3IgcHJpbWFsaXR5IGNoZWNrLCBvciBOVUxMCisgKiBccGFyYW0gcF9ybmcgICAgUFJORyBjb250ZXh0IGZvciBmX3JuZywgb3IgTlVMTAorICoKKyAqIFxyZXR1cm4KKyAqICAgICAgICAgICAgICAgICAtIDAgaWYgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZSBzYXRpc2ZpZWQKKyAqICAgICAgICAgICAgICAgICAgIGlmIGFsbCByZWxldmFudCBwYXJhbWV0ZXJzIGFyZSBwcm92aWRlZDoKKyAqICAgICAgICAgICAgICAgICAgICAtIFAgcHJpbWUgaWYgZl9ybmcgIT0gTlVMTCAoJSkKKyAqICAgICAgICAgICAgICAgICAgICAtIFEgcHJpbWUgaWYgZl9ybmcgIT0gTlVMTCAoJSkKKyAqICAgICAgICAgICAgICAgICAgICAtIDEgPCBOID0gUCAqIFEKKyAqICAgICAgICAgICAgICAgICAgICAtIDEgPCBELCBFIDwgTgorICogICAgICAgICAgICAgICAgICAgIC0gRCBhbmQgRSBhcmUgbW9kdWxhciBpbnZlcnNlcyBtb2R1bG8gUC0xIGFuZCBRLTEKKyAqICAgICAgICAgICAgICAgICAgICglKSBUaGlzIGlzIG9ubHkgZG9uZSBpZiBNQkVEVExTX0dFTlBSSU1FIGlzIGRlZmluZWQuCisgKiAgICAgICAgICAgICAgICAgLSBBIG5vbi16ZXJvIGVycm9yIGNvZGUgb3RoZXJ3aXNlLgorICoKKyAqIFxub3RlICAgICAgICAgICBUaGUgZnVuY3Rpb24gY2FuIGJlIHVzZWQgd2l0aCBhIHJlc3RyaWN0ZWQgc2V0IG9mIGFyZ3VtZW50cworICogICAgICAgICAgICAgICAgIHRvIHBlcmZvcm0gc3BlY2lmaWMgY2hlY2tzIG9ubHkuIEUuZy4sIGNhbGxpbmcgaXQgd2l0aAorICogICAgICAgICAgICAgICAgICgtLFAsLSwtLC0pIGFuZCBhIFBSTkcgYW1vdW50cyB0byBhIHByaW1hbGl0eSBjaGVjayBmb3IgUC4KKyAqLworaW50IG1iZWR0bHNfcnNhX3ZhbGlkYXRlX3BhcmFtcyhjb25zdCBtYmVkdGxzX21waSAqTiwgY29uc3QgbWJlZHRsc19tcGkgKlAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IG1iZWR0bHNfbXBpICpRLCBjb25zdCBtYmVkdGxzX21waSAqRCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbWJlZHRsc19tcGkgKkUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCAoKmZfcm5nKSh2b2lkICosIHVuc2lnbmVkIGNoYXIgKiwgc2l6ZV90KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdm9pZCAqcF9ybmcpOworCisvKioKKyAqIFxicmllZiAgICAgICAgICBDaGVjayB2YWxpZGl0eSBvZiBSU0EgQ1JUIHBhcmFtZXRlcnMKKyAqCisgKiBcbm90ZSAgICAgICAgICAgVGhpcyBpcyBhICdzdGF0aWMnIGhlbHBlciBmdW5jdGlvbiBub3Qgb3BlcmF0aW5nIG9uCisgKiAgICAgICAgICAgICAgICAgYW4gUlNBIGNvbnRleHQuIEFsdGVybmF0aXZlIGltcGxlbWVudGF0aW9ucyBuZWVkIG5vdAorICogICAgICAgICAgICAgICAgIG92ZXJ3cml0ZSBpdC4KKyAqCisgKiBccGFyYW0gUCAgICAgICAgRmlyc3QgcHJpbWUgZmFjdG9yIG9mIFJTQSBtb2R1bHVzCisgKiBccGFyYW0gUSAgICAgICAgU2Vjb25kIHByaW1lIGZhY3RvciBvZiBSU0EgbW9kdWx1cworICogXHBhcmFtIEQgICAgICAgIFJTQSBwcml2YXRlIGV4cG9uZW50CisgKiBccGFyYW0gRFAgICAgICAgTVBJIHRvIGNoZWNrIGZvciBEIG1vZHVsbyBQLTEKKyAqIFxwYXJhbSBEUSAgICAgICBNUEkgdG8gY2hlY2sgZm9yIEQgbW9kdWxvIFAtMQorICogXHBhcmFtIFFQICAgICAgIE1QSSB0byBjaGVjayBmb3IgdGhlIG1vZHVsYXIgaW52ZXJzZSBvZiBRIG1vZHVsbyBQLgorICoKKyAqIFxyZXR1cm4KKyAqICAgICAgICAgICAgICAgICAtIDAgaWYgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZSBzYXRpc2ZpZWQ6CisgKiAgICAgICAgICAgICAgICAgICAgLSBEID0gRFAgbW9kIFAtMSBpZiBQLCBELCBEUCAhPSBOVUxMCisgKiAgICAgICAgICAgICAgICAgICAgLSBRID0gRFEgbW9kIFAtMSBpZiBQLCBELCBEUSAhPSBOVUxMCisgKiAgICAgICAgICAgICAgICAgICAgLSBRUCA9IFFeLTEgbW9kIFAgaWYgUCwgUSwgUVAgIT0gTlVMTAorICogICAgICAgICAgICAgICAgIC0gXGMgTUJFRFRMU19FUlJfUlNBX0tFWV9DSEVDS19GQUlMRUQgaWYgY2hlY2sgZmFpbGVkLAorICogICAgICAgICAgICAgICAgICAgcG90ZW50aWFsbHkgaW5jbHVkaW5nIFxjIE1CRURUTFNfRVJSX01QSV9YWFggaWYgc29tZQorICogICAgICAgICAgICAgICAgICAgTVBJIGNhbGN1bGF0aW9ucyBmYWlsZWQuCisgKiAgICAgICAgICAgICAgICAgLSBcYyBNQkVEVExTX0VSUl9SU0FfQkFEX0lOUFVUX0RBVEEgaWYgaW5zdWZmaWNpZW50CisgKiAgICAgICAgICAgICAgICAgICBkYXRhIHdhcyBwcm92aWRlZCB0byBjaGVjayBEUCwgRFEgb3IgUVAuCisgKgorICogXG5vdGUgICAgICAgICAgIFRoZSBmdW5jdGlvbiBjYW4gYmUgdXNlZCB3aXRoIGEgcmVzdHJpY3RlZCBzZXQgb2YgYXJndW1lbnRzCisgKiAgICAgICAgICAgICAgICAgdG8gcGVyZm9ybSBzcGVjaWZpYyBjaGVja3Mgb25seS4gRS5nLiwgY2FsbGluZyBpdCB3aXRoIHRoZQorICogICAgICAgICAgICAgICAgIHBhcmFtZXRlcnMgKFAsIC0sIEQsIERQLCAtLCAtKSB3aWxsIGNoZWNrIERQID0gRCBtb2QgUC0xLgorICovCitpbnQgbWJlZHRsc19yc2FfdmFsaWRhdGVfY3J0KGNvbnN0IG1iZWR0bHNfbXBpICpQLCAgY29uc3QgbWJlZHRsc19tcGkgKlEsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IG1iZWR0bHNfbXBpICpELCAgY29uc3QgbWJlZHRsc19tcGkgKkRQLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBtYmVkdGxzX21waSAqRFEsIGNvbnN0IG1iZWR0bHNfbXBpICpRUCk7CisKKyNpZmRlZiBfX2NwbHVzcGx1cworfQorI2VuZGlmCisKKyNlbmRpZiAvKiByc2FfYWx0X2hlbHBlcnMuaCAqLwpkaWZmIC0tZ2l0IGEvbGlicmFyeS9yc2FfaW50ZXJuYWwuaCBiL3RmLXBzYS1jcnlwdG8vZHJpdmVycy9idWlsdGluL3NyYy9yc2FfaW50ZXJuYWwuaApzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gbGlicmFyeS9yc2FfaW50ZXJuYWwuaApyZW5hbWUgdG8gdGYtcHNhLWNyeXB0by9kcml2ZXJzL2J1aWx0aW4vc3JjL3JzYV9pbnRlcm5hbC5oCmRpZmYgLS1naXQgYS90Zi1wc2EtY3J5cHRvL2RyaXZlcnMvYnVpbHRpbi9zcmMvc2hhMS5jIGIvdGYtcHNhLWNyeXB0by9kcml2ZXJzL2J1aWx0aW4vc3JjL3NoYTEuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jOGQyODUyCi0tLSAvZGV2L251bGwKKysrIGIvdGYtcHNhLWNyeXB0by9kcml2ZXJzL2J1aWx0aW4vc3JjL3NoYTEuYwpAQCAtMCwwICsxLDQ3NiBAQAorLyoKKyAqICBGSVBTLTE4MC0xIGNvbXBsaWFudCBTSEEtMSBpbXBsZW1lbnRhdGlvbgorICoKKyAqICBDb3B5cmlnaHQgVGhlIE1iZWQgVExTIENvbnRyaWJ1dG9ycworICogIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wIE9SIEdQTC0yLjAtb3ItbGF0ZXIKKyAqLworLyoKKyAqICBUaGUgU0hBLTEgc3RhbmRhcmQgd2FzIHB1Ymxpc2hlZCBieSBOSVNUIGluIDE5OTMuCisgKgorICogIGh0dHA6Ly93d3cuaXRsLm5pc3QuZ292L2ZpcHNwdWJzL2ZpcDE4MC0xLmh0bQorICovCisKKyNpbmNsdWRlICJjb21tb24uaCIKKworI2lmIGRlZmluZWQoTUJFRFRMU19TSEExX0MpCisKKyNpbmNsdWRlICJtYmVkdGxzL3NoYTEuaCIKKyNpbmNsdWRlICJtYmVkdGxzL3BsYXRmb3JtX3V0aWwuaCIKKyNpbmNsdWRlICJtYmVkdGxzL2Vycm9yLmgiCisKKyNpbmNsdWRlIDxzdHJpbmcuaD4KKworI2luY2x1ZGUgIm1iZWR0bHMvcGxhdGZvcm0uaCIKKwordm9pZCBtYmVkdGxzX3NoYTFfaW5pdChtYmVkdGxzX3NoYTFfY29udGV4dCAqY3R4KQoreworICAgIG1lbXNldChjdHgsIDAsIHNpemVvZihtYmVkdGxzX3NoYTFfY29udGV4dCkpOworfQorCit2b2lkIG1iZWR0bHNfc2hhMV9mcmVlKG1iZWR0bHNfc2hhMV9jb250ZXh0ICpjdHgpCit7CisgICAgaWYgKGN0eCA9PSBOVUxMKSB7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBtYmVkdGxzX3BsYXRmb3JtX3plcm9pemUoY3R4LCBzaXplb2YobWJlZHRsc19zaGExX2NvbnRleHQpKTsKK30KKwordm9pZCBtYmVkdGxzX3NoYTFfY2xvbmUobWJlZHRsc19zaGExX2NvbnRleHQgKmRzdCwKKyAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IG1iZWR0bHNfc2hhMV9jb250ZXh0ICpzcmMpCit7CisgICAgKmRzdCA9ICpzcmM7Cit9CisKKy8qCisgKiBTSEEtMSBjb250ZXh0IHNldHVwCisgKi8KK2ludCBtYmVkdGxzX3NoYTFfc3RhcnRzKG1iZWR0bHNfc2hhMV9jb250ZXh0ICpjdHgpCit7CisgICAgY3R4LT50b3RhbFswXSA9IDA7CisgICAgY3R4LT50b3RhbFsxXSA9IDA7CisKKyAgICBjdHgtPnN0YXRlWzBdID0gMHg2NzQ1MjMwMTsKKyAgICBjdHgtPnN0YXRlWzFdID0gMHhFRkNEQUI4OTsKKyAgICBjdHgtPnN0YXRlWzJdID0gMHg5OEJBRENGRTsKKyAgICBjdHgtPnN0YXRlWzNdID0gMHgxMDMyNTQ3NjsKKyAgICBjdHgtPnN0YXRlWzRdID0gMHhDM0QyRTFGMDsKKworICAgIHJldHVybiAwOworfQorCisjaWYgIWRlZmluZWQoTUJFRFRMU19TSEExX1BST0NFU1NfQUxUKQoraW50IG1iZWR0bHNfaW50ZXJuYWxfc2hhMV9wcm9jZXNzKG1iZWR0bHNfc2hhMV9jb250ZXh0ICpjdHgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdW5zaWduZWQgY2hhciBkYXRhWzY0XSkKK3sKKyAgICBzdHJ1Y3QgeworICAgICAgICB1aW50MzJfdCB0ZW1wLCBXWzE2XSwgQSwgQiwgQywgRCwgRTsKKyAgICB9IGxvY2FsOworCisgICAgbG9jYWwuV1swXSA9IE1CRURUTFNfR0VUX1VJTlQzMl9CRShkYXRhLCAgMCk7CisgICAgbG9jYWwuV1sxXSA9IE1CRURUTFNfR0VUX1VJTlQzMl9CRShkYXRhLCAgNCk7CisgICAgbG9jYWwuV1syXSA9IE1CRURUTFNfR0VUX1VJTlQzMl9CRShkYXRhLCAgOCk7CisgICAgbG9jYWwuV1szXSA9IE1CRURUTFNfR0VUX1VJTlQzMl9CRShkYXRhLCAxMik7CisgICAgbG9jYWwuV1s0XSA9IE1CRURUTFNfR0VUX1VJTlQzMl9CRShkYXRhLCAxNik7CisgICAgbG9jYWwuV1s1XSA9IE1CRURUTFNfR0VUX1VJTlQzMl9CRShkYXRhLCAyMCk7CisgICAgbG9jYWwuV1s2XSA9IE1CRURUTFNfR0VUX1VJTlQzMl9CRShkYXRhLCAyNCk7CisgICAgbG9jYWwuV1s3XSA9IE1CRURUTFNfR0VUX1VJTlQzMl9CRShkYXRhLCAyOCk7CisgICAgbG9jYWwuV1s4XSA9IE1CRURUTFNfR0VUX1VJTlQzMl9CRShkYXRhLCAzMik7CisgICAgbG9jYWwuV1s5XSA9IE1CRURUTFNfR0VUX1VJTlQzMl9CRShkYXRhLCAzNik7CisgICAgbG9jYWwuV1sxMF0gPSBNQkVEVExTX0dFVF9VSU5UMzJfQkUoZGF0YSwgNDApOworICAgIGxvY2FsLldbMTFdID0gTUJFRFRMU19HRVRfVUlOVDMyX0JFKGRhdGEsIDQ0KTsKKyAgICBsb2NhbC5XWzEyXSA9IE1CRURUTFNfR0VUX1VJTlQzMl9CRShkYXRhLCA0OCk7CisgICAgbG9jYWwuV1sxM10gPSBNQkVEVExTX0dFVF9VSU5UMzJfQkUoZGF0YSwgNTIpOworICAgIGxvY2FsLldbMTRdID0gTUJFRFRMU19HRVRfVUlOVDMyX0JFKGRhdGEsIDU2KTsKKyAgICBsb2NhbC5XWzE1XSA9IE1CRURUTFNfR0VUX1VJTlQzMl9CRShkYXRhLCA2MCk7CisKKyNkZWZpbmUgUyh4LCBuKSAoKCh4KSA8PCAobikpIHwgKCgoeCkgJiAweEZGRkZGRkZGKSA+PiAoMzIgLSAobikpKSkKKworI2RlZmluZSBSKHQpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAoICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgIGxvY2FsLnRlbXAgPSBsb2NhbC5XWygodCkgLSAgMykgJiAweDBGXSBeICAgICAgICAgICAgIFwKKyAgICAgICAgICAgICAgICAgICAgIGxvY2FsLldbKCh0KSAtICA4KSAmIDB4MEZdIF4gICAgICAgICAgICAgXAorICAgICAgICAgICAgICAgICAgICAgbG9jYWwuV1soKHQpIC0gMTQpICYgMHgwRl0gXiAgICAgICAgICAgICBcCisgICAgICAgICAgICAgICAgICAgICBsb2NhbC5XWyh0KSAgICAgICAgJiAweDBGXSwgICAgICAgICAgICAgIFwKKyAgICAgICAgKGxvY2FsLldbKHQpICYgMHgwRl0gPSBTKGxvY2FsLnRlbXAsIDEpKSAgICAgICAgICAgICAgIFwKKyAgICApCisKKyNkZWZpbmUgUChhLCBiLCBjLCBkLCBlLCB4KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICBkbyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICAoZSkgKz0gUygoYSksIDUpICsgRigoYiksIChjKSwgKGQpKSArIEsgKyAoeCk7ICAgICAgICAgICAgIFwKKyAgICAgICAgKGIpID0gUygoYiksIDMwKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIH0gd2hpbGUgKDApCisKKyAgICBsb2NhbC5BID0gY3R4LT5zdGF0ZVswXTsKKyAgICBsb2NhbC5CID0gY3R4LT5zdGF0ZVsxXTsKKyAgICBsb2NhbC5DID0gY3R4LT5zdGF0ZVsyXTsKKyAgICBsb2NhbC5EID0gY3R4LT5zdGF0ZVszXTsKKyAgICBsb2NhbC5FID0gY3R4LT5zdGF0ZVs0XTsKKworI2RlZmluZSBGKHgsIHksIHopICgoeikgXiAoKHgpICYgKCh5KSBeICh6KSkpKQorI2RlZmluZSBLIDB4NUE4Mjc5OTkKKworICAgIFAobG9jYWwuQSwgbG9jYWwuQiwgbG9jYWwuQywgbG9jYWwuRCwgbG9jYWwuRSwgbG9jYWwuV1swXSk7CisgICAgUChsb2NhbC5FLCBsb2NhbC5BLCBsb2NhbC5CLCBsb2NhbC5DLCBsb2NhbC5ELCBsb2NhbC5XWzFdKTsKKyAgICBQKGxvY2FsLkQsIGxvY2FsLkUsIGxvY2FsLkEsIGxvY2FsLkIsIGxvY2FsLkMsIGxvY2FsLldbMl0pOworICAgIFAobG9jYWwuQywgbG9jYWwuRCwgbG9jYWwuRSwgbG9jYWwuQSwgbG9jYWwuQiwgbG9jYWwuV1szXSk7CisgICAgUChsb2NhbC5CLCBsb2NhbC5DLCBsb2NhbC5ELCBsb2NhbC5FLCBsb2NhbC5BLCBsb2NhbC5XWzRdKTsKKyAgICBQKGxvY2FsLkEsIGxvY2FsLkIsIGxvY2FsLkMsIGxvY2FsLkQsIGxvY2FsLkUsIGxvY2FsLldbNV0pOworICAgIFAobG9jYWwuRSwgbG9jYWwuQSwgbG9jYWwuQiwgbG9jYWwuQywgbG9jYWwuRCwgbG9jYWwuV1s2XSk7CisgICAgUChsb2NhbC5ELCBsb2NhbC5FLCBsb2NhbC5BLCBsb2NhbC5CLCBsb2NhbC5DLCBsb2NhbC5XWzddKTsKKyAgICBQKGxvY2FsLkMsIGxvY2FsLkQsIGxvY2FsLkUsIGxvY2FsLkEsIGxvY2FsLkIsIGxvY2FsLldbOF0pOworICAgIFAobG9jYWwuQiwgbG9jYWwuQywgbG9jYWwuRCwgbG9jYWwuRSwgbG9jYWwuQSwgbG9jYWwuV1s5XSk7CisgICAgUChsb2NhbC5BLCBsb2NhbC5CLCBsb2NhbC5DLCBsb2NhbC5ELCBsb2NhbC5FLCBsb2NhbC5XWzEwXSk7CisgICAgUChsb2NhbC5FLCBsb2NhbC5BLCBsb2NhbC5CLCBsb2NhbC5DLCBsb2NhbC5ELCBsb2NhbC5XWzExXSk7CisgICAgUChsb2NhbC5ELCBsb2NhbC5FLCBsb2NhbC5BLCBsb2NhbC5CLCBsb2NhbC5DLCBsb2NhbC5XWzEyXSk7CisgICAgUChsb2NhbC5DLCBsb2NhbC5ELCBsb2NhbC5FLCBsb2NhbC5BLCBsb2NhbC5CLCBsb2NhbC5XWzEzXSk7CisgICAgUChsb2NhbC5CLCBsb2NhbC5DLCBsb2NhbC5ELCBsb2NhbC5FLCBsb2NhbC5BLCBsb2NhbC5XWzE0XSk7CisgICAgUChsb2NhbC5BLCBsb2NhbC5CLCBsb2NhbC5DLCBsb2NhbC5ELCBsb2NhbC5FLCBsb2NhbC5XWzE1XSk7CisgICAgUChsb2NhbC5FLCBsb2NhbC5BLCBsb2NhbC5CLCBsb2NhbC5DLCBsb2NhbC5ELCBSKDE2KSk7CisgICAgUChsb2NhbC5ELCBsb2NhbC5FLCBsb2NhbC5BLCBsb2NhbC5CLCBsb2NhbC5DLCBSKDE3KSk7CisgICAgUChsb2NhbC5DLCBsb2NhbC5ELCBsb2NhbC5FLCBsb2NhbC5BLCBsb2NhbC5CLCBSKDE4KSk7CisgICAgUChsb2NhbC5CLCBsb2NhbC5DLCBsb2NhbC5ELCBsb2NhbC5FLCBsb2NhbC5BLCBSKDE5KSk7CisKKyN1bmRlZiBLCisjdW5kZWYgRgorCisjZGVmaW5lIEYoeCwgeSwgeikgKCh4KSBeICh5KSBeICh6KSkKKyNkZWZpbmUgSyAweDZFRDlFQkExCisKKyAgICBQKGxvY2FsLkEsIGxvY2FsLkIsIGxvY2FsLkMsIGxvY2FsLkQsIGxvY2FsLkUsIFIoMjApKTsKKyAgICBQKGxvY2FsLkUsIGxvY2FsLkEsIGxvY2FsLkIsIGxvY2FsLkMsIGxvY2FsLkQsIFIoMjEpKTsKKyAgICBQKGxvY2FsLkQsIGxvY2FsLkUsIGxvY2FsLkEsIGxvY2FsLkIsIGxvY2FsLkMsIFIoMjIpKTsKKyAgICBQKGxvY2FsLkMsIGxvY2FsLkQsIGxvY2FsLkUsIGxvY2FsLkEsIGxvY2FsLkIsIFIoMjMpKTsKKyAgICBQKGxvY2FsLkIsIGxvY2FsLkMsIGxvY2FsLkQsIGxvY2FsLkUsIGxvY2FsLkEsIFIoMjQpKTsKKyAgICBQKGxvY2FsLkEsIGxvY2FsLkIsIGxvY2FsLkMsIGxvY2FsLkQsIGxvY2FsLkUsIFIoMjUpKTsKKyAgICBQKGxvY2FsLkUsIGxvY2FsLkEsIGxvY2FsLkIsIGxvY2FsLkMsIGxvY2FsLkQsIFIoMjYpKTsKKyAgICBQKGxvY2FsLkQsIGxvY2FsLkUsIGxvY2FsLkEsIGxvY2FsLkIsIGxvY2FsLkMsIFIoMjcpKTsKKyAgICBQKGxvY2FsLkMsIGxvY2FsLkQsIGxvY2FsLkUsIGxvY2FsLkEsIGxvY2FsLkIsIFIoMjgpKTsKKyAgICBQKGxvY2FsLkIsIGxvY2FsLkMsIGxvY2FsLkQsIGxvY2FsLkUsIGxvY2FsLkEsIFIoMjkpKTsKKyAgICBQKGxvY2FsLkEsIGxvY2FsLkIsIGxvY2FsLkMsIGxvY2FsLkQsIGxvY2FsLkUsIFIoMzApKTsKKyAgICBQKGxvY2FsLkUsIGxvY2FsLkEsIGxvY2FsLkIsIGxvY2FsLkMsIGxvY2FsLkQsIFIoMzEpKTsKKyAgICBQKGxvY2FsLkQsIGxvY2FsLkUsIGxvY2FsLkEsIGxvY2FsLkIsIGxvY2FsLkMsIFIoMzIpKTsKKyAgICBQKGxvY2FsLkMsIGxvY2FsLkQsIGxvY2FsLkUsIGxvY2FsLkEsIGxvY2FsLkIsIFIoMzMpKTsKKyAgICBQKGxvY2FsLkIsIGxvY2FsLkMsIGxvY2FsLkQsIGxvY2FsLkUsIGxvY2FsLkEsIFIoMzQpKTsKKyAgICBQKGxvY2FsLkEsIGxvY2FsLkIsIGxvY2FsLkMsIGxvY2FsLkQsIGxvY2FsLkUsIFIoMzUpKTsKKyAgICBQKGxvY2FsLkUsIGxvY2FsLkEsIGxvY2FsLkIsIGxvY2FsLkMsIGxvY2FsLkQsIFIoMzYpKTsKKyAgICBQKGxvY2FsLkQsIGxvY2FsLkUsIGxvY2FsLkEsIGxvY2FsLkIsIGxvY2FsLkMsIFIoMzcpKTsKKyAgICBQKGxvY2FsLkMsIGxvY2FsLkQsIGxvY2FsLkUsIGxvY2FsLkEsIGxvY2FsLkIsIFIoMzgpKTsKKyAgICBQKGxvY2FsLkIsIGxvY2FsLkMsIGxvY2FsLkQsIGxvY2FsLkUsIGxvY2FsLkEsIFIoMzkpKTsKKworI3VuZGVmIEsKKyN1bmRlZiBGCisKKyNkZWZpbmUgRih4LCB5LCB6KSAoKCh4KSAmICh5KSkgfCAoKHopICYgKCh4KSB8ICh5KSkpKQorI2RlZmluZSBLIDB4OEYxQkJDREMKKworICAgIFAobG9jYWwuQSwgbG9jYWwuQiwgbG9jYWwuQywgbG9jYWwuRCwgbG9jYWwuRSwgUig0MCkpOworICAgIFAobG9jYWwuRSwgbG9jYWwuQSwgbG9jYWwuQiwgbG9jYWwuQywgbG9jYWwuRCwgUig0MSkpOworICAgIFAobG9jYWwuRCwgbG9jYWwuRSwgbG9jYWwuQSwgbG9jYWwuQiwgbG9jYWwuQywgUig0MikpOworICAgIFAobG9jYWwuQywgbG9jYWwuRCwgbG9jYWwuRSwgbG9jYWwuQSwgbG9jYWwuQiwgUig0MykpOworICAgIFAobG9jYWwuQiwgbG9jYWwuQywgbG9jYWwuRCwgbG9jYWwuRSwgbG9jYWwuQSwgUig0NCkpOworICAgIFAobG9jYWwuQSwgbG9jYWwuQiwgbG9jYWwuQywgbG9jYWwuRCwgbG9jYWwuRSwgUig0NSkpOworICAgIFAobG9jYWwuRSwgbG9jYWwuQSwgbG9jYWwuQiwgbG9jYWwuQywgbG9jYWwuRCwgUig0NikpOworICAgIFAobG9jYWwuRCwgbG9jYWwuRSwgbG9jYWwuQSwgbG9jYWwuQiwgbG9jYWwuQywgUig0NykpOworICAgIFAobG9jYWwuQywgbG9jYWwuRCwgbG9jYWwuRSwgbG9jYWwuQSwgbG9jYWwuQiwgUig0OCkpOworICAgIFAobG9jYWwuQiwgbG9jYWwuQywgbG9jYWwuRCwgbG9jYWwuRSwgbG9jYWwuQSwgUig0OSkpOworICAgIFAobG9jYWwuQSwgbG9jYWwuQiwgbG9jYWwuQywgbG9jYWwuRCwgbG9jYWwuRSwgUig1MCkpOworICAgIFAobG9jYWwuRSwgbG9jYWwuQSwgbG9jYWwuQiwgbG9jYWwuQywgbG9jYWwuRCwgUig1MSkpOworICAgIFAobG9jYWwuRCwgbG9jYWwuRSwgbG9jYWwuQSwgbG9jYWwuQiwgbG9jYWwuQywgUig1MikpOworICAgIFAobG9jYWwuQywgbG9jYWwuRCwgbG9jYWwuRSwgbG9jYWwuQSwgbG9jYWwuQiwgUig1MykpOworICAgIFAobG9jYWwuQiwgbG9jYWwuQywgbG9jYWwuRCwgbG9jYWwuRSwgbG9jYWwuQSwgUig1NCkpOworICAgIFAobG9jYWwuQSwgbG9jYWwuQiwgbG9jYWwuQywgbG9jYWwuRCwgbG9jYWwuRSwgUig1NSkpOworICAgIFAobG9jYWwuRSwgbG9jYWwuQSwgbG9jYWwuQiwgbG9jYWwuQywgbG9jYWwuRCwgUig1NikpOworICAgIFAobG9jYWwuRCwgbG9jYWwuRSwgbG9jYWwuQSwgbG9jYWwuQiwgbG9jYWwuQywgUig1NykpOworICAgIFAobG9jYWwuQywgbG9jYWwuRCwgbG9jYWwuRSwgbG9jYWwuQSwgbG9jYWwuQiwgUig1OCkpOworICAgIFAobG9jYWwuQiwgbG9jYWwuQywgbG9jYWwuRCwgbG9jYWwuRSwgbG9jYWwuQSwgUig1OSkpOworCisjdW5kZWYgSworI3VuZGVmIEYKKworI2RlZmluZSBGKHgsIHksIHopICgoeCkgXiAoeSkgXiAoeikpCisjZGVmaW5lIEsgMHhDQTYyQzFENgorCisgICAgUChsb2NhbC5BLCBsb2NhbC5CLCBsb2NhbC5DLCBsb2NhbC5ELCBsb2NhbC5FLCBSKDYwKSk7CisgICAgUChsb2NhbC5FLCBsb2NhbC5BLCBsb2NhbC5CLCBsb2NhbC5DLCBsb2NhbC5ELCBSKDYxKSk7CisgICAgUChsb2NhbC5ELCBsb2NhbC5FLCBsb2NhbC5BLCBsb2NhbC5CLCBsb2NhbC5DLCBSKDYyKSk7CisgICAgUChsb2NhbC5DLCBsb2NhbC5ELCBsb2NhbC5FLCBsb2NhbC5BLCBsb2NhbC5CLCBSKDYzKSk7CisgICAgUChsb2NhbC5CLCBsb2NhbC5DLCBsb2NhbC5ELCBsb2NhbC5FLCBsb2NhbC5BLCBSKDY0KSk7CisgICAgUChsb2NhbC5BLCBsb2NhbC5CLCBsb2NhbC5DLCBsb2NhbC5ELCBsb2NhbC5FLCBSKDY1KSk7CisgICAgUChsb2NhbC5FLCBsb2NhbC5BLCBsb2NhbC5CLCBsb2NhbC5DLCBsb2NhbC5ELCBSKDY2KSk7CisgICAgUChsb2NhbC5ELCBsb2NhbC5FLCBsb2NhbC5BLCBsb2NhbC5CLCBsb2NhbC5DLCBSKDY3KSk7CisgICAgUChsb2NhbC5DLCBsb2NhbC5ELCBsb2NhbC5FLCBsb2NhbC5BLCBsb2NhbC5CLCBSKDY4KSk7CisgICAgUChsb2NhbC5CLCBsb2NhbC5DLCBsb2NhbC5ELCBsb2NhbC5FLCBsb2NhbC5BLCBSKDY5KSk7CisgICAgUChsb2NhbC5BLCBsb2NhbC5CLCBsb2NhbC5DLCBsb2NhbC5ELCBsb2NhbC5FLCBSKDcwKSk7CisgICAgUChsb2NhbC5FLCBsb2NhbC5BLCBsb2NhbC5CLCBsb2NhbC5DLCBsb2NhbC5ELCBSKDcxKSk7CisgICAgUChsb2NhbC5ELCBsb2NhbC5FLCBsb2NhbC5BLCBsb2NhbC5CLCBsb2NhbC5DLCBSKDcyKSk7CisgICAgUChsb2NhbC5DLCBsb2NhbC5ELCBsb2NhbC5FLCBsb2NhbC5BLCBsb2NhbC5CLCBSKDczKSk7CisgICAgUChsb2NhbC5CLCBsb2NhbC5DLCBsb2NhbC5ELCBsb2NhbC5FLCBsb2NhbC5BLCBSKDc0KSk7CisgICAgUChsb2NhbC5BLCBsb2NhbC5CLCBsb2NhbC5DLCBsb2NhbC5ELCBsb2NhbC5FLCBSKDc1KSk7CisgICAgUChsb2NhbC5FLCBsb2NhbC5BLCBsb2NhbC5CLCBsb2NhbC5DLCBsb2NhbC5ELCBSKDc2KSk7CisgICAgUChsb2NhbC5ELCBsb2NhbC5FLCBsb2NhbC5BLCBsb2NhbC5CLCBsb2NhbC5DLCBSKDc3KSk7CisgICAgUChsb2NhbC5DLCBsb2NhbC5ELCBsb2NhbC5FLCBsb2NhbC5BLCBsb2NhbC5CLCBSKDc4KSk7CisgICAgUChsb2NhbC5CLCBsb2NhbC5DLCBsb2NhbC5ELCBsb2NhbC5FLCBsb2NhbC5BLCBSKDc5KSk7CisKKyN1bmRlZiBLCisjdW5kZWYgRgorCisgICAgY3R4LT5zdGF0ZVswXSArPSBsb2NhbC5BOworICAgIGN0eC0+c3RhdGVbMV0gKz0gbG9jYWwuQjsKKyAgICBjdHgtPnN0YXRlWzJdICs9IGxvY2FsLkM7CisgICAgY3R4LT5zdGF0ZVszXSArPSBsb2NhbC5EOworICAgIGN0eC0+c3RhdGVbNF0gKz0gbG9jYWwuRTsKKworICAgIC8qIFplcm9pc2UgYnVmZmVycyBhbmQgdmFyaWFibGVzIHRvIGNsZWFyIHNlbnNpdGl2ZSBkYXRhIGZyb20gbWVtb3J5LiAqLworICAgIG1iZWR0bHNfcGxhdGZvcm1femVyb2l6ZSgmbG9jYWwsIHNpemVvZihsb2NhbCkpOworCisgICAgcmV0dXJuIDA7Cit9CisKKyNlbmRpZiAvKiAhTUJFRFRMU19TSEExX1BST0NFU1NfQUxUICovCisKKy8qCisgKiBTSEEtMSBwcm9jZXNzIGJ1ZmZlcgorICovCitpbnQgbWJlZHRsc19zaGExX3VwZGF0ZShtYmVkdGxzX3NoYTFfY29udGV4dCAqY3R4LAorICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdW5zaWduZWQgY2hhciAqaW5wdXQsCisgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgaWxlbikKK3sKKyAgICBpbnQgcmV0ID0gTUJFRFRMU19FUlJfRVJST1JfQ09SUlVQVElPTl9ERVRFQ1RFRDsKKyAgICBzaXplX3QgZmlsbDsKKyAgICB1aW50MzJfdCBsZWZ0OworCisgICAgaWYgKGlsZW4gPT0gMCkgeworICAgICAgICByZXR1cm4gMDsKKyAgICB9CisKKyAgICBsZWZ0ID0gY3R4LT50b3RhbFswXSAmIDB4M0Y7CisgICAgZmlsbCA9IDY0IC0gbGVmdDsKKworICAgIGN0eC0+dG90YWxbMF0gKz0gKHVpbnQzMl90KSBpbGVuOworICAgIGN0eC0+dG90YWxbMF0gJj0gMHhGRkZGRkZGRjsKKworICAgIGlmIChjdHgtPnRvdGFsWzBdIDwgKHVpbnQzMl90KSBpbGVuKSB7CisgICAgICAgIGN0eC0+dG90YWxbMV0rKzsKKyAgICB9CisKKyAgICBpZiAobGVmdCAmJiBpbGVuID49IGZpbGwpIHsKKyAgICAgICAgbWVtY3B5KCh2b2lkICopIChjdHgtPmJ1ZmZlciArIGxlZnQpLCBpbnB1dCwgZmlsbCk7CisKKyAgICAgICAgaWYgKChyZXQgPSBtYmVkdGxzX2ludGVybmFsX3NoYTFfcHJvY2VzcyhjdHgsIGN0eC0+YnVmZmVyKSkgIT0gMCkgeworICAgICAgICAgICAgcmV0dXJuIHJldDsKKyAgICAgICAgfQorCisgICAgICAgIGlucHV0ICs9IGZpbGw7CisgICAgICAgIGlsZW4gIC09IGZpbGw7CisgICAgICAgIGxlZnQgPSAwOworICAgIH0KKworICAgIHdoaWxlIChpbGVuID49IDY0KSB7CisgICAgICAgIGlmICgocmV0ID0gbWJlZHRsc19pbnRlcm5hbF9zaGExX3Byb2Nlc3MoY3R4LCBpbnB1dCkpICE9IDApIHsKKyAgICAgICAgICAgIHJldHVybiByZXQ7CisgICAgICAgIH0KKworICAgICAgICBpbnB1dCArPSA2NDsKKyAgICAgICAgaWxlbiAgLT0gNjQ7CisgICAgfQorCisgICAgaWYgKGlsZW4gPiAwKSB7CisgICAgICAgIG1lbWNweSgodm9pZCAqKSAoY3R4LT5idWZmZXIgKyBsZWZ0KSwgaW5wdXQsIGlsZW4pOworICAgIH0KKworICAgIHJldHVybiAwOworfQorCisvKgorICogU0hBLTEgZmluYWwgZGlnZXN0CisgKi8KK2ludCBtYmVkdGxzX3NoYTFfZmluaXNoKG1iZWR0bHNfc2hhMV9jb250ZXh0ICpjdHgsCisgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBjaGFyIG91dHB1dFsyMF0pCit7CisgICAgaW50IHJldCA9IE1CRURUTFNfRVJSX0VSUk9SX0NPUlJVUFRJT05fREVURUNURUQ7CisgICAgdWludDMyX3QgdXNlZDsKKyAgICB1aW50MzJfdCBoaWdoLCBsb3c7CisKKyAgICAvKgorICAgICAqIEFkZCBwYWRkaW5nOiAweDgwIHRoZW4gMHgwMCB1bnRpbCA4IGJ5dGVzIHJlbWFpbiBmb3IgdGhlIGxlbmd0aAorICAgICAqLworICAgIHVzZWQgPSBjdHgtPnRvdGFsWzBdICYgMHgzRjsKKworICAgIGN0eC0+YnVmZmVyW3VzZWQrK10gPSAweDgwOworCisgICAgaWYgKHVzZWQgPD0gNTYpIHsKKyAgICAgICAgLyogRW5vdWdoIHJvb20gZm9yIHBhZGRpbmcgKyBsZW5ndGggaW4gY3VycmVudCBibG9jayAqLworICAgICAgICBtZW1zZXQoY3R4LT5idWZmZXIgKyB1c2VkLCAwLCA1NiAtIHVzZWQpOworICAgIH0gZWxzZSB7CisgICAgICAgIC8qIFdlJ2xsIG5lZWQgYW4gZXh0cmEgYmxvY2sgKi8KKyAgICAgICAgbWVtc2V0KGN0eC0+YnVmZmVyICsgdXNlZCwgMCwgNjQgLSB1c2VkKTsKKworICAgICAgICBpZiAoKHJldCA9IG1iZWR0bHNfaW50ZXJuYWxfc2hhMV9wcm9jZXNzKGN0eCwgY3R4LT5idWZmZXIpKSAhPSAwKSB7CisgICAgICAgICAgICBnb3RvIGV4aXQ7CisgICAgICAgIH0KKworICAgICAgICBtZW1zZXQoY3R4LT5idWZmZXIsIDAsIDU2KTsKKyAgICB9CisKKyAgICAvKgorICAgICAqIEFkZCBtZXNzYWdlIGxlbmd0aAorICAgICAqLworICAgIGhpZ2ggPSAoY3R4LT50b3RhbFswXSA+PiAyOSkKKyAgICAgICAgICAgfCAoY3R4LT50b3RhbFsxXSA8PCAgMyk7CisgICAgbG93ICA9IChjdHgtPnRvdGFsWzBdIDw8ICAzKTsKKworICAgIE1CRURUTFNfUFVUX1VJTlQzMl9CRShoaWdoLCBjdHgtPmJ1ZmZlciwgNTYpOworICAgIE1CRURUTFNfUFVUX1VJTlQzMl9CRShsb3csICBjdHgtPmJ1ZmZlciwgNjApOworCisgICAgaWYgKChyZXQgPSBtYmVkdGxzX2ludGVybmFsX3NoYTFfcHJvY2VzcyhjdHgsIGN0eC0+YnVmZmVyKSkgIT0gMCkgeworICAgICAgICBnb3RvIGV4aXQ7CisgICAgfQorCisgICAgLyoKKyAgICAgKiBPdXRwdXQgZmluYWwgc3RhdGUKKyAgICAgKi8KKyAgICBNQkVEVExTX1BVVF9VSU5UMzJfQkUoY3R4LT5zdGF0ZVswXSwgb3V0cHV0LCAgMCk7CisgICAgTUJFRFRMU19QVVRfVUlOVDMyX0JFKGN0eC0+c3RhdGVbMV0sIG91dHB1dCwgIDQpOworICAgIE1CRURUTFNfUFVUX1VJTlQzMl9CRShjdHgtPnN0YXRlWzJdLCBvdXRwdXQsICA4KTsKKyAgICBNQkVEVExTX1BVVF9VSU5UMzJfQkUoY3R4LT5zdGF0ZVszXSwgb3V0cHV0LCAxMik7CisgICAgTUJFRFRMU19QVVRfVUlOVDMyX0JFKGN0eC0+c3RhdGVbNF0sIG91dHB1dCwgMTYpOworCisgICAgcmV0ID0gMDsKKworZXhpdDoKKyAgICBtYmVkdGxzX3NoYTFfZnJlZShjdHgpOworICAgIHJldHVybiByZXQ7Cit9CisKKy8qCisgKiBvdXRwdXQgPSBTSEEtMSggaW5wdXQgYnVmZmVyICkKKyAqLworaW50IG1iZWR0bHNfc2hhMShjb25zdCB1bnNpZ25lZCBjaGFyICppbnB1dCwKKyAgICAgICAgICAgICAgICAgc2l6ZV90IGlsZW4sCisgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGNoYXIgb3V0cHV0WzIwXSkKK3sKKyAgICBpbnQgcmV0ID0gTUJFRFRMU19FUlJfRVJST1JfQ09SUlVQVElPTl9ERVRFQ1RFRDsKKyAgICBtYmVkdGxzX3NoYTFfY29udGV4dCBjdHg7CisKKyAgICBtYmVkdGxzX3NoYTFfaW5pdCgmY3R4KTsKKworICAgIGlmICgocmV0ID0gbWJlZHRsc19zaGExX3N0YXJ0cygmY3R4KSkgIT0gMCkgeworICAgICAgICBnb3RvIGV4aXQ7CisgICAgfQorCisgICAgaWYgKChyZXQgPSBtYmVkdGxzX3NoYTFfdXBkYXRlKCZjdHgsIGlucHV0LCBpbGVuKSkgIT0gMCkgeworICAgICAgICBnb3RvIGV4aXQ7CisgICAgfQorCisgICAgaWYgKChyZXQgPSBtYmVkdGxzX3NoYTFfZmluaXNoKCZjdHgsIG91dHB1dCkpICE9IDApIHsKKyAgICAgICAgZ290byBleGl0OworICAgIH0KKworZXhpdDoKKyAgICBtYmVkdGxzX3NoYTFfZnJlZSgmY3R4KTsKKyAgICByZXR1cm4gcmV0OworfQorCisjaWYgZGVmaW5lZChNQkVEVExTX1NFTEZfVEVTVCkKKy8qCisgKiBGSVBTLTE4MC0xIHRlc3QgdmVjdG9ycworICovCitzdGF0aWMgY29uc3QgdW5zaWduZWQgY2hhciBzaGExX3Rlc3RfYnVmWzNdWzU3XSA9Cit7CisgICAgeyAiYWJjIiB9LAorICAgIHsgImFiY2RiY2RlY2RlZmRlZmdlZmdoZmdoaWdoaWpoaWpraWprbGprbG1rbG1ubG1ub21ub3Bub3BxIiB9LAorICAgIHsgIiIgfQorfTsKKworc3RhdGljIGNvbnN0IHNpemVfdCBzaGExX3Rlc3RfYnVmbGVuWzNdID0KK3sKKyAgICAzLCA1NiwgMTAwMAorfTsKKworc3RhdGljIGNvbnN0IHVuc2lnbmVkIGNoYXIgc2hhMV90ZXN0X3N1bVszXVsyMF0gPQoreworICAgIHsgMHhBOSwgMHg5OSwgMHgzRSwgMHgzNiwgMHg0NywgMHgwNiwgMHg4MSwgMHg2QSwgMHhCQSwgMHgzRSwKKyAgICAgIDB4MjUsIDB4NzEsIDB4NzgsIDB4NTAsIDB4QzIsIDB4NkMsIDB4OUMsIDB4RDAsIDB4RDgsIDB4OUQgfSwKKyAgICB7IDB4ODQsIDB4OTgsIDB4M0UsIDB4NDQsIDB4MUMsIDB4M0IsIDB4RDIsIDB4NkUsIDB4QkEsIDB4QUUsCisgICAgICAweDRBLCAweEExLCAweEY5LCAweDUxLCAweDI5LCAweEU1LCAweEU1LCAweDQ2LCAweDcwLCAweEYxIH0sCisgICAgeyAweDM0LCAweEFBLCAweDk3LCAweDNDLCAweEQ0LCAweEM0LCAweERBLCAweEE0LCAweEY2LCAweDFFLAorICAgICAgMHhFQiwgMHgyQiwgMHhEQiwgMHhBRCwgMHgyNywgMHgzMSwgMHg2NSwgMHgzNCwgMHgwMSwgMHg2RiB9Cit9OworCisvKgorICogQ2hlY2t1cCByb3V0aW5lCisgKi8KK2ludCBtYmVkdGxzX3NoYTFfc2VsZl90ZXN0KGludCB2ZXJib3NlKQoreworICAgIGludCBpLCBqLCBidWZsZW4sIHJldCA9IDA7CisgICAgdW5zaWduZWQgY2hhciBidWZbMTAyNF07CisgICAgdW5zaWduZWQgY2hhciBzaGExc3VtWzIwXTsKKyAgICBtYmVkdGxzX3NoYTFfY29udGV4dCBjdHg7CisKKyAgICBtYmVkdGxzX3NoYTFfaW5pdCgmY3R4KTsKKworICAgIC8qCisgICAgICogU0hBLTEKKyAgICAgKi8KKyAgICBmb3IgKGkgPSAwOyBpIDwgMzsgaSsrKSB7CisgICAgICAgIGlmICh2ZXJib3NlICE9IDApIHsKKyAgICAgICAgICAgIG1iZWR0bHNfcHJpbnRmKCIgIFNIQS0xIHRlc3QgIyVkOiAiLCBpICsgMSk7CisgICAgICAgIH0KKworICAgICAgICBpZiAoKHJldCA9IG1iZWR0bHNfc2hhMV9zdGFydHMoJmN0eCkpICE9IDApIHsKKyAgICAgICAgICAgIGdvdG8gZmFpbDsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChpID09IDIpIHsKKyAgICAgICAgICAgIG1lbXNldChidWYsICdhJywgYnVmbGVuID0gMTAwMCk7CisKKyAgICAgICAgICAgIGZvciAoaiA9IDA7IGogPCAxMDAwOyBqKyspIHsKKyAgICAgICAgICAgICAgICByZXQgPSBtYmVkdGxzX3NoYTFfdXBkYXRlKCZjdHgsIGJ1ZiwgYnVmbGVuKTsKKyAgICAgICAgICAgICAgICBpZiAocmV0ICE9IDApIHsKKyAgICAgICAgICAgICAgICAgICAgZ290byBmYWlsOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHJldCA9IG1iZWR0bHNfc2hhMV91cGRhdGUoJmN0eCwgc2hhMV90ZXN0X2J1ZltpXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2hhMV90ZXN0X2J1ZmxlbltpXSk7CisgICAgICAgICAgICBpZiAocmV0ICE9IDApIHsKKyAgICAgICAgICAgICAgICBnb3RvIGZhaWw7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBpZiAoKHJldCA9IG1iZWR0bHNfc2hhMV9maW5pc2goJmN0eCwgc2hhMXN1bSkpICE9IDApIHsKKyAgICAgICAgICAgIGdvdG8gZmFpbDsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChtZW1jbXAoc2hhMXN1bSwgc2hhMV90ZXN0X3N1bVtpXSwgMjApICE9IDApIHsKKyAgICAgICAgICAgIHJldCA9IDE7CisgICAgICAgICAgICBnb3RvIGZhaWw7CisgICAgICAgIH0KKworICAgICAgICBpZiAodmVyYm9zZSAhPSAwKSB7CisgICAgICAgICAgICBtYmVkdGxzX3ByaW50ZigicGFzc2VkXG4iKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIGlmICh2ZXJib3NlICE9IDApIHsKKyAgICAgICAgbWJlZHRsc19wcmludGYoIlxuIik7CisgICAgfQorCisgICAgZ290byBleGl0OworCitmYWlsOgorICAgIGlmICh2ZXJib3NlICE9IDApIHsKKyAgICAgICAgbWJlZHRsc19wcmludGYoImZhaWxlZFxuIik7CisgICAgfQorCitleGl0OgorICAgIG1iZWR0bHNfc2hhMV9mcmVlKCZjdHgpOworCisgICAgcmV0dXJuIHJldDsKK30KKworI2VuZGlmIC8qIE1CRURUTFNfU0VMRl9URVNUICovCisKKyNlbmRpZiAvKiBNQkVEVExTX1NIQTFfQyAqLwpkaWZmIC0tZ2l0IGEvdGYtcHNhLWNyeXB0by9kcml2ZXJzL2J1aWx0aW4vc3JjL3NoYTI1Ni5jIGIvdGYtcHNhLWNyeXB0by9kcml2ZXJzL2J1aWx0aW4vc3JjL3NoYTI1Ni5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmVjMWU5NjkKLS0tIC9kZXYvbnVsbAorKysgYi90Zi1wc2EtY3J5cHRvL2RyaXZlcnMvYnVpbHRpbi9zcmMvc2hhMjU2LmMKQEAgLTAsMCArMSw5NzQgQEAKKy8qCisgKiAgRklQUy0xODAtMiBjb21wbGlhbnQgU0hBLTI1NiBpbXBsZW1lbnRhdGlvbgorICoKKyAqICBDb3B5cmlnaHQgVGhlIE1iZWQgVExTIENvbnRyaWJ1dG9ycworICogIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wIE9SIEdQTC0yLjAtb3ItbGF0ZXIKKyAqLworLyoKKyAqICBUaGUgU0hBLTI1NiBTZWN1cmUgSGFzaCBTdGFuZGFyZCB3YXMgcHVibGlzaGVkIGJ5IE5JU1QgaW4gMjAwMi4KKyAqCisgKiAgaHR0cDovL2NzcmMubmlzdC5nb3YvcHVibGljYXRpb25zL2ZpcHMvZmlwczE4MC0yL2ZpcHMxODAtMi5wZGYKKyAqLworCisjaWYgZGVmaW5lZChfX2NsYW5nX18pICYmICAoX19jbGFuZ19tYWpvcl9fID49IDQpCisKKy8qIElkZWFsbHksIHdlIHdvdWxkIHNpbXBseSB1c2UgTUJFRFRMU19BUkNIX0lTX0FSTVY4X0EgaW4gdGhlIGZvbGxvd2luZyAjaWYsCisgKiBidXQgdGhhdCBpcyBkZWZpbmVkIGJ5IGJ1aWxkX2luZm8uaCwgYW5kIHdlIG5lZWQgdGhpcyBibG9jayB0byBoYXBwZW4gZmlyc3QuICovCisjaWYgZGVmaW5lZChfX0FSTV9BUkNIKSAmJiAoX19BUk1fQVJDSF9QUk9GSUxFID09ICdBJykKKyNpZiBfX0FSTV9BUkNIID49IDgKKyNkZWZpbmUgTUJFRFRMU19TSEEyNTZfQVJDSF9JU19BUk1WOF9BCisjZW5kaWYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChNQkVEVExTX1NIQTI1Nl9BUkNIX0lTX0FSTVY4X0EpICYmICFkZWZpbmVkKF9fQVJNX0ZFQVRVUkVfQ1JZUFRPKQorLyogVE9ETzogUmUtY29uc2lkZXIgYWJvdmUgYWZ0ZXIgaHR0cHM6Ly9yZXZpZXdzLmxsdm0ub3JnL0QxMzEwNjQgbWVyZ2VkLgorICoKKyAqIFRoZSBpbnRyaW5zaWMgZGVjbGFyYXRpb24gYXJlIGd1YXJkZWQgYnkgcHJlZGVmaW5lZCBBQ0xFIG1hY3JvcyBpbiBjbGFuZzoKKyAqIHRoZXNlIGFyZSBub3JtYWxseSBvbmx5IGVuYWJsZWQgYnkgdGhlIC1tYXJjaCBvcHRpb24gb24gdGhlIGNvbW1hbmQgbGluZS4KKyAqIEJ5IGRlZmluaW5nIHRoZSBtYWNyb3Mgb3Vyc2VsdmVzIHdlIGdhaW4gYWNjZXNzIHRvIHRob3NlIGRlY2xhcmF0aW9ucyB3aXRob3V0CisgKiByZXF1aXJpbmcgLW1hcmNoIG9uIHRoZSBjb21tYW5kIGxpbmUuCisgKgorICogYGFybV9uZW9uLmhgIGlzIGluY2x1ZGVkIGJ5IGNvbW1vbi5oLCBzbyB3ZSBwdXQgdGhlc2UgZGVmaW5lcworICogYXQgdGhlIHRvcCBvZiB0aGlzIGZpbGUsIGJlZm9yZSBhbnkgaW5jbHVkZXMuCisgKi8KKyNkZWZpbmUgX19BUk1fRkVBVFVSRV9DUllQVE8gMQorLyogU2VlOiBodHRwczovL2FybS1zb2Z0d2FyZS5naXRodWIuaW8vYWNsZS9tYWluL2FjbGUuaHRtbCNjcnlwdG9ncmFwaGljLWV4dGVuc2lvbnMKKyAqCisgKiBgX19BUk1fRkVBVFVSRV9DUllQVE9gIGlzIGRlcHJlY2F0ZWQsIGJ1dCB3ZSBuZWVkIHRvIGNvbnRpbnVlIHRvIHNwZWNpZnkgaXQKKyAqIGZvciBvbGRlciBjb21waWxlcnMuCisgKi8KKyNkZWZpbmUgX19BUk1fRkVBVFVSRV9TSEEyICAgMQorI2RlZmluZSBNQkVEVExTX0VOQUJMRV9BUk1fQ1JZUFRPX0VYVEVOU0lPTlNfQ09NUElMRVJfRkxBRworI2VuZGlmCisKKyNlbmRpZiAvKiBkZWZpbmVkKF9fY2xhbmdfXykgJiYgIChfX2NsYW5nX21ham9yX18gPj0gNCkgKi8KKworLyogRW5zdXJlIHRoYXQgU0lHX1NFVE1BU0sgaXMgZGVmaW5lZCB3aGVuIC1zdGQ9Yzk5IGlzIHVzZWQuICovCisjaWYgIWRlZmluZWQoX0dOVV9TT1VSQ0UpCisjZGVmaW5lIF9HTlVfU09VUkNFCisjZW5kaWYKKworI2luY2x1ZGUgImNvbW1vbi5oIgorCisjaWYgZGVmaW5lZChNQkVEVExTX1NIQTI1Nl9DKSB8fCBkZWZpbmVkKE1CRURUTFNfU0hBMjI0X0MpCisKKyNpbmNsdWRlICJtYmVkdGxzL3NoYTI1Ni5oIgorI2luY2x1ZGUgIm1iZWR0bHMvcGxhdGZvcm1fdXRpbC5oIgorI2luY2x1ZGUgIm1iZWR0bHMvZXJyb3IuaCIKKworI2luY2x1ZGUgPHN0cmluZy5oPgorCisjaW5jbHVkZSAibWJlZHRscy9wbGF0Zm9ybS5oIgorCisjaWYgZGVmaW5lZChNQkVEVExTX0FSQ0hfSVNfQVJNVjhfQSkKKworIyAgaWYgZGVmaW5lZChNQkVEVExTX1NIQTI1Nl9VU0VfQVJNVjhfQV9DUllQVE9fSUZfUFJFU0VOVCkgfHwgXAorICAgIGRlZmluZWQoTUJFRFRMU19TSEEyNTZfVVNFX0FSTVY4X0FfQ1JZUFRPX09OTFkpCisjICAgICAgIGlmICFkZWZpbmVkKE1CRURUTFNfSEFWRV9ORU9OX0lOVFJJTlNJQ1MpCisjICAgICAgICAgICBpZiBkZWZpbmVkKE1CRURUTFNfU0hBMjU2X1VTRV9BUk1WOF9BX0NSWVBUT19JRl9QUkVTRU5UKQorIyAgICAgICAgICAgICAgIHdhcm5pbmcgIlRhcmdldCBkb2VzIG5vdCBzdXBwb3J0IE5FT04gaW5zdHJ1Y3Rpb25zIgorIyAgICAgICAgICAgICAgIHVuZGVmIE1CRURUTFNfU0hBMjU2X1VTRV9BUk1WOF9BX0NSWVBUT19JRl9QUkVTRU5UCisjICAgICAgICAgICBlbHNlCisjICAgICAgICAgICAgICAgZXJyb3IgIlRhcmdldCBkb2VzIG5vdCBzdXBwb3J0IE5FT04gaW5zdHJ1Y3Rpb25zIgorIyAgICAgICAgICAgZW5kaWYKKyMgICAgICAgZW5kaWYKKyMgICBlbmRpZgorCisjICBpZiBkZWZpbmVkKE1CRURUTFNfU0hBMjU2X1VTRV9BUk1WOF9BX0NSWVBUT19JRl9QUkVTRU5UKSB8fCBcCisgICAgZGVmaW5lZChNQkVEVExTX1NIQTI1Nl9VU0VfQVJNVjhfQV9DUllQVE9fT05MWSkKKy8qICpJTkRFTlQtT0ZGKiAqLworCisjICAgaWYgIWRlZmluZWQoX19BUk1fRkVBVFVSRV9DUllQVE8pIHx8IGRlZmluZWQoTUJFRFRMU19FTkFCTEVfQVJNX0NSWVBUT19FWFRFTlNJT05TX0NPTVBJTEVSX0ZMQUcpCisjICAgICAgaWYgZGVmaW5lZChfX0FSTUNPTVBJTEVSX1ZFUlNJT04pCisjICAgICAgICBpZiBfX0FSTUNPTVBJTEVSX1ZFUlNJT04gPD0gNjA5MDAwMAorIyAgICAgICAgICBlcnJvciAiTXVzdCB1c2UgbWluaW11bSAtbWFyY2g9YXJtdjgtYStjcnlwdG8gZm9yIE1CRURUTFNfU0hBMjU2X1VTRV9BUk1WOF9BX0NSWVBUT18qIgorIyAgICAgICAgZW5kaWYKKyMgICAgICAgICAgcHJhZ21hIGNsYW5nIGF0dHJpYnV0ZSBwdXNoIChfX2F0dHJpYnV0ZV9fKCh0YXJnZXQoInNoYTIiKSkpLCBhcHBseV90bz1mdW5jdGlvbikKKyMgICAgICAgICAgZGVmaW5lIE1CRURUTFNfUE9QX1RBUkdFVF9QUkFHTUEKKyMgICAgICBlbGlmIGRlZmluZWQoX19jbGFuZ19fKQorIyAgICAgICAgaWYgX19jbGFuZ19tYWpvcl9fIDwgNAorIyAgICAgICAgICBlcnJvciAiQSBtb3JlIHJlY2VudCBDbGFuZyBpcyByZXF1aXJlZCBmb3IgTUJFRFRMU19TSEEyNTZfVVNFX0FSTVY4X0FfQ1JZUFRPXyoiCisjICAgICAgICBlbmRpZgorIyAgICAgICAgcHJhZ21hIGNsYW5nIGF0dHJpYnV0ZSBwdXNoIChfX2F0dHJpYnV0ZV9fKCh0YXJnZXQoImNyeXB0byIpKSksIGFwcGx5X3RvPWZ1bmN0aW9uKQorIyAgICAgICAgZGVmaW5lIE1CRURUTFNfUE9QX1RBUkdFVF9QUkFHTUEKKyMgICAgICBlbGlmIGRlZmluZWQoX19HTlVDX18pCisgICAgICAgICAvKiBGSVhNRTogR0NDIDUgY2xhaW1zIHRvIHN1cHBvcnQgQXJtdjggQ3J5cHRvIEV4dGVuc2lvbnMsIGJ1dCBzb21lCisgICAgICAgICAgKiAgICAgICAgaW50cmluc2ljcyBhcmUgbWlzc2luZy4gTWlzc2luZyBpbnRyaW5zaWNzIGNvdWxkIGJlIHdvcmtlZCBhcm91bmQuCisgICAgICAgICAgKi8KKyMgICAgICAgIGlmIF9fR05VQ19fIDwgNgorIyAgICAgICAgICBlcnJvciAiQSBtb3JlIHJlY2VudCBHQ0MgaXMgcmVxdWlyZWQgZm9yIE1CRURUTFNfU0hBMjU2X1VTRV9BUk1WOF9BX0NSWVBUT18qIgorIyAgICAgICAgZWxzZQorIyAgICAgICAgICBwcmFnbWEgR0NDIHB1c2hfb3B0aW9ucworIyAgICAgICAgICBwcmFnbWEgR0NDIHRhcmdldCAoImFyY2g9YXJtdjgtYStjcnlwdG8iKQorIyAgICAgICAgICBkZWZpbmUgTUJFRFRMU19QT1BfVEFSR0VUX1BSQUdNQQorIyAgICAgICAgZW5kaWYKKyMgICAgICBlbHNlCisjICAgICAgICBlcnJvciAiT25seSBHQ0MgYW5kIENsYW5nIHN1cHBvcnRlZCBmb3IgTUJFRFRMU19TSEEyNTZfVVNFX0FSTVY4X0FfQ1JZUFRPXyoiCisjICAgICAgZW5kaWYKKyMgICAgZW5kaWYKKy8qICpJTkRFTlQtT04qICovCisKKyMgIGVuZGlmCisjICBpZiBkZWZpbmVkKE1CRURUTFNfU0hBMjU2X1VTRV9BUk1WOF9BX0NSWVBUT19JRl9QUkVTRU5UKQorIyAgICBpZiBkZWZpbmVkKF9fdW5peF9fKQorIyAgICAgIGlmIGRlZmluZWQoX19saW51eF9fKQorLyogT3VyIHByZWZlcnJlZCBtZXRob2Qgb2YgZGV0ZWN0aW9uIGlzIGdldGF1eHZhbCgpICovCisjICAgICAgICBpbmNsdWRlIDxzeXMvYXV4di5oPgorLyogVGhlc2UgYXJlIG5vdCBhbHdheXMgZGVmaW5lZCB2aWEgc3lzL2F1eHYuaCAqLworIyAgICAgICAgaWYgIWRlZmluZWQoSFdDQVBfU0hBMikKKyMgICAgICAgICAgZGVmaW5lIEhXQ0FQX1NIQTIgICgxIDw8IDYpCisjICAgICAgICBlbmRpZgorIyAgICAgICAgaWYgIWRlZmluZWQoSFdDQVAyX1NIQTIpCisjICAgICAgICAgIGRlZmluZSBIV0NBUDJfU0hBMiAoMSA8PCAzKQorIyAgICAgICAgZW5kaWYKKyMgICAgICBlbmRpZgorLyogVXNlIFNJR0lMTCBvbiBVbml4LCBhbmQgZmFsbCBiYWNrIHRvIGl0IG9uIExpbnV4ICovCisjICAgICAgaW5jbHVkZSA8c2lnbmFsLmg+CisjICAgIGVuZGlmCisjICBlbmRpZgorI2VsaWYgIWRlZmluZWQoTUJFRFRMU19QTEFURk9STV9JU19XSU5ET1dTX09OX0FSTTY0KQorIyAgdW5kZWYgTUJFRFRMU19TSEEyNTZfVVNFX0FSTVY4X0FfQ1JZUFRPX09OTFkKKyMgIHVuZGVmIE1CRURUTFNfU0hBMjU2X1VTRV9BUk1WOF9BX0NSWVBUT19JRl9QUkVTRU5UCisjZW5kaWYKKworI2lmIGRlZmluZWQoTUJFRFRMU19TSEEyNTZfVVNFX0FSTVY4X0FfQ1JZUFRPX0lGX1BSRVNFTlQpCisvKgorICogQ2FwYWJpbGl0eSBkZXRlY3Rpb24gY29kZSBjb21lcyBlYXJseSwgc28gd2UgY2FuIGRpc2FibGUKKyAqIE1CRURUTFNfU0hBMjU2X1VTRV9BUk1WOF9BX0NSWVBUT19JRl9QUkVTRU5UIGlmIG5vIGRldGVjdGlvbiBtZWNoYW5pc20gZm91bmQKKyAqLworI2lmIGRlZmluZWQoTUJFRFRMU19BUkNIX0lTX0FSTTY0KSAmJiBkZWZpbmVkKEhXQ0FQX1NIQTIpCitzdGF0aWMgaW50IG1iZWR0bHNfYTY0X2NyeXB0b19zaGEyNTZfZGV0ZXJtaW5lX3N1cHBvcnQodm9pZCkKK3sKKyAgICByZXR1cm4gKGdldGF1eHZhbChBVF9IV0NBUCkgJiBIV0NBUF9TSEEyKSA/IDEgOiAwOworfQorI2VsaWYgZGVmaW5lZChNQkVEVExTX0FSQ0hfSVNfQVJNMzIpICYmIGRlZmluZWQoSFdDQVAyX1NIQTIpCitzdGF0aWMgaW50IG1iZWR0bHNfYTY0X2NyeXB0b19zaGEyNTZfZGV0ZXJtaW5lX3N1cHBvcnQodm9pZCkKK3sKKyAgICByZXR1cm4gKGdldGF1eHZhbChBVF9IV0NBUDIpICYgSFdDQVAyX1NIQTIpID8gMSA6IDA7Cit9CisjZWxpZiBkZWZpbmVkKF9fQVBQTEVfXykKK3N0YXRpYyBpbnQgbWJlZHRsc19hNjRfY3J5cHRvX3NoYTI1Nl9kZXRlcm1pbmVfc3VwcG9ydCh2b2lkKQoreworICAgIHJldHVybiAxOworfQorI2VsaWYgZGVmaW5lZChNQkVEVExTX1BMQVRGT1JNX0lTX1dJTkRPV1NfT05fQVJNNjQpCisjZGVmaW5lIFdJTjMyX0xFQU5fQU5EX01FQU4KKyNpbmNsdWRlIDxXaW5kb3dzLmg+CisjaW5jbHVkZSA8cHJvY2Vzc3RocmVhZHNhcGkuaD4KKworc3RhdGljIGludCBtYmVkdGxzX2E2NF9jcnlwdG9fc2hhMjU2X2RldGVybWluZV9zdXBwb3J0KHZvaWQpCit7CisgICAgcmV0dXJuIElzUHJvY2Vzc29yRmVhdHVyZVByZXNlbnQoUEZfQVJNX1Y4X0NSWVBUT19JTlNUUlVDVElPTlNfQVZBSUxBQkxFKSA/CisgICAgICAgICAgIDEgOiAwOworfQorI2VsaWYgZGVmaW5lZChfX3VuaXhfXykgJiYgZGVmaW5lZChTSUdfU0VUTUFTSykKKy8qIERldGVjdGlvbiB3aXRoIFNJR0lMTCwgc2V0am1wKCkgYW5kIGxvbmdqbXAoKSAqLworI2luY2x1ZGUgPHNpZ25hbC5oPgorI2luY2x1ZGUgPHNldGptcC5oPgorCitzdGF0aWMgam1wX2J1ZiByZXR1cm5fZnJvbV9zaWdpbGw7CisKKy8qCisgKiBBcm12OC1BIFNIQTI1NiBzdXBwb3J0IGRldGVjdGlvbiB2aWEgU0lHSUxMCisgKi8KK3N0YXRpYyB2b2lkIHNpZ2lsbF9oYW5kbGVyKGludCBzaWduYWwpCit7CisgICAgKHZvaWQpIHNpZ25hbDsKKyAgICBsb25nam1wKHJldHVybl9mcm9tX3NpZ2lsbCwgMSk7Cit9CisKK3N0YXRpYyBpbnQgbWJlZHRsc19hNjRfY3J5cHRvX3NoYTI1Nl9kZXRlcm1pbmVfc3VwcG9ydCh2b2lkKQoreworICAgIHN0cnVjdCBzaWdhY3Rpb24gb2xkX2FjdGlvbiwgbmV3X2FjdGlvbjsKKworICAgIHNpZ3NldF90IG9sZF9tYXNrOworICAgIGlmIChzaWdwcm9jbWFzaygwLCBOVUxMLCAmb2xkX21hc2spKSB7CisgICAgICAgIHJldHVybiAwOworICAgIH0KKworICAgIHNpZ2VtcHR5c2V0KCZuZXdfYWN0aW9uLnNhX21hc2spOworICAgIG5ld19hY3Rpb24uc2FfZmxhZ3MgPSAwOworICAgIG5ld19hY3Rpb24uc2FfaGFuZGxlciA9IHNpZ2lsbF9oYW5kbGVyOworCisgICAgc2lnYWN0aW9uKFNJR0lMTCwgJm5ld19hY3Rpb24sICZvbGRfYWN0aW9uKTsKKworICAgIHN0YXRpYyBpbnQgcmV0ID0gMDsKKworICAgIGlmIChzZXRqbXAocmV0dXJuX2Zyb21fc2lnaWxsKSA9PSAwKSB7ICAgICAgICAgLyogRmlyc3QgcmV0dXJuIG9ubHkgKi8KKyAgICAgICAgLyogSWYgdGhpcyB0cmFwcywgd2Ugd2lsbCByZXR1cm4gYSBzZWNvbmQgdGltZSBmcm9tIHNldGptcCgpIHdpdGggMSAqLworI2lmIGRlZmluZWQoTUJFRFRMU19BUkNIX0lTX0FSTTY0KQorICAgICAgICBhc20gdm9sYXRpbGUgKCJzaGEyNTZoIHEwLCBxMCwgdjAuNHMiIDogOiA6ICJ2MCIpOworI2Vsc2UKKyAgICAgICAgYXNtIHZvbGF0aWxlICgic2hhMjU2aC4zMiBxMCwgcTAsIHEwIiA6IDogOiAicTAiKTsKKyNlbmRpZgorICAgICAgICByZXQgPSAxOworICAgIH0KKworICAgIHNpZ2FjdGlvbihTSUdJTEwsICZvbGRfYWN0aW9uLCBOVUxMKTsKKyAgICBzaWdwcm9jbWFzayhTSUdfU0VUTUFTSywgJm9sZF9tYXNrLCBOVUxMKTsKKworICAgIHJldHVybiByZXQ7Cit9CisjZWxzZQorI3dhcm5pbmcgIk5vIG1lY2hhbmlzbSB0byBkZXRlY3QgQVJNVjhfQ1JZUFRPIGZvdW5kLCB1c2luZyBDIGNvZGUgb25seSIKKyN1bmRlZiBNQkVEVExTX1NIQTI1Nl9VU0VfQVJNVjhfQV9DUllQVE9fSUZfUFJFU0VOVAorI2VuZGlmICAvKiBIV0NBUF9TSEEyLCBfX0FQUExFX18sIF9fdW5peF9fICYmIFNJR19TRVRNQVNLICovCisKKyNlbmRpZiAgLyogTUJFRFRMU19TSEEyNTZfVVNFX0FSTVY4X0FfQ1JZUFRPX0lGX1BSRVNFTlQgKi8KKworI2RlZmluZSBTSEEyNTZfQkxPQ0tfU0laRSA2NAorCit2b2lkIG1iZWR0bHNfc2hhMjU2X2luaXQobWJlZHRsc19zaGEyNTZfY29udGV4dCAqY3R4KQoreworICAgIG1lbXNldChjdHgsIDAsIHNpemVvZihtYmVkdGxzX3NoYTI1Nl9jb250ZXh0KSk7Cit9CisKK3ZvaWQgbWJlZHRsc19zaGEyNTZfZnJlZShtYmVkdGxzX3NoYTI1Nl9jb250ZXh0ICpjdHgpCit7CisgICAgaWYgKGN0eCA9PSBOVUxMKSB7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBtYmVkdGxzX3BsYXRmb3JtX3plcm9pemUoY3R4LCBzaXplb2YobWJlZHRsc19zaGEyNTZfY29udGV4dCkpOworfQorCit2b2lkIG1iZWR0bHNfc2hhMjU2X2Nsb25lKG1iZWR0bHNfc2hhMjU2X2NvbnRleHQgKmRzdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbWJlZHRsc19zaGEyNTZfY29udGV4dCAqc3JjKQoreworICAgICpkc3QgPSAqc3JjOworfQorCisvKgorICogU0hBLTI1NiBjb250ZXh0IHNldHVwCisgKi8KK2ludCBtYmVkdGxzX3NoYTI1Nl9zdGFydHMobWJlZHRsc19zaGEyNTZfY29udGV4dCAqY3R4LCBpbnQgaXMyMjQpCit7CisjaWYgZGVmaW5lZChNQkVEVExTX1NIQTIyNF9DKSAmJiBkZWZpbmVkKE1CRURUTFNfU0hBMjU2X0MpCisgICAgaWYgKGlzMjI0ICE9IDAgJiYgaXMyMjQgIT0gMSkgeworICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfU0hBMjU2X0JBRF9JTlBVVF9EQVRBOworICAgIH0KKyNlbGlmIGRlZmluZWQoTUJFRFRMU19TSEEyNTZfQykKKyAgICBpZiAoaXMyMjQgIT0gMCkgeworICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfU0hBMjU2X0JBRF9JTlBVVF9EQVRBOworICAgIH0KKyNlbHNlIC8qIGRlZmluZWQgTUJFRFRMU19TSEEyMjRfQyBvbmx5ICovCisgICAgaWYgKGlzMjI0ID09IDApIHsKKyAgICAgICAgcmV0dXJuIE1CRURUTFNfRVJSX1NIQTI1Nl9CQURfSU5QVVRfREFUQTsKKyAgICB9CisjZW5kaWYKKworICAgIGN0eC0+dG90YWxbMF0gPSAwOworICAgIGN0eC0+dG90YWxbMV0gPSAwOworCisgICAgaWYgKGlzMjI0ID09IDApIHsKKyNpZiBkZWZpbmVkKE1CRURUTFNfU0hBMjU2X0MpCisgICAgICAgIGN0eC0+c3RhdGVbMF0gPSAweDZBMDlFNjY3OworICAgICAgICBjdHgtPnN0YXRlWzFdID0gMHhCQjY3QUU4NTsKKyAgICAgICAgY3R4LT5zdGF0ZVsyXSA9IDB4M0M2RUYzNzI7CisgICAgICAgIGN0eC0+c3RhdGVbM10gPSAweEE1NEZGNTNBOworICAgICAgICBjdHgtPnN0YXRlWzRdID0gMHg1MTBFNTI3RjsKKyAgICAgICAgY3R4LT5zdGF0ZVs1XSA9IDB4OUIwNTY4OEM7CisgICAgICAgIGN0eC0+c3RhdGVbNl0gPSAweDFGODNEOUFCOworICAgICAgICBjdHgtPnN0YXRlWzddID0gMHg1QkUwQ0QxOTsKKyNlbmRpZgorICAgIH0gZWxzZSB7CisjaWYgZGVmaW5lZChNQkVEVExTX1NIQTIyNF9DKQorICAgICAgICBjdHgtPnN0YXRlWzBdID0gMHhDMTA1OUVEODsKKyAgICAgICAgY3R4LT5zdGF0ZVsxXSA9IDB4MzY3Q0Q1MDc7CisgICAgICAgIGN0eC0+c3RhdGVbMl0gPSAweDMwNzBERDE3OworICAgICAgICBjdHgtPnN0YXRlWzNdID0gMHhGNzBFNTkzOTsKKyAgICAgICAgY3R4LT5zdGF0ZVs0XSA9IDB4RkZDMDBCMzE7CisgICAgICAgIGN0eC0+c3RhdGVbNV0gPSAweDY4NTgxNTExOworICAgICAgICBjdHgtPnN0YXRlWzZdID0gMHg2NEY5OEZBNzsKKyAgICAgICAgY3R4LT5zdGF0ZVs3XSA9IDB4QkVGQTRGQTQ7CisjZW5kaWYKKyAgICB9CisKKyNpZiBkZWZpbmVkKE1CRURUTFNfU0hBMjI0X0MpCisgICAgY3R4LT5pczIyNCA9IGlzMjI0OworI2VuZGlmCisKKyAgICByZXR1cm4gMDsKK30KKworI2lmICFkZWZpbmVkKE1CRURUTFNfU0hBMjU2X1BST0NFU1NfQUxUKQorc3RhdGljIGNvbnN0IHVpbnQzMl90IEtbXSA9Cit7CisgICAgMHg0MjhBMkY5OCwgMHg3MTM3NDQ5MSwgMHhCNUMwRkJDRiwgMHhFOUI1REJBNSwKKyAgICAweDM5NTZDMjVCLCAweDU5RjExMUYxLCAweDkyM0Y4MkE0LCAweEFCMUM1RUQ1LAorICAgIDB4RDgwN0FBOTgsIDB4MTI4MzVCMDEsIDB4MjQzMTg1QkUsIDB4NTUwQzdEQzMsCisgICAgMHg3MkJFNUQ3NCwgMHg4MERFQjFGRSwgMHg5QkRDMDZBNywgMHhDMTlCRjE3NCwKKyAgICAweEU0OUI2OUMxLCAweEVGQkU0Nzg2LCAweDBGQzE5REM2LCAweDI0MENBMUNDLAorICAgIDB4MkRFOTJDNkYsIDB4NEE3NDg0QUEsIDB4NUNCMEE5REMsIDB4NzZGOTg4REEsCisgICAgMHg5ODNFNTE1MiwgMHhBODMxQzY2RCwgMHhCMDAzMjdDOCwgMHhCRjU5N0ZDNywKKyAgICAweEM2RTAwQkYzLCAweEQ1QTc5MTQ3LCAweDA2Q0E2MzUxLCAweDE0MjkyOTY3LAorICAgIDB4MjdCNzBBODUsIDB4MkUxQjIxMzgsIDB4NEQyQzZERkMsIDB4NTMzODBEMTMsCisgICAgMHg2NTBBNzM1NCwgMHg3NjZBMEFCQiwgMHg4MUMyQzkyRSwgMHg5MjcyMkM4NSwKKyAgICAweEEyQkZFOEExLCAweEE4MUE2NjRCLCAweEMyNEI4QjcwLCAweEM3NkM1MUEzLAorICAgIDB4RDE5MkU4MTksIDB4RDY5OTA2MjQsIDB4RjQwRTM1ODUsIDB4MTA2QUEwNzAsCisgICAgMHgxOUE0QzExNiwgMHgxRTM3NkMwOCwgMHgyNzQ4Nzc0QywgMHgzNEIwQkNCNSwKKyAgICAweDM5MUMwQ0IzLCAweDRFRDhBQTRBLCAweDVCOUNDQTRGLCAweDY4MkU2RkYzLAorICAgIDB4NzQ4RjgyRUUsIDB4NzhBNTYzNkYsIDB4ODRDODc4MTQsIDB4OENDNzAyMDgsCisgICAgMHg5MEJFRkZGQSwgMHhBNDUwNkNFQiwgMHhCRUY5QTNGNywgMHhDNjcxNzhGMiwKK307CisKKyNlbmRpZgorCisjaWYgZGVmaW5lZChNQkVEVExTX1NIQTI1Nl9VU0VfQVJNVjhfQV9DUllQVE9fSUZfUFJFU0VOVCkgfHwgXAorICAgIGRlZmluZWQoTUJFRFRMU19TSEEyNTZfVVNFX0FSTVY4X0FfQ1JZUFRPX09OTFkpCisKKyNpZiBkZWZpbmVkKE1CRURUTFNfU0hBMjU2X1VTRV9BUk1WOF9BX0NSWVBUT19PTkxZKQorIyAgZGVmaW5lIG1iZWR0bHNfaW50ZXJuYWxfc2hhMjU2X3Byb2Nlc3NfbWFueV9hNjRfY3J5cHRvIG1iZWR0bHNfaW50ZXJuYWxfc2hhMjU2X3Byb2Nlc3NfbWFueQorIyAgZGVmaW5lIG1iZWR0bHNfaW50ZXJuYWxfc2hhMjU2X3Byb2Nlc3NfYTY0X2NyeXB0byAgICAgIG1iZWR0bHNfaW50ZXJuYWxfc2hhMjU2X3Byb2Nlc3MKKyNlbmRpZgorCitzdGF0aWMgc2l6ZV90IG1iZWR0bHNfaW50ZXJuYWxfc2hhMjU2X3Byb2Nlc3NfbWFueV9hNjRfY3J5cHRvKAorICAgIG1iZWR0bHNfc2hhMjU2X2NvbnRleHQgKmN0eCwgY29uc3QgdWludDhfdCAqbXNnLCBzaXplX3QgbGVuKQoreworICAgIHVpbnQzMng0X3QgYWJjZCA9IHZsZDFxX3UzMigmY3R4LT5zdGF0ZVswXSk7CisgICAgdWludDMyeDRfdCBlZmdoID0gdmxkMXFfdTMyKCZjdHgtPnN0YXRlWzRdKTsKKworICAgIHNpemVfdCBwcm9jZXNzZWQgPSAwOworCisgICAgZm9yICg7CisgICAgICAgICBsZW4gPj0gU0hBMjU2X0JMT0NLX1NJWkU7CisgICAgICAgICBwcm9jZXNzZWQgKz0gU0hBMjU2X0JMT0NLX1NJWkUsCisgICAgICAgICBtc2cgKz0gU0hBMjU2X0JMT0NLX1NJWkUsCisgICAgICAgICBsZW4gLT0gU0hBMjU2X0JMT0NLX1NJWkUpIHsKKyAgICAgICAgdWludDMyeDRfdCB0bXAsIGFiY2RfcHJldjsKKworICAgICAgICB1aW50MzJ4NF90IGFiY2Rfb3JpZyA9IGFiY2Q7CisgICAgICAgIHVpbnQzMng0X3QgZWZnaF9vcmlnID0gZWZnaDsKKworICAgICAgICB1aW50MzJ4NF90IHNjaGVkMCA9IHZyZWludGVycHJldHFfdTMyX3U4KHZsZDFxX3U4KG1zZyArIDE2ICogMCkpOworICAgICAgICB1aW50MzJ4NF90IHNjaGVkMSA9IHZyZWludGVycHJldHFfdTMyX3U4KHZsZDFxX3U4KG1zZyArIDE2ICogMSkpOworICAgICAgICB1aW50MzJ4NF90IHNjaGVkMiA9IHZyZWludGVycHJldHFfdTMyX3U4KHZsZDFxX3U4KG1zZyArIDE2ICogMikpOworICAgICAgICB1aW50MzJ4NF90IHNjaGVkMyA9IHZyZWludGVycHJldHFfdTMyX3U4KHZsZDFxX3U4KG1zZyArIDE2ICogMykpOworCisjaWYgX19CWVRFX09SREVSX18gPT0gX19PUkRFUl9MSVRUTEVfRU5ESUFOX18gIC8qIFdpbGwgYmUgdHJ1ZSBpZiBub3QgZGVmaW5lZCAqLworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBVbnRlc3RlZCBvbiBCRSAqLworICAgICAgICBzY2hlZDAgPSB2cmVpbnRlcnByZXRxX3UzMl91OCh2cmV2MzJxX3U4KHZyZWludGVycHJldHFfdThfdTMyKHNjaGVkMCkpKTsKKyAgICAgICAgc2NoZWQxID0gdnJlaW50ZXJwcmV0cV91MzJfdTgodnJldjMycV91OCh2cmVpbnRlcnByZXRxX3U4X3UzMihzY2hlZDEpKSk7CisgICAgICAgIHNjaGVkMiA9IHZyZWludGVycHJldHFfdTMyX3U4KHZyZXYzMnFfdTgodnJlaW50ZXJwcmV0cV91OF91MzIoc2NoZWQyKSkpOworICAgICAgICBzY2hlZDMgPSB2cmVpbnRlcnByZXRxX3UzMl91OCh2cmV2MzJxX3U4KHZyZWludGVycHJldHFfdThfdTMyKHNjaGVkMykpKTsKKyNlbmRpZgorCisgICAgICAgIC8qIFJvdW5kcyAwIHRvIDMgKi8KKyAgICAgICAgdG1wID0gdmFkZHFfdTMyKHNjaGVkMCwgdmxkMXFfdTMyKCZLWzBdKSk7CisgICAgICAgIGFiY2RfcHJldiA9IGFiY2Q7CisgICAgICAgIGFiY2QgPSB2c2hhMjU2aHFfdTMyKGFiY2RfcHJldiwgZWZnaCwgdG1wKTsKKyAgICAgICAgZWZnaCA9IHZzaGEyNTZoMnFfdTMyKGVmZ2gsIGFiY2RfcHJldiwgdG1wKTsKKworICAgICAgICAvKiBSb3VuZHMgNCB0byA3ICovCisgICAgICAgIHRtcCA9IHZhZGRxX3UzMihzY2hlZDEsIHZsZDFxX3UzMigmS1s0XSkpOworICAgICAgICBhYmNkX3ByZXYgPSBhYmNkOworICAgICAgICBhYmNkID0gdnNoYTI1NmhxX3UzMihhYmNkX3ByZXYsIGVmZ2gsIHRtcCk7CisgICAgICAgIGVmZ2ggPSB2c2hhMjU2aDJxX3UzMihlZmdoLCBhYmNkX3ByZXYsIHRtcCk7CisKKyAgICAgICAgLyogUm91bmRzIDggdG8gMTEgKi8KKyAgICAgICAgdG1wID0gdmFkZHFfdTMyKHNjaGVkMiwgdmxkMXFfdTMyKCZLWzhdKSk7CisgICAgICAgIGFiY2RfcHJldiA9IGFiY2Q7CisgICAgICAgIGFiY2QgPSB2c2hhMjU2aHFfdTMyKGFiY2RfcHJldiwgZWZnaCwgdG1wKTsKKyAgICAgICAgZWZnaCA9IHZzaGEyNTZoMnFfdTMyKGVmZ2gsIGFiY2RfcHJldiwgdG1wKTsKKworICAgICAgICAvKiBSb3VuZHMgMTIgdG8gMTUgKi8KKyAgICAgICAgdG1wID0gdmFkZHFfdTMyKHNjaGVkMywgdmxkMXFfdTMyKCZLWzEyXSkpOworICAgICAgICBhYmNkX3ByZXYgPSBhYmNkOworICAgICAgICBhYmNkID0gdnNoYTI1NmhxX3UzMihhYmNkX3ByZXYsIGVmZ2gsIHRtcCk7CisgICAgICAgIGVmZ2ggPSB2c2hhMjU2aDJxX3UzMihlZmdoLCBhYmNkX3ByZXYsIHRtcCk7CisKKyAgICAgICAgZm9yIChpbnQgdCA9IDE2OyB0IDwgNjQ7IHQgKz0gMTYpIHsKKyAgICAgICAgICAgIC8qIFJvdW5kcyB0IHRvIHQgKyAzICovCisgICAgICAgICAgICBzY2hlZDAgPSB2c2hhMjU2c3UxcV91MzIodnNoYTI1NnN1MHFfdTMyKHNjaGVkMCwgc2NoZWQxKSwgc2NoZWQyLCBzY2hlZDMpOworICAgICAgICAgICAgdG1wID0gdmFkZHFfdTMyKHNjaGVkMCwgdmxkMXFfdTMyKCZLW3RdKSk7CisgICAgICAgICAgICBhYmNkX3ByZXYgPSBhYmNkOworICAgICAgICAgICAgYWJjZCA9IHZzaGEyNTZocV91MzIoYWJjZF9wcmV2LCBlZmdoLCB0bXApOworICAgICAgICAgICAgZWZnaCA9IHZzaGEyNTZoMnFfdTMyKGVmZ2gsIGFiY2RfcHJldiwgdG1wKTsKKworICAgICAgICAgICAgLyogUm91bmRzIHQgKyA0IHRvIHQgKyA3ICovCisgICAgICAgICAgICBzY2hlZDEgPSB2c2hhMjU2c3UxcV91MzIodnNoYTI1NnN1MHFfdTMyKHNjaGVkMSwgc2NoZWQyKSwgc2NoZWQzLCBzY2hlZDApOworICAgICAgICAgICAgdG1wID0gdmFkZHFfdTMyKHNjaGVkMSwgdmxkMXFfdTMyKCZLW3QgKyA0XSkpOworICAgICAgICAgICAgYWJjZF9wcmV2ID0gYWJjZDsKKyAgICAgICAgICAgIGFiY2QgPSB2c2hhMjU2aHFfdTMyKGFiY2RfcHJldiwgZWZnaCwgdG1wKTsKKyAgICAgICAgICAgIGVmZ2ggPSB2c2hhMjU2aDJxX3UzMihlZmdoLCBhYmNkX3ByZXYsIHRtcCk7CisKKyAgICAgICAgICAgIC8qIFJvdW5kcyB0ICsgOCB0byB0ICsgMTEgKi8KKyAgICAgICAgICAgIHNjaGVkMiA9IHZzaGEyNTZzdTFxX3UzMih2c2hhMjU2c3UwcV91MzIoc2NoZWQyLCBzY2hlZDMpLCBzY2hlZDAsIHNjaGVkMSk7CisgICAgICAgICAgICB0bXAgPSB2YWRkcV91MzIoc2NoZWQyLCB2bGQxcV91MzIoJktbdCArIDhdKSk7CisgICAgICAgICAgICBhYmNkX3ByZXYgPSBhYmNkOworICAgICAgICAgICAgYWJjZCA9IHZzaGEyNTZocV91MzIoYWJjZF9wcmV2LCBlZmdoLCB0bXApOworICAgICAgICAgICAgZWZnaCA9IHZzaGEyNTZoMnFfdTMyKGVmZ2gsIGFiY2RfcHJldiwgdG1wKTsKKworICAgICAgICAgICAgLyogUm91bmRzIHQgKyAxMiB0byB0ICsgMTUgKi8KKyAgICAgICAgICAgIHNjaGVkMyA9IHZzaGEyNTZzdTFxX3UzMih2c2hhMjU2c3UwcV91MzIoc2NoZWQzLCBzY2hlZDApLCBzY2hlZDEsIHNjaGVkMik7CisgICAgICAgICAgICB0bXAgPSB2YWRkcV91MzIoc2NoZWQzLCB2bGQxcV91MzIoJktbdCArIDEyXSkpOworICAgICAgICAgICAgYWJjZF9wcmV2ID0gYWJjZDsKKyAgICAgICAgICAgIGFiY2QgPSB2c2hhMjU2aHFfdTMyKGFiY2RfcHJldiwgZWZnaCwgdG1wKTsKKyAgICAgICAgICAgIGVmZ2ggPSB2c2hhMjU2aDJxX3UzMihlZmdoLCBhYmNkX3ByZXYsIHRtcCk7CisgICAgICAgIH0KKworICAgICAgICBhYmNkID0gdmFkZHFfdTMyKGFiY2QsIGFiY2Rfb3JpZyk7CisgICAgICAgIGVmZ2ggPSB2YWRkcV91MzIoZWZnaCwgZWZnaF9vcmlnKTsKKyAgICB9CisKKyAgICB2c3QxcV91MzIoJmN0eC0+c3RhdGVbMF0sIGFiY2QpOworICAgIHZzdDFxX3UzMigmY3R4LT5zdGF0ZVs0XSwgZWZnaCk7CisKKyAgICByZXR1cm4gcHJvY2Vzc2VkOworfQorCisjaWYgZGVmaW5lZChNQkVEVExTX1NIQTI1Nl9VU0VfQVJNVjhfQV9DUllQVE9fSUZfUFJFU0VOVCkKKy8qCisgKiBUaGlzIGZ1bmN0aW9uIGlzIGZvciBpbnRlcm5hbCB1c2Ugb25seSBpZiB3ZSBhcmUgYnVpbGRpbmcgYm90aCBDIGFuZCBBcm12OC1BCisgKiB2ZXJzaW9ucywgb3RoZXJ3aXNlIGl0IGlzIHJlbmFtZWQgdG8gYmUgdGhlIHB1YmxpYyBtYmVkdGxzX2ludGVybmFsX3NoYTI1Nl9wcm9jZXNzKCkKKyAqLworc3RhdGljCisjZW5kaWYKK2ludCBtYmVkdGxzX2ludGVybmFsX3NoYTI1Nl9wcm9jZXNzX2E2NF9jcnlwdG8obWJlZHRsc19zaGEyNTZfY29udGV4dCAqY3R4LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1bnNpZ25lZCBjaGFyIGRhdGFbU0hBMjU2X0JMT0NLX1NJWkVdKQoreworICAgIHJldHVybiAobWJlZHRsc19pbnRlcm5hbF9zaGEyNTZfcHJvY2Vzc19tYW55X2E2NF9jcnlwdG8oY3R4LCBkYXRhLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU0hBMjU2X0JMT0NLX1NJWkUpID09CisgICAgICAgICAgICBTSEEyNTZfQkxPQ0tfU0laRSkgPyAwIDogLTE7Cit9CisKKyNlbmRpZiAvKiBNQkVEVExTX1NIQTI1Nl9VU0VfQVJNVjhfQV9DUllQVE9fSUZfUFJFU0VOVCB8fCBNQkVEVExTX1NIQTI1Nl9VU0VfQVJNVjhfQV9DUllQVE9fT05MWSAqLworCisjaWYgZGVmaW5lZChNQkVEVExTX1BPUF9UQVJHRVRfUFJBR01BKQorI2lmIGRlZmluZWQoX19jbGFuZ19fKQorI3ByYWdtYSBjbGFuZyBhdHRyaWJ1dGUgcG9wCisjZWxpZiBkZWZpbmVkKF9fR05VQ19fKQorI3ByYWdtYSBHQ0MgcG9wX29wdGlvbnMKKyNlbmRpZgorI3VuZGVmIE1CRURUTFNfUE9QX1RBUkdFVF9QUkFHTUEKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoTUJFRFRMU19TSEEyNTZfVVNFX0FSTVY4X0FfQ1JZUFRPX0lGX1BSRVNFTlQpCisjZGVmaW5lIG1iZWR0bHNfaW50ZXJuYWxfc2hhMjU2X3Byb2Nlc3NfbWFueV9jIG1iZWR0bHNfaW50ZXJuYWxfc2hhMjU2X3Byb2Nlc3NfbWFueQorI2RlZmluZSBtYmVkdGxzX2ludGVybmFsX3NoYTI1Nl9wcm9jZXNzX2MgICAgICBtYmVkdGxzX2ludGVybmFsX3NoYTI1Nl9wcm9jZXNzCisjZW5kaWYKKworCisjaWYgIWRlZmluZWQoTUJFRFRMU19TSEEyNTZfUFJPQ0VTU19BTFQpICYmIFwKKyAgICAhZGVmaW5lZChNQkVEVExTX1NIQTI1Nl9VU0VfQVJNVjhfQV9DUllQVE9fT05MWSkKKworI2RlZmluZSAgU0hSKHgsIG4pICgoKHgpICYgMHhGRkZGRkZGRikgPj4gKG4pKQorI2RlZmluZSBST1RSKHgsIG4pIChTSFIoeCwgbikgfCAoKHgpIDw8ICgzMiAtIChuKSkpKQorCisjZGVmaW5lIFMwKHgpIChST1RSKHgsIDcpIF4gUk9UUih4LCAxOCkgXiAgU0hSKHgsIDMpKQorI2RlZmluZSBTMSh4KSAoUk9UUih4LCAxNykgXiBST1RSKHgsIDE5KSBeICBTSFIoeCwgMTApKQorCisjZGVmaW5lIFMyKHgpIChST1RSKHgsIDIpIF4gUk9UUih4LCAxMykgXiBST1RSKHgsIDIyKSkKKyNkZWZpbmUgUzMoeCkgKFJPVFIoeCwgNikgXiBST1RSKHgsIDExKSBeIFJPVFIoeCwgMjUpKQorCisjZGVmaW5lIEYwKHgsIHksIHopICgoKHgpICYgKHkpKSB8ICgoeikgJiAoKHgpIHwgKHkpKSkpCisjZGVmaW5lIEYxKHgsIHksIHopICgoeikgXiAoKHgpICYgKCh5KSBeICh6KSkpKQorCisjZGVmaW5lIFIodCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAoICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICBsb2NhbC5XW3RdID0gUzEobG9jYWwuV1sodCkgLSAgMl0pICsgbG9jYWwuV1sodCkgLSAgN10gKyAgICBcCisgICAgICAgICAgICAgICAgICAgICBTMChsb2NhbC5XWyh0KSAtIDE1XSkgKyBsb2NhbC5XWyh0KSAtIDE2XSAgICAgIFwKKyAgICApCisKKyNkZWZpbmUgUChhLCBiLCBjLCBkLCBlLCBmLCBnLCBoLCB4LCBLKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIGRvICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgbG9jYWwudGVtcDEgPSAoaCkgKyBTMyhlKSArIEYxKChlKSwgKGYpLCAoZykpICsgKEspICsgKHgpOyAgICBcCisgICAgICAgIGxvY2FsLnRlbXAyID0gUzIoYSkgKyBGMCgoYSksIChiKSwgKGMpKTsgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICAoZCkgKz0gbG9jYWwudGVtcDE7IChoKSA9IGxvY2FsLnRlbXAxICsgbG9jYWwudGVtcDI7ICAgICAgICBcCisgICAgfSB3aGlsZSAoMCkKKworI2lmIGRlZmluZWQoTUJFRFRMU19TSEEyNTZfVVNFX0FSTVY4X0FfQ1JZUFRPX0lGX1BSRVNFTlQpCisvKgorICogVGhpcyBmdW5jdGlvbiBpcyBmb3IgaW50ZXJuYWwgdXNlIG9ubHkgaWYgd2UgYXJlIGJ1aWxkaW5nIGJvdGggQyBhbmQgQXJtdjgKKyAqIHZlcnNpb25zLCBvdGhlcndpc2UgaXQgaXMgcmVuYW1lZCB0byBiZSB0aGUgcHVibGljIG1iZWR0bHNfaW50ZXJuYWxfc2hhMjU2X3Byb2Nlc3MoKQorICovCitzdGF0aWMKKyNlbmRpZgoraW50IG1iZWR0bHNfaW50ZXJuYWxfc2hhMjU2X3Byb2Nlc3NfYyhtYmVkdGxzX3NoYTI1Nl9jb250ZXh0ICpjdHgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgZGF0YVtTSEEyNTZfQkxPQ0tfU0laRV0pCit7CisgICAgc3RydWN0IHsKKyAgICAgICAgdWludDMyX3QgdGVtcDEsIHRlbXAyLCBXWzY0XTsKKyAgICAgICAgdWludDMyX3QgQVs4XTsKKyAgICB9IGxvY2FsOworCisgICAgdW5zaWduZWQgaW50IGk7CisKKyAgICBmb3IgKGkgPSAwOyBpIDwgODsgaSsrKSB7CisgICAgICAgIGxvY2FsLkFbaV0gPSBjdHgtPnN0YXRlW2ldOworICAgIH0KKworI2lmIGRlZmluZWQoTUJFRFRMU19TSEEyNTZfU01BTExFUikKKyAgICBmb3IgKGkgPSAwOyBpIDwgNjQ7IGkrKykgeworICAgICAgICBpZiAoaSA8IDE2KSB7CisgICAgICAgICAgICBsb2NhbC5XW2ldID0gTUJFRFRMU19HRVRfVUlOVDMyX0JFKGRhdGEsIDQgKiBpKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIFIoaSk7CisgICAgICAgIH0KKworICAgICAgICBQKGxvY2FsLkFbMF0sIGxvY2FsLkFbMV0sIGxvY2FsLkFbMl0sIGxvY2FsLkFbM10sIGxvY2FsLkFbNF0sCisgICAgICAgICAgbG9jYWwuQVs1XSwgbG9jYWwuQVs2XSwgbG9jYWwuQVs3XSwgbG9jYWwuV1tpXSwgS1tpXSk7CisKKyAgICAgICAgbG9jYWwudGVtcDEgPSBsb2NhbC5BWzddOyBsb2NhbC5BWzddID0gbG9jYWwuQVs2XTsKKyAgICAgICAgbG9jYWwuQVs2XSA9IGxvY2FsLkFbNV07IGxvY2FsLkFbNV0gPSBsb2NhbC5BWzRdOworICAgICAgICBsb2NhbC5BWzRdID0gbG9jYWwuQVszXTsgbG9jYWwuQVszXSA9IGxvY2FsLkFbMl07CisgICAgICAgIGxvY2FsLkFbMl0gPSBsb2NhbC5BWzFdOyBsb2NhbC5BWzFdID0gbG9jYWwuQVswXTsKKyAgICAgICAgbG9jYWwuQVswXSA9IGxvY2FsLnRlbXAxOworICAgIH0KKyNlbHNlIC8qIE1CRURUTFNfU0hBMjU2X1NNQUxMRVIgKi8KKyAgICBmb3IgKGkgPSAwOyBpIDwgMTY7IGkrKykgeworICAgICAgICBsb2NhbC5XW2ldID0gTUJFRFRMU19HRVRfVUlOVDMyX0JFKGRhdGEsIDQgKiBpKTsKKyAgICB9CisKKyAgICBmb3IgKGkgPSAwOyBpIDwgMTY7IGkgKz0gOCkgeworICAgICAgICBQKGxvY2FsLkFbMF0sIGxvY2FsLkFbMV0sIGxvY2FsLkFbMl0sIGxvY2FsLkFbM10sIGxvY2FsLkFbNF0sCisgICAgICAgICAgbG9jYWwuQVs1XSwgbG9jYWwuQVs2XSwgbG9jYWwuQVs3XSwgbG9jYWwuV1tpKzBdLCBLW2krMF0pOworICAgICAgICBQKGxvY2FsLkFbN10sIGxvY2FsLkFbMF0sIGxvY2FsLkFbMV0sIGxvY2FsLkFbMl0sIGxvY2FsLkFbM10sCisgICAgICAgICAgbG9jYWwuQVs0XSwgbG9jYWwuQVs1XSwgbG9jYWwuQVs2XSwgbG9jYWwuV1tpKzFdLCBLW2krMV0pOworICAgICAgICBQKGxvY2FsLkFbNl0sIGxvY2FsLkFbN10sIGxvY2FsLkFbMF0sIGxvY2FsLkFbMV0sIGxvY2FsLkFbMl0sCisgICAgICAgICAgbG9jYWwuQVszXSwgbG9jYWwuQVs0XSwgbG9jYWwuQVs1XSwgbG9jYWwuV1tpKzJdLCBLW2krMl0pOworICAgICAgICBQKGxvY2FsLkFbNV0sIGxvY2FsLkFbNl0sIGxvY2FsLkFbN10sIGxvY2FsLkFbMF0sIGxvY2FsLkFbMV0sCisgICAgICAgICAgbG9jYWwuQVsyXSwgbG9jYWwuQVszXSwgbG9jYWwuQVs0XSwgbG9jYWwuV1tpKzNdLCBLW2krM10pOworICAgICAgICBQKGxvY2FsLkFbNF0sIGxvY2FsLkFbNV0sIGxvY2FsLkFbNl0sIGxvY2FsLkFbN10sIGxvY2FsLkFbMF0sCisgICAgICAgICAgbG9jYWwuQVsxXSwgbG9jYWwuQVsyXSwgbG9jYWwuQVszXSwgbG9jYWwuV1tpKzRdLCBLW2krNF0pOworICAgICAgICBQKGxvY2FsLkFbM10sIGxvY2FsLkFbNF0sIGxvY2FsLkFbNV0sIGxvY2FsLkFbNl0sIGxvY2FsLkFbN10sCisgICAgICAgICAgbG9jYWwuQVswXSwgbG9jYWwuQVsxXSwgbG9jYWwuQVsyXSwgbG9jYWwuV1tpKzVdLCBLW2krNV0pOworICAgICAgICBQKGxvY2FsLkFbMl0sIGxvY2FsLkFbM10sIGxvY2FsLkFbNF0sIGxvY2FsLkFbNV0sIGxvY2FsLkFbNl0sCisgICAgICAgICAgbG9jYWwuQVs3XSwgbG9jYWwuQVswXSwgbG9jYWwuQVsxXSwgbG9jYWwuV1tpKzZdLCBLW2krNl0pOworICAgICAgICBQKGxvY2FsLkFbMV0sIGxvY2FsLkFbMl0sIGxvY2FsLkFbM10sIGxvY2FsLkFbNF0sIGxvY2FsLkFbNV0sCisgICAgICAgICAgbG9jYWwuQVs2XSwgbG9jYWwuQVs3XSwgbG9jYWwuQVswXSwgbG9jYWwuV1tpKzddLCBLW2krN10pOworICAgIH0KKworICAgIGZvciAoaSA9IDE2OyBpIDwgNjQ7IGkgKz0gOCkgeworICAgICAgICBQKGxvY2FsLkFbMF0sIGxvY2FsLkFbMV0sIGxvY2FsLkFbMl0sIGxvY2FsLkFbM10sIGxvY2FsLkFbNF0sCisgICAgICAgICAgbG9jYWwuQVs1XSwgbG9jYWwuQVs2XSwgbG9jYWwuQVs3XSwgUihpKzApLCBLW2krMF0pOworICAgICAgICBQKGxvY2FsLkFbN10sIGxvY2FsLkFbMF0sIGxvY2FsLkFbMV0sIGxvY2FsLkFbMl0sIGxvY2FsLkFbM10sCisgICAgICAgICAgbG9jYWwuQVs0XSwgbG9jYWwuQVs1XSwgbG9jYWwuQVs2XSwgUihpKzEpLCBLW2krMV0pOworICAgICAgICBQKGxvY2FsLkFbNl0sIGxvY2FsLkFbN10sIGxvY2FsLkFbMF0sIGxvY2FsLkFbMV0sIGxvY2FsLkFbMl0sCisgICAgICAgICAgbG9jYWwuQVszXSwgbG9jYWwuQVs0XSwgbG9jYWwuQVs1XSwgUihpKzIpLCBLW2krMl0pOworICAgICAgICBQKGxvY2FsLkFbNV0sIGxvY2FsLkFbNl0sIGxvY2FsLkFbN10sIGxvY2FsLkFbMF0sIGxvY2FsLkFbMV0sCisgICAgICAgICAgbG9jYWwuQVsyXSwgbG9jYWwuQVszXSwgbG9jYWwuQVs0XSwgUihpKzMpLCBLW2krM10pOworICAgICAgICBQKGxvY2FsLkFbNF0sIGxvY2FsLkFbNV0sIGxvY2FsLkFbNl0sIGxvY2FsLkFbN10sIGxvY2FsLkFbMF0sCisgICAgICAgICAgbG9jYWwuQVsxXSwgbG9jYWwuQVsyXSwgbG9jYWwuQVszXSwgUihpKzQpLCBLW2krNF0pOworICAgICAgICBQKGxvY2FsLkFbM10sIGxvY2FsLkFbNF0sIGxvY2FsLkFbNV0sIGxvY2FsLkFbNl0sIGxvY2FsLkFbN10sCisgICAgICAgICAgbG9jYWwuQVswXSwgbG9jYWwuQVsxXSwgbG9jYWwuQVsyXSwgUihpKzUpLCBLW2krNV0pOworICAgICAgICBQKGxvY2FsLkFbMl0sIGxvY2FsLkFbM10sIGxvY2FsLkFbNF0sIGxvY2FsLkFbNV0sIGxvY2FsLkFbNl0sCisgICAgICAgICAgbG9jYWwuQVs3XSwgbG9jYWwuQVswXSwgbG9jYWwuQVsxXSwgUihpKzYpLCBLW2krNl0pOworICAgICAgICBQKGxvY2FsLkFbMV0sIGxvY2FsLkFbMl0sIGxvY2FsLkFbM10sIGxvY2FsLkFbNF0sIGxvY2FsLkFbNV0sCisgICAgICAgICAgbG9jYWwuQVs2XSwgbG9jYWwuQVs3XSwgbG9jYWwuQVswXSwgUihpKzcpLCBLW2krN10pOworICAgIH0KKyNlbmRpZiAvKiBNQkVEVExTX1NIQTI1Nl9TTUFMTEVSICovCisKKyAgICBmb3IgKGkgPSAwOyBpIDwgODsgaSsrKSB7CisgICAgICAgIGN0eC0+c3RhdGVbaV0gKz0gbG9jYWwuQVtpXTsKKyAgICB9CisKKyAgICAvKiBaZXJvaXNlIGJ1ZmZlcnMgYW5kIHZhcmlhYmxlcyB0byBjbGVhciBzZW5zaXRpdmUgZGF0YSBmcm9tIG1lbW9yeS4gKi8KKyAgICBtYmVkdGxzX3BsYXRmb3JtX3plcm9pemUoJmxvY2FsLCBzaXplb2YobG9jYWwpKTsKKworICAgIHJldHVybiAwOworfQorCisjZW5kaWYgLyogIU1CRURUTFNfU0hBMjU2X1BST0NFU1NfQUxUICYmICFNQkVEVExTX1NIQTI1Nl9VU0VfQVJNVjhfQV9DUllQVE9fT05MWSAqLworCisKKyNpZiAhZGVmaW5lZChNQkVEVExTX1NIQTI1Nl9VU0VfQVJNVjhfQV9DUllQVE9fT05MWSkKKworc3RhdGljIHNpemVfdCBtYmVkdGxzX2ludGVybmFsX3NoYTI1Nl9wcm9jZXNzX21hbnlfYygKKyAgICBtYmVkdGxzX3NoYTI1Nl9jb250ZXh0ICpjdHgsIGNvbnN0IHVpbnQ4X3QgKmRhdGEsIHNpemVfdCBsZW4pCit7CisgICAgc2l6ZV90IHByb2Nlc3NlZCA9IDA7CisKKyAgICB3aGlsZSAobGVuID49IFNIQTI1Nl9CTE9DS19TSVpFKSB7CisgICAgICAgIGlmIChtYmVkdGxzX2ludGVybmFsX3NoYTI1Nl9wcm9jZXNzX2MoY3R4LCBkYXRhKSAhPSAwKSB7CisgICAgICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgfQorCisgICAgICAgIGRhdGEgKz0gU0hBMjU2X0JMT0NLX1NJWkU7CisgICAgICAgIGxlbiAgLT0gU0hBMjU2X0JMT0NLX1NJWkU7CisKKyAgICAgICAgcHJvY2Vzc2VkICs9IFNIQTI1Nl9CTE9DS19TSVpFOworICAgIH0KKworICAgIHJldHVybiBwcm9jZXNzZWQ7Cit9CisKKyNlbmRpZiAvKiAhTUJFRFRMU19TSEEyNTZfVVNFX0FSTVY4X0FfQ1JZUFRPX09OTFkgKi8KKworCisjaWYgZGVmaW5lZChNQkVEVExTX1NIQTI1Nl9VU0VfQVJNVjhfQV9DUllQVE9fSUZfUFJFU0VOVCkKKworc3RhdGljIGludCBtYmVkdGxzX2E2NF9jcnlwdG9fc2hhMjU2X2hhc19zdXBwb3J0KHZvaWQpCit7CisgICAgc3RhdGljIGludCBkb25lID0gMDsKKyAgICBzdGF0aWMgaW50IHN1cHBvcnRlZCA9IDA7CisKKyAgICBpZiAoIWRvbmUpIHsKKyAgICAgICAgc3VwcG9ydGVkID0gbWJlZHRsc19hNjRfY3J5cHRvX3NoYTI1Nl9kZXRlcm1pbmVfc3VwcG9ydCgpOworICAgICAgICBkb25lID0gMTsKKyAgICB9CisKKyAgICByZXR1cm4gc3VwcG9ydGVkOworfQorCitzdGF0aWMgc2l6ZV90IG1iZWR0bHNfaW50ZXJuYWxfc2hhMjU2X3Byb2Nlc3NfbWFueShtYmVkdGxzX3NoYTI1Nl9jb250ZXh0ICpjdHgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1aW50OF90ICptc2csIHNpemVfdCBsZW4pCit7CisgICAgaWYgKG1iZWR0bHNfYTY0X2NyeXB0b19zaGEyNTZfaGFzX3N1cHBvcnQoKSkgeworICAgICAgICByZXR1cm4gbWJlZHRsc19pbnRlcm5hbF9zaGEyNTZfcHJvY2Vzc19tYW55X2E2NF9jcnlwdG8oY3R4LCBtc2csIGxlbik7CisgICAgfSBlbHNlIHsKKyAgICAgICAgcmV0dXJuIG1iZWR0bHNfaW50ZXJuYWxfc2hhMjU2X3Byb2Nlc3NfbWFueV9jKGN0eCwgbXNnLCBsZW4pOworICAgIH0KK30KKworaW50IG1iZWR0bHNfaW50ZXJuYWxfc2hhMjU2X3Byb2Nlc3MobWJlZHRsc19zaGEyNTZfY29udGV4dCAqY3R4LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdW5zaWduZWQgY2hhciBkYXRhW1NIQTI1Nl9CTE9DS19TSVpFXSkKK3sKKyAgICBpZiAobWJlZHRsc19hNjRfY3J5cHRvX3NoYTI1Nl9oYXNfc3VwcG9ydCgpKSB7CisgICAgICAgIHJldHVybiBtYmVkdGxzX2ludGVybmFsX3NoYTI1Nl9wcm9jZXNzX2E2NF9jcnlwdG8oY3R4LCBkYXRhKTsKKyAgICB9IGVsc2UgeworICAgICAgICByZXR1cm4gbWJlZHRsc19pbnRlcm5hbF9zaGEyNTZfcHJvY2Vzc19jKGN0eCwgZGF0YSk7CisgICAgfQorfQorCisjZW5kaWYgLyogTUJFRFRMU19TSEEyNTZfVVNFX0FSTVY4X0FfQ1JZUFRPX0lGX1BSRVNFTlQgKi8KKworCisvKgorICogU0hBLTI1NiBwcm9jZXNzIGJ1ZmZlcgorICovCitpbnQgbWJlZHRsc19zaGEyNTZfdXBkYXRlKG1iZWR0bHNfc2hhMjU2X2NvbnRleHQgKmN0eCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdW5zaWduZWQgY2hhciAqaW5wdXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBpbGVuKQoreworICAgIGludCByZXQgPSBNQkVEVExTX0VSUl9FUlJPUl9DT1JSVVBUSU9OX0RFVEVDVEVEOworICAgIHNpemVfdCBmaWxsOworICAgIHVpbnQzMl90IGxlZnQ7CisKKyAgICBpZiAoaWxlbiA9PSAwKSB7CisgICAgICAgIHJldHVybiAwOworICAgIH0KKworICAgIGxlZnQgPSBjdHgtPnRvdGFsWzBdICYgMHgzRjsKKyAgICBmaWxsID0gU0hBMjU2X0JMT0NLX1NJWkUgLSBsZWZ0OworCisgICAgY3R4LT50b3RhbFswXSArPSAodWludDMyX3QpIGlsZW47CisgICAgY3R4LT50b3RhbFswXSAmPSAweEZGRkZGRkZGOworCisgICAgaWYgKGN0eC0+dG90YWxbMF0gPCAodWludDMyX3QpIGlsZW4pIHsKKyAgICAgICAgY3R4LT50b3RhbFsxXSsrOworICAgIH0KKworICAgIGlmIChsZWZ0ICYmIGlsZW4gPj0gZmlsbCkgeworICAgICAgICBtZW1jcHkoKHZvaWQgKikgKGN0eC0+YnVmZmVyICsgbGVmdCksIGlucHV0LCBmaWxsKTsKKworICAgICAgICBpZiAoKHJldCA9IG1iZWR0bHNfaW50ZXJuYWxfc2hhMjU2X3Byb2Nlc3MoY3R4LCBjdHgtPmJ1ZmZlcikpICE9IDApIHsKKyAgICAgICAgICAgIHJldHVybiByZXQ7CisgICAgICAgIH0KKworICAgICAgICBpbnB1dCArPSBmaWxsOworICAgICAgICBpbGVuICAtPSBmaWxsOworICAgICAgICBsZWZ0ID0gMDsKKyAgICB9CisKKyAgICB3aGlsZSAoaWxlbiA+PSBTSEEyNTZfQkxPQ0tfU0laRSkgeworICAgICAgICBzaXplX3QgcHJvY2Vzc2VkID0KKyAgICAgICAgICAgIG1iZWR0bHNfaW50ZXJuYWxfc2hhMjU2X3Byb2Nlc3NfbWFueShjdHgsIGlucHV0LCBpbGVuKTsKKyAgICAgICAgaWYgKHByb2Nlc3NlZCA8IFNIQTI1Nl9CTE9DS19TSVpFKSB7CisgICAgICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfRVJST1JfR0VORVJJQ19FUlJPUjsKKyAgICAgICAgfQorCisgICAgICAgIGlucHV0ICs9IHByb2Nlc3NlZDsKKyAgICAgICAgaWxlbiAgLT0gcHJvY2Vzc2VkOworICAgIH0KKworICAgIGlmIChpbGVuID4gMCkgeworICAgICAgICBtZW1jcHkoKHZvaWQgKikgKGN0eC0+YnVmZmVyICsgbGVmdCksIGlucHV0LCBpbGVuKTsKKyAgICB9CisKKyAgICByZXR1cm4gMDsKK30KKworLyoKKyAqIFNIQS0yNTYgZmluYWwgZGlnZXN0CisgKi8KK2ludCBtYmVkdGxzX3NoYTI1Nl9maW5pc2gobWJlZHRsc19zaGEyNTZfY29udGV4dCAqY3R4LAorICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBjaGFyICpvdXRwdXQpCit7CisgICAgaW50IHJldCA9IE1CRURUTFNfRVJSX0VSUk9SX0NPUlJVUFRJT05fREVURUNURUQ7CisgICAgdWludDMyX3QgdXNlZDsKKyAgICB1aW50MzJfdCBoaWdoLCBsb3c7CisgICAgaW50IHRydW5jYXRlZCA9IDA7CisKKyAgICAvKgorICAgICAqIEFkZCBwYWRkaW5nOiAweDgwIHRoZW4gMHgwMCB1bnRpbCA4IGJ5dGVzIHJlbWFpbiBmb3IgdGhlIGxlbmd0aAorICAgICAqLworICAgIHVzZWQgPSBjdHgtPnRvdGFsWzBdICYgMHgzRjsKKworICAgIGN0eC0+YnVmZmVyW3VzZWQrK10gPSAweDgwOworCisgICAgaWYgKHVzZWQgPD0gNTYpIHsKKyAgICAgICAgLyogRW5vdWdoIHJvb20gZm9yIHBhZGRpbmcgKyBsZW5ndGggaW4gY3VycmVudCBibG9jayAqLworICAgICAgICBtZW1zZXQoY3R4LT5idWZmZXIgKyB1c2VkLCAwLCA1NiAtIHVzZWQpOworICAgIH0gZWxzZSB7CisgICAgICAgIC8qIFdlJ2xsIG5lZWQgYW4gZXh0cmEgYmxvY2sgKi8KKyAgICAgICAgbWVtc2V0KGN0eC0+YnVmZmVyICsgdXNlZCwgMCwgU0hBMjU2X0JMT0NLX1NJWkUgLSB1c2VkKTsKKworICAgICAgICBpZiAoKHJldCA9IG1iZWR0bHNfaW50ZXJuYWxfc2hhMjU2X3Byb2Nlc3MoY3R4LCBjdHgtPmJ1ZmZlcikpICE9IDApIHsKKyAgICAgICAgICAgIGdvdG8gZXhpdDsKKyAgICAgICAgfQorCisgICAgICAgIG1lbXNldChjdHgtPmJ1ZmZlciwgMCwgNTYpOworICAgIH0KKworICAgIC8qCisgICAgICogQWRkIG1lc3NhZ2UgbGVuZ3RoCisgICAgICovCisgICAgaGlnaCA9IChjdHgtPnRvdGFsWzBdID4+IDI5KQorICAgICAgICAgICB8IChjdHgtPnRvdGFsWzFdIDw8ICAzKTsKKyAgICBsb3cgID0gKGN0eC0+dG90YWxbMF0gPDwgIDMpOworCisgICAgTUJFRFRMU19QVVRfVUlOVDMyX0JFKGhpZ2gsIGN0eC0+YnVmZmVyLCA1Nik7CisgICAgTUJFRFRMU19QVVRfVUlOVDMyX0JFKGxvdywgIGN0eC0+YnVmZmVyLCA2MCk7CisKKyAgICBpZiAoKHJldCA9IG1iZWR0bHNfaW50ZXJuYWxfc2hhMjU2X3Byb2Nlc3MoY3R4LCBjdHgtPmJ1ZmZlcikpICE9IDApIHsKKyAgICAgICAgZ290byBleGl0OworICAgIH0KKworICAgIC8qCisgICAgICogT3V0cHV0IGZpbmFsIHN0YXRlCisgICAgICovCisgICAgTUJFRFRMU19QVVRfVUlOVDMyX0JFKGN0eC0+c3RhdGVbMF0sIG91dHB1dCwgIDApOworICAgIE1CRURUTFNfUFVUX1VJTlQzMl9CRShjdHgtPnN0YXRlWzFdLCBvdXRwdXQsICA0KTsKKyAgICBNQkVEVExTX1BVVF9VSU5UMzJfQkUoY3R4LT5zdGF0ZVsyXSwgb3V0cHV0LCAgOCk7CisgICAgTUJFRFRMU19QVVRfVUlOVDMyX0JFKGN0eC0+c3RhdGVbM10sIG91dHB1dCwgMTIpOworICAgIE1CRURUTFNfUFVUX1VJTlQzMl9CRShjdHgtPnN0YXRlWzRdLCBvdXRwdXQsIDE2KTsKKyAgICBNQkVEVExTX1BVVF9VSU5UMzJfQkUoY3R4LT5zdGF0ZVs1XSwgb3V0cHV0LCAyMCk7CisgICAgTUJFRFRMU19QVVRfVUlOVDMyX0JFKGN0eC0+c3RhdGVbNl0sIG91dHB1dCwgMjQpOworCisjaWYgZGVmaW5lZChNQkVEVExTX1NIQTIyNF9DKQorICAgIHRydW5jYXRlZCA9IGN0eC0+aXMyMjQ7CisjZW5kaWYKKyAgICBpZiAoIXRydW5jYXRlZCkgeworICAgICAgICBNQkVEVExTX1BVVF9VSU5UMzJfQkUoY3R4LT5zdGF0ZVs3XSwgb3V0cHV0LCAyOCk7CisgICAgfQorCisgICAgcmV0ID0gMDsKKworZXhpdDoKKyAgICBtYmVkdGxzX3NoYTI1Nl9mcmVlKGN0eCk7CisgICAgcmV0dXJuIHJldDsKK30KKworLyoKKyAqIG91dHB1dCA9IFNIQS0yNTYoIGlucHV0IGJ1ZmZlciApCisgKi8KK2ludCBtYmVkdGxzX3NoYTI1Nihjb25zdCB1bnNpZ25lZCBjaGFyICppbnB1dCwKKyAgICAgICAgICAgICAgICAgICBzaXplX3QgaWxlbiwKKyAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBjaGFyICpvdXRwdXQsCisgICAgICAgICAgICAgICAgICAgaW50IGlzMjI0KQoreworICAgIGludCByZXQgPSBNQkVEVExTX0VSUl9FUlJPUl9DT1JSVVBUSU9OX0RFVEVDVEVEOworICAgIG1iZWR0bHNfc2hhMjU2X2NvbnRleHQgY3R4OworCisjaWYgZGVmaW5lZChNQkVEVExTX1NIQTIyNF9DKSAmJiBkZWZpbmVkKE1CRURUTFNfU0hBMjU2X0MpCisgICAgaWYgKGlzMjI0ICE9IDAgJiYgaXMyMjQgIT0gMSkgeworICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfU0hBMjU2X0JBRF9JTlBVVF9EQVRBOworICAgIH0KKyNlbGlmIGRlZmluZWQoTUJFRFRMU19TSEEyNTZfQykKKyAgICBpZiAoaXMyMjQgIT0gMCkgeworICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfU0hBMjU2X0JBRF9JTlBVVF9EQVRBOworICAgIH0KKyNlbHNlIC8qIGRlZmluZWQgTUJFRFRMU19TSEEyMjRfQyBvbmx5ICovCisgICAgaWYgKGlzMjI0ID09IDApIHsKKyAgICAgICAgcmV0dXJuIE1CRURUTFNfRVJSX1NIQTI1Nl9CQURfSU5QVVRfREFUQTsKKyAgICB9CisjZW5kaWYKKworICAgIG1iZWR0bHNfc2hhMjU2X2luaXQoJmN0eCk7CisKKyAgICBpZiAoKHJldCA9IG1iZWR0bHNfc2hhMjU2X3N0YXJ0cygmY3R4LCBpczIyNCkpICE9IDApIHsKKyAgICAgICAgZ290byBleGl0OworICAgIH0KKworICAgIGlmICgocmV0ID0gbWJlZHRsc19zaGEyNTZfdXBkYXRlKCZjdHgsIGlucHV0LCBpbGVuKSkgIT0gMCkgeworICAgICAgICBnb3RvIGV4aXQ7CisgICAgfQorCisgICAgaWYgKChyZXQgPSBtYmVkdGxzX3NoYTI1Nl9maW5pc2goJmN0eCwgb3V0cHV0KSkgIT0gMCkgeworICAgICAgICBnb3RvIGV4aXQ7CisgICAgfQorCitleGl0OgorICAgIG1iZWR0bHNfc2hhMjU2X2ZyZWUoJmN0eCk7CisKKyAgICByZXR1cm4gcmV0OworfQorCisjaWYgZGVmaW5lZChNQkVEVExTX1NFTEZfVEVTVCkKKy8qCisgKiBGSVBTLTE4MC0yIHRlc3QgdmVjdG9ycworICovCitzdGF0aWMgY29uc3QgdW5zaWduZWQgY2hhciBzaGFfdGVzdF9idWZbM11bNTddID0KK3sKKyAgICB7ICJhYmMiIH0sCisgICAgeyAiYWJjZGJjZGVjZGVmZGVmZ2VmZ2hmZ2hpZ2hpamhpamtpamtsamtsbWtsbW5sbW5vbW5vcG5vcHEiIH0sCisgICAgeyAiIiB9Cit9OworCitzdGF0aWMgY29uc3Qgc2l6ZV90IHNoYV90ZXN0X2J1ZmxlblszXSA9Cit7CisgICAgMywgNTYsIDEwMDAKK307CisKK3R5cGVkZWYgY29uc3QgdW5zaWduZWQgY2hhciAoc2hhX3Rlc3Rfc3VtX3QpWzMyXTsKKworLyoKKyAqIFNIQS0yMjQgdGVzdCB2ZWN0b3JzCisgKi8KKyNpZiBkZWZpbmVkKE1CRURUTFNfU0hBMjI0X0MpCitzdGF0aWMgc2hhX3Rlc3Rfc3VtX3Qgc2hhMjI0X3Rlc3Rfc3VtW10gPQoreworICAgIHsgMHgyMywgMHgwOSwgMHg3RCwgMHgyMiwgMHgzNCwgMHgwNSwgMHhEOCwgMHgyMiwKKyAgICAgIDB4ODYsIDB4NDIsIDB4QTQsIDB4NzcsIDB4QkQsIDB4QTIsIDB4NTUsIDB4QjMsCisgICAgICAweDJBLCAweEFELCAweEJDLCAweEU0LCAweEJELCAweEEwLCAweEIzLCAweEY3LAorICAgICAgMHhFMywgMHg2QywgMHg5RCwgMHhBNyB9LAorICAgIHsgMHg3NSwgMHgzOCwgMHg4QiwgMHgxNiwgMHg1MSwgMHgyNywgMHg3NiwgMHhDQywKKyAgICAgIDB4NUQsIDB4QkEsIDB4NUQsIDB4QTEsIDB4RkQsIDB4ODksIDB4MDEsIDB4NTAsCisgICAgICAweEIwLCAweEM2LCAweDQ1LCAweDVDLCAweEI0LCAweEY1LCAweDhCLCAweDE5LAorICAgICAgMHg1MiwgMHg1MiwgMHgyNSwgMHgyNSB9LAorICAgIHsgMHgyMCwgMHg3OSwgMHg0NiwgMHg1NSwgMHg5OCwgMHgwQywgMHg5MSwgMHhEOCwKKyAgICAgIDB4QkIsIDB4QjQsIDB4QzEsIDB4RUEsIDB4OTcsIDB4NjEsIDB4OEEsIDB4NEIsCisgICAgICAweEYwLCAweDNGLCAweDQyLCAweDU4LCAweDE5LCAweDQ4LCAweEIyLCAweEVFLAorICAgICAgMHg0RSwgMHhFNywgMHhBRCwgMHg2NyB9Cit9OworI2VuZGlmCisKKy8qCisgKiBTSEEtMjU2IHRlc3QgdmVjdG9ycworICovCisjaWYgZGVmaW5lZChNQkVEVExTX1NIQTI1Nl9DKQorc3RhdGljIHNoYV90ZXN0X3N1bV90IHNoYTI1Nl90ZXN0X3N1bVtdID0KK3sKKyAgICB7IDB4QkEsIDB4NzgsIDB4MTYsIDB4QkYsIDB4OEYsIDB4MDEsIDB4Q0YsIDB4RUEsCisgICAgICAweDQxLCAweDQxLCAweDQwLCAweERFLCAweDVELCAweEFFLCAweDIyLCAweDIzLAorICAgICAgMHhCMCwgMHgwMywgMHg2MSwgMHhBMywgMHg5NiwgMHgxNywgMHg3QSwgMHg5QywKKyAgICAgIDB4QjQsIDB4MTAsIDB4RkYsIDB4NjEsIDB4RjIsIDB4MDAsIDB4MTUsIDB4QUQgfSwKKyAgICB7IDB4MjQsIDB4OEQsIDB4NkEsIDB4NjEsIDB4RDIsIDB4MDYsIDB4MzgsIDB4QjgsCisgICAgICAweEU1LCAweEMwLCAweDI2LCAweDkzLCAweDBDLCAweDNFLCAweDYwLCAweDM5LAorICAgICAgMHhBMywgMHgzQywgMHhFNCwgMHg1OSwgMHg2NCwgMHhGRiwgMHgyMSwgMHg2NywKKyAgICAgIDB4RjYsIDB4RUMsIDB4RUQsIDB4RDQsIDB4MTksIDB4REIsIDB4MDYsIDB4QzEgfSwKKyAgICB7IDB4Q0QsIDB4QzcsIDB4NkUsIDB4NUMsIDB4OTksIDB4MTQsIDB4RkIsIDB4OTIsCisgICAgICAweDgxLCAweEExLCAweEM3LCAweEUyLCAweDg0LCAweEQ3LCAweDNFLCAweDY3LAorICAgICAgMHhGMSwgMHg4MCwgMHg5QSwgMHg0OCwgMHhBNCwgMHg5NywgMHgyMCwgMHgwRSwKKyAgICAgIDB4MDQsIDB4NkQsIDB4MzksIDB4Q0MsIDB4QzcsIDB4MTEsIDB4MkMsIDB4RDAgfQorfTsKKyNlbmRpZgorCisvKgorICogQ2hlY2t1cCByb3V0aW5lCisgKi8KK3N0YXRpYyBpbnQgbWJlZHRsc19zaGEyNTZfY29tbW9uX3NlbGZfdGVzdChpbnQgdmVyYm9zZSwgaW50IGlzMjI0KQoreworICAgIGludCBpLCBidWZsZW4sIHJldCA9IDA7CisgICAgdW5zaWduZWQgY2hhciAqYnVmOworICAgIHVuc2lnbmVkIGNoYXIgc2hhMjU2c3VtWzMyXTsKKyAgICBtYmVkdGxzX3NoYTI1Nl9jb250ZXh0IGN0eDsKKworI2lmIGRlZmluZWQoTUJFRFRMU19TSEEyMjRfQykgJiYgZGVmaW5lZChNQkVEVExTX1NIQTI1Nl9DKQorICAgIHNoYV90ZXN0X3N1bV90ICpzaGFfdGVzdF9zdW0gPSAoaXMyMjQpID8gc2hhMjI0X3Rlc3Rfc3VtIDogc2hhMjU2X3Rlc3Rfc3VtOworI2VsaWYgZGVmaW5lZChNQkVEVExTX1NIQTI1Nl9DKQorICAgIHNoYV90ZXN0X3N1bV90ICpzaGFfdGVzdF9zdW0gPSBzaGEyNTZfdGVzdF9zdW07CisjZWxzZQorICAgIHNoYV90ZXN0X3N1bV90ICpzaGFfdGVzdF9zdW0gPSBzaGEyMjRfdGVzdF9zdW07CisjZW5kaWYKKworICAgIGJ1ZiA9IG1iZWR0bHNfY2FsbG9jKDEwMjQsIHNpemVvZih1bnNpZ25lZCBjaGFyKSk7CisgICAgaWYgKE5VTEwgPT0gYnVmKSB7CisgICAgICAgIGlmICh2ZXJib3NlICE9IDApIHsKKyAgICAgICAgICAgIG1iZWR0bHNfcHJpbnRmKCJCdWZmZXIgYWxsb2NhdGlvbiBmYWlsZWRcbiIpOworICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIDE7CisgICAgfQorCisgICAgbWJlZHRsc19zaGEyNTZfaW5pdCgmY3R4KTsKKworICAgIGZvciAoaSA9IDA7IGkgPCAzOyBpKyspIHsKKyAgICAgICAgaWYgKHZlcmJvc2UgIT0gMCkgeworICAgICAgICAgICAgbWJlZHRsc19wcmludGYoIiAgU0hBLSVkIHRlc3QgIyVkOiAiLCAyNTYgLSBpczIyNCAqIDMyLCBpICsgMSk7CisgICAgICAgIH0KKworICAgICAgICBpZiAoKHJldCA9IG1iZWR0bHNfc2hhMjU2X3N0YXJ0cygmY3R4LCBpczIyNCkpICE9IDApIHsKKyAgICAgICAgICAgIGdvdG8gZmFpbDsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChpID09IDIpIHsKKyAgICAgICAgICAgIG1lbXNldChidWYsICdhJywgYnVmbGVuID0gMTAwMCk7CisKKyAgICAgICAgICAgIGZvciAoaW50IGogPSAwOyBqIDwgMTAwMDsgaisrKSB7CisgICAgICAgICAgICAgICAgcmV0ID0gbWJlZHRsc19zaGEyNTZfdXBkYXRlKCZjdHgsIGJ1ZiwgYnVmbGVuKTsKKyAgICAgICAgICAgICAgICBpZiAocmV0ICE9IDApIHsKKyAgICAgICAgICAgICAgICAgICAgZ290byBmYWlsOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgcmV0ID0gbWJlZHRsc19zaGEyNTZfdXBkYXRlKCZjdHgsIHNoYV90ZXN0X2J1ZltpXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaGFfdGVzdF9idWZsZW5baV0pOworICAgICAgICAgICAgaWYgKHJldCAhPSAwKSB7CisgICAgICAgICAgICAgICAgZ290byBmYWlsOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgaWYgKChyZXQgPSBtYmVkdGxzX3NoYTI1Nl9maW5pc2goJmN0eCwgc2hhMjU2c3VtKSkgIT0gMCkgeworICAgICAgICAgICAgZ290byBmYWlsOworICAgICAgICB9CisKKworICAgICAgICBpZiAobWVtY21wKHNoYTI1NnN1bSwgc2hhX3Rlc3Rfc3VtW2ldLCAzMiAtIGlzMjI0ICogNCkgIT0gMCkgeworICAgICAgICAgICAgcmV0ID0gMTsKKyAgICAgICAgICAgIGdvdG8gZmFpbDsKKyAgICAgICAgfQorCisgICAgICAgIGlmICh2ZXJib3NlICE9IDApIHsKKyAgICAgICAgICAgIG1iZWR0bHNfcHJpbnRmKCJwYXNzZWRcbiIpOworICAgICAgICB9CisgICAgfQorCisgICAgaWYgKHZlcmJvc2UgIT0gMCkgeworICAgICAgICBtYmVkdGxzX3ByaW50ZigiXG4iKTsKKyAgICB9CisKKyAgICBnb3RvIGV4aXQ7CisKK2ZhaWw6CisgICAgaWYgKHZlcmJvc2UgIT0gMCkgeworICAgICAgICBtYmVkdGxzX3ByaW50ZigiZmFpbGVkXG4iKTsKKyAgICB9CisKK2V4aXQ6CisgICAgbWJlZHRsc19zaGEyNTZfZnJlZSgmY3R4KTsKKyAgICBtYmVkdGxzX2ZyZWUoYnVmKTsKKworICAgIHJldHVybiByZXQ7Cit9CisKKyNpZiBkZWZpbmVkKE1CRURUTFNfU0hBMjU2X0MpCitpbnQgbWJlZHRsc19zaGEyNTZfc2VsZl90ZXN0KGludCB2ZXJib3NlKQoreworICAgIHJldHVybiBtYmVkdGxzX3NoYTI1Nl9jb21tb25fc2VsZl90ZXN0KHZlcmJvc2UsIDApOworfQorI2VuZGlmIC8qIE1CRURUTFNfU0hBMjU2X0MgKi8KKworI2lmIGRlZmluZWQoTUJFRFRMU19TSEEyMjRfQykKK2ludCBtYmVkdGxzX3NoYTIyNF9zZWxmX3Rlc3QoaW50IHZlcmJvc2UpCit7CisgICAgcmV0dXJuIG1iZWR0bHNfc2hhMjU2X2NvbW1vbl9zZWxmX3Rlc3QodmVyYm9zZSwgMSk7Cit9CisjZW5kaWYgLyogTUJFRFRMU19TSEEyMjRfQyAqLworCisjZW5kaWYgLyogTUJFRFRMU19TRUxGX1RFU1QgKi8KKworI2VuZGlmIC8qIE1CRURUTFNfU0hBMjU2X0MgfHwgTUJFRFRMU19TSEEyMjRfQyAqLwpkaWZmIC0tZ2l0IGEvbGlicmFyeS9zaGEzLmMgYi90Zi1wc2EtY3J5cHRvL2RyaXZlcnMvYnVpbHRpbi9zcmMvc2hhMy5jCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBsaWJyYXJ5L3NoYTMuYwpyZW5hbWUgdG8gdGYtcHNhLWNyeXB0by9kcml2ZXJzL2J1aWx0aW4vc3JjL3NoYTMuYwpkaWZmIC0tZ2l0IGEvdGYtcHNhLWNyeXB0by9kcml2ZXJzL2J1aWx0aW4vc3JjL3NoYTUxMi5jIGIvdGYtcHNhLWNyeXB0by9kcml2ZXJzL2J1aWx0aW4vc3JjL3NoYTUxMi5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU3NTc1ZWEKLS0tIC9kZXYvbnVsbAorKysgYi90Zi1wc2EtY3J5cHRvL2RyaXZlcnMvYnVpbHRpbi9zcmMvc2hhNTEyLmMKQEAgLTAsMCArMSwxMTA4IEBACisvKgorICogIEZJUFMtMTgwLTIgY29tcGxpYW50IFNIQS0zODQvNTEyIGltcGxlbWVudGF0aW9uCisgKgorICogIENvcHlyaWdodCBUaGUgTWJlZCBUTFMgQ29udHJpYnV0b3JzCisgKiAgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjAgT1IgR1BMLTIuMC1vci1sYXRlcgorICovCisvKgorICogIFRoZSBTSEEtNTEyIFNlY3VyZSBIYXNoIFN0YW5kYXJkIHdhcyBwdWJsaXNoZWQgYnkgTklTVCBpbiAyMDAyLgorICoKKyAqICBodHRwOi8vY3NyYy5uaXN0Lmdvdi9wdWJsaWNhdGlvbnMvZmlwcy9maXBzMTgwLTIvZmlwczE4MC0yLnBkZgorICovCisKKyNpZiBkZWZpbmVkKF9fYWFyY2g2NF9fKSAmJiAhZGVmaW5lZChfX0FSTV9GRUFUVVJFX1NIQTUxMikgJiYgXAorICAgIGRlZmluZWQoX19jbGFuZ19fKSAmJiBfX2NsYW5nX21ham9yX18gPj0gNworLyogVE9ETzogUmUtY29uc2lkZXIgYWJvdmUgYWZ0ZXIgaHR0cHM6Ly9yZXZpZXdzLmxsdm0ub3JnL0QxMzEwNjQgbWVyZ2VkLgorICoKKyAqIFRoZSBpbnRyaW5zaWMgZGVjbGFyYXRpb24gYXJlIGd1YXJkZWQgYnkgcHJlZGVmaW5lZCBBQ0xFIG1hY3JvcyBpbiBjbGFuZzoKKyAqIHRoZXNlIGFyZSBub3JtYWxseSBvbmx5IGVuYWJsZWQgYnkgdGhlIC1tYXJjaCBvcHRpb24gb24gdGhlIGNvbW1hbmQgbGluZS4KKyAqIEJ5IGRlZmluaW5nIHRoZSBtYWNyb3Mgb3Vyc2VsdmVzIHdlIGdhaW4gYWNjZXNzIHRvIHRob3NlIGRlY2xhcmF0aW9ucyB3aXRob3V0CisgKiByZXF1aXJpbmcgLW1hcmNoIG9uIHRoZSBjb21tYW5kIGxpbmUuCisgKgorICogYGFybV9uZW9uLmhgIGlzIGluY2x1ZGVkIGJ5IGNvbW1vbi5oLCBzbyB3ZSBwdXQgdGhlc2UgZGVmaW5lcworICogYXQgdGhlIHRvcCBvZiB0aGlzIGZpbGUsIGJlZm9yZSBhbnkgaW5jbHVkZXMuCisgKi8KKyNkZWZpbmUgX19BUk1fRkVBVFVSRV9TSEE1MTIgMQorI2RlZmluZSBNQkVEVExTX0VOQUJMRV9BUk1fU0hBM19FWFRFTlNJT05TX0NPTVBJTEVSX0ZMQUcKKyNlbmRpZgorCisjaW5jbHVkZSAiY29tbW9uLmgiCisKKyNpZiBkZWZpbmVkKE1CRURUTFNfU0hBNTEyX0MpIHx8IGRlZmluZWQoTUJFRFRMU19TSEEzODRfQykKKworI2luY2x1ZGUgIm1iZWR0bHMvc2hhNTEyLmgiCisjaW5jbHVkZSAibWJlZHRscy9wbGF0Zm9ybV91dGlsLmgiCisjaW5jbHVkZSAibWJlZHRscy9lcnJvci5oIgorCisjaWYgZGVmaW5lZChfTVNDX1ZFUikgfHwgZGVmaW5lZChfX1dBVENPTUNfXykKKyAgI2RlZmluZSBVTDY0KHgpIHgjI3VpNjQKKyNlbHNlCisgICNkZWZpbmUgVUw2NCh4KSB4IyNVTEwKKyNlbmRpZgorCisjaW5jbHVkZSA8c3RyaW5nLmg+CisKKyNpbmNsdWRlICJtYmVkdGxzL3BsYXRmb3JtLmgiCisKKyNpZiBkZWZpbmVkKF9fYWFyY2g2NF9fKQorIyAgaWYgZGVmaW5lZChNQkVEVExTX1NIQTUxMl9VU0VfQTY0X0NSWVBUT19JRl9QUkVTRU5UKSB8fCBcCisgICAgZGVmaW5lZChNQkVEVExTX1NIQTUxMl9VU0VfQTY0X0NSWVBUT19PTkxZKQorLyogKklOREVOVC1PRkYqICovCisjICAgaWYgIWRlZmluZWQoTUJFRFRMU19IQVZFX05FT05fSU5UUklOU0lDUykKKyMgICAgICAgZXJyb3IgIlRhcmdldCBkb2VzIG5vdCBzdXBwb3J0IE5FT04gaW5zdHJ1Y3Rpb25zIgorIyAgIGVuZGlmCisvKgorICogQmVzdCBwZXJmb3JtYW5jZSBjb21lcyBmcm9tIG1vc3QgcmVjZW50IGNvbXBpbGVycywgd2l0aCBpbnRyaW5zaWNzIGFuZCAtTzMuCisgKiBNdXN0IGNvbXBpbGUgd2l0aCAtbWFyY2g9YXJtdjguMi1hK3NoYTMsIGJ1dCB3ZSBjYW4ndCBkZXRlY3QgYXJtdjguMi1hLCBhbmQKKyAqIGNhbid0IGFsd2F5cyBkZXRlY3QgX19BUk1fRkVBVFVSRV9TSEE1MTIgKG5vdGFibHkgY2xhbmcgNy0xMikuCisgKgorICogR0NDIDwgOCB3b24ndCB3b3JrIGF0IGFsbCAobGFja3MgdGhlIHNoYTUxMiBpbnN0cnVjdGlvbnMpCisgKiBHQ0MgPj0gOCB1c2VzIGludHJpbnNpY3MsIHNldHMgX19BUk1fRkVBVFVSRV9TSEE1MTIKKyAqCisgKiBDbGFuZyA8IDcgd29uJ3Qgd29yayBhdCBhbGwgKGxhY2tzIHRoZSBzaGE1MTIgaW5zdHJ1Y3Rpb25zKQorICogQ2xhbmcgNy0xMiBkb24ndCBoYXZlIGludHJpbnNpY3MgKGJ1dCB3ZSB3b3JrIGFyb3VuZCB0aGF0IHdpdGggaW5saW5lCisgKiAgICAgICAgICAgIGFzc2VtYmxlcikgb3IgX19BUk1fRkVBVFVSRV9TSEE1MTIKKyAqIENsYW5nID09IDEzLjAuMCBzYW1lIGFzIGNsYW5nIDEyIChvbmx5IHNlZW4gb24gbWFjT1MpCisgKiBDbGFuZyA+PSAxMy4wLjEgaGFzIF9fQVJNX0ZFQVRVUkVfU0hBNTEyIGFuZCBpbnRyaW5zaWNzCisgKi8KKyMgICAgaWYgIWRlZmluZWQoX19BUk1fRkVBVFVSRV9TSEE1MTIpIHx8IGRlZmluZWQoTUJFRFRMU19FTkFCTEVfQVJNX1NIQTNfRVhURU5TSU9OU19DT01QSUxFUl9GTEFHKQorICAgICAgIC8qIFRlc3QgQ2xhbmcgZmlyc3QsIGFzIGl0IGRlZmluZXMgX19HTlVDX18gKi8KKyMgICAgICBpZiBkZWZpbmVkKF9fQVJNQ09NUElMRVJfVkVSU0lPTikKKyMgICAgICAgIGlmIF9fQVJNQ09NUElMRVJfVkVSU0lPTiA8IDYwOTAwMDAKKyMgICAgICAgICAgZXJyb3IgIkEgbW9yZSByZWNlbnQgYXJtY2xhbmcgaXMgcmVxdWlyZWQgZm9yIE1CRURUTFNfU0hBNTEyX1VTRV9BNjRfQ1JZUFRPXyoiCisjICAgICAgICBlbGlmIF9fQVJNQ09NUElMRVJfVkVSU0lPTiA9PSA2MDkwMDAwCisjICAgICAgICAgIGVycm9yICJNdXN0IHVzZSBtaW5pbXVtIC1tYXJjaD1hcm12OC4yLWErc2hhMyBmb3IgTUJFRFRMU19TSEE1MTJfVVNFX0E2NF9DUllQVE9fKiIKKyMgICAgICAgIGVsc2UKKyMgICAgICAgICAgcHJhZ21hIGNsYW5nIGF0dHJpYnV0ZSBwdXNoIChfX2F0dHJpYnV0ZV9fKCh0YXJnZXQoInNoYTMiKSkpLCBhcHBseV90bz1mdW5jdGlvbikKKyMgICAgICAgICAgZGVmaW5lIE1CRURUTFNfUE9QX1RBUkdFVF9QUkFHTUEKKyMgICAgICAgIGVuZGlmCisjICAgICAgZWxpZiBkZWZpbmVkKF9fY2xhbmdfXykKKyMgICAgICAgIGlmIF9fY2xhbmdfbWFqb3JfXyA8IDcKKyMgICAgICAgICAgZXJyb3IgIkEgbW9yZSByZWNlbnQgQ2xhbmcgaXMgcmVxdWlyZWQgZm9yIE1CRURUTFNfU0hBNTEyX1VTRV9BNjRfQ1JZUFRPXyoiCisjICAgICAgICBlbHNlCisjICAgICAgICAgIHByYWdtYSBjbGFuZyBhdHRyaWJ1dGUgcHVzaCAoX19hdHRyaWJ1dGVfXygodGFyZ2V0KCJzaGEzIikpKSwgYXBwbHlfdG89ZnVuY3Rpb24pCisjICAgICAgICAgIGRlZmluZSBNQkVEVExTX1BPUF9UQVJHRVRfUFJBR01BCisjICAgICAgICBlbmRpZgorIyAgICAgIGVsaWYgZGVmaW5lZChfX0dOVUNfXykKKyMgICAgICAgIGlmIF9fR05VQ19fIDwgOAorIyAgICAgICAgICBlcnJvciAiQSBtb3JlIHJlY2VudCBHQ0MgaXMgcmVxdWlyZWQgZm9yIE1CRURUTFNfU0hBNTEyX1VTRV9BNjRfQ1JZUFRPXyoiCisjICAgICAgICBlbHNlCisjICAgICAgICAgIHByYWdtYSBHQ0MgcHVzaF9vcHRpb25zCisjICAgICAgICAgIHByYWdtYSBHQ0MgdGFyZ2V0ICgiYXJjaD1hcm12OC4yLWErc2hhMyIpCisjICAgICAgICAgIGRlZmluZSBNQkVEVExTX1BPUF9UQVJHRVRfUFJBR01BCisjICAgICAgICBlbmRpZgorIyAgICAgIGVsc2UKKyMgICAgICAgIGVycm9yICJPbmx5IEdDQyBhbmQgQ2xhbmcgc3VwcG9ydGVkIGZvciBNQkVEVExTX1NIQTUxMl9VU0VfQTY0X0NSWVBUT18qIgorIyAgICAgIGVuZGlmCisjICAgIGVuZGlmCisvKiAqSU5ERU5ULU9OKiAqLworIyAgZW5kaWYKKyMgIGlmIGRlZmluZWQoTUJFRFRMU19TSEE1MTJfVVNFX0E2NF9DUllQVE9fSUZfUFJFU0VOVCkKKyMgICAgaWYgZGVmaW5lZChfX3VuaXhfXykKKyMgICAgICBpZiBkZWZpbmVkKF9fbGludXhfXykKKy8qIE91ciBwcmVmZXJyZWQgbWV0aG9kIG9mIGRldGVjdGlvbiBpcyBnZXRhdXh2YWwoKSAqLworIyAgICAgICAgaW5jbHVkZSA8c3lzL2F1eHYuaD4KKyMgICAgICAgIGlmICFkZWZpbmVkKEhXQ0FQX1NIQTUxMikKKy8qIFRoZSBzYW1lIGhlYWRlciB0aGF0IGRlY2xhcmVzIGdldGF1eHZhbCgpIHNob3VsZCBwcm92aWRlIHRoZSBIV0NBUF94eHgKKyAqIGNvbnN0YW50cyB0byBhbmFseXplIGl0cyByZXR1cm4gdmFsdWUuIEhvd2V2ZXIsIHRoZSBsaWJjIG1heSBiZSB0b28KKyAqIG9sZCB0byBoYXZlIHRoZSBjb25zdGFudCB0aGF0IHdlIG5lZWQuIFNvIGlmIGl0J3MgbWlzc2luZywgYXNzdW1lIHRoYXQKKyAqIHRoZSB2YWx1ZSBpcyB0aGUgc2FtZSBvbmUgdXNlZCBieSB0aGUgTGludXgga2VybmVsIEFCSS4KKyAqLworIyAgICAgICAgICBkZWZpbmUgSFdDQVBfU0hBNTEyICgxIDw8IDIxKQorIyAgICAgICAgZW5kaWYKKyMgICAgICBlbmRpZgorLyogVXNlIFNJR0lMTCBvbiBVbml4LCBhbmQgZmFsbCBiYWNrIHRvIGl0IG9uIExpbnV4ICovCisjICAgICAgaW5jbHVkZSA8c2lnbmFsLmg+CisjICAgIGVuZGlmCisjICBlbmRpZgorI2VsaWYgIWRlZmluZWQoTUJFRFRMU19QTEFURk9STV9JU19XSU5ET1dTX09OX0FSTTY0KQorIyAgdW5kZWYgTUJFRFRMU19TSEE1MTJfVVNFX0E2NF9DUllQVE9fT05MWQorIyAgdW5kZWYgTUJFRFRMU19TSEE1MTJfVVNFX0E2NF9DUllQVE9fSUZfUFJFU0VOVAorI2VuZGlmCisKKyNpZiBkZWZpbmVkKE1CRURUTFNfU0hBNTEyX1VTRV9BNjRfQ1JZUFRPX0lGX1BSRVNFTlQpCisvKgorICogQ2FwYWJpbGl0eSBkZXRlY3Rpb24gY29kZSBjb21lcyBlYXJseSwgc28gd2UgY2FuIGRpc2FibGUKKyAqIE1CRURUTFNfU0hBNTEyX1VTRV9BNjRfQ1JZUFRPX0lGX1BSRVNFTlQgaWYgbm8gZGV0ZWN0aW9uIG1lY2hhbmlzbSBmb3VuZAorICovCisjaWYgZGVmaW5lZChIV0NBUF9TSEE1MTIpCitzdGF0aWMgaW50IG1iZWR0bHNfYTY0X2NyeXB0b19zaGE1MTJfZGV0ZXJtaW5lX3N1cHBvcnQodm9pZCkKK3sKKyAgICByZXR1cm4gKGdldGF1eHZhbChBVF9IV0NBUCkgJiBIV0NBUF9TSEE1MTIpID8gMSA6IDA7Cit9CisjZWxpZiBkZWZpbmVkKF9fQVBQTEVfXykKKyNpbmNsdWRlIDxzeXMvdHlwZXMuaD4KKyNpbmNsdWRlIDxzeXMvc3lzY3RsLmg+CisKK3N0YXRpYyBpbnQgbWJlZHRsc19hNjRfY3J5cHRvX3NoYTUxMl9kZXRlcm1pbmVfc3VwcG9ydCh2b2lkKQoreworICAgIGludCB2YWx1ZSA9IDA7CisgICAgc2l6ZV90IHZhbHVlX2xlbiA9IHNpemVvZih2YWx1ZSk7CisKKyAgICBpbnQgcmV0ID0gc3lzY3RsYnluYW1lKCJody5vcHRpb25hbC5hcm12OF8yX3NoYTUxMiIsICZ2YWx1ZSwgJnZhbHVlX2xlbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIE5VTEwsIDApOworICAgIHJldHVybiByZXQgPT0gMCAmJiB2YWx1ZSAhPSAwOworfQorI2VsaWYgZGVmaW5lZChNQkVEVExTX1BMQVRGT1JNX0lTX1dJTkRPV1NfT05fQVJNNjQpCisvKgorICogQXMgb2YgTWFyY2ggMjAyMiwgdGhlcmUgZG9uJ3QgYXBwZWFyIHRvIGJlIGFueSBQRl9BUk1fVjhfKiBmbGFncworICogYXZhaWxhYmxlIHRvIHBhc3MgdG8gSXNQcm9jZXNzb3JGZWF0dXJlUHJlc2VudCgpIHRvIGNoZWNrIGZvcgorICogU0hBLTUxMiBzdXBwb3J0LiBTbyB3ZSBmYWxsIGJhY2sgdG8gdGhlIEMgY29kZSBvbmx5LgorICovCisjaWYgZGVmaW5lZChfTVNDX1ZFUikKKyNwcmFnbWEgbWVzc2FnZSAiTm8gbWVjaGFuaXNtIHRvIGRldGVjdCBBNjRfQ1JZUFRPIGZvdW5kLCB1c2luZyBDIGNvZGUgb25seSIKKyNlbHNlCisjd2FybmluZyAiTm8gbWVjaGFuaXNtIHRvIGRldGVjdCBBNjRfQ1JZUFRPIGZvdW5kLCB1c2luZyBDIGNvZGUgb25seSIKKyNlbmRpZgorI2VsaWYgZGVmaW5lZChfX3VuaXhfXykgJiYgZGVmaW5lZChTSUdfU0VUTUFTSykKKy8qIERldGVjdGlvbiB3aXRoIFNJR0lMTCwgc2V0am1wKCkgYW5kIGxvbmdqbXAoKSAqLworI2luY2x1ZGUgPHNpZ25hbC5oPgorI2luY2x1ZGUgPHNldGptcC5oPgorCitzdGF0aWMgam1wX2J1ZiByZXR1cm5fZnJvbV9zaWdpbGw7CisKKy8qCisgKiBBNjQgU0hBNTEyIHN1cHBvcnQgZGV0ZWN0aW9uIHZpYSBTSUdJTEwKKyAqLworc3RhdGljIHZvaWQgc2lnaWxsX2hhbmRsZXIoaW50IHNpZ25hbCkKK3sKKyAgICAodm9pZCkgc2lnbmFsOworICAgIGxvbmdqbXAocmV0dXJuX2Zyb21fc2lnaWxsLCAxKTsKK30KKworc3RhdGljIGludCBtYmVkdGxzX2E2NF9jcnlwdG9fc2hhNTEyX2RldGVybWluZV9zdXBwb3J0KHZvaWQpCit7CisgICAgc3RydWN0IHNpZ2FjdGlvbiBvbGRfYWN0aW9uLCBuZXdfYWN0aW9uOworCisgICAgc2lnc2V0X3Qgb2xkX21hc2s7CisgICAgaWYgKHNpZ3Byb2NtYXNrKDAsIE5VTEwsICZvbGRfbWFzaykpIHsKKyAgICAgICAgcmV0dXJuIDA7CisgICAgfQorCisgICAgc2lnZW1wdHlzZXQoJm5ld19hY3Rpb24uc2FfbWFzayk7CisgICAgbmV3X2FjdGlvbi5zYV9mbGFncyA9IDA7CisgICAgbmV3X2FjdGlvbi5zYV9oYW5kbGVyID0gc2lnaWxsX2hhbmRsZXI7CisKKyAgICBzaWdhY3Rpb24oU0lHSUxMLCAmbmV3X2FjdGlvbiwgJm9sZF9hY3Rpb24pOworCisgICAgc3RhdGljIGludCByZXQgPSAwOworCisgICAgaWYgKHNldGptcChyZXR1cm5fZnJvbV9zaWdpbGwpID09IDApIHsgICAgICAgICAvKiBGaXJzdCByZXR1cm4gb25seSAqLworICAgICAgICAvKiBJZiB0aGlzIHRyYXBzLCB3ZSB3aWxsIHJldHVybiBhIHNlY29uZCB0aW1lIGZyb20gc2V0am1wKCkgd2l0aCAxICovCisgICAgICAgIGFzbSAoInNoYTUxMmggcTAsIHEwLCB2MC4yZCIgOiA6IDogInYwIik7CisgICAgICAgIHJldCA9IDE7CisgICAgfQorCisgICAgc2lnYWN0aW9uKFNJR0lMTCwgJm9sZF9hY3Rpb24sIE5VTEwpOworICAgIHNpZ3Byb2NtYXNrKFNJR19TRVRNQVNLLCAmb2xkX21hc2ssIE5VTEwpOworCisgICAgcmV0dXJuIHJldDsKK30KKyNlbHNlCisjd2FybmluZyAiTm8gbWVjaGFuaXNtIHRvIGRldGVjdCBBNjRfQ1JZUFRPIGZvdW5kLCB1c2luZyBDIGNvZGUgb25seSIKKyN1bmRlZiBNQkVEVExTX1NIQTUxMl9VU0VfQTY0X0NSWVBUT19JRl9QUkVTRU5UCisjZW5kaWYgIC8qIEhXQ0FQX1NIQTUxMiwgX19BUFBMRV9fLCBfX3VuaXhfXyAmJiBTSUdfU0VUTUFTSyAqLworCisjZW5kaWYgIC8qIE1CRURUTFNfU0hBNTEyX1VTRV9BNjRfQ1JZUFRPX0lGX1BSRVNFTlQgKi8KKworI2RlZmluZSBTSEE1MTJfQkxPQ0tfU0laRSAxMjgKKworI2lmIGRlZmluZWQoTUJFRFRMU19TSEE1MTJfU01BTExFUikKK3N0YXRpYyB2b2lkIHNoYTUxMl9wdXRfdWludDY0X2JlKHVpbnQ2NF90IG4sIHVuc2lnbmVkIGNoYXIgKmIsIHVpbnQ4X3QgaSkKK3sKKyAgICBNQkVEVExTX1BVVF9VSU5UNjRfQkUobiwgYiwgaSk7Cit9CisjZWxzZQorI2RlZmluZSBzaGE1MTJfcHV0X3VpbnQ2NF9iZSAgICBNQkVEVExTX1BVVF9VSU5UNjRfQkUKKyNlbmRpZiAvKiBNQkVEVExTX1NIQTUxMl9TTUFMTEVSICovCisKK3ZvaWQgbWJlZHRsc19zaGE1MTJfaW5pdChtYmVkdGxzX3NoYTUxMl9jb250ZXh0ICpjdHgpCit7CisgICAgbWVtc2V0KGN0eCwgMCwgc2l6ZW9mKG1iZWR0bHNfc2hhNTEyX2NvbnRleHQpKTsKK30KKwordm9pZCBtYmVkdGxzX3NoYTUxMl9mcmVlKG1iZWR0bHNfc2hhNTEyX2NvbnRleHQgKmN0eCkKK3sKKyAgICBpZiAoY3R4ID09IE5VTEwpIHsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIG1iZWR0bHNfcGxhdGZvcm1femVyb2l6ZShjdHgsIHNpemVvZihtYmVkdGxzX3NoYTUxMl9jb250ZXh0KSk7Cit9CisKK3ZvaWQgbWJlZHRsc19zaGE1MTJfY2xvbmUobWJlZHRsc19zaGE1MTJfY29udGV4dCAqZHN0LAorICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBtYmVkdGxzX3NoYTUxMl9jb250ZXh0ICpzcmMpCit7CisgICAgKmRzdCA9ICpzcmM7Cit9CisKKy8qCisgKiBTSEEtNTEyIGNvbnRleHQgc2V0dXAKKyAqLworaW50IG1iZWR0bHNfc2hhNTEyX3N0YXJ0cyhtYmVkdGxzX3NoYTUxMl9jb250ZXh0ICpjdHgsIGludCBpczM4NCkKK3sKKyNpZiBkZWZpbmVkKE1CRURUTFNfU0hBMzg0X0MpICYmIGRlZmluZWQoTUJFRFRMU19TSEE1MTJfQykKKyAgICBpZiAoaXMzODQgIT0gMCAmJiBpczM4NCAhPSAxKSB7CisgICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9TSEE1MTJfQkFEX0lOUFVUX0RBVEE7CisgICAgfQorI2VsaWYgZGVmaW5lZChNQkVEVExTX1NIQTUxMl9DKQorICAgIGlmIChpczM4NCAhPSAwKSB7CisgICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9TSEE1MTJfQkFEX0lOUFVUX0RBVEE7CisgICAgfQorI2Vsc2UgLyogZGVmaW5lZCBNQkVEVExTX1NIQTM4NF9DIG9ubHkgKi8KKyAgICBpZiAoaXMzODQgPT0gMCkgeworICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfU0hBNTEyX0JBRF9JTlBVVF9EQVRBOworICAgIH0KKyNlbmRpZgorCisgICAgY3R4LT50b3RhbFswXSA9IDA7CisgICAgY3R4LT50b3RhbFsxXSA9IDA7CisKKyAgICBpZiAoaXMzODQgPT0gMCkgeworI2lmIGRlZmluZWQoTUJFRFRMU19TSEE1MTJfQykKKyAgICAgICAgY3R4LT5zdGF0ZVswXSA9IFVMNjQoMHg2QTA5RTY2N0YzQkNDOTA4KTsKKyAgICAgICAgY3R4LT5zdGF0ZVsxXSA9IFVMNjQoMHhCQjY3QUU4NTg0Q0FBNzNCKTsKKyAgICAgICAgY3R4LT5zdGF0ZVsyXSA9IFVMNjQoMHgzQzZFRjM3MkZFOTRGODJCKTsKKyAgICAgICAgY3R4LT5zdGF0ZVszXSA9IFVMNjQoMHhBNTRGRjUzQTVGMUQzNkYxKTsKKyAgICAgICAgY3R4LT5zdGF0ZVs0XSA9IFVMNjQoMHg1MTBFNTI3RkFERTY4MkQxKTsKKyAgICAgICAgY3R4LT5zdGF0ZVs1XSA9IFVMNjQoMHg5QjA1Njg4QzJCM0U2QzFGKTsKKyAgICAgICAgY3R4LT5zdGF0ZVs2XSA9IFVMNjQoMHgxRjgzRDlBQkZCNDFCRDZCKTsKKyAgICAgICAgY3R4LT5zdGF0ZVs3XSA9IFVMNjQoMHg1QkUwQ0QxOTEzN0UyMTc5KTsKKyNlbmRpZiAvKiBNQkVEVExTX1NIQTUxMl9DICovCisgICAgfSBlbHNlIHsKKyNpZiBkZWZpbmVkKE1CRURUTFNfU0hBMzg0X0MpCisgICAgICAgIGN0eC0+c3RhdGVbMF0gPSBVTDY0KDB4Q0JCQjlENURDMTA1OUVEOCk7CisgICAgICAgIGN0eC0+c3RhdGVbMV0gPSBVTDY0KDB4NjI5QTI5MkEzNjdDRDUwNyk7CisgICAgICAgIGN0eC0+c3RhdGVbMl0gPSBVTDY0KDB4OTE1OTAxNUEzMDcwREQxNyk7CisgICAgICAgIGN0eC0+c3RhdGVbM10gPSBVTDY0KDB4MTUyRkVDRDhGNzBFNTkzOSk7CisgICAgICAgIGN0eC0+c3RhdGVbNF0gPSBVTDY0KDB4NjczMzI2NjdGRkMwMEIzMSk7CisgICAgICAgIGN0eC0+c3RhdGVbNV0gPSBVTDY0KDB4OEVCNDRBODc2ODU4MTUxMSk7CisgICAgICAgIGN0eC0+c3RhdGVbNl0gPSBVTDY0KDB4REIwQzJFMEQ2NEY5OEZBNyk7CisgICAgICAgIGN0eC0+c3RhdGVbN10gPSBVTDY0KDB4NDdCNTQ4MURCRUZBNEZBNCk7CisjZW5kaWYgLyogTUJFRFRMU19TSEEzODRfQyAqLworICAgIH0KKworI2lmIGRlZmluZWQoTUJFRFRMU19TSEEzODRfQykKKyAgICBjdHgtPmlzMzg0ID0gaXMzODQ7CisjZW5kaWYKKworICAgIHJldHVybiAwOworfQorCisjaWYgIWRlZmluZWQoTUJFRFRMU19TSEE1MTJfUFJPQ0VTU19BTFQpCisKKy8qCisgKiBSb3VuZCBjb25zdGFudHMKKyAqLworc3RhdGljIGNvbnN0IHVpbnQ2NF90IEtbODBdID0KK3sKKyAgICBVTDY0KDB4NDI4QTJGOThENzI4QUUyMiksICBVTDY0KDB4NzEzNzQ0OTEyM0VGNjVDRCksCisgICAgVUw2NCgweEI1QzBGQkNGRUM0RDNCMkYpLCAgVUw2NCgweEU5QjVEQkE1ODE4OURCQkMpLAorICAgIFVMNjQoMHgzOTU2QzI1QkYzNDhCNTM4KSwgIFVMNjQoMHg1OUYxMTFGMUI2MDVEMDE5KSwKKyAgICBVTDY0KDB4OTIzRjgyQTRBRjE5NEY5QiksICBVTDY0KDB4QUIxQzVFRDVEQTZEODExOCksCisgICAgVUw2NCgweEQ4MDdBQTk4QTMwMzAyNDIpLCAgVUw2NCgweDEyODM1QjAxNDU3MDZGQkUpLAorICAgIFVMNjQoMHgyNDMxODVCRTRFRTRCMjhDKSwgIFVMNjQoMHg1NTBDN0RDM0Q1RkZCNEUyKSwKKyAgICBVTDY0KDB4NzJCRTVENzRGMjdCODk2RiksICBVTDY0KDB4ODBERUIxRkUzQjE2OTZCMSksCisgICAgVUw2NCgweDlCREMwNkE3MjVDNzEyMzUpLCAgVUw2NCgweEMxOUJGMTc0Q0Y2OTI2OTQpLAorICAgIFVMNjQoMHhFNDlCNjlDMTlFRjE0QUQyKSwgIFVMNjQoMHhFRkJFNDc4NjM4NEYyNUUzKSwKKyAgICBVTDY0KDB4MEZDMTlEQzY4QjhDRDVCNSksICBVTDY0KDB4MjQwQ0ExQ0M3N0FDOUM2NSksCisgICAgVUw2NCgweDJERTkyQzZGNTkyQjAyNzUpLCAgVUw2NCgweDRBNzQ4NEFBNkVBNkU0ODMpLAorICAgIFVMNjQoMHg1Q0IwQTlEQ0JENDFGQkQ0KSwgIFVMNjQoMHg3NkY5ODhEQTgzMTE1M0I1KSwKKyAgICBVTDY0KDB4OTgzRTUxNTJFRTY2REZBQiksICBVTDY0KDB4QTgzMUM2NkQyREI0MzIxMCksCisgICAgVUw2NCgweEIwMDMyN0M4OThGQjIxM0YpLCAgVUw2NCgweEJGNTk3RkM3QkVFRjBFRTQpLAorICAgIFVMNjQoMHhDNkUwMEJGMzNEQTg4RkMyKSwgIFVMNjQoMHhENUE3OTE0NzkzMEFBNzI1KSwKKyAgICBVTDY0KDB4MDZDQTYzNTFFMDAzODI2RiksICBVTDY0KDB4MTQyOTI5NjcwQTBFNkU3MCksCisgICAgVUw2NCgweDI3QjcwQTg1NDZEMjJGRkMpLCAgVUw2NCgweDJFMUIyMTM4NUMyNkM5MjYpLAorICAgIFVMNjQoMHg0RDJDNkRGQzVBQzQyQUVEKSwgIFVMNjQoMHg1MzM4MEQxMzlEOTVCM0RGKSwKKyAgICBVTDY0KDB4NjUwQTczNTQ4QkFGNjNERSksICBVTDY0KDB4NzY2QTBBQkIzQzc3QjJBOCksCisgICAgVUw2NCgweDgxQzJDOTJFNDdFREFFRTYpLCAgVUw2NCgweDkyNzIyQzg1MTQ4MjM1M0IpLAorICAgIFVMNjQoMHhBMkJGRThBMTRDRjEwMzY0KSwgIFVMNjQoMHhBODFBNjY0QkJDNDIzMDAxKSwKKyAgICBVTDY0KDB4QzI0QjhCNzBEMEY4OTc5MSksICBVTDY0KDB4Qzc2QzUxQTMwNjU0QkUzMCksCisgICAgVUw2NCgweEQxOTJFODE5RDZFRjUyMTgpLCAgVUw2NCgweEQ2OTkwNjI0NTU2NUE5MTApLAorICAgIFVMNjQoMHhGNDBFMzU4NTU3NzEyMDJBKSwgIFVMNjQoMHgxMDZBQTA3MDMyQkJEMUI4KSwKKyAgICBVTDY0KDB4MTlBNEMxMTZCOEQyRDBDOCksICBVTDY0KDB4MUUzNzZDMDg1MTQxQUI1MyksCisgICAgVUw2NCgweDI3NDg3NzRDREY4RUVCOTkpLCAgVUw2NCgweDM0QjBCQ0I1RTE5QjQ4QTgpLAorICAgIFVMNjQoMHgzOTFDMENCM0M1Qzk1QTYzKSwgIFVMNjQoMHg0RUQ4QUE0QUUzNDE4QUNCKSwKKyAgICBVTDY0KDB4NUI5Q0NBNEY3NzYzRTM3MyksICBVTDY0KDB4NjgyRTZGRjNENkIyQjhBMyksCisgICAgVUw2NCgweDc0OEY4MkVFNURFRkIyRkMpLCAgVUw2NCgweDc4QTU2MzZGNDMxNzJGNjApLAorICAgIFVMNjQoMHg4NEM4NzgxNEExRjBBQjcyKSwgIFVMNjQoMHg4Q0M3MDIwODFBNjQzOUVDKSwKKyAgICBVTDY0KDB4OTBCRUZGRkEyMzYzMUUyOCksICBVTDY0KDB4QTQ1MDZDRUJERTgyQkRFOSksCisgICAgVUw2NCgweEJFRjlBM0Y3QjJDNjc5MTUpLCAgVUw2NCgweEM2NzE3OEYyRTM3MjUzMkIpLAorICAgIFVMNjQoMHhDQTI3M0VDRUVBMjY2MTlDKSwgIFVMNjQoMHhEMTg2QjhDNzIxQzBDMjA3KSwKKyAgICBVTDY0KDB4RUFEQTdERDZDREUwRUIxRSksICBVTDY0KDB4RjU3RDRGN0ZFRTZFRDE3OCksCisgICAgVUw2NCgweDA2RjA2N0FBNzIxNzZGQkEpLCAgVUw2NCgweDBBNjM3REM1QTJDODk4QTYpLAorICAgIFVMNjQoMHgxMTNGOTgwNEJFRjkwREFFKSwgIFVMNjQoMHgxQjcxMEIzNTEzMUM0NzFCKSwKKyAgICBVTDY0KDB4MjhEQjc3RjUyMzA0N0Q4NCksICBVTDY0KDB4MzJDQUFCN0I0MEM3MjQ5MyksCisgICAgVUw2NCgweDNDOUVCRTBBMTVDOUJFQkMpLCAgVUw2NCgweDQzMUQ2N0M0OUMxMDBENEMpLAorICAgIFVMNjQoMHg0Q0M1RDRCRUNCM0U0MkI2KSwgIFVMNjQoMHg1OTdGMjk5Q0ZDNjU3RTJBKSwKKyAgICBVTDY0KDB4NUZDQjZGQUIzQUQ2RkFFQyksICBVTDY0KDB4NkM0NDE5OEM0QTQ3NTgxNykKK307CisjZW5kaWYKKworI2lmIGRlZmluZWQoTUJFRFRMU19TSEE1MTJfVVNFX0E2NF9DUllQVE9fSUZfUFJFU0VOVCkgfHwgXAorICAgIGRlZmluZWQoTUJFRFRMU19TSEE1MTJfVVNFX0E2NF9DUllQVE9fT05MWSkKKworI2lmIGRlZmluZWQoTUJFRFRMU19TSEE1MTJfVVNFX0E2NF9DUllQVE9fT05MWSkKKyMgIGRlZmluZSBtYmVkdGxzX2ludGVybmFsX3NoYTUxMl9wcm9jZXNzX21hbnlfYTY0X2NyeXB0byBtYmVkdGxzX2ludGVybmFsX3NoYTUxMl9wcm9jZXNzX21hbnkKKyMgIGRlZmluZSBtYmVkdGxzX2ludGVybmFsX3NoYTUxMl9wcm9jZXNzX2E2NF9jcnlwdG8gICAgICBtYmVkdGxzX2ludGVybmFsX3NoYTUxMl9wcm9jZXNzCisjZW5kaWYKKworLyogQWNjZWxlcmF0ZWQgU0hBLTUxMiBpbXBsZW1lbnRhdGlvbiBvcmlnaW5hbGx5IHdyaXR0ZW4gYnkgU2ltb24gVGF0aGFtIGZvciBQdVRUWSwKKyAqIHVuZGVyIHRoZSBNSVQgbGljZW5jZTsgZHVhbC1saWNlbnNlZCBhcyBBcGFjaGUgMiB3aXRoIGhpcyBraW5kIHBlcm1pc3Npb24uCisgKi8KKworI2lmIGRlZmluZWQoX19jbGFuZ19fKSAmJiBcCisgICAgKF9fY2xhbmdfbWFqb3JfXyA8IDEzIHx8IFwKKyAgICAgKF9fY2xhbmdfbWFqb3JfXyA9PSAxMyAmJiBfX2NsYW5nX21pbm9yX18gPT0gMCAmJiBfX2NsYW5nX3BhdGNobGV2ZWxfXyA9PSAwKSkKK3N0YXRpYyBpbmxpbmUgdWludDY0eDJfdCB2c2hhNTEyc3UwcV91NjQodWludDY0eDJfdCB4LCB1aW50NjR4Ml90IHkpCit7CisgICAgYXNtICgic2hhNTEyc3UwICUwLjJELCUxLjJEIiA6ICIrdyIgKHgpIDogInciICh5KSk7CisgICAgcmV0dXJuIHg7Cit9CitzdGF0aWMgaW5saW5lIHVpbnQ2NHgyX3QgdnNoYTUxMnN1MXFfdTY0KHVpbnQ2NHgyX3QgeCwgdWludDY0eDJfdCB5LCB1aW50NjR4Ml90IHopCit7CisgICAgYXNtICgic2hhNTEyc3UxICUwLjJELCUxLjJELCUyLjJEIiA6ICIrdyIgKHgpIDogInciICh5KSwgInciICh6KSk7CisgICAgcmV0dXJuIHg7Cit9CitzdGF0aWMgaW5saW5lIHVpbnQ2NHgyX3QgdnNoYTUxMmhxX3U2NCh1aW50NjR4Ml90IHgsIHVpbnQ2NHgyX3QgeSwgdWludDY0eDJfdCB6KQoreworICAgIGFzbSAoInNoYTUxMmggJTAsJTEsJTIuMkQiIDogIit3IiAoeCkgOiAidyIgKHkpLCAidyIgKHopKTsKKyAgICByZXR1cm4geDsKK30KK3N0YXRpYyBpbmxpbmUgdWludDY0eDJfdCB2c2hhNTEyaDJxX3U2NCh1aW50NjR4Ml90IHgsIHVpbnQ2NHgyX3QgeSwgdWludDY0eDJfdCB6KQoreworICAgIGFzbSAoInNoYTUxMmgyICUwLCUxLCUyLjJEIiA6ICIrdyIgKHgpIDogInciICh5KSwgInciICh6KSk7CisgICAgcmV0dXJuIHg7Cit9CisjZW5kaWYgIC8qIF9fY2xhbmdfXyBldGMgKi8KKworc3RhdGljIHNpemVfdCBtYmVkdGxzX2ludGVybmFsX3NoYTUxMl9wcm9jZXNzX21hbnlfYTY0X2NyeXB0bygKKyAgICBtYmVkdGxzX3NoYTUxMl9jb250ZXh0ICpjdHgsIGNvbnN0IHVpbnQ4X3QgKm1zZywgc2l6ZV90IGxlbikKK3sKKyAgICB1aW50NjR4Ml90IGFiID0gdmxkMXFfdTY0KCZjdHgtPnN0YXRlWzBdKTsKKyAgICB1aW50NjR4Ml90IGNkID0gdmxkMXFfdTY0KCZjdHgtPnN0YXRlWzJdKTsKKyAgICB1aW50NjR4Ml90IGVmID0gdmxkMXFfdTY0KCZjdHgtPnN0YXRlWzRdKTsKKyAgICB1aW50NjR4Ml90IGdoID0gdmxkMXFfdTY0KCZjdHgtPnN0YXRlWzZdKTsKKworICAgIHNpemVfdCBwcm9jZXNzZWQgPSAwOworCisgICAgZm9yICg7CisgICAgICAgICBsZW4gPj0gU0hBNTEyX0JMT0NLX1NJWkU7CisgICAgICAgICBwcm9jZXNzZWQgKz0gU0hBNTEyX0JMT0NLX1NJWkUsCisgICAgICAgICBtc2cgKz0gU0hBNTEyX0JMT0NLX1NJWkUsCisgICAgICAgICBsZW4gLT0gU0hBNTEyX0JMT0NLX1NJWkUpIHsKKyAgICAgICAgdWludDY0eDJfdCBpbml0aWFsX3N1bSwgc3VtLCBpbnRlcm1lZDsKKworICAgICAgICB1aW50NjR4Ml90IGFiX29yaWcgPSBhYjsKKyAgICAgICAgdWludDY0eDJfdCBjZF9vcmlnID0gY2Q7CisgICAgICAgIHVpbnQ2NHgyX3QgZWZfb3JpZyA9IGVmOworICAgICAgICB1aW50NjR4Ml90IGdoX29yaWcgPSBnaDsKKworICAgICAgICB1aW50NjR4Ml90IHMwID0gKHVpbnQ2NHgyX3QpIHZsZDFxX3U4KG1zZyArIDE2ICogMCk7CisgICAgICAgIHVpbnQ2NHgyX3QgczEgPSAodWludDY0eDJfdCkgdmxkMXFfdTgobXNnICsgMTYgKiAxKTsKKyAgICAgICAgdWludDY0eDJfdCBzMiA9ICh1aW50NjR4Ml90KSB2bGQxcV91OChtc2cgKyAxNiAqIDIpOworICAgICAgICB1aW50NjR4Ml90IHMzID0gKHVpbnQ2NHgyX3QpIHZsZDFxX3U4KG1zZyArIDE2ICogMyk7CisgICAgICAgIHVpbnQ2NHgyX3QgczQgPSAodWludDY0eDJfdCkgdmxkMXFfdTgobXNnICsgMTYgKiA0KTsKKyAgICAgICAgdWludDY0eDJfdCBzNSA9ICh1aW50NjR4Ml90KSB2bGQxcV91OChtc2cgKyAxNiAqIDUpOworICAgICAgICB1aW50NjR4Ml90IHM2ID0gKHVpbnQ2NHgyX3QpIHZsZDFxX3U4KG1zZyArIDE2ICogNik7CisgICAgICAgIHVpbnQ2NHgyX3QgczcgPSAodWludDY0eDJfdCkgdmxkMXFfdTgobXNnICsgMTYgKiA3KTsKKworI2lmIF9fQllURV9PUkRFUl9fID09IF9fT1JERVJfTElUVExFX0VORElBTl9fICAvKiBhc3N1bWUgTEUgaWYgdGhlc2Ugbm90IGRlZmluZWQ7IHVudGVzdGVkIG9uIEJFICovCisgICAgICAgIHMwID0gdnJlaW50ZXJwcmV0cV91NjRfdTgodnJldjY0cV91OCh2cmVpbnRlcnByZXRxX3U4X3U2NChzMCkpKTsKKyAgICAgICAgczEgPSB2cmVpbnRlcnByZXRxX3U2NF91OCh2cmV2NjRxX3U4KHZyZWludGVycHJldHFfdThfdTY0KHMxKSkpOworICAgICAgICBzMiA9IHZyZWludGVycHJldHFfdTY0X3U4KHZyZXY2NHFfdTgodnJlaW50ZXJwcmV0cV91OF91NjQoczIpKSk7CisgICAgICAgIHMzID0gdnJlaW50ZXJwcmV0cV91NjRfdTgodnJldjY0cV91OCh2cmVpbnRlcnByZXRxX3U4X3U2NChzMykpKTsKKyAgICAgICAgczQgPSB2cmVpbnRlcnByZXRxX3U2NF91OCh2cmV2NjRxX3U4KHZyZWludGVycHJldHFfdThfdTY0KHM0KSkpOworICAgICAgICBzNSA9IHZyZWludGVycHJldHFfdTY0X3U4KHZyZXY2NHFfdTgodnJlaW50ZXJwcmV0cV91OF91NjQoczUpKSk7CisgICAgICAgIHM2ID0gdnJlaW50ZXJwcmV0cV91NjRfdTgodnJldjY0cV91OCh2cmVpbnRlcnByZXRxX3U4X3U2NChzNikpKTsKKyAgICAgICAgczcgPSB2cmVpbnRlcnByZXRxX3U2NF91OCh2cmV2NjRxX3U4KHZyZWludGVycHJldHFfdThfdTY0KHM3KSkpOworI2VuZGlmCisKKyAgICAgICAgLyogUm91bmRzIDAgYW5kIDEgKi8KKyAgICAgICAgaW5pdGlhbF9zdW0gPSB2YWRkcV91NjQoczAsIHZsZDFxX3U2NCgmS1swXSkpOworICAgICAgICBzdW0gPSB2YWRkcV91NjQodmV4dHFfdTY0KGluaXRpYWxfc3VtLCBpbml0aWFsX3N1bSwgMSksIGdoKTsKKyAgICAgICAgaW50ZXJtZWQgPSB2c2hhNTEyaHFfdTY0KHN1bSwgdmV4dHFfdTY0KGVmLCBnaCwgMSksIHZleHRxX3U2NChjZCwgZWYsIDEpKTsKKyAgICAgICAgZ2ggPSB2c2hhNTEyaDJxX3U2NChpbnRlcm1lZCwgY2QsIGFiKTsKKyAgICAgICAgY2QgPSB2YWRkcV91NjQoY2QsIGludGVybWVkKTsKKworICAgICAgICAvKiBSb3VuZHMgMiBhbmQgMyAqLworICAgICAgICBpbml0aWFsX3N1bSA9IHZhZGRxX3U2NChzMSwgdmxkMXFfdTY0KCZLWzJdKSk7CisgICAgICAgIHN1bSA9IHZhZGRxX3U2NCh2ZXh0cV91NjQoaW5pdGlhbF9zdW0sIGluaXRpYWxfc3VtLCAxKSwgZWYpOworICAgICAgICBpbnRlcm1lZCA9IHZzaGE1MTJocV91NjQoc3VtLCB2ZXh0cV91NjQoY2QsIGVmLCAxKSwgdmV4dHFfdTY0KGFiLCBjZCwgMSkpOworICAgICAgICBlZiA9IHZzaGE1MTJoMnFfdTY0KGludGVybWVkLCBhYiwgZ2gpOworICAgICAgICBhYiA9IHZhZGRxX3U2NChhYiwgaW50ZXJtZWQpOworCisgICAgICAgIC8qIFJvdW5kcyA0IGFuZCA1ICovCisgICAgICAgIGluaXRpYWxfc3VtID0gdmFkZHFfdTY0KHMyLCB2bGQxcV91NjQoJktbNF0pKTsKKyAgICAgICAgc3VtID0gdmFkZHFfdTY0KHZleHRxX3U2NChpbml0aWFsX3N1bSwgaW5pdGlhbF9zdW0sIDEpLCBjZCk7CisgICAgICAgIGludGVybWVkID0gdnNoYTUxMmhxX3U2NChzdW0sIHZleHRxX3U2NChhYiwgY2QsIDEpLCB2ZXh0cV91NjQoZ2gsIGFiLCAxKSk7CisgICAgICAgIGNkID0gdnNoYTUxMmgycV91NjQoaW50ZXJtZWQsIGdoLCBlZik7CisgICAgICAgIGdoID0gdmFkZHFfdTY0KGdoLCBpbnRlcm1lZCk7CisKKyAgICAgICAgLyogUm91bmRzIDYgYW5kIDcgKi8KKyAgICAgICAgaW5pdGlhbF9zdW0gPSB2YWRkcV91NjQoczMsIHZsZDFxX3U2NCgmS1s2XSkpOworICAgICAgICBzdW0gPSB2YWRkcV91NjQodmV4dHFfdTY0KGluaXRpYWxfc3VtLCBpbml0aWFsX3N1bSwgMSksIGFiKTsKKyAgICAgICAgaW50ZXJtZWQgPSB2c2hhNTEyaHFfdTY0KHN1bSwgdmV4dHFfdTY0KGdoLCBhYiwgMSksIHZleHRxX3U2NChlZiwgZ2gsIDEpKTsKKyAgICAgICAgYWIgPSB2c2hhNTEyaDJxX3U2NChpbnRlcm1lZCwgZWYsIGNkKTsKKyAgICAgICAgZWYgPSB2YWRkcV91NjQoZWYsIGludGVybWVkKTsKKworICAgICAgICAvKiBSb3VuZHMgOCBhbmQgOSAqLworICAgICAgICBpbml0aWFsX3N1bSA9IHZhZGRxX3U2NChzNCwgdmxkMXFfdTY0KCZLWzhdKSk7CisgICAgICAgIHN1bSA9IHZhZGRxX3U2NCh2ZXh0cV91NjQoaW5pdGlhbF9zdW0sIGluaXRpYWxfc3VtLCAxKSwgZ2gpOworICAgICAgICBpbnRlcm1lZCA9IHZzaGE1MTJocV91NjQoc3VtLCB2ZXh0cV91NjQoZWYsIGdoLCAxKSwgdmV4dHFfdTY0KGNkLCBlZiwgMSkpOworICAgICAgICBnaCA9IHZzaGE1MTJoMnFfdTY0KGludGVybWVkLCBjZCwgYWIpOworICAgICAgICBjZCA9IHZhZGRxX3U2NChjZCwgaW50ZXJtZWQpOworCisgICAgICAgIC8qIFJvdW5kcyAxMCBhbmQgMTEgKi8KKyAgICAgICAgaW5pdGlhbF9zdW0gPSB2YWRkcV91NjQoczUsIHZsZDFxX3U2NCgmS1sxMF0pKTsKKyAgICAgICAgc3VtID0gdmFkZHFfdTY0KHZleHRxX3U2NChpbml0aWFsX3N1bSwgaW5pdGlhbF9zdW0sIDEpLCBlZik7CisgICAgICAgIGludGVybWVkID0gdnNoYTUxMmhxX3U2NChzdW0sIHZleHRxX3U2NChjZCwgZWYsIDEpLCB2ZXh0cV91NjQoYWIsIGNkLCAxKSk7CisgICAgICAgIGVmID0gdnNoYTUxMmgycV91NjQoaW50ZXJtZWQsIGFiLCBnaCk7CisgICAgICAgIGFiID0gdmFkZHFfdTY0KGFiLCBpbnRlcm1lZCk7CisKKyAgICAgICAgLyogUm91bmRzIDEyIGFuZCAxMyAqLworICAgICAgICBpbml0aWFsX3N1bSA9IHZhZGRxX3U2NChzNiwgdmxkMXFfdTY0KCZLWzEyXSkpOworICAgICAgICBzdW0gPSB2YWRkcV91NjQodmV4dHFfdTY0KGluaXRpYWxfc3VtLCBpbml0aWFsX3N1bSwgMSksIGNkKTsKKyAgICAgICAgaW50ZXJtZWQgPSB2c2hhNTEyaHFfdTY0KHN1bSwgdmV4dHFfdTY0KGFiLCBjZCwgMSksIHZleHRxX3U2NChnaCwgYWIsIDEpKTsKKyAgICAgICAgY2QgPSB2c2hhNTEyaDJxX3U2NChpbnRlcm1lZCwgZ2gsIGVmKTsKKyAgICAgICAgZ2ggPSB2YWRkcV91NjQoZ2gsIGludGVybWVkKTsKKworICAgICAgICAvKiBSb3VuZHMgMTQgYW5kIDE1ICovCisgICAgICAgIGluaXRpYWxfc3VtID0gdmFkZHFfdTY0KHM3LCB2bGQxcV91NjQoJktbMTRdKSk7CisgICAgICAgIHN1bSA9IHZhZGRxX3U2NCh2ZXh0cV91NjQoaW5pdGlhbF9zdW0sIGluaXRpYWxfc3VtLCAxKSwgYWIpOworICAgICAgICBpbnRlcm1lZCA9IHZzaGE1MTJocV91NjQoc3VtLCB2ZXh0cV91NjQoZ2gsIGFiLCAxKSwgdmV4dHFfdTY0KGVmLCBnaCwgMSkpOworICAgICAgICBhYiA9IHZzaGE1MTJoMnFfdTY0KGludGVybWVkLCBlZiwgY2QpOworICAgICAgICBlZiA9IHZhZGRxX3U2NChlZiwgaW50ZXJtZWQpOworCisgICAgICAgIGZvciAodW5zaWduZWQgaW50IHQgPSAxNjsgdCA8IDgwOyB0ICs9IDE2KSB7CisgICAgICAgICAgICAvKiBSb3VuZHMgdCBhbmQgdCArIDEgKi8KKyAgICAgICAgICAgIHMwID0gdnNoYTUxMnN1MXFfdTY0KHZzaGE1MTJzdTBxX3U2NChzMCwgczEpLCBzNywgdmV4dHFfdTY0KHM0LCBzNSwgMSkpOworICAgICAgICAgICAgaW5pdGlhbF9zdW0gPSB2YWRkcV91NjQoczAsIHZsZDFxX3U2NCgmS1t0XSkpOworICAgICAgICAgICAgc3VtID0gdmFkZHFfdTY0KHZleHRxX3U2NChpbml0aWFsX3N1bSwgaW5pdGlhbF9zdW0sIDEpLCBnaCk7CisgICAgICAgICAgICBpbnRlcm1lZCA9IHZzaGE1MTJocV91NjQoc3VtLCB2ZXh0cV91NjQoZWYsIGdoLCAxKSwgdmV4dHFfdTY0KGNkLCBlZiwgMSkpOworICAgICAgICAgICAgZ2ggPSB2c2hhNTEyaDJxX3U2NChpbnRlcm1lZCwgY2QsIGFiKTsKKyAgICAgICAgICAgIGNkID0gdmFkZHFfdTY0KGNkLCBpbnRlcm1lZCk7CisKKyAgICAgICAgICAgIC8qIFJvdW5kcyB0ICsgMiBhbmQgdCArIDMgKi8KKyAgICAgICAgICAgIHMxID0gdnNoYTUxMnN1MXFfdTY0KHZzaGE1MTJzdTBxX3U2NChzMSwgczIpLCBzMCwgdmV4dHFfdTY0KHM1LCBzNiwgMSkpOworICAgICAgICAgICAgaW5pdGlhbF9zdW0gPSB2YWRkcV91NjQoczEsIHZsZDFxX3U2NCgmS1t0ICsgMl0pKTsKKyAgICAgICAgICAgIHN1bSA9IHZhZGRxX3U2NCh2ZXh0cV91NjQoaW5pdGlhbF9zdW0sIGluaXRpYWxfc3VtLCAxKSwgZWYpOworICAgICAgICAgICAgaW50ZXJtZWQgPSB2c2hhNTEyaHFfdTY0KHN1bSwgdmV4dHFfdTY0KGNkLCBlZiwgMSksIHZleHRxX3U2NChhYiwgY2QsIDEpKTsKKyAgICAgICAgICAgIGVmID0gdnNoYTUxMmgycV91NjQoaW50ZXJtZWQsIGFiLCBnaCk7CisgICAgICAgICAgICBhYiA9IHZhZGRxX3U2NChhYiwgaW50ZXJtZWQpOworCisgICAgICAgICAgICAvKiBSb3VuZHMgdCArIDQgYW5kIHQgKyA1ICovCisgICAgICAgICAgICBzMiA9IHZzaGE1MTJzdTFxX3U2NCh2c2hhNTEyc3UwcV91NjQoczIsIHMzKSwgczEsIHZleHRxX3U2NChzNiwgczcsIDEpKTsKKyAgICAgICAgICAgIGluaXRpYWxfc3VtID0gdmFkZHFfdTY0KHMyLCB2bGQxcV91NjQoJktbdCArIDRdKSk7CisgICAgICAgICAgICBzdW0gPSB2YWRkcV91NjQodmV4dHFfdTY0KGluaXRpYWxfc3VtLCBpbml0aWFsX3N1bSwgMSksIGNkKTsKKyAgICAgICAgICAgIGludGVybWVkID0gdnNoYTUxMmhxX3U2NChzdW0sIHZleHRxX3U2NChhYiwgY2QsIDEpLCB2ZXh0cV91NjQoZ2gsIGFiLCAxKSk7CisgICAgICAgICAgICBjZCA9IHZzaGE1MTJoMnFfdTY0KGludGVybWVkLCBnaCwgZWYpOworICAgICAgICAgICAgZ2ggPSB2YWRkcV91NjQoZ2gsIGludGVybWVkKTsKKworICAgICAgICAgICAgLyogUm91bmRzIHQgKyA2IGFuZCB0ICsgNyAqLworICAgICAgICAgICAgczMgPSB2c2hhNTEyc3UxcV91NjQodnNoYTUxMnN1MHFfdTY0KHMzLCBzNCksIHMyLCB2ZXh0cV91NjQoczcsIHMwLCAxKSk7CisgICAgICAgICAgICBpbml0aWFsX3N1bSA9IHZhZGRxX3U2NChzMywgdmxkMXFfdTY0KCZLW3QgKyA2XSkpOworICAgICAgICAgICAgc3VtID0gdmFkZHFfdTY0KHZleHRxX3U2NChpbml0aWFsX3N1bSwgaW5pdGlhbF9zdW0sIDEpLCBhYik7CisgICAgICAgICAgICBpbnRlcm1lZCA9IHZzaGE1MTJocV91NjQoc3VtLCB2ZXh0cV91NjQoZ2gsIGFiLCAxKSwgdmV4dHFfdTY0KGVmLCBnaCwgMSkpOworICAgICAgICAgICAgYWIgPSB2c2hhNTEyaDJxX3U2NChpbnRlcm1lZCwgZWYsIGNkKTsKKyAgICAgICAgICAgIGVmID0gdmFkZHFfdTY0KGVmLCBpbnRlcm1lZCk7CisKKyAgICAgICAgICAgIC8qIFJvdW5kcyB0ICsgOCBhbmQgdCArIDkgKi8KKyAgICAgICAgICAgIHM0ID0gdnNoYTUxMnN1MXFfdTY0KHZzaGE1MTJzdTBxX3U2NChzNCwgczUpLCBzMywgdmV4dHFfdTY0KHMwLCBzMSwgMSkpOworICAgICAgICAgICAgaW5pdGlhbF9zdW0gPSB2YWRkcV91NjQoczQsIHZsZDFxX3U2NCgmS1t0ICsgOF0pKTsKKyAgICAgICAgICAgIHN1bSA9IHZhZGRxX3U2NCh2ZXh0cV91NjQoaW5pdGlhbF9zdW0sIGluaXRpYWxfc3VtLCAxKSwgZ2gpOworICAgICAgICAgICAgaW50ZXJtZWQgPSB2c2hhNTEyaHFfdTY0KHN1bSwgdmV4dHFfdTY0KGVmLCBnaCwgMSksIHZleHRxX3U2NChjZCwgZWYsIDEpKTsKKyAgICAgICAgICAgIGdoID0gdnNoYTUxMmgycV91NjQoaW50ZXJtZWQsIGNkLCBhYik7CisgICAgICAgICAgICBjZCA9IHZhZGRxX3U2NChjZCwgaW50ZXJtZWQpOworCisgICAgICAgICAgICAvKiBSb3VuZHMgdCArIDEwIGFuZCB0ICsgMTEgKi8KKyAgICAgICAgICAgIHM1ID0gdnNoYTUxMnN1MXFfdTY0KHZzaGE1MTJzdTBxX3U2NChzNSwgczYpLCBzNCwgdmV4dHFfdTY0KHMxLCBzMiwgMSkpOworICAgICAgICAgICAgaW5pdGlhbF9zdW0gPSB2YWRkcV91NjQoczUsIHZsZDFxX3U2NCgmS1t0ICsgMTBdKSk7CisgICAgICAgICAgICBzdW0gPSB2YWRkcV91NjQodmV4dHFfdTY0KGluaXRpYWxfc3VtLCBpbml0aWFsX3N1bSwgMSksIGVmKTsKKyAgICAgICAgICAgIGludGVybWVkID0gdnNoYTUxMmhxX3U2NChzdW0sIHZleHRxX3U2NChjZCwgZWYsIDEpLCB2ZXh0cV91NjQoYWIsIGNkLCAxKSk7CisgICAgICAgICAgICBlZiA9IHZzaGE1MTJoMnFfdTY0KGludGVybWVkLCBhYiwgZ2gpOworICAgICAgICAgICAgYWIgPSB2YWRkcV91NjQoYWIsIGludGVybWVkKTsKKworICAgICAgICAgICAgLyogUm91bmRzIHQgKyAxMiBhbmQgdCArIDEzICovCisgICAgICAgICAgICBzNiA9IHZzaGE1MTJzdTFxX3U2NCh2c2hhNTEyc3UwcV91NjQoczYsIHM3KSwgczUsIHZleHRxX3U2NChzMiwgczMsIDEpKTsKKyAgICAgICAgICAgIGluaXRpYWxfc3VtID0gdmFkZHFfdTY0KHM2LCB2bGQxcV91NjQoJktbdCArIDEyXSkpOworICAgICAgICAgICAgc3VtID0gdmFkZHFfdTY0KHZleHRxX3U2NChpbml0aWFsX3N1bSwgaW5pdGlhbF9zdW0sIDEpLCBjZCk7CisgICAgICAgICAgICBpbnRlcm1lZCA9IHZzaGE1MTJocV91NjQoc3VtLCB2ZXh0cV91NjQoYWIsIGNkLCAxKSwgdmV4dHFfdTY0KGdoLCBhYiwgMSkpOworICAgICAgICAgICAgY2QgPSB2c2hhNTEyaDJxX3U2NChpbnRlcm1lZCwgZ2gsIGVmKTsKKyAgICAgICAgICAgIGdoID0gdmFkZHFfdTY0KGdoLCBpbnRlcm1lZCk7CisKKyAgICAgICAgICAgIC8qIFJvdW5kcyB0ICsgMTQgYW5kIHQgKyAxNSAqLworICAgICAgICAgICAgczcgPSB2c2hhNTEyc3UxcV91NjQodnNoYTUxMnN1MHFfdTY0KHM3LCBzMCksIHM2LCB2ZXh0cV91NjQoczMsIHM0LCAxKSk7CisgICAgICAgICAgICBpbml0aWFsX3N1bSA9IHZhZGRxX3U2NChzNywgdmxkMXFfdTY0KCZLW3QgKyAxNF0pKTsKKyAgICAgICAgICAgIHN1bSA9IHZhZGRxX3U2NCh2ZXh0cV91NjQoaW5pdGlhbF9zdW0sIGluaXRpYWxfc3VtLCAxKSwgYWIpOworICAgICAgICAgICAgaW50ZXJtZWQgPSB2c2hhNTEyaHFfdTY0KHN1bSwgdmV4dHFfdTY0KGdoLCBhYiwgMSksIHZleHRxX3U2NChlZiwgZ2gsIDEpKTsKKyAgICAgICAgICAgIGFiID0gdnNoYTUxMmgycV91NjQoaW50ZXJtZWQsIGVmLCBjZCk7CisgICAgICAgICAgICBlZiA9IHZhZGRxX3U2NChlZiwgaW50ZXJtZWQpOworICAgICAgICB9CisKKyAgICAgICAgYWIgPSB2YWRkcV91NjQoYWIsIGFiX29yaWcpOworICAgICAgICBjZCA9IHZhZGRxX3U2NChjZCwgY2Rfb3JpZyk7CisgICAgICAgIGVmID0gdmFkZHFfdTY0KGVmLCBlZl9vcmlnKTsKKyAgICAgICAgZ2ggPSB2YWRkcV91NjQoZ2gsIGdoX29yaWcpOworICAgIH0KKworICAgIHZzdDFxX3U2NCgmY3R4LT5zdGF0ZVswXSwgYWIpOworICAgIHZzdDFxX3U2NCgmY3R4LT5zdGF0ZVsyXSwgY2QpOworICAgIHZzdDFxX3U2NCgmY3R4LT5zdGF0ZVs0XSwgZWYpOworICAgIHZzdDFxX3U2NCgmY3R4LT5zdGF0ZVs2XSwgZ2gpOworCisgICAgcmV0dXJuIHByb2Nlc3NlZDsKK30KKworI2lmIGRlZmluZWQoTUJFRFRMU19TSEE1MTJfVVNFX0E2NF9DUllQVE9fSUZfUFJFU0VOVCkKKy8qCisgKiBUaGlzIGZ1bmN0aW9uIGlzIGZvciBpbnRlcm5hbCB1c2Ugb25seSBpZiB3ZSBhcmUgYnVpbGRpbmcgYm90aCBDIGFuZCBBNjQKKyAqIHZlcnNpb25zLCBvdGhlcndpc2UgaXQgaXMgcmVuYW1lZCB0byBiZSB0aGUgcHVibGljIG1iZWR0bHNfaW50ZXJuYWxfc2hhNTEyX3Byb2Nlc3MoKQorICovCitzdGF0aWMKKyNlbmRpZgoraW50IG1iZWR0bHNfaW50ZXJuYWxfc2hhNTEyX3Byb2Nlc3NfYTY0X2NyeXB0byhtYmVkdGxzX3NoYTUxMl9jb250ZXh0ICpjdHgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgZGF0YVtTSEE1MTJfQkxPQ0tfU0laRV0pCit7CisgICAgcmV0dXJuIChtYmVkdGxzX2ludGVybmFsX3NoYTUxMl9wcm9jZXNzX21hbnlfYTY0X2NyeXB0byhjdHgsIGRhdGEsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTSEE1MTJfQkxPQ0tfU0laRSkgPT0KKyAgICAgICAgICAgIFNIQTUxMl9CTE9DS19TSVpFKSA/IDAgOiAtMTsKK30KKworI2VuZGlmIC8qIE1CRURUTFNfU0hBNTEyX1VTRV9BNjRfQ1JZUFRPX0lGX1BSRVNFTlQgfHwgTUJFRFRMU19TSEE1MTJfVVNFX0E2NF9DUllQVE9fT05MWSAqLworCisjaWYgZGVmaW5lZChNQkVEVExTX1BPUF9UQVJHRVRfUFJBR01BKQorI2lmIGRlZmluZWQoX19jbGFuZ19fKQorI3ByYWdtYSBjbGFuZyBhdHRyaWJ1dGUgcG9wCisjZWxpZiBkZWZpbmVkKF9fR05VQ19fKQorI3ByYWdtYSBHQ0MgcG9wX29wdGlvbnMKKyNlbmRpZgorI3VuZGVmIE1CRURUTFNfUE9QX1RBUkdFVF9QUkFHTUEKKyNlbmRpZgorCisKKyNpZiAhZGVmaW5lZChNQkVEVExTX1NIQTUxMl9VU0VfQTY0X0NSWVBUT19JRl9QUkVTRU5UKQorI2RlZmluZSBtYmVkdGxzX2ludGVybmFsX3NoYTUxMl9wcm9jZXNzX21hbnlfYyBtYmVkdGxzX2ludGVybmFsX3NoYTUxMl9wcm9jZXNzX21hbnkKKyNkZWZpbmUgbWJlZHRsc19pbnRlcm5hbF9zaGE1MTJfcHJvY2Vzc19jICAgICAgbWJlZHRsc19pbnRlcm5hbF9zaGE1MTJfcHJvY2VzcworI2VuZGlmCisKKworI2lmICFkZWZpbmVkKE1CRURUTFNfU0hBNTEyX1BST0NFU1NfQUxUKSAmJiAhZGVmaW5lZChNQkVEVExTX1NIQTUxMl9VU0VfQTY0X0NSWVBUT19PTkxZKQorCisjaWYgZGVmaW5lZChNQkVEVExTX1NIQTUxMl9VU0VfQTY0X0NSWVBUT19JRl9QUkVTRU5UKQorLyoKKyAqIFRoaXMgZnVuY3Rpb24gaXMgZm9yIGludGVybmFsIHVzZSBvbmx5IGlmIHdlIGFyZSBidWlsZGluZyBib3RoIEMgYW5kIEE2NAorICogdmVyc2lvbnMsIG90aGVyd2lzZSBpdCBpcyByZW5hbWVkIHRvIGJlIHRoZSBwdWJsaWMgbWJlZHRsc19pbnRlcm5hbF9zaGE1MTJfcHJvY2VzcygpCisgKi8KK3N0YXRpYworI2VuZGlmCitpbnQgbWJlZHRsc19pbnRlcm5hbF9zaGE1MTJfcHJvY2Vzc19jKG1iZWR0bHNfc2hhNTEyX2NvbnRleHQgKmN0eCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdW5zaWduZWQgY2hhciBkYXRhW1NIQTUxMl9CTE9DS19TSVpFXSkKK3sKKyAgICBpbnQgaTsKKyAgICBzdHJ1Y3QgeworICAgICAgICB1aW50NjRfdCB0ZW1wMSwgdGVtcDIsIFdbODBdOworICAgICAgICB1aW50NjRfdCBBWzhdOworICAgIH0gbG9jYWw7CisKKyNkZWZpbmUgIFNIUih4LCBuKSAoKHgpID4+IChuKSkKKyNkZWZpbmUgUk9UUih4LCBuKSAoU0hSKCh4KSwgKG4pKSB8ICgoeCkgPDwgKDY0IC0gKG4pKSkpCisKKyNkZWZpbmUgUzAoeCkgKFJPVFIoeCwgMSkgXiBST1RSKHgsIDgpIF4gIFNIUih4LCA3KSkKKyNkZWZpbmUgUzEoeCkgKFJPVFIoeCwgMTkpIF4gUk9UUih4LCA2MSkgXiAgU0hSKHgsIDYpKQorCisjZGVmaW5lIFMyKHgpIChST1RSKHgsIDI4KSBeIFJPVFIoeCwgMzQpIF4gUk9UUih4LCAzOSkpCisjZGVmaW5lIFMzKHgpIChST1RSKHgsIDE0KSBeIFJPVFIoeCwgMTgpIF4gUk9UUih4LCA0MSkpCisKKyNkZWZpbmUgRjAoeCwgeSwgeikgKCgoeCkgJiAoeSkpIHwgKCh6KSAmICgoeCkgfCAoeSkpKSkKKyNkZWZpbmUgRjEoeCwgeSwgeikgKCh6KSBeICgoeCkgJiAoKHkpIF4gKHopKSkpCisKKyNkZWZpbmUgUChhLCBiLCBjLCBkLCBlLCBmLCBnLCBoLCB4LCBLKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIGRvICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgbG9jYWwudGVtcDEgPSAoaCkgKyBTMyhlKSArIEYxKChlKSwgKGYpLCAoZykpICsgKEspICsgKHgpOyAgICBcCisgICAgICAgIGxvY2FsLnRlbXAyID0gUzIoYSkgKyBGMCgoYSksIChiKSwgKGMpKTsgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICAoZCkgKz0gbG9jYWwudGVtcDE7IChoKSA9IGxvY2FsLnRlbXAxICsgbG9jYWwudGVtcDI7ICAgICAgICBcCisgICAgfSB3aGlsZSAoMCkKKworICAgIGZvciAoaSA9IDA7IGkgPCA4OyBpKyspIHsKKyAgICAgICAgbG9jYWwuQVtpXSA9IGN0eC0+c3RhdGVbaV07CisgICAgfQorCisjaWYgZGVmaW5lZChNQkVEVExTX1NIQTUxMl9TTUFMTEVSKQorICAgIGZvciAoaSA9IDA7IGkgPCA4MDsgaSsrKSB7CisgICAgICAgIGlmIChpIDwgMTYpIHsKKyAgICAgICAgICAgIGxvY2FsLldbaV0gPSBNQkVEVExTX0dFVF9VSU5UNjRfQkUoZGF0YSwgaSA8PCAzKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGxvY2FsLldbaV0gPSBTMShsb2NhbC5XW2kgLSAgMl0pICsgbG9jYWwuV1tpIC0gIDddICsKKyAgICAgICAgICAgICAgICAgICAgICAgICBTMChsb2NhbC5XW2kgLSAxNV0pICsgbG9jYWwuV1tpIC0gMTZdOworICAgICAgICB9CisKKyAgICAgICAgUChsb2NhbC5BWzBdLCBsb2NhbC5BWzFdLCBsb2NhbC5BWzJdLCBsb2NhbC5BWzNdLCBsb2NhbC5BWzRdLAorICAgICAgICAgIGxvY2FsLkFbNV0sIGxvY2FsLkFbNl0sIGxvY2FsLkFbN10sIGxvY2FsLldbaV0sIEtbaV0pOworCisgICAgICAgIGxvY2FsLnRlbXAxID0gbG9jYWwuQVs3XTsgbG9jYWwuQVs3XSA9IGxvY2FsLkFbNl07CisgICAgICAgIGxvY2FsLkFbNl0gPSBsb2NhbC5BWzVdOyBsb2NhbC5BWzVdID0gbG9jYWwuQVs0XTsKKyAgICAgICAgbG9jYWwuQVs0XSA9IGxvY2FsLkFbM107IGxvY2FsLkFbM10gPSBsb2NhbC5BWzJdOworICAgICAgICBsb2NhbC5BWzJdID0gbG9jYWwuQVsxXTsgbG9jYWwuQVsxXSA9IGxvY2FsLkFbMF07CisgICAgICAgIGxvY2FsLkFbMF0gPSBsb2NhbC50ZW1wMTsKKyAgICB9CisjZWxzZSAvKiBNQkVEVExTX1NIQTUxMl9TTUFMTEVSICovCisgICAgZm9yIChpID0gMDsgaSA8IDE2OyBpKyspIHsKKyAgICAgICAgbG9jYWwuV1tpXSA9IE1CRURUTFNfR0VUX1VJTlQ2NF9CRShkYXRhLCBpIDw8IDMpOworICAgIH0KKworICAgIGZvciAoOyBpIDwgODA7IGkrKykgeworICAgICAgICBsb2NhbC5XW2ldID0gUzEobG9jYWwuV1tpIC0gIDJdKSArIGxvY2FsLldbaSAtICA3XSArCisgICAgICAgICAgICAgICAgICAgICBTMChsb2NhbC5XW2kgLSAxNV0pICsgbG9jYWwuV1tpIC0gMTZdOworICAgIH0KKworICAgIGkgPSAwOworICAgIGRvIHsKKyAgICAgICAgUChsb2NhbC5BWzBdLCBsb2NhbC5BWzFdLCBsb2NhbC5BWzJdLCBsb2NhbC5BWzNdLCBsb2NhbC5BWzRdLAorICAgICAgICAgIGxvY2FsLkFbNV0sIGxvY2FsLkFbNl0sIGxvY2FsLkFbN10sIGxvY2FsLldbaV0sIEtbaV0pOyBpKys7CisgICAgICAgIFAobG9jYWwuQVs3XSwgbG9jYWwuQVswXSwgbG9jYWwuQVsxXSwgbG9jYWwuQVsyXSwgbG9jYWwuQVszXSwKKyAgICAgICAgICBsb2NhbC5BWzRdLCBsb2NhbC5BWzVdLCBsb2NhbC5BWzZdLCBsb2NhbC5XW2ldLCBLW2ldKTsgaSsrOworICAgICAgICBQKGxvY2FsLkFbNl0sIGxvY2FsLkFbN10sIGxvY2FsLkFbMF0sIGxvY2FsLkFbMV0sIGxvY2FsLkFbMl0sCisgICAgICAgICAgbG9jYWwuQVszXSwgbG9jYWwuQVs0XSwgbG9jYWwuQVs1XSwgbG9jYWwuV1tpXSwgS1tpXSk7IGkrKzsKKyAgICAgICAgUChsb2NhbC5BWzVdLCBsb2NhbC5BWzZdLCBsb2NhbC5BWzddLCBsb2NhbC5BWzBdLCBsb2NhbC5BWzFdLAorICAgICAgICAgIGxvY2FsLkFbMl0sIGxvY2FsLkFbM10sIGxvY2FsLkFbNF0sIGxvY2FsLldbaV0sIEtbaV0pOyBpKys7CisgICAgICAgIFAobG9jYWwuQVs0XSwgbG9jYWwuQVs1XSwgbG9jYWwuQVs2XSwgbG9jYWwuQVs3XSwgbG9jYWwuQVswXSwKKyAgICAgICAgICBsb2NhbC5BWzFdLCBsb2NhbC5BWzJdLCBsb2NhbC5BWzNdLCBsb2NhbC5XW2ldLCBLW2ldKTsgaSsrOworICAgICAgICBQKGxvY2FsLkFbM10sIGxvY2FsLkFbNF0sIGxvY2FsLkFbNV0sIGxvY2FsLkFbNl0sIGxvY2FsLkFbN10sCisgICAgICAgICAgbG9jYWwuQVswXSwgbG9jYWwuQVsxXSwgbG9jYWwuQVsyXSwgbG9jYWwuV1tpXSwgS1tpXSk7IGkrKzsKKyAgICAgICAgUChsb2NhbC5BWzJdLCBsb2NhbC5BWzNdLCBsb2NhbC5BWzRdLCBsb2NhbC5BWzVdLCBsb2NhbC5BWzZdLAorICAgICAgICAgIGxvY2FsLkFbN10sIGxvY2FsLkFbMF0sIGxvY2FsLkFbMV0sIGxvY2FsLldbaV0sIEtbaV0pOyBpKys7CisgICAgICAgIFAobG9jYWwuQVsxXSwgbG9jYWwuQVsyXSwgbG9jYWwuQVszXSwgbG9jYWwuQVs0XSwgbG9jYWwuQVs1XSwKKyAgICAgICAgICBsb2NhbC5BWzZdLCBsb2NhbC5BWzddLCBsb2NhbC5BWzBdLCBsb2NhbC5XW2ldLCBLW2ldKTsgaSsrOworICAgIH0gd2hpbGUgKGkgPCA4MCk7CisjZW5kaWYgLyogTUJFRFRMU19TSEE1MTJfU01BTExFUiAqLworCisgICAgZm9yIChpID0gMDsgaSA8IDg7IGkrKykgeworICAgICAgICBjdHgtPnN0YXRlW2ldICs9IGxvY2FsLkFbaV07CisgICAgfQorCisgICAgLyogWmVyb2lzZSBidWZmZXJzIGFuZCB2YXJpYWJsZXMgdG8gY2xlYXIgc2Vuc2l0aXZlIGRhdGEgZnJvbSBtZW1vcnkuICovCisgICAgbWJlZHRsc19wbGF0Zm9ybV96ZXJvaXplKCZsb2NhbCwgc2l6ZW9mKGxvY2FsKSk7CisKKyAgICByZXR1cm4gMDsKK30KKworI2VuZGlmIC8qICFNQkVEVExTX1NIQTUxMl9QUk9DRVNTX0FMVCAmJiAhTUJFRFRMU19TSEE1MTJfVVNFX0E2NF9DUllQVE9fT05MWSAqLworCisKKyNpZiAhZGVmaW5lZChNQkVEVExTX1NIQTUxMl9VU0VfQTY0X0NSWVBUT19PTkxZKQorCitzdGF0aWMgc2l6ZV90IG1iZWR0bHNfaW50ZXJuYWxfc2hhNTEyX3Byb2Nlc3NfbWFueV9jKAorICAgIG1iZWR0bHNfc2hhNTEyX2NvbnRleHQgKmN0eCwgY29uc3QgdWludDhfdCAqZGF0YSwgc2l6ZV90IGxlbikKK3sKKyAgICBzaXplX3QgcHJvY2Vzc2VkID0gMDsKKworICAgIHdoaWxlIChsZW4gPj0gU0hBNTEyX0JMT0NLX1NJWkUpIHsKKyAgICAgICAgaWYgKG1iZWR0bHNfaW50ZXJuYWxfc2hhNTEyX3Byb2Nlc3NfYyhjdHgsIGRhdGEpICE9IDApIHsKKyAgICAgICAgICAgIHJldHVybiAwOworICAgICAgICB9CisKKyAgICAgICAgZGF0YSArPSBTSEE1MTJfQkxPQ0tfU0laRTsKKyAgICAgICAgbGVuICAtPSBTSEE1MTJfQkxPQ0tfU0laRTsKKworICAgICAgICBwcm9jZXNzZWQgKz0gU0hBNTEyX0JMT0NLX1NJWkU7CisgICAgfQorCisgICAgcmV0dXJuIHByb2Nlc3NlZDsKK30KKworI2VuZGlmIC8qICFNQkVEVExTX1NIQTUxMl9VU0VfQTY0X0NSWVBUT19PTkxZICovCisKKworI2lmIGRlZmluZWQoTUJFRFRMU19TSEE1MTJfVVNFX0E2NF9DUllQVE9fSUZfUFJFU0VOVCkKKworc3RhdGljIGludCBtYmVkdGxzX2E2NF9jcnlwdG9fc2hhNTEyX2hhc19zdXBwb3J0KHZvaWQpCit7CisgICAgc3RhdGljIGludCBkb25lID0gMDsKKyAgICBzdGF0aWMgaW50IHN1cHBvcnRlZCA9IDA7CisKKyAgICBpZiAoIWRvbmUpIHsKKyAgICAgICAgc3VwcG9ydGVkID0gbWJlZHRsc19hNjRfY3J5cHRvX3NoYTUxMl9kZXRlcm1pbmVfc3VwcG9ydCgpOworICAgICAgICBkb25lID0gMTsKKyAgICB9CisKKyAgICByZXR1cm4gc3VwcG9ydGVkOworfQorCitzdGF0aWMgc2l6ZV90IG1iZWR0bHNfaW50ZXJuYWxfc2hhNTEyX3Byb2Nlc3NfbWFueShtYmVkdGxzX3NoYTUxMl9jb250ZXh0ICpjdHgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1aW50OF90ICptc2csIHNpemVfdCBsZW4pCit7CisgICAgaWYgKG1iZWR0bHNfYTY0X2NyeXB0b19zaGE1MTJfaGFzX3N1cHBvcnQoKSkgeworICAgICAgICByZXR1cm4gbWJlZHRsc19pbnRlcm5hbF9zaGE1MTJfcHJvY2Vzc19tYW55X2E2NF9jcnlwdG8oY3R4LCBtc2csIGxlbik7CisgICAgfSBlbHNlIHsKKyAgICAgICAgcmV0dXJuIG1iZWR0bHNfaW50ZXJuYWxfc2hhNTEyX3Byb2Nlc3NfbWFueV9jKGN0eCwgbXNnLCBsZW4pOworICAgIH0KK30KKworaW50IG1iZWR0bHNfaW50ZXJuYWxfc2hhNTEyX3Byb2Nlc3MobWJlZHRsc19zaGE1MTJfY29udGV4dCAqY3R4LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdW5zaWduZWQgY2hhciBkYXRhW1NIQTUxMl9CTE9DS19TSVpFXSkKK3sKKyAgICBpZiAobWJlZHRsc19hNjRfY3J5cHRvX3NoYTUxMl9oYXNfc3VwcG9ydCgpKSB7CisgICAgICAgIHJldHVybiBtYmVkdGxzX2ludGVybmFsX3NoYTUxMl9wcm9jZXNzX2E2NF9jcnlwdG8oY3R4LCBkYXRhKTsKKyAgICB9IGVsc2UgeworICAgICAgICByZXR1cm4gbWJlZHRsc19pbnRlcm5hbF9zaGE1MTJfcHJvY2Vzc19jKGN0eCwgZGF0YSk7CisgICAgfQorfQorCisjZW5kaWYgLyogTUJFRFRMU19TSEE1MTJfVVNFX0E2NF9DUllQVE9fSUZfUFJFU0VOVCAqLworCisvKgorICogU0hBLTUxMiBwcm9jZXNzIGJ1ZmZlcgorICovCitpbnQgbWJlZHRsc19zaGE1MTJfdXBkYXRlKG1iZWR0bHNfc2hhNTEyX2NvbnRleHQgKmN0eCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdW5zaWduZWQgY2hhciAqaW5wdXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBpbGVuKQoreworICAgIGludCByZXQgPSBNQkVEVExTX0VSUl9FUlJPUl9DT1JSVVBUSU9OX0RFVEVDVEVEOworICAgIHNpemVfdCBmaWxsOworICAgIHVuc2lnbmVkIGludCBsZWZ0OworCisgICAgaWYgKGlsZW4gPT0gMCkgeworICAgICAgICByZXR1cm4gMDsKKyAgICB9CisKKyAgICBsZWZ0ID0gKHVuc2lnbmVkIGludCkgKGN0eC0+dG90YWxbMF0gJiAweDdGKTsKKyAgICBmaWxsID0gU0hBNTEyX0JMT0NLX1NJWkUgLSBsZWZ0OworCisgICAgY3R4LT50b3RhbFswXSArPSAodWludDY0X3QpIGlsZW47CisKKyAgICBpZiAoY3R4LT50b3RhbFswXSA8ICh1aW50NjRfdCkgaWxlbikgeworICAgICAgICBjdHgtPnRvdGFsWzFdKys7CisgICAgfQorCisgICAgaWYgKGxlZnQgJiYgaWxlbiA+PSBmaWxsKSB7CisgICAgICAgIG1lbWNweSgodm9pZCAqKSAoY3R4LT5idWZmZXIgKyBsZWZ0KSwgaW5wdXQsIGZpbGwpOworCisgICAgICAgIGlmICgocmV0ID0gbWJlZHRsc19pbnRlcm5hbF9zaGE1MTJfcHJvY2VzcyhjdHgsIGN0eC0+YnVmZmVyKSkgIT0gMCkgeworICAgICAgICAgICAgcmV0dXJuIHJldDsKKyAgICAgICAgfQorCisgICAgICAgIGlucHV0ICs9IGZpbGw7CisgICAgICAgIGlsZW4gIC09IGZpbGw7CisgICAgICAgIGxlZnQgPSAwOworICAgIH0KKworICAgIHdoaWxlIChpbGVuID49IFNIQTUxMl9CTE9DS19TSVpFKSB7CisgICAgICAgIHNpemVfdCBwcm9jZXNzZWQgPQorICAgICAgICAgICAgbWJlZHRsc19pbnRlcm5hbF9zaGE1MTJfcHJvY2Vzc19tYW55KGN0eCwgaW5wdXQsIGlsZW4pOworICAgICAgICBpZiAocHJvY2Vzc2VkIDwgU0hBNTEyX0JMT0NLX1NJWkUpIHsKKyAgICAgICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9FUlJPUl9HRU5FUklDX0VSUk9SOworICAgICAgICB9CisKKyAgICAgICAgaW5wdXQgKz0gcHJvY2Vzc2VkOworICAgICAgICBpbGVuICAtPSBwcm9jZXNzZWQ7CisgICAgfQorCisgICAgaWYgKGlsZW4gPiAwKSB7CisgICAgICAgIG1lbWNweSgodm9pZCAqKSAoY3R4LT5idWZmZXIgKyBsZWZ0KSwgaW5wdXQsIGlsZW4pOworICAgIH0KKworICAgIHJldHVybiAwOworfQorCisvKgorICogU0hBLTUxMiBmaW5hbCBkaWdlc3QKKyAqLworaW50IG1iZWR0bHNfc2hhNTEyX2ZpbmlzaChtYmVkdGxzX3NoYTUxMl9jb250ZXh0ICpjdHgsCisgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGNoYXIgKm91dHB1dCkKK3sKKyAgICBpbnQgcmV0ID0gTUJFRFRMU19FUlJfRVJST1JfQ09SUlVQVElPTl9ERVRFQ1RFRDsKKyAgICB1bnNpZ25lZCB1c2VkOworICAgIHVpbnQ2NF90IGhpZ2gsIGxvdzsKKyAgICBpbnQgdHJ1bmNhdGVkID0gMDsKKworICAgIC8qCisgICAgICogQWRkIHBhZGRpbmc6IDB4ODAgdGhlbiAweDAwIHVudGlsIDE2IGJ5dGVzIHJlbWFpbiBmb3IgdGhlIGxlbmd0aAorICAgICAqLworICAgIHVzZWQgPSBjdHgtPnRvdGFsWzBdICYgMHg3RjsKKworICAgIGN0eC0+YnVmZmVyW3VzZWQrK10gPSAweDgwOworCisgICAgaWYgKHVzZWQgPD0gMTEyKSB7CisgICAgICAgIC8qIEVub3VnaCByb29tIGZvciBwYWRkaW5nICsgbGVuZ3RoIGluIGN1cnJlbnQgYmxvY2sgKi8KKyAgICAgICAgbWVtc2V0KGN0eC0+YnVmZmVyICsgdXNlZCwgMCwgMTEyIC0gdXNlZCk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgLyogV2UnbGwgbmVlZCBhbiBleHRyYSBibG9jayAqLworICAgICAgICBtZW1zZXQoY3R4LT5idWZmZXIgKyB1c2VkLCAwLCBTSEE1MTJfQkxPQ0tfU0laRSAtIHVzZWQpOworCisgICAgICAgIGlmICgocmV0ID0gbWJlZHRsc19pbnRlcm5hbF9zaGE1MTJfcHJvY2VzcyhjdHgsIGN0eC0+YnVmZmVyKSkgIT0gMCkgeworICAgICAgICAgICAgZ290byBleGl0OworICAgICAgICB9CisKKyAgICAgICAgbWVtc2V0KGN0eC0+YnVmZmVyLCAwLCAxMTIpOworICAgIH0KKworICAgIC8qCisgICAgICogQWRkIG1lc3NhZ2UgbGVuZ3RoCisgICAgICovCisgICAgaGlnaCA9IChjdHgtPnRvdGFsWzBdID4+IDYxKQorICAgICAgICAgICB8IChjdHgtPnRvdGFsWzFdIDw8ICAzKTsKKyAgICBsb3cgID0gKGN0eC0+dG90YWxbMF0gPDwgIDMpOworCisgICAgc2hhNTEyX3B1dF91aW50NjRfYmUoaGlnaCwgY3R4LT5idWZmZXIsIDExMik7CisgICAgc2hhNTEyX3B1dF91aW50NjRfYmUobG93LCAgY3R4LT5idWZmZXIsIDEyMCk7CisKKyAgICBpZiAoKHJldCA9IG1iZWR0bHNfaW50ZXJuYWxfc2hhNTEyX3Byb2Nlc3MoY3R4LCBjdHgtPmJ1ZmZlcikpICE9IDApIHsKKyAgICAgICAgZ290byBleGl0OworICAgIH0KKworICAgIC8qCisgICAgICogT3V0cHV0IGZpbmFsIHN0YXRlCisgICAgICovCisgICAgc2hhNTEyX3B1dF91aW50NjRfYmUoY3R4LT5zdGF0ZVswXSwgb3V0cHV0LCAgMCk7CisgICAgc2hhNTEyX3B1dF91aW50NjRfYmUoY3R4LT5zdGF0ZVsxXSwgb3V0cHV0LCAgOCk7CisgICAgc2hhNTEyX3B1dF91aW50NjRfYmUoY3R4LT5zdGF0ZVsyXSwgb3V0cHV0LCAxNik7CisgICAgc2hhNTEyX3B1dF91aW50NjRfYmUoY3R4LT5zdGF0ZVszXSwgb3V0cHV0LCAyNCk7CisgICAgc2hhNTEyX3B1dF91aW50NjRfYmUoY3R4LT5zdGF0ZVs0XSwgb3V0cHV0LCAzMik7CisgICAgc2hhNTEyX3B1dF91aW50NjRfYmUoY3R4LT5zdGF0ZVs1XSwgb3V0cHV0LCA0MCk7CisKKyNpZiBkZWZpbmVkKE1CRURUTFNfU0hBMzg0X0MpCisgICAgdHJ1bmNhdGVkID0gY3R4LT5pczM4NDsKKyNlbmRpZgorICAgIGlmICghdHJ1bmNhdGVkKSB7CisgICAgICAgIHNoYTUxMl9wdXRfdWludDY0X2JlKGN0eC0+c3RhdGVbNl0sIG91dHB1dCwgNDgpOworICAgICAgICBzaGE1MTJfcHV0X3VpbnQ2NF9iZShjdHgtPnN0YXRlWzddLCBvdXRwdXQsIDU2KTsKKyAgICB9CisKKyAgICByZXQgPSAwOworCitleGl0OgorICAgIG1iZWR0bHNfc2hhNTEyX2ZyZWUoY3R4KTsKKyAgICByZXR1cm4gcmV0OworfQorCisvKgorICogb3V0cHV0ID0gU0hBLTUxMiggaW5wdXQgYnVmZmVyICkKKyAqLworaW50IG1iZWR0bHNfc2hhNTEyKGNvbnN0IHVuc2lnbmVkIGNoYXIgKmlucHV0LAorICAgICAgICAgICAgICAgICAgIHNpemVfdCBpbGVuLAorICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGNoYXIgKm91dHB1dCwKKyAgICAgICAgICAgICAgICAgICBpbnQgaXMzODQpCit7CisgICAgaW50IHJldCA9IE1CRURUTFNfRVJSX0VSUk9SX0NPUlJVUFRJT05fREVURUNURUQ7CisgICAgbWJlZHRsc19zaGE1MTJfY29udGV4dCBjdHg7CisKKyNpZiBkZWZpbmVkKE1CRURUTFNfU0hBMzg0X0MpICYmIGRlZmluZWQoTUJFRFRMU19TSEE1MTJfQykKKyAgICBpZiAoaXMzODQgIT0gMCAmJiBpczM4NCAhPSAxKSB7CisgICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9TSEE1MTJfQkFEX0lOUFVUX0RBVEE7CisgICAgfQorI2VsaWYgZGVmaW5lZChNQkVEVExTX1NIQTUxMl9DKQorICAgIGlmIChpczM4NCAhPSAwKSB7CisgICAgICAgIHJldHVybiBNQkVEVExTX0VSUl9TSEE1MTJfQkFEX0lOUFVUX0RBVEE7CisgICAgfQorI2Vsc2UgLyogZGVmaW5lZCBNQkVEVExTX1NIQTM4NF9DIG9ubHkgKi8KKyAgICBpZiAoaXMzODQgPT0gMCkgeworICAgICAgICByZXR1cm4gTUJFRFRMU19FUlJfU0hBNTEyX0JBRF9JTlBVVF9EQVRBOworICAgIH0KKyNlbmRpZgorCisgICAgbWJlZHRsc19zaGE1MTJfaW5pdCgmY3R4KTsKKworICAgIGlmICgocmV0ID0gbWJlZHRsc19zaGE1MTJfc3RhcnRzKCZjdHgsIGlzMzg0KSkgIT0gMCkgeworICAgICAgICBnb3RvIGV4aXQ7CisgICAgfQorCisgICAgaWYgKChyZXQgPSBtYmVkdGxzX3NoYTUxMl91cGRhdGUoJmN0eCwgaW5wdXQsIGlsZW4pKSAhPSAwKSB7CisgICAgICAgIGdvdG8gZXhpdDsKKyAgICB9CisKKyAgICBpZiAoKHJldCA9IG1iZWR0bHNfc2hhNTEyX2ZpbmlzaCgmY3R4LCBvdXRwdXQpKSAhPSAwKSB7CisgICAgICAgIGdvdG8gZXhpdDsKKyAgICB9CisKK2V4aXQ6CisgICAgbWJlZHRsc19zaGE1MTJfZnJlZSgmY3R4KTsKKworICAgIHJldHVybiByZXQ7Cit9CisKKyNpZiBkZWZpbmVkKE1CRURUTFNfU0VMRl9URVNUKQorCisvKgorICogRklQUy0xODAtMiB0ZXN0IHZlY3RvcnMKKyAqLworc3RhdGljIGNvbnN0IHVuc2lnbmVkIGNoYXIgc2hhX3Rlc3RfYnVmWzNdWzExM10gPQoreworICAgIHsgImFiYyIgfSwKKyAgICB7CisgICAgICAgICJhYmNkZWZnaGJjZGVmZ2hpY2RlZmdoaWpkZWZnaGlqa2VmZ2hpamtsZmdoaWprbG1naGlqa2xtbmhpamtsbW5vaWprbG1ub3Bqa2xtbm9wcWtsbW5vcHFybG1ub3BxcnNtbm9wcXJzdG5vcHFyc3R1IgorICAgIH0sCisgICAgeyAiIiB9Cit9OworCitzdGF0aWMgY29uc3Qgc2l6ZV90IHNoYV90ZXN0X2J1ZmxlblszXSA9Cit7CisgICAgMywgMTEyLCAxMDAwCit9OworCit0eXBlZGVmIGNvbnN0IHVuc2lnbmVkIGNoYXIgKHNoYV90ZXN0X3N1bV90KVs2NF07CisKKy8qCisgKiBTSEEtMzg0IHRlc3QgdmVjdG9ycworICovCisjaWYgZGVmaW5lZChNQkVEVExTX1NIQTM4NF9DKQorc3RhdGljIHNoYV90ZXN0X3N1bV90IHNoYTM4NF90ZXN0X3N1bVtdID0KK3sKKyAgICB7IDB4Q0IsIDB4MDAsIDB4NzUsIDB4M0YsIDB4NDUsIDB4QTMsIDB4NUUsIDB4OEIsCisgICAgICAweEI1LCAweEEwLCAweDNELCAweDY5LCAweDlBLCAweEM2LCAweDUwLCAweDA3LAorICAgICAgMHgyNywgMHgyQywgMHgzMiwgMHhBQiwgMHgwRSwgMHhERSwgMHhEMSwgMHg2MywKKyAgICAgIDB4MUEsIDB4OEIsIDB4NjAsIDB4NUEsIDB4NDMsIDB4RkYsIDB4NUIsIDB4RUQsCisgICAgICAweDgwLCAweDg2LCAweDA3LCAweDJCLCAweEExLCAweEU3LCAweENDLCAweDIzLAorICAgICAgMHg1OCwgMHhCQSwgMHhFQywgMHhBMSwgMHgzNCwgMHhDOCwgMHgyNSwgMHhBNyB9LAorICAgIHsgMHgwOSwgMHgzMywgMHgwQywgMHgzMywgMHhGNywgMHgxMSwgMHg0NywgMHhFOCwKKyAgICAgIDB4M0QsIDB4MTksIDB4MkYsIDB4QzcsIDB4ODIsIDB4Q0QsIDB4MUIsIDB4NDcsCisgICAgICAweDUzLCAweDExLCAweDFCLCAweDE3LCAweDNCLCAweDNCLCAweDA1LCAweEQyLAorICAgICAgMHgyRiwgMHhBMCwgMHg4MCwgMHg4NiwgMHhFMywgMHhCMCwgMHhGNywgMHgxMiwKKyAgICAgIDB4RkMsIDB4QzcsIDB4QzcsIDB4MUEsIDB4NTUsIDB4N0UsIDB4MkQsIDB4QjksCisgICAgICAweDY2LCAweEMzLCAweEU5LCAweEZBLCAweDkxLCAweDc0LCAweDYwLCAweDM5IH0sCisgICAgeyAweDlELCAweDBFLCAweDE4LCAweDA5LCAweDcxLCAweDY0LCAweDc0LCAweENCLAorICAgICAgMHgwOCwgMHg2RSwgMHg4MywgMHg0RSwgMHgzMSwgMHgwQSwgMHg0QSwgMHgxQywKKyAgICAgIDB4RUQsIDB4MTQsIDB4OUUsIDB4OUMsIDB4MDAsIDB4RjIsIDB4NDgsIDB4NTIsCisgICAgICAweDc5LCAweDcyLCAweENFLCAweEM1LCAweDcwLCAweDRDLCAweDJBLCAweDVCLAorICAgICAgMHgwNywgMHhCOCwgMHhCMywgMHhEQywgMHgzOCwgMHhFQywgMHhDNCwgMHhFQiwKKyAgICAgIDB4QUUsIDB4OTcsIDB4REQsIDB4RDgsIDB4N0YsIDB4M0QsIDB4ODksIDB4ODUgfQorfTsKKyNlbmRpZiAvKiBNQkVEVExTX1NIQTM4NF9DICovCisKKy8qCisgKiBTSEEtNTEyIHRlc3QgdmVjdG9ycworICovCisjaWYgZGVmaW5lZChNQkVEVExTX1NIQTUxMl9DKQorc3RhdGljIHNoYV90ZXN0X3N1bV90IHNoYTUxMl90ZXN0X3N1bVtdID0KK3sKKyAgICB7IDB4REQsIDB4QUYsIDB4MzUsIDB4QTEsIDB4OTMsIDB4NjEsIDB4N0EsIDB4QkEsCisgICAgICAweENDLCAweDQxLCAweDczLCAweDQ5LCAweEFFLCAweDIwLCAweDQxLCAweDMxLAorICAgICAgMHgxMiwgMHhFNiwgMHhGQSwgMHg0RSwgMHg4OSwgMHhBOSwgMHg3RSwgMHhBMiwKKyAgICAgIDB4MEEsIDB4OUUsIDB4RUUsIDB4RTYsIDB4NEIsIDB4NTUsIDB4RDMsIDB4OUEsCisgICAgICAweDIxLCAweDkyLCAweDk5LCAweDJBLCAweDI3LCAweDRGLCAweEMxLCAweEE4LAorICAgICAgMHgzNiwgMHhCQSwgMHgzQywgMHgyMywgMHhBMywgMHhGRSwgMHhFQiwgMHhCRCwKKyAgICAgIDB4NDUsIDB4NEQsIDB4NDQsIDB4MjMsIDB4NjQsIDB4M0MsIDB4RTgsIDB4MEUsCisgICAgICAweDJBLCAweDlBLCAweEM5LCAweDRGLCAweEE1LCAweDRDLCAweEE0LCAweDlGIH0sCisgICAgeyAweDhFLCAweDk1LCAweDlCLCAweDc1LCAweERBLCAweEUzLCAweDEzLCAweERBLAorICAgICAgMHg4QywgMHhGNCwgMHhGNywgMHgyOCwgMHgxNCwgMHhGQywgMHgxNCwgMHgzRiwKKyAgICAgIDB4OEYsIDB4NzcsIDB4NzksIDB4QzYsIDB4RUIsIDB4OUYsIDB4N0YsIDB4QTEsCisgICAgICAweDcyLCAweDk5LCAweEFFLCAweEFELCAweEI2LCAweDg4LCAweDkwLCAweDE4LAorICAgICAgMHg1MCwgMHgxRCwgMHgyOCwgMHg5RSwgMHg0OSwgMHgwMCwgMHhGNywgMHhFNCwKKyAgICAgIDB4MzMsIDB4MUIsIDB4OTksIDB4REUsIDB4QzQsIDB4QjUsIDB4NDMsIDB4M0EsCisgICAgICAweEM3LCAweEQzLCAweDI5LCAweEVFLCAweEI2LCAweERELCAweDI2LCAweDU0LAorICAgICAgMHg1RSwgMHg5NiwgMHhFNSwgMHg1QiwgMHg4NywgMHg0QiwgMHhFOSwgMHgwOSB9LAorICAgIHsgMHhFNywgMHgxOCwgMHg0OCwgMHgzRCwgMHgwQywgMHhFNywgMHg2OSwgMHg2NCwKKyAgICAgIDB4NEUsIDB4MkUsIDB4NDIsIDB4QzcsIDB4QkMsIDB4MTUsIDB4QjQsIDB4NjMsCisgICAgICAweDhFLCAweDFGLCAweDk4LCAweEIxLCAweDNCLCAweDIwLCAweDQ0LCAweDI4LAorICAgICAgMHg1NiwgMHgzMiwgMHhBOCwgMHgwMywgMHhBRiwgMHhBOSwgMHg3MywgMHhFQiwKKyAgICAgIDB4REUsIDB4MEYsIDB4RjIsIDB4NDQsIDB4ODcsIDB4N0UsIDB4QTYsIDB4MEEsCisgICAgICAweDRDLCAweEIwLCAweDQzLCAweDJDLCAweEU1LCAweDc3LCAweEMzLCAweDFCLAorICAgICAgMHhFQiwgMHgwMCwgMHg5QywgMHg1QywgMHgyQywgMHg0OSwgMHhBQSwgMHgyRSwKKyAgICAgIDB4NEUsIDB4QUQsIDB4QjIsIDB4MTcsIDB4QUQsIDB4OEMsIDB4QzAsIDB4OUIgfQorfTsKKyNlbmRpZiAvKiBNQkVEVExTX1NIQTUxMl9DICovCisKK3N0YXRpYyBpbnQgbWJlZHRsc19zaGE1MTJfY29tbW9uX3NlbGZfdGVzdChpbnQgdmVyYm9zZSwgaW50IGlzMzg0KQoreworICAgIGludCBpLCBidWZsZW4sIHJldCA9IDA7CisgICAgdW5zaWduZWQgY2hhciAqYnVmOworICAgIHVuc2lnbmVkIGNoYXIgc2hhNTEyc3VtWzY0XTsKKyAgICBtYmVkdGxzX3NoYTUxMl9jb250ZXh0IGN0eDsKKworI2lmIGRlZmluZWQoTUJFRFRMU19TSEEzODRfQykgJiYgZGVmaW5lZChNQkVEVExTX1NIQTUxMl9DKQorICAgIHNoYV90ZXN0X3N1bV90ICpzaGFfdGVzdF9zdW0gPSAoaXMzODQpID8gc2hhMzg0X3Rlc3Rfc3VtIDogc2hhNTEyX3Rlc3Rfc3VtOworI2VsaWYgZGVmaW5lZChNQkVEVExTX1NIQTUxMl9DKQorICAgIHNoYV90ZXN0X3N1bV90ICpzaGFfdGVzdF9zdW0gPSBzaGE1MTJfdGVzdF9zdW07CisjZWxzZQorICAgIHNoYV90ZXN0X3N1bV90ICpzaGFfdGVzdF9zdW0gPSBzaGEzODRfdGVzdF9zdW07CisjZW5kaWYKKworICAgIGJ1ZiA9IG1iZWR0bHNfY2FsbG9jKDEwMjQsIHNpemVvZih1bnNpZ25lZCBjaGFyKSk7CisgICAgaWYgKE5VTEwgPT0gYnVmKSB7CisgICAgICAgIGlmICh2ZXJib3NlICE9IDApIHsKKyAgICAgICAgICAgIG1iZWR0bHNfcHJpbnRmKCJCdWZmZXIgYWxsb2NhdGlvbiBmYWlsZWRcbiIpOworICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIDE7CisgICAgfQorCisgICAgbWJlZHRsc19zaGE1MTJfaW5pdCgmY3R4KTsKKworICAgIGZvciAoaSA9IDA7IGkgPCAzOyBpKyspIHsKKyAgICAgICAgaWYgKHZlcmJvc2UgIT0gMCkgeworICAgICAgICAgICAgbWJlZHRsc19wcmludGYoIiAgU0hBLSVkIHRlc3QgIyVkOiAiLCA1MTIgLSBpczM4NCAqIDEyOCwgaSArIDEpOworICAgICAgICB9CisKKyAgICAgICAgaWYgKChyZXQgPSBtYmVkdGxzX3NoYTUxMl9zdGFydHMoJmN0eCwgaXMzODQpKSAhPSAwKSB7CisgICAgICAgICAgICBnb3RvIGZhaWw7CisgICAgICAgIH0KKworICAgICAgICBpZiAoaSA9PSAyKSB7CisgICAgICAgICAgICBtZW1zZXQoYnVmLCAnYScsIGJ1ZmxlbiA9IDEwMDApOworCisgICAgICAgICAgICBmb3IgKGludCBqID0gMDsgaiA8IDEwMDA7IGorKykgeworICAgICAgICAgICAgICAgIHJldCA9IG1iZWR0bHNfc2hhNTEyX3VwZGF0ZSgmY3R4LCBidWYsIGJ1Zmxlbik7CisgICAgICAgICAgICAgICAgaWYgKHJldCAhPSAwKSB7CisgICAgICAgICAgICAgICAgICAgIGdvdG8gZmFpbDsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICByZXQgPSBtYmVkdGxzX3NoYTUxMl91cGRhdGUoJmN0eCwgc2hhX3Rlc3RfYnVmW2ldLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNoYV90ZXN0X2J1ZmxlbltpXSk7CisgICAgICAgICAgICBpZiAocmV0ICE9IDApIHsKKyAgICAgICAgICAgICAgICBnb3RvIGZhaWw7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBpZiAoKHJldCA9IG1iZWR0bHNfc2hhNTEyX2ZpbmlzaCgmY3R4LCBzaGE1MTJzdW0pKSAhPSAwKSB7CisgICAgICAgICAgICBnb3RvIGZhaWw7CisgICAgICAgIH0KKworICAgICAgICBpZiAobWVtY21wKHNoYTUxMnN1bSwgc2hhX3Rlc3Rfc3VtW2ldLCA2NCAtIGlzMzg0ICogMTYpICE9IDApIHsKKyAgICAgICAgICAgIHJldCA9IDE7CisgICAgICAgICAgICBnb3RvIGZhaWw7CisgICAgICAgIH0KKworICAgICAgICBpZiAodmVyYm9zZSAhPSAwKSB7CisgICAgICAgICAgICBtYmVkdGxzX3ByaW50ZigicGFzc2VkXG4iKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIGlmICh2ZXJib3NlICE9IDApIHsKKyAgICAgICAgbWJlZHRsc19wcmludGYoIlxuIik7CisgICAgfQorCisgICAgZ290byBleGl0OworCitmYWlsOgorICAgIGlmICh2ZXJib3NlICE9IDApIHsKKyAgICAgICAgbWJlZHRsc19wcmludGYoImZhaWxlZFxuIik7CisgICAgfQorCitleGl0OgorICAgIG1iZWR0bHNfc2hhNTEyX2ZyZWUoJmN0eCk7CisgICAgbWJlZHRsc19mcmVlKGJ1Zik7CisKKyAgICByZXR1cm4gcmV0OworfQorCisjaWYgZGVmaW5lZChNQkVEVExTX1NIQTUxMl9DKQoraW50IG1iZWR0bHNfc2hhNTEyX3NlbGZfdGVzdChpbnQgdmVyYm9zZSkKK3sKKyAgICByZXR1cm4gbWJlZHRsc19zaGE1MTJfY29tbW9uX3NlbGZfdGVzdCh2ZXJib3NlLCAwKTsKK30KKyNlbmRpZiAvKiBNQkVEVExTX1NIQTUxMl9DICovCisKKyNpZiBkZWZpbmVkKE1CRURUTFNfU0hBMzg0X0MpCitpbnQgbWJlZHRsc19zaGEzODRfc2VsZl90ZXN0KGludCB2ZXJib3NlKQoreworICAgIHJldHVybiBtYmVkdGxzX3NoYTUxMl9jb21tb25fc2VsZl90ZXN0KHZlcmJvc2UsIDEpOworfQorI2VuZGlmIC8qIE1CRURUTFNfU0hBMzg0X0MgKi8KKworI3VuZGVmIEFSUkFZX0xFTkdUSAorCisjZW5kaWYgLyogTUJFRFRMU19TRUxGX1RFU1QgKi8KKworI2VuZGlmIC8qIE1CRURUTFNfU0hBNTEyX0MgfHwgTUJFRFRMU19TSEEzODRfQyAqLwpkaWZmIC0tZ2l0IGEvbGlicmFyeS90aHJlYWRpbmcuYyBiL3RmLXBzYS1jcnlwdG8vZHJpdmVycy9idWlsdGluL3NyYy90aHJlYWRpbmcuYwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gbGlicmFyeS90aHJlYWRpbmcuYwpyZW5hbWUgdG8gdGYtcHNhLWNyeXB0by9kcml2ZXJzL2J1aWx0aW4vc3JjL3RocmVhZGluZy5jCmRpZmYgLS1naXQgYS9saWJyYXJ5L3RpbWluZy5jIGIvdGYtcHNhLWNyeXB0by9kcml2ZXJzL2J1aWx0aW4vc3JjL3RpbWluZy5jCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBsaWJyYXJ5L3RpbWluZy5jCnJlbmFtZSB0byB0Zi1wc2EtY3J5cHRvL2RyaXZlcnMvYnVpbHRpbi9zcmMvdGltaW5nLmMKZGlmZiAtLWdpdCBhL2xpYnJhcnkvdmVyc2lvbi5jIGIvdGYtcHNhLWNyeXB0by9kcml2ZXJzL2J1aWx0aW4vc3JjL3ZlcnNpb24uYwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gbGlicmFyeS92ZXJzaW9uLmMKcmVuYW1lIHRvIHRmLXBzYS1jcnlwdG8vZHJpdmVycy9idWlsdGluL3NyYy92ZXJzaW9uLmMKZGlmZiAtLWdpdCBhLzNyZHBhcnR5L2V2ZXJlc3QvLmdpdGlnbm9yZSBiL3RmLXBzYS1jcnlwdG8vZHJpdmVycy9ldmVyZXN0Ly5naXRpZ25vcmUKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIDNyZHBhcnR5L2V2ZXJlc3QvLmdpdGlnbm9yZQpyZW5hbWUgdG8gdGYtcHNhLWNyeXB0by9kcml2ZXJzL2V2ZXJlc3QvLmdpdGlnbm9yZQpkaWZmIC0tZ2l0IGEvdGYtcHNhLWNyeXB0by9kcml2ZXJzL2V2ZXJlc3QvQ01ha2VMaXN0cy50eHQgYi90Zi1wc2EtY3J5cHRvL2RyaXZlcnMvZXZlcmVzdC9DTWFrZUxpc3RzLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40OTU4YTc5Ci0tLSAvZGV2L251bGwKKysrIGIvdGYtcHNhLWNyeXB0by9kcml2ZXJzL2V2ZXJlc3QvQ01ha2VMaXN0cy50eHQKQEAgLTAsMCArMSw0NSBAQAorc2V0KGV2ZXJlc3RfdGFyZ2V0ICIke01CRURUTFNfVEFSR0VUX1BSRUZJWH1ldmVyZXN0IikKKworYWRkX2xpYnJhcnkoJHtldmVyZXN0X3RhcmdldH0KKyAgbGlicmFyeS9ldmVyZXN0LmMKKyAgbGlicmFyeS94MjU1MTkuYworICBsaWJyYXJ5L0hhY2xfQ3VydmUyNTUxOV9qb2luZWQuYykKKwordGFyZ2V0X2luY2x1ZGVfZGlyZWN0b3JpZXMoJHtldmVyZXN0X3RhcmdldH0KKyAgUFVCTElDICQ8QlVJTERfSU5URVJGQUNFOiR7Q01BS0VfQ1VSUkVOVF9TT1VSQ0VfRElSfS9pbmNsdWRlPgorICAgICAgICAgJDxCVUlMRF9JTlRFUkZBQ0U6JHtNQkVEVExTX0RJUn0vaW5jbHVkZT4KKyAgICAgICAgICQ8QlVJTERfSU5URVJGQUNFOiR7TUJFRFRMU19ESVJ9L3RmLXBzYS1jcnlwdG8vaW5jbHVkZT4KKyAgICAgICAgICQ8QlVJTERfSU5URVJGQUNFOiR7TUJFRFRMU19ESVJ9L3RmLXBzYS1jcnlwdG8vZHJpdmVycy9idWlsdGluL2luY2x1ZGU+CisgICAgICAgICAkPElOU1RBTExfSU5URVJGQUNFOmluY2x1ZGU+CisgIFBSSVZBVEUgaW5jbHVkZS9ldmVyZXN0CisgICAgICAgICAgaW5jbHVkZS9ldmVyZXN0L2tyZW1saWIKKyAgICAgICAgICAke01CRURUTFNfRElSfS9saWJyYXJ5CisgICAgICAgICAgJHtNQkVEVExTX0RJUn0vdGYtcHNhLWNyeXB0by9jb3JlKQorCisjIFBhc3MtdGhyb3VnaCBNQkVEVExTX0NPTkZJR19GSUxFIGFuZCBNQkVEVExTX1VTRVJfQ09ORklHX0ZJTEUKKyMgVGhpcyBtdXN0IGJlIGR1cGxpY2F0ZWQgZnJvbSBsaWJyYXJ5L0NNYWtlTGlzdHMudHh0IGJlY2F1c2UKKyMgZXZlcmVzdCBpcyBub3QgZGlyZWN0bHkgbGlua2VkIGFnYWluc3QgYW55IG1iZWR0bHMgdGFyZ2V0cworIyBzbyBkb2VzIG5vdCBpbmhlcml0IHRoZSBjb21waWxlIGRlZmluaXRpb25zLgoraWYoTUJFRFRMU19DT05GSUdfRklMRSkKKyAgICB0YXJnZXRfY29tcGlsZV9kZWZpbml0aW9ucygke2V2ZXJlc3RfdGFyZ2V0fQorICAgICAgICBQVUJMSUMgTUJFRFRMU19DT05GSUdfRklMRT0iJHtNQkVEVExTX0NPTkZJR19GSUxFfSIpCitlbmRpZigpCitpZihNQkVEVExTX1VTRVJfQ09ORklHX0ZJTEUpCisgICAgdGFyZ2V0X2NvbXBpbGVfZGVmaW5pdGlvbnMoJHtldmVyZXN0X3RhcmdldH0KKyAgICAgICAgUFVCTElDIE1CRURUTFNfVVNFUl9DT05GSUdfRklMRT0iJHtNQkVEVExTX1VTRVJfQ09ORklHX0ZJTEV9IikKK2VuZGlmKCkKKworaWYoSU5TVEFMTF9NQkVEVExTX0hFQURFUlMpCisKKyAgaW5zdGFsbChESVJFQ1RPUlkgaW5jbHVkZS9ldmVyZXN0CisgICAgREVTVElOQVRJT04gaW5jbHVkZQorICAgIEZJTEVfUEVSTUlTU0lPTlMgT1dORVJfUkVBRCBPV05FUl9XUklURSBHUk9VUF9SRUFEIFdPUkxEX1JFQUQKKyAgICBESVJFQ1RPUllfUEVSTUlTU0lPTlMgT1dORVJfUkVBRCBPV05FUl9XUklURSBPV05FUl9FWEVDVVRFIEdST1VQX1JFQUQgR1JPVVBfRVhFQ1VURSBXT1JMRF9SRUFEIFdPUkxEX0VYRUNVVEUKKyAgICBGSUxFU19NQVRDSElORyBQQVRURVJOICIqLmgiKQorCitlbmRpZihJTlNUQUxMX01CRURUTFNfSEVBREVSUykKKworaW5zdGFsbChUQVJHRVRTICR7ZXZlcmVzdF90YXJnZXR9CisgIEVYUE9SVCBNYmVkVExTVGFyZ2V0cworICBERVNUSU5BVElPTiAke0NNQUtFX0lOU1RBTExfTElCRElSfQorICBQRVJNSVNTSU9OUyBPV05FUl9SRUFEIE9XTkVSX1dSSVRFIEdST1VQX1JFQUQgV09STERfUkVBRCkKZGlmZiAtLWdpdCBhLzNyZHBhcnR5L2V2ZXJlc3QvTWFrZWZpbGUuaW5jIGIvdGYtcHNhLWNyeXB0by9kcml2ZXJzL2V2ZXJlc3QvTWFrZWZpbGUuaW5jCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSAzcmRwYXJ0eS9ldmVyZXN0L01ha2VmaWxlLmluYwpyZW5hbWUgdG8gdGYtcHNhLWNyeXB0by9kcml2ZXJzL2V2ZXJlc3QvTWFrZWZpbGUuaW5jCmRpZmYgLS1naXQgYS8zcmRwYXJ0eS9ldmVyZXN0L1JFQURNRS5tZCBiL3RmLXBzYS1jcnlwdG8vZHJpdmVycy9ldmVyZXN0L1JFQURNRS5tZApzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gM3JkcGFydHkvZXZlcmVzdC9SRUFETUUubWQKcmVuYW1lIHRvIHRmLXBzYS1jcnlwdG8vZHJpdmVycy9ldmVyZXN0L1JFQURNRS5tZApkaWZmIC0tZ2l0IGEvM3JkcGFydHkvZXZlcmVzdC9pbmNsdWRlL2V2ZXJlc3QvSGFjbF9DdXJ2ZTI1NTE5LmggYi90Zi1wc2EtY3J5cHRvL2RyaXZlcnMvZXZlcmVzdC9pbmNsdWRlL2V2ZXJlc3QvSGFjbF9DdXJ2ZTI1NTE5LmgKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIDNyZHBhcnR5L2V2ZXJlc3QvaW5jbHVkZS9ldmVyZXN0L0hhY2xfQ3VydmUyNTUxOS5oCnJlbmFtZSB0byB0Zi1wc2EtY3J5cHRvL2RyaXZlcnMvZXZlcmVzdC9pbmNsdWRlL2V2ZXJlc3QvSGFjbF9DdXJ2ZTI1NTE5LmgKZGlmZiAtLWdpdCBhLzNyZHBhcnR5L2V2ZXJlc3QvaW5jbHVkZS9ldmVyZXN0L2V2ZXJlc3QuaCBiL3RmLXBzYS1jcnlwdG8vZHJpdmVycy9ldmVyZXN0L2luY2x1ZGUvZXZlcmVzdC9ldmVyZXN0LmgKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIDNyZHBhcnR5L2V2ZXJlc3QvaW5jbHVkZS9ldmVyZXN0L2V2ZXJlc3QuaApyZW5hbWUgdG8gdGYtcHNhLWNyeXB0by9kcml2ZXJzL2V2ZXJlc3QvaW5jbHVkZS9ldmVyZXN0L2V2ZXJlc3QuaApkaWZmIC0tZ2l0IGEvM3JkcGFydHkvZXZlcmVzdC9pbmNsdWRlL2V2ZXJlc3Qva3JlbWxpYi5oIGIvdGYtcHNhLWNyeXB0by9kcml2ZXJzL2V2ZXJlc3QvaW5jbHVkZS9ldmVyZXN0L2tyZW1saWIuaApzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gM3JkcGFydHkvZXZlcmVzdC9pbmNsdWRlL2V2ZXJlc3Qva3JlbWxpYi5oCnJlbmFtZSB0byB0Zi1wc2EtY3J5cHRvL2RyaXZlcnMvZXZlcmVzdC9pbmNsdWRlL2V2ZXJlc3Qva3JlbWxpYi5oCmRpZmYgLS1naXQgYS8zcmRwYXJ0eS9ldmVyZXN0L2luY2x1ZGUvZXZlcmVzdC9rcmVtbGliL0ZTdGFyX1VJbnQxMjguaCBiL3RmLXBzYS1jcnlwdG8vZHJpdmVycy9ldmVyZXN0L2luY2x1ZGUvZXZlcmVzdC9rcmVtbGliL0ZTdGFyX1VJbnQxMjguaApzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gM3JkcGFydHkvZXZlcmVzdC9pbmNsdWRlL2V2ZXJlc3Qva3JlbWxpYi9GU3Rhcl9VSW50MTI4LmgKcmVuYW1lIHRvIHRmLXBzYS1jcnlwdG8vZHJpdmVycy9ldmVyZXN0L2luY2x1ZGUvZXZlcmVzdC9rcmVtbGliL0ZTdGFyX1VJbnQxMjguaApkaWZmIC0tZ2l0IGEvM3JkcGFydHkvZXZlcmVzdC9pbmNsdWRlL2V2ZXJlc3Qva3JlbWxpYi9GU3Rhcl9VSW50NjRfRlN0YXJfVUludDMyX0ZTdGFyX1VJbnQxNl9GU3Rhcl9VSW50OC5oIGIvdGYtcHNhLWNyeXB0by9kcml2ZXJzL2V2ZXJlc3QvaW5jbHVkZS9ldmVyZXN0L2tyZW1saWIvRlN0YXJfVUludDY0X0ZTdGFyX1VJbnQzMl9GU3Rhcl9VSW50MTZfRlN0YXJfVUludDguaApzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gM3JkcGFydHkvZXZlcmVzdC9pbmNsdWRlL2V2ZXJlc3Qva3JlbWxpYi9GU3Rhcl9VSW50NjRfRlN0YXJfVUludDMyX0ZTdGFyX1VJbnQxNl9GU3Rhcl9VSW50OC5oCnJlbmFtZSB0byB0Zi1wc2EtY3J5cHRvL2RyaXZlcnMvZXZlcmVzdC9pbmNsdWRlL2V2ZXJlc3Qva3JlbWxpYi9GU3Rhcl9VSW50NjRfRlN0YXJfVUludDMyX0ZTdGFyX1VJbnQxNl9GU3Rhcl9VSW50OC5oCmRpZmYgLS1naXQgYS8zcmRwYXJ0eS9ldmVyZXN0L2luY2x1ZGUvZXZlcmVzdC9rcmVtbGluL2NfZW5kaWFubmVzcy5oIGIvdGYtcHNhLWNyeXB0by9kcml2ZXJzL2V2ZXJlc3QvaW5jbHVkZS9ldmVyZXN0L2tyZW1saW4vY19lbmRpYW5uZXNzLmgKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIDNyZHBhcnR5L2V2ZXJlc3QvaW5jbHVkZS9ldmVyZXN0L2tyZW1saW4vY19lbmRpYW5uZXNzLmgKcmVuYW1lIHRvIHRmLXBzYS1jcnlwdG8vZHJpdmVycy9ldmVyZXN0L2luY2x1ZGUvZXZlcmVzdC9rcmVtbGluL2NfZW5kaWFubmVzcy5oCmRpZmYgLS1naXQgYS8zcmRwYXJ0eS9ldmVyZXN0L2luY2x1ZGUvZXZlcmVzdC9rcmVtbGluL2ludGVybmFsL2J1aWx0aW4uaCBiL3RmLXBzYS1jcnlwdG8vZHJpdmVycy9ldmVyZXN0L2luY2x1ZGUvZXZlcmVzdC9rcmVtbGluL2ludGVybmFsL2J1aWx0aW4uaApzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gM3JkcGFydHkvZXZlcmVzdC9pbmNsdWRlL2V2ZXJlc3Qva3JlbWxpbi9pbnRlcm5hbC9idWlsdGluLmgKcmVuYW1lIHRvIHRmLXBzYS1jcnlwdG8vZHJpdmVycy9ldmVyZXN0L2luY2x1ZGUvZXZlcmVzdC9rcmVtbGluL2ludGVybmFsL2J1aWx0aW4uaApkaWZmIC0tZ2l0IGEvM3JkcGFydHkvZXZlcmVzdC9pbmNsdWRlL2V2ZXJlc3Qva3JlbWxpbi9pbnRlcm5hbC9jYWxsY29udi5oIGIvdGYtcHNhLWNyeXB0by9kcml2ZXJzL2V2ZXJlc3QvaW5jbHVkZS9ldmVyZXN0L2tyZW1saW4vaW50ZXJuYWwvY2FsbGNvbnYuaApzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gM3JkcGFydHkvZXZlcmVzdC9pbmNsdWRlL2V2ZXJlc3Qva3JlbWxpbi9pbnRlcm5hbC9jYWxsY29udi5oCnJlbmFtZSB0byB0Zi1wc2EtY3J5cHRvL2RyaXZlcnMvZXZlcmVzdC9pbmNsdWRlL2V2ZXJlc3Qva3JlbWxpbi9pbnRlcm5hbC9jYWxsY29udi5oCmRpZmYgLS1naXQgYS8zcmRwYXJ0eS9ldmVyZXN0L2luY2x1ZGUvZXZlcmVzdC9rcmVtbGluL2ludGVybmFsL2NvbXBhdC5oIGIvdGYtcHNhLWNyeXB0by9kcml2ZXJzL2V2ZXJlc3QvaW5jbHVkZS9ldmVyZXN0L2tyZW1saW4vaW50ZXJuYWwvY29tcGF0LmgKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIDNyZHBhcnR5L2V2ZXJlc3QvaW5jbHVkZS9ldmVyZXN0L2tyZW1saW4vaW50ZXJuYWwvY29tcGF0LmgKcmVuYW1lIHRvIHRmLXBzYS1jcnlwdG8vZHJpdmVycy9ldmVyZXN0L2luY2x1ZGUvZXZlcmVzdC9rcmVtbGluL2ludGVybmFsL2NvbXBhdC5oCmRpZmYgLS1naXQgYS8zcmRwYXJ0eS9ldmVyZXN0L2luY2x1ZGUvZXZlcmVzdC9rcmVtbGluL2ludGVybmFsL2RlYnVnLmggYi90Zi1wc2EtY3J5cHRvL2RyaXZlcnMvZXZlcmVzdC9pbmNsdWRlL2V2ZXJlc3Qva3JlbWxpbi9pbnRlcm5hbC9kZWJ1Zy5oCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSAzcmRwYXJ0eS9ldmVyZXN0L2luY2x1ZGUvZXZlcmVzdC9rcmVtbGluL2ludGVybmFsL2RlYnVnLmgKcmVuYW1lIHRvIHRmLXBzYS1jcnlwdG8vZHJpdmVycy9ldmVyZXN0L2luY2x1ZGUvZXZlcmVzdC9rcmVtbGluL2ludGVybmFsL2RlYnVnLmgKZGlmZiAtLWdpdCBhLzNyZHBhcnR5L2V2ZXJlc3QvaW5jbHVkZS9ldmVyZXN0L2tyZW1saW4vaW50ZXJuYWwvdGFyZ2V0LmggYi90Zi1wc2EtY3J5cHRvL2RyaXZlcnMvZXZlcmVzdC9pbmNsdWRlL2V2ZXJlc3Qva3JlbWxpbi9pbnRlcm5hbC90YXJnZXQuaApzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gM3JkcGFydHkvZXZlcmVzdC9pbmNsdWRlL2V2ZXJlc3Qva3JlbWxpbi9pbnRlcm5hbC90YXJnZXQuaApyZW5hbWUgdG8gdGYtcHNhLWNyeXB0by9kcml2ZXJzL2V2ZXJlc3QvaW5jbHVkZS9ldmVyZXN0L2tyZW1saW4vaW50ZXJuYWwvdGFyZ2V0LmgKZGlmZiAtLWdpdCBhLzNyZHBhcnR5L2V2ZXJlc3QvaW5jbHVkZS9ldmVyZXN0L2tyZW1saW4vaW50ZXJuYWwvdHlwZXMuaCBiL3RmLXBzYS1jcnlwdG8vZHJpdmVycy9ldmVyZXN0L2luY2x1ZGUvZXZlcmVzdC9rcmVtbGluL2ludGVybmFsL3R5cGVzLmgKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIDNyZHBhcnR5L2V2ZXJlc3QvaW5jbHVkZS9ldmVyZXN0L2tyZW1saW4vaW50ZXJuYWwvdHlwZXMuaApyZW5hbWUgdG8gdGYtcHNhLWNyeXB0by9kcml2ZXJzL2V2ZXJlc3QvaW5jbHVkZS9ldmVyZXN0L2tyZW1saW4vaW50ZXJuYWwvdHlwZXMuaApkaWZmIC0tZ2l0IGEvM3JkcGFydHkvZXZlcmVzdC9pbmNsdWRlL2V2ZXJlc3Qva3JlbWxpbi9pbnRlcm5hbC93YXNtc3VwcG9ydC5oIGIvdGYtcHNhLWNyeXB0by9kcml2ZXJzL2V2ZXJlc3QvaW5jbHVkZS9ldmVyZXN0L2tyZW1saW4vaW50ZXJuYWwvd2FzbXN1cHBvcnQuaApzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gM3JkcGFydHkvZXZlcmVzdC9pbmNsdWRlL2V2ZXJlc3Qva3JlbWxpbi9pbnRlcm5hbC93YXNtc3VwcG9ydC5oCnJlbmFtZSB0byB0Zi1wc2EtY3J5cHRvL2RyaXZlcnMvZXZlcmVzdC9pbmNsdWRlL2V2ZXJlc3Qva3JlbWxpbi9pbnRlcm5hbC93YXNtc3VwcG9ydC5oCmRpZmYgLS1naXQgYS8zcmRwYXJ0eS9ldmVyZXN0L2luY2x1ZGUvZXZlcmVzdC92czIwMTMvSGFjbF9DdXJ2ZTI1NTE5LmggYi90Zi1wc2EtY3J5cHRvL2RyaXZlcnMvZXZlcmVzdC9pbmNsdWRlL2V2ZXJlc3QvdnMyMDEzL0hhY2xfQ3VydmUyNTUxOS5oCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSAzcmRwYXJ0eS9ldmVyZXN0L2luY2x1ZGUvZXZlcmVzdC92czIwMTMvSGFjbF9DdXJ2ZTI1NTE5LmgKcmVuYW1lIHRvIHRmLXBzYS1jcnlwdG8vZHJpdmVycy9ldmVyZXN0L2luY2x1ZGUvZXZlcmVzdC92czIwMTMvSGFjbF9DdXJ2ZTI1NTE5LmgKZGlmZiAtLWdpdCBhLzNyZHBhcnR5L2V2ZXJlc3QvaW5jbHVkZS9ldmVyZXN0L3ZzMjAxMy9pbnR0eXBlcy5oIGIvdGYtcHNhLWNyeXB0by9kcml2ZXJzL2V2ZXJlc3QvaW5jbHVkZS9ldmVyZXN0L3ZzMjAxMy9pbnR0eXBlcy5oCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSAzcmRwYXJ0eS9ldmVyZXN0L2luY2x1ZGUvZXZlcmVzdC92czIwMTMvaW50dHlwZXMuaApyZW5hbWUgdG8gdGYtcHNhLWNyeXB0by9kcml2ZXJzL2V2ZXJlc3QvaW5jbHVkZS9ldmVyZXN0L3ZzMjAxMy9pbnR0eXBlcy5oCmRpZmYgLS1naXQgYS8zcmRwYXJ0eS9ldmVyZXN0L2luY2x1ZGUvZXZlcmVzdC92czIwMTMvc3RkYm9vbC5oIGIvdGYtcHNhLWNyeXB0by9kcml2ZXJzL2V2ZXJlc3QvaW5jbHVkZS9ldmVyZXN0L3ZzMjAxMy9zdGRib29sLmgKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIDNyZHBhcnR5L2V2ZXJlc3QvaW5jbHVkZS9ldmVyZXN0L3ZzMjAxMy9zdGRib29sLmgKcmVuYW1lIHRvIHRmLXBzYS1jcnlwdG8vZHJpdmVycy9ldmVyZXN0L2luY2x1ZGUvZXZlcmVzdC92czIwMTMvc3RkYm9vbC5oCmRpZmYgLS1naXQgYS8zcmRwYXJ0eS9ldmVyZXN0L2luY2x1ZGUvZXZlcmVzdC94MjU1MTkuaCBiL3RmLXBzYS1jcnlwdG8vZHJpdmVycy9ldmVyZXN0L2luY2x1ZGUvZXZlcmVzdC94MjU1MTkuaApzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gM3JkcGFydHkvZXZlcmVzdC9pbmNsdWRlL2V2ZXJlc3QveDI1NTE5LmgKcmVuYW1lIHRvIHRmLXBzYS1jcnlwdG8vZHJpdmVycy9ldmVyZXN0L2luY2x1ZGUvZXZlcmVzdC94MjU1MTkuaApkaWZmIC0tZ2l0IGEvM3JkcGFydHkvZXZlcmVzdC9saWJyYXJ5L0hhY2xfQ3VydmUyNTUxOS5jIGIvdGYtcHNhLWNyeXB0by9kcml2ZXJzL2V2ZXJlc3QvbGlicmFyeS9IYWNsX0N1cnZlMjU1MTkuYwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gM3JkcGFydHkvZXZlcmVzdC9saWJyYXJ5L0hhY2xfQ3VydmUyNTUxOS5jCnJlbmFtZSB0byB0Zi1wc2EtY3J5cHRvL2RyaXZlcnMvZXZlcmVzdC9saWJyYXJ5L0hhY2xfQ3VydmUyNTUxOS5jCmRpZmYgLS1naXQgYS8zcmRwYXJ0eS9ldmVyZXN0L2xpYnJhcnkvSGFjbF9DdXJ2ZTI1NTE5X2pvaW5lZC5jIGIvdGYtcHNhLWNyeXB0by9kcml2ZXJzL2V2ZXJlc3QvbGlicmFyeS9IYWNsX0N1cnZlMjU1MTlfam9pbmVkLmMKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIDNyZHBhcnR5L2V2ZXJlc3QvbGlicmFyeS9IYWNsX0N1cnZlMjU1MTlfam9pbmVkLmMKcmVuYW1lIHRvIHRmLXBzYS1jcnlwdG8vZHJpdmVycy9ldmVyZXN0L2xpYnJhcnkvSGFjbF9DdXJ2ZTI1NTE5X2pvaW5lZC5jCmRpZmYgLS1naXQgYS8zcmRwYXJ0eS9ldmVyZXN0L2xpYnJhcnkvZXZlcmVzdC5jIGIvdGYtcHNhLWNyeXB0by9kcml2ZXJzL2V2ZXJlc3QvbGlicmFyeS9ldmVyZXN0LmMKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIDNyZHBhcnR5L2V2ZXJlc3QvbGlicmFyeS9ldmVyZXN0LmMKcmVuYW1lIHRvIHRmLXBzYS1jcnlwdG8vZHJpdmVycy9ldmVyZXN0L2xpYnJhcnkvZXZlcmVzdC5jCmRpZmYgLS1naXQgYS8zcmRwYXJ0eS9ldmVyZXN0L2xpYnJhcnkva3JlbWxpYi9GU3Rhcl9VSW50MTI4X2V4dHJhY3RlZC5jIGIvdGYtcHNhLWNyeXB0by9kcml2ZXJzL2V2ZXJlc3QvbGlicmFyeS9rcmVtbGliL0ZTdGFyX1VJbnQxMjhfZXh0cmFjdGVkLmMKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIDNyZHBhcnR5L2V2ZXJlc3QvbGlicmFyeS9rcmVtbGliL0ZTdGFyX1VJbnQxMjhfZXh0cmFjdGVkLmMKcmVuYW1lIHRvIHRmLXBzYS1jcnlwdG8vZHJpdmVycy9ldmVyZXN0L2xpYnJhcnkva3JlbWxpYi9GU3Rhcl9VSW50MTI4X2V4dHJhY3RlZC5jCmRpZmYgLS1naXQgYS8zcmRwYXJ0eS9ldmVyZXN0L2xpYnJhcnkva3JlbWxpYi9GU3Rhcl9VSW50NjRfRlN0YXJfVUludDMyX0ZTdGFyX1VJbnQxNl9GU3Rhcl9VSW50OC5jIGIvdGYtcHNhLWNyeXB0by9kcml2ZXJzL2V2ZXJlc3QvbGlicmFyeS9rcmVtbGliL0ZTdGFyX1VJbnQ2NF9GU3Rhcl9VSW50MzJfRlN0YXJfVUludDE2X0ZTdGFyX1VJbnQ4LmMKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIDNyZHBhcnR5L2V2ZXJlc3QvbGlicmFyeS9rcmVtbGliL0ZTdGFyX1VJbnQ2NF9GU3Rhcl9VSW50MzJfRlN0YXJfVUludDE2X0ZTdGFyX1VJbnQ4LmMKcmVuYW1lIHRvIHRmLXBzYS1jcnlwdG8vZHJpdmVycy9ldmVyZXN0L2xpYnJhcnkva3JlbWxpYi9GU3Rhcl9VSW50NjRfRlN0YXJfVUludDMyX0ZTdGFyX1VJbnQxNl9GU3Rhcl9VSW50OC5jCmRpZmYgLS1naXQgYS8zcmRwYXJ0eS9ldmVyZXN0L2xpYnJhcnkvbGVnYWN5L0hhY2xfQ3VydmUyNTUxOS5jIGIvdGYtcHNhLWNyeXB0by9kcml2ZXJzL2V2ZXJlc3QvbGlicmFyeS9sZWdhY3kvSGFjbF9DdXJ2ZTI1NTE5LmMKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIDNyZHBhcnR5L2V2ZXJlc3QvbGlicmFyeS9sZWdhY3kvSGFjbF9DdXJ2ZTI1NTE5LmMKcmVuYW1lIHRvIHRmLXBzYS1jcnlwdG8vZHJpdmVycy9ldmVyZXN0L2xpYnJhcnkvbGVnYWN5L0hhY2xfQ3VydmUyNTUxOS5jCmRpZmYgLS1naXQgYS8zcmRwYXJ0eS9ldmVyZXN0L2xpYnJhcnkveDI1NTE5LmMgYi90Zi1wc2EtY3J5cHRvL2RyaXZlcnMvZXZlcmVzdC9saWJyYXJ5L3gyNTUxOS5jCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSAzcmRwYXJ0eS9ldmVyZXN0L2xpYnJhcnkveDI1NTE5LmMKcmVuYW1lIHRvIHRmLXBzYS1jcnlwdG8vZHJpdmVycy9ldmVyZXN0L2xpYnJhcnkveDI1NTE5LmMKZGlmZiAtLWdpdCBhLzNyZHBhcnR5L3AyNTYtbS8uZ2l0aWdub3JlIGIvdGYtcHNhLWNyeXB0by9kcml2ZXJzL3AyNTYtbS8uZ2l0aWdub3JlCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSAzcmRwYXJ0eS9wMjU2LW0vLmdpdGlnbm9yZQpyZW5hbWUgdG8gdGYtcHNhLWNyeXB0by9kcml2ZXJzL3AyNTYtbS8uZ2l0aWdub3JlCmRpZmYgLS1naXQgYS90Zi1wc2EtY3J5cHRvL2RyaXZlcnMvcDI1Ni1tL0NNYWtlTGlzdHMudHh0IGIvdGYtcHNhLWNyeXB0by9kcml2ZXJzL3AyNTYtbS9DTWFrZUxpc3RzLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mMDk3ZWQxCi0tLSAvZGV2L251bGwKKysrIGIvdGYtcHNhLWNyeXB0by9kcml2ZXJzL3AyNTYtbS9DTWFrZUxpc3RzLnR4dApAQCAtMCwwICsxLDQzIEBACitzZXQocDI1Nm1fdGFyZ2V0ICR7TUJFRFRMU19UQVJHRVRfUFJFRklYfXAyNTZtKQorCithZGRfbGlicmFyeSgke3AyNTZtX3RhcmdldH0KKyAgICBwMjU2LW1fZHJpdmVyX2VudHJ5cG9pbnRzLmMKKyAgICBwMjU2LW0vcDI1Ni1tLmMpCisKK3RhcmdldF9pbmNsdWRlX2RpcmVjdG9yaWVzKCR7cDI1Nm1fdGFyZ2V0fQorICBQVUJMSUMgJDxCVUlMRF9JTlRFUkZBQ0U6JHtDTUFLRV9DVVJSRU5UX1NPVVJDRV9ESVJ9PgorICAgICAgICAgJDxCVUlMRF9JTlRFUkZBQ0U6JHtDTUFLRV9DVVJSRU5UX1NPVVJDRV9ESVJ9L3AyNTYtbT4KKyAgICAgICAgICQ8QlVJTERfSU5URVJGQUNFOiR7TUJFRFRMU19ESVJ9L2luY2x1ZGU+CisgICAgICAgICAkPEJVSUxEX0lOVEVSRkFDRToke01CRURUTFNfRElSfS90Zi1wc2EtY3J5cHRvL2luY2x1ZGU+CisgICAgICAgICAkPEJVSUxEX0lOVEVSRkFDRToke01CRURUTFNfRElSfS90Zi1wc2EtY3J5cHRvL2RyaXZlcnMvYnVpbHRpbi9pbmNsdWRlPgorICAgICAgICAgJDxJTlNUQUxMX0lOVEVSRkFDRTppbmNsdWRlPgorICBQUklWQVRFICR7TUJFRFRMU19ESVJ9L2xpYnJhcnkvCisgICAgICAgICAgJHtNQkVEVExTX0RJUn0vdGYtcHNhLWNyeXB0by9jb3JlKQorCisjIFBhc3MtdGhyb3VnaCBNQkVEVExTX0NPTkZJR19GSUxFIGFuZCBNQkVEVExTX1VTRVJfQ09ORklHX0ZJTEUKKyMgVGhpcyBtdXN0IGJlIGR1cGxpY2F0ZWQgZnJvbSBsaWJyYXJ5L0NNYWtlTGlzdHMudHh0IGJlY2F1c2UKKyMgcDI1Nm0gaXMgbm90IGRpcmVjdGx5IGxpbmtlZCBhZ2FpbnN0IGFueSBtYmVkdGxzIHRhcmdldHMKKyMgc28gZG9lcyBub3QgaW5oZXJpdCB0aGUgY29tcGlsZSBkZWZpbml0aW9ucy4KK2lmKE1CRURUTFNfQ09ORklHX0ZJTEUpCisgICAgdGFyZ2V0X2NvbXBpbGVfZGVmaW5pdGlvbnMoJHtwMjU2bV90YXJnZXR9CisgICAgICAgIFBVQkxJQyBNQkVEVExTX0NPTkZJR19GSUxFPSIke01CRURUTFNfQ09ORklHX0ZJTEV9IikKK2VuZGlmKCkKK2lmKE1CRURUTFNfVVNFUl9DT05GSUdfRklMRSkKKyAgICB0YXJnZXRfY29tcGlsZV9kZWZpbml0aW9ucygke3AyNTZtX3RhcmdldH0KKyAgICAgICAgUFVCTElDIE1CRURUTFNfVVNFUl9DT05GSUdfRklMRT0iJHtNQkVEVExTX1VTRVJfQ09ORklHX0ZJTEV9IikKK2VuZGlmKCkKKworaWYoSU5TVEFMTF9NQkVEVExTX0hFQURFUlMpCisKKyAgaW5zdGFsbChESVJFQ1RPUlkgOiR7Q01BS0VfQ1VSUkVOVF9TT1VSQ0VfRElSfQorICAgIERFU1RJTkFUSU9OIGluY2x1ZGUKKyAgICBGSUxFX1BFUk1JU1NJT05TIE9XTkVSX1JFQUQgT1dORVJfV1JJVEUgR1JPVVBfUkVBRCBXT1JMRF9SRUFECisgICAgRElSRUNUT1JZX1BFUk1JU1NJT05TIE9XTkVSX1JFQUQgT1dORVJfV1JJVEUgT1dORVJfRVhFQ1VURSBHUk9VUF9SRUFEIEdST1VQX0VYRUNVVEUgV09STERfUkVBRCBXT1JMRF9FWEVDVVRFCisgICAgRklMRVNfTUFUQ0hJTkcgUEFUVEVSTiAiKi5oIikKKworZW5kaWYoSU5TVEFMTF9NQkVEVExTX0hFQURFUlMpCisKK2luc3RhbGwoVEFSR0VUUyAke3AyNTZtX3RhcmdldH0KK0VYUE9SVCBNYmVkVExTVGFyZ2V0cworREVTVElOQVRJT04gJHtDTUFLRV9JTlNUQUxMX0xJQkRJUn0KK1BFUk1JU1NJT05TIE9XTkVSX1JFQUQgT1dORVJfV1JJVEUgR1JPVVBfUkVBRCBXT1JMRF9SRUFEKQpkaWZmIC0tZ2l0IGEvM3JkcGFydHkvcDI1Ni1tL01ha2VmaWxlLmluYyBiL3RmLXBzYS1jcnlwdG8vZHJpdmVycy9wMjU2LW0vTWFrZWZpbGUuaW5jCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSAzcmRwYXJ0eS9wMjU2LW0vTWFrZWZpbGUuaW5jCnJlbmFtZSB0byB0Zi1wc2EtY3J5cHRvL2RyaXZlcnMvcDI1Ni1tL01ha2VmaWxlLmluYwpkaWZmIC0tZ2l0IGEvM3JkcGFydHkvcDI1Ni1tL1JFQURNRS5tZCBiL3RmLXBzYS1jcnlwdG8vZHJpdmVycy9wMjU2LW0vUkVBRE1FLm1kCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSAzcmRwYXJ0eS9wMjU2LW0vUkVBRE1FLm1kCnJlbmFtZSB0byB0Zi1wc2EtY3J5cHRvL2RyaXZlcnMvcDI1Ni1tL1JFQURNRS5tZApkaWZmIC0tZ2l0IGEvM3JkcGFydHkvcDI1Ni1tL3AyNTYtbS9SRUFETUUubWQgYi90Zi1wc2EtY3J5cHRvL2RyaXZlcnMvcDI1Ni1tL3AyNTYtbS9SRUFETUUubWQKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIDNyZHBhcnR5L3AyNTYtbS9wMjU2LW0vUkVBRE1FLm1kCnJlbmFtZSB0byB0Zi1wc2EtY3J5cHRvL2RyaXZlcnMvcDI1Ni1tL3AyNTYtbS9SRUFETUUubWQKZGlmZiAtLWdpdCBhLzNyZHBhcnR5L3AyNTYtbS9wMjU2LW0vcDI1Ni1tLmMgYi90Zi1wc2EtY3J5cHRvL2RyaXZlcnMvcDI1Ni1tL3AyNTYtbS9wMjU2LW0uYwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gM3JkcGFydHkvcDI1Ni1tL3AyNTYtbS9wMjU2LW0uYwpyZW5hbWUgdG8gdGYtcHNhLWNyeXB0by9kcml2ZXJzL3AyNTYtbS9wMjU2LW0vcDI1Ni1tLmMKZGlmZiAtLWdpdCBhLzNyZHBhcnR5L3AyNTYtbS9wMjU2LW0vcDI1Ni1tLmggYi90Zi1wc2EtY3J5cHRvL2RyaXZlcnMvcDI1Ni1tL3AyNTYtbS9wMjU2LW0uaApzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gM3JkcGFydHkvcDI1Ni1tL3AyNTYtbS9wMjU2LW0uaApyZW5hbWUgdG8gdGYtcHNhLWNyeXB0by9kcml2ZXJzL3AyNTYtbS9wMjU2LW0vcDI1Ni1tLmgKZGlmZiAtLWdpdCBhLzNyZHBhcnR5L3AyNTYtbS9wMjU2LW1fZHJpdmVyX2VudHJ5cG9pbnRzLmMgYi90Zi1wc2EtY3J5cHRvL2RyaXZlcnMvcDI1Ni1tL3AyNTYtbV9kcml2ZXJfZW50cnlwb2ludHMuYwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gM3JkcGFydHkvcDI1Ni1tL3AyNTYtbV9kcml2ZXJfZW50cnlwb2ludHMuYwpyZW5hbWUgdG8gdGYtcHNhLWNyeXB0by9kcml2ZXJzL3AyNTYtbS9wMjU2LW1fZHJpdmVyX2VudHJ5cG9pbnRzLmMKZGlmZiAtLWdpdCBhLzNyZHBhcnR5L3AyNTYtbS9wMjU2LW1fZHJpdmVyX2VudHJ5cG9pbnRzLmggYi90Zi1wc2EtY3J5cHRvL2RyaXZlcnMvcDI1Ni1tL3AyNTYtbV9kcml2ZXJfZW50cnlwb2ludHMuaApzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gM3JkcGFydHkvcDI1Ni1tL3AyNTYtbV9kcml2ZXJfZW50cnlwb2ludHMuaApyZW5hbWUgdG8gdGYtcHNhLWNyeXB0by9kcml2ZXJzL3AyNTYtbS9wMjU2LW1fZHJpdmVyX2VudHJ5cG9pbnRzLmgKZGlmZiAtLWdpdCBhL3RmLXBzYS1jcnlwdG8vaW5jbHVkZS9DTWFrZUxpc3RzLnR4dCBiL3RmLXBzYS1jcnlwdG8vaW5jbHVkZS9DTWFrZUxpc3RzLnR4dAppbmRleCBkZWE5MmZlLi5iY2E4NmZmIDEwMDY0NAotLS0gYS90Zi1wc2EtY3J5cHRvL2luY2x1ZGUvQ01ha2VMaXN0cy50eHQKKysrIGIvdGYtcHNhLWNyeXB0by9pbmNsdWRlL0NNYWtlTGlzdHMudHh0CkBAIC0xLDE0ICsxLDE3IEBACi1vcHRpb24oSU5TVEFMTF9QU0FfQ1JZUFRPX0hFQURFUlMgIkluc3RhbGwgUFNBIENyeXB0byBoZWFkZXJzLiIgT04pCitvcHRpb24oSU5TVEFMTF9URl9QU0FfQ1JZUFRPX0hFQURFUlMgIkluc3RhbGwgVEYgUFNBIENyeXB0byBoZWFkZXJzLiIgT04pCiAKLWlmKElOU1RBTExfUFNBX0NSWVBUT19IRUFERVJTKQotCitpZihJTlNUQUxMX1RGX1BTQV9DUllQVE9fSEVBREVSUykKICAgICBmaWxlKEdMT0IgcHNhX2hlYWRlcnMgInBzYS8qLmgiKQorICAgIGZpbGUoR0xPQiBtYmVkdGxzX2NyeXB0b19oZWFkZXJzICIuLi9kcml2ZXJzL2J1aWx0aW4vaW5jbHVkZS9tYmVkdGxzLyouaCIpCiAKICAgICBpbnN0YWxsKEZJTEVTICR7cHNhX2hlYWRlcnN9CiAgICAgICAgIERFU1RJTkFUSU9OIGluY2x1ZGUvcHNhCiAgICAgICAgIFBFUk1JU1NJT05TIE9XTkVSX1JFQUQgT1dORVJfV1JJVEUgR1JPVVBfUkVBRCBXT1JMRF9SRUFEKQogCi1lbmRpZihJTlNUQUxMX1BTQV9DUllQVE9fSEVBREVSUykKKyAgICBpbnN0YWxsKEZJTEVTICR7bWJlZHRsc19jcnlwdG9faGVhZGVyc30KKyAgICAgICAgREVTVElOQVRJT04gaW5jbHVkZS9tYmVkdGxzCisgICAgICAgIFBFUk1JU1NJT05TIE9XTkVSX1JFQUQgT1dORVJfV1JJVEUgR1JPVVBfUkVBRCBXT1JMRF9SRUFEKQorZW5kaWYoSU5TVEFMTF9URl9QU0FfQ1JZUFRPX0hFQURFUlMpCiAKICMgTWFrZSBpbmNsdWRlcyBhdmFpbGFibGUgaW4gYW4gb3V0LW9mLXNvdXJjZSBidWlsZC4gc3NsLW9wdC5zaCByZXF1aXJlcyBpdC4KIGlmIChFTkFCTEVfVEVTVElORyBBTkQgTk9UICR7Q01BS0VfQ1VSUkVOVF9CSU5BUllfRElSfSBTVFJFUVVBTCAke0NNQUtFX0NVUlJFTlRfU09VUkNFX0RJUn0pCmRpZmYgLS1naXQgYS90Zi1wc2EtY3J5cHRvL2luY2x1ZGUvcHNhL2NyeXB0by5oIGIvdGYtcHNhLWNyeXB0by9pbmNsdWRlL3BzYS9jcnlwdG8uaAppbmRleCBmOWRiNGRkLi4zNTI1ZGEyIDEwMDY0NAotLS0gYS90Zi1wc2EtY3J5cHRvL2luY2x1ZGUvcHNhL2NyeXB0by5oCisrKyBiL3RmLXBzYS1jcnlwdG8vaW5jbHVkZS9wc2EvY3J5cHRvLmgKQEAgLTM4NjUsOCArMzg2NSw4IEBACiAgKiBwc2Ffa2V5X2Rlcml2YXRpb25fYWJvcnQoKS4KICAqCiAgKiBccGFyYW1baW4sb3V0XSBvcGVyYXRpb24gVGhlIGtleSBkZXJpdmF0aW9uIG9wZXJhdGlvbiBvYmplY3QgdG8gcmVhZCBmcm9tLgotICogXHBhcmFtW2luXSBleHBlY3RlZF9vdXRwdXQgQnVmZmVyIGNvbnRhaW5pbmcgdGhlIGV4cGVjdGVkIGRlcml2YXRpb24gb3V0cHV0LgotICogXHBhcmFtIG91dHB1dF9sZW5ndGggICAgIExlbmd0aCBvZiB0aGUgZXhwZWN0ZWQgb3V0cHV0OyB0aGlzIGlzIGFsc28gdGhlCisgKiBccGFyYW1baW5dIGV4cGVjdGVkICAgICAgQnVmZmVyIGNvbnRhaW5pbmcgdGhlIGV4cGVjdGVkIGRlcml2YXRpb24gb3V0cHV0LgorICogXHBhcmFtIGV4cGVjdGVkX2xlbmd0aCAgIExlbmd0aCBvZiB0aGUgZXhwZWN0ZWQgb3V0cHV0OyB0aGlzIGlzIGFsc28gdGhlCiAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgbnVtYmVyIG9mIGJ5dGVzIHRoYXQgd2lsbCBiZSByZWFkLgogICoKICAqIFxyZXR2YWwgI1BTQV9TVUNDRVNTIFxlbXB0eWRlc2NyaXB0aW9uCkBAIC0zODk2LDggKzM4OTYsOCBAQAogICovCiBwc2Ffc3RhdHVzX3QgcHNhX2tleV9kZXJpdmF0aW9uX3ZlcmlmeV9ieXRlcygKICAgICBwc2Ffa2V5X2Rlcml2YXRpb25fb3BlcmF0aW9uX3QgKm9wZXJhdGlvbiwKLSAgICBjb25zdCB1aW50OF90ICpleHBlY3RlZF9vdXRwdXQsCi0gICAgc2l6ZV90IG91dHB1dF9sZW5ndGgpOworICAgIGNvbnN0IHVpbnQ4X3QgKmV4cGVjdGVkLAorICAgIHNpemVfdCBleHBlY3RlZF9sZW5ndGgpOwogCiAvKiogQ29tcGFyZSBvdXRwdXQgZGF0YSBmcm9tIGEga2V5IGRlcml2YXRpb24gb3BlcmF0aW9uIHRvIGFuIGV4cGVjdGVkIHZhbHVlCiAgKiBzdG9yZWQgaW4gYSBrZXkgb2JqZWN0Lgo=